%PDF-1.6 %μῦ 1 0 obj </Filter/Standard/EncryptMetadata true/O<747FCA219060AF799A54AA06BF9DD25064479E8FEFDC466ED1E71A68D1B95ABC>>> endobj 2 0 obj <> endobj 3 0 obj </Universal#20PDF(The process that creates this PDF constitutes a trade secret of codeMantra, LLC and is protected by the copyright laws of the United States)/Subject<>/Creator(Quite Imposing 1.5d \(EN\))/codeMantra,#20LLC(http://www.codemantra.com)/Producer(PDFKit.NET 4.0.12.0)>> endobj 4 0 obj <> endobj 5 0 obj <> endobj 6 0 obj <> endobj 7 0 obj <> endobj 8 0 obj <> endobj 9 0 obj <> endobj 10 0 obj <> endobj 11 0 obj <> endobj 12 0 obj <> endobj 13 0 obj <> endobj 14 0 obj <> endobj 15 0 obj [358 0 R/XYZ 50 757 1] endobj 16 0 obj [361 0 R/XYZ 50 757 1] endobj 17 0 obj [366 0 R/XYZ 50 757 1] endobj 18 0 obj [371 0 R/XYZ 50 757 1] endobj 19 0 obj [378 0 R/XYZ 50 757 1] endobj 20 0 obj [378 0 R/XYZ 50 725 1] endobj 21 0 obj [378 0 R/XYZ 50 528 1] endobj 22 0 obj [380 0 R/XYZ 50 528 1] endobj 23 0 obj [383 0 R/XYZ 50 757 1] endobj 24 0 obj [388 0 R/XYZ 50 757 1] endobj 25 0 obj [391 0 R/XYZ 50 528 1] endobj 26 0 obj [396 0 R/XYZ 50 757 1] endobj 27 0 obj [399 0 R/XYZ 50 528 1] endobj 28 0 obj [402 0 R/XYZ 50 757 1] endobj 29 0 obj [405 0 R/XYZ 50 757 1] endobj 30 0 obj [407 0 R/XYZ 50 757 1] endobj 31 0 obj [410 0 R/XYZ 50 528 1] endobj 32 0 obj [416 0 R/XYZ 50 757 1] endobj 33 0 obj [416 0 R/XYZ 50 725 1] endobj 34 0 obj <> endobj 35 0 obj [416 0 R/XYZ 50 560 1] endobj 36 0 obj [416 0 R/XYZ 50 528 1] endobj 37 0 obj [418 0 R/XYZ 50 528 1] endobj 38 0 obj [423 0 R/XYZ 50 528 1] endobj 39 0 obj [426 0 R/XYZ 50 528 1] endobj 40 0 obj [429 0 R/XYZ 50 757 1] endobj 41 0 obj [429 0 R/XYZ 50 528 1] endobj 42 0 obj [432 0 R/XYZ 50 757 1] endobj 43 0 obj [432 0 R/XYZ 50 528 1] endobj 44 0 obj [437 0 R/XYZ 50 757 1] endobj 45 0 obj [437 0 R/XYZ 50 725 1] endobj 46 0 obj [437 0 R/XYZ 50 560 1] endobj 47 0 obj [437 0 R/XYZ 50 528 1] endobj 48 0 obj [440 0 R/XYZ 50 757 1] endobj 49 0 obj [440 0 R/XYZ 50 528 1] endobj 50 0 obj [442 0 R/XYZ 50 528 1] endobj 51 0 obj [444 0 R/XYZ 50 528 1] endobj 52 0 obj [448 0 R/XYZ 50 528 1] endobj 53 0 obj [450 0 R/XYZ 50 757 1] endobj 54 0 obj [458 0 R/XYZ 50 528 1] endobj 55 0 obj [463 0 R/XYZ 50 528 1] endobj 56 0 obj [468 0 R/XYZ 50 528 1] endobj 57 0 obj [471 0 R/XYZ 50 757 1] endobj 58 0 obj [471 0 R/XYZ 50 528 1] endobj 59 0 obj [474 0 R/XYZ 50 757 1] endobj 60 0 obj [478 0 R/XYZ 50 757 1] endobj 61 0 obj [478 0 R/XYZ 50 725 1] endobj 62 0 obj [478 0 R/XYZ 50 528 1] endobj 63 0 obj [480 0 R/XYZ 50 757 1] endobj 64 0 obj [487 0 R/XYZ 50 757 1] endobj 65 0 obj [487 0 R/XYZ 50 560 1] endobj 66 0 obj [487 0 R/XYZ 50 528 1] endobj 67 0 obj [493 0 R/XYZ 50 757 1] endobj 68 0 obj [496 0 R/XYZ 50 757 1] endobj 69 0 obj [496 0 R/XYZ 50 528 1] endobj 70 0 obj [499 0 R/XYZ 50 757 1] endobj 71 0 obj [503 0 R/XYZ 50 528 1] endobj 72 0 obj [506 0 R/XYZ 50 528 1] endobj 73 0 obj [509 0 R/XYZ 50 757 1] endobj 74 0 obj [511 0 R/XYZ 50 757 1] endobj 75 0 obj <> endobj 76 0 obj [517 0 R/XYZ 50 528 1] endobj 77 0 obj [519 0 R/XYZ 50 528 1] endobj 78 0 obj [522 0 R/XYZ 50 757 1] endobj 79 0 obj [528 0 R/XYZ 50 757 1] endobj 80 0 obj [528 0 R/XYZ 50 725 1] endobj 81 0 obj [528 0 R/XYZ 50 528 1] endobj 82 0 obj [531 0 R/XYZ 50 757 1] endobj 83 0 obj [535 0 R/XYZ 50 757 1] endobj 84 0 obj [537 0 R/XYZ 50 528 1] endobj 85 0 obj [540 0 R/XYZ 50 528 1] endobj 86 0 obj [542 0 R/XYZ 50 757 1] endobj 87 0 obj [545 0 R/XYZ 50 757 1] endobj 88 0 obj [548 0 R/XYZ 50 757 1] endobj 89 0 obj [551 0 R/XYZ 50 528 1] endobj 90 0 obj [553 0 R/XYZ 50 528 1] endobj 91 0 obj [556 0 R/XYZ 50 757 1] endobj 92 0 obj [558 0 R/XYZ 50 528 1] endobj 93 0 obj [560 0 R/XYZ 50 757 1] endobj 94 0 obj [564 0 R/XYZ 50 757 1] endobj 95 0 obj [568 0 R/XYZ 50 757 1] endobj 96 0 obj [570 0 R/XYZ 50 528 1] endobj 97 0 obj [574 0 R/XYZ 50 757 1] endobj 98 0 obj [576 0 R/XYZ 50 757 1] endobj 99 0 obj [579 0 R/XYZ 50 757 1] endobj 100 0 obj [583 0 R/XYZ 50 757 1] endobj 101 0 obj [585 0 R/XYZ 50 757 1] endobj 102 0 obj [591 0 R/XYZ 50 757 1] endobj 103 0 obj [594 0 R/XYZ 50 528 1] endobj 104 0 obj [599 0 R/XYZ 50 757 1] endobj 105 0 obj [599 0 R/XYZ 50 528 1] endobj 106 0 obj [605 0 R/XYZ 50 757 1] endobj 107 0 obj [605 0 R/XYZ 50 725 1] endobj 108 0 obj [605 0 R/XYZ 50 528 1] endobj 109 0 obj [609 0 R/XYZ 50 757 1] endobj 110 0 obj [609 0 R/XYZ 50 725 1] endobj 111 0 obj [613 0 R/XYZ 50 757 1] endobj 112 0 obj <> endobj 113 0 obj [616 0 R/XYZ 50 757 1] endobj 114 0 obj [619 0 R/XYZ 50 528 1] endobj 115 0 obj [621 0 R/XYZ 50 528 1] endobj 116 0 obj [625 0 R/XYZ 50 757 1] endobj 117 0 obj [627 0 R/XYZ 50 528 1] endobj 118 0 obj [630 0 R/XYZ 50 757 1] endobj 119 0 obj [636 0 R/XYZ 50 757 1] endobj 120 0 obj [640 0 R/XYZ 50 528 1] endobj 121 0 obj [645 0 R/XYZ 50 757 1] endobj 122 0 obj [649 0 R/XYZ 50 528 1] endobj 123 0 obj [651 0 R/XYZ 50 757 1] endobj 124 0 obj [656 0 R/XYZ 50 757 1] endobj 125 0 obj [656 0 R/XYZ 50 725 1] endobj 126 0 obj [656 0 R/XYZ 50 528 1] endobj 127 0 obj [661 0 R/XYZ 50 757 1] endobj 128 0 obj [663 0 R/XYZ 50 528 1] endobj 129 0 obj [665 0 R/XYZ 50 528 1] endobj 130 0 obj [667 0 R/XYZ 50 528 1] endobj 131 0 obj [669 0 R/XYZ 50 528 1] endobj 132 0 obj [671 0 R/XYZ 50 528 1] endobj 133 0 obj [673 0 R/XYZ 50 528 1] endobj 134 0 obj [676 0 R/XYZ 50 757 1] endobj 135 0 obj [684 0 R/XYZ 50 757 1] endobj 136 0 obj [688 0 R/XYZ 50 757 1] endobj 137 0 obj [688 0 R/XYZ 50 725 1] endobj 138 0 obj [688 0 R/XYZ 50 528 1] endobj 139 0 obj [690 0 R/XYZ 50 757 1] endobj 140 0 obj [697 0 R/XYZ 50 757 1] endobj 141 0 obj [697 0 R/XYZ 50 528 1] endobj 142 0 obj [699 0 R/XYZ 50 528 1] endobj 143 0 obj [702 0 R/XYZ 50 528 1] endobj 144 0 obj [704 0 R/XYZ 50 757 1] endobj 145 0 obj [708 0 R/XYZ 50 528 1] endobj 146 0 obj [712 0 R/XYZ 50 528 1] endobj 147 0 obj [720 0 R/XYZ 50 528 1] endobj 148 0 obj [726 0 R/XYZ 50 528 1] endobj 149 0 obj [731 0 R/XYZ 50 757 1] endobj 150 0 obj [731 0 R/XYZ 50 725 1] endobj 151 0 obj <> endobj 152 0 obj [731 0 R/XYZ 50 528 1] endobj 153 0 obj [734 0 R/XYZ 50 757 1] endobj 154 0 obj [740 0 R/XYZ 50 757 1] endobj 155 0 obj [743 0 R/XYZ 50 757 1] endobj 156 0 obj [746 0 R/XYZ 50 757 1] endobj 157 0 obj [753 0 R/XYZ 50 757 1] endobj 158 0 obj [756 0 R/XYZ 50 757 1] endobj 159 0 obj [756 0 R/XYZ 50 528 1] endobj 160 0 obj [761 0 R/XYZ 50 757 1] endobj 161 0 obj [768 0 R/XYZ 50 528 1] endobj 162 0 obj [774 0 R/XYZ 50 528 1] endobj 163 0 obj [779 0 R/XYZ 50 528 1] endobj 164 0 obj [785 0 R/XYZ 50 757 1] endobj 165 0 obj [792 0 R/XYZ 50 528 1] endobj 166 0 obj [794 0 R/XYZ 50 757 1] endobj 167 0 obj [799 0 R/XYZ 50 757 1] endobj 168 0 obj [802 0 R/XYZ 50 528 1] endobj 169 0 obj [808 0 R/XYZ 50 757 1] endobj 170 0 obj [808 0 R/XYZ 50 725 1] endobj 171 0 obj [808 0 R/XYZ 50 528 1] endobj 172 0 obj [814 0 R/XYZ 50 528 1] endobj 173 0 obj [818 0 R/XYZ 50 528 1] endobj 174 0 obj [821 0 R/XYZ 50 757 1] endobj 175 0 obj [823 0 R/XYZ 50 528 1] endobj 176 0 obj [826 0 R/XYZ 50 528 1] endobj 177 0 obj [828 0 R/XYZ 50 757 1] endobj 178 0 obj [833 0 R/XYZ 50 757 1] endobj 179 0 obj [838 0 R/XYZ 50 757 1] endobj 180 0 obj [842 0 R/XYZ 50 757 1] endobj 181 0 obj [845 0 R/XYZ 50 757 1] endobj 182 0 obj [849 0 R/XYZ 50 757 1] endobj 183 0 obj [849 0 R/XYZ 50 725 1] endobj 184 0 obj [849 0 R/XYZ 50 528 1] endobj 185 0 obj [860 0 R/XYZ 50 757 1] endobj 186 0 obj [864 0 R/XYZ 50 757 1] endobj 187 0 obj [866 0 R/XYZ 50 528 1] endobj 188 0 obj [870 0 R/XYZ 50 757 1] endobj 189 0 obj [873 0 R/XYZ 50 528 1] endobj 190 0 obj <> endobj 191 0 obj [877 0 R/XYZ 50 528 1] endobj 192 0 obj [879 0 R/XYZ 50 528 1] endobj 193 0 obj [882 0 R/XYZ 50 757 1] endobj 194 0 obj [889 0 R/XYZ 50 757 1] endobj 195 0 obj [892 0 R/XYZ 50 757 1] endobj 196 0 obj [894 0 R/XYZ 50 528 1] endobj 197 0 obj [897 0 R/XYZ 50 528 1] endobj 198 0 obj [904 0 R/XYZ 50 528 1] endobj 199 0 obj [909 0 R/XYZ 50 757 1] endobj 200 0 obj [916 0 R/XYZ 50 757 1] endobj 201 0 obj [919 0 R/XYZ 50 757 1] endobj 202 0 obj [926 0 R/XYZ 50 757 1] endobj 203 0 obj [930 0 R/XYZ 50 757 1] endobj 204 0 obj [932 0 R/XYZ 50 757 1] endobj 205 0 obj [935 0 R/XYZ 50 757 1] endobj 206 0 obj [938 0 R/XYZ 50 757 1] endobj 207 0 obj [943 0 R/XYZ 50 757 1] endobj 208 0 obj [943 0 R/XYZ 50 725 1] endobj 209 0 obj [943 0 R/XYZ 50 528 1] endobj 210 0 obj [945 0 R/XYZ 50 528 1] endobj 211 0 obj [947 0 R/XYZ 50 528 1] endobj 212 0 obj [951 0 R/XYZ 50 528 1] endobj 213 0 obj [961 0 R/XYZ 50 757 1] endobj 214 0 obj [964 0 R/XYZ 50 528 1] endobj 215 0 obj [968 0 R/XYZ 50 757 1] endobj 216 0 obj [974 0 R/XYZ 50 528 1] endobj 217 0 obj [977 0 R/XYZ 50 757 1] endobj 218 0 obj [983 0 R/XYZ 50 757 1] endobj 219 0 obj [983 0 R/XYZ 50 528 1] endobj 220 0 obj [988 0 R/XYZ 50 757 1] endobj 221 0 obj [990 0 R/XYZ 50 528 1] endobj 222 0 obj [995 0 R/XYZ 50 757 1] endobj 223 0 obj [1001 0 R/XYZ 50 757 1] endobj 224 0 obj [1001 0 R/XYZ 50 725 1] endobj 225 0 obj [1001 0 R/XYZ 50 528 1] endobj 226 0 obj [1003 0 R/XYZ 50 528 1] endobj 227 0 obj [1009 0 R/XYZ 50 560 1] endobj 228 0 obj [1009 0 R/XYZ 50 528 1] endobj 229 0 obj <> endobj 230 0 obj [1019 0 R/XYZ 50 528 1] endobj 231 0 obj [1021 0 R/XYZ 50 757 1] endobj 232 0 obj [1023 0 R/XYZ 50 757 1] endobj 233 0 obj [1025 0 R/XYZ 50 757 1] endobj 234 0 obj [1030 0 R/XYZ 50 528 1] endobj 235 0 obj [1036 0 R/XYZ 50 757 1] endobj 236 0 obj [1039 0 R/XYZ 50 528 1] endobj 237 0 obj [1044 0 R/XYZ 50 757 1] endobj 238 0 obj [1049 0 R/XYZ 50 528 1] endobj 239 0 obj [1051 0 R/XYZ 50 757 1] endobj 240 0 obj [1055 0 R/XYZ 50 757 1] endobj 241 0 obj [1055 0 R/XYZ 50 725 1] endobj 242 0 obj [1055 0 R/XYZ 50 528 1] endobj 243 0 obj [1059 0 R/XYZ 50 757 1] endobj 244 0 obj [1063 0 R/XYZ 50 757 1] endobj 245 0 obj [1068 0 R/XYZ 50 757 1] endobj 246 0 obj [1070 0 R/XYZ 50 528 1] endobj 247 0 obj [1076 0 R/XYZ 50 757 1] endobj 248 0 obj [1078 0 R/XYZ 50 757 1] endobj 249 0 obj [1082 0 R/XYZ 50 757 1] endobj 250 0 obj [1082 0 R/XYZ 50 725 1] endobj 251 0 obj [1082 0 R/XYZ 50 528 1] endobj 252 0 obj [1087 0 R/XYZ 50 757 1] endobj 253 0 obj [1103 0 R/XYZ 50 757 1] endobj 254 0 obj [1106 0 R/XYZ 50 757 1] endobj 255 0 obj [1111 0 R/XYZ 50 528 1] endobj 256 0 obj [1115 0 R/XYZ 50 757 1] endobj 257 0 obj [1118 0 R/XYZ 50 757 1] endobj 258 0 obj [1118 0 R/XYZ 50 528 1] endobj 259 0 obj [1120 0 R/XYZ 50 757 1] endobj 260 0 obj [1131 0 R/XYZ 50 757 1] endobj 261 0 obj [1134 0 R/XYZ 50 757 1] endobj 262 0 obj [1137 0 R/XYZ 50 757 1] endobj 263 0 obj [1144 0 R/XYZ 50 528 1] endobj 264 0 obj [1148 0 R/XYZ 50 757 1] endobj 265 0 obj [1148 0 R/XYZ 50 725 1] endobj 266 0 obj [1150 0 R/XYZ 50 528 1] endobj 267 0 obj [1158 0 R/XYZ 50 757 1] endobj 268 0 obj <> endobj 269 0 obj [1166 0 R/XYZ 50 528 1] endobj 270 0 obj [1171 0 R/XYZ 50 528 1] endobj 271 0 obj [1177 0 R/XYZ 50 560 1] endobj 272 0 obj [1177 0 R/XYZ 50 528 1] endobj 273 0 obj [1180 0 R/XYZ 50 528 1] endobj 274 0 obj [1183 0 R/XYZ 50 757 1] endobj 275 0 obj [1183 0 R/XYZ 50 528 1] endobj 276 0 obj [1186 0 R/XYZ 50 757 1] endobj 277 0 obj [1191 0 R/XYZ 50 528 1] endobj 278 0 obj [1198 0 R/XYZ 50 528 1] endobj 279 0 obj [1207 0 R/XYZ 50 757 1] endobj 280 0 obj [1214 0 R/XYZ 50 757 1] endobj 281 0 obj [1217 0 R/XYZ 50 757 1] endobj 282 0 obj [1221 0 R/XYZ 50 757 1] endobj 283 0 obj [1221 0 R/XYZ 50 725 1] endobj 284 0 obj [1223 0 R/XYZ 50 757 1] endobj 285 0 obj [1228 0 R/XYZ 50 757 1] endobj 286 0 obj [1228 0 R/XYZ 50 528 1] endobj 287 0 obj [1231 0 R/XYZ 50 757 1] endobj 288 0 obj [1234 0 R/XYZ 50 757 1] endobj 289 0 obj [1242 0 R/XYZ 50 528 1] endobj 290 0 obj [1244 0 R/XYZ 50 528 1] endobj 291 0 obj [1250 0 R/XYZ 50 757 1] endobj 292 0 obj [1264 0 R/XYZ 50 528 1] endobj 293 0 obj [1268 0 R/XYZ 50 757 1] endobj 294 0 obj [1270 0 R/XYZ 50 757 1] endobj 295 0 obj [1272 0 R/XYZ 50 757 1] endobj 296 0 obj [1276 0 R/XYZ 50 757 1] endobj 297 0 obj [1276 0 R/XYZ 50 725 1] endobj 298 0 obj [1276 0 R/XYZ 50 528 1] endobj 299 0 obj [1282 0 R/XYZ 50 757 1] endobj 300 0 obj [1284 0 R/XYZ 50 528 1] endobj 301 0 obj [1292 0 R/XYZ 50 757 1] endobj 302 0 obj [1304 0 R/XYZ 50 757 1] endobj 303 0 obj [1311 0 R/XYZ 50 757 1] endobj 304 0 obj [1322 0 R/XYZ 50 528 1] endobj 305 0 obj [1327 0 R/XYZ 50 757 1] endobj 306 0 obj [1327 0 R/XYZ 50 725 1] endobj 307 0 obj <> endobj 308 0 obj [1327 0 R/XYZ 50 528 1] endobj 309 0 obj [1335 0 R/XYZ 50 757 1] endobj 310 0 obj [1342 0 R/XYZ 50 757 1] endobj 311 0 obj [1342 0 R/XYZ 50 528 1] endobj 312 0 obj [1351 0 R/XYZ 50 528 1] endobj 313 0 obj [1353 0 R/XYZ 50 757 1] endobj 314 0 obj [1355 0 R/XYZ 50 757 1] endobj 315 0 obj [1357 0 R/XYZ 50 757 1] endobj 316 0 obj [1364 0 R/XYZ 50 757 1] endobj 317 0 obj [1368 0 R/XYZ 50 757 1] endobj 318 0 obj [1376 0 R/XYZ 50 528 1] endobj 319 0 obj [1379 0 R/XYZ 50 757 1] endobj 320 0 obj [1381 0 R/XYZ 50 757 1] endobj 321 0 obj [1386 0 R/XYZ 50 757 1] endobj 322 0 obj [1386 0 R/XYZ 50 725 1] endobj 323 0 obj [1386 0 R/XYZ 50 528 1] endobj 324 0 obj [1394 0 R/XYZ 50 528 1] endobj 325 0 obj [1399 0 R/XYZ 50 528 1] endobj 326 0 obj [1403 0 R/XYZ 50 757 1] endobj 327 0 obj [1408 0 R/XYZ 50 528 1] endobj 328 0 obj [1416 0 R/XYZ 50 528 1] endobj 329 0 obj [1418 0 R/XYZ 50 528 1] endobj 330 0 obj [1423 0 R/XYZ 50 757 1] endobj 331 0 obj [1423 0 R/XYZ 50 725 1] endobj 332 0 obj [1423 0 R/XYZ 50 528 1] endobj 333 0 obj [1425 0 R/XYZ 50 528 1] endobj 334 0 obj [1428 0 R/XYZ 50 528 1] endobj 335 0 obj [1433 0 R/XYZ 50 757 1] endobj 336 0 obj [1436 0 R/XYZ 50 757 1] endobj 337 0 obj [1439 0 R/XYZ 50 757 1] endobj 338 0 obj [1439 0 R/XYZ 50 528 1] endobj 339 0 obj [1468 0 R/XYZ 50 528 1] endobj 340 0 obj [1474 0 R/XYZ 50 528 1] endobj 341 0 obj [1480 0 R/XYZ 50 757 1] endobj 342 0 obj [1480 0 R/XYZ 50 725 1] endobj 343 0 obj [1480 0 R/XYZ 50 528 1] endobj 344 0 obj [1484 0 R/XYZ 50 528 1] endobj 345 0 obj [1486 0 R/XYZ 50 528 1] endobj 346 0 obj <> endobj 347 0 obj [1489 0 R/XYZ 50 528 1] endobj 348 0 obj [1538 0 R/XYZ 50 757 1] endobj 349 0 obj [1541 0 R/XYZ 50 757 1] endobj 350 0 obj [1593 0 R/XYZ 50 757 1] endobj 351 0 obj [1593 0 R/XYZ 50 725 1] endobj 352 0 obj [1597 0 R/XYZ 50 528 1] endobj 353 0 obj [1605 0 R/XYZ 50 757 1] endobj 354 0 obj [1648 0 R/XYZ 50 757 1] endobj 355 0 obj [1812 0 R/XYZ 50 757 1] endobj 356 0 obj <> endobj 357 0 obj [34 0 R/XYZ 50 757 1] endobj 358 0 obj <> endobj 359 0 obj <> endobj 360 0 obj [34 0 R/XYZ 50 757 1] endobj 361 0 obj <> endobj 362 0 obj <> endobj 363 0 obj <> endobj 364 0 obj <> endobj 365 0 obj [34 0 R/XYZ 50 757 1] endobj 366 0 obj <> endobj 367 0 obj <> endobj 368 0 obj <> endobj 369 0 obj <> endobj 370 0 obj [34 0 R/XYZ 50 757 1] endobj 371 0 obj <> endobj 372 0 obj <> endobj 373 0 obj <> endobj 374 0 obj <> endobj 375 0 obj [34 0 R/XYZ 50 757 1] endobj 376 0 obj [34 0 R/XYZ 50 757 1] endobj 377 0 obj [34 0 R/XYZ 50 757 1] endobj 378 0 obj <> endobj 379 0 obj [34 0 R/XYZ 50 757 1] endobj 380 0 obj <> endobj 381 0 obj <> endobj 382 0 obj [34 0 R/XYZ 50 757 1] endobj 383 0 obj <> endobj 384 0 obj <> endobj 385 0 obj <> endobj 386 0 obj <> endobj 387 0 obj [34 0 R/XYZ 50 757 1] endobj 388 0 obj <> endobj 389 0 obj <> endobj 390 0 obj [34 0 R/XYZ 50 757 1] endobj 391 0 obj <> endobj 392 0 obj <> endobj 393 0 obj <> endobj 394 0 obj <> endobj 395 0 obj [34 0 R/XYZ 50 757 1] endobj 396 0 obj <> endobj 397 0 obj <> endobj 398 0 obj [34 0 R/XYZ 50 757 1] endobj 399 0 obj <> endobj 400 0 obj <> endobj 401 0 obj [34 0 R/XYZ 50 757 1] endobj 402 0 obj <> endobj 403 0 obj <> endobj 404 0 obj [34 0 R/XYZ 50 757 1] endobj 405 0 obj <> endobj 406 0 obj [34 0 R/XYZ 50 757 1] endobj 407 0 obj <> endobj 408 0 obj <> endobj 409 0 obj [34 0 R/XYZ 50 757 1] endobj 410 0 obj <> endobj 411 0 obj <> endobj 412 0 obj [34 0 R/XYZ 50 757 1] endobj 413 0 obj [34 0 R/XYZ 50 757 1] endobj 414 0 obj [75 0 R/XYZ 50 757 1] endobj 415 0 obj [75 0 R/XYZ 50 757 1] endobj 416 0 obj <> endobj 417 0 obj [75 0 R/XYZ 50 757 1] endobj 418 0 obj <> endobj 419 0 obj <> endobj 420 0 obj <> endobj 421 0 obj <> endobj 422 0 obj [75 0 R/XYZ 50 757 1] endobj 423 0 obj <> endobj 424 0 obj <> endobj 425 0 obj [75 0 R/XYZ 50 757 1] endobj 426 0 obj <> endobj 427 0 obj [75 0 R/XYZ 50 757 1] endobj 428 0 obj [75 0 R/XYZ 50 757 1] endobj 429 0 obj <> endobj 430 0 obj [75 0 R/XYZ 50 757 1] endobj 431 0 obj [75 0 R/XYZ 50 757 1] endobj 432 0 obj <> endobj 433 0 obj [75 0 R/XYZ 50 757 1] endobj 434 0 obj [75 0 R/XYZ 50 757 1] endobj 435 0 obj [75 0 R/XYZ 50 757 1] endobj 436 0 obj [75 0 R/XYZ 50 757 1] endobj 437 0 obj <> endobj 438 0 obj [75 0 R/XYZ 50 757 1] endobj 439 0 obj [75 0 R/XYZ 50 757 1] endobj 440 0 obj <> endobj 441 0 obj [75 0 R/XYZ 50 757 1] endobj 442 0 obj <> endobj 443 0 obj [75 0 R/XYZ 50 757 1] endobj 444 0 obj <> endobj 445 0 obj <> endobj 446 0 obj <> endobj 447 0 obj [75 0 R/XYZ 50 757 1] endobj 448 0 obj <> endobj 449 0 obj [75 0 R/XYZ 50 757 1] endobj 450 0 obj <> endobj 451 0 obj <> endobj 452 0 obj <> endobj 453 0 obj <> endobj 454 0 obj <> endobj 455 0 obj <> endobj 456 0 obj <> endobj 457 0 obj [75 0 R/XYZ 50 757 1] endobj 458 0 obj <> endobj 459 0 obj <> endobj 460 0 obj <> endobj 461 0 obj <> endobj 462 0 obj [75 0 R/XYZ 50 757 1] endobj 463 0 obj <> endobj 464 0 obj <> endobj 465 0 obj <> endobj 466 0 obj <> endobj 467 0 obj [75 0 R/XYZ 50 757 1] endobj 468 0 obj <> endobj 469 0 obj [75 0 R/XYZ 50 757 1] endobj 470 0 obj [75 0 R/XYZ 50 757 1] endobj 471 0 obj <> endobj 472 0 obj <> endobj 473 0 obj [75 0 R/XYZ 50 757 1] endobj 474 0 obj <> endobj 475 0 obj [75 0 R/XYZ 50 757 1] endobj 476 0 obj [75 0 R/XYZ 50 757 1] endobj 477 0 obj [75 0 R/XYZ 50 757 1] endobj 478 0 obj <> endobj 479 0 obj [75 0 R/XYZ 50 757 1] endobj 480 0 obj <> endobj 481 0 obj <> endobj 482 0 obj <> endobj 483 0 obj <> endobj 484 0 obj [75 0 R/XYZ 50 757 1] endobj 485 0 obj [75 0 R/XYZ 50 757 1] endobj 486 0 obj [75 0 R/XYZ 50 757 1] endobj 487 0 obj <> endobj 488 0 obj <> endobj 489 0 obj <> endobj 490 0 obj <> endobj 491 0 obj <> endobj 492 0 obj [75 0 R/XYZ 50 757 1] endobj 493 0 obj <> endobj 494 0 obj [75 0 R/XYZ 50 757 1] endobj 495 0 obj [75 0 R/XYZ 50 757 1] endobj 496 0 obj <> endobj 497 0 obj <> endobj 498 0 obj [75 0 R/XYZ 50 757 1] endobj 499 0 obj <> endobj 500 0 obj <> endobj 501 0 obj <> endobj 502 0 obj [75 0 R/XYZ 50 757 1] endobj 503 0 obj <> endobj 504 0 obj <> endobj 505 0 obj [75 0 R/XYZ 50 757 1] endobj 506 0 obj <> endobj 507 0 obj <> endobj 508 0 obj [75 0 R/XYZ 50 757 1] endobj 509 0 obj <> endobj 510 0 obj [75 0 R/XYZ 50 757 1] endobj 511 0 obj <> endobj 512 0 obj <> endobj 513 0 obj <> endobj 514 0 obj <> endobj 515 0 obj <> endobj 516 0 obj [112 0 R/XYZ 50 757 1] endobj 517 0 obj <> endobj 518 0 obj [112 0 R/XYZ 50 757 1] endobj 519 0 obj <> endobj 520 0 obj <> endobj 521 0 obj [112 0 R/XYZ 50 757 1] endobj 522 0 obj <> endobj 523 0 obj <> endobj 524 0 obj <> endobj 525 0 obj [112 0 R/XYZ 50 757 1] endobj 526 0 obj [112 0 R/XYZ 50 757 1] endobj 527 0 obj [112 0 R/XYZ 50 757 1] endobj 528 0 obj <> endobj 529 0 obj <> endobj 530 0 obj [112 0 R/XYZ 50 757 1] endobj 531 0 obj <> endobj 532 0 obj <> endobj 533 0 obj <> endobj 534 0 obj [112 0 R/XYZ 50 757 1] endobj 535 0 obj <> endobj 536 0 obj [112 0 R/XYZ 50 757 1] endobj 537 0 obj <> endobj 538 0 obj <> endobj 539 0 obj [112 0 R/XYZ 50 757 1] endobj 540 0 obj <> endobj 541 0 obj [112 0 R/XYZ 50 757 1] endobj 542 0 obj <> endobj 543 0 obj <> endobj 544 0 obj [112 0 R/XYZ 50 757 1] endobj 545 0 obj <> endobj 546 0 obj <> endobj 547 0 obj [112 0 R/XYZ 50 757 1] endobj 548 0 obj <> endobj 549 0 obj <> endobj 550 0 obj [112 0 R/XYZ 50 757 1] endobj 551 0 obj <> endobj 552 0 obj [112 0 R/XYZ 50 757 1] endobj 553 0 obj <> endobj 554 0 obj <> endobj 555 0 obj [112 0 R/XYZ 50 757 1] endobj 556 0 obj <> endobj 557 0 obj [112 0 R/XYZ 50 757 1] endobj 558 0 obj <> endobj 559 0 obj [112 0 R/XYZ 50 757 1] endobj 560 0 obj <> endobj 561 0 obj <> endobj 562 0 obj <> endobj 563 0 obj [112 0 R/XYZ 50 757 1] endobj 564 0 obj <> endobj 565 0 obj <> endobj 566 0 obj <> endobj 567 0 obj [112 0 R/XYZ 50 757 1] endobj 568 0 obj <> endobj 569 0 obj [112 0 R/XYZ 50 757 1] endobj 570 0 obj <> endobj 571 0 obj <> endobj 572 0 obj <> endobj 573 0 obj [112 0 R/XYZ 50 757 1] endobj 574 0 obj <> endobj 575 0 obj [112 0 R/XYZ 50 757 1] endobj 576 0 obj <> endobj 577 0 obj <> endobj 578 0 obj [112 0 R/XYZ 50 757 1] endobj 579 0 obj <> endobj 580 0 obj <> endobj 581 0 obj <> endobj 582 0 obj [112 0 R/XYZ 50 757 1] endobj 583 0 obj <> endobj 584 0 obj [112 0 R/XYZ 50 757 1] endobj 585 0 obj <> endobj 586 0 obj <> endobj 587 0 obj <> endobj 588 0 obj <> endobj 589 0 obj <> endobj 590 0 obj [112 0 R/XYZ 50 757 1] endobj 591 0 obj <> endobj 592 0 obj <> endobj 593 0 obj [112 0 R/XYZ 50 757 1] endobj 594 0 obj <> endobj 595 0 obj <> endobj 596 0 obj <> endobj 597 0 obj [112 0 R/XYZ 50 757 1] endobj 598 0 obj [112 0 R/XYZ 50 757 1] endobj 599 0 obj <> endobj 600 0 obj <> endobj 601 0 obj <> endobj 602 0 obj [112 0 R/XYZ 50 757 1] endobj 603 0 obj [112 0 R/XYZ 50 757 1] endobj 604 0 obj [112 0 R/XYZ 50 757 1] endobj 605 0 obj <> endobj 606 0 obj <> endobj 607 0 obj [112 0 R/XYZ 50 757 1] endobj 608 0 obj [112 0 R/XYZ 50 757 1] endobj 609 0 obj <> endobj 610 0 obj <> endobj 611 0 obj <> endobj 612 0 obj [112 0 R/XYZ 50 757 1] endobj 613 0 obj <> endobj 614 0 obj <> endobj 615 0 obj [151 0 R/XYZ 50 757 1] endobj 616 0 obj <> endobj 617 0 obj <> endobj 618 0 obj [151 0 R/XYZ 50 757 1] endobj 619 0 obj <> endobj 620 0 obj [151 0 R/XYZ 50 757 1] endobj 621 0 obj <> endobj 622 0 obj <> endobj 623 0 obj <> endobj 624 0 obj [151 0 R/XYZ 50 757 1] endobj 625 0 obj <> endobj 626 0 obj [151 0 R/XYZ 50 757 1] endobj 627 0 obj <> endobj 628 0 obj <> endobj 629 0 obj [151 0 R/XYZ 50 757 1] endobj 630 0 obj <> endobj 631 0 obj <> endobj 632 0 obj <> endobj 633 0 obj <> endobj 634 0 obj <> endobj 635 0 obj [151 0 R/XYZ 50 757 1] endobj 636 0 obj <> endobj 637 0 obj <> endobj 638 0 obj <> endobj 639 0 obj [151 0 R/XYZ 50 757 1] endobj 640 0 obj <> endobj 641 0 obj <> endobj 642 0 obj <> endobj 643 0 obj <> endobj 644 0 obj [151 0 R/XYZ 50 757 1] endobj 645 0 obj <> endobj 646 0 obj <> endobj 647 0 obj <> endobj 648 0 obj [151 0 R/XYZ 50 757 1] endobj 649 0 obj <> endobj 650 0 obj [151 0 R/XYZ 50 757 1] endobj 651 0 obj <> endobj 652 0 obj <> endobj 653 0 obj [151 0 R/XYZ 50 757 1] endobj 654 0 obj [151 0 R/XYZ 50 757 1] endobj 655 0 obj [151 0 R/XYZ 50 757 1] endobj 656 0 obj <> endobj 657 0 obj <> endobj 658 0 obj <> endobj 659 0 obj <> endobj 660 0 obj [151 0 R/XYZ 50 757 1] endobj 661 0 obj <> endobj 662 0 obj [151 0 R/XYZ 50 757 1] endobj 663 0 obj <> endobj 664 0 obj [151 0 R/XYZ 50 757 1] endobj 665 0 obj <> endobj 666 0 obj [151 0 R/XYZ 50 757 1] endobj 667 0 obj <> endobj 668 0 obj [151 0 R/XYZ 50 757 1] endobj 669 0 obj <> endobj 670 0 obj [151 0 R/XYZ 50 757 1] endobj 671 0 obj <> endobj 672 0 obj [151 0 R/XYZ 50 757 1] endobj 673 0 obj <> endobj 674 0 obj <> endobj 675 0 obj [151 0 R/XYZ 50 757 1] endobj 676 0 obj <> endobj 677 0 obj <> endobj 678 0 obj <> endobj 679 0 obj <> endobj 680 0 obj <> endobj 681 0 obj <> endobj 682 0 obj <> endobj 683 0 obj [151 0 R/XYZ 50 757 1] endobj 684 0 obj <> endobj 685 0 obj [151 0 R/XYZ 50 757 1] endobj 686 0 obj [151 0 R/XYZ 50 757 1] endobj 687 0 obj [151 0 R/XYZ 50 757 1] endobj 688 0 obj <> endobj 689 0 obj [151 0 R/XYZ 50 757 1] endobj 690 0 obj <> endobj 691 0 obj <> endobj 692 0 obj <> endobj 693 0 obj <> endobj 694 0 obj <> endobj 695 0 obj [151 0 R/XYZ 50 757 1] endobj 696 0 obj [151 0 R/XYZ 50 757 1] endobj 697 0 obj <> endobj 698 0 obj [151 0 R/XYZ 50 757 1] endobj 699 0 obj <> endobj 700 0 obj <> endobj 701 0 obj [151 0 R/XYZ 50 757 1] endobj 702 0 obj <> endobj 703 0 obj [151 0 R/XYZ 50 757 1] endobj 704 0 obj <> endobj 705 0 obj <> endobj 706 0 obj <> endobj 707 0 obj [151 0 R/XYZ 50 757 1] endobj 708 0 obj <> endobj 709 0 obj <> endobj 710 0 obj <> endobj 711 0 obj [151 0 R/XYZ 50 757 1] endobj 712 0 obj <> endobj 713 0 obj <> endobj 714 0 obj <> endobj 715 0 obj <> endobj 716 0 obj <> endobj 717 0 obj <> endobj 718 0 obj <> endobj 719 0 obj [151 0 R/XYZ 50 757 1] endobj 720 0 obj <> endobj 721 0 obj <> endobj 722 0 obj <> endobj 723 0 obj <> endobj 724 0 obj <> endobj 725 0 obj [151 0 R/XYZ 50 757 1] endobj 726 0 obj <> endobj 727 0 obj <> endobj 728 0 obj [151 0 R/XYZ 50 757 1] endobj 729 0 obj [151 0 R/XYZ 50 757 1] endobj 730 0 obj [190 0 R/XYZ 50 757 1] endobj 731 0 obj <> endobj 732 0 obj <> endobj 733 0 obj [190 0 R/XYZ 50 757 1] endobj 734 0 obj <> endobj 735 0 obj <> endobj 736 0 obj <> endobj 737 0 obj <> endobj 738 0 obj <> endobj 739 0 obj [190 0 R/XYZ 50 757 1] endobj 740 0 obj <> endobj 741 0 obj <> endobj 742 0 obj [190 0 R/XYZ 50 757 1] endobj 743 0 obj <> endobj 744 0 obj <> endobj 745 0 obj [190 0 R/XYZ 50 757 1] endobj 746 0 obj <> endobj 747 0 obj <> endobj 748 0 obj <> endobj 749 0 obj <> endobj 750 0 obj <> endobj 751 0 obj <> endobj 752 0 obj [190 0 R/XYZ 50 757 1] endobj 753 0 obj <> endobj 754 0 obj [190 0 R/XYZ 50 757 1] endobj 755 0 obj [190 0 R/XYZ 50 757 1] endobj 756 0 obj <> endobj 757 0 obj <> endobj 758 0 obj <> endobj 759 0 obj <> endobj 760 0 obj [190 0 R/XYZ 50 757 1] endobj 761 0 obj <> endobj 762 0 obj <> endobj 763 0 obj <> endobj 764 0 obj <> endobj 765 0 obj <> endobj 766 0 obj <> endobj 767 0 obj [190 0 R/XYZ 50 757 1] endobj 768 0 obj <> endobj 769 0 obj <> endobj 770 0 obj <> endobj 771 0 obj <> endobj 772 0 obj <> endobj 773 0 obj [190 0 R/XYZ 50 757 1] endobj 774 0 obj <> endobj 775 0 obj <> endobj 776 0 obj <> endobj 777 0 obj <> endobj 778 0 obj [190 0 R/XYZ 50 757 1] endobj 779 0 obj <> endobj 780 0 obj <> endobj 781 0 obj <> endobj 782 0 obj <> endobj 783 0 obj <> endobj 784 0 obj [190 0 R/XYZ 50 757 1] endobj 785 0 obj <> endobj 786 0 obj <> endobj 787 0 obj <> endobj 788 0 obj <> endobj 789 0 obj <> endobj 790 0 obj <> endobj 791 0 obj [190 0 R/XYZ 50 757 1] endobj 792 0 obj <> endobj 793 0 obj [190 0 R/XYZ 50 757 1] endobj 794 0 obj <> endobj 795 0 obj <> endobj 796 0 obj <> endobj 797 0 obj <> endobj 798 0 obj [190 0 R/XYZ 50 757 1] endobj 799 0 obj <> endobj 800 0 obj <> endobj 801 0 obj [190 0 R/XYZ 50 757 1] endobj 802 0 obj <> endobj 803 0 obj <> endobj 804 0 obj <> endobj 805 0 obj [190 0 R/XYZ 50 757 1] endobj 806 0 obj [190 0 R/XYZ 50 757 1] endobj 807 0 obj [190 0 R/XYZ 50 757 1] endobj 808 0 obj <> endobj 809 0 obj <> endobj 810 0 obj <> endobj 811 0 obj <> endobj 812 0 obj <> endobj 813 0 obj [190 0 R/XYZ 50 757 1] endobj 814 0 obj <> endobj 815 0 obj <> endobj 816 0 obj <> endobj 817 0 obj [190 0 R/XYZ 50 757 1] endobj 818 0 obj <> endobj 819 0 obj <> endobj 820 0 obj [190 0 R/XYZ 50 757 1] endobj 821 0 obj <> endobj 822 0 obj [190 0 R/XYZ 50 757 1] endobj 823 0 obj <> endobj 824 0 obj <> endobj 825 0 obj [190 0 R/XYZ 50 757 1] endobj 826 0 obj <> endobj 827 0 obj [190 0 R/XYZ 50 757 1] endobj 828 0 obj <> endobj 829 0 obj <> endobj 830 0 obj <> endobj 831 0 obj <> endobj 832 0 obj [190 0 R/XYZ 50 757 1] endobj 833 0 obj <> endobj 834 0 obj <> endobj 835 0 obj <> endobj 836 0 obj <> endobj 837 0 obj [190 0 R/XYZ 50 757 1] endobj 838 0 obj <> endobj 839 0 obj <> endobj 840 0 obj <> endobj 841 0 obj [190 0 R/XYZ 50 757 1] endobj 842 0 obj <> endobj 843 0 obj <> endobj 844 0 obj [190 0 R/XYZ 50 757 1] endobj 845 0 obj <> endobj 846 0 obj [190 0 R/XYZ 50 757 1] endobj 847 0 obj [190 0 R/XYZ 50 757 1] endobj 848 0 obj [190 0 R/XYZ 50 757 1] endobj 849 0 obj <> endobj 850 0 obj <> endobj 851 0 obj <> endobj 852 0 obj <> endobj 853 0 obj <> endobj 854 0 obj <> endobj 855 0 obj <> endobj 856 0 obj <> endobj 857 0 obj <> endobj 858 0 obj <> endobj 859 0 obj [190 0 R/XYZ 50 757 1] endobj 860 0 obj <> endobj 861 0 obj <> endobj 862 0 obj <> endobj 863 0 obj [190 0 R/XYZ 50 757 1] endobj 864 0 obj <> endobj 865 0 obj [190 0 R/XYZ 50 757 1] endobj 866 0 obj <> endobj 867 0 obj <> endobj 868 0 obj <> endobj 869 0 obj [190 0 R/XYZ 50 757 1] endobj 870 0 obj <> endobj 871 0 obj <> endobj 872 0 obj [190 0 R/XYZ 50 757 1] endobj 873 0 obj <> endobj 874 0 obj <> endobj 875 0 obj <> endobj 876 0 obj [229 0 R/XYZ 50 757 1] endobj 877 0 obj <> endobj 878 0 obj [229 0 R/XYZ 50 757 1] endobj 879 0 obj <> endobj 880 0 obj <> endobj 881 0 obj [229 0 R/XYZ 50 757 1] endobj 882 0 obj <> endobj 883 0 obj <> endobj 884 0 obj <> endobj 885 0 obj <> endobj 886 0 obj <> endobj 887 0 obj <> endobj 888 0 obj [229 0 R/XYZ 50 757 1] endobj 889 0 obj <> endobj 890 0 obj <> endobj 891 0 obj [229 0 R/XYZ 50 757 1] endobj 892 0 obj <> endobj 893 0 obj [229 0 R/XYZ 50 757 1] endobj 894 0 obj <> endobj 895 0 obj <> endobj 896 0 obj [229 0 R/XYZ 50 757 1] endobj 897 0 obj <> endobj 898 0 obj <> endobj 899 0 obj <> endobj 900 0 obj <> endobj 901 0 obj <> endobj 902 0 obj <> endobj 903 0 obj [229 0 R/XYZ 50 757 1] endobj 904 0 obj <> endobj 905 0 obj <> endobj 906 0 obj <> endobj 907 0 obj <> endobj 908 0 obj [229 0 R/XYZ 50 757 1] endobj 909 0 obj <> endobj 910 0 obj <> endobj 911 0 obj <> endobj 912 0 obj <> endobj 913 0 obj <> endobj 914 0 obj <> endobj 915 0 obj [229 0 R/XYZ 50 757 1] endobj 916 0 obj <> endobj 917 0 obj <> endobj 918 0 obj [229 0 R/XYZ 50 757 1] endobj 919 0 obj <> endobj 920 0 obj <> endobj 921 0 obj <> endobj 922 0 obj <> endobj 923 0 obj <> endobj 924 0 obj <> endobj 925 0 obj [229 0 R/XYZ 50 757 1] endobj 926 0 obj <> endobj 927 0 obj <> endobj 928 0 obj <> endobj 929 0 obj [229 0 R/XYZ 50 757 1] endobj 930 0 obj <> endobj 931 0 obj [229 0 R/XYZ 50 757 1] endobj 932 0 obj <> endobj 933 0 obj <> endobj 934 0 obj [229 0 R/XYZ 50 757 1] endobj 935 0 obj <> endobj 936 0 obj <> endobj 937 0 obj [229 0 R/XYZ 50 757 1] endobj 938 0 obj <> endobj 939 0 obj <> endobj 940 0 obj [229 0 R/XYZ 50 757 1] endobj 941 0 obj [229 0 R/XYZ 50 757 1] endobj 942 0 obj [229 0 R/XYZ 50 757 1] endobj 943 0 obj <> endobj 944 0 obj [229 0 R/XYZ 50 757 1] endobj 945 0 obj <> endobj 946 0 obj [229 0 R/XYZ 50 757 1] endobj 947 0 obj <> endobj 948 0 obj <> endobj 949 0 obj <> endobj 950 0 obj [229 0 R/XYZ 50 757 1] endobj 951 0 obj <> endobj 952 0 obj <> endobj 953 0 obj <> endobj 954 0 obj <> endobj 955 0 obj <> endobj 956 0 obj <> endobj 957 0 obj <> endobj 958 0 obj <> endobj 959 0 obj <> endobj 960 0 obj [229 0 R/XYZ 50 757 1] endobj 961 0 obj <> endobj 962 0 obj <> endobj 963 0 obj [229 0 R/XYZ 50 757 1] endobj 964 0 obj <> endobj 965 0 obj <> endobj 966 0 obj <> endobj 967 0 obj [229 0 R/XYZ 50 757 1] endobj 968 0 obj <> endobj 969 0 obj <> endobj 970 0 obj <> endobj 971 0 obj <> endobj 972 0 obj <> endobj 973 0 obj [229 0 R/XYZ 50 757 1] endobj 974 0 obj <> endobj 975 0 obj <> endobj 976 0 obj [229 0 R/XYZ 50 757 1] endobj 977 0 obj <> endobj 978 0 obj <> endobj 979 0 obj <> endobj 980 0 obj <> endobj 981 0 obj [229 0 R/XYZ 50 757 1] endobj 982 0 obj [229 0 R/XYZ 50 757 1] endobj 983 0 obj <> endobj 984 0 obj <> endobj 985 0 obj <> endobj 986 0 obj <> endobj 987 0 obj [229 0 R/XYZ 50 757 1] endobj 988 0 obj <> endobj 989 0 obj [229 0 R/XYZ 50 757 1] endobj 990 0 obj <> endobj 991 0 obj <> endobj 992 0 obj <> endobj 993 0 obj <> endobj 994 0 obj [229 0 R/XYZ 50 757 1] endobj 995 0 obj <> endobj 996 0 obj <> endobj 997 0 obj <> endobj 998 0 obj [229 0 R/XYZ 50 757 1] endobj 999 0 obj [229 0 R/XYZ 50 757 1] endobj 1000 0 obj [229 0 R/XYZ 50 757 1] endobj 1001 0 obj <> endobj 1002 0 obj [229 0 R/XYZ 50 757 1] endobj 1003 0 obj <> endobj 1004 0 obj <> endobj 1005 0 obj <> endobj 1006 0 obj <> endobj 1007 0 obj [229 0 R/XYZ 50 757 1] endobj 1008 0 obj [229 0 R/XYZ 50 757 1] endobj 1009 0 obj <> endobj 1010 0 obj <> endobj 1011 0 obj <> endobj 1012 0 obj <> endobj 1013 0 obj <> endobj 1014 0 obj <> endobj 1015 0 obj <> endobj 1016 0 obj <> endobj 1017 0 obj <> endobj 1018 0 obj [268 0 R/XYZ 50 757 1] endobj 1019 0 obj <> endobj 1020 0 obj [268 0 R/XYZ 50 757 1] endobj 1021 0 obj <> endobj 1022 0 obj [268 0 R/XYZ 50 757 1] endobj 1023 0 obj <> endobj 1024 0 obj [268 0 R/XYZ 50 757 1] endobj 1025 0 obj <> endobj 1026 0 obj <> endobj 1027 0 obj <> endobj 1028 0 obj <> endobj 1029 0 obj [268 0 R/XYZ 50 757 1] endobj 1030 0 obj <> endobj 1031 0 obj <> endobj 1032 0 obj <> endobj 1033 0 obj <> endobj 1034 0 obj <> endobj 1035 0 obj [268 0 R/XYZ 50 757 1] endobj 1036 0 obj <> endobj 1037 0 obj <> endobj 1038 0 obj [268 0 R/XYZ 50 757 1] endobj 1039 0 obj <> endobj 1040 0 obj <> endobj 1041 0 obj <> endobj 1042 0 obj <> endobj 1043 0 obj [268 0 R/XYZ 50 757 1] endobj 1044 0 obj <> endobj 1045 0 obj <> endobj 1046 0 obj <> endobj 1047 0 obj <> endobj 1048 0 obj [268 0 R/XYZ 50 757 1] endobj 1049 0 obj <> endobj 1050 0 obj [268 0 R/XYZ 50 757 1] endobj 1051 0 obj <> endobj 1052 0 obj [268 0 R/XYZ 50 757 1] endobj 1053 0 obj [268 0 R/XYZ 50 757 1] endobj 1054 0 obj [268 0 R/XYZ 50 757 1] endobj 1055 0 obj <> endobj 1056 0 obj <> endobj 1057 0 obj <> endobj 1058 0 obj [268 0 R/XYZ 50 757 1] endobj 1059 0 obj <> endobj 1060 0 obj <> endobj 1061 0 obj <> endobj 1062 0 obj [268 0 R/XYZ 50 757 1] endobj 1063 0 obj <> endobj 1064 0 obj <> endobj 1065 0 obj <> endobj 1066 0 obj <> endobj 1067 0 obj [268 0 R/XYZ 50 757 1] endobj 1068 0 obj <> endobj 1069 0 obj [268 0 R/XYZ 50 757 1] endobj 1070 0 obj <> endobj 1071 0 obj <> endobj 1072 0 obj <> endobj 1073 0 obj <> endobj 1074 0 obj <> endobj 1075 0 obj [268 0 R/XYZ 50 757 1] endobj 1076 0 obj <> endobj 1077 0 obj [268 0 R/XYZ 50 757 1] endobj 1078 0 obj <> endobj 1079 0 obj [268 0 R/XYZ 50 757 1] endobj 1080 0 obj [268 0 R/XYZ 50 757 1] endobj 1081 0 obj [268 0 R/XYZ 50 757 1] endobj 1082 0 obj <> endobj 1083 0 obj <> endobj 1084 0 obj <> endobj 1085 0 obj <> endobj 1086 0 obj [268 0 R/XYZ 50 757 1] endobj 1087 0 obj <> endobj 1088 0 obj <> endobj 1089 0 obj <> endobj 1090 0 obj <> endobj 1091 0 obj <> endobj 1092 0 obj <> endobj 1093 0 obj <> endobj 1094 0 obj <> endobj 1095 0 obj <> endobj 1096 0 obj <> endobj 1097 0 obj <> endobj 1098 0 obj <> endobj 1099 0 obj <> endobj 1100 0 obj <> endobj 1101 0 obj <> endobj 1102 0 obj [268 0 R/XYZ 50 757 1] endobj 1103 0 obj <> endobj 1104 0 obj <> endobj 1105 0 obj [268 0 R/XYZ 50 757 1] endobj 1106 0 obj <> endobj 1107 0 obj <> endobj 1108 0 obj <> endobj 1109 0 obj <> endobj 1110 0 obj [268 0 R/XYZ 50 757 1] endobj 1111 0 obj <> endobj 1112 0 obj <> endobj 1113 0 obj <> endobj 1114 0 obj [268 0 R/XYZ 50 757 1] endobj 1115 0 obj <> endobj 1116 0 obj [268 0 R/XYZ 50 757 1] endobj 1117 0 obj [268 0 R/XYZ 50 757 1] endobj 1118 0 obj <> endobj 1119 0 obj [268 0 R/XYZ 50 757 1] endobj 1120 0 obj <> endobj 1121 0 obj <> endobj 1122 0 obj <> endobj 1123 0 obj <> endobj 1124 0 obj <> endobj 1125 0 obj <> endobj 1126 0 obj <> endobj 1127 0 obj <> endobj 1128 0 obj <> endobj 1129 0 obj <> endobj 1130 0 obj [268 0 R/XYZ 50 757 1] endobj 1131 0 obj <> endobj 1132 0 obj <> endobj 1133 0 obj [268 0 R/XYZ 50 757 1] endobj 1134 0 obj <> endobj 1135 0 obj <> endobj 1136 0 obj [268 0 R/XYZ 50 757 1] endobj 1137 0 obj <> endobj 1138 0 obj <> endobj 1139 0 obj <> endobj 1140 0 obj <> endobj 1141 0 obj <> endobj 1142 0 obj <> endobj 1143 0 obj [268 0 R/XYZ 50 757 1] endobj 1144 0 obj <> endobj 1145 0 obj <> endobj 1146 0 obj [268 0 R/XYZ 50 757 1] endobj 1147 0 obj [268 0 R/XYZ 50 757 1] endobj 1148 0 obj <> endobj 1149 0 obj [268 0 R/XYZ 50 757 1] endobj 1150 0 obj <> endobj 1151 0 obj <> endobj 1152 0 obj <> endobj 1153 0 obj <> endobj 1154 0 obj <> endobj 1155 0 obj <> endobj 1156 0 obj <> endobj 1157 0 obj [268 0 R/XYZ 50 757 1] endobj 1158 0 obj <> endobj 1159 0 obj <> endobj 1160 0 obj <> endobj 1161 0 obj <> endobj 1162 0 obj <> endobj 1163 0 obj <> endobj 1164 0 obj <> endobj 1165 0 obj [307 0 R/XYZ 50 757 1] endobj 1166 0 obj <> endobj 1167 0 obj <> endobj 1168 0 obj <> endobj 1169 0 obj <> endobj 1170 0 obj [307 0 R/XYZ 50 757 1] endobj 1171 0 obj <> endobj 1172 0 obj <> endobj 1173 0 obj <> endobj 1174 0 obj <> endobj 1175 0 obj [307 0 R/XYZ 50 757 1] endobj 1176 0 obj [307 0 R/XYZ 50 757 1] endobj 1177 0 obj <> endobj 1178 0 obj <> endobj 1179 0 obj [307 0 R/XYZ 50 757 1] endobj 1180 0 obj <> endobj 1181 0 obj [307 0 R/XYZ 50 757 1] endobj 1182 0 obj [307 0 R/XYZ 50 757 1] endobj 1183 0 obj <> endobj 1184 0 obj <> endobj 1185 0 obj [307 0 R/XYZ 50 757 1] endobj 1186 0 obj <> endobj 1187 0 obj <> endobj 1188 0 obj <> endobj 1189 0 obj <> endobj 1190 0 obj [307 0 R/XYZ 50 757 1] endobj 1191 0 obj <> endobj 1192 0 obj <> endobj 1193 0 obj <> endobj 1194 0 obj <> endobj 1195 0 obj <> endobj 1196 0 obj <> endobj 1197 0 obj [307 0 R/XYZ 50 757 1] endobj 1198 0 obj <> endobj 1199 0 obj <> endobj 1200 0 obj <> endobj 1201 0 obj <> endobj 1202 0 obj <> endobj 1203 0 obj <> endobj 1204 0 obj <> endobj 1205 0 obj <> endobj 1206 0 obj [307 0 R/XYZ 50 757 1] endobj 1207 0 obj <> endobj 1208 0 obj <> endobj 1209 0 obj <> endobj 1210 0 obj <> endobj 1211 0 obj <> endobj 1212 0 obj <> endobj 1213 0 obj [307 0 R/XYZ 50 757 1] endobj 1214 0 obj <> endobj 1215 0 obj <> endobj 1216 0 obj [307 0 R/XYZ 50 757 1] endobj 1217 0 obj <> endobj 1218 0 obj <> endobj 1219 0 obj [307 0 R/XYZ 50 757 1] endobj 1220 0 obj [307 0 R/XYZ 50 757 1] endobj 1221 0 obj <> endobj 1222 0 obj [307 0 R/XYZ 50 757 1] endobj 1223 0 obj <> endobj 1224 0 obj <> endobj 1225 0 obj <> endobj 1226 0 obj [307 0 R/XYZ 50 757 1] endobj 1227 0 obj [307 0 R/XYZ 50 757 1] endobj 1228 0 obj <> endobj 1229 0 obj <> endobj 1230 0 obj [307 0 R/XYZ 50 757 1] endobj 1231 0 obj <> endobj 1232 0 obj <> endobj 1233 0 obj [307 0 R/XYZ 50 757 1] endobj 1234 0 obj <> endobj 1235 0 obj <> endobj 1236 0 obj <> endobj 1237 0 obj <> endobj 1238 0 obj <> endobj 1239 0 obj <> endobj 1240 0 obj <> endobj 1241 0 obj [307 0 R/XYZ 50 757 1] endobj 1242 0 obj <> endobj 1243 0 obj [307 0 R/XYZ 50 757 1] endobj 1244 0 obj <> endobj 1245 0 obj <> endobj 1246 0 obj <> endobj 1247 0 obj <> endobj 1248 0 obj <> endobj 1249 0 obj [307 0 R/XYZ 50 757 1] endobj 1250 0 obj <> endobj 1251 0 obj <> endobj 1252 0 obj <> endobj 1253 0 obj <> endobj 1254 0 obj <> endobj 1255 0 obj <> endobj 1256 0 obj <> endobj 1257 0 obj <> endobj 1258 0 obj <> endobj 1259 0 obj <> endobj 1260 0 obj <> endobj 1261 0 obj <> endobj 1262 0 obj <> endobj 1263 0 obj [307 0 R/XYZ 50 757 1] endobj 1264 0 obj <> endobj 1265 0 obj <> endobj 1266 0 obj <> endobj 1267 0 obj [307 0 R/XYZ 50 757 1] endobj 1268 0 obj <> endobj 1269 0 obj [307 0 R/XYZ 50 757 1] endobj 1270 0 obj <> endobj 1271 0 obj [307 0 R/XYZ 50 757 1] endobj 1272 0 obj <> endobj 1273 0 obj [307 0 R/XYZ 50 757 1] endobj 1274 0 obj [307 0 R/XYZ 50 757 1] endobj 1275 0 obj [307 0 R/XYZ 50 757 1] endobj 1276 0 obj <> endobj 1277 0 obj <> endobj 1278 0 obj <> endobj 1279 0 obj <> endobj 1280 0 obj <> endobj 1281 0 obj [307 0 R/XYZ 50 757 1] endobj 1282 0 obj <> endobj 1283 0 obj [307 0 R/XYZ 50 757 1] endobj 1284 0 obj <> endobj 1285 0 obj <> endobj 1286 0 obj <> endobj 1287 0 obj <> endobj 1288 0 obj <> endobj 1289 0 obj <> endobj 1290 0 obj <> endobj 1291 0 obj [307 0 R/XYZ 50 757 1] endobj 1292 0 obj <> endobj 1293 0 obj <> endobj 1294 0 obj <> endobj 1295 0 obj <> endobj 1296 0 obj <> endobj 1297 0 obj <> endobj 1298 0 obj <> endobj 1299 0 obj <> endobj 1300 0 obj <> endobj 1301 0 obj <> endobj 1302 0 obj <> endobj 1303 0 obj [307 0 R/XYZ 50 757 1] endobj 1304 0 obj <> endobj 1305 0 obj <> endobj 1306 0 obj <> endobj 1307 0 obj <> endobj 1308 0 obj <> endobj 1309 0 obj <> endobj 1310 0 obj [307 0 R/XYZ 50 757 1] endobj 1311 0 obj <> endobj 1312 0 obj <> endobj 1313 0 obj <> endobj 1314 0 obj <> endobj 1315 0 obj <> endobj 1316 0 obj <> endobj 1317 0 obj <> endobj 1318 0 obj <> endobj 1319 0 obj <> endobj 1320 0 obj <> endobj 1321 0 obj [307 0 R/XYZ 50 757 1] endobj 1322 0 obj <> endobj 1323 0 obj <> endobj 1324 0 obj [307 0 R/XYZ 50 757 1] endobj 1325 0 obj [307 0 R/XYZ 50 757 1] endobj 1326 0 obj [346 0 R/XYZ 50 757 1] endobj 1327 0 obj <> endobj 1328 0 obj <> endobj 1329 0 obj <> endobj 1330 0 obj <> endobj 1331 0 obj <> endobj 1332 0 obj <> endobj 1333 0 obj <> endobj 1334 0 obj [346 0 R/XYZ 50 757 1] endobj 1335 0 obj <> endobj 1336 0 obj <> endobj 1337 0 obj <> endobj 1338 0 obj <> endobj 1339 0 obj <> endobj 1340 0 obj [346 0 R/XYZ 50 757 1] endobj 1341 0 obj [346 0 R/XYZ 50 757 1] endobj 1342 0 obj <> endobj 1343 0 obj <> endobj 1344 0 obj <> endobj 1345 0 obj <> endobj 1346 0 obj <> endobj 1347 0 obj <> endobj 1348 0 obj <> endobj 1349 0 obj <> endobj 1350 0 obj [346 0 R/XYZ 50 757 1] endobj 1351 0 obj <> endobj 1352 0 obj [346 0 R/XYZ 50 757 1] endobj 1353 0 obj <> endobj 1354 0 obj [346 0 R/XYZ 50 757 1] endobj 1355 0 obj <> endobj 1356 0 obj [346 0 R/XYZ 50 757 1] endobj 1357 0 obj <> endobj 1358 0 obj <> endobj 1359 0 obj <> endobj 1360 0 obj <> endobj 1361 0 obj <> endobj 1362 0 obj <> endobj 1363 0 obj [346 0 R/XYZ 50 757 1] endobj 1364 0 obj <> endobj 1365 0 obj <> endobj 1366 0 obj <> endobj 1367 0 obj [346 0 R/XYZ 50 757 1] endobj 1368 0 obj <> endobj 1369 0 obj <> endobj 1370 0 obj <> endobj 1371 0 obj <> endobj 1372 0 obj <> endobj 1373 0 obj <> endobj 1374 0 obj <> endobj 1375 0 obj [346 0 R/XYZ 50 757 1] endobj 1376 0 obj <> endobj 1377 0 obj <> endobj 1378 0 obj [346 0 R/XYZ 50 757 1] endobj 1379 0 obj <> endobj 1380 0 obj [346 0 R/XYZ 50 757 1] endobj 1381 0 obj <> endobj 1382 0 obj <> endobj 1383 0 obj [346 0 R/XYZ 50 757 1] endobj 1384 0 obj [346 0 R/XYZ 50 757 1] endobj 1385 0 obj [346 0 R/XYZ 50 757 1] endobj 1386 0 obj <> endobj 1387 0 obj <> endobj 1388 0 obj <> endobj 1389 0 obj <> endobj 1390 0 obj <> endobj 1391 0 obj <> endobj 1392 0 obj <> endobj 1393 0 obj [346 0 R/XYZ 50 757 1] endobj 1394 0 obj <> endobj 1395 0 obj <> endobj 1396 0 obj <> endobj 1397 0 obj <> endobj 1398 0 obj [346 0 R/XYZ 50 757 1] endobj 1399 0 obj <> endobj 1400 0 obj <> endobj 1401 0 obj <> endobj 1402 0 obj [346 0 R/XYZ 50 757 1] endobj 1403 0 obj <> endobj 1404 0 obj <> endobj 1405 0 obj <> endobj 1406 0 obj <> endobj 1407 0 obj [346 0 R/XYZ 50 757 1] endobj 1408 0 obj <> endobj 1409 0 obj <> endobj 1410 0 obj <> endobj 1411 0 obj <> endobj 1412 0 obj <> endobj 1413 0 obj <> endobj 1414 0 obj <> endobj 1415 0 obj [346 0 R/XYZ 50 757 1] endobj 1416 0 obj <> endobj 1417 0 obj [346 0 R/XYZ 50 757 1] endobj 1418 0 obj <> endobj 1419 0 obj <> endobj 1420 0 obj [346 0 R/XYZ 50 757 1] endobj 1421 0 obj [346 0 R/XYZ 50 757 1] endobj 1422 0 obj [346 0 R/XYZ 50 757 1] endobj 1423 0 obj <> endobj 1424 0 obj [346 0 R/XYZ 50 757 1] endobj 1425 0 obj <> endobj 1426 0 obj <> endobj 1427 0 obj [346 0 R/XYZ 50 757 1] endobj 1428 0 obj <> endobj 1429 0 obj <> endobj 1430 0 obj <> endobj 1431 0 obj <> endobj 1432 0 obj [346 0 R/XYZ 50 757 1] endobj 1433 0 obj <> endobj 1434 0 obj <> endobj 1435 0 obj [346 0 R/XYZ 50 757 1] endobj 1436 0 obj <> endobj 1437 0 obj [346 0 R/XYZ 50 757 1] endobj 1438 0 obj [346 0 R/XYZ 50 757 1] endobj 1439 0 obj <> endobj 1440 0 obj <> endobj 1441 0 obj <> endobj 1442 0 obj <> endobj 1443 0 obj <> endobj 1444 0 obj <> endobj 1445 0 obj <> endobj 1446 0 obj <> endobj 1447 0 obj <> endobj 1448 0 obj <> endobj 1449 0 obj <> endobj 1450 0 obj <> endobj 1451 0 obj <> endobj 1452 0 obj <> endobj 1453 0 obj <> endobj 1454 0 obj <> endobj 1455 0 obj <> endobj 1456 0 obj <> endobj 1457 0 obj <> endobj 1458 0 obj <> endobj 1459 0 obj <> endobj 1460 0 obj <> endobj 1461 0 obj <> endobj 1462 0 obj <> endobj 1463 0 obj <> endobj 1464 0 obj <> endobj 1465 0 obj <> endobj 1466 0 obj <> endobj 1467 0 obj [346 0 R/XYZ 50 757 1] endobj 1468 0 obj <> endobj 1469 0 obj <> endobj 1470 0 obj <> endobj 1471 0 obj <> endobj 1472 0 obj <> endobj 1473 0 obj [346 0 R/XYZ 50 757 1] endobj 1474 0 obj <> endobj 1475 0 obj <> endobj 1476 0 obj <> endobj 1477 0 obj [346 0 R/XYZ 50 757 1] endobj 1478 0 obj [346 0 R/XYZ 50 757 1] endobj 1479 0 obj [346 0 R/XYZ 50 757 1] endobj 1480 0 obj <> endobj 1481 0 obj <> endobj 1482 0 obj <> endobj 1483 0 obj [346 0 R/XYZ 50 757 1] endobj 1484 0 obj <> endobj 1485 0 obj [346 0 R/XYZ 50 757 1] endobj 1486 0 obj <> endobj 1487 0 obj <> endobj 1488 0 obj [356 0 R/XYZ 50 757 1] endobj 1489 0 obj <> endobj 1490 0 obj <> endobj 1491 0 obj <> endobj 1492 0 obj <> endobj 1493 0 obj <> endobj 1494 0 obj <> endobj 1495 0 obj <> endobj 1496 0 obj <> endobj 1497 0 obj <> endobj 1498 0 obj <> endobj 1499 0 obj <> endobj 1500 0 obj <> endobj 1501 0 obj <> endobj 1502 0 obj <> endobj 1503 0 obj <> endobj 1504 0 obj <> endobj 1505 0 obj <> endobj 1506 0 obj <> endobj 1507 0 obj <> endobj 1508 0 obj <> endobj 1509 0 obj <> endobj 1510 0 obj <> endobj 1511 0 obj <> endobj 1512 0 obj <> endobj 1513 0 obj <> endobj 1514 0 obj <> endobj 1515 0 obj <> endobj 1516 0 obj <> endobj 1517 0 obj <> endobj 1518 0 obj <> endobj 1519 0 obj <> endobj 1520 0 obj <> endobj 1521 0 obj <> endobj 1522 0 obj <> endobj 1523 0 obj <> endobj 1524 0 obj <> endobj 1525 0 obj <> endobj 1526 0 obj <> endobj 1527 0 obj <> endobj 1528 0 obj <> endobj 1529 0 obj <> endobj 1530 0 obj <> endobj 1531 0 obj <> endobj 1532 0 obj <> endobj 1533 0 obj <> endobj 1534 0 obj <> endobj 1535 0 obj <> endobj 1536 0 obj <> endobj 1537 0 obj [356 0 R/XYZ 50 757 1] endobj 1538 0 obj <> endobj 1539 0 obj <> endobj 1540 0 obj [356 0 R/XYZ 50 757 1] endobj 1541 0 obj <> endobj 1542 0 obj <> endobj 1543 0 obj <> endobj 1544 0 obj <> endobj 1545 0 obj <> endobj 1546 0 obj <> endobj 1547 0 obj <> endobj 1548 0 obj <> endobj 1549 0 obj <> endobj 1550 0 obj <> endobj 1551 0 obj <> endobj 1552 0 obj <> endobj 1553 0 obj <> endobj 1554 0 obj <> endobj 1555 0 obj <> endobj 1556 0 obj <> endobj 1557 0 obj <> endobj 1558 0 obj <> endobj 1559 0 obj <> endobj 1560 0 obj <> endobj 1561 0 obj <> endobj 1562 0 obj <> endobj 1563 0 obj <> endobj 1564 0 obj <> endobj 1565 0 obj <> endobj 1566 0 obj <> endobj 1567 0 obj <> endobj 1568 0 obj <> endobj 1569 0 obj <> endobj 1570 0 obj <> endobj 1571 0 obj <> endobj 1572 0 obj <> endobj 1573 0 obj <> endobj 1574 0 obj <> endobj 1575 0 obj <> endobj 1576 0 obj <> endobj 1577 0 obj <> endobj 1578 0 obj <> endobj 1579 0 obj <> endobj 1580 0 obj <> endobj 1581 0 obj <> endobj 1582 0 obj <> endobj 1583 0 obj <> endobj 1584 0 obj <> endobj 1585 0 obj <> endobj 1586 0 obj <> endobj 1587 0 obj <> endobj 1588 0 obj <> endobj 1589 0 obj <> endobj 1590 0 obj <> endobj 1591 0 obj [356 0 R/XYZ 50 757 1] endobj 1592 0 obj [356 0 R/XYZ 50 757 1] endobj 1593 0 obj <> endobj 1594 0 obj <> endobj 1595 0 obj <> endobj 1596 0 obj [356 0 R/XYZ 50 757 1] endobj 1597 0 obj <> endobj 1598 0 obj <> endobj 1599 0 obj <> endobj 1600 0 obj <> endobj 1601 0 obj <> endobj 1602 0 obj <> endobj 1603 0 obj <> endobj 1604 0 obj [356 0 R/XYZ 50 757 1] endobj 1605 0 obj <> endobj 1606 0 obj <> endobj 1607 0 obj <> endobj 1608 0 obj <> endobj 1609 0 obj <> endobj 1610 0 obj <> endobj 1611 0 obj <> endobj 1612 0 obj <> endobj 1613 0 obj <> endobj 1614 0 obj <> endobj 1615 0 obj <> endobj 1616 0 obj <> endobj 1617 0 obj <> endobj 1618 0 obj <> endobj 1619 0 obj <> endobj 1620 0 obj <> endobj 1621 0 obj <> endobj 1622 0 obj <> endobj 1623 0 obj <> endobj 1624 0 obj <> endobj 1625 0 obj <> endobj 1626 0 obj <> endobj 1627 0 obj <> endobj 1628 0 obj <> endobj 1629 0 obj <> endobj 1630 0 obj <> endobj 1631 0 obj <> endobj 1632 0 obj <> endobj 1633 0 obj <> endobj 1634 0 obj <> endobj 1635 0 obj <> endobj 1636 0 obj <> endobj 1637 0 obj <> endobj 1638 0 obj <> endobj 1639 0 obj <> endobj 1640 0 obj <> endobj 1641 0 obj <> endobj 1642 0 obj <> endobj 1643 0 obj <> endobj 1644 0 obj <> endobj 1645 0 obj <> endobj 1646 0 obj <> endobj 1647 0 obj [356 0 R/XYZ 50 757 1] endobj 1648 0 obj <> endobj 1649 0 obj <> endobj 1650 0 obj <> endobj 1651 0 obj <> endobj 1652 0 obj <> endobj 1653 0 obj <> endobj 1654 0 obj <> endobj 1655 0 obj <> endobj 1656 0 obj [356 0 R/XYZ 50 757 1] endobj 1657 0 obj [381 0 R/XYZ 0 15259 1] endobj 1658 0 obj [740 0 R/XYZ 0 15259 1] endobj 1659 0 obj [948 0 R/XYZ 0 15259 1] endobj 1660 0 obj [432 0 R/XYZ 0 15259 1] endobj 1661 0 obj [383 0 R/XYZ 0 15259 1] endobj 1662 0 obj [1137 0 R/XYZ 0 15259 1] endobj 1663 0 obj [383 0 R/XYZ 0 15259 1] endobj 1664 0 obj [402 0 R/XYZ 0 15259 1] endobj 1665 0 obj [432 0 R/XYZ 0 15259 1] endobj 1666 0 obj [509 0 R/XYZ 0 15259 1] endobj 1667 0 obj [571 0 R/XYZ 0 15259 1] endobj 1668 0 obj [583 0 R/XYZ 0 15259 1] endobj 1669 0 obj [585 0 R/XYZ 0 15259 1] endobj 1670 0 obj [665 0 R/XYZ 0 15259 1] endobj 1671 0 obj [795 0 R/XYZ 0 15259 1] endobj 1672 0 obj [864 0 R/XYZ 0 15259 1] endobj 1673 0 obj [868 0 R/XYZ 0 15259 1] endobj 1674 0 obj [1063 0 R/XYZ 0 15259 1] endobj 1675 0 obj [1106 0 R/XYZ 0 15259 1] endobj 1676 0 obj [1113 0 R/XYZ 0 15259 1] endobj 1677 0 obj [1131 0 R/XYZ 0 15259 1] endobj 1678 0 obj [1137 0 R/XYZ 0 15259 1] endobj 1679 0 obj [1221 0 R/XYZ 0 15259 1] endobj 1680 0 obj [383 0 R/XYZ 0 15259 1] endobj 1681 0 obj [429 0 R/XYZ 0 15259 1] endobj 1682 0 obj [432 0 R/XYZ 0 15259 1] endobj 1683 0 obj [440 0 R/XYZ 0 15259 1] endobj 1684 0 obj [458 0 R/XYZ 0 15259 1] endobj 1685 0 obj [693 0 R/XYZ 0 15259 1] endobj 1686 0 obj [770 0 R/XYZ 0 15259 1] endobj 1687 0 obj [782 0 R/XYZ 0 15259 1] endobj 1688 0 obj [812 0 R/XYZ 0 15259 1] endobj 1689 0 obj [849 0 R/XYZ 0 15259 1] endobj 1690 0 obj [854 0 R/XYZ 0 15259 1] endobj 1691 0 obj [868 0 R/XYZ 0 15259 1] endobj 1692 0 obj [917 0 R/XYZ 0 15259 1] endobj 1693 0 obj [1083 0 R/XYZ 0 15259 1] endobj 1694 0 obj [1151 0 R/XYZ 0 15259 1] endobj 1695 0 obj [1410 0 R/XYZ 0 15259 1] endobj 1696 0 obj [1597 0 R/XYZ 0 15259 1] endobj 1697 0 obj [1652 0 R/XYZ 0 15259 1] endobj 1698 0 obj [432 0 R/XYZ 0 15259 1] endobj 1699 0 obj [501 0 R/XYZ 0 15259 1] endobj 1700 0 obj [432 0 R/XYZ 0 15259 1] endobj 1701 0 obj [1652 0 R/XYZ 0 15259 1] endobj 1702 0 obj [383 0 R/XYZ 0 15259 1] endobj 1703 0 obj [407 0 R/XYZ 0 15259 1] endobj 1704 0 obj [432 0 R/XYZ 0 15259 1] endobj 1705 0 obj [499 0 R/XYZ 0 15259 1] endobj 1706 0 obj [558 0 R/XYZ 0 15259 1] endobj 1707 0 obj [571 0 R/XYZ 0 15259 1] endobj 1708 0 obj [583 0 R/XYZ 0 15259 1] endobj 1709 0 obj [614 0 R/XYZ 0 15259 1] endobj 1710 0 obj [740 0 R/XYZ 0 15259 1] endobj 1711 0 obj [868 0 R/XYZ 0 15259 1] endobj 1712 0 obj [1151 0 R/XYZ 0 15259 1] endobj 1713 0 obj [1221 0 R/XYZ 0 15259 1] endobj 1714 0 obj [1410 0 R/XYZ 0 15259 1] endobj 1715 0 obj [1425 0 R/XYZ 0 15259 1] endobj 1716 0 obj [1652 0 R/XYZ 0 15259 1] endobj 1717 0 obj [1536 0 R/XYZ 0 15259 1] endobj 1718 0 obj [690 0 R/XYZ 0 15259 1] endobj 1719 0 obj [743 0 R/XYZ 0 15259 1] endobj 1720 0 obj [749 0 R/XYZ 0 15259 1] endobj 1721 0 obj [788 0 R/XYZ 0 15259 1] endobj 1722 0 obj [792 0 R/XYZ 0 15259 1] endobj 1723 0 obj [849 0 R/XYZ 0 15259 1] endobj 1724 0 obj [853 0 R/XYZ 0 15259 1] endobj 1725 0 obj [855 0 R/XYZ 0 15259 1] endobj 1726 0 obj [871 0 R/XYZ 0 15259 1] endobj 1727 0 obj [916 0 R/XYZ 0 15259 1] endobj 1728 0 obj [919 0 R/XYZ 0 15259 1] endobj 1729 0 obj [938 0 R/XYZ 0 15259 1] endobj 1730 0 obj [1031 0 R/XYZ 0 15259 1] endobj 1731 0 obj [1599 0 R/XYZ 0 15259 1] endobj 1732 0 obj [916 0 R/XYZ 0 15259 1] endobj 1733 0 obj [917 0 R/XYZ 0 15259 1] endobj 1734 0 obj [384 0 R/XYZ 0 15259 1] endobj 1735 0 obj [388 0 R/XYZ 0 15259 1] endobj 1736 0 obj [451 0 R/XYZ 0 15259 1] endobj 1737 0 obj [459 0 R/XYZ 0 15259 1] endobj 1738 0 obj [482 0 R/XYZ 0 15259 1] endobj 1739 0 obj [592 0 R/XYZ 0 15259 1] endobj 1740 0 obj [600 0 R/XYZ 0 15259 1] endobj 1741 0 obj [601 0 R/XYZ 0 15259 1] endobj 1742 0 obj [774 0 R/XYZ 0 15259 1] endobj 1743 0 obj [1172 0 R/XYZ 0 15259 1] endobj 1744 0 obj [1611 0 R/XYZ 0 15259 1] endobj 1745 0 obj [613 0 R/XYZ 0 15259 1] endobj 1746 0 obj [871 0 R/XYZ 0 15259 1] endobj 1747 0 obj [1036 0 R/XYZ 0 15259 1] endobj 1748 0 obj [1247 0 R/XYZ 0 15259 1] endobj 1749 0 obj [1248 0 R/XYZ 0 15259 1] endobj 1750 0 obj [1255 0 R/XYZ 0 15259 1] endobj 1751 0 obj [1257 0 R/XYZ 0 15259 1] endobj 1752 0 obj [1284 0 R/XYZ 0 15259 1] endobj 1753 0 obj [1288 0 R/XYZ 0 15259 1] endobj 1754 0 obj [1289 0 R/XYZ 0 15259 1] endobj 1755 0 obj [1298 0 R/XYZ 0 15259 1] endobj 1756 0 obj [1511 0 R/XYZ 0 15259 1] endobj 1757 0 obj [1247 0 R/XYZ 0 15259 1] endobj 1758 0 obj [542 0 R/XYZ 0 15259 1] endobj 1759 0 obj [545 0 R/XYZ 0 15259 1] endobj 1760 0 obj [571 0 R/XYZ 0 15259 1] endobj 1761 0 obj [576 0 R/XYZ 0 15259 1] endobj 1762 0 obj [871 0 R/XYZ 0 15259 1] endobj 1763 0 obj [1037 0 R/XYZ 0 15259 1] endobj 1764 0 obj [542 0 R/XYZ 0 15259 1] endobj 1765 0 obj [437 0 R/XYZ 0 15259 1] endobj 1766 0 obj [671 0 R/XYZ 0 15259 1] endobj 1767 0 obj [673 0 R/XYZ 0 15259 1] endobj 1768 0 obj [785 0 R/XYZ 0 15259 1] endobj 1769 0 obj [792 0 R/XYZ 0 15259 1] endobj 1770 0 obj [785 0 R/XYZ 0 15259 1] endobj 1771 0 obj [786 0 R/XYZ 0 15259 1] endobj 1772 0 obj [789 0 R/XYZ 0 15259 1] endobj 1773 0 obj [785 0 R/XYZ 0 15259 1] endobj 1774 0 obj [785 0 R/XYZ 0 15259 1] endobj 1775 0 obj [790 0 R/XYZ 0 15259 1] endobj 1776 0 obj [787 0 R/XYZ 0 15259 1] endobj 1777 0 obj [789 0 R/XYZ 0 15259 1] endobj 1778 0 obj [790 0 R/XYZ 0 15259 1] endobj 1779 0 obj [818 0 R/XYZ 0 15259 1] endobj 1780 0 obj [1508 0 R/XYZ 0 15259 1] endobj 1781 0 obj [1514 0 R/XYZ 0 15259 1] endobj 1782 0 obj [1517 0 R/XYZ 0 15259 1] endobj 1783 0 obj [1521 0 R/XYZ 0 15259 1] endobj 1784 0 obj [1514 0 R/XYZ 0 15259 1] endobj 1785 0 obj [1525 0 R/XYZ 0 15259 1] endobj 1786 0 obj [1528 0 R/XYZ 0 15259 1] endobj 1787 0 obj [1525 0 R/XYZ 0 15259 1] endobj 1788 0 obj [1228 0 R/XYZ 0 15259 1] endobj 1789 0 obj [1244 0 R/XYZ 0 15259 1] endobj 1790 0 obj [1236 0 R/XYZ 0 15259 1] endobj 1791 0 obj [1240 0 R/XYZ 0 15259 1] endobj 1792 0 obj [1254 0 R/XYZ 0 15259 1] endobj 1793 0 obj [1256 0 R/XYZ 0 15259 1] endobj 1794 0 obj [1258 0 R/XYZ 0 15259 1] endobj 1795 0 obj [1260 0 R/XYZ 0 15259 1] endobj 1796 0 obj [1262 0 R/XYZ 0 15259 1] endobj 1797 0 obj [1494 0 R/XYZ 0 15259 1] endobj 1798 0 obj [1496 0 R/XYZ 0 15259 1] endobj 1799 0 obj [1498 0 R/XYZ 0 15259 1] endobj 1800 0 obj [1501 0 R/XYZ 0 15259 1] endobj 1801 0 obj [1507 0 R/XYZ 0 15259 1] endobj 1802 0 obj [1508 0 R/XYZ 0 15259 1] endobj 1803 0 obj [1510 0 R/XYZ 0 15259 1] endobj 1804 0 obj [1513 0 R/XYZ 0 15259 1] endobj 1805 0 obj [1527 0 R/XYZ 0 15259 1] endobj 1806 0 obj [373 0 R/XYZ 0 15259 1] endobj 1807 0 obj [373 0 R/XYZ 0 15259 1] endobj 1808 0 obj [373 0 R/XYZ 0 15259 1] endobj 1809 0 obj [373 0 R/XYZ 0 15259 1] endobj 1810 0 obj [373 0 R/XYZ 0 15259 1] endobj 1811 0 obj [367 0 R/XYZ 0 15259 1] endobj 1812 0 obj <> endobj 1813 0 obj [1508 0 R/XYZ 0 15259 1] endobj 1814 0 obj [1518 0 R/XYZ 0 15259 1] endobj 1815 0 obj [1522 0 R/XYZ 0 15259 1] endobj 1816 0 obj [1522 0 R/XYZ 0 15259 1] endobj 1817 0 obj [1196 0 R/XYZ 0 15259 1] endobj 1818 0 obj [1198 0 R/XYZ 0 15259 1] endobj 1819 0 obj [1519 0 R/XYZ 0 15259 1] endobj 1820 0 obj [1648 0 R/XYZ 0 15259 1] endobj 1821 0 obj [1097 0 R/XYZ 0 15259 1] endobj 1822 0 obj [426 0 R/XYZ 0 15259 1] endobj 1823 0 obj [787 0 R/XYZ 0 15259 1] endobj 1824 0 obj [1223 0 R/XYZ 0 15259 1] endobj 1825 0 obj [1224 0 R/XYZ 0 15259 1] endobj 1826 0 obj [1231 0 R/XYZ 0 15259 1] endobj 1827 0 obj [1232 0 R/XYZ 0 15259 1] endobj 1828 0 obj [1235 0 R/XYZ 0 15259 1] endobj 1829 0 obj [1238 0 R/XYZ 0 15259 1] endobj 1830 0 obj [1240 0 R/XYZ 0 15259 1] endobj 1831 0 obj [1242 0 R/XYZ 0 15259 1] endobj 1832 0 obj [1496 0 R/XYZ 0 15259 1] endobj 1833 0 obj [1502 0 R/XYZ 0 15259 1] endobj 1834 0 obj [1223 0 R/XYZ 0 15259 1] endobj 1835 0 obj [1231 0 R/XYZ 0 15259 1] endobj 1836 0 obj [1232 0 R/XYZ 0 15259 1] endobj 1837 0 obj [1238 0 R/XYZ 0 15259 1] endobj 1838 0 obj [1223 0 R/XYZ 0 15259 1] endobj 1839 0 obj [1223 0 R/XYZ 0 15259 1] endobj 1840 0 obj [786 0 R/XYZ 0 15259 1] endobj 1841 0 obj [787 0 R/XYZ 0 15259 1] endobj 1842 0 obj [789 0 R/XYZ 0 15259 1] endobj 1843 0 obj [1223 0 R/XYZ 0 15259 1] endobj 1844 0 obj [1238 0 R/XYZ 0 15259 1] endobj 1845 0 obj [1277 0 R/XYZ 0 15259 1] endobj 1846 0 obj [1279 0 R/XYZ 0 15259 1] endobj 1847 0 obj [1284 0 R/XYZ 0 15259 1] endobj 1848 0 obj [1286 0 R/XYZ 0 15259 1] endobj 1849 0 obj [1289 0 R/XYZ 0 15259 1] endobj 1850 0 obj [1290 0 R/XYZ 0 15259 1] endobj 1851 0 obj [1641 0 R/XYZ 0 15259 1] endobj 1852 0 obj [1223 0 R/XYZ 0 15259 1] endobj 1853 0 obj [1238 0 R/XYZ 0 15259 1] endobj 1854 0 obj [814 0 R/XYZ 0 15259 1] endobj 1855 0 obj [776 0 R/XYZ 0 15259 1] endobj 1856 0 obj [1648 0 R/XYZ 0 15259 1] endobj 1857 0 obj [1240 0 R/XYZ 0 15259 1] endobj 1858 0 obj [1240 0 R/XYZ 0 15259 1] endobj 1859 0 obj [1256 0 R/XYZ 0 15259 1] endobj 1860 0 obj [1258 0 R/XYZ 0 15259 1] endobj 1861 0 obj [1264 0 R/XYZ 0 15259 1] endobj 1862 0 obj [1496 0 R/XYZ 0 15259 1] endobj 1863 0 obj [1240 0 R/XYZ 0 15259 1] endobj 1864 0 obj [1240 0 R/XYZ 0 15259 1] endobj 1865 0 obj [1123 0 R/XYZ 0 15259 1] endobj 1866 0 obj [1124 0 R/XYZ 0 15259 1] endobj 1867 0 obj [1123 0 R/XYZ 0 15259 1] endobj 1868 0 obj [1120 0 R/XYZ 0 15259 1] endobj 1869 0 obj [1126 0 R/XYZ 0 15259 1] endobj 1870 0 obj [1127 0 R/XYZ 0 15259 1] endobj 1871 0 obj [871 0 R/XYZ 0 15259 1] endobj 1872 0 obj [1122 0 R/XYZ 0 15259 1] endobj 1873 0 obj [1124 0 R/XYZ 0 15259 1] endobj 1874 0 obj [1128 0 R/XYZ 0 15259 1] endobj 1875 0 obj [1129 0 R/XYZ 0 15259 1] endobj 1876 0 obj [1122 0 R/XYZ 0 15259 1] endobj 1877 0 obj [1121 0 R/XYZ 0 15259 1] endobj 1878 0 obj [1122 0 R/XYZ 0 15259 1] endobj 1879 0 obj [1129 0 R/XYZ 0 15259 1] endobj 1880 0 obj [1122 0 R/XYZ 0 15259 1] endobj 1881 0 obj [421 0 R/XYZ 0 15259 1] endobj 1882 0 obj [1124 0 R/XYZ 0 15259 1] endobj 1883 0 obj [1125 0 R/XYZ 0 15259 1] endobj 1884 0 obj [1124 0 R/XYZ 0 15259 1] endobj 1885 0 obj [1125 0 R/XYZ 0 15259 1] endobj 1886 0 obj [1124 0 R/XYZ 0 15259 1] endobj 1887 0 obj [1125 0 R/XYZ 0 15259 1] endobj 1888 0 obj [1121 0 R/XYZ 0 15259 1] endobj 1889 0 obj [1122 0 R/XYZ 0 15259 1] endobj 1890 0 obj [1124 0 R/XYZ 0 15259 1] endobj 1891 0 obj [1127 0 R/XYZ 0 15259 1] endobj 1892 0 obj [1121 0 R/XYZ 0 15259 1] endobj 1893 0 obj [871 0 R/XYZ 0 15259 1] endobj 1894 0 obj [1122 0 R/XYZ 0 15259 1] endobj 1895 0 obj [1128 0 R/XYZ 0 15259 1] endobj 1896 0 obj [1129 0 R/XYZ 0 15259 1] endobj 1897 0 obj [1122 0 R/XYZ 0 15259 1] endobj 1898 0 obj [871 0 R/XYZ 0 15259 1] endobj 1899 0 obj [1036 0 R/XYZ 0 15259 1] endobj 1900 0 obj [1123 0 R/XYZ 0 15259 1] endobj 1901 0 obj [1129 0 R/XYZ 0 15259 1] endobj 1902 0 obj [1123 0 R/XYZ 0 15259 1] endobj 1903 0 obj [1121 0 R/XYZ 0 15259 1] endobj 1904 0 obj [1122 0 R/XYZ 0 15259 1] endobj 1905 0 obj [1124 0 R/XYZ 0 15259 1] endobj 1906 0 obj [1128 0 R/XYZ 0 15259 1] endobj 1907 0 obj [1121 0 R/XYZ 0 15259 1] endobj 1908 0 obj [1240 0 R/XYZ 0 15259 1] endobj 1909 0 obj [1237 0 R/XYZ 0 15259 1] endobj 1910 0 obj [1240 0 R/XYZ 0 15259 1] endobj 1911 0 obj [437 0 R/XYZ 0 15259 1] endobj 1912 0 obj [875 0 R/XYZ 0 15259 1] endobj 1913 0 obj [849 0 R/XYZ 0 15259 1] endobj 1914 0 obj [853 0 R/XYZ 0 15259 1] endobj 1915 0 obj [871 0 R/XYZ 0 15259 1] endobj 1916 0 obj [873 0 R/XYZ 0 15259 1] endobj 1917 0 obj [877 0 R/XYZ 0 15259 1] endobj 1918 0 obj [882 0 R/XYZ 0 15259 1] endobj 1919 0 obj [887 0 R/XYZ 0 15259 1] endobj 1920 0 obj [906 0 R/XYZ 0 15259 1] endobj 1921 0 obj [926 0 R/XYZ 0 15259 1] endobj 1922 0 obj [927 0 R/XYZ 0 15259 1] endobj 1923 0 obj [938 0 R/XYZ 0 15259 1] endobj 1924 0 obj [939 0 R/XYZ 0 15259 1] endobj 1925 0 obj [1260 0 R/XYZ 0 15259 1] endobj 1926 0 obj [1261 0 R/XYZ 0 15259 1] endobj 1927 0 obj [1624 0 R/XYZ 0 15259 1] endobj 1928 0 obj [882 0 R/XYZ 0 15259 1] endobj 1929 0 obj [708 0 R/XYZ 0 15259 1] endobj 1930 0 obj [383 0 R/XYZ 0 15259 1] endobj 1931 0 obj [1071 0 R/XYZ 0 15259 1] endobj 1932 0 obj [1074 0 R/XYZ 0 15259 1] endobj 1933 0 obj [1070 0 R/XYZ 0 15259 1] endobj 1934 0 obj [1332 0 R/XYZ 0 15259 1] endobj 1935 0 obj [1339 0 R/XYZ 0 15259 1] endobj 1936 0 obj [1344 0 R/XYZ 0 15259 1] endobj 1937 0 obj [1184 0 R/XYZ 0 15259 1] endobj 1938 0 obj [1648 0 R/XYZ 0 15259 1] endobj 1939 0 obj [416 0 R/XYZ 0 15259 1] endobj 1940 0 obj [1426 0 R/XYZ 0 15259 1] endobj 1941 0 obj [1439 0 R/XYZ 0 15259 1] endobj 1942 0 obj [1443 0 R/XYZ 0 15259 1] endobj 1943 0 obj [1447 0 R/XYZ 0 15259 1] endobj 1944 0 obj [386 0 R/XYZ 0 15259 1] endobj 1945 0 obj [389 0 R/XYZ 0 15259 1] endobj 1946 0 obj [391 0 R/XYZ 0 15259 1] endobj 1947 0 obj [758 0 R/XYZ 0 15259 1] endobj 1948 0 obj [861 0 R/XYZ 0 15259 1] endobj 1949 0 obj [1091 0 R/XYZ 0 15259 1] endobj 1950 0 obj [1092 0 R/XYZ 0 15259 1] endobj 1951 0 obj [1284 0 R/XYZ 0 15259 1] endobj 1952 0 obj [1441 0 R/XYZ 0 15259 1] endobj 1953 0 obj [1593 0 R/XYZ 0 15259 1] endobj 1954 0 obj [1597 0 R/XYZ 0 15259 1] endobj 1955 0 obj [378 0 R/XYZ 0 15259 1] endobj 1956 0 obj [380 0 R/XYZ 0 15259 1] endobj 1957 0 obj [1509 0 R/XYZ 0 15259 1] endobj 1958 0 obj [446 0 R/XYZ 0 15259 1] endobj 1959 0 obj [451 0 R/XYZ 0 15259 1] endobj 1960 0 obj [455 0 R/XYZ 0 15259 1] endobj 1961 0 obj [458 0 R/XYZ 0 15259 1] endobj 1962 0 obj [763 0 R/XYZ 0 15259 1] endobj 1963 0 obj [697 0 R/XYZ 0 15259 1] endobj 1964 0 obj [1315 0 R/XYZ 0 15259 1] endobj 1965 0 obj [702 0 R/XYZ 0 15259 1] endobj 1966 0 obj [1648 0 R/XYZ 0 15259 1] endobj 1967 0 obj [421 0 R/XYZ 0 15259 1] endobj 1968 0 obj [1229 0 R/XYZ 0 15259 1] endobj 1969 0 obj [679 0 R/XYZ 0 15259 1] endobj 1970 0 obj [419 0 R/XYZ 0 15259 1] endobj 1971 0 obj [633 0 R/XYZ 0 15259 1] endobj 1972 0 obj [787 0 R/XYZ 0 15259 1] endobj 1973 0 obj [789 0 R/XYZ 0 15259 1] endobj 1974 0 obj [1104 0 R/XYZ 0 15259 1] endobj 1975 0 obj [1115 0 R/XYZ 0 15259 1] endobj 1976 0 obj [1129 0 R/XYZ 0 15259 1] endobj 1977 0 obj [1270 0 R/XYZ 0 15259 1] endobj 1978 0 obj [870 0 R/XYZ 0 15259 1] endobj 1979 0 obj [1030 0 R/XYZ 0 15259 1] endobj 1980 0 obj [1034 0 R/XYZ 0 15259 1] endobj 1981 0 obj [1044 0 R/XYZ 0 15259 1] endobj 1982 0 obj [1049 0 R/XYZ 0 15259 1] endobj 1983 0 obj [1051 0 R/XYZ 0 15259 1] endobj 1984 0 obj [1627 0 R/XYZ 0 15259 1] endobj 1985 0 obj [772 0 R/XYZ 0 15259 1] endobj 1986 0 obj [1066 0 R/XYZ 0 15259 1] endobj 1987 0 obj [772 0 R/XYZ 0 15259 1] endobj 1988 0 obj [1057 0 R/XYZ 0 15259 1] endobj 1989 0 obj [543 0 R/XYZ 0 15259 1] endobj 1990 0 obj [446 0 R/XYZ 0 15259 1] endobj 1991 0 obj [448 0 R/XYZ 0 15259 1] endobj 1992 0 obj [451 0 R/XYZ 0 15259 1] endobj 1993 0 obj [692 0 R/XYZ 0 15259 1] endobj 1994 0 obj [694 0 R/XYZ 0 15259 1] endobj 1995 0 obj [727 0 R/XYZ 0 15259 1] endobj 1996 0 obj [743 0 R/XYZ 0 15259 1] endobj 1997 0 obj [957 0 R/XYZ 0 15259 1] endobj 1998 0 obj [1405 0 R/XYZ 0 15259 1] endobj 1999 0 obj [1620 0 R/XYZ 0 15259 1] endobj 2000 0 obj [692 0 R/XYZ 0 15259 1] endobj 2001 0 obj [446 0 R/XYZ 0 15259 1] endobj 2002 0 obj [448 0 R/XYZ 0 15259 1] endobj 2003 0 obj [451 0 R/XYZ 0 15259 1] endobj 2004 0 obj [458 0 R/XYZ 0 15259 1] endobj 2005 0 obj [461 0 R/XYZ 0 15259 1] endobj 2006 0 obj [483 0 R/XYZ 0 15259 1] endobj 2007 0 obj [529 0 R/XYZ 0 15259 1] endobj 2008 0 obj [542 0 R/XYZ 0 15259 1] endobj 2009 0 obj [548 0 R/XYZ 0 15259 1] endobj 2010 0 obj [554 0 R/XYZ 0 15259 1] endobj 2011 0 obj [564 0 R/XYZ 0 15259 1] endobj 2012 0 obj [565 0 R/XYZ 0 15259 1] endobj 2013 0 obj [570 0 R/XYZ 0 15259 1] endobj 2014 0 obj [574 0 R/XYZ 0 15259 1] endobj 2015 0 obj [576 0 R/XYZ 0 15259 1] endobj 2016 0 obj [580 0 R/XYZ 0 15259 1] endobj 2017 0 obj [583 0 R/XYZ 0 15259 1] endobj 2018 0 obj [1172 0 R/XYZ 0 15259 1] endobj 2019 0 obj [1452 0 R/XYZ 0 15259 1] endobj 2020 0 obj [1533 0 R/XYZ 0 15259 1] endobj 2021 0 obj [1534 0 R/XYZ 0 15259 1] endobj 2022 0 obj [1451 0 R/XYZ 0 15259 1] endobj 2023 0 obj [1453 0 R/XYZ 0 15259 1] endobj 2024 0 obj [1512 0 R/XYZ 0 15259 1] endobj 2025 0 obj [1517 0 R/XYZ 0 15259 1] endobj 2026 0 obj [445 0 R/XYZ 0 15259 1] endobj 2027 0 obj [452 0 R/XYZ 0 15259 1] endobj 2028 0 obj [472 0 R/XYZ 0 15259 1] endobj 2029 0 obj [481 0 R/XYZ 0 15259 1] endobj 2030 0 obj [503 0 R/XYZ 0 15259 1] endobj 2031 0 obj [506 0 R/XYZ 0 15259 1] endobj 2032 0 obj [509 0 R/XYZ 0 15259 1] endobj 2033 0 obj [564 0 R/XYZ 0 15259 1] endobj 2034 0 obj [614 0 R/XYZ 0 15259 1] endobj 2035 0 obj [909 0 R/XYZ 0 15259 1] endobj 2036 0 obj [916 0 R/XYZ 0 15259 1] endobj 2037 0 obj [1090 0 R/XYZ 0 15259 1] endobj 2038 0 obj [1172 0 R/XYZ 0 15259 1] endobj 2039 0 obj [1192 0 R/XYZ 0 15259 1] endobj 2040 0 obj [1194 0 R/XYZ 0 15259 1] endobj 2041 0 obj [1196 0 R/XYZ 0 15259 1] endobj 2042 0 obj [1645 0 R/XYZ 0 15259 1] endobj 2043 0 obj [565 0 R/XYZ 0 15259 1] endobj 2044 0 obj [564 0 R/XYZ 0 15259 1] endobj 2045 0 obj [529 0 R/XYZ 0 15259 1] endobj 2046 0 obj [548 0 R/XYZ 0 15259 1] endobj 2047 0 obj [554 0 R/XYZ 0 15259 1] endobj 2048 0 obj [580 0 R/XYZ 0 15259 1] endobj 2049 0 obj [385 0 R/XYZ 0 15259 1] endobj 2050 0 obj [429 0 R/XYZ 0 15259 1] endobj 2051 0 obj [649 0 R/XYZ 0 15259 1] endobj 2052 0 obj [879 0 R/XYZ 0 15259 1] endobj 2053 0 obj [1112 0 R/XYZ 0 15259 1] endobj 2054 0 obj [1649 0 R/XYZ 0 15259 1] endobj 2055 0 obj [700 0 R/XYZ 0 15259 1] endobj 2056 0 obj [714 0 R/XYZ 0 15259 1] endobj 2057 0 obj [716 0 R/XYZ 0 15259 1] endobj 2058 0 obj [718 0 R/XYZ 0 15259 1] endobj 2059 0 obj [727 0 R/XYZ 0 15259 1] endobj 2060 0 obj [968 0 R/XYZ 0 15259 1] endobj 2061 0 obj [974 0 R/XYZ 0 15259 1] endobj 2062 0 obj [452 0 R/XYZ 0 15259 1] endobj 2063 0 obj [454 0 R/XYZ 0 15259 1] endobj 2064 0 obj [776 0 R/XYZ 0 15259 1] endobj 2065 0 obj [779 0 R/XYZ 0 15259 1] endobj 2066 0 obj [1171 0 R/XYZ 0 15259 1] endobj 2067 0 obj [1651 0 R/XYZ 0 15259 1] endobj 2068 0 obj [787 0 R/XYZ 0 15259 1] endobj 2069 0 obj [789 0 R/XYZ 0 15259 1] endobj 2070 0 obj [790 0 R/XYZ 0 15259 1] endobj 2071 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2072 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2073 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2074 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2075 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2076 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2077 0 obj [372 0 R/XYZ 0 15259 1] endobj 2078 0 obj [373 0 R/XYZ 0 15259 1] endobj 2079 0 obj [361 0 R/XYZ 0 15259 1] endobj 2080 0 obj [367 0 R/XYZ 0 15259 1] endobj 2081 0 obj <> endobj 2082 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2083 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2084 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2085 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2086 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2087 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2088 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2089 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2090 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2091 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2092 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2093 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2094 0 obj [499 0 R/XYZ 0 15259 1] endobj 2095 0 obj [509 0 R/XYZ 0 15259 1] endobj 2096 0 obj [558 0 R/XYZ 0 15259 1] endobj 2097 0 obj [564 0 R/XYZ 0 15259 1] endobj 2098 0 obj [734 0 R/XYZ 0 15259 1] endobj 2099 0 obj [1607 0 R/XYZ 0 15259 1] endobj 2100 0 obj [1649 0 R/XYZ 0 15259 1] endobj 2101 0 obj [823 0 R/XYZ 0 15259 1] endobj 2102 0 obj [829 0 R/XYZ 0 15259 1] endobj 2103 0 obj [831 0 R/XYZ 0 15259 1] endobj 2104 0 obj [834 0 R/XYZ 0 15259 1] endobj 2105 0 obj [836 0 R/XYZ 0 15259 1] endobj 2106 0 obj [838 0 R/XYZ 0 15259 1] endobj 2107 0 obj [840 0 R/XYZ 0 15259 1] endobj 2108 0 obj [857 0 R/XYZ 0 15259 1] endobj 2109 0 obj [921 0 R/XYZ 0 15259 1] endobj 2110 0 obj [932 0 R/XYZ 0 15259 1] endobj 2111 0 obj [1644 0 R/XYZ 0 15259 1] endobj 2112 0 obj [1245 0 R/XYZ 0 15259 1] endobj 2113 0 obj [1649 0 R/XYZ 0 15259 1] endobj 2114 0 obj [1023 0 R/XYZ 0 15259 1] endobj 2115 0 obj [1025 0 R/XYZ 0 15259 1] endobj 2116 0 obj [990 0 R/XYZ 0 15259 1] endobj 2117 0 obj [995 0 R/XYZ 0 15259 1] endobj 2118 0 obj [1025 0 R/XYZ 0 15259 1] endobj 2119 0 obj [514 0 R/XYZ 0 15259 1] endobj 2120 0 obj [924 0 R/XYZ 0 15259 1] endobj 2121 0 obj [812 0 R/XYZ 0 15259 1] endobj 2122 0 obj [812 0 R/XYZ 0 15259 1] endobj 2123 0 obj [1087 0 R/XYZ 0 15259 1] endobj 2124 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2125 0 obj [1355 0 R/XYZ 0 15259 1] endobj 2126 0 obj [1648 0 R/XYZ 0 15259 1] endobj 2127 0 obj [1654 0 R/XYZ 0 15259 1] endobj 2128 0 obj [1228 0 R/XYZ 0 15259 1] endobj 2129 0 obj [1482 0 R/XYZ 0 15259 1] endobj 2130 0 obj [871 0 R/XYZ 0 15259 1] endobj 2131 0 obj [1242 0 R/XYZ 0 15259 1] endobj 2132 0 obj [1248 0 R/XYZ 0 15259 1] endobj 2133 0 obj [1265 0 R/XYZ 0 15259 1] endobj 2134 0 obj [1266 0 R/XYZ 0 15259 1] endobj 2135 0 obj [1282 0 R/XYZ 0 15259 1] endobj 2136 0 obj [1284 0 R/XYZ 0 15259 1] endobj 2137 0 obj [1286 0 R/XYZ 0 15259 1] endobj 2138 0 obj [1287 0 R/XYZ 0 15259 1] endobj 2139 0 obj [1290 0 R/XYZ 0 15259 1] endobj 2140 0 obj [1242 0 R/XYZ 0 15259 1] endobj 2141 0 obj [658 0 R/XYZ 0 15259 1] endobj 2142 0 obj [658 0 R/XYZ 0 15259 1] endobj 2143 0 obj [850 0 R/XYZ 0 15259 1] endobj 2144 0 obj [531 0 R/XYZ 0 15259 1] endobj 2145 0 obj [595 0 R/XYZ 0 15259 1] endobj 2146 0 obj [596 0 R/XYZ 0 15259 1] endobj 2147 0 obj [1166 0 R/XYZ 0 15259 1] endobj 2148 0 obj [1649 0 R/XYZ 0 15259 1] endobj 2149 0 obj [429 0 R/XYZ 0 15259 1] endobj 2150 0 obj [499 0 R/XYZ 0 15259 1] endobj 2151 0 obj [558 0 R/XYZ 0 15259 1] endobj 2152 0 obj [564 0 R/XYZ 0 15259 1] endobj 2153 0 obj [1137 0 R/XYZ 0 15259 1] endobj 2154 0 obj [1652 0 R/XYZ 0 15259 1] endobj 2155 0 obj [734 0 R/XYZ 0 15259 1] endobj 2156 0 obj [743 0 R/XYZ 0 15259 1] endobj 2157 0 obj [381 0 R/XYZ 0 15259 1] endobj 2158 0 obj [381 0 R/XYZ 0 15259 1] endobj 2159 0 obj [463 0 R/XYZ 0 15259 1] endobj 2160 0 obj [522 0 R/XYZ 0 15259 1] endobj 2161 0 obj [708 0 R/XYZ 0 15259 1] endobj 2162 0 obj [722 0 R/XYZ 0 15259 1] endobj 2163 0 obj [812 0 R/XYZ 0 15259 1] endobj 2164 0 obj [828 0 R/XYZ 0 15259 1] endobj 2165 0 obj [833 0 R/XYZ 0 15259 1] endobj 2166 0 obj [924 0 R/XYZ 0 15259 1] endobj 2167 0 obj [1099 0 R/XYZ 0 15259 1] endobj 2168 0 obj [1159 0 R/XYZ 0 15259 1] endobj 2169 0 obj [1166 0 R/XYZ 0 15259 1] endobj 2170 0 obj [1366 0 R/XYZ 0 15259 1] endobj 2171 0 obj [1635 0 R/XYZ 0 15259 1] endobj 2172 0 obj [1651 0 R/XYZ 0 15259 1] endobj 2173 0 obj [381 0 R/XYZ 0 15259 1] endobj 2174 0 obj [383 0 R/XYZ 0 15259 1] endobj 2175 0 obj [463 0 R/XYZ 0 15259 1] endobj 2176 0 obj [514 0 R/XYZ 0 15259 1] endobj 2177 0 obj [522 0 R/XYZ 0 15259 1] endobj 2178 0 obj [708 0 R/XYZ 0 15259 1] endobj 2179 0 obj [722 0 R/XYZ 0 15259 1] endobj 2180 0 obj [812 0 R/XYZ 0 15259 1] endobj 2181 0 obj [829 0 R/XYZ 0 15259 1] endobj 2182 0 obj [1166 0 R/XYZ 0 15259 1] endobj 2183 0 obj [499 0 R/XYZ 0 15259 1] endobj 2184 0 obj [1333 0 R/XYZ 0 15259 1] endobj 2185 0 obj [1339 0 R/XYZ 0 15259 1] endobj 2186 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2187 0 obj [1347 0 R/XYZ 0 15259 1] endobj 2188 0 obj [1349 0 R/XYZ 0 15259 1] endobj 2189 0 obj [1357 0 R/XYZ 0 15259 1] endobj 2190 0 obj [1373 0 R/XYZ 0 15259 1] endobj 2191 0 obj [1332 0 R/XYZ 0 15259 1] endobj 2192 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2193 0 obj [1347 0 R/XYZ 0 15259 1] endobj 2194 0 obj [1371 0 R/XYZ 0 15259 1] endobj 2195 0 obj [1373 0 R/XYZ 0 15259 1] endobj 2196 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2197 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2198 0 obj [432 0 R/XYZ 0 15259 1] endobj 2199 0 obj [483 0 R/XYZ 0 15259 1] endobj 2200 0 obj [556 0 R/XYZ 0 15259 1] endobj 2201 0 obj [651 0 R/XYZ 0 15259 1] endobj 2202 0 obj [809 0 R/XYZ 0 15259 1] endobj 2203 0 obj [812 0 R/XYZ 0 15259 1] endobj 2204 0 obj [815 0 R/XYZ 0 15259 1] endobj 2205 0 obj [818 0 R/XYZ 0 15259 1] endobj 2206 0 obj [823 0 R/XYZ 0 15259 1] endobj 2207 0 obj [824 0 R/XYZ 0 15259 1] endobj 2208 0 obj [828 0 R/XYZ 0 15259 1] endobj 2209 0 obj [1083 0 R/XYZ 0 15259 1] endobj 2210 0 obj [1104 0 R/XYZ 0 15259 1] endobj 2211 0 obj [1115 0 R/XYZ 0 15259 1] endobj 2212 0 obj [1120 0 R/XYZ 0 15259 1] endobj 2213 0 obj [1145 0 R/XYZ 0 15259 1] endobj 2214 0 obj [1232 0 R/XYZ 0 15259 1] endobj 2215 0 obj [1234 0 R/XYZ 0 15259 1] endobj 2216 0 obj [1277 0 R/XYZ 0 15259 1] endobj 2217 0 obj [1399 0 R/XYZ 0 15259 1] endobj 2218 0 obj [1400 0 R/XYZ 0 15259 1] endobj 2219 0 obj [1409 0 R/XYZ 0 15259 1] endobj 2220 0 obj [1419 0 R/XYZ 0 15259 1] endobj 2221 0 obj [378 0 R/XYZ 0 15259 1] endobj 2222 0 obj [432 0 R/XYZ 0 15259 1] endobj 2223 0 obj [380 0 R/XYZ 0 15259 1] endobj 2224 0 obj [432 0 R/XYZ 0 15259 1] endobj 2225 0 obj [948 0 R/XYZ 0 15259 1] endobj 2226 0 obj [1332 0 R/XYZ 0 15259 1] endobj 2227 0 obj [1343 0 R/XYZ 0 15259 1] endobj 2228 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2229 0 obj [1348 0 R/XYZ 0 15259 1] endobj 2230 0 obj [1068 0 R/XYZ 0 15259 1] endobj 2231 0 obj [700 0 R/XYZ 0 15259 1] endobj 2232 0 obj [1307 0 R/XYZ 0 15259 1] endobj 2233 0 obj [1309 0 R/XYZ 0 15259 1] endobj 2234 0 obj [1320 0 R/XYZ 0 15259 1] endobj 2235 0 obj [1323 0 R/XYZ 0 15259 1] endobj 2236 0 obj [1595 0 R/XYZ 0 15259 1] endobj 2237 0 obj [1308 0 R/XYZ 0 15259 1] endobj 2238 0 obj [509 0 R/XYZ 0 15259 1] endobj 2239 0 obj [609 0 R/XYZ 0 15259 1] endobj 2240 0 obj [611 0 R/XYZ 0 15259 1] endobj 2241 0 obj [736 0 R/XYZ 0 15259 1] endobj 2242 0 obj [741 0 R/XYZ 0 15259 1] endobj 2243 0 obj [780 0 R/XYZ 0 15259 1] endobj 2244 0 obj [919 0 R/XYZ 0 15259 1] endobj 2245 0 obj [1171 0 R/XYZ 0 15259 1] endobj 2246 0 obj [1392 0 R/XYZ 0 15259 1] endobj 2247 0 obj [1436 0 R/XYZ 0 15259 1] endobj 2248 0 obj [458 0 R/XYZ 0 15259 1] endobj 2249 0 obj [611 0 R/XYZ 0 15259 1] endobj 2250 0 obj [638 0 R/XYZ 0 15259 1] endobj 2251 0 obj [720 0 R/XYZ 0 15259 1] endobj 2252 0 obj [1508 0 R/XYZ 0 15259 1] endobj 2253 0 obj [1511 0 R/XYZ 0 15259 1] endobj 2254 0 obj [1516 0 R/XYZ 0 15259 1] endobj 2255 0 obj [1516 0 R/XYZ 0 15259 1] endobj 2256 0 obj [901 0 R/XYZ 0 15259 1] endobj 2257 0 obj [901 0 R/XYZ 0 15259 1] endobj 2258 0 obj [901 0 R/XYZ 0 15259 1] endobj 2259 0 obj [1228 0 R/XYZ 0 15259 1] endobj 2260 0 obj [1229 0 R/XYZ 0 15259 1] endobj 2261 0 obj [1484 0 R/XYZ 0 15259 1] endobj 2262 0 obj [1504 0 R/XYZ 0 15259 1] endobj 2263 0 obj [1519 0 R/XYZ 0 15259 1] endobj 2264 0 obj [1525 0 R/XYZ 0 15259 1] endobj 2265 0 obj [1528 0 R/XYZ 0 15259 1] endobj 2266 0 obj [1536 0 R/XYZ 0 15259 1] endobj 2267 0 obj [1557 0 R/XYZ 0 15259 1] endobj 2268 0 obj [1561 0 R/XYZ 0 15259 1] endobj 2269 0 obj [1228 0 R/XYZ 0 15259 1] endobj 2270 0 obj [1482 0 R/XYZ 0 15259 1] endobj 2271 0 obj [1228 0 R/XYZ 0 15259 1] endobj 2272 0 obj [416 0 R/XYZ 0 15259 1] endobj 2273 0 obj [418 0 R/XYZ 0 15259 1] endobj 2274 0 obj [621 0 R/XYZ 0 15259 1] endobj 2275 0 obj [1651 0 R/XYZ 0 15259 1] endobj 2276 0 obj [381 0 R/XYZ 0 15259 1] endobj 2277 0 obj [463 0 R/XYZ 0 15259 1] endobj 2278 0 obj [722 0 R/XYZ 0 15259 1] endobj 2279 0 obj [812 0 R/XYZ 0 15259 1] endobj 2280 0 obj [828 0 R/XYZ 0 15259 1] endobj 2281 0 obj [1166 0 R/XYZ 0 15259 1] endobj 2282 0 obj [471 0 R/XYZ 0 15259 1] endobj 2283 0 obj [491 0 R/XYZ 0 15259 1] endobj 2284 0 obj [509 0 R/XYZ 0 15259 1] endobj 2285 0 obj [509 0 R/XYZ 0 15259 1] endobj 2286 0 obj [426 0 R/XYZ 0 15259 1] endobj 2287 0 obj [405 0 R/XYZ 0 15259 1] endobj 2288 0 obj [411 0 R/XYZ 0 15259 1] endobj 2289 0 obj [472 0 R/XYZ 0 15259 1] endobj 2290 0 obj [579 0 R/XYZ 0 15259 1] endobj 2291 0 obj [676 0 R/XYZ 0 15259 1] endobj 2292 0 obj [678 0 R/XYZ 0 15259 1] endobj 2293 0 obj [679 0 R/XYZ 0 15259 1] endobj 2294 0 obj [779 0 R/XYZ 0 15259 1] endobj 2295 0 obj [786 0 R/XYZ 0 15259 1] endobj 2296 0 obj [704 0 R/XYZ 0 15259 1] endobj 2297 0 obj [705 0 R/XYZ 0 15259 1] endobj 2298 0 obj [727 0 R/XYZ 0 15259 1] endobj 2299 0 obj [1161 0 R/XYZ 0 15259 1] endobj 2300 0 obj [1446 0 R/XYZ 0 15259 1] endobj 2301 0 obj [1620 0 R/XYZ 0 15259 1] endobj 2302 0 obj [704 0 R/XYZ 0 15259 1] endobj 2303 0 obj [1036 0 R/XYZ 0 15259 1] endobj 2304 0 obj [1364 0 R/XYZ 0 15259 1] endobj 2305 0 obj [1368 0 R/XYZ 0 15259 1] endobj 2306 0 obj [1184 0 R/XYZ 0 15259 1] endobj 2307 0 obj [1648 0 R/XYZ 0 15259 1] endobj 2308 0 obj [830 0 R/XYZ 0 15259 1] endobj 2309 0 obj [520 0 R/XYZ 0 15259 1] endobj 2310 0 obj [558 0 R/XYZ 0 15259 1] endobj 2311 0 obj [574 0 R/XYZ 0 15259 1] endobj 2312 0 obj [830 0 R/XYZ 0 15259 1] endobj 2313 0 obj [834 0 R/XYZ 0 15259 1] endobj 2314 0 obj [1409 0 R/XYZ 0 15259 1] endobj 2315 0 obj [1410 0 R/XYZ 0 15259 1] endobj 2316 0 obj [1430 0 R/XYZ 0 15259 1] endobj 2317 0 obj [1644 0 R/XYZ 0 15259 1] endobj 2318 0 obj [1037 0 R/XYZ 0 15259 1] endobj 2319 0 obj [1025 0 R/XYZ 0 15259 1] endobj 2320 0 obj [1037 0 R/XYZ 0 15259 1] endobj 2321 0 obj [1037 0 R/XYZ 0 15259 1] endobj 2322 0 obj [1331 0 R/XYZ 0 15259 1] endobj 2323 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2324 0 obj [1328 0 R/XYZ 0 15259 1] endobj 2325 0 obj [1369 0 R/XYZ 0 15259 1] endobj 2326 0 obj [1373 0 R/XYZ 0 15259 1] endobj 2327 0 obj [1381 0 R/XYZ 0 15259 1] endobj 2328 0 obj [385 0 R/XYZ 0 15259 1] endobj 2329 0 obj [468 0 R/XYZ 0 15259 1] endobj 2330 0 obj [702 0 R/XYZ 0 15259 1] endobj 2331 0 obj [1331 0 R/XYZ 0 15259 1] endobj 2332 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2333 0 obj [1348 0 R/XYZ 0 15259 1] endobj 2334 0 obj [1330 0 R/XYZ 0 15259 1] endobj 2335 0 obj [1331 0 R/XYZ 0 15259 1] endobj 2336 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2337 0 obj [592 0 R/XYZ 0 15259 1] endobj 2338 0 obj [1331 0 R/XYZ 0 15259 1] endobj 2339 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2340 0 obj [1331 0 R/XYZ 0 15259 1] endobj 2341 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2342 0 obj [499 0 R/XYZ 0 15259 1] endobj 2343 0 obj [373 0 R/XYZ 0 15259 1] endobj 2344 0 obj [358 0 R/XYZ 0 15259 1] endobj 2345 0 obj [374 0 R/XYZ 0 15259 1] endobj 2346 0 obj [362 0 R/XYZ 0 15259 1] endobj 2347 0 obj [372 0 R/XYZ 0 15259 1] endobj 2348 0 obj [373 0 R/XYZ 0 15259 1] endobj 2349 0 obj [374 0 R/XYZ 0 15259 1] endobj 2350 0 obj [373 0 R/XYZ 0 15259 1] endobj 2351 0 obj [373 0 R/XYZ 0 15259 1] endobj 2352 0 obj <> endobj 2353 0 obj [871 0 R/XYZ 0 15259 1] endobj 2354 0 obj [1333 0 R/XYZ 0 15259 1] endobj 2355 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2356 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2357 0 obj [871 0 R/XYZ 0 15259 1] endobj 2358 0 obj [1333 0 R/XYZ 0 15259 1] endobj 2359 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2360 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2361 0 obj [871 0 R/XYZ 0 15259 1] endobj 2362 0 obj [1333 0 R/XYZ 0 15259 1] endobj 2363 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2364 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2365 0 obj [871 0 R/XYZ 0 15259 1] endobj 2366 0 obj [1333 0 R/XYZ 0 15259 1] endobj 2367 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2368 0 obj [1353 0 R/XYZ 0 15259 1] endobj 2369 0 obj [531 0 R/XYZ 0 15259 1] endobj 2370 0 obj [595 0 R/XYZ 0 15259 1] endobj 2371 0 obj [596 0 R/XYZ 0 15259 1] endobj 2372 0 obj [1362 0 R/XYZ 0 15259 1] endobj 2373 0 obj [442 0 R/XYZ 0 15259 1] endobj 2374 0 obj [444 0 R/XYZ 0 15259 1] endobj 2375 0 obj [445 0 R/XYZ 0 15259 1] endobj 2376 0 obj [458 0 R/XYZ 0 15259 1] endobj 2377 0 obj [442 0 R/XYZ 0 15259 1] endobj 2378 0 obj [444 0 R/XYZ 0 15259 1] endobj 2379 0 obj [442 0 R/XYZ 0 15259 1] endobj 2380 0 obj [444 0 R/XYZ 0 15259 1] endobj 2381 0 obj [388 0 R/XYZ 0 15259 1] endobj 2382 0 obj [571 0 R/XYZ 0 15259 1] endobj 2383 0 obj [591 0 R/XYZ 0 15259 1] endobj 2384 0 obj [594 0 R/XYZ 0 15259 1] endobj 2385 0 obj [600 0 R/XYZ 0 15259 1] endobj 2386 0 obj [722 0 R/XYZ 0 15259 1] endobj 2387 0 obj [811 0 R/XYZ 0 15259 1] endobj 2388 0 obj [871 0 R/XYZ 0 15259 1] endobj 2389 0 obj [1061 0 R/XYZ 0 15259 1] endobj 2390 0 obj [1612 0 R/XYZ 0 15259 1] endobj 2391 0 obj [591 0 R/XYZ 0 15259 1] endobj 2392 0 obj [1649 0 R/XYZ 0 15259 1] endobj 2393 0 obj [446 0 R/XYZ 0 15259 1] endobj 2394 0 obj [451 0 R/XYZ 0 15259 1] endobj 2395 0 obj [458 0 R/XYZ 0 15259 1] endobj 2396 0 obj [738 0 R/XYZ 0 15259 1] endobj 2397 0 obj [548 0 R/XYZ 0 15259 1] endobj 2398 0 obj [551 0 R/XYZ 0 15259 1] endobj 2399 0 obj [571 0 R/XYZ 0 15259 1] endobj 2400 0 obj [577 0 R/XYZ 0 15259 1] endobj 2401 0 obj [871 0 R/XYZ 0 15259 1] endobj 2402 0 obj [1037 0 R/XYZ 0 15259 1] endobj 2403 0 obj [1180 0 R/XYZ 0 15259 1] endobj 2404 0 obj [1290 0 R/XYZ 0 15259 1] endobj 2405 0 obj [1644 0 R/XYZ 0 15259 1] endobj 2406 0 obj [548 0 R/XYZ 0 15259 1] endobj 2407 0 obj [537 0 R/XYZ 0 15259 1] endobj 2408 0 obj [538 0 R/XYZ 0 15259 1] endobj 2409 0 obj [1183 0 R/XYZ 0 15259 1] endobj 2410 0 obj [465 0 R/XYZ 0 15259 1] endobj 2411 0 obj [553 0 R/XYZ 0 15259 1] endobj 2412 0 obj [554 0 R/XYZ 0 15259 1] endobj 2413 0 obj [570 0 R/XYZ 0 15259 1] endobj 2414 0 obj [571 0 R/XYZ 0 15259 1] endobj 2415 0 obj [577 0 R/XYZ 0 15259 1] endobj 2416 0 obj [811 0 R/XYZ 0 15259 1] endobj 2417 0 obj [871 0 R/XYZ 0 15259 1] endobj 2418 0 obj [1037 0 R/XYZ 0 15259 1] endobj 2419 0 obj [1180 0 R/XYZ 0 15259 1] endobj 2420 0 obj [1644 0 R/XYZ 0 15259 1] endobj 2421 0 obj [553 0 R/XYZ 0 15259 1] endobj 2422 0 obj [600 0 R/XYZ 0 15259 1] endobj 2423 0 obj [1078 0 R/XYZ 0 15259 1] endobj 2424 0 obj [1610 0 R/XYZ 0 15259 1] endobj 2425 0 obj [1628 0 R/XYZ 0 15259 1] endobj 2426 0 obj [1331 0 R/XYZ 0 15259 1] endobj 2427 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2428 0 obj [1331 0 R/XYZ 0 15259 1] endobj 2429 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2430 0 obj [901 0 R/XYZ 0 15259 1] endobj 2431 0 obj [901 0 R/XYZ 0 15259 1] endobj 2432 0 obj [901 0 R/XYZ 0 15259 1] endobj 2433 0 obj [901 0 R/XYZ 0 15259 1] endobj 2434 0 obj [901 0 R/XYZ 0 15259 1] endobj 2435 0 obj [901 0 R/XYZ 0 15259 1] endobj 2436 0 obj [710 0 R/XYZ 0 15259 1] endobj 2437 0 obj [617 0 R/XYZ 0 15259 1] endobj 2438 0 obj [617 0 R/XYZ 0 15259 1] endobj 2439 0 obj [1307 0 R/XYZ 0 15259 1] endobj 2440 0 obj [1309 0 R/XYZ 0 15259 1] endobj 2441 0 obj [1320 0 R/XYZ 0 15259 1] endobj 2442 0 obj [1322 0 R/XYZ 0 15259 1] endobj 2443 0 obj [1309 0 R/XYZ 0 15259 1] endobj 2444 0 obj [1285 0 R/XYZ 0 15259 1] endobj 2445 0 obj [1286 0 R/XYZ 0 15259 1] endobj 2446 0 obj [1289 0 R/XYZ 0 15259 1] endobj 2447 0 obj [1311 0 R/XYZ 0 15259 1] endobj 2448 0 obj [1317 0 R/XYZ 0 15259 1] endobj 2449 0 obj [1595 0 R/XYZ 0 15259 1] endobj 2450 0 obj [1285 0 R/XYZ 0 15259 1] endobj 2451 0 obj [1289 0 R/XYZ 0 15259 1] endobj 2452 0 obj [1314 0 R/XYZ 0 15259 1] endobj 2453 0 obj [1317 0 R/XYZ 0 15259 1] endobj 2454 0 obj [1319 0 R/XYZ 0 15259 1] endobj 2455 0 obj [1313 0 R/XYZ 0 15259 1] endobj 2456 0 obj [1313 0 R/XYZ 0 15259 1] endobj 2457 0 obj [1314 0 R/XYZ 0 15259 1] endobj 2458 0 obj [1320 0 R/XYZ 0 15259 1] endobj 2459 0 obj [1312 0 R/XYZ 0 15259 1] endobj 2460 0 obj [1508 0 R/XYZ 0 15259 1] endobj 2461 0 obj [1518 0 R/XYZ 0 15259 1] endobj 2462 0 obj [1523 0 R/XYZ 0 15259 1] endobj 2463 0 obj [1523 0 R/XYZ 0 15259 1] endobj 2464 0 obj [1317 0 R/XYZ 0 15259 1] endobj 2465 0 obj [1319 0 R/XYZ 0 15259 1] endobj 2466 0 obj [1313 0 R/XYZ 0 15259 1] endobj 2467 0 obj [1076 0 R/XYZ 0 15259 1] endobj 2468 0 obj [1078 0 R/XYZ 0 15259 1] endobj 2469 0 obj [1214 0 R/XYZ 0 15259 1] endobj 2470 0 obj [1217 0 R/XYZ 0 15259 1] endobj 2471 0 obj [1508 0 R/XYZ 0 15259 1] endobj 2472 0 obj [1511 0 R/XYZ 0 15259 1] endobj 2473 0 obj [1518 0 R/XYZ 0 15259 1] endobj 2474 0 obj [1518 0 R/XYZ 0 15259 1] endobj 2475 0 obj [854 0 R/XYZ 0 15259 1] endobj 2476 0 obj [1331 0 R/XYZ 0 15259 1] endobj 2477 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2478 0 obj [471 0 R/XYZ 0 15259 1] endobj 2479 0 obj [472 0 R/XYZ 0 15259 1] endobj 2480 0 obj [405 0 R/XYZ 0 15259 1] endobj 2481 0 obj [450 0 R/XYZ 0 15259 1] endobj 2482 0 obj [451 0 R/XYZ 0 15259 1] endobj 2483 0 obj [458 0 R/XYZ 0 15259 1] endobj 2484 0 obj [472 0 R/XYZ 0 15259 1] endobj 2485 0 obj [786 0 R/XYZ 0 15259 1] endobj 2486 0 obj [799 0 R/XYZ 0 15259 1] endobj 2487 0 obj [677 0 R/XYZ 0 15259 1] endobj 2488 0 obj [677 0 R/XYZ 0 15259 1] endobj 2489 0 obj [676 0 R/XYZ 0 15259 1] endobj 2490 0 obj [677 0 R/XYZ 0 15259 1] endobj 2491 0 obj [871 0 R/XYZ 0 15259 1] endobj 2492 0 obj [975 0 R/XYZ 0 15259 1] endobj 2493 0 obj [984 0 R/XYZ 0 15259 1] endobj 2494 0 obj [1016 0 R/XYZ 0 15259 1] endobj 2495 0 obj [1019 0 R/XYZ 0 15259 1] endobj 2496 0 obj [676 0 R/XYZ 0 15259 1] endobj 2497 0 obj [676 0 R/XYZ 0 15259 1] endobj 2498 0 obj [676 0 R/XYZ 0 15259 1] endobj 2499 0 obj [926 0 R/XYZ 0 15259 1] endobj 2500 0 obj [928 0 R/XYZ 0 15259 1] endobj 2501 0 obj [1016 0 R/XYZ 0 15259 1] endobj 2502 0 obj [1019 0 R/XYZ 0 15259 1] endobj 2503 0 obj [1036 0 R/XYZ 0 15259 1] endobj 2504 0 obj [1051 0 R/XYZ 0 15259 1] endobj 2505 0 obj [928 0 R/XYZ 0 15259 1] endobj 2506 0 obj [676 0 R/XYZ 0 15259 1] endobj 2507 0 obj [676 0 R/XYZ 0 15259 1] endobj 2508 0 obj [677 0 R/XYZ 0 15259 1] endobj 2509 0 obj [975 0 R/XYZ 0 15259 1] endobj 2510 0 obj [1016 0 R/XYZ 0 15259 1] endobj 2511 0 obj [1019 0 R/XYZ 0 15259 1] endobj 2512 0 obj [1209 0 R/XYZ 0 15259 1] endobj 2513 0 obj [677 0 R/XYZ 0 15259 1] endobj 2514 0 obj [1019 0 R/XYZ 0 15259 1] endobj 2515 0 obj [677 0 R/XYZ 0 15259 1] endobj 2516 0 obj [472 0 R/XYZ 0 15259 1] endobj 2517 0 obj [405 0 R/XYZ 0 15259 1] endobj 2518 0 obj [471 0 R/XYZ 0 15259 1] endobj 2519 0 obj [472 0 R/XYZ 0 15259 1] endobj 2520 0 obj [799 0 R/XYZ 0 15259 1] endobj 2521 0 obj [676 0 R/XYZ 0 15259 1] endobj 2522 0 obj [734 0 R/XYZ 0 15259 1] endobj 2523 0 obj [388 0 R/XYZ 0 15259 1] endobj 2524 0 obj [461 0 R/XYZ 0 15259 1] endobj 2525 0 obj [478 0 R/XYZ 0 15259 1] endobj 2526 0 obj [487 0 R/XYZ 0 15259 1] endobj 2527 0 obj [507 0 R/XYZ 0 15259 1] endobj 2528 0 obj [509 0 R/XYZ 0 15259 1] endobj 2529 0 obj [576 0 R/XYZ 0 15259 1] endobj 2530 0 obj [581 0 R/XYZ 0 15259 1] endobj 2531 0 obj [871 0 R/XYZ 0 15259 1] endobj 2532 0 obj [1036 0 R/XYZ 0 15259 1] endobj 2533 0 obj [1061 0 R/XYZ 0 15259 1] endobj 2534 0 obj [1070 0 R/XYZ 0 15259 1] endobj 2535 0 obj [1094 0 R/XYZ 0 15259 1] endobj 2536 0 obj [1145 0 R/XYZ 0 15259 1] endobj 2537 0 obj [1153 0 R/XYZ 0 15259 1] endobj 2538 0 obj [1155 0 R/XYZ 0 15259 1] endobj 2539 0 obj [1161 0 R/XYZ 0 15259 1] endobj 2540 0 obj [1168 0 R/XYZ 0 15259 1] endobj 2541 0 obj [1172 0 R/XYZ 0 15259 1] endobj 2542 0 obj [1184 0 R/XYZ 0 15259 1] endobj 2543 0 obj [1204 0 R/XYZ 0 15259 1] endobj 2544 0 obj [1205 0 R/XYZ 0 15259 1] endobj 2545 0 obj [1217 0 R/XYZ 0 15259 1] endobj 2546 0 obj [1225 0 R/XYZ 0 15259 1] endobj 2547 0 obj [1228 0 R/XYZ 0 15259 1] endobj 2548 0 obj [1248 0 R/XYZ 0 15259 1] endobj 2549 0 obj [1256 0 R/XYZ 0 15259 1] endobj 2550 0 obj [1258 0 R/XYZ 0 15259 1] endobj 2551 0 obj [1266 0 R/XYZ 0 15259 1] endobj 2552 0 obj [1287 0 R/XYZ 0 15259 1] endobj 2553 0 obj [1288 0 R/XYZ 0 15259 1] endobj 2554 0 obj [1290 0 R/XYZ 0 15259 1] endobj 2555 0 obj [1305 0 R/XYZ 0 15259 1] endobj 2556 0 obj [1306 0 R/XYZ 0 15259 1] endobj 2557 0 obj [1308 0 R/XYZ 0 15259 1] endobj 2558 0 obj [1317 0 R/XYZ 0 15259 1] endobj 2559 0 obj [1319 0 R/XYZ 0 15259 1] endobj 2560 0 obj [1322 0 R/XYZ 0 15259 1] endobj 2561 0 obj [1397 0 R/XYZ 0 15259 1] endobj 2562 0 obj [1399 0 R/XYZ 0 15259 1] endobj 2563 0 obj [1401 0 R/XYZ 0 15259 1] endobj 2564 0 obj [1403 0 R/XYZ 0 15259 1] endobj 2565 0 obj [1414 0 R/XYZ 0 15259 1] endobj 2566 0 obj [1416 0 R/XYZ 0 15259 1] endobj 2567 0 obj [1447 0 R/XYZ 0 15259 1] endobj 2568 0 obj [1517 0 R/XYZ 0 15259 1] endobj 2569 0 obj [1520 0 R/XYZ 0 15259 1] endobj 2570 0 obj [1521 0 R/XYZ 0 15259 1] endobj 2571 0 obj [1523 0 R/XYZ 0 15259 1] endobj 2572 0 obj [1527 0 R/XYZ 0 15259 1] endobj 2573 0 obj [1531 0 R/XYZ 0 15259 1] endobj 2574 0 obj [487 0 R/XYZ 0 15259 1] endobj 2575 0 obj [384 0 R/XYZ 0 15259 1] endobj 2576 0 obj [386 0 R/XYZ 0 15259 1] endobj 2577 0 obj [585 0 R/XYZ 0 15259 1] endobj 2578 0 obj [591 0 R/XYZ 0 15259 1] endobj 2579 0 obj [1037 0 R/XYZ 0 15259 1] endobj 2580 0 obj [1361 0 R/XYZ 0 15259 1] endobj 2581 0 obj [1517 0 R/XYZ 0 15259 1] endobj 2582 0 obj [1610 0 R/XYZ 0 15259 1] endobj 2583 0 obj [585 0 R/XYZ 0 15259 1] endobj 2584 0 obj [1037 0 R/XYZ 0 15259 1] endobj 2585 0 obj [1064 0 R/XYZ 0 15259 1] endobj 2586 0 obj [1064 0 R/XYZ 0 15259 1] endobj 2587 0 obj [507 0 R/XYZ 0 15259 1] endobj 2588 0 obj [512 0 R/XYZ 0 15259 1] endobj 2589 0 obj [764 0 R/XYZ 0 15259 1] endobj 2590 0 obj [765 0 R/XYZ 0 15259 1] endobj 2591 0 obj [1076 0 R/XYZ 0 15259 1] endobj 2592 0 obj [1078 0 R/XYZ 0 15259 1] endobj 2593 0 obj [1094 0 R/XYZ 0 15259 1] endobj 2594 0 obj [1640 0 R/XYZ 0 15259 1] endobj 2595 0 obj [514 0 R/XYZ 0 15259 1] endobj 2596 0 obj [1083 0 R/XYZ 0 15259 1] endobj 2597 0 obj [1084 0 R/XYZ 0 15259 1] endobj 2598 0 obj [1594 0 R/XYZ 0 15259 1] endobj 2599 0 obj [1637 0 R/XYZ 0 15259 1] endobj 2600 0 obj [572 0 R/XYZ 0 15259 1] endobj 2601 0 obj [1298 0 R/XYZ 0 15259 1] endobj 2602 0 obj [1301 0 R/XYZ 0 15259 1] endobj 2603 0 obj [1295 0 R/XYZ 0 15259 1] endobj 2604 0 obj [1296 0 R/XYZ 0 15259 1] endobj 2605 0 obj [1298 0 R/XYZ 0 15259 1] endobj 2606 0 obj [1300 0 R/XYZ 0 15259 1] endobj 2607 0 obj [1302 0 R/XYZ 0 15259 1] endobj 2608 0 obj [1295 0 R/XYZ 0 15259 1] endobj 2609 0 obj [1295 0 R/XYZ 0 15259 1] endobj 2610 0 obj [1302 0 R/XYZ 0 15259 1] endobj 2611 0 obj [1295 0 R/XYZ 0 15259 1] endobj 2612 0 obj [1295 0 R/XYZ 0 15259 1] endobj 2613 0 obj [1297 0 R/XYZ 0 15259 1] endobj 2614 0 obj [1299 0 R/XYZ 0 15259 1] endobj 2615 0 obj [1301 0 R/XYZ 0 15259 1] endobj 2616 0 obj [1295 0 R/XYZ 0 15259 1] endobj 2617 0 obj [1297 0 R/XYZ 0 15259 1] endobj 2618 0 obj [1299 0 R/XYZ 0 15259 1] endobj 2619 0 obj [1301 0 R/XYZ 0 15259 1] endobj 2620 0 obj [1295 0 R/XYZ 0 15259 1] endobj 2621 0 obj [1295 0 R/XYZ 0 15259 1] endobj 2622 0 obj [1300 0 R/XYZ 0 15259 1] endobj 2623 0 obj [1302 0 R/XYZ 0 15259 1] endobj 2624 0 obj [1295 0 R/XYZ 0 15259 1] endobj 2625 0 obj [1331 0 R/XYZ 0 15259 1] endobj 2626 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2627 0 obj [1349 0 R/XYZ 0 15259 1] endobj 2628 0 obj [424 0 R/XYZ 0 15259 1] endobj 2629 0 obj [445 0 R/XYZ 0 15259 1] endobj 2630 0 obj [451 0 R/XYZ 0 15259 1] endobj 2631 0 obj [458 0 R/XYZ 0 15259 1] endobj 2632 0 obj [709 0 R/XYZ 0 15259 1] endobj 2633 0 obj [1425 0 R/XYZ 0 15259 1] endobj 2634 0 obj [1650 0 R/XYZ 0 15259 1] endobj 2635 0 obj [374 0 R/XYZ 0 15259 1] endobj 2636 0 obj <> endobj 2637 0 obj [697 0 R/XYZ 0 15259 1] endobj 2638 0 obj [1480 0 R/XYZ 0 15259 1] endobj 2639 0 obj [1538 0 R/XYZ 0 15259 1] endobj 2640 0 obj [419 0 R/XYZ 0 15259 1] endobj 2641 0 obj [472 0 R/XYZ 0 15259 1] endobj 2642 0 obj [1021 0 R/XYZ 0 15259 1] endobj 2643 0 obj [1023 0 R/XYZ 0 15259 1] endobj 2644 0 obj [983 0 R/XYZ 0 15259 1] endobj 2645 0 obj [986 0 R/XYZ 0 15259 1] endobj 2646 0 obj [986 0 R/XYZ 0 15259 1] endobj 2647 0 obj [871 0 R/XYZ 0 15259 1] endobj 2648 0 obj [1036 0 R/XYZ 0 15259 1] endobj 2649 0 obj [1244 0 R/XYZ 0 15259 1] endobj 2650 0 obj [1247 0 R/XYZ 0 15259 1] endobj 2651 0 obj [1250 0 R/XYZ 0 15259 1] endobj 2652 0 obj [1251 0 R/XYZ 0 15259 1] endobj 2653 0 obj [1261 0 R/XYZ 0 15259 1] endobj 2654 0 obj [1284 0 R/XYZ 0 15259 1] endobj 2655 0 obj [1290 0 R/XYZ 0 15259 1] endobj 2656 0 obj [1292 0 R/XYZ 0 15259 1] endobj 2657 0 obj [1244 0 R/XYZ 0 15259 1] endobj 2658 0 obj [1244 0 R/XYZ 0 15259 1] endobj 2659 0 obj [1248 0 R/XYZ 0 15259 1] endobj 2660 0 obj [1246 0 R/XYZ 0 15259 1] endobj 2661 0 obj [1254 0 R/XYZ 0 15259 1] endobj 2662 0 obj [1494 0 R/XYZ 0 15259 1] endobj 2663 0 obj [1502 0 R/XYZ 0 15259 1] endobj 2664 0 obj [1528 0 R/XYZ 0 15259 1] endobj 2665 0 obj [1245 0 R/XYZ 0 15259 1] endobj 2666 0 obj [1246 0 R/XYZ 0 15259 1] endobj 2667 0 obj [823 0 R/XYZ 0 15259 1] endobj 2668 0 obj [824 0 R/XYZ 0 15259 1] endobj 2669 0 obj [854 0 R/XYZ 0 15259 1] endobj 2670 0 obj [481 0 R/XYZ 0 15259 1] endobj 2671 0 obj [738 0 R/XYZ 0 15259 1] endobj 2672 0 obj [764 0 R/XYZ 0 15259 1] endobj 2673 0 obj [786 0 R/XYZ 0 15259 1] endobj 2674 0 obj [816 0 R/XYZ 0 15259 1] endobj 2675 0 obj [821 0 R/XYZ 0 15259 1] endobj 2676 0 obj [826 0 R/XYZ 0 15259 1] endobj 2677 0 obj [830 0 R/XYZ 0 15259 1] endobj 2678 0 obj [833 0 R/XYZ 0 15259 1] endobj 2679 0 obj [834 0 R/XYZ 0 15259 1] endobj 2680 0 obj [836 0 R/XYZ 0 15259 1] endobj 2681 0 obj [840 0 R/XYZ 0 15259 1] endobj 2682 0 obj [843 0 R/XYZ 0 15259 1] endobj 2683 0 obj [845 0 R/XYZ 0 15259 1] endobj 2684 0 obj [854 0 R/XYZ 0 15259 1] endobj 2685 0 obj [857 0 R/XYZ 0 15259 1] endobj 2686 0 obj [932 0 R/XYZ 0 15259 1] endobj 2687 0 obj [1055 0 R/XYZ 0 15259 1] endobj 2688 0 obj [1057 0 R/XYZ 0 15259 1] endobj 2689 0 obj [1059 0 R/XYZ 0 15259 1] endobj 2690 0 obj [1063 0 R/XYZ 0 15259 1] endobj 2691 0 obj [1078 0 R/XYZ 0 15259 1] endobj 2692 0 obj [1337 0 R/XYZ 0 15259 1] endobj 2693 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2694 0 obj [1351 0 R/XYZ 0 15259 1] endobj 2695 0 obj [1357 0 R/XYZ 0 15259 1] endobj 2696 0 obj [1364 0 R/XYZ 0 15259 1] endobj 2697 0 obj [1366 0 R/XYZ 0 15259 1] endobj 2698 0 obj [1387 0 R/XYZ 0 15259 1] endobj 2699 0 obj [1396 0 R/XYZ 0 15259 1] endobj 2700 0 obj [1399 0 R/XYZ 0 15259 1] endobj 2701 0 obj [1400 0 R/XYZ 0 15259 1] endobj 2702 0 obj [1597 0 R/XYZ 0 15259 1] endobj 2703 0 obj [1654 0 R/XYZ 0 15259 1] endobj 2704 0 obj [1328 0 R/XYZ 0 15259 1] endobj 2705 0 obj [1097 0 R/XYZ 0 15259 1] endobj 2706 0 obj [1436 0 R/XYZ 0 15259 1] endobj 2707 0 obj [1645 0 R/XYZ 0 15259 1] endobj 2708 0 obj [1166 0 R/XYZ 0 15259 1] endobj 2709 0 obj [1171 0 R/XYZ 0 15259 1] endobj 2710 0 obj [1392 0 R/XYZ 0 15259 1] endobj 2711 0 obj [1412 0 R/XYZ 0 15259 1] endobj 2712 0 obj [734 0 R/XYZ 0 15259 1] endobj 2713 0 obj [1045 0 R/XYZ 0 15259 1] endobj 2714 0 obj [499 0 R/XYZ 0 15259 1] endobj 2715 0 obj [1628 0 R/XYZ 0 15259 1] endobj 2716 0 obj [556 0 R/XYZ 0 15259 1] endobj 2717 0 obj [576 0 R/XYZ 0 15259 1] endobj 2718 0 obj [792 0 R/XYZ 0 15259 1] endobj 2719 0 obj [851 0 R/XYZ 0 15259 1] endobj 2720 0 obj [853 0 R/XYZ 0 15259 1] endobj 2721 0 obj [856 0 R/XYZ 0 15259 1] endobj 2722 0 obj [873 0 R/XYZ 0 15259 1] endobj 2723 0 obj [917 0 R/XYZ 0 15259 1] endobj 2724 0 obj [1338 0 R/XYZ 0 15259 1] endobj 2725 0 obj [1368 0 R/XYZ 0 15259 1] endobj 2726 0 obj [1609 0 R/XYZ 0 15259 1] endobj 2727 0 obj [1620 0 R/XYZ 0 15259 1] endobj 2728 0 obj [1622 0 R/XYZ 0 15259 1] endobj 2729 0 obj [426 0 R/XYZ 0 15259 1] endobj 2730 0 obj [452 0 R/XYZ 0 15259 1] endobj 2731 0 obj [472 0 R/XYZ 0 15259 1] endobj 2732 0 obj [561 0 R/XYZ 0 15259 1] endobj 2733 0 obj [565 0 R/XYZ 0 15259 1] endobj 2734 0 obj [585 0 R/XYZ 0 15259 1] endobj 2735 0 obj [600 0 R/XYZ 0 15259 1] endobj 2736 0 obj [1140 0 R/XYZ 0 15259 1] endobj 2737 0 obj [580 0 R/XYZ 0 15259 1] endobj 2738 0 obj [601 0 R/XYZ 0 15259 1] endobj 2739 0 obj [1610 0 R/XYZ 0 15259 1] endobj 2740 0 obj [1611 0 R/XYZ 0 15259 1] endobj 2741 0 obj [421 0 R/XYZ 0 15259 1] endobj 2742 0 obj [1335 0 R/XYZ 0 15259 1] endobj 2743 0 obj [1337 0 R/XYZ 0 15259 1] endobj 2744 0 obj [1368 0 R/XYZ 0 15259 1] endobj 2745 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2746 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2747 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2748 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2749 0 obj [1332 0 R/XYZ 0 15259 1] endobj 2750 0 obj [1343 0 R/XYZ 0 15259 1] endobj 2751 0 obj [1344 0 R/XYZ 0 15259 1] endobj 2752 0 obj [1348 0 R/XYZ 0 15259 1] endobj 2753 0 obj [1331 0 R/XYZ 0 15259 1] endobj 2754 0 obj [1345 0 R/XYZ 0 15259 1] endobj 2755 0 obj [478 0 R/XYZ 0 15259 1] endobj 2756 0 obj [487 0 R/XYZ 0 15259 1] endobj 2757 0 obj [489 0 R/XYZ 0 15259 1] endobj 2758 0 obj [506 0 R/XYZ 0 15259 1] endobj 2759 0 obj [520 0 R/XYZ 0 15259 1] endobj 2760 0 obj [540 0 R/XYZ 0 15259 1] endobj 2761 0 obj [545 0 R/XYZ 0 15259 1] endobj 2762 0 obj [566 0 R/XYZ 0 15259 1] endobj 2763 0 obj [571 0 R/XYZ 0 15259 1] endobj 2764 0 obj [577 0 R/XYZ 0 15259 1] endobj 2765 0 obj [614 0 R/XYZ 0 15259 1] endobj 2766 0 obj [871 0 R/XYZ 0 15259 1] endobj 2767 0 obj [1036 0 R/XYZ 0 15259 1] endobj 2768 0 obj [1093 0 R/XYZ 0 15259 1] endobj 2769 0 obj [1519 0 R/XYZ 0 15259 1] endobj 2770 0 obj [1520 0 R/XYZ 0 15259 1] endobj 2771 0 obj [1609 0 R/XYZ 0 15259 1] endobj 2772 0 obj [1612 0 R/XYZ 0 15259 1] endobj 2773 0 obj [487 0 R/XYZ 0 15259 1] endobj 2774 0 obj [545 0 R/XYZ 0 15259 1] endobj 2775 0 obj [546 0 R/XYZ 0 15259 1] endobj 2776 0 obj [583 0 R/XYZ 0 15259 1] endobj 2777 0 obj [600 0 R/XYZ 0 15259 1] endobj 2778 0 obj [642 0 R/XYZ 0 15259 1] endobj 2779 0 obj [738 0 R/XYZ 0 15259 1] endobj 2780 0 obj [764 0 R/XYZ 0 15259 1] endobj 2781 0 obj [1059 0 R/XYZ 0 15259 1] endobj 2782 0 obj [772 0 R/XYZ 0 15259 1] endobj 2783 0 obj [939 0 R/XYZ 0 15259 1] endobj 2784 0 obj [1057 0 R/XYZ 0 15259 1] endobj 2785 0 obj [1064 0 R/XYZ 0 15259 1] endobj 2786 0 obj [1066 0 R/XYZ 0 15259 1] endobj 2787 0 obj [1070 0 R/XYZ 0 15259 1] endobj 2788 0 obj [1625 0 R/XYZ 0 15259 1] endobj 2789 0 obj [1331 0 R/XYZ 0 15259 1] endobj 2790 0 obj [1345 0 R/XYZ 0 15259 1] endobj 2791 0 obj [1331 0 R/XYZ 0 15259 1] endobj 2792 0 obj [1345 0 R/XYZ 0 15259 1] endobj 2793 0 obj [1331 0 R/XYZ 0 15259 1] endobj 2794 0 obj [1345 0 R/XYZ 0 15259 1] endobj 2795 0 obj [810 0 R/XYZ 0 15259 1] endobj 2796 0 obj [826 0 R/XYZ 0 15259 1] endobj 2797 0 obj [834 0 R/XYZ 0 15259 1] endobj 2798 0 obj [1025 0 R/XYZ 0 15259 1] endobj 2799 0 obj [826 0 R/XYZ 0 15259 1] endobj 2800 0 obj [1364 0 R/XYZ 0 15259 1] endobj 2801 0 obj [1343 0 R/XYZ 0 15259 1] endobj 2802 0 obj [1345 0 R/XYZ 0 15259 1] endobj 2803 0 obj [1343 0 R/XYZ 0 15259 1] endobj 2804 0 obj [1345 0 R/XYZ 0 15259 1] endobj 2805 0 obj [1343 0 R/XYZ 0 15259 1] endobj 2806 0 obj [1345 0 R/XYZ 0 15259 1] endobj 2807 0 obj [1343 0 R/XYZ 0 15259 1] endobj 2808 0 obj [1345 0 R/XYZ 0 15259 1] endobj 2809 0 obj [1371 0 R/XYZ 0 15259 1] endobj 2810 0 obj [1373 0 R/XYZ 0 15259 1] endobj 2811 0 obj [812 0 R/XYZ 0 15259 1] endobj 2812 0 obj [1331 0 R/XYZ 0 15259 1] endobj 2813 0 obj [1343 0 R/XYZ 0 15259 1] endobj 2814 0 obj [1345 0 R/XYZ 0 15259 1] endobj 2815 0 obj [1371 0 R/XYZ 0 15259 1] endobj 2816 0 obj [1372 0 R/XYZ 0 15259 1] endobj 2817 0 obj [1304 0 R/XYZ 0 15259 1] endobj 2818 0 obj [1305 0 R/XYZ 0 15259 1] endobj 2819 0 obj [1305 0 R/XYZ 0 15259 1] endobj 2820 0 obj [1311 0 R/XYZ 0 15259 1] endobj 2821 0 obj [432 0 R/XYZ 0 15259 1] endobj 2822 0 obj [1331 0 R/XYZ 0 15259 1] endobj 2823 0 obj [1345 0 R/XYZ 0 15259 1] endobj 2824 0 obj [1025 0 R/XYZ 0 15259 1] endobj 2825 0 obj [1037 0 R/XYZ 0 15259 1] endobj 2826 0 obj [1357 0 R/XYZ 0 15259 1] endobj 2827 0 obj [1364 0 R/XYZ 0 15259 1] endobj 2828 0 obj [1365 0 R/XYZ 0 15259 1] endobj 2829 0 obj [1357 0 R/XYZ 0 15259 1] endobj 2830 0 obj [679 0 R/XYZ 0 15259 1] endobj 2831 0 obj [419 0 R/XYZ 0 15259 1] endobj 2832 0 obj [1103 0 R/XYZ 0 15259 1] endobj 2833 0 obj [1057 0 R/XYZ 0 15259 1] endobj 2834 0 obj [1486 0 R/XYZ 0 15259 1] endobj 2835 0 obj [383 0 R/XYZ 0 15259 1] endobj 2836 0 obj [384 0 R/XYZ 0 15259 1] endobj 2837 0 obj [388 0 R/XYZ 0 15259 1] endobj 2838 0 obj [394 0 R/XYZ 0 15259 1] endobj 2839 0 obj [451 0 R/XYZ 0 15259 1] endobj 2840 0 obj [459 0 R/XYZ 0 15259 1] endobj 2841 0 obj [483 0 R/XYZ 0 15259 1] endobj 2842 0 obj [529 0 R/XYZ 0 15259 1] endobj 2843 0 obj [538 0 R/XYZ 0 15259 1] endobj 2844 0 obj [562 0 R/XYZ 0 15259 1] endobj 2845 0 obj [565 0 R/XYZ 0 15259 1] endobj 2846 0 obj [570 0 R/XYZ 0 15259 1] endobj 2847 0 obj [580 0 R/XYZ 0 15259 1] endobj 2848 0 obj [585 0 R/XYZ 0 15259 1] endobj 2849 0 obj [591 0 R/XYZ 0 15259 1] endobj 2850 0 obj [594 0 R/XYZ 0 15259 1] endobj 2851 0 obj [657 0 R/XYZ 0 15259 1] endobj 2852 0 obj [709 0 R/XYZ 0 15259 1] endobj 2853 0 obj [738 0 R/XYZ 0 15259 1] endobj 2854 0 obj [764 0 R/XYZ 0 15259 1] endobj 2855 0 obj [851 0 R/XYZ 0 15259 1] endobj 2856 0 obj [853 0 R/XYZ 0 15259 1] endobj 2857 0 obj [1059 0 R/XYZ 0 15259 1] endobj 2858 0 obj [426 0 R/XYZ 0 15259 1] endobj 2859 0 obj [1379 0 R/XYZ 0 15259 1] endobj 2860 0 obj [1381 0 R/XYZ 0 15259 1] endobj 2861 0 obj [1650 0 R/XYZ 0 15259 1] endobj 2862 0 obj [1654 0 R/XYZ 0 15259 1] endobj 2863 0 obj [794 0 R/XYZ 0 15259 1] endobj 2864 0 obj [1055 0 R/XYZ 0 15259 1] endobj 2865 0 obj [1078 0 R/XYZ 0 15259 1] endobj 2866 0 obj [1059 0 R/XYZ 0 15259 1] endobj 2867 0 obj [1063 0 R/XYZ 0 15259 1] endobj 2868 0 obj [1070 0 R/XYZ 0 15259 1] endobj 2869 0 obj [1076 0 R/XYZ 0 15259 1] endobj 2870 0 obj [1063 0 R/XYZ 0 15259 1] endobj 2871 0 obj [1068 0 R/XYZ 0 15259 1] endobj 2872 0 obj [1059 0 R/XYZ 0 15259 1] endobj 2873 0 obj [1061 0 R/XYZ 0 15259 1] endobj 2874 0 obj [1078 0 R/XYZ 0 15259 1] endobj 2875 0 obj [1256 0 R/XYZ 0 15259 1] endobj 2876 0 obj [1258 0 R/XYZ 0 15259 1] endobj 2877 0 obj [1264 0 R/XYZ 0 15259 1] endobj 2878 0 obj [1316 0 R/XYZ 0 15259 1] endobj 2879 0 obj [1509 0 R/XYZ 0 15259 1] endobj 2880 0 obj [1594 0 R/XYZ 0 15259 1] endobj 2881 0 obj [1629 0 R/XYZ 0 15259 1] endobj 2882 0 obj [1630 0 R/XYZ 0 15259 1] endobj 2883 0 obj [1060 0 R/XYZ 0 15259 1] endobj 2884 0 obj [702 0 R/XYZ 0 15259 1] endobj 2885 0 obj [1650 0 R/XYZ 0 15259 1] endobj 2886 0 obj [437 0 R/XYZ 0 15259 1] endobj 2887 0 obj [924 0 R/XYZ 0 15259 1] endobj 2888 0 obj [1268 0 R/XYZ 0 15259 1] endobj 2889 0 obj [700 0 R/XYZ 0 15259 1] endobj 2890 0 obj [700 0 R/XYZ 0 15259 1] endobj 2891 0 obj [1250 0 R/XYZ 0 15259 1] endobj 2892 0 obj [1264 0 R/XYZ 0 15259 1] endobj 2893 0 obj [471 0 R/XYZ 0 15259 1] endobj 2894 0 obj [1423 0 R/XYZ 0 15259 1] endobj 2895 0 obj [1475 0 R/XYZ 0 15259 1] endobj 2896 0 obj [1436 0 R/XYZ 0 15259 1] endobj 2897 0 obj [1436 0 R/XYZ 0 15259 1] endobj 2898 0 obj [1439 0 R/XYZ 0 15259 1] endobj 2899 0 obj [1436 0 R/XYZ 0 15259 1] endobj 2900 0 obj [1428 0 R/XYZ 0 15259 1] endobj 2901 0 obj [1433 0 R/XYZ 0 15259 1] endobj 2902 0 obj [1468 0 R/XYZ 0 15259 1] endobj 2903 0 obj [1474 0 R/XYZ 0 15259 1] endobj 2904 0 obj [1439 0 R/XYZ 0 15259 1] endobj 2905 0 obj [1468 0 R/XYZ 0 15259 1] endobj 2906 0 obj [1653 0 R/XYZ 0 15259 1] endobj 2907 0 obj [1439 0 R/XYZ 0 15259 1] endobj 2908 0 obj [1650 0 R/XYZ 0 15259 1] endobj 2909 0 obj [676 0 R/XYZ 0 15259 1] endobj 2910 0 obj [684 0 R/XYZ 0 15259 1] endobj 2911 0 obj [679 0 R/XYZ 0 15259 1] endobj 2912 0 obj [684 0 R/XYZ 0 15259 1] endobj 2913 0 obj [923 0 R/XYZ 0 15259 1] endobj 2914 0 obj [1619 0 R/XYZ 0 15259 1] endobj 2915 0 obj [1644 0 R/XYZ 0 15259 1] endobj 2916 0 obj [359 0 R/XYZ 0 15259 1] endobj 2917 0 obj [367 0 R/XYZ 0 15259 1] endobj 2918 0 obj [362 0 R/XYZ 0 15259 1] endobj 2919 0 obj [368 0 R/XYZ 0 15259 1] endobj 2920 0 obj <> endobj 2921 0 obj [709 0 R/XYZ 0 15259 1] endobj 2922 0 obj [1425 0 R/XYZ 0 15259 1] endobj 2923 0 obj [1653 0 R/XYZ 0 15259 1] endobj 2924 0 obj [1442 0 R/XYZ 0 15259 1] endobj 2925 0 obj [1444 0 R/XYZ 0 15259 1] endobj 2926 0 obj [1446 0 R/XYZ 0 15259 1] endobj 2927 0 obj [1448 0 R/XYZ 0 15259 1] endobj 2928 0 obj [1451 0 R/XYZ 0 15259 1] endobj 2929 0 obj [1454 0 R/XYZ 0 15259 1] endobj 2930 0 obj [1459 0 R/XYZ 0 15259 1] endobj 2931 0 obj [1462 0 R/XYZ 0 15259 1] endobj 2932 0 obj [1469 0 R/XYZ 0 15259 1] endobj 2933 0 obj [1443 0 R/XYZ 0 15259 1] endobj 2934 0 obj [1446 0 R/XYZ 0 15259 1] endobj 2935 0 obj [1447 0 R/XYZ 0 15259 1] endobj 2936 0 obj [1446 0 R/XYZ 0 15259 1] endobj 2937 0 obj [1426 0 R/XYZ 0 15259 1] endobj 2938 0 obj [1431 0 R/XYZ 0 15259 1] endobj 2939 0 obj [1440 0 R/XYZ 0 15259 1] endobj 2940 0 obj [1447 0 R/XYZ 0 15259 1] endobj 2941 0 obj [1426 0 R/XYZ 0 15259 1] endobj 2942 0 obj [1447 0 R/XYZ 0 15259 1] endobj 2943 0 obj [1428 0 R/XYZ 0 15259 1] endobj 2944 0 obj [1436 0 R/XYZ 0 15259 1] endobj 2945 0 obj [1440 0 R/XYZ 0 15259 1] endobj 2946 0 obj [1454 0 R/XYZ 0 15259 1] endobj 2947 0 obj [1455 0 R/XYZ 0 15259 1] endobj 2948 0 obj [1457 0 R/XYZ 0 15259 1] endobj 2949 0 obj [1645 0 R/XYZ 0 15259 1] endobj 2950 0 obj [1428 0 R/XYZ 0 15259 1] endobj 2951 0 obj [1454 0 R/XYZ 0 15259 1] endobj 2952 0 obj [1443 0 R/XYZ 0 15259 1] endobj 2953 0 obj [1454 0 R/XYZ 0 15259 1] endobj 2954 0 obj [1455 0 R/XYZ 0 15259 1] endobj 2955 0 obj [1458 0 R/XYZ 0 15259 1] endobj 2956 0 obj [1462 0 R/XYZ 0 15259 1] endobj 2957 0 obj [1466 0 R/XYZ 0 15259 1] endobj 2958 0 obj [1468 0 R/XYZ 0 15259 1] endobj 2959 0 obj [1475 0 R/XYZ 0 15259 1] endobj 2960 0 obj [1644 0 R/XYZ 0 15259 1] endobj 2961 0 obj [1645 0 R/XYZ 0 15259 1] endobj 2962 0 obj [1455 0 R/XYZ 0 15259 1] endobj 2963 0 obj [1426 0 R/XYZ 0 15259 1] endobj 2964 0 obj [1430 0 R/XYZ 0 15259 1] endobj 2965 0 obj [1431 0 R/XYZ 0 15259 1] endobj 2966 0 obj [1436 0 R/XYZ 0 15259 1] endobj 2967 0 obj [1440 0 R/XYZ 0 15259 1] endobj 2968 0 obj [1448 0 R/XYZ 0 15259 1] endobj 2969 0 obj [1453 0 R/XYZ 0 15259 1] endobj 2970 0 obj [1426 0 R/XYZ 0 15259 1] endobj 2971 0 obj [1448 0 R/XYZ 0 15259 1] endobj 2972 0 obj [1443 0 R/XYZ 0 15259 1] endobj 2973 0 obj [1448 0 R/XYZ 0 15259 1] endobj 2974 0 obj [1449 0 R/XYZ 0 15259 1] endobj 2975 0 obj [1453 0 R/XYZ 0 15259 1] endobj 2976 0 obj [1454 0 R/XYZ 0 15259 1] endobj 2977 0 obj [1460 0 R/XYZ 0 15259 1] endobj 2978 0 obj [1461 0 R/XYZ 0 15259 1] endobj 2979 0 obj [1463 0 R/XYZ 0 15259 1] endobj 2980 0 obj [1474 0 R/XYZ 0 15259 1] endobj 2981 0 obj [1449 0 R/XYZ 0 15259 1] endobj 2982 0 obj [1443 0 R/XYZ 0 15259 1] endobj 2983 0 obj [1461 0 R/XYZ 0 15259 1] endobj 2984 0 obj [1463 0 R/XYZ 0 15259 1] endobj 2985 0 obj [1464 0 R/XYZ 0 15259 1] endobj 2986 0 obj [1468 0 R/XYZ 0 15259 1] endobj 2987 0 obj [1463 0 R/XYZ 0 15259 1] endobj 2988 0 obj [1443 0 R/XYZ 0 15259 1] endobj 2989 0 obj [1444 0 R/XYZ 0 15259 1] endobj 2990 0 obj [1447 0 R/XYZ 0 15259 1] endobj 2991 0 obj [1447 0 R/XYZ 0 15259 1] endobj 2992 0 obj [1431 0 R/XYZ 0 15259 1] endobj 2993 0 obj [1440 0 R/XYZ 0 15259 1] endobj 2994 0 obj [1443 0 R/XYZ 0 15259 1] endobj 2995 0 obj [1447 0 R/XYZ 0 15259 1] endobj 2996 0 obj [1448 0 R/XYZ 0 15259 1] endobj 2997 0 obj [1454 0 R/XYZ 0 15259 1] endobj 2998 0 obj [1460 0 R/XYZ 0 15259 1] endobj 2999 0 obj [1465 0 R/XYZ 0 15259 1] endobj 3000 0 obj [1443 0 R/XYZ 0 15259 1] endobj 3001 0 obj [1450 0 R/XYZ 0 15259 1] endobj 3002 0 obj [1475 0 R/XYZ 0 15259 1] endobj 3003 0 obj [1450 0 R/XYZ 0 15259 1] endobj 3004 0 obj [1426 0 R/XYZ 0 15259 1] endobj 3005 0 obj [1431 0 R/XYZ 0 15259 1] endobj 3006 0 obj [1440 0 R/XYZ 0 15259 1] endobj 3007 0 obj [1460 0 R/XYZ 0 15259 1] endobj 3008 0 obj [1462 0 R/XYZ 0 15259 1] endobj 3009 0 obj [1423 0 R/XYZ 0 15259 1] endobj 3010 0 obj [1425 0 R/XYZ 0 15259 1] endobj 3011 0 obj [1653 0 R/XYZ 0 15259 1] endobj 3012 0 obj [1025 0 R/XYZ 0 15259 1] endobj 3013 0 obj [1025 0 R/XYZ 0 15259 1] endobj 3014 0 obj [1037 0 R/XYZ 0 15259 1] endobj 3015 0 obj [1025 0 R/XYZ 0 15259 1] endobj 3016 0 obj [1037 0 R/XYZ 0 15259 1] endobj 3017 0 obj [1025 0 R/XYZ 0 15259 1] endobj 3018 0 obj [1025 0 R/XYZ 0 15259 1] endobj 3019 0 obj [1037 0 R/XYZ 0 15259 1] endobj 3020 0 obj [1025 0 R/XYZ 0 15259 1] endobj 3021 0 obj [1025 0 R/XYZ 0 15259 1] endobj 3022 0 obj [1037 0 R/XYZ 0 15259 1] endobj 3023 0 obj [1025 0 R/XYZ 0 15259 1] endobj 3024 0 obj [1037 0 R/XYZ 0 15259 1] endobj 3025 0 obj [1025 0 R/XYZ 0 15259 1] endobj 3026 0 obj [1037 0 R/XYZ 0 15259 1] endobj 3027 0 obj [1428 0 R/XYZ 0 15259 1] endobj 3028 0 obj [1433 0 R/XYZ 0 15259 1] endobj 3029 0 obj [1436 0 R/XYZ 0 15259 1] endobj 3030 0 obj [1440 0 R/XYZ 0 15259 1] endobj 3031 0 obj [1455 0 R/XYZ 0 15259 1] endobj 3032 0 obj [1465 0 R/XYZ 0 15259 1] endobj 3033 0 obj [1468 0 R/XYZ 0 15259 1] endobj 3034 0 obj [1475 0 R/XYZ 0 15259 1] endobj 3035 0 obj [1644 0 R/XYZ 0 15259 1] endobj 3036 0 obj [1645 0 R/XYZ 0 15259 1] endobj 3037 0 obj [1428 0 R/XYZ 0 15259 1] endobj 3038 0 obj [1465 0 R/XYZ 0 15259 1] endobj 3039 0 obj [1426 0 R/XYZ 0 15259 1] endobj 3040 0 obj [1428 0 R/XYZ 0 15259 1] endobj 3041 0 obj [1431 0 R/XYZ 0 15259 1] endobj 3042 0 obj [1436 0 R/XYZ 0 15259 1] endobj 3043 0 obj [1440 0 R/XYZ 0 15259 1] endobj 3044 0 obj [1443 0 R/XYZ 0 15259 1] endobj 3045 0 obj [1445 0 R/XYZ 0 15259 1] endobj 3046 0 obj [1447 0 R/XYZ 0 15259 1] endobj 3047 0 obj [1468 0 R/XYZ 0 15259 1] endobj 3048 0 obj [1426 0 R/XYZ 0 15259 1] endobj 3049 0 obj [1443 0 R/XYZ 0 15259 1] endobj 3050 0 obj [1443 0 R/XYZ 0 15259 1] endobj 3051 0 obj [1448 0 R/XYZ 0 15259 1] endobj 3052 0 obj [1454 0 R/XYZ 0 15259 1] endobj 3053 0 obj [1466 0 R/XYZ 0 15259 1] endobj 3054 0 obj [1645 0 R/XYZ 0 15259 1] endobj 3055 0 obj [1454 0 R/XYZ 0 15259 1] endobj 3056 0 obj [1443 0 R/XYZ 0 15259 1] endobj 3057 0 obj [1450 0 R/XYZ 0 15259 1] endobj 3058 0 obj [1451 0 R/XYZ 0 15259 1] endobj 3059 0 obj [1464 0 R/XYZ 0 15259 1] endobj 3060 0 obj [1466 0 R/XYZ 0 15259 1] endobj 3061 0 obj [1645 0 R/XYZ 0 15259 1] endobj 3062 0 obj [1451 0 R/XYZ 0 15259 1] endobj 3063 0 obj [1443 0 R/XYZ 0 15259 1] endobj 3064 0 obj [1449 0 R/XYZ 0 15259 1] endobj 3065 0 obj [1451 0 R/XYZ 0 15259 1] endobj 3066 0 obj [1456 0 R/XYZ 0 15259 1] endobj 3067 0 obj [1461 0 R/XYZ 0 15259 1] endobj 3068 0 obj [1463 0 R/XYZ 0 15259 1] endobj 3069 0 obj [1475 0 R/XYZ 0 15259 1] endobj 3070 0 obj [1451 0 R/XYZ 0 15259 1] endobj 3071 0 obj [1426 0 R/XYZ 0 15259 1] endobj 3072 0 obj [1440 0 R/XYZ 0 15259 1] endobj 3073 0 obj [1460 0 R/XYZ 0 15259 1] endobj 3074 0 obj [1428 0 R/XYZ 0 15259 1] endobj 3075 0 obj [1440 0 R/XYZ 0 15259 1] endobj 3076 0 obj [1446 0 R/XYZ 0 15259 1] endobj 3077 0 obj [1465 0 R/XYZ 0 15259 1] endobj 3078 0 obj [1468 0 R/XYZ 0 15259 1] endobj 3079 0 obj [1428 0 R/XYZ 0 15259 1] endobj 3080 0 obj [1465 0 R/XYZ 0 15259 1] endobj 3081 0 obj [1426 0 R/XYZ 0 15259 1] endobj 3082 0 obj [1440 0 R/XYZ 0 15259 1] endobj 3083 0 obj [1460 0 R/XYZ 0 15259 1] endobj 3084 0 obj [1426 0 R/XYZ 0 15259 1] endobj 3085 0 obj [1429 0 R/XYZ 0 15259 1] endobj 3086 0 obj [1431 0 R/XYZ 0 15259 1] endobj 3087 0 obj [1436 0 R/XYZ 0 15259 1] endobj 3088 0 obj [1440 0 R/XYZ 0 15259 1] endobj 3089 0 obj [1455 0 R/XYZ 0 15259 1] endobj 3090 0 obj [1457 0 R/XYZ 0 15259 1] endobj 3091 0 obj [1460 0 R/XYZ 0 15259 1] endobj 3092 0 obj [1468 0 R/XYZ 0 15259 1] endobj 3093 0 obj [1475 0 R/XYZ 0 15259 1] endobj 3094 0 obj [1426 0 R/XYZ 0 15259 1] endobj 3095 0 obj [1460 0 R/XYZ 0 15259 1] endobj 3096 0 obj [1443 0 R/XYZ 0 15259 1] endobj 3097 0 obj [1455 0 R/XYZ 0 15259 1] endobj 3098 0 obj [1457 0 R/XYZ 0 15259 1] endobj 3099 0 obj [1458 0 R/XYZ 0 15259 1] endobj 3100 0 obj [1461 0 R/XYZ 0 15259 1] endobj 3101 0 obj [1463 0 R/XYZ 0 15259 1] endobj 3102 0 obj [1468 0 R/XYZ 0 15259 1] endobj 3103 0 obj [1475 0 R/XYZ 0 15259 1] endobj 3104 0 obj [1644 0 R/XYZ 0 15259 1] endobj 3105 0 obj [1645 0 R/XYZ 0 15259 1] endobj 3106 0 obj [1457 0 R/XYZ 0 15259 1] endobj 3107 0 obj [1132 0 R/XYZ 0 15259 1] endobj 3108 0 obj [1443 0 R/XYZ 0 15259 1] endobj 3109 0 obj [1445 0 R/XYZ 0 15259 1] endobj 3110 0 obj [1456 0 R/XYZ 0 15259 1] endobj 3111 0 obj [1458 0 R/XYZ 0 15259 1] endobj 3112 0 obj [1461 0 R/XYZ 0 15259 1] endobj 3113 0 obj [1462 0 R/XYZ 0 15259 1] endobj 3114 0 obj [1468 0 R/XYZ 0 15259 1] endobj 3115 0 obj [1475 0 R/XYZ 0 15259 1] endobj 3116 0 obj [1645 0 R/XYZ 0 15259 1] endobj 3117 0 obj [1458 0 R/XYZ 0 15259 1] endobj 3118 0 obj [1443 0 R/XYZ 0 15259 1] endobj 3119 0 obj [1445 0 R/XYZ 0 15259 1] endobj 3120 0 obj [1456 0 R/XYZ 0 15259 1] endobj 3121 0 obj [1459 0 R/XYZ 0 15259 1] endobj 3122 0 obj [1461 0 R/XYZ 0 15259 1] endobj 3123 0 obj [1462 0 R/XYZ 0 15259 1] endobj 3124 0 obj [1464 0 R/XYZ 0 15259 1] endobj 3125 0 obj [1459 0 R/XYZ 0 15259 1] endobj 3126 0 obj [572 0 R/XYZ 0 15259 1] endobj 3127 0 obj [792 0 R/XYZ 0 15259 1] endobj 3128 0 obj [740 0 R/XYZ 0 15259 1] endobj 3129 0 obj [968 0 R/XYZ 0 15259 1] endobj 3130 0 obj [1092 0 R/XYZ 0 15259 1] endobj 3131 0 obj [1171 0 R/XYZ 0 15259 1] endobj 3132 0 obj [1392 0 R/XYZ 0 15259 1] endobj 3133 0 obj [968 0 R/XYZ 0 15259 1] endobj 3134 0 obj [974 0 R/XYZ 0 15259 1] endobj 3135 0 obj [1092 0 R/XYZ 0 15259 1] endobj 3136 0 obj [383 0 R/XYZ 0 15259 1] endobj 3137 0 obj [463 0 R/XYZ 0 15259 1] endobj 3138 0 obj [383 0 R/XYZ 0 15259 1] endobj 3139 0 obj [509 0 R/XYZ 0 15259 1] endobj 3140 0 obj [446 0 R/XYZ 0 15259 1] endobj 3141 0 obj [451 0 R/XYZ 0 15259 1] endobj 3142 0 obj [1107 0 R/XYZ 0 15259 1] endobj 3143 0 obj [1109 0 R/XYZ 0 15259 1] endobj 3144 0 obj [1145 0 R/XYZ 0 15259 1] endobj 3145 0 obj [1633 0 R/XYZ 0 15259 1] endobj 3146 0 obj [1004 0 R/XYZ 0 15259 1] endobj 3147 0 obj [1005 0 R/XYZ 0 15259 1] endobj 3148 0 obj [519 0 R/XYZ 0 15259 1] endobj 3149 0 obj [520 0 R/XYZ 0 15259 1] endobj 3150 0 obj [601 0 R/XYZ 0 15259 1] endobj 3151 0 obj [1359 0 R/XYZ 0 15259 1] endobj 3152 0 obj [520 0 R/XYZ 0 15259 1] endobj 3153 0 obj [520 0 R/XYZ 0 15259 1] endobj 3154 0 obj [601 0 R/XYZ 0 15259 1] endobj 3155 0 obj [520 0 R/XYZ 0 15259 1] endobj 3156 0 obj [471 0 R/XYZ 0 15259 1] endobj 3157 0 obj [472 0 R/XYZ 0 15259 1] endobj 3158 0 obj [594 0 R/XYZ 0 15259 1] endobj 3159 0 obj [596 0 R/XYZ 0 15259 1] endobj 3160 0 obj [1057 0 R/XYZ 0 15259 1] endobj 3161 0 obj [1362 0 R/XYZ 0 15259 1] endobj 3162 0 obj [471 0 R/XYZ 0 15259 1] endobj 3163 0 obj [472 0 R/XYZ 0 15259 1] endobj 3164 0 obj [594 0 R/XYZ 0 15259 1] endobj 3165 0 obj [596 0 R/XYZ 0 15259 1] endobj 3166 0 obj [1057 0 R/XYZ 0 15259 1] endobj 3167 0 obj [1362 0 R/XYZ 0 15259 1] endobj 3168 0 obj [594 0 R/XYZ 0 15259 1] endobj 3169 0 obj [596 0 R/XYZ 0 15259 1] endobj 3170 0 obj [1064 0 R/XYZ 0 15259 1] endobj 3171 0 obj [489 0 R/XYZ 0 15259 1] endobj 3172 0 obj [1064 0 R/XYZ 0 15259 1] endobj 3173 0 obj [1078 0 R/XYZ 0 15259 1] endobj 3174 0 obj [1628 0 R/XYZ 0 15259 1] endobj 3175 0 obj [497 0 R/XYZ 0 15259 1] endobj 3176 0 obj [515 0 R/XYZ 0 15259 1] endobj 3177 0 obj [834 0 R/XYZ 0 15259 1] endobj 3178 0 obj [520 0 R/XYZ 0 15259 1] endobj 3179 0 obj [1360 0 R/XYZ 0 15259 1] endobj 3180 0 obj [520 0 R/XYZ 0 15259 1] endobj 3181 0 obj [1360 0 R/XYZ 0 15259 1] endobj 3182 0 obj [520 0 R/XYZ 0 15259 1] endobj 3183 0 obj [1360 0 R/XYZ 0 15259 1] endobj 3184 0 obj [472 0 R/XYZ 0 15259 1] endobj 3185 0 obj [594 0 R/XYZ 0 15259 1] endobj 3186 0 obj [595 0 R/XYZ 0 15259 1] endobj 3187 0 obj [596 0 R/XYZ 0 15259 1] endobj 3188 0 obj [826 0 R/XYZ 0 15259 1] endobj 3189 0 obj [834 0 R/XYZ 0 15259 1] endobj 3190 0 obj [845 0 R/XYZ 0 15259 1] endobj 3191 0 obj [1357 0 R/XYZ 0 15259 1] endobj 3192 0 obj [1364 0 R/XYZ 0 15259 1] endobj 3193 0 obj [1416 0 R/XYZ 0 15259 1] endobj 3194 0 obj [814 0 R/XYZ 0 15259 1] endobj 3195 0 obj [1203 0 R/XYZ 0 15259 1] endobj 3196 0 obj [1205 0 R/XYZ 0 15259 1] endobj 3197 0 obj [600 0 R/XYZ 0 15259 1] endobj 3198 0 obj [1610 0 R/XYZ 0 15259 1] endobj 3199 0 obj [386 0 R/XYZ 0 15259 1] endobj 3200 0 obj [586 0 R/XYZ 0 15259 1] endobj 3201 0 obj [803 0 R/XYZ 0 15259 1] endobj 3202 0 obj [1360 0 R/XYZ 0 15259 1] endobj 3203 0 obj [1516 0 R/XYZ 0 15259 1] endobj 3204 0 obj [383 0 R/XYZ 0 15259 1] endobj 3205 0 obj [388 0 R/XYZ 0 15259 1] endobj 3206 0 obj [565 0 R/XYZ 0 15259 1] endobj 3207 0 obj [570 0 R/XYZ 0 15259 1] endobj 3208 0 obj [585 0 R/XYZ 0 15259 1] endobj 3209 0 obj [591 0 R/XYZ 0 15259 1] endobj 3210 0 obj <> endobj 3211 0 obj [383 0 R/XYZ 0 15259 1] endobj 3212 0 obj [383 0 R/XYZ 0 15259 1] endobj 3213 0 obj [384 0 R/XYZ 0 15259 1] endobj 3214 0 obj [388 0 R/XYZ 0 15259 1] endobj 3215 0 obj [394 0 R/XYZ 0 15259 1] endobj 3216 0 obj [451 0 R/XYZ 0 15259 1] endobj 3217 0 obj [459 0 R/XYZ 0 15259 1] endobj 3218 0 obj [483 0 R/XYZ 0 15259 1] endobj 3219 0 obj [529 0 R/XYZ 0 15259 1] endobj 3220 0 obj [538 0 R/XYZ 0 15259 1] endobj 3221 0 obj [562 0 R/XYZ 0 15259 1] endobj 3222 0 obj [565 0 R/XYZ 0 15259 1] endobj 3223 0 obj [570 0 R/XYZ 0 15259 1] endobj 3224 0 obj [580 0 R/XYZ 0 15259 1] endobj 3225 0 obj [585 0 R/XYZ 0 15259 1] endobj 3226 0 obj [591 0 R/XYZ 0 15259 1] endobj 3227 0 obj [594 0 R/XYZ 0 15259 1] endobj 3228 0 obj [657 0 R/XYZ 0 15259 1] endobj 3229 0 obj [709 0 R/XYZ 0 15259 1] endobj 3230 0 obj [738 0 R/XYZ 0 15259 1] endobj 3231 0 obj [764 0 R/XYZ 0 15259 1] endobj 3232 0 obj [851 0 R/XYZ 0 15259 1] endobj 3233 0 obj [853 0 R/XYZ 0 15259 1] endobj 3234 0 obj [1059 0 R/XYZ 0 15259 1] endobj 3235 0 obj [531 0 R/XYZ 0 15259 1] endobj 3236 0 obj [380 0 R/XYZ 0 15259 1] endobj 3237 0 obj [388 0 R/XYZ 0 15259 1] endobj 3238 0 obj [591 0 R/XYZ 0 15259 1] endobj 3239 0 obj [709 0 R/XYZ 0 15259 1] endobj 3240 0 obj [811 0 R/XYZ 0 15259 1] endobj 3241 0 obj [816 0 R/XYZ 0 15259 1] endobj 3242 0 obj [540 0 R/XYZ 0 15259 1] endobj 3243 0 obj [542 0 R/XYZ 0 15259 1] endobj 3244 0 obj [383 0 R/XYZ 0 15259 1] endobj 3245 0 obj [551 0 R/XYZ 0 15259 1] endobj 3246 0 obj [577 0 R/XYZ 0 15259 1] endobj 3247 0 obj [583 0 R/XYZ 0 15259 1] endobj 3248 0 obj [383 0 R/XYZ 0 15259 1] endobj 3249 0 obj [388 0 R/XYZ 0 15259 1] endobj 3250 0 obj [411 0 R/XYZ 0 15259 1] endobj 3251 0 obj [596 0 R/XYZ 0 15259 1] endobj 3252 0 obj [600 0 R/XYZ 0 15259 1] endobj 3253 0 obj [738 0 R/XYZ 0 15259 1] endobj 3254 0 obj [764 0 R/XYZ 0 15259 1] endobj 3255 0 obj [803 0 R/XYZ 0 15259 1] endobj 3256 0 obj [1610 0 R/XYZ 0 15259 1] endobj 3257 0 obj [669 0 R/XYZ 0 15259 1] endobj 3258 0 obj [384 0 R/XYZ 0 15259 1] endobj 3259 0 obj [386 0 R/XYZ 0 15259 1] endobj 3260 0 obj [586 0 R/XYZ 0 15259 1] endobj 3261 0 obj [588 0 R/XYZ 0 15259 1] endobj 3262 0 obj [1360 0 R/XYZ 0 15259 1] endobj 3263 0 obj [1516 0 R/XYZ 0 15259 1] endobj 3264 0 obj [386 0 R/XYZ 0 15259 1] endobj 3265 0 obj [421 0 R/XYZ 0 15259 1] endobj 3266 0 obj [586 0 R/XYZ 0 15259 1] endobj 3267 0 obj [1025 0 R/XYZ 0 15259 1] endobj 3268 0 obj [1335 0 R/XYZ 0 15259 1] endobj 3269 0 obj [1337 0 R/XYZ 0 15259 1] endobj 3270 0 obj [1346 0 R/XYZ 0 15259 1] endobj 3271 0 obj [1037 0 R/XYZ 0 15259 1] endobj 3272 0 obj [1025 0 R/XYZ 0 15259 1] endobj 3273 0 obj [421 0 R/XYZ 0 15259 1] endobj 3274 0 obj [1037 0 R/XYZ 0 15259 1] endobj 3275 0 obj [1406 0 R/XYZ 0 15259 1] endobj 3276 0 obj [1414 0 R/XYZ 0 15259 1] endobj 3277 0 obj [1414 0 R/XYZ 0 15259 1] endobj 3278 0 obj [734 0 R/XYZ 0 15259 1] endobj 3279 0 obj [1653 0 R/XYZ 0 15259 1] endobj 3280 0 obj [468 0 R/XYZ 0 15259 1] endobj 3281 0 obj [483 0 R/XYZ 0 15259 1] endobj 3282 0 obj [630 0 R/XYZ 0 15259 1] endobj 3283 0 obj [1037 0 R/XYZ 0 15259 1] endobj 3284 0 obj [1645 0 R/XYZ 0 15259 1] endobj 3285 0 obj [630 0 R/XYZ 0 15259 1] endobj 3286 0 obj [1025 0 R/XYZ 0 15259 1] endobj 3287 0 obj [1335 0 R/XYZ 0 15259 1] endobj 3288 0 obj [1337 0 R/XYZ 0 15259 1] endobj 3289 0 obj [1347 0 R/XYZ 0 15259 1] endobj 3290 0 obj [1099 0 R/XYZ 0 15259 1] endobj 3291 0 obj [556 0 R/XYZ 0 15259 1] endobj 3292 0 obj [600 0 R/XYZ 0 15259 1] endobj 3293 0 obj [1609 0 R/XYZ 0 15259 1] endobj 3294 0 obj [519 0 R/XYZ 0 15259 1] endobj 3295 0 obj [461 0 R/XYZ 0 15259 1] endobj 3296 0 obj [478 0 R/XYZ 0 15259 1] endobj 3297 0 obj [499 0 R/XYZ 0 15259 1] endobj 3298 0 obj [503 0 R/XYZ 0 15259 1] endobj 3299 0 obj [506 0 R/XYZ 0 15259 1] endobj 3300 0 obj [509 0 R/XYZ 0 15259 1] endobj 3301 0 obj [613 0 R/XYZ 0 15259 1] endobj 3302 0 obj [636 0 R/XYZ 0 15259 1] endobj 3303 0 obj [736 0 R/XYZ 0 15259 1] endobj 3304 0 obj [871 0 R/XYZ 0 15259 1] endobj 3305 0 obj [1061 0 R/XYZ 0 15259 1] endobj 3306 0 obj [1094 0 R/XYZ 0 15259 1] endobj 3307 0 obj [1095 0 R/XYZ 0 15259 1] endobj 3308 0 obj [1225 0 R/XYZ 0 15259 1] endobj 3309 0 obj [1228 0 R/XYZ 0 15259 1] endobj 3310 0 obj [1607 0 R/XYZ 0 15259 1] endobj 3311 0 obj [1608 0 R/XYZ 0 15259 1] endobj 3312 0 obj [1621 0 R/XYZ 0 15259 1] endobj 3313 0 obj [506 0 R/XYZ 0 15259 1] endobj 3314 0 obj [482 0 R/XYZ 0 15259 1] endobj 3315 0 obj [506 0 R/XYZ 0 15259 1] endobj 3316 0 obj [509 0 R/XYZ 0 15259 1] endobj 3317 0 obj [522 0 R/XYZ 0 15259 1] endobj 3318 0 obj [613 0 R/XYZ 0 15259 1] endobj 3319 0 obj [871 0 R/XYZ 0 15259 1] endobj 3320 0 obj [1155 0 R/XYZ 0 15259 1] endobj 3321 0 obj [1161 0 R/XYZ 0 15259 1] endobj 3322 0 obj [1168 0 R/XYZ 0 15259 1] endobj 3323 0 obj [1169 0 R/XYZ 0 15259 1] endobj 3324 0 obj [1225 0 R/XYZ 0 15259 1] endobj 3325 0 obj [1258 0 R/XYZ 0 15259 1] endobj 3326 0 obj [1259 0 R/XYZ 0 15259 1] endobj 3327 0 obj [1306 0 R/XYZ 0 15259 1] endobj 3328 0 obj [1401 0 R/XYZ 0 15259 1] endobj 3329 0 obj [1403 0 R/XYZ 0 15259 1] endobj 3330 0 obj [1414 0 R/XYZ 0 15259 1] endobj 3331 0 obj [1416 0 R/XYZ 0 15259 1] endobj 3332 0 obj [1607 0 R/XYZ 0 15259 1] endobj 3333 0 obj [1608 0 R/XYZ 0 15259 1] endobj 3334 0 obj [506 0 R/XYZ 0 15259 1] endobj 3335 0 obj [1189 0 R/XYZ 0 15259 1] endobj 3336 0 obj [396 0 R/XYZ 0 15259 1] endobj 3337 0 obj [397 0 R/XYZ 0 15259 1] endobj 3338 0 obj [1070 0 R/XYZ 0 15259 1] endobj 3339 0 obj [1089 0 R/XYZ 0 15259 1] endobj 3340 0 obj [1101 0 R/XYZ 0 15259 1] endobj 3341 0 obj [1618 0 R/XYZ 0 15259 1] endobj 3342 0 obj [399 0 R/XYZ 0 15259 1] endobj 3343 0 obj [930 0 R/XYZ 0 15259 1] endobj 3344 0 obj [1070 0 R/XYZ 0 15259 1] endobj 3345 0 obj [1083 0 R/XYZ 0 15259 1] endobj 3346 0 obj [1085 0 R/XYZ 0 15259 1] endobj 3347 0 obj [1089 0 R/XYZ 0 15259 1] endobj 3348 0 obj [1098 0 R/XYZ 0 15259 1] endobj 3349 0 obj [1099 0 R/XYZ 0 15259 1] endobj 3350 0 obj [1101 0 R/XYZ 0 15259 1] endobj 3351 0 obj [1123 0 R/XYZ 0 15259 1] endobj 3352 0 obj [1188 0 R/XYZ 0 15259 1] endobj 3353 0 obj [1195 0 R/XYZ 0 15259 1] endobj 3354 0 obj [1196 0 R/XYZ 0 15259 1] endobj 3355 0 obj [1209 0 R/XYZ 0 15259 1] endobj 3356 0 obj [1248 0 R/XYZ 0 15259 1] endobj 3357 0 obj [1270 0 R/XYZ 0 15259 1] endobj 3358 0 obj [461 0 R/XYZ 0 15259 1] endobj 3359 0 obj [1616 0 R/XYZ 0 15259 1] endobj 3360 0 obj [399 0 R/XYZ 0 15259 1] endobj 3361 0 obj [965 0 R/XYZ 0 15259 1] endobj 3362 0 obj [978 0 R/XYZ 0 15259 1] endobj 3363 0 obj [990 0 R/XYZ 0 15259 1] endobj 3364 0 obj [1124 0 R/XYZ 0 15259 1] endobj 3365 0 obj [874 0 R/XYZ 0 15259 1] endobj 3366 0 obj [899 0 R/XYZ 0 15259 1] endobj 3367 0 obj [923 0 R/XYZ 0 15259 1] endobj 3368 0 obj [1163 0 R/XYZ 0 15259 1] endobj 3369 0 obj [1332 0 R/XYZ 0 15259 1] endobj 3370 0 obj [1345 0 R/XYZ 0 15259 1] endobj 3371 0 obj [1346 0 R/XYZ 0 15259 1] endobj 3372 0 obj [1365 0 R/XYZ 0 15259 1] endobj 3373 0 obj [1370 0 R/XYZ 0 15259 1] endobj 3374 0 obj [1372 0 R/XYZ 0 15259 1] endobj 3375 0 obj [1405 0 R/XYZ 0 15259 1] endobj 3376 0 obj [697 0 R/XYZ 0 15259 1] endobj 3377 0 obj [1332 0 R/XYZ 0 15259 1] endobj 3378 0 obj [1345 0 R/XYZ 0 15259 1] endobj 3379 0 obj [1332 0 R/XYZ 0 15259 1] endobj 3380 0 obj [1345 0 R/XYZ 0 15259 1] endobj 3381 0 obj [1346 0 R/XYZ 0 15259 1] endobj 3382 0 obj [1365 0 R/XYZ 0 15259 1] endobj 3383 0 obj [1405 0 R/XYZ 0 15259 1] endobj 3384 0 obj [1332 0 R/XYZ 0 15259 1] endobj 3385 0 obj [1346 0 R/XYZ 0 15259 1] endobj 3386 0 obj [1365 0 R/XYZ 0 15259 1] endobj 3387 0 obj [1405 0 R/XYZ 0 15259 1] endobj 3388 0 obj [1332 0 R/XYZ 0 15259 1] endobj 3389 0 obj [1346 0 R/XYZ 0 15259 1] endobj 3390 0 obj [1332 0 R/XYZ 0 15259 1] endobj 3391 0 obj [1346 0 R/XYZ 0 15259 1] endobj 3392 0 obj [1365 0 R/XYZ 0 15259 1] endobj 3393 0 obj [1405 0 R/XYZ 0 15259 1] endobj 3394 0 obj [1332 0 R/XYZ 0 15259 1] endobj 3395 0 obj [1345 0 R/XYZ 0 15259 1] endobj 3396 0 obj [1346 0 R/XYZ 0 15259 1] endobj 3397 0 obj [919 0 R/XYZ 0 15259 1] endobj 3398 0 obj [921 0 R/XYZ 0 15259 1] endobj 3399 0 obj [922 0 R/XYZ 0 15259 1] endobj 3400 0 obj [1098 0 R/XYZ 0 15259 1] endobj 3401 0 obj [1099 0 R/XYZ 0 15259 1] endobj 3402 0 obj [990 0 R/XYZ 0 15259 1] endobj 3403 0 obj [571 0 R/XYZ 0 15259 1] endobj 3404 0 obj [1180 0 R/XYZ 0 15259 1] endobj 3405 0 obj [1212 0 R/XYZ 0 15259 1] endobj 3406 0 obj [1625 0 R/XYZ 0 15259 1] endobj 3407 0 obj [535 0 R/XYZ 0 15259 1] endobj 3408 0 obj [537 0 R/XYZ 0 15259 1] endobj 3409 0 obj [540 0 R/XYZ 0 15259 1] endobj 3410 0 obj [542 0 R/XYZ 0 15259 1] endobj 3411 0 obj [551 0 R/XYZ 0 15259 1] endobj 3412 0 obj [554 0 R/XYZ 0 15259 1] endobj 3413 0 obj [599 0 R/XYZ 0 15259 1] endobj 3414 0 obj [665 0 R/XYZ 0 15259 1] endobj 3415 0 obj [732 0 R/XYZ 0 15259 1] endobj 3416 0 obj [738 0 R/XYZ 0 15259 1] endobj 3417 0 obj [769 0 R/XYZ 0 15259 1] endobj 3418 0 obj [771 0 R/XYZ 0 15259 1] endobj 3419 0 obj [1180 0 R/XYZ 0 15259 1] endobj 3420 0 obj [1217 0 R/XYZ 0 15259 1] endobj 3421 0 obj [535 0 R/XYZ 0 15259 1] endobj 3422 0 obj [537 0 R/XYZ 0 15259 1] endobj 3423 0 obj [540 0 R/XYZ 0 15259 1] endobj 3424 0 obj [542 0 R/XYZ 0 15259 1] endobj 3425 0 obj [548 0 R/XYZ 0 15259 1] endobj 3426 0 obj [554 0 R/XYZ 0 15259 1] endobj 3427 0 obj [579 0 R/XYZ 0 15259 1] endobj 3428 0 obj [599 0 R/XYZ 0 15259 1] endobj 3429 0 obj [732 0 R/XYZ 0 15259 1] endobj 3430 0 obj [738 0 R/XYZ 0 15259 1] endobj 3431 0 obj [765 0 R/XYZ 0 15259 1] endobj 3432 0 obj [769 0 R/XYZ 0 15259 1] endobj 3433 0 obj [774 0 R/XYZ 0 15259 1] endobj 3434 0 obj [794 0 R/XYZ 0 15259 1] endobj 3435 0 obj [809 0 R/XYZ 0 15259 1] endobj 3436 0 obj [811 0 R/XYZ 0 15259 1] endobj 3437 0 obj [880 0 R/XYZ 0 15259 1] endobj 3438 0 obj [938 0 R/XYZ 0 15259 1] endobj 3439 0 obj [1180 0 R/XYZ 0 15259 1] endobj 3440 0 obj [1187 0 R/XYZ 0 15259 1] endobj 3441 0 obj [1194 0 R/XYZ 0 15259 1] endobj 3442 0 obj [1200 0 R/XYZ 0 15259 1] endobj 3443 0 obj [1215 0 R/XYZ 0 15259 1] endobj 3444 0 obj [1217 0 R/XYZ 0 15259 1] endobj 3445 0 obj [1286 0 R/XYZ 0 15259 1] endobj 3446 0 obj [1289 0 R/XYZ 0 15259 1] endobj 3447 0 obj [1503 0 R/XYZ 0 15259 1] endobj 3448 0 obj [1618 0 R/XYZ 0 15259 1] endobj 3449 0 obj [496 0 R/XYZ 0 15259 1] endobj 3450 0 obj [499 0 R/XYZ 0 15259 1] endobj 3451 0 obj [621 0 R/XYZ 0 15259 1] endobj 3452 0 obj [625 0 R/XYZ 0 15259 1] endobj 3453 0 obj [1187 0 R/XYZ 0 15259 1] endobj 3454 0 obj [1189 0 R/XYZ 0 15259 1] endobj 3455 0 obj [1194 0 R/XYZ 0 15259 1] endobj 3456 0 obj [1196 0 R/XYZ 0 15259 1] endobj 3457 0 obj [1207 0 R/XYZ 0 15259 1] endobj 3458 0 obj [1128 0 R/XYZ 0 15259 1] endobj 3459 0 obj [1129 0 R/XYZ 0 15259 1] endobj 3460 0 obj [1247 0 R/XYZ 0 15259 1] endobj 3461 0 obj [399 0 R/XYZ 0 15259 1] endobj 3462 0 obj [780 0 R/XYZ 0 15259 1] endobj 3463 0 obj [781 0 R/XYZ 0 15259 1] endobj 3464 0 obj [830 0 R/XYZ 0 15259 1] endobj 3465 0 obj [866 0 R/XYZ 0 15259 1] endobj 3466 0 obj [868 0 R/XYZ 0 15259 1] endobj 3467 0 obj [883 0 R/XYZ 0 15259 1] endobj 3468 0 obj [909 0 R/XYZ 0 15259 1] endobj 3469 0 obj [922 0 R/XYZ 0 15259 1] endobj 3470 0 obj [1106 0 R/XYZ 0 15259 1] endobj 3471 0 obj [1113 0 R/XYZ 0 15259 1] endobj 3472 0 obj [1123 0 R/XYZ 0 15259 1] endobj 3473 0 obj [1162 0 R/XYZ 0 15259 1] endobj 3474 0 obj [1163 0 R/XYZ 0 15259 1] endobj 3475 0 obj [1188 0 R/XYZ 0 15259 1] endobj 3476 0 obj [1189 0 R/XYZ 0 15259 1] endobj 3477 0 obj [1195 0 R/XYZ 0 15259 1] endobj 3478 0 obj [1196 0 R/XYZ 0 15259 1] endobj 3479 0 obj [1260 0 R/XYZ 0 15259 1] endobj 3480 0 obj [450 0 R/XYZ 0 15259 1] endobj 3481 0 obj [455 0 R/XYZ 0 15259 1] endobj 3482 0 obj [456 0 R/XYZ 0 15259 1] endobj 3483 0 obj [890 0 R/XYZ 0 15259 1] endobj 3484 0 obj [952 0 R/XYZ 0 15259 1] endobj 3485 0 obj [1160 0 R/XYZ 0 15259 1] endobj 3486 0 obj [1162 0 R/XYZ 0 15259 1] endobj 3487 0 obj [1163 0 R/XYZ 0 15259 1] endobj 3488 0 obj [1370 0 R/XYZ 0 15259 1] endobj 3489 0 obj [1372 0 R/XYZ 0 15259 1] endobj 3490 0 obj [1460 0 R/XYZ 0 15259 1] endobj 3491 0 obj [1614 0 R/XYZ 0 15259 1] endobj 3492 0 obj [840 0 R/XYZ 0 15259 1] endobj 3493 0 obj [857 0 R/XYZ 0 15259 1] endobj 3494 0 obj [1517 0 R/XYZ 0 15259 1] endobj 3495 0 obj [1518 0 R/XYZ 0 15259 1] endobj 3496 0 obj [1520 0 R/XYZ 0 15259 1] endobj 3497 0 obj [1521 0 R/XYZ 0 15259 1] endobj 3498 0 obj [571 0 R/XYZ 0 15259 1] endobj 3499 0 obj [572 0 R/XYZ 0 15259 1] endobj 3500 0 obj [1161 0 R/XYZ 0 15259 1] endobj 3501 0 obj [1163 0 R/XYZ 0 15259 1] endobj 3502 0 obj [1250 0 R/XYZ 0 15259 1] endobj 3503 0 obj [483 0 R/XYZ 0 15259 1] endobj 3504 0 obj [1286 0 R/XYZ 0 15259 1] endobj 3505 0 obj [1289 0 R/XYZ 0 15259 1] endobj 3506 0 obj [1025 0 R/XYZ 0 15259 1] endobj 3507 0 obj [665 0 R/XYZ 0 15259 1] endobj 3508 0 obj [667 0 R/XYZ 0 15259 1] endobj 3509 0 obj [1025 0 R/XYZ 0 15259 1] endobj 3510 0 obj [1037 0 R/XYZ 0 15259 1] endobj 3511 0 obj [665 0 R/XYZ 0 15259 1] endobj 3512 0 obj [1037 0 R/XYZ 0 15259 1] endobj 3513 0 obj [1234 0 R/XYZ 0 15259 1] endobj 3514 0 obj [1234 0 R/XYZ 0 15259 1] endobj 3515 0 obj [1037 0 R/XYZ 0 15259 1] endobj 3516 0 obj [1235 0 R/XYZ 0 15259 1] endobj 3517 0 obj [1235 0 R/XYZ 0 15259 1] endobj 3518 0 obj [1037 0 R/XYZ 0 15259 1] endobj 3519 0 obj [1235 0 R/XYZ 0 15259 1] endobj 3520 0 obj [1235 0 R/XYZ 0 15259 1] endobj 3521 0 obj [659 0 R/XYZ 0 15259 1] endobj 3522 0 obj [661 0 R/XYZ 0 15259 1] endobj 3523 0 obj [1025 0 R/XYZ 0 15259 1] endobj 3524 0 obj [1037 0 R/XYZ 0 15259 1] endobj 3525 0 obj [659 0 R/XYZ 0 15259 1] endobj 3526 0 obj [1037 0 R/XYZ 0 15259 1] endobj 3527 0 obj [1236 0 R/XYZ 0 15259 1] endobj 3528 0 obj [1236 0 R/XYZ 0 15259 1] endobj 3529 0 obj [663 0 R/XYZ 0 15259 1] endobj 3530 0 obj [663 0 R/XYZ 0 15259 1] endobj 3531 0 obj [1025 0 R/XYZ 0 15259 1] endobj 3532 0 obj [1037 0 R/XYZ 0 15259 1] endobj 3533 0 obj [399 0 R/XYZ 0 15259 1] endobj 3534 0 obj [399 0 R/XYZ 0 15259 1] endobj 3535 0 obj [397 0 R/XYZ 0 15259 1] endobj 3536 0 obj [643 0 R/XYZ 0 15259 1] endobj 3537 0 obj [1028 0 R/XYZ 0 15259 1] endobj 3538 0 obj [1426 0 R/XYZ 0 15259 1] endobj 3539 0 obj [1460 0 R/XYZ 0 15259 1] endobj 3540 0 obj [399 0 R/XYZ 0 15259 1] endobj 3541 0 obj [399 0 R/XYZ 0 15259 1] endobj 3542 0 obj [1614 0 R/XYZ 0 15259 1] endobj 3543 0 obj [1189 0 R/XYZ 0 15259 1] endobj 3544 0 obj [399 0 R/XYZ 0 15259 1] endobj 3545 0 obj [1028 0 R/XYZ 0 15259 1] endobj 3546 0 obj [374 0 R/XYZ 0 15259 1] endobj 3547 0 obj <> endobj 3548 0 obj [1225 0 R/XYZ 0 15259 1] endobj 3549 0 obj [1012 0 R/XYZ 0 15259 1] endobj 3550 0 obj [1342 0 R/XYZ 0 15259 1] endobj 3551 0 obj [1355 0 R/XYZ 0 15259 1] endobj 3552 0 obj [697 0 R/XYZ 0 15259 1] endobj 3553 0 obj [699 0 R/XYZ 0 15259 1] endobj 3554 0 obj [709 0 R/XYZ 0 15259 1] endobj 3555 0 obj [712 0 R/XYZ 0 15259 1] endobj 3556 0 obj [763 0 R/XYZ 0 15259 1] endobj 3557 0 obj [768 0 R/XYZ 0 15259 1] endobj 3558 0 obj [1027 0 R/XYZ 0 15259 1] endobj 3559 0 obj [1028 0 R/XYZ 0 15259 1] endobj 3560 0 obj [1034 0 R/XYZ 0 15259 1] endobj 3561 0 obj [1620 0 R/XYZ 0 15259 1] endobj 3562 0 obj [697 0 R/XYZ 0 15259 1] endobj 3563 0 obj [699 0 R/XYZ 0 15259 1] endobj 3564 0 obj [738 0 R/XYZ 0 15259 1] endobj 3565 0 obj [763 0 R/XYZ 0 15259 1] endobj 3566 0 obj [809 0 R/XYZ 0 15259 1] endobj 3567 0 obj [811 0 R/XYZ 0 15259 1] endobj 3568 0 obj [708 0 R/XYZ 0 15259 1] endobj 3569 0 obj [712 0 R/XYZ 0 15259 1] endobj 3570 0 obj [709 0 R/XYZ 0 15259 1] endobj 3571 0 obj [709 0 R/XYZ 0 15259 1] endobj 3572 0 obj [708 0 R/XYZ 0 15259 1] endobj 3573 0 obj [709 0 R/XYZ 0 15259 1] endobj 3574 0 obj [811 0 R/XYZ 0 15259 1] endobj 3575 0 obj [785 0 R/XYZ 0 15259 1] endobj 3576 0 obj [448 0 R/XYZ 0 15259 1] endobj 3577 0 obj [709 0 R/XYZ 0 15259 1] endobj 3578 0 obj [709 0 R/XYZ 0 15259 1] endobj 3579 0 obj [451 0 R/XYZ 0 15259 1] endobj 3580 0 obj [709 0 R/XYZ 0 15259 1] endobj 3581 0 obj [709 0 R/XYZ 0 15259 1] endobj 3582 0 obj [709 0 R/XYZ 0 15259 1] endobj 3583 0 obj [709 0 R/XYZ 0 15259 1] endobj 3584 0 obj [709 0 R/XYZ 0 15259 1] endobj 3585 0 obj [709 0 R/XYZ 0 15259 1] endobj 3586 0 obj [1439 0 R/XYZ 0 15259 1] endobj 3587 0 obj [709 0 R/XYZ 0 15259 1] endobj 3588 0 obj [709 0 R/XYZ 0 15259 1] endobj 3589 0 obj [794 0 R/XYZ 0 15259 1] endobj 3590 0 obj [811 0 R/XYZ 0 15259 1] endobj 3591 0 obj [708 0 R/XYZ 0 15259 1] endobj 3592 0 obj [1628 0 R/XYZ 0 15259 1] endobj 3593 0 obj [709 0 R/XYZ 0 15259 1] endobj 3594 0 obj [709 0 R/XYZ 0 15259 1] endobj 3595 0 obj [1155 0 R/XYZ 0 15259 1] endobj 3596 0 obj [1159 0 R/XYZ 0 15259 1] endobj 3597 0 obj [1160 0 R/XYZ 0 15259 1] endobj 3598 0 obj [538 0 R/XYZ 0 15259 1] endobj 3599 0 obj [709 0 R/XYZ 0 15259 1] endobj 3600 0 obj [762 0 R/XYZ 0 15259 1] endobj 3601 0 obj [763 0 R/XYZ 0 15259 1] endobj 3602 0 obj [765 0 R/XYZ 0 15259 1] endobj 3603 0 obj [774 0 R/XYZ 0 15259 1] endobj 3604 0 obj [777 0 R/XYZ 0 15259 1] endobj 3605 0 obj [780 0 R/XYZ 0 15259 1] endobj 3606 0 obj [811 0 R/XYZ 0 15259 1] endobj 3607 0 obj [812 0 R/XYZ 0 15259 1] endobj 3608 0 obj [556 0 R/XYZ 0 15259 1] endobj 3609 0 obj [709 0 R/XYZ 0 15259 1] endobj 3610 0 obj [709 0 R/XYZ 0 15259 1] endobj 3611 0 obj [811 0 R/XYZ 0 15259 1] endobj 3612 0 obj [1412 0 R/XYZ 0 15259 1] endobj 3613 0 obj [709 0 R/XYZ 0 15259 1] endobj 3614 0 obj [810 0 R/XYZ 0 15259 1] endobj 3615 0 obj [812 0 R/XYZ 0 15259 1] endobj 3616 0 obj [709 0 R/XYZ 0 15259 1] endobj 3617 0 obj [677 0 R/XYZ 0 15259 1] endobj 3618 0 obj [679 0 R/XYZ 0 15259 1] endobj 3619 0 obj [682 0 R/XYZ 0 15259 1] endobj 3620 0 obj [684 0 R/XYZ 0 15259 1] endobj 3621 0 obj [709 0 R/XYZ 0 15259 1] endobj 3622 0 obj [1619 0 R/XYZ 0 15259 1] endobj 3623 0 obj [708 0 R/XYZ 0 15259 1] endobj 3624 0 obj [811 0 R/XYZ 0 15259 1] endobj 3625 0 obj [1172 0 R/XYZ 0 15259 1] endobj 3626 0 obj [391 0 R/XYZ 0 15259 1] endobj 3627 0 obj [617 0 R/XYZ 0 15259 1] endobj 3628 0 obj [619 0 R/XYZ 0 15259 1] endobj 3629 0 obj [622 0 R/XYZ 0 15259 1] endobj 3630 0 obj [636 0 R/XYZ 0 15259 1] endobj 3631 0 obj [651 0 R/XYZ 0 15259 1] endobj 3632 0 obj [1162 0 R/XYZ 0 15259 1] endobj 3633 0 obj [1164 0 R/XYZ 0 15259 1] endobj 3634 0 obj [1166 0 R/XYZ 0 15259 1] endobj 3635 0 obj [1168 0 R/XYZ 0 15259 1] endobj 3636 0 obj [1169 0 R/XYZ 0 15259 1] endobj 3637 0 obj [1316 0 R/XYZ 0 15259 1] endobj 3638 0 obj [1404 0 R/XYZ 0 15259 1] endobj 3639 0 obj [1613 0 R/XYZ 0 15259 1] endobj 3640 0 obj [1335 0 R/XYZ 0 15259 1] endobj 3641 0 obj [1337 0 R/XYZ 0 15259 1] endobj 3642 0 obj [1345 0 R/XYZ 0 15259 1] endobj 3643 0 obj [1346 0 R/XYZ 0 15259 1] endobj 3644 0 obj [1364 0 R/XYZ 0 15259 1] endobj 3645 0 obj [1368 0 R/XYZ 0 15259 1] endobj 3646 0 obj [1335 0 R/XYZ 0 15259 1] endobj 3647 0 obj [1337 0 R/XYZ 0 15259 1] endobj 3648 0 obj [1346 0 R/XYZ 0 15259 1] endobj 3649 0 obj [1364 0 R/XYZ 0 15259 1] endobj 3650 0 obj [1368 0 R/XYZ 0 15259 1] endobj 3651 0 obj [1335 0 R/XYZ 0 15259 1] endobj 3652 0 obj [1337 0 R/XYZ 0 15259 1] endobj 3653 0 obj [1346 0 R/XYZ 0 15259 1] endobj 3654 0 obj [1364 0 R/XYZ 0 15259 1] endobj 3655 0 obj [1368 0 R/XYZ 0 15259 1] endobj 3656 0 obj [1011 0 R/XYZ 0 15259 1] endobj 3657 0 obj [769 0 R/XYZ 0 15259 1] endobj 3658 0 obj [1153 0 R/XYZ 0 15259 1] endobj 3659 0 obj [1637 0 R/XYZ 0 15259 1] endobj 3660 0 obj [405 0 R/XYZ 0 15259 1] endobj 3661 0 obj [408 0 R/XYZ 0 15259 1] endobj 3662 0 obj [579 0 R/XYZ 0 15259 1] endobj 3663 0 obj [673 0 R/XYZ 0 15259 1] endobj 3664 0 obj [676 0 R/XYZ 0 15259 1] endobj 3665 0 obj [677 0 R/XYZ 0 15259 1] endobj 3666 0 obj [1289 0 R/XYZ 0 15259 1] endobj 3667 0 obj [459 0 R/XYZ 0 15259 1] endobj 3668 0 obj [1335 0 R/XYZ 0 15259 1] endobj 3669 0 obj [1337 0 R/XYZ 0 15259 1] endobj 3670 0 obj [1345 0 R/XYZ 0 15259 1] endobj 3671 0 obj [1346 0 R/XYZ 0 15259 1] endobj 3672 0 obj [1366 0 R/XYZ 0 15259 1] endobj 3673 0 obj [1368 0 R/XYZ 0 15259 1] endobj 3674 0 obj [1335 0 R/XYZ 0 15259 1] endobj 3675 0 obj [1338 0 R/XYZ 0 15259 1] endobj 3676 0 obj [1595 0 R/XYZ 0 15259 1] endobj 3677 0 obj [1598 0 R/XYZ 0 15259 1] endobj 3678 0 obj [1599 0 R/XYZ 0 15259 1] endobj 3679 0 obj [917 0 R/XYZ 0 15259 1] endobj 3680 0 obj [1453 0 R/XYZ 0 15259 1] endobj 3681 0 obj [1595 0 R/XYZ 0 15259 1] endobj 3682 0 obj [1598 0 R/XYZ 0 15259 1] endobj 3683 0 obj [1599 0 R/XYZ 0 15259 1] endobj 3684 0 obj [1503 0 R/XYZ 0 15259 1] endobj 3685 0 obj [1595 0 R/XYZ 0 15259 1] endobj 3686 0 obj [1598 0 R/XYZ 0 15259 1] endobj 3687 0 obj [1599 0 R/XYZ 0 15259 1] endobj 3688 0 obj [1595 0 R/XYZ 0 15259 1] endobj 3689 0 obj [1598 0 R/XYZ 0 15259 1] endobj 3690 0 obj [1600 0 R/XYZ 0 15259 1] endobj 3691 0 obj [396 0 R/XYZ 0 15259 1] endobj 3692 0 obj [397 0 R/XYZ 0 15259 1] endobj 3693 0 obj [450 0 R/XYZ 0 15259 1] endobj 3694 0 obj [459 0 R/XYZ 0 15259 1] endobj 3695 0 obj [465 0 R/XYZ 0 15259 1] endobj 3696 0 obj [483 0 R/XYZ 0 15259 1] endobj 3697 0 obj [488 0 R/XYZ 0 15259 1] endobj 3698 0 obj [509 0 R/XYZ 0 15259 1] endobj 3699 0 obj [571 0 R/XYZ 0 15259 1] endobj 3700 0 obj [606 0 R/XYZ 0 15259 1] endobj 3701 0 obj [769 0 R/XYZ 0 15259 1] endobj 3702 0 obj [780 0 R/XYZ 0 15259 1] endobj 3703 0 obj [795 0 R/XYZ 0 15259 1] endobj 3704 0 obj [830 0 R/XYZ 0 15259 1] endobj 3705 0 obj [840 0 R/XYZ 0 15259 1] endobj 3706 0 obj [850 0 R/XYZ 0 15259 1] endobj 3707 0 obj [857 0 R/XYZ 0 15259 1] endobj 3708 0 obj [866 0 R/XYZ 0 15259 1] endobj 3709 0 obj [867 0 R/XYZ 0 15259 1] endobj 3710 0 obj [870 0 R/XYZ 0 15259 1] endobj 3711 0 obj [871 0 R/XYZ 0 15259 1] endobj 3712 0 obj [874 0 R/XYZ 0 15259 1] endobj 3713 0 obj [880 0 R/XYZ 0 15259 1] endobj 3714 0 obj [883 0 R/XYZ 0 15259 1] endobj 3715 0 obj [890 0 R/XYZ 0 15259 1] endobj 3716 0 obj [899 0 R/XYZ 0 15259 1] endobj 3717 0 obj [909 0 R/XYZ 0 15259 1] endobj 3718 0 obj [923 0 R/XYZ 0 15259 1] endobj 3719 0 obj [930 0 R/XYZ 0 15259 1] endobj 3720 0 obj [936 0 R/XYZ 0 15259 1] endobj 3721 0 obj [945 0 R/XYZ 0 15259 1] endobj 3722 0 obj [948 0 R/XYZ 0 15259 1] endobj 3723 0 obj [1030 0 R/XYZ 0 15259 1] endobj 3724 0 obj [1031 0 R/XYZ 0 15259 1] endobj 3725 0 obj [1040 0 R/XYZ 0 15259 1] endobj 3726 0 obj [1065 0 R/XYZ 0 15259 1] endobj 3727 0 obj [1070 0 R/XYZ 0 15259 1] endobj 3728 0 obj [1083 0 R/XYZ 0 15259 1] endobj 3729 0 obj [1085 0 R/XYZ 0 15259 1] endobj 3730 0 obj [1089 0 R/XYZ 0 15259 1] endobj 3731 0 obj [1101 0 R/XYZ 0 15259 1] endobj 3732 0 obj [1106 0 R/XYZ 0 15259 1] endobj 3733 0 obj [1113 0 R/XYZ 0 15259 1] endobj 3734 0 obj [1122 0 R/XYZ 0 15259 1] endobj 3735 0 obj [1123 0 R/XYZ 0 15259 1] endobj 3736 0 obj [1153 0 R/XYZ 0 15259 1] endobj 3737 0 obj [1163 0 R/XYZ 0 15259 1] endobj 3738 0 obj [1172 0 R/XYZ 0 15259 1] endobj 3739 0 obj [1189 0 R/XYZ 0 15259 1] endobj 3740 0 obj [1194 0 R/XYZ 0 15259 1] endobj 3741 0 obj [1207 0 R/XYZ 0 15259 1] endobj 3742 0 obj [1209 0 R/XYZ 0 15259 1] endobj 3743 0 obj [1212 0 R/XYZ 0 15259 1] endobj 3744 0 obj [1225 0 R/XYZ 0 15259 1] endobj 3745 0 obj [1247 0 R/XYZ 0 15259 1] endobj 3746 0 obj [1250 0 R/XYZ 0 15259 1] endobj 3747 0 obj [1270 0 R/XYZ 0 15259 1] endobj 3748 0 obj [1286 0 R/XYZ 0 15259 1] endobj 3749 0 obj [1287 0 R/XYZ 0 15259 1] endobj 3750 0 obj [1289 0 R/XYZ 0 15259 1] endobj 3751 0 obj [1342 0 R/XYZ 0 15259 1] endobj 3752 0 obj [1355 0 R/XYZ 0 15259 1] endobj 3753 0 obj [1426 0 R/XYZ 0 15259 1] endobj 3754 0 obj [1499 0 R/XYZ 0 15259 1] endobj 3755 0 obj [1598 0 R/XYZ 0 15259 1] endobj 3756 0 obj [1625 0 R/XYZ 0 15259 1] endobj 3757 0 obj [1637 0 R/XYZ 0 15259 1] endobj 3758 0 obj [396 0 R/XYZ 0 15259 1] endobj 3759 0 obj [399 0 R/XYZ 0 15259 1] endobj 3760 0 obj [419 0 R/XYZ 0 15259 1] endobj 3761 0 obj [396 0 R/XYZ 0 15259 1] endobj 3762 0 obj [399 0 R/XYZ 0 15259 1] endobj 3763 0 obj [1063 0 R/XYZ 0 15259 1] endobj 3764 0 obj [1068 0 R/XYZ 0 15259 1] endobj 3765 0 obj [399 0 R/XYZ 0 15259 1] endobj 3766 0 obj [1597 0 R/XYZ 0 15259 1] endobj 3767 0 obj [1603 0 R/XYZ 0 15259 1] endobj 3768 0 obj [483 0 R/XYZ 0 15259 1] endobj 3769 0 obj [762 0 R/XYZ 0 15259 1] endobj 3770 0 obj [1654 0 R/XYZ 0 15259 1] endobj 3771 0 obj [386 0 R/XYZ 0 15259 1] endobj 3772 0 obj [1509 0 R/XYZ 0 15259 1] endobj 3773 0 obj [1595 0 R/XYZ 0 15259 1] endobj 3774 0 obj [1598 0 R/XYZ 0 15259 1] endobj 3775 0 obj [1612 0 R/XYZ 0 15259 1] endobj 3776 0 obj [1600 0 R/XYZ 0 15259 1] endobj 3777 0 obj [1595 0 R/XYZ 0 15259 1] endobj 3778 0 obj [1598 0 R/XYZ 0 15259 1] endobj 3779 0 obj [1612 0 R/XYZ 0 15259 1] endobj 3780 0 obj [1598 0 R/XYZ 0 15259 1] endobj 3781 0 obj [386 0 R/XYZ 0 15259 1] endobj 3782 0 obj [1595 0 R/XYZ 0 15259 1] endobj 3783 0 obj [1598 0 R/XYZ 0 15259 1] endobj 3784 0 obj [1598 0 R/XYZ 0 15259 1] endobj 3785 0 obj [488 0 R/XYZ 0 15259 1] endobj 3786 0 obj [1225 0 R/XYZ 0 15259 1] endobj 3787 0 obj [880 0 R/XYZ 0 15259 1] endobj 3788 0 obj [814 0 R/XYZ 0 15259 1] endobj 3789 0 obj [400 0 R/XYZ 0 15259 1] endobj 3790 0 obj [402 0 R/XYZ 0 15259 1] endobj 3791 0 obj [656 0 R/XYZ 0 15259 1] endobj 3792 0 obj [669 0 R/XYZ 0 15259 1] endobj 3793 0 obj [671 0 R/XYZ 0 15259 1] endobj 3794 0 obj [671 0 R/XYZ 0 15259 1] endobj 3795 0 obj [1489 0 R/XYZ 0 15259 1] endobj 3796 0 obj [814 0 R/XYZ 0 15259 1] endobj 3797 0 obj [814 0 R/XYZ 0 15259 1] endobj 3798 0 obj [669 0 R/XYZ 0 15259 1] endobj 3799 0 obj [669 0 R/XYZ 0 15259 1] endobj 3800 0 obj [671 0 R/XYZ 0 15259 1] endobj 3801 0 obj [380 0 R/XYZ 0 15259 1] endobj 3802 0 obj [537 0 R/XYZ 0 15259 1] endobj 3803 0 obj [591 0 R/XYZ 0 15259 1] endobj 3804 0 obj [656 0 R/XYZ 0 15259 1] endobj 3805 0 obj [657 0 R/XYZ 0 15259 1] endobj 3806 0 obj [659 0 R/XYZ 0 15259 1] endobj 3807 0 obj [663 0 R/XYZ 0 15259 1] endobj 3808 0 obj [669 0 R/XYZ 0 15259 1] endobj 3809 0 obj [671 0 R/XYZ 0 15259 1] endobj 3810 0 obj [1487 0 R/XYZ 0 15259 1] endobj 3811 0 obj [1489 0 R/XYZ 0 15259 1] endobj 3812 0 obj [1493 0 R/XYZ 0 15259 1] endobj 3813 0 obj [669 0 R/XYZ 0 15259 1] endobj 3814 0 obj [671 0 R/XYZ 0 15259 1] endobj 3815 0 obj [669 0 R/XYZ 0 15259 1] endobj 3816 0 obj [676 0 R/XYZ 0 15259 1] endobj 3817 0 obj [815 0 R/XYZ 0 15259 1] endobj 3818 0 obj [669 0 R/XYZ 0 15259 1] endobj 3819 0 obj [671 0 R/XYZ 0 15259 1] endobj 3820 0 obj [537 0 R/XYZ 0 15259 1] endobj 3821 0 obj [669 0 R/XYZ 0 15259 1] endobj 3822 0 obj [671 0 R/XYZ 0 15259 1] endobj 3823 0 obj [669 0 R/XYZ 0 15259 1] endobj 3824 0 obj [1064 0 R/XYZ 0 15259 1] endobj 3825 0 obj [1379 0 R/XYZ 0 15259 1] endobj 3826 0 obj [809 0 R/XYZ 0 15259 1] endobj 3827 0 obj [1494 0 R/XYZ 0 15259 1] endobj 3828 0 obj [1499 0 R/XYZ 0 15259 1] endobj 3829 0 obj [974 0 R/XYZ 0 15259 1] endobj 3830 0 obj [983 0 R/XYZ 0 15259 1] endobj 3831 0 obj [985 0 R/XYZ 0 15259 1] endobj 3832 0 obj [1209 0 R/XYZ 0 15259 1] endobj 3833 0 obj [1494 0 R/XYZ 0 15259 1] endobj 3834 0 obj [1650 0 R/XYZ 0 15259 1] endobj 3835 0 obj [399 0 R/XYZ 0 15259 1] endobj 3836 0 obj [1083 0 R/XYZ 0 15259 1] endobj 3837 0 obj [1248 0 R/XYZ 0 15259 1] endobj 3838 0 obj [1270 0 R/XYZ 0 15259 1] endobj 3839 0 obj [391 0 R/XYZ 0 15259 1] endobj 3840 0 obj [392 0 R/XYZ 0 15259 1] endobj 3841 0 obj [394 0 R/XYZ 0 15259 1] endobj 3842 0 obj [410 0 R/XYZ 0 15259 1] endobj 3843 0 obj [445 0 R/XYZ 0 15259 1] endobj 3844 0 obj [446 0 R/XYZ 0 15259 1] endobj 3845 0 obj [451 0 R/XYZ 0 15259 1] endobj 3846 0 obj [506 0 R/XYZ 0 15259 1] endobj 3847 0 obj [511 0 R/XYZ 0 15259 1] endobj 3848 0 obj [538 0 R/XYZ 0 15259 1] endobj 3849 0 obj [571 0 R/XYZ 0 15259 1] endobj 3850 0 obj [577 0 R/XYZ 0 15259 1] endobj 3851 0 obj [688 0 R/XYZ 0 15259 1] endobj 3852 0 obj [693 0 R/XYZ 0 15259 1] endobj 3853 0 obj [697 0 R/XYZ 0 15259 1] endobj 3854 0 obj [726 0 R/XYZ 0 15259 1] endobj 3855 0 obj [734 0 R/XYZ 0 15259 1] endobj 3856 0 obj [738 0 R/XYZ 0 15259 1] endobj 3857 0 obj [740 0 R/XYZ 0 15259 1] endobj 3858 0 obj [761 0 R/XYZ 0 15259 1] endobj 3859 0 obj [770 0 R/XYZ 0 15259 1] endobj 3860 0 obj [774 0 R/XYZ 0 15259 1] endobj 3861 0 obj [775 0 R/XYZ 0 15259 1] endobj 3862 0 obj [779 0 R/XYZ 0 15259 1] endobj 3863 0 obj [781 0 R/XYZ 0 15259 1] endobj 3864 0 obj [785 0 R/XYZ 0 15259 1] endobj 3865 0 obj [787 0 R/XYZ 0 15259 1] endobj 3866 0 obj [792 0 R/XYZ 0 15259 1] endobj 3867 0 obj [795 0 R/XYZ 0 15259 1] endobj 3868 0 obj [802 0 R/XYZ 0 15259 1] endobj 3869 0 obj [803 0 R/XYZ 0 15259 1] endobj 3870 0 obj [809 0 R/XYZ 0 15259 1] endobj 3871 0 obj [811 0 R/XYZ 0 15259 1] endobj 3872 0 obj [814 0 R/XYZ 0 15259 1] endobj 3873 0 obj [816 0 R/XYZ 0 15259 1] endobj 3874 0 obj [819 0 R/XYZ 0 15259 1] endobj 3875 0 obj [835 0 R/XYZ 0 15259 1] endobj 3876 0 obj <> endobj 3877 0 obj [862 0 R/XYZ 0 15259 1] endobj 3878 0 obj [924 0 R/XYZ 0 15259 1] endobj 3879 0 obj [1044 0 R/XYZ 0 15259 1] endobj 3880 0 obj [1076 0 R/XYZ 0 15259 1] endobj 3881 0 obj [1094 0 R/XYZ 0 15259 1] endobj 3882 0 obj [1139 0 R/XYZ 0 15259 1] endobj 3883 0 obj [1148 0 R/XYZ 0 15259 1] endobj 3884 0 obj [1154 0 R/XYZ 0 15259 1] endobj 3885 0 obj [1158 0 R/XYZ 0 15259 1] endobj 3886 0 obj [1178 0 R/XYZ 0 15259 1] endobj 3887 0 obj [1214 0 R/XYZ 0 15259 1] endobj 3888 0 obj [1304 0 R/XYZ 0 15259 1] endobj 3889 0 obj [1305 0 R/XYZ 0 15259 1] endobj 3890 0 obj [1309 0 R/XYZ 0 15259 1] endobj 3891 0 obj [1311 0 R/XYZ 0 15259 1] endobj 3892 0 obj [1322 0 R/XYZ 0 15259 1] endobj 3893 0 obj [1387 0 R/XYZ 0 15259 1] endobj 3894 0 obj [1388 0 R/XYZ 0 15259 1] endobj 3895 0 obj [1392 0 R/XYZ 0 15259 1] endobj 3896 0 obj [1395 0 R/XYZ 0 15259 1] endobj 3897 0 obj [1400 0 R/XYZ 0 15259 1] endobj 3898 0 obj [1414 0 R/XYZ 0 15259 1] endobj 3899 0 obj [1419 0 R/XYZ 0 15259 1] endobj 3900 0 obj [1620 0 R/XYZ 0 15259 1] endobj 3901 0 obj [1628 0 R/XYZ 0 15259 1] endobj 3902 0 obj [1649 0 R/XYZ 0 15259 1] endobj 3903 0 obj [761 0 R/XYZ 0 15259 1] endobj 3904 0 obj [763 0 R/XYZ 0 15259 1] endobj 3905 0 obj [775 0 R/XYZ 0 15259 1] endobj 3906 0 obj [780 0 R/XYZ 0 15259 1] endobj 3907 0 obj [781 0 R/XYZ 0 15259 1] endobj 3908 0 obj [788 0 R/XYZ 0 15259 1] endobj 3909 0 obj [790 0 R/XYZ 0 15259 1] endobj 3910 0 obj [792 0 R/XYZ 0 15259 1] endobj 3911 0 obj [803 0 R/XYZ 0 15259 1] endobj 3912 0 obj [811 0 R/XYZ 0 15259 1] endobj 3913 0 obj [871 0 R/XYZ 0 15259 1] endobj 3914 0 obj [922 0 R/XYZ 0 15259 1] endobj 3915 0 obj [923 0 R/XYZ 0 15259 1] endobj 3916 0 obj [1155 0 R/XYZ 0 15259 1] endobj 3917 0 obj [1161 0 R/XYZ 0 15259 1] endobj 3918 0 obj [1168 0 R/XYZ 0 15259 1] endobj 3919 0 obj [1169 0 R/XYZ 0 15259 1] endobj 3920 0 obj [1258 0 R/XYZ 0 15259 1] endobj 3921 0 obj [1306 0 R/XYZ 0 15259 1] endobj 3922 0 obj [1412 0 R/XYZ 0 15259 1] endobj 3923 0 obj [1622 0 R/XYZ 0 15259 1] endobj 3924 0 obj [761 0 R/XYZ 0 15259 1] endobj 3925 0 obj [761 0 R/XYZ 0 15259 1] endobj 3926 0 obj [763 0 R/XYZ 0 15259 1] endobj 3927 0 obj [766 0 R/XYZ 0 15259 1] endobj 3928 0 obj [810 0 R/XYZ 0 15259 1] endobj 3929 0 obj [871 0 R/XYZ 0 15259 1] endobj 3930 0 obj [761 0 R/XYZ 0 15259 1] endobj 3931 0 obj [393 0 R/XYZ 0 15259 1] endobj 3932 0 obj [394 0 R/XYZ 0 15259 1] endobj 3933 0 obj [403 0 R/XYZ 0 15259 1] endobj 3934 0 obj [761 0 R/XYZ 0 15259 1] endobj 3935 0 obj [763 0 R/XYZ 0 15259 1] endobj 3936 0 obj [765 0 R/XYZ 0 15259 1] endobj 3937 0 obj [766 0 R/XYZ 0 15259 1] endobj 3938 0 obj [779 0 R/XYZ 0 15259 1] endobj 3939 0 obj [780 0 R/XYZ 0 15259 1] endobj 3940 0 obj [803 0 R/XYZ 0 15259 1] endobj 3941 0 obj [1416 0 R/XYZ 0 15259 1] endobj 3942 0 obj [1622 0 R/XYZ 0 15259 1] endobj 3943 0 obj [761 0 R/XYZ 0 15259 1] endobj 3944 0 obj [761 0 R/XYZ 0 15259 1] endobj 3945 0 obj [763 0 R/XYZ 0 15259 1] endobj 3946 0 obj [871 0 R/XYZ 0 15259 1] endobj 3947 0 obj [761 0 R/XYZ 0 15259 1] endobj 3948 0 obj [761 0 R/XYZ 0 15259 1] endobj 3949 0 obj [763 0 R/XYZ 0 15259 1] endobj 3950 0 obj [765 0 R/XYZ 0 15259 1] endobj 3951 0 obj [871 0 R/XYZ 0 15259 1] endobj 3952 0 obj [1622 0 R/XYZ 0 15259 1] endobj 3953 0 obj [761 0 R/XYZ 0 15259 1] endobj 3954 0 obj [761 0 R/XYZ 0 15259 1] endobj 3955 0 obj [763 0 R/XYZ 0 15259 1] endobj 3956 0 obj [765 0 R/XYZ 0 15259 1] endobj 3957 0 obj [1405 0 R/XYZ 0 15259 1] endobj 3958 0 obj [1406 0 R/XYZ 0 15259 1] endobj 3959 0 obj [761 0 R/XYZ 0 15259 1] endobj 3960 0 obj [1605 0 R/XYZ 0 15259 1] endobj 3961 0 obj [1645 0 R/XYZ 0 15259 1] endobj 3962 0 obj [690 0 R/XYZ 0 15259 1] endobj 3963 0 obj [693 0 R/XYZ 0 15259 1] endobj 3964 0 obj [743 0 R/XYZ 0 15259 1] endobj 3965 0 obj [744 0 R/XYZ 0 15259 1] endobj 3966 0 obj [747 0 R/XYZ 0 15259 1] endobj 3967 0 obj [871 0 R/XYZ 0 15259 1] endobj 3968 0 obj [916 0 R/XYZ 0 15259 1] endobj 3969 0 obj [919 0 R/XYZ 0 15259 1] endobj 3970 0 obj [951 0 R/XYZ 0 15259 1] endobj 3971 0 obj [1031 0 R/XYZ 0 15259 1] endobj 3972 0 obj [690 0 R/XYZ 0 15259 1] endobj 3973 0 obj [690 0 R/XYZ 0 15259 1] endobj 3974 0 obj [693 0 R/XYZ 0 15259 1] endobj 3975 0 obj [741 0 R/XYZ 0 15259 1] endobj 3976 0 obj [747 0 R/XYZ 0 15259 1] endobj 3977 0 obj [780 0 R/XYZ 0 15259 1] endobj 3978 0 obj [781 0 R/XYZ 0 15259 1] endobj 3979 0 obj [802 0 R/XYZ 0 15259 1] endobj 3980 0 obj [803 0 R/XYZ 0 15259 1] endobj 3981 0 obj [871 0 R/XYZ 0 15259 1] endobj 3982 0 obj [916 0 R/XYZ 0 15259 1] endobj 3983 0 obj [919 0 R/XYZ 0 15259 1] endobj 3984 0 obj [922 0 R/XYZ 0 15259 1] endobj 3985 0 obj [938 0 R/XYZ 0 15259 1] endobj 3986 0 obj [951 0 R/XYZ 0 15259 1] endobj 3987 0 obj [1031 0 R/XYZ 0 15259 1] endobj 3988 0 obj [1621 0 R/XYZ 0 15259 1] endobj 3989 0 obj [1624 0 R/XYZ 0 15259 1] endobj 3990 0 obj [690 0 R/XYZ 0 15259 1] endobj 3991 0 obj [386 0 R/XYZ 0 15259 1] endobj 3992 0 obj [616 0 R/XYZ 0 15259 1] endobj 3993 0 obj [622 0 R/XYZ 0 15259 1] endobj 3994 0 obj [690 0 R/XYZ 0 15259 1] endobj 3995 0 obj [694 0 R/XYZ 0 15259 1] endobj 3996 0 obj [727 0 R/XYZ 0 15259 1] endobj 3997 0 obj [736 0 R/XYZ 0 15259 1] endobj 3998 0 obj [740 0 R/XYZ 0 15259 1] endobj 3999 0 obj [747 0 R/XYZ 0 15259 1] endobj 4000 0 obj [757 0 R/XYZ 0 15259 1] endobj 4001 0 obj [761 0 R/XYZ 0 15259 1] endobj 4002 0 obj [780 0 R/XYZ 0 15259 1] endobj 4003 0 obj [787 0 R/XYZ 0 15259 1] endobj 4004 0 obj [788 0 R/XYZ 0 15259 1] endobj 4005 0 obj [790 0 R/XYZ 0 15259 1] endobj 4006 0 obj [792 0 R/XYZ 0 15259 1] endobj 4007 0 obj [803 0 R/XYZ 0 15259 1] endobj 4008 0 obj [811 0 R/XYZ 0 15259 1] endobj 4009 0 obj [870 0 R/XYZ 0 15259 1] endobj 4010 0 obj [916 0 R/XYZ 0 15259 1] endobj 4011 0 obj [917 0 R/XYZ 0 15259 1] endobj 4012 0 obj [951 0 R/XYZ 0 15259 1] endobj 4013 0 obj [1031 0 R/XYZ 0 15259 1] endobj 4014 0 obj [1059 0 R/XYZ 0 15259 1] endobj 4015 0 obj [1159 0 R/XYZ 0 15259 1] endobj 4016 0 obj [1370 0 R/XYZ 0 15259 1] endobj 4017 0 obj [1406 0 R/XYZ 0 15259 1] endobj 4018 0 obj [1419 0 R/XYZ 0 15259 1] endobj 4019 0 obj [1511 0 R/XYZ 0 15259 1] endobj 4020 0 obj [1524 0 R/XYZ 0 15259 1] endobj 4021 0 obj [1593 0 R/XYZ 0 15259 1] endobj 4022 0 obj [1620 0 R/XYZ 0 15259 1] endobj 4023 0 obj [1621 0 R/XYZ 0 15259 1] endobj 4024 0 obj [1644 0 R/XYZ 0 15259 1] endobj 4025 0 obj [690 0 R/XYZ 0 15259 1] endobj 4026 0 obj [692 0 R/XYZ 0 15259 1] endobj 4027 0 obj [1391 0 R/XYZ 0 15259 1] endobj 4028 0 obj [1414 0 R/XYZ 0 15259 1] endobj 4029 0 obj [1416 0 R/XYZ 0 15259 1] endobj 4030 0 obj [1652 0 R/XYZ 0 15259 1] endobj 4031 0 obj [1245 0 R/XYZ 0 15259 1] endobj 4032 0 obj [583 0 R/XYZ 0 15259 1] endobj 4033 0 obj [583 0 R/XYZ 0 15259 1] endobj 4034 0 obj [497 0 R/XYZ 0 15259 1] endobj 4035 0 obj [515 0 R/XYZ 0 15259 1] endobj 4036 0 obj [583 0 R/XYZ 0 15259 1] endobj 4037 0 obj [1057 0 R/XYZ 0 15259 1] endobj 4038 0 obj [1332 0 R/XYZ 0 15259 1] endobj 4039 0 obj [1346 0 R/XYZ 0 15259 1] endobj 4040 0 obj [542 0 R/XYZ 0 15259 1] endobj 4041 0 obj [545 0 R/XYZ 0 15259 1] endobj 4042 0 obj [871 0 R/XYZ 0 15259 1] endobj 4043 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4044 0 obj [542 0 R/XYZ 0 15259 1] endobj 4045 0 obj [1425 0 R/XYZ 0 15259 1] endobj 4046 0 obj [1433 0 R/XYZ 0 15259 1] endobj 4047 0 obj [1650 0 R/XYZ 0 15259 1] endobj 4048 0 obj [1150 0 R/XYZ 0 15259 1] endobj 4049 0 obj [399 0 R/XYZ 0 15259 1] endobj 4050 0 obj [591 0 R/XYZ 0 15259 1] endobj 4051 0 obj [594 0 R/XYZ 0 15259 1] endobj 4052 0 obj [1225 0 R/XYZ 0 15259 1] endobj 4053 0 obj [591 0 R/XYZ 0 15259 1] endobj 4054 0 obj [548 0 R/XYZ 0 15259 1] endobj 4055 0 obj [551 0 R/XYZ 0 15259 1] endobj 4056 0 obj [570 0 R/XYZ 0 15259 1] endobj 4057 0 obj [577 0 R/XYZ 0 15259 1] endobj 4058 0 obj [871 0 R/XYZ 0 15259 1] endobj 4059 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4060 0 obj [1100 0 R/XYZ 0 15259 1] endobj 4061 0 obj [1225 0 R/XYZ 0 15259 1] endobj 4062 0 obj [548 0 R/XYZ 0 15259 1] endobj 4063 0 obj [548 0 R/XYZ 0 15259 1] endobj 4064 0 obj [551 0 R/XYZ 0 15259 1] endobj 4065 0 obj [871 0 R/XYZ 0 15259 1] endobj 4066 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4067 0 obj [548 0 R/XYZ 0 15259 1] endobj 4068 0 obj [553 0 R/XYZ 0 15259 1] endobj 4069 0 obj [554 0 R/XYZ 0 15259 1] endobj 4070 0 obj [577 0 R/XYZ 0 15259 1] endobj 4071 0 obj [871 0 R/XYZ 0 15259 1] endobj 4072 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4073 0 obj [1225 0 R/XYZ 0 15259 1] endobj 4074 0 obj [553 0 R/XYZ 0 15259 1] endobj 4075 0 obj [553 0 R/XYZ 0 15259 1] endobj 4076 0 obj [554 0 R/XYZ 0 15259 1] endobj 4077 0 obj [871 0 R/XYZ 0 15259 1] endobj 4078 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4079 0 obj [553 0 R/XYZ 0 15259 1] endobj 4080 0 obj [613 0 R/XYZ 0 15259 1] endobj 4081 0 obj [616 0 R/XYZ 0 15259 1] endobj 4082 0 obj [646 0 R/XYZ 0 15259 1] endobj 4083 0 obj [649 0 R/XYZ 0 15259 1] endobj 4084 0 obj [691 0 R/XYZ 0 15259 1] endobj 4085 0 obj [693 0 R/XYZ 0 15259 1] endobj 4086 0 obj [916 0 R/XYZ 0 15259 1] endobj 4087 0 obj [919 0 R/XYZ 0 15259 1] endobj 4088 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4089 0 obj [1162 0 R/XYZ 0 15259 1] endobj 4090 0 obj [1365 0 R/XYZ 0 15259 1] endobj 4091 0 obj [1497 0 R/XYZ 0 15259 1] endobj 4092 0 obj [616 0 R/XYZ 0 15259 1] endobj 4093 0 obj [478 0 R/XYZ 0 15259 1] endobj 4094 0 obj [503 0 R/XYZ 0 15259 1] endobj 4095 0 obj [507 0 R/XYZ 0 15259 1] endobj 4096 0 obj [517 0 R/XYZ 0 15259 1] endobj 4097 0 obj [522 0 R/XYZ 0 15259 1] endobj 4098 0 obj [558 0 R/XYZ 0 15259 1] endobj 4099 0 obj [613 0 R/XYZ 0 15259 1] endobj 4100 0 obj [636 0 R/XYZ 0 15259 1] endobj 4101 0 obj [764 0 R/XYZ 0 15259 1] endobj 4102 0 obj [765 0 R/XYZ 0 15259 1] endobj 4103 0 obj [871 0 R/XYZ 0 15259 1] endobj 4104 0 obj [1036 0 R/XYZ 0 15259 1] endobj 4105 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4106 0 obj [1078 0 R/XYZ 0 15259 1] endobj 4107 0 obj [1083 0 R/XYZ 0 15259 1] endobj 4108 0 obj [1087 0 R/XYZ 0 15259 1] endobj 4109 0 obj [1092 0 R/XYZ 0 15259 1] endobj 4110 0 obj [1094 0 R/XYZ 0 15259 1] endobj 4111 0 obj [1096 0 R/XYZ 0 15259 1] endobj 4112 0 obj [1097 0 R/XYZ 0 15259 1] endobj 4113 0 obj [1118 0 R/XYZ 0 15259 1] endobj 4114 0 obj [1120 0 R/XYZ 0 15259 1] endobj 4115 0 obj [1225 0 R/XYZ 0 15259 1] endobj 4116 0 obj [1268 0 R/XYZ 0 15259 1] endobj 4117 0 obj [1270 0 R/XYZ 0 15259 1] endobj 4118 0 obj [1470 0 R/XYZ 0 15259 1] endobj 4119 0 obj [1472 0 R/XYZ 0 15259 1] endobj 4120 0 obj [1639 0 R/XYZ 0 15259 1] endobj 4121 0 obj [1644 0 R/XYZ 0 15259 1] endobj 4122 0 obj [511 0 R/XYZ 0 15259 1] endobj 4123 0 obj [421 0 R/XYZ 0 15259 1] endobj 4124 0 obj [480 0 R/XYZ 0 15259 1] endobj 4125 0 obj [509 0 R/XYZ 0 15259 1] endobj 4126 0 obj [515 0 R/XYZ 0 15259 1] endobj 4127 0 obj [517 0 R/XYZ 0 15259 1] endobj 4128 0 obj [871 0 R/XYZ 0 15259 1] endobj 4129 0 obj [1036 0 R/XYZ 0 15259 1] endobj 4130 0 obj [1122 0 R/XYZ 0 15259 1] endobj 4131 0 obj [1225 0 R/XYZ 0 15259 1] endobj 4132 0 obj [509 0 R/XYZ 0 15259 1] endobj 4133 0 obj [481 0 R/XYZ 0 15259 1] endobj 4134 0 obj [506 0 R/XYZ 0 15259 1] endobj 4135 0 obj [511 0 R/XYZ 0 15259 1] endobj 4136 0 obj [512 0 R/XYZ 0 15259 1] endobj 4137 0 obj [764 0 R/XYZ 0 15259 1] endobj 4138 0 obj [1078 0 R/XYZ 0 15259 1] endobj 4139 0 obj [1107 0 R/XYZ 0 15259 1] endobj 4140 0 obj [1108 0 R/XYZ 0 15259 1] endobj 4141 0 obj [1317 0 R/XYZ 0 15259 1] endobj 4142 0 obj [1633 0 R/XYZ 0 15259 1] endobj 4143 0 obj [1107 0 R/XYZ 0 15259 1] endobj 4144 0 obj [1107 0 R/XYZ 0 15259 1] endobj 4145 0 obj [1108 0 R/XYZ 0 15259 1] endobj 4146 0 obj [1317 0 R/XYZ 0 15259 1] endobj 4147 0 obj [1511 0 R/XYZ 0 15259 1] endobj 4148 0 obj [1633 0 R/XYZ 0 15259 1] endobj 4149 0 obj [1107 0 R/XYZ 0 15259 1] endobj 4150 0 obj [613 0 R/XYZ 0 15259 1] endobj 4151 0 obj [616 0 R/XYZ 0 15259 1] endobj 4152 0 obj [630 0 R/XYZ 0 15259 1] endobj 4153 0 obj [1161 0 R/XYZ 0 15259 1] endobj 4154 0 obj [1636 0 R/XYZ 0 15259 1] endobj 4155 0 obj [613 0 R/XYZ 0 15259 1] endobj 4156 0 obj [585 0 R/XYZ 0 15259 1] endobj 4157 0 obj [591 0 R/XYZ 0 15259 1] endobj 4158 0 obj [585 0 R/XYZ 0 15259 1] endobj 4159 0 obj [1304 0 R/XYZ 0 15259 1] endobj 4160 0 obj [1305 0 R/XYZ 0 15259 1] endobj 4161 0 obj [1307 0 R/XYZ 0 15259 1] endobj 4162 0 obj [1309 0 R/XYZ 0 15259 1] endobj 4163 0 obj [1277 0 R/XYZ 0 15259 1] endobj 4164 0 obj [1306 0 R/XYZ 0 15259 1] endobj 4165 0 obj [1414 0 R/XYZ 0 15259 1] endobj 4166 0 obj [1594 0 R/XYZ 0 15259 1] endobj 4167 0 obj [1277 0 R/XYZ 0 15259 1] endobj 4168 0 obj [472 0 R/XYZ 0 15259 1] endobj 4169 0 obj [1107 0 R/XYZ 0 15259 1] endobj 4170 0 obj [1108 0 R/XYZ 0 15259 1] endobj 4171 0 obj [1145 0 R/XYZ 0 15259 1] endobj 4172 0 obj [1316 0 R/XYZ 0 15259 1] endobj 4173 0 obj [1499 0 R/XYZ 0 15259 1] endobj 4174 0 obj [1508 0 R/XYZ 0 15259 1] endobj 4175 0 obj [1510 0 R/XYZ 0 15259 1] endobj 4176 0 obj [1511 0 R/XYZ 0 15259 1] endobj 4177 0 obj [1632 0 R/XYZ 0 15259 1] endobj 4178 0 obj [1633 0 R/XYZ 0 15259 1] endobj 4179 0 obj [1639 0 R/XYZ 0 15259 1] endobj 4180 0 obj [1107 0 R/XYZ 0 15259 1] endobj 4181 0 obj [1108 0 R/XYZ 0 15259 1] endobj 4182 0 obj [1316 0 R/XYZ 0 15259 1] endobj 4183 0 obj [1317 0 R/XYZ 0 15259 1] endobj 4184 0 obj [1499 0 R/XYZ 0 15259 1] endobj 4185 0 obj [1510 0 R/XYZ 0 15259 1] endobj 4186 0 obj [1633 0 R/XYZ 0 15259 1] endobj 4187 0 obj [1107 0 R/XYZ 0 15259 1] endobj 4188 0 obj [1633 0 R/XYZ 0 15259 1] endobj 4189 0 obj [1108 0 R/XYZ 0 15259 1] endobj 4190 0 obj [1632 0 R/XYZ 0 15259 1] endobj 4191 0 obj [1633 0 R/XYZ 0 15259 1] endobj 4192 0 obj [509 0 R/XYZ 0 15259 1] endobj 4193 0 obj [512 0 R/XYZ 0 15259 1] endobj 4194 0 obj [1225 0 R/XYZ 0 15259 1] endobj 4195 0 obj [511 0 R/XYZ 0 15259 1] endobj 4196 0 obj [1225 0 R/XYZ 0 15259 1] endobj 4197 0 obj [1107 0 R/XYZ 0 15259 1] endobj 4198 0 obj [1108 0 R/XYZ 0 15259 1] endobj 4199 0 obj [1316 0 R/XYZ 0 15259 1] endobj 4200 0 obj [1499 0 R/XYZ 0 15259 1] endobj 4201 0 obj [1633 0 R/XYZ 0 15259 1] endobj 4202 0 obj [1107 0 R/XYZ 0 15259 1] endobj 4203 0 obj [468 0 R/XYZ 0 15259 1] endobj 4204 0 obj [471 0 R/XYZ 0 15259 1] endobj 4205 0 obj [513 0 R/XYZ 0 15259 1] endobj 4206 0 obj [627 0 R/XYZ 0 15259 1] endobj 4207 0 obj [815 0 R/XYZ 0 15259 1] endobj 4208 0 obj [1064 0 R/XYZ 0 15259 1] endobj 4209 0 obj [1221 0 R/XYZ 0 15259 1] endobj 4210 0 obj [1653 0 R/XYZ 0 15259 1] endobj 4211 0 obj [419 0 R/XYZ 0 15259 1] endobj 4212 0 obj [617 0 R/XYZ 0 15259 1] endobj 4213 0 obj [627 0 R/XYZ 0 15259 1] endobj 4214 0 obj [617 0 R/XYZ 0 15259 1] endobj 4215 0 obj [391 0 R/XYZ 0 15259 1] endobj 4216 0 obj [617 0 R/XYZ 0 15259 1] endobj 4217 0 obj [622 0 R/XYZ 0 15259 1] endobj 4218 0 obj [627 0 R/XYZ 0 15259 1] endobj 4219 0 obj [789 0 R/XYZ 0 15259 1] endobj 4220 0 obj [1154 0 R/XYZ 0 15259 1] endobj 4221 0 obj [1160 0 R/XYZ 0 15259 1] endobj 4222 0 obj [1168 0 R/XYZ 0 15259 1] endobj 4223 0 obj [617 0 R/XYZ 0 15259 1] endobj 4224 0 obj [761 0 R/XYZ 0 15259 1] endobj 4225 0 obj [762 0 R/XYZ 0 15259 1] endobj 4226 0 obj [765 0 R/XYZ 0 15259 1] endobj 4227 0 obj [871 0 R/XYZ 0 15259 1] endobj 4228 0 obj [761 0 R/XYZ 0 15259 1] endobj 4229 0 obj [1346 0 R/XYZ 0 15259 1] endobj 4230 0 obj [1346 0 R/XYZ 0 15259 1] endobj 4231 0 obj [1332 0 R/XYZ 0 15259 1] endobj 4232 0 obj [1343 0 R/XYZ 0 15259 1] endobj 4233 0 obj [1346 0 R/XYZ 0 15259 1] endobj 4234 0 obj [1348 0 R/XYZ 0 15259 1] endobj 4235 0 obj [609 0 R/XYZ 0 15259 1] endobj 4236 0 obj [611 0 R/XYZ 0 15259 1] endobj 4237 0 obj [614 0 R/XYZ 0 15259 1] endobj 4238 0 obj [646 0 R/XYZ 0 15259 1] endobj 4239 0 obj [649 0 R/XYZ 0 15259 1] endobj 4240 0 obj [651 0 R/XYZ 0 15259 1] endobj 4241 0 obj [917 0 R/XYZ 0 15259 1] endobj 4242 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4243 0 obj [1164 0 R/XYZ 0 15259 1] endobj 4244 0 obj [1166 0 R/XYZ 0 15259 1] endobj 4245 0 obj [1171 0 R/XYZ 0 15259 1] endobj 4246 0 obj [1366 0 R/XYZ 0 15259 1] endobj 4247 0 obj [1392 0 R/XYZ 0 15259 1] endobj 4248 0 obj [1600 0 R/XYZ 0 15259 1] endobj 4249 0 obj [1603 0 R/XYZ 0 15259 1] endobj 4250 0 obj [1613 0 R/XYZ 0 15259 1] endobj 4251 0 obj [611 0 R/XYZ 0 15259 1] endobj 4252 0 obj <> endobj 4253 0 obj [558 0 R/XYZ 0 15259 1] endobj 4254 0 obj [616 0 R/XYZ 0 15259 1] endobj 4255 0 obj [617 0 R/XYZ 0 15259 1] endobj 4256 0 obj [622 0 R/XYZ 0 15259 1] endobj 4257 0 obj [623 0 R/XYZ 0 15259 1] endobj 4258 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4259 0 obj [616 0 R/XYZ 0 15259 1] endobj 4260 0 obj [511 0 R/XYZ 0 15259 1] endobj 4261 0 obj [512 0 R/XYZ 0 15259 1] endobj 4262 0 obj [1078 0 R/XYZ 0 15259 1] endobj 4263 0 obj [1225 0 R/XYZ 0 15259 1] endobj 4264 0 obj [511 0 R/XYZ 0 15259 1] endobj 4265 0 obj [514 0 R/XYZ 0 15259 1] endobj 4266 0 obj [1225 0 R/XYZ 0 15259 1] endobj 4267 0 obj [511 0 R/XYZ 0 15259 1] endobj 4268 0 obj [1088 0 R/XYZ 0 15259 1] endobj 4269 0 obj [1092 0 R/XYZ 0 15259 1] endobj 4270 0 obj [511 0 R/XYZ 0 15259 1] endobj 4271 0 obj [512 0 R/XYZ 0 15259 1] endobj 4272 0 obj [1225 0 R/XYZ 0 15259 1] endobj 4273 0 obj [1268 0 R/XYZ 0 15259 1] endobj 4274 0 obj [627 0 R/XYZ 0 15259 1] endobj 4275 0 obj [630 0 R/XYZ 0 15259 1] endobj 4276 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4277 0 obj [628 0 R/XYZ 0 15259 1] endobj 4278 0 obj [391 0 R/XYZ 0 15259 1] endobj 4279 0 obj [393 0 R/XYZ 0 15259 1] endobj 4280 0 obj [403 0 R/XYZ 0 15259 1] endobj 4281 0 obj [616 0 R/XYZ 0 15259 1] endobj 4282 0 obj [619 0 R/XYZ 0 15259 1] endobj 4283 0 obj [625 0 R/XYZ 0 15259 1] endobj 4284 0 obj [641 0 R/XYZ 0 15259 1] endobj 4285 0 obj [649 0 R/XYZ 0 15259 1] endobj 4286 0 obj [651 0 R/XYZ 0 15259 1] endobj 4287 0 obj [713 0 R/XYZ 0 15259 1] endobj 4288 0 obj [715 0 R/XYZ 0 15259 1] endobj 4289 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4290 0 obj [1154 0 R/XYZ 0 15259 1] endobj 4291 0 obj [1160 0 R/XYZ 0 15259 1] endobj 4292 0 obj [1166 0 R/XYZ 0 15259 1] endobj 4293 0 obj [1168 0 R/XYZ 0 15259 1] endobj 4294 0 obj [1171 0 R/XYZ 0 15259 1] endobj 4295 0 obj [1256 0 R/XYZ 0 15259 1] endobj 4296 0 obj [1262 0 R/XYZ 0 15259 1] endobj 4297 0 obj [1305 0 R/XYZ 0 15259 1] endobj 4298 0 obj [1413 0 R/XYZ 0 15259 1] endobj 4299 0 obj [1439 0 R/XYZ 0 15259 1] endobj 4300 0 obj [1497 0 R/XYZ 0 15259 1] endobj 4301 0 obj [1541 0 R/XYZ 0 15259 1] endobj 4302 0 obj [1611 0 R/XYZ 0 15259 1] endobj 4303 0 obj [1613 0 R/XYZ 0 15259 1] endobj 4304 0 obj [1636 0 R/XYZ 0 15259 1] endobj 4305 0 obj [619 0 R/XYZ 0 15259 1] endobj 4306 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4307 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4308 0 obj [531 0 R/XYZ 0 15259 1] endobj 4309 0 obj [1150 0 R/XYZ 0 15259 1] endobj 4310 0 obj [1171 0 R/XYZ 0 15259 1] endobj 4311 0 obj [1177 0 R/XYZ 0 15259 1] endobj 4312 0 obj [537 0 R/XYZ 0 15259 1] endobj 4313 0 obj [540 0 R/XYZ 0 15259 1] endobj 4314 0 obj [599 0 R/XYZ 0 15259 1] endobj 4315 0 obj [531 0 R/XYZ 0 15259 1] endobj 4316 0 obj [595 0 R/XYZ 0 15259 1] endobj 4317 0 obj [596 0 R/XYZ 0 15259 1] endobj 4318 0 obj [531 0 R/XYZ 0 15259 1] endobj 4319 0 obj [595 0 R/XYZ 0 15259 1] endobj 4320 0 obj [596 0 R/XYZ 0 15259 1] endobj 4321 0 obj [1362 0 R/XYZ 0 15259 1] endobj 4322 0 obj [1217 0 R/XYZ 0 15259 1] endobj 4323 0 obj [1292 0 R/XYZ 0 15259 1] endobj 4324 0 obj [1302 0 R/XYZ 0 15259 1] endobj 4325 0 obj [388 0 R/XYZ 0 15259 1] endobj 4326 0 obj [391 0 R/XYZ 0 15259 1] endobj 4327 0 obj [478 0 R/XYZ 0 15259 1] endobj 4328 0 obj [480 0 R/XYZ 0 15259 1] endobj 4329 0 obj [594 0 R/XYZ 0 15259 1] endobj 4330 0 obj [596 0 R/XYZ 0 15259 1] endobj 4331 0 obj [531 0 R/XYZ 0 15259 1] endobj 4332 0 obj [663 0 R/XYZ 0 15259 1] endobj 4333 0 obj [665 0 R/XYZ 0 15259 1] endobj 4334 0 obj [489 0 R/XYZ 0 15259 1] endobj 4335 0 obj [490 0 R/XYZ 0 15259 1] endobj 4336 0 obj [556 0 R/XYZ 0 15259 1] endobj 4337 0 obj [558 0 R/XYZ 0 15259 1] endobj 4338 0 obj [545 0 R/XYZ 0 15259 1] endobj 4339 0 obj [546 0 R/XYZ 0 15259 1] endobj 4340 0 obj [583 0 R/XYZ 0 15259 1] endobj 4341 0 obj [600 0 R/XYZ 0 15259 1] endobj 4342 0 obj [642 0 R/XYZ 0 15259 1] endobj 4343 0 obj [738 0 R/XYZ 0 15259 1] endobj 4344 0 obj [764 0 R/XYZ 0 15259 1] endobj 4345 0 obj [1059 0 R/XYZ 0 15259 1] endobj 4346 0 obj [487 0 R/XYZ 0 15259 1] endobj 4347 0 obj [489 0 R/XYZ 0 15259 1] endobj 4348 0 obj [499 0 R/XYZ 0 15259 1] endobj 4349 0 obj [503 0 R/XYZ 0 15259 1] endobj 4350 0 obj [504 0 R/XYZ 0 15259 1] endobj 4351 0 obj [507 0 R/XYZ 0 15259 1] endobj 4352 0 obj [736 0 R/XYZ 0 15259 1] endobj 4353 0 obj [737 0 R/XYZ 0 15259 1] endobj 4354 0 obj [1096 0 R/XYZ 0 15259 1] endobj 4355 0 obj [1132 0 R/XYZ 0 15259 1] endobj 4356 0 obj [1429 0 R/XYZ 0 15259 1] endobj 4357 0 obj [1430 0 R/XYZ 0 15259 1] endobj 4358 0 obj [1608 0 R/XYZ 0 15259 1] endobj 4359 0 obj [540 0 R/XYZ 0 15259 1] endobj 4360 0 obj [542 0 R/XYZ 0 15259 1] endobj 4361 0 obj [606 0 R/XYZ 0 15259 1] endobj 4362 0 obj [531 0 R/XYZ 0 15259 1] endobj 4363 0 obj [499 0 R/XYZ 0 15259 1] endobj 4364 0 obj [503 0 R/XYZ 0 15259 1] endobj 4365 0 obj [736 0 R/XYZ 0 15259 1] endobj 4366 0 obj [556 0 R/XYZ 0 15259 1] endobj 4367 0 obj [558 0 R/XYZ 0 15259 1] endobj 4368 0 obj [576 0 R/XYZ 0 15259 1] endobj 4369 0 obj [577 0 R/XYZ 0 15259 1] endobj 4370 0 obj [1145 0 R/XYZ 0 15259 1] endobj 4371 0 obj [558 0 R/XYZ 0 15259 1] endobj 4372 0 obj [531 0 R/XYZ 0 15259 1] endobj 4373 0 obj [535 0 R/XYZ 0 15259 1] endobj 4374 0 obj [586 0 R/XYZ 0 15259 1] endobj 4375 0 obj [605 0 R/XYZ 0 15259 1] endobj 4376 0 obj [606 0 R/XYZ 0 15259 1] endobj 4377 0 obj [617 0 R/XYZ 0 15259 1] endobj 4378 0 obj [636 0 R/XYZ 0 15259 1] endobj 4379 0 obj [641 0 R/XYZ 0 15259 1] endobj 4380 0 obj [645 0 R/XYZ 0 15259 1] endobj 4381 0 obj [646 0 R/XYZ 0 15259 1] endobj 4382 0 obj [720 0 R/XYZ 0 15259 1] endobj 4383 0 obj [741 0 R/XYZ 0 15259 1] endobj 4384 0 obj [789 0 R/XYZ 0 15259 1] endobj 4385 0 obj [1026 0 R/XYZ 0 15259 1] endobj 4386 0 obj [1027 0 R/XYZ 0 15259 1] endobj 4387 0 obj [1154 0 R/XYZ 0 15259 1] endobj 4388 0 obj [1159 0 R/XYZ 0 15259 1] endobj 4389 0 obj [1160 0 R/XYZ 0 15259 1] endobj 4390 0 obj [1162 0 R/XYZ 0 15259 1] endobj 4391 0 obj [1164 0 R/XYZ 0 15259 1] endobj 4392 0 obj [1262 0 R/XYZ 0 15259 1] endobj 4393 0 obj [1365 0 R/XYZ 0 15259 1] endobj 4394 0 obj [1440 0 R/XYZ 0 15259 1] endobj 4395 0 obj [1497 0 R/XYZ 0 15259 1] endobj 4396 0 obj [1614 0 R/XYZ 0 15259 1] endobj 4397 0 obj [1629 0 R/XYZ 0 15259 1] endobj 4398 0 obj [383 0 R/XYZ 0 15259 1] endobj 4399 0 obj [560 0 R/XYZ 0 15259 1] endobj 4400 0 obj [564 0 R/XYZ 0 15259 1] endobj 4401 0 obj [596 0 R/XYZ 0 15259 1] endobj 4402 0 obj [583 0 R/XYZ 0 15259 1] endobj 4403 0 obj [583 0 R/XYZ 0 15259 1] endobj 4404 0 obj [497 0 R/XYZ 0 15259 1] endobj 4405 0 obj [515 0 R/XYZ 0 15259 1] endobj 4406 0 obj [583 0 R/XYZ 0 15259 1] endobj 4407 0 obj [1057 0 R/XYZ 0 15259 1] endobj 4408 0 obj [517 0 R/XYZ 0 15259 1] endobj 4409 0 obj [560 0 R/XYZ 0 15259 1] endobj 4410 0 obj [564 0 R/XYZ 0 15259 1] endobj 4411 0 obj [560 0 R/XYZ 0 15259 1] endobj 4412 0 obj [458 0 R/XYZ 0 15259 1] endobj 4413 0 obj [468 0 R/XYZ 0 15259 1] endobj 4414 0 obj [560 0 R/XYZ 0 15259 1] endobj 4415 0 obj [483 0 R/XYZ 0 15259 1] endobj 4416 0 obj [458 0 R/XYZ 0 15259 1] endobj 4417 0 obj [468 0 R/XYZ 0 15259 1] endobj 4418 0 obj [483 0 R/XYZ 0 15259 1] endobj 4419 0 obj [560 0 R/XYZ 0 15259 1] endobj 4420 0 obj [564 0 R/XYZ 0 15259 1] endobj 4421 0 obj [583 0 R/XYZ 0 15259 1] endobj 4422 0 obj [383 0 R/XYZ 0 15259 1] endobj 4423 0 obj [483 0 R/XYZ 0 15259 1] endobj 4424 0 obj [487 0 R/XYZ 0 15259 1] endobj 4425 0 obj [444 0 R/XYZ 0 15259 1] endobj 4426 0 obj [636 0 R/XYZ 0 15259 1] endobj 4427 0 obj [1162 0 R/XYZ 0 15259 1] endobj 4428 0 obj [1365 0 R/XYZ 0 15259 1] endobj 4429 0 obj [1613 0 R/XYZ 0 15259 1] endobj 4430 0 obj [636 0 R/XYZ 0 15259 1] endobj 4431 0 obj [491 0 R/XYZ 0 15259 1] endobj 4432 0 obj [1494 0 R/XYZ 0 15259 1] endobj 4433 0 obj [1519 0 R/XYZ 0 15259 1] endobj 4434 0 obj [383 0 R/XYZ 0 15259 1] endobj 4435 0 obj [388 0 R/XYZ 0 15259 1] endobj 4436 0 obj [445 0 R/XYZ 0 15259 1] endobj 4437 0 obj [452 0 R/XYZ 0 15259 1] endobj 4438 0 obj [458 0 R/XYZ 0 15259 1] endobj 4439 0 obj [576 0 R/XYZ 0 15259 1] endobj 4440 0 obj [591 0 R/XYZ 0 15259 1] endobj 4441 0 obj [764 0 R/XYZ 0 15259 1] endobj 4442 0 obj [600 0 R/XYZ 0 15259 1] endobj 4443 0 obj [658 0 R/XYZ 0 15259 1] endobj 4444 0 obj [1610 0 R/XYZ 0 15259 1] endobj 4445 0 obj [1270 0 R/XYZ 0 15259 1] endobj 4446 0 obj [1639 0 R/XYZ 0 15259 1] endobj 4447 0 obj [1640 0 R/XYZ 0 15259 1] endobj 4448 0 obj [1270 0 R/XYZ 0 15259 1] endobj 4449 0 obj [426 0 R/XYZ 0 15259 1] endobj 4450 0 obj [429 0 R/XYZ 0 15259 1] endobj 4451 0 obj [734 0 R/XYZ 0 15259 1] endobj 4452 0 obj [1653 0 R/XYZ 0 15259 1] endobj 4453 0 obj [419 0 R/XYZ 0 15259 1] endobj 4454 0 obj [444 0 R/XYZ 0 15259 1] endobj 4455 0 obj [1087 0 R/XYZ 0 15259 1] endobj 4456 0 obj [1088 0 R/XYZ 0 15259 1] endobj 4457 0 obj [1091 0 R/XYZ 0 15259 1] endobj 4458 0 obj [1092 0 R/XYZ 0 15259 1] endobj 4459 0 obj [1096 0 R/XYZ 0 15259 1] endobj 4460 0 obj [1026 0 R/XYZ 0 15259 1] endobj 4461 0 obj [1027 0 R/XYZ 0 15259 1] endobj 4462 0 obj [1026 0 R/XYZ 0 15259 1] endobj 4463 0 obj [1332 0 R/XYZ 0 15259 1] endobj 4464 0 obj [1337 0 R/XYZ 0 15259 1] endobj 4465 0 obj [1346 0 R/XYZ 0 15259 1] endobj 4466 0 obj [645 0 R/XYZ 0 15259 1] endobj 4467 0 obj [651 0 R/XYZ 0 15259 1] endobj 4468 0 obj [1613 0 R/XYZ 0 15259 1] endobj 4469 0 obj [645 0 R/XYZ 0 15259 1] endobj 4470 0 obj [709 0 R/XYZ 0 15259 1] endobj 4471 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4472 0 obj [423 0 R/XYZ 0 15259 1] endobj 4473 0 obj [1083 0 R/XYZ 0 15259 1] endobj 4474 0 obj [421 0 R/XYZ 0 15259 1] endobj 4475 0 obj [542 0 R/XYZ 0 15259 1] endobj 4476 0 obj [456 0 R/XYZ 0 15259 1] endobj 4477 0 obj [385 0 R/XYZ 0 15259 1] endobj 4478 0 obj [606 0 R/XYZ 0 15259 1] endobj 4479 0 obj [613 0 R/XYZ 0 15259 1] endobj 4480 0 obj [616 0 R/XYZ 0 15259 1] endobj 4481 0 obj [637 0 R/XYZ 0 15259 1] endobj 4482 0 obj [720 0 R/XYZ 0 15259 1] endobj 4483 0 obj [789 0 R/XYZ 0 15259 1] endobj 4484 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4485 0 obj [1154 0 R/XYZ 0 15259 1] endobj 4486 0 obj [1155 0 R/XYZ 0 15259 1] endobj 4487 0 obj [1159 0 R/XYZ 0 15259 1] endobj 4488 0 obj [1365 0 R/XYZ 0 15259 1] endobj 4489 0 obj [1497 0 R/XYZ 0 15259 1] endobj 4490 0 obj [1629 0 R/XYZ 0 15259 1] endobj 4491 0 obj [613 0 R/XYZ 0 15259 1] endobj 4492 0 obj [444 0 R/XYZ 0 15259 1] endobj 4493 0 obj [451 0 R/XYZ 0 15259 1] endobj 4494 0 obj [823 0 R/XYZ 0 15259 1] endobj 4495 0 obj [826 0 R/XYZ 0 15259 1] endobj 4496 0 obj [829 0 R/XYZ 0 15259 1] endobj 4497 0 obj [833 0 R/XYZ 0 15259 1] endobj 4498 0 obj [836 0 R/XYZ 0 15259 1] endobj 4499 0 obj [843 0 R/XYZ 0 15259 1] endobj 4500 0 obj [854 0 R/XYZ 0 15259 1] endobj 4501 0 obj [858 0 R/XYZ 0 15259 1] endobj 4502 0 obj [921 0 R/XYZ 0 15259 1] endobj 4503 0 obj [932 0 R/XYZ 0 15259 1] endobj 4504 0 obj [1337 0 R/XYZ 0 15259 1] endobj 4505 0 obj [1339 0 R/XYZ 0 15259 1] endobj 4506 0 obj [1344 0 R/XYZ 0 15259 1] endobj 4507 0 obj [1348 0 R/XYZ 0 15259 1] endobj 4508 0 obj [1376 0 R/XYZ 0 15259 1] endobj 4509 0 obj [1390 0 R/XYZ 0 15259 1] endobj 4510 0 obj [1418 0 R/XYZ 0 15259 1] endobj 4511 0 obj [1644 0 R/XYZ 0 15259 1] endobj 4512 0 obj [826 0 R/XYZ 0 15259 1] endobj 4513 0 obj [833 0 R/XYZ 0 15259 1] endobj 4514 0 obj [1333 0 R/XYZ 0 15259 1] endobj 4515 0 obj [392 0 R/XYZ 0 15259 1] endobj 4516 0 obj [394 0 R/XYZ 0 15259 1] endobj 4517 0 obj [403 0 R/XYZ 0 15259 1] endobj 4518 0 obj [410 0 R/XYZ 0 15259 1] endobj 4519 0 obj [503 0 R/XYZ 0 15259 1] endobj 4520 0 obj [732 0 R/XYZ 0 15259 1] endobj 4521 0 obj [744 0 R/XYZ 0 15259 1] endobj 4522 0 obj [749 0 R/XYZ 0 15259 1] endobj 4523 0 obj [751 0 R/XYZ 0 15259 1] endobj 4524 0 obj [756 0 R/XYZ 0 15259 1] endobj 4525 0 obj [761 0 R/XYZ 0 15259 1] endobj 4526 0 obj [766 0 R/XYZ 0 15259 1] endobj 4527 0 obj [774 0 R/XYZ 0 15259 1] endobj 4528 0 obj [775 0 R/XYZ 0 15259 1] endobj 4529 0 obj [779 0 R/XYZ 0 15259 1] endobj 4530 0 obj [781 0 R/XYZ 0 15259 1] endobj 4531 0 obj [785 0 R/XYZ 0 15259 1] endobj 4532 0 obj [788 0 R/XYZ 0 15259 1] endobj 4533 0 obj [790 0 R/XYZ 0 15259 1] endobj 4534 0 obj [792 0 R/XYZ 0 15259 1] endobj 4535 0 obj [795 0 R/XYZ 0 15259 1] endobj 4536 0 obj [802 0 R/XYZ 0 15259 1] endobj 4537 0 obj [809 0 R/XYZ 0 15259 1] endobj 4538 0 obj [811 0 R/XYZ 0 15259 1] endobj 4539 0 obj [814 0 R/XYZ 0 15259 1] endobj 4540 0 obj [816 0 R/XYZ 0 15259 1] endobj 4541 0 obj [819 0 R/XYZ 0 15259 1] endobj 4542 0 obj [823 0 R/XYZ 0 15259 1] endobj 4543 0 obj [834 0 R/XYZ 0 15259 1] endobj 4544 0 obj [838 0 R/XYZ 0 15259 1] endobj 4545 0 obj [839 0 R/XYZ 0 15259 1] endobj 4546 0 obj [845 0 R/XYZ 0 15259 1] endobj 4547 0 obj [864 0 R/XYZ 0 15259 1] endobj 4548 0 obj [871 0 R/XYZ 0 15259 1] endobj 4549 0 obj [875 0 R/XYZ 0 15259 1] endobj 4550 0 obj [922 0 R/XYZ 0 15259 1] endobj 4551 0 obj [924 0 R/XYZ 0 15259 1] endobj 4552 0 obj [938 0 R/XYZ 0 15259 1] endobj 4553 0 obj [1044 0 R/XYZ 0 15259 1] endobj 4554 0 obj [1051 0 R/XYZ 0 15259 1] endobj 4555 0 obj [1059 0 R/XYZ 0 15259 1] endobj 4556 0 obj [1063 0 R/XYZ 0 15259 1] endobj 4557 0 obj [1065 0 R/XYZ 0 15259 1] endobj 4558 0 obj [1076 0 R/XYZ 0 15259 1] endobj 4559 0 obj [1093 0 R/XYZ 0 15259 1] endobj 4560 0 obj [1095 0 R/XYZ 0 15259 1] endobj 4561 0 obj [1100 0 R/XYZ 0 15259 1] endobj 4562 0 obj [1103 0 R/XYZ 0 15259 1] endobj 4563 0 obj [1139 0 R/XYZ 0 15259 1] endobj 4564 0 obj [1148 0 R/XYZ 0 15259 1] endobj 4565 0 obj [1155 0 R/XYZ 0 15259 1] endobj 4566 0 obj [1158 0 R/XYZ 0 15259 1] endobj 4567 0 obj [1161 0 R/XYZ 0 15259 1] endobj 4568 0 obj [1163 0 R/XYZ 0 15259 1] endobj 4569 0 obj [1168 0 R/XYZ 0 15259 1] endobj 4570 0 obj [1178 0 R/XYZ 0 15259 1] endobj 4571 0 obj [1191 0 R/XYZ 0 15259 1] endobj 4572 0 obj [1204 0 R/XYZ 0 15259 1] endobj 4573 0 obj [1214 0 R/XYZ 0 15259 1] endobj 4574 0 obj [1218 0 R/XYZ 0 15259 1] endobj 4575 0 obj [1258 0 R/XYZ 0 15259 1] endobj 4576 0 obj [1259 0 R/XYZ 0 15259 1] endobj 4577 0 obj [1292 0 R/XYZ 0 15259 1] endobj 4578 0 obj [1304 0 R/XYZ 0 15259 1] endobj 4579 0 obj [1306 0 R/XYZ 0 15259 1] endobj 4580 0 obj [1309 0 R/XYZ 0 15259 1] endobj 4581 0 obj [1311 0 R/XYZ 0 15259 1] endobj 4582 0 obj [1322 0 R/XYZ 0 15259 1] endobj 4583 0 obj [1323 0 R/XYZ 0 15259 1] endobj 4584 0 obj [1387 0 R/XYZ 0 15259 1] endobj 4585 0 obj [1392 0 R/XYZ 0 15259 1] endobj 4586 0 obj [1395 0 R/XYZ 0 15259 1] endobj 4587 0 obj [1396 0 R/XYZ 0 15259 1] endobj 4588 0 obj [1399 0 R/XYZ 0 15259 1] endobj 4589 0 obj [1401 0 R/XYZ 0 15259 1] endobj 4590 0 obj [1406 0 R/XYZ 0 15259 1] endobj 4591 0 obj [1414 0 R/XYZ 0 15259 1] endobj 4592 0 obj [1468 0 R/XYZ 0 15259 1] endobj 4593 0 obj [1622 0 R/XYZ 0 15259 1] endobj 4594 0 obj [1623 0 R/XYZ 0 15259 1] endobj 4595 0 obj [1627 0 R/XYZ 0 15259 1] endobj 4596 0 obj [1628 0 R/XYZ 0 15259 1] endobj 4597 0 obj [1630 0 R/XYZ 0 15259 1] endobj 4598 0 obj [1631 0 R/XYZ 0 15259 1] endobj 4599 0 obj [1634 0 R/XYZ 0 15259 1] endobj 4600 0 obj [1637 0 R/XYZ 0 15259 1] endobj 4601 0 obj [1639 0 R/XYZ 0 15259 1] endobj 4602 0 obj [1649 0 R/XYZ 0 15259 1] endobj 4603 0 obj [734 0 R/XYZ 0 15259 1] endobj 4604 0 obj [734 0 R/XYZ 0 15259 1] endobj 4605 0 obj [734 0 R/XYZ 0 15259 1] endobj 4606 0 obj [591 0 R/XYZ 0 15259 1] endobj 4607 0 obj [1650 0 R/XYZ 0 15259 1] endobj 4608 0 obj [1654 0 R/XYZ 0 15259 1] endobj 4609 0 obj [442 0 R/XYZ 0 15259 1] endobj 4610 0 obj [445 0 R/XYZ 0 15259 1] endobj 4611 0 obj [448 0 R/XYZ 0 15259 1] endobj 4612 0 obj [456 0 R/XYZ 0 15259 1] endobj 4613 0 obj [463 0 R/XYZ 0 15259 1] endobj 4614 0 obj [465 0 R/XYZ 0 15259 1] endobj 4615 0 obj [483 0 R/XYZ 0 15259 1] endobj 4616 0 obj [554 0 R/XYZ 0 15259 1] endobj 4617 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4618 0 obj [1153 0 R/XYZ 0 15259 1] endobj 4619 0 obj [1336 0 R/XYZ 0 15259 1] endobj 4620 0 obj [450 0 R/XYZ 0 15259 1] endobj 4621 0 obj <> endobj 4622 0 obj [901 0 R/XYZ 0 15259 1] endobj 4623 0 obj [901 0 R/XYZ 0 15259 1] endobj 4624 0 obj [901 0 R/XYZ 0 15259 1] endobj 4625 0 obj [901 0 R/XYZ 0 15259 1] endobj 4626 0 obj [901 0 R/XYZ 0 15259 1] endobj 4627 0 obj [901 0 R/XYZ 0 15259 1] endobj 4628 0 obj [901 0 R/XYZ 0 15259 1] endobj 4629 0 obj [901 0 R/XYZ 0 15259 1] endobj 4630 0 obj [472 0 R/XYZ 0 15259 1] endobj 4631 0 obj [627 0 R/XYZ 0 15259 1] endobj 4632 0 obj [630 0 R/XYZ 0 15259 1] endobj 4633 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4634 0 obj [630 0 R/XYZ 0 15259 1] endobj 4635 0 obj [609 0 R/XYZ 0 15259 1] endobj 4636 0 obj [619 0 R/XYZ 0 15259 1] endobj 4637 0 obj [622 0 R/XYZ 0 15259 1] endobj 4638 0 obj [623 0 R/XYZ 0 15259 1] endobj 4639 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4640 0 obj [619 0 R/XYZ 0 15259 1] endobj 4641 0 obj [610 0 R/XYZ 0 15259 1] endobj 4642 0 obj [616 0 R/XYZ 0 15259 1] endobj 4643 0 obj [619 0 R/XYZ 0 15259 1] endobj 4644 0 obj [625 0 R/XYZ 0 15259 1] endobj 4645 0 obj [636 0 R/XYZ 0 15259 1] endobj 4646 0 obj [641 0 R/XYZ 0 15259 1] endobj 4647 0 obj [649 0 R/XYZ 0 15259 1] endobj 4648 0 obj [651 0 R/XYZ 0 15259 1] endobj 4649 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4650 0 obj [1160 0 R/XYZ 0 15259 1] endobj 4651 0 obj [1166 0 R/XYZ 0 15259 1] endobj 4652 0 obj [1168 0 R/XYZ 0 15259 1] endobj 4653 0 obj [1365 0 R/XYZ 0 15259 1] endobj 4654 0 obj [1600 0 R/XYZ 0 15259 1] endobj 4655 0 obj [1603 0 R/XYZ 0 15259 1] endobj 4656 0 obj [1611 0 R/XYZ 0 15259 1] endobj 4657 0 obj [1619 0 R/XYZ 0 15259 1] endobj 4658 0 obj [1626 0 R/XYZ 0 15259 1] endobj 4659 0 obj [1636 0 R/XYZ 0 15259 1] endobj 4660 0 obj [621 0 R/XYZ 0 15259 1] endobj 4661 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4662 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4663 0 obj [1088 0 R/XYZ 0 15259 1] endobj 4664 0 obj [1089 0 R/XYZ 0 15259 1] endobj 4665 0 obj [1091 0 R/XYZ 0 15259 1] endobj 4666 0 obj [1092 0 R/XYZ 0 15259 1] endobj 4667 0 obj [1595 0 R/XYZ 0 15259 1] endobj 4668 0 obj [1630 0 R/XYZ 0 15259 1] endobj 4669 0 obj [1631 0 R/XYZ 0 15259 1] endobj 4670 0 obj [616 0 R/XYZ 0 15259 1] endobj 4671 0 obj [625 0 R/XYZ 0 15259 1] endobj 4672 0 obj [627 0 R/XYZ 0 15259 1] endobj 4673 0 obj [785 0 R/XYZ 0 15259 1] endobj 4674 0 obj [789 0 R/XYZ 0 15259 1] endobj 4675 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4676 0 obj [625 0 R/XYZ 0 15259 1] endobj 4677 0 obj [634 0 R/XYZ 0 15259 1] endobj 4678 0 obj [649 0 R/XYZ 0 15259 1] endobj 4679 0 obj [704 0 R/XYZ 0 15259 1] endobj 4680 0 obj [706 0 R/XYZ 0 15259 1] endobj 4681 0 obj [870 0 R/XYZ 0 15259 1] endobj 4682 0 obj [873 0 R/XYZ 0 15259 1] endobj 4683 0 obj [966 0 R/XYZ 0 15259 1] endobj 4684 0 obj [969 0 R/XYZ 0 15259 1] endobj 4685 0 obj [971 0 R/XYZ 0 15259 1] endobj 4686 0 obj [974 0 R/XYZ 0 15259 1] endobj 4687 0 obj [1016 0 R/XYZ 0 15259 1] endobj 4688 0 obj [1017 0 R/XYZ 0 15259 1] endobj 4689 0 obj [1034 0 R/XYZ 0 15259 1] endobj 4690 0 obj [1360 0 R/XYZ 0 15259 1] endobj 4691 0 obj [1448 0 R/XYZ 0 15259 1] endobj 4692 0 obj [1523 0 R/XYZ 0 15259 1] endobj 4693 0 obj [1527 0 R/XYZ 0 15259 1] endobj 4694 0 obj [1531 0 R/XYZ 0 15259 1] endobj 4695 0 obj [1536 0 R/XYZ 0 15259 1] endobj 4696 0 obj [1617 0 R/XYZ 0 15259 1] endobj 4697 0 obj [704 0 R/XYZ 0 15259 1] endobj 4698 0 obj [1236 0 R/XYZ 0 15259 1] endobj 4699 0 obj [1527 0 R/XYZ 0 15259 1] endobj 4700 0 obj [1236 0 R/XYZ 0 15259 1] endobj 4701 0 obj [381 0 R/XYZ 0 15259 1] endobj 4702 0 obj [383 0 R/XYZ 0 15259 1] endobj 4703 0 obj [407 0 R/XYZ 0 15259 1] endobj 4704 0 obj [418 0 R/XYZ 0 15259 1] endobj 4705 0 obj [419 0 R/XYZ 0 15259 1] endobj 4706 0 obj [421 0 R/XYZ 0 15259 1] endobj 4707 0 obj [423 0 R/XYZ 0 15259 1] endobj 4708 0 obj [432 0 R/XYZ 0 15259 1] endobj 4709 0 obj [440 0 R/XYZ 0 15259 1] endobj 4710 0 obj [444 0 R/XYZ 0 15259 1] endobj 4711 0 obj [458 0 R/XYZ 0 15259 1] endobj 4712 0 obj [468 0 R/XYZ 0 15259 1] endobj 4713 0 obj [474 0 R/XYZ 0 15259 1] endobj 4714 0 obj [480 0 R/XYZ 0 15259 1] endobj 4715 0 obj [482 0 R/XYZ 0 15259 1] endobj 4716 0 obj [489 0 R/XYZ 0 15259 1] endobj 4717 0 obj [491 0 R/XYZ 0 15259 1] endobj 4718 0 obj [509 0 R/XYZ 0 15259 1] endobj 4719 0 obj [512 0 R/XYZ 0 15259 1] endobj 4720 0 obj [519 0 R/XYZ 0 15259 1] endobj 4721 0 obj [531 0 R/XYZ 0 15259 1] endobj 4722 0 obj [542 0 R/XYZ 0 15259 1] endobj 4723 0 obj [551 0 R/XYZ 0 15259 1] endobj 4724 0 obj [556 0 R/XYZ 0 15259 1] endobj 4725 0 obj [571 0 R/XYZ 0 15259 1] endobj 4726 0 obj [583 0 R/XYZ 0 15259 1] endobj 4727 0 obj [587 0 R/XYZ 0 15259 1] endobj 4728 0 obj [595 0 R/XYZ 0 15259 1] endobj 4729 0 obj [651 0 R/XYZ 0 15259 1] endobj 4730 0 obj [657 0 R/XYZ 0 15259 1] endobj 4731 0 obj [663 0 R/XYZ 0 15259 1] endobj 4732 0 obj [667 0 R/XYZ 0 15259 1] endobj 4733 0 obj [669 0 R/XYZ 0 15259 1] endobj 4734 0 obj [673 0 R/XYZ 0 15259 1] endobj 4735 0 obj [674 0 R/XYZ 0 15259 1] endobj 4736 0 obj [706 0 R/XYZ 0 15259 1] endobj 4737 0 obj [710 0 R/XYZ 0 15259 1] endobj 4738 0 obj [722 0 R/XYZ 0 15259 1] endobj 4739 0 obj [726 0 R/XYZ 0 15259 1] endobj 4740 0 obj [734 0 R/XYZ 0 15259 1] endobj 4741 0 obj [748 0 R/XYZ 0 15259 1] endobj 4742 0 obj [756 0 R/XYZ 0 15259 1] endobj 4743 0 obj [765 0 R/XYZ 0 15259 1] endobj 4744 0 obj [770 0 R/XYZ 0 15259 1] endobj 4745 0 obj [774 0 R/XYZ 0 15259 1] endobj 4746 0 obj [776 0 R/XYZ 0 15259 1] endobj 4747 0 obj [785 0 R/XYZ 0 15259 1] endobj 4748 0 obj [787 0 R/XYZ 0 15259 1] endobj 4749 0 obj [794 0 R/XYZ 0 15259 1] endobj 4750 0 obj [795 0 R/XYZ 0 15259 1] endobj 4751 0 obj [811 0 R/XYZ 0 15259 1] endobj 4752 0 obj [812 0 R/XYZ 0 15259 1] endobj 4753 0 obj [816 0 R/XYZ 0 15259 1] endobj 4754 0 obj [826 0 R/XYZ 0 15259 1] endobj 4755 0 obj [833 0 R/XYZ 0 15259 1] endobj 4756 0 obj [842 0 R/XYZ 0 15259 1] endobj 4757 0 obj [850 0 R/XYZ 0 15259 1] endobj 4758 0 obj [852 0 R/XYZ 0 15259 1] endobj 4759 0 obj [855 0 R/XYZ 0 15259 1] endobj 4760 0 obj [858 0 R/XYZ 0 15259 1] endobj 4761 0 obj [868 0 R/XYZ 0 15259 1] endobj 4762 0 obj [875 0 R/XYZ 0 15259 1] endobj 4763 0 obj [899 0 R/XYZ 0 15259 1] endobj 4764 0 obj [904 0 R/XYZ 0 15259 1] endobj 4765 0 obj [907 0 R/XYZ 0 15259 1] endobj 4766 0 obj [923 0 R/XYZ 0 15259 1] endobj 4767 0 obj [926 0 R/XYZ 0 15259 1] endobj 4768 0 obj [932 0 R/XYZ 0 15259 1] endobj 4769 0 obj [935 0 R/XYZ 0 15259 1] endobj 4770 0 obj [936 0 R/XYZ 0 15259 1] endobj 4771 0 obj [947 0 R/XYZ 0 15259 1] endobj 4772 0 obj [951 0 R/XYZ 0 15259 1] endobj 4773 0 obj [956 0 R/XYZ 0 15259 1] endobj 4774 0 obj [959 0 R/XYZ 0 15259 1] endobj 4775 0 obj [977 0 R/XYZ 0 15259 1] endobj 4776 0 obj [1003 0 R/XYZ 0 15259 1] endobj 4777 0 obj [1004 0 R/XYZ 0 15259 1] endobj 4778 0 obj [1012 0 R/XYZ 0 15259 1] endobj 4779 0 obj [1019 0 R/XYZ 0 15259 1] endobj 4780 0 obj [1068 0 R/XYZ 0 15259 1] endobj 4781 0 obj [1087 0 R/XYZ 0 15259 1] endobj 4782 0 obj [1094 0 R/XYZ 0 15259 1] endobj 4783 0 obj [1095 0 R/XYZ 0 15259 1] endobj 4784 0 obj [1099 0 R/XYZ 0 15259 1] endobj 4785 0 obj [1101 0 R/XYZ 0 15259 1] endobj 4786 0 obj [1107 0 R/XYZ 0 15259 1] endobj 4787 0 obj [1139 0 R/XYZ 0 15259 1] endobj 4788 0 obj [1150 0 R/XYZ 0 15259 1] endobj 4789 0 obj [1183 0 R/XYZ 0 15259 1] endobj 4790 0 obj [1186 0 R/XYZ 0 15259 1] endobj 4791 0 obj [1193 0 R/XYZ 0 15259 1] endobj 4792 0 obj [1199 0 R/XYZ 0 15259 1] endobj 4793 0 obj [1203 0 R/XYZ 0 15259 1] endobj 4794 0 obj [1229 0 R/XYZ 0 15259 1] endobj 4795 0 obj [1231 0 R/XYZ 0 15259 1] endobj 4796 0 obj [1246 0 R/XYZ 0 15259 1] endobj 4797 0 obj [1251 0 R/XYZ 0 15259 1] endobj 4798 0 obj [1253 0 R/XYZ 0 15259 1] endobj 4799 0 obj [1270 0 R/XYZ 0 15259 1] endobj 4800 0 obj [1282 0 R/XYZ 0 15259 1] endobj 4801 0 obj [1298 0 R/XYZ 0 15259 1] endobj 4802 0 obj [1299 0 R/XYZ 0 15259 1] endobj 4803 0 obj [1302 0 R/XYZ 0 15259 1] endobj 4804 0 obj [1331 0 R/XYZ 0 15259 1] endobj 4805 0 obj [1335 0 R/XYZ 0 15259 1] endobj 4806 0 obj [1344 0 R/XYZ 0 15259 1] endobj 4807 0 obj [1351 0 R/XYZ 0 15259 1] endobj 4808 0 obj [1387 0 R/XYZ 0 15259 1] endobj 4809 0 obj [1396 0 R/XYZ 0 15259 1] endobj 4810 0 obj [1399 0 R/XYZ 0 15259 1] endobj 4811 0 obj [1400 0 R/XYZ 0 15259 1] endobj 4812 0 obj [1416 0 R/XYZ 0 15259 1] endobj 4813 0 obj [1418 0 R/XYZ 0 15259 1] endobj 4814 0 obj [1425 0 R/XYZ 0 15259 1] endobj 4815 0 obj [1493 0 R/XYZ 0 15259 1] endobj 4816 0 obj [1611 0 R/XYZ 0 15259 1] endobj 4817 0 obj [1618 0 R/XYZ 0 15259 1] endobj 4818 0 obj [1630 0 R/XYZ 0 15259 1] endobj 4819 0 obj [1632 0 R/XYZ 0 15259 1] endobj 4820 0 obj [1633 0 R/XYZ 0 15259 1] endobj 4821 0 obj [1635 0 R/XYZ 0 15259 1] endobj 4822 0 obj [1636 0 R/XYZ 0 15259 1] endobj 4823 0 obj [1650 0 R/XYZ 0 15259 1] endobj 4824 0 obj [1652 0 R/XYZ 0 15259 1] endobj 4825 0 obj [606 0 R/XYZ 0 15259 1] endobj 4826 0 obj [613 0 R/XYZ 0 15259 1] endobj 4827 0 obj [616 0 R/XYZ 0 15259 1] endobj 4828 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4829 0 obj [613 0 R/XYZ 0 15259 1] endobj 4830 0 obj [1472 0 R/XYZ 0 15259 1] endobj 4831 0 obj [633 0 R/XYZ 0 15259 1] endobj 4832 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4833 0 obj [633 0 R/XYZ 0 15259 1] endobj 4834 0 obj [572 0 R/XYZ 0 15259 1] endobj 4835 0 obj [614 0 R/XYZ 0 15259 1] endobj 4836 0 obj [627 0 R/XYZ 0 15259 1] endobj 4837 0 obj [630 0 R/XYZ 0 15259 1] endobj 4838 0 obj [646 0 R/XYZ 0 15259 1] endobj 4839 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4840 0 obj [628 0 R/XYZ 0 15259 1] endobj 4841 0 obj [627 0 R/XYZ 0 15259 1] endobj 4842 0 obj [630 0 R/XYZ 0 15259 1] endobj 4843 0 obj [646 0 R/XYZ 0 15259 1] endobj 4844 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4845 0 obj [628 0 R/XYZ 0 15259 1] endobj 4846 0 obj [511 0 R/XYZ 0 15259 1] endobj 4847 0 obj [514 0 R/XYZ 0 15259 1] endobj 4848 0 obj [522 0 R/XYZ 0 15259 1] endobj 4849 0 obj [1078 0 R/XYZ 0 15259 1] endobj 4850 0 obj [1225 0 R/XYZ 0 15259 1] endobj 4851 0 obj [1607 0 R/XYZ 0 15259 1] endobj 4852 0 obj [511 0 R/XYZ 0 15259 1] endobj 4853 0 obj [512 0 R/XYZ 0 15259 1] endobj 4854 0 obj [514 0 R/XYZ 0 15259 1] endobj 4855 0 obj [522 0 R/XYZ 0 15259 1] endobj 4856 0 obj [1120 0 R/XYZ 0 15259 1] endobj 4857 0 obj [1225 0 R/XYZ 0 15259 1] endobj 4858 0 obj [1270 0 R/XYZ 0 15259 1] endobj 4859 0 obj [1607 0 R/XYZ 0 15259 1] endobj 4860 0 obj [1644 0 R/XYZ 0 15259 1] endobj 4861 0 obj [511 0 R/XYZ 0 15259 1] endobj 4862 0 obj [1088 0 R/XYZ 0 15259 1] endobj 4863 0 obj [1090 0 R/XYZ 0 15259 1] endobj 4864 0 obj [1092 0 R/XYZ 0 15259 1] endobj 4865 0 obj [1096 0 R/XYZ 0 15259 1] endobj 4866 0 obj [1595 0 R/XYZ 0 15259 1] endobj 4867 0 obj [1630 0 R/XYZ 0 15259 1] endobj 4868 0 obj [1631 0 R/XYZ 0 15259 1] endobj 4869 0 obj [511 0 R/XYZ 0 15259 1] endobj 4870 0 obj [1088 0 R/XYZ 0 15259 1] endobj 4871 0 obj [1090 0 R/XYZ 0 15259 1] endobj 4872 0 obj [1092 0 R/XYZ 0 15259 1] endobj 4873 0 obj [1595 0 R/XYZ 0 15259 1] endobj 4874 0 obj [1631 0 R/XYZ 0 15259 1] endobj 4875 0 obj [511 0 R/XYZ 0 15259 1] endobj 4876 0 obj [512 0 R/XYZ 0 15259 1] endobj 4877 0 obj [1118 0 R/XYZ 0 15259 1] endobj 4878 0 obj [1225 0 R/XYZ 0 15259 1] endobj 4879 0 obj [1268 0 R/XYZ 0 15259 1] endobj 4880 0 obj [1270 0 R/XYZ 0 15259 1] endobj 4881 0 obj [1639 0 R/XYZ 0 15259 1] endobj 4882 0 obj [614 0 R/XYZ 0 15259 1] endobj 4883 0 obj [627 0 R/XYZ 0 15259 1] endobj 4884 0 obj [630 0 R/XYZ 0 15259 1] endobj 4885 0 obj [646 0 R/XYZ 0 15259 1] endobj 4886 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4887 0 obj [628 0 R/XYZ 0 15259 1] endobj 4888 0 obj [383 0 R/XYZ 0 15259 1] endobj 4889 0 obj [528 0 R/XYZ 0 15259 1] endobj 4890 0 obj [531 0 R/XYZ 0 15259 1] endobj 4891 0 obj [570 0 R/XYZ 0 15259 1] endobj 4892 0 obj [871 0 R/XYZ 0 15259 1] endobj 4893 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4894 0 obj [1096 0 R/XYZ 0 15259 1] endobj 4895 0 obj [1100 0 R/XYZ 0 15259 1] endobj 4896 0 obj [1127 0 R/XYZ 0 15259 1] endobj 4897 0 obj [1141 0 R/XYZ 0 15259 1] endobj 4898 0 obj [1142 0 R/XYZ 0 15259 1] endobj 4899 0 obj [1151 0 R/XYZ 0 15259 1] endobj 4900 0 obj [1215 0 R/XYZ 0 15259 1] endobj 4901 0 obj [1225 0 R/XYZ 0 15259 1] endobj 4902 0 obj [1361 0 R/XYZ 0 15259 1] endobj 4903 0 obj [1445 0 R/XYZ 0 15259 1] endobj 4904 0 obj [1502 0 R/XYZ 0 15259 1] endobj 4905 0 obj [1527 0 R/XYZ 0 15259 1] endobj 4906 0 obj [528 0 R/XYZ 0 15259 1] endobj 4907 0 obj [528 0 R/XYZ 0 15259 1] endobj 4908 0 obj [531 0 R/XYZ 0 15259 1] endobj 4909 0 obj [871 0 R/XYZ 0 15259 1] endobj 4910 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4911 0 obj [528 0 R/XYZ 0 15259 1] endobj 4912 0 obj [478 0 R/XYZ 0 15259 1] endobj 4913 0 obj [509 0 R/XYZ 0 15259 1] endobj 4914 0 obj [515 0 R/XYZ 0 15259 1] endobj 4915 0 obj [517 0 R/XYZ 0 15259 1] endobj 4916 0 obj [651 0 R/XYZ 0 15259 1] endobj 4917 0 obj [871 0 R/XYZ 0 15259 1] endobj 4918 0 obj [1036 0 R/XYZ 0 15259 1] endobj 4919 0 obj [1122 0 R/XYZ 0 15259 1] endobj 4920 0 obj [1126 0 R/XYZ 0 15259 1] endobj 4921 0 obj [1140 0 R/XYZ 0 15259 1] endobj 4922 0 obj [1225 0 R/XYZ 0 15259 1] endobj 4923 0 obj [1475 0 R/XYZ 0 15259 1] endobj 4924 0 obj [1613 0 R/XYZ 0 15259 1] endobj 4925 0 obj [509 0 R/XYZ 0 15259 1] endobj 4926 0 obj [627 0 R/XYZ 0 15259 1] endobj 4927 0 obj [630 0 R/XYZ 0 15259 1] endobj 4928 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4929 0 obj [628 0 R/XYZ 0 15259 1] endobj 4930 0 obj [627 0 R/XYZ 0 15259 1] endobj 4931 0 obj [630 0 R/XYZ 0 15259 1] endobj 4932 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4933 0 obj [628 0 R/XYZ 0 15259 1] endobj 4934 0 obj [1178 0 R/XYZ 0 15259 1] endobj 4935 0 obj [1180 0 R/XYZ 0 15259 1] endobj 4936 0 obj [1178 0 R/XYZ 0 15259 1] endobj 4937 0 obj [1066 0 R/XYZ 0 15259 1] endobj 4938 0 obj [1628 0 R/XYZ 0 15259 1] endobj 4939 0 obj [558 0 R/XYZ 0 15259 1] endobj 4940 0 obj [577 0 R/XYZ 0 15259 1] endobj 4941 0 obj [871 0 R/XYZ 0 15259 1] endobj 4942 0 obj [1141 0 R/XYZ 0 15259 1] endobj 4943 0 obj [1142 0 R/XYZ 0 15259 1] endobj 4944 0 obj [1225 0 R/XYZ 0 15259 1] endobj 4945 0 obj [558 0 R/XYZ 0 15259 1] endobj 4946 0 obj [1026 0 R/XYZ 0 15259 1] endobj 4947 0 obj [1027 0 R/XYZ 0 15259 1] endobj 4948 0 obj [1026 0 R/XYZ 0 15259 1] endobj 4949 0 obj [587 0 R/XYZ 0 15259 1] endobj 4950 0 obj [572 0 R/XYZ 0 15259 1] endobj 4951 0 obj [585 0 R/XYZ 0 15259 1] endobj 4952 0 obj [591 0 R/XYZ 0 15259 1] endobj 4953 0 obj [600 0 R/XYZ 0 15259 1] endobj 4954 0 obj [423 0 R/XYZ 0 15259 1] endobj 4955 0 obj [1150 0 R/XYZ 0 15259 1] endobj 4956 0 obj [1150 0 R/XYZ 0 15259 1] endobj 4957 0 obj [1191 0 R/XYZ 0 15259 1] endobj 4958 0 obj [1541 0 R/XYZ 0 15259 1] endobj 4959 0 obj [1589 0 R/XYZ 0 15259 1] endobj 4960 0 obj [407 0 R/XYZ 0 15259 1] endobj 4961 0 obj [410 0 R/XYZ 0 15259 1] endobj 4962 0 obj [1088 0 R/XYZ 0 15259 1] endobj 4963 0 obj [1089 0 R/XYZ 0 15259 1] endobj 4964 0 obj [1091 0 R/XYZ 0 15259 1] endobj 4965 0 obj [1092 0 R/XYZ 0 15259 1] endobj 4966 0 obj [1595 0 R/XYZ 0 15259 1] endobj 4967 0 obj [1026 0 R/XYZ 0 15259 1] endobj 4968 0 obj [1027 0 R/XYZ 0 15259 1] endobj 4969 0 obj [1026 0 R/XYZ 0 15259 1] endobj 4970 0 obj [651 0 R/XYZ 0 15259 1] endobj 4971 0 obj [1615 0 R/XYZ 0 15259 1] endobj 4972 0 obj [577 0 R/XYZ 0 15259 1] endobj 4973 0 obj [581 0 R/XYZ 0 15259 1] endobj 4974 0 obj [871 0 R/XYZ 0 15259 1] endobj 4975 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4976 0 obj [1610 0 R/XYZ 0 15259 1] endobj 4977 0 obj [579 0 R/XYZ 0 15259 1] endobj 4978 0 obj [606 0 R/XYZ 0 15259 1] endobj 4979 0 obj [606 0 R/XYZ 0 15259 1] endobj 4980 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4981 0 obj [616 0 R/XYZ 0 15259 1] endobj 4982 0 obj [625 0 R/XYZ 0 15259 1] endobj 4983 0 obj [627 0 R/XYZ 0 15259 1] endobj 4984 0 obj [939 0 R/XYZ 0 15259 1] endobj 4985 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4986 0 obj [1625 0 R/XYZ 0 15259 1] endobj 4987 0 obj [625 0 R/XYZ 0 15259 1] endobj 4988 0 obj [1088 0 R/XYZ 0 15259 1] endobj 4989 0 obj [1089 0 R/XYZ 0 15259 1] endobj 4990 0 obj [1091 0 R/XYZ 0 15259 1] endobj 4991 0 obj [1092 0 R/XYZ 0 15259 1] endobj 4992 0 obj [1096 0 R/XYZ 0 15259 1] endobj 4993 0 obj [1595 0 R/XYZ 0 15259 1] endobj 4994 0 obj [1631 0 R/XYZ 0 15259 1] endobj 4995 0 obj [1037 0 R/XYZ 0 15259 1] endobj 4996 0 obj [361 0 R/XYZ 0 15259 1] endobj 4997 0 obj [362 0 R/XYZ 0 15259 1] endobj 4998 0 obj [367 0 R/XYZ 0 15259 1] endobj 4999 0 obj [368 0 R/XYZ 0 15259 1] endobj 5000 0 obj <> endobj 5001 0 obj [1237 0 R/XYZ 0 15259 1] endobj 5002 0 obj [1256 0 R/XYZ 0 15259 1] endobj 5003 0 obj [1259 0 R/XYZ 0 15259 1] endobj 5004 0 obj [1261 0 R/XYZ 0 15259 1] endobj 5005 0 obj [1264 0 R/XYZ 0 15259 1] endobj 5006 0 obj [1237 0 R/XYZ 0 15259 1] endobj 5007 0 obj [1650 0 R/XYZ 0 15259 1] endobj 5008 0 obj [661 0 R/XYZ 0 15259 1] endobj 5009 0 obj [762 0 R/XYZ 0 15259 1] endobj 5010 0 obj [826 0 R/XYZ 0 15259 1] endobj 5011 0 obj [1650 0 R/XYZ 0 15259 1] endobj 5012 0 obj [1131 0 R/XYZ 0 15259 1] endobj 5013 0 obj [1294 0 R/XYZ 0 15259 1] endobj 5014 0 obj [776 0 R/XYZ 0 15259 1] endobj 5015 0 obj [385 0 R/XYZ 0 15259 1] endobj 5016 0 obj [418 0 R/XYZ 0 15259 1] endobj 5017 0 obj [471 0 R/XYZ 0 15259 1] endobj 5018 0 obj [1619 0 R/XYZ 0 15259 1] endobj 5019 0 obj [1628 0 R/XYZ 0 15259 1] endobj 5020 0 obj [1425 0 R/XYZ 0 15259 1] endobj 5021 0 obj [493 0 R/XYZ 0 15259 1] endobj 5022 0 obj [705 0 R/XYZ 0 15259 1] endobj 5023 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5024 0 obj [1236 0 R/XYZ 0 15259 1] endobj 5025 0 obj [1238 0 R/XYZ 0 15259 1] endobj 5026 0 obj [1240 0 R/XYZ 0 15259 1] endobj 5027 0 obj [1242 0 R/XYZ 0 15259 1] endobj 5028 0 obj [1254 0 R/XYZ 0 15259 1] endobj 5029 0 obj [1256 0 R/XYZ 0 15259 1] endobj 5030 0 obj [1259 0 R/XYZ 0 15259 1] endobj 5031 0 obj [1261 0 R/XYZ 0 15259 1] endobj 5032 0 obj [1264 0 R/XYZ 0 15259 1] endobj 5033 0 obj [1496 0 R/XYZ 0 15259 1] endobj 5034 0 obj [1502 0 R/XYZ 0 15259 1] endobj 5035 0 obj [1236 0 R/XYZ 0 15259 1] endobj 5036 0 obj [1494 0 R/XYZ 0 15259 1] endobj 5037 0 obj [1496 0 R/XYZ 0 15259 1] endobj 5038 0 obj [1498 0 R/XYZ 0 15259 1] endobj 5039 0 obj [1502 0 R/XYZ 0 15259 1] endobj 5040 0 obj [1509 0 R/XYZ 0 15259 1] endobj 5041 0 obj [1496 0 R/XYZ 0 15259 1] endobj 5042 0 obj [1194 0 R/XYZ 0 15259 1] endobj 5043 0 obj [391 0 R/XYZ 0 15259 1] endobj 5044 0 obj [616 0 R/XYZ 0 15259 1] endobj 5045 0 obj [625 0 R/XYZ 0 15259 1] endobj 5046 0 obj [636 0 R/XYZ 0 15259 1] endobj 5047 0 obj [637 0 R/XYZ 0 15259 1] endobj 5048 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5049 0 obj [1365 0 R/XYZ 0 15259 1] endobj 5050 0 obj [1366 0 R/XYZ 0 15259 1] endobj 5051 0 obj [1613 0 R/XYZ 0 15259 1] endobj 5052 0 obj [616 0 R/XYZ 0 15259 1] endobj 5053 0 obj [616 0 R/XYZ 0 15259 1] endobj 5054 0 obj [617 0 R/XYZ 0 15259 1] endobj 5055 0 obj [636 0 R/XYZ 0 15259 1] endobj 5056 0 obj [651 0 R/XYZ 0 15259 1] endobj 5057 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5058 0 obj [1164 0 R/XYZ 0 15259 1] endobj 5059 0 obj [1613 0 R/XYZ 0 15259 1] endobj 5060 0 obj [616 0 R/XYZ 0 15259 1] endobj 5061 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5062 0 obj [1027 0 R/XYZ 0 15259 1] endobj 5063 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5064 0 obj [1027 0 R/XYZ 0 15259 1] endobj 5065 0 obj [491 0 R/XYZ 0 15259 1] endobj 5066 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5067 0 obj [1027 0 R/XYZ 0 15259 1] endobj 5068 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5069 0 obj [1027 0 R/XYZ 0 15259 1] endobj 5070 0 obj [459 0 R/XYZ 0 15259 1] endobj 5071 0 obj [591 0 R/XYZ 0 15259 1] endobj 5072 0 obj [594 0 R/XYZ 0 15259 1] endobj 5073 0 obj [601 0 R/XYZ 0 15259 1] endobj 5074 0 obj [705 0 R/XYZ 0 15259 1] endobj 5075 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5076 0 obj [1611 0 R/XYZ 0 15259 1] endobj 5077 0 obj [1612 0 R/XYZ 0 15259 1] endobj 5078 0 obj [592 0 R/XYZ 0 15259 1] endobj 5079 0 obj [709 0 R/XYZ 0 15259 1] endobj 5080 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5081 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5082 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5083 0 obj [732 0 R/XYZ 0 15259 1] endobj 5084 0 obj [871 0 R/XYZ 0 15259 1] endobj 5085 0 obj [732 0 R/XYZ 0 15259 1] endobj 5086 0 obj [699 0 R/XYZ 0 15259 1] endobj 5087 0 obj [708 0 R/XYZ 0 15259 1] endobj 5088 0 obj [710 0 R/XYZ 0 15259 1] endobj 5089 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5090 0 obj [1027 0 R/XYZ 0 15259 1] endobj 5091 0 obj [1030 0 R/XYZ 0 15259 1] endobj 5092 0 obj [1033 0 R/XYZ 0 15259 1] endobj 5093 0 obj [1034 0 R/XYZ 0 15259 1] endobj 5094 0 obj [1051 0 R/XYZ 0 15259 1] endobj 5095 0 obj [1155 0 R/XYZ 0 15259 1] endobj 5096 0 obj [1628 0 R/XYZ 0 15259 1] endobj 5097 0 obj [708 0 R/XYZ 0 15259 1] endobj 5098 0 obj [1028 0 R/XYZ 0 15259 1] endobj 5099 0 obj [1030 0 R/XYZ 0 15259 1] endobj 5100 0 obj [732 0 R/XYZ 0 15259 1] endobj 5101 0 obj [770 0 R/XYZ 0 15259 1] endobj 5102 0 obj [783 0 R/XYZ 0 15259 1] endobj 5103 0 obj [871 0 R/XYZ 0 15259 1] endobj 5104 0 obj [1300 0 R/XYZ 0 15259 1] endobj 5105 0 obj [1503 0 R/XYZ 0 15259 1] endobj 5106 0 obj [732 0 R/XYZ 0 15259 1] endobj 5107 0 obj [400 0 R/XYZ 0 15259 1] endobj 5108 0 obj [732 0 R/XYZ 0 15259 1] endobj 5109 0 obj [871 0 R/XYZ 0 15259 1] endobj 5110 0 obj [732 0 R/XYZ 0 15259 1] endobj 5111 0 obj [665 0 R/XYZ 0 15259 1] endobj 5112 0 obj [667 0 R/XYZ 0 15259 1] endobj 5113 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5114 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5115 0 obj [665 0 R/XYZ 0 15259 1] endobj 5116 0 obj [663 0 R/XYZ 0 15259 1] endobj 5117 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5118 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5119 0 obj [663 0 R/XYZ 0 15259 1] endobj 5120 0 obj [1026 0 R/XYZ 0 15259 1] endobj 5121 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5122 0 obj [663 0 R/XYZ 0 15259 1] endobj 5123 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5124 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5125 0 obj [663 0 R/XYZ 0 15259 1] endobj 5126 0 obj [1026 0 R/XYZ 0 15259 1] endobj 5127 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5128 0 obj [667 0 R/XYZ 0 15259 1] endobj 5129 0 obj [871 0 R/XYZ 0 15259 1] endobj 5130 0 obj [667 0 R/XYZ 0 15259 1] endobj 5131 0 obj [1234 0 R/XYZ 0 15259 1] endobj 5132 0 obj [1236 0 R/XYZ 0 15259 1] endobj 5133 0 obj [1234 0 R/XYZ 0 15259 1] endobj 5134 0 obj [1236 0 R/XYZ 0 15259 1] endobj 5135 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5136 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5137 0 obj [1234 0 R/XYZ 0 15259 1] endobj 5138 0 obj [1234 0 R/XYZ 0 15259 1] endobj 5139 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5140 0 obj [445 0 R/XYZ 0 15259 1] endobj 5141 0 obj [446 0 R/XYZ 0 15259 1] endobj 5142 0 obj [451 0 R/XYZ 0 15259 1] endobj 5143 0 obj [674 0 R/XYZ 0 15259 1] endobj 5144 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5145 0 obj [1256 0 R/XYZ 0 15259 1] endobj 5146 0 obj [1258 0 R/XYZ 0 15259 1] endobj 5147 0 obj [1264 0 R/XYZ 0 15259 1] endobj 5148 0 obj [1509 0 R/XYZ 0 15259 1] endobj 5149 0 obj [674 0 R/XYZ 0 15259 1] endobj 5150 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5151 0 obj [792 0 R/XYZ 0 15259 1] endobj 5152 0 obj [794 0 R/XYZ 0 15259 1] endobj 5153 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5154 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5155 0 obj [1078 0 R/XYZ 0 15259 1] endobj 5156 0 obj [1629 0 R/XYZ 0 15259 1] endobj 5157 0 obj [1630 0 R/XYZ 0 15259 1] endobj 5158 0 obj [792 0 R/XYZ 0 15259 1] endobj 5159 0 obj [1026 0 R/XYZ 0 15259 1] endobj 5160 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5161 0 obj [1416 0 R/XYZ 0 15259 1] endobj 5162 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5163 0 obj [1237 0 R/XYZ 0 15259 1] endobj 5164 0 obj [1237 0 R/XYZ 0 15259 1] endobj 5165 0 obj [1194 0 R/XYZ 0 15259 1] endobj 5166 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5167 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5168 0 obj [1235 0 R/XYZ 0 15259 1] endobj 5169 0 obj [1235 0 R/XYZ 0 15259 1] endobj 5170 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5171 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5172 0 obj [1235 0 R/XYZ 0 15259 1] endobj 5173 0 obj [1235 0 R/XYZ 0 15259 1] endobj 5174 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5175 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5176 0 obj [1235 0 R/XYZ 0 15259 1] endobj 5177 0 obj [1235 0 R/XYZ 0 15259 1] endobj 5178 0 obj [1508 0 R/XYZ 0 15259 1] endobj 5179 0 obj [1514 0 R/XYZ 0 15259 1] endobj 5180 0 obj [1519 0 R/XYZ 0 15259 1] endobj 5181 0 obj [1538 0 R/XYZ 0 15259 1] endobj 5182 0 obj [1514 0 R/XYZ 0 15259 1] endobj 5183 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5184 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5185 0 obj [1314 0 R/XYZ 0 15259 1] endobj 5186 0 obj [1316 0 R/XYZ 0 15259 1] endobj 5187 0 obj [1322 0 R/XYZ 0 15259 1] endobj 5188 0 obj [1404 0 R/XYZ 0 15259 1] endobj 5189 0 obj [1405 0 R/XYZ 0 15259 1] endobj 5190 0 obj [1501 0 R/XYZ 0 15259 1] endobj 5191 0 obj [1502 0 R/XYZ 0 15259 1] endobj 5192 0 obj [1314 0 R/XYZ 0 15259 1] endobj 5193 0 obj [810 0 R/XYZ 0 15259 1] endobj 5194 0 obj [826 0 R/XYZ 0 15259 1] endobj 5195 0 obj [1364 0 R/XYZ 0 15259 1] endobj 5196 0 obj [1366 0 R/XYZ 0 15259 1] endobj 5197 0 obj [1368 0 R/XYZ 0 15259 1] endobj 5198 0 obj [1365 0 R/XYZ 0 15259 1] endobj 5199 0 obj [871 0 R/XYZ 0 15259 1] endobj 5200 0 obj [1244 0 R/XYZ 0 15259 1] endobj 5201 0 obj [1244 0 R/XYZ 0 15259 1] endobj 5202 0 obj [818 0 R/XYZ 0 15259 1] endobj 5203 0 obj [819 0 R/XYZ 0 15259 1] endobj 5204 0 obj [819 0 R/XYZ 0 15259 1] endobj 5205 0 obj [818 0 R/XYZ 0 15259 1] endobj 5206 0 obj [871 0 R/XYZ 0 15259 1] endobj 5207 0 obj [818 0 R/XYZ 0 15259 1] endobj 5208 0 obj [1194 0 R/XYZ 0 15259 1] endobj 5209 0 obj [392 0 R/XYZ 0 15259 1] endobj 5210 0 obj [732 0 R/XYZ 0 15259 1] endobj 5211 0 obj [735 0 R/XYZ 0 15259 1] endobj 5212 0 obj [741 0 R/XYZ 0 15259 1] endobj 5213 0 obj [788 0 R/XYZ 0 15259 1] endobj 5214 0 obj [839 0 R/XYZ 0 15259 1] endobj 5215 0 obj [871 0 R/XYZ 0 15259 1] endobj 5216 0 obj [917 0 R/XYZ 0 15259 1] endobj 5217 0 obj [933 0 R/XYZ 0 15259 1] endobj 5218 0 obj [949 0 R/XYZ 0 15259 1] endobj 5219 0 obj [1070 0 R/XYZ 0 15259 1] endobj 5220 0 obj [1300 0 R/XYZ 0 15259 1] endobj 5221 0 obj [1639 0 R/XYZ 0 15259 1] endobj 5222 0 obj [732 0 R/XYZ 0 15259 1] endobj 5223 0 obj [732 0 R/XYZ 0 15259 1] endobj 5224 0 obj [734 0 R/XYZ 0 15259 1] endobj 5225 0 obj [871 0 R/XYZ 0 15259 1] endobj 5226 0 obj [1093 0 R/XYZ 0 15259 1] endobj 5227 0 obj [1406 0 R/XYZ 0 15259 1] endobj 5228 0 obj [732 0 R/XYZ 0 15259 1] endobj 5229 0 obj [1494 0 R/XYZ 0 15259 1] endobj 5230 0 obj [1498 0 R/XYZ 0 15259 1] endobj 5231 0 obj [1513 0 R/XYZ 0 15259 1] endobj 5232 0 obj [1498 0 R/XYZ 0 15259 1] endobj 5233 0 obj [1494 0 R/XYZ 0 15259 1] endobj 5234 0 obj [1498 0 R/XYZ 0 15259 1] endobj 5235 0 obj [1502 0 R/XYZ 0 15259 1] endobj 5236 0 obj [1498 0 R/XYZ 0 15259 1] endobj 5237 0 obj [795 0 R/XYZ 0 15259 1] endobj 5238 0 obj [795 0 R/XYZ 0 15259 1] endobj 5239 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5240 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5241 0 obj [1235 0 R/XYZ 0 15259 1] endobj 5242 0 obj [1235 0 R/XYZ 0 15259 1] endobj 5243 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5244 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5245 0 obj [1235 0 R/XYZ 0 15259 1] endobj 5246 0 obj [1235 0 R/XYZ 0 15259 1] endobj 5247 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5248 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5249 0 obj [1235 0 R/XYZ 0 15259 1] endobj 5250 0 obj [1235 0 R/XYZ 0 15259 1] endobj 5251 0 obj [659 0 R/XYZ 0 15259 1] endobj 5252 0 obj [661 0 R/XYZ 0 15259 1] endobj 5253 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5254 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5255 0 obj <> endobj 5256 0 obj [659 0 R/XYZ 0 15259 1] endobj 5257 0 obj [656 0 R/XYZ 0 15259 1] endobj 5258 0 obj [661 0 R/XYZ 0 15259 1] endobj 5259 0 obj [671 0 R/XYZ 0 15259 1] endobj 5260 0 obj [794 0 R/XYZ 0 15259 1] endobj 5261 0 obj [810 0 R/XYZ 0 15259 1] endobj 5262 0 obj [870 0 R/XYZ 0 15259 1] endobj 5263 0 obj [873 0 R/XYZ 0 15259 1] endobj 5264 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5265 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5266 0 obj [1510 0 R/XYZ 0 15259 1] endobj 5267 0 obj [1618 0 R/XYZ 0 15259 1] endobj 5268 0 obj [658 0 R/XYZ 0 15259 1] endobj 5269 0 obj [659 0 R/XYZ 0 15259 1] endobj 5270 0 obj [1026 0 R/XYZ 0 15259 1] endobj 5271 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5272 0 obj [656 0 R/XYZ 0 15259 1] endobj 5273 0 obj [661 0 R/XYZ 0 15259 1] endobj 5274 0 obj [671 0 R/XYZ 0 15259 1] endobj 5275 0 obj [792 0 R/XYZ 0 15259 1] endobj 5276 0 obj [794 0 R/XYZ 0 15259 1] endobj 5277 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5278 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5279 0 obj [1503 0 R/XYZ 0 15259 1] endobj 5280 0 obj [1618 0 R/XYZ 0 15259 1] endobj 5281 0 obj [658 0 R/XYZ 0 15259 1] endobj 5282 0 obj [1026 0 R/XYZ 0 15259 1] endobj 5283 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5284 0 obj [770 0 R/XYZ 0 15259 1] endobj 5285 0 obj [770 0 R/XYZ 0 15259 1] endobj 5286 0 obj [463 0 R/XYZ 0 15259 1] endobj 5287 0 obj [720 0 R/XYZ 0 15259 1] endobj 5288 0 obj [724 0 R/XYZ 0 15259 1] endobj 5289 0 obj [1059 0 R/XYZ 0 15259 1] endobj 5290 0 obj [1060 0 R/XYZ 0 15259 1] endobj 5291 0 obj [1606 0 R/XYZ 0 15259 1] endobj 5292 0 obj [1607 0 R/XYZ 0 15259 1] endobj 5293 0 obj [720 0 R/XYZ 0 15259 1] endobj 5294 0 obj [756 0 R/XYZ 0 15259 1] endobj 5295 0 obj [799 0 R/XYZ 0 15259 1] endobj 5296 0 obj [619 0 R/XYZ 0 15259 1] endobj 5297 0 obj [621 0 R/XYZ 0 15259 1] endobj 5298 0 obj [1611 0 R/XYZ 0 15259 1] endobj 5299 0 obj [619 0 R/XYZ 0 15259 1] endobj 5300 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5301 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5302 0 obj [1236 0 R/XYZ 0 15259 1] endobj 5303 0 obj [1236 0 R/XYZ 0 15259 1] endobj 5304 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5305 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5306 0 obj [1236 0 R/XYZ 0 15259 1] endobj 5307 0 obj [1236 0 R/XYZ 0 15259 1] endobj 5308 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5309 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5310 0 obj [1236 0 R/XYZ 0 15259 1] endobj 5311 0 obj [1236 0 R/XYZ 0 15259 1] endobj 5312 0 obj [823 0 R/XYZ 0 15259 1] endobj 5313 0 obj [823 0 R/XYZ 0 15259 1] endobj 5314 0 obj [871 0 R/XYZ 0 15259 1] endobj 5315 0 obj [1244 0 R/XYZ 0 15259 1] endobj 5316 0 obj [1244 0 R/XYZ 0 15259 1] endobj 5317 0 obj [871 0 R/XYZ 0 15259 1] endobj 5318 0 obj [1265 0 R/XYZ 0 15259 1] endobj 5319 0 obj [1266 0 R/XYZ 0 15259 1] endobj 5320 0 obj [1265 0 R/XYZ 0 15259 1] endobj 5321 0 obj [663 0 R/XYZ 0 15259 1] endobj 5322 0 obj [663 0 R/XYZ 0 15259 1] endobj 5323 0 obj [663 0 R/XYZ 0 15259 1] endobj 5324 0 obj [1618 0 R/XYZ 0 15259 1] endobj 5325 0 obj [663 0 R/XYZ 0 15259 1] endobj 5326 0 obj [677 0 R/XYZ 0 15259 1] endobj 5327 0 obj [984 0 R/XYZ 0 15259 1] endobj 5328 0 obj [993 0 R/XYZ 0 15259 1] endobj 5329 0 obj [1016 0 R/XYZ 0 15259 1] endobj 5330 0 obj [1019 0 R/XYZ 0 15259 1] endobj 5331 0 obj [677 0 R/XYZ 0 15259 1] endobj 5332 0 obj [746 0 R/XYZ 0 15259 1] endobj 5333 0 obj [809 0 R/XYZ 0 15259 1] endobj 5334 0 obj [811 0 R/XYZ 0 15259 1] endobj 5335 0 obj [814 0 R/XYZ 0 15259 1] endobj 5336 0 obj [1066 0 R/XYZ 0 15259 1] endobj 5337 0 obj [810 0 R/XYZ 0 15259 1] endobj 5338 0 obj [400 0 R/XYZ 0 15259 1] endobj 5339 0 obj [732 0 R/XYZ 0 15259 1] endobj 5340 0 obj [770 0 R/XYZ 0 15259 1] endobj 5341 0 obj [783 0 R/XYZ 0 15259 1] endobj 5342 0 obj [792 0 R/XYZ 0 15259 1] endobj 5343 0 obj [794 0 R/XYZ 0 15259 1] endobj 5344 0 obj [871 0 R/XYZ 0 15259 1] endobj 5345 0 obj [732 0 R/XYZ 0 15259 1] endobj 5346 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5347 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5348 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5349 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5350 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5351 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5352 0 obj [1194 0 R/XYZ 0 15259 1] endobj 5353 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5354 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5355 0 obj [1194 0 R/XYZ 0 15259 1] endobj 5356 0 obj [1650 0 R/XYZ 0 15259 1] endobj 5357 0 obj [472 0 R/XYZ 0 15259 1] endobj 5358 0 obj [702 0 R/XYZ 0 15259 1] endobj 5359 0 obj [1137 0 R/XYZ 0 15259 1] endobj 5360 0 obj [1650 0 R/XYZ 0 15259 1] endobj 5361 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5362 0 obj [718 0 R/XYZ 0 15259 1] endobj 5363 0 obj [421 0 R/XYZ 0 15259 1] endobj 5364 0 obj [678 0 R/XYZ 0 15259 1] endobj 5365 0 obj [679 0 R/XYZ 0 15259 1] endobj 5366 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5367 0 obj [679 0 R/XYZ 0 15259 1] endobj 5368 0 obj [1026 0 R/XYZ 0 15259 1] endobj 5369 0 obj [380 0 R/XYZ 0 15259 1] endobj 5370 0 obj [812 0 R/XYZ 0 15259 1] endobj 5371 0 obj [1439 0 R/XYZ 0 15259 1] endobj 5372 0 obj [437 0 R/XYZ 0 15259 1] endobj 5373 0 obj [1379 0 R/XYZ 0 15259 1] endobj 5374 0 obj [1650 0 R/XYZ 0 15259 1] endobj 5375 0 obj [708 0 R/XYZ 0 15259 1] endobj 5376 0 obj [712 0 R/XYZ 0 15259 1] endobj 5377 0 obj [720 0 R/XYZ 0 15259 1] endobj 5378 0 obj [904 0 R/XYZ 0 15259 1] endobj 5379 0 obj [907 0 R/XYZ 0 15259 1] endobj 5380 0 obj [1395 0 R/XYZ 0 15259 1] endobj 5381 0 obj [1397 0 R/XYZ 0 15259 1] endobj 5382 0 obj [1395 0 R/XYZ 0 15259 1] endobj 5383 0 obj [405 0 R/XYZ 0 15259 1] endobj 5384 0 obj [649 0 R/XYZ 0 15259 1] endobj 5385 0 obj [692 0 R/XYZ 0 15259 1] endobj 5386 0 obj [764 0 R/XYZ 0 15259 1] endobj 5387 0 obj [1650 0 R/XYZ 0 15259 1] endobj 5388 0 obj [1651 0 R/XYZ 0 15259 1] endobj 5389 0 obj [663 0 R/XYZ 0 15259 1] endobj 5390 0 obj [665 0 R/XYZ 0 15259 1] endobj 5391 0 obj [400 0 R/XYZ 0 15259 1] endobj 5392 0 obj [768 0 R/XYZ 0 15259 1] endobj 5393 0 obj [774 0 R/XYZ 0 15259 1] endobj 5394 0 obj [535 0 R/XYZ 0 15259 1] endobj 5395 0 obj [537 0 R/XYZ 0 15259 1] endobj 5396 0 obj [540 0 R/XYZ 0 15259 1] endobj 5397 0 obj [542 0 R/XYZ 0 15259 1] endobj 5398 0 obj [551 0 R/XYZ 0 15259 1] endobj 5399 0 obj [554 0 R/XYZ 0 15259 1] endobj 5400 0 obj [599 0 R/XYZ 0 15259 1] endobj 5401 0 obj [665 0 R/XYZ 0 15259 1] endobj 5402 0 obj [732 0 R/XYZ 0 15259 1] endobj 5403 0 obj [738 0 R/XYZ 0 15259 1] endobj 5404 0 obj [769 0 R/XYZ 0 15259 1] endobj 5405 0 obj [771 0 R/XYZ 0 15259 1] endobj 5406 0 obj [1180 0 R/XYZ 0 15259 1] endobj 5407 0 obj [1217 0 R/XYZ 0 15259 1] endobj 5408 0 obj [535 0 R/XYZ 0 15259 1] endobj 5409 0 obj [542 0 R/XYZ 0 15259 1] endobj 5410 0 obj [665 0 R/XYZ 0 15259 1] endobj 5411 0 obj [732 0 R/XYZ 0 15259 1] endobj 5412 0 obj [738 0 R/XYZ 0 15259 1] endobj 5413 0 obj [764 0 R/XYZ 0 15259 1] endobj 5414 0 obj [765 0 R/XYZ 0 15259 1] endobj 5415 0 obj [769 0 R/XYZ 0 15259 1] endobj 5416 0 obj [786 0 R/XYZ 0 15259 1] endobj 5417 0 obj [1214 0 R/XYZ 0 15259 1] endobj 5418 0 obj [402 0 R/XYZ 0 15259 1] endobj 5419 0 obj [445 0 R/XYZ 0 15259 1] endobj 5420 0 obj [535 0 R/XYZ 0 15259 1] endobj 5421 0 obj [540 0 R/XYZ 0 15259 1] endobj 5422 0 obj [551 0 R/XYZ 0 15259 1] endobj 5423 0 obj [554 0 R/XYZ 0 15259 1] endobj 5424 0 obj [665 0 R/XYZ 0 15259 1] endobj 5425 0 obj [667 0 R/XYZ 0 15259 1] endobj 5426 0 obj [738 0 R/XYZ 0 15259 1] endobj 5427 0 obj [764 0 R/XYZ 0 15259 1] endobj 5428 0 obj [771 0 R/XYZ 0 15259 1] endobj 5429 0 obj [663 0 R/XYZ 0 15259 1] endobj 5430 0 obj [421 0 R/XYZ 0 15259 1] endobj 5431 0 obj [663 0 R/XYZ 0 15259 1] endobj 5432 0 obj [671 0 R/XYZ 0 15259 1] endobj 5433 0 obj [1004 0 R/XYZ 0 15259 1] endobj 5434 0 obj [1009 0 R/XYZ 0 15259 1] endobj 5435 0 obj [833 0 R/XYZ 0 15259 1] endobj 5436 0 obj [1536 0 R/XYZ 0 15259 1] endobj 5437 0 obj [1150 0 R/XYZ 0 15259 1] endobj 5438 0 obj [1307 0 R/XYZ 0 15259 1] endobj 5439 0 obj [1317 0 R/XYZ 0 15259 1] endobj 5440 0 obj [1318 0 R/XYZ 0 15259 1] endobj 5441 0 obj [1320 0 R/XYZ 0 15259 1] endobj 5442 0 obj [1308 0 R/XYZ 0 15259 1] endobj 5443 0 obj [1320 0 R/XYZ 0 15259 1] endobj 5444 0 obj [383 0 R/XYZ 0 15259 1] endobj 5445 0 obj [561 0 R/XYZ 0 15259 1] endobj 5446 0 obj [565 0 R/XYZ 0 15259 1] endobj 5447 0 obj [570 0 R/XYZ 0 15259 1] endobj 5448 0 obj [572 0 R/XYZ 0 15259 1] endobj 5449 0 obj [565 0 R/XYZ 0 15259 1] endobj 5450 0 obj [570 0 R/XYZ 0 15259 1] endobj 5451 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5452 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5453 0 obj [423 0 R/XYZ 0 15259 1] endobj 5454 0 obj [421 0 R/XYZ 0 15259 1] endobj 5455 0 obj [419 0 R/XYZ 0 15259 1] endobj 5456 0 obj [423 0 R/XYZ 0 15259 1] endobj 5457 0 obj [700 0 R/XYZ 0 15259 1] endobj 5458 0 obj [1652 0 R/XYZ 0 15259 1] endobj 5459 0 obj [437 0 R/XYZ 0 15259 1] endobj 5460 0 obj [1529 0 R/XYZ 0 15259 1] endobj 5461 0 obj [517 0 R/XYZ 0 15259 1] endobj 5462 0 obj [560 0 R/XYZ 0 15259 1] endobj 5463 0 obj [564 0 R/XYZ 0 15259 1] endobj 5464 0 obj [489 0 R/XYZ 0 15259 1] endobj 5465 0 obj [490 0 R/XYZ 0 15259 1] endobj 5466 0 obj [556 0 R/XYZ 0 15259 1] endobj 5467 0 obj [558 0 R/XYZ 0 15259 1] endobj 5468 0 obj [380 0 R/XYZ 0 15259 1] endobj 5469 0 obj [388 0 R/XYZ 0 15259 1] endobj 5470 0 obj [591 0 R/XYZ 0 15259 1] endobj 5471 0 obj [709 0 R/XYZ 0 15259 1] endobj 5472 0 obj [811 0 R/XYZ 0 15259 1] endobj 5473 0 obj [816 0 R/XYZ 0 15259 1] endobj 5474 0 obj [708 0 R/XYZ 0 15259 1] endobj 5475 0 obj [709 0 R/XYZ 0 15259 1] endobj 5476 0 obj [811 0 R/XYZ 0 15259 1] endobj 5477 0 obj [1234 0 R/XYZ 0 15259 1] endobj 5478 0 obj [676 0 R/XYZ 0 15259 1] endobj 5479 0 obj [446 0 R/XYZ 0 15259 1] endobj 5480 0 obj [451 0 R/XYZ 0 15259 1] endobj 5481 0 obj [458 0 R/XYZ 0 15259 1] endobj 5482 0 obj [674 0 R/XYZ 0 15259 1] endobj 5483 0 obj [1255 0 R/XYZ 0 15259 1] endobj 5484 0 obj [1258 0 R/XYZ 0 15259 1] endobj 5485 0 obj [1262 0 R/XYZ 0 15259 1] endobj 5486 0 obj [1264 0 R/XYZ 0 15259 1] endobj 5487 0 obj [1494 0 R/XYZ 0 15259 1] endobj 5488 0 obj [1509 0 R/XYZ 0 15259 1] endobj 5489 0 obj [374 0 R/XYZ 0 15259 1] endobj 5490 0 obj [374 0 R/XYZ 0 15259 1] endobj 5491 0 obj [374 0 R/XYZ 0 15259 1] endobj 5492 0 obj [374 0 R/XYZ 0 15259 1] endobj 5493 0 obj [374 0 R/XYZ 0 15259 1] endobj 5494 0 obj [374 0 R/XYZ 0 15259 1] endobj 5495 0 obj <> endobj 5496 0 obj [437 0 R/XYZ 0 15259 1] endobj 5497 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5498 0 obj [560 0 R/XYZ 0 15259 1] endobj 5499 0 obj [1229 0 R/XYZ 0 15259 1] endobj 5500 0 obj [1504 0 R/XYZ 0 15259 1] endobj 5501 0 obj [1518 0 R/XYZ 0 15259 1] endobj 5502 0 obj [1521 0 R/XYZ 0 15259 1] endobj 5503 0 obj [1528 0 R/XYZ 0 15259 1] endobj 5504 0 obj [1229 0 R/XYZ 0 15259 1] endobj 5505 0 obj [1229 0 R/XYZ 0 15259 1] endobj 5506 0 obj [1525 0 R/XYZ 0 15259 1] endobj 5507 0 obj [1528 0 R/XYZ 0 15259 1] endobj 5508 0 obj [1229 0 R/XYZ 0 15259 1] endobj 5509 0 obj [1484 0 R/XYZ 0 15259 1] endobj 5510 0 obj [1486 0 R/XYZ 0 15259 1] endobj 5511 0 obj [649 0 R/XYZ 0 15259 1] endobj 5512 0 obj [1650 0 R/XYZ 0 15259 1] endobj 5513 0 obj [1331 0 R/XYZ 0 15259 1] endobj 5514 0 obj [1346 0 R/XYZ 0 15259 1] endobj 5515 0 obj [437 0 R/XYZ 0 15259 1] endobj 5516 0 obj [1332 0 R/XYZ 0 15259 1] endobj 5517 0 obj [1335 0 R/XYZ 0 15259 1] endobj 5518 0 obj [1337 0 R/XYZ 0 15259 1] endobj 5519 0 obj [1339 0 R/XYZ 0 15259 1] endobj 5520 0 obj [1345 0 R/XYZ 0 15259 1] endobj 5521 0 obj [1346 0 R/XYZ 0 15259 1] endobj 5522 0 obj [1351 0 R/XYZ 0 15259 1] endobj 5523 0 obj [1368 0 R/XYZ 0 15259 1] endobj 5524 0 obj [1370 0 R/XYZ 0 15259 1] endobj 5525 0 obj [1372 0 R/XYZ 0 15259 1] endobj 5526 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5527 0 obj [421 0 R/XYZ 0 15259 1] endobj 5528 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5529 0 obj [1332 0 R/XYZ 0 15259 1] endobj 5530 0 obj [1337 0 R/XYZ 0 15259 1] endobj 5531 0 obj [1347 0 R/XYZ 0 15259 1] endobj 5532 0 obj [1364 0 R/XYZ 0 15259 1] endobj 5533 0 obj [1371 0 R/XYZ 0 15259 1] endobj 5534 0 obj [1373 0 R/XYZ 0 15259 1] endobj 5535 0 obj [1177 0 R/XYZ 0 15259 1] endobj 5536 0 obj [1180 0 R/XYZ 0 15259 1] endobj 5537 0 obj [731 0 R/XYZ 0 15259 1] endobj 5538 0 obj [732 0 R/XYZ 0 15259 1] endobj 5539 0 obj [1465 0 R/XYZ 0 15259 1] endobj 5540 0 obj [416 0 R/XYZ 0 15259 1] endobj 5541 0 obj [418 0 R/XYZ 0 15259 1] endobj 5542 0 obj [419 0 R/XYZ 0 15259 1] endobj 5543 0 obj [1651 0 R/XYZ 0 15259 1] endobj 5544 0 obj [1332 0 R/XYZ 0 15259 1] endobj 5545 0 obj [1335 0 R/XYZ 0 15259 1] endobj 5546 0 obj [1337 0 R/XYZ 0 15259 1] endobj 5547 0 obj [1339 0 R/XYZ 0 15259 1] endobj 5548 0 obj [1347 0 R/XYZ 0 15259 1] endobj 5549 0 obj [1371 0 R/XYZ 0 15259 1] endobj 5550 0 obj [1373 0 R/XYZ 0 15259 1] endobj 5551 0 obj [1397 0 R/XYZ 0 15259 1] endobj 5552 0 obj [1399 0 R/XYZ 0 15259 1] endobj 5553 0 obj [785 0 R/XYZ 0 15259 1] endobj 5554 0 obj [1332 0 R/XYZ 0 15259 1] endobj 5555 0 obj [1344 0 R/XYZ 0 15259 1] endobj 5556 0 obj [1347 0 R/XYZ 0 15259 1] endobj 5557 0 obj [1332 0 R/XYZ 0 15259 1] endobj 5558 0 obj [1337 0 R/XYZ 0 15259 1] endobj 5559 0 obj [1347 0 R/XYZ 0 15259 1] endobj 5560 0 obj [1364 0 R/XYZ 0 15259 1] endobj 5561 0 obj [1332 0 R/XYZ 0 15259 1] endobj 5562 0 obj [1347 0 R/XYZ 0 15259 1] endobj 5563 0 obj [1349 0 R/XYZ 0 15259 1] endobj 5564 0 obj [901 0 R/XYZ 0 15259 1] endobj 5565 0 obj [901 0 R/XYZ 0 15259 1] endobj 5566 0 obj [901 0 R/XYZ 0 15259 1] endobj 5567 0 obj [901 0 R/XYZ 0 15259 1] endobj 5568 0 obj [901 0 R/XYZ 0 15259 1] endobj 5569 0 obj [901 0 R/XYZ 0 15259 1] endobj 5570 0 obj [901 0 R/XYZ 0 15259 1] endobj 5571 0 obj [901 0 R/XYZ 0 15259 1] endobj 5572 0 obj [1332 0 R/XYZ 0 15259 1] endobj 5573 0 obj [1347 0 R/XYZ 0 15259 1] endobj 5574 0 obj [667 0 R/XYZ 0 15259 1] endobj 5575 0 obj [669 0 R/XYZ 0 15259 1] endobj 5576 0 obj [429 0 R/XYZ 0 15259 1] endobj 5577 0 obj [1244 0 R/XYZ 0 15259 1] endobj 5578 0 obj [1231 0 R/XYZ 0 15259 1] endobj 5579 0 obj [499 0 R/XYZ 0 15259 1] endobj 5580 0 obj [619 0 R/XYZ 0 15259 1] endobj 5581 0 obj [1232 0 R/XYZ 0 15259 1] endobj 5582 0 obj [1232 0 R/XYZ 0 15259 1] endobj 5583 0 obj [1232 0 R/XYZ 0 15259 1] endobj 5584 0 obj [1240 0 R/XYZ 0 15259 1] endobj 5585 0 obj [1242 0 R/XYZ 0 15259 1] endobj 5586 0 obj [815 0 R/XYZ 0 15259 1] endobj 5587 0 obj [818 0 R/XYZ 0 15259 1] endobj 5588 0 obj [1057 0 R/XYZ 0 15259 1] endobj 5589 0 obj [1064 0 R/XYZ 0 15259 1] endobj 5590 0 obj [1066 0 R/XYZ 0 15259 1] endobj 5591 0 obj [1025 0 R/XYZ 0 15259 1] endobj 5592 0 obj [1232 0 R/XYZ 0 15259 1] endobj 5593 0 obj [1232 0 R/XYZ 0 15259 1] endobj 5594 0 obj [1242 0 R/XYZ 0 15259 1] endobj 5595 0 obj [1232 0 R/XYZ 0 15259 1] endobj 5596 0 obj [1232 0 R/XYZ 0 15259 1] endobj 5597 0 obj [1232 0 R/XYZ 0 15259 1] endobj 5598 0 obj [1113 0 R/XYZ 0 15259 1] endobj 5599 0 obj [673 0 R/XYZ 0 15259 1] endobj 5600 0 obj [676 0 R/XYZ 0 15259 1] endobj 5601 0 obj [732 0 R/XYZ 0 15259 1] endobj 5602 0 obj [744 0 R/XYZ 0 15259 1] endobj 5603 0 obj [746 0 R/XYZ 0 15259 1] endobj 5604 0 obj [757 0 R/XYZ 0 15259 1] endobj 5605 0 obj [786 0 R/XYZ 0 15259 1] endobj 5606 0 obj [809 0 R/XYZ 0 15259 1] endobj 5607 0 obj [815 0 R/XYZ 0 15259 1] endobj 5608 0 obj [818 0 R/XYZ 0 15259 1] endobj 5609 0 obj [838 0 R/XYZ 0 15259 1] endobj 5610 0 obj [840 0 R/XYZ 0 15259 1] endobj 5611 0 obj [845 0 R/XYZ 0 15259 1] endobj 5612 0 obj [856 0 R/XYZ 0 15259 1] endobj 5613 0 obj [880 0 R/XYZ 0 15259 1] endobj 5614 0 obj [935 0 R/XYZ 0 15259 1] endobj 5615 0 obj [1056 0 R/XYZ 0 15259 1] endobj 5616 0 obj [1057 0 R/XYZ 0 15259 1] endobj 5617 0 obj [1071 0 R/XYZ 0 15259 1] endobj 5618 0 obj [1623 0 R/XYZ 0 15259 1] endobj 5619 0 obj [1630 0 R/XYZ 0 15259 1] endobj 5620 0 obj [667 0 R/XYZ 0 15259 1] endobj 5621 0 obj [811 0 R/XYZ 0 15259 1] endobj 5622 0 obj [667 0 R/XYZ 0 15259 1] endobj 5623 0 obj [700 0 R/XYZ 0 15259 1] endobj 5624 0 obj [1508 0 R/XYZ 0 15259 1] endobj 5625 0 obj [1510 0 R/XYZ 0 15259 1] endobj 5626 0 obj [1513 0 R/XYZ 0 15259 1] endobj 5627 0 obj [1527 0 R/XYZ 0 15259 1] endobj 5628 0 obj [1513 0 R/XYZ 0 15259 1] endobj 5629 0 obj [1508 0 R/XYZ 0 15259 1] endobj 5630 0 obj [1510 0 R/XYZ 0 15259 1] endobj 5631 0 obj [1512 0 R/XYZ 0 15259 1] endobj 5632 0 obj [1512 0 R/XYZ 0 15259 1] endobj 5633 0 obj [1255 0 R/XYZ 0 15259 1] endobj 5634 0 obj [1257 0 R/XYZ 0 15259 1] endobj 5635 0 obj [1259 0 R/XYZ 0 15259 1] endobj 5636 0 obj [1262 0 R/XYZ 0 15259 1] endobj 5637 0 obj [1264 0 R/XYZ 0 15259 1] endobj 5638 0 obj [1494 0 R/XYZ 0 15259 1] endobj 5639 0 obj [1510 0 R/XYZ 0 15259 1] endobj 5640 0 obj [1248 0 R/XYZ 0 15259 1] endobj 5641 0 obj [1266 0 R/XYZ 0 15259 1] endobj 5642 0 obj [856 0 R/XYZ 0 15259 1] endobj 5643 0 obj [1332 0 R/XYZ 0 15259 1] endobj 5644 0 obj [1347 0 R/XYZ 0 15259 1] endobj 5645 0 obj [472 0 R/XYZ 0 15259 1] endobj 5646 0 obj [500 0 R/XYZ 0 15259 1] endobj 5647 0 obj [503 0 R/XYZ 0 15259 1] endobj 5648 0 obj [529 0 R/XYZ 0 15259 1] endobj 5649 0 obj [551 0 R/XYZ 0 15259 1] endobj 5650 0 obj [560 0 R/XYZ 0 15259 1] endobj 5651 0 obj [564 0 R/XYZ 0 15259 1] endobj 5652 0 obj [570 0 R/XYZ 0 15259 1] endobj 5653 0 obj [576 0 R/XYZ 0 15259 1] endobj 5654 0 obj [580 0 R/XYZ 0 15259 1] endobj 5655 0 obj [585 0 R/XYZ 0 15259 1] endobj 5656 0 obj [586 0 R/XYZ 0 15259 1] endobj 5657 0 obj [595 0 R/XYZ 0 15259 1] endobj 5658 0 obj [596 0 R/XYZ 0 15259 1] endobj 5659 0 obj [658 0 R/XYZ 0 15259 1] endobj 5660 0 obj [765 0 R/XYZ 0 15259 1] endobj 5661 0 obj [1095 0 R/XYZ 0 15259 1] endobj 5662 0 obj [1361 0 R/XYZ 0 15259 1] endobj 5663 0 obj [1605 0 R/XYZ 0 15259 1] endobj 5664 0 obj [1610 0 R/XYZ 0 15259 1] endobj 5665 0 obj [472 0 R/XYZ 0 15259 1] endobj 5666 0 obj [561 0 R/XYZ 0 15259 1] endobj 5667 0 obj [1332 0 R/XYZ 0 15259 1] endobj 5668 0 obj [1347 0 R/XYZ 0 15259 1] endobj 5669 0 obj [1349 0 R/XYZ 0 15259 1] endobj 5670 0 obj [1371 0 R/XYZ 0 15259 1] endobj 5671 0 obj [1373 0 R/XYZ 0 15259 1] endobj 5672 0 obj [1231 0 R/XYZ 0 15259 1] endobj 5673 0 obj [1525 0 R/XYZ 0 15259 1] endobj 5674 0 obj [621 0 R/XYZ 0 15259 1] endobj 5675 0 obj [774 0 R/XYZ 0 15259 1] endobj 5676 0 obj [779 0 R/XYZ 0 15259 1] endobj 5677 0 obj [803 0 R/XYZ 0 15259 1] endobj 5678 0 obj [866 0 R/XYZ 0 15259 1] endobj 5679 0 obj [870 0 R/XYZ 0 15259 1] endobj 5680 0 obj [887 0 R/XYZ 0 15259 1] endobj 5681 0 obj [899 0 R/XYZ 0 15259 1] endobj 5682 0 obj [902 0 R/XYZ 0 15259 1] endobj 5683 0 obj [904 0 R/XYZ 0 15259 1] endobj 5684 0 obj [916 0 R/XYZ 0 15259 1] endobj 5685 0 obj [1113 0 R/XYZ 0 15259 1] endobj 5686 0 obj [442 0 R/XYZ 0 15259 1] endobj 5687 0 obj [444 0 R/XYZ 0 15259 1] endobj 5688 0 obj [442 0 R/XYZ 0 15259 1] endobj 5689 0 obj [444 0 R/XYZ 0 15259 1] endobj 5690 0 obj [1335 0 R/XYZ 0 15259 1] endobj 5691 0 obj [1338 0 R/XYZ 0 15259 1] endobj 5692 0 obj [1347 0 R/XYZ 0 15259 1] endobj 5693 0 obj [1365 0 R/XYZ 0 15259 1] endobj 5694 0 obj [419 0 R/XYZ 0 15259 1] endobj 5695 0 obj [1104 0 R/XYZ 0 15259 1] endobj 5696 0 obj [1115 0 R/XYZ 0 15259 1] endobj 5697 0 obj [1129 0 R/XYZ 0 15259 1] endobj 5698 0 obj [1270 0 R/XYZ 0 15259 1] endobj 5699 0 obj [496 0 R/XYZ 0 15259 1] endobj 5700 0 obj [499 0 R/XYZ 0 15259 1] endobj 5701 0 obj [391 0 R/XYZ 0 15259 1] endobj 5702 0 obj [605 0 R/XYZ 0 15259 1] endobj 5703 0 obj [651 0 R/XYZ 0 15259 1] endobj 5704 0 obj [1137 0 R/XYZ 0 15259 1] endobj 5705 0 obj [1144 0 R/XYZ 0 15259 1] endobj 5706 0 obj [1103 0 R/XYZ 0 15259 1] endobj 5707 0 obj [1115 0 R/XYZ 0 15259 1] endobj 5708 0 obj [1082 0 R/XYZ 0 15259 1] endobj 5709 0 obj [1085 0 R/XYZ 0 15259 1] endobj 5710 0 obj [1247 0 R/XYZ 0 15259 1] endobj 5711 0 obj [1248 0 R/XYZ 0 15259 1] endobj 5712 0 obj [1270 0 R/XYZ 0 15259 1] endobj 5713 0 obj [359 0 R/XYZ 0 15259 1] endobj 5714 0 obj [362 0 R/XYZ 0 15259 1] endobj 5715 0 obj [361 0 R/XYZ 0 15259 1] endobj 5716 0 obj <> endobj 5717 0 obj [1327 0 R/XYZ 0 15259 1] endobj 5718 0 obj [1381 0 R/XYZ 0 15259 1] endobj 5719 0 obj [388 0 R/XYZ 0 15259 1] endobj 5720 0 obj [478 0 R/XYZ 0 15259 1] endobj 5721 0 obj [523 0 R/XYZ 0 15259 1] endobj 5722 0 obj [1530 0 R/XYZ 0 15259 1] endobj 5723 0 obj [478 0 R/XYZ 0 15259 1] endobj 5724 0 obj [517 0 R/XYZ 0 15259 1] endobj 5725 0 obj [519 0 R/XYZ 0 15259 1] endobj 5726 0 obj [522 0 R/XYZ 0 15259 1] endobj 5727 0 obj [824 0 R/XYZ 0 15259 1] endobj 5728 0 obj [826 0 R/XYZ 0 15259 1] endobj 5729 0 obj [858 0 R/XYZ 0 15259 1] endobj 5730 0 obj [867 0 R/XYZ 0 15259 1] endobj 5731 0 obj [868 0 R/XYZ 0 15259 1] endobj 5732 0 obj [1037 0 R/XYZ 0 15259 1] endobj 5733 0 obj [1083 0 R/XYZ 0 15259 1] endobj 5734 0 obj [1118 0 R/XYZ 0 15259 1] endobj 5735 0 obj [1187 0 R/XYZ 0 15259 1] endobj 5736 0 obj [1225 0 R/XYZ 0 15259 1] endobj 5737 0 obj [1270 0 R/XYZ 0 15259 1] endobj 5738 0 obj [1330 0 R/XYZ 0 15259 1] endobj 5739 0 obj [1376 0 R/XYZ 0 15259 1] endobj 5740 0 obj [1377 0 R/XYZ 0 15259 1] endobj 5741 0 obj [1389 0 R/XYZ 0 15259 1] endobj 5742 0 obj [1390 0 R/XYZ 0 15259 1] endobj 5743 0 obj [1397 0 R/XYZ 0 15259 1] endobj 5744 0 obj [1401 0 R/XYZ 0 15259 1] endobj 5745 0 obj [1404 0 R/XYZ 0 15259 1] endobj 5746 0 obj [1416 0 R/XYZ 0 15259 1] endobj 5747 0 obj [1419 0 R/XYZ 0 15259 1] endobj 5748 0 obj [1639 0 R/XYZ 0 15259 1] endobj 5749 0 obj [1640 0 R/XYZ 0 15259 1] endobj 5750 0 obj [517 0 R/XYZ 0 15259 1] endobj 5751 0 obj [611 0 R/XYZ 0 15259 1] endobj 5752 0 obj [611 0 R/XYZ 0 15259 1] endobj 5753 0 obj [638 0 R/XYZ 0 15259 1] endobj 5754 0 obj [720 0 R/XYZ 0 15259 1] endobj 5755 0 obj [637 0 R/XYZ 0 15259 1] endobj 5756 0 obj [611 0 R/XYZ 0 15259 1] endobj 5757 0 obj [638 0 R/XYZ 0 15259 1] endobj 5758 0 obj [637 0 R/XYZ 0 15259 1] endobj 5759 0 obj [448 0 R/XYZ 0 15259 1] endobj 5760 0 obj [451 0 R/XYZ 0 15259 1] endobj 5761 0 obj [1131 0 R/XYZ 0 15259 1] endobj 5762 0 obj [1251 0 R/XYZ 0 15259 1] endobj 5763 0 obj [1296 0 R/XYZ 0 15259 1] endobj 5764 0 obj [1297 0 R/XYZ 0 15259 1] endobj 5765 0 obj [1299 0 R/XYZ 0 15259 1] endobj 5766 0 obj [1301 0 R/XYZ 0 15259 1] endobj 5767 0 obj [1306 0 R/XYZ 0 15259 1] endobj 5768 0 obj [1311 0 R/XYZ 0 15259 1] endobj 5769 0 obj [1451 0 R/XYZ 0 15259 1] endobj 5770 0 obj [1457 0 R/XYZ 0 15259 1] endobj 5771 0 obj [1458 0 R/XYZ 0 15259 1] endobj 5772 0 obj [1526 0 R/XYZ 0 15259 1] endobj 5773 0 obj [1530 0 R/XYZ 0 15259 1] endobj 5774 0 obj [448 0 R/XYZ 0 15259 1] endobj 5775 0 obj [451 0 R/XYZ 0 15259 1] endobj 5776 0 obj [458 0 R/XYZ 0 15259 1] endobj 5777 0 obj [1131 0 R/XYZ 0 15259 1] endobj 5778 0 obj [1148 0 R/XYZ 0 15259 1] endobj 5779 0 obj [1218 0 R/XYZ 0 15259 1] endobj 5780 0 obj [1276 0 R/XYZ 0 15259 1] endobj 5781 0 obj [1323 0 R/XYZ 0 15259 1] endobj 5782 0 obj [1177 0 R/XYZ 0 15259 1] endobj 5783 0 obj [1180 0 R/XYZ 0 15259 1] endobj 5784 0 obj [1177 0 R/XYZ 0 15259 1] endobj 5785 0 obj [1180 0 R/XYZ 0 15259 1] endobj 5786 0 obj [1187 0 R/XYZ 0 15259 1] endobj 5787 0 obj [1193 0 R/XYZ 0 15259 1] endobj 5788 0 obj [1199 0 R/XYZ 0 15259 1] endobj 5789 0 obj [1177 0 R/XYZ 0 15259 1] endobj 5790 0 obj [1184 0 R/XYZ 0 15259 1] endobj 5791 0 obj [1180 0 R/XYZ 0 15259 1] endobj 5792 0 obj [1279 0 R/XYZ 0 15259 1] endobj 5793 0 obj [1641 0 R/XYZ 0 15259 1] endobj 5794 0 obj [1180 0 R/XYZ 0 15259 1] endobj 5795 0 obj [1188 0 R/XYZ 0 15259 1] endobj 5796 0 obj [1189 0 R/XYZ 0 15259 1] endobj 5797 0 obj [1195 0 R/XYZ 0 15259 1] endobj 5798 0 obj [1196 0 R/XYZ 0 15259 1] endobj 5799 0 obj [1180 0 R/XYZ 0 15259 1] endobj 5800 0 obj [1187 0 R/XYZ 0 15259 1] endobj 5801 0 obj [1193 0 R/XYZ 0 15259 1] endobj 5802 0 obj [1199 0 R/XYZ 0 15259 1] endobj 5803 0 obj [1217 0 R/XYZ 0 15259 1] endobj 5804 0 obj [1178 0 R/XYZ 0 15259 1] endobj 5805 0 obj [1180 0 R/XYZ 0 15259 1] endobj 5806 0 obj [1202 0 R/XYZ 0 15259 1] endobj 5807 0 obj [1215 0 R/XYZ 0 15259 1] endobj 5808 0 obj [1218 0 R/XYZ 0 15259 1] endobj 5809 0 obj [1183 0 R/XYZ 0 15259 1] endobj 5810 0 obj [1187 0 R/XYZ 0 15259 1] endobj 5811 0 obj [1188 0 R/XYZ 0 15259 1] endobj 5812 0 obj [1194 0 R/XYZ 0 15259 1] endobj 5813 0 obj [1200 0 R/XYZ 0 15259 1] endobj 5814 0 obj [1202 0 R/XYZ 0 15259 1] endobj 5815 0 obj [1183 0 R/XYZ 0 15259 1] endobj 5816 0 obj [1218 0 R/XYZ 0 15259 1] endobj 5817 0 obj [1187 0 R/XYZ 0 15259 1] endobj 5818 0 obj [1188 0 R/XYZ 0 15259 1] endobj 5819 0 obj [1194 0 R/XYZ 0 15259 1] endobj 5820 0 obj [1200 0 R/XYZ 0 15259 1] endobj 5821 0 obj [1187 0 R/XYZ 0 15259 1] endobj 5822 0 obj [1188 0 R/XYZ 0 15259 1] endobj 5823 0 obj [1194 0 R/XYZ 0 15259 1] endobj 5824 0 obj [1200 0 R/XYZ 0 15259 1] endobj 5825 0 obj [1480 0 R/XYZ 0 15259 1] endobj 5826 0 obj [1484 0 R/XYZ 0 15259 1] endobj 5827 0 obj [1538 0 R/XYZ 0 15259 1] endobj 5828 0 obj [1492 0 R/XYZ 0 15259 1] endobj 5829 0 obj [1526 0 R/XYZ 0 15259 1] endobj 5830 0 obj [1528 0 R/XYZ 0 15259 1] endobj 5831 0 obj [1532 0 R/XYZ 0 15259 1] endobj 5832 0 obj [1536 0 R/XYZ 0 15259 1] endobj 5833 0 obj [1224 0 R/XYZ 0 15259 1] endobj 5834 0 obj [1224 0 R/XYZ 0 15259 1] endobj 5835 0 obj [1265 0 R/XYZ 0 15259 1] endobj 5836 0 obj [1224 0 R/XYZ 0 15259 1] endobj 5837 0 obj [1224 0 R/XYZ 0 15259 1] endobj 5838 0 obj [1239 0 R/XYZ 0 15259 1] endobj 5839 0 obj [1224 0 R/XYZ 0 15259 1] endobj 5840 0 obj [1239 0 R/XYZ 0 15259 1] endobj 5841 0 obj [1265 0 R/XYZ 0 15259 1] endobj 5842 0 obj [1224 0 R/XYZ 0 15259 1] endobj 5843 0 obj [1239 0 R/XYZ 0 15259 1] endobj 5844 0 obj [1397 0 R/XYZ 0 15259 1] endobj 5845 0 obj [1399 0 R/XYZ 0 15259 1] endobj 5846 0 obj [437 0 R/XYZ 0 15259 1] endobj 5847 0 obj [1125 0 R/XYZ 0 15259 1] endobj 5848 0 obj [1336 0 R/XYZ 0 15259 1] endobj 5849 0 obj [1358 0 R/XYZ 0 15259 1] endobj 5850 0 obj [1361 0 R/XYZ 0 15259 1] endobj 5851 0 obj [1362 0 R/XYZ 0 15259 1] endobj 5852 0 obj [1377 0 R/XYZ 0 15259 1] endobj 5853 0 obj [1404 0 R/XYZ 0 15259 1] endobj 5854 0 obj [1413 0 R/XYZ 0 15259 1] endobj 5855 0 obj [1358 0 R/XYZ 0 15259 1] endobj 5856 0 obj [1533 0 R/XYZ 0 15259 1] endobj 5857 0 obj [1534 0 R/XYZ 0 15259 1] endobj 5858 0 obj [1118 0 R/XYZ 0 15259 1] endobj 5859 0 obj [1332 0 R/XYZ 0 15259 1] endobj 5860 0 obj [1335 0 R/XYZ 0 15259 1] endobj 5861 0 obj [1337 0 R/XYZ 0 15259 1] endobj 5862 0 obj [1339 0 R/XYZ 0 15259 1] endobj 5863 0 obj [1347 0 R/XYZ 0 15259 1] endobj 5864 0 obj [1371 0 R/XYZ 0 15259 1] endobj 5865 0 obj [1373 0 R/XYZ 0 15259 1] endobj 5866 0 obj [416 0 R/XYZ 0 15259 1] endobj 5867 0 obj [419 0 R/XYZ 0 15259 1] endobj 5868 0 obj [1651 0 R/XYZ 0 15259 1] endobj 5869 0 obj [416 0 R/XYZ 0 15259 1] endobj 5870 0 obj [418 0 R/XYZ 0 15259 1] endobj 5871 0 obj [621 0 R/XYZ 0 15259 1] endobj 5872 0 obj [1651 0 R/XYZ 0 15259 1] endobj 5873 0 obj [419 0 R/XYZ 0 15259 1] endobj 5874 0 obj [1092 0 R/XYZ 0 15259 1] endobj 5875 0 obj [1595 0 R/XYZ 0 15259 1] endobj 5876 0 obj [1533 0 R/XYZ 0 15259 1] endobj 5877 0 obj [1534 0 R/XYZ 0 15259 1] endobj 5878 0 obj [1332 0 R/XYZ 0 15259 1] endobj 5879 0 obj [1347 0 R/XYZ 0 15259 1] endobj 5880 0 obj [1349 0 R/XYZ 0 15259 1] endobj 5881 0 obj [1371 0 R/XYZ 0 15259 1] endobj 5882 0 obj [1373 0 R/XYZ 0 15259 1] endobj 5883 0 obj [1092 0 R/XYZ 0 15259 1] endobj 5884 0 obj [1595 0 R/XYZ 0 15259 1] endobj 5885 0 obj [1332 0 R/XYZ 0 15259 1] endobj 5886 0 obj [1347 0 R/XYZ 0 15259 1] endobj 5887 0 obj [1332 0 R/XYZ 0 15259 1] endobj 5888 0 obj [1348 0 R/XYZ 0 15259 1] endobj 5889 0 obj [1332 0 R/XYZ 0 15259 1] endobj 5890 0 obj [1348 0 R/XYZ 0 15259 1] endobj 5891 0 obj [1332 0 R/XYZ 0 15259 1] endobj 5892 0 obj [1338 0 R/XYZ 0 15259 1] endobj 5893 0 obj [1339 0 R/XYZ 0 15259 1] endobj 5894 0 obj [1348 0 R/XYZ 0 15259 1] endobj 5895 0 obj [1332 0 R/XYZ 0 15259 1] endobj 5896 0 obj [1338 0 R/XYZ 0 15259 1] endobj 5897 0 obj [1339 0 R/XYZ 0 15259 1] endobj 5898 0 obj [1348 0 R/XYZ 0 15259 1] endobj 5899 0 obj [1371 0 R/XYZ 0 15259 1] endobj 5900 0 obj [1373 0 R/XYZ 0 15259 1] endobj 5901 0 obj [708 0 R/XYZ 0 15259 1] endobj 5902 0 obj [715 0 R/XYZ 0 15259 1] endobj 5903 0 obj [717 0 R/XYZ 0 15259 1] endobj 5904 0 obj [884 0 R/XYZ 0 15259 1] endobj 5905 0 obj [887 0 R/XYZ 0 15259 1] endobj 5906 0 obj [828 0 R/XYZ 0 15259 1] endobj 5907 0 obj [833 0 R/XYZ 0 15259 1] endobj 5908 0 obj [819 0 R/XYZ 0 15259 1] endobj 5909 0 obj [828 0 R/XYZ 0 15259 1] endobj 5910 0 obj [836 0 R/XYZ 0 15259 1] endobj 5911 0 obj [838 0 R/XYZ 0 15259 1] endobj 5912 0 obj [862 0 R/XYZ 0 15259 1] endobj 5913 0 obj [907 0 R/XYZ 0 15259 1] endobj 5914 0 obj [932 0 R/XYZ 0 15259 1] endobj 5915 0 obj [935 0 R/XYZ 0 15259 1] endobj 5916 0 obj [1409 0 R/XYZ 0 15259 1] endobj 5917 0 obj [1410 0 R/XYZ 0 15259 1] endobj 5918 0 obj [932 0 R/XYZ 0 15259 1] endobj 5919 0 obj [935 0 R/XYZ 0 15259 1] endobj 5920 0 obj [1506 0 R/XYZ 0 15259 1] endobj 5921 0 obj [1507 0 R/XYZ 0 15259 1] endobj 5922 0 obj [1514 0 R/XYZ 0 15259 1] endobj 5923 0 obj [1515 0 R/XYZ 0 15259 1] endobj 5924 0 obj [1526 0 R/XYZ 0 15259 1] endobj 5925 0 obj [979 0 R/XYZ 0 15259 1] endobj 5926 0 obj [1627 0 R/XYZ 0 15259 1] endobj 5927 0 obj [980 0 R/XYZ 0 15259 1] endobj 5928 0 obj [979 0 R/XYZ 0 15259 1] endobj 5929 0 obj [1627 0 R/XYZ 0 15259 1] endobj 5930 0 obj [980 0 R/XYZ 0 15259 1] endobj 5931 0 obj [432 0 R/XYZ 0 15259 1] endobj 5932 0 obj [501 0 R/XYZ 0 15259 1] endobj 5933 0 obj [828 0 R/XYZ 0 15259 1] endobj 5934 0 obj [429 0 R/XYZ 0 15259 1] endobj 5935 0 obj [432 0 R/XYZ 0 15259 1] endobj 5936 0 obj [499 0 R/XYZ 0 15259 1] endobj 5937 0 obj [558 0 R/XYZ 0 15259 1] endobj 5938 0 obj [564 0 R/XYZ 0 15259 1] endobj 5939 0 obj [734 0 R/XYZ 0 15259 1] endobj 5940 0 obj [743 0 R/XYZ 0 15259 1] endobj 5941 0 obj [1137 0 R/XYZ 0 15259 1] endobj 5942 0 obj [1652 0 R/XYZ 0 15259 1] endobj 5943 0 obj [378 0 R/XYZ 0 15259 1] endobj 5944 0 obj [418 0 R/XYZ 0 15259 1] endobj 5945 0 obj [614 0 R/XYZ 0 15259 1] endobj 5946 0 obj [623 0 R/XYZ 0 15259 1] endobj 5947 0 obj [633 0 R/XYZ 0 15259 1] endobj 5948 0 obj [636 0 R/XYZ 0 15259 1] endobj 5949 0 obj [705 0 R/XYZ 0 15259 1] endobj 5950 0 obj [776 0 R/XYZ 0 15259 1] endobj 5951 0 obj [1597 0 R/XYZ 0 15259 1] endobj 5952 0 obj [1606 0 R/XYZ 0 15259 1] endobj 5953 0 obj [1648 0 R/XYZ 0 15259 1] endobj 5954 0 obj [1651 0 R/XYZ 0 15259 1] endobj 5955 0 obj [1651 0 R/XYZ 0 15259 1] endobj 5956 0 obj [1177 0 R/XYZ 0 15259 1] endobj 5957 0 obj [1180 0 R/XYZ 0 15259 1] endobj 5958 0 obj [1187 0 R/XYZ 0 15259 1] endobj 5959 0 obj [1193 0 R/XYZ 0 15259 1] endobj 5960 0 obj [1199 0 R/XYZ 0 15259 1] endobj 5961 0 obj [1178 0 R/XYZ 0 15259 1] endobj 5962 0 obj [1280 0 R/XYZ 0 15259 1] endobj 5963 0 obj [402 0 R/XYZ 0 15259 1] endobj 5964 0 obj [788 0 R/XYZ 0 15259 1] endobj 5965 0 obj [839 0 R/XYZ 0 15259 1] endobj 5966 0 obj [850 0 R/XYZ 0 15259 1] endobj 5967 0 obj [862 0 R/XYZ 0 15259 1] endobj 5968 0 obj [871 0 R/XYZ 0 15259 1] endobj 5969 0 obj [877 0 R/XYZ 0 15259 1] endobj 5970 0 obj [882 0 R/XYZ 0 15259 1] endobj 5971 0 obj [901 0 R/XYZ 0 15259 1] endobj 5972 0 obj [913 0 R/XYZ 0 15259 1] endobj 5973 0 obj [917 0 R/XYZ 0 15259 1] endobj 5974 0 obj [919 0 R/XYZ 0 15259 1] endobj 5975 0 obj [930 0 R/XYZ 0 15259 1] endobj 5976 0 obj [933 0 R/XYZ 0 15259 1] endobj 5977 0 obj [935 0 R/XYZ 0 15259 1] endobj 5978 0 obj [938 0 R/XYZ 0 15259 1] endobj 5979 0 obj [1041 0 R/XYZ 0 15259 1] endobj 5980 0 obj [1336 0 R/XYZ 0 15259 1] endobj 5981 0 obj [1338 0 R/XYZ 0 15259 1] endobj 5982 0 obj [1366 0 R/XYZ 0 15259 1] endobj 5983 0 obj [1406 0 R/XYZ 0 15259 1] endobj 5984 0 obj [1408 0 R/XYZ 0 15259 1] endobj 5985 0 obj [1624 0 R/XYZ 0 15259 1] endobj 5986 0 obj [1632 0 R/XYZ 0 15259 1] endobj 5987 0 obj [880 0 R/XYZ 0 15259 1] endobj 5988 0 obj [850 0 R/XYZ 0 15259 1] endobj 5989 0 obj [851 0 R/XYZ 0 15259 1] endobj 5990 0 obj [857 0 R/XYZ 0 15259 1] endobj 5991 0 obj [862 0 R/XYZ 0 15259 1] endobj 5992 0 obj [1169 0 R/XYZ 0 15259 1] endobj 5993 0 obj [1335 0 R/XYZ 0 15259 1] endobj 5994 0 obj [1338 0 R/XYZ 0 15259 1] endobj 5995 0 obj [1346 0 R/XYZ 0 15259 1] endobj 5996 0 obj [1366 0 R/XYZ 0 15259 1] endobj 5997 0 obj [1368 0 R/XYZ 0 15259 1] endobj 5998 0 obj [1508 0 R/XYZ 0 15259 1] endobj 5999 0 obj [1522 0 R/XYZ 0 15259 1] endobj 6000 0 obj [1524 0 R/XYZ 0 15259 1] endobj 6001 0 obj [1522 0 R/XYZ 0 15259 1] endobj 6002 0 obj [501 0 R/XYZ 0 15259 1] endobj 6003 0 obj [1651 0 R/XYZ 0 15259 1] endobj 6004 0 obj [995 0 R/XYZ 0 15259 1] endobj 6005 0 obj [1450 0 R/XYZ 0 15259 1] endobj 6006 0 obj [1651 0 R/XYZ 0 15259 1] endobj 6007 0 obj [381 0 R/XYZ 0 15259 1] endobj 6008 0 obj [591 0 R/XYZ 0 15259 1] endobj 6009 0 obj [649 0 R/XYZ 0 15259 1] endobj 6010 0 obj [1166 0 R/XYZ 0 15259 1] endobj 6011 0 obj [1649 0 R/XYZ 0 15259 1] endobj 6012 0 obj [1651 0 R/XYZ 0 15259 1] endobj 6013 0 obj [1654 0 R/XYZ 0 15259 1] endobj 6014 0 obj [381 0 R/XYZ 0 15259 1] endobj 6015 0 obj [463 0 R/XYZ 0 15259 1] endobj 6016 0 obj [522 0 R/XYZ 0 15259 1] endobj 6017 0 obj [708 0 R/XYZ 0 15259 1] endobj 6018 0 obj [722 0 R/XYZ 0 15259 1] endobj 6019 0 obj [812 0 R/XYZ 0 15259 1] endobj 6020 0 obj [828 0 R/XYZ 0 15259 1] endobj 6021 0 obj [1099 0 R/XYZ 0 15259 1] endobj 6022 0 obj [1166 0 R/XYZ 0 15259 1] endobj 6023 0 obj [1366 0 R/XYZ 0 15259 1] endobj 6024 0 obj [1408 0 R/XYZ 0 15259 1] endobj 6025 0 obj [1409 0 R/XYZ 0 15259 1] endobj 6026 0 obj [1412 0 R/XYZ 0 15259 1] endobj 6027 0 obj [1635 0 R/XYZ 0 15259 1] endobj 6028 0 obj [1649 0 R/XYZ 0 15259 1] endobj 6029 0 obj [1184 0 R/XYZ 0 15259 1] endobj 6030 0 obj [1648 0 R/XYZ 0 15259 1] endobj 6031 0 obj [649 0 R/XYZ 0 15259 1] endobj 6032 0 obj [1144 0 R/XYZ 0 15259 1] endobj 6033 0 obj [1651 0 R/XYZ 0 15259 1] endobj 6034 0 obj [359 0 R/XYZ 0 15259 1] endobj 6035 0 obj [374 0 R/XYZ 0 15259 1] endobj 6036 0 obj [359 0 R/XYZ 0 15259 1] endobj 6037 0 obj [373 0 R/XYZ 0 15259 1] endobj 6038 0 obj <> endobj 6039 0 obj [1025 0 R/XYZ 0 15259 1] endobj 6040 0 obj [448 0 R/XYZ 0 15259 1] endobj 6041 0 obj [709 0 R/XYZ 0 15259 1] endobj 6042 0 obj [421 0 R/XYZ 0 15259 1] endobj 6043 0 obj [673 0 R/XYZ 0 15259 1] endobj 6044 0 obj [818 0 R/XYZ 0 15259 1] endobj 6045 0 obj [732 0 R/XYZ 0 15259 1] endobj 6046 0 obj [772 0 R/XYZ 0 15259 1] endobj 6047 0 obj [812 0 R/XYZ 0 15259 1] endobj 6048 0 obj [816 0 R/XYZ 0 15259 1] endobj 6049 0 obj [1057 0 R/XYZ 0 15259 1] endobj 6050 0 obj [828 0 R/XYZ 0 15259 1] endobj 6051 0 obj [709 0 R/XYZ 0 15259 1] endobj 6052 0 obj [451 0 R/XYZ 0 15259 1] endobj 6053 0 obj [709 0 R/XYZ 0 15259 1] endobj 6054 0 obj [709 0 R/XYZ 0 15259 1] endobj 6055 0 obj [553 0 R/XYZ 0 15259 1] endobj 6056 0 obj [554 0 R/XYZ 0 15259 1] endobj 6057 0 obj [571 0 R/XYZ 0 15259 1] endobj 6058 0 obj [577 0 R/XYZ 0 15259 1] endobj 6059 0 obj [553 0 R/XYZ 0 15259 1] endobj 6060 0 obj [709 0 R/XYZ 0 15259 1] endobj 6061 0 obj [709 0 R/XYZ 0 15259 1] endobj 6062 0 obj [709 0 R/XYZ 0 15259 1] endobj 6063 0 obj [1357 0 R/XYZ 0 15259 1] endobj 6064 0 obj [709 0 R/XYZ 0 15259 1] endobj 6065 0 obj [702 0 R/XYZ 0 15259 1] endobj 6066 0 obj [669 0 R/XYZ 0 15259 1] endobj 6067 0 obj [1439 0 R/XYZ 0 15259 1] endobj 6068 0 obj [1387 0 R/XYZ 0 15259 1] endobj 6069 0 obj [1399 0 R/XYZ 0 15259 1] endobj 6070 0 obj [706 0 R/XYZ 0 15259 1] endobj 6071 0 obj [769 0 R/XYZ 0 15259 1] endobj 6072 0 obj [1489 0 R/XYZ 0 15259 1] endobj 6073 0 obj [1510 0 R/XYZ 0 15259 1] endobj 6074 0 obj [702 0 R/XYZ 0 15259 1] endobj 6075 0 obj [1650 0 R/XYZ 0 15259 1] endobj 6076 0 obj [1649 0 R/XYZ 0 15259 1] endobj 6077 0 obj [432 0 R/XYZ 0 15259 1] endobj 6078 0 obj [1652 0 R/XYZ 0 15259 1] endobj 6079 0 obj [1652 0 R/XYZ 0 15259 1] endobj 6080 0 obj [605 0 R/XYZ 0 15259 1] endobj 6081 0 obj [1025 0 R/XYZ 0 15259 1] endobj 6082 0 obj [1025 0 R/XYZ 0 15259 1] endobj 6083 0 obj [1025 0 R/XYZ 0 15259 1] endobj 6084 0 obj [1391 0 R/XYZ 0 15259 1] endobj 6085 0 obj [1624 0 R/XYZ 0 15259 1] endobj 6086 0 obj [1652 0 R/XYZ 0 15259 1] endobj 6087 0 obj [423 0 R/XYZ 0 15259 1] endobj 6088 0 obj [702 0 R/XYZ 0 15259 1] endobj 6089 0 obj [704 0 R/XYZ 0 15259 1] endobj 6090 0 obj [727 0 R/XYZ 0 15259 1] endobj 6091 0 obj [1439 0 R/XYZ 0 15259 1] endobj 6092 0 obj [1620 0 R/XYZ 0 15259 1] endobj 6093 0 obj [1648 0 R/XYZ 0 15259 1] endobj 6094 0 obj [463 0 R/XYZ 0 15259 1] endobj 6095 0 obj [722 0 R/XYZ 0 15259 1] endobj 6096 0 obj [440 0 R/XYZ 0 15259 1] endobj 6097 0 obj [463 0 R/XYZ 0 15259 1] endobj 6098 0 obj [442 0 R/XYZ 0 15259 1] endobj 6099 0 obj [444 0 R/XYZ 0 15259 1] endobj 6100 0 obj [444 0 R/XYZ 0 15259 1] endobj 6101 0 obj [448 0 R/XYZ 0 15259 1] endobj 6102 0 obj [720 0 R/XYZ 0 15259 1] endobj 6103 0 obj [726 0 R/XYZ 0 15259 1] endobj 6104 0 obj [738 0 R/XYZ 0 15259 1] endobj 6105 0 obj [764 0 R/XYZ 0 15259 1] endobj 6106 0 obj [858 0 R/XYZ 0 15259 1] endobj 6107 0 obj [939 0 R/XYZ 0 15259 1] endobj 6108 0 obj [458 0 R/XYZ 0 15259 1] endobj 6109 0 obj [463 0 R/XYZ 0 15259 1] endobj 6110 0 obj [448 0 R/XYZ 0 15259 1] endobj 6111 0 obj [419 0 R/XYZ 0 15259 1] endobj 6112 0 obj [442 0 R/XYZ 0 15259 1] endobj 6113 0 obj [445 0 R/XYZ 0 15259 1] endobj 6114 0 obj [448 0 R/XYZ 0 15259 1] endobj 6115 0 obj [458 0 R/XYZ 0 15259 1] endobj 6116 0 obj [459 0 R/XYZ 0 15259 1] endobj 6117 0 obj [1355 0 R/XYZ 0 15259 1] endobj 6118 0 obj [1357 0 R/XYZ 0 15259 1] endobj 6119 0 obj [445 0 R/XYZ 0 15259 1] endobj 6120 0 obj [451 0 R/XYZ 0 15259 1] endobj 6121 0 obj [458 0 R/XYZ 0 15259 1] endobj 6122 0 obj [709 0 R/XYZ 0 15259 1] endobj 6123 0 obj [452 0 R/XYZ 0 15259 1] endobj 6124 0 obj [472 0 R/XYZ 0 15259 1] endobj 6125 0 obj [561 0 R/XYZ 0 15259 1] endobj 6126 0 obj [565 0 R/XYZ 0 15259 1] endobj 6127 0 obj [585 0 R/XYZ 0 15259 1] endobj 6128 0 obj [383 0 R/XYZ 0 15259 1] endobj 6129 0 obj [561 0 R/XYZ 0 15259 1] endobj 6130 0 obj [565 0 R/XYZ 0 15259 1] endobj 6131 0 obj [570 0 R/XYZ 0 15259 1] endobj 6132 0 obj [572 0 R/XYZ 0 15259 1] endobj 6133 0 obj [465 0 R/XYZ 0 15259 1] endobj 6134 0 obj [529 0 R/XYZ 0 15259 1] endobj 6135 0 obj [531 0 R/XYZ 0 15259 1] endobj 6136 0 obj [554 0 R/XYZ 0 15259 1] endobj 6137 0 obj [556 0 R/XYZ 0 15259 1] endobj 6138 0 obj [561 0 R/XYZ 0 15259 1] endobj 6139 0 obj [566 0 R/XYZ 0 15259 1] endobj 6140 0 obj [570 0 R/XYZ 0 15259 1] endobj 6141 0 obj [574 0 R/XYZ 0 15259 1] endobj 6142 0 obj [586 0 R/XYZ 0 15259 1] endobj 6143 0 obj [594 0 R/XYZ 0 15259 1] endobj 6144 0 obj [600 0 R/XYZ 0 15259 1] endobj 6145 0 obj [671 0 R/XYZ 0 15259 1] endobj 6146 0 obj [1608 0 R/XYZ 0 15259 1] endobj 6147 0 obj [1609 0 R/XYZ 0 15259 1] endobj 6148 0 obj [506 0 R/XYZ 0 15259 1] endobj 6149 0 obj [562 0 R/XYZ 0 15259 1] endobj 6150 0 obj [568 0 R/XYZ 0 15259 1] endobj 6151 0 obj [571 0 R/XYZ 0 15259 1] endobj 6152 0 obj [572 0 R/XYZ 0 15259 1] endobj 6153 0 obj [577 0 R/XYZ 0 15259 1] endobj 6154 0 obj [871 0 R/XYZ 0 15259 1] endobj 6155 0 obj [1037 0 R/XYZ 0 15259 1] endobj 6156 0 obj [564 0 R/XYZ 0 15259 1] endobj 6157 0 obj [564 0 R/XYZ 0 15259 1] endobj 6158 0 obj [568 0 R/XYZ 0 15259 1] endobj 6159 0 obj [871 0 R/XYZ 0 15259 1] endobj 6160 0 obj [1037 0 R/XYZ 0 15259 1] endobj 6161 0 obj [564 0 R/XYZ 0 15259 1] endobj 6162 0 obj [445 0 R/XYZ 0 15259 1] endobj 6163 0 obj [452 0 R/XYZ 0 15259 1] endobj 6164 0 obj [458 0 R/XYZ 0 15259 1] endobj 6165 0 obj [561 0 R/XYZ 0 15259 1] endobj 6166 0 obj [692 0 R/XYZ 0 15259 1] endobj 6167 0 obj [380 0 R/XYZ 0 15259 1] endobj 6168 0 obj [383 0 R/XYZ 0 15259 1] endobj 6169 0 obj [386 0 R/XYZ 0 15259 1] endobj 6170 0 obj [396 0 R/XYZ 0 15259 1] endobj 6171 0 obj [407 0 R/XYZ 0 15259 1] endobj 6172 0 obj [418 0 R/XYZ 0 15259 1] endobj 6173 0 obj [419 0 R/XYZ 0 15259 1] endobj 6174 0 obj [421 0 R/XYZ 0 15259 1] endobj 6175 0 obj [423 0 R/XYZ 0 15259 1] endobj 6176 0 obj [437 0 R/XYZ 0 15259 1] endobj 6177 0 obj [444 0 R/XYZ 0 15259 1] endobj 6178 0 obj [458 0 R/XYZ 0 15259 1] endobj 6179 0 obj [461 0 R/XYZ 0 15259 1] endobj 6180 0 obj [468 0 R/XYZ 0 15259 1] endobj 6181 0 obj [474 0 R/XYZ 0 15259 1] endobj 6182 0 obj [480 0 R/XYZ 0 15259 1] endobj 6183 0 obj [482 0 R/XYZ 0 15259 1] endobj 6184 0 obj [483 0 R/XYZ 0 15259 1] endobj 6185 0 obj [491 0 R/XYZ 0 15259 1] endobj 6186 0 obj [497 0 R/XYZ 0 15259 1] endobj 6187 0 obj [500 0 R/XYZ 0 15259 1] endobj 6188 0 obj [501 0 R/XYZ 0 15259 1] endobj 6189 0 obj [515 0 R/XYZ 0 15259 1] endobj 6190 0 obj [520 0 R/XYZ 0 15259 1] endobj 6191 0 obj [542 0 R/XYZ 0 15259 1] endobj 6192 0 obj [551 0 R/XYZ 0 15259 1] endobj 6193 0 obj [556 0 R/XYZ 0 15259 1] endobj 6194 0 obj [571 0 R/XYZ 0 15259 1] endobj 6195 0 obj [572 0 R/XYZ 0 15259 1] endobj 6196 0 obj [583 0 R/XYZ 0 15259 1] endobj 6197 0 obj [587 0 R/XYZ 0 15259 1] endobj 6198 0 obj [595 0 R/XYZ 0 15259 1] endobj 6199 0 obj [647 0 R/XYZ 0 15259 1] endobj 6200 0 obj [657 0 R/XYZ 0 15259 1] endobj 6201 0 obj [663 0 R/XYZ 0 15259 1] endobj 6202 0 obj [667 0 R/XYZ 0 15259 1] endobj 6203 0 obj [669 0 R/XYZ 0 15259 1] endobj 6204 0 obj [673 0 R/XYZ 0 15259 1] endobj 6205 0 obj [674 0 R/XYZ 0 15259 1] endobj 6206 0 obj [700 0 R/XYZ 0 15259 1] endobj 6207 0 obj [706 0 R/XYZ 0 15259 1] endobj 6208 0 obj [709 0 R/XYZ 0 15259 1] endobj 6209 0 obj [710 0 R/XYZ 0 15259 1] endobj 6210 0 obj [722 0 R/XYZ 0 15259 1] endobj 6211 0 obj [727 0 R/XYZ 0 15259 1] endobj 6212 0 obj [734 0 R/XYZ 0 15259 1] endobj 6213 0 obj [748 0 R/XYZ 0 15259 1] endobj 6214 0 obj [753 0 R/XYZ 0 15259 1] endobj 6215 0 obj [756 0 R/XYZ 0 15259 1] endobj 6216 0 obj [765 0 R/XYZ 0 15259 1] endobj 6217 0 obj [770 0 R/XYZ 0 15259 1] endobj 6218 0 obj [772 0 R/XYZ 0 15259 1] endobj 6219 0 obj [774 0 R/XYZ 0 15259 1] endobj 6220 0 obj [776 0 R/XYZ 0 15259 1] endobj 6221 0 obj [785 0 R/XYZ 0 15259 1] endobj 6222 0 obj [787 0 R/XYZ 0 15259 1] endobj 6223 0 obj [790 0 R/XYZ 0 15259 1] endobj 6224 0 obj [794 0 R/XYZ 0 15259 1] endobj 6225 0 obj [795 0 R/XYZ 0 15259 1] endobj 6226 0 obj [811 0 R/XYZ 0 15259 1] endobj 6227 0 obj [814 0 R/XYZ 0 15259 1] endobj 6228 0 obj [818 0 R/XYZ 0 15259 1] endobj 6229 0 obj [826 0 R/XYZ 0 15259 1] endobj 6230 0 obj [833 0 R/XYZ 0 15259 1] endobj 6231 0 obj [836 0 R/XYZ 0 15259 1] endobj 6232 0 obj [850 0 R/XYZ 0 15259 1] endobj 6233 0 obj [852 0 R/XYZ 0 15259 1] endobj 6234 0 obj [854 0 R/XYZ 0 15259 1] endobj 6235 0 obj [856 0 R/XYZ 0 15259 1] endobj 6236 0 obj [858 0 R/XYZ 0 15259 1] endobj 6237 0 obj [868 0 R/XYZ 0 15259 1] endobj 6238 0 obj [875 0 R/XYZ 0 15259 1] endobj 6239 0 obj [877 0 R/XYZ 0 15259 1] endobj 6240 0 obj [899 0 R/XYZ 0 15259 1] endobj 6241 0 obj [902 0 R/XYZ 0 15259 1] endobj 6242 0 obj [904 0 R/XYZ 0 15259 1] endobj 6243 0 obj [907 0 R/XYZ 0 15259 1] endobj 6244 0 obj [923 0 R/XYZ 0 15259 1] endobj 6245 0 obj [926 0 R/XYZ 0 15259 1] endobj 6246 0 obj [932 0 R/XYZ 0 15259 1] endobj 6247 0 obj [935 0 R/XYZ 0 15259 1] endobj 6248 0 obj [936 0 R/XYZ 0 15259 1] endobj 6249 0 obj [947 0 R/XYZ 0 15259 1] endobj 6250 0 obj [951 0 R/XYZ 0 15259 1] endobj 6251 0 obj [955 0 R/XYZ 0 15259 1] endobj 6252 0 obj [959 0 R/XYZ 0 15259 1] endobj 6253 0 obj [977 0 R/XYZ 0 15259 1] endobj 6254 0 obj [1003 0 R/XYZ 0 15259 1] endobj 6255 0 obj [1004 0 R/XYZ 0 15259 1] endobj 6256 0 obj [1011 0 R/XYZ 0 15259 1] endobj 6257 0 obj [1012 0 R/XYZ 0 15259 1] endobj 6258 0 obj [1019 0 R/XYZ 0 15259 1] endobj 6259 0 obj [1051 0 R/XYZ 0 15259 1] endobj 6260 0 obj [1056 0 R/XYZ 0 15259 1] endobj 6261 0 obj [1057 0 R/XYZ 0 15259 1] endobj 6262 0 obj [1068 0 R/XYZ 0 15259 1] endobj 6263 0 obj [1070 0 R/XYZ 0 15259 1] endobj 6264 0 obj [1087 0 R/XYZ 0 15259 1] endobj 6265 0 obj [1098 0 R/XYZ 0 15259 1] endobj 6266 0 obj [1099 0 R/XYZ 0 15259 1] endobj 6267 0 obj [1107 0 R/XYZ 0 15259 1] endobj 6268 0 obj [1132 0 R/XYZ 0 15259 1] endobj 6269 0 obj [1142 0 R/XYZ 0 15259 1] endobj 6270 0 obj [1144 0 R/XYZ 0 15259 1] endobj 6271 0 obj [1150 0 R/XYZ 0 15259 1] endobj 6272 0 obj [1183 0 R/XYZ 0 15259 1] endobj 6273 0 obj [1186 0 R/XYZ 0 15259 1] endobj 6274 0 obj [1193 0 R/XYZ 0 15259 1] endobj 6275 0 obj [1198 0 R/XYZ 0 15259 1] endobj 6276 0 obj [1200 0 R/XYZ 0 15259 1] endobj 6277 0 obj [1202 0 R/XYZ 0 15259 1] endobj 6278 0 obj [1203 0 R/XYZ 0 15259 1] endobj 6279 0 obj [1205 0 R/XYZ 0 15259 1] endobj 6280 0 obj [1211 0 R/XYZ 0 15259 1] endobj 6281 0 obj [1229 0 R/XYZ 0 15259 1] endobj 6282 0 obj [1232 0 R/XYZ 0 15259 1] endobj 6283 0 obj [1246 0 R/XYZ 0 15259 1] endobj 6284 0 obj [1251 0 R/XYZ 0 15259 1] endobj 6285 0 obj [1253 0 R/XYZ 0 15259 1] endobj 6286 0 obj [1270 0 R/XYZ 0 15259 1] endobj 6287 0 obj [1282 0 R/XYZ 0 15259 1] endobj 6288 0 obj [1298 0 R/XYZ 0 15259 1] endobj 6289 0 obj [1300 0 R/XYZ 0 15259 1] endobj 6290 0 obj [1302 0 R/XYZ 0 15259 1] endobj 6291 0 obj [1331 0 R/XYZ 0 15259 1] endobj 6292 0 obj [1335 0 R/XYZ 0 15259 1] endobj 6293 0 obj [1343 0 R/XYZ 0 15259 1] endobj 6294 0 obj [1351 0 R/XYZ 0 15259 1] endobj 6295 0 obj [1355 0 R/XYZ 0 15259 1] endobj 6296 0 obj [1387 0 R/XYZ 0 15259 1] endobj 6297 0 obj [1396 0 R/XYZ 0 15259 1] endobj 6298 0 obj [1399 0 R/XYZ 0 15259 1] endobj 6299 0 obj [1400 0 R/XYZ 0 15259 1] endobj 6300 0 obj [1416 0 R/XYZ 0 15259 1] endobj 6301 0 obj [1418 0 R/XYZ 0 15259 1] endobj 6302 0 obj [1425 0 R/XYZ 0 15259 1] endobj 6303 0 obj [1439 0 R/XYZ 0 15259 1] endobj 6304 0 obj [1470 0 R/XYZ 0 15259 1] endobj 6305 0 obj [1486 0 R/XYZ 0 15259 1] endobj 6306 0 obj [1493 0 R/XYZ 0 15259 1] endobj 6307 0 obj [1611 0 R/XYZ 0 15259 1] endobj 6308 0 obj [1618 0 R/XYZ 0 15259 1] endobj 6309 0 obj [1625 0 R/XYZ 0 15259 1] endobj 6310 0 obj [1630 0 R/XYZ 0 15259 1] endobj 6311 0 obj [1632 0 R/XYZ 0 15259 1] endobj 6312 0 obj [1635 0 R/XYZ 0 15259 1] endobj 6313 0 obj [1636 0 R/XYZ 0 15259 1] endobj 6314 0 obj [1150 0 R/XYZ 0 15259 1] endobj 6315 0 obj [951 0 R/XYZ 0 15259 1] endobj 6316 0 obj [1037 0 R/XYZ 0 15259 1] endobj 6317 0 obj [1124 0 R/XYZ 0 15259 1] endobj 6318 0 obj [1124 0 R/XYZ 0 15259 1] endobj 6319 0 obj [1124 0 R/XYZ 0 15259 1] endobj 6320 0 obj [1652 0 R/XYZ 0 15259 1] endobj 6321 0 obj [1124 0 R/XYZ 0 15259 1] endobj 6322 0 obj [871 0 R/XYZ 0 15259 1] endobj 6323 0 obj [1244 0 R/XYZ 0 15259 1] endobj 6324 0 obj [1247 0 R/XYZ 0 15259 1] endobj 6325 0 obj [1248 0 R/XYZ 0 15259 1] endobj 6326 0 obj [1266 0 R/XYZ 0 15259 1] endobj 6327 0 obj [1284 0 R/XYZ 0 15259 1] endobj 6328 0 obj [1287 0 R/XYZ 0 15259 1] endobj 6329 0 obj [1494 0 R/XYZ 0 15259 1] endobj 6330 0 obj [1247 0 R/XYZ 0 15259 1] endobj 6331 0 obj [1228 0 R/XYZ 0 15259 1] endobj 6332 0 obj [1425 0 R/XYZ 0 15259 1] endobj 6333 0 obj [1433 0 R/XYZ 0 15259 1] endobj 6334 0 obj [1652 0 R/XYZ 0 15259 1] endobj 6335 0 obj [442 0 R/XYZ 0 15259 1] endobj 6336 0 obj [442 0 R/XYZ 0 15259 1] endobj 6337 0 obj [562 0 R/XYZ 0 15259 1] endobj 6338 0 obj [1335 0 R/XYZ 0 15259 1] endobj 6339 0 obj [1338 0 R/XYZ 0 15259 1] endobj 6340 0 obj [451 0 R/XYZ 0 15259 1] endobj 6341 0 obj [1025 0 R/XYZ 0 15259 1] endobj 6342 0 obj [419 0 R/XYZ 0 15259 1] endobj 6343 0 obj [677 0 R/XYZ 0 15259 1] endobj 6344 0 obj [679 0 R/XYZ 0 15259 1] endobj 6345 0 obj [681 0 R/XYZ 0 15259 1] endobj 6346 0 obj [682 0 R/XYZ 0 15259 1] endobj 6347 0 obj [779 0 R/XYZ 0 15259 1] endobj 6348 0 obj [975 0 R/XYZ 0 15259 1] endobj 6349 0 obj [1025 0 R/XYZ 0 15259 1] endobj 6350 0 obj [1037 0 R/XYZ 0 15259 1] endobj 6351 0 obj [1619 0 R/XYZ 0 15259 1] endobj 6352 0 obj [679 0 R/XYZ 0 15259 1] endobj 6353 0 obj [1026 0 R/XYZ 0 15259 1] endobj 6354 0 obj [1037 0 R/XYZ 0 15259 1] endobj 6355 0 obj [1036 0 R/XYZ 0 15259 1] endobj 6356 0 obj [1037 0 R/XYZ 0 15259 1] endobj 6357 0 obj [1087 0 R/XYZ 0 15259 1] endobj 6358 0 obj [1095 0 R/XYZ 0 15259 1] endobj 6359 0 obj [1068 0 R/XYZ 0 15259 1] endobj 6360 0 obj [1070 0 R/XYZ 0 15259 1] endobj 6361 0 obj [1096 0 R/XYZ 0 15259 1] endobj 6362 0 obj [1436 0 R/XYZ 0 15259 1] endobj 6363 0 obj [1436 0 R/XYZ 0 15259 1] endobj 6364 0 obj [1087 0 R/XYZ 0 15259 1] endobj 6365 0 obj [361 0 R/XYZ 0 15259 1] endobj 6366 0 obj [362 0 R/XYZ 0 15259 1] endobj 6367 0 obj [366 0 R/XYZ 0 15259 1] endobj 6368 0 obj [368 0 R/XYZ 0 15259 1] endobj 6369 0 obj [374 0 R/XYZ 0 15259 1] endobj 6370 0 obj <> endobj 6371 0 obj [1091 0 R/XYZ 0 15259 1] endobj 6372 0 obj [1595 0 R/XYZ 0 15259 1] endobj 6373 0 obj [1630 0 R/XYZ 0 15259 1] endobj 6374 0 obj [1631 0 R/XYZ 0 15259 1] endobj 6375 0 obj [1091 0 R/XYZ 0 15259 1] endobj 6376 0 obj [977 0 R/XYZ 0 15259 1] endobj 6377 0 obj [983 0 R/XYZ 0 15259 1] endobj 6378 0 obj [988 0 R/XYZ 0 15259 1] endobj 6379 0 obj [990 0 R/XYZ 0 15259 1] endobj 6380 0 obj [1091 0 R/XYZ 0 15259 1] endobj 6381 0 obj [1092 0 R/XYZ 0 15259 1] endobj 6382 0 obj [1595 0 R/XYZ 0 15259 1] endobj 6383 0 obj [1091 0 R/XYZ 0 15259 1] endobj 6384 0 obj [1064 0 R/XYZ 0 15259 1] endobj 6385 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6386 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6387 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6388 0 obj [1061 0 R/XYZ 0 15259 1] endobj 6389 0 obj [1065 0 R/XYZ 0 15259 1] endobj 6390 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6391 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6392 0 obj [1061 0 R/XYZ 0 15259 1] endobj 6393 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6394 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6395 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6396 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6397 0 obj [1070 0 R/XYZ 0 15259 1] endobj 6398 0 obj [1072 0 R/XYZ 0 15259 1] endobj 6399 0 obj [1074 0 R/XYZ 0 15259 1] endobj 6400 0 obj [1076 0 R/XYZ 0 15259 1] endobj 6401 0 obj [1255 0 R/XYZ 0 15259 1] endobj 6402 0 obj [1259 0 R/XYZ 0 15259 1] endobj 6403 0 obj [1262 0 R/XYZ 0 15259 1] endobj 6404 0 obj [1264 0 R/XYZ 0 15259 1] endobj 6405 0 obj [1601 0 R/XYZ 0 15259 1] endobj 6406 0 obj [1602 0 R/XYZ 0 15259 1] endobj 6407 0 obj [1511 0 R/XYZ 0 15259 1] endobj 6408 0 obj [1597 0 R/XYZ 0 15259 1] endobj 6409 0 obj [1598 0 R/XYZ 0 15259 1] endobj 6410 0 obj [1602 0 R/XYZ 0 15259 1] endobj 6411 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6412 0 obj [1065 0 R/XYZ 0 15259 1] endobj 6413 0 obj [671 0 R/XYZ 0 15259 1] endobj 6414 0 obj [673 0 R/XYZ 0 15259 1] endobj 6415 0 obj [812 0 R/XYZ 0 15259 1] endobj 6416 0 obj [380 0 R/XYZ 0 15259 1] endobj 6417 0 obj [400 0 R/XYZ 0 15259 1] endobj 6418 0 obj [591 0 R/XYZ 0 15259 1] endobj 6419 0 obj [658 0 R/XYZ 0 15259 1] endobj 6420 0 obj [673 0 R/XYZ 0 15259 1] endobj 6421 0 obj [709 0 R/XYZ 0 15259 1] endobj 6422 0 obj [792 0 R/XYZ 0 15259 1] endobj 6423 0 obj [794 0 R/XYZ 0 15259 1] endobj 6424 0 obj [814 0 R/XYZ 0 15259 1] endobj 6425 0 obj [1078 0 R/XYZ 0 15259 1] endobj 6426 0 obj [1630 0 R/XYZ 0 15259 1] endobj 6427 0 obj [399 0 R/XYZ 0 15259 1] endobj 6428 0 obj [658 0 R/XYZ 0 15259 1] endobj 6429 0 obj [663 0 R/XYZ 0 15259 1] endobj 6430 0 obj [667 0 R/XYZ 0 15259 1] endobj 6431 0 obj [673 0 R/XYZ 0 15259 1] endobj 6432 0 obj [763 0 R/XYZ 0 15259 1] endobj 6433 0 obj [766 0 R/XYZ 0 15259 1] endobj 6434 0 obj [769 0 R/XYZ 0 15259 1] endobj 6435 0 obj [794 0 R/XYZ 0 15259 1] endobj 6436 0 obj [810 0 R/XYZ 0 15259 1] endobj 6437 0 obj [814 0 R/XYZ 0 15259 1] endobj 6438 0 obj [816 0 R/XYZ 0 15259 1] endobj 6439 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6440 0 obj [1364 0 R/XYZ 0 15259 1] endobj 6441 0 obj [1388 0 R/XYZ 0 15259 1] endobj 6442 0 obj [1413 0 R/XYZ 0 15259 1] endobj 6443 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6444 0 obj [1072 0 R/XYZ 0 15259 1] endobj 6445 0 obj [1074 0 R/XYZ 0 15259 1] endobj 6446 0 obj [446 0 R/XYZ 0 15259 1] endobj 6447 0 obj [451 0 R/XYZ 0 15259 1] endobj 6448 0 obj [458 0 R/XYZ 0 15259 1] endobj 6449 0 obj [814 0 R/XYZ 0 15259 1] endobj 6450 0 obj [818 0 R/XYZ 0 15259 1] endobj 6451 0 obj [808 0 R/XYZ 0 15259 1] endobj 6452 0 obj [814 0 R/XYZ 0 15259 1] endobj 6453 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6454 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6455 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6456 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6457 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6458 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6459 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6460 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6461 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6462 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6463 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6464 0 obj [1595 0 R/XYZ 0 15259 1] endobj 6465 0 obj [1598 0 R/XYZ 0 15259 1] endobj 6466 0 obj [1602 0 R/XYZ 0 15259 1] endobj 6467 0 obj [709 0 R/XYZ 0 15259 1] endobj 6468 0 obj [794 0 R/XYZ 0 15259 1] endobj 6469 0 obj [811 0 R/XYZ 0 15259 1] endobj 6470 0 obj [1065 0 R/XYZ 0 15259 1] endobj 6471 0 obj [1628 0 R/XYZ 0 15259 1] endobj 6472 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6473 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6474 0 obj [1316 0 R/XYZ 0 15259 1] endobj 6475 0 obj [1597 0 R/XYZ 0 15259 1] endobj 6476 0 obj [1601 0 R/XYZ 0 15259 1] endobj 6477 0 obj [1065 0 R/XYZ 0 15259 1] endobj 6478 0 obj [1065 0 R/XYZ 0 15259 1] endobj 6479 0 obj [1316 0 R/XYZ 0 15259 1] endobj 6480 0 obj [1524 0 R/XYZ 0 15259 1] endobj 6481 0 obj [1597 0 R/XYZ 0 15259 1] endobj 6482 0 obj [1598 0 R/XYZ 0 15259 1] endobj 6483 0 obj [1602 0 R/XYZ 0 15259 1] endobj 6484 0 obj [1597 0 R/XYZ 0 15259 1] endobj 6485 0 obj [1598 0 R/XYZ 0 15259 1] endobj 6486 0 obj [1601 0 R/XYZ 0 15259 1] endobj 6487 0 obj [1498 0 R/XYZ 0 15259 1] endobj 6488 0 obj [1597 0 R/XYZ 0 15259 1] endobj 6489 0 obj [1598 0 R/XYZ 0 15259 1] endobj 6490 0 obj [1601 0 R/XYZ 0 15259 1] endobj 6491 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6492 0 obj [1316 0 R/XYZ 0 15259 1] endobj 6493 0 obj [1501 0 R/XYZ 0 15259 1] endobj 6494 0 obj [1507 0 R/XYZ 0 15259 1] endobj 6495 0 obj [1601 0 R/XYZ 0 15259 1] endobj 6496 0 obj [1603 0 R/XYZ 0 15259 1] endobj 6497 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6498 0 obj [1316 0 R/XYZ 0 15259 1] endobj 6499 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6500 0 obj [444 0 R/XYZ 0 15259 1] endobj 6501 0 obj [904 0 R/XYZ 0 15259 1] endobj 6502 0 obj [907 0 R/XYZ 0 15259 1] endobj 6503 0 obj [688 0 R/XYZ 0 15259 1] endobj 6504 0 obj [712 0 R/XYZ 0 15259 1] endobj 6505 0 obj [714 0 R/XYZ 0 15259 1] endobj 6506 0 obj [718 0 R/XYZ 0 15259 1] endobj 6507 0 obj [726 0 R/XYZ 0 15259 1] endobj 6508 0 obj [870 0 R/XYZ 0 15259 1] endobj 6509 0 obj [871 0 R/XYZ 0 15259 1] endobj 6510 0 obj [884 0 R/XYZ 0 15259 1] endobj 6511 0 obj [885 0 R/XYZ 0 15259 1] endobj 6512 0 obj [887 0 R/XYZ 0 15259 1] endobj 6513 0 obj [904 0 R/XYZ 0 15259 1] endobj 6514 0 obj [907 0 R/XYZ 0 15259 1] endobj 6515 0 obj [916 0 R/XYZ 0 15259 1] endobj 6516 0 obj [938 0 R/XYZ 0 15259 1] endobj 6517 0 obj [1624 0 R/XYZ 0 15259 1] endobj 6518 0 obj [714 0 R/XYZ 0 15259 1] endobj 6519 0 obj [442 0 R/XYZ 0 15259 1] endobj 6520 0 obj [461 0 R/XYZ 0 15259 1] endobj 6521 0 obj [463 0 R/XYZ 0 15259 1] endobj 6522 0 obj [474 0 R/XYZ 0 15259 1] endobj 6523 0 obj [992 0 R/XYZ 0 15259 1] endobj 6524 0 obj [1606 0 R/XYZ 0 15259 1] endobj 6525 0 obj [1607 0 R/XYZ 0 15259 1] endobj 6526 0 obj [442 0 R/XYZ 0 15259 1] endobj 6527 0 obj [1315 0 R/XYZ 0 15259 1] endobj 6528 0 obj [1316 0 R/XYZ 0 15259 1] endobj 6529 0 obj [1318 0 R/XYZ 0 15259 1] endobj 6530 0 obj [1323 0 R/XYZ 0 15259 1] endobj 6531 0 obj [1406 0 R/XYZ 0 15259 1] endobj 6532 0 obj [1419 0 R/XYZ 0 15259 1] endobj 6533 0 obj [1318 0 R/XYZ 0 15259 1] endobj 6534 0 obj [1406 0 R/XYZ 0 15259 1] endobj 6535 0 obj [1214 0 R/XYZ 0 15259 1] endobj 6536 0 obj [1486 0 R/XYZ 0 15259 1] endobj 6537 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6538 0 obj [1066 0 R/XYZ 0 15259 1] endobj 6539 0 obj [1486 0 R/XYZ 0 15259 1] endobj 6540 0 obj [1214 0 R/XYZ 0 15259 1] endobj 6541 0 obj [1486 0 R/XYZ 0 15259 1] endobj 6542 0 obj [1025 0 R/XYZ 0 15259 1] endobj 6543 0 obj [384 0 R/XYZ 0 15259 1] endobj 6544 0 obj [388 0 R/XYZ 0 15259 1] endobj 6545 0 obj [394 0 R/XYZ 0 15259 1] endobj 6546 0 obj [549 0 R/XYZ 0 15259 1] endobj 6547 0 obj [551 0 R/XYZ 0 15259 1] endobj 6548 0 obj [558 0 R/XYZ 0 15259 1] endobj 6549 0 obj [574 0 R/XYZ 0 15259 1] endobj 6550 0 obj [577 0 R/XYZ 0 15259 1] endobj 6551 0 obj [586 0 R/XYZ 0 15259 1] endobj 6552 0 obj [591 0 R/XYZ 0 15259 1] endobj 6553 0 obj [596 0 R/XYZ 0 15259 1] endobj 6554 0 obj [600 0 R/XYZ 0 15259 1] endobj 6555 0 obj [656 0 R/XYZ 0 15259 1] endobj 6556 0 obj [658 0 R/XYZ 0 15259 1] endobj 6557 0 obj [1183 0 R/XYZ 0 15259 1] endobj 6558 0 obj [1605 0 R/XYZ 0 15259 1] endobj 6559 0 obj [388 0 R/XYZ 0 15259 1] endobj 6560 0 obj [472 0 R/XYZ 0 15259 1] endobj 6561 0 obj [478 0 R/XYZ 0 15259 1] endobj 6562 0 obj [487 0 R/XYZ 0 15259 1] endobj 6563 0 obj [491 0 R/XYZ 0 15259 1] endobj 6564 0 obj [503 0 R/XYZ 0 15259 1] endobj 6565 0 obj [506 0 R/XYZ 0 15259 1] endobj 6566 0 obj [519 0 R/XYZ 0 15259 1] endobj 6567 0 obj [523 0 R/XYZ 0 15259 1] endobj 6568 0 obj [614 0 R/XYZ 0 15259 1] endobj 6569 0 obj [628 0 R/XYZ 0 15259 1] endobj 6570 0 obj [871 0 R/XYZ 0 15259 1] endobj 6571 0 obj [1037 0 R/XYZ 0 15259 1] endobj 6572 0 obj [1051 0 R/XYZ 0 15259 1] endobj 6573 0 obj [1088 0 R/XYZ 0 15259 1] endobj 6574 0 obj [1091 0 R/XYZ 0 15259 1] endobj 6575 0 obj [1100 0 R/XYZ 0 15259 1] endobj 6576 0 obj [1225 0 R/XYZ 0 15259 1] endobj 6577 0 obj [1323 0 R/XYZ 0 15259 1] endobj 6578 0 obj [1451 0 R/XYZ 0 15259 1] endobj 6579 0 obj [1452 0 R/XYZ 0 15259 1] endobj 6580 0 obj [1454 0 R/XYZ 0 15259 1] endobj 6581 0 obj [1457 0 R/XYZ 0 15259 1] endobj 6582 0 obj [1459 0 R/XYZ 0 15259 1] endobj 6583 0 obj [1465 0 R/XYZ 0 15259 1] endobj 6584 0 obj [1513 0 R/XYZ 0 15259 1] endobj 6585 0 obj [1608 0 R/XYZ 0 15259 1] endobj 6586 0 obj [488 0 R/XYZ 0 15259 1] endobj 6587 0 obj [528 0 R/XYZ 0 15259 1] endobj 6588 0 obj [533 0 R/XYZ 0 15259 1] endobj 6589 0 obj [571 0 R/XYZ 0 15259 1] endobj 6590 0 obj [572 0 R/XYZ 0 15259 1] endobj 6591 0 obj [588 0 R/XYZ 0 15259 1] endobj 6592 0 obj [600 0 R/XYZ 0 15259 1] endobj 6593 0 obj [871 0 R/XYZ 0 15259 1] endobj 6594 0 obj [1037 0 R/XYZ 0 15259 1] endobj 6595 0 obj [1642 0 R/XYZ 0 15259 1] endobj 6596 0 obj [528 0 R/XYZ 0 15259 1] endobj 6597 0 obj [641 0 R/XYZ 0 15259 1] endobj 6598 0 obj [381 0 R/XYZ 0 15259 1] endobj 6599 0 obj [383 0 R/XYZ 0 15259 1] endobj 6600 0 obj [400 0 R/XYZ 0 15259 1] endobj 6601 0 obj [418 0 R/XYZ 0 15259 1] endobj 6602 0 obj [419 0 R/XYZ 0 15259 1] endobj 6603 0 obj [421 0 R/XYZ 0 15259 1] endobj 6604 0 obj [423 0 R/XYZ 0 15259 1] endobj 6605 0 obj [437 0 R/XYZ 0 15259 1] endobj 6606 0 obj [440 0 R/XYZ 0 15259 1] endobj 6607 0 obj [444 0 R/XYZ 0 15259 1] endobj 6608 0 obj [458 0 R/XYZ 0 15259 1] endobj 6609 0 obj [468 0 R/XYZ 0 15259 1] endobj 6610 0 obj [474 0 R/XYZ 0 15259 1] endobj 6611 0 obj [480 0 R/XYZ 0 15259 1] endobj 6612 0 obj [482 0 R/XYZ 0 15259 1] endobj 6613 0 obj [491 0 R/XYZ 0 15259 1] endobj 6614 0 obj [512 0 R/XYZ 0 15259 1] endobj 6615 0 obj [517 0 R/XYZ 0 15259 1] endobj 6616 0 obj [519 0 R/XYZ 0 15259 1] endobj 6617 0 obj [542 0 R/XYZ 0 15259 1] endobj 6618 0 obj [551 0 R/XYZ 0 15259 1] endobj 6619 0 obj [556 0 R/XYZ 0 15259 1] endobj 6620 0 obj [560 0 R/XYZ 0 15259 1] endobj 6621 0 obj [571 0 R/XYZ 0 15259 1] endobj 6622 0 obj [583 0 R/XYZ 0 15259 1] endobj 6623 0 obj [587 0 R/XYZ 0 15259 1] endobj 6624 0 obj [595 0 R/XYZ 0 15259 1] endobj 6625 0 obj [651 0 R/XYZ 0 15259 1] endobj 6626 0 obj [657 0 R/XYZ 0 15259 1] endobj 6627 0 obj [663 0 R/XYZ 0 15259 1] endobj 6628 0 obj [667 0 R/XYZ 0 15259 1] endobj 6629 0 obj [669 0 R/XYZ 0 15259 1] endobj 6630 0 obj [673 0 R/XYZ 0 15259 1] endobj 6631 0 obj [674 0 R/XYZ 0 15259 1] endobj 6632 0 obj [680 0 R/XYZ 0 15259 1] endobj 6633 0 obj [706 0 R/XYZ 0 15259 1] endobj 6634 0 obj [709 0 R/XYZ 0 15259 1] endobj 6635 0 obj [710 0 R/XYZ 0 15259 1] endobj 6636 0 obj [722 0 R/XYZ 0 15259 1] endobj 6637 0 obj [732 0 R/XYZ 0 15259 1] endobj 6638 0 obj [748 0 R/XYZ 0 15259 1] endobj 6639 0 obj [753 0 R/XYZ 0 15259 1] endobj 6640 0 obj [756 0 R/XYZ 0 15259 1] endobj 6641 0 obj [774 0 R/XYZ 0 15259 1] endobj 6642 0 obj [776 0 R/XYZ 0 15259 1] endobj 6643 0 obj [785 0 R/XYZ 0 15259 1] endobj 6644 0 obj [787 0 R/XYZ 0 15259 1] endobj 6645 0 obj [794 0 R/XYZ 0 15259 1] endobj 6646 0 obj [795 0 R/XYZ 0 15259 1] endobj 6647 0 obj [811 0 R/XYZ 0 15259 1] endobj 6648 0 obj [812 0 R/XYZ 0 15259 1] endobj 6649 0 obj [816 0 R/XYZ 0 15259 1] endobj 6650 0 obj [818 0 R/XYZ 0 15259 1] endobj 6651 0 obj [826 0 R/XYZ 0 15259 1] endobj 6652 0 obj [833 0 R/XYZ 0 15259 1] endobj 6653 0 obj [850 0 R/XYZ 0 15259 1] endobj 6654 0 obj [853 0 R/XYZ 0 15259 1] endobj 6655 0 obj [855 0 R/XYZ 0 15259 1] endobj 6656 0 obj [858 0 R/XYZ 0 15259 1] endobj 6657 0 obj [868 0 R/XYZ 0 15259 1] endobj 6658 0 obj [875 0 R/XYZ 0 15259 1] endobj 6659 0 obj [899 0 R/XYZ 0 15259 1] endobj 6660 0 obj [904 0 R/XYZ 0 15259 1] endobj 6661 0 obj [923 0 R/XYZ 0 15259 1] endobj 6662 0 obj [926 0 R/XYZ 0 15259 1] endobj 6663 0 obj [932 0 R/XYZ 0 15259 1] endobj 6664 0 obj [935 0 R/XYZ 0 15259 1] endobj 6665 0 obj [936 0 R/XYZ 0 15259 1] endobj 6666 0 obj [947 0 R/XYZ 0 15259 1] endobj 6667 0 obj [951 0 R/XYZ 0 15259 1] endobj 6668 0 obj [956 0 R/XYZ 0 15259 1] endobj 6669 0 obj [959 0 R/XYZ 0 15259 1] endobj 6670 0 obj [977 0 R/XYZ 0 15259 1] endobj 6671 0 obj [1003 0 R/XYZ 0 15259 1] endobj 6672 0 obj [1004 0 R/XYZ 0 15259 1] endobj 6673 0 obj [1056 0 R/XYZ 0 15259 1] endobj 6674 0 obj [1057 0 R/XYZ 0 15259 1] endobj 6675 0 obj [1087 0 R/XYZ 0 15259 1] endobj 6676 0 obj [1099 0 R/XYZ 0 15259 1] endobj 6677 0 obj [1107 0 R/XYZ 0 15259 1] endobj 6678 0 obj [1132 0 R/XYZ 0 15259 1] endobj 6679 0 obj [1150 0 R/XYZ 0 15259 1] endobj 6680 0 obj [1183 0 R/XYZ 0 15259 1] endobj 6681 0 obj [1186 0 R/XYZ 0 15259 1] endobj 6682 0 obj [1193 0 R/XYZ 0 15259 1] endobj 6683 0 obj [1199 0 R/XYZ 0 15259 1] endobj 6684 0 obj [1203 0 R/XYZ 0 15259 1] endobj 6685 0 obj [1229 0 R/XYZ 0 15259 1] endobj 6686 0 obj [1246 0 R/XYZ 0 15259 1] endobj 6687 0 obj [1251 0 R/XYZ 0 15259 1] endobj 6688 0 obj [1253 0 R/XYZ 0 15259 1] endobj 6689 0 obj [1270 0 R/XYZ 0 15259 1] endobj 6690 0 obj [1282 0 R/XYZ 0 15259 1] endobj 6691 0 obj [1298 0 R/XYZ 0 15259 1] endobj 6692 0 obj [1331 0 R/XYZ 0 15259 1] endobj 6693 0 obj [1335 0 R/XYZ 0 15259 1] endobj 6694 0 obj [1344 0 R/XYZ 0 15259 1] endobj 6695 0 obj [1351 0 R/XYZ 0 15259 1] endobj 6696 0 obj [1387 0 R/XYZ 0 15259 1] endobj 6697 0 obj [1396 0 R/XYZ 0 15259 1] endobj 6698 0 obj [1399 0 R/XYZ 0 15259 1] endobj 6699 0 obj [1400 0 R/XYZ 0 15259 1] endobj 6700 0 obj [1416 0 R/XYZ 0 15259 1] endobj 6701 0 obj [1418 0 R/XYZ 0 15259 1] endobj 6702 0 obj [1425 0 R/XYZ 0 15259 1] endobj 6703 0 obj [1486 0 R/XYZ 0 15259 1] endobj 6704 0 obj [1493 0 R/XYZ 0 15259 1] endobj 6705 0 obj [1611 0 R/XYZ 0 15259 1] endobj 6706 0 obj [1618 0 R/XYZ 0 15259 1] endobj 6707 0 obj [1625 0 R/XYZ 0 15259 1] endobj 6708 0 obj [1630 0 R/XYZ 0 15259 1] endobj 6709 0 obj [1632 0 R/XYZ 0 15259 1] endobj 6710 0 obj [1635 0 R/XYZ 0 15259 1] endobj 6711 0 obj [1636 0 R/XYZ 0 15259 1] endobj 6712 0 obj [374 0 R/XYZ 0 15259 1] endobj 6713 0 obj [361 0 R/XYZ 0 15259 1] endobj 6714 0 obj [362 0 R/XYZ 0 15259 1] endobj 6715 0 obj [367 0 R/XYZ 0 15259 1] endobj 6716 0 obj [368 0 R/XYZ 0 15259 1] endobj 6717 0 obj <> endobj 6718 0 obj [437 0 R/XYZ 0 15259 1] endobj 6719 0 obj [1648 0 R/XYZ 0 15259 1] endobj 6720 0 obj [1606 0 R/XYZ 0 15259 1] endobj 6721 0 obj [468 0 R/XYZ 0 15259 1] endobj 6722 0 obj [471 0 R/XYZ 0 15259 1] endobj 6723 0 obj [513 0 R/XYZ 0 15259 1] endobj 6724 0 obj [708 0 R/XYZ 0 15259 1] endobj 6725 0 obj [386 0 R/XYZ 0 15259 1] endobj 6726 0 obj [616 0 R/XYZ 0 15259 1] endobj 6727 0 obj [623 0 R/XYZ 0 15259 1] endobj 6728 0 obj [688 0 R/XYZ 0 15259 1] endobj 6729 0 obj [692 0 R/XYZ 0 15259 1] endobj 6730 0 obj [694 0 R/XYZ 0 15259 1] endobj 6731 0 obj [699 0 R/XYZ 0 15259 1] endobj 6732 0 obj [714 0 R/XYZ 0 15259 1] endobj 6733 0 obj [716 0 R/XYZ 0 15259 1] endobj 6734 0 obj [727 0 R/XYZ 0 15259 1] endobj 6735 0 obj [743 0 R/XYZ 0 15259 1] endobj 6736 0 obj [744 0 R/XYZ 0 15259 1] endobj 6737 0 obj [761 0 R/XYZ 0 15259 1] endobj 6738 0 obj [803 0 R/XYZ 0 15259 1] endobj 6739 0 obj [870 0 R/XYZ 0 15259 1] endobj 6740 0 obj [873 0 R/XYZ 0 15259 1] endobj 6741 0 obj [906 0 R/XYZ 0 15259 1] endobj 6742 0 obj [907 0 R/XYZ 0 15259 1] endobj 6743 0 obj [1061 0 R/XYZ 0 15259 1] endobj 6744 0 obj [1305 0 R/XYZ 0 15259 1] endobj 6745 0 obj [1307 0 R/XYZ 0 15259 1] endobj 6746 0 obj [1315 0 R/XYZ 0 15259 1] endobj 6747 0 obj [1403 0 R/XYZ 0 15259 1] endobj 6748 0 obj [1414 0 R/XYZ 0 15259 1] endobj 6749 0 obj [1505 0 R/XYZ 0 15259 1] endobj 6750 0 obj [1508 0 R/XYZ 0 15259 1] endobj 6751 0 obj [1511 0 R/XYZ 0 15259 1] endobj 6752 0 obj [1518 0 R/XYZ 0 15259 1] endobj 6753 0 obj [1524 0 R/XYZ 0 15259 1] endobj 6754 0 obj [1527 0 R/XYZ 0 15259 1] endobj 6755 0 obj [1619 0 R/XYZ 0 15259 1] endobj 6756 0 obj [1621 0 R/XYZ 0 15259 1] endobj 6757 0 obj [1639 0 R/XYZ 0 15259 1] endobj 6758 0 obj [1644 0 R/XYZ 0 15259 1] endobj 6759 0 obj [471 0 R/XYZ 0 15259 1] endobj 6760 0 obj [472 0 R/XYZ 0 15259 1] endobj 6761 0 obj [594 0 R/XYZ 0 15259 1] endobj 6762 0 obj [596 0 R/XYZ 0 15259 1] endobj 6763 0 obj [1057 0 R/XYZ 0 15259 1] endobj 6764 0 obj [1362 0 R/XYZ 0 15259 1] endobj 6765 0 obj [595 0 R/XYZ 0 15259 1] endobj 6766 0 obj [596 0 R/XYZ 0 15259 1] endobj 6767 0 obj [829 0 R/XYZ 0 15259 1] endobj 6768 0 obj [1015 0 R/XYZ 0 15259 1] endobj 6769 0 obj [1017 0 R/XYZ 0 15259 1] endobj 6770 0 obj [1019 0 R/XYZ 0 15259 1] endobj 6771 0 obj [706 0 R/XYZ 0 15259 1] endobj 6772 0 obj [407 0 R/XYZ 0 15259 1] endobj 6773 0 obj [410 0 R/XYZ 0 15259 1] endobj 6774 0 obj [460 0 R/XYZ 0 15259 1] endobj 6775 0 obj [592 0 R/XYZ 0 15259 1] endobj 6776 0 obj [609 0 R/XYZ 0 15259 1] endobj 6777 0 obj [649 0 R/XYZ 0 15259 1] endobj 6778 0 obj [704 0 R/XYZ 0 15259 1] endobj 6779 0 obj [708 0 R/XYZ 0 15259 1] endobj 6780 0 obj [712 0 R/XYZ 0 15259 1] endobj 6781 0 obj [870 0 R/XYZ 0 15259 1] endobj 6782 0 obj [873 0 R/XYZ 0 15259 1] endobj 6783 0 obj [955 0 R/XYZ 0 15259 1] endobj 6784 0 obj [965 0 R/XYZ 0 15259 1] endobj 6785 0 obj [966 0 R/XYZ 0 15259 1] endobj 6786 0 obj [969 0 R/XYZ 0 15259 1] endobj 6787 0 obj [971 0 R/XYZ 0 15259 1] endobj 6788 0 obj [1006 0 R/XYZ 0 15259 1] endobj 6789 0 obj [1016 0 R/XYZ 0 15259 1] endobj 6790 0 obj [1031 0 R/XYZ 0 15259 1] endobj 6791 0 obj [1034 0 R/XYZ 0 15259 1] endobj 6792 0 obj [1202 0 R/XYZ 0 15259 1] endobj 6793 0 obj [1256 0 R/XYZ 0 15259 1] endobj 6794 0 obj [1258 0 R/XYZ 0 15259 1] endobj 6795 0 obj [1264 0 R/XYZ 0 15259 1] endobj 6796 0 obj [1296 0 R/XYZ 0 15259 1] endobj 6797 0 obj [1297 0 R/XYZ 0 15259 1] endobj 6798 0 obj [1300 0 R/XYZ 0 15259 1] endobj 6799 0 obj [1301 0 R/XYZ 0 15259 1] endobj 6800 0 obj [1313 0 R/XYZ 0 15259 1] endobj 6801 0 obj [1314 0 R/XYZ 0 15259 1] endobj 6802 0 obj [1318 0 R/XYZ 0 15259 1] endobj 6803 0 obj [1359 0 R/XYZ 0 15259 1] endobj 6804 0 obj [1446 0 R/XYZ 0 15259 1] endobj 6805 0 obj [1447 0 R/XYZ 0 15259 1] endobj 6806 0 obj [1509 0 R/XYZ 0 15259 1] endobj 6807 0 obj [1514 0 R/XYZ 0 15259 1] endobj 6808 0 obj [1522 0 R/XYZ 0 15259 1] endobj 6809 0 obj [1533 0 R/XYZ 0 15259 1] endobj 6810 0 obj [1626 0 R/XYZ 0 15259 1] endobj 6811 0 obj [1628 0 R/XYZ 0 15259 1] endobj 6812 0 obj [704 0 R/XYZ 0 15259 1] endobj 6813 0 obj [1628 0 R/XYZ 0 15259 1] endobj 6814 0 obj [706 0 R/XYZ 0 15259 1] endobj 6815 0 obj [1097 0 R/XYZ 0 15259 1] endobj 6816 0 obj [1205 0 R/XYZ 0 15259 1] endobj 6817 0 obj [1205 0 R/XYZ 0 15259 1] endobj 6818 0 obj [1141 0 R/XYZ 0 15259 1] endobj 6819 0 obj [1204 0 R/XYZ 0 15259 1] endobj 6820 0 obj [1138 0 R/XYZ 0 15259 1] endobj 6821 0 obj [1139 0 R/XYZ 0 15259 1] endobj 6822 0 obj [1138 0 R/XYZ 0 15259 1] endobj 6823 0 obj [1140 0 R/XYZ 0 15259 1] endobj 6824 0 obj [1205 0 R/XYZ 0 15259 1] endobj 6825 0 obj [1138 0 R/XYZ 0 15259 1] endobj 6826 0 obj [1141 0 R/XYZ 0 15259 1] endobj 6827 0 obj [1203 0 R/XYZ 0 15259 1] endobj 6828 0 obj [1205 0 R/XYZ 0 15259 1] endobj 6829 0 obj [419 0 R/XYZ 0 15259 1] endobj 6830 0 obj [499 0 R/XYZ 0 15259 1] endobj 6831 0 obj [558 0 R/XYZ 0 15259 1] endobj 6832 0 obj [564 0 R/XYZ 0 15259 1] endobj 6833 0 obj [1652 0 R/XYZ 0 15259 1] endobj 6834 0 obj [445 0 R/XYZ 0 15259 1] endobj 6835 0 obj [452 0 R/XYZ 0 15259 1] endobj 6836 0 obj [455 0 R/XYZ 0 15259 1] endobj 6837 0 obj [458 0 R/XYZ 0 15259 1] endobj 6838 0 obj [1329 0 R/XYZ 0 15259 1] endobj 6839 0 obj [445 0 R/XYZ 0 15259 1] endobj 6840 0 obj [452 0 R/XYZ 0 15259 1] endobj 6841 0 obj [458 0 R/XYZ 0 15259 1] endobj 6842 0 obj [1328 0 R/XYZ 0 15259 1] endobj 6843 0 obj [458 0 R/XYZ 0 15259 1] endobj 6844 0 obj [442 0 R/XYZ 0 15259 1] endobj 6845 0 obj [1025 0 R/XYZ 0 15259 1] endobj 6846 0 obj [499 0 R/XYZ 0 15259 1] endobj 6847 0 obj [558 0 R/XYZ 0 15259 1] endobj 6848 0 obj [564 0 R/XYZ 0 15259 1] endobj 6849 0 obj [1652 0 R/XYZ 0 15259 1] endobj 6850 0 obj [429 0 R/XYZ 0 15259 1] endobj 6851 0 obj [432 0 R/XYZ 0 15259 1] endobj 6852 0 obj [499 0 R/XYZ 0 15259 1] endobj 6853 0 obj [558 0 R/XYZ 0 15259 1] endobj 6854 0 obj [564 0 R/XYZ 0 15259 1] endobj 6855 0 obj [734 0 R/XYZ 0 15259 1] endobj 6856 0 obj [743 0 R/XYZ 0 15259 1] endobj 6857 0 obj [1137 0 R/XYZ 0 15259 1] endobj 6858 0 obj [1652 0 R/XYZ 0 15259 1] endobj 6859 0 obj [661 0 R/XYZ 0 15259 1] endobj 6860 0 obj [1331 0 R/XYZ 0 15259 1] endobj 6861 0 obj [1344 0 R/XYZ 0 15259 1] endobj 6862 0 obj [1348 0 R/XYZ 0 15259 1] endobj 6863 0 obj [623 0 R/XYZ 0 15259 1] endobj 6864 0 obj [1142 0 R/XYZ 0 15259 1] endobj 6865 0 obj [1144 0 R/XYZ 0 15259 1] endobj 6866 0 obj [1616 0 R/XYZ 0 15259 1] endobj 6867 0 obj [704 0 R/XYZ 0 15259 1] endobj 6868 0 obj [708 0 R/XYZ 0 15259 1] endobj 6869 0 obj [699 0 R/XYZ 0 15259 1] endobj 6870 0 obj [702 0 R/XYZ 0 15259 1] endobj 6871 0 obj [706 0 R/XYZ 0 15259 1] endobj 6872 0 obj [1150 0 R/XYZ 0 15259 1] endobj 6873 0 obj [1198 0 R/XYZ 0 15259 1] endobj 6874 0 obj [1205 0 R/XYZ 0 15259 1] endobj 6875 0 obj [1137 0 R/XYZ 0 15259 1] endobj 6876 0 obj [1144 0 R/XYZ 0 15259 1] endobj 6877 0 obj [646 0 R/XYZ 0 15259 1] endobj 6878 0 obj [647 0 R/XYZ 0 15259 1] endobj 6879 0 obj [1254 0 R/XYZ 0 15259 1] endobj 6880 0 obj [1256 0 R/XYZ 0 15259 1] endobj 6881 0 obj [1258 0 R/XYZ 0 15259 1] endobj 6882 0 obj [1261 0 R/XYZ 0 15259 1] endobj 6883 0 obj [1264 0 R/XYZ 0 15259 1] endobj 6884 0 obj [1650 0 R/XYZ 0 15259 1] endobj 6885 0 obj [1150 0 R/XYZ 0 15259 1] endobj 6886 0 obj [1186 0 R/XYZ 0 15259 1] endobj 6887 0 obj [1191 0 R/XYZ 0 15259 1] endobj 6888 0 obj [1191 0 R/XYZ 0 15259 1] endobj 6889 0 obj [814 0 R/XYZ 0 15259 1] endobj 6890 0 obj [1346 0 R/XYZ 0 15259 1] endobj 6891 0 obj [1368 0 R/XYZ 0 15259 1] endobj 6892 0 obj [1369 0 R/XYZ 0 15259 1] endobj 6893 0 obj [1373 0 R/XYZ 0 15259 1] endobj 6894 0 obj [1381 0 R/XYZ 0 15259 1] endobj 6895 0 obj [1643 0 R/XYZ 0 15259 1] endobj 6896 0 obj [471 0 R/XYZ 0 15259 1] endobj 6897 0 obj [472 0 R/XYZ 0 15259 1] endobj 6898 0 obj [594 0 R/XYZ 0 15259 1] endobj 6899 0 obj [596 0 R/XYZ 0 15259 1] endobj 6900 0 obj [1057 0 R/XYZ 0 15259 1] endobj 6901 0 obj [1362 0 R/XYZ 0 15259 1] endobj 6902 0 obj [595 0 R/XYZ 0 15259 1] endobj 6903 0 obj [596 0 R/XYZ 0 15259 1] endobj 6904 0 obj [540 0 R/XYZ 0 15259 1] endobj 6905 0 obj [542 0 R/XYZ 0 15259 1] endobj 6906 0 obj [570 0 R/XYZ 0 15259 1] endobj 6907 0 obj [572 0 R/XYZ 0 15259 1] endobj 6908 0 obj [577 0 R/XYZ 0 15259 1] endobj 6909 0 obj [583 0 R/XYZ 0 15259 1] endobj 6910 0 obj [585 0 R/XYZ 0 15259 1] endobj 6911 0 obj [871 0 R/XYZ 0 15259 1] endobj 6912 0 obj [1037 0 R/XYZ 0 15259 1] endobj 6913 0 obj [1612 0 R/XYZ 0 15259 1] endobj 6914 0 obj [583 0 R/XYZ 0 15259 1] endobj 6915 0 obj [583 0 R/XYZ 0 15259 1] endobj 6916 0 obj [583 0 R/XYZ 0 15259 1] endobj 6917 0 obj [585 0 R/XYZ 0 15259 1] endobj 6918 0 obj [871 0 R/XYZ 0 15259 1] endobj 6919 0 obj [1037 0 R/XYZ 0 15259 1] endobj 6920 0 obj [583 0 R/XYZ 0 15259 1] endobj 6921 0 obj [640 0 R/XYZ 0 15259 1] endobj 6922 0 obj [645 0 R/XYZ 0 15259 1] endobj 6923 0 obj [1037 0 R/XYZ 0 15259 1] endobj 6924 0 obj [642 0 R/XYZ 0 15259 1] endobj 6925 0 obj [570 0 R/XYZ 0 15259 1] endobj 6926 0 obj [571 0 R/XYZ 0 15259 1] endobj 6927 0 obj [577 0 R/XYZ 0 15259 1] endobj 6928 0 obj [871 0 R/XYZ 0 15259 1] endobj 6929 0 obj [1037 0 R/XYZ 0 15259 1] endobj 6930 0 obj [1172 0 R/XYZ 0 15259 1] endobj 6931 0 obj [1637 0 R/XYZ 0 15259 1] endobj 6932 0 obj [1172 0 R/XYZ 0 15259 1] endobj 6933 0 obj [1172 0 R/XYZ 0 15259 1] endobj 6934 0 obj [871 0 R/XYZ 0 15259 1] endobj 6935 0 obj [1037 0 R/XYZ 0 15259 1] endobj 6936 0 obj [1172 0 R/XYZ 0 15259 1] endobj 6937 0 obj [1172 0 R/XYZ 0 15259 1] endobj 6938 0 obj [570 0 R/XYZ 0 15259 1] endobj 6939 0 obj [571 0 R/XYZ 0 15259 1] endobj 6940 0 obj [583 0 R/XYZ 0 15259 1] endobj 6941 0 obj [871 0 R/XYZ 0 15259 1] endobj 6942 0 obj [1037 0 R/XYZ 0 15259 1] endobj 6943 0 obj [1172 0 R/XYZ 0 15259 1] endobj 6944 0 obj [871 0 R/XYZ 0 15259 1] endobj 6945 0 obj [1037 0 R/XYZ 0 15259 1] endobj 6946 0 obj [1172 0 R/XYZ 0 15259 1] endobj 6947 0 obj [640 0 R/XYZ 0 15259 1] endobj 6948 0 obj [645 0 R/XYZ 0 15259 1] endobj 6949 0 obj [1037 0 R/XYZ 0 15259 1] endobj 6950 0 obj [642 0 R/XYZ 0 15259 1] endobj 6951 0 obj [677 0 R/XYZ 0 15259 1] endobj 6952 0 obj [679 0 R/XYZ 0 15259 1] endobj 6953 0 obj [682 0 R/XYZ 0 15259 1] endobj 6954 0 obj [1037 0 R/XYZ 0 15259 1] endobj 6955 0 obj [679 0 R/XYZ 0 15259 1] endobj 6956 0 obj [721 0 R/XYZ 0 15259 1] endobj 6957 0 obj [649 0 R/XYZ 0 15259 1] endobj 6958 0 obj [721 0 R/XYZ 0 15259 1] endobj 6959 0 obj [1006 0 R/XYZ 0 15259 1] endobj 6960 0 obj [1082 0 R/XYZ 0 15259 1] endobj 6961 0 obj [1137 0 R/XYZ 0 15259 1] endobj 6962 0 obj [1139 0 R/XYZ 0 15259 1] endobj 6963 0 obj [1141 0 R/XYZ 0 15259 1] endobj 6964 0 obj [1145 0 R/XYZ 0 15259 1] endobj 6965 0 obj [1203 0 R/XYZ 0 15259 1] endobj 6966 0 obj [1205 0 R/XYZ 0 15259 1] endobj 6967 0 obj [1217 0 R/XYZ 0 15259 1] endobj 6968 0 obj [1225 0 R/XYZ 0 15259 1] endobj 6969 0 obj [1650 0 R/XYZ 0 15259 1] endobj 6970 0 obj [1137 0 R/XYZ 0 15259 1] endobj 6971 0 obj [808 0 R/XYZ 0 15259 1] endobj 6972 0 obj [810 0 R/XYZ 0 15259 1] endobj 6973 0 obj [824 0 R/XYZ 0 15259 1] endobj 6974 0 obj [854 0 R/XYZ 0 15259 1] endobj 6975 0 obj [867 0 R/XYZ 0 15259 1] endobj 6976 0 obj [1082 0 R/XYZ 0 15259 1] endobj 6977 0 obj [1113 0 R/XYZ 0 15259 1] endobj 6978 0 obj [1327 0 R/XYZ 0 15259 1] endobj 6979 0 obj [1330 0 R/XYZ 0 15259 1] endobj 6980 0 obj [1331 0 R/XYZ 0 15259 1] endobj 6981 0 obj [1344 0 R/XYZ 0 15259 1] endobj 6982 0 obj [1346 0 R/XYZ 0 15259 1] endobj 6983 0 obj [1348 0 R/XYZ 0 15259 1] endobj 6984 0 obj [1353 0 R/XYZ 0 15259 1] endobj 6985 0 obj [472 0 R/XYZ 0 15259 1] endobj 6986 0 obj [421 0 R/XYZ 0 15259 1] endobj 6987 0 obj [1137 0 R/XYZ 0 15259 1] endobj 6988 0 obj [1650 0 R/XYZ 0 15259 1] endobj 6989 0 obj [1160 0 R/XYZ 0 15259 1] endobj 6990 0 obj [1430 0 R/XYZ 0 15259 1] endobj 6991 0 obj [661 0 R/XYZ 0 15259 1] endobj 6992 0 obj [1652 0 R/XYZ 0 15259 1] endobj 6993 0 obj [542 0 R/XYZ 0 15259 1] endobj 6994 0 obj [583 0 R/XYZ 0 15259 1] endobj 6995 0 obj [596 0 R/XYZ 0 15259 1] endobj 6996 0 obj [1098 0 R/XYZ 0 15259 1] endobj 6997 0 obj [1150 0 R/XYZ 0 15259 1] endobj 6998 0 obj [1139 0 R/XYZ 0 15259 1] endobj 6999 0 obj [1139 0 R/XYZ 0 15259 1] endobj 7000 0 obj [1036 0 R/XYZ 0 15259 1] endobj 7001 0 obj [1036 0 R/XYZ 0 15259 1] endobj 7002 0 obj [1036 0 R/XYZ 0 15259 1] endobj 7003 0 obj [1036 0 R/XYZ 0 15259 1] endobj 7004 0 obj [423 0 R/XYZ 0 15259 1] endobj 7005 0 obj [1025 0 R/XYZ 0 15259 1] endobj 7006 0 obj [1140 0 R/XYZ 0 15259 1] endobj 7007 0 obj [1251 0 R/XYZ 0 15259 1] endobj 7008 0 obj [1180 0 R/XYZ 0 15259 1] endobj 7009 0 obj [1183 0 R/XYZ 0 15259 1] endobj 7010 0 obj [1187 0 R/XYZ 0 15259 1] endobj 7011 0 obj [1187 0 R/XYZ 0 15259 1] endobj 7012 0 obj [1253 0 R/XYZ 0 15259 1] endobj 7013 0 obj [1251 0 R/XYZ 0 15259 1] endobj 7014 0 obj [1251 0 R/XYZ 0 15259 1] endobj 7015 0 obj [1251 0 R/XYZ 0 15259 1] endobj 7016 0 obj [362 0 R/XYZ 0 15259 1] endobj 7017 0 obj [367 0 R/XYZ 0 15259 1] endobj 7018 0 obj [368 0 R/XYZ 0 15259 1] endobj 7019 0 obj [368 0 R/XYZ 0 15259 1] endobj 7020 0 obj [359 0 R/XYZ 0 15259 1] endobj 7021 0 obj [368 0 R/XYZ 0 15259 1] endobj 7022 0 obj [374 0 R/XYZ 0 15259 1] endobj 7023 0 obj [374 0 R/XYZ 0 15259 1] endobj 7024 0 obj <> endobj 7025 0 obj [1251 0 R/XYZ 0 15259 1] endobj 7026 0 obj [1253 0 R/XYZ 0 15259 1] endobj 7027 0 obj [1178 0 R/XYZ 0 15259 1] endobj 7028 0 obj [1187 0 R/XYZ 0 15259 1] endobj 7029 0 obj [1279 0 R/XYZ 0 15259 1] endobj 7030 0 obj [1280 0 R/XYZ 0 15259 1] endobj 7031 0 obj [1641 0 R/XYZ 0 15259 1] endobj 7032 0 obj [1187 0 R/XYZ 0 15259 1] endobj 7033 0 obj [1251 0 R/XYZ 0 15259 1] endobj 7034 0 obj [1253 0 R/XYZ 0 15259 1] endobj 7035 0 obj [1294 0 R/XYZ 0 15259 1] endobj 7036 0 obj [1296 0 R/XYZ 0 15259 1] endobj 7037 0 obj [1297 0 R/XYZ 0 15259 1] endobj 7038 0 obj [1299 0 R/XYZ 0 15259 1] endobj 7039 0 obj [1301 0 R/XYZ 0 15259 1] endobj 7040 0 obj [1251 0 R/XYZ 0 15259 1] endobj 7041 0 obj [1189 0 R/XYZ 0 15259 1] endobj 7042 0 obj [1278 0 R/XYZ 0 15259 1] endobj 7043 0 obj [1641 0 R/XYZ 0 15259 1] endobj 7044 0 obj [1251 0 R/XYZ 0 15259 1] endobj 7045 0 obj [1251 0 R/XYZ 0 15259 1] endobj 7046 0 obj [1253 0 R/XYZ 0 15259 1] endobj 7047 0 obj [1268 0 R/XYZ 0 15259 1] endobj 7048 0 obj [1252 0 R/XYZ 0 15259 1] endobj 7049 0 obj [1036 0 R/XYZ 0 15259 1] endobj 7050 0 obj [1180 0 R/XYZ 0 15259 1] endobj 7051 0 obj [1183 0 R/XYZ 0 15259 1] endobj 7052 0 obj [1186 0 R/XYZ 0 15259 1] endobj 7053 0 obj [1189 0 R/XYZ 0 15259 1] endobj 7054 0 obj [1214 0 R/XYZ 0 15259 1] endobj 7055 0 obj [1278 0 R/XYZ 0 15259 1] endobj 7056 0 obj [1641 0 R/XYZ 0 15259 1] endobj 7057 0 obj [1189 0 R/XYZ 0 15259 1] endobj 7058 0 obj [1036 0 R/XYZ 0 15259 1] endobj 7059 0 obj [1180 0 R/XYZ 0 15259 1] endobj 7060 0 obj [1184 0 R/XYZ 0 15259 1] endobj 7061 0 obj [1186 0 R/XYZ 0 15259 1] endobj 7062 0 obj [1188 0 R/XYZ 0 15259 1] endobj 7063 0 obj [1191 0 R/XYZ 0 15259 1] endobj 7064 0 obj [1280 0 R/XYZ 0 15259 1] endobj 7065 0 obj [1188 0 R/XYZ 0 15259 1] endobj 7066 0 obj [1252 0 R/XYZ 0 15259 1] endobj 7067 0 obj [1253 0 R/XYZ 0 15259 1] endobj 7068 0 obj [709 0 R/XYZ 0 15259 1] endobj 7069 0 obj [1252 0 R/XYZ 0 15259 1] endobj 7070 0 obj [1140 0 R/XYZ 0 15259 1] endobj 7071 0 obj [1186 0 R/XYZ 0 15259 1] endobj 7072 0 obj [1187 0 R/XYZ 0 15259 1] endobj 7073 0 obj [1189 0 R/XYZ 0 15259 1] endobj 7074 0 obj [1140 0 R/XYZ 0 15259 1] endobj 7075 0 obj [1142 0 R/XYZ 0 15259 1] endobj 7076 0 obj [1036 0 R/XYZ 0 15259 1] endobj 7077 0 obj [1140 0 R/XYZ 0 15259 1] endobj 7078 0 obj [1142 0 R/XYZ 0 15259 1] endobj 7079 0 obj [1140 0 R/XYZ 0 15259 1] endobj 7080 0 obj [1379 0 R/XYZ 0 15259 1] endobj 7081 0 obj [1654 0 R/XYZ 0 15259 1] endobj 7082 0 obj [1103 0 R/XYZ 0 15259 1] endobj 7083 0 obj [1115 0 R/XYZ 0 15259 1] endobj 7084 0 obj [1140 0 R/XYZ 0 15259 1] endobj 7085 0 obj [1141 0 R/XYZ 0 15259 1] endobj 7086 0 obj [1140 0 R/XYZ 0 15259 1] endobj 7087 0 obj [1009 0 R/XYZ 0 15259 1] endobj 7088 0 obj [1019 0 R/XYZ 0 15259 1] endobj 7089 0 obj [1198 0 R/XYZ 0 15259 1] endobj 7090 0 obj [964 0 R/XYZ 0 15259 1] endobj 7091 0 obj [977 0 R/XYZ 0 15259 1] endobj 7092 0 obj [562 0 R/XYZ 0 15259 1] endobj 7093 0 obj [588 0 R/XYZ 0 15259 1] endobj 7094 0 obj [600 0 R/XYZ 0 15259 1] endobj 7095 0 obj [1150 0 R/XYZ 0 15259 1] endobj 7096 0 obj [444 0 R/XYZ 0 15259 1] endobj 7097 0 obj [445 0 R/XYZ 0 15259 1] endobj 7098 0 obj [452 0 R/XYZ 0 15259 1] endobj 7099 0 obj [458 0 R/XYZ 0 15259 1] endobj 7100 0 obj [465 0 R/XYZ 0 15259 1] endobj 7101 0 obj [483 0 R/XYZ 0 15259 1] endobj 7102 0 obj [586 0 R/XYZ 0 15259 1] endobj 7103 0 obj [926 0 R/XYZ 0 15259 1] endobj 7104 0 obj [928 0 R/XYZ 0 15259 1] endobj 7105 0 obj [1016 0 R/XYZ 0 15259 1] endobj 7106 0 obj [1019 0 R/XYZ 0 15259 1] endobj 7107 0 obj [1036 0 R/XYZ 0 15259 1] endobj 7108 0 obj [1051 0 R/XYZ 0 15259 1] endobj 7109 0 obj [1531 0 R/XYZ 0 15259 1] endobj 7110 0 obj [1634 0 R/XYZ 0 15259 1] endobj 7111 0 obj [927 0 R/XYZ 0 15259 1] endobj 7112 0 obj [776 0 R/XYZ 0 15259 1] endobj 7113 0 obj [1330 0 R/XYZ 0 15259 1] endobj 7114 0 obj [1425 0 R/XYZ 0 15259 1] endobj 7115 0 obj [423 0 R/XYZ 0 15259 1] endobj 7116 0 obj [1652 0 R/XYZ 0 15259 1] endobj 7117 0 obj [421 0 R/XYZ 0 15259 1] endobj 7118 0 obj [671 0 R/XYZ 0 15259 1] endobj 7119 0 obj [1235 0 R/XYZ 0 15259 1] endobj 7120 0 obj [421 0 R/XYZ 0 15259 1] endobj 7121 0 obj [421 0 R/XYZ 0 15259 1] endobj 7122 0 obj [1231 0 R/XYZ 0 15259 1] endobj 7123 0 obj [1244 0 R/XYZ 0 15259 1] endobj 7124 0 obj [421 0 R/XYZ 0 15259 1] endobj 7125 0 obj [814 0 R/XYZ 0 15259 1] endobj 7126 0 obj [818 0 R/XYZ 0 15259 1] endobj 7127 0 obj [1480 0 R/XYZ 0 15259 1] endobj 7128 0 obj [1538 0 R/XYZ 0 15259 1] endobj 7129 0 obj [499 0 R/XYZ 0 15259 1] endobj 7130 0 obj [558 0 R/XYZ 0 15259 1] endobj 7131 0 obj [564 0 R/XYZ 0 15259 1] endobj 7132 0 obj [1652 0 R/XYZ 0 15259 1] endobj 7133 0 obj [665 0 R/XYZ 0 15259 1] endobj 7134 0 obj [1112 0 R/XYZ 0 15259 1] endobj 7135 0 obj [460 0 R/XYZ 0 15259 1] endobj 7136 0 obj [501 0 R/XYZ 0 15259 1] endobj 7137 0 obj [1475 0 R/XYZ 0 15259 1] endobj 7138 0 obj [572 0 R/XYZ 0 15259 1] endobj 7139 0 obj [586 0 R/XYZ 0 15259 1] endobj 7140 0 obj [587 0 R/XYZ 0 15259 1] endobj 7141 0 obj [591 0 R/XYZ 0 15259 1] endobj 7142 0 obj [1025 0 R/XYZ 0 15259 1] endobj 7143 0 obj [1037 0 R/XYZ 0 15259 1] endobj 7144 0 obj [1610 0 R/XYZ 0 15259 1] endobj 7145 0 obj [445 0 R/XYZ 0 15259 1] endobj 7146 0 obj [451 0 R/XYZ 0 15259 1] endobj 7147 0 obj [458 0 R/XYZ 0 15259 1] endobj 7148 0 obj [665 0 R/XYZ 0 15259 1] endobj 7149 0 obj [667 0 R/XYZ 0 15259 1] endobj 7150 0 obj [794 0 R/XYZ 0 15259 1] endobj 7151 0 obj [795 0 R/XYZ 0 15259 1] endobj 7152 0 obj [794 0 R/XYZ 0 15259 1] endobj 7153 0 obj [764 0 R/XYZ 0 15259 1] endobj 7154 0 obj [794 0 R/XYZ 0 15259 1] endobj 7155 0 obj [795 0 R/XYZ 0 15259 1] endobj 7156 0 obj [797 0 R/XYZ 0 15259 1] endobj 7157 0 obj [1425 0 R/XYZ 0 15259 1] endobj 7158 0 obj [1433 0 R/XYZ 0 15259 1] endobj 7159 0 obj [1650 0 R/XYZ 0 15259 1] endobj 7160 0 obj [669 0 R/XYZ 0 15259 1] endobj 7161 0 obj [669 0 R/XYZ 0 15259 1] endobj 7162 0 obj [1335 0 R/XYZ 0 15259 1] endobj 7163 0 obj [1337 0 R/XYZ 0 15259 1] endobj 7164 0 obj [1338 0 R/XYZ 0 15259 1] endobj 7165 0 obj [1346 0 R/XYZ 0 15259 1] endobj 7166 0 obj [1364 0 R/XYZ 0 15259 1] endobj 7167 0 obj [1368 0 R/XYZ 0 15259 1] endobj 7168 0 obj [1348 0 R/XYZ 0 15259 1] endobj 7169 0 obj [1348 0 R/XYZ 0 15259 1] endobj 7170 0 obj [445 0 R/XYZ 0 15259 1] endobj 7171 0 obj [1332 0 R/XYZ 0 15259 1] endobj 7172 0 obj [1343 0 R/XYZ 0 15259 1] endobj 7173 0 obj [1348 0 R/XYZ 0 15259 1] endobj 7174 0 obj [472 0 R/XYZ 0 15259 1] endobj 7175 0 obj [561 0 R/XYZ 0 15259 1] endobj 7176 0 obj [1025 0 R/XYZ 0 15259 1] endobj 7177 0 obj [448 0 R/XYZ 0 15259 1] endobj 7178 0 obj [445 0 R/XYZ 0 15259 1] endobj 7179 0 obj [445 0 R/XYZ 0 15259 1] endobj 7180 0 obj [709 0 R/XYZ 0 15259 1] endobj 7181 0 obj [445 0 R/XYZ 0 15259 1] endobj 7182 0 obj [421 0 R/XYZ 0 15259 1] endobj 7183 0 obj [657 0 R/XYZ 0 15259 1] endobj 7184 0 obj [658 0 R/XYZ 0 15259 1] endobj 7185 0 obj [460 0 R/XYZ 0 15259 1] endobj 7186 0 obj [1332 0 R/XYZ 0 15259 1] endobj 7187 0 obj [1348 0 R/XYZ 0 15259 1] endobj 7188 0 obj [1332 0 R/XYZ 0 15259 1] endobj 7189 0 obj [1339 0 R/XYZ 0 15259 1] endobj 7190 0 obj [1348 0 R/XYZ 0 15259 1] endobj 7191 0 obj [658 0 R/XYZ 0 15259 1] endobj 7192 0 obj [1082 0 R/XYZ 0 15259 1] endobj 7193 0 obj [1085 0 R/XYZ 0 15259 1] endobj 7194 0 obj [1247 0 R/XYZ 0 15259 1] endobj 7195 0 obj [1248 0 R/XYZ 0 15259 1] endobj 7196 0 obj [1270 0 R/XYZ 0 15259 1] endobj 7197 0 obj [1368 0 R/XYZ 0 15259 1] endobj 7198 0 obj [1376 0 R/XYZ 0 15259 1] endobj 7199 0 obj [399 0 R/XYZ 0 15259 1] endobj 7200 0 obj [712 0 R/XYZ 0 15259 1] endobj 7201 0 obj [720 0 R/XYZ 0 15259 1] endobj 7202 0 obj [904 0 R/XYZ 0 15259 1] endobj 7203 0 obj [907 0 R/XYZ 0 15259 1] endobj 7204 0 obj [951 0 R/XYZ 0 15259 1] endobj 7205 0 obj [1229 0 R/XYZ 0 15259 1] endobj 7206 0 obj [1505 0 R/XYZ 0 15259 1] endobj 7207 0 obj [1519 0 R/XYZ 0 15259 1] endobj 7208 0 obj [1536 0 R/XYZ 0 15259 1] endobj 7209 0 obj [1229 0 R/XYZ 0 15259 1] endobj 7210 0 obj [1229 0 R/XYZ 0 15259 1] endobj 7211 0 obj [1242 0 R/XYZ 0 15259 1] endobj 7212 0 obj [1536 0 R/XYZ 0 15259 1] endobj 7213 0 obj [1229 0 R/XYZ 0 15259 1] endobj 7214 0 obj [1517 0 R/XYZ 0 15259 1] endobj 7215 0 obj [850 0 R/XYZ 0 15259 1] endobj 7216 0 obj [880 0 R/XYZ 0 15259 1] endobj 7217 0 obj [448 0 R/XYZ 0 15259 1] endobj 7218 0 obj [794 0 R/XYZ 0 15259 1] endobj 7219 0 obj [795 0 R/XYZ 0 15259 1] endobj 7220 0 obj [512 0 R/XYZ 0 15259 1] endobj 7221 0 obj [513 0 R/XYZ 0 15259 1] endobj 7222 0 obj [481 0 R/XYZ 0 15259 1] endobj 7223 0 obj [487 0 R/XYZ 0 15259 1] endobj 7224 0 obj [496 0 R/XYZ 0 15259 1] endobj 7225 0 obj [503 0 R/XYZ 0 15259 1] endobj 7226 0 obj [504 0 R/XYZ 0 15259 1] endobj 7227 0 obj [512 0 R/XYZ 0 15259 1] endobj 7228 0 obj [513 0 R/XYZ 0 15259 1] endobj 7229 0 obj [614 0 R/XYZ 0 15259 1] endobj 7230 0 obj [1099 0 R/XYZ 0 15259 1] endobj 7231 0 obj [1120 0 R/XYZ 0 15259 1] endobj 7232 0 obj [374 0 R/XYZ 0 15259 1] endobj 7233 0 obj [363 0 R/XYZ 0 15259 1] endobj 7234 0 obj <> endobj 7235 0 obj [512 0 R/XYZ 0 15259 1] endobj 7236 0 obj [1120 0 R/XYZ 0 15259 1] endobj 7237 0 obj [1270 0 R/XYZ 0 15259 1] endobj 7238 0 obj [481 0 R/XYZ 0 15259 1] endobj 7239 0 obj [481 0 R/XYZ 0 15259 1] endobj 7240 0 obj [487 0 R/XYZ 0 15259 1] endobj 7241 0 obj [506 0 R/XYZ 0 15259 1] endobj 7242 0 obj [520 0 R/XYZ 0 15259 1] endobj 7243 0 obj [571 0 R/XYZ 0 15259 1] endobj 7244 0 obj [577 0 R/XYZ 0 15259 1] endobj 7245 0 obj [1070 0 R/XYZ 0 15259 1] endobj 7246 0 obj [1098 0 R/XYZ 0 15259 1] endobj 7247 0 obj [1100 0 R/XYZ 0 15259 1] endobj 7248 0 obj [1126 0 R/XYZ 0 15259 1] endobj 7249 0 obj [1127 0 R/XYZ 0 15259 1] endobj 7250 0 obj [1141 0 R/XYZ 0 15259 1] endobj 7251 0 obj [1180 0 R/XYZ 0 15259 1] endobj 7252 0 obj [1207 0 R/XYZ 0 15259 1] endobj 7253 0 obj [1208 0 R/XYZ 0 15259 1] endobj 7254 0 obj [1212 0 R/XYZ 0 15259 1] endobj 7255 0 obj [1431 0 R/XYZ 0 15259 1] endobj 7256 0 obj [1444 0 R/XYZ 0 15259 1] endobj 7257 0 obj [1512 0 R/XYZ 0 15259 1] endobj 7258 0 obj [1630 0 R/XYZ 0 15259 1] endobj 7259 0 obj [1332 0 R/XYZ 0 15259 1] endobj 7260 0 obj [1348 0 R/XYZ 0 15259 1] endobj 7261 0 obj [490 0 R/XYZ 0 15259 1] endobj 7262 0 obj [616 0 R/XYZ 0 15259 1] endobj 7263 0 obj [481 0 R/XYZ 0 15259 1] endobj 7264 0 obj [482 0 R/XYZ 0 15259 1] endobj 7265 0 obj [512 0 R/XYZ 0 15259 1] endobj 7266 0 obj [1122 0 R/XYZ 0 15259 1] endobj 7267 0 obj [481 0 R/XYZ 0 15259 1] endobj 7268 0 obj [506 0 R/XYZ 0 15259 1] endobj 7269 0 obj [571 0 R/XYZ 0 15259 1] endobj 7270 0 obj [1180 0 R/XYZ 0 15259 1] endobj 7271 0 obj [1208 0 R/XYZ 0 15259 1] endobj 7272 0 obj [1212 0 R/XYZ 0 15259 1] endobj 7273 0 obj [512 0 R/XYZ 0 15259 1] endobj 7274 0 obj [1332 0 R/XYZ 0 15259 1] endobj 7275 0 obj [1343 0 R/XYZ 0 15259 1] endobj 7276 0 obj [1348 0 R/XYZ 0 15259 1] endobj 7277 0 obj [472 0 R/XYZ 0 15259 1] endobj 7278 0 obj [488 0 R/XYZ 0 15259 1] endobj 7279 0 obj [491 0 R/XYZ 0 15259 1] endobj 7280 0 obj [627 0 R/XYZ 0 15259 1] endobj 7281 0 obj [628 0 R/XYZ 0 15259 1] endobj 7282 0 obj [1458 0 R/XYZ 0 15259 1] endobj 7283 0 obj [1332 0 R/XYZ 0 15259 1] endobj 7284 0 obj [1343 0 R/XYZ 0 15259 1] endobj 7285 0 obj [1348 0 R/XYZ 0 15259 1] endobj 7286 0 obj [482 0 R/XYZ 0 15259 1] endobj 7287 0 obj [512 0 R/XYZ 0 15259 1] endobj 7288 0 obj [513 0 R/XYZ 0 15259 1] endobj 7289 0 obj [1332 0 R/XYZ 0 15259 1] endobj 7290 0 obj [1348 0 R/XYZ 0 15259 1] endobj 7291 0 obj [1653 0 R/XYZ 0 15259 1] endobj 7292 0 obj [440 0 R/XYZ 0 15259 1] endobj 7293 0 obj [481 0 R/XYZ 0 15259 1] endobj 7294 0 obj [1083 0 R/XYZ 0 15259 1] endobj 7295 0 obj [1332 0 R/XYZ 0 15259 1] endobj 7296 0 obj [1349 0 R/XYZ 0 15259 1] endobj 7297 0 obj [1405 0 R/XYZ 0 15259 1] endobj 7298 0 obj [1413 0 R/XYZ 0 15259 1] endobj 7299 0 obj [1332 0 R/XYZ 0 15259 1] endobj 7300 0 obj [1349 0 R/XYZ 0 15259 1] endobj 7301 0 obj [1332 0 R/XYZ 0 15259 1] endobj 7302 0 obj [1349 0 R/XYZ 0 15259 1] endobj 7303 0 obj [481 0 R/XYZ 0 15259 1] endobj 7304 0 obj [824 0 R/XYZ 0 15259 1] endobj 7305 0 obj [826 0 R/XYZ 0 15259 1] endobj 7306 0 obj [1059 0 R/XYZ 0 15259 1] endobj 7307 0 obj [1395 0 R/XYZ 0 15259 1] endobj 7308 0 obj [1396 0 R/XYZ 0 15259 1] endobj 7309 0 obj [1399 0 R/XYZ 0 15259 1] endobj 7310 0 obj [1332 0 R/XYZ 0 15259 1] endobj 7311 0 obj [1349 0 R/XYZ 0 15259 1] endobj 7312 0 obj [481 0 R/XYZ 0 15259 1] endobj 7313 0 obj [440 0 R/XYZ 0 15259 1] endobj 7314 0 obj [481 0 R/XYZ 0 15259 1] endobj 7315 0 obj [512 0 R/XYZ 0 15259 1] endobj 7316 0 obj [513 0 R/XYZ 0 15259 1] endobj 7317 0 obj [1083 0 R/XYZ 0 15259 1] endobj 7318 0 obj [1084 0 R/XYZ 0 15259 1] endobj 7319 0 obj [1098 0 R/XYZ 0 15259 1] endobj 7320 0 obj [1100 0 R/XYZ 0 15259 1] endobj 7321 0 obj [1172 0 R/XYZ 0 15259 1] endobj 7322 0 obj [1251 0 R/XYZ 0 15259 1] endobj 7323 0 obj [1252 0 R/XYZ 0 15259 1] endobj 7324 0 obj [1634 0 R/XYZ 0 15259 1] endobj 7325 0 obj [1637 0 R/XYZ 0 15259 1] endobj 7326 0 obj [388 0 R/XYZ 0 15259 1] endobj 7327 0 obj [396 0 R/XYZ 0 15259 1] endobj 7328 0 obj [478 0 R/XYZ 0 15259 1] endobj 7329 0 obj [487 0 R/XYZ 0 15259 1] endobj 7330 0 obj [503 0 R/XYZ 0 15259 1] endobj 7331 0 obj [506 0 R/XYZ 0 15259 1] endobj 7332 0 obj [512 0 R/XYZ 0 15259 1] endobj 7333 0 obj [520 0 R/XYZ 0 15259 1] endobj 7334 0 obj [523 0 R/XYZ 0 15259 1] endobj 7335 0 obj [538 0 R/XYZ 0 15259 1] endobj 7336 0 obj [540 0 R/XYZ 0 15259 1] endobj 7337 0 obj [543 0 R/XYZ 0 15259 1] endobj 7338 0 obj [545 0 R/XYZ 0 15259 1] endobj 7339 0 obj [558 0 R/XYZ 0 15259 1] endobj 7340 0 obj [566 0 R/XYZ 0 15259 1] endobj 7341 0 obj [570 0 R/XYZ 0 15259 1] endobj 7342 0 obj [577 0 R/XYZ 0 15259 1] endobj 7343 0 obj [580 0 R/XYZ 0 15259 1] endobj 7344 0 obj [581 0 R/XYZ 0 15259 1] endobj 7345 0 obj [594 0 R/XYZ 0 15259 1] endobj 7346 0 obj [613 0 R/XYZ 0 15259 1] endobj 7347 0 obj [616 0 R/XYZ 0 15259 1] endobj 7348 0 obj [803 0 R/XYZ 0 15259 1] endobj 7349 0 obj [810 0 R/XYZ 0 15259 1] endobj 7350 0 obj [824 0 R/XYZ 0 15259 1] endobj 7351 0 obj [826 0 R/XYZ 0 15259 1] endobj 7352 0 obj [871 0 R/XYZ 0 15259 1] endobj 7353 0 obj [1036 0 R/XYZ 0 15259 1] endobj 7354 0 obj [1061 0 R/XYZ 0 15259 1] endobj 7355 0 obj [1064 0 R/XYZ 0 15259 1] endobj 7356 0 obj [1070 0 R/XYZ 0 15259 1] endobj 7357 0 obj [1083 0 R/XYZ 0 15259 1] endobj 7358 0 obj [1094 0 R/XYZ 0 15259 1] endobj 7359 0 obj [1095 0 R/XYZ 0 15259 1] endobj 7360 0 obj [1097 0 R/XYZ 0 15259 1] endobj 7361 0 obj [1100 0 R/XYZ 0 15259 1] endobj 7362 0 obj [1126 0 R/XYZ 0 15259 1] endobj 7363 0 obj [1127 0 R/XYZ 0 15259 1] endobj 7364 0 obj [1137 0 R/XYZ 0 15259 1] endobj 7365 0 obj [1141 0 R/XYZ 0 15259 1] endobj 7366 0 obj [1172 0 R/XYZ 0 15259 1] endobj 7367 0 obj [1177 0 R/XYZ 0 15259 1] endobj 7368 0 obj [1180 0 R/XYZ 0 15259 1] endobj 7369 0 obj [1184 0 R/XYZ 0 15259 1] endobj 7370 0 obj [1204 0 R/XYZ 0 15259 1] endobj 7371 0 obj [1205 0 R/XYZ 0 15259 1] endobj 7372 0 obj [1214 0 R/XYZ 0 15259 1] endobj 7373 0 obj [1218 0 R/XYZ 0 15259 1] endobj 7374 0 obj [1225 0 R/XYZ 0 15259 1] endobj 7375 0 obj [1304 0 R/XYZ 0 15259 1] endobj 7376 0 obj [1307 0 R/XYZ 0 15259 1] endobj 7377 0 obj [1308 0 R/XYZ 0 15259 1] endobj 7378 0 obj [1322 0 R/XYZ 0 15259 1] endobj 7379 0 obj [1323 0 R/XYZ 0 15259 1] endobj 7380 0 obj [1344 0 R/XYZ 0 15259 1] endobj 7381 0 obj [1395 0 R/XYZ 0 15259 1] endobj 7382 0 obj [1397 0 R/XYZ 0 15259 1] endobj 7383 0 obj [1399 0 R/XYZ 0 15259 1] endobj 7384 0 obj [1426 0 R/XYZ 0 15259 1] endobj 7385 0 obj [1443 0 R/XYZ 0 15259 1] endobj 7386 0 obj [1444 0 R/XYZ 0 15259 1] endobj 7387 0 obj [1502 0 R/XYZ 0 15259 1] endobj 7388 0 obj [1512 0 R/XYZ 0 15259 1] endobj 7389 0 obj [1517 0 R/XYZ 0 15259 1] endobj 7390 0 obj [1527 0 R/XYZ 0 15259 1] endobj 7391 0 obj [1607 0 R/XYZ 0 15259 1] endobj 7392 0 obj [1609 0 R/XYZ 0 15259 1] endobj 7393 0 obj [1630 0 R/XYZ 0 15259 1] endobj 7394 0 obj [1637 0 R/XYZ 0 15259 1] endobj 7395 0 obj [480 0 R/XYZ 0 15259 1] endobj 7396 0 obj [424 0 R/XYZ 0 15259 1] endobj 7397 0 obj [684 0 R/XYZ 0 15259 1] endobj 7398 0 obj [1651 0 R/XYZ 0 15259 1] endobj 7399 0 obj [480 0 R/XYZ 0 15259 1] endobj 7400 0 obj [487 0 R/XYZ 0 15259 1] endobj 7401 0 obj [871 0 R/XYZ 0 15259 1] endobj 7402 0 obj [1036 0 R/XYZ 0 15259 1] endobj 7403 0 obj [480 0 R/XYZ 0 15259 1] endobj 7404 0 obj [1307 0 R/XYZ 0 15259 1] endobj 7405 0 obj [1312 0 R/XYZ 0 15259 1] endobj 7406 0 obj [1642 0 R/XYZ 0 15259 1] endobj 7407 0 obj [384 0 R/XYZ 0 15259 1] endobj 7408 0 obj [386 0 R/XYZ 0 15259 1] endobj 7409 0 obj [571 0 R/XYZ 0 15259 1] endobj 7410 0 obj [585 0 R/XYZ 0 15259 1] endobj 7411 0 obj [591 0 R/XYZ 0 15259 1] endobj 7412 0 obj [764 0 R/XYZ 0 15259 1] endobj 7413 0 obj [765 0 R/XYZ 0 15259 1] endobj 7414 0 obj [803 0 R/XYZ 0 15259 1] endobj 7415 0 obj [1037 0 R/XYZ 0 15259 1] endobj 7416 0 obj [1360 0 R/XYZ 0 15259 1] endobj 7417 0 obj [1516 0 R/XYZ 0 15259 1] endobj 7418 0 obj [1610 0 R/XYZ 0 15259 1] endobj 7419 0 obj [585 0 R/XYZ 0 15259 1] endobj 7420 0 obj [1037 0 R/XYZ 0 15259 1] endobj 7421 0 obj [1061 0 R/XYZ 0 15259 1] endobj 7422 0 obj [1064 0 R/XYZ 0 15259 1] endobj 7423 0 obj [1065 0 R/XYZ 0 15259 1] endobj 7424 0 obj [1078 0 R/XYZ 0 15259 1] endobj 7425 0 obj [1601 0 R/XYZ 0 15259 1] endobj 7426 0 obj [1628 0 R/XYZ 0 15259 1] endobj 7427 0 obj [1064 0 R/XYZ 0 15259 1] endobj 7428 0 obj [446 0 R/XYZ 0 15259 1] endobj 7429 0 obj [451 0 R/XYZ 0 15259 1] endobj 7430 0 obj [458 0 R/XYZ 0 15259 1] endobj 7431 0 obj [460 0 R/XYZ 0 15259 1] endobj 7432 0 obj [463 0 R/XYZ 0 15259 1] endobj 7433 0 obj [474 0 R/XYZ 0 15259 1] endobj 7434 0 obj [480 0 R/XYZ 0 15259 1] endobj 7435 0 obj [1606 0 R/XYZ 0 15259 1] endobj 7436 0 obj [1059 0 R/XYZ 0 15259 1] endobj 7437 0 obj [1161 0 R/XYZ 0 15259 1] endobj 7438 0 obj [1163 0 R/XYZ 0 15259 1] endobj 7439 0 obj [1318 0 R/XYZ 0 15259 1] endobj 7440 0 obj [1594 0 R/XYZ 0 15259 1] endobj 7441 0 obj [461 0 R/XYZ 0 15259 1] endobj 7442 0 obj [1607 0 R/XYZ 0 15259 1] endobj 7443 0 obj [645 0 R/XYZ 0 15259 1] endobj 7444 0 obj [649 0 R/XYZ 0 15259 1] endobj 7445 0 obj [647 0 R/XYZ 0 15259 1] endobj 7446 0 obj [1087 0 R/XYZ 0 15259 1] endobj 7447 0 obj [1150 0 R/XYZ 0 15259 1] endobj 7448 0 obj [645 0 R/XYZ 0 15259 1] endobj 7449 0 obj [649 0 R/XYZ 0 15259 1] endobj 7450 0 obj [647 0 R/XYZ 0 15259 1] endobj 7451 0 obj [1332 0 R/XYZ 0 15259 1] endobj 7452 0 obj [1349 0 R/XYZ 0 15259 1] endobj 7453 0 obj [1371 0 R/XYZ 0 15259 1] endobj 7454 0 obj [1373 0 R/XYZ 0 15259 1] endobj 7455 0 obj [1376 0 R/XYZ 0 15259 1] endobj 7456 0 obj [1315 0 R/XYZ 0 15259 1] endobj 7457 0 obj [1315 0 R/XYZ 0 15259 1] endobj 7458 0 obj [1502 0 R/XYZ 0 15259 1] endobj 7459 0 obj [424 0 R/XYZ 0 15259 1] endobj 7460 0 obj [463 0 R/XYZ 0 15259 1] endobj 7461 0 obj [468 0 R/XYZ 0 15259 1] endobj 7462 0 obj [1264 0 R/XYZ 0 15259 1] endobj 7463 0 obj [1266 0 R/XYZ 0 15259 1] endobj 7464 0 obj [1315 0 R/XYZ 0 15259 1] endobj 7465 0 obj [437 0 R/XYZ 0 15259 1] endobj 7466 0 obj [480 0 R/XYZ 0 15259 1] endobj 7467 0 obj [512 0 R/XYZ 0 15259 1] endobj 7468 0 obj [513 0 R/XYZ 0 15259 1] endobj 7469 0 obj [538 0 R/XYZ 0 15259 1] endobj 7470 0 obj [543 0 R/XYZ 0 15259 1] endobj 7471 0 obj [1126 0 R/XYZ 0 15259 1] endobj 7472 0 obj [1127 0 R/XYZ 0 15259 1] endobj 7473 0 obj [1141 0 R/XYZ 0 15259 1] endobj 7474 0 obj [1305 0 R/XYZ 0 15259 1] endobj 7475 0 obj [1502 0 R/XYZ 0 15259 1] endobj 7476 0 obj [1527 0 R/XYZ 0 15259 1] endobj 7477 0 obj [1637 0 R/XYZ 0 15259 1] endobj 7478 0 obj [480 0 R/XYZ 0 15259 1] endobj 7479 0 obj [512 0 R/XYZ 0 15259 1] endobj 7480 0 obj [513 0 R/XYZ 0 15259 1] endobj 7481 0 obj [538 0 R/XYZ 0 15259 1] endobj 7482 0 obj [581 0 R/XYZ 0 15259 1] endobj 7483 0 obj [1061 0 R/XYZ 0 15259 1] endobj 7484 0 obj [1070 0 R/XYZ 0 15259 1] endobj 7485 0 obj [1100 0 R/XYZ 0 15259 1] endobj 7486 0 obj [1126 0 R/XYZ 0 15259 1] endobj 7487 0 obj [1127 0 R/XYZ 0 15259 1] endobj 7488 0 obj [1141 0 R/XYZ 0 15259 1] endobj 7489 0 obj [1204 0 R/XYZ 0 15259 1] endobj 7490 0 obj [1395 0 R/XYZ 0 15259 1] endobj 7491 0 obj [1397 0 R/XYZ 0 15259 1] endobj 7492 0 obj [1431 0 R/XYZ 0 15259 1] endobj 7493 0 obj [1512 0 R/XYZ 0 15259 1] endobj 7494 0 obj [1630 0 R/XYZ 0 15259 1] endobj 7495 0 obj [1379 0 R/XYZ 0 15259 1] endobj 7496 0 obj [1654 0 R/XYZ 0 15259 1] endobj 7497 0 obj [606 0 R/XYZ 0 15259 1] endobj 7498 0 obj [838 0 R/XYZ 0 15259 1] endobj 7499 0 obj [840 0 R/XYZ 0 15259 1] endobj 7500 0 obj [1063 0 R/XYZ 0 15259 1] endobj 7501 0 obj [1410 0 R/XYZ 0 15259 1] endobj 7502 0 obj [482 0 R/XYZ 0 15259 1] endobj 7503 0 obj [512 0 R/XYZ 0 15259 1] endobj 7504 0 obj [481 0 R/XYZ 0 15259 1] endobj 7505 0 obj [512 0 R/XYZ 0 15259 1] endobj 7506 0 obj [424 0 R/XYZ 0 15259 1] endobj 7507 0 obj [426 0 R/XYZ 0 15259 1] endobj 7508 0 obj [481 0 R/XYZ 0 15259 1] endobj 7509 0 obj [482 0 R/XYZ 0 15259 1] endobj 7510 0 obj [512 0 R/XYZ 0 15259 1] endobj 7511 0 obj [513 0 R/XYZ 0 15259 1] endobj 7512 0 obj [515 0 R/XYZ 0 15259 1] endobj 7513 0 obj [517 0 R/XYZ 0 15259 1] endobj 7514 0 obj [1122 0 R/XYZ 0 15259 1] endobj 7515 0 obj [1129 0 R/XYZ 0 15259 1] endobj 7516 0 obj [481 0 R/XYZ 0 15259 1] endobj 7517 0 obj [487 0 R/XYZ 0 15259 1] endobj 7518 0 obj [538 0 R/XYZ 0 15259 1] endobj 7519 0 obj [558 0 R/XYZ 0 15259 1] endobj 7520 0 obj [577 0 R/XYZ 0 15259 1] endobj 7521 0 obj [580 0 R/XYZ 0 15259 1] endobj 7522 0 obj [581 0 R/XYZ 0 15259 1] endobj 7523 0 obj [614 0 R/XYZ 0 15259 1] endobj 7524 0 obj [1098 0 R/XYZ 0 15259 1] endobj 7525 0 obj [1100 0 R/XYZ 0 15259 1] endobj 7526 0 obj [1126 0 R/XYZ 0 15259 1] endobj 7527 0 obj [1127 0 R/XYZ 0 15259 1] endobj 7528 0 obj [1141 0 R/XYZ 0 15259 1] endobj 7529 0 obj [1431 0 R/XYZ 0 15259 1] endobj 7530 0 obj [482 0 R/XYZ 0 15259 1] endobj 7531 0 obj [1342 0 R/XYZ 0 15259 1] endobj 7532 0 obj [1394 0 R/XYZ 0 15259 1] endobj 7533 0 obj [1268 0 R/XYZ 0 15259 1] endobj 7534 0 obj [540 0 R/XYZ 0 15259 1] endobj 7535 0 obj [542 0 R/XYZ 0 15259 1] endobj 7536 0 obj [540 0 R/XYZ 0 15259 1] endobj 7537 0 obj [542 0 R/XYZ 0 15259 1] endobj 7538 0 obj [480 0 R/XYZ 0 15259 1] endobj 7539 0 obj [512 0 R/XYZ 0 15259 1] endobj 7540 0 obj [513 0 R/XYZ 0 15259 1] endobj 7541 0 obj [538 0 R/XYZ 0 15259 1] endobj 7542 0 obj [1637 0 R/XYZ 0 15259 1] endobj 7543 0 obj [1332 0 R/XYZ 0 15259 1] endobj 7544 0 obj [1349 0 R/XYZ 0 15259 1] endobj 7545 0 obj [1416 0 R/XYZ 0 15259 1] endobj 7546 0 obj [509 0 R/XYZ 0 15259 1] endobj 7547 0 obj [1200 0 R/XYZ 0 15259 1] endobj 7548 0 obj [732 0 R/XYZ 0 15259 1] endobj 7549 0 obj [1155 0 R/XYZ 0 15259 1] endobj 7550 0 obj [1159 0 R/XYZ 0 15259 1] endobj 7551 0 obj [1160 0 R/XYZ 0 15259 1] endobj 7552 0 obj [446 0 R/XYZ 0 15259 1] endobj 7553 0 obj [451 0 R/XYZ 0 15259 1] endobj 7554 0 obj [458 0 R/XYZ 0 15259 1] endobj 7555 0 obj [448 0 R/XYZ 0 15259 1] endobj 7556 0 obj [451 0 R/XYZ 0 15259 1] endobj 7557 0 obj [458 0 R/XYZ 0 15259 1] endobj 7558 0 obj [753 0 R/XYZ 0 15259 1] endobj 7559 0 obj [1331 0 R/XYZ 0 15259 1] endobj 7560 0 obj [1347 0 R/XYZ 0 15259 1] endobj 7561 0 obj [1349 0 R/XYZ 0 15259 1] endobj 7562 0 obj [1371 0 R/XYZ 0 15259 1] endobj 7563 0 obj [1373 0 R/XYZ 0 15259 1] endobj 7564 0 obj [383 0 R/XYZ 0 15259 1] endobj 7565 0 obj [551 0 R/XYZ 0 15259 1] endobj 7566 0 obj [577 0 R/XYZ 0 15259 1] endobj 7567 0 obj [583 0 R/XYZ 0 15259 1] endobj 7568 0 obj [732 0 R/XYZ 0 15259 1] endobj 7569 0 obj [738 0 R/XYZ 0 15259 1] endobj 7570 0 obj [744 0 R/XYZ 0 15259 1] endobj 7571 0 obj [751 0 R/XYZ 0 15259 1] endobj 7572 0 obj [757 0 R/XYZ 0 15259 1] endobj 7573 0 obj [764 0 R/XYZ 0 15259 1] endobj 7574 0 obj [810 0 R/XYZ 0 15259 1] endobj 7575 0 obj [811 0 R/XYZ 0 15259 1] endobj 7576 0 obj [840 0 R/XYZ 0 15259 1] endobj 7577 0 obj [1056 0 R/XYZ 0 15259 1] endobj 7578 0 obj [1331 0 R/XYZ 0 15259 1] endobj 7579 0 obj [1349 0 R/XYZ 0 15259 1] endobj 7580 0 obj [1347 0 R/XYZ 0 15259 1] endobj 7581 0 obj [1332 0 R/XYZ 0 15259 1] endobj 7582 0 obj [1344 0 R/XYZ 0 15259 1] endobj 7583 0 obj [1347 0 R/XYZ 0 15259 1] endobj 7584 0 obj [1349 0 R/XYZ 0 15259 1] endobj 7585 0 obj [1331 0 R/XYZ 0 15259 1] endobj 7586 0 obj [1344 0 R/XYZ 0 15259 1] endobj 7587 0 obj [1347 0 R/XYZ 0 15259 1] endobj 7588 0 obj [1349 0 R/XYZ 0 15259 1] endobj 7589 0 obj [1381 0 R/XYZ 0 15259 1] endobj 7590 0 obj [361 0 R/XYZ 0 15259 1] endobj 7591 0 obj [361 0 R/XYZ 0 15259 1] endobj 7592 0 obj [362 0 R/XYZ 0 15259 1] endobj 7593 0 obj [361 0 R/XYZ 0 15259 1] endobj 7594 0 obj [367 0 R/XYZ 0 15259 1] endobj 7595 0 obj <> endobj 7596 0 obj [1217 0 R/XYZ 0 15259 1] endobj 7597 0 obj [1292 0 R/XYZ 0 15259 1] endobj 7598 0 obj [1302 0 R/XYZ 0 15259 1] endobj 7599 0 obj [537 0 R/XYZ 0 15259 1] endobj 7600 0 obj [663 0 R/XYZ 0 15259 1] endobj 7601 0 obj [1391 0 R/XYZ 0 15259 1] endobj 7602 0 obj [656 0 R/XYZ 0 15259 1] endobj 7603 0 obj [659 0 R/XYZ 0 15259 1] endobj 7604 0 obj [873 0 R/XYZ 0 15259 1] endobj 7605 0 obj [1503 0 R/XYZ 0 15259 1] endobj 7606 0 obj [1508 0 R/XYZ 0 15259 1] endobj 7607 0 obj [1618 0 R/XYZ 0 15259 1] endobj 7608 0 obj [656 0 R/XYZ 0 15259 1] endobj 7609 0 obj [661 0 R/XYZ 0 15259 1] endobj 7610 0 obj [667 0 R/XYZ 0 15259 1] endobj 7611 0 obj [669 0 R/XYZ 0 15259 1] endobj 7612 0 obj [661 0 R/XYZ 0 15259 1] endobj 7613 0 obj [663 0 R/XYZ 0 15259 1] endobj 7614 0 obj [684 0 R/XYZ 0 15259 1] endobj 7615 0 obj [1618 0 R/XYZ 0 15259 1] endobj 7616 0 obj [538 0 R/XYZ 0 15259 1] endobj 7617 0 obj [709 0 R/XYZ 0 15259 1] endobj 7618 0 obj [762 0 R/XYZ 0 15259 1] endobj 7619 0 obj [763 0 R/XYZ 0 15259 1] endobj 7620 0 obj [765 0 R/XYZ 0 15259 1] endobj 7621 0 obj [774 0 R/XYZ 0 15259 1] endobj 7622 0 obj [777 0 R/XYZ 0 15259 1] endobj 7623 0 obj [780 0 R/XYZ 0 15259 1] endobj 7624 0 obj [811 0 R/XYZ 0 15259 1] endobj 7625 0 obj [812 0 R/XYZ 0 15259 1] endobj 7626 0 obj [588 0 R/XYZ 0 15259 1] endobj 7627 0 obj [594 0 R/XYZ 0 15259 1] endobj 7628 0 obj [1594 0 R/XYZ 0 15259 1] endobj 7629 0 obj [1612 0 R/XYZ 0 15259 1] endobj 7630 0 obj [459 0 R/XYZ 0 15259 1] endobj 7631 0 obj [442 0 R/XYZ 0 15259 1] endobj 7632 0 obj [445 0 R/XYZ 0 15259 1] endobj 7633 0 obj [448 0 R/XYZ 0 15259 1] endobj 7634 0 obj [456 0 R/XYZ 0 15259 1] endobj 7635 0 obj [459 0 R/XYZ 0 15259 1] endobj 7636 0 obj [460 0 R/XYZ 0 15259 1] endobj 7637 0 obj [463 0 R/XYZ 0 15259 1] endobj 7638 0 obj [465 0 R/XYZ 0 15259 1] endobj 7639 0 obj [468 0 R/XYZ 0 15259 1] endobj 7640 0 obj [483 0 R/XYZ 0 15259 1] endobj 7641 0 obj [554 0 R/XYZ 0 15259 1] endobj 7642 0 obj [571 0 R/XYZ 0 15259 1] endobj 7643 0 obj [1037 0 R/XYZ 0 15259 1] endobj 7644 0 obj [1153 0 R/XYZ 0 15259 1] endobj 7645 0 obj [450 0 R/XYZ 0 15259 1] endobj 7646 0 obj [444 0 R/XYZ 0 15259 1] endobj 7647 0 obj [445 0 R/XYZ 0 15259 1] endobj 7648 0 obj [452 0 R/XYZ 0 15259 1] endobj 7649 0 obj [458 0 R/XYZ 0 15259 1] endobj 7650 0 obj [459 0 R/XYZ 0 15259 1] endobj 7651 0 obj [601 0 R/XYZ 0 15259 1] endobj 7652 0 obj [1611 0 R/XYZ 0 15259 1] endobj 7653 0 obj [384 0 R/XYZ 0 15259 1] endobj 7654 0 obj [384 0 R/XYZ 0 15259 1] endobj 7655 0 obj [388 0 R/XYZ 0 15259 1] endobj 7656 0 obj [451 0 R/XYZ 0 15259 1] endobj 7657 0 obj [459 0 R/XYZ 0 15259 1] endobj 7658 0 obj [482 0 R/XYZ 0 15259 1] endobj 7659 0 obj [592 0 R/XYZ 0 15259 1] endobj 7660 0 obj [600 0 R/XYZ 0 15259 1] endobj 7661 0 obj [601 0 R/XYZ 0 15259 1] endobj 7662 0 obj [774 0 R/XYZ 0 15259 1] endobj 7663 0 obj [1172 0 R/XYZ 0 15259 1] endobj 7664 0 obj [1611 0 R/XYZ 0 15259 1] endobj 7665 0 obj [384 0 R/XYZ 0 15259 1] endobj 7666 0 obj [388 0 R/XYZ 0 15259 1] endobj 7667 0 obj [451 0 R/XYZ 0 15259 1] endobj 7668 0 obj [452 0 R/XYZ 0 15259 1] endobj 7669 0 obj [459 0 R/XYZ 0 15259 1] endobj 7670 0 obj [482 0 R/XYZ 0 15259 1] endobj 7671 0 obj [483 0 R/XYZ 0 15259 1] endobj 7672 0 obj [591 0 R/XYZ 0 15259 1] endobj 7673 0 obj [1172 0 R/XYZ 0 15259 1] endobj 7674 0 obj [483 0 R/XYZ 0 15259 1] endobj 7675 0 obj [487 0 R/XYZ 0 15259 1] endobj 7676 0 obj [861 0 R/XYZ 0 15259 1] endobj 7677 0 obj [866 0 R/XYZ 0 15259 1] endobj 7678 0 obj [867 0 R/XYZ 0 15259 1] endobj 7679 0 obj [871 0 R/XYZ 0 15259 1] endobj 7680 0 obj [875 0 R/XYZ 0 15259 1] endobj 7681 0 obj [882 0 R/XYZ 0 15259 1] endobj 7682 0 obj [887 0 R/XYZ 0 15259 1] endobj 7683 0 obj [905 0 R/XYZ 0 15259 1] endobj 7684 0 obj [909 0 R/XYZ 0 15259 1] endobj 7685 0 obj [916 0 R/XYZ 0 15259 1] endobj 7686 0 obj [927 0 R/XYZ 0 15259 1] endobj 7687 0 obj [1036 0 R/XYZ 0 15259 1] endobj 7688 0 obj [1047 0 R/XYZ 0 15259 1] endobj 7689 0 obj [1377 0 R/XYZ 0 15259 1] endobj 7690 0 obj [1624 0 R/XYZ 0 15259 1] endobj 7691 0 obj [1630 0 R/XYZ 0 15259 1] endobj 7692 0 obj [1631 0 R/XYZ 0 15259 1] endobj 7693 0 obj [882 0 R/XYZ 0 15259 1] endobj 7694 0 obj [465 0 R/XYZ 0 15259 1] endobj 7695 0 obj [465 0 R/XYZ 0 15259 1] endobj 7696 0 obj [465 0 R/XYZ 0 15259 1] endobj 7697 0 obj [450 0 R/XYZ 0 15259 1] endobj 7698 0 obj [452 0 R/XYZ 0 15259 1] endobj 7699 0 obj [458 0 R/XYZ 0 15259 1] endobj 7700 0 obj [468 0 R/XYZ 0 15259 1] endobj 7701 0 obj [560 0 R/XYZ 0 15259 1] endobj 7702 0 obj [1387 0 R/XYZ 0 15259 1] endobj 7703 0 obj [1416 0 R/XYZ 0 15259 1] endobj 7704 0 obj [450 0 R/XYZ 0 15259 1] endobj 7705 0 obj [452 0 R/XYZ 0 15259 1] endobj 7706 0 obj [782 0 R/XYZ 0 15259 1] endobj 7707 0 obj [1037 0 R/XYZ 0 15259 1] endobj 7708 0 obj [1158 0 R/XYZ 0 15259 1] endobj 7709 0 obj [1166 0 R/XYZ 0 15259 1] endobj 7710 0 obj [1256 0 R/XYZ 0 15259 1] endobj 7711 0 obj [1262 0 R/XYZ 0 15259 1] endobj 7712 0 obj [1635 0 R/XYZ 0 15259 1] endobj 7713 0 obj [1637 0 R/XYZ 0 15259 1] endobj 7714 0 obj [1158 0 R/XYZ 0 15259 1] endobj 7715 0 obj [1162 0 R/XYZ 0 15259 1] endobj 7716 0 obj [450 0 R/XYZ 0 15259 1] endobj 7717 0 obj [452 0 R/XYZ 0 15259 1] endobj 7718 0 obj [455 0 R/XYZ 0 15259 1] endobj 7719 0 obj [450 0 R/XYZ 0 15259 1] endobj 7720 0 obj [452 0 R/XYZ 0 15259 1] endobj 7721 0 obj [450 0 R/XYZ 0 15259 1] endobj 7722 0 obj [452 0 R/XYZ 0 15259 1] endobj 7723 0 obj [465 0 R/XYZ 0 15259 1] endobj 7724 0 obj [468 0 R/XYZ 0 15259 1] endobj 7725 0 obj [451 0 R/XYZ 0 15259 1] endobj 7726 0 obj [452 0 R/XYZ 0 15259 1] endobj 7727 0 obj [460 0 R/XYZ 0 15259 1] endobj 7728 0 obj [452 0 R/XYZ 0 15259 1] endobj 7729 0 obj [465 0 R/XYZ 0 15259 1] endobj 7730 0 obj [452 0 R/XYZ 0 15259 1] endobj 7731 0 obj [465 0 R/XYZ 0 15259 1] endobj 7732 0 obj [450 0 R/XYZ 0 15259 1] endobj 7733 0 obj [452 0 R/XYZ 0 15259 1] endobj 7734 0 obj [464 0 R/XYZ 0 15259 1] endobj 7735 0 obj [465 0 R/XYZ 0 15259 1] endobj 7736 0 obj [1336 0 R/XYZ 0 15259 1] endobj 7737 0 obj [1332 0 R/XYZ 0 15259 1] endobj 7738 0 obj [1349 0 R/XYZ 0 15259 1] endobj 7739 0 obj [537 0 R/XYZ 0 15259 1] endobj 7740 0 obj [540 0 R/XYZ 0 15259 1] endobj 7741 0 obj [599 0 R/XYZ 0 15259 1] endobj 7742 0 obj [397 0 R/XYZ 0 15259 1] endobj 7743 0 obj [399 0 R/XYZ 0 15259 1] endobj 7744 0 obj [411 0 R/XYZ 0 15259 1] endobj 7745 0 obj [875 0 R/XYZ 0 15259 1] endobj 7746 0 obj [935 0 R/XYZ 0 15259 1] endobj 7747 0 obj [1037 0 R/XYZ 0 15259 1] endobj 7748 0 obj [1237 0 R/XYZ 0 15259 1] endobj 7749 0 obj [1605 0 R/XYZ 0 15259 1] endobj 7750 0 obj [397 0 R/XYZ 0 15259 1] endobj 7751 0 obj [843 0 R/XYZ 0 15259 1] endobj 7752 0 obj [845 0 R/XYZ 0 15259 1] endobj 7753 0 obj [392 0 R/XYZ 0 15259 1] endobj 7754 0 obj [472 0 R/XYZ 0 15259 1] endobj 7755 0 obj [818 0 R/XYZ 0 15259 1] endobj 7756 0 obj [945 0 R/XYZ 0 15259 1] endobj 7757 0 obj [734 0 R/XYZ 0 15259 1] endobj 7758 0 obj [1651 0 R/XYZ 0 15259 1] endobj 7759 0 obj [1653 0 R/XYZ 0 15259 1] endobj 7760 0 obj [577 0 R/XYZ 0 15259 1] endobj 7761 0 obj [613 0 R/XYZ 0 15259 1] endobj 7762 0 obj [871 0 R/XYZ 0 15259 1] endobj 7763 0 obj [1151 0 R/XYZ 0 15259 1] endobj 7764 0 obj [1153 0 R/XYZ 0 15259 1] endobj 7765 0 obj [1154 0 R/XYZ 0 15259 1] endobj 7766 0 obj [1156 0 R/XYZ 0 15259 1] endobj 7767 0 obj [1161 0 R/XYZ 0 15259 1] endobj 7768 0 obj [1163 0 R/XYZ 0 15259 1] endobj 7769 0 obj [1168 0 R/XYZ 0 15259 1] endobj 7770 0 obj [1191 0 R/XYZ 0 15259 1] endobj 7771 0 obj [1277 0 R/XYZ 0 15259 1] endobj 7772 0 obj [1634 0 R/XYZ 0 15259 1] endobj 7773 0 obj [1151 0 R/XYZ 0 15259 1] endobj 7774 0 obj [445 0 R/XYZ 0 15259 1] endobj 7775 0 obj [452 0 R/XYZ 0 15259 1] endobj 7776 0 obj [458 0 R/XYZ 0 15259 1] endobj 7777 0 obj [1145 0 R/XYZ 0 15259 1] endobj 7778 0 obj [1153 0 R/XYZ 0 15259 1] endobj 7779 0 obj [1173 0 R/XYZ 0 15259 1] endobj 7780 0 obj [1174 0 R/XYZ 0 15259 1] endobj 7781 0 obj [1635 0 R/XYZ 0 15259 1] endobj 7782 0 obj [1150 0 R/XYZ 0 15259 1] endobj 7783 0 obj [1158 0 R/XYZ 0 15259 1] endobj 7784 0 obj [1150 0 R/XYZ 0 15259 1] endobj 7785 0 obj [1150 0 R/XYZ 0 15259 1] endobj 7786 0 obj [1150 0 R/XYZ 0 15259 1] endobj 7787 0 obj [1150 0 R/XYZ 0 15259 1] endobj 7788 0 obj [1191 0 R/XYZ 0 15259 1] endobj 7789 0 obj [1433 0 R/XYZ 0 15259 1] endobj 7790 0 obj [1650 0 R/XYZ 0 15259 1] endobj 7791 0 obj [734 0 R/XYZ 0 15259 1] endobj 7792 0 obj [1653 0 R/XYZ 0 15259 1] endobj 7793 0 obj [418 0 R/XYZ 0 15259 1] endobj 7794 0 obj [636 0 R/XYZ 0 15259 1] endobj 7795 0 obj [860 0 R/XYZ 0 15259 1] endobj 7796 0 obj [1653 0 R/XYZ 0 15259 1] endobj 7797 0 obj [493 0 R/XYZ 0 15259 1] endobj 7798 0 obj [705 0 R/XYZ 0 15259 1] endobj 7799 0 obj [855 0 R/XYZ 0 15259 1] endobj 7800 0 obj [870 0 R/XYZ 0 15259 1] endobj 7801 0 obj [871 0 R/XYZ 0 15259 1] endobj 7802 0 obj [887 0 R/XYZ 0 15259 1] endobj 7803 0 obj [1036 0 R/XYZ 0 15259 1] endobj 7804 0 obj [1082 0 R/XYZ 0 15259 1] endobj 7805 0 obj [1104 0 R/XYZ 0 15259 1] endobj 7806 0 obj [1106 0 R/XYZ 0 15259 1] endobj 7807 0 obj [1111 0 R/XYZ 0 15259 1] endobj 7808 0 obj [1115 0 R/XYZ 0 15259 1] endobj 7809 0 obj [1144 0 R/XYZ 0 15259 1] endobj 7810 0 obj [1145 0 R/XYZ 0 15259 1] endobj 7811 0 obj [1184 0 R/XYZ 0 15259 1] endobj 7812 0 obj [1215 0 R/XYZ 0 15259 1] endobj 7813 0 obj [1218 0 R/XYZ 0 15259 1] endobj 7814 0 obj [1225 0 R/XYZ 0 15259 1] endobj 7815 0 obj [1247 0 R/XYZ 0 15259 1] endobj 7816 0 obj [1248 0 R/XYZ 0 15259 1] endobj 7817 0 obj [1270 0 R/XYZ 0 15259 1] endobj 7818 0 obj [1278 0 R/XYZ 0 15259 1] endobj 7819 0 obj [1279 0 R/XYZ 0 15259 1] endobj 7820 0 obj [1311 0 R/XYZ 0 15259 1] endobj 7821 0 obj [1316 0 R/XYZ 0 15259 1] endobj 7822 0 obj [1318 0 R/XYZ 0 15259 1] endobj 7823 0 obj [1320 0 R/XYZ 0 15259 1] endobj 7824 0 obj [1389 0 R/XYZ 0 15259 1] endobj 7825 0 obj [1406 0 R/XYZ 0 15259 1] endobj 7826 0 obj [1419 0 R/XYZ 0 15259 1] endobj 7827 0 obj [1633 0 R/XYZ 0 15259 1] endobj 7828 0 obj [1634 0 R/XYZ 0 15259 1] endobj 7829 0 obj [1636 0 R/XYZ 0 15259 1] endobj 7830 0 obj [1637 0 R/XYZ 0 15259 1] endobj 7831 0 obj [1642 0 R/XYZ 0 15259 1] endobj 7832 0 obj [1111 0 R/XYZ 0 15259 1] endobj 7833 0 obj [1113 0 R/XYZ 0 15259 1] endobj 7834 0 obj [1112 0 R/XYZ 0 15259 1] endobj 7835 0 obj [1279 0 R/XYZ 0 15259 1] endobj 7836 0 obj [1318 0 R/XYZ 0 15259 1] endobj 7837 0 obj [1320 0 R/XYZ 0 15259 1] endobj 7838 0 obj [1634 0 R/XYZ 0 15259 1] endobj 7839 0 obj [1641 0 R/XYZ 0 15259 1] endobj 7840 0 obj [421 0 R/XYZ 0 15259 1] endobj 7841 0 obj [1112 0 R/XYZ 0 15259 1] endobj 7842 0 obj [1113 0 R/XYZ 0 15259 1] endobj 7843 0 obj [1319 0 R/XYZ 0 15259 1] endobj 7844 0 obj [1320 0 R/XYZ 0 15259 1] endobj 7845 0 obj [1636 0 R/XYZ 0 15259 1] endobj 7846 0 obj [1113 0 R/XYZ 0 15259 1] endobj 7847 0 obj [1279 0 R/XYZ 0 15259 1] endobj 7848 0 obj [1318 0 R/XYZ 0 15259 1] endobj 7849 0 obj [1320 0 R/XYZ 0 15259 1] endobj 7850 0 obj [1636 0 R/XYZ 0 15259 1] endobj 7851 0 obj [1641 0 R/XYZ 0 15259 1] endobj 7852 0 obj [1642 0 R/XYZ 0 15259 1] endobj 7853 0 obj [757 0 R/XYZ 0 15259 1] endobj 7854 0 obj [1085 0 R/XYZ 0 15259 1] endobj 7855 0 obj [1104 0 R/XYZ 0 15259 1] endobj 7856 0 obj [1113 0 R/XYZ 0 15259 1] endobj 7857 0 obj [1113 0 R/XYZ 0 15259 1] endobj 7858 0 obj [1113 0 R/XYZ 0 15259 1] endobj 7859 0 obj [1113 0 R/XYZ 0 15259 1] endobj 7860 0 obj [1113 0 R/XYZ 0 15259 1] endobj 7861 0 obj [1113 0 R/XYZ 0 15259 1] endobj 7862 0 obj [1113 0 R/XYZ 0 15259 1] endobj 7863 0 obj [410 0 R/XYZ 0 15259 1] endobj 7864 0 obj [750 0 R/XYZ 0 15259 1] endobj 7865 0 obj [761 0 R/XYZ 0 15259 1] endobj 7866 0 obj [782 0 R/XYZ 0 15259 1] endobj 7867 0 obj [1037 0 R/XYZ 0 15259 1] endobj 7868 0 obj [1158 0 R/XYZ 0 15259 1] endobj 7869 0 obj [1166 0 R/XYZ 0 15259 1] endobj 7870 0 obj [1217 0 R/XYZ 0 15259 1] endobj 7871 0 obj [1218 0 R/XYZ 0 15259 1] endobj 7872 0 obj [1255 0 R/XYZ 0 15259 1] endobj 7873 0 obj [1259 0 R/XYZ 0 15259 1] endobj 7874 0 obj [1262 0 R/XYZ 0 15259 1] endobj 7875 0 obj [1264 0 R/XYZ 0 15259 1] endobj 7876 0 obj [1635 0 R/XYZ 0 15259 1] endobj 7877 0 obj [1637 0 R/XYZ 0 15259 1] endobj 7878 0 obj [1158 0 R/XYZ 0 15259 1] endobj 7879 0 obj [1160 0 R/XYZ 0 15259 1] endobj 7880 0 obj [1228 0 R/XYZ 0 15259 1] endobj 7881 0 obj [1231 0 R/XYZ 0 15259 1] endobj 7882 0 obj [1232 0 R/XYZ 0 15259 1] endobj 7883 0 obj [1235 0 R/XYZ 0 15259 1] endobj 7884 0 obj [1238 0 R/XYZ 0 15259 1] endobj 7885 0 obj [1244 0 R/XYZ 0 15259 1] endobj 7886 0 obj [418 0 R/XYZ 0 15259 1] endobj 7887 0 obj [423 0 R/XYZ 0 15259 1] endobj 7888 0 obj [429 0 R/XYZ 0 15259 1] endobj 7889 0 obj [780 0 R/XYZ 0 15259 1] endobj 7890 0 obj [1186 0 R/XYZ 0 15259 1] endobj 7891 0 obj [1330 0 R/XYZ 0 15259 1] endobj 7892 0 obj [1207 0 R/XYZ 0 15259 1] endobj 7893 0 obj [1212 0 R/XYZ 0 15259 1] endobj 7894 0 obj [383 0 R/XYZ 0 15259 1] endobj 7895 0 obj [389 0 R/XYZ 0 15259 1] endobj 7896 0 obj [419 0 R/XYZ 0 15259 1] endobj 7897 0 obj [444 0 R/XYZ 0 15259 1] endobj 7898 0 obj [448 0 R/XYZ 0 15259 1] endobj 7899 0 obj [459 0 R/XYZ 0 15259 1] endobj 7900 0 obj [463 0 R/XYZ 0 15259 1] endobj 7901 0 obj [468 0 R/XYZ 0 15259 1] endobj 7902 0 obj [471 0 R/XYZ 0 15259 1] endobj 7903 0 obj [519 0 R/XYZ 0 15259 1] endobj 7904 0 obj [770 0 R/XYZ 0 15259 1] endobj 7905 0 obj [776 0 R/XYZ 0 15259 1] endobj 7906 0 obj [868 0 R/XYZ 0 15259 1] endobj 7907 0 obj [919 0 R/XYZ 0 15259 1] endobj 7908 0 obj [920 0 R/XYZ 0 15259 1] endobj 7909 0 obj [945 0 R/XYZ 0 15259 1] endobj 7910 0 obj [1148 0 R/XYZ 0 15259 1] endobj 7911 0 obj [1163 0 R/XYZ 0 15259 1] endobj 7912 0 obj [1172 0 R/XYZ 0 15259 1] endobj 7913 0 obj [1221 0 R/XYZ 0 15259 1] endobj 7914 0 obj [1257 0 R/XYZ 0 15259 1] endobj 7915 0 obj [1425 0 R/XYZ 0 15259 1] endobj 7916 0 obj [1651 0 R/XYZ 0 15259 1] endobj 7917 0 obj [776 0 R/XYZ 0 15259 1] endobj 7918 0 obj [465 0 R/XYZ 0 15259 1] endobj 7919 0 obj [424 0 R/XYZ 0 15259 1] endobj 7920 0 obj [1124 0 R/XYZ 0 15259 1] endobj 7921 0 obj [1124 0 R/XYZ 0 15259 1] endobj 7922 0 obj [445 0 R/XYZ 0 15259 1] endobj 7923 0 obj [446 0 R/XYZ 0 15259 1] endobj 7924 0 obj [374 0 R/XYZ 0 15259 1] endobj 7925 0 obj [1425 0 R/XYZ 0 15259 1] endobj 7926 0 obj [358 0 R/XYZ 0 15259 1] endobj 7927 0 obj [373 0 R/XYZ 0 15259 1] endobj 7928 0 obj [367 0 R/XYZ 0 15259 1] endobj 7929 0 obj [373 0 R/XYZ 0 15259 1] endobj 7930 0 obj [362 0 R/XYZ 0 15259 1] endobj 7931 0 obj [368 0 R/XYZ 0 15259 1] endobj 7932 0 obj <> endobj 7933 0 obj [464 0 R/XYZ 0 15259 1] endobj 7934 0 obj [468 0 R/XYZ 0 15259 1] endobj 7935 0 obj [465 0 R/XYZ 0 15259 1] endobj 7936 0 obj [464 0 R/XYZ 0 15259 1] endobj 7937 0 obj [468 0 R/XYZ 0 15259 1] endobj 7938 0 obj [445 0 R/XYZ 0 15259 1] endobj 7939 0 obj [446 0 R/XYZ 0 15259 1] endobj 7940 0 obj [465 0 R/XYZ 0 15259 1] endobj 7941 0 obj [468 0 R/XYZ 0 15259 1] endobj 7942 0 obj [554 0 R/XYZ 0 15259 1] endobj 7943 0 obj [444 0 R/XYZ 0 15259 1] endobj 7944 0 obj [464 0 R/XYZ 0 15259 1] endobj 7945 0 obj [468 0 R/XYZ 0 15259 1] endobj 7946 0 obj [424 0 R/XYZ 0 15259 1] endobj 7947 0 obj [676 0 R/XYZ 0 15259 1] endobj 7948 0 obj [468 0 R/XYZ 0 15259 1] endobj 7949 0 obj [471 0 R/XYZ 0 15259 1] endobj 7950 0 obj [513 0 R/XYZ 0 15259 1] endobj 7951 0 obj [748 0 R/XYZ 0 15259 1] endobj 7952 0 obj [445 0 R/XYZ 0 15259 1] endobj 7953 0 obj [446 0 R/XYZ 0 15259 1] endobj 7954 0 obj [1037 0 R/XYZ 0 15259 1] endobj 7955 0 obj [1037 0 R/XYZ 0 15259 1] endobj 7956 0 obj [424 0 R/XYZ 0 15259 1] endobj 7957 0 obj [445 0 R/XYZ 0 15259 1] endobj 7958 0 obj [446 0 R/XYZ 0 15259 1] endobj 7959 0 obj [424 0 R/XYZ 0 15259 1] endobj 7960 0 obj [468 0 R/XYZ 0 15259 1] endobj 7961 0 obj [445 0 R/XYZ 0 15259 1] endobj 7962 0 obj [445 0 R/XYZ 0 15259 1] endobj 7963 0 obj [446 0 R/XYZ 0 15259 1] endobj 7964 0 obj [556 0 R/XYZ 0 15259 1] endobj 7965 0 obj [1037 0 R/XYZ 0 15259 1] endobj 7966 0 obj [464 0 R/XYZ 0 15259 1] endobj 7967 0 obj [468 0 R/XYZ 0 15259 1] endobj 7968 0 obj [445 0 R/XYZ 0 15259 1] endobj 7969 0 obj [445 0 R/XYZ 0 15259 1] endobj 7970 0 obj [424 0 R/XYZ 0 15259 1] endobj 7971 0 obj [424 0 R/XYZ 0 15259 1] endobj 7972 0 obj [464 0 R/XYZ 0 15259 1] endobj 7973 0 obj [468 0 R/XYZ 0 15259 1] endobj 7974 0 obj [424 0 R/XYZ 0 15259 1] endobj 7975 0 obj [424 0 R/XYZ 0 15259 1] endobj 7976 0 obj [676 0 R/XYZ 0 15259 1] endobj 7977 0 obj [445 0 R/XYZ 0 15259 1] endobj 7978 0 obj [1208 0 R/XYZ 0 15259 1] endobj 7979 0 obj [445 0 R/XYZ 0 15259 1] endobj 7980 0 obj [465 0 R/XYZ 0 15259 1] endobj 7981 0 obj [468 0 R/XYZ 0 15259 1] endobj 7982 0 obj [483 0 R/XYZ 0 15259 1] endobj 7983 0 obj [445 0 R/XYZ 0 15259 1] endobj 7984 0 obj [446 0 R/XYZ 0 15259 1] endobj 7985 0 obj [1037 0 R/XYZ 0 15259 1] endobj 7986 0 obj [1394 0 R/XYZ 0 15259 1] endobj 7987 0 obj [1397 0 R/XYZ 0 15259 1] endobj 7988 0 obj [1394 0 R/XYZ 0 15259 1] endobj 7989 0 obj [445 0 R/XYZ 0 15259 1] endobj 7990 0 obj [446 0 R/XYZ 0 15259 1] endobj 7991 0 obj [1359 0 R/XYZ 0 15259 1] endobj 7992 0 obj [1360 0 R/XYZ 0 15259 1] endobj 7993 0 obj [445 0 R/XYZ 0 15259 1] endobj 7994 0 obj [465 0 R/XYZ 0 15259 1] endobj 7995 0 obj [424 0 R/XYZ 0 15259 1] endobj 7996 0 obj [424 0 R/XYZ 0 15259 1] endobj 7997 0 obj [424 0 R/XYZ 0 15259 1] endobj 7998 0 obj [465 0 R/XYZ 0 15259 1] endobj 7999 0 obj [468 0 R/XYZ 0 15259 1] endobj 8000 0 obj [465 0 R/XYZ 0 15259 1] endobj 8001 0 obj [468 0 R/XYZ 0 15259 1] endobj 8002 0 obj [445 0 R/XYZ 0 15259 1] endobj 8003 0 obj [445 0 R/XYZ 0 15259 1] endobj 8004 0 obj [446 0 R/XYZ 0 15259 1] endobj 8005 0 obj [468 0 R/XYZ 0 15259 1] endobj 8006 0 obj [535 0 R/XYZ 0 15259 1] endobj 8007 0 obj [769 0 R/XYZ 0 15259 1] endobj 8008 0 obj [880 0 R/XYZ 0 15259 1] endobj 8009 0 obj [465 0 R/XYZ 0 15259 1] endobj 8010 0 obj [468 0 R/XYZ 0 15259 1] endobj 8011 0 obj [445 0 R/XYZ 0 15259 1] endobj 8012 0 obj [446 0 R/XYZ 0 15259 1] endobj 8013 0 obj [445 0 R/XYZ 0 15259 1] endobj 8014 0 obj [446 0 R/XYZ 0 15259 1] endobj 8015 0 obj [424 0 R/XYZ 0 15259 1] endobj 8016 0 obj [468 0 R/XYZ 0 15259 1] endobj 8017 0 obj [445 0 R/XYZ 0 15259 1] endobj 8018 0 obj [446 0 R/XYZ 0 15259 1] endobj 8019 0 obj [468 0 R/XYZ 0 15259 1] endobj 8020 0 obj [424 0 R/XYZ 0 15259 1] endobj 8021 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8022 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8023 0 obj [465 0 R/XYZ 0 15259 1] endobj 8024 0 obj [468 0 R/XYZ 0 15259 1] endobj 8025 0 obj [424 0 R/XYZ 0 15259 1] endobj 8026 0 obj [445 0 R/XYZ 0 15259 1] endobj 8027 0 obj [445 0 R/XYZ 0 15259 1] endobj 8028 0 obj [446 0 R/XYZ 0 15259 1] endobj 8029 0 obj [445 0 R/XYZ 0 15259 1] endobj 8030 0 obj [445 0 R/XYZ 0 15259 1] endobj 8031 0 obj [446 0 R/XYZ 0 15259 1] endobj 8032 0 obj [424 0 R/XYZ 0 15259 1] endobj 8033 0 obj [465 0 R/XYZ 0 15259 1] endobj 8034 0 obj [424 0 R/XYZ 0 15259 1] endobj 8035 0 obj [1006 0 R/XYZ 0 15259 1] endobj 8036 0 obj [424 0 R/XYZ 0 15259 1] endobj 8037 0 obj [1006 0 R/XYZ 0 15259 1] endobj 8038 0 obj [424 0 R/XYZ 0 15259 1] endobj 8039 0 obj [676 0 R/XYZ 0 15259 1] endobj 8040 0 obj [424 0 R/XYZ 0 15259 1] endobj 8041 0 obj [424 0 R/XYZ 0 15259 1] endobj 8042 0 obj [424 0 R/XYZ 0 15259 1] endobj 8043 0 obj [424 0 R/XYZ 0 15259 1] endobj 8044 0 obj [1010 0 R/XYZ 0 15259 1] endobj 8045 0 obj [424 0 R/XYZ 0 15259 1] endobj 8046 0 obj [424 0 R/XYZ 0 15259 1] endobj 8047 0 obj [465 0 R/XYZ 0 15259 1] endobj 8048 0 obj [468 0 R/XYZ 0 15259 1] endobj 8049 0 obj [945 0 R/XYZ 0 15259 1] endobj 8050 0 obj [465 0 R/XYZ 0 15259 1] endobj 8051 0 obj [468 0 R/XYZ 0 15259 1] endobj 8052 0 obj [1025 0 R/XYZ 0 15259 1] endobj 8053 0 obj [424 0 R/XYZ 0 15259 1] endobj 8054 0 obj [465 0 R/XYZ 0 15259 1] endobj 8055 0 obj [445 0 R/XYZ 0 15259 1] endobj 8056 0 obj [446 0 R/XYZ 0 15259 1] endobj 8057 0 obj [465 0 R/XYZ 0 15259 1] endobj 8058 0 obj [468 0 R/XYZ 0 15259 1] endobj 8059 0 obj [452 0 R/XYZ 0 15259 1] endobj 8060 0 obj [871 0 R/XYZ 0 15259 1] endobj 8061 0 obj [445 0 R/XYZ 0 15259 1] endobj 8062 0 obj [446 0 R/XYZ 0 15259 1] endobj 8063 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8064 0 obj [424 0 R/XYZ 0 15259 1] endobj 8065 0 obj [445 0 R/XYZ 0 15259 1] endobj 8066 0 obj [446 0 R/XYZ 0 15259 1] endobj 8067 0 obj [491 0 R/XYZ 0 15259 1] endobj 8068 0 obj [491 0 R/XYZ 0 15259 1] endobj 8069 0 obj [491 0 R/XYZ 0 15259 1] endobj 8070 0 obj [491 0 R/XYZ 0 15259 1] endobj 8071 0 obj [491 0 R/XYZ 0 15259 1] endobj 8072 0 obj [491 0 R/XYZ 0 15259 1] endobj 8073 0 obj [491 0 R/XYZ 0 15259 1] endobj 8074 0 obj [491 0 R/XYZ 0 15259 1] endobj 8075 0 obj [465 0 R/XYZ 0 15259 1] endobj 8076 0 obj [468 0 R/XYZ 0 15259 1] endobj 8077 0 obj [1335 0 R/XYZ 0 15259 1] endobj 8078 0 obj [1336 0 R/XYZ 0 15259 1] endobj 8079 0 obj [468 0 R/XYZ 0 15259 1] endobj 8080 0 obj [674 0 R/XYZ 0 15259 1] endobj 8081 0 obj [753 0 R/XYZ 0 15259 1] endobj 8082 0 obj <> endobj 8083 0 obj [753 0 R/XYZ 0 15259 1] endobj 8084 0 obj [1439 0 R/XYZ 0 15259 1] endobj 8085 0 obj [1183 0 R/XYZ 0 15259 1] endobj 8086 0 obj [504 0 R/XYZ 0 15259 1] endobj 8087 0 obj [1036 0 R/XYZ 0 15259 1] endobj 8088 0 obj [1049 0 R/XYZ 0 15259 1] endobj 8089 0 obj [1051 0 R/XYZ 0 15259 1] endobj 8090 0 obj [1225 0 R/XYZ 0 15259 1] endobj 8091 0 obj [504 0 R/XYZ 0 15259 1] endobj 8092 0 obj [734 0 R/XYZ 0 15259 1] endobj 8093 0 obj [1653 0 R/XYZ 0 15259 1] endobj 8094 0 obj [747 0 R/XYZ 0 15259 1] endobj 8095 0 obj [749 0 R/XYZ 0 15259 1] endobj 8096 0 obj [781 0 R/XYZ 0 15259 1] endobj 8097 0 obj [783 0 R/XYZ 0 15259 1] endobj 8098 0 obj [800 0 R/XYZ 0 15259 1] endobj 8099 0 obj [803 0 R/XYZ 0 15259 1] endobj 8100 0 obj [924 0 R/XYZ 0 15259 1] endobj 8101 0 obj [1594 0 R/XYZ 0 15259 1] endobj 8102 0 obj [748 0 R/XYZ 0 15259 1] endobj 8103 0 obj [471 0 R/XYZ 0 15259 1] endobj 8104 0 obj [1487 0 R/XYZ 0 15259 1] endobj 8105 0 obj [1495 0 R/XYZ 0 15259 1] endobj 8106 0 obj [1514 0 R/XYZ 0 15259 1] endobj 8107 0 obj [1518 0 R/XYZ 0 15259 1] endobj 8108 0 obj [1519 0 R/XYZ 0 15259 1] endobj 8109 0 obj [1528 0 R/XYZ 0 15259 1] endobj 8110 0 obj [1538 0 R/XYZ 0 15259 1] endobj 8111 0 obj [1487 0 R/XYZ 0 15259 1] endobj 8112 0 obj [1538 0 R/XYZ 0 15259 1] endobj 8113 0 obj [1480 0 R/XYZ 0 15259 1] endobj 8114 0 obj [1538 0 R/XYZ 0 15259 1] endobj 8115 0 obj [1486 0 R/XYZ 0 15259 1] endobj 8116 0 obj [1489 0 R/XYZ 0 15259 1] endobj 8117 0 obj [1489 0 R/XYZ 0 15259 1] endobj 8118 0 obj [1536 0 R/XYZ 0 15259 1] endobj 8119 0 obj [1508 0 R/XYZ 0 15259 1] endobj 8120 0 obj [1531 0 R/XYZ 0 15259 1] endobj 8121 0 obj [1532 0 R/XYZ 0 15259 1] endobj 8122 0 obj [1538 0 R/XYZ 0 15259 1] endobj 8123 0 obj [1532 0 R/XYZ 0 15259 1] endobj 8124 0 obj [1508 0 R/XYZ 0 15259 1] endobj 8125 0 obj [1526 0 R/XYZ 0 15259 1] endobj 8126 0 obj [1645 0 R/XYZ 0 15259 1] endobj 8127 0 obj [1526 0 R/XYZ 0 15259 1] endobj 8128 0 obj [391 0 R/XYZ 0 15259 1] endobj 8129 0 obj [392 0 R/XYZ 0 15259 1] endobj 8130 0 obj [407 0 R/XYZ 0 15259 1] endobj 8131 0 obj [616 0 R/XYZ 0 15259 1] endobj 8132 0 obj [630 0 R/XYZ 0 15259 1] endobj 8133 0 obj [632 0 R/XYZ 0 15259 1] endobj 8134 0 obj [634 0 R/XYZ 0 15259 1] endobj 8135 0 obj [651 0 R/XYZ 0 15259 1] endobj 8136 0 obj [679 0 R/XYZ 0 15259 1] endobj 8137 0 obj [681 0 R/XYZ 0 15259 1] endobj 8138 0 obj [718 0 R/XYZ 0 15259 1] endobj 8139 0 obj [727 0 R/XYZ 0 15259 1] endobj 8140 0 obj [736 0 R/XYZ 0 15259 1] endobj 8141 0 obj [741 0 R/XYZ 0 15259 1] endobj 8142 0 obj [803 0 R/XYZ 0 15259 1] endobj 8143 0 obj [840 0 R/XYZ 0 15259 1] endobj 8144 0 obj [870 0 R/XYZ 0 15259 1] endobj 8145 0 obj [897 0 R/XYZ 0 15259 1] endobj 8146 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8147 0 obj [1171 0 R/XYZ 0 15259 1] endobj 8148 0 obj [1619 0 R/XYZ 0 15259 1] endobj 8149 0 obj [1620 0 R/XYZ 0 15259 1] endobj 8150 0 obj [630 0 R/XYZ 0 15259 1] endobj 8151 0 obj [1509 0 R/XYZ 0 15259 1] endobj 8152 0 obj [1514 0 R/XYZ 0 15259 1] endobj 8153 0 obj [1519 0 R/XYZ 0 15259 1] endobj 8154 0 obj [1495 0 R/XYZ 0 15259 1] endobj 8155 0 obj [1503 0 R/XYZ 0 15259 1] endobj 8156 0 obj [1504 0 R/XYZ 0 15259 1] endobj 8157 0 obj [1506 0 R/XYZ 0 15259 1] endobj 8158 0 obj [1514 0 R/XYZ 0 15259 1] endobj 8159 0 obj [1516 0 R/XYZ 0 15259 1] endobj 8160 0 obj [1518 0 R/XYZ 0 15259 1] endobj 8161 0 obj [1521 0 R/XYZ 0 15259 1] endobj 8162 0 obj [1495 0 R/XYZ 0 15259 1] endobj 8163 0 obj [1503 0 R/XYZ 0 15259 1] endobj 8164 0 obj [1505 0 R/XYZ 0 15259 1] endobj 8165 0 obj [1518 0 R/XYZ 0 15259 1] endobj 8166 0 obj [1521 0 R/XYZ 0 15259 1] endobj 8167 0 obj [795 0 R/XYZ 0 15259 1] endobj 8168 0 obj [795 0 R/XYZ 0 15259 1] endobj 8169 0 obj [795 0 R/XYZ 0 15259 1] endobj 8170 0 obj [769 0 R/XYZ 0 15259 1] endobj 8171 0 obj [1489 0 R/XYZ 0 15259 1] endobj 8172 0 obj [1510 0 R/XYZ 0 15259 1] endobj 8173 0 obj [905 0 R/XYZ 0 15259 1] endobj 8174 0 obj [906 0 R/XYZ 0 15259 1] endobj 8175 0 obj [910 0 R/XYZ 0 15259 1] endobj 8176 0 obj [911 0 R/XYZ 0 15259 1] endobj 8177 0 obj [1594 0 R/XYZ 0 15259 1] endobj 8178 0 obj [894 0 R/XYZ 0 15259 1] endobj 8179 0 obj [592 0 R/XYZ 0 15259 1] endobj 8180 0 obj [765 0 R/XYZ 0 15259 1] endobj 8181 0 obj [843 0 R/XYZ 0 15259 1] endobj 8182 0 obj [845 0 R/XYZ 0 15259 1] endobj 8183 0 obj [392 0 R/XYZ 0 15259 1] endobj 8184 0 obj [785 0 R/XYZ 0 15259 1] endobj 8185 0 obj [792 0 R/XYZ 0 15259 1] endobj 8186 0 obj [392 0 R/XYZ 0 15259 1] endobj 8187 0 obj [731 0 R/XYZ 0 15259 1] endobj 8188 0 obj [803 0 R/XYZ 0 15259 1] endobj 8189 0 obj [392 0 R/XYZ 0 15259 1] endobj 8190 0 obj [732 0 R/XYZ 0 15259 1] endobj 8191 0 obj [764 0 R/XYZ 0 15259 1] endobj 8192 0 obj [732 0 R/XYZ 0 15259 1] endobj 8193 0 obj [738 0 R/XYZ 0 15259 1] endobj 8194 0 obj [744 0 R/XYZ 0 15259 1] endobj 8195 0 obj [751 0 R/XYZ 0 15259 1] endobj 8196 0 obj [757 0 R/XYZ 0 15259 1] endobj 8197 0 obj [764 0 R/XYZ 0 15259 1] endobj 8198 0 obj [810 0 R/XYZ 0 15259 1] endobj 8199 0 obj [811 0 R/XYZ 0 15259 1] endobj 8200 0 obj [840 0 R/XYZ 0 15259 1] endobj 8201 0 obj [1056 0 R/XYZ 0 15259 1] endobj 8202 0 obj [731 0 R/XYZ 0 15259 1] endobj 8203 0 obj [732 0 R/XYZ 0 15259 1] endobj 8204 0 obj [808 0 R/XYZ 0 15259 1] endobj 8205 0 obj [845 0 R/XYZ 0 15259 1] endobj 8206 0 obj [794 0 R/XYZ 0 15259 1] endobj 8207 0 obj [799 0 R/XYZ 0 15259 1] endobj 8208 0 obj [732 0 R/XYZ 0 15259 1] endobj 8209 0 obj [880 0 R/XYZ 0 15259 1] endobj 8210 0 obj [690 0 R/XYZ 0 15259 1] endobj 8211 0 obj [694 0 R/XYZ 0 15259 1] endobj 8212 0 obj [405 0 R/XYZ 0 15259 1] endobj 8213 0 obj [411 0 R/XYZ 0 15259 1] endobj 8214 0 obj [472 0 R/XYZ 0 15259 1] endobj 8215 0 obj [799 0 R/XYZ 0 15259 1] endobj 8216 0 obj [802 0 R/XYZ 0 15259 1] endobj 8217 0 obj [818 0 R/XYZ 0 15259 1] endobj 8218 0 obj [819 0 R/XYZ 0 15259 1] endobj 8219 0 obj [823 0 R/XYZ 0 15259 1] endobj 8220 0 obj [829 0 R/XYZ 0 15259 1] endobj 8221 0 obj [831 0 R/XYZ 0 15259 1] endobj 8222 0 obj [834 0 R/XYZ 0 15259 1] endobj 8223 0 obj [836 0 R/XYZ 0 15259 1] endobj 8224 0 obj [838 0 R/XYZ 0 15259 1] endobj 8225 0 obj [840 0 R/XYZ 0 15259 1] endobj 8226 0 obj [857 0 R/XYZ 0 15259 1] endobj 8227 0 obj [921 0 R/XYZ 0 15259 1] endobj 8228 0 obj [932 0 R/XYZ 0 15259 1] endobj 8229 0 obj [1644 0 R/XYZ 0 15259 1] endobj 8230 0 obj [823 0 R/XYZ 0 15259 1] endobj 8231 0 obj [826 0 R/XYZ 0 15259 1] endobj 8232 0 obj [829 0 R/XYZ 0 15259 1] endobj 8233 0 obj [833 0 R/XYZ 0 15259 1] endobj 8234 0 obj [836 0 R/XYZ 0 15259 1] endobj 8235 0 obj [843 0 R/XYZ 0 15259 1] endobj 8236 0 obj [854 0 R/XYZ 0 15259 1] endobj 8237 0 obj [858 0 R/XYZ 0 15259 1] endobj 8238 0 obj [921 0 R/XYZ 0 15259 1] endobj 8239 0 obj [932 0 R/XYZ 0 15259 1] endobj 8240 0 obj [1337 0 R/XYZ 0 15259 1] endobj 8241 0 obj [1339 0 R/XYZ 0 15259 1] endobj 8242 0 obj [1344 0 R/XYZ 0 15259 1] endobj 8243 0 obj [1348 0 R/XYZ 0 15259 1] endobj 8244 0 obj [1376 0 R/XYZ 0 15259 1] endobj 8245 0 obj [1390 0 R/XYZ 0 15259 1] endobj 8246 0 obj [1418 0 R/XYZ 0 15259 1] endobj 8247 0 obj [1644 0 R/XYZ 0 15259 1] endobj 8248 0 obj [738 0 R/XYZ 0 15259 1] endobj 8249 0 obj [764 0 R/XYZ 0 15259 1] endobj 8250 0 obj [826 0 R/XYZ 0 15259 1] endobj 8251 0 obj [833 0 R/XYZ 0 15259 1] endobj 8252 0 obj [1333 0 R/XYZ 0 15259 1] endobj 8253 0 obj [834 0 R/XYZ 0 15259 1] endobj 8254 0 obj [833 0 R/XYZ 0 15259 1] endobj 8255 0 obj [1055 0 R/XYZ 0 15259 1] endobj 8256 0 obj [819 0 R/XYZ 0 15259 1] endobj 8257 0 obj [823 0 R/XYZ 0 15259 1] endobj 8258 0 obj [836 0 R/XYZ 0 15259 1] endobj 8259 0 obj [845 0 R/XYZ 0 15259 1] endobj 8260 0 obj [1057 0 R/XYZ 0 15259 1] endobj 8261 0 obj [1059 0 R/XYZ 0 15259 1] endobj 8262 0 obj [1400 0 R/XYZ 0 15259 1] endobj 8263 0 obj [819 0 R/XYZ 0 15259 1] endobj 8264 0 obj [838 0 R/XYZ 0 15259 1] endobj 8265 0 obj [840 0 R/XYZ 0 15259 1] endobj 8266 0 obj [1063 0 R/XYZ 0 15259 1] endobj 8267 0 obj [1410 0 R/XYZ 0 15259 1] endobj 8268 0 obj [1097 0 R/XYZ 0 15259 1] endobj 8269 0 obj [1436 0 R/XYZ 0 15259 1] endobj 8270 0 obj [1645 0 R/XYZ 0 15259 1] endobj 8271 0 obj [1010 0 R/XYZ 0 15259 1] endobj 8272 0 obj [812 0 R/XYZ 0 15259 1] endobj 8273 0 obj [391 0 R/XYZ 0 15259 1] endobj 8274 0 obj [1137 0 R/XYZ 0 15259 1] endobj 8275 0 obj [1137 0 R/XYZ 0 15259 1] endobj 8276 0 obj [1235 0 R/XYZ 0 15259 1] endobj 8277 0 obj [1541 0 R/XYZ 0 15259 1] endobj 8278 0 obj [1589 0 R/XYZ 0 15259 1] endobj 8279 0 obj [1137 0 R/XYZ 0 15259 1] endobj 8280 0 obj [1141 0 R/XYZ 0 15259 1] endobj 8281 0 obj [1204 0 R/XYZ 0 15259 1] endobj 8282 0 obj [1137 0 R/XYZ 0 15259 1] endobj 8283 0 obj [1141 0 R/XYZ 0 15259 1] endobj 8284 0 obj [1204 0 R/XYZ 0 15259 1] endobj 8285 0 obj [1495 0 R/XYZ 0 15259 1] endobj 8286 0 obj [1504 0 R/XYZ 0 15259 1] endobj 8287 0 obj [1519 0 R/XYZ 0 15259 1] endobj 8288 0 obj [1529 0 R/XYZ 0 15259 1] endobj 8289 0 obj [1530 0 R/XYZ 0 15259 1] endobj 8290 0 obj [744 0 R/XYZ 0 15259 1] endobj 8291 0 obj [803 0 R/XYZ 0 15259 1] endobj 8292 0 obj [833 0 R/XYZ 0 15259 1] endobj 8293 0 obj [836 0 R/XYZ 0 15259 1] endobj 8294 0 obj [838 0 R/XYZ 0 15259 1] endobj 8295 0 obj [1055 0 R/XYZ 0 15259 1] endobj 8296 0 obj [1057 0 R/XYZ 0 15259 1] endobj 8297 0 obj [1061 0 R/XYZ 0 15259 1] endobj 8298 0 obj [1063 0 R/XYZ 0 15259 1] endobj 8299 0 obj [1078 0 R/XYZ 0 15259 1] endobj 8300 0 obj [1411 0 R/XYZ 0 15259 1] endobj 8301 0 obj [1623 0 R/XYZ 0 15259 1] endobj 8302 0 obj [871 0 R/XYZ 0 15259 1] endobj 8303 0 obj [1036 0 R/XYZ 0 15259 1] endobj 8304 0 obj [1104 0 R/XYZ 0 15259 1] endobj 8305 0 obj [1111 0 R/XYZ 0 15259 1] endobj 8306 0 obj [1111 0 R/XYZ 0 15259 1] endobj 8307 0 obj [1386 0 R/XYZ 0 15259 1] endobj 8308 0 obj [1419 0 R/XYZ 0 15259 1] endobj 8309 0 obj [1416 0 R/XYZ 0 15259 1] endobj 8310 0 obj [1418 0 R/XYZ 0 15259 1] endobj 8311 0 obj [1418 0 R/XYZ 0 15259 1] endobj 8312 0 obj [1418 0 R/XYZ 0 15259 1] endobj 8313 0 obj [935 0 R/XYZ 0 15259 1] endobj 8314 0 obj [936 0 R/XYZ 0 15259 1] endobj 8315 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8316 0 obj [935 0 R/XYZ 0 15259 1] endobj 8317 0 obj [935 0 R/XYZ 0 15259 1] endobj 8318 0 obj [936 0 R/XYZ 0 15259 1] endobj 8319 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8320 0 obj [935 0 R/XYZ 0 15259 1] endobj 8321 0 obj [1387 0 R/XYZ 0 15259 1] endobj 8322 0 obj [1399 0 R/XYZ 0 15259 1] endobj 8323 0 obj [947 0 R/XYZ 0 15259 1] endobj 8324 0 obj [1044 0 R/XYZ 0 15259 1] endobj 8325 0 obj [1049 0 R/XYZ 0 15259 1] endobj 8326 0 obj [1045 0 R/XYZ 0 15259 1] endobj 8327 0 obj [1004 0 R/XYZ 0 15259 1] endobj 8328 0 obj [1006 0 R/XYZ 0 15259 1] endobj 8329 0 obj [1004 0 R/XYZ 0 15259 1] endobj 8330 0 obj [1005 0 R/XYZ 0 15259 1] endobj 8331 0 obj [1005 0 R/XYZ 0 15259 1] endobj 8332 0 obj [1009 0 R/XYZ 0 15259 1] endobj 8333 0 obj [1009 0 R/XYZ 0 15259 1] endobj 8334 0 obj [1006 0 R/XYZ 0 15259 1] endobj 8335 0 obj [1006 0 R/XYZ 0 15259 1] endobj 8336 0 obj [1006 0 R/XYZ 0 15259 1] endobj 8337 0 obj [1009 0 R/XYZ 0 15259 1] endobj 8338 0 obj [1009 0 R/XYZ 0 15259 1] endobj 8339 0 obj [1004 0 R/XYZ 0 15259 1] endobj 8340 0 obj [1006 0 R/XYZ 0 15259 1] endobj 8341 0 obj [1004 0 R/XYZ 0 15259 1] endobj 8342 0 obj [1005 0 R/XYZ 0 15259 1] endobj 8343 0 obj [1005 0 R/XYZ 0 15259 1] endobj 8344 0 obj [1009 0 R/XYZ 0 15259 1] endobj 8345 0 obj [1009 0 R/XYZ 0 15259 1] endobj 8346 0 obj [1006 0 R/XYZ 0 15259 1] endobj 8347 0 obj [1006 0 R/XYZ 0 15259 1] endobj 8348 0 obj [374 0 R/XYZ 0 15259 1] endobj 8349 0 obj <> endobj 8350 0 obj [1006 0 R/XYZ 0 15259 1] endobj 8351 0 obj [1009 0 R/XYZ 0 15259 1] endobj 8352 0 obj [1009 0 R/XYZ 0 15259 1] endobj 8353 0 obj [1004 0 R/XYZ 0 15259 1] endobj 8354 0 obj [1005 0 R/XYZ 0 15259 1] endobj 8355 0 obj [1009 0 R/XYZ 0 15259 1] endobj 8356 0 obj [1036 0 R/XYZ 0 15259 1] endobj 8357 0 obj [1023 0 R/XYZ 0 15259 1] endobj 8358 0 obj [1023 0 R/XYZ 0 15259 1] endobj 8359 0 obj [1023 0 R/XYZ 0 15259 1] endobj 8360 0 obj [1023 0 R/XYZ 0 15259 1] endobj 8361 0 obj [1023 0 R/XYZ 0 15259 1] endobj 8362 0 obj [1023 0 R/XYZ 0 15259 1] endobj 8363 0 obj [1023 0 R/XYZ 0 15259 1] endobj 8364 0 obj [1023 0 R/XYZ 0 15259 1] endobj 8365 0 obj [990 0 R/XYZ 0 15259 1] endobj 8366 0 obj [991 0 R/XYZ 0 15259 1] endobj 8367 0 obj [990 0 R/XYZ 0 15259 1] endobj 8368 0 obj [990 0 R/XYZ 0 15259 1] endobj 8369 0 obj [991 0 R/XYZ 0 15259 1] endobj 8370 0 obj [993 0 R/XYZ 0 15259 1] endobj 8371 0 obj [990 0 R/XYZ 0 15259 1] endobj 8372 0 obj [991 0 R/XYZ 0 15259 1] endobj 8373 0 obj [995 0 R/XYZ 0 15259 1] endobj 8374 0 obj [991 0 R/XYZ 0 15259 1] endobj 8375 0 obj [991 0 R/XYZ 0 15259 1] endobj 8376 0 obj [996 0 R/XYZ 0 15259 1] endobj 8377 0 obj [991 0 R/XYZ 0 15259 1] endobj 8378 0 obj [956 0 R/XYZ 0 15259 1] endobj 8379 0 obj [1036 0 R/XYZ 0 15259 1] endobj 8380 0 obj [1039 0 R/XYZ 0 15259 1] endobj 8381 0 obj [1522 0 R/XYZ 0 15259 1] endobj 8382 0 obj [956 0 R/XYZ 0 15259 1] endobj 8383 0 obj [1039 0 R/XYZ 0 15259 1] endobj 8384 0 obj [1039 0 R/XYZ 0 15259 1] endobj 8385 0 obj [1036 0 R/XYZ 0 15259 1] endobj 8386 0 obj [952 0 R/XYZ 0 15259 1] endobj 8387 0 obj [956 0 R/XYZ 0 15259 1] endobj 8388 0 obj [1036 0 R/XYZ 0 15259 1] endobj 8389 0 obj [957 0 R/XYZ 0 15259 1] endobj 8390 0 obj [959 0 R/XYZ 0 15259 1] endobj 8391 0 obj [1521 0 R/XYZ 0 15259 1] endobj 8392 0 obj [1523 0 R/XYZ 0 15259 1] endobj 8393 0 obj [957 0 R/XYZ 0 15259 1] endobj 8394 0 obj [957 0 R/XYZ 0 15259 1] endobj 8395 0 obj [959 0 R/XYZ 0 15259 1] endobj 8396 0 obj [1518 0 R/XYZ 0 15259 1] endobj 8397 0 obj [957 0 R/XYZ 0 15259 1] endobj 8398 0 obj [1021 0 R/XYZ 0 15259 1] endobj 8399 0 obj [1021 0 R/XYZ 0 15259 1] endobj 8400 0 obj [1023 0 R/XYZ 0 15259 1] endobj 8401 0 obj [1023 0 R/XYZ 0 15259 1] endobj 8402 0 obj [1021 0 R/XYZ 0 15259 1] endobj 8403 0 obj [1021 0 R/XYZ 0 15259 1] endobj 8404 0 obj [1021 0 R/XYZ 0 15259 1] endobj 8405 0 obj [1021 0 R/XYZ 0 15259 1] endobj 8406 0 obj [1023 0 R/XYZ 0 15259 1] endobj 8407 0 obj [1023 0 R/XYZ 0 15259 1] endobj 8408 0 obj [1021 0 R/XYZ 0 15259 1] endobj 8409 0 obj [1021 0 R/XYZ 0 15259 1] endobj 8410 0 obj [1023 0 R/XYZ 0 15259 1] endobj 8411 0 obj [985 0 R/XYZ 0 15259 1] endobj 8412 0 obj [995 0 R/XYZ 0 15259 1] endobj 8413 0 obj [996 0 R/XYZ 0 15259 1] endobj 8414 0 obj [1627 0 R/XYZ 0 15259 1] endobj 8415 0 obj [985 0 R/XYZ 0 15259 1] endobj 8416 0 obj [984 0 R/XYZ 0 15259 1] endobj 8417 0 obj [1051 0 R/XYZ 0 15259 1] endobj 8418 0 obj [984 0 R/XYZ 0 15259 1] endobj 8419 0 obj [984 0 R/XYZ 0 15259 1] endobj 8420 0 obj [1051 0 R/XYZ 0 15259 1] endobj 8421 0 obj [1641 0 R/XYZ 0 15259 1] endobj 8422 0 obj [984 0 R/XYZ 0 15259 1] endobj 8423 0 obj [983 0 R/XYZ 0 15259 1] endobj 8424 0 obj [986 0 R/XYZ 0 15259 1] endobj 8425 0 obj [1041 0 R/XYZ 0 15259 1] endobj 8426 0 obj [1508 0 R/XYZ 0 15259 1] endobj 8427 0 obj [985 0 R/XYZ 0 15259 1] endobj 8428 0 obj [986 0 R/XYZ 0 15259 1] endobj 8429 0 obj [1042 0 R/XYZ 0 15259 1] endobj 8430 0 obj [1515 0 R/XYZ 0 15259 1] endobj 8431 0 obj [1642 0 R/XYZ 0 15259 1] endobj 8432 0 obj [985 0 R/XYZ 0 15259 1] endobj 8433 0 obj [983 0 R/XYZ 0 15259 1] endobj 8434 0 obj [986 0 R/XYZ 0 15259 1] endobj 8435 0 obj [1041 0 R/XYZ 0 15259 1] endobj 8436 0 obj [1508 0 R/XYZ 0 15259 1] endobj 8437 0 obj [1640 0 R/XYZ 0 15259 1] endobj 8438 0 obj [984 0 R/XYZ 0 15259 1] endobj 8439 0 obj [985 0 R/XYZ 0 15259 1] endobj 8440 0 obj [1013 0 R/XYZ 0 15259 1] endobj 8441 0 obj [1021 0 R/XYZ 0 15259 1] endobj 8442 0 obj [1023 0 R/XYZ 0 15259 1] endobj 8443 0 obj [1036 0 R/XYZ 0 15259 1] endobj 8444 0 obj [984 0 R/XYZ 0 15259 1] endobj 8445 0 obj [984 0 R/XYZ 0 15259 1] endobj 8446 0 obj [986 0 R/XYZ 0 15259 1] endobj 8447 0 obj [1013 0 R/XYZ 0 15259 1] endobj 8448 0 obj [1036 0 R/XYZ 0 15259 1] endobj 8449 0 obj [1042 0 R/XYZ 0 15259 1] endobj 8450 0 obj [1526 0 R/XYZ 0 15259 1] endobj 8451 0 obj [1627 0 R/XYZ 0 15259 1] endobj 8452 0 obj [1641 0 R/XYZ 0 15259 1] endobj 8453 0 obj [984 0 R/XYZ 0 15259 1] endobj 8454 0 obj [947 0 R/XYZ 0 15259 1] endobj 8455 0 obj [951 0 R/XYZ 0 15259 1] endobj 8456 0 obj [953 0 R/XYZ 0 15259 1] endobj 8457 0 obj [955 0 R/XYZ 0 15259 1] endobj 8458 0 obj [958 0 R/XYZ 0 15259 1] endobj 8459 0 obj [961 0 R/XYZ 0 15259 1] endobj 8460 0 obj [993 0 R/XYZ 0 15259 1] endobj 8461 0 obj [1004 0 R/XYZ 0 15259 1] endobj 8462 0 obj [1005 0 R/XYZ 0 15259 1] endobj 8463 0 obj [1042 0 R/XYZ 0 15259 1] endobj 8464 0 obj [1047 0 R/XYZ 0 15259 1] endobj 8465 0 obj [1073 0 R/XYZ 0 15259 1] endobj 8466 0 obj [1279 0 R/XYZ 0 15259 1] endobj 8467 0 obj [1511 0 R/XYZ 0 15259 1] endobj 8468 0 obj [1626 0 R/XYZ 0 15259 1] endobj 8469 0 obj [1641 0 R/XYZ 0 15259 1] endobj 8470 0 obj [947 0 R/XYZ 0 15259 1] endobj 8471 0 obj [1005 0 R/XYZ 0 15259 1] endobj 8472 0 obj [1005 0 R/XYZ 0 15259 1] endobj 8473 0 obj [1003 0 R/XYZ 0 15259 1] endobj 8474 0 obj [1031 0 R/XYZ 0 15259 1] endobj 8475 0 obj [959 0 R/XYZ 0 15259 1] endobj 8476 0 obj [961 0 R/XYZ 0 15259 1] endobj 8477 0 obj [1004 0 R/XYZ 0 15259 1] endobj 8478 0 obj [961 0 R/XYZ 0 15259 1] endobj 8479 0 obj [947 0 R/XYZ 0 15259 1] endobj 8480 0 obj [980 0 R/XYZ 0 15259 1] endobj 8481 0 obj [947 0 R/XYZ 0 15259 1] endobj 8482 0 obj [690 0 R/XYZ 0 15259 1] endobj 8483 0 obj [743 0 R/XYZ 0 15259 1] endobj 8484 0 obj [952 0 R/XYZ 0 15259 1] endobj 8485 0 obj [954 0 R/XYZ 0 15259 1] endobj 8486 0 obj [956 0 R/XYZ 0 15259 1] endobj 8487 0 obj [959 0 R/XYZ 0 15259 1] endobj 8488 0 obj [1031 0 R/XYZ 0 15259 1] endobj 8489 0 obj [1518 0 R/XYZ 0 15259 1] endobj 8490 0 obj [1523 0 R/XYZ 0 15259 1] endobj 8491 0 obj [952 0 R/XYZ 0 15259 1] endobj 8492 0 obj [1033 0 R/XYZ 0 15259 1] endobj 8493 0 obj [1034 0 R/XYZ 0 15259 1] endobj 8494 0 obj [1033 0 R/XYZ 0 15259 1] endobj 8495 0 obj [421 0 R/XYZ 0 15259 1] endobj 8496 0 obj [952 0 R/XYZ 0 15259 1] endobj 8497 0 obj [954 0 R/XYZ 0 15259 1] endobj 8498 0 obj [958 0 R/XYZ 0 15259 1] endobj 8499 0 obj [959 0 R/XYZ 0 15259 1] endobj 8500 0 obj [990 0 R/XYZ 0 15259 1] endobj 8501 0 obj [1036 0 R/XYZ 0 15259 1] endobj 8502 0 obj [1626 0 R/XYZ 0 15259 1] endobj 8503 0 obj [952 0 R/XYZ 0 15259 1] endobj 8504 0 obj [1031 0 R/XYZ 0 15259 1] endobj 8505 0 obj [1032 0 R/XYZ 0 15259 1] endobj 8506 0 obj [1034 0 R/XYZ 0 15259 1] endobj 8507 0 obj [1031 0 R/XYZ 0 15259 1] endobj 8508 0 obj [1031 0 R/XYZ 0 15259 1] endobj 8509 0 obj [1032 0 R/XYZ 0 15259 1] endobj 8510 0 obj [1032 0 R/XYZ 0 15259 1] endobj 8511 0 obj [1003 0 R/XYZ 0 15259 1] endobj 8512 0 obj [1031 0 R/XYZ 0 15259 1] endobj 8513 0 obj [1033 0 R/XYZ 0 15259 1] endobj 8514 0 obj [1041 0 R/XYZ 0 15259 1] endobj 8515 0 obj [1041 0 R/XYZ 0 15259 1] endobj 8516 0 obj [1010 0 R/XYZ 0 15259 1] endobj 8517 0 obj [1028 0 R/XYZ 0 15259 1] endobj 8518 0 obj [1010 0 R/XYZ 0 15259 1] endobj 8519 0 obj [1010 0 R/XYZ 0 15259 1] endobj 8520 0 obj [1010 0 R/XYZ 0 15259 1] endobj 8521 0 obj [1011 0 R/XYZ 0 15259 1] endobj 8522 0 obj [1011 0 R/XYZ 0 15259 1] endobj 8523 0 obj [1013 0 R/XYZ 0 15259 1] endobj 8524 0 obj <> endobj 8525 0 obj [1013 0 R/XYZ 0 15259 1] endobj 8526 0 obj [1010 0 R/XYZ 0 15259 1] endobj 8527 0 obj [1017 0 R/XYZ 0 15259 1] endobj 8528 0 obj [1028 0 R/XYZ 0 15259 1] endobj 8529 0 obj [1010 0 R/XYZ 0 15259 1] endobj 8530 0 obj [1010 0 R/XYZ 0 15259 1] endobj 8531 0 obj [1010 0 R/XYZ 0 15259 1] endobj 8532 0 obj [1011 0 R/XYZ 0 15259 1] endobj 8533 0 obj [1011 0 R/XYZ 0 15259 1] endobj 8534 0 obj [1013 0 R/XYZ 0 15259 1] endobj 8535 0 obj [1017 0 R/XYZ 0 15259 1] endobj 8536 0 obj [1028 0 R/XYZ 0 15259 1] endobj 8537 0 obj [1013 0 R/XYZ 0 15259 1] endobj 8538 0 obj [1009 0 R/XYZ 0 15259 1] endobj 8539 0 obj [1010 0 R/XYZ 0 15259 1] endobj 8540 0 obj [1017 0 R/XYZ 0 15259 1] endobj 8541 0 obj [1028 0 R/XYZ 0 15259 1] endobj 8542 0 obj [1011 0 R/XYZ 0 15259 1] endobj 8543 0 obj [1012 0 R/XYZ 0 15259 1] endobj 8544 0 obj [1198 0 R/XYZ 0 15259 1] endobj 8545 0 obj [1012 0 R/XYZ 0 15259 1] endobj 8546 0 obj [1012 0 R/XYZ 0 15259 1] endobj 8547 0 obj [1013 0 R/XYZ 0 15259 1] endobj 8548 0 obj [965 0 R/XYZ 0 15259 1] endobj 8549 0 obj [966 0 R/XYZ 0 15259 1] endobj 8550 0 obj [970 0 R/XYZ 0 15259 1] endobj 8551 0 obj [974 0 R/XYZ 0 15259 1] endobj 8552 0 obj [965 0 R/XYZ 0 15259 1] endobj 8553 0 obj [1012 0 R/XYZ 0 15259 1] endobj 8554 0 obj [1013 0 R/XYZ 0 15259 1] endobj 8555 0 obj [965 0 R/XYZ 0 15259 1] endobj 8556 0 obj [966 0 R/XYZ 0 15259 1] endobj 8557 0 obj [969 0 R/XYZ 0 15259 1] endobj 8558 0 obj [971 0 R/XYZ 0 15259 1] endobj 8559 0 obj [1010 0 R/XYZ 0 15259 1] endobj 8560 0 obj [1017 0 R/XYZ 0 15259 1] endobj 8561 0 obj [1028 0 R/XYZ 0 15259 1] endobj 8562 0 obj [1641 0 R/XYZ 0 15259 1] endobj 8563 0 obj [965 0 R/XYZ 0 15259 1] endobj 8564 0 obj [965 0 R/XYZ 0 15259 1] endobj 8565 0 obj [969 0 R/XYZ 0 15259 1] endobj 8566 0 obj [971 0 R/XYZ 0 15259 1] endobj 8567 0 obj [975 0 R/XYZ 0 15259 1] endobj 8568 0 obj [986 0 R/XYZ 0 15259 1] endobj 8569 0 obj [1010 0 R/XYZ 0 15259 1] endobj 8570 0 obj [1033 0 R/XYZ 0 15259 1] endobj 8571 0 obj [1041 0 R/XYZ 0 15259 1] endobj 8572 0 obj [1046 0 R/XYZ 0 15259 1] endobj 8573 0 obj [1507 0 R/XYZ 0 15259 1] endobj 8574 0 obj [1508 0 R/XYZ 0 15259 1] endobj 8575 0 obj [965 0 R/XYZ 0 15259 1] endobj 8576 0 obj [966 0 R/XYZ 0 15259 1] endobj 8577 0 obj [969 0 R/XYZ 0 15259 1] endobj 8578 0 obj [970 0 R/XYZ 0 15259 1] endobj 8579 0 obj [972 0 R/XYZ 0 15259 1] endobj 8580 0 obj [975 0 R/XYZ 0 15259 1] endobj 8581 0 obj [986 0 R/XYZ 0 15259 1] endobj 8582 0 obj [995 0 R/XYZ 0 15259 1] endobj 8583 0 obj [996 0 R/XYZ 0 15259 1] endobj 8584 0 obj [1011 0 R/XYZ 0 15259 1] endobj 8585 0 obj [1017 0 R/XYZ 0 15259 1] endobj 8586 0 obj [1028 0 R/XYZ 0 15259 1] endobj 8587 0 obj [1034 0 R/XYZ 0 15259 1] endobj 8588 0 obj [1042 0 R/XYZ 0 15259 1] endobj 8589 0 obj [1046 0 R/XYZ 0 15259 1] endobj 8590 0 obj [1047 0 R/XYZ 0 15259 1] endobj 8591 0 obj [1514 0 R/XYZ 0 15259 1] endobj 8592 0 obj [1515 0 R/XYZ 0 15259 1] endobj 8593 0 obj [1522 0 R/XYZ 0 15259 1] endobj 8594 0 obj [1524 0 R/XYZ 0 15259 1] endobj 8595 0 obj [1526 0 R/XYZ 0 15259 1] endobj 8596 0 obj [1527 0 R/XYZ 0 15259 1] endobj 8597 0 obj [1641 0 R/XYZ 0 15259 1] endobj 8598 0 obj [1642 0 R/XYZ 0 15259 1] endobj 8599 0 obj [965 0 R/XYZ 0 15259 1] endobj 8600 0 obj [1012 0 R/XYZ 0 15259 1] endobj 8601 0 obj [1013 0 R/XYZ 0 15259 1] endobj 8602 0 obj [1012 0 R/XYZ 0 15259 1] endobj 8603 0 obj [1013 0 R/XYZ 0 15259 1] endobj 8604 0 obj [1017 0 R/XYZ 0 15259 1] endobj 8605 0 obj [1028 0 R/XYZ 0 15259 1] endobj 8606 0 obj [1011 0 R/XYZ 0 15259 1] endobj 8607 0 obj [1011 0 R/XYZ 0 15259 1] endobj 8608 0 obj [965 0 R/XYZ 0 15259 1] endobj 8609 0 obj [966 0 R/XYZ 0 15259 1] endobj 8610 0 obj [969 0 R/XYZ 0 15259 1] endobj 8611 0 obj [971 0 R/XYZ 0 15259 1] endobj 8612 0 obj [975 0 R/XYZ 0 15259 1] endobj 8613 0 obj [986 0 R/XYZ 0 15259 1] endobj 8614 0 obj [1017 0 R/XYZ 0 15259 1] endobj 8615 0 obj [1028 0 R/XYZ 0 15259 1] endobj 8616 0 obj [1033 0 R/XYZ 0 15259 1] endobj 8617 0 obj [1041 0 R/XYZ 0 15259 1] endobj 8618 0 obj [1046 0 R/XYZ 0 15259 1] endobj 8619 0 obj [1507 0 R/XYZ 0 15259 1] endobj 8620 0 obj [1508 0 R/XYZ 0 15259 1] endobj 8621 0 obj [1640 0 R/XYZ 0 15259 1] endobj 8622 0 obj [974 0 R/XYZ 0 15259 1] endobj 8623 0 obj [977 0 R/XYZ 0 15259 1] endobj 8624 0 obj [983 0 R/XYZ 0 15259 1] endobj 8625 0 obj [974 0 R/XYZ 0 15259 1] endobj 8626 0 obj [965 0 R/XYZ 0 15259 1] endobj 8627 0 obj [968 0 R/XYZ 0 15259 1] endobj 8628 0 obj [965 0 R/XYZ 0 15259 1] endobj 8629 0 obj [965 0 R/XYZ 0 15259 1] endobj 8630 0 obj [966 0 R/XYZ 0 15259 1] endobj 8631 0 obj [969 0 R/XYZ 0 15259 1] endobj 8632 0 obj [970 0 R/XYZ 0 15259 1] endobj 8633 0 obj [972 0 R/XYZ 0 15259 1] endobj 8634 0 obj [974 0 R/XYZ 0 15259 1] endobj 8635 0 obj [986 0 R/XYZ 0 15259 1] endobj 8636 0 obj [995 0 R/XYZ 0 15259 1] endobj 8637 0 obj [996 0 R/XYZ 0 15259 1] endobj 8638 0 obj [1017 0 R/XYZ 0 15259 1] endobj 8639 0 obj [1019 0 R/XYZ 0 15259 1] endobj 8640 0 obj [1028 0 R/XYZ 0 15259 1] endobj 8641 0 obj [1034 0 R/XYZ 0 15259 1] endobj 8642 0 obj [1042 0 R/XYZ 0 15259 1] endobj 8643 0 obj [1047 0 R/XYZ 0 15259 1] endobj 8644 0 obj [1514 0 R/XYZ 0 15259 1] endobj 8645 0 obj [1515 0 R/XYZ 0 15259 1] endobj 8646 0 obj [1522 0 R/XYZ 0 15259 1] endobj 8647 0 obj [1524 0 R/XYZ 0 15259 1] endobj 8648 0 obj [1526 0 R/XYZ 0 15259 1] endobj 8649 0 obj [1527 0 R/XYZ 0 15259 1] endobj 8650 0 obj [1641 0 R/XYZ 0 15259 1] endobj 8651 0 obj [1642 0 R/XYZ 0 15259 1] endobj 8652 0 obj [965 0 R/XYZ 0 15259 1] endobj 8653 0 obj [1028 0 R/XYZ 0 15259 1] endobj 8654 0 obj [1032 0 R/XYZ 0 15259 1] endobj 8655 0 obj [1034 0 R/XYZ 0 15259 1] endobj 8656 0 obj [1628 0 R/XYZ 0 15259 1] endobj 8657 0 obj [1032 0 R/XYZ 0 15259 1] endobj 8658 0 obj [1028 0 R/XYZ 0 15259 1] endobj 8659 0 obj [1032 0 R/XYZ 0 15259 1] endobj 8660 0 obj [1033 0 R/XYZ 0 15259 1] endobj 8661 0 obj [1028 0 R/XYZ 0 15259 1] endobj 8662 0 obj [1033 0 R/XYZ 0 15259 1] endobj 8663 0 obj [988 0 R/XYZ 0 15259 1] endobj 8664 0 obj [1010 0 R/XYZ 0 15259 1] endobj 8665 0 obj [1025 0 R/XYZ 0 15259 1] endobj 8666 0 obj [988 0 R/XYZ 0 15259 1] endobj 8667 0 obj [1010 0 R/XYZ 0 15259 1] endobj 8668 0 obj [1025 0 R/XYZ 0 15259 1] endobj 8669 0 obj [1198 0 R/XYZ 0 15259 1] endobj 8670 0 obj [1019 0 R/XYZ 0 15259 1] endobj 8671 0 obj [1019 0 R/XYZ 0 15259 1] endobj 8672 0 obj [1021 0 R/XYZ 0 15259 1] endobj 8673 0 obj [1021 0 R/XYZ 0 15259 1] endobj 8674 0 obj [1019 0 R/XYZ 0 15259 1] endobj 8675 0 obj [1019 0 R/XYZ 0 15259 1] endobj 8676 0 obj [1021 0 R/XYZ 0 15259 1] endobj 8677 0 obj [1021 0 R/XYZ 0 15259 1] endobj 8678 0 obj [1019 0 R/XYZ 0 15259 1] endobj 8679 0 obj [977 0 R/XYZ 0 15259 1] endobj 8680 0 obj [978 0 R/XYZ 0 15259 1] endobj 8681 0 obj [977 0 R/XYZ 0 15259 1] endobj 8682 0 obj [977 0 R/XYZ 0 15259 1] endobj 8683 0 obj [979 0 R/XYZ 0 15259 1] endobj 8684 0 obj [977 0 R/XYZ 0 15259 1] endobj 8685 0 obj [977 0 R/XYZ 0 15259 1] endobj 8686 0 obj [978 0 R/XYZ 0 15259 1] endobj 8687 0 obj [980 0 R/XYZ 0 15259 1] endobj 8688 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8689 0 obj [978 0 R/XYZ 0 15259 1] endobj 8690 0 obj [979 0 R/XYZ 0 15259 1] endobj 8691 0 obj [983 0 R/XYZ 0 15259 1] endobj 8692 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8693 0 obj [983 0 R/XYZ 0 15259 1] endobj 8694 0 obj [983 0 R/XYZ 0 15259 1] endobj 8695 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8696 0 obj [983 0 R/XYZ 0 15259 1] endobj 8697 0 obj [978 0 R/XYZ 0 15259 1] endobj 8698 0 obj [978 0 R/XYZ 0 15259 1] endobj 8699 0 obj [978 0 R/XYZ 0 15259 1] endobj 8700 0 obj [978 0 R/XYZ 0 15259 1] endobj 8701 0 obj [978 0 R/XYZ 0 15259 1] endobj 8702 0 obj [980 0 R/XYZ 0 15259 1] endobj 8703 0 obj [978 0 R/XYZ 0 15259 1] endobj 8704 0 obj [978 0 R/XYZ 0 15259 1] endobj 8705 0 obj [980 0 R/XYZ 0 15259 1] endobj 8706 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8707 0 obj [978 0 R/XYZ 0 15259 1] endobj 8708 0 obj [419 0 R/XYZ 0 15259 1] endobj 8709 0 obj [734 0 R/XYZ 0 15259 1] endobj 8710 0 obj [945 0 R/XYZ 0 15259 1] endobj 8711 0 obj [1003 0 R/XYZ 0 15259 1] endobj 8712 0 obj [947 0 R/XYZ 0 15259 1] endobj 8713 0 obj [949 0 R/XYZ 0 15259 1] endobj 8714 0 obj [954 0 R/XYZ 0 15259 1] endobj 8715 0 obj [1518 0 R/XYZ 0 15259 1] endobj 8716 0 obj [947 0 R/XYZ 0 15259 1] endobj 8717 0 obj [1036 0 R/XYZ 0 15259 1] endobj 8718 0 obj [1036 0 R/XYZ 0 15259 1] endobj 8719 0 obj [1039 0 R/XYZ 0 15259 1] endobj 8720 0 obj [1039 0 R/XYZ 0 15259 1] endobj 8721 0 obj [1033 0 R/XYZ 0 15259 1] endobj 8722 0 obj [1034 0 R/XYZ 0 15259 1] endobj 8723 0 obj [1033 0 R/XYZ 0 15259 1] endobj 8724 0 obj [1039 0 R/XYZ 0 15259 1] endobj 8725 0 obj [1040 0 R/XYZ 0 15259 1] endobj 8726 0 obj [1073 0 R/XYZ 0 15259 1] endobj 8727 0 obj [1509 0 R/XYZ 0 15259 1] endobj 8728 0 obj [1040 0 R/XYZ 0 15259 1] endobj 8729 0 obj [988 0 R/XYZ 0 15259 1] endobj 8730 0 obj [988 0 R/XYZ 0 15259 1] endobj 8731 0 obj <> endobj 8732 0 obj [988 0 R/XYZ 0 15259 1] endobj 8733 0 obj [988 0 R/XYZ 0 15259 1] endobj 8734 0 obj [990 0 R/XYZ 0 15259 1] endobj 8735 0 obj [990 0 R/XYZ 0 15259 1] endobj 8736 0 obj [990 0 R/XYZ 0 15259 1] endobj 8737 0 obj [990 0 R/XYZ 0 15259 1] endobj 8738 0 obj [990 0 R/XYZ 0 15259 1] endobj 8739 0 obj [990 0 R/XYZ 0 15259 1] endobj 8740 0 obj [1003 0 R/XYZ 0 15259 1] endobj 8741 0 obj [1009 0 R/XYZ 0 15259 1] endobj 8742 0 obj [472 0 R/XYZ 0 15259 1] endobj 8743 0 obj [945 0 R/XYZ 0 15259 1] endobj 8744 0 obj [947 0 R/XYZ 0 15259 1] endobj 8745 0 obj [949 0 R/XYZ 0 15259 1] endobj 8746 0 obj [953 0 R/XYZ 0 15259 1] endobj 8747 0 obj [954 0 R/XYZ 0 15259 1] endobj 8748 0 obj [958 0 R/XYZ 0 15259 1] endobj 8749 0 obj [979 0 R/XYZ 0 15259 1] endobj 8750 0 obj [993 0 R/XYZ 0 15259 1] endobj 8751 0 obj [1005 0 R/XYZ 0 15259 1] endobj 8752 0 obj [1042 0 R/XYZ 0 15259 1] endobj 8753 0 obj [1047 0 R/XYZ 0 15259 1] endobj 8754 0 obj [1072 0 R/XYZ 0 15259 1] endobj 8755 0 obj [1279 0 R/XYZ 0 15259 1] endobj 8756 0 obj [1506 0 R/XYZ 0 15259 1] endobj 8757 0 obj [1508 0 R/XYZ 0 15259 1] endobj 8758 0 obj [1518 0 R/XYZ 0 15259 1] endobj 8759 0 obj [1523 0 R/XYZ 0 15259 1] endobj 8760 0 obj [1626 0 R/XYZ 0 15259 1] endobj 8761 0 obj [1641 0 R/XYZ 0 15259 1] endobj 8762 0 obj [1036 0 R/XYZ 0 15259 1] endobj 8763 0 obj [1039 0 R/XYZ 0 15259 1] endobj 8764 0 obj [1039 0 R/XYZ 0 15259 1] endobj 8765 0 obj [1003 0 R/XYZ 0 15259 1] endobj 8766 0 obj [472 0 R/XYZ 0 15259 1] endobj 8767 0 obj [1025 0 R/XYZ 0 15259 1] endobj 8768 0 obj [1395 0 R/XYZ 0 15259 1] endobj 8769 0 obj [1397 0 R/XYZ 0 15259 1] endobj 8770 0 obj [1395 0 R/XYZ 0 15259 1] endobj 8771 0 obj [840 0 R/XYZ 0 15259 1] endobj 8772 0 obj [1386 0 R/XYZ 0 15259 1] endobj 8773 0 obj [1391 0 R/XYZ 0 15259 1] endobj 8774 0 obj [1392 0 R/XYZ 0 15259 1] endobj 8775 0 obj [1400 0 R/XYZ 0 15259 1] endobj 8776 0 obj [1403 0 R/XYZ 0 15259 1] endobj 8777 0 obj [1419 0 R/XYZ 0 15259 1] endobj 8778 0 obj [1644 0 R/XYZ 0 15259 1] endobj 8779 0 obj [1392 0 R/XYZ 0 15259 1] endobj 8780 0 obj [1396 0 R/XYZ 0 15259 1] endobj 8781 0 obj [1399 0 R/XYZ 0 15259 1] endobj 8782 0 obj [1404 0 R/XYZ 0 15259 1] endobj 8783 0 obj [1406 0 R/XYZ 0 15259 1] endobj 8784 0 obj [1414 0 R/XYZ 0 15259 1] endobj 8785 0 obj [1418 0 R/XYZ 0 15259 1] endobj 8786 0 obj [1419 0 R/XYZ 0 15259 1] endobj 8787 0 obj [1400 0 R/XYZ 0 15259 1] endobj 8788 0 obj [1396 0 R/XYZ 0 15259 1] endobj 8789 0 obj [1399 0 R/XYZ 0 15259 1] endobj 8790 0 obj [1401 0 R/XYZ 0 15259 1] endobj 8791 0 obj [1595 0 R/XYZ 0 15259 1] endobj 8792 0 obj [1396 0 R/XYZ 0 15259 1] endobj 8793 0 obj [1397 0 R/XYZ 0 15259 1] endobj 8794 0 obj [1595 0 R/XYZ 0 15259 1] endobj 8795 0 obj [1396 0 R/XYZ 0 15259 1] endobj 8796 0 obj [1399 0 R/XYZ 0 15259 1] endobj 8797 0 obj [1401 0 R/XYZ 0 15259 1] endobj 8798 0 obj [1595 0 R/XYZ 0 15259 1] endobj 8799 0 obj [1396 0 R/XYZ 0 15259 1] endobj 8800 0 obj [1397 0 R/XYZ 0 15259 1] endobj 8801 0 obj [483 0 R/XYZ 0 15259 1] endobj 8802 0 obj [1654 0 R/XYZ 0 15259 1] endobj 8803 0 obj [391 0 R/XYZ 0 15259 1] endobj 8804 0 obj [619 0 R/XYZ 0 15259 1] endobj 8805 0 obj [625 0 R/XYZ 0 15259 1] endobj 8806 0 obj [758 0 R/XYZ 0 15259 1] endobj 8807 0 obj [759 0 R/XYZ 0 15259 1] endobj 8808 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8809 0 obj [1365 0 R/XYZ 0 15259 1] endobj 8810 0 obj [619 0 R/XYZ 0 15259 1] endobj 8811 0 obj [619 0 R/XYZ 0 15259 1] endobj 8812 0 obj [651 0 R/XYZ 0 15259 1] endobj 8813 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8814 0 obj [1164 0 R/XYZ 0 15259 1] endobj 8815 0 obj [1166 0 R/XYZ 0 15259 1] endobj 8816 0 obj [619 0 R/XYZ 0 15259 1] endobj 8817 0 obj [1025 0 R/XYZ 0 15259 1] endobj 8818 0 obj [1027 0 R/XYZ 0 15259 1] endobj 8819 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8820 0 obj [1027 0 R/XYZ 0 15259 1] endobj 8821 0 obj [1025 0 R/XYZ 0 15259 1] endobj 8822 0 obj [1027 0 R/XYZ 0 15259 1] endobj 8823 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8824 0 obj [1027 0 R/XYZ 0 15259 1] endobj 8825 0 obj [699 0 R/XYZ 0 15259 1] endobj 8826 0 obj [710 0 R/XYZ 0 15259 1] endobj 8827 0 obj [763 0 R/XYZ 0 15259 1] endobj 8828 0 obj [1025 0 R/XYZ 0 15259 1] endobj 8829 0 obj [1030 0 R/XYZ 0 15259 1] endobj 8830 0 obj [1051 0 R/XYZ 0 15259 1] endobj 8831 0 obj [710 0 R/XYZ 0 15259 1] endobj 8832 0 obj [1051 0 R/XYZ 0 15259 1] endobj 8833 0 obj [619 0 R/XYZ 0 15259 1] endobj 8834 0 obj [621 0 R/XYZ 0 15259 1] endobj 8835 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8836 0 obj [1611 0 R/XYZ 0 15259 1] endobj 8837 0 obj [621 0 R/XYZ 0 15259 1] endobj 8838 0 obj [1025 0 R/XYZ 0 15259 1] endobj 8839 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8840 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8841 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8842 0 obj [709 0 R/XYZ 0 15259 1] endobj 8843 0 obj [421 0 R/XYZ 0 15259 1] endobj 8844 0 obj [656 0 R/XYZ 0 15259 1] endobj 8845 0 obj [671 0 R/XYZ 0 15259 1] endobj 8846 0 obj [504 0 R/XYZ 0 15259 1] endobj 8847 0 obj [506 0 R/XYZ 0 15259 1] endobj 8848 0 obj [1036 0 R/XYZ 0 15259 1] endobj 8849 0 obj [1049 0 R/XYZ 0 15259 1] endobj 8850 0 obj [1051 0 R/XYZ 0 15259 1] endobj 8851 0 obj [1225 0 R/XYZ 0 15259 1] endobj 8852 0 obj [504 0 R/XYZ 0 15259 1] endobj 8853 0 obj [429 0 R/XYZ 0 15259 1] endobj 8854 0 obj [432 0 R/XYZ 0 15259 1] endobj 8855 0 obj [499 0 R/XYZ 0 15259 1] endobj 8856 0 obj [558 0 R/XYZ 0 15259 1] endobj 8857 0 obj [564 0 R/XYZ 0 15259 1] endobj 8858 0 obj [734 0 R/XYZ 0 15259 1] endobj 8859 0 obj [743 0 R/XYZ 0 15259 1] endobj 8860 0 obj [1137 0 R/XYZ 0 15259 1] endobj 8861 0 obj [1652 0 R/XYZ 0 15259 1] endobj 8862 0 obj [1335 0 R/XYZ 0 15259 1] endobj 8863 0 obj [1338 0 R/XYZ 0 15259 1] endobj 8864 0 obj [1347 0 R/XYZ 0 15259 1] endobj 8865 0 obj [1366 0 R/XYZ 0 15259 1] endobj 8866 0 obj [756 0 R/XYZ 0 15259 1] endobj 8867 0 obj [761 0 R/XYZ 0 15259 1] endobj 8868 0 obj [883 0 R/XYZ 0 15259 1] endobj 8869 0 obj [1471 0 R/XYZ 0 15259 1] endobj 8870 0 obj [1622 0 R/XYZ 0 15259 1] endobj 8871 0 obj [1624 0 R/XYZ 0 15259 1] endobj 8872 0 obj [519 0 R/XYZ 0 15259 1] endobj 8873 0 obj [627 0 R/XYZ 0 15259 1] endobj 8874 0 obj [814 0 R/XYZ 0 15259 1] endobj 8875 0 obj [1653 0 R/XYZ 0 15259 1] endobj 8876 0 obj [871 0 R/XYZ 0 15259 1] endobj 8877 0 obj [879 0 R/XYZ 0 15259 1] endobj 8878 0 obj [882 0 R/XYZ 0 15259 1] endobj 8879 0 obj [916 0 R/XYZ 0 15259 1] endobj 8880 0 obj [880 0 R/XYZ 0 15259 1] endobj 8881 0 obj [1025 0 R/XYZ 0 15259 1] endobj 8882 0 obj [1328 0 R/XYZ 0 15259 1] endobj 8883 0 obj [1369 0 R/XYZ 0 15259 1] endobj 8884 0 obj [1373 0 R/XYZ 0 15259 1] endobj 8885 0 obj [1381 0 R/XYZ 0 15259 1] endobj 8886 0 obj [1406 0 R/XYZ 0 15259 1] endobj 8887 0 obj [1409 0 R/XYZ 0 15259 1] endobj 8888 0 obj [1653 0 R/XYZ 0 15259 1] endobj 8889 0 obj [388 0 R/XYZ 0 15259 1] endobj 8890 0 obj [391 0 R/XYZ 0 15259 1] endobj 8891 0 obj [405 0 R/XYZ 0 15259 1] endobj 8892 0 obj [472 0 R/XYZ 0 15259 1] endobj 8893 0 obj [478 0 R/XYZ 0 15259 1] endobj 8894 0 obj [482 0 R/XYZ 0 15259 1] endobj 8895 0 obj [493 0 R/XYZ 0 15259 1] endobj 8896 0 obj [496 0 R/XYZ 0 15259 1] endobj 8897 0 obj [504 0 R/XYZ 0 15259 1] endobj 8898 0 obj [519 0 R/XYZ 0 15259 1] endobj 8899 0 obj [522 0 R/XYZ 0 15259 1] endobj 8900 0 obj [523 0 R/XYZ 0 15259 1] endobj 8901 0 obj [556 0 R/XYZ 0 15259 1] endobj 8902 0 obj [576 0 R/XYZ 0 15259 1] endobj 8903 0 obj [577 0 R/XYZ 0 15259 1] endobj 8904 0 obj [585 0 R/XYZ 0 15259 1] endobj 8905 0 obj [609 0 R/XYZ 0 15259 1] endobj 8906 0 obj [622 0 R/XYZ 0 15259 1] endobj 8907 0 obj [625 0 R/XYZ 0 15259 1] endobj 8908 0 obj [649 0 R/XYZ 0 15259 1] endobj 8909 0 obj [830 0 R/XYZ 0 15259 1] endobj 8910 0 obj [839 0 R/XYZ 0 15259 1] endobj 8911 0 obj [840 0 R/XYZ 0 15259 1] endobj 8912 0 obj [867 0 R/XYZ 0 15259 1] endobj 8913 0 obj [871 0 R/XYZ 0 15259 1] endobj 8914 0 obj [886 0 R/XYZ 0 15259 1] endobj 8915 0 obj [887 0 R/XYZ 0 15259 1] endobj 8916 0 obj [914 0 R/XYZ 0 15259 1] endobj 8917 0 obj [916 0 R/XYZ 0 15259 1] endobj 8918 0 obj [933 0 R/XYZ 0 15259 1] endobj 8919 0 obj [1036 0 R/XYZ 0 15259 1] endobj 8920 0 obj [1051 0 R/XYZ 0 15259 1] endobj 8921 0 obj [1064 0 R/XYZ 0 15259 1] endobj 8922 0 obj [1083 0 R/XYZ 0 15259 1] endobj 8923 0 obj [1084 0 R/XYZ 0 15259 1] endobj 8924 0 obj [1097 0 R/XYZ 0 15259 1] endobj 8925 0 obj [1098 0 R/XYZ 0 15259 1] endobj 8926 0 obj [1100 0 R/XYZ 0 15259 1] endobj 8927 0 obj [1106 0 R/XYZ 0 15259 1] endobj 8928 0 obj [1109 0 R/XYZ 0 15259 1] endobj 8929 0 obj [1111 0 R/XYZ 0 15259 1] endobj 8930 0 obj [1113 0 R/XYZ 0 15259 1] endobj 8931 0 obj [1115 0 R/XYZ 0 15259 1] endobj 8932 0 obj [1122 0 R/XYZ 0 15259 1] endobj 8933 0 obj [1126 0 R/XYZ 0 15259 1] endobj 8934 0 obj [1134 0 R/XYZ 0 15259 1] endobj 8935 0 obj [1137 0 R/XYZ 0 15259 1] endobj 8936 0 obj [1142 0 R/XYZ 0 15259 1] endobj 8937 0 obj [1144 0 R/XYZ 0 15259 1] endobj 8938 0 obj [1152 0 R/XYZ 0 15259 1] endobj 8939 0 obj [1153 0 R/XYZ 0 15259 1] endobj 8940 0 obj [1156 0 R/XYZ 0 15259 1] endobj 8941 0 obj [1158 0 R/XYZ 0 15259 1] endobj 8942 0 obj [1167 0 R/XYZ 0 15259 1] endobj 8943 0 obj [1169 0 R/XYZ 0 15259 1] endobj 8944 0 obj [1172 0 R/XYZ 0 15259 1] endobj 8945 0 obj [1177 0 R/XYZ 0 15259 1] endobj 8946 0 obj [1217 0 R/XYZ 0 15259 1] endobj 8947 0 obj [1223 0 R/XYZ 0 15259 1] endobj 8948 0 obj [1225 0 R/XYZ 0 15259 1] endobj 8949 0 obj [1250 0 R/XYZ 0 15259 1] endobj 8950 0 obj [1252 0 R/XYZ 0 15259 1] endobj 8951 0 obj [1305 0 R/XYZ 0 15259 1] endobj 8952 0 obj [1307 0 R/XYZ 0 15259 1] endobj 8953 0 obj [1317 0 R/XYZ 0 15259 1] endobj 8954 0 obj [1319 0 R/XYZ 0 15259 1] endobj 8955 0 obj [1328 0 R/XYZ 0 15259 1] endobj 8956 0 obj [1366 0 R/XYZ 0 15259 1] endobj 8957 0 obj [1369 0 R/XYZ 0 15259 1] endobj 8958 0 obj [1373 0 R/XYZ 0 15259 1] endobj 8959 0 obj [1374 0 R/XYZ 0 15259 1] endobj 8960 0 obj [1406 0 R/XYZ 0 15259 1] endobj 8961 0 obj [1408 0 R/XYZ 0 15259 1] endobj 8962 0 obj [1413 0 R/XYZ 0 15259 1] endobj 8963 0 obj [1416 0 R/XYZ 0 15259 1] endobj 8964 0 obj [1430 0 R/XYZ 0 15259 1] endobj 8965 0 obj [1436 0 R/XYZ 0 15259 1] endobj 8966 0 obj [1451 0 R/XYZ 0 15259 1] endobj 8967 0 obj [1453 0 R/XYZ 0 15259 1] endobj 8968 0 obj [1454 0 R/XYZ 0 15259 1] endobj 8969 0 obj [1499 0 R/XYZ 0 15259 1] endobj 8970 0 obj [1500 0 R/XYZ 0 15259 1] endobj 8971 0 obj [1505 0 R/XYZ 0 15259 1] endobj 8972 0 obj [1512 0 R/XYZ 0 15259 1] endobj 8973 0 obj [1517 0 R/XYZ 0 15259 1] endobj 8974 0 obj [1530 0 R/XYZ 0 15259 1] endobj 8975 0 obj [1532 0 R/XYZ 0 15259 1] endobj 8976 0 obj [1607 0 R/XYZ 0 15259 1] endobj 8977 0 obj [1608 0 R/XYZ 0 15259 1] endobj 8978 0 obj [1636 0 R/XYZ 0 15259 1] endobj 8979 0 obj [1643 0 R/XYZ 0 15259 1] endobj 8980 0 obj [493 0 R/XYZ 0 15259 1] endobj 8981 0 obj [1131 0 R/XYZ 0 15259 1] endobj 8982 0 obj [1294 0 R/XYZ 0 15259 1] endobj 8983 0 obj [384 0 R/XYZ 0 15259 1] endobj 8984 0 obj [386 0 R/XYZ 0 15259 1] endobj 8985 0 obj [585 0 R/XYZ 0 15259 1] endobj 8986 0 obj [591 0 R/XYZ 0 15259 1] endobj 8987 0 obj [1025 0 R/XYZ 0 15259 1] endobj 8988 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8989 0 obj [1360 0 R/XYZ 0 15259 1] endobj 8990 0 obj [1517 0 R/XYZ 0 15259 1] endobj 8991 0 obj [585 0 R/XYZ 0 15259 1] endobj 8992 0 obj [1026 0 R/XYZ 0 15259 1] endobj 8993 0 obj [1037 0 R/XYZ 0 15259 1] endobj 8994 0 obj [1019 0 R/XYZ 0 15259 1] endobj 8995 0 obj [1021 0 R/XYZ 0 15259 1] endobj 8996 0 obj [977 0 R/XYZ 0 15259 1] endobj 8997 0 obj [983 0 R/XYZ 0 15259 1] endobj 8998 0 obj [585 0 R/XYZ 0 15259 1] endobj 8999 0 obj [591 0 R/XYZ 0 15259 1] endobj 9000 0 obj [571 0 R/XYZ 0 15259 1] endobj 9001 0 obj [574 0 R/XYZ 0 15259 1] endobj 9002 0 obj [576 0 R/XYZ 0 15259 1] endobj 9003 0 obj [871 0 R/XYZ 0 15259 1] endobj 9004 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9005 0 obj [574 0 R/XYZ 0 15259 1] endobj 9006 0 obj [574 0 R/XYZ 0 15259 1] endobj 9007 0 obj [576 0 R/XYZ 0 15259 1] endobj 9008 0 obj [871 0 R/XYZ 0 15259 1] endobj 9009 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9010 0 obj [574 0 R/XYZ 0 15259 1] endobj 9011 0 obj [1091 0 R/XYZ 0 15259 1] endobj 9012 0 obj [1095 0 R/XYZ 0 15259 1] endobj 9013 0 obj [1100 0 R/XYZ 0 15259 1] endobj 9014 0 obj [1595 0 R/XYZ 0 15259 1] endobj 9015 0 obj [1508 0 R/XYZ 0 15259 1] endobj 9016 0 obj [1531 0 R/XYZ 0 15259 1] endobj 9017 0 obj [1534 0 R/XYZ 0 15259 1] endobj 9018 0 obj [1535 0 R/XYZ 0 15259 1] endobj 9019 0 obj [1531 0 R/XYZ 0 15259 1] endobj 9020 0 obj [1134 0 R/XYZ 0 15259 1] endobj 9021 0 obj [1135 0 R/XYZ 0 15259 1] endobj 9022 0 obj [1413 0 R/XYZ 0 15259 1] endobj 9023 0 obj [1500 0 R/XYZ 0 15259 1] endobj 9024 0 obj [1505 0 R/XYZ 0 15259 1] endobj 9025 0 obj [1594 0 R/XYZ 0 15259 1] endobj 9026 0 obj [1134 0 R/XYZ 0 15259 1] endobj 9027 0 obj [1135 0 R/XYZ 0 15259 1] endobj 9028 0 obj [448 0 R/XYZ 0 15259 1] endobj 9029 0 obj [451 0 R/XYZ 0 15259 1] endobj 9030 0 obj [868 0 R/XYZ 0 15259 1] endobj 9031 0 obj [1036 0 R/XYZ 0 15259 1] endobj 9032 0 obj [1082 0 R/XYZ 0 15259 1] endobj 9033 0 obj [1131 0 R/XYZ 0 15259 1] endobj 9034 0 obj [1134 0 R/XYZ 0 15259 1] endobj 9035 0 obj [1144 0 R/XYZ 0 15259 1] endobj 9036 0 obj [1225 0 R/XYZ 0 15259 1] endobj 9037 0 obj [1253 0 R/XYZ 0 15259 1] endobj 9038 0 obj [1294 0 R/XYZ 0 15259 1] endobj 9039 0 obj [1436 0 R/XYZ 0 15259 1] endobj 9040 0 obj [1452 0 R/XYZ 0 15259 1] endobj 9041 0 obj [1131 0 R/XYZ 0 15259 1] endobj 9042 0 obj [1091 0 R/XYZ 0 15259 1] endobj 9043 0 obj [1445 0 R/XYZ 0 15259 1] endobj 9044 0 obj [1449 0 R/XYZ 0 15259 1] endobj 9045 0 obj [1466 0 R/XYZ 0 15259 1] endobj 9046 0 obj [1595 0 R/XYZ 0 15259 1] endobj 9047 0 obj [535 0 R/XYZ 0 15259 1] endobj 9048 0 obj [542 0 R/XYZ 0 15259 1] endobj 9049 0 obj [665 0 R/XYZ 0 15259 1] endobj 9050 0 obj [732 0 R/XYZ 0 15259 1] endobj 9051 0 obj [738 0 R/XYZ 0 15259 1] endobj 9052 0 obj [764 0 R/XYZ 0 15259 1] endobj 9053 0 obj [765 0 R/XYZ 0 15259 1] endobj 9054 0 obj [769 0 R/XYZ 0 15259 1] endobj 9055 0 obj [786 0 R/XYZ 0 15259 1] endobj 9056 0 obj [1214 0 R/XYZ 0 15259 1] endobj 9057 0 obj [445 0 R/XYZ 0 15259 1] endobj 9058 0 obj [446 0 R/XYZ 0 15259 1] endobj 9059 0 obj [451 0 R/XYZ 0 15259 1] endobj 9060 0 obj [535 0 R/XYZ 0 15259 1] endobj 9061 0 obj [537 0 R/XYZ 0 15259 1] endobj 9062 0 obj [542 0 R/XYZ 0 15259 1] endobj 9063 0 obj [721 0 R/XYZ 0 15259 1] endobj 9064 0 obj [732 0 R/XYZ 0 15259 1] endobj 9065 0 obj [738 0 R/XYZ 0 15259 1] endobj 9066 0 obj [764 0 R/XYZ 0 15259 1] endobj 9067 0 obj [765 0 R/XYZ 0 15259 1] endobj 9068 0 obj [769 0 R/XYZ 0 15259 1] endobj 9069 0 obj [774 0 R/XYZ 0 15259 1] endobj 9070 0 obj [786 0 R/XYZ 0 15259 1] endobj 9071 0 obj [794 0 R/XYZ 0 15259 1] endobj 9072 0 obj [809 0 R/XYZ 0 15259 1] endobj 9073 0 obj [811 0 R/XYZ 0 15259 1] endobj 9074 0 obj [880 0 R/XYZ 0 15259 1] endobj 9075 0 obj [938 0 R/XYZ 0 15259 1] endobj 9076 0 obj [1214 0 R/XYZ 0 15259 1] endobj 9077 0 obj [1624 0 R/XYZ 0 15259 1] endobj 9078 0 obj [459 0 R/XYZ 0 15259 1] endobj 9079 0 obj [649 0 R/XYZ 0 15259 1] endobj 9080 0 obj [704 0 R/XYZ 0 15259 1] endobj 9081 0 obj [705 0 R/XYZ 0 15259 1] endobj 9082 0 obj [712 0 R/XYZ 0 15259 1] endobj 9083 0 obj [1313 0 R/XYZ 0 15259 1] endobj 9084 0 obj [1314 0 R/XYZ 0 15259 1] endobj 9085 0 obj [1318 0 R/XYZ 0 15259 1] endobj 9086 0 obj [1447 0 R/XYZ 0 15259 1] endobj 9087 0 obj [1532 0 R/XYZ 0 15259 1] endobj 9088 0 obj [1534 0 R/XYZ 0 15259 1] endobj 9089 0 obj [1611 0 R/XYZ 0 15259 1] endobj 9090 0 obj [1612 0 R/XYZ 0 15259 1] endobj 9091 0 obj [704 0 R/XYZ 0 15259 1] endobj 9092 0 obj [1087 0 R/XYZ 0 15259 1] endobj 9093 0 obj [1101 0 R/XYZ 0 15259 1] endobj 9094 0 obj [1097 0 R/XYZ 0 15259 1] endobj 9095 0 obj [1092 0 R/XYZ 0 15259 1] endobj 9096 0 obj [1097 0 R/XYZ 0 15259 1] endobj 9097 0 obj [368 0 R/XYZ 0 15259 1] endobj 9098 0 obj [374 0 R/XYZ 0 15259 1] endobj 9099 0 obj <> endobj 9100 0 obj [1198 0 R/XYZ 0 15259 1] endobj 9101 0 obj [871 0 R/XYZ 0 15259 1] endobj 9102 0 obj [1036 0 R/XYZ 0 15259 1] endobj 9103 0 obj [1225 0 R/XYZ 0 15259 1] endobj 9104 0 obj [1252 0 R/XYZ 0 15259 1] endobj 9105 0 obj [1255 0 R/XYZ 0 15259 1] endobj 9106 0 obj [1268 0 R/XYZ 0 15259 1] endobj 9107 0 obj [1270 0 R/XYZ 0 15259 1] endobj 9108 0 obj [1252 0 R/XYZ 0 15259 1] endobj 9109 0 obj [1292 0 R/XYZ 0 15259 1] endobj 9110 0 obj [1294 0 R/XYZ 0 15259 1] endobj 9111 0 obj [1300 0 R/XYZ 0 15259 1] endobj 9112 0 obj [1306 0 R/XYZ 0 15259 1] endobj 9113 0 obj [1312 0 R/XYZ 0 15259 1] endobj 9114 0 obj [1594 0 R/XYZ 0 15259 1] endobj 9115 0 obj [1292 0 R/XYZ 0 15259 1] endobj 9116 0 obj [1297 0 R/XYZ 0 15259 1] endobj 9117 0 obj [871 0 R/XYZ 0 15259 1] endobj 9118 0 obj [1036 0 R/XYZ 0 15259 1] endobj 9119 0 obj [1253 0 R/XYZ 0 15259 1] endobj 9120 0 obj [1260 0 R/XYZ 0 15259 1] endobj 9121 0 obj [1264 0 R/XYZ 0 15259 1] endobj 9122 0 obj [1253 0 R/XYZ 0 15259 1] endobj 9123 0 obj [871 0 R/XYZ 0 15259 1] endobj 9124 0 obj [1036 0 R/XYZ 0 15259 1] endobj 9125 0 obj [1253 0 R/XYZ 0 15259 1] endobj 9126 0 obj [1294 0 R/XYZ 0 15259 1] endobj 9127 0 obj [1297 0 R/XYZ 0 15259 1] endobj 9128 0 obj [1298 0 R/XYZ 0 15259 1] endobj 9129 0 obj [1301 0 R/XYZ 0 15259 1] endobj 9130 0 obj [1253 0 R/XYZ 0 15259 1] endobj 9131 0 obj [1300 0 R/XYZ 0 15259 1] endobj 9132 0 obj [1301 0 R/XYZ 0 15259 1] endobj 9133 0 obj [445 0 R/XYZ 0 15259 1] endobj 9134 0 obj [451 0 R/XYZ 0 15259 1] endobj 9135 0 obj [458 0 R/XYZ 0 15259 1] endobj 9136 0 obj [870 0 R/XYZ 0 15259 1] endobj 9137 0 obj [873 0 R/XYZ 0 15259 1] endobj 9138 0 obj [445 0 R/XYZ 0 15259 1] endobj 9139 0 obj [451 0 R/XYZ 0 15259 1] endobj 9140 0 obj [445 0 R/XYZ 0 15259 1] endobj 9141 0 obj [451 0 R/XYZ 0 15259 1] endobj 9142 0 obj [421 0 R/XYZ 0 15259 1] endobj 9143 0 obj [716 0 R/XYZ 0 15259 1] endobj 9144 0 obj [531 0 R/XYZ 0 15259 1] endobj 9145 0 obj [384 0 R/XYZ 0 15259 1] endobj 9146 0 obj [388 0 R/XYZ 0 15259 1] endobj 9147 0 obj [451 0 R/XYZ 0 15259 1] endobj 9148 0 obj [452 0 R/XYZ 0 15259 1] endobj 9149 0 obj [459 0 R/XYZ 0 15259 1] endobj 9150 0 obj [482 0 R/XYZ 0 15259 1] endobj 9151 0 obj [483 0 R/XYZ 0 15259 1] endobj 9152 0 obj [591 0 R/XYZ 0 15259 1] endobj 9153 0 obj [1172 0 R/XYZ 0 15259 1] endobj 9154 0 obj [877 0 R/XYZ 0 15259 1] endobj 9155 0 obj [879 0 R/XYZ 0 15259 1] endobj 9156 0 obj [1418 0 R/XYZ 0 15259 1] endobj 9157 0 obj [564 0 R/XYZ 0 15259 1] endobj 9158 0 obj [568 0 R/XYZ 0 15259 1] endobj 9159 0 obj [571 0 R/XYZ 0 15259 1] endobj 9160 0 obj [577 0 R/XYZ 0 15259 1] endobj 9161 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9162 0 obj [568 0 R/XYZ 0 15259 1] endobj 9163 0 obj [1508 0 R/XYZ 0 15259 1] endobj 9164 0 obj [1516 0 R/XYZ 0 15259 1] endobj 9165 0 obj [1526 0 R/XYZ 0 15259 1] endobj 9166 0 obj [1516 0 R/XYZ 0 15259 1] endobj 9167 0 obj [568 0 R/XYZ 0 15259 1] endobj 9168 0 obj [571 0 R/XYZ 0 15259 1] endobj 9169 0 obj [577 0 R/XYZ 0 15259 1] endobj 9170 0 obj [871 0 R/XYZ 0 15259 1] endobj 9171 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9172 0 obj [568 0 R/XYZ 0 15259 1] endobj 9173 0 obj [568 0 R/XYZ 0 15259 1] endobj 9174 0 obj [570 0 R/XYZ 0 15259 1] endobj 9175 0 obj [871 0 R/XYZ 0 15259 1] endobj 9176 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9177 0 obj [568 0 R/XYZ 0 15259 1] endobj 9178 0 obj [1508 0 R/XYZ 0 15259 1] endobj 9179 0 obj [1515 0 R/XYZ 0 15259 1] endobj 9180 0 obj [1531 0 R/XYZ 0 15259 1] endobj 9181 0 obj [1515 0 R/XYZ 0 15259 1] endobj 9182 0 obj [1335 0 R/XYZ 0 15259 1] endobj 9183 0 obj [1338 0 R/XYZ 0 15259 1] endobj 9184 0 obj [1346 0 R/XYZ 0 15259 1] endobj 9185 0 obj [1349 0 R/XYZ 0 15259 1] endobj 9186 0 obj [1368 0 R/XYZ 0 15259 1] endobj 9187 0 obj [1381 0 R/XYZ 0 15259 1] endobj 9188 0 obj [1643 0 R/XYZ 0 15259 1] endobj 9189 0 obj [720 0 R/XYZ 0 15259 1] endobj 9190 0 obj [726 0 R/XYZ 0 15259 1] endobj 9191 0 obj [738 0 R/XYZ 0 15259 1] endobj 9192 0 obj [764 0 R/XYZ 0 15259 1] endobj 9193 0 obj [858 0 R/XYZ 0 15259 1] endobj 9194 0 obj [939 0 R/XYZ 0 15259 1] endobj 9195 0 obj [868 0 R/XYZ 0 15259 1] endobj 9196 0 obj [870 0 R/XYZ 0 15259 1] endobj 9197 0 obj [886 0 R/XYZ 0 15259 1] endobj 9198 0 obj [887 0 R/XYZ 0 15259 1] endobj 9199 0 obj [899 0 R/XYZ 0 15259 1] endobj 9200 0 obj [902 0 R/XYZ 0 15259 1] endobj 9201 0 obj [1113 0 R/XYZ 0 15259 1] endobj 9202 0 obj [1364 0 R/XYZ 0 15259 1] endobj 9203 0 obj [418 0 R/XYZ 0 15259 1] endobj 9204 0 obj [528 0 R/XYZ 0 15259 1] endobj 9205 0 obj [574 0 R/XYZ 0 15259 1] endobj 9206 0 obj [610 0 R/XYZ 0 15259 1] endobj 9207 0 obj [613 0 R/XYZ 0 15259 1] endobj 9208 0 obj [619 0 R/XYZ 0 15259 1] endobj 9209 0 obj [621 0 R/XYZ 0 15259 1] endobj 9210 0 obj [625 0 R/XYZ 0 15259 1] endobj 9211 0 obj [628 0 R/XYZ 0 15259 1] endobj 9212 0 obj [630 0 R/XYZ 0 15259 1] endobj 9213 0 obj [632 0 R/XYZ 0 15259 1] endobj 9214 0 obj [634 0 R/XYZ 0 15259 1] endobj 9215 0 obj [677 0 R/XYZ 0 15259 1] endobj 9216 0 obj [679 0 R/XYZ 0 15259 1] endobj 9217 0 obj [682 0 R/XYZ 0 15259 1] endobj 9218 0 obj [892 0 R/XYZ 0 15259 1] endobj 9219 0 obj [898 0 R/XYZ 0 15259 1] endobj 9220 0 obj [947 0 R/XYZ 0 15259 1] endobj 9221 0 obj [965 0 R/XYZ 0 15259 1] endobj 9222 0 obj [977 0 R/XYZ 0 15259 1] endobj 9223 0 obj [984 0 R/XYZ 0 15259 1] endobj 9224 0 obj [1005 0 R/XYZ 0 15259 1] endobj 9225 0 obj [1011 0 R/XYZ 0 15259 1] endobj 9226 0 obj [1013 0 R/XYZ 0 15259 1] endobj 9227 0 obj [1021 0 R/XYZ 0 15259 1] endobj 9228 0 obj [1023 0 R/XYZ 0 15259 1] endobj 9229 0 obj [1040 0 R/XYZ 0 15259 1] endobj 9230 0 obj [1106 0 R/XYZ 0 15259 1] endobj 9231 0 obj [1111 0 R/XYZ 0 15259 1] endobj 9232 0 obj [1232 0 R/XYZ 0 15259 1] endobj 9233 0 obj [1236 0 R/XYZ 0 15259 1] endobj 9234 0 obj [1237 0 R/XYZ 0 15259 1] endobj 9235 0 obj [1244 0 R/XYZ 0 15259 1] endobj 9236 0 obj [1247 0 R/XYZ 0 15259 1] endobj 9237 0 obj [1253 0 R/XYZ 0 15259 1] endobj 9238 0 obj [1265 0 R/XYZ 0 15259 1] endobj 9239 0 obj [614 0 R/XYZ 0 15259 1] endobj 9240 0 obj [628 0 R/XYZ 0 15259 1] endobj 9241 0 obj [641 0 R/XYZ 0 15259 1] endobj 9242 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9243 0 obj [628 0 R/XYZ 0 15259 1] endobj 9244 0 obj [585 0 R/XYZ 0 15259 1] endobj 9245 0 obj [591 0 R/XYZ 0 15259 1] endobj 9246 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9247 0 obj [585 0 R/XYZ 0 15259 1] endobj 9248 0 obj [734 0 R/XYZ 0 15259 1] endobj 9249 0 obj [418 0 R/XYZ 0 15259 1] endobj 9250 0 obj [605 0 R/XYZ 0 15259 1] endobj 9251 0 obj [614 0 R/XYZ 0 15259 1] endobj 9252 0 obj [623 0 R/XYZ 0 15259 1] endobj 9253 0 obj [633 0 R/XYZ 0 15259 1] endobj 9254 0 obj [636 0 R/XYZ 0 15259 1] endobj 9255 0 obj [705 0 R/XYZ 0 15259 1] endobj 9256 0 obj [1597 0 R/XYZ 0 15259 1] endobj 9257 0 obj [1606 0 R/XYZ 0 15259 1] endobj 9258 0 obj [1651 0 R/XYZ 0 15259 1] endobj 9259 0 obj [1653 0 R/XYZ 0 15259 1] endobj 9260 0 obj [721 0 R/XYZ 0 15259 1] endobj 9261 0 obj [1061 0 R/XYZ 0 15259 1] endobj 9262 0 obj [720 0 R/XYZ 0 15259 1] endobj 9263 0 obj [724 0 R/XYZ 0 15259 1] endobj 9264 0 obj [1060 0 R/XYZ 0 15259 1] endobj 9265 0 obj [1607 0 R/XYZ 0 15259 1] endobj 9266 0 obj [721 0 R/XYZ 0 15259 1] endobj 9267 0 obj [723 0 R/XYZ 0 15259 1] endobj 9268 0 obj [721 0 R/XYZ 0 15259 1] endobj 9269 0 obj [723 0 R/XYZ 0 15259 1] endobj 9270 0 obj [853 0 R/XYZ 0 15259 1] endobj 9271 0 obj [721 0 R/XYZ 0 15259 1] endobj 9272 0 obj [723 0 R/XYZ 0 15259 1] endobj 9273 0 obj [721 0 R/XYZ 0 15259 1] endobj 9274 0 obj [723 0 R/XYZ 0 15259 1] endobj 9275 0 obj [721 0 R/XYZ 0 15259 1] endobj 9276 0 obj [723 0 R/XYZ 0 15259 1] endobj 9277 0 obj [939 0 R/XYZ 0 15259 1] endobj 9278 0 obj [724 0 R/XYZ 0 15259 1] endobj 9279 0 obj [1607 0 R/XYZ 0 15259 1] endobj 9280 0 obj [721 0 R/XYZ 0 15259 1] endobj 9281 0 obj [723 0 R/XYZ 0 15259 1] endobj 9282 0 obj [721 0 R/XYZ 0 15259 1] endobj 9283 0 obj [723 0 R/XYZ 0 15259 1] endobj 9284 0 obj [721 0 R/XYZ 0 15259 1] endobj 9285 0 obj [723 0 R/XYZ 0 15259 1] endobj 9286 0 obj [721 0 R/XYZ 0 15259 1] endobj 9287 0 obj [723 0 R/XYZ 0 15259 1] endobj 9288 0 obj [1060 0 R/XYZ 0 15259 1] endobj 9289 0 obj [1607 0 R/XYZ 0 15259 1] endobj 9290 0 obj [721 0 R/XYZ 0 15259 1] endobj 9291 0 obj [723 0 R/XYZ 0 15259 1] endobj 9292 0 obj [721 0 R/XYZ 0 15259 1] endobj 9293 0 obj [723 0 R/XYZ 0 15259 1] endobj 9294 0 obj [722 0 R/XYZ 0 15259 1] endobj 9295 0 obj [723 0 R/XYZ 0 15259 1] endobj 9296 0 obj [722 0 R/XYZ 0 15259 1] endobj 9297 0 obj [723 0 R/XYZ 0 15259 1] endobj 9298 0 obj [722 0 R/XYZ 0 15259 1] endobj 9299 0 obj [724 0 R/XYZ 0 15259 1] endobj 9300 0 obj [722 0 R/XYZ 0 15259 1] endobj 9301 0 obj [724 0 R/XYZ 0 15259 1] endobj 9302 0 obj [722 0 R/XYZ 0 15259 1] endobj 9303 0 obj [724 0 R/XYZ 0 15259 1] endobj 9304 0 obj [722 0 R/XYZ 0 15259 1] endobj 9305 0 obj [724 0 R/XYZ 0 15259 1] endobj 9306 0 obj [472 0 R/XYZ 0 15259 1] endobj 9307 0 obj [723 0 R/XYZ 0 15259 1] endobj 9308 0 obj [1388 0 R/XYZ 0 15259 1] endobj 9309 0 obj [1418 0 R/XYZ 0 15259 1] endobj 9310 0 obj [1419 0 R/XYZ 0 15259 1] endobj 9311 0 obj [1388 0 R/XYZ 0 15259 1] endobj 9312 0 obj [1409 0 R/XYZ 0 15259 1] endobj 9313 0 obj [1418 0 R/XYZ 0 15259 1] endobj 9314 0 obj [1644 0 R/XYZ 0 15259 1] endobj 9315 0 obj [1183 0 R/XYZ 0 15259 1] endobj 9316 0 obj [1315 0 R/XYZ 0 15259 1] endobj 9317 0 obj [565 0 R/XYZ 0 15259 1] endobj 9318 0 obj [568 0 R/XYZ 0 15259 1] endobj 9319 0 obj [570 0 R/XYZ 0 15259 1] endobj 9320 0 obj [577 0 R/XYZ 0 15259 1] endobj 9321 0 obj [583 0 R/XYZ 0 15259 1] endobj 9322 0 obj [585 0 R/XYZ 0 15259 1] endobj 9323 0 obj [871 0 R/XYZ 0 15259 1] endobj 9324 0 obj [585 0 R/XYZ 0 15259 1] endobj 9325 0 obj [1010 0 R/XYZ 0 15259 1] endobj 9326 0 obj [1198 0 R/XYZ 0 15259 1] endobj 9327 0 obj [542 0 R/XYZ 0 15259 1] endobj 9328 0 obj [543 0 R/XYZ 0 15259 1] endobj 9329 0 obj [383 0 R/XYZ 0 15259 1] endobj 9330 0 obj [388 0 R/XYZ 0 15259 1] endobj 9331 0 obj [411 0 R/XYZ 0 15259 1] endobj 9332 0 obj [596 0 R/XYZ 0 15259 1] endobj 9333 0 obj [600 0 R/XYZ 0 15259 1] endobj 9334 0 obj [738 0 R/XYZ 0 15259 1] endobj 9335 0 obj [764 0 R/XYZ 0 15259 1] endobj 9336 0 obj [803 0 R/XYZ 0 15259 1] endobj 9337 0 obj [1610 0 R/XYZ 0 15259 1] endobj 9338 0 obj [399 0 R/XYZ 0 15259 1] endobj 9339 0 obj [1066 0 R/XYZ 0 15259 1] endobj 9340 0 obj [1057 0 R/XYZ 0 15259 1] endobj 9341 0 obj [737 0 R/XYZ 0 15259 1] endobj 9342 0 obj [1330 0 R/XYZ 0 15259 1] endobj 9343 0 obj [1344 0 R/XYZ 0 15259 1] endobj 9344 0 obj [1345 0 R/XYZ 0 15259 1] endobj 9345 0 obj [1057 0 R/XYZ 0 15259 1] endobj 9346 0 obj [1078 0 R/XYZ 0 15259 1] endobj 9347 0 obj [446 0 R/XYZ 0 15259 1] endobj 9348 0 obj [451 0 R/XYZ 0 15259 1] endobj 9349 0 obj [627 0 R/XYZ 0 15259 1] endobj 9350 0 obj [815 0 R/XYZ 0 15259 1] endobj 9351 0 obj [1064 0 R/XYZ 0 15259 1] endobj 9352 0 obj [1221 0 R/XYZ 0 15259 1] endobj 9353 0 obj [1653 0 R/XYZ 0 15259 1] endobj 9354 0 obj [785 0 R/XYZ 0 15259 1] endobj 9355 0 obj [483 0 R/XYZ 0 15259 1] endobj 9356 0 obj [785 0 R/XYZ 0 15259 1] endobj 9357 0 obj [814 0 R/XYZ 0 15259 1] endobj 9358 0 obj [814 0 R/XYZ 0 15259 1] endobj 9359 0 obj [870 0 R/XYZ 0 15259 1] endobj 9360 0 obj [1030 0 R/XYZ 0 15259 1] endobj 9361 0 obj [1034 0 R/XYZ 0 15259 1] endobj 9362 0 obj [1044 0 R/XYZ 0 15259 1] endobj 9363 0 obj [1049 0 R/XYZ 0 15259 1] endobj 9364 0 obj [1051 0 R/XYZ 0 15259 1] endobj 9365 0 obj [1627 0 R/XYZ 0 15259 1] endobj 9366 0 obj [930 0 R/XYZ 0 15259 1] endobj 9367 0 obj [899 0 R/XYZ 0 15259 1] endobj 9368 0 obj [902 0 R/XYZ 0 15259 1] endobj 9369 0 obj [904 0 R/XYZ 0 15259 1] endobj 9370 0 obj [1212 0 R/XYZ 0 15259 1] endobj 9371 0 obj [1653 0 R/XYZ 0 15259 1] endobj 9372 0 obj [899 0 R/XYZ 0 15259 1] endobj 9373 0 obj [874 0 R/XYZ 0 15259 1] endobj 9374 0 obj [899 0 R/XYZ 0 15259 1] endobj 9375 0 obj [899 0 R/XYZ 0 15259 1] endobj 9376 0 obj [902 0 R/XYZ 0 15259 1] endobj 9377 0 obj [899 0 R/XYZ 0 15259 1] endobj 9378 0 obj [374 0 R/XYZ 0 15259 1] endobj 9379 0 obj [359 0 R/XYZ 0 15259 1] endobj 9380 0 obj [374 0 R/XYZ 0 15259 1] endobj 9381 0 obj <> endobj 9382 0 obj [899 0 R/XYZ 0 15259 1] endobj 9383 0 obj [902 0 R/XYZ 0 15259 1] endobj 9384 0 obj [868 0 R/XYZ 0 15259 1] endobj 9385 0 obj [899 0 R/XYZ 0 15259 1] endobj 9386 0 obj [902 0 R/XYZ 0 15259 1] endobj 9387 0 obj [1113 0 R/XYZ 0 15259 1] endobj 9388 0 obj [1115 0 R/XYZ 0 15259 1] endobj 9389 0 obj [879 0 R/XYZ 0 15259 1] endobj 9390 0 obj [898 0 R/XYZ 0 15259 1] endobj 9391 0 obj [901 0 R/XYZ 0 15259 1] endobj 9392 0 obj [930 0 R/XYZ 0 15259 1] endobj 9393 0 obj [1121 0 R/XYZ 0 15259 1] endobj 9394 0 obj [466 0 R/XYZ 0 15259 1] endobj 9395 0 obj [535 0 R/XYZ 0 15259 1] endobj 9396 0 obj [770 0 R/XYZ 0 15259 1] endobj 9397 0 obj [466 0 R/XYZ 0 15259 1] endobj 9398 0 obj [535 0 R/XYZ 0 15259 1] endobj 9399 0 obj [769 0 R/XYZ 0 15259 1] endobj 9400 0 obj [774 0 R/XYZ 0 15259 1] endobj 9401 0 obj [811 0 R/XYZ 0 15259 1] endobj 9402 0 obj [880 0 R/XYZ 0 15259 1] endobj 9403 0 obj [1118 0 R/XYZ 0 15259 1] endobj 9404 0 obj [407 0 R/XYZ 0 15259 1] endobj 9405 0 obj [410 0 R/XYZ 0 15259 1] endobj 9406 0 obj [705 0 R/XYZ 0 15259 1] endobj 9407 0 obj [721 0 R/XYZ 0 15259 1] endobj 9408 0 obj [1125 0 R/XYZ 0 15259 1] endobj 9409 0 obj [1125 0 R/XYZ 0 15259 1] endobj 9410 0 obj [1472 0 R/XYZ 0 15259 1] endobj 9411 0 obj [1497 0 R/XYZ 0 15259 1] endobj 9412 0 obj [1498 0 R/XYZ 0 15259 1] endobj 9413 0 obj [1497 0 R/XYZ 0 15259 1] endobj 9414 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9415 0 obj [616 0 R/XYZ 0 15259 1] endobj 9416 0 obj [633 0 R/XYZ 0 15259 1] endobj 9417 0 obj [634 0 R/XYZ 0 15259 1] endobj 9418 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9419 0 obj [633 0 R/XYZ 0 15259 1] endobj 9420 0 obj [451 0 R/XYZ 0 15259 1] endobj 9421 0 obj [455 0 R/XYZ 0 15259 1] endobj 9422 0 obj [468 0 R/XYZ 0 15259 1] endobj 9423 0 obj [451 0 R/XYZ 0 15259 1] endobj 9424 0 obj [1131 0 R/XYZ 0 15259 1] endobj 9425 0 obj [1294 0 R/XYZ 0 15259 1] endobj 9426 0 obj [468 0 R/XYZ 0 15259 1] endobj 9427 0 obj [451 0 R/XYZ 0 15259 1] endobj 9428 0 obj [721 0 R/XYZ 0 15259 1] endobj 9429 0 obj [450 0 R/XYZ 0 15259 1] endobj 9430 0 obj [451 0 R/XYZ 0 15259 1] endobj 9431 0 obj [799 0 R/XYZ 0 15259 1] endobj 9432 0 obj [800 0 R/XYZ 0 15259 1] endobj 9433 0 obj [468 0 R/XYZ 0 15259 1] endobj 9434 0 obj [451 0 R/XYZ 0 15259 1] endobj 9435 0 obj [451 0 R/XYZ 0 15259 1] endobj 9436 0 obj [442 0 R/XYZ 0 15259 1] endobj 9437 0 obj [444 0 R/XYZ 0 15259 1] endobj 9438 0 obj [442 0 R/XYZ 0 15259 1] endobj 9439 0 obj [444 0 R/XYZ 0 15259 1] endobj 9440 0 obj [421 0 R/XYZ 0 15259 1] endobj 9441 0 obj [794 0 R/XYZ 0 15259 1] endobj 9442 0 obj [799 0 R/XYZ 0 15259 1] endobj 9443 0 obj [451 0 R/XYZ 0 15259 1] endobj 9444 0 obj [1256 0 R/XYZ 0 15259 1] endobj 9445 0 obj [1258 0 R/XYZ 0 15259 1] endobj 9446 0 obj [1264 0 R/XYZ 0 15259 1] endobj 9447 0 obj [1509 0 R/XYZ 0 15259 1] endobj 9448 0 obj [661 0 R/XYZ 0 15259 1] endobj 9449 0 obj [762 0 R/XYZ 0 15259 1] endobj 9450 0 obj [826 0 R/XYZ 0 15259 1] endobj 9451 0 obj [1650 0 R/XYZ 0 15259 1] endobj 9452 0 obj [1125 0 R/XYZ 0 15259 1] endobj 9453 0 obj [451 0 R/XYZ 0 15259 1] endobj 9454 0 obj [464 0 R/XYZ 0 15259 1] endobj 9455 0 obj [468 0 R/XYZ 0 15259 1] endobj 9456 0 obj [451 0 R/XYZ 0 15259 1] endobj 9457 0 obj [451 0 R/XYZ 0 15259 1] endobj 9458 0 obj [468 0 R/XYZ 0 15259 1] endobj 9459 0 obj [1299 0 R/XYZ 0 15259 1] endobj 9460 0 obj [1302 0 R/XYZ 0 15259 1] endobj 9461 0 obj [1299 0 R/XYZ 0 15259 1] endobj 9462 0 obj [1300 0 R/XYZ 0 15259 1] endobj 9463 0 obj [1302 0 R/XYZ 0 15259 1] endobj 9464 0 obj [1300 0 R/XYZ 0 15259 1] endobj 9465 0 obj [1302 0 R/XYZ 0 15259 1] endobj 9466 0 obj [468 0 R/XYZ 0 15259 1] endobj 9467 0 obj [1295 0 R/XYZ 0 15259 1] endobj 9468 0 obj [1296 0 R/XYZ 0 15259 1] endobj 9469 0 obj [1300 0 R/XYZ 0 15259 1] endobj 9470 0 obj [1302 0 R/XYZ 0 15259 1] endobj 9471 0 obj [451 0 R/XYZ 0 15259 1] endobj 9472 0 obj [794 0 R/XYZ 0 15259 1] endobj 9473 0 obj [437 0 R/XYZ 0 15259 1] endobj 9474 0 obj [451 0 R/XYZ 0 15259 1] endobj 9475 0 obj [461 0 R/XYZ 0 15259 1] endobj 9476 0 obj [721 0 R/XYZ 0 15259 1] endobj 9477 0 obj [1607 0 R/XYZ 0 15259 1] endobj 9478 0 obj [451 0 R/XYZ 0 15259 1] endobj 9479 0 obj [1139 0 R/XYZ 0 15259 1] endobj 9480 0 obj [451 0 R/XYZ 0 15259 1] endobj 9481 0 obj [1139 0 R/XYZ 0 15259 1] endobj 9482 0 obj [468 0 R/XYZ 0 15259 1] endobj 9483 0 obj [468 0 R/XYZ 0 15259 1] endobj 9484 0 obj [451 0 R/XYZ 0 15259 1] endobj 9485 0 obj [1386 0 R/XYZ 0 15259 1] endobj 9486 0 obj [1390 0 R/XYZ 0 15259 1] endobj 9487 0 obj [1391 0 R/XYZ 0 15259 1] endobj 9488 0 obj [1409 0 R/XYZ 0 15259 1] endobj 9489 0 obj [1411 0 R/XYZ 0 15259 1] endobj 9490 0 obj [1412 0 R/XYZ 0 15259 1] endobj 9491 0 obj [1418 0 R/XYZ 0 15259 1] endobj 9492 0 obj [1419 0 R/XYZ 0 15259 1] endobj 9493 0 obj [451 0 R/XYZ 0 15259 1] endobj 9494 0 obj [464 0 R/XYZ 0 15259 1] endobj 9495 0 obj [468 0 R/XYZ 0 15259 1] endobj 9496 0 obj [535 0 R/XYZ 0 15259 1] endobj 9497 0 obj [769 0 R/XYZ 0 15259 1] endobj 9498 0 obj [468 0 R/XYZ 0 15259 1] endobj 9499 0 obj [451 0 R/XYZ 0 15259 1] endobj 9500 0 obj [451 0 R/XYZ 0 15259 1] endobj 9501 0 obj [468 0 R/XYZ 0 15259 1] endobj 9502 0 obj [451 0 R/XYZ 0 15259 1] endobj 9503 0 obj [468 0 R/XYZ 0 15259 1] endobj 9504 0 obj [451 0 R/XYZ 0 15259 1] endobj 9505 0 obj [451 0 R/XYZ 0 15259 1] endobj 9506 0 obj [1006 0 R/XYZ 0 15259 1] endobj 9507 0 obj [1006 0 R/XYZ 0 15259 1] endobj 9508 0 obj [1003 0 R/XYZ 0 15259 1] endobj 9509 0 obj [1003 0 R/XYZ 0 15259 1] endobj 9510 0 obj [1010 0 R/XYZ 0 15259 1] endobj 9511 0 obj [468 0 R/XYZ 0 15259 1] endobj 9512 0 obj [945 0 R/XYZ 0 15259 1] endobj 9513 0 obj [468 0 R/XYZ 0 15259 1] endobj 9514 0 obj [1025 0 R/XYZ 0 15259 1] endobj 9515 0 obj [1003 0 R/XYZ 0 15259 1] endobj 9516 0 obj [1003 0 R/XYZ 0 15259 1] endobj 9517 0 obj [451 0 R/XYZ 0 15259 1] endobj 9518 0 obj [468 0 R/XYZ 0 15259 1] endobj 9519 0 obj [451 0 R/XYZ 0 15259 1] endobj 9520 0 obj [451 0 R/XYZ 0 15259 1] endobj 9521 0 obj [491 0 R/XYZ 0 15259 1] endobj 9522 0 obj [491 0 R/XYZ 0 15259 1] endobj 9523 0 obj [491 0 R/XYZ 0 15259 1] endobj 9524 0 obj [491 0 R/XYZ 0 15259 1] endobj 9525 0 obj [459 0 R/XYZ 0 15259 1] endobj 9526 0 obj [464 0 R/XYZ 0 15259 1] endobj 9527 0 obj [468 0 R/XYZ 0 15259 1] endobj 9528 0 obj [468 0 R/XYZ 0 15259 1] endobj 9529 0 obj [468 0 R/XYZ 0 15259 1] endobj 9530 0 obj [468 0 R/XYZ 0 15259 1] endobj 9531 0 obj [468 0 R/XYZ 0 15259 1] endobj 9532 0 obj [459 0 R/XYZ 0 15259 1] endobj 9533 0 obj [464 0 R/XYZ 0 15259 1] endobj 9534 0 obj [468 0 R/XYZ 0 15259 1] endobj 9535 0 obj [423 0 R/XYZ 0 15259 1] endobj 9536 0 obj [1651 0 R/XYZ 0 15259 1] endobj 9537 0 obj [1652 0 R/XYZ 0 15259 1] endobj 9538 0 obj [488 0 R/XYZ 0 15259 1] endobj 9539 0 obj [488 0 R/XYZ 0 15259 1] endobj 9540 0 obj [628 0 R/XYZ 0 15259 1] endobj 9541 0 obj [1088 0 R/XYZ 0 15259 1] endobj 9542 0 obj [1096 0 R/XYZ 0 15259 1] endobj 9543 0 obj [1097 0 R/XYZ 0 15259 1] endobj 9544 0 obj [1452 0 R/XYZ 0 15259 1] endobj 9545 0 obj [585 0 R/XYZ 0 15259 1] endobj 9546 0 obj [591 0 R/XYZ 0 15259 1] endobj 9547 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9548 0 obj [585 0 R/XYZ 0 15259 1] endobj 9549 0 obj [488 0 R/XYZ 0 15259 1] endobj 9550 0 obj [628 0 R/XYZ 0 15259 1] endobj 9551 0 obj [1088 0 R/XYZ 0 15259 1] endobj 9552 0 obj [1096 0 R/XYZ 0 15259 1] endobj 9553 0 obj [1097 0 R/XYZ 0 15259 1] endobj 9554 0 obj [1457 0 R/XYZ 0 15259 1] endobj 9555 0 obj [1459 0 R/XYZ 0 15259 1] endobj 9556 0 obj [1468 0 R/XYZ 0 15259 1] endobj 9557 0 obj [488 0 R/XYZ 0 15259 1] endobj 9558 0 obj [628 0 R/XYZ 0 15259 1] endobj 9559 0 obj [646 0 R/XYZ 0 15259 1] endobj 9560 0 obj [1088 0 R/XYZ 0 15259 1] endobj 9561 0 obj [1096 0 R/XYZ 0 15259 1] endobj 9562 0 obj [1097 0 R/XYZ 0 15259 1] endobj 9563 0 obj [1100 0 R/XYZ 0 15259 1] endobj 9564 0 obj [1445 0 R/XYZ 0 15259 1] endobj 9565 0 obj [1448 0 R/XYZ 0 15259 1] endobj 9566 0 obj [1449 0 R/XYZ 0 15259 1] endobj 9567 0 obj [1451 0 R/XYZ 0 15259 1] endobj 9568 0 obj [1452 0 R/XYZ 0 15259 1] endobj 9569 0 obj [1454 0 R/XYZ 0 15259 1] endobj 9570 0 obj [1459 0 R/XYZ 0 15259 1] endobj 9571 0 obj [1461 0 R/XYZ 0 15259 1] endobj 9572 0 obj [1466 0 R/XYZ 0 15259 1] endobj 9573 0 obj [1512 0 R/XYZ 0 15259 1] endobj 9574 0 obj [1513 0 R/XYZ 0 15259 1] endobj 9575 0 obj [1630 0 R/XYZ 0 15259 1] endobj 9576 0 obj [1631 0 R/XYZ 0 15259 1] endobj 9577 0 obj [901 0 R/XYZ 0 15259 1] endobj 9578 0 obj [901 0 R/XYZ 0 15259 1] endobj 9579 0 obj [870 0 R/XYZ 0 15259 1] endobj 9580 0 obj [871 0 R/XYZ 0 15259 1] endobj 9581 0 obj [887 0 R/XYZ 0 15259 1] endobj 9582 0 obj [1036 0 R/XYZ 0 15259 1] endobj 9583 0 obj [1082 0 R/XYZ 0 15259 1] endobj 9584 0 obj [1104 0 R/XYZ 0 15259 1] endobj 9585 0 obj [1115 0 R/XYZ 0 15259 1] endobj 9586 0 obj [1144 0 R/XYZ 0 15259 1] endobj 9587 0 obj [1145 0 R/XYZ 0 15259 1] endobj 9588 0 obj [1184 0 R/XYZ 0 15259 1] endobj 9589 0 obj [1215 0 R/XYZ 0 15259 1] endobj 9590 0 obj [1218 0 R/XYZ 0 15259 1] endobj 9591 0 obj [1225 0 R/XYZ 0 15259 1] endobj 9592 0 obj [1247 0 R/XYZ 0 15259 1] endobj 9593 0 obj [1248 0 R/XYZ 0 15259 1] endobj 9594 0 obj [1268 0 R/XYZ 0 15259 1] endobj 9595 0 obj [1270 0 R/XYZ 0 15259 1] endobj 9596 0 obj [1278 0 R/XYZ 0 15259 1] endobj 9597 0 obj [1279 0 R/XYZ 0 15259 1] endobj 9598 0 obj [1311 0 R/XYZ 0 15259 1] endobj 9599 0 obj [1316 0 R/XYZ 0 15259 1] endobj 9600 0 obj [1318 0 R/XYZ 0 15259 1] endobj 9601 0 obj [1320 0 R/XYZ 0 15259 1] endobj 9602 0 obj [1389 0 R/XYZ 0 15259 1] endobj 9603 0 obj <> endobj 9604 0 obj [1406 0 R/XYZ 0 15259 1] endobj 9605 0 obj [1419 0 R/XYZ 0 15259 1] endobj 9606 0 obj [1499 0 R/XYZ 0 15259 1] endobj 9607 0 obj [1500 0 R/XYZ 0 15259 1] endobj 9608 0 obj [1510 0 R/XYZ 0 15259 1] endobj 9609 0 obj [1511 0 R/XYZ 0 15259 1] endobj 9610 0 obj [1628 0 R/XYZ 0 15259 1] endobj 9611 0 obj [1629 0 R/XYZ 0 15259 1] endobj 9612 0 obj [1633 0 R/XYZ 0 15259 1] endobj 9613 0 obj [1636 0 R/XYZ 0 15259 1] endobj 9614 0 obj [1639 0 R/XYZ 0 15259 1] endobj 9615 0 obj [1642 0 R/XYZ 0 15259 1] endobj 9616 0 obj [1106 0 R/XYZ 0 15259 1] endobj 9617 0 obj [1425 0 R/XYZ 0 15259 1] endobj 9618 0 obj [1653 0 R/XYZ 0 15259 1] endobj 9619 0 obj [468 0 R/XYZ 0 15259 1] endobj 9620 0 obj [1150 0 R/XYZ 0 15259 1] endobj 9621 0 obj [1191 0 R/XYZ 0 15259 1] endobj 9622 0 obj [1198 0 R/XYZ 0 15259 1] endobj 9623 0 obj [1196 0 R/XYZ 0 15259 1] endobj 9624 0 obj [1198 0 R/XYZ 0 15259 1] endobj 9625 0 obj [1198 0 R/XYZ 0 15259 1] endobj 9626 0 obj [1211 0 R/XYZ 0 15259 1] endobj 9627 0 obj [421 0 R/XYZ 0 15259 1] endobj 9628 0 obj [1194 0 R/XYZ 0 15259 1] endobj 9629 0 obj [1195 0 R/XYZ 0 15259 1] endobj 9630 0 obj [1208 0 R/XYZ 0 15259 1] endobj 9631 0 obj [1212 0 R/XYZ 0 15259 1] endobj 9632 0 obj [1208 0 R/XYZ 0 15259 1] endobj 9633 0 obj [1180 0 R/XYZ 0 15259 1] endobj 9634 0 obj [1187 0 R/XYZ 0 15259 1] endobj 9635 0 obj [1192 0 R/XYZ 0 15259 1] endobj 9636 0 obj [1194 0 R/XYZ 0 15259 1] endobj 9637 0 obj [1196 0 R/XYZ 0 15259 1] endobj 9638 0 obj [1193 0 R/XYZ 0 15259 1] endobj 9639 0 obj [1210 0 R/XYZ 0 15259 1] endobj 9640 0 obj [1210 0 R/XYZ 0 15259 1] endobj 9641 0 obj [1212 0 R/XYZ 0 15259 1] endobj 9642 0 obj [1178 0 R/XYZ 0 15259 1] endobj 9643 0 obj [1180 0 R/XYZ 0 15259 1] endobj 9644 0 obj [1192 0 R/XYZ 0 15259 1] endobj 9645 0 obj [1193 0 R/XYZ 0 15259 1] endobj 9646 0 obj [1193 0 R/XYZ 0 15259 1] endobj 9647 0 obj [1210 0 R/XYZ 0 15259 1] endobj 9648 0 obj [1210 0 R/XYZ 0 15259 1] endobj 9649 0 obj [1192 0 R/XYZ 0 15259 1] endobj 9650 0 obj [1194 0 R/XYZ 0 15259 1] endobj 9651 0 obj [1210 0 R/XYZ 0 15259 1] endobj 9652 0 obj [1210 0 R/XYZ 0 15259 1] endobj 9653 0 obj [446 0 R/XYZ 0 15259 1] endobj 9654 0 obj [451 0 R/XYZ 0 15259 1] endobj 9655 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9656 0 obj [1183 0 R/XYZ 0 15259 1] endobj 9657 0 obj [1193 0 R/XYZ 0 15259 1] endobj 9658 0 obj [1196 0 R/XYZ 0 15259 1] endobj 9659 0 obj [1194 0 R/XYZ 0 15259 1] endobj 9660 0 obj [1207 0 R/XYZ 0 15259 1] endobj 9661 0 obj [1208 0 R/XYZ 0 15259 1] endobj 9662 0 obj [1210 0 R/XYZ 0 15259 1] endobj 9663 0 obj [1212 0 R/XYZ 0 15259 1] endobj 9664 0 obj [1207 0 R/XYZ 0 15259 1] endobj 9665 0 obj [871 0 R/XYZ 0 15259 1] endobj 9666 0 obj [1209 0 R/XYZ 0 15259 1] endobj 9667 0 obj [1210 0 R/XYZ 0 15259 1] endobj 9668 0 obj [1212 0 R/XYZ 0 15259 1] endobj 9669 0 obj [1210 0 R/XYZ 0 15259 1] endobj 9670 0 obj [1210 0 R/XYZ 0 15259 1] endobj 9671 0 obj [1036 0 R/XYZ 0 15259 1] endobj 9672 0 obj [1209 0 R/XYZ 0 15259 1] endobj 9673 0 obj [1210 0 R/XYZ 0 15259 1] endobj 9674 0 obj [1209 0 R/XYZ 0 15259 1] endobj 9675 0 obj [1209 0 R/XYZ 0 15259 1] endobj 9676 0 obj [1212 0 R/XYZ 0 15259 1] endobj 9677 0 obj [1193 0 R/XYZ 0 15259 1] endobj 9678 0 obj [1194 0 R/XYZ 0 15259 1] endobj 9679 0 obj [1195 0 R/XYZ 0 15259 1] endobj 9680 0 obj [1196 0 R/XYZ 0 15259 1] endobj 9681 0 obj [1208 0 R/XYZ 0 15259 1] endobj 9682 0 obj [1211 0 R/XYZ 0 15259 1] endobj 9683 0 obj [1208 0 R/XYZ 0 15259 1] endobj 9684 0 obj [1209 0 R/XYZ 0 15259 1] endobj 9685 0 obj [1212 0 R/XYZ 0 15259 1] endobj 9686 0 obj [1208 0 R/XYZ 0 15259 1] endobj 9687 0 obj [446 0 R/XYZ 0 15259 1] endobj 9688 0 obj [451 0 R/XYZ 0 15259 1] endobj 9689 0 obj [1208 0 R/XYZ 0 15259 1] endobj 9690 0 obj [1036 0 R/XYZ 0 15259 1] endobj 9691 0 obj [1209 0 R/XYZ 0 15259 1] endobj 9692 0 obj [1210 0 R/XYZ 0 15259 1] endobj 9693 0 obj [1212 0 R/XYZ 0 15259 1] endobj 9694 0 obj [1209 0 R/XYZ 0 15259 1] endobj 9695 0 obj [871 0 R/XYZ 0 15259 1] endobj 9696 0 obj [1036 0 R/XYZ 0 15259 1] endobj 9697 0 obj [1225 0 R/XYZ 0 15259 1] endobj 9698 0 obj [1250 0 R/XYZ 0 15259 1] endobj 9699 0 obj [1256 0 R/XYZ 0 15259 1] endobj 9700 0 obj [1268 0 R/XYZ 0 15259 1] endobj 9701 0 obj [1270 0 R/XYZ 0 15259 1] endobj 9702 0 obj [1250 0 R/XYZ 0 15259 1] endobj 9703 0 obj [1292 0 R/XYZ 0 15259 1] endobj 9704 0 obj [1294 0 R/XYZ 0 15259 1] endobj 9705 0 obj [1304 0 R/XYZ 0 15259 1] endobj 9706 0 obj [1307 0 R/XYZ 0 15259 1] endobj 9707 0 obj [1308 0 R/XYZ 0 15259 1] endobj 9708 0 obj [1320 0 R/XYZ 0 15259 1] endobj 9709 0 obj [1322 0 R/XYZ 0 15259 1] endobj 9710 0 obj [1595 0 R/XYZ 0 15259 1] endobj 9711 0 obj [1292 0 R/XYZ 0 15259 1] endobj 9712 0 obj [1294 0 R/XYZ 0 15259 1] endobj 9713 0 obj [1292 0 R/XYZ 0 15259 1] endobj 9714 0 obj [1295 0 R/XYZ 0 15259 1] endobj 9715 0 obj [1299 0 R/XYZ 0 15259 1] endobj 9716 0 obj [1304 0 R/XYZ 0 15259 1] endobj 9717 0 obj [1307 0 R/XYZ 0 15259 1] endobj 9718 0 obj [1308 0 R/XYZ 0 15259 1] endobj 9719 0 obj [1322 0 R/XYZ 0 15259 1] endobj 9720 0 obj [1595 0 R/XYZ 0 15259 1] endobj 9721 0 obj [1292 0 R/XYZ 0 15259 1] endobj 9722 0 obj [1296 0 R/XYZ 0 15259 1] endobj 9723 0 obj [1299 0 R/XYZ 0 15259 1] endobj 9724 0 obj [871 0 R/XYZ 0 15259 1] endobj 9725 0 obj [1036 0 R/XYZ 0 15259 1] endobj 9726 0 obj [1251 0 R/XYZ 0 15259 1] endobj 9727 0 obj [1253 0 R/XYZ 0 15259 1] endobj 9728 0 obj [1294 0 R/XYZ 0 15259 1] endobj 9729 0 obj [1296 0 R/XYZ 0 15259 1] endobj 9730 0 obj [1300 0 R/XYZ 0 15259 1] endobj 9731 0 obj [1323 0 R/XYZ 0 15259 1] endobj 9732 0 obj [1251 0 R/XYZ 0 15259 1] endobj 9733 0 obj [871 0 R/XYZ 0 15259 1] endobj 9734 0 obj [1036 0 R/XYZ 0 15259 1] endobj 9735 0 obj [1250 0 R/XYZ 0 15259 1] endobj 9736 0 obj [1251 0 R/XYZ 0 15259 1] endobj 9737 0 obj [1260 0 R/XYZ 0 15259 1] endobj 9738 0 obj [1262 0 R/XYZ 0 15259 1] endobj 9739 0 obj [1264 0 R/XYZ 0 15259 1] endobj 9740 0 obj [1250 0 R/XYZ 0 15259 1] endobj 9741 0 obj [1118 0 R/XYZ 0 15259 1] endobj 9742 0 obj [1285 0 R/XYZ 0 15259 1] endobj 9743 0 obj [1287 0 R/XYZ 0 15259 1] endobj 9744 0 obj [1290 0 R/XYZ 0 15259 1] endobj 9745 0 obj [1298 0 R/XYZ 0 15259 1] endobj 9746 0 obj [1311 0 R/XYZ 0 15259 1] endobj 9747 0 obj [1317 0 R/XYZ 0 15259 1] endobj 9748 0 obj [1319 0 R/XYZ 0 15259 1] endobj 9749 0 obj [1320 0 R/XYZ 0 15259 1] endobj 9750 0 obj [1595 0 R/XYZ 0 15259 1] endobj 9751 0 obj [1285 0 R/XYZ 0 15259 1] endobj 9752 0 obj [1287 0 R/XYZ 0 15259 1] endobj 9753 0 obj [1236 0 R/XYZ 0 15259 1] endobj 9754 0 obj [1285 0 R/XYZ 0 15259 1] endobj 9755 0 obj [1286 0 R/XYZ 0 15259 1] endobj 9756 0 obj [1311 0 R/XYZ 0 15259 1] endobj 9757 0 obj [1316 0 R/XYZ 0 15259 1] endobj 9758 0 obj [1317 0 R/XYZ 0 15259 1] endobj 9759 0 obj [1319 0 R/XYZ 0 15259 1] endobj 9760 0 obj [1323 0 R/XYZ 0 15259 1] endobj 9761 0 obj [1595 0 R/XYZ 0 15259 1] endobj 9762 0 obj [1285 0 R/XYZ 0 15259 1] endobj 9763 0 obj [1286 0 R/XYZ 0 15259 1] endobj 9764 0 obj [821 0 R/XYZ 0 15259 1] endobj 9765 0 obj [823 0 R/XYZ 0 15259 1] endobj 9766 0 obj [738 0 R/XYZ 0 15259 1] endobj 9767 0 obj [764 0 R/XYZ 0 15259 1] endobj 9768 0 obj [823 0 R/XYZ 0 15259 1] endobj 9769 0 obj [843 0 R/XYZ 0 15259 1] endobj 9770 0 obj [1055 0 R/XYZ 0 15259 1] endobj 9771 0 obj [1056 0 R/XYZ 0 15259 1] endobj 9772 0 obj [821 0 R/XYZ 0 15259 1] endobj 9773 0 obj [824 0 R/XYZ 0 15259 1] endobj 9774 0 obj [843 0 R/XYZ 0 15259 1] endobj 9775 0 obj [854 0 R/XYZ 0 15259 1] endobj 9776 0 obj [1056 0 R/XYZ 0 15259 1] endobj 9777 0 obj [1059 0 R/XYZ 0 15259 1] endobj 9778 0 obj [1063 0 R/XYZ 0 15259 1] endobj 9779 0 obj [1399 0 R/XYZ 0 15259 1] endobj 9780 0 obj [1400 0 R/XYZ 0 15259 1] endobj 9781 0 obj [1419 0 R/XYZ 0 15259 1] endobj 9782 0 obj [1644 0 R/XYZ 0 15259 1] endobj 9783 0 obj [834 0 R/XYZ 0 15259 1] endobj 9784 0 obj [842 0 R/XYZ 0 15259 1] endobj 9785 0 obj [843 0 R/XYZ 0 15259 1] endobj 9786 0 obj [854 0 R/XYZ 0 15259 1] endobj 9787 0 obj [1056 0 R/XYZ 0 15259 1] endobj 9788 0 obj [1107 0 R/XYZ 0 15259 1] endobj 9789 0 obj [1109 0 R/XYZ 0 15259 1] endobj 9790 0 obj [1145 0 R/XYZ 0 15259 1] endobj 9791 0 obj [1633 0 R/XYZ 0 15259 1] endobj 9792 0 obj [879 0 R/XYZ 0 15259 1] endobj 9793 0 obj [889 0 R/XYZ 0 15259 1] endobj 9794 0 obj [890 0 R/XYZ 0 15259 1] endobj 9795 0 obj [1145 0 R/XYZ 0 15259 1] endobj 9796 0 obj [1633 0 R/XYZ 0 15259 1] endobj 9797 0 obj [1194 0 R/XYZ 0 15259 1] endobj 9798 0 obj [1196 0 R/XYZ 0 15259 1] endobj 9799 0 obj [1639 0 R/XYZ 0 15259 1] endobj 9800 0 obj [610 0 R/XYZ 0 15259 1] endobj 9801 0 obj [611 0 R/XYZ 0 15259 1] endobj 9802 0 obj [616 0 R/XYZ 0 15259 1] endobj 9803 0 obj [645 0 R/XYZ 0 15259 1] endobj 9804 0 obj [651 0 R/XYZ 0 15259 1] endobj 9805 0 obj [758 0 R/XYZ 0 15259 1] endobj 9806 0 obj [759 0 R/XYZ 0 15259 1] endobj 9807 0 obj [1365 0 R/XYZ 0 15259 1] endobj 9808 0 obj [1630 0 R/XYZ 0 15259 1] endobj 9809 0 obj [610 0 R/XYZ 0 15259 1] endobj 9810 0 obj [1255 0 R/XYZ 0 15259 1] endobj 9811 0 obj [1257 0 R/XYZ 0 15259 1] endobj 9812 0 obj [1262 0 R/XYZ 0 15259 1] endobj 9813 0 obj [1594 0 R/XYZ 0 15259 1] endobj 9814 0 obj [1078 0 R/XYZ 0 15259 1] endobj 9815 0 obj [771 0 R/XYZ 0 15259 1] endobj 9816 0 obj [771 0 R/XYZ 0 15259 1] endobj 9817 0 obj [710 0 R/XYZ 0 15259 1] endobj 9818 0 obj [763 0 R/XYZ 0 15259 1] endobj 9819 0 obj [1025 0 R/XYZ 0 15259 1] endobj 9820 0 obj [710 0 R/XYZ 0 15259 1] endobj 9821 0 obj [771 0 R/XYZ 0 15259 1] endobj 9822 0 obj [774 0 R/XYZ 0 15259 1] endobj 9823 0 obj [771 0 R/XYZ 0 15259 1] endobj 9824 0 obj [515 0 R/XYZ 0 15259 1] endobj 9825 0 obj [1083 0 R/XYZ 0 15259 1] endobj 9826 0 obj [1084 0 R/XYZ 0 15259 1] endobj 9827 0 obj [1100 0 R/XYZ 0 15259 1] endobj 9828 0 obj [1594 0 R/XYZ 0 15259 1] endobj 9829 0 obj [1634 0 R/XYZ 0 15259 1] endobj 9830 0 obj [514 0 R/XYZ 0 15259 1] endobj 9831 0 obj [769 0 R/XYZ 0 15259 1] endobj 9832 0 obj [771 0 R/XYZ 0 15259 1] endobj 9833 0 obj [811 0 R/XYZ 0 15259 1] endobj 9834 0 obj [871 0 R/XYZ 0 15259 1] endobj 9835 0 obj [1510 0 R/XYZ 0 15259 1] endobj 9836 0 obj [769 0 R/XYZ 0 15259 1] endobj 9837 0 obj [665 0 R/XYZ 0 15259 1] endobj 9838 0 obj [667 0 R/XYZ 0 15259 1] endobj 9839 0 obj [1025 0 R/XYZ 0 15259 1] endobj 9840 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9841 0 obj [665 0 R/XYZ 0 15259 1] endobj 9842 0 obj [535 0 R/XYZ 0 15259 1] endobj 9843 0 obj [537 0 R/XYZ 0 15259 1] endobj 9844 0 obj [542 0 R/XYZ 0 15259 1] endobj 9845 0 obj [549 0 R/XYZ 0 15259 1] endobj 9846 0 obj [551 0 R/XYZ 0 15259 1] endobj 9847 0 obj [554 0 R/XYZ 0 15259 1] endobj 9848 0 obj [583 0 R/XYZ 0 15259 1] endobj 9849 0 obj [599 0 R/XYZ 0 15259 1] endobj 9850 0 obj [738 0 R/XYZ 0 15259 1] endobj 9851 0 obj [765 0 R/XYZ 0 15259 1] endobj 9852 0 obj [853 0 R/XYZ 0 15259 1] endobj 9853 0 obj [1098 0 R/XYZ 0 15259 1] endobj 9854 0 obj [1163 0 R/XYZ 0 15259 1] endobj 9855 0 obj [1395 0 R/XYZ 0 15259 1] endobj 9856 0 obj [466 0 R/XYZ 0 15259 1] endobj 9857 0 obj [535 0 R/XYZ 0 15259 1] endobj 9858 0 obj [770 0 R/XYZ 0 15259 1] endobj 9859 0 obj [667 0 R/XYZ 0 15259 1] endobj 9860 0 obj [667 0 R/XYZ 0 15259 1] endobj 9861 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9862 0 obj [1234 0 R/XYZ 0 15259 1] endobj 9863 0 obj [1234 0 R/XYZ 0 15259 1] endobj 9864 0 obj [676 0 R/XYZ 0 15259 1] endobj 9865 0 obj [853 0 R/XYZ 0 15259 1] endobj 9866 0 obj [856 0 R/XYZ 0 15259 1] endobj 9867 0 obj [858 0 R/XYZ 0 15259 1] endobj 9868 0 obj [938 0 R/XYZ 0 15259 1] endobj 9869 0 obj [904 0 R/XYZ 0 15259 1] endobj 9870 0 obj [907 0 R/XYZ 0 15259 1] endobj 9871 0 obj [688 0 R/XYZ 0 15259 1] endobj 9872 0 obj [712 0 R/XYZ 0 15259 1] endobj 9873 0 obj [714 0 R/XYZ 0 15259 1] endobj 9874 0 obj [718 0 R/XYZ 0 15259 1] endobj 9875 0 obj [726 0 R/XYZ 0 15259 1] endobj 9876 0 obj [884 0 R/XYZ 0 15259 1] endobj 9877 0 obj [887 0 R/XYZ 0 15259 1] endobj 9878 0 obj [904 0 R/XYZ 0 15259 1] endobj 9879 0 obj [905 0 R/XYZ 0 15259 1] endobj 9880 0 obj [907 0 R/XYZ 0 15259 1] endobj 9881 0 obj [938 0 R/XYZ 0 15259 1] endobj 9882 0 obj [1624 0 R/XYZ 0 15259 1] endobj 9883 0 obj [714 0 R/XYZ 0 15259 1] endobj 9884 0 obj [419 0 R/XYZ 0 15259 1] endobj 9885 0 obj <> endobj 9886 0 obj [1025 0 R/XYZ 0 15259 1] endobj 9887 0 obj [1064 0 R/XYZ 0 15259 1] endobj 9888 0 obj [1065 0 R/XYZ 0 15259 1] endobj 9889 0 obj [1064 0 R/XYZ 0 15259 1] endobj 9890 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9891 0 obj [1235 0 R/XYZ 0 15259 1] endobj 9892 0 obj [1235 0 R/XYZ 0 15259 1] endobj 9893 0 obj [819 0 R/XYZ 0 15259 1] endobj 9894 0 obj [871 0 R/XYZ 0 15259 1] endobj 9895 0 obj [819 0 R/XYZ 0 15259 1] endobj 9896 0 obj [795 0 R/XYZ 0 15259 1] endobj 9897 0 obj [795 0 R/XYZ 0 15259 1] endobj 9898 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9899 0 obj [1235 0 R/XYZ 0 15259 1] endobj 9900 0 obj [1235 0 R/XYZ 0 15259 1] endobj 9901 0 obj [659 0 R/XYZ 0 15259 1] endobj 9902 0 obj [661 0 R/XYZ 0 15259 1] endobj 9903 0 obj [1025 0 R/XYZ 0 15259 1] endobj 9904 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9905 0 obj [659 0 R/XYZ 0 15259 1] endobj 9906 0 obj [770 0 R/XYZ 0 15259 1] endobj 9907 0 obj [771 0 R/XYZ 0 15259 1] endobj 9908 0 obj [770 0 R/XYZ 0 15259 1] endobj 9909 0 obj [770 0 R/XYZ 0 15259 1] endobj 9910 0 obj [770 0 R/XYZ 0 15259 1] endobj 9911 0 obj [463 0 R/XYZ 0 15259 1] endobj 9912 0 obj [720 0 R/XYZ 0 15259 1] endobj 9913 0 obj [939 0 R/XYZ 0 15259 1] endobj 9914 0 obj [720 0 R/XYZ 0 15259 1] endobj 9915 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9916 0 obj [1236 0 R/XYZ 0 15259 1] endobj 9917 0 obj [1236 0 R/XYZ 0 15259 1] endobj 9918 0 obj [819 0 R/XYZ 0 15259 1] endobj 9919 0 obj [821 0 R/XYZ 0 15259 1] endobj 9920 0 obj [824 0 R/XYZ 0 15259 1] endobj 9921 0 obj [842 0 R/XYZ 0 15259 1] endobj 9922 0 obj [843 0 R/XYZ 0 15259 1] endobj 9923 0 obj [871 0 R/XYZ 0 15259 1] endobj 9924 0 obj [1056 0 R/XYZ 0 15259 1] endobj 9925 0 obj [1060 0 R/XYZ 0 15259 1] endobj 9926 0 obj [1396 0 R/XYZ 0 15259 1] endobj 9927 0 obj [1400 0 R/XYZ 0 15259 1] endobj 9928 0 obj [1401 0 R/XYZ 0 15259 1] endobj 9929 0 obj [821 0 R/XYZ 0 15259 1] endobj 9930 0 obj [871 0 R/XYZ 0 15259 1] endobj 9931 0 obj [1265 0 R/XYZ 0 15259 1] endobj 9932 0 obj [1266 0 R/XYZ 0 15259 1] endobj 9933 0 obj [1301 0 R/XYZ 0 15259 1] endobj 9934 0 obj [1265 0 R/XYZ 0 15259 1] endobj 9935 0 obj [663 0 R/XYZ 0 15259 1] endobj 9936 0 obj [663 0 R/XYZ 0 15259 1] endobj 9937 0 obj [677 0 R/XYZ 0 15259 1] endobj 9938 0 obj [535 0 R/XYZ 0 15259 1] endobj 9939 0 obj [769 0 R/XYZ 0 15259 1] endobj 9940 0 obj [771 0 R/XYZ 0 15259 1] endobj 9941 0 obj [774 0 R/XYZ 0 15259 1] endobj 9942 0 obj [811 0 R/XYZ 0 15259 1] endobj 9943 0 obj [871 0 R/XYZ 0 15259 1] endobj 9944 0 obj [1510 0 R/XYZ 0 15259 1] endobj 9945 0 obj [769 0 R/XYZ 0 15259 1] endobj 9946 0 obj [535 0 R/XYZ 0 15259 1] endobj 9947 0 obj [537 0 R/XYZ 0 15259 1] endobj 9948 0 obj [542 0 R/XYZ 0 15259 1] endobj 9949 0 obj [545 0 R/XYZ 0 15259 1] endobj 9950 0 obj [549 0 R/XYZ 0 15259 1] endobj 9951 0 obj [551 0 R/XYZ 0 15259 1] endobj 9952 0 obj [554 0 R/XYZ 0 15259 1] endobj 9953 0 obj [583 0 R/XYZ 0 15259 1] endobj 9954 0 obj [599 0 R/XYZ 0 15259 1] endobj 9955 0 obj [663 0 R/XYZ 0 15259 1] endobj 9956 0 obj [738 0 R/XYZ 0 15259 1] endobj 9957 0 obj [765 0 R/XYZ 0 15259 1] endobj 9958 0 obj [769 0 R/XYZ 0 15259 1] endobj 9959 0 obj [770 0 R/XYZ 0 15259 1] endobj 9960 0 obj [772 0 R/XYZ 0 15259 1] endobj 9961 0 obj [782 0 R/XYZ 0 15259 1] endobj 9962 0 obj [853 0 R/XYZ 0 15259 1] endobj 9963 0 obj [1163 0 R/XYZ 0 15259 1] endobj 9964 0 obj [1214 0 R/XYZ 0 15259 1] endobj 9965 0 obj [1215 0 R/XYZ 0 15259 1] endobj 9966 0 obj [1304 0 R/XYZ 0 15259 1] endobj 9967 0 obj [1624 0 R/XYZ 0 15259 1] endobj 9968 0 obj [466 0 R/XYZ 0 15259 1] endobj 9969 0 obj [535 0 R/XYZ 0 15259 1] endobj 9970 0 obj [769 0 R/XYZ 0 15259 1] endobj 9971 0 obj [774 0 R/XYZ 0 15259 1] endobj 9972 0 obj [811 0 R/XYZ 0 15259 1] endobj 9973 0 obj [880 0 R/XYZ 0 15259 1] endobj 9974 0 obj [1025 0 R/XYZ 0 15259 1] endobj 9975 0 obj [1037 0 R/XYZ 0 15259 1] endobj 9976 0 obj [1194 0 R/XYZ 0 15259 1] endobj 9977 0 obj [1196 0 R/XYZ 0 15259 1] endobj 9978 0 obj [610 0 R/XYZ 0 15259 1] endobj 9979 0 obj [611 0 R/XYZ 0 15259 1] endobj 9980 0 obj [616 0 R/XYZ 0 15259 1] endobj 9981 0 obj [645 0 R/XYZ 0 15259 1] endobj 9982 0 obj [651 0 R/XYZ 0 15259 1] endobj 9983 0 obj [720 0 R/XYZ 0 15259 1] endobj 9984 0 obj [1171 0 R/XYZ 0 15259 1] endobj 9985 0 obj [1392 0 R/XYZ 0 15259 1] endobj 9986 0 obj [1636 0 R/XYZ 0 15259 1] endobj 9987 0 obj [610 0 R/XYZ 0 15259 1] endobj 9988 0 obj [437 0 R/XYZ 0 15259 1] endobj 9989 0 obj [661 0 R/XYZ 0 15259 1] endobj 9990 0 obj [661 0 R/XYZ 0 15259 1] endobj 9991 0 obj [663 0 R/XYZ 0 15259 1] endobj 9992 0 obj [684 0 R/XYZ 0 15259 1] endobj 9993 0 obj [1618 0 R/XYZ 0 15259 1] endobj 9994 0 obj [671 0 R/XYZ 0 15259 1] endobj 9995 0 obj [1118 0 R/XYZ 0 15259 1] endobj 9996 0 obj [1137 0 R/XYZ 0 15259 1] endobj 9997 0 obj [1650 0 R/XYZ 0 15259 1] endobj 9998 0 obj [702 0 R/XYZ 0 15259 1] endobj 9999 0 obj [704 0 R/XYZ 0 15259 1] endobj 10000 0 obj [727 0 R/XYZ 0 15259 1] endobj 10001 0 obj [1439 0 R/XYZ 0 15259 1] endobj 10002 0 obj [1620 0 R/XYZ 0 15259 1] endobj 10003 0 obj [1648 0 R/XYZ 0 15259 1] endobj 10004 0 obj [1150 0 R/XYZ 0 15259 1] endobj 10005 0 obj [1198 0 R/XYZ 0 15259 1] endobj 10006 0 obj [1205 0 R/XYZ 0 15259 1] endobj 10007 0 obj [499 0 R/XYZ 0 15259 1] endobj 10008 0 obj [503 0 R/XYZ 0 15259 1] endobj 10009 0 obj [736 0 R/XYZ 0 15259 1] endobj 10010 0 obj [709 0 R/XYZ 0 15259 1] endobj 10011 0 obj [811 0 R/XYZ 0 15259 1] endobj 10012 0 obj [1412 0 R/XYZ 0 15259 1] endobj 10013 0 obj [819 0 R/XYZ 0 15259 1] endobj 10014 0 obj [828 0 R/XYZ 0 15259 1] endobj 10015 0 obj [836 0 R/XYZ 0 15259 1] endobj 10016 0 obj [838 0 R/XYZ 0 15259 1] endobj 10017 0 obj [862 0 R/XYZ 0 15259 1] endobj 10018 0 obj [907 0 R/XYZ 0 15259 1] endobj 10019 0 obj [932 0 R/XYZ 0 15259 1] endobj 10020 0 obj [935 0 R/XYZ 0 15259 1] endobj 10021 0 obj [1409 0 R/XYZ 0 15259 1] endobj 10022 0 obj [1410 0 R/XYZ 0 15259 1] endobj 10023 0 obj [828 0 R/XYZ 0 15259 1] endobj 10024 0 obj [381 0 R/XYZ 0 15259 1] endobj 10025 0 obj [1118 0 R/XYZ 0 15259 1] endobj 10026 0 obj [1183 0 R/XYZ 0 15259 1] endobj 10027 0 obj [1200 0 R/XYZ 0 15259 1] endobj 10028 0 obj [1203 0 R/XYZ 0 15259 1] endobj 10029 0 obj [1201 0 R/XYZ 0 15259 1] endobj 10030 0 obj [1199 0 R/XYZ 0 15259 1] endobj 10031 0 obj [1180 0 R/XYZ 0 15259 1] endobj 10032 0 obj [1187 0 R/XYZ 0 15259 1] endobj 10033 0 obj [1200 0 R/XYZ 0 15259 1] endobj 10034 0 obj [1202 0 R/XYZ 0 15259 1] endobj 10035 0 obj [1200 0 R/XYZ 0 15259 1] endobj 10036 0 obj [1201 0 R/XYZ 0 15259 1] endobj 10037 0 obj [1201 0 R/XYZ 0 15259 1] endobj 10038 0 obj [1178 0 R/XYZ 0 15259 1] endobj 10039 0 obj [1180 0 R/XYZ 0 15259 1] endobj 10040 0 obj [1199 0 R/XYZ 0 15259 1] endobj 10041 0 obj [1202 0 R/XYZ 0 15259 1] endobj 10042 0 obj [1199 0 R/XYZ 0 15259 1] endobj 10043 0 obj [1199 0 R/XYZ 0 15259 1] endobj 10044 0 obj [1201 0 R/XYZ 0 15259 1] endobj 10045 0 obj [1201 0 R/XYZ 0 15259 1] endobj 10046 0 obj [1200 0 R/XYZ 0 15259 1] endobj 10047 0 obj [1201 0 R/XYZ 0 15259 1] endobj 10048 0 obj [1201 0 R/XYZ 0 15259 1] endobj 10049 0 obj [442 0 R/XYZ 0 15259 1] endobj 10050 0 obj [442 0 R/XYZ 0 15259 1] endobj 10051 0 obj [871 0 R/XYZ 0 15259 1] endobj 10052 0 obj [1225 0 R/XYZ 0 15259 1] endobj 10053 0 obj [1228 0 R/XYZ 0 15259 1] endobj 10054 0 obj [1252 0 R/XYZ 0 15259 1] endobj 10055 0 obj [1225 0 R/XYZ 0 15259 1] endobj 10056 0 obj [1225 0 R/XYZ 0 15259 1] endobj 10057 0 obj [1225 0 R/XYZ 0 15259 1] endobj 10058 0 obj [1225 0 R/XYZ 0 15259 1] endobj 10059 0 obj [901 0 R/XYZ 0 15259 1] endobj 10060 0 obj [589 0 R/XYZ 0 15259 1] endobj 10061 0 obj [589 0 R/XYZ 0 15259 1] endobj 10062 0 obj [589 0 R/XYZ 0 15259 1] endobj 10063 0 obj [589 0 R/XYZ 0 15259 1] endobj 10064 0 obj [561 0 R/XYZ 0 15259 1] endobj 10065 0 obj [589 0 R/XYZ 0 15259 1] endobj 10066 0 obj [533 0 R/XYZ 0 15259 1] endobj 10067 0 obj [589 0 R/XYZ 0 15259 1] endobj 10068 0 obj [589 0 R/XYZ 0 15259 1] endobj 10069 0 obj [1282 0 R/XYZ 0 15259 1] endobj 10070 0 obj [936 0 R/XYZ 0 15259 1] endobj 10071 0 obj [938 0 R/XYZ 0 15259 1] endobj 10072 0 obj [936 0 R/XYZ 0 15259 1] endobj 10073 0 obj [936 0 R/XYZ 0 15259 1] endobj 10074 0 obj [743 0 R/XYZ 0 15259 1] endobj 10075 0 obj [748 0 R/XYZ 0 15259 1] endobj 10076 0 obj [749 0 R/XYZ 0 15259 1] endobj 10077 0 obj [792 0 R/XYZ 0 15259 1] endobj 10078 0 obj [849 0 R/XYZ 0 15259 1] endobj 10079 0 obj [853 0 R/XYZ 0 15259 1] endobj 10080 0 obj [855 0 R/XYZ 0 15259 1] endobj 10081 0 obj [916 0 R/XYZ 0 15259 1] endobj 10082 0 obj [919 0 R/XYZ 0 15259 1] endobj 10083 0 obj [938 0 R/XYZ 0 15259 1] endobj 10084 0 obj [1624 0 R/XYZ 0 15259 1] endobj 10085 0 obj [472 0 R/XYZ 0 15259 1] endobj 10086 0 obj [860 0 R/XYZ 0 15259 1] endobj 10087 0 obj [864 0 R/XYZ 0 15259 1] endobj 10088 0 obj [868 0 R/XYZ 0 15259 1] endobj 10089 0 obj [871 0 R/XYZ 0 15259 1] endobj 10090 0 obj [874 0 R/XYZ 0 15259 1] endobj 10091 0 obj [877 0 R/XYZ 0 15259 1] endobj 10092 0 obj [879 0 R/XYZ 0 15259 1] endobj 10093 0 obj [897 0 R/XYZ 0 15259 1] endobj 10094 0 obj [904 0 R/XYZ 0 15259 1] endobj 10095 0 obj [917 0 R/XYZ 0 15259 1] endobj 10096 0 obj [922 0 R/XYZ 0 15259 1] endobj 10097 0 obj [927 0 R/XYZ 0 15259 1] endobj 10098 0 obj [930 0 R/XYZ 0 15259 1] endobj 10099 0 obj [1041 0 R/XYZ 0 15259 1] endobj 10100 0 obj [1061 0 R/XYZ 0 15259 1] endobj 10101 0 obj [1072 0 R/XYZ 0 15259 1] endobj 10102 0 obj [1074 0 R/XYZ 0 15259 1] endobj 10103 0 obj [1076 0 R/XYZ 0 15259 1] endobj 10104 0 obj [1118 0 R/XYZ 0 15259 1] endobj 10105 0 obj [1261 0 R/XYZ 0 15259 1] endobj 10106 0 obj [1509 0 R/XYZ 0 15259 1] endobj 10107 0 obj [1639 0 R/XYZ 0 15259 1] endobj 10108 0 obj [898 0 R/XYZ 0 15259 1] endobj 10109 0 obj [898 0 R/XYZ 0 15259 1] endobj 10110 0 obj [902 0 R/XYZ 0 15259 1] endobj 10111 0 obj [904 0 R/XYZ 0 15259 1] endobj 10112 0 obj [917 0 R/XYZ 0 15259 1] endobj 10113 0 obj [921 0 R/XYZ 0 15259 1] endobj 10114 0 obj [927 0 R/XYZ 0 15259 1] endobj 10115 0 obj [930 0 R/XYZ 0 15259 1] endobj 10116 0 obj [935 0 R/XYZ 0 15259 1] endobj 10117 0 obj [1060 0 R/XYZ 0 15259 1] endobj 10118 0 obj [1072 0 R/XYZ 0 15259 1] endobj 10119 0 obj [1074 0 R/XYZ 0 15259 1] endobj 10120 0 obj [1261 0 R/XYZ 0 15259 1] endobj 10121 0 obj [1508 0 R/XYZ 0 15259 1] endobj 10122 0 obj [871 0 R/XYZ 0 15259 1] endobj 10123 0 obj [889 0 R/XYZ 0 15259 1] endobj 10124 0 obj [890 0 R/XYZ 0 15259 1] endobj 10125 0 obj [895 0 R/XYZ 0 15259 1] endobj 10126 0 obj [910 0 R/XYZ 0 15259 1] endobj 10127 0 obj [912 0 R/XYZ 0 15259 1] endobj 10128 0 obj [913 0 R/XYZ 0 15259 1] endobj 10129 0 obj [922 0 R/XYZ 0 15259 1] endobj 10130 0 obj [927 0 R/XYZ 0 15259 1] endobj 10131 0 obj [933 0 R/XYZ 0 15259 1] endobj 10132 0 obj [1042 0 R/XYZ 0 15259 1] endobj 10133 0 obj [1074 0 R/XYZ 0 15259 1] endobj 10134 0 obj [1076 0 R/XYZ 0 15259 1] endobj 10135 0 obj [1365 0 R/XYZ 0 15259 1] endobj 10136 0 obj [1509 0 R/XYZ 0 15259 1] endobj 10137 0 obj [1633 0 R/XYZ 0 15259 1] endobj 10138 0 obj [889 0 R/XYZ 0 15259 1] endobj 10139 0 obj [890 0 R/XYZ 0 15259 1] endobj 10140 0 obj [849 0 R/XYZ 0 15259 1] endobj 10141 0 obj [850 0 R/XYZ 0 15259 1] endobj 10142 0 obj [853 0 R/XYZ 0 15259 1] endobj 10143 0 obj [870 0 R/XYZ 0 15259 1] endobj 10144 0 obj [873 0 R/XYZ 0 15259 1] endobj 10145 0 obj [882 0 R/XYZ 0 15259 1] endobj 10146 0 obj [884 0 R/XYZ 0 15259 1] endobj 10147 0 obj [886 0 R/XYZ 0 15259 1] endobj 10148 0 obj [887 0 R/XYZ 0 15259 1] endobj 10149 0 obj [894 0 R/XYZ 0 15259 1] endobj 10150 0 obj [902 0 R/XYZ 0 15259 1] endobj 10151 0 obj [905 0 R/XYZ 0 15259 1] endobj 10152 0 obj [906 0 R/XYZ 0 15259 1] endobj 10153 0 obj [914 0 R/XYZ 0 15259 1] endobj 10154 0 obj [916 0 R/XYZ 0 15259 1] endobj 10155 0 obj [926 0 R/XYZ 0 15259 1] endobj 10156 0 obj [927 0 R/XYZ 0 15259 1] endobj 10157 0 obj [1261 0 R/XYZ 0 15259 1] endobj 10158 0 obj <> endobj 10159 0 obj [899 0 R/XYZ 0 15259 1] endobj 10160 0 obj [472 0 R/XYZ 0 15259 1] endobj 10161 0 obj [905 0 R/XYZ 0 15259 1] endobj 10162 0 obj [906 0 R/XYZ 0 15259 1] endobj 10163 0 obj [911 0 R/XYZ 0 15259 1] endobj 10164 0 obj [913 0 R/XYZ 0 15259 1] endobj 10165 0 obj [1406 0 R/XYZ 0 15259 1] endobj 10166 0 obj [892 0 R/XYZ 0 15259 1] endobj 10167 0 obj [895 0 R/XYZ 0 15259 1] endobj 10168 0 obj [910 0 R/XYZ 0 15259 1] endobj 10169 0 obj [912 0 R/XYZ 0 15259 1] endobj 10170 0 obj [913 0 R/XYZ 0 15259 1] endobj 10171 0 obj [922 0 R/XYZ 0 15259 1] endobj 10172 0 obj [927 0 R/XYZ 0 15259 1] endobj 10173 0 obj [1040 0 R/XYZ 0 15259 1] endobj 10174 0 obj [1042 0 R/XYZ 0 15259 1] endobj 10175 0 obj [1073 0 R/XYZ 0 15259 1] endobj 10176 0 obj [1365 0 R/XYZ 0 15259 1] endobj 10177 0 obj [1509 0 R/XYZ 0 15259 1] endobj 10178 0 obj [853 0 R/XYZ 0 15259 1] endobj 10179 0 obj [900 0 R/XYZ 0 15259 1] endobj 10180 0 obj [901 0 R/XYZ 0 15259 1] endobj 10181 0 obj [1139 0 R/XYZ 0 15259 1] endobj 10182 0 obj [1142 0 R/XYZ 0 15259 1] endobj 10183 0 obj [853 0 R/XYZ 0 15259 1] endobj 10184 0 obj [746 0 R/XYZ 0 15259 1] endobj 10185 0 obj [811 0 R/XYZ 0 15259 1] endobj 10186 0 obj [851 0 R/XYZ 0 15259 1] endobj 10187 0 obj [853 0 R/XYZ 0 15259 1] endobj 10188 0 obj [871 0 R/XYZ 0 15259 1] endobj 10189 0 obj [877 0 R/XYZ 0 15259 1] endobj 10190 0 obj [899 0 R/XYZ 0 15259 1] endobj 10191 0 obj [901 0 R/XYZ 0 15259 1] endobj 10192 0 obj [919 0 R/XYZ 0 15259 1] endobj 10193 0 obj [920 0 R/XYZ 0 15259 1] endobj 10194 0 obj [922 0 R/XYZ 0 15259 1] endobj 10195 0 obj [923 0 R/XYZ 0 15259 1] endobj 10196 0 obj [932 0 R/XYZ 0 15259 1] endobj 10197 0 obj [1065 0 R/XYZ 0 15259 1] endobj 10198 0 obj [1104 0 R/XYZ 0 15259 1] endobj 10199 0 obj [1163 0 R/XYZ 0 15259 1] endobj 10200 0 obj [1395 0 R/XYZ 0 15259 1] endobj 10201 0 obj [1623 0 R/XYZ 0 15259 1] endobj 10202 0 obj [1639 0 R/XYZ 0 15259 1] endobj 10203 0 obj [873 0 R/XYZ 0 15259 1] endobj 10204 0 obj [877 0 R/XYZ 0 15259 1] endobj 10205 0 obj [853 0 R/XYZ 0 15259 1] endobj 10206 0 obj [873 0 R/XYZ 0 15259 1] endobj 10207 0 obj [879 0 R/XYZ 0 15259 1] endobj 10208 0 obj [830 0 R/XYZ 0 15259 1] endobj 10209 0 obj [840 0 R/XYZ 0 15259 1] endobj 10210 0 obj [853 0 R/XYZ 0 15259 1] endobj 10211 0 obj [880 0 R/XYZ 0 15259 1] endobj 10212 0 obj [932 0 R/XYZ 0 15259 1] endobj 10213 0 obj [935 0 R/XYZ 0 15259 1] endobj 10214 0 obj [871 0 R/XYZ 0 15259 1] endobj 10215 0 obj [889 0 R/XYZ 0 15259 1] endobj 10216 0 obj [890 0 R/XYZ 0 15259 1] endobj 10217 0 obj [917 0 R/XYZ 0 15259 1] endobj 10218 0 obj [927 0 R/XYZ 0 15259 1] endobj 10219 0 obj [1633 0 R/XYZ 0 15259 1] endobj 10220 0 obj [889 0 R/XYZ 0 15259 1] endobj 10221 0 obj [890 0 R/XYZ 0 15259 1] endobj 10222 0 obj [860 0 R/XYZ 0 15259 1] endobj 10223 0 obj [874 0 R/XYZ 0 15259 1] endobj 10224 0 obj [898 0 R/XYZ 0 15259 1] endobj 10225 0 obj [899 0 R/XYZ 0 15259 1] endobj 10226 0 obj [917 0 R/XYZ 0 15259 1] endobj 10227 0 obj [933 0 R/XYZ 0 15259 1] endobj 10228 0 obj [935 0 R/XYZ 0 15259 1] endobj 10229 0 obj [1072 0 R/XYZ 0 15259 1] endobj 10230 0 obj [871 0 R/XYZ 0 15259 1] endobj 10231 0 obj [889 0 R/XYZ 0 15259 1] endobj 10232 0 obj [895 0 R/XYZ 0 15259 1] endobj 10233 0 obj [902 0 R/XYZ 0 15259 1] endobj 10234 0 obj [904 0 R/XYZ 0 15259 1] endobj 10235 0 obj [910 0 R/XYZ 0 15259 1] endobj 10236 0 obj [912 0 R/XYZ 0 15259 1] endobj 10237 0 obj [913 0 R/XYZ 0 15259 1] endobj 10238 0 obj [921 0 R/XYZ 0 15259 1] endobj 10239 0 obj [922 0 R/XYZ 0 15259 1] endobj 10240 0 obj [927 0 R/XYZ 0 15259 1] endobj 10241 0 obj [933 0 R/XYZ 0 15259 1] endobj 10242 0 obj [1042 0 R/XYZ 0 15259 1] endobj 10243 0 obj [1060 0 R/XYZ 0 15259 1] endobj 10244 0 obj [1072 0 R/XYZ 0 15259 1] endobj 10245 0 obj [1074 0 R/XYZ 0 15259 1] endobj 10246 0 obj [1261 0 R/XYZ 0 15259 1] endobj 10247 0 obj [1365 0 R/XYZ 0 15259 1] endobj 10248 0 obj [1509 0 R/XYZ 0 15259 1] endobj 10249 0 obj [1633 0 R/XYZ 0 15259 1] endobj 10250 0 obj [889 0 R/XYZ 0 15259 1] endobj 10251 0 obj [853 0 R/XYZ 0 15259 1] endobj 10252 0 obj [854 0 R/XYZ 0 15259 1] endobj 10253 0 obj [403 0 R/XYZ 0 15259 1] endobj 10254 0 obj [861 0 R/XYZ 0 15259 1] endobj 10255 0 obj [875 0 R/XYZ 0 15259 1] endobj 10256 0 obj [884 0 R/XYZ 0 15259 1] endobj 10257 0 obj [887 0 R/XYZ 0 15259 1] endobj 10258 0 obj [895 0 R/XYZ 0 15259 1] endobj 10259 0 obj [902 0 R/XYZ 0 15259 1] endobj 10260 0 obj [905 0 R/XYZ 0 15259 1] endobj 10261 0 obj [910 0 R/XYZ 0 15259 1] endobj 10262 0 obj [911 0 R/XYZ 0 15259 1] endobj 10263 0 obj [913 0 R/XYZ 0 15259 1] endobj 10264 0 obj [920 0 R/XYZ 0 15259 1] endobj 10265 0 obj [1168 0 R/XYZ 0 15259 1] endobj 10266 0 obj [1374 0 R/XYZ 0 15259 1] endobj 10267 0 obj [1377 0 R/XYZ 0 15259 1] endobj 10268 0 obj [1408 0 R/XYZ 0 15259 1] endobj 10269 0 obj [1121 0 R/XYZ 0 15259 1] endobj 10270 0 obj [1127 0 R/XYZ 0 15259 1] endobj 10271 0 obj [871 0 R/XYZ 0 15259 1] endobj 10272 0 obj [889 0 R/XYZ 0 15259 1] endobj 10273 0 obj [917 0 R/XYZ 0 15259 1] endobj 10274 0 obj [1073 0 R/XYZ 0 15259 1] endobj 10275 0 obj [1633 0 R/XYZ 0 15259 1] endobj 10276 0 obj [889 0 R/XYZ 0 15259 1] endobj 10277 0 obj [402 0 R/XYZ 0 15259 1] endobj 10278 0 obj [748 0 R/XYZ 0 15259 1] endobj 10279 0 obj [749 0 R/XYZ 0 15259 1] endobj 10280 0 obj [853 0 R/XYZ 0 15259 1] endobj 10281 0 obj [854 0 R/XYZ 0 15259 1] endobj 10282 0 obj [900 0 R/XYZ 0 15259 1] endobj 10283 0 obj [901 0 R/XYZ 0 15259 1] endobj 10284 0 obj [853 0 R/XYZ 0 15259 1] endobj 10285 0 obj [854 0 R/XYZ 0 15259 1] endobj 10286 0 obj [902 0 R/XYZ 0 15259 1] endobj 10287 0 obj [904 0 R/XYZ 0 15259 1] endobj 10288 0 obj [1594 0 R/XYZ 0 15259 1] endobj 10289 0 obj [839 0 R/XYZ 0 15259 1] endobj 10290 0 obj [840 0 R/XYZ 0 15259 1] endobj 10291 0 obj [853 0 R/XYZ 0 15259 1] endobj 10292 0 obj [854 0 R/XYZ 0 15259 1] endobj 10293 0 obj [1061 0 R/XYZ 0 15259 1] endobj 10294 0 obj [1071 0 R/XYZ 0 15259 1] endobj 10295 0 obj [1076 0 R/XYZ 0 15259 1] endobj 10296 0 obj [1163 0 R/XYZ 0 15259 1] endobj 10297 0 obj [1509 0 R/XYZ 0 15259 1] endobj 10298 0 obj [1524 0 R/XYZ 0 15259 1] endobj 10299 0 obj [1538 0 R/XYZ 0 15259 1] endobj 10300 0 obj [860 0 R/XYZ 0 15259 1] endobj 10301 0 obj [874 0 R/XYZ 0 15259 1] endobj 10302 0 obj [898 0 R/XYZ 0 15259 1] endobj 10303 0 obj [917 0 R/XYZ 0 15259 1] endobj 10304 0 obj [921 0 R/XYZ 0 15259 1] endobj 10305 0 obj [935 0 R/XYZ 0 15259 1] endobj 10306 0 obj [1060 0 R/XYZ 0 15259 1] endobj 10307 0 obj [1509 0 R/XYZ 0 15259 1] endobj 10308 0 obj [853 0 R/XYZ 0 15259 1] endobj 10309 0 obj [854 0 R/XYZ 0 15259 1] endobj 10310 0 obj [899 0 R/XYZ 0 15259 1] endobj 10311 0 obj [901 0 R/XYZ 0 15259 1] endobj 10312 0 obj [917 0 R/XYZ 0 15259 1] endobj 10313 0 obj [853 0 R/XYZ 0 15259 1] endobj 10314 0 obj [854 0 R/XYZ 0 15259 1] endobj 10315 0 obj [1339 0 R/XYZ 0 15259 1] endobj 10316 0 obj [1348 0 R/XYZ 0 15259 1] endobj 10317 0 obj [753 0 R/XYZ 0 15259 1] endobj 10318 0 obj [803 0 R/XYZ 0 15259 1] endobj 10319 0 obj [899 0 R/XYZ 0 15259 1] endobj 10320 0 obj [900 0 R/XYZ 0 15259 1] endobj 10321 0 obj [930 0 R/XYZ 0 15259 1] endobj 10322 0 obj [935 0 R/XYZ 0 15259 1] endobj 10323 0 obj [938 0 R/XYZ 0 15259 1] endobj 10324 0 obj [1121 0 R/XYZ 0 15259 1] endobj 10325 0 obj [402 0 R/XYZ 0 15259 1] endobj 10326 0 obj [403 0 R/XYZ 0 15259 1] endobj 10327 0 obj [829 0 R/XYZ 0 15259 1] endobj 10328 0 obj [850 0 R/XYZ 0 15259 1] endobj 10329 0 obj [853 0 R/XYZ 0 15259 1] endobj 10330 0 obj [855 0 R/XYZ 0 15259 1] endobj 10331 0 obj [856 0 R/XYZ 0 15259 1] endobj 10332 0 obj [884 0 R/XYZ 0 15259 1] endobj 10333 0 obj [885 0 R/XYZ 0 15259 1] endobj 10334 0 obj [894 0 R/XYZ 0 15259 1] endobj 10335 0 obj [909 0 R/XYZ 0 15259 1] endobj 10336 0 obj [911 0 R/XYZ 0 15259 1] endobj 10337 0 obj [914 0 R/XYZ 0 15259 1] endobj 10338 0 obj [916 0 R/XYZ 0 15259 1] endobj 10339 0 obj [919 0 R/XYZ 0 15259 1] endobj 10340 0 obj [922 0 R/XYZ 0 15259 1] endobj 10341 0 obj [924 0 R/XYZ 0 15259 1] endobj 10342 0 obj [1041 0 R/XYZ 0 15259 1] endobj 10343 0 obj [1044 0 R/XYZ 0 15259 1] endobj 10344 0 obj [1163 0 R/XYZ 0 15259 1] endobj 10345 0 obj [1336 0 R/XYZ 0 15259 1] endobj 10346 0 obj [1338 0 R/XYZ 0 15259 1] endobj 10347 0 obj [1344 0 R/XYZ 0 15259 1] endobj 10348 0 obj [1347 0 R/XYZ 0 15259 1] endobj 10349 0 obj [1348 0 R/XYZ 0 15259 1] endobj 10350 0 obj [1365 0 R/XYZ 0 15259 1] endobj 10351 0 obj [1366 0 R/XYZ 0 15259 1] endobj 10352 0 obj [1374 0 R/XYZ 0 15259 1] endobj 10353 0 obj [1630 0 R/XYZ 0 15259 1] endobj 10354 0 obj [1632 0 R/XYZ 0 15259 1] endobj 10355 0 obj [512 0 R/XYZ 0 15259 1] endobj 10356 0 obj [853 0 R/XYZ 0 15259 1] endobj 10357 0 obj [855 0 R/XYZ 0 15259 1] endobj 10358 0 obj [1104 0 R/XYZ 0 15259 1] endobj 10359 0 obj [1115 0 R/XYZ 0 15259 1] endobj 10360 0 obj [1118 0 R/XYZ 0 15259 1] endobj 10361 0 obj [1270 0 R/XYZ 0 15259 1] endobj 10362 0 obj [853 0 R/XYZ 0 15259 1] endobj 10363 0 obj [855 0 R/XYZ 0 15259 1] endobj 10364 0 obj [916 0 R/XYZ 0 15259 1] endobj 10365 0 obj [871 0 R/XYZ 0 15259 1] endobj 10366 0 obj [889 0 R/XYZ 0 15259 1] endobj 10367 0 obj [890 0 R/XYZ 0 15259 1] endobj 10368 0 obj [894 0 R/XYZ 0 15259 1] endobj 10369 0 obj [895 0 R/XYZ 0 15259 1] endobj 10370 0 obj [1633 0 R/XYZ 0 15259 1] endobj 10371 0 obj [889 0 R/XYZ 0 15259 1] endobj 10372 0 obj [890 0 R/XYZ 0 15259 1] endobj 10373 0 obj [905 0 R/XYZ 0 15259 1] endobj 10374 0 obj [853 0 R/XYZ 0 15259 1] endobj 10375 0 obj [853 0 R/XYZ 0 15259 1] endobj 10376 0 obj [788 0 R/XYZ 0 15259 1] endobj 10377 0 obj [792 0 R/XYZ 0 15259 1] endobj 10378 0 obj [851 0 R/XYZ 0 15259 1] endobj 10379 0 obj [853 0 R/XYZ 0 15259 1] endobj 10380 0 obj [855 0 R/XYZ 0 15259 1] endobj 10381 0 obj [857 0 R/XYZ 0 15259 1] endobj 10382 0 obj [860 0 R/XYZ 0 15259 1] endobj 10383 0 obj [892 0 R/XYZ 0 15259 1] endobj 10384 0 obj [936 0 R/XYZ 0 15259 1] endobj 10385 0 obj [1410 0 R/XYZ 0 15259 1] endobj 10386 0 obj [718 0 R/XYZ 0 15259 1] endobj 10387 0 obj [871 0 R/XYZ 0 15259 1] endobj 10388 0 obj [904 0 R/XYZ 0 15259 1] endobj 10389 0 obj [907 0 R/XYZ 0 15259 1] endobj 10390 0 obj [916 0 R/XYZ 0 15259 1] endobj 10391 0 obj [905 0 R/XYZ 0 15259 1] endobj 10392 0 obj [853 0 R/XYZ 0 15259 1] endobj 10393 0 obj [853 0 R/XYZ 0 15259 1] endobj 10394 0 obj [855 0 R/XYZ 0 15259 1] endobj 10395 0 obj [857 0 R/XYZ 0 15259 1] endobj 10396 0 obj [402 0 R/XYZ 0 15259 1] endobj 10397 0 obj [403 0 R/XYZ 0 15259 1] endobj 10398 0 obj [472 0 R/XYZ 0 15259 1] endobj 10399 0 obj [839 0 R/XYZ 0 15259 1] endobj 10400 0 obj [860 0 R/XYZ 0 15259 1] endobj 10401 0 obj [864 0 R/XYZ 0 15259 1] endobj 10402 0 obj [868 0 R/XYZ 0 15259 1] endobj 10403 0 obj [877 0 R/XYZ 0 15259 1] endobj 10404 0 obj [883 0 R/XYZ 0 15259 1] endobj 10405 0 obj [887 0 R/XYZ 0 15259 1] endobj 10406 0 obj [895 0 R/XYZ 0 15259 1] endobj 10407 0 obj [897 0 R/XYZ 0 15259 1] endobj 10408 0 obj [902 0 R/XYZ 0 15259 1] endobj 10409 0 obj [905 0 R/XYZ 0 15259 1] endobj 10410 0 obj [910 0 R/XYZ 0 15259 1] endobj 10411 0 obj [911 0 R/XYZ 0 15259 1] endobj 10412 0 obj [913 0 R/XYZ 0 15259 1] endobj 10413 0 obj [920 0 R/XYZ 0 15259 1] endobj 10414 0 obj [933 0 R/XYZ 0 15259 1] endobj 10415 0 obj [1118 0 R/XYZ 0 15259 1] endobj 10416 0 obj [1168 0 R/XYZ 0 15259 1] endobj 10417 0 obj [1374 0 R/XYZ 0 15259 1] endobj 10418 0 obj [1377 0 R/XYZ 0 15259 1] endobj 10419 0 obj [1639 0 R/XYZ 0 15259 1] endobj 10420 0 obj [860 0 R/XYZ 0 15259 1] endobj 10421 0 obj [902 0 R/XYZ 0 15259 1] endobj 10422 0 obj [879 0 R/XYZ 0 15259 1] endobj 10423 0 obj [879 0 R/XYZ 0 15259 1] endobj 10424 0 obj [889 0 R/XYZ 0 15259 1] endobj 10425 0 obj [890 0 R/XYZ 0 15259 1] endobj 10426 0 obj [1145 0 R/XYZ 0 15259 1] endobj 10427 0 obj [1633 0 R/XYZ 0 15259 1] endobj 10428 0 obj [419 0 R/XYZ 0 15259 1] endobj 10429 0 obj [748 0 R/XYZ 0 15259 1] endobj 10430 0 obj [850 0 R/XYZ 0 15259 1] endobj 10431 0 obj [861 0 R/XYZ 0 15259 1] endobj 10432 0 obj [889 0 R/XYZ 0 15259 1] endobj 10433 0 obj [890 0 R/XYZ 0 15259 1] endobj 10434 0 obj [936 0 R/XYZ 0 15259 1] endobj 10435 0 obj [870 0 R/XYZ 0 15259 1] endobj 10436 0 obj [904 0 R/XYZ 0 15259 1] endobj 10437 0 obj [914 0 R/XYZ 0 15259 1] endobj 10438 0 obj [939 0 R/XYZ 0 15259 1] endobj 10439 0 obj [1113 0 R/XYZ 0 15259 1] endobj 10440 0 obj [1408 0 R/XYZ 0 15259 1] endobj 10441 0 obj [1594 0 R/XYZ 0 15259 1] endobj 10442 0 obj [1630 0 R/XYZ 0 15259 1] endobj 10443 0 obj [904 0 R/XYZ 0 15259 1] endobj 10444 0 obj [402 0 R/XYZ 0 15259 1] endobj 10445 0 obj [403 0 R/XYZ 0 15259 1] endobj 10446 0 obj [849 0 R/XYZ 0 15259 1] endobj 10447 0 obj [939 0 R/XYZ 0 15259 1] endobj 10448 0 obj [877 0 R/XYZ 0 15259 1] endobj 10449 0 obj [877 0 R/XYZ 0 15259 1] endobj 10450 0 obj [877 0 R/XYZ 0 15259 1] endobj 10451 0 obj [1418 0 R/XYZ 0 15259 1] endobj 10452 0 obj [932 0 R/XYZ 0 15259 1] endobj 10453 0 obj [935 0 R/XYZ 0 15259 1] endobj 10454 0 obj [850 0 R/XYZ 0 15259 1] endobj 10455 0 obj [880 0 R/XYZ 0 15259 1] endobj 10456 0 obj [877 0 R/XYZ 0 15259 1] endobj 10457 0 obj [879 0 R/XYZ 0 15259 1] endobj 10458 0 obj [897 0 R/XYZ 0 15259 1] endobj 10459 0 obj [930 0 R/XYZ 0 15259 1] endobj 10460 0 obj [877 0 R/XYZ 0 15259 1] endobj 10461 0 obj [879 0 R/XYZ 0 15259 1] endobj 10462 0 obj [864 0 R/XYZ 0 15259 1] endobj 10463 0 obj [866 0 R/XYZ 0 15259 1] endobj 10464 0 obj [1508 0 R/XYZ 0 15259 1] endobj 10465 0 obj [1524 0 R/XYZ 0 15259 1] endobj 10466 0 obj [1524 0 R/XYZ 0 15259 1] endobj 10467 0 obj [871 0 R/XYZ 0 15259 1] endobj 10468 0 obj [871 0 R/XYZ 0 15259 1] endobj 10469 0 obj [877 0 R/XYZ 0 15259 1] endobj 10470 0 obj [894 0 R/XYZ 0 15259 1] endobj 10471 0 obj [897 0 R/XYZ 0 15259 1] endobj 10472 0 obj [894 0 R/XYZ 0 15259 1] endobj 10473 0 obj [850 0 R/XYZ 0 15259 1] endobj 10474 0 obj [853 0 R/XYZ 0 15259 1] endobj 10475 0 obj [855 0 R/XYZ 0 15259 1] endobj 10476 0 obj [1153 0 R/XYZ 0 15259 1] endobj 10477 0 obj [1168 0 R/XYZ 0 15259 1] endobj 10478 0 obj [1169 0 R/XYZ 0 15259 1] endobj 10479 0 obj [1172 0 R/XYZ 0 15259 1] endobj 10480 0 obj [1177 0 R/XYZ 0 15259 1] endobj 10481 0 obj [1217 0 R/XYZ 0 15259 1] endobj 10482 0 obj [1251 0 R/XYZ 0 15259 1] endobj 10483 0 obj [1509 0 R/XYZ 0 15259 1] endobj 10484 0 obj [1636 0 R/XYZ 0 15259 1] endobj 10485 0 obj [853 0 R/XYZ 0 15259 1] endobj 10486 0 obj [855 0 R/XYZ 0 15259 1] endobj 10487 0 obj [1104 0 R/XYZ 0 15259 1] endobj 10488 0 obj [1115 0 R/XYZ 0 15259 1] endobj 10489 0 obj [1118 0 R/XYZ 0 15259 1] endobj 10490 0 obj [871 0 R/XYZ 0 15259 1] endobj 10491 0 obj [879 0 R/XYZ 0 15259 1] endobj 10492 0 obj [884 0 R/XYZ 0 15259 1] endobj 10493 0 obj [889 0 R/XYZ 0 15259 1] endobj 10494 0 obj [892 0 R/XYZ 0 15259 1] endobj 10495 0 obj [897 0 R/XYZ 0 15259 1] endobj 10496 0 obj [910 0 R/XYZ 0 15259 1] endobj 10497 0 obj [912 0 R/XYZ 0 15259 1] endobj 10498 0 obj [914 0 R/XYZ 0 15259 1] endobj 10499 0 obj [917 0 R/XYZ 0 15259 1] endobj 10500 0 obj [922 0 R/XYZ 0 15259 1] endobj 10501 0 obj [927 0 R/XYZ 0 15259 1] endobj 10502 0 obj [933 0 R/XYZ 0 15259 1] endobj 10503 0 obj [1039 0 R/XYZ 0 15259 1] endobj 10504 0 obj [1040 0 R/XYZ 0 15259 1] endobj 10505 0 obj [1042 0 R/XYZ 0 15259 1] endobj 10506 0 obj [1365 0 R/XYZ 0 15259 1] endobj 10507 0 obj [892 0 R/XYZ 0 15259 1] endobj 10508 0 obj [853 0 R/XYZ 0 15259 1] endobj 10509 0 obj [856 0 R/XYZ 0 15259 1] endobj 10510 0 obj [853 0 R/XYZ 0 15259 1] endobj 10511 0 obj [854 0 R/XYZ 0 15259 1] endobj 10512 0 obj [856 0 R/XYZ 0 15259 1] endobj 10513 0 obj [722 0 R/XYZ 0 15259 1] endobj 10514 0 obj [871 0 R/XYZ 0 15259 1] endobj 10515 0 obj [901 0 R/XYZ 0 15259 1] endobj 10516 0 obj [930 0 R/XYZ 0 15259 1] endobj 10517 0 obj [932 0 R/XYZ 0 15259 1] endobj 10518 0 obj [930 0 R/XYZ 0 15259 1] endobj 10519 0 obj [446 0 R/XYZ 0 15259 1] endobj 10520 0 obj [451 0 R/XYZ 0 15259 1] endobj 10521 0 obj [930 0 R/XYZ 0 15259 1] endobj 10522 0 obj [829 0 R/XYZ 0 15259 1] endobj 10523 0 obj [853 0 R/XYZ 0 15259 1] endobj 10524 0 obj [856 0 R/XYZ 0 15259 1] endobj 10525 0 obj [894 0 R/XYZ 0 15259 1] endobj 10526 0 obj [897 0 R/XYZ 0 15259 1] endobj 10527 0 obj [911 0 R/XYZ 0 15259 1] endobj 10528 0 obj [912 0 R/XYZ 0 15259 1] endobj 10529 0 obj [919 0 R/XYZ 0 15259 1] endobj 10530 0 obj [922 0 R/XYZ 0 15259 1] endobj 10531 0 obj [924 0 R/XYZ 0 15259 1] endobj 10532 0 obj [1042 0 R/XYZ 0 15259 1] endobj 10533 0 obj [1044 0 R/XYZ 0 15259 1] endobj 10534 0 obj [1163 0 R/XYZ 0 15259 1] endobj 10535 0 obj [1338 0 R/XYZ 0 15259 1] endobj 10536 0 obj [1348 0 R/XYZ 0 15259 1] endobj 10537 0 obj [1366 0 R/XYZ 0 15259 1] endobj 10538 0 obj [1374 0 R/XYZ 0 15259 1] endobj 10539 0 obj [930 0 R/XYZ 0 15259 1] endobj 10540 0 obj [930 0 R/XYZ 0 15259 1] endobj 10541 0 obj [850 0 R/XYZ 0 15259 1] endobj 10542 0 obj [853 0 R/XYZ 0 15259 1] endobj 10543 0 obj [856 0 R/XYZ 0 15259 1] endobj 10544 0 obj [873 0 R/XYZ 0 15259 1] endobj 10545 0 obj [879 0 R/XYZ 0 15259 1] endobj 10546 0 obj [900 0 R/XYZ 0 15259 1] endobj 10547 0 obj [901 0 R/XYZ 0 15259 1] endobj 10548 0 obj [956 0 R/XYZ 0 15259 1] endobj 10549 0 obj [1139 0 R/XYZ 0 15259 1] endobj 10550 0 obj [871 0 R/XYZ 0 15259 1] endobj 10551 0 obj [874 0 R/XYZ 0 15259 1] endobj 10552 0 obj [718 0 R/XYZ 0 15259 1] endobj 10553 0 obj [871 0 R/XYZ 0 15259 1] endobj 10554 0 obj [904 0 R/XYZ 0 15259 1] endobj 10555 0 obj [907 0 R/XYZ 0 15259 1] endobj 10556 0 obj [905 0 R/XYZ 0 15259 1] endobj 10557 0 obj [892 0 R/XYZ 0 15259 1] endobj 10558 0 obj [895 0 R/XYZ 0 15259 1] endobj 10559 0 obj [897 0 R/XYZ 0 15259 1] endobj 10560 0 obj [910 0 R/XYZ 0 15259 1] endobj 10561 0 obj [912 0 R/XYZ 0 15259 1] endobj 10562 0 obj [914 0 R/XYZ 0 15259 1] endobj 10563 0 obj [917 0 R/XYZ 0 15259 1] endobj 10564 0 obj [922 0 R/XYZ 0 15259 1] endobj 10565 0 obj [927 0 R/XYZ 0 15259 1] endobj 10566 0 obj [1040 0 R/XYZ 0 15259 1] endobj 10567 0 obj [1042 0 R/XYZ 0 15259 1] endobj 10568 0 obj [1365 0 R/XYZ 0 15259 1] endobj 10569 0 obj <> endobj 10570 0 obj [472 0 R/XYZ 0 15259 1] endobj 10571 0 obj [879 0 R/XYZ 0 15259 1] endobj 10572 0 obj [889 0 R/XYZ 0 15259 1] endobj 10573 0 obj [894 0 R/XYZ 0 15259 1] endobj 10574 0 obj [895 0 R/XYZ 0 15259 1] endobj 10575 0 obj [910 0 R/XYZ 0 15259 1] endobj 10576 0 obj [911 0 R/XYZ 0 15259 1] endobj 10577 0 obj [913 0 R/XYZ 0 15259 1] endobj 10578 0 obj [917 0 R/XYZ 0 15259 1] endobj 10579 0 obj [921 0 R/XYZ 0 15259 1] endobj 10580 0 obj [927 0 R/XYZ 0 15259 1] endobj 10581 0 obj [933 0 R/XYZ 0 15259 1] endobj 10582 0 obj [1040 0 R/XYZ 0 15259 1] endobj 10583 0 obj [1042 0 R/XYZ 0 15259 1] endobj 10584 0 obj [1365 0 R/XYZ 0 15259 1] endobj 10585 0 obj [1507 0 R/XYZ 0 15259 1] endobj 10586 0 obj [853 0 R/XYZ 0 15259 1] endobj 10587 0 obj [856 0 R/XYZ 0 15259 1] endobj 10588 0 obj [851 0 R/XYZ 0 15259 1] endobj 10589 0 obj [853 0 R/XYZ 0 15259 1] endobj 10590 0 obj [856 0 R/XYZ 0 15259 1] endobj 10591 0 obj [860 0 R/XYZ 0 15259 1] endobj 10592 0 obj [892 0 R/XYZ 0 15259 1] endobj 10593 0 obj [932 0 R/XYZ 0 15259 1] endobj 10594 0 obj [1348 0 R/XYZ 0 15259 1] endobj 10595 0 obj [871 0 R/XYZ 0 15259 1] endobj 10596 0 obj [884 0 R/XYZ 0 15259 1] endobj 10597 0 obj [909 0 R/XYZ 0 15259 1] endobj 10598 0 obj [916 0 R/XYZ 0 15259 1] endobj 10599 0 obj [927 0 R/XYZ 0 15259 1] endobj 10600 0 obj [1036 0 R/XYZ 0 15259 1] endobj 10601 0 obj [909 0 R/XYZ 0 15259 1] endobj 10602 0 obj [853 0 R/XYZ 0 15259 1] endobj 10603 0 obj [856 0 R/XYZ 0 15259 1] endobj 10604 0 obj [851 0 R/XYZ 0 15259 1] endobj 10605 0 obj [853 0 R/XYZ 0 15259 1] endobj 10606 0 obj [857 0 R/XYZ 0 15259 1] endobj 10607 0 obj [862 0 R/XYZ 0 15259 1] endobj 10608 0 obj [1072 0 R/XYZ 0 15259 1] endobj 10609 0 obj [1076 0 R/XYZ 0 15259 1] endobj 10610 0 obj [1374 0 R/XYZ 0 15259 1] endobj 10611 0 obj [1406 0 R/XYZ 0 15259 1] endobj 10612 0 obj [1408 0 R/XYZ 0 15259 1] endobj 10613 0 obj [1419 0 R/XYZ 0 15259 1] endobj 10614 0 obj [1509 0 R/XYZ 0 15259 1] endobj 10615 0 obj [1524 0 R/XYZ 0 15259 1] endobj 10616 0 obj [1644 0 R/XYZ 0 15259 1] endobj 10617 0 obj [853 0 R/XYZ 0 15259 1] endobj 10618 0 obj [857 0 R/XYZ 0 15259 1] endobj 10619 0 obj [855 0 R/XYZ 0 15259 1] endobj 10620 0 obj [1036 0 R/XYZ 0 15259 1] endobj 10621 0 obj [853 0 R/XYZ 0 15259 1] endobj 10622 0 obj [857 0 R/XYZ 0 15259 1] endobj 10623 0 obj [899 0 R/XYZ 0 15259 1] endobj 10624 0 obj [901 0 R/XYZ 0 15259 1] endobj 10625 0 obj [829 0 R/XYZ 0 15259 1] endobj 10626 0 obj [839 0 R/XYZ 0 15259 1] endobj 10627 0 obj [853 0 R/XYZ 0 15259 1] endobj 10628 0 obj [856 0 R/XYZ 0 15259 1] endobj 10629 0 obj [857 0 R/XYZ 0 15259 1] endobj 10630 0 obj [932 0 R/XYZ 0 15259 1] endobj 10631 0 obj [935 0 R/XYZ 0 15259 1] endobj 10632 0 obj [1337 0 R/XYZ 0 15259 1] endobj 10633 0 obj [1339 0 R/XYZ 0 15259 1] endobj 10634 0 obj [1365 0 R/XYZ 0 15259 1] endobj 10635 0 obj [1410 0 R/XYZ 0 15259 1] endobj 10636 0 obj [829 0 R/XYZ 0 15259 1] endobj 10637 0 obj [830 0 R/XYZ 0 15259 1] endobj 10638 0 obj [834 0 R/XYZ 0 15259 1] endobj 10639 0 obj [840 0 R/XYZ 0 15259 1] endobj 10640 0 obj [853 0 R/XYZ 0 15259 1] endobj 10641 0 obj [857 0 R/XYZ 0 15259 1] endobj 10642 0 obj [932 0 R/XYZ 0 15259 1] endobj 10643 0 obj [935 0 R/XYZ 0 15259 1] endobj 10644 0 obj [830 0 R/XYZ 0 15259 1] endobj 10645 0 obj [831 0 R/XYZ 0 15259 1] endobj 10646 0 obj [853 0 R/XYZ 0 15259 1] endobj 10647 0 obj [857 0 R/XYZ 0 15259 1] endobj 10648 0 obj [932 0 R/XYZ 0 15259 1] endobj 10649 0 obj [935 0 R/XYZ 0 15259 1] endobj 10650 0 obj [1351 0 R/XYZ 0 15259 1] endobj 10651 0 obj [892 0 R/XYZ 0 15259 1] endobj 10652 0 obj [897 0 R/XYZ 0 15259 1] endobj 10653 0 obj [933 0 R/XYZ 0 15259 1] endobj 10654 0 obj [1040 0 R/XYZ 0 15259 1] endobj 10655 0 obj [512 0 R/XYZ 0 15259 1] endobj 10656 0 obj [850 0 R/XYZ 0 15259 1] endobj 10657 0 obj [853 0 R/XYZ 0 15259 1] endobj 10658 0 obj [855 0 R/XYZ 0 15259 1] endobj 10659 0 obj [858 0 R/XYZ 0 15259 1] endobj 10660 0 obj [1118 0 R/XYZ 0 15259 1] endobj 10661 0 obj [1120 0 R/XYZ 0 15259 1] endobj 10662 0 obj [1268 0 R/XYZ 0 15259 1] endobj 10663 0 obj [853 0 R/XYZ 0 15259 1] endobj 10664 0 obj [858 0 R/XYZ 0 15259 1] endobj 10665 0 obj [861 0 R/XYZ 0 15259 1] endobj 10666 0 obj [894 0 R/XYZ 0 15259 1] endobj 10667 0 obj [905 0 R/XYZ 0 15259 1] endobj 10668 0 obj [907 0 R/XYZ 0 15259 1] endobj 10669 0 obj [910 0 R/XYZ 0 15259 1] endobj 10670 0 obj [911 0 R/XYZ 0 15259 1] endobj 10671 0 obj [913 0 R/XYZ 0 15259 1] endobj 10672 0 obj [914 0 R/XYZ 0 15259 1] endobj 10673 0 obj [1104 0 R/XYZ 0 15259 1] endobj 10674 0 obj [853 0 R/XYZ 0 15259 1] endobj 10675 0 obj [858 0 R/XYZ 0 15259 1] endobj 10676 0 obj [861 0 R/XYZ 0 15259 1] endobj 10677 0 obj [913 0 R/XYZ 0 15259 1] endobj 10678 0 obj [914 0 R/XYZ 0 15259 1] endobj 10679 0 obj [900 0 R/XYZ 0 15259 1] endobj 10680 0 obj [853 0 R/XYZ 0 15259 1] endobj 10681 0 obj [858 0 R/XYZ 0 15259 1] endobj 10682 0 obj [1036 0 R/XYZ 0 15259 1] endobj 10683 0 obj [1040 0 R/XYZ 0 15259 1] endobj 10684 0 obj [1041 0 R/XYZ 0 15259 1] endobj 10685 0 obj [1044 0 R/XYZ 0 15259 1] endobj 10686 0 obj [1071 0 R/XYZ 0 15259 1] endobj 10687 0 obj [1073 0 R/XYZ 0 15259 1] endobj 10688 0 obj [1524 0 R/XYZ 0 15259 1] endobj 10689 0 obj [1040 0 R/XYZ 0 15259 1] endobj 10690 0 obj [1036 0 R/XYZ 0 15259 1] endobj 10691 0 obj [853 0 R/XYZ 0 15259 1] endobj 10692 0 obj [858 0 R/XYZ 0 15259 1] endobj 10693 0 obj [843 0 R/XYZ 0 15259 1] endobj 10694 0 obj [853 0 R/XYZ 0 15259 1] endobj 10695 0 obj [858 0 R/XYZ 0 15259 1] endobj 10696 0 obj [1376 0 R/XYZ 0 15259 1] endobj 10697 0 obj [1379 0 R/XYZ 0 15259 1] endobj 10698 0 obj [1389 0 R/XYZ 0 15259 1] endobj 10699 0 obj [1390 0 R/XYZ 0 15259 1] endobj 10700 0 obj [1418 0 R/XYZ 0 15259 1] endobj 10701 0 obj [1419 0 R/XYZ 0 15259 1] endobj 10702 0 obj [721 0 R/XYZ 0 15259 1] endobj 10703 0 obj [853 0 R/XYZ 0 15259 1] endobj 10704 0 obj [858 0 R/XYZ 0 15259 1] endobj 10705 0 obj [721 0 R/XYZ 0 15259 1] endobj 10706 0 obj [853 0 R/XYZ 0 15259 1] endobj 10707 0 obj [858 0 R/XYZ 0 15259 1] endobj 10708 0 obj [939 0 R/XYZ 0 15259 1] endobj 10709 0 obj [1625 0 R/XYZ 0 15259 1] endobj 10710 0 obj [853 0 R/XYZ 0 15259 1] endobj 10711 0 obj [858 0 R/XYZ 0 15259 1] endobj 10712 0 obj [901 0 R/XYZ 0 15259 1] endobj 10713 0 obj [558 0 R/XYZ 0 15259 1] endobj 10714 0 obj [564 0 R/XYZ 0 15259 1] endobj 10715 0 obj [1653 0 R/XYZ 0 15259 1] endobj 10716 0 obj [1068 0 R/XYZ 0 15259 1] endobj 10717 0 obj [1070 0 R/XYZ 0 15259 1] endobj 10718 0 obj [1118 0 R/XYZ 0 15259 1] endobj 10719 0 obj [1270 0 R/XYZ 0 15259 1] endobj 10720 0 obj [901 0 R/XYZ 0 15259 1] endobj 10721 0 obj [537 0 R/XYZ 0 15259 1] endobj 10722 0 obj [545 0 R/XYZ 0 15259 1] endobj 10723 0 obj [549 0 R/XYZ 0 15259 1] endobj 10724 0 obj [599 0 R/XYZ 0 15259 1] endobj 10725 0 obj [614 0 R/XYZ 0 15259 1] endobj 10726 0 obj [1068 0 R/XYZ 0 15259 1] endobj 10727 0 obj [1594 0 R/XYZ 0 15259 1] endobj 10728 0 obj [537 0 R/XYZ 0 15259 1] endobj 10729 0 obj [545 0 R/XYZ 0 15259 1] endobj 10730 0 obj [549 0 R/XYZ 0 15259 1] endobj 10731 0 obj [599 0 R/XYZ 0 15259 1] endobj 10732 0 obj [614 0 R/XYZ 0 15259 1] endobj 10733 0 obj [1068 0 R/XYZ 0 15259 1] endobj 10734 0 obj [1594 0 R/XYZ 0 15259 1] endobj 10735 0 obj [537 0 R/XYZ 0 15259 1] endobj 10736 0 obj [545 0 R/XYZ 0 15259 1] endobj 10737 0 obj [549 0 R/XYZ 0 15259 1] endobj 10738 0 obj [599 0 R/XYZ 0 15259 1] endobj 10739 0 obj [614 0 R/XYZ 0 15259 1] endobj 10740 0 obj [642 0 R/XYZ 0 15259 1] endobj 10741 0 obj [1068 0 R/XYZ 0 15259 1] endobj 10742 0 obj [1512 0 R/XYZ 0 15259 1] endobj 10743 0 obj [1594 0 R/XYZ 0 15259 1] endobj 10744 0 obj [549 0 R/XYZ 0 15259 1] endobj 10745 0 obj [1288 0 R/XYZ 0 15259 1] endobj 10746 0 obj [549 0 R/XYZ 0 15259 1] endobj 10747 0 obj [1288 0 R/XYZ 0 15259 1] endobj 10748 0 obj [549 0 R/XYZ 0 15259 1] endobj 10749 0 obj [1212 0 R/XYZ 0 15259 1] endobj 10750 0 obj [1288 0 R/XYZ 0 15259 1] endobj 10751 0 obj [532 0 R/XYZ 0 15259 1] endobj 10752 0 obj [533 0 R/XYZ 0 15259 1] endobj 10753 0 obj [596 0 R/XYZ 0 15259 1] endobj 10754 0 obj [532 0 R/XYZ 0 15259 1] endobj 10755 0 obj [533 0 R/XYZ 0 15259 1] endobj 10756 0 obj [596 0 R/XYZ 0 15259 1] endobj 10757 0 obj [1361 0 R/XYZ 0 15259 1] endobj 10758 0 obj [532 0 R/XYZ 0 15259 1] endobj 10759 0 obj [533 0 R/XYZ 0 15259 1] endobj 10760 0 obj [588 0 R/XYZ 0 15259 1] endobj 10761 0 obj [1361 0 R/XYZ 0 15259 1] endobj 10762 0 obj [532 0 R/XYZ 0 15259 1] endobj 10763 0 obj [533 0 R/XYZ 0 15259 1] endobj 10764 0 obj [1151 0 R/XYZ 0 15259 1] endobj 10765 0 obj [1171 0 R/XYZ 0 15259 1] endobj 10766 0 obj [537 0 R/XYZ 0 15259 1] endobj 10767 0 obj [549 0 R/XYZ 0 15259 1] endobj 10768 0 obj [599 0 R/XYZ 0 15259 1] endobj 10769 0 obj [1100 0 R/XYZ 0 15259 1] endobj 10770 0 obj [532 0 R/XYZ 0 15259 1] endobj 10771 0 obj [533 0 R/XYZ 0 15259 1] endobj 10772 0 obj [532 0 R/XYZ 0 15259 1] endobj 10773 0 obj [1502 0 R/XYZ 0 15259 1] endobj 10774 0 obj [532 0 R/XYZ 0 15259 1] endobj 10775 0 obj [533 0 R/XYZ 0 15259 1] endobj 10776 0 obj [1288 0 R/XYZ 0 15259 1] endobj 10777 0 obj [537 0 R/XYZ 0 15259 1] endobj 10778 0 obj [549 0 R/XYZ 0 15259 1] endobj 10779 0 obj [599 0 R/XYZ 0 15259 1] endobj 10780 0 obj [549 0 R/XYZ 0 15259 1] endobj 10781 0 obj [553 0 R/XYZ 0 15259 1] endobj 10782 0 obj [599 0 R/XYZ 0 15259 1] endobj 10783 0 obj [901 0 R/XYZ 0 15259 1] endobj 10784 0 obj [901 0 R/XYZ 0 15259 1] endobj 10785 0 obj [537 0 R/XYZ 0 15259 1] endobj 10786 0 obj [545 0 R/XYZ 0 15259 1] endobj 10787 0 obj [549 0 R/XYZ 0 15259 1] endobj 10788 0 obj [599 0 R/XYZ 0 15259 1] endobj 10789 0 obj [614 0 R/XYZ 0 15259 1] endobj 10790 0 obj [537 0 R/XYZ 0 15259 1] endobj 10791 0 obj [545 0 R/XYZ 0 15259 1] endobj 10792 0 obj [549 0 R/XYZ 0 15259 1] endobj 10793 0 obj [599 0 R/XYZ 0 15259 1] endobj 10794 0 obj [614 0 R/XYZ 0 15259 1] endobj 10795 0 obj [537 0 R/XYZ 0 15259 1] endobj 10796 0 obj [545 0 R/XYZ 0 15259 1] endobj 10797 0 obj [549 0 R/XYZ 0 15259 1] endobj 10798 0 obj [599 0 R/XYZ 0 15259 1] endobj 10799 0 obj [614 0 R/XYZ 0 15259 1] endobj 10800 0 obj [642 0 R/XYZ 0 15259 1] endobj 10801 0 obj [1068 0 R/XYZ 0 15259 1] endobj 10802 0 obj [1512 0 R/XYZ 0 15259 1] endobj 10803 0 obj [1594 0 R/XYZ 0 15259 1] endobj 10804 0 obj [537 0 R/XYZ 0 15259 1] endobj 10805 0 obj [549 0 R/XYZ 0 15259 1] endobj 10806 0 obj [599 0 R/XYZ 0 15259 1] endobj 10807 0 obj [1100 0 R/XYZ 0 15259 1] endobj 10808 0 obj [1594 0 R/XYZ 0 15259 1] endobj 10809 0 obj [537 0 R/XYZ 0 15259 1] endobj 10810 0 obj [549 0 R/XYZ 0 15259 1] endobj 10811 0 obj [599 0 R/XYZ 0 15259 1] endobj 10812 0 obj [1594 0 R/XYZ 0 15259 1] endobj 10813 0 obj [537 0 R/XYZ 0 15259 1] endobj 10814 0 obj [549 0 R/XYZ 0 15259 1] endobj 10815 0 obj [599 0 R/XYZ 0 15259 1] endobj 10816 0 obj [642 0 R/XYZ 0 15259 1] endobj 10817 0 obj [1594 0 R/XYZ 0 15259 1] endobj 10818 0 obj [556 0 R/XYZ 0 15259 1] endobj 10819 0 obj [558 0 R/XYZ 0 15259 1] endobj 10820 0 obj [702 0 R/XYZ 0 15259 1] endobj 10821 0 obj [704 0 R/XYZ 0 15259 1] endobj 10822 0 obj [727 0 R/XYZ 0 15259 1] endobj 10823 0 obj [736 0 R/XYZ 0 15259 1] endobj 10824 0 obj [472 0 R/XYZ 0 15259 1] endobj 10825 0 obj [474 0 R/XYZ 0 15259 1] endobj 10826 0 obj [493 0 R/XYZ 0 15259 1] endobj 10827 0 obj [1112 0 R/XYZ 0 15259 1] endobj 10828 0 obj [1458 0 R/XYZ 0 15259 1] endobj 10829 0 obj [1606 0 R/XYZ 0 15259 1] endobj 10830 0 obj [638 0 R/XYZ 0 15259 1] endobj 10831 0 obj [735 0 R/XYZ 0 15259 1] endobj 10832 0 obj [740 0 R/XYZ 0 15259 1] endobj 10833 0 obj [751 0 R/XYZ 0 15259 1] endobj 10834 0 obj [757 0 R/XYZ 0 15259 1] endobj 10835 0 obj [788 0 R/XYZ 0 15259 1] endobj 10836 0 obj [790 0 R/XYZ 0 15259 1] endobj 10837 0 obj [839 0 R/XYZ 0 15259 1] endobj 10838 0 obj [871 0 R/XYZ 0 15259 1] endobj 10839 0 obj [875 0 R/XYZ 0 15259 1] endobj 10840 0 obj [883 0 R/XYZ 0 15259 1] endobj 10841 0 obj [886 0 R/XYZ 0 15259 1] endobj 10842 0 obj [895 0 R/XYZ 0 15259 1] endobj 10843 0 obj [924 0 R/XYZ 0 15259 1] endobj 10844 0 obj [928 0 R/XYZ 0 15259 1] endobj 10845 0 obj [938 0 R/XYZ 0 15259 1] endobj 10846 0 obj [939 0 R/XYZ 0 15259 1] endobj 10847 0 obj [949 0 R/XYZ 0 15259 1] endobj 10848 0 obj [954 0 R/XYZ 0 15259 1] endobj 10849 0 obj [955 0 R/XYZ 0 15259 1] endobj 10850 0 obj [1019 0 R/XYZ 0 15259 1] endobj 10851 0 obj [1036 0 R/XYZ 0 15259 1] endobj 10852 0 obj [1047 0 R/XYZ 0 15259 1] endobj 10853 0 obj [1108 0 R/XYZ 0 15259 1] endobj 10854 0 obj [1145 0 R/XYZ 0 15259 1] endobj 10855 0 obj [1245 0 R/XYZ 0 15259 1] endobj 10856 0 obj [1246 0 R/XYZ 0 15259 1] endobj 10857 0 obj [1623 0 R/XYZ 0 15259 1] endobj 10858 0 obj [1625 0 R/XYZ 0 15259 1] endobj 10859 0 obj [1628 0 R/XYZ 0 15259 1] endobj 10860 0 obj [1631 0 R/XYZ 0 15259 1] endobj 10861 0 obj [1636 0 R/XYZ 0 15259 1] endobj 10862 0 obj [926 0 R/XYZ 0 15259 1] endobj 10863 0 obj [927 0 R/XYZ 0 15259 1] endobj 10864 0 obj [1629 0 R/XYZ 0 15259 1] endobj 10865 0 obj [924 0 R/XYZ 0 15259 1] endobj 10866 0 obj [1624 0 R/XYZ 0 15259 1] endobj 10867 0 obj [1145 0 R/XYZ 0 15259 1] endobj 10868 0 obj [1594 0 R/XYZ 0 15259 1] endobj 10869 0 obj [1633 0 R/XYZ 0 15259 1] endobj 10870 0 obj [1634 0 R/XYZ 0 15259 1] endobj 10871 0 obj [818 0 R/XYZ 0 15259 1] endobj 10872 0 obj [1118 0 R/XYZ 0 15259 1] endobj 10873 0 obj [637 0 R/XYZ 0 15259 1] endobj 10874 0 obj [630 0 R/XYZ 0 15259 1] endobj 10875 0 obj [1600 0 R/XYZ 0 15259 1] endobj 10876 0 obj [1603 0 R/XYZ 0 15259 1] endobj 10877 0 obj [630 0 R/XYZ 0 15259 1] endobj 10878 0 obj [1652 0 R/XYZ 0 15259 1] endobj 10879 0 obj [1231 0 R/XYZ 0 15259 1] endobj 10880 0 obj [1234 0 R/XYZ 0 15259 1] endobj 10881 0 obj [1244 0 R/XYZ 0 15259 1] endobj 10882 0 obj [1246 0 R/XYZ 0 15259 1] endobj 10883 0 obj [1248 0 R/XYZ 0 15259 1] endobj 10884 0 obj [1262 0 R/XYZ 0 15259 1] endobj 10885 0 obj [1266 0 R/XYZ 0 15259 1] endobj 10886 0 obj [1284 0 R/XYZ 0 15259 1] endobj 10887 0 obj [1286 0 R/XYZ 0 15259 1] endobj 10888 0 obj [1288 0 R/XYZ 0 15259 1] endobj 10889 0 obj [1290 0 R/XYZ 0 15259 1] endobj 10890 0 obj [1494 0 R/XYZ 0 15259 1] endobj 10891 0 obj [1231 0 R/XYZ 0 15259 1] endobj 10892 0 obj [1232 0 R/XYZ 0 15259 1] endobj 10893 0 obj [1240 0 R/XYZ 0 15259 1] endobj 10894 0 obj [1231 0 R/XYZ 0 15259 1] endobj 10895 0 obj [1232 0 R/XYZ 0 15259 1] endobj 10896 0 obj [1282 0 R/XYZ 0 15259 1] endobj 10897 0 obj [1287 0 R/XYZ 0 15259 1] endobj 10898 0 obj [1289 0 R/XYZ 0 15259 1] endobj 10899 0 obj [1292 0 R/XYZ 0 15259 1] endobj 10900 0 obj [871 0 R/XYZ 0 15259 1] endobj 10901 0 obj [1268 0 R/XYZ 0 15259 1] endobj 10902 0 obj [1268 0 R/XYZ 0 15259 1] endobj 10903 0 obj [1223 0 R/XYZ 0 15259 1] endobj 10904 0 obj [1224 0 R/XYZ 0 15259 1] endobj 10905 0 obj [1239 0 R/XYZ 0 15259 1] endobj 10906 0 obj [1247 0 R/XYZ 0 15259 1] endobj 10907 0 obj [1252 0 R/XYZ 0 15259 1] endobj 10908 0 obj [1261 0 R/XYZ 0 15259 1] endobj 10909 0 obj [1264 0 R/XYZ 0 15259 1] endobj 10910 0 obj [1279 0 R/XYZ 0 15259 1] endobj 10911 0 obj [1641 0 R/XYZ 0 15259 1] endobj 10912 0 obj [1228 0 R/XYZ 0 15259 1] endobj 10913 0 obj [1244 0 R/XYZ 0 15259 1] endobj 10914 0 obj [1223 0 R/XYZ 0 15259 1] endobj 10915 0 obj [1228 0 R/XYZ 0 15259 1] endobj 10916 0 obj [1270 0 R/XYZ 0 15259 1] endobj 10917 0 obj [361 0 R/XYZ 0 15259 1] endobj 10918 0 obj <> endobj 10919 0 obj [1247 0 R/XYZ 0 15259 1] endobj 10920 0 obj [1248 0 R/XYZ 0 15259 1] endobj 10921 0 obj [1270 0 R/XYZ 0 15259 1] endobj 10922 0 obj [531 0 R/XYZ 0 15259 1] endobj 10923 0 obj [1150 0 R/XYZ 0 15259 1] endobj 10924 0 obj [1217 0 R/XYZ 0 15259 1] endobj 10925 0 obj [1221 0 R/XYZ 0 15259 1] endobj 10926 0 obj [1272 0 R/XYZ 0 15259 1] endobj 10927 0 obj [1264 0 R/XYZ 0 15259 1] endobj 10928 0 obj [1266 0 R/XYZ 0 15259 1] endobj 10929 0 obj [613 0 R/XYZ 0 15259 1] endobj 10930 0 obj [871 0 R/XYZ 0 15259 1] endobj 10931 0 obj [1223 0 R/XYZ 0 15259 1] endobj 10932 0 obj [1225 0 R/XYZ 0 15259 1] endobj 10933 0 obj [1246 0 R/XYZ 0 15259 1] endobj 10934 0 obj [1248 0 R/XYZ 0 15259 1] endobj 10935 0 obj [1261 0 R/XYZ 0 15259 1] endobj 10936 0 obj [1266 0 R/XYZ 0 15259 1] endobj 10937 0 obj [1286 0 R/XYZ 0 15259 1] endobj 10938 0 obj [1287 0 R/XYZ 0 15259 1] endobj 10939 0 obj [1289 0 R/XYZ 0 15259 1] endobj 10940 0 obj [1290 0 R/XYZ 0 15259 1] endobj 10941 0 obj [1502 0 R/XYZ 0 15259 1] endobj 10942 0 obj [1223 0 R/XYZ 0 15259 1] endobj 10943 0 obj [613 0 R/XYZ 0 15259 1] endobj 10944 0 obj [871 0 R/XYZ 0 15259 1] endobj 10945 0 obj [1276 0 R/XYZ 0 15259 1] endobj 10946 0 obj [1277 0 R/XYZ 0 15259 1] endobj 10947 0 obj [1279 0 R/XYZ 0 15259 1] endobj 10948 0 obj [1282 0 R/XYZ 0 15259 1] endobj 10949 0 obj [1641 0 R/XYZ 0 15259 1] endobj 10950 0 obj [1277 0 R/XYZ 0 15259 1] endobj 10951 0 obj [1276 0 R/XYZ 0 15259 1] endobj 10952 0 obj [1292 0 R/XYZ 0 15259 1] endobj 10953 0 obj [1191 0 R/XYZ 0 15259 1] endobj 10954 0 obj [1245 0 R/XYZ 0 15259 1] endobj 10955 0 obj [1246 0 R/XYZ 0 15259 1] endobj 10956 0 obj [1248 0 R/XYZ 0 15259 1] endobj 10957 0 obj [1262 0 R/XYZ 0 15259 1] endobj 10958 0 obj [1266 0 R/XYZ 0 15259 1] endobj 10959 0 obj [1494 0 R/XYZ 0 15259 1] endobj 10960 0 obj [1223 0 R/XYZ 0 15259 1] endobj 10961 0 obj [1224 0 R/XYZ 0 15259 1] endobj 10962 0 obj [1239 0 R/XYZ 0 15259 1] endobj 10963 0 obj [1223 0 R/XYZ 0 15259 1] endobj 10964 0 obj [1224 0 R/XYZ 0 15259 1] endobj 10965 0 obj [1239 0 R/XYZ 0 15259 1] endobj 10966 0 obj [1244 0 R/XYZ 0 15259 1] endobj 10967 0 obj [1248 0 R/XYZ 0 15259 1] endobj 10968 0 obj [1252 0 R/XYZ 0 15259 1] endobj 10969 0 obj [1266 0 R/XYZ 0 15259 1] endobj 10970 0 obj [855 0 R/XYZ 0 15259 1] endobj 10971 0 obj [1223 0 R/XYZ 0 15259 1] endobj 10972 0 obj [1224 0 R/XYZ 0 15259 1] endobj 10973 0 obj [1239 0 R/XYZ 0 15259 1] endobj 10974 0 obj [1244 0 R/XYZ 0 15259 1] endobj 10975 0 obj [1248 0 R/XYZ 0 15259 1] endobj 10976 0 obj [1252 0 R/XYZ 0 15259 1] endobj 10977 0 obj [1254 0 R/XYZ 0 15259 1] endobj 10978 0 obj [1256 0 R/XYZ 0 15259 1] endobj 10979 0 obj [1258 0 R/XYZ 0 15259 1] endobj 10980 0 obj [1259 0 R/XYZ 0 15259 1] endobj 10981 0 obj [1266 0 R/XYZ 0 15259 1] endobj 10982 0 obj [1277 0 R/XYZ 0 15259 1] endobj 10983 0 obj [1284 0 R/XYZ 0 15259 1] endobj 10984 0 obj [1286 0 R/XYZ 0 15259 1] endobj 10985 0 obj [1289 0 R/XYZ 0 15259 1] endobj 10986 0 obj [1496 0 R/XYZ 0 15259 1] endobj 10987 0 obj [1502 0 R/XYZ 0 15259 1] endobj 10988 0 obj [1510 0 R/XYZ 0 15259 1] endobj 10989 0 obj [381 0 R/XYZ 0 15259 1] endobj 10990 0 obj [383 0 R/XYZ 0 15259 1] endobj 10991 0 obj [418 0 R/XYZ 0 15259 1] endobj 10992 0 obj [419 0 R/XYZ 0 15259 1] endobj 10993 0 obj [421 0 R/XYZ 0 15259 1] endobj 10994 0 obj [423 0 R/XYZ 0 15259 1] endobj 10995 0 obj [437 0 R/XYZ 0 15259 1] endobj 10996 0 obj [440 0 R/XYZ 0 15259 1] endobj 10997 0 obj [444 0 R/XYZ 0 15259 1] endobj 10998 0 obj [448 0 R/XYZ 0 15259 1] endobj 10999 0 obj [456 0 R/XYZ 0 15259 1] endobj 11000 0 obj [458 0 R/XYZ 0 15259 1] endobj 11001 0 obj [468 0 R/XYZ 0 15259 1] endobj 11002 0 obj [474 0 R/XYZ 0 15259 1] endobj 11003 0 obj [480 0 R/XYZ 0 15259 1] endobj 11004 0 obj [482 0 R/XYZ 0 15259 1] endobj 11005 0 obj [483 0 R/XYZ 0 15259 1] endobj 11006 0 obj [491 0 R/XYZ 0 15259 1] endobj 11007 0 obj [501 0 R/XYZ 0 15259 1] endobj 11008 0 obj [519 0 R/XYZ 0 15259 1] endobj 11009 0 obj [542 0 R/XYZ 0 15259 1] endobj 11010 0 obj [551 0 R/XYZ 0 15259 1] endobj 11011 0 obj [560 0 R/XYZ 0 15259 1] endobj 11012 0 obj [571 0 R/XYZ 0 15259 1] endobj 11013 0 obj [572 0 R/XYZ 0 15259 1] endobj 11014 0 obj [583 0 R/XYZ 0 15259 1] endobj 11015 0 obj [586 0 R/XYZ 0 15259 1] endobj 11016 0 obj [587 0 R/XYZ 0 15259 1] endobj 11017 0 obj [595 0 R/XYZ 0 15259 1] endobj 11018 0 obj [657 0 R/XYZ 0 15259 1] endobj 11019 0 obj [663 0 R/XYZ 0 15259 1] endobj 11020 0 obj [667 0 R/XYZ 0 15259 1] endobj 11021 0 obj [674 0 R/XYZ 0 15259 1] endobj 11022 0 obj [705 0 R/XYZ 0 15259 1] endobj 11023 0 obj [706 0 R/XYZ 0 15259 1] endobj 11024 0 obj [709 0 R/XYZ 0 15259 1] endobj 11025 0 obj [710 0 R/XYZ 0 15259 1] endobj 11026 0 obj [722 0 R/XYZ 0 15259 1] endobj 11027 0 obj [726 0 R/XYZ 0 15259 1] endobj 11028 0 obj [734 0 R/XYZ 0 15259 1] endobj 11029 0 obj [748 0 R/XYZ 0 15259 1] endobj 11030 0 obj [750 0 R/XYZ 0 15259 1] endobj 11031 0 obj [753 0 R/XYZ 0 15259 1] endobj 11032 0 obj [756 0 R/XYZ 0 15259 1] endobj 11033 0 obj [774 0 R/XYZ 0 15259 1] endobj 11034 0 obj [795 0 R/XYZ 0 15259 1] endobj 11035 0 obj [811 0 R/XYZ 0 15259 1] endobj 11036 0 obj [814 0 R/XYZ 0 15259 1] endobj 11037 0 obj [818 0 R/XYZ 0 15259 1] endobj 11038 0 obj [823 0 R/XYZ 0 15259 1] endobj 11039 0 obj [826 0 R/XYZ 0 15259 1] endobj 11040 0 obj [833 0 R/XYZ 0 15259 1] endobj 11041 0 obj [850 0 R/XYZ 0 15259 1] endobj 11042 0 obj [852 0 R/XYZ 0 15259 1] endobj 11043 0 obj [860 0 R/XYZ 0 15259 1] endobj 11044 0 obj [868 0 R/XYZ 0 15259 1] endobj 11045 0 obj [875 0 R/XYZ 0 15259 1] endobj 11046 0 obj [877 0 R/XYZ 0 15259 1] endobj 11047 0 obj [899 0 R/XYZ 0 15259 1] endobj 11048 0 obj [904 0 R/XYZ 0 15259 1] endobj 11049 0 obj [923 0 R/XYZ 0 15259 1] endobj 11050 0 obj [926 0 R/XYZ 0 15259 1] endobj 11051 0 obj [932 0 R/XYZ 0 15259 1] endobj 11052 0 obj [935 0 R/XYZ 0 15259 1] endobj 11053 0 obj [936 0 R/XYZ 0 15259 1] endobj 11054 0 obj [947 0 R/XYZ 0 15259 1] endobj 11055 0 obj [951 0 R/XYZ 0 15259 1] endobj 11056 0 obj [955 0 R/XYZ 0 15259 1] endobj 11057 0 obj [959 0 R/XYZ 0 15259 1] endobj 11058 0 obj [977 0 R/XYZ 0 15259 1] endobj 11059 0 obj [1003 0 R/XYZ 0 15259 1] endobj 11060 0 obj [1004 0 R/XYZ 0 15259 1] endobj 11061 0 obj [1011 0 R/XYZ 0 15259 1] endobj 11062 0 obj [1019 0 R/XYZ 0 15259 1] endobj 11063 0 obj [1065 0 R/XYZ 0 15259 1] endobj 11064 0 obj [1087 0 R/XYZ 0 15259 1] endobj 11065 0 obj [1098 0 R/XYZ 0 15259 1] endobj 11066 0 obj [1099 0 R/XYZ 0 15259 1] endobj 11067 0 obj [1101 0 R/XYZ 0 15259 1] endobj 11068 0 obj [1107 0 R/XYZ 0 15259 1] endobj 11069 0 obj [1142 0 R/XYZ 0 15259 1] endobj 11070 0 obj [1144 0 R/XYZ 0 15259 1] endobj 11071 0 obj [1150 0 R/XYZ 0 15259 1] endobj 11072 0 obj [1183 0 R/XYZ 0 15259 1] endobj 11073 0 obj [1186 0 R/XYZ 0 15259 1] endobj 11074 0 obj [1188 0 R/XYZ 0 15259 1] endobj 11075 0 obj [1191 0 R/XYZ 0 15259 1] endobj 11076 0 obj [1193 0 R/XYZ 0 15259 1] endobj 11077 0 obj [1199 0 R/XYZ 0 15259 1] endobj 11078 0 obj [1200 0 R/XYZ 0 15259 1] endobj 11079 0 obj [1203 0 R/XYZ 0 15259 1] endobj 11080 0 obj [1225 0 R/XYZ 0 15259 1] endobj 11081 0 obj [1229 0 R/XYZ 0 15259 1] endobj 11082 0 obj [1246 0 R/XYZ 0 15259 1] endobj 11083 0 obj [1247 0 R/XYZ 0 15259 1] endobj 11084 0 obj [1251 0 R/XYZ 0 15259 1] endobj 11085 0 obj [1253 0 R/XYZ 0 15259 1] endobj 11086 0 obj [1270 0 R/XYZ 0 15259 1] endobj 11087 0 obj [1282 0 R/XYZ 0 15259 1] endobj 11088 0 obj [1298 0 R/XYZ 0 15259 1] endobj 11089 0 obj [1331 0 R/XYZ 0 15259 1] endobj 11090 0 obj [1335 0 R/XYZ 0 15259 1] endobj 11091 0 obj [1343 0 R/XYZ 0 15259 1] endobj 11092 0 obj [1351 0 R/XYZ 0 15259 1] endobj 11093 0 obj [1355 0 R/XYZ 0 15259 1] endobj 11094 0 obj [1364 0 R/XYZ 0 15259 1] endobj 11095 0 obj [1369 0 R/XYZ 0 15259 1] endobj 11096 0 obj [1387 0 R/XYZ 0 15259 1] endobj 11097 0 obj [1388 0 R/XYZ 0 15259 1] endobj 11098 0 obj [1395 0 R/XYZ 0 15259 1] endobj 11099 0 obj [1396 0 R/XYZ 0 15259 1] endobj 11100 0 obj [1399 0 R/XYZ 0 15259 1] endobj 11101 0 obj [1400 0 R/XYZ 0 15259 1] endobj 11102 0 obj [1416 0 R/XYZ 0 15259 1] endobj 11103 0 obj [1418 0 R/XYZ 0 15259 1] endobj 11104 0 obj [1425 0 R/XYZ 0 15259 1] endobj 11105 0 obj [1493 0 R/XYZ 0 15259 1] endobj 11106 0 obj [1611 0 R/XYZ 0 15259 1] endobj 11107 0 obj [1618 0 R/XYZ 0 15259 1] endobj 11108 0 obj [1625 0 R/XYZ 0 15259 1] endobj 11109 0 obj [1630 0 R/XYZ 0 15259 1] endobj 11110 0 obj [1632 0 R/XYZ 0 15259 1] endobj 11111 0 obj [1635 0 R/XYZ 0 15259 1] endobj 11112 0 obj [1636 0 R/XYZ 0 15259 1] endobj 11113 0 obj [1652 0 R/XYZ 0 15259 1] endobj 11114 0 obj [1265 0 R/XYZ 0 15259 1] endobj 11115 0 obj [1266 0 R/XYZ 0 15259 1] endobj 11116 0 obj [1295 0 R/XYZ 0 15259 1] endobj 11117 0 obj [1296 0 R/XYZ 0 15259 1] endobj 11118 0 obj [1300 0 R/XYZ 0 15259 1] endobj 11119 0 obj [1302 0 R/XYZ 0 15259 1] endobj 11120 0 obj [1605 0 R/XYZ 0 15259 1] endobj 11121 0 obj [1645 0 R/XYZ 0 15259 1] endobj 11122 0 obj [1247 0 R/XYZ 0 15259 1] endobj 11123 0 obj [1268 0 R/XYZ 0 15259 1] endobj 11124 0 obj [1301 0 R/XYZ 0 15259 1] endobj 11125 0 obj [1266 0 R/XYZ 0 15259 1] endobj 11126 0 obj [1118 0 R/XYZ 0 15259 1] endobj 11127 0 obj [661 0 R/XYZ 0 15259 1] endobj 11128 0 obj [762 0 R/XYZ 0 15259 1] endobj 11129 0 obj [826 0 R/XYZ 0 15259 1] endobj 11130 0 obj [1650 0 R/XYZ 0 15259 1] endobj 11131 0 obj [740 0 R/XYZ 0 15259 1] endobj 11132 0 obj [423 0 R/XYZ 0 15259 1] endobj 11133 0 obj [988 0 R/XYZ 0 15259 1] endobj 11134 0 obj [990 0 R/XYZ 0 15259 1] endobj 11135 0 obj [1486 0 R/XYZ 0 15259 1] endobj 11136 0 obj [1489 0 R/XYZ 0 15259 1] endobj 11137 0 obj [630 0 R/XYZ 0 15259 1] endobj 11138 0 obj [1167 0 R/XYZ 0 15259 1] endobj 11139 0 obj [1256 0 R/XYZ 0 15259 1] endobj 11140 0 obj [1262 0 R/XYZ 0 15259 1] endobj 11141 0 obj [1289 0 R/XYZ 0 15259 1] endobj 11142 0 obj [1306 0 R/XYZ 0 15259 1] endobj 11143 0 obj [1308 0 R/XYZ 0 15259 1] endobj 11144 0 obj [1311 0 R/XYZ 0 15259 1] endobj 11145 0 obj [1320 0 R/XYZ 0 15259 1] endobj 11146 0 obj [1322 0 R/XYZ 0 15259 1] endobj 11147 0 obj [1445 0 R/XYZ 0 15259 1] endobj 11148 0 obj [1458 0 R/XYZ 0 15259 1] endobj 11149 0 obj [1459 0 R/XYZ 0 15259 1] endobj 11150 0 obj [1497 0 R/XYZ 0 15259 1] endobj 11151 0 obj [1512 0 R/XYZ 0 15259 1] endobj 11152 0 obj [1513 0 R/XYZ 0 15259 1] endobj 11153 0 obj [1516 0 R/XYZ 0 15259 1] endobj 11154 0 obj [1517 0 R/XYZ 0 15259 1] endobj 11155 0 obj [1519 0 R/XYZ 0 15259 1] endobj 11156 0 obj [1521 0 R/XYZ 0 15259 1] endobj 11157 0 obj [1527 0 R/XYZ 0 15259 1] endobj 11158 0 obj [1529 0 R/XYZ 0 15259 1] endobj 11159 0 obj [1531 0 R/XYZ 0 15259 1] endobj 11160 0 obj [1541 0 R/XYZ 0 15259 1] endobj 11161 0 obj [1645 0 R/XYZ 0 15259 1] endobj 11162 0 obj [630 0 R/XYZ 0 15259 1] endobj 11163 0 obj [1618 0 R/XYZ 0 15259 1] endobj 11164 0 obj [657 0 R/XYZ 0 15259 1] endobj 11165 0 obj [1118 0 R/XYZ 0 15259 1] endobj 11166 0 obj [1118 0 R/XYZ 0 15259 1] endobj 11167 0 obj [633 0 R/XYZ 0 15259 1] endobj 11168 0 obj [1167 0 R/XYZ 0 15259 1] endobj 11169 0 obj [1169 0 R/XYZ 0 15259 1] endobj 11170 0 obj [1496 0 R/XYZ 0 15259 1] endobj 11171 0 obj [1497 0 R/XYZ 0 15259 1] endobj 11172 0 obj [633 0 R/XYZ 0 15259 1] endobj 11173 0 obj [818 0 R/XYZ 0 15259 1] endobj 11174 0 obj [1057 0 R/XYZ 0 15259 1] endobj 11175 0 obj [444 0 R/XYZ 0 15259 1] endobj 11176 0 obj [448 0 R/XYZ 0 15259 1] endobj 11177 0 obj [493 0 R/XYZ 0 15259 1] endobj 11178 0 obj [445 0 R/XYZ 0 15259 1] endobj 11179 0 obj [472 0 R/XYZ 0 15259 1] endobj 11180 0 obj [493 0 R/XYZ 0 15259 1] endobj 11181 0 obj [700 0 R/XYZ 0 15259 1] endobj 11182 0 obj [714 0 R/XYZ 0 15259 1] endobj 11183 0 obj [1004 0 R/XYZ 0 15259 1] endobj 11184 0 obj [1004 0 R/XYZ 0 15259 1] endobj 11185 0 obj [388 0 R/XYZ 0 15259 1] endobj 11186 0 obj [609 0 R/XYZ 0 15259 1] endobj 11187 0 obj [1257 0 R/XYZ 0 15259 1] endobj 11188 0 obj [1597 0 R/XYZ 0 15259 1] endobj 11189 0 obj [1603 0 R/XYZ 0 15259 1] endobj 11190 0 obj [388 0 R/XYZ 0 15259 1] endobj 11191 0 obj [609 0 R/XYZ 0 15259 1] endobj 11192 0 obj [649 0 R/XYZ 0 15259 1] endobj 11193 0 obj [651 0 R/XYZ 0 15259 1] endobj 11194 0 obj [609 0 R/XYZ 0 15259 1] endobj 11195 0 obj [611 0 R/XYZ 0 15259 1] endobj 11196 0 obj [736 0 R/XYZ 0 15259 1] endobj 11197 0 obj [741 0 R/XYZ 0 15259 1] endobj 11198 0 obj [780 0 R/XYZ 0 15259 1] endobj 11199 0 obj [919 0 R/XYZ 0 15259 1] endobj 11200 0 obj [1171 0 R/XYZ 0 15259 1] endobj 11201 0 obj [1392 0 R/XYZ 0 15259 1] endobj 11202 0 obj [1436 0 R/XYZ 0 15259 1] endobj 11203 0 obj [621 0 R/XYZ 0 15259 1] endobj 11204 0 obj [625 0 R/XYZ 0 15259 1] endobj 11205 0 obj [636 0 R/XYZ 0 15259 1] endobj 11206 0 obj [640 0 R/XYZ 0 15259 1] endobj 11207 0 obj [391 0 R/XYZ 0 15259 1] endobj 11208 0 obj [605 0 R/XYZ 0 15259 1] endobj 11209 0 obj [651 0 R/XYZ 0 15259 1] endobj 11210 0 obj [605 0 R/XYZ 0 15259 1] endobj 11211 0 obj [606 0 R/XYZ 0 15259 1] endobj 11212 0 obj [623 0 R/XYZ 0 15259 1] endobj 11213 0 obj [388 0 R/XYZ 0 15259 1] endobj 11214 0 obj [609 0 R/XYZ 0 15259 1] endobj 11215 0 obj [1257 0 R/XYZ 0 15259 1] endobj 11216 0 obj [416 0 R/XYZ 0 15259 1] endobj 11217 0 obj [429 0 R/XYZ 0 15259 1] endobj 11218 0 obj [471 0 R/XYZ 0 15259 1] endobj 11219 0 obj [472 0 R/XYZ 0 15259 1] endobj 11220 0 obj [1335 0 R/XYZ 0 15259 1] endobj 11221 0 obj [1337 0 R/XYZ 0 15259 1] endobj 11222 0 obj [1339 0 R/XYZ 0 15259 1] endobj 11223 0 obj [1345 0 R/XYZ 0 15259 1] endobj 11224 0 obj [1348 0 R/XYZ 0 15259 1] endobj 11225 0 obj [1355 0 R/XYZ 0 15259 1] endobj 11226 0 obj [383 0 R/XYZ 0 15259 1] endobj 11227 0 obj [386 0 R/XYZ 0 15259 1] endobj 11228 0 obj [483 0 R/XYZ 0 15259 1] endobj 11229 0 obj [528 0 R/XYZ 0 15259 1] endobj 11230 0 obj [531 0 R/XYZ 0 15259 1] endobj 11231 0 obj [533 0 R/XYZ 0 15259 1] endobj 11232 0 obj [537 0 R/XYZ 0 15259 1] endobj 11233 0 obj [549 0 R/XYZ 0 15259 1] endobj 11234 0 obj [571 0 R/XYZ 0 15259 1] endobj 11235 0 obj [572 0 R/XYZ 0 15259 1] endobj 11236 0 obj [576 0 R/XYZ 0 15259 1] endobj 11237 0 obj [579 0 R/XYZ 0 15259 1] endobj 11238 0 obj [581 0 R/XYZ 0 15259 1] endobj 11239 0 obj [586 0 R/XYZ 0 15259 1] endobj 11240 0 obj [595 0 R/XYZ 0 15259 1] endobj 11241 0 obj [599 0 R/XYZ 0 15259 1] endobj 11242 0 obj [600 0 R/XYZ 0 15259 1] endobj 11243 0 obj [643 0 R/XYZ 0 15259 1] endobj 11244 0 obj [871 0 R/XYZ 0 15259 1] endobj 11245 0 obj [1037 0 R/XYZ 0 15259 1] endobj 11246 0 obj [1215 0 R/XYZ 0 15259 1] endobj 11247 0 obj [1225 0 R/XYZ 0 15259 1] endobj 11248 0 obj [1272 0 R/XYZ 0 15259 1] endobj 11249 0 obj [1288 0 R/XYZ 0 15259 1] endobj 11250 0 obj [1289 0 R/XYZ 0 15259 1] endobj 11251 0 obj [1323 0 R/XYZ 0 15259 1] endobj 11252 0 obj [1361 0 R/XYZ 0 15259 1] endobj 11253 0 obj [1608 0 R/XYZ 0 15259 1] endobj 11254 0 obj [1610 0 R/XYZ 0 15259 1] endobj 11255 0 obj [1642 0 R/XYZ 0 15259 1] endobj 11256 0 obj [528 0 R/XYZ 0 15259 1] endobj 11257 0 obj [528 0 R/XYZ 0 15259 1] endobj 11258 0 obj [532 0 R/XYZ 0 15259 1] endobj 11259 0 obj [535 0 R/XYZ 0 15259 1] endobj 11260 0 obj [556 0 R/XYZ 0 15259 1] endobj 11261 0 obj [561 0 R/XYZ 0 15259 1] endobj 11262 0 obj [576 0 R/XYZ 0 15259 1] endobj 11263 0 obj [599 0 R/XYZ 0 15259 1] endobj 11264 0 obj [611 0 R/XYZ 0 15259 1] endobj 11265 0 obj [640 0 R/XYZ 0 15259 1] endobj 11266 0 obj [643 0 R/XYZ 0 15259 1] endobj 11267 0 obj [1100 0 R/XYZ 0 15259 1] endobj 11268 0 obj [1127 0 R/XYZ 0 15259 1] endobj 11269 0 obj [1141 0 R/XYZ 0 15259 1] endobj 11270 0 obj [1151 0 R/XYZ 0 15259 1] endobj 11271 0 obj [1171 0 R/XYZ 0 15259 1] endobj 11272 0 obj [1178 0 R/XYZ 0 15259 1] endobj 11273 0 obj [1215 0 R/XYZ 0 15259 1] endobj 11274 0 obj [1287 0 R/XYZ 0 15259 1] endobj 11275 0 obj [1360 0 R/XYZ 0 15259 1] endobj 11276 0 obj [1361 0 R/XYZ 0 15259 1] endobj 11277 0 obj [1443 0 R/XYZ 0 15259 1] endobj 11278 0 obj [1501 0 R/XYZ 0 15259 1] endobj 11279 0 obj [1526 0 R/XYZ 0 15259 1] endobj 11280 0 obj [718 0 R/XYZ 0 15259 1] endobj 11281 0 obj [1335 0 R/XYZ 0 15259 1] endobj 11282 0 obj [1339 0 R/XYZ 0 15259 1] endobj 11283 0 obj [1346 0 R/XYZ 0 15259 1] endobj 11284 0 obj [1348 0 R/XYZ 0 15259 1] endobj 11285 0 obj [1368 0 R/XYZ 0 15259 1] endobj 11286 0 obj [419 0 R/XYZ 0 15259 1] endobj 11287 0 obj [633 0 R/XYZ 0 15259 1] endobj 11288 0 obj [634 0 R/XYZ 0 15259 1] endobj 11289 0 obj [1441 0 R/XYZ 0 15259 1] endobj 11290 0 obj [1444 0 R/XYZ 0 15259 1] endobj 11291 0 obj [419 0 R/XYZ 0 15259 1] endobj 11292 0 obj [1183 0 R/XYZ 0 15259 1] endobj 11293 0 obj [424 0 R/XYZ 0 15259 1] endobj 11294 0 obj [419 0 R/XYZ 0 15259 1] endobj 11295 0 obj [1284 0 R/XYZ 0 15259 1] endobj 11296 0 obj [609 0 R/XYZ 0 15259 1] endobj 11297 0 obj [1084 0 R/XYZ 0 15259 1] endobj 11298 0 obj [1405 0 R/XYZ 0 15259 1] endobj 11299 0 obj [1600 0 R/XYZ 0 15259 1] endobj 11300 0 obj [480 0 R/XYZ 0 15259 1] endobj 11301 0 obj [609 0 R/XYZ 0 15259 1] endobj 11302 0 obj [1258 0 R/XYZ 0 15259 1] endobj 11303 0 obj [1259 0 R/XYZ 0 15259 1] endobj 11304 0 obj [1293 0 R/XYZ 0 15259 1] endobj 11305 0 obj [1298 0 R/XYZ 0 15259 1] endobj 11306 0 obj [1302 0 R/XYZ 0 15259 1] endobj 11307 0 obj [1403 0 R/XYZ 0 15259 1] endobj 11308 0 obj [391 0 R/XYZ 0 15259 1] endobj 11309 0 obj [609 0 R/XYZ 0 15259 1] endobj 11310 0 obj [622 0 R/XYZ 0 15259 1] endobj 11311 0 obj [713 0 R/XYZ 0 15259 1] endobj 11312 0 obj [715 0 R/XYZ 0 15259 1] endobj 11313 0 obj [1168 0 R/XYZ 0 15259 1] endobj 11314 0 obj [1169 0 R/XYZ 0 15259 1] endobj 11315 0 obj [1305 0 R/XYZ 0 15259 1] endobj 11316 0 obj [389 0 R/XYZ 0 15259 1] endobj 11317 0 obj [480 0 R/XYZ 0 15259 1] endobj 11318 0 obj [488 0 R/XYZ 0 15259 1] endobj 11319 0 obj [496 0 R/XYZ 0 15259 1] endobj 11320 0 obj [609 0 R/XYZ 0 15259 1] endobj 11321 0 obj [839 0 R/XYZ 0 15259 1] endobj 11322 0 obj [933 0 R/XYZ 0 15259 1] endobj 11323 0 obj [1084 0 R/XYZ 0 15259 1] endobj 11324 0 obj [1155 0 R/XYZ 0 15259 1] endobj 11325 0 obj [1161 0 R/XYZ 0 15259 1] endobj 11326 0 obj [1167 0 R/XYZ 0 15259 1] endobj 11327 0 obj [1168 0 R/XYZ 0 15259 1] endobj 11328 0 obj [1259 0 R/XYZ 0 15259 1] endobj 11329 0 obj [1306 0 R/XYZ 0 15259 1] endobj 11330 0 obj [1307 0 R/XYZ 0 15259 1] endobj 11331 0 obj [1336 0 R/XYZ 0 15259 1] endobj 11332 0 obj [1343 0 R/XYZ 0 15259 1] endobj 11333 0 obj [1374 0 R/XYZ 0 15259 1] endobj 11334 0 obj [1377 0 R/XYZ 0 15259 1] endobj 11335 0 obj [1401 0 R/XYZ 0 15259 1] endobj 11336 0 obj [1404 0 R/XYZ 0 15259 1] endobj 11337 0 obj [1406 0 R/XYZ 0 15259 1] endobj 11338 0 obj [1414 0 R/XYZ 0 15259 1] endobj 11339 0 obj [1416 0 R/XYZ 0 15259 1] endobj 11340 0 obj [419 0 R/XYZ 0 15259 1] endobj 11341 0 obj [1231 0 R/XYZ 0 15259 1] endobj 11342 0 obj [391 0 R/XYZ 0 15259 1] endobj 11343 0 obj [419 0 R/XYZ 0 15259 1] endobj 11344 0 obj [444 0 R/XYZ 0 15259 1] endobj 11345 0 obj [460 0 R/XYZ 0 15259 1] endobj 11346 0 obj [609 0 R/XYZ 0 15259 1] endobj 11347 0 obj [611 0 R/XYZ 0 15259 1] endobj 11348 0 obj [617 0 R/XYZ 0 15259 1] endobj 11349 0 obj [636 0 R/XYZ 0 15259 1] endobj 11350 0 obj [641 0 R/XYZ 0 15259 1] endobj 11351 0 obj [1357 0 R/XYZ 0 15259 1] endobj 11352 0 obj [1441 0 R/XYZ 0 15259 1] endobj 11353 0 obj [1593 0 R/XYZ 0 15259 1] endobj 11354 0 obj [361 0 R/XYZ 0 15259 1] endobj 11355 0 obj [362 0 R/XYZ 0 15259 1] endobj 11356 0 obj [366 0 R/XYZ 0 15259 1] endobj 11357 0 obj [368 0 R/XYZ 0 15259 1] endobj 11358 0 obj [372 0 R/XYZ 0 15259 1] endobj 11359 0 obj <> endobj 11360 0 obj [419 0 R/XYZ 0 15259 1] endobj 11361 0 obj [705 0 R/XYZ 0 15259 1] endobj 11362 0 obj [1593 0 R/XYZ 0 15259 1] endobj 11363 0 obj [391 0 R/XYZ 0 15259 1] endobj 11364 0 obj [609 0 R/XYZ 0 15259 1] endobj 11365 0 obj [622 0 R/XYZ 0 15259 1] endobj 11366 0 obj [758 0 R/XYZ 0 15259 1] endobj 11367 0 obj [759 0 R/XYZ 0 15259 1] endobj 11368 0 obj [792 0 R/XYZ 0 15259 1] endobj 11369 0 obj [1600 0 R/XYZ 0 15259 1] endobj 11370 0 obj [1621 0 R/XYZ 0 15259 1] endobj 11371 0 obj [1630 0 R/XYZ 0 15259 1] endobj 11372 0 obj [389 0 R/XYZ 0 15259 1] endobj 11373 0 obj [480 0 R/XYZ 0 15259 1] endobj 11374 0 obj [496 0 R/XYZ 0 15259 1] endobj 11375 0 obj [609 0 R/XYZ 0 15259 1] endobj 11376 0 obj [735 0 R/XYZ 0 15259 1] endobj 11377 0 obj [741 0 R/XYZ 0 15259 1] endobj 11378 0 obj [933 0 R/XYZ 0 15259 1] endobj 11379 0 obj [1084 0 R/XYZ 0 15259 1] endobj 11380 0 obj [1153 0 R/XYZ 0 15259 1] endobj 11381 0 obj [1161 0 R/XYZ 0 15259 1] endobj 11382 0 obj [1167 0 R/XYZ 0 15259 1] endobj 11383 0 obj [1168 0 R/XYZ 0 15259 1] endobj 11384 0 obj [1254 0 R/XYZ 0 15259 1] endobj 11385 0 obj [1258 0 R/XYZ 0 15259 1] endobj 11386 0 obj [1260 0 R/XYZ 0 15259 1] endobj 11387 0 obj [1305 0 R/XYZ 0 15259 1] endobj 11388 0 obj [1307 0 R/XYZ 0 15259 1] endobj 11389 0 obj [1403 0 R/XYZ 0 15259 1] endobj 11390 0 obj [1408 0 R/XYZ 0 15259 1] endobj 11391 0 obj [1414 0 R/XYZ 0 15259 1] endobj 11392 0 obj [1416 0 R/XYZ 0 15259 1] endobj 11393 0 obj [1621 0 R/XYZ 0 15259 1] endobj 11394 0 obj [627 0 R/XYZ 0 15259 1] endobj 11395 0 obj [815 0 R/XYZ 0 15259 1] endobj 11396 0 obj [1064 0 R/XYZ 0 15259 1] endobj 11397 0 obj [1109 0 R/XYZ 0 15259 1] endobj 11398 0 obj [1221 0 R/XYZ 0 15259 1] endobj 11399 0 obj [1388 0 R/XYZ 0 15259 1] endobj 11400 0 obj [1486 0 R/XYZ 0 15259 1] endobj 11401 0 obj [1653 0 R/XYZ 0 15259 1] endobj 11402 0 obj [549 0 R/XYZ 0 15259 1] endobj 11403 0 obj [553 0 R/XYZ 0 15259 1] endobj 11404 0 obj [565 0 R/XYZ 0 15259 1] endobj 11405 0 obj [599 0 R/XYZ 0 15259 1] endobj 11406 0 obj [677 0 R/XYZ 0 15259 1] endobj 11407 0 obj [1423 0 R/XYZ 0 15259 1] endobj 11408 0 obj [1654 0 R/XYZ 0 15259 1] endobj 11409 0 obj [1335 0 R/XYZ 0 15259 1] endobj 11410 0 obj [1337 0 R/XYZ 0 15259 1] endobj 11411 0 obj [1339 0 R/XYZ 0 15259 1] endobj 11412 0 obj [1345 0 R/XYZ 0 15259 1] endobj 11413 0 obj [1348 0 R/XYZ 0 15259 1] endobj 11414 0 obj [1355 0 R/XYZ 0 15259 1] endobj 11415 0 obj [936 0 R/XYZ 0 15259 1] endobj 11416 0 obj [936 0 R/XYZ 0 15259 1] endobj 11417 0 obj [1099 0 R/XYZ 0 15259 1] endobj 11418 0 obj [1379 0 R/XYZ 0 15259 1] endobj 11419 0 obj [1654 0 R/XYZ 0 15259 1] endobj 11420 0 obj [1453 0 R/XYZ 0 15259 1] endobj 11421 0 obj [606 0 R/XYZ 0 15259 1] endobj 11422 0 obj [444 0 R/XYZ 0 15259 1] endobj 11423 0 obj [446 0 R/XYZ 0 15259 1] endobj 11424 0 obj [451 0 R/XYZ 0 15259 1] endobj 11425 0 obj [458 0 R/XYZ 0 15259 1] endobj 11426 0 obj [519 0 R/XYZ 0 15259 1] endobj 11427 0 obj [605 0 R/XYZ 0 15259 1] endobj 11428 0 obj [1104 0 R/XYZ 0 15259 1] endobj 11429 0 obj [1106 0 R/XYZ 0 15259 1] endobj 11430 0 obj [1111 0 R/XYZ 0 15259 1] endobj 11431 0 obj [1113 0 R/XYZ 0 15259 1] endobj 11432 0 obj [1118 0 R/XYZ 0 15259 1] endobj 11433 0 obj [1150 0 R/XYZ 0 15259 1] endobj 11434 0 obj [1184 0 R/XYZ 0 15259 1] endobj 11435 0 obj [1191 0 R/XYZ 0 15259 1] endobj 11436 0 obj [1298 0 R/XYZ 0 15259 1] endobj 11437 0 obj [1387 0 R/XYZ 0 15259 1] endobj 11438 0 obj [1388 0 R/XYZ 0 15259 1] endobj 11439 0 obj [1394 0 R/XYZ 0 15259 1] endobj 11440 0 obj [1399 0 R/XYZ 0 15259 1] endobj 11441 0 obj [1416 0 R/XYZ 0 15259 1] endobj 11442 0 obj [645 0 R/XYZ 0 15259 1] endobj 11443 0 obj [649 0 R/XYZ 0 15259 1] endobj 11444 0 obj [1387 0 R/XYZ 0 15259 1] endobj 11445 0 obj [1399 0 R/XYZ 0 15259 1] endobj 11446 0 obj [1387 0 R/XYZ 0 15259 1] endobj 11447 0 obj [1416 0 R/XYZ 0 15259 1] endobj 11448 0 obj [1387 0 R/XYZ 0 15259 1] endobj 11449 0 obj [1399 0 R/XYZ 0 15259 1] endobj 11450 0 obj [1387 0 R/XYZ 0 15259 1] endobj 11451 0 obj [1399 0 R/XYZ 0 15259 1] endobj 11452 0 obj [605 0 R/XYZ 0 15259 1] endobj 11453 0 obj [606 0 R/XYZ 0 15259 1] endobj 11454 0 obj [1150 0 R/XYZ 0 15259 1] endobj 11455 0 obj [1191 0 R/XYZ 0 15259 1] endobj 11456 0 obj [397 0 R/XYZ 0 15259 1] endobj 11457 0 obj [399 0 R/XYZ 0 15259 1] endobj 11458 0 obj [411 0 R/XYZ 0 15259 1] endobj 11459 0 obj [936 0 R/XYZ 0 15259 1] endobj 11460 0 obj [1025 0 R/XYZ 0 15259 1] endobj 11461 0 obj [1037 0 R/XYZ 0 15259 1] endobj 11462 0 obj [1065 0 R/XYZ 0 15259 1] endobj 11463 0 obj [1070 0 R/XYZ 0 15259 1] endobj 11464 0 obj [1074 0 R/XYZ 0 15259 1] endobj 11465 0 obj [1076 0 R/XYZ 0 15259 1] endobj 11466 0 obj [1237 0 R/XYZ 0 15259 1] endobj 11467 0 obj [1255 0 R/XYZ 0 15259 1] endobj 11468 0 obj [1258 0 R/XYZ 0 15259 1] endobj 11469 0 obj [1261 0 R/XYZ 0 15259 1] endobj 11470 0 obj [1262 0 R/XYZ 0 15259 1] endobj 11471 0 obj [1308 0 R/XYZ 0 15259 1] endobj 11472 0 obj [1322 0 R/XYZ 0 15259 1] endobj 11473 0 obj [1517 0 R/XYZ 0 15259 1] endobj 11474 0 obj [1521 0 R/XYZ 0 15259 1] endobj 11475 0 obj [1524 0 R/XYZ 0 15259 1] endobj 11476 0 obj [1527 0 R/XYZ 0 15259 1] endobj 11477 0 obj [1528 0 R/XYZ 0 15259 1] endobj 11478 0 obj [1536 0 R/XYZ 0 15259 1] endobj 11479 0 obj [1598 0 R/XYZ 0 15259 1] endobj 11480 0 obj [1600 0 R/XYZ 0 15259 1] endobj 11481 0 obj [1603 0 R/XYZ 0 15259 1] endobj 11482 0 obj [1606 0 R/XYZ 0 15259 1] endobj 11483 0 obj [1631 0 R/XYZ 0 15259 1] endobj 11484 0 obj [397 0 R/XYZ 0 15259 1] endobj 11485 0 obj [1026 0 R/XYZ 0 15259 1] endobj 11486 0 obj [1037 0 R/XYZ 0 15259 1] endobj 11487 0 obj [677 0 R/XYZ 0 15259 1] endobj 11488 0 obj [679 0 R/XYZ 0 15259 1] endobj 11489 0 obj [684 0 R/XYZ 0 15259 1] endobj 11490 0 obj [779 0 R/XYZ 0 15259 1] endobj 11491 0 obj [975 0 R/XYZ 0 15259 1] endobj 11492 0 obj [1037 0 R/XYZ 0 15259 1] endobj 11493 0 obj [1619 0 R/XYZ 0 15259 1] endobj 11494 0 obj [679 0 R/XYZ 0 15259 1] endobj 11495 0 obj [679 0 R/XYZ 0 15259 1] endobj 11496 0 obj [679 0 R/XYZ 0 15259 1] endobj 11497 0 obj [419 0 R/XYZ 0 15259 1] endobj 11498 0 obj [1593 0 R/XYZ 0 15259 1] endobj 11499 0 obj [421 0 R/XYZ 0 15259 1] endobj 11500 0 obj [1620 0 R/XYZ 0 15259 1] endobj 11501 0 obj [393 0 R/XYZ 0 15259 1] endobj 11502 0 obj [736 0 R/XYZ 0 15259 1] endobj 11503 0 obj [1645 0 R/XYZ 0 15259 1] endobj 11504 0 obj [1534 0 R/XYZ 0 15259 1] endobj 11505 0 obj [1503 0 R/XYZ 0 15259 1] endobj 11506 0 obj [1425 0 R/XYZ 0 15259 1] endobj 11507 0 obj [1433 0 R/XYZ 0 15259 1] endobj 11508 0 obj [1650 0 R/XYZ 0 15259 1] endobj 11509 0 obj [1113 0 R/XYZ 0 15259 1] endobj 11510 0 obj [1118 0 R/XYZ 0 15259 1] endobj 11511 0 obj [682 0 R/XYZ 0 15259 1] endobj 11512 0 obj [682 0 R/XYZ 0 15259 1] endobj 11513 0 obj [936 0 R/XYZ 0 15259 1] endobj 11514 0 obj [1524 0 R/XYZ 0 15259 1] endobj 11515 0 obj [936 0 R/XYZ 0 15259 1] endobj 11516 0 obj [1025 0 R/XYZ 0 15259 1] endobj 11517 0 obj [1308 0 R/XYZ 0 15259 1] endobj 11518 0 obj [1309 0 R/XYZ 0 15259 1] endobj 11519 0 obj [1026 0 R/XYZ 0 15259 1] endobj 11520 0 obj [1280 0 R/XYZ 0 15259 1] endobj 11521 0 obj [830 0 R/XYZ 0 15259 1] endobj 11522 0 obj [1351 0 R/XYZ 0 15259 1] endobj 11523 0 obj [1353 0 R/XYZ 0 15259 1] endobj 11524 0 obj [1366 0 R/XYZ 0 15259 1] endobj 11525 0 obj [1381 0 R/XYZ 0 15259 1] endobj 11526 0 obj [1643 0 R/XYZ 0 15259 1] endobj 11527 0 obj [649 0 R/XYZ 0 15259 1] endobj 11528 0 obj [1144 0 R/XYZ 0 15259 1] endobj 11529 0 obj [1651 0 R/XYZ 0 15259 1] endobj 11530 0 obj [532 0 R/XYZ 0 15259 1] endobj 11531 0 obj [532 0 R/XYZ 0 15259 1] endobj 11532 0 obj [532 0 R/XYZ 0 15259 1] endobj 11533 0 obj [1066 0 R/XYZ 0 15259 1] endobj 11534 0 obj [1501 0 R/XYZ 0 15259 1] endobj 11535 0 obj [1503 0 R/XYZ 0 15259 1] endobj 11536 0 obj [1505 0 R/XYZ 0 15259 1] endobj 11537 0 obj [1503 0 R/XYZ 0 15259 1] endobj 11538 0 obj [429 0 R/XYZ 0 15259 1] endobj 11539 0 obj [437 0 R/XYZ 0 15259 1] endobj 11540 0 obj [501 0 R/XYZ 0 15259 1] endobj 11541 0 obj [1416 0 R/XYZ 0 15259 1] endobj 11542 0 obj [1654 0 R/XYZ 0 15259 1] endobj 11543 0 obj [429 0 R/XYZ 0 15259 1] endobj 11544 0 obj [702 0 R/XYZ 0 15259 1] endobj 11545 0 obj [870 0 R/XYZ 0 15259 1] endobj 11546 0 obj [902 0 R/XYZ 0 15259 1] endobj 11547 0 obj [399 0 R/XYZ 0 15259 1] endobj 11548 0 obj [402 0 R/XYZ 0 15259 1] endobj 11549 0 obj [445 0 R/XYZ 0 15259 1] endobj 11550 0 obj [535 0 R/XYZ 0 15259 1] endobj 11551 0 obj [540 0 R/XYZ 0 15259 1] endobj 11552 0 obj [551 0 R/XYZ 0 15259 1] endobj 11553 0 obj [554 0 R/XYZ 0 15259 1] endobj 11554 0 obj [665 0 R/XYZ 0 15259 1] endobj 11555 0 obj [667 0 R/XYZ 0 15259 1] endobj 11556 0 obj [738 0 R/XYZ 0 15259 1] endobj 11557 0 obj [764 0 R/XYZ 0 15259 1] endobj 11558 0 obj [771 0 R/XYZ 0 15259 1] endobj 11559 0 obj [420 0 R/XYZ 0 15259 1] endobj 11560 0 obj [423 0 R/XYZ 0 15259 1] endobj 11561 0 obj [429 0 R/XYZ 0 15259 1] endobj 11562 0 obj [440 0 R/XYZ 0 15259 1] endobj 11563 0 obj [459 0 R/XYZ 0 15259 1] endobj 11564 0 obj [463 0 R/XYZ 0 15259 1] endobj 11565 0 obj [464 0 R/XYZ 0 15259 1] endobj 11566 0 obj [468 0 R/XYZ 0 15259 1] endobj 11567 0 obj [471 0 R/XYZ 0 15259 1] endobj 11568 0 obj [474 0 R/XYZ 0 15259 1] endobj 11569 0 obj [478 0 R/XYZ 0 15259 1] endobj 11570 0 obj [482 0 R/XYZ 0 15259 1] endobj 11571 0 obj [490 0 R/XYZ 0 15259 1] endobj 11572 0 obj [504 0 R/XYZ 0 15259 1] endobj 11573 0 obj [519 0 R/XYZ 0 15259 1] endobj 11574 0 obj [529 0 R/XYZ 0 15259 1] endobj 11575 0 obj [546 0 R/XYZ 0 15259 1] endobj 11576 0 obj [549 0 R/XYZ 0 15259 1] endobj 11577 0 obj [553 0 R/XYZ 0 15259 1] endobj 11578 0 obj [586 0 R/XYZ 0 15259 1] endobj 11579 0 obj [592 0 R/XYZ 0 15259 1] endobj 11580 0 obj [605 0 R/XYZ 0 15259 1] endobj 11581 0 obj [627 0 R/XYZ 0 15259 1] endobj 11582 0 obj [634 0 R/XYZ 0 15259 1] endobj 11583 0 obj [641 0 R/XYZ 0 15259 1] endobj 11584 0 obj [642 0 R/XYZ 0 15259 1] endobj 11585 0 obj [659 0 R/XYZ 0 15259 1] endobj 11586 0 obj [665 0 R/XYZ 0 15259 1] endobj 11587 0 obj [677 0 R/XYZ 0 15259 1] endobj 11588 0 obj [678 0 R/XYZ 0 15259 1] endobj 11589 0 obj [684 0 R/XYZ 0 15259 1] endobj 11590 0 obj [709 0 R/XYZ 0 15259 1] endobj 11591 0 obj [710 0 R/XYZ 0 15259 1] endobj 11592 0 obj [720 0 R/XYZ 0 15259 1] endobj 11593 0 obj [721 0 R/XYZ 0 15259 1] endobj 11594 0 obj [740 0 R/XYZ 0 15259 1] endobj 11595 0 obj [747 0 R/XYZ 0 15259 1] endobj 11596 0 obj [753 0 R/XYZ 0 15259 1] endobj 11597 0 obj [756 0 R/XYZ 0 15259 1] endobj 11598 0 obj [776 0 R/XYZ 0 15259 1] endobj 11599 0 obj [818 0 R/XYZ 0 15259 1] endobj 11600 0 obj [823 0 R/XYZ 0 15259 1] endobj 11601 0 obj [843 0 R/XYZ 0 15259 1] endobj 11602 0 obj [851 0 R/XYZ 0 15259 1] endobj 11603 0 obj [858 0 R/XYZ 0 15259 1] endobj 11604 0 obj [870 0 R/XYZ 0 15259 1] endobj 11605 0 obj [874 0 R/XYZ 0 15259 1] endobj 11606 0 obj [900 0 R/XYZ 0 15259 1] endobj 11607 0 obj [902 0 R/XYZ 0 15259 1] endobj 11608 0 obj [978 0 R/XYZ 0 15259 1] endobj 11609 0 obj [1001 0 R/XYZ 0 15259 1] endobj 11610 0 obj [1006 0 R/XYZ 0 15259 1] endobj 11611 0 obj [1010 0 R/XYZ 0 15259 1] endobj 11612 0 obj [1025 0 R/XYZ 0 15259 1] endobj 11613 0 obj [1063 0 R/XYZ 0 15259 1] endobj 11614 0 obj [1066 0 R/XYZ 0 15259 1] endobj 11615 0 obj [1087 0 R/XYZ 0 15259 1] endobj 11616 0 obj [1098 0 R/XYZ 0 15259 1] endobj 11617 0 obj [1104 0 R/XYZ 0 15259 1] endobj 11618 0 obj [1112 0 R/XYZ 0 15259 1] endobj 11619 0 obj [1115 0 R/XYZ 0 15259 1] endobj 11620 0 obj [1131 0 R/XYZ 0 15259 1] endobj 11621 0 obj [1139 0 R/XYZ 0 15259 1] endobj 11622 0 obj [1140 0 R/XYZ 0 15259 1] endobj 11623 0 obj [1148 0 R/XYZ 0 15259 1] endobj 11624 0 obj [1150 0 R/XYZ 0 15259 1] endobj 11625 0 obj [1183 0 R/XYZ 0 15259 1] endobj 11626 0 obj [1186 0 R/XYZ 0 15259 1] endobj 11627 0 obj [1191 0 R/XYZ 0 15259 1] endobj 11628 0 obj [1192 0 R/XYZ 0 15259 1] endobj 11629 0 obj [1199 0 R/XYZ 0 15259 1] endobj 11630 0 obj [1200 0 R/XYZ 0 15259 1] endobj 11631 0 obj [1211 0 R/XYZ 0 15259 1] endobj 11632 0 obj [1232 0 R/XYZ 0 15259 1] endobj 11633 0 obj [1246 0 R/XYZ 0 15259 1] endobj 11634 0 obj [1250 0 R/XYZ 0 15259 1] endobj 11635 0 obj [1252 0 R/XYZ 0 15259 1] endobj 11636 0 obj [1264 0 R/XYZ 0 15259 1] endobj 11637 0 obj [1270 0 R/XYZ 0 15259 1] endobj 11638 0 obj [1295 0 R/XYZ 0 15259 1] endobj 11639 0 obj [1314 0 R/XYZ 0 15259 1] endobj 11640 0 obj [1330 0 R/XYZ 0 15259 1] endobj 11641 0 obj [1335 0 R/XYZ 0 15259 1] endobj 11642 0 obj [1342 0 R/XYZ 0 15259 1] endobj 11643 0 obj [1394 0 R/XYZ 0 15259 1] endobj 11644 0 obj [1396 0 R/XYZ 0 15259 1] endobj 11645 0 obj [1425 0 R/XYZ 0 15259 1] endobj 11646 0 obj [1610 0 R/XYZ 0 15259 1] endobj 11647 0 obj [1651 0 R/XYZ 0 15259 1] endobj 11648 0 obj [1654 0 R/XYZ 0 15259 1] endobj 11649 0 obj [1335 0 R/XYZ 0 15259 1] endobj 11650 0 obj [1337 0 R/XYZ 0 15259 1] endobj 11651 0 obj [1339 0 R/XYZ 0 15259 1] endobj 11652 0 obj [1347 0 R/XYZ 0 15259 1] endobj 11653 0 obj [1365 0 R/XYZ 0 15259 1] endobj 11654 0 obj [381 0 R/XYZ 0 15259 1] endobj 11655 0 obj [426 0 R/XYZ 0 15259 1] endobj 11656 0 obj [383 0 R/XYZ 0 15259 1] endobj 11657 0 obj [426 0 R/XYZ 0 15259 1] endobj 11658 0 obj [519 0 R/XYZ 0 15259 1] endobj 11659 0 obj [587 0 R/XYZ 0 15259 1] endobj 11660 0 obj [605 0 R/XYZ 0 15259 1] endobj 11661 0 obj [621 0 R/XYZ 0 15259 1] endobj 11662 0 obj [641 0 R/XYZ 0 15259 1] endobj 11663 0 obj [642 0 R/XYZ 0 15259 1] endobj 11664 0 obj [676 0 R/XYZ 0 15259 1] endobj 11665 0 obj [850 0 R/XYZ 0 15259 1] endobj 11666 0 obj [855 0 R/XYZ 0 15259 1] endobj 11667 0 obj [856 0 R/XYZ 0 15259 1] endobj 11668 0 obj [879 0 R/XYZ 0 15259 1] endobj 11669 0 obj [928 0 R/XYZ 0 15259 1] endobj 11670 0 obj [930 0 R/XYZ 0 15259 1] endobj 11671 0 obj [945 0 R/XYZ 0 15259 1] endobj 11672 0 obj [1025 0 R/XYZ 0 15259 1] endobj 11673 0 obj [1104 0 R/XYZ 0 15259 1] endobj 11674 0 obj [1115 0 R/XYZ 0 15259 1] endobj 11675 0 obj [1118 0 R/XYZ 0 15259 1] endobj 11676 0 obj [1137 0 R/XYZ 0 15259 1] endobj 11677 0 obj [1148 0 R/XYZ 0 15259 1] endobj 11678 0 obj [1198 0 R/XYZ 0 15259 1] endobj 11679 0 obj [1207 0 R/XYZ 0 15259 1] endobj 11680 0 obj [426 0 R/XYZ 0 15259 1] endobj 11681 0 obj [429 0 R/XYZ 0 15259 1] endobj 11682 0 obj [1649 0 R/XYZ 0 15259 1] endobj 11683 0 obj [483 0 R/XYZ 0 15259 1] endobj 11684 0 obj [673 0 R/XYZ 0 15259 1] endobj 11685 0 obj [853 0 R/XYZ 0 15259 1] endobj 11686 0 obj [868 0 R/XYZ 0 15259 1] endobj 11687 0 obj [879 0 R/XYZ 0 15259 1] endobj 11688 0 obj [884 0 R/XYZ 0 15259 1] endobj 11689 0 obj [885 0 R/XYZ 0 15259 1] endobj 11690 0 obj [1379 0 R/XYZ 0 15259 1] endobj 11691 0 obj [1649 0 R/XYZ 0 15259 1] endobj 11692 0 obj [501 0 R/XYZ 0 15259 1] endobj 11693 0 obj [583 0 R/XYZ 0 15259 1] endobj 11694 0 obj [693 0 R/XYZ 0 15259 1] endobj 11695 0 obj [828 0 R/XYZ 0 15259 1] endobj 11696 0 obj [849 0 R/XYZ 0 15259 1] endobj 11697 0 obj [853 0 R/XYZ 0 15259 1] endobj 11698 0 obj [855 0 R/XYZ 0 15259 1] endobj 11699 0 obj [864 0 R/XYZ 0 15259 1] endobj 11700 0 obj [868 0 R/XYZ 0 15259 1] endobj 11701 0 obj [874 0 R/XYZ 0 15259 1] endobj 11702 0 obj [879 0 R/XYZ 0 15259 1] endobj 11703 0 obj [1098 0 R/XYZ 0 15259 1] endobj 11704 0 obj [1106 0 R/XYZ 0 15259 1] endobj 11705 0 obj [1112 0 R/XYZ 0 15259 1] endobj 11706 0 obj [1597 0 R/XYZ 0 15259 1] endobj 11707 0 obj [1649 0 R/XYZ 0 15259 1] endobj 11708 0 obj [440 0 R/XYZ 0 15259 1] endobj 11709 0 obj [509 0 R/XYZ 0 15259 1] endobj 11710 0 obj [782 0 R/XYZ 0 15259 1] endobj 11711 0 obj [381 0 R/XYZ 0 15259 1] endobj 11712 0 obj [407 0 R/XYZ 0 15259 1] endobj 11713 0 obj [429 0 R/XYZ 0 15259 1] endobj 11714 0 obj [437 0 R/XYZ 0 15259 1] endobj 11715 0 obj [440 0 R/XYZ 0 15259 1] endobj 11716 0 obj [456 0 R/XYZ 0 15259 1] endobj 11717 0 obj [481 0 R/XYZ 0 15259 1] endobj 11718 0 obj [483 0 R/XYZ 0 15259 1] endobj 11719 0 obj [501 0 R/XYZ 0 15259 1] endobj 11720 0 obj [571 0 R/XYZ 0 15259 1] endobj 11721 0 obj [673 0 R/XYZ 0 15259 1] endobj 11722 0 obj [706 0 R/XYZ 0 15259 1] endobj 11723 0 obj [814 0 R/XYZ 0 15259 1] endobj 11724 0 obj [823 0 R/XYZ 0 15259 1] endobj 11725 0 obj [828 0 R/XYZ 0 15259 1] endobj 11726 0 obj [842 0 R/XYZ 0 15259 1] endobj 11727 0 obj [849 0 R/XYZ 0 15259 1] endobj 11728 0 obj [853 0 R/XYZ 0 15259 1] endobj 11729 0 obj [868 0 R/XYZ 0 15259 1] endobj 11730 0 obj [874 0 R/XYZ 0 15259 1] endobj 11731 0 obj [879 0 R/XYZ 0 15259 1] endobj 11732 0 obj [1063 0 R/XYZ 0 15259 1] endobj 11733 0 obj [1106 0 R/XYZ 0 15259 1] endobj 11734 0 obj [1112 0 R/XYZ 0 15259 1] endobj 11735 0 obj [1113 0 R/XYZ 0 15259 1] endobj 11736 0 obj [1131 0 R/XYZ 0 15259 1] endobj 11737 0 obj [1379 0 R/XYZ 0 15259 1] endobj 11738 0 obj [1394 0 R/XYZ 0 15259 1] endobj 11739 0 obj [1425 0 R/XYZ 0 15259 1] endobj 11740 0 obj [1649 0 R/XYZ 0 15259 1] endobj 11741 0 obj [1654 0 R/XYZ 0 15259 1] endobj 11742 0 obj [731 0 R/XYZ 0 15259 1] endobj 11743 0 obj [1118 0 R/XYZ 0 15259 1] endobj 11744 0 obj [1118 0 R/XYZ 0 15259 1] endobj 11745 0 obj [374 0 R/XYZ 0 15259 1] endobj 11746 0 obj [374 0 R/XYZ 0 15259 1] endobj 11747 0 obj [374 0 R/XYZ 0 15259 1] endobj 11748 0 obj [359 0 R/XYZ 0 15259 1] endobj 11749 0 obj [366 0 R/XYZ 0 15259 1] endobj 11750 0 obj [367 0 R/XYZ 0 15259 1] endobj 11751 0 obj [374 0 R/XYZ 0 15259 1] endobj 11752 0 obj [361 0 R/XYZ 0 15259 1] endobj 11753 0 obj [362 0 R/XYZ 0 15259 1] endobj 11754 0 obj [368 0 R/XYZ 0 15259 1] endobj 11755 0 obj [361 0 R/XYZ 0 15259 1] endobj 11756 0 obj [367 0 R/XYZ 0 15259 1] endobj 11757 0 obj [373 0 R/XYZ 0 15259 1] endobj 11758 0 obj [362 0 R/XYZ 0 15259 1] endobj 11759 0 obj [358 0 R/XYZ 0 15259 1] endobj 11760 0 obj [373 0 R/XYZ 0 15259 1] endobj 11761 0 obj [373 0 R/XYZ 0 15259 1] endobj 11762 0 obj [373 0 R/XYZ 0 15259 1] endobj 11763 0 obj [362 0 R/XYZ 0 15259 1] endobj 11764 0 obj [373 0 R/XYZ 0 15259 1] endobj 11765 0 obj [374 0 R/XYZ 0 15259 1] endobj 11766 0 obj <> endobj 11767 0 obj [465 0 R/XYZ 0 15259 1] endobj 11768 0 obj [529 0 R/XYZ 0 15259 1] endobj 11769 0 obj [531 0 R/XYZ 0 15259 1] endobj 11770 0 obj [554 0 R/XYZ 0 15259 1] endobj 11771 0 obj [556 0 R/XYZ 0 15259 1] endobj 11772 0 obj [561 0 R/XYZ 0 15259 1] endobj 11773 0 obj [566 0 R/XYZ 0 15259 1] endobj 11774 0 obj [570 0 R/XYZ 0 15259 1] endobj 11775 0 obj [574 0 R/XYZ 0 15259 1] endobj 11776 0 obj [586 0 R/XYZ 0 15259 1] endobj 11777 0 obj [594 0 R/XYZ 0 15259 1] endobj 11778 0 obj [600 0 R/XYZ 0 15259 1] endobj 11779 0 obj [671 0 R/XYZ 0 15259 1] endobj 11780 0 obj [1608 0 R/XYZ 0 15259 1] endobj 11781 0 obj [1609 0 R/XYZ 0 15259 1] endobj 11782 0 obj [574 0 R/XYZ 0 15259 1] endobj 11783 0 obj [576 0 R/XYZ 0 15259 1] endobj 11784 0 obj [871 0 R/XYZ 0 15259 1] endobj 11785 0 obj [1037 0 R/XYZ 0 15259 1] endobj 11786 0 obj [574 0 R/XYZ 0 15259 1] endobj 11787 0 obj [574 0 R/XYZ 0 15259 1] endobj 11788 0 obj [576 0 R/XYZ 0 15259 1] endobj 11789 0 obj [871 0 R/XYZ 0 15259 1] endobj 11790 0 obj [1037 0 R/XYZ 0 15259 1] endobj 11791 0 obj [574 0 R/XYZ 0 15259 1] endobj 11792 0 obj [445 0 R/XYZ 0 15259 1] endobj 11793 0 obj [452 0 R/XYZ 0 15259 1] endobj 11794 0 obj [458 0 R/XYZ 0 15259 1] endobj 11795 0 obj [446 0 R/XYZ 0 15259 1] endobj 11796 0 obj [451 0 R/XYZ 0 15259 1] endobj 11797 0 obj [456 0 R/XYZ 0 15259 1] endobj 11798 0 obj [458 0 R/XYZ 0 15259 1] endobj 11799 0 obj [478 0 R/XYZ 0 15259 1] endobj 11800 0 obj [509 0 R/XYZ 0 15259 1] endobj 11801 0 obj [1037 0 R/XYZ 0 15259 1] endobj 11802 0 obj [509 0 R/XYZ 0 15259 1] endobj 11803 0 obj [509 0 R/XYZ 0 15259 1] endobj 11804 0 obj [515 0 R/XYZ 0 15259 1] endobj 11805 0 obj [517 0 R/XYZ 0 15259 1] endobj 11806 0 obj [481 0 R/XYZ 0 15259 1] endobj 11807 0 obj [515 0 R/XYZ 0 15259 1] endobj 11808 0 obj [517 0 R/XYZ 0 15259 1] endobj 11809 0 obj [785 0 R/XYZ 0 15259 1] endobj 11810 0 obj [405 0 R/XYZ 0 15259 1] endobj 11811 0 obj [442 0 R/XYZ 0 15259 1] endobj 11812 0 obj [445 0 R/XYZ 0 15259 1] endobj 11813 0 obj [448 0 R/XYZ 0 15259 1] endobj 11814 0 obj [456 0 R/XYZ 0 15259 1] endobj 11815 0 obj [459 0 R/XYZ 0 15259 1] endobj 11816 0 obj [464 0 R/XYZ 0 15259 1] endobj 11817 0 obj [468 0 R/XYZ 0 15259 1] endobj 11818 0 obj [472 0 R/XYZ 0 15259 1] endobj 11819 0 obj [474 0 R/XYZ 0 15259 1] endobj 11820 0 obj [490 0 R/XYZ 0 15259 1] endobj 11821 0 obj [535 0 R/XYZ 0 15259 1] endobj 11822 0 obj [693 0 R/XYZ 0 15259 1] endobj 11823 0 obj [721 0 R/XYZ 0 15259 1] endobj 11824 0 obj [769 0 R/XYZ 0 15259 1] endobj 11825 0 obj [794 0 R/XYZ 0 15259 1] endobj 11826 0 obj [799 0 R/XYZ 0 15259 1] endobj 11827 0 obj [800 0 R/XYZ 0 15259 1] endobj 11828 0 obj [945 0 R/XYZ 0 15259 1] endobj 11829 0 obj [1001 0 R/XYZ 0 15259 1] endobj 11830 0 obj [1003 0 R/XYZ 0 15259 1] endobj 11831 0 obj [1006 0 R/XYZ 0 15259 1] endobj 11832 0 obj [1010 0 R/XYZ 0 15259 1] endobj 11833 0 obj [1025 0 R/XYZ 0 15259 1] endobj 11834 0 obj [1125 0 R/XYZ 0 15259 1] endobj 11835 0 obj [1139 0 R/XYZ 0 15259 1] endobj 11836 0 obj [1256 0 R/XYZ 0 15259 1] endobj 11837 0 obj [1258 0 R/XYZ 0 15259 1] endobj 11838 0 obj [1264 0 R/XYZ 0 15259 1] endobj 11839 0 obj [1494 0 R/XYZ 0 15259 1] endobj 11840 0 obj [1509 0 R/XYZ 0 15259 1] endobj 11841 0 obj [1607 0 R/XYZ 0 15259 1] endobj 11842 0 obj [450 0 R/XYZ 0 15259 1] endobj 11843 0 obj [851 0 R/XYZ 0 15259 1] endobj 11844 0 obj [1183 0 R/XYZ 0 15259 1] endobj 11845 0 obj [1183 0 R/XYZ 0 15259 1] endobj 11846 0 obj [519 0 R/XYZ 0 15259 1] endobj 11847 0 obj [519 0 R/XYZ 0 15259 1] endobj 11848 0 obj [423 0 R/XYZ 0 15259 1] endobj 11849 0 obj [1180 0 R/XYZ 0 15259 1] endobj 11850 0 obj [850 0 R/XYZ 0 15259 1] endobj 11851 0 obj [1037 0 R/XYZ 0 15259 1] endobj 11852 0 obj [1057 0 R/XYZ 0 15259 1] endobj 11853 0 obj [1061 0 R/XYZ 0 15259 1] endobj 11854 0 obj [1072 0 R/XYZ 0 15259 1] endobj 11855 0 obj [1074 0 R/XYZ 0 15259 1] endobj 11856 0 obj [1078 0 R/XYZ 0 15259 1] endobj 11857 0 obj [1255 0 R/XYZ 0 15259 1] endobj 11858 0 obj [1259 0 R/XYZ 0 15259 1] endobj 11859 0 obj [1262 0 R/XYZ 0 15259 1] endobj 11860 0 obj [1264 0 R/XYZ 0 15259 1] endobj 11861 0 obj [1600 0 R/XYZ 0 15259 1] endobj 11862 0 obj [1603 0 R/XYZ 0 15259 1] endobj 11863 0 obj [1628 0 R/XYZ 0 15259 1] endobj 11864 0 obj [1064 0 R/XYZ 0 15259 1] endobj 11865 0 obj [1064 0 R/XYZ 0 15259 1] endobj 11866 0 obj [1065 0 R/XYZ 0 15259 1] endobj 11867 0 obj [1068 0 R/XYZ 0 15259 1] endobj 11868 0 obj [1071 0 R/XYZ 0 15259 1] endobj 11869 0 obj [1076 0 R/XYZ 0 15259 1] endobj 11870 0 obj [1078 0 R/XYZ 0 15259 1] endobj 11871 0 obj [423 0 R/XYZ 0 15259 1] endobj 11872 0 obj [595 0 R/XYZ 0 15259 1] endobj 11873 0 obj [421 0 R/XYZ 0 15259 1] endobj 11874 0 obj [423 0 R/XYZ 0 15259 1] endobj 11875 0 obj [519 0 R/XYZ 0 15259 1] endobj 11876 0 obj [458 0 R/XYZ 0 15259 1] endobj 11877 0 obj [460 0 R/XYZ 0 15259 1] endobj 11878 0 obj [423 0 R/XYZ 0 15259 1] endobj 11879 0 obj [421 0 R/XYZ 0 15259 1] endobj 11880 0 obj [1104 0 R/XYZ 0 15259 1] endobj 11881 0 obj [1108 0 R/XYZ 0 15259 1] endobj 11882 0 obj [1632 0 R/XYZ 0 15259 1] endobj 11883 0 obj [1633 0 R/XYZ 0 15259 1] endobj 11884 0 obj [423 0 R/XYZ 0 15259 1] endobj 11885 0 obj [1194 0 R/XYZ 0 15259 1] endobj 11886 0 obj [423 0 R/XYZ 0 15259 1] endobj 11887 0 obj [935 0 R/XYZ 0 15259 1] endobj 11888 0 obj [850 0 R/XYZ 0 15259 1] endobj 11889 0 obj [421 0 R/XYZ 0 15259 1] endobj 11890 0 obj [1247 0 R/XYZ 0 15259 1] endobj 11891 0 obj [519 0 R/XYZ 0 15259 1] endobj 11892 0 obj [421 0 R/XYZ 0 15259 1] endobj 11893 0 obj [533 0 R/XYZ 0 15259 1] endobj 11894 0 obj [421 0 R/XYZ 0 15259 1] endobj 11895 0 obj [595 0 R/XYZ 0 15259 1] endobj 11896 0 obj [378 0 R/XYZ 0 15259 1] endobj 11897 0 obj [407 0 R/XYZ 0 15259 1] endobj 11898 0 obj [866 0 R/XYZ 0 15259 1] endobj 11899 0 obj [870 0 R/XYZ 0 15259 1] endobj 11900 0 obj [887 0 R/XYZ 0 15259 1] endobj 11901 0 obj [899 0 R/XYZ 0 15259 1] endobj 11902 0 obj [902 0 R/XYZ 0 15259 1] endobj 11903 0 obj [904 0 R/XYZ 0 15259 1] endobj 11904 0 obj [916 0 R/XYZ 0 15259 1] endobj 11905 0 obj [1113 0 R/XYZ 0 15259 1] endobj 11906 0 obj [868 0 R/XYZ 0 15259 1] endobj 11907 0 obj [870 0 R/XYZ 0 15259 1] endobj 11908 0 obj [886 0 R/XYZ 0 15259 1] endobj 11909 0 obj [887 0 R/XYZ 0 15259 1] endobj 11910 0 obj [899 0 R/XYZ 0 15259 1] endobj 11911 0 obj [902 0 R/XYZ 0 15259 1] endobj 11912 0 obj [1113 0 R/XYZ 0 15259 1] endobj 11913 0 obj [1364 0 R/XYZ 0 15259 1] endobj 11914 0 obj [1099 0 R/XYZ 0 15259 1] endobj 11915 0 obj [407 0 R/XYZ 0 15259 1] endobj 11916 0 obj [410 0 R/XYZ 0 15259 1] endobj 11917 0 obj [410 0 R/XYZ 0 15259 1] endobj 11918 0 obj [583 0 R/XYZ 0 15259 1] endobj 11919 0 obj [731 0 R/XYZ 0 15259 1] endobj 11920 0 obj [761 0 R/XYZ 0 15259 1] endobj 11921 0 obj [779 0 R/XYZ 0 15259 1] endobj 11922 0 obj [785 0 R/XYZ 0 15259 1] endobj 11923 0 obj [800 0 R/XYZ 0 15259 1] endobj 11924 0 obj [803 0 R/XYZ 0 15259 1] endobj 11925 0 obj [897 0 R/XYZ 0 15259 1] endobj 11926 0 obj [919 0 R/XYZ 0 15259 1] endobj 11927 0 obj [924 0 R/XYZ 0 15259 1] endobj 11928 0 obj [938 0 R/XYZ 0 15259 1] endobj 11929 0 obj [1036 0 R/XYZ 0 15259 1] endobj 11930 0 obj [1154 0 R/XYZ 0 15259 1] endobj 11931 0 obj [1159 0 R/XYZ 0 15259 1] endobj 11932 0 obj [1623 0 R/XYZ 0 15259 1] endobj 11933 0 obj [1636 0 R/XYZ 0 15259 1] endobj 11934 0 obj [780 0 R/XYZ 0 15259 1] endobj 11935 0 obj [781 0 R/XYZ 0 15259 1] endobj 11936 0 obj [921 0 R/XYZ 0 15259 1] endobj 11937 0 obj [923 0 R/XYZ 0 15259 1] endobj 11938 0 obj [673 0 R/XYZ 0 15259 1] endobj 11939 0 obj [676 0 R/XYZ 0 15259 1] endobj 11940 0 obj [732 0 R/XYZ 0 15259 1] endobj 11941 0 obj [880 0 R/XYZ 0 15259 1] endobj 11942 0 obj [517 0 R/XYZ 0 15259 1] endobj 11943 0 obj [1056 0 R/XYZ 0 15259 1] endobj 11944 0 obj [1059 0 R/XYZ 0 15259 1] endobj 11945 0 obj [1063 0 R/XYZ 0 15259 1] endobj 11946 0 obj [1071 0 R/XYZ 0 15259 1] endobj 11947 0 obj [1083 0 R/XYZ 0 15259 1] endobj 11948 0 obj [1087 0 R/XYZ 0 15259 1] endobj 11949 0 obj [1103 0 R/XYZ 0 15259 1] endobj 11950 0 obj [1104 0 R/XYZ 0 15259 1] endobj 11951 0 obj [1111 0 R/XYZ 0 15259 1] endobj 11952 0 obj [1115 0 R/XYZ 0 15259 1] endobj 11953 0 obj [1118 0 R/XYZ 0 15259 1] endobj 11954 0 obj [1394 0 R/XYZ 0 15259 1] endobj 11955 0 obj [1399 0 R/XYZ 0 15259 1] endobj 11956 0 obj [423 0 R/XYZ 0 15259 1] endobj 11957 0 obj [1104 0 R/XYZ 0 15259 1] endobj 11958 0 obj [421 0 R/XYZ 0 15259 1] endobj 11959 0 obj [519 0 R/XYZ 0 15259 1] endobj 11960 0 obj [421 0 R/XYZ 0 15259 1] endobj 11961 0 obj [471 0 R/XYZ 0 15259 1] endobj 11962 0 obj [595 0 R/XYZ 0 15259 1] endobj 11963 0 obj [1104 0 R/XYZ 0 15259 1] endobj 11964 0 obj [1178 0 R/XYZ 0 15259 1] endobj 11965 0 obj [1633 0 R/XYZ 0 15259 1] endobj 11966 0 obj [423 0 R/XYZ 0 15259 1] endobj 11967 0 obj [421 0 R/XYZ 0 15259 1] endobj 11968 0 obj [1282 0 R/XYZ 0 15259 1] endobj 11969 0 obj [421 0 R/XYZ 0 15259 1] endobj 11970 0 obj [421 0 R/XYZ 0 15259 1] endobj 11971 0 obj [747 0 R/XYZ 0 15259 1] endobj 11972 0 obj [1351 0 R/XYZ 0 15259 1] endobj 11973 0 obj [1351 0 R/XYZ 0 15259 1] endobj 11974 0 obj [1351 0 R/XYZ 0 15259 1] endobj 11975 0 obj [1349 0 R/XYZ 0 15259 1] endobj 11976 0 obj [1351 0 R/XYZ 0 15259 1] endobj 11977 0 obj [1332 0 R/XYZ 0 15259 1] endobj 11978 0 obj [1343 0 R/XYZ 0 15259 1] endobj 11979 0 obj [1348 0 R/XYZ 0 15259 1] endobj 11980 0 obj [1351 0 R/XYZ 0 15259 1] endobj 11981 0 obj [580 0 R/XYZ 0 15259 1] endobj 11982 0 obj [591 0 R/XYZ 0 15259 1] endobj 11983 0 obj [601 0 R/XYZ 0 15259 1] endobj 11984 0 obj [1610 0 R/XYZ 0 15259 1] endobj 11985 0 obj [1611 0 R/XYZ 0 15259 1] endobj 11986 0 obj [421 0 R/XYZ 0 15259 1] endobj 11987 0 obj [858 0 R/XYZ 0 15259 1] endobj 11988 0 obj [871 0 R/XYZ 0 15259 1] endobj 11989 0 obj [1036 0 R/XYZ 0 15259 1] endobj 11990 0 obj [1333 0 R/XYZ 0 15259 1] endobj 11991 0 obj [1355 0 R/XYZ 0 15259 1] endobj 11992 0 obj [1355 0 R/XYZ 0 15259 1] endobj 11993 0 obj [1330 0 R/XYZ 0 15259 1] endobj 11994 0 obj [858 0 R/XYZ 0 15259 1] endobj 11995 0 obj [871 0 R/XYZ 0 15259 1] endobj 11996 0 obj [1333 0 R/XYZ 0 15259 1] endobj 11997 0 obj [1355 0 R/XYZ 0 15259 1] endobj 11998 0 obj [1355 0 R/XYZ 0 15259 1] endobj 11999 0 obj [609 0 R/XYZ 0 15259 1] endobj 12000 0 obj [858 0 R/XYZ 0 15259 1] endobj 12001 0 obj [871 0 R/XYZ 0 15259 1] endobj 12002 0 obj [1329 0 R/XYZ 0 15259 1] endobj 12003 0 obj [1333 0 R/XYZ 0 15259 1] endobj 12004 0 obj [1355 0 R/XYZ 0 15259 1] endobj 12005 0 obj [1355 0 R/XYZ 0 15259 1] endobj 12006 0 obj [871 0 R/XYZ 0 15259 1] endobj 12007 0 obj [1330 0 R/XYZ 0 15259 1] endobj 12008 0 obj [1333 0 R/XYZ 0 15259 1] endobj 12009 0 obj [1336 0 R/XYZ 0 15259 1] endobj 12010 0 obj [1342 0 R/XYZ 0 15259 1] endobj 12011 0 obj [1343 0 R/XYZ 0 15259 1] endobj 12012 0 obj [1351 0 R/XYZ 0 15259 1] endobj 12013 0 obj [1353 0 R/XYZ 0 15259 1] endobj 12014 0 obj [1358 0 R/XYZ 0 15259 1] endobj 12015 0 obj [1365 0 R/XYZ 0 15259 1] endobj 12016 0 obj [1370 0 R/XYZ 0 15259 1] endobj 12017 0 obj [1372 0 R/XYZ 0 15259 1] endobj 12018 0 obj [1394 0 R/XYZ 0 15259 1] endobj 12019 0 obj [1404 0 R/XYZ 0 15259 1] endobj 12020 0 obj [1405 0 R/XYZ 0 15259 1] endobj 12021 0 obj [1342 0 R/XYZ 0 15259 1] endobj 12022 0 obj [826 0 R/XYZ 0 15259 1] endobj 12023 0 obj [828 0 R/XYZ 0 15259 1] endobj 12024 0 obj [871 0 R/XYZ 0 15259 1] endobj 12025 0 obj [1330 0 R/XYZ 0 15259 1] endobj 12026 0 obj [1333 0 R/XYZ 0 15259 1] endobj 12027 0 obj [826 0 R/XYZ 0 15259 1] endobj 12028 0 obj [826 0 R/XYZ 0 15259 1] endobj 12029 0 obj [828 0 R/XYZ 0 15259 1] endobj 12030 0 obj [1330 0 R/XYZ 0 15259 1] endobj 12031 0 obj [1333 0 R/XYZ 0 15259 1] endobj 12032 0 obj [828 0 R/XYZ 0 15259 1] endobj 12033 0 obj [1355 0 R/XYZ 0 15259 1] endobj 12034 0 obj [1355 0 R/XYZ 0 15259 1] endobj 12035 0 obj [1355 0 R/XYZ 0 15259 1] endobj 12036 0 obj [1355 0 R/XYZ 0 15259 1] endobj 12037 0 obj [708 0 R/XYZ 0 15259 1] endobj 12038 0 obj [1650 0 R/XYZ 0 15259 1] endobj 12039 0 obj [1355 0 R/XYZ 0 15259 1] endobj 12040 0 obj [1355 0 R/XYZ 0 15259 1] endobj 12041 0 obj [1355 0 R/XYZ 0 15259 1] endobj 12042 0 obj [1342 0 R/XYZ 0 15259 1] endobj 12043 0 obj [1336 0 R/XYZ 0 15259 1] endobj 12044 0 obj [1342 0 R/XYZ 0 15259 1] endobj 12045 0 obj [1365 0 R/XYZ 0 15259 1] endobj 12046 0 obj [1370 0 R/XYZ 0 15259 1] endobj 12047 0 obj [1372 0 R/XYZ 0 15259 1] endobj 12048 0 obj [1342 0 R/XYZ 0 15259 1] endobj 12049 0 obj [1343 0 R/XYZ 0 15259 1] endobj 12050 0 obj [1401 0 R/XYZ 0 15259 1] endobj 12051 0 obj [1405 0 R/XYZ 0 15259 1] endobj 12052 0 obj [366 0 R/XYZ 0 15259 1] endobj 12053 0 obj [374 0 R/XYZ 0 15259 1] endobj 12054 0 obj <> endobj 12055 0 obj [858 0 R/XYZ 0 15259 1] endobj 12056 0 obj [871 0 R/XYZ 0 15259 1] endobj 12057 0 obj [1333 0 R/XYZ 0 15259 1] endobj 12058 0 obj [1339 0 R/XYZ 0 15259 1] endobj 12059 0 obj [1355 0 R/XYZ 0 15259 1] endobj 12060 0 obj [1357 0 R/XYZ 0 15259 1] endobj 12061 0 obj [1355 0 R/XYZ 0 15259 1] endobj 12062 0 obj [858 0 R/XYZ 0 15259 1] endobj 12063 0 obj [871 0 R/XYZ 0 15259 1] endobj 12064 0 obj [1329 0 R/XYZ 0 15259 1] endobj 12065 0 obj [1330 0 R/XYZ 0 15259 1] endobj 12066 0 obj [1333 0 R/XYZ 0 15259 1] endobj 12067 0 obj [1336 0 R/XYZ 0 15259 1] endobj 12068 0 obj [1342 0 R/XYZ 0 15259 1] endobj 12069 0 obj [1343 0 R/XYZ 0 15259 1] endobj 12070 0 obj [1351 0 R/XYZ 0 15259 1] endobj 12071 0 obj [1353 0 R/XYZ 0 15259 1] endobj 12072 0 obj [1365 0 R/XYZ 0 15259 1] endobj 12073 0 obj [1370 0 R/XYZ 0 15259 1] endobj 12074 0 obj [1372 0 R/XYZ 0 15259 1] endobj 12075 0 obj [1394 0 R/XYZ 0 15259 1] endobj 12076 0 obj [1401 0 R/XYZ 0 15259 1] endobj 12077 0 obj [1405 0 R/XYZ 0 15259 1] endobj 12078 0 obj [1413 0 R/XYZ 0 15259 1] endobj 12079 0 obj [1342 0 R/XYZ 0 15259 1] endobj 12080 0 obj [826 0 R/XYZ 0 15259 1] endobj 12081 0 obj [828 0 R/XYZ 0 15259 1] endobj 12082 0 obj [830 0 R/XYZ 0 15259 1] endobj 12083 0 obj [833 0 R/XYZ 0 15259 1] endobj 12084 0 obj [858 0 R/XYZ 0 15259 1] endobj 12085 0 obj [871 0 R/XYZ 0 15259 1] endobj 12086 0 obj [1330 0 R/XYZ 0 15259 1] endobj 12087 0 obj [1333 0 R/XYZ 0 15259 1] endobj 12088 0 obj [826 0 R/XYZ 0 15259 1] endobj 12089 0 obj [1173 0 R/XYZ 0 15259 1] endobj 12090 0 obj [1174 0 R/XYZ 0 15259 1] endobj 12091 0 obj [488 0 R/XYZ 0 15259 1] endobj 12092 0 obj [758 0 R/XYZ 0 15259 1] endobj 12093 0 obj [759 0 R/XYZ 0 15259 1] endobj 12094 0 obj [912 0 R/XYZ 0 15259 1] endobj 12095 0 obj [1093 0 R/XYZ 0 15259 1] endobj 12096 0 obj [1100 0 R/XYZ 0 15259 1] endobj 12097 0 obj [1145 0 R/XYZ 0 15259 1] endobj 12098 0 obj [1155 0 R/XYZ 0 15259 1] endobj 12099 0 obj [1158 0 R/XYZ 0 15259 1] endobj 12100 0 obj [1204 0 R/XYZ 0 15259 1] endobj 12101 0 obj [1597 0 R/XYZ 0 15259 1] endobj 12102 0 obj [913 0 R/XYZ 0 15259 1] endobj 12103 0 obj [1156 0 R/XYZ 0 15259 1] endobj 12104 0 obj [585 0 R/XYZ 0 15259 1] endobj 12105 0 obj [591 0 R/XYZ 0 15259 1] endobj 12106 0 obj [585 0 R/XYZ 0 15259 1] endobj 12107 0 obj [758 0 R/XYZ 0 15259 1] endobj 12108 0 obj [912 0 R/XYZ 0 15259 1] endobj 12109 0 obj [1093 0 R/XYZ 0 15259 1] endobj 12110 0 obj [1145 0 R/XYZ 0 15259 1] endobj 12111 0 obj [1155 0 R/XYZ 0 15259 1] endobj 12112 0 obj [1158 0 R/XYZ 0 15259 1] endobj 12113 0 obj [1204 0 R/XYZ 0 15259 1] endobj 12114 0 obj [1597 0 R/XYZ 0 15259 1] endobj 12115 0 obj [1634 0 R/XYZ 0 15259 1] endobj 12116 0 obj [913 0 R/XYZ 0 15259 1] endobj 12117 0 obj [1156 0 R/XYZ 0 15259 1] endobj 12118 0 obj [758 0 R/XYZ 0 15259 1] endobj 12119 0 obj [759 0 R/XYZ 0 15259 1] endobj 12120 0 obj [912 0 R/XYZ 0 15259 1] endobj 12121 0 obj [1093 0 R/XYZ 0 15259 1] endobj 12122 0 obj [1100 0 R/XYZ 0 15259 1] endobj 12123 0 obj [1145 0 R/XYZ 0 15259 1] endobj 12124 0 obj [1155 0 R/XYZ 0 15259 1] endobj 12125 0 obj [1204 0 R/XYZ 0 15259 1] endobj 12126 0 obj [1597 0 R/XYZ 0 15259 1] endobj 12127 0 obj [1634 0 R/XYZ 0 15259 1] endobj 12128 0 obj [913 0 R/XYZ 0 15259 1] endobj 12129 0 obj [1156 0 R/XYZ 0 15259 1] endobj 12130 0 obj [816 0 R/XYZ 0 15259 1] endobj 12131 0 obj [818 0 R/XYZ 0 15259 1] endobj 12132 0 obj [1103 0 R/XYZ 0 15259 1] endobj 12133 0 obj [1413 0 R/XYZ 0 15259 1] endobj 12134 0 obj [1414 0 R/XYZ 0 15259 1] endobj 12135 0 obj [1419 0 R/XYZ 0 15259 1] endobj 12136 0 obj [815 0 R/XYZ 0 15259 1] endobj 12137 0 obj [816 0 R/XYZ 0 15259 1] endobj 12138 0 obj [1103 0 R/XYZ 0 15259 1] endobj 12139 0 obj [1104 0 R/XYZ 0 15259 1] endobj 12140 0 obj [1388 0 R/XYZ 0 15259 1] endobj 12141 0 obj [1409 0 R/XYZ 0 15259 1] endobj 12142 0 obj [1623 0 R/XYZ 0 15259 1] endobj 12143 0 obj [1644 0 R/XYZ 0 15259 1] endobj 12144 0 obj [642 0 R/XYZ 0 15259 1] endobj 12145 0 obj [381 0 R/XYZ 0 15259 1] endobj 12146 0 obj [709 0 R/XYZ 0 15259 1] endobj 12147 0 obj [810 0 R/XYZ 0 15259 1] endobj 12148 0 obj [812 0 R/XYZ 0 15259 1] endobj 12149 0 obj [1379 0 R/XYZ 0 15259 1] endobj 12150 0 obj [1381 0 R/XYZ 0 15259 1] endobj 12151 0 obj [1654 0 R/XYZ 0 15259 1] endobj 12152 0 obj [1353 0 R/XYZ 0 15259 1] endobj 12153 0 obj [1355 0 R/XYZ 0 15259 1] endobj 12154 0 obj [1364 0 R/XYZ 0 15259 1] endobj 12155 0 obj [1368 0 R/XYZ 0 15259 1] endobj 12156 0 obj [481 0 R/XYZ 0 15259 1] endobj 12157 0 obj [738 0 R/XYZ 0 15259 1] endobj 12158 0 obj [764 0 R/XYZ 0 15259 1] endobj 12159 0 obj [786 0 R/XYZ 0 15259 1] endobj 12160 0 obj [816 0 R/XYZ 0 15259 1] endobj 12161 0 obj [821 0 R/XYZ 0 15259 1] endobj 12162 0 obj [826 0 R/XYZ 0 15259 1] endobj 12163 0 obj [830 0 R/XYZ 0 15259 1] endobj 12164 0 obj [833 0 R/XYZ 0 15259 1] endobj 12165 0 obj [834 0 R/XYZ 0 15259 1] endobj 12166 0 obj [836 0 R/XYZ 0 15259 1] endobj 12167 0 obj [840 0 R/XYZ 0 15259 1] endobj 12168 0 obj [843 0 R/XYZ 0 15259 1] endobj 12169 0 obj [845 0 R/XYZ 0 15259 1] endobj 12170 0 obj [854 0 R/XYZ 0 15259 1] endobj 12171 0 obj [857 0 R/XYZ 0 15259 1] endobj 12172 0 obj [932 0 R/XYZ 0 15259 1] endobj 12173 0 obj [1055 0 R/XYZ 0 15259 1] endobj 12174 0 obj [1057 0 R/XYZ 0 15259 1] endobj 12175 0 obj [1059 0 R/XYZ 0 15259 1] endobj 12176 0 obj [1063 0 R/XYZ 0 15259 1] endobj 12177 0 obj [1078 0 R/XYZ 0 15259 1] endobj 12178 0 obj [1337 0 R/XYZ 0 15259 1] endobj 12179 0 obj [1344 0 R/XYZ 0 15259 1] endobj 12180 0 obj [1351 0 R/XYZ 0 15259 1] endobj 12181 0 obj [1357 0 R/XYZ 0 15259 1] endobj 12182 0 obj [1364 0 R/XYZ 0 15259 1] endobj 12183 0 obj [1366 0 R/XYZ 0 15259 1] endobj 12184 0 obj [1387 0 R/XYZ 0 15259 1] endobj 12185 0 obj [1396 0 R/XYZ 0 15259 1] endobj 12186 0 obj [1399 0 R/XYZ 0 15259 1] endobj 12187 0 obj [1400 0 R/XYZ 0 15259 1] endobj 12188 0 obj [1597 0 R/XYZ 0 15259 1] endobj 12189 0 obj [1654 0 R/XYZ 0 15259 1] endobj 12190 0 obj [1357 0 R/XYZ 0 15259 1] endobj 12191 0 obj [1364 0 R/XYZ 0 15259 1] endobj 12192 0 obj [1327 0 R/XYZ 0 15259 1] endobj 12193 0 obj [1381 0 R/XYZ 0 15259 1] endobj 12194 0 obj [1355 0 R/XYZ 0 15259 1] endobj 12195 0 obj [1357 0 R/XYZ 0 15259 1] endobj 12196 0 obj [808 0 R/XYZ 0 15259 1] endobj 12197 0 obj [814 0 R/XYZ 0 15259 1] endobj 12198 0 obj [1328 0 R/XYZ 0 15259 1] endobj 12199 0 obj [1369 0 R/XYZ 0 15259 1] endobj 12200 0 obj [1373 0 R/XYZ 0 15259 1] endobj 12201 0 obj [1381 0 R/XYZ 0 15259 1] endobj 12202 0 obj [1328 0 R/XYZ 0 15259 1] endobj 12203 0 obj [1328 0 R/XYZ 0 15259 1] endobj 12204 0 obj [1369 0 R/XYZ 0 15259 1] endobj 12205 0 obj [1373 0 R/XYZ 0 15259 1] endobj 12206 0 obj [1381 0 R/XYZ 0 15259 1] endobj 12207 0 obj [1406 0 R/XYZ 0 15259 1] endobj 12208 0 obj [1409 0 R/XYZ 0 15259 1] endobj 12209 0 obj [1368 0 R/XYZ 0 15259 1] endobj 12210 0 obj [1376 0 R/XYZ 0 15259 1] endobj 12211 0 obj [1342 0 R/XYZ 0 15259 1] endobj 12212 0 obj [1351 0 R/XYZ 0 15259 1] endobj 12213 0 obj [1347 0 R/XYZ 0 15259 1] endobj 12214 0 obj [833 0 R/XYZ 0 15259 1] endobj 12215 0 obj [1055 0 R/XYZ 0 15259 1] endobj 12216 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12217 0 obj [1339 0 R/XYZ 0 15259 1] endobj 12218 0 obj [843 0 R/XYZ 0 15259 1] endobj 12219 0 obj [858 0 R/XYZ 0 15259 1] endobj 12220 0 obj [1376 0 R/XYZ 0 15259 1] endobj 12221 0 obj [1379 0 R/XYZ 0 15259 1] endobj 12222 0 obj [1389 0 R/XYZ 0 15259 1] endobj 12223 0 obj [1400 0 R/XYZ 0 15259 1] endobj 12224 0 obj [1418 0 R/XYZ 0 15259 1] endobj 12225 0 obj [1419 0 R/XYZ 0 15259 1] endobj 12226 0 obj [690 0 R/XYZ 0 15259 1] endobj 12227 0 obj [694 0 R/XYZ 0 15259 1] endobj 12228 0 obj [1379 0 R/XYZ 0 15259 1] endobj 12229 0 obj [1381 0 R/XYZ 0 15259 1] endobj 12230 0 obj [1650 0 R/XYZ 0 15259 1] endobj 12231 0 obj [1654 0 R/XYZ 0 15259 1] endobj 12232 0 obj [1330 0 R/XYZ 0 15259 1] endobj 12233 0 obj [1330 0 R/XYZ 0 15259 1] endobj 12234 0 obj [482 0 R/XYZ 0 15259 1] endobj 12235 0 obj [843 0 R/XYZ 0 15259 1] endobj 12236 0 obj [1330 0 R/XYZ 0 15259 1] endobj 12237 0 obj [1333 0 R/XYZ 0 15259 1] endobj 12238 0 obj [1336 0 R/XYZ 0 15259 1] endobj 12239 0 obj [1342 0 R/XYZ 0 15259 1] endobj 12240 0 obj [1343 0 R/XYZ 0 15259 1] endobj 12241 0 obj [1353 0 R/XYZ 0 15259 1] endobj 12242 0 obj [1355 0 R/XYZ 0 15259 1] endobj 12243 0 obj [1358 0 R/XYZ 0 15259 1] endobj 12244 0 obj [1365 0 R/XYZ 0 15259 1] endobj 12245 0 obj [1368 0 R/XYZ 0 15259 1] endobj 12246 0 obj [1371 0 R/XYZ 0 15259 1] endobj 12247 0 obj [1373 0 R/XYZ 0 15259 1] endobj 12248 0 obj [1394 0 R/XYZ 0 15259 1] endobj 12249 0 obj [1400 0 R/XYZ 0 15259 1] endobj 12250 0 obj [1404 0 R/XYZ 0 15259 1] endobj 12251 0 obj [1406 0 R/XYZ 0 15259 1] endobj 12252 0 obj [1413 0 R/XYZ 0 15259 1] endobj 12253 0 obj [1418 0 R/XYZ 0 15259 1] endobj 12254 0 obj [1419 0 R/XYZ 0 15259 1] endobj 12255 0 obj [1595 0 R/XYZ 0 15259 1] endobj 12256 0 obj [1644 0 R/XYZ 0 15259 1] endobj 12257 0 obj [421 0 R/XYZ 0 15259 1] endobj 12258 0 obj [519 0 R/XYZ 0 15259 1] endobj 12259 0 obj [1330 0 R/XYZ 0 15259 1] endobj 12260 0 obj [699 0 R/XYZ 0 15259 1] endobj 12261 0 obj [419 0 R/XYZ 0 15259 1] endobj 12262 0 obj [500 0 R/XYZ 0 15259 1] endobj 12263 0 obj [661 0 R/XYZ 0 15259 1] endobj 12264 0 obj [734 0 R/XYZ 0 15259 1] endobj 12265 0 obj [1423 0 R/XYZ 0 15259 1] endobj 12266 0 obj [1652 0 R/XYZ 0 15259 1] endobj 12267 0 obj [1654 0 R/XYZ 0 15259 1] endobj 12268 0 obj [1044 0 R/XYZ 0 15259 1] endobj 12269 0 obj [1049 0 R/XYZ 0 15259 1] endobj 12270 0 obj [1028 0 R/XYZ 0 15259 1] endobj 12271 0 obj [396 0 R/XYZ 0 15259 1] endobj 12272 0 obj [419 0 R/XYZ 0 15259 1] endobj 12273 0 obj [734 0 R/XYZ 0 15259 1] endobj 12274 0 obj [943 0 R/XYZ 0 15259 1] endobj 12275 0 obj [996 0 R/XYZ 0 15259 1] endobj 12276 0 obj [1205 0 R/XYZ 0 15259 1] endobj 12277 0 obj [1036 0 R/XYZ 0 15259 1] endobj 12278 0 obj [1039 0 R/XYZ 0 15259 1] endobj 12279 0 obj [943 0 R/XYZ 0 15259 1] endobj 12280 0 obj [947 0 R/XYZ 0 15259 1] endobj 12281 0 obj [1001 0 R/XYZ 0 15259 1] endobj 12282 0 obj [1051 0 R/XYZ 0 15259 1] endobj 12283 0 obj [947 0 R/XYZ 0 15259 1] endobj 12284 0 obj [951 0 R/XYZ 0 15259 1] endobj 12285 0 obj [1049 0 R/XYZ 0 15259 1] endobj 12286 0 obj [1051 0 R/XYZ 0 15259 1] endobj 12287 0 obj [1025 0 R/XYZ 0 15259 1] endobj 12288 0 obj [1030 0 R/XYZ 0 15259 1] endobj 12289 0 obj [961 0 R/XYZ 0 15259 1] endobj 12290 0 obj [995 0 R/XYZ 0 15259 1] endobj 12291 0 obj [951 0 R/XYZ 0 15259 1] endobj 12292 0 obj [961 0 R/XYZ 0 15259 1] endobj 12293 0 obj [1039 0 R/XYZ 0 15259 1] endobj 12294 0 obj [1044 0 R/XYZ 0 15259 1] endobj 12295 0 obj [1030 0 R/XYZ 0 15259 1] endobj 12296 0 obj [1036 0 R/XYZ 0 15259 1] endobj 12297 0 obj [1627 0 R/XYZ 0 15259 1] endobj 12298 0 obj [405 0 R/XYZ 0 15259 1] endobj 12299 0 obj [450 0 R/XYZ 0 15259 1] endobj 12300 0 obj [451 0 R/XYZ 0 15259 1] endobj 12301 0 obj [458 0 R/XYZ 0 15259 1] endobj 12302 0 obj [472 0 R/XYZ 0 15259 1] endobj 12303 0 obj [786 0 R/XYZ 0 15259 1] endobj 12304 0 obj [799 0 R/XYZ 0 15259 1] endobj 12305 0 obj [676 0 R/XYZ 0 15259 1] endobj 12306 0 obj [684 0 R/XYZ 0 15259 1] endobj 12307 0 obj [405 0 R/XYZ 0 15259 1] endobj 12308 0 obj [411 0 R/XYZ 0 15259 1] endobj 12309 0 obj [472 0 R/XYZ 0 15259 1] endobj 12310 0 obj [579 0 R/XYZ 0 15259 1] endobj 12311 0 obj [676 0 R/XYZ 0 15259 1] endobj 12312 0 obj [678 0 R/XYZ 0 15259 1] endobj 12313 0 obj [679 0 R/XYZ 0 15259 1] endobj 12314 0 obj [779 0 R/XYZ 0 15259 1] endobj 12315 0 obj [786 0 R/XYZ 0 15259 1] endobj 12316 0 obj [405 0 R/XYZ 0 15259 1] endobj 12317 0 obj [411 0 R/XYZ 0 15259 1] endobj 12318 0 obj [472 0 R/XYZ 0 15259 1] endobj 12319 0 obj [799 0 R/XYZ 0 15259 1] endobj 12320 0 obj [802 0 R/XYZ 0 15259 1] endobj 12321 0 obj [405 0 R/XYZ 0 15259 1] endobj 12322 0 obj [405 0 R/XYZ 0 15259 1] endobj 12323 0 obj [1346 0 R/XYZ 0 15259 1] endobj 12324 0 obj [1368 0 R/XYZ 0 15259 1] endobj 12325 0 obj [1369 0 R/XYZ 0 15259 1] endobj 12326 0 obj [1373 0 R/XYZ 0 15259 1] endobj 12327 0 obj [1381 0 R/XYZ 0 15259 1] endobj 12328 0 obj [1643 0 R/XYZ 0 15259 1] endobj 12329 0 obj [676 0 R/XYZ 0 15259 1] endobj 12330 0 obj [677 0 R/XYZ 0 15259 1] endobj 12331 0 obj [681 0 R/XYZ 0 15259 1] endobj 12332 0 obj [779 0 R/XYZ 0 15259 1] endobj 12333 0 obj [871 0 R/XYZ 0 15259 1] endobj 12334 0 obj [906 0 R/XYZ 0 15259 1] endobj 12335 0 obj [1288 0 R/XYZ 0 15259 1] endobj 12336 0 obj [1289 0 R/XYZ 0 15259 1] endobj 12337 0 obj [1619 0 R/XYZ 0 15259 1] endobj 12338 0 obj [1629 0 R/XYZ 0 15259 1] endobj 12339 0 obj [676 0 R/XYZ 0 15259 1] endobj 12340 0 obj [419 0 R/XYZ 0 15259 1] endobj 12341 0 obj [472 0 R/XYZ 0 15259 1] endobj 12342 0 obj [1019 0 R/XYZ 0 15259 1] endobj 12343 0 obj [1051 0 R/XYZ 0 15259 1] endobj 12344 0 obj [928 0 R/XYZ 0 15259 1] endobj 12345 0 obj [871 0 R/XYZ 0 15259 1] endobj 12346 0 obj [871 0 R/XYZ 0 15259 1] endobj 12347 0 obj [446 0 R/XYZ 0 15259 1] endobj 12348 0 obj [451 0 R/XYZ 0 15259 1] endobj 12349 0 obj [871 0 R/XYZ 0 15259 1] endobj 12350 0 obj [901 0 R/XYZ 0 15259 1] endobj 12351 0 obj [576 0 R/XYZ 0 15259 1] endobj 12352 0 obj [577 0 R/XYZ 0 15259 1] endobj 12353 0 obj [1145 0 R/XYZ 0 15259 1] endobj 12354 0 obj [450 0 R/XYZ 0 15259 1] endobj 12355 0 obj [472 0 R/XYZ 0 15259 1] endobj 12356 0 obj [799 0 R/XYZ 0 15259 1] endobj 12357 0 obj [800 0 R/XYZ 0 15259 1] endobj 12358 0 obj [871 0 R/XYZ 0 15259 1] endobj 12359 0 obj [1132 0 R/XYZ 0 15259 1] endobj 12360 0 obj [799 0 R/XYZ 0 15259 1] endobj 12361 0 obj [529 0 R/XYZ 0 15259 1] endobj 12362 0 obj [579 0 R/XYZ 0 15259 1] endobj 12363 0 obj [581 0 R/XYZ 0 15259 1] endobj 12364 0 obj [676 0 R/XYZ 0 15259 1] endobj 12365 0 obj [677 0 R/XYZ 0 15259 1] endobj 12366 0 obj [928 0 R/XYZ 0 15259 1] endobj 12367 0 obj [974 0 R/XYZ 0 15259 1] endobj 12368 0 obj [975 0 R/XYZ 0 15259 1] endobj 12369 0 obj [983 0 R/XYZ 0 15259 1] endobj 12370 0 obj [984 0 R/XYZ 0 15259 1] endobj 12371 0 obj [1016 0 R/XYZ 0 15259 1] endobj 12372 0 obj [1017 0 R/XYZ 0 15259 1] endobj 12373 0 obj [1111 0 R/XYZ 0 15259 1] endobj 12374 0 obj [1526 0 R/XYZ 0 15259 1] endobj 12375 0 obj [405 0 R/XYZ 0 15259 1] endobj 12376 0 obj [472 0 R/XYZ 0 15259 1] endobj 12377 0 obj [529 0 R/XYZ 0 15259 1] endobj 12378 0 obj [676 0 R/XYZ 0 15259 1] endobj 12379 0 obj [679 0 R/XYZ 0 15259 1] endobj 12380 0 obj [684 0 R/XYZ 0 15259 1] endobj 12381 0 obj [1606 0 R/XYZ 0 15259 1] endobj 12382 0 obj [677 0 R/XYZ 0 15259 1] endobj 12383 0 obj [984 0 R/XYZ 0 15259 1] endobj 12384 0 obj [993 0 R/XYZ 0 15259 1] endobj 12385 0 obj [1016 0 R/XYZ 0 15259 1] endobj 12386 0 obj [1107 0 R/XYZ 0 15259 1] endobj 12387 0 obj [1111 0 R/XYZ 0 15259 1] endobj 12388 0 obj [1499 0 R/XYZ 0 15259 1] endobj 12389 0 obj [1500 0 R/XYZ 0 15259 1] endobj 12390 0 obj [1629 0 R/XYZ 0 15259 1] endobj 12391 0 obj [1633 0 R/XYZ 0 15259 1] endobj 12392 0 obj [1191 0 R/XYZ 0 15259 1] endobj 12393 0 obj [1191 0 R/XYZ 0 15259 1] endobj 12394 0 obj [497 0 R/XYZ 0 15259 1] endobj 12395 0 obj <> endobj 12396 0 obj [1142 0 R/XYZ 0 15259 1] endobj 12397 0 obj [623 0 R/XYZ 0 15259 1] endobj 12398 0 obj [1191 0 R/XYZ 0 15259 1] endobj 12399 0 obj [515 0 R/XYZ 0 15259 1] endobj 12400 0 obj [517 0 R/XYZ 0 15259 1] endobj 12401 0 obj [1191 0 R/XYZ 0 15259 1] endobj 12402 0 obj [1132 0 R/XYZ 0 15259 1] endobj 12403 0 obj [1198 0 R/XYZ 0 15259 1] endobj 12404 0 obj [1198 0 R/XYZ 0 15259 1] endobj 12405 0 obj [1198 0 R/XYZ 0 15259 1] endobj 12406 0 obj [1211 0 R/XYZ 0 15259 1] endobj 12407 0 obj [1376 0 R/XYZ 0 15259 1] endobj 12408 0 obj [1377 0 R/XYZ 0 15259 1] endobj 12409 0 obj [1390 0 R/XYZ 0 15259 1] endobj 12410 0 obj [1404 0 R/XYZ 0 15259 1] endobj 12411 0 obj [1595 0 R/XYZ 0 15259 1] endobj 12412 0 obj [1416 0 R/XYZ 0 15259 1] endobj 12413 0 obj [1418 0 R/XYZ 0 15259 1] endobj 12414 0 obj [824 0 R/XYZ 0 15259 1] endobj 12415 0 obj [826 0 R/XYZ 0 15259 1] endobj 12416 0 obj [1400 0 R/XYZ 0 15259 1] endobj 12417 0 obj [1401 0 R/XYZ 0 15259 1] endobj 12418 0 obj [1418 0 R/XYZ 0 15259 1] endobj 12419 0 obj [1418 0 R/XYZ 0 15259 1] endobj 12420 0 obj [1376 0 R/XYZ 0 15259 1] endobj 12421 0 obj [1389 0 R/XYZ 0 15259 1] endobj 12422 0 obj [1401 0 R/XYZ 0 15259 1] endobj 12423 0 obj [1418 0 R/XYZ 0 15259 1] endobj 12424 0 obj [1381 0 R/XYZ 0 15259 1] endobj 12425 0 obj [678 0 R/XYZ 0 15259 1] endobj 12426 0 obj [681 0 R/XYZ 0 15259 1] endobj 12427 0 obj [975 0 R/XYZ 0 15259 1] endobj 12428 0 obj [1619 0 R/XYZ 0 15259 1] endobj 12429 0 obj [709 0 R/XYZ 0 15259 1] endobj 12430 0 obj [640 0 R/XYZ 0 15259 1] endobj 12431 0 obj [645 0 R/XYZ 0 15259 1] endobj 12432 0 obj [917 0 R/XYZ 0 15259 1] endobj 12433 0 obj [1037 0 R/XYZ 0 15259 1] endobj 12434 0 obj [640 0 R/XYZ 0 15259 1] endobj 12435 0 obj [444 0 R/XYZ 0 15259 1] endobj 12436 0 obj [641 0 R/XYZ 0 15259 1] endobj 12437 0 obj [444 0 R/XYZ 0 15259 1] endobj 12438 0 obj [640 0 R/XYZ 0 15259 1] endobj 12439 0 obj [645 0 R/XYZ 0 15259 1] endobj 12440 0 obj [1025 0 R/XYZ 0 15259 1] endobj 12441 0 obj [640 0 R/XYZ 0 15259 1] endobj 12442 0 obj [799 0 R/XYZ 0 15259 1] endobj 12443 0 obj [800 0 R/XYZ 0 15259 1] endobj 12444 0 obj [483 0 R/XYZ 0 15259 1] endobj 12445 0 obj [762 0 R/XYZ 0 15259 1] endobj 12446 0 obj [1654 0 R/XYZ 0 15259 1] endobj 12447 0 obj [437 0 R/XYZ 0 15259 1] endobj 12448 0 obj [1332 0 R/XYZ 0 15259 1] endobj 12449 0 obj [1351 0 R/XYZ 0 15259 1] endobj 12450 0 obj [580 0 R/XYZ 0 15259 1] endobj 12451 0 obj [1099 0 R/XYZ 0 15259 1] endobj 12452 0 obj [1653 0 R/XYZ 0 15259 1] endobj 12453 0 obj [901 0 R/XYZ 0 15259 1] endobj 12454 0 obj [901 0 R/XYZ 0 15259 1] endobj 12455 0 obj [1494 0 R/XYZ 0 15259 1] endobj 12456 0 obj [1499 0 R/XYZ 0 15259 1] endobj 12457 0 obj [1500 0 R/XYZ 0 15259 1] endobj 12458 0 obj [1519 0 R/XYZ 0 15259 1] endobj 12459 0 obj [1532 0 R/XYZ 0 15259 1] endobj 12460 0 obj [1533 0 R/XYZ 0 15259 1] endobj 12461 0 obj [1499 0 R/XYZ 0 15259 1] endobj 12462 0 obj [1494 0 R/XYZ 0 15259 1] endobj 12463 0 obj [1500 0 R/XYZ 0 15259 1] endobj 12464 0 obj [1518 0 R/XYZ 0 15259 1] endobj 12465 0 obj [1500 0 R/XYZ 0 15259 1] endobj 12466 0 obj [734 0 R/XYZ 0 15259 1] endobj 12467 0 obj [1653 0 R/XYZ 0 15259 1] endobj 12468 0 obj [558 0 R/XYZ 0 15259 1] endobj 12469 0 obj [571 0 R/XYZ 0 15259 1] endobj 12470 0 obj [577 0 R/XYZ 0 15259 1] endobj 12471 0 obj [1070 0 R/XYZ 0 15259 1] endobj 12472 0 obj [558 0 R/XYZ 0 15259 1] endobj 12473 0 obj [558 0 R/XYZ 0 15259 1] endobj 12474 0 obj [483 0 R/XYZ 0 15259 1] endobj 12475 0 obj [487 0 R/XYZ 0 15259 1] endobj 12476 0 obj [483 0 R/XYZ 0 15259 1] endobj 12477 0 obj [487 0 R/XYZ 0 15259 1] endobj 12478 0 obj [1099 0 R/XYZ 0 15259 1] endobj 12479 0 obj [1387 0 R/XYZ 0 15259 1] endobj 12480 0 obj [1399 0 R/XYZ 0 15259 1] endobj 12481 0 obj [843 0 R/XYZ 0 15259 1] endobj 12482 0 obj [1370 0 R/XYZ 0 15259 1] endobj 12483 0 obj [1405 0 R/XYZ 0 15259 1] endobj 12484 0 obj [1595 0 R/XYZ 0 15259 1] endobj 12485 0 obj [1373 0 R/XYZ 0 15259 1] endobj 12486 0 obj [1369 0 R/XYZ 0 15259 1] endobj 12487 0 obj [1374 0 R/XYZ 0 15259 1] endobj 12488 0 obj [1595 0 R/XYZ 0 15259 1] endobj 12489 0 obj [1370 0 R/XYZ 0 15259 1] endobj 12490 0 obj [814 0 R/XYZ 0 15259 1] endobj 12491 0 obj [594 0 R/XYZ 0 15259 1] endobj 12492 0 obj [794 0 R/XYZ 0 15259 1] endobj 12493 0 obj [1025 0 R/XYZ 0 15259 1] endobj 12494 0 obj [1037 0 R/XYZ 0 15259 1] endobj 12495 0 obj [1358 0 R/XYZ 0 15259 1] endobj 12496 0 obj [1359 0 R/XYZ 0 15259 1] endobj 12497 0 obj [1362 0 R/XYZ 0 15259 1] endobj 12498 0 obj [1358 0 R/XYZ 0 15259 1] endobj 12499 0 obj [1361 0 R/XYZ 0 15259 1] endobj 12500 0 obj [446 0 R/XYZ 0 15259 1] endobj 12501 0 obj [451 0 R/XYZ 0 15259 1] endobj 12502 0 obj [458 0 R/XYZ 0 15259 1] endobj 12503 0 obj [1026 0 R/XYZ 0 15259 1] endobj 12504 0 obj [1037 0 R/XYZ 0 15259 1] endobj 12505 0 obj [1369 0 R/XYZ 0 15259 1] endobj 12506 0 obj [1374 0 R/XYZ 0 15259 1] endobj 12507 0 obj [1381 0 R/XYZ 0 15259 1] endobj 12508 0 obj [1405 0 R/XYZ 0 15259 1] endobj 12509 0 obj [1595 0 R/XYZ 0 15259 1] endobj 12510 0 obj [1371 0 R/XYZ 0 15259 1] endobj 12511 0 obj [1369 0 R/XYZ 0 15259 1] endobj 12512 0 obj [1374 0 R/XYZ 0 15259 1] endobj 12513 0 obj [1595 0 R/XYZ 0 15259 1] endobj 12514 0 obj [1372 0 R/XYZ 0 15259 1] endobj 12515 0 obj [1370 0 R/XYZ 0 15259 1] endobj 12516 0 obj [1595 0 R/XYZ 0 15259 1] endobj 12517 0 obj [1373 0 R/XYZ 0 15259 1] endobj 12518 0 obj [1010 0 R/XYZ 0 15259 1] endobj 12519 0 obj [1390 0 R/XYZ 0 15259 1] endobj 12520 0 obj [1412 0 R/XYZ 0 15259 1] endobj 12521 0 obj [677 0 R/XYZ 0 15259 1] endobj 12522 0 obj [679 0 R/XYZ 0 15259 1] endobj 12523 0 obj [682 0 R/XYZ 0 15259 1] endobj 12524 0 obj [684 0 R/XYZ 0 15259 1] endobj 12525 0 obj [709 0 R/XYZ 0 15259 1] endobj 12526 0 obj [1619 0 R/XYZ 0 15259 1] endobj 12527 0 obj [446 0 R/XYZ 0 15259 1] endobj 12528 0 obj [451 0 R/XYZ 0 15259 1] endobj 12529 0 obj [458 0 R/XYZ 0 15259 1] endobj 12530 0 obj [1037 0 R/XYZ 0 15259 1] endobj 12531 0 obj [386 0 R/XYZ 0 15259 1] endobj 12532 0 obj [418 0 R/XYZ 0 15259 1] endobj 12533 0 obj [437 0 R/XYZ 0 15259 1] endobj 12534 0 obj [814 0 R/XYZ 0 15259 1] endobj 12535 0 obj [442 0 R/XYZ 0 15259 1] endobj 12536 0 obj [444 0 R/XYZ 0 15259 1] endobj 12537 0 obj [900 0 R/XYZ 0 15259 1] endobj 12538 0 obj [1299 0 R/XYZ 0 15259 1] endobj 12539 0 obj [1301 0 R/XYZ 0 15259 1] endobj 12540 0 obj [458 0 R/XYZ 0 15259 1] endobj 12541 0 obj [468 0 R/XYZ 0 15259 1] endobj 12542 0 obj [483 0 R/XYZ 0 15259 1] endobj 12543 0 obj [560 0 R/XYZ 0 15259 1] endobj 12544 0 obj [564 0 R/XYZ 0 15259 1] endobj 12545 0 obj [583 0 R/XYZ 0 15259 1] endobj 12546 0 obj [472 0 R/XYZ 0 15259 1] endobj 12547 0 obj [1231 0 R/XYZ 0 15259 1] endobj 12548 0 obj [1231 0 R/XYZ 0 15259 1] endobj 12549 0 obj [442 0 R/XYZ 0 15259 1] endobj 12550 0 obj [444 0 R/XYZ 0 15259 1] endobj 12551 0 obj [463 0 R/XYZ 0 15259 1] endobj 12552 0 obj [722 0 R/XYZ 0 15259 1] endobj 12553 0 obj [442 0 R/XYZ 0 15259 1] endobj 12554 0 obj [442 0 R/XYZ 0 15259 1] endobj 12555 0 obj [545 0 R/XYZ 0 15259 1] endobj 12556 0 obj [549 0 R/XYZ 0 15259 1] endobj 12557 0 obj [722 0 R/XYZ 0 15259 1] endobj 12558 0 obj [871 0 R/XYZ 0 15259 1] endobj 12559 0 obj [1059 0 R/XYZ 0 15259 1] endobj 12560 0 obj [1060 0 R/XYZ 0 15259 1] endobj 12561 0 obj [545 0 R/XYZ 0 15259 1] endobj 12562 0 obj [546 0 R/XYZ 0 15259 1] endobj 12563 0 obj [600 0 R/XYZ 0 15259 1] endobj 12564 0 obj [673 0 R/XYZ 0 15259 1] endobj 12565 0 obj [684 0 R/XYZ 0 15259 1] endobj 12566 0 obj [871 0 R/XYZ 0 15259 1] endobj 12567 0 obj [673 0 R/XYZ 0 15259 1] endobj 12568 0 obj [674 0 R/XYZ 0 15259 1] endobj 12569 0 obj [684 0 R/XYZ 0 15259 1] endobj 12570 0 obj [388 0 R/XYZ 0 15259 1] endobj 12571 0 obj [478 0 R/XYZ 0 15259 1] endobj 12572 0 obj [523 0 R/XYZ 0 15259 1] endobj 12573 0 obj [623 0 R/XYZ 0 15259 1] endobj 12574 0 obj [617 0 R/XYZ 0 15259 1] endobj 12575 0 obj [619 0 R/XYZ 0 15259 1] endobj 12576 0 obj [1037 0 R/XYZ 0 15259 1] endobj 12577 0 obj [617 0 R/XYZ 0 15259 1] endobj 12578 0 obj [1037 0 R/XYZ 0 15259 1] endobj 12579 0 obj [700 0 R/XYZ 0 15259 1] endobj 12580 0 obj [389 0 R/XYZ 0 15259 1] endobj 12581 0 obj [421 0 R/XYZ 0 15259 1] endobj 12582 0 obj [463 0 R/XYZ 0 15259 1] endobj 12583 0 obj [480 0 R/XYZ 0 15259 1] endobj 12584 0 obj [554 0 R/XYZ 0 15259 1] endobj 12585 0 obj [1025 0 R/XYZ 0 15259 1] endobj 12586 0 obj [1104 0 R/XYZ 0 15259 1] endobj 12587 0 obj [1441 0 R/XYZ 0 15259 1] endobj 12588 0 obj [1593 0 R/XYZ 0 15259 1] endobj 12589 0 obj [378 0 R/XYZ 0 15259 1] endobj 12590 0 obj [380 0 R/XYZ 0 15259 1] endobj 12591 0 obj [1276 0 R/XYZ 0 15259 1] endobj 12592 0 obj [1292 0 R/XYZ 0 15259 1] endobj 12593 0 obj [1191 0 R/XYZ 0 15259 1] endobj 12594 0 obj [429 0 R/XYZ 0 15259 1] endobj 12595 0 obj [437 0 R/XYZ 0 15259 1] endobj 12596 0 obj [362 0 R/XYZ 0 15259 1] endobj 12597 0 obj [368 0 R/XYZ 0 15259 1] endobj 12598 0 obj <> endobj 12599 0 obj [561 0 R/XYZ 0 15259 1] endobj 12600 0 obj [564 0 R/XYZ 0 15259 1] endobj 12601 0 obj [568 0 R/XYZ 0 15259 1] endobj 12602 0 obj [571 0 R/XYZ 0 15259 1] endobj 12603 0 obj [572 0 R/XYZ 0 15259 1] endobj 12604 0 obj [577 0 R/XYZ 0 15259 1] endobj 12605 0 obj [600 0 R/XYZ 0 15259 1] endobj 12606 0 obj [642 0 R/XYZ 0 15259 1] endobj 12607 0 obj [643 0 R/XYZ 0 15259 1] endobj 12608 0 obj [871 0 R/XYZ 0 15259 1] endobj 12609 0 obj [917 0 R/XYZ 0 15259 1] endobj 12610 0 obj [1037 0 R/XYZ 0 15259 1] endobj 12611 0 obj [1099 0 R/XYZ 0 15259 1] endobj 12612 0 obj [1172 0 R/XYZ 0 15259 1] endobj 12613 0 obj [1286 0 R/XYZ 0 15259 1] endobj 12614 0 obj [1288 0 R/XYZ 0 15259 1] endobj 12615 0 obj [1290 0 R/XYZ 0 15259 1] endobj 12616 0 obj [1517 0 R/XYZ 0 15259 1] endobj 12617 0 obj [1520 0 R/XYZ 0 15259 1] endobj 12618 0 obj [1521 0 R/XYZ 0 15259 1] endobj 12619 0 obj [1531 0 R/XYZ 0 15259 1] endobj 12620 0 obj [1609 0 R/XYZ 0 15259 1] endobj 12621 0 obj [1611 0 R/XYZ 0 15259 1] endobj 12622 0 obj [1637 0 R/XYZ 0 15259 1] endobj 12623 0 obj [1642 0 R/XYZ 0 15259 1] endobj 12624 0 obj [565 0 R/XYZ 0 15259 1] endobj 12625 0 obj [564 0 R/XYZ 0 15259 1] endobj 12626 0 obj [568 0 R/XYZ 0 15259 1] endobj 12627 0 obj [871 0 R/XYZ 0 15259 1] endobj 12628 0 obj [1037 0 R/XYZ 0 15259 1] endobj 12629 0 obj [565 0 R/XYZ 0 15259 1] endobj 12630 0 obj [1091 0 R/XYZ 0 15259 1] endobj 12631 0 obj [1445 0 R/XYZ 0 15259 1] endobj 12632 0 obj [1446 0 R/XYZ 0 15259 1] endobj 12633 0 obj [1448 0 R/XYZ 0 15259 1] endobj 12634 0 obj [1454 0 R/XYZ 0 15259 1] endobj 12635 0 obj [1456 0 R/XYZ 0 15259 1] endobj 12636 0 obj [1457 0 R/XYZ 0 15259 1] endobj 12637 0 obj [1459 0 R/XYZ 0 15259 1] endobj 12638 0 obj [1463 0 R/XYZ 0 15259 1] endobj 12639 0 obj [1464 0 R/XYZ 0 15259 1] endobj 12640 0 obj [1466 0 R/XYZ 0 15259 1] endobj 12641 0 obj [1595 0 R/XYZ 0 15259 1] endobj 12642 0 obj [1395 0 R/XYZ 0 15259 1] endobj 12643 0 obj [1397 0 R/XYZ 0 15259 1] endobj 12644 0 obj [1395 0 R/XYZ 0 15259 1] endobj 12645 0 obj [649 0 R/XYZ 0 15259 1] endobj 12646 0 obj [1144 0 R/XYZ 0 15259 1] endobj 12647 0 obj [1651 0 R/XYZ 0 15259 1] endobj 12648 0 obj [864 0 R/XYZ 0 15259 1] endobj 12649 0 obj [866 0 R/XYZ 0 15259 1] endobj 12650 0 obj [710 0 R/XYZ 0 15259 1] endobj 12651 0 obj [1025 0 R/XYZ 0 15259 1] endobj 12652 0 obj [710 0 R/XYZ 0 15259 1] endobj 12653 0 obj [509 0 R/XYZ 0 15259 1] endobj 12654 0 obj [1508 0 R/XYZ 0 15259 1] endobj 12655 0 obj [1513 0 R/XYZ 0 15259 1] endobj 12656 0 obj [1526 0 R/XYZ 0 15259 1] endobj 12657 0 obj [1538 0 R/XYZ 0 15259 1] endobj 12658 0 obj [1513 0 R/XYZ 0 15259 1] endobj 12659 0 obj [814 0 R/XYZ 0 15259 1] endobj 12660 0 obj [1254 0 R/XYZ 0 15259 1] endobj 12661 0 obj [1255 0 R/XYZ 0 15259 1] endobj 12662 0 obj [1257 0 R/XYZ 0 15259 1] endobj 12663 0 obj [1259 0 R/XYZ 0 15259 1] endobj 12664 0 obj [1260 0 R/XYZ 0 15259 1] endobj 12665 0 obj [1262 0 R/XYZ 0 15259 1] endobj 12666 0 obj [1264 0 R/XYZ 0 15259 1] endobj 12667 0 obj [1272 0 R/XYZ 0 15259 1] endobj 12668 0 obj [1068 0 R/XYZ 0 15259 1] endobj 12669 0 obj [708 0 R/XYZ 0 15259 1] endobj 12670 0 obj [811 0 R/XYZ 0 15259 1] endobj 12671 0 obj [399 0 R/XYZ 0 15259 1] endobj 12672 0 obj [768 0 R/XYZ 0 15259 1] endobj 12673 0 obj [774 0 R/XYZ 0 15259 1] endobj 12674 0 obj [535 0 R/XYZ 0 15259 1] endobj 12675 0 obj [537 0 R/XYZ 0 15259 1] endobj 12676 0 obj [540 0 R/XYZ 0 15259 1] endobj 12677 0 obj [542 0 R/XYZ 0 15259 1] endobj 12678 0 obj [548 0 R/XYZ 0 15259 1] endobj 12679 0 obj [554 0 R/XYZ 0 15259 1] endobj 12680 0 obj [579 0 R/XYZ 0 15259 1] endobj 12681 0 obj [599 0 R/XYZ 0 15259 1] endobj 12682 0 obj [732 0 R/XYZ 0 15259 1] endobj 12683 0 obj [738 0 R/XYZ 0 15259 1] endobj 12684 0 obj [765 0 R/XYZ 0 15259 1] endobj 12685 0 obj [769 0 R/XYZ 0 15259 1] endobj 12686 0 obj [774 0 R/XYZ 0 15259 1] endobj 12687 0 obj [794 0 R/XYZ 0 15259 1] endobj 12688 0 obj [809 0 R/XYZ 0 15259 1] endobj 12689 0 obj [811 0 R/XYZ 0 15259 1] endobj 12690 0 obj [880 0 R/XYZ 0 15259 1] endobj 12691 0 obj [938 0 R/XYZ 0 15259 1] endobj 12692 0 obj [1180 0 R/XYZ 0 15259 1] endobj 12693 0 obj [1187 0 R/XYZ 0 15259 1] endobj 12694 0 obj [1194 0 R/XYZ 0 15259 1] endobj 12695 0 obj [1200 0 R/XYZ 0 15259 1] endobj 12696 0 obj [1215 0 R/XYZ 0 15259 1] endobj 12697 0 obj [1217 0 R/XYZ 0 15259 1] endobj 12698 0 obj [1286 0 R/XYZ 0 15259 1] endobj 12699 0 obj [1289 0 R/XYZ 0 15259 1] endobj 12700 0 obj [1503 0 R/XYZ 0 15259 1] endobj 12701 0 obj [1618 0 R/XYZ 0 15259 1] endobj 12702 0 obj [445 0 R/XYZ 0 15259 1] endobj 12703 0 obj [446 0 R/XYZ 0 15259 1] endobj 12704 0 obj [451 0 R/XYZ 0 15259 1] endobj 12705 0 obj [535 0 R/XYZ 0 15259 1] endobj 12706 0 obj [537 0 R/XYZ 0 15259 1] endobj 12707 0 obj [542 0 R/XYZ 0 15259 1] endobj 12708 0 obj [721 0 R/XYZ 0 15259 1] endobj 12709 0 obj [732 0 R/XYZ 0 15259 1] endobj 12710 0 obj [738 0 R/XYZ 0 15259 1] endobj 12711 0 obj [764 0 R/XYZ 0 15259 1] endobj 12712 0 obj [765 0 R/XYZ 0 15259 1] endobj 12713 0 obj [769 0 R/XYZ 0 15259 1] endobj 12714 0 obj [774 0 R/XYZ 0 15259 1] endobj 12715 0 obj [786 0 R/XYZ 0 15259 1] endobj 12716 0 obj [794 0 R/XYZ 0 15259 1] endobj 12717 0 obj [809 0 R/XYZ 0 15259 1] endobj 12718 0 obj [811 0 R/XYZ 0 15259 1] endobj 12719 0 obj [880 0 R/XYZ 0 15259 1] endobj 12720 0 obj [938 0 R/XYZ 0 15259 1] endobj 12721 0 obj [1214 0 R/XYZ 0 15259 1] endobj 12722 0 obj [1624 0 R/XYZ 0 15259 1] endobj 12723 0 obj [442 0 R/XYZ 0 15259 1] endobj 12724 0 obj [1145 0 R/XYZ 0 15259 1] endobj 12725 0 obj [1634 0 R/XYZ 0 15259 1] endobj 12726 0 obj [405 0 R/XYZ 0 15259 1] endobj 12727 0 obj [676 0 R/XYZ 0 15259 1] endobj 12728 0 obj [679 0 R/XYZ 0 15259 1] endobj 12729 0 obj [684 0 R/XYZ 0 15259 1] endobj 12730 0 obj [580 0 R/XYZ 0 15259 1] endobj 12731 0 obj [871 0 R/XYZ 0 15259 1] endobj 12732 0 obj [1610 0 R/XYZ 0 15259 1] endobj 12733 0 obj [579 0 R/XYZ 0 15259 1] endobj 12734 0 obj [577 0 R/XYZ 0 15259 1] endobj 12735 0 obj [581 0 R/XYZ 0 15259 1] endobj 12736 0 obj [871 0 R/XYZ 0 15259 1] endobj 12737 0 obj [1037 0 R/XYZ 0 15259 1] endobj 12738 0 obj [1610 0 R/XYZ 0 15259 1] endobj 12739 0 obj [579 0 R/XYZ 0 15259 1] endobj 12740 0 obj [579 0 R/XYZ 0 15259 1] endobj 12741 0 obj [580 0 R/XYZ 0 15259 1] endobj 12742 0 obj [577 0 R/XYZ 0 15259 1] endobj 12743 0 obj [581 0 R/XYZ 0 15259 1] endobj 12744 0 obj [600 0 R/XYZ 0 15259 1] endobj 12745 0 obj [871 0 R/XYZ 0 15259 1] endobj 12746 0 obj [1037 0 R/XYZ 0 15259 1] endobj 12747 0 obj [1610 0 R/XYZ 0 15259 1] endobj 12748 0 obj [580 0 R/XYZ 0 15259 1] endobj 12749 0 obj [671 0 R/XYZ 0 15259 1] endobj 12750 0 obj [673 0 R/XYZ 0 15259 1] endobj 12751 0 obj [794 0 R/XYZ 0 15259 1] endobj 12752 0 obj [845 0 R/XYZ 0 15259 1] endobj 12753 0 obj [1409 0 R/XYZ 0 15259 1] endobj 12754 0 obj [1623 0 R/XYZ 0 15259 1] endobj 12755 0 obj [1630 0 R/XYZ 0 15259 1] endobj 12756 0 obj [673 0 R/XYZ 0 15259 1] endobj 12757 0 obj [673 0 R/XYZ 0 15259 1] endobj 12758 0 obj [423 0 R/XYZ 0 15259 1] endobj 12759 0 obj [673 0 R/XYZ 0 15259 1] endobj 12760 0 obj [674 0 R/XYZ 0 15259 1] endobj 12761 0 obj [684 0 R/XYZ 0 15259 1] endobj 12762 0 obj [674 0 R/XYZ 0 15259 1] endobj 12763 0 obj [1103 0 R/XYZ 0 15259 1] endobj 12764 0 obj [868 0 R/XYZ 0 15259 1] endobj 12765 0 obj [1399 0 R/XYZ 0 15259 1] endobj 12766 0 obj [1444 0 R/XYZ 0 15259 1] endobj 12767 0 obj [1444 0 R/XYZ 0 15259 1] endobj 12768 0 obj [1598 0 R/XYZ 0 15259 1] endobj 12769 0 obj [1602 0 R/XYZ 0 15259 1] endobj 12770 0 obj [1444 0 R/XYZ 0 15259 1] endobj 12771 0 obj [1598 0 R/XYZ 0 15259 1] endobj 12772 0 obj [1602 0 R/XYZ 0 15259 1] endobj 12773 0 obj [785 0 R/XYZ 0 15259 1] endobj 12774 0 obj [785 0 R/XYZ 0 15259 1] endobj 12775 0 obj [633 0 R/XYZ 0 15259 1] endobj 12776 0 obj [700 0 R/XYZ 0 15259 1] endobj 12777 0 obj [714 0 R/XYZ 0 15259 1] endobj 12778 0 obj [716 0 R/XYZ 0 15259 1] endobj 12779 0 obj [718 0 R/XYZ 0 15259 1] endobj 12780 0 obj [727 0 R/XYZ 0 15259 1] endobj 12781 0 obj [718 0 R/XYZ 0 15259 1] endobj 12782 0 obj [716 0 R/XYZ 0 15259 1] endobj 12783 0 obj [718 0 R/XYZ 0 15259 1] endobj 12784 0 obj [716 0 R/XYZ 0 15259 1] endobj 12785 0 obj [718 0 R/XYZ 0 15259 1] endobj 12786 0 obj [884 0 R/XYZ 0 15259 1] endobj 12787 0 obj [906 0 R/XYZ 0 15259 1] endobj 12788 0 obj [785 0 R/XYZ 0 15259 1] endobj 12789 0 obj [673 0 R/XYZ 0 15259 1] endobj 12790 0 obj [673 0 R/XYZ 0 15259 1] endobj 12791 0 obj [1444 0 R/XYZ 0 15259 1] endobj 12792 0 obj [1598 0 R/XYZ 0 15259 1] endobj 12793 0 obj [1602 0 R/XYZ 0 15259 1] endobj 12794 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12795 0 obj [632 0 R/XYZ 0 15259 1] endobj 12796 0 obj [1037 0 R/XYZ 0 15259 1] endobj 12797 0 obj [632 0 R/XYZ 0 15259 1] endobj 12798 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12799 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12800 0 obj [1336 0 R/XYZ 0 15259 1] endobj 12801 0 obj [1369 0 R/XYZ 0 15259 1] endobj 12802 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12803 0 obj [1369 0 R/XYZ 0 15259 1] endobj 12804 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12805 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12806 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12807 0 obj [734 0 R/XYZ 0 15259 1] endobj 12808 0 obj [740 0 R/XYZ 0 15259 1] endobj 12809 0 obj [743 0 R/XYZ 0 15259 1] endobj 12810 0 obj [803 0 R/XYZ 0 15259 1] endobj 12811 0 obj [1621 0 R/XYZ 0 15259 1] endobj 12812 0 obj [1622 0 R/XYZ 0 15259 1] endobj 12813 0 obj [632 0 R/XYZ 0 15259 1] endobj 12814 0 obj [1037 0 R/XYZ 0 15259 1] endobj 12815 0 obj [632 0 R/XYZ 0 15259 1] endobj 12816 0 obj [634 0 R/XYZ 0 15259 1] endobj 12817 0 obj [634 0 R/XYZ 0 15259 1] endobj 12818 0 obj [1037 0 R/XYZ 0 15259 1] endobj 12819 0 obj [932 0 R/XYZ 0 15259 1] endobj 12820 0 obj [1099 0 R/XYZ 0 15259 1] endobj 12821 0 obj [1101 0 R/XYZ 0 15259 1] endobj 12822 0 obj [1328 0 R/XYZ 0 15259 1] endobj 12823 0 obj [1377 0 R/XYZ 0 15259 1] endobj 12824 0 obj [1381 0 R/XYZ 0 15259 1] endobj 12825 0 obj [1643 0 R/XYZ 0 15259 1] endobj 12826 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12827 0 obj [1336 0 R/XYZ 0 15259 1] endobj 12828 0 obj [658 0 R/XYZ 0 15259 1] endobj 12829 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12830 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12831 0 obj [1368 0 R/XYZ 0 15259 1] endobj 12832 0 obj [1370 0 R/XYZ 0 15259 1] endobj 12833 0 obj [1372 0 R/XYZ 0 15259 1] endobj 12834 0 obj [499 0 R/XYZ 0 15259 1] endobj 12835 0 obj [501 0 R/XYZ 0 15259 1] endobj 12836 0 obj [504 0 R/XYZ 0 15259 1] endobj 12837 0 obj [592 0 R/XYZ 0 15259 1] endobj 12838 0 obj [845 0 R/XYZ 0 15259 1] endobj 12839 0 obj [1292 0 R/XYZ 0 15259 1] endobj 12840 0 obj [1607 0 R/XYZ 0 15259 1] endobj 12841 0 obj [1651 0 R/XYZ 0 15259 1] endobj 12842 0 obj [843 0 R/XYZ 0 15259 1] endobj 12843 0 obj [845 0 R/XYZ 0 15259 1] endobj 12844 0 obj [591 0 R/XYZ 0 15259 1] endobj 12845 0 obj [649 0 R/XYZ 0 15259 1] endobj 12846 0 obj [1650 0 R/XYZ 0 15259 1] endobj 12847 0 obj [1651 0 R/XYZ 0 15259 1] endobj 12848 0 obj [1654 0 R/XYZ 0 15259 1] endobj 12849 0 obj [716 0 R/XYZ 0 15259 1] endobj 12850 0 obj [718 0 R/XYZ 0 15259 1] endobj 12851 0 obj [884 0 R/XYZ 0 15259 1] endobj 12852 0 obj [906 0 R/XYZ 0 15259 1] endobj 12853 0 obj [632 0 R/XYZ 0 15259 1] endobj 12854 0 obj [1037 0 R/XYZ 0 15259 1] endobj 12855 0 obj [632 0 R/XYZ 0 15259 1] endobj 12856 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12857 0 obj [1137 0 R/XYZ 0 15259 1] endobj 12858 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12859 0 obj [634 0 R/XYZ 0 15259 1] endobj 12860 0 obj [634 0 R/XYZ 0 15259 1] endobj 12861 0 obj [632 0 R/XYZ 0 15259 1] endobj 12862 0 obj [1600 0 R/XYZ 0 15259 1] endobj 12863 0 obj [632 0 R/XYZ 0 15259 1] endobj 12864 0 obj [632 0 R/XYZ 0 15259 1] endobj 12865 0 obj [1065 0 R/XYZ 0 15259 1] endobj 12866 0 obj [632 0 R/XYZ 0 15259 1] endobj 12867 0 obj [634 0 R/XYZ 0 15259 1] endobj 12868 0 obj [634 0 R/XYZ 0 15259 1] endobj 12869 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12870 0 obj <> endobj 12871 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12872 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12873 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12874 0 obj [1066 0 R/XYZ 0 15259 1] endobj 12875 0 obj [1066 0 R/XYZ 0 15259 1] endobj 12876 0 obj [1351 0 R/XYZ 0 15259 1] endobj 12877 0 obj [1351 0 R/XYZ 0 15259 1] endobj 12878 0 obj [1332 0 R/XYZ 0 15259 1] endobj 12879 0 obj [1343 0 R/XYZ 0 15259 1] endobj 12880 0 obj [1348 0 R/XYZ 0 15259 1] endobj 12881 0 obj [1351 0 R/XYZ 0 15259 1] endobj 12882 0 obj [1368 0 R/XYZ 0 15259 1] endobj 12883 0 obj [1370 0 R/XYZ 0 15259 1] endobj 12884 0 obj [1372 0 R/XYZ 0 15259 1] endobj 12885 0 obj [1335 0 R/XYZ 0 15259 1] endobj 12886 0 obj [1037 0 R/XYZ 0 15259 1] endobj 12887 0 obj [1137 0 R/XYZ 0 15259 1] endobj 12888 0 obj [736 0 R/XYZ 0 15259 1] endobj 12889 0 obj [737 0 R/XYZ 0 15259 1] endobj 12890 0 obj [744 0 R/XYZ 0 15259 1] endobj 12891 0 obj [757 0 R/XYZ 0 15259 1] endobj 12892 0 obj [761 0 R/XYZ 0 15259 1] endobj 12893 0 obj [768 0 R/XYZ 0 15259 1] endobj 12894 0 obj [779 0 R/XYZ 0 15259 1] endobj 12895 0 obj [782 0 R/XYZ 0 15259 1] endobj 12896 0 obj [799 0 R/XYZ 0 15259 1] endobj 12897 0 obj [802 0 R/XYZ 0 15259 1] endobj 12898 0 obj [803 0 R/XYZ 0 15259 1] endobj 12899 0 obj [830 0 R/XYZ 0 15259 1] endobj 12900 0 obj [853 0 R/XYZ 0 15259 1] endobj 12901 0 obj [867 0 R/XYZ 0 15259 1] endobj 12902 0 obj [868 0 R/XYZ 0 15259 1] endobj 12903 0 obj [871 0 R/XYZ 0 15259 1] endobj 12904 0 obj [874 0 R/XYZ 0 15259 1] endobj 12905 0 obj [877 0 R/XYZ 0 15259 1] endobj 12906 0 obj [899 0 R/XYZ 0 15259 1] endobj 12907 0 obj [920 0 R/XYZ 0 15259 1] endobj 12908 0 obj [923 0 R/XYZ 0 15259 1] endobj 12909 0 obj [924 0 R/XYZ 0 15259 1] endobj 12910 0 obj [1036 0 R/XYZ 0 15259 1] endobj 12911 0 obj [1065 0 R/XYZ 0 15259 1] endobj 12912 0 obj [1101 0 R/XYZ 0 15259 1] endobj 12913 0 obj [1163 0 R/XYZ 0 15259 1] endobj 12914 0 obj [1218 0 R/XYZ 0 15259 1] endobj 12915 0 obj [1636 0 R/XYZ 0 15259 1] endobj 12916 0 obj [746 0 R/XYZ 0 15259 1] endobj 12917 0 obj [756 0 R/XYZ 0 15259 1] endobj 12918 0 obj [756 0 R/XYZ 0 15259 1] endobj 12919 0 obj [756 0 R/XYZ 0 15259 1] endobj 12920 0 obj [756 0 R/XYZ 0 15259 1] endobj 12921 0 obj [758 0 R/XYZ 0 15259 1] endobj 12922 0 obj [912 0 R/XYZ 0 15259 1] endobj 12923 0 obj [1093 0 R/XYZ 0 15259 1] endobj 12924 0 obj [1145 0 R/XYZ 0 15259 1] endobj 12925 0 obj [1155 0 R/XYZ 0 15259 1] endobj 12926 0 obj [1204 0 R/XYZ 0 15259 1] endobj 12927 0 obj [1597 0 R/XYZ 0 15259 1] endobj 12928 0 obj [1634 0 R/XYZ 0 15259 1] endobj 12929 0 obj [913 0 R/XYZ 0 15259 1] endobj 12930 0 obj [1156 0 R/XYZ 0 15259 1] endobj 12931 0 obj [753 0 R/XYZ 0 15259 1] endobj 12932 0 obj [756 0 R/XYZ 0 15259 1] endobj 12933 0 obj [803 0 R/XYZ 0 15259 1] endobj 12934 0 obj [1036 0 R/XYZ 0 15259 1] endobj 12935 0 obj [753 0 R/XYZ 0 15259 1] endobj 12936 0 obj [758 0 R/XYZ 0 15259 1] endobj 12937 0 obj [759 0 R/XYZ 0 15259 1] endobj 12938 0 obj [912 0 R/XYZ 0 15259 1] endobj 12939 0 obj [1093 0 R/XYZ 0 15259 1] endobj 12940 0 obj [1100 0 R/XYZ 0 15259 1] endobj 12941 0 obj [1145 0 R/XYZ 0 15259 1] endobj 12942 0 obj [1155 0 R/XYZ 0 15259 1] endobj 12943 0 obj [1204 0 R/XYZ 0 15259 1] endobj 12944 0 obj [1597 0 R/XYZ 0 15259 1] endobj 12945 0 obj [913 0 R/XYZ 0 15259 1] endobj 12946 0 obj [1156 0 R/XYZ 0 15259 1] endobj 12947 0 obj [392 0 R/XYZ 0 15259 1] endobj 12948 0 obj [394 0 R/XYZ 0 15259 1] endobj 12949 0 obj [403 0 R/XYZ 0 15259 1] endobj 12950 0 obj [410 0 R/XYZ 0 15259 1] endobj 12951 0 obj [744 0 R/XYZ 0 15259 1] endobj 12952 0 obj [756 0 R/XYZ 0 15259 1] endobj 12953 0 obj [766 0 R/XYZ 0 15259 1] endobj 12954 0 obj [775 0 R/XYZ 0 15259 1] endobj 12955 0 obj [780 0 R/XYZ 0 15259 1] endobj 12956 0 obj [782 0 R/XYZ 0 15259 1] endobj 12957 0 obj [802 0 R/XYZ 0 15259 1] endobj 12958 0 obj [808 0 R/XYZ 0 15259 1] endobj 12959 0 obj [819 0 R/XYZ 0 15259 1] endobj 12960 0 obj [830 0 R/XYZ 0 15259 1] endobj 12961 0 obj [851 0 R/XYZ 0 15259 1] endobj 12962 0 obj [868 0 R/XYZ 0 15259 1] endobj 12963 0 obj [871 0 R/XYZ 0 15259 1] endobj 12964 0 obj [922 0 R/XYZ 0 15259 1] endobj 12965 0 obj [923 0 R/XYZ 0 15259 1] endobj 12966 0 obj [1036 0 R/XYZ 0 15259 1] endobj 12967 0 obj [1100 0 R/XYZ 0 15259 1] endobj 12968 0 obj [1154 0 R/XYZ 0 15259 1] endobj 12969 0 obj [1162 0 R/XYZ 0 15259 1] endobj 12970 0 obj [1163 0 R/XYZ 0 15259 1] endobj 12971 0 obj [1217 0 R/XYZ 0 15259 1] endobj 12972 0 obj [1218 0 R/XYZ 0 15259 1] endobj 12973 0 obj [1258 0 R/XYZ 0 15259 1] endobj 12974 0 obj [1635 0 R/XYZ 0 15259 1] endobj 12975 0 obj [1637 0 R/XYZ 0 15259 1] endobj 12976 0 obj [1639 0 R/XYZ 0 15259 1] endobj 12977 0 obj [746 0 R/XYZ 0 15259 1] endobj 12978 0 obj [1395 0 R/XYZ 0 15259 1] endobj 12979 0 obj [558 0 R/XYZ 0 15259 1] endobj 12980 0 obj [419 0 R/XYZ 0 15259 1] endobj 12981 0 obj [606 0 R/XYZ 0 15259 1] endobj 12982 0 obj [472 0 R/XYZ 0 15259 1] endobj 12983 0 obj [750 0 R/XYZ 0 15259 1] endobj 12984 0 obj [753 0 R/XYZ 0 15259 1] endobj 12985 0 obj [747 0 R/XYZ 0 15259 1] endobj 12986 0 obj [748 0 R/XYZ 0 15259 1] endobj 12987 0 obj [1025 0 R/XYZ 0 15259 1] endobj 12988 0 obj [1037 0 R/XYZ 0 15259 1] endobj 12989 0 obj [1025 0 R/XYZ 0 15259 1] endobj 12990 0 obj [1025 0 R/XYZ 0 15259 1] endobj 12991 0 obj [1025 0 R/XYZ 0 15259 1] endobj 12992 0 obj [419 0 R/XYZ 0 15259 1] endobj 12993 0 obj [702 0 R/XYZ 0 15259 1] endobj 12994 0 obj [1650 0 R/XYZ 0 15259 1] endobj 12995 0 obj [483 0 R/XYZ 0 15259 1] endobj 12996 0 obj [1654 0 R/XYZ 0 15259 1] endobj 12997 0 obj [501 0 R/XYZ 0 15259 1] endobj 12998 0 obj [776 0 R/XYZ 0 15259 1] endobj 12999 0 obj [1423 0 R/XYZ 0 15259 1] endobj 13000 0 obj [1648 0 R/XYZ 0 15259 1] endobj 13001 0 obj [1654 0 R/XYZ 0 15259 1] endobj 13002 0 obj [1654 0 R/XYZ 0 15259 1] endobj 13003 0 obj [1335 0 R/XYZ 0 15259 1] endobj 13004 0 obj [1339 0 R/XYZ 0 15259 1] endobj 13005 0 obj [1344 0 R/XYZ 0 15259 1] endobj 13006 0 obj [1346 0 R/XYZ 0 15259 1] endobj 13007 0 obj [1368 0 R/XYZ 0 15259 1] endobj 13008 0 obj [753 0 R/XYZ 0 15259 1] endobj 13009 0 obj [747 0 R/XYZ 0 15259 1] endobj 13010 0 obj [748 0 R/XYZ 0 15259 1] endobj 13011 0 obj [673 0 R/XYZ 0 15259 1] endobj 13012 0 obj [1409 0 R/XYZ 0 15259 1] endobj 13013 0 obj [747 0 R/XYZ 0 15259 1] endobj 13014 0 obj [747 0 R/XYZ 0 15259 1] endobj 13015 0 obj [748 0 R/XYZ 0 15259 1] endobj 13016 0 obj [747 0 R/XYZ 0 15259 1] endobj 13017 0 obj [748 0 R/XYZ 0 15259 1] endobj 13018 0 obj [747 0 R/XYZ 0 15259 1] endobj 13019 0 obj [748 0 R/XYZ 0 15259 1] endobj 13020 0 obj [750 0 R/XYZ 0 15259 1] endobj 13021 0 obj [842 0 R/XYZ 0 15259 1] endobj 13022 0 obj [1654 0 R/XYZ 0 15259 1] endobj 13023 0 obj [1418 0 R/XYZ 0 15259 1] endobj 13024 0 obj [843 0 R/XYZ 0 15259 1] endobj 13025 0 obj [858 0 R/XYZ 0 15259 1] endobj 13026 0 obj [1376 0 R/XYZ 0 15259 1] endobj 13027 0 obj [1379 0 R/XYZ 0 15259 1] endobj 13028 0 obj [1389 0 R/XYZ 0 15259 1] endobj 13029 0 obj [1400 0 R/XYZ 0 15259 1] endobj 13030 0 obj [1418 0 R/XYZ 0 15259 1] endobj 13031 0 obj [1419 0 R/XYZ 0 15259 1] endobj 13032 0 obj [843 0 R/XYZ 0 15259 1] endobj 13033 0 obj [1376 0 R/XYZ 0 15259 1] endobj 13034 0 obj [1377 0 R/XYZ 0 15259 1] endobj 13035 0 obj [1400 0 R/XYZ 0 15259 1] endobj 13036 0 obj [1404 0 R/XYZ 0 15259 1] endobj 13037 0 obj [1406 0 R/XYZ 0 15259 1] endobj 13038 0 obj [1419 0 R/XYZ 0 15259 1] endobj 13039 0 obj [1595 0 R/XYZ 0 15259 1] endobj 13040 0 obj [1644 0 R/XYZ 0 15259 1] endobj 13041 0 obj [734 0 R/XYZ 0 15259 1] endobj 13042 0 obj [1653 0 R/XYZ 0 15259 1] endobj 13043 0 obj [750 0 R/XYZ 0 15259 1] endobj 13044 0 obj [753 0 R/XYZ 0 15259 1] endobj 13045 0 obj [750 0 R/XYZ 0 15259 1] endobj 13046 0 obj [753 0 R/XYZ 0 15259 1] endobj 13047 0 obj [542 0 R/XYZ 0 15259 1] endobj 13048 0 obj [444 0 R/XYZ 0 15259 1] endobj 13049 0 obj [1037 0 R/XYZ 0 15259 1] endobj 13050 0 obj [421 0 R/XYZ 0 15259 1] endobj 13051 0 obj [1506 0 R/XYZ 0 15259 1] endobj 13052 0 obj [1507 0 R/XYZ 0 15259 1] endobj 13053 0 obj [1522 0 R/XYZ 0 15259 1] endobj 13054 0 obj [1523 0 R/XYZ 0 15259 1] endobj 13055 0 obj [621 0 R/XYZ 0 15259 1] endobj 13056 0 obj [1037 0 R/XYZ 0 15259 1] endobj 13057 0 obj [509 0 R/XYZ 0 15259 1] endobj 13058 0 obj [1131 0 R/XYZ 0 15259 1] endobj 13059 0 obj [1294 0 R/XYZ 0 15259 1] endobj 13060 0 obj [481 0 R/XYZ 0 15259 1] endobj 13061 0 obj [515 0 R/XYZ 0 15259 1] endobj 13062 0 obj [517 0 R/XYZ 0 15259 1] endobj 13063 0 obj [1395 0 R/XYZ 0 15259 1] endobj 13064 0 obj [388 0 R/XYZ 0 15259 1] endobj 13065 0 obj [391 0 R/XYZ 0 15259 1] endobj 13066 0 obj [405 0 R/XYZ 0 15259 1] endobj 13067 0 obj [407 0 R/XYZ 0 15259 1] endobj 13068 0 obj [472 0 R/XYZ 0 15259 1] endobj 13069 0 obj [478 0 R/XYZ 0 15259 1] endobj 13070 0 obj [481 0 R/XYZ 0 15259 1] endobj 13071 0 obj [482 0 R/XYZ 0 15259 1] endobj 13072 0 obj [489 0 R/XYZ 0 15259 1] endobj 13073 0 obj [490 0 R/XYZ 0 15259 1] endobj 13074 0 obj [496 0 R/XYZ 0 15259 1] endobj 13075 0 obj [503 0 R/XYZ 0 15259 1] endobj 13076 0 obj [506 0 R/XYZ 0 15259 1] endobj 13077 0 obj [515 0 R/XYZ 0 15259 1] endobj 13078 0 obj [519 0 R/XYZ 0 15259 1] endobj 13079 0 obj [522 0 R/XYZ 0 15259 1] endobj 13080 0 obj [577 0 R/XYZ 0 15259 1] endobj 13081 0 obj [609 0 R/XYZ 0 15259 1] endobj 13082 0 obj [610 0 R/XYZ 0 15259 1] endobj 13083 0 obj [625 0 R/XYZ 0 15259 1] endobj 13084 0 obj [640 0 R/XYZ 0 15259 1] endobj 13085 0 obj [649 0 R/XYZ 0 15259 1] endobj 13086 0 obj [735 0 R/XYZ 0 15259 1] endobj 13087 0 obj [736 0 R/XYZ 0 15259 1] endobj 13088 0 obj [740 0 R/XYZ 0 15259 1] endobj 13089 0 obj [758 0 R/XYZ 0 15259 1] endobj 13090 0 obj [867 0 R/XYZ 0 15259 1] endobj 13091 0 obj [868 0 R/XYZ 0 15259 1] endobj 13092 0 obj [871 0 R/XYZ 0 15259 1] endobj 13093 0 obj [886 0 R/XYZ 0 15259 1] endobj 13094 0 obj [887 0 R/XYZ 0 15259 1] endobj 13095 0 obj [933 0 R/XYZ 0 15259 1] endobj 13096 0 obj [939 0 R/XYZ 0 15259 1] endobj 13097 0 obj [1036 0 R/XYZ 0 15259 1] endobj 13098 0 obj [1070 0 R/XYZ 0 15259 1] endobj 13099 0 obj [1083 0 R/XYZ 0 15259 1] endobj 13100 0 obj [1085 0 R/XYZ 0 15259 1] endobj 13101 0 obj [1093 0 R/XYZ 0 15259 1] endobj 13102 0 obj [1097 0 R/XYZ 0 15259 1] endobj 13103 0 obj [1100 0 R/XYZ 0 15259 1] endobj 13104 0 obj [1106 0 R/XYZ 0 15259 1] endobj 13105 0 obj [1109 0 R/XYZ 0 15259 1] endobj 13106 0 obj [1115 0 R/XYZ 0 15259 1] endobj 13107 0 obj [1122 0 R/XYZ 0 15259 1] endobj 13108 0 obj [1126 0 R/XYZ 0 15259 1] endobj 13109 0 obj [1132 0 R/XYZ 0 15259 1] endobj 13110 0 obj [1138 0 R/XYZ 0 15259 1] endobj 13111 0 obj [1142 0 R/XYZ 0 15259 1] endobj 13112 0 obj [1145 0 R/XYZ 0 15259 1] endobj 13113 0 obj [1153 0 R/XYZ 0 15259 1] endobj 13114 0 obj [1154 0 R/XYZ 0 15259 1] endobj 13115 0 obj [1156 0 R/XYZ 0 15259 1] endobj 13116 0 obj [1167 0 R/XYZ 0 15259 1] endobj 13117 0 obj [1169 0 R/XYZ 0 15259 1] endobj 13118 0 obj [1172 0 R/XYZ 0 15259 1] endobj 13119 0 obj [1174 0 R/XYZ 0 15259 1] endobj 13120 0 obj [1184 0 R/XYZ 0 15259 1] endobj 13121 0 obj [1191 0 R/XYZ 0 15259 1] endobj 13122 0 obj [1217 0 R/XYZ 0 15259 1] endobj 13123 0 obj [1223 0 R/XYZ 0 15259 1] endobj 13124 0 obj [1225 0 R/XYZ 0 15259 1] endobj 13125 0 obj [1250 0 R/XYZ 0 15259 1] endobj 13126 0 obj [1254 0 R/XYZ 0 15259 1] endobj 13127 0 obj [1260 0 R/XYZ 0 15259 1] endobj 13128 0 obj [1293 0 R/XYZ 0 15259 1] endobj 13129 0 obj [1305 0 R/XYZ 0 15259 1] endobj 13130 0 obj [1306 0 R/XYZ 0 15259 1] endobj 13131 0 obj [1328 0 R/XYZ 0 15259 1] endobj 13132 0 obj [1436 0 R/XYZ 0 15259 1] endobj 13133 0 obj [1446 0 R/XYZ 0 15259 1] endobj 13134 0 obj [1459 0 R/XYZ 0 15259 1] endobj 13135 0 obj [1504 0 R/XYZ 0 15259 1] endobj 13136 0 obj [1513 0 R/XYZ 0 15259 1] endobj 13137 0 obj [1520 0 R/XYZ 0 15259 1] endobj 13138 0 obj [1530 0 R/XYZ 0 15259 1] endobj 13139 0 obj [1607 0 R/XYZ 0 15259 1] endobj 13140 0 obj [1608 0 R/XYZ 0 15259 1] endobj 13141 0 obj [1621 0 R/XYZ 0 15259 1] endobj 13142 0 obj [1625 0 R/XYZ 0 15259 1] endobj 13143 0 obj [1634 0 R/XYZ 0 15259 1] endobj 13144 0 obj [1636 0 R/XYZ 0 15259 1] endobj 13145 0 obj [1637 0 R/XYZ 0 15259 1] endobj 13146 0 obj [1645 0 R/XYZ 0 15259 1] endobj 13147 0 obj [496 0 R/XYZ 0 15259 1] endobj 13148 0 obj [1091 0 R/XYZ 0 15259 1] endobj 13149 0 obj [1095 0 R/XYZ 0 15259 1] endobj 13150 0 obj [1100 0 R/XYZ 0 15259 1] endobj 13151 0 obj [1512 0 R/XYZ 0 15259 1] endobj 13152 0 obj [1595 0 R/XYZ 0 15259 1] endobj 13153 0 obj [1134 0 R/XYZ 0 15259 1] endobj 13154 0 obj [1135 0 R/XYZ 0 15259 1] endobj 13155 0 obj [1294 0 R/XYZ 0 15259 1] endobj 13156 0 obj [1406 0 R/XYZ 0 15259 1] endobj 13157 0 obj [1408 0 R/XYZ 0 15259 1] endobj 13158 0 obj [1413 0 R/XYZ 0 15259 1] endobj 13159 0 obj [1504 0 R/XYZ 0 15259 1] endobj 13160 0 obj [1505 0 R/XYZ 0 15259 1] endobj 13161 0 obj [1518 0 R/XYZ 0 15259 1] endobj 13162 0 obj [1521 0 R/XYZ 0 15259 1] endobj 13163 0 obj [1530 0 R/XYZ 0 15259 1] endobj 13164 0 obj [1594 0 R/XYZ 0 15259 1] endobj 13165 0 obj [1134 0 R/XYZ 0 15259 1] endobj 13166 0 obj [1135 0 R/XYZ 0 15259 1] endobj 13167 0 obj [448 0 R/XYZ 0 15259 1] endobj 13168 0 obj [451 0 R/XYZ 0 15259 1] endobj 13169 0 obj [868 0 R/XYZ 0 15259 1] endobj 13170 0 obj [1036 0 R/XYZ 0 15259 1] endobj 13171 0 obj [1082 0 R/XYZ 0 15259 1] endobj 13172 0 obj [1131 0 R/XYZ 0 15259 1] endobj 13173 0 obj [1134 0 R/XYZ 0 15259 1] endobj 13174 0 obj [1144 0 R/XYZ 0 15259 1] endobj 13175 0 obj [1145 0 R/XYZ 0 15259 1] endobj 13176 0 obj [1225 0 R/XYZ 0 15259 1] endobj 13177 0 obj [1251 0 R/XYZ 0 15259 1] endobj 13178 0 obj [1294 0 R/XYZ 0 15259 1] endobj 13179 0 obj [1306 0 R/XYZ 0 15259 1] endobj 13180 0 obj [1312 0 R/XYZ 0 15259 1] endobj 13181 0 obj [1436 0 R/XYZ 0 15259 1] endobj 13182 0 obj [1457 0 R/XYZ 0 15259 1] endobj 13183 0 obj [1459 0 R/XYZ 0 15259 1] endobj 13184 0 obj [1526 0 R/XYZ 0 15259 1] endobj 13185 0 obj [1530 0 R/XYZ 0 15259 1] endobj 13186 0 obj [1131 0 R/XYZ 0 15259 1] endobj 13187 0 obj [374 0 R/XYZ 0 15259 1] endobj 13188 0 obj [374 0 R/XYZ 0 15259 1] endobj 13189 0 obj [374 0 R/XYZ 0 15259 1] endobj 13190 0 obj [374 0 R/XYZ 0 15259 1] endobj 13191 0 obj [374 0 R/XYZ 0 15259 1] endobj 13192 0 obj <> endobj 13193 0 obj [1091 0 R/XYZ 0 15259 1] endobj 13194 0 obj [1093 0 R/XYZ 0 15259 1] endobj 13195 0 obj [1445 0 R/XYZ 0 15259 1] endobj 13196 0 obj [1449 0 R/XYZ 0 15259 1] endobj 13197 0 obj [1455 0 R/XYZ 0 15259 1] endobj 13198 0 obj [1457 0 R/XYZ 0 15259 1] endobj 13199 0 obj [1458 0 R/XYZ 0 15259 1] endobj 13200 0 obj [1463 0 R/XYZ 0 15259 1] endobj 13201 0 obj [1475 0 R/XYZ 0 15259 1] endobj 13202 0 obj [1595 0 R/XYZ 0 15259 1] endobj 13203 0 obj [1037 0 R/XYZ 0 15259 1] endobj 13204 0 obj [753 0 R/XYZ 0 15259 1] endobj 13205 0 obj [747 0 R/XYZ 0 15259 1] endobj 13206 0 obj [748 0 R/XYZ 0 15259 1] endobj 13207 0 obj [747 0 R/XYZ 0 15259 1] endobj 13208 0 obj [748 0 R/XYZ 0 15259 1] endobj 13209 0 obj [671 0 R/XYZ 0 15259 1] endobj 13210 0 obj [673 0 R/XYZ 0 15259 1] endobj 13211 0 obj [845 0 R/XYZ 0 15259 1] endobj 13212 0 obj [1623 0 R/XYZ 0 15259 1] endobj 13213 0 obj [1654 0 R/XYZ 0 15259 1] endobj 13214 0 obj [750 0 R/XYZ 0 15259 1] endobj 13215 0 obj [764 0 R/XYZ 0 15259 1] endobj 13216 0 obj [1351 0 R/XYZ 0 15259 1] endobj 13217 0 obj [429 0 R/XYZ 0 15259 1] endobj 13218 0 obj [1087 0 R/XYZ 0 15259 1] endobj 13219 0 obj [1399 0 R/XYZ 0 15259 1] endobj 13220 0 obj [818 0 R/XYZ 0 15259 1] endobj 13221 0 obj [542 0 R/XYZ 0 15259 1] endobj 13222 0 obj [424 0 R/XYZ 0 15259 1] endobj 13223 0 obj [1654 0 R/XYZ 0 15259 1] endobj 13224 0 obj [426 0 R/XYZ 0 15259 1] endobj 13225 0 obj [424 0 R/XYZ 0 15259 1] endobj 13226 0 obj [426 0 R/XYZ 0 15259 1] endobj 13227 0 obj [424 0 R/XYZ 0 15259 1] endobj 13228 0 obj [468 0 R/XYZ 0 15259 1] endobj 13229 0 obj [448 0 R/XYZ 0 15259 1] endobj 13230 0 obj [448 0 R/XYZ 0 15259 1] endobj 13231 0 obj [448 0 R/XYZ 0 15259 1] endobj 13232 0 obj [424 0 R/XYZ 0 15259 1] endobj 13233 0 obj [468 0 R/XYZ 0 15259 1] endobj 13234 0 obj [424 0 R/XYZ 0 15259 1] endobj 13235 0 obj [468 0 R/XYZ 0 15259 1] endobj 13236 0 obj [468 0 R/XYZ 0 15259 1] endobj 13237 0 obj [468 0 R/XYZ 0 15259 1] endobj 13238 0 obj [471 0 R/XYZ 0 15259 1] endobj 13239 0 obj [423 0 R/XYZ 0 15259 1] endobj 13240 0 obj [424 0 R/XYZ 0 15259 1] endobj 13241 0 obj [468 0 R/XYZ 0 15259 1] endobj 13242 0 obj [468 0 R/XYZ 0 15259 1] endobj 13243 0 obj [429 0 R/XYZ 0 15259 1] endobj 13244 0 obj [1654 0 R/XYZ 0 15259 1] endobj 13245 0 obj [426 0 R/XYZ 0 15259 1] endobj 13246 0 obj [464 0 R/XYZ 0 15259 1] endobj 13247 0 obj [423 0 R/XYZ 0 15259 1] endobj 13248 0 obj [424 0 R/XYZ 0 15259 1] endobj 13249 0 obj [463 0 R/XYZ 0 15259 1] endobj 13250 0 obj [464 0 R/XYZ 0 15259 1] endobj 13251 0 obj [468 0 R/XYZ 0 15259 1] endobj 13252 0 obj [529 0 R/XYZ 0 15259 1] endobj 13253 0 obj [549 0 R/XYZ 0 15259 1] endobj 13254 0 obj [553 0 R/XYZ 0 15259 1] endobj 13255 0 obj [586 0 R/XYZ 0 15259 1] endobj 13256 0 obj [587 0 R/XYZ 0 15259 1] endobj 13257 0 obj [605 0 R/XYZ 0 15259 1] endobj 13258 0 obj [632 0 R/XYZ 0 15259 1] endobj 13259 0 obj [634 0 R/XYZ 0 15259 1] endobj 13260 0 obj [641 0 R/XYZ 0 15259 1] endobj 13261 0 obj [642 0 R/XYZ 0 15259 1] endobj 13262 0 obj [659 0 R/XYZ 0 15259 1] endobj 13263 0 obj [665 0 R/XYZ 0 15259 1] endobj 13264 0 obj [709 0 R/XYZ 0 15259 1] endobj 13265 0 obj [710 0 R/XYZ 0 15259 1] endobj 13266 0 obj [720 0 R/XYZ 0 15259 1] endobj 13267 0 obj [722 0 R/XYZ 0 15259 1] endobj 13268 0 obj [747 0 R/XYZ 0 15259 1] endobj 13269 0 obj [750 0 R/XYZ 0 15259 1] endobj 13270 0 obj [753 0 R/XYZ 0 15259 1] endobj 13271 0 obj [756 0 R/XYZ 0 15259 1] endobj 13272 0 obj [764 0 R/XYZ 0 15259 1] endobj 13273 0 obj [770 0 R/XYZ 0 15259 1] endobj 13274 0 obj [794 0 R/XYZ 0 15259 1] endobj 13275 0 obj [818 0 R/XYZ 0 15259 1] endobj 13276 0 obj [851 0 R/XYZ 0 15259 1] endobj 13277 0 obj [853 0 R/XYZ 0 15259 1] endobj 13278 0 obj [858 0 R/XYZ 0 15259 1] endobj 13279 0 obj [868 0 R/XYZ 0 15259 1] endobj 13280 0 obj [874 0 R/XYZ 0 15259 1] endobj 13281 0 obj [898 0 R/XYZ 0 15259 1] endobj 13282 0 obj [900 0 R/XYZ 0 15259 1] endobj 13283 0 obj [932 0 R/XYZ 0 15259 1] endobj 13284 0 obj [1006 0 R/XYZ 0 15259 1] endobj 13285 0 obj [1010 0 R/XYZ 0 15259 1] endobj 13286 0 obj [1025 0 R/XYZ 0 15259 1] endobj 13287 0 obj [1063 0 R/XYZ 0 15259 1] endobj 13288 0 obj [1066 0 R/XYZ 0 15259 1] endobj 13289 0 obj [1087 0 R/XYZ 0 15259 1] endobj 13290 0 obj [1131 0 R/XYZ 0 15259 1] endobj 13291 0 obj [1138 0 R/XYZ 0 15259 1] endobj 13292 0 obj [1140 0 R/XYZ 0 15259 1] endobj 13293 0 obj [1150 0 R/XYZ 0 15259 1] endobj 13294 0 obj [1172 0 R/XYZ 0 15259 1] endobj 13295 0 obj [1187 0 R/XYZ 0 15259 1] endobj 13296 0 obj [1188 0 R/XYZ 0 15259 1] endobj 13297 0 obj [1192 0 R/XYZ 0 15259 1] endobj 13298 0 obj [1198 0 R/XYZ 0 15259 1] endobj 13299 0 obj [1203 0 R/XYZ 0 15259 1] endobj 13300 0 obj [1205 0 R/XYZ 0 15259 1] endobj 13301 0 obj [1217 0 R/XYZ 0 15259 1] endobj 13302 0 obj [1218 0 R/XYZ 0 15259 1] endobj 13303 0 obj [1318 0 R/XYZ 0 15259 1] endobj 13304 0 obj [1332 0 R/XYZ 0 15259 1] endobj 13305 0 obj [1344 0 R/XYZ 0 15259 1] endobj 13306 0 obj [1346 0 R/XYZ 0 15259 1] endobj 13307 0 obj [1348 0 R/XYZ 0 15259 1] endobj 13308 0 obj [1351 0 R/XYZ 0 15259 1] endobj 13309 0 obj [1394 0 R/XYZ 0 15259 1] endobj 13310 0 obj [1396 0 R/XYZ 0 15259 1] endobj 13311 0 obj [1425 0 R/XYZ 0 15259 1] endobj 13312 0 obj [1610 0 R/XYZ 0 15259 1] endobj 13313 0 obj [1177 0 R/XYZ 0 15259 1] endobj 13314 0 obj [1184 0 R/XYZ 0 15259 1] endobj 13315 0 obj [1349 0 R/XYZ 0 15259 1] endobj 13316 0 obj [1351 0 R/XYZ 0 15259 1] endobj 13317 0 obj [1425 0 R/XYZ 0 15259 1] endobj 13318 0 obj [1653 0 R/XYZ 0 15259 1] endobj 13319 0 obj [744 0 R/XYZ 0 15259 1] endobj 13320 0 obj [746 0 R/XYZ 0 15259 1] endobj 13321 0 obj [750 0 R/XYZ 0 15259 1] endobj 13322 0 obj [803 0 R/XYZ 0 15259 1] endobj 13323 0 obj [874 0 R/XYZ 0 15259 1] endobj 13324 0 obj [899 0 R/XYZ 0 15259 1] endobj 13325 0 obj [1623 0 R/XYZ 0 15259 1] endobj 13326 0 obj [361 0 R/XYZ 0 15259 1] endobj 13327 0 obj [373 0 R/XYZ 0 15259 1] endobj 13328 0 obj [367 0 R/XYZ 0 15259 1] endobj 13329 0 obj <> endobj 13330 0 obj <> endobj 13331 0 obj <> endobj 13332 0 obj <> endobj 13333 0 obj <> endobj 13334 0 obj <> endobj 13335 0 obj <> endobj 13336 0 obj [34 0 R/XYZ 50 757 1] endobj 13337 0 obj [358 0 R/XYZ 50 757 1] endobj 13338 0 obj [361 0 R/XYZ 50 757 1] endobj 13339 0 obj [366 0 R/XYZ 50 757 1] endobj 13340 0 obj [371 0 R/XYZ 50 757 1] endobj 13341 0 obj [378 0 R/XYZ 50 757 1] endobj 13342 0 obj [378 0 R/XYZ 50 725 1] endobj 13343 0 obj [378 0 R/XYZ 50 528 1] endobj 13344 0 obj [380 0 R/XYZ 50 528 1] endobj 13345 0 obj [383 0 R/XYZ 50 757 1] endobj 13346 0 obj [388 0 R/XYZ 50 757 1] endobj 13347 0 obj [391 0 R/XYZ 50 528 1] endobj 13348 0 obj [396 0 R/XYZ 50 757 1] endobj 13349 0 obj [399 0 R/XYZ 50 528 1] endobj 13350 0 obj [402 0 R/XYZ 50 757 1] endobj 13351 0 obj [405 0 R/XYZ 50 757 1] endobj 13352 0 obj [407 0 R/XYZ 50 757 1] endobj 13353 0 obj [410 0 R/XYZ 50 528 1] endobj 13354 0 obj [416 0 R/XYZ 50 757 1] endobj 13355 0 obj [416 0 R/XYZ 50 725 1] endobj 13356 0 obj [416 0 R/XYZ 50 560 1] endobj 13357 0 obj [416 0 R/XYZ 50 528 1] endobj 13358 0 obj [418 0 R/XYZ 50 528 1] endobj 13359 0 obj [423 0 R/XYZ 50 528 1] endobj 13360 0 obj [426 0 R/XYZ 50 528 1] endobj 13361 0 obj [429 0 R/XYZ 50 757 1] endobj 13362 0 obj [429 0 R/XYZ 50 528 1] endobj 13363 0 obj [432 0 R/XYZ 50 757 1] endobj 13364 0 obj [432 0 R/XYZ 50 528 1] endobj 13365 0 obj [437 0 R/XYZ 50 757 1] endobj 13366 0 obj [437 0 R/XYZ 50 725 1] endobj 13367 0 obj [437 0 R/XYZ 50 560 1] endobj 13368 0 obj [437 0 R/XYZ 50 528 1] endobj 13369 0 obj [440 0 R/XYZ 50 757 1] endobj 13370 0 obj [440 0 R/XYZ 50 528 1] endobj 13371 0 obj [442 0 R/XYZ 50 528 1] endobj 13372 0 obj [444 0 R/XYZ 50 528 1] endobj 13373 0 obj [448 0 R/XYZ 50 528 1] endobj 13374 0 obj [450 0 R/XYZ 50 757 1] endobj 13375 0 obj [458 0 R/XYZ 50 528 1] endobj 13376 0 obj [463 0 R/XYZ 50 528 1] endobj 13377 0 obj [468 0 R/XYZ 50 528 1] endobj 13378 0 obj [471 0 R/XYZ 50 757 1] endobj 13379 0 obj [471 0 R/XYZ 50 528 1] endobj 13380 0 obj [474 0 R/XYZ 50 757 1] endobj 13381 0 obj [478 0 R/XYZ 50 757 1] endobj 13382 0 obj [478 0 R/XYZ 50 725 1] endobj 13383 0 obj [478 0 R/XYZ 50 528 1] endobj 13384 0 obj [480 0 R/XYZ 50 757 1] endobj 13385 0 obj [487 0 R/XYZ 50 757 1] endobj 13386 0 obj [487 0 R/XYZ 50 560 1] endobj 13387 0 obj [487 0 R/XYZ 50 528 1] endobj 13388 0 obj [493 0 R/XYZ 50 757 1] endobj 13389 0 obj [496 0 R/XYZ 50 757 1] endobj 13390 0 obj [496 0 R/XYZ 50 528 1] endobj 13391 0 obj [499 0 R/XYZ 50 757 1] endobj 13392 0 obj [503 0 R/XYZ 50 528 1] endobj 13393 0 obj [506 0 R/XYZ 50 528 1] endobj 13394 0 obj [509 0 R/XYZ 50 757 1] endobj 13395 0 obj [511 0 R/XYZ 50 757 1] endobj 13396 0 obj [517 0 R/XYZ 50 528 1] endobj 13397 0 obj [519 0 R/XYZ 50 528 1] endobj 13398 0 obj [522 0 R/XYZ 50 757 1] endobj 13399 0 obj [528 0 R/XYZ 50 757 1] endobj 13400 0 obj [528 0 R/XYZ 50 725 1] endobj 13401 0 obj [528 0 R/XYZ 50 528 1] endobj 13402 0 obj [531 0 R/XYZ 50 757 1] endobj 13403 0 obj [535 0 R/XYZ 50 757 1] endobj 13404 0 obj [537 0 R/XYZ 50 528 1] endobj 13405 0 obj [540 0 R/XYZ 50 528 1] endobj 13406 0 obj [542 0 R/XYZ 50 757 1] endobj 13407 0 obj [545 0 R/XYZ 50 757 1] endobj 13408 0 obj [548 0 R/XYZ 50 757 1] endobj 13409 0 obj [551 0 R/XYZ 50 528 1] endobj 13410 0 obj [553 0 R/XYZ 50 528 1] endobj 13411 0 obj [556 0 R/XYZ 50 757 1] endobj 13412 0 obj [558 0 R/XYZ 50 528 1] endobj 13413 0 obj [560 0 R/XYZ 50 757 1] endobj 13414 0 obj [564 0 R/XYZ 50 757 1] endobj 13415 0 obj [568 0 R/XYZ 50 757 1] endobj 13416 0 obj [570 0 R/XYZ 50 528 1] endobj 13417 0 obj [574 0 R/XYZ 50 757 1] endobj 13418 0 obj [576 0 R/XYZ 50 757 1] endobj 13419 0 obj [579 0 R/XYZ 50 757 1] endobj 13420 0 obj [583 0 R/XYZ 50 757 1] endobj 13421 0 obj [585 0 R/XYZ 50 757 1] endobj 13422 0 obj [591 0 R/XYZ 50 757 1] endobj 13423 0 obj [594 0 R/XYZ 50 528 1] endobj 13424 0 obj [599 0 R/XYZ 50 757 1] endobj 13425 0 obj [599 0 R/XYZ 50 528 1] endobj 13426 0 obj [605 0 R/XYZ 50 757 1] endobj 13427 0 obj [605 0 R/XYZ 50 725 1] endobj 13428 0 obj [605 0 R/XYZ 50 528 1] endobj 13429 0 obj [609 0 R/XYZ 50 757 1] endobj 13430 0 obj [609 0 R/XYZ 50 725 1] endobj 13431 0 obj [613 0 R/XYZ 50 757 1] endobj 13432 0 obj [616 0 R/XYZ 50 757 1] endobj 13433 0 obj [619 0 R/XYZ 50 528 1] endobj 13434 0 obj [621 0 R/XYZ 50 528 1] endobj 13435 0 obj [625 0 R/XYZ 50 757 1] endobj 13436 0 obj [627 0 R/XYZ 50 528 1] endobj 13437 0 obj [630 0 R/XYZ 50 757 1] endobj 13438 0 obj [636 0 R/XYZ 50 757 1] endobj 13439 0 obj [640 0 R/XYZ 50 528 1] endobj 13440 0 obj [645 0 R/XYZ 50 757 1] endobj 13441 0 obj [649 0 R/XYZ 50 528 1] endobj 13442 0 obj [651 0 R/XYZ 50 757 1] endobj 13443 0 obj [656 0 R/XYZ 50 757 1] endobj 13444 0 obj [656 0 R/XYZ 50 725 1] endobj 13445 0 obj [656 0 R/XYZ 50 528 1] endobj 13446 0 obj [661 0 R/XYZ 50 757 1] endobj 13447 0 obj [663 0 R/XYZ 50 528 1] endobj 13448 0 obj [665 0 R/XYZ 50 528 1] endobj 13449 0 obj [667 0 R/XYZ 50 528 1] endobj 13450 0 obj [669 0 R/XYZ 50 528 1] endobj 13451 0 obj [671 0 R/XYZ 50 528 1] endobj 13452 0 obj [673 0 R/XYZ 50 528 1] endobj 13453 0 obj [676 0 R/XYZ 50 757 1] endobj 13454 0 obj [684 0 R/XYZ 50 757 1] endobj 13455 0 obj [688 0 R/XYZ 50 757 1] endobj 13456 0 obj [688 0 R/XYZ 50 725 1] endobj 13457 0 obj [688 0 R/XYZ 50 528 1] endobj 13458 0 obj [690 0 R/XYZ 50 757 1] endobj 13459 0 obj [697 0 R/XYZ 50 757 1] endobj 13460 0 obj [697 0 R/XYZ 50 528 1] endobj 13461 0 obj [699 0 R/XYZ 50 528 1] endobj 13462 0 obj [702 0 R/XYZ 50 528 1] endobj 13463 0 obj [704 0 R/XYZ 50 757 1] endobj 13464 0 obj [708 0 R/XYZ 50 528 1] endobj 13465 0 obj [712 0 R/XYZ 50 528 1] endobj 13466 0 obj [720 0 R/XYZ 50 528 1] endobj 13467 0 obj [726 0 R/XYZ 50 528 1] endobj 13468 0 obj [731 0 R/XYZ 50 757 1] endobj 13469 0 obj [731 0 R/XYZ 50 725 1] endobj 13470 0 obj [731 0 R/XYZ 50 528 1] endobj 13471 0 obj [734 0 R/XYZ 50 757 1] endobj 13472 0 obj [740 0 R/XYZ 50 757 1] endobj 13473 0 obj [743 0 R/XYZ 50 757 1] endobj 13474 0 obj [746 0 R/XYZ 50 757 1] endobj 13475 0 obj [753 0 R/XYZ 50 757 1] endobj 13476 0 obj [756 0 R/XYZ 50 757 1] endobj 13477 0 obj [756 0 R/XYZ 50 528 1] endobj 13478 0 obj [761 0 R/XYZ 50 757 1] endobj 13479 0 obj [768 0 R/XYZ 50 528 1] endobj 13480 0 obj [774 0 R/XYZ 50 528 1] endobj 13481 0 obj [779 0 R/XYZ 50 528 1] endobj 13482 0 obj [785 0 R/XYZ 50 757 1] endobj 13483 0 obj [792 0 R/XYZ 50 528 1] endobj 13484 0 obj [794 0 R/XYZ 50 757 1] endobj 13485 0 obj [799 0 R/XYZ 50 757 1] endobj 13486 0 obj [802 0 R/XYZ 50 528 1] endobj 13487 0 obj [808 0 R/XYZ 50 757 1] endobj 13488 0 obj [808 0 R/XYZ 50 725 1] endobj 13489 0 obj [808 0 R/XYZ 50 528 1] endobj 13490 0 obj [814 0 R/XYZ 50 528 1] endobj 13491 0 obj [818 0 R/XYZ 50 528 1] endobj 13492 0 obj [821 0 R/XYZ 50 757 1] endobj 13493 0 obj [823 0 R/XYZ 50 528 1] endobj 13494 0 obj [826 0 R/XYZ 50 528 1] endobj 13495 0 obj [828 0 R/XYZ 50 757 1] endobj 13496 0 obj [833 0 R/XYZ 50 757 1] endobj 13497 0 obj [838 0 R/XYZ 50 757 1] endobj 13498 0 obj [842 0 R/XYZ 50 757 1] endobj 13499 0 obj [845 0 R/XYZ 50 757 1] endobj 13500 0 obj [849 0 R/XYZ 50 757 1] endobj 13501 0 obj [849 0 R/XYZ 50 725 1] endobj 13502 0 obj [849 0 R/XYZ 50 528 1] endobj 13503 0 obj [860 0 R/XYZ 50 757 1] endobj 13504 0 obj [864 0 R/XYZ 50 757 1] endobj 13505 0 obj [866 0 R/XYZ 50 528 1] endobj 13506 0 obj [870 0 R/XYZ 50 757 1] endobj 13507 0 obj [873 0 R/XYZ 50 528 1] endobj 13508 0 obj [877 0 R/XYZ 50 528 1] endobj 13509 0 obj [879 0 R/XYZ 50 528 1] endobj 13510 0 obj [882 0 R/XYZ 50 757 1] endobj 13511 0 obj [889 0 R/XYZ 50 757 1] endobj 13512 0 obj [892 0 R/XYZ 50 757 1] endobj 13513 0 obj [894 0 R/XYZ 50 528 1] endobj 13514 0 obj [897 0 R/XYZ 50 528 1] endobj 13515 0 obj [904 0 R/XYZ 50 528 1] endobj 13516 0 obj [909 0 R/XYZ 50 757 1] endobj 13517 0 obj [916 0 R/XYZ 50 757 1] endobj 13518 0 obj [919 0 R/XYZ 50 757 1] endobj 13519 0 obj [926 0 R/XYZ 50 757 1] endobj 13520 0 obj [930 0 R/XYZ 50 757 1] endobj 13521 0 obj [932 0 R/XYZ 50 757 1] endobj 13522 0 obj [935 0 R/XYZ 50 757 1] endobj 13523 0 obj [938 0 R/XYZ 50 757 1] endobj 13524 0 obj [943 0 R/XYZ 50 757 1] endobj 13525 0 obj [943 0 R/XYZ 50 725 1] endobj 13526 0 obj [943 0 R/XYZ 50 528 1] endobj 13527 0 obj [945 0 R/XYZ 50 528 1] endobj 13528 0 obj [947 0 R/XYZ 50 528 1] endobj 13529 0 obj [951 0 R/XYZ 50 528 1] endobj 13530 0 obj [961 0 R/XYZ 50 757 1] endobj 13531 0 obj [964 0 R/XYZ 50 528 1] endobj 13532 0 obj [968 0 R/XYZ 50 757 1] endobj 13533 0 obj [974 0 R/XYZ 50 528 1] endobj 13534 0 obj [977 0 R/XYZ 50 757 1] endobj 13535 0 obj [983 0 R/XYZ 50 757 1] endobj 13536 0 obj [983 0 R/XYZ 50 528 1] endobj 13537 0 obj [988 0 R/XYZ 50 757 1] endobj 13538 0 obj [990 0 R/XYZ 50 528 1] endobj 13539 0 obj [995 0 R/XYZ 50 757 1] endobj 13540 0 obj [1001 0 R/XYZ 50 757 1] endobj 13541 0 obj [1001 0 R/XYZ 50 725 1] endobj 13542 0 obj [1001 0 R/XYZ 50 528 1] endobj 13543 0 obj [1003 0 R/XYZ 50 528 1] endobj 13544 0 obj [1009 0 R/XYZ 50 560 1] endobj 13545 0 obj [1009 0 R/XYZ 50 528 1] endobj 13546 0 obj [1019 0 R/XYZ 50 528 1] endobj 13547 0 obj [1021 0 R/XYZ 50 757 1] endobj 13548 0 obj [1023 0 R/XYZ 50 757 1] endobj 13549 0 obj [1025 0 R/XYZ 50 757 1] endobj 13550 0 obj [1030 0 R/XYZ 50 528 1] endobj 13551 0 obj [1036 0 R/XYZ 50 757 1] endobj 13552 0 obj [1039 0 R/XYZ 50 528 1] endobj 13553 0 obj [1044 0 R/XYZ 50 757 1] endobj 13554 0 obj [1049 0 R/XYZ 50 528 1] endobj 13555 0 obj [1051 0 R/XYZ 50 757 1] endobj 13556 0 obj [1055 0 R/XYZ 50 757 1] endobj 13557 0 obj [1055 0 R/XYZ 50 725 1] endobj 13558 0 obj [1055 0 R/XYZ 50 528 1] endobj 13559 0 obj [1059 0 R/XYZ 50 757 1] endobj 13560 0 obj [1063 0 R/XYZ 50 757 1] endobj 13561 0 obj [1068 0 R/XYZ 50 757 1] endobj 13562 0 obj [1070 0 R/XYZ 50 528 1] endobj 13563 0 obj [1076 0 R/XYZ 50 757 1] endobj 13564 0 obj [1078 0 R/XYZ 50 757 1] endobj 13565 0 obj [1082 0 R/XYZ 50 757 1] endobj 13566 0 obj [1082 0 R/XYZ 50 725 1] endobj 13567 0 obj [1082 0 R/XYZ 50 528 1] endobj 13568 0 obj [1087 0 R/XYZ 50 757 1] endobj 13569 0 obj [1103 0 R/XYZ 50 757 1] endobj 13570 0 obj [1106 0 R/XYZ 50 757 1] endobj 13571 0 obj [1111 0 R/XYZ 50 528 1] endobj 13572 0 obj [1115 0 R/XYZ 50 757 1] endobj 13573 0 obj [1118 0 R/XYZ 50 757 1] endobj 13574 0 obj [1118 0 R/XYZ 50 528 1] endobj 13575 0 obj [1120 0 R/XYZ 50 757 1] endobj 13576 0 obj [1131 0 R/XYZ 50 757 1] endobj 13577 0 obj [1134 0 R/XYZ 50 757 1] endobj 13578 0 obj [1137 0 R/XYZ 50 757 1] endobj 13579 0 obj [1144 0 R/XYZ 50 528 1] endobj 13580 0 obj [1148 0 R/XYZ 50 757 1] endobj 13581 0 obj [1148 0 R/XYZ 50 725 1] endobj 13582 0 obj [1150 0 R/XYZ 50 528 1] endobj 13583 0 obj [1158 0 R/XYZ 50 757 1] endobj 13584 0 obj [1166 0 R/XYZ 50 528 1] endobj 13585 0 obj [1171 0 R/XYZ 50 528 1] endobj 13586 0 obj [1177 0 R/XYZ 50 560 1] endobj 13587 0 obj [1177 0 R/XYZ 50 528 1] endobj 13588 0 obj [1180 0 R/XYZ 50 528 1] endobj 13589 0 obj [1183 0 R/XYZ 50 757 1] endobj 13590 0 obj [1183 0 R/XYZ 50 528 1] endobj 13591 0 obj [1186 0 R/XYZ 50 757 1] endobj 13592 0 obj [1191 0 R/XYZ 50 528 1] endobj 13593 0 obj [1198 0 R/XYZ 50 528 1] endobj 13594 0 obj [1207 0 R/XYZ 50 757 1] endobj 13595 0 obj [1214 0 R/XYZ 50 757 1] endobj 13596 0 obj [1217 0 R/XYZ 50 757 1] endobj 13597 0 obj [1221 0 R/XYZ 50 757 1] endobj 13598 0 obj [1221 0 R/XYZ 50 725 1] endobj 13599 0 obj [1223 0 R/XYZ 50 757 1] endobj 13600 0 obj [1228 0 R/XYZ 50 757 1] endobj 13601 0 obj [1228 0 R/XYZ 50 528 1] endobj 13602 0 obj [1231 0 R/XYZ 50 757 1] endobj 13603 0 obj [1234 0 R/XYZ 50 757 1] endobj 13604 0 obj [1242 0 R/XYZ 50 528 1] endobj 13605 0 obj [1244 0 R/XYZ 50 528 1] endobj 13606 0 obj [1250 0 R/XYZ 50 757 1] endobj 13607 0 obj [1264 0 R/XYZ 50 528 1] endobj 13608 0 obj [1268 0 R/XYZ 50 757 1] endobj 13609 0 obj [1270 0 R/XYZ 50 757 1] endobj 13610 0 obj [1272 0 R/XYZ 50 757 1] endobj 13611 0 obj [1276 0 R/XYZ 50 757 1] endobj 13612 0 obj [1276 0 R/XYZ 50 725 1] endobj 13613 0 obj [1276 0 R/XYZ 50 528 1] endobj 13614 0 obj [1282 0 R/XYZ 50 757 1] endobj 13615 0 obj [1284 0 R/XYZ 50 528 1] endobj 13616 0 obj [1292 0 R/XYZ 50 757 1] endobj 13617 0 obj [1304 0 R/XYZ 50 757 1] endobj 13618 0 obj [1311 0 R/XYZ 50 757 1] endobj 13619 0 obj [1322 0 R/XYZ 50 528 1] endobj 13620 0 obj [1327 0 R/XYZ 50 757 1] endobj 13621 0 obj [1327 0 R/XYZ 50 725 1] endobj 13622 0 obj [1327 0 R/XYZ 50 528 1] endobj 13623 0 obj [1335 0 R/XYZ 50 757 1] endobj 13624 0 obj [1342 0 R/XYZ 50 757 1] endobj 13625 0 obj [1342 0 R/XYZ 50 528 1] endobj 13626 0 obj [1351 0 R/XYZ 50 528 1] endobj 13627 0 obj [1353 0 R/XYZ 50 757 1] endobj 13628 0 obj [1355 0 R/XYZ 50 757 1] endobj 13629 0 obj [1357 0 R/XYZ 50 757 1] endobj 13630 0 obj [1364 0 R/XYZ 50 757 1] endobj 13631 0 obj [1368 0 R/XYZ 50 757 1] endobj 13632 0 obj [1376 0 R/XYZ 50 528 1] endobj 13633 0 obj [1379 0 R/XYZ 50 757 1] endobj 13634 0 obj [1381 0 R/XYZ 50 757 1] endobj 13635 0 obj [1386 0 R/XYZ 50 757 1] endobj 13636 0 obj [1386 0 R/XYZ 50 725 1] endobj 13637 0 obj [1386 0 R/XYZ 50 528 1] endobj 13638 0 obj [1394 0 R/XYZ 50 528 1] endobj 13639 0 obj [1399 0 R/XYZ 50 528 1] endobj 13640 0 obj [1403 0 R/XYZ 50 757 1] endobj 13641 0 obj [1408 0 R/XYZ 50 528 1] endobj 13642 0 obj [1416 0 R/XYZ 50 528 1] endobj 13643 0 obj [1418 0 R/XYZ 50 528 1] endobj 13644 0 obj [1423 0 R/XYZ 50 757 1] endobj 13645 0 obj [1423 0 R/XYZ 50 725 1] endobj 13646 0 obj [1423 0 R/XYZ 50 528 1] endobj 13647 0 obj [1425 0 R/XYZ 50 528 1] endobj 13648 0 obj [1428 0 R/XYZ 50 528 1] endobj 13649 0 obj [1433 0 R/XYZ 50 757 1] endobj 13650 0 obj [1436 0 R/XYZ 50 757 1] endobj 13651 0 obj [1439 0 R/XYZ 50 757 1] endobj 13652 0 obj [1439 0 R/XYZ 50 528 1] endobj 13653 0 obj [1468 0 R/XYZ 50 528 1] endobj 13654 0 obj [1474 0 R/XYZ 50 528 1] endobj 13655 0 obj [1480 0 R/XYZ 50 757 1] endobj 13656 0 obj [1480 0 R/XYZ 50 725 1] endobj 13657 0 obj [1480 0 R/XYZ 50 528 1] endobj 13658 0 obj [1484 0 R/XYZ 50 528 1] endobj 13659 0 obj [1486 0 R/XYZ 50 528 1] endobj 13660 0 obj [1489 0 R/XYZ 50 528 1] endobj 13661 0 obj [1538 0 R/XYZ 50 757 1] endobj 13662 0 obj [1541 0 R/XYZ 50 757 1] endobj 13663 0 obj [1593 0 R/XYZ 50 757 1] endobj 13664 0 obj [1593 0 R/XYZ 50 725 1] endobj 13665 0 obj [1597 0 R/XYZ 50 528 1] endobj 13666 0 obj [1605 0 R/XYZ 50 757 1] endobj 13667 0 obj [1648 0 R/XYZ 50 757 1] endobj 13668 0 obj [1812 0 R/XYZ 50 757 1] endobj 13669 0 obj [1812 0 R/XYZ 50 528 1] endobj 13670 0 obj [2081 0 R/XYZ 50 528 1] endobj 13671 0 obj [2352 0 R/XYZ 50 757 1] endobj 13672 0 obj [2920 0 R/XYZ 50 757 1] endobj 13673 0 obj [3547 0 R/XYZ 50 528 1] endobj 13674 0 obj [4252 0 R/XYZ 50 528 1] endobj 13675 0 obj [5255 0 R/XYZ 50 757 1] endobj 13676 0 obj [5495 0 R/XYZ 50 528 1] endobj 13677 0 obj [5716 0 R/XYZ 50 757 1] endobj 13678 0 obj [6038 0 R/XYZ 50 757 1] endobj 13679 0 obj [6038 0 R/XYZ 50 528 1] endobj 13680 0 obj [6370 0 R/XYZ 50 757 1] endobj 13681 0 obj [6717 0 R/XYZ 50 528 1] endobj 13682 0 obj [7234 0 R/XYZ 50 560 1] endobj 13683 0 obj [7234 0 R/XYZ 50 528 1] endobj 13684 0 obj [7595 0 R/XYZ 50 528 1] endobj 13685 0 obj [9099 0 R/XYZ 50 528 1] endobj 13686 0 obj [9099 0 R/XYZ 50 757 1] endobj 13687 0 obj [9381 0 R/XYZ 50 528 1] endobj 13688 0 obj [12054 0 R/XYZ 50 757 1] endobj 13689 0 obj [12598 0 R/XYZ 50 757 1] endobj 13690 0 obj [12870 0 R/XYZ 50 528 1] endobj 13691 0 obj [13192 0 R/XYZ 50 757 1] endobj 13692 0 obj [13329 0 R/XYZ 50 757 1] endobj 13693 0 obj [13329 0 R/XYZ 50 560 1] endobj 13694 0 obj [13329 0 R/XYZ 50 528 1] endobj 13695 0 obj [5 0 R/Fit] endobj 13696 0 obj <> stream q /X1 Do Q q endstream endobj 13697 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 13698 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 13699 0 obj <> stream HWm6ί##x tQdr7QE;ە6Q4I7_U`mW߬N]!'`x}O >%ا{M{M{M`y3} >'{h]1j]| Pj]| Q>{(B Q{OPkCS TEֵ!`Vum"{j]պ6D= B Q{OPkZ׆(ZAֵ!`Vum@umٻ6@umٻ6D]պ6D=JB Q{OPkZ׆(ZIֵ!`Vum"TET+ պ6D=JB Pj]j%Z׆(ZIֵEֵ!gEֵ!gwm"TETպ6D=*B Pj]jZ׆(ZEֵPkCS"TETպ6@um"{Uj]jZv B Q>{(B Q>{׆(}F}W͝YT7Ἥn~| NzGCWC1 z:)K .g ЋSW^ᕈ]Q7N~}X0|5pWNt:)D&z}qFq Wa@A)d[gPr ~zN9ddeG2>m(3Xb2U}OxEG9cuSL=U]1mWH~_`gjD!a*R^oyXf(Y%yeh7P*eZwqIyb̶ٱVLswójlm3ulܹ\\'U[#zn+W>.7!(8iq8|Tm˾j <ܵ1PL-;ָOֽ5TKy^,La7Df=s?oj\ݶ˜7,܆a݄t>wűgWB4MX"*uO(0Ftzvwuګĕ 2ewwIy%vGwZi^jZ]T~~wl%$?e7?i@3[׺¾6 Twyl }C}=P پ_/BE8E /NS~$i7+\^f$Ѩ;hwnF_zJ*_8|/@K3[,n Ccs&lc ؂fapjaP[ ?O]}]b 䮸Rpr^2Ya(YrLlUA%.>/՘s|tZjV WDK3N;uj R) =Q*@G̛oSg nNEьm$ܣ9nB OA+"TB8Y:*jk:F:ݕl=p[<׮bI&,_yv$.] jF,Rk}8G|'X55A#^ܢw )8_3~; ?vxBR:6Qƶ0u {JԨN$_MwefNj}_P㜳\2_q"h|=shʒiiizechӣlmdTzaF&4[fƏJ/:`c\ #> qUʴHWpna$HX,c 9Uͨ#l͇邃n#r釺9`IԜ#[^ tz,Lfz8ns4zvE;͓4A8;qcc.{%EJ>;5[ F A24bL^IR[/^yTPn +#ӯ|D"S#_hPP/rIC%RD㷐R8Hbd+Z2"2 0h`AԮ| o5x~kq s)v4U؈)'87 ѩYi߮"5p <2)J+O,+UUanęS0|_0<߹T6;ɁRP:t]Cۄ1 (jウ@ ͷ@bB&"˴78 xc}.FZ@'#êǧal3"{9e7iƀnGXէh Iɡ$e~&yΥ4HJODMdHzxxl axS@' آRF6鶞4hm8 Aӻ#?5w(1ߘ+ |m~`? e*0|ń6cl9[{Rn/J8rԵs qY1{\aGH1:UfD[3ë0#+`{@8&!%2*f8.T1f-9KpFps@p~OÖugI8ÕQa3 qV <.tad5_YbK]Y]Z F0w >ye%T%Yh'Gbc?nrFlHpB(@b$$0y:]fΥUm4󃒹@KAEF(D[)g-_`M+ZtnMYyJBrېf?q\E$o'i?ɣ=( inc> stream q /X1 Do Q q endstream endobj 13701 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 13702 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 13703 0 obj <> stream HtWmo6 _Щde8m v܇0hMv[v))!)B^@=u$j+P_g@ä;MgK_Т\N5:L*nv;Ŷq}[]S?=mA f.$4t6HaM O|2q}1J07FH-/rsڰ7e ZE[P'N8"NNw?RN O$ 4P^FO6pc5IMo"耧Nڌ07zeO#&xE.CʩBrf\nx0۬ͱpwccrHO4O"37Ar e^70`i=r#63#b~4c ʬ1NŐx=#]hݩݍ hs4ƒtKsj*dC""H \[8*}-ն8PEze Dڛ8"d1 R0&"Htw0|p, jQV|4i28ZΒEm'?\Me2Jd<~ܬ~aY/(Oendstream endobj 13704 0 obj <>/P 1386 0 R/Type/Annot/A 15616 0 R/Subtype/Link/Rect[130.078995 539.020996 337.890015 673.916016]/Border[0 0 0]/H/N>> endobj 13705 0 obj <>/P 1386 0 R/Type/Annot/A 15508 0 R/Subtype/Link/Rect[93.5999985 404.627991 199.356003 424.308014]/Border[0 0 0]/H/N>> endobj 13706 0 obj <>/P 1386 0 R/Type/Annot/A 15440 0 R/Subtype/Link/Rect[93.6000977 188.628006 182.904007 208.307999]/Border[0 0 0]/H/N>> endobj 13707 0 obj <> stream q /X1 Do Q q endstream endobj 13708 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 13709 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 13710 0 obj <> stream H|W]o6}ׯбHJP!nZ4@f]  #iX_+qbV(Fzx?(߮&i1'8<br!YcV+%Xwα,AȽ ^%r/ {'O rS>%ܧ}JOp!>C-r%o-~;~G!9>Gs=,'Bbm$Ԇ,"!,>Ā݇f 1`QjV 1"Rb"ܣ "!,=J RbE6ĀEGDjC X{ZA64HmpR+Ԇ(Hm$RbCLԆvbE6ĀEGDjC X{ZI64HmpR+Ԇ(HmiV 1`Qj%,"!,=J$Rb"ܣJ"!F vbE6Ā݇,"!,=JmB6ĀEGMԆf 1`Qj"!,=JmB64HmpR 1`Qj"!YDjC X{ڄHmpR 6JԆ,"!,>ĀE<߳l[_`<_Oma=qAweimx:yUSY[&ϥ\;.XU:SO~$lɹ`V7mʴ :*jx˯O}zrh{,EQeҠUJe)qzS9:<} WlJò^᛺{nڭF'a0vk?0CUeG-1DۿXbK4I\TEIDhIսݱ%dVFc[ncJJ4@&IPӕ-5S붡Ff:;,9{ˤLQ62ޠ{UBRy dTlB'J4p8h_zwRAҁӲSR.sJΒ\@%~SV]= \fyP ]Yd[X!)i]G= OiOxkgܭQw .ۛZrm\`{AᇱV㯺xRve\8T6s36iwX+uZXzg(4ja^[hKCU7HZgIꉽ\,֮R )j.1:d9%o:D wT?*b2 G;MOnX{ʻiq,5؆.zznԥ}*ЛUoCYҽL'p=y ] "I"7BKS`}-&_]70S$7"l#=&%rYɲc9,,nͲ ]|,">+y_uÞl_<,a<ٚ>_ƒq)L$Ƞ$\$9]ͩl# +Huz#>ǿ7|Y M!endstream endobj 13711 0 obj <> stream q /X1 Do Q q endstream endobj 13712 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 13713 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 13714 0 obj <> stream HWێ|Wt, dgYg6Yy C3rtq$l`=爢.,,f}t3__ˏ4?⟅eChRlM]tͪ(C]/֛mf3/śm-[gY"&ƴb]3ni|yôlMN֌_Tޮ݉8\uF_-Վ9Tytem]I5_m[~IS7Wt_w|6[HlwYX9IN֜,8 $1fIX49%0f%ޝ%F,{^}Pp>Q}Tp'>IJJZZZoFoF}V3p:@i%,`OǯBEc뻧YI/ڽ_*00j@MV?瓳ޤl>W3W5q1!X]oGsc8iyYtgczns9US3#v$f|o܍9%sM|A1i:H7zc]۔LF}'Lߛ~.AmcbU&mCw4^Lgr5MF$Mf뾹hh+d{y&u2]=tiOϸO˕{ܙntcWmWh@8 <>{nlTO6g DKh>6qxw>j~)_|DZy \$ˏ 6ut36kg޿^1<&坯}#˒뼣<~ͱ4_4W4OˑϳLqu9Y70Ok@l%5suJسwqF\l9 ۖۓ_ZvށV_>a@x&1feRZhEVTZ h%VRZЪV*UZi@VZ jVVVZheK%1fi--rJ-KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KYZKbV9/ObM[\m L;+=L)WI5<*QAŰkF~gֳ mU/.xؙ> stream q /X1 Do Q q endstream endobj 13716 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 13717 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 13718 0 obj <> stream HWoF^( _$ 4[4*S}8lr"ߛw(RɣrF;~7Zo~yruzY5.A|e¨7j$~D%Q8uL$x GV8F,"Kkb<`qZK,F-po{ [Nw=p{{^/B/B/R/R/RJJ}p/:Ai96K h-Lj%s,@k9F,cĒ9Y#p/Zk@k9F,^րr,@k9F,^րrXhXdrXh{ZZ˱{ZZ1bcĂrX=" cĒ9F,cZ1bcEk-h-" cEk-h-Lj܋ZZEh-Lj܋ZZ ,Z #p/ZkAk96Kh-Lj%s,@k9F,cĒ9Y#p/Z@k9F,^ցr,@k9F,^ցrXhXdrXh{ZZ˱{ZZ1bcărX=" cĒ9F,^ݫ8n?(oں"`Zh9倖Zhy偖Z*V URh@ZЪV*VZher1bI-Ѱ@K -2@Kހs0YB cZ"c1Z #7 ; X}Ƚat곸hZ"c4-{ r1dȽ 2@KނsF%roA9F#  h[{D-=hZ"c4VH-Kjq%r@9Fw Qh;{(D=!h;{C>w w%r@9F@KށśȽ=K-KjqȽYL{&FC>n8A~iuWW|nVOG;\Oӛv]TW &d\QwiJ+ulisUy;Ǯåf}N:WG ?}z^j]i\;m(pgy0F)4>4qx*/0y>|YLђVt,;k lOwەXӫev"ಭ-LnlGMz~ܷ]zuɌztڌ4Ag^YUL O]~?jpHx6-4^qpH+iv\e4~ݴfei11 }hwI+>4Ywt*XWk]e]nLbѪU]ՙ$ >n"v/G y FM7 I<` !D6!~$$ܛD>S\\Jfb7-Wb(78LnU\"ޮ}2 U\%Hu"hBTѦ϶6-S;Rگ%1Šv/w8,a}l-I_DpcƋP5i1<~:ؑ5%с:f N Q-ӄ"tI,1"OFd|rXV qݨ moDp^ >$z|%! Εc7=d"OCeu<;Mk̆pu k ,:f|HiM`6"-a)P4H^'D?*T3I5] Bnl8\s d fs;3_O<^]<[f @ZzR1sw4زkMN}n5; q#<;eƆk&փ˝vC?:A#Գ#5 A\N)戓r`N:}5o ࢘m Geϓ k{Ӥ^~ò1 P;7dܞ+#QΣMANF>q,0v/PQ7 {T_^,jQvJ.:h;pby!F`,d,0GP"z0Ckf>ͼ[1o(F}?C K`)re^;s{åW o[RzOs?iZendstream endobj 13719 0 obj <> stream q /X1 Do Q q endstream endobj 13720 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 13721 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 13722 0 obj <> stream HWnH}Wb_C/l6gg&p6Y F-f%R#Rx~xY]r.LH>SU}&/P,3)r1xm:]roz/>]<m5{],'-X$H`LN,2l񥡙)M(iߴrU8{p~YőT t#Z:itWgӀHFA$C.f!hBJ\na=tĝ> B\ Jm8v`3{7K"I|NB82bYCVİv)}b+Ob+OfkOfkOfkOaOaO}Ĩ<>GSoSoS3cO}̨=1>;F;F'S0=JƴZ!WO1`1|Cbb\K1d1=*ƵCsb\K1`1kZ!QV1R Yzϵq-ŐŨ\R Xk),FZŸbb{Uk)iƵCbb\K1d),_=ŀŸbb{Ռk),FZ͸bb\K1d1=jƵCsf\K1`1k5Z!QV3R Yzϵq-ŐŨ\Rl;3k),_=ŀŸbS Yzq-ŐŨ\kR Yzϵq-ŀŸbb{5k),FZøbb\K1d1=ƵCsa\K1`1k Z!Q0v1|Z!WO1d I#BoΞ.fR,nHt`Xlgsg/ȋ(OdDK:_u\oL!pۡXyYSa?~=_3qHtOeAkLq̋ʪWڡj#'ݴo:%l#9F((yu[U"tuHnK0D.6Iz\fU* q1a-]2{PYbelR䕨mI.=& Hi3Λ/sXQSVw\CK%ݼfTǰM^ߟI)Y=B^=Nx\W(=X?A̺1E-50W.T_M DLW3|OamVb=eN ~yPV*HBI+O 6/nO)A_(= @c8XZcLr>8 "I.`_! Z Շ}QFy7WL !gOvb*cUpʾ6w@mmb Mc<C6։;Y9Qɶ U*Dc(vdYcu+9#ܮf_Ne?j|%\>4J5_Bht| 6\ͦ t2OgHtHSBzs[u\U4 u7%-(Hӊ}UTu`DEY,WP:Lm_wHSj鬷mV Yn?E*u7m;t[# c{`Fp]yRߕK}Zg/CdSdCIDP9Rab <\)$dC7VؔP!:1I8Ęu$d*\mVg"ݧA9;|"H "Rg}N%搉򆔍?-t[I<a\G (,uW41Рvr&Ҧd, k)ߘUj)ݦ0\4=} LnEBm$}:@beѮ!%7QN~0BN@*3xYuUqz&mЦ@}iQYl7.toMFvە[}Omɍ31ƙV99wjCw9F}3{Et;z!`l15)mMT \+}9Nx}`UtZ8GE.t#M>L,a8H>3Ғ=B%3.%lfɉS.XM5vuVAb1aP XvEj<0I aʴsU߸I4!;!# l guzzNbFf.0gԦvL缾˫ml.lwxuvպ+gMJ"4mM4w tLCĦnUFzWx$XƤ͋U[B{c3QcL۬MKB>ƮqU7݃n6+V ͗2nbmzy:IKy,~_~zǯQ%e¶O@w_^ZӪyy6poŪ *&8dsħ%UݭK0C Qv^-=n@_ ER n] Z7BcIN;CR2I=X4C> WaWG!o?<\zp)z'jY0 `: p4wonͧ(P[ݩZjWBǀ*C=ŷzZz|*@渻ؗSYYxY&`1܋`\gYO:L4Ovn><,Ɠ9Ϻ]TpcJqhxA(dfˬ= żU˲6{#{>`iX҄P 掚v73\guGh9UǡlQmr;1Ӂ#y$ ,H@L!> Lq;X Qh_\ZN!y?Ad0~"uG&\iTP*gqCHHϭ"Pd!D7t-%+֕ޒ~ d;kͣ)c'9IL4f.؇#k99Qc4TC1JM4p7GU]Ax01DxL&M I S#DZ 7Y&h]jɉ`LcjH{:1`% >N߳GS> ]X"[wEkysc4",TWH1C `,0"(Mקt6xmZS U!jyS/g+;ӳr[wSYɃTNzPȮY#aF*Iٽ< hcW O=/f ~*pfrwq#m>[,pDKeSt tߝgXݫBH)D e˻=D"mAHǃlZgep|ЗMKo#-}ӈ0B'Y<ɬ"-y귁n{8H7DM0;r Hɾ`3b t2N3`:ԃ jv aB0Vmg_ 48qLo޴MYĔ'an%}-(<ڧUcٕ %9FǛwQ8l"Aw 8EBxL1/LL&ǛVo`ρendstream endobj 13723 0 obj <>/P 753 0 R/Type/Annot/A 40741 0 R/Subtype/Link/Rect[93.6001968 663.229004 230.136002 682.908997]/Border[0 0 0]/H/N>> endobj 13724 0 obj <> stream q /X1 Do Q q endstream endobj 13725 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 13726 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 13727 0 obj <> stream HWmoGb?:(8FR";')Ҏ3Y p<$z[ū?U~ Uk'#jkdE^T?T^dnzZlz.~M|Z]LLԼ<\j_+iuml0_lg+Mo=ꍦ)jtWJ6ZsV3wz^W^FUmO𩺭u|#dP+.V$C-Mh9O2zzzzzWzWzzzz7z7zzzzwzwzz m,[U`m,C},- R R 2"'kcj 2"'kcj 2"'kcj 2"'kcj lUI R 2J2J2"XP@VeEOX+ 2"XP@VeEOX+ 2"XP@VeEOX+ 2"XP@VeEOX+ ƲU2J2"XP+EP+E@`m,C-}ZE6>a"X@`m,C-}ZE6>a"X@`m,C-}ZE6>a"X@`m,C-}ZE6>a"XV&XP+E@`m,C},CofU|Z]LLԼ\+v5WQ \Uߥ4~|;ؙӟGDžoLmL{zq7lmL=I,kwg<[y{m8YÝ>%9Zh4o} zt;8+j_^Wdbyn7Rli_D,}O|Y?&C# "(z9 -`kWyEZ+/$CCչ lڹse3!Ta7wۻe}6Y 5ko] vp1 !+,"Ef.~*~g#ԤF6| v(qlEc YWUC<Zdtbtً?.^O]T6^;wgP̲w'!=(4&,lB[S /6B W>GELk,P82 uӆBuMvc`ᘀp. nQ[iی)y WSaJ䱩PћkBAZ: ,)->?L[A=˼-Vp?GF s!SC7GSqJєt$ԅBO`E-(Eԡ.D#52Ff::a;{fbm(D)OLɀ8=hJ dtvr;eP8~;xbwUhk&9m&7f]xwq!{zpX3%0UgD=ҳB> p&Ҏ_2"al.Ӛ(?۠.] dDż4;naNGMZ2S@$,<O9)G^rrݮ+p\aΣnR=z:XG_J ;t%-+o<.`w2nL6 oNf|ncS!{n'vؐ)BsdJRADS!ZuLX p{pwj3|)L䫴eFv+گbAĹ{kBԡrv&϶eH| +[7ۗgqhKʕ]2pj4g/$v/rBX2ylUJn( 4l(!õ7-r9m 4'm?"n~c3Qh*IvT6}nؕwX<\ 2`?E@=8Sll׏rN@ӳ|Ti'xrfˢ~|[/9oHMSw+8ڤʵYg`Lpo_k99,'?OlN"ݮwZ֡0]ZĔrIq*BvA'.:,j\2%=%?gIZq6Wh뛫`|y=m4)vQ, >/P 8731 0 R/Type/Annot/A 23406 0 R/Subtype/Link/Rect[190 670 202 678]/Border[0 0 0]/H/N>> endobj 13729 0 obj <>/P 8731 0 R/Type/Annot/A 23357 0 R/Subtype/Link/Rect[274 660 288 668]/Border[0 0 0]/H/N>> endobj 13730 0 obj <>/P 8731 0 R/Type/Annot/A 22653 0 R/Subtype/Link/Rect[290 660 304 668]/Border[0 0 0]/H/N>> endobj 13731 0 obj <>/P 8731 0 R/Type/Annot/A 22597 0 R/Subtype/Link/Rect[151 650 163 658]/Border[0 0 0]/H/N>> endobj 13732 0 obj <>/P 8731 0 R/Type/Annot/A 22041 0 R/Subtype/Link/Rect[190 640 202 648]/Border[0 0 0]/H/N>> endobj 13733 0 obj <>/P 8731 0 R/Type/Annot/A 21973 0 R/Subtype/Link/Rect[151 620 163 628]/Border[0 0 0]/H/N>> endobj 13734 0 obj <>/P 8731 0 R/Type/Annot/A 16048 0 R/Subtype/Link/Rect[190 610 202 618]/Border[0 0 0]/H/N>> endobj 13735 0 obj <>/P 8731 0 R/Type/Annot/A 16044 0 R/Subtype/Link/Rect[298 600 310 608]/Border[0 0 0]/H/N>> endobj 13736 0 obj <>/P 8731 0 R/Type/Annot/A 15685 0 R/Subtype/Link/Rect[190 590 202 598]/Border[0 0 0]/H/N>> endobj 13737 0 obj <>/P 8731 0 R/Type/Annot/A 15617 0 R/Subtype/Link/Rect[289 580 303 588]/Border[0 0 0]/H/N>> endobj 13738 0 obj <>/P 8731 0 R/Type/Annot/A 15509 0 R/Subtype/Link/Rect[151 570 165 578]/Border[0 0 0]/H/N>> endobj 13739 0 obj <>/P 8731 0 R/Type/Annot/A 15441 0 R/Subtype/Link/Rect[167 570 179 578]/Border[0 0 0]/H/N>> endobj 13740 0 obj <>/P 8731 0 R/Type/Annot/A 15028 0 R/Subtype/Link/Rect[190 560 202 568]/Border[0 0 0]/H/N>> endobj 13741 0 obj <>/P 8731 0 R/Type/Annot/A 14974 0 R/Subtype/Link/Rect[263 550 280 559]/Border[0 0 0]/H/N>> endobj 13742 0 obj <>/P 8731 0 R/Type/Annot/A 14771 0 R/Subtype/Link/Rect[281 550 295 558]/Border[0 0 0]/H/N>> endobj 13743 0 obj <>/P 8731 0 R/Type/Annot/A 14568 0 R/Subtype/Link/Rect[297 550 311 558]/Border[0 0 0]/H/N>> endobj 13744 0 obj <>/P 8731 0 R/Type/Annot/A 14508 0 R/Subtype/Link/Rect[151 540 163 548]/Border[0 0 0]/H/N>> endobj 13745 0 obj <>/P 8731 0 R/Type/Annot/A 14448 0 R/Subtype/Link/Rect[151 520 168 529]/Border[0 0 0]/H/N>> endobj 13746 0 obj <>/P 8731 0 R/Type/Annot/A 14406 0 R/Subtype/Link/Rect[169 520 183 528]/Border[0 0 0]/H/N>> endobj 13747 0 obj <>/P 8731 0 R/Type/Annot/A 14174 0 R/Subtype/Link/Rect[185 520 197 528]/Border[0 0 0]/H/N>> endobj 13748 0 obj <>/P 8731 0 R/Type/Annot/A 18895 0 R/Subtype/Link/Rect[190 510 202 518]/Border[0 0 0]/H/N>> endobj 13749 0 obj <>/P 8731 0 R/Type/Annot/A 18857 0 R/Subtype/Link/Rect[270 500 286 509]/Border[0 0 0]/H/N>> endobj 13750 0 obj <>/P 8731 0 R/Type/Annot/A 18831 0 R/Subtype/Link/Rect[287 500 299 508]/Border[0 0 0]/H/N>> endobj 13751 0 obj <>/P 8731 0 R/Type/Annot/A 18797 0 R/Subtype/Link/Rect[269 490 286 499]/Border[0 0 0]/H/N>> endobj 13752 0 obj <>/P 8731 0 R/Type/Annot/A 18764 0 R/Subtype/Link/Rect[287 490 301 498]/Border[0 0 0]/H/N>> endobj 13753 0 obj <>/P 8731 0 R/Type/Annot/A 18725 0 R/Subtype/Link/Rect[151 480 165 488]/Border[0 0 0]/H/N>> endobj 13754 0 obj <>/P 8731 0 R/Type/Annot/A 18693 0 R/Subtype/Link/Rect[167 480 179 488]/Border[0 0 0]/H/N>> endobj 13755 0 obj <>/P 8731 0 R/Type/Annot/A 18656 0 R/Subtype/Link/Rect[190 470 202 478]/Border[0 0 0]/H/N>> endobj 13756 0 obj <>/P 8731 0 R/Type/Annot/A 18642 0 R/Subtype/Link/Rect[151 450 168 459]/Border[0 0 0]/H/N>> endobj 13757 0 obj <>/P 8731 0 R/Type/Annot/A 18614 0 R/Subtype/Link/Rect[169 450 181 458]/Border[0 0 0]/H/N>> endobj 13758 0 obj <>/P 8731 0 R/Type/Annot/A 18586 0 R/Subtype/Link/Rect[255 440 272 449]/Border[0 0 0]/H/N>> endobj 13759 0 obj <>/P 8731 0 R/Type/Annot/A 18562 0 R/Subtype/Link/Rect[272 440 286 448]/Border[0 0 0]/H/N>> endobj 13760 0 obj <>/P 8731 0 R/Type/Annot/A 18494 0 R/Subtype/Link/Rect[288 440 302 448]/Border[0 0 0]/H/N>> endobj 13761 0 obj <>/P 8731 0 R/Type/Annot/A 18482 0 R/Subtype/Link/Rect[151 430 165 438]/Border[0 0 0]/H/N>> endobj 13762 0 obj <>/P 8731 0 R/Type/Annot/A 18445 0 R/Subtype/Link/Rect[167 430 181 438]/Border[0 0 0]/H/N>> endobj 13763 0 obj <>/P 8731 0 R/Type/Annot/A 18422 0 R/Subtype/Link/Rect[183 430 197 438]/Border[0 0 0]/H/N>> endobj 13764 0 obj <>/P 8731 0 R/Type/Annot/A 18385 0 R/Subtype/Link/Rect[199 430 213 438]/Border[0 0 0]/H/N>> endobj 13765 0 obj <>/P 8731 0 R/Type/Annot/A 18323 0 R/Subtype/Link/Rect[215 430 227 438]/Border[0 0 0]/H/N>> endobj 13766 0 obj <>/P 8731 0 R/Type/Annot/A 18285 0 R/Subtype/Link/Rect[190 420 202 428]/Border[0 0 0]/H/N>> endobj 13767 0 obj <>/P 8731 0 R/Type/Annot/A 18229 0 R/Subtype/Link/Rect[289 410 303 418]/Border[0 0 0]/H/N>> endobj 13768 0 obj <>/P 8731 0 R/Type/Annot/A 18183 0 R/Subtype/Link/Rect[151 400 165 408]/Border[0 0 0]/H/N>> endobj 13769 0 obj <>/P 8731 0 R/Type/Annot/A 18066 0 R/Subtype/Link/Rect[167 400 181 408]/Border[0 0 0]/H/N>> endobj 13770 0 obj <>/P 8731 0 R/Type/Annot/A 18045 0 R/Subtype/Link/Rect[183 400 197 408]/Border[0 0 0]/H/N>> endobj 13771 0 obj <>/P 8731 0 R/Type/Annot/A 18021 0 R/Subtype/Link/Rect[199 400 213 408]/Border[0 0 0]/H/N>> endobj 13772 0 obj <>/P 8731 0 R/Type/Annot/A 17996 0 R/Subtype/Link/Rect[215 400 229 408]/Border[0 0 0]/H/N>> endobj 13773 0 obj <>/P 8731 0 R/Type/Annot/A 17971 0 R/Subtype/Link/Rect[231 400 245 408]/Border[0 0 0]/H/N>> endobj 13774 0 obj <>/P 8731 0 R/Type/Annot/A 17950 0 R/Subtype/Link/Rect[247 400 261 408]/Border[0 0 0]/H/N>> endobj 13775 0 obj <>/P 8731 0 R/Type/Annot/A 17922 0 R/Subtype/Link/Rect[263 400 277 408]/Border[0 0 0]/H/N>> endobj 13776 0 obj <>/P 8731 0 R/Type/Annot/A 17903 0 R/Subtype/Link/Rect[279 400 296 409]/Border[0 0 0]/H/N>> endobj 13777 0 obj <>/P 8731 0 R/Type/Annot/A 17824 0 R/Subtype/Link/Rect[297 400 309 408]/Border[0 0 0]/H/N>> endobj 13778 0 obj <>/P 8731 0 R/Type/Annot/A 17804 0 R/Subtype/Link/Rect[255 390 272 399]/Border[0 0 0]/H/N>> endobj 13779 0 obj <>/P 8731 0 R/Type/Annot/A 17768 0 R/Subtype/Link/Rect[272 390 286 398]/Border[0 0 0]/H/N>> endobj 13780 0 obj <>/P 8731 0 R/Type/Annot/A 17737 0 R/Subtype/Link/Rect[151 380 168 389]/Border[0 0 0]/H/N>> endobj 13781 0 obj <>/P 8731 0 R/Type/Annot/A 17600 0 R/Subtype/Link/Rect[169 380 183 388]/Border[0 0 0]/H/N>> endobj 13782 0 obj <>/P 8731 0 R/Type/Annot/A 17567 0 R/Subtype/Link/Rect[185 380 201 389]/Border[0 0 0]/H/N>> endobj 13783 0 obj <>/P 8731 0 R/Type/Annot/A 17551 0 R/Subtype/Link/Rect[202 380 216 388]/Border[0 0 0]/H/N>> endobj 13784 0 obj <>/P 8731 0 R/Type/Annot/A 37485 0 R/Subtype/Link/Rect[218 380 232 388]/Border[0 0 0]/H/N>> endobj 13785 0 obj <>/P 8731 0 R/Type/Annot/A 17509 0 R/Subtype/Link/Rect[234 380 251 389]/Border[0 0 0]/H/N>> endobj 13786 0 obj <>/P 8731 0 R/Type/Annot/A 17481 0 R/Subtype/Link/Rect[251 380 265 388]/Border[0 0 0]/H/N>> endobj 13787 0 obj <>/P 8731 0 R/Type/Annot/A 17457 0 R/Subtype/Link/Rect[267 380 281 388]/Border[0 0 0]/H/N>> endobj 13788 0 obj <>/P 8731 0 R/Type/Annot/A 17416 0 R/Subtype/Link/Rect[283 380 297 388]/Border[0 0 0]/H/N>> endobj 13789 0 obj <>/P 8731 0 R/Type/Annot/A 17387 0 R/Subtype/Link/Rect[151 370 165 378]/Border[0 0 0]/H/N>> endobj 13790 0 obj <>/P 8731 0 R/Type/Annot/A 17356 0 R/Subtype/Link/Rect[167 370 181 378]/Border[0 0 0]/H/N>> endobj 13791 0 obj <>/P 8731 0 R/Type/Annot/A 17324 0 R/Subtype/Link/Rect[183 370 197 378]/Border[0 0 0]/H/N>> endobj 13792 0 obj <>/P 8731 0 R/Type/Annot/A 13996 0 R/Subtype/Link/Rect[199 370 216 379]/Border[0 0 0]/H/N>> endobj 13793 0 obj <>/P 8731 0 R/Type/Annot/A 16973 0 R/Subtype/Link/Rect[217 370 231 378]/Border[0 0 0]/H/N>> endobj 13794 0 obj <>/P 8731 0 R/Type/Annot/A 16953 0 R/Subtype/Link/Rect[233 370 249 379]/Border[0 0 0]/H/N>> endobj 13795 0 obj <>/P 8731 0 R/Type/Annot/A 16924 0 R/Subtype/Link/Rect[250 370 264 378]/Border[0 0 0]/H/N>> endobj 13796 0 obj <>/P 8731 0 R/Type/Annot/A 16895 0 R/Subtype/Link/Rect[266 370 283 379]/Border[0 0 0]/H/N>> endobj 13797 0 obj <>/P 8731 0 R/Type/Annot/A 16859 0 R/Subtype/Link/Rect[283 370 297 378]/Border[0 0 0]/H/N>> endobj 13798 0 obj <>/P 8731 0 R/Type/Annot/A 16834 0 R/Subtype/Link/Rect[151 360 168 369]/Border[0 0 0]/H/N>> endobj 13799 0 obj <>/P 8731 0 R/Type/Annot/A 16801 0 R/Subtype/Link/Rect[169 360 183 368]/Border[0 0 0]/H/N>> endobj 13800 0 obj <>/P 8731 0 R/Type/Annot/A 16767 0 R/Subtype/Link/Rect[185 360 201 369]/Border[0 0 0]/H/N>> endobj 13801 0 obj <>/P 8731 0 R/Type/Annot/A 16735 0 R/Subtype/Link/Rect[202 360 214 368]/Border[0 0 0]/H/N>> endobj 13802 0 obj <>/P 8731 0 R/Type/Annot/A 16697 0 R/Subtype/Link/Rect[190 350 202 358]/Border[0 0 0]/H/N>> endobj 13803 0 obj <>/P 8731 0 R/Type/Annot/A 14500 0 R/Subtype/Link/Rect[265 340 281 349]/Border[0 0 0]/H/N>> endobj 13804 0 obj <>/P 8731 0 R/Type/Annot/A 16646 0 R/Subtype/Link/Rect[282 340 294 348]/Border[0 0 0]/H/N>> endobj 13805 0 obj <>/P 8731 0 R/Type/Annot/A 16622 0 R/Subtype/Link/Rect[279 330 296 339]/Border[0 0 0]/H/N>> endobj 13806 0 obj <>/P 8731 0 R/Type/Annot/A 14173 0 R/Subtype/Link/Rect[296 330 310 339]/Border[0 0 0]/H/N>> endobj 13807 0 obj <>/P 8731 0 R/Type/Annot/A 16559 0 R/Subtype/Link/Rect[151 320 165 329]/Border[0 0 0]/H/N>> endobj 13808 0 obj <>/P 8731 0 R/Type/Annot/A 16527 0 R/Subtype/Link/Rect[167 320 179 329]/Border[0 0 0]/H/N>> endobj 13809 0 obj <>/P 8731 0 R/Type/Annot/A 16496 0 R/Subtype/Link/Rect[265 310 277 319]/Border[0 0 0]/H/N>> endobj 13810 0 obj <>/P 8731 0 R/Type/Annot/A 16466 0 R/Subtype/Link/Rect[270 300 282 309]/Border[0 0 0]/H/N>> endobj 13811 0 obj <>/P 8731 0 R/Type/Annot/A 44834 0 R/Subtype/Link/Rect[244 290 261 299]/Border[0 0 0]/H/N>> endobj 13812 0 obj <>/P 8731 0 R/Type/Annot/A 44795 0 R/Subtype/Link/Rect[261 290 275 299]/Border[0 0 0]/H/N>> endobj 13813 0 obj <>/P 8731 0 R/Type/Annot/A 13934 0 R/Subtype/Link/Rect[277 290 291 299]/Border[0 0 0]/H/N>> endobj 13814 0 obj <>/P 8731 0 R/Type/Annot/A 44710 0 R/Subtype/Link/Rect[293 290 307 299]/Border[0 0 0]/H/N>> endobj 13815 0 obj <>/P 8731 0 R/Type/Annot/A 44692 0 R/Subtype/Link/Rect[151 280 165 289]/Border[0 0 0]/H/N>> endobj 13816 0 obj <>/P 8731 0 R/Type/Annot/A 44667 0 R/Subtype/Link/Rect[167 280 181 289]/Border[0 0 0]/H/N>> endobj 13817 0 obj <>/P 8731 0 R/Type/Annot/A 13936 0 R/Subtype/Link/Rect[183 280 197 289]/Border[0 0 0]/H/N>> endobj 13818 0 obj <>/P 8731 0 R/Type/Annot/A 44584 0 R/Subtype/Link/Rect[199 280 213 289]/Border[0 0 0]/H/N>> endobj 13819 0 obj <>/P 8731 0 R/Type/Annot/A 43257 0 R/Subtype/Link/Rect[215 280 229 289]/Border[0 0 0]/H/N>> endobj 13820 0 obj <>/P 8731 0 R/Type/Annot/A 44509 0 R/Subtype/Link/Rect[231 280 245 289]/Border[0 0 0]/H/N>> endobj 13821 0 obj <>/P 8731 0 R/Type/Annot/A 44486 0 R/Subtype/Link/Rect[247 280 261 289]/Border[0 0 0]/H/N>> endobj 13822 0 obj <>/P 8731 0 R/Type/Annot/A 44434 0 R/Subtype/Link/Rect[263 280 280 289]/Border[0 0 0]/H/N>> endobj 13823 0 obj <>/P 8731 0 R/Type/Annot/A 44402 0 R/Subtype/Link/Rect[281 280 295 289]/Border[0 0 0]/H/N>> endobj 13824 0 obj <>/P 8731 0 R/Type/Annot/A 44361 0 R/Subtype/Link/Rect[297 280 309 289]/Border[0 0 0]/H/N>> endobj 13825 0 obj <>/P 8731 0 R/Type/Annot/A 41607 0 R/Subtype/Link/Rect[279 270 296 279]/Border[0 0 0]/H/N>> endobj 13826 0 obj <>/P 8731 0 R/Type/Annot/A 44297 0 R/Subtype/Link/Rect[296 270 310 279]/Border[0 0 0]/H/N>> endobj 13827 0 obj <>/P 8731 0 R/Type/Annot/A 44255 0 R/Subtype/Link/Rect[151 260 163 269]/Border[0 0 0]/H/N>> endobj 13828 0 obj <>/P 8731 0 R/Type/Annot/A 44231 0 R/Subtype/Link/Rect[190 250 202 259]/Border[0 0 0]/H/N>> endobj 13829 0 obj <>/P 8731 0 R/Type/Annot/A 44182 0 R/Subtype/Link/Rect[269 240 283 249]/Border[0 0 0]/H/N>> endobj 13830 0 obj <>/P 8731 0 R/Type/Annot/A 44160 0 R/Subtype/Link/Rect[285 240 297 249]/Border[0 0 0]/H/N>> endobj 13831 0 obj <>/P 8731 0 R/Type/Annot/A 42782 0 R/Subtype/Link/Rect[190 230 202 239]/Border[0 0 0]/H/N>> endobj 13832 0 obj <>/P 8731 0 R/Type/Annot/A 44089 0 R/Subtype/Link/Rect[265 220 281 229]/Border[0 0 0]/H/N>> endobj 13833 0 obj <>/P 8731 0 R/Type/Annot/A 44047 0 R/Subtype/Link/Rect[282 220 296 229]/Border[0 0 0]/H/N>> endobj 13834 0 obj <>/P 8731 0 R/Type/Annot/A 44015 0 R/Subtype/Link/Rect[151 210 168 219]/Border[0 0 0]/H/N>> endobj 13835 0 obj <>/P 8731 0 R/Type/Annot/A 43974 0 R/Subtype/Link/Rect[169 210 183 219]/Border[0 0 0]/H/N>> endobj 13836 0 obj <>/P 8731 0 R/Type/Annot/A 43949 0 R/Subtype/Link/Rect[185 210 201 219]/Border[0 0 0]/H/N>> endobj 13837 0 obj <>/P 8731 0 R/Type/Annot/A 43908 0 R/Subtype/Link/Rect[202 210 216 219]/Border[0 0 0]/H/N>> endobj 13838 0 obj <>/P 8731 0 R/Type/Annot/A 43863 0 R/Subtype/Link/Rect[218 210 232 219]/Border[0 0 0]/H/N>> endobj 13839 0 obj <>/P 8731 0 R/Type/Annot/A 43835 0 R/Subtype/Link/Rect[234 210 251 219]/Border[0 0 0]/H/N>> endobj 13840 0 obj <>/P 8731 0 R/Type/Annot/A 43799 0 R/Subtype/Link/Rect[251 210 265 219]/Border[0 0 0]/H/N>> endobj 13841 0 obj <>/P 8731 0 R/Type/Annot/A 43763 0 R/Subtype/Link/Rect[267 210 284 219]/Border[0 0 0]/H/N>> endobj 13842 0 obj <>/P 8731 0 R/Type/Annot/A 43719 0 R/Subtype/Link/Rect[285 210 299 219]/Border[0 0 0]/H/N>> endobj 13843 0 obj <>/P 8731 0 R/Type/Annot/A 43695 0 R/Subtype/Link/Rect[151 200 165 209]/Border[0 0 0]/H/N>> endobj 13844 0 obj <>/P 8731 0 R/Type/Annot/A 30124 0 R/Subtype/Link/Rect[167 200 181 209]/Border[0 0 0]/H/N>> endobj 13845 0 obj <>/P 8731 0 R/Type/Annot/A 43607 0 R/Subtype/Link/Rect[183 200 197 209]/Border[0 0 0]/H/N>> endobj 13846 0 obj <>/P 8731 0 R/Type/Annot/A 39485 0 R/Subtype/Link/Rect[199 200 213 209]/Border[0 0 0]/H/N>> endobj 13847 0 obj <>/P 8731 0 R/Type/Annot/A 43529 0 R/Subtype/Link/Rect[215 200 232 209]/Border[0 0 0]/H/N>> endobj 13848 0 obj <>/P 8731 0 R/Type/Annot/A 42108 0 R/Subtype/Link/Rect[233 200 247 209]/Border[0 0 0]/H/N>> endobj 13849 0 obj <>/P 8731 0 R/Type/Annot/A 43459 0 R/Subtype/Link/Rect[249 200 265 209]/Border[0 0 0]/H/N>> endobj 13850 0 obj <>/P 8731 0 R/Type/Annot/A 43431 0 R/Subtype/Link/Rect[266 200 280 209]/Border[0 0 0]/H/N>> endobj 13851 0 obj <>/P 8731 0 R/Type/Annot/A 20085 0 R/Subtype/Link/Rect[151 190 168 199]/Border[0 0 0]/H/N>> endobj 13852 0 obj <>/P 8731 0 R/Type/Annot/A 43347 0 R/Subtype/Link/Rect[169 190 183 199]/Border[0 0 0]/H/N>> endobj 13853 0 obj <>/P 8731 0 R/Type/Annot/A 19115 0 R/Subtype/Link/Rect[185 190 201 199]/Border[0 0 0]/H/N>> endobj 13854 0 obj <>/P 8731 0 R/Type/Annot/A 41863 0 R/Subtype/Link/Rect[202 190 214 199]/Border[0 0 0]/H/N>> endobj 13855 0 obj <>/P 8731 0 R/Type/Annot/A 41796 0 R/Subtype/Link/Rect[190 180 202 189]/Border[0 0 0]/H/N>> endobj 13856 0 obj <>/P 8731 0 R/Type/Annot/A 16136 0 R/Subtype/Link/Rect[226 170 240 179]/Border[0 0 0]/H/N>> endobj 13857 0 obj <>/P 8731 0 R/Type/Annot/A 16065 0 R/Subtype/Link/Rect[242 170 256 179]/Border[0 0 0]/H/N>> endobj 13858 0 obj <>/P 8731 0 R/Type/Annot/A 15749 0 R/Subtype/Link/Rect[258 170 272 179]/Border[0 0 0]/H/N>> endobj 13859 0 obj <>/P 8731 0 R/Type/Annot/A 15669 0 R/Subtype/Link/Rect[274 170 286 179]/Border[0 0 0]/H/N>> endobj 13860 0 obj <>/P 8731 0 R/Type/Annot/A 15599 0 R/Subtype/Link/Rect[190 160 202 169]/Border[0 0 0]/H/N>> endobj 13861 0 obj <>/P 8731 0 R/Type/Annot/A 42985 0 R/Subtype/Link/Rect[250 150 264 159]/Border[0 0 0]/H/N>> endobj 13862 0 obj <>/P 8731 0 R/Type/Annot/A 42946 0 R/Subtype/Link/Rect[266 150 283 159]/Border[0 0 0]/H/N>> endobj 13863 0 obj <>/P 8731 0 R/Type/Annot/A 42920 0 R/Subtype/Link/Rect[284 150 296 159]/Border[0 0 0]/H/N>> endobj 13864 0 obj <>/P 8731 0 R/Type/Annot/A 42873 0 R/Subtype/Link/Rect[447 670 461 678]/Border[0 0 0]/H/N>> endobj 13865 0 obj <>/P 8731 0 R/Type/Annot/A 14753 0 R/Subtype/Link/Rect[463 670 475 678]/Border[0 0 0]/H/N>> endobj 13866 0 obj <>/P 8731 0 R/Type/Annot/A 14547 0 R/Subtype/Link/Rect[487 660 501 668]/Border[0 0 0]/H/N>> endobj 13867 0 obj <>/P 8731 0 R/Type/Annot/A 14493 0 R/Subtype/Link/Rect[503 660 517 668]/Border[0 0 0]/H/N>> endobj 13868 0 obj <>/P 8731 0 R/Type/Annot/A 14433 0 R/Subtype/Link/Rect[359 650 371 658]/Border[0 0 0]/H/N>> endobj 13869 0 obj <>/P 8731 0 R/Type/Annot/A 14385 0 R/Subtype/Link/Rect[482 640 496 648]/Border[0 0 0]/H/N>> endobj 13870 0 obj <>/P 8731 0 R/Type/Annot/A 42662 0 R/Subtype/Link/Rect[498 640 512 648]/Border[0 0 0]/H/N>> endobj 13871 0 obj <>/P 8731 0 R/Type/Annot/A 42612 0 R/Subtype/Link/Rect[359 630 373 638]/Border[0 0 0]/H/N>> endobj 13872 0 obj <>/P 8731 0 R/Type/Annot/A 42584 0 R/Subtype/Link/Rect[375 630 387 638]/Border[0 0 0]/H/N>> endobj 13873 0 obj <>/P 8731 0 R/Type/Annot/A 13935 0 R/Subtype/Link/Rect[501 620 513 628]/Border[0 0 0]/H/N>> endobj 13874 0 obj <>/P 8731 0 R/Type/Annot/A 42514 0 R/Subtype/Link/Rect[398 610 410 618]/Border[0 0 0]/H/N>> endobj 13875 0 obj <>/P 8731 0 R/Type/Annot/A 42469 0 R/Subtype/Link/Rect[359 590 371 598]/Border[0 0 0]/H/N>> endobj 13876 0 obj <>/P 8731 0 R/Type/Annot/A 42425 0 R/Subtype/Link/Rect[398 580 410 588]/Border[0 0 0]/H/N>> endobj 13877 0 obj <>/P 8731 0 R/Type/Annot/A 42383 0 R/Subtype/Link/Rect[487 570 499 578]/Border[0 0 0]/H/N>> endobj 13878 0 obj <>/P 8731 0 R/Type/Annot/A 42362 0 R/Subtype/Link/Rect[398 560 410 568]/Border[0 0 0]/H/N>> endobj 13879 0 obj <>/P 8731 0 R/Type/Annot/A 42326 0 R/Subtype/Link/Rect[359 540 371 548]/Border[0 0 0]/H/N>> endobj 13880 0 obj <>/P 8731 0 R/Type/Annot/A 39521 0 R/Subtype/Link/Rect[398 530 410 538]/Border[0 0 0]/H/N>> endobj 13881 0 obj <>/P 8731 0 R/Type/Annot/A 42238 0 R/Subtype/Link/Rect[476 520 488 528]/Border[0 0 0]/H/N>> endobj 13882 0 obj <>/P 8731 0 R/Type/Annot/A 42200 0 R/Subtype/Link/Rect[482 510 499 519]/Border[0 0 0]/H/N>> endobj 13883 0 obj <>/P 8731 0 R/Type/Annot/A 42151 0 R/Subtype/Link/Rect[499 510 511 518]/Border[0 0 0]/H/N>> endobj 13884 0 obj <>/P 8731 0 R/Type/Annot/A 42100 0 R/Subtype/Link/Rect[398 500 410 508]/Border[0 0 0]/H/N>> endobj 13885 0 obj <>/P 8731 0 R/Type/Annot/A 42066 0 R/Subtype/Link/Rect[468 490 482 498]/Border[0 0 0]/H/N>> endobj 13886 0 obj <>/P 8731 0 R/Type/Annot/A 42024 0 R/Subtype/Link/Rect[484 490 495 498]/Border[0 0 0]/H/N>> endobj 13887 0 obj <>/P 8731 0 R/Type/Annot/A 41978 0 R/Subtype/Link/Rect[398 480 410 488]/Border[0 0 0]/H/N>> endobj 13888 0 obj <>/P 8731 0 R/Type/Annot/A 41950 0 R/Subtype/Link/Rect[502 470 514 478]/Border[0 0 0]/H/N>> endobj 13889 0 obj <>/P 8731 0 R/Type/Annot/A 41907 0 R/Subtype/Link/Rect[477 460 491 468]/Border[0 0 0]/H/N>> endobj 13890 0 obj <>/P 8731 0 R/Type/Annot/A 41866 0 R/Subtype/Link/Rect[493 460 507 468]/Border[0 0 0]/H/N>> endobj 13891 0 obj <>/P 8731 0 R/Type/Annot/A 41810 0 R/Subtype/Link/Rect[359 450 371 458]/Border[0 0 0]/H/N>> endobj 13892 0 obj <>/P 8731 0 R/Type/Annot/A 37773 0 R/Subtype/Link/Rect[398 440 410 448]/Border[0 0 0]/H/N>> endobj 13893 0 obj <>/P 8731 0 R/Type/Annot/A 41709 0 R/Subtype/Link/Rect[457 430 468 438]/Border[0 0 0]/H/N>> endobj 13894 0 obj <>/P 8731 0 R/Type/Annot/A 41664 0 R/Subtype/Link/Rect[501 420 515 428]/Border[0 0 0]/H/N>> endobj 13895 0 obj <>/P 8731 0 R/Type/Annot/A 41621 0 R/Subtype/Link/Rect[359 410 371 418]/Border[0 0 0]/H/N>> endobj 13896 0 obj <>/P 8731 0 R/Type/Annot/A 41576 0 R/Subtype/Link/Rect[398 400 410 408]/Border[0 0 0]/H/N>> endobj 13897 0 obj <>/P 8731 0 R/Type/Annot/A 41546 0 R/Subtype/Link/Rect[501 390 515 398]/Border[0 0 0]/H/N>> endobj 13898 0 obj <>/P 8731 0 R/Type/Annot/A 41502 0 R/Subtype/Link/Rect[359 380 371 388]/Border[0 0 0]/H/N>> endobj 13899 0 obj <>/P 8731 0 R/Type/Annot/A 41462 0 R/Subtype/Link/Rect[398 370 410 378]/Border[0 0 0]/H/N>> endobj 13900 0 obj <>/P 8731 0 R/Type/Annot/A 13937 0 R/Subtype/Link/Rect[492 360 504 368]/Border[0 0 0]/H/N>> endobj 13901 0 obj <>/P 8731 0 R/Type/Annot/A 41408 0 R/Subtype/Link/Rect[398 350 410 358]/Border[0 0 0]/H/N>> endobj 13902 0 obj <>/P 8731 0 R/Type/Annot/A 41340 0 R/Subtype/Link/Rect[492 340 504 348]/Border[0 0 0]/H/N>> endobj 13903 0 obj <>/P 8731 0 R/Type/Annot/A 41302 0 R/Subtype/Link/Rect[398 330 410 339]/Border[0 0 0]/H/N>> endobj 13904 0 obj <>/P 8731 0 R/Type/Annot/A 41277 0 R/Subtype/Link/Rect[477 320 494 329]/Border[0 0 0]/H/N>> endobj 13905 0 obj <>/P 8731 0 R/Type/Annot/A 41240 0 R/Subtype/Link/Rect[495 320 507 329]/Border[0 0 0]/H/N>> endobj 13906 0 obj <>/P 8731 0 R/Type/Annot/A 41197 0 R/Subtype/Link/Rect[398 310 410 319]/Border[0 0 0]/H/N>> endobj 13907 0 obj <>/P 8731 0 R/Type/Annot/A 41178 0 R/Subtype/Link/Rect[477 300 494 309]/Border[0 0 0]/H/N>> endobj 13908 0 obj <>/P 8731 0 R/Type/Annot/A 23375 0 R/Subtype/Link/Rect[495 300 509 309]/Border[0 0 0]/H/N>> endobj 13909 0 obj <>/P 8731 0 R/Type/Annot/A 41120 0 R/Subtype/Link/Rect[359 290 371 299]/Border[0 0 0]/H/N>> endobj 13910 0 obj <>/P 8731 0 R/Type/Annot/A 37932 0 R/Subtype/Link/Rect[398 280 410 289]/Border[0 0 0]/H/N>> endobj 13911 0 obj <>/P 8731 0 R/Type/Annot/A 40757 0 R/Subtype/Link/Rect[375 270 385 279]/Border[0 0 0]/H/N>> endobj 13912 0 obj <>/P 8731 0 R/Type/Annot/A 40735 0 R/Subtype/Link/Rect[387 270 401 279]/Border[0 0 0]/H/N>> endobj 13913 0 obj <>/P 8731 0 R/Type/Annot/A 16046 0 R/Subtype/Link/Rect[403 270 417 279]/Border[0 0 0]/H/N>> endobj 13914 0 obj <>/P 8731 0 R/Type/Annot/A 40131 0 R/Subtype/Link/Rect[419 270 431 279]/Border[0 0 0]/H/N>> endobj 13915 0 obj <>/P 8731 0 R/Type/Annot/A 40098 0 R/Subtype/Link/Rect[434 260 448 269]/Border[0 0 0]/H/N>> endobj 13916 0 obj <>/P 8731 0 R/Type/Annot/A 39572 0 R/Subtype/Link/Rect[450 260 464 269]/Border[0 0 0]/H/N>> endobj 13917 0 obj <>/P 8731 0 R/Type/Annot/A 39519 0 R/Subtype/Link/Rect[466 260 480 269]/Border[0 0 0]/H/N>> endobj 13918 0 obj <>/P 8731 0 R/Type/Annot/A 15029 0 R/Subtype/Link/Rect[482 260 494 269]/Border[0 0 0]/H/N>> endobj 13919 0 obj <>/P 8731 0 R/Type/Annot/A 38948 0 R/Subtype/Link/Rect[398 250 410 259]/Border[0 0 0]/H/N>> endobj 13920 0 obj <>/P 8731 0 R/Type/Annot/A 14770 0 R/Subtype/Link/Rect[482 240 494 249]/Border[0 0 0]/H/N>> endobj 13921 0 obj <>/P 8731 0 R/Type/Annot/A 38372 0 R/Subtype/Link/Rect[398 230 410 239]/Border[0 0 0]/H/N>> endobj 13922 0 obj <>/P 8731 0 R/Type/Annot/A 19069 0 R/Subtype/Link/Rect[477 220 489 229]/Border[0 0 0]/H/N>> endobj 13923 0 obj <>/P 8731 0 R/Type/Annot/A 38299 0 R/Subtype/Link/Rect[398 210 410 219]/Border[0 0 0]/H/N>> endobj 13924 0 obj <>/P 8731 0 R/Type/Annot/A 14398 0 R/Subtype/Link/Rect[468 200 484 209]/Border[0 0 0]/H/N>> endobj 13925 0 obj <>/P 8731 0 R/Type/Annot/A 36824 0 R/Subtype/Link/Rect[485 200 497 209]/Border[0 0 0]/H/N>> endobj 13926 0 obj <>/P 8731 0 R/Type/Annot/A 36783 0 R/Subtype/Link/Rect[398 190 410 199]/Border[0 0 0]/H/N>> endobj 13927 0 obj <>/P 8731 0 R/Type/Annot/A 36748 0 R/Subtype/Link/Rect[449 180 465 189]/Border[0 0 0]/H/N>> endobj 13928 0 obj <>/P 8731 0 R/Type/Annot/A 36697 0 R/Subtype/Link/Rect[466 180 480 189]/Border[0 0 0]/H/N>> endobj 13929 0 obj <>/P 8731 0 R/Type/Annot/A 35926 0 R/Subtype/Link/Rect[482 180 496 189]/Border[0 0 0]/H/N>> endobj 13930 0 obj <>/P 8731 0 R/Type/Annot/A 35876 0 R/Subtype/Link/Rect[498 180 510 189]/Border[0 0 0]/H/N>> endobj 13931 0 obj <>/P 8731 0 R/Type/Annot/A 35100 0 R/Subtype/Link/Rect[398 170 410 179]/Border[0 0 0]/H/N>> endobj 13932 0 obj <>/P 8731 0 R/Type/Annot/A 35067 0 R/Subtype/Link/Rect[473 160 485 169]/Border[0 0 0]/H/N>> endobj 13933 0 obj <>/P 8731 0 R/Type/Annot/A 35036 0 R/Subtype/Link/Rect[398 150 410 159]/Border[0 0 0]/H/N>> endobj 13934 0 obj <> endobj 13935 0 obj <> endobj 13936 0 obj <> endobj 13937 0 obj <> endobj 13938 0 obj <> stream q /X1 Do Q q endstream endobj 13939 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 13940 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 13941 0 obj <> stream HWko۸_ (K}.M1P\EJ֖lḽ(QLJrΐPm_.߿z:_}Uw$t*l M\ER#m}(#7qtW~խmmMt۵"\/*.,1"+&J,_G> iR1nn id|^ˡ^7۳ϋ?Hdae(PYnW?G}PYTBoQ1=" ϱWG|9WqdUJd%>7-utYC96X HCV9KE0dE $^%^^^^5^5^   sF}y`Q_ F}/edԗz˨z˨<+RlIƵCVbb\K1d)P=ŀŸbbk),F}Zɸbb\K1d1JƵC>pd\K1`1k%Z!QV2R Yq-ŐŨ\+Rl)ƵCVbb\K1d)P=ŀŸbbUk),F}ZŸbb\K1d1*ƵC>pb\K1`1kZ!QV1R Yq-ŐŨ\RliƵCVbb\K1d)P=ŀŸbbՌk),F}Z͸bb\K1d1jƵC>pf\K1`1k5Z!QV3R Yq-ŐŨ\RlƵCVbb\K1d)PM:߬D/B|ѱwF"ϰoxn 'ϵ{ƣPֽTw~r]G]Vkm?T7?{}[>/`DHGO]woܿ`2afcշ=yS}k{Lx]O붇'̇uѲL +fbzۧKFs >)ٜɩSt SGN/,,~ۗ/sWϺgOUPͻ?O`fJEi @I”4LҶ {zB*qBRzw#HUjizwWw[ww:` 1)#呚j!t)ʩKӺDʗHlf"*5z{ :mhiqh}jl4zTC}ǖ`ݦܒ#;]n#Tgs]ۖ (UUaSck^GKҤy!f`__é,nLHZ{$VEj: >)vUUPX= |v jVS&ѣA޿x՗WEZwW<7JK&O-(2?NGyͲۭ.p[1*k۽m4H8'u~6k6e08Ď*_Hlp1/MQݻ.]5K(oIuTÕk |-PȒ$`ƾ6kѹZMӛ.aL 8"M?ruT鼜G5ىKӟ:әlU~,C= u?ʍPzr^=]@ Whm5n1T몫}Oえ?{~?l⮖:Rt(q(8$(&Km>8kcNz$wdP:(TkOf\qℑ"Ԭ_+~xdCcקC68q>2}hg/])8ԒEKqH-UBQ>JTFtjaP5pqOZuOER4jһ BBeԓ$OKoŒ&Ftjer CO~`R&9kgdxK{GDL,N Q#c1t,*sJ4$.F2R$L[4Oݨ),P#OerKԳsSJ6S٧"Ez[ <?6}p^By858ԵAcS?q1(fIz-K;;y )b,PvmUK]7h^,ly-*ƸYHsӽG}$_u MZ -d0 -.7Yкrb;KbC3DQ(n&UۮXx NTAk{)VTWh%1(ɗ6)]vz|Z iwL`tC{sNE E/8_4Myr4sOF+kIrb#k@CE6IW-;ٕ(&NsP q9׭mD+kT\vA~?F(6}ܞaKf+(g7cq9Z<8=*0SFC{Q^@|./_ptT7Rn`>`ͦp*ᗀЫ5S@ j|Vd* Dٮ<]n$S%+Rdez8c!r}y36$uqsQYf%SEe^:FRpDQ GJ ƩtR(qݾ`[!*-RgBjGL4XXk :SO|teŋڰ[}+ހ0\P/$lYwnʮY\c0h`xso-'!ձQlq rQz0;TVb~4 EHRfYl[24 $N'Uf:%⢹04é>޾ۇw/Oendstream endobj 13942 0 obj <> stream q /X1 Do Q q endstream endobj 13943 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 13944 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 13945 0 obj <> stream HWr8}W`k_)&ndSyH2;DS`RYJD+Rx~y4=TBsqA7SO>g1{w"3W(3%`GXpqW[.`wuv\/8[l&Yr8c2y.._[a\Sݘ]\ Mݏú}8lc 1JHݶo̱wKZ cJX{d!'`zS}O >#g`ys} f9!ZVPkC޵PkC޵!gEֵ!`Vum"{j]պ6D= B Q{OPkZ׆(ZAֵ!`Vum"TET+պ6D= B $Z׆(kZ׆(kC޵PkCS$TET+ պ6@um"{j]j%Z(B Q{OPkCS$TEֵ!`Vum"{j][(B Q>{(B Q>{׆(kZ׆(ZEֵ!`Vum"TETպ6D=*B Pj]jZ׆(ZEֵPkCS"TETպ2Єj]| Pj]| Q><\L2x 8[l0xE KtI(jZٕ&ھX|uG/?8DS9v۩_q[ %aYE|hIR9k;g&>gWĸ],nbkUnn(gnL&"<ê4ͣ14B]SpLhH'^8ͦ^am'|)Sl|U$EnIͶhQ[Ա sljk2uqt7O$kNx4ytmoh7NamwƠީXӡy>B7:#n.m^ -#Q2`[)i5SJRN;0 E7E;l2lno{w7޻$!;#ަ$CSfi1d~Y ^-PŎ Eagá=,= 8ɬ!cLYߥv e{N74qx itQ~V<(1v k5_pO8U <∇"eFiE_ݝp *L9_c Ij;̗q)lf4ⸯ?~Fmؿy+Cq2[E {rHC3zd tM"w|^PهrR]۹XOQOQS/msZH(0Z iy;7弫-/+q#hv3_xro«馱'Tn0jZGPLJ&nU4f斁Ik']>1,- ڐ\mXݩ4|b/{ T7Uʹ^X)zj}Z!+/\T:ڷ \z ˢnS8\f*c2[f5)G &(%ˁxpIoN;ɾ_fBGw _ fZvhM3|fCFq4(,47Y4F!=1ۦ~{]bQ?Fi˹ST4c ޙ\vA]yx[5[bS T V՘8mS %cP_:wOڅ?XVD_4z^uf.V `eKn1\˕|brm-8t_{c0fN:Pt4DWJ6zq,S--˧ AIϮ7h!iޕ^ ^uНSslC^ y>3\Cg8sxban>)O[praa4_Ɖи_J,GhL#%SK] jmiFAUH3wMĠd(4o>g֩K@FDYAV˺ڛz%[UWT ԾtL 2ͮoGln=D0eo6'/gdWMo8W#uZ`llFjesX I0 ɿW.4̞0Peի ȥcY.D xUowi%(uL LVLr_INmb" A?f'Eׇz^-k<"C,x!Ԍ;8N-pN#|ۡ?}>-$6"C >.:cef?N0ФRJ}($DuT(|F.fjæN*pDr}sV<Ag:SM!_8y`&BK23L.6OZ pzq' [~~Yc?5;,`ceMR} 'OHd.dd0-,aFo×@daŏ_I0ΛiS ؼEj8'7ەV띓WN^r *{^㼶@0waye/pHvHz @Y陔lr1Hz"D..'mӥi貊\/4 J)hGjrvgu"# ?,PkKh TB~c,>p%2i9ab&^ ir.PRћJ w b74Al5}mc7>8D޲i~q7+|竿`Yéendstream endobj 13946 0 obj <> stream q /X1 Do Q q endstream endobj 13947 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 13948 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 13949 0 obj <> stream HW]۶}ׯH(EhCWY+%ג3$%&HdEgs8~?㋟^BsZJ2[)n$;%/XqvLݗݾ݆גݏŋuqH&c Hsٲf}N߬?y iqoW/w߳Ҕnai9:voޯ[j9(N£^%)sR(.%~Kv *. 8.k| g uLq9%Q Km"G%6Dr"'% 2c/ 2c*c*c*c :c :co&co&co&c_쫌}E2`o3`o3`o35:c.cf!Զ/$Ԇ}jԆ}jCT>PmjC>S$TET+ զ6@Mm"gjSj%(B QLPmjC>S$TE6!`VMm"gjS۾PjSr PjSr Q9(B QLPmjC>S"TE6!`VMm"gUjSզ6D3*B QLPmjԆ(}ZE6!`VMmBMm٧6@Mm٧6DSզ6D3jB QLPmjԆ(}ZM6!`VMm"TET զ6D3jB PjSj5Ԇ(}ZM6 C6!*gE6!*gw9Y .}b]ܮ X!*b6=ެ?%Nx.Bb?<4AٚJvu:FUף.HX)>qcb`ڶcav]?=N~{hc,>f%|zJ\fO}iOC7mè r8W]rN*%+X7!pLZ@۞ȿRKW)]2 y~iwE gz8쾴T~XMd㍨WÇ>i7uRl682pװ"Z8`ӲwхOٻ=/ydRdb`B7X )9H[y‘Bsl-n6m)U數6wcRul}CyFL< 7)SP(!OiC1!UZo=ssƟ+D6c };S7œa޵v-kX,aۛ.14{BrЂڏ kopJ$-0N70aE`RRp%jPΖrvlbZVCl'qހ%3).{* rf5n sK*_E]9t:8{%|]߮Aizhαv<hVdo6 ȾE0*1Ծ9|G^#CKvݸֵ;NpXwR'`ɕ]y1r]Av/8ۇ8Y j{Ť'9!{f׵4.midLDfDru{T\\yZ.RCc=yOE@qku{hKl@BVS®l9ưc 1m9f t ؇M*r%hbxy"pVmY"kᬜZ']߯M z(|O]R{6R䮼gtTF~0/!񿚺}i'5k g"a[(if7ڡ_?ŋ>|;\3k [I nv%׸FXcO@1ի@50Qɺf?ojod eɔ>0|P& %.FU pi54AYj8L =n W:HVKR9MnE&Tj4+Ja]yPAnǗcfjPpG#$(D ?:5t\4-od>;tpt: .-;tZ˗ ޯYˏo_]qղ|8Rq|2Y>C bWXPB , f1}X `k`)7S(`ӻpnRQŃ#GtI6D:GB=2{*Rch')X*n~4ym;:2~qy3 _Ks)$Ba\d i1^Zt6+5LU1.jn,TOf.tI'PSͽhV-H \NV  N%ܙDz w9|z'N N$̖И|fqeȬ4_EOYO B騹E/"CIb$H~آ#2}Y 2VKY;#߆-%K8_*XH.)S^m@tϯPHnEѡC!Z˵X ,F}ߑG|{PQ0^6@ @T2A@*oH0jRhf0I7\gi+,o wZN7E O8p.~B 69׮4]ht{󊤛T"c&݄]sZH|Y*l`7@\p87˹۾s[1 22ܐ7{YpVNgXIeX<.,Z=ӒMl#~  77'e$TU%".^ #"h)|) 9Y`F љ2vxOaUJJRVx'.K.6Ȳ(z30 1Gvڞ?xe_( :> stream q /X1 Do Q q endstream endobj 13951 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 13952 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 13953 0 obj <> stream HێFg z6lĻYKA.`c:4[EЪ*3_]_7﮾u??t]~yw/Ӯ1e7~727yv^/v7m}7|d7oUp^.O|)PD1wټTUhvs7ËŗN^B8ʿ5MWL ?W-laV{ ySym(T?,gu6Ϣ5hLDch TZs *ʮ51P0z#Foz@o-wcNw {3z/{F@})ЗKF_ %W}@}g`Zk3#Pi Tki UPi Tki U=s\KckZZC@\kzZ#@%P%34*1P 1T ̵Fp-Jg5kiͬZC1P 1TqzC1P 1T ̵Vp-Jgki Tki U=s\KckZZC@\kzZ+@%P%3Z4* 6ski U@%Pi U@%P%3:4* 1P 1T ̵Np-Jguki Tki U=s\KckZZC@\zZ' 1TqzZC1TqX]U\d7628UB/ _h6_U}8s.C{ZJ)}96XuUt$/=fAbC(]Qik2zh g7cL Qqq@zWHʞ$HILI5^YkXz> 2=IF+.Eҫz[qwšREL'YITl?ybDz}u^NXGUׁ1kэ?.8˓Κ854VL7Ϯ\Z][I]WsӦ+0mAavyyh6쐍aJP1fooI췏pfwG /mʷcFQjY&Ef&Kf&{"Uu{͢ՠ,.Xjh3.+rZmv 4m*Dž~a6'lMȱQOHv@g}ʼ`%[ v+%DQHTV{NkbH ً ঢ-2͂/}g4rFz=\~?*pM#D0[ԝ9 '@IVqYXK4A&H>0~xm<Wq]I?\k>+p @ig?,e%.=^}#Cdzxo?GS(M *Oh v!-׎Kk|T顯K_ `vfO6uJR AS&[( t*uB.0 2&3$!+^͆Ngv66Nj8;yGa,LIj` mi\ԮʠQ>~Z掕= , ܾwi W k8PڳL8>/P 190 0 R/Type/Annot/A 37541 0 R/Subtype/Link/Rect[154.800003 665.190979 324.910004 677.221008]/Border[0 0 0]/H/N>> endobj 13955 0 obj <>/P 190 0 R/Type/Annot/A 13993 0 R/Subtype/Link/Rect[154.800003 652.190979 307.790009 664.221008]/Border[0 0 0]/H/N>> endobj 13956 0 obj <>/P 190 0 R/Type/Annot/A 37539 0 R/Subtype/Link/Rect[154.800003 639.190979 313.790009 651.221008]/Border[0 0 0]/H/N>> endobj 13957 0 obj <>/P 190 0 R/Type/Annot/A 34195 0 R/Subtype/Link/Rect[154.800003 626.190979 312.790009 638.221008]/Border[0 0 0]/H/N>> endobj 13958 0 obj <>/P 190 0 R/Type/Annot/A 14022 0 R/Subtype/Link/Rect[154.800003 613.190979 382.591003 625.221008]/Border[0 0 0]/H/N>> endobj 13959 0 obj <>/P 190 0 R/Type/Annot/A 37517 0 R/Subtype/Link/Rect[154.800003 600.190979 319.790985 612.221008]/Border[0 0 0]/H/N>> endobj 13960 0 obj <>/P 190 0 R/Type/Annot/A 37515 0 R/Subtype/Link/Rect[154.800003 587.190979 376.591003 599.221008]/Border[0 0 0]/H/N>> endobj 13961 0 obj <>/P 190 0 R/Type/Annot/A 43100 0 R/Subtype/Link/Rect[154.800995 574.190979 316.019989 586.221008]/Border[0 0 0]/H/N>> endobj 13962 0 obj <>/P 190 0 R/Type/Annot/A 37502 0 R/Subtype/Link/Rect[154.800995 561.190979 312.790985 573.221008]/Border[0 0 0]/H/N>> endobj 13963 0 obj <>/P 190 0 R/Type/Annot/A 37501 0 R/Subtype/Link/Rect[154.800995 548.190979 406.061005 560.221008]/Border[0 0 0]/H/N>> endobj 13964 0 obj <>/P 190 0 R/Type/Annot/A 37497 0 R/Subtype/Link/Rect[154.800995 535.190979 312.980988 547.221008]/Border[0 0 0]/H/N>> endobj 13965 0 obj <>/P 190 0 R/Type/Annot/A 37495 0 R/Subtype/Link/Rect[154.800995 522.190979 319.790985 534.221008]/Border[0 0 0]/H/N>> endobj 13966 0 obj <>/P 190 0 R/Type/Annot/A 31063 0 R/Subtype/Link/Rect[154.800995 509.19101 331.031006 521.221008]/Border[0 0 0]/H/N>> endobj 13967 0 obj <>/P 190 0 R/Type/Annot/A 37492 0 R/Subtype/Link/Rect[154.800995 496.19101 322.69101 508.221008]/Border[0 0 0]/H/N>> endobj 13968 0 obj <>/P 190 0 R/Type/Annot/A 17953 0 R/Subtype/Link/Rect[154.800995 483.19101 331.031006 495.221008]/Border[0 0 0]/H/N>> endobj 13969 0 obj <>/P 190 0 R/Type/Annot/A 37477 0 R/Subtype/Link/Rect[154.800995 470.19101 308.781006 482.221008]/Border[0 0 0]/H/N>> endobj 13970 0 obj <>/P 190 0 R/Type/Annot/A 30217 0 R/Subtype/Link/Rect[154.800995 457.19101 282.960999 469.221008]/Border[0 0 0]/H/N>> endobj 13971 0 obj <>/P 190 0 R/Type/Annot/A 37476 0 R/Subtype/Link/Rect[129.600998 432.490997 487.462006 444.890991]/Border[0 0 0]/H/N>> endobj 13972 0 obj <>/P 190 0 R/Type/Annot/A 37474 0 R/Subtype/Link/Rect[154.800995 414.290985 292.131989 426.321014]/Border[0 0 0]/H/N>> endobj 13973 0 obj <>/P 190 0 R/Type/Annot/A 37473 0 R/Subtype/Link/Rect[154.800995 401.290985 312.841003 413.321014]/Border[0 0 0]/H/N>> endobj 13974 0 obj <>/P 190 0 R/Type/Annot/A 37472 0 R/Subtype/Link/Rect[154.800995 388.290985 311.621002 400.321014]/Border[0 0 0]/H/N>> endobj 13975 0 obj <>/P 190 0 R/Type/Annot/A 17592 0 R/Subtype/Link/Rect[154.800995 375.290985 314.35199 387.321014]/Border[0 0 0]/H/N>> endobj 13976 0 obj <>/P 190 0 R/Type/Annot/A 37466 0 R/Subtype/Link/Rect[154.800995 362.290985 280.451996 374.321014]/Border[0 0 0]/H/N>> endobj 13977 0 obj <>/P 190 0 R/Type/Annot/A 16974 0 R/Subtype/Link/Rect[154.800995 349.290985 331.17099 361.320007]/Border[0 0 0]/H/N>> endobj 13978 0 obj <>/P 190 0 R/Type/Annot/A 37457 0 R/Subtype/Link/Rect[154.800995 323.290985 396.520996 348.320007]/Border[0 0 0]/H/N>> endobj 13979 0 obj <>/P 190 0 R/Type/Annot/A 13994 0 R/Subtype/Link/Rect[154.800995 310.290985 293.790985 322.320007]/Border[0 0 0]/H/N>> endobj 13980 0 obj <>/P 190 0 R/Type/Annot/A 37455 0 R/Subtype/Link/Rect[154.800995 297.290985 373.881012 309.320007]/Border[0 0 0]/H/N>> endobj 13981 0 obj <>/P 190 0 R/Type/Annot/A 37454 0 R/Subtype/Link/Rect[154.800995 284.290985 364.681 296.320007]/Border[0 0 0]/H/N>> endobj 13982 0 obj <>/P 190 0 R/Type/Annot/A 28509 0 R/Subtype/Link/Rect[154.800995 271.290985 354.471985 283.320007]/Border[0 0 0]/H/N>> endobj 13983 0 obj <>/P 190 0 R/Type/Annot/A 37452 0 R/Subtype/Link/Rect[154.800995 258.290009 282.962006 270.320007]/Border[0 0 0]/H/N>> endobj 13984 0 obj <>/P 190 0 R/Type/Annot/A 28423 0 R/Subtype/Link/Rect[129.602005 233.589996 487.462006 245.990005]/Border[0 0 0]/H/N>> endobj 13985 0 obj <>/P 190 0 R/Type/Annot/A 37451 0 R/Subtype/Link/Rect[154.802002 215.389999 292.131989 227.419998]/Border[0 0 0]/H/N>> endobj 13986 0 obj <>/P 190 0 R/Type/Annot/A 28346 0 R/Subtype/Link/Rect[154.802002 202.389999 315.471985 214.419998]/Border[0 0 0]/H/N>> endobj 13987 0 obj <>/P 190 0 R/Type/Annot/A 13995 0 R/Subtype/Link/Rect[154.802002 189.389999 319.791992 201.419998]/Border[0 0 0]/H/N>> endobj 13988 0 obj <>/P 190 0 R/Type/Annot/A 37449 0 R/Subtype/Link/Rect[154.802002 176.389999 323.041992 188.419998]/Border[0 0 0]/H/N>> endobj 13989 0 obj <>/P 190 0 R/Type/Annot/A 37447 0 R/Subtype/Link/Rect[154.802002 163.389999 355.071991 175.419998]/Border[0 0 0]/H/N>> endobj 13990 0 obj <>/P 190 0 R/Type/Annot/A 13992 0 R/Subtype/Link/Rect[154.802002 150.389999 332.60199 162.419998]/Border[0 0 0]/H/N>> endobj 13991 0 obj <>/P 190 0 R/Type/Annot/A 16129 0 R/Subtype/Link/Rect[154.802002 137.389999 328.122009 149.419998]/Border[0 0 0]/H/N>> endobj 13992 0 obj <> endobj 13993 0 obj <> endobj 13994 0 obj <> endobj 13995 0 obj <> endobj 13996 0 obj <> endobj 13997 0 obj <> stream q /X1 Do Q q endstream endobj 13998 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 13999 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14000 0 obj <> stream HWkoI޿v>9̤ EXbƏLC@{= ['O:RuۤiÇ'd'Ϟ&$62KO3M5$3k&9wb̗u̧''8:y2NNkIEd2i"+x|2G.f#=9Go7SHv˲ӛwRO׳z#Bfy$K톴.i:sklf^'¼{I*.RV2H$UJs*W$1K'1bYYcV,Zm^brSp{{^Wp>Q}T#pϕϕ///// W[&Vb%F,Z1K{ VbUkhĘܫ:Z VbUkhĘܫ:Z VbUkhĘܫ:Z VbUkhĘܫ:Z-Z+1fi#hĘKYڽĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hĖI{ Vb%,^b{Z+1fVb{Z+1fVb{Z+1fVb{Z+1fVb$JYڽĈZ+1ficpon ]H*Rd{ U @+(Ҋ@+*ʁVr+hJZ*VJU* hUJZr֒Ҳ@*-r@KށK YJ ^bZ*^b5lRZ cRw .XCʽXwuT=ȽT=Ƚ"T=Ƚ"T=ȽT=ȽT=ȽT=ȽT=ȽZT=ȽZ$,%10-r/10-r/1 -r/1 -r/1>-r/1>-r/1>-r/1>-r/1>-r/1>k-1KkI@K>WiUUduLkI%:c|xPclt$2-:rEdYpj|5M=6i{3YjV!tnfѱu$-]o__H阣7uCf9Y,zfn/zUo]&NƟخH}7ݏ}ҵ+nziGѿyygهٗO+d}QΎΎ? `<O^BI^9,F?>$ρAoˡhR1rpv=V1uPӧ9&xl_}S.z_n2EF|Ѭ|U3§e7d}sیуiW=x$ͅ&ICڃfC 7>ifuX{s7\Zb(RۑcE4v\S7p8ͳ_/O_%б;߱FbK=Uj{@M4 iJD{Rw^>sUi~ӽYl یw:n}5ܹf} | *RZhVPZhEVTZ9ʕVrUBi@PZ%*V JUJiU@Z.Zc֒,вJ-rJ-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1fi- ^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ#ȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘT#ȽĘ$F,{1KkU| ۣ}O؞;c"F?r{Cil^μ˶|oYUΌQ(5_qc5.)e_;l^w>Oâ>ޥjV% u×, tK].ELiIxm{~EkeD6@shѢŀ!K²XiH|h4y~3Oëڳ2hgNK2V eooڌ %e{ƤnQ("܅Wk]8J^:N4-wc&"f6: YN6gNR( F@C5G$k-U^\ NGɜ}=qEKٛ؛ۅplnFhojM >N]X_4UG:G=~ AD@~ڻO@,&V|n⨯XijxǼN}6' "5?G,#X3 xS) M Pt!_\m4 9j5aHDKB*C`~1m.,9g/ l%I,b!j$PjdFے 闥&d_f:Eѿ߆pJbo "VƓis6Ks@6]~C__MfQGXrAw,m% 2?[Cd+n?=UY5'OFԶuG²t)09'V|CmO;w%X#?YaT8=5sJ@KL1ffXl ?37IwCKlc,J:2@&lS2q)^GoMg$[͊ l4T8$Azsqa W0bSf_)Kt;\^+cQג]I !EI1 OSy`zTLN̓)e m*nCӛo*)`ѩ#6:Xk=RNybԪաa cot0G?< /snijܳa܂B(ԭc̖ޒ GO(aÝLKU/=S=>9jn~7$Z5'Ыi& O6פ\'‚p0~|؛9\%Y`}uxrnuV?:?ϡijEg@>N-Kj%DzKqqܒVeJN ] h'j񀳟UZ"<yynelϖa=̾5@-+cJ\I•u #8K X$Џ"> endobj 14002 0 obj <> endobj 14003 0 obj <> endobj 14004 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14005 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14006 0 obj /DeviceGray endobj 14007 0 obj <> endobj 14008 0 obj <> endobj 14009 0 obj <> stream q /X1 Do Q q endstream endobj 14010 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14011 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14012 0 obj <> stream HWoοb4+/ M(SKQҥ{7>\ĢIkW߫\={vxmJWr,VmruթlwϷw۾[[?v]ټ6VU.bTe^zLQ\ԟ;9Ͳ鉛:BU˫u)*9q>oSoWKҶП8:Y1X9mer&-sJ}ʢ+ I7u g1pN8&w1bq,,+n4ϱIJ-po{;Nw=p{{>A}p///// G>ĉrX= cĒ9F,cZ1bcEk-h- cEk-h-Lj܋ZZ%h-Lj܋ZZ K,Z #p/ZkAk9h-Lj%s,@k9F,cĒ9X#p/Z@k9F,^ցr,@k9F,^ցrXhXbrXh{ZZ˱{ZZ1bc̃rX= cĒ9F,cZ1bcEk=h- cEk=h-Lj܋zZ%h-Lj܋zZ K,Z #p/ZAk9h-Lj%s,@k9F,cĒ1z.e(UG26Be٬/t]ioU۷ˏW_'`W:c F[Ux8ٷC8[?}vknwO˗/dm0_p2ڙ>+]Lq!׻?o%TXN(Kmg+YQ%XNH[ƳlﺕZi㯯Hf\Q5Nu4_+<:jp,?O`(eC8cOf,J{NCf٭o) oץpJO"” wBIuvrJB$XKWtu=LWYW0 '.Aԯ :?ڈq.:StqP{kleuWWLjD}>QvSO2Mb0ͰiWo:rƚ2N@}aFn]n7fm7ycu>46|[8зLjKhy兖Z^hVZAh@Z*V JURhU@ZЪVZQhEͥLj%8XheZhYeȽȽȽȽȽȽȽȽ cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cĒZK,{ h{{ h{{ h{{ h{{ h{{ h{{ h{{ h{{ h{Kjq,@9F,uIa]p~_ټ6VUj+eMz,2Yӌ?^vU•3s~5:6[>=.@xaYz(6jF~in{إflA4'BMr{8[^cH~ƋV+&.6p3<2%~LXsôÕxɳ>jݟo2><\sEtM;2<;oCswu|hv7K3#!o;]o)&#>Ξ{M:۴J7燎Rf0;4к]ߌKIH!զvC i?n318Ѕ(x*mMuc.QXJcnfq9ĺ쇻z] v^ً7ϳ \R2endstream endobj 14013 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14014 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14015 0 obj <> stream q /X1 Do Q q endstream endobj 14016 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14017 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14018 0 obj <> stream HWkۺ_O jԣ@^bܤȺlhmzW[KNnZwFli8A"zr <`_0싀}/%þ ؗ @-m"Ũ6@16D Q!{jZjC>PbTKmbUj Pj Q @Q-!aV16@16D1*FԆ(}ZŨŨŰTRjZjDQ-!*dOmbTKm SB(FԆ(}ZͨŰTRRj5ZjC>PfTKmbTKmbՌj Q @Q-Q-!aV36D1jFԶ ZjCTȞŨ6D Pj Q @Q-!a06@16D1FԆ(}ZèŨŰTkRj ZjZjC>PaTKmb5jmYFԆ=Q-!*dOm ٗiY&g4\lj.XU$Eg<,β2oO5.]&ۯkEy\xS-7%u!\Ew߮Ymxx5yͿB`sI2N]-4pfT)uF2e {05yZ,RUx)tZIvw 2O sVou Pq^}Bͩg:(hOqLZ4+awbY>ĺؚ`\{G{qg72im܀'n@>ŧ`TtU>^[Ÿ;[` I)C\j!!%K-wd"-2nsZp}F9m}m>f'k1nAw Q!_# 7O#US$ȸ>vnjgl!'ԧ L l+dCWr$ob&u"Jdg[|G&SogbbO. [X"~KCE^7WvS&Hu 2aEYdՠ ns6u 67n.P.#KIN!Ͱ"M!>KWlcNqT .6ǻ q!槩&f:=+L)|2Wqջܾ!g :-%\' xDZXr$j = G<}g|u ɭ3lG!&Vǟbl`\AZtvU'aw)Sh٧SLiGe2>씖FfUhV8ۣtnݵhIUw}5֐>:-g(,4ASz_qZ zv.k|7K {6NQ뙌4#.Ϸx+Eo[oe_THK+_ PSzK#|K0S}3̘\>}*AnQ7nX7>>W.n#Ywewt|4y1ެ{ =3No*UZ`?8|5NN3_(|A"~Hhh nK'd{Uw \uUOess=KmI;мfzJ#W@K<W AIҵбKl&NvwSl'PCy8ͷj׮R`=|v j4>)Gև>=:8㚧Eν@%/ֻ?$]h_35d91q^ U:l>EuVWg0QKj}90E} "˦?mU Nzt1m#yAQE" R4vUVλ/7h |>pֵ$)S)mhmIAǍP'>ѻh@(S%dSFP׋új16;0cw$UC:ӓ۬-Y̫z^ JLf*+$ch,>V.Fso P|cz~EP&E!v@H4i`LJM&{>M^c}N Tz0) @Z.JK_ښ%dqNp.`60Er9>0aȻu2͢HFLXhy.,:vgrRpfz>Bs}T\)ann !5h6T{qs*/D/Z-踖ŶiTl1 sk7ݮ^*ϰ?P4lWۊJDƊޖN,E}Kݞki'_"K]HA d1;1"7͆.42qSnFl>dyIm>ƞ|QQ4vڟH̙o?]Т-D^N&YAQ!US' iyT0B pR|@n,6TsRC=1PbiR81P)RXӂfgTcnVj##!or$#!uL¸KYHL_IUKTCc~EY˺jNxpY̯ķ HNV%{yHQeT7L0ؠ{xo<>ﻉ(#P1 I碃8z{hAfEV=P^?poJCo!ORP#/+|>"]E_zW۹mB_+B4ZW8s1 ܏Ig(?C Rᨁ>%1hZOўNa,ާk;]>]`endstream endobj 14019 0 obj <> endobj 14020 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14021 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14022 0 obj <> endobj 14023 0 obj <> stream q /X8 Do Q q endstream endobj 14024 0 obj <>/Font<>/XObject<>/ProcSet[/PDF/Text/ImageC]/ExtGState<>>> endobj 14025 0 obj <> stream Q q 1 0 0 1 25.080000 9.419980 cm /X7 Do Q endstream endobj 14026 0 obj <> stream HWn}߯Ǚ ;w?ƊA "ΒTHʂ>Tŭr@rtwuթ\{?Ë'W1/ǝ5Gͻx0_per6\igcJ6އ)O帷hq1OD ~ti0F7܌U7nF/>ϣ 8׶q~+>;,ӝ_rFewgwFxڊKЩ+jtR]?7"o6xSw#-./[і`+ [ U ^ͲK ȭx< >8LWޟqG=8|bbv^K_Z }j'ţ|s NԁAl(xR$W._w]rV-\=o:,ƴzXƧ=w9ad !5ZF2|#]a 'W3%.DZ km.}55-?/-ͧ NJ֢gʰٳx]2|cP`Y+[V6YڟZ5*IWdUY6o=)_] -w)-O~]lk%m3e'6R)NzkR1rmF׽l>9aLAѭ=1 vd}c*lJҜur=f8Wc޿;~6 O?xa狛r)x>/RM~:29_i:aۖm S_Ôm:H-E*ۜj/c3cJkBƠ\]_k{F$wpʑ|,-/sz\8%]KfS+Q\Iq( PȒ_~ܯS=\؏=Sj2i*äWQrty nUo$xE#XN+ګ#ɅRc^'8љ ovNjBTDkتiA@1.NG UԔ)R+o!O J^Y%2)$(OÈ+7_Dmt)Su21*`(w^fMfւU>nwdXT¹zu΁78ux ӣjqiܖ'u*b;U=o.nK$$0Eiq+ә[S=*z^mv'@IH6XWy5?#5֨)jXP23K4LR#"xXQ6_pE"O (Alm"V2@( @5V:@ep)R L*^WU}YPTČ%v$9-AJ!yf7(ЬTOc=H@㵽يӭJ^ ℈B0 GTY]ykCȿ,7tBa"+Kq\5Ѩ4#>e1i ;en% `ЈVPDٓk$GY E[=VDK<U5kv4M DeS:;׷gyVa" + :%k"c14YlbVѧ.!BRڿe gd%^4Йm0](j^dPKW DJvFbIRmN*4'&Ldbjg9SգIuaGOU'B1 pBZM] d2&Z:#~bq^lǧo·L|[ C9iEhI"6f5s֭UcF1A9WqٕyEM^w&M[LUS7RJg2DZ gx?(fRhV)]z2X Y߂0YgYrMp$@)Zq lYuxY7xtsYSfU+- rM8/^^^ "a@-4)@}nE簶.Q1/ )V}Ft+X10|tc(ƕKHFSntfx~@ІMJ ]4kӽ6iΉaJr:_ɚK ! Ņ6 &`fůz5UN#mF/}np#.Y.]{kIJ Xgv]4(ifMa`I@*܎_6sF01"phV Ɏ;J,gBeyp @oo~nޛ f6B r%3u[SPy*__jU_l¿P4ٙΊۿ~NOf]߲6ByVl ҋzۦL2/ntdn :g}Z?bg]M`?%JۙQ |)Y[C3esz5, 7LFVq%b̊䒪$;lwf [(yw]!+oBj:+,: OFQ+0eKsK9DRa ʄa\$=. 72Q`՝J{P4Hr; >䎱.!1l2\YJIe`fj<JE /`CpT/*$L三Z%Nk(&Ӆ*;:(LjBc57{l{"&fQJd$f2S X0iЌ$NdE=Y@HXu[0_%n0\zbBsp!6?ߓʹM[NflނIFٟQ dkFxp$o2Gu:(˟X*[ڰ V ڃ<(Ouǜ<,y*l{tF95t2 uT+D/KP+BvĴsA$_ІuKŏ @[>QIƫ쩼0c}s"o/wr":Ʌc/8N6+Vɭs{ǼyB1 񖳘H#!9S@Z`g֤[5#TRl~,zۧ˲fq_R6D€Y IM"Xf\6ʃ:a N rMj ?jy+3ǜ&tqrK-on,XB"`qKk0M:_oz MkƲx/~/"<ߔ}+Fװ[& _LAG~6%Q[%hZbNme i"cĘo{yx¤T:67nqKBXc/ezsXy @QԠ<B>n:*b@-Qddxe?\lEy8%9CbFj^ð}F\hB<0^u'/c=/*Re!fQ s*JZ6GDS) UaV6"okmXi~_-;0 >{k x2Ә*nLg0F\ʀ8wKfa1dCcrt=؅%,u!}:T srIؓwU?5 4W;Ue9dU5;"d Mnl ^X3m&m`j ;) cg ,vD00#Vͩ4xTvFq#\ZQ[aS|}24naZyLEt#thaeTVspEZg+h ZIN=잻-* Mu⢴T4%>t@nGS,nA2 h貶gZX \K`]7X>4mă ~GqvRwE4uU%>s3muPtK:E•~V'P!xc~b 8m "98vW;W~  ؝E:xgÊ#.Mc@gV>ƛSHMϨ@մ[We5k!u r*nP U aLW络KP@?%HҰk}ڕZ, MY=>;z2b+(y !LXý|#Z MRl k{b/9>O׼At^B}L5ӴA j[m\D k]'4,T pH㝡^@bP0Vw=m%ӑDgoi,RB62ALCRDThLU߉}Z!!=i NQS)_n]gjT/kPr@DžSfJTxo`k)|),(I 1ޓu _|Wnk-M6p+ UMTNEj̑ƹjكw0^ .TOu!g :¼G9%i%fйa&{F*D=MMR)6GҨb]h8(ԑWRb/\鵔Fk Qqk݅T!<ﻹd.K܂kք媅8 CpJF}>%Яř-bbgb]>6Yzsz8_XkYr>y`"bk:ݻꁈT "דHCy$}QqE*OoH5tAh55Rs&/kL9Xeor͌^zMa}FagYp =E{E2f{ZM{w.eX-tyX`OԱUKE yƫxt^U^TJvR!7{!8.VtmU7Ψe Sv}cW7J!ŒU^ubQi' 'F嵅^ZmSy| |H,j/b;?'Ev JWܙHtRnF+{g 3JWJcީ`;TXt^w. O@#|RWzf< hG-֩{񬎹j Z?yjn߁=@) 8\+V' f҃}Oh%CUfpBGCWhK/+\ȶ҃7㡥]5 vXY *$LwT\.(/)]S4sXj4o,7Ol%yb}=_쩡Lu/u4UxZ֖*(S9hcp<*>fyyzS4@]"]ܨd&+F JBp_w%vOJG4Z~`_>* t~' mf#BG T<&9["3iо̵gcJf}IѸJٮ]i˶oHf?m -A8J׺a|H[+ 7jYoɫٺ*X~~{xkΖkzg57&K^^F5ޱ˱|ݨu =w|~ƕs{Z:ɢr^wZgu8wyݳnH@xxYȾ~??X//<'`?}y2,% TP8fd<+ӶPp GhQlI簑PjnjEڗ~`_7Bў FlXuM??qo#VCswłAHA MʭBފn~9|θf:?_E}[8'*4I\8ވQ07& r%%GOZ1juy"U];贜; ,u} ,qem5,^9_ҀM9Zn s5:7@94#[ #\{81%s7א"W92Ѓi)7,~v.A 7>7 zhh=43B7"4G[oGhFFhh3B=BG#}(B"~GqQmLYz3h .m{"[Eɫuq2-u-qPg<:ۣ̒ksxU#^?=!m(:tG/ip:42E+*vF/KJjT'Gd$| ,+.`ƓB.Sv})̤9v&nO2{["Mi <9,_@,9Lyxfr{_- UàCeg6`q5V'\JD͸1([tJFe \ETVt}ݺsfRevfY3%|Q/T]YN3}!σF,}֥Jk>eQJp5lW%( Ҝ?*ڍ\Uw?by}2jnf;;+6 l-LODCqۮm/-) hp>Sߔ¡pξ돺w'u7[4 jF:  iQ|3PIG}GUF|x[:EJZmJ*C@RT)T%0_CCZ/QkR4:KgշYY f̜Q[Y{~fL-掏ӂhuo3U+&m[us׫Y>,,$[a1b /l4'ŕ-D8dԸl$;t++*+VSib&%-"v~}q#r,BD&?:eƖc9h*br s 8gj֟?{]j84hG Ql*(1 5a&' Vywܧ4|TPۂ|9268٪8b@&vd~A=!Q*EG&wJK~y437C ^$&4Ʋ54u;20HV>Y!ds~bE8]!*'LӴa+4Sch!=34Ekn,/2ZCqs`MF1(^NHF [bm 4/)Aep-41z M{f:ʲ$H]r,%fԎͲ8jp_ex"Ly~7-({z}+EPl|Jybp9V} zMlŸ_j u\6!(+psX׼BSp8bցa n%@θ>%ƜE2D/j`[Zx7Ƹ[?HqOqOt?naVtnȶqK\+#ƙk\k+71`/)sj}ǂ|7)'X{WHkl}',y(aEd2cp.J2Xz&iL>A+^t0, 7+(W3Qŏ;Әiԋ^}Rp7Df\H= ACV)B^Sp}a1'Yxy@q%oחxj-U4b2QgpoAE{"QHߦf0Ćzϕנaa*W$,arTj2$w S\SuQ uCLZnKr5zVG. d,8;cUBJEިުe!HƥH e#x=Y0^ y) zN-0#& eu 4hG=^w݋6 `I>O="LJ~dӗ.IӺL,/|i HFD\T6L%pk'U[q8W;lAAFMX;ΈȪ~3`aʭ2#^zUv]0G'Q9KGˢ1A>s ~l:OIhƚJ3bʅ"KcЍnD`i:2.^jzdG] "gb40&osw$yerX /#fYwp׆QNJxL5i'6SfAPR'.}i^NZ~ӑjԪ#,>:spGLYŷFjSݹ+i^!F4Ո:!: I~Rp̢3ÒWšdg `0%:`OYhz˔eU0V)G,1xG.:ˡdblL B>[+jżZ2gH}"R0T:{nQ/d s4 0_u6%t~HI7^nasV#{,5s=x] rXsd@҂MF+y~=fr)ã̵>v){Z k 3*&TN=uL%> v{Pct|0. 𕔸Rzd$1v.! !˙kS&P!s+ȃiI~j3!֓|e%9)R]Aʈt&&\@{YrYC߈Y V8 mUcLu b7EU7GiIJu{D0,kiq tY+(qdAש^N=rO5f_{S&(gŧuod_Ƹ9JL(1}Y9Y&@w0VYjImEVqLW!~KÓu8oEA fAiVuC TBg`xͥ\8䗘d)1Jx#N5%g' ;YC  ײjna{߀zyKNH8PB]GMJ>] ?V )9mh]awiil#%;3$ێ8۞h}(=εHP|G]G^`./9b E=vme~Vi=5[Bi==o]GRHuG P ͝fm7zTF<ptWū̖jpkIgida?л+M(3MP,e 2X P&P5фjkzE x~Z2Ɠ6dcp\Mr8ꜬBרZfbl~YOIs"V⨱ug 5)I3:q5 WZ_#,3Oծ4 aNVܽRb1Ieo4Hp8*}sFHZRP=Mo$,npZuFؼ뮆0G\ ==|Aon" Q%)\A}iQ|b *=AփrP FAYEGzc2|]PEAKT" k TO5MF{qL(Q;DiZ&_CuBdYL65"Q+iMV5W&EX{&b-^D]{>fZN^ Ze28& >n v\lâ֘j ]ݜ7{߽d{]h4^|OOq뛏)7^>;XXc>_f?:ثfolm/o^)`֠#luIh9QTŭJ~Քݎ܎FAQ@*@ ?T%Tf= #fwQΊW7лC߼ʱ6P\HK[]&_n)>=~O/ ӏ|_n?jk[+>?8L ?R>}Ll9?PaF9mc;gkRr۳DmMϜNOޏs;=hmP!Lxǒ9?{g00L-oɤQxֲ !|G=ˮqEjD>GHU `2]3uy%vOVɱaeG|x~};N_|G{971:tmmFP̧ҏV&3{}[l._P)\Ҳ-'/(7weg:!ۄ=cL`th8xҁ}" 'CJvpg2^v2귀 (>xcyf$jFS}RmkblTSDc4RV@|-;D؄ﰧMHE>bb: ;` Y19Ƭ A,OTt|`ݴñu܃{owzP @ XtU$$5\p<׻IB?^ʇ45G4^'3 a ;hq+MY#fW15i/$ɮ :`}Y"^Q?<b̗FV6Z-R0%y㟂⠬~H!y{Y*L)Tzd|ʣp:(gqY4`.DPzF0jD̩ʍjȦȏ!?Er+! ~R"i)c2l%EFdc=O'́_L~w[H#ĸykTݞGޟ%tܟZrS$ӏB !~0L}B~.4Af-7hfS1:[׫lu&ww)mkL'L)ePe&JAӖLSp skEMb ά[wNeM 庭v|MU֠P8-CC%`Az"o ~*U.e#v>J>%Ҧ7?>嬕VH5T}G542و䉛Fg m JHƷrpB aHUw F$[Zc+DQؗմJ0WK^mZ+ {Fܴ5ke'.HOah*:?zYt\{1V՟J^X$) ^jZ˽8&bV?}؆ݻك%SL A%w|A@lrbY'Al~j4Z $:vSI|bv Α_QI &TO4`[~G#(3ǁ /x>AqU:^~E$ghH] $bmnJݩXhc'! ?(k=8Qu+M[)!83:lDu5JT'$w 'qqF$KJ9C3T"VЏ9x|HO%~{X,-!.Maq7鏸7m߶~$$ S&xqkܑZ=[^L^}7;,NȎRqⴺse/7W\ޞttG(UIm0uVF3 "wRR%8Y$D7LqP$|#koe8kl&=OU}NR;zN1LZ p@U*l7vppI&֍UvU[d#h)VΕ;0Iƭ; ]Q ŰX.ͬ9䶉@^N9?K F`Ո$̻yb- >Y/F'$`y \4aDdEݯN_Df]֧ieX:8 zX(oa_lʫr7J1%ۼ c=}%mL^pw$0﯏>%6}^s= :|+{~^K{GϢ^\_|pCz4.U<0PS* r#(٭&q$Km2OȂ{7Қ0x$%+ h c+d-& nTM*aN<)ZbITpV$]^ ݘrվ(|LLsz>Hv/kibˉe')UK;YsױeqnLy>,"s,2TKٞ\cIdyW'mwj9^(n5enei? Cendstream endobj 14027 0 obj <> endobj 14028 0 obj <> stream q /X1 Do Q q endstream endobj 14029 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14030 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14031 0 obj <> stream H|WێF|W>,@=:ElI X ȃ08EG ʼnm{$J9A Q.6Z]onߘԼ|ȆVJO2g&l|iM4OnMwtm43ѫE4_؏Xx*$5Hii(.0[|>&Y,.KfB sy9Pu_̮]jﺺ6x{v  y; qÂÐrCsę/Ʀ}kHͽ*'.#俛*&:zUTS M"IYz:Z2ޭ%F,;NW=p{{>A}P3>S3>S3>Ss>Ws>W P P PKTKT+R+^uւJl9Z1K@k%,^b%F,Z1 WucpZ@k%F,Z1 WucpZ@k%F,Z1 WucpZ@k%F,Z1 WucpZ@k%K/ @K>K@K>K@K>K@K>K@K>K@K>K@K>K@K>KZKbZ#7R@`RgD|pƚCT NInJ}b]څ4u3x{4Kܘƻ}ӛݘvf->KP&Eޓ|(I~|폃sD],y'xl| H']S߷_o9^WLҋ0jol)xw#p{zxn~kL_&hdw ˜2 _fS˕n_fȇa}G |"(5}aLj6~6?kZY{lBT]տȂw&qVۤ 霯Ymry*^9ΐt!.jί>iQg>%՘9ԋEMuV] ,^f^F@q궷3]`ښp@`GAuoyO,rx}K[fKEIaz{ƪ1z2맆Qty:I6bëoUE߼w?iTɖG EniG+*7Uݙf&+Ď&D/?ry:ē/ĈxEP@o#e;(y;K$ȻHv#=ng~4>#6|I!=ݔ\_tit_2^B-7?1Kse-}~(˶=o7޴zܛv{|50ᾢb#َ܋zs?PI=m2,%n2?,ȃ= ɞN$ʞN+1,VPZhLie@+SZ9ʕVrUBi@PZ%*V JUJiU@Z.Zc֒,вJ-rJ-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1fi- ^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ#ȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘT3{1KkIX c֪hyE4_؏Xx(oIeO. ֻ͋*0Y?o_5|prFgmRC/v<Դn:z{|~Ksz;[fwOV'Vv|{fO_(߱hsIRtDr7bf.B*z5)NtlIy8yryvzſ5au tKȰj(}x=cʒuyz>~]f#jzā=F^q0ZVi(=BCL~Vن =srU\9NԿW*y(1Tc;1}`¾Gq>|> hwԠybKEY>e7KwbT,c5P esFf1$D)WMe}^tso%( +urMn~Y'1eBX)IFǻɰ鄕z V6*yU&zцicΓՄ:vRd^]yRø\_tazK% bߝ#2s{wԻqPZ$f9V_=h&BcAͳʟVF]iAꭏBt_FKͫpjoQ(sSit; Z)Un. <}VYs1g8ܾ\[$<<^4Hau_&(Wvfԏ`b<Azk=p0 xYNiLñiLmgNۡVXAh Leng)I%e[I#fGC^4~I5?Ti4&I T%/Pyu Γ< 9 ̀Hh Wyi(#B9& }9P{hٚ51Z}s:WZ-r_X|#)PY 4Yxk- ř4;fcDYgySf3 ͤy&Tt=Yǥ3׭ā[Ӑ/|endstream endobj 14032 0 obj <> endobj 14033 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14034 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14035 0 obj <> stream q /X1 Do Q q endstream endobj 14036 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14037 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14038 0 obj <> stream H[oF+ZH+m.v\'A>XAдT\RNŶfIDR=;gDz[Go^ %^uh'ui𹕩Yj7,QbhшdtROE>O]֋D$OFLdHF>7B2 0A)2M.ˇŗ%f1mtL Wx{fFZ*eUyGydݨa(82徭E%VJ/8=SB$x(&!ɧ$xhe H֔BZcg}Ƹψq9>'s}N} dV3Z&Xu5b-R="Ec (&X㞤0Z$I-րbRH1Ij ZEqORkb (&X㞤0Z$I-րbRH1Ij ZEqORkbM,ZEPLj)kZEqORkb-R{Zˤk@1Z$I-"Ÿ'LjZEqORkb-R{Zˤk@1Z$I-"Ÿ'Lj&I-"Ec (&XuHQXI-"Ÿ'uLj)=IcR5b-R{ZǤkbܓ:&XI-"Ÿ'uLj)=IcR5b-R{ZǤkbܓ:&XkϤkZEZ CN(g&E2* -(.6A"͔h ~ZAndQwx1dm҈(Jd)SņL:nh' :]T➃ 2p;KnZNEռE).ʺ˚]1c7LOl4{?R?\ nE?{MWlz 5d~\U^hzf8n,}|O*?H4|]07V9iSr 6.qG¿,dil{MndH쯞Vx]s;ـ-]LUYNy2LДMyXKٗW [ѰͰfR׋۾f*Җ|4|>Y^\quG~Ro*y_l>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14040 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14041 0 obj <> stream q /X1 Do Q q endstream endobj 14042 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14043 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14044 0 obj <> stream HW]۶}ׯ $%Qn>Z4hы@AR[r-ywH^i8N.!p33o}?,g䟄W i#B`MrvpְCh_uphV$O^.%,gMRU9Y%v54]/Sbi-|*3q>n֋WBα>RS9؛eg["3NO+e?l͒J0QnsT̰M'Ƙ*Ts͡bw(c9&P;1yl ؋ ؋$ˈ$ˈ$ˈ"ث"ث&눽&눽&}A/"ؗ2b_ˈ}I/#`o"`o"WH-A*fm"Tm6cbC# BPHP-P-9>R TmET+bbC# BPHP-P-9>R TmET+b.j͡b(BP1{ls=P-9>R$TmET+ bbC#JBPHP-P-9>R$TmET+ bbC#JBPHP-E*fm"Tm6cbC#*BPHP-P-9>R"TmETbbC#*BPHP-P-9>R"TmETb.фj͡b(BP1{ls}UUX&]r.g8[n{;<(*%-,t-[b.yY4τ̹Ynoۻ۵}ݬonخ[ۻſ<Qx 7t[2ܷai63h55[DpȠ\\AEWXz𹷫N®Of0t3VP51D0d%\{p Lʌz [zC& c=PU^dei.y&CUm:4 K>>ag@1\_%A DiЙZLt~+LWFwY[_ίS>~x:_4-U^d9-IVV-2w2*TE=`>~w50p.w93~?1ČQP.j:!><T go/W6SisdZo)̘jea'nR{' 6gSP{ĀDj!ӥ?-6NU;~?o6蠝0]lt "|^%KG >!w~D^3[E;t}M4ۦۧ;ߴ,خat\ z>Ncx񵐎r 2Z£o6^pό˧5ЎC*'^Jb2*+ױc)|ƈ(&W}߭z HO` 2) (21xm4k\(&u |>沔sZ~w֞˥-N*](Jև N㽃sMYLfZWX &73EЍȳcΆYt!:Z(CAUh/ܨ~ҕRy  {و+amAh=;=oѥ_NvŶ~oW*KjWgyd*3n>[LnS]6NkFl]ْ Y8ܷ;3ݸpWvrdVsN?mJhKB_O3}3 wI;@ EFy.ǵLMTddLJFB_S(a&/m l0`txn׹ꚟ1 d&;XCQ/[v!l^S'2 R<^_`,4s)`'PLZ:G>@ru7òAGnv7~c>~>ZdJ#o!npN vQ tGp(r=!&ΡQ(*3k.@LcZzD}~i U"Cis!cAff4“ ԋj>\:GJ)XO0ҙ9{0Uȯd,_(ҿL .@LL2M"^.ȼ2׊J DoY{ilC8[֦@ 7:nxK0Cr{h #t2R$ TT`ELY(n{wp Ǟ.OF b_'1e1N\dМI)JK*} K$Õyܜ`*r(Q* 02:]TݟyU\::fRsx}nMe <-_T ĊC{ZFb\Xܗ*Z0*p) 퀤nYj'_;[dh,)U UWHJ l/uI՘%; nA 6GG lgK\{8i@ong~mx VgJ䩸 ZеǍ+s*dJ_"3֢]a*[@Vh&cHB%Ict7BsT0q jϜ擹J<N1I0+0*}($PȞҟ/*T uҮnYRD{QQIp.iwոj\EM6VMa~rj[ZFI\?(\fT4MЫra:nH= A0Hs*( WMXNB#Y$.^~et@A.鄜ԷLj*ELUN)dh cD?"f ̷Vا¬T4>+Bv6 @qb`o*o?:ͯncYw_rаFk1ޕ޺  *)TyIoIJ^8` wҏ;WZ!]vof@.8 $W:DWVuo~B72vtyx:%7T4x1]Svo v Ĺo0[oy>!HzAcJyZ/*ȻC 83v</ߝ BOzs Q B;9GNs)6d13 KI gՄLIybynbDAн.LJV_CgVOz᭳l]nnvƺHrʼn;8w7Kt[̹s(γgG!1HoOPvkmε.7B,n4㱠Նm`H5ǦE"D b=NUV70Uw/90A=$ekۡ7ej˥ } H~endstream endobj 14045 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14046 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14047 0 obj <> stream q /X1 Do Q q endstream endobj 14048 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14049 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14050 0 obj <> stream HWkoܶ_2|j' &N`/PI(\[ZW+'wF GEh8{HsfȋEݰ~x{uqϗ/#3_jg*J$KŒ&Ug`% .nͮh/;4ufu\\$`m$,1Y3aegZ`!*&P.w!|P`/=`/=`<`<`<`=`=1>cc}BO< >اcS}JO=>gcs}N4+Ѻ} պ>D]պ>D]|Pj]j%Zׇ(ZIPCS$TET+ պ>@u}"{j]j%Z(BQ{OPCS$T"Tw}"Tw}ٻ>@u}"{Uj]jZ(BQ{OPCS"TE!`Vu}"{Uj]պ>D=*BQ{OPPCPC!gE!`Vu}"{Մj]պ>D=jBQ{OPZׇ(ZM!`Vu}"TET պ>D=jBoĄj]|Pj]|Q><\3&z\J0V@ !(aI>noޜ2< t|fFS3<t@bN.8 U`7oظHRt` Y)w˂FKK :rK+Ғt8%%1/II%JSRu^RJO0@ A@`u{۴AV 0m(LR%o鬯o;>ۺؗC0/8^ 5-6Ǣ fg]vb2nly Ɛ'wjN׸ߧo>DuAWybx y{;Q) ,Nbj\f#0I'>"{4yۅvK0\:X|~6Ok۝NZ)ysΊ revyNY:;Uc7y=9mlŁQ^Mo_z Gz/t,jwk!G w___`u]0o.4Y/HM5צW'a2Ѭ Sp## ah-]8iM=R-8qK7GwK[}W!r'oW CocLD .6R1զ361k*niC+'sd*5.Sq%#MMӄ]w4J):T9̦jYî8ye|)q#RJȯ\O+W<*\=9;0՟mT: ?ͱ5/4r%< Jeg$ w#2-KE=$xtN'i"WpO5Isu"|)׽YC[s=d2NAuYSoLgjcƶkuxn}PnEbHﰤr{h c $4j}Lw;2SpɄ /j#ijm ?ch. . Q^%K92gm?PR=V_pM閐ˏ)|w{8i'Tȁ9b&F8نx"m0\ ,[޶cV/2<\Nt%֕˾QgR3C-ya,ܑ0|i[O嚁<3|,V@BBkW,#3g$r2yٙp{)s31;HUj>#cN[S[y"uT"SGad۰bv4๒4s:aIdY|p1)|5 !n3Wz1b"l]k9*"FM=* :ǦaC{<x}Pmߟejk5^R|8?8/Y$, 03<3ȵera' +F'V1#TC&&XLV8"7a%Tc :viLkyՐ8΋пU:c \S_DZ)rW_G1W@f߇'TF!C3Eʖ  j*asQZ %Tqru7 AqÝS uyԤUu1d !wwt[Ҡeތ r~KGS@W;m|iM]8\ uq'.="6`IbSSg$E K UǤ 0S1d[Zn1P!MPoz]+fYrMfʢGMjg&tTE;_s_:7o.U(6\Y(U)>4}CY(*q h۠!ݟCwXH/*endstream endobj 14051 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14052 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14053 0 obj <> endobj 14054 0 obj <> stream q /X1 Do Q q endstream endobj 14055 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14056 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14057 0 obj <> stream HV]o6}ׯ#P$vu f[(9uw)[H?9K^E___,oEo޼Y$%LfsT&(Ղ(\MEr[\]:B&>Hiyr1I`= /x0nFJ*R]uՖU\$?!8"Duڕ>%|Fъƌ _k>ҒdԤAԯح+Iq{{}B Ohtzij81"=Z۵mm]d e1`|(JΈ߻K*!Abp]"3@a41=Q)4.^px P@B|"DtgSiPlR9L:cԖ}Č ?KӖӗϥpvc(\Ќd,NVGkFQzHEqHj]ޯfJSEExk,rƭm[ڽFcYƁ.rGE'zwfcML)9IXnYD74 =ѝݖML35lUTn2E2*ٲy}H@:iNuQg}kƕj٬ Xݻ?[YT9 3FcWL?Iv)s2@*f%!K ل 8Oֹi'}S_ڂ-__',`ˆLn"-p߄ЫoT_$* 5=Tvbs"f(C}8}D[4Pi?N/gn3|2I(Sܢn|g{&hJhfx/02/q8$}s~&%p23>튣>N܍R_\S50TۭK!|Lm S+=m;6LA1W):3e':dt).~x!͓G#u'endstream endobj 14058 0 obj <>/P 34 0 R/Type/Annot/A 16621 0 R/Subtype/Link/Rect[129.600006 442.589996 485.920013 454.98999]/Border[0 0 0]/H/N>> endobj 14059 0 obj <>/P 34 0 R/Type/Annot/A 16589 0 R/Subtype/Link/Rect[129.600006 417.890015 485.920013 430.290009]/Border[0 0 0]/H/N>> endobj 14060 0 obj <>/P 34 0 R/Type/Annot/A 16558 0 R/Subtype/Link/Rect[129.600006 393.190002 487.26001 405.589996]/Border[0 0 0]/H/N>> endobj 14061 0 obj <>/P 34 0 R/Type/Annot/A 16520 0 R/Subtype/Link/Rect[129.600006 368.48999 490.040009 380.890015]/Border[0 0 0]/H/N>> endobj 14062 0 obj <>/P 34 0 R/Type/Annot/A 16495 0 R/Subtype/Link/Rect[129.600006 343.790009 487.459991 356.190002]/Border[0 0 0]/H/N>> endobj 14063 0 obj <>/P 34 0 R/Type/Annot/A 16465 0 R/Subtype/Link/Rect[154.800003 325.589996 281.01001 337.619995]/Border[0 0 0]/H/N>> endobj 14064 0 obj <>/P 34 0 R/Type/Annot/A 44831 0 R/Subtype/Link/Rect[154.800003 312.589996 311.55899 324.619995]/Border[0 0 0]/H/N>> endobj 14065 0 obj <>/P 34 0 R/Type/Annot/A 44792 0 R/Subtype/Link/Rect[154.800003 299.589996 278.23999 311.619995]/Border[0 0 0]/H/N>> endobj 14066 0 obj <>/P 34 0 R/Type/Annot/A 44749 0 R/Subtype/Link/Rect[154.800003 286.589996 325.598999 298.619995]/Border[0 0 0]/H/N>> endobj 14067 0 obj <>/P 34 0 R/Type/Annot/A 44708 0 R/Subtype/Link/Rect[154.798996 273.589996 308.820007 285.619995]/Border[0 0 0]/H/N>> endobj 14068 0 obj <>/P 34 0 R/Type/Annot/A 44689 0 R/Subtype/Link/Rect[154.800003 260.589996 351.938995 272.619995]/Border[0 0 0]/H/N>> endobj 14069 0 obj <>/P 34 0 R/Type/Annot/A 44659 0 R/Subtype/Link/Rect[154.798996 247.589996 301.55899 259.619995]/Border[0 0 0]/H/N>> endobj 14070 0 obj <>/P 34 0 R/Type/Annot/A 16089 0 R/Subtype/Link/Rect[154.798996 234.589996 317.128998 246.619995]/Border[0 0 0]/H/N>> endobj 14071 0 obj <>/P 34 0 R/Type/Annot/A 44580 0 R/Subtype/Link/Rect[154.798996 221.589996 267.109009 233.619995]/Border[0 0 0]/H/N>> endobj 14072 0 obj <>/P 34 0 R/Type/Annot/A 44541 0 R/Subtype/Link/Rect[154.798996 208.589996 291.968994 220.619995]/Border[0 0 0]/H/N>> endobj 14073 0 obj <>/P 34 0 R/Type/Annot/A 14077 0 R/Subtype/Link/Rect[154.798996 195.589996 402.908997 207.619995]/Border[0 0 0]/H/N>> endobj 14074 0 obj <>/P 34 0 R/Type/Annot/A 44483 0 R/Subtype/Link/Rect[154.798996 182.589996 277.398987 194.619995]/Border[0 0 0]/H/N>> endobj 14075 0 obj <>/P 34 0 R/Type/Annot/A 44424 0 R/Subtype/Link/Rect[129.600006 157.889999 487.459015 170.289993]/Border[0 0 0]/H/N>> endobj 14076 0 obj <>/P 34 0 R/Type/Annot/A 44400 0 R/Subtype/Link/Rect[154.798996 139.690002 286.570007 151.720001]/Border[0 0 0]/H/N>> endobj 14077 0 obj <> endobj 14078 0 obj <> stream q /X1 Do Q q endstream endobj 14079 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14080 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14081 0 obj <> stream H]SF+wv헴JCSRPIqmJL$я߳%gbdwu|iZ5|rv"ۓI=*)b0,eV 8+XpxO|_V"obƪ"8|w%m͂Ì_KYv0IR˜, (3ξ0qCrG??XlJhp"$5Ͳ!-obGy9/ݩ\:Mѱusml.`0s0 gFl΂Tơ0NdE&;}p3ˤt Yʝk@qRH&(s<ր{{ḗ{鸗{鸗{W{W{ׄ{ׄ{ׄ{ >&ǎp8}O>%ܧpd"Djf)=ր"R5Kf)=ր"R5K "XI R5bR{'H-,EwR+b ("XI R5K "XH-,EwR+bR{'H-$R5KZYu5KZYpVŚNj%ZEk";Djf)½ZIk@ŚNj%ZYpVPDjf)½ZIk";DjZYu5bR{Yu5bR{'H-,EwRb ("XI"R5K*"XH-,EwRbR{'H-ր"R5K*"XI"REbR{EkrcR4LTl:[o0$, J54YFEٌoSK-lvu}7M7h\.(כFt*B/#G` DrX꠶|Hmg |~Q< ~L"Cw,=u:]}~TWZݛvv*5!&-]7J4a+U8'cWg>\L~<=/gNV+r]?]^LN'~c\xvU LzUY~)^_cU֯]zYPGJtu?x&4V-yǯFr3as3ZV+FڤMw>=U(4dGVD)LFUN%lKEg[dz[) cx?>`:<ϲV^͎Xf{*w1BcggP'=/ /h{.Hd^o.JcӏF_{^hЕp<~'*3ϿVg_yP%+ϻ\WBj ռ܅0B+D|}^p/=4fY%&۫?-Kv3-`Ж0{r}f==:3mFƝfX/#AV0fw4ʄtdX>klGFOi3My~Vg$o:S/hTW[pXG{|XGL堀$z fw/qz{F<42ҍ9^DzsVcze 8t;|6x^T૆ǿN.PvX]л˛żlvˈ9rM0xc>v>.vl߮6{ց1賧6?^˺-Rsi`}7خw96-qvYgi٢Wl3_hxwSW| /| *{)M,n po@,|Lٴ銩);ߗ(۬ ס?ۅ.K/lbڳ٭x֧˫엓'Ҿ;!Dl.|D9 `\n\0m/5vRwS}DI&-x2gf$ 0endstream endobj 14082 0 obj <> endobj 14083 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14084 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14085 0 obj <> stream q /X1 Do Q q endstream endobj 14086 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14087 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14088 0 obj <> stream HW]o}_Gi~/ } PF@Pur%9+ȑܠhv5>^/\q7&د_e;ZUl5S#YϚwž]oVm~ɶ}sbvys5k& `Z|̬ufNaRY.7þ>l{XCGfvRY1ެ׏C~ai5o[u\v}xyj\'&~߲eMЎ+ aռk-1Ƅ#@ Qv PR֨†(KJRK^U^U5^W5^W5^W T T-V-V-VUU[}[o mž%ط{O{O@@4+ іuՖ6DKՖ6DKj PjKj҆(}ZEPmiCR"T[ETՖ6@-m"WUjKj(B QJPmiCR"T[֍&T[U/m"T[U/mٗ6@-m"WՄjKj5(B QJPmiCR&T[E!`_V-m"WՄjKՖ6D+jB QJPmi[7PmiCT;PmiCT;!f_E!`_-m"W5jKՖ6D+B QJPmi҆(}ZC!`_-m"T[ETkՖ6D+BmXB Q5(B Q5҆(jƔ3Z1=v`<`&ur\߆I6k|4{xfް-W}7/#^'mK&E\-=vs^-#l|.t=rޝLгm[GcG6HnOjue< (-wNhf jecNqÜjj9"CсHޏx1q516olAZ$?SQZjbδܥn*jj1S ce OgX4TL`t4;5gy "ugRsf-4]׶W8J2.Zu ch6r+D,oёHA Ϟ$OL\$(8?WH)[[w5w*U]ɀWN*jD'A-nZ5 3/ OrS$(Ӱa۟ +HCsgm gzb+p0=tyE?xa'IO7eo!,em܏Z .3[ysM}Gxޛ*Z,T[L7VJʹsD ZN pNLr4^l՘vw4ا>?뇓s4 >[twp) <$▃19\1fə|EG=iuOێᄪ@|Ú8h%x͖q藋}>1"wT S!s qz$ ]}Tnd>q׸>o-a낦&va׽HUZ{dJoO>m&jXaʦo.n. bk"%TDf3爂 [ي|D|[lSEisg>:I P/ƍ*fGC7F~|{V/=p!f9iR _nf;(ܧ'!*ݩP WcW@ދ&Fpa Eklz=T^5pxp!̨9rwQPoD~ kl#}VWVޭi<q4g]yYihέO' YRgqu'XAɓ:iB(Է^|*{}4]hCyzk9ŶLe-ve6#|E9EtNVk.3'MXCjK)gz> WgёJk&2֛?^aҽռor"؝ MO* R9miC3~4=nCT.ΣX9Mm ///]MfI`*R (p*Qx4K H e_&,.{ro'H\Qft7(KfU4N~)xVR7 HJ@wi( Q-'Pv{HnhΥQ ^^Qt{˾N@DvEOKv[-T̚ـtQM#T߉u[5aFk" ے-Euҋ ^sȃ{h(hv7k* і!B}ATvz@-ފ5#j̈_da2⌙-uB s6=UH Jj=MÉ.-GMйѮHVآAAxKiPTПa!6M <0v;ӻ7`A_endstream endobj 14089 0 obj <>/P 1177 0 R/Type/Annot/A 14417 0 R/Subtype/Link/Rect[93.6018982 323.234985 175.623001 342.915009]/Border[0 0 0]/H/N>> endobj 14090 0 obj <>/P 1177 0 R/Type/Annot/A 14364 0 R/Subtype/Link/Rect[129.602997 193.231995 293.141998 212.912003]/Border[0 0 0]/H/N>> endobj 14091 0 obj <> endobj 14092 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14093 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14094 0 obj <> stream q /X1 Do Q q endstream endobj 14095 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14096 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14097 0 obj <> stream HWm6_}6ZM|HZIQh lhmmĖ|ߌ^lq8NC3V:/^ ^Ee._et*R[%eNQ">ERT"]|lC+C*2[ʏZH|rX$aNL,wff&38wz_4m3eūf; 5͇図q:vN]^m=L>:Jۣ\F ,.wX~oX(i,LdE m[CLN02.Gm2D,ܥ S^^5^5^5^  ---S}Oi1]1]1]>cgas}f%#ZjEQ-!*dOmbTKm SB(FԆ(}ZŨŰTRRjZjC>PbTKmbTKmbUj Q @Q-Q-!aV16D1*FԶ4ZjCTȞŨ6D Pj Q @Q-!aV36@16D1jFԆ(}ZͨŨŰTRj5ZjZjC>PfTKmbՌjmFԆ=Q-!*dOm SRj ZjC>PaTKmbTKmb5j Q @Q-Q-!a06D1F(FԆ(}ZèŰTkR.j Q!{jZjCTȞ<ύHlE/r(~q*RZ,wUץxޖbieyqL=eީ;8?n)?ZAh5;8 `JNy&:76>^gyR xe$MT쎇'@GϷbw6wەLb~!o),z7o.>Y p٢9Q?}4D$"ӆϖ%sP*\qvƝC'] )!3!3БuܚUٶG5 K5yUlkE.wYN'ΗTTIΔ;z=C4]fVJb˕N0 =L]xܔS|N,@WLSFl>\}1\e.%zD*Ɂ-4(NŗOYO=~ ITk/Pec)I6G(Ӓ4<GI!0O@wYʺ<<]=(C1T@X/؊ukjmb~[ -}$-]8fn.obd]rA :o121|_90lYujaUi;z 8};૑F5N_mUj\R 4籮] _PrngbZSۧqզ?_ qt*&i2Wta/eq\leBV~ f^n0~AB0x/_X|/8H|JtlP2eFI֣QQL4b*%DcUKZ:Ƕsz<֫joz%H¯ӿe^RJk4w5 A ɋ[N||.g Բ,6:jDvS &Exi^f$u xi<#ɶbu b{,s5cg͹2aXb9O}?i}5|Gw>&ORI: vi(jp9꯷aGg)Ib 粙[%C6:/Tg]hm `P `;~eaK`{fv0)e,JXq| ۮo[8}j4Pv`auj E'Ρ{ʴ )~mٍjA1~B)4L4:F9#Xc],7s 7f:_fV؎ZAxd\9Uuuڧ[=b*iyΞhZo옺7yv]]YZ-8f* =h+チk8U=pD_gҐK%͙,-wNdZ{ 9f_׻4,;eiW]󮯞 ƥں$7v6SGYpi5CB~xn{3elWz}s=Oh/2ݡ{4(vU8(20gbmɿSxݧ0TSQ BQdyf ByKpb۟OF}wh،&I  k5'Qs/}x`/|Wjz~)6X79SE=2v2܋ {lkz\Cm|?cͣ*F].s5ܜi߇4MZ<*%mpsBboIV.*RR?ΝNAȣ, ~NvpSv#K8 .ir1c}j$9,86oM`*8)@#&SL#8mEhHuh>G/iNy3>(v;q6RȽ,"z@G"u'E] aNUulܻv9w:K0svVU*Р_awZdъRpHL=c'vfƄbH-KӈS|.Ь_*aRpu7<1ĐdI>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14099 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14100 0 obj <> stream q /X1 Do Q q endstream endobj 14101 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14102 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14103 0 obj <> stream HWkoHίdc#mI6FŝM$;6z'{7kM>U88{-駳__9g>/8\y`3- ׎ggo-k2D|Ns6'FK1ò_1`qnfX9c XP/,P/,P/-P/-P/-P,P,>RK}H-!>GR#K}D,P-P-1>DŽz˳0- GŘa1,µ3,[= V1`Řa- µ3,BZAc"\1"[k1fXz˵p-ƀEcE\+b̰kZp- PoVŘa- µ+Iceb̰l3,[=ƀEcE\+ b̰k%Zp- PoVŘa-JµZr$\1"[k1,µ3,BZIcE\+ bpZc"\1òc̰lZr"\1"[Uk1,µ3,BZEcE\b Xk1fXz˵p- PoVb̰kZr"\ b̰lZce81-[l X;>b, c-KWi6QHGI19v Lz1 eii5FnVyU9/&KVgkVAE=u[GLZOQRHpTyv!}8qM|ㅜ ~m#AlCi (:!9A(Ϛ^9'<kc.,bKsJ$kj1tвdn/"GFTOG_ XD?l7Iߧ"1 vLdI7#ho&DW'&!et{G)شVzGs:/y#4g^8ql$BWOq4hЋ˰|Pk3AɎM4zdvԱD,,1Y`þl.0 Dk..N ;}IHptcdz⩎j>u:ZhGGH 7iM/uF+&'Mb2t$,iM ?6{ rЀAGkֈGapfȒC֬YYj.K,Y2 H( U~{3*z\Vb9P \DY, Ο n>TmS©^Ҵ \LRdTk6ԺtR{׷A֜noqU4ZzNO?p@gcs$pI^^5L2==ŲsԐTSN9p(Uy " ?Q7W5-o:/'}KF~uD *bzj`8ʮʴP>yP \ʮ`q4Ve6:$:=\JAHLkA KHz.\ˆzCj$G Y0ڻk>/P 599 0 R/Type/Annot/A 20115 0 R/Subtype/Link/Rect[93.6001968 663.229004 378.791992 682.908997]/Border[0 0 0]/H/N>> endobj 14105 0 obj <>/P 599 0 R/Type/Annot/A 20087 0 R/Subtype/Link/Rect[93.6014023 177.690002 184.406006 197.369995]/Border[0 0 0]/H/N>> endobj 14106 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14107 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14108 0 obj <> stream q /X1 Do Q q endstream endobj 14109 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14110 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14111 0 obj <> stream HWm6_^`$Whk -֒7#Q/Fp8Źw.+:.UI&ے̒LMm3762OfXaBkI$uxBD ;T"X/0gJ}9%L)r>FP 1`D!*\%D"6DE 6@I K + + + kk   g ,`1쳀}ΰ9> <`o6`o6`.`f#Zj;EQ-!*dOmbTKm SB(FԆ(}ZɨŰT+RRj%ZjC>PdTKmbTKmbj Q @Q-Q-!aV26D1JFvZjCTȞŨ6D Pj Q @Q-!aV16@16D1*FԆ(}ZŨŨŰTRjZjZjC>PbTKmbUjiFԆ=Q-!*dOm SRj5ZjC>PfTKmbTKmbՌj Q @Q-Q-!aV36D1jF(FԆ(}ZͨŰTR)2j Q!{jZjCTȞwsN)[ w6ۊ?e,!`.,sovti]Wm߼Rm7VJ':;})T5F\a7>T6:a.O,Oa78yKwlg2LKf/ T&ZlalnJP$.SB#~OWr,Nv`Lv.6t&}*@4"IM9yAwe}};>,=*wmn?K?WUҗ Sfr$Ilk܍Ϧtj& yKq.,wf 7!l>Ey=̿ }Y/~<=Dlї{i⾨L>>y> Tv3&"`GJ ^ݑFq(iߴMYxr2󱜌^`ݥ۹M?`T8MM{~Y&"w+86?KW]uso1J^Q"8bXn 45Q_пl½&T9O}"ݻ52U?o1e"-h&Mg[&I]ֿn)qU&le]t5_{.aPAW#|3T5lo.u= ^$&L]Px9S2MAן!ɼEeIWͮw+s ?adOMm$$]}ُqn\y 50Bܾz vZjctlkGѰO7$3oxs T*R-x]g33## F:V#WbLܾv>.z]-8#T}E7 e֞68X+®lv En VV~qK^yѫLy._CH<&ly*'gH٠x.\[2 zwX҂$rlSkV*pB'B*Д3V:al U[.SUT-n^Kz!P%q dY԰}\REVyL.C!n2D ?.o\Jk;ֹTO[Q b`FՐF%,s~2K(.7 a;:-ktuu0ZT.٫I'xT"hC1H[AXi|{w,1y|` ȡ*c򺧝<*WV*<}pXF~Zd cEƫ t9hn` ϳs?oZ-5]]pbL%/:’# \"s(D$:e&R@UpDd*&zBA@_dp(bUނ^7|305x^7@H_/ǟ-HdB僲NMq#|_G/KSv1 ! VؒcEI*bg~$8HmgO.3]* .JHRx﬽I7y^mx:gMc:\ϥ>vV LyN~ yt~Qڠd#Wc$3#7QAR*XTY0\50~Dq5%Z%Aoo^^0Peɧ Te 8̂)(M?E$BKRZ?Gh=ZРCYG`:;=d l'TxvZNX9'W(+;ت [Llo7SQfZ0R;Xw9z$&'@::Hbڟ92U[\__l<]3~D)W,w*^Ԟc8)\k. rZuZԇ!b+E j3&]\֦x1+$͸n:UV9\T|<`8/揊ߏv*GvXQ:4.pױ nGbxOU qQ`]:W3ȥpI-"ĉ$'s'ka_ME__p@RmITNU E?_:cz6QuP}SEI[##BfeE*hN-Er K%&̊z[3.gQ^@1۾32Ѷ mӰe;mYchqK:AFYz#Meq6M2ȾI:Б]@]ܩPu$u q8EC'%1Eck[vֱ ggo߼n?h#Kkֻrl[4o)_n>#AQmJ /*ΕnhdCE(Sc u4VئVPNaL#En'v7"J_ e2Ut<\Uua~f'a"FtZ@ftn)lRhxYH$Z ` KQ.ΖU&TƻH2C*+?!BDnOY)G!ޱ:Vwf,+* e8R9j[q*[HDګAJզ@e=J[8F˵! ݲFj08ms7bu9AH5FRc 1(P_!>mAԚ D|Ќ2Kz㢲%ELF֫-MŹaBAp fb.jWR<i@OZOwaW* B d#w|sO:r=7c`߆~i;Ӻw <rRqj&ǭ+dJ4y%Sb"U uRŶhL<@9rjڛvNqeSs>/ &B֗o7ẕ=hh$OCtVY ;^k)b+>tdguJ&`Cgt'>|޻T_oֻPruck^~6b <0q+YFf9.(AvNsGqz} n@!?Nl+P ^wB2!ZE#_S@:Bw2)`ƁRBT({xfDRg @;+vߤ]\ngKL\W">_W·Guw{u%i |yV2bB,ϋ} A`6zrbԋЛҖ1hX9 i $QfL<\ALC(.y.J97\9Nz@i&"sf1U>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14113 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14114 0 obj <> stream q /X1 Do Q q endstream endobj 14115 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14116 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14117 0 obj <> stream HWi_p<Y, XБY =<ʆaؤJbֻ~{O׿=B矟xHZYDY*qtKrMhErk{~v#mr[%:^ZHKjH.jQ{MQXw[C'VW̊GUj[Lڼ^c?MbMw;.UڪƝNa3ʳ\bVYuRK^<e>n~~Mtg!sWV$.2eP^>%oRN95\3/G1ϒXw)yys{k^3̽5so{0̽-so{}}ܗ}ܗ}ܗ}W}W}}=>Q ,bZK)X=< bܳ*ZpZ@k)Y ,VR,{ZZK1X` bܳ*Zyh- gU ,VRlhZwO1X`q ,bZKYk5h- gՠ,ZpZAk)X=kgR,{Z ZKYk5h-< bܳjZpZAk)O h-gR,{wO1X`bܳZyh- g5 ,րR̳@k)X=kX`bZKYk h- g5'bS̳@k)X=>yNk-X%XȯY!}.}s\<=lNn"^X_Z$HU!Sg(N}qsvS۝۸n84ÿǕGi8lݎ-]\"ss|Sӹ߰AoQDY?eFK<4X-C7pSg .gasNa'™g+OnL?z.vf;.Z\H 2L!#a\i}w܌a~<7I/wLSNLgkq<_k:};la{nM;wٖ?`8cc]e-7VfྙϚx?γwv3}jo]׷7>ӎl@. s 媨yf+Yf2H5yVyqx5q|m}?9.MM,vፕ%l9fs m2m'~iqܘ*/IeJQKIom\%1kۈ"އ5E16^ ZieZiYeV Ui@dZ%*V*Ui@fZ5ЪʹkQ̳$ВLK-ɴRLK-{rOZ, bX= h+{bW  ,r@)X@^S,˽X`q-y= hk{b  ,rA)X@^S,˽X`-{ rOZ,bX5= h{עgS,˽X`-{rOZ,bX = h{b7  ,ro@)X@ހS,˽X`q-y=kY]f~q?[ŌG=CX?u=Lj|ē'a t?pU' ?;FFo&thooV"lf̔0aTIܻ >[qw<8ew{s=y*nݡެ7_ yoҜGL_FX+e5@3r9]jbZheaZhYeeZ*V Ui@dZЪV*Ui@Ztɢ2,%dZhIbZ h+{-cQbZ [ƢŴ@)E1iSlb2,rOe,YL bX2,rOe,YL bX=Ŗ(f1-{-cQbZ [ƢŴ@)E1iSlb2,rOe,YTˀSlb2,rOe,YL bX=Ŗ(f1-{-cQbZ [ƢŴ@)E1iSlb2,eA)E1iSl.Yi.FgVi2+Op/2ό,U7af3JV<ޯ_'r? #Fe\N|vbs?;EӬ=6{ ː_&;{r+PK[Ᾰ͹wo'7ҔyVԕ$<-!*3]_oG:]ɰ2:S?j0"A&c7c@NleƄ~:tHpv8ܝ~@Bpڞ3)0(A @Aی-ĖK~ҞHǷ- Qf,{ɔ()k6NV7.t„l|JV)nj0P(DXJY$;uőGLd,_ޅ;`/dEOFPBŻ8PbF #EȯԭuGSRu}P"e'ER{{ (zС,_d(aeSoO;nY/Gb/'2)-<h1Q<,vhz2N[}9lyE֝I6,̖ Jwn_i?>:t$h.Ɋ"fI~HSRґj'Y{u_ٝu&{h$~OM QBk}nR͓*;ZJqϪ쎱߭1ήn5֟SqFRF hQܨ.,GٜU:i &7I ި;KS]&l&mV$@O5ZeOݱGgA: WG̞nlȰe=a |j9+Ą]?Q(29gxl2Y@N5NnSսcK{Ipswg0n{ 9R+hh?R !8 08u;gaRnH-n @P@󤠙1yFI@yk&Ft:˛]xLֺesLqcn,W)$v&P CJ!?1Aræy8+,UGǸK@h%c;95y~֨)YxWYM`= ddk$N6 R5(g{gG@a-O0#[KUWyj+mY󬦩'uK=Aϖ5Wuz;7~X»M6+e0S}XBdendstream endobj 14118 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14119 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14120 0 obj <> stream q /X1 Do Q q endstream endobj 14121 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14122 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14123 0 obj <> stream HWko_) ^s_( 4:nJAAA˴DU>Drwn"pD=;;ggy[V5짟ί.._W_\ x,Y+n$"e.k_rWV"oUR:x WO[)L0&K"VE-MiB.N}W 'ޝtx1b`>PzD0= 6P\G&"vz?;v)bw,HU̥#E&3`,ԸGD#\ XB,C!Xv!|.,IzIzEWzEWzEWzMמzMמzC7zC7zC7P{cB}O>!'Px-z-zSB}O gaZ+IŐw1`u1d] YzZCs$\b"{k] Xk] Yzϵp!PVu1`u1d=Jµ.,BZIŀEŐE\+ ׺k%Z+EŐw1`u1d] YzZCs"\b"{Uk] Xk] Yzϵp!PVu1`u1d=*µ.,BZEŀEŐE\׺kZ+MŐw1`u1d] YzZCs&\b"{Մk] Xk] Yzϵp!PVu1`u1d=jµ.,BZMŀEŐE\ ׺k5Z+CŐw1`u1d] YԻUI4Ѫ)iY&"x WO[-S2VI |S-V'Œi,<|gR8v{iȑ%"eն@G43>3V>9S=Ecn1ơntG5O|q@@l^6j\cҵq#ca41iwf]7;lyex$fC1Fjs"51f]fIՆY\'j =fPIjN3L]I"{o.߼APe,gNyfCpGVVor8M5w á}Yu_ڣ>q[wlnAHL>( \zG9H&~z<ݱ6ap.lDbkB?C7*pw~ˤrpp$sn^8C:]ݗMVq9M6pe8A="b=pr^-W6|N*9 @C "r0B2l2[mX};TFe]-j֔챬ma_jjv< ޕ h1cL}\!!jU㷦(>Auj8 kپC N*%nt"~l2tŒbH j2x}wק~nڮjPz͛G(77lAsnA( zO*_Í:h8>=mʺvWܫ}c=KTt:#'<{/\nh1)*5IVy1̽5DT--pC2\Z7I7`iLtdPfjIpu>W@v3K@Ǘ#m AxwiN"W }]@9& o9Kҁ}̑44/n[ %zO{ ?Be rdԣg7fi IVva3-z!.KH5uL֫N#PQ6j^$Da5[V& 4pP i0H_4OQBFWHtcgP*XLuqez +xy6<AǏ]`t~j%z$~Șz~L]#bʁu#w:Ĭ1i? .Ii.?EXtmz`mqnEN:`bŏ$J9XO- C ׺j3{Bڠ |f%˨$M 襕K$$.XQ8vPS>lcńƃ7Yb/̂%hvL8tW/m`ۮm:dQ.ξ-갻;&L]}'t"5ѐNz\0!u>2lm1Rq,(TҊ wDeUC?3I3x^:{尤]bQ.&J9.K0h&Rc6ŖϡEn!qz2qcRzLXЍO"ayM&n/P"=pDZ.#YʞIRl5}14f,u=jcx~vbo ח%:,%wv;$c2A\IF?)8Y#$DMDsǒwwzA^~5F>Fo4k>D8z= ТRG:Ǯq>+͟W`98]endstream endobj 14124 0 obj <>/P 1150 0 R/Type/Annot/A 18296 0 R/Subtype/Link/Rect[93.6014023 285.631012 161.617996 305.311005]/Border[0 0 0]/H/N>> endobj 14125 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14126 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14127 0 obj <> stream q /X1 Do Q q endstream endobj 14128 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14129 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14130 0 obj <> stream HWko8_(C cw[/fN1Pd:VkK^IN~%)Y&A<>"{.?Ww4׷ELX\Y!\$q6J㧈M[﫱y}7=MMt? utfmT$i\%i]M7wD㗘G;}~KMB%U>Q_KTf> 9aH>p:c!Ð,_;cx'@='@ ԋ@ ԋ@ ԋ@$@$@}F> g,P*P*P@}N9>"P_@}I/%>,#Lc1d} Xk} YzCVǀEǐE\ k9ZZC>p-'\c"k} Xk} Yp!P1`1drµ>,B}ZN \c B>Pp!PV1d µ>,µ>,B}ZAǐE\+kZC>p \c"\c"k} Yp"Iǐ1`1d} YzZC>p$\c"k} Xk} Yp!PV1`1dJµ>,B}ZIǀEǐE\+ k%Z;DZCVǀEǐ1dˤ,KoѬutfmRÃ2QRe>D_W띎oj8uSN C3 M?4^ Oճv?o0ۚ `tq9ܬD&|f{.J$iY}WP!VUoD/"u|~ nS&q7XL&bp=VM7vaŪ}muZNWm#M]KGfLRf3W#Y-+v T& .b8˓lZ?&`rpU2/K~\ĬU }`pnjt!)6}7θk&ʠSߌ?7ջ}j'']R,kuش[L!\,cD&Y p;A x1uؘ-`͇a6D*+ot{~knuX;O 0Mda eKH{B; Dl* ITY_U 9캗f~hAWXYH۾'rb9yN8ǾiGx/T"s\Seh@pS1.`_xU w 5?m3ya/Ь=kd'*ϊ*njՌ9اK3lk81q n2 Hi^Γ D&_Iͩn[dtqEd0uy܈- .t KՎ3eKU9s[CNi]wo\x/Rpe~ʝ'ydYfwĒ .yw6f@({WQ$dyG"4M2~Fo\|:kc[ {<4Ǫqkо,9JVwy"S9 v/{NH0-+!aOJ$Ԑ'3ekA1(1àRR^Ƀ.f|fՊ8Rew -S[c[M/fa%&d{~U,]G 6ӿ=sgk=~e'˱iq$UKnO-ƴȧbZߚd WvA1+7 }7bFd<)lsCy wCcis g@x~Rn+|Δ hMa~pf,O2-y?\Y1/x,q?] =F*,$vJ)ayfYɧH3Ia7!znKo].oNɋY)ڠ J^xVqηr5kRu_ՐsH ͥ)( oɜ~AAS\,pD 34?h:6:|d\y O'x1!ktMm:ᕪ3/甩]iM4j۩c\R `Vsmm= &΃)WqʧV7ǥ+ex4$ 곫%g23|*875I;E W5}X_uMzGB&*tF;zպFwtY;`Ʀ;,By - E[1ùZwݷ`/}3, + bj*ruYN`^x>08|▘gUs4%$aV%;=`Af!w-Q}!`d\ %LA0N,#cI!^u=:}ňB߉mcR$|^Bl*sP`̑[h:iKL{iVXBhϗ& 71EH&"uzKmQs96-Vu=D-TWghgo3G'aGaIVńh:,n*A*DR*dRT̿ץrcURa7CK@+ ȁ 9hrcd5Y>(-c,n2bJMZˀh/s5s6;[t=ܯr aGljr:>hӐ3p"`;yayg3_$%EY;\׵c3&P$QenWq)7| }kWc2KgsuH0h_ʨoN и%4aߝOýOL+ <6Y6}ڸHT6J]^eg D.jN|eclze0Y: 9Zw+/phKmk=vԧft91"y4]y-A|&bFפM6E`Ħ3\gvR&3q Lt#GAgz[L=`#0aA34nz\ xDV֏+hfB®SF66edȢ?77ݠJ5wF_52t/Fל(,%8(yW' 3\&Ч1;fLMj_~R^\n 4A2Pu;V|`@h*8 WށYVJet`)K)e '1eZ1<1tݍBTx?d>3.W'cG[砅i"h-MF$:3hA[eEZ )wJxJ};T?|b fw+H!Lu A-&kO25{ }}7W*JFF%ӌ歕PU)p mǮ{^rHS  ͳ㝟?Aendstream endobj 14131 0 obj <>/P 785 0 R/Type/Annot/A 15635 0 R/Subtype/Link/Rect[93.6009979 451.229004 248.723999 470.908997]/Border[0 0 0]/H/N>> endobj 14132 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14133 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14134 0 obj <> stream q /X1 Do Q q endstream endobj 14135 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14136 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14137 0 obj <> stream HWko8_&">Etv] - Q~dmKLזssG.*o_CR޼QPC_&Cg Q5^5^  >,ELc!1 e}̲B>,ĵ>fY qY>p-C\cB\c\e!2ĵ>,ĵ>fY qY>p-C\cB\c\e!2ĵ>8ZP qYV,+TcB\c\e!rĵ>,ĵ>fYqY>p-G\cB\c\e!rĵ>,ĵ>fYqY>p-G\cH 1 e}̲B>,ĵ>fYqY>p@\cB\c\+e! ĵ>,ĵ>fYqY>p@\cB\c\+e! ĵ>$ZP qYV,+Toc )qn"\PhZpϿD Y%dv8?6U.f9l$G\՞l̫*UA;r[fTŲ׸zh\,/HPHFt[r-~bIv6˪nlD kDe9s#\gRCy:2Mx$ M)g׸ȭԣe2pҹ{kYoRٮZsi M3 V4Ԋ:i<٦f|saV`-nt DxAmM/$5^K(3 TBd"R,PX|tҋ*";(:ױy͏͏1U@KÆգknožƫo~u7nl{_,ZT빷$wQ|maoSr+_ZBPEg108yÃ[+nv z뾹nJh*N$t^?,0J1gxJ%F 7'l$ .\! Kx€d4() ?>q1u<^U{kn7Ewww3*.SJ.9똛GoVC|h宼~ju%}Ԧ궨ݺؓg:LVME.^ ǵTF893p]ÚpjXrSk[žij^X2"eʗopYfSGE4~Sіζ~ډ}4Nj~n{'ͨzϑ2/c2Y2`ɉƵ Gu+|›֞n;3pɇfqxID,oH1u?5n-uY\ ǿ$E㿽; gډA4ӉJ5x_d@;8/(c2= th>0Z81St0HkcvbuiM)si\v]{H˽n/dr/zL8um;":a䮻AAZ~93Ȁdepu2m@ܐf8a*e?"p?{@YÞ\(ԃqe晲&Rxd9ҝ+1&XE 0KnPX!]{ܡ6W‡̨tn5 deŒ #&rz?΋u+9\v"̈Q\'YKRZ-bk+ӟ>uhjՎژ0 #c,duZ={Z=BIkZkXG2e8!1Uԛj 8qAi~N1?;ņW߇|z7nCATgþO/;azG<\ia-Zoϡ:zxz9.˔9+y6BEMB-T|qVuQ8W"S,x9df`ꑼ$ֶ`XHej KRmcS?ye| LiV|I^nS FOdz3bs돍Pq^ۢP ې[An~h6}NS¾KYmyaէRl؝aQ,tu:ߜK W_J3)>uh!D!2Iv=mAk>bcSde*Ka-|r J.,&:e~p= E NГ!RW+ `.҉}OVBĬ sH.#p TÌq<-mAk;;EB8hTNz4?kKr>5\Z3!Ql@`PsԳ,7B)4n}lŧx<$,i-v>Ч.>5]F龇 ,Vngܸ=E_^{871 *쏖z= SKثFK13YT$V V;GQ;or+dF*Q%AҨ4!ɥR=Yrɒc4}sȟS$Be0ş]Z@s<f=4ǵ[ c6 Go8f g^(D{oA-}P%CWso\>h)ptb z͗hendstream endobj 14138 0 obj <>/P 442 0 R/Type/Annot/A 44398 0 R/Subtype/Link/Rect[129.602005 263.631989 244.324005 283.312012]/Border[0 0 0]/H/N>> endobj 14139 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14140 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14141 0 obj <> stream q /X3 Do Q q endstream endobj 14142 0 obj <>/ExtGState<>/Shading<>/Properties<>/MC0<>>>/ColorSpace<>/XObject<>>> endobj 14143 0 obj <> stream Q q /X2 Do Q endstream endobj 14144 0 obj <> stream Hoo6S\"E i:vhi[$:"~GR5RӼss̃CBSy@xt>C<8[ kt+s 7zWI8?w?_..߁ aQJgPF(!% &<<3wkgnEٱ&ÈӖy:}wSŭ^"Ջ}H i'jzvROLvfsZxZ(ku^4'w4e$ODCQb:l3 *ϥXK^U,XvR*ABװTY̼gc^HxsxU}vg'`/tfj}(K\ y@X8-|+ȲFTM6Bw[&=/ c,W*)YyAMё(ďk,*V1jayhثZE,=6V=FT@:̐*Z]֙*!>iGs}je`/:Im:u롎\grWCK/E0MDPy؆{KT޽RAa]sAdc3*R4g 46fyϓ]3,woZ zZVR2sn#˕K~}s5su nO_,/f'Tcof77F3]:8ݭ(׻7dӦ_,tf#)oӟI:~5t^$l3sc;h ;źbȟ)H3ŧ Γ=~Ȅ.TnS(l޵*E ?A *>oپu~o@N'+Vߨ0RC]Xsc}'gx'ÙhG3WY7c <'{Q_ endstream endobj 14145 0 obj <> stream HVn7W;g!|'Rq]Dqn&@?ٲ6@xṇqf:=]^8W6 սi^y1:zu~Q7xbQWud!h2s@ٓ,IeRu&u/lfEg5-~>IXQ]D v"N~zsZ?ճn?;͕:<*O9~(xMѻOQguB.)rFuz93<訤d&vzYo6ƄZx|`m֎] ?!(9{6&9p &kBwWqkGڈ}Ծm6ƴ<]{r6%iÒrYQ3C?`aO.o9|/o_>}sxb 7m/wkG$v-yY'ٌ:DszM"Ou+jO+"q3Ԇ8Ew)λ@Mu.*j:.ٺOu3}q#_Rcoع2\#ZZhP4u;*tC=XZ2}6IkYXׁendstream endobj 14146 0 obj <> stream HVɎ7 WZ&Ej $@|'RuUw%JE>nn Wag|.<^ŋmݟ>14wׅAJE$pp^(|\-Rp_l~9P-8u+)2 `I,l@R6I-;-@s4UCZr,+.>-9[8J3#)gp VPbWpᗶkZ=qb%d2Ac|.Ql3a3NΠ5&6X؍nsͦ uEP}̲ɚ\UY(fBaظf)U`gDu 7GK&(EaC# nѺrcmq6Ϣ;gaa. 䖌QshDd]I@Z@2 >q;`F6@ißv [+y5ȌD(q.eIendstream endobj 14147 0 obj <> stream HVn6 SEmE /]f@`CR9 6 l"şCeG+\c[YTE%K7^gBAU{=Ci9dY X7 -1'|\b'*9sڑ[ؖB⺊#6: amqmzfX۲C =F=,bI&TDK1 _la@ +_@ 0Cz{9us}_>XqK!V#V>qG W8D^ Ԙax,e)ښ+;#"Вj;c*"Uwj%ۀ 5Ic6WZ'QD`F%1݀S}PwejX'B d?KY: U&NҐxIH6pvfE$%4yFu148JCR0hj8TvTj%8fmb@!g+*JƲM9̽lUUY, ۳ڷ㷦) o+?7S#}o;֪*"EBd l8m(hCk$x>+$@/yDiܴbCԞ'TG;^!V|= )]tc>5I,4blz@)*aQ]I`x5j=.iu6.&7f"?ElY=h/ø#s׾K[ HN :#zqfܑ\&2J5]O5جCR7%IiN19!dE(Mdp&Y]̒, R~CtI*B݊X_FN&I10ھV#cHK͝^mҧC#2RFЄgגCפ:nb;FeOd'dNʒn<.1v{Ce{sΖIhC2J j 5E]:fb&OV?ݯo߾׏dX߽{Q%=~^wߤ.9uњl]nb_oeyԒboH0SBJ/X: +JҮV݂:fxKYendstream endobj 14148 0 obj <> stream HVQ%7 SXl` 2R*_&L!7nYRџK)ğ_vsushn_9E^z*?'9z]:hW^ގ\=@=kaK];@%#+=^s|s6@)ZQ۹dUK`wONC|xDx<>s504U<3uޢȼ57+#mlBYb'N_ל][4]$`a5XZSJzޏT5C> stream HlVK6 )|iHJeoBV{m׈bu.5:_kzڐ{x - 5Wi p0>m귁5_c ~h+snkg:vPW@ymj}IcUȇ|& k55ND֡k+D`5Ҳ;Xd|9Fͪ{umar-q@[n__^7/"ryHQQ:-&dtP7>#6 *(H0c`>VY5Fyד8.΃ǖBj2KڦJO0J"-F1P/~RMQ2gvSY|@LXэQr"!'eڶR%J-Br^a'^PzAk02dzp D , d3n_}D1W-Uf0! == @׊gS6sםr;xrrD|E *I;:o3rRN 12)G{rM'(UEWYg]T@TR>9HQ39d9M~." "g0vq@iΝ,w^=u_w1{$kMgt&x6_g솳B29ŮS=F;<]ԂEO΃[a \sDG)Nj@SJ`lAMjcVqVuJJLĭhx֤2n([c 0Ƥ6'rc*39Nȅ, wv<aK)f#0j6IQo> stream HtVKn}DRc p&*u{[5(~.{XZZu_5F`mW>dn\^L/f`Nq}ƫ5il w2n8|onӵX7܁ݭ ,G8߸-qT6 rPYxb|؜oa蠆<?3>֤i3`ttbN:Rdk't#ˍ2Xy\?{>uv[ p0oC!o?>JY~^E1G t?8¡PuTH|7?_)BT![l ͪgRx\ZCJQ5ox>[Ex*dum{Uζ% uw簳IH/ G ަLYv$ mɌ'bFɀpT6_ ܫfP'8Z#:Ԛe3gе&&}u+*j^5S_5X0WI6IHqmYNl:PCǚmrlfݰ"S"_ gISX%)AjNPY$rb8[z 0RZJY3=*s1/ň Tix:kADg]ryf%Ry7Ջ/i(D蕆PwxMv $NjP ,)WlH`fX&?MP.endstream endobj 14151 0 obj <> stream HlV9$7  qk7(B֬;Bfz&6,$Hu]vW=ׇ߶{@^h_ /wU 'm|@: {,Òv{.J[=j_zKve:m2 h@Qkk7o-]T4ndb3;~Ng16eJ &xPtƗSwd|x@;ɠwj 97I"zϠӜO$&/3ejKd$y.tmY)늸{%QKiU'H[K9peJ5P`ly't8 I 0'k>b5i/0ONVrgPXF!ՙSt7d2pm9ۗB[K6wE&roIvn #$=&4$aIiV՘?f/GTEŗlJ{ n)yFn\ .{:;tk%X*( -iՇv-RVy[)=y3DE(VwV ڃT:(BrӣXTeR:G2CAa!WGjBjEjKb g-s ?ݕ5XW],g*mre'+0,&"m;_AJ("&B?XCpa# ( ѥEI6vvfϮף%7 ^EGY UظVohiVç/8 <]MoSFQtUT/?DCcJ%LA.-y?6; sjdU)dð7ͤ>pR髭 + Zp, MF{"h(;n'VTMfgV\~m%h(JuC1d UP Y ^H3Yjl]V5V8 5δM6T|sWEC8+6RVy}`%;!2]; h?Kj&}n<-8%@9kCk)l C.iT9B.Y{Qs+GϚ{*k ¡?ǰL\_]/ ӕC(!pR?u/<= endstream endobj 14152 0 obj <> stream q /X1 Do Q q endstream endobj 14153 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14154 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14155 0 obj <> stream HWkoܶ_2`3K($mܦ M'(dU+해q;#RZ-GPPtCw/޽z:U+*ԙdD2-® >M0xj_ UoP ]]]V}r?eC q9qnA$qk5 !mMJ,~ڲF8z6Cwyg Ȓg<^PhYs(1hB,D8| ކwpLO A]Nsrc\ Yp.,}!K,W;x O O$KO$KO$KO"+O"+O&kO&kO&kO}BO< >ԧSSO}JO=>gSsO}N< Ӻ!k] YzZCŐw1`u1d= µ.,BZAŀEŐE\+׺kZZCs \b"{k] Xk] Yzϵp!PVuC ׺|.,µ.,_!Wb"\b"{k] Yzϵpp!PVu1d=Jµ.,µ.,BZIŐE\+ ׺׺k%ZCs$\b@u1d] Xk] YzCŀEŐE\׺kZZCs"\b"{Uk] Xk] Yzϵp!PVu1`u1d=*µ.,BZE&\bջ׺|.,_}y y՚~} M+}Cظni[ٷ᩵їEdbxk0*%Z.D+0ř^p_4b0{P?)uqi&A %Xy"LeIk_p)}~?.|B$ő /9~vG:~^ xJx̀Vp &*F],AulLS)خ?vNnzՏ9~6<<жw+8z؍W2)l:Zpi1:MEuJ6 e\JjxK22'Y& 3 >@3't"}!)ʲm<. >ǥ:$1T zI, M2YƾnlZpt%:_M_.0"S-E۲lBJQ>Hv8SaxLݶU3`Ğ[J} ;t1zPp*zO2.cg3 אtI>(p\ w 73GNa\ dP롮,ў[vryHiGWU[ʏuoo6^3T뢭^gЏ~Û ?kxf0/19~ӲxX+Yx~6v&)s_&pB,pN3;z[I d C. xz0lO^^훣4Ӭ!}qmIaid6&un>E-n쳋&YqUͲo-iۻ~ t#cXzqv a19Yh8 ܡcueW (yҤ{]*:m0hhd]<~d3ֽ\o7Z{[}svO^uo'N= lV`mۉ.R/LCW) ,XN`93X21V&2VXXc`R`U 3\TCgQ \Z`iK3Xb7B.roS ]˽rO5t ,{#jX,F=%X{K`[!TCgQ \B.roS ] ˽rO5t ,{+jX,V=%X{K`[!TCbB.rS ]E5p ˽rO5t ,{'jX,N=%X{K`;!TCbwB.rS ] ˽rO5tq%j2))\‰3Aɔ5E綡aXEm(',vS 'EZk5zYm!tZpfm !d4K~;y72yhF tgZ@]MFF~~^7X)|bm - 0^ngՋCNm.sd~lZ~&0:oU _CyqJXN`9r1X 21V.rVX*XcdR`5jP.K3X2e˽rOPbc Z(TS-XB Ub,!T *v1{BK=B]eS-XB Ub,!T *v1{BK=B]%jP.rOPbc Z(TS-XB U,'jP.rOPbc Z(TS-XB Ub,!T *v1{BK=B]%jP.rOPbey!T *v1{B5v=_߶oTE'CP(RЩ\ojU$FG92H"s&vջϨIPAut1]_o[UmU ֛^J͖ͬ:e}X#tAjojo~fMn8Lk Zd<+Zb]%w,ecϧG>Ӈ;'iKxR߷5Ѯnj% xb~oμL}yzިYcFw7ڱߠiyݍMN>& 0ZlXendstream endobj 14156 0 obj <>/P 776 0 R/Type/Annot/A 24294 0 R/Subtype/Link/Rect[233.688004 409.028992 468.752014 421.013]/Border[0 0 0]/H/N>> endobj 14157 0 obj <> stream q /X1 Do Q q endstream endobj 14158 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14159 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14160 0 obj <> stream H[o7WQ25K2 4iӤ}Cd{SKrWɯP2$F88<$PQY/ߝ9ezu|z _q*$Jd4ή ~ގdq(ٴ*1+'ɮqR1$yaLfc, /+Lw1!M*6*s6|. |( lUjs շ2.Sbptw7O:uFx[ <0w@6?3XDglTsxnO71# *k@ SH !(]<ր{{W{W{W{ׄ{ׄ{7{7{7{Y>#g{K{K{K{Gw{Gw{O{O2+bmH"X Tk@ZbX Tk@ZQj%ZpVPDj(}ZIk"GDjZpVZQj%ZEk"GDj(}ZIkDZbXH-ZbXH-ERb-P(H-ր"R@*"X >J"R5b-P(H-ERb ("X >J"R@*"X%H-PDj=PDj(}ZMk"GDjZpVZQj5ZEk"GDj(}ZMk@ZQj5ZpV,1Dj=ր"R@ؽOqxaK&X~ꘐ>XfA%b2̿N!w, TŠWkP\D*"ØǬL |%Ɓ&Rfe7؀Ij%54Tʭp?YM 9`F76s:݊w^|_-`6|.ÃmcYu Œ͇VX.jyWݔrT]-?{kvŪŠ\-V 7ލ?W %NC L4\Ou1|ƶL 60TdtKi ]} ?)n'=[]:ݠ0*}8ڔ@jQm8|\\??crgLK}x5*n=ʇ3SO6dӓUy9.rg^tØ!m*sudPIzc~'ӔU'9Yd;j2Fe5={"،p1I jYRh'JȔsz}Vsu"^ j(gp%nm=q}?*'{NI.G>(eP^%*5HᬼͰF2L+> mbהlY? mV ٧[%aG z&Mĝ=AKurPZ=\qOtx~IUG|KSGoVkM&}y|ծ~5kY%3Yt&ۯg%Q~z!ɞr۵wB@ z݂W I7E D]}M#W扮@iWA1/62>WHSHs WOB |~Ҕ5"'9!;+#~@έM#H25Jpai-xߊ }}Y:ME7~oMI%,7dqEΉŇlx7Ldz7?<=ˏN~:;E߽2<> stream q /X1 Do Q q endstream endobj 14162 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14163 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14164 0 obj <> stream HWێ8}Wan6o<$ `2jYn+%%'?U$KdiʇUGdxز~LW^}/˔_eXh)G3J}*vY[(ԻXXXw{n׫n%L&H!`)K!&EVaq_mYWlyBHy0b\~o=aE[u ̜A(".4ZH hx{w抽0) fA#B$|49v}.&1B{ ׇ(?>!*$P.w)}P`<`<`=`=`=`o<`o؇cC}D<>cc}L= >'cS}J4+ Ѻ}պ>D]պ>D]|Pj]jZׇ(ZEPCS"TETպ>@u}"{Uj]jZ(BQ{OPCS"T&Tw}"Tw}ٻ>@u}"{Մj]j5Z(BQ{OPCS&TE!`Vu}"{Մj]պ>D=jBQ{OPPCPC!gE!`u}"{5j]պ>D=BQ{OPZׇ(ZC!`u}"TETkպ>D=Boj]|Pj]|Q>ij3WjdMZX j,\}Cv`ayf* Xh{!ODzzf'VOe֬lS2Yݣ>UՇD"9Yh8Є@~ |*|XNu Ɨaْve!@OYSA?v,^߿aX+{@߇vXN\SӲe;0_62CO!=%{͎mӿ%t&>$0K-~y CJh.eu&[OY| S[/\oT,/0MƸDz lz6Z@$#0:&DP&1dDx2.: Op`#JԁUkgnzLۗU{\ q[>? eu9PwPC~P h4]Z54<}JMBgc"avD inX!1L-߿[Ts) NPMc{n}@/oKyd0E [E3)/!PxNmCiaOX#ߖ5G'$e(#NGk&?5MYW,\>'/YyE"%O&xܼ#V%lW=#'Cq c7*o*+ F$"Қ{6yꟽD:坱zSQQ>="n.\:T6Ek%XH$¡SGo'ՄQ54M])q6M0i(iAU/S',lY@ڝqp߻X/؃ ܪ&$6c$1(S)/ԘHL :^dKۧIxQY 'f^J(dʼn8iI ,]tfQX6 N2;S4(I78Ynnksʷ}kk$!|z%S%Ub&ge笕rF' .ZѰdxqt%ku!~灖wT4pϯI2f42g[xUHO**˳7ͷg{3ޕ/d]t5 %0+7O?WMoFW *\rIE=4AS=8=PJ""IYv~}_[ 0pv,'HչU(|͊D }) 3zaڝKeS`ZW Go⨅dfYMEhamU1LeAIZ w=ѳh8p42."?01z !w/" aA bV(9ڋsפØ}ye/>^$.9dCTk&#60EN.H]"iQ5"8Fp'.1JaC{tUL ;YL$]綠8HŅ;õalP(D|<(KgKOfq;V@&V-(oǫ_edۛ&&h/+6T'ᤦ8 2uhttwӇyQ~:($yk=JH-]r?4pJjymմ 9VhbUK86oi}5!o*ءhյpOMzwicGiU' ӣQŋaN$ד22(K}!|3QaSnf?nl r%b4-F L6Tr)D4a {x+_j mΘr3wF GC7kEe/~w:+jjb@g bIƎSb$Jva}L E xީFIؑ C]HEr%zI6f؍^D+DRSAbIKPŢ K=c>X\$8I]iaU.6\r<4Z/,ƹH+S۳D`~_h|uV%c%:Yx(CuZSIQgM7ZIrPZ}x\ qMlbQ4\fB> stream q /X1 Do Q q endstream endobj 14166 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14167 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14168 0 obj <> stream HWmoH_aLPp~o]խht2f!˝__friOu=]Ouٯ}>{vͫ0?<#HT*FFTFZ{3,8 njVb}"8{}!:x Ζɵ pyX60g&\Ҟ*ÓBNj$ɧX (o{OW]SvuF0"Ud%q`E`!L=L /?: L#a.İ .)K0I,=!GmJEl rO<J0^0^2^2^2^1^1^3^3^3>eاaz3}>cg{ð7{ð7{˰{˰40] R|(FԆ(=!gOmbTKmb{j Q {OQ-Q-!aV06D1= F(FԆ(ZŰT+RRjZjCS`TKm@26D Pj Q>{jCϞŨŰT+Rj%ZjZjCSdTKmb{j Pj Q {OQ-!aV26@16D1=JFԆ(ZɨvbTKmSR|Ԇ(=Q-!aV16D1=*F(FԆ(ZŨŰTRRjZjCSbTKmbTKmb{Uj Q {OQ-ͨ峧6@16D Q>{YkUß0/2a.oqpIށQ)wbpđNSIpi%hZ(AeYabvl)|vm?|(M?l6ݭ(oj'octf(]uyl'YTCܢUSTeDձN1vge%pRa#m-`ubwuv>Hrq%ekH.WT`H@Yc-r`Yg HD8ӛEƎiC.;W׫[mjW'gЍR:̎DSLc4w:2Gd6 ǭPn֕xw t^e,w>#[jOwm'VcAEBI- <8rQW`E d%vCxpDu^= ׫f.p_6=ޯQ6NOx́QđW0D վ-JļWMC gjd6j;b!M<֨HoUn k 0T")}pija@Nd[_;W4E%)EݮV4:NE 9ߺc|_5&5r:)0bߚzez-\3WH͢ :)~8LYIuESNQ]{BH!|BUV7thla%#=^*~!8lU@qN'a3ɒñ &qBzE ]3,zC`J\$\&[fMqbZ(lt N]~.mgwkBBk&7pn=wۇ7wuNw+MHeW?ͨ|vE Knדi\~I5f/T.!* nHA`SZx}yIR>c܆o26Y?dj x*3;!Ie$1 h8, bAw`su_BΊ}0]ˁXU<aJam( (*p&{ꕚ(*>1ƒ [,¯= X.DqFOh-F!7ugLAT-ⶄ5/'w=%Wedsw~Kx ^,~Ļ !4X3xl#&|'B@N|jXnIPߎ5NX*2VPţ%af m芑ąyPֈ;әro%ߔ:7aYMhOKYXtڹ -L$d=Lxs< l)%T1Z xpDa%U?EJP4c'X“H`R)/GMPb@Gx  "MTi45&DMdu~mHlO>;. Pf/$ T jI &ݘ"PPMzM RbFJX.1Bԑ$d`$̬<07$tk iX'n$^=N=x:zvdmTmB~4SuFzửAm Nc ~Xq+2a2مfAA = 8!GY#q:k;#ZYӉ3$KͰ]!A*}ѣV]NdOCBT?AL3D^11 ,%:! QУ돨y u0@Hl;;o3b(#c/W/E DqXH_' pSͅ f41 &Ɩin^6 Y 7uU$kI);>C N.awPzwy!P=͛ŦꅑۡQO=W?rψEA7w$G%}U/T$qERP_s#CkjFmyz)O h/sab}B*aaS-S؆An-\W 3&&5훊0(WRnsQ}aHp2wif, ,o9ZZhۢ{hN|4\5C]pv}'8k<3`}^|9?endstream endobj 14169 0 obj <> stream q /X1 Do Q q endstream endobj 14170 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14171 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14172 0 obj <> stream HWkoN`4Euh΋fě.4Q`,f"*Iu+{/ll6Μ93#7RǗ?] u_Om6F5EU *Upbw^M.VMި6x9 g(f I" 4Uj&.>mYv&:.'{W5}f|4y"o:,}z*Em?nfo.ICmf7lɯfAnF+`F]~BCA7JudXSN92Őŧ,! ,]knb2{a2Vpo{+̽; s{{gc}ǂO s>'}*OTp2>c3=JKu`R Y=ŀ%b),bZK1d YkZ!KpZkR XBk),=kZK1d YkZKh-Ő%g5Bk),=kZK1` Fh-Ő%g5Bk)Z!R Y=ŐS XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` Vh-Ő%gBk),C Vh-ցZK1dqZ!{Kh-Ő%guBk),=kZK1` Nh-Ő%guBk),C Nh-ŀ%bܳ:C :Bk),bZK1dqCwY9',8ʹj W]hTDUu04e-'yՓt:DG,وX(4|D=}ZOoԗ|5~?*hᾹQIB?N4BmwRQQMsɻ뺂w׷y.ڛ3_gg |:3Rԅ r/K5}GVvfoe'BtOlE}=7Bj\ET. o_O*Ǘj!X{CD4mPs#>hJ'UݩnXI4|4Ic\`jzi5oߍL$}VNdԪ\Iڰ19?κ-V?)"W, [ؿ™Խ =lF xQ YbZNrL ZiyA3-/hy Z1ӊi%V´A+aZ2TJV&heL+2e"E1dq-K ZiiAK3-#he-{#bX{!Kb7B),A-{#bX{!Kb7B),A ŀ%bX{!KbB),A -{+bX{!KbB),A -{+bX{!kQ XB),A -{'bX{!KbwB),A -{'bX{!KbwB),A ŀ%bZYe/Yp>WFenT, #+jdok eBmQƙ0ֱ9v9yyWBmN'MUW/V_ ~Hέa+N?zKCvIGⓃmћ ?NB'n?8!|?! eM9;imcm|/ ~[jYAۡۼ\z>].daB:pۇeěn,+>\珫3tyY(ʶkwrw!4*_aXXMq+~|+p,ӱ!G XV8M72)*h: $f- FuYj=ӓ_/E_nVyYWX@{;Ѿ|ZоX IǾ m%>:>t^w^bvcׄQ>M+N펷`$V`|?I\#Vabhۼy4m4r(35i: d)׍*7 3fz2/БUmU@U((>U/[Cs 4Yd64xm{/~gN~c;%1` -ժ/8EqKd^`$f7FvVVB{Xzrvc4~?>8}U[~WD0<:n.EyDd}J2 vhkt/B=5ɛ/@p̰Nmsy" f{d+1`%z<u?tG.'Xǒ%“'.Cn*,Yx .C'<(osA5` C9bXB:S`|m %T6JbpV !\P/QWb5י+P WSendstream endobj 14173 0 obj <> endobj 14174 0 obj <> endobj 14175 0 obj <> stream q /X1 Do Q q endstream endobj 14176 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14177 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14178 0 obj <> stream HWmo7]/I ] Y.-U^JlٕKsfVڕr3(3y_g {sVoOϊ J ŴYjVuO,*lq}?,S=?fբ8ZOtROT0&M*VMW޺ד La\wM7"G;bB}cb=GnX)_ o{: d m mb f9!PB Q1(B Q1І}hІ(}ZA6!`V m"TET+Ն6D# B PjCjІ(}ZA6PmhC>R TET+ՆB mه6@ mه6DCՆ6D#JB QHPmhІ(}ZI6!`V m"TET+ Ն6D#JB PjCj%І(}ZI6=PmhCT>PmhCT>!*fE6!`V m"GUjCՆ6D#*B QHPmhІ(}ZE6!`V m"TETՆ6D#*BЄjCb PjCb Q1{_zϳIqY9Py\*t^ "hID<ɀidK88*Lk-\Ll ⅶ$S@ Amɻ|zz2_tkMw2\MDʛ\/"n[f>pnwP:hN͆*AkJT%(\1X Y"<w|;YxGѥlPƻV1' e6("G*lazr˳w˫߮w\|v{zx{Nn>h<%%4Q-/ON?R;K J6vNG[Ju@2pEn+L#qtd:FlHd-lA׳קS(RJ[*%P"KpUGIzڳDvu'V6L x;Nl]{HnB#YyiE4:xA˛C8˻<[E3rn8W ?οd߭spސ/y44KÛ w.~ b0kas]u&,n~aj%>8:ȫp8CJÏmqt.~$/"xH 1={(2B8'x韫|NפT_ H3>3nƕyM/,4 X`.SZ*7*|\UjgE2Hbn()M8`@m&5D( HV r%x[όyYD`<^\^L{86xˉ=`}p W# k$rz))eZaC)- .# k,g0Qb?oWG1 AԄ`z/5y>V )R AZN3\ms!'>OJkHO_-DQ|R^g`9[[Aֶ*[txb\~ 栞T:A<)V}׷*1'p0Oc<0Oa.0\d#˅(7=.Ig)X:eu[D_}ccendstream endobj 14179 0 obj <>/P 8524 0 R/Type/Annot/A 28399 0 R/Subtype/Link/Rect[151 659 167 668]/Border[0 0 0]/H/N>> endobj 14180 0 obj <>/P 8524 0 R/Type/Annot/A 28354 0 R/Subtype/Link/Rect[168 659 180 667]/Border[0 0 0]/H/N>> endobj 14181 0 obj <>/P 8524 0 R/Type/Annot/A 27614 0 R/Subtype/Link/Rect[189 649 201 657]/Border[0 0 0]/H/N>> endobj 14182 0 obj <>/P 8524 0 R/Type/Annot/A 27584 0 R/Subtype/Link/Rect[239 639 255 648]/Border[0 0 0]/H/N>> endobj 14183 0 obj <>/P 8524 0 R/Type/Annot/A 27555 0 R/Subtype/Link/Rect[256 639 270 647]/Border[0 0 0]/H/N>> endobj 14184 0 obj <>/P 8524 0 R/Type/Annot/A 26963 0 R/Subtype/Link/Rect[272 639 286 647]/Border[0 0 0]/H/N>> endobj 14185 0 obj <>/P 8524 0 R/Type/Annot/A 26927 0 R/Subtype/Link/Rect[288 639 300 647]/Border[0 0 0]/H/N>> endobj 14186 0 obj <>/P 8524 0 R/Type/Annot/A 26493 0 R/Subtype/Link/Rect[298 629 310 637]/Border[0 0 0]/H/N>> endobj 14187 0 obj <>/P 8524 0 R/Type/Annot/A 19640 0 R/Subtype/Link/Rect[189 619 201 627]/Border[0 0 0]/H/N>> endobj 14188 0 obj <>/P 8524 0 R/Type/Annot/A 25927 0 R/Subtype/Link/Rect[151 599 163 607]/Border[0 0 0]/H/N>> endobj 14189 0 obj <>/P 8524 0 R/Type/Annot/A 25890 0 R/Subtype/Link/Rect[189 589 201 597]/Border[0 0 0]/H/N>> endobj 14190 0 obj <>/P 8524 0 R/Type/Annot/A 19026 0 R/Subtype/Link/Rect[283 579 295 587]/Border[0 0 0]/H/N>> endobj 14191 0 obj <>/P 8524 0 R/Type/Annot/A 18966 0 R/Subtype/Link/Rect[189 569 201 577]/Border[0 0 0]/H/N>> endobj 14192 0 obj <>/P 8524 0 R/Type/Annot/A 25002 0 R/Subtype/Link/Rect[151 549 163 557]/Border[0 0 0]/H/N>> endobj 14193 0 obj <>/P 8524 0 R/Type/Annot/A 24953 0 R/Subtype/Link/Rect[189 539 201 547]/Border[0 0 0]/H/N>> endobj 14194 0 obj <>/P 8524 0 R/Type/Annot/A 18858 0 R/Subtype/Link/Rect[278 529 295 538]/Border[0 0 0]/H/N>> endobj 14195 0 obj <>/P 8524 0 R/Type/Annot/A 24271 0 R/Subtype/Link/Rect[296 529 308 537]/Border[0 0 0]/H/N>> endobj 14196 0 obj <>/P 8524 0 R/Type/Annot/A 24231 0 R/Subtype/Link/Rect[189 519 201 527]/Border[0 0 0]/H/N>> endobj 14197 0 obj <>/P 8524 0 R/Type/Annot/A 23414 0 R/Subtype/Link/Rect[264 509 281 518]/Border[0 0 0]/H/N>> endobj 14198 0 obj <>/P 8524 0 R/Type/Annot/A 18724 0 R/Subtype/Link/Rect[281 509 295 517]/Border[0 0 0]/H/N>> endobj 14199 0 obj <>/P 8524 0 R/Type/Annot/A 22655 0 R/Subtype/Link/Rect[297 509 309 517]/Border[0 0 0]/H/N>> endobj 14200 0 obj <>/P 8524 0 R/Type/Annot/A 22606 0 R/Subtype/Link/Rect[189 499 201 507]/Border[0 0 0]/H/N>> endobj 14201 0 obj <>/P 8524 0 R/Type/Annot/A 22043 0 R/Subtype/Link/Rect[151 479 165 487]/Border[0 0 0]/H/N>> endobj 14202 0 obj <>/P 8524 0 R/Type/Annot/A 21988 0 R/Subtype/Link/Rect[167 479 179 487]/Border[0 0 0]/H/N>> endobj 14203 0 obj <>/P 8524 0 R/Type/Annot/A 21434 0 R/Subtype/Link/Rect[253 469 265 477]/Border[0 0 0]/H/N>> endobj 14204 0 obj <>/P 8524 0 R/Type/Annot/A 21401 0 R/Subtype/Link/Rect[264 459 281 468]/Border[0 0 0]/H/N>> endobj 14205 0 obj <>/P 8524 0 R/Type/Annot/A 21339 0 R/Subtype/Link/Rect[281 459 293 467]/Border[0 0 0]/H/N>> endobj 14206 0 obj <>/P 8524 0 R/Type/Annot/A 20995 0 R/Subtype/Link/Rect[189 449 201 457]/Border[0 0 0]/H/N>> endobj 14207 0 obj <>/P 8524 0 R/Type/Annot/A 20537 0 R/Subtype/Link/Rect[235 439 249 447]/Border[0 0 0]/H/N>> endobj 14208 0 obj <>/P 8524 0 R/Type/Annot/A 20114 0 R/Subtype/Link/Rect[251 439 265 447]/Border[0 0 0]/H/N>> endobj 14209 0 obj <>/P 8524 0 R/Type/Annot/A 20086 0 R/Subtype/Link/Rect[267 439 281 447]/Border[0 0 0]/H/N>> endobj 14210 0 obj <>/P 8524 0 R/Type/Annot/A 19667 0 R/Subtype/Link/Rect[283 439 295 447]/Border[0 0 0]/H/N>> endobj 14211 0 obj <>/P 8524 0 R/Type/Annot/A 18277 0 R/Subtype/Link/Rect[189 429 201 437]/Border[0 0 0]/H/N>> endobj 14212 0 obj <>/P 8524 0 R/Type/Annot/A 19086 0 R/Subtype/Link/Rect[298 419 310 427]/Border[0 0 0]/H/N>> endobj 14213 0 obj <>/P 8524 0 R/Type/Annot/A 16088 0 R/Subtype/Link/Rect[279 409 291 417]/Border[0 0 0]/H/N>> endobj 14214 0 obj <>/P 8524 0 R/Type/Annot/A 16042 0 R/Subtype/Link/Rect[274 399 286 407]/Border[0 0 0]/H/N>> endobj 14215 0 obj <>/P 8524 0 R/Type/Annot/A 15677 0 R/Subtype/Link/Rect[245 389 259 397]/Border[0 0 0]/H/N>> endobj 14216 0 obj <>/P 8524 0 R/Type/Annot/A 15614 0 R/Subtype/Link/Rect[261 389 273 397]/Border[0 0 0]/H/N>> endobj 14217 0 obj <>/P 8524 0 R/Type/Annot/A 15507 0 R/Subtype/Link/Rect[269 379 281 387]/Border[0 0 0]/H/N>> endobj 14218 0 obj <>/P 8524 0 R/Type/Annot/A 15439 0 R/Subtype/Link/Rect[259 369 276 378]/Border[0 0 0]/H/N>> endobj 14219 0 obj <>/P 8524 0 R/Type/Annot/A 18839 0 R/Subtype/Link/Rect[277 369 291 377]/Border[0 0 0]/H/N>> endobj 14220 0 obj <>/P 8524 0 R/Type/Annot/A 14964 0 R/Subtype/Link/Rect[293 369 307 377]/Border[0 0 0]/H/N>> endobj 14221 0 obj <>/P 8524 0 R/Type/Annot/A 14768 0 R/Subtype/Link/Rect[151 359 163 367]/Border[0 0 0]/H/N>> endobj 14222 0 obj <>/P 8524 0 R/Type/Annot/A 14554 0 R/Subtype/Link/Rect[189 349 201 357]/Border[0 0 0]/H/N>> endobj 14223 0 obj <>/P 8524 0 R/Type/Annot/A 18694 0 R/Subtype/Link/Rect[264 339 281 348]/Border[0 0 0]/H/N>> endobj 14224 0 obj <>/P 8524 0 R/Type/Annot/A 14447 0 R/Subtype/Link/Rect[281 339 295 347]/Border[0 0 0]/H/N>> endobj 14225 0 obj <>/P 8524 0 R/Type/Annot/A 14405 0 R/Subtype/Link/Rect[297 339 309 347]/Border[0 0 0]/H/N>> endobj 14226 0 obj <>/P 8524 0 R/Type/Annot/A 14356 0 R/Subtype/Link/Rect[189 329 201 338]/Border[0 0 0]/H/N>> endobj 14227 0 obj <>/P 8524 0 R/Type/Annot/A 16080 0 R/Subtype/Link/Rect[283 319 295 328]/Border[0 0 0]/H/N>> endobj 14228 0 obj <>/P 8524 0 R/Type/Annot/A 18563 0 R/Subtype/Link/Rect[189 309 201 318]/Border[0 0 0]/H/N>> endobj 14229 0 obj <>/P 8524 0 R/Type/Annot/A 18501 0 R/Subtype/Link/Rect[288 299 300 308]/Border[0 0 0]/H/N>> endobj 14230 0 obj <>/P 8524 0 R/Type/Annot/A 18484 0 R/Subtype/Link/Rect[189 289 201 298]/Border[0 0 0]/H/N>> endobj 14231 0 obj <>/P 8524 0 R/Type/Annot/A 18452 0 R/Subtype/Link/Rect[298 279 310 288]/Border[0 0 0]/H/N>> endobj 14232 0 obj <>/P 8524 0 R/Type/Annot/A 18423 0 R/Subtype/Link/Rect[189 269 201 278]/Border[0 0 0]/H/N>> endobj 14233 0 obj <>/P 8524 0 R/Type/Annot/A 18398 0 R/Subtype/Link/Rect[269 259 281 268]/Border[0 0 0]/H/N>> endobj 14234 0 obj <>/P 8524 0 R/Type/Annot/A 18330 0 R/Subtype/Link/Rect[189 249 201 258]/Border[0 0 0]/H/N>> endobj 14235 0 obj <>/P 8524 0 R/Type/Annot/A 18293 0 R/Subtype/Link/Rect[288 239 300 248]/Border[0 0 0]/H/N>> endobj 14236 0 obj <>/P 8524 0 R/Type/Annot/A 18230 0 R/Subtype/Link/Rect[189 229 201 238]/Border[0 0 0]/H/N>> endobj 14237 0 obj <>/P 8524 0 R/Type/Annot/A 18190 0 R/Subtype/Link/Rect[298 219 310 228]/Border[0 0 0]/H/N>> endobj 14238 0 obj <>/P 8524 0 R/Type/Annot/A 18149 0 R/Subtype/Link/Rect[189 209 201 218]/Border[0 0 0]/H/N>> endobj 14239 0 obj <>/P 8524 0 R/Type/Annot/A 18046 0 R/Subtype/Link/Rect[258 199 270 208]/Border[0 0 0]/H/N>> endobj 14240 0 obj <>/P 8524 0 R/Type/Annot/A 16893 0 R/Subtype/Link/Rect[274 189 288 198]/Border[0 0 0]/H/N>> endobj 14241 0 obj <>/P 8524 0 R/Type/Annot/A 17997 0 R/Subtype/Link/Rect[151 179 167 188]/Border[0 0 0]/H/N>> endobj 14242 0 obj <>/P 8524 0 R/Type/Annot/A 17978 0 R/Subtype/Link/Rect[168 179 182 188]/Border[0 0 0]/H/N>> endobj 14243 0 obj <>/P 8524 0 R/Type/Annot/A 17952 0 R/Subtype/Link/Rect[184 179 196 188]/Border[0 0 0]/H/N>> endobj 14244 0 obj <>/P 8524 0 R/Type/Annot/A 17932 0 R/Subtype/Link/Rect[189 169 201 178]/Border[0 0 0]/H/N>> endobj 14245 0 obj <>/P 8524 0 R/Type/Annot/A 17905 0 R/Subtype/Link/Rect[264 159 278 168]/Border[0 0 0]/H/N>> endobj 14246 0 obj <>/P 8524 0 R/Type/Annot/A 17833 0 R/Subtype/Link/Rect[280 159 292 168]/Border[0 0 0]/H/N>> endobj 14247 0 obj <>/P 8524 0 R/Type/Annot/A 17811 0 R/Subtype/Link/Rect[189 149 201 158]/Border[0 0 0]/H/N>> endobj 14248 0 obj <>/P 8524 0 R/Type/Annot/A 17783 0 R/Subtype/Link/Rect[458 669 472 677]/Border[0 0 0]/H/N>> endobj 14249 0 obj <>/P 8524 0 R/Type/Annot/A 17739 0 R/Subtype/Link/Rect[474 669 488 677]/Border[0 0 0]/H/N>> endobj 14250 0 obj <>/P 8524 0 R/Type/Annot/A 17601 0 R/Subtype/Link/Rect[490 669 502 677]/Border[0 0 0]/H/N>> endobj 14251 0 obj <>/P 8524 0 R/Type/Annot/A 17580 0 R/Subtype/Link/Rect[397 659 409 667]/Border[0 0 0]/H/N>> endobj 14252 0 obj <>/P 8524 0 R/Type/Annot/A 17552 0 R/Subtype/Link/Rect[491 649 505 657]/Border[0 0 0]/H/N>> endobj 14253 0 obj <>/P 8524 0 R/Type/Annot/A 17535 0 R/Subtype/Link/Rect[359 639 373 647]/Border[0 0 0]/H/N>> endobj 14254 0 obj <>/P 8524 0 R/Type/Annot/A 17510 0 R/Subtype/Link/Rect[375 639 389 647]/Border[0 0 0]/H/N>> endobj 14255 0 obj <>/P 8524 0 R/Type/Annot/A 17486 0 R/Subtype/Link/Rect[391 639 403 647]/Border[0 0 0]/H/N>> endobj 14256 0 obj <>/P 8524 0 R/Type/Annot/A 17458 0 R/Subtype/Link/Rect[467 629 484 638]/Border[0 0 0]/H/N>> endobj 14257 0 obj <>/P 8524 0 R/Type/Annot/A 17423 0 R/Subtype/Link/Rect[484 629 498 637]/Border[0 0 0]/H/N>> endobj 14258 0 obj <>/P 8524 0 R/Type/Annot/A 17388 0 R/Subtype/Link/Rect[500 629 514 637]/Border[0 0 0]/H/N>> endobj 14259 0 obj <>/P 8524 0 R/Type/Annot/A 17362 0 R/Subtype/Link/Rect[359 619 373 627]/Border[0 0 0]/H/N>> endobj 14260 0 obj <>/P 8524 0 R/Type/Annot/A 17333 0 R/Subtype/Link/Rect[375 619 387 627]/Border[0 0 0]/H/N>> endobj 14261 0 obj <>/P 8524 0 R/Type/Annot/A 17308 0 R/Subtype/Link/Rect[397 609 409 617]/Border[0 0 0]/H/N>> endobj 14262 0 obj <>/P 8524 0 R/Type/Annot/A 37458 0 R/Subtype/Link/Rect[447 599 461 607]/Border[0 0 0]/H/N>> endobj 14263 0 obj <>/P 8524 0 R/Type/Annot/A 16958 0 R/Subtype/Link/Rect[463 599 477 607]/Border[0 0 0]/H/N>> endobj 14264 0 obj <>/P 8524 0 R/Type/Annot/A 16931 0 R/Subtype/Link/Rect[479 599 493 607]/Border[0 0 0]/H/N>> endobj 14265 0 obj <>/P 8524 0 R/Type/Annot/A 16896 0 R/Subtype/Link/Rect[495 599 509 607]/Border[0 0 0]/H/N>> endobj 14266 0 obj <>/P 8524 0 R/Type/Annot/A 16866 0 R/Subtype/Link/Rect[359 589 371 597]/Border[0 0 0]/H/N>> endobj 14267 0 obj <>/P 8524 0 R/Type/Annot/A 16835 0 R/Subtype/Link/Rect[482 579 498 588]/Border[0 0 0]/H/N>> endobj 14268 0 obj <>/P 8524 0 R/Type/Annot/A 16803 0 R/Subtype/Link/Rect[499 579 513 587]/Border[0 0 0]/H/N>> endobj 14269 0 obj <>/P 8524 0 R/Type/Annot/A 16768 0 R/Subtype/Link/Rect[359 569 373 577]/Border[0 0 0]/H/N>> endobj 14270 0 obj <>/P 8524 0 R/Type/Annot/A 16744 0 R/Subtype/Link/Rect[375 569 391 578]/Border[0 0 0]/H/N>> endobj 14271 0 obj <>/P 8524 0 R/Type/Annot/A 16699 0 R/Subtype/Link/Rect[392 569 406 577]/Border[0 0 0]/H/N>> endobj 14272 0 obj <>/P 8524 0 R/Type/Annot/A 16671 0 R/Subtype/Link/Rect[408 569 420 577]/Border[0 0 0]/H/N>> endobj 14273 0 obj <>/P 8524 0 R/Type/Annot/A 16648 0 R/Subtype/Link/Rect[397 559 409 567]/Border[0 0 0]/H/N>> endobj 14274 0 obj <>/P 8524 0 R/Type/Annot/A 16629 0 R/Subtype/Link/Rect[458 549 474 558]/Border[0 0 0]/H/N>> endobj 14275 0 obj <>/P 8524 0 R/Type/Annot/A 16591 0 R/Subtype/Link/Rect[475 549 489 557]/Border[0 0 0]/H/N>> endobj 14276 0 obj <>/P 8524 0 R/Type/Annot/A 16566 0 R/Subtype/Link/Rect[491 549 505 557]/Border[0 0 0]/H/N>> endobj 14277 0 obj <>/P 8524 0 R/Type/Annot/A 16529 0 R/Subtype/Link/Rect[359 539 373 547]/Border[0 0 0]/H/N>> endobj 14278 0 obj <>/P 8524 0 R/Type/Annot/A 16504 0 R/Subtype/Link/Rect[375 539 389 547]/Border[0 0 0]/H/N>> endobj 14279 0 obj <>/P 8524 0 R/Type/Annot/A 16468 0 R/Subtype/Link/Rect[391 539 405 547]/Border[0 0 0]/H/N>> endobj 14280 0 obj <>/P 8524 0 R/Type/Annot/A 44843 0 R/Subtype/Link/Rect[407 539 421 547]/Border[0 0 0]/H/N>> endobj 14281 0 obj <>/P 8524 0 R/Type/Annot/A 44804 0 R/Subtype/Link/Rect[423 539 435 547]/Border[0 0 0]/H/N>> endobj 14282 0 obj <>/P 8524 0 R/Type/Annot/A 44766 0 R/Subtype/Link/Rect[397 529 409 537]/Border[0 0 0]/H/N>> endobj 14283 0 obj <>/P 8524 0 R/Type/Annot/A 44715 0 R/Subtype/Link/Rect[443 519 460 528]/Border[0 0 0]/H/N>> endobj 14284 0 obj <>/P 8524 0 R/Type/Annot/A 44695 0 R/Subtype/Link/Rect[460 519 474 527]/Border[0 0 0]/H/N>> endobj 14285 0 obj <>/P 8524 0 R/Type/Annot/A 15050 0 R/Subtype/Link/Rect[476 519 493 528]/Border[0 0 0]/H/N>> endobj 14286 0 obj <>/P 8524 0 R/Type/Annot/A 44646 0 R/Subtype/Link/Rect[494 519 508 527]/Border[0 0 0]/H/N>> endobj 14287 0 obj <>/P 8524 0 R/Type/Annot/A 44587 0 R/Subtype/Link/Rect[359 509 373 517]/Border[0 0 0]/H/N>> endobj 14288 0 obj <>/P 8524 0 R/Type/Annot/A 44565 0 R/Subtype/Link/Rect[375 509 389 517]/Border[0 0 0]/H/N>> endobj 14289 0 obj <>/P 8524 0 R/Type/Annot/A 14526 0 R/Subtype/Link/Rect[391 509 405 517]/Border[0 0 0]/H/N>> endobj 14290 0 obj <>/P 8524 0 R/Type/Annot/A 43509 0 R/Subtype/Link/Rect[407 509 423 518]/Border[0 0 0]/H/N>> endobj 14291 0 obj <>/P 8524 0 R/Type/Annot/A 14416 0 R/Subtype/Link/Rect[424 509 438 517]/Border[0 0 0]/H/N>> endobj 14292 0 obj <>/P 8524 0 R/Type/Annot/A 44411 0 R/Subtype/Link/Rect[440 509 454 517]/Border[0 0 0]/H/N>> endobj 14293 0 obj <>/P 8524 0 R/Type/Annot/A 44369 0 R/Subtype/Link/Rect[456 509 470 517]/Border[0 0 0]/H/N>> endobj 14294 0 obj <>/P 8524 0 R/Type/Annot/A 44344 0 R/Subtype/Link/Rect[472 509 486 517]/Border[0 0 0]/H/N>> endobj 14295 0 obj <>/P 8524 0 R/Type/Annot/A 44302 0 R/Subtype/Link/Rect[488 509 502 517]/Border[0 0 0]/H/N>> endobj 14296 0 obj <>/P 8524 0 R/Type/Annot/A 44257 0 R/Subtype/Link/Rect[504 509 518 517]/Border[0 0 0]/H/N>> endobj 14297 0 obj <>/P 8524 0 R/Type/Annot/A 43197 0 R/Subtype/Link/Rect[359 499 373 507]/Border[0 0 0]/H/N>> endobj 14298 0 obj <>/P 8524 0 R/Type/Annot/A 44185 0 R/Subtype/Link/Rect[375 499 387 507]/Border[0 0 0]/H/N>> endobj 14299 0 obj <>/P 8524 0 R/Type/Annot/A 44164 0 R/Subtype/Link/Rect[397 489 409 497]/Border[0 0 0]/H/N>> endobj 14300 0 obj <>/P 8524 0 R/Type/Annot/A 44120 0 R/Subtype/Link/Rect[487 479 499 487]/Border[0 0 0]/H/N>> endobj 14301 0 obj <>/P 8524 0 R/Type/Annot/A 44094 0 R/Subtype/Link/Rect[487 469 499 477]/Border[0 0 0]/H/N>> endobj 14302 0 obj <>/P 8524 0 R/Type/Annot/A 44055 0 R/Subtype/Link/Rect[359 449 373 457]/Border[0 0 0]/H/N>> endobj 14303 0 obj <>/P 8524 0 R/Type/Annot/A 44017 0 R/Subtype/Link/Rect[375 449 387 457]/Border[0 0 0]/H/N>> endobj 14304 0 obj <>/P 8524 0 R/Type/Annot/A 43979 0 R/Subtype/Link/Rect[443 439 460 448]/Border[0 0 0]/H/N>> endobj 14305 0 obj <>/P 8524 0 R/Type/Annot/A 43958 0 R/Subtype/Link/Rect[460 439 474 447]/Border[0 0 0]/H/N>> endobj 14306 0 obj <>/P 8524 0 R/Type/Annot/A 43913 0 R/Subtype/Link/Rect[476 439 488 447]/Border[0 0 0]/H/N>> endobj 14307 0 obj <>/P 8524 0 R/Type/Annot/A 43873 0 R/Subtype/Link/Rect[397 429 409 437]/Border[0 0 0]/H/N>> endobj 14308 0 obj <>/P 8524 0 R/Type/Annot/A 43839 0 R/Subtype/Link/Rect[438 419 452 427]/Border[0 0 0]/H/N>> endobj 14309 0 obj <>/P 8524 0 R/Type/Annot/A 43805 0 R/Subtype/Link/Rect[454 419 466 427]/Border[0 0 0]/H/N>> endobj 14310 0 obj <>/P 8524 0 R/Type/Annot/A 43765 0 R/Subtype/Link/Rect[397 409 409 417]/Border[0 0 0]/H/N>> endobj 14311 0 obj <>/P 8524 0 R/Type/Annot/A 43721 0 R/Subtype/Link/Rect[434 399 448 407]/Border[0 0 0]/H/N>> endobj 14312 0 obj <>/P 8524 0 R/Type/Annot/A 43696 0 R/Subtype/Link/Rect[450 399 464 407]/Border[0 0 0]/H/N>> endobj 14313 0 obj <>/P 8524 0 R/Type/Annot/A 42592 0 R/Subtype/Link/Rect[466 399 482 408]/Border[0 0 0]/H/N>> endobj 14314 0 obj <>/P 8524 0 R/Type/Annot/A 43611 0 R/Subtype/Link/Rect[483 399 497 407]/Border[0 0 0]/H/N>> endobj 14315 0 obj <>/P 8524 0 R/Type/Annot/A 42530 0 R/Subtype/Link/Rect[359 389 375 398]/Border[0 0 0]/H/N>> endobj 14316 0 obj <>/P 8524 0 R/Type/Annot/A 43532 0 R/Subtype/Link/Rect[376 389 390 397]/Border[0 0 0]/H/N>> endobj 14317 0 obj <>/P 8524 0 R/Type/Annot/A 43512 0 R/Subtype/Link/Rect[392 389 406 397]/Border[0 0 0]/H/N>> endobj 14318 0 obj <>/P 8524 0 R/Type/Annot/A 43463 0 R/Subtype/Link/Rect[408 389 425 398]/Border[0 0 0]/H/N>> endobj 14319 0 obj <>/P 8524 0 R/Type/Annot/A 43437 0 R/Subtype/Link/Rect[425 389 437 397]/Border[0 0 0]/H/N>> endobj 14320 0 obj <>/P 8524 0 R/Type/Annot/A 43388 0 R/Subtype/Link/Rect[397 379 409 387]/Border[0 0 0]/H/N>> endobj 14321 0 obj <>/P 8524 0 R/Type/Annot/A 43350 0 R/Subtype/Link/Rect[467 369 484 378]/Border[0 0 0]/H/N>> endobj 14322 0 obj <>/P 8524 0 R/Type/Annot/A 43302 0 R/Subtype/Link/Rect[484 369 496 377]/Border[0 0 0]/H/N>> endobj 14323 0 obj <>/P 8524 0 R/Type/Annot/A 43263 0 R/Subtype/Link/Rect[397 359 409 367]/Border[0 0 0]/H/N>> endobj 14324 0 obj <>/P 8524 0 R/Type/Annot/A 43221 0 R/Subtype/Link/Rect[423 349 431 357]/Border[0 0 0]/H/N>> endobj 14325 0 obj <>/P 8524 0 R/Type/Annot/A 43175 0 R/Subtype/Link/Rect[434 339 450 348]/Border[0 0 0]/H/N>> endobj 14326 0 obj <>/P 8524 0 R/Type/Annot/A 43146 0 R/Subtype/Link/Rect[451 339 465 347]/Border[0 0 0]/H/N>> endobj 14327 0 obj <>/P 8524 0 R/Type/Annot/A 43111 0 R/Subtype/Link/Rect[467 339 484 348]/Border[0 0 0]/H/N>> endobj 14328 0 obj <>/P 8524 0 R/Type/Annot/A 43086 0 R/Subtype/Link/Rect[484 339 498 347]/Border[0 0 0]/H/N>> endobj 14329 0 obj <>/P 8524 0 R/Type/Annot/A 43012 0 R/Subtype/Link/Rect[500 339 514 347]/Border[0 0 0]/H/N>> endobj 14330 0 obj <>/P 8524 0 R/Type/Annot/A 42988 0 R/Subtype/Link/Rect[359 329 373 338]/Border[0 0 0]/H/N>> endobj 14331 0 obj <>/P 8524 0 R/Type/Annot/A 42952 0 R/Subtype/Link/Rect[375 329 387 338]/Border[0 0 0]/H/N>> endobj 14332 0 obj <>/P 8524 0 R/Type/Annot/A 42923 0 R/Subtype/Link/Rect[397 319 409 328]/Border[0 0 0]/H/N>> endobj 14333 0 obj <>/P 8524 0 R/Type/Annot/A 42878 0 R/Subtype/Link/Rect[462 309 479 318]/Border[0 0 0]/H/N>> endobj 14334 0 obj <>/P 8524 0 R/Type/Annot/A 42853 0 R/Subtype/Link/Rect[480 309 494 318]/Border[0 0 0]/H/N>> endobj 14335 0 obj <>/P 8524 0 R/Type/Annot/A 42809 0 R/Subtype/Link/Rect[496 309 508 318]/Border[0 0 0]/H/N>> endobj 14336 0 obj <>/P 8524 0 R/Type/Annot/A 16057 0 R/Subtype/Link/Rect[397 299 409 308]/Border[0 0 0]/H/N>> endobj 14337 0 obj <>/P 8524 0 R/Type/Annot/A 42741 0 R/Subtype/Link/Rect[462 289 479 298]/Border[0 0 0]/H/N>> endobj 14338 0 obj <>/P 8524 0 R/Type/Annot/A 42694 0 R/Subtype/Link/Rect[480 289 492 298]/Border[0 0 0]/H/N>> endobj 14339 0 obj <>/P 8524 0 R/Type/Annot/A 15591 0 R/Subtype/Link/Rect[397 279 409 288]/Border[0 0 0]/H/N>> endobj 14340 0 obj <>/P 8524 0 R/Type/Annot/A 15485 0 R/Subtype/Link/Rect[453 269 467 278]/Border[0 0 0]/H/N>> endobj 14341 0 obj <>/P 8524 0 R/Type/Annot/A 15423 0 R/Subtype/Link/Rect[469 269 481 278]/Border[0 0 0]/H/N>> endobj 14342 0 obj <>/P 8524 0 R/Type/Annot/A 16110 0 R/Subtype/Link/Rect[442 259 454 268]/Border[0 0 0]/H/N>> endobj 14343 0 obj <>/P 8524 0 R/Type/Annot/A 14962 0 R/Subtype/Link/Rect[434 249 446 258]/Border[0 0 0]/H/N>> endobj 14344 0 obj <>/P 8524 0 R/Type/Annot/A 14752 0 R/Subtype/Link/Rect[397 239 409 248]/Border[0 0 0]/H/N>> endobj 14345 0 obj <>/P 8524 0 R/Type/Annot/A 14539 0 R/Subtype/Link/Rect[496 229 510 238]/Border[0 0 0]/H/N>> endobj 14346 0 obj <>/P 8524 0 R/Type/Annot/A 14492 0 R/Subtype/Link/Rect[359 219 371 228]/Border[0 0 0]/H/N>> endobj 14347 0 obj <>/P 8524 0 R/Type/Annot/A 14426 0 R/Subtype/Link/Rect[397 209 409 218]/Border[0 0 0]/H/N>> endobj 14348 0 obj <>/P 8524 0 R/Type/Annot/A 14384 0 R/Subtype/Link/Rect[359 189 371 198]/Border[0 0 0]/H/N>> endobj 14349 0 obj <>/P 8524 0 R/Type/Annot/A 14355 0 R/Subtype/Link/Rect[397 179 409 188]/Border[0 0 0]/H/N>> endobj 14350 0 obj <>/P 8524 0 R/Type/Annot/A 42243 0 R/Subtype/Link/Rect[506 169 518 178]/Border[0 0 0]/H/N>> endobj 14351 0 obj <>/P 8524 0 R/Type/Annot/A 42214 0 R/Subtype/Link/Rect[397 159 409 168]/Border[0 0 0]/H/N>> endobj 14352 0 obj <>/P 8524 0 R/Type/Annot/A 42160 0 R/Subtype/Link/Rect[496 149 508 158]/Border[0 0 0]/H/N>> endobj 14353 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14354 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14355 0 obj <> endobj 14356 0 obj <> endobj 14357 0 obj <> stream q /X1 Do Q q endstream endobj 14358 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14359 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14360 0 obj <> stream HWko8_~٢@vNx1$EJ-e-y_%˗mCCسgo/^=eHh.,KRx&Y)J+Y%K$XŢMUͦU۲U+_%F/R|RL]daYfaL'-Qdc)#&~Wv+[4>\kٵ7S_+xʝ"z%02~W[X/=2O|LؚEVe\0pbwDבM1dž8"Q cN1` X)څc XP/P/PPPPP)> ԧ4P@}F> p$\1`ŘcJµs,B}ZIc"\1"k1Xp-ƶ"\1 c Xk1Xz9Vc"\1"Uk1Xp-ƀEcE\ḇkZp-PVŘc*µZ9>p"\1"Uk14Z9Vc"\1 c̱BZ9>p&\1"Մk1,µs,B}ZMcE\ b Xk1Xp-PVḇk5Z9>p&\mŘc1,µsP=+ToV5W2X.ly/U:ói++^Yg[igb]YSg|c8?ƇWpZ-VPmuEMCtŮmW6PTIUO'!ds5o] ax\qtjjRaEXCA2g> \PPV`ǚk9:e .wFXψSYW+EL3#sȁM_3$ ,sXثa-s+9 q 4<X:`\2X@Άzz"o)Giv]j\` Rh{d j`x_ޗC~Cpi){L=,^ !qHx1kBf{ g)~ OگJxpqjlzxg]Z77[0L>=~szIDU.F(}k=<m8#q }4ۦʭr]@IK:^ __t56^*ӊMۜ y߬ZĪ *|YȤV&;aP( F<̗Dՠ\iUwĐ ~3ca砄,S4.rzq܏ <>]0/:hhkHpS4&Wݬ5aM=PEd<^U7qm\@ԓZ){Jm(f&/TvݷMx(Yl?~,P,u<M g8s[dmM*i 5vB\5G9N*}^ęE.y,b ]c$"hjMѢ2RRKَjIf?KR8Fŏezy7ۭ8Vm{$C:%[,s*GO(j{H:2F,sUTSPJ~8M0yĨh-WIR᲌ک~x3f;e|/ܕs-8 {-,G~PELUt171'8EK샬JS:7@ ܰ+ʍ~W:ؕlRy?W|x{erR* $&ك2+  9w<6r>=yv;C(6DovJXkNУ 8QljvKѧly k>͠wn.>_߿a };%En-mn)y $ 9VPy{zygF=UeeV&v>$)9FhXEvEUMխ8%<9~7m&QzQC`뇌ět"q\3U! * L ?zf$;tC2b)(n_`nQF)ԮjRDi&HطZ0\׹~ EV8cfJ#tz# >} S ]ZKqݷ î endstream endobj 14361 0 obj <>/P 1223 0 R/Type/Annot/A 16698 0 R/Subtype/Link/Rect[93.6001968 663.229004 241.884003 682.908997]/Border[0 0 0]/H/N>> endobj 14362 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14363 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14364 0 obj <> endobj 14365 0 obj <> stream q /X1 Do Q q endstream endobj 14366 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14367 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14368 0 obj <> stream HWk6_~3G7I") /$(+%ג;{(2y'-Ec!\^޾={痯_=Dh.JJLx&Y)n$;?IRvVݵzocb:d]b.o $%IYJinޮmՍ4B.>.Ldeܤ/]-?ˁMq112~"0%{`"e?07c,)UƥI_}RSƜ2TECV.Ā%D 0dj"bzzWzWzWzׄzׄz7z7z7zY>#gPGsB} y P_DKB}/ ga'pm!+Vb"\bȊՇb!,µ!,B}ZI6ĐE\+ ׆׆k%C>r$\b"\b"GkC Yȵpmpm!PV 1d#Jµ!OCV>ĀE6Đ1dC XkC Yȵpm!PV 1` 1d#*µ!,B}ZE6ĀE6ĐE\׆kC>r"\b"GUkClhµ!X}pm!+VbȊՇ׆k5C>r&\b"\b"GՄkC Yȵpmpm!PV 1d#jµ!,µ!,B}ZM6ĐE\ ׆>1kC YCV>Đ/yY߬'/R`M"xeYɖnv&S~ku_utVtٯ8۹fu|\{-WOSc|ą4 e01Qg]}EƾzZ}שkڴ d6]YrS&w# <_~3?q{;6ۓ~S@]5n.n|?Xú h\qW:wPihWXتvʳ:Vtv8JV[?kjԾt9OuNSYPSUjS8 K[R XJ\kB]'V3ڳSW7b|! 0 <DxQƳ0";vޮ5Vn!A0REzN$3sԬ0pŏ_Ts,٩~ͷϱoC".u[^$Ef}'?¤2[slU\fعr bӱ龃1NSŬߞ3sLtn!nIm~6N`D!y;(#& ?l2&swx$J;$7͜bg}Ί#YֺIyZz0,Eh3EV3rAlM̻󓔋Vз EYgJ" [pA1oޞ,1Z9 Y?mn !ioo*\Ңt~|2$0[b2۸CPȂ!Ŷj z܊f0ZՊ #WĹàvuՍIt|c0%^ '*`sK=5$H R++e? ;_ /(09-c}_7p`E2W/W^_+BN*,`  N>G\%<( #Pchw nܵ/\G6y:&Z4ѨѠ5E}KamQr6nC_RڟGnӮv_‡&lBǮQi7sN"t8uen;#s 3M[B,8 >ػ_ wՍ6 8C.@'½`u۝؏]`ίhrh}z?0ps:KOdx?f%b(LtSszuצQChJHuIS [?t0eN\*N'iꡐna] NS3.G(Yơ^-E2lؖ T\;q̽y0E~9<!\I!C3F}t4 5.E4AD*ui k rLXwM?06 4(hsNcn64> 9/b֙^>QIl]*qIolJ9~HVU D>:+_xlC[6@2[6,yCJ4'p3|3Va:و<DHnJvtk i-@kcRrBQh.*/~ //$  5(S,L39n ҅qs,O6ӊHM%!XVք1)֢afqUZ-CN]"c]>.9TSc@Cp4FU4E/JJ ڀ @%}i\Dh\vMGAKآOֆ)iYzS9@{l1|~K`~Xu8{Ƃuz+Op#x";?9Q"20Du-`wrƾ=˿=ծrTqv9__- $xofjrwOqLQL΀#k٤ ?l&1 ϯ]i:tR0ꄒ/DЮL*21hmOAy&'ZaUњ* 0RO B!(r8Ry^}r|O+L7}?"{0oŭWʍH],83Iio}8lŐv6TJQ&K*G[rWg)F,vB%ŬLGHLFi§aUJ"Tԓۇ Eᚊ+g4֏x"Ybl1Q_I_J,4Qiӭ^m//vIALWyLaeT"ocOd!+ _Oz4fRQaT*5:Dh:g}Gbڰ؃mݿ=|F X6ӧun_e*ė媿3qtYϛѯ8jkr'j #QjMxx-)ik". cgc3uӻߦn19ʍUD~9+iu9y>?Yo*l`ܬ σ u%49D` M #3Zt(TWkcwo\O҄endstream endobj 14369 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14370 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14371 0 obj <> stream q /X1 Do Q q endstream endobj 14372 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14373 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14374 0 obj <> stream HtWs_Gv _o:W7x%f]\`}Ed{~O7_PaLQIt~w'pN薮sIVy_>wRmY˾- -{n;b휯ÿG'E7sE$8$Hu|Uz1/0FЏ4y߿eZsv?hӳA}澸a\kn\'P@v{'LNfs2"L Xah Y2-ĀRR R R R/R/R#K}D,>DŽRcK}BO, >'RSK}JO->gz˳!aZFĐe71`51dM YzZCr-#\kb"[ekM XkM Yz˵p!Po51`51d-2µ&,BZFĀEĐE\ךkZNĐe71`51dM YzZCr-'\kb"[kM XkM Yz˵p!Po51`51d-rµ&,BZNĀEĐE\ ךk9ZAĐe71`51dM YzZCr \kb"[kM XkM Yz˵p!PoV51`51d- µ&,BZAĀEĐE\+ךkZp!Vob"\kbȲ՛lepڹX;/ G2?v8s׵jmSY6>{2wWoǦ|\}]XH?ޣ4Lc?x)d7 )!w:zQY]M-5>[C ܇I\'A{zY7Q Ųesnn eL%z* `g^l0j V tZΦn0 rS'[eST:Hb#<48ɞL,Z(S=Ξcȗy^9TEe~ T]wM߁jԡg:FG*݈>m[B}0PNo=4Jjdݨ7)(Sd/I 7ʴie;KR05_ѵ80'|8j,7g^ȧ}T߇Fx^3R8J -V,ZR `7dג)$7y' ce1~7|Se5TYlM1z8lоOY=h cBcGVu~ ލYxƁ’i'==."}-s'kX!,EqhU{]60K=]H{" bwy}6nJ"z*;UvފfSE O8t.Q [3wޠH.N;)58Ƚy̿uD40 сwhֵ2Л|, qVOQ ܄ :YY*;08Z-浔+Qz`s5LwvOeq(,^j8kPê[mD~W:0+|yQ8>V ̃]gl7Y1~_:{9^%eM/Eϕ>å=-lZPS[oM[>/vw6‰,'zR*Yr }p+ͷq:Twj2J)ڦ-U˒ǒ灋69 Q}| _$$a"n]vpk-xo$F7S/rŐ"/_q0sdFmVțrFf5gi+vbC.L3d*rIZ9|v1l~VZju-:Iu3FKZwb \p>^Tuxϐ;|A}*b{1f/6&)w-?ذI#CU)x*+y1HzSz|+egP9D<`yn}zf[faͻ-2? B腹Za=8Ǿ?8}W=6}C>HUi+]/X" KK.OF7U842@9hbCwy2{麄vIy g/`Zc(AOefסK( ޲U9gQiT.)O/VtHAab`a6ߖr]d[ MTNmjG-.SO< nh;Ev5([9 ,*ЉTڿxtNEƸߑ_GN tpjzM] Ƶ7~sw4%3,۔ #r#!ہrZD2njjEsgğ4VGP +5 %K,\9@g ,ԏ> nhofkӍF0cRU6Nlʭk.JS 2*P^3j:eJVWb[Ӏfv}E82?H:|vű|q7|f4*M<$XY8D:N1E"ɡj`DP5snQ_rm6pm K $֦ 'nݏ A<8yip`"b:b_ZcUc$Tب>֛xSHo~uo,{endstream endobj 14375 0 obj <>/P 363 0 R/Type/Annot/A 43029 0 R/Subtype/Link/Rect[411.214996 271.309998 509.716003 286.290009]/Border[0 0 0]/H/N>> endobj 14376 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14377 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14378 0 obj <> stream q /X1 Do Q q endstream endobj 14379 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14380 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14381 0 obj <> stream H[X+hBrRJ\!vRT9;vb{"ɪu>/k|fWv=zJ/^^FE%ګq*+mU6ɌjR)ҪQ?ro֗mVmm/o^TѬҪ|8H򁩊T*Km.ڴ}/7ݺY?'&KfۿMt6}^|ޜIQv ~*Jiu KdNկ!Fky'& തU䋉F>/=ytjk䒇Zpi-]L#W\<2<ׂˀF7 -HoEz [ނVw HD D D DEE/D/D/D/E/Ez{ރbf5Z"k\`jF.k\`jF.^LS5rbj ZZ Skr\ Zkk0\#H/րZp@z1L-ҋ5`j,ZKZpdzKZp@z1L-ҋ`j\`jF.^LS5rbj-ZZ Skr\ Z kkZ0\#H/ւ*r`jF.kkF.kk:0\#H/ցZp@z1L-ҋu`j\`jF.^LS5rbjZZ Sr\ Zk(S5r\ .0\#L5r^ imd> 'UE9J'L,a'0LcKLa¡ǦYծn֭׫:9Ƕe,`EX36N){O\GfX]|{W'Q*dg#ˑf/iF7&?YN릭g;mtI֯)`Gv{Iٯg#߶>ٍOr6݂wNm4_|zsZa6>3s?VlW/ӝ>NO+:]hc̖e϶?-miahv?-5-;eރ#xxe@e03[j썫zWy[MWU]m7v:ȇ+P ZD.NǞy\.u}Ӭ'y@>~hy>N6-F?NSϪ[,|>O!Y&齧Vt)~yP}B"`$᛬C#o-z}T7;D0I L/Ş]<!L`")(MMOE.<=L1UVfWgE_s1&{=!;dȏp߬8&wbE\S(Ά-88J%`cDbkm.\xt&V-6ojs4,]'?;})j Ɏnfu 6}hɠuylnmlԅ'ӑhMl;R`Mo)k@7[J-pQp0aQR CSlr!雤ts b (9cI1dnrs1Zpg.HIWU&vwaa+hlx춛ͲY>]fݽo֋u>폫__]uonæHyom{w+Zz܄=#.}fpM`.slwEOcly©B$SIYڕmpz8ӂ8Gi|3wm5|Ͼ0`FS@nJmoū}b0kb')(8Ǎ„&&ZtòuYe 0q&Qir+,+jGJݕI%2gi@9QgCxeE5Gټf2ia?'Af0<@;|7 ıWoީl1fЉGAn FVɇ5?؈G)k4\= h7>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14383 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14384 0 obj <> endobj 14385 0 obj <> endobj 14386 0 obj <> stream q /X1 Do Q q endstream endobj 14387 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14388 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14389 0 obj <> stream HWms6_ܘ NgjIڱk)MLi$*4o!I7Y>봪O?_"ɫS%"cᇜD%'U} +Gx7"oi(bU8yx'sxℑ@J$1/`ty ]g v2+WbCGGa<9}Ju^M?߶.QhFgs9 ̖p79N%3yKn?RrOD>pϥD›y1I, 6r6@1,BIesg%oaa/a/a/a }a/a/a/!>t؇a!#}>ra#c}O ,CDkۖGTkeoֶ)޶)޶ QmS(Zֶ)Q-GTkֶ)Q-GTk a猪#mBTk a猪#m wT6@!m wT6B;jmjmBm6r6r6@!m wT+6B;jm6B;jmB! D PjmB! DMjZ(DMjZۦP{GQm[zZۦP.{(DM\M\ PjmB!jmB!jm6B; 6B; 6@!m wT m wT mBTk a6@Tk a6@TkۖDTkeoֶ)޶)~0iق$IB?;{s xk NBқ"i׷="L^囬*uQG!|vEN<Ϻw !}^$ͶG}7?!w ?umBnrr3WKbuFZ7uw<ʏam-Ubne0q=U$AJ81jI rNPyX^ *x N!,IP)iiRzqMZ(wRp֍Dө4:pXtG*\F l&xy5emnO@e{O6᧢Ȁ!HU^sVНDĩYwh86՛Gi_ޝ]u}H7dQ|)V tM{1X]@.)h'}_/^ IΞcɦN )HT,{[Q>HQu {z)(k@*9 =vRff*Hh IQA3$WD j3(F9;-B/wOmKDaC1+[E<6<Ծ،31rȁgئ`hXe^L,_7[ĺA3Ny30w8+kR?iiS}Y9CGq-&jǍ"j(mrtZA[*0A= = 8dhP-RoEXmj{@mY"cf(" ב#%Aƕ8Oݞ{}_(-v_Ͷ||*քw KQƾo.)Ivnqڢ4/vQ5'c^k8glBwBu4@!ØXe\PW>נ탅:Bswp # Ѣ!DҞ:n 1b\cd/O k~KɷAPU}vA/>5 y n o`~dp]$V`u2핵ha3̖ $nvЎUJQb`(ۏdQnދ{/[!.> }->k,OUZ* Ywnr}slC_]cz~91EmR(7;{G.ZX}K=Y.ѤIи+ӣfOl({22{੷:Nr߁|)+2ɾy꠽->иUʡ,Z؆t9^1cܠZ3#CMA{`cSK>Z9;6$~o-t FV4xs~vsٟ?Ϋ9m:C<}aM[0 pOw)M~}WvVN0z]=0\s`j[3&iz;7s_a-Βt '0T RXv(&&V4C_XqxeV=~/yY.x#;F\-6Nb ib X\GL_.-Ak3[06"X@'IPy%sm#!TN$t,uٮRfNn}q>cm ^fn8Q%Z,P7]LO <LQ Dhf)ԕi!<^-SHYtygIE6UWLoʄ խ>Wm y]Uh.:h̖ԻӫV*J-8_ y{B)B*F0Ib=njP'@3T@)K,Ȧ(7_mp1׼* P&^<' .J_75Hj̦FJF?V#D]6]t] G_j᎟p|T "܂)ZYזANCE;)ŦqiD]w ɺ7@ɓ0cQ%Ot}z':I×>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14391 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14392 0 obj <> stream q /X1 Do Q q endstream endobj 14393 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14394 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14395 0 obj <> stream HWM8W:lK9$ `9Ŗc+[%R\,':ʏb=ҟ~zio$R_ԖZ*-r-J:,ȴIC547c=t&UO^S2]dKLLd%nukTV z>{lN{twAe&Hg\WOC}=T+N2S9IPs*W>t&NBYW\b#Dm6@I QAQR Pa"a"a#a#a#ao"ao"ao#ao#ao#9> RbTKmbTKmbGUj Q HQ-Q-!aV16D1#*F(FԆ(}ZŨŰTR1ьj Q1{jZjCT̞6@16D1#jFԆ(}ZͨŨŰTRj5ZjZjC>RfTKmbGՌj Pj Q HQ-!aV3cbRb(FԆ=!*fOmbTKmbG5j Q HQ-Q-!a06D1#F(FԆ(}ZèŰTkRRj ZjC>RaTKm26D Pj Q1{jCT I3nuT]"TNit}LV_jQN^GrNs#r] XWm}}ZH2aJDnهҙݟp*ar|/t42p%>2p?CzWw~Ccih˄rZH8 96҈rq=?]zF"23OT106X9mo Q,~o,^ hBy^:s-7o> s3Ss+5*vz?ۛܕ)Evo)K\Y#a}G'Lyngt=7Pi9λyy,H0\\jIIl11w2/V(Ys [mzy۬Ԛ$s~W%M\Ġe짠l[oU״,qs[mS x%ijհ@8#<]fH`1zۖ1gA 5*/9.Lӟ!oB-~<0RYp_ܵ=lK9k>ר۴ .‚KeIrh]3qpN|\iZλ~_]:ߚ>t}5>v"CuwNCUB[L4suNTB:Lߍ[rQ7?Gq`'cÞBPl\ #bù|FmZ](:~N=ѣPjH=f5[s I L*8ma"g( y D&l&T(:잽0/Mik{yXA]=R,[P#*^0@6>vN/pm0.*7dH:>-zmd<^7uXzӓ׶Sfjۧ'ts=oKun >Z+x!'xlyj_ Pdz>ंgkھjOSQkŐs%)k̿h@g*۴=EcBX\*793![3rM奁 = N 喤}ñZ6d>> \PhoBPB67Kb]" \N EnbB5U)`JLeWkҨ0K؇*cZ.ZwPվi 5BΘE}Wk@c?՛Cq֍z#UCş=~[W-l4ͺVc\XMW׫ ~Xe)8W[Q5WKR[mup@ -`씐F.ȳyk `{Z+\Ԑ|sh`X&sv1",P9K+ v~ $ž-ZݴiH(PG,;}!EORphn^*YZ96hmOM/#xn&7x}˾-V{i Ca.~lZ"Xu4 K9bd6{b,Amޟf8R Ys r^CObM#Jѓ= uE66)O*62GrQn.0cZuOfF<"~9H7k'WCD(s7M1v$:Adɀlq ɮug˨lJW6+Vu{K sE誙$2]:YӭFp;r(E w|)Z՞mȲt#^49'l<4zg'E ،ƤFhk^ݛ8W) UWЇ̣B}KkCW^7ɧ~k5l'Xc nH;,o9yJ)-H Wjrx9BGOIllӒq:sd tAlD2Pᚖ[+7ו5&: :Z0'!K|DӇgվ PaIޏ:-JDv_^攸"Rd*mn/P_Y<7)iJ(T&Weǃ3)"ta "a^jp% <}{ 3B#0x@ r0A(S7hf JèIGQ&y0iDA񘓈.(f#E0DQRO7ֹd޹yC:Lz݂ć=DtPN;d,4q[8ܠ@rn꯯_ǻaoj,!Ӫ{<  sV %"#2&-h]Fp]hX~VcS u}0cbg33/LH2ñ m(lxFIXqifα_8yFFXssj9w#&Ͽq̴~^'g[g,Dlft%>N$$`wPm8t=bI:LDs !*, 5J?z\L Lۧ0g3(9(4kOk64n =ԁy}/DzP#M¾v϶7'tܪ}>O}G?{oendstream endobj 14396 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14397 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14398 0 obj <> endobj 14399 0 obj <> stream q /X1 Do Q q endstream endobj 14400 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14401 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14402 0 obj <> stream HWkܶ_AXkŇ^mvF.5 gGSI"!:iQ\=$%y.ɛ~dW?^ xB$Q*X(;18XpFX}/F}f}V!x nVdAĬ`ɲ8g& !V&qD|vav`WOEcgQo˯z#$gՠ^d&~MMe$`f/PU"d̿fx~>mXP4 Ev۠H\Ns c\ Yp.,}!+!Xv}.,AzAzIzIzIzEWzEWPxB}O>%ԧPz3B}>#gP{sB}/ {i] ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d= µ.,BZAŀEŐE\+׺kZZCs \b"{k] $ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d=Jµ.,BZIŀEŐE\+ ׺k%ZZCs$\b"{k] ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d=*µ.,BZEŀEŐE\׺kZZCs"\b"{Uk] µ.,_p!WbQQYnf?*jxlQ*Xl]>s=bFE ˶?6oQD)O>, zU`W<x[>^u7Hl,dXER%'[h˜Ehb%c%3Znlv4mNƅr**}mb3r4ѥv`;p4;+CtVTA ֻDN 6+t=|S,S(}Y/lphpmM]vP;jFײ 6tAДã!Ya? h'Z$i%Bݡ{èq hFe$܌ 6z$PWӖEjP9ڇg  o,i']vMY~UQK&Ii^TE|z[ !Dsm򏴛L&#.8V{cLm%F1b0vdm}2>/"2k2B" 8)N:o^c٠ko)EkVۏ[hj<)&3'K cug>r~*ad=N"֔lSmق)2rǧN5B3,0Iiz|s2$r5edvʹ_01Xq {ZȪ"䦬Zd+8d;Qjfg@9#owLǾ,T,/pY9g 8*DΒ4u#AUy8R$`d9^`GU`kKّaS^31,}J'IxF&0&>TUCa8nOOk'e002ݤs}zNK Eʼ+Ť15}S؄oHDp2k왼8>y)aWǓ\l Z& b\vKk;q";̃e_{Dl!>ؒJ,Kz7jq7H{ nԬ0LkLg\ ]Mwy_^9YJ >+;F0u=cOmц6{zsfZTyeePNU;uj۬eKϪMB[D &$AmPpNf'΃݊[}3af*;@i>=''Ѐy#EkSeFYg8/q<7;-:/4;>/lV@UͨxeY9?o7yhǪ^:=Wxe== Za)Tso6huw4 ƣ7G_ bq']GͅXWnCVP#es׃fՖ݆j~ŷW_ҮH"޼mu^&PÛ'ڹT<9<[^]pA1VXc zWOF߆-m;m;Bs?HR0'lBg5 pފ }ͫH%ώo#?WMo0 WbIҹaCo^%ҤHt{ے%dHQ||l\ j.;y:^ΐ.,S[^I n1"`qкq7OMC ˸XҺMOn\i푾VZn62Ep(%ٴGny"_@ "c?B"pҡ,ۏ!yݓpSj ϙ|[|_. 0{K\endstream endobj 14403 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14404 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14405 0 obj <> endobj 14406 0 obj <> endobj 14407 0 obj <> stream q /X1 Do Q q endstream endobj 14408 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14409 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14410 0 obj <> stream HWko_1@H g @ERH;0hJb*R1rH7Z,69rܫ˿|ywLW޼{;ˌ0j+Ě[e"#*]m|[o}-}U}]I&z.WF3VwQ dHj]->E[;|XHÑ %Ӯx/W_ #,5,alQK"Rqc$*\vYl!D+Ȥ`avE52sea%se D,dG | Yv>,)C!,_x"ԫ@"ԫ@&@&@&@!ԛ@!ԛ@%@%@%@}L1>'$P@}BO)> ԧ4P@}F<+ 6Rk} YzZCVǐ1`1d*µ>,B}ZEǀEǐE\kZZC>p"\c"Uk} Xk} Yp!PVm B>,µ>P!+Tc"\c"Մk} Ypp!PV1djµ>,µ>,B}ZMǐE\ k5ZC>p&\c1d} Xk} YzCVǀEǐE\kk ZZC>p!\c"5k} Xk} Yp!P1`1dµ>,B}ZCǶ%\c B>P}Ƴ,3Laެ˕L]$EC,3FWbSbr]=7UӖnX~e!lUqA i:,(k$4elnJZp!cu[/MQyo˶KLfVew]Vgxh6q2br;aˡȑY^::÷w֍ƍn{:c#OǕN'$\Q,17m-׏y>q٬X]ǯ&l(p '}n#yӏ7կ0ߪa\tI-#q&Lr,ۯerNڅ *5[zQ/}0[DaB ;ap\95<{tT'*岛jWl뒽pr0f:KYծe']zg!-iVn KV㌋`.Op"<#1 .jdTzjMe|DdA7̟9%[#4`9cSYJ9&4MNgY8ddQeJ,_-Rpc+ - ~^Aj"L*a@be1WLY>6էp){<{̊,=lUh&8l:%e\ 9%^-:ŧjw跲/A]keDƮ<㱛\RTڙgZ A4[C& ݓw~[u~&3æX14Isa]I}ȡy6 ;Y԰E86Oś|-M')B×dy;qKL[6Ǽl ;7 S.nt p@[׼[*\tg {&t-)zRlS ל3>p\o]L-L"tx+TdG@?{%zi4uGgdt*{5~:~ [r62 aҶdk# ̉S.ށӂk23%ug*\)TM&(?,g45# d8V/ Py^NY>6aXYy\+R-ǷY)Y㌡>gKN oeӼhrtU0vQE/*r?,ܹSP&E.,ڽ12EDKڰ''u~;ֽmO2SߪtnyH-q[<@M1b PxidEDoywL4A4ZCa_VPǧ<BƗWӳKcI"!`1lw"R 2XkWqlaTtMxemʵwB,ΤDv;1!LQTJ@i&r-L=FG%uCB;)Fְ8em7G\endstream endobj 14411 0 obj <>/P 1023 0 R/Type/Annot/A 37438 0 R/Subtype/Link/Rect[129.600006 447.450012 275.411987 467.128998]/Border[0 0 0]/H/N>> endobj 14412 0 obj <> stream q /X1 Do Q q endstream endobj 14413 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14414 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14415 0 obj <> stream HWmo6_kQ7QMzW8@@pB^Y+ɷ~P=gH>31~9?ЙRWԔ*+dj ]%{JEH*X$Ot&;SW/aBL,nt3bYe 7 ;iǾm2M[Y+i#8)B$*K*W~4TImR )TbSU6DQQĆ(à(w!b(ɰ{ɰ{ŰW{ŰW{ŰW{Ͱ{Ͱ{ð7{ð7{ð7a_D } { { {/eľdؗa_E+}YD26D Pj Q1{jCT̞ŨŰT+Rj%ZjZjC>RdTKmbGj Pj Q HQ-!aV26@16D1#JFԆ(}ZɨD16D Pj Q1{jCT̞ŨŰTRjZjZjC>RbTKmbGUj Pj Q HQ-!aV16@16D1#*FԆ(}ZŨD36D Pj Q1{jCT̞ŨŰTRj5ZjZjC>RfTKmbGՌj Pj Q HQ-!aV36@16D1#jFԆ(}Zͨ06D Pj Q1{jCT̾ʪim6O:!G*+Ң}]^y|%]p,<;/x$c`8_}ڬDMW߹:_o!Jgeiʕa^q<#%t軑sظO+eO̯f /A!L*UYivW0b-(&vF}\eVٍǛ ZwaNᝧ]X6Ǥ/j!3Pº fbdV+nƦ6x77h\LyMW撄:yRJ-O׹ ,$9/m+&V"0욉 6Ǔ?HePC03p[].v0^W)D ˆ F7 0)e;zs+i昞y9w)<{w IB2yU͐Iӭy9Qx \q4ax7n}fO\ME2T&pd\ﮃ3 @=9/T3UK^fgnh,ӝ;wʦ̩JM5兟ܒ\ 9 1m.TІ?>W LzA 2=DGeиn&ԡ$*Gc4ZJf]׿ERp768,d5%.YBnhc#bAZyqtQd*js"aޕ9Fi)&DQC~"E9eг(r/͊ +?jF& 5Fu66> P$s}8/vIkt ] h-Ժ3!uٳlSv9@'6]QӞc?ߟ}rC0I󣦻ouȸ S7T$!?^bFN 1o6 ^Q!n<ͩ;[$:4|WqGc6SW*uuV|Ge.|1c R@]${/XC례՘X[@6Hvcͺs݃'b)yUGҢC4wO#>ĘsD vr%77v?QQZ ٌx=l*8&TJ-<|BگG1]߽ܷ:HM^ rX׸a <Xj8& -WoߔәSCK8B*KCf<5NiPHIux)&]4%ܱ)\Kp,Cz{8)4B(Ax!^,1n ޕ7;ǡ4%\ 2r$xqqnUd '_tiW(;>%պWBAe2Q¿]D|-@<[[oMgVkںG.^MvQ~3RPsSběקqP@Nm(eBė|هGUX.{.U7tŷO]4bOEy7+2y^i!XиƜ?z:Xdl{.1 VI*4,bW| JN5l bomo1Xț~G`C_' vu5[#|#lgA$]FqKS\[Am 29(_gWTq:V|u8)C m0vr}lvmvB;mI'RTf(> endobj 14417 0 obj <> endobj 14418 0 obj <> stream q /X1 Do Q q endstream endobj 14419 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14420 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14421 0 obj <> stream HWێܸ}WHz 8wq06 =-CYI=ק(Qj8)򰊧XWˏL(y槟L,%?D%"8#*NZAꀒew]S6mQ-r察8邟}>HaJRœ$ VWtٗ+6C?i,mY6yf\\h{i| (X b+ү9'07\}dGTD!W0MoPTǤQ\A˹6@1A)rg'cc/c/c/c/c/cccc!#}<1>c#c}O< >اc"=2D 8ZfP>{(D͠|͠| Pj]A!=rD͠j9Z(D͠j9ZfP{OQkZfP{OQk3(Zֵ Qk3(ZֵS-GTڪ@ umwmBT g gֵS@T aV umBT aV umT+պ6@!umT+պ6B{j]պ6B{j]A!= D $ZfP>{(D͠|͠| Pj]A!=JD͠j%Z(D͠j%ZfP{OQkZfP{OQk3(Zֵ Qk3(ZֵSDTڪ@!umwmBT g giJBbWOr˾ v0:4Hd[W&gUOdN]?i^goKJC䴲sݝ{웲lfc]> zX4lsrZH8x^ uqLfyu]k\n^ e kPk4sʣAWxpuDdz}inڬ"g;GY”Ghv=3lt/CsIwF뎔u^9LǣD$td,i(R%X#o\t}9BNQkoA9 +N=1S"Μ lb8/Ō,;rQ,YGggIhE{0,ٰ!s\,N|ҷC_D'e˶<#?HqQ)2&Ϧu׭qNz߰Z7uVvϏJ0g8ZdyD'k"Fk c<6c U,V;10I{J*Jyߛ:ʣhs oۢC!zBPٺj7vp-1fON kfY=m,tvOn wl4%{,$5֪s*„@/í w n5R9W!KFpfbw>X {~HS^V^WNcwjU\ȗQ/r(*r&q jiZ [B$շK U48UTNC̓t~ee6x(&NR1FZJ{` BG]5m@mgWRyx{ FB-p~bvK;0uW5XfŽ웖Tu^Um:aְp}f`ij \ S;i(jVXQc*dpO8W0FN=MzNIs\4rrw6rlŴ3N;v\CY9>o{]_ +oˮ(`1}_1aZ$^vXŏcY_:kДq7u롘ٲ޲6n'ΐɆ[(mTyľ4 ұ|ˉ wM#{CB|6p ,7͗|wb!(_r5+mtλYY30Cb$(I=<'!CERo>ǧp۷O)+v8qJpO ID$|P]lw퉔3b I+c["uS_Gx}{?*X|#\$45Xj>xt}sYÕz^g /[8l@Ny^5q@OVj-C0[U8%N 4g`QN h~a浞W 6̭j;=\pN 9rg+jϹsޅBx?|O8XԎώf;L04=d Y@O[H.itx4WftUR͋H;Ϣq)Huڶ2f@3oҝy;5P ӄ(uHb3+ 1I}2H ̓>/P 704 0 R/Type/Annot/A 14425 0 R/Subtype/Link/Rect[93.5999985 443.628998 240.406998 463.30899]/Border[0 0 0]/H/N>> endobj 14423 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14424 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14425 0 obj <> endobj 14426 0 obj <> endobj 14427 0 obj <> stream q /X1 Do Q q endstream endobj 14428 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14429 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14430 0 obj <> stream HmoFW _ 8/|4 ФI ) MLŢ}%EٺlE#fUכ/_˗~|;!п.iLY4wkmĚ$_ok^ֻ4}^M>9sO^ɢ_N"$3D4eVz\>5}ۚ˳YZ7\?9 RNmtwݼztl8ؽm~4G2{ve7uB4^n%>u|${s93W&H]NNYů$':\2Q3Q06 SvR#ZM P2:Ԉr SHTz{ރ^ WHT>s>s>s KKK++>Q Y VjāS:ԈS+5tz1K(0Rc WSJ)^MS+5J)^MS+5@z5LԈS+5@z5LԘ:0R# LԘ:0Rc WSJmx0RcJQ`jƔN/5tzVjLjj=Z1ҫ`jFZ1ҫ`jHփQ`jHփS ZVjDS ZVjLjj=ZmVjLR# LԘƔN/5J)^MmS+5@z5LԈS+5@z5LԘ0R# LԘ0Rc WSJ(0Rc WSJ)^MmS+MS:ԈS+5tz14LF=$dQXS_'6dz>-LQDSoٛWu3k(غtș}hwmgrOE3Zžv5ݶY\VmU7~la{ރ zX;˾Czf#b=^ڴۛjxոMw 9oI*T7mɭwwk?|1[qc9;atqvC7v{w둛mM:?M=#Vi=K0y M"ΚD`uH.gN#3dW?Sbĥ]_['57tvTK)zK)%5@Ɣi1 _ӟ\7WcHؕ~ 'UcVwMz{ƇS3y?|~1kѺ,7 •U5ƻ6ْQu|97/LFޯcmV,gg]w7)<Ž<6S*4P1C!`EFxf.oy8}!kyjOϝkm~-~mpj<{+إ i\ΞlǪ|__9\.oWygFlc$;Jz|xiv@yRܺᙹu=7?Ç1XǻUlN{p˼>Kqmez\!;@+M=y t1ßIfBc*JyW^Ay+W^9ʕW UByT^%*W*UJyEW^QzL{I)%5,/r/{z/5SKށK)z@RwRc x;{1TԘ^^jLi/z/5SKރK)zARRc x{{1T=Ԙ^^jL/{z/5}SKjDK)z@RRc x{1TԘ^^jL/z/5}SK>K)zK)%5@Ɣi1_/:YK0I5ȕqt&vc>X ߶7]ceݟWq x\]p'UYSϝGtMژvՏjd y:e.f2K}?Y2>f ]źdUy븲m n=ۛv/ }A]w|nCR(B Ucx/ܶ iƅ[δ%cXF$=L} aA"oOoUX\ZkK#(fHH0n^\hnss(Y*~*Y*4r1R ;"c p͕Ssm4AC_cUUO}(?4CW?8J >~ny\oe"{͍"yeD{ #&k`8*H3_L ?xdyb>m~wY'A:?Wa0ÄbJpJ F#(YH e犵i{>*OznR1y:HI!JBklbTsuN< Ӕ`171qz%`* iOD=KN#Rilr.C̽YaF%VMnX C$nI\ cDA D({}͗wNoWYsӘUт&|CHmV/ i'#ֲ8޲m'_m3x?ZhMp_沸ɖ&&RVM_uF+$癊PNe(dg~91cÖcÌ HJ> oc;VI?EEN$>hK#!ƶnj-7 ֧CZ?LZD*TԹe095ڙUgur͊H zwiGοd~Q>?iWe!/5K?هS Dmgɒ*yu)nUZ^"z8ObwZ!6pXiH) -jD}c5yPE+x(.-w-R*M{feYH_Ru\e~BQgV@S@.u D+nsIج,I@cnMe.8L Xhq%s%|EI zIADzZ 4 _hE4$i[CPYaMuv FEӾ=fl6W>_{N]m ذȩ|p%W=&>W_}CVht)=􅆸94Ϡ˜|YUi ?:=gNQ8LHm"ElXpt.^$Uiz=orrIO~qQӹsd)/ (O`hՅu gczSa=Bd.HUOp7!;qbS#l g+{ra}9=m(Eo%P~ssAendstream endobj 14431 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14432 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14433 0 obj <> endobj 14434 0 obj <> stream q /X1 Do Q q endstream endobj 14435 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14436 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14437 0 obj <> stream Hm6Sjp|\yh\Rb7X8UΖTIdk=CEn1nW_0ׯ"(O W( I,΢I1rqSY}ܔu:_:~M&z9VN(/a$%)If|]_XUYʿ˧B/?bXObeq?S\Kjbi:lʚ׽5UYLY&=oĢo|u[?G pFN_߷3#+2*eFi2 lߢTL3p&=ȍY:7>,ι/ލ%S/S/S/S/SSSSSS#cO}= >'S OAOAO}O=),GLƶ@\,wc@!ucջ1KPkݘkZ7f)DZ֍֍Y QV ucB{kPkݘkZ7f)DZ֍֍Y QV ucB{k6kݘ|n (ĵnRz7f)_ qsD\,\+׺1׺1K!=JĵnRzϵq qsD\,\+׺1׺1K!=JĵnRzϵqF qލ֍YW,wc@!ucB{UkݘkZ7Z7f)DZ֍Y QV!uc@!ucB{UkݘkZ7Z7f)DZ֍Y QV!ucH#ucջ1׺1Kݘ|)MTw^Σ\N죆pҘ E^S$#Zn&;ΆTO{C~xdv`zt]6T4ÞdKMKT,FtEVM%?e.gm^,ڼ,H.]C5W*E鷨*+?%jvմu^܅3E泃rf#!4Mz_>]@KI C^ח\ÓKC X2_lVY]cbYMK.pņ&U.K{~~=쬛,OrBVypJ)^I$a:*ǣ9gխ&4S2ɇ|!RRҭ B2AMw _&P\_h{*7SW|@o.-k+ [^-zTPUsJ&4nΠΗ_ Mүg&T`2O1۬ܵ1ͦ?D4sdx,Ʒ1{l^FC-Vd5:ڲnf̺\s{W41H/H)OA^e^k0=.ObnU( |ʞUN$H4͖~rN՘9FƊ!Teb(zsFפt[},J#ӜJdDi2f'3ۓAv&5]=HkD=~ϻwUz 7J3?&JQ**PTvY$(NJb6>6SvC:%B~~cvx,qUEr/&2_垤nѳH%r?ȇ_?8 04zmx}o~o_Ï?vx ꕨ*ߑ\@S4̈>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14439 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14440 0 obj <> stream q /X1 Do Q q endstream endobj 14441 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14442 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14443 0 obj <> stream H|WnH|W4f_AL/!3>3>3>s>s KK+Eg5(-v{yh-Lj%sX=< cEk h-Lj܋Zyh-Lj܋Z 5,Z 5#p/Zk@k9Y#p/Zk@k9F,^րrlYZKgrX=Lj%s̳@k9F,^ւrXhgrXh{Z Z1{Z Z1bcZ1bcEk-h-v{yh-Lj%sX=< cEkh-Lj܋:Zyh-Lj܋:Z u,Z u#p/Z@k9Y#p/Z@k9F,^ցrle#t1{ Wy^U[ ,倖Zh9Lhe@+Z9ʅVrUBh@Z%*V JUJhU@Z&Z# k@K - 2@-D =a-d -{ h{cXZ #7 %@9F,%ro@96N!kY{Kjq%roA9F Ah[{ D-=hDZ"c4-{ r1>Ƚ @Kނs %roA9Fch`Z"c40-{r1Ƚ@Kށs^Ƚ-{r1z}Z"cD=h;{ыhg URUSwrEoriV˛ʿ'ʳ*(Ӧ]m֍h˯ʤW7M^M<-M{ N9~^mf}פUbk|Ĩ*lYzri4,7:&I7v߬_w~|wB׋zE`$roT:4LJC{K`tf2I'ş/g6TM[6oLל39kV,jt/f$٨_2JsO4e(@Nބ ZNh9V2Lh@+Z9ʅV UBh@Z%*V*UkM)cZZhiZFh%ro@96!KhslB<,rϱy YB c=/d -{_Zc=/d -{_Z ǿ%@96!KhslB<,rϱy YB c=/dq-rϱy YB c=/d -{_Z ǿ%@96!KhslB<,rϱy YB cVrϱy YB cw<eOOuRaz}84JۤWȆOIiR\9ڢ46?Tτ^evҸӊ"?>voF k'fS=~e_ ]UuM#㒩ʪJjDXhC]evlx n8mݱ?_ޟtOݱu̇%~nz$8 v1ދ.]OHJlI4maQ;?x\O[_SݾC:]=o29k}Kn'r M&usun2u`FV!3gij}[=_qhwmD=e^ٷ6-V͗f=|ܴ⮾?6CEǻxj/.O[j?6q/tRlz8<+M} '/Zvx/OVcNj|7S9vFҬۧ2l]1.\y( .5q=]SDg>5ۮo_wV?gS7$êζnf?}׷MbmUEɃv~:+kkߚ}{5<^7;yb 6\fC;qLNGn~l~LC'wϫOV:Wˎ6 ïUqQ̮.f6G M vz$ےcL%DRn-'\1xӐhJf?^1Wo/=OZ =PZ*1V]Y#ȬH3['g;j{nG4dh<\ŋ,N@wWq^I"FH!R"S(P+eV܅zp|`07c,8<A(ԥ%.Ci sY*;mHĸGЎ7DŽPܡ*hbv1Em߮=d"t`@rۥG\\wߥKIj7YպrvԿ\98y?8<:Jرv%K],n֢Y. T!샼g< 4%A98gs"7P{s(14<@rJm1 W!+/¼6n9nX/ex\:,FpTH]purke qQ#BTڨnǥNL!zrf/\5Yi~܁O@{(Qeu@n@ÔǟWӾL4-b!#Ɩ }l˩|!eDD]Dn*y%Dx#59䘭d*9FwKI3C80,>UDHZƩD.}ߥhva"RN;h0mh]nv/M5H|sбɫr%H&I?.ԛJ3z |6Zlxy}zק?7O 0^endstream endobj 14444 0 obj <>/P 1078 0 R/Type/Annot/A 44709 0 R/Subtype/Link/Rect[93.600502 447.967987 184.404999 467.647003]/Border[0 0 0]/H/N>> endobj 14445 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14446 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14447 0 obj <> endobj 14448 0 obj <> endobj 14449 0 obj <> stream q /X1 Do Q q endstream endobj 14450 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14451 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14452 0 obj <> stream HWn8}WQ IJċ.`rفbݻmeԒGRo/j5Y`Q<$j%?ݼ_߾"D,+,. JO*3,~򸋣Ygnǩ;exnY0Go> Pdo{/q0ӗ,>Q͋I){ۨ>93| Yt><Y,I|y1`1B= 3B= sB=sB=sB= B BKB KB KB "P_@}I/% ԗ2P_@}E5ׄ9aZ;Fp!+Tc"\c B>,µ>,B}ZFǐE\kZC>p-#\c"\c"ek} Ypp!P1d2µ>v8ZCVǀEǐ1d} Xk} Yp!P1`1drµ>,B}ZNǀEǐE\ k9ZZC>p-'\c"k} µ>Pp!+Tc kZC>p \c"\c"k} Ypp!PV1d µ>,µ>,B}ZAǐE\+1k} YzZCVǐӺE=Fo>Cx}3/dɓ)J,3QO vMPo0δb?_= c@͸1ȸ9 ]gf:榯,T9@,[H^]6CkM5l9yx2`w;uZpahbclgiP&QZ6gPVuicpN齰v|rpS3{xp]j=o vMӉXSa/xa0/R.uK9nyʆfc!T/[sùUZ L?PLQAh߃ƝzZ\*)Z7!jمx__/0gYl'Oi^/ B'sO=NNg4D"z3vPəڔ̆gsr F-61tNJ29T qsnpuF`{M(7y̸E::3Vnz;cq3'=x܁&LR$a0r}Ervlgh`ώ2`MopӸk=>ن6!(2nہsşhO35]{㓾 W_"؎=q8x] x=Dk")/FRr x^RYe V==B0;ͣ5,S׺Eſku? "]b (6/"| 0疉1O~_¼IpLxi|ϝz]ڏ zw,Kb+yBl)OU)2!]Qҷaq^x9fmv吓Cg!Ks02yKmD#9HTe`ko 5ӼLld^6hwLb0*E>'4E%/ӋKfhJ+KCO΢F{7Mk)ybxeTo4QQ~?H/Vޚ0z{[zkѺU-lx1 'O?L,{{5E{K<njx5G3[Sߴxh,4G#%ҹ$3|xYQsDPS ?a7ӘӸd֡VP R0kѰ1snj ǠTP!d&ax [Wļ^m rsSX]Dp;1ᬦgh,̷mlnWvSx2z6gui)v H?mW DRĆ=Kb-%`Pb ۅ-u {%ʦ=ÏvaUet7dzvՎ>/_蓟yzlZE'f"i'Ƨ>bÃo =gcs,bR|k8L7C?PFMi:3c&B&ōsZ^~OwDN iM6؟9[o|Vmj2q%U/UkLⲬ'7|N8M$Zo16/A9nCF}t&.Pkx}7EGjZ:[^R: <ي.+/yӎ=kQF1ZFSMCD9.e[ckŒ늞bρDA0јF,Kw4HSb8d 4Z7F0=ό&[= _ ¡نUimmJ蜞Eګ&C'?Ys::>Ch8cnѱ%+(&"28b];':-<!-=7f&1,t3?c私/h٨97 wh*,2ΐnq0fyRZh9倖SZ9ʕVrUBi@PZ%*V JUJiU@RZhy偖Z&Zc֒2) heJ- R7cR7cR7cR[g,{|/1bKY@KKY@KKY@KKYZKbĈ|/1f-{|/1f-{|/1f-{|/1f-{|/1f-{|/1f-{|/1f-{|/1f-{|/1f-^bZ#Ę|wcLLS@%Wޏ5v fðm:G*DB z>j3_qw14}=}=2 ,y{4v;d>M*0º}_Qpq)lU9Y7O-ivŗzS|nׯHnD>^|_ۛWr 9Y ׾SիOmܯ'-X.`*endstream endobj 14453 0 obj <>/P 1068 0 R/Type/Annot/A 17480 0 R/Subtype/Link/Rect[93.5999985 563.629028 278.976013 583.309021]/Border[0 0 0]/H/N>> endobj 14454 0 obj <> stream q /X1 Do Q q endstream endobj 14455 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14456 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14457 0 obj <> stream HooF[;LF+ػmվ9N(B9 73TAϳ>[}}xpp١'*APAj7PP߰r<8w|(3_N*?U]y[3 gy:t$xH&D^ i霌Y[T+sG >kS$:tU,$αԓpOBwͺE}S ]JW^ k^3z-kFz@o }>`@2P}$G>#F }>a@2 Z(!T.NO5t uqzYRͺzZ%j%г*!TCZY@RRͺzZ%jRK5YjZY@RR ]Bjf]=KRK5YjZRK5TCZYuqzKH-լKgBjf]=KRK5t u ,ZH-լKgBj.!T.V u ,ZH-%j%гj!T.V Z!T.NO5t uqzYRͺzZ#j%г!TCZY@RkRͺzZ#jRK5YjZY@RkR ]Bjf]=KRK5YjZN j驆.!T.NO5$|tnCpu0\ i/b.sFd qMo>&vv5~>pY8F<nu޼W2?//Xy.t;޷uܠ3}|W,s>eao|jfj6MFH1gxX,v~ :/t}74UemosYγ{b<4F7$x \G%gȗM.v6UسUݵa Hj:wռX bm30vYoڿ5kq~?l^¦q]pyZ2ٙ-+|F&rQOŴ}w@ q2'0&gn8NF:_[(C 52L:(q-;y囉?gt+qCt}MIqo 7T)ڍ݃Ct-|z<#+%b4{lARq@=YE˦ b>xn ~XMk̛ǀ_= 9Tp߳2jO6b < =o|5]~q9M_ +mixa)f$}=aQNfNjo;wl{Ey=Q] O|k'߇oXXun?}1XtU\^\Tumɛuۛ ,DpK ݥu7a&[ĪO~liQ,s?ؤQ>t_endstream endobj 14458 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14459 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14460 0 obj <> stream q /X1 Do Q q endstream endobj 14461 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14462 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14463 0 obj <> stream H|WY6~УpCH6IESHh,::5$"pHpfd/_}xDWoޯ 4&8$aApQOA݊:X*Guo*]^vf[ӯ"zQ`BYN #"aRvg`T[VX51d`^=cI(IA\C%ˢ]s bBŹLh*4c vXr!h 33L((H$|OTd$$BSEM]MD:T%^C :S nM7'kdS7ޝndi1}774ou9}\9# ?7 ..$W? Z'=ܗ#m/u'.lzW۫F ޽LV _=t.[KliT[W]0:!ԾHPyod,q&M!LI }6yޑҭ.QLNr 3XB֎ё67#p[-aƆs'ɜbT+Ha hmmQ˦`,0z.sN.$lёªbl(aRՇu0]A #K5q>:ˢ ͳ44$MC!g0M&[b^-<(,G i*3 }bc/0šUܷNn$\ᶯ @G5?f$&$,n_GU/'- c{*孇 #M5l[Sh(.OR Dvlu1[ɖpw 0Vu.{}q".,dbWIF$b3>Bm$IF,϶Ai]}#wFhWgAoEj@6^{9X UwNרFc ڍ>+uF7Gendstream endobj 14464 0 obj <>/P 1001 0 R/Type/Annot/A 43454 0 R/Subtype/Link/Rect[130.078995 539.020996 309.765015 673.916016]/Border[0 0 0]/H/N>> endobj 14465 0 obj <>/P 1001 0 R/Type/Annot/A 43421 0 R/Subtype/Link/Rect[93.6000977 404.627991 199.356003 424.308014]/Border[0 0 0]/H/N>> endobj 14466 0 obj <>/P 1001 0 R/Type/Annot/A 43372 0 R/Subtype/Link/Rect[93.5998993 260.627991 211.619995 280.308014]/Border[0 0 0]/H/N>> endobj 14467 0 obj <> endobj 14468 0 obj <> endobj 14469 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14470 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14471 0 obj <> stream q /X1 Do Q q endstream endobj 14472 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14473 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14474 0 obj <> stream HWێ8}Wa@Ul`ӓ H  [n+kK=)Y" #yXS,_<7o~cxHD /53JRɲT%Fc}aM]$X͢OվMoϒuUtH&j g+`MQq~1= /$[ I䱪Ё/JP7]=o?^}[vיJL7򾯎.jqX]D&8{tg*MyCTd >!0n%Dl2.DH޷Je^e^U^U^U^u^uMMM>%ا`3}Y>#g`s}/E h}!j}B Pj}B Q!{(B Q@PoC>P$TEַ!`Vm"j}6DJB Q@PoZ߆(}ZIַ!`VmHm 6@m 6D}6D*B Q@PoZ߆(}ZEַ!`Vm"TET6D*B Pj}jZ߆(}ZEַ"Mַ!*dEַ!*dm"TET 6DjB Pj}j5Z߆(}ZMַPoC>P&TET 6@m"Մj}j5Zv Z߆oZ߆oCTȾHЌ\E+b>BIҴ`Ct:5Mܱ~WX֎u}w:^}[8ZZЊ%+qq 'LSvW:vzr, {?Q3_=D&eҞz]o} ;oNU 0l' C?v AB0G5mJ~Pe}j B*rbaS\DP@鋨•qI(mRHV(rX@RpvTJߔMr?$G<{MeoRC1zeZvE|;;zf'3H*7Ojn}6GHܵ?îj릲''΂ξ+;ת0 38366 sTО5@^| 7u_CֳuyꪡB'g}GI\ys>;ܳI>*Y5By VK`gc~ʹ5 `nc_EvO;ԭ7~sû)Z8ZQ>]O nZ}բ}3Mg7t:198R`Ďz+o n>vZ8mESBuvnKXb)1]y? |x&*W,NxJuOSJ -; м) JXbhE!|+'\f~[CoץzD{D\,|ycs0n{H87 v]u+īཕͳP>]iѩ_UwjĶG*4:\R7[1aħ삿ˮ3Q^ ' gLe<tH:̜Tw~&;0~&Aol~Hg{j:<O}}q`'\iHb˱bk C 1}J\5~ń6F_N=ګJjٕ( )GC~gˮMd@څ+x&Džm-W#/Lh"s&!o/nK)S-\{u~4}T, F(([KkFbH’rH2 Y-R_=6{MDBV vzpdt~Cb 0@wBp`& hHWq}h8zx h"oc ~?Q"fJ#g|ࢊzpAg#!Mug¶E8`&+b•ٮ2;TMߡzo|!AAEn{.\E$/ɀ[}:e4˞D. T11 l˒8Hx\%kg,3ntN( U*0udip3.'kXPGPkKw6pi/fgbgV7*Uūx),Ek(W 4hј4~EFo 0Y|g<9ɕmo^~= 0]>endstream endobj 14475 0 obj <>/P 1364 0 R/Type/Annot/A 16647 0 R/Subtype/Link/Rect[93.6003036 572.429993 224.951996 592.109985]/Border[0 0 0]/H/N>> endobj 14476 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14477 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14478 0 obj <> stream q /X1 Do Q q endstream endobj 14479 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14480 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14481 0 obj <> stream Hn6_G0M@'YxN) Emmd)e=It :λ￿~)J~~ 3qAQJ,ߣfDhu:n(*ZD{Ym,fII( b渊qzADkTXT8Yj!Q]tC2wJ@9)IؖCPFZSEj]f#s15rtvy eY3* d$쫶~L rl]nPz!D$tЫ5ҁ)iH'U{R< no>Pi$$ IEn:VRݺ_Q*U-iDTXx-`(P#cιPtڱM^ъAc] [HP#3!QQ!THNx1bʺP*zڭrvm-M1J}{%W΅\~@uU<*DysNRҦQۋ_M)ݍOMS5{w6!U=Xdi]P?B ⤃ oF0WLdbd-bdp,&(MDCJH T0"&PxDӀ5;&2킭-׍7ST8#L!#SgM8 g·-VZ2U\řؤ л‘]x\7 H4դݞJ1m!b9x V4ku 9Q%#Β1mgW4\1I;۹9 14p~3a BLtyY66МRa!-MFPx $Y2~=m<లlx7s7`p |)0ay$a3$ Y60Rx͓o:k 쀭싪ߎ\Rꫳߞm [C z/{X)cL-/UhSnOD*7CI ;l]EfD 0#H endstream endobj 14482 0 obj <>/P 1221 0 R/Type/Annot/A 26928 0 R/Subtype/Link/Rect[130.078995 539.020996 388.931 673.916016]/Border[0 0 0]/H/N>> endobj 14483 0 obj <>/P 1221 0 R/Type/Annot/A 26500 0 R/Subtype/Link/Rect[93.5998001 404.627991 199.354996 424.308014]/Border[0 0 0]/H/N>> endobj 14484 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14485 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14486 0 obj <> stream q /X1 Do Q q endstream endobj 14487 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14488 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14489 0 obj <> stream HWր ^qqrv@" @,Ð%'$%5-=Q{+tYjfo3ϟ|+}2-!]0YLY,:6fcb$7?6n{rmWkWsӮKn'ľwƚ2iԦ&MS教]3Vۍzb:ūw7grEm?WOc k7oR/ B̋,x?V+_0Ig@=״9767ߓ'Ƽ}Ij"]RGɩ5{Et#%0fEޭ%F,;NW=p{{>A}P#pG>Q/B/B/R/R/RJJZ{Y J+u@k%,^b{1K@k%,^ցJYj@k%,^ցJYj@k%,^ցJYj@k%,^ցJYj:cv/1bJYڽĘKXcpZAk%,^փJXcpZAk%,^փJXcpZAk%,^փJXcpZAk%,^փJlZ1K@k%,^b%F,Z1 W cpZ@k%F,Z1 W cpZ@k%F,Z1 W cpZ@k%F,Z1 W cpZ@k%N"hĘKXcv/1ffoBPuS#DŪKiVZAiEVZQi@PZ*V JURiU@RZЪV jUZj\kIYZKb|YZViYeZNi9r@%vYJ ^bZ*^bkؘ@%,r@%v`YJ ^bZ*^bӘ%<ȽĘ$rA%rA%rA%rA%WrA%WrA%ƗrA%ƗrA% rA% %1fi-h{h{Uh{Uh{!h{!h{h{h{h{\kIYZKb|Z*&:$75LI h=fNަ6/3<ջIUV^}Nd!3vovfa,WMv5$}|l2gO$>6Sb7j<8#2ڮ6i'KU9i!îъ^ -yՑ]<ڛO7O|k`3A -אuH~!1ASmu њt֧:AuYWՑGS<l cHMnvЎjŁ{tˠgՀOEʐ;/3Y6տЮ%ʘ~"̲ݮ-\0sؓp9$Ytydb0AyZ|6y,:^f<:}N7Oyuzx ;Wo~>RU^\6Ee~@K_2OvCktj&?>Mxެd.ug7Si#NtJǣ6]wc‡1,VPZhVTZhEUBi@PZ%*V JUJiU@RZ5ЪV jr%1fi--,вJ-Rw cRw cRw cRw cRw cRw cRw cR c֒@%,rA%,rA%,rA%,rA%,rA%,rA%,rA%,rA%,r@%,%1bKY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KYZKbVu-o'ľwƚ2?F6;-ʔyatWH[[Nү]ӊ1n6!fXm>Ұ¥}ӿ;lp1kuM/ȇKXY^;3HfK̦?7|bl:S m\Ъ*E̷錍ǣx}0v3Xѹ2iۻ_xJ-ӱ)˫bW.FVk6_t|O_Y,f b]>"1;@\ڊǃF8$tʲV<şb6s؎~۞vg˳͙ q|_d;2zl0Ezwk6%Eʖd)>?Ґ|7S^6|/4^yf%`Ko6A: Y4@z\InzRG.se>Ue34z՞x`M9X𰰖N^sˌn6'KD`gsqQ4R&KJNd䷨np%WTFlmx Ngy>t@Rd0`URӘ$2wjp{۲A2c4e#D,d&BAT/Ff*VJ;t;;=T,9P)i8YZLPE㵵W'hL$h_ƕ[6&+'==T ýLșAԨ }uQ*U>gt4YӉ4Y}3- ZL)"x #ȕ0)BFuGT)CI̡n*| Kd77UKۦwS\j2kt[<&N]A ݛA,BŰGLE^HErZpp=SD_a14`J"OF_~[]LM~/?*3^2XԱl3yyHq1\"n&:%_̠ L=lj蝲pbԹH?[Dy\C'kVhgeڢkZ2u?Hq2En}&vh]tuTw4 <8J4FvtTD޴:K!Ր}`22f)^aP(Hw۟j}e|CjXQI} >>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14491 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14492 0 obj <> endobj 14493 0 obj <> endobj 14494 0 obj <> stream q /X1 Do Q q endstream endobj 14495 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14496 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14497 0 obj <> stream HmoW /nBs^H ]$6El#`$:fDwmX:p\+lfKfMg󿵋ᄉz-~̦̗mzO'gdNRdyf.'kW9{brqv=}]np<")ؑ|\/v}^mϦ_ 4HYT#e4+Heb;[5ܙ{c +|ߛM|YOE1Kdf`l$5FS%dvkux@z;ީ*JAz>*} җ*} җ*} җ*}W*}W*} *} *} *}JA'> W3kJm90RcJQ`jƔN/5tzVjLjjZ1ҫu`jFZ1ҫu`jHցQ`jHցS ZVjDS ZVjLjjZ-3VjLR# LԘƔN/5J)^MS+5@z5LԈS+5@z5LԘz0R# LԘz0Rc WSJ(0Rc WSJ)^MS+eJ)^jDS:ԘFZ1ҫ `jH6Q`jH6S VjDS VjLjjZVjLjjZ1ҫ `jJ0RcJQ`jƔN/5t)蟣2{=Χ3Lo2[ :Wr.ۚ4n>M?m߬z>+rzqf:3.qߝMf)"?{#aXo]5v5vȌ헹3>N>=_Uޅyl|t}?l͓[?ϗ0-fe=~Jwp fM~J!dkD?c]u'_sf7\ |]O6HTΏ_o}rwM=_O"M-28.Vpf=4"?{QxDѬٶϟ઼fz.ˢzK|Hcov*Dž.3jM1G!R8JA] j57ܛaWi Uzfc$zr;n˫' tsZ/kZ2z"OqvJvƿ̽yL۪8QW)1jU+x+"+JKjLi/eU^xY倗S^x9偗W^xyWP^xURyKށK)z@RwRc x;{1T=Ԙ^R# ^jL/{z/5SKރK)zARRc x{{1T=Ԙ^^jL/z/5ԈSK>K)z@RRc x{1TԘ^^jL/z/5}SKSKjDK)6A萞y_O^8<2.hxpC-v^jLi p8u"/0FM}jwդW#1Eb"^ }\kDQIQu䮛 늂?n6o&φ[ife~8kף_RC,-:DP'S}mp96ށH;ywsi>O{ ͮ_/M|^[ T|oR6xi:mv}sYiLpy=Fz 檘4+r;P_>o*NEvLM (UZyV^xEWT^ x%啀W^^RcJ{I( */r)/+ +(xʫ^^jL/{z/5SKށK)zAƔQRc x{{1T=Ԙ^^jL/{z/5SKރK)zARRc x{1FԘ^^jL/z/5}S뿄WKo8W.˧D]$=@!+T,4v,=/|G{}xf"3Õ'p<3\  WBUUq7o$_O/'e0i%03KD.yTfx6B0 {o}3'"slT6vr:@XY3=,{H,"_T$V ;).X op陀fF__}rƽΨXXak~.q!дj}i ~,K +v Y {^Hsq ƫTai$NM ad$0n%EUʉ8gP)Ռ T-ן.ïnBwC1;PDT0njx>M&ҽ>u#H7Mjfm㤏@P籟A;L|%|{`ZF/IS#BItJ%PK q;qmׅ)󝦑N…%ui^HT |tz-锃h)wy|xS㯱Ll͵q)~ys-Ak ̸kA>ْ$Lմ9{nr{YC vì7t$BQlYZw Q,zBL9Ggt&?m ʠv#㔈-MUi/1^.څp00ԚsC9B`s g s@ b뻣J\JXboךCphr B=w%BDwϠ2Jϊ. ?h'iw!v0>SCS,Dùswv)總}ϪWl>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14499 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14500 0 obj <> endobj 14501 0 obj <> stream q /X1 Do Q q endstream endobj 14502 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14503 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14504 0 obj <> stream HWk۶_6K/($ Тh| $A]lzx8Eh|8<$û?Ӑ߾IEϯ޼NNdʤyBe\'|HHir7Cݾݩ=nS^}jmts0H봆i)tsH>vt}r2Yy7aum2 ۀe}>Cwp\s9n.<כoɿ6Ȥ3-љJS)!7{~,]ԺTD! >y91&)t>DQQćAQRPa"a"a#a#a#ao"ao"9> @1>D1#*Fԇ(}ZŨŨŰTRjZZC>RbTK}bGUjPjQ HQ-!aV1CRb(Fԇ=!*fO}bTK}bGՌjQ HQ-Q-!aV3>D1#jF(Fԇ(}ZͨŰTRRj5ZC>RfTK}0>DPjQ1{CT̞ŨŰTkRj ZZC>RaTK}bG5jPjQ HQ-!a0>@1>D1#Fԇ(}ZèIΨ>@1>DQ1:ڤ-!yI6NeOp~hiQ|\}xt}[g[nCh|tZ޼[DQj=Һ1B@Bzjʄ“z\]j(ZUͣ-Y܀.͌ٵC-1qvq+-ufzbrHOqw/)QL@\.v-Z"=uC훫+t Ł?NPSx>[@/Y€YJBpA{"1UѤM; ʒF8yB!:B]ŹuG:he8MJao usqNwnP4c2cӺZ࿛o.bmCתWujӒiUμd+1|Ǫ,>4Ђj0Jͱw{QB<}qL|܅? Qy~1x1n~X $ߋ v>~ BǮa걲2ތuۗXp~t}/1r|~pC S(4^n.+AnE~"*j9BJ{k )3U!\ɡ*kBP eOCZLTʪ,ВyƐv/?$i$Ѧ{݃QZۿ-m3p磹!e.UMg[W|j;!T8},x+բbX45 0z^E#.ggA ]fqASbcx- S R-֨W( y.B창?1̙hw&MK,9euN3,X?J%lB]pE)$r!e1^FfB(Pͼf1aW\!&iju| фQEE!+ю(Bڒ yQcfϰT}wPhӛ1 | _pj sh펮@,8:>+7XҊ]CNWqWPIЮ]oϰO+5vpΈ;ŵm'gYE8=ލhN]*Jq:|og7^^y&SpL=g/#v6軿B HEH>Mm6#QaI DَgB.W,O]ٙٙ9c--[;h*9s&:x}3@p+qqŗc-h c33wǃCy_pT 9^q?H.#o3lH$0!=K#cV A "IۊρK8ՏvIuA}s+4=W+K6%QƼOj(k1*sӘ &TƸ+fn_1FK݊r]Cժ"OwS<[W%r&)g m8k~k"X1bu2T߃)8s}NvS(Xw K甏_ mk!NNRX'Ez@'WT/]~i˿^RAޯ^-ú:`]^$nyw?Ù1/VVCWdU]ʉԈ$9dn O,!>; Ҽ͈y;̿os }h8RJhnt)TEɚy)xUmT J5v݄ki+oHaD) ķ4YfR|}y<jL`m l4endstream endobj 14505 0 obj <>/P 537 0 R/Type/Annot/A 44304 0 R/Subtype/Link/Rect[93.6000977 416.028992 276.64801 435.709015]/Border[0 0 0]/H/N>> endobj 14506 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14507 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14508 0 obj <> endobj 14509 0 obj <> stream q /X1 Do Q q endstream endobj 14510 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14511 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14512 0 obj <> stream HWko8_2(K`i:[d w@[Mjm)+I~/EJ/o(RRLJ%yy}Wu7Y~?W //ӅL2L&ZD&JcY͢wf_ imWk{*^/qF% 'ӂQ{]/V_Gq%T|~/bfyG*J>ҧr}}o"xB_s6,*e }-Q_>*5!Dʀ1 8Y,MvC ԋ@ ԋ@$@$@$@"ԫ@"ԫ@&@&@&@}F> p \1`Ře µ,B}ZAcHŘe1,µP=,+T1`ŘeJµ,B}ZIc"\1"k1fYp-ƀEcE\+ b̲k%Zp-,PVŘeJµ;Dp-,+T1`Ře1fYzp-,PVŘe*µZY>p"\1"Uk1,µ,B}ZEcE\b Xk1fYp-,PV!҄k1fYzp-,+T1 ՗IYךּ>DV6Jlf< P;0XluOB+0Eaj"KnHELZI)ߋ"1_ag\P5[|^ˁ.ۅA~߾#Cd Qa:"dRlr טW E.}kVj[_,*Q>6ܛ~ގP{ݴt0dRT1] 3:eCIz-DG@"cFh@V+Bo?=ʛj_J4uu'\q%$+ؓ[ҵ[*'AttiOn1Oʂ谞IjgXğ)f8:rM] 0bn?o?Ӏ ql:^Jp otr*MXʝqw$A,ԥ8!ertSo̭M$J{J4+-Lr}6LSB$e&ʘoߞ&D8ly׽|Xt1/&$ԡ mr9N|/iOQܘ>TmB.PpRng/a} -x:>NFpvSLY2崏CXe %H]xC](n1뺼/m>fgʼn[|š98o&$ـz;ܘvæ⼷ӍYU3{m:qH/#ZY::mWzH x~~]s?Nj-ȹt;cI9#+]bviOզΙR?T3R99N*TۡU[); 9$仮nRd-ߝAJ82}ɩcp ?lq4J2uoM7Um`k3&<7Ot^$f_xhª= M%%%¨ׂ /~r0F}u Uap“m1.^IQ^Q]PzSk}r d([Sb`i=k6^ĵgX+>rIlZ}YF=5ҧǬIÎ>rK䰋. ,lc?-s~hlI-sy}]>7| ``X*HӚW yE'4\;`|qϡMxdV})r!c?+7/qwBϝwa0HM`ܚ02X8⻺6V= I[ KB7Z7 &4B`{D*6> Vh}כK8K`֛eZdj4JX%P3 s5H%ۓvx%=ЊZOS:x/*@4\!! ҏEs U;{vU[0WýRa1z$"e%u[z~KAJtK3=@ȸƞ14e0x*A8{)>@{P컢lzɁWr) wӢsʑʜRӝN05}He_s=̋ړ#^45r#j/oib_/EiJ{߁ 1=DZ.J?gADm&F>`C~p\rMKVps0Ӻ$(xB*(zV:so JW54qsJcjC@Vف~Uwc;Ccd10.21 G ^_?щ7W {;QPy $Onr@`Hey&HAHͬ2a:), m<(E嚅a Q0j[fi匬Hqnih׻7endstream endobj 14513 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14514 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14515 0 obj <> stream q /X1 Do Q q endstream endobj 14516 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14517 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14518 0 obj <> stream HWn8}WyaӼ L2p0 6 ! ZV-y%{SK"pDUu?n ^o~y/ "!*4$K%UtU4##Nj:CTmmWKGo6) '] #hXd,'cs%6?FXr BQ>> E-:eTMIfR4ލ LS-~$W7B+o$˩ v_<UnT8ezGk$ g>/ْH˔ <. S!F{dmmA'a^^^S}Oi>Cg a3}y>G{{4c$6 6@!mmmBT aV mT+6@!mT+6Bj}6Bj}A! D Pj}A! D͠jZv$ZfP!{(D͠B͠B Pj}A!JD͠j%Z(D͠j%ZfP@QoZfP@Qo3(}Zַ Qo3(}Zַ>PDTێQַT޷ Qo3o3oZfP@ ZfP@ Z(D͠jD͠jD Pj}A!&j}A!&j}6BM6BMc6 6@!mmTkVDgB8"F;<$M5/f_]QUއ}1y<n۪wæ싧iNsf/0xN6%YmHh! ]u1"sS&&ԗRXZ&"<.̨LxJS)׮ 6!gqSb:sǰiʎƠӅF&jUhIyw`Ti]NIJ}XRgG9t\àjv顺/\=Ur٥cŀ 3BO|9x/C=Q~Y]93 ѱSZK"I!x˺1 Dh܆FM`G.x[v}8uSBm"6.npR f;y0jnrOJ}(7%4OL>Yv6]Ԇ$ 2?^ĝӁ0Η o7WTUNne1mwh_)4K6Oj(H@咫-{J0ݴdn$N#ubۆڎeaWaD"E nO. ٽ?̳m4x,QڕKP&QZ޾}CL}xZhN|P+Mn1|;g~࿜i}Îs_dnj`w\^WSS]d9Mdh WX"&\OnnLﰤ:̸Hɵ~b6VO8y~*s_6q+.di&?ݘ0p)Ƨ3+Ǘˆ0 gO wZxօ#)o&&XMo v>>"nGP-Qmش-vBJ~˶6_Vi:VZذt^Ol!3tem \Zd?V{ڵ) puTǏ)$Y?֋k >w_o2¹l0i@[M9Yx,j׋[灋3f}m;O\aqhjzOf(+߇pgl&=&3d۬Lv~Vr5oR) N[(M!'P(]dIl|\!' T9$޴lx]7S]u7G W e8\ œOJT+xjˑ&׊U3ٯڟwʘcʴ+]8gms@И={_ʔ"O㰃L/&f?~4}?E(ENUzO<S {T9,4cGt'p4/jyR˦y<"+rA!D=x +xnFԃ,s@/"|X4KPӠ$C9:$ ')T$JY§}YBTҳgAq 2|ENCy$Ev 9Bn\0!" i=_~DYJX!N!yadI8 * ّxk Vvujk?QX  Ro/ݯNbTv&.n(Yψ6OuV\ BC/[jIDo|A zW Y2,ij3ׇ7X4&ѥTf#YIJ55d,DŽH}Y(3)kJ4=1rt1ⶢ.(tQ5ђM oȨJ|I0YZ,2Z/s <5`^>F|7]wSj=mC^"^-,Lq .Lۗ(Bfl&F#ՉkĭB2Aetc*4xY7?UF51:׺q-r@t AF\S5*p_>Bŵdjl !%j~ip"-TJͽ&Sm|Ywݞk|_? sttendstream endobj 14519 0 obj <>/P 619 0 R/Type/Annot/A 16976 0 R/Subtype/Link/Rect[93.6006012 274.049011 234.289001 293.729004]/Border[0 0 0]/H/N>> endobj 14520 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14521 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14522 0 obj <> stream q /X1 Do Q q endstream endobj 14523 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14524 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14525 0 obj <> stream Hoo)%n0ßYVr7q-CE0Ik/tO؀a攸ժ :y3M$yv=_Pf1o3pmpl''j&y,",YG%f,_m2_$_igM oxO\pmp~;JᘌlM.2_;"6|φ1aLNN- DusW1(?0ERj[k^iX!'P7iUSFX0%=(f|$rj$- aLfw}llh*d>d&!_$ZMdWvMӄA=pڍBNoɚN'EA (?q0U.Sh\b3g)9jwa?7=| :!k?~D !ln3Hd}tHZ4㍰y F3MTg6!{"fb69 ?իLB?5 ;i?Èyl6ʸ|$2T":S/Q'GN{'{P|$ aȾZ=ӭֹL  YuY혳E( zwb+3ѤD&X ^(+j0BG׷{TsxZ-4El574ғïB=mzbo5!׺4'5z{VwLGiʮ/eƈ89SN%Wڀߪw6:x$8iANӰQ;(إg ܩWwܵh> endobj 14527 0 obj <> stream q /X1 Do Q q endstream endobj 14528 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14529 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14530 0 obj <> stream HW]6}ׯУh)@3)Mv@[Zr,wE0u|HK^?IIϯ'MȩJ&RY`iY\?.!SB6Mzl~ߟڃOm> Mr񔦛]`TiItsH>ft3}޼bd淙,+O]kql3XO%I=Tl$nSK69K/)%{ ~Lm(^LH2CO>$JsTG3x1+ K"P;CԳH=CԳH=GH=GH=GH@ԋH@ԋHDHDHDH}/"ԗ2R_"H}/#W*R*Rg)b;$ qmV>Ā6 +Vb1`! 1BGekC̰k3,D}Z6 Q! 1`! 1BGekC̰k3,D}Z6 Q! C׆aC XkC̰b!fX3,D}Z6 Q# 1`! 1BGkC̰k93,D}Z6 Q# 1`! 1BGkC̰k9;$qmV>Ā6 +Vb1`! 1BGkC̰k3,D}Z6 QV 1`! 1BGkC̰k3,D}Z6 QV C"׆aC XkC̰b!fXz+DJߢכnC)M7ɉbI) x`^E!ӛWPYsy[BrrV0u+zg_ػ?Γd'ɅgKvOk_WP>uoi$/*X>_~ʔXYٕ{d fЎmMxI|9w4[Gs8/u8)j9]= }֣ަv|Nk?snXT8pFsشݱQ"12hS{*lҢ&MaS8?ҟNka\9xXViGLs̑01j*XfC$) ;K W|g@={Onr˙Oѽ=zn;uV I\H ~͡l>y|FˎV[jH~fcW? >TyPe?R!d|zՐO'P I~%`E.˵߭3 į~Is{dF+?]Y|wcؗq Vrٷo0/ ;A+Xvjwnvv[ yA)(l[HyEL,,41hz_( T/uܺhè\Bs}!r 9mm; ˑ`R\T#y;(+7uUaSTQۘl_ևeح9բ[֣6&Cu.LcY6-FS?wqd^m.|a g/\ZLlZûgV=tS4ֿ_)uZ6l\3S/u7NeRg5{L 6߼*ahS&+X!1"sൄS8jNR fLTJW[ۍ+FTr9}65 )rY;,(w}8uXh d:61ZO>+î9Р]GiZ2q=}y/C/.9X,KϧνOC}t-k%):Ts*:Շ[SmW`a xƍ酛s 50\I~XZe,/;aAk@L_eI; ˸TIM~UíOj?߽y˯dO6\(܅4`/IQ}gu`=O+$}cXؘ⣏~ź}ޟU3 #P=,Dj 82^FS~YXPSgyE/}a&s]]Bjo-:*KEI1R5i'L/%[g5}Jv.ш}0oX'$dq<H0EAv$pݶ27L{d`^޾-;ڋN)ӕ3ngjn̫еp,W`UZEMJg0^GTlmtd[NEyY>Ot-TZPLcg7PA@}ɵ\[4?.+|q٘N ~Bl>ꪙN?y.rusy b7?ś9Uendstream endobj 14531 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14532 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14533 0 obj <> stream q /X1 Do Q q endstream endobj 14534 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14535 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14536 0 obj <> stream HWkO_~1i?ZZ w(ɍ_Ja0ar8o1cSaYEaS}ONW*Szr*_b6Aů֫r,έjL291j|;5VU;[4];vѪNjseQm& *DMUfIZ--ӹgkH?>%v6"hzE:&דu^Ij~:$وRevin]\N+t[c ;Dٲy/"a"}oKSeYm59Tvz7~q*GcNߜ#qp26\/7n^0-ۛ}L~4S7MZP͖ݡZ_WJe7kȹHEO.ۚW2=ݹg*w6~bwp.Rzǝ^ĭnnzpt8=^=)=',t/)gրs.;z݇Vm7; Mwzgk׫T?907ͼ0Zm}y\oNGQm w*d9IβkvN6L dXdvaƳr'vժ}.4Ym;d{i[u"hj"=Cόsђx*1Բ)ZT4(Wg>s?g6i'F5lw 6{3VD89V9b&vG ˲*v':ۓ9yhݤj>[̺5H~t:MG͞q9{w]M?Xy8T>~&m{?oCuyħ:-gX-LfUÞ׳ȣ};^qz\z(ͤ뇮9R:U3+JٹŠӬ7fZ!Ќ9VA)R<&wdh9E2ķ*;FSvB懤< y׭s?9<<<Ǫ,6m֞W{Sw[˕Ŕ6:?TUvh}7U&k6oIDg$$'b%_f/8w&s _[z[fcm %SM)ĤD ԿyjM]ݺU0.xO5 58V[Yē|Z ɍjv|ݜ".nfyʪqiY=kۘ+Q\zN3n3=A}[I$ٖוqhrѷ$(c@lzn>Gt*fDڼ gLp犀_s& ~sKU'NM9"Q?I(fa;0@r(>|*5lEenظjk~Ȉգ2G$׮[0}F4MsGfWA=ޕ:qtܢ q7V).4d3b L3RI}t $&S0^9G5a%d9:[;QW i="nզWƆСh:y5^$r}(p<]Q[thjE@Y)+2JY|uoܢk0ᶁ3_6L, ,xxχǯ\&QoɌi?4K'oDH:6(sFI|bl&|x/ Aelb q3:h{7Bz'0 =.s=>M"Еm1)ɲ-WЭ-q ,',M\_(T,[gm_T{wwhMUf `¤q|E J2j>$Už8q1 j_`tZBFi b1}%J[wfbu9COeQh-FF=5M BӷDsh*YYP34FfÀj0.-˛q.IT|dR>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14538 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14539 0 obj <> endobj 14540 0 obj <> stream q /X1 Do Q q endstream endobj 14541 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14542 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14543 0 obj <> stream HWn8}Wa@".q1`lMHܖūn'|VIL&ASaH^go__olk+\mJEM_PHq[(щ9wۗݱ6ﴸ=/Z" ROQZJK4̒+G1eu~~:nI\wG~J|B?zm2Ʃt .$`w|.Lx ވ_jP-]rB HCV>ŀXCcXTRxK3u^3u0M0M0M2m2m1]1]1]3}3}bWQ_e+F}ufי<Rl_hƵCVbb\K1d)\=ŀŸbbgՌk),F}Z͸bb\K1d13jƵC>sf\K1`1k5Z!QV3R Y̵q-ŐŨ\Rl_ƵCVbb\K1d)\=ŀŸbbg5k),F}Zøbb\K1d13ƵC>sa\K1`1k Z!Q0R Y̵q-ŐŨ\kRl_XƵCVbb\K1d)\=ŀŸbbgk),F}Z˸bb\K1d13ZƵC>se\K1`1k-Z!Q2R Y̵q-ŐŨ\kRl_8ƵCVbb\K1d),kSZx㤨ZyѷK(CVH/r~3BMQp-bRHRZӹbiE!5m;dZTutvX'2ĎCw]{{-sTAS3tpm Gߩ*k [qpN7Txnj9KZS8_ҏ;n!Eƛ56Je4a[笺ZԆK@YXZy‚EYA\W3\ cs/"iS֘+>a/X1 +~sȚr'+>eU.c'%+(Š_bVbS2v4hV2ҎRҏY)e BFJo8)E`Oc:vfIz#p}sC=0< @OA1~\d&nw^Bf M ƆᯇhTghlgǗJXf,A6H. ;kF-/5 #wd6k553d?0~c^@%Hr0./)IOWЊP~Χ71Fs7$>7}\1?D8<3Z{`0ڡ!x"N뚮`r8-+b)KYhJSu] z8}7gqY=13\Mj .Xpr.hȺ\NXzAmo,Cfo1$>ټkjqV*N[ kY( hnEs}=jO+S;~p4MFs ITrsw{߷*=4˺OzHU: 4;o tn[,G( J$ued.T`ou0Ka]g^]5@_#Q0̱qUBi$ʿ71=xO$Sƻ}{S-w%%c2I DuB?x4tH~w?\"1]JSyx=ku fHۓ-QD@jtXܱK@̳C_5̒FխhAZA;> a$"C5yU5UWxA;|M¢w,D ŽHUkku)?)PL--I[inߥ V޳&[ڣSR)ovAhW:N;4"HKU _QBxQr'X%Ur(F/+bw7 Ì_CRm$PIY<.%C_P:;3Sn}Ra+5{ ^Y4Jw?_s5DQ3dKRM=+}AUXȍP=(oeЯ>J'u`7hmRsչ:j 3!1Dd1s4^&Qg ctI:q{.?Q[ƖPe/^nh_*vzlgwPk+@5C rø_j3=h.T_\9[y0a hMq&^NUzLX0knBy9_́[]K6W 0M$ ҿ,H%C@f# bp8x;Lxa[f2 Dͦws(^  1Bc7g +VLSS7\ u4ݰ/81cYK _|)qM΍䍽֐M UP 3_?^|x/ -endstream endobj 14544 0 obj <>/P 702 0 R/Type/Annot/A 14988 0 R/Subtype/Link/Rect[93.6014023 280.432007 227.643005 300.112]/Border[0 0 0]/H/N>> endobj 14545 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14546 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14547 0 obj <> endobj 14548 0 obj <> stream q /X1 Do Q q endstream endobj 14549 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14550 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14551 0 obj <> stream HWn7}`" 0ֳlCZrsδe$_Ut7Yu8>}X<,iެ=__ /_jHede ;ż*vl}#]#Yǚu=ñ۵۰c\VSr\fnY̋Vvw=|_dWO7өߍm;=m}8R,gqC]8/WVwEh&|waMԎ+ D]6ohKN9H+R!Ā%e*0dYUj_bRzUWzUׄz]ׄz]ׄz]7zS7zSz[z[z[wzWwzWz_z_z_PPXʳ0mEĐU/1`-1dK YCr"\[b"WUkK XkK Yʵpm!P_V-1`-1d+*µ%,B}ZEĀEĐE\זk5pm!V_b"\[bȪ՗j%,µ%,B}ZMĐE\ זזk5Cr&\[b"\[b"WՄkK Yʵpmpm!P_V-1d+jµ%k CVĀEĐU/1dK XkK Yʵpm!P_-1`-1d+µ%,B}ZCĀEĐE\kזk Cr!\[b"W5kKlXµ%Z}pm!V_b"{#5WYIi;.a5/WJ^k& 6pC°ծywqiO'֯۶/?~i~X548n %$ rR*՜_6F N#Tjӷ09a [/8痫O@O<92;X !&>3I>FufkzB% `k`:y f-Ϣ1]ȥbil\^NFO?(|hլ V=㜕1 _DS4U`3]cjE,k ,dB,F, V: dX*[WwTLlW{[Vt>~ʹcGds?gOs?gX!Vs?gO+s笜+s'Vs/lY#ʹr'V}ʹrg+Vʹr'VJ9sVk9+~zMg8pȤ6d[8/@QEh XrK} 8lg!)GkHnֈT zzOFჄ5sL7(&]HC3DZ'npj&%`4^'bF,|xLp[f"e!q@0=q$`RG¯wLB2ýOt޹&L"ËHATF;|ot-i˜Rbl-]0=P;{ _$zȘiNs*f_Mݴ|^ peTCG1C0st;B:l)RעwX"Ж nxi4=pV3].4:`r:¦}XЩKkxS:4xR whGx@%y?}k_C7isñ$L!3Iy- z![Z AQ]NQf FÊ7׷7qG;r8.32Vob8"| h"6W7ER楘/Ni/wnaةiun]n^<LM?<_CxQg02VG%@3$rXbaE`G!tlnhv2ƚ H(uA $f!GmHG觏VƷ!jNL^lO?Ek1?V_R굄"M@*{j`lӯ qpy9or~f024[Wkt\jb|7e9l]ӄw}DmBZ<;Ek4t›9ubŰTޜMLd=(xʬʰ-X5ãK}q4mo]Um[ <í#z[zUYyi"#޺Yd~QAs(J6_hv.JCMGIϸ긜ɖafCpNhs}P(Aǰzkʣq>{ӨʠKzܳ_:0]=8vت'J.{vK/̙ ^U5d$szb:{u)@@3e@~So~e>7亍zO~X392R }g2[ȶh>b[2a (H;ktLPrPܘů@J lJ Ȭ GuOgi嫔N.IǢk^ج%C DBƛK% uđ345Nԕk'1|_vM> Kfendstream endobj 14552 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14553 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14554 0 obj <> endobj 14555 0 obj <> stream q /X1 Do Q q endstream endobj 14556 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14557 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14558 0 obj <> stream HWko:_)RF$- 8Ӫu,Cf:JnPK"GvX\ZsfvO޽}b=_( [u8qAmNqKVIĸ>mLtAqaq1 HdI|CLFs f5a۔jO+rfg=y~_o{`f7lƩNWĆ kKHX¾?r0ٿ'r$C qLO. m*1a@MTQMlrgL'\c\c/Bc/Bc/Bco!-46{[co#mw4ػ{Wc"]w5{{Oc#}4Ѫժ6٫6@!UmWmWmBT$ a#UmTժ6@!UmTժ6BkjUժ6BkjUD!5rD PjUD!5rDMj9Zն4Z&Q:{(DMtMt PjUD!5 DMjZ(DMjZ&Q{MQjZ&Q{MQj(ZV Qj(ZVI^S@TږVI^ Qj(j(jZ&Q{MZ&Q{MZ(DMj-DMj-D PjUD!5ZjUD!5ZjUժ6Bkժ6Bkժa#UmWmBT$Jg$JgS-bҸ82GCKg_f)0׭֛d5/J@n:: lf+Ha֐Ox&/HvÅw/$l`lF:f|K޴pzu|(EHz=sp6t?Q+Ax0ˈaѠұD^Fni헎Ǚ(6] g+r7C|7 FA|lnI0,j<+=.'ȑyy.Y0il)RoB@>TF-·:DI4/WsZRNPv冊Wsn3DLJVh|d]. yNc[l~% LJheAJAw[nP[T ݞ16Prrvl)uPeMVٵ6Pt }Yu%I&}FGr3_pBOf[Փ4ΛGm1?@:]oUct x0p Cܬa6Wrɪ;o,yϴ[vMKY=-_t8.>M7PǽbuWšN&?O'"t׃Ȋpy^殃NWVfdoYuNPòZ`bu~0^ -tq -yUHv1]}'?/RR˫uhC. 'qXAM(GoP](8ua-Y/[[*ˮEdMCv5mk%Vӕh*T=<*|hVJz&> Ꙟ}p`t{<]Iղ[[L9 Ŭm&x~RPa($vW\\ \,Gendstream endobj 14559 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14560 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14561 0 obj <> stream q /X1 Do Q q endstream endobj 14562 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14563 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14564 0 obj <> stream HWk_1B ֳ v6 oj2R2 F!ioݢV K̙#9C嫪ǗORO~zM*NgV&&}MbTq[u=4.vMRM\>{cզM,˅QIRU4UjKUWjȆtf/Ndey[:͗،G~:cH3m3j"x]=KNT]Gz>Uk.6RZu&o2PN9%1Őŧ,!+,nb{[e1Np{'w̽{ =s}`3}g9s s>}!/Bp_0dK=JK]bR Y=ŀ%b),bZK1d YkZ!KpZkR XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` Vh-Ő%gBk)KZ!R Y=ŐS XBk),=kZK1d YkZKh-Ő%guBk),=kZK1` Nh-Ő%guBk),C Nh-vZK1dqZ!{Kh-Ő%gBk),=kZK1` ^h-Ő%gBk),C ^h-ŀ%bܳzC . Bk),bZK1dqCw_,Jῳ.yH. Z$@PpVeyZY[ormaW_7ϟ-^_//>ѡ0q6J%/tsa Bꗷ/_.J&2Յ|aʯY^هׯ/wjt6tjUu[5EB],gpsuЫ$a͊_,tfHH!=/ ._ 74a5UkuWwm7^O乶y.YýaV"/]yI㱘6Gb LO:^!^ݩA.m ѕ`*gZ^L+ZiA+0LʘV&heL+r Z9*iVJAdZUR-r-!kQ XF2LZiYA2-+h[!CroS Y˽rO1d Z,V=Ő%h[!CroS Y˽rO1d Z,N=Őŵ(,!CrS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1d Z,N=Ő%h;!CrS Y\bxX{WbB)GWA ]-{/bx(X{TbB)MA 7-{/bxX{AkQ Y\bxDXo$?$.)*X|n2NxQn:Q+ͼ=n㶋;/QջO۸s"tCj榀c\ZZ9ҹ aŋxF4=TG>mobapɕ6x 'WxpYqxrEAX\&:nг` ׿NL.<0#2W(aUYeg~5٧mݰ٬!i޸\ s1~h2 6W]LuZ츖a|v-ת ˫$w %R<7x[ApvlcC0W XNOrm`a-` E05bgu67űvxhV?+2<=ְo,M15pRin/ؼ]q;nqif?Rt:s|7;p s!^bsO,eZPUlaD=^v"fa+wD5 g0{_Ǹ 'Y|6Gѓ% QF#>Jg5}+%}l:5UH3]r"3>oYitOУRkwwUݍPo[tљI'ӍA&~j_g ~ujtSwS!|m7= Hggo'ܥCWQ/ \ϫniӭ+ɦrmHu^ꟛbw1|-_|q=m +?g:wWapt&a]56\S* =ɲɒxŦ뼰jiԆ}COJNS=搪nYa_ɒcsB6%YOqY\DİOP9 8]qnk"6 K僅yJ$s i E6{D,|'Q imڵMN,(e$X2u~l(quUQ'Ac/&iIuU0X g^5Դ[\=M_4[O]8o[o/DD ,">͸eom2'*K 4 3ǝI$JIB-s=6} lu,8a|_+3e&epM$J@K:QϓC8\\E Ҟvs>reWI/ZC/6'L7^HhJLU&u yڭ_Z;zhUїr RFo`ol93p+ C3!:vrLr_:Ix:ڦPBpO \މ=6칼Dx86t A)Dm\5_Lr Yq"}T=>-Ƕc 6J\[giDm_S%aSk8AHz&pZTՕ\r S0{S:b- jma]JC;0>4aAL>چѰo8tɖ2؃Ku\58x]Z LKZs6BUfRP2PܸX!l:5MB—qz ^zG%YZз lŮv0;cZǷ{=\Ň pP`N%;[L/wu}[$/<'RB#HiR&R,3ӏ} S/++՝ARz Ӏ/o?&Lendstream endobj 14565 0 obj <>/P 1076 0 R/Type/Annot/A 14785 0 R/Subtype/Link/Rect[93.6004028 434.539001 248.425003 454.218994]/Border[0 0 0]/H/N>> endobj 14566 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14567 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14568 0 obj <> endobj 14569 0 obj <> stream q /X1 Do Q q endstream endobj 14570 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14571 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 14572 0 obj <> stream H4;0=+ %B0EBi:$@@YFgqy DG&Ŭa=Bk]vz_4uS$!1e6/3n'OA,endstream endobj 14573 0 obj <> endobj 14574 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14575 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14576 0 obj [/ICCBased 29283 0 R] endobj 14577 0 obj <> endobj 14578 0 obj <> stream q /X1 Do Q q endstream endobj 14579 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14580 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14581 0 obj <> stream HWo8B Uğ"&jm' !MsoƎQNEb._~9Iƿz6GEL&/2"<δHn6J?#iyswxf|wpy|nUijY Ic3RWf.qo?iGLz# şHqdNR?7 E*c}u0,ȍ!ʧscbG91D)jg S S/S/S/S/ S/ SSSS S S3O}F<>BB[B[BYF֍m"N֍!WE֍!Wwc"\E\ ׺1D=rµn Pkk9Z7(BZN֍pCs-'\E\ ׺1@uc"{kk9Z7Z7(_Z7(_CލpCs \E\+׺1@uc"{kkZ7(µn QzϵpCs \E֍!PVuc"{k&k|n Pk|n Qz7(µn QzϵpCs$\E֍!PVuc"{k׺1D=Jµn QzϵpZ7(BZI֍!PVucHucջ1@ucջ1Dmbq ^zUiU՗&f&:7Q,Vohu_ŢX8B&E7 (!OGWǓ W鑒'TNDMKҔ(e-+ (\7i"bTƳQYr5Ȩœ,%ʎE>ol Λ<_"Q2LH2x~ n>zA. Kn% \|AQpS٤~[gXTe1'f&!nUNI=Yq/oĮ>mBa`x4x#S5i]%4Me}8f~>?nswo~&Q-1^'uesH!MOT 쎽r9oٴwH;5d_# h?m Ⱦxz(o[b9VfG[\*r.G!kg $2(/eYTRhm a52 c"SGj5:j/CnOzixOXtXUzXKJtk|T^ M.S ؖ:f?ΫemBvDmmEy ﻴM:z,I3$j]MzaI-xWrQ8lzԳ~ vLAS(gy]c[5\j"Vct[oBaQp2G-K:^ c/ LGO婩 HLBę-b)w Qf]6EB9%å]!t~@<8>nj[XK}E<SQݖ[t”]5" RCrLGc E8}Y:BG6]Ow {> 6Ur:Ge@f!5W1u8{mڏYj # `:jt&‹ѨCYI3 HL3,#pѬs\^?SԼ(w S{Pq{ |_A^rowhj0AN"0lNps]c7tdS,*Fr>gE-WT YꛀyxQIq%w듚ڛ`ڮ9gWpιSW/f _,'}+N?,0؀%۵}QO t<&)nЩe+,~R!by/gʒ8Ʉ]G*,BTMijF6=Y@boV̂Ez+.+Ϗ# z(! Y`Ga&ݏ!pendstream endobj 14582 0 obj <>/P 8082 0 R/Type/Annot/A 44287 0 R/Subtype/Link/Rect[275 670 285 678]/Border[0 0 0]/H/N>> endobj 14583 0 obj <>/P 8082 0 R/Type/Annot/A 43775 0 R/Subtype/Link/Rect[287 670 295 678]/Border[0 0 0]/H/N>> endobj 14584 0 obj <>/P 8082 0 R/Type/Annot/A 44103 0 R/Subtype/Link/Rect[241 660 249 668]/Border[0 0 0]/H/N>> endobj 14585 0 obj <>/P 8082 0 R/Type/Annot/A 44178 0 R/Subtype/Link/Rect[241 650 251 658]/Border[0 0 0]/H/N>> endobj 14586 0 obj <>/P 8082 0 R/Type/Annot/A 44150 0 R/Subtype/Link/Rect[253 650 261 658]/Border[0 0 0]/H/N>> endobj 14587 0 obj <>/P 8082 0 R/Type/Annot/A 44113 0 R/Subtype/Link/Rect[246 640 259 649]/Border[0 0 0]/H/N>> endobj 14588 0 obj <>/P 8082 0 R/Type/Annot/A 44084 0 R/Subtype/Link/Rect[259 640 267 648]/Border[0 0 0]/H/N>> endobj 14589 0 obj <>/P 8082 0 R/Type/Annot/A 44040 0 R/Subtype/Link/Rect[280 630 290 638]/Border[0 0 0]/H/N>> endobj 14590 0 obj <>/P 8082 0 R/Type/Annot/A 15486 0 R/Subtype/Link/Rect[292 630 302 638]/Border[0 0 0]/H/N>> endobj 14591 0 obj <>/P 8082 0 R/Type/Annot/A 15422 0 R/Subtype/Link/Rect[152 620 163 628]/Border[0 0 0]/H/N>> endobj 14592 0 obj <>/P 8082 0 R/Type/Annot/A 43946 0 R/Subtype/Link/Rect[260 610 268 618]/Border[0 0 0]/H/N>> endobj 14593 0 obj <>/P 8082 0 R/Type/Annot/A 43888 0 R/Subtype/Link/Rect[275 600 285 608]/Border[0 0 0]/H/N>> endobj 14594 0 obj <>/P 8082 0 R/Type/Annot/A 43858 0 R/Subtype/Link/Rect[287 600 295 608]/Border[0 0 0]/H/N>> endobj 14595 0 obj <>/P 8082 0 R/Type/Annot/A 43830 0 R/Subtype/Link/Rect[236 590 246 598]/Border[0 0 0]/H/N>> endobj 14596 0 obj <>/P 8082 0 R/Type/Annot/A 43636 0 R/Subtype/Link/Rect[248 590 260 598]/Border[0 0 0]/H/N>> endobj 14597 0 obj <>/P 8082 0 R/Type/Annot/A 43753 0 R/Subtype/Link/Rect[241 580 254 589]/Border[0 0 0]/H/N>> endobj 14598 0 obj <>/P 8082 0 R/Type/Annot/A 43715 0 R/Subtype/Link/Rect[254 580 264 588]/Border[0 0 0]/H/N>> endobj 14599 0 obj <>/P 8082 0 R/Type/Annot/A 43683 0 R/Subtype/Link/Rect[266 580 276 588]/Border[0 0 0]/H/N>> endobj 14600 0 obj <>/P 8082 0 R/Type/Annot/A 43633 0 R/Subtype/Link/Rect[278 580 290 588]/Border[0 0 0]/H/N>> endobj 14601 0 obj <>/P 8082 0 R/Type/Annot/A 43602 0 R/Subtype/Link/Rect[270 570 283 579]/Border[0 0 0]/H/N>> endobj 14602 0 obj <>/P 8082 0 R/Type/Annot/A 43552 0 R/Subtype/Link/Rect[283 570 291 578]/Border[0 0 0]/H/N>> endobj 14603 0 obj <>/P 8082 0 R/Type/Annot/A 43525 0 R/Subtype/Link/Rect[231 560 243 568]/Border[0 0 0]/H/N>> endobj 14604 0 obj <>/P 8082 0 R/Type/Annot/A 43487 0 R/Subtype/Link/Rect[241 550 253 558]/Border[0 0 0]/H/N>> endobj 14605 0 obj <>/P 8082 0 R/Type/Annot/A 43282 0 R/Subtype/Link/Rect[227 540 235 548]/Border[0 0 0]/H/N>> endobj 14606 0 obj <>/P 8082 0 R/Type/Annot/A 43097 0 R/Subtype/Link/Rect[265 530 278 539]/Border[0 0 0]/H/N>> endobj 14607 0 obj <>/P 8082 0 R/Type/Annot/A 43373 0 R/Subtype/Link/Rect[278 530 286 538]/Border[0 0 0]/H/N>> endobj 14608 0 obj <>/P 8082 0 R/Type/Annot/A 43342 0 R/Subtype/Link/Rect[222 520 230 528]/Border[0 0 0]/H/N>> endobj 14609 0 obj <>/P 8082 0 R/Type/Annot/A 43283 0 R/Subtype/Link/Rect[256 510 264 518]/Border[0 0 0]/H/N>> endobj 14610 0 obj <>/P 8082 0 R/Type/Annot/A 43247 0 R/Subtype/Link/Rect[241 500 249 508]/Border[0 0 0]/H/N>> endobj 14611 0 obj <>/P 8082 0 R/Type/Annot/A 43187 0 R/Subtype/Link/Rect[270 490 283 499]/Border[0 0 0]/H/N>> endobj 14612 0 obj <>/P 8082 0 R/Type/Annot/A 43167 0 R/Subtype/Link/Rect[283 490 291 498]/Border[0 0 0]/H/N>> endobj 14613 0 obj <>/P 8082 0 R/Type/Annot/A 43132 0 R/Subtype/Link/Rect[287 480 299 488]/Border[0 0 0]/H/N>> endobj 14614 0 obj <>/P 8082 0 R/Type/Annot/A 42928 0 R/Subtype/Link/Rect[231 470 243 478]/Border[0 0 0]/H/N>> endobj 14615 0 obj <>/P 8082 0 R/Type/Annot/A 42738 0 R/Subtype/Link/Rect[260 460 270 468]/Border[0 0 0]/H/N>> endobj 14616 0 obj <>/P 8082 0 R/Type/Annot/A 43002 0 R/Subtype/Link/Rect[272 460 280 468]/Border[0 0 0]/H/N>> endobj 14617 0 obj <>/P 8082 0 R/Type/Annot/A 42981 0 R/Subtype/Link/Rect[246 450 254 458]/Border[0 0 0]/H/N>> endobj 14618 0 obj <>/P 8082 0 R/Type/Annot/A 42932 0 R/Subtype/Link/Rect[246 440 254 448]/Border[0 0 0]/H/N>> endobj 14619 0 obj <>/P 8082 0 R/Type/Annot/A 42914 0 R/Subtype/Link/Rect[236 430 244 438]/Border[0 0 0]/H/N>> endobj 14620 0 obj <>/P 8082 0 R/Type/Annot/A 42867 0 R/Subtype/Link/Rect[265 420 273 428]/Border[0 0 0]/H/N>> endobj 14621 0 obj <>/P 8082 0 R/Type/Annot/A 15589 0 R/Subtype/Link/Rect[284 410 294 418]/Border[0 0 0]/H/N>> endobj 14622 0 obj <>/P 8082 0 R/Type/Annot/A 42797 0 R/Subtype/Link/Rect[296 410 304 418]/Border[0 0 0]/H/N>> endobj 14623 0 obj <>/P 8082 0 R/Type/Annot/A 42587 0 R/Subtype/Link/Rect[275 400 283 408]/Border[0 0 0]/H/N>> endobj 14624 0 obj <>/P 8082 0 R/Type/Annot/A 42727 0 R/Subtype/Link/Rect[275 390 285 398]/Border[0 0 0]/H/N>> endobj 14625 0 obj <>/P 8082 0 R/Type/Annot/A 42686 0 R/Subtype/Link/Rect[287 390 299 398]/Border[0 0 0]/H/N>> endobj 14626 0 obj <>/P 8082 0 R/Type/Annot/A 42651 0 R/Subtype/Link/Rect[241 380 251 388]/Border[0 0 0]/H/N>> endobj 14627 0 obj <>/P 8082 0 R/Type/Annot/A 14736 0 R/Subtype/Link/Rect[253 380 265 388]/Border[0 0 0]/H/N>> endobj 14628 0 obj <>/P 8082 0 R/Type/Annot/A 42573 0 R/Subtype/Link/Rect[256 370 264 378]/Border[0 0 0]/H/N>> endobj 14629 0 obj <>/P 8082 0 R/Type/Annot/A 42547 0 R/Subtype/Link/Rect[241 360 251 368]/Border[0 0 0]/H/N>> endobj 14630 0 obj <>/P 8082 0 R/Type/Annot/A 42498 0 R/Subtype/Link/Rect[253 360 263 368]/Border[0 0 0]/H/N>> endobj 14631 0 obj <>/P 8082 0 R/Type/Annot/A 42465 0 R/Subtype/Link/Rect[265 360 273 368]/Border[0 0 0]/H/N>> endobj 14632 0 obj <>/P 8082 0 R/Type/Annot/A 42415 0 R/Subtype/Link/Rect[241 350 254 359]/Border[0 0 0]/H/N>> endobj 14633 0 obj <>/P 8082 0 R/Type/Annot/A 42379 0 R/Subtype/Link/Rect[254 350 262 358]/Border[0 0 0]/H/N>> endobj 14634 0 obj <>/P 8082 0 R/Type/Annot/A 42358 0 R/Subtype/Link/Rect[227 340 241 348]/Border[0 0 0]/H/N>> endobj 14635 0 obj <>/P 8082 0 R/Type/Annot/A 42321 0 R/Subtype/Link/Rect[243 340 259 349]/Border[0 0 0]/H/N>> endobj 14636 0 obj <>/P 8082 0 R/Type/Annot/A 42061 0 R/Subtype/Link/Rect[260 340 272 348]/Border[0 0 0]/H/N>> endobj 14637 0 obj <>/P 8082 0 R/Type/Annot/A 42234 0 R/Subtype/Link/Rect[190 330 202 338]/Border[0 0 0]/H/N>> endobj 14638 0 obj <>/P 8082 0 R/Type/Annot/A 42189 0 R/Subtype/Link/Rect[241 320 254 329]/Border[0 0 0]/H/N>> endobj 14639 0 obj <>/P 8082 0 R/Type/Annot/A 41689 0 R/Subtype/Link/Rect[254 320 264 328]/Border[0 0 0]/H/N>> endobj 14640 0 obj <>/P 8082 0 R/Type/Annot/A 42094 0 R/Subtype/Link/Rect[266 320 283 329]/Border[0 0 0]/H/N>> endobj 14641 0 obj <>/P 8082 0 R/Type/Annot/A 42062 0 R/Subtype/Link/Rect[284 320 296 328]/Border[0 0 0]/H/N>> endobj 14642 0 obj <>/P 8082 0 R/Type/Annot/A 42015 0 R/Subtype/Link/Rect[241 310 249 318]/Border[0 0 0]/H/N>> endobj 14643 0 obj <>/P 8082 0 R/Type/Annot/A 41973 0 R/Subtype/Link/Rect[236 300 244 308]/Border[0 0 0]/H/N>> endobj 14644 0 obj <>/P 8082 0 R/Type/Annot/A 41945 0 R/Subtype/Link/Rect[270 290 278 298]/Border[0 0 0]/H/N>> endobj 14645 0 obj <>/P 8082 0 R/Type/Annot/A 41901 0 R/Subtype/Link/Rect[294 280 302 288]/Border[0 0 0]/H/N>> endobj 14646 0 obj <>/P 8082 0 R/Type/Annot/A 41860 0 R/Subtype/Link/Rect[256 270 264 278]/Border[0 0 0]/H/N>> endobj 14647 0 obj <>/P 8082 0 R/Type/Annot/A 41793 0 R/Subtype/Link/Rect[294 260 304 268]/Border[0 0 0]/H/N>> endobj 14648 0 obj <>/P 8082 0 R/Type/Annot/A 41742 0 R/Subtype/Link/Rect[152 250 160 258]/Border[0 0 0]/H/N>> endobj 14649 0 obj <>/P 8082 0 R/Type/Annot/A 41699 0 R/Subtype/Link/Rect[280 240 290 248]/Border[0 0 0]/H/N>> endobj 14650 0 obj <>/P 8082 0 R/Type/Annot/A 41657 0 R/Subtype/Link/Rect[292 240 300 248]/Border[0 0 0]/H/N>> endobj 14651 0 obj <>/P 8082 0 R/Type/Annot/A 41616 0 R/Subtype/Link/Rect[251 230 259 238]/Border[0 0 0]/H/N>> endobj 14652 0 obj <>/P 8082 0 R/Type/Annot/A 41566 0 R/Subtype/Link/Rect[246 220 259 229]/Border[0 0 0]/H/N>> endobj 14653 0 obj <>/P 8082 0 R/Type/Annot/A 15705 0 R/Subtype/Link/Rect[259 220 267 228]/Border[0 0 0]/H/N>> endobj 14654 0 obj <>/P 8082 0 R/Type/Annot/A 41493 0 R/Subtype/Link/Rect[246 210 256 218]/Border[0 0 0]/H/N>> endobj 14655 0 obj <>/P 8082 0 R/Type/Annot/A 15581 0 R/Subtype/Link/Rect[258 210 268 218]/Border[0 0 0]/H/N>> endobj 14656 0 obj <>/P 8082 0 R/Type/Annot/A 41199 0 R/Subtype/Link/Rect[270 210 284 218]/Border[0 0 0]/H/N>> endobj 14657 0 obj <>/P 8082 0 R/Type/Annot/A 41180 0 R/Subtype/Link/Rect[286 210 298 218]/Border[0 0 0]/H/N>> endobj 14658 0 obj <>/P 8082 0 R/Type/Annot/A 41334 0 R/Subtype/Link/Rect[251 200 261 208]/Border[0 0 0]/H/N>> endobj 14659 0 obj <>/P 8082 0 R/Type/Annot/A 41121 0 R/Subtype/Link/Rect[263 200 271 208]/Border[0 0 0]/H/N>> endobj 14660 0 obj <>/P 8082 0 R/Type/Annot/A 41076 0 R/Subtype/Link/Rect[265 190 278 199]/Border[0 0 0]/H/N>> endobj 14661 0 obj <>/P 8082 0 R/Type/Annot/A 14737 0 R/Subtype/Link/Rect[278 190 286 198]/Border[0 0 0]/H/N>> endobj 14662 0 obj <>/P 8082 0 R/Type/Annot/A 14735 0 R/Subtype/Link/Rect[265 180 278 189]/Border[0 0 0]/H/N>> endobj 14663 0 obj <>/P 8082 0 R/Type/Annot/A 14734 0 R/Subtype/Link/Rect[278 180 286 188]/Border[0 0 0]/H/N>> endobj 14664 0 obj <>/P 8082 0 R/Type/Annot/A 14733 0 R/Subtype/Link/Rect[304 170 312 178]/Border[0 0 0]/H/N>> endobj 14665 0 obj <>/P 8082 0 R/Type/Annot/A 14731 0 R/Subtype/Link/Rect[227 160 235 168]/Border[0 0 0]/H/N>> endobj 14666 0 obj <>/P 8082 0 R/Type/Annot/A 41072 0 R/Subtype/Link/Rect[260 150 273 159]/Border[0 0 0]/H/N>> endobj 14667 0 obj <>/P 8082 0 R/Type/Annot/A 40754 0 R/Subtype/Link/Rect[274 150 282 158]/Border[0 0 0]/H/N>> endobj 14668 0 obj <>/P 8082 0 R/Type/Annot/A 40722 0 R/Subtype/Link/Rect[440 670 448 678]/Border[0 0 0]/H/N>> endobj 14669 0 obj <>/P 8082 0 R/Type/Annot/A 40684 0 R/Subtype/Link/Rect[435 660 443 668]/Border[0 0 0]/H/N>> endobj 14670 0 obj <>/P 8082 0 R/Type/Annot/A 38406 0 R/Subtype/Link/Rect[430 650 442 658]/Border[0 0 0]/H/N>> endobj 14671 0 obj <>/P 8082 0 R/Type/Annot/A 40094 0 R/Subtype/Link/Rect[435 640 447 648]/Border[0 0 0]/H/N>> endobj 14672 0 obj <>/P 8082 0 R/Type/Annot/A 39548 0 R/Subtype/Link/Rect[459 630 469 638]/Border[0 0 0]/H/N>> endobj 14673 0 obj <>/P 8082 0 R/Type/Annot/A 39507 0 R/Subtype/Link/Rect[471 630 479 638]/Border[0 0 0]/H/N>> endobj 14674 0 obj <>/P 8082 0 R/Type/Annot/A 38982 0 R/Subtype/Link/Rect[483 620 491 628]/Border[0 0 0]/H/N>> endobj 14675 0 obj <>/P 8082 0 R/Type/Annot/A 38148 0 R/Subtype/Link/Rect[454 610 462 618]/Border[0 0 0]/H/N>> endobj 14676 0 obj <>/P 8082 0 R/Type/Annot/A 38409 0 R/Subtype/Link/Rect[459 600 471 609]/Border[0 0 0]/H/N>> endobj 14677 0 obj <>/P 8082 0 R/Type/Annot/A 38350 0 R/Subtype/Link/Rect[472 600 480 608]/Border[0 0 0]/H/N>> endobj 14678 0 obj <>/P 8082 0 R/Type/Annot/A 38320 0 R/Subtype/Link/Rect[464 590 472 598]/Border[0 0 0]/H/N>> endobj 14679 0 obj <>/P 8082 0 R/Type/Annot/A 38283 0 R/Subtype/Link/Rect[464 580 476 589]/Border[0 0 0]/H/N>> endobj 14680 0 obj <>/P 8082 0 R/Type/Annot/A 38255 0 R/Subtype/Link/Rect[477 580 485 588]/Border[0 0 0]/H/N>> endobj 14681 0 obj <>/P 8082 0 R/Type/Annot/A 36808 0 R/Subtype/Link/Rect[483 570 491 578]/Border[0 0 0]/H/N>> endobj 14682 0 obj <>/P 8082 0 R/Type/Annot/A 36775 0 R/Subtype/Link/Rect[444 560 452 568]/Border[0 0 0]/H/N>> endobj 14683 0 obj <>/P 8082 0 R/Type/Annot/A 36731 0 R/Subtype/Link/Rect[360 540 370 548]/Border[0 0 0]/H/N>> endobj 14684 0 obj <>/P 8082 0 R/Type/Annot/A 36693 0 R/Subtype/Link/Rect[372 540 384 548]/Border[0 0 0]/H/N>> endobj 14685 0 obj <>/P 8082 0 R/Type/Annot/A 33665 0 R/Subtype/Link/Rect[360 520 370 528]/Border[0 0 0]/H/N>> endobj 14686 0 obj <>/P 8082 0 R/Type/Annot/A 35870 0 R/Subtype/Link/Rect[372 520 384 528]/Border[0 0 0]/H/N>> endobj 14687 0 obj <>/P 8082 0 R/Type/Annot/A 35097 0 R/Subtype/Link/Rect[478 510 488 518]/Border[0 0 0]/H/N>> endobj 14688 0 obj <>/P 8082 0 R/Type/Annot/A 35057 0 R/Subtype/Link/Rect[490 510 502 518]/Border[0 0 0]/H/N>> endobj 14689 0 obj <>/P 8082 0 R/Type/Annot/A 34278 0 R/Subtype/Link/Rect[502 500 510 508]/Border[0 0 0]/H/N>> endobj 14690 0 obj <>/P 8082 0 R/Type/Annot/A 34238 0 R/Subtype/Link/Rect[502 490 510 498]/Border[0 0 0]/H/N>> endobj 14691 0 obj <>/P 8082 0 R/Type/Annot/A 34202 0 R/Subtype/Link/Rect[395 470 403 478]/Border[0 0 0]/H/N>> endobj 14692 0 obj <>/P 8082 0 R/Type/Annot/A 33648 0 R/Subtype/Link/Rect[360 450 370 458]/Border[0 0 0]/H/N>> endobj 14693 0 obj <>/P 8082 0 R/Type/Annot/A 33605 0 R/Subtype/Link/Rect[372 450 384 458]/Border[0 0 0]/H/N>> endobj 14694 0 obj <>/P 8082 0 R/Type/Annot/A 30091 0 R/Subtype/Link/Rect[395 430 403 438]/Border[0 0 0]/H/N>> endobj 14695 0 obj <>/P 8082 0 R/Type/Annot/A 33044 0 R/Subtype/Link/Rect[395 410 403 418]/Border[0 0 0]/H/N>> endobj 14696 0 obj <>/P 8082 0 R/Type/Annot/A 32573 0 R/Subtype/Link/Rect[444 400 454 408]/Border[0 0 0]/H/N>> endobj 14697 0 obj <>/P 8082 0 R/Type/Annot/A 32530 0 R/Subtype/Link/Rect[456 400 466 408]/Border[0 0 0]/H/N>> endobj 14698 0 obj <>/P 8082 0 R/Type/Annot/A 31850 0 R/Subtype/Link/Rect[468 400 480 408]/Border[0 0 0]/H/N>> endobj 14699 0 obj <>/P 8082 0 R/Type/Annot/A 31797 0 R/Subtype/Link/Rect[360 380 370 388]/Border[0 0 0]/H/N>> endobj 14700 0 obj <>/P 8082 0 R/Type/Annot/A 31108 0 R/Subtype/Link/Rect[372 380 382 388]/Border[0 0 0]/H/N>> endobj 14701 0 obj <>/P 8082 0 R/Type/Annot/A 31059 0 R/Subtype/Link/Rect[384 380 396 388]/Border[0 0 0]/H/N>> endobj 14702 0 obj <>/P 8082 0 R/Type/Annot/A 31000 0 R/Subtype/Link/Rect[360 360 368 368]/Border[0 0 0]/H/N>> endobj 14703 0 obj <>/P 8082 0 R/Type/Annot/A 15704 0 R/Subtype/Link/Rect[449 350 457 358]/Border[0 0 0]/H/N>> endobj 14704 0 obj <>/P 8082 0 R/Type/Annot/A 30252 0 R/Subtype/Link/Rect[454 340 467 349]/Border[0 0 0]/H/N>> endobj 14705 0 obj <>/P 8082 0 R/Type/Annot/A 30223 0 R/Subtype/Link/Rect[467 340 475 348]/Border[0 0 0]/H/N>> endobj 14706 0 obj <>/P 8082 0 R/Type/Annot/A 30166 0 R/Subtype/Link/Rect[440 330 450 338]/Border[0 0 0]/H/N>> endobj 14707 0 obj <>/P 8082 0 R/Type/Annot/A 15030 0 R/Subtype/Link/Rect[452 330 460 338]/Border[0 0 0]/H/N>> endobj 14708 0 obj <>/P 8082 0 R/Type/Annot/A 30080 0 R/Subtype/Link/Rect[507 320 515 328]/Border[0 0 0]/H/N>> endobj 14709 0 obj <>/P 8082 0 R/Type/Annot/A 14769 0 R/Subtype/Link/Rect[459 310 471 318]/Border[0 0 0]/H/N>> endobj 14710 0 obj <>/P 8082 0 R/Type/Annot/A 29285 0 R/Subtype/Link/Rect[468 300 481 309]/Border[0 0 0]/H/N>> endobj 14711 0 obj <>/P 8082 0 R/Type/Annot/A 29258 0 R/Subtype/Link/Rect[482 300 490 308]/Border[0 0 0]/H/N>> endobj 14712 0 obj <>/P 8082 0 R/Type/Annot/A 29208 0 R/Subtype/Link/Rect[473 290 485 298]/Border[0 0 0]/H/N>> endobj 14713 0 obj <>/P 8082 0 R/Type/Annot/A 29163 0 R/Subtype/Link/Rect[507 280 515 288]/Border[0 0 0]/H/N>> endobj 14714 0 obj <>/P 8082 0 R/Type/Annot/A 14732 0 R/Subtype/Link/Rect[459 270 471 279]/Border[0 0 0]/H/N>> endobj 14715 0 obj <>/P 8082 0 R/Type/Annot/A 27623 0 R/Subtype/Link/Rect[472 270 480 278]/Border[0 0 0]/H/N>> endobj 14716 0 obj <>/P 8082 0 R/Type/Annot/A 29059 0 R/Subtype/Link/Rect[478 260 486 268]/Border[0 0 0]/H/N>> endobj 14717 0 obj <>/P 8082 0 R/Type/Annot/A 28522 0 R/Subtype/Link/Rect[483 250 491 258]/Border[0 0 0]/H/N>> endobj 14718 0 obj <>/P 8082 0 R/Type/Annot/A 28506 0 R/Subtype/Link/Rect[473 240 481 248]/Border[0 0 0]/H/N>> endobj 14719 0 obj <>/P 8082 0 R/Type/Annot/A 28463 0 R/Subtype/Link/Rect[478 230 486 238]/Border[0 0 0]/H/N>> endobj 14720 0 obj <>/P 8082 0 R/Type/Annot/A 28422 0 R/Subtype/Link/Rect[478 220 486 228]/Border[0 0 0]/H/N>> endobj 14721 0 obj <>/P 8082 0 R/Type/Annot/A 21969 0 R/Subtype/Link/Rect[483 210 491 218]/Border[0 0 0]/H/N>> endobj 14722 0 obj <>/P 8082 0 R/Type/Annot/A 28348 0 R/Subtype/Link/Rect[473 200 481 208]/Border[0 0 0]/H/N>> endobj 14723 0 obj <>/P 8082 0 R/Type/Annot/A 27608 0 R/Subtype/Link/Rect[478 190 486 198]/Border[0 0 0]/H/N>> endobj 14724 0 obj <>/P 8082 0 R/Type/Annot/A 27565 0 R/Subtype/Link/Rect[449 180 459 188]/Border[0 0 0]/H/N>> endobj 14725 0 obj <>/P 8082 0 R/Type/Annot/A 26990 0 R/Subtype/Link/Rect[461 180 471 188]/Border[0 0 0]/H/N>> endobj 14726 0 obj <>/P 8082 0 R/Type/Annot/A 26943 0 R/Subtype/Link/Rect[473 180 490 189]/Border[0 0 0]/H/N>> endobj 14727 0 obj <>/P 8082 0 R/Type/Annot/A 24925 0 R/Subtype/Link/Rect[490 180 502 188]/Border[0 0 0]/H/N>> endobj 14728 0 obj <>/P 8082 0 R/Type/Annot/A 26484 0 R/Subtype/Link/Rect[444 170 454 178]/Border[0 0 0]/H/N>> endobj 14729 0 obj <>/P 8082 0 R/Type/Annot/A 26460 0 R/Subtype/Link/Rect[456 170 468 178]/Border[0 0 0]/H/N>> endobj 14730 0 obj <>/P 8082 0 R/Type/Annot/A 25916 0 R/Subtype/Link/Rect[406 150 418 158]/Border[0 0 0]/H/N>> endobj 14731 0 obj <> endobj 14732 0 obj <> endobj 14733 0 obj <> endobj 14734 0 obj <> endobj 14735 0 obj <> endobj 14736 0 obj <> endobj 14737 0 obj <> endobj 14738 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14739 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14740 0 obj <> stream q /X1 Do Q q endstream endobj 14741 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14742 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14743 0 obj <> stream HWko۸_6*C/`@{I{"Pl%VWlߡDpE#pxfCήӺervy #W|n۬6SEGH݌,! ̸.Aw;sb‡^pnǜĈ=i0Yr6 a,s[<ƀ%R/R/ R/ R/ RRR}KO->޷RK}H-!>ԇR#K}D,1>DŽz˳0-JGŘf1,µ,[=4V1`Řf- µ,BZAc"\1"[k1Yz˵p-ƀEcE\+bLkZp-4PoVŘf- µ+IcebLl,[=ƀEcE\+ bLk%Zp-4PoVŘf-JµZir$\1"[k1,µ,BZIcE\+ btZic"\1ͲcLlZir"\1"[Uk1,µ,BZEcE\b Xk1Yz˵p-4PoVbLkZir"\ bLlZicEzR V͊8h,s{8K#ƃbtngWi#+2oo9هY7[{ȟR2t/*3OSk*6M9fO2n\' dR'_Z,uJ*Td{.nxHn-t?>J:w7bʼ]ɪ]պy۰*Vي]÷%K:c] N">pngۮY%~҆ɟ*X#  kY-%L2t$e}ܧ]NʠXZlE&N^X͖BVyjnS#(W|UoBMW63`3곸o՟lN3-ȏ X+(=zZ4:/mְMڬ3yfPvSj/pCTd|z,./nw\|%YW!r8?25i6N~뽮nhZO1Q c6/MmsjT`R^C}#H%|ӽ 8|qO%TNY2ftf}tqm@^0x 1.Gz0O=05x"nE':<Wi趆yq'v c •c^?Ѝ=ux$4W`wHR&9M[tċ+FǬG@)&"j 43o!u$ <ࣅ& Hp<'|M^|Ӎ>.>~Gpn봰CXQI}LӧkBYw.z2 ֔q8NoP}xco[gs[,u~8k7fL]W/ teo끀#8/2QycE^q)ġc}PC^d424Kgwymm*\Q4uq_I}`+BOU- yw 4փ]&avֺ=5t~L8kF(/tɽ&ǽ᧵M{K9Oc-,~#3%Yv|/aCǃ77sr{2E&Q"}q[K]MƔNr֬7U?ͳkJ{Tuo|:&uq %Hɺ/ˋUӏq?֏}~ϠY?.bnoq R նNx9V8b zpKsz`x6{uEg@~~7PP+&XV,ERV,ERV,[|"o X+ bi_ᆍAأV]PVF$l;ρ@߽Fo*pUU&\5q+j+Х7ХDYeˁtHz{GכP;ҽބ".ޑ&qAt7 w{ E\н#M(=^oBKo"M(=^oBtIz{OכP{ҽބ".ޓ&qAt7 { E\н'M(^oBKo"M(^oBtHz@כPҽބ".>&qAt7 { E\} M(KҽބBEכP&gُgB.ty36WT{"?;[:+xҦs¹_^VYڻʬӇgSlej[8x0ǯnyyK!~K4ٶnvWkӷYš*ȉ|rҽ~w+!v}?v|?I󯟎gGA˧gendstream endobj 14744 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14745 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14746 0 obj <> stream q /X1 Do Q q endstream endobj 14747 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14748 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14749 0 obj <> stream HWk۶_A jŇ^A&}% - ]+%גͿ3"%xS!ϐ쫯n~~[oy /Kre:5Ajܼכvuup2Y%l$f+`L9[n0@S4.OM=r'B""#6l+ulq-8|n@_,ZLFY&Nެ n;d` b]j S!`Gc3ޱۿbbA!H$0p6(3`|>p8<Ős1`q Y rsw1` B BKBKBKB+B+B'SO}BO<)>ԧS3O}F<>SsO}A/<,'Lb@u1d] Xk] YzCŀEŐE\+׺kZZCs \b"{k] Xk] Yzϵp!PVu1`u1d= µ.,BZAŶ$\bջ׺|.,_p!PVu1d=Jµ.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] YzϵpmEŐw1`u1d] YzZCs"\b"{Uk] Xk] Yzϵp!PVu1`u1d=*µ.,BZEŀEŐE\׺kZ ZCŀEŐw1dꋨ( bo֬epK!( qQD)K-Aȓ(],?D,y"Fm\ke_Mڽm뇷F~=Orlح}~ykn gtٵM-Wy<6r\9)D1\˺ի )P9d[ph*8ҝ44)~]lv=<smǪ"ٺlVCCٴG j(僚݅wÎ}vN7wዛ⊽ؿ[-__~駻řlH'((:#<޾xf*hc姣%*%p)Qa:N`nNؓ*q =!EXNw2+`aRa74%F\d4UgȐZg|ևJ;z\׻~6C})_v2?zL֧Ϊ+HR(i+Exq׽62,ˊMy'r6Z-1ʡ&ê̩-*4֍vMw$t^h|x| tlMۖtכ)v/ ԎKuZ 0<b˄bm8#GԩSnz rf_}~ y@U ;l=JkCcǙ3L$;mah2e7i(/,K-3U\3UH\b"ߚ>{o'3suF1wp^a$[uӿ׋fNڛ oڦ iVPrcUٗWBvaG؆~ 0ks>v‹0f"ܞ@)z0#s6S9mڻrb{Mr| _bޘ;iH!BjLզOt8Eil˾nZM_b8uS)k4(|?U۸ D>z ){)E P4=([Ϊq,#/ԇؓE>̼#هşZHX\QBUJ@zuLjPra.g37coß'֣퓰 `ȇ+ 0 Á?gc 678vg0~2Gqs t53]Y )dfy{Onw^N)""r5p&;V3kg6iC)ۣC}1'W˗ zl߱SgʹEU^ʈ{݌-)*,%vT9Uu ˾*J^ A"J L٘qofe u4S3nr1lJu$|Ǡt,u~mmؕbnxjvosM?ZژFwcG~T53i2^/K~L8h "5rB}֞pm֪r6 8-\uyLƉU:XN:H|P-<:N-(&ڍA:$Z=h=Az[t KU>aH6^l\)pd*n}Jyy[NsPV+ Q Rjf'4G2dܦʘ,t2\*Uɵ-Zy=c!ul=k` d ` -V1\`O8}ĸ[xzc( e\ay: '3p X_)K.Ʈ,Jyӿ3ްjyB`+oekc\EEIYəݸ࣬*Y]?pG7; M5cI) Q& Wfqz0cAtb^Bt.HX4T Xp /DLD1>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14751 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14752 0 obj <> endobj 14753 0 obj <> endobj 14754 0 obj <> stream q /X1 Do Q q endstream endobj 14755 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14756 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14757 0 obj <> stream H]۶+x-?E( 4i$@" Nmykk6 e"g&=AZ~!Co: o{!O?=YWlk+\kF ߘiqbS)~5=;ݡN8؜vB] ASxيzxݭݱ7O %k޼[K4*Wf8:fa>(mJɦ!+o_s}LţPR3}ěwR|U0M$y/} 321Ja-R4րRRHc(])jk@iƽ&5^qo{ø7Ľa2-qow{G;ƽ# !}C{ƽ'=qq-%>qOjV1ECZ{T-"Ec-R=րbkbܓLb-R{RZT-"Ÿ'UZj5SXZEqOV3UH1IjjSXTfkbܓLbPj)k@1UHQXu5Zj SXTak@1UH1Ij)=ZT-րbkbܓ5Lb-R{RZT-"Ÿ'UkZj SX;TZEPLb-R="Ec (j)=ZT-"Ÿ'UkPLb-R{RZEqO2U5Zj-SXTek@1UH1IZj)=ZT-ckSXuHQ!X!q}.ۥC %wJMPYޭWybtp[cnjv5O~3atn* it[KivuZaHz8wg~vumU<Q>/Y'CzQN% |]O#Y5\USE9,?怲5T4lR6$@ @>x<\X<ԚZeT&t c@Os`uioCLN̕}v(wv$vg1rñ]jcE\թJhG *iZH]K;&eN~ѵMġ.Oھc=GGXm FU3wq) ~V ?TF?qq%i̺%SįÐgj{M͸13)0FOiO8FMK_I洏K޴^r9ż}ofgJ6%~zZafJ 1hcLr^M%h! p0?a2B/V5L/ZP+ncpx c^P. k 'A|aWxN\.B0hZvv-nkf1޳=)kaѝWC^xpoZ`}7)ܪN[6a2>~i+-ٙ::{ M!ܫ޶m =BA)U|[Æe+Pe%fK$'+wGR;'.9e [@+RxTBPE7W_"ᾆM]5XD>1Mr+;7ٹQŜB+ wTv:"F"Iv;es y(=ߗ;FyUT}X+YO I`KE_?<ѼkPgE0\IJ[1/A+ Z1FJ܊F(=h| E4å f4Jp% WBR+%\)ÕWpe+gr•3\9*p Wsɘr>DQ.(p %.A$% d%{߇(^2}b%{߇(^2}b%{߇(^2}b%{߇(^1}\P}.{!"W}.{!"W}.{!"W}.{!"W}.{!r>@1}b5{߇(^3}b5{߇(^3}b5{߇(^3}b5{߇(^3}bFQ拢Fh),`dMVaZmy<ßy=m XغXEIM~0GGnfGFf**TnѦCܹN>vjYjS77ͦ6}Su`&*x 'Q2,DD2ZD.M:2s sŜюP"Bօtہ"HWq?VHLU8@try{r'50endstream endobj 14758 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14759 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14760 0 obj <> stream q /X1 Do Q q endstream endobj 14761 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14762 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14763 0 obj <> stream HtWmo6_ UDRˡ(pmvh#1o-+QnE!=?3(zݯ47_7$KHEdIN"g Q/7vF/hsyZWuԫ/4z6﷛-+HoX|yn4[w-k U#cj kյvKr;Q2kƟ`GB@RQ䨤M2+J/'n7F3?wTFR/A̪uY:b'WrqN劖4;8ݠ,bqvԡr]œJjX[YUz%zg+j2MR[ ƻ*^Jsk@D[,zKpaE_;h_jx#0nñ?_=EܫuàtX$[G>1a%j0m|elHhJA\>Zr*ieaĴW0@P&rXFr79[ -hRѶ.R%ğ%."I<1ʏG'# |toI-C&)2ˠva[%Z#v%LVI,TC7SuQU%)II. SdXi%I"^gSg d76us$P#ЪodM ;@\5eʊTp@}c^GW+NE'In_ڜ 병 r?ݸA0vo&&'c|09fikyU{pP@!@{;^e-S˴ix=~/ɪKtZ<R~S^ƙVEŠ"P.YFHU4d 3~IVҕ,pe0Tjlǿ@\_G2/j@NG.ˍ %XF-"C rj>ZQSC=BE.,ѐ'3-$7(DG9~Jd>msS# a 0\Zϕ"=`|ZfiB`B cct΃_ҟ{8u}Fǭn7onNaaKe`3 Q-j4)f\Ps HqƲy'j<Aҹdp˅O`(賅 sN_h20fAzVWZ @=sμHp=6gvoGp܀ ѹcFȕy!|Dbq\.37F'<<0H'ld)WOR B1Z)\Ž)vN3;P!K+%B:NfJ_a8l%SɓZxNɢ;f$8p9uNY:9Iᾓ A^WjY4TyZ@ʈAN~lk8*+[[wpc4 j9pj[HSHrʲaZ.<˵D+ 6Fhg/=^N&MW-^k ]EZjQ~XL>ܺI$\z VǴʂ קA*/Šgg|~ʕ> EzտqigB{Vs]"^:7 =C9zrIbGTpSym+ GH\ =LHxGXePS"֯0h$+AZv-4Mb1v0bmB*4)#f[P[!{#0(j} [u6zvvi.F"N-wdaޢ\f콘U2qtVs$Ot\Y¡PP 4?ꡔJ}ݾm8U*Mlz^btRI8#)٬GH W",xЬ- *;7PՂ3j (endstream endobj 14764 0 obj <>/P 1148 0 R/Type/Annot/A 18560 0 R/Subtype/Link/Rect[130.078995 539.020996 473.825989 673.916016]/Border[0 0 0]/H/N>> endobj 14765 0 obj <>/P 1148 0 R/Type/Annot/A 18492 0 R/Subtype/Link/Rect[93.5999985 428.627991 199.356003 448.308014]/Border[0 0 0]/H/N>> endobj 14766 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14767 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14768 0 obj <> endobj 14769 0 obj <> endobj 14770 0 obj <> endobj 14771 0 obj <> endobj 14772 0 obj <> stream q /X1 Do Q q endstream endobj 14773 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14774 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14775 0 obj <> stream HW]o8}ׯ 0$yh-0}Hk+ZZvWțE::<8W.Go|{2/n^&I2_jfJsɊ\q#١J>}D%czlCzurdmb\/ߒ K, 1,dEV.ImyұԜ%d6njŕ4Yܯ}>\|Z;9U#(s=U"}Y>y/# "^- 0|v07⒝ c2fU9d%[̀m>&ؘcTD 1dÅY,CBBC XP/#P/#P"P"P"P#P#Po"Po"Po"9>r$\b"\b"GkC Yȵpmpm!PV 1d#Jµ!,µ!,B}ZI6ĐE\+ ׆.QkC YCV>Đ1` 1d#*µ!,B}ZE6ĀE6ĐE\׆kC>r"\b"GUkC XkC Yȵpm!PV ] ׆b!,µ!X}!+Vb"\b"GՄkC Yȵpmpm!PV 1d#jµ!,µ!,B}ZM6ĐE\ ׆׆k5C>r&\b 1dC XkC YCQ)b;ϋ&RMdYn,jX$ b-K&smrcbmŎBesŕVVOw#|,j\w_-vČ 'XU3QŊ #Qc6C'8S ^zܟT Kpp艷)2Sd֪(VL1 [ޮ}.ojul0,奰n@1YŎ]DQ"bsdQ(ε+N]%c ,.3]`U]i6mfٲΚ5nn 1iz;$ RR.21VcfacŦj+|jX8`ܔp)F<䄷i{VYwT.q{U^Zx=?eyFNKtO_천!x++rNp;)?Y<Qn1;C ۶nlV_[ziOj9 ;US&\5e~y.[QbUQa*awnJFJE JijmT.ܻٷ?c•cbXaD_%SDԕh/lq去g',Jr>_PRЅO&6 "jGtSݧdnIudDT='LD1 ] G@-&\r#Gl͕9^p[H/ɋITQmmJl2…o7Hy)yhƿV{mUzM•*gfݗ 4k"4r!;ׂoqfk\B4/$-G[?yӋ?{drxBrja[ۯg(M/%[Sam^@>~[nOPvA)mni_Nz&٭6۪P.{iNoQe8?UB1Ypj[< Tg? r2c?]X+@@rd=6̯LqwΛuծ UYŅ1,_Q&k-LEa}ۛgkZ~OX׬5#V#X5{{߿;= pAņ Wߏٺ jי ~2 307iqn8=VOP"x?^<{:d)|tȬՌo+'?;-t 5UEY 51 m[Nc=57hm]"YdT90lCa@|t~EYVl' (>RcgXzu' }(F(pBvnlLӵx tpT!C=h2"3P"t3@v<$əIEgsư yw,9NͯcAwPm@ @*ɲ<ܱ~(۴hݚ|\8^ Jq @ ժ ?kʺ))I84WXDq1).ກlvE~(q^!=P=1.v#X0&g ὍS0`?^k2 N/!g\A3ꍊNK.3* ٜ-:,65ƺ,.-bnZ=suL~<5Pcʢ9R;pӮkXCL>9*#v VǐVbWZ>:8[D^+x=:R`h13pZeu]KG`,[64 r[,~0WqEn æ׎)D~HFӑ}[M oRLq-{P+ªWW%J2w}$uFt:=d/u X{0fzh=4` >mm6Rxϭ3HK FFPJb܍kA% F]dak:/bendstream endobj 14776 0 obj <>/P 535 0 R/Type/Annot/A 44494 0 R/Subtype/Link/Rect[93.6006012 521.231018 303.804993 540.909973]/Border[0 0 0]/H/N>> endobj 14777 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14778 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14779 0 obj <> stream q /X1 Do Q q endstream endobj 14780 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14781 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14782 0 obj <> stream HW@_$#FL ,ÐuIΉ)^T}Ā8fgwzɓWQg?>O>'e:㔯lVU6FuMj\%ZTrks?W67nnn5W*QwY\QZՋ$MrT+U8%M#m|^?yܰS+tꗇm?^woɻIו6+K3R^>EaEq{Zr̨ҹz~^ru`(WNBy'o9'HN`[Av,%aŽk-s, po{V-po{;N=p{{ KKK++>A:1#tϱ{KXdrXh{ZZ˱{ZZ1bcZ1bcEk h-" cEk h-Lj܋Z Z1bI,ZK{Eh-Lj܋ZZ ,Z #p/ZkAk9Y#p/ZkAk9F,^ւr,@k9F,^ւrXh:q#tϱ{KXdrXh{ZZ˱{ZZ1bcZ1bcEkh-" cEkh-Lj܋:ZZ1bI,ZK{Sq (Bj.+r@ -@ -*V! UhBZЪV%*U @+p-K-Kjq5ZZheZ"ca%@9F,%ro@9v.YB cZ"c%@9F,%ro@9v.Y\˂sXRc4-{ r1wȽ 2@Kނs%roA9F#  h[{D-=hZ"c4V-{ r1+Lj%8Fw h;{(D=hZ"cD=%h;{;w w%r@9F/@Kށs^̥Lj%8F@Kރ܇,Tɳ:kIqY<UiʸʲL=Ȫf]ׯPx)?whw]d=&,L–̝ܷ]cʓ D,̛céh YuRCl.G37!l&{3|6ݟM'y괉[|Cܙi|V7;du~Fxg+z(mS]^}Vm@?3w+gmV|<ʏ٘ڝ׶cgl;5;>Q9{eHWz|t4}4Sk|/7^R 9A}g?o[HUx]nK675^{8M6^fjÌU<1=@šnY~Qa3|rw7+r@ -@ -*V! UhBZЪV%*U @+p-K-Kjq,4BK-- 2B-{r1b-{r1b-{r1b-{r1b-{r1b-{r1b-{r1b-{ r1bI-E=LjD-=LjD-=LjD-=LjD-=LjD-=LjD-=LjD-=LjD-=LjD=Lj%8Y #w #w #w #w #w #w #w #w # #XdsXR+d!?Ɨgur]ViU/=ʫqxw9 UtQqG<˃wP ߚa~pvX_.SVe5^ƒ\˫Rq=[n~Pę1^]q<;eX!jty2Bn.˦UFnvnn/I\׵qyʫq+rT,a-R 6@ ti[,T}i948!E"/<+ J ^c]Zm$ 1Ȇ q25Pf%6|SS/g({ICsPZ9ڈܫQ_#|pep&jcFjhO,o2qHbc&iR2l LdCY9Gojݵ*=[mEy>]ԧaxDUt/TɯFIu>῾k`2ZLІFi=L0xܶ42UI&$f;5 ױ^qkQɐ7g7\DVv#=TbLb3K1RQokxġ%'07P1pCrBקAsq5QR҄EY _ûzpsno:f0 ,\"VBkûBHAEK'G}8AP7r: #\֯Im,0< }uL%n5`Pjg2qgf;Q#'jZZ7.yal;kp2*JDcI}ElF'}I!Îړ@5 ~ u&h C+7ſ8k0AP S˓w2FI f/Wѧ$BD{Ba.K5& (?Q6lm =P)${>D.no^WQe y ͸øRAbοgu ,a`Ŭ}ܛC<1tC [9&_ौǷ20BMV-y螴|hĄ0.Th@Q呎U?,zoMc};@2DA6|l{rSƾ$ L/r8PvɡM%*\2/`6qI[${M {5wDG[ $/)]JB?-9 >>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14784 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14785 0 obj <> endobj 14786 0 obj <> stream q /X1 Do Q q endstream endobj 14787 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14788 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14789 0 obj <> stream HWn6}WQ2I݋.nڸmXk!.vCYR ,03\]ZÇO7fwYB ܐ(܀Z"Ռ#-~eq#KY;EFbzs3^+'63G,'nH?p($ѹ|GlXङ{3dT[’@<ٲj+NwY[ `ji%qo>yYꉍ$C97)?=:: FdQy c wh"ƪVBG94L>>OZXK,?RJ0D{A-zܦ{Q9ymZC$'~3ţM"sLNT7#zoLԭN-Ԯ3JL Yņ{{µ}:(dzn^"kRsnnAˡ ܕ@fzKD)݁;f*(ˠp#Bt'JޗaoSS2~χF>ui+ )(Iu'羒G~rNz* MduLum9BtMaϟ3,;؉H4}q5vBsΠQhp҃iӉȉK["1_qfKtcܹeZka'M 6IX$9GY#jd+a u(xdCln{)W#*`hF( 7\ Cifp.Մx._N3 z/k{O*%wvސ+\%;cUXs}a 9a)|{ ИԎ]iElezǟ44H7^}#ץjCìq`в,;^$?DZMEl*G]6& ;km9}=|):_*^!t%. 7@(']Q0q^ROFbpj3#DCc,mi8na8`߃?\D&$=PeFEjf+baendstream endobj 14790 0 obj <>/P 361 0 R/Type/Annot/A 43434 0 R/Subtype/Link/Rect[129.600006 539.504028 218.903 564.392029]/Border[0 0 0]/H/N>> endobj 14791 0 obj <>/P 361 0 R/Type/Annot/A 14792 0 R/Subtype/Link/Rect[341.080994 136.309998 475.580994 151.289993]/Border[0 0 0]/H/N>> endobj 14792 0 obj <> endobj 14793 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14794 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14795 0 obj <> stream q /X1 Do Q q endstream endobj 14796 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14797 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14798 0 obj <> stream HtWn8}WQbYlL`2{1A wn%J$%5YF<}Hr<۫/7X޽{:_U  Œ\F`Y*Dcź fOg5 S5X?W}ӭ`OC~\mw8< 'm \]l~L4uN"݅SW6"Kz_xmynx5珛 ~`)`}fwbcA!H$Q h۠H\Ns c\ Yp.,}!+!Xv}.,AzAzIzIzIzEWzEWPxB}O>%ԧPz3B}>#gP{sB}/ {i] ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d= µ.,BZAŀEŐE\+׺kZZCs \b"{k] $ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d=Jµ.,BZIŀEŐE\+ ׺k%ZZCs$\b"{k] ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d=*µ.,BZEŀEŐE\׺kZZCs"\b"{Uk] µ.,_p!WbQQoUܶMplxE,M i;..9/B(6Mq8q$n kEB%:^l~ T2|~+፩CeG"ˋUr0۾)\UvU(Q=QC&j&tgyē|բ~'z lvddg8[ , p:ES_(oCy?F_\)OγL%2J9 \D.y9az_Zxd}V Ema^q2a8ezY[ʷ"켇wNLº C$`foj+ګs9\8YN-5)xMJMMJe[IM+xLe0'HcrrZz͢}?98*+&sP17t#~zaڕa*'WK8C \m SX_8U$5.tfoR-T{|n(J*X3=?yvyt-Ö1З^g{.fx(" lV [KqlN[&ǿ'x_GՂ_$S4sSF߅esʜZ[ µSXvc9V8i+r;7g4PɆY*I.;jZݞKXčRzl}[DzqLg2xC$Tn3RRpĺ{.J>qT`8S;?uߍRqD"W¾q_9^L=Q."Nk`uDžKN"un i6+unD#9$4=yx:ZAP_)Q.C7nؼj" ٹuP8{6=m6AvmŪj})ʶK UfHx4m{~[#HO6LI=d/MږG׻ Rû=x ú:XєGsg[&{E <{] Yi=il)=sѸٗ 4'܅˭i$ Q(Q_ hE٫B^ˆRb\-,,\yϮ)`bHz6% jQQLPze蝭wI@s%ʳ_գ.) nMPLb1ܯoRl/Ȋv7XL/'N%1 Kznl`yJ{.%%SUYVL|^(jHlT6p6$قenZ9r+Y"z-О8tN RuԓIM46b"eG~'R&[x>@ 9HfXfIS9zdi)~֛ -~Abǯ>IiRM8>W~y$xFÀIYGLH(9t9$P_['tjml4 \ j%ޔ|pK@)k=(!U%DŽ;$y % /gCwDQvQCQˠa~Ѳ!£_l Y(r1*T u>{π#ձJS[W]'죦@bh'?l ON2jH+\"&R|\4+sJ_xEl3Svr4Wۭrdx C^ Ƚ#{cJI 7_;v\` #Z~7p %nM2l`ғPM)P`"vvFaElƊ8YWTH 7.l\> S:Mλ I]nGФr4brv \) 98u6[8x G' p7#k.`yRqZ5΄ rqtLŒEw"޾4X]zKn`r>MUc>u$NܔC-S?CCUO6&҉zp[_V p#RxQU1K`6Ef@(UѽdP&bH`CJfyp.`}x5$Yz c|ޣp4:3O U[-xĶJ+MS=ن `twG;g9 { E'{~[E)ořkSYl#t'g0,ls<.PHOWƒ7GoOz LV $x Ҡ6Pw"UT V,da*ᓸ@x&v$xg>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14800 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14801 0 obj <> stream q /X1 Do Q q endstream endobj 14802 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14803 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14804 0 obj <> stream HWo6e%(84Ez ='dk++]7#R9 |$Pן~X~ Q咥2LD)g|a] a ?'}ӷTo9{z|,am`)`L삻VWcw⊧q㨸D"rf~xS[*mk= ZBgQi<8?6A%i~V;X@D=$fH?o[j(E<@+ nsIb\ Yt.$Y`ړbzzzzzᩗz驗zO >%ԧPz3B}>'P{sB}/ zEWzE<u] ׺|.,µ.,_!Wb"\b"{k] Yzϵpp!P﹖u1d=rµ.,µ.,BZNŐE\ ׺׺k9ZCs-'\b@u1d] Xk] YzCŀEŐE\+׺kZZCs \b"{k] Xk] Yzϵp!PVu1`u1d= µ.,BZAv$\bջ׺|.,_p!PVu1d=Jµ.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] Yzϵp킔p!Wb"\bջ|*RJIÿEo7fY6 ' WQƲL.z.6?|8E -z^[; 4Ywa`W" _nK6yHPCgr,-M6oM7b{ c7#-M&sª)[ԩpxF[ugۏ哶Ͳ,Kd2a37rQZwQYشu==9H 7Z2"8ӅKū.ዓ/{BfifͿFg37V=48H{<'Vx6iߘ#G>GWZ+AJ/3GqGkq\sjX锹ª=+V4q㛒f~5*54e*ޔ ͘"M>TEMWZ/e۲Q#9y` ŔJ0q,f-TtSsqˡusֳ"s3>M(gzp)UȢ+GsӶvf9_&牋6B/*0ZQ!4f`+) l]eNy\Ω)R&o6p"4Uv~03ԫ .~dy|K[-p(%5lϲ^N{JE]x Y4aaY93q]Lp}?ny9,5Q$j\ث/5j/(aW=s_Wg*G\NpBGvb_xTWDD/ v}3*49Hp rE@K|RN7eGXZ 4nժf@Vrivr#1x[F,7 e%ɀ_"N8BНNPSq*$1 g-UfCM@g4Ll wnfܱ4 2<%(#>،{&̓7q&/̠ٽX~Ў-XwQeϣ2s1(H^[n,oj=Tb*@4S)z } =06f388jmU&\ bZW=!kq\Phy$! b{L4)~wtjUx<ٗx;Wcd?j$(aͥުq`srCy3_>pǛn 0LIendstream endobj 14805 0 obj <>/P 1439 0 R/Type/Annot/A 18165 0 R/Subtype/Link/Rect[93.6001968 582.828979 249.744003 602.508972]/Border[0 0 0]/H/N>> endobj 14806 0 obj <>/P 1439 0 R/Type/Annot/A 29215 0 R/Subtype/Link/Rect[93.5998993 305.449005 206.712006 325.127991]/Border[0 0 0]/H/N>> endobj 14807 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14808 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14809 0 obj <> stream q /X1 Do Q q endstream endobj 14810 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14811 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14812 0 obj <> stream HWmoF_e@( 8w~9i\ udC9KIr_3IC2W]gg33{|y޲~:>>0~IL\x[ɜUl=>US&؂eWeXη[/kɞ6";.ĝbY 'sܳbBG0!M.leiq#N%gg+ /, Ҁ/2 exή`bLH1!PlCT.JeT]|l$˄$˄"ث"ث"ث&넽&넽!؛!؛!؛%ۄ%ۄ#ػ#ػ#ػ''} ؇} 'hc2jcR PjcR Q)(B QDPmlC>Q$TE6!`Vm"'jc6DJB QDPml؆(}ZI6!`VmLmJ6@mJ6Dc6D*B QDPml؆(}ZE6!`Vm"TEOT6D*B Pjcj؆(}ZE6-3M6!*eE6!*em"TEOT 6DjB Pjcj5؆(}ZM6PmlC>Q&TEOT 6@m"'Մjcj5ض ؆}l؆}lCT>!8wχeȎB0̗Vτ eցq症_.t&wJzu]4|}^l{D3g,V Zˆ\2kw`DGro-;xʔ* uCB`v_ב S%cpz/``d0zuqqy9ȉ\teޯu u uzv:Hu|^+wt:kxH{/+G˹`VTf\(j-Uy^s޶ /=\[x7pB;sÊU_[-sk0Ϗca9D(;A'7#s;F\iBEyqu2鑉%@DS܄0jdmӦmJVۺ]t?ߎ^ˆq)IߛtRtjlՎjVÕjxa]=5ZR+n2Xͷ_ mhq Cn 2a*wRoM3(xҡŷj\DI:NF z$[M^כf|p8.&ec."ZrOՄ!udq\\s!0?69S:&V3ݻo΁D=\*"42@>Y u_gUM~,|dM#:'+\ 9&\U׻BswQ.l>/P 13329 0 R/Type/Annot/A 44343 0 R/Subtype/Link/Rect[222 670 236 678]/Border[0 0 0]/H/N>> endobj 14814 0 obj <>/P 13329 0 R/Type/Annot/A 44301 0 R/Subtype/Link/Rect[238 670 252 678]/Border[0 0 0]/H/N>> endobj 14815 0 obj <>/P 13329 0 R/Type/Annot/A 44256 0 R/Subtype/Link/Rect[254 670 268 678]/Border[0 0 0]/H/N>> endobj 14816 0 obj <>/P 13329 0 R/Type/Annot/A 44234 0 R/Subtype/Link/Rect[270 670 284 678]/Border[0 0 0]/H/N>> endobj 14817 0 obj <>/P 13329 0 R/Type/Annot/A 44184 0 R/Subtype/Link/Rect[286 670 300 678]/Border[0 0 0]/H/N>> endobj 14818 0 obj <>/P 13329 0 R/Type/Annot/A 16087 0 R/Subtype/Link/Rect[152 660 168 669]/Border[0 0 0]/H/N>> endobj 14819 0 obj <>/P 13329 0 R/Type/Annot/A 44119 0 R/Subtype/Link/Rect[169 660 183 668]/Border[0 0 0]/H/N>> endobj 14820 0 obj <>/P 13329 0 R/Type/Annot/A 44093 0 R/Subtype/Link/Rect[185 660 199 668]/Border[0 0 0]/H/N>> endobj 14821 0 obj <>/P 13329 0 R/Type/Annot/A 15613 0 R/Subtype/Link/Rect[201 660 215 668]/Border[0 0 0]/H/N>> endobj 14822 0 obj <>/P 13329 0 R/Type/Annot/A 15506 0 R/Subtype/Link/Rect[217 660 229 668]/Border[0 0 0]/H/N>> endobj 14823 0 obj <>/P 13329 0 R/Type/Annot/A 15438 0 R/Subtype/Link/Rect[198 650 210 658]/Border[0 0 0]/H/N>> endobj 14824 0 obj <>/P 13329 0 R/Type/Annot/A 43957 0 R/Subtype/Link/Rect[208 640 220 648]/Border[0 0 0]/H/N>> endobj 14825 0 obj <>/P 13329 0 R/Type/Annot/A 14963 0 R/Subtype/Link/Rect[207 630 224 639]/Border[0 0 0]/H/N>> endobj 14826 0 obj <>/P 13329 0 R/Type/Annot/A 14959 0 R/Subtype/Link/Rect[225 630 237 638]/Border[0 0 0]/H/N>> endobj 14827 0 obj <>/P 13329 0 R/Type/Annot/A 14957 0 R/Subtype/Link/Rect[207 620 224 629]/Border[0 0 0]/H/N>> endobj 14828 0 obj <>/P 13329 0 R/Type/Annot/A 14954 0 R/Subtype/Link/Rect[225 620 237 628]/Border[0 0 0]/H/N>> endobj 14829 0 obj <>/P 13329 0 R/Type/Annot/A 14952 0 R/Subtype/Link/Rect[170 610 186 619]/Border[0 0 0]/H/N>> endobj 14830 0 obj <>/P 13329 0 R/Type/Annot/A 14951 0 R/Subtype/Link/Rect[187 610 201 618]/Border[0 0 0]/H/N>> endobj 14831 0 obj <>/P 13329 0 R/Type/Annot/A 14949 0 R/Subtype/Link/Rect[203 610 217 618]/Border[0 0 0]/H/N>> endobj 14832 0 obj <>/P 13329 0 R/Type/Annot/A 43643 0 R/Subtype/Link/Rect[219 610 231 618]/Border[0 0 0]/H/N>> endobj 14833 0 obj <>/P 13329 0 R/Type/Annot/A 43610 0 R/Subtype/Link/Rect[177 600 189 608]/Border[0 0 0]/H/N>> endobj 14834 0 obj <>/P 13329 0 R/Type/Annot/A 43580 0 R/Subtype/Link/Rect[212 590 224 598]/Border[0 0 0]/H/N>> endobj 14835 0 obj <>/P 13329 0 R/Type/Annot/A 43531 0 R/Subtype/Link/Rect[194 542 206 550]/Border[0 0 0]/H/N>> endobj 14836 0 obj <>/P 13329 0 R/Type/Annot/A 43511 0 R/Subtype/Link/Rect[193 532 205 540]/Border[0 0 0]/H/N>> endobj 14837 0 obj <>/P 13329 0 R/Type/Annot/A 43462 0 R/Subtype/Link/Rect[156 522 166 530]/Border[0 0 0]/H/N>> endobj 14838 0 obj <>/P 13329 0 R/Type/Annot/A 43436 0 R/Subtype/Link/Rect[168 522 182 530]/Border[0 0 0]/H/N>> endobj 14839 0 obj <>/P 13329 0 R/Type/Annot/A 43387 0 R/Subtype/Link/Rect[184 522 196 530]/Border[0 0 0]/H/N>> endobj 14840 0 obj <>/P 13329 0 R/Type/Annot/A 43349 0 R/Subtype/Link/Rect[199 512 211 520]/Border[0 0 0]/H/N>> endobj 14841 0 obj <>/P 13329 0 R/Type/Annot/A 43140 0 R/Subtype/Link/Rect[188 502 200 510]/Border[0 0 0]/H/N>> endobj 14842 0 obj <>/P 13329 0 R/Type/Annot/A 43262 0 R/Subtype/Link/Rect[185 492 195 500]/Border[0 0 0]/H/N>> endobj 14843 0 obj <>/P 13329 0 R/Type/Annot/A 43220 0 R/Subtype/Link/Rect[197 492 209 500]/Border[0 0 0]/H/N>> endobj 14844 0 obj <>/P 13329 0 R/Type/Annot/A 43174 0 R/Subtype/Link/Rect[192 482 200 490]/Border[0 0 0]/H/N>> endobj 14845 0 obj <>/P 13329 0 R/Type/Annot/A 43145 0 R/Subtype/Link/Rect[229 472 242 481]/Border[0 0 0]/H/N>> endobj 14846 0 obj <>/P 13329 0 R/Type/Annot/A 43110 0 R/Subtype/Link/Rect[243 472 251 480]/Border[0 0 0]/H/N>> endobj 14847 0 obj <>/P 13329 0 R/Type/Annot/A 43085 0 R/Subtype/Link/Rect[227 442 237 450]/Border[0 0 0]/H/N>> endobj 14848 0 obj <>/P 13329 0 R/Type/Annot/A 43011 0 R/Subtype/Link/Rect[239 442 247 450]/Border[0 0 0]/H/N>> endobj 14849 0 obj <>/P 13329 0 R/Type/Annot/A 42987 0 R/Subtype/Link/Rect[236 432 244 440]/Border[0 0 0]/H/N>> endobj 14850 0 obj <>/P 13329 0 R/Type/Annot/A 42951 0 R/Subtype/Link/Rect[241 422 249 430]/Border[0 0 0]/H/N>> endobj 14851 0 obj <>/P 13329 0 R/Type/Annot/A 42922 0 R/Subtype/Link/Rect[241 412 249 420]/Border[0 0 0]/H/N>> endobj 14852 0 obj <>/P 13329 0 R/Type/Annot/A 42722 0 R/Subtype/Link/Rect[241 402 251 410]/Border[0 0 0]/H/N>> endobj 14853 0 obj <>/P 13329 0 R/Type/Annot/A 42852 0 R/Subtype/Link/Rect[253 402 261 410]/Border[0 0 0]/H/N>> endobj 14854 0 obj <>/P 13329 0 R/Type/Annot/A 42808 0 R/Subtype/Link/Rect[280 392 290 400]/Border[0 0 0]/H/N>> endobj 14855 0 obj <>/P 13329 0 R/Type/Annot/A 42767 0 R/Subtype/Link/Rect[292 392 300 400]/Border[0 0 0]/H/N>> endobj 14856 0 obj <>/P 13329 0 R/Type/Annot/A 42740 0 R/Subtype/Link/Rect[217 382 225 390]/Border[0 0 0]/H/N>> endobj 14857 0 obj <>/P 13329 0 R/Type/Annot/A 42693 0 R/Subtype/Link/Rect[232 372 244 381]/Border[0 0 0]/H/N>> endobj 14858 0 obj <>/P 13329 0 R/Type/Annot/A 42671 0 R/Subtype/Link/Rect[245 372 253 380]/Border[0 0 0]/H/N>> endobj 14859 0 obj <>/P 13329 0 R/Type/Annot/A 42621 0 R/Subtype/Link/Rect[222 362 235 371]/Border[0 0 0]/H/N>> endobj 14860 0 obj <>/P 13329 0 R/Type/Annot/A 42396 0 R/Subtype/Link/Rect[235 362 245 370]/Border[0 0 0]/H/N>> endobj 14861 0 obj <>/P 13329 0 R/Type/Annot/A 42560 0 R/Subtype/Link/Rect[247 362 255 370]/Border[0 0 0]/H/N>> endobj 14862 0 obj <>/P 13329 0 R/Type/Annot/A 14956 0 R/Subtype/Link/Rect[236 352 244 360]/Border[0 0 0]/H/N>> endobj 14863 0 obj <>/P 13329 0 R/Type/Annot/A 42483 0 R/Subtype/Link/Rect[152 332 162 340]/Border[0 0 0]/H/N>> endobj 14864 0 obj <>/P 13329 0 R/Type/Annot/A 42434 0 R/Subtype/Link/Rect[164 332 176 340]/Border[0 0 0]/H/N>> endobj 14865 0 obj <>/P 13329 0 R/Type/Annot/A 42390 0 R/Subtype/Link/Rect[285 322 295 330]/Border[0 0 0]/H/N>> endobj 14866 0 obj <>/P 13329 0 R/Type/Annot/A 42364 0 R/Subtype/Link/Rect[297 322 305 330]/Border[0 0 0]/H/N>> endobj 14867 0 obj <>/P 13329 0 R/Type/Annot/A 42336 0 R/Subtype/Link/Rect[148 312 161 321]/Border[0 0 0]/H/N>> endobj 14868 0 obj <>/P 13329 0 R/Type/Annot/A 41867 0 R/Subtype/Link/Rect[162 312 172 320]/Border[0 0 0]/H/N>> endobj 14869 0 obj <>/P 13329 0 R/Type/Annot/A 42242 0 R/Subtype/Link/Rect[174 312 186 321]/Border[0 0 0]/H/N>> endobj 14870 0 obj <>/P 13329 0 R/Type/Annot/A 42213 0 R/Subtype/Link/Rect[187 312 197 320]/Border[0 0 0]/H/N>> endobj 14871 0 obj <>/P 13329 0 R/Type/Annot/A 42159 0 R/Subtype/Link/Rect[199 312 209 320]/Border[0 0 0]/H/N>> endobj 14872 0 obj <>/P 13329 0 R/Type/Annot/A 42110 0 R/Subtype/Link/Rect[211 312 221 320]/Border[0 0 0]/H/N>> endobj 14873 0 obj <>/P 13329 0 R/Type/Annot/A 42069 0 R/Subtype/Link/Rect[223 312 237 320]/Border[0 0 0]/H/N>> endobj 14874 0 obj <>/P 13329 0 R/Type/Annot/A 42031 0 R/Subtype/Link/Rect[239 312 253 320]/Border[0 0 0]/H/N>> endobj 14875 0 obj <>/P 13329 0 R/Type/Annot/A 41987 0 R/Subtype/Link/Rect[255 312 272 321]/Border[0 0 0]/H/N>> endobj 14876 0 obj <>/P 13329 0 R/Type/Annot/A 41953 0 R/Subtype/Link/Rect[272 312 286 320]/Border[0 0 0]/H/N>> endobj 14877 0 obj <>/P 13329 0 R/Type/Annot/A 41920 0 R/Subtype/Link/Rect[288 312 302 320]/Border[0 0 0]/H/N>> endobj 14878 0 obj <>/P 13329 0 R/Type/Annot/A 41879 0 R/Subtype/Link/Rect[152 302 166 310]/Border[0 0 0]/H/N>> endobj 14879 0 obj <>/P 13329 0 R/Type/Annot/A 41833 0 R/Subtype/Link/Rect[168 302 182 310]/Border[0 0 0]/H/N>> endobj 14880 0 obj <>/P 13329 0 R/Type/Annot/A 41775 0 R/Subtype/Link/Rect[184 302 200 311]/Border[0 0 0]/H/N>> endobj 14881 0 obj <>/P 13329 0 R/Type/Annot/A 41282 0 R/Subtype/Link/Rect[201 302 215 310]/Border[0 0 0]/H/N>> endobj 14882 0 obj <>/P 13329 0 R/Type/Annot/A 41673 0 R/Subtype/Link/Rect[217 302 231 310]/Border[0 0 0]/H/N>> endobj 14883 0 obj <>/P 13329 0 R/Type/Annot/A 41636 0 R/Subtype/Link/Rect[233 302 247 310]/Border[0 0 0]/H/N>> endobj 14884 0 obj <>/P 13329 0 R/Type/Annot/A 41586 0 R/Subtype/Link/Rect[249 302 265 311]/Border[0 0 0]/H/N>> endobj 14885 0 obj <>/P 13329 0 R/Type/Annot/A 41553 0 R/Subtype/Link/Rect[266 302 280 310]/Border[0 0 0]/H/N>> endobj 14886 0 obj <>/P 13329 0 R/Type/Annot/A 41504 0 R/Subtype/Link/Rect[282 302 296 310]/Border[0 0 0]/H/N>> endobj 14887 0 obj <>/P 13329 0 R/Type/Annot/A 41465 0 R/Subtype/Link/Rect[298 302 312 310]/Border[0 0 0]/H/N>> endobj 14888 0 obj <>/P 13329 0 R/Type/Annot/A 41431 0 R/Subtype/Link/Rect[152 292 166 300]/Border[0 0 0]/H/N>> endobj 14889 0 obj <>/P 13329 0 R/Type/Annot/A 41187 0 R/Subtype/Link/Rect[168 292 182 300]/Border[0 0 0]/H/N>> endobj 14890 0 obj <>/P 13329 0 R/Type/Annot/A 41342 0 R/Subtype/Link/Rect[184 292 200 301]/Border[0 0 0]/H/N>> endobj 14891 0 obj <>/P 13329 0 R/Type/Annot/A 41310 0 R/Subtype/Link/Rect[201 292 215 300]/Border[0 0 0]/H/N>> endobj 14892 0 obj <>/P 13329 0 R/Type/Annot/A 41280 0 R/Subtype/Link/Rect[217 292 231 300]/Border[0 0 0]/H/N>> endobj 14893 0 obj <>/P 13329 0 R/Type/Annot/A 41251 0 R/Subtype/Link/Rect[233 292 247 300]/Border[0 0 0]/H/N>> endobj 14894 0 obj <>/P 13329 0 R/Type/Annot/A 41200 0 R/Subtype/Link/Rect[249 292 263 300]/Border[0 0 0]/H/N>> endobj 14895 0 obj <>/P 13329 0 R/Type/Annot/A 41181 0 R/Subtype/Link/Rect[265 292 279 300]/Border[0 0 0]/H/N>> endobj 14896 0 obj <>/P 13329 0 R/Type/Annot/A 16058 0 R/Subtype/Link/Rect[281 292 295 300]/Border[0 0 0]/H/N>> endobj 14897 0 obj <>/P 13329 0 R/Type/Annot/A 41123 0 R/Subtype/Link/Rect[297 292 311 300]/Border[0 0 0]/H/N>> endobj 14898 0 obj <>/P 13329 0 R/Type/Annot/A 41083 0 R/Subtype/Link/Rect[152 282 166 290]/Border[0 0 0]/H/N>> endobj 14899 0 obj <>/P 13329 0 R/Type/Annot/A 41048 0 R/Subtype/Link/Rect[168 282 182 290]/Border[0 0 0]/H/N>> endobj 14900 0 obj <>/P 13329 0 R/Type/Annot/A 15476 0 R/Subtype/Link/Rect[184 282 198 290]/Border[0 0 0]/H/N>> endobj 14901 0 obj <>/P 13329 0 R/Type/Annot/A 38949 0 R/Subtype/Link/Rect[200 282 216 291]/Border[0 0 0]/H/N>> endobj 14902 0 obj <>/P 13329 0 R/Type/Annot/A 14995 0 R/Subtype/Link/Rect[217 282 231 290]/Border[0 0 0]/H/N>> endobj 14903 0 obj <>/P 13329 0 R/Type/Annot/A 14960 0 R/Subtype/Link/Rect[233 282 247 290]/Border[0 0 0]/H/N>> endobj 14904 0 obj <>/P 13329 0 R/Type/Annot/A 14958 0 R/Subtype/Link/Rect[249 282 263 290]/Border[0 0 0]/H/N>> endobj 14905 0 obj <>/P 13329 0 R/Type/Annot/A 14955 0 R/Subtype/Link/Rect[265 282 279 290]/Border[0 0 0]/H/N>> endobj 14906 0 obj <>/P 13329 0 R/Type/Annot/A 14953 0 R/Subtype/Link/Rect[281 282 295 290]/Border[0 0 0]/H/N>> endobj 14907 0 obj <>/P 13329 0 R/Type/Annot/A 38951 0 R/Subtype/Link/Rect[152 272 168 281]/Border[0 0 0]/H/N>> endobj 14908 0 obj <>/P 13329 0 R/Type/Annot/A 14950 0 R/Subtype/Link/Rect[169 272 183 280]/Border[0 0 0]/H/N>> endobj 14909 0 obj <>/P 13329 0 R/Type/Annot/A 15590 0 R/Subtype/Link/Rect[185 272 199 280]/Border[0 0 0]/H/N>> endobj 14910 0 obj <>/P 13329 0 R/Type/Annot/A 38338 0 R/Subtype/Link/Rect[201 272 215 280]/Border[0 0 0]/H/N>> endobj 14911 0 obj <>/P 13329 0 R/Type/Annot/A 38307 0 R/Subtype/Link/Rect[217 272 231 280]/Border[0 0 0]/H/N>> endobj 14912 0 obj <>/P 13329 0 R/Type/Annot/A 38270 0 R/Subtype/Link/Rect[233 272 247 280]/Border[0 0 0]/H/N>> endobj 14913 0 obj <>/P 13329 0 R/Type/Annot/A 36839 0 R/Subtype/Link/Rect[249 272 263 280]/Border[0 0 0]/H/N>> endobj 14914 0 obj <>/P 13329 0 R/Type/Annot/A 36786 0 R/Subtype/Link/Rect[265 272 279 280]/Border[0 0 0]/H/N>> endobj 14915 0 obj <>/P 13329 0 R/Type/Annot/A 36757 0 R/Subtype/Link/Rect[152 262 168 271]/Border[0 0 0]/H/N>> endobj 14916 0 obj <>/P 13329 0 R/Type/Annot/A 36699 0 R/Subtype/Link/Rect[169 262 183 270]/Border[0 0 0]/H/N>> endobj 14917 0 obj <>/P 13329 0 R/Type/Annot/A 36682 0 R/Subtype/Link/Rect[185 262 199 270]/Border[0 0 0]/H/N>> endobj 14918 0 obj <>/P 13329 0 R/Type/Annot/A 35881 0 R/Subtype/Link/Rect[201 262 215 270]/Border[0 0 0]/H/N>> endobj 14919 0 obj <>/P 13329 0 R/Type/Annot/A 35844 0 R/Subtype/Link/Rect[217 262 231 270]/Border[0 0 0]/H/N>> endobj 14920 0 obj <>/P 13329 0 R/Type/Annot/A 35069 0 R/Subtype/Link/Rect[233 262 247 270]/Border[0 0 0]/H/N>> endobj 14921 0 obj <>/P 13329 0 R/Type/Annot/A 35038 0 R/Subtype/Link/Rect[249 262 266 271]/Border[0 0 0]/H/N>> endobj 14922 0 obj <>/P 13329 0 R/Type/Annot/A 34249 0 R/Subtype/Link/Rect[266 262 280 270]/Border[0 0 0]/H/N>> endobj 14923 0 obj <>/P 13329 0 R/Type/Annot/A 34217 0 R/Subtype/Link/Rect[282 262 296 270]/Border[0 0 0]/H/N>> endobj 14924 0 obj <>/P 13329 0 R/Type/Annot/A 33663 0 R/Subtype/Link/Rect[152 252 166 260]/Border[0 0 0]/H/N>> endobj 14925 0 obj <>/P 13329 0 R/Type/Annot/A 33621 0 R/Subtype/Link/Rect[168 252 182 260]/Border[0 0 0]/H/N>> endobj 14926 0 obj <>/P 13329 0 R/Type/Annot/A 33101 0 R/Subtype/Link/Rect[184 252 198 260]/Border[0 0 0]/H/N>> endobj 14927 0 obj <>/P 13329 0 R/Type/Annot/A 33058 0 R/Subtype/Link/Rect[200 252 216 261]/Border[0 0 0]/H/N>> endobj 14928 0 obj <>/P 13329 0 R/Type/Annot/A 32588 0 R/Subtype/Link/Rect[217 252 231 260]/Border[0 0 0]/H/N>> endobj 14929 0 obj <>/P 13329 0 R/Type/Annot/A 32535 0 R/Subtype/Link/Rect[233 252 247 260]/Border[0 0 0]/H/N>> endobj 14930 0 obj <>/P 13329 0 R/Type/Annot/A 32508 0 R/Subtype/Link/Rect[249 252 263 260]/Border[0 0 0]/H/N>> endobj 14931 0 obj <>/P 13329 0 R/Type/Annot/A 15031 0 R/Subtype/Link/Rect[265 252 279 260]/Border[0 0 0]/H/N>> endobj 14932 0 obj <>/P 13329 0 R/Type/Annot/A 31774 0 R/Subtype/Link/Rect[281 252 293 260]/Border[0 0 0]/H/N>> endobj 14933 0 obj <>/P 13329 0 R/Type/Annot/A 31076 0 R/Subtype/Link/Rect[164 242 180 251]/Border[0 0 0]/H/N>> endobj 14934 0 obj <>/P 13329 0 R/Type/Annot/A 31028 0 R/Subtype/Link/Rect[181 242 193 250]/Border[0 0 0]/H/N>> endobj 14935 0 obj <>/P 13329 0 R/Type/Annot/A 30291 0 R/Subtype/Link/Rect[193 232 210 241]/Border[0 0 0]/H/N>> endobj 14936 0 obj <>/P 13329 0 R/Type/Annot/A 30264 0 R/Subtype/Link/Rect[211 232 223 240]/Border[0 0 0]/H/N>> endobj 14937 0 obj <>/P 13329 0 R/Type/Annot/A 30229 0 R/Subtype/Link/Rect[165 194 179 202]/Border[0 0 0]/H/N>> endobj 14938 0 obj <>/P 13329 0 R/Type/Annot/A 30185 0 R/Subtype/Link/Rect[181 194 193 202]/Border[0 0 0]/H/N>> endobj 14939 0 obj <>/P 13329 0 R/Type/Annot/A 28367 0 R/Subtype/Link/Rect[162 156 179 165]/Border[0 0 0]/H/N>> endobj 14940 0 obj <>/P 13329 0 R/Type/Annot/A 30098 0 R/Subtype/Link/Rect[179 156 193 164]/Border[0 0 0]/H/N>> endobj 14941 0 obj <>/P 13329 0 R/Type/Annot/A 16056 0 R/Subtype/Link/Rect[195 156 209 164]/Border[0 0 0]/H/N>> endobj 14942 0 obj <>/P 13329 0 R/Type/Annot/A 27561 0 R/Subtype/Link/Rect[211 156 225 164]/Border[0 0 0]/H/N>> endobj 14943 0 obj <>/P 13329 0 R/Type/Annot/A 29270 0 R/Subtype/Link/Rect[227 156 241 164]/Border[0 0 0]/H/N>> endobj 14944 0 obj <>/P 13329 0 R/Type/Annot/A 29236 0 R/Subtype/Link/Rect[243 156 257 164]/Border[0 0 0]/H/N>> endobj 14945 0 obj <>/P 13329 0 R/Type/Annot/A 15484 0 R/Subtype/Link/Rect[259 156 271 164]/Border[0 0 0]/H/N>> endobj 14946 0 obj <>/P 13329 0 R/Type/Annot/A 29149 0 R/Subtype/Link/Rect[148 550 158 559]/Border[0 0 0]/H/N>> endobj 14947 0 obj <>/P 13329 0 R/Type/Annot/A 29117 0 R/Subtype/Link/Rect[285 340 301 349]/Border[0 0 0]/H/N>> endobj 14948 0 obj <>/P 13329 0 R/Type/Annot/A 14961 0 R/Subtype/Link/Rect[165 490 182 499]/Border[0 0 0]/H/N>> endobj 14949 0 obj <> endobj 14950 0 obj <> endobj 14951 0 obj <> endobj 14952 0 obj <> endobj 14953 0 obj <> endobj 14954 0 obj <> endobj 14955 0 obj <> endobj 14956 0 obj <> endobj 14957 0 obj <> endobj 14958 0 obj <> endobj 14959 0 obj <> endobj 14960 0 obj <> endobj 14961 0 obj <> endobj 14962 0 obj <> endobj 14963 0 obj <> endobj 14964 0 obj <> endobj 14965 0 obj <> stream q /X1 Do Q q endstream endobj 14966 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14967 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14968 0 obj <> stream Htn6_GHDIEQ`MtHAi[.('%ف8n>MK޾t@yŏW'"a,$Ғ4fT Fv Nri?ۺ4mg7 ͚'B2?8H&:dTux\ۡQ(Dp8P4tG6HF7swptJLMhBp^K5MǪVdK8 ^"wz4YZG@ hK~ɨO)6KEexƒ"ǖ$"o?\oLx\cK _#yλzE|QWcJ6VSH9ikhgӕ؞`†^\7Ŧ+XLGAHG3lǽ^W()Yzwt=.1pZ^+ ɸ8sE|LRy1iE1(aZ^'"PcIl Irdw)uFҍBt6q(tt;%įob1ѕ}y(ϼ}yg12}OX<ڞԇ~C7TByɏ=Ń&BA/L8=RM U < )`s+PFTȩ]#}1괰/rz r/..Xj{yw!w~}{2gsQ Sn< >,и$i10Ógx>90-@gLo^X(X nӪ,׽jL*}\Ya 2%a}&c ɀ? r:7QZCWLch]j"d2РɠZCJ{lsnC=YÀn<߶vYRD*{-L"bpJB~bB; !5Z X L&Ͱ (i1[ߕq =bB+s/j L!ca6#ʾAwiL:p!w$:qvY/endstream endobj 14969 0 obj <>/P 1327 0 R/Type/Annot/A 18201 0 R/Subtype/Link/Rect[129.600006 539.504028 277.583008 673.919983]/Border[0 0 0]/H/N>> endobj 14970 0 obj <>/P 1327 0 R/Type/Annot/A 18156 0 R/Subtype/Link/Rect[93.5999985 404.627991 199.356003 424.308014]/Border[0 0 0]/H/N>> endobj 14971 0 obj <>/P 1327 0 R/Type/Annot/A 18051 0 R/Subtype/Link/Rect[93.6000977 212.628006 182.904007 232.307999]/Border[0 0 0]/H/N>> endobj 14972 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14973 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14974 0 obj <> endobj 14975 0 obj <> stream q /X1 Do Q q endstream endobj 14976 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14977 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14978 0 obj <> stream HW]Ը}ϯcFOi բ%LۮWhHul)o?4)ۿ_{￿z:pxBiYHEz2ɧO>i&}3uNLMO]rGޏɫMrd]RC<L˼J7$+0u B3>>gl5y뛯 ZXwq2'EIr?&W"HS>5OiR˂ >I]^9Ǥ!1uṌ@Qq(cTC&P!wcP`/"`/"`/#`/#`/#`"`"`#`#`#"b_ˈ}I/#%W*b_쫈}M#5>,'D T}"T}ه>@ }"GjCj(BQHPmC>R TE6!`V }"GjCՆ>D# BQHPm;$PmCT>PmCT>!*fE6!`V }"GjCՆ>D#JBQHPmЇ(}ZI6!`V }"TET+ Ն>D#JB(BQ1(BQ1Ї}Ї(}ZE6!`V }"TETՆ>D#*BPjCjЇ(}ZE6PmC>R"TETՆC Ն>DCՆ>DCb5Z90Cjn7tsY^tӦ<xEiQ|>.D6|ݼO\r\YVٮy0ޜo|K7#~vdn6ґ[ȼfe(8?l~\J|6N*;مZ Vš3]7fw'M`ѸY0.hfq\Lp [9=%Y!^xh+(z\Z0]O9{R=`nRLô[Xr]/\ڡM;=}Pߙ*0w羝a^@Qht}7uDAZ(uq } e3pC8RLA,.dQ|7(o38 `QԌs .Вe8h=՞qv!޿WКq4suxhNw{L_gàRۙ44Kw:l݅`H:Q1;س,nZ~=6O7l3v[+|o|E%w7kLV<, oYɅ]ՀMU Z̿dR1[xmۗj l K9ɛv Jř,uŕb\m'%% a?s#%LMwsP7Sӏ{?T#Y9<~oOă$\ZR^M{ۮfHӓBt~g{8FoYUrڽWୱ;m*77y!k 'Y^T+aslE,XjMB|Aqhs ,=`0p0Tk?Atg0ݢ\~V">[е&mtrlîiV'fG׼VLWX/cv ʺs`,W <߿_o!f8ٓ<܅@ A"rcA'ĴX Gv |>K=':("ˁh%㞾V-rv̸ _c`NMr]x`|텶g *y%,o,mE^:g,Qk33/e%,@ʴNmwH! p/:S TX ڝ34[?aYsY^:VBs5V9;0*IqLd ݂~]5A-j 5(Xe' bX5&oeم(,CU9=pγڒb?Ծ.}r<)f38 Umrc)q~jqǙ ,\iT>*ԺX?hlhc=we .'r"Lkכ,f*ԫ*d4nJ+8_@*Kk y=++ L_AUY]bA",:#N sr)NXW&=Cw۰#:{s*ŝ7*"nrfa,ŧ'{V@=wk_2U6ǡ'`Nj9+E5CgMd*-᭼qX] 7mZDo3@j S%h 4nzuGF>]_xp8T|_%g:T?0eY ye9rzA y@Hmq-/RC+ڍSRd݃=-Y5de5WK6W8(R @(L'Bmi!ɻM}-m4jφ%gϷIZ[K@ ,EMWE~`sMU+:G|mJvHk+/| NuyTվ?t93<!Hon#;Aj}ua;c6R'YE/Gݎdȴ"@Y.g%]54,SŶ뇳IYg @1/%a](T&a )Wz4l4MWm98&a`W[iXZ|GS]E-h<րnBW3_msMŬkZ(hama X:\Ee0N)eփʎ`Wt Zi~zwa`Hۮk}'[kA>ZH{5PhZĩU.mwc+? -P7> 5'wJ{\8%} T*`9g(<tO+)E` $r昔Eֿ_d:&M7z!+PfXn轰puO8[!p/]3'A D .αVA mA AnHlyq_4dJ*R_~MӪ O(vYRW9<(h򕻦8`6.|VJr;W*x%G.0Mt ް"Xe" ;8 e]ISȜ`n9ڵ.kazønKcq~<L~IF)a Vʗ(y6ߩF%SH[9/ @;S>2:wN~';O",~Mgsp89ڠ紱 yv_,e>/P 1292 0 R/Type/Annot/A 38390 0 R/Subtype/Link/Rect[93.6001968 603.229004 275.785004 622.908997]/Border[0 0 0]/H/N>> endobj 14980 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14981 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14982 0 obj <> stream q /X1 Do Q q endstream endobj 14983 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14984 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14985 0 obj <> stream HWn8}WQY邙8s 6`Ӌ}HfJZR-Z"gCXX}GwGROoGHhI_&,x1g<:i~ݱF}]~Ew;'#Q $%I &Xw-ydIve~rQ&twڝG7P{%EZ+c׉)2ieY.`Jy @j .F@Q<`#}/¾ؗ2`_"RDZgP!{(DϠBϠBPj}A!2DϠjZ(DϠjZgP@ QZgP@ Q3(}Z Q3(}Z>P-CT#}}BT *d *d>P-GT a#}BT a#}T>@!}T>Bj}>Bj}A!rDZgP!{(DϠBϠBPj}A! DϠjZ(DϠjZgP@QZgP@Q3(}Z Q3(}Z>P@TH"}}BT *d *d_&eY +jnGd!JdWN$#YV]şFdRd)ku 4^ʙ~lt;޺y8Ս*ICݜOUunoGk,EYLkpԃivgۓ2'9gt^'΋f']՟9ϪKYhgz %2g^5 ,_:/D@ oT!uuT5MҦEf,&!D40"nu;׳cɃk KhwYO^@Y:vM2`9OX.Xmfl!k°;uE0pg΄۹L2w= |=P6t9DILE9ږ{s^cYV@jnܝ4觛Ҥ; I(%:EUߖT?yy!|3Ѿ="~^aY~5A"{t! `rtIղFKʭgCpF}!e5_hy޼^{|yԷ:g#CĹ_Q1Iy!xŦ!/=Z&p#8_y&vy㩠)]atK3hfIV 'vtxS!O>n \|GQU:SWp([mz᫽H8c:5Kwx}d:'x46[0_\.c*vVbH{!Y)Zs|]liEdURMJ!n3 !t%m؄hWQ1 {QU9b8޷fڼ],rM[!m`N3JvsǶ0{)TsM_wS@HIftcieJfoXmyyB KŔ6kٔQצovnhl"J.<)RQl>/Y*7o4tfgE)48lyɲL2&f6; uH3M)+C}s*VCye'侺n ZZ8Mhh!if:CeS/<\~Je.זc,Za`xJ SfOMд{>w3$<1gA7̖ J`QwXdS=,RB{2xLũ9X"=r![)y0A*6:PH)_J"6t9<0^6ˡHBζODWREr0ɱEmߛ0riU~(/k/k+$dUXj)T8f.IO//}~}Dendstream endobj 14986 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14987 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14988 0 obj <> endobj 14989 0 obj <> stream q /X1 Do Q q endstream endobj 14990 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14991 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14992 0 obj <> stream HWێF}Wt`Hž_|&" Xƀ(K.H[ER#flN>]ٜR֍zt+_zM*dN'V~U(V#V*e\ܭwjS5jU4ʪEM smQ"aX*Mƙ*6(ɳq񩥹v8cc6= ;'QYm˵_.'??onGijOnb.1rڪ/-ߨb5WQm~n<*䜓#Q Y|8"ލ),+̽[ sw{{g3Ap }>'}"OTp2>eS}gs s>ܳ!DVH-ŐS XBj),b),!C ,VH-ŀ%bܳZ!C R Y{Z+bܳZ!Z!KpRkR Y{Z+b {KH-ŐS Y=ŀ%bܳ:!C R Y{Z'bܳ:!Z!KpRR Y{Z'bRK1d YjZ!KpRRly!CwO1` {!R Y{Z/bܳz!Z!KpRR Y{Z/bRK1d YjZ!KpRR XBj),=KRK1d YjZm b),!CwO1dqܫ5gEM(Ewo):QIkM47ls3ݔr[nd^}<ճg'*r "@#ګg:o5fm'RjumIhes>CTo[Fzun:t )'ڴdo:~¹!~Buڒ~Lvk#ps>shR)_ǣ#sUM̖dxCgl_n_W5ؼÛ9ۻ׮3}1 % locl3 N죳租(b |[=:G^z$P`z6;6 ]m.0kŰ>n[2AG/ε_$ Z.,ի} Ӟpqnev;6$ ΎNnC+cAfcrΏga\w *gj_lu{>8$ϐgILucShT]ŮƳg~#/rDawx>VkfgTYh\ךD3tU0w.֧: gEUn|y  k~~P.H:~۫/*.Z q~bgZ^L+ZiA+0DJV"h%L+R Z)ieVƴrA+gZS-s-!kQ XF2LZiYA2-+hBS Y{+=Ő%hBS Y{+=Ő%hBS Y{+=Ő%hBS Y{'=Őŵ(,),AսbX;),AսbX;),AսbX;),AսbX;),AսbZPC uO1d ZPC uO1d ZPC uO1d ZPC uO1d ZPC>uO1dq-K{!k: ӟpcQD\[eT&t)㠡k?VuLM7H$%vrs6^V-/?_]WN0C $%PivY35E7^dLfbY+jܮ8v}(ޜ)L;"Y;.ig}3\]&3詇3N}: ^8&UfWm*fꬫu%`k*&̐`e}jV׾e,O[{es)S}^ͰW0a[Uwr;n> \ʧ3#;apUK5+nEʻMj˫9]YMתٲkMKֽ}SrOL^ғñ0sZ"h.[f;7Usa ΨZϻ1W^eswAlj5ÁM=FYs9[_=|;|{T y۽5f V9sV X (6gnZ.9iqWݝ $ٞvBǹӁG-znRP Wӱ)@]~ h[r3R:.`y]:bjش;eChcǧ/]]@˲:_ ײܔl;ټ.o_FV rbendstream endobj 14993 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 14994 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 14995 0 obj <> endobj 14996 0 obj <> stream q /X1 Do Q q endstream endobj 14997 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 14998 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 14999 0 obj <> stream HWko_e ]>q:jŴM@`hZf"*v܋,ɥݡ \='aQ~8:[3/ʹt'/1ݡunSR$ L.ބU囼HҸ*vrd]j$0W$x|xA|CL R~*3rtLmcFussϵW7>LҤ*M`k6]8mhn6…tJ^i+6#|Ԇ@?SwGF[j-s|K` I8K}4Uqd1`QD=USD=U3D=S3D=S3D=S[zKQo!-E6Vۈz[Q Ew.UԻzWQ"]ESz_Q#Ϛie,(Z,U qq^8KU/cB\+cW\Kg!Rĵ2,ĵ2Yzŵqq^q-E\+cB\+cW\Kg!Rĵ2,ĵ2Yzŵqq^q-E\+cge XkeT2YzZ,DZV8 Q!1`!1B+ekekZZ,DZV8 Q!1`!1B+ekekZK5 qq^ƀV8KU/c1`!1B+g!Zke Xkek-ĵ2YzŵZZ,DZ qq^qVƀV8 QB\+cW\k!Tge XkeT2Yi0q #|}kj$0W$xҼi[:,> R~v1ɟ&I42*m&=d1'2s|iL7ŻőugUy'W tȨN6SX)02YDz[w?1aV˳Uԭ]4uJ6qߑ$#_ު|k?,GITqW<_7g8(;Q,Y쉄H8Dή%riq:<^V$ ;96tHIن*1"Xʖ'(uRVqS&BUג1OwmړEŴa蔝}X\rzFWWM6 Vt$GqY%V ܐMtED *$v ö`Jn.M/9.$*r즿i]y__|#?he 8KR&cUX $%{ó=9"ί!v:beVܸRg$M>{ svQpS5>|xD!gCbHtӋr|T".Q7o0$Nodcǻ!d9^1гgIhw[e %P;+m.h vw/aDo]o[p8w4Us!]8{3̵uoHŝ@vjJƐ>LIn*+j'ZBlgjRx MlB&2]OǘyGksdapӻm!Bx,?yi$ )6yEsʢ$ ?J?hqn~[qKu/O-шu]zdz{0.kEt4y%Lź!\ фڌ Mv@ e'$O.k?v<wnX/+"ڈJg3aϼbIAQ8yŊm|J]mrހ SND}SӆlStM];H\jpq|n1a>6wEO_&xڌqm:y<_Ι(=:_[**q2e CP!GV>uO=  O;|_~/zQendstream endobj 15000 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15001 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15002 0 obj <> stream q /X1 Do Q q endstream endobj 15003 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15004 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15005 0 obj <> stream HmSHS̾GiX*UĐ,Y),A؂8ej?ʹdsW)bz=ë LJ;$"o޼=?*B  #dd7$"P2&a/{_Yg8'Y1|faMÔ9$4\$"hXQBIpw2ehohdkaHTɊ~4_W:.y(i1-gb?Q*u%2Rau% zQHKh9}x߄F#~>ۯ@s24J$q-\Z04 _΍EO91CIrSwc@1D=3D=sD=sD=sD= D DKDKDKD+D+DLjS#cO}= >'SSg)bZ76 Z7f(_ q3ލWƀB\ \׺1C!=2ĵn (ĵnPzϵ q3s-C\ƀB\ \׺1C!=2ĵn (ĵnPzϵ q3s-C\&G\ wc@!ucջ1CPkݘk9Z7f(DZ֍֍ Q﹖#ucB{kPkݘk9Z7f(DZ֍֍ Q﹖#ucB{k$kݘ|n (ĵnPz7f(_ q3s@\ \+׺1׺1C!= ĵnPzϵq q3s@\ \+׺1׺1C!= ĵnPzϵqq3ލ֍W סZY_m)'ARFBQ1'b1O/:Y<̇V(T(68_-I!yddLd ݤDt<"$Iv:ؕS2 F6{.EX%}PxfC-Ce,k " 0&6X;^\BF!UU_*)((K]x8r Y_]g-eDcͮ/ FHJ ]#uCm3We<= ^kJev/+O= Mx'b1xtdo:/>l ڨ,l"t:eطt0l\65Ȕԓ0T` ]l٘l)mt&Iib$!S̈́jjN8 f Q"vn)vRTx{SQDҶ[Y͍Ŧ68Ez?Z;I(#!̦#&Zkp8Qbɔ[߀)`إodu黽V2U\F[ UbU8Xj*vQSSuvY ysM+Q!؊Xu2ȷ:2NeIS/gח9UYYGjS/3/:8?=I_Mݿ &^_aen+]}o:tsb'Od0rW6( ZUj`ˆ^mI sb WH?y\Bg,Khv Pp:"l$hSF0›-Y"]~Uc/KujaV霔e|E6*3HX6;"#R-CN1P 6 }*ícKu FܼH{m$`|(F[΁`^/0&恐_ǧ o cB;nR[zݦb3uY:dV*4y4V[~TY턼~lmι2%x(s.5К4;+W`>ae4sBkW-EV/˥`[jIju !Id]-vm\!'>CsilbQRek ;M[[BTn-/gmָڴ[ղZZw9:lt:ku'ͮy&;m6(O1[)cO`DAaY R)<BdfҫQaH_t57,J',gþ:$hz0x.a^>ur^ۿ>;uhŝ\]]u;riwv6\#rO{g+^,u.\n'MEfEgC~R֗[O/ye+i,=oM&9F1 :?w9~"6mIOE>]㫍;raA_gъ޼bY6n>vћE>]y߻q`~ njp>B:{ ,8z,5g ȔN͞qPdq4(xۍnqEz I-Ὴրf y n>cS0)*$(&&++D( = ]C\} /endstream endobj 15006 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15007 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15008 0 obj <> stream q /X1 Do Q q endstream endobj 15009 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15010 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15011 0 obj <> stream H|Wn8}WQb7& d8d5m+iI]x~DJ&A:}Dyūe?vϛ! 7!/T2NE2NDc,|xXMwc_Wa_W߈a^"Baag<5cyu^\E<{RUHN?QUz8< ai̊"[><} ,3iyV L@"| 9 ߻gài,PEvH\Ns ÙH.,8>,W;x O O$KO$KO$KO"+O"+O}BO< >'SSO}JO=>gS3O}N=9>S_=r´.p!Wb"\bջ|.,µ.,BZAŐE\+׺׺kZCs \b"\b"{k] Yzϵpp!PVu1d= µ.p!Wb"\bջ|.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] Yzϵpp!PVu1d=Jµ.p!Wb"\bջ|.,µ.,BZEŐE\׺׺kZCs"\b"\b"{Uk] Yzϵpp!PVu1d=*µ. ZCŀEŐw1dꋸ( 2iVMz\pw\"U!g3p0Mp]^\BMw,.{7׶u+/x<־qmYngpDScbu;J8gE?y4Uԛ2UUH8bT^a誺ɛ"N`4Ɍ8\-FCsүˠؙ-`K~F}ЮoL`%dSzgN2sB0Qwoгm.hp?E&:Yx \~v mD\ObةSMm%r3f;d:u\:xNW='y,u^~!z ܟYw~lmXr R^;-7n:禷J WKO>v-EQs іhX"HWs/fܤďJ!YBB*!4ALCp6Pʈ7NFQ2:GbQmX0}`՟4 hÍTRmJ{ Ӎ i'2RV˂E7SӔ6߀LGѳsX_,0%a$"LK2<\4L^}ĽTރ{-e'p cV6Wdٟ;5cTSIZKԖs/[yxZ1g_Ia;nDDpt+te[kebч7 $Xf{ JFJWs.9-MBĩL7Eb'SgÆxV^͔q!tumώ}Ը {ۍaNm^7_lμ C%t;* 5玺Q[aӠHc`g*ICս[u(5!RT C7)/gMp6b+~h3p!- 5͐ǚ =E%,4cߋ!Wk"}S6uLaje߉%YrJfuh鼟ڹz*:PRČ1-5՗%cX`! "x-0&ߛ5YH$K*އ/!U8w-z .l&?M)#Xw[a r B C )e_R0Lt8\'3?-a!-fx!IC51d= `ly'9s'jzܶ=GpUCKbES@ Phm효Wvm9})KG3|Șշ^LSbg[V"edre W(R7dhJR^ԡb<44p >CAϫΨh$ʤMH}h**vh(;\)TV@}\Ţ@e`lQ\FS\W\Ԍ;m.p!t [hNtMMo*F8Sd^tD5S"u;BHj;B.efz/|=O"A P*hn8%C y"UΔ5V9o AQQgT2+* >;A-Dhz ǭԵ/= -ǾB^s֨  HPDž Hl/ug\u5o8S IrCٖծif3]zxJ2-5nD[Pp,*4xe D?]:\zVl*AqiMV;ntjWR2<]F(F8Jxd$kY.j@MqC+|>|osjl+#k.P\fOiG}<,K cO7\h~GL]FsVGG]p^jMm31ֳ:6S*{9jT&$R0o4=I=,҈ך%d*u\U>Omh)x+VA͜qbCG.%? 17hBtSB+cm,M|qBoƿf_vuF<_Άt}p3!*\ku<k&X40 Yn?净k'}96 ,kۉ3&Lq2G\;aշn~Tl'|;AJ خaed|h^DxЂ`5YH :lc0TI|x*( yi7qR?9=z8YĒ^S6y==־X PdE |#q|6e]7鎗~M;ɍz?\pNe0HdHlW Wl-uw i5!7B#˱:VLQ4+d`rZX1^)RM5'rev0 ,sN͊)ߘ.db?y85ddEfKhHד0ώn:4›y97& NUUu7`~w\_^endstream endobj 15012 0 obj <>/P 1217 0 R/Type/Annot/A 15015 0 R/Subtype/Link/Rect[93.6000977 521.629028 184.404007 541.309021]/Border[0 0 0]/H/N>> endobj 15013 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15014 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15015 0 obj <> endobj 15016 0 obj <> stream q /X1 Do Q q endstream endobj 15017 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15018 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15019 0 obj <> stream HWmo_H@澑\4wAwHT@LL$'QE{I|A,j4;;-zgoT~՛DZBtaUY8ٿU:3Qzjmumjd>Zu^ͳӹQ,IrUL+5_g3WT'Ҍ ڌOuX gˢYv`&',O:D_봆wV)__\],Bې^Y,'*9Qr" Lj%Xb#Y #V,ice{+[ w½p{'{ }p >p_p_%p_ %p_ %p_ p_ p_ }Eg (-֙{%h-Lj%sX= cEk-h-Lj܋ZZ%h-Lj܋ZZ K,Z #p/ZkAk9X#p/ZkAk9F,^ւrl9ZKXbrX=Lj%s,@k9F,^ցrXhXbrXh{ZZ˱{ZZ1bcZ1bcEkh-֙{%h-Lj%sX= cEk=h-Lj܋zZ%h-Lj܋zZ K,Z #p/ZAk9X#p/ZAk9F,^փrlZKXbrX=Ljܫ;Ej ! V,偖ZhyVZhUBh@Z%*V JUJhU@ZhEVZ6Z#րZheZh[{kSȽ6e -{ h[{XSȽ4eq-r1bI-qh;{qh;{Ah;{Ah;{h;{h;{h;{h;{ѱh;{ѱBjqXRct`Z"ct`Z"ctZ"ctZ"cD==!h{{; w%rA9F@Kރs̥Lj%8F@K>Gc*O\.٫yv:[e*=A'x]"D֣l]z+MQ]蚥i.V3/M۝޴0Ĕwy0ڪ"/u>~~MZWgSޝs~~>;?Ԧqzza3–7'V8,x9XKsNq0Z:UyF*Xr]Ovi|ߠj‰'Zۗ>J+\Qn~ҦLJh;ӛp?fwsO.&W|ǮIiO4NT94`K퀁A቙M49 1,0gFHkJ1ύ鿑8"!ÈKhy兖Z^hVZAh@Z*V JURhU@ZЪVZQhEͥLj%8XheZhYeȽȽȽȽȽȽȽȽ cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cĒZK,{ h{{ h{{ h{{ h{{ h{{ h{{ h{{ h{{ h{Kjq,@9F,uj_euVhOkZ\ۂig*cq5u?`n|NyO Ftմ7jԏTy[?V_>6I li9w> "W{S׮C֧YvE(f~u__jVMpZ;NccuiFǤmۯN'/bnes\Q4mM#,M[kv^nALw9\nOL5]=?OWUdJ;Ǯޮ6ML6`<ޤ$dY1:ժo6W'#z(JҁAE0Mz6ho) o褭= MvtO#tQꪰ;ytw6M->+t6}O-Kcɱsqpq]wGհO}G un{̸ء4qvneT% ŏO_Y ioJQd'RGك"d^G?×f\t==Oۿû5g)7oPmk.XWTP0 %yڿ$8 Б?7|N[LȚz6 CUG.)7"S ZCD]=|W}0h|endstream endobj 15020 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15021 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15022 0 obj <> stream q /X1 Do Q q endstream endobj 15023 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15024 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15025 0 obj <> stream HW]o۸}ׯ^Ih[$j%+qP%'(RQLJѐg8=nIH~GE@33A1#ĨVz_ ɃGIIϲI^5UӖ۲ m]񅑇{.VJV^$#I0%#V?_(jxkro !goX7;0Eƒ$a31T w+/AU,j?<0r 4$dC`0U˒Py_,9, C1r1`Q,L"ekocbzgzzzzzzᨏ>BGQ9cD}쨏>A'Q8D}O>Eԧ Q93DYj!1rژbmL\6,ĵ6Xzǵ q)q-C\kcB\kcw\ژb!2ĵ6,ĵ6Xzǵ q)q-C\kcB\kcw\ژb!2ĵ6V{q)ƀUoc媷1`!1B;kmLk9ZZS,DZ Q︖#1`!1B;kmLk9ZZS,DZ Q︖#kmL\6,ĵ6XzS,W q)q@\kcw\+ژb! ĵ6Xzǵq q)q@\kcw\+ژb! ĵ6Xzǵq^UocB\kc媷1rgAeYەwZ1Bn ʲ &qUwh~Qv;3C~"U|*z1& 0dUK4k Nnp~Kr.]~>>{csמoڼ6?>Dz]fߎex'1ãZl*FxHkS WNVMSn]P@W讇DzR0on8@S [~a_،o7cc)} NI/ZCXw8@AJC6,(1Oqa{Xnh| YF. X4Oods9pY$HZ>o=4@U]E/( !Д1CC<MV988k"<9~ƀwHt8c ≬Wd\2dl>O'~[(wu̐Of" g+4A>-7,Ƽ4"|L8k_V"IBbΫr|!4gҬeYdžGR(a37PA?q V*#ېu̇dl ڿ1$ZfXC1HӴ]%vYSL8< q 6s@.>LcU ^9ɲlj+2I gKJqs`IMW!(-%/}#d*:֦!õ_>͕>iyp8\I]+Gꘝ'^.N]Άfy*}o(8LB9-EfKh:rAL>ƒoշar Gu(Q[kqOteP/МH*._V]M"(*2yH w_^ 0c(wyQMb}]if!mwm ,W$x,cy(cM3K"(h"aڏ2pMxbƲL.nd>Wd?OA*kr y.גF>!ꫩYVj65/tVÅ7XiD'YY1pqF?B__NWP ݶa zWSEAQ- +ӑIL)oɴ1=\f{ kK㳓QdFѻ2QM#~fL$LfPT5:˝87 "8'-4ny1HruN4  ϻ3<Ҭ\1VjDk\pw`?+'n0óȭ $ Qg obΥgQms %S{}V1"萤9wNYL^=Wމ]ڡAR $M#z5A[{. XR}km͆(ȧ׍@O 2}фG:LÔ.D1eG(syQXH *4QU/YC0!m2xp.k 11>/U fm]MYKVf'oJr|bW8Ej7iYl8g^? \M:k9S|r`;hb:ӉDS[p7ܢ[$~)#f,Gd  0d)^$,m|IXۥT]ҀaӁChG=?mFevx&i^%6ZA{p>\KA `-%VE/l@%tf={gt_[èendstream endobj 15026 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15027 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15028 0 obj <> endobj 15029 0 obj <> endobj 15030 0 obj <> endobj 15031 0 obj <> endobj 15032 0 obj <> stream q /X1 Do Q q endstream endobj 15033 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15034 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15035 0 obj <> stream HmoFW ,@y#9MM f CXD-\Qd }r!yŹշ^;/_}:5.A|e¨7k6DJ.~n~yZTuK>WurQ[UP!2UW^&We3V=7>OMhvg zzOÿ޴٣^fE8ϋL>b<MޚeQ:W#SL%WLB9e< ̣s+L\#\kѥt1\xvexEHo@z#[ފ"H@z';މ"HAz/ }! }!җ })җ })җ })W }%W }%>3rm0\#LϵS5r\#LϵS5rbj Z Skr-r\ Zk0\.0\#H/ր@z1L-ע L-ҋ5`jF.^LS˵ebr\2=ע L-%s\2=ע L-ҋ`jF.^LS˵S5rbj-Z Skr-r\ Z kZ0\.0\#H/ւ@z1L-זS5r\.0\#L5r\.0\#H/ց@z1L-ע L-ҋu`jF.^LS˵S5rbjZ Sr-r\ Zk:0\[&L-%s-r\2=ҫ?EwVmHm"p,XN`9 *J* *XA`2dq\5ڬ, XZ `2%zo@6l.Kހsm؆]z5rڰ k,{zϵa4vq$k,{ z5mdKނs62%zoAF[\- `[{D-=hXk,{ z5VH%Y\ `;{цD=h+Xk,{z5z,{z5z,{z5z},{z5z},{z5z1,{z5z1,KF܀%zACBp*?'eN.Z+$ *g*|z\ުy߳jrSk,֍q#E\YEn9o:67;=3]Gt?_y;9W뻧l߮7og*ˏ͗ytsL9{kEGk65޳pVku4h|Lc7o餽jjɴWY?;W5 >u\:ĥJJ7ދo̚tw4Y5M;SE_+?4j{eMffj3peŰ9.v9ly5!`4cǎNhR:gäSܷe)Wo}>iL ׊>@j+݅\gz,rz'U9WsOi:'nnw>\_K2=,K+^2nӼSuLInDJ_γ%뜬(;&]~Sz{3/KuU{B[\#W.r,X^<`y* *J * +V,K%Y\. XZ4`i2eKހs\%zo@F.7\#`{ D =Xk,{ z5rIע k,{ z5rKނs\%zoAF.\#`[{ D-=Xk,{z5rIע k,{z5rKށs\%z@F.w\#`;{ D=Xk,{z5rIע k䒬~8/ַFiU'z*8q|L^!ۋW~Ƈt&~S偶&-UO i39nbNdxa~?ڶ\nMmZ-I\ b{ uŽmW~[Kw@{X`Z`Zt*ԑ\Q7(Z"#c{8f83d#nx8ka·p?T{Kn#U*1YwY9k6m$f$%e?.~sJXf9uGuӷgW=>S<,-9rO[/g(9/KK~ȎUsFi|ϐ[sl 4Xɋ 2jp /uuP56aqa~Ff[~mc]NrǥV .qhZc4S,uU޳ ,@5YSp( RPxt)ea=Y#ȴ̸DH4Gc?hgS+MrZSXrSW,d7uI MEKdG>mI^2Gʾͩds+I<礔BٛIRb# tbsC"Ț`T}(ɵ5& ,Rq0!)ݲ c؟`Ʀor'qޡVi@|Mn Pp*դ0΄ ZDCy|ϕyn4Gʜ{a\".kC3]| lE5=9?8O/](>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15037 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15038 0 obj <> stream q /X1 Do Q q endstream endobj 15039 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15040 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15041 0 obj <> stream HW]sH}WtvPA|w6L&W5[eR! -`;~"d{oTt|9y۫~ݏ*T/__/A_[g&HJZz"U)ogY}uWnꦭ6eVj+oVםjG"X{& S4Ufj.ff/t60\9Tu92S^j0 ?n4oQx4i?-0XlJLսB+|PL ϥ.<SG8QhbQ XQYCV,(),-̽k so7{[e2>fc}ǂO s>ܧ}*OTp2>c3};cu6JKR Y=ŀ%b),bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` Zh-Ő%gBk)Z!R Y=ŐS XBk),=kZK1d YkZKh-Ő%g5Bk),=kZK1` Fh-Ő%g5Bk),CFh-6ZK1dqZ!{Kh-Ő%gBk),=kZK1` Vh-Ő%gBk),C Vh-ŀ%bܳZC ƋR Y=ŀ%b),9Bx|*R9Xa`bUTVU[}>sWǓqalIEaиAp9ڶbtr՗5a;IwqAoGoǢv&\~416@h?u@\ǡ$7%v<ݍ{noӪ?] ۇԤ6Ig=dD Wz2W#m2U(Jd3t'c|hq1ހ.z:=nVV8HS=v[Sv}a#73~9,}ǓgӋfVۥq?ݻjUj[m C(Ъ.4 B@hmXًJݹ̜3gˇ .L'cS7?ȟ2[>heEiLTゲ&A,@*_ڴ/<~u2@4wTo`C"qz˝6Mcҭ ^GLDm"s{^ేYK,7&fdjY'S[2H%q(rw?64KtТ̷oy}},P,u9= HSO2$8D-0ȕl TjG'˻@+|K껑}@,Vov^l"]7XFY2+ B.|n󃘟NTM'h3G|9'#9La!S8l$c"@H]VmLsPjד?JdhDH8 eLb@RVYAMvQ%Q!sò~<&DPY-ߌ{u͇KAWd9 KQUr7BՈJ_zGo;qYM$x]hJm[~Ov#8D2&9:&ș.}{\0י͐3)n?:StOڲ>.5MҳnMvkB!LP0%c̖1HY,tªX׿UwJRdL㰤"R~ 3-)MyXgY Cy#M.}(q%cGe 38O>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15043 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15044 0 obj <> stream q /X1 Do Q q endstream endobj 15045 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15046 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15047 0 obj <> stream HW]sۺ}#=c$}&aӇ%&PI(}(ɋM;`gA_C,ez6O$%W")8+ 䜍:7룔m5,~Э2};tڌM&vn:C U銭(~}XY=+%0^dXuDe :17Wyf{zY%"}QCMcޭ4XwH8{aYA7̾|MنE(Sҕ*mU9T!B, c>cʲ0 ֞exyy^E^E^E^e^e>'PsB}/E P_KB}/ e~E_WU"WPx6#L.k1fYzp-,+T1 c Xk1fYp-,Pb̲k9ZY>p-'\1`Řerµ,B}ZNc"\1"k1fYp-ƺHŘe1,µP=,+T1`Ře µ,B}ZAc"\1"k1fYp-ƀEcE\+b̲kZp-,PVŘe µ"Icb̲BP=ƀEcE\+ b̲k%Zp-,PVŘeJµZY>p$\1"k1,µ,B}ZIcE\+ brµP=ƀEcǘeꫤ*Rw6f]?$9J l],0dJ V[wQ(E)A_X_bݛQ ĊNjN_<;i=y촟MoGڡyZ~u 6& *k7?)KReƺSwԾ)Ǩ0el'0UM}`W:{ĭoFclw˲[^ɳNOOE)hlEhOn֣[~.oi|_IdMT_T.D1N-1\%-ҞeM_s$Ns&0?͈N;Wz{m^{o/. y6(<=^y>spLR~ UB$W j&TٽIC%o?[5MMXE;3wߙTZqTo췦m/ Nm qK)O>辇?45?X|B՜ i9[Gw?Y_:;0endstream endobj 15048 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15049 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15050 0 obj <> endobj 15051 0 obj <> stream q /X1 Do Q q endstream endobj 15052 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15053 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15054 0 obj <> stream HWkob>ʀ( ؎Ӫ7~ Vnn!*גr%9\iV* yCrOoǫ ӫ[ُ?([]Wjf*dΪHE٧B+N?LƛiͧlV;>aq:#>pT0=΋`0}9~5ܖFgw9,8X́O*%gW3 VeK1Ep SqWbB FpRp PBĆ(CRBS$^f%^f^e^e^e5^g5^g d d d-f-feee=g=g>d>Ӭ D$TOm"TOm٧6@Mm"gjSj%(B QLPmjC>S$TE6!`VMm"gjSզ6D3JB QLPmjPmjCT>PmjCT>!*gE6!`VMm"gUjSզ6D3*B QLPmjԆ(}ZE6!`VMm"TETզ6D3*Bm^hB Q9(B Q9Ԇ}jԆ(}ZM6!`VMm"TET զ6D3jB PjSj5Ԇ(}ZM6PmjC>S&TET զyaզ6DSզ6DSr !hῃ?'|XH1̞ Jˬ㼸ݎWӴ.ye6;kKzVz_lT>Mt=Y;l炗 ',M%·WpSgx A5bq64Of\#|D]sdz݄eky餖)1S9>_3~X~#&+q} RyHRmŧi nO^Lut 3gß RvXYU4:^CulPRpu܀W0'7وR2SKß/?QR҃HGT%KБ?f\i9iK`b|^L:U*8RA&췷*s0E.fh;]B뛘LǶpT{PYe^cAAsҢtl{tM]iH>3j5IJ٪Ae1#(籝P[i@ HQ {~r ]}&{Pxg+@G$4Dk٤Cf@# hX%ji%A Gb<ǘrxÏ^/7{|?X$²u )kQ*Ris{KV@#L|70ơXYzV|&iWJj} A<5+4ڶ:uV[4&-uҡ+ IktK z Ӝưo9 Z8d #e@r@QxaQ;..%AzixUpp-n07?Lj_+ %X$_#O ﷃu"҃GPE3B'q=uഔAFtN:ccC߆īǖy;]lfe6Kyei ٌvߗj>[aHl'z!4YGwƱ2 stg%~nWj\u:Gk jmH >RFJ%M6$ET }N5gùhSS=WmvLbF+@KX7]}7_>K'g~ymg\#"UafӴ$]S?TAV>-'4M#E22ELuhz_or/ 2~ME6ftyTWDe/b59Y/de6-3!r4 qmrocXxRd0ԹFvԤvŦ e]ˇ bX I dz^;4ͬ[CsL&Fy<@ @ LZVHi̷K<8*/+hQŃKCMɃJM߫3LIThU֛*B\%TƪRYV핎'K~ IӪ@ueiW1)\94TwJcqc{-_ ^x՘Ͳx D(/>Tz_?w@t_W~mͮitby|Q-vŶ ߔS U֓|1eLeqR}7:E8ӡL|= '(}U-O8IC?wei5UǓ3L;u^teCB p֔9<-ЈYUN HS@5s0 '\Sr߮e/xlOF&FUBjR @)^@QJ+ Tt7rz+\s;Bmv5nJ <0Oڦv V̐+6b3=픠K mB>pGF= PR@HbF*P^PT(k)&=٭-/H'B;-Io쒆,˸$SL{^ٖf-2Ȣ%5l<_2[1L🡿!=O kѰ!n說~z2k)[ N|5/I\IM{;ȅd3(H9W=P‘2Ik̀?5_ bm#-5=z1c3׮,@#՘ZMG}]\lτ?Wz?Ԑuބ?>6bzѮX7ߞsϸ|Ůb NhEϬw\.G)˟ qCI+ PZ!%z0 'g>/P 7932 0 R/Type/Annot/A 44530 0 R/Subtype/Link/Rect[215 659 229 668]/Border[0 0 0]/H/N>> endobj 15056 0 obj <>/P 7932 0 R/Type/Annot/A 44501 0 R/Subtype/Link/Rect[231 659 248 669]/Border[0 0 0]/H/N>> endobj 15057 0 obj <>/P 7932 0 R/Type/Annot/A 44462 0 R/Subtype/Link/Rect[249 659 261 668]/Border[0 0 0]/H/N>> endobj 15058 0 obj <>/P 7932 0 R/Type/Annot/A 44420 0 R/Subtype/Link/Rect[199 649 209 658]/Border[0 0 0]/H/N>> endobj 15059 0 obj <>/P 7932 0 R/Type/Annot/A 44387 0 R/Subtype/Link/Rect[211 649 225 658]/Border[0 0 0]/H/N>> endobj 15060 0 obj <>/P 7932 0 R/Type/Annot/A 44348 0 R/Subtype/Link/Rect[227 649 239 658]/Border[0 0 0]/H/N>> endobj 15061 0 obj <>/P 7932 0 R/Type/Annot/A 44327 0 R/Subtype/Link/Rect[200 639 214 648]/Border[0 0 0]/H/N>> endobj 15062 0 obj <>/P 7932 0 R/Type/Annot/A 44284 0 R/Subtype/Link/Rect[216 639 230 648]/Border[0 0 0]/H/N>> endobj 15063 0 obj <>/P 7932 0 R/Type/Annot/A 44248 0 R/Subtype/Link/Rect[232 639 246 648]/Border[0 0 0]/H/N>> endobj 15064 0 obj <>/P 7932 0 R/Type/Annot/A 44213 0 R/Subtype/Link/Rect[248 639 262 648]/Border[0 0 0]/H/N>> endobj 15065 0 obj <>/P 7932 0 R/Type/Annot/A 44639 0 R/Subtype/Link/Rect[264 639 278 648]/Border[0 0 0]/H/N>> endobj 15066 0 obj <>/P 7932 0 R/Type/Annot/A 44139 0 R/Subtype/Link/Rect[280 639 292 648]/Border[0 0 0]/H/N>> endobj 15067 0 obj <>/P 7932 0 R/Type/Annot/A 44108 0 R/Subtype/Link/Rect[158 619 174 629]/Border[0 0 0]/H/N>> endobj 15068 0 obj <>/P 7932 0 R/Type/Annot/A 44068 0 R/Subtype/Link/Rect[175 619 187 628]/Border[0 0 0]/H/N>> endobj 15069 0 obj <>/P 7932 0 R/Type/Annot/A 44037 0 R/Subtype/Link/Rect[244 609 260 619]/Border[0 0 0]/H/N>> endobj 15070 0 obj <>/P 7932 0 R/Type/Annot/A 44002 0 R/Subtype/Link/Rect[261 609 273 618]/Border[0 0 0]/H/N>> endobj 15071 0 obj <>/P 7932 0 R/Type/Annot/A 43965 0 R/Subtype/Link/Rect[174 599 190 609]/Border[0 0 0]/H/N>> endobj 15072 0 obj <>/P 7932 0 R/Type/Annot/A 43937 0 R/Subtype/Link/Rect[191 599 205 608]/Border[0 0 0]/H/N>> endobj 15073 0 obj <>/P 7932 0 R/Type/Annot/A 43882 0 R/Subtype/Link/Rect[207 599 221 608]/Border[0 0 0]/H/N>> endobj 15074 0 obj <>/P 7932 0 R/Type/Annot/A 43853 0 R/Subtype/Link/Rect[223 599 235 608]/Border[0 0 0]/H/N>> endobj 15075 0 obj <>/P 7932 0 R/Type/Annot/A 43811 0 R/Subtype/Link/Rect[234 589 248 598]/Border[0 0 0]/H/N>> endobj 15076 0 obj <>/P 7932 0 R/Type/Annot/A 43781 0 R/Subtype/Link/Rect[250 589 264 598]/Border[0 0 0]/H/N>> endobj 15077 0 obj <>/P 7932 0 R/Type/Annot/A 43749 0 R/Subtype/Link/Rect[266 589 283 599]/Border[0 0 0]/H/N>> endobj 15078 0 obj <>/P 7932 0 R/Type/Annot/A 43705 0 R/Subtype/Link/Rect[283 589 297 598]/Border[0 0 0]/H/N>> endobj 15079 0 obj <>/P 7932 0 R/Type/Annot/A 43678 0 R/Subtype/Link/Rect[151 579 165 588]/Border[0 0 0]/H/N>> endobj 15080 0 obj <>/P 7932 0 R/Type/Annot/A 43628 0 R/Subtype/Link/Rect[167 579 181 588]/Border[0 0 0]/H/N>> endobj 15081 0 obj <>/P 7932 0 R/Type/Annot/A 43591 0 R/Subtype/Link/Rect[183 579 197 588]/Border[0 0 0]/H/N>> endobj 15082 0 obj <>/P 7932 0 R/Type/Annot/A 43547 0 R/Subtype/Link/Rect[199 579 213 588]/Border[0 0 0]/H/N>> endobj 15083 0 obj <>/P 7932 0 R/Type/Annot/A 43521 0 R/Subtype/Link/Rect[215 579 232 589]/Border[0 0 0]/H/N>> endobj 15084 0 obj <>/P 7932 0 R/Type/Annot/A 43478 0 R/Subtype/Link/Rect[233 579 245 588]/Border[0 0 0]/H/N>> endobj 15085 0 obj <>/P 7932 0 R/Type/Annot/A 43451 0 R/Subtype/Link/Rect[217 569 231 578]/Border[0 0 0]/H/N>> endobj 15086 0 obj <>/P 7932 0 R/Type/Annot/A 43416 0 R/Subtype/Link/Rect[233 569 247 578]/Border[0 0 0]/H/N>> endobj 15087 0 obj <>/P 7932 0 R/Type/Annot/A 43368 0 R/Subtype/Link/Rect[249 569 263 578]/Border[0 0 0]/H/N>> endobj 15088 0 obj <>/P 7932 0 R/Type/Annot/A 43323 0 R/Subtype/Link/Rect[265 569 277 578]/Border[0 0 0]/H/N>> endobj 15089 0 obj <>/P 7932 0 R/Type/Annot/A 43277 0 R/Subtype/Link/Rect[190 559 198 568]/Border[0 0 0]/H/N>> endobj 15090 0 obj <>/P 7932 0 R/Type/Annot/A 43236 0 R/Subtype/Link/Rect[207 549 217 558]/Border[0 0 0]/H/N>> endobj 15091 0 obj <>/P 7932 0 R/Type/Annot/A 43182 0 R/Subtype/Link/Rect[219 549 229 558]/Border[0 0 0]/H/N>> endobj 15092 0 obj <>/P 7932 0 R/Type/Annot/A 43162 0 R/Subtype/Link/Rect[231 549 244 559]/Border[0 0 0]/H/N>> endobj 15093 0 obj <>/P 7932 0 R/Type/Annot/A 15393 0 R/Subtype/Link/Rect[245 549 255 558]/Border[0 0 0]/H/N>> endobj 15094 0 obj <>/P 7932 0 R/Type/Annot/A 43096 0 R/Subtype/Link/Rect[257 549 269 559]/Border[0 0 0]/H/N>> endobj 15095 0 obj <>/P 7932 0 R/Type/Annot/A 43032 0 R/Subtype/Link/Rect[270 549 280 558]/Border[0 0 0]/H/N>> endobj 15096 0 obj <>/P 7932 0 R/Type/Annot/A 42998 0 R/Subtype/Link/Rect[282 549 295 559]/Border[0 0 0]/H/N>> endobj 15097 0 obj <>/P 7932 0 R/Type/Annot/A 42972 0 R/Subtype/Link/Rect[295 549 305 558]/Border[0 0 0]/H/N>> endobj 15098 0 obj <>/P 7932 0 R/Type/Annot/A 42930 0 R/Subtype/Link/Rect[151 539 161 548]/Border[0 0 0]/H/N>> endobj 15099 0 obj <>/P 7932 0 R/Type/Annot/A 42898 0 R/Subtype/Link/Rect[163 539 173 548]/Border[0 0 0]/H/N>> endobj 15100 0 obj <>/P 7932 0 R/Type/Annot/A 37440 0 R/Subtype/Link/Rect[175 539 189 548]/Border[0 0 0]/H/N>> endobj 15101 0 obj <>/P 7932 0 R/Type/Annot/A 42835 0 R/Subtype/Link/Rect[191 539 205 548]/Border[0 0 0]/H/N>> endobj 15102 0 obj <>/P 7932 0 R/Type/Annot/A 42781 0 R/Subtype/Link/Rect[207 539 221 548]/Border[0 0 0]/H/N>> endobj 15103 0 obj <>/P 7932 0 R/Type/Annot/A 15418 0 R/Subtype/Link/Rect[223 539 235 548]/Border[0 0 0]/H/N>> endobj 15104 0 obj <>/P 7932 0 R/Type/Annot/A 42721 0 R/Subtype/Link/Rect[190 529 198 538]/Border[0 0 0]/H/N>> endobj 15105 0 obj <>/P 7932 0 R/Type/Annot/A 42681 0 R/Subtype/Link/Rect[207 519 220 529]/Border[0 0 0]/H/N>> endobj 15106 0 obj <>/P 7932 0 R/Type/Annot/A 42648 0 R/Subtype/Link/Rect[221 519 231 528]/Border[0 0 0]/H/N>> endobj 15107 0 obj <>/P 7932 0 R/Type/Annot/A 15404 0 R/Subtype/Link/Rect[233 519 243 528]/Border[0 0 0]/H/N>> endobj 15108 0 obj <>/P 7932 0 R/Type/Annot/A 42570 0 R/Subtype/Link/Rect[245 519 257 529]/Border[0 0 0]/H/N>> endobj 15109 0 obj <>/P 7932 0 R/Type/Annot/A 42541 0 R/Subtype/Link/Rect[258 519 268 528]/Border[0 0 0]/H/N>> endobj 15110 0 obj <>/P 7932 0 R/Type/Annot/A 42495 0 R/Subtype/Link/Rect[270 519 284 528]/Border[0 0 0]/H/N>> endobj 15111 0 obj <>/P 7932 0 R/Type/Annot/A 42456 0 R/Subtype/Link/Rect[286 519 298 528]/Border[0 0 0]/H/N>> endobj 15112 0 obj <>/P 7932 0 R/Type/Annot/A 42405 0 R/Subtype/Link/Rect[171 509 175 518]/Border[0 0 0]/H/N>> endobj 15113 0 obj <>/P 7932 0 R/Type/Annot/A 42377 0 R/Subtype/Link/Rect[176 499 182 508]/Border[0 0 0]/H/N>> endobj 15114 0 obj <>/P 7932 0 R/Type/Annot/A 42350 0 R/Subtype/Link/Rect[184 499 190 508]/Border[0 0 0]/H/N>> endobj 15115 0 obj <>/P 7932 0 R/Type/Annot/A 16043 0 R/Subtype/Link/Rect[192 499 202 508]/Border[0 0 0]/H/N>> endobj 15116 0 obj <>/P 7932 0 R/Type/Annot/A 42252 0 R/Subtype/Link/Rect[204 499 214 508]/Border[0 0 0]/H/N>> endobj 15117 0 obj <>/P 7932 0 R/Type/Annot/A 42226 0 R/Subtype/Link/Rect[216 499 226 508]/Border[0 0 0]/H/N>> endobj 15118 0 obj <>/P 7932 0 R/Type/Annot/A 42172 0 R/Subtype/Link/Rect[228 499 242 508]/Border[0 0 0]/H/N>> endobj 15119 0 obj <>/P 7932 0 R/Type/Annot/A 42132 0 R/Subtype/Link/Rect[244 499 261 509]/Border[0 0 0]/H/N>> endobj 15120 0 obj <>/P 7932 0 R/Type/Annot/A 42091 0 R/Subtype/Link/Rect[262 499 276 508]/Border[0 0 0]/H/N>> endobj 15121 0 obj <>/P 7932 0 R/Type/Annot/A 42051 0 R/Subtype/Link/Rect[278 499 292 508]/Border[0 0 0]/H/N>> endobj 15122 0 obj <>/P 7932 0 R/Type/Annot/A 42002 0 R/Subtype/Link/Rect[294 499 308 508]/Border[0 0 0]/H/N>> endobj 15123 0 obj <>/P 7932 0 R/Type/Annot/A 42394 0 R/Subtype/Link/Rect[151 489 163 498]/Border[0 0 0]/H/N>> endobj 15124 0 obj <>/P 7932 0 R/Type/Annot/A 41934 0 R/Subtype/Link/Rect[173 479 179 488]/Border[0 0 0]/H/N>> endobj 15125 0 obj <>/P 7932 0 R/Type/Annot/A 41899 0 R/Subtype/Link/Rect[181 479 187 488]/Border[0 0 0]/H/N>> endobj 15126 0 obj <>/P 7932 0 R/Type/Annot/A 41855 0 R/Subtype/Link/Rect[189 479 202 489]/Border[0 0 0]/H/N>> endobj 15127 0 obj <>/P 7932 0 R/Type/Annot/A 41789 0 R/Subtype/Link/Rect[202 479 212 488]/Border[0 0 0]/H/N>> endobj 15128 0 obj <>/P 7932 0 R/Type/Annot/A 44183 0 R/Subtype/Link/Rect[214 479 224 488]/Border[0 0 0]/H/N>> endobj 15129 0 obj <>/P 7932 0 R/Type/Annot/A 41690 0 R/Subtype/Link/Rect[226 479 239 489]/Border[0 0 0]/H/N>> endobj 15130 0 obj <>/P 7932 0 R/Type/Annot/A 41651 0 R/Subtype/Link/Rect[240 479 250 488]/Border[0 0 0]/H/N>> endobj 15131 0 obj <>/P 7932 0 R/Type/Annot/A 41606 0 R/Subtype/Link/Rect[252 479 266 488]/Border[0 0 0]/H/N>> endobj 15132 0 obj <>/P 7932 0 R/Type/Annot/A 41563 0 R/Subtype/Link/Rect[268 479 280 488]/Border[0 0 0]/H/N>> endobj 15133 0 obj <>/P 7932 0 R/Type/Annot/A 15750 0 R/Subtype/Link/Rect[183 469 196 479]/Border[0 0 0]/H/N>> endobj 15134 0 obj <>/P 7932 0 R/Type/Annot/A 41489 0 R/Subtype/Link/Rect[197 469 205 478]/Border[0 0 0]/H/N>> endobj 15135 0 obj <>/P 7932 0 R/Type/Annot/A 15598 0 R/Subtype/Link/Rect[193 459 207 468]/Border[0 0 0]/H/N>> endobj 15136 0 obj <>/P 7932 0 R/Type/Annot/A 41418 0 R/Subtype/Link/Rect[209 459 225 469]/Border[0 0 0]/H/N>> endobj 15137 0 obj <>/P 7932 0 R/Type/Annot/A 42241 0 R/Subtype/Link/Rect[226 459 240 468]/Border[0 0 0]/H/N>> endobj 15138 0 obj <>/P 7932 0 R/Type/Annot/A 15416 0 R/Subtype/Link/Rect[242 459 256 468]/Border[0 0 0]/H/N>> endobj 15139 0 obj <>/P 7932 0 R/Type/Annot/A 41289 0 R/Subtype/Link/Rect[258 459 272 468]/Border[0 0 0]/H/N>> endobj 15140 0 obj <>/P 7932 0 R/Type/Annot/A 41264 0 R/Subtype/Link/Rect[274 459 291 469]/Border[0 0 0]/H/N>> endobj 15141 0 obj <>/P 7932 0 R/Type/Annot/A 41213 0 R/Subtype/Link/Rect[291 459 305 468]/Border[0 0 0]/H/N>> endobj 15142 0 obj <>/P 7932 0 R/Type/Annot/A 41190 0 R/Subtype/Link/Rect[151 449 165 458]/Border[0 0 0]/H/N>> endobj 15143 0 obj <>/P 7932 0 R/Type/Annot/A 41162 0 R/Subtype/Link/Rect[167 449 181 458]/Border[0 0 0]/H/N>> endobj 15144 0 obj <>/P 7932 0 R/Type/Annot/A 15396 0 R/Subtype/Link/Rect[183 449 197 458]/Border[0 0 0]/H/N>> endobj 15145 0 obj <>/P 7932 0 R/Type/Annot/A 41102 0 R/Subtype/Link/Rect[199 449 213 458]/Border[0 0 0]/H/N>> endobj 15146 0 obj <>/P 7932 0 R/Type/Annot/A 41053 0 R/Subtype/Link/Rect[215 449 229 458]/Border[0 0 0]/H/N>> endobj 15147 0 obj <>/P 7932 0 R/Type/Annot/A 44445 0 R/Subtype/Link/Rect[231 449 245 458]/Border[0 0 0]/H/N>> endobj 15148 0 obj <>/P 7932 0 R/Type/Annot/A 40713 0 R/Subtype/Link/Rect[247 449 261 458]/Border[0 0 0]/H/N>> endobj 15149 0 obj <>/P 7932 0 R/Type/Annot/A 40681 0 R/Subtype/Link/Rect[263 449 277 458]/Border[0 0 0]/H/N>> endobj 15150 0 obj <>/P 7932 0 R/Type/Annot/A 43600 0 R/Subtype/Link/Rect[279 449 296 459]/Border[0 0 0]/H/N>> endobj 15151 0 obj <>/P 7932 0 R/Type/Annot/A 40092 0 R/Subtype/Link/Rect[296 449 308 458]/Border[0 0 0]/H/N>> endobj 15152 0 obj <>/P 7932 0 R/Type/Annot/A 39542 0 R/Subtype/Link/Rect[190 439 202 448]/Border[0 0 0]/H/N>> endobj 15153 0 obj <>/P 7932 0 R/Type/Annot/A 43832 0 R/Subtype/Link/Rect[236 429 244 438]/Border[0 0 0]/H/N>> endobj 15154 0 obj <>/P 7932 0 R/Type/Annot/A 38971 0 R/Subtype/Link/Rect[227 419 235 428]/Border[0 0 0]/H/N>> endobj 15155 0 obj <>/P 7932 0 R/Type/Annot/A 38928 0 R/Subtype/Link/Rect[265 409 273 418]/Border[0 0 0]/H/N>> endobj 15156 0 obj <>/P 7932 0 R/Type/Annot/A 15424 0 R/Subtype/Link/Rect[246 399 256 408]/Border[0 0 0]/H/N>> endobj 15157 0 obj <>/P 7932 0 R/Type/Annot/A 15417 0 R/Subtype/Link/Rect[258 399 266 408]/Border[0 0 0]/H/N>> endobj 15158 0 obj <>/P 7932 0 R/Type/Annot/A 15413 0 R/Subtype/Link/Rect[196 389 206 398]/Border[0 0 0]/H/N>> endobj 15159 0 obj <>/P 7932 0 R/Type/Annot/A 15411 0 R/Subtype/Link/Rect[208 389 218 398]/Border[0 0 0]/H/N>> endobj 15160 0 obj <>/P 7932 0 R/Type/Annot/A 15409 0 R/Subtype/Link/Rect[220 389 232 398]/Border[0 0 0]/H/N>> endobj 15161 0 obj <>/P 7932 0 R/Type/Annot/A 15406 0 R/Subtype/Link/Rect[225 379 239 388]/Border[0 0 0]/H/N>> endobj 15162 0 obj <>/P 7932 0 R/Type/Annot/A 15402 0 R/Subtype/Link/Rect[241 379 253 388]/Border[0 0 0]/H/N>> endobj 15163 0 obj <>/P 7932 0 R/Type/Annot/A 15398 0 R/Subtype/Link/Rect[227 369 237 378]/Border[0 0 0]/H/N>> endobj 15164 0 obj <>/P 7932 0 R/Type/Annot/A 15392 0 R/Subtype/Link/Rect[239 369 247 378]/Border[0 0 0]/H/N>> endobj 15165 0 obj <>/P 7932 0 R/Type/Annot/A 35898 0 R/Subtype/Link/Rect[198 359 212 368]/Border[0 0 0]/H/N>> endobj 15166 0 obj <>/P 7932 0 R/Type/Annot/A 35865 0 R/Subtype/Link/Rect[214 359 228 368]/Border[0 0 0]/H/N>> endobj 15167 0 obj <>/P 7932 0 R/Type/Annot/A 35088 0 R/Subtype/Link/Rect[230 359 246 369]/Border[0 0 0]/H/N>> endobj 15168 0 obj <>/P 7932 0 R/Type/Annot/A 35050 0 R/Subtype/Link/Rect[247 359 261 368]/Border[0 0 0]/H/N>> endobj 15169 0 obj <>/P 7932 0 R/Type/Annot/A 34267 0 R/Subtype/Link/Rect[263 359 277 368]/Border[0 0 0]/H/N>> endobj 15170 0 obj <>/P 7932 0 R/Type/Annot/A 34230 0 R/Subtype/Link/Rect[279 359 293 368]/Border[0 0 0]/H/N>> endobj 15171 0 obj <>/P 7932 0 R/Type/Annot/A 34197 0 R/Subtype/Link/Rect[151 349 168 359]/Border[0 0 0]/H/N>> endobj 15172 0 obj <>/P 7932 0 R/Type/Annot/A 33636 0 R/Subtype/Link/Rect[169 349 181 358]/Border[0 0 0]/H/N>> endobj 15173 0 obj <>/P 7932 0 R/Type/Annot/A 33602 0 R/Subtype/Link/Rect[190 339 204 348]/Border[0 0 0]/H/N>> endobj 15174 0 obj <>/P 7932 0 R/Type/Annot/A 33073 0 R/Subtype/Link/Rect[206 339 218 348]/Border[0 0 0]/H/N>> endobj 15175 0 obj <>/P 7932 0 R/Type/Annot/A 33042 0 R/Subtype/Link/Rect[231 329 241 338]/Border[0 0 0]/H/N>> endobj 15176 0 obj <>/P 7932 0 R/Type/Annot/A 32558 0 R/Subtype/Link/Rect[243 329 253 338]/Border[0 0 0]/H/N>> endobj 15177 0 obj <>/P 7932 0 R/Type/Annot/A 32525 0 R/Subtype/Link/Rect[255 329 263 338]/Border[0 0 0]/H/N>> endobj 15178 0 obj <>/P 7932 0 R/Type/Annot/A 31833 0 R/Subtype/Link/Rect[231 319 241 328]/Border[0 0 0]/H/N>> endobj 15179 0 obj <>/P 7932 0 R/Type/Annot/A 31793 0 R/Subtype/Link/Rect[243 319 251 328]/Border[0 0 0]/H/N>> endobj 15180 0 obj <>/P 7932 0 R/Type/Annot/A 31098 0 R/Subtype/Link/Rect[227 309 237 318]/Border[0 0 0]/H/N>> endobj 15181 0 obj <>/P 7932 0 R/Type/Annot/A 31048 0 R/Subtype/Link/Rect[239 309 247 318]/Border[0 0 0]/H/N>> endobj 15182 0 obj <>/P 7932 0 R/Type/Annot/A 30997 0 R/Subtype/Link/Rect[227 299 237 308]/Border[0 0 0]/H/N>> endobj 15183 0 obj <>/P 7932 0 R/Type/Annot/A 30275 0 R/Subtype/Link/Rect[239 299 247 308]/Border[0 0 0]/H/N>> endobj 15184 0 obj <>/P 7932 0 R/Type/Annot/A 30243 0 R/Subtype/Link/Rect[227 289 239 299]/Border[0 0 0]/H/N>> endobj 15185 0 obj <>/P 7932 0 R/Type/Annot/A 30215 0 R/Subtype/Link/Rect[240 289 250 298]/Border[0 0 0]/H/N>> endobj 15186 0 obj <>/P 7932 0 R/Type/Annot/A 30152 0 R/Subtype/Link/Rect[252 289 260 298]/Border[0 0 0]/H/N>> endobj 15187 0 obj <>/P 7932 0 R/Type/Annot/A 30122 0 R/Subtype/Link/Rect[227 279 235 288]/Border[0 0 0]/H/N>> endobj 15188 0 obj <>/P 7932 0 R/Type/Annot/A 30075 0 R/Subtype/Link/Rect[222 269 230 278]/Border[0 0 0]/H/N>> endobj 15189 0 obj <>/P 7932 0 R/Type/Annot/A 29322 0 R/Subtype/Link/Rect[241 259 249 268]/Border[0 0 0]/H/N>> endobj 15190 0 obj <>/P 7932 0 R/Type/Annot/A 31029 0 R/Subtype/Link/Rect[222 249 230 258]/Border[0 0 0]/H/N>> endobj 15191 0 obj <>/P 7932 0 R/Type/Annot/A 29242 0 R/Subtype/Link/Rect[284 239 294 248]/Border[0 0 0]/H/N>> endobj 15192 0 obj <>/P 7932 0 R/Type/Annot/A 29203 0 R/Subtype/Link/Rect[296 239 304 248]/Border[0 0 0]/H/N>> endobj 15193 0 obj <>/P 7932 0 R/Type/Annot/A 29160 0 R/Subtype/Link/Rect[227 229 239 239]/Border[0 0 0]/H/N>> endobj 15194 0 obj <>/P 7932 0 R/Type/Annot/A 29135 0 R/Subtype/Link/Rect[240 229 250 238]/Border[0 0 0]/H/N>> endobj 15195 0 obj <>/P 7932 0 R/Type/Annot/A 29081 0 R/Subtype/Link/Rect[252 229 264 238]/Border[0 0 0]/H/N>> endobj 15196 0 obj <>/P 7932 0 R/Type/Annot/A 28562 0 R/Subtype/Link/Rect[198 219 212 228]/Border[0 0 0]/H/N>> endobj 15197 0 obj <>/P 7932 0 R/Type/Annot/A 28518 0 R/Subtype/Link/Rect[214 219 226 228]/Border[0 0 0]/H/N>> endobj 15198 0 obj <>/P 7932 0 R/Type/Annot/A 28501 0 R/Subtype/Link/Rect[217 199 230 209]/Border[0 0 0]/H/N>> endobj 15199 0 obj <>/P 7932 0 R/Type/Annot/A 28454 0 R/Subtype/Link/Rect[231 199 245 208]/Border[0 0 0]/H/N>> endobj 15200 0 obj <>/P 7932 0 R/Type/Annot/A 28419 0 R/Subtype/Link/Rect[247 199 259 208]/Border[0 0 0]/H/N>> endobj 15201 0 obj <>/P 7932 0 R/Type/Annot/A 28366 0 R/Subtype/Link/Rect[198 189 210 199]/Border[0 0 0]/H/N>> endobj 15202 0 obj <>/P 7932 0 R/Type/Annot/A 28344 0 R/Subtype/Link/Rect[211 189 221 198]/Border[0 0 0]/H/N>> endobj 15203 0 obj <>/P 7932 0 R/Type/Annot/A 27598 0 R/Subtype/Link/Rect[223 189 233 198]/Border[0 0 0]/H/N>> endobj 15204 0 obj <>/P 7932 0 R/Type/Annot/A 27564 0 R/Subtype/Link/Rect[235 189 249 198]/Border[0 0 0]/H/N>> endobj 15205 0 obj <>/P 7932 0 R/Type/Annot/A 26982 0 R/Subtype/Link/Rect[251 189 265 198]/Border[0 0 0]/H/N>> endobj 15206 0 obj <>/P 7932 0 R/Type/Annot/A 26933 0 R/Subtype/Link/Rect[267 189 281 198]/Border[0 0 0]/H/N>> endobj 15207 0 obj <>/P 7932 0 R/Type/Annot/A 26509 0 R/Subtype/Link/Rect[283 189 297 198]/Border[0 0 0]/H/N>> endobj 15208 0 obj <>/P 7932 0 R/Type/Annot/A 26472 0 R/Subtype/Link/Rect[299 189 311 198]/Border[0 0 0]/H/N>> endobj 15209 0 obj <>/P 7932 0 R/Type/Annot/A 25947 0 R/Subtype/Link/Rect[190 179 198 188]/Border[0 0 0]/H/N>> endobj 15210 0 obj <>/P 7932 0 R/Type/Annot/A 25904 0 R/Subtype/Link/Rect[190 169 206 179]/Border[0 0 0]/H/N>> endobj 15211 0 obj <>/P 7932 0 R/Type/Annot/A 25870 0 R/Subtype/Link/Rect[207 169 219 178]/Border[0 0 0]/H/N>> endobj 15212 0 obj <>/P 7932 0 R/Type/Annot/A 25846 0 R/Subtype/Link/Rect[196 149 206 158]/Border[0 0 0]/H/N>> endobj 15213 0 obj <>/P 7932 0 R/Type/Annot/A 25786 0 R/Subtype/Link/Rect[208 149 218 158]/Border[0 0 0]/H/N>> endobj 15214 0 obj <>/P 7932 0 R/Type/Annot/A 24987 0 R/Subtype/Link/Rect[220 149 234 158]/Border[0 0 0]/H/N>> endobj 15215 0 obj <>/P 7932 0 R/Type/Annot/A 24919 0 R/Subtype/Link/Rect[236 149 248 158]/Border[0 0 0]/H/N>> endobj 15216 0 obj <>/P 7932 0 R/Type/Annot/A 24295 0 R/Subtype/Link/Rect[371 669 385 678]/Border[0 0 0]/H/N>> endobj 15217 0 obj <>/P 7932 0 R/Type/Annot/A 25941 0 R/Subtype/Link/Rect[387 669 401 678]/Border[0 0 0]/H/N>> endobj 15218 0 obj <>/P 7932 0 R/Type/Annot/A 23442 0 R/Subtype/Link/Rect[403 669 415 678]/Border[0 0 0]/H/N>> endobj 15219 0 obj <>/P 7932 0 R/Type/Annot/A 23389 0 R/Subtype/Link/Rect[396 659 410 668]/Border[0 0 0]/H/N>> endobj 15220 0 obj <>/P 7932 0 R/Type/Annot/A 22661 0 R/Subtype/Link/Rect[412 659 426 668]/Border[0 0 0]/H/N>> endobj 15221 0 obj <>/P 7932 0 R/Type/Annot/A 15397 0 R/Subtype/Link/Rect[428 659 442 668]/Border[0 0 0]/H/N>> endobj 15222 0 obj <>/P 7932 0 R/Type/Annot/A 15391 0 R/Subtype/Link/Rect[444 659 458 668]/Border[0 0 0]/H/N>> endobj 15223 0 obj <>/P 7932 0 R/Type/Annot/A 22013 0 R/Subtype/Link/Rect[460 659 477 669]/Border[0 0 0]/H/N>> endobj 15224 0 obj <>/P 7932 0 R/Type/Annot/A 21968 0 R/Subtype/Link/Rect[477 659 491 668]/Border[0 0 0]/H/N>> endobj 15225 0 obj <>/P 7932 0 R/Type/Annot/A 21419 0 R/Subtype/Link/Rect[493 659 507 668]/Border[0 0 0]/H/N>> endobj 15226 0 obj <>/P 7932 0 R/Type/Annot/A 21352 0 R/Subtype/Link/Rect[359 649 373 658]/Border[0 0 0]/H/N>> endobj 15227 0 obj <>/P 7932 0 R/Type/Annot/A 23365 0 R/Subtype/Link/Rect[375 649 389 658]/Border[0 0 0]/H/N>> endobj 15228 0 obj <>/P 7932 0 R/Type/Annot/A 20552 0 R/Subtype/Link/Rect[391 649 405 658]/Border[0 0 0]/H/N>> endobj 15229 0 obj <>/P 7932 0 R/Type/Annot/A 16125 0 R/Subtype/Link/Rect[407 649 421 658]/Border[0 0 0]/H/N>> endobj 15230 0 obj <>/P 7932 0 R/Type/Annot/A 16049 0 R/Subtype/Link/Rect[423 649 437 658]/Border[0 0 0]/H/N>> endobj 15231 0 obj <>/P 7932 0 R/Type/Annot/A 19681 0 R/Subtype/Link/Rect[439 649 451 658]/Border[0 0 0]/H/N>> endobj 15232 0 obj <>/P 7932 0 R/Type/Annot/A 15630 0 R/Subtype/Link/Rect[398 639 410 648]/Border[0 0 0]/H/N>> endobj 15233 0 obj <>/P 7932 0 R/Type/Annot/A 19113 0 R/Subtype/Link/Rect[415 629 425 638]/Border[0 0 0]/H/N>> endobj 15234 0 obj <>/P 7932 0 R/Type/Annot/A 15454 0 R/Subtype/Link/Rect[427 629 437 638]/Border[0 0 0]/H/N>> endobj 15235 0 obj <>/P 7932 0 R/Type/Annot/A 19046 0 R/Subtype/Link/Rect[439 629 449 638]/Border[0 0 0]/H/N>> endobj 15236 0 obj <>/P 7932 0 R/Type/Annot/A 18984 0 R/Subtype/Link/Rect[451 629 465 638]/Border[0 0 0]/H/N>> endobj 15237 0 obj <>/P 7932 0 R/Type/Annot/A 18956 0 R/Subtype/Link/Rect[467 629 481 638]/Border[0 0 0]/H/N>> endobj 15238 0 obj <>/P 7932 0 R/Type/Annot/A 18907 0 R/Subtype/Link/Rect[483 629 500 639]/Border[0 0 0]/H/N>> endobj 15239 0 obj <>/P 7932 0 R/Type/Annot/A 18882 0 R/Subtype/Link/Rect[501 629 515 638]/Border[0 0 0]/H/N>> endobj 15240 0 obj <>/P 7932 0 R/Type/Annot/A 19114 0 R/Subtype/Link/Rect[359 619 371 628]/Border[0 0 0]/H/N>> endobj 15241 0 obj <>/P 7932 0 R/Type/Annot/A 19070 0 R/Subtype/Link/Rect[363 609 380 619]/Border[0 0 0]/H/N>> endobj 15242 0 obj <>/P 7932 0 R/Type/Annot/A 18784 0 R/Subtype/Link/Rect[380 609 392 618]/Border[0 0 0]/H/N>> endobj 15243 0 obj <>/P 7932 0 R/Type/Annot/A 18983 0 R/Subtype/Link/Rect[394 599 406 608]/Border[0 0 0]/H/N>> endobj 15244 0 obj <>/P 7932 0 R/Type/Annot/A 18955 0 R/Subtype/Link/Rect[396 589 408 598]/Border[0 0 0]/H/N>> endobj 15245 0 obj <>/P 7932 0 R/Type/Annot/A 18680 0 R/Subtype/Link/Rect[449 579 461 588]/Border[0 0 0]/H/N>> endobj 15246 0 obj <>/P 7932 0 R/Type/Annot/A 18655 0 R/Subtype/Link/Rect[421 569 433 578]/Border[0 0 0]/H/N>> endobj 15247 0 obj <>/P 7932 0 R/Type/Annot/A 18635 0 R/Subtype/Link/Rect[420 559 432 568]/Border[0 0 0]/H/N>> endobj 15248 0 obj <>/P 7932 0 R/Type/Annot/A 18605 0 R/Subtype/Link/Rect[409 549 423 558]/Border[0 0 0]/H/N>> endobj 15249 0 obj <>/P 7932 0 R/Type/Annot/A 18573 0 R/Subtype/Link/Rect[425 549 437 558]/Border[0 0 0]/H/N>> endobj 15250 0 obj <>/P 7932 0 R/Type/Annot/A 18741 0 R/Subtype/Link/Rect[429 539 443 548]/Border[0 0 0]/H/N>> endobj 15251 0 obj <>/P 7932 0 R/Type/Annot/A 18491 0 R/Subtype/Link/Rect[445 539 457 548]/Border[0 0 0]/H/N>> endobj 15252 0 obj <>/P 7932 0 R/Type/Annot/A 18896 0 R/Subtype/Link/Rect[387 529 397 538]/Border[0 0 0]/H/N>> endobj 15253 0 obj <>/P 7932 0 R/Type/Annot/A 18439 0 R/Subtype/Link/Rect[399 529 413 538]/Border[0 0 0]/H/N>> endobj 15254 0 obj <>/P 7932 0 R/Type/Annot/A 18420 0 R/Subtype/Link/Rect[415 529 429 538]/Border[0 0 0]/H/N>> endobj 15255 0 obj <>/P 7932 0 R/Type/Annot/A 18335 0 R/Subtype/Link/Rect[431 529 443 538]/Border[0 0 0]/H/N>> endobj 15256 0 obj <>/P 7932 0 R/Type/Annot/A 18316 0 R/Subtype/Link/Rect[399 519 409 528]/Border[0 0 0]/H/N>> endobj 15257 0 obj <>/P 7932 0 R/Type/Annot/A 18278 0 R/Subtype/Link/Rect[411 519 423 528]/Border[0 0 0]/H/N>> endobj 15258 0 obj <>/P 7932 0 R/Type/Annot/A 18485 0 R/Subtype/Link/Rect[396 509 410 518]/Border[0 0 0]/H/N>> endobj 15259 0 obj <>/P 7932 0 R/Type/Annot/A 18859 0 R/Subtype/Link/Rect[412 509 429 519]/Border[0 0 0]/H/N>> endobj 15260 0 obj <>/P 7932 0 R/Type/Annot/A 18052 0 R/Subtype/Link/Rect[429 509 443 518]/Border[0 0 0]/H/N>> endobj 15261 0 obj <>/P 7932 0 R/Type/Annot/A 18037 0 R/Subtype/Link/Rect[445 509 459 518]/Border[0 0 0]/H/N>> endobj 15262 0 obj <>/P 7932 0 R/Type/Annot/A 15401 0 R/Subtype/Link/Rect[461 509 475 518]/Border[0 0 0]/H/N>> endobj 15263 0 obj <>/P 7932 0 R/Type/Annot/A 18286 0 R/Subtype/Link/Rect[477 509 491 518]/Border[0 0 0]/H/N>> endobj 15264 0 obj <>/P 7932 0 R/Type/Annot/A 18487 0 R/Subtype/Link/Rect[359 499 376 509]/Border[0 0 0]/H/N>> endobj 15265 0 obj <>/P 7932 0 R/Type/Annot/A 17948 0 R/Subtype/Link/Rect[377 499 391 508]/Border[0 0 0]/H/N>> endobj 15266 0 obj <>/P 7932 0 R/Type/Annot/A 17921 0 R/Subtype/Link/Rect[393 499 409 509]/Border[0 0 0]/H/N>> endobj 15267 0 obj <>/P 7932 0 R/Type/Annot/A 17887 0 R/Subtype/Link/Rect[410 499 424 508]/Border[0 0 0]/H/N>> endobj 15268 0 obj <>/P 7932 0 R/Type/Annot/A 17821 0 R/Subtype/Link/Rect[426 499 443 509]/Border[0 0 0]/H/N>> endobj 15269 0 obj <>/P 7932 0 R/Type/Annot/A 17796 0 R/Subtype/Link/Rect[443 499 457 508]/Border[0 0 0]/H/N>> endobj 15270 0 obj <>/P 7932 0 R/Type/Annot/A 17758 0 R/Subtype/Link/Rect[459 499 473 508]/Border[0 0 0]/H/N>> endobj 15271 0 obj <>/P 7932 0 R/Type/Annot/A 17729 0 R/Subtype/Link/Rect[475 499 489 508]/Border[0 0 0]/H/N>> endobj 15272 0 obj <>/P 7932 0 R/Type/Annot/A 17593 0 R/Subtype/Link/Rect[491 499 505 508]/Border[0 0 0]/H/N>> endobj 15273 0 obj <>/P 7932 0 R/Type/Annot/A 16111 0 R/Subtype/Link/Rect[359 489 373 498]/Border[0 0 0]/H/N>> endobj 15274 0 obj <>/P 7932 0 R/Type/Annot/A 16047 0 R/Subtype/Link/Rect[375 489 392 499]/Border[0 0 0]/H/N>> endobj 15275 0 obj <>/P 7932 0 R/Type/Annot/A 17521 0 R/Subtype/Link/Rect[393 489 407 498]/Border[0 0 0]/H/N>> endobj 15276 0 obj <>/P 7932 0 R/Type/Annot/A 17501 0 R/Subtype/Link/Rect[409 489 423 498]/Border[0 0 0]/H/N>> endobj 15277 0 obj <>/P 7932 0 R/Type/Annot/A 15530 0 R/Subtype/Link/Rect[425 489 441 499]/Border[0 0 0]/H/N>> endobj 15278 0 obj <>/P 7932 0 R/Type/Annot/A 15462 0 R/Subtype/Link/Rect[442 489 456 498]/Border[0 0 0]/H/N>> endobj 15279 0 obj <>/P 7932 0 R/Type/Annot/A 15421 0 R/Subtype/Link/Rect[458 489 472 498]/Border[0 0 0]/H/N>> endobj 15280 0 obj <>/P 7932 0 R/Type/Annot/A 15414 0 R/Subtype/Link/Rect[474 489 488 498]/Border[0 0 0]/H/N>> endobj 15281 0 obj <>/P 7932 0 R/Type/Annot/A 15412 0 R/Subtype/Link/Rect[359 479 376 489]/Border[0 0 0]/H/N>> endobj 15282 0 obj <>/P 7932 0 R/Type/Annot/A 15410 0 R/Subtype/Link/Rect[377 479 391 488]/Border[0 0 0]/H/N>> endobj 15283 0 obj <>/P 7932 0 R/Type/Annot/A 15407 0 R/Subtype/Link/Rect[393 479 407 488]/Border[0 0 0]/H/N>> endobj 15284 0 obj <>/P 7932 0 R/Type/Annot/A 15403 0 R/Subtype/Link/Rect[409 479 423 488]/Border[0 0 0]/H/N>> endobj 15285 0 obj <>/P 7932 0 R/Type/Annot/A 15400 0 R/Subtype/Link/Rect[425 479 439 488]/Border[0 0 0]/H/N>> endobj 15286 0 obj <>/P 7932 0 R/Type/Annot/A 15395 0 R/Subtype/Link/Rect[441 479 457 489]/Border[0 0 0]/H/N>> endobj 15287 0 obj <>/P 7932 0 R/Type/Annot/A 16894 0 R/Subtype/Link/Rect[458 479 472 488]/Border[0 0 0]/H/N>> endobj 15288 0 obj <>/P 7932 0 R/Type/Annot/A 16850 0 R/Subtype/Link/Rect[474 479 491 489]/Border[0 0 0]/H/N>> endobj 15289 0 obj <>/P 7932 0 R/Type/Annot/A 15399 0 R/Subtype/Link/Rect[491 479 505 488]/Border[0 0 0]/H/N>> endobj 15290 0 obj <>/P 7932 0 R/Type/Annot/A 16791 0 R/Subtype/Link/Rect[507 479 519 488]/Border[0 0 0]/H/N>> endobj 15291 0 obj <>/P 7932 0 R/Type/Annot/A 16766 0 R/Subtype/Link/Rect[398 469 410 478]/Border[0 0 0]/H/N>> endobj 15292 0 obj <>/P 7932 0 R/Type/Annot/A 16727 0 R/Subtype/Link/Rect[411 459 423 468]/Border[0 0 0]/H/N>> endobj 15293 0 obj <>/P 7932 0 R/Type/Annot/A 16695 0 R/Subtype/Link/Rect[408 449 422 458]/Border[0 0 0]/H/N>> endobj 15294 0 obj <>/P 7932 0 R/Type/Annot/A 16670 0 R/Subtype/Link/Rect[424 449 438 458]/Border[0 0 0]/H/N>> endobj 15295 0 obj <>/P 7932 0 R/Type/Annot/A 16638 0 R/Subtype/Link/Rect[440 449 454 458]/Border[0 0 0]/H/N>> endobj 15296 0 obj <>/P 7932 0 R/Type/Annot/A 16620 0 R/Subtype/Link/Rect[456 449 470 458]/Border[0 0 0]/H/N>> endobj 15297 0 obj <>/P 7932 0 R/Type/Annot/A 16582 0 R/Subtype/Link/Rect[472 449 486 458]/Border[0 0 0]/H/N>> endobj 15298 0 obj <>/P 7932 0 R/Type/Annot/A 16696 0 R/Subtype/Link/Rect[488 449 500 458]/Border[0 0 0]/H/N>> endobj 15299 0 obj <>/P 7932 0 R/Type/Annot/A 16519 0 R/Subtype/Link/Rect[409 439 419 448]/Border[0 0 0]/H/N>> endobj 15300 0 obj <>/P 7932 0 R/Type/Annot/A 16489 0 R/Subtype/Link/Rect[421 439 433 448]/Border[0 0 0]/H/N>> endobj 15301 0 obj <>/P 7932 0 R/Type/Annot/A 16464 0 R/Subtype/Link/Rect[411 429 425 438]/Border[0 0 0]/H/N>> endobj 15302 0 obj <>/P 7932 0 R/Type/Annot/A 44825 0 R/Subtype/Link/Rect[427 429 443 439]/Border[0 0 0]/H/N>> endobj 15303 0 obj <>/P 7932 0 R/Type/Annot/A 44788 0 R/Subtype/Link/Rect[444 429 458 438]/Border[0 0 0]/H/N>> endobj 15304 0 obj <>/P 7932 0 R/Type/Annot/A 44747 0 R/Subtype/Link/Rect[460 429 472 438]/Border[0 0 0]/H/N>> endobj 15305 0 obj <>/P 7932 0 R/Type/Annot/A 44705 0 R/Subtype/Link/Rect[406 419 420 428]/Border[0 0 0]/H/N>> endobj 15306 0 obj <>/P 7932 0 R/Type/Annot/A 44681 0 R/Subtype/Link/Rect[422 419 436 428]/Border[0 0 0]/H/N>> endobj 15307 0 obj <>/P 7932 0 R/Type/Annot/A 44655 0 R/Subtype/Link/Rect[438 419 454 429]/Border[0 0 0]/H/N>> endobj 15308 0 obj <>/P 7932 0 R/Type/Annot/A 44620 0 R/Subtype/Link/Rect[455 419 469 428]/Border[0 0 0]/H/N>> endobj 15309 0 obj <>/P 7932 0 R/Type/Annot/A 44573 0 R/Subtype/Link/Rect[471 419 485 428]/Border[0 0 0]/H/N>> endobj 15310 0 obj <>/P 7932 0 R/Type/Annot/A 44532 0 R/Subtype/Link/Rect[487 419 504 429]/Border[0 0 0]/H/N>> endobj 15311 0 obj <>/P 7932 0 R/Type/Annot/A 44502 0 R/Subtype/Link/Rect[504 419 516 428]/Border[0 0 0]/H/N>> endobj 15312 0 obj <>/P 7932 0 R/Type/Annot/A 44470 0 R/Subtype/Link/Rect[369 409 383 418]/Border[0 0 0]/H/N>> endobj 15313 0 obj <>/P 7932 0 R/Type/Annot/A 44422 0 R/Subtype/Link/Rect[385 409 399 418]/Border[0 0 0]/H/N>> endobj 15314 0 obj <>/P 7932 0 R/Type/Annot/A 44388 0 R/Subtype/Link/Rect[401 409 413 418]/Border[0 0 0]/H/N>> endobj 15315 0 obj <>/P 7932 0 R/Type/Annot/A 44356 0 R/Subtype/Link/Rect[415 399 427 408]/Border[0 0 0]/H/N>> endobj 15316 0 obj <>/P 7932 0 R/Type/Annot/A 44330 0 R/Subtype/Link/Rect[411 389 423 398]/Border[0 0 0]/H/N>> endobj 15317 0 obj <>/P 7932 0 R/Type/Annot/A 44286 0 R/Subtype/Link/Rect[411 379 423 388]/Border[0 0 0]/H/N>> endobj 15318 0 obj <>/P 7932 0 R/Type/Annot/A 44250 0 R/Subtype/Link/Rect[425 369 437 378]/Border[0 0 0]/H/N>> endobj 15319 0 obj <>/P 7932 0 R/Type/Annot/A 44220 0 R/Subtype/Link/Rect[425 359 437 368]/Border[0 0 0]/H/N>> endobj 15320 0 obj <>/P 7932 0 R/Type/Annot/A 44176 0 R/Subtype/Link/Rect[425 349 437 358]/Border[0 0 0]/H/N>> endobj 15321 0 obj <>/P 7932 0 R/Type/Annot/A 44148 0 R/Subtype/Link/Rect[425 339 437 348]/Border[0 0 0]/H/N>> endobj 15322 0 obj <>/P 7932 0 R/Type/Annot/A 44112 0 R/Subtype/Link/Rect[401 329 411 338]/Border[0 0 0]/H/N>> endobj 15323 0 obj <>/P 7932 0 R/Type/Annot/A 44076 0 R/Subtype/Link/Rect[413 329 427 338]/Border[0 0 0]/H/N>> endobj 15324 0 obj <>/P 7932 0 R/Type/Annot/A 44039 0 R/Subtype/Link/Rect[429 329 443 338]/Border[0 0 0]/H/N>> endobj 15325 0 obj <>/P 7932 0 R/Type/Annot/A 44012 0 R/Subtype/Link/Rect[445 329 459 338]/Border[0 0 0]/H/N>> endobj 15326 0 obj <>/P 7932 0 R/Type/Annot/A 43969 0 R/Subtype/Link/Rect[461 329 475 338]/Border[0 0 0]/H/N>> endobj 15327 0 obj <>/P 7932 0 R/Type/Annot/A 43945 0 R/Subtype/Link/Rect[477 329 493 339]/Border[0 0 0]/H/N>> endobj 15328 0 obj <>/P 7932 0 R/Type/Annot/A 43885 0 R/Subtype/Link/Rect[494 329 508 338]/Border[0 0 0]/H/N>> endobj 15329 0 obj <>/P 7932 0 R/Type/Annot/A 43855 0 R/Subtype/Link/Rect[359 319 376 329]/Border[0 0 0]/H/N>> endobj 15330 0 obj <>/P 7932 0 R/Type/Annot/A 43821 0 R/Subtype/Link/Rect[377 319 391 328]/Border[0 0 0]/H/N>> endobj 15331 0 obj <>/P 7932 0 R/Type/Annot/A 43788 0 R/Subtype/Link/Rect[393 319 407 328]/Border[0 0 0]/H/N>> endobj 15332 0 obj <>/P 7932 0 R/Type/Annot/A 43751 0 R/Subtype/Link/Rect[409 319 423 328]/Border[0 0 0]/H/N>> endobj 15333 0 obj <>/P 7932 0 R/Type/Annot/A 43714 0 R/Subtype/Link/Rect[425 319 441 329]/Border[0 0 0]/H/N>> endobj 15334 0 obj <>/P 7932 0 R/Type/Annot/A 43682 0 R/Subtype/Link/Rect[442 319 456 328]/Border[0 0 0]/H/N>> endobj 15335 0 obj <>/P 7932 0 R/Type/Annot/A 43631 0 R/Subtype/Link/Rect[458 319 475 329]/Border[0 0 0]/H/N>> endobj 15336 0 obj <>/P 7932 0 R/Type/Annot/A 43599 0 R/Subtype/Link/Rect[475 319 487 328]/Border[0 0 0]/H/N>> endobj 15337 0 obj <>/P 7932 0 R/Type/Annot/A 43550 0 R/Subtype/Link/Rect[398 309 412 318]/Border[0 0 0]/H/N>> endobj 15338 0 obj <>/P 7932 0 R/Type/Annot/A 43522 0 R/Subtype/Link/Rect[414 309 426 318]/Border[0 0 0]/H/N>> endobj 15339 0 obj <>/P 7932 0 R/Type/Annot/A 43630 0 R/Subtype/Link/Rect[388 299 402 308]/Border[0 0 0]/H/N>> endobj 15340 0 obj <>/P 7932 0 R/Type/Annot/A 43453 0 R/Subtype/Link/Rect[404 299 421 309]/Border[0 0 0]/H/N>> endobj 15341 0 obj <>/P 7932 0 R/Type/Annot/A 43420 0 R/Subtype/Link/Rect[421 299 435 308]/Border[0 0 0]/H/N>> endobj 15342 0 obj <>/P 7932 0 R/Type/Annot/A 43371 0 R/Subtype/Link/Rect[437 299 454 309]/Border[0 0 0]/H/N>> endobj 15343 0 obj <>/P 7932 0 R/Type/Annot/A 43325 0 R/Subtype/Link/Rect[455 299 469 308]/Border[0 0 0]/H/N>> endobj 15344 0 obj <>/P 7932 0 R/Type/Annot/A 43281 0 R/Subtype/Link/Rect[471 299 483 308]/Border[0 0 0]/H/N>> endobj 15345 0 obj <>/P 7932 0 R/Type/Annot/A 43238 0 R/Subtype/Link/Rect[378 249 391 259]/Border[0 0 0]/H/N>> endobj 15346 0 obj <>/P 7932 0 R/Type/Annot/A 43185 0 R/Subtype/Link/Rect[391 249 401 258]/Border[0 0 0]/H/N>> endobj 15347 0 obj <>/P 7932 0 R/Type/Annot/A 43165 0 R/Subtype/Link/Rect[403 249 413 258]/Border[0 0 0]/H/N>> endobj 15348 0 obj <>/P 7932 0 R/Type/Annot/A 43130 0 R/Subtype/Link/Rect[415 249 429 258]/Border[0 0 0]/H/N>> endobj 15349 0 obj <>/P 7932 0 R/Type/Annot/A 43099 0 R/Subtype/Link/Rect[431 249 445 258]/Border[0 0 0]/H/N>> endobj 15350 0 obj <>/P 7932 0 R/Type/Annot/A 43047 0 R/Subtype/Link/Rect[447 249 459 258]/Border[0 0 0]/H/N>> endobj 15351 0 obj <>/P 7932 0 R/Type/Annot/A 43000 0 R/Subtype/Link/Rect[411 239 428 249]/Border[0 0 0]/H/N>> endobj 15352 0 obj <>/P 7932 0 R/Type/Annot/A 42980 0 R/Subtype/Link/Rect[429 239 441 248]/Border[0 0 0]/H/N>> endobj 15353 0 obj <>/P 7932 0 R/Type/Annot/A 42931 0 R/Subtype/Link/Rect[411 229 417 238]/Border[0 0 0]/H/N>> endobj 15354 0 obj <>/P 7932 0 R/Type/Annot/A 42913 0 R/Subtype/Link/Rect[419 229 425 238]/Border[0 0 0]/H/N>> endobj 15355 0 obj <>/P 7932 0 R/Type/Annot/A 42865 0 R/Subtype/Link/Rect[427 229 437 238]/Border[0 0 0]/H/N>> endobj 15356 0 obj <>/P 7932 0 R/Type/Annot/A 42843 0 R/Subtype/Link/Rect[439 229 449 238]/Border[0 0 0]/H/N>> endobj 15357 0 obj <>/P 7932 0 R/Type/Annot/A 15394 0 R/Subtype/Link/Rect[451 229 461 238]/Border[0 0 0]/H/N>> endobj 15358 0 obj <>/P 7932 0 R/Type/Annot/A 42758 0 R/Subtype/Link/Rect[463 229 473 238]/Border[0 0 0]/H/N>> endobj 15359 0 obj <>/P 7932 0 R/Type/Annot/A 42725 0 R/Subtype/Link/Rect[475 229 485 238]/Border[0 0 0]/H/N>> endobj 15360 0 obj <>/P 7932 0 R/Type/Annot/A 42684 0 R/Subtype/Link/Rect[487 229 500 239]/Border[0 0 0]/H/N>> endobj 15361 0 obj <>/P 7932 0 R/Type/Annot/A 42650 0 R/Subtype/Link/Rect[500 229 510 238]/Border[0 0 0]/H/N>> endobj 15362 0 obj <>/P 7932 0 R/Type/Annot/A 42602 0 R/Subtype/Link/Rect[359 219 369 228]/Border[0 0 0]/H/N>> endobj 15363 0 obj <>/P 7932 0 R/Type/Annot/A 42572 0 R/Subtype/Link/Rect[371 219 385 228]/Border[0 0 0]/H/N>> endobj 15364 0 obj <>/P 7932 0 R/Type/Annot/A 42544 0 R/Subtype/Link/Rect[387 219 401 228]/Border[0 0 0]/H/N>> endobj 15365 0 obj <>/P 7932 0 R/Type/Annot/A 42497 0 R/Subtype/Link/Rect[403 219 417 228]/Border[0 0 0]/H/N>> endobj 15366 0 obj <>/P 7932 0 R/Type/Annot/A 42463 0 R/Subtype/Link/Rect[419 219 436 229]/Border[0 0 0]/H/N>> endobj 15367 0 obj <>/P 7932 0 R/Type/Annot/A 42408 0 R/Subtype/Link/Rect[437 219 451 228]/Border[0 0 0]/H/N>> endobj 15368 0 obj <>/P 7932 0 R/Type/Annot/A 42378 0 R/Subtype/Link/Rect[453 219 467 228]/Border[0 0 0]/H/N>> endobj 15369 0 obj <>/P 7932 0 R/Type/Annot/A 16137 0 R/Subtype/Link/Rect[469 219 483 228]/Border[0 0 0]/H/N>> endobj 15370 0 obj <>/P 7932 0 R/Type/Annot/A 42319 0 R/Subtype/Link/Rect[485 219 499 228]/Border[0 0 0]/H/N>> endobj 15371 0 obj <>/P 7932 0 R/Type/Annot/A 42254 0 R/Subtype/Link/Rect[501 219 515 228]/Border[0 0 0]/H/N>> endobj 15372 0 obj <>/P 7932 0 R/Type/Annot/A 42233 0 R/Subtype/Link/Rect[359 209 373 218]/Border[0 0 0]/H/N>> endobj 15373 0 obj <>/P 7932 0 R/Type/Annot/A 42188 0 R/Subtype/Link/Rect[375 209 389 218]/Border[0 0 0]/H/N>> endobj 15374 0 obj <>/P 7932 0 R/Type/Annot/A 42139 0 R/Subtype/Link/Rect[391 209 405 218]/Border[0 0 0]/H/N>> endobj 15375 0 obj <>/P 7932 0 R/Type/Annot/A 42864 0 R/Subtype/Link/Rect[407 209 419 218]/Border[0 0 0]/H/N>> endobj 15376 0 obj <>/P 7932 0 R/Type/Annot/A 15415 0 R/Subtype/Link/Rect[373 199 385 208]/Border[0 0 0]/H/N>> endobj 15377 0 obj <>/P 7932 0 R/Type/Annot/A 42363 0 R/Subtype/Link/Rect[454 189 462 198]/Border[0 0 0]/H/N>> endobj 15378 0 obj <>/P 7932 0 R/Type/Annot/A 41970 0 R/Subtype/Link/Rect[473 179 481 188]/Border[0 0 0]/H/N>> endobj 15379 0 obj <>/P 7932 0 R/Type/Annot/A 15408 0 R/Subtype/Link/Rect[478 169 490 178]/Border[0 0 0]/H/N>> endobj 15380 0 obj <>/P 7932 0 R/Type/Annot/A 15405 0 R/Subtype/Link/Rect[444 159 456 168]/Border[0 0 0]/H/N>> endobj 15381 0 obj <>/P 7932 0 R/Type/Annot/A 41857 0 R/Subtype/Link/Rect[444 149 457 159]/Border[0 0 0]/H/N>> endobj 15382 0 obj <>/P 7932 0 R/Type/Annot/A 41791 0 R/Subtype/Link/Rect[457 149 465 158]/Border[0 0 0]/H/N>> endobj 15383 0 obj <>/P 7932 0 R/Type/Annot/A 41740 0 R/Subtype/Link/Rect[181 668 198 677]/Border[0 0 0]/H/N>> endobj 15384 0 obj <>/P 7932 0 R/Type/Annot/A 41691 0 R/Subtype/Link/Rect[392 548 406 557]/Border[0 0 0]/H/N>> endobj 15385 0 obj <>/P 7932 0 R/Type/Annot/A 41655 0 R/Subtype/Link/Rect[490 258 502 267]/Border[0 0 0]/H/N>> endobj 15386 0 obj <>/P 7932 0 R/Type/Annot/A 41614 0 R/Subtype/Link/Rect[359 248 376 257]/Border[0 0 0]/H/N>> endobj 15387 0 obj <>/P 7932 0 R/Type/Annot/A 41564 0 R/Subtype/Link/Rect[373 228 390 237]/Border[0 0 0]/H/N>> endobj 15388 0 obj <>/P 7932 0 R/Type/Annot/A 41526 0 R/Subtype/Link/Rect[392 228 409 237]/Border[0 0 0]/H/N>> endobj 15389 0 obj <>/P 7932 0 R/Type/Annot/A 41491 0 R/Subtype/Link/Rect[166 208 181 217]/Border[0 0 0]/H/N>> endobj 15390 0 obj <>/P 7932 0 R/Type/Annot/A 41450 0 R/Subtype/Link/Rect[183 208 200 217]/Border[0 0 0]/H/N>> endobj 15391 0 obj <> endobj 15392 0 obj <> endobj 15393 0 obj <> endobj 15394 0 obj <> endobj 15395 0 obj <> endobj 15396 0 obj <> endobj 15397 0 obj <> endobj 15398 0 obj <> endobj 15399 0 obj <> endobj 15400 0 obj <> endobj 15401 0 obj <> endobj 15402 0 obj <> endobj 15403 0 obj <> endobj 15404 0 obj <> endobj 15405 0 obj <> endobj 15406 0 obj <> endobj 15407 0 obj <> endobj 15408 0 obj <> endobj 15409 0 obj <> endobj 15410 0 obj <> endobj 15411 0 obj <> endobj 15412 0 obj <> endobj 15413 0 obj <> endobj 15414 0 obj <> endobj 15415 0 obj <> endobj 15416 0 obj <> endobj 15417 0 obj <> endobj 15418 0 obj <> endobj 15419 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15420 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15421 0 obj <> endobj 15422 0 obj <> endobj 15423 0 obj <> endobj 15424 0 obj <> endobj 15425 0 obj <> stream q /X1 Do Q q endstream endobj 15426 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15427 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15428 0 obj <> stream HWk۶_2KEfs$hh\@6dV-m$wEh|8<3!Gw1駻߿IoG#*R*c8+yyWѧHѸ?Ա}wƾ㾉}dFw[4>F&!%Č RSl0f'4eYJg/o5\ 9jW *ܲ$5_7_fiQezU0bjLsx◘w >ğxG) 0)q>F212HC @O|( QO2s4$,`,`<`<`<`/"`/"`!쳀}> <`#}/¾"`_"ˀ}/a/ah"}!}}BT4*d4*di>P-CT4 a!}BT4 a!}T>@!}T>Bej}>Bej}F!2DqDOBPj}F}F}>Bj}F!rDPj}F!rDOj9Z(DOj9ZߧQ@QZߧQ@Q(}Z"iT QӨӨZߧQ@Q(}Z Q(}Zi>P@Ti>P@T4 aV }BT4 aV }T+S!}}BT4*d4*d/S) [)zi}(1~xP&Z&]A 7љuu{tƮt9x{sV$JI }>|7QN )F+eEli{>){A^!"uSʐD@w3&b;8vi ]_5-uDw26) ӱF{mڅcdf]i0j<3鬭rwol[q@6 zObt!Owa?3Y Q@HuKKL\H}Ũۍ9'`V,W+v \eEb! 40Z]<#:U1 욁CȒV 74Yϛ< 6ySIj` r<9n/ZC[B”L_EѸLk,L~TZZ7Egmn:0uJBrUwF7,~G a/-4ۣDA-Qw®+ajolBt^EǰaI^xۦ$3]h S!6eH7rYRX)w 8e.V% :1G;oL!3i OWd>'"9l[d0V 3״+ IQ-rb}0tmU`|(e`j,$.]o@DQLJ,i֪aT'k_tٺAAG66`_Ne^پΧ9`uR3QɆgSa5jT9?;/jD^P*Pzf}NA6Oi$+(`(ni9sz0˗+ `>>x@뛂C<nk0uV{O,d9n|5m)Y߽t `UHLNToUdlplk@y s^FuB!7 Ҁ֡X5Y L.Nt=@L J6TDer^~t1.*|e`>!'m4C^+ fXl띓BRJ ?9띑l|5@f}\VZøJ{$M%n\u8'pFq>=̗k/y|c:܊r&*vctM]|l^Uz?l!..PQdI9ut.ɰW*i-(@S3.@[ rfƫqW|,b>P\N$N~i[EOb(G7/SgRfjU'Ѓ꾾xݥT%jн.Uu6P)niJh&.%QpҌvĜ.ye"e{BmصsҏqlH޲z{d)եʑ;wCK/ H4̾%PAy4eb39Hpu&P\TG^BaksJ I+]Lv_.^7D|cFS7Ni.)0pD-|eKr㒞<&v5tfzw_~|$͌d.*>Ճy#$K:fFK4z2)\Kgz"'T~f%x+D|t*(_ 9^xifȔPPZTf+f:l>  X}8G`zxkY\Ht#AMW-.!)G./j^\a@0 ÀpUƦhFecw_J]~Uo2 ;αWH|K8z_Q(4xǿvT #x2eƻC򆑈IBd^p"VZF%"A Y pPJr`S9݃Qua,6$bxg;zwGOm}{BMjO Uߴo-Q D f kA?"ﺆ%3`r 7CYۘAlBsfӢ K+ 8NH:C?},}dDN'Xp,: σn*S!5E";+-Yw_PX=nѢX(o,z$ G+Y43~8:IgH*3( FkJ^#^=whvo?^W= ~" Z 8z{yc1§eIe`8,f silLrPm=YqdO#cg{/}{$0C">#kyR*"dnēƷh#t2%Eq'֛3./EIsgs/TO MPendstream endobj 15429 0 obj <>/P 1436 0 R/Type/Annot/A 15517 0 R/Subtype/Link/Rect[93.5999985 606.828979 203.496002 626.508972]/Border[0 0 0]/H/N>> endobj 15430 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15431 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15432 0 obj <> stream q /X1 Do Q q endstream endobj 15433 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15434 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15435 0 obj <> stream HmoﯸP,ޗ/E,A ju++R6 TI*rR=3q$r&̜djc<9}{ SgϞ8+[PĿ`֗g/kgVfQTSa^7gj6nVK߿wӺx>,NkWE?2"4Ukt1}5WWk\f77ʶ v_^nfź?  u5(^*/32o#K9X):?(]IU+?Eduj)<&.8ERj٭Z.G;HHz=I!'=$>$} k5I_CI?~ I@o }Kҷ%[HߑHzYKVk‘՚0֢\ą&.L"W5qp\E:rZ.rZIWjM\$=\#W"W5qp\E:rZ.rZIWjM\$=\#WyjM\^kEVkZZt՚HzZOVk"j=ZEZj&.֓Zt՚HzZOVk"j=ZEZj&.֓ڼj&.L"W5qaz k-jM\$=\m W5qp\֢\ErZIWj-jM\$=\m W5qp\֢\ErZIWjm^j&.L"W5qaz weuT_^΋t8ƚU 6M4Up^nVj;wG#sY<;Oͻ޼1~Iȶ-r ^yQ'UUh[^_G#F7e;:یz#u967/EUڭe3~-ܙ:>Z;2p&V`%Xau,W!KkBd%, ,GXXdaƻW|<ϮǫGpIVAGb| O\.uf߼aW١+Kii.`5!X-aj VGX:4k?]ZK,w%, ,GXX-Fɨϼ{2C?m77$ׅ̑qZkC[oVOlfΟj|<. l1IlܟY_Ososhq(h?tOf?퟽ݬ֛v;Oū>l3Uڹ+4ewǓ|O~z RZ X a5jVKX-ZjV:Cd]ee #,,OXX<a` VMX{Gz4YsHﵖ&kd]"ZKݮlYA\m |_CZ`Ð(Qz({ۤ]6m IW6q}^fO35EX}i`EnBBmV* jCUFgZ8q|+`:',KȪO:2sIFFɇz[<݂rNJsբcsKy8}*[ԵnGPNM|j7]_tS$ aA̩=%)uncDߒ\Ǭ6h49, [jES¤NtAPDkd[3KncW#H(?21o+`a{Kt|C-gFJ lVX҃}_`gQal@|UyP<7}i CHb:vKt_#t}< ik6q)F^0r!K@(JHR4mfJaFQpiF?5.)^B8 Eug8`G˩ 蟆5xRVai_6h<8v8/З #Zˍ>Hkʲ>K1`@sP=0-rCy&:-B0c,D5?ᄜ.4 Ȁ3̈́aiTPjnN=&YOB̔ZM f)^.Njoʡ㟗1>kMco<d^uVJ/T;qAP@[SfJQX&34 fߵ?766W?u iԞ:N?j]'e?g^HecNSGfۆ_/5-[rQJ}t(={FҪZ$S5@8,Po6g?-fpAޙ p-PJ\\*i9`p\.N-"wH?]-Zakq]V7O74>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15437 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15438 0 obj <> endobj 15439 0 obj <> endobj 15440 0 obj <> endobj 15441 0 obj <> endobj 15442 0 obj <> stream q /X1 Do Q q endstream endobj 15443 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15444 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15445 0 obj <> stream HWێF}Wa =/X_k<YёH/I{߷fĪR uZ͋7W?xɋ*U??ڔ ^̪ivM[cVkVwVver4VIJ$U*ASir.#҅>,_ޓ]Yw(g iaSl"ž'N[uL^'JJi@)-s %2PN9%1Őŧ,!+,nb{[e1Np{'w̽{ =s}`3}g9s s>}!/Bp_0dK=ˬBK}bR Y=ŀ%b),bRK1d YjZ!KpRkR XBj),=KRK1d YjZKH-Ő%gBj),=KRK1` ,VH-Ő%gBj)OZ!R Y=ŐS XBj),=KRK1d YjZKH-Ő%guBj),=KRK1` ,NH-Ő%guBj),!C ,NH-RK1dqZ!{KH-Ő%gBj),=KRK1` ,^H-Ő%gBj),!C ,^H-ŀ%bܳz!C > Bj),bRK1dqCw_,Jΰ>yL.KZ$HPVT;'v.WWWg?-?Q~(u6uZĶU?5 C^<~Oys^]]ҫtnu2_rG{17w3ܤvP )Z]^@fSx?x3hKZqovUovQ_߿Q>.}Ɔ R /P:;\SÆf,9ϱBB 6*ysm} ]L˗/MxsGYǸQwUɣjc׫fxެ⾩rOm3]*Yʩ*CEX- A?m՝J`ؐa S YbZ^L ZiA+0 h ZiVδrA+gZU0B*V)hLJeSE1dq-ZiA0-+hYe-V{!Kb}o-V{!Kb}o-V{!Kb}o-V{!Kb}ŀ%=Ő%hwBS Y{'=Ő%hwBS Y{'=Ő%hwBS Y{'=Ő%hwBS Y{'=Ő%hBS Y\bbX{),AbX{),AbX{),AbX{),AbX),E1` }O1dqRe#/vʨMR p : ›Ku8 dT/H]./=3m 6U} t TW} c˗#x'w2+~;)z,}-Ge00%cB.ucn\rZ:S3/`#Y0鼜 i}Dm*ʹfރK;.o`^8˹h_*.Mu 30MߌU]j px|߶9n^bwۃ7] =R)^y(gys i*fy(x0?Y[xqx2.Xm|Ke⑑%mW8MSn>vjzH_JJ;Pe/;ayvR4pZ}~[u0sS0H" "μ{oNN\.'jۺ{s~PǸ×./>7]5{ABF$MY}cܮVMjn.+$90{SgYtݪO/+9_}Su[8z(s<h,=s(9&1f;*r<LJqB?%WQg&uz3l,iaկ|4j?q=}}wnN?Lntv4 Z-V_sb 6 pg3eؓ_1oszXu~zpßxt̔m llrR2i̭rC./Q-ǮJc׭n,eur5;zy ' ^Ox8ND{~E\ vn8,{ e3X$(ɐ]yng߫L3ivฏiB#8~W=\xG.K^qќ@&~qo+m+zӞMaӂ(78y_FB(,aYYK3Jf Tcѫ*!-'HVwфX=|YwĻKOb=̣餜f|JARJ%W^i˙si%DSJֵ͗9Sp\wJS*#{OWRt.Wkiʡ-4+`qݺSR\󜶇˼4w|K't}H]'-F u57ۛxmu/M2|h\ L^Jk%|8j>T_Te1+r@)-@+-ҪVjU+h5JZjVZ* @+H-:NJ%1fi-ZҪV 2J-{|/1f-{|/1f-{|/1f-{|/1f-{|/1f-{|/1f-{|/1f-{ |/1fi- ^bZ^bZ^bZ^bZ^bZ^bZ^bZ^bZ^bZ^bZ#ĘĘĘĘĘĘĘĘĘ=Ę$6|4Ea2]YU;vf-߭_b AV<}=۟x_"fj־rwW;?~~*٢OwGjsy|W'TZuYqXw\ORUA†/X4~yr\endstream endobj 15446 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15447 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15448 0 obj <> stream q /X1 Do Q q endstream endobj 15449 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15450 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15451 0 obj <> stream HWkF_1ɷ;yu8;N`#XFXƂ(/mtHu+uaiT[SSī_nP_|{{xm2֫(u:*7zUײ·sۮ:CW_Ylʨ>`Pe*M7We1Tm֗6 W&nvC]c9ӟM3Y;_- cm؛Cl"cy/pa?N[uL^By 2kR!Ȓ3^YD9dcBHC_b2H`Qp[ -sw{;c3^pHp1>b#}ǂ1s>'}"OTp2>e3}g{Y#b {Kh-ŐS Y=ŀ%bܳZC R Y{Z+bܳZZ!KpZkR Y{Z+bZK1d YkZ!KpZkR8CwO1` {!R Y{Z'bܳ:Z!KpZR Y{Z'bZK1d YkZ!KpZR XBk),=kZK1d YkZ/b),CwO1dqZ!KpZR Y{Z/bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%gBk),=kZKC {Kh-ŐS Y},*'<WQFmA6]w}l.Tl?vscoכtiWyj>Yj}mn^ 8L`U5RUw_Tgzt%wSjzW5jPգLzBxhbubgtv~+B|*=&8(t|v!͡ݝz_k4uQZz:9`':kwk2ġ~HϨ#c*^M'wJu[ 7/eu6(R"p>vMgBcpb#ȣ[CU}ׯ~4/Lt|7oO_wkC)2.)G)XmӔ%}ExəcӅr#Bz ^*;{45xt 2M:_k#wZbu\6`e^ۅZm_JkOh'tI5! ] kVkɻDWPm7P' {ÄW6IoVj}B*o7/́( 9/:L ߷r r?dž>Us_C IVE7;X;/g 7lQ?#eG~럟>w!d_.}G}`_i_=Sӳ)5u=sRߝm=#, O|np6?]uNt!j}c:aVÍt< R?`ERbFN p,u|N`&Sn`0g?$IWeO"?.r޶zGb>)\m;7julw<ﻪo&mfƴxY,&z޴`>lW~ʻO域ꪨ]5M[ox/NWS3/c5e=É!i"{p)'ƕY|Y=v*M^evӠiRwr?޿2yPL{nS3Φex=T*Ӌ&x*Z1<84>j@%1iWwʋ)veZĀ J?v]Fp 7>AwA[&pD9,CX,ұ%knwϵ`):]rjq nZ'ۏsaf^F.&s@YͮqZyFnVirFosԎ;.] l@i>#/MYdfĺ.:!*yTu5 @ⱛO,( Z!y荪ճ՚ F yP kM7 |fک4%ƹSAsDSI1G "Zd}\^Mܤm«%6\OU_zV)ق ڊi#Z,c&vXSqAs&qީzh5[T=?3r3 LCWH>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15453 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15454 0 obj <> endobj 15455 0 obj <> stream q /X1 Do Q q endstream endobj 15456 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15457 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15458 0 obj <> stream HWko6_2`K(t)=JGW{Hj4g/璼\Sϗ&/!wd̊2TSf:vA>,lޗS\д44U84寷<|ryCP@'IX $7mI6?f81b6yˏ}.]yaW>Mpm)HDpSb,N f #_mCV-@<| Yߧ[nài1P A\Ns \ Y~w.,|!K,W;cx'sO='sO O O O$KO$KO"+O"+O"+O}JO=)>gS3O}F<9>S_ O}A<ӺXpµ.,_p!Wbջ׺k9ZCs-'\b"\b"{k] Yzϵpp!P﹖u1d=rµ.,µ.,BZNŐE\ ׺Xµ.,_p!Wbջ׺kZCs \b"\b"{k] Yzϵpp!PVu1d= µ.,µ.,BZAŐE\+׺XHµ.,_p!Wbջ׺k%ZCs$\b"\b"{k] Yzϵpp!PVu1d=Jµ.,µ.,BZIŐE\+ ׺X(µ.,_p!WbqQ2LߪXMpa"d!HMd>0Mpwf׌مRQ}׺2O;FSԟ04+Mw@it(7]=}| X$Jj)s[Q=m~ `1YN^q"*=,#\M/pzTC=C?)u)֦4_E `mo)堗3Es G!uoƩL,V z釿pyf7Ū簾;,s$лTƗfڅ=0e55cX>L`U !rp֣==*PtovKLk/8a,u+bЍIB NH3P0~8׵jnMs@[mׅFVQWriaGC iUYIǨLV=]9FMnE` cZ~~5]Yg,%;] '1gIĊ"?H1A4D-Ad$&Sll׳s@:;w g,ɎpV2j`Usv=ϏlMɬ$n% ,Yg`$G~}\B"9Biޒ74lF>oysw77W7W7uѿ\'Jiq"ˮm"^W^9-V6P8nSdG^KMIgIǗݫ)1F?t&Li˜3Yp>ͪѧJOXX#]'Fgr9.WIt8,>( ,d&#/-k C$r)niβX8xVM1CC*+z(2|E̝c [EX9,3͓_s*YM\u7 Mۧr4}cagy OO+vE{;aq;<-i<_R`&7ۗ)͗wᅀ$Wc/ zke5ފ OK811[+a#Abv5TvWx"v~XO4_T۞<Ւ@:w!X\yŗx5-xz66ߪ dIþ ~[@dz؊UHe%bz-T^:_I,`ֲ,nm[_ <<&뛗\%t`ڕO8Le98/ 6n:pKԪIM=Ä NC5o&\4f]=O=@{KfH1#<,U44m35˨|wD}_6)*#dؤWqնo`Q婐uHTR8rĊuh5N`J&qØZԀ;%b̟&0c)ל;{d0}*/-Ųuk[ GhG_t92x#2_骷Xpu?1 *D\<%^Ey U"'xkw[ߺfla{m  ,:n]{(ڢ5`(H)}dAF4μyd9lHkмI2-Z"E%kѵjm)wU}_3M`{Q֏˹ H$SWgܟʏ&']*M=0\ْ17n'#ԍP$F;dNzb5+-Ǭ { ||qēdi ǽޯ/dwusF:+x$ M" &˚K̹*&33 ZMd\vqK1.в (˓Ȳf87M73S5U.#\%TT.0`BVgsdio OҔ 2D"$^D%y$Q)и, _*>wX,X%,Rh=_6ku?6lnhP:V,gb>@q'ՋgseBBG}V7iFowOek?4D^}ntLEܟ;f(_H=Zf"*Q`ͤΠ\D)K'jMwUޫ (H]\]ޯ_)ܵ,X[/DYHe;(;BkBu^E(ԛ_Xvl"&ƙoZ[KfXl_;YiijJܔ%HhUIv9Zw ?屟#Y*DdS3̍9v;K,͆ rjmW2NABl}.lb[g127>̶aZq"!ҵxs{_tn`[endstream endobj 15459 0 obj <>/P 995 0 R/Type/Annot/A 43874 0 R/Subtype/Link/Rect[93.6003036 442.429993 184.404999 462.109009]/Border[0 0 0]/H/N>> endobj 15460 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15461 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15462 0 obj <> endobj 15463 0 obj <> stream q /X1 Do Q q endstream endobj 15464 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15465 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15466 0 obj <> stream HWko_ 'm $o"iZ-`-36ewfI ytfr?x럅?WeSV¤yfRŮJ+DDZ$gTr_?VT]:9B6yLΖo#X~L %[HM\~F$0~# $>?E GI(x: 'b YaQJ),ͨבzͨבzè7zè7zè7z˨z˨zǨwzǨwzǨwQE3F}y>gQG F}/E3}3#*ƴ$q-ŐR Yz!+VO1`1k5Z!QV3R Yȵq-ŐŨ\R Xk),F}Z͸bbGՌk),ƵC>rf\K1d1#jƵ$q-ŐR Yz!+VO1`1k Z!Q0R Yȵq-ŐŨ\kR Xk),F}ZøbbG5k),ƵC>ra\K1d1#Ƶ$q-ŐR Yz!+VO1`1k-Z!Q2R Yȵq-ŐŨ\kR Xk),F}Z˸bbGk),ƵC>re\K1d1#ZƵ$q-ŐR Yz!)HWLRX*U{oUmVd: 7jxw=io4|Ba>>cvC Vѥ9_x,F,\( [W29[.)"k,3V,7?߼9Y~ *saGB<ֻm IK84Nҁ 2}m?`l~t?dt?*2$1&뻷-wWW0[YLlߔ,le6e+l!d#ߝ- }bgguMy9b[RƔa1e?2F< ߛrޥ|71ӳ벽n.n.tss,] w»t89S)Oy:My:;sg|w(ͻ_~֝R=[a6͠efˮbm6U?mL8;;P]`X-f9Tluc5[n5TrzJrAvUjEXlʺyq;s݄r/`W77a m?#|w#6fY Q( H"ӜF^Y`5cKɴqGpӕgqĨ:h`?:0؀6=3;:ɿVtHe*pBսx??jUcC ML,"ՅN=]FI<卥Mx=j?Amwۙm NpN] Qiq%6AhR/5 D;Ta;lGn];LT@Ԭ :mp]5G ޮy,wuy~=@COC+|MƜecRiw/gѤXb=^priį pPBpYyXS(8-;u .m[ò^_ִ2-vLSJy +9q#]ŋ ze*rN,̴`lw%.nD`si :!ŸRk1xUe~wB:Q<סT=v:?C1[(&|# 3?"21Y1kVnP:ᖝˇ'WR8.BzqiMè>9浨w\=5 \Q6ͧ[>95^PknOx {GȂZe!m:=mqEɲ=)G:Yj'1QmxG:+eLiHEED!B5AI0,=rfXXKCǷ‰ڠwJB ]ʱG6.HN~$h7n2&Rjډᬛ rψI+(T5Z:RNf5(HGGEo%Pa@#{S_SUпTA.3yO-2{"X=滽 ]yS4"F.- űjEW^[_n_T[M%T0ў쵻NhRe:R_-!!!х͸g~jJǯ\!jPk s۲yo+v,oi| ½i̩ KUKkqdIw>/P 699 0 R/Type/Annot/A 18606 0 R/Subtype/Link/Rect[93.5998993 218.251007 323.653992 237.931]/Border[0 0 0]/H/N>> endobj 15468 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15469 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15470 0 obj <> stream q /X1 Do Q q endstream endobj 15471 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15472 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15473 0 obj <> stream H|oHƿSңEHPWD8!5KܜkN~3vihggg,V=z4;;9}z(:^Ī4q:XՔ_ŪRm^f}Tmjhܪѳ"U*&1*W9TT.&岭nj5=LLūh[U,0^g#'E9->́wh4^wOWeVsA>7 &~$OqEd@E/#bΠGJ]7j%d2Dy:yɹ''8ftTWsecO5pY2z+[Fz@g^>>0 F Oѧ}S>e@2L}&g>sF ,Zm"+jTZS ]jRK5t ,VH-%гZ!TZKgBj. R ]=KRK5t ,VH-%jYjZKgBjZS \Bj.NO5tqzKH-%г:!TC@RR \Bj. zZ'jRK5t ,NH-%г:!TZKguBj. &Bj.NO5p 8=.!TC@RR ]=KRK5p zZ/jYjZKH-%гz!TC@RR \Bj. zZ/j(8=%jTCu^suѬ(b*{UIjS&TWj>OVeؔ걺mէ-U|:Ǐo~ ߾N?Vg* NzWMYv_tcK`emb?[IL0[l&N1ba2a=!Ku>8{7TcoJRǮm)B&S;`C)G-ntp^cwOoE[-j%LС-ƞC|ʽ>:_9ϼ0ei٪UwzgL`Qݭ}Oݏ7.8͵_uvW?Q{Qu?A 0b!bb1"[cx :uVwOڸqVqn]?YP[^/u$8Y.5|һwC,Vzw ң V;a>?}ǩzVUÙsWu;pH1}6F v3YnOkAk2 ͈mv-n ĻwNB1fiZCE{H`@fVн/?Cc89jDm{ k;G[zO:.ᤌ:o~??}wiwxWE<d#KvḴb@ǮZmyw3q8~lǻ Kݶ~7Q߾aE$CE 0endstream endobj 15474 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15475 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15476 0 obj <> endobj 15477 0 obj <> stream q /X1 Do Q q endstream endobj 15478 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15479 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15480 0 obj <> stream HWێ8}W[-^t l.3LC Բ+^YNOV-dDWbu ^;ׯ߼{7&+#\GYD>6@Fֻrh~o]7zJMp'%7v%B&( H, Q"sL 3KTI$OOCٮqU%N$8CwyT(y| oՍJcЗշՇSh v[>u?$~TuH'!c, |ZN#q}Pd . > kDmQQĆAQR Pa' c0}ʰO=)>g c13}ư<9> c_0 }4+R>Pj Q>{jZjCϞ峧6@16D1=*FԆ(ZŨŨŰTRjZjZjCSbTKmb{Uj Pj Q {OQ-!aV1}R|(FԆ(=!gOmbTKmb{Ռj Q {OQ-Q-!aV36D1=jF(FԆ(ZͨŰTRRj5ZjCSfTKm06D Pj Q>{jCϞŨŰTkRj ZjZjCSaTKmb{5j Pj Q {OQ-!a06@16D1=FԆ(ZèA¨峧6@16D Q>"*ˆ }fܮ_FH2vHUDHBlM"n8|rhv9~0n.γaFge&3>7W27uߴߝ,'x*aꦹa{2]ԅ'R V?.NGzd&(󥉕2Q2snm|ǣQlAj vKLfw+Z炾^4QCϢ*w;׋;42r/Xϋ+Fr EGѴūðnhZB:4p܎׻?'F2"<򤔁ƲX^,v\E | ]g= GcA{b˥_/2),#㿠UCv $u[!B5c:S͠se팚fsYP6Sc2[+48c)a}w{\ظ*/ȞŐr&͕E4iKzxv߱yl^X0nhHH հt4{ǣY:E~1.jjK R AM{ƬHT]nTsC$~3Ϋ$ɣ8 *Q~<, 8$9w:ۧ9S \˙2ឯc:e[/K[bTels;:dsw|géP)ݎ 5ew\|$N,$+"(uzy(aw%əZ+3zv9Y`[E2pN69QYqV=rQFojWrAa뀵vql7X,we':& HlfmٗTU,wS7+Hx\qi-lNʥM<(IN =,E׶;RqPMKw? kw:ǹ,uT@ #O%,ԃՖ%Q[sU׵G(klɋ5> jߛ)i>6m}*5qL .7\^8l7:v!#nXNﳙCn"M}ᰁ4 CEGI;z0*r)m8We.^0m맙k(-PQӘMQdD7UJ8'6Sms+V>vwkyXaC|&3E|^(FQaQ28 I_.Y BhN'QY=~qy݊P=.O' Ki Vǧ{P,*BXڠLiik՗Y #);h:0SMeu8*2.=2l"Ѓِ(0='zvp5&X&"fFsp|mZBo}0!Lx3V p/45O#5$iq}jd}׋kˎpdCviUʫvU,alޣ9j `ܼra,#ɨ v*"Sכe[EߝI^7N88:2iykf~^F_ӡ:![nG-u2ogQL8{v e} Q`|D} P>/P 616 0 R/Type/Annot/A 17520 0 R/Subtype/Link/Rect[93.5994034 484.570007 313.643005 504.25]/Border[0 0 0]/H/N>> endobj 15482 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15483 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15484 0 obj <> endobj 15485 0 obj <> endobj 15486 0 obj <> endobj 15487 0 obj <> stream q /X1 Do Q q endstream endobj 15488 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15489 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15490 0 obj <> stream H|Wێ8}GVKb0@ :3ޝt(2V#-$^ʇCNX駻ޑw N¸ ?MYR, "tAD$C4T?釺PWd_i ]AD $Y]lxnw]bx=tNN"ciWbhs߷+wϻs$caѥ@űr|=}PaO=aO= a< a< a< >'cccc"S}O=>gc!3}=9>c_ =ƈh]_PDO|Pj]D]D]պ>B{j]D!=RDPj]D!=RDOj)Z(DOj)Z'Q{OQZ'Q{OQ(ZCT$gII Q(ZIS-CTIS-CT$ a節!u}BT$ a節!u}Tպ>@!u}Tպ>B{ej]_$j]D]պ>ٻ>ٻ>@!u}T u}T u}BT$ a6AT$ a6ATISmISm Q(Q(QkI Q((}E̪ ]A)?4 FҴ 6ӑlotSxF~}( Bi1Q6|?ovﷻo끣)#zwkҰB(4Q b0ֱQO/6~YhvPgzz/~d,UqA=(XUSC1t˙%NMlQtzNҒ 8YLsT^Ӑ|O?&OD Ѳ`^ӱuM ZUMe.Ʊ||x0wxeL2)A"-[6s)[5zXV>lSߍZhx7 $y=NyPr RD!j5cŀ&.0آ>]$xtZC)%FLqFQDgձĞQ`VI,ŋ"L4;ɰa FQ4M)STǮqadLQV޼$*mJj*װluM@ ]VyN͋,^CH6῱ȣ0)}ytl |S`('1\[#L]t}wOZUzc"Lב:j4 ˲_[csɲ*wG=.W31q+5sD9!-w)>c:@WNn"^&y(OCb5 \4POGըdsv&m}x!]ea6{N47׋ψ"u2X'vnzJzŠꦞ^p k@ ҫ%c,-})їz!k1/"'Iꗬos?TA[fﯞA؛!X_tʮTl__͈*TM42E]=KhTzK `IIM51` 2OK\U'HyY,[,*:Qrң, }T^t0_sPCY( y{<1+55\zҕꀍB1  icpp-8|Yϊl\ qxxl\\=p;c,E+ZĥKL+RFU?}X++H[Z]c&nj.Ly߹UF2f'(A8"pREZIDtkNf"·Dc v0пtTt"މ*p$`-SdeVDE e^(RI vͩܧa6b>B ~[OJv}?Mxc6Vck7i_ 5l!U^ Q ]L{زK>MzHʧ^ݸeBs:_4jiM>{oV;J+x {\hW1b%=rMY\"~^O  X5'yv:AL7A פ*J-~vKhk[W Gp1s ~kp_̽XasTLZbi e#.ƄEUsI uW$dbWrй9*PI\&m2-_`V)Jƽ }~ǁ>X owvdL!/pxg\=~zڞRm Sx`/`&6ް7㣸w/J Q"q?=b~/ ȳWjH0wP.\x'רRz {v ͬa⁅6cٹ]q$M/=r +,h2"CsI?E""q}&||!o> ԫ!\ n EfSƭ4ƳK$2Nd _=Q>R"[9y.Q`L2 g3` Z+dAQ]dAU2Feyc~f7^#rm{/iSu %ݚ|tnkAԡ,Kі6v׵?6v`/T4Qa3u׮QԎ՟v(S`h*x`&ƶ)2. [nצFjFlhЉlbojG$jQū7$wZHZTUHEH#:bX<\έJW12 (5@QAT!]}n`^U6 ~^~PY@VQ*" ' 1KUhR8Z>)9Xä́r`KOw{ӆG/+sF:ٿ .//^DUYQfFY*"%>зx6,[-XQ$KWްqߍ;j Za[nR]Ƀ>d5wMz~,#Ňyܟ?@zUVER ԮJ׎Ҋ}]zOIUTΛӪDTxVK1Nݞ]c=zJVڷap\=;]8t_w`lb endstream endobj 15491 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15492 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15493 0 obj <> stream q /X1 Do Q q endstream endobj 15494 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15495 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15496 0 obj <> stream HWkoܸ__f SA@RlhH;T^JF"8EHLj8P @}O > ԧ4P"@Aԛ@Ai}ZP qYV,+TcB\c\+e! ĵ>,ĵ>fYqY>p@\cB\c\+e! ĵ>,ĵ>fYqY>p@\cU$e} Xk}̲B>fYzZ,D}Z, QV"1`!1Bk}̲k%ZZ,D}Z, QV"1`!1Bk}̲k%Z",+TcB\c1 e!*ĵ>fY q qY>pB\c\e!*ĵ>fY q qY>pB\c\Xiĵ>fYzZPYVPc" -^Undw/$ UFPMvRu@a6=w>:~0UKեi¤Y(d3UT.{^e[$cԤj&ՇKJʕxG\ʢ41<{|}؃q]^1ʌ3v_:,%M2n6Ro9پmʢk|ڢ9uUuQO?Y^ڽcWygvn"vǦ\4Dʤ5 ky答q}ߛa$xܯeQ}79YSc+G,//Yeù/?bP;T 1n6MeeH[st/5λcUqл}ˊ2+7c1}Q?L3 o9z/:uko;ze^-\dU!)OvlYqfllȻgPl96e^̆Œ$(8K[5%$.Mlc2:SW GLyU:`ϻ[Rk싛_vslV`#mqo~ެy^8A ?^W`H`AwYK  1C9n< J"i*ܵZ &cSG]MLs(+E96G Nجph44%z*!n:XB 鳽~J[i>(:XON9>v,;їp%/y<&**M.cXL̢8G xO$Yiػڵy2|jۜ]~Ķ߁򉐹甴&x ">G6V $֪|2NwnpSe´)(n~.O}˄S%!,:1SM+"5x%v28X-7pCeYyGKʘ8]NrNGH$XS-6BK$je䳜.E$4|L._}"d RzP68'm%V9 wMKb zumض% H[ OeXt\,*bօXVTº(KȦ-]2a}squA P"gRpdb}dbʯW 4q-Cf3qLR{< /{@ "rM,9hH-H)bmaAӐb~oġ! ]!ū Lj3=_:(4_f* /nfYɂc]!CENӔjeCGp/Z64tdS:z@cpJ8~1(İ͗^H8 2|"U9{(ٚ/d&^4dK7}G^HDfIB'酘1ĝZ)?bBr0U۸ E+>)@ H\$1 \$֞(-cˁ+j!%d= 5UӍ ,H"v~ iK0 -R4`m}2XͱufƒWǔ؎^5Fd8 Y.թt X.*JTU2P?άޘsѝO92AvX:65;u&QڮNN"VbRdҹDǣ*sH<2)$VPlpQC!vkh(@lD"—iRḻ.ݖ Zw%us?n~4͏F䭽v.v򂺬\A,b ב~ȎԑxH>/P 450 0 R/Type/Annot/A 43616 0 R/Subtype/Link/Rect[129.600006 663.229004 451.127991 682.908997]/Border[0 0 0]/H/N>> endobj 15498 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15499 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15500 0 obj <> stream q /X1 Do Q q endstream endobj 15501 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15502 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15503 0 obj <> stream Hmo8S9">聹@]6Ixm%uٮmoƲEJHE8: % /^{=|_(&ҏ#釂3#[x83d=LaYOz~HJYziX$`iA$:Jn1ĸ}b\_E .G7$1X?V$|pZeƸ ?q5npjڈNsxמ_v9`3i"y枎ӡh@v )w9;.eŐ ι+ގ%Q/Q/ Q/ Q/ QQQCG}H!>tGQ#G}L1>vDŽQG}BOPPxc'1\v (µv )WCUoǀ"\kǐ";kRzǵppCPVcH µv (µv )BZA֎!Ew\+11kZ;q \krOcHPkRz;ގE֎!Ew\+ 1k%Z;Z;q$\kǐ";kPkRzǵpCPVc@cHJµv )BZI֎"\kǐr11\v )WpCPVcH*µv (µv )BZE֎!Ew\11kZ;q"\kǀ"\kǐ";UkRzǵp˽pCUoǀ"\kǐr1\Z+{z'i*g靗l Bb`efG _>opı2ȿ͊,__١EޔR6`q҇IL _`Xn%z٦=<߯lD _GN&q؜r(5+l6_dM[L7z(8t۷m,,[o[[PAnaݲeAH8bS<ݐդҜ:)D7jsăc_Ր,-ZVQcsWd H,bO?6'bRtgTc $UʶVfʇ˜T#N3{s:2H)>n<>cvJ~O?7TTK8)'jw/b)1-w?ާwu! ݮ/ iN|GjܿZ@]C(l[LK?=E? WYIvxLM@7Y X⏧ `P9\$9Xԏ qkTLg?+kdJ>z1}В?zՈezmwW/3Yr`f8PzmwW/3])Z 蟨^a5zW"+_SIԫ|2n_yuOkӷXWŪ#A%aH=dlm Ǯ1O:OG߫86xÇbW Cuf)֏ӂyG+Wźe;"D <~kAOO'bٍk8z4st=wہ3E'w0Rr|>j瓖u6MB3:{ zjƽ C:3uKOa8nPRgZ{8Jj`UaaB#ޭۆ:ӮHO$c:Y^_5nd+8M45).ϽJ=Thꊤζ 5#dq11cM$P28ո%7ՙv<<~j`U9x{nxMd7ф1[-Rg.o_> -.ogtr0FPVW|q϶E ?lA5\e3V2:DsWg×moe}kмWg|^ٴjq-Ttx兰xc_`U :^]UT;վpk_`98k^)o|s?-:Zߘۮ糃-T55tDPCڗ[8fqj߿Δ=ngVŀc }\7!a; 9P۩Aj鈼KUigmW dțG{?Y8^ -5sQ#n8GTX>!߷l?G?Cf=^B ϡ%dJ7=jrcF/;sJҚ 2%x(e{7rzËsHendstream endobj 15504 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15505 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15506 0 obj <> endobj 15507 0 obj <> endobj 15508 0 obj <> endobj 15509 0 obj <> endobj 15510 0 obj <> stream q /X1 Do Q q endstream endobj 15511 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15512 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15513 0 obj <> stream HW]o6}ׯiKEMRtlb=>8A!k8%#i*ix^~h4C^E!yHC^^ S!|}WB*L$gis"Y:䏴K1i&jj~MӡInc㘼['k'Ki& R*3-2]NSw UW_֟Nd!JcV_v-,'P^'4?&K KSBO_KnD03pVg'w!Gph#RV<\Ҙ`%VX|!Y!Y#y#y#y^ E^ E^"e^"e^"e>GQG D}/E@Q_FKD}WzWȳ1m C\b1`! 1ÊՇaC XkC̰k3,D}Z6Ā6 Q! 1BGekC XkC̰k3,D}Z6Ā6 Q! 1BGekCM83X} qmV> +VbB\b\׆a!#rĵ!,ĵ!fXȵqm>r-G\bB\b\׆a!#rĵ!,ĵ!fXȵqm>r-G\bm"׆aC XkC̰b!fX3,D}Z6 QV 1`! 1BGkC̰k3,D}Z6 QV 1`! 1BGkC̰kk6 +VbB\b1Ê+iºMޭ54]oY)yuܯƗqmzuSU]. i˦^}Y: .FW\~i]p}Ʌ읮6ק a$e9zw[Nss=amI鴫p`* Ӊߌ0WnwrHvjtm5\z_Fq/Sj5j=tzqKfJcwo:)gݫqZtu8Y럡+}e7>T9w`6F1hk:}FfAᢝ8Bo(y!ʗqV$zAdSؐ,XfUC3׻HaW^OzpH;Y C TQb3uU2oo$ˋXN3A$uBҳnKwFr%aaeI/[VYREgT,Ս ")%KZKƷ f[6BpLW%)bs۷QILm`\glΏoAi8%>l]' *R.&/  YL f~,deА|)Gw gYdYjN4״T&zͩMOnrg( t`p1vam?N~ wOXu.z޽?7Agl|ik3(8ɥIql}3R)7E=q]&8Povo҂+I 6 (,n(0K*аdlM0oLpe+j=t3-a8:VAsG~x$g^wޖ26u嫓}mB?˼UDbKX5pպ ܚgj3Fon!8Wg"A|e&9F{bЍҭ$w O{޹ДfvB(+Gl|gϾN5>B? %d[gT+ӁJJ7]_7؝Q5PEc?m Em75CX=U;z0+s#4]T cخwpwI77LuULpS!, qX;{먻u?1t ~k%\'~8]2ceN6{ 4kO]̉hݩ]鴿h$CRG0>]ϺMD&*# [@O"U"KZFTDXg!~ƫ+! >tAtW,V3K{9k]7&ՃW&Du5ݗ4yAi%|YJۚ&# PqNg8<y[&X7/d),GQ̟j,:èLEV ld];ku@f 7Q GnEX~+('xO>%g}\W(b 6aLe.ݷrw:\3z6S5A33[VlKD0yvU%,|uu {~_+csq=:7r|FMWω=^nTYҋ2uγqf;w3il7}a?[%-wqںE*m܈| h5#i$V,E==ȶ +[%qȑdYJ\LM8Cΐ||E@sf4aJH\s  Uq(ɖ?7D/Dh`ɶP K2٫q)hA*h kƺ+bp->?GI뾭,]6|K(:ْ:8Tql&f5$npIB`Az2%7,YIw W-fsyxC,M UPyYLݦsEn~h\9VRʻlWT xₙ֋מ'8ᔟG4U)GXf2}'TF*)dx2(*9XF-5-nmlMC7m'-bߤA/OPHy)G-H/6{5j0|[12*m/hcpbd;=~Ǡ%f_J}*RoP`,6p\ߗp&P#۹~c)$XD"x,0I2xp2PC pv@c 9:sg^Ӽ6FS{4m1n˸afƩL1Aqjo.חmg6z+ oPEչ pc;о5U8wjt8: Z1vsbLbDy7\.l1T9, @:3X HM>bq?ꁥ,E:+2*(0Z͆I_o :DǂmQO4>KPɦ^c6#ͰZOFLYt:phC X8,%=} endstream endobj 15514 0 obj <>/P 1144 0 R/Type/Annot/A 18799 0 R/Subtype/Link/Rect[93.5997009 316.428986 184.404007 336.109009]/Border[0 0 0]/H/N>> endobj 15515 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15516 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15517 0 obj <> endobj 15518 0 obj <> stream q /X1 Do Q q endstream endobj 15519 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15520 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15521 0 obj <> stream HWkoV_qU846$ =~KgϞ|hBFQYjĨ~Wm@Fjh/ˮYCTǯΌep\K*A7U 8W"8G=iDz;_, k5yb8 7}=|]vYkڡ&园lefOGi~{Zy-UX~?oETP42sz]EvgApN!9 Lj%gi-Y #VXܻ<<F7-po{ [VwpOOOOO τ τ τυυ/ՠ[cĒ9Y#t1bI,Z 5#p/Zk@k9Y#p/Zk@k9F,^րr̳@k9F,^րrXhgrXh{ZZ˱E`Ak9F,cZ1bI#t1{Z Z1bcZ1bcEk-h-< cEk-h-Lj܋ZZyh-Lj܋ZZ [cĒ9Y#t1bI,Z u#p/Z@k9Y#p/Z@k9F,^ցr̳@k9F,^ցrXhgrXh{ZZ˱ErX=< cĒ9F,^}U@C񊪭;@VH'X` -r@ h%B+ZJV*R heB+ZʁV.r hBZ2@K -2@KހslwX;d -{ h{a,r1b-{rϱ%@9F,%ro@9;:D-=D-= D-= D-=D-=D-=D-=D-=XD-=X!8F,1:0-{r1:0-{r1: -{r1: -{r1zZ"cD=h;{;w s%r@9FRcĒZGn%rQQNE R+yP?GJ"r֩q'7/4N˻iԣUu3Dd:F.F(q~#s}3L}u]|KûiudPnEx:g(>4؎+uwu; H_W^_~x4zb8"6)q gU;&Fڷ'ts;&@SOfz{fۭFْ"fg?0WӐ&rq@Ev  ǣ- ԧZUonߚ3M#ڄ z+rDَlzO1WZ,꣖gUͼkU#*[_w_.n];nk.;r=ܣz-PON} oQ3{6lB]󦭯7OMTvt:NJ_Uwj#23cՌ8taQDf ֆk#M;_*x*u\C7Bi.mbTewx) }Usj_}zѫ'ϼ_ _{f#=7WCx#W`lz6\v}H}x˳T|NMn/L|O-;ݏ5Qݏ7|u]hrpMxRf|@J,9#u]oiۼ ~Tv.ӫ~, 1b%rB-'h%B+ZJV*2 heB+ZʁV. Uh\RcĒZ, @K -2@KހsX@KހsX@KހsX@KހsX@KހsX@KހsX@KހsX@KނsXRcr1b-{ r1b-{ r1b-{ r1b-{ r1b-{ r1b-{ r1b-{ r1b-{ r1b-{r1bI-y=LjD=LjD=LjD=LjD=LjD=LjD=LjD=LjD=LjD{Kjq̳@9F,UDEQX^ǥJrQ^qH:5iNW{R.np\b!_`?l.?Dqrqw[uOgĄwDrV}^^E^?e?6m]}*xVֿT]S}yTڼz`<0kþ&:ay3G\r.<6vٮƯnHձ9SX,\/vƫ|QᏰ ݦEMo\rƱVcjт_]4=ڰsJ[$@zǶ;ta;10cڱ v <'pty{gMIJ#-zt=WZ ׀e=$#|ITAT5Z˜y8w8n]?kt(νi,ܓkBdRe;M}p cʃq 3d)RܠDu[5F$.~L;1Nzx524:6DD2 #_c aPw3$Bט\b'ڭZ_#+J9S`N%zܼMM"%ǒubʾqmhjFgf.<\? lM$ƙÕ2*Yq[4_(.DhBkg64(ܻʐM8ѥ{[Y&(WI0L|e.=-[5;:ڵ[oMqj"Yʆ|). KVXd""ש0[/y K"f>uU(SY!M=ucT(1oRϰyuٗД U#+ /Hi  w Ԍst30CraeSTőV 4ΦYA'6eQm>-'W"Kn׏c+z/mK>-(Aӿ(ʬE̷)%ϡ %;wt>pB*!QNwIlEq8Y{9pev~0- 5P\-+\+uȲ]bCTEv=;@H"F=4I\AOo[emb^E`0BpsS,# |c݌×rXendstream endobj 15522 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15523 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15524 0 obj <> stream q /X1 Do Q q endstream endobj 15525 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15526 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15527 0 obj <> stream HW]sH}ׯ}q@QI*BLxkg+PpD`Yˁ{ogˇӷO:~W7ٳ󓳗*Qϟxyi_m6F?j%&ҪRrYloIlU]nBQ7mb'_G&ITPj,ռf!=XvM]^U˲UGOOfjxzY> Xn7\l@Y?2g'ݦ嵏VCA( \԰בtA+C$: .)'pN XFt֜E0dyEkS XFPoz#7L[ -Sowz;Ac꽠3^Pz/L}*OTP2>c3A}g9S s>S,Z-zKH-ŐS Y\=ŀ%bԳ!CR YzZ#bԳ!Z!KPRkR YzZ#bRK1d YjZ!KPRkRZ!R Y\=ŐS XBj),A=KRK1d YjZKH-Ő%gBj),A=KRK1` ,VH-Ő%gBj),!C ,VH- zKH-ŐS Y\=ŀ%bԳ:!C R YzZ'bԳ:!Z!KPRR YzZ'bRK1d YjZ!KPRRZ!R Y\=Ő%ui.4͒dr~ +!3y\ыyt<ןj~+hb*Ahv^,G/1jP[b4alKOcm͖T͵`m,}:XwsQ=]؀-[Ʋ.n}gNŧ?>v=MD{k{C% cz˹_n<'!v{AѾݐU>\lq_;ys|Ðm.rڻrQWw3׃f|^6qd7۫WonsW dvA?ͲZei4oOgޕlDPրL":R>;\{nmS-Uus.erÑn0dY a5U(Ag's?vSldN MF98y߽8~ƇY\6KU-˺\AժY֝]uk87nR}Vuc} *([brѾc󰯻Ym/)-_UN'jsnw>EEgo'>FPh YHQ/p2O@ɬ_E;<԰y_ޗq`YwMnmkRӵk)ߎSM|6Lr|_ t6lR"؄𽍝M t[kKA6,6b0ctvժ'8Yh-ҩxփ8|v>g=\v 8[v߇CXIZ݌_Y.ܴ T7W+3`w˛N\g:v{<9T;k~9vKؙ)/%WNz2ӰO[xRi6).SU*]_ lد`nZqs~fj.<?p:gp#m o+I< e㉹ksKZy89;̣MXC?b\^ HwoY:$oK(CN.XdL rtC&siz<ԪY6ݛnW |I~k- tE&#eijfWhs]Ó B`_3\v_j _Ik ϷIIeky_d;ofp/ #.%OOfrImKKvq߶ժ<-6 _`'N~7[9\46 \"6$x.x0|[\]os6cOߊut~M1d?ЪwaiS=KQ̂ ᥭ߯Ԯu47Kz+цȐ4[[n'_n֪,w>y"}5V{J[[iحwu! S5!+,V ZB-jygRVjBʄZ 2V+jV.Y VjZ$ŐkQ XZY--ҬjV{!K|oS YB-{#bj1CPZF=Ő%b7),|O1dZS|oS X),|O1d {!K|oS YB-{+bj1[CP ZV=Ő%bw),^b|O1d {!K|S YB-{'bj1;CP ZN=Ő%bw),|O1d {!עS YV6}9%'G$a=݋?byUjMwbeUԲC ICO-8P8 H$TN -ήג'=WXmýHroP,alH.{,jX«cG~(ƯD!JRWYI,}V 6JA.ߓ<S2JO$cij*j0H\.%`B=)mĆd:E(rBg_8-fH9$e|~>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15529 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15530 0 obj <> endobj 15531 0 obj <> stream q /X1 Do Q q endstream endobj 15532 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15533 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15534 0 obj <> stream Hoo6S 2"PH\)EZZuv]9ߌh"HL!!G].߽IEO\&%ҧ2-u^:*o6m"&M.>֛k՗nߴuoI.~R!yJ.VJe30H}aԉ2]Iv\&FnDW?-\R`}ޤE, 'J&*j|D#D4x:Pee21P)^EWfuDzk^G7aMDoz}}c]Dz;E%C_F%C_Fg#Jƴ4&q-*1P11T4@ŸPGUki U }ZŸ@ŸPGUki U }ZŸ@ŸPGUki U }ZŸ@ŸPGUki U }ZŸD31T4*Ƶ4Pȵq-\ȵq-\ȵq-\ȵq-\XƵ4@ŸPbzZCC01T1k ZZCC01T1k ZZCC01T1k ZZCC01T1k Zk˸PbzCULsI n׫bҩLW&Ra!˴(t&2)_g"Xo@ϝAʦ>jn\hM>=SVgmmv$Ak2%TۛWu[mf} 9F\XgdΣ^K(Z%dnC]Q !(au8jeqOٿmP Y X2wӨaRZb1JMo`BMSKÉy뛆eWXr+xd/Dt 0 snØ9`[B Շ~[nqNcE͐3-}bV`#~jR#UiPEŐA9H#yjRTϰ̄1y r3Lu?$DŽSn(unڠ9SXˮr 3.8I}88}0RM&`#{iRW׻}w>fP3XWC`(V3ȡmMW4, S\pEhxt٭>/R!O.>"N)zC2Tcz6k8!91,wMnwfK,q_8z4zZؖM گu~r(gOLжվUa5?pw5sXbT6jU@m~\ε_9-)嬾/rVd|:x/v;Z93q0j 5l0 NẾڧr]E /*HzwSC;j枒pJWSN9%]n>CS62ScH0琝{D/\KĤ}~D)iCfKјdU%ave6nqm> l% &&:*݌ )1w}9u=tU ږ'3Q̌BiW$[,bz3aO ]u='Wނzɿ;PRݰԫ&z; ܙl7&[1'~6npL!F9`逛0pgI Q,r =$gfeuJnP a&r^cki="|ݦˌ4R M ?h~&Pq>%P-|@iv *pk}҅<d1M^?5唝}\˘f9Qd8U GWvp'M/ϋendstream endobj 15535 0 obj <>/P 229 0 R/Type/Annot/A 44090 0 R/Subtype/Link/Rect[154.800003 665.190979 441.019989 677.221008]/Border[0 0 0]/H/N>> endobj 15536 0 obj <>/P 229 0 R/Type/Annot/A 44048 0 R/Subtype/Link/Rect[154.800003 652.190979 370.589996 664.221008]/Border[0 0 0]/H/N>> endobj 15537 0 obj <>/P 229 0 R/Type/Annot/A 44016 0 R/Subtype/Link/Rect[154.800003 639.190979 376.591003 651.221008]/Border[0 0 0]/H/N>> endobj 15538 0 obj <>/P 229 0 R/Type/Annot/A 43975 0 R/Subtype/Link/Rect[154.800003 626.190979 293.240997 638.221008]/Border[0 0 0]/H/N>> endobj 15539 0 obj <>/P 229 0 R/Type/Annot/A 43950 0 R/Subtype/Link/Rect[154.800003 613.190979 349.790985 625.221008]/Border[0 0 0]/H/N>> endobj 15540 0 obj <>/P 229 0 R/Type/Annot/A 16090 0 R/Subtype/Link/Rect[154.800995 600.190979 343.790985 612.221008]/Border[0 0 0]/H/N>> endobj 15541 0 obj <>/P 229 0 R/Type/Annot/A 43864 0 R/Subtype/Link/Rect[154.800995 587.190979 337.790985 599.221008]/Border[0 0 0]/H/N>> endobj 15542 0 obj <>/P 229 0 R/Type/Annot/A 15684 0 R/Subtype/Link/Rect[154.800995 574.190979 430.591003 586.221008]/Border[0 0 0]/H/N>> endobj 15543 0 obj <>/P 229 0 R/Type/Annot/A 15615 0 R/Subtype/Link/Rect[154.800995 561.190979 343.790985 573.221008]/Border[0 0 0]/H/N>> endobj 15544 0 obj <>/P 229 0 R/Type/Annot/A 15580 0 R/Subtype/Link/Rect[154.800995 548.190979 313.791992 560.221008]/Border[0 0 0]/H/N>> endobj 15545 0 obj <>/P 229 0 R/Type/Annot/A 38232 0 R/Subtype/Link/Rect[154.800995 535.190979 319.791992 547.221008]/Border[0 0 0]/H/N>> endobj 15546 0 obj <>/P 229 0 R/Type/Annot/A 15579 0 R/Subtype/Link/Rect[154.800995 509.19101 414.519989 534.221008]/Border[0 0 0]/H/N>> endobj 15547 0 obj <>/P 229 0 R/Type/Annot/A 15578 0 R/Subtype/Link/Rect[154.800995 496.19101 331.791992 508.221008]/Border[0 0 0]/H/N>> endobj 15548 0 obj <>/P 229 0 R/Type/Annot/A 15577 0 R/Subtype/Link/Rect[154.802002 483.19101 329.911011 495.221008]/Border[0 0 0]/H/N>> endobj 15549 0 obj <>/P 229 0 R/Type/Annot/A 43578 0 R/Subtype/Link/Rect[154.802002 470.19101 373.261993 482.221008]/Border[0 0 0]/H/N>> endobj 15550 0 obj <>/P 229 0 R/Type/Annot/A 15576 0 R/Subtype/Link/Rect[154.802002 457.19101 282.962006 469.221008]/Border[0 0 0]/H/N>> endobj 15551 0 obj <>/P 229 0 R/Type/Annot/A 15575 0 R/Subtype/Link/Rect[129.602005 432.490997 487.462006 444.890991]/Border[0 0 0]/H/N>> endobj 15552 0 obj <>/P 229 0 R/Type/Annot/A 15574 0 R/Subtype/Link/Rect[154.802002 414.290985 292.131989 426.321014]/Border[0 0 0]/H/N>> endobj 15553 0 obj <>/P 229 0 R/Type/Annot/A 15573 0 R/Subtype/Link/Rect[154.802002 401.290985 319.362 413.321014]/Border[0 0 0]/H/N>> endobj 15554 0 obj <>/P 229 0 R/Type/Annot/A 43384 0 R/Subtype/Link/Rect[154.802002 388.290985 333.261993 400.321014]/Border[0 0 0]/H/N>> endobj 15555 0 obj <>/P 229 0 R/Type/Annot/A 43348 0 R/Subtype/Link/Rect[154.802002 375.290985 314.911011 387.321014]/Border[0 0 0]/H/N>> endobj 15556 0 obj <>/P 229 0 R/Type/Annot/A 43293 0 R/Subtype/Link/Rect[154.802002 362.290985 328.962006 374.321014]/Border[0 0 0]/H/N>> endobj 15557 0 obj <>/P 229 0 R/Type/Annot/A 43258 0 R/Subtype/Link/Rect[154.802002 349.290985 348.260986 361.320007]/Border[0 0 0]/H/N>> endobj 15558 0 obj <>/P 229 0 R/Type/Annot/A 43205 0 R/Subtype/Link/Rect[154.802002 336.290985 295.071991 348.320007]/Border[0 0 0]/H/N>> endobj 15559 0 obj <>/P 229 0 R/Type/Annot/A 43171 0 R/Subtype/Link/Rect[154.802002 323.290985 350.963013 335.320007]/Border[0 0 0]/H/N>> endobj 15560 0 obj <>/P 229 0 R/Type/Annot/A 43142 0 R/Subtype/Link/Rect[154.802994 310.290985 439.792999 322.320007]/Border[0 0 0]/H/N>> endobj 15561 0 obj <>/P 229 0 R/Type/Annot/A 43108 0 R/Subtype/Link/Rect[154.802994 297.290985 354.52301 309.320007]/Border[0 0 0]/H/N>> endobj 15562 0 obj <>/P 229 0 R/Type/Annot/A 43076 0 R/Subtype/Link/Rect[154.802002 284.290985 432.882996 296.320007]/Border[0 0 0]/H/N>> endobj 15563 0 obj <>/P 229 0 R/Type/Annot/A 43009 0 R/Subtype/Link/Rect[154.802002 271.290985 346.613007 283.320007]/Border[0 0 0]/H/N>> endobj 15564 0 obj <>/P 229 0 R/Type/Annot/A 31062 0 R/Subtype/Link/Rect[154.802002 258.290009 309.372009 270.320007]/Border[0 0 0]/H/N>> endobj 15565 0 obj <>/P 229 0 R/Type/Annot/A 42947 0 R/Subtype/Link/Rect[154.802002 245.289993 293.032013 257.320007]/Border[0 0 0]/H/N>> endobj 15566 0 obj <>/P 229 0 R/Type/Annot/A 42921 0 R/Subtype/Link/Rect[154.802002 232.289993 282.963013 244.320007]/Border[0 0 0]/H/N>> endobj 15567 0 obj <>/P 229 0 R/Type/Annot/A 42874 0 R/Subtype/Link/Rect[129.602005 207.589996 487.463013 219.990005]/Border[0 0 0]/H/N>> endobj 15568 0 obj <>/P 229 0 R/Type/Annot/A 42850 0 R/Subtype/Link/Rect[154.802994 189.389999 292.132996 201.419998]/Border[0 0 0]/H/N>> endobj 15569 0 obj <>/P 229 0 R/Type/Annot/A 42807 0 R/Subtype/Link/Rect[154.802994 176.389999 303.231995 188.419998]/Border[0 0 0]/H/N>> endobj 15570 0 obj <>/P 229 0 R/Type/Annot/A 42764 0 R/Subtype/Link/Rect[154.802994 163.389999 319.312012 175.419998]/Border[0 0 0]/H/N>> endobj 15571 0 obj <>/P 229 0 R/Type/Annot/A 42737 0 R/Subtype/Link/Rect[154.802002 150.389999 358.772003 162.419998]/Border[0 0 0]/H/N>> endobj 15572 0 obj <>/P 229 0 R/Type/Annot/A 42691 0 R/Subtype/Link/Rect[154.802002 137.389999 332.562012 149.419998]/Border[0 0 0]/H/N>> endobj 15573 0 obj <> endobj 15574 0 obj <> endobj 15575 0 obj <> endobj 15576 0 obj <> endobj 15577 0 obj <> endobj 15578 0 obj <> endobj 15579 0 obj <> endobj 15580 0 obj <> endobj 15581 0 obj <> endobj 15582 0 obj <> stream q /X1 Do Q q endstream endobj 15583 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15584 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15585 0 obj <> stream H|Wmo6_O8DEڻu{l#6Y%N g(K}>/~ qm%ATz_$^ZA& eeI ]uD+BZl 7JaZ@}e YGU/۠:٫V5 ntBW~ȭlUO@vjM EZ6La6;=mEr73PU6o5ֲ6u\}[4ۿ]%"B盜I@ <"JN_}>jAeS! MwT-otGֽ#F ~f~^uB6ħו>^]SN\NNZF~EpPZlb@Ǖxx׉{z_N;ZI'j_dl(isĄ$.81|&Jqq4!.eR .DE2e !D:廓 szY8kQ޻yOQ]eDi8TiYu&47{nI1oO'Ǎ} 5d;D&F&fP+Pp/֕?}ot ^UJC}`*&6mۛkGR&\G U+I7{ci.`h a٨hg#EFO ضUHe)kmeH]LP#:X4g/*cȃw{HR8lVG +sDdRT~>T72#c会iYQdc,PmUi%}u3vG~#6{ݠfD]uϽ9}̦gk1mQd+'W@\[͋ +iv't!)4?x*{ un"n@.*tr'ѥ/ WqWU9AYQf禈߹* N 6u; XϏY͘(8˳D:OKy)@ T%=K* z2yG:鏿E"thhL-t5Sx )5+* hI[ǖ!~Yo%>Rؔuq ɼ2"H0?Q}v3+ 6|,!vT00Bh鹵0 ˧KֆP( (ڶt Z}Z5Yx%D fdCe{nEpjzZcI>/P 358 0 R/Type/Annot/A 43730 0 R/Subtype/Link/Rect[129.600006 539.504028 515.038025 564.392029]/Border[0 0 0]/H/N>> endobj 15587 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15588 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15589 0 obj <> endobj 15590 0 obj <> endobj 15591 0 obj <> endobj 15592 0 obj <> stream q /X1 Do Q q endstream endobj 15593 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15594 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15595 0 obj <> stream HtWi6_`] 99 /`L+VKI=ɯ*Tw0]zz,>HLKWw?}]_wo"SQq^qY4dec$.cf۱hk㩋~}vxIq 921ܛv!y#,Yi#BUVoͰLMc8;Ӟ_{MݫHϗ}2@#H2~E ig>jU2LYǨ.>rST@(,!B3,]P<ŀ%2P/2P*P*P*P:P:P3@}Ψ9>"P_0@}ɨ/% ԗ2P_1@}Ũ5׌1-Ŏd\K1d),ƵCVb S Xk),F}Zɸbbk),ƵC>pd\K1d1JƵZ!QV2k%Zq-ŐŨ\+R Yq-Ŏb\K1d),ƵCVb S Xk),F}ZŸbbUk),ƵC>pb\K1d1*ƵZ!QV1kZq-ŐŨ\R Yq-Ŏf\K1d),ƵCVb S Xk),F}Z͸bbՌk),ƵC>pf\K1d1jƵZ!QV3k5Zq-ŐŨ\R Yq-ŎQθb S Xk)P=ŐӺu=FC"=Do4ekc wC7oﻟKB ?O8i2.wu i\I{<=3 fL랚q^\0NGѐqyi;|j 4b?D\x:/'35—dZu}=pLpyI1I']2Ό yZU.X4qz% "޼ 'iN}ںnn Zܶ7ҍ yZڰy%ícCo&x:ɜ)Bo';nfag.525}i<=M7(i~g]尟-{bq],,iFszcH q~`*2'JE!g}HɧWk'7MA @378&ёd[ۛNf^"sIOjHz&hgwD쌥iRoNeVx쟛aJ]Եwu%D{3wCJZYZ~m-Ȱ4zl+@pGjfO86ܓ5Uq詫a13WA/gt5~`cۏJr*Ko8`K4Dr;C4/юߜWUf" g'8So`_U8ԛ[B4&_{w.(CyUUL{S7Nҙy/кtF *Pt pFWf\*zb#f»d'l1Ӛ:Akjڢ*ZAZw7v!J`nx仝i gU֓f"Xnu$CE$k.. =Y,n=ݛn9eu~h|zprO Xus [^ JU >\`Jx‡P{m50؏v e>gwL&ֈR}&6Zr{/)\׫3>5B,.5kjS\ثG%!nB+1:oi~@رlrG2F~ve,_^G[{PߖTuYқkRo <ͫq4r浧x >6Mc;0K_Z'Y\G/\㫒W<[~ 4R0(]諙ׄBdWz1y]l׀/Y&yPbK:HJ/䛾Nny_Tv~5ٿO}Ӛw[ %mZu]r0/r,yt]1Fql0co0-QM _r{u_ ͳvS58~0~/Aǥsv%V !O ,wwS3Mc^<{0ΉvclWp$Ŧ -ӂvZ OP7LcnCuCֿ% K{ ^V'dC蹺K1ΩLuU3{;a|<VKE&Le#]Y \diRsB-r'maos6=n!w/qa}=4O w0j1E3[RdIoGsT.ޗkC%QF6(Y~}^Wu{R|I>LzUDJ|77͌ RZ ,xܯ"Ž-uWX`b0K'>8]ok,:@pUv1W͟sj侃eOtd9uV$AA(A ^>.K5uu<Ӿh)K'IaN ֈȚ/Zhq٧UIQDQ(q^tE3`L J6lQlsv8XR{G!(ApQ})a xVhXEͅ c\%r EE$]EEa"h|YTt&{] *!SA-tFp RXAƍVш{F7 D S4[@;0r#Z9W IC0U/+[{rU=9zPIJs~\>U| ý=Jʃ^\&P ] #I?~8V'Dx8]?}:bÇ'6 endstream endobj 15596 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15597 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15598 0 obj <> endobj 15599 0 obj <> endobj 15600 0 obj <> stream q /X1 Do Q q endstream endobj 15601 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15602 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15603 0 obj <> stream HWmo8_!}Q)CE6m-Z.j+ [YrbŖg&CzpgH^wW߾uWԩ4q/LgVyϸt5J:Uˮ^]o}}utEtH?8wQAt1\b%!-.z=ƫt&7M_<3^'vlTjUjiXOu[QlnunW5YZe`&ר"Ҡs=r:SO:^Q2(g:9pRmbQ XiYCXT{r Soz[AeꝠ1NPz/L{ =S 3>gL}.ϙ\P3>g A}A=l*bzKp-ŐS Y\=ŀ%b3CR YzZ#b3Z!KP\kR YzZ#b\K1d kZ!KP\kRlYCWO1` z!R YzZ+b3ZZ!KP\kR YzZ+b\K1d kZ!KP\kR Xk),A=s\K1d kZm"'b),CWO1dqZ!KP\R YzZ'b\K1d kZ!KP\R Xk),A=s\K1d kZKp-Ő%guk),A=s\KMR Y\=ŀ%b),>55"Z,LƋ(= `UgY6/w]/HOw+̺&`?gÞIҋŷk{DM bueWov|c\.}>/m^V`-/ih0Gk3Ԫ ;S6c}~Lغٮ}=i-=>ug**T -MWuwnء?=_~D?E_~l]68R75d4/cTc >ۧ+Z?I8=U 'YpzY۸Z6q涏wOlpfþu"iϙp-uCxM3}6g YA`X+gr!VbB*XX B@cub(TX+e˰XFeX,+IJ,bY XB,by!{#=Ő%byoX,CbbBS Y<ŀ%=Ő%byoX,ﭐCbbBS YB,V{!K yO1d X[!),!{+=Ő%byx,K{!K yO1d X;!),!{'=Ő%byX,CbbwBS YB,N{!K yO1dXC.\Н5r1;f0 [IlG,ׇURє/WuBᴲ(.p(xq)ɦmxwN~o S?axwna߫=^}_Bg<k?nXvq{Xſ.޶ W,T^xkIZ!X-ԡR4E˝Iُc繰qwBMݪ]TKx e HprDt}`E8Evfmw70ffq`g/N0# %@Th:&7hQEZ./pMBAmU4vvS6ɇ?Mʼ]k]b\`匕 U0V! *VX*)kps| ]f,-4ce,XV`YƲ2Xr RroS׺XBk]b,!T.t1{Z( uS׺XBk]b,!T.t1{ZK=| ]%jօ.rO5_Bc uS׺EYN=| ]%jօ.rO5_Bc uS׺XBk]b,!T.t1{ZK=| ]%jօ.JS׺XBkNߘ\(c2. ~L,ի8ŗg\dɢ Z]n`X Tܶwzv;n[D$8խcMH2\>Z15U}ySfKu~c,H eSʇ΢RQ]zTz} =jP6D-k ,8?jIWǛS2'aG;66niib:fI5D!סN<9;Su?m)tg,C3\7;ueumg)(qg4㡞xCmIϯlKϘ>7>ɟ_f̗]jn_C^Fvq<|$,\;!#7Y£t&$ fpm85oW#uY6!~ՆIq4'۱~qʰ•afp6jWCr CMg/N%prE4tr3V.r*VX*X%c,pYTXҌea,# cYe ,XN`9r1V*RJ˽rO5t ,{#jX,F=%X{K`[!TCgQ \B.roS ] ˽rO5t ,{+jX,V=%X{K`[!TCbB.rS ]E5p ˽rO5t ,{'jX,N=%X{K`;!TCbwB.rS ] }*j,K=Ye\qgjVk0\+:w6a]jwS1_wuBC4^Bh6M}nj?u&-b޶usMИ>u@==nY@g:֧}{ݫ=DOwy0ִ4XsSUTE`UK-UjPq 3mo,( -RR9o޽zzSendstream endobj 15604 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15605 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15606 0 obj <> stream q /X1 Do Q q endstream endobj 15607 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15608 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15609 0 obj <> stream HWm6_2/z!P$z(r&6wԶ|7#J2M7 Cc"XÒ?'ݶfgcb&d]v.W[>$ɘadeV.I.aB\̸?SY维]ٮc72RGw-,?tYqY oܻM}qi/$qԮv_%{f"co5K*aެv°M>&&1&Ƙ#2BBQ Q9 m{{W{W{W{{{ y>'`G }/Eľ$ؗ`_FK}Uľ"W{C7{C4+ц]" Ն6DCՆ6DCb PjCj%І(}ZI6PmhC>R$TET+ Ն6@ m"GjCj%(B QHPmhC>R$Tv"Tm"Tmه6@ m"GUjCj(B QHPmhC>R"TE6!`V m"GUjCՆ6D#*B QHPmh%PmhCT>PmhCT>!*fE6!`V m"GՄjCՆ6D#jB QHPmhІ(}ZM6!`V m"TET Ն6D#jBmjCb PjCb Q1{Í1ever_llC?^0lK.(xL5cvԴFqҮ?.Oŗ$C;``c1}_7-753豚uqkUڮlC_K: u6UiVѴiy: dĸc* 0v!)yx=1ۦ;\@A;K*]!ܢԊLxaJ@/aL.ȸБ>2"JH~G8=5-A gRGpNVwٲH ]3[=.J^q|Jlp>$ʒܔg]zMl] %/MYC't5D$FOvmxU]{Màm9sXƢBY(]g=3mQPTvۮޮGw=o>i00^U<!%WGAo.ɥ)dc?~!{Wvԉ`!M N*}#D83{P{5E\@_f;v^ُkc{Yyd1oF=nX?Y.gr5?iit%@U9 ;į,ҏݮC7AX71uξn)QUjSj6d_nuloWJU} pe6av~͵p};qV%Ԛ2(J S\uM1R|/# RvGPPI/M?mTDӡo>(Q`<}GԮy /nJ㻥#ܢEK8NC{teqz~>FY`/]owȹ ~*@U-MM]22%$pW-X>K>74=FJxOa/4o~4:S||vBz(2V NFp1YFX>;D ?zFƤ-s/`F%e y,\OauQw韘\/4t|aGӴ)< |24,48)CM5ޜ^w~7Smendstream endobj 15610 0 obj <>/P 845 0 R/Type/Annot/A 38382 0 R/Subtype/Link/Rect[93.5995026 484.428986 184.404007 504.109009]/Border[0 0 0]/H/N>> endobj 15611 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15612 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15613 0 obj <> endobj 15614 0 obj <> endobj 15615 0 obj <> endobj 15616 0 obj <> endobj 15617 0 obj <> endobj 15618 0 obj <> stream q /X1 Do Q q endstream endobj 15619 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15620 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15621 0 obj <> stream H[sH+ba<7!P jTJLeI-tJv}srZweǓ×@?}v}*̈DCkh]," HA ˾e[7o :xaEOhRs (I$cMHeEl+bJB Yu,GY'jad|^V\R'ëwb%E"vHo娈$Njp/"#4|%~Wpz&$BXHftGGfǁq}Oi>eܧq3}Y>gqdV1Zi&TTjH1BTTjH1Aj5ZyqV3RLj)}ZͤjbLjZyqV3Aj5Z!ŤjbLj)}ZͤjMdRS{!Ťj SS{!Ťjb5Lj)}ZäjH1Aj Zyq0RLj)}Zäjb5LjZyq0Aj Z5eRK5OZy*tO5OZyq2Aj-Z!ŤjbLj)}ZˤjH1Aj-Zyq2RLj)}ZˤjbLjD1Zy*tO5RS{y*t<-HjE4)  (_R-2HR) M4w\|c-zZLG]=[,c Ja@Uv޿|LJwv "͗/<N֕brqYnڲ t|Rȡd'e.@ৃp1q]Jqtr̬%Τwd쇱=_@"]t$)6+ wY{Ε"3w}vU.i9>lNOM 5wo ҀR_=ۚ7YE6τKi縙5є5Nڇla9=q&zpRaH9rm{0>+^QڤBn+1($G}}҉01+8U,,]T?Ȳ?w%7䩰fKt2muNGg05:['dW7dHj"lrݼsL$V:x0*ٜdO'`ہ{v)W-%\Y.ܫ:1'$`]ǭ`kYY/q߱䠻i,^KfPw,ح4v;)ZX/U9o[DVȔi\G''ط66AG]FԺ*~Izw [j7KK#ҁ;0nSM?rqϗ'\|Ӡ; Tn~qT]y~HϞf6DJ$a5.Ҕ'v+1"ߝr^:Nrx,Evh)soZ <5erom?w{U=a'D 08endstream endobj 15622 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15623 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15624 0 obj <> stream q /X1 Do Q q endstream endobj 15625 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15626 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15627 0 obj <> stream HWr|WL\)RG negu6q6k T pD!{/%ӊ+HP9螁~wy~gR/{7qѺWMV{SftMoNRs8Ӛv޷WM׮kkysM^Y.qN*$5HiiUr>y,v6g>K'nzQ90]Hmg;J"aR1%>}n˽_ IRlэf6g/;ܺ4 ;Ժ4~_hOqyKJs~I[RZURGm.2ɩ4Et#s%0fe%;KXʽr>(}rg}g}g}}}}}}ܗ}ܗ}W}W*cv/1bJYڽĘKXcpZAk%,^փJXcpZAk%,^փJXcpZAk%,^փJXcpZAk%,^փJlZ1K@k%,^b%F,Z1 W cpZ@k%F,Z1 W cpZ@k%F,Z1 W cpZ@k%F,Z1 W cpZ@k%J"hĘKXcv/1fi#hĘܫFZ1 W#hĘܫFZ1 W#hĘܫFZ1 W#hĘܫFZ1 W[%hĘKXcv/1fi*>\urV8S_'Վ`M^6zLV]bfhɳ폣ciGor7ܮV-MrA ?nދ`/l6}@<==ffsZXl;OsdLwu}d6̎ߵE~>[oۛu4+tB Q"? ݢ7}j>oiq~OM^Bxsػm1gY$vi]a-.)x֦ ? 6]3_^ӨĒzʧօewjh1Pv~kMo6לޫۚ~cǏ{-_x_n nnG˂ӓpж?|tt~8N~zG7DN=ǟOv6OkqPt¦#ᰟS|kOK?n׊tQq,]!=AkwVlpl{8MljKy=KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>Ĉr/1fiVUwNjw3uR0H1=*Ư瓿7w]c4g]> m1ss5ﺶA~*I`_KG&endstream endobj 15628 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15629 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15630 0 obj <> endobj 15631 0 obj <> stream q /X1 Do Q q endstream endobj 15632 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15633 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15634 0 obj <> stream HWoF¸`S/~Hk" P$fN]\JęI%=yv9ܝ[wV_}h\S>QbTUj&ЪT}^}ZWu)ں\ ?_ugt?Z:aX*MƙmXeU G|.Iܑ/Ł~yW,r]4]5ƣ8t/jOfgA (2&s`#o SWbRAnxP3y:e{9''[Fp֜E0dyEkS XFpo{#7̽[ -sow{;c3^p{/}"ODp0>eS}ܧs 3>}.gBh) Z!R Y=ŐS XBj),=KRK1d YjZKH-Ő%g5Bj),=KRK1` ,FH-Ő%g5Bj),!C,FH-6RK1dqZ!{KH-Ő%gBj),=KRK1` ,VH-Ő%gBj),!C ,VH-ŀ%bܳZ!C &pBj),bRK1dqCwO1` ,NH-Ő%guBj),!C ,NH-ŀ%bܳ:!C R Y{Z'bܳ:!^H-ŐS XBj),b(sbr(fA'((SIGV6AX^yx7z??V|K׿\k>Es9hJu2i; f3*5xI$҂Pwg>J|ŗ1U1>Q;gA H?;(z]hFHw:$rŴ嘖gZ^L+Z JiVʴ2A+cZ1\ʙV.hT\bZ4҂fZF2LZC}O1d ZC}O1d ZC}O1d ZC }O1dq-K{!Kb}o-V{mŴ-V{϶cbX[)vAbxX;)':AbxX;)g5AbxVZCע-^jֲ48S޹(mOͮ.I<`%UpIfFee_ {>ԛ1Ep,zdk}ibzD9O %QBK]`; >sQQīn-7-uWOtV7bhԮJzjڗw'a.rW8L"Gtjզ6ZMam*LJxTP^ljGŁƑh"'ܖ[*)mU,k<[A"MABјG,93⡵bmy/EÓ&ӅmV *S~+T񥵰yQUݼn.|Ym6e*OUi !Ү'kuu.֣d˕uO(SpᏚ\Pww/2FU"?;?n<2RZ`ctE^Zi-vsZ-9օpsytNNf:Ǻ0~j:w&$c0WgeW|rޯvu ͆Zx [xCIn/|n5>/(OT#,Z&DNѺր!ob{Ml3?句PS0kDpsCF$q/I}3Cj~m^aafa_jr,vMSV[qtz-nP>𥹭mOXtÏ꺿=w[+":D6l[^R=شpy,uڧQb7*yNhe[=6qJ`) ?l)/eCȸea!hyZfh vخxu>P)/|&W% Cmac -92sZĆB&_ciMIh{ܟpY`ZhIm=74h̹H]Uέ;ܜvtQL"c# ѡ8s9s"5tBA`|x)S"Qن2}!* H;>hqRow&h^EDX1vSOGi,Ֆ7lO/[Z։?oKCd0P8`yW>C8I3bÜR/eF'O$_ @&6+?NtѢ}A@vofj] fjZSꊦS յ+To%Z)|} 9V͹HխIg|ٓ,Ep)9 $2ʥ5#ñ=页q s<˾Aҵ]\]ԢE>/-z~>M ld7DKj|pXsZE/^jvT;hxMRlIH)_cOt1;}D#,_de-tGZlI+VZ`endstream endobj 15635 0 obj <> endobj 15636 0 obj <> stream q /X1 Do Q q endstream endobj 15637 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15638 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15639 0 obj <> stream H{'0H@rwGɉ@8qk 2]&M{^+{6 KoΜ!jթ'OFo^Fٳ߼H~I&*^̪AHXLH>cs!}Bυ9K_ ,}G> YgPZZK5xz%jHTCPBk RBzZ+j@ RBzZ+jH YkZ%jH YkZ!%gBkZ!%gBk Z8TCPBkOO5xz%jH YkZ!%guBkZ!%guBk PBk RBzZ'j@ RBzZ'jH YkZZK5xz%jHTCPBk RBzZ/j@ RBzZ/jH YkZ%jH YkZ!%gBkZ!%gBk ZTCPBkOO5xc^Mɨ4NU^%&elԙʲ68Va1]nVjwmoW$ŭˉ1!=ϸ4@36^-]V ]Fe;AܞQnc  U? \"䯦*Juos.qϙ8 l8FNt w'ROFu7Tl4?'b.N ܵ8pss}Y͒7Ww  swW7;_XŸ}ko a4SVGWSϰN %.rsƃá.zT ?C嗪26`ZϮ>⟞<]-[bƧ{jsZL}_QaT f>^ LO[ l^^=!|:Y&/߼H 0 ̞endstream endobj 15640 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15641 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15642 0 obj <> stream q /X1 Do Q q endstream endobj 15643 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15644 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15645 0 obj <> stream HWkoܶeŇ^@QI"h A jjvΐԋ"p4=$sfOe7~݇,f?7BsQ0_j䊧ed]5=nT]{j\ ]c]V~vي/ =l X$f+`N9۞7wmaWodG O>oZ xyt=on=,\i؆Ujal8q1/ ] &€ {edL7o}ٞm rLqVvS$>1 @QrPB(χ@܅>@I K + + + kk'$`쓀}BO)> ا4`쳀}F> <`}A/>Ь DI!*dE!*d}"TET+ >DJBPj}j%Z߇(}ZIPC>P$TET+ >@}"j}j%Zw(BQ!{(BQ!{߇Z߇(}ZE!`V}"TET>D*BPj}jZ߇(}ZEPC>P"TETF} >@} >D}>DjBQ@PZ߇(}ZM!`V}"TET >DjBPj}j5Z߇(}ZM7 Z߇Z߇CTȾEQhÿ;on77[E1Bo]pq=Uw{ C]}TPøC5p'/֋wz@P *eوb:(S<1θy:бq&?RsC&tR ΐ GgSxN/^V5$Hy=%Xid_ [҂UmIh#K`Ϸ_o'* Y?z}XѴyU=5;+d@I /чynL K4!h1Ty^1' {"Ӕ 4TT- `wC6n-T?ؚ8k*p ".LΫS`х mIeǟ{u"3NiV!Kwm4zLfњ6k@ 5|lp17m9Й٪Ί9]\D΋MF0aIll ~q/GOٌ]^q82m-',~(2 2? c "KID\l' QsY8v-P^(sW׬RӖ]%`P9],**5J;yŬQUY"ǘ]ͷ[vZ3e:;p$eӧO?Ұ9Ӵ^XtEQ|'޽׍3n+sto+.3Tt9~X!U(%@ׅ}W<*yLP[M tURwQ [K9p3c{BmsM}^άjTX)hpIz`yų4gK1cl'JHзH[$䊹s#Z۶ݿGuċ {L&msh3L-E%~ $@=h [eK^*ꉚ;\g1fOF|xhh$QC8GNis *Es 9p?Eq)XQ67Třܳ"Ì>\KaF[^~탖>8qƷxx"5 ^L$rzt>*DT|q>q٬մϣ*O?:þ0mp_YG\d'K5ih={S2cN3IPwb_]yDkG-tbŨ&d=/큰*v-Ҕ'K ,tv];][ܨ{(KII+)a:Kr hQȤ<2Ds%$>s,)d1TXվ@G-byp$\UJr_SoUW}~y;zOD2L1_jޕ6:{P; ,3M+U]ΞZReKam=Q1ñ&Üm{)r[?:'~~OnԢc'r]|ݔsiT~r9!a.33U-)@Q~ qB& 5n f4  |3+ifH5]) R#>$oHyoK*E(ű>\/[@P sk !Ιez'V*"mz{c];wSX_m˳<1 gmY&]Ma-')9(1{Juj z}0Χ?nZW<>)GE幊stߘrC@Sjj!$5Wɴ#.{;m;!t{1'n&GP6yl`WF 02endstream endobj 15646 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15647 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15648 0 obj <> stream q /X1 Do Q q endstream endobj 15649 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15650 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15651 0 obj <> stream HWko_q"ʱ(vԎH$ VDc.e;-{[ҳs%g>yWo~4ᇗ?J~OlHm4L^p,|;ofd65ߛuݵWnnn߮̾M.~~!yL.7,oHd&H*$wͪkw[svlQهGnE#}zݟ-?M_6vMF_C˱0wgEju]Y2esԙ/fWDޚ6IEAV& X'KNԜ(86$1f$F,k5K`KzVp{;^W=p>Aρ\ρ\ρ\/B/B/R/R/RJJ}T#p:kAi%IhĘKXcv/1fi#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu$Vb%F,Z1K{ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZmZ+1fi#hĘKYڽĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkh6IZ+1fi#hĘKY}Lcdj\&˥7,ohba>-LQD$2 zvM>|{BTT(42gO$KmHו{ܑ}4K8/ ٲmy?bw7#Ƌkzg߻fhxyk&A3HwSx},4J?eUGlYLcL+ie*ʲП>joereMɻ˻lBtӾ;ԛiqnDp|N{VÞs)E~o=xSXKYZKb}}}}}}}}}r/1fi- ^bZ1%g%da~LcJ駉?1O&{Å;鲪 Ѡ326ub gfuWS|a]I=#g)n=;w!~`Ҧf7ddMk^ȹlqtڌCy?`^̷(]ZPЈ:lAZK|u&7m,y>gSx S,V2TTL9P[㖩ٔZp3)MKnsl){pG ID۱SĨ1,cƒ[LKVд`3{}Mo֪T_~pnQ~W𠈽H rb%40mWкȒ\H\BC鏔 J'="^,}Jh^m;:}`g-VN=&lLU-vOt7,J‹ި@|&q!~_>=??#ǏWѫ5D9Aaݸ./X9t+Ql*uq$LwlZ-S%b)qWa!?UpX([&$3o>o!fxbˡ/®u{kcR("hNEimgK^a6 l 6cȇ^Q}Õ3%fMY4} \18r0Xq68pA;( pl+!/ z3A{wXްso ߱y(LW];6mʈ*zc39F3xGNh m-sa}Q9L"fyզkD۵ëM]8]AXIt?28p-#\ x)Y&,O uZ\ xd`Dq\** X|qeww 0}iendstream endobj 15652 0 obj <>/P 697 0 R/Type/Annot/A 15655 0 R/Subtype/Link/Rect[93.6001968 663.229004 286.764008 683.989014]/Border[0 0 0]/H/N>> endobj 15653 0 obj <>/P 697 0 R/Type/Annot/A 15654 0 R/Subtype/Link/Rect[93.6006012 243.748001 230.233002 263.428009]/Border[0 0 0]/H/N>> endobj 15654 0 obj <> endobj 15655 0 obj <> endobj 15656 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15657 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15658 0 obj <> stream q /X1 Do Q q endstream endobj 15659 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15660 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15661 0 obj <> stream HW]o6}ׯ 8%Qq) 'V2#eGz+k;N"<幼w]Kُ?:OU i#L<lo:JCYŢmUO6jg}f*F6zVd&IY a]tuW55x%t˄닏oN)\YwۋgjD7cd{k&(ord҄d"ؑ񔽃>ÿc6,*d Omt!8<ǐNc,B}ZAǀEǐE\+kZZC>p \c"k} Xk} Yp!PV]$ B>,µ>P!+Tc"\c"k} Ypp!PV1dJµ>,µ>,B}ZIǐE\+ k%ZC>p$\cH1d} Xk} YzCVǀEǐE\kZZC>p"\c"Uk} Xk} Yp!PV1`1d*µ>,B}ZEv&\c B>P}EX -]z]'8[G$冭֌=>\IƲ`](($F|dNjWRh!3*~ndIiJBHA{./+ vhwuZ)p&}߿_ċP$Ze?HTU[B*˧~enޮˀ-ۮ6d)C˨i'& ։X wmi˝e7,;7NjBĉ}g}?Դ9OTq`F%p++csl]vnߡ a oeksmG[  h\|ʵkq߿܇IKXrqn-y҈c뛛GuBymgwū~tvf)cMwe~a?.LSG_U!mkh* CW]@q醄C dBkġ!YܻwE)6[m|%`yذ1u[=Y7loZ-?.zp44]*fAgHISԪ{tTv?)अLQ26ٵUڛޛThHgJLBܟN)2WqJ ?%WIutѡܶ0vh!vu|`dF/GkcӍRM}3%] {9Y'5EalJ%)x`pOx(i:@b$^ھckv9f00KoxeeG5uWS0/ݏMٕ5R_\lvC\ IIUlDPHLxN>Kp97n܁% &mnP;@]>Qɲ:e`e[{1Xe f J^eC_3DFlzڅ{vǟpu7Y< 19 !n7퇋T:4:f|ByC*usKSǦIoڀM,Q֎GkTu=lp;Wj%kNă+Uf&^mU}n ,*mRB ^P@eE;BwZm3eD~i VK2xJKâ&d"(GuF[pL>̰ \A:{ U1_![:\X,N bP=\V2qv2{>z-T=`9iN{ \wkNBEQΦ./G/%ͽrg:ȷ F6sj;8mL*Ͻ4:"F)k@,؞F䄥Xd*3T߸sg,X7aol"4IV˻r߰ΙI'WH<ǂz^,\]'{*X=n]vv oݵ~ArWnv_K7/xb<ۆ^x_I 'ND*44d}'Hv+N;_iM xݸZ+]+>H[@z׎[oaj!kj_/]kAY|6"I!4 W c_ 8`hG>+`b,f,ݐ3ta+Rlxgw*{,mेO3]8a~u,`ƫ7na/Xmu-PlCX4/Oe˲/CpBR$ͯsUDTkng"EOݖUS#3;B S""LܗM %̽-DÛ)E(un8i9@7&uYZչS]yZ(4,+Qh[qSIX&5q[A$boՖk9>Su|S,izT)|.:+mFT}h.V`NId #>/ %L$哆MxƹYlĬʵx]`^]9ߌ9}axAքI$f/Eȥ>t!aBWvZݓ6pam>.`ЪZo& kqnPۑ-p |&R4ḫE0ړ4ydF RE V8!S/V0WIdPQQ][0DhTX~V-dV0p۵T>WjU%_NdbZwkx cc Oe(*mثciԎ*XxNo$|Y"g.cњҟfO&aѥbdPE\A)AUTY0 GSH!cӅ^&$OkO%3yCE5 !8Իq 5MTיE @]gt8}M7V-^Pi#әcX֊nC7@(:v>"|c\ 0pCɢ<^aLZW޴H%7cN@gx(c63PuQ֫wNLT[޿ I c6KD*ah߅O?BFQ~@wZT妧&^Ӻ7~%@[ /+$NL6}#i89jOpD"vF6"-)pI-0Y;@ulzX23=\(!Yr-#2AcS}Gd@PRrWK_q~0\ _5KX+a rN` '_$211ve;Xͯ(<-W1|L}&XF *aK."3\\'%endstream endobj 15662 0 obj <>/P 517 0 R/Type/Annot/A 17958 0 R/Subtype/Link/Rect[93.600502 263.630005 222.936996 283.309998]/Border[0 0 0]/H/N>> endobj 15663 0 obj <> stream q /X1 Do Q q endstream endobj 15664 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15665 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15666 0 obj <> stream HWn8}WE L臤(6ۖo~$RE#mxD!KwU>??|￿!w$t":6J2J67QD"o~h7~_/}U/]~-ģExJ$˸qb2? iywתYU<&}ֹJ\ծ{GRCr /Gc%ƫ8*UHQ_kT)CNI8"Ub YCaXTxK2e^2e^1U^1U^1U^3u^3u0M0M0M>cgQsF}y>gQ_ F}/edi)$Z!+TO1`1BCVbb\K1d1JƵC>pd\K1`1k%Z!QV2R Yq-ŐŨ\+R Xk),F}Zɸbbk)Z!+TO1`1BCVbb\K1d1*ƵC>pb\K1`1kZ!QV1R Yq-ŐŨ\R Xk),F}ZŸbbUk)4Z!+TO1`1BCVbb\K1d1jƵC>pf\K1`1k5Z!QV3R Yq-ŐŨ\R Xk),F}Z͸bbՌk) Z!+TO1`1BCVLʲq Κm~-ģExD:IgY/ljYgv:Ovsq~"/ƃ Lt.YIV~Y\]?_8&:K2> TJ_ 9⠔LeTu_7/Ns_7mI٫\}IZq6 y# R_|xmm]pza$DfW6MRQ\.|%u]'þn`eDZs@gNJ-O,tjs>Pߧ}լn{tz@z:.{EƽŐBnJ+*ٻ Rm ކeJZ)d*A7=$)'1]կjE^ש~iƷFVn_ՁK?y5eJeHS U=΅}t|2(zPt碘KyLJk)`z-1!CL3>]5*L49NLKq93$`WZ/=H io/`: ˸J1'* p_FuIPӮB{M?k{2\)2j<\?uyϋa [F5IvA66ᄇrx 3weXxa)x{z<p]Μ݄݊,M!N:ʶZpIsFH`y 5p_b6p[7;xٸ:%|P>azMnW-}{]i2-);4jB% t#g[}Sr>Ư3MJu&LJ Y\{sҵw 3e6\/Ҝ ɺx^[ N Y̥/l\[nЁRqѺ/¹*OBVTR3iu"ҩ^Hg쎷6Tb;v\>6܄ߣ6#o6qlml:$VPKi-9UnVuooLf6DCoեNn^.Mj6}%h5Z7wp@vY Ǻ_ =X>9Ĺ( Yӎ:.-pʛR7pvA0ۺ/*LH/8̠JIE>7u7 8R()&uχ\C=~ܵ[pL8l`\n%Fw\xWu}S}ڵu0' 8Nem4#˵?#?ne ZZgPCd>]&&4=l0ff ^L*o\mfs1#F8zX(h͐|&F%znӯ]9p|aI}龁y(=JlG,7AcSa43}{zPxgf56pCՓ[?-|l)[2>tlutvbw \A~Bqn(q~tQAY/U1ezH4'wߟhmӜ-|XAbGYǂ±ViR(/=WY21'?[ ^<0Gqih-"Y*'l-^&89XH8ΧM^6Pޜ#k!dXA,A,A,2A,2A2&VʙXy+gbAU &V*Xedb4|,!+E1` &b &bI& bI&V{!dbbby/XAK&),&V{!dbbby/XAmm |]YI ޅ6]r ֵ-=}-cN$f0ތ2cb7cb,%ý#eq//{poHxYK{3F*^2ܛ1R1^ތ񲸗 fTŽd7cb,ý#ePpoHxY+{3F*^1ܛ1R1^ތW fTŽb7cb,ý#eq/{poHxY fTCý#(T~^'A ӣÌ&W&0H\778ÎbMbILE&59Mg% V"q|uknj\w8&ǃv`3,PȣEax^q"Ce|x'UƗRd/P~E NPۿr̴xxaئi;Mix;r S]ޟI!Hu^}$OT.P{եQeTGUnʼu qq8ՐN5MBulQx:!jXm.dR]o{<^BhS$tEؓ:wid{̫͘lX6KҴ\6ʛ`m&C}po[d;uB*?!~sNg 1Öû[u},IGx6Pq?Ο~frT.lW^<;EiezUw#}zz iKA<4ŋyg{#/!%޽_/˗ݔo7酁xG/pE^:Z"KW`kJ ߳zES. N*'uΎi}`2|*q/4|G]Z/>D Vo]xU,V5[\/~!bendstream endobj 15667 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15668 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15669 0 obj <> endobj 15670 0 obj <> stream q /X1 Do Q q endstream endobj 15671 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15672 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15673 0 obj <> stream HWmo8_2*^Em]\\qiQ($'Ϳlr"h|D33>&w7`2fEs\)TĊC;$| X؄c55M[OC &c nK,,A$af%yX}tWojc4Y6m3^X\.XIeLq+/!Kϰ#0(Ds %9mPdcp>p0,!1˝1's='s $K$K"+"+"+}JO=)>gc3}F<9>c_ }A4Ѻ6j]|Pj]|Q>{(BQ{OPCS-'TE!`節u}"{j]պ>D=rBQ{OPZׇ(ZN!`節u}m պ>D]պ>D]|Pj]jZׇ(ZAPCS TET+պ>@u}"{j]jZ(BQ{OPCS T@u}ٻ>@u}ٻ>D]պ>D=JBQ{OPZׇ(ZI!`Vu}"TET+ պ>D=JBPj]j%Zׇ(ZI"Tw}"Tw}qQ2Lߙmep[gq̸PB g2ݓЍlGɲ,Vx72S5Lt,h-u^aN x2>qoiΥ`ތԦf/ \ b˹~[RѮ~"ft]jn ʶ*jM^L_GHXu3VKI}Ќ4Kl3|9̳l-nǙ:_ȥ Z3n:-j&ru֚0ANv0Ss\ր\kkj/5 -\DeOU% RvT`rPt B|t:kaݗ>mcd'BBT#hw׊sJjjE@Lht%g:.-TU'Y 7Ϯ2biln5 lV'\[Z0 Q,H,*`{"Uso*"hWY-nwLcc)U6iⲑؗOKNyČ:,~2Sih{y:y ͕ \:NS-IE7,fc!$9+y9Β1!oZMGLb=ƾNKdg-YNpe|]?wTAsh9Wkj5U̙فԏcp|] "F U)JBY^ lXM5&r,A3! 8E}OQ >: B$qv)rʲ٥fvƬ)`x # ^ITmӕ*Ƥ<΁mjtW:wg-<`@P[Hs?c[u6,F> s!Pt53|fk. ¶z0gCm ^a,I7w`Xu׫u}=l7ҝ΄;#o65y`(?H .+_ v+cʘgd0j u0_LI@uK#,GX"G?T*'B`/yI!LKiy+Sl`}siy{m}"ř#j֋.t \5 e9/c#^@{'jkLL zFk|P,nN,R`]4Eվz}hڽ_] sLS&tN^3N7ƾtZ\f2|D1xa,@z fL&e,2Je&y!ca2Lz1M>)q~FS ?up'Uf#Ϙ>b&ӄHc8uP d} &}-{KB QH!q^c#![x 1j? `!3jo;`cz]mfLJE,mf&9zv;[^=bow~SBHkۀ V4QUZEX2YK$p8ڱUzY+/zG@"Rx^4tVwy[z'q_(Urbd`3l vpuuyy~CJt - $O:~Ζsl)ӗmmIcȠ]neZ=V[ `;mPO\(x2|*6zz_j97slh2TaЂU},WW9Xc Ԣ³98Y行 )t, w}Y<Љ$4S%J- RX$F*[9["KS924˞ErK=pP=<{s~כxś!"ZH29h)T"j|h% r_|+}BDy>$؟SDr"p/#ng> v8D1ee˺Tm?jshFf}endstream endobj 15674 0 obj <>/P 448 0 R/Type/Annot/A 43807 0 R/Subtype/Link/Rect[129.600006 411.229004 227.651993 430.908997]/Border[0 0 0]/H/N>> endobj 15675 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15676 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15677 0 obj <> endobj 15678 0 obj <> stream q /X1 Do Q q endstream endobj 15679 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15680 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15681 0 obj <> stream HW]o}آ/`IA:-]D $ѥ$,ٱ[ ٳsfWX4G/onog__߼I _*%+rɚ2 gD%W,cXuScS-YS%W?lsH\|VL:q g9 n|ܥ屪lv) Om&f)2 ˄*2엦l،0J obo^oob~nf¦iC! 34R$TmET+ bbG#JBQHP-P-y>R$TmET+ b.Qjͣb(BQ1{l=P-y>R"TmETbbG#*BQHP-P-y>R"TmETbbG#*BQHP-M<*fm"Tm6cbG#jBQHP-P-y>R&TmET bbG#jBQHP-P-y>R&TmET b.1jͣb(BQ1{l󨘽˜sq3z]yr5lNoe9s$}[mNl5|F@2muf²i[4;ޗӁ=-C 63aӲdCٰۛ[.Kɖ\eOwOs`&'M>ٌ-\jtfZ"ѯNo ̀8@st;R`8{,W&v_ RYnZYe8]1JeRV:$x,Hs= -Dδ#hOcrs!ri].P@&tGđE?a͏Q;(ʞw TJ.y''׭]^gu]\x!4T-' Kf\14@~mwxFRi]yKCTLf-d_jP;B])/WS0Z=EqsP)[r2B9G2ޱoZgFGCJ;ƌfY\PP#QQfEnUKSwM;O1hJ|]XBR:=/ɩ}U~SwS[FQR0XeGJh7-}.+nZeϞ[I>UszF~:2ϠWi8t#|$7b!C JSHcKΕPsv8LPR1ߗ)wQyyv9Ez.Ac8Et_9.l v➌ eq$?LG7fӖcUrv:9]CB}Y_WxU=V2ʣz3<ЗaFvf>ʢstpE7/A..1}xLTmK[}V4m|~vM~`Ao3U`欛y}BWvcy^atL1 iVPZ8hE/l CQ(5r{:"Wk6^QLaôVPzrf~I9zǐCBA. ZvqfZb" eDhK?sk83(m|6nf@mr1YtAx Fu' +!߅uC 4iſ{]B=[zWbF"+ g&n?<nP T.` 156Zi&u(H玂zb vWn,b"@6꽏Qc.o/̡F2e2"0xI;C }+h'zx_G?͏Vp!z4x^^)]&%4:&a9̷u1 gh*I ٜv0CuxVc{lƾukRq`n~3Ż=xOU'uu @(yK/Q{vOѧmyx8n{ MKrsC6 E2,w{J%ȜTbXFoyoZj9q6,[0I}i\,; ˼"Q+8 }yF4ĆRu8HK%1jKf.O_/1Xdn0{(TPr"/hѩWAT7d8[eM75 ҔGՖ9&9'4=KC :W.QQh#c-28JrxݻC)C޶+ןO)[,dRNNpyfԅ IOoݲO @ac=ӊ xW & b؆KhK [MTTVCT &n+Ue\fWȉP-9 kiU&P\NeD%β|Hl "ӣIGGakfaD<<0GW}\Y7Eͥ*^Z8fZϮK0 qk팰•M4:\ȀM٠ImEy'fw2hwCGMH,j?[jGL~※Xu${qd}UILlg|x;h9F7\5&lЪ&/3Mqox`AzAp 6r[%eebS}3nhqFJʱ|V2Zv(T؉oz;kTNmdc@v<#v#S [ޓI]=FƊ@/㤎zxN~nf 0yf\@ 旟Ke10i7E+񥂑Y.9V6 ge`#8=rpaR3g9!4p[Xn.x 44dԻj玺&dZȂ K<tGc=Y)ڀEl ͪg-˔ر n;b~zceWel|J Ř/1&Yp=L!9Z(R1YZon=4ѧ~ ,endstream endobj 15682 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15683 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15684 0 obj <> endobj 15685 0 obj <> endobj 15686 0 obj <> stream q /X1 Do Q q endstream endobj 15687 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15688 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15689 0 obj <> stream Hko:Wp9 ûnQl7=mnA(Z[Ngq~mF-(ڤgW$|I?? aŋWo^'IW(3I T 2ϓLM8)HrxOcVb/ń̋ 89KI8$^ˆ%$)x^u_w 4ܻkP4F?ɲ yǵY͏e>_썿 e֦ ='T& pF>H;rv5I4T8,s?gM{irX36dp&ȏ9*|bk<ǀzzzzzWzWz׈z׈z׈z7z7zOi>EԧQ3D}Y"m"rĴ~lĵ~Qz?Z?PsTޏ֏9 QV cBkPkkZ?(D}Z֏֏9 QV cBkPkkZ?(D}Z֏֏9*TǀB\c 11G!Jĵ~Qq qs>pD\\+11G!Jĵ~Qq qs>pD\\+Y1GPkB~Qz?Z?(D}Z֏9 QV!c@!cBUkkZ?Z?(D}Z֏9 QV!c@!cBUkkZ?6K4Z?P qsTޏ9*ToV:Nfɫqr8K&Vьpa!&,roaҴMrZ,EA_jTϪ<216m}5O%~X&KrUToy/\dHaϫA_F42kгz@~7 .Zv΅MǤ5]f='6iMWaB9-{d Ṵai݋pF{J`Ǧ\=OVn+&pLF.s㧯/=~oqJ=ɗr 7u-ͬjlf\.Z\Hj|dzQ5_axEX}l(Hg8gZiE5qs=27/u~+}+e]ǴX"iš|,pa>1ݶwm nS|=rFal[=ltkMM&We1/Ѵ˟Vq)P/cĊ~~9Ωan_%|S(w |H /eEG^\W?GG mԦqcS;#T&V/xTӪ>1L?#`/=N M%܀&+A./AV:4V~`"JlS}%|ʚ Yb}lbAn %)јRwrKzUuss9tt?b [hX{Y#MWB+hͻL]i,Lv áh7te3 ]]^N"RJhVܢu{PBkp= wԥ{>j ɩd yv4͚]#Nol~;f{\m$RiNg !(JQf)25kpV߭&CB*v [rX^EnSl}NWrf_-"Up _֝)<5{t‡Ubq4`M#JD ڦX*_hU7 ܭA-rj -֫I uyZ-.袳M29-䬩"5/|N毷*K%)vײJM~\.*5ۯ*55r:+&7DJ? Oʚ۪RG;3w`kIn`ÈXVY* 6ͺi2I9PWY(ˠC|y{ WpE\E =~>(aUr {;d=?h3?prXfїӓޞ|{Cr0&o`h^ [|Q+w-Ѯd}MT u8(𸐢' v^etS:vK]fk2.zeZv3R6IիIk{t5U&n햲oZx+ _(YM@5[-ޫXG_$dendstream endobj 15690 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15691 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15692 0 obj <> stream q /X1 Do Q q endstream endobj 15693 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15694 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15695 0 obj <> stream HWko_q~}񱛤@-`"ѶR=/9(6" s3?Ƽ~}d2'&62ꂉOsgܧљm۬<$,Lrz9mfXv13Er'gvɻIr=wX3O*$3HYi&f5ڌ_M|L Wuѧ~;|nYz(~3[)b6I V0IԶ} 93fRJ?ϙy")e%SREɩ4yEv#%0fEޭ%F,;NW=p{{>A}P#pG>Qρ\ρ\/B/B/B/R/RJ{Y J+U@k%,^b{1K@k%,^ցJYj@k%,^ցJYj@k%,^ցJYj@k%,^ցJYj*cv/1bJYڽĘKXcpZAk%,^փJXcpZAk%,^փJXcpZAk%,^փJXcpZAk%,^փJlZ1K@k%,^b%F,Z1 W cpZ@k%F,Z1 W cpZ@k%F,Z1 W cpZ@k%F,Z1 W cpZ@k%J"hĘKXcv/1fiUZUU0;8[%&9c>YӛuU+7yZ>jx{tg&Iږѽl|Xd> v"*RZhVPZhEVTZ9ʕVrUBi@PZ%*V JUJiU@Z.Zc֒Ϭ@*- r@)-TȽuRZ cRw !KiKY@KށK3,r/1f-{r/~xZ*^b<-{r/1瀖ʽs@KރK'5rA%ƓR  h{{ T=ȽxZ*^b<]i-1KkI&r@%sR h{DTȽxZ*^b<-r/1b}O1@K>Kr@%֒xZ*ӄf23Ձg'PtQ탿'l@݀r %Cc[q+-S8t&n0lb`~EdA;вŲngdiv4/I7#yW;CeCޚflLfYnPZmc;0~qiȯ*6үCͫs{}骾tYH.15 XyJ 9e-ڼ>%ҧzF9˲tqMyAɾelNqMuAr}zEOTW/Clf۴ɖe9wׇ,7=fhOΦƝFlƞ #\Gdyݚ7e~b>ԧ jq=nKӾKq5W/n12@ŋw`ӽ=;ثb}ָ,ҙMGs104)m~G<}ܒ>@9ct>Biѫ뷨-vv?P]3mkoe# [e|R2裫ͮA"-{M}g F7tŎ>Ye.?I.oQۂ $R\v;zWYujL#8G G(*Ag qx 钼8A;!nN깧&ta]н=.o#cĘU @+(Ҋ@+*ʁVr+hJZ*VJU* hUJZr֒ĈeUZhY倖SZh;{1 h;{1 h;{1 h;{1 h;{1 h;{1 h;{1 h{{1KkIX cR cR cR cR cR cR cR cR cR c֒@%,r@%,r@%,r@%,r@%,r@%,r@%,r@%,r@%,rA%,%1bKYZ'*n\O3L>z;>{«mW(>u,z(" -ڢm2iHTw_ñ(K-0~"_ax`J2?\,3тa!9-p%m\[F7:kg>!nuDQE\NWgX>F\ÛbJ^*O9 .-?t.>N:kFLH~P÷4^BܟH`6D!⴬I/;~tg3k{l IG"|_=$ 8UV,FR.JqŲIGuJp3}d {T rʴfrg%@RD I#2;s~H"&+ }gFU7[ _gF/ 6?l9&] =EIu)e% :sJy}g2I,d:l0Kj kk/l#&ؙG )34??Gvaբ{[BnTAԘF)Y-EMtLkO}G"kM2q5*{@h 7eR 2e/o4 "SPyyEX))z*[w. "<SJ_Z\Z*fbRٲ=5!T@T Fg^R; Wonѵpʗed%GΝމ} ^/€T(!O. x~+u飍>CWlTjN$@{Tk}HvtCw PـЫNct \{6 ֹ\Pf "`7QE/MI;ȧ<j\HVۗmC|Ma͡Ggob\z_z-bڏћ^> >)eendstream endobj 15696 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15697 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15698 0 obj <> stream q /X1 Do Q q endstream endobj 15699 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15700 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15701 0 obj <> stream H|WkoFN2d gD{H0]D{IHu{ ^ȩ\zwWU޾|]3QIlȨP{ORy/wͦi˪rһtm}].fV$T* S<@s6QwM^[ĩ!~H#iv gկ0w2&0˒,s2ѡe$!OG1`iYCV$wy so{[e2Np{'w}$Hp1>bc}ǂO s>'}*OTp2>c3=JK3Bk),bZK1dqCwO1` Fh-Ő%g5Bk),CFh-ŀ%bܳCR Y{Z#bܳ<+b),CwO1dqZ!KpZkR Y{Z+bZK1d YkZ!KpZkR XBk),=kZK1d YkZKh-Ő%gBk),=kZKsBk),bZK1dqCwO1` Nh-Ő%guBk),C Nh-ŀ%bܳ:C R Y{Z'bܳ:Hh-ŐS XBk),b 2BrYy bYb*8+w~^ѿ/b5?g_Afa*&vAEz'__}嗳wiN!0mW&ylfbݴLa`3RkfJ+$Q(vo~ew~jvm˦wf='Vq<^MWl1Y|aEWjUvMWN~` 5;A\o?ZA#۷~_UYÊOS=ÉE$n_6mqb&g]&x&kMq{ (L'IlQ|5>PGǠ\Z `Gt7ˢzT7[ ֮i1/i%V-~p'ԭ\v=(,efKj LXsnqSTp9f㡳o֧ IiSY:bM?r=a v- tD: UC<]S~MT K tР|G$F'WWQF9›2s.6]? {dž#XuW>J1|i8v6q$jJSaUrS/4s${>>s> 0l7,i*찳4#OJa_Yx+w [LwŲg爭e8L"/8:x%Q`sTcXQ$HcPTȧ3#M~.-ߛ;:lӓ|Ku`m -dʽz|,ULEi2ڻ.%.kWM՟KpY3}I,~_=ͩwfΦ{:Bgm qi 7pU*<65|G=ǟe2%Ʒ⻺ީ缭qHn{v}Z5Ojm:-o5 07|d#;W<_/qZm;ZP#ndgBKqāzϑtd:x'u*<.Y/AZz%$oM߽߾\_1~XAe zV6 2z:hf (L`1-'h9-Ǵ"A+bZ1XЊV,hL+Z JiVʴ2A+cZQ-r-!kQ XZLK ZiA0-#h!CroS Y˽rO1d Z,F=Ő%h!CroS Y˽rO1d Z,V=Őŵ(,!CroS Y˽rO1d Z,V=Ő%h[!CroS Y˽rO1d Z,V=Ő%h[!CrS Y\brO1d Z,N=Ő%h;!CrS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1d Z,{!kQ XB),p\qK~8:Ed#a8*&p*'l7Ut}ox B":_wYgߔw8j6`[0FAftԔ+ak܌ہz{GY1/^ 8't6NFeSIR.y-!w7>ҁQΤAO+o=XcTݏ\M`aTn`q0xCn34I+.lV-֚WM[O?]8WZuj FOy6na_ ER_Џl4m(Pӱ[";#K^{"{qGCL4r{tA CG 󦯿u3goA۲'9^.7m؞ړ4q77Xn Kokx'I30~{xĹ4S4uK.ԦH\@ӯ]Ħ_z e+·UjkzV0hgR69\˶ٞsWEx3輰ဎhMwbиYkSvfa7=h6dR?'dtD]hK{x' >>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15703 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15704 0 obj <> endobj 15705 0 obj <> endobj 15706 0 obj <> stream q /X1 Do Q q endstream endobj 15707 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15708 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15709 0 obj <> stream HWko8_ (KtwbgPLM1Pd&Vk[KNHE=W7cͯw,n"&ScX"y\"U<>s9bqG7m7/ݶfgcS&]~ݬ؟"f)0IXØqj}IM7>*KJLj x$O37aWo go<,c7 &ۃ9p\<_eTH*R6gD"k̲W}|uisHY]3`GZraH>p:c!ÐPyy^E^E^E^e^e^U^U^U>'P B}/E P_KB}ׄzׄ0"Nǐ1`1d} YzZC>p-'\c"k} Xk} Yp!P1`1drµ>,B}ZNǀEǐE\ k9ZEp!+Tc"\c B>,µ>,B}ZAǐE\+kZC>p \c"\c"k} Ypp!PV1d µ>$ZCVǀEǐ1d} Xk} Yp!PV1`1dJµ>,B}ZIǀEǐE\+ k%ZZC>p$\c"k}l)µ>Pp!+Tc Tk- -.znV+x_ -=!5Y:L+7uo7o/ձiOvпKeϻOqꆱhWc&إިi..?;=7/yT_\glw0uSE By6ۮ}~ִj|KNk&ܥ` fЬaͽ|45.aoWZopBf*;}ԓ /Y)0Π(;K1o_C˅ ﳿDt@|(H$ơv'wyX{,2`Umj2O31?.";gWcŠԹd+RZnCbN5±д/wҹC'~!<2SE|˴,b{m,U. /'5%KUyC(!IؔA8uA;7C[P.Tc<^L08O9wòxr>;t;:\ ^$g=[u[>A|k ܀a-3izSO:s&)0*1Mg /GSrqڧ~# p4~-+| n7k6xJ ?\Kb]EUORL.^7(%0ywݘ`C6>s /,s9ZzDR=C!AѼcU"ٷ twf*{VT҂:XTbVYuijLzס1Bycś3ût]-O{˷Cp%+9AƲtdvHZ22-kS!P-=Tfs)`:t7$rbVw-Ʊ [G 95*qpIuc؀2966]3]繻:פ K<R1x{%Ki;gM.;qPs*R%s/.ͱ^e&͵5-T/ \~rz5V[k3R\c2gSnm z*ePW` 9cW(^PsH1wUX߁^0784v}/1XX$SGg-oflǝ ݬd&m$z_G(懾ICvFr P5Bdɰ̿+VbhH{՗80x-B7TYGlq(Sk{Qx>,O[U.o4Ru7ndٵK6/2p `%lkTDD(A]@xaQk]d c<$n0L,1,RϙF=JLRUZF<=r^ i2Wk.]d.mwX4$^Z)ktȾ攆 Q|D q;ꁘ9|9[^Q6in[贰g$?]q[*m~P^&tcWۨLDр10Ue6vڷ[ؔXnUU4jk[2#WSf(5CTUUVMgZ7A=/V9m 6+sSVO"R88I }b3K~w~2-?'O`*U\DF-i"Q%,Is3|$ % ?p 4n"0 :˥ߚG*ϗh,+/[`S?Cp-}}rB6UBJ]Td䓸]+q\n#xe>2`pߜ I;%,ps|nmVaO>ݹw9!c}wO).+:כS'밀?}ԑ?F'V[l +.lx^*Y*%%_\k,xi/l:g2XTO6oۇP@|S(o5)o_;oݺ6;(k}_&,d"~OMFčSE#0`ȀP ,>4[:9TgPPoo;&;Id8aL/Nowsa^4F/&͆0Eeǫy^aXYjebso*50;>#'endstream endobj 15710 0 obj <>/P 1214 0 R/Type/Annot/A 37874 0 R/Subtype/Link/Rect[93.6001968 663.229004 273.108002 682.908997]/Border[0 0 0]/H/N>> endobj 15711 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15712 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15713 0 obj <> stream q /X1 Do Q q endstream endobj 15714 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15715 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15716 0 obj <> stream H]o6+x\DEM5v稙 dKql>ACW'gF~=~|~T\4hN9&y=vWRV+{&_lbe{5pZ]jҺ߼v ,buԍͺ]GA%#<VnY#*k܎<ΗA_Y} }OwZP`:uJs,ԍ*230 )̀rS$C* uw (/{f{`}}`Q> '>1$'fkf`_3Fo}#7̾f`} /=JKBkiPBkiRܞf@ R=kZK3{Z/f@ R=kZK3{Z/f@ R=kZK3{Z/f@ R=kZK3{Z/fK )nO3 )nO3=̀ZK3{ fH Ah-̀ZK3{ fH Ah-̀ZK3{ fH Ah-̀ZK3{ fH Ah-͖* Rܞf@ RܞfHq{%fH Qh-͐YkZ%fH Qh-͐YkZ%fH Qh-͐YkZ%fH Qh-͐YkZ-UZK3=̀ZK3=͐ŔRu|.[5i[n)gw1MuuTw&W>㼻~:}&r2d:u0쫦$O8}\u;קSgC|~WP3G*BPZD5CѨ[asoWM?ބTL6[㭨Tٽ8*XkpyPna޿rm5zFliUMy)e7rM7~7 T`T0u46gisl1!VqS7윕br"g{?OY#C^j3[ƻ8+2l7[HtGMp>nll!|%xHՍhtjLS=lƕ ޔ6q*s~lqsӳ''ْ WelT-!q9Wk4:fx퐏+( xyG&g /+riwZuu=UhŃIendstream endobj 15717 0 obj <>/P 356 0 R/Type/Annot/A 44346 0 R/Subtype/Link/Rect[154.800003 666.190979 301.019989 677.221008]/Border[0 0 0]/H/N>> endobj 15718 0 obj <>/P 356 0 R/Type/Annot/A 15729 0 R/Subtype/Link/Rect[154.800003 653.190979 282.960999 664.221008]/Border[0 0 0]/H/N>> endobj 15719 0 obj <>/P 356 0 R/Type/Annot/A 44262 0 R/Subtype/Link/Rect[129.600006 628.491028 487.460999 639.890991]/Border[0 0 0]/H/N>> endobj 15720 0 obj <>/P 356 0 R/Type/Annot/A 15728 0 R/Subtype/Link/Rect[129.600006 598.591003 487.460999 609.991028]/Border[0 0 0]/H/N>> endobj 15721 0 obj <>/P 356 0 R/Type/Annot/A 15727 0 R/Subtype/Link/Rect[154.800995 580.390991 316.571014 591.421021]/Border[0 0 0]/H/N>> endobj 15722 0 obj <>/P 356 0 R/Type/Annot/A 44173 0 R/Subtype/Link/Rect[154.800995 567.390991 353.260986 578.421021]/Border[0 0 0]/H/N>> endobj 15723 0 obj <>/P 356 0 R/Type/Annot/A 44129 0 R/Subtype/Link/Rect[129.600998 542.690979 487.460999 554.091003]/Border[0 0 0]/H/N>> endobj 15724 0 obj <>/P 356 0 R/Type/Annot/A 44104 0 R/Subtype/Link/Rect[129.600998 512.791016 487.460999 524.190979]/Border[0 0 0]/H/N>> endobj 15725 0 obj <>/P 356 0 R/Type/Annot/A 15726 0 R/Subtype/Link/Rect[129.600998 488.091003 487.462006 499.490997]/Border[0 0 0]/H/N>> endobj 15726 0 obj <> endobj 15727 0 obj <> endobj 15728 0 obj <> endobj 15729 0 obj <> endobj 15730 0 obj <> endobj 15731 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15732 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15733 0 obj <> endobj 15734 0 obj [278 0 0 0 0 0 0 0 0 0 0 0 278 333 278 278 556 556 556 556 556 556 556 556 556 556 0 0 0 0 0 556 0 667 667 722 722 667 611 778 722 278 500 667 556 833 722 778 667 778 722 667 611 722 667 944 667 0 0 0 0 0 0 0 0 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556 556 556 333 500 278 556 500 722 500 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 556 0 0 0 0 0 0 0 0 0 0 0 0 0 500] endobj 15735 0 obj <> stream xռyxTE?\Uw}tzIB'$&$$$h qA\Xń!8 : 3#2̒qf~(7!Bfyc}VݵԩS|ܞ7wA AN=ɟ M5avl:0~?Q1wO=mV,>3E[PṺ)&'ͯ2΅mrݬy ec+|:[5&,|>{&̚8:&Ͼy`S:P^@3÷!҃X8Jgrպt%!(}3?LQ=!;7Χ[>EJAHxꉮ#uTimhP)PPZZ_;j;@ۀ4?zaH +ƎEȉTvgW|aYgbWѢAJ ?&#~ bTx󁔻}n4Swx}(b&,>CV6[|'"m,l~RL;yK4@{}=wyߓ6 <}R6&goh#{[|Ep|tL/ <}6C93ؗk_2\ᦡC^OEQoAxKKhdnhfX~UtCJU$2J@~apW҄K0FQ/jEEQh/x/*= "׆_QO޹ȊDDK*܆i2y9Ƿ}|,ͱ=yH E D6-֗K} ES2^>r#M;4o4y9f:<57NphJYZڠϞ1bJb|b G 3ff&<~:0yvpJy`|]S`~4ScS[c 5&ͭY5:>@ҨKifu)N=LH%8zmAMG E&tπ}'jEc/ˢ64;:ΣE8:֣H B8:C9hY(*E;hڃo Ϛ:^鸈D4 ф*C`2:1:Cv+n8H.+]ѱOp"R:ܿ AVx^דy9>JVV^ 8Ny̩Thd o#|Bb0?H*E\b2w2n WIu8!EKu'9t] ˍCqm[a&q|_o5542#{ .3Y<n; >&Jw;;T3eh( MFЊ}m^;NkFFx|T<?u. b#n2L$H40.&Ȍe{\c9ZJvZb7wma㊸>Pn40R~- `^a Y_,aq2>݃&r<m؎' ]Jle2'H~h Z܉w|A l@;26B{2zÓSY0y [80euM&ppd5 OոSjjz}2}8}u aF`+ʌI={dʄUnn(w5k@|n>[SgeujdPT8 . pի=GVWv-QnèX6DO,o Z.T4DD9Uoj/sᢟ^?]5%Pbws K;c]Jd8pgqp?ԹrUpxzC%Am??÷u:F9<#nۻ ]W,t:Pᘫݬ]?Wwr8#*#E8=d&ZfC1, ԙۭh~X ~"4 ~ga|~|V8>+oOVȏp lS@pbU=ݰ q7@~Dϯ*㴭6(7@^1-q n` ۟]]*ut%eR0$)if c9O E0f6d9!/Kc)7NYq/d"$2&_I0J]OCy#$?#\J "{;A_9C(fʄpt Jp-Kr {T x!ϋse`c.e# AA/Q[yMh˯n7LuJ߹V=*{ ?D#s6-|/||漅e>e#r< $*46b3Ӡ;cI 50_7@x "Wq2jeڰUA#l8]VwWJ U)1\B`Ozby8 @^5M|㚙zFz /@g4{4Ve\#E1i&Hi&QM2ٔweqgb}>tǼq٨c?JH^HYuO_>t[V&A7<42ϩPK]EF!AUsJh{!P ,ޫ /k zMF"bAqb O`Ă4 ylf7c=/x2L?͓{oA?ݶ,S،o*G1d/LlV;enq#{h d[ڰm>{bێI?~/gQ=7S#{c.Zj[XT@$TyzskR"x`sTLA) 57 w%"[/pL1H8IoQ8@UP jaL`'F ":-8 ab(yjLRF ֋3 *<.?2.ZPv/ݿlx"'x]C0y .m+_Gݲ5/Q^m1bQ{mUFUj| 7]HM¢NT ŨQ~jWr%بdQ g/$}$W?D6;گP*K,c/+zBn9{_e]}C8DEC0 ,FŖ`nn?}Zjѩ17,߸3̵;ǞWM35>9%A˽}ذ*\0nRV)ڔ|_1 HH̰~R2>3Dž`&*(,a`8{ + ]1F9,~VPk֌1}H<-vTjC{H\fKq2Yk qW3{18dMZ繍ZPXM`3&k_\X?;q2N̤pT%{/,'GC±dfa1Yh #t<^Qy#"嚮 :SPHImwOY0Ba2ڝaΦa)$Ze 摀,SXV.ɥ_ whhcH ݖ2dNᤚoavKE3ݵ/~3mc#52H؎ DсboXFn)2+<aԽ, /zL)g~EoH0s\\-P/䶅LamVYHcgcAP1a]tFHD' ($6I"xOۂQ`S_ ^k88߿'O:+߼|WFo GޓNI5O\~ؖ_qŹ6 (nȉi1_ad* MLN&u8WBn@[ !K8ԋZ+$ * f/eJ-4"`0 ܔ;u]z 3w"7Dydd%6k8'':&mߙm6Phh,Y𲬊˫J&j5AtRpj1mV Y\G{z\%l'tXpy}v#k';*푴Mh>< TZ(:kNd 'Jk!㙧5'S?3~gq+rx[Wc-VF?˺JtV]7xMFEXDM/"HAklÃbzb!3:Cmxځى &+qJ,#yWQmj%+K Gl6& ǪH!*ϳN%w?^i1R.YsЇߒ3/ޕKWC=vox΅sD bDVS!r՚mz+Znd4(B'@%Ϟgc䮫HS| (OdxG@lHx s̞Ypٳp%2;>cf&T^৩ k$'Y!eHp-mx[:b4 ز  ,iarYS߿3<=ځoO_hV#T΀ :\UB[lb j%S?) 8bD&dAvq,MШ Wa, VJgydw _ i؊!ixt:e;KD4wN-S l`zMg<)|z)o|u6ʊA#^I@=bF´SNP#҄$X[OׇC7 1oXM9V0V`> ʥ̇J peTS,T1%a0,B[bQq5&q&0S|jxq~t2O`VNBX~ i%4rC2%'xZ;w[;D9 "@"܈=x~;R)i,:wZp3)܂k)'ɽ YaT Ec\\A㠍89?*" {cjjm)ȡRw[*ZTĂָmtbm3twqTz,j?kw@7#2^x'n:֣?N7'ZzW/A&nʘ8,e^wbSC|Qآ徹tN:t})S?Ez\"޻"A?97!7]=ݸHVufV^::*EլlbV&]Lq]b[@Ix&\YoV>4,,O׬͙;ý|3q*S:> "fi봋quO̷,trqE\8]NaFr[kA,@44L^ShJNF9`ɲ&HAOF}ZIZ '@Iؕ/Ua]H%_arAe ^.F"w&fH#6 R`˿! zXb#~9Gsb, ˏ>[*;};XU8]/= *! "k>ip,}&tқ04r-q=3 tny!'ZB;V s͌3-Lk5acrȋ U%C_d馻)b8Q?49 A:UqӨ )+Ȧ>l}mYyc*׼0Ty5YGFe̸Tjarb43E^Xٞ5.lWNpnéS=劯]ebRt`8 T'k$+fv-Dj`)mOJJNR2۾œef^iD IhϞ{6@ Eپa e:ftZutg #໔nrT8fsjȚgH4C" pzg.7ɗ\{vq:UpHF7B"k%^6pdQ$]G(n ˬMjY-#R9.+N:ΖA?5;˺B]?|̟n!’Ol[Jw7}W_zSL*vk+s{tW~sbދŠ A5„8SO)N~sMA+/=+ޒ ܱഠ 89'tI,h"\QWXլv2;lmj7&0ְ数kbL˼wd5`FZ|>oیm=Ǭ~ZX$1EVX7>b= A0zدB(/1#axtl EF* RTC2*QyJ]&ԩV aiY/lV&;=*JQ1Y%r!XE`ORQ«9@D-\1a(J jf8 .U\ ޘ\iU@0,|lB cv#q^,'l& /:a+B!&GYwesv񤽑f'Τ9AD[O`l -=/KF{)%tZ ˅ Rf ;֓J UDU@ Ba,Z( D <dCFJ &CF ! <  J)U©a0mmX} @YO!!a#[RB(RߴI}h6m>mbİDnpz stJ d;29Đڢ #IXJUdReՄDa NJ@*eȡ@_ۚs<'g?hWC7;Im|t \MzEvWmvv'ŅD3yHxxl*.ÔO1>U$|e77?~[iw+c 9H)]b(.Hҹt.zyY.|%w,^ٳK_t.r7νE rjq?1C :M#԰:hsDǙ-Zbcf1ʼn2iקg}/.U N $6[=E XXU!a{6dʌC [pHrq8‘;h, y"`GFaz׋0>zެgyu(ɕF~ cGaHeцaY6 .r)hjk̲IMK}48-n @2rd/0i0ߨ-Goi/ܖ5bQgsTс [9s>©'2aI:3 VظaUwH,MJu"7*0k5Q0>-^7;iK"-:IFb;f^dN߼WdۡoimY+˽ 듙kwA[*f.XC!EXXّvإĚ=L)S<ѣeɰfpΞjmD'q;2{4@Q _5 Ђ pWӫ2$7FQ'$6tZ&I +Ή:rrG c$MS/PB :<0.'oGl쾿hi"~/f7-yE#_?γe}gSaKU'Gfİ-wm~XӤe$]'SNBLA5M6b/E ZIQnIAV ҉̂٢xy2ExXΘ827qVP_ Pl|8yz3T Dd"\ v̏oX0xFI]SMNKNv,c,;6194 6Py$  cOI,a8ڐN0dzʞY^I> [[eK5~\6x'{Z^ n M!M F0sю ! E`Y:~zJN t+"Hð%00&,%I%'Ke$ꠀ++iDa1IJ= q>%i*Ijٸto|"q۷ Iמ$)ir7u 5 W&-G|XbA&ڴ6]DڮrVMS!t( k <61&eÐřBqD۰f[vF )tJ톕)7IuK,fN%OthљCf<}ș2{V6smɽKry氵;O=vY֙vm4z{\,',o#z~l׃xJS(naOq L[dbKh0hWOÒ⻖B%+xﲽ]㐧XtW+ 719dZ7gz=,t176Sˑr6O[_bw;m^" jQ .EbV9'.ݛP^V0[H 6q)0WHD+dy> E2F1򞃏a u響cyXcø\&i\z]?Fzikaq^nqDE۠=Ak=nUDd%Xׁ$#okrVa6\0 vhÈmEmljQ'D9t%'xKU݆ ysg!HۼhDEp7?0fh ť7ܕ ib%яr Uj.棢ƨ<~3ʪشXN@MslkfgS;[50qA>Hsȫ6i44ѩs dhy26mN{_Mn^x鸝6>R> ^(71xC_'t[,ašeh:"fPN4rMmHԡkG2WғqhOb]!jřݣwW> *p¼ΐMKdw0pFB&ni&˦T>*+#D&O /R/,% ab ~ln%ݜթR"$M3t{L؜Z=Pf [[hXDYZ_DE2=Zlc$FEzeBډRϛ* (u0N'a @/a!E .r#s%P I#J@U-x ERx"2U^N׫d,f(LUW,51W+wM;rc?f#{pN]plgac{sGE2xIڱu+:LO=vmGl7W5Z/XkJ%HNAE\B ͝i79NFv}lPkB8λdif_ұO<>Z(4Z4rj:A _3Ef>c& hv( i(9vnw7CV98VC3&,܌ d& !\k=$;m7#iIhD]c!kz#VO^p֋eSNCu7+h*H;[Ng8q@(])EvIdl NmbYF`iᘗk Ć;Q^0eL-epHij}egDO/4X$zqؤ$ BN Bqs{j<}we`8tqi>Dlbꮝax q!Jvr[$pV|SyV*(EbrjZJfZ1c(xl1.fÏ00,7 섁 |Po .D.~RsqH3K ~$f0= ~$J ͖/M%'neXf|k̙V(ȫwϿ٣>8* ,me_?T^;0S QO<20@<<Xtٻ;s4ŅmR`\ڈ]x)5E\ZstW4@u|oYmYiigPh2V &dhhۅvYUhv–sorہvy%G9fɢV<aV:Cޤ~ ؇QC[:/1a#ޛ2†;YFaL@ft#8s]9<ķY˯[E 8~xbֆof>;SJށEI6sWŧ١ Q^ L++T-4~ΧБN$<&-jf h2DeZET9X^^.r-e4.oeW{k}]F;vXhknQG(f7-' Pa\yL廾q2>2}}u"]ǀtz,jSM4A>C> B(P!PP5PB@v2 "( TTT Th%&]@m@g> 0LE  Ч@~@E  Ч@~yFE ;:?A]y=)uʠo9޳[^xvrN2[VV.Vr=~K[orY2dzt̟ʕN-e|?xn!CoV֭L> stream q /X1 Do Q q endstream endobj 15737 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15738 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15739 0 obj <> stream HWێ6}W'.r!v6XINv_=VZ];H}pXuC7Zw7?K!EFVE.ky:-N}oqhx(/n5l?/iv-N_xlnV %wM$RD!d}zkǃN.|՛Z9\q A#S |ߗæ\ #qKN) l$=1gHM4"ɀ} `DG9DQT$!NG1`)U,ǰvjfJfJaԛJaԛJaԛJeJeJcԻJcԻJcԻJgJgJ}Ǩ*wRRRRgcZ͸bȪS Xk)Z=ŐUR Yʵq-ŐŨ\R Xk),F}Z͸bbWՌk),ƵCrf\K1d1+jƵZ!Q_V3k5ZøbȪS Xk)Z=ŐUR Yʵq-ŐŨ\kR Xk),F}ZøbbW5k),ƵCra\K1d1+ƵZ!Q_0k Z˸bȪS Xk)Z=ŐUR Yʵq-ŐŨ\kR Xk),F}Z˸bbWk),ƵCre\K1d1+ZƵZ!Q_2k-ZǸbȪS Xk)Z=ŐUm f}òY[-X5!AeZiaul}xߟjqV%\D? B+/Ng/+[-mY0+RǮ J+H; m^fu8î(qV(kFU}Яp]In}0׃OMT&1a~?]8כ8aonmdqjRL :K%h[\%V [3i|\2ڶMԆt-`;ݱ'1|aa|S)t$,k9plv ݸw`eMsʀj[ ͮ'ׂe|TH͑d;FRm$H6Q^mT )_( yQzw\}2SZV:?U*gtIC$HVǼz%eZſX=vW_>mVpx b7c<ݮDH4| x0}̓6w4|٧ﹷ0J7sA:ͺ\E>m+dyϤXvE2SɬH$ YUO$UO̢E̢}J )Y?ݬ!@xӡ ywN}:wg4Nٝ)g!(> ɲHD,P]3 IߡpR9xNU/Q0wF%W*s#(m]f=ee_ eY٪3վbY)+ UZT}ـ/YUmt:tTՆ#j7_pNܪK'.c-<]:fÒagf(-_r|/xRNl)G켔2[ rDK9aRNl)G켔2[;/Zy)GdgQݟZi<??]C 8q˄4=lgKb8qg9Xz bvյ)V:r?[xU-wo^#kQ\6vPa/ƒp/Ws tklpUd{&CV +孏i(4Vs_aO7],J iҬv~#Vӕ p9~:X==yŰzL =w1[+0P {߫k)7ߤ". ܤS( Ȁy ^& hAx=<k)Yo03LFNCI J<9B[2* X{zvÏ0*~sQ5Um0m^M[Q/7\RPhV:_dS«Jf+tZ7RspiZ5{IUR\khk{[@ ;U5VШ;Y;=="em/gP]0P ? : .YnUkN3e.G[]  'Ehvop(=@[tSޟ`gZJI5-$՛[4cQFPShJWAlq>H%L=0um0kkт#~:8"_ptҜJ是ly2OJkwx]Ž'G@#k̪jwq&tOWS1; < Hͼ+TOм֌tR.FNeU%,I /D YCd叶g6|ĕMLh zklNz|~WV1NԵ BSK?32bZ0gשB@㌛W /endstream endobj 15740 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15741 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15742 0 obj <> stream q /X1 Do Q q endstream endobj 15743 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15744 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15745 0 obj <> stream HWmo8_ 2^p6ݽCqhBe[]KYr쯿z19nQ Gw*N}Ow޾5ßm+*ԙdD2-S| w0wy(|SUZ*{ ]ܯ"BAa0gYHfuK)e\4r޼: RTؗ' j@ b6.L/!+~0e„  O/!ȵ}L`x,=C>!J(;>y(A{A{I{I{I{EW{EW{M{M{M`x}O >%ا`z3}>'`iu}u պ>D]պ>D]|Pj]jZׇ(ZAPCS TET+պ>@u}"{j]jZ(BQ{OPCS T@u}ٻ>@u}ٻ>D]պ>D=JBQ{OPZׇ(ZI!`Vu}"TET+ պ>D=JBPj]j%Zׇ(ZIՁ"Tw}"Tw}ٻ>@u}"{Uj]jZ(BQ{OPCS"TE!`Vu}"{Uj]պ>D=*BQ{OPM!gE!gY*\*[/2jYpy< >Y&IS o@=J|^>N#N]CcYegfc~?"0rZ Cr^ &u6.moV_[ZUT̬o-iict_jΫ9%6PcROB3$FN ,1i V,#i|i='jKA9-uq/)r%fRc$45$xеZzwwnxVJSF$jϽaE1˴4&j!R#>¼"GY™z;s.zsY51cڦ nx뼢"F{|M8 ]FRՐL7E*ZWcm0vH6O& `̧!:I^|p+T@>lڲn4tX6y&7̭9V2^P/ fc솂ޔ+=. v!ڹ`hs7 qa5)[L~ZO}9zM)fq9} fVi}).ǛRs _tWXQ.jm7Ydǧo֟)OE"f5zuÇ帹 k1h]^Ra\M0luSCEmcw2@%&B/Uoź/RdM_=cƔs+Zl g(#u3m%L[^.x  uصk_w ;oDm]^ 3_ (q2V847Tf|-OԿZ)OvtZ;/>B,\%^ Y4/ xk0eӝR%>\S<*NSA aXGkhtŶ4;FjS\g> ٪Jk㖹 zIȟٕ5Ԭx{esƗpiZ§24]@?g[uɜ\tGُ:Z8c"QN/_L8| ,ϋ+; ]nNQϕaXz6t4ιi;b0`+tM?nWw~+ g*g!q8OG41|:\\=UnC$6LlK X1-T25 Ca,}h U򇧋ew>>ZTp..l㿆J]w^ڰ9ןm[[OPlӽZp04x|9i)+g45pT".J!hz|Zf9SebԵO6MЬ&7-MaT)\(xJ`ϭe]-RU6/ fOl OMcG9e905SIfJ)0e?!ApD|Z?$ş(<8k瀌LqmTbব0ȇM PęV>uFI\at)l'|y[ZQCO(DG~g O**KDZ0&A涨J4ڷQP &I4EO 1+8V&tKG1OG!9zUVK ycFiL)RpV *Ͻ?KYNNb.UWW8`>#p3Nb(\$1{˟+i:')-l`BL#߬O4RM%\#C-3OɱQz]# Va7dUUu~zSj/=5n)BPPnZNZG:P"L:KG8]oR7e-۷,'ocH ƮyC5҈?=v;O"az28ވizELo;(EOEJ #X٤^djG瑝@Ta\q>q9=+j̤>gχ Уm˝_?8g*hpA`M.X? pPYtZt+m*Ϙ!y!Elt IeʺI!2 ._νAU ڬ>7}ȁO tUk^6D8J k^@д$&uC3-oFK1ɊaBAxAc}-#ۥa?>, {}g}\gP˪secEr`Фo9Ǎ?Ф0_@0(kKF;wEh"P&{O[.6CaH-vOd?Q&Bf@E8pO?QJhѹo Y,[!&!"aRue֘1yjh 3ٶ5ņ>h7&QyH]"" ?R*RWt8h%a@|<;gх]D +CR:>ECe˿Ty0gQ]LDC66B_ 2@y˗w=!8alH#T-!eounssYIW #E}KfhVw]q~sTG׽<wKo[Ь}[GQ'F}Z<Đ(yD"f Hbt:h5 7ZE5,yVDg lވ{ )J62x>V1U&aǔdʎ)]dQu$^ 5Cat>ms?b-zj].OG V`bLsiO#:܄ecgK걎4.KD9+jgC9_kwx\E!Xq-W=5UH-.'گM΀:X2hv=2;AB4%jѢ`T vޝuGŀ*`-G5X65pg$bWC$A>Z!v\[ѿOz޾ۢ  BbЧr.׭ nu> endobj 15747 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 15748 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 15749 0 obj <> endobj 15750 0 obj <> endobj 15751 0 obj <> stream q /X1 Do Q q endstream endobj 15752 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 15753 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 15754 0 obj <> stream Hko8W @fR,:T3dl'MJdGRwQ-^f=yݻΓ&Sf rIT&R͉"Ul7N(yL)Hrz/g%?,7bŜlㄓ]~Nٽ L Pb*FC32]%"=UjVQFipiB! >&";a\C7_ɗ?)Y r7&ܿĚ2$VklaTD0Tpa TŪ T Qa T=GyD/z ^DDeD/z+^E WBUDzk^G7AMDozg}g}[F<ӆU׆1׆1ØSa TkØS!k90T}Z6 qms*>r-G\Ɯ \׆1P! cNGkØS!k90*ĵa̩ȵqms*>r-G\V@\Ɯ*cB\Ɯ*cNӇ1P! cNGkØS!k0*ĵa̩ȵqms*>r@\@69BV cNGk׆1B# ĵa̩ȵqm[%qms> qms>9UL@69BV" cNGk׆1B#Jĵa̩ȵqm0T}Z69BV" cB\Ɯ \+׆1B#Jĵal(ĵa̩b0*ĵa̩b0T1MPs*y?MNSF>$Y6D/{hN7~ޏH?6 8#6&])W| RSk|_lD)sLhJ4Ej T ѪdjMP(́X#PW2yەbLd"&i GT=Ez]䍢adomޔWۓlj8\ Z{zn/qRlOX6ڬWzO^fbuDLAarzvYtkJ糫gΣ*WoO<PZob_P,Thxpʼ=-NmJa7U}5{WF{9İdp bA Y3>?.xDgj.Tfdӿc%5NP=b6כ%5`hKy/k~[?AVa}?l3?tcr_Wz5{?PW#/ =EHb¬l(sqX}Jf LaSxH֋ 罡M1vc2z4X2fv٫ 3"a{ ƤVJtcQɁyQ+AY i{|3TJ_FlLx/? x2xbC5>׌Guzy|xvv&OS ˞F7gg4z,B4n*\"hB5.ܕ …gh9Xz=[ov<,'I#TNæ٦_0NY/h(sz+$R` 0w2v7w'x}}-mYw2Vv;rU|ζ?Ncqؽ:9"V6vyޱ<\Am7WKϵ_wUW6,r9(\w{~>g^B͠WSuu58N]krIk nǦTi@#wL2nx7QÄ4y,"LN E&&_ocrqdwmxx7z~~ou z&cL0@QaZ*Xګ{Mr> a^4nmNe:7}q 82̓e-gQY9*Vݬ\T+4Cf[)6Y>Ӄh;)Ӎ7ۿ/2'}v&ż>L1ʲLMk gu^]6լQw`DZ˿R_0<ܒ71mnMhPyO1w^еbu _ҫmW1 ߤa@]6b8Pl7h}/%^*E2^I^{.K9Yhf(T ÓUW~ME/p Lδ 8gCК+>'x(Щ1O~NT[qI~n#xAUȕζG2.DPxGVbx'uG\Q^G̭Pj$ZדYD2ח\z$ciTi*|k%h'&gx]a`&5K>~mK+bg#R-ziaDl7CeW||_Ք+abU&0*zJ@UVk?k!&Q>`su O *&7~n4d3`>:}\^$('nwұi$\9פ >4!ã#Ҫ6=*֑Xih2 ihqv>SFMѡ sS4i2I+#$+>:[/uo< :"~Qazzo8OXFl_l[c\$; s]c?>ET B <ͦgSiy.kyZmEvfI=-ghBhF iG{?LSw\W˻~\g,D7y&ff{hfW@iC39ѺrV&0I֋7I|4XfA<:Z)T(D'ǗwlsrH}eX5V}Dz̥+/uQTn77rpXupa/x5gHn Y!!I !b!H `\")CX)z}0*Wp2K@wA,3k^ʼnRljHS=u v͞a 8=B7^tlTofV4a@ ˢ5JY@}p[ m8ӹO"]44=m@Dt>T*Nfcu+٨-w/^w|VAl dl:J Bc$ qL Qq1dI8ud"WȄDɎd>ّ$>DQч9U&t0UTh'HkVzW`8?^|`endstream endobj 15755 0 obj <>/P 7234 0 R/Type/Annot/A 37906 0 R/Subtype/Link/Rect[202 670 216 678]/Border[0 0 0]/H/N>> endobj 15756 0 obj <>/P 7234 0 R/Type/Annot/A 30138 0 R/Subtype/Link/Rect[218 670 230 678]/Border[0 0 0]/H/N>> endobj 15757 0 obj <>/P 7234 0 R/Type/Annot/A 37894 0 R/Subtype/Link/Rect[197 660 214 669]/Border[0 0 0]/H/N>> endobj 15758 0 obj <>/P 7234 0 R/Type/Annot/A 30054 0 R/Subtype/Link/Rect[215 660 229 668]/Border[0 0 0]/H/N>> endobj 15759 0 obj <>/P 7234 0 R/Type/Annot/A 16097 0 R/Subtype/Link/Rect[231 660 247 669]/Border[0 0 0]/H/N>> endobj 15760 0 obj <>/P 7234 0 R/Type/Annot/A 16045 0 R/Subtype/Link/Rect[248 660 262 668]/Border[0 0 0]/H/N>> endobj 15761 0 obj <>/P 7234 0 R/Type/Annot/A 16022 0 R/Subtype/Link/Rect[264 660 276 668]/Border[0 0 0]/H/N>> endobj 15762 0 obj <>/P 7234 0 R/Type/Annot/A 16018 0 R/Subtype/Link/Rect[190 650 202 658]/Border[0 0 0]/H/N>> endobj 15763 0 obj <>/P 7234 0 R/Type/Annot/A 16014 0 R/Subtype/Link/Rect[199 640 213 648]/Border[0 0 0]/H/N>> endobj 15764 0 obj <>/P 7234 0 R/Type/Annot/A 16009 0 R/Subtype/Link/Rect[215 640 229 648]/Border[0 0 0]/H/N>> endobj 15765 0 obj <>/P 7234 0 R/Type/Annot/A 16006 0 R/Subtype/Link/Rect[231 640 245 648]/Border[0 0 0]/H/N>> endobj 15766 0 obj <>/P 7234 0 R/Type/Annot/A 16001 0 R/Subtype/Link/Rect[247 640 264 649]/Border[0 0 0]/H/N>> endobj 15767 0 obj <>/P 7234 0 R/Type/Annot/A 15996 0 R/Subtype/Link/Rect[264 640 278 648]/Border[0 0 0]/H/N>> endobj 15768 0 obj <>/P 7234 0 R/Type/Annot/A 15991 0 R/Subtype/Link/Rect[280 640 294 648]/Border[0 0 0]/H/N>> endobj 15769 0 obj <>/P 7234 0 R/Type/Annot/A 15985 0 R/Subtype/Link/Rect[296 640 308 648]/Border[0 0 0]/H/N>> endobj 15770 0 obj <>/P 7234 0 R/Type/Annot/A 15979 0 R/Subtype/Link/Rect[207 630 219 638]/Border[0 0 0]/H/N>> endobj 15771 0 obj <>/P 7234 0 R/Type/Annot/A 15973 0 R/Subtype/Link/Rect[222 620 236 628]/Border[0 0 0]/H/N>> endobj 15772 0 obj <>/P 7234 0 R/Type/Annot/A 15970 0 R/Subtype/Link/Rect[238 620 252 628]/Border[0 0 0]/H/N>> endobj 15773 0 obj <>/P 7234 0 R/Type/Annot/A 16017 0 R/Subtype/Link/Rect[254 620 266 628]/Border[0 0 0]/H/N>> endobj 15774 0 obj <>/P 7234 0 R/Type/Annot/A 27557 0 R/Subtype/Link/Rect[226 610 238 618]/Border[0 0 0]/H/N>> endobj 15775 0 obj <>/P 7234 0 R/Type/Annot/A 16008 0 R/Subtype/Link/Rect[202 600 219 609]/Border[0 0 0]/H/N>> endobj 15776 0 obj <>/P 7234 0 R/Type/Annot/A 16004 0 R/Subtype/Link/Rect[219 600 233 608]/Border[0 0 0]/H/N>> endobj 15777 0 obj <>/P 7234 0 R/Type/Annot/A 16000 0 R/Subtype/Link/Rect[235 600 247 608]/Border[0 0 0]/H/N>> endobj 15778 0 obj <>/P 7234 0 R/Type/Annot/A 15994 0 R/Subtype/Link/Rect[207 590 219 598]/Border[0 0 0]/H/N>> endobj 15779 0 obj <>/P 7234 0 R/Type/Annot/A 25936 0 R/Subtype/Link/Rect[197 580 211 588]/Border[0 0 0]/H/N>> endobj 15780 0 obj <>/P 7234 0 R/Type/Annot/A 15982 0 R/Subtype/Link/Rect[213 580 230 589]/Border[0 0 0]/H/N>> endobj 15781 0 obj <>/P 7234 0 R/Type/Annot/A 15977 0 R/Subtype/Link/Rect[231 580 245 588]/Border[0 0 0]/H/N>> endobj 15782 0 obj <>/P 7234 0 R/Type/Annot/A 25821 0 R/Subtype/Link/Rect[247 580 261 588]/Border[0 0 0]/H/N>> endobj 15783 0 obj <>/P 7234 0 R/Type/Annot/A 15965 0 R/Subtype/Link/Rect[263 580 277 588]/Border[0 0 0]/H/N>> endobj 15784 0 obj <>/P 7234 0 R/Type/Annot/A 24966 0 R/Subtype/Link/Rect[279 580 293 588]/Border[0 0 0]/H/N>> endobj 15785 0 obj <>/P 7234 0 R/Type/Annot/A 24903 0 R/Subtype/Link/Rect[295 580 309 588]/Border[0 0 0]/H/N>> endobj 15786 0 obj <>/P 7234 0 R/Type/Annot/A 16005 0 R/Subtype/Link/Rect[151 570 163 578]/Border[0 0 0]/H/N>> endobj 15787 0 obj <>/P 7234 0 R/Type/Annot/A 24232 0 R/Subtype/Link/Rect[190 560 202 568]/Border[0 0 0]/H/N>> endobj 15788 0 obj <>/P 7234 0 R/Type/Annot/A 23436 0 R/Subtype/Link/Rect[197 550 211 558]/Border[0 0 0]/H/N>> endobj 15789 0 obj <>/P 7234 0 R/Type/Annot/A 15989 0 R/Subtype/Link/Rect[213 550 227 558]/Border[0 0 0]/H/N>> endobj 15790 0 obj <>/P 7234 0 R/Type/Annot/A 22656 0 R/Subtype/Link/Rect[229 550 246 559]/Border[0 0 0]/H/N>> endobj 15791 0 obj <>/P 7234 0 R/Type/Annot/A 15976 0 R/Subtype/Link/Rect[247 550 261 558]/Border[0 0 0]/H/N>> endobj 15792 0 obj <>/P 7234 0 R/Type/Annot/A 22048 0 R/Subtype/Link/Rect[263 550 279 559]/Border[0 0 0]/H/N>> endobj 15793 0 obj <>/P 7234 0 R/Type/Annot/A 15964 0 R/Subtype/Link/Rect[280 550 294 558]/Border[0 0 0]/H/N>> endobj 15794 0 obj <>/P 7234 0 R/Type/Annot/A 16012 0 R/Subtype/Link/Rect[296 550 308 558]/Border[0 0 0]/H/N>> endobj 15795 0 obj <>/P 7234 0 R/Type/Annot/A 21402 0 R/Subtype/Link/Rect[190 540 202 548]/Border[0 0 0]/H/N>> endobj 15796 0 obj <>/P 7234 0 R/Type/Annot/A 21344 0 R/Subtype/Link/Rect[212 530 229 539]/Border[0 0 0]/H/N>> endobj 15797 0 obj <>/P 7234 0 R/Type/Annot/A 15997 0 R/Subtype/Link/Rect[229 530 241 538]/Border[0 0 0]/H/N>> endobj 15798 0 obj <>/P 7234 0 R/Type/Annot/A 20538 0 R/Subtype/Link/Rect[249 520 260 528]/Border[0 0 0]/H/N>> endobj 15799 0 obj <>/P 7234 0 R/Type/Annot/A 20116 0 R/Subtype/Link/Rect[222 510 234 518]/Border[0 0 0]/H/N>> endobj 15800 0 obj <>/P 7234 0 R/Type/Annot/A 20088 0 R/Subtype/Link/Rect[231 500 243 508]/Border[0 0 0]/H/N>> endobj 15801 0 obj <>/P 7234 0 R/Type/Annot/A 19668 0 R/Subtype/Link/Rect[209 490 226 499]/Border[0 0 0]/H/N>> endobj 15802 0 obj <>/P 7234 0 R/Type/Annot/A 15967 0 R/Subtype/Link/Rect[226 490 240 498]/Border[0 0 0]/H/N>> endobj 15803 0 obj <>/P 7234 0 R/Type/Annot/A 16011 0 R/Subtype/Link/Rect[242 490 254 498]/Border[0 0 0]/H/N>> endobj 15804 0 obj <>/P 7234 0 R/Type/Annot/A 19053 0 R/Subtype/Link/Rect[202 480 216 488]/Border[0 0 0]/H/N>> endobj 15805 0 obj <>/P 7234 0 R/Type/Annot/A 19028 0 R/Subtype/Link/Rect[218 480 230 488]/Border[0 0 0]/H/N>> endobj 15806 0 obj <>/P 7234 0 R/Type/Annot/A 18967 0 R/Subtype/Link/Rect[193 470 207 478]/Border[0 0 0]/H/N>> endobj 15807 0 obj <>/P 7234 0 R/Type/Annot/A 18950 0 R/Subtype/Link/Rect[209 470 223 478]/Border[0 0 0]/H/N>> endobj 15808 0 obj <>/P 7234 0 R/Type/Annot/A 18898 0 R/Subtype/Link/Rect[225 470 237 478]/Border[0 0 0]/H/N>> endobj 15809 0 obj <>/P 7234 0 R/Type/Annot/A 18860 0 R/Subtype/Link/Rect[190 460 202 468]/Border[0 0 0]/H/N>> endobj 15810 0 obj <>/P 7234 0 R/Type/Annot/A 18840 0 R/Subtype/Link/Rect[161 450 175 458]/Border[0 0 0]/H/N>> endobj 15811 0 obj <>/P 7234 0 R/Type/Annot/A 18809 0 R/Subtype/Link/Rect[177 450 189 458]/Border[0 0 0]/H/N>> endobj 15812 0 obj <>/P 7234 0 R/Type/Annot/A 18770 0 R/Subtype/Link/Rect[199 440 216 449]/Border[0 0 0]/H/N>> endobj 15813 0 obj <>/P 7234 0 R/Type/Annot/A 18727 0 R/Subtype/Link/Rect[216 440 228 448]/Border[0 0 0]/H/N>> endobj 15814 0 obj <>/P 7234 0 R/Type/Annot/A 18701 0 R/Subtype/Link/Rect[197 430 214 439]/Border[0 0 0]/H/N>> endobj 15815 0 obj <>/P 7234 0 R/Type/Annot/A 18658 0 R/Subtype/Link/Rect[215 430 227 438]/Border[0 0 0]/H/N>> endobj 15816 0 obj <>/P 7234 0 R/Type/Annot/A 18645 0 R/Subtype/Link/Rect[190 420 202 428]/Border[0 0 0]/H/N>> endobj 15817 0 obj <>/P 7234 0 R/Type/Annot/A 18627 0 R/Subtype/Link/Rect[194 410 210 419]/Border[0 0 0]/H/N>> endobj 15818 0 obj <>/P 7234 0 R/Type/Annot/A 18594 0 R/Subtype/Link/Rect[211 410 223 418]/Border[0 0 0]/H/N>> endobj 15819 0 obj <>/P 7234 0 R/Type/Annot/A 15969 0 R/Subtype/Link/Rect[227 400 239 408]/Border[0 0 0]/H/N>> endobj 15820 0 obj <>/P 7234 0 R/Type/Annot/A 18536 0 R/Subtype/Link/Rect[165 390 182 399]/Border[0 0 0]/H/N>> endobj 15821 0 obj <>/P 7234 0 R/Type/Annot/A 18486 0 R/Subtype/Link/Rect[183 390 195 398]/Border[0 0 0]/H/N>> endobj 15822 0 obj <>/P 7234 0 R/Type/Annot/A 18459 0 R/Subtype/Link/Rect[179 380 191 388]/Border[0 0 0]/H/N>> endobj 15823 0 obj <>/P 7234 0 R/Type/Annot/A 18424 0 R/Subtype/Link/Rect[193 370 207 378]/Border[0 0 0]/H/N>> endobj 15824 0 obj <>/P 7234 0 R/Type/Annot/A 24296 0 R/Subtype/Link/Rect[209 370 221 378]/Border[0 0 0]/H/N>> endobj 15825 0 obj <>/P 7234 0 R/Type/Annot/A 18331 0 R/Subtype/Link/Rect[223 335 235 343]/Border[0 0 0]/H/N>> endobj 15826 0 obj <>/P 7234 0 R/Type/Annot/A 18294 0 R/Subtype/Link/Rect[207 325 220 334]/Border[0 0 0]/H/N>> endobj 15827 0 obj <>/P 7234 0 R/Type/Annot/A 18231 0 R/Subtype/Link/Rect[220 325 230 334]/Border[0 0 0]/H/N>> endobj 15828 0 obj <>/P 7234 0 R/Type/Annot/A 18191 0 R/Subtype/Link/Rect[232 325 242 334]/Border[0 0 0]/H/N>> endobj 15829 0 obj <>/P 7234 0 R/Type/Annot/A 18150 0 R/Subtype/Link/Rect[244 325 254 334]/Border[0 0 0]/H/N>> endobj 15830 0 obj <>/P 7234 0 R/Type/Annot/A 18047 0 R/Subtype/Link/Rect[256 325 266 334]/Border[0 0 0]/H/N>> endobj 15831 0 obj <>/P 7234 0 R/Type/Annot/A 18028 0 R/Subtype/Link/Rect[268 325 278 334]/Border[0 0 0]/H/N>> endobj 15832 0 obj <>/P 7234 0 R/Type/Annot/A 17999 0 R/Subtype/Link/Rect[280 325 292 334]/Border[0 0 0]/H/N>> endobj 15833 0 obj <>/P 7234 0 R/Type/Annot/A 17979 0 R/Subtype/Link/Rect[212 315 228 324]/Border[0 0 0]/H/N>> endobj 15834 0 obj <>/P 7234 0 R/Type/Annot/A 17954 0 R/Subtype/Link/Rect[229 315 243 324]/Border[0 0 0]/H/N>> endobj 15835 0 obj <>/P 7234 0 R/Type/Annot/A 21004 0 R/Subtype/Link/Rect[245 315 259 324]/Border[0 0 0]/H/N>> endobj 15836 0 obj <>/P 7234 0 R/Type/Annot/A 20540 0 R/Subtype/Link/Rect[261 315 275 324]/Border[0 0 0]/H/N>> endobj 15837 0 obj <>/P 7234 0 R/Type/Annot/A 17834 0 R/Subtype/Link/Rect[277 315 291 324]/Border[0 0 0]/H/N>> endobj 15838 0 obj <>/P 7234 0 R/Type/Annot/A 17812 0 R/Subtype/Link/Rect[293 315 307 324]/Border[0 0 0]/H/N>> endobj 15839 0 obj <>/P 7234 0 R/Type/Annot/A 17784 0 R/Subtype/Link/Rect[151 305 165 314]/Border[0 0 0]/H/N>> endobj 15840 0 obj <>/P 7234 0 R/Type/Annot/A 17740 0 R/Subtype/Link/Rect[167 305 179 314]/Border[0 0 0]/H/N>> endobj 15841 0 obj <>/P 7234 0 R/Type/Annot/A 19087 0 R/Subtype/Link/Rect[190 295 202 304]/Border[0 0 0]/H/N>> endobj 15842 0 obj <>/P 7234 0 R/Type/Annot/A 17581 0 R/Subtype/Link/Rect[189 265 201 274]/Border[0 0 0]/H/N>> endobj 15843 0 obj <>/P 7234 0 R/Type/Annot/A 17559 0 R/Subtype/Link/Rect[188 255 200 264]/Border[0 0 0]/H/N>> endobj 15844 0 obj <>/P 7234 0 R/Type/Annot/A 17536 0 R/Subtype/Link/Rect[181 245 193 254]/Border[0 0 0]/H/N>> endobj 15845 0 obj <>/P 7234 0 R/Type/Annot/A 17517 0 R/Subtype/Link/Rect[201 235 209 244]/Border[0 0 0]/H/N>> endobj 15846 0 obj <>/P 7234 0 R/Type/Annot/A 15984 0 R/Subtype/Link/Rect[196 225 208 234]/Border[0 0 0]/H/N>> endobj 15847 0 obj <>/P 7234 0 R/Type/Annot/A 17465 0 R/Subtype/Link/Rect[206 215 216 224]/Border[0 0 0]/H/N>> endobj 15848 0 obj <>/P 7234 0 R/Type/Annot/A 17424 0 R/Subtype/Link/Rect[218 215 230 224]/Border[0 0 0]/H/N>> endobj 15849 0 obj <>/P 7234 0 R/Type/Annot/A 17396 0 R/Subtype/Link/Rect[199 205 211 214]/Border[0 0 0]/H/N>> endobj 15850 0 obj <>/P 7234 0 R/Type/Annot/A 17370 0 R/Subtype/Link/Rect[211 195 219 204]/Border[0 0 0]/H/N>> endobj 15851 0 obj <>/P 7234 0 R/Type/Annot/A 17334 0 R/Subtype/Link/Rect[230 185 240 194]/Border[0 0 0]/H/N>> endobj 15852 0 obj <>/P 7234 0 R/Type/Annot/A 17309 0 R/Subtype/Link/Rect[242 185 256 194]/Border[0 0 0]/H/N>> endobj 15853 0 obj <>/P 7234 0 R/Type/Annot/A 16975 0 R/Subtype/Link/Rect[258 185 270 194]/Border[0 0 0]/H/N>> endobj 15854 0 obj <>/P 7234 0 R/Type/Annot/A 16959 0 R/Subtype/Link/Rect[235 175 243 184]/Border[0 0 0]/H/N>> endobj 15855 0 obj <>/P 7234 0 R/Type/Annot/A 16932 0 R/Subtype/Link/Rect[189 145 206 154]/Border[0 0 0]/H/N>> endobj 15856 0 obj <>/P 7234 0 R/Type/Annot/A 16897 0 R/Subtype/Link/Rect[206 145 218 154]/Border[0 0 0]/H/N>> endobj 15857 0 obj <>/P 7234 0 R/Type/Annot/A 16867 0 R/Subtype/Link/Rect[457 670 474 679]/Border[0 0 0]/H/N>> endobj 15858 0 obj <>/P 7234 0 R/Type/Annot/A 16836 0 R/Subtype/Link/Rect[475 670 487 678]/Border[0 0 0]/H/N>> endobj 15859 0 obj <>/P 7234 0 R/Type/Annot/A 16813 0 R/Subtype/Link/Rect[408 660 418 668]/Border[0 0 0]/H/N>> endobj 15860 0 obj <>/P 7234 0 R/Type/Annot/A 16775 0 R/Subtype/Link/Rect[420 660 434 668]/Border[0 0 0]/H/N>> endobj 15861 0 obj <>/P 7234 0 R/Type/Annot/A 16745 0 R/Subtype/Link/Rect[436 660 449 668]/Border[0 0 0]/H/N>> endobj 15862 0 obj <>/P 7234 0 R/Type/Annot/A 16706 0 R/Subtype/Link/Rect[451 660 463 668]/Border[0 0 0]/H/N>> endobj 15863 0 obj <>/P 7234 0 R/Type/Annot/A 16672 0 R/Subtype/Link/Rect[407 650 419 658]/Border[0 0 0]/H/N>> endobj 15864 0 obj <>/P 7234 0 R/Type/Annot/A 16649 0 R/Subtype/Link/Rect[409 640 421 648]/Border[0 0 0]/H/N>> endobj 15865 0 obj <>/P 7234 0 R/Type/Annot/A 16630 0 R/Subtype/Link/Rect[406 630 414 638]/Border[0 0 0]/H/N>> endobj 15866 0 obj <>/P 7234 0 R/Type/Annot/A 16599 0 R/Subtype/Link/Rect[509 620 519 628]/Border[0 0 0]/H/N>> endobj 15867 0 obj <>/P 7234 0 R/Type/Annot/A 16567 0 R/Subtype/Link/Rect[359 610 371 618]/Border[0 0 0]/H/N>> endobj 15868 0 obj <>/P 7234 0 R/Type/Annot/A 16537 0 R/Subtype/Link/Rect[396 600 410 608]/Border[0 0 0]/H/N>> endobj 15869 0 obj <>/P 7234 0 R/Type/Annot/A 16505 0 R/Subtype/Link/Rect[412 600 428 609]/Border[0 0 0]/H/N>> endobj 15870 0 obj <>/P 7234 0 R/Type/Annot/A 16469 0 R/Subtype/Link/Rect[429 600 443 608]/Border[0 0 0]/H/N>> endobj 15871 0 obj <>/P 7234 0 R/Type/Annot/A 44853 0 R/Subtype/Link/Rect[445 600 459 608]/Border[0 0 0]/H/N>> endobj 15872 0 obj <>/P 7234 0 R/Type/Annot/A 16528 0 R/Subtype/Link/Rect[461 600 475 608]/Border[0 0 0]/H/N>> endobj 15873 0 obj <>/P 7234 0 R/Type/Annot/A 44769 0 R/Subtype/Link/Rect[477 600 491 608]/Border[0 0 0]/H/N>> endobj 15874 0 obj <>/P 7234 0 R/Type/Annot/A 44724 0 R/Subtype/Link/Rect[493 600 505 608]/Border[0 0 0]/H/N>> endobj 15875 0 obj <>/P 7234 0 R/Type/Annot/A 44698 0 R/Subtype/Link/Rect[430 590 440 598]/Border[0 0 0]/H/N>> endobj 15876 0 obj <>/P 7234 0 R/Type/Annot/A 17782 0 R/Subtype/Link/Rect[442 590 452 598]/Border[0 0 0]/H/N>> endobj 15877 0 obj <>/P 7234 0 R/Type/Annot/A 17738 0 R/Subtype/Link/Rect[454 590 464 598]/Border[0 0 0]/H/N>> endobj 15878 0 obj <>/P 7234 0 R/Type/Annot/A 44590 0 R/Subtype/Link/Rect[466 590 482 599]/Border[0 0 0]/H/N>> endobj 15879 0 obj <>/P 7234 0 R/Type/Annot/A 44566 0 R/Subtype/Link/Rect[483 590 495 598]/Border[0 0 0]/H/N>> endobj 15880 0 obj <>/P 7234 0 R/Type/Annot/A 44514 0 R/Subtype/Link/Rect[396 580 412 589]/Border[0 0 0]/H/N>> endobj 15881 0 obj <>/P 7234 0 R/Type/Annot/A 44495 0 R/Subtype/Link/Rect[413 580 425 588]/Border[0 0 0]/H/N>> endobj 15882 0 obj <>/P 7234 0 R/Type/Annot/A 44444 0 R/Subtype/Link/Rect[398 570 410 578]/Border[0 0 0]/H/N>> endobj 15883 0 obj <>/P 7234 0 R/Type/Annot/A 44414 0 R/Subtype/Link/Rect[379 560 393 568]/Border[0 0 0]/H/N>> endobj 15884 0 obj <>/P 7234 0 R/Type/Annot/A 16019 0 R/Subtype/Link/Rect[395 560 412 569]/Border[0 0 0]/H/N>> endobj 15885 0 obj <>/P 7234 0 R/Type/Annot/A 16015 0 R/Subtype/Link/Rect[413 560 427 568]/Border[0 0 0]/H/N>> endobj 15886 0 obj <>/P 7234 0 R/Type/Annot/A 16013 0 R/Subtype/Link/Rect[429 560 441 568]/Border[0 0 0]/H/N>> endobj 15887 0 obj <>/P 7234 0 R/Type/Annot/A 16007 0 R/Subtype/Link/Rect[390 550 404 558]/Border[0 0 0]/H/N>> endobj 15888 0 obj <>/P 7234 0 R/Type/Annot/A 16003 0 R/Subtype/Link/Rect[406 550 420 558]/Border[0 0 0]/H/N>> endobj 15889 0 obj <>/P 7234 0 R/Type/Annot/A 44187 0 R/Subtype/Link/Rect[422 550 434 558]/Border[0 0 0]/H/N>> endobj 15890 0 obj <>/P 7234 0 R/Type/Annot/A 15995 0 R/Subtype/Link/Rect[468 540 480 548]/Border[0 0 0]/H/N>> endobj 15891 0 obj <>/P 7234 0 R/Type/Annot/A 15990 0 R/Subtype/Link/Rect[362 530 374 538]/Border[0 0 0]/H/N>> endobj 15892 0 obj <>/P 7234 0 R/Type/Annot/A 15983 0 R/Subtype/Link/Rect[421 520 435 528]/Border[0 0 0]/H/N>> endobj 15893 0 obj <>/P 7234 0 R/Type/Annot/A 15978 0 R/Subtype/Link/Rect[437 520 454 529]/Border[0 0 0]/H/N>> endobj 15894 0 obj <>/P 7234 0 R/Type/Annot/A 15971 0 R/Subtype/Link/Rect[454 520 468 528]/Border[0 0 0]/H/N>> endobj 15895 0 obj <>/P 7234 0 R/Type/Annot/A 15966 0 R/Subtype/Link/Rect[470 520 484 528]/Border[0 0 0]/H/N>> endobj 15896 0 obj <>/P 7234 0 R/Type/Annot/A 15999 0 R/Subtype/Link/Rect[486 520 500 528]/Border[0 0 0]/H/N>> endobj 15897 0 obj <>/P 7234 0 R/Type/Annot/A 15993 0 R/Subtype/Link/Rect[502 520 514 528]/Border[0 0 0]/H/N>> endobj 15898 0 obj <>/P 7234 0 R/Type/Annot/A 15988 0 R/Subtype/Link/Rect[391 510 403 518]/Border[0 0 0]/H/N>> endobj 15899 0 obj <>/P 7234 0 R/Type/Annot/A 15981 0 R/Subtype/Link/Rect[391 500 403 508]/Border[0 0 0]/H/N>> endobj 15900 0 obj <>/P 7234 0 R/Type/Annot/A 16010 0 R/Subtype/Link/Rect[420 490 428 498]/Border[0 0 0]/H/N>> endobj 15901 0 obj <>/P 7234 0 R/Type/Annot/A 43773 0 R/Subtype/Link/Rect[401 480 415 488]/Border[0 0 0]/H/N>> endobj 15902 0 obj <>/P 7234 0 R/Type/Annot/A 43723 0 R/Subtype/Link/Rect[417 480 431 488]/Border[0 0 0]/H/N>> endobj 15903 0 obj <>/P 7234 0 R/Type/Annot/A 15998 0 R/Subtype/Link/Rect[433 480 445 488]/Border[0 0 0]/H/N>> endobj 15904 0 obj <>/P 7234 0 R/Type/Annot/A 43653 0 R/Subtype/Link/Rect[414 470 424 478]/Border[0 0 0]/H/N>> endobj 15905 0 obj <>/P 7234 0 R/Type/Annot/A 43614 0 R/Subtype/Link/Rect[426 470 437 478]/Border[0 0 0]/H/N>> endobj 15906 0 obj <>/P 7234 0 R/Type/Annot/A 43583 0 R/Subtype/Link/Rect[429 460 441 468]/Border[0 0 0]/H/N>> endobj 15907 0 obj <>/P 7234 0 R/Type/Annot/A 15972 0 R/Subtype/Link/Rect[425 450 433 458]/Border[0 0 0]/H/N>> endobj 15908 0 obj <>/P 7234 0 R/Type/Annot/A 15968 0 R/Subtype/Link/Rect[420 440 428 448]/Border[0 0 0]/H/N>> endobj 15909 0 obj <>/P 7234 0 R/Type/Annot/A 43466 0 R/Subtype/Link/Rect[420 430 428 438]/Border[0 0 0]/H/N>> endobj 15910 0 obj <>/P 7234 0 R/Type/Annot/A 15992 0 R/Subtype/Link/Rect[457 420 468 428]/Border[0 0 0]/H/N>> endobj 15911 0 obj <>/P 7234 0 R/Type/Annot/A 15987 0 R/Subtype/Link/Rect[425 410 433 418]/Border[0 0 0]/H/N>> endobj 15912 0 obj <>/P 7234 0 R/Type/Annot/A 15980 0 R/Subtype/Link/Rect[428 400 436 408]/Border[0 0 0]/H/N>> endobj 15913 0 obj <>/P 7234 0 R/Type/Annot/A 15974 0 R/Subtype/Link/Rect[415 390 432 399]/Border[0 0 0]/H/N>> endobj 15914 0 obj <>/P 7234 0 R/Type/Annot/A 43265 0 R/Subtype/Link/Rect[433 390 445 398]/Border[0 0 0]/H/N>> endobj 15915 0 obj <>/P 7234 0 R/Type/Annot/A 43228 0 R/Subtype/Link/Rect[406 380 414 388]/Border[0 0 0]/H/N>> endobj 15916 0 obj <>/P 7234 0 R/Type/Annot/A 43177 0 R/Subtype/Link/Rect[406 370 420 378]/Border[0 0 0]/H/N>> endobj 15917 0 obj <>/P 7234 0 R/Type/Annot/A 15986 0 R/Subtype/Link/Rect[422 370 434 378]/Border[0 0 0]/H/N>> endobj 15918 0 obj <>/P 7234 0 R/Type/Annot/A 43113 0 R/Subtype/Link/Rect[425 360 439 368]/Border[0 0 0]/H/N>> endobj 15919 0 obj <>/P 7234 0 R/Type/Annot/A 43089 0 R/Subtype/Link/Rect[441 360 455 368]/Border[0 0 0]/H/N>> endobj 15920 0 obj <>/P 7234 0 R/Type/Annot/A 43019 0 R/Subtype/Link/Rect[457 360 469 368]/Border[0 0 0]/H/N>> endobj 15921 0 obj <>/P 7234 0 R/Type/Annot/A 42991 0 R/Subtype/Link/Rect[411 350 423 358]/Border[0 0 0]/H/N>> endobj 15922 0 obj <>/P 7234 0 R/Type/Annot/A 16016 0 R/Subtype/Link/Rect[368 330 385 339]/Border[0 0 0]/H/N>> endobj 15923 0 obj <>/P 7234 0 R/Type/Annot/A 42925 0 R/Subtype/Link/Rect[386 330 398 338]/Border[0 0 0]/H/N>> endobj 15924 0 obj <>/P 7234 0 R/Type/Annot/A 15975 0 R/Subtype/Link/Rect[392 320 409 329]/Border[0 0 0]/H/N>> endobj 15925 0 obj <>/P 7234 0 R/Type/Annot/A 16002 0 R/Subtype/Link/Rect[410 320 424 329]/Border[0 0 0]/H/N>> endobj 15926 0 obj <>/P 7234 0 R/Type/Annot/A 42819 0 R/Subtype/Link/Rect[426 320 438 329]/Border[0 0 0]/H/N>> endobj 15927 0 obj <>/P 7234 0 R/Type/Annot/A 42771 0 R/Subtype/Link/Rect[463 310 479 319]/Border[0 0 0]/H/N>> endobj 15928 0 obj <>/P 7234 0 R/Type/Annot/A 42744 0 R/Subtype/Link/Rect[480 310 492 319]/Border[0 0 0]/H/N>> endobj 15929 0 obj <>/P 7234 0 R/Type/Annot/A 42702 0 R/Subtype/Link/Rect[392 300 400 309]/Border[0 0 0]/H/N>> endobj 15930 0 obj <>/P 7234 0 R/Type/Annot/A 42674 0 R/Subtype/Link/Rect[392 290 408 299]/Border[0 0 0]/H/N>> endobj 15931 0 obj <>/P 7234 0 R/Type/Annot/A 42632 0 R/Subtype/Link/Rect[409 290 423 299]/Border[0 0 0]/H/N>> endobj 15932 0 obj <>/P 7234 0 R/Type/Annot/A 42590 0 R/Subtype/Link/Rect[425 290 442 299]/Border[0 0 0]/H/N>> endobj 15933 0 obj <>/P 7234 0 R/Type/Annot/A 42562 0 R/Subtype/Link/Rect[442 290 454 299]/Border[0 0 0]/H/N>> endobj 15934 0 obj <>/P 7234 0 R/Type/Annot/A 42529 0 R/Subtype/Link/Rect[500 280 512 289]/Border[0 0 0]/H/N>> endobj 15935 0 obj <>/P 7234 0 R/Type/Annot/A 42487 0 R/Subtype/Link/Rect[401 270 415 279]/Border[0 0 0]/H/N>> endobj 15936 0 obj <>/P 7234 0 R/Type/Annot/A 42437 0 R/Subtype/Link/Rect[417 270 430 279]/Border[0 0 0]/H/N>> endobj 15937 0 obj <>/P 7234 0 R/Type/Annot/A 42393 0 R/Subtype/Link/Rect[432 270 446 279]/Border[0 0 0]/H/N>> endobj 15938 0 obj <>/P 7234 0 R/Type/Annot/A 42371 0 R/Subtype/Link/Rect[448 270 460 279]/Border[0 0 0]/H/N>> endobj 15939 0 obj <>/P 7234 0 R/Type/Annot/A 42338 0 R/Subtype/Link/Rect[398 260 410 269]/Border[0 0 0]/H/N>> endobj 15940 0 obj <>/P 7234 0 R/Type/Annot/A 16467 0 R/Subtype/Link/Rect[401 250 415 259]/Border[0 0 0]/H/N>> endobj 15941 0 obj <>/P 7234 0 R/Type/Annot/A 42246 0 R/Subtype/Link/Rect[417 250 431 259]/Border[0 0 0]/H/N>> endobj 15942 0 obj <>/P 7234 0 R/Type/Annot/A 42216 0 R/Subtype/Link/Rect[433 250 445 259]/Border[0 0 0]/H/N>> endobj 15943 0 obj <>/P 7234 0 R/Type/Annot/A 42162 0 R/Subtype/Link/Rect[398 240 410 249]/Border[0 0 0]/H/N>> endobj 15944 0 obj <>/P 7234 0 R/Type/Annot/A 42125 0 R/Subtype/Link/Rect[396 230 408 239]/Border[0 0 0]/H/N>> endobj 15945 0 obj <>/P 7234 0 R/Type/Annot/A 42071 0 R/Subtype/Link/Rect[381 220 395 229]/Border[0 0 0]/H/N>> endobj 15946 0 obj <>/P 7234 0 R/Type/Annot/A 42039 0 R/Subtype/Link/Rect[397 220 409 229]/Border[0 0 0]/H/N>> endobj 15947 0 obj <>/P 7234 0 R/Type/Annot/A 37493 0 R/Subtype/Link/Rect[401 210 411 219]/Border[0 0 0]/H/N>> endobj 15948 0 obj <>/P 7234 0 R/Type/Annot/A 41955 0 R/Subtype/Link/Rect[413 210 429 219]/Border[0 0 0]/H/N>> endobj 15949 0 obj <>/P 7234 0 R/Type/Annot/A 43255 0 R/Subtype/Link/Rect[430 210 442 219]/Border[0 0 0]/H/N>> endobj 15950 0 obj <>/P 7234 0 R/Type/Annot/A 41882 0 R/Subtype/Link/Rect[420 172 433 181]/Border[0 0 0]/H/N>> endobj 15951 0 obj <>/P 7234 0 R/Type/Annot/A 41836 0 R/Subtype/Link/Rect[433 172 441 181]/Border[0 0 0]/H/N>> endobj 15952 0 obj <>/P 7234 0 R/Type/Annot/A 41783 0 R/Subtype/Link/Rect[415 162 425 171]/Border[0 0 0]/H/N>> endobj 15953 0 obj <>/P 7234 0 R/Type/Annot/A 43101 0 R/Subtype/Link/Rect[427 162 437 171]/Border[0 0 0]/H/N>> endobj 15954 0 obj <>/P 7234 0 R/Type/Annot/A 41682 0 R/Subtype/Link/Rect[439 162 449 171]/Border[0 0 0]/H/N>> endobj 15955 0 obj <>/P 7234 0 R/Type/Annot/A 41638 0 R/Subtype/Link/Rect[451 162 464 171]/Border[0 0 0]/H/N>> endobj 15956 0 obj <>/P 7234 0 R/Type/Annot/A 41598 0 R/Subtype/Link/Rect[464 162 474 171]/Border[0 0 0]/H/N>> endobj 15957 0 obj <>/P 7234 0 R/Type/Annot/A 41556 0 R/Subtype/Link/Rect[476 162 489 171]/Border[0 0 0]/H/N>> endobj 15958 0 obj <>/P 7234 0 R/Type/Annot/A 41506 0 R/Subtype/Link/Rect[490 162 500 171]/Border[0 0 0]/H/N>> endobj 15959 0 obj <>/P 7234 0 R/Type/Annot/A 41467 0 R/Subtype/Link/Rect[502 162 516 171]/Border[0 0 0]/H/N>> endobj 15960 0 obj <>/P 7234 0 R/Type/Annot/A 41433 0 R/Subtype/Link/Rect[359 152 373 161]/Border[0 0 0]/H/N>> endobj 15961 0 obj <>/P 7234 0 R/Type/Annot/A 41412 0 R/Subtype/Link/Rect[375 152 387 161]/Border[0 0 0]/H/N>> endobj 15962 0 obj <>/P 7234 0 R/Type/Annot/A 41344 0 R/Subtype/Link/Rect[174 283 191 292]/Border[0 0 0]/H/N>> endobj 15963 0 obj <>/P 7234 0 R/Type/Annot/A 41313 0 R/Subtype/Link/Rect[481 278 498 287]/Border[0 0 0]/H/N>> endobj 15964 0 obj <> endobj 15965 0 obj <> endobj 15966 0 obj <> endobj 15967 0 obj <> endobj 15968 0 obj <> endobj 15969 0 obj <> endobj 15970 0 obj <> endobj 15971 0 obj <> endobj 15972 0 obj <> endobj 15973 0 obj <> endobj 15974 0 obj <> endobj 15975 0 obj <> endobj 15976 0 obj <> endobj 15977 0 obj <> endobj 15978 0 obj <> endobj 15979 0 obj <> endobj 15980 0 obj <> endobj 15981 0 obj <> endobj 15982 0 obj <> endobj 15983 0 obj <> endobj 15984 0 obj <> endobj 15985 0 obj <> endobj 15986 0 obj <> endobj 15987 0 obj <> endobj 15988 0 obj <> endobj 15989 0 obj <> endobj 15990 0 obj <> endobj 15991 0 obj <> endobj 15992 0 obj <> endobj 15993 0 obj <> endobj 15994 0 obj <> endobj 15995 0 obj <> endobj 15996 0 obj <> endobj 15997 0 obj <> endobj 15998 0 obj <> endobj 15999 0 obj <> endobj 16000 0 obj <> endobj 16001 0 obj <> endobj 16002 0 obj <> endobj 16003 0 obj <> endobj 16004 0 obj <> endobj 16005 0 obj <> endobj 16006 0 obj <> endobj 16007 0 obj <> endobj 16008 0 obj <> endobj 16009 0 obj <> endobj 16010 0 obj <> endobj 16011 0 obj <> endobj 16012 0 obj <> endobj 16013 0 obj <> endobj 16014 0 obj <> endobj 16015 0 obj <> endobj 16016 0 obj <> endobj 16017 0 obj <> endobj 16018 0 obj <> endobj 16019 0 obj <> endobj 16020 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16021 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16022 0 obj <> endobj 16023 0 obj <> stream q /X1 Do Q q endstream endobj 16024 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16025 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16026 0 obj <> stream HWkoF_1%fyĶR[٘ݢ UD)y)9#W"ct0lg̜3$^]K3gNNf.ZWIU7elo,̙Ɏ^7t~3]cO/yNqW8L.Ԥiʼ2Mtj|so+>}w}l)U݆}p1[Na~e$Iyaڕ5YN(36u7d7槟sdu(OWeudY$֜Zp\Ibҗ,1+6/1by+}r>(}r'>) O}}} ܗ} ܗ} ܗ}W}W} } ܫ:PZu{ Vb%,^b{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb]@k%,^b{1K@k%,^6JYjm@k%,^6JYjm@k%,^6JYjm@k%,^6JYjmXEZ1K@k%,^b%F,Z1 WcpZAk%F,Z1 WcpZAk%F,Z1 WcpZAk%F,Z1 WcpZAk%e Vb%F,Z1KuMN_;ɎgIV ƕeni`:1ɳ];_g^?۱ue+j[~fc /0~09z=z~>x]Տw|N%@S_I=0ѣaFkkOW.}n#)Ҧ_&拽u86emV#D v'2z5l'UU6&ƕ?eXDhK{V%zFKOYADlan|D>|3;o\Mwt;wO!|w-&N|.S~HE9 G=&˜'=Eso27<ߥw~r.+jU*VJU* hUJZҪVjUK-k-1KkIXh9倖SZhy偖WZhVPZhEVTZ h%ʽʽʽʽ}Ĉr/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1fi- ^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ* ^bZ#ȽĘx+=4Q㮂qd Vo!9ϸm/o֜O<ȋAt@ިM۵3~uk=qcDU{C'f2mg\5[!ޜ\o% &Kendstream endobj 16027 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16028 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16029 0 obj <> stream q /X1 Do Q q endstream endobj 16030 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16031 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16032 0 obj <> stream HW]o۸}ׯ%b]h@k3嵔>l;)T p3]:t짟{?>; )/$F>]LeM}iwzuvdmn]/ŝd-3Ar昃9Kf_7~͎]&_8..?eŖ+6 eqRN [6(Cr9V|)8n>$>nBf=\/JS(qbXYE-p5S\L7}b_l2 . ̗f &s&Ƹ"UmJ6@ " m{{W{W{W{{{7{7{7{/E¾  {K {K {K `_&K}w{wDmlfPmlCT>PmlCT>!*eE6!`Vm"'jc6DJB QDPml؆(}ZI6!`Vm"TEOT+ 6DJBm)B Q)(B Q)؆}l؆(}ZE6!`Vm"TEOT6D*B Pjcj؆(}ZE6PmlC>Q"TEOTƶm 6Dc6DcR Pjcj5؆(}ZM6PmlC>Q&TEOT 6@m"'Մjcj5(B QDPmlC>Q&T۶!Tm"TmJ;,p-른L}&+ ǖlq+Z~R$Br]n6Z@-.[V}S:`]úG.tMYD]hUxZuOO!(^ΰ4]` >9`(~0 Ȍތj>3Zܷ( 2FHᬋ??6vڐQu | A=%|pc Ӛ&sл iۇ}ncOn|Utzd Ѱ%w8W_í\lg?{lZhcS^\;g NIs`\,s+uSU例6iu<.+ul؁pb7# wV`bu_@(pطi\򎏅*Kn]0X.>et7\6@҄PpB526U LRa*Fa?!D1]SZjpl v:ww/u7RX(QKgc@7/Ux!" UAOUx5~iP尥6hq1q}qx:z]K894$ڣBԗ`t,oKxޫo#~xTΘ\+TbF:QYr3[=Aj%O ҼbMڎ)Kip)s l{ [%c܍h7q?CK·fx~X j>pZ!%O{p: cLnUu8ilCzhxagѼvXR8nooD@)"&np8\Ir&|P_\]z6P,OR@"HroA`pdeO>}WEɅOQRϹu?ݼ7+%WZ{`eLb<| ZU΁R߬2PbzasN‚~U4szʹ3)Į"7vfPK˅-܉AnB09t74?̈D*CeOWH,}?Vo~U ckWг:T+  G}߽?=FP n}{Ū3UG wGy ?|$ܥ0Z xҎdޟLQc?ʫ7n+|܃+"E$hsh"rhC^^!dj릿R:9qV;盙}98-Bj Nߝ@*U' 5ߥj|Ufg9? ԩ9x@Q}x TqE|;2KNb;dwlOnft f\B 3'P@zxZQR7}a2232,6k !o6/SJÐm#^4=/UUE9Qv駍ђHǻW,v"`mJBEpkPfUo*(u(3Z5$Urj8Yr?wdOUE>>5{7ŪӔn_rRq}KBZ϶m>(PSj󞨷<$0xm/O+JYw5>I+}Jbzb2 {'^Δdh %]P6t&W:c$hZZװ˕7V .,@&Ր_{ P7 o onV3[@B*ayk=c}7>lş0qbK^ aTbk2۴TOKu/I3~Kme2y*XaFcSa~s o g2MI̼Ti|wT}#WC +-%3!L6j-jɪ Q p(լ*WsRjI3'R;Қ d$J4gV\̅ne@o:jɒCU,x-gCZc,ܚx*Mw}~g ;!AM }CD(@&@,e&O;OBmOt>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16034 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16035 0 obj <> stream q /X1 Do Q q endstream endobj 16036 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16037 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16038 0 obj <> stream HWk۶_2Պ/=.y h| $A!]%+ I9 pxHΙn1߾_y/b2eU U)ҜE.R^Gŧ(#7qtn_wm7G=><Wv1wQdqW3.2on+U+] fy'htf/+] $BؿQ2#H<~Y(_,>Q%+ 1a@QtP(χ(E|}89^^^%^%^^^^s} y `_ }/ e$ؗ`_+}YF#N!*dE!*d}"TET >DrBPj}j9Z߇(}ZNPC>P-'TET >@}"j}j9ZwZ߇Z߇CTPC>P TET+>@}"j}jZ(BQ@PC>P TE!`V}"j}1j}BPj}BQ!{(BQ@PC>P$TE!`V}"j}>DJBQ@PZ߇(}ZI!`V}H} >@} >D쫴*goaѫmteۻeK8ϫx{>&u77Ehc7L>t?ؗn; %(-E9O7/4'fM\7Sd)2(%l1*5pׇEr1AeL&K+'!r}k=gm96cm4h"/6WieT6q|^$Y[S2hg~NMjB +fa30OҸ޺xeW Wmk~/֡뽳lXۤ7kL+V#f LS)ž͍`O-4LAQq ʀ [zfw:muaؑBX><]s&2<(XD" "+daS5yGw'!*f8QܴnAFrQxOn>[]'kmKd?*l>tdy.L` ‘6+a(Hi@棘/Mg&XF+Y,&ۧH"K`KYQQrϫIF8CS=8պj vWơ6KR-"&wړϱ"43X2<18fY:\Sr= 2gZHP/J*UR=t%2pd$zrFip*Xe.$<-,4(vxT'7nB_8$ZʖY5D$ll;dQ$5!᪗ s}84(% 1 %b|Ts+O77*L?v1 "6ô”iWF`r* VI5 lj9]Tej&]6 ИiFƺ1\_1<,# 2ů+v"na>r)WCalNܖycv$"0[7xӭt GsnkNuT ~`S˪򄍑,iNmcV?ؚ]Zx^PQZ'?M5 l8Ym }Ⱂ2Vz^Cs1,qpiƖ&A% T=SVdW|e-{0p,b^_R'^L⵵E8g+RY覫}__L3@txrqy9;g- UJU//i#t,J;AVafFa>ÞYtkV8Lp {]-A,UflW3 gŀ>%mxs (b5TxP5ç&]3r 7MY21Gr5`5@P/*˪X sz*~W}:w;3&暼/c%O'7hk.Z*ƢxLCz+ԕ chpg7};`b"wd$eVZkk*w$պҽh!/Eń ^p|4P/vDr j%wNmlIE>,sd1oPQV S{0cy|Ȗw2UXZ0/3ygD]bv\䥇}6 8>Fk?P)&W1 ;؆:^-~K)`|b*`nPAr5`8}SU0?5@y\ˑ,_p*;)ϮaS l%_F ?%hsD,y{y{Wi=4m zIq7{h"BX%`_d9=Ip͛çzsP[oYGqpY%97 p?{|ul҇JQ"6>nWwVqpy}ϣkhwGHcf%!6;_Lq(HD,a!Gs4륄=!=1KVsUx /Kv-y5c3d}&KoT\^Dؼ=iO^4žQ4yk:`_%9f'Z2&T[ku~:&1ʨ#:V#Qg~4N$dBfdJ<^;AZ\#8*x$ [r9$H(Dˢ0i@H -Rm( =k&W*3phrcQ`2j[=6Эk: }04 ~y|1uwQX 'WմzN]Cqo!u>D Q9:S%^D?kzlBRl|#u66+\`lЦF۟_l}mJ?ͮGjIQdb-<+`r4fW{*ݧu彊|W+|ƤUΨozyt pm24@B]j#5$S,jPVЎ~Y hI;{g>4ϗ [42zW+\U{a&F$p$.[H`, ϗVwdo޻kK=TElQ`><* U>y)g[C.(.P9aёݷ?N`Ƈendstream endobj 16039 0 obj <>/P 531 0 R/Type/Annot/A 16490 0 R/Subtype/Link/Rect[93.5995026 581.629028 190.906998 601.309021]/Border[0 0 0]/H/N>> endobj 16040 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16041 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16042 0 obj <> endobj 16043 0 obj <> endobj 16044 0 obj <> endobj 16045 0 obj <> endobj 16046 0 obj <> endobj 16047 0 obj <> endobj 16048 0 obj <> endobj 16049 0 obj <> endobj 16050 0 obj <> stream q /X1 Do Q q endstream endobj 16051 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16052 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16053 0 obj <> stream HW]oܶ}ׯУ 84?%"Chp +++}gDꋜͽQ4__)O߼y]g"4e KX."WT'6DM\~]Нc=}zj_eO*Si3-Mw$^쾏0 ip7CݧY}sLV/R+z;ˈRFB?6}z_d |߇ OiRI~1)!NJbSU m m"F6Dr"&% 2b/ 2b*b*b*b :b :bo&bo&bo&b}N#"b_싈%ۈ%ۈ}I/#%>Ҭ Dڎ$Tm"Tmه6@ m"GjCj%(B QHPmhC>R$TE6!`V m"GjCՆ6D#JB QHPmh;&PmhCT>PmhCT>!*fE6!`V m"GUjCՆ6D#*B QHPmhІ(}ZE6!`V m"TETՆ6D#*BhB Q1(B Q1І}hІ(}ZM6!`V m"TET Ն6D#jB PjCj5І(}ZM6PmhC>R&TET ՆcbՆ6DCՆ6DCb%+Rcv\WtwpfJwTdye;&gͧw@",gl*f&MV+ɳzxxq/~_i'ۡ{htOӅYte!Yљ7\2 ?‘?ԟn?8v>P M \IL)&nxVhjFCHp\hC̎1hcrn4cv9`O߇mt&` +hV=YH&X3fDOa =#{2?-3{N11k:ܺ'Vvq'M6tcB5mZTY:O˙Xû~`8 J.#=a/Pm 4 >Ҵ~PMd)V ՚ŠaupmP9Ӧi&&-<3|c(`U{ MANR׻Z*9( ={90pa0U8:~(zJ[P1ӊ3.hJ 1Y/VE1LYaLcs><5/:W[fCujz"{B6yKA:)ԣsEC/u]Qg>q˝WRB*CU*T4"` \|Ee@VX1$Rgayp FT^7§_|Eܗx1hh 39Y  ÇlK(mk^83I1~mo*-u1N|_\m}ᴋVr17٣g{3'`|rLe Kdewf:w2 Ε))ae~n3Or,FR%S[Bwy,Vnڧ'L2~yFY= ᗛ;W Æ̐VO`2Fɷ`EtV3n9֬|q:ldQlZJا'f]|J0Qbq޺fBt:](7Rd 8rFxɩiWq` RgZX>#KQFa8i"듼;CCs7׿^ y0sR@ 7SP u^{xyM?]eO~CWοןZ?y&kiƃ=|}tT,|(Y.`W^wc>XOq!YUBCAAzτ꺔[3[̇snظc^n?J,rևA8K? YO=>>Gk54]ۓ w:(>||j|I'odix|j~CߺvG-d[ {;AﺧvY`G5p% [OqL-sh-={ctQVPC x[A6vz05'?{jxq+&h^ ݸk_|>"l7;,zm.Į 0.}Nmvԇx %-+buqJ* 7)ٌW878oCȩAhhU݁.4(,zO@s hwe0^mA} Z4a^7$E+ؼexsY3Te%<]>ut؃[6^`e;MP*&/]E .ϋjs9ݓTS 5(2cdqDZma W .'h(LG8Iƨejap@&=n9Wiu>NEYaqWP^jq͟E }jg?FѬm 0pPp6{#k˱6Tln CP |Am[MĒ˓fnDdw-[ΗOtN=wB pϛǺ|n^^\Y ~j_tƨҐOA 42-s7s-ac7V> /gQq5$eo CWOUN~g ?u'*2e`9KaTbop}x`>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16055 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16056 0 obj <> endobj 16057 0 obj <> endobj 16058 0 obj <> endobj 16059 0 obj <> stream q /X1 Do Q q endstream endobj 16060 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16061 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16062 0 obj <> stream HWo@r&>傤]+Q`daN"sߵw{iK3? Ba˞1^%/էn6Yۮjm-:m//7ydХxbb/۴rSUHGV`⻻[u4G.AjݠI$lًom}Wf1]}0qf^˴I-׍>TjwKܴkSw[jU7WgnEӜf:>5r:^21i"xu^|}Gf/L "7=e$~|tfZڬfFWF)Nmy7yysRzZQa{īk9Cw\@[Cno7>9xq~s134n*H1zrvq`?IUb^VÖqTc[\Z2,Y:`Fl1zY iHE Te".PoH̓aF~}|6^ oiOs8;-oMhv_2o5/uMMG*ؗ|0L)٪d8J̱936weyܩ!DZjZKA/6եִ{V"qpY&FnÉ6l\r{45ܻ\m< I?}Hz81,°P=h({>!bn{.߳!ΒlD65Ol6RID9Cl¤P6 iY ?JY%`) @+(hJ+ZʀV2)hJ+Z*V U(hJZr֒ĈDi%@+QZh9倖ʽʽʽʽʽʽʽʽĈr/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-r/1fi- ^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*)ȽĘ$F,{1Kk,0m&-w͢&kendstream endobj 16063 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16064 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16065 0 obj <> endobj 16066 0 obj <> stream q /X1 Do Q q endstream endobj 16067 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16068 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16069 0 obj <> stream HWێF|WzAF$AB`Q}p܋PZ Z1bI,ZK{eh-Lj܋ZZ ,Z #p/ZkAk9Y#p/ZkAk9F,^ւr,@k9F,^ւrXhغp#tϱ{KXfrXh{ZZ˱{ZZ1bcZ1bcEkh-2 cEkh-Lj܋:Z Z1bI,ZK{eh-Lj܋zZ ,Z #p/ZAk9Y#p/ZAk9F,^փr,@k9F,^փrXhغ#tϱ{KO:Ux\/i2-L9%9]JY돋C;oey+&b@׳U_UQ?vwOM(QTzbi+jmN,Ԫ]o7_ N OVmok+My!~n͗ykۧrMK3rzAP9W8?AƱaJ%қ,0T>'oyr3_V2:/`ǘ "|OݠHZ/6G`:ؗto-OI|qT?ծ]n7VۺnRs|umSW98qTe` -@ @+ hUBZЪV-jU Њ@+ J@+q-[J-Kjq, 2B-#,вB-{ r1b-{ r1b-{ r1b-{ r1b-{ r1b-{ r1b-{ r1b-{r1bI-e=LjD=LjD=LjD=LjD=LjD=LjD=LjD=LjD=LjD==Lj%8Y # # # # # # # # # #XfsXR+Dm~XWykQmG83c])MdcwԷ*FOt+ULJVmo'3Ǝ4882eF>Z:mOCS}]X|x;Jq6uYK; \i'M+u S&hS8gRqg5N9bjĩ&Ì0q>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16071 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16072 0 obj <> stream q /X1 Do Q q endstream endobj 16073 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16074 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16075 0 obj <> stream HW]:}ϯ/=W'Jb!-\jXZz 4N&f[W'Bwqu\)o-{=ח\XJLx$Y)n$࿬ B)`Ϳc_ձSE"d6ي?l, edq)\m?w0 ipڴܥÆܰm&1"G`{c}챏 >!'`x-z-Ӭ Dm@6cbC͡|(BP{OP-9S$Tm"TmET+ bC=JB(BP{OP-9S$Tm"TmET+ bC=JBv Zls(=P-9gm"TmETbC=*B(BP{OP-9S"Tm"TmETbC=*B(BP{OP-9S"Tm@6cbC͡|(BP{OP-9S&Tm"TmET bC=jB(BP{OP-9S&Tm"TmET bC=jBv Zls(=P-9goV̆)x n[ڙcXY=w z",OWéeی]DZs.Q2V^Pm'ي?@&rYMUV'ڻ{q9 wjpxyǛChӄrK\"-4\ %eySdy,zPnEt[.wzdǪv;9[a ]ޛVY@"\g;ͬmǴj2 &K3 @qmTp8i00,i0=eZ)n_9QndP"/ .^`H%Nv#Ok e 5-611rev"KJ}Untf*W ,j;d%|ٹԅO+ Gͼx,N5m.cTT oȚ%Tqt 9r]Į֌ԁvc,~ID˙6m%oq:M;y)fc7Y]j<1ꂷ~ mV'8+"; Yu c%}a.<.X-tU*2S%߸0#<.(A\[R%pKbDzhcpY`}VJR>!^ct.`4!G/yPi5W>9-j'ZQ3\SQ]Kh C,뿴$Bq Q-Ҷ+Aa.oÅ.˕P-u'hcuv 5Shðf+{Ĝ@u@8̚08AkP+%\CAo84n8 /}C)*0"pD6yM ܽe'JMatyA]jg^\hhբᔹ]hpۇȪ龄lltH2?6VW6nYEoV]7A-Q9򋖸kP~1.l}7c tb][_U$x޼]1dJ qQ6ƣr=sX!:H'\C"'E?:lE?0[G:|/SDXKR V@Vz;NU7W[o6~УЧI[9. Q3c~>REReI4}x.߹3oqbhvzpFtE LTDjW{t`* :OۏRMC6O$ OK5=#Lv/д%,|`RX@J!h$:sI:G q5!G-B;Ӫ>~\F"9N"Bcdbpr2|Zލҫi^VGܭp&NER (&lv{SãW Y8`H ,"%S."ChG]  D2ښak]Ccg@A >GH4Lޅ4h|^ΞwI;,Mb)GऌԺƣ#~*$lCear߇5˸mv"f,g{ UߖvnY>VFoշJM>D7׍m$rsk80Hg׬yQyvww7xzӏpkie$UJ*=Dݯƛtx 6IS Ln`>c O"꣜ U3Й^{1BL}O'Z3cMb.ۏvәJ:G`=aM 3M}A>~_/έ+$ ^rZ8sr)ٰs7s<[ cTf!U}S'^$xZ=4C>/P 613 0 R/Type/Annot/A 16077 0 R/Subtype/Link/Rect[93.6001968 663.229004 238.968002 682.908997]/Border[0 0 0]/H/N>> endobj 16077 0 obj <> endobj 16078 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16079 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16080 0 obj <> endobj 16081 0 obj <> stream q /X1 Do Q q endstream endobj 16082 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16083 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16084 0 obj <> stream HnF)(HN o '7HE XXT]JN}ΈjLZٳ9K0vٷ_/|YGR"O!+=y0N~Mb&q@rSYjf]&9ymJN*wAL"Nb!BĚPu2IVXcg#p1DW/&|qE^Nnw^VocklAu 9ccv(U~U%#dx^Z_'x9|or㩐-}b$q&J&2 %RIiDe Ž;'s )½W{>(pA ܧTOp)3>Sg}τ\q > }!B/p_*KTܗ}TG>*EfZkDI\CJI-׈Ft5r(ŽHWR5"^I-אRR5"^I-׈R܋z%\CJI-׈R܋z%\#Jq/Rr )%\#Jq/Rr(ŽHWR˵ur(kH)Q=׈Z JjF^6(RJjF^6(Q{ڠkH)Q{ڠkD)EjZ!kD)EjZ JjNR%\#JRJjFt5{!kD)EjS%\#Jq/R*RJjF^6UR5"Z!kD)EjS%\#Jq/R*RJjF^6UR5"ZLI-׈Z%s(>c }^'/䤪8bO!/ PIlr4&fmg^NPHU2z*_ԛETԛn`iȿ~\ utFLSnհª.-^,7׻ඞmn7<{DYíFYׁFghƍġا.d~+/_V\0x60&ͭ7`;L3M YwZU\za(s]i|b?.-kj937p+h>Ӭ4}Qm; ص@ s7vj;_7QfüJox~ߗ s*jMM00PVԦ&>TozJk'eowhl"vjKZhN|_ΟnR|OEa]ͻfx̭f_ i4Msܮm70#|\|<,\úœ#vcBia(ޫ/L><U$Y:N/#=ut$ajC77L7?̩vAANY%1%9>?2S>\ɹx[}a>3Nl{G ֦ +C^?I0/nlŞB9OOjPZDs#8Oᑜ"ktO8/4xOEF. |W_vyF_!*&EklXs*ͦG\ *)!~Kә`ݯU:?K~HMendstream endobj 16085 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16086 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16087 0 obj <> endobj 16088 0 obj <> endobj 16089 0 obj <> endobj 16090 0 obj <> endobj 16091 0 obj <> stream q /X1 Do Q q endstream endobj 16092 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16093 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16094 0 obj <> stream HWmHίt_io@E6homnOJ،Mb,  E.+>|WwaxUW t,lMTYb#ö 0xG/{7mu(Zm< ]r<[*>HœaDҤWL/aBXpZ~S*2f]v]xu#Mj꾽zs2Z3J"^튇\0ĉQ˿^ pB\ *c(-l+~0*yf >xXC1X@ԇ(9>e.O%c/ccccccocococ2S}ʰO=>g c13}ΰ=9>[[YdTK}SR|ԇ(=Q-!aV2>D1=JF(Fԇ(ZɨŰT+RRj%ZCSdTK}bTK}b{jQ {OQ-Ũ峧>@1>DQ>{ZCSbTK}b{UjPjQ {OQ-!aV1>@1>D1=*Fԇ(ZŨŨŰTRjZ;Q-!gO}bTK}S|(Fԇ(ZͨŰTRRj5ZCSfTK}bTK}b{ՌjQ {OQ-Q-!aV3>D1=jFw ZCϞŨ峧>Dmlaf\VED2q WCtWW7&e]z|{,gpF3>ˮz3a2baih_]V߫}-V_yn blDMwved)j|ͱa_j.(.ml zݴHg1&vB|6UK0s@ڽ$zhD5۶8Ln2qk(ƻX\]W 1R5mFv0ڨƶ>D̾ IřճVv?``TݷUՕc[nCݹAH%CezHܐC:V\pCiP5νC[gBV:4'o A{ϖ>24ᱛ+lc.C 5[֛r>? !7IX!00qC!Xh]@ME,3xrnwn+@hfO?vdR'^2|x4Y1?Y#Az>G4"։sǫR.(s[ $Q̱,Xe:S 宊lx;pd,4vA"+ᘘD$7<\9@g68`[b{CBkX̘4[zB9'"QFIn삼S+ߜ6mϟ7> I, OQ)$iZH 8n$S%Vx5f+uq9aWkQYw%B΁ z0j4Ts'hbH|O,{g+'qk _dާ6zXt,/k/۶n.gD±wsYsk@'P|\0Nw6RJyps8mCHclt1/|j Ж̬~4#_c84֙U3R&yRJ2A"΅w# .ͤ\,uv>*/f4&rX_'`n^=d#.,4]%*+W' |,x\EC"~\2GpދBt#%cZz=G0 !v{EЉdXrR~×HYrzX<9ou\=-A󰲈@ U6_ӕQ4G3rFgn% lA`(.,;{(/SCT9CwZCy.:<@wm9X@S:qB-P]_iy˶_3C޳)y[%w7vN4) ΍/3>2t3q끑E='~JGR4Pham DX2ht}i7h>v&@OOy$=:%&Z26W UPGeaϡnnL9bu5ZU[ `;ԍ;+'d ey=¾3eY>&=%gOa>@DfKQ̽ ͻ&\i>pޫ`L.Ęny-նRX .np ;Sg>!3n\ {'gcX :]qA4}r72c$2YzNgXEm0E* h) d^>8 Xt3cZ̲{hNeR,eg38bw9}f`*R0pBIHoXĩ19c&gu{DutCI-D˜/H=+Ǚ^zat7ϓy-$ =_$//Tb.yAہ)[#(8l&a0B4d$xn&{<rC`p1*uV]2Td3 MwN3rDrwcH5+MTRSLa~w.s/Y1ʝo<0,JLNer7p5 \&D77}iپSfXqdb 8#vp&Iʚ P#vNzi7_ :^c4=-o~?B"Eendstream endobj 16095 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16096 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16097 0 obj <> endobj 16098 0 obj <> stream q /X1 Do Q q endstream endobj 16099 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16100 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16101 0 obj <> stream HkoFW~YЁCqn$kȵhj'Z݅\HJRיC sf^r{p[\TbqW'Ϟxӡ£ 2^HpO2R$$s|Pg{s2EM"]"u?_3P:/bI8dy('(X~D[ǍvxLzn7lUyFΞ2黿go;8^*RQ|Kuu') @QZCD}h>BGQY^Y,ELkƶC\k4e7c@!5c՛1MPk͘kZ3)DZ֌֌i Qo!5cB[ekPk͘kZ3)DZ֌֌i Qo!5cB[ekk͘lf (ĵfLSz3)[ qr-G\k4\ך1ך1M!-rĵfLSz˵q qr-G\k4\ך1ך1M!-rĵfLSz˵q:qӔތ֌iVo4e7c@!5cB[k͘kZ3Z3)DZ֌i QoV 5c@!5cB[k͘kZ3Z3)DZ֌i QoV 5c[G"5c՛1ך1M͘lSJ ?]mKg\rBމшP!ʳ:[~4?߸Ǹ gO}ه[0V .M˪|Wg:N=ro4öipҰ?"ON><)*՘zyz]@NC2&WY{nOT8z-p?DyiϠO$}@x~/ӿ'o1xP(\~]=>k6JK4IdEYPWIAFnRD)DΛNRyfeݿ./$zuEe^,_ko~X-Uy6iao:aX5p0֬⮍UYbQeN+ mj,Ok_ &lMђHUW *A^G$H[ݴ_zL}^l㊤%I&]y$^xtRY ޸n!&oq(d= #tXZ=~W9AWX5@jeRd6T7}8uf9dI=VCq<1CP1iK~oCjFp/ {{f:ԓtwP4#ʢGbeOț"I^\myM3o/8x3y0DžmXsyO>g %:|F@ `d6#oاCv86_O_z|yj"Е1O}h(zu3r^7P[OjZ.\J!|9vr={Y(g<lܴ^փ&KqU%>i.l.V6oPGQcgkrt)A+PB}k*{Sh0^G`*=DemR=0ٔɱpH.66}o 2ocޅOzCnǛ] +繁(. _DdNɭ s^۳47d|NWgn~a)e25?6}s(SiT^rnnϡwmv%ϣI/je#A d#s,GC\͌!ɀJ<͛a@Y4y״b5ݑcec )~.Oށ>]CAS*/)&p1dqJ|0x~r(07=V>z(S􇪾;Q 7o8U>gJoM}oaW>YW8O׾22WO yn%_l-]uxC;˯θ9ߙ. 3S뼓Exfa.BaM"OY89.):&ǦѪ2\ȼ>3>x(͝<,|UʞRM}_~]j< iK%aO}]?f蓷0#op0j}wYͰVp |lIfTp69?=8gwݯw޿yyOJP?З6o/vy)Aczt^_tI 0 Qendstream endobj 16102 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16103 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16104 0 obj <> stream q /X1 Do Q q endstream endobj 16105 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16106 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16107 0 obj <> stream HWN ɸq'N`#1XA ;u!ywu}t{Q g˙%EөW~w*Q_HXS>qjTՔѯuiUr_tCqlC5F5UtGn*Z߬j h,]/>:jyi|yV$NQ:fsgNg.VrL(.S9Tum˺֦An'iä8oWQ(2NF!QJ'' ߫Oڪ(46(d3`}9ptbbQ XZs57O1`a0Vpo{+̽[ s{{g3>eS}gs 3>}.ϙ }ܳj;DFh-ŐS XBk),b),CFh-ŀ%bܳCR Y{Z#bܳZ!KpZkR Y{Z#b {Kh-ŐS Y=ŀ%bܳZC R Y{Z+bܳZZ!KpZkR Y{Z+bZK1d YkZ!KpZkR9CwO1` {!R Y{Z'bܳ:Z!KpZR Y{Z'bZK1d YkZ!KpZR XBk),=kZK1d YkZ"/b),CwO1dq!!8!zV7Z"8`*MZŇcWO#)5~D@ߌ@qSTu;~9>Mz? ΍Cf몾9 we/e8Z;)g%M\V5<\܋{*aM-p[<ĉ6!NNY/_cEuG-9TuUm2Ƒ߮?9:7m!Cspֈg,k2$N|^DŽKa:iq')8|,mXc\1bȡ4qyCM,€&Mco**2B|v&ZI9 'ӫ!ē$BdK-n ^؜s)k)]|dM=Zbn4c5CկaXCYwb oa }usz+1n|y K-Fs1>}X)ްd6e+e/۰= '"}n8ale{Wn*|lv7:>l[ Y}3vx=o8\52ͦ,-,#{}*]}\C/,n<8/u3_ rcZ^L ZiVʴRA+eZ1LʘV.hL+rIŐŵ(,-hi-ʹeX{!Kb7B),A-{#bX{!Kb7B),A-{+bZ{!KbB),A -{+bX{!KbB),A -{+bX{!KbwB),E1` -{'bX{!KbwB),A -{'bX{!KbwB),A -{/bZ{!k8k#YM6a 37Uoqӡ$Y16}‚&pE`&52n^ mOwc7mo`2Xw˹DkaEnm67ebPp翩K^TW/ ZQMslxoU*OW%F/.N't n (/6( W *agwvv7yCi -5A0 bR[(]i&)O!G,XX`j%VB"XX`u#V/X=z5@Adͪtɷ++ V"V-X5jb>13}-bcf[ɷ%voK3'"=fOF3'"=fOE,{L|Xb>13}-bcf[ɷ%voK3'"=fO,voK3'"=fOE,{L|Xb>13}-bcf[ɷ%voK3'BV+voK3ӧ)ϓ?(xR,dAo6Q7!Mݹww#6n/?&%0Ǯ1|Mla{}㙗ը^Y]tR)wTUлdZ)]9?\?_pC;#_M3yF6o"LJن4=kw Ml:x+UKe}ylwsrn|A++ V&V+X-ZjUV!V'X: VO^zb 5kYݝ03-b%JJU VMZh=ff|E,{|Xb13-bcf[̌Ϸ%vo!̌Ϸ%voK33>"=ff|E,{|Xb13-bcf[̌Ϸ%vo!+cf[̌Ϸ%voK33>"=ff|E,{|Xb13-bcf[̌ϷՊcf[̌yEe aAtft:.7%ݓlQX͍vsf~ަ8Hc~0~jWj.L^ZV}X_WaU8kuitAב&֊\3:rWv&O/piTɹ"VL,XX`j%VB"XX`u#V/X=z5@Adͺvη++ V"V-X5jb13-bcf [η%v)oK3S8"=fpF3S8"=fpE,{L|Xb13-bcf [η%v)oK3S8"=fp,v)oK3S8"=fpE,{L|Xb13-bcf [η%v)oK3S8BV+v)oK3S.ϓek s:JfE$|=*VC. hU.s륚{]O1󁦉]U5$>P'J-9lb~ 0r/M7endstream endobj 16108 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16109 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16110 0 obj <> endobj 16111 0 obj <> endobj 16112 0 obj <> stream q /X1 Do Q q endstream endobj 16113 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16114 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16115 0 obj <> stream Hmo6SHdQRQpq\- l+g~.53 (ҥ??.k_޾Wϙ4_a+;%Jsġ.n^7CmC.|}j].%Xe5LRZLQXnEi+r++1R\t1 sՄ\/mV\TX廓S,qhUK"[~\'! HމX.W\Tw,~j25bd cPRR 򢬾2ʲF;#J㪼,=dۡ66{l9>04fBvb|ihxf }ſ=fhn>^_xTE>.d9m;vÎ55x$$tu<)iwstAdGn L'Of(GXNt}lE7bo/ͦc0!evǫX~xێlزxz 0:?ga}>e ??6kH9&ݩc"ƿL_ǡ۵F봬b(R|c=ǫ18VW=xq8b̖Ѯc?)/n >W,~gSl|-M/ZHTE Χ%uح|N!$ ^we qʕ0+aK'tj W=\[8WEA95dϩg`t_>ҕCY/sĸ++DYie" N*r'U7J% UZ)|DUJ!jZzTM GKKMCҪ b@YXBUJ#ښR5 M(d%T-JITeT-)UN)U]HDPU(9HIKRJUR Ɣ֔ҮFgp.JJYY 3J"ɒPTyBjT`RѺr)UkTqF*>7\P%{#%{KBB1bI)UajV$:ڜR%bwQ"k:rBŮ=DTfT)RJ|MNBŝiNIiQq7L)IuE?bTjLMu9b&T902R**(gI&&'T 3*YPByU`J;JPjWbN(9`>1~RajڛSZmJJDU T*s@u?3* ֤3FJ)JJBK*z:p3?S{صoM(UC,(} wu*ߴ00ߞ^2J_7C3\WWxɫumun\^q1*QI EtF y~mhc璜d{wp ^itĹ"/9>"uWl2)zj0O C2p3IdIm<`&$ûRHP`r2 )PcF ap<\ٍc)7L,-!*,p\X.'ac'wEY'AUi֣.*o/`6 \8 `i Zݱ|}.@)4xD)q*J]\uf*upEȅT]2}dv6? jE޳U[ wVa(խ"(ߪ7t8ݦ}4Ƭn2\=o0lǗ+'qi 1"\\"DsYHTYsK kb50S^^ɔ P*$Br3L 1T^U7.=)7njZ%lpⳲF'nETm@+4eר 5H]6L<&e11aX ,?ɁqMY@ĪI UPV߷Nꛥw=16AIڅG3YAXH )?%g9;ů>kfi8&)g ެL bI!osB;m>OU֕cYY/e۽u mBEYtJ fBDs^?a{?YBC܌{=ΪXNVZ{չh{+fyܢS`7S Tk\_̽qx>v"rq;' eendstream endobj 16116 0 obj <>/P 1433 0 R/Type/Annot/A 44403 0 R/Subtype/Link/Rect[93.6006012 599.629028 305.221008 619.309021]/Border[0 0 0]/H/N>> endobj 16117 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16118 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16119 0 obj <> stream q /X1 Do Q q endstream endobj 16120 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16121 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16122 0 obj <> stream HWko_(Buh&@㸅)b1+6TEnnoÖfFE.ٳgv,œ_M~ gϞ8  uqʧ6Jbz6eNAn*-EWY6fSnS-Ԧ N~0 IFiLLe(U*{ݧiC;r M%v5miZmjCaKl$q]q=,"L J9QJG5_"uơ x]Y, qNF8:D1d(,9`zך0Fpo{+̽[ -sw{{g3^pXp3>f}'O s S>ܧ}&ϘLp2Rl!CwO1` {!R Y{Z#bܳ!Z!KpRkR Y{Z#bRK1d YjZ!KpRkR XBj),=KRK1d YjZ+b),!CwO1dqZ!KpRkR Y{Z+bRK1d YjZ!KpRkR XBj),=KRK1d YjZKH-Ő%gBj),=KRKUR Y=ŀ%b),bRK1d YjZ!KpRR XBj),=KRK1d YjZKH-Ő%guBj),=KRK1` ,NH-Ő%guBj) Z!R Y=ŐgaeNEov IkU~dAi(*_v^,jvut4ޗ^F. AljAW@w$]PUݩEITcB{nuج]j5lޤWGO=}~+RIbTZnݔvS_d d^7o.(B[7P Y?yVX=8cɷoeS^ݖݺƅ?ޛ">B;L#Nxs  .f]ֻOߞձ}w۱ңpP }fljre9d橺8{=Wg/`/7./r9aKࠦ?T?ٔ%0ʦ,N]E6rS{oeUAevjiv!S}?Z)bJwn >ԺX6m?rƍ?ìچ˴Y2-1N>lUZ8ǵJbGP}Qu%XtJC5&xm>d\j(y5U+@=ÙꂌO-*2pLļu~E=pLd;t1{tS*sX'n'1Ő ,-Ǵ嘖 }W&4eU3 מi2oe}Б d}.+Q6u^ARƛ>pmEavSTb4Lb7lZ{fqJ,e78! V9(tWYmgqDȲjw\w3`|neU'ph[0AmLJNa,d}7ISa+UuMH"2<5HhկKݨyl[*d03D3s r29,(,3R@V#[  n/-H*s,m),LpB`DFendstream endobj 16123 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16124 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16125 0 obj <> endobj 16126 0 obj <> endobj 16127 0 obj [280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 460 0 0 0 0 0 0 0 0 0 0 280 0 0 0 0 0 0 740 580 780 700 520 480 0 0 280 0 0 440 900 740 840 560 0 580 520 420 640 0 0 680 0 0 0 0 0 0 0 0 660 660 640 660 640 280 660 600 240 0 580 240 940 600 640 660 0 320 440 300 600 560 800 560 580 460] endobj 16128 0 obj <> stream xeWiTSp)*1HbZTAT (eA$q8UAZQ ZT&:[[A*RSj]}aMZdߓaSeYo/ m$kG'-JKI#\{A$衝S5ҁ:ʁ5}5c²vdmljZG~0Dbʡtֲ1r ;{GJ3 g|4f!3Yļ23.,aXƞŸSSz~*=b"1љܖ TJS3N z8kD܈N~keVo0?-v[|reem% b6AGP=;\gRϐTN*%l[ 4VV{_SRݩ<]XgV'qW*r4 Q+w$bӊ%JYmn+GF"l\2f!H`Cp")#8Bi$<4ncB5ܶ0,~P/_wM9sHaR^vx;ܪ;]bu1+kG;WO7lKoQdc^:4FRxVppr@<,(^ fBPFUZ"߶kuwtDO{9ز@- Qr!y4C`^rI3nM[Nf&0ԝ:qb: )$l:Ѹ\չ?7 S0 DcƆV6#me1NöUXF%ԩdw:> (󰟋&})+?ϥG$ [ف}%-e)-63(y a"}uEMͻG GK=y)"ph78֜X^s-%#)B![C)nm'T GU0}W) j I>%sn1kp\mkR}"4bRAK'ڡk7a֒Fֺ`3̗ݲW3,FK0P529;#gG^]eyɊ[`ǹ.b:ɧr8ԂL'E+ekpڱZ l߉+pXq9@qğEZbEyNJXY74,WR 95&(oZNvD) QV\\ƍEyٺm!цSƦ~;"pEő~q{ڼBPhdDB%K G&RE{!C.:#y O9'D1DчDR%{С(")d]kC*\N'3I0qx6=WʺdyP>W(aQK[WicU! 0 &ϞRI>f ?@x8KūPx.O;yT)\~m䓢{E YCz 7/}Sُyw db[vdl_V'_h ELߞ\~'ρщyC Nqp%$$G 0K~iݢUEĞ3ArFSI-4kSBx=<1EHeJslsA%J#$"I?T)Cۇt"#>ҲXA>"3h*YQ? )Fmj X.~:#m( )zп =\́nO 4JH,-) Hix4HT`ߓa"t L( DtNpuQ0ݸ[ߍqç_̣ )ƲTN,z>SNl04c%5W 3Hx-uW?:b+Yli5UYh3VUWw߹A* 0KTzP H8/F2};va"#6hp#/&6#jjc]/mmԦU'ct,FH4Ԉ+,xOSс'0{jpa p/q$꟦cO[*f6=%.,4s:Eq'҂ &C m;tTQV}mU {wUiiqMꄛ9poI`ئHez׺ #x'exRS=|l 9<%u]E͸zWQf>?'ĭ1trӠ锊ߜwE\ hcWjp@ V.,^UHuBu]a؃\V:U`ɮlA^v?=?]S]]SYpN((>zU;bË/^s{6 ZB֖9YR=~6P*#57E^CDqpD{3}Bdqm,c"g-^ 'X<|\٦<X[r4d{hfrV>a՘m(._mq" 0Z#޴ eܱ,jRcזJ}6'3{ N[(zfnRqJsoN*!Ҭ Y],J> endobj 16130 0 obj <> stream q /X1 Do Q q endstream endobj 16131 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16132 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16133 0 obj <> stream HWS}V;19*a)(E\HaǾ{+-NȭUhv0_O'G&3Ϟ8:L~OlHm4W>-) ̛余&Iv6O|<4qΙENrƚzD$3D4eVz\5x65;.z4m~}OLm?Olutpw\oFA<ߞ,ϊv{;N2BNh]:̜'ym.>d$cY'I,]sɉf^$,=Ĉef Y9`Ij#r{{+ʽr>(9p+9p+9p+p_(p_(%p_*%p_*%p_*p_)p_)}Ug-(&{ Vb%,^b{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb{ZZ+1fVbăJYڽĈZ+1ficv/1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+I@k%,^b{1K@k%,^6JYjm@k%,^6JYjm@k%,^6JYjm@k%,^6JYjm$Ak%,^b{1 7_ ]HoETDŊ J+r+hJZ*VJU*hJZҪV"ЊJ+(\$,%1-,вJ-Rw {mȽĘTȽa,r/1f-{r/ 6KiKY@KށK͒Z^bZR R  R  R + R + R R R kR k֒TȽTȽ*TȽ*TȽTȽTȽTȽTȽ`TȽ`$,%1>r->1`2p~][cM=J`cJ1$4oW׍y2[5';'IUZJpM?>|_/.`,eUOh۽^@#x=sj4~s5B*F$?ŷvl=4+%?Gz g[>mڴUÈBşӁ-e6ϯ~_'*0MFy/60%Xm+lU_{ͯ]\&CCSߩCV}fs3o4M~_^6kmm ?7U}7{[˓_Nώ2hٌ+rҾGKsY$m䵍8`3{h?e4׆`f#3ѣZm8kYXy 67GQɬ$Je7g0/ұ.icꔦ63Z]ڀi8}]2i:rgNzT9m:u*C9=WeiiUcmX}z\ִz'1Z3|hfuEVխky{P ᄊ f͇xz,cp]ʍtoKj? yv~=0ݷꬭu˒΋w[&gm9(S%t\mI_:pͭ|}^RyUb̊ J+r+hJZ*VJU*hJZҪV"ЊJ+(\$,%1bYeZVi9唖Z*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ#ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘTȽĘ$F,{1 h{1 h{1 h{1 h{1 h{1 h{1 h{1 h{1 h c֒@%,8/_+oGI|!im=߬ A+ÜVFq|aK >鍡{lu.;w͵9mnǧ+.믶bendstream endobj 16134 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16135 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16136 0 obj <> endobj 16137 0 obj <> endobj 16138 0 obj <> stream q /X1 Do Q q endstream endobj 16139 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16140 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16141 0 obj <> stream H]oH+ެүgc{ԏ, *fvgLӜs"vhӷ? H<3љV*gw$)|J4ԐVӛZϧU][+0 I )x8,y ,kvS:7 ;2.ujZv[}zc,JZl&Eb Ni ^Hy$EЈ3/,.WC x+pNZ[4J;ttjYfG3li[$ -'(f2aF7 [2z+[F ;1z';Fzs>g@3B/}! F_ %/{3z/3g -fYhqzaKfiZfYh Z#XK虵FfYh Z#XK虵FfYh Z#XK虵FfYh Z#XK虵Ff ,8=Ͱ%XK4 -NO3l ,zfYh Z+XK3l ,zfYh Z+XK3l ,zfYh Z+XK3l ,zfYh Z+XKY ,8=Ͱ%XK4 -NO3l ,zfm&XK虵`-Ͱ%XK虵`-BKgf4Ö`-BKgf4 -Y [4 -Y ,zfm&XKYkiZfYhqz{A|ϒa5hN*. e E, gI&ӛO޳M9cy/?fFeeEwcO&םԵZ;몹ƟoZx?9EWujF{UUX%FcH m2yjQXW}_F $>1gۘTeЪk>ϤɹV:ppdl ֫"8yw*ǭ Z+o\7T+E9/_-?l8NڹۙO*ռ Դrt!Yjd,_b2lPm3 N/~n̦*{GnޚM, Yقnc?} ґ XX(K*S;&|vsX|4qN⥺|z{pC G9\wxx-Qe,KY|>jMSf7oД^8Vca)axJ&|..8ꡋo ^_޽}9-wiT8b|Pf31.U˒ֹG4D-/kWG3$]*<颒fNy>suCsY/hSų2(M\w˻y1 ቙W[ y;$ 0'endstream endobj 16142 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16143 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16144 0 obj <> stream q /X1 Do Q q endstream endobj 16145 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16146 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16147 0 obj <> stream HWmoI>?:aĮ"LClgU3ftZzzÞ??>uv8{BR_񪴒9J#ٺ*͖g`sV~/z>cyqnx"$lrSY`|2=,Qph򵆩.LHSw~ `GL;[ UJ_&8;G_?9fEP|qEp}&ń*6DRQ Q@܅ɧ6@IK+++kk[[;;;{{}}YA6- I6!*gE6!*gOm"TET+ զ6D3JB PjSj%Ԇ(}ZI6PmjC>S$TET+ զ6@Mm"gjSj%Զ(Ԇ}jԆ}jCT>PmjC>S"TETզ6@Mm"gUjSj(B QLPmjC>S"TE6!`VMm"gUjSۢЄjSr PjSr Q9(B QLPmjC>S&TE6!`VMm"gՄjSզ6D3jB QLPmjԆ(}ZM6!`VMmMm٧6@Mm٧6DCBЌ{-x"lrS왐:0.ϣn̎IG?~㣿'N0_Jr;3e,hw4 &di6?E*#ʻjz]K&3"*-pjPbn04\՘TӺDpFk׍MVx]wi6cCZOU ] ۠Ə׃ MOtHu}a}OWgW5q/cm̛l3_-c\r)u. ~"N4/5r ڔ??zܹ#p*Y Ѫ[?֗FpFZ(=c{R)|E.a=G TW gW[Xٰ; ;q >^3$9 'yAނ֙х ~]u}>i8\ݲKH0{| @T7S~=/h1~ͻ-wKkڹ\+ճQaTc' |mC`Xemŷ9abݠ#EZGx0u0cLZ?VB= ضg9KR2 nM8 )tJK)L&cq|݇s,.:8 "C^MxEx.'WUlqq>r jmm{0=lb<6k#&/N];Tu,q3]2ǾxP.o,y}:]1-k9 K OlPqvH]Z%˵ly2Q|l*.!I)t H_bFv>9yX&ˉ %zPmץ[ }]Y 04pe4{殼{1(Y((%@ v2eӝ[ZnO*>f kY2;:F6WU [=R'8a8֓ uj(iL&}LsDSkI4\dtt SƘ;⭯F0?HcK7i| 4c; dXğOٷ1;/ٟqKJ|Ud-G@C-Ǘ^x Atdb Ih^֟Sw.S?[|zoH.^:$ W `=|8 aZf?GX2VtҔԻP꭛#œsҸbz?lWXpj̝?_el]vUZ5ϪKiG1:r ӟ.FD&)xD ZMMoާK\ St}R["huK`'=z+&sІ^,`Ò>4+lYQ f` 9ÏN$\{cGJ#ZI78AeP=^i֫ ˱#[ h?WZB7;BjZ} <8n2z.*zB;,ʔ2n#躀xMIͪr^lvdݷ@Gr Ù ʹ)pA8iS.[oy/&D;$t[/FD#xn9P@0_R2ueE+`R"4v9JX|8rHbv-Xض;8 dhaK6^RkU ?# c&>QL:Eh@.!GBJ\ K`yj hPntύR'lˉYh/ #-ya"Rhn0օ(CJåBWjؒ@ lŘ5-H*NJ|ڤV s.X_B^0K)\, /T?#Z߽ k;0 &[ p=o2:8\֛EjH7"ctY-;ѴRt;LV)s$>cMOc#XdEw#E૎6Pn&Ze|I~Y.7CT$d0D _78!\4ICbp91h:gz%qw7, }jGuɘnx>/P 7024 0 R/Type/Annot/A 22050 0 R/Subtype/Link/Rect[212 670 222 678]/Border[0 0 0]/H/N>> endobj 16149 0 obj <>/P 7024 0 R/Type/Annot/A 22002 0 R/Subtype/Link/Rect[224 670 236 678]/Border[0 0 0]/H/N>> endobj 16150 0 obj <>/P 7024 0 R/Type/Annot/A 34276 0 R/Subtype/Link/Rect[248 660 260 668]/Border[0 0 0]/H/N>> endobj 16151 0 obj <>/P 7024 0 R/Type/Annot/A 21408 0 R/Subtype/Link/Rect[200 650 213 659]/Border[0 0 0]/H/N>> endobj 16152 0 obj <>/P 7024 0 R/Type/Annot/A 21346 0 R/Subtype/Link/Rect[214 650 224 658]/Border[0 0 0]/H/N>> endobj 16153 0 obj <>/P 7024 0 R/Type/Annot/A 33637 0 R/Subtype/Link/Rect[226 650 234 658]/Border[0 0 0]/H/N>> endobj 16154 0 obj <>/P 7024 0 R/Type/Annot/A 20541 0 R/Subtype/Link/Rect[253 640 265 648]/Border[0 0 0]/H/N>> endobj 16155 0 obj <>/P 7024 0 R/Type/Annot/A 20125 0 R/Subtype/Link/Rect[187 630 193 638]/Border[0 0 0]/H/N>> endobj 16156 0 obj <>/P 7024 0 R/Type/Annot/A 20091 0 R/Subtype/Link/Rect[195 630 209 638]/Border[0 0 0]/H/N>> endobj 16157 0 obj <>/P 7024 0 R/Type/Annot/A 19677 0 R/Subtype/Link/Rect[211 630 225 638]/Border[0 0 0]/H/N>> endobj 16158 0 obj <>/P 7024 0 R/Type/Annot/A 19642 0 R/Subtype/Link/Rect[227 630 244 639]/Border[0 0 0]/H/N>> endobj 16159 0 obj <>/P 7024 0 R/Type/Annot/A 19095 0 R/Subtype/Link/Rect[245 630 259 638]/Border[0 0 0]/H/N>> endobj 16160 0 obj <>/P 7024 0 R/Type/Annot/A 19061 0 R/Subtype/Link/Rect[261 630 275 638]/Border[0 0 0]/H/N>> endobj 16161 0 obj <>/P 7024 0 R/Type/Annot/A 19037 0 R/Subtype/Link/Rect[277 630 291 638]/Border[0 0 0]/H/N>> endobj 16162 0 obj <>/P 7024 0 R/Type/Annot/A 18969 0 R/Subtype/Link/Rect[151 620 167 629]/Border[0 0 0]/H/N>> endobj 16163 0 obj <>/P 7024 0 R/Type/Annot/A 18953 0 R/Subtype/Link/Rect[168 620 182 628]/Border[0 0 0]/H/N>> endobj 16164 0 obj <>/P 7024 0 R/Type/Annot/A 18900 0 R/Subtype/Link/Rect[184 620 198 628]/Border[0 0 0]/H/N>> endobj 16165 0 obj <>/P 7024 0 R/Type/Annot/A 18874 0 R/Subtype/Link/Rect[200 620 217 629]/Border[0 0 0]/H/N>> endobj 16166 0 obj <>/P 7024 0 R/Type/Annot/A 18841 0 R/Subtype/Link/Rect[217 620 231 628]/Border[0 0 0]/H/N>> endobj 16167 0 obj <>/P 7024 0 R/Type/Annot/A 18817 0 R/Subtype/Link/Rect[233 620 247 628]/Border[0 0 0]/H/N>> endobj 16168 0 obj <>/P 7024 0 R/Type/Annot/A 18772 0 R/Subtype/Link/Rect[249 620 263 628]/Border[0 0 0]/H/N>> endobj 16169 0 obj <>/P 7024 0 R/Type/Annot/A 18740 0 R/Subtype/Link/Rect[265 620 282 629]/Border[0 0 0]/H/N>> endobj 16170 0 obj <>/P 7024 0 R/Type/Annot/A 18702 0 R/Subtype/Link/Rect[283 620 297 628]/Border[0 0 0]/H/N>> endobj 16171 0 obj <>/P 7024 0 R/Type/Annot/A 18678 0 R/Subtype/Link/Rect[151 610 167 619]/Border[0 0 0]/H/N>> endobj 16172 0 obj <>/P 7024 0 R/Type/Annot/A 18647 0 R/Subtype/Link/Rect[168 610 182 618]/Border[0 0 0]/H/N>> endobj 16173 0 obj <>/P 7024 0 R/Type/Annot/A 18630 0 R/Subtype/Link/Rect[184 610 198 618]/Border[0 0 0]/H/N>> endobj 16174 0 obj <>/P 7024 0 R/Type/Annot/A 18597 0 R/Subtype/Link/Rect[200 610 214 618]/Border[0 0 0]/H/N>> endobj 16175 0 obj <>/P 7024 0 R/Type/Annot/A 18571 0 R/Subtype/Link/Rect[216 610 230 618]/Border[0 0 0]/H/N>> endobj 16176 0 obj <>/P 7024 0 R/Type/Annot/A 29066 0 R/Subtype/Link/Rect[232 610 246 618]/Border[0 0 0]/H/N>> endobj 16177 0 obj <>/P 7024 0 R/Type/Annot/A 18489 0 R/Subtype/Link/Rect[248 610 262 618]/Border[0 0 0]/H/N>> endobj 16178 0 obj <>/P 7024 0 R/Type/Annot/A 18467 0 R/Subtype/Link/Rect[264 610 278 618]/Border[0 0 0]/H/N>> endobj 16179 0 obj <>/P 7024 0 R/Type/Annot/A 18429 0 R/Subtype/Link/Rect[280 610 293 618]/Border[0 0 0]/H/N>> endobj 16180 0 obj <>/P 7024 0 R/Type/Annot/A 18406 0 R/Subtype/Link/Rect[295 610 309 618]/Border[0 0 0]/H/N>> endobj 16181 0 obj <>/P 7024 0 R/Type/Annot/A 18333 0 R/Subtype/Link/Rect[151 600 165 608]/Border[0 0 0]/H/N>> endobj 16182 0 obj <>/P 7024 0 R/Type/Annot/A 18297 0 R/Subtype/Link/Rect[167 600 181 608]/Border[0 0 0]/H/N>> endobj 16183 0 obj <>/P 7024 0 R/Type/Annot/A 18232 0 R/Subtype/Link/Rect[183 600 197 608]/Border[0 0 0]/H/N>> endobj 16184 0 obj <>/P 7024 0 R/Type/Annot/A 18193 0 R/Subtype/Link/Rect[199 600 213 608]/Border[0 0 0]/H/N>> endobj 16185 0 obj <>/P 7024 0 R/Type/Annot/A 18152 0 R/Subtype/Link/Rect[215 600 229 608]/Border[0 0 0]/H/N>> endobj 16186 0 obj <>/P 7024 0 R/Type/Annot/A 18049 0 R/Subtype/Link/Rect[231 600 245 608]/Border[0 0 0]/H/N>> endobj 16187 0 obj <>/P 7024 0 R/Type/Annot/A 26508 0 R/Subtype/Link/Rect[247 600 261 608]/Border[0 0 0]/H/N>> endobj 16188 0 obj <>/P 7024 0 R/Type/Annot/A 18001 0 R/Subtype/Link/Rect[263 600 275 608]/Border[0 0 0]/H/N>> endobj 16189 0 obj <>/P 7024 0 R/Type/Annot/A 25945 0 R/Subtype/Link/Rect[210 590 222 599]/Border[0 0 0]/H/N>> endobj 16190 0 obj <>/P 7024 0 R/Type/Annot/A 17956 0 R/Subtype/Link/Rect[223 590 233 598]/Border[0 0 0]/H/N>> endobj 16191 0 obj <>/P 7024 0 R/Type/Annot/A 17940 0 R/Subtype/Link/Rect[235 590 249 598]/Border[0 0 0]/H/N>> endobj 16192 0 obj <>/P 7024 0 R/Type/Annot/A 17913 0 R/Subtype/Link/Rect[251 590 265 598]/Border[0 0 0]/H/N>> endobj 16193 0 obj <>/P 7024 0 R/Type/Annot/A 17836 0 R/Subtype/Link/Rect[267 590 281 598]/Border[0 0 0]/H/N>> endobj 16194 0 obj <>/P 7024 0 R/Type/Annot/A 17814 0 R/Subtype/Link/Rect[283 590 295 598]/Border[0 0 0]/H/N>> endobj 16195 0 obj <>/P 7024 0 R/Type/Annot/A 17786 0 R/Subtype/Link/Rect[192 580 209 589]/Border[0 0 0]/H/N>> endobj 16196 0 obj <>/P 7024 0 R/Type/Annot/A 17748 0 R/Subtype/Link/Rect[209 580 221 588]/Border[0 0 0]/H/N>> endobj 16197 0 obj <>/P 7024 0 R/Type/Annot/A 17671 0 R/Subtype/Link/Rect[188 570 200 578]/Border[0 0 0]/H/N>> endobj 16198 0 obj <>/P 7024 0 R/Type/Annot/A 17583 0 R/Subtype/Link/Rect[216 560 230 568]/Border[0 0 0]/H/N>> endobj 16199 0 obj <>/P 7024 0 R/Type/Annot/A 17560 0 R/Subtype/Link/Rect[232 560 249 569]/Border[0 0 0]/H/N>> endobj 16200 0 obj <>/P 7024 0 R/Type/Annot/A 17537 0 R/Subtype/Link/Rect[249 560 261 568]/Border[0 0 0]/H/N>> endobj 16201 0 obj <>/P 7024 0 R/Type/Annot/A 17519 0 R/Subtype/Link/Rect[206 550 218 558]/Border[0 0 0]/H/N>> endobj 16202 0 obj <>/P 7024 0 R/Type/Annot/A 17494 0 R/Subtype/Link/Rect[197 540 209 549]/Border[0 0 0]/H/N>> endobj 16203 0 obj <>/P 7024 0 R/Type/Annot/A 17466 0 R/Subtype/Link/Rect[210 540 220 548]/Border[0 0 0]/H/N>> endobj 16204 0 obj <>/P 7024 0 R/Type/Annot/A 17433 0 R/Subtype/Link/Rect[222 540 232 548]/Border[0 0 0]/H/N>> endobj 16205 0 obj <>/P 7024 0 R/Type/Annot/A 21394 0 R/Subtype/Link/Rect[234 540 248 548]/Border[0 0 0]/H/N>> endobj 16206 0 obj <>/P 7024 0 R/Type/Annot/A 17378 0 R/Subtype/Link/Rect[250 540 264 548]/Border[0 0 0]/H/N>> endobj 16207 0 obj <>/P 7024 0 R/Type/Annot/A 17336 0 R/Subtype/Link/Rect[266 540 280 548]/Border[0 0 0]/H/N>> endobj 16208 0 obj <>/P 7024 0 R/Type/Annot/A 17323 0 R/Subtype/Link/Rect[151 530 167 539]/Border[0 0 0]/H/N>> endobj 16209 0 obj <>/P 7024 0 R/Type/Annot/A 16977 0 R/Subtype/Link/Rect[168 530 182 538]/Border[0 0 0]/H/N>> endobj 16210 0 obj <>/P 7024 0 R/Type/Annot/A 16966 0 R/Subtype/Link/Rect[184 530 198 538]/Border[0 0 0]/H/N>> endobj 16211 0 obj <>/P 7024 0 R/Type/Annot/A 16933 0 R/Subtype/Link/Rect[200 530 214 538]/Border[0 0 0]/H/N>> endobj 16212 0 obj <>/P 7024 0 R/Type/Annot/A 16911 0 R/Subtype/Link/Rect[216 530 230 538]/Border[0 0 0]/H/N>> endobj 16213 0 obj <>/P 7024 0 R/Type/Annot/A 16874 0 R/Subtype/Link/Rect[232 530 246 538]/Border[0 0 0]/H/N>> endobj 16214 0 obj <>/P 7024 0 R/Type/Annot/A 16843 0 R/Subtype/Link/Rect[248 530 265 539]/Border[0 0 0]/H/N>> endobj 16215 0 obj <>/P 7024 0 R/Type/Annot/A 16820 0 R/Subtype/Link/Rect[265 530 279 538]/Border[0 0 0]/H/N>> endobj 16216 0 obj <>/P 7024 0 R/Type/Annot/A 16776 0 R/Subtype/Link/Rect[281 530 295 538]/Border[0 0 0]/H/N>> endobj 16217 0 obj <>/P 7024 0 R/Type/Annot/A 16752 0 R/Subtype/Link/Rect[151 520 165 528]/Border[0 0 0]/H/N>> endobj 16218 0 obj <>/P 7024 0 R/Type/Annot/A 16707 0 R/Subtype/Link/Rect[167 520 181 528]/Border[0 0 0]/H/N>> endobj 16219 0 obj <>/P 7024 0 R/Type/Annot/A 18843 0 R/Subtype/Link/Rect[183 520 197 528]/Border[0 0 0]/H/N>> endobj 16220 0 obj <>/P 7024 0 R/Type/Annot/A 16657 0 R/Subtype/Link/Rect[199 520 213 528]/Border[0 0 0]/H/N>> endobj 16221 0 obj <>/P 7024 0 R/Type/Annot/A 16637 0 R/Subtype/Link/Rect[215 520 229 528]/Border[0 0 0]/H/N>> endobj 16222 0 obj <>/P 7024 0 R/Type/Annot/A 16607 0 R/Subtype/Link/Rect[231 520 245 528]/Border[0 0 0]/H/N>> endobj 16223 0 obj <>/P 7024 0 R/Type/Annot/A 16575 0 R/Subtype/Link/Rect[247 520 261 528]/Border[0 0 0]/H/N>> endobj 16224 0 obj <>/P 7024 0 R/Type/Annot/A 16538 0 R/Subtype/Link/Rect[263 520 277 528]/Border[0 0 0]/H/N>> endobj 16225 0 obj <>/P 7024 0 R/Type/Annot/A 16506 0 R/Subtype/Link/Rect[279 520 293 528]/Border[0 0 0]/H/N>> endobj 16226 0 obj <>/P 7024 0 R/Type/Annot/A 18631 0 R/Subtype/Link/Rect[151 510 167 519]/Border[0 0 0]/H/N>> endobj 16227 0 obj <>/P 7024 0 R/Type/Annot/A 18596 0 R/Subtype/Link/Rect[168 510 182 518]/Border[0 0 0]/H/N>> endobj 16228 0 obj <>/P 7024 0 R/Type/Annot/A 18570 0 R/Subtype/Link/Rect[184 510 201 519]/Border[0 0 0]/H/N>> endobj 16229 0 obj <>/P 7024 0 R/Type/Annot/A 44784 0 R/Subtype/Link/Rect[201 510 215 518]/Border[0 0 0]/H/N>> endobj 16230 0 obj <>/P 7024 0 R/Type/Annot/A 28474 0 R/Subtype/Link/Rect[217 510 234 519]/Border[0 0 0]/H/N>> endobj 16231 0 obj <>/P 7024 0 R/Type/Annot/A 44700 0 R/Subtype/Link/Rect[235 510 249 518]/Border[0 0 0]/H/N>> endobj 16232 0 obj <>/P 7024 0 R/Type/Annot/A 44675 0 R/Subtype/Link/Rect[251 510 265 518]/Border[0 0 0]/H/N>> endobj 16233 0 obj <>/P 7024 0 R/Type/Annot/A 44649 0 R/Subtype/Link/Rect[267 510 281 518]/Border[0 0 0]/H/N>> endobj 16234 0 obj <>/P 7024 0 R/Type/Annot/A 27609 0 R/Subtype/Link/Rect[151 500 167 509]/Border[0 0 0]/H/N>> endobj 16235 0 obj <>/P 7024 0 R/Type/Annot/A 44567 0 R/Subtype/Link/Rect[168 500 182 508]/Border[0 0 0]/H/N>> endobj 16236 0 obj <>/P 7024 0 R/Type/Annot/A 44516 0 R/Subtype/Link/Rect[184 500 198 508]/Border[0 0 0]/H/N>> endobj 16237 0 obj <>/P 7024 0 R/Type/Annot/A 44497 0 R/Subtype/Link/Rect[200 500 214 508]/Border[0 0 0]/H/N>> endobj 16238 0 obj <>/P 7024 0 R/Type/Annot/A 44453 0 R/Subtype/Link/Rect[216 500 230 508]/Border[0 0 0]/H/N>> endobj 16239 0 obj <>/P 7024 0 R/Type/Annot/A 44416 0 R/Subtype/Link/Rect[232 500 246 508]/Border[0 0 0]/H/N>> endobj 16240 0 obj <>/P 7024 0 R/Type/Annot/A 44377 0 R/Subtype/Link/Rect[248 500 262 508]/Border[0 0 0]/H/N>> endobj 16241 0 obj <>/P 7024 0 R/Type/Annot/A 25900 0 R/Subtype/Link/Rect[264 500 276 508]/Border[0 0 0]/H/N>> endobj 16242 0 obj <>/P 7024 0 R/Type/Annot/A 37764 0 R/Subtype/Link/Rect[189 490 201 498]/Border[0 0 0]/H/N>> endobj 16243 0 obj <>/P 7024 0 R/Type/Annot/A 17949 0 R/Subtype/Link/Rect[282 480 294 488]/Border[0 0 0]/H/N>> endobj 16244 0 obj <>/P 7024 0 R/Type/Annot/A 44243 0 R/Subtype/Link/Rect[202 470 214 478]/Border[0 0 0]/H/N>> endobj 16245 0 obj <>/P 7024 0 R/Type/Annot/A 44204 0 R/Subtype/Link/Rect[227 460 239 468]/Border[0 0 0]/H/N>> endobj 16246 0 obj <>/P 7024 0 R/Type/Annot/A 24902 0 R/Subtype/Link/Rect[207 440 219 448]/Border[0 0 0]/H/N>> endobj 16247 0 obj <>/P 7024 0 R/Type/Annot/A 17803 0 R/Subtype/Link/Rect[231 430 243 438]/Border[0 0 0]/H/N>> endobj 16248 0 obj <>/P 7024 0 R/Type/Annot/A 17761 0 R/Subtype/Link/Rect[216 420 230 428]/Border[0 0 0]/H/N>> endobj 16249 0 obj <>/P 7024 0 R/Type/Annot/A 17730 0 R/Subtype/Link/Rect[232 420 244 428]/Border[0 0 0]/H/N>> endobj 16250 0 obj <>/P 7024 0 R/Type/Annot/A 44032 0 R/Subtype/Link/Rect[211 410 228 419]/Border[0 0 0]/H/N>> endobj 16251 0 obj <>/P 7024 0 R/Type/Annot/A 37494 0 R/Subtype/Link/Rect[229 410 241 418]/Border[0 0 0]/H/N>> endobj 16252 0 obj <>/P 7024 0 R/Type/Annot/A 43962 0 R/Subtype/Link/Rect[221 400 235 408]/Border[0 0 0]/H/N>> endobj 16253 0 obj <>/P 7024 0 R/Type/Annot/A 43929 0 R/Subtype/Link/Rect[237 400 251 408]/Border[0 0 0]/H/N>> endobj 16254 0 obj <>/P 7024 0 R/Type/Annot/A 43878 0 R/Subtype/Link/Rect[253 400 265 408]/Border[0 0 0]/H/N>> endobj 16255 0 obj <>/P 7024 0 R/Type/Annot/A 43842 0 R/Subtype/Link/Rect[216 390 233 399]/Border[0 0 0]/H/N>> endobj 16256 0 obj <>/P 7024 0 R/Type/Annot/A 43808 0 R/Subtype/Link/Rect[233 390 247 398]/Border[0 0 0]/H/N>> endobj 16257 0 obj <>/P 7024 0 R/Type/Annot/A 43776 0 R/Subtype/Link/Rect[249 390 266 399]/Border[0 0 0]/H/N>> endobj 16258 0 obj <>/P 7024 0 R/Type/Annot/A 17379 0 R/Subtype/Link/Rect[267 390 279 398]/Border[0 0 0]/H/N>> endobj 16259 0 obj <>/P 7024 0 R/Type/Annot/A 43700 0 R/Subtype/Link/Rect[200 380 208 388]/Border[0 0 0]/H/N>> endobj 16260 0 obj <>/P 7024 0 R/Type/Annot/A 43661 0 R/Subtype/Link/Rect[167 370 177 378]/Border[0 0 0]/H/N>> endobj 16261 0 obj <>/P 7024 0 R/Type/Annot/A 43617 0 R/Subtype/Link/Rect[179 370 193 378]/Border[0 0 0]/H/N>> endobj 16262 0 obj <>/P 7024 0 R/Type/Annot/A 43586 0 R/Subtype/Link/Rect[195 370 209 378]/Border[0 0 0]/H/N>> endobj 16263 0 obj <>/P 7024 0 R/Type/Annot/A 43543 0 R/Subtype/Link/Rect[211 370 223 378]/Border[0 0 0]/H/N>> endobj 16264 0 obj <>/P 7024 0 R/Type/Annot/A 43517 0 R/Subtype/Link/Rect[211 360 221 368]/Border[0 0 0]/H/N>> endobj 16265 0 obj <>/P 7024 0 R/Type/Annot/A 43468 0 R/Subtype/Link/Rect[223 360 233 368]/Border[0 0 0]/H/N>> endobj 16266 0 obj <>/P 7024 0 R/Type/Annot/A 43447 0 R/Subtype/Link/Rect[235 360 245 368]/Border[0 0 0]/H/N>> endobj 16267 0 obj <>/P 7024 0 R/Type/Annot/A 43402 0 R/Subtype/Link/Rect[247 360 257 368]/Border[0 0 0]/H/N>> endobj 16268 0 obj <>/P 7024 0 R/Type/Annot/A 43364 0 R/Subtype/Link/Rect[259 360 271 368]/Border[0 0 0]/H/N>> endobj 16269 0 obj <>/P 7024 0 R/Type/Annot/A 43320 0 R/Subtype/Link/Rect[211 350 221 358]/Border[0 0 0]/H/N>> endobj 16270 0 obj <>/P 7024 0 R/Type/Annot/A 43268 0 R/Subtype/Link/Rect[223 350 233 358]/Border[0 0 0]/H/N>> endobj 16271 0 obj <>/P 7024 0 R/Type/Annot/A 43232 0 R/Subtype/Link/Rect[235 350 245 358]/Border[0 0 0]/H/N>> endobj 16272 0 obj <>/P 7024 0 R/Type/Annot/A 43179 0 R/Subtype/Link/Rect[247 350 259 358]/Border[0 0 0]/H/N>> endobj 16273 0 obj <>/P 7024 0 R/Type/Annot/A 43160 0 R/Subtype/Link/Rect[216 340 224 348]/Border[0 0 0]/H/N>> endobj 16274 0 obj <>/P 7024 0 R/Type/Annot/A 16590 0 R/Subtype/Link/Rect[216 330 224 338]/Border[0 0 0]/H/N>> endobj 16275 0 obj <>/P 7024 0 R/Type/Annot/A 43092 0 R/Subtype/Link/Rect[213 320 225 329]/Border[0 0 0]/H/N>> endobj 16276 0 obj <>/P 7024 0 R/Type/Annot/A 43027 0 R/Subtype/Link/Rect[186 310 196 319]/Border[0 0 0]/H/N>> endobj 16277 0 obj <>/P 7024 0 R/Type/Annot/A 42993 0 R/Subtype/Link/Rect[198 310 211 319]/Border[0 0 0]/H/N>> endobj 16278 0 obj <>/P 7024 0 R/Type/Annot/A 42969 0 R/Subtype/Link/Rect[213 310 227 319]/Border[0 0 0]/H/N>> endobj 16279 0 obj <>/P 7024 0 R/Type/Annot/A 42927 0 R/Subtype/Link/Rect[229 310 241 319]/Border[0 0 0]/H/N>> endobj 16280 0 obj <>/P 7024 0 R/Type/Annot/A 42894 0 R/Subtype/Link/Rect[215 290 228 299]/Border[0 0 0]/H/N>> endobj 16281 0 obj <>/P 7024 0 R/Type/Annot/A 42858 0 R/Subtype/Link/Rect[228 290 238 299]/Border[0 0 0]/H/N>> endobj 16282 0 obj <>/P 7024 0 R/Type/Annot/A 42826 0 R/Subtype/Link/Rect[240 290 250 299]/Border[0 0 0]/H/N>> endobj 16283 0 obj <>/P 7024 0 R/Type/Annot/A 42776 0 R/Subtype/Link/Rect[252 290 266 299]/Border[0 0 0]/H/N>> endobj 16284 0 obj <>/P 7024 0 R/Type/Annot/A 42747 0 R/Subtype/Link/Rect[268 290 281 299]/Border[0 0 0]/H/N>> endobj 16285 0 obj <>/P 7024 0 R/Type/Annot/A 42711 0 R/Subtype/Link/Rect[283 290 297 299]/Border[0 0 0]/H/N>> endobj 16286 0 obj <>/P 7024 0 R/Type/Annot/A 42677 0 R/Subtype/Link/Rect[151 280 165 289]/Border[0 0 0]/H/N>> endobj 16287 0 obj <>/P 7024 0 R/Type/Annot/A 18157 0 R/Subtype/Link/Rect[167 280 181 289]/Border[0 0 0]/H/N>> endobj 16288 0 obj <>/P 7024 0 R/Type/Annot/A 42593 0 R/Subtype/Link/Rect[183 280 195 289]/Border[0 0 0]/H/N>> endobj 16289 0 obj <>/P 7024 0 R/Type/Annot/A 42566 0 R/Subtype/Link/Rect[153 270 165 279]/Border[0 0 0]/H/N>> endobj 16290 0 obj <>/P 7024 0 R/Type/Annot/A 42532 0 R/Subtype/Link/Rect[197 260 211 269]/Border[0 0 0]/H/N>> endobj 16291 0 obj <>/P 7024 0 R/Type/Annot/A 42491 0 R/Subtype/Link/Rect[213 260 227 269]/Border[0 0 0]/H/N>> endobj 16292 0 obj <>/P 7024 0 R/Type/Annot/A 42451 0 R/Subtype/Link/Rect[229 260 241 269]/Border[0 0 0]/H/N>> endobj 16293 0 obj <>/P 7024 0 R/Type/Annot/A 42398 0 R/Subtype/Link/Rect[202 250 214 259]/Border[0 0 0]/H/N>> endobj 16294 0 obj <>/P 7024 0 R/Type/Annot/A 42373 0 R/Subtype/Link/Rect[197 240 213 249]/Border[0 0 0]/H/N>> endobj 16295 0 obj <>/P 7024 0 R/Type/Annot/A 42341 0 R/Subtype/Link/Rect[214 240 228 249]/Border[0 0 0]/H/N>> endobj 16296 0 obj <>/P 7024 0 R/Type/Annot/A 42301 0 R/Subtype/Link/Rect[230 240 242 249]/Border[0 0 0]/H/N>> endobj 16297 0 obj <>/P 7024 0 R/Type/Annot/A 42249 0 R/Subtype/Link/Rect[180 220 197 229]/Border[0 0 0]/H/N>> endobj 16298 0 obj <>/P 7024 0 R/Type/Annot/A 42221 0 R/Subtype/Link/Rect[198 220 210 229]/Border[0 0 0]/H/N>> endobj 16299 0 obj <>/P 7024 0 R/Type/Annot/A 42163 0 R/Subtype/Link/Rect[168 210 185 219]/Border[0 0 0]/H/N>> endobj 16300 0 obj <>/P 7024 0 R/Type/Annot/A 42128 0 R/Subtype/Link/Rect[186 210 198 219]/Border[0 0 0]/H/N>> endobj 16301 0 obj <>/P 7024 0 R/Type/Annot/A 42082 0 R/Subtype/Link/Rect[173 200 185 209]/Border[0 0 0]/H/N>> endobj 16302 0 obj <>/P 7024 0 R/Type/Annot/A 42042 0 R/Subtype/Link/Rect[170 190 184 199]/Border[0 0 0]/H/N>> endobj 16303 0 obj <>/P 7024 0 R/Type/Annot/A 41998 0 R/Subtype/Link/Rect[186 190 202 199]/Border[0 0 0]/H/N>> endobj 16304 0 obj <>/P 7024 0 R/Type/Annot/A 41960 0 R/Subtype/Link/Rect[203 190 215 199]/Border[0 0 0]/H/N>> endobj 16305 0 obj <>/P 7024 0 R/Type/Annot/A 41931 0 R/Subtype/Link/Rect[213 180 229 189]/Border[0 0 0]/H/N>> endobj 16306 0 obj <>/P 7024 0 R/Type/Annot/A 41890 0 R/Subtype/Link/Rect[230 180 242 189]/Border[0 0 0]/H/N>> endobj 16307 0 obj <>/P 7024 0 R/Type/Annot/A 41840 0 R/Subtype/Link/Rect[197 170 213 179]/Border[0 0 0]/H/N>> endobj 16308 0 obj <>/P 7024 0 R/Type/Annot/A 17335 0 R/Subtype/Link/Rect[214 170 228 179]/Border[0 0 0]/H/N>> endobj 16309 0 obj <>/P 7024 0 R/Type/Annot/A 41735 0 R/Subtype/Link/Rect[230 170 244 179]/Border[0 0 0]/H/N>> endobj 16310 0 obj <>/P 7024 0 R/Type/Annot/A 41686 0 R/Subtype/Link/Rect[246 170 260 179]/Border[0 0 0]/H/N>> endobj 16311 0 obj <>/P 7024 0 R/Type/Annot/A 41646 0 R/Subtype/Link/Rect[262 170 276 179]/Border[0 0 0]/H/N>> endobj 16312 0 obj <>/P 7024 0 R/Type/Annot/A 41601 0 R/Subtype/Link/Rect[278 170 292 179]/Border[0 0 0]/H/N>> endobj 16313 0 obj <>/P 7024 0 R/Type/Annot/A 41559 0 R/Subtype/Link/Rect[294 170 306 179]/Border[0 0 0]/H/N>> endobj 16314 0 obj <>/P 7024 0 R/Type/Annot/A 16858 0 R/Subtype/Link/Rect[173 160 185 169]/Border[0 0 0]/H/N>> endobj 16315 0 obj <>/P 7024 0 R/Type/Annot/A 41470 0 R/Subtype/Link/Rect[192 150 206 159]/Border[0 0 0]/H/N>> endobj 16316 0 obj <>/P 7024 0 R/Type/Annot/A 41437 0 R/Subtype/Link/Rect[208 150 225 159]/Border[0 0 0]/H/N>> endobj 16317 0 obj <>/P 7024 0 R/Type/Annot/A 41416 0 R/Subtype/Link/Rect[225 150 237 159]/Border[0 0 0]/H/N>> endobj 16318 0 obj <>/P 7024 0 R/Type/Annot/A 41353 0 R/Subtype/Link/Rect[377 670 389 678]/Border[0 0 0]/H/N>> endobj 16319 0 obj <>/P 7024 0 R/Type/Annot/A 41322 0 R/Subtype/Link/Rect[406 660 418 668]/Border[0 0 0]/H/N>> endobj 16320 0 obj <>/P 7024 0 R/Type/Annot/A 41285 0 R/Subtype/Link/Rect[413 650 427 658]/Border[0 0 0]/H/N>> endobj 16321 0 obj <>/P 7024 0 R/Type/Annot/A 41260 0 R/Subtype/Link/Rect[429 650 446 659]/Border[0 0 0]/H/N>> endobj 16322 0 obj <>/P 7024 0 R/Type/Annot/A 41211 0 R/Subtype/Link/Rect[447 650 461 658]/Border[0 0 0]/H/N>> endobj 16323 0 obj <>/P 7024 0 R/Type/Annot/A 41186 0 R/Subtype/Link/Rect[463 650 477 658]/Border[0 0 0]/H/N>> endobj 16324 0 obj <>/P 7024 0 R/Type/Annot/A 41160 0 R/Subtype/Link/Rect[479 650 493 658]/Border[0 0 0]/H/N>> endobj 16325 0 obj <>/P 7024 0 R/Type/Annot/A 41128 0 R/Subtype/Link/Rect[495 650 507 658]/Border[0 0 0]/H/N>> endobj 16326 0 obj <>/P 7024 0 R/Type/Annot/A 41097 0 R/Subtype/Link/Rect[419 640 432 649]/Border[0 0 0]/H/N>> endobj 16327 0 obj <>/P 7024 0 R/Type/Annot/A 44842 0 R/Subtype/Link/Rect[432 640 442 648]/Border[0 0 0]/H/N>> endobj 16328 0 obj <>/P 7024 0 R/Type/Annot/A 40742 0 R/Subtype/Link/Rect[444 640 458 648]/Border[0 0 0]/H/N>> endobj 16329 0 obj <>/P 7024 0 R/Type/Annot/A 40710 0 R/Subtype/Link/Rect[460 640 474 648]/Border[0 0 0]/H/N>> endobj 16330 0 obj <>/P 7024 0 R/Type/Annot/A 40677 0 R/Subtype/Link/Rect[476 640 490 648]/Border[0 0 0]/H/N>> endobj 16331 0 obj <>/P 7024 0 R/Type/Annot/A 40112 0 R/Subtype/Link/Rect[492 640 504 648]/Border[0 0 0]/H/N>> endobj 16332 0 obj <>/P 7024 0 R/Type/Annot/A 40084 0 R/Subtype/Link/Rect[400 630 417 639]/Border[0 0 0]/H/N>> endobj 16333 0 obj <>/P 7024 0 R/Type/Annot/A 39526 0 R/Subtype/Link/Rect[417 630 429 638]/Border[0 0 0]/H/N>> endobj 16334 0 obj <>/P 7024 0 R/Type/Annot/A 39489 0 R/Subtype/Link/Rect[400 620 417 629]/Border[0 0 0]/H/N>> endobj 16335 0 obj <>/P 7024 0 R/Type/Annot/A 38968 0 R/Subtype/Link/Rect[417 620 431 628]/Border[0 0 0]/H/N>> endobj 16336 0 obj <>/P 7024 0 R/Type/Annot/A 38924 0 R/Subtype/Link/Rect[433 620 450 629]/Border[0 0 0]/H/N>> endobj 16337 0 obj <>/P 7024 0 R/Type/Annot/A 38392 0 R/Subtype/Link/Rect[451 620 465 628]/Border[0 0 0]/H/N>> endobj 16338 0 obj <>/P 7024 0 R/Type/Annot/A 38342 0 R/Subtype/Link/Rect[467 620 481 628]/Border[0 0 0]/H/N>> endobj 16339 0 obj <>/P 7024 0 R/Type/Annot/A 38310 0 R/Subtype/Link/Rect[483 620 499 629]/Border[0 0 0]/H/N>> endobj 16340 0 obj <>/P 7024 0 R/Type/Annot/A 38275 0 R/Subtype/Link/Rect[500 620 514 628]/Border[0 0 0]/H/N>> endobj 16341 0 obj <>/P 7024 0 R/Type/Annot/A 42467 0 R/Subtype/Link/Rect[359 610 373 618]/Border[0 0 0]/H/N>> endobj 16342 0 obj <>/P 7024 0 R/Type/Annot/A 36790 0 R/Subtype/Link/Rect[375 610 389 618]/Border[0 0 0]/H/N>> endobj 16343 0 obj <>/P 7024 0 R/Type/Annot/A 36763 0 R/Subtype/Link/Rect[391 610 403 618]/Border[0 0 0]/H/N>> endobj 16344 0 obj <>/P 7024 0 R/Type/Annot/A 36710 0 R/Subtype/Link/Rect[397 600 409 608]/Border[0 0 0]/H/N>> endobj 16345 0 obj <>/P 7024 0 R/Type/Annot/A 36687 0 R/Subtype/Link/Rect[401 590 413 598]/Border[0 0 0]/H/N>> endobj 16346 0 obj <>/P 7024 0 R/Type/Annot/A 35890 0 R/Subtype/Link/Rect[410 580 426 589]/Border[0 0 0]/H/N>> endobj 16347 0 obj <>/P 7024 0 R/Type/Annot/A 35855 0 R/Subtype/Link/Rect[427 580 441 588]/Border[0 0 0]/H/N>> endobj 16348 0 obj <>/P 7024 0 R/Type/Annot/A 38151 0 R/Subtype/Link/Rect[443 580 457 588]/Border[0 0 0]/H/N>> endobj 16349 0 obj <>/P 7024 0 R/Type/Annot/A 35047 0 R/Subtype/Link/Rect[459 580 471 588]/Border[0 0 0]/H/N>> endobj 16350 0 obj <>/P 7024 0 R/Type/Annot/A 34258 0 R/Subtype/Link/Rect[397 570 409 578]/Border[0 0 0]/H/N>> endobj 16351 0 obj <>/P 7024 0 R/Type/Annot/A 34226 0 R/Subtype/Link/Rect[410 560 426 569]/Border[0 0 0]/H/N>> endobj 16352 0 obj <>/P 7024 0 R/Type/Annot/A 34187 0 R/Subtype/Link/Rect[427 560 441 568]/Border[0 0 0]/H/N>> endobj 16353 0 obj <>/P 7024 0 R/Type/Annot/A 33628 0 R/Subtype/Link/Rect[443 560 455 568]/Border[0 0 0]/H/N>> endobj 16354 0 obj <>/P 7024 0 R/Type/Annot/A 33600 0 R/Subtype/Link/Rect[397 550 409 558]/Border[0 0 0]/H/N>> endobj 16355 0 obj <>/P 7024 0 R/Type/Annot/A 33063 0 R/Subtype/Link/Rect[405 540 421 549]/Border[0 0 0]/H/N>> endobj 16356 0 obj <>/P 7024 0 R/Type/Annot/A 33038 0 R/Subtype/Link/Rect[422 540 436 548]/Border[0 0 0]/H/N>> endobj 16357 0 obj <>/P 7024 0 R/Type/Annot/A 32544 0 R/Subtype/Link/Rect[438 540 452 548]/Border[0 0 0]/H/N>> endobj 16358 0 obj <>/P 7024 0 R/Type/Annot/A 32517 0 R/Subtype/Link/Rect[454 540 468 548]/Border[0 0 0]/H/N>> endobj 16359 0 obj <>/P 7024 0 R/Type/Annot/A 31826 0 R/Subtype/Link/Rect[470 540 484 548]/Border[0 0 0]/H/N>> endobj 16360 0 obj <>/P 7024 0 R/Type/Annot/A 31791 0 R/Subtype/Link/Rect[486 540 500 548]/Border[0 0 0]/H/N>> endobj 16361 0 obj <>/P 7024 0 R/Type/Annot/A 31095 0 R/Subtype/Link/Rect[502 540 514 548]/Border[0 0 0]/H/N>> endobj 16362 0 obj <>/P 7024 0 R/Type/Annot/A 31039 0 R/Subtype/Link/Rect[397 530 409 538]/Border[0 0 0]/H/N>> endobj 16363 0 obj <>/P 7024 0 R/Type/Annot/A 30989 0 R/Subtype/Link/Rect[406 520 418 528]/Border[0 0 0]/H/N>> endobj 16364 0 obj <>/P 7024 0 R/Type/Annot/A 30274 0 R/Subtype/Link/Rect[414 510 428 518]/Border[0 0 0]/H/N>> endobj 16365 0 obj <>/P 7024 0 R/Type/Annot/A 30241 0 R/Subtype/Link/Rect[430 510 444 518]/Border[0 0 0]/H/N>> endobj 16366 0 obj <>/P 7024 0 R/Type/Annot/A 30204 0 R/Subtype/Link/Rect[446 510 458 518]/Border[0 0 0]/H/N>> endobj 16367 0 obj <>/P 7024 0 R/Type/Annot/A 30150 0 R/Subtype/Link/Rect[397 500 409 508]/Border[0 0 0]/H/N>> endobj 16368 0 obj <>/P 7024 0 R/Type/Annot/A 30108 0 R/Subtype/Link/Rect[400 490 417 499]/Border[0 0 0]/H/N>> endobj 16369 0 obj <>/P 7024 0 R/Type/Annot/A 30066 0 R/Subtype/Link/Rect[417 490 431 498]/Border[0 0 0]/H/N>> endobj 16370 0 obj <>/P 7024 0 R/Type/Annot/A 29318 0 R/Subtype/Link/Rect[433 490 447 498]/Border[0 0 0]/H/N>> endobj 16371 0 obj <>/P 7024 0 R/Type/Annot/A 29280 0 R/Subtype/Link/Rect[449 490 463 498]/Border[0 0 0]/H/N>> endobj 16372 0 obj <>/P 7024 0 R/Type/Annot/A 29240 0 R/Subtype/Link/Rect[465 490 479 498]/Border[0 0 0]/H/N>> endobj 16373 0 obj <>/P 7024 0 R/Type/Annot/A 29201 0 R/Subtype/Link/Rect[481 490 493 498]/Border[0 0 0]/H/N>> endobj 16374 0 obj <>/P 7024 0 R/Type/Annot/A 29153 0 R/Subtype/Link/Rect[410 480 424 488]/Border[0 0 0]/H/N>> endobj 16375 0 obj <>/P 7024 0 R/Type/Annot/A 29125 0 R/Subtype/Link/Rect[426 480 440 488]/Border[0 0 0]/H/N>> endobj 16376 0 obj <>/P 7024 0 R/Type/Annot/A 29079 0 R/Subtype/Link/Rect[442 480 454 488]/Border[0 0 0]/H/N>> endobj 16377 0 obj <>/P 7024 0 R/Type/Annot/A 28559 0 R/Subtype/Link/Rect[410 470 426 479]/Border[0 0 0]/H/N>> endobj 16378 0 obj <>/P 7024 0 R/Type/Annot/A 28516 0 R/Subtype/Link/Rect[427 470 441 478]/Border[0 0 0]/H/N>> endobj 16379 0 obj <>/P 7024 0 R/Type/Annot/A 28498 0 R/Subtype/Link/Rect[443 470 455 478]/Border[0 0 0]/H/N>> endobj 16380 0 obj <>/P 7024 0 R/Type/Annot/A 28450 0 R/Subtype/Link/Rect[397 460 409 468]/Border[0 0 0]/H/N>> endobj 16381 0 obj <>/P 7024 0 R/Type/Annot/A 28410 0 R/Subtype/Link/Rect[405 450 419 458]/Border[0 0 0]/H/N>> endobj 16382 0 obj <>/P 7024 0 R/Type/Annot/A 28364 0 R/Subtype/Link/Rect[421 450 435 458]/Border[0 0 0]/H/N>> endobj 16383 0 obj <>/P 7024 0 R/Type/Annot/A 27631 0 R/Subtype/Link/Rect[437 450 451 458]/Border[0 0 0]/H/N>> endobj 16384 0 obj <>/P 7024 0 R/Type/Annot/A 27595 0 R/Subtype/Link/Rect[453 450 465 458]/Border[0 0 0]/H/N>> endobj 16385 0 obj <>/P 7024 0 R/Type/Annot/A 38394 0 R/Subtype/Link/Rect[397 440 409 448]/Border[0 0 0]/H/N>> endobj 16386 0 obj <>/P 7024 0 R/Type/Annot/A 26974 0 R/Subtype/Link/Rect[400 430 412 438]/Border[0 0 0]/H/N>> endobj 16387 0 obj <>/P 7024 0 R/Type/Annot/A 26930 0 R/Subtype/Link/Rect[395 420 409 428]/Border[0 0 0]/H/N>> endobj 16388 0 obj <>/P 7024 0 R/Type/Annot/A 26507 0 R/Subtype/Link/Rect[411 420 425 428]/Border[0 0 0]/H/N>> endobj 16389 0 obj <>/P 7024 0 R/Type/Annot/A 37721 0 R/Subtype/Link/Rect[427 420 441 428]/Border[0 0 0]/H/N>> endobj 16390 0 obj <>/P 7024 0 R/Type/Annot/A 25944 0 R/Subtype/Link/Rect[443 420 457 428]/Border[0 0 0]/H/N>> endobj 16391 0 obj <>/P 7024 0 R/Type/Annot/A 25901 0 R/Subtype/Link/Rect[459 420 473 428]/Border[0 0 0]/H/N>> endobj 16392 0 obj <>/P 7024 0 R/Type/Annot/A 25867 0 R/Subtype/Link/Rect[475 420 489 428]/Border[0 0 0]/H/N>> endobj 16393 0 obj <>/P 7024 0 R/Type/Annot/A 25835 0 R/Subtype/Link/Rect[359 410 375 419]/Border[0 0 0]/H/N>> endobj 16394 0 obj <>/P 7024 0 R/Type/Annot/A 35882 0 R/Subtype/Link/Rect[376 410 390 418]/Border[0 0 0]/H/N>> endobj 16395 0 obj <>/P 7024 0 R/Type/Annot/A 24977 0 R/Subtype/Link/Rect[392 410 409 419]/Border[0 0 0]/H/N>> endobj 16396 0 obj <>/P 7024 0 R/Type/Annot/A 35068 0 R/Subtype/Link/Rect[409 410 423 418]/Border[0 0 0]/H/N>> endobj 16397 0 obj <>/P 7024 0 R/Type/Annot/A 24293 0 R/Subtype/Link/Rect[425 410 439 418]/Border[0 0 0]/H/N>> endobj 16398 0 obj <>/P 7024 0 R/Type/Annot/A 24251 0 R/Subtype/Link/Rect[441 410 455 418]/Border[0 0 0]/H/N>> endobj 16399 0 obj <>/P 7024 0 R/Type/Annot/A 23440 0 R/Subtype/Link/Rect[457 410 469 418]/Border[0 0 0]/H/N>> endobj 16400 0 obj <>/P 7024 0 R/Type/Annot/A 33659 0 R/Subtype/Link/Rect[397 400 409 408]/Border[0 0 0]/H/N>> endobj 16401 0 obj <>/P 7024 0 R/Type/Annot/A 22660 0 R/Subtype/Link/Rect[404 390 418 398]/Border[0 0 0]/H/N>> endobj 16402 0 obj <>/P 7024 0 R/Type/Annot/A 22623 0 R/Subtype/Link/Rect[420 390 434 398]/Border[0 0 0]/H/N>> endobj 16403 0 obj <>/P 7024 0 R/Type/Annot/A 22060 0 R/Subtype/Link/Rect[436 390 450 398]/Border[0 0 0]/H/N>> endobj 16404 0 obj <>/P 7024 0 R/Type/Annot/A 22005 0 R/Subtype/Link/Rect[452 390 466 398]/Border[0 0 0]/H/N>> endobj 16405 0 obj <>/P 7024 0 R/Type/Annot/A 16802 0 R/Subtype/Link/Rect[468 390 482 398]/Border[0 0 0]/H/N>> endobj 16406 0 obj <>/P 7024 0 R/Type/Annot/A 21412 0 R/Subtype/Link/Rect[484 390 498 398]/Border[0 0 0]/H/N>> endobj 16407 0 obj <>/P 7024 0 R/Type/Annot/A 21349 0 R/Subtype/Link/Rect[500 390 514 398]/Border[0 0 0]/H/N>> endobj 16408 0 obj <>/P 7024 0 R/Type/Annot/A 21006 0 R/Subtype/Link/Rect[359 380 373 388]/Border[0 0 0]/H/N>> endobj 16409 0 obj <>/P 7024 0 R/Type/Annot/A 20543 0 R/Subtype/Link/Rect[375 380 391 389]/Border[0 0 0]/H/N>> endobj 16410 0 obj <>/P 7024 0 R/Type/Annot/A 20126 0 R/Subtype/Link/Rect[392 380 406 388]/Border[0 0 0]/H/N>> endobj 16411 0 obj <>/P 7024 0 R/Type/Annot/A 30284 0 R/Subtype/Link/Rect[408 380 422 388]/Border[0 0 0]/H/N>> endobj 16412 0 obj <>/P 7024 0 R/Type/Annot/A 19678 0 R/Subtype/Link/Rect[424 380 438 388]/Border[0 0 0]/H/N>> endobj 16413 0 obj <>/P 7024 0 R/Type/Annot/A 19649 0 R/Subtype/Link/Rect[440 380 454 388]/Border[0 0 0]/H/N>> endobj 16414 0 obj <>/P 7024 0 R/Type/Annot/A 37619 0 R/Subtype/Link/Rect[456 380 468 388]/Border[0 0 0]/H/N>> endobj 16415 0 obj <>/P 7024 0 R/Type/Annot/A 19068 0 R/Subtype/Link/Rect[408 370 416 378]/Border[0 0 0]/H/N>> endobj 16416 0 obj <>/P 7024 0 R/Type/Annot/A 19044 0 R/Subtype/Link/Rect[428 360 436 368]/Border[0 0 0]/H/N>> endobj 16417 0 obj <>/P 7024 0 R/Type/Annot/A 18976 0 R/Subtype/Link/Rect[383 350 397 358]/Border[0 0 0]/H/N>> endobj 16418 0 obj <>/P 7024 0 R/Type/Annot/A 18954 0 R/Subtype/Link/Rect[399 350 411 358]/Border[0 0 0]/H/N>> endobj 16419 0 obj <>/P 7024 0 R/Type/Annot/A 37611 0 R/Subtype/Link/Rect[396 340 410 348]/Border[0 0 0]/H/N>> endobj 16420 0 obj <>/P 7024 0 R/Type/Annot/A 18881 0 R/Subtype/Link/Rect[412 340 424 348]/Border[0 0 0]/H/N>> endobj 16421 0 obj <>/P 7024 0 R/Type/Annot/A 18842 0 R/Subtype/Link/Rect[378 330 392 339]/Border[0 0 0]/H/N>> endobj 16422 0 obj <>/P 7024 0 R/Type/Annot/A 18824 0 R/Subtype/Link/Rect[394 330 406 339]/Border[0 0 0]/H/N>> endobj 16423 0 obj <>/P 7024 0 R/Type/Annot/A 18777 0 R/Subtype/Link/Rect[401 320 415 329]/Border[0 0 0]/H/N>> endobj 16424 0 obj <>/P 7024 0 R/Type/Annot/A 18748 0 R/Subtype/Link/Rect[417 320 431 329]/Border[0 0 0]/H/N>> endobj 16425 0 obj <>/P 7024 0 R/Type/Annot/A 18703 0 R/Subtype/Link/Rect[433 320 447 329]/Border[0 0 0]/H/N>> endobj 16426 0 obj <>/P 7024 0 R/Type/Annot/A 18679 0 R/Subtype/Link/Rect[449 320 461 329]/Border[0 0 0]/H/N>> endobj 16427 0 obj <>/P 7024 0 R/Type/Annot/A 18648 0 R/Subtype/Link/Rect[459 310 471 319]/Border[0 0 0]/H/N>> endobj 16428 0 obj <>/P 7024 0 R/Type/Annot/A 18634 0 R/Subtype/Link/Rect[414 300 426 309]/Border[0 0 0]/H/N>> endobj 16429 0 obj <>/P 7024 0 R/Type/Annot/A 18604 0 R/Subtype/Link/Rect[397 290 409 299]/Border[0 0 0]/H/N>> endobj 16430 0 obj <>/P 7024 0 R/Type/Annot/A 18572 0 R/Subtype/Link/Rect[424 280 436 289]/Border[0 0 0]/H/N>> endobj 16431 0 obj <>/P 7024 0 R/Type/Annot/A 18544 0 R/Subtype/Link/Rect[410 270 422 279]/Border[0 0 0]/H/N>> endobj 16432 0 obj <>/P 7024 0 R/Type/Annot/A 18490 0 R/Subtype/Link/Rect[448 260 460 269]/Border[0 0 0]/H/N>> endobj 16433 0 obj <>/P 7024 0 R/Type/Annot/A 18468 0 R/Subtype/Link/Rect[434 250 446 259]/Border[0 0 0]/H/N>> endobj 16434 0 obj <>/P 7024 0 R/Type/Annot/A 18430 0 R/Subtype/Link/Rect[418 240 426 249]/Border[0 0 0]/H/N>> endobj 16435 0 obj <>/P 7024 0 R/Type/Annot/A 18407 0 R/Subtype/Link/Rect[410 230 422 239]/Border[0 0 0]/H/N>> endobj 16436 0 obj <>/P 7024 0 R/Type/Annot/A 18334 0 R/Subtype/Link/Rect[415 220 427 229]/Border[0 0 0]/H/N>> endobj 16437 0 obj <>/P 7024 0 R/Type/Annot/A 37569 0 R/Subtype/Link/Rect[429 210 441 219]/Border[0 0 0]/H/N>> endobj 16438 0 obj <>/P 7024 0 R/Type/Annot/A 36683 0 R/Subtype/Link/Rect[405 200 421 209]/Border[0 0 0]/H/N>> endobj 16439 0 obj <>/P 7024 0 R/Type/Annot/A 18200 0 R/Subtype/Link/Rect[422 200 436 209]/Border[0 0 0]/H/N>> endobj 16440 0 obj <>/P 7024 0 R/Type/Annot/A 18155 0 R/Subtype/Link/Rect[438 200 450 209]/Border[0 0 0]/H/N>> endobj 16441 0 obj <>/P 7024 0 R/Type/Annot/A 18050 0 R/Subtype/Link/Rect[397 190 409 199]/Border[0 0 0]/H/N>> endobj 16442 0 obj <>/P 7024 0 R/Type/Annot/A 18030 0 R/Subtype/Link/Rect[424 180 436 189]/Border[0 0 0]/H/N>> endobj 16443 0 obj <>/P 7024 0 R/Type/Annot/A 18002 0 R/Subtype/Link/Rect[439 170 450 179]/Border[0 0 0]/H/N>> endobj 16444 0 obj <>/P 7024 0 R/Type/Annot/A 17989 0 R/Subtype/Link/Rect[434 160 445 169]/Border[0 0 0]/H/N>> endobj 16445 0 obj <>/P 7024 0 R/Type/Annot/A 17957 0 R/Subtype/Link/Rect[410 150 421 159]/Border[0 0 0]/H/N>> endobj 16446 0 obj <>/P 7024 0 R/Type/Annot/A 17941 0 R/Subtype/Link/Rect[155 668 170 677]/Border[0 0 0]/H/N>> endobj 16447 0 obj <>/P 7024 0 R/Type/Annot/A 17914 0 R/Subtype/Link/Rect[172 668 187 677]/Border[0 0 0]/H/N>> endobj 16448 0 obj <>/P 7024 0 R/Type/Annot/A 22624 0 R/Subtype/Link/Rect[191 668 211 677]/Border[0 0 0]/H/N>> endobj 16449 0 obj <>/P 7024 0 R/Type/Annot/A 22061 0 R/Subtype/Link/Rect[172 448 190 457]/Border[0 0 0]/H/N>> endobj 16450 0 obj <>/P 7024 0 R/Type/Annot/A 17787 0 R/Subtype/Link/Rect[371 388 381 397]/Border[0 0 0]/H/N>> endobj 16451 0 obj <>/P 7024 0 R/Type/Annot/A 17749 0 R/Subtype/Link/Rect[383 388 403 397]/Border[0 0 0]/H/N>> endobj 16452 0 obj <>/P 7024 0 R/Type/Annot/A 21410 0 R/Subtype/Link/Rect[186 298 203 307]/Border[0 0 0]/H/N>> endobj 16453 0 obj <>/P 7024 0 R/Type/Annot/A 17591 0 R/Subtype/Link/Rect[194 288 213 297]/Border[0 0 0]/H/N>> endobj 16454 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16455 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16456 0 obj <> stream q /X1 Do Q q endstream endobj 16457 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16458 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16459 0 obj <> stream HWێ8}Wa@̦H l2; 0koC0mY{~/eb[n&,e)dHزV?_^Lɿ T ɓ`^ZS`='Fڼ*嗎 ET'js]~0_7,؆y !Hxf{4ĘŤ倰͢ PA࢐͢BK% a/ aaaa a aC}H!>tGa#}L1>va}BO)>uا{G!Zl+/;yHr9h:Lg`b%\L~ߊ#)X(`=5W#\90|fWve-e///dA/Ma/.ɫ kui6_ov tK!Lc'"x8;Jb.b ^jM=UHLm ._Tn&ʉ{O:߾_JE{󗒡 lY讅I"΀phSkrp(:s8.wE-Y:ץV23.\z:5aְ;v̺Zs9-)s^{ԐP/?zx[|(韰J=X)-擾9*6Hlq<&3_MBC DB,vegt'Mg~3u3J㵏JvqOFԶxt;[=Y`χ11Ij' d+ yN3zCҔH.3άNul#3\h%`H$c]uw4^&ߔlY߲C{F7ts[-#{L< ekN:-7KCG7ziʘye׊kۓߏm&ou[կvW~\x@CtԂ:=r—b2ĝq ]ĄN?f͜):7q[8砛|KapAv'Z!ve:xzxa5vОK,:[yqA22+<2Ufyi6k=L8Û{#NHUD ڽ LUvZC}>e#P`ۂz6U_M]}?eM?lþ_ӶwV~Ўq30}q |ʏ<.R·i9ﺉC C'a]b$쒒Q4sY 33Ixp~/{fx cIP1G^h G*Np |IpXx-ἂqo`qKe Fzc 2Om;Zk'($ȚYXabݲmU ZhW=o0+4!PIIk :(!:[[NmA}ߑOx<;<-'c0n.!ɗL8 bas04:G1S|` p(v5N+"R+Qh(ԢȊ2cuF@TסB0nATBEbAf01$"8¶Yq@1,o1M&e,ޘr" oU/`c據Y-<ڎX:w&3RlW۹Wswyx4L fJ. BxQKؓ~s KJV9(" HSNY^Iٞ ~{)B&G &,Qxa^A1ޛv{j͟]{/endstream endobj 16460 0 obj <> stream q /X1 Do Q q endstream endobj 16461 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16462 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16463 0 obj <> stream HW]ۺ}ׯ`H$AAR`زW%9wFdoq+z y83;k:߱~WU t*X$Ƀ?YDpVk~̺w>MQ]SlYS7n;MpqadIMt֛=L-a\OU7@$r|[ۼmm]Z|T"$ &7Aˣݖ {dʱ!J(;>y(A{A{I{I{I{EW{EW{M{M{M`{c}O>!'`xS}O =rB Z׆(kZ׆(kC޵PkCS TET+պ6@um"{j]jZ(B Q{OPkCS TEֵ!`Vum"{j][HB Q>{(B Q>{׆(kZ׆(ZIֵ!`Vum"TET+ պ6D=JB Pj]j%Z׆(ZIֵPkCS$TET+ պ2Pj]| Pj]| Q>{(B Q{OPkCS"TEֵ!`Vum"{Uj]պ6D=*B Q{OPkZ׆(ZEֵ!`Vume պ6D]պ6D]|&4( l W>Qo<˜űa2r~)_=ԏ\l`FX4P:Lcq2/q@a 2o0N뜟qюDjwwe nj;B~Qml-ap[:A&_o~iHL} l0;+jUg=MV`(_l;.axʆ ndq:AH~.\ >s;w}ʫa=)cޭ_8?m 8+mމs-BqOّpzvziH*:Ud]Yh2U3Ï?{҄LN'ǹ\]q<s[TalsuY6/CjUôX1PMGKQyڬ}a nWsꚬ^؟~l.ٱծ-fGns8q;8x^uï`3KUVH>ya G^z.GB`G(#:z0oW?6ũ2 B=-ֵeAAƖ?n6Uoml lmSRpHohY&OF 2pn*<U{ޢ${a8 uS톙GWv6SlFDQ\m5ݭz @{&ycSCs g6_6p;Ɓ0Gp6DȮo' 3oa>ͺihID#/X%jιG 9$f㤸 F ^wOY>Jc뒸| OA f%t+J:[%"P7H&|w!k7g peT7}+س/z1x$Y+46mX=זKdRaqcox0~e {dTk2,,Zcp@s.q9_q2!2o6tWJmO.juq %̓nTPrR@@ayk&RsT +N2GgΓM0#i">s Z¾``7o};XG$?qqhq2#TD9E.M'cG~$q:M24bx~m*ͬ:Xw A1滻c8N~3髅y }za01̠ώ7$H˾ua2w\\Z%Z}pqq^emA=}c^<@<@@SE"~{K2 jg-AQwGS9 OH0+m N|-Pu\@ pmSΥP>P^9[.4Ab52gvsuEgeUqKTQ*E=Ȑen6fU4&Ș| :7A1R1F$Z/Foњ˿e*CץHD{̪D&8^o[62 ^cgzr Y%cҿmX)ɘB%ݨSuֻSƷvoP w::,+C#A/: un}S5 @$2giW^';] P"u n7ojaE#}ID3 q #N+6bV '}S ˺+0JgZ!beR @-EUR!1s"؈D"a̝ r8yr'grSԁ0$w_?~vsʒ DjKϾ[&ا7릾;jm/Nyv%Zp3KoRAR>+ /{[7G#=/ ✸?h^D(di hdۭ&hD?f1tdyf5Ow)돟>>1[B1b%MN"*QvNW# %"ott.{*iL![۪yD>#$ 92;77ƩjpQ*c̰q1hb[jBkێsW}ha~ sxۘ%#Wd$ӑH1L̥#B6 Cw/Z}(2dfҒHO2" RyIfgr D)ity:dFq߽Ҭ^3H Uz-!H1QO_c mUЂ%Wu} [}rWJ[GŮc4LcAp@2<ȩ"%.JANԽxL&I^r@ׄB_׬`D|#S8ERw/^uPpt!A(q_c{:=K8@]HOD:O9P߀'G#_d a{¥m%.*>(ԞX 9aVNń,*TLL Vt1FaNTP_ܮ`]7;w_=[>$ ZJ$%2%3ϨȲw*i;l`̺D> endobj 16465 0 obj <> endobj 16466 0 obj <> endobj 16467 0 obj <> endobj 16468 0 obj <> endobj 16469 0 obj <> endobj 16470 0 obj <> stream q /X1 Do Q q endstream endobj 16471 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16472 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16473 0 obj <> stream HWmoL_a=|IW07{cs}}`>0` }G}du*Bk),bZK1dqCwO1` Vh-Ő%gBk),C Vh-ŀ%bܳZC R Y{Z+bܳZ[%Nh-ŐS XBk),b),C Nh-ŀ%bܳ:C R Y{Z'bܳ:Z!KpZR Y{Z'b {Kh-ŐS Y=ŀ%bܳzC R Y{Z/bܳzZ!KpZR Y{Z/bZK1d YkZ!KpZRldBk),bZK1dqCwUѧ;gerZo65iyalTy1-WY,U]nɣn9^AJ\/obۓ ,IiYݭo'Z;[QVu7MP톫EsIP`I.~ .w=\;>v9{gBnߴ]s~b\WQD0!9ߩ4-t /_KAg {DF8wgVg8'*#%d-+fnpv9y5]?=x]WeOW]_x`SCpiDZ$wkwnk€ zia^qPi{Vqzn6v7|=m(C 5q nͨ;u(oC3 lʁaoP^$њaGZ9˭FӰ?L;DU7M9}mY(rK7u38A.#Ҡ xNu!*#IaO˧Uxofanaߞ}a{<8F1Rݷ)˔ؕ$}?ۇ1n!^wcrKw$+:S4 E6f'y6P߽=ʹVn}L`G#mp?BEMc[Pkr1҂~(/7F⤔ Dx~cMTBi>^H2A_nLno@rY۹xM9q豣ahL/W_g@.kendstream endobj 16474 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16475 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16476 0 obj <> stream q /X1 Do Q q endstream endobj 16477 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16478 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16479 0 obj <> stream HWkoܶ_O2|sh"6 wRCԃMpx8W>ᇫ7cїIŠ2NsA3%HCۈۈu]V]]u|7<Wj>ūAh\Č3ǫ].V\O s޶es/^<~,}uy2: ͨUD!&O1[3}& O!.*n"1E)< "> }b,Dy>JϝG=G@؋@؋@؋DˀDˀ}O)> ا4`*`*`!쳀}> <`#}/>,CDvGT4*diTiT Q(}Zi>P-GTi>P-GT4 a#}BT4 a#}T>@!}T>Bj}.j}F}> > >@!}T+>Bj}>Bj}F! DPj}F! DOjZ(DOjZߧQ@QEQӨZߧQ!{ߧQ!{(DOj%ZߧQ@QZߧQ@Q(}Z Q(}Zi>PDTi>PDT4 aV"}(ET4*diTiTȾ EQȘ¿EVՊ}1W~GTTv]cWѶkW:۶luVmu(W?G@jODD#/V# N O|uU2T+=8l$}oBϠ Ruu<ꈳ$B'9LS;$oR% zi1ۛʦ鞐XǾ9wgM_ÙmøjӟLՉ$R:.92EEs`e r Áxy`}ꆝ1DIƴC"$ϥ6]Qd$ͩvO,GQ L {DuKX0Z vNR^Lɻ,}jm:= 8 uﻃ^̩ ˓l^κzu7 ~aкi!ҋgsաcݾy6Y*Ҫ z5_Enin1+z_奱 %ԙ'vCvʦk}u="y}ˣ_8㸯!ԺԔJx%/~\Y,Y2K]u4V^c>K)%R(ABl0#AncM>ۭ4th^[c Ǽڳ6]A?%wlh͑#r򌤌hnO q~njpm|[ 4@ u:LRհ7T+ӰU/ .`&l[XӯV+a H^Bfj.ysk\h(TQ$*y* aކcTan6ultf!ZzOXN? a.;U TH;GO /%H)9D^pH: ihV >_+kW"ONCܥ]Zaw` Qa5Cuovn]u֦~X "@t$a$48z8S>'ˈPө&/Ho{<K R21XknPߛ--5NCCHW0b6ƍ;qiL 9Ӷt: ; oH|-Y2sYHai }j׶ɃT2B:f,Z- g =ɿ{)˖y0|:,N7L:@{aۛ[݃5jszVߝ$aGbߞ~\BJiL04OIIƩxlڸ>(C| +7q83W]dB0CLWbXs' n䮛pQ$`|H)䪀{C>勯}EXb Ei6vҷk֭5^Ꜭ;L5ងyT } ן~;: bZnYz{8T)_<8M CW,8CDNG]B S.tEch]}J7fO.h eW5ț7enJm|)Ÿ_V**)4r rO}ܲ Ǎž\o[Wҋd +n[:l4/PdUP&F$r*MO7$ߞ!ŒIixnMFe?uAybtl}-*VH2Ko% ň@f(p%> l+,#⑇3wroZzz FN v_m_jJu#mv wSi=hDx氛)G*5{?AF 8aä|ލKf;Wt6l"hNlãiJDKijpsǗ 58*^ @xmh3OjxEi#:і`\d:q\{rHZQHPbۊV\S@cra06&aX}G%\R.3 Ô)2_/yŰ,cz×\':{,4ַ<ΥnȢ $O ,ѭTC}'黚aɩp Kt~:ia8[Wn}92+CpNݢg Dž/!a#k.$YhGNăDeͤVeRiCj4 S*T8[=Ҽ^yw%6DlD06# ?k^%ОAHq9Tcb}OޯSpt),6I*[I40FY00FG*rx wa|"!sv[Lf\&An1NI(밨: Y&Pgk W *2NnDA/24ѥ*UQOajJo>py~DŽ}>ŧ"tj6u+{zK | BQhķn0#lR֏tK//t=/xjuسy.s/[`nxn>V'IBm 61JT\ u{0_{{>5 JIP$Q74~VB|l+((Jنf/CĈ"9=<>y_A"RƶOb>s\~:lݳн4ƖvI!Ȳa]|kVNe8(HV"E>/P 879 0 R/Type/Annot/A 18483 0 R/Subtype/Link/Rect[93.6004028 235.229004 293.088013 254.908005]/Border[0 0 0]/H/N>> endobj 16481 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16482 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16483 0 obj <> stream q /X1 Do Q q endstream endobj 16484 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16485 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16486 0 obj <> stream HWko6_2|z,@ 6X,gd[H4~)tyA3!y/y:߼AHo4Q:0IEjq.>Rc56OMOM[f/NMtG-.ީ?PbwЉ("صQ|s[6Q io$.Oq}Wkq29x0C36}w]$ܷ0Ÿ#hE()ރ?/RDT,>ۨ71rʐS& Q YawR!`Ȳ jW*O1`iFkFF F F ԧ4P2@e@e@e@}ƨ> pf\K1`1k5Z!QV3R Yq-ŐŨ\R Xk),F}Z͸bbՌk)Fq-ŐR Yz!+TO1`1k Z!Q0R Yq-ŐŨ\kR Xk),F}Zøbb5k),ƵC>pa\K1d1Ƶkq-ŐR Yz!+TO1`1kSƵC>pmʸbb\K1d1צk),F}ڔq-ŀŸbbMR Y)Zq-ŐŨ\2kSƵk#˸b S Xk)P=Ő/,S!*ܷ]ti.RrQ$YV]};])W]jlNwb|۾/ GJtI-~$=49tc/YH'pvzڶ}}q3(=dO߿@\ş㛇`>_}/=Ͱ?BMO\)xNM܋D*:Bb6dQH9IaaNq@=M~ݍbiu gq|قe [,SxwD,X'ťahuaHB-TvGw{^oE0]ceBE>Z >d|OcSmjhLv\`plCX ޏ >.%RND.q XgLt)vtV&yaW_հ jϺics{N/H_FV?ygі搽PZ^n]7jxBL.yV?D6c.Yc<@WV& +vrJe %E!W{O=AږIaM]thK?ށ`T{ϓIB%x3o[H@iL.WcLa Fq4a #7^</u7H-tKVQd41]kMn~H(2ЗE}X='wqJrYt9pLf S\.y x]w$VG|mhƊ.RfrquxnWrxn`2i.mBW ^&ۥ}Jdp[NɯMn@m]wǿE״gˡ \a^yR(5"vM+1IpCw+[ Uxbaa?5uoKys?,u94+o|GEXGC}>̹4q=dbRKqILxs6Lƒ]:8襁96p_Wj,{HTC@g855}:'pqĒm &1e x2]/m)Ix` >ևLoӝ0#%c:vp {mh,nilщCe^%^%.bŅzvoia>AA3zIJ~#t1lp-~t4C WxtXx\i$č,o^XhAÅ0pYS>f%%4fɭTx\}2&5Tbu伋/t7~|e -U.K˶ջZjK4\.3w6]yKYP=>s?pJS $CZj[5ܾԦ@.j-K>.2hJ;/SfH),SЇSU&4qn?i )ˍ.Wp/`U}WK6ϯ#zX qwrHsJBfGv٘(pUr=::]s]B t͈h)Z:w" P-6nD!^"N.ͅYMLzHKK&ŶI@VG/M=msEido- 7Nۘ(d!w"Tbb;$^nFDbdDE?LBbiնYɢ̡"=z&4/7fBY Hʐ4b&VDp9 LWdپw%{pcn1pq\Q9*wl ,u1̅ 30AjVsA Din: "ߓD& */-|DؑJݕs˶Z"%e?g͉NQE_^>ʦ=n__$T-JB#{^K1d7oSy$Aw#p Q] }_O 0r:endstream endobj 16487 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16488 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16489 0 obj <> endobj 16490 0 obj <> endobj 16491 0 obj <> stream q /X1 Do Q q endstream endobj 16492 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16493 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16494 0 obj <> stream HW]oF}篘}Yȁ3|hRHvv`#QxEKyբEш>:sxf朱e۩ϯ~~G/_:wb6Q֫P8YgN*MT}IUrk)[4m^N~`՗Cj\'/IUT4UjMnfEW7;uԆtfv`L,y#gf_._Wh}-wˁIE:5ޜTP1ݮw逐f> z"c\laUJ^T 2_wc*.6RZ6$('rN$:F(,c8` z72Vpo{'w̽; s{}`>0ApLp1>cs}9s_ }G> YgPZm+b),CwO1dqZ!KpZkR Y{Z+bZK1d YkZ!KpZkR XBk),=kZK1d YkZKh-Ő%gBk),=kZKmR Y=ŀ%b),bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%guBk),=kZK1` Nh-Ő%guBk)MZ!R Y=ŐS XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` ^h-Ő%gBk),C ^h-ŶIZK1dqZ!c^ߣ6y5Os8UYjd+҃Ncb]ozy7ծ 3uDն~Z3VUݺ>R=^ࢶ ڪkw F:߅q!\,]!:bٛ|0t1/`|xj}Vˋwtk yv a? <Ku(FAl LB-â4HZ,2y;N^~ CB3?:oal/[gC0$)/N.枝\K-50Zu>Ns:bu[考LQ#p}>rof?luseW2gp;>-wjP'):DjV50E(tQgli} ɜNYՇ,ޔ8Fr|mP-UnjTw*Y=L; &&]8WSۼ0%5iwUNMA!¤Yl;1C M0eՕ0Эnx]կ~?[cuȊBr!eKv3[i|G^@CwIΩ*z[C\zg3njgA1Շq6jy9.zu벏uuuj[m?oGʾYTqlVXכ {{ _(pt U[͑w irtd5#xCeϮɭQdľwة< z9.Nn-v?t2Us\4?$<z|Ϥ ȰJeۖg:8r}<6"gQOs_}(޶azϯ1϶C06ij [GvDGNѓiAG9g!yH|t,רF\f)(mi=UbU[:ekG)ɪ9@\v f0IH`>}d'JQ:ܜD)L@{[!f#dNXi+.wRQiXn;g[|EC_5ba2k\vM;Ig3ɼ]we0gGVDv%yX  5"WEשLmm$&ab<?b;gIwW$h]8i}>LV&+8mM< ﭻӐ#StXaß}MI1ЙD\ӊ,(Ģ#VAUW i_ץVB# [ bM؞ͱ& ς>qMb>P Zŕ:wlϙQn%&0u'A]{A_wBڿ?_D(S$mGn{nۚq,Y G3KL=~{p(Dũ81N>6J Ba4=,}]/`^2:endstream endobj 16495 0 obj <> endobj 16496 0 obj <> endobj 16497 0 obj <> stream q /X1 Do Q q endstream endobj 16498 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16499 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16500 0 obj <> stream HWs63f:i^,כadQO]InoEXIdILJ} }޲o5o_>_e;JUl]V#G^Ta=_|c7WD~TLQ"`MV &QJ6v.MfKrϘԘ mzb;;WV~nJR/^7H}ΖPɤ`?ïݱQЎ+ Q(h< 6ń:1DQI Q@ܥɧ1@)+kkk[[[;;ؗ2c_ˌ}I/3`3`3`2`yVMcˑ"\Oc"\Oc٧1@Mc"gUkk4(µi Q̵pmC>s"\E6!`VMc"gUkצ1D3*µi Q̵pm[44}4}CT>pmC>s&\E\ צ1@Mc"gՄkk54(µi Q̵pmC>s&\E6!`VMc"gՄkrdצ1Dצ1Dri Pkk 4(}ZC6pmC>s!\E\kצ1@Mc"g5kk 4(µi Q̵pmC>s!\Ɩ#K6!*gE6!*g<`?rj2LlX0|s.rkvv^?ֳy8uc%T N)׫ǧ-_u5$KKbs6 ȏzGGHclw_.nUoveSFpcf뗁w JaI*lTj}+aZM/jnQߴz/~?v_(0o/fZqQ/նV cNJV1Z6۫έͲretQKٕGOyZ./& ZW+Og=;N s#pŮ &Z2x@ MCwq6KzvݣV'O_1\pP.C[ýFgLEۣځy|8-t0_ׯƯ(WOT͆0J#v ئ Cix* i26O6qQwDiD=fy?S^]Qg{ԀDxWMldpcXU FpZY%,ԗ=C@'JR 1C\耂d p+ҝ]WGzgF)іp{0ZcY6WyNʧjc5C"D(}wSTs{{f,{ grl_+ls%Dy^)B%vqL' G} *!'‘K($FVc%]:H@/o3_UhvrADH =tb8Ɍu|g^i8EQM2g'8/[T7NN9U8}{#n1{y8- tE O*V_=L\+qe~ͫGPxu,oѥnnؔ{JJj5nL=.E _t'( Btm9P'tۙ3PX7|=iogin}BN0vpD1Q(,rÔt&S`?‰wҨA 5 Ҟ'̓<ծ}s?ZN.u~\QĪłWONJ )޶m =B DJ )R kAZ-yzio)۱HBU) _j&ːnP#=Tڼ -G,wF-"a nW^&J;Y[.ىSL A2%6Iwko" "bM>yŖCKJ c2FmxYe41jjQ%,۶*m rZ;:U}]Th(T,-b6af.I7U-A+PjtZ| M}o ڱsMzB+dW 7h2KyA&ܱ1J 2.呻 0a]H K|7tO!qn;^G?^7Edźk?1%-M%=ՋúkVY_2(IMjƪN'z HmLۍ0ţ+J AgT*1 V`ngҵo3X}]FθM#X *ܝB#̕%i.,3,@[7 Nsyۺe*õs-kUU;~ȧ(ѴǦ}ߪo<4(c݄"Xјm)zЫUՕ_\onxɩtN8uk%;ޏ'*B~E6Y6X QkVSB耲:/2 YbNofFħa2 2;8Xo"f.qxAL_J_6┢q4n+5U^{ew¶bNKm[c>[1 [McExIo=6H +t D$0BZwc_EyyJL2PO7ܾ[\{endstream endobj 16501 0 obj <>/P 1335 0 R/Type/Annot/A 37456 0 R/Subtype/Link/Rect[93.6001968 663.229004 276.803986 682.908997]/Border[0 0 0]/H/N>> endobj 16502 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16503 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16504 0 obj <> endobj 16505 0 obj <> endobj 16506 0 obj <> endobj 16507 0 obj <> stream q /X1 Do Q q endstream endobj 16508 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16509 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16510 0 obj <> stream HWێ7}9_A l "ah5J=v_UlOAkX}X<<)\:׿~_O# 04wyU6bFF-kmwn}}O}۝kv6?WܼZ6KI1ɖ& E!'"YDLaRY.܇gvRY]wMn=]}\Q"i=)Z,~nXe#"0ʤ`>؇ݰ&jǕ<"ノ~5hKL1H+PCT=\5!52(EW{EW{M{M{M{C7{C7{K{K{K{Gw{Gw{O{O{O@@HH<+ Ӗ}ז1Dז1Dje Pkk2(}ZEpmCr"\[E\ז1@-c"WUkk2(µe QʵpmCr"\[&\[U/c"\[U/cٗ1@-c"WՄkk52(µe QʵpmCr&\[E!`_V-c"WՄkז1D+jµe Qʵpm7pmCT;pmCT;!f_E!`_-c"W5kז1D+µe Qʵpm2(}ZC!`_-c"\[E\kז1D+µelXµe Q52(µe Q52(eh$WYk Zy0M\Wz)?i&rӄVrpssar|XܟdX̺տw-k鏫w͛e#L5>TDBN8Ŭw̫( >OLJ5wA1e s\pί@pCqR0͍B aD)enDzD`,rwiXgp!7@V)n2O縑N >~گn3TK5M(k ؓL2==>cM42.Bqع[ug67h+[03{.bq͹pՅ9_^7-{ %7+dV(ռb| Y#c!4n ]RädZb=$\x+=lzTaTհb_>ݬU 0Ba[r JÂƧrM+@QD! O_pQJ*.G"L*b#j>E#PÈ5𚢊PST͋5HFzTJk]ʈX%* e-Pʉ5{K^-Pd\>frCdT~OQ3T~PY *k?G}~OQf3T~Lլ=J92~D OQ#j~SԠGԠ KSԠj#j~QԣG,, x*xzs$WOJf-UYaRo36wʝ|74L$H zqtxJGp20ZtAA\S@9S$N:\`n=J\9}s*T)/&4 8҅O9_#P\#ݞToTY V0#gas%9}.Ň\(4R\?r3 iQ%HYh`n;*m""I7>}*χT*@E氧@dD0\@%D0\=UDdQKkh\})б_3D'7cQ84>)~:3kt|bna[35fH.ߞ9av=S6"!lo&=@gNdpfdzE?2yxSs|jɇaiqlJp+:AiʩS.B㤺ée*ޅk*>]ǎ- c. :<vP}F=eZE?7<\mx_PA3zB_/)=zA rnǁ^p Q`,8Sk?NW2,\v̤;jʔ+89!լۋ Z0p,!i;2Db,gA_k >=tLj3u<-MkWi8n5+$o{*ĸ$ܾ`_[vhzwV hÜoC@eZNi퉭=8m{k7=mo)C;1I,Ditqm pzP C }%:",I#^%;3ʦSt~[xG06 :~qЌp|<'@?9lզT(`XO7~ e˛e>.h \ hC %allY`B.ﶬ.`$BNi._I{w>@լ?XIg7E뜃8Medc+PŮNv>b(􂥋4,$ P  m]$97)9|RigH;ȰR0gtPU9MjxEp'(v5t:g,L龔9ۤ&@N4܎!&3씰PW#$/\πfa-\&Hxƭ5xr:)Q.s',dNTPŚOmm(`:X# xd"x@:PYQ\ehti/*~SRK잋LDPIU 5lܫcOUR$}i. e{5=ԻR̯U= Syq#/=웍\;^ 8kA"(bOմ"b $͚OݴȊ< t&i=gs{bf`J#[qn6\@iK*}rDLPy)SxS& 9{ޕ% N.Vv Ə]Opph"!r.#@" k˩p3>Hr#l}g0I cBLAxxQ}޲QUrdhDU8ZIz Z/&5"7wJk.~#D\0vCݾuGnd6'4;ߐK-Mq0. [fG#AtE,zi(ΎlvEW:+@`KnφW0t?v] য_ Fͬp,/.L%d|+ FMnj] U) yVSJ+򾡐c'H$!6ׇl(,|1>͍{kG7w3mswnvݳ۵kkOnx8ˈ@(C$sUa o"+3<^q> }쏾]=@{bX#Yx.AۗM^|μD: Vʾ-z$4aCS>]gr4RoH46 KQ&R3+]"'4??7}I\xik9O>^0()[>sR f7ȵPݠ` ,ѯ bƋA30UǮ}uf]$eYf;#)KsF|u'7ͺwm@vFf9;]z5VmEŝl콎,\X+q_Wj*z_,WZd`*+Plӛ2 J&=b-&։|<{^r#b*B+ qn(ΤΓJw+Dؐn02w_ 0O{@endstream endobj 16511 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16512 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16513 0 obj <> stream q /X1 Do Q q endstream endobj 16514 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16515 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16516 0 obj <> stream HWmoF_"6}#m MzEZ׋Y+RI}7%)rv+3gZ;7߼{oDD\0W(se`G(aE7Msheece2V}n6dm#$0{,٦VvەMB'+lqV<0۶-vdO=IjyN81ƌ+MļmS$c0cv,22=d !b D ls8l! J(̝<JE^E^e^e^e^U^U^u^u^u>%ا`3}Y>#g`s}7{7@-U Tm6@6 cC Pj͡jZls(}ZAE`V6"j Pj͡jZls(}ZAE`V6"j$Zls=P-9T*dm"TmET+ bCJB(BP@P-9>P$Tm"TmET+ bCJB(BP@P-9>P$TmUbC Pj͡BP!{lZls(}ZE`V6@6"Uj͡jZlZls(}ZE`V6@6"Uj͡jZl"M*dm"Tm6 ٛX͖*al'8L:;>|.wv#kmU[pmaж޲?Nd CY/_vjmB42r;]GβۗΉ^9dؽ;ݻHK/"<UztLvJ Bn;)w 9z_%$Y$ XoRtdᥳW٨\9yؔ/*E)cRfŞ"AXߡG'Qv>\ ^mn]P/[jȀE)Jm/[l}tSܴ`.Gz_w/Ω=j1W$0\* îk/*\lz&&cٙ @\H!smW ״2e۝_\_W #ms<` #x g fW,|hA4PZzXó/~pf3YПy#Nase l P'`r{ʂ>Mz9.4JV'7AuwU+ykA/GQ{y85D>{+(GZe}5S{BSa3mnw(XChn)bgP5! _];CR}pC9;[j94{nRKR}ys[.]3(:2͐KSoP2MIPKU8g>s1G5߅yՍV.\2qGܦS{??O"?q%|%u12ư%m׵K٪m #e]ar)c_d#/2P̠"mG9:@V+CScazv,I%e'~_H-m"EUW(Ժ5sj hCcZhݺВ<BG7)ym snmm{F# VxC}9   +_RX; Ԝ&˭arͬ} W-ִ']hDN6Xgغi{!w%C<6˧CA4 -sLl[`lU<䵢8I#Hgޅz3Zz#Y^'?3M47]*66W2yENefdVzC  :8̦YJ8SyˁIɁK*D|U+j͂h]/wgS1Gm:^< P*]ˊťFvE?Y@ι8'Uu*QuUS!R?Dע8-{B/ʳZś KIߋ],ukv@[{K/<.lad+Á;kݿo?)ի+׌@ %8Q6[ ~Ag qq}cF F.Y)+rެoәA37|.>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16518 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16519 0 obj <> endobj 16520 0 obj <> endobj 16521 0 obj <> stream q /X1 Do Q q endstream endobj 16522 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16523 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16524 0 obj <> stream HWko۸.}t_znv},^Er֖"Pdc19:$9sË]˷$ח.#/b+TsRgdZĻ*7QE g,`쳀}F9><`_싀}A4 m$6D}6D}B Pj}jZ߆(}ZAַPoC>P TET+6@m"j}jZ(B Q@PoC>P T۶$Tm"Tm 6@m"j}j%Z(B Q@PoC>P$TEַ!`Vm"j}6DJB Q@PoFPoCT޷PoCT޷!*dEַ!`Vm"Uj}6D*B Q@PoZ߆(}ZEַ!`Vm"TET6D*BmiB Q!{(B Q!{߆}Pqmr]y<_E<1v`iE\YutWw֛ryfSuگlwuRLe[|V>"ӌOfQ-|_L7nڭW:ROvS/lwS7ߙG@).go$ t6߯θ(x1\zqlX?WLgbrSk%:+3s;OaE1mGݯ'TRL'=wo?y㛏}|t]r!+eV9U3w벹<뢀J1`ծU߸j:7_mܷuCm|p ܮ2f]P1g4gIN3~N2fGiADg{V<]B+7$ SR2!&ơ`:`ۧii8Fr!t0ˣbuX~9 q\U3`" 9M,JLcj.{u 3ڡU[pٝ|V˧qb,vQ6_жwkz⬭W$6cu=ZL /Jt#c8IaqammVtdB8촔dy;IY(˽M>T |>mǺr;*OO8rv_V?w]!0Qvmwac$qQs=8W V&PN!ٺlk^z,7!{+=W]C+(:z ?``&҃bi8" p_9qpe} ?S y`\)¼S7=4CYVb|*g)nqrwv5qjx#Ud!Yd>T:L\9$%7x~tғX8Sc'#LBi^;qiq:Hts&{Eaù ݔepgϤd%)jUQs•tGo&TqacAv t."cKKZCOB. &'snTP9:*loc9[;!Kt7PbleFi'Ia(:)%Fb$+?' ߁wɑ8 nS.r,GTx#2uum JD7H9zOI6UDtí0p=gcdqg&-0G~;׋ry2bPHSMA/)5.䈺zur!2&A&? y!$)^nK[j=u}l[۬Uk65Hmq<|l40JT=43k|d"X!bý2פIeB~$Ā|m~ >n1+n?ʧc[Uy1-I-=:r4Z|JtΌ dchY³,wEe?}i~!:c8cƇ5QbF`SQhcs"\ 7AAڀ# AKkj,k7&^o< NƊQkι>>W)pԿ>^/s!,׹t=ֵH4-Yd $i\66;b!a5ɍ!|sn>z{9?/p,40jp) s=g@e !!ݔ;:W[4~Ri%ı@H-JTl%@EBl7bN{c;LO>qs|!lOfߍ~5=]ɛcp+>>=xL?.r#t)rQhJt෈r+5SF(s g.͌~Z\HM?^{uF]?iELyͭ'~kElI;IPVĥXs>w`)z"WU.(}&Lk6.|b·zҤgU XZtUnZΊ"}rpą"/[FJ޵mv>4A=]{lOy/L`Q2^j D/O}Szkae5coANMit4HQ0|ȭe ?M\FYh(T :ʼGu"ß>Rh2ROChDÒNS}&%wHr\fpZ7s]YxdQLNcp;;3>;>௵j9V:Jqκ0y?^#:J(Zdf}7PFW{79Kv?J;wtwfy0,OX}֌%#43* \ R G65Lz `Sx8 %WVM6@jgI@`e\e5|(r4dPn9-&ÔsM}arGg=UnV)Wb@khYtϛk^]Цb.?F*J>Q1Q yXZ_Jz m ϿL[>"clp+jʿEֺNt&FFv'iJfpJ*;Kł_+t^c`~5E]ܨBNTC ]hc(%72^;opF ^kg-#&5ZƋzdzPB194CQ;a>m?6,z8+\+ |˭.h ZAm%&8JCn,oK^~<btXEjid8!~QB+ nHc!pÔ6& =]( ig֮eiT64W(I1Y?@h]8ZƸ'L )("B_&AHRiGwqh鄷BFFп Tθ~lqD."/U*zݵ #RmDmX;Woz_6`-endstream endobj 16525 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16526 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16527 0 obj <> endobj 16528 0 obj <> endobj 16529 0 obj <> endobj 16530 0 obj <> stream q /X1 Do Q q endstream endobj 16531 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16532 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16533 0 obj <> stream HWmoܸ_2`")8pҦ1*Z .U$mwF9E^4;z|H^V~7__ÿçmYP4 Fs|"[9.()|L`x,=C?>!J(;>y(A{A{I{I{I`x}W{W{W{O >%ا`y3}>'`{ }/f9!Z׷Zׇ(Zׇ(CPCS TET+պ>@u}"{j]jZ(BQ{OPCS TE!`Vu}"{j]>j]|Pj]|Q>{(BQ{OPCS$TE!`Vu}"{j]պ>D=JBQ{OPZׇ(ZI!`Vu} !Tw}"Tw}ٻ>@u}"{Mպ>D=&j]պ>D=&j]jBPj]jBQ{O Z(BQ{O Zׇ(ڄPPCPC!g_DEQ$,? s^u!\i}!,w]\A'>tM=]֨sfF.[kti ;u;ZT]I4ʲg6ϣ X~_c7;ER:;4(\xZD2s?unwUo벴YힷF ,(}Wp`A<e(?QBErz4xW>y6'QUCSoZpnXFcPYȧ8g^'2L-9;\Ģ$V*CtP7G)S=f<:_u;==վ;;Vc c T`P=òhG'P4DΌ][U4VHf| {W0Ҕ /qc(bq3M]T*59 TZD%Her?{Z C Mxr:{JLtV[j8t򸿟Rpjr C7-02( +ҌpbdfQZ v |^2"n7c5o?7n T}_ェ_nђ#c͌SYmyُ͔kxkn;=XFvݓ5kTlTfpj3Ep?D1^Jд1jqngeaWjXRn:S@zň, !чa+8sB~l ǖE8դt0VS@:0Ϲ#+B3pbgO?6PZly@omXض4aIuvdK7Sn8nidQHKc8-ş^ YXHk~iFgל.!Jٔ0*1w OX%NϡKU̴h;v'܎dy![,M`:ZN=Eyi{zX-Q0#ہ|7U/"@p6Uà7vm]p3 RoZ(~9^ؾ~܍X (y9 ΅YTpz{S!og:P_H}ܰڠaza8WQ>Cᆕ~D޿,1*7_]2qwϷ#z9n|n/M{^_o;I$ d̓cb$x20IUͮ8y36îzCy֓1թO "ĊtBTjZ}g4Ɲ!s2 1!A~ }36}Ә%i!֭E]_=}Voy-L}9D.&i$9 yTXӁyxl[/+1[֠HQBZ в 0-/S(ɖQf Grxq6Q޶azQ ChN]ۡ@C1'1[/[RL%EJEŪ;/ vمe1Яng@+W"lmkHvpԶsKx:lyN!ITW@xEJ2^Y,hqފ Ѵ7H O(6Olb^;˦sy6Yj`6tv ǹ Ek`~0qR]&Xݳ~Wd3Nl~ھ.Qܬkl0+2&S/ir\Սtc+Pa4b 0s׈sMSԭg[N=ԅ9m&D%g^e4sXvaP@rn>ȁT;uy|9LS GU(^i03# ,7`(w]=쨂RT*F-̄BV9}ksK'1Efq=_Ѣin"e層ѤSzI^]? (B3ZMÜ L! ~n1Ц]l9q<틖IٽY+ 7L S?ceVpZ&ɲ:# 0 퓁t3* 4?]88u6Y&\&DE^M־RqqquC+M'a =aO+홌p+f,TNXG R!Kmvv}?Wendstream endobj 16534 0 obj <>/P 1486 0 R/Type/Annot/A 37659 0 R/Subtype/Link/Rect[93.5999985 234.507996 226.283997 254.188004]/Border[0 0 0]/H/N>> endobj 16535 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16536 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16537 0 obj <> endobj 16538 0 obj <> endobj 16539 0 obj <> stream q /X1 Do Q q endstream endobj 16540 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16541 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16542 0 obj <> stream HWmo8_ 0")X,ФiݦҢP:QkYn7([Ty(Xo\]`g?+c3Dq-:] XɂwfQ˯lXʬW匭D&8'SI2 $Y1YelZh1LHwoJ\fyuaGRGy\}g ue*óam>Z 64f *P\oLD&`#vϥ8QfU#"Ƙ#"偰͢t((B6 s'm{鱗{W{W{W{屏 >&{M{M{M`x}O >%ا`z3}>'`iVŶ*j͢|(BfQ>{l(=P-YS$TmET+ bbE=JBfQ{OP-P-YS$TmET+ bbE=JBfQ{OP-U"Tm6@6cE Pj͢jZl(ZEE,`V6"{Uj Pj͢jZl(ZEE,`V6"{Uj bBfQ>{lZl(=YE,`6&TmET6@6"{ bE=Ƅj Pj͢jcBfQ{O1ZlZl(ژP-YSmL۪@6cbE͢|9b|#͕M%\Vk7vu34d}_>3Ʀ\1Xfgm89j??u8mg.Im=f ŵvqx9ٗ'[f !087>H;nX1+7ކ]g˺TA~dwWSuYޕGĨp߼xu}d$ųoia_JASŢqonvu>?N^>V :jvZqEqC<"@=D.H<eUTXu4tп{7KmU-{I\wM=[˚XtobZe詞dg>[Fh4=Eaͺ}QG3eyY >8=*NLJdqqu(<5Mv[v=zj[u2yx)Hxx6ߊ7z(fΫMo&0tRQ`wBJ 6 7__0md5~=)U,4N|9@cv>S b'=D"c/pL^-O]֜10ue}n+H+CcN'/cz]!""9\3vgd(Vne#NO#H?*.yRd\dzdIo#S((:k'lcO.ZOr\qgߡR.}3mY6 n0?l$ {[C'Sͣ,2F cQcv:LC&VWΫ~)L/%/2G̰5~}J&{\N(տޟJ2ρgo.Ξ :~ ; W7WޞLOf(o>^}h;4bc9`* ,yԡA7} ƻu:t;@ENJ7P'gΣ/5-VQw^ڡz$%uPeS 9ZV;; R.bByWu8<<,Wk{e4ˍ o"Nbpl^ppI2n.'$aYce5]v)gbQw%^u;{n["R8`ԡ) `}oVt n]ބҰg>/4:!ü5Ge7&Uri8LQE# ^w% ("Q#?W:)̩_B>s/;̫7G(kʧӊ >>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16544 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16545 0 obj <> stream q /X1 Do Q q endstream endobj 16546 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16547 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16548 0 obj <> stream HWێ}W4 3q`+bT$j' &!jOWݼkug7_TyϣD%T8 dFMQ:YQ"X﫾XSsSV&'UtjJ$U*!BCSU7wƧ6IvnRνWӍ.,yV'&5ISfˌ3+lcn_T}¢l,ijs%r>@lbԳҩ"URQQixby|죟SN9%2ŐŇ,! ,]k.b2zAaꭠ2VPoz+L; Sz{Ag3A}g9S s>L}!/BP_0dKA=LKCdR Y\=ŀ%b),b\K1d kZ!KP\kR Xk),A=s\K1d kZKp-Ő%g5k),A=s\K1` ̵Fp-Ő%g5k)vZ!R Y\=ŐS Xk),A=s\K1d kZKp-Ő%gk),A=s\K1` ̵Vp-Ő%gk),C ̵Vp-\K1dqZ!zKp-Ő%guk),A=s\K1` ̵Np-Ő%guk),C ̵Np-ŀ%b3:C !k),b\K1dqCW_&eY:¿Ys}ޮ(Vۨ LeyX:DǮܬ~} };}6c ?tW$ek27҂>q 51-Uܟ.;=A-Ąز _B1h^0+$MYRLyXn=ֵk&k[5O#&${,կJ) i89_v ..v4zqd`蕕)! R&OR \CV_g~IwYb&)l EgXS{/,jUw"6E_wH 1lU cs _Ir&rP׭juX-r`qռIr)H[v++n_ {%)”ص^ ,``֤`x* |&S`=S;rPTתm/Cr ! n*!\R\ õ劔`B͜Ek`g_(Ia8lil}{bβE'Bqw#4;Bkf{- 925AxF0/]9g1ލ48t.^uxp'*+ r`tᱩa] ihP[տv{;AZV%}NEer:<V~Zyg^RMdeUtY߸R DE!ַ{lws?ӱeXjpڇtW,.rÍRkg}x 4>93p0߄֮:ɔ/ [)5~r66|vuv!+gf."NL|;d|B*Bc(h khe%8! ZWvh>cfRj<4=*N@Xr8!t߀{'tЁ-S{46?hКᲥaE2yN)s Ʈo sjڧ~kw߉ܴ'nl QY=6#l8vf{Z@m`*XrB,by!g˳X+c2!VbBʅX9U b,V)*YRUXPXE1dXbiK 4eX2B,VF{!KuO1d X),!{#=Ő%buoXPCսbbBS Y<ŀ%=Ő%buoXPCսbbeԒ@Ew@S댮-V:ҐkԿo{z9yF-=ϨX{Kxo<` g,ZųZ%{Q x3jyF-[=ϨX{ Kxo<` -g,Z%yF-YhyF-Jt$yM?o\ܹ[w^ 4:6IPr㷾k}!]m3t^Ë(}ƿAvQk_j2Z,͗],6:f_kR?ʟVsvpU2 }؅ǸRO~n8ͳi;~tвCLgNƝg`U$endstream endobj 16549 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16550 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16551 0 obj <> stream q /X1 Do Q q endstream endobj 16552 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16553 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16554 0 obj <> stream H|io6>@ˆH ( t2E;, Ƣudɫ#ǿ˖h=|}UuC7_n?'Y㏟>߮ "%Dprtz[ҬdIn~ѵ}mWUۤV7 ɾ_}ڬn6d[ Ix'[[TcPDj5Y:xW:]Y UX7 vOE0- x7C2m9n'<78Ll$BOm݃]ONn5iP5{[5vNa@OSy}f(&mr a&撦a:bN|3ت|삳 TB)pPͻڝ:؍AR/U=nDtU-AnF沥mdP!yzTn /RL2ЬȸLTd`b,r`v mtA@MBOg5$Zc@KLLxr=0)Xzhm&=N >"N\flhg:g0BgӲa:!} K8q2@ǎBu}"0\Č_/ ބ 5s+؀ݛ:kQprS.<)d4. 9-WpU߻\鯻^!󘚏**FbQʒ؀ &ɹa`$bXM˻@d DĴיi" -UNI78fYl:I' eEBKB{[G PVqHJa|s "LOy@[ٌc؀ R \,Q 0ptmݵXrf|X34{AmSloh|02 :diN(SVFqOu9FAjgX D*n0Y< ^-I1'm_aagi[_{gV~T{<=S ~U`x҆_ #\ jJ\A7?nPOU] ~B<}PpOTw jXdft9=4OE<0GTٌ6i'h bZӽs~%\2b\ru+=5yA;xUTͳ8֪ (wƩ0ۏ;=',`"2b.Lzi22j=b1("֪2(>+ ˂yاf΁cre+OrkU_/+xǦuj#̽ϏGW>;v7؆`ߝp]>/P 371 0 R/Type/Annot/A 41997 0 R/Subtype/Link/Rect[129.600006 539.504028 452.179993 564.392029]/Border[0 0 0]/H/N>> endobj 16556 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16557 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16558 0 obj <> endobj 16559 0 obj <> endobj 16560 0 obj <> stream q /X1 Do Q q endstream endobj 16561 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16562 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16563 0 obj <> stream HWێ7}=; ֗""XF Z32jyߪRdH,XgS,bVM~7߲of\3W(̍`\ Tٿ>+]YͲ߫UoCS襁K;f!gMayaNf ǖCUan^ ],/Y)kFoUo_ܺ09/ >H}̊wA$?g2 3}a?l2/M.4T8eޞCu)G^ȄcJ1`q" Y`9O^$^$%^&%^&%^&^%^%5^'5^'5^' $ $-&-&-&%%='=>,'LcL1dc Xkc YCV>ƀE6ƐEO\+kC>q \c"'kc Xkc Yĵpm!PV1`1d µ1,B}ZA6v$\cJR1T}pm!PV1dJµ1,µ1,B}ZI6ƐEO\+ k%C>q$\c"\c"'kc Yĵpm2E6Ɛ1`1dc YC>q"\c"'Ukc Xkc Yĵpm!PV1`1d*µ1,B}ZE6ƀE6ƐEO\kepm!+Uc"\cJb:9E { /x,wevrvLEcF{e?e[kձln>/-"ⴎ YZ&,yeK~ AJcU67˯dZ>og8rj#G I.rW]}8>T.T憻E'CrxML_RsaRwX&!]8#d_.rٯUaY8,2XpG"糮>"ߟuuUݲ͡av =/kqxiݞ n9^2 4)[|5`k؟fpj/T/M׿?YyjV%T+Ήy9~K6DIrtNCXV# ?kdA+q/ZԒaGsVut+gmx\qA@?>7B5"atŸ˺I+oSS1rV;ڈiȇnj]j6Cwм>?\72W}p.s]u〯vHINlixx֥vf] Z&UkQq^D:D9i{u0z۱.D:6f"eqlG,HX.fIdoLR"f)M|"ei|U2&eaIJ`6ɄeS?R)F,Y% \3;WLxqx#qX+LXٍvRk=\=y /(7Oc,K:5`k24r\BABV^ݡw66/jU(' >U-B.X5M8^Tl]{u. c+ϕRxHC wcabzې-{d8YIL+YDz}aba.1pSr~͢V .}ت% <<  ޟ ]:8.LD25 }s}~op ~n- XSC]qdBƂ[fqOd2> /ɸK3~8 4fCbŒùeC 23|"㾯A6ICzFn|a|y&f7N12X), 2ECC"wZ@ {uնSE9œP}g"v ]͢n0ˆ]>-$qݦ-#;XJ)p^_"/ ;"/ȯ)ݯ41^0SN!—bk6A0DKf kYw)vQAI'_MuAl0EAGO yI0 |I#U1W)LHa 6HG%Bf{xPnNde&\t[y؃ǹ[lsڗm}_wsSЎ))c E])3uz?O(g{{h?mW8(R fc4ORGR"UJRgKӁN&+Ʈ0q:J(2 o55h`h,Dyi=x&gW4%v3M ZՃ`M͘o,!*/ۉ hY&N >+{sK+w3y-+[ŁFrmUd pޝA.jC{qd~[yc!G7$‡Xs%𰸃NP>49Bk_>:vCծ ‚)5~ , 6RE)p0Heŕw;;oZꤻk%꺺n|^޷dŻԊOv6eE}4QG>dG1R`y6rگ fDpۜ 9cwk"?]'DSL3L(ͼu7[7}-yx"Ͼ~IR=5*R;f5 |sK<9Y%Kʷ4pDz* z_0J>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16565 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16566 0 obj <> endobj 16567 0 obj <> endobj 16568 0 obj <> stream q /X1 Do Q q endstream endobj 16569 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16570 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16571 0 obj <> stream HWn} E"}b2]d7BVݚiINK^SIIMV 0lˇaNt[u?>ODEB%LIH$c䨢.J.!?աW?ǦU㱩ɱ>>0MtsB9IJ$&)Ғl1~PyDz4iR|FahӨp;(JCӨ A) >@1= 3= s=s=s=  g,`!쳀}9><`_ 싀}/¾ؗ2`_"ˀDˀDh}_1DOBPj}F}F}>Bej}F!2DPj}F!2DOjZ(DOjZߧQ@ QZߧQ@ Q(}ZGT4*diTiT Q(}Zi>P-GTi>P-GT4 a#}BT4 a#}T>@!}T>Bj}_ DOBPj}F}F}>Bj}F! DPj}F! DOjZ(DOjZߧQ@QZߧQ@Q(}ZQiT QӨӨL26Dw;'l#N~x_ CwӊiMMV`Yt^;uRŊļ7u;lWjDf& PTgo[kwJmk5G|j 蘮яr?g{;jf6&G4jPv0fGuAy3 W7˄q&gNQ&P ޻]߫Qot~/hû<|3[S:Vz\u{0rstSmxjNEz`Udcç`E*grq%`.t9w󢕦0i0BbK4ZR]/8R͋yr*/Qq%:v}Pkd8^Kst[UUSW{aBeํ>|1 o^^$\ `EBeɗͭȥld5n s_Zkx[f~9kﻗHẙ%xHJ,+Dr^r="I3M$o{W:tZOuS ye^ YtRoFVtfevpRǶ;끼O߂a`$4וyztf; }mWR>HtiV93GP-20UN=6윩thWn wX=XZ={\YI^.Ħ0áepǀmfsΠ̜'3-pRs Z.VFs,et39`IW?{ojؼX"WX`.3R@RBp`iPqs]iFie?KFHsJLs*Y E?UXO ژ& [5ɴW0~N w= H]]qgV&-Z1>vI{DW(&uIUQ%j]5(妅-]mҕHr;~hlb\+LIq:F;r OG7s\ é5L.[R^RRr&S(M|uacg|EQKTswEU\\(vc|jW1m$ՀeUmϪg X'+W{(mSNBO9HB7O29K*$_-nLX?zUJǕ;gݨa.].%P܌?,O×]-CGTs]t!bSW~@4=6L"hSn!BQ]V@kՎ2R+_I"o"r?i!-un)"_-x卬m3-[3T 6`3̦}9VuB%7 pt@%Բk0;(hФ( 0Ϡ\Ooè t]]Aۼ^PP΁4ӑHr4X~|R$lt[մi?ye"ͽ !:"q%!b1T?ȓA1Xhl_r>4Zmf0&1]F!ۗ`gTaM{BG5X،WX]CCmܚix8/Gx8n@֐cn-C$Ǟ̿HɲcOOdI$e?Б)_tw@-'>c1V_ )v(1FΜ ާHFM6߮T"gX*$6Qݷ] dxa7Y_ Šb3P&'owUU>S-4B.wޠ7+ hxpp~<[`/+JM LzeLr1__QM'HL.(I%~]Q_mE?"Ar 5*8/=,s."mΫܛA|_D,*e~B:%I Ӭ¿)Ljf'ENNhך>T>05!WƠk17+r̲>Iʼntoq ߆hԀaksl B4{#d^6 Eg [/\TmW#iЖ5Sl꡽3^Gx duTBn}?7W9{_0yʪ wTy&LU,:0sGMc9IX(v=M \\> w(01Sɡ;Z?^_0ZJ!C˸ܨtZND`:2.Tr^Դ4u _351P^ aF9WXuŧXp4];bm'_٥mW=h K!l>cKod?)P!1ΔBp m-/mFWwA#xbn.,XΛXQ)D U*a?/9jkUV -<~@y 0Ve5TScvX'(;f8.}FuoYwsO(= Fc U4"SDꊩtAMNx X8fQ#R'}Xv47#([^;R*TDeM|Rϟ@R.'kIܶ+d4i(K$>F Sb_w/v9Z 2kcޮ(b>91I9׎'WU.Cu wѥȄF[iԶ>vH\vr-KT6S4OUZŸ&B0>S=,G?s?ni endstream endobj 16572 0 obj <>/P 877 0 R/Type/Annot/A 18643 0 R/Subtype/Link/Rect[93.6006012 355.428986 388.175995 375.109009]/Border[0 0 0]/H/N>> endobj 16573 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16574 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16575 0 obj <> endobj 16576 0 obj <> stream q /X1 Do Q q endstream endobj 16577 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16578 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16579 0 obj <> stream H|WmoF_H$k 4@&)jV (2e1D﷏D=!hR3oS/_^|Uի7^FFkS*ɝNR*ZEUt{tcu,^V][OU[GoDo4c*gQU8W2^]] _$\T[|'srf4nVamkğITEm%9]=IX} 2XݩpIPsz.";MT$SHN8&v1b8XHÈn4ϱ-po{;Nw=p{{>>>>S>S>3>3>3>s>s Eg (-ǖ{h-Lj%sX= cEk-h-Lj܋ZZh-Lj܋ZZ  ,Z #p/ZkAk9X#p/ZkAk9F,^ւrl9ZKX`rX=Lj%s,@k9F,^ցrXhX`rXh{ZZ˱{ZZ1bcZ1bcEkh-ǖ{h-Lj%sX= cEk=h-Lj܋zZh-Lj܋zZ  ,Z #p/ZAk9X#p/ZAk9F,^փrl%#tϱ{ WOp K"QM!װS,,Lhe@+Z9ʅVrUBh@Z6Z#]wZheZhY倖Zh9偖ZhyDh%@KނsX@KނsxE9g -{ h[{/,@9F,10-{r10-{r1 -{r1 -{r1:-{r1:-{r1:-{r1:-{r1:-{r1:K-Kjq@Kރs@Kރs@Kރs@Kރs@Kރs@Kރs@Kރs@Kރs@KރsRcĒZC+O@ ]Wqs2.7etQVU΢bGP SҤaC\FtpWgCφ78^F_.ױhMN1d:KOwլ^Uooǟ^soon/MWHL{ۥf]౩FCx!˴ 4tQEAgDNNM>L;n_fx kvB=Sh_Txf5 7 GC2י` hN_w.\a8q_u;>]>}.v_A)MϦ٤SAWEFßpəvθY_]*}<ֹx,op,氁ŦB2)~b}ٞDj m=C옟2 3d[~qL!_S,,Lhe@+Z9ʅVrUBh@Z6Z#X`eZFhYeZVh9儖ZNhy兖Z^h%@+Z  # # # #w #X`sX@KށsX@KށsX@KށsX@KށsX@KށsX@KށsX@KށsX@KށsX@KރsXRcr1b-{r1b-{r1b-{r1b-{r1b-{r1b-{r1b-{r1b-{r1b-cĒZ ,{Kj( ;.J3ʨr[8|M'p؞m.3Mr瓬 TuX\d8e@((ܢ"㲁ͬ NW=_D'&NR_翔Wn6+tK$h@HBD ,9nY&EJ}5'zk;.%P BWjH0(`&"dlew;*0(}/p`HyTTRPo!.>h?a +HL04wf|SB.h Q#vX狫p{,8W.%&-"e,R0lИ4pQ]+7,V#V Qտa$b~#U֡op&YZ޷fҠv&-!c٬*]?ses"(-.u\L< f <?O-0@OQ q2|bPޡ)\[dɮ70i=3pL3u {ߺ:ychX>߇'% !hP6DOI&ADu;%RDڥx)PڔvU[D1 j@릛.cY0"iO_wƲmf}fs4VH!Xa[嫧\W`.g/Sd~okf_w4~[7۴Jpی0I$ʋ ۀg}3%*@r{|rJrT(LGLEfFy3X,FևGWo;)!K߭aόg"nP E\qKߙ!l9@"^hâ{V\?ՄiׄEQt~8}v ӌBߦ.WfzT3i b2mʤ@@EXeP˦cçGy/> ktewazzrZDȺb,!Z .o:xXj #TUnrI12tgK>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16581 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16582 0 obj <> endobj 16583 0 obj <> stream q /X1 Do Q q endstream endobj 16584 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16585 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16586 0 obj <> stream HWn8}Wp1/2`Mw<$8 & v`(jڭLKr$uޯߢ.R@8O<y۳7o{w"n/әDFZ:cYɂ?>}oڲ}[-_> 6K!0$fq6UD\l0q#~ԽmZ=L*gmŕqC]/>o>T*4' ?o;YT0_ x~_#- L"a8s*0ʰ>Fc1ax,=9ŹB6 s'm{{᱗{鱗{鱗{W{W{{{{O>!'`zS}O >#g`y x ,'DmU bC Pj͡|P>{lZls(ZA`V6@6"{j͡jZlZls(ZA`V6@6"{j͡jZlIgm"Tm6cbC=JBP{OP-P-9S$TmET+ bbC=JBP{OP-P-9S$TmET+ b[(BP>{lZls(=9E`V6"{Uj Pj͡jZls(ZEE`V6"{Uj Pj͡jZls(ZE۪@6cbC͡|&2(ÿkQ6+!`\%a* 7;.V᝔Iá.Ϻi|> x.>o>B,ÅUhWSDo w>';߲qvyfM;\@HCX1N^,yoYjM̌yr88~*bZ{a"dij^eݳ1'w7Hz1g~1`G/+^sWđ,LFkBGF`0åQgIDqmUG;ShK4JSǙ*Q*56WBaSO;싣O$ri5m76|OzfAI(E9 N`¶j}#.P?^Z@V Yip3S쩚b@.g;lmW嗩ͿYxn|hh=~D{ܶ'*VZ<) (ի\)N>ϥں/]-Qp 3irj[vš놹f&|٩G>>\^Ze7>Oj}(&* Vقdhlҳ8R"㫩غFShdTz)=:9]掲kK-V# =ƍ/~}Y^RƞIXk/t piI2^>iS$jlud¬Zպj-N8|PG")V`K;HN6]Musv*P|n? ex5#ñu f@ʉ8Ln,|&p~ޗޞv( 5meU88:4Z8 CQl{3=lch{ĖjouҹTFY)8\L'ӭꦾcޗgκxdԬތGs^.9 J=u>pw汬珖TиtgrN+ OR8 KS d /p g:j;.Xu-}6na@}KqU'De/v |ippWYts[MV@E]37 M?ڸ}`J%Kj.k=8%b`GF#6 Ur}.w \+R4=uѱ+K.#\$sk^Kמվ{!!?n]XF6*c~]y}B]Dknfdʓp]2cʺz Švo)޶q zޔE*%RS"(Ȯ+r-9iL+ݓ gH{30AOF8 ]IK}o1`f^?:!,i])t84#;'Bi$ ~1\C?<5N#`GΒP4տ_K.6o%x .CrK>\|Ĥ,8_^ ToY${6zYe2u@e4w$uVrw6X)j-5hErPP]>" ezc{ӼaפA{g1stVT%$hHb) uUYIjo-:z㹲onC_h9bF-BR[:[z9Tߖ3܃y]92FǝXiR:mc2/ˤi2@9âĖ0$sƚ EE3iJM[w[cךswV'O"c1Ӝ; 5)CL z!zc5ڱ;njl ,(ܔϘ*\'KHz_oU"e5^6&e"8]S<”S&dAy0#iØj#5iR+ vfˤ^9l3Vx"_c$3YYN!}M%WM)jq9 Ϻ}@LL𭮦*? ķ@uQOei!I`W$HN-Q> \"4(3gF wF47\5 r}YF?UBaA_ D.|lcn:GWCˋ];5шV70| #sYӃIY$ j#~$ԃa@̓c9Ҝ@,\[BL@)*Lh!(!~҇T#{倕OCX^W/۲5j$aC)z۫N8 f>807U2wl\HֈE :O-jTrԎq"N)INR -g?RB1~Xw0Ц fjHC !QAқ3"u߄jXLҋ-grRA +o27]\ ,7w_/ 06gendstream endobj 16587 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16588 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16589 0 obj <> endobj 16590 0 obj <> endobj 16591 0 obj <> endobj 16592 0 obj <> stream q /X1 Do Q q endstream endobj 16593 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16594 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16595 0 obj <> stream HWێF}WQ{v< llŎv`leIf2Un. cbt˩*~y(~OVW\1^DPQK(K%KDQ/+?P~nU׫EeXݬ6x٭ $QѦY=u5]ݼIo>m>X.3B8lBЍ)҂)qվ{n 6 |Kd<[vE2aI*7fIyX/H8 ²%vKsP\+9LK?OthO8^Z\ X@Y5W9q D OqVLH RYم㰺_)BLax,CT8!!*!P>wCP`/`/`/`/`/`` > '$`쓀}JO)> g,`쳀}F9><`_싀}A4 f%>D}>D}BPj}jZ߇(}ZAPC>P TET+>@}"j}jZ(BQ@PC>P T$T}"T} >@}"j}j%Z(BQ@PC>P$TE!`V}"j}>DJBQ@PkVPCTPCT!*dE!`V}"Uj}>D*BQ@PZ߇(}ZE!`V}"TET>D*BY%j}BPj}BQ!E-̪Yݬ6x٭xwvi}ʭc9vq% _`5Ӏ%PM-+fYᆮw_D *SqTWnh9yk{.k?uu־?< :8ۮoʃ}Y}^Q7̿"fTNžౚf>/06O}y8LbO3%b1 &|u5`XJ3V?S}PfcSxf:^u0S{cO{¤NGU8l`>jj2uOt$MA65|Q]OeR]Hw$$<^g;m~13t;~< osg/]-FJ/~`xkl|j%9E{Vz®]7\ev5n "ݍ12Ͽ̅SK{zS6$2d.͹JzeVtNq?ƭ[B?=ŦfbOιfvSb,d,ZW#ن$sqhF8p޶X6/R@ջ(%QnYr[񪙕@ҺlҜe -l~K8 wpW`tO&+Ǯ~=P.j6Z}=^*RM7G7U)Ƙ14ZCԵ:}!dY<4VĴ(Fms6 '4ܼWH )a5粢KX= }&Y '8|:߫')A̔ B<MpZhE9Cx B ";\. Sٿ>tŚ>^ނ 傩/&0 ,ߠ mn0& # f/NKफ़z3#h#8#r.4 W,%PݏA@^0_)$.%svپXkBɜh6ʫq?%)BDQl.m=!@Ȳc [Bv}$$Jz3rork{; nV2³bKxZGŵB%pn/ VRV LKAdU}M Ă]n[( UL;ͭ,1yUoG!幩ZNtWhm<{e>&7/wÜO]5Nl E "=&lcn1y!wV̕jf9KEi ZtR)JIBaK:뛡I׌JySyyvȧjpjXN* 3طIť0&`Փ*5Dh35L\pTͣ~OUn,~/lj6f[7'RiY mVcIϱYpת(z0>`#, Yq '((4~"" J!p&5$T = KmUtnLjRpAci~$-*z-HO5^@?|wǾꞔHęfPʜo?@Fi,N<{Ut*BF:S!9ǕfSIPq:0(R). ƧގmW˳{NNlfR8Re e, g&e}C8YGS!9 vTI eUw6iqydZrtٔF:ZTv1h2dAl3$ "c3ה"8r"{SD* D`A@~Q1w0ΗQPz9fb*JBG2ھES6A, p<#F hI0"XD]KN~Isجydd0"4u\Vu?p`bl*E`D &7` l\~S#j$K,. n>/P 553 0 R/Type/Annot/A 42703 0 R/Subtype/Link/Rect[93.6004028 291.82901 431.640015 311.507996]/Border[0 0 0]/H/N>> endobj 16597 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16598 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16599 0 obj <> endobj 16600 0 obj <> stream q /X1 Do Q q endstream endobj 16601 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16602 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16603 0 obj <> stream HW]6}ׯ E&vSŠ>LB9Kr$_J,E01}|H^sIf?pۻY~w7/~1K9KbG57̻Cs]Ǻ)Jb˚»#g{ែle0I2, R.EKOG~8b V{\(X<`]駺j7EUuW&O>dg'|ΞX@=|؎y}A%e\Nfq@8$C;+ ]!+"X0t8;9;^8^8^8%^:%^:#B}䨏>"GP;cB}O>!'P8SB}O >#gPx6$Lkc \6,µ6,W!Uoc"\kc";km Yzǵpp!P︖1drµ6,µ6,BZNƐEw\ k9ZCq-'\kc'\6,µ6,W!Uoc"\kc";km Yzǵpp!PV1d µ6,µ6,BZAƐEw\+kZCq \kc' \6,µ6,W!Uoc"\kc";km Yzǵpp!PV1dJµ6,µ6,BZIƐEw\+ k%ZCq$\kc1dm Xkm YzC2q#K&sYed5vݭ?% K{8ea,2.OZ7Ŧӊ-Wq*G]~^:uzYóv#3aq D~k7pj j5Vȡgf]$xԲV_i![>TOBi3ojuQW+jXâ *d>Gݦ,4˾icݰEm߰ "X UojiIⴢ(0ݫVaV{ͺfPWQIQBb{+Q2h+NՔb~4!`f.:iu`9;}QlYq'6%QU&vOљH&(%]V K ϧzg2 (-EXLIص"BZYlд öuwy+S}z2C:fZf?f]yݓ W$ϊGޜxh%/^A@q@16ZAܥE#L1C͝E4W_UgV_ Y!T!:*QDfk:i,|y*X**u'?sn_>}ZCg6[XByD|[s>@j ݰ wu~>bVhTY^M73aUN/F0W yl%ΣP$$$0en!ydjHb|,qRS+$<q7Cw2vB0{Wzc[Ly}?*&{94]CvYPL/  v, 4D_W#Ҟ_E{;0O`Y2}7D̕홈'o8==~l4~&%.M',=p-E+t RW3ppA Cb -I2vQm7Cr(%sb"M孫qgw !'u})i:,̲"Jv:qq ]Y!kCJ6] $)<]pd2Gy빚_nn=z| wXne#7C*m1z'$Zr".Dv$S0nЬ&jc^q<0LX Nf[/o=DXr\.|Hno؟Ƶ2(CɥFzaUbꘫ=݂@^\H` 1eF1 2UIˬS.aʻ@<.J\rUԮ!vu?;,08ȩu5aS翬0'[[N'Zw.`endstream endobj 16604 0 obj <>/P 1484 0 R/Type/Annot/A 25000 0 R/Subtype/Link/Rect[93.6001968 317.630005 321.721008 337.309998]/Border[0 0 0]/H/N>> endobj 16605 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16606 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16607 0 obj <> endobj 16608 0 obj <> stream q /X1 Do Q q endstream endobj 16609 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16610 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16611 0 obj <> stream HWێ8}Gś.˦줃@q˶Xrg_Un&<.Sէ:EM~hٯ^||=y| "e$GőFCA6`% .->U;+6M( .2Q1u$!KY 1Y&,bՖ-H.b.#VT3iL%%Oxm̮=*x8w7gB'BZ넧sg}fpЧ&É2fAE~Wl@qɾ13*@0*H. RbR:*O%rl2.O޵J^^^^^^>"G`yc}챏 >&`x}O >%{h][HB Q>{(B Q>{׆(kZ׆(ZIֵ!`Vum"TET+ պ6D=JB Pj]j%Z׆(ZIֵPkCS$TET+ պ*Pj]| Pj]| Q>{(B Q{OPkCS"TEֵ!`Vum"{Uj]պ6D=*B Q{OPkZ׆(ZEֵ!`VumU պ6D]պ6D]| Pj]j5Z׆(ZMֵPkCS&TET պ6@um"{Մj]j5Z(B Q{OPkCS&Tڪumٻ6@umٻ6DSf!7Q\dbe@~LyĢ(eY_dR$`e8mg`mߔ ݷ6 +mCb>qmHCk.E('m^MV(zX[#@d (VXtYيM$f6f>J%U(FN,5DwT_᱐rbOc%Üje7b@paG[qǸR;d%2 J12^Onvvxc #oG^]Jl6=Ni`w"S#[F]KȶexHxbpn֬qp^M4Jc&{3{$t;T6<-4]ְ}}`g48j3U+ZE ei:>sv˦5MΪN싑cۖ-zDƶK<4q:DY7D ˍibW;T +埃}(Uޖ6'Hq?jCj{v ]bsĤëʑZMWdX_M|vupupmvG]m#ЖVUTửD,P3*)A~bDŪ ^D2)΢trv{Ug]@`U1\,YeϬ+{ck Cz$4q' B'eۧ4ڼ"Kl*lq-Vt)&0Į4ՙadb&FH;44|`b-p-8/mWѶo>t|O/==jkgw-< AfD>m6:˿רn3O8~ ǡUc+xc;:b .lǰ+*zZ >ao& GIPqVñت's&s?uEm;Y'Y'.On,1tӿB+*!lN 𾥵 t^}7(~cL#WKs^bZ#J!ҁ@ J\ް?H" Cqī~ݽ?Cb ϧ{ W盂}={-oɫ?l;j;]{!*UѼA0-+8W_sB^ȁ?LwjUe(u=&tz%~״zkCs&|=Q);(r@4⻇y9NypӨNZ-8z|j~m_Ubv2Np.t)90zؗ7|zZ|<~y/q ]"%gmAUKon;o4CQ}APK&eJ4i1s Ŕ(uy{R]|z`Y,/1i1 Ɵ}qYWtТw:8Amiut[N:edl=TbB2 ^{C5a;Vtoˇ i. %ƎA9)FY~#ס~R@y==$$  e؍dm_te2L7)CחsjaC{j}EַU Pa-g|Û`ǻ|vendstream endobj 16612 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16613 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16614 0 obj <> stream q /X1 Do Q q endstream endobj 16615 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16616 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 16617 0 obj <> stream H4;0=+ %B0EBi:$@@YFgqy DG&Ŭa=Bk]vz_4uS$!1e6/3n'OA,endstream endobj 16618 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16619 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16620 0 obj <> endobj 16621 0 obj <> endobj 16622 0 obj <> endobj 16623 0 obj <> stream q /X1 Do Q q endstream endobj 16624 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16625 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16626 0 obj <> stream HWko۸_2pXq 6iQkmic[(RGg33<$uulv߮>78;Lz,"?D9 |)N6Y:9dĹzH.'MHwlF6s~ֹ}ᄑՉ`J"$!~/DASF3R0W^Mz2^=w馤0g!uH9[q/a|yL q"{\4ԟ ' Zܙ:29͉ "fәYY aś8[9[^X^X^X%^Z%^Z^Y^Y^Y}Do>@QXD}`>DԇQY#DYG\kbe71`!51Ͳ՛fM XkMLk9Z,DZĀ4 Qo#51B[kM XkMLk9Z,DZĀ4 Qo#51B[kMlĵ&YzZ,[iĀ4 QoV 51B[kM XkMLkZ,DZĀ4 QoV 51B[kM XkMLkZ,DZD\kbe71`!51Ͳ՛fM XkMLk%Z,DZĀ4 QoV"51B[kM XkMLk%Z,DZĀ4 QoV"51B[kMl(ĵ&YzZ,[ir,}?.yhVEQ$ _g :vbEFW'ᐈy0HpܻM/~,"_񳛦sEQ,Lf:R o'S+Jjlm;P_У04 y {=zj1,Eg>A,w}ݛt;d]Z {?’Oo:|_0w yp.=łFlQq;/+_ُba"@0~h^xHN|OsH:)2];!%]Sz\ٶt |xS(u8ސ^+ꎲgc2kJJXɔ½LO;噪 Rm(|m,fXfY HBDt[gP#Ek4BE͞\ sWoP}[tNf)yI/H?엕b^D:((gvJu.H-q )\l;+.wbzbzFq=og<*B&Ԓ[I 7HEGB0ɚ ٭Z7<ܞN!w( G?- !|R>W\<8$KVd~7|%K/ /_;/ LZ7Ya(Wu=篓uFh<zR` e"pV~n>oaӞgympVUKYAÉu,' 4;-A~H5{xDKmhErcmձ3rRz%X \ߘ"yn"<("s㔵Q/s⣀22'>|_[v"B\%G?s` 9"T;foP`Qa:% V/nV8{ f ~nendstream endobj 16627 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16628 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16629 0 obj <> endobj 16630 0 obj <> endobj 16631 0 obj <> stream q /X1 Do Q q endstream endobj 16632 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16633 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16634 0 obj <> stream HWko_HB y|p7AX-`,spI9\sDR6Xhvvv5#qZ4{_ޚļ~}MȆؖ`Ǚ3yԙmQbn"kjM?UžZ٭wMM4MMߟ9sFh:X3J$1)IIafh}8}9f]ہw>9oukN{gjqϳ!MHۄ͢t0.7flb>_s91W&*}_7Qut䔚S M"IYz:ZRޭ%F,;NW=p{{>A}PS>US>US>U3>S3>Ss>Ws>Ws>W P PKTK^uւJl9Z1K@k%,^b%F,Z1 WucpZ@k%F,Z1 WucpZ@k%F,Z1 WucpZ@k%F,Z1 WucpZ@k%K߁}?-r/1~0Z*^b`$,%1~Z*)}eLB\.7,fX3ʎ` >L16/vs[$WON>>qƽloz^7E'~뮾2m}s\_'v??yq2"GZZl^dDҌ$큱Yd~hE!On뫋=/xQ݈K/6 fX'gg՝W >}r&um4f>yҩ9͚Wz@S4 겸P lit?o8Xu[˃W>=>5U2O&iuU'NnɁI}yQ}I7E~FJ1}1D~tdy'јyEZ<#. ~ w$TA6 0-)Gwr٥> )w׭>N4qqV揶ʗh/`ݝKY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>Ĉr/1fiNse/atMgkfQq RzCbOo$ٟGy1*+bo37vWfC|gvmd[lÌCoWr0+(!@d\H,1ʀ8Apqs}꭮w9` l\}d` gy0ѣ؟CbYAmêUӭR]RFX Rj.y{YOY֢}8TJ~Im*៴IU8eAu0̂ewah^&#q^VxQ1Q1+/6\OA5żFxKpV;Ћ%3\lV +%a|ن\V`џ4.W=j\,2hUJ=[4*ׁgx@J&L!0ɿ/AjG,u}uZb 7I؋` vAؘHmǷO3V1 endstream endobj 16635 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16636 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16637 0 obj <> endobj 16638 0 obj <> endobj 16639 0 obj <> stream q /X1 Do Q q endstream endobj 16640 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16641 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16642 0 obj <> stream HWko6_A`EMK$(Y͂TbU/}M5u:F!x 6'b 4DL3 },٦ nÛe"8#X9(aƿ,Cu)Ԛ)Ri0I͗&x'SSO}JO=>gS3O}N=9>kBkB٘0kA֍!WE֍!Wwc"\E\+׺1D= µn PkkZ7(BZA֍pCs \E\+׺1@uc"{kkZ7pCލpCލ!WE֍!PVuc"{k׺1D=Jµn QzϵpZ7(BZI֍!PVuc"\E\+ ׺1D=Jµn Z7(_Z7(_CލpCs"\E\׺1@uc"{UkkZ7(µn QzϵpCs"\E֍!PVuc"{UkX$k|n Pk|n Qz͵֊Eo,&lnSZ򔥩f& g2M5 $)S+HInR<C5\l4"$ɔD(OiOy49 'm'M* "iփy汯ۿF̳1ؔail'b |J9SwiX5qW_UV{.ZU;Lá՟Dk`Xg'bJ>N 4MC DBeh?H,料h4gt}9LZfJI=~u. gi-de&| q5o]d]<+ !bOŹ}`f,NnoU9.Z|P $hm?l/#Xvźi^|QI(yW=k˞@ҁƻnC*c_Ǫ`:.ؙDE@ii= JM?']{%4_< qypep+BfFᙩI._Z% Xoq4z0 CB{cdN=+Z m!躹-1x<9;Er7,~`,') +$($^n֬}}êL[< 8zI?5"y&V`fvlP 寈Ix&l9oU݈;txjPۊonZEp_{챺&I>&q8GZg۵mu?W. ~CnD+C/b;}J]jJc5s1zAݳZ62++N]wPnJ6(rM3|=ld"rn_Je+4풉e CWӹoOR<%Lt͕*6sP%fpxs2C7KH";[ڄ|\EQx4sTpXTtڎ2-OӝTcٚ ؿfaNϗ̰|&3ԋln 7;<>r?C4Bgx @dy>.§ROi-hQّ*7.R /.>gX\}``].Ya>i<e-`]Y]! F GtN4Bqí 8?ØUGfTggݭ 2ml*ZQr%PP2بW)^ *sT봕d\YXzs lYm1,Ah%DZos\\4O'4s}Ygu.~0-Q:3uמ'Z$lL&`vк=w?9>K79OpT_]79rUݖvSoN7t:;"8nde7s^-=n@n AG-ERԱy Z/Ŗl_o' 3 5Dr@r,|U. 2J FfàQM&ie2f|L3;5.#T[o 5-مsЁU-JSw3S `HXHf9Oy%G+~p ff_4> 6DR(1Ĝ)/.uj "~ttNv-,x)07jB 7Qܼ'jX0?]k[@|;ȉ IKsQʙ=/2G m۫0s:),~;]̘p"UP0'>6X|j|n6OvLď{=Y#1endstream endobj 16643 0 obj <>/P 1186 0 R/Type/Annot/A 42692 0 R/Subtype/Link/Rect[93.6001968 663.229004 230.975998 682.908997]/Border[0 0 0]/H/N>> endobj 16644 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16645 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16646 0 obj <> endobj 16647 0 obj <> endobj 16648 0 obj <> endobj 16649 0 obj <> endobj 16650 0 obj <> stream q /X1 Do Q q endstream endobj 16651 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16652 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16653 0 obj <> stream HWa6_Z`W(REK).ָVjeger6w(R>!iͧw,ǷE2fU "*O EJtkG,~7]=NAOOm{?MfYEL*`̸d*$cf󇡉kZeͼC1%uutu˥biĥn&f{V"ϒw8^2[M&bK9S???/WoʋK)=DUyt}TISd,H>p:V,C$X, 89sB} y>'zAzAzIzIzIP_ B}/ e$ԗP_^^+B}g3´>v8ZCVǀEǐ1d} Xk} Yp!P1`1drµ>,B}ZNǀEǐE\ k9ZZC>p-'\c"k}k} YzZCVǐ1`1dk} Y9ZZC>pmNǐE\1`1dk} Y9ZZC>pmNǐE\C$B>,µ>P!+Tc"\c"k} Ypp!PV1d µ>,µ>,B}ZAǐE\+kZC>p \cH1d} Xk} YzCVJ1Vasn7wgf)>S".JCod]}j[ۚyBVejp&S~:C^ mr֌xfz[vKeŐ|yc#`7mن*AA.I+#֓fj>D8n ~2Q:=x8@u׽#c\8,LVjˡXJ̫fSZRj.rNm=Ǘyňe*KG]dh]NrYn'#cn^n€ܝ3%w]7FG>ө>8IڧNA1y[b'т8$MAQyQ&_=9Du!ωiZ]Zٖ[Vh-գBAU˔ai aݹ7^,|tBjv1D0g #|.~ ]=:͈- nn]z}HѳR(u"B*׽&tĖHH9=L\g3;\HvvWɴtGd_ ̾ ηqǠO>3=_x#9Wpf͖wb_#+5cekx|\W"jh6a6T 8 r{~Pbf?,v4p';567"1zthv>[} u3ؐeM+rְ;%DM/\"!"#y !y`fV%ٻ># X892aQ7mݹA׽{@C6_ogk>]S39EGs (?իZuw2< ;{GY4Bl%u#|47^<$_n *?*JuUpfB'vlv OoFFƟ,r\yUVֶΥޫ݊.]]۴yϨEUl2UIeξ \Q\g_ 4\Qym9-ÍHEW5깲P/_,8V"Kׅl(? ƲX,Mpx#{.#W]+c.rA ]*AdRBW \eM=5nI`h 6S*u=G![m+SErԅ8W>Tn\ߌE\c0KCoK Sө-bj̆ 2s5݆{\|M O$y!'<+ $6Q}`}q&A08O +iVt{~]PwZLx/s }Q#Ȇ-O+o'=\n/=n$+YYOaƳ^ڷhK ێ MJ~I/tZ&? A@Ʃ9ܬ_Nm&_[<1R%YSJ:e$႓3njnG;t[῾j(/9pRBA%-#^q+8+hC:2a#)dͼEjC "Na*nSsyB{Ș%I?m I,뱐WtrdФUш>/P 551 0 R/Type/Annot/A 42885 0 R/Subtype/Link/Rect[93.5990982 195.429001 187.378998 215.108994]/Border[0 0 0]/H/N>> endobj 16655 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16656 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16657 0 obj <> endobj 16658 0 obj <> stream q /X1 Do Q q endstream endobj 16659 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16660 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16661 0 obj <> stream Hoo6S.+@Qi{E\8(䵼V+r|#%R"g&W?|8eb}w~b}۟~,,.e4$+U.] N`=+n=SW<^s7]#/%;] ~WLca$Yfݘ ;Oqǁo;)J|xª2tSS?֏8-68> u+Z[ṟwQOKJɾ0ٯn?gXaUUJF [gca d,f,`W1O`QB` twחqvw↗\4pdqei*eY%(y];S.)qK2NJf6W% " !+ߚ-,q:_Uq_1)J 52iqqz?o;JFg;,wy_S2y݇k(̺uiܡ`_Do cN< ~Sw ai LqeUWT:Y|yOa5%4хKJ5{1t|/K?=--UʦuחqvR2>Õ~5Nӥ]&}_߄fw9C;E_~솇znB_g ǛlN]ԞJ7k0| vjOs}^c@7R0ڕΑeG>*d͕x{*%}b%ϋUn>ڍ׵w*#KNQ@7t>s..3UKUyw꺬4+AZP4o,&{xeS\o;;ǯ݉| j_8D?[&W=pߟn1ZZ#r~:+,ɾUeRĠw-ٽ=a~O-,'ޘ:-Q*ORdk5?o[nzBo ~5DK*+Һv#KNe];#Ն/]Eyv6ˍ ,u 2wAR~aֻPec=9}n=>}c:Rބu1)Ɏ7}[s9 ffD(-Vkb'O֬" >+% q\,ޟ)nUXnA l#w&+jl TM&}ypB3a-5O0LB .rj^2=OZw|Tv/8lRׁuK~N > [[,ڦ;nXsv#p6tPj3-f4gK<\Xl{]t\䣣ҕ"oe4eL/P@=k;^>!`J{$$貸PxbƇjbzJO׫O.|av:y==v)!LC `m(IT8PJ|JkQ=eZJ#k)`h)3^o(KzɖrcX?(TWJ}ET^DKem5TҙP91T-r Sr!JQZ*8^@T/ STkh(NLh)f{*LQSeR([*GLQS5-edO庍(MLh' DOބܿ([Jڞ*4mq=U|TY\Km0U4DJaĶR%yRK*9( sP5L}(SeVJPqD (z!D*5Rʴ=Uj-?"ʌ(RqĔқ*U>7Ss/$T'PHL_+UC(REL uTGJc[Lwg?ð>O%xxylg@_y~џmzWdw)j/~:m5v唿AwŰziUŸ²Xrd\=Q?ނ&cܰFm<iԆmumАK o};Xf22ə4mp)9S6d>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16663 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16664 0 obj <> stream q /X1 Do Q q endstream endobj 16665 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16666 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16667 0 obj <> stream HWێ8}W{V]! fYL ;Yn+cK^Kl~HJ`AZyXS$]^oywoD\\3+K g噌S.uQž"YˡyvҜTD?쩏l-,g}aiO'۞Շe;&+.liDVsnŪ.wKH@b\D {u~Qpf>U(eVߕCiEj);M'?_)cQsC s$c1ߡW)a;i"@,%ԧP3B} y>'P B}/E^u^r´>vZCVǀEǐ1d} Xk} Yp!PV1`1d µ>,B}ZAǀEǐE\+kZZC>p \c"k}Iµ>Pp!+Tc k%ZC>p$\c"\c"k} Ypp!PV1dJµ>,µ>,B}ZIǐE\+ )Rk} YzZCVǐ1`1d*µ>,B}ZEǀEǐE\kZZC>p"\c"Uk} Xk} Yp!PVS1d} Xk} YzCV^Zk7kV6ϒqGwIm+À:Xi=EK~" Xסi~g:1h=kZ ]U}H7]L!&&9o#Xq$C\j{M$󇂜S&dM,.H }SԟjoJ5v!Gƒ[Qdo*ɍ`lu6iC}7#z\2Kgv覷O2gw;&iXQg>ϰ(ێPȧ\p0bx)rE6& kAs{hFtj u 5XvP'Xs]5X*]qXOJ$Uk/nnu:uX`tDl69 Zk[aOٙmȝkʶ|zQ3p) "& m9 n \^ƙ{y. ʡj9no_m6ƒ#rXe5> UstpܘLz$7'"[m%x*z mtI_ X75l&K8<$Y"'6Yo!H: ̄Vr>!~g>t)IBL6 =>X}W5Ӏߚ0N7(f:BLrA1]qD }_j׸&4a26tAn-:X(Zx) *t&#vfjݲz<:>X9ʞHϠ}8|./OUC\Ձ WsC6h@jIhx^S(-YE6T~.HA/ox%#Y&`2ȉ]$ v͎=^҄ɂovu?\`+DJqos8հ ^lAߙ/TeL,AP?-9ܰ[jÅyҗ .eKᡇzeW%Sم99`ނcu;4v1mƮkeu:s ȼ{Ӂ̊ Mg_ۮ[b'fccZLJmvOJƭSNI̖lO[|Y%簬j+HEs,3msƲcq0}G^ P)5 ,l9aоVBE}.ך:ٮ Ǯ~1FK3ZK6cپ9|YE4Ms='{½ z1)Q8+/& َMy\d;q+f.;%#uH͓npo:E⠳>pm6uKKFh-C_q 2:~)<& <ڮ3iiLnnlʀ L$cbYA4%UOEa1͇@q'4]Q"Xf z?«mm+x%=n]iڍ +BlXI{IC3g]mZC1ABSS/;24Zay$ 51 1C> mAGhI[PY+XO1Q"Se="I |cpŜ :@ϨOɤȃK@HC*cmtq]ذ4^BŰ S vV`CAK>bZN`jhg*beZ&N9Z#CHOyjԭv~e:fKҡtVt=Ѿ:= #ˡXf=xwBkBגae65ԖӺAxlE3[w̫e²"ԯ2a&gxﲝHyj@p—9l`,bi_/̲юϸ-P^7"8{so UB0VU,}n t³ qfy ;ݍ15 #z_%%]ܐW;F4<#vTk6Cg魦Ga`1F[Av2A:9rmJ4 4iL?k:+~Z BH ]>*8nW=d ӣݔ˘@%:2ϮP1] CלnyIBƱ'$XGI{Mb*j9+9l:`6`PmGΈZLq*ܙߠ 3aM TqDu%GBvͲ:.JׇݻV||z<2f9"]̉X#c۹7{ yWP+O,}N--BFg褹]@"bq:P tq) 4HU"KwLhc+"̊l?im{?L2uPhf_Od@+m:7Ac[pO{4] e yt1ҿ| UvP3L8gi: N3CLF \2ƪ5LZaD 9hBh".'yAji_dw6:; b2gBVpTd8 ୞L pdꫵ3_:BR_hѷ"q_A@jț>}WzDL X|U ]0WD_n !Fjv{i x_N×хzٰ~a¸ጐS )A6L#Q0$T4$D>nYĦ8"#F,VHb4֤ XGRXpPw| b]?jf?o'lendstream endobj 16668 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16669 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16670 0 obj <> endobj 16671 0 obj <> endobj 16672 0 obj <> endobj 16673 0 obj <> stream q /X1 Do Q q endstream endobj 16674 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16675 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16676 0 obj <> stream HWko6_ŗEQqźkēm(VǬ{Hgk`A3=$u~],a?EHh. f&W<,K7 U뢄=D,:T5T?U}u[MCaCaޯ[1Q/IXI0jujpabK\ݗIS tSmnl_WWi"߿?5up1Ӗ禅~왉]X_o_ ۲P)Jr|QMt!8"Qǐǀ%D0dk"czzWzWzWzׄzׄz7z7z7zO i>%ԧP3B}Y>'P B}/gaZk#Iǐ1`1d} YzZC>p$\c"k} Xk} Yp!PV1`1dJµ>,B}ZIǀEǐE\+ k%Zk#Eǐ1`1d} YzZC>p"\c"Uk} Xk} Yp!PV1`1d*µ>,B}ZEǀEǐE\kZk#Mǐ1`1d} YzZC>p&\c"Մk} Xk} Yp!PV1`1djµ>,B}ZMǀEǐE\ k5Zk#Cǐ1`1d} YEYM_Gkb#8<,xҴ`6?%[Kec5ec~]9MS9t_3^dkn6CsPwS55ŽfX-J8\8rްWe:IybiqU_㈜&_'TXmljzog;Os`F1e졃L[%SeDz{qo__F۪lF>ӣNm7`߶ޔSwn8'g*UojfX YvAgRvk;Y wN!hm._`ra%j)7AܛNs.ce7e~)l~n[)EܖRtrEX3?S5x/QZlv͸s22Uv|*림k*>FDw} +oǪquZc=-M521]:-BnyZ$+ŏӴ}99&U\6|7b= +|\oWa?@^q/`_kVNKͳ ޛl76!0rslB(޳O )ހ4Fa{Pܝq WG;7+ƭ09 œt~ETԒܞgP0?UUdžU;4]SNh?2vdQ*5XL*^Ut: \F[ؓ`@ a~%ؒR86e~֦v7 nؼyI'>8ا\(.f-4N<2;ۜpxZ!|`g/=geSòt}}5|,wmDXK|6Pex+w]=8{{^PQ@n-95VTVL.U/y&)_s)q7c3Wez`[wm=NC}vuf>lyT/d]i!|wZ iy, Bs^%kd4YVn+NˏX_bpf21r^AfG-p7P]-Gs6]%k9:#?oUhd7/WXҐԙ[LT\g\X|)w>7P\Oj(ۻ~M`w.9͈\tUn P;~N0 y7362[vɮR:\_7lS*ϛLo]&~nNqtY8 HS=" ZV|+Ŷ;h U*BlU}5`w?/_rBoejSn˱ʕ^iq7E 7R*冲yʃ7/9S*mn[NseDd<@~Z+۰f/y_u&'B :$SȑND+"i#R&K7UĻF1` N]-KsްKygSFqoi\ v!- )9 zzkݜ\w/{o|y3MPWwwoCLZ5b辿]O2ӓIu4GwU=0`{ (Id(E|H:V^!jnIZx*ab?7f(ʢ͂g:i?t,k^Khvgʟzgc$x]+B&-:N% {.fAgXFa^ݍIOir*R^kiQ)RG)>ՕU79+ ]CH(Wo5 ŗMhkMDO|KѕoB M+x8 ga|0V)ѧIz WOZ,3ϻ3=*!]?ʃ9^mT ?Jsez9b%hFNHٚgQVZ|ܠ9?ǘ y= &vWwy1?6ox]x.ڻf|DZ$aS3ȂMʹ:"0 sGQWUb/d\MnIѶ-S녟"5Bx^Cцl*cQh߉r%ɊW]E3@;MZ b[%*nP$LkZXݡ5cπGԙHֳɸp76_FhzU\p1$湡z6 9C62wڥoZE?T[9/;EX ߞgW4}%^=7-q l ˖PvMm\C؂0]%x Bj)7H\Yqϔhy]6 Íxn۹,Un=bV;vOrjZ߆1wy3" /Vݍ`, &vy>Tǟ:%?*đ ݹg/ g=L^=.%۫@gWu,pQk9H%nO,:I@3FeٌC)ii"`_BD%~ %I83ԠM{\jAƌdfty4pPB}ٲrYdm!^!WY4jv/ Ȏ7~kd=v~A4_IOqX cyI'r" /ծWve~6BL[_`5endstream endobj 16677 0 obj <>/P 368 0 R/Type/Annot/A 42433 0 R/Subtype/Link/Rect[228.334 604.911011 495.665009 619.890991]/Border[0 0 0]/H/N>> endobj 16678 0 obj <>/P 368 0 R/Type/Annot/A 37740 0 R/Subtype/Link/Rect[154.404007 593.932007 431.431 606.093994]/Border[0 0 0]/H/N>> endobj 16679 0 obj <>/P 368 0 R/Type/Annot/A 26931 0 R/Subtype/Link/Rect[129.600006 568.911011 228.100006 583.890991]/Border[0 0 0]/H/N>> endobj 16680 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16681 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16682 0 obj <> stream q /X1 Do Q q endstream endobj 16683 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16684 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16685 0 obj <> stream HWnH|Wf_^Afg`)[]>d)/A,T],6hߚW_Go/~|+.^ƩYiTUڬ0kuDJ.~}YnŪLuOFmir>_j:O|8IASUy$5&Li.iSd[Gͼt3k[5ye<}&F~3zծ{{[}зBӿ&ylfF}W:WPWsu"5}_E2sxѹ$Kc6GFwypo{#[ ½p{'; p_p_p_%p_ %p_ p_ p_ p_ 5p_ 5p_ ½Eg5(-V{h-Lj%sX= cEk h-Lj܋Zh-Lj܋Z 5 ,Z 5#p/Zk@k9X#p/Zk@k9F,^րrlXZKX`rX=Lj%s,@k9F,^ւrXhX`rXh{Z Z˱{Z Z1bcZ1bcEk-h-V{h-Lj%sX= cEkh-Lj܋:Zh-Lj܋:Z u ,Z u#p/Z@k9X#p/Z@k9F,^ցrl#tϱ{ WUH/U[!r@ -*V! UhBZЪV%*U hBZ@ -<2hXZZhiZFh%ro@96k1KhsX@KހslbȽ8`,r1b-{rϱqtY\˂sXRc4-{ r1wȽ 2@Kނs%roA9F#  h[{D-=hZ"c4V-{ r1+Lj%8Fw h;{(D=hZ"cD=%h;{;w w%r@9F/@Kށs^̥Lj%8F@Kީ<;9ir>:t|VY5]%W_rw۪+]yz.6ЅںO߫WN ?#iЮ6}s~,n'>}_̨2L!pփ՗b2`vtdf7O/6^7jjh_ЏV7I/m^KE\WuYuz5-N_bپ8S/דzF&U&UQ[Gw]?N~ pp\35Gp7*Q"}Nx Kg9Y][La\ViO<{348@􈜎,XB-'rBZ*V!JU hBZЪV%jU hB-/<\8861KhiZZheZ"c=q5f -{jZ ՘%@961KhslWc8,eA961KhslWc8,rϱq\YB c=q5f -{jZ ՘%@961KhslWcr ՘%@961KhslWc8,rϱq\YB c=q5f -{jZ ՘%@961k ՘%@96=/vW=\+cuʟ:̝]ת*ӎic2 y1ˮlu]Wmsת\5kͪ3Ͳ'z?O;ܨpGi`i]݄ᠿov>NSd:/S4*~i]>y IէY ,7]= Kb\roO7.waæ;M%4`jWq85,QUYmY b,qy&+*w2{wh'ֱfs8^Î_BҰk&f|pJߡ+느x^ɓDCf+vJ)9BMsqȁWXnSFu ߠ4|A.GEd>/P 720 0 R/Type/Annot/A 44581 0 R/Subtype/Link/Rect[93.600502 390.106995 357.888 409.786987]/Border[0 0 0]/H/N>> endobj 16687 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16688 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16689 0 obj <> stream q /X1 Do Q q endstream endobj 16690 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16691 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16692 0 obj <> stream HW]o6}ׯо)@OI\}v."ӱ ~([&S 2#?W!?~?|7 RT,i+fdzpoi9i&qjhݮ;4{7:=42}J!S6IxjS c/>y]=4]޼go.i!z}ç՟Z/n_CS3?qkR ߬HVsL_Sa?wĪI#.O 96؀#H!x1+eV]X|Ke^e^U^U^U^u^uMMM>'PG B}/E P_FKB}zȳ0mI6Đ1` 1dC YC>r$\b"GkC XkC Yȵpm!PV 1` 1d#Jµ!,B}ZI6ĀE6ĐE\+ ׆k%'pm!+Vb"\bȊՇb!,µ!,B}ZE6ĐE\׆׆kC>r"\b"\b"GUkC Yȵpmpm!PV 1d#*µ!O4CV>ĀE6Đ1dC XkC Yȵpm!PV 1` 1d#jµ!,B}ZM6ĀE6ĐE\ ׆k5C>r&\b"GՄkClµ!X}pm!+VbȊ[f)fO>+LE$8<4m'jқw&ݾjǷn3>O7W*OAG>O7?ϙZ%s[Ɖ83*]颟֬i< þݎ7GGab bjk'-37(T"TTn^a8Փf":vPhj|O3xmڹ[|>ې1Tñ٭涺.LQo٭q%tVkzu:7cb ];G!#mFRFdU3\\3P9tm ZI)ؤW(`[֭'4_00*?TAin`\R-Xݫ|FcJX1o9.WW;u`׻q_G[VL.ǼFТ`,8պG*kNlX0qyHO 7@wl-?@sK~娒LZ͝_їJ%DHa]ȀZg~qƙ[AfkοfG׏;:-XnR SkqAĉ{i56z7̿[Y"Ǿi}5WL Ȱz6L[VVaCWbhuh,C?b8Ǻz̋Daa|Ʀmn^1ܶt{gB P* (N-2{9܈`пyT*}.E fn\.=CF~r D})X#c2ӠmM9+3,9?] A͇1!N~wF5[#Nt\PG . 4cwd ` C:J/Zo%ŞݵP#].e؅= )e*SV{<߶m ޿EcfXb3[$9Y;I:$x;)Δ-dT"jӧMY.uy (!C%Lj TTJSLJ_?޾ts.4#;AnTh-n=ÂPaZ X]paLI‚bA5*rnμ B"\% VS]UWr;#9D5DxtV*la-F˙]ϺofF":K[$et|cjGe^ִoV2滵& UJRL|åp L]wpHUgM3[epD9[~Bj aUd>rw Vю"f "%J4?zG`)ͣ 9ĖCu,utߌMŽ)%KnvZ-.`F4r#U:Cv,ݍŎuv%5{``!XOw: ^_&icݴɁ?ideSad6IcX"8n-O 1hzƆ+hgvꬰkf'sO2Gצ݀Pw.fn fԑKPUi\^?i܌|F?ԇ-cÖG{ crwX%bWJ'["ŒP 5X>u.5?~ Y%cIK! R4+C]0TU;CFeDVѡc_Mnk?ٻ7Z \E^It1uq0t4Km/u׎M{0hEqC&w kݼ=TuFąM ILW/EX}sdLYQ{Ytr<RU$"2 >>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16694 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16695 0 obj <> endobj 16696 0 obj <> endobj 16697 0 obj <> endobj 16698 0 obj <> endobj 16699 0 obj <> endobj 16700 0 obj <> stream q /X1 Do Q q endstream endobj 16701 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16702 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16703 0 obj <> stream HWko۸_2(|JX:UlpӢPlQ׶~$;͢H%RgsMڐ~;>J~lx1\Er"P2O(y;&΋yfO*N?9;M7NI{10'&»dK28L|5ؒԁRlg/G9؝[0`FP/$5"(~Gr)b\LT‹`XٜQl̰sYfX as8;9;^8^8^8%^:%^:^9^9^9CD}>BGQ9#D}׈z׈z>F;eimlqĵ6fXzZ3,Wƀ Q︖#1B;km Xkm̰k9Z3,DZƀ Q︖#1B;km Xkm̰k9Z3,DZ@\kc媷1`!1rۘam Xkm̰kZ3,DZƀ QV 1B;km Xkm̰kZ3,DZƀ QV 1B;kmlIĵ6fXzZ3,Wƀ QV"1B;km Xkm̰k%Z3,DZƀ QV"1B;km Xkm̰k%Z3,DZB\kc媷1`!1rۘa cI(NY&'$=FK.AH0&/v5H~ JRPplM'L<Lv~TЎ {S%Y51]NrV=y"_i=y}y>I7ٴ~5ҡhp[,b6I&fUBC *y&/)}Ny0E3y)- :yLl97nV,X[J4m&ON;<)P_3D+TqVq %V.JP]&laѪ*W7;4[rCB!JO|ɜRνnpUu}g2팏PT=Lz@2Yl`BqjH#Zú5ZkeT1,Ugg!B/?tR،C\ҍDQ X|hQjt@w':A-,Cg!*@ly:(V0[OVyY΃03_bJ(hK8,qz%lw* fl] u^#ICQRjWJtG_sܗt z<I{7?t>:墑~:Jh&͗ǨoPkW87V)múAǬ6k}ct{qPNMgˢ:j>Ӌs(ĩJ.xzIggoH>c4:`Pkf@B ß7f&Rfk3D!w4}ݰ~"p؜k)}'! dt$P)؋tViB7MRSf^Reڤ9k,.e"ˎiBzc{bۮju͑{XqKoB~LKM_f*VBMuͭWhD ]e-Q'(?(|JƽLaKЀh'2jMPS311'v:Zs7_L--9XR)Eb(XKC+W+**֑ĪiZW=pud]",_vn1jorHXٌޠ:y))CY#|b .n'8*}o G~L3}`<]od^ =*.LP7&cEF5k.d@%-/6{tdWw \q;vuj/ٷ8ݐG6.4h:{ۛrh3nN{w6d r.scMalo\(K; uzVk$&&YST>2ƞOvY {JY }ӵ3A8c(q?KHV(2mWa:x JiFLM+e&ntG"_{mx2S`Gl1EMAn\ghZ)_n餬:UdZnhL'R\UƅPˬ뀚Dȇ;`!0F (<T D+Yzʟ6yDh|uƩ2HU +rX`ybM C]} (D( m SPC8@Q߷fS"2웙xx2)Rm%]!Hh?Bxkt6(-8éS={KE+H<s9&HNnV/WE\aG!r PgSG%'8g8j@fC Ts=+T%p|H`)|ʹƒ#!xj)<äyh͏ \? n,Ne9+ #]˜Ů(:+q/[9 N{K`nE#,s$I$\}hqG ޯN"GJ/좧o8^,P{M߻i€d9=́88F˗ԚKEE?+rjkwMV^<†/U< ArH4MdгQl Zo2#7 u]&WbEkdO3um,nNX;f5@0t=e{TNIeFtԩȶUZwLE{>sZ#8ӞF,մnFx |檚b/@Z['ՇztsH0joXn"xoקp**F a@kȄt*(>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16705 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16706 0 obj <> endobj 16707 0 obj <> endobj 16708 0 obj <> stream q /X1 Do Q q endstream endobj 16709 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16710 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16711 0 obj <> stream HWko6.`>jGzE-Eb3=JH;{HJ3uw8syyG5?v0 wɘ!e"xg"Ny8?a$S& njncөylpl_>i =,?% eXBa 4Kv/ M\Oc>O#rWB2)j5MOnsԠowd.<[cuMC.&;/y$ ~_ObBIe2u9)KGr1dùY`Ż8{9{^x^x^x%^z%^zSB}O >%ԧPy3B} >'P{ B}/$ԗPyu.k] YzZCŐw1`u1d=rµ.,BZNŀEŐE\ ׺k9ZZCs-'\b"{k] Xk] Yzϵp!P﹖u.k] YzZCŐw1`u1d= µ.,BZAŀEŐE\+׺kZZCs \b"{k] Xk] Yzϵp!PVu.k] YzZCŐw1`u1d=Jµ.,BZIŀEŐE\+ ׺k%ZZCs$\b"{k] Xk] Yzϵp!PVu.H ׺|.,µ.,_!W_eY0պ =S,?,Yp(ga >EV]G50vRwKy{y8Y5csqY[ͩUAvKɼDi%?zn% G vg\<m4Vn^x%lWA gyqOC:='1&/ڥu 6KZ.cVm|ubg S {ƬOW}U̺W3tUZ_9:U`^Z0^7&AaEAsVt3%byxN \@p)gxh,&]j_gT5]S6j ,u<̒oF7mP&,Kc/`׹ :hju; r($\KrRI޺"m&jFDq昱lPV*gඓ&Pi ϯ ѣdl`pFG]9bnpnDUy`KofԦpL ]+|IH!WVV&N"n8͕f߼/$!IY26z9 ,W&$XqvܡN* !0Y+ F)N8w`N=VDgAxghXDj sP z_F;0n4څB;f*,"h&E- [Xs 3$1zζٽg+LEK|?KmzeʯB< |3nHb)5U27Csю<%,ƲM]'ps9Fj Sn. Ҟ^ߪautƹm5m &DS(aSt:dBk$]{3ͺ Jf&և 5VAXFJͺ2).zPլ\fkZ>֌~ ;܀YPs~+ ԸLM =רNW!OkmDqŤd/umw\O_H"2畘(S8#J඲j6NPS8#5q 'e[GV<EfJQ?SyU*3oJ:L࿡}8 \tF>SoJHN}ybڅ|}ErT $Cl.%L-C亂'͗B׃H 2$XTsH~ILNTڃNN*iCu>q/XQևu#pqXa+&Y-f:C״LɯL˩8:%ohG^whU~un(E!(- c9Ij:~%GK/eSD_##Wbz%nq` d'/ydɣܻ&S{7;C4;]Mn@^Vk"UқBSV*hUe]!@Û" Y3T@ ٍNtavv|?fsr䔗_@9rLUvo}p b/ jA65QK0W$w̆1Pe*"e:J!H!j.И\ T>mIG4Ec=Ƒ>.1np Sܻ!q<_͌NRE6o?ڽ*?>!u}wxF&gvtr>ݟV9US5!z LRkll#ZCӺiaD>Y5&{csW@G rޘ-W!(pmS@ggd P1|S"O 6P L=!7~hhr-E6yi!:IS@`abT"JOJ(Yn$]קdxl^,/O]:\p30+xBuW&ٜqCK^TyY%>7%/a M^QlZ#k.,J[%"?<ۆ(٣%wy T7Wa1osF=MP N}(ٺyg[T=THJ'Er]0Rf|xQؗz2<^Ekjh0vz,zVZXtt 1m7 Ve^*ȗw[6=۽?LQݮ{BTr>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16713 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16714 0 obj <> stream q /X1 Do Q q endstream endobj 16715 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16716 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16717 0 obj <> stream HWko8_At y0Kg)04@RrF.rN;{HϪӧ=|2/^3oUwbVޗ:4ڭ!my/0%3%LUUd7^$\J sO('rN$9Fp1E0dES XVpo{+̽; s{{g>0Ap }.ϙ\p3` }/%s_ K> #s,F-ŖRK1dqZ!{KH-Ő%gBj),=KRK1` ,VH-Ő%gBj),!C ,VH-ŀ%bܳZ!C 2qBj),bRK1dqCwO1` ,NH-Ő%guBj),!C ,NH-ŀ%bܳ:!C R Y{Z'bܳ:![&^H-ŐS XBj),b),!C ,^H-ŀ%bܳz!C R Y{Z/bܳz!Z!KpRR Y{Z/b${KH-ŐS Y}1F29[&Ϧ|ʨmbcUG5]&﫮Vtņ@]W_yW$b÷ffF*&5}$\[0Ph'Lzi z~pCp߼{:BN>",FC_T8p&D(\80*aa?Nn9p3H.{BLaÙ@bl*;F'c/KXsolXM?ԶnqV[WUm6678^n_Ƽ}r(fltuxuU}m2,l6ⷿ_WWl#* Z2&,M]|1jz.> MZCQ8纞톇iDA(r/Uˇt;K7ǝne 5ՈB%PcLoWOfп1g,pbٟsVpꏟf8jAm kuVwm英ị-섷Q ؐp0Õpf ' :O,&,O?'xin7M_?.b4 m=s#9r(c:WP>jObsƎyx>,KMt^:mxuώ*qz6t Ofۙpe.{??}0nBz;Y{cQ` 6HI΋wC6V-W~' 2hf6o/`OxRS1!w'!+ ,-ϴV V`Z3\ʙV!hL U Z%*iEA+2(hE'cQ Y\b2aZF2L ZiYAսbX[),AսbX[),AսbX[),AսbX;),E1` uO1d ZPC uO1d ZPC uO1d ZPC uO1d ZPC uO1d ZPCע-V^{!Kbu-V^{!Kbu-V^{!Kbu-V^{!Kbu-VA{!kQ XBS Y\ ^#Dʾ oϦ .%e"-.OM??9 E 1բINߣVygu1 :nr2aGu>N'mFvy8|f>p{V6]~dηӾU77=9SLSV v]u~\g no?ƫm#~ ^Zûm qlFvkx%է_Y#&YX>ЫRt:C⦭7PRWoEވMdY7EeB ^]|FP0mӑt@ %瓩ʧ ?ßϗ'qpJϧ?% el\$ty&I>v]uU9ʿG-q TszumW6Asݺ S]S6Ş8*ث,b7W Kc„@}jƄ%#.:#<&.ʃcؔmPM/3b;@v2 x!B|)QQc'ӫ78]-gim"gE~ xHo[tNj|շ:+Cdg^r!X bj(uC-Eحv; 8ln7bes_-lQ II1}A{4`}d8KjW0WCb,iͮRlvOc^98)2p$!Oc}Ⱥ?c*v?]m7 Mյ )l8Gr?f!x r`oL2lRٱlstaYja!:]՛Kp.fhJ)N]rG-QZ~>YVO8I쬖j1*4%!`Þ )>%7ll5 3Q_ѽӘXtEݷsKE)^ggXI7?e~!n?zdc瞪p/] læZUfL`l!z;%]TCԻ['s;;>)AA3O%[&#CV2H'G>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16719 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16720 0 obj <> stream q /X1 Do Q q endstream endobj 16721 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16722 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16723 0 obj <> stream HW[o6~d śHE5m-6 fmJr^$SdhQQw9 36 77'!M5^Ob@˘AKyԘƟpЫT-ߚ}Lh}$458M "%0rzeTr}^1&Ln_/TVmq1٣(RK1P)mZ]+܀:ҏCpl%FʽZw_9!$QGڷ)%r's_ 8R4bV@ xӠͺD ݮ8K  WW7ܹC7 `@ \idiasxiw64޹\L'"۩rsd/Dp"C4͂vv cM z\B t*>a:҇T+ hJ1ϦX )5%KϭXִg(l>[e0MX;N*)14R|N3'RѡSd@STžG̓493$yƒ1Dg0yN 3|YEGdvf?3M /n+"U1cgm8?*r1A@|nu$f]w {{q%)OǫٯhC7}endstream endobj 16724 0 obj <>/P 1605 0 R/Type/Annot/A 18850 0 R/Subtype/Link/Rect[130.078995 498.917999 385.806 673.916016]/Border[0 0 0]/H/N>> endobj 16725 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16726 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16727 0 obj <> endobj 16728 0 obj <> stream q /X1 Do Q q endstream endobj 16729 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16730 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16731 0 obj <> stream HWێ6}W ś.@Lbc @mmel#ݙ|V$3!yx9~~}g$t":6J2J:-n4~DS56͹fMG?a+>XCT i\%ioFnDS4!M"f#oQ??nj߽&ݼڱ}B.ҤyFnn`DlF)HB/wgX#-i+%~=qT,:J ,Q_cT)CNI8"Ub YCaXTxK2e^2e^1U^1U^1U^3u^3u0M0M0M>cgQsF}y>gQ_ F}/edi)v$Z!+TO1`1BCVbb\K1d1JƵC>pd\K1`1k%Z!QV2R Yq-ŐŨ\+R Xk),F}Zɸbbk)vZ!+TO1`1BCVbb\K1d1*ƵC>pb\K1`1kZ!QV1R Yq-ŐŨ\R Xk),F}ZŸbbUk)v4Z!+TO1`1BCVbb\K1d1jƵC>pf\K1`1k5Z!QV3R Yq-ŐŨ\R Xk),F}Z͸bbՌk)v Z!+TO1`1BCVLʲq V9a=l'x{ޥIZxE:1`YVsv;/QJȹHx\m!Ҏ")fs=޲z us1iT*۱KojW޻P͔j ػt{q :Wi_UϏcFnqˁt.Esz M9Yɖ[<xq2jw߉UNep+[*X:IQTQTe(5-@^Iynl73Ii qJJ~H+w7?vo+LcrEO#Y٪' Gujݮ>5N4i7S'M`a![TPkR=s_.;sOz3uHi|#giRb.fUaJrhd됃O <ȋ QFppԾ k)ۢ 8-/A&֫뼲E۵vp5 ͫqj^ŭ4ˤ>ui<$`M _h݇7 {lơ>\]bb*C(/߂ \= ЩR0mvG=rU M2͓"穇 LWz>焹|n%Ħj3/?l;z\ Oogr:٦k񸹇M> YZ zJpšdzƱ>kgz+ܹ*{.}[T[;Um!s{ ~| ʕ4BB# !ڍENK|WMnU\fҊVǫwWˎWx L "^IfEt2fO גIsERØ"GN? 8m.kNmI(gm5rFXk[VI .a"-6[$,O3QXa>?^׸,޳דv}ۭ;M I-M2x n@kQĽ_A+ɞ㦈hy4р[169fCC5w}i{0JLL  sڧyxʩ]-É }[ԋf.X%vkG ufT DhWB^M#5鐖"؏,a;PlS"SV#QPm68/*qj/4-NT* La4Q1.y?)rq8xy/, 7egvvr jסPoRşV5cCؖ~`y݀NkR;$K8F1 ˪{UԜn5؉-f:ό@vYBy~/@]  5Z[hR}S{7ݑ@y:_H`|4VÎ* U2Qi߂1DT8׻k[9ȭ pHPG(}& ‚bەk{#v&<ʌ3!g*IIP{_[6}\yw? \mZg/ʹY_]}222oD5'=>pqDާ+VQd}G0-2-\#Y2g?a!tLjW"dՁmFx$A*m[ $|)A.ym#5Dԛ`<%ub֞MB2uJn**Q:'(?=PuV QPæq p=~pA!4C("vv>-.:˗7u-ذe5Vy)ŖGXSFYzZkm*wߢtH34DI\R/!T䛭wVE,=q2pfEH:76/4ѿ=T\VGQ_(\`]P]ӔF".Q%KH`gvUiFPHO;ʓ*p{GJ?(dwٹ6}>?dDzaH'gש `z͔ӶKM07!VÄgqOŶ~w4(` YD/qz<_ Gw]wҥ9jWI%"|/"j\`d%QBo}o6<x5y|u_V:ARjދbjwQ,PJb2ܓܤ%$0Eˣjhk΅$ I.4폿?% jendstream endobj 16732 0 obj <>/P 1030 0 R/Type/Annot/A 34229 0 R/Subtype/Link/Rect[93.6003036 365.628998 252.300003 386.389008]/Border[0 0 0]/H/N>> endobj 16733 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16734 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16735 0 obj <> endobj 16736 0 obj <> stream q /X1 Do Q q endstream endobj 16737 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16738 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16739 0 obj <> stream HW]oܶ}ׯe~Jboч8N)dq`+{V[Ik_;JIE*!p8Yݲ_puqo\BG2̤*%Kb< \~Y['SSO}JO=Po=PyVXHµs,_=ƀEcǘc1,µs,BZIcE\+ b Xk1Xzϵp-PVḇk%Z9s$\1`Řc=Jµs,BZIceḇ|Z9cḇkZ9s"\1`Řc=*µs,BZEc"\1"{Uk1Xzϵp-ƀEcE\ḇkZ&\1c Xk1Xz9c"\1"{Մk1Xzϵp-ƀEcE\ ḇk5Zp-PVŘc=jµZ9s&\1"{Մk1Vp-W1`Řc1XzYk5߬)r-TLC xQزu܅7lufh4|S+O._= m9p~:uU8o\NIzSV/Y/k֪(R]|~~}~Dܯ_9׆SXݺ^<"EԔGgj]9*G, ]UKٶڡݴa+fy2eR\fXN>6ձ )424]>n돕^ߊ〼DUx56ENvźФ4,b*Ϣ.o;1uJ?vWxd .'@њ*Df6p7h,К􇹁}=Rq'<,~a@Xtmxa-qnTعV'H4]]- ٷ~ehVPu^D'T"#!QDy@z&|^h|طmY uO9;SagZ}aYŗS~ŷf( N7Tw44#I;8 ؘ$3 䥟›!6Q6\wFd=¢wى>RzrZG*f&6cNEDɛUپapevC޲n{ummT<~::dP\npȟzM{YIz*_]H풮L0jﻂk{S[)D gӘ3uGV7T]L<+3.b\~lҟrFb|G\|XyO.zeyXgXwE4 ~fU%Z]f$\&8?g҆=Ӯ5r *+ae9􂥖x1*W?avjyl8 n qKO\3V%ѱu1'$屘 6Z)`zpIY']3$"Ca]bf$(U1js:}=t/8Ήr n42J|ybECl:p5̆6nнdayVuo[b_/r o(brbE&KMSvc_dTxCNat:7f+~.B$#)?U C:3*~d'9tN6Vk;>LRr۝A $@{J͏K m \>Ӗ#@\|}2fTx:hK:応ӪĭG٧zaj㳍hz :؏ѧ`ű6&Ӿfמ37pXƍRWYDz4 Ӊ cㅃ۫^#lSْb1/ݞ%e_|N˨L%o#] K8(EW_\F^N<Ky:s85/_St1C7z P@k&R aUrt )ʪZOﰄ{z: )/~v8UJ`n1<=)M]RHOm? Ee}BϲοeCE=ZZ(xl<~a!~A6yt}2}>rrKܦj`h¢J E5zɈG"B3*-eۙvG[wS 8k\p &p :ڰ)7AE 6VIE^[Uo o4 W Fi2̶m;(\.j]f̥ z̴Q W"Q2 AY@!+*ESdRH_kѴKrkbV(%Z9кqNsq v f+8a%G7*2hq6fDRBh*'d[[h$%\wRo p_\HޜQ8o-5P"8#=Oa>0d33q 8L8~4Y-h;Qf?9NDwvD1fH0-Ƿ#g|\x6:R7+@Wf:; D e nbAcM=t5m\ù[_Xkکe:OlApY9-&{)5EsV&>/P 1481 0 R/Type/Annot/A 27559 0 R/Subtype/Link/Rect[192.242004 654.067017 362.511993 664.202026]/Border[0 0 0]/H/N>> endobj 16741 0 obj <>/P 1481 0 R/Type/Annot/A 41202 0 R/Subtype/Link/Rect[229.328995 628.911011 363.82901 643.890991]/Border[0 0 0]/H/N>> endobj 16742 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16743 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16744 0 obj <> endobj 16745 0 obj <> endobj 16746 0 obj <> stream q /X1 Do Q q endstream endobj 16747 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16748 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16749 0 obj <> stream HWn8}WQZ 8 { $@fңV,"pD>"<ͧ_~]mOE &dTDA><泮˱zҷ]UǾچ}|7 yLEXa ?.y\,Xzd?ˌ)/ޗ[^I8,нvv缾ګoM3>< ,C C1-waPȔs|6A]up)|Npx,=!˟ŀŹr0d%ι/ŀ%S/S/ S/ S/ SSSO}BO< >ԧSSO}F<>gSsO}N=zϳ05 \bջ׺|.,_p!PVu1d= µ.,µ.,BZAŐE\+׺׺kZCs \b"\b"{k] Yzϵp5$\bջ׺|.,_p!PVu1d=Jµ.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] Yzϵp5"\bջ׺|.,_p!PVu1d=*µ.,µ.,BZEŐE\׺׺kZCs"\b"\b"{Uk] Yzϵp5ABŐw1`u1d] YE5Mvl*f,eن< @iZ& v+Hb!~ë7Iz{nn>xZ]xkXs~[vk~]/n34(%(UCMGzHp(YPRfX00e+1? ,k)Pdf诶zP/q[վ۪@9[.o퍝m@[ЭǪ*1ZwIݱ-'Tn$b,[yףK^Q7׶0- 0n_ֶ>+ w$2?I=I|40U3̼5lF8U]MY#顮KX>U]>:k6U;lӆS=s@#=N[z!wi; ʼ-WN?mgǮ4np_?bP.ܭ W#8vPa84Vپt?Was;ӊ*v6O͉[:U{G5I!|{ec*Ʀ1Ngn2lni`8 [~h;~gɅݳɗ'竓Z"Ϣ!+a23'24tf Θyl0g PDF׏_HÜAlaΏeM,ٻLxbeLZ_7 ث!{CXp^*e<{d,g"j.NrW'SDiL+ML Z0d6G%Mc4f[Zxڶ{lhJ0J/^* d qRwS8cYNE8kԺM2l~}2Ec_6R:JHSx,Y\OEr%qvNU05c72Zz .YjISټ]^D!F\@f<7giucD,//۩F4شm'IY*: He%Y|sha! a8&&']\bv|La3ZMk[w^>v`LAni k*X:^ ,IR~>S5Weo'4YKKbu؃E:H)(/>s[HHx)r⵰i)K,F m+ ͷ݁B5k^$|` 3ɋO~ 8pOO5qpWn!0cJH1AG,PS 1Cy{p"uZ?.0ήƺ0i>t?&jr3A3bynqmg | 6E1t׶9"̋ʚ\Hyxx4:sxԦ:V\.!^婇VY0ݢMgx?@:Mr#7y"HϾ]R{(v;a,z.L WDmzH_«Gn+[ɏcM9H.Z['G,kdJDJ$?~, srqWIYꁳe9U :ri @p')'/ fe=E[pW8siE*s+MW'c8+to x,Hew7n={/!xND;v9ڗ^ R:2K_ s![!||z~2IXw\_5$ќx/LX\f<]%ea/SdH6[(e,֡W 4j$(|{'-Hމv(14r}>iޣyHD8N%>&Ds@ 7IMWUk|u'm.|x! biɽ wY haa.\[$WxB*67U9 6+%a>ϼuRf 5qn=ۤe\}5Qj-5% JWs~3 U2ff$-C#U)a3}rGQXoaVCU;Oǩ>55//nz|F_076STkÆ˨%m2áϿoI Kl'EjO ӄJrU+IB;^Z94$<8&C]c OR{z^tZ@F$?0$"`8m8WiF; pfжR܌%Xhu7zxʡ/!=ݱ:D*ϑhJ2j<嚑iWcK(V{~J@NR@֚ ,x.1w|![51BMsb `[Y;l:NxRzOEx2nTtD5B3 <$Ћ%z3E-=-bP}?g mwP -].nc^A| [gJ]pXY<-V"tCSBG lˆ9H[ud3#- Ds9%鲄{ wòR714ı\uMm+,zCƨNuotGjLUΚk{A`|PɜP3e}@0v*0PBE,Xj8-̬ O0{VFr EX^EԿ<ItHυnD2sOq="J7v) `W#MiɌfa$f]Aam׫>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16751 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16752 0 obj <> endobj 16753 0 obj <> stream q /X1 Do Q q endstream endobj 16754 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16755 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16756 0 obj <> stream HW]o6}ׯ>ȀC_ؤۢ[lf'XHh캿~/EJCwCQsu|H~˛ߪ@wH2o|7a2M\U sR*NutIFv # In]﫡yдph$7?dwLޮ"#mahORd%Ym^Mߑ7\eiAYvyڭfBjbj}Zcc2Ge,9lfnw_)K}Oneٜi*5wºalHEN.>hrte""aÅYfX aŇ8G9G^D^D^D%^F%^F^E^E^EsD}y@Q_D D}/eDԗzבz<ӆXpĵ!fX3X}V>Ā6 Q# 1BGkC XkC̰k93,D}Z6Ā6 Q# 1BGkC XkC̰k93,D}Z6D 1ÊՇ׆aC̰b!,ĵ!fXȵqm>r@\bB\b\+׆a!# ĵ!,ĵ!fXȵqm>r@\bB\b\+׆a!# ĵ!&qmV>Ā6 +Vb1`! 1BGkC̰k%3,D}Z6 QV" 1`! 1BGkC̰k%3,D}Z6 QV" 6QkC̰b!,ĵ!fX3XZkI2 mvܬAYm80iN\UܦlQvoUu q»+VPi:NϫIFs(jM24Sr>R^0fIp3E" ؟T(X+v? MQ M8xGRME_0 %=ٚ޷Yvi)1SLURdkb6}kۊ}Qf"Sͦ꞉>nJ*3TVϬ۲O駫Lha`}oDkR}PU\~_jp_Bi!PȾvθU@aZ3Ӝ7z9ٞ(p|ԙkO!^s<8w>rķ\LvLnLH0Ȋ'DAnZR g[\2shӗ&23m4~V=\LRIϩP-Chd^o&YF%H6yiᣚ~;9CF?iZBX*"l|pi>>,7rYr2]bۮ'!K{7`[8*W$-Y JGۼ1\NpC,%ey&=xG.RgLrJ!ݯɊ6 Owuw9`ErUp}%Ok]&ݼQklE7\Fyѱe%)3r6_|8f%ԍsS.jo)׌A<&L]QY0AȃT)o|B'xڴa2Fn7*uoJSKr1KS„U0|Ͱ+/Mܟ\Ԟx:3ȢE=EK|= vEBuQwuj8USU炻9p 'Jշl_̏ #ǟC1]&t @:O|kO8@^v(vLqv9Xct).*.GD0PNz(,=oMJxɌF#^_M|ݷ[{؞-zg9l^5m@_qYzk=Mұv&$Bb~8"iH.}oۗR L0J382هN_ܥ<(:5JFIwr+ywT{Z䣷o@gx%`wNN_g&/R'# ѫz?{|VKNj,Yt·c"Zr (˂®k#FxgoQLUX/V՚+/H壔XRz4qMB_3s#ٺ^bKׁJ˦yVi3c5: <EMܴ-"yiFƥ1~s` ^fqYygsv,/ dH|jB<`&ҟy<ߏ:dkeЗ !ԗ>,Ɓ>zfy(=]$ZJn7w.B`uD8cp0{Cg͘$Ė]OY4Da>v˞ h(6 cc_V K\WoWB .Si5=ZF#vhz]Lߞ|{0mF%kv;cB㎡^b)01;Cg/1wAL9f*F*ᐁe:>4/\E ]x:do=b@}֡Ԛ7R'MD"~6#Dܣ)Yea׾ x%T/ДU2FY-+{m~ 0"endstream endobj 16757 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16758 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16759 0 obj <> stream q /X1 Do Q q endstream endobj 16760 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16761 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16762 0 obj <> stream HoFſfpƜhҬ Y,ju! FmhEΕh==nPvs9W\zoQz/&kS_U(έ*rU]$SwQ3\~y/٢Tuڪuj\g&U\$S"SYƋ$uΎ_w6wn36h^zVyW}Ӎ>. &;AoI9dx9]{JjL>ąߩ2uچJHL'IyL愉kq-.+n ϵ -HoEz;ށNw =HEz{>A }HDEE/D/D/D/E/E D 3krmX0\#LϵS5r\#LϵS5rbj-Z Skr-r\ Z kZ0\.0\#H/ւ@z1L-ע L-ҋ`jF.^LS˵Er\2=ע L-%s\2=ע L-ҋu`jF.^LS˵S5rbjZ Sr-r\ Zk:0\.0\#H/ց@z1L-S5r\.0\#L5r\.0\#H/փ@z1L-ע L-ҋ`jF.^LS˵S5rbj=Z Sr-r\ Zkz0\[$L-%s-r\2=ҫy^e{qL"pU%X`y+V X9`傕V.X`UV!X%`UV)X`UUVY6,KF52e,+XD-=׎s`s\%zoAv< k,{ zϵ%X\#`[{N.r\#dq;%z@Fw\ `;{AD=XktD,{z5:|>Kށs%z@F $kt`,{z5:0Kރs%zAF/%zAF/%zAF%zAF%zAF/%zAF/5rID}*:]$xQۤT|׹C"I6kMԫM_ݗ퍾 gSm9Fku6?[LY۫]NFc.h,qn3ժ^7̲rٯ8^.W]q;I]zftId2z&pVMI:,^_m:#a2R/^=kB`M}^_KDBh='Opo؆ng &wvm^<_ye8~&۫Bi5}L{g;rg RX]*]=XkF'^g .VO_ͅR^ 0Ns7]Mˮ۬ 5p}MrqJ%x>uW6A;]]}3N2mv ]7v?(,U`y V X`倕 VX`UVX`U V X`UU VXgLF.Zt2e,+XD-=Xk,{ z5rKނs\%zoAF.\#`;{K]\#`;{ D=Xk,{z5rKށs\%z@F.w\#`{{K]\#`{{ D==Xk,{z5rKރs\%zAF.\#`{K]\#dUže8V5Mʝ\*kL<Ymy[Pҋ]":zA@ *BCXMu<{—/t9}8":8Eo\"{nЖd_k?~i(ȩ)N(@X#W{䏩 f?6[Uץ1*{pClq3p)F;;Sfa諸MTJ3_^#i2gW*ŗ]稡JL:pF%8V6 pt#s?]nF":TiԳu#˦,{sH%d9DsLRBGeĜJ]hU1O}ܦaB.>:39<0:kW.hBGӢ~s њ2.v8iwntYm+miU$DMys A`'w(s^BEf{]V $#*LroMA/eQ&8NJ!|+ɄmX}B*$P+Eb RgQNc4:'8_6i7.<~Df4;;tp>/P 873 0 R/Type/Annot/A 19045 0 R/Subtype/Link/Rect[93.6004028 169.927002 239.496994 189.606995]/Border[0 0 0]/H/N>> endobj 16764 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16765 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16766 0 obj <> endobj 16767 0 obj <> endobj 16768 0 obj <> endobj 16769 0 obj <> stream q /X1 Do Q q endstream endobj 16770 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16771 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16772 0 obj <> stream HWmo8_bۢ5{hq[4ҢPdVז|\p~C8]㇜%ا`y3}>'`{ }/f9!ZP-E g}>@>"{jϠjZZ3(ZA `V>@>"{jϠjZZ3(ZA `Vž} bAPjϠ|gP>{Z3(ZI `V>@>"{jϠj%ZZ3(ZI `V>@>"{jϠj%Z Z3(=P- g}"T}ET>"{MbbA=&jϠjB(BgP{O Z3(ڄP-P-SmB `6!T}@>cbAϠ|ETEb73}fܬg8[=<_4-j܇յ,d8lt_VmˮQC]`ͧlSx_6X>͈*D9OP_! 3Mf(![yX7(aoV+WBp\nimoK'RiVCwj8bȢl0ʓ<\m6fdZ`4.:~רCeS(eJՔrKg_A4Qҽkm_M*6\eLx,2ue^^a]EAwmQVms_&O5{f?883 yRӴGQWue>@꿂 wERЊRa{YGeoЪ7M;&$TQ$SuQB'N- *KF֋Xc4ñ3r$-F۹yj\ngF"5:ئ<{.TP'{u:TS$46w>l@Dzr=/cY7Κ5-]m[kuc4Si pi4Zr7hh쵵ҁO4\ y!A}ΡQ;6+ꏍNeUL'Q´W|Зo0}:/_A99 Z6Cn 訴ضyMG1Oof( <2 XmN9>z+'WjF+j-jbw'|o2l۬K';3 3fjIuJP\)j9r=)t7ԸI*|5޵heb k$2ӛ= pfX!ϻ<p@C vqWRP:l'$Vt6ϐh[Ow4f`lXo`Krrbv68Nw[Kۘ4f. UN4/װ../gxk1 %564lGkn]tS(b"x<(cbHArz& {xȢ4&Ok 2 e:O ! lr~0ʜH, GVX;9!C^8XgY 'ATY$f<Em zlѺ xO{^ S'v0`\Tâ;ZL+זbBJ_b/PT?vfO+Ix]7* :N04Dr*&\qM 5N-\U2|bͳaTmb_2dND'Cz?AzP rZ*v?HR4 [М/3 b1j1F-CX=>vh¦|ZI`)} a1j – ~ zz\FDx8ʴfSHK ǰ0ΊR:KEQwO g9]͵}LtPB:;uk|l zynf@{V$Zl{Xf1c;ϛ! G]? 87*Ç5Lm 驆a?T~{v}[\tmL T11pͭ ,t&%SѨX뽟K 8pI3J><'[_wܒH fx=~6 t'!cycJmG'9`"j3$RV-R~pn J}㳙 F^7D*6?3b*i;ޟV!q )2.Eb ooQ,,mo3%{ݱ}ak1c5"r1烥B^;uG ZbkNwer։4 |W#eb\\1t#nrac9&sD*^ iZ">{S^-~7lkx ,r4&ɉU`Ԓց2]2x!Z|ov;E:;U52,UcWլEC,oxpZǢʘ"G}n/.JݝhB$,CWU$F ĐT,ÿ&ք2ݧ?Vϐendstream endobj 16773 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16774 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16775 0 obj <> endobj 16776 0 obj <> endobj 16777 0 obj <> stream q /X1 Do Q q endstream endobj 16778 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16779 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16780 0 obj <> stream HWkoܶ_2|')4Mp K]]]_"%ur!y83>۞׌~<3:fTY.YHlpvְ_v]ͽ=ݶimml$g\JvK^-C2IpV d/٢M>v7݆JSaDFgUYO{|%iXjLuY$<i]_Igao;+g+T*Ϥx~ۤ*urTsS!*"a̱0,!b,]X<ƀ% 2R/ 2R*R*R*R :R :Ro&Ro&Ro&RH}N#"R_H}I/#%W*R_# ´kIcḇbsX=ƀEcE\+ ḇk%Zp-PVŘc#JµZ9>r$\1"Gk1,µs,B}ZIcE\+ bMZ9Vc"\1NJc̱bZ9>r"\1"GUk1,µs,B}ZEcE\b Xk1Xȵp-PVḇkZ9>r"\6фk1Xzp-+V1NJc Xk1Xȵp-PVḇk5Z9>r&\1`Řc#jµs,B}ZMc"\1"GՄk1Xȵp-Řc1,µsX=HP1dEC6eZhFM{uzpe(oe^uf韖M}ék2 Ӛ\d@aMtlѼh-!+?IyA,-l(yi DĂS$7#˕6s3꡾W]=2X]6eer9$7 ?Ԁ~9n ϔ۰nfKSB=̃_wzlIː5$`umw!CG|t[ߏcͺ?m6q=>~ ,zİCA{GuJN=q`p}WM;v=P#t!"ү7!#t[ontnP/F|ص/S UASPnʡ|YC1O|[nIѦn'S桩9B2ݬsz*lZTa*z-.<[׽:>W}(腨{؄DCrhMLV*u}CvzE۾Y6C֎7ΊL oF30o_]A*m6]Te2D.C)*pR `!݁ KZdkS/ݲ_?vdԼʲkY?7mm>xny"_rQP[ mew|zs C x?¹7$}.ƒo.|걫2ϝs*oJIFj۩ͅ&Bi5Kr?4(s'"wۧMN-;,iFUك4T ?v{zW?ߓ Y^ȃ-tJ-Wa24BfmoGs{*Q͋5wK^Ez93|ӨƧP5|*5ڼuDEy\UVwHڸ*B6ss~z,.ze 잚S}B7>X 8q6o*—1rxe'W~%9oqH U"(ewoQFZ[*@{nOʱtIEU'!a Nش3oSL,7y4=jk<,}=_K(\˲('|P1Eהbv2SD11wż:eQ] qUR)  ^NPrzs&{To!o/+Yg__@~?[hYP֚ޑ饆T1 1_,L1Om6n8 Xu] C|uXL_7o\:ڢ}Kw^gwФ2;_ay_GWޭ\WArxgso,f^u-=^O˝pc@0MSA/wb OrƭP" _J3vSh1\Ku؀:_rY#4 ݕy^(NvBQPHzq.^"B6KZۄ;ЧnnH 䙯% ks Ә`$X2V\+R>Q箩U`[{.Դ!MWuR|RsBpKdfim1SK yab( kĢ*r5g`%5}w !Ka[wJGmnJV15gôkXL}0eړ|m+]&nkmɆ-c^z6W­K7F9lv:?GU2\^/O4ޖ9G$Os\)XXC֍Z)$AɍD@f1lP:% 6ݪ(Pbq)`m=a-nK<=/Zip=$qš$ء vAZE+Oγ>/P 1183 0 R/Type/Annot/A 37556 0 R/Subtype/Link/Rect[129.600998 503.231995 293.641998 522.911987]/Border[0 0 0]/H/N>> endobj 16782 0 obj <>/P 1183 0 R/Type/Annot/A 18148 0 R/Subtype/Link/Rect[129.600998 342.230988 359.522003 361.911011]/Border[0 0 0]/H/N>> endobj 16783 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16784 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16785 0 obj <> stream q /X1 Do Q q endstream endobj 16786 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16787 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16788 0 obj <> stream HlnFS, Z^x&;n.چ@ X0DA޽{hˊ١<(gm_\Ss2>1AǯtInu$]VN]k5sY7mYm=m&>X}שJM*skJxHSiԏO1cU͗llvY:ڱ)Gp,!r{Ri3>3>s>s>   KKHDҋ0ZmQ2="V5dz%s-R`\# `\# `\X-׈j-X-׈j-X-"V5@zZ V5@zZ V˵Hr(^ւr(^ւrmX-׈)Z%s(kQ XQ XZjFH/VjFH/Vj)Zҋ:Zҋ:ZE kDbkDbkjFLϵHr(kD\X-׈j=X-׈j=X-"V5@zZV5@zZV˵Hr(^փr(^փr-R`\# `\# `\ۨ kD\X-׈FLiFUjRUF]Tx!u^F~sԋqc}%l.mmmVݩ~i޷uS=o]gqO܋^L0]בO #G? "ף S߿䗥!q&}}1_MSt s)<: e=ꕞ_vMJEщ?u}^n#ҜN_ŗ(+>{ć1NI%Yt'_eIytԋEQҋkQ+$!4~b?Ԥ2V]T9ȥK> _]gtccSgW].vlQn;fUn1[nMuI:WhG=endstream endobj 16789 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16790 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16791 0 obj <> endobj 16792 0 obj <> stream q /X1 Do Q q endstream endobj 16793 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16794 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16795 0 obj <> stream HWmo_EA.z_\!R4 Z,8!)q9;ALr3^6\ )^xy*3R6V 8"MLؖ'DtrY4fVV3_?jq[G/T}5Ba'aS}Oi>eاa3}y>gUhmiFԆ=Q-!*dOm SRj5ZjC>PfTKmbTKmbՌj Q @Q-Q-!aV36D1jF(FԆ(}ZͨŰTR*2j Q!{jZjCTȞ6@16D1FԆ(}ZèŨŰTkRj ZjZjC>PaTKmb5j Pj Q @Q-!a0UdRB(FԆ=!*dOmbTKmbj Q @Q-Q-!a26D1ZF(FԆ(}Z˨ŰTkRRj-ZjC>PeTKm16D Pj Q!{jCT>Z<,~X]oL7U?Xw3q~*vO uNOߣ&E-[G'<Gܻ$ҭD~,289,6 rp`Q#Щpz> i+3  2KGQ4'aaqo,H!lchKR3p$H`2ee}sEX(tĥ XbM`GePx66WneqNlWj^.IRtf]\||C!4CMrdN $UvvI, 5ۛm ea Wu.`- _0m(jP}T8:}9c$q|/X%][a8o4vShzg+w-x/ʾ_Ҍae<28yk@户pW-/YtC͢hEѣ4:Qq eq˲f]716\Tq+B0heS$>?/-E}eDф}fACyp½;C*DϕtPެϯ؎7 u>ݪ\7uYN}>ܤқprR6Vc4em̭Xw_x^,w&ƃΫח>](2NmjIF'T4`l2NRg R }ԦTFB_,{cRnֳxђQk+33՗9MӁ|tWJ.%sST 8դ F'+9I{dכ+f}ma O)&$5ƹQgݑ^? 4NhQa' rRK+HʨՈUp$ʶ('-l_Lɲ#ɰxO )Xbݿ]ˮnm>[آX]r;8 f~\ []s=" ؟1㍇Ppg?=jSH3z+jsOi2y}}t∁tO@٭s9ٔ޷Y.7~X]oL,un Gl.p:8l ?jکUU]?USwoy,#EWa{s۽4LJK G PnfeSYꦧWaG*+b8~ | :@yOڹirukBT nrG@Y*\FF/U6D>zK[rB$"f@I`fT{i=^W*BYqq MGxx%G"WJz(rk;9 ,m{M fsq}[.1:1ٷXX* "h*i9wB!(ś>/S_gHe[r 730C?'<8=VO -~i`H!Kd#5\+NZu؉3ԧ.}a9]tw;HZqrXw-|L{x5:ʕT&yeP``>+4̅ 5ttg)]R'9Hy]JHKE @:t?tٍ:Tm:,-BTà 2u8C,Z*4dQWU Q$hF(ƺk8ykl^,8"ك/m_W鯌ׇd޼JJJ%( DQ%A=k' |-8^RϬwUDݩR~[ L\Mr1yWejR=ꈐqh!rQ؝J@\& ?襽7.FK; &>b?wAendstream endobj 16796 0 obj <>/P 548 0 R/Type/Annot/A 43181 0 R/Subtype/Link/Rect[93.6001968 566.729004 378.432007 586.408997]/Border[0 0 0]/H/N>> endobj 16797 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16798 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16799 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16800 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16801 0 obj <> endobj 16802 0 obj <> endobj 16803 0 obj <> endobj 16804 0 obj <> stream q /X1 Do Q q endstream endobj 16805 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16806 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16807 0 obj <> stream HWmo6_42$E5 ؐ!YflIrlV6x_o>%iOc"Oy" 3Â&Z|ME$)YFwA ]]%] Mvzq&$K gI&R̓a(Y±i c\`gVC3"ں*%vsH,y}|GqDH#^|M /S_HDlHwΑoR ,,;KQ75q!"H8bd) 3tN"Cx3I'2HoOP6A,Kq *!HP$L#_]c$һ.(k9X(cjɱ)֑>8r-x<6&S ׽ҝjUW6ͫ۞z-=qg.};ͅ]dK (ftلΌ

Q,Y,Y}E vQ+{p 29d䴧C֮l>kBiś# YŮaH"$$M vF0^">Y.nUQ #֍꼢Rtx8n{G7v9l:E Cj.rj?m7kC{G&̮}U\\PL)RRhMd- m FhP)+' U;A1"Dj)[b\‡iwc)ҜHT5Zu3^rLy]]2P:FF-XS5ܨ*|E;j0ɓ_KTe̲aרc z}S[`8nnsh0XxMsI{9<@:uMzbMBx [r{W߈uqL\-3ׄ>.=iiGp!Pds`uMz0Gw;o^jY {'y礝(1!Yv.̜ wZ[jƫ, aʸ9[5赸 L.b4Gp:F7/<Ysb>ubg?p=l rMgѫفGh_ogteVF7R3z/*.$Yb9I[]Ǹ'#P\%cq1a}@T44sy$b݅RvsAp|?dVj}S9,O W&O=$jv>Wn/<=F5'f \0)"l%a508>'Sۑ)NB98'ˌG^]*ca/<"ْ^>n*i 9E.C>0omOIooUGEm^RBc?| A 8gSZ e i?],`: endstream endobj 16808 0 obj <>/P 1480 0 R/Type/Annot/A 37826 0 R/Subtype/Link/Rect[130.078995 498.917999 409.764008 673.916016]/Border[0 0 0]/H/N>> endobj 16809 0 obj <>/P 1480 0 R/Type/Annot/A 28514 0 R/Subtype/Link/Rect[93.5998001 416.627991 199.354996 436.308014]/Border[0 0 0]/H/N>> endobj 16810 0 obj <>/P 1480 0 R/Type/Annot/A 28494 0 R/Subtype/Link/Rect[93.5998993 212.628006 308.722992 232.307999]/Border[0 0 0]/H/N>> endobj 16811 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16812 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16813 0 obj <> endobj 16814 0 obj <> stream q /X1 Do Q q endstream endobj 16815 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16816 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16817 0 obj <> stream HWoS"/>Pjj#q\ |$wD4II|Ik)qڪ/ʤRH^RI2m)E.2?YR)%d:AXd8F,c$a{7F,po{ [Nwp{{^}p>3>3>s>s>s KEg (-ǖXdI#h-"KXdI#h-" ,^ւrX,^ւr,{Z Z1br,{Z Z˱Ek-h-LjZ˱Ek-h-" [&c%sX,c%sX,^ցr,{ZZ1br,{ZZ˱Ekh-LjZ˱Ekh-" u#h-" u,^ցrlxZEt1br,{Et1br,{ZZ˱Ek=h-LjZ˱Ek=h-" #h-" ,^փrX,^փr,{ZZ˱e@k9Y=LjZ˱Ȓ9Y}˲*n49K^'SVMʤ=."3e.ɻJ=O_%)#ƚvXNf=2Ť5݈}uj[]'ө|&pi &7UW5ױF; ՛Y^ܵ"Ss:a;Oelt:vjcuܠO '=ޭgmW/+DK[=*H,vs^8ql˕8P<-؊8_Sez'[^>/:Uv<6E8jkzU-=03%NWӏ\ ʫ/*!+-3n3 KcU@ - @+ʀV&2 hB+Z*V! UhBZ%ײXdI--# 2B-+, ,%roA9Y@Kނs,ȽXd-{ rϱZ"cD-=" h;{E@9Y@Kށs,ȽXd-{rϱZ"cD=" h;{Ew ,%r@9Y@Kރs,LjrϱZ"cD==" h{{E ,%rA9Y@Kރs,ȽXd-{rϱZ"c%8F,{E*5g-b6{(B*@o,տ n拻J=^wmۧ-p@(]|`mV_X]GV`jQMEޏ~襁QY~2v<\Pw]W~٩rߣ6Յ+קu7uSwWROo9ۋ__??|INj/yU_IO7q8$/߃σVl>̺#0.x˼g`A8B=-~F.vz7߾9{S,hx7Zڸ^UT{8l- +!?oYƝ pSuv{1u7-1ESt;,j3cEBjE9 c+@ڏ)hѨ D+1pƋgGOqUMq^Wy^GNj#ua*KT.m3_~I:Oh.T'jߐݗ?]Шfmrj#S]q5}ݡf|oO_O;4II+0gC?_.fA/EV XB-/ye\}2ʸd qIt(7P%g=o[P{@tM2.>ye\}6ʸl qIt(7P%g=oKϦ{@t_LRoAye\}1ʸb qIt(7P%=oK/{@t_L2.龘ye\t(u7PZk9?m?۷ij~=NsTq!Ӎrz?l7Mxtj4_,..Wtv}w 4nYM㮹:8Az?Oߝk7_.pC^<7oYendstream endobj 16818 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16819 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16820 0 obj <> endobj 16821 0 obj <> stream q /X1 Do Q q endstream endobj 16822 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16823 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16824 0 obj <> stream HWmo6_ (D( 5"6vm6Yrb ɡL‡pf8oM_珿<,^܃XIIkի]OzϢ<]#^#zm\/ɟ#ry!Bۆvra$bhdbڭvpm2ums/=Nu穿4  4eYfM\{v I Nh) 8bk K8kPݮ,ab*/2+^{_ M# ?+It =rܫQ7;aUwrmm7w,$1wW4ջF5@|ݪ|lvoC[mds!)O%oʳ9F0 1Qpr<[Mf)XWVzo층w/ZUauVB۩WWxj@{9_DA}ړ0> :59sbW1$[2XXf] @!J 㗗Goi}QE&*t>_T*ASH`z74Ei486J,FDTj<3ҩG dk+ ҍemEՕbϫ~4Ke$#^Mӻ d*z'ޯ҄Ag,slΩrn;:;)QF<n7d@p LU)t(gmwOqkrS `U-X!l$ } .ރͬBPV8 5>`ڇW40rh\'C# Vh.Ѡm ]_I"@ 8JquaH¡0A9tpmˡ)Hi@`BDRb" {j[~$2 H9 YB'dxީe)N܅/tB,fWدΡ863|W_g MKJMb*lYfyY~~l.9aDžY GOφ,ku?{Ȁʧf D7Ӣ;@ E{%Cf$ ˜: jc0 rdɷ(S\ عA?|YG`& c[VVk;&&mT5ٮ:R$;m I H$!u莲uJuK P9:ѵVuC[Mi20cuWOx= "|~sSU8tt[afx=.SXkn%܄FL䞊oO_#$hNf ߳(Tkq;>M-rep/i'^alCq3;e5Xz4q0 g`_̵Hn }YTJ[Bk^8 ^cN0",`nQ5AX|Fp8\(rxQb-换tVʑ`.Ss͛{ U?.`endstream endobj 16825 0 obj <>/P 366 0 R/Type/Annot/A 29068 0 R/Subtype/Link/Rect[129.600006 539.504028 497.779999 564.392029]/Border[0 0 0]/H/N>> endobj 16826 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16827 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16828 0 obj <> stream q /X1 Do Q q endstream endobj 16829 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16830 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16831 0 obj <> stream Hَ6h!/$h U%n琢Tyj&0%xȟ~ w_޾I΢Yʢ AVapIXw]U#Ǿ*þ ?~i=y! @@8oY&x}XumxMU$b9?Iَ}юůS?0f*ۦK4Z#wo}CT)߲} XDאo{5a X D @$FhH<S*?!ʉ)U\vB|x7*S"ԣg=B>>S>S>3>3>3>s>s>B/Z7TZ֍)B﹖"ucB\Ɣ \K׺1B=Rĵn TkݘR!k)Z7TZ֍ qS*s-E\Ɣ \K׺&`kݘRn TkݘRnL|z7*ĵnLzϵ qS*s-C\@֍)B﹖!ucJ{ek׺1B=2ĵnLzϵ qZ7TZ֍)B﹖!ucM׺1׺1ݘRn TkݘR!k9Z7TZ֍ qS*s-G\Ɣ \׺1P!ucJ{kݘR!k9Z7*ĵnLzϵqS*s-G\ƚ A\ƔʧwcB\ƔʧwcJ Wir;T"B0co~OCAyHX0MDo]cxSywǢ,0k eڢB5h2Z[=xzQ|㥨7/ !(MwJ04n@aC~vfemvKzDo~jfRhTt^u нXzup z9N)VE7A;S 1vcyj 3rpv*\v/m4Jxr8ݫD,u7ԇ1/m-cuo`F{O}]~43}esK/N&ň,L *.g߶;\gڨ]|3_ڡGjsl~Š.j6>@$+Cq$K\M<׫$nc1 aթ(ǪC8qcX5FNI W!XȲk<1 }7]g35ۢsjY'l:2Zm`X@5%S|hNk>ReuERVjհj#i'W|O!s qDԅ ;eSdm /(5 FN7ri of3̪Z/V-PP)fJbSpc@VUuǪZTXej3,sXx:FA)zd"jbylYE⾙y)ҷ!/^js>#/\ s\"KEU-RN%bnUKdU.+~D<2+xe,ieH∫jtۂ8bMv$}{F5fVSdXu GcG8}'<6# CBE1$Ikj@y3׫ް[` fZvmGY -i-j;:E&;Kw oL?ay0'ʾ͛-F((5kQl{mNr@oZTgPݖ6L>&6{_3ey@z߆j \Usƺ(@^˩49$U!/hq˽+CΘ5t,+^Og¿v`rުZ 6 A. s~1h m)TK!&Q!d;,E#j@7~CpJhRoZɬozIiۺg:8 |_?_T&K!?{xr}sOnvendstream endobj 16832 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16833 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16834 0 obj <> endobj 16835 0 obj <> endobj 16836 0 obj <> endobj 16837 0 obj <> stream q /X1 Do Q q endstream endobj 16838 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16839 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16840 0 obj <> stream HWn8}WQZ H2 bӋ ܦmetHjw_U"VX,GCXH]&OWo_ K?uw$4%fix&Y)J6뢄G,i~2LCgC]^1zvb&IXJIvm1~oSwLX\^|ڽYZ*SSD$CV8KaJ ]PKe^e^U^U^U^u^u>%ԧPSB}Y>#gPsB} y P_KB}/ gaZk#Iǐ1`1d} YzZC>p$\c"k} Xk} Yp!PV1`1dJµ>,B}ZIǀEǐE\+ k%Zk#Eǐ1`1d} YzZC>p"\c"Uk} Xk} Yp!PV1`1d*µ>,B}ZEǀEǐE\kZk#Mǐ1`1d} YzZC>p&\c"Մk} Xk} Yp!PV1`1djµ>,B}ZMǀEǐE\ k5Zkp!+Tc"\c B%/Rm6zvbb=L|eYvm_K.v_ce#b%>i ~Lz͆+ZS`DvBC0fSt9]fTۗ~~Pٺ*Η>|9 Wݍԇʉ;k%SѶ0D֩ M8!=@xd[4OV6nCsUѽh5+Nk~Kpyd|SvZ_f.TPᲾTCZQ?yc1CnJ Om'm)Z?st3Cpt"^bC̷yf]EQ39 9j/CUb?w np7CyI"-kѾ˴sj6m8771;z;;4k鈴ڞstsߘI2 P?"~ȼ9(秱c̦ U6ŖLzT|+؞r6XkۃV"|rϛeHlVNac @f/ؘ~#7꽽:ꖡOmr]g 2[Nۡ ʮ?zyC+AQ57'^F3uyHg*2 *SJ^p8"i6AaR̄Va0zV0Β4)Ėv8q 8a|qѲ2u^Hd߇l(+oYW*S/JeVUadRѩTBO`-C!w4|q,owԚ;2%v7HmĎ6dť뗡0)ٞ^|=D`|Ú5N bv$7МэSl^ PV8 /E_M/?Inv:r^6=n0ϯq -]ho{(0@ c4f N/eS6E=RII"秎@f!"?|-?#^7o3)E nit(|y aǻ}|g51- }fd2 [FLh<š|S: ~ɖJzWflCQ>B#eř *HkniIHq0d3~FC_Z9^bsyyfr j^<ɜ]TwsSmPgZP *J*@k5VPTT4Q18I%N%+u,>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16842 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16843 0 obj <> endobj 16844 0 obj <> stream q /X1 Do Q q endstream endobj 16845 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16846 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16847 0 obj <> stream HnF _I_ 6 " V]Rtw6ekf-O94=Pxj7Bׯߜ$&I|7NԈ,Vob(qhQdvV-ˮRn碭s#7q }iU`%T.&89]^ Xݖy ~']Z(E1t&vz.N{jFm_pyܺ:[vr9yJBخK{h9o@mb {X3|?)IOYgl'X&I g ()HyZSye{C coe-%1;{{b{O=c}ا>eSb1g}Fs>'9cb{Y͔gMb,Rg@1Y="EqZE'5Lkq)ƞ0PLkq)ƞ0Y{Zôg@1Y{ZôgbIk ZŴgbIk ZE'5Lkq$i-"EqZE,Rg@1Y{Z˴gbIk-ZŴgbIk-ZE'LkqZE'Lkq)ƞ2PLkq)ƞ2Y{Z˴gM,Rg@1Y="EqZE'uLkq)ƞ1PLkq)ƞ1Y{ZǴg@1Y{ZǴgbIkZŴgbIkZE'uLkq$i-"EqZE,R> >:o"ZWIW'H3%(d򥼬VIys1}9->c`.&S&O].COJfZ0*9[z%@S;̝cj*r)]vV˲[Rlmrc[ vc[>zMٔו(W Vm; t^g2 u`,f@fs}1WN([qxtGBJy1e^{`Yú)rx_b3an6]vqrxM*ÃbgH 闷ggk7XgPVy =EZoM?Fb_R/7;3]6 6&3yߙA3謕}4C R!tHg568i3w}mfdr]ӾO+cjO5NѴ>wVCnc=}VU+nv+70zui[6 Jvkۮ4dAf7ĤAvGR\a%,b`a>,F2KQYp*O*>0:}y;Zp}'ovѿ5,ルRNv{LM5j#Wভm}; cԦ;c|Z$O_EKqendstream endobj 16848 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16849 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16850 0 obj <> endobj 16851 0 obj <> stream q /X1 Do Q q endstream endobj 16852 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16853 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16854 0 obj <> stream HWn8}WQlYb0@`A`,n%-ioD] ˇbbS~CM#`2fy2TSTĊ{'l$|XXg+꧹iwMp_.x 7Yy rpyÚNpSR0Ufmӛ3@8bEmi.*nں>4U y"֚/n ,n'25?n[ְ?5dI $c" u#.;ȕ}L`X"kkkgc3}N=9,#Dumٻ6@umٻ6D]պ6D=rB Q{OPkZ׆(ZNֵ!`節um"TET պ6D=rB Pj]j9Z׆(ZNֵՁ Twm"Twmٻ6@um"{j]jZ(B Q{OPkCS TEֵ!`Vum"{j]պ6D= B Q{OPkIֵ!gEֵ!gwm"TET+ պ6D=JB Pj]j%Z׆(ZIֵPkCS$TET+ պ6@um"{j]j%ZVPkC޵PkC޵!gy0Vòo *Cn v0iyߚb ! (ž3pA?/dJ%p/wSFby%^yQ]<{arJL36όQW$j~w oX+,~(wJIemsqϛo9,zĉ[IgV{Cf %4f }c0<0q^y$q`*(n+Qpy&ٴ"90Bʼn\Ah~|wgd]& oxְ_" j5moGpes'ڲgjht5v[#e|l9TB3B<ڧ{epn}_(1e1䥀E^z^x8mNТ\lJ(ɳb*ζz8<:~lk)O /.τz":PЋdpY\C[? 4G ?^n"OGZz`\u 12<ӪjjYWR`2:c١i a :73zsZ;|>V/UK(Mtgn\ljZo&[z5uޘ0RA{J@TJhSL)<3)PW~uZ^7vI;k(C+3IpXJX~,..䲤5^w*ý) CZt7ms$i cvu8rk.` N5Xڡ(hy4#W2ٌ@c[X}oW;/~:%z=V^8CxJ``HLe⨄;}wȔJ3}|uJxjhv'|qeCd~T˟'fx-pхo/{5U9]jdޮXthʾjkm.14(bҭ3hu,r~F#qu>-E>Z 2X 5zKӥY46V0EF`(m$z G'")R;A`Ev1sCfȖײ]W$ES6dRf>XUXM0~> ȹCF&j[GRY܀Z c DS;&+$,A=J3~eɔd,ƙukLg?haӿ6_umמDTs]ԌbtˑB1͕ͫmŇڗ(J$tSQP9.$mBs%1ʓ 䋏3,z_ҵɶäd2Env \ĺCs3bR+3N*bb\0'aN&";A"'"}R1~~{"rj/)'oNd`js_l_KyyYT<4"ۭf•fc}YAN&Ou|]^!&=buK"sj鿪P`1kd"3Evqbd޺Cii *=w7 wmLf֐`M$&QJ4<8ˈxOc8i2|~KV] v:9.42x\\"v9Uf*+j')W<_{cYj1~fLU<"/hz$hsK%Cg#Mͽou^÷zG2̡onL6f͸Px. p G_I:?/v>mړ/w%,vs9۰'١ [X9`qz9-J` PsSpN:h5O`Nd@:k %(r4ft':<;oyfM3"!%;?W#ht+ [mvد@װ{w\endstream endobj 16855 0 obj <>/P 1180 0 R/Type/Annot/A 37578 0 R/Subtype/Link/Rect[129.602005 405.229004 297.312988 424.908997]/Border[0 0 0]/H/N>> endobj 16856 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16857 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16858 0 obj <> endobj 16859 0 obj <> endobj 16860 0 obj <> stream q /X1 Do Q q endstream endobj 16861 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16862 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 16863 0 obj <> stream H4;0=+ %B0EBi:$@@YFgqy DG&Ŭa=Bk]vz_4uS$!1e6/3n'OA,endstream endobj 16864 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16865 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16866 0 obj <> endobj 16867 0 obj <> endobj 16868 0 obj <> stream q /X1 Do Q q endstream endobj 16869 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16870 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 16871 0 obj <> stream H4;0=+ %B0EBi:$@@YFgqy DG&Ŭa=Bk]vz_4uS$!1e6/3n'OA,endstream endobj 16872 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16873 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16874 0 obj <> endobj 16875 0 obj <> stream q /X1 Do Q q endstream endobj 16876 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16877 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16878 0 obj <> stream HW]| /r~>A, (>H6>R[NplmM8S5$oQ{oo?_Fu)85*KmѿT%[U۲o~omovuo*o_?YFK*먀$Ph,r-s7]Ҵ>=N˧?-rn^,vmx&I\8-v,nǾu8MXhg5QOJ'7 ƃP]Td6r )G'(,~9Kk"޵),#7̽ -so{;c1^p{/̽{>ܧ}*OLp1>c3}9s_ ܳjEFh-ŐS XBk),b),CFh-ŀ%bܳCR Y{Z#bܳZ!KpZkR Y{Z#b {Kh-ŐS Y=ŀ%bܳZC R Y{Z+bܳZZ!KpZkR Y{Z+bZK1d YkZ!KpZkRl9CwO1` {!R Y{Z'bܳ:Z!KpZR Y{Z'bZK1d YkZ!KpZR XBk),=kZK1d YkZ"/b),CwO1dqE\S 7V2].j@P*ylr-ԴիCjxf!i{Mzl]{__^LzԟqR>Mc 1Mut]k$-tFot7j?zwYV}WZ}ۋ/ˏ[^l&x 6>MK ]v6֪۫z?xW:,ph ?zms{t_][bX3|lj09I&JIjâ'YmZI.׳g<. *ʧF޸h1O9bg֤>g+Y??9OˠR#j޹ M}Kź;ᱭkMwܮ_ڮGԪnЖ0̈́yaÄ]"?'_pa7@1̀]>ݓN2 guIfS>/Ӕ{Ezd>3~r u8[.drM),}ڙvu͐M{ld(| '`‰3#j ؑ!>DY5U_>lOr3Z}8ne IŪ=]U q!q3 ]Xv]a<:pwc{xnM?C&/*tsUe=<>OGX>OkpMLe"AS[m],8­*Wkbla6]mIf~{]/+VhW^O~'Nh2㡆Ivm%]z2ChĮBur~Ҽ[ۺ<47)4n&IcM?u x-Qry <> aԌ~RPQOs=5¡y gIsr?8LO x?Uy% >TLO| ibul}2x'ķ%N:$gA00~8z?q~]T q(<0/'3_ö]Y[; >V]E':#F)6Zn2| YbZNrL ZiyA3-/hy Z)JieVƴ2A+cZ3\ʙV!hL eE1dq-K ZiiAK3-#he-{#bX{!Kb7B),A-{#bX{!Kb7B),A ŀ%bX{!KbB),A -{+bX{!KbB),A -{+bX{!kQ XB),A -{'bX{!KbwB),A -{'bX{!KbwB),A ŀ%bZSnxM rPa*_i(x"v1K)*6U!cґu&k=K[N4ȓ,{usӬϹ̞OVePԖʐCm"r'QD6rҮ6rh}׮ &d>}v{?w,Bg|&7Go.t ;K ]%p)VXbe)VXb倕+VXbU(VXbE+*V XbUJK5Kj,U, XV`9rr@.Rw Rc`;{ TȽX*^j,{r/5vʽKރK]%5rK]rA.R Rc`{{ T=ȽX*^j,{r/5vʽKރK]r@.͒@.R Rc`{ TȽX*^j,r/5v}K>K]r@.R@.͒@.*v%ݬOot,&oH}WSHS;g0Z+%czrkH7]>Rv{elu.fٚb\u7Mʂ7V>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16880 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16881 0 obj <> stream q /X1 Do Q q endstream endobj 16882 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16883 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16884 0 obj <> stream HW]ܶ}ׯCf(4'h03]93VxRԌDuӤs<7޼8o$MNEfPi&YH߬I8KYr/}ۮ>ء7?Jv'Z|QL.)aJVœ,[Ov3mî+W׿\RRMVCyJ-L ݱqKLld,3_pԟ O#M6sRNLpf >}l˒Re40/yH|쓏IiBNsʀ#H!x1+eV]X|Ke^e^U^U^U^u^uMMM>#gPEsB} y>'P_D B}/ e$GiCHµ!X}pm!+VbȊՇ׆k%C>r$\b"\b"GkC Yȵpmpm!PV 1d#Jµ!,µ!,B}ZI6ĐE\+ ׆!QkC YCV>Đ1` 1d#*µ!,B}ZE6ĀE6ĐE\׆kC>r"\b"GUkC XkC Yȵpm!PV C ׆b!,µ!X}!+Vb"\b"GՄkC Yȵpmpm!PV 1d#jµ!,µ!,B}ZM6ĐE\ ׆׆k5C>r&\b 1dC XkC YCVL˲Ԍf搼^'7kE1ֻDpC2Xl}H>ɲX6={Dj [,{ݡmm=f٭ҫ_`-Ge >:qUcR#ĥWZE Hy4s4/yA~A5éǚM)R]q|s2 Z\?ls_5wvl֛Y? GPp4;1(QZ`i2Ek|UK?ɺqPYC EZ(:}|ab4|އz! ^E*du1LHv׋(UMaAU6bʴ吺?Xl8ShΣfc_)s}ofBo}:FP0Tp}|?DŽ&3اuW_`i6OnAN]={hn`F Tb9#=hܔS?NT52CqI\hް&lʺ+Dx&"/FyT #qvQgpܬ\0դZc#CV0jhS_ m{? '\T @Bܤ>9zC:>Lm;P,W\ߏ r#yUr3/͛M>.> CtyU~n?Ddھ$Tsw/EP3ܣ:*SD @WSX^A4;!j!'^?7XyLum÷_tłNZujk (OT*vl1nvsw{ R3~>ixaѳKل/̠RtIK c/J|긟^V?>u|3ٻ l Ƞ.ŘiP\_1}oOl7C5pJQ"UR+I&5ŞzHWZt۽,TD.äťab) .ZZ ٽ.De|Qg^YM}\@OT@B*8]v%ѢR,Gz[냭m>N{/ _t0{~.M kJ 셅/mӧ,wcPH ?Q,Z3s,t_NTP޽GQ^>MV*jmwz\C MVƨU~w\J%GIKjY.LUZ~%z(HE0 WAOC$E^H&iM$iW c"2b2, vR1R[N;nUJsXZ1X(IgSdk7F1G;u.ݺzknzlYՅec8 7E\!! ͖mȖ4Wd4rlMr#ܷg|&2CΥHSG߳}PIY>cPW%O8~ jZઇ=~ G!bXO*H\&<%͐jOI +Q`q{-EYڃ#Sƈ?UYB-=VNn vao죑E ;uO]UnrFL"'_TOPb1}7bg1iendstream endobj 16885 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16886 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16887 0 obj <> stream q /X1 Do Q q endstream endobj 16888 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16889 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16890 0 obj <> stream HW]۶}ׯh/Q7nq! ]+ԒCx[3!gpxг~Ϳf?̸ʹed^ fJk.g`Og pۺoݛv͊w=uevlYX`Yb]~έݳWB --T6ƌw_o5dU \Ϫ2/rϫT9>Fya3Zpq,1~W;82 vb`4[c,̅w5m.cl ͣ P(d(M0wS(A {A {I {I {I {EW {EW {M {M {M `_&K}7{7{7{U¾"W {K {KO4 b.jͣR(BQ){l=P-y>Q TmEOT+bbG BQDP-P-y>Q TmEOT+bbG BQDP-2I<*em"Tm6JcbGJBQDP-P-y>Q$TmEOT+ bbGJBQDP-P-y>Q$TmEOT+ b.SjͣR(BQ){l=P-y>Q"TmEOTbbG*BQDP-P-y>Q"TmEOTbbG*BQDP-2M<*em"Tm6JZX͆]z-'8[>fvpa󒕥e]߸3@)Rۜki'n"nƘ~tU)/:n};<Ừۛ˷ھ~JTڝ?ᄁՋ\r!rΞ`=y̯Ymbj"/Dݪ=9gS䪪fӭOw0jaWM~[wh])m-L <ä} hQU0OG*7c5N|8>>՘B!D=ct7`ze(s4Pq 5U9Գ6y*|>"8{)2vajsvhI_ll^+径.]o˖\{U.^}۶a%=Fb88rZi U<-x.@ɂSzDHBMߔyM2ŌRR% ynMu~n:C_LV fbXL sci;\G݆ڝ${^={o ۠72߰=ۣcp r!${-\u>eKI<&,tV_:@x/KHCPz{YHbdF-PsK8'?9(/>)RNx>a%lĖb}353sFRfz@GQ2G' T St RC<}|iܼB&Ԑ.MwR@cc۞0l_@-q^T[Ã'Cļwp|qgkDx8 S#,z8rdpp T#[7>'wq4c_ti:O& h5R35)Thǀ@LUn]`2™SZjϦ؃Qxi-ʆVuMHqVy 2BrupOM76Vf(BRWh-:Qb)[(TL,6)_@}3wT(phCC{岒 IY+Õ%%)hϡ߻zuADMwB*MAa{z] izl]J Q'[Ca1W˷݅~O1ɥOS?JP 5+|2]xDׯdU^D%d."jB\7.pB\B:\L&$bRwqFw0u̢["> }_M/n=8᥯Ek(/~o󟠥(|VW!h^~%%|4 +tK=<``|!/-(/V731\X=vۿq&wmUzQiT64A|( KڸיE&(Gy6{Ed!=R=V0ݓ0̼yC϶/`)9!M5mlFLzQo~17o ;fh#IbV\u<7x`I:1F4w?p4"l;夤INeT)TKHQB?xeKqX*4H;G<~y=MPe|,w6~9-K`4ges-=b3{-si$zZƩ(SJN=~ Dh x8QS$rv%T)IxxjcO5h#L~4?k&z LhzK/ Τ4f|~/C>CrT{kNv`NS. ĵvq4Rꑂ23oɖkT(ge>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16892 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16893 0 obj <> endobj 16894 0 obj <> endobj 16895 0 obj <> endobj 16896 0 obj <> endobj 16897 0 obj <> endobj 16898 0 obj <> stream q /X1 Do Q q endstream endobj 16899 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16900 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16901 0 obj <> stream H|Wn8}WQlY`M$`Icgq0մ[+*4YGaXTcO.LŸ~mɘ2L g<3걯_>y,= &IB*IAfm KDpWӘ-#v$W!W?mل7w_&> bB1P >*u1(\\QQ)r3w}{{{{{᱗{鱗{O >%ا`z3}>'`{s}/Ǿ {EW{E4Ѻc պ>D]պ>D]|Pj]j9Zׇ(ZNPCS-'TET պ>@u}"{j]j9Z(BQ{OPCS-'T Tw}"Tw}ٻ>@u}"{j]jZ(BQ{OPCS TE!`Vu}"{j]պ>D= BQ{OP;PCPC!gE!`Vu}"{j]պ>D=JBQ{OPZׇ(ZI!`Vu}"TET+ պ>D=JBj]|Pj]|Q>{+dY7~! wOK&?<Wqf wK)"hw8gپ}6oIWuܚlƼ U9<7c|uqH2Rw.Fۉ''pM3K 9z}$D1u "Mbοt5<Ʋݗ4}oc'UdQlb 8nut cgznDLoW@ȘL@8uln" Q773-(JO7FR6X,l9e7 5Mz Ġ9cyXN XS͹5IKUc[H>WOӹˌE>X[Pid7nZ J?ɖO 0猡=lk*ac3$pµ3BW$v%LnHi)Ngmg'd J\Xm~q*)؆=1GkLDb+M ,ejyb8˲\}{:h%Ν3;xSnpI>J '*#jψ܌pCNV24bsMRp-]qԏDjٹO$uBy߀Cty9SCv>uQS؝/$?-uPLɁybAmq(,xAfv"EmbuC7enj{;v,]H}Hq6wpmx}U˦y1sGŅXX@wçIsum.TiuD}"- }{ΉD@%%pz AS* %@^&NĖ:7-`ȋP\4`/GcAT$T Wq:V?DIǶ!@ ^&H} IM'ԛ!8U]c9+-6u NXiw?ڲ^myROpJSO}vCv|0/-w4:pJk]6ӦTm췗6{!Vk#䎊WK9 rF`>P+SʐPiٞ;{hUd Q͚ OMaglG6"$%ʴpIyp+\uebzktat=s:ws5<@&Lv7ܠ@h^jji5ݽ/ܝRF6 PH2;3c[>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16903 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16904 0 obj <> stream q /X1 Do Q q endstream endobj 16905 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16906 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16907 0 obj <> stream HWm۸_Z`hrMC+.R M=Y^g}gDRqCه<ݿ~ÛY믯{1*sR9\ǽ>mŏ8<7ݾ뛃fMtǏ*["fjUIWqkEVƫCݬ0y c\>'c[+LA7_VOSKq A] ",ǟd&*\BY*.>BLaX&CTc!!J(;c!y(N{N{A{A{A{I{I{EW{EW{EW`s}/E `_K}/ e"W`h}} >@} >D}>DrBQ@PZ߇(}ZN!`}"TET >DrBPj}j9Z߇(}ZN"A!*dE!*d}"TET+>D BPj}jZ߇(}ZAPC>P TET+>@}"j}jZw$Z߇Z߇CTPC>P$TET+ >@}"j}j%Z(BQ@PC>P$TE!`V}"j}!Rj}BPj}BQ!*J0ׇ*[2fjlUy^ūC9yWJs|Ye*^Ŕ?zo!ut %oTpDO{}g[ʥi±yCӵf)ĂЩ݌?[[`P;oRqY+7LNO&#u^֧p}!)}=lfqDmš.2Q ǼgReU1 uUCd% W a7RyQC/׭-VI[Okهzi1X^$5ڶj̱BnGk.@@/O~zV-xuk}Lux 8NPM;^ק>܀la4x8u|^)lL6kB)ӼAph z দCmEbLTphVSZ*&3X&55SL>CT0dV&S_EY Ld$ѱ4|s8OCuhy:rٲLaaTɜ]μ&d"sڍ%vvg*N@W fjva[| o~jTҫ*jq3(TRδl,L-]f8lA69;,L4Ewt Xq{Sײ>l_[ڢ \Dɸāt}J8LP(Êq:  g`3\KogX3`>O2J=Z~ d@{*-°@ B"K6AY궼58ޕƴ%iCl!'Byu׆40WMrLPNqsH$**bR\|shHq+b7tA O=, &_vBZaWzь Ľ/\aТƴ,-ydj$D&5:l]8&qu~k:V4h<ǤX `Jt"+G'/aPVZĹ} MG h) T`CL:a\w 1qhJj7YهD7o;wAuНq뾳vUʛߒD2~Yd^1ɉG`L>{"KQ|e'jJ ^qJ+wXT\q)क़l{A :Cs`B3HN&uEIR9#Qo{IQWH?ߌW\6viT6џ.iʹrnBpe~=?̤mDx o!l 6H1 /b)*hlH7o̶@x)ӡO ?] Zk)~l%V4SrT9!9Wc?> ?bQN% 7S~8 >Ų<?jDo\y^&W)ނ%P!?%#r

:ΏgpIv0.vvO*ԭkꍛ` Cg:[)k~a~{' ݯzJBWo1iYLBZvoU*z/=m1:rB\&ِB?}yIwa"p-5h>^-M.albLX,xK. s10h1jO֓D5ė:xSV[0i&Rdzjv0} 3V]"L0N Ӈ֓pqݓWTz2u&2rcƸ=_U~O 0&2endstream endobj 16908 0 obj <>/P 870 0 R/Type/Annot/A 21016 0 R/Subtype/Link/Rect[93.6006012 531.229004 249.612 550.908997]/Border[0 0 0]/H/N>> endobj 16909 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16910 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16911 0 obj <> endobj 16912 0 obj <> stream q /X1 Do Q q endstream endobj 16913 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16914 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16915 0 obj <> stream HWnH|W4f_,iN&Ɠ lvfWm(g.s$6)egKT]jwXyśMl^xES`̙<6u6MDU54Ef]}0}&z9ɕ3_G% Ҕi0utRn6)-qMFǓwfQVU[wۍ=si|8Y[ֳO"!+mUvwWj4bXkuIb}oOYu) _Ge>VчL%ԜRp+ĘDƬ$%F,;NW=p{{>A}PS>US>US>U3>S3>Ss>Ws>Ws>W P PKTK^u6:rcv/1bJYڽĘKXcpZ@k%,^ցJXcpZ@k%,^ցJXcpZ@k%,^ցJXcpZ@k%,^ցJlyZ1K@k%,^b%F,Z1 WcpZAk%F,Z1 WcpZAk%F,Z1 WcpZAk%F,Z1 WcpZAk%hĘKXcv/1fi#hĘܫZ1 W #hĘܫZ1 W #hĘܫZ1 W #hĘܫZ1 W [G)hĘKXcv/1f拡 A0AȠX%`) @+(hJ+ZʀV2)hJ+Z*V U(hJZr֒Di9唖Z*^b)KiKY@KށK6e)-{1 h;{=^,r/1f-{r/ǫӔ%<ȽĘ$rA%rA%rA%rA%WrA%WrA%ƗrA%ƗrA% rA% %1fi-h{h{Uh{Uh{!h{!h{h{h{h{\kIYZKb|Z*)}i˲ &O~\|>OLbQ':dii}|柣<<  Hv %MMm7~뻛Zop[ fQ߶ژ,zݵe'瓧{ d\;_v.kMu7?/f|4 ;iZ]ǐOB6- Ͱn}sa =ޮv.r[{ev ӌ& ,}, ]3\4pf,vCq[]} ii7t_JbӋ#YժzKCff]M=PV_M۵}gccc6|jCs_!2T4Aimv |<&喧w,qdtwܵբY5/33[MgѶ8>w.; „$9vܣ1:bT]?EfԖ}?<V^WCMwzU mCvRF[?)E̺l|i[j}һts1v_m h>x[4MFo44gkZDk- wΆq($6c=r*wu'+MӱEQuG Z2<IYur3^_z~p E9y2p.yXWvwa^ygӑu#陰:acYDV9AVitI4҆nC4&m#W돧1 <Ύ1h=>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16917 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16918 0 obj <> stream q /X1 Do Q q endstream endobj 16919 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16920 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16921 0 obj <> stream HWmo8_2*|D(p-Z`bkb3ZJ%9쯿er|XF<3ҷo񗔥޽C3*&By!Ҳig?C҇M\aw<횽fvMr>urd}b#,59ӒUzd_fhCz#4˸΋MeN~? u ͊3˴.Wɯ|M["sL+Kibd 3 Ĕg]%1:Ęc g2>Dş }Dir<&%"b/"b/ 2b/ 2b/ 2b*b*b :b :b :b_싈}A/"%ؗ2b_ˈ}E"}YN6A6!*fE6!*f}"TET+Ն>D# BPjCjЇ(}ZA6PmC>R TET+Ն>@ }"GjCjзO$Ї}Ї}CT>PmC>R$TET+ Ն>@ }"GjCj%(BQHPmC>R$TE6!`V }"GjC>QjCbPjCbQ1(BQHPmC>R"TE6!`V }"GUjCՆ>D#*BQHPmЇ(}ZE6!`V }D }ه>@ }ه>DMnQ) sOޯ5&SF?<0yI&{h!]>~~V_ן Ϲ*42;ncZ_`W9$8nWo@LYӻf &] UdBwf!u!n=0Y㼤pR\CYPܷv{ufkCs+ea }n'_qXa ژ2-t龅a|r-dyF^\-FevCDUnp -=Reaӭxٺ~Q梀־ƿ>׻d߷8(=9 0W!諚Zq`}>EG)CJteݳ>w{;{?҅`tzn7CzC>ٮzp>9ۻIc\)f>î"ጻS]:{?5ܾvbiJ\O=M*O^\J {P1]$/buGu. `TxZo"ÎWB_U_W'}v)O0|\/g9\(C2mZЪKSL@9-Smq=#!˹^E[UX}`[tyrHbBeN˲x^* W-hȸbFux=!r5$,>d+HEV!O1 'qjMJU2C=qt/|ޱN5_ ҩ>v1\Z3|M"U0ȕP7cnh;5ԃ^O?w8kf7|[]ւ49glf^cŔѼ<V {1[~X*,<6JJطXκfwDes*:Yإsg3uĭ$& @yJA c xYs]Uu2][FͮNNwl\j|qm-i8D0ӲIHN*nsԾ\\Z|\{ ד[9kT:g'p Apϰ˒FksuuAWh/IKW5|k275a[nú"LBHZf4.s5>LZaK%Bx]!B|p8{hyBPo3یps-X|?U?2O+O` f6L)pnp< [3[BT'Y ȥañj靻3dZo-_hkSZD]pрOvVIz4IV!!hgmgXU k?Zvxh~=`vՃAr7G!yy':KϨFϿCr͖Ml]4~|;W?]Ԯ&a{@$ڗI'.톮KF:$d*UyR~~gJDU 27_ƍ?_³=OQ&aYJ6nʫpEZ-\>6OTEHA1S!80pgf#$,H[L %kt,ߋ"㍯Z .},f6EPCf܊/e,kbdܼ(F_)`diNAQqzD+lVVA3;B}/2o f*s껝~jOoM8~ѝ0EK8"^Ūqmz_Lumɲ(m,< v&;e_iOf$QHϗFig5TKZףg]&hTRiqS?[Iz9_=0<){gK-N9kK}fQ )Ɯ[FN%2;FĒ ]?lwj.YQOlo3^*=y2fJ9f,=Fn׋K*ll{ă^Lxh6sZ#\xDRgoﶏՙs?!k1tY~ɛ{n+~v Pj{=z>JT߉os#["ϴvn )—9|(glv#&*ɐ)= j`mr5@Z~SpHnwoFo_ӆR Qqr-QmYKLļѩGb1.BfuqN]~-.wnaEьɤsR:HWSC8'F<ևTQ&bmSt9k,(pb7 GG5Y Dh2%@_}36q0ܾ5W}M#MM6}a OP:x~'դRX\MT#0h7+0\@$'(er@ӇZxbGG $9d/">#D Q{ԭyߧuZ1 p+Hˑ M&#lJnQvʐ𴿶RF<{Fni;\5KF I3j> +ƹ JN&]9jy!|}o3]OF,EBh%tw=]u  "~tR wr"(A$ V@l$Z:AФpb$ԙli<@.]J(-聋Sy)+x(rEM)iX&ɧv=ˣPXu C@En\ܠh/)Ah2Ĭ2ח3w5ݖ<bn qUKq6vK#݋حa2yQ<2mI6 zHسA)6?Q Z5Rނu!RJ~3 J훿ӟ*)8endstream endobj 16922 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16923 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16924 0 obj <> endobj 16925 0 obj <> stream q /X1 Do Q q endstream endobj 16926 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16927 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16928 0 obj <> stream HWn8}We5Mw3d3 v<8A wi%ݒWcJEVۃ U}:,)*ڞ՟/~{/ 䊧eF>:JؗHEW-E_}/_7ǦNeV;V%EV|LmdI,&˒mOuPe6/Ibl>mߝZ g,`쳀}N9>[ [}YAַ"Iַ!*dEַ!*dm"TET+ 6DJB Pj}j%Z߆(}ZIַPoC>P$TET+ 6@m"j}j%ZvZ߆oZ߆oCT޷PoC>P"TET6@m"Uj}jZ(B Q@PoC>P"TEַ!`Vm"Uj})҄j}B Pj}B Q!{(B Q@PoC>P&TEַ!`Vm"Մj}6DjB Q@PoZ߆(}ZMַ!`Vmm 6@m 6D-j?g;EV|Lm$!-OYZ=Eױ?KEf<`wlv&[uGGTUE?N`+An4]dnZ˄ ,u%fc u伎T\QxI\Ļ+1Osyf/r sPqJ!k|@dHyycٗ\C3]U7S0+E_}/%$wN?X^~c06ΌUS"ӄݱ34#PunP&j};,DJDjt̤m՗p9 xFq9cnx_qZc]m_CmD J3O>i{L"\N)dj:l3nRheINsߔ[CYHGȾͅ6 U(x3™uB ƌl&mYsp&Zms E>/\꡸+U e߰Puڒ$syO^~jʹv|QmTH %D9s}5dn6(2_q@Mw(}u@p vEa%z9B.Es(.q8v4J"8fv0q7,ʮ )G0fox ҚqC5d_gϻ#[ctdz*jͱ*wɪYA1(xI!4X_$Q? I2!O|cs B^p"\BDZ7O.WO8 ө!pY5.a5'>X[lotXSv+g35ԊUs%<ʸQq1WιV-(H󡂦vКnhjmQI3 !!#[О~N = Gs0#4pp ymXgv Ze(7뱺i TdfvMR7qrReiq!~zБ:1/0aAVp%S0\:J$Kj7aZbjK+BR[K$ƂV[UژShKO ܫbxC?@[*)E8LHv|bo"cziߪuÓk%9}-ML^A).셇6:[|4:j %G*4Peq?y) J*W<ݴZ̃C䃣 OUí&q.?A & li;/u{('̔|ha4\@ړ- ᕋ w/,vپ:9\NjtF%5=)/{'\&Gb|3l ̥ X@%t(bSu(å jmfK vQB+,4^g3Ծi4WEگD:~ Å.Tb4;on2MvqKl $P{NN<u}7 ,@OM[̍\y,uGC\ ޶azQß}ۡ\Gn:v9i_'r%)G jÐj^;^{_ š'+Љ[ 5)e^KoZ2Z"cd*PV_^2= MC"wMdW㭙Js؎mNTZ R"ttWAWt- .BQy˯zi])~^Dy$L$C#ahgUfܼiXovSn+Ww>Ftp]U,f4Iu% uGAkxbkBd}6i T`6pEv[\UBјᱱgx:*) *ӎ9if5-296سa"rhizC}L\yB`Kd5i (Dgў%IQMb34W,Nћzl9}~4̅(_gQUصCu@sSO7>Jefmˁvj,I Z,N(4U8 G@pcAz,ĺO-jEw hX/QPgAgi%LP@;"䛱_A5^5 A'Ƶ$dK(Ũd_A#4]+)u/4\'g̫r/Zt\m2};ݠ껣zwFݧw9ӾC?֑<"ztxB6endstream endobj 16929 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16930 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16931 0 obj <> endobj 16932 0 obj <> endobj 16933 0 obj <> endobj 16934 0 obj <> stream q /X1 Do Q q endstream endobj 16935 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16936 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16937 0 obj <> stream HWm6_Z $4-R\Т1;l@e[-o%9{o(R<>U7?pͻR$'B3aS_Ԕ2-rŌL: OwH4>TC~s:X]N&Lw}zܭgtM,,SZLW>PԦ7LHfn>~Z+ƹu]ծnV_Gڻ9֖ oW gbMKLS+&Mʙ4yLlqe8$k00m/m"F!C 6@IK+++kk!Jr8Z\&- `TV-JYR>-p|d^z]A<[θ(}0+5.BL\N(Hƹkݱ6TCpl6L :{ /_[Va7Fܶ!c,֠)TiԌe+*0)31RrU(EpC##)ysi}QIPbҦn[ {L(6RfMVϙZ v]u> 5fc% ]1Pe[Ш/-/_S*GknԔixWnl>wpN@~hg4 EiA6MG˗'H<NL4ˉap;'WKy*v Q'XGĨɲ"I:^Hh57ՠ%&8I\̺y㽚bUN2e %u|Jctirxm0K&~ӏ }?8?>[_=ͨjr̃hC{̿ח-1ݙVZ b{5msO%HPaxXåM:,Km$ꑼ 4F|I`_C^ō)W2D)K WuvgS7>n^@ټ8,7W~?B 'Fy9c<@# ܰ Eb 9~}|,Ӆ"aѮ P\mw #ndXuܥA֞,\r :Ӳp]]~s\v΅l*{isc] t %YD`cX v{J$94GOl3Z5Yu<2|@,gq_)Mӯ}Zx|AU*<|DeipcM?ս4DPq8dO.(бPaE^.kUX>7큒.o"^Xn/8-:|jW[8fBń_LhU^WH‡ pgxLBPD,P*Ȝj"dA5k-.-4mCl$,gC 1֡TQC*.d/Vb>TKdӺ)ChkY/IQ.:]j#!\Yl"Օ nuqgsþ&+񼸑?/nT|rY)pzdUXqߌ 5ꀗV#\]-]m„ f}CO!m Qew8/ }8Lލm|#lx5h6;m>d{!MP$<񫰾Y';W#Ǩ#–.2o1.c&βZׯOm̲TŃSX~(6<* 䆫1-:7BԵ;M7.v O"L68$*kPc4mN=N:=D]hbÌl3ʷn!F3bNxm287 ClĔC]mR+βOsN-޸fGx`B}M\M&ǃ81<ӗm77)Ykf-RkmqBՇE2F7^w<3 ێб<.ߏbE~MՐ`Dei9˹~bfFiƸ=*thrQ1^D'P]o,@ג܈9$K۱Fa"s\ZO:Q8M!/m/ܡH ,|h1 O~U8QFwIҺnoz@ўx9P]j&۪LES8-Agg2D:gnن*l&DSU,(Qw/6] &Z\0 DǴ8P4c5E0:_@Fqq^9kլ [[kZe5+8kE_z,\ڪ/E'}!q|Ƣ2,2eC>Gy]f:TzCʨ-ght2VZKoy.7؊[ EرdY􂠢PNVB?{1hTUϻ ^@ca(p;^ L _.ʼnwȄ=|?Tg5|ڧR2+ 5j;Y#YE܇G7tւiB)FWѽy:{Okn]5@t*YO, \oN$oɁaLc ƴI!BiM^2PRKf/5m5SoXOj;ԅ{]-/AQ׻uրXi\lP{Q9ϮK-BM?`^(nendstream endobj 16938 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16939 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16940 0 obj <> stream q /X1 Do Q q endstream endobj 16941 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16942 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16943 0 obj <> stream HWێ8}WQ tؼJ"0d.HCO(Vƒzlu{_Un&KYQCXt{q~b۟EGB3ac_䊥2RŌOe1n"?D"?]{lOU]vj?dpnboMxlc kM%R7=L_Ä4LLO~SYݖs|FLtooUjw+?Dl_#d|C|'g: g,`쳀}F9><`o 6`o f!ZVGPoCT޷PoCT޷!*dEַ!`Vm"j}6DJB Q@PoZ߆(}ZIַ!`Vm"TET+ 6DJBZ߆oZ߆oCT޷PoC>P"TET6@m"Uj}jZ(B Q@PoC>P"TEַ!`Vm"Uj}[iB Q!{(B Q!{߆oZ߆(}ZMַ!`Vm"TET 6DjB Pj}j5Z߆(}ZMַPoC>P&TET :2j}B Pj}B Q!{ˬ:o1Mtu,>z2lc{jp1!PL_RTyZ' Nܥ]xBL)t(sz>9ۈp,V$Xʹ+'̎Aq`kߺax90,Ti3iAb!9_9ҺAP堽aRY̝n*SC!/yʟJs E=,B@JX&^4ϲy26a;vf8{ R[o@4T\Xk@ 3/kzmA /Ze6dai08 Xyw? i IY&BB PPWg3Ֆ ǧ>t{ahΣyݥCޟC4]W' tP]g瓁`gT\Ϥ{0-ő[c੫3ח_Qt`2$rv|/ݠn G_V.Hj ^u* 'q=ܧ,uusR#ʹڥjZe3/+ HO&Z#-( s֕[MzlB/|p=/#g=dž@ ,/>Pr=NvF}6ܺM;LIoOj˻}(]W|G-Wu-7/RA:M{%CX,=z_ݼPO7}LtL|ڱ.cIc@V[[ .(.)90 2=\BƷbbG'eJP4W}[ݏ{ëNZexXN+ع4è+]Ãnj? 闢_@p+efBʑP/޹dEf{NG+F97jZ}TQPoXNhOk)jSW·6_\2hKc3j2WykoG+^FN*%+UuRURPYCkD{^l8 ;,2;EfD׮Kk]5]˺'!A0lToӦy…oǏvz6[̼ENz~ӥVDt0kg<e6U_54_:=u>y[ǵ-}Jϼөpݧta.=.;^z@G#O|LxS]h ׬_A4_̀xY t&UƭZ+*VX9`劕VX`UVX%`UVX`UUVX b%J3͒4KfrS,X^<`)=^f,ˌ[{q x/3ne-R{̸X{Ky2fɌZ{q x/3n>e-R̸XKy2`)^f,}ˌ[{q x/3nįKy2`)#^f,}ˌ[{q x/3n>e-RG̸XKye-͒2f%R1O:-3ZW3XڜLk8@ gsY zBUSًY=!Ɍ~ͻw4,X&`*~~n^lK"6 n<7Y;jm?w֛P:[v8iKS ?~pk+^܌|d胪LqnKs>f{2>W_ۚv@7zf=3I?>uogt3zu3YlOM}fbfևZ lڇVСd˾2]ͮ'.)f}}ņDL~OF ln7d^DCx+ݡPv_FvƓCA4id0lW|*m]f}sq:¦nw{fZvrgjnvW70}95\u~i;EƭZ+*VX9`劕VX`UVX%`UVX`UUVX b%J3͒4KfrS,X^<`)=^f,ˌ[{q x/3ne-R{̸X{Ky2fɌZ{q x/3n>e-R̸XKy2`)^f,}ˌ[{q x/3nįKy2`)#^f,}ˌ[{q x/3n>e-RG̸XKye-͒2f%RiO: G:gFA [vt⏹~[ҺP]3(V͜/ >>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16945 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16946 0 obj <> stream q /X1 Do Q q endstream endobj 16947 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16948 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16949 0 obj <> stream HWk۸.@@_zlk-&.!L(kI$w}/EE^O"]FǞQxD}O>EԧQz3D}g)bZ4WbB\bw1ջ׺f!=2ĵ.Yzϵ q qis-C\b\׺׺f!=2ĵ.Yzϵ q qis-C\b\׺Xpĵ.YzZ,_iŀ4 Q﹖#u1B{k] Xk]Lk9Z,DZŀ4 Q﹖#u1B{k] Xk]Lk9Z,DZŪ@ u1ջ׺f]L|.,ĵ.Yzϵqis@\bB\b\+׺f!= ĵ.,ĵ.Yzϵqis@\bB\b\+׺f!= ĵ.Vqiŀ4Wb,",.P;4pxP1cM/y6CPWz1lԩSӢKPйϗvKMsE|pzVeaqh}ՃM(R7mOv';c=;jƇnv;fG"dc'\Σ0s]eSKy<\JC.B:d\,zqhZb6Gv3ej}XǍpJhJdhdWD#QF,s U}Yݑ%&(moS?l xI_Eq&G5JuRŃԘUɑٝOq p;OfUU]<4 ̜i >5gd' e*dK&nT+^1Dj`H /GiO]*bҮ}c08QyyY}S*'ms 0erij=P$+ ?e3 )b7AG`y^M8zw4$3d$* ?CDKյc=Wye{ӄLWkCar9('[thv{mC'Km|ZGw6̻)JlB ll36k`b/]4+NtMdoL3`wwl"J[UL*Yٓlx!79SD9v.dWKr0 !M41M=A5t.ZXgoMzoo4j,K.Փ. 2D$禃pggf[YRʕh{K;xOfB`vXWgŒz_Gӹ/pћ"7_~M)$djQ{%(Y1^a16ߦ %a v& ~3PYy@U¿זhh&ƀWy~ DtE~I-ezpJ v1߽r\gcGONG,pu0Za [`z%OӲ ۉ(ϼ:wmz\DL+ ,9瀊EՅ #̎0ۦHildR wԣ[Ԅ38$h=q)(/޶0+b"hChȡ ŖdVϾjߙ)x"[8q1r~iәnt.&X?M"] ߎt_y?$ڬ__4|8k4./aΨLZi',@XXjVZ`+VV$:`ui]"KgBR!,,KXX{Kי {I{Kי {I{Kי {I{Kי w{I Y:K-ΤEX#LZ;ΤEX#LZ;ΤEX#LZ;ΤEX#LZ;ΤEX'LZYju&-=^g",u&-=^g",u&-=^g",u&-=^g",u&-^gBRx3i!K3c٧qэyZSǴ5e\|oNj?mw 4r?~l uz&]]j1}|=}\czq}IMW/bw~[mtq\Zi6rY[_,ח?MfNoi/at֗jNu u<H>௿F{~ӵ>V?;e&yݼݘj?͗ߍ'JGrهg\|Մ֍?MNzH X<>/P 545 0 R/Type/Annot/A 29271 0 R/Subtype/Link/Rect[93.6000977 579.22998 222.936005 598.909973]/Border[0 0 0]/H/N>> endobj 16951 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16952 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16953 0 obj <> endobj 16954 0 obj <> stream q /X1 Do Q q endstream endobj 16955 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16956 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16957 0 obj <> stream HWێ8}WyѭER C2`c`@mmx,;_U$u1YNpX:$ußy ߽{ᅣI_>LĬ *BY8K,?E}\j<׻\Ca@cS='s='s='s $K$K$K}F<>cs}N=c_K}I4Ѻ6H պ>D]պ>D]|Pj]jSBQ{O)Z(BQ{O)Zׇ(ڔPZׇ(ڔPCSmJPCSmJ!`6%Tڀu}ٻ>@u}ٻ>D]պ>D=rBQ{OPZׇ(ZN!`節u}"TET պ>D=rBPj]j9Zׇ(ZN Tw}"Tw}ٻ>@u}"{j]jZ(BQ{OPCS TE!`Vu}"{j]պ>D= BQ{OPkI!gE!g/,EܵmeC|Yeem/. 7Bh<.yuynq1ul [N$ZRЪiA|NI1L~}hoۋ`$dÇڲS_w:VǙ(2>ODTՉd$[dig "enW6'ynM^D*Dzh!pyOcUw6;u:e'WNjxܙ>vGc罹cfE9/K ɦIa!Z2Dm3L֙ף&sTP?OzybS87C~ۃr#$$TUsaͽs^KcRFK\lKW2AۗHAnXb-Ժ%`ЛYy,/{6*cRfz㱿lSK?Y X:'^CF&`focT:v6LRIbJ~5k%;1NTQEd iCpb0&͚8aI1 j\Y?6ĝ@j!]SaC*&ga'AM. O8\,m2ļ79MoSpN:rL2_f҇`&YSYz|zt่K/N&^bW>Oa+}W dV\K9RP\O_6Q؊>A|Lo;MʾX⋗nƎת?anoO5/}j2\lZ/ϡ;x_ŒUS n#e#^X;62S o8sMس ǻe]WohMGγOX25UzkNu-P_l^H'p>'Ttsq879@pF썖J [hqRbW<ɯ)R\wDLY.uHsfx2Y~I2.DY,V ]O?/_XI DIz;+WъzFs˙?ۛа?lzL36~p cɧQ^ l͹LC }3SMkkU}jlۖg0Q7^S jLUFZ Z nSHvB0ES΢,&5| ]V}t53S7\5YgqyI&ċTfu,χ%NwFl'CLsP!-Q؃z ~2넀;X:i?MiSX-O ]zk^gR}/9"ݭe@ Y7sʝmvpsVNYwm[l3֐)U?V?(}ws!UyNCջFdؚGԜ]ez[uoֲKlީѴIýnѧʃag δ~e +]b!yH}>tx춎 -e@&Idu*H׃[adD}NllVuwPl60WFRItK$DwnV0vk`~ܾ;M'".N~ڢԶKO{_3 I|T׺@U5W)"9խ; zF8۶'&$8<gTTnGZSGo ȯbtw,}' a hJUkl#U/<\xL$Ő(7ig7ⶃ?mXVgἨ),Qn<$fuVNPo*QV1V*N|Y`I͟# o@AMtḄ&w7qh)$88jj(ZTk׉?F\)F5~'n%r>'goa Lgl2aE(Zܐ&7tSٕI |!# K;&Rݠf,ns})9B &P02P}q @A51 ԻSRʔݗb,ɱ[Hlʖkn#gQ!bdI+P66h<'qNg8rJD,mӛȳ.z< y >, L [kѓݮlv/zvA 5F$Fr@k; tDQ,,`v@cBvMXz1X4BVN.S W)^Dg9:OFwd`/aA0pP>z3z[$x{n@ ߢL$ .s93 PՇ(1CR ;`bbsD@tnon{zp;E# mq#T"*'4'u =M/Aq$c 1[%laRI#0ѽVkj2>Qe$ct,ޢf/AcbipBA+$`TzlBM;*]F5Hy}oVWϗObSA)OJ/g?<4װ9bN|Y&G)jW6AX["597Mj]Mw3[qfEB 559rԜ 6ODof\K}}03 m{&-hBg@ڮi6IƓf^ Fb.Ds FoEu-$l6`w~[ aN[MCҫ>( qZ1 8t&ͦx/D_6jU5WQvƾVB~jD#Z8wQb˾FD4z!jy#ܮsvK`vv&gؕr&P4 p'z[^]w;jOݻ񈧊H!<ʇÆq⑨y0EI# ,' d^F ƒ@ZU{`?L 17Sy4 #rp}ۦmfqrrᦑP%R-kB)[;tvwIh&Xûݸߣ>!ʤ'5Tę(0&kFڲ Yr  4iDM Ml}\w[ >2>j ) -_|ҽUM#džfõNfa| ]}z}WJ&'mn p hKBM{NoQeuHOu$~]0e;Ho0_G.FTwiyoM -PPu_]wegZ냒{;=(grfR\}[WGcT>AAY@aw<糪YMP*drA&S~kurFơg]6߱ė"p1qʁ i {(=Ɍg3~j2m uot@ZDFY&/, x}X#C]ǎCq?㉷2i(JVU 8PVx8F亣^RƆ$h3D JC_HkC|$ؿ˯ݷ 0~endstream endobj 16958 0 obj <> endobj 16959 0 obj <> endobj 16960 0 obj <> stream q /X1 Do Q q endstream endobj 16961 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16962 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16963 0 obj <> stream H|Wko8_ * l-:2EL–SI~/_z׃"%u|xyHM?rw)Iͻɏy!ST,/iZ,4UߴKHi&ձ| Ie*!fZ:ݝlc{қWT 0Y B$}7}y+9|~Furoq0,% r1*u? &4I?B!BCHVT@$Rjm"Eȑ1Gbwb*`%V(b!,zzgzgzgzzzzzQ_FKD}UBW Q_EkD}u^"e^"#iCPĵ!YӬX}iV>Ā64 Q" 1BGkC XkCLk),D}Z6Ā64 Q" 1BGkC XkCLk),D}Z6N C\b1`! 1͊ՇfC XkCLk,D}Z6Ā64 Q! 1BGekC XkCLk,D}Z6Ā64 Q! 1BGekCpĵ!YӬX}iV>Ā64 Q# 1BGkC XkCLk9,D}Z6Ā64 Q# 1BGkC XkCLk9,D}Z6N@\b1`! 1͊Շfe.)%+Mtw"94ӂ˴,e;%w޼dO7_vLZu.9m^'$ UUE/!6-ʬyz:fl}>6/m>vrm7Q8Fqظ7wfP T%!EZʌz49+ |xޛl|Tl Ƴ7_f(j~ݛbi;S׳j%tֲs–8a\؆cWz&.å.·T9OHi{Ỷ,@Mܛv+l.`Xzbx)g:}s-0\!WzX!VQ"/XAWa_Ǖz`8u.};9 WáKRuYG$Z9ڥi IEN2.u eU+ q*c6\ndźihDTi8gpAdS"u/܅읰Yvѵ+a\|M̦؃xwIÕ jzO%nk=2/`i=O+Kw-hF lhwtJsg6]m]Fy`tC`":cyNIҭߕ+?Թ|`1\k碦b9#J>]6Gw<8L%(dx4?Xk "M!&DxҜ7\dGZc)97c~JǶ1.Г|;s8\O[ Y[ZU١=ttj=kgh6;>(\ĢɪX?սcP38ϗ):njRڡK4߫f|ggQN!&l)+jg~V[3T65lL-S9niϼ&דijR3Oԏ֤Ā'@Y|lٞ u`kÚަ{V5L 1kBS}oϻS YtUF0`3"a+{={u Tl2Cenv.%|,xq-.hj b˭ڻ)Zen0p{|^yN&mLW2 tȺUX~x6K~<+sASGMx︉#qL4wxߞ$lRdspsY#R'Dga6"͚Vh::c;<ƕ?[A`8lU%FKۉUhR+/Med &%da瑱j52V[d1(}3)6suêlkU9pgNh(]t^Taqxjz;\.]iB(/usՕoQLs70=ubHZ0/os'LwQkJ9rtLlRYeYK"g%S4Ww=VF=Qʧ-e^;KVKd-<~a$jmiDCRLxDru-n+lnBJ.1D/L/t+\¹byE6) Dso."> tδWTK$Z:Q{)dz- ? +ttGS @m _[b[ߐa{7^,!=k!G{ ݇|r_eeE}秏#!r_ ݀m<”)-Ɋ+0D26XZ PF9/%ΌԝjN<'8sF]f S؇ܡSLR[C. 8C#*0d'4=ycZ {"ySG3Hia48cZ0 &@c,lAbj5&0QDO]yNKR1xs·JZC8 DwyZx4=Nv,F'[]o58bAJf@ɲ=eIWB]M}l6n(Z,\߷2~vwSWtNc^uv=5!+C؂G*JI{\3 "}1,c-τzAP.M$c`YX3G4ǡ,!>q1#S[,!巫5k&ٳol\)9IIz{&HG{ҭuKnHet*}u\<*.$LH{GīFT+>E,#͒;aɢUߚusd3jr+X+e0(Qб~e3%I}Ƕ.L(P>VMw;/v8p_|+ջ$xG54(BPD^aHf"7plu5//F&d>CgzSm jwVsv0=!&@+?TqwyaY+wsCO7PdQ>X\1S luց0Ur2'FvL(u`aYқc 'Cʀ{GȒw7'7 0no|endstream endobj 16964 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16965 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16966 0 obj <> endobj 16967 0 obj <> stream q /X1 Do Q q endstream endobj 16968 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16969 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16970 0 obj <> stream HWkF_1XYr^$u1g`X0V kM=V]#XSSé9WTݠW?T}/OD^̪1j_M5?/MۭЭ['W?O4wVU**O Unٻz1F͟ېή(_@8gYVݼ=IuPBoNˑ58nTzu\|uS9\)Nc'~YO3-)qڪ/ʤ-(^Z$LKN &1]DΉcRHCb2 wcy -sow{;c1^p{/}>ss 3>}.ϙ\p3` }G}du6Bk),bZK1dqCwO1` Vh-Ő%gBk),C Vh-ŀ%bܳZC R Y{Z+bܳZ&Nh-ŐS XBk),b),C Nh-ŀ%bܳ:C R Y{Z'bܳ:Z!KpZR Y{Z'b {Kh-ŐS Y=ŀ%bܳzC R Y{Z/bܳzZ!KpZR Y{Z/bZK1d YkZ!KpZRlCwO1` {!:U ].u\QF$ՙ**y *STMf~'gn RۺZURuC'!\({5g|xs^ ,l_wݶ-ڦcթgpַsaukrsx޼}6kP?>Mg÷kЙIV`D?Tp Kn)Bx*]AڞU7KrE,p߽z6*r9~|b8PmԮM5K5PoբlSsLGq u]70)KOF-Au]v]k|ᵱON{JhP޼:#o9]=:mN'0b0ڻa[`ga9ŀ%bZQد4wNUbgD*ӹgkdɠ ֜캹)fmVf1ۦQ5C '8;UxrIqPGQ8iWٲF g&3'uxRQc tQreޡȴy3{/4(gLc鄛ɟ VnjU=\ WݺmnЙ/&n ]?,[ $e U8j}h5}.rOtswcnɠӺY}П<tbkus#3/l˪޶1yW eEx9NzexU^8oa }}tz\f2߬-np1}w ^ngj?|,Qz$P y@]+0''+ӁB n{L@фh5N %&gdT*hHI& ũ)z \C\} 8endstream endobj 16971 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16972 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16973 0 obj <> endobj 16974 0 obj <> endobj 16975 0 obj <> endobj 16976 0 obj <> endobj 16977 0 obj <> endobj 16978 0 obj <> stream q /X1 Do Q q endstream endobj 16979 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16980 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16981 0 obj <> stream HWioF_# `D1M83- m$DzouM6K°||Ux}\},!駫߮o߇q_ H_C(aHаaS@2 dU wyVmWr}ؕ/4|wjKXHcC8ri:pN/_5i̼S#A_f>^\Rof.l?,,r ts},N\G" "oA k_9$q+~0YQLA*rrr;3bs1`Lrw1`QD=SD=3D=3D=3D=sD=sD= D D D'S O}O=)>ԧS!3O}<9>zϳ1E\bw1`!u1ջb] Xk]Lk)ZS,DZŀ Q﹖"u1B{k] Xk]Lk)ZS,DZŀ Q﹖"u1B{k]ZS,_ q)WbB\b\׺b!=2ĵ.,ĵ.Xzϵ q)s-C\bB\b\׺b!=2ĵ.,ĵ.Xzϵ q)s-C\bu׺b] Xk]L|.XzZS,DZ Q﹖#u1`!u1B{k]Lk9ZZS,DZ Q﹖#u1`!u1B{k]Lk9ZWbB\bw1Q&@ 2nV(_n޾xon_l54E: )=R5DZšDZ>WCy m9d%kǻimnH -^ CYTAvEו|lN4T)mU6 AIzTbe=jAb9AVR45u``u㾓0áZtUYM:Vl <d?t틑:KVUSL#sa7$X'-~&_o{f,0C3Pa%d#LuU\bb*vz~lU=,#4zz*0_{R,)]%퇶r{S>#1tz`)dV3vh_%tWY+h2S-xw%|77$e_%qXqڴ LVcCƬs1oLjVr Vv5NzcEJ5%v)݈U3ZQlLy[z̛j|u6ZMP K(뚪$VղNqsSۡf7'ƙs"1:;,Fs&fQ'kAl?)ߟ[h }bF ?ʧ3,hpqʝ{! s; N2K^ ,2Cq.uHK`uuG3"ɘHt.HnrM1Za'_z1JOI}9A,JtoR7M*XތC/AOgΘnz-G[d%DQ'Ѫia" ,4-r I VrdA~f,iv--/ʼ럷$_[ٯ][iUS=iu`c/4r31&KԀ8Kgf)Oz6XI8zg$ӌI eGQYR)a`l'l:"4[Sq+x!E؆`R5;CJQ !6%b__{ιMSh ׼M\Ȳ,SxVSR\DYN)c6cs+nupYyv[9":P2b0?b"!zV~>XK{yD͈6DR^d2rJZMe|(Nc\dEQ;'#xzqj 'e8Y2'8&nѩDsp.P_^f<ک VAE)&c=v,Sa%T,}5ch,<Ѹf=7 㕡C*Eqs>8CM;JR-;z?:Y* |?wOn~QyBO^+d .o\87#B/}IQpؕ6ਖ4ZzRwL~"+AdT:?򴝾;luㅪxNx8{=T6@rjErAKRo<}""IN* 0|,gF ?ZyH۶86Z TW""%wn}dA+$e߼k h2רּҰ˜ڗm}-.&29-rGk }#S@^9>bʦT "xˇLY%n{U4ZM=ZR۔B&P¥7yFskz^hӬVБ٪hJ5.r )HYF{X ??ΙF>/P 1025 0 R/Type/Annot/A 38921 0 R/Subtype/Link/Rect[93.6006012 603.229004 194.832993 622.908997]/Border[0 0 0]/H/N>> endobj 16983 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16984 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16985 0 obj <> stream q /X1 Do Q q endstream endobj 16986 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16987 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16988 0 obj <> stream H{o秘( ɘ"9m`8ۤݦHmL=zxHKyE9͙3ԹxfU/_^[W^}MT_U.* U6ZfdFTv7jZv=,UMήjsQ8i\E*JՋfmg!x]iYV9)A3ͰpesxГ5]omO8{_xn_.yOqu'hn쏙V}S&W?%/usEWhS^"0>g1p&J&2&e׈q-QHiD@\KHoAz+;މw"HAz/{ދ"}H@  }! }!җ })җ })җ })W }%W }%G>3krmY0\#JZr(kD\KZҋ`jFH/ւZr(^LS5@z1L-kDbj-Zҋ`j(0\# Skr(^LS˵Er(kS5dz%s-Q`jFH/ցQ ZkS5@z1L-׈:0\KZҋu`jFH/ցZr(^LS5@z1L-S5dz% L-׈FLϵDQ ZkDbj=Z% L-׈z0\# Sr-Q`jFH/փQ ZkS5@z1L-׈z0\[dL-׈鹖(0\#JQ2}1Fr^Um2g&t"z i;tddu9·ΕK**7kbπXGÛdh[5|a+35տn>/6m5lw5RZ6!|:׸ͦٲ庬SH-bV:(X OA~I^*VG&Pvo\.knbME5mM}_74]Mҍ͵3e<|נ];_UyJ+zqM[1[nmp@\uq(ɤw*9C<KkM{xO!Gy7}ҧ5!ӦփAHJmo`<3>U8c~/˓'py\-5-AL^WT}*g)5"^^xyW^AxW UBx^%*W*UJxEW^{\zq(ŵDe^FxYe^kD/{ z5QKނs(%zoAF\# x[{D=׈^\K=׈^kD/{z5QKށs(%z@Fw\# x;{D=׈^kDI/% kD/{z5QKރs(%zAF\# x{{D==׈^kD/z5z5W1F}M?L_g  :r4ߥGgg /ǣvK]Ul1[n Ģ-oSz2zFf~bna/~*q͟evMOZ-o_vnL?Fv[N͢}vGg6{v`_os_nQ _'B.* <{8I+FM *:qj6j_Jz|_wqc<;Oo?ԏY:ijC'5TIh :l9թLwjF.~~]g6txMci[\tj=rP*%<// + Ux«^*W)*U xU+("ҋkDI/%/# 2/+,\# x[{D-=׈^kD/{ z5QKނs(%z@FZ@Fw\# x;{D=׈^kD/{z5QKށs(%z@F\#Jzq-Q\# x{{D==׈^kD/{z5QKރs(%zAF\# x{%({%sD:L__Um2gU'WCʕ%=Gu&uң$}E-'Dc/W]oV-r&ZwF{bWlxmg%1J/sK'4z?kFܟS7v†|0MזA"k#oR$mYa z Pg@"^Ĵm\ g|6 /o8O(ex_/ofHSbu`=Ӓ=O~6]D9Oe贡z]qjzݐ`c;qH6L԰M[w171`2 LjڤFǤz,0z_/8Vendstream endobj 16989 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 16990 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 16991 0 obj <> stream q /X1 Do Q q endstream endobj 16992 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 16993 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 16994 0 obj <> stream HWko_e@^s߻@ /mm 8EشDWKC*E&Μsvxaݳ/.~}soBsS$TET+ զ1@Mc"gjj%4*4}4}CT>PmC>S"TETզ1@Mc"gUjj4(Bi QLPmC>S"TE6!`VMc"gUjتЄjri Pjri Q94(Bi QLPmC>S&TE6!`VMc"gՄjզ1D3jBi QLPm4(}ZM6!`VMcMc٧1@Mc٧1D!hVGYgl&`Qτ 2 *&j~6HI'P+SGi}_lSvv.M9Z=ym,7P)_PC\YoH( vwSd%ZR@}ـע[2N9A8 v#E=:&/D%/ƈ8Y`L'H|VCU;pC3ca<5,auVqoMpEa=\8 wRת;O UU.ԁ_fΛ:v~suxFYs"V+q}:ghGhG :xbTO]23rc|o -bUmnR(qSgCF?+e_ 7|[z,’ۭƭ]PgxOܽqa@*n ^q\yUq”RC 'r,3G,E :8:>~ 0qEmoD~E.)*6.$~yC8oI=b`)o6ݑ?W aF:q:)՘+lhMsOO~1^h3T5{McWf Dc٬wz:q(T7B>~N =N؉- s8Ix MJ`@|Pҏ[J펌x}\- ~;|Xr}?5iҸ$y;6I Ujd3X3'G0\$˭S)8Y T_78m3dҢ5 b>K׮,XY(ec+/ NoqG%hr?%\XSql7Ou:ްxr )Gmy1_W?O>Ͷ3{ۻ:>Z&m0`K.Z_e5ڔI~^n F 9<̼L`:خvo;ؗs0}XJGdlt_Z`g$zUr8 + ʹAt Tᇮ¯!!=46{\bN5ho ZMw Ȗv :~15ٽ~:*N;{+%X͇LH_;ӃGƩޖMH4xotYzKim[I4v74 pr0񒺝ljkɓ|[flz Tӓ -avJg7H6vWx1kW[((pEIŒf&zLs7 qΡ8h7$7eT&X=b'L? .g1hAJXb1]敀ȵE%R^p)>@ƍ%ox8>U<}{>ߵ7&ǔ89)b $:oZSPX U=6Xg$U/ GzlQ5zg.Qn/%2Z}{ȶաDBv'տ)P 2M&f&ZL_M [SӉ=l1B99=ȟWՃu&H 2+k* B=n\0 *9+=oTPm+ (ҌgzAH5=Sћ;ybR<+ -)Vcka.6 |@ @l/OߞO'/^ ,OtB% GB+!TB Qb2{If&Aʍ;"7iHf@] OA<AYo*"8BT ԥ!.ZPonLfQ`Z4*4u LiL/ W9+ K{ qR}WqTPij9b"˰>D^6 |:h.5w\N4`XǖxֶY;P;Cu(E@ap H: ן7 w…űPz.("Sb<=dCZ'm x'2 nCm*(名w? xݲendstream endobj 16995 0 obj <>/P 10158 0 R/Type/Annot/A 17288 0 R/Subtype/Link/Rect[197 670 209 678]/Border[0 0 0]/H/N>> endobj 16996 0 obj <>/P 10158 0 R/Type/Annot/A 17285 0 R/Subtype/Link/Rect[217 660 233 669]/Border[0 0 0]/H/N>> endobj 16997 0 obj <>/P 10158 0 R/Type/Annot/A 17283 0 R/Subtype/Link/Rect[234 660 246 668]/Border[0 0 0]/H/N>> endobj 16998 0 obj <>/P 10158 0 R/Type/Annot/A 17281 0 R/Subtype/Link/Rect[190 650 202 658]/Border[0 0 0]/H/N>> endobj 16999 0 obj <>/P 10158 0 R/Type/Annot/A 17279 0 R/Subtype/Link/Rect[212 640 226 648]/Border[0 0 0]/H/N>> endobj 17000 0 obj <>/P 10158 0 R/Type/Annot/A 17277 0 R/Subtype/Link/Rect[228 640 240 648]/Border[0 0 0]/H/N>> endobj 17001 0 obj <>/P 10158 0 R/Type/Annot/A 17274 0 R/Subtype/Link/Rect[190 630 202 638]/Border[0 0 0]/H/N>> endobj 17002 0 obj <>/P 10158 0 R/Type/Annot/A 17271 0 R/Subtype/Link/Rect[202 620 216 628]/Border[0 0 0]/H/N>> endobj 17003 0 obj <>/P 10158 0 R/Type/Annot/A 17269 0 R/Subtype/Link/Rect[218 620 230 628]/Border[0 0 0]/H/N>> endobj 17004 0 obj <>/P 10158 0 R/Type/Annot/A 44844 0 R/Subtype/Link/Rect[190 610 202 618]/Border[0 0 0]/H/N>> endobj 17005 0 obj <>/P 10158 0 R/Type/Annot/A 44805 0 R/Subtype/Link/Rect[221 600 233 608]/Border[0 0 0]/H/N>> endobj 17006 0 obj <>/P 10158 0 R/Type/Annot/A 44767 0 R/Subtype/Link/Rect[190 590 202 598]/Border[0 0 0]/H/N>> endobj 17007 0 obj <>/P 10158 0 R/Type/Annot/A 29325 0 R/Subtype/Link/Rect[221 580 235 588]/Border[0 0 0]/H/N>> endobj 17008 0 obj <>/P 10158 0 R/Type/Annot/A 44696 0 R/Subtype/Link/Rect[237 580 249 588]/Border[0 0 0]/H/N>> endobj 17009 0 obj <>/P 10158 0 R/Type/Annot/A 44670 0 R/Subtype/Link/Rect[190 570 202 578]/Border[0 0 0]/H/N>> endobj 17010 0 obj <>/P 10158 0 R/Type/Annot/A 44647 0 R/Subtype/Link/Rect[207 560 224 569]/Border[0 0 0]/H/N>> endobj 17011 0 obj <>/P 10158 0 R/Type/Annot/A 44588 0 R/Subtype/Link/Rect[224 560 238 568]/Border[0 0 0]/H/N>> endobj 17012 0 obj <>/P 10158 0 R/Type/Annot/A 18481 0 R/Subtype/Link/Rect[240 560 254 568]/Border[0 0 0]/H/N>> endobj 17013 0 obj <>/P 10158 0 R/Type/Annot/A 44512 0 R/Subtype/Link/Rect[256 560 268 568]/Border[0 0 0]/H/N>> endobj 17014 0 obj <>/P 10158 0 R/Type/Annot/A 38922 0 R/Subtype/Link/Rect[190 550 202 558]/Border[0 0 0]/H/N>> endobj 17015 0 obj <>/P 10158 0 R/Type/Annot/A 44443 0 R/Subtype/Link/Rect[207 540 224 549]/Border[0 0 0]/H/N>> endobj 17016 0 obj <>/P 10158 0 R/Type/Annot/A 44412 0 R/Subtype/Link/Rect[224 540 236 548]/Border[0 0 0]/H/N>> endobj 17017 0 obj <>/P 10158 0 R/Type/Annot/A 37560 0 R/Subtype/Link/Rect[190 530 202 538]/Border[0 0 0]/H/N>> endobj 17018 0 obj <>/P 10158 0 R/Type/Annot/A 44345 0 R/Subtype/Link/Rect[207 520 219 528]/Border[0 0 0]/H/N>> endobj 17019 0 obj <>/P 10158 0 R/Type/Annot/A 44303 0 R/Subtype/Link/Rect[190 510 202 518]/Border[0 0 0]/H/N>> endobj 17020 0 obj <>/P 10158 0 R/Type/Annot/A 44258 0 R/Subtype/Link/Rect[212 500 222 508]/Border[0 0 0]/H/N>> endobj 17021 0 obj <>/P 10158 0 R/Type/Annot/A 44235 0 R/Subtype/Link/Rect[224 500 238 508]/Border[0 0 0]/H/N>> endobj 17022 0 obj <>/P 10158 0 R/Type/Annot/A 44186 0 R/Subtype/Link/Rect[240 500 252 508]/Border[0 0 0]/H/N>> endobj 17023 0 obj <>/P 10158 0 R/Type/Annot/A 44165 0 R/Subtype/Link/Rect[190 490 202 498]/Border[0 0 0]/H/N>> endobj 17024 0 obj <>/P 10158 0 R/Type/Annot/A 44121 0 R/Subtype/Link/Rect[217 480 231 488]/Border[0 0 0]/H/N>> endobj 17025 0 obj <>/P 10158 0 R/Type/Annot/A 44095 0 R/Subtype/Link/Rect[233 480 245 488]/Border[0 0 0]/H/N>> endobj 17026 0 obj <>/P 10158 0 R/Type/Annot/A 44056 0 R/Subtype/Link/Rect[190 470 202 478]/Border[0 0 0]/H/N>> endobj 17027 0 obj <>/P 10158 0 R/Type/Annot/A 44018 0 R/Subtype/Link/Rect[197 460 214 469]/Border[0 0 0]/H/N>> endobj 17028 0 obj <>/P 10158 0 R/Type/Annot/A 34241 0 R/Subtype/Link/Rect[215 460 229 468]/Border[0 0 0]/H/N>> endobj 17029 0 obj <>/P 10158 0 R/Type/Annot/A 43959 0 R/Subtype/Link/Rect[231 460 245 468]/Border[0 0 0]/H/N>> endobj 17030 0 obj <>/P 10158 0 R/Type/Annot/A 33658 0 R/Subtype/Link/Rect[247 460 263 469]/Border[0 0 0]/H/N>> endobj 17031 0 obj <>/P 10158 0 R/Type/Annot/A 33607 0 R/Subtype/Link/Rect[264 460 278 468]/Border[0 0 0]/H/N>> endobj 17032 0 obj <>/P 10158 0 R/Type/Annot/A 43840 0 R/Subtype/Link/Rect[280 460 294 468]/Border[0 0 0]/H/N>> endobj 17033 0 obj <>/P 10158 0 R/Type/Annot/A 43806 0 R/Subtype/Link/Rect[151 450 168 459]/Border[0 0 0]/H/N>> endobj 17034 0 obj <>/P 10158 0 R/Type/Annot/A 43766 0 R/Subtype/Link/Rect[169 450 183 458]/Border[0 0 0]/H/N>> endobj 17035 0 obj <>/P 10158 0 R/Type/Annot/A 43722 0 R/Subtype/Link/Rect[185 450 199 458]/Border[0 0 0]/H/N>> endobj 17036 0 obj <>/P 10158 0 R/Type/Annot/A 43697 0 R/Subtype/Link/Rect[201 450 217 459]/Border[0 0 0]/H/N>> endobj 17037 0 obj <>/P 10158 0 R/Type/Annot/A 43652 0 R/Subtype/Link/Rect[218 450 230 458]/Border[0 0 0]/H/N>> endobj 17038 0 obj <>/P 10158 0 R/Type/Annot/A 43612 0 R/Subtype/Link/Rect[190 440 202 448]/Border[0 0 0]/H/N>> endobj 17039 0 obj <>/P 10158 0 R/Type/Annot/A 43581 0 R/Subtype/Link/Rect[217 430 231 438]/Border[0 0 0]/H/N>> endobj 17040 0 obj <>/P 10158 0 R/Type/Annot/A 43533 0 R/Subtype/Link/Rect[233 430 249 439]/Border[0 0 0]/H/N>> endobj 17041 0 obj <>/P 10158 0 R/Type/Annot/A 43513 0 R/Subtype/Link/Rect[250 430 264 438]/Border[0 0 0]/H/N>> endobj 17042 0 obj <>/P 10158 0 R/Type/Annot/A 43464 0 R/Subtype/Link/Rect[266 430 278 438]/Border[0 0 0]/H/N>> endobj 17043 0 obj <>/P 10158 0 R/Type/Annot/A 43438 0 R/Subtype/Link/Rect[190 420 202 428]/Border[0 0 0]/H/N>> endobj 17044 0 obj <>/P 10158 0 R/Type/Annot/A 43389 0 R/Subtype/Link/Rect[207 410 219 418]/Border[0 0 0]/H/N>> endobj 17045 0 obj <>/P 10158 0 R/Type/Annot/A 43351 0 R/Subtype/Link/Rect[190 400 202 408]/Border[0 0 0]/H/N>> endobj 17046 0 obj <>/P 10158 0 R/Type/Annot/A 43303 0 R/Subtype/Link/Rect[226 390 238 398]/Border[0 0 0]/H/N>> endobj 17047 0 obj <>/P 10158 0 R/Type/Annot/A 43264 0 R/Subtype/Link/Rect[197 380 207 388]/Border[0 0 0]/H/N>> endobj 17048 0 obj <>/P 10158 0 R/Type/Annot/A 17294 0 R/Subtype/Link/Rect[209 380 223 388]/Border[0 0 0]/H/N>> endobj 17049 0 obj <>/P 10158 0 R/Type/Annot/A 43176 0 R/Subtype/Link/Rect[225 380 239 388]/Border[0 0 0]/H/N>> endobj 17050 0 obj <>/P 10158 0 R/Type/Annot/A 17290 0 R/Subtype/Link/Rect[241 380 255 388]/Border[0 0 0]/H/N>> endobj 17051 0 obj <>/P 10158 0 R/Type/Annot/A 43112 0 R/Subtype/Link/Rect[257 380 271 388]/Border[0 0 0]/H/N>> endobj 17052 0 obj <>/P 10158 0 R/Type/Annot/A 43087 0 R/Subtype/Link/Rect[273 380 287 388]/Border[0 0 0]/H/N>> endobj 17053 0 obj <>/P 10158 0 R/Type/Annot/A 30183 0 R/Subtype/Link/Rect[289 380 301 388]/Border[0 0 0]/H/N>> endobj 17054 0 obj <>/P 10158 0 R/Type/Annot/A 42989 0 R/Subtype/Link/Rect[190 370 202 378]/Border[0 0 0]/H/N>> endobj 17055 0 obj <>/P 10158 0 R/Type/Annot/A 28511 0 R/Subtype/Link/Rect[175 360 187 369]/Border[0 0 0]/H/N>> endobj 17056 0 obj <>/P 10158 0 R/Type/Annot/A 42924 0 R/Subtype/Link/Rect[188 360 198 368]/Border[0 0 0]/H/N>> endobj 17057 0 obj <>/P 10158 0 R/Type/Annot/A 28432 0 R/Subtype/Link/Rect[200 360 214 368]/Border[0 0 0]/H/N>> endobj 17058 0 obj <>/P 10158 0 R/Type/Annot/A 42854 0 R/Subtype/Link/Rect[216 360 230 368]/Border[0 0 0]/H/N>> endobj 17059 0 obj <>/P 10158 0 R/Type/Annot/A 28352 0 R/Subtype/Link/Rect[232 360 249 369]/Border[0 0 0]/H/N>> endobj 17060 0 obj <>/P 10158 0 R/Type/Annot/A 42769 0 R/Subtype/Link/Rect[249 360 263 368]/Border[0 0 0]/H/N>> endobj 17061 0 obj <>/P 10158 0 R/Type/Annot/A 42742 0 R/Subtype/Link/Rect[265 360 279 368]/Border[0 0 0]/H/N>> endobj 17062 0 obj <>/P 10158 0 R/Type/Annot/A 27545 0 R/Subtype/Link/Rect[281 360 295 368]/Border[0 0 0]/H/N>> endobj 17063 0 obj <>/P 10158 0 R/Type/Annot/A 42672 0 R/Subtype/Link/Rect[297 360 311 368]/Border[0 0 0]/H/N>> endobj 17064 0 obj <>/P 10158 0 R/Type/Annot/A 42630 0 R/Subtype/Link/Rect[151 350 165 358]/Border[0 0 0]/H/N>> endobj 17065 0 obj <>/P 10158 0 R/Type/Annot/A 42589 0 R/Subtype/Link/Rect[167 350 181 358]/Border[0 0 0]/H/N>> endobj 17066 0 obj <>/P 10158 0 R/Type/Annot/A 42561 0 R/Subtype/Link/Rect[183 350 197 358]/Border[0 0 0]/H/N>> endobj 17067 0 obj <>/P 10158 0 R/Type/Annot/A 42527 0 R/Subtype/Link/Rect[199 350 216 359]/Border[0 0 0]/H/N>> endobj 17068 0 obj <>/P 10158 0 R/Type/Annot/A 42485 0 R/Subtype/Link/Rect[217 350 231 358]/Border[0 0 0]/H/N>> endobj 17069 0 obj <>/P 10158 0 R/Type/Annot/A 42436 0 R/Subtype/Link/Rect[233 350 247 358]/Border[0 0 0]/H/N>> endobj 17070 0 obj <>/P 10158 0 R/Type/Annot/A 42391 0 R/Subtype/Link/Rect[249 350 263 358]/Border[0 0 0]/H/N>> endobj 17071 0 obj <>/P 10158 0 R/Type/Annot/A 18044 0 R/Subtype/Link/Rect[265 350 279 358]/Border[0 0 0]/H/N>> endobj 17072 0 obj <>/P 10158 0 R/Type/Annot/A 38227 0 R/Subtype/Link/Rect[281 350 295 358]/Border[0 0 0]/H/N>> endobj 17073 0 obj <>/P 10158 0 R/Type/Annot/A 42288 0 R/Subtype/Link/Rect[151 340 168 349]/Border[0 0 0]/H/N>> endobj 17074 0 obj <>/P 10158 0 R/Type/Annot/A 42244 0 R/Subtype/Link/Rect[169 340 183 348]/Border[0 0 0]/H/N>> endobj 17075 0 obj <>/P 10158 0 R/Type/Annot/A 23441 0 R/Subtype/Link/Rect[185 340 199 348]/Border[0 0 0]/H/N>> endobj 17076 0 obj <>/P 10158 0 R/Type/Annot/A 42161 0 R/Subtype/Link/Rect[201 340 213 348]/Border[0 0 0]/H/N>> endobj 17077 0 obj <>/P 10158 0 R/Type/Annot/A 42123 0 R/Subtype/Link/Rect[167 330 177 338]/Border[0 0 0]/H/N>> endobj 17078 0 obj <>/P 10158 0 R/Type/Annot/A 42070 0 R/Subtype/Link/Rect[179 330 189 339]/Border[0 0 0]/H/N>> endobj 17079 0 obj <>/P 10158 0 R/Type/Annot/A 22051 0 R/Subtype/Link/Rect[191 330 208 339]/Border[0 0 0]/H/N>> endobj 17080 0 obj <>/P 10158 0 R/Type/Annot/A 41994 0 R/Subtype/Link/Rect[208 330 222 339]/Border[0 0 0]/H/N>> endobj 17081 0 obj <>/P 10158 0 R/Type/Annot/A 21438 0 R/Subtype/Link/Rect[224 330 238 339]/Border[0 0 0]/H/N>> endobj 17082 0 obj <>/P 10158 0 R/Type/Annot/A 41921 0 R/Subtype/Link/Rect[240 330 252 338]/Border[0 0 0]/H/N>> endobj 17083 0 obj <>/P 10158 0 R/Type/Annot/A 41881 0 R/Subtype/Link/Rect[212 320 226 329]/Border[0 0 0]/H/N>> endobj 17084 0 obj <>/P 10158 0 R/Type/Annot/A 41834 0 R/Subtype/Link/Rect[228 320 240 329]/Border[0 0 0]/H/N>> endobj 17085 0 obj <>/P 10158 0 R/Type/Annot/A 41776 0 R/Subtype/Link/Rect[198 310 212 319]/Border[0 0 0]/H/N>> endobj 17086 0 obj <>/P 10158 0 R/Type/Annot/A 41717 0 R/Subtype/Link/Rect[214 310 226 319]/Border[0 0 0]/H/N>> endobj 17087 0 obj <>/P 10158 0 R/Type/Annot/A 37629 0 R/Subtype/Link/Rect[202 300 219 309]/Border[0 0 0]/H/N>> endobj 17088 0 obj <>/P 10158 0 R/Type/Annot/A 41637 0 R/Subtype/Link/Rect[220 300 234 309]/Border[0 0 0]/H/N>> endobj 17089 0 obj <>/P 10158 0 R/Type/Annot/A 41587 0 R/Subtype/Link/Rect[236 300 250 309]/Border[0 0 0]/H/N>> endobj 17090 0 obj <>/P 10158 0 R/Type/Annot/A 41554 0 R/Subtype/Link/Rect[252 300 266 309]/Border[0 0 0]/H/N>> endobj 17091 0 obj <>/P 10158 0 R/Type/Annot/A 41505 0 R/Subtype/Link/Rect[268 300 282 309]/Border[0 0 0]/H/N>> endobj 17092 0 obj <>/P 10158 0 R/Type/Annot/A 37935 0 R/Subtype/Link/Rect[284 300 298 309]/Border[0 0 0]/H/N>> endobj 17093 0 obj <>/P 10158 0 R/Type/Annot/A 41432 0 R/Subtype/Link/Rect[151 290 165 299]/Border[0 0 0]/H/N>> endobj 17094 0 obj <>/P 10158 0 R/Type/Annot/A 41411 0 R/Subtype/Link/Rect[167 290 181 299]/Border[0 0 0]/H/N>> endobj 17095 0 obj <>/P 10158 0 R/Type/Annot/A 41343 0 R/Subtype/Link/Rect[183 290 195 299]/Border[0 0 0]/H/N>> endobj 17096 0 obj <>/P 10158 0 R/Type/Annot/A 41311 0 R/Subtype/Link/Rect[190 280 202 289]/Border[0 0 0]/H/N>> endobj 17097 0 obj <>/P 10158 0 R/Type/Annot/A 41281 0 R/Subtype/Link/Rect[231 270 239 279]/Border[0 0 0]/H/N>> endobj 17098 0 obj <>/P 10158 0 R/Type/Annot/A 41253 0 R/Subtype/Link/Rect[159 250 171 259]/Border[0 0 0]/H/N>> endobj 17099 0 obj <>/P 10158 0 R/Type/Annot/A 41201 0 R/Subtype/Link/Rect[203 240 220 249]/Border[0 0 0]/H/N>> endobj 17100 0 obj <>/P 10158 0 R/Type/Annot/A 41182 0 R/Subtype/Link/Rect[221 240 235 249]/Border[0 0 0]/H/N>> endobj 17101 0 obj <>/P 10158 0 R/Type/Annot/A 41157 0 R/Subtype/Link/Rect[237 240 251 249]/Border[0 0 0]/H/N>> endobj 17102 0 obj <>/P 10158 0 R/Type/Annot/A 41124 0 R/Subtype/Link/Rect[253 240 265 249]/Border[0 0 0]/H/N>> endobj 17103 0 obj <>/P 10158 0 R/Type/Annot/A 41094 0 R/Subtype/Link/Rect[211 230 223 239]/Border[0 0 0]/H/N>> endobj 17104 0 obj <>/P 10158 0 R/Type/Annot/A 37584 0 R/Subtype/Link/Rect[207 220 219 229]/Border[0 0 0]/H/N>> endobj 17105 0 obj <>/P 10158 0 R/Type/Annot/A 40740 0 R/Subtype/Link/Rect[190 210 204 219]/Border[0 0 0]/H/N>> endobj 17106 0 obj <>/P 10158 0 R/Type/Annot/A 18545 0 R/Subtype/Link/Rect[206 210 218 219]/Border[0 0 0]/H/N>> endobj 17107 0 obj <>/P 10158 0 R/Type/Annot/A 37581 0 R/Subtype/Link/Rect[175 190 192 199]/Border[0 0 0]/H/N>> endobj 17108 0 obj <>/P 10158 0 R/Type/Annot/A 40108 0 R/Subtype/Link/Rect[193 190 207 199]/Border[0 0 0]/H/N>> endobj 17109 0 obj <>/P 10158 0 R/Type/Annot/A 40075 0 R/Subtype/Link/Rect[209 190 223 199]/Border[0 0 0]/H/N>> endobj 17110 0 obj <>/P 10158 0 R/Type/Annot/A 39522 0 R/Subtype/Link/Rect[225 190 239 199]/Border[0 0 0]/H/N>> endobj 17111 0 obj <>/P 10158 0 R/Type/Annot/A 37571 0 R/Subtype/Link/Rect[241 190 255 199]/Border[0 0 0]/H/N>> endobj 17112 0 obj <>/P 10158 0 R/Type/Annot/A 37568 0 R/Subtype/Link/Rect[257 190 269 199]/Border[0 0 0]/H/N>> endobj 17113 0 obj <>/P 10158 0 R/Type/Annot/A 37559 0 R/Subtype/Link/Rect[175 180 189 189]/Border[0 0 0]/H/N>> endobj 17114 0 obj <>/P 10158 0 R/Type/Annot/A 38383 0 R/Subtype/Link/Rect[191 180 208 189]/Border[0 0 0]/H/N>> endobj 17115 0 obj <>/P 10158 0 R/Type/Annot/A 38339 0 R/Subtype/Link/Rect[209 180 221 189]/Border[0 0 0]/H/N>> endobj 17116 0 obj <>/P 10158 0 R/Type/Annot/A 18048 0 R/Subtype/Link/Rect[177 170 190 179]/Border[0 0 0]/H/N>> endobj 17117 0 obj <>/P 10158 0 R/Type/Annot/A 38271 0 R/Subtype/Link/Rect[191 170 201 179]/Border[0 0 0]/H/N>> endobj 17118 0 obj <>/P 10158 0 R/Type/Annot/A 17998 0 R/Subtype/Link/Rect[203 170 215 179]/Border[0 0 0]/H/N>> endobj 17119 0 obj <>/P 10158 0 R/Type/Annot/A 36787 0 R/Subtype/Link/Rect[447 670 461 678]/Border[0 0 0]/H/N>> endobj 17120 0 obj <>/P 10158 0 R/Type/Annot/A 36759 0 R/Subtype/Link/Rect[463 670 477 678]/Border[0 0 0]/H/N>> endobj 17121 0 obj <>/P 10158 0 R/Type/Annot/A 17931 0 R/Subtype/Link/Rect[479 670 491 678]/Border[0 0 0]/H/N>> endobj 17122 0 obj <>/P 10158 0 R/Type/Annot/A 17904 0 R/Subtype/Link/Rect[402 660 416 668]/Border[0 0 0]/H/N>> endobj 17123 0 obj <>/P 10158 0 R/Type/Annot/A 35883 0 R/Subtype/Link/Rect[418 660 432 668]/Border[0 0 0]/H/N>> endobj 17124 0 obj <>/P 10158 0 R/Type/Annot/A 35845 0 R/Subtype/Link/Rect[434 660 451 669]/Border[0 0 0]/H/N>> endobj 17125 0 obj <>/P 10158 0 R/Type/Annot/A 17769 0 R/Subtype/Link/Rect[452 660 466 668]/Border[0 0 0]/H/N>> endobj 17126 0 obj <>/P 10158 0 R/Type/Annot/A 35039 0 R/Subtype/Link/Rect[468 660 482 668]/Border[0 0 0]/H/N>> endobj 17127 0 obj <>/P 10158 0 R/Type/Annot/A 34250 0 R/Subtype/Link/Rect[484 660 498 668]/Border[0 0 0]/H/N>> endobj 17128 0 obj <>/P 10158 0 R/Type/Annot/A 34219 0 R/Subtype/Link/Rect[500 660 514 668]/Border[0 0 0]/H/N>> endobj 17129 0 obj <>/P 10158 0 R/Type/Annot/A 17550 0 R/Subtype/Link/Rect[359 650 373 658]/Border[0 0 0]/H/N>> endobj 17130 0 obj <>/P 10158 0 R/Type/Annot/A 33623 0 R/Subtype/Link/Rect[375 650 392 659]/Border[0 0 0]/H/N>> endobj 17131 0 obj <>/P 10158 0 R/Type/Annot/A 33108 0 R/Subtype/Link/Rect[393 650 405 658]/Border[0 0 0]/H/N>> endobj 17132 0 obj <>/P 10158 0 R/Type/Annot/A 33059 0 R/Subtype/Link/Rect[383 640 395 648]/Border[0 0 0]/H/N>> endobj 17133 0 obj <>/P 10158 0 R/Type/Annot/A 33035 0 R/Subtype/Link/Rect[364 630 368 638]/Border[0 0 0]/H/N>> endobj 17134 0 obj <>/P 10158 0 R/Type/Annot/A 32536 0 R/Subtype/Link/Rect[410 620 422 628]/Border[0 0 0]/H/N>> endobj 17135 0 obj <>/P 10158 0 R/Type/Annot/A 32509 0 R/Subtype/Link/Rect[401 610 415 618]/Border[0 0 0]/H/N>> endobj 17136 0 obj <>/P 10158 0 R/Type/Annot/A 17343 0 R/Subtype/Link/Rect[417 610 433 619]/Border[0 0 0]/H/N>> endobj 17137 0 obj <>/P 10158 0 R/Type/Annot/A 31775 0 R/Subtype/Link/Rect[434 610 446 618]/Border[0 0 0]/H/N>> endobj 17138 0 obj <>/P 10158 0 R/Type/Annot/A 31077 0 R/Subtype/Link/Rect[398 600 410 608]/Border[0 0 0]/H/N>> endobj 17139 0 obj <>/P 10158 0 R/Type/Annot/A 17304 0 R/Subtype/Link/Rect[418 590 430 598]/Border[0 0 0]/H/N>> endobj 17140 0 obj <>/P 10158 0 R/Type/Annot/A 17302 0 R/Subtype/Link/Rect[405 580 419 588]/Border[0 0 0]/H/N>> endobj 17141 0 obj <>/P 10158 0 R/Type/Annot/A 30265 0 R/Subtype/Link/Rect[421 580 435 588]/Border[0 0 0]/H/N>> endobj 17142 0 obj <>/P 10158 0 R/Type/Annot/A 17299 0 R/Subtype/Link/Rect[437 580 454 589]/Border[0 0 0]/H/N>> endobj 17143 0 obj <>/P 10158 0 R/Type/Annot/A 17297 0 R/Subtype/Link/Rect[455 580 467 588]/Border[0 0 0]/H/N>> endobj 17144 0 obj <>/P 10158 0 R/Type/Annot/A 30139 0 R/Subtype/Link/Rect[398 570 410 578]/Border[0 0 0]/H/N>> endobj 17145 0 obj <>/P 10158 0 R/Type/Annot/A 30100 0 R/Subtype/Link/Rect[401 560 413 568]/Border[0 0 0]/H/N>> endobj 17146 0 obj <>/P 10158 0 R/Type/Annot/A 17292 0 R/Subtype/Link/Rect[398 550 410 558]/Border[0 0 0]/H/N>> endobj 17147 0 obj <>/P 10158 0 R/Type/Annot/A 17289 0 R/Subtype/Link/Rect[405 540 422 549]/Border[0 0 0]/H/N>> endobj 17148 0 obj <>/P 10158 0 R/Type/Annot/A 17286 0 R/Subtype/Link/Rect[423 540 437 548]/Border[0 0 0]/H/N>> endobj 17149 0 obj <>/P 10158 0 R/Type/Annot/A 29238 0 R/Subtype/Link/Rect[439 540 453 548]/Border[0 0 0]/H/N>> endobj 17150 0 obj <>/P 10158 0 R/Type/Annot/A 29186 0 R/Subtype/Link/Rect[455 540 467 548]/Border[0 0 0]/H/N>> endobj 17151 0 obj <>/P 10158 0 R/Type/Annot/A 29150 0 R/Subtype/Link/Rect[398 530 410 538]/Border[0 0 0]/H/N>> endobj 17152 0 obj <>/P 10158 0 R/Type/Annot/A 17276 0 R/Subtype/Link/Rect[417 520 434 529]/Border[0 0 0]/H/N>> endobj 17153 0 obj <>/P 10158 0 R/Type/Annot/A 17273 0 R/Subtype/Link/Rect[434 520 446 528]/Border[0 0 0]/H/N>> endobj 17154 0 obj <>/P 10158 0 R/Type/Annot/A 28557 0 R/Subtype/Link/Rect[406 510 418 518]/Border[0 0 0]/H/N>> endobj 17155 0 obj <>/P 10158 0 R/Type/Annot/A 17268 0 R/Subtype/Link/Rect[415 500 427 508]/Border[0 0 0]/H/N>> endobj 17156 0 obj <>/P 10158 0 R/Type/Annot/A 28493 0 R/Subtype/Link/Rect[425 490 437 498]/Border[0 0 0]/H/N>> endobj 17157 0 obj <>/P 10158 0 R/Type/Annot/A 28447 0 R/Subtype/Link/Rect[410 480 422 488]/Border[0 0 0]/H/N>> endobj 17158 0 obj <>/P 10158 0 R/Type/Annot/A 28407 0 R/Subtype/Link/Rect[415 470 423 478]/Border[0 0 0]/H/N>> endobj 17159 0 obj <>/P 10158 0 R/Type/Annot/A 28362 0 R/Subtype/Link/Rect[415 460 423 468]/Border[0 0 0]/H/N>> endobj 17160 0 obj <>/P 10158 0 R/Type/Annot/A 27622 0 R/Subtype/Link/Rect[415 450 429 458]/Border[0 0 0]/H/N>> endobj 17161 0 obj <>/P 10158 0 R/Type/Annot/A 37767 0 R/Subtype/Link/Rect[431 450 448 459]/Border[0 0 0]/H/N>> endobj 17162 0 obj <>/P 10158 0 R/Type/Annot/A 27558 0 R/Subtype/Link/Rect[448 450 462 458]/Border[0 0 0]/H/N>> endobj 17163 0 obj <>/P 10158 0 R/Type/Annot/A 37738 0 R/Subtype/Link/Rect[464 450 476 458]/Border[0 0 0]/H/N>> endobj 17164 0 obj <>/P 10158 0 R/Type/Annot/A 37733 0 R/Subtype/Link/Rect[398 440 410 448]/Border[0 0 0]/H/N>> endobj 17165 0 obj <>/P 10158 0 R/Type/Annot/A 37726 0 R/Subtype/Link/Rect[410 430 422 438]/Border[0 0 0]/H/N>> endobj 17166 0 obj <>/P 10158 0 R/Type/Annot/A 37720 0 R/Subtype/Link/Rect[420 420 432 428]/Border[0 0 0]/H/N>> endobj 17167 0 obj <>/P 10158 0 R/Type/Annot/A 25937 0 R/Subtype/Link/Rect[410 410 422 418]/Border[0 0 0]/H/N>> endobj 17168 0 obj <>/P 10158 0 R/Type/Annot/A 25897 0 R/Subtype/Link/Rect[425 400 437 408]/Border[0 0 0]/H/N>> endobj 17169 0 obj <>/P 10158 0 R/Type/Annot/A 25864 0 R/Subtype/Link/Rect[410 390 422 398]/Border[0 0 0]/H/N>> endobj 17170 0 obj <>/P 10158 0 R/Type/Annot/A 25823 0 R/Subtype/Link/Rect[410 380 422 388]/Border[0 0 0]/H/N>> endobj 17171 0 obj <>/P 10158 0 R/Type/Annot/A 25004 0 R/Subtype/Link/Rect[410 370 422 378]/Border[0 0 0]/H/N>> endobj 17172 0 obj <>/P 10158 0 R/Type/Annot/A 24967 0 R/Subtype/Link/Rect[410 360 422 368]/Border[0 0 0]/H/N>> endobj 17173 0 obj <>/P 10158 0 R/Type/Annot/A 24904 0 R/Subtype/Link/Rect[410 350 424 358]/Border[0 0 0]/H/N>> endobj 17174 0 obj <>/P 10158 0 R/Type/Annot/A 37665 0 R/Subtype/Link/Rect[426 350 438 358]/Border[0 0 0]/H/N>> endobj 17175 0 obj <>/P 10158 0 R/Type/Annot/A 24233 0 R/Subtype/Link/Rect[406 340 414 348]/Border[0 0 0]/H/N>> endobj 17176 0 obj <>/P 10158 0 R/Type/Annot/A 17522 0 R/Subtype/Link/Rect[410 330 422 339]/Border[0 0 0]/H/N>> endobj 17177 0 obj <>/P 10158 0 R/Type/Annot/A 37657 0 R/Subtype/Link/Rect[415 320 429 329]/Border[0 0 0]/H/N>> endobj 17178 0 obj <>/P 10158 0 R/Type/Annot/A 22657 0 R/Subtype/Link/Rect[431 320 443 329]/Border[0 0 0]/H/N>> endobj 17179 0 obj <>/P 10158 0 R/Type/Annot/A 33061 0 R/Subtype/Link/Rect[410 310 427 319]/Border[0 0 0]/H/N>> endobj 17180 0 obj <>/P 10158 0 R/Type/Annot/A 22049 0 R/Subtype/Link/Rect[427 310 439 319]/Border[0 0 0]/H/N>> endobj 17181 0 obj <>/P 10158 0 R/Type/Annot/A 22000 0 R/Subtype/Link/Rect[398 300 410 309]/Border[0 0 0]/H/N>> endobj 17182 0 obj <>/P 10158 0 R/Type/Annot/A 21437 0 R/Subtype/Link/Rect[430 290 442 299]/Border[0 0 0]/H/N>> endobj 17183 0 obj <>/P 10158 0 R/Type/Annot/A 21403 0 R/Subtype/Link/Rect[402 280 416 289]/Border[0 0 0]/H/N>> endobj 17184 0 obj <>/P 10158 0 R/Type/Annot/A 21345 0 R/Subtype/Link/Rect[418 280 434 289]/Border[0 0 0]/H/N>> endobj 17185 0 obj <>/P 10158 0 R/Type/Annot/A 21003 0 R/Subtype/Link/Rect[435 280 449 289]/Border[0 0 0]/H/N>> endobj 17186 0 obj <>/P 10158 0 R/Type/Annot/A 20539 0 R/Subtype/Link/Rect[451 280 465 289]/Border[0 0 0]/H/N>> endobj 17187 0 obj <>/P 10158 0 R/Type/Annot/A 20117 0 R/Subtype/Link/Rect[467 280 481 289]/Border[0 0 0]/H/N>> endobj 17188 0 obj <>/P 10158 0 R/Type/Annot/A 20089 0 R/Subtype/Link/Rect[483 280 500 289]/Border[0 0 0]/H/N>> endobj 17189 0 obj <>/P 10158 0 R/Type/Annot/A 19675 0 R/Subtype/Link/Rect[500 280 514 289]/Border[0 0 0]/H/N>> endobj 17190 0 obj <>/P 10158 0 R/Type/Annot/A 19641 0 R/Subtype/Link/Rect[359 270 376 279]/Border[0 0 0]/H/N>> endobj 17191 0 obj <>/P 10158 0 R/Type/Annot/A 19094 0 R/Subtype/Link/Rect[377 270 391 279]/Border[0 0 0]/H/N>> endobj 17192 0 obj <>/P 10158 0 R/Type/Annot/A 19054 0 R/Subtype/Link/Rect[393 270 407 279]/Border[0 0 0]/H/N>> endobj 17193 0 obj <>/P 10158 0 R/Type/Annot/A 37614 0 R/Subtype/Link/Rect[409 270 421 279]/Border[0 0 0]/H/N>> endobj 17194 0 obj <>/P 10158 0 R/Type/Annot/A 18968 0 R/Subtype/Link/Rect[420 260 430 269]/Border[0 0 0]/H/N>> endobj 17195 0 obj <>/P 10158 0 R/Type/Annot/A 18951 0 R/Subtype/Link/Rect[432 260 446 269]/Border[0 0 0]/H/N>> endobj 17196 0 obj <>/P 10158 0 R/Type/Annot/A 18899 0 R/Subtype/Link/Rect[448 260 462 269]/Border[0 0 0]/H/N>> endobj 17197 0 obj <>/P 10158 0 R/Type/Annot/A 37609 0 R/Subtype/Link/Rect[464 260 480 269]/Border[0 0 0]/H/N>> endobj 17198 0 obj <>/P 10158 0 R/Type/Annot/A 37606 0 R/Subtype/Link/Rect[481 260 495 269]/Border[0 0 0]/H/N>> endobj 17199 0 obj <>/P 10158 0 R/Type/Annot/A 18810 0 R/Subtype/Link/Rect[497 260 511 269]/Border[0 0 0]/H/N>> endobj 17200 0 obj <>/P 10158 0 R/Type/Annot/A 18771 0 R/Subtype/Link/Rect[359 250 376 259]/Border[0 0 0]/H/N>> endobj 17201 0 obj <>/P 10158 0 R/Type/Annot/A 37604 0 R/Subtype/Link/Rect[377 250 391 259]/Border[0 0 0]/H/N>> endobj 17202 0 obj <>/P 10158 0 R/Type/Annot/A 37603 0 R/Subtype/Link/Rect[393 250 409 259]/Border[0 0 0]/H/N>> endobj 17203 0 obj <>/P 10158 0 R/Type/Annot/A 18158 0 R/Subtype/Link/Rect[410 250 424 259]/Border[0 0 0]/H/N>> endobj 17204 0 obj <>/P 10158 0 R/Type/Annot/A 18646 0 R/Subtype/Link/Rect[426 250 440 259]/Border[0 0 0]/H/N>> endobj 17205 0 obj <>/P 10158 0 R/Type/Annot/A 18628 0 R/Subtype/Link/Rect[442 250 456 259]/Border[0 0 0]/H/N>> endobj 17206 0 obj <>/P 10158 0 R/Type/Annot/A 18595 0 R/Subtype/Link/Rect[458 250 472 259]/Border[0 0 0]/H/N>> endobj 17207 0 obj <>/P 10158 0 R/Type/Annot/A 37582 0 R/Subtype/Link/Rect[474 250 488 259]/Border[0 0 0]/H/N>> endobj 17208 0 obj <>/P 10158 0 R/Type/Annot/A 18537 0 R/Subtype/Link/Rect[490 250 504 259]/Border[0 0 0]/H/N>> endobj 17209 0 obj <>/P 10158 0 R/Type/Annot/A 18488 0 R/Subtype/Link/Rect[359 240 373 249]/Border[0 0 0]/H/N>> endobj 17210 0 obj <>/P 10158 0 R/Type/Annot/A 18460 0 R/Subtype/Link/Rect[375 240 389 249]/Border[0 0 0]/H/N>> endobj 17211 0 obj <>/P 10158 0 R/Type/Annot/A 42745 0 R/Subtype/Link/Rect[391 240 408 249]/Border[0 0 0]/H/N>> endobj 17212 0 obj <>/P 10158 0 R/Type/Annot/A 18405 0 R/Subtype/Link/Rect[409 240 423 249]/Border[0 0 0]/H/N>> endobj 17213 0 obj <>/P 10158 0 R/Type/Annot/A 18332 0 R/Subtype/Link/Rect[425 240 439 249]/Border[0 0 0]/H/N>> endobj 17214 0 obj <>/P 10158 0 R/Type/Annot/A 18295 0 R/Subtype/Link/Rect[441 240 455 249]/Border[0 0 0]/H/N>> endobj 17215 0 obj <>/P 10158 0 R/Type/Annot/A 25820 0 R/Subtype/Link/Rect[457 240 471 249]/Border[0 0 0]/H/N>> endobj 17216 0 obj <>/P 10158 0 R/Type/Annot/A 18192 0 R/Subtype/Link/Rect[473 240 485 249]/Border[0 0 0]/H/N>> endobj 17217 0 obj <>/P 10158 0 R/Type/Annot/A 18151 0 R/Subtype/Link/Rect[398 230 410 239]/Border[0 0 0]/H/N>> endobj 17218 0 obj <>/P 10158 0 R/Type/Annot/A 37542 0 R/Subtype/Link/Rect[422 220 436 229]/Border[0 0 0]/H/N>> endobj 17219 0 obj <>/P 10158 0 R/Type/Annot/A 18029 0 R/Subtype/Link/Rect[438 220 455 229]/Border[0 0 0]/H/N>> endobj 17220 0 obj <>/P 10158 0 R/Type/Annot/A 18000 0 R/Subtype/Link/Rect[455 220 469 229]/Border[0 0 0]/H/N>> endobj 17221 0 obj <>/P 10158 0 R/Type/Annot/A 17980 0 R/Subtype/Link/Rect[471 220 485 229]/Border[0 0 0]/H/N>> endobj 17222 0 obj <>/P 10158 0 R/Type/Annot/A 17955 0 R/Subtype/Link/Rect[487 220 501 229]/Border[0 0 0]/H/N>> endobj 17223 0 obj <>/P 10158 0 R/Type/Annot/A 37522 0 R/Subtype/Link/Rect[503 220 517 229]/Border[0 0 0]/H/N>> endobj 17224 0 obj <>/P 10158 0 R/Type/Annot/A 17906 0 R/Subtype/Link/Rect[359 210 373 219]/Border[0 0 0]/H/N>> endobj 17225 0 obj <>/P 10158 0 R/Type/Annot/A 17835 0 R/Subtype/Link/Rect[375 210 389 219]/Border[0 0 0]/H/N>> endobj 17226 0 obj <>/P 10158 0 R/Type/Annot/A 17813 0 R/Subtype/Link/Rect[391 210 405 219]/Border[0 0 0]/H/N>> endobj 17227 0 obj <>/P 10158 0 R/Type/Annot/A 17785 0 R/Subtype/Link/Rect[407 210 421 219]/Border[0 0 0]/H/N>> endobj 17228 0 obj <>/P 10158 0 R/Type/Annot/A 37498 0 R/Subtype/Link/Rect[423 210 437 219]/Border[0 0 0]/H/N>> endobj 17229 0 obj <>/P 10158 0 R/Type/Annot/A 37496 0 R/Subtype/Link/Rect[439 210 453 219]/Border[0 0 0]/H/N>> endobj 17230 0 obj <>/P 10158 0 R/Type/Annot/A 17582 0 R/Subtype/Link/Rect[455 210 467 219]/Border[0 0 0]/H/N>> endobj 17231 0 obj <>/P 10158 0 R/Type/Annot/A 30168 0 R/Subtype/Link/Rect[420 200 434 209]/Border[0 0 0]/H/N>> endobj 17232 0 obj <>/P 10158 0 R/Type/Annot/A 41900 0 R/Subtype/Link/Rect[436 200 452 209]/Border[0 0 0]/H/N>> endobj 17233 0 obj <>/P 10158 0 R/Type/Annot/A 17518 0 R/Subtype/Link/Rect[453 200 467 209]/Border[0 0 0]/H/N>> endobj 17234 0 obj <>/P 10158 0 R/Type/Annot/A 17493 0 R/Subtype/Link/Rect[469 200 483 209]/Border[0 0 0]/H/N>> endobj 17235 0 obj <>/P 10158 0 R/Type/Annot/A 19079 0 R/Subtype/Link/Rect[485 200 499 209]/Border[0 0 0]/H/N>> endobj 17236 0 obj <>/P 10158 0 R/Type/Annot/A 17425 0 R/Subtype/Link/Rect[359 190 376 199]/Border[0 0 0]/H/N>> endobj 17237 0 obj <>/P 10158 0 R/Type/Annot/A 17397 0 R/Subtype/Link/Rect[377 190 391 199]/Border[0 0 0]/H/N>> endobj 17238 0 obj <>/P 10158 0 R/Type/Annot/A 17377 0 R/Subtype/Link/Rect[393 190 407 199]/Border[0 0 0]/H/N>> endobj 17239 0 obj <>/P 10158 0 R/Type/Annot/A 37471 0 R/Subtype/Link/Rect[409 190 423 199]/Border[0 0 0]/H/N>> endobj 17240 0 obj <>/P 10158 0 R/Type/Annot/A 17316 0 R/Subtype/Link/Rect[425 190 439 199]/Border[0 0 0]/H/N>> endobj 17241 0 obj <>/P 10158 0 R/Type/Annot/A 17307 0 R/Subtype/Link/Rect[441 190 455 199]/Border[0 0 0]/H/N>> endobj 17242 0 obj <>/P 10158 0 R/Type/Annot/A 17303 0 R/Subtype/Link/Rect[457 190 473 199]/Border[0 0 0]/H/N>> endobj 17243 0 obj <>/P 10158 0 R/Type/Annot/A 17301 0 R/Subtype/Link/Rect[474 190 488 199]/Border[0 0 0]/H/N>> endobj 17244 0 obj <>/P 10158 0 R/Type/Annot/A 17300 0 R/Subtype/Link/Rect[490 190 504 199]/Border[0 0 0]/H/N>> endobj 17245 0 obj <>/P 10158 0 R/Type/Annot/A 17298 0 R/Subtype/Link/Rect[359 180 373 189]/Border[0 0 0]/H/N>> endobj 17246 0 obj <>/P 10158 0 R/Type/Annot/A 17296 0 R/Subtype/Link/Rect[375 180 387 189]/Border[0 0 0]/H/N>> endobj 17247 0 obj <>/P 10158 0 R/Type/Annot/A 17295 0 R/Subtype/Link/Rect[398 170 415 179]/Border[0 0 0]/H/N>> endobj 17248 0 obj <>/P 10158 0 R/Type/Annot/A 17293 0 R/Subtype/Link/Rect[415 170 427 179]/Border[0 0 0]/H/N>> endobj 17249 0 obj <>/P 10158 0 R/Type/Annot/A 17291 0 R/Subtype/Link/Rect[402 160 418 169]/Border[0 0 0]/H/N>> endobj 17250 0 obj <>/P 10158 0 R/Type/Annot/A 37450 0 R/Subtype/Link/Rect[419 160 433 169]/Border[0 0 0]/H/N>> endobj 17251 0 obj <>/P 10158 0 R/Type/Annot/A 17287 0 R/Subtype/Link/Rect[435 160 449 169]/Border[0 0 0]/H/N>> endobj 17252 0 obj <>/P 10158 0 R/Type/Annot/A 17284 0 R/Subtype/Link/Rect[451 160 468 169]/Border[0 0 0]/H/N>> endobj 17253 0 obj <>/P 10158 0 R/Type/Annot/A 17282 0 R/Subtype/Link/Rect[468 160 482 169]/Border[0 0 0]/H/N>> endobj 17254 0 obj <>/P 10158 0 R/Type/Annot/A 17280 0 R/Subtype/Link/Rect[484 160 501 169]/Border[0 0 0]/H/N>> endobj 17255 0 obj <>/P 10158 0 R/Type/Annot/A 17278 0 R/Subtype/Link/Rect[502 160 516 169]/Border[0 0 0]/H/N>> endobj 17256 0 obj <>/P 10158 0 R/Type/Annot/A 17275 0 R/Subtype/Link/Rect[359 150 376 159]/Border[0 0 0]/H/N>> endobj 17257 0 obj <>/P 10158 0 R/Type/Annot/A 17272 0 R/Subtype/Link/Rect[377 150 391 159]/Border[0 0 0]/H/N>> endobj 17258 0 obj <>/P 10158 0 R/Type/Annot/A 17270 0 R/Subtype/Link/Rect[393 150 407 159]/Border[0 0 0]/H/N>> endobj 17259 0 obj <>/P 10158 0 R/Type/Annot/A 17267 0 R/Subtype/Link/Rect[409 150 423 159]/Border[0 0 0]/H/N>> endobj 17260 0 obj <>/P 10158 0 R/Type/Annot/A 44807 0 R/Subtype/Link/Rect[425 150 441 159]/Border[0 0 0]/H/N>> endobj 17261 0 obj <>/P 10158 0 R/Type/Annot/A 37540 0 R/Subtype/Link/Rect[442 150 456 159]/Border[0 0 0]/H/N>> endobj 17262 0 obj <>/P 10158 0 R/Type/Annot/A 44733 0 R/Subtype/Link/Rect[458 150 475 159]/Border[0 0 0]/H/N>> endobj 17263 0 obj <>/P 10158 0 R/Type/Annot/A 37531 0 R/Subtype/Link/Rect[475 150 489 159]/Border[0 0 0]/H/N>> endobj 17264 0 obj <>/P 10158 0 R/Type/Annot/A 17951 0 R/Subtype/Link/Rect[359 140 376 149]/Border[0 0 0]/H/N>> endobj 17265 0 obj <>/P 10158 0 R/Type/Annot/A 44648 0 R/Subtype/Link/Rect[377 140 391 149]/Border[0 0 0]/H/N>> endobj 17266 0 obj <>/P 10158 0 R/Type/Annot/A 44592 0 R/Subtype/Link/Rect[393 140 405 149]/Border[0 0 0]/H/N>> endobj 17267 0 obj <> endobj 17268 0 obj <> endobj 17269 0 obj <> endobj 17270 0 obj <> endobj 17271 0 obj <> endobj 17272 0 obj <> endobj 17273 0 obj <> endobj 17274 0 obj <> endobj 17275 0 obj <> endobj 17276 0 obj <> endobj 17277 0 obj <> endobj 17278 0 obj <> endobj 17279 0 obj <> endobj 17280 0 obj <> endobj 17281 0 obj <> endobj 17282 0 obj <> endobj 17283 0 obj <> endobj 17284 0 obj <> endobj 17285 0 obj <> endobj 17286 0 obj <> endobj 17287 0 obj <> endobj 17288 0 obj <> endobj 17289 0 obj <> endobj 17290 0 obj <> endobj 17291 0 obj <> endobj 17292 0 obj <> endobj 17293 0 obj <> endobj 17294 0 obj <> endobj 17295 0 obj <> endobj 17296 0 obj <> endobj 17297 0 obj <> endobj 17298 0 obj <> endobj 17299 0 obj <> endobj 17300 0 obj <> endobj 17301 0 obj <> endobj 17302 0 obj <> endobj 17303 0 obj <> endobj 17304 0 obj <> endobj 17305 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17306 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17307 0 obj <> endobj 17308 0 obj <> endobj 17309 0 obj <> endobj 17310 0 obj <> stream q /X1 Do Q q endstream endobj 17311 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17312 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17313 0 obj <> stream HWێF}W#s X;qk0 ZHEr"RV[E65du$Y:}Nu4ᄏ?)o#eU_[rZdI*h#)UˡZݩnToũ~zž^ohE(DsLbDj;]+n^i',Q;ۨERdy|0y p&$4IUWkkmKs;gvp0Z+7+"綁DPR|w7)v"*Lh3MTd+1zbS&Q PJ(bCcPR!yjf뀽f뀽a؛a؛a؛eۀeۀcػcػcػ}ʰO)> g ,`1쳀}ư9> <`_0싀}4R[iFԆ=Q-!*dOm SRj5ZjC>PfTKmbTKmbՌj Q @Q-Q-!aV36D1jF(FԆ(}ZͨŰTR[FԆ=Q-!*dOm SRj ZjC>PaTKmbTKmb5j Q @Q-Q-!a06D1F(FԆ(}ZèŰTkR[YFԆ=Q-!*dOm SRj-ZjC>PeTKmbTKmbj Q @Q-Q-!a26D1ZF(FԆ(}Z˨ŰTkR[9FԆ=Q-!*dOmZs-2-Rq\$EQX!bmכn>!Gs.vInEe4Qx8Mu42q*+;!nQdVHܔu7L]܍e|y7$ ."ߌq-RﺏǺl?L1[6I~6n~0pK-ל5E͖ v&t.RSǟa=1 7 'e|$`#UyH!r. s@NI*ƒo\a@tz0b0a2s[N?xWO{uBVҪHQcʸ]聫p5PH.l(|L|D(9ec2&nҼPF"9Mzu9TUؖc5X< Pg=N7T.Qk~4f[y -z߿tL<án)~~ DVUn܎'D݁FsKP*sŔSmeXqKE+{FC]R0$fKʬyςLub _퀞 \\PXB,!F >u@JX'bnBM2xߖLUA۝@sI>m]Rp|KEOyU>>.UEpo. jFifqxP~CHf`1Kk_1T5|{p5NTrO>[p9[`z8`.+ 20:S,`8̿) my)'5NP=L/U~?NdczvV;2d\gͬ-(nK5/]kOIiO8充Dr5@o hvRe-cJ׳Il Bèxb4Xkʡ<HkRw vO w|S~2<7[O\CA\;E_*?s*a$vzС(Lc!S4ꡭUZ1R[KKNϚzU^X&T]6N X3L)9aYr%hG\/ $:̔6#|v1)xg2Ш 5[^fYzvsE՘]*݅Iq+ow]Oeps#5}<߰p>ޯ??; jtv͝i5N%azS#;i?Ş3E=c:t–YYG.SfĺlO߯YƵZ8(P8ѝpVi=~Tn>t5#Qx<-W(9t 2e@.4=Oi\g9-Ôߎ BQ tO\5*dT~ӷ޶a|ϯK CK;q,08ָhۯGQr-.P"EQ? ԉїi !&V5`e)c4G>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17315 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17316 0 obj <> endobj 17317 0 obj <> stream q /X1 Do Q q endstream endobj 17318 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17319 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17320 0 obj <> stream HW]۶}ׯ $ZEQf[ Ph AܵHrwF$e#6j/y7_}}-IK2LF` a]瀳wo9ihj64{wnSP"1+Y s<.R&a\SU6oȳ"WI ')WSg}0>d$ؙ sv,(e& |2rL]LcJc\\8QQ)rsw}{{᱗{鱗{鱗{O>!'`zS}O >#g`ys} >'`_x }/ Ǿ${h]!j]|Pj]|Q>{(BQ{OPCS TE!`Vu}"{j]պ>D= BQ{OPZׇ(ZA!`Vu}@u}ٻ>@u}ٻ>D]պ>D=JBQ{OPZׇ(ZI!`Vu}"TET+ պ>D=JBPj]j%Zׇ(ZIPCPC!gE!`6!TETu}"TETu}"{Mպ>@u}"{Mպ>D=&j]պ>D=&j]jBj]|Pj]|Q>2*2a1[!x _8>o(.֌3C0Xl{m6o vYAx e8Q[ONn݌rҲ\Gyz>C3Y҆,f0lʾ4a:üFxImqfkutk [K H_^!HX3AYr#$lz>Gͩ:x]N3 ksmcX0}kfYp#R8<圇h \RNuA;6湂g3,gCkƌgvɽI:zY,3ܒ34@XPw-7 Z H =VѠ }u$ʤX(NCC3^C mrm&"LV&8jhW3  ; rs϶5 }yN4_=8/ix9Nƣ{]fQ,jlI C'89uR8s_yw<_wg"e^')(l+EH,"p1f#$[tϪ\L~y1n>qœSS@I)9ql:4uâpa42{,ى,zix,/Z7f4-:[e_rV48 J(0:KqJ70C}*a FKK| nr^]OsNNۼfQ0ԧE a)Z`CSI5E p.ѻfNYԡA3fߌp2Jj< >[05/R+KwhhS>/cm1d2[5WK%M^޿'Rp4V>ʖùEGTuq{9 l* 36J'-?]'} ՚@9¿섑jo0 0̺unf[ᴓ(6t펥!P\wQvntGN#_o?9c:-. 8 Q7 FI` `U: K[B 11 0Y걮=a!5QF7SAUy˕6_sH;2&GX ,7ֈhwyT4c$]޻0oi#Cۿts?x;% Sܨ*H9 (&G2/$8KtgtilڒHƦ4PO*qy ]D*O!"u;`ҳ=09" cLY ^i:WFdnn0Le4O?ٌ ʼMrmv-9v.8hXP1mKDu w䏰eI"y |weʣN(տHX3A#t' /QS Ni=^{(&f#ۤa#} 0rkY&Gr m~A7[& sPٸ맑M%E#r9pxME唨pZT(Kp\^UVbHeW7O/Q^Ql7]v)[QjDOe7Idw kb,\u>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17322 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17323 0 obj <> endobj 17324 0 obj <> endobj 17325 0 obj <> stream q /X1 Do Q q endstream endobj 17326 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17327 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17328 0 obj <> stream HWkoܶ_2`C/hq.Тh6H'd-VJwF" g}8Krs{Ώ|?ɐ>ϥg"L&")x1T] ՓzmWUU/{ov}>w/ 9Q^H[q 6hJ/x7mfTiۇ4NY:y ]oy!}9$1 e{t{/mNrr"l Yn8c.,[;cx'sG='sG G G G$KG$KG}L1>vDŽQG}BO)>uԧQSG}F>sQ2´6v8ZCƀEƐ媷1dm Xkm Yzǵp!P︖1`1drµ6,BZNƀEƐEw\ k9ZZCq-'\kc";km µ6,Wp!UocrkZCq \kc"\kc";km Yzǵpp!PV1d µ6,µ6,BZAƐEw\+ѓkm YzZCƐ媷1`1dJµ6,BZIƀEƐEw\+ k%ZZCq$\kc";km Xkm Yzǵp!PV1dm Xkm YzC><~Vy׻;u g؍*1NbnL_eN#ꤋǕϓI~*!#_MAY4򋧶e{z{JW߇ LM9|Ȓ_No*esS ,ɱ7I~hںnQx\d3B7z}"u{?ih;=v/=M9Tmqڣ8iPݙIT`dA QP՚ѿ4i _6?L(xʅ9T| ,fbbVԵYvb[/ij`oV9n "KҢq$tD0X|'՜Ŋ{"_Mx ({SiĬ+gL"ՌMi=XhX-`uh('Y$PLqZXL^5">6:7 )y:ԽRAx1S0HFU;E"%bFHMhIÜ|3<9؟87&Wm-I y6X*B8 C%v<  ЫAU͸ECej֓Ėz{7V)Œ8VZU5Lrℚ `&7irYM{W/g}NV7eh)>?wj83M޽lIf!V /j_`{Kb8T|a*LNsr(M5 n]&*-eaƳU ,K3l1M9.խ9bIloFֲnԌ\![!'OjBc^#xt[[R?Տ |R|4~*q,BCbP&̝2cr ,Cn*e Em)\0=̑Q9Qb_l$Il|Us'"0H6*&[$*8F9^P;C%V [ձ}敛e{8>vN8sPթ(WK#9w잾p9CMœF`I9&K25dZ_0;A㱩L-lrt*WU\u{'ncnb%"o<Ꮫ־=^Vm6 Px+짣UF1vDC3s4 [#淰_«eA Px$c-R}gyBȬef\MGxhr|NX]-!3yP׎O*䄘k /z#I|: K4Q´.Å(HO} X-/9~p~Se"Au%|JVyG?!h(U5)a38lL#qkWܝ#8`pBSf_6[H ϳ5 U!Q$NzXhld95a2~*Tj"f^{>6ܸw ef^3 娩Pu6 l9.YrLj ^$Y ^_*Q=TDo@% ~ٕaendstream endobj 17329 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17330 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17331 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17332 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17333 0 obj <> endobj 17334 0 obj <> endobj 17335 0 obj <> endobj 17336 0 obj <> endobj 17337 0 obj <> stream q /X1 Do Q q endstream endobj 17338 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17339 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17340 0 obj <> stream HW]oܶ}ׯi~J"Ph(lq جe[ΐԮDA= o7^=gϊ it bUUe]!u!Yˊ4~mn١-.~P<]kI1WEśOVջf;}Ε+i=~}n¯^zf8[ұ%ΝZXK={bL x^d%W<U îxW8b\q F RRQ Q@ܥɧ6@)+kkk[[[ؗ2c_ˌ}E2W*c_}M3`2`iVMmBMm٧6@Mm٧6DSզ6D3*B QLPmjԆ(}ZE6!`VMm"TETզ6D3*B PjSjԆ(}ZE6 M6!*gE6!*gOm"TET զ6D3jB PjSj5Ԇ(}ZM6PmjC>S&TET զ6@Mm"gՄjSj5Զ/ Ԇ}jԆ}jCT>PmjC>S!TETkզ6@Mm"g5jSj (B QLPmjC>S!TE6!`Mm"g5jS۾jSr PjSr Q9{ǝs o6b-?)&f㲮Y%ŪnƳr-d:>h]DXcZڿ K`F\z8Ivp ,l;}8<3B8G80SnvrDtovSе)aww>?Uq$0 ;0fk"XYibKc~d$b.O˰W/UrAʱb*L="!3X;tLtጩP+3LcϤ۔)r0-n ~Ilw-l0Y='uMsqaKnjQU9; 'TeЇmBUCnت-/SMN.A RXcs8lfzqOB( la&㛨EZ|"Օ >RzBFd@ nՆ(_֗:wmY ͌<"g TP)mr=V G.e;iùuNJ߆([˃M/*la]8:_"O2"S4`eNm'b9f F |?7ể6=rۓfIP,lWo_|z:(v RAkk5p}on?UɹkLt&7fWBx3t%YD6a (}kȪ[ϻf> Cdf +Om M4n ~l?g* Q%Qpo,t?ӜSvƖͮG`:d8}߆ -};N[SB/iF5)5]!F`9A (& N[g%20dۿf@M2Do=%)F7$'/Zv>28mA]^u&Ii*E˻؅V) nK Hnrtgg 4 FіпUkM@f؀L;2\hJmq^a'~&^ D>$4Jt[(1P@H=a9>s0>PV9"J ŨiPC˻(̏<d0j95?W6,Uk 7$*K>R%񥛁LMY9!ñE.㷎kn6ɍous2d\܄c:3LFնvκ:l'}eL +mr. NoSr Ra3&bU!h ?*/xRɌ&ipz70_il}}Y}W 9endstream endobj 17341 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17342 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17343 0 obj <> endobj 17344 0 obj <> stream q /X1 Do Q q endstream endobj 17345 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17346 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17347 0 obj <> stream HnFF)R2\$P;n.҆@/ `%Q .E){giSfFV pl|:#۪_^I-_zb?RhX*c=o`SV-~\H]l"nDwx'bLLDю@8K]g@C)%*0v7 ([bo{Kccw#3>b@3>#cω}>gsb_0/G>ؓ8keZDQ{Ŵg8KPLkq(ƞ2Y{Z˴g@1Y{Z˴gbIk-ZŴgbIk-Z%'LkqZ%'Lkq(ƞ2Y#Z% (8KY=΀bZD1i-ؓ:8i-ؓ:8KcOZ (8KcOZ,Q=icZ3,Q=icZD1i-,Qg@1Y=EqZ%'Lkq(ƞ3PLkq(ƞ3Y{Zϴg@1Y{ZϴgbIk=ZŴgbIk=Z%'Lkqֈg8i-Eq(jUK 9oI)fei奈wou,ɲc^\Li!l/bb0e/TVvx}v9[YH:P;̝C]_V}u׵Yw[Y?nZԾ%uTnپ%RJvQj\jbzoCuuiͦe^Ȯo\g4>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17349 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17350 0 obj <> stream q /X1 Do Q q endstream endobj 17351 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17352 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17353 0 obj <> stream HW]۶}ׯK-嗾Io{Shp<$Ak%u_gDR]G px>?1o"R^⬔i."i&⣎>]⧈mG}o}lzn}:ͮ.gXr<(3kO `/F29,f ~?}acU2OE3QU\8ч|Lb*Ù @QrP(χ@9>@  K K K + + g,`쳀}F9><`_싀}A/ؗ2`_ˀ}E>,'D T}"T} >@}"j}jZ(BQ@PC>P TE!`V}"j}>D BQ@P;DPCTPCT!*dE!`V}"j}>DJBQ@PZ߇(}ZI!`V}"TET+ >DJB)BQ!{(BQ!{߇Z߇(}ZE!`V}"TET>D*BPj}jZ߇(}ZEPC>P"TETC} >@} >D쫴*3oe6&?e6lUy^śC)y:m;x)$vOkYʼw$6m5?\,l;m08 `05ힲS)W[v0 C}Vm՟ð /<N}񌫴dp_*3?nh_t9y=,#os;i?{$莥WӫL*M恋, ?18BM[caxDR׃ְ>LD\L}7\m07pKλYOYBv;kDZ>$g? `a4?Kݟ6X 4@JOnxfdMjYʹbr /)XLmr85LصO;}V`RsNy~K8p ̗;PJ`t>'lNERC eZevn ZV=`VeV~~Ֆ,OU&ƽAE0)ϫ|!`bĀo |[*\*,_nvrNpzo,sV)w 'ar^`"V`'&O9p{hf9\n=-C?y.eX߮_Qwt(ala+@[kmÊ0įs~~e n3B.]H2d3}J-̹_xXg`l]&`HX /Sb!L.k%Zfi%J0r R`gbYƔPXls;c:G[*2mPYlaIe|B^.U> yP X魬{t ]Bq7l|UPeν1.[3\-#t\7;YVZMťW'jR =RDMr0m"Lz>~J ͠q)H *bu!y 9؛Xy_Lz>[%58edێ|u& VWYltiomw0uճ>B99F/0 ¤r,=_ݔ3dM=^-xS@{$!:*Pz !JL#-rA3zNpm]_Crݓvܶt X%3{q¦}M]?6f?7$A@SbREg۩6usv֨fMh*WI>R=c|;-B`oB&/R~6*p9 ݚPB}9:2`eҔ5͓ \s ֪kuGT- RY QƞfͻwpvqӟKsȅ+:T&6+ ZLGDA$A-.x rRZX(YS"B\zSOd\i8r+|+1 vo9;@BmWk[%}>[<ٓX%d䲴:O)?k~ ޝ.G?mż 'Տܧ"%65X,i] 6," :9{4`N*%$GjMf]} )L%Xx RD7]h6 ?*CQMl4}2?Y'msqw.)ߓixja 3@&QO[[cJ3n'nuWfk2rVR.:2?ɞvjϡ&* upۓt'My@-?o>O`@hiw A1< ݔra;99.Xj~ȪixnelE./ xFrYwPhԊgS}P1U# '_Ql R `P>0E!7;pE͜DN nzvv]O\4^4p|H?5{ T%jnIە&RoZ5pH瞬w/6޺<^hO/7p%jn``߮1?6ӯ.סZ{ i"~qx3aϏ4 :<Ob =ُ-g; _2:Fsm-H*ŠmYJ%c>ҁývtkS0Owq/SELFvwGaWh^6 :.L=|0ѯkDR|'Dz'RXlxysѓe@,prӡ_kU8{n88NHĬzvΦ 7k@nǩARRό )ߥm2jALc6ڇ?n#q+7@|ǻXJxBi+F5=\SESm¢x Γ^&O/ NîS">ε&ȴZSέhS4+6ZϷ>hs\uwR0 {}vBqA{`o^S4x+R}b*]ᑧg"dT\IY bmSa\Ȝvg <ȡDn LcPF JVдrRG|*8IdRբeYvOZT:<_ wR+m,"E`1F=/\7DS `O=xh,f{sivؽ!{\( fI%(l[g?<zTwO\T{\U5g ɕ[C@feV.ߟ\2?g?Q HwvwL=0PՏ=P5 -J{{SbQAT Brd>Z̽A"՗l\/[ z􄏗p4h.`QB 8͉~@$X_6(ࢩM<㲧,8 ;y47 U1tg t "l}lhωvUedS\(}pMAP![ň5XLi8 a~q$ =t?6 6#sDk}7׋4u} 鱸>֬)w霁[@Do-OWp nA@zdK;,z\ܰBk}1.qVtmz/Og40řA:>SM{Me mKĺjFqզV5&n@Lbƿ2nn׍B;R>2ӿ7'Bendstream endobj 17354 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17355 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17356 0 obj <> endobj 17357 0 obj <> stream q /X1 Do Q q endstream endobj 17358 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17359 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17360 0 obj <> stream HWn8}WQW] Ŧ<8@e[Yw"Ym#caNt0~:_g?|DLT RedE2#١M>]M"Xǒw}kna.9d7}rI7O\',Y* ^6L?w4<g7&P<+3ZT@ts{X5Β/m}~x5!p؛#<ﺿkrjy5oLp &ᙰl!J'* ރ]~%3i/MbeK>$ 1U*6D˅6@  m{{W{W{W{{{7{7{7{ y>'`_D }/Eľ$ؗ`_F+}f!жM$І}hІ}hCT>PmhC>R$TET+ Ն6@ m"GjCj%(B QHPmhC>R$TE6!`V m"GjC6QjCb PjCb Q1(B QHPmhC>R"TE6!`V m"GUjCՆ6D#*B QHPmhІ(}ZE6!`V mD mه6@ mه6DCՆ6D#jB QHPmhІ(}ZM6!`V m"TET Ն6D#jB PjCj5І(}ZM6mC6!*fE6!*fEuڎ\+ *8[ mrI7O\'5L?C6L73Qm}ޜ}޼K~$<vl$/Ye əV__TeMrYdHۡ=|FlKwL̬im`78hyƧt gbsQ1ZEE¹j)61omp08#m=_cf*;wEEQXâK._517 ILTr m \r%V!cVq#ffONJ4<ݠbUrBn๜(^uAQZrYk>2Ub?sHLUuqW <]QlT^,!*<$ E(23EE/I^Q&IPQP(:$VDEG">_Q涢銢*[QSR6(g:?x(+hȯ\V:k]eI6Un < `r*OB8  (G/% yCDO8J2=]+{`ú?_[xonFjk %v](؁m1:DUAι9Z&TBl[,[pH7dK`1rKFq׸+ln@ֳUv7V}mٷ_\]<dΡܸرׅHkۿ諾{t(=*}ow:W}G_v}R*oww}7:++(ǷR[w#fye}ˣ7ݶnpWpEBǔ!G(sii:iLٱ@) x ~UY^3X[az`.~xu@uU걘/^5; |c) |x?is m3IWռ xiO\G jFqf7N||B+a~*3DPo"ezt)WS_Ce U NB"-E%?{gAYihgvS:Fv]F ߱Qh3@+1KۇpX;{'lÀ綻piM{Qݕڅ^ X͸j.}MXߐQOƦNIľ۾d,iБk NۮKғlfjl-؅KBHgQJ@BnA 'Ն{(vOؒ 4UgPQij)(#>l/XʟG[|y6 F`_ۢ#b >G3UD6JP!sQT6it~[&yѺCj#+~lya~h ۲ei, :xs B;8H~~Er1I$z"F*[،#Oc'^RnH({~Ʃn4_vKjp<ʕ=3;; ˑАx\E]epZֶb3&.~0K7>&}x50 Va.2R_]pY\*&&MSL Ciɕ:&m5ee㡦m!`lSf=ŎE5M Cҭ 7]Dx 'Eܛk`.t57J@`^- (.=,/Iw?= (NO׶,!ND˭5^TEc^Y)WvU*OR`܌{)7*)ɣC0MYNS(0hˏOH#Jlj12am@|r9ˉuG߭EtMQI~\@D?.v]sИ>#pM`auEXz:)H[zHXtCCxz>=~>/P 964 0 R/Type/Annot/A 37607 0 R/Subtype/Link/Rect[129.602005 215.231003 220.684006 234.912003]/Border[0 0 0]/H/N>> endobj 17362 0 obj <> endobj 17363 0 obj <> stream q /X1 Do Q q endstream endobj 17364 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17365 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17366 0 obj <> stream HtWn8}WQY ' 6ź; 6;%Jj﷊ndX}HŻW$LƬ .ôq<q^ ,?TНn_xmK,&I2,a0OpK-4f1X޼iUSY!nj?5ӳEyT^)[MI$.HO}K51!K;-|aP,)m28NCP.1a@QtP(LJ@ɻ>@q=s= KKاcS}JO=>gcs}N=9>c_ }I/=%,#Du}ٻ>@u}ٻ>D]պ>D=rBQ{OPZׇ(ZN!`節u}"TET պ>D=rBPj]j9Zׇ(ZN5 Tw}"Tw}ٻ>@u}"{j]jZ(BQ{OPCS TE!`Vu}"{j]պ>D= BQ{OPkI!gE!gw}"TET+ պ>D=JBPj]j%Zׇ(ZIPCS$TET+ պ>@u}"{j]j%Z)Zׇ(Zׇ(CϾ˲aV K,B)qf98 /,N2ɦ#?܇7X."NU\5_Y\L=Nu}w~xTjZ_N[uLSrgI]FqoXumNs!!18Cymm ^Q5mUSwƫRXw4) ֡m2i~ݎJ dG]#x RCpOv@UοFb i64& " .v:xE4jIu`"fzNU_f'ґG7u qdmaJXNtVLҚ`4y5z7MTK00cPG@Hj5 NNl='|[rYie UA>Mq%+x6[uȦY@Slͺ;ZS`Nƙ3Wl^`c8ޙ؀5}/feE|-DD.<_L{X)'q)|߽T]S'J볍,`Y=PPeDF_r@^]5kD8Ht2*mT'4U՟`Kl Y`T8\PegfZ=`mh0ւC:Ohj6 Yѹ Vrbzڼ#hbZ# M禚={3=]FcT+ېc?{6-0G[ӫ.@>3I_{`esȓz:M5lL,f,Lo%V8v.+#/s4X@e<zåmr2EdXUkÝb Jv$W>}ʄSA`1+lR{qsB#X ƣAW{,lotʖ9@>o *ifj|k\2ebݲNe9RaR8EQLMKxotb5dt{ƽ5 [m[u2Y ]D=ZÄS~#YOtsNXi56E? 5j5ڟUt+T3薬UyXD/[ 8s5Ѽ,kՎE -G&8&S}G^ikS {ed6h MUm ,[s6`ejRKgU<'*ya_z /yHf`P:: :%[3T3 C[ aVt #V{4BplV1&Cɢ_^Tf2l}rcW3^emQ_/J(l/Aa5 "8YH IEO6w=xҐ öu{' \<=h$~HL:QQz6rj~Zg?]? Cp0FpeBj`k11gp*C¼ \3vi撌ITʰfwaRIɪ fuAo$ƘS*Յ0)*Hg8C{j%QvyAyԺi_7MQWuT:T>K}lO׫i jU 6ƴ&. ~QeT =T~-\Eiܨm/>SdzUkDt p0?Ecr f־lF~& L*%Ű}zoD)F~D% >#c!2~^ot4RFFLz6֨(b Mɡ.P, bH* ?/Td^ZoVLCHcywEz-tmw ~ט$,HD2Kg`vyP!2R~z7q6`y갾%T4tr%%>H95h8X0ie$ ֻe[ӹɔ\h<6䶋b. +EljoYwrQvP;_cU͸a'@W + uNV{khKu0H,jzPQ _<ځJ|ђ*EKE ̻u_oή` Bendstream endobj 17367 0 obj <>/P 542 0 R/Type/Annot/A 43836 0 R/Subtype/Link/Rect[93.5998993 481.628998 336.286987 501.30899]/Border[0 0 0]/H/N>> endobj 17368 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17369 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17370 0 obj <> endobj 17371 0 obj <> stream q /X1 Do Q q endstream endobj 17372 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17373 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17374 0 obj <> stream H|Wmo~b|!tvw$bY i\!IA{$>36 Spvnno/|^<{y†&?]0eLS2:EQš)F|9[~jZ3yWuk"T&5MSgð{cu_VB{26,zm.Vj{omimntD\+yޏ _:ʼ7.i.Tfb_uV~΋"EIIc+$ /ʛ, +n-Xf9ށ{G;p{=q'=}>G>HGp_57} q߀o}Kܷ> ':kIi56/iƄ5Yטн2Vc"Vc"VcEZ1aZGZ1aZGZ"՘{h#՘{h#XfjLX=֑jLX=֑jl^xZ k,Hk5&,t1a{eiƄECk=iƄECk=i2Vc"Vc"VcEZ1aZOZ1aZOZ"՘{h'՘{h'ؼXfjLX^cB,Z Z ZeiƄECkiƄECki2Vc"Vc"VcEZ1a@Z1a@ZyIk5&,t"՘нƄEܛO&/:U; X@+ZhЊD+V$ZjUVMjjVZ j@%Z-hDDh%PKcB-ɰF,hYeA-ZhAɽchkLXD rH58@^c"Z{GrZ$т;{=N,I5&,Ҙ;D rI5&т{{ C ^c2-Ƚ'ט(D rI5&# т{{A ^c2|-Ƚ'טD rI5&cjiLX1>kL$QhAɽd Z@r19-} ט>kLD rH5&w$9т{4&,Ҙ>ܧ2L=ukLXD rI5&,XfkLX88k>?^t7E< vHߦVɃe-:tc:Ʋ;Z.˪#^J#~:6`y}?7v;a{~N΃yx}^`-fWendstream endobj 17375 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17376 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17377 0 obj <> endobj 17378 0 obj <> endobj 17379 0 obj <> endobj 17380 0 obj <> stream q /X1 Do Q q endstream endobj 17381 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17382 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17383 0 obj <> stream HWk۸_`SfwMH`12Ax=˲XdM9=|˻TL~7~#$JLYI\U4$D8'<&4$gVs~3t<6;26Tm;,`Zq6:_ M!]6)''(F ޓ(y I)+K|ɇT!9eaTDӬ8\`VX|#y#y^ E^ E^ E^"e^"e^!U^!U^!U>Cg QEsD}y>GQ_D D}/eDGeiCK8ӬX} qmiV>4+VbB\b\׆f!#rĵ!,ĵ!Yȵqmi>r-G\bB\b\׆f!#rĵ!,ĵ!Yȵqmi>r-G\b]"׆fC XkCLb!Y,D}Z64 QV 1`! 1BGkCLk,D}Z64 QV 1`! 1BGkCLk64+VbB\b1͊Շ׆f!#Jĵ!Yȵqm qmi>rD\b\+׆׆f!#Jĵ!Yȵqm qmi>rD\b\+׆X(ĵ!YӬX}iVL˲]&w[FQe,+ɶK>n =yɳl31v}BSQ\ Q)lnO7ۯ ](Xfwpc5汯Zc\OgbZOVJ4-auPî`B=,R%bqV1>ΰ?:A**#ѫGbn욧a07Ի}vX7Ljo5]}{Wǩk8joXXIQftxTr:=ћ\i a~gLo%; `[@j۬m|ynrjl;U旍D28͢bI0ұ@kpDZwvYv8/ gfI  ú:8)sRɲ{l(S]2,m1c߇ʗIDkBޙ Oq9lwۭJ[Mˆֻg3dyyeFܢ@K =Aŝ8TP]yV:08/.`,ͥ]z8iYQR S)6û%~o^P[O3\t SjaLPxÿ9ePr)ӡ'ݯv3@5ZYJn7 ʶڜ\݋q 7q nɩjL&ӧmᵥQ*y-J]J[/M$=8[-]y2~Dx?8Jc&x}'E;ǀs]n%zkXMBax{nӛ|̮4]*1,3mVAח8_a@~wU[R,/n ? }u4"ugN+[/`\`~nZ۬}庚0GU]Q# 1B ?{ ~y__uY {KR^ȵչ«t"WWG%>l9#)9G-4_cETc"[WaEZҬX\4+ OqШUsNշ]ַz+/)?*a@ʖ#+B3sH?>S#)k'gƶ1/JKVGS0h'ָ}]?x9KDm^5fх6XlŃĦ `?D(tpЕRL_s{Pi q]ѢE5)..nՒOP[?yFB;_s2//2"N2L»(%*u׏O/5\q S/^p-@ r=##jzb}E0 J͡ڦR6AK h} lO=C%lKT1fO+Bɹ&M>%wC bBI4}gY'Q6-ǰ%ӞDٟH9L( o$ t8I[vyƆP$Զ=LVdS{.TMnqB({d]$m7afY]{4jus(bz) ?bXeksy5vB~:9Ů?:-8JkNL~)ן%~E^t[%ײ[d$eendstream endobj 17384 0 obj <>/P 866 0 R/Type/Annot/A 42404 0 R/Subtype/Link/Rect[93.6007996 224.367996 277.644989 244.048004]/Border[0 0 0]/H/N>> endobj 17385 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17386 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17387 0 obj <> endobj 17388 0 obj <> endobj 17389 0 obj <> stream q /X1 Do Q q endstream endobj 17390 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17391 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17392 0 obj <> stream HWk_10`_ vF-viBR^E{C+{c0$9oQvzW?XË^EP86JR%Fu>M5A*ʡ_j?tVuUp[&Fi$V*@Seq6u.|C6IPgQv~Lv."YS]׫ͧQڮ8t3=M H席a"62AXOz>V;6 8XE۠H(ptlbⷣ,!+XԻ<ŀe7{[e2Vpo{'w̽;>'}"ODp0>eS}gs 3>}.ϙBp_0uV XCwO1` {!R Y{Z#bܳZ!KpZkR Y{Z#bZK1d YkZ!KpZkR XBk),=kZK1d YkZՁZK1dqZ!{Kh-Ő%gBk),=kZK1` Vh-Ő%gBk),C Vh-ŀ%bܳZC X8CwO1` {!R Y{Z'bܳ:Z!KpZR Y{Z'bZK1d YkZ!KpZR XBk),=kZK1d YkZA"b),CwO1dqETS18MpfA[]dTőU:oSDz*S훡VT{w7WOT!)tT6xxvjRU RLQ1*}]w¸Z= {aɏ#db,JFvS|/Lv#)&E8۰+onc97eU?[Nr"7Ǯj2kןql֚do͓jna#H^TCm77-:V(Iȝ-$.\G\/w-I’vEJDM ~UǡB#{d\}]v[w<+ɬƅ~B<:* A;~|O'IxXT(&~(318xŸc:X8J.MGz,Gx90>p~iV>(B`1-'h9-ǴA+aZ0TJV*hL+2 ZiVδ A`ZUP-s-!kQ XZLK ZiA0-#h!CroS Y˽rO1d Z,F=Ő%h!CroS Y˽rO1d Z,V=Őŵ(,!CroS Y˽rO1d Z,V=Ő%h[!CroS Y˽rO1d Z,V=Ő%h[!CrS Y\brO1d Z,N=Ő%h;!CrS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1d Z,{!kQ XB),UDEQ)b n6UZmA>¹2NG^} QUw'xcYd50CqTܬmDO|? ,*U\+xDw &Q:YF_UKpǃrY-kNt=<G63lգ%@"+K 3O ~WN&q 2]>nq/NMa/G{~S[/1dg\x{8q"C9ۮ{1.KПǶ N'ٮ1(m0+݆S~~q|@.!r1 164]ߵO mPRq,ovzS>kS9}1Lú|hicJTX1ti.Aytj80#Usϭ~M8J3EFnI*EDU5F^ͼ\Ϛ䥑ŌFTV]2nDqQ%,%"#as"8 <$< U\q1 iT'[wa`Y4/`aTX@D )>Z$=vEV յv7n9\QȻ'ʽw?0EM'endstream endobj 17393 0 obj <>/P 1322 0 R/Type/Annot/A 18561 0 R/Subtype/Link/Rect[93.6007004 362.007996 184.404999 381.687988]/Border[0 0 0]/H/N>> endobj 17394 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17395 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17396 0 obj <> endobj 17397 0 obj <> endobj 17398 0 obj <> stream q /X1 Do Q q endstream endobj 17399 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17400 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17401 0 obj <> stream H[oF+Q {#m qҠ)>؁Hr$r١,07#Μųg.|%WHX:?6qD*Qѿb%6~\ߊ*gE]QJܮ|$bt9I"pȒ\frY̧1|l2x14zۢ&LX'uU:S7`Q/b5}81]'6IĹL"z%@ >HJ|2`/NcN"uc,e\8DՐ oG5 )!ez24O5^^5^5^5^  ---S}Oi>cgq3}y>g{Ǹw{Ǹ2+Rm)&TC*tO5R =Ր S (&TCqV1R I-ՀbRK5AjZ!ŸRR (&TCqV1R I-ՀbRK5AjZ!ŸRRmi&TC*tO5R =Ր S (&TCqV3R I-ՀbRK5Aj5Z!ŸRR (&TCqV3R I-ՀbRK5Aj5Z!ŸRRm&TC*tO5R =Ր S (&TCq0R I-ՀbRK5Aj Z!ŸRkR (&TCq0R I-ՀbRK5Aj Z!ŸRkRmY&TC*tO5R =Ր ݻ9gD̢|4RBMo\HThP b`Y-뻪O'sO'USInXWZ\_¶=68;ZBp5mZbθ#,+] t-ڗekYnJz'#)VfGf!;}_}̤yW$f%qQnoeSܔn:HQ6;2 }嬘~(O3ynV÷ynnlBcc8 /)챢 /E˩;̬񟑝#0'M/M' vhځ/Uoxm^ç&f{;~7e4 .-껢^z^VQݡ7Ãv~/i9~|m|{(gc/v3'a}ɦף/JYP=endstream endobj 17402 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17403 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17404 0 obj <> stream q /X1 Do Q q endstream endobj 17405 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17406 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17407 0 obj <> stream HWێ8}G7ś.`mldNmv[YKJrd~HJdAu|:b}=L_دx2OU+bi.XT 6뒌'5,S`^~hZ3 ͆ Mr:^qK*U0&+dZ4yIB|&3.-Ҫ3fo8Bg}fM2- qrW`pߑk~N2]禅TG3;߱/۲y*4 lɇ!9UᙌH!8\`+y,>Ā%"R/"R/ 2R/ 2R/ 2R*R*R :R :R :RH}N#"R_H}I/#%W*R_#r´!&pm!+Vb"\bȊՇb!,µ!,B}ZA6ĐE\+׆׆kC>r \b"\b"GkC Yȵpmpm!PV 1d# µ!&pm!+Vb"\bȊՇb!,µ!,B}ZI6ĐE\+ ׆׆k%C>r$\b"\b"GkC Yȵpmpm!PV 1d#Jµ!&pm!+Vb"\bȊՇb!,µ!,B}ZE6ĐE\׆׆kC>r"\b"\b"GUkC Yȵpmpm!PV 1d#*µ!&pm!+Vb"\bȊՇbUZUb;kn:^qKxfqxpQ9ft~0۔]=2_}~wR?zl|uhf|θƦƩ&;z-B4e_}-[yiq0̦ zDo?غ]01TiWOlSwְǡ&ӱzfSԳy Ii;zg=]Zo//S3PMY2YfjEn>a{vaeips\ʕ冫T.jj?9Uf\hWi`՗ق!wwfM߶u+lkqL@*;׷wz,?M}"L+QNpp+^NMwϬZmɰɴ~ hI ŏwGYewV"p.'vHy%S|;YY иߌM4ش;)h}%nC;cN'1gl *\aTZbvo#^vsGna}6\]/P|tfcSǓ,3`3XϸK@aͺ5سf) "Ё ,noO%uWsl6=M }K&DU]!i l^lj]Ф~y׉(K($̭6@ *~~+`;?v̍`mw콃o "] =pp `~]1WApSeĉ@<!8,PʟZ=(~SPB\xņkHT?l6/HsIHC$X\nxHff%4Gl2-JYP~$F!HC$,B !~: {kxPf)ЌKz1J !I+squz?gBöiTB+y, ^]jR Pw-uh(Rz|,ۥ/jqdY]-("|匛;[>j=Oe$t>nY@nξxfS$}pAqrNyLdSO86gA"<7@ABafPh>wڇבF9>e兄ltֺ6vD1]a]{mGT T\pN3}4I7 hr'b V|=\8LA"\ uKq w7Nmm=3[o^C0A Z{(oɸ% $C;IrW=c"YzANl?!Y5`^{ )V'u`x~D sG3DsVZV5F[1KMNEڇCyXiiw|?OFVnPއԅjH\ \ϬO +lP,T!k3ꋎѼH$K{ݕ BL%8ߔ- `gR(9oK`krVa4\)E%w,XmtmAXM'Ncs= qN62^#)Y}=| 0uendstream endobj 17408 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17409 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17410 0 obj <> stream q /X1 Do Q q endstream endobj 17411 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17412 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17413 0 obj <> stream HWnH|W4f_$i/!AL2LD $CQd{uksdyw$ zl;7bOo?")kJrSĪ(VQ&WVoVU[/g_GWh25V5 $V*@SeqzuQ6GWڎ?M.O@>ve3/KDMgj&xsY]{䴽q46GsvզjݛwrwJTEQ@SizsS?GN[MX J_{u)Vs.+9~."cT$SpNA8&vD1d(,c8`Jn 7O1`Ye2Np{'w̽; =sO s>'}*OTp2>c3}g9s s}!g5Bi)Z!R Y=ŐS XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` Vh-Ő%gBk),C Vh-ŖZK1dqZ!{Kh-Ő%guBk),=kZK1` Nh-Ő%guBk),C Nh-ŀ%bܳ:C 2Bk),bZK1dqCwO1` ^h-Ő%gBk),C ^h-ŀ%bܳzC R Y{Z/bܳz[FZ!R Y=Ő( bwdjn2jz:UiZ27x%Qp:S13ڻUO$<`]UrY_Zuwc?fVUM+pWڞjݦuY~ Ci} G{8NtnJ=(l_Ό)uok?zKM8hݵuso g9L`Vۧs9pT: mUj+O7&Zz΋XDž gR5:%BjuSvՏH=.C[2V(0հ*-,||$q̴˜"ZX,koV2IGU݌n/Qۚq&tUYwOʏ#̓{[? F,%=#vqov8=r3pRCey=8pn١n y.r}jq$ 4'[Vݦm$Jӛ#X'vbKyz'Bi'<V,gs aiGi0K9TGс\\\$ ejTrS'S#=BW߿*?zD򡃳'Jjg,TDQ @2 ! i ܉bM0L}}l܉b9CGΓ.KD= -R 8GI0GI8񵹥<}21 45sKϳ_rvHxWrC Yِ֤GBu!θ{z{Α$V֮VJSj^{ۦUlew+KfpĜ_wG_pؚ~O|1 ̇*Ļ`"zH;~X}[Rwx٩զ{tp]<N| 'r< c~qGחc7[I3E0diyA3-/hyZ JiVʴRA+eZ1LʘV.hL+rUZ*j٘kQ Y\bx ZiA0-+hYe-{+bX{!KbB),A -{+bX{!KbB),A ŀ%bX{!KbwB),A -{'bX{!KbwB),A -{'bX{!kQ XB),A -{/bX{!KbB),A -{/bX{!KbB),A>rO1dq-K=ŐŵMUl ~n9>Mou3[l|T8Ku_Ҭ hr3[Zݩ.&͂T\uE~+oezm]~^Tl7˪'dLq/zVn竺Mwfpl%p%_8Buf򴗝\l)ޯ<(8ug]p;pkܕ]@{zm(jwRjfbOM&pj›Z{XfvуF$A|", p d)0(\%lf,N5x}1u{~=S>G{ ?[H KNo.C12x/U(mf!_:s->>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17415 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17416 0 obj <> endobj 17417 0 obj <> stream q /X1 Do Q q endstream endobj 17418 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17419 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17420 0 obj <> stream HWێ}W48E~ *${fw {>~lDzl! >>Yp+`}Ȃr"+M1` Y`aB1,IzIzEWzEWzEWzM׉zM׉zC7zC7zC7zKzKzGwzGwzGwzOzO@@O<+bIµT=ƀEcXd1,µ,B}ZIcEO\+ b Xk1Yĵp-"PVb,k%ZE>q$\1`XdJµ,B}ZIcLXd1,µT="+U1`Xd*µ,B}ZEc"\"'Uk1Yĵp-ƀEcEO\b,kZp-"PVXd*µ;dp-"+U1`Xd1Yzp-"PVXdjµZE>q&\"'Մk1,µ,B}ZMcEO\ b Xk1Yĵp-"PV!3k1Yzp-"+UJՇ"!{n7gg8<6cyՍySzFGe7B,}:H6]n1;DDfvp.C8?XqL70&{Ъi_-յֺe"xQW>wx|}^ޤl^lp/6r5C;Ń&O$H;לkT_9Quܰy]gI U'|QxÃK|LjP-=.c+=] @q:<-Z-!:!aHG݂RR5 #%D0ҳ爅!|:4X98I4Z|/WDT7gWYlLU\4 -$I{ g/F~_k\EpDCnΕgY 5/svAA#*9L^O5^/&e%NVeN%h[5b&D beb*X˿oG ‘lYR|\X.,YcN1"' 5"`A|XĺA+<}/(n &ǼC x7j|<^qhÁGdp 0q dZ*aNZ~E#\o&giV/o+I ]M$G~j9OrSD=cǼEezBk/'8x]Ⱦ^`J. }߄ze>>1W x!AmAGO,p8~r=Gx8{ r=ZK$Ln9ZVr;>_RbϞLScիGR%^5$+xG1\̴(#rk@0®a5 ێQUlV(4s(BagЉB0RD4:~kw tVb)>bp@ i5h2cHH05*E3W瓶F ]Jo9cvy[jⅯ: &"uW>tJh֘ bqse<:Oij]0uK&2@o[>oO낯FO m-#!sY% ("59Rx4D->0;ĕUdc$jU(Uߗg3,gTA"pJjj*j" B*#:??5Dpb'\[3OTJH2jmnuo}S^:a{1.߄.[Eq||; ~J_S!ʏxpA3%l]7q6ǚ9s..}~t?o-7kss Kߊh jvWnOm%:\8IւCdm$K.9wxo=}8$|9:k؉SkAqs)ŧxfs9婍IGivc# Ek+3Wc.l-vh5ooqH`^F#p$9qߐ;u]!9B~p1N̡o yK}/qD>&|\6-wݟOi%!н^X[z+hN(n?V꾝5/ʉQN0q.n*VCje׼djʵ.[zO|yzYBGOf{ORvփ K S $ 2TTڟ0E߶)߂c8v9jv ;4,~pp/k}x.iqZS>@` xxp>Ocwǣw&4oX8+b Ki]Z*Wxˇŝ;hZ4zg4-lmfU 5M/(֍/c{etqҢ }x0jU-f(w׿ǿù\B Ӯn=bPW΃>zs -P8gxs8z`Hd^{&v:o߿>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17422 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17423 0 obj <> endobj 17424 0 obj <> endobj 17425 0 obj <> endobj 17426 0 obj <> stream q /X1 Do Q q endstream endobj 17427 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17428 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17429 0 obj <> stream HWnF}W$}m7ȃM`qA2LDgg[^K25]~?Y>LYJB9{7n,~Xq;6?I}& &ݰo"f$븆92)Ktm|u,iqui VyU?/ꇧltk|Vk`mև_,2-t3'@rP&-פH'<BiNP#,f>w_xG(RLYST+1չCLaX&CT(;c!y(N{N{A{A{A{I{I`s} y `_K}/ e$ؗ`_+} u&eh})j}BPj}BQ!{(BQ@PC>P-'TE!`}"j}>DrBQ@PZ߇(}ZN!`}H} >@} >D}>D BQ@PZ߇(}ZA!`V}"TET+>D BPj}jZ߇(}ZA"I!*dE!*d}"TET+ >DJBPj}j%Z߇(}ZIPC>P$TET+ >@}"j}j%ZwrBQ!{(BQ!{߇}u- [Snn7xsX_ZEQǛStlT|uSeɽN G5|ڎβȿTߪϪ?tɂvdknѝU;\{z2^c yiRث4KCg콂Z5 Ҫގ'f S9Js|@T,-ʌOmk2ciŖ3?1}_]{ vcú>~̢Rv0`^p>7ՋEƁ"jG3y-g QT;ni:ZјbA0T>f`4E׏j^{ㆌNmh±Xś](PY;RҔo4c>iVUAUa$Ac^KxyRaA4/36DM3Dpf"ə`&h]>SbXѷlo~pg-'oX, HWg)[;WS9UHk^Otdfz3mfk}c OCVy6=o SơHu52L^*Y#Dџ"pu D300fQ fs?Cw+=Q9|[w}EPoB/!WZ=B2^e`=oĶS<`8 ,)Q(Z3E-qu 2䷖YFzLo,LX/ѮsB`"_ 'y{Q6tIzi5#^u.%n OLC-Ct4ΰ܇`95xf"_9 ܧ [99zj'.xЌl] ֟4>2Oi^M(-L1{qמc^. ruf/f'Өuß{ia ;K@|GīZF:jK|ɆyvciN8uTU9<4'n#n):I$g֖bFRf[r_Bq8gW#L1&[+JG he#n_}ZPEZnپÎs3ǵ0Y)0_|7 "?Cʜh|Vn u 9EHQ'ضgjzۆa轿0òð -;2KIQ#NzeǍԃ}{ 9EQO 7 ݳKw2_,y8X|ڎEv[:iwaJTh 17^* U먧53m9Ĥ x s5-÷zwr @mtJbZKlh*')bWp#,8V*FNCXF]"&88|l"D.Kz PF'Gy`;w;&,`٪JL؜:k46m:sw;y:%wAo>y|*r<M`B=wac8DTj8-TbB'ꎧ<21ޱo-}frsWŽvLӳ,#k[H]3.zj%A++.+iEu5/ӑC[9u>/P 540 0 R/Type/Annot/A 32531 0 R/Subtype/Link/Rect[93.5998993 296.028992 371.987 315.708008]/Border[0 0 0]/H/N>> endobj 17431 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17432 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17433 0 obj <> endobj 17434 0 obj <> stream q /X1 Do Q q endstream endobj 17435 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17436 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17437 0 obj <> stream HWnF}Wq)df`g$@z<(F@P2! )M_U}!0dkNwSռO}ᄏ?y01\YӲI~O$OirXOsa8kSOOmrGޏ]rcD"yS se^.|lS;;M 3]~flj@!"V?Xd8̋`_W*kO?/hKr"?Dd<=,OiSD" f+|v._8Dc0,(!*^.Tȝ|'=' ؋ ؋ ؋$ˈ$ˈ"ث"ث"ث}A/"ؗ2b_ˈ}I/#W*b :b f!%PmCT>PmCT>!*fE6!` }"GjCՆ>D#rBQHPmЇ(}ZN6!` }"TET Ն>D#rBKЇ}Ї}CT>PmC>R TET+Ն>@ }"GjCj(BQHPmC>R TE6!`V }"GjC_HBQ1(BQ1Ї}Ї(}ZI6!`V }"TET+ Ն>D#JBPjCj%Ї(}ZI6PmC>R$TET+ Ն.QjCbPjCbQ1{ieÿz)Kww ˍHB.`7;g,E3xƅ~s}|j.2mV295kC3}H9*8"b}a䥇lW!s>e<`ʋ,_ ؝bLle36/ Jo۩n{k[0 B&S6Wd֫@QDC6$3f !mTỐk*ܜaLs7ˏr xkϭj軦"w&rJPg^4CcH,\\\ST g{1_m=A3y)h#zߜ(EuC\xP?Kp_`fJSBP2C.uj ɴ,7:P- T¶*Ma0I':`Q@މCoZ$SkZ\3GYZGĐ7HѠք(\; 9}ձ?B`[T .sdhgB;B)kWy;Rdd/m%dcF(;D֩pDޗd@kS6Z;ÑyooC?箧/SgGwA U9%D:\F7wr1fÈjieoL# &](0W UW IyC!෥s==kX#_ŗCZ㦨ӹ0-I+CnLTc"JUTSCUۨ#\ a > Dz.f)ʺl'`Q@ֵ] Xg]^tYQ;.v$ '>Y饬%Q ? nR/ )55)"кtSMlF uS`@|If~%los0NDٱ?)pND稉`w%v34䵰U%b=J@ci&Cy >06_Z5ʊ[|54%o O.1~م7F.}91?~}kU l"lwuŊQFp㲋 2 P6PHKt۪()s&Y>ЁӼΉ='UBfOa(dYONf]~ o?#mi#Ѥa$qfc(g1jN>/P 712 0 R/Type/Annot/A 17439 0 R/Subtype/Link/Rect[93.598999 297.229004 321.885986 316.90799]/Border[0 0 0]/H/N>> endobj 17439 0 obj <> endobj 17440 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17441 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17442 0 obj <> stream q /X1 Do Q q endstream endobj 17443 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17444 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17445 0 obj <> stream HWk۸.A@xç$nb]4bkJmkj˙f}I&@`"<=<痿\1~J̈́MSS(432=T?}Du\ږmj͡U^:LoɫerT*Mba˜i΋tKZ0! #n9 n|,+UN/IW;=\_gVvB7[+\\mʻw03ca!$N2@ 1st(&TX'{{uX1i` ^s|&okB16"PCT<]1*!10(I{I{EW{EW{EW{M{M{C7{C7{C7`E3} y>'`G }/Em# BalHBa Q10(Ba Q10}0(}ZI6!`V c"TET+ Ն1D#JBa Pjj%0(}ZI6PmC>R$TET+ Ն]Ն1DՆ1Dba Pjj0(}ZE6PmC>R"TETՆ1@ c"GUjj0(Ba QHPmC>R"Tv&Tc"Tcه1@ c"GՄjj50(Ba QHPmC>R&TE6!`V c"GՄjՆ1D#jBa QHPm%PmCT>PmCT>!*foVy.yL.NEI?Yf.yXn|_fٶ^Oww͡зXT:\+u[ _Ǿ]vS]_騙9OUu<>;nJ7z ZDai!bO,4u Ms]zUn϶]As~)pf&xZnii1@Altl^yrqkЙ`ZЧF&X)ne+ClnijfC- ÌLguU;̻^ç+#r33KSPuE\Q27+<܇ 5P`"#(f'N ˥t=MדzڞU@l;G]-PyU۴8㔸;LS^`SIP>'cd7A3=LpU1 " WV1z OipB|YO g':0!+4`))/DlL̃?z?xjp` D2iP|TP>*G=M`R047vӜn7݅׷Zl_uV̄5ޘ~,ݶA.B(]yLf!eCAݷ+h5BBp15iHIZ5/O=^PN`f6a|>ֺ!xaM̵wwR:wkwRHUpű>Ԏ20FXXM8mܳc bFhDew(G?0V@M1*p~ؚzKw1zWjܴUw\purLC?o\cVs8Ɛ_s9V3fX%ږezq*G=I)HXCZ7ǭ& g#7?7/ h]*W⃆_Mb6o#nHcj3["g^O%K+<ume%S Cb~=cEp2Fs;ITRHh}%biw۪pO<`/XR8F0 yѠ |)]ER(asAڱZ9 ƣܞPWdtK ?c4Y䱚kLfBFo}(l8λP-|kAA#>RҺU5sA "7\)ut-g9o=}]}P yv#Tg9.T5|@+Ps>.|W|X1?%_ؓq<@nbXr1KW2}2˄3^X1C,˚ߒ89L'q0I.A&BmmMG 5}w7a4$ >˄ [=F .<\g;.z#_˦AwŎ2a=wy(HAhevd@7[VrUnqj}p^"ݩlRi)Pf,#E]}SAXfMs< iHmtS`Lnܵ^s4pQsjdFPxr=}HHrtۀ2 N.W?uendstream endobj 17446 0 obj <>/P 1021 0 R/Type/Annot/A 17447 0 R/Subtype/Link/Rect[129.600006 455.459991 344.580994 475.139008]/Border[0 0 0]/H/N>> endobj 17447 0 obj <> endobj 17448 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17449 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17450 0 obj <> stream q /X1 Do Q q endstream endobj 17451 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17452 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17453 0 obj <> stream HWko6_2C(8h7M$(G^I˗$E!yHC^ݼǙ|Ϸޒ|ѿ"*Z <)rd2@(%% n~m=7Ovh<6{26͏w g,P#@}"P_ @}/% W*P_!RĴ>E q)Vǀ+Tc1`!1Bek}LkZZS,D}Z Q!1`!1Bek}LkZZS,D}Z Q!.k}LB>,ĵ>XzSP q)>p-G\c\b!rĵ>Xq q)>p-G\c\b!rĵ>Xqu@\c1`!1 b} Xk}LkZS,D}Zǀ QV 1Bk} Xk}LkZS,D}Zǀ QV 1Bk}2ĵ>XzZSP)VJ$pEov͎)%cDS>yEv]1ޝ$+V|lvrpytc~_$-nv_Yln'7t.6mff-0|QH$U '4bUu<{5k;-P=Q׶IIS%0fU0} M< g9vMpr|'DK, ]n *l{V!*:xULqpOʂ]i5wD"aoޚXof8Y漁^j;/dbp*|W(exOM3r8sFt-*CZj[#z¯*ڊP#[J~ʋVbahj!y"G$m`0m_ŗuga$R\iCb†ތh(7F)Yi3i!Vy','@j wQ`X+wtHu{<˻54+8X'T8<ᔲh :rq˃M K#P=E_DP)L]cT4\l(<5Cr,J$i{^:^CҬ>F:ۗ1"C&ﶄ]nXL5t۾4涙pL%I5^@-:Wm=Y@w')P]P` "gnuA=l^(V*PY~A$U.ˉLhBA1GLQiQ0KLX=qt`o{iLN1ޕ%Use^)*}-ī3nVw?n/~{Vendstream endobj 17454 0 obj <>/P 864 0 R/Type/Annot/A 37703 0 R/Subtype/Link/Rect[93.6003036 519.229004 236.856003 538.908997]/Border[0 0 0]/H/N>> endobj 17455 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17456 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17457 0 obj <> endobj 17458 0 obj <> endobj 17459 0 obj <> stream q /X1 Do Q q endstream endobj 17460 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17461 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17462 0 obj <> stream HWkoF_1¦9/>E&M `E?A@KͬD:dX{{g3ùX{W}Տ?m5.ҹS>QbTՖbuhU_Wf۴ծܷJUpFuepԟj r$VʡJL-wA$b9Mw~,UVKǷOGKm{_ԧL}*OLP1>csA}zY-bzKH-ŐS Y\=ŀ%bԳ!CR YzZ#bԳ!Z!KPRkR YzZ#bRK1d YjZ!KPRkRlX!CWO1` z!R YzZ+bԳZ!Z!KPRkR YzZ+bRK1d YjZ!KPRkR XBj),A=KRK1d YjZ'b),!CWO1dqZ!KPRR YzZ'bRK1d YjZ!KPRR XBj),A=KRK1d YjZKH-Ő%guBj),A=KRK]R Y\=ŀ%b),>2)ӭ;%"" Y 5~rOmuMBuku(sWա[#^@qOc ul&6,`L<>1>m =4*+9:ߗ0BC^K!ò t6[ KD!ť>|fe-Đhݖ,lzlnV.FibWIZnq 6bmvjl XQm<4M_䇳Jl7wfM8u,F9v[n67]QS`!a&lm] Y6o,RFdl;v.P^=_il .w@Mz]γo/8}}$oR^M:yuSVkZt^-}5O} f >Or,ui1vB(M ͼ(`B+[b2P>~.V-N3?o 7uD9-A92Q`q4и/9bz{D&x]m6\J)۹Z8 |5aC0g3ؘ|6F{iw>XwVs,f]V'vdz7r)iUu1cαqsx}~pv^ѯ.(sJ\y=*q#֐?JPL=$>v~!1xg;e%M^f@aH-8;ZJι0iWn{e=N?/w,q~0}-g$TN _j t}_l}5}%Y{:,=:Bɸ@3xf?pds|KnmX5l6y{^&{n=9ݳ.P eG+O91] ablMCq` lୃ<. !rTc0Ǎ >_LXp_tl؄ ,d!Ak˶-O${l<ŖʧOwOڽXH~8%iwv'J 2\|d,\%0Km:FU/὿'X'8RkPA_,YŽ@i@f9e5WtU,Rv;hM }.<|k OW Jd=:;9 OO&s!ws ,OE֖]1zsW뮮x6ofJ4*[1!:L}Qڡր잎MWur'|fQ{u_}j3ۃnQ[;i7H0Tõ97^ᎄ^k{oW9[hLPOMS&Yn^T;]0%]GcGHVس//W9 a|4}o9wPp]>=˰2ޞ/q *fS6_)/KAފ'F-g QNMeihbplz^Շz_}Ԏ7e ZY>Lc`eVW^hXP;!8^"M\"TH4uu<<FDoYE,gՒokѹ5g$ }zaj3Y5u2N'kdeRb໲02NBF`lgE|nmܯk <N2r _!m?V-%J* ǏؔH]k*P;a7 !(Q \yhZʓ^Ko0)Y)<$s~(g_y%ڴ0ѫu!.>:UnS&z:y-ͽ8CT/h9{]!(NPQF^$׶6oEzп?nqKDn>˽wd7~`lH*endstream endobj 17463 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17464 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17465 0 obj <> endobj 17466 0 obj <> endobj 17467 0 obj <> stream q /X1 Do Q q endstream endobj 17468 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17469 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17470 0 obj <> stream HWێF}Wb_`axvw/1 ZF%jBRo/"Y]VuoUx7woE(^z'M SWFDqD{ Ń'E!懬)oNSU*6*_?*P{Z~BKI(Rš">z)NXP6 l"wCZ.l 0 4j@96~tē V>b+TGRp>zŤ#C퀨 Q;j.e.Kaaaaaoaoaoaoaoa1#}İ1>v a3c}°O >qا a2JFvZjC˞Ũ岧6D Pj Q {GQ-!aV16@16D1*FԆ(ZŨŨŰwTRjZjZjCQbTKmb;UjiFԆ(=Q-!eOmrSRj5ZjCQfTKmbTKmb;Ռj Q {GQ-Q-!aV36D1jF(FԆ(ZͨŰwTR3j Q.{jZjC˞岧6@16D1FԆ(ZèŨŰwTkRj ZjZjCQaTKmb;5j Pj Q {GQ-!a0gR\(FԆ(=!ei^{Rw^HD6 X=E9xYo&k:@&le#vtoNe݈>O8v-عK|Ǭw_NqA# 8 Ϳ4 d40cNп_Ȧ) (T$JYs£SpAgc2O8R "iЙiy zrIQ3΄ d*0 R8_V2\?؉Y}^Gdc!sTΖ ͝ eC8.s 2ђ̩Z Aa= O@LLWW.(C]LQ6AP z%NE`G6IAXsza|S܃7YSzfxIq]eU !Ǖ'yP 9VtBV!|?dF|̡Ltz6l";lT9{rtw&f?=LvrꆝMh:`¸;T?sv.GZBRvt~১2}1e ݽл &F/x67U5ߊCDM @ @p"(mb&5-'/M}|dlMw 8jͩ\LBιwdh/ Ko?6gudrl˜T^v! !}(K4$Ka~']h[tL6ͩ U~H{g"Q>S5|/}DT`} w-4^ S8CT[ԥ ux ZTeb4I |(z翋oT~ 5tZҐJ%H~"`~HF Bl~bAb_AW9$U6t+H^.r*+70EY#1‘ݎ&^GxL{*=Ï7M4Z$N` ?LO _KoktY=w3\vh1JiV<{qSd08poOhrF̂?LMV5E0~\Vڜ+K:q)m$:U\[ܙ. 7 /ltW.1t[<2:Iۆ~(70/Fl8* zrZ_Cakc=bx |v3AX`=1z0x7H`珌 O臭ܕ<"[AqC?<6⦴[x$Tя7Ipg*ϖ+ WTOU,zDg,/W\SQW+:|fᜱ %M>m^`jq +M}hv7h"miE0A`<mոza6:U1w;,4ayTj)~}C^/N8-su. į*MsĜ =_\U!\0L<ˣUY'M@AC>od|VНꧺ-D]Ȩn[!>7\B \8 b p0y11alF7"|SF>i~x@ u0bxlΏ()K=u_^BvS2+Ĥ`IvujbII}'P/ iP82U}_*Ufxn1~:(2y:޲HZFGEwc>`O6^iT5LI 磀F౐"3d3|xQvA(5;(BG/ΣXx]ݗ7y0ב:+B} 'ORuˊ+׽Ի NW;0?f&f1.V ExkTP[yϕrrw[y{(˪7oz0ܭ`k^'q8O f@Sw48,a\YP2,>.,)A>:ÚWߛԛeZ'Z`"Aoݧ}sr-n[)H|y)@?7b<G8@$2 D cM\l ?zj"EɄ`IRiN:E?~;%w=nhqZrI].+<jc4N^n@{۵v.Hg`ov쀡` mBFRdi۷!ADt[i!6;lQ P*aݳ uqWEt_85?L*D0q%6VN]EX0e1OgB|)Px@9@UԆRq#dbsq7^7V>VƬ|^htV4uy-8j./e"9Rݘ/U*@j::TASXaӧ|j}I44&ijKC7Ȓ @fT7+ÑBd9lƤRYkcucHm pn- (I[3t vTkY|q Mzxf2D_?E^o|^)'c!SV't1ǘ)Pڅ'CP:9Tt}|ԸX^@t{rc~5]D:b^'R6fql鲭>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17472 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17473 0 obj <> stream q /X1 Do Q q endstream endobj 17474 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17475 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17476 0 obj <> stream HW]oH|^`3|n@v$A>ā KcD*'~I,T8IWVջ/U~M52^ROUZ8YgNVBD=DFU*nu6U ?Z̜2jz0$Q*ASI(.b2fl͑)~Waס9McsML/40<}sY}~Vy݆zY}4J`8^l6QDo_s**]m I7Qu1*S)9$8F8"RES XVpo{+̽; s{{gS}ܧO)s 3>g}.ϙ\p3>g }/%s_ YgPZm"+b),CwO1dqZ!KpZkR Y{Z+bZK1d YkZ!KpZkR XBk),=kZK1d YkZKh-Ő%gBk),=kZKMR Y=ŀ%b),bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%guBk),=kZK1` Nh-Ő%guBk)Z!R Y=ŐS XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` ^h-Ő%gBk),C ^h-6Q*b),CwO1dq.ҫ]\.64N2jz=A[LeynOZsS$Inf6ԷiM. jS~QUv?n'L9)|=Ts Osַ5vW0ƷqB{շـ/t)u|X „%~J{tZ7|?m\Z{Cgq9@9h79]Td;1p:bF KϨY ?g]rFxL}rs_4uKvϤVSt+OkP;3\W^`a?:ogEa^Žpر˭Ah9B<hWV"qdly}l.u˽IrH'MRm\Y4]"ڪVNs 8|+a2% 1i"1h1~It^UO; n U݄V'Y>6N-ѕ /6;NvV7۾bz燇6c Ÿݬ =nmjƛ$YVݮ ?#u.<&fR’N0.n ^;?.~iYtu`fvl^0VuefpMS[x>Ӻ{6 u߬vøIlop7[PFov5M߬WMo0 W]`KDozX3$rbv iQ {kq;JD fĥ-HZ[B-F%^V-ꁼEeKwjVTy_-CMUK):DedRUqз'raN#j kNQ?ǥ#x#iJqEdnaz@lP 2-H i ujfavAZj$2=wr;G~usE.QLb?+^w l$>fbA7Hҷ_t>/P 1597 0 R/Type/Annot/A 44230 0 R/Subtype/Link/Rect[93.6003036 414.268005 275.14801 433.947998]/Border[0 0 0]/H/N>> endobj 17478 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17479 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17480 0 obj <> endobj 17481 0 obj <> endobj 17482 0 obj <> stream q /X1 Do Q q endstream endobj 17483 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17484 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 17485 0 obj <> stream H4;0=+ %B0EBi:$@@YFgqy DG&Ŭa=Bk]vz_4uS$!1e6/3n'OA,endstream endobj 17486 0 obj <> endobj 17487 0 obj <> stream q /X1 Do Q q endstream endobj 17488 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17489 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17490 0 obj <> stream HWn7}@x X+faDȃeQKLwz$~d_%lbG"O}q{:?pr㻟d U𯶹(t^F8d|gW5y\w?6~/7:wj07Y ȼk7ٝ]/+-E0)؜q.;Y%AϛL 5k%3B/+!YwyVBhdǬ.!jG9uʩ GI(t:KE0d9E+4^'5^' $ $ $-&-&%%% F}/EdԗQ_&KF}UbWQ_'kF}YŘbL3RZ!+UO1d),ƵC>qf\K1d1jƵZ!QV3k5Zq-ŐŨO\R Yĵq-ŀŸbb'Ռk),F}Z͸b0RZ!+UO1d),ƵC>qa\K1d1ƵZ!Q0k Zq-ŐŨO\kR Yĵq-ŀŸbb'5k),F}Zøb2RZ!+UO1d),ƵC>qe\K1d1ZƵZ!Q2k-Zq-ŐŨO\kR Yĵq-ŀŸbb'k),F}Z˸b1RZ!+UO1dkQ׵%7kٻMvQ\LkQEQciuܶwswzחu:tۇ4m}xZj9}sӟ}iya= Ý<6njpkLqy;2|XýFeU= kE`ݍ{^M;ɰ.Bq{h<]% DZT|eg_\³nC泀0{d>rcӞ#۞*fq.BwۿxwM; \ SI.p6} *&S|vk)TQ89M ΆZ{:_{> \m6>-kṢHxZk5܇o>OmY ⥧ K/=7,h+ުm@c88W?䴔nu/kxZS,ר|«0x9VG@T䗥-?)Jx_dtA5fV0E=?& "ݹM,w/(vvQPpPr_ppVp3i86bS xA[Ëjǩ!E%TD]/gsjF [K"`RiƬpl'Ƙ2]NU6GaTq5."*qfJW-t:'VX'EN3钳 3t9c˂|G԰LeD]Ǝ+ +!Ռd$ÓܘI0$^hQ 6f{"2e'xuSgxY% VV'xcfo9 ǒŽn%eg,+k,gȌg",t + UM|xXߥY?sXT\ !ܸx1 D.qk? AWKo8 WRĞEsX`۽8?2~Im%I,z?ybV]$9Ј4w  #lGB7]5K-G FUפvC$ě鸒4lI록^Ǐ GQܘ-o:JMOV9<+ۖ IƳ>1J×}qNE&A_zT=`V'?NZLW&^-c+[o)bojdzC4xi`!uoccoO;iŅ@e~︬B|4?4~M<"IDaF/5CuLcE DP&q[8 لCxPKL$&|쩔,wCH`8|TevB ]ݾeF&NЩdi) `zHܩZNuXF>gKrP+ n_E@ /,YgE!@W-ptm+o-dTתv'?^5bn""ʻyt-XnYeb,I@xнsCݏW^\)JV̡НJi2x$I9:/*EV,G9Z3F0qErXEhުA&ƿ h#h,ģ7׋ q~=xVޑ<3AMg0D鍄O!lu1  y-($1M Q8 "KX0iTO{ TυQ==E \gGZ'MvW;DOEy%41߬i@]TKan$bn{ ar7Lv!/.3wgf&Kгp#G8ٶeg|5I/FWDTv5]zE"W/~vtű`w`H ٕF )ʧ;ih@1rO>8z WQp.ʜHW}c9\F%GKl4m3Uܸ,pp>X<ڿTm_Ei#'\E%VϘ;ZiATqyIi(\i-\Z b{򘃙[YGza])s0# -Jw$N.bQ7q@Ϳ=w5bzendstream endobj 17491 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17492 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17493 0 obj <> endobj 17494 0 obj <> endobj 17495 0 obj <> stream q /X1 Do Q q endstream endobj 17496 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17497 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17498 0 obj <> stream HW]s۸}@/tAIi8mZfhe:f*^vv{/D׊8qq..X7-{o`/_z:-KeugVHŪDωd%K\lmXuS)7)?]*yZ%W$[&&3c\8%l%M* mMkWi){vLYP=٧I.e6WjuwXX9?X%0}`=~J4W+o'nXseas|lېc8RbȊ 1`DC%Xv)c!,EWzEWzMבzMבzMבzC7zC7zKzKzKPE3B} y>'PGEE=G=>$LbD 1dC XkC YCV>ĀE6ĐE\׆kC>r"\b"GUkC XkC Yȵpm!PV 1` 1d#*µ!,B}ZE6v&\bȊՇ׆b!X}pm!PV 1d#jµ!,µ!,B}ZM6ĐE\ ׆׆k5C>r&\b"\b"GՄkC YȵpmC6Đ1` 1dC YC>r!\b"G5kC XkC Yȵpm!P 1` 1d#µ!,B}ZC6ĀE6ĐE\k׆k %pm!+Vb"\bȊՇYYi9,Ͻ 7{WJbducZjclK՗ïJrJvL*+ҿw٧)xw|> ^uSt Z | Sxm.lXlΖgAo s|6mYWk^\ge_^|䲋a.!c, "WFG,}bVj*M`\㱳_ szyN ?q 3n`ظ}].lp3YvYڮ]utshdcp;kv4ZD_guiV-T~z3*,᳚dm`tHt oOZwfZ*Oh}+~lް{[ 5PM ?l7U'nl=2¨_ͷBXC,Ϲ|㋭zY@[F7p|RԞpuvb*~A!F,&}Z:ɯgbp{F{> crvHɽ5h^hWalqNgcj fal̉p+ v>PkkXoabH_|}uo wԢ~֋ϸW\eqS*jMGސAVI|Bu>LtpڧO!.3G7T( g{@M?YJC Y]4kkXU|}rB49@SliX#kxBOPլVVo6CRڋesCRÊ/G"OoXIb1)WM6 ϯ1W{k-M4G%O2=E"w`PDJJ@afxih|? 8@Gw̗0:v,XnKDQN2ԀMG?-8S+P씔B%C\/nklV6+rٽ*)(ip\J 3|8[lOkt ,ׅyE~ <䝎4I#?BxK3Mu^bfo"%5LkAJޕKr}4kM 6a@'3ԷcFE>_Nh6Mk̷f5r~g'˩ch8' fT[RK*ޭH ?*G>U}T KJi- t%Wlv \.w>m4Mϳ{K| AnEMLFz6/nf)0/a瓖 _üs v76P?[df)#c$4xfohL'b\rho9J fJyV\bQ R?>]"r2Jog\i&r{9DMmUaw~8D+S|,7k&"ejP.yiN 2xR?H{$'uܙ#Y'NJ-y܏v-ɲ7Z3MpR>W_ O4gQ:b,`ϥT+9HXr/L /7oNH;o^0f" L"{ɖqtf7؏\ Mq2.j+xƛ3j̶ -̛]גt?˩W]NZ9ӎ$khce•D}K-5r4tSMt;bs@Qݎ.'xp˻Bu]jrә2N鸈k t_l#Ŷ;0B>omL򯗵'϶Al?ͳ6i鵲e^ӗO?=endstream endobj 17499 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17500 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17501 0 obj <> endobj 17502 0 obj <> stream q /X1 Do Q q endstream endobj 17503 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17504 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17505 0 obj <> stream HW]oH|篘sƜ~aH^ rHt;0hHO$MJvؐ*U4h鿊M~7*RYxmrZĪ4q:jS:m`TOYj6պ6BmVݶyp:7WN5 rX$RASQ"\.쥍Xg_df:f??ԋlQGɦ[uߕ R%D2<Hb #pڪ2J_wK*]m JQu`|rr D(,ŀe g Yލ),+̽[ sw{{g3>fc}ǂO s>ܧ}*OTp2>c3},F-ցRK1dqZ!{KH-Ő%gBj),=KRK1` ,VH-Ő%gBj),!C ,VH-ŀ%bܳZ!C :pBj),bRK1dqCwO1` ,NH-Ő%guBj),!C ,NH-ŀ%bܳ:!C R Y{Z'bܳ:![^H-ŐS XBj),b),!C ,^H-ŀ%bܳz!C R Y{Z/bܳz!Z!KpRR Y{Z/b RK1dqZ!\yU.yp:[e&t z?D ׻"H8\$.BU[.L쥱Q ^fӬUl82Gl:i2?x.MT/.gemu[KjY`#g/DnS˫5tU_c[QԍHGa&찫TfQmU*"+S??*dD->8qY\a_aڪÜqk ɔ`gZ^L+b Z1Ji%V´RA+eZ2LʘV&heL+r Z9ղעŀe-ôe,Ӳ{+=Ő%hS Y{+=Ő%hS Y{+=Ő%hS Y{+=Ő%hwS Y\bb;a),Aͽb;a),Aͽb;a),Aͽb;a),AͽbùwʢZ^{!kQ ϯ{/=*hS O{/=d*hS Ϝ{/=)hS O{/=4)hS ω{/=ȵ(,E1< Zlca?'+?Δgo5h{uoJ8 c]L~VK5aK8Of8J&{T)쇪NӚkC8U?(.1qi.LLlzͰk8bu~ @s'Ad.p΃#dmh~f1v(}݇]Aڷvbww ovwצ^=wmh꥜(0F}n_{  d8oWr $ 1KInݕزl%cD](}nl"ܴͺܑ]} ǻ6?zmnvCړ'[Ƕfu9Dp3lhVXuvxRlF 43IuL_ŷ֊?ɵ#5:˧.q ]Af״,ުw->15m6T?$Lv0ބCەvi4=vK璚>o/!3Y%<{ϫO~8ڐʋ@fH^-9R ,7} 6.Vww}X_7=WM60ЋKڢ@RE-rbkk!l_7$%So¥BăR+y ԺP0];T\ "9C]uvׂHq@$%!m&رkO#(ZZȓ Y[.mKZdicR迺^>˲eȅ*xhFM@8*9[4Vt$2b yP)թҰ CEpc TPWbDQJ3˞(4vf'mܮ;RL\5slmjx$9.@ |}-] /+&cs+އ4Is{vӔjzCuΠxWB]tZթ[-~ձSϝOJqyfDy |nKS WCz{ť ) 2 &ySwc'ȢUfɺYO-Ç:ҢVO+5Ct4 7_=۩.{Tz(ui1zo7n` &Rendstream endobj 17506 0 obj <>/P 1019 0 R/Type/Annot/A 41254 0 R/Subtype/Link/Rect[129.600998 258.328003 352.524994 278.007996]/Border[0 0 0]/H/N>> endobj 17507 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17508 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17509 0 obj <> endobj 17510 0 obj <> endobj 17511 0 obj <> stream q /X1 Do Q q endstream endobj 17512 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17513 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17514 0 obj <> stream HWko_1@׼>n/xyVeL9L%KIb{^43 Öttf!}anŋ)_Γ*7PVe* 5$'m:oM[m[ϡ_/ mWdo h,ER1'i Ur5ۺYdH*_O^?mBgUjcX2̡v(>|t3`9JTfdbp {x,U̝EH~1A: KXe+bSۼ;dZU`\&>9ptjbQ YZs+XT\<Őe7z[Aeꭠ2VPoz'wL;>gL}&ϘLP1>gsA}/S_ ԗL})/z/L3j[%Fp-R,zWO1d X` kZR,̵Fp-KP\kR Yk)XzZ#b%g5k), ,A=s\K3[%Vp-R,zWO1d X` kZ R,̵Vp-KP\kR Yk)XzZ+b%gk), ,A=s\K3Z[%Np-R,zWO1d X` kZ R,̵Np-KP\R Yk)XzZ'b%guk), ,A=s\K3:[%ZWO1d X`q ,+cWɫIr2h0Y$#W E,LVhѴ0p)޽|9l:'¨̫<7V[LpO+'Kn07o~{'EY<jÈDPYC2t2~4z zl+/k,mCR~:2t7uYb6U<_޼pn:ft:\}esw쥁mt,9XvSU*AT!9ݸo6y[pඟ*Y]aֶor, ɇQ3XՄk7ݧaHZك&>v@JSKQ?\u1Ԗ.taDK@ljp9q"6376+T w}I-DӋK'k?M&B>]># 9i\Gy,CkCq|amgú@S{XUaZXͪ)LpgcnzpK> Iaqi)~Bf6ͭYt9d=vvw3.Wa2u?^vl6mv5Oa|uheuGSVo}.&/O 璺endstream endobj 17515 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17516 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17517 0 obj <> endobj 17518 0 obj <> endobj 17519 0 obj <> endobj 17520 0 obj <> endobj 17521 0 obj <> endobj 17522 0 obj <> endobj 17523 0 obj <> stream q /X1 Do Q q endstream endobj 17524 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17525 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17526 0 obj <> stream HioFW,/܃ǢP;G6i(rp)*N;VW'y.Y`CnK#޾D&a(-a\>=xtdj.heךS \F7[2z+[Foz@}c>f@0DO}*Ч>SF )g}@YfZ#jTZS ]jRK5t ,FH-%г!TZKg5Bj.R ]=KRK5t ,FH-%jYjZKg5Bj6ZS \Bj.NO5tqzKH-%гZ!TC@RkR \Bj. zZ+jRK5t ,VH-%гZ!TZKgBj. LTFUp~aώo[׋#&Wf U)u>u7OVy2YfܜjxH94v*MGIǙo t]{ЏQMZwOQ^ՕԾۥ. Kx|Q}T{ރ6`]װCŲ*u>yw߉%;1߈81 rkaMx78o>@wukJuT<[F)y8t (uvp$a;t#$T eendstream endobj 17527 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17528 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17529 0 obj <> stream q /X1 Do Q q endstream endobj 17530 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17531 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17532 0 obj <> stream HWko6_K臶 ] y,Jf$w'9:$ϥx.ɫ߫~ϯa)ǟ~9;R3S(IgɎu'k'5,zW﫡Rcscc&zu-}M/%% 'ӂmueҤruq+ʹ0PojD lf4iY_Iԗ$b$J쉉>߯ǔݲTzJ |2_:)M)cNpD"R!+.Ā%D 0dj"bzzWzWzWzׄzׄz7z7z7zY>#gPGsB} y P_DKB}/ ga;$pm!+Vb"\bȊՇb!,µ!,B}ZI6ĐE\+ ׆׆k%C>r$\b"\b"GkC Yȵpmpm!PV 1d#Jµ!vHCV>ĀE6Đ1dC XkC Yȵpm!PV 1` 1d#*µ!,B}ZE6ĀE6ĐE\׆kC>r"\b"GUkChµ!X}pm!+VbȊՇ׆k5C>r&\b"\b"GՄkC Yȵpmpm!PV 1d#jµ!,µ!,B}ZM6ĐE\ ׆!1kC YCV>Đ/yYoOj+RL]rlc" Xl{HoťL5IrsHNK6 .x<^b6`Tujo-V"[DBLJ6bi0՞A"S.PS"|oY]w8Ly }Gao1YB&=}[{ ԛPmʜB/ Հ8FfSe ??p`*b~Հ}?^~4 *<4}]p<ϵX:<4܆oQZ6uV(` ċ/u/[>x\橙:lzfOm#s0PK{w>w(Lf*ʤ3;ZЧS?ycLC|]՚]g_@ՇIA9zwRD> p%75m5D]m_`O9[M'',Uo,X$ ?*ΏǒJqcSX2/X`| G㼰?N޺6ctH35p +&?[t+TeusRcoc Nٸ,WI$KYpQ5v0)L#@ɇoU,U5g.f*5#+ jwyXMm?v}!X{BP_l'Z~uSݜCN1.1p+ㅥW/Cqh_W_깱?dle+ Br J?\NŖk& ^?q^Pȸ] MP}i]<'T{+?xD,tojw iaP88ȕ(>5\Cug)Hvϛj~>k[2k ȟ,0fOؿIs[ΧkCMOq`g'<+…ŭVq zR ڮrؕVMOQ%JF}6RO L`>za=`Ԋ"8Oe|tRƇǴwg5Hr-tx<tu1v:TtDfu)*ɳ~^LrVUViaYCW- ܹ9&bAdH- %tj~tH!{)=`7j=K{*4/K-?K?N4f>L聂p DUjc` v&g}O2J'5r[trj?)R#FC-VX]{\Oϛ$$Yd׺ptٷnj ӳ< *"RqU+iL_V-.x-"H#ބde{K{-:zDkMS5>M7:R^ȲmMPޫ)GY u|GJ vz' ȻCp2CiLϛEyw|޿8pU/c̛0d6 yOKR̈% 2I*h:UOYgGDžX0W %%Wk!:jO|~c2KB+a3{x1{ fa>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17534 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17535 0 obj <> endobj 17536 0 obj <> endobj 17537 0 obj <> endobj 17538 0 obj <> stream q /X1 Do Q q endstream endobj 17539 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17540 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17541 0 obj <> stream HWko۸_6*Kܽ inEvHBXߡDQ69Ie!}H[_}ף§ 2~Hr_2RgޟrQcMGvRm:/Wνw F;ZPH$0', zVm^d`DгG^ϗ炆~q,ճ}ޛKȗܤulFͧh}2}Y2G3MzvwUҼ#[@Kx3%&o%^`-Dژ$1r1@QꢬBIes%oaaaaa/a/a/a/a/a"C}>rGa!#}1>v'a RĴvZ;P.{;(ĵvL\vL\v PkB!2ĵvLkZ;(ĵvLkZ;P{ǵ qZ;P{ǵ qS(Z֎ qS(Z֎)q-C\k #c 岷cB\keoeo֎)q-G\k a︖#cB\k a︖#c w\1@!c w\1B;k1B;kB!rĵvZ;P.{;(ĵvL\vL\v PkB! ĵvLkZ;(ĵvLkZ;P{ǵqZ;P{ǵqS(Z֎ qS(Z֎)q@\k O"c 岷cB\keoeI,% %[]~(KaBw=ڌ_pnvhMߺ}(Wm^}xu}mV0I6|ߑ6 .U@c#>d8eJ?#V!A,X2L/g)3˶3DD:EUtFGulFZ(<ᡙ}aK-2entOu//u_~ZznΧ˳/~I!ZTyUwg_ufq 0ㄚq,;UrԷW/3WBib}Uexa4&=3%B^E 䎈!)iskhXkJM2HSL;Kݙ؟l[i9LU[JDdM]4 gyqnFG^K:qw񺻫\okۏ>菇jiO? tv_?Mjܧ.3j՟awDh\jhugD"_>+J%%{&qLu3fv5EC62jL'ѺmP+Bu֬f㦪EA']ir"'d]eM3ْTJ8t K@;/H+$~5D(.FcV2) 1\|ٛ[u.t"]uH`ƁW .X k r}83TpIixj戲"~8fbDX]Яx2u>qT0 Y~N2 o@nӘY3%/kA3}Lj&nECb$! z#\\XU {K~B0 TאS#a=4 H\4si;;+9P9<1_#.6~?,ELC#-8E(>WݐfW #vika>I_|zR]qLZ?ݙa }F m "ꊂ}n7ȋ ~WSO4&1aG6:~wK wSUq3j*0U$Q{CUV]As|"jMQd8@聛>Q| chIcc_jtx-<0)(qׇ#3r1a CSIt6YmӦ٩_ sr#t8~w:چSTT& Ț&o4 lxuyY\M~ cz 5`R&"Q Gm^t"mAAup~v9ٚ22~s'aJC,۴/*Q9zwy<}8EIs&al;I5Ơ8X|͋/|(~YW#aϩymݳu0|iu0l≮_Gy| }((J_.+ۆj_*ᓗp]\/>/z8L}ؙ4ٿZzܶݿBGIm66Hhe:"K)𥇽|"5<8h ,I!nM4xy`{|uBK\u*r+١17) uRV&_ky)1X S'$$X*ۺWF:M/_I4 zqNl烒\1m/ e46 `RmX֏_z̝;uoP#+/f[ăN`I}tm=ܔjca^ZDkQ>(à!A2 qzZץE7?šc [ʱ o#t5nGl҈LٵuZM:ٓ,a%  9ȦHJI|q"NC#:ahT4< CxuNݺJynn-d3P|iL1 Kĵ3~fAb)I!Rzw`h6vcN7BZ{fې~_7 #L#0&* F! &04mgMb\Xz}U >wp<ҩe;5M*yYLQLB+2Z5nUV⶷ q*TT۳X<EBiz{2oZ}VG [gE1'\)R08;sgA☟N%@*i=+ՕQl:Gh:kIHhPOWb՜' ssv"yY$zQ@&I;e{av۾)p+wX>g/7hvQJh7g^֓cvǦQx=+@';h76S RBN_3endstream endobj 17542 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17543 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17544 0 obj <> stream q /X1 Do Q q endstream endobj 17545 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17546 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17547 0 obj <> stream HooFSE!l%$E1HKQ D$]JZ7CJr4;jazoJ=ș,;J z֑OM&r{\q̣Fp8K4rYٕ Ṇ.-^ :7 @oz#Л>Ӏ>Ӏ 6 @oLL\\\B/B/z'л AfZՑR5r\CZ+BzKH-%BjF.>HR5t  ZH-%Bj.!\#@V  ZH-%kj!\#@V Z!\#WH5t Bz+r\}Z#k!\CZKRkr\}Z#kR5r AjZKRkr ]BjF.>HR5r AjZQ*k 鹆.!\#WH5r\CZKR  ZKH-%Mr\}TH-%kԦBjF.>Hm*kR5r AjS!\#@6R˵:BjFkR5r\#WHb\ |纎Ѭ,((o#7@ < u4髇g}?Suq&|›y Wд-?IgqYZnӽoz2riBfpQ}!AίnYv/w|lXL1RFUh| bDj0vuЗu?lzyOQ0upElf'59 j]6gN.WYL~n|h/gwY-@On_Bۡ_TfӮvUm$@BGg C۸XLۉi\GӚ^5 m?l7`Kض~Ѳ٠v׬m)̄uLp/ZLq-MHs+ؚ=[@LxS$v#v&g퐊aN?{<*[s a1z—j|3.yv5 @8iGLt]g1Xcd~ ۧ^U͸hzVٹŒE- ӫ\c\Ng)t0OmsS%a1%rwuTXy) :!Z5OoA=C]r vk43Jt+t6 |[==IWvÎX~/~*|}=}糲ElYk]mKs:ºcqv_ \c r Ns]jRcJ*c)8{S߸3ģޯ? 574K+˃oϏ>7B0jnoe_$XۺZ }g/#f85<BW^y/'zendstream endobj 17548 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17549 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17550 0 obj <> endobj 17551 0 obj <> endobj 17552 0 obj <> endobj 17553 0 obj <> stream q /X1 Do Q q endstream endobj 17554 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17555 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17556 0 obj <> stream HWkF_1HP< &HrY-V%rCJ쿿nMpjkzjU3we{R/^\~g/_|hBSInԨ,QbTbuhU?P94muڨ ~}om^Wk(ֻAbUj,i_{iDz} _moIͻէۙ2ey_˻oGz/ ezn0_ut~_[S*(l 9>A]}P$SpNA8:D1d(,9`Jծ5O1`Aaꍠ0VPoz+L[ SO S>'L}*OTP2>c3A}g9S sL}!gBh)v Z!R Y\=ŐS XBj),A=KRK1d YjZKH-Ő%g5Bj),A=KRK1` ,FH-Ő%g5Bj),!C,FH-ŎRK1dqZ!zKH-Ő%gBj),A=KRK1` ,VH-Ő%gBj),!C ,VH-ŀ%bԳZ!C 1pBj),bRK1dqCWO1` ,NH-Ő%guBj),!C ,NH-ŀ%bԳ:!C R YzZ'bԳ:!;Z!R Y\=ŐQQNߢ9ZJ.qYQaUj} ²].(:cx{>VZէ[ִ1.Jlͥ;_Nz=g{ősQl]:S}S Yf7ɴnvck_}7ͼ=6Νr7+zCkKh1Dn-VZ0Y,,J*uz`Dֆju|Uݩoq6Xt5Ϫ'Z_hW:W}v˥]cPnaxTl<\龜t 7*r~G_֓ӾJ,s4ZPMVb|: <<X=l?Xt0-I`(t!֣qAX<>oB?p#w7 6hf7sFI6M~v6QJ~9n_-+(q1tp8̾O3 gc@c"챣&MCHk,oLt~e3DL6c[]7iWcoӏ/ccS؍M&pB e>weg/EHwxÎL,u!Gdzc<]ӊ`{M[ݝvL;.iJiXIkar[b(FuaQMxb.;1%y\,džߎy*$M4ˉWiim% fJpZzG[op$rI|9i'Xj(ݵl#dUZdS{|zVq`L>eUc8Ƚ:P=U0 [v9F x'yOYwEV5IY;7Iq/pQ]~ujV9<h?J{6o~YІj{s8ק}~6t_ifذ7~lC0,.clp˯O QYM2[L!b<#,`~PXmC|O1dZ{!*(\h2R *gg8\sz/XcFS_&ڿ%p9pƏ[jxo+D61y ů~P n2sF9~7wfV_r@nS{ޜ:uj\NUWM0ĞU-YmRJɡM[h/a[AbmwlIRry3o'6) CU/z5Y! A-{?mL{szXhW'O_&V륳qᤳdܬhkz 9Hcu~<t}t4 :X5)b>!K͡Q>ơmdE02KyԇJILc B"by]͍H~'y;xZH_u">KX`#%E/1M<8JɸEy$G"1y>/Htev5ib-{SADCq,33" E`u',bZ".E_WƂa <^3ub krsbm,D>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17558 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17559 0 obj <> endobj 17560 0 obj <> endobj 17561 0 obj <> stream q /X1 Do Q q endstream endobj 17562 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17563 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17564 0 obj <> stream HWko_EPB>j:I- jRJJoYRɝQ8<3svvΒ|XV{뷗uItr?gyۙb=o 8kOqɾ1[߱[3/U!$xKCbNpD, s1` YfY!r Ż$^"P/zEWH"+^R ׄzԇ !RC>"GH}DP#1>FcB}'O RS>%# ´.$Z,ŀE, w1] Xk]̲ȵpYVu1`u1"#Jµ.fYzZIŀE,P\+ ׺ek%ZZ,B=r$\bEGk]l)µ.fYXpYVbջ׺ekZ,B=r"\b"\bEGUk]̲ȵppYVu1"#*µ.,µ.fYzZE,P\׺ӄk]̲zZ,, w1`u1"#jµ.fYzZMŀE,P\ ׺ek5ZZ,B=r&\bEGՄk] Xk]̲ȵpYVuu1] Xk]̲z,>ij_j뽝yL0f/m LȔG,l6lm6Yas|ľg7M5f_L}m36UG=>珯0: 0J}?~6K?MYUY|5Efa읛NhWn6ٗ:&UY$1Pdv>?L$H~pybm̀ul ՌuVվ2%: xU"Zuʓ#%7wǎHtQO]O>u=t'h3P}-u_C?6b5b?#:(D▰}i]:7Uȥ)R W͊|;vG+6ecQyDg~3ㄋ4H<_k| XU/޴cU[OqW{_rXy [g5`N>ď b_CekïܙbP(:,h{b>Wjžx4 w*/͓馜* .]iqZlԋaǵĠ2U<"s۵= {s@~i;ԊeRsjW-SAwR!bvY{Ívbadc;Hwp雮p #'Xgݥ&(z&{W|r\qٖ8\^Qpo}Q4x| xʍ-?vfMnƎWOZe5gvN]Ӎn-[Wf.W1l6~9#<3p~5Zķ*R8!CB!~vaY/v4qA0Bۛ>daJJGIIǢ͚lIbfq1:Q`!JЕ{lm{ξyW??N"endstream endobj 17565 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17566 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17567 0 obj <> endobj 17568 0 obj <> stream q /X1 Do Q q endstream endobj 17569 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17570 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17571 0 obj <> stream H|Wێ8}WdZI`v 6^d8<Ķ`UrM:$ݪn/7_}?v |nԨ,7.%!ҪT?ݪ-ծ}ZetQMj,gZGITPb,b}/mYL?-> qb:sϪu4Eӑq;'i^3|%]D {ϛFN >~JFE)wlQ8'N,#Q Y|8Kk"ڵ),#7L -Soz;AcꝠ1^Pz/L{>ԧL}*OLP1>c3A}9SzY-bzKp-ŐS Y\=ŀ%b3CR YzZ#b3Z!KP\kR YzZ#b\K1d kZ!KP\kRlYCWO1` z!R YzZ+b3ZZ!KP\kR YzZ+b\K1d kZ!KP\kR Xk),A=s\K1d kZ#'b),CWO1dqZ!KP\R YzZ'b\K1d kZ!KP\R Xk),A=s\K1d kZKp-Ő%guk),A=s\K}R Y\=ŀ%b),>!w\Wf0J}z.6*͒ت>oB_[.gr qB/ yiWmVOU<3ˇX,gUtsN~_>؏5ĺ_~zݻ[^=>lW9O|/Ç#[Eĺ#:tgR[7AR` rB,b9!c˳X^YTX+e2!VbeBʅX9 r+X2 E1dXbiK 4eX2B,F{!KyO1d X!),!{#=Ő%byo؝X,!),!{#=ΥEcY!),bX X[!)bXh X[!)bXB X[!)%bX X[!)šbX X[!)eE1dXÂN yO1,X,RM yO1,ՄX,"L yO1,„X,J yO1,X,I yO1,x,!ǢDB,^N+seǰ%wˇǺ!9V͐nޛIw\^U[M]>OUĦPDO_m6ʠmŎ֦?eq g+us8+^KǩݬU;ɸhD0BG(KyCpt ,6LWV\:c g]NR_{N5? jk=/$q꬞*}V&3_M:Uȉmt7z{r'o7"7R FޅlLZJ+$X%aVEXjªUV `5+VV&lYa,i Y6',,OXXaxo3mx6axo3mx6axo3mx6axo3mx6l&-ʹEX}$L[GʹEX}$L[GʹEX}$L[GʹEX}$L[GʹEX}"L[Ȳ6axo3mx6axo3mx6axo3mx6axo3mx6a%fBͤEsN/a-o aRUlAY>.Z7ylM=V7aw4?=t N"^/eS.?tJө>0_BU4Z IEyW:5B]v}Ͽ_p~o?nٺ]Yφnԭ7 }RW}e*Nz}3oɫū0vx:?wx9Ʌe%k'٬܏+ r!"8jilp9 VNKl+-= RG庥hfin[붾/x >O*$WQ*U6㩽ʠ/NZ>Q?t _r}2^&V&-`%JJUV J`UU" X5a VCX j ++V0Eʹ,I',@XX@ {i@ {i@ {i@ {i Y6f",>m-#f",>m-#f",>m-#f",>m-#f",>m-dLZ{iD O{iD O{iD O{iD O{ixo3m!f"L[E9mO_aٵw׷GH+b-sO=vwVze,jdT[nڕ+de3ڡEոwvQ.r;O^HiHendstream endobj 17572 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17573 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17574 0 obj <> stream q /X1 Do Q q endstream endobj 17575 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17576 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17577 0 obj <> stream HtWkoH_1 lcAc!ah9҉æ[Ś!šUo^}pQݻ? Wq*m6J:bhU[)նlRQM~\:W4Uj BklS6IGmxS=ŦQKk4?}[f_^It<1*1 a.0ρzR:V_E~JަI@( |vl'9-#Q Y;Kk"EkS XFpo{#7̽[ -sow{;c}'O s S>ܧ}&ϘLp1>cs}{{=ˬBKm`R Y=ŀ%b),bRK1d YjZ!KpRkR XBj),=KRK1d YjZKH-Ő%g5Bj),=KRK1` ,FH-Ő%g5Bj) Z!R Y=ŐS XBj),=KRK1d YjZKH-Ő%gBj),=KRK1` ,VH-Ő%gBj),!C ,VH-ŶRK1dqZ!{KH-Ő%guBj),=KRK1` ,NH-Ő%guBj),!C ,NH-ŀ%bܳ:!C 6HR Y=ŀ%b),G{b7i.yp5?j~ᢍR^ͷm8_jץf:w}ޗ\e3>2A(8BFb"*MpMS=fVu{^eިR1c PLHF.w.IK5t:^nrj«1q;Oġ{bvHDYL-gYjXe>+ۡ¿e~1E= ،coSծpjW7,ur:Gƌ=طa0@x|:§۪۽,l5uY@"DNI'۾ȢҧnË٥Ip%(1:>Rm6!w֦g\nCMxwYe3MVL! _$qo?Rq VjB!RYy.(qd?*aiD3,lG]9gqmmE7PU wb9סb$]rv?;ؾ<עAnvh)9DAa.‵0X(ԧ-뮯lH>4,5B[?\`~unSod>ʴMN xCFc;evӷLA QO$4u9]9N⠪&¿sQl\:/>pݤ+WIR]l D;2sű'ˑ2Ũo_تns!b UU?s%i*4ɫiũv_\[F֬wOQJy;hecB?g~S]]޿߫c+&s3rRKߊiʼnnC3fmhv1b}~6Y\r]B%|zugXz -SZW.7QO(Wgϳz]61)|TC`4^~:xI0WlaSraeO8;_U`yKuU6CuW s~b_|mr qށihi]-ת+gZo,^j>mQ>/\4]tN= tG@3 u' ),/rcZ0DJV*hL+R ZiVδrA+gZ^L ZjkQ Y\b҂fZZLZiAսbX),AսbX),AսbX),AսbX[),E1` uO1d ZPC uO1d ZPC uO1d ZPC uO1d ZPC uO1d ZPCע-VN{!Kbu-VN{!Kbu-VN{!Kbu-VN{!Kbu-VPCע<3}҄/*8DYת^nRRet(˼NzmVKVxqlyop8zvuSvZg7WAt(ML`#5ۢ!XjƑNimݿB JZQriIK=4vO17VB @ =wF\wM?!g'ƕ0_WNӛ˫+TM.e!.n?z|1{" h\ 5#Bngo-G)bc<@]?U8qмΏ6_joᢻ߭Z~a]V_I Ҹ ` Qr~|pNH|gkǫoOkoۇop|qǧ6C+ZYVWtxe߇Cu[V5ORV9O r9E_]_7E?| I?LZ hVhXaUV XaUUVXaՀUV Xa%J+VXa5h3iYθ,oXXdXX{LZe'ΤX{LZe'ΤX{LZe'ΤX{LZe{I˲t-ΤXיx:`^g,}LZe{I x3i>u&-2ΤXי,KgLZe{I x3i>u&-2GΤXיx:`#^g,}LZe/:e[{I˲4M?&3ãD6>tE3Sp(rUPWXQˮjfԧ|s-Vf?l8|v804mK微Ej45M>g Jendstream endobj 17578 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17579 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17580 0 obj <> endobj 17581 0 obj <> endobj 17582 0 obj <> endobj 17583 0 obj <> endobj 17584 0 obj <> stream q /X1 Do Q q endstream endobj 17585 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17586 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17587 0 obj <> stream HWmo8_f/R.p[t) fbo(2E{AP?>3]Vu_a6W_.%)rI ~'M}IMC5طzK: }f]ogI8ea>IJ9fWvۆ_ VQy7,T'7ݵݱjv2zWK3&)EoQ>N{9T'<}OHfdNOt13p>dFbLL&Pr PPA9O6@ H HKLKLKL+J+JkNkNkNQ@T aV mBT aV mOT+6@!mOT+6B'jc6B'jcC! DID͡R PjcCcCc6B'jcC!JD PjcC!JD͡j%(D͡j%PDQmlPDQmls(}Z6369T> Qmls}ls}lPD Qmls(}Z6 Qmls(}Z69>QBT69>QBT aV!mBT aV!mOTƶc6J6@!mm7dYN6wg9sC6l[Ҵݱ:ޒn6"&$*K)/XrK2ẻy ^,\@K. {TEAKk )Lybi7`gV', EyM1tOjnZí)10jj\-r,/)1%ߙͶ:m鵚FWPH)-rRs\9\sZ8$Ѝsx n. @_=62V(7D=PA.DpxPzcNU{WͽO+&}{hsXQӊmݸ Zy8GK/FCȍg'/.i/\:7%W/a]C<zQ@^\U.3P4m>pa>ΏE $dzMzt@4rںB6H  Ny2sƵD/HkOk{xvTTS~3TH@Ӆˋh6ߖAQ+V8bاqLm(нE|C(fhM|9NT\u[Uo}3};a|xk꾪MUp\ cꦹHxL9̜/"hAn|S`|!* @qjCjQPJfqSǝX\1+ 䦆C,•ν'D7:=K]TX&/QɬT2U.5MKꦷPU6jm|B߷kWGK|\arq+sY|߶_|xoN*Sf/]*MrTLd2{Kgh6qC6Iv 8cȕ{Z o<B3\ۼ/WslROĜ0~駩O#)Z.[]Vɥ[,RyAy{h{֦r_'l@hb8tWPw[Nmn[r#]L.vá/|P@e\s~~Dm$<8=<; cʝSxs JšeKJ*4%tcρUDj'<a,-?+oI%dqCj3&*yYNWM6 1dvoCQh0ilv}EɖfwOl)=]\*Cй@fU)D h˗ԺqMq(AR$2DPs/|!ƹG"<?1JڑS~Sb-,2 `@EYo i;zU!A `[1n*!Re\>hV{N+rY/bįrh׼?#uOv=47/sQS>8VJ<$lg>]A@aeÍ m:`N:s +mf76VTjVbQiOo7F/aL:cDHB<-@:z }biҹv+Bc]ѼbY_ڦ Ϯҽw8%Ng=Җv1{z%ccY&}E#edr-aKFMo* 0pj_q'qckeu}0UL;ah/Zߌچs-Nhm}g M IW7o=4xeZ/[rɏc=ղ}n8('Z%7Ebp-hۈmY:ji2ocʡ>QKݫ 9a @M7-(~[iගӎAB$gyFV? h((~pslv<4&gө\YӊsrZv<xC:P?d%0oY^ÉTjf۬JReaHt\I6w:B1tc u^H}]нXe@݌Q?mKW(mҡ :'"sferɊD@pgS A˼6n8ԨO( $|YG"$M;;A~^]&l 1J=hͽ}IU>/P 1468 0 R/Type/Annot/A 35099 0 R/Subtype/Link/Rect[93.6025009 224.427994 202.358002 244.108002]/Border[0 0 0]/H/N>> endobj 17589 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17590 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17591 0 obj <> endobj 17592 0 obj <> endobj 17593 0 obj <> endobj 17594 0 obj <> stream q /X1 Do Q q endstream endobj 17595 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17596 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17597 0 obj <> stream H[oF ?lQ +/pq K̢V`20(W4M{gHJg&}howF}JgϞ8Mz2'VU2MՑV"*)Ӧz,WպZͺu&z^D'ʨb專VaNLft]ΚjU zdlo;KX[guӔ4ݛ~hM;5"!RIl~Zƻ׸("ִ=[\lGe>Vw*]3 /<:ܓю.e w ]ApQvc8F )Oѧ}3>c@1\}.г!T[FVH-.!TC8=%jYjZKgBj.!TC@RkR ]=KRK5p zZ+jYjZKH-%гZ!TC@RkRm9!TCR ]jTZKguBj. R ]=KRK5t ,NH-%jYjZKguBj.!TC@RR ]=KRKeR ]jRK5tqzS \Bj. zZ/jRK5t ,^H-%гz!TZKgBj. R ]=KRK5t ,^H-ՖQRK5tqzKH-驆.Ny{gl=/0ʨbA_uUIcet3z\Uwj|hGv~w:~[ލp?G' ˲nɸ@gyt3oìQM,7LUs:>,3#8D]bSg,+U]umg7#`ƶ8]l zHΠÂfU5W_wdwO?ܾxuu1ϟ0Nb1o8[fܶ^8R_7sl<<xi<ľ/jqB.lVJI40(quW[;]e5[\a oëϻ~W6xU' n}uw>l6RqyTk7tSYצYMFXqڎg-:%4&<ýZжnЇA|yx aWu(X }.ۣxhnߗr=@m/iðynz{aSc?03}mG5!dU$4t%v#L%T%s#5d~4}}.닸.u=ikv۶o1"1tlWy2ToHMn bx/lKBKMjp(MXdCַכ׌SiSXG #|QM<}Lphoy#{Z&ۙaᩧ𭫬}B.`>1OboqEs6e}p`mP;ͺ/`es'S8 4i_xφ;ܨ52>AjBRP-K3SɅm/[ӾY(+pf5+endstream endobj 17598 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17599 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17600 0 obj <> endobj 17601 0 obj <> endobj 17602 0 obj <> stream q /X1 Do Q q endstream endobj 17603 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17604 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17605 0 obj <> stream HW]}ׯУhfS^$Nh]_!([I^[6#c̡vnC \ߔ.׫WSóL/uj r\1#C6 O?$"jWvjCCIurVɳurTԥpTZ^}ڦx%p s]{u™AȽL}*x"}??o6Mʙ4>q°Kng00m%DB62 s"&m{{W{W{W{{{7{7{7{ y>'{K{K{K`_D }w{wH-I<*fm"Tm6cbG#JBQHP-P-y>R$TmET+ bbG#JBQHP-P-y>R$TmET+ b>Qjͣb(BQ1{l=P-y>R"TmETbbG#*BQHP-P-y>R"TmETbbG#*BQHP-M<*fm"Tm6cbG#jBQHP-P-y>R&TmET bbG#jBQHP-P-y>R&TmET b>1jͣb(BQ1{l󨘽c9r/uOZ"]OC͊4ϋtOfWO6y Ezd"Oכ4Q!ϯ֟ 3Ya3+< q`DS4oM]0W7ϫy'[d;)9MWE!?$Nˉn>P6ہ>m`c|OQپnc+-X!]>v*apn. uȅ"l}IM61qsf2"!殫fʏӗ9SK8* _}4V䂙|/8 < 0Ό٪wzΞt >WS옽gi 4oeW 958)A~v"LJ'㗺037PêmC{J?4~aD=XPb~E9_mT).JX٪lڦğ4u@^ j?kl[fUy^m^KKyVŷ~m7yn _yNͨ"Fs0@#D8$3ˈ,BH36 3~S-6 .-Fq Cn޷B".<+DŊl(yDݜtFU92­{ gK]Vc`cry;WN/ag^^!5IL9< gpѹϪЇrkgN=Yu3(Ȫ:|5Ɠ>djˡP&CQ[;Jl_z)]L]S@5ISb=ʅ02tKQ! ɭA<|d+8! Ü }rw~g\r O /#@j> k9$T5Xnul [q`9<2/-"xt#:Îw\eX+f%4 k7nKӗȺmੂ lylN^șu?#Vs6`0U K ) ZGd iľp^7nvGpշ h}:yz;M/_endstream endobj 17606 0 obj <>/P 346 0 R/Type/Annot/A 32527 0 R/Subtype/Link/Rect[154.800003 666.190979 281.401001 678.221008]/Border[0 0 0]/H/N>> endobj 17607 0 obj <>/P 346 0 R/Type/Annot/A 17888 0 R/Subtype/Link/Rect[154.800003 653.190979 354.829987 665.221008]/Border[0 0 0]/H/N>> endobj 17608 0 obj <>/P 346 0 R/Type/Annot/A 37570 0 R/Subtype/Link/Rect[154.800003 640.190979 422.299988 652.221008]/Border[0 0 0]/H/N>> endobj 17609 0 obj <>/P 346 0 R/Type/Annot/A 31096 0 R/Subtype/Link/Rect[154.800003 627.190979 342.850006 639.221008]/Border[0 0 0]/H/N>> endobj 17610 0 obj <>/P 346 0 R/Type/Annot/A 37557 0 R/Subtype/Link/Rect[154.800003 614.190979 315.559998 626.221008]/Border[0 0 0]/H/N>> endobj 17611 0 obj <>/P 346 0 R/Type/Annot/A 43120 0 R/Subtype/Link/Rect[154.800003 601.190979 338.820007 613.221008]/Border[0 0 0]/H/N>> endobj 17612 0 obj <>/P 346 0 R/Type/Annot/A 37549 0 R/Subtype/Link/Rect[154.800003 588.190979 345.480011 600.221008]/Border[0 0 0]/H/N>> endobj 17613 0 obj <>/P 346 0 R/Type/Annot/A 17666 0 R/Subtype/Link/Rect[154.800003 575.190979 339.519989 587.221008]/Border[0 0 0]/H/N>> endobj 17614 0 obj <>/P 346 0 R/Type/Annot/A 17664 0 R/Subtype/Link/Rect[154.800003 562.190979 314.910004 574.221008]/Border[0 0 0]/H/N>> endobj 17615 0 obj <>/P 346 0 R/Type/Annot/A 17662 0 R/Subtype/Link/Rect[154.800003 549.190979 331.029999 561.221008]/Border[0 0 0]/H/N>> endobj 17616 0 obj <>/P 346 0 R/Type/Annot/A 17660 0 R/Subtype/Link/Rect[154.800003 536.190979 343.649994 548.221008]/Border[0 0 0]/H/N>> endobj 17617 0 obj <>/P 346 0 R/Type/Annot/A 37523 0 R/Subtype/Link/Rect[154.800003 523.190979 404.799988 535.221008]/Border[0 0 0]/H/N>> endobj 17618 0 obj <>/P 346 0 R/Type/Annot/A 37516 0 R/Subtype/Link/Rect[154.800003 510.19101 282.959991 522.221008]/Border[0 0 0]/H/N>> endobj 17619 0 obj <>/P 346 0 R/Type/Annot/A 29259 0 R/Subtype/Link/Rect[129.600006 485.490997 487.459991 497.890991]/Border[0 0 0]/H/N>> endobj 17620 0 obj <>/P 346 0 R/Type/Annot/A 37503 0 R/Subtype/Link/Rect[154.800003 467.290985 292.130005 479.321014]/Border[0 0 0]/H/N>> endobj 17621 0 obj <>/P 346 0 R/Type/Annot/A 29161 0 R/Subtype/Link/Rect[154.800003 454.290985 281.399994 466.321014]/Border[0 0 0]/H/N>> endobj 17622 0 obj <>/P 346 0 R/Type/Annot/A 17652 0 R/Subtype/Link/Rect[154.800003 441.290985 399.240997 453.321014]/Border[0 0 0]/H/N>> endobj 17623 0 obj <>/P 346 0 R/Type/Annot/A 29082 0 R/Subtype/Link/Rect[154.800003 428.290985 331.790985 440.321014]/Border[0 0 0]/H/N>> endobj 17624 0 obj <>/P 346 0 R/Type/Annot/A 17670 0 R/Subtype/Link/Rect[154.800995 415.290985 301.579987 427.321014]/Border[0 0 0]/H/N>> endobj 17625 0 obj <>/P 346 0 R/Type/Annot/A 17667 0 R/Subtype/Link/Rect[154.800003 402.290985 352.160004 414.321014]/Border[0 0 0]/H/N>> endobj 17626 0 obj <>/P 346 0 R/Type/Annot/A 17665 0 R/Subtype/Link/Rect[154.800003 389.290985 328.821014 401.321014]/Border[0 0 0]/H/N>> endobj 17627 0 obj <>/P 346 0 R/Type/Annot/A 17663 0 R/Subtype/Link/Rect[154.800003 376.290985 282.960999 388.321014]/Border[0 0 0]/H/N>> endobj 17628 0 obj <>/P 346 0 R/Type/Annot/A 17661 0 R/Subtype/Link/Rect[129.600998 351.591003 487.460999 363.990997]/Border[0 0 0]/H/N>> endobj 17629 0 obj <>/P 346 0 R/Type/Annot/A 17659 0 R/Subtype/Link/Rect[154.800003 333.390991 292.131012 345.42099]/Border[0 0 0]/H/N>> endobj 17630 0 obj <>/P 346 0 R/Type/Annot/A 17658 0 R/Subtype/Link/Rect[154.800003 320.390991 271.290985 332.420013]/Border[0 0 0]/H/N>> endobj 17631 0 obj <>/P 346 0 R/Type/Annot/A 17657 0 R/Subtype/Link/Rect[154.800995 307.390991 293.431 319.420013]/Border[0 0 0]/H/N>> endobj 17632 0 obj <>/P 346 0 R/Type/Annot/A 17656 0 R/Subtype/Link/Rect[154.800003 294.390991 355.321014 306.420013]/Border[0 0 0]/H/N>> endobj 17633 0 obj <>/P 346 0 R/Type/Annot/A 17655 0 R/Subtype/Link/Rect[154.800003 281.390991 376.651001 293.420013]/Border[0 0 0]/H/N>> endobj 17634 0 obj <>/P 346 0 R/Type/Annot/A 17654 0 R/Subtype/Link/Rect[154.800003 268.390991 296.559998 280.420013]/Border[0 0 0]/H/N>> endobj 17635 0 obj <>/P 346 0 R/Type/Annot/A 17653 0 R/Subtype/Link/Rect[154.800003 255.391006 331.230011 267.420013]/Border[0 0 0]/H/N>> endobj 17636 0 obj <>/P 346 0 R/Type/Annot/A 17651 0 R/Subtype/Link/Rect[154.800003 242.389999 301.019989 254.419998]/Border[0 0 0]/H/N>> endobj 17637 0 obj <>/P 346 0 R/Type/Annot/A 17650 0 R/Subtype/Link/Rect[154.800003 229.389999 296.570007 241.419998]/Border[0 0 0]/H/N>> endobj 17638 0 obj <>/P 346 0 R/Type/Annot/A 17649 0 R/Subtype/Link/Rect[154.800003 216.389999 282.960999 228.419998]/Border[0 0 0]/H/N>> endobj 17639 0 obj <>/P 346 0 R/Type/Annot/A 17648 0 R/Subtype/Link/Rect[129.600006 191.690002 487.460999 204.089996]/Border[0 0 0]/H/N>> endobj 17640 0 obj <>/P 346 0 R/Type/Annot/A 17647 0 R/Subtype/Link/Rect[154.800995 173.490005 292.131012 185.520004]/Border[0 0 0]/H/N>> endobj 17641 0 obj <>/P 346 0 R/Type/Annot/A 17646 0 R/Subtype/Link/Rect[154.800995 160.490005 378.679993 172.520004]/Border[0 0 0]/H/N>> endobj 17642 0 obj <>/P 346 0 R/Type/Annot/A 17645 0 R/Subtype/Link/Rect[154.800003 147.490005 388.990997 159.520004]/Border[0 0 0]/H/N>> endobj 17643 0 obj <>/P 346 0 R/Type/Annot/A 17644 0 R/Subtype/Link/Rect[154.800003 134.490005 313.950012 146.520004]/Border[0 0 0]/H/N>> endobj 17644 0 obj <> endobj 17645 0 obj <> endobj 17646 0 obj <> endobj 17647 0 obj <> endobj 17648 0 obj <> endobj 17649 0 obj <> endobj 17650 0 obj <> endobj 17651 0 obj <> endobj 17652 0 obj <> endobj 17653 0 obj <> endobj 17654 0 obj <> endobj 17655 0 obj <> endobj 17656 0 obj <> endobj 17657 0 obj <> endobj 17658 0 obj <> endobj 17659 0 obj <> endobj 17660 0 obj <> endobj 17661 0 obj <> endobj 17662 0 obj <> endobj 17663 0 obj <> endobj 17664 0 obj <> endobj 17665 0 obj <> endobj 17666 0 obj <> endobj 17667 0 obj <> endobj 17668 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17669 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17670 0 obj <> endobj 17671 0 obj <> endobj 17672 0 obj <> stream q /X1 Do Q q endstream endobj 17673 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17674 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17675 0 obj <> stream HWێ6}WkDR /1}F͞KGRd[ERj5Y1n,)I~[5 uup 6۲?E>(`8, 8m,~ӴƸ}@Ly1? CT7_9KWU݄Bݡ%ԧPy3B}>'P{ B}/gaZkNŐw1`u1d] YzZCs-'\b"{k] Xk] Yzϵp!P﹖u1`u1d=rµ.,BZNŀEŐE\ ׺k9ZkAŐw1`u1d] YzZCs \b"{k] Xk] Yzϵp!PVu1`u1d= µ.,BZAŀEŐE\+׺kZkp!Wb"\bջ|.,µ.,Bڄp!P6!\b"\b"{M׺kµ.,µ.,Bڄp!P6!\b"\b"{M׺kµ.p!Wb"\bջ|ETEoլ6nE>`Qin`Meٟf@d=(Ĥx աyG,/77u{lT o$|SF-bqE"лy_ur9cS? `Ph2ڗf/wO8(Dj{=&ϋVYN`ug7,({Q9s4NV,mkS;۝zQ3[5Xa-}Dj" iiJUʣL}Vay8 L XnQ'JCy |!LP>Y\J*g<8xSO]ہ{}:M} B֯G[Yzޡ&+ [lt1O$\VQ/W Ί8JęVUwpܡw6 : 0RhoƮ/Cf!6ͧ.T+{s\E?<X' GByvɚ~tYS1:f~aBuXX*9*xꃽۭ˧% f말>%MA=S񠔅jvο1»[.B/5 H0̛W{/I]$ rX%vz<3.󍾦z)j>ӎ9jLni`r»BWq G>~ErNp\A/]iwVj R&fVj^Ƚ$ABtl{<`=>>D8 in $p/ Ձ g{}5AI **DLjmO2׳BA`"> àpYz,|M7P-N9YIӟ戎_;}O!ͷ7kHF$<^nuB2RRnu9`hM0)c<+ZIS'EMEA=~\eDLeV EUS9mΉS%e\XGʸ;nsZ ލDPbg"iJĨ.ueo7w[O).[9D>UG`;JJ N(HbSDс4 J񠅮/LǤzL`AwK{,_J[ֈ;{+H WnE=B-P:!{n`X=6.6K٤{J@wf j~T+9S%2^}"*KK=j xy^Gȷ g(zI$Y*%}c͛50iNYT2 ~'yzp8;\k2GZ-'_M_endstream endobj 17676 0 obj <>/P 708 0 R/Type/Annot/A 17677 0 R/Subtype/Link/Rect[93.6000977 327.628998 261.420013 347.30899]/Border[0 0 0]/H/N>> endobj 17677 0 obj <> endobj 17678 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17679 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17680 0 obj <> stream q /X1 Do Q q endstream endobj 17681 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17682 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17683 0 obj <> stream HWmoF_2Ț7̡(I^@[k%V]Z9ڕfí !!g:^Co//*LR:7NmJ#~7YD~jλoзood~-ӅExy8}!fn+/YdaC@rw [ĿZdU)F{fg\T~~o̫U3o M  FT*Q PB(bCaP)yjd˄d˄bثbثbثf넽f넽a؛a؛a؛}Ͱ5þN[M[M[M;K;K{O{}Y֙dTKmJSRRԆ=Q-!aV26D1JF(FԆ(}ZɨŰOT+RRj%ZjC>QdTKmbTKmb'j Q DQ-3Ũ6@16D Q){jZjC>QbTKmb'Uj Pj Q DQ-!aV16@16D1*FԆ(}ZŨŨŰOTRjZj[gQ-!*eOmbTKmJSR(FԆ(}ZͨŰOTRRj5ZjC>QfTKmbTKmb'Ռj Q DQ-Q-!aV36D1jFԶ ZjCTʞŨ6D}y?Wl.2]& ѥu[!LR8nlt4f*v'iPLA$J*1yH6sz % 'U)p9 kǖ>.m6CRu'kW<[$e]*+ #oֽS?=6)8zJStM^>u})/ nٰ%hi w˾MjKuYw+($+0V B;WUq}usk`.s 푛dBL߷l~WiA i!SS3vhȤH쯙ڻ@F+W mrT_( DBNi<]~ië'{ҊiYD|S|(,1-Lq!^z >f|%J7>AakMJd ~ltt 챺夘s/׭g$ V^΂g 7JD>BVަt`gpݴ 9lW> ]2U7BC3e񆵊TS/ooAv>)!2vXphQU= iG媿m<+\ {@A5f8ߥ"uQaxn2GX o}k&6JB2V @uYYʋ¤nU +$@wlᎴF@ dgAH2:/Ա4ୋrͦalTVǎūA[`!}[, ^MDjLX˩LwJIzϋ_lHƔc/*AQC*zr}C;\w'3 R =D>С*a?-9HxlVmX m+ ma&1b|ozE;44S R?WJ ]8: }ceԆ l<+fWp%#\ퟙ\r$f(ATb!==`?"hLtЫEyS_!o\endstream endobj 17684 0 obj <>/P 307 0 R/Type/Annot/A 29206 0 R/Subtype/Link/Rect[154.800003 665.190979 298.230011 677.221008]/Border[0 0 0]/H/N>> endobj 17685 0 obj <>/P 307 0 R/Type/Annot/A 17728 0 R/Subtype/Link/Rect[154.800003 652.190979 267.660004 664.221008]/Border[0 0 0]/H/N>> endobj 17686 0 obj <>/P 307 0 R/Type/Annot/A 29137 0 R/Subtype/Link/Rect[154.800003 639.190979 278.230011 651.221008]/Border[0 0 0]/H/N>> endobj 17687 0 obj <>/P 307 0 R/Type/Annot/A 29084 0 R/Subtype/Link/Rect[154.800003 626.190979 350.661011 638.221008]/Border[0 0 0]/H/N>> endobj 17688 0 obj <>/P 307 0 R/Type/Annot/A 29058 0 R/Subtype/Link/Rect[154.800003 613.190979 353.359985 625.221008]/Border[0 0 0]/H/N>> endobj 17689 0 obj <>/P 307 0 R/Type/Annot/A 17727 0 R/Subtype/Link/Rect[154.798996 600.190979 348.920013 612.221008]/Border[0 0 0]/H/N>> endobj 17690 0 obj <>/P 307 0 R/Type/Annot/A 28504 0 R/Subtype/Link/Rect[154.798996 587.190979 404.130005 599.221008]/Border[0 0 0]/H/N>> endobj 17691 0 obj <>/P 307 0 R/Type/Annot/A 28462 0 R/Subtype/Link/Rect[154.798996 574.190979 321.029999 586.221008]/Border[0 0 0]/H/N>> endobj 17692 0 obj <>/P 307 0 R/Type/Annot/A 28421 0 R/Subtype/Link/Rect[154.798996 561.190979 296.570007 573.221008]/Border[0 0 0]/H/N>> endobj 17693 0 obj <>/P 307 0 R/Type/Annot/A 28380 0 R/Subtype/Link/Rect[154.798996 548.190979 314.089996 560.221008]/Border[0 0 0]/H/N>> endobj 17694 0 obj <>/P 307 0 R/Type/Annot/A 28347 0 R/Subtype/Link/Rect[154.800003 535.190979 332.700012 547.221008]/Border[0 0 0]/H/N>> endobj 17695 0 obj <>/P 307 0 R/Type/Annot/A 27606 0 R/Subtype/Link/Rect[154.800003 522.190979 352.029999 534.221008]/Border[0 0 0]/H/N>> endobj 17696 0 obj <>/P 307 0 R/Type/Annot/A 17726 0 R/Subtype/Link/Rect[154.800003 509.19101 282.960999 521.221008]/Border[0 0 0]/H/N>> endobj 17697 0 obj <>/P 307 0 R/Type/Annot/A 17725 0 R/Subtype/Link/Rect[129.600006 484.490997 487.459991 496.890991]/Border[0 0 0]/H/N>> endobj 17698 0 obj <>/P 307 0 R/Type/Annot/A 26936 0 R/Subtype/Link/Rect[154.800003 466.290985 292.130005 478.321014]/Border[0 0 0]/H/N>> endobj 17699 0 obj <>/P 307 0 R/Type/Annot/A 17724 0 R/Subtype/Link/Rect[154.800003 453.290985 326.321014 465.321014]/Border[0 0 0]/H/N>> endobj 17700 0 obj <>/P 307 0 R/Type/Annot/A 26482 0 R/Subtype/Link/Rect[154.800003 440.290985 289.901001 452.321014]/Border[0 0 0]/H/N>> endobj 17701 0 obj <>/P 307 0 R/Type/Annot/A 26459 0 R/Subtype/Link/Rect[154.800003 427.290985 322.5 439.321014]/Border[0 0 0]/H/N>> endobj 17702 0 obj <>/P 307 0 R/Type/Annot/A 25915 0 R/Subtype/Link/Rect[154.800003 414.290985 336.740997 426.321014]/Border[0 0 0]/H/N>> endobj 17703 0 obj <>/P 307 0 R/Type/Annot/A 25873 0 R/Subtype/Link/Rect[154.800003 401.290985 332.92099 413.321014]/Border[0 0 0]/H/N>> endobj 17704 0 obj <>/P 307 0 R/Type/Annot/A 17723 0 R/Subtype/Link/Rect[154.800003 388.290985 425.881012 400.321014]/Border[0 0 0]/H/N>> endobj 17705 0 obj <>/P 307 0 R/Type/Annot/A 17722 0 R/Subtype/Link/Rect[154.800003 375.290985 358.619995 387.321014]/Border[0 0 0]/H/N>> endobj 17706 0 obj <>/P 307 0 R/Type/Annot/A 24991 0 R/Subtype/Link/Rect[154.800003 362.290985 302.190002 374.321014]/Border[0 0 0]/H/N>> endobj 17707 0 obj <>/P 307 0 R/Type/Annot/A 24922 0 R/Subtype/Link/Rect[154.800003 349.290985 310.070007 361.320007]/Border[0 0 0]/H/N>> endobj 17708 0 obj <>/P 307 0 R/Type/Annot/A 37667 0 R/Subtype/Link/Rect[154.800003 336.290985 321.029999 348.320007]/Border[0 0 0]/H/N>> endobj 17709 0 obj <>/P 307 0 R/Type/Annot/A 24261 0 R/Subtype/Link/Rect[154.800003 323.290985 404.561005 335.320007]/Border[0 0 0]/H/N>> endobj 17710 0 obj <>/P 307 0 R/Type/Annot/A 24224 0 R/Subtype/Link/Rect[154.800003 310.290985 282.960999 322.320007]/Border[0 0 0]/H/N>> endobj 17711 0 obj <>/P 307 0 R/Type/Annot/A 23392 0 R/Subtype/Link/Rect[129.600998 285.591003 487.460999 297.98999]/Border[0 0 0]/H/N>> endobj 17712 0 obj <>/P 307 0 R/Type/Annot/A 37655 0 R/Subtype/Link/Rect[154.800995 267.390991 292.131012 279.420013]/Border[0 0 0]/H/N>> endobj 17713 0 obj <>/P 307 0 R/Type/Annot/A 22636 0 R/Subtype/Link/Rect[154.800995 254.391006 344.510986 266.420013]/Border[0 0 0]/H/N>> endobj 17714 0 obj <>/P 307 0 R/Type/Annot/A 22589 0 R/Subtype/Link/Rect[154.800995 241.389999 402.520996 253.419998]/Border[0 0 0]/H/N>> endobj 17715 0 obj <>/P 307 0 R/Type/Annot/A 22028 0 R/Subtype/Link/Rect[154.800995 228.389999 332.700012 240.419998]/Border[0 0 0]/H/N>> endobj 17716 0 obj <>/P 307 0 R/Type/Annot/A 21970 0 R/Subtype/Link/Rect[154.800995 215.389999 352.98999 227.419998]/Border[0 0 0]/H/N>> endobj 17717 0 obj <>/P 307 0 R/Type/Annot/A 21426 0 R/Subtype/Link/Rect[154.800003 202.389999 369.251007 214.419998]/Border[0 0 0]/H/N>> endobj 17718 0 obj <>/P 307 0 R/Type/Annot/A 37641 0 R/Subtype/Link/Rect[154.800003 189.389999 369.25 201.419998]/Border[0 0 0]/H/N>> endobj 17719 0 obj <>/P 307 0 R/Type/Annot/A 37639 0 R/Subtype/Link/Rect[154.800003 176.389999 282.960999 188.419998]/Border[0 0 0]/H/N>> endobj 17720 0 obj <>/P 307 0 R/Type/Annot/A 20554 0 R/Subtype/Link/Rect[129.600006 151.690002 487.460999 164.089996]/Border[0 0 0]/H/N>> endobj 17721 0 obj <>/P 307 0 R/Type/Annot/A 20535 0 R/Subtype/Link/Rect[154.800003 133.490005 292.131012 145.520004]/Border[0 0 0]/H/N>> endobj 17722 0 obj <> endobj 17723 0 obj <> endobj 17724 0 obj <> endobj 17725 0 obj <> endobj 17726 0 obj <> endobj 17727 0 obj <> endobj 17728 0 obj <> endobj 17729 0 obj <> endobj 17730 0 obj <> endobj 17731 0 obj <> stream q /X1 Do Q q endstream endobj 17732 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17733 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17734 0 obj <> stream HWkoF_144q"A]`*lRtҢ{I.D3gfΡ9XzëU^xU[]SiązYF1Jry$Q^yTyRr]ϮªZMtgHz?2)_B9$NURhLl}1k^ 8.\Vh ;]Edqβߔ`Bs)ll~DUm6,2)s|lȧ9N,#Q Y|:Kk"REkS XFpo{#7̽[ -sow{;cS}ܧO)s 3>g}.ϙ\p3>g }{{=JK]dR Y=ŀ%b),bZK1d YkZ!KpZkR XBk),=kZK1d YkZKh-Ő%g5Bk),=kZK1` Fh-Ő%g5Bk)Z!R Y=ŐS XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` Vh-Ő%gBk),C Vh-vZK1dqZ!{Kh-Ő%guBk),=kZK1` Nh-Ő%guBk),C Nh-ŀ%bܳ:C .JR Y=ŀ%b),{su^EYjU@Pp$EMӪL=?s^z&.T8C݇N]v _ϵIŷoCWf]mVaS] j6Z}{1Xڮ}oڀŬ}؆U햿ogLO]s,Ne667?ٓAYm'3a Y_=՛r1V.ԛN?x2lr :U/jBݩ6vn m٩!mkxU]!0kN; Yaag}h'> Vw˽L5=a {x9sch}b'Ƞ ]6B&ݟ;ݕM51ypsp8359,p\N[kpe 7&Mnd1Yߔ׺'R5db bG1dyŴ嘖JiVʴ2A+cZ1\ʙV.hL UZgZ^T$\bZ4҂fZF2LZ,F=Ő%h!CroS Y˽rO1d Z,F=Ő%h!CroS Y˽rO1dq-K=Ő%h[!CroS Y˽rO1d Z,V=Ő%h[!CroS Y˽rO1d Z,V=Ő%h;!CעS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1d Z,N=Ő%h;!CrS Y}*bZ{!k{wWxcYFJr= .[pKnx0CyX3Wޅ^)&i Msi>=nMgW]~_շLÚMa'aVJp1Muw^ϵlj/vp:UmB x3>'Y ]'c,\|2,臋 ӹ8.2;[thXvay7~uv~štP?5UݍW$?UC@ʑu1 eUC;@f|:9H_>0#yo-@RuwÀ8 +>=ɂ$&'KXu^BN׳/ZWFղVյbvrӅQJTP|])ԏn jR@N} l|\a3kG5Ɲm;BBw4iJS @꿟C\)Tǵ.m[,BE^6 V=Lendstream endobj 17735 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17736 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17737 0 obj <> endobj 17738 0 obj <> endobj 17739 0 obj <> endobj 17740 0 obj <> endobj 17741 0 obj <> stream q /X1 Do Q q endstream endobj 17742 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17743 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17744 0 obj <> stream HWko8_A`؋T_8[>.:]4MQ(6cKKJ~/EIțtP4"#{<~k/^~QSE/D g,P!@}9>+D +D}YC\c1`!1 a} Xk}̰kZ3,D}Zǀ Q!1Bek} Xk}̰kZ3,D}Zǀ Q!1Bek}qĵ>fXzZ3PVǀ Q#1Bk} Xk}̰k9Z3,D}Zǀ Q#1Bk} Xk}̰k9Z3,D}Z@\c1`!1 a} Xk}̰kZ3,D}Zǀ QV 1Bk} Xk}̰kZ3,D}Zǀ QV 1Bk}Iĵ>fXzZ3PV^J)A4ׇ*\d/qJT!Z$wC>20rWL H1ojݖueo|8`|Y4Y>SMwʪէm?}LL#onuv%z;׫;w3R_Wk",s [<nav"n*X±?j6vN(.άqv貞NN6= XJY*j̑8KٙeIɐ FpVzc?mχr}7 uSp&ak9t|f{G{,8KLVML2q2`g{$IG4#~~&ݱ_RA>ԧC9U8E6žC3}Xlj8Cm=(uzXlΣOjch/vݠNWu$yg [%ǭ*jOhA DuWxtFQ)l7&hM ڿGNMa@Vi7bwunvê#X=cY/7D i<4I~3Ⱦ,nTo>U[?$*4f/H1$T 5eP1\jĂprf}*oG q/qиc1=jf1SMҿu Q2e? {P̙MmWI96p+YK!f+ׇ#8ܗa)-*}chys'_?d, DuysqjK@O&9N0,~ALXfiwsWw`6p0jʣ"/_R(䴦x^a9TMh;OtęȔBܼbVŴʩ1*qkoC5J4n`\w}x{Cr@yeI-Gc~Y^ S`?O4XJp&ܤmL–iو\ ԙX(-Nu&nLebR8ۼ|1tgL'dEC64D ёtғ!)D< yHY1/vNBk[lVc{e5\HjmFN)é'nQY画`Sޖn1c"7ɥ9Dښ0ي?f}c%y0|?g`Hbs蟛# J-R.9䁀akh/ vW*/iW3|m3@jq /@ %*L:BfIYT-lǒϹ|dIUl+sPVR(wXP<__vCt^h Ku8x^s-JG$LkT;R`ZFqD8dWnDCj(|ޙ\xXKфV[d|Zj񣓝?!Q*2hlUYkf9"T)dEO\":O.`CqjhYH9{V`3>uk#-1fZvMF1!v_sCEX~tso/IoCwxO0L%-6ZCfWtCR4~?@h$FL41B$kj%QЁt3v!޸T!ButFϊZh$YEEϺ滫42oh>\fZii4Z"z9?l8?&#;WB\N2p<[]X[͞ywrùktT7Yi],O[^%h*dBZcXM*diT Q* zgѽgJU#gUɊ|fr8Jʯ3a"lcvj%jZ 8+=l7(b(5S2jsH»Coun?XHAH(gc%SlKNjmw ԥx7i 5SΧ&-_ppv%qו|%Z1[calq c|YƃzLwqfLX |~?. >džfl(33nvw 2Xiӯݥs?5R>z!;ƛC9u>p9p^W/p%rTMg+Ľ@FIۯ҇70}P`lRF(=Q ͛uGD}g'Rfm4Ml8jiĴ 4h_Ux[P*-'YgM de".Xz6C&՚m 87f_4(A@h?wG"kMS ߇ e,rƷz<󡧀qcC/qB+Ch.,Ҵ]Ltůf@R\_(ܺ^ MAQTWm{()7/Js9 궬#wS@i14mGP41o".vS>ztM u|DYqԯ^ ~2RX-ΤuW8Ɛp:ުns զ.hJaT2>"DYU(0/JK%\fWܦ ZoҚO `MVD V_c7M>?~G)endstream endobj 17745 0 obj <>/P 860 0 R/Type/Annot/A 20127 0 R/Subtype/Link/Rect[93.6001968 663.229004 230.136002 682.908997]/Border[0 0 0]/H/N>> endobj 17746 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17747 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17748 0 obj <> endobj 17749 0 obj <> endobj 17750 0 obj <> stream q /X1 Do Q q endstream endobj 17751 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17752 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17753 0 obj <> stream H|Wn8}WHit"Фii Pkѱ YJ-ywhɶL"||pftHyUCNOWo #ggo/_Wk ETX$4deI0p`&\TEʗY3ʃ up>c~'y …1#F/oGSfo2x-$<|܄Fm(bC҆F*Qy=3E1-MBQ^ pfUf:ѱh5hECDVr<a{2$|0̬6ɧỼ0nt-]j"Հa.,Lwc~7ۯf:3M"B U|z8}\eTg1nQ~y<,]5YH^Bs,bAA0jG MN{HfSӉ6DwYUʹlj2 lAu/sH.ݧϗ^EtX:LEhdOTɼZ6.gMUP-z łT8n\vPiL6Uw7^lUQTOy}nY}ܜZS^:idyEgNz{<*D,P?^Zaoh'm0-R%>64Z?溿u<ःevB‰YJnd=-};Qvs }r*}ZL#Pv7xЭ %^ض1T|p3o{ʛ1HAl{W'Ψ{q/HĔE>ɴ+q3(R͉u;\HVjo}ɵgx(ds~G;#*S TH<̲4<-h)O+B"O+B"O+FbO+FbO+AO+AO+ERO+EROK#Z҈vceZ.,hqO#Z^ w1B< .fY{, |/߻e!Z{,D@|bhy]̲-YbB|bhy]̲-Y^"w1BcGY֫݌Dv09`V=NHStCZ0ߚ͐ҍnFv~¦KM!"Ii]|^ffN~㔲yi^`&ۛ뗋K"KD&7H $|zj4 ^1xdTLw0tAv8sxLNmm&1cH ])js|Y;aԠ^9B_7|ۆ y~45] ^˸mC]-Mg>/P 1593 0 R/Type/Annot/A 18440 0 R/Subtype/Link/Rect[129.600006 539.504028 468.30899 673.919983]/Border[0 0 0]/H/N>> endobj 17755 0 obj <>/P 1593 0 R/Type/Annot/A 18421 0 R/Subtype/Link/Rect[93.5999985 409.428009 225.634995 429.108002]/Border[0 0 0]/H/N>> endobj 17756 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17757 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17758 0 obj <> endobj 17759 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17760 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17761 0 obj <> endobj 17762 0 obj <> stream q /X1 Do Q q endstream endobj 17763 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17764 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17765 0 obj <> stream HWێ6}We^u&@`>8heR{*TŲ'IgN/ñ.N\x;n[F %E HъrZ6b{,6Tw?fIiJR-另}MM݋iFnd٪ e޼wS8%K׶KFim!ArswrPR'IM{Q*Dh8QNsZQd$!+bR*g YaQJ),ͨיzͨיzè7zè7zè7z˨z˨zǨwzǨwzǨwQ_e+F}ufיQ_gF}oMeԷQyV1رЌk)\=ŀŸbS Yzq-ŐŨ\R Y̵q-ŀŸbbgՌk),F}Z͸bb\K1d13jƵC>sf\K1`1k5Z!QV3ر0k)\=ŀŸbS Yzq-ŐŨ\kR Y̵q-ŀŸbbg5k),F}Zøbb\K1d13ƵC>sa\K1`1k Z!Q0رk)\=ŀŸbS Yzq-ŐŨ\kR Y̵q-ŀŸbbgk),F}Z˸bb\K1d13ZƵC>se\K1`1k-Z!Q2رpk)\=ŀŸbS YJ+*ZaZqn˶Lݱv[nPbP43t Y-+bsm!K5r(-UTVk"ZLSV@R呔,ey$a!>_ K duوJR=\O;w(SVV@IJM 5˵-)PDRV54D}DR(E$a5Ue,I$aUUe$,RIYHʢ֊H²ZIYZIYZIXZ+")RIYH5Ue$,RIYԵIYԵIX2sd\+3JƵ2s]k[ڈ,ڈ,ڈFja[#Fmgake(p/k>=qjj%X+ay*$!~"h$WԀ9o/%_8Zam LRR"0sjs6g̼oELFŒ&P709b95^zuwz*\݉沥l^dj^opz+:qSͦ]/ϗzwmUt^-Ѣ׌s_wCO$JkQzqq~{Ne.,AƁ`ZX<-]-i7Z%VM;t~ Hw:Oavp>QqOa!ކF[]%C/!s+G?MB5 S<~ˇyemI=T)͔E5mp)lF ?S^ݻڅLtURL5 |m8FfJFe4n-KX=T6)=OcƗ^ݾM (8mD%}>x;!KSÜW!v | X.6G0tɍV$y_*fG;i* U-|˻z?bwρ@^.؟&TC/MsUI+.zz[]w /SCſ( 4w^{ՐUhݒѿ^Opߨ1˪fwO(p?^@&%ԣ>k?N=܏YӶulc@0& O8zx!8?0'O,z]$R| ?tZFуz) #ص.WQOZ5v{uV}?qaq|c7^k1FǘlR< O8?,޲nP5Hg qR/uҦޜO*`jz*zᣝZnk+"_~iZjE>rKneZ?WÁW4|C׫ )Sv^b$ı;7?vGo˺R?ʜ .G*paL/pyg.v! CP xZL.L.rL.rL.?eӒ@F὿RgEѢh"pQ#Jcuiggq@pU䪄"W-\5jWCFrՒ]>gnF DU\^q3J (7{܌.>q3J (7{܌bnfpQQtQEG=nF uE%\}fpQQtQEG=nF uE%\}fpQ7؅[D.ڸc~9' 7 =!/j%t.S޶]6?t?~NWF6G>K!x_vo*m>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17767 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17768 0 obj <> endobj 17769 0 obj <> endobj 17770 0 obj <> stream q /X1 Do Q q endstream endobj 17771 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17772 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17773 0 obj <> stream HWnH|WÀ4$0qf3$Z Y%xhz`HES1X 2v**iӚgN~;K_ۮr]rfet;g>D/^:cxU4Ij*S)ҌQ\hyG{Zdf<3ۺ,_^2;ˎrO6cU3m>_?8O}^us?ĥ;ݐlMsę;cSYL^y2NKbwQIN9+Ę,1+,Zm^brSp{{^Wp>3>3>3>s>s KK+Ug-(֑{ Vb%,^b{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb{ZZ+1fVbȃJYڽĈZ+1ficv/1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+u@k%,^b{1K@k%,^6JYjm@k%,^6JYjm@k%,^6JYjm@k%,^6JYjm:@k%,^b{1 7w.*Sd U @+(ʀV2)hJ+Z*V U(hJZҪV*UI-j-1KkI/k@*- r@)-TȽ!KiKY@KށKp ȽĘTȽ!KiKY@KށKpuT=ȽT=Ƚ"T=Ƚ"T=ȽT=ȽT=ȽT=ȽT=ȽZT=ȽZ$,%10-r/10-r/1 -r/1 -r/1>-r/1>-r/1>-r/1>-r/1>-r/1>k-1KkI@K>IޯubX3^D՞`&Ϫc".2kF.i|$2)dGdYp˪όצsξSmM]57[|x;hYN$=LSa@_f0\G3Wu[`? N&M,?nǗ jepz 4ۛ[8mP/Ĩw]!Zn)B-h*rU?^.g[qS)eM6Lۢgi/ˎ==x%E?>9>TS f7fZtLz}~Od2H$M[<`tcAO Y<(k= UgbW.P&̜'? HĘi l/zj9z'xv|:4RLy17_*+Mc6QZi-"6OGv],o;+[lo8;HˢsX@;+6}]ۍ?n2b7H-sOA^Rio>:G<}|oƪ[~& vqYk>݈'է\ 1;jAb̪KiVZAie@+SZʔVr\i@PZ*V JURiU@RZЪKĘ$F, Ҳ@*-r@KށKY@KށKY@KށKY@KށKY@KށKY@KށKY@KށKY@KރKYZKbʽʽʽʽʽʽʽʽ}Ĉr/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f- ^bZ#ȽĘ?~qt2X3^Dvw7cw%]R醲;_5#Ļt[vW4I+˞F4|)I|i/# +J#pC4Z:@OT [P/W}*2 |Pl|%`mK<-:9-;$C%vV"gKW[mhV'<6vL3]+j̾ol sud`R#N\upfҊaΥ [BPfOj-9')EoKyNݒDG̊#>6D"5"jgM =:o hLxW V:p^$cf Nb e4;6߁6R eA ӡK ЕR&<@we˺A}A7G{?X@  RXOafnZQ!TWR׉X>R=edIRt y&F ,+\xxh-=T骪sB}X௏RwOc Z~(PX)+8-j{+rjulʚ*~8B 'nYQ-9-׃<8mv ?[e.EQdEbŲ[.j90_eLߵ+S(SAc2ZGn#i Ӹ]2GpQc5:p6wB:Eu~ʹ@/wfvR!ުNH[ *魙V" d 㠠p~VzK8 7}^](EG <ᤇ ثH9 Ŕ+ ,"/Lx] GW1D5{+A7:/UwCg;_/ԙΞ ZRAhu-2D%,C { ,z$.DˑY"{'{r2v*?0rEinͿi0Fynl0@?|!y*CN96M @"dhZct;b_i'#kc[P3^1w^+psH<^O!9;N{Nb>G$Oд r8@R2uuw_ßOrendstream endobj 17774 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17775 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17776 0 obj <> stream q /X1 Do Q q endstream endobj 17777 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17778 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17779 0 obj <> stream H[oH+z$N}#H`xM, Vf$CɓYo)RU9G?V0v?;|RWDZBtfU9jW$IU2T-|\ڶLu2z٪MLFʨrD$UQEP*˯ی .m޶7c`=65|jC:8_VwM=u3*/ynBB:E=.VLWFR5WIt ~ sDcRLTCߎj2 (1jeV ;1z';Fz@}}`A>3F }s>g@_0B/}#=ˬBKUbR ]jRK5tqzS \Bj. zZ+jRK5t ,VH-%гZ!TZKgBj. R ]=KRK5t ,VH-VRK5tqzKH-驆.NO5p zZ'jYjZKH-%г:!TC@RR \Bj. zZ'jRK5t ,NH-%г:!T[%^H-.!TC8=%jYjZKgBj.!TC@RR ]=KRK5p zZ/jYjZKH-%гz!TC@RRm!TCR ]jQJ_ge(E{26Ley*W`5u= W ':2mU nj44ëͽ՚쭃܌թZ-|>:xm=ƺB]Q:ٗi˺/u@^`S4dˏ ٙ'ҥB ZU^o N u{2 r8@vj/^`{9p"v9n?Wgjn _–.יaOK7/gm3W\rS]Ŏp4FO`Ŭ-כvAfc#}|R/+@\T[h !vQ}o,Ppm6A֚cӶ]VM#e^Yk ؓ&S>xm2r]v *~s1kolzO1guNAҎcѮW?"V$ x1=lF38߹Fb.ҭLD WE[ q7Pk] -j[Сd~8G]=$nk~}v!A#wJ~L M]gՂO0P2;uG4v2Ht7tt«h\QG8~z-N#qlcv}f3wfsOo/`7}w6X|8X=I'z-?P,p8ЫަC' Mak=Ƈ_TG3]J.VBǺc" 0xG0ͩftGܞz2kJ ?[WV(w*>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17781 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17782 0 obj <> endobj 17783 0 obj <> endobj 17784 0 obj <> endobj 17785 0 obj <> endobj 17786 0 obj <> endobj 17787 0 obj <> endobj 17788 0 obj <> stream q /X1 Do Q q endstream endobj 17789 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17790 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17791 0 obj <> stream HWn}WQfdnbd1A@x mkFTԥj'xD>$Oyaӗ~ϟ{‡𓜇)󳔇 bȦgon4ԕ?;v&/`L?rz,,o~[h NjJ:uԧQ3G}F>sQsG}A/lLZ1dm Xkm YzCƀEƐEw\kZZCq-#\kc";ekm Xkm Yzǵp!P︖1`1d2µ6,BZFZ1dm Xkm YzCƀEƐEw\ k9ZZCq-'\kc";km Xkm Yzǵp!P︖1`1drµ6,BZNZO1dm Xkm YzCƀEƐEw\+kZZCq \kc";km Xkm Yzǵp!PV1`1d µ6,BZAZ/!\kcr\6,W}E!mU}yő"L4-]=1oދ8 vOr7vm{yeXPii&ٔ<lL<8{\;ndYvX^Ԡ퇛w/l*CY[+hz#;iun&vw1?+GlЖT$zaXqorPèߧr-zh XNe堦" $L 6O#> 8E/AYBE5 U}M_տ&ۥ<0;{wV9…\ ʦIQnǝM0cb)5rH!BVd~^ MZS_wZ/|3AaSG~?u`sulf۹k'qL.-{$e`͉1„ h_X; .Q|9/rQpBs<]o,J¼iCOl8'!aJ% B(LX— ڷQqשt6}/GH83Ms\!6 }Ba5iNG2X2Ou Nh v=2|ĞT?K2'q;wŒGgw <'R_yjd}HUjM'Ll4zaGjf[3>. {*^eaf (Kyq6.2Rp8X'z0nyL롽YC g lVSVKWt% ߣaοh|<ɪƽ~8B/nj^-X x/S 75~(Q*h-ӔK9LI8^ryC'‚;b#$]vLk&AY8#fM󾩫fJ\M tafJ9]ڟUTׅ++#~7u@}tijW$3;\/* O)82 ʴޛƿ7?M{yjܓcݿ9]e &n0Iwxavfe8cvDw|9I0k\fSp]ٽmf.aOF:}x&"ތ>_/];D~fŖDZj\lG]Dvd |kd]?,ޕm撇0rp'3(6W+Hl٘oɿ>Qz3vR-HbUlx՛~Ynge{ݞ U| #(7Y6vv]1XuVL_9vamK6d@ȀR=\^];(TH?r6|ÃrtXӚSJ zXJ؜Nٹ߼T81K@$czB}˭c8ehݦ c,`P \oX6BeZԌ trL|M iIOȨ7#N^j){-N|f%ajSxrtV-(]K Ƌ¦ăܽNjhDתTzyk>"Ubd[XZ1٥g I;9lʠɖ|+16F%;ǎ#q'"9SNpiwP Pp}#U!хX1%->eK%juyNI I~Rʥ"lHN].5zU0Veʽm[g@ml׮ت Ny!"Py0D,}s_Ua55<|-h7%~^0`>SyAa8W,J׍W%=r g%f*)m\Ed-1Έ9y0{K}~^^de /ü-(i;HJDioE:K` [Rȧy!.G;F>cI*fJ-#cg @䢄J2b1L+/ۂ@9؅7Hä q ˩Ga>]buXCfTތ'W1_d;` O4ޘ0 lAV̷=5@_H?@eB`D>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17793 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17794 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17795 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17796 0 obj <> endobj 17797 0 obj <> stream q /X1 Do Q q endstream endobj 17798 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17799 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17800 0 obj <> stream Hmoﯘ(@je_&]Բlp# $C`ȕ._w+bQGϜ9;<Ҝ|ŋ޿1yĆFC`ʧ3eܙujIfnkZ'[sٮ۩YɻlurR+gHd&H*S/QQq!f]ځcm633>vy6zlHҧeݶYp[vyddK=лħ<)WI/RqVEa|Nb.(yI)ԈVSBc*n/5HTz;ރ^ W=HU>AA\A\A\/@B/@B/AR/AR/AR@J@J }T#Hfւ"q`jƔN/5J)^jLR# LԘ:0Rc WSJ(0Rc WSJ)^MS+5J)^MS+5@z5LԈS+5@z5LԘ:0R[$LԘFZ1K)^jDS ZVjLjj=ZVjLjj=Z1ҫ`jFZ1ҫ`jHփQ`jHփS ZVj$S:ԈS+5tz1K(0Rc WSJ)^MmS+5J)^MmS+5@z5LԈS+5@z5LԘ0R# LԘ0Rc WSJm`jƔN/5J)^jL11{/uԵ5Ic]L SYMH.FgYnȲѳiK!ɈfX޲Ivx=䗏O;6|:4a vyɜov6/cqsژ*_tcɧCy$kZ5房fӻO/~|TWY\]Wwf6/Mv:>m~VKyPfKrl]ޘl3^E-bZ=ܶє{nfGcrKs[zqxVK+1Cޒ;pRɆ??l~QOCL˴빗}=KcO_4 [7|Yx)@cv<_f:vmJM`Pn4ބP<-~6i+k.񠢁чݛVwܽa8N_?-oڬzwW%`=yM0̃IhI)g}8PsOjLE@) +(x+^*W U(xʫ^W*U)+J/i/1F^VyYe^Ny9z@RwRc x;{1TԘ^^jL/{z/5SKރK)%5@RRc x{{1T=Ԙ^^jL/{z/5SKރK)zARRcJ{I({1TԘ^^jL/z/5}SK>K)z@RRc x{1Ts{1FԘ^11o:93I] m{sn芒/ʋUtQUvm̦Y _UEtKCQكEI&ݮݫݹV׏nT{gMWƜ:f|?m1pʷ}Vf)}cX=Qcӭp3zm0j/tlo'|y!CݼnEԣ׫O߂ 9R&JҪ:rE ] q0s`ީH'hoj> v>2 N/A鮢Bc*JyW^Ay+W^9ʕW UByT^%*W*UJyEW^QzL{I)%5,/r/{z/5SKށK)z@RwRc x;{1TԘ^^jLi/z/5SKރK)zARRc x{{1T=Ԙ^^jL/{z/5}SKjDK)z@RRc x{1TԘ^^jL/z/5}SK>K)zK)%5@Ɣt }%޻%nn 'mUY6:Z5Yz{]NB{sW`5OU^V֬4R2_.;r 2O?A+.{0݂0311q=WC(!f2@Y/-Mӻ=p{Q W:LqJp5 ڤ,J>z˔YOצ=R8C]\?-YW#ْ:^f!^¶IB# ?OĊDif}I02Vބ/ӊ9¦>"&cwe$3Hb(Z;HrX%>( vx0endstream endobj 17801 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17802 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17803 0 obj <> endobj 17804 0 obj <> endobj 17805 0 obj <> stream q /X1 Do Q q endstream endobj 17806 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17807 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17808 0 obj <> stream HWn8}W 2 8A&7vH@imnO_x~(Rl'E>U_fooWlf]IvsȞ/(`ufa,b.{jVvegEVs+|v<\+ihUs8Xy$ I#P;k5΍!4磇/υ窃\Lp;D _w8fUE. D>̖3&ʬ16#J@ Qt PBȆ(CbBc$^&%^&^%^%^%5^'5^' $ $ $ }/E¾$ؗ `_&K}U¾"W {K {KO4+ƶ.jcR PjcR Q)(B QDPmlC>Q$TE6!`Vm"'jc6DJB QDPml؆(}ZI6!`Vm]6Dc6DcR Pjcj؆(}ZE6PmlC>Q"TEOT6@m"'Ujcj(B QDPmlC>Q"TۺLmJ6@mJ6Dc6DjB QDPml؆(}ZM6!`Vm"TEOT 6DjB Pjcj5؆(}ZM6u!Tm"TmJZ˞/(`uV9s3%/XQ-͡ag\4c?כf+UgpɹcǶy3_We:LQ8U\i9>;#Dbڎ`[ٜñsyɥOn&* _'tgޮvw/iuA:LՋg캽fݑqw_]]C~WWo0!]_\Eשݟ-?%rk9H>yjn~@>~ CNS6Mlm4>dG*pYt>{lbc*x. U%$|loN/\r\-%f c _,b.I\҇v3 VE7=wi4[7n==t82ISh[@Z&АV1brsDPB} v8AlZ®-r^]'~իY-ƸyiƸѮ G Ǿ#A8vO@oCŗ~SyFy,Zf jn٠bwv6(m9z5uw@y*b>V-oв$}a/3 .6F: h!vPp[3|׬} \oQq`3/7(]j';"~.}c G[H! @*W\M]]g|>~Sjk]η*hJbJYeir<9 ZcNP~q?%Cd;yޏuhKϏhZ%@8 p—}**o~Bk-n HGNZ6|O 3S~,t(p] 7Qdp+Lx>ASBTBBl!5T=CzWWp7Q(ܮ NGa<<5RLW8%$y+,čn` ,V8qH ylPP=QgOZ#=[ց61q3h% +hk))s9_Jv;w vftrXp <D aQ?31 d m2ԁTi0 #_- .!/ *qJv^2>%U[Wy3.i)}~;+s1F ޞ( (Ba c0KTP0țGa @` u$E(G)[.a<- ¹/ 2f#pک1l6$K@cE'ߞJmHrHInLWIJj/P$~(BҏIP?s/iRM\V߬!9%5 OI\C(jN9="p!|0i b.ELNç{RVE(p9~CЖ;oҩڿU?߹{o ;Y ' nDڏN/Ec!-r'OL ^<6H"Ȱ"6=£Txjm$9w}E)*q.0o3-QܕQ/vu&EiС(cJR1;F$#?#9Sevְp\ysCu 7 =As󴽐a APXbC kј/>E?mQ_>9=5=59N(̽PmUnNuZ;LAjUOHJ\}Z=/p*}yS:9M:w$;bpwqmkQ_I!0LKj0b.+Tk;ɚlz>Y VϣƲeU4ߥǦ;\ ©M3"$y_щT $p-"exlHXz5):b`Q`A`V`F tyX80|ExXdF]۪AۀrkoӤ\d()aEN8AFl-,[933s <'_,x ߙ<TeT}5rtO S2ӃaH[0yX\3r<`>ԫl:=5־"6LWx1!I\ڵ2 ckbSB]]?e^5b2zmpaTQqu/6(]yv Ea~+Nڞy0T(*Ay8*PTP*jEP1W)*XIXX)XV'#C)IQ\@CPZ&ҖGvD'9*RTm΃b() χy 0T0 8*J*EqePN*h'S(%E%վTc@GTK=d(=AiJHQF%}jg#*qNSs.Qp>PArRmeg#e4geco!a{$aoa ъ7z17q&QVsS6qP.p^RrV-&gh@EZl2nDJ^xxZE*^(Qj^VӪg쭡Uk ZkhZ˫':E3Z6>E+mN,P1b>9JQT* Tc^B Dv1)z^k~e@Yw%AykGjukT("5CIOQ0T5M=ռX$aߧɈSg@ɴ@ 64cu5(E@yK{ٻ@;D[[MٛGHkkE٫+C+KOKwG9\4a(w<Urj`Deyˀ2jgD'ySـRj o@I^8x%Vm?鎨$6I 7?oVIMǛXc"a-7W__V~r,wj.DwK.1zqf?q<^x>L+ twi[))YtvRvvju?i7zX7zwkfQWS>{PɵY_Z%Q G,x|n&>iww$ {~}y9et -=-ʶ|fS/fB'nsxOYچ);3/?wsmÆñ/}(Q T3;v_.gNTq̻ߝjp=|Z̷aW'fxj0 m o`+i8GR<@By>)/owC-X^}?hrFS> L/i?OOeŮeǘPlNh)C?o>ǛM7`vf endstream endobj 17809 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17810 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17811 0 obj <> endobj 17812 0 obj <> endobj 17813 0 obj <> endobj 17814 0 obj <> endobj 17815 0 obj <> stream q /X1 Do Q q endstream endobj 17816 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17817 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 17818 0 obj <> stream H4;0=+ %B0EBi:$@@YFgqy DG&Ŭa=Bk]vz_4uS$!1e6/3n'OA,endstream endobj 17819 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17820 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17821 0 obj <> endobj 17822 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17823 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17824 0 obj <> endobj 17825 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17826 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17827 0 obj <> stream q /X1 Do Q q endstream endobj 17828 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17829 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17830 0 obj <> stream H|WkoH_1Ot4e`{. Yb&zd)zpeɤk#R.֔*oӮ7?|?ޘܼzuuGbCfkC]0YLY,:5fsbMkrڷ67M׮kgk_/M.&^;cdԴHnjS)LVfmΞ.ϪOwcVO/7wHvjЛ5{כyb B̋}-˚UN<;uk3g{RBޙr37IER+~]%uy,ˤSkN-86$1f$F,k5K`̊%[KXwʽr{{+}rG>*}r_r_r_r_r_r_r_r_r_VbāJYڽĈZ+1ficv/1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+UAk%,^b{1K@k%,^փJYj@k%,^փJYj@k%,^փJYj@k%,^փJYj* cv/1bJYڽĘKXcpZ@k%,^6JXcpZ@k%,^6JXcpZ@k%,^6JXcpZ@k%,^6JlDZ1K@k%,^bͽEQT0DŪKiVZAiEVZQi@PZ*V JURiU@RZЪV jUZj\kIYZKb<-,вJ-Rw cʽ0ȽĘTȽĆ똥@%,r@%6N,A%,%1wʽ;@KރKrA%ƃ R h{{T=ȽxZ*^b<|-{r/1+ʽZKbZh{TȽxZ*^b< -r/1>-r/1>-r/1>-r/1>-r/1>-r/1>k-1KkI@K>Y]3z;[%|2ƚ"NYaXgyd|LKyz$*+erEd-iTs}1|7v٘Ŧ3uYv6"U˹ ~l\0[F+2JJ7}MFC>X|8V מGr<ܣ?7c37Ћ uq/~GWӁL[U _>nE\xe{DMoKs,^ApX\Zs`3cH2Čj&]͉7A;/RΏh*?yj};ޚ^'ɇxyjwXtMc-%[ ÷9,oفmxU͕wBNG߮?w߶[̚|˔0O>0~[jO=AVn}an{D]nf_A衞ᯗ1S 7rsl~ٮ3MC2rf٠"b|\@8v ~8L;r4_<۷|;:Ƚ|i[Pp?߭]?=>Cvd%%}t}scM]6Ūc+>cE듻Tp>vO=dڧnK?)5뾝.yCں̏V;)T}u~6wo^̴כ7oḾf/SFWZt݃`qfmZ0tfGVOcr_ûl߮P}E 7Xֲ8b?iZ8fcvj6ހ'ځa jC-ur3ˆ|j7sOlǞ6Q1~舝ΐm<܈>MrvBt1[jm#ĘU @+(Ҋ@+**V U(hJZҪV*U)hJZr֒ĈeUZhY倖SZh;{1 h;{1 h;{1 h;{1 h;{1 h;{1 h;{1 h{{1KkIX cR cR cR cR cR cR cR cR cR c֒@%,r@%,r@%,r@%,r@%,r@%,r@%,r@%,r@%,rA%,%1bKYZ-/&^;cdQÐ઒GchHE^ûWvR\Nn'+)i4u}?\ܹXfUtwYnֻHݖ؇f}̳2X6|OopwFjC<)kaQ6VV*+m  *ɦ6 ؾ_{m×ݥ>m[_.*vֳG7X{3"x;1qB1yfL6ӼQ/9 ?]O]'OCrR:ֻJsW18w+JLa]bB, ά,9a,XNV;7 3;b>ClpHODZ:qU OFG= |t"c]n1B9 w$΃{s|&k̖֌&qM7_5'%:VQ4XunlfjnܹY]yvǢnmVvt/RsնU%2᩸՚!U?W2[UG+ݠVQ9t0/e"]'y|OE`+t@Mendstream endobj 17831 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17832 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17833 0 obj <> endobj 17834 0 obj <> endobj 17835 0 obj <> endobj 17836 0 obj <> endobj 17837 0 obj <> stream q /X1 Do Q q endstream endobj 17838 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17839 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17840 0 obj <> stream HW]6}ׯH4Pؤb X40 +kK-g{DɦA>9$/$o]z׏B7o.3Q6U0iEiqEH(шz_]N͡OFZj!)a)JQ˜"Xz7]+n^k'WJl"ZM/fwYV4SN]b ahdBINf:5iT 9@~NLœPR #}RlER,F~I>yrʘS&"Q YtR1`r jW*O1`iFkFFFF[F[F;F;F;Fg,R1H}Ψ#9>rf\K1d1#jƵZ!QV3k5Zq-ŐŨ\R Yȵq-a\K1d),ƵCVbȊS Xk),F}ZøbbG5k),ƵC>ra\K1d1#ƵZ!Q0k Zq-ŐŨ\kR Yȵq-e\K1d),ƵCVbȊS Xk),F}Z˸bbGk),ƵC>re\K1d1#ZƵZ!Q2k-Zq-ŐŨ\kR Yȵq-c\K1d),ƵCVbV&-F e8iY&Ϣ9$oz L~H-\ 8VP5S:XPZ< |=iTYG}o3EFX YNRֈ,e)kD 2$@£\<\ڍc7/iTf4< JM%˕% τ,g)Eq*(K( Y6,/UTGB=$UeTGB=\I{$d9#!kBƚE5!!kBƚez,I{$`霪H2TG*z, YԵdZɸVFkeZ֖Եk'$dQN+R^˨^QxfӹNXtaW-x(rac^ "Dp㠲,E sCk YSQ$dMF5 w1B~wå6dyfhpJN`s]H:EB1[+iucVhQ/g. Υ"!,Jͥ"!+YoM)|J]Z>D։Ǫv_A{JJ,=u#q aAvY3>7l6e7E36e7En- Yӭ"!kPdpBE 4%.FLgqĴ:*iTGL91vz2ٳ X`+K|W&Fw@:2ϦfƘ!Z;b-F/GH}Ubks- m6S-eCjLN՛|FiEw5{~)l p?Z;%-e6_v'? TU@6U[|n_Su?qu{txoM^nI|H@Vͮj1mWy&ȘY]6h(@ fuZ5P<$]fIfO?+roWueiH 1y5]3;l.!a߂]IxǾׯ݁A:֐ۡviW8@_o0ܱqa]oEMͶND6'ҳ(BSSbn׊*ȮZX8tuuOg}hUĈq9=i"E`9|]&G`u .aKe߇j3V7 5XUV&s(Y[BlᆞM}{65C miKe,p#?xy: f3Csm>܈TrnnC o07f)xbI<4b69U_?> k/&ppw2 Ig%6j ir"IaPbod21Ggr-*8 e<  XXU+֩:nKHs?v~;F9!4}֞1%ЊY,_Yx$E_p$')\'rYUx=9G`Z񱚐L|`8.@\}/3"h?pPg/1ZwfQ0Mt}W ;={dM+H֖ڲȦ!ĪAD.Iq,9M0*Im󀡫| ^G//F4Ӆ4dX_yMB$ ba^$;DN w7Mp[sA &~>݁o%Jm/@LC^#e(=Ctu}'4ˀ JA #SA= Y%.u0&)k/3l?1 'Mh΅ 4i%kM^Wƕ57YB5rQAh U] 7u'ݼ:D"NEvQ !8Z2-Av3&dCUya)s1N"NUIXVz;>~]k ~pNiqvhxWھg w\JVk3Ŵ, ADT3L䊗t^bKlz;} 0endstream endobj 17841 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17842 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17843 0 obj <> stream q /X1 Do Q q endstream endobj 17844 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17845 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17846 0 obj <> stream HWoFο7I(`;"E}B{@ZTqHJ$3CLJ fU{LT?x&o]5.͂I`3oҶJ~KwJirڬ4mmN:Τz\.L姤ETZ·4WE&fwvë嗎mlU07De?[PSb3jB/*O҆xH M|lSrNI8ZYFr֜E0dyEkS XFPoz#7L[ -Sowz;Ac꽠3^Pz/L}>S s>L}.ϙBP_0`KA}ԗzY-bzKp-ŐS Y\=ŀ%b3CR YzZ#b3Z!KP\kR YzZ#b\K1d kZ!KP\kRlXCWO1` z!R YzZ+b3ZZ!KP\kR YzZ+b\K1d kZ!KP\kR Xk),A=s\K1d kZm'b),CWO1dqZ!KP\R YzZ'b\K1d kZ!KP\R Xk),A=s\K1d kZKp-Ő%guk),A=s\KmR Y\=ŀ%b),ʲt?ѯmrL.Kt)Ѫ.+tM>.\fWPwko??Gq&WYj!fݑUw=]1* m[|z(26sQR`$*S*|:tQjG۾fw_f]@|* F 2=aEVځBpY9?w3bW't/|,&5.drJ* ;zղ a BFja=C':Sw*7իez\׸qVg^+3v10}JcH֭ B 8%WwkqW=f]fE/(yK 6@F8#A.ϥR5cиoo/=Sl^Ez{wI}.xrR_sv g?DՄ|n>sm`7Tfw3CXif] {a0kotBi3n%iC SHOűwY ܜ0 8jm`h9 ނ|38ۡ4A$p6:wr/uBu޴m ~14 h\hઌ Do$;LO6֖% /9(<H 4FohJDns7+ߪHljxZq@afb j=JQq+|!H]qD,n7z|qGb>*Nb9F-y<զZnCw~xn+?B)=4!z%}=ts*^\Nqlfv%<5ͼEwǛ1gA9$i$( Ir 30{IS:~}Ьy Nj6U,cwX;EEٻgӟҋEL'nnaeSQU[<]ܮg T+;/L 9*~ʗvrcv*D<uL8MbpV=m̕sw_7vˆrJ1 yUD)ώt 3 n%oL?v}^!4Wy\^Hkf~<7JSxpc9Tzs^;57M4p~endstream endobj 17847 0 obj <>/P 268 0 R/Type/Annot/A 41660 0 R/Subtype/Link/Rect[154.800003 666.190979 397.269989 677.221008]/Border[0 0 0]/H/N>> endobj 17848 0 obj <>/P 268 0 R/Type/Annot/A 41618 0 R/Subtype/Link/Rect[154.800003 653.190979 389.360992 664.221008]/Border[0 0 0]/H/N>> endobj 17849 0 obj <>/P 268 0 R/Type/Annot/A 24260 0 R/Subtype/Link/Rect[154.800003 640.190979 335.779999 651.221008]/Border[0 0 0]/H/N>> endobj 17850 0 obj <>/P 268 0 R/Type/Annot/A 41530 0 R/Subtype/Link/Rect[154.800003 627.190979 290.911011 638.221008]/Border[0 0 0]/H/N>> endobj 17851 0 obj <>/P 268 0 R/Type/Annot/A 23390 0 R/Subtype/Link/Rect[154.800003 614.190979 336.579987 626.120972]/Border[0 0 0]/H/N>> endobj 17852 0 obj <>/P 268 0 R/Type/Annot/A 41459 0 R/Subtype/Link/Rect[154.800003 601.190979 311.019989 612.221008]/Border[0 0 0]/H/N>> endobj 17853 0 obj <>/P 268 0 R/Type/Annot/A 37653 0 R/Subtype/Link/Rect[154.800003 588.190979 337.149994 599.221008]/Border[0 0 0]/H/N>> endobj 17854 0 obj <>/P 268 0 R/Type/Annot/A 41405 0 R/Subtype/Link/Rect[154.800003 575.190979 328.359985 586.221008]/Border[0 0 0]/H/N>> endobj 17855 0 obj <>/P 268 0 R/Type/Annot/A 41337 0 R/Subtype/Link/Rect[154.800003 562.190979 317.700012 573.221008]/Border[0 0 0]/H/N>> endobj 17856 0 obj <>/P 268 0 R/Type/Annot/A 41300 0 R/Subtype/Link/Rect[154.800003 549.190979 282.959991 560.221008]/Border[0 0 0]/H/N>> endobj 17857 0 obj <>/P 268 0 R/Type/Annot/A 41274 0 R/Subtype/Link/Rect[129.600006 524.491028 487.459991 535.890991]/Border[0 0 0]/H/N>> endobj 17858 0 obj <>/P 268 0 R/Type/Annot/A 41237 0 R/Subtype/Link/Rect[154.800003 506.290985 292.130005 517.320984]/Border[0 0 0]/H/N>> endobj 17859 0 obj <>/P 268 0 R/Type/Annot/A 41195 0 R/Subtype/Link/Rect[154.800003 493.290985 349.399994 504.321014]/Border[0 0 0]/H/N>> endobj 17860 0 obj <>/P 268 0 R/Type/Annot/A 41168 0 R/Subtype/Link/Rect[154.800003 480.290985 302.678986 491.321014]/Border[0 0 0]/H/N>> endobj 17861 0 obj <>/P 268 0 R/Type/Annot/A 41148 0 R/Subtype/Link/Rect[154.800003 467.290985 303.23999 478.321014]/Border[0 0 0]/H/N>> endobj 17862 0 obj <>/P 268 0 R/Type/Annot/A 41118 0 R/Subtype/Link/Rect[154.800003 454.290985 357.149994 465.321014]/Border[0 0 0]/H/N>> endobj 17863 0 obj <>/P 268 0 R/Type/Annot/A 19676 0 R/Subtype/Link/Rect[154.800003 441.290985 338.359985 452.321014]/Border[0 0 0]/H/N>> endobj 17864 0 obj <>/P 268 0 R/Type/Annot/A 44249 0 R/Subtype/Link/Rect[154.800003 428.290985 333.290009 439.321014]/Border[0 0 0]/H/N>> endobj 17865 0 obj <>/P 268 0 R/Type/Annot/A 40725 0 R/Subtype/Link/Rect[154.800003 415.290985 282.959991 426.321014]/Border[0 0 0]/H/N>> endobj 17866 0 obj <>/P 268 0 R/Type/Annot/A 40686 0 R/Subtype/Link/Rect[129.600006 390.591003 487.460999 401.990997]/Border[0 0 0]/H/N>> endobj 17867 0 obj <>/P 268 0 R/Type/Annot/A 19027 0 R/Subtype/Link/Rect[154.800003 372.390991 292.130005 383.42099]/Border[0 0 0]/H/N>> endobj 17868 0 obj <>/P 268 0 R/Type/Annot/A 37612 0 R/Subtype/Link/Rect[154.800003 359.390991 313.399994 370.42099]/Border[0 0 0]/H/N>> endobj 17869 0 obj <>/P 268 0 R/Type/Annot/A 39562 0 R/Subtype/Link/Rect[154.800003 346.390991 311.929993 357.42099]/Border[0 0 0]/H/N>> endobj 17870 0 obj <>/P 268 0 R/Type/Annot/A 18897 0 R/Subtype/Link/Rect[154.800003 333.390991 311.269989 344.42099]/Border[0 0 0]/H/N>> endobj 17871 0 obj <>/P 268 0 R/Type/Annot/A 37608 0 R/Subtype/Link/Rect[154.800003 320.390991 412.589996 331.420013]/Border[0 0 0]/H/N>> endobj 17872 0 obj <>/P 268 0 R/Type/Annot/A 18832 0 R/Subtype/Link/Rect[154.800003 307.390991 325.790009 318.420013]/Border[0 0 0]/H/N>> endobj 17873 0 obj <>/P 268 0 R/Type/Annot/A 18798 0 R/Subtype/Link/Rect[154.800003 294.390991 322.140015 305.420013]/Border[0 0 0]/H/N>> endobj 17874 0 obj <>/P 268 0 R/Type/Annot/A 18765 0 R/Subtype/Link/Rect[154.800003 281.390991 391.269989 292.420013]/Border[0 0 0]/H/N>> endobj 17875 0 obj <>/P 268 0 R/Type/Annot/A 18644 0 R/Subtype/Link/Rect[154.800003 268.390991 366.26001 279.420013]/Border[0 0 0]/H/N>> endobj 17876 0 obj <>/P 268 0 R/Type/Annot/A 38297 0 R/Subtype/Link/Rect[154.800003 255.391006 376.269989 266.420013]/Border[0 0 0]/H/N>> endobj 17877 0 obj <>/P 268 0 R/Type/Annot/A 38257 0 R/Subtype/Link/Rect[154.800003 242.389999 382.589996 253.419998]/Border[0 0 0]/H/N>> endobj 17878 0 obj <>/P 268 0 R/Type/Annot/A 38233 0 R/Subtype/Link/Rect[154.800003 229.389999 382.589996 240.419998]/Border[0 0 0]/H/N>> endobj 17879 0 obj <>/P 268 0 R/Type/Annot/A 38225 0 R/Subtype/Link/Rect[154.800003 216.389999 334.651001 227.419998]/Border[0 0 0]/H/N>> endobj 17880 0 obj <>/P 268 0 R/Type/Annot/A 36746 0 R/Subtype/Link/Rect[154.800995 203.389999 282.960999 214.419998]/Border[0 0 0]/H/N>> endobj 17881 0 obj <>/P 268 0 R/Type/Annot/A 36695 0 R/Subtype/Link/Rect[129.600998 178.690002 487.460999 190.089996]/Border[0 0 0]/H/N>> endobj 17882 0 obj <>/P 268 0 R/Type/Annot/A 35925 0 R/Subtype/Link/Rect[154.800995 160.490005 292.131012 171.520004]/Border[0 0 0]/H/N>> endobj 17883 0 obj <>/P 268 0 R/Type/Annot/A 35873 0 R/Subtype/Link/Rect[154.800995 147.490005 264.890991 158.520004]/Border[0 0 0]/H/N>> endobj 17884 0 obj <>/P 268 0 R/Type/Annot/A 34218 0 R/Subtype/Link/Rect[154.800995 134.490005 382.591003 145.520004]/Border[0 0 0]/H/N>> endobj 17885 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17886 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17887 0 obj <> endobj 17888 0 obj <> endobj 17889 0 obj <> stream q /X1 Do Q q endstream endobj 17890 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17891 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17892 0 obj <> stream HW]o7}ׯ 4sHCFq{IH"o$bGc?x_߲o&ͅgWjfV*n$5l3D%\٬Kf-l\^vz6[O<$gbrlLfMӄ4\ ?vH~S{|thږ]FYM|j>~qY~oO]K=}`}Y!,]W뻣#h$hP]ZryON*ұRU^K1#^a;.-Wll6 d؞ */ׅ ;[q(S S`IUm6 ̃IXc "ekyBA=dP-hTWT:DVi;Y6R06ap;o1-!R.Ɩk/V n)աоqbMnݠ4(OJ@ cX!C*gR/9F+\LKf  e80f.J{N}*gRS2mR2{$2lς3H_+VNmZc9qr#~ _+\3rf>d;\(nZ;. jy}fp Q* #xF|Ntr L.$WZ e%7F:yS")#Gb-L Kp /D2WIroTǣ5𲛐 e_}VK.C'jHQFQ,Q(Yx!pY.k{%f#M`Lm>.\LO  rC,pcZzۆaBGHaٹӆaXpl5Eld4ɲ@H~vm $͗{Bs̱a֘Uפ1֑gA"m#2͆b^>F|>bI$ΐ{f>ic#T)xCOC 1ǷFuJg `iI"0BeX\om,YytkX6MXJ7QFEzFg]yr{h>AW^prjL;\s&]:ozi?`*@KᆎRy-YP "7a\>a-O_I 0endstream endobj 17893 0 obj <>/P 842 0 R/Type/Annot/A 17894 0 R/Subtype/Link/Rect[93.6001968 663.229004 275.627991 682.908997]/Border[0 0 0]/H/N>> endobj 17894 0 obj <> endobj 17895 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17896 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17897 0 obj <> stream q /X1 Do Q q endstream endobj 17898 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17899 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17900 0 obj <> stream HWm6_'/H|Ļ% Pp1Ax]Jn3i[&"ϐ|WA|߼{+2߾ILrV_TZHQ*5Rt.UL'hDnSͣ{nڮٺkVkW?}O^/Ww%r\'&ɄeV6]|piwFliqqV%1' {t薥F,W"xk-Seྸ3,btZ:MDH*|&+Z{(%GP0OJxy&~>c&DbU1-2Ml93l5cc%RdTKmbTKmbGj Q HQ-Q-!aV26D1#JFԶMZjCT̞Ũ6D Pj Q HQ-!aV16@16D1#*FԆ(}ZŨŨŰTRjZjZjC>RbTKmbGUjmhFԆ=Q-!*fOmSRj5ZjC>RfTKmbTKmbGՌj Q HQ-Q-!aV36D1#jF(FԆ(}ZͨŰTR61j Q1{jZjCT̞V 5W2yW"ug>i!Š6Y,4diYHʫK}V<)%Ow8ҤyyغЋJY!JURΏlw.̸І}ZR5j)S'"ۺم F4f2;Zviw˚9? Z58Ӟ3W6; E{FTF'lEj/ Uq%XYGhsU2'62hzߨfw;v7@Oa8hM0Znpw|6O"3?24Vv Hn ޭ'kifRn7i<> aM>N#?>~qJa!쪀!)({jzwMFJƔc.c'Bg\%6wuJUL2?ccǩ}4CBmY)jr}EKTlrn7Gsu;HX7݋81N"ON<͝2s.*5s? 8r{1pWn gdU2s:^ZDݻ8T)%G}B:^L*sPMueN ]ܭSp |vafȨoznL³xI5QrKVgQ Ԭ֌Ҕ5P$Vvż2Ru/ j7nvJ6#dXo;ߛ"O G |ل*'Ӧo}#NyY9dOX}>cqYT H6E_ʧsp9S*WӍ5jvqg%<3 !P[.IIa5y~!3Ȣ"~ޭzZ|Ԕz>ryVAP3Eg -L|cUn~<;h쇩G^q*Jxn#=XQ.p8^Y|XnCq*/oXfNo NirחSBشOcRc ݅bll>6w[mgãTec..!x/TJBj{&dvcv&)]>H%5Ƕܗ*w=,05G秜>6ބԻTdͧ#ۛUbFCa;_?sJU8=#:\D&MCyLjJR(o%]dE8Uj򩌉Dѩ60XWbhe->,H|Wf(oh{%aV橚 qw{_ngk_%MkB&D@<˼à0.n߇7!d}ӨF 8n7=NިX6ʩjrBчJP<-β*jv'=^y5@,K?t_GO?JqmU4 $2[*yEh5TjWW?vWYLcחtzBLhA]&=(洅oZBM~,8Xz?V7 0 1-endstream endobj 17901 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17902 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17903 0 obj <> endobj 17904 0 obj <> endobj 17905 0 obj <> endobj 17906 0 obj <> endobj 17907 0 obj <> stream q /X1 Do Q q endstream endobj 17908 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17909 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17910 0 obj <> stream HWێ8}W $l&`Ig&Ȧ Pl[ZrgS%Q7 CXH]+Nm/oo^__qŸbK8K%">C\EIx\{/Tl{*7񩌮_݊xD/1Iƌ$ׇnڲB'+0qiHV*~SW{l NS$e1f辒_D4<7XثH2yߟOI##S&4 ԧ4P@}F> Pp!+Tc kZC>p \c"\c"k} Ypp!PV1d µ>,µ>,B}ZAǐE\+!k} YzZCVǐ1`1dJµ>,B}ZIǀEǐE\+ k%ZZC>p$\c"k} Xk} Yp!PVCB>,µ>P!+Tc"\c"Uk} Ypp!PV1d*µ>,µ>,B}ZEǐE\kZC>p"\cH1d} Xk} YzCV0c7knыut^뇈' . K45n_Z gfPjX6sgh]ÞeUe]@SbڶjէJ+wqrRa8B9p?\y !0OԇCQmڇoY2/":{`x*)qo{t?vS8 sMY.S%5'+0`]d~[!vT=aMЕŦ.Y8f`}\=U[ r0>-*{=}Qb.Xk P%YؿvnUVT>twSWhڸm Q(9:oxۘ`eX7h7*Gb/71!%]6֧ Qlۻ+v1hcrUgȽg'5G@{Nʴ7n;vL>̪ =Omkm蓈Oei0o(ZlvSv+ŷb*|{C/{ڃ{w9:MG{*fcK*If[ jݲK9>6=m;[QgOO] +ԷUOXLe98JjGm7 Rs>lRVM\73X]|z{͢ )S|vMA8}C[SQWHc%rn75Il6SPRP+0B-R ,q"H`<1f./HLj SjBu<  Hpۀ=5ANñ8v^C3#[Qn1)hcj7{3[}o⫦q+|^A%bC](J"rHQ'ry&5hE޹@8a'+ Lwrί T6HD,óse L *kP|h/O)HH黣,S8|[Ǯ9eqw98`@iД:]2CS:L/Gs8@muCCaVHvnrj݄VuVe8UֱC=1x}Ѐ=x2.!D)nL+&T#S^6 o,9}ԣ/M>8_W?Mʨ&CJ`2H,^erf};k0|U0}܅{dŀ<@H@_74ݝEPAÉ\;4P k:\'lqUT#[ ^[)[,N@EwG7LԳ H6ʟ]eKܯlPYc6HrPP\9f #پݹb6 ҴAaº.3a3=<MPCCaQpBP+Fݏؽ<$BVnXM/LV(1󈯔l|=:Ƈn BpKx&h^ *SVhYK`=}79Ih_55sa]jrTg{!(%|(nttmbm]gdV%z{h7ÿt$ǧDDVTٚ2\ xty1 -u-*{hm/4P<~zOVh}DNfSwƢaPŔ88-^rD:*y9ڭ>Y.DUT)yH-4h쎙f" d 'K.wBX im#$,Wpa +@,,G"=@5DGܧ',M$6I x;ɁX7rhrdF -AJD=?cւٛ*QzvuREE_ **0MH2&U_>h i !29}>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17912 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17913 0 obj <> endobj 17914 0 obj <> endobj 17915 0 obj <> stream q /X1 Do Q q endstream endobj 17916 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17917 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17918 0 obj <> stream HnFF)wR䶆q0&zF,S) KtIʩQ$Q9(D#xSٯo''oxeLZ/CTfe9l+\-? #k)&難O}T5M[ϫ+?w8id91D(cu!˹~|w?r=z=./A, /ŴŚ~"sņ5}??Vݸ_}3c̷|ʬt[ᔕ_2]>WZI],^"{à bLLDю@xo2Rh*0v7-Q2;{;b{G=cg=} >0g}F3>#9cω}ľ` b_0}$'&ZͅePobPo@Q{%o@1ZT7{Re[jcOLx'ZZ%o@1ZT7{Re[jcOLx'ZZͅcPobPo@Q{%o@1ZT7{Rc[jcOuLx':Z%o@1ZT7{Rc[jcOuLx':ZͅgPobPo@Q{%o@1ZT7{Rg[jcOLx'zZ%o@1ZT7{Rg[jcOLx'zZE`PobPo@Qb^gӹ8-Ť,4bب2iQV7#4w/mWk]j~ՋM@ ;nz:WNvF[h c|zLzwC1*EDG$1j%v|s_u3uSe?rx8 qrQwdsotEO<*[>_~.b9ZJYa諅gߎB+j?sW>djdƯlG_A_U〷]aO*};{?:rg}?SYlygy`Vǿ崗uTMf]h_ +մ =ONGKO74~^k3m!=weݼ\ 5z!?EFv~W ^8<Hƫendstream endobj 17919 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17920 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17921 0 obj <> endobj 17922 0 obj <> endobj 17923 0 obj <> stream q /X1 Do Q q endstream endobj 17924 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17925 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17926 0 obj <> stream HWr|WLUs-UeI+J, X%V\i/49g9uJl4f3<>_^ԼxȆVJO2g&,|hk3w/ͫ|M&E9qQmFMTi4"(}g}g}g}}}}}} ܗ} ܗ}W}ܫZPZ-"Z+1fi#hĘKYڽĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkh{ Vb%,^b{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb(JYڽĈZ+1ficv/1bJYjm{Z+1bJYjm{Z+1bJYjm{Z+1bJYjm{Z+EJYڽĈZ+1ficpo ]HUZ,VPZhLie@+SZ9ʕVrUBi@PZ%*V JUJiU@Z.Zc֒_րUZhY倖SZh;{/kCʽ6d)-{1 h;{/XCʽ4dI-r/1fi-uh{{uh{{Eh{{Eh{{h{{h{{h{{h{{h{{BkIYZKb|aZ*^b|aZ*^b|Z*^b|Z*^b|Z*^b|Z*^b||Z*^b||Z*^b|0Z*^b|0Zc֒}r_%UUҟ"zYGƚzU[|<zS/q^ i?ه,q}~|uә?]$CGCIk#%j=125kR(7m3~f+u e]U{Wm:$v,y/h)=Ņ|#wOWg+0Qdpd↞󳡑28GOt5cw;df;_~s=+=F 4:Zp{ 'cv_,'`"(G~y-Ħ9"topenlѬgn pazsV'1m0xmxg"|3ǍʌoV_s0uIuHӓȴqӗIA\ov2'[~Ws-٭вĞ {Dw1=/Monfgk,oZ-&Yovwj!|ٺ?o /vUo"z{6I=h}Ŵiv0©^"FEW~7؇#κsro:I ޤw6 MӄAOo"t)H#_uIcԜmDݬh?h̀ʹJq;ɀ;kw }kN0:~)x>oZݪmP}Ẽ {rKqc&;psxw þ,8=aOHv^>+gu{ J>U>5r|æz_$'cR;?qsfCܼoޜw~wYKg|^f?iۇU|J4? #CWptRMq8P Iٴ`˚Ib-Yߖ$Ƭ VZAiV2Li@+WZ9ʕV UBi@TZ%*V*UJjTkIYZKbIJ@*- r@)-TȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘT=ȽĘ$F,{1 h{{1 h{{1 h{{1 h{{1 h{{1 h{{1 h{{1 h{{1 h{1KkIX cR cR cR cR cR cR cR cR cR@%,%1bKYZJ ۳#_ѨXSO#9;yIWwS^@od!F]wQ][5M%ɏwljm}~Kp$Ja-5DBdҫ߯CH+4ř3C(* Lc:cN2Ej͚)ZTzZZ[>58C05x&efaPع*uHc[\tο`$A\޹βDyYޱ"* ?0DeE3cNY;CSX`D#G驡O ( L^d<,|gTr"NK KʾU՟M IV1EDfŽ3܇vRX6 x}&di8]gq0Y6IIs6%Lo-5hGah,NuA E!# 2p@V7 c6;q–B'6&5[:N@RO, lAٸP<)K=BR"O%8:HԦ&>rw!ܖ"Ռ@E|/'* O.KޏuJs(9%L[3 {RfBeK.ū%Bړ'joahYG/'qZv~Cg=y_'endstream endobj 17927 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17928 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17929 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17930 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17931 0 obj <> endobj 17932 0 obj <> endobj 17933 0 obj <> stream q /X1 Do Q q endstream endobj 17934 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17935 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17936 0 obj <> stream HWkH_Q{Ը]/?40#X`W;HLt;c;V^?:v ԩs?S?t*Vϟ:+.ҹS>QbTՔ buhU?]mnk+l_3 ^.hVM$U*3wsOss6>ҏUW6o<&We۪u Ňśa.QӰ@{E8d\ ldԽұz~?7C*mq Og.-=䜓-#Q Y|:Kk"޵),#7̽ -so{;c1^p{/̽{>'}"OTp2>eS}gs s>ܳjFh-ŐS XBk),b),CFh-ŀ%bܳCR Y{Z#bܳZ!KpZkR Y{Z#b {Kh-ŐS Y=ŀ%bܳZC R Y{Z+bܳZZ!KpZkR Y{Z+bZK1d YkZ!KpZkRl8CwO1` {!R Y{Z'bܳ:Z!KpZR Y{Z'bZK1d YkZ!KpZR XBk),=kZK1d YkZ/b),CwO1dqyS19\탗j0J&Ȩ$# n2\öRԡ>2|8v'IdyPϞ}X|>i&T(ʦ>0Q? \M݀#y-[Ձz8vzSsn];:0Τmvn~ ds[LmU^w/|KtՔZm:ljȩ$N"kav{fs}2Ӿ/d |梔@1ޜ>f_=Oar穖~/1|uW4KkrYdv0,&sEv c8uޥCߴu3F1di9A1-'h9-ϴV"h%L+ Z)JieVƴ2A+cZ3\ʩŐŵ(,-hi-ʹeX{!Kb7B),A-{#bX{!Kb7B),A-{+bZ{!KbB),A -{+bX{!KbB),A -{+bX{!KbwB),E1` -{'bX{!KbwB),A -{'bX{!KbwB),A }w΢Z^=Őŵ(﭂˽r[Yg>iv$'~" 92̻(9w_Ju<Bgh˫]}&߱z_W~_TM4RVJ]%q ӥ4xj,1()5 ƅ``X]/pX6O*[JY14 0}Mo$O(Ysz.!UqlK&vŠ;;_dQrBB"Kp;xڶv"0$!Uan[qQ/VxTlUUw+*TUR~9h~j  Mɲg7c5ѨO9}p`4 )-|<^m[$q֤1k ~Dfw!ǑKa&|O0f2mW/}n?ǽmiDwWt%kLuFfdR݌ə:7L\85[^o f>o5j=^aNWKP6M,✰1ݒDlXQp#%'X. AP2kfS|qF/+E)[3CSauLBr2~VCهP"Mu)=HϗfPf(I<\$䲳 h? h۰ܚ;c9'Is>Ɖb?]Hl"Hd۲*{T`8t|1~lgl3ޞ̜ g[?QfpNz8ٱׂ#xaߒMÿM5\Mɂq;n: L g+M$n`N' xxsyfek< eYy+m0T$g^,{ҡg50?7T:^pgE_twq}Of\x}"W„tDgaFm s5otN v3MOMδI1mz_܊`sjҋ'cO&}ԇ-iDIS覨zV4&67exOzݺ]/\w~jj3.=m VZ;.QR8\gmPGQC+%f0L.3 cxA%;\LVV28rAʼ*h?-v8A HB//v:[?ncxNۀ ڗ{uY~`T,]ݽ39JCoe+t7[΃}Tfm1܂mո(FJf=|7p|mvZTմ8>(КmX6Qۢ~bUS&t#L"J\Z`5d7,}6Si_|,1 [!E"/K<=>PKNdy.ʦb14vZG`.ZmE+“SmLCΤUHA_pjנUdb^.q [0$ ^ܫ^f$CJ&=X .sC,? x *1S 3L*GZ,kyRC\VUӢ&uK cK Le]1:dÐxe uj93R!Ip>2ӟ8+zIUu`D,EAcMt.O:]W" Z^ӰR8)be\9(RoHsZG;R#d!4삪3!K 1acXKYyoN'f*Q:t0X/$K DV]ԗUM(=b"i\ww{.Wcϸʳ.o;o]k;?@Hi_秖pGp|K@'-}IϦ`#+!Jme}* rm a|iN%=}8*{ǧ{endstream endobj 17937 0 obj <>/P 1166 0 R/Type/Annot/A 25798 0 R/Subtype/Link/Rect[93.6004028 409.928986 204.720993 429.609009]/Border[0 0 0]/H/N>> endobj 17938 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17939 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17940 0 obj <> endobj 17941 0 obj <> endobj 17942 0 obj <> stream q /X1 Do Q q endstream endobj 17943 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17944 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17945 0 obj <> stream HW]o6}ׯ /ra$6im.41(yckyB|}l*_7u^}ܽ]yB5n* &_l;(P!fNf% r)'+3%?&@"-R yt]!G{cNcb,dye)kg,czzzzzzzWzWzWzOi>Eԧ Q3D}Y>GQ5^5>,CLc#1 e}̲B>,ĵ>fYqY>p-G\cB\c\e!rĵ>,ĵ>fYqY>p-G\cB\c\e!rĵ>vZP qYV,+TcB\c\+e! ĵ>,ĵ>fYqY>p@\cB\c\+e! ĵ>,ĵ>fYqY>p@\cH"1 e}̲B>,ĵ>fYqY>pD\cB\c\+e!Jĵ>,ĵ>fYqY>pD\cB\c\+e!Jĵ>vZP qYV,+TZSj'IG7 M4'=a|Ҕ&S>ݐmx,R ;Z ]ow;>N;:gclMqt:kϏjy|Bd9*asfR7#-\kc?J82xM)k&2XAysPOIH-P: >uΨHRLq,a5"ykLKeuك ׬p5/d=XƨfEU NcN xcWJ`@`cѻfCvٹԥqvj( FZ\Ƶ.ʕj+Qc]ˢO%d,s=}ReqWKy?~etr$R{|! dU1ckpvOauiJ]/U\&qmo56}{b'8O/Lܗ's'4s}:-;a Fe^ 4Д,#o[sЫw!y^.A͙zc%r+2,3\$TnFf !]ljp=Ἠ! ~\15]lkʵs(ܛ;lT^D|}1M 3&z׼3q45}9gLPNY=f<Ÿj;`^UfnpcOvz r^?4q"w>ʤb9&9GCnCdl#j` sZF_ӝxC{"rLdN2oт\cƄ# \'cnS}6_22>4pY2b|m8桩G{qY" Iٶ{tUO 3xAZ\ᒏ3d}+J)5*%)t-6glC* mr<Mٵj3^w9^wCػZvx MFfq0Է@cK݂ 1tJM-գ(pS)[`}2usZ{ιש e(쌉u&[sIWVe*n$ܦuO@^u0 ]wFU+6,ö6!-RgWb*Ė95葃!vuFrOsrXS qi 9"1Ƙ-6^T;1@Hsq48(:5/B{ &LyFu^.JՀDSaXu ɱAZq(m9j 52el~w^c oDiE;jF 0LU0J^.k[ǷhFb\VJΡ%-@lg6$b򢊟"3HD^#m-YjpXDFh ϼ O9{<{3MUc/\='#=oWUVzp͂Ν7𭽵uX.VbAo#q݃t*jPA̖[gӫ?ÏV,q@bGs2 @HY_,g& @@e+9RmB؉*1<JS ~%j'{~ ubP,!f|[&{ |"$"lA6<Ԯy@nꡨWPN2m ,ϦA}wav˫Jiޚ^`1&c{b<*txڮBM6*"% o-Lx3O~:^ҽEh<>na[?J7W2k9fSqDbU;CF\t[AS b,X?\ծ/{mk.]hFDcN4.ϓmœc_>["l2fo HChƯ k-|q`o+PS[jxtܯoN~O~YvT"hȅ  #+QIde,uל]bRQXRB^ԳX1 ipݷރ - GS-l>Erm+$r/̂2s@%+Yh7;Gף_Yuxgwnqĸ/[5)HOA'<>_-8pnۃ$'dx1:_ HbJ;0햧JH<,+A>UKXET*d,?r߱9P>NLTw땺OܜNݽn䐣tJ%g۟dDLp~ 5 48lD2#ʉ`]U"|X'1\PV\2:𺸶H`?ƍ"ZlkOo`_O:OV]]9x߿,endstream endobj 17946 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17947 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17948 0 obj <> endobj 17949 0 obj <> endobj 17950 0 obj <> endobj 17951 0 obj <> endobj 17952 0 obj <> endobj 17953 0 obj <> endobj 17954 0 obj <> endobj 17955 0 obj <> endobj 17956 0 obj <> endobj 17957 0 obj <> endobj 17958 0 obj <> endobj 17959 0 obj <> stream q /X1 Do Q q endstream endobj 17960 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17961 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17962 0 obj <> stream HOܸƿ6\Ưӭ*QYQtl*&Ob> RU3?O?\̪|y0 W+FT,T RY&%$9XϚGq_UhrN29x{)]&S~- '$0I2ftLL.[L1.4Oɛ)WKlrQ}sp&iUj~xJ>9\MOoCg QE3D}7z7zy>GGi"kPf)ĵa X}X*V,6\+׆5kڰf)ĵa (D}Z6\+׆5K! k@!# ĵa (D}Z6Y qmX QV k@!# ĵamHĵa X}XڰT>kB\րBGkPȵqmXڰ>rD\րBGkÚ׆5k%ڰ>rD\,6\+׆5k%ڰHڰT>Y qmX*VրՇ5K! k@!#*ĵa (D}Z6Y qmX QV! k@!#*ĵaRkPȵ qmX QV! kB\րBGUkPȵ qmX[$qmX*V,6k@s"~/`:mbڪ!\4%ifdR.wTely3n2uC*直?.¯u(tC=+0+a:'-2ʳԭ?ũ(ޮŬZiCsے2ήzheUy2}vA|F\UesԲ"e B+vK:3Pj̧at(CS:?wJ|fԳl3n(kIJDhmk[L6g5֪o+חPOޗˇa6'v'YUG(oG'Y9p5kB{sͬ_6P-73hwg'G&dtYռkrzLlwؽ0+=<*FyjARKfB5oB3kϢV aKґSFu$dva)ܚ.ܳO,_f 5>s3(Aھ%WT{vqp '1]]]˯Dž63dD NO֍fKi||!0R )`̋ в;x\\_<|~$e09嚻A/Mj9:?yb]|:mff r3x3LR|r4dx2ϳƸa8,ƀ4csgӏGۜ5L&oXݪ;44YT)ܼ;ֱPG&V2*}|ZVS3 đ>lfړ4P3M0oHPh*Q~cƹtz~S]uڶB7,E!EK) h<*C5/aL|#S2IدewF- H2)4iS0*)Omu{X.~Gp\mE!-sC.hseܠ\"(/E7ٶ\n]rcH~q*LG$9eendstream endobj 17963 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17964 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17965 0 obj <> stream q /X1 Do Q q endstream endobj 17966 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17967 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17968 0 obj <> stream HWr8}WQr`FSNʩM6Vj)ʂ,&!);m hoROT4]O׿%N~˻诈 BU 3˜Yʉdq*JLje]Ǣ+X7IwM7etŏmv]o,f)H*V3Β<ޜgzF$tݭnǪ8 gYsIYhj#k% >1M WĻ8R<%LB$7SFJb @ϠtP(gPA) >@1= 3= s=s=s=  K K K ا4`"Ӏ}> g,`#} a ah"}!}}BT *d *d>P-CT a!}BT a!}T>@!}T>Bej}>Bej}A!2DqDϠBPj}A}A}>Bj}A!rDPj}A!rDϠj9Z(DϠj9ZgP@QZgP@Q3(}Z"T Q33ZgP@Q3(}Z Q3(}Z>P@T>P@T aV }BT aV }T+S$> >@!}}WD)%̇Sv]o64fĺA"i*ޜO?|0h% 5 [meߤtՖUqw*oz}U@Ur$\0̭͇' dI!됤FM3]30Dy'4ɹG~P)/1&0iڲ6 [to]Q :p "I"gAvɮ$)& n<uk8JHcU}yz,G3`'ŕU'ߕ'ĭK SK*?؆) )WlBtZiB$32w9>X{X]5 :l4_؅{MX0Ƴ6?W>%i_}/mOg]@\/ɓE؛E8V `]Z ^0Ww(:]T -nʖG\h<VsWns dr>_ rFTj&H%^ UdN˧[#%ɦ H%̹I Gnz08 EI0M{_LyoM{>"'l }.z=nR5T7)J?`M0O/$R/m;4 Fs";@'jk~]] f+c ze TUoׯV6uՕE;LΡЫ`dmA 2Y,H[R It}r?RƧ |5 N :ϽqMo|WMOWGjEn,U^Q$%f\V=6S D92:wnzwzuttCr!YIX ]KcC7j:2־4sЊ9tpẖ K9Pvy9v|5`K, Me4tX%^=A$,@"Q`{/] ۰E:7SK18T]osݔ ġdXDtkZ G u+Ŏ»Y PӛЄ(^u mi%g|6GKrA"pٰ꿑 `eUv_@ pq޽9/WbWHw)6KvG/: !мz@sdjl`h\+pOڙ滳we5b*g}((()#ܼ3R]kô؏!?67|n[ҜVcY0ϲFs܃^aar4. (d!p|(ʤ2iNŠuP@El*YZ>^ƻ78j;㙘ƭ4ep,:Ϻ>2rHP Q]}jC_SR.kd%0iz3(?)fmTVEEyOpaad:5  p.l@H[ rs8l| 7 .zygVqw1#ꙏ\c 2$T.&k&;m}9^>JK p@ov%)693"\l(L3JO _؃ӶK&@^=o(SN,_n69Ӑ~`2zuX{߾8퀱Ɋü`s?϶"0ӝy`S7R0gAw6y{I% 6Eohaȥ]oY1^m;@"YϫhJD'{.uϓ u99恸hr΀"CCfŗ yeSNRG/qʪ*uIХ\;/GV'&Nsj^RZ9[<~jQ6m?qw 5 w$'A$Q]^`mKhn[^FRwG=ۖmK+miZ5iH*`Mlo#M 1pn\$vEu*h7[g;2vhg~ː0)4^@hHr`U/<*M'/pZT sAcIvYpM\Y蹦"+3tM u6Za.6Bێǫ,ybﭶ?\dZg=VyQ7xCE&v@TA:xT]֦i%1F/CڢFK$xi7uzrO~_r_\_Ƥ_=( Tn9[7MhD}n +R'b]{FjX8Bӷ(fg74bv})T$ڢtK{ZCfpaܛahB_yi嫪v W?ζ4lO,jLăLCzd xt=-$uٌg$c5S0\fBZ=ڏrߑ_)'174񂘜yȗ4dH^/E{!퇜ۣKϏ"[ [SY,UYp[__iy8Hг$1B{x5DMQ_DeA* p |6vKRR}z|Z7ld-LkV`0DɻGMG[(D9rO4wzyya>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17970 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17971 0 obj <> endobj 17972 0 obj <> stream q /X1 Do Q q endstream endobj 17973 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17974 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17975 0 obj <> stream HW]oF}NErlشE>āHtԒ${%K$=5#̙Cٿ<{v6yWٿ3 /*gљ~742k&;{L?WuXn13";™O$;+g\g&)M24M]6flXcܕEsaH>K~~N&_G4ެz;)bY,QkV=deawlI7S g[_I 5?fnER*\f7E$IcKHcNbIJVƬXһڼĈ{;)ʽr{>(}rG>*p_)p_)5p_+5p_+5p_+ p( p( O}Ug-(Ė{ Vb%,^b{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb̃JYڽĈZ+1ficv/1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+e@k%,^b{1K@k%,^6JYjm@k%,^6JYjm@k%,^6JYjm@k%,^6JYjm2cv/1bJYڽĘܛ?TU*T"b%RZhVPZhEVTZЪV*UZi@VZ jVVRZ h%J%1fi-a hYeUZh9倖ʽXXȽĘTȽcؘ@%,r@%,r/1f-{r/4fI-r/1fi-qh{{qh{{Ah{{Ah{{h{{h{{h{{h{{h{{BkIYZKb|`Z*^b|`Z*^b|Z*^b|Z*^bZ*^bZ*^b}Z*^b}Z*^b1Z*^b1Zc֒o}OEJ) .g$;Lfr=LSAc&}^hN׮,G'&o%94Eݓ+&7Dswr5Z3nfkf:Cl͋9o>Ny=9nmi|t4֗u {_\|uq>O+ÿsd\/V)hz`"z9e~^°32֩')/Or vny{@Ikt;~ʃOƮ`W{$|Q ևSJ/9pCksQdnՋ逛Of6\wmkv)zy;]}_> $`ۦ(.ACl?TIz[ 7^z֬W7lzsOqԾ{4P7v1HV|ڂmzc-|~9n'}'-:M_ kTlYa{e{n6(s7=$ݿM ]Vocد`*Z$z=m xn'4ݍ?|n\m{; ٖ`) @+(Ҋ@+* hUJZҪVjU+h5JZJ@+)r֒ĈeUZhY倖SZh;{1 h;{1 h;{1 h;{1 h;{1 h;{1 h;{1 h{{1KkIX cR cR cR cR cR cR cR cR cR c֒@%,r@%,r@%,r@%,r@%,r@%,r@%,r@%,r@%,rA%,%1bKYZG)NIv6WX3n+oAGߟWelhl蜺h\4p_^mhU?`I>taCȍ㨷ϳʲDE2$#FSLSh}s\[5kV 8{!+&<9J \F۝c7Ɗe>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17977 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17978 0 obj <> endobj 17979 0 obj <> endobj 17980 0 obj <> endobj 17981 0 obj <> stream q /X1 Do Q q endstream endobj 17982 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17983 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17984 0 obj <> stream HW]|篘\^$vEr1pH îq)D)"=#>Cj-u^Q!y8/n}U^|쟙DWr,Vrթovvxu_[8dVQ,$**Jv}یݾW -?\ey8m\}pj{ĤXo6~CJKSz@ |7,fU%sڪ'er+|݇\U]m]+`b9pLbQ Xpn 7O1`Ye2Np{'w̽; =s}`>0` }ܗ/%s_ KW}%(}ܳ!eVH-ŐS XBj),b),!C ,VH-ŀ%bܳZ!C R Y{Z+bܳZ!Z!KpRkR Y{Z+b {KH-ŐS Y=ŀ%bܳ:!C R Y{Z'bܳ:!Z!KpRR Y{Z'bRK1d YjZ!KpRRly!CwO1` {!R Y{Z/bܳz!Z!KpRR Y{Z/bRK1d YjZ!KpRR XBj),=KRK1d YjZ b),!CwO1dIϘ&W-+B"W6y!Qe^ە)VYJY_iUQ:j4բ ,{!<ֻջ*˵IRoU!V=_V{@&hU<8']58a ]_L_@u{CT!EI+]kd6{\uQ.>jq(5Ϙk8xȃ٪`]MY7RyzRi<: E:6 : ?deh=lǹwqRldОف [#L4%*V+\Uz26`.XX:~AAIT!9}z+tһ(1LMH-C#W%~.<܀tc X;'v0T Ptl gbV1iK L*HC~:דg\OJA'.us LO}v.*,)\s{;#"Xtpѥ?Lu2*=G]2p{lG]OV#ѺuժQhJa_"SǃQUӤ,$U(̵t% > pz-VV-ob1g kz8Ɵwm;gtnLP=}laI! _=fSݰSvkw#NSi~Qp#m'dnW~cp0}źn<3G| pL7|ZkU{xa sUq,AG%nZln^%\'EҬ4Of Z0Kxx4´?5s{EWaj3}Sf=z~IM[VՕnnzHYE੽w6TXBU^).F-7%N~n>q?O 7)a3 ;F䯋rݓ| p ΑT?L;*~.I̟}6uQ^nhNT׫vo64~ڴUc?fiڴ0ly'xyS/*; <_"xbZ^L ZiA+0 hUZ*iVɴJAdZU1JЪV"ӊVZ6ZCעe ӲeZVb}o-V{!Kb}o-V{!Kb}o-V{!Kb}o-N{!kQ XBS Y{'=Ő%hwBS Y{'=Ő%hwBS Y{'=Ő%hwBS Y{'=Ő%hwBS Y{/=Őŵ(,),AbX{),AbX{),AbX{),AbX{),A}bZC׊:c%.5c4 L~ ʼn!4s~@*QB`w8|_Uz5̞po4ɍfZ:+ߞ*w>~9eFK_{hU]k\M1Va]Te>-$ƭB *, XVJ*R*JjZj[< jK[K ,-X`7`< jK[vϳ%X`< jK[vϳ%X`< jK[vϳ%X`< jK[,-m =ςҖ`,-m =ςҖ`,-m =ςҖ`,-m =ςҖ`,-m =ςg`< jK[vϳ%X`< jK[vϳ%X`< jK[vϳ%X`< jK[vϳ%X`< jK[vϳYgAmiKy6n}[mbvzh']y%N9҅O씯n;$!iSw8&]:mcxZ2Τh&|1^$.*Uf 7ya-fL($gǽ7׵M~rz=عqv_t\g=/ܝ>mL'ZY8׫Mn|nsz^@̪\g_^3_2EӿSǤ%ӂOϒ<1FivDYԍ&=o%`?]#xxqsB7j5%X`UV!X`YUV)X%`UV%X`UUV-X5`ՂV#X `5uqܨų{IK4`iҀ,Xbg`,^,{EKZvϳ{IKyy/i ="%-Y佤Y9="%-Y佤%X`< g`,^,{EKZvϳ{IKyy/i ="%-Y佤Y="%-Y佤%X`< g`,^,{EKZvϳ{IKyy/i ="%-Y佤Yg`,ިm]4 $&wݞj?ujsӺǗ?OHU*7f:4JwiVנj,{' 86m7koβtO?ï7̌sU]f9G |oɫendstream endobj 17985 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17986 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17987 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17988 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17989 0 obj <> endobj 17990 0 obj <> stream q /X1 Do Q q endstream endobj 17991 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 17992 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 17993 0 obj <> stream HWo8}q-#~4m@ZMRV7#QDN=FOo4<}-{ū,dϟ DE1*KĊkjA>,86-jW޴ubu|#٧&8_Kq`M$!Xc$Lr.n̪-<:\ɣ#Y%)oj[,?(<ZdгZtCh.I1ax&R \!i?K>kv1dkd*RHa}%3`v9Gr1dӹY,M\B] XP/=P/=PGS S S ScO}L= >'SO}JO=)>gS= ´.$ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d=Jµ.,BZIŀEŐE\+ ׺k%ZZCs$\b"{k]l(µ.,_p!Wbջ׺kZCs"\b"\b"{Uk] Yzϵpp!PVu1d=*µ.,µ.,BZEŐE\׺>׺|.,µ.,_!Wb"\b"{׺k#µ.,µ.,Bڈp!P6"\b"\b"{׺k#µ.,µ.,Bڈp!P6"\b@u1d] Xk] YzC>YE,pΗr)`Mg?X\>X(Wڰg6o,?|PeiHQ̒uʦhZS_ZOt)\H HFf6ɿ՜p.dxґoצ=e 3u}"EU75Jɋݡr\tWX[BV}F$NԐ!;qr ˎ>c3NXj\4,ʮ֫ ;y*"ڭJU4K:Rq w|+O}T`,hZ<=pC '-3|4߻ݚ%rQA\͈ {GJJ\2Jy sBÖ C9ӂkvbgovM5Xy(&R| p t$gZZBK$BJfZcQSٰ1]y뤰 '3W54Hw9 C`'z`׆)TE"=JL%, `$]-//~>;sl'2ݬWT-N%D:{ E\&ض^k?`S@/%'ۅK%iW>`k#|՚Vj Ml-<{q߮ߞQn:k 8Rt$ 8ODQOX視aoZO5.l#tdO(4%A^~swt> ̓Ynӭ Ÿ3 hͪ-?i%PJ|\^__]_ry vF.d$a2!e[վkY`+wͫ aPOG{߲tBNQ4~$e!JIs5Uӻmx@ j®- oboZ;vx}>BTigBGpiTc+Mաn/][&ıo8C5>"}e;\mTXv/}pb{G"4&oWJX˶ٸK4XJW0C{ol3HIrT0$Z$4pcll:L6ۻI f Fq!ξ+c>]f0#Fh?+XHa4[k6OSb_0Q?,xЉ7K阮ೡvOc!&ıA:; /&c΅޺I'T6q_p:vOZ,-\e2ͳN=hOA"EVt2yE z)gXH9f`wi:_>(2rR!x(C6^aHg+:h@xj<>hl.7dVO@)>0fWSP">n9yaѠ1lᅠA/ "l{Ckɹ飒csQ cjZz"=(~vN+@(\86K+X[U˯ccoZCĝgu,t`_"޿/^~6!2)14bW*Le.m1my W@C"@`K>Q۠R]h>L HI޲}}r@hWֿ)lQlLώmX2=8A̩8#bi7VN\jf=YiX+nywGqǦ` Iyҍo" ϰv.aͺ@ qw//-d:ПX OT ~4}(&_n7o?g3r 0~_ Ɋ2wvkUЎ&Nް9d:?LƟ2uO-*dpzn:  aāNTG:;mmni1{ _ڠKnUZfZL{-e;HTsƩ~@r!PuPPV. y] Dcy/ /alE\P4PY1\L$ǮP=`U8T\ RJk1ܯ_jtuBF"uvrY `U)+)iqO1 -4endstream endobj 17994 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 17995 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 17996 0 obj <> endobj 17997 0 obj <> endobj 17998 0 obj <> endobj 17999 0 obj <> endobj 18000 0 obj <> endobj 18001 0 obj <> endobj 18002 0 obj <> endobj 18003 0 obj <> stream q /X1 Do Q q endstream endobj 18004 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18005 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18006 0 obj <> stream HWmo8_ 2Dbk{-kb˱ZrcgC!Ϳ}W^i/_qŸ_bKfDɴe%Ei|񸊣ʺhUS7j[jgf˘NjudIšqb%V]-~t(u"`ɛ. Ӥحux?M 㹚3#g`s} ymrBm B Q!{(B Q!{߆oZ߆(}ZAַ!`Vm"TET+6D B Pj}jZ߆(}ZAַPoC>P TET+m$ 6D}6D}B Pj}j%Z߆(}ZIַPoC>P$TET+ 6@m"j}j%Z(B Q@PoC>P$T۶"Tm"Tm 6@m"Uj}jZ(B Q@PoC>P"TEַ!`Vm"Uj}6D*B Q@PoFPoCT޷PoCT޷!*doV)7.EtU:ig7-TPCIrZ?#yHGmU{E!t7Ĕ2s{CN]qP)DKIu(=mJ̆k.gwQG"t"Hّ( 3F%/eRWg$8gpu>/yH 0o_RB -p!75!nc*pb:y)3s x6LZ4yy89SO/7j7/Vp4fGC[-5!exec\rMjpe.z8(vn W| >m?!CS\|ҍ)w(wm_Q`a"{i-Mv@R#dq ߈塰.v GgWW#>!8+ӲٵA ..X0A ,u^ػ#੉C׍{9rDeӱ )FgX|~zÇO_ΆVjHavA BW!8e{:c҆ TNn#W#w2et~LKX+W!E L{(ulKb 1A2xxgs 헚fحRY k? \f3ORr }aAO蛏'F +UX'8{C%ad-B˱p We⯰z2?e8n0| :0-C6<45\m /hڮ5n,|Ř>`T])QQW?˸{>_BqgZ³2weM&ߕ^sψ*a +5q !2=[~ZpfԌ{HR@A8 S2ëb*q|NlI${lS`mZl  Yw%ײl{ߐLC<7o@\m<+PzB; Mg ,~3H42BĂsrOlBDU4/iMǐs3b^*9z2,<=5;?Ju S[BLE,YZ01NM3ba&EZg=+xYA4[ŰnXw^ǨN]uh%\O Q@iN;`1P9湈2ϐcyyOxӇkɒ)BsMm!{[tîGZͻ b@0[~߾ ?6H:C[uf<3|#8-?e[[j;(wap cACvDG {Y)1OČS"BGB|); $ yjg,?;!τ7|C xC#p/@C>ۭ8.Hdy7ZTRU$ 8;IG\p]CVUu-G5yeq sm[+ #EH  ҁNcT?V $E;[ J| e867>Dnt $6t&dL1mo5ǨDALu" ^{2L(sD6/عoB9L.KٚTJ%0KeF+y8 hɚ%X7_Vɦ DSGN'ǚM,r5Fp@M4ٴ;EO-G|}:mmxo\1KkaN~Vkss f)5yG=Tޔ/qOe=X~~0Ğ͡e9zۮ/vVm_wAvx@q_h1?(1iϊ =~G v\":-ShxʍMLQfӃS.xB}Q8lm7;h4+?:mb$¸C"b󄻁.GUeV;`D^*͸pizv*yg@):Nע@ؽ^ W~U@㮹)K(u {/#%1d|)K<%ԍHqำ ,*y3׷*T8$\Vީ-$< ]**jC7wcHֹĠnἀ4b{vn^^6yJ'.s;KMWãMEꭳkv7iO=5~t7eeyTkK;o+3K4|z;/RNr{K4HpN.UT=gvYݭ8wnW UXd;C5DYx@߰ pcI,XE6d%zDUOydXČ_<򅫒H?zO^'ʆ:endstream endobj 18007 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18008 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18009 0 obj <> stream q /X1 Do Q q endstream endobj 18010 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18011 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18012 0 obj <> stream HWn8}WQlZI$0 $ ,[햼--,Xd!yXS,^~,=/޼$/_$I%QZМ"Tqr?Id6a&j_CݷPzKur.yI.7/N$Ɉ!$E\Wնۆ]p,Qm)ElsCRbrc`l=yI2hn׉ ,#a-I)W0Sbe'WQ!`X&"Phx(bT`(BC8žG9žG^D^D^D%^F%^F^E^E^Es}yľ@a_D }{{7{7H mh;$Qmh}hfQ1fQ1(D͢j9fQHQmhfQHQmh(}Z6 Qmh(}Z6Y>R-GT6Y>R-GT, a# mD mmBT,*f,*f6Y>R@T, aV mBT, aV mT+Ն6@! mT+Ն6BGjCՆ6BGjCE!# DHD͢b PjCECECՆ6BGjCE!#JD PjCE!#JD͢j%(D͢j%fQHQmhfQHQmh(}Z66YT> Qmh}hI2hnMr0&a3ÇqCslIz7gel`Fu;rv!8K)CgVMu,j7=[PCw:wU36Gy(OU} ,rAg4[}Sr7`{/_{y5tx61 A3v^^hg&PZLqrFaMЪs|T? 6ٷCqlR9v2E}f\r>m 4eY>MV2"c\/95aB nr-%rBioɨ~l›9lOg+ce0TI+"8Q>E\:'ܓGoy* Q>:cy8w5}Pfϙ{wܒ۞7(+ߟEP7ߤ1!}h0g$HЩ]ύ?KӞ\~ZSax2IiHq||Ӣ0rDmOݸvO(2jb&Zgiׄ*VE6.[kmNÀpҊM?jrs?:ݗߪz:U7iN!p9_,/R@ҭ8 YaX̤<+ Za˞*Y둪|IƑC2Z3i[r}ܚ ^"x\̸Ϋ?YS[ DR,1}4_2wE}:q!~v]_(:4;wмrv:k 0)L㹠 =ï}ZYZ @n>Czŏ޽{bM! Z,װ nk^m[O,@qv7t&aZHz.n"۽ǵۼwYGY +G?W/ݵ1Rh?!(y 4Ե`z'Ȝ\>zW7.N$7KW@ݗG& 7S'4XoV\b_z(YvOWW*Ԛ t qY0e`bj +GKʇWcY;l3ÿV9͸|hZ8u s7ߎKrwſ ŋ}7>\V ,*`rLR0@eTy?}>jm.͠(bЎܕ&(Eu8_e?V (ؤ^+[LB)mx {um{ƗB/c~9-tfCuz @0cIx[,x9]0\\a I}7աm'e3q[E@-[L@!9vӳSIOE RDQ7]WWjpr71򸯫@PJrCu` w*G+S'o &nj0NT— /7&.GͩxV3ނWs P?:> !D=:-JPcr{W7r8Q%! ?ebxHm |xVN[.ox) =1L`g}>@0I.9-u_Z|iDh@ij膈VW&^Ԫ >jJ_[kd3K fuɐb#(GOa( mj= V2uTe]G:ib3򏙰e(ׁb=([QGG3^&rf ݭÞD ,+·x9*e7uC~ȷ(2q*WspPY(2Cz%iNYgoNVwd/*88ڨmVY/Qc{?oxޛ`wjo& Gam@ VSOrH#A@7, o?q.܂i>RE܁PxTNIdGvm~9)h=U>g@?d"Pd@r+Z?k}yYBX%5ͩK煺<, ϴaZ}\3#GnZM ^w./_+RNGH*4o4掼AY y,bX 8 EF9+{.RIτQGiA4G6q% %&oQP"j4%;^~Bb#c8igW Nc s?y(mi#12(^Bn:XeKil)z|}٫>hDc5LڳGꪂqcq)4u)ƾ}"I*>P:@d+۴<{;ĻCs`w^2;RdHC;oT $nnkJWZ>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18014 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18015 0 obj <> stream q /X1 Do Q q endstream endobj 18016 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18017 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18018 0 obj <> stream H[6+-Z&mI7EC6[U4"Zñ-AФ8:C _cϞݼy,aϟeWU-b:q*IekOVE 8+Yt{wxY?M,n~C6z1ndM$2 k2dlN{z*y7ZdջުT{U5ʺڹmv-,?TWӏ$jD'iXkzfN$HƂ}b [" ["},'2Xs0=EP5 c͹XA-֜HP+j\DZAP5pb͹kEXA-֜HP+j\DZAP5pb͹kEX[Fkj\az9Wk"Śsj%A-֜HP+ j.Z9>Vb͹k"Śsj%A-֜HP+ j.Z9>Vb͹kHb͹XA-֜+L5 c \Xs."}@"ŚsjA-EP5"*Z9>Vb \Xs."}@"ŚsjA-EP5"*Z9>VbmiZ9Wk"Śs\azKΖыit3 te5c\8eqMʪ~t6l-)w%{|*}p61o23O=uvl7쫦hKɠtQ7˼;I}uIZCOlPBV|;ɛ+MM_M.֧-ݿibm-\vsY>~xO~eaSxʏ/_Wl ~/US߰jP4^l~|MUX`tͪ>u1xưl_:\dW\47X7G^mD`\/N3{~7yϷg;Q@ǘúi0xCrMC%vXJ1>ɴݽ0f`p`5`Yr! Q0h\0hO#a;׋vWGYໟrBf β&~'C%,aI,j;*XPY]auE?[Qj޹>m#ha#b߉} uЉ,xɘ*s$9p]#v0 q 9P/Iv d=M$I Gu} Սs`ucGQnW`n9;;{99.s{qIQx纭NN1>Ift\"~1)%Fth>۳Yᧇvϑm^29f1c;L_CM zNO+ PƧ'\EWl% 鍬{;^=CvkzR9:wk˛&v5P[|[{LzuwID?ujV~F pûwׅ]1.Y_@}pq~a.6gNeѷಱ6뗧q[}nbn`%AcpdCvH yite`Яendstream endobj 18019 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18020 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18021 0 obj <> endobj 18022 0 obj <> stream q /X1 Do Q q endstream endobj 18023 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18024 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18025 0 obj <> stream H|Wko_:hbhz\$! Zl%zSCs&FQ[-g5?fazYכYYLMƿw~D㉽uƚ<*iHbJSɓLV(ϳ$Ndjl؞\3;ˊ#èjj[g.MF^5Uxi >sw^aK:̈́ntE|A?ӿȯOYRN |,QJN9+ĘIXjn6/1b9)wʽr{{+}rrrrrrrrr_r_r_r_VbȁJYڽĈZ+1ficv/1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+UAk%,^b{1K@k%,^փJYj@k%,^փJYj@k%,^փJYj@k%,^փJYj* cv/1bJYڽĘKXcpZ@k%,^6JXcpZ@k%,^6JXcpZ@k%,^6JXcpZ@k%,^6Jlcv/1bJYڽĘܛ dYևD*KiVZAi@+UZ)JV2Li@+WZ9ʕV UBi@TZ%*KĘ$Ɨ5eZVi9唖Z*^bڐ@%,r@%v YJ ^bZ*^b ֐@%,r@%v: YR˃KYZKb|Z*^b|Z*^b|Z*^b|Z*^b|EZ*^b|EZ*^b|Z*^b|Z*^b|Z*^b|Zc֒_}_}_}_}}}߁}߁}́}̵Ę$GnrܗqY$OtDk& di1Ua\€|$UdBh}OjMsuܺj,fv[c~mih ~n >y4#[~ %)'i0?-HHvG<='vQaMԴ_t7ۖ?:w'fgڇڬeqOG_GSZn;¯ݷxf=3LCEP;iOG9̥_fU=}mvmbCd#>i4 E#d.d7fWK:N}\׍^ܪW˓[G(u[9 KwRO?PNyׯ5! =Y^Ba|h)Ioz[;d,ښw4Hs3+\77޼;8+Լ7boܕ٧tqӅ9}=-=K~Swϊ1o6떟ة]<>|jc&;xÿ=yGg O~wt}HVn&~j-Ku\{X>JY%`) @+(hJ+ZʀV2)hJ+Z*V U(hJZr֒ĈeUZhY倖SZh;{1 h;{1 h;{1 h;{1 h;{1 h;{1 h;{1 h{{1KkIX cR cR cR cR cR cR cR cR cR c֒@%,r@%,r@%,r@%,r@%,r@%,r@%,r@%,r@%,rKYZKb2tX5{5yd_+? ?d6GK2o?uׅ\|ºdʹ,Nl jpXwçiZmVXG<,NLy/ȷ$74]u(a`Cf\"Vm:~R?/Pc^#۞jiw q. !)!*p Lίϧ" w{/èCDrbC kj^F_q7 CܳѽҬ oǪnו蕧Try|ʂTPhi8כAJk~q>)=Hfs@^ft @F9rvM[WY*VY&ӵf!Bhb`?IyDL\$ꤺq2ZM^9SYOw9J*2w06H#kfA+ږr'i&H`WØkrzseqk]MoctM.՜0,T`3 atv^[XS=m $793 f8X߀2g >> FY|j0hXJAsJ}WP>_NCDR1oqGսmeSWKh )Q㜰m"h ib i98}{:)M)d(s@-?.CT:Ip›mIԶ 3`#eŨz "ܼ<7@=YXi0s3B6MFF[idmNKL!W/WՐܮt41>5H텠)Yhs d X!'ERd$ Flގ V*rwPv?pH77?-XDϐXrEN|{…1\[(Ikl6j/,ˢaQ~<ڊˇ#tX1 2OE!![G1%< ۶zJYI=Д閥W2ҧ$ve6F8wzi@BUcӃ626#zmɵ aV"z[,?ߩm#44c2`Zl B)lhv\(ҵ㮚(=a\n,uU}h`jƪ|?g1endstream endobj 18026 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18027 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18028 0 obj <> endobj 18029 0 obj <> endobj 18030 0 obj <> endobj 18031 0 obj <> stream q /X1 Do Q q endstream endobj 18032 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18033 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18034 0 obj <> stream HWmo8_YE| i-([ճ%,7Ϳz19JE#jgftGv᯿|{oz}01_.$Q,Qö >uۀUYQ6eVx=͒}! @8T5,!X$2Z~0y c<؀= T&zYSx Oms8j0Mf"2>NGXNdFY1)su Dǐ : H#qC >( rmݹ6@1rg' c c/c/c/c/ c/ c}BO< >اcS}F<>gcs}N=`<`iumumٻ6@umٻ6D]պ6D=rB Q{OPkZ׆(ZNֵ!`節um"TET պ6D=rB Pj]j9Z׆(ZNֵAֵ!gEֵ!gwm"TET+պ6D= B Pj]jZ׆(ZAֵPkCS TET+պ6@um"{j]jZv$Z׆(kZ׆(kC޵PkCS$TET+ պ6@um"{j]j%Z(B Q{OPkCS$TEֵ!`Vum"{j]!Hպ6D]պ6D]|*RJ0Z7KM,\nk;6]^svEg͹|+,g>+5ͱWK$QusW]ݦb9߫GrTqp^rt;LEia2jewn{Casy:'NԔ&'K^xCg[C^s҃/BǕUG? eW.:æi~z:u!~XӐY4'6,#,cC@ebpx71Mg]c瓅q`njiVNwM??*곂hP#OnH}Y4Vu.˕=0f7.C `L#26`_ \q9̸XnX11uX"gbqWϫ95d8"Yf]E1O`R8AG-7W"sOہ;QY˜Evvpu@jF:Se]c C_q7Qx0d8vH;@kQm5ʤ]33Fyw/$Q@])% #$V}-$_&gc-P&Lb\;~E05S_^ۑc ,i׌8Ym^^Pe:= =a呜:8x+&/ZEOWR~®|;Bi[Gau}?z'CL&_MUw›?;k253ey,W]?R3y&,q8u8#ûґ{coorh>J9*,\wfr-DM"14?I MWmme9\"vx0*Վ,L{4 ֪NbrkhD@LPB&H!He]òhHKS ***݋ X_ǿ>'bX,2/2Ű=۵#`0պ#<~`z:12la N^qPr f R D. Z>0,n4`Tսcmk3ܸǛI$b5, _d~aMBEмj:~~KwCTd\n gb~@bB·}C}U14L0ۦ yEOն6ߒ{ml4_Yl2| DI~y,cSN?CX()ό(aⱨ=ncqx~tNr1}BYh M؁-F2w&FTUիJT1a[xy/in]B_Y|]`ЀG"C١n۫|q>v=l‘N>X(>6@_7 _5n 5nZNi 3LT- Cr:lWfp)BړǡN ѴMm-+YA"H˻<( 7:#Uzʐ)sh|LJbR޶q zϯ*(aOn-(ڢ"L,-o(YN Ù!gqH 8)R͗aVh\y ҡF^c΀ UIB\&s[Z(TJ Kp22Q Et8S kF?X)D>^z Y1rE'5m<Ty4T\ cI`v EPf(ƃ/'%/Gl>WXX)Vڛk(%JKQЇC^/\$?NiEQb/yHHʋQf12VNrp0S>&ۓ=|zSayKܹڀ[;7&%p@Hd0~b\΅S`*U˙ z'}谺sSR=QMϯv먄3^Rid 2qGD`INN RN2Yw۰?f1?'4Q,Lj\Taښ(>NB+aJF65(j&Jmך/-}|!aBts֭>]뎣+8W,ElN| @K4x L_U.d[lJg!%^⅋%ՐiQ+Ňo\gWcP73I\D &JXsD0ٗ2BW6i3O{2{YM6;n$_͗oV1UlB+{,qefBDD+9cahyX9dnJ8j!ηg1$LЯ||ڇ_cK,TKP!2O1c aw ?:uG=[J$iYyE*[H?U[gȁւͳa eݼ6٭](ЌH͸]݂T 9Ѫ_%I}ׇͯSʂߞ׫ 5D7 6Dweeylw9,8gp;GuT_.K8KfG4kfx"in5 \T5ϓwSΐ?`?/ Ʈ¤Sv9<',遄sme>& ir O.0ڶN  %^]ɉ<8A gيL,Y½lZ5׽>ShM  x[}5SNgw*vI9D1vT8 %}Mk+X_!Za o]ZA {`c~[h|+R,+EcN XXy*c} sPca|i*(dBŮN͊a\sdfٽEezq3egQ0dÚAwteࠁ ɩo \UvGxrGKETc)rQ  W0}D)Bkv]+Z7 @>̱bR 3~|endstream endobj 18035 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18036 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18037 0 obj <> endobj 18038 0 obj <> stream q /X1 Do Q q endstream endobj 18039 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18040 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18041 0 obj <> stream HWk6_!`hOI 4tm"Q&@c˱R[C/ Cϟ߼uL/^~/"*eӌySc}ۈ_#7qtU}X:f_f族,E/覤wGq(4+ǀEi0͒Ni(ǀ,P,PYzZӬPiVǀ4 Q#1Bk} Xk}Lk9Z,D}Zǀ4 Q#1Bk} Xk}Lk9Z,D}Z@\c1`!1 f} Xk}LkZ,D}Zǀ4 QV 1Bk} Xk}LkZ,D}Zǀ4 QV 1Bk}lIĵ>YzZӬPiV^J)7k2)靈i\ng$%ULae*,Sqc}U~GEJ3mfWhN~[pRH iD-aRtƦbTpO3P]8vno (YUe=mvPz}Fl)G$-r5iBE'[I6z&2jh~X]WwI䮓FD5*/kVRSZ8O]?N͌ ld8(fIé}o:8z+b|U}vdbV0ϴ[: mOۺu  u 6,ۋ4,B~>_L*Oh"~;"]Yfby/%]Z|+JibcK&Ųp>d2l^^H5+-Ѐe7eI 1L ~{ݙ3׺?.H^IԮ]skQq`"jwrMcJz9Byˑs9KepY~ØKM:PE3t؞1xȌ&6z6Jh mć t,U3s2Nwt퀧AʜG2Y#<2zLv=̼PZ7p(SeVjxr]N:~s؅4н.s:Fs&Œ7pU^Cc'#tEzk\W1ӁUcDdƥX տ}Evv Q-&8sr 6q 䰨Qwa`Cb 19.lߙ&zlBnpOm6o룽Xq{m Ʀjv'69M _jf>p<$ SBT-DJbǦr5>g3Y?X~gly "BKR0Ԍ_Wޖr3>cB&Tx7J`I_jY'k̓T57UlGѻJ_b1ՙ*Z/X[0[.b榶p [[] d^Û_߽|߻Ͽ浧5 ذA}d۬¹):vunUSܷj|qW~՟ǐ:||fWM4Tc}$߶n[@kUuUM$-P& WQ]M{n\qo* NXr_o`Kf[Ϫi¶CZe/&ly5J]砧m7Mjzװs#5NX&AgR_D-d,$ٛ HQ@- N䣮<  SgZ=U9ݮ^Cڴ+!aUTQoYbSdϸHS3KIA&ˤᷗ|,Ü,| b+T,W`\Ԙw=Vu4+(4S ~)Rx0)i]rCyp> B0F^>,p fLdqۈ GoE@ ڤ{ڬ]ɵ8H3's![_0:G/Bmҁf\ }iбu|} aQp|V G1dĽx4 s3IGå(+W 1aҘ\D.:b) >5I~N?,m߫p\lQ&Mr"veL4)3L?'0~K37C&Dnߔz$~ pZ*DrԬ.Xk`#j-Sn$׃mwW",s@[,v_|qͼDsٖH38zX! (UTbdT=nZ{W S k\$D+Љ~CENIs aW'r1JD!˾'9lѽ"b9ݴFK}ze~I ->]X I>9?tхBH㰱ZsZ\"QyZEy r:WC6'Ys/LNR^6hO?4)V\K.&˒@GToH疮\?QS}+~4'YjC߆4QV%5WHlaUY E@| a a"3o_ʁ9Fdž|^As ?82ъھ]vSZ]%#ؘHUjb@ǀO"CI@u cMcBayuTec5z?Fs:rKngA0j8"U6*n;t 4cgY(|)~94zLnaK0J"-(g'_^2Ra`+9OVwүѿ,mTln؟F9+B%Տ47IYTEhlv_"O9eM?'ke*B?i'>D0'Lb]VC>~;8|Kܽu:Ѷqӕu6+Y'mN $e>XvT.OyāXwcaQ?Z[6:z۴SYRTiyQ!8BS r#lpEkXyێ?ĝJk/@ Fo9AՃgl8'gdl[tWf B46., /D<PC2ɀ |߯F `QYhMzPָglw喟0Hr9zok=6ȝa:MPoܝ'| ֏~ 7Nѭa˹LZ(˅)ǛdSRYoL'4~;nq,^6S=Ư yMd3%, R`G) w'mkOI.'i ;Dwo~߼OR(endstream endobj 18042 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18043 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18044 0 obj <> endobj 18045 0 obj <> endobj 18046 0 obj <> endobj 18047 0 obj <> endobj 18048 0 obj <> endobj 18049 0 obj <> endobj 18050 0 obj <> endobj 18051 0 obj <> endobj 18052 0 obj <> endobj 18053 0 obj <> stream q /X1 Do Q q endstream endobj 18054 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18055 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18056 0 obj <> stream H|Wn8}WQE6 З4vƃ}H7%%')Y..yHT1?1L_~yC=:eK3晊SM %a6m56CfocS&A/C~o_*9(a$, 71z0]xs'$7_6PI\h)/l3W6['Y&+߇sWSzܴQ5WfuҭuI$Q ZH&Hb1gU5P BCO_ߧKnàTY,S)) hL)9%Dy$!bg Y)âڅS XQ/=Q/=QԧS2SO}ƨ<>S3sO}Ψ=S_2KO}ɨ<+RlHƵCbb\K1d),_=ŀŸbb{k),FZɸbb\K1d1=JƵCsd\K1`1k%Z!QV2R Yzϵq-ŐŨ\+Rl(ƵCbb\K1d),_=ŀŸbb{Uk),FZŸbb\K1d1=*ƵCsb\K1`1kZ!QV1R Yzϵq-ŐŨ\RlhƵCbb\K1d),_=ŀŸbb{Ռk),FZ͸bb\K1d1=jƵCsf\K1`1k5Z!QV3R Yzϵq-ŐŨ\Rlk),_=ŀŸbS Y2.R Y>x 7p 7 eYV} gq6MweiEIgZD߆y);F,KMḷ̌wkNcY{@ uھfqah~ܺQ㮚æFSm]vt/FQ_a삡5$.cpti̡3wUƪHąxJnLvn4ުft Nش..º_9謌Em v$qwQY\IR]RP֟ڭ6N1A TM x+?uRכ j8+eȴ̦J7VB:7Qtv<,S~vqt~;ٛEYb@BispwLpæOKc<f[3;=0i;~z;ƃ5N:pY8YzAd"Gdzf($-zmjGkͫimpl`W~ Ofhtm0c3yZyF" K"hZ:f`8CJ۸i\uջf4x"DɐR6XgYP\<_XCRY[4,0}Kmz7i)/ӹNyyTO>Ǵ#"z׎'p&&Nz".Iˬn(le[5 i/{"Npz ؊b- ΃85sEi6jdY7XvPJe,x쌥D`>e\.l;ad~ofkմS;܉k| ls۳'oV;;eP$It|B a*;8 I3.T(|ɀΎ,)0d"/׃ Ժ^N-qYx)a6.: }N[5{[K9 %ccc~In+wUKNpۛa9{Z]S t}5lP{qTџ^+X굥|.WL~ QunUG~.rҕ4 @b'C {gd@&A46:̙- Lv :pgÉpXL_G:obdWYwOm'WOӌHV)̧ $|LyDh=1U> %eXܻwN|ġ כ&c@WicSU { _䛦E~X;q9ERd@9u uC})* dGLuVU I\ :C</$h[YY$lf4w~7lk0yE Aۗ+VW(% 谭Ƭ;+Yl԰%0Rc"OnN|f&@2Oʼy&vm2IV?w$>˥0%GK.c7]@=#yH^ƏJafsW[f_l4 .SQ9(2FÑlĝG\@zRF~#d}d `a;hz{^5po<ݒaE0/xc|eO@tzdamimmݽZ5jXHBdE@jtyn@<67e#| gw6?@ׄ8xM0p! b[T yP9|my@ܝwOVU=6'nټw79ynPpR*𻽹nx5^h@ SsqN."v9_#.ko0mڕfD- fb+'"7[i덑wOΡ4i;$CDIş·سU׸HZnyw!LʆIګ"纱_ZO&a脌A_w]0sfnNq{$+Y˛ޑLjߘeIzZx(78Du ].5וT&(0}k3asC=DYF YHӕ1& W5=7,HJʹX}ve1Fi9]6sU+x}⌒nU"O+nC$w$:,4kUFq1&"{iflSEIAfGwЮFwסpcE t>4'L- ܞIBUj't$!}`Uӡi-8JJϸX 8W!V:ü޽ՙsmgm{QRpdf>k]0|4bm2뭂-o7`]endstream endobj 18057 0 obj <>/P 988 0 R/Type/Annot/A 44586 0 R/Subtype/Link/Rect[129.600006 663.229004 240.084 682.908997]/Border[0 0 0]/H/N>> endobj 18058 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18059 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18060 0 obj <> stream q /X1 Do Q q endstream endobj 18061 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18062 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18063 0 obj <> stream HWko8_ (z`LN7v'h`Pl:Vǒ<ܴ^zlV!ytsyu}77oY~//A1KRĜ%g`g/b?}M]SYSx9{n7+z},b"!Xs$L٪|=M"h=s[vq%x.?tmp1uV^ a|Kx8{aQ>_os6Dp)>K/KNwed.'8Q(!]ƀE.=\6,NzNzAzAzAzIzIzEWzEWzEWP;cB}O>!'P8SB}O >#gPx6"Lkc \6,µ6,W!Uoc"\kc";km Yzǵpp!P︖1drµ6,µ6,BZNƐEw\ k9ZCq-'\kc'\6,µ6,W!Uoc"\kc";km Yzǵpp!PV1d µ6,µ6,BZAƐEw\+kZCq \kc' \6,µ6,W!Uoc"\kc";km Yzǵpp!PV1dJµ6,µ6,BZIƐEw\+ k%ZCq$\kc\6,µ6,W!UYIEs]zoVj^0<"1㌭JϿ}b3@ZF-+M;ݲbEyRW]uuяBĕް]\Dyo^Wk6O/9`|[Z,҉]Ĵ$P2$SH ˱ ojZC{;< @Tui4ۻ1T(#$/y Tk8+D u(Bu2 M4I<y' Fn)N50&(2 0F[q-Uimˡ iY~Y<`̓]~8芽࿜k4iW7FǺkwK`C 1k|HPs y3 X! 4KhhBO@gY?<PlY!yu*+⹁95X3rOO(OXp'rP5fL߯_82v nRB-dM KX\dw"y6VdpQ:N"f0Ru GuB i nf{4X4`fm'#%VF RV~TDXv mS/,dZB2M |>6@ զC&>7_;>|NgV(צ {X ^xەyǪ!S?^s;RUہx˷#@ӥL}{3ׂ&4Q5BS؛2F?"ͦ-StsET $jy01{Z\k<$:[_MFR}&!#o16X.x'<.|meT7עn֪ypPfp,9֣֗$i(Γb `"!}YZ(dz`Q.HO3ƪT=뜝I]GN s<<;I~Vo="rs> C/8< Ny.Ns+@&|s&TI0HqSH靁 xґA1 oB %\ucs"jJQM B`‹{i.}6+EHgeU1dJ.V> *](yَ`JkN3y|;V %(ͳ2Kzg+||Hʓ_br؊ HygY~jL(nn42cBK۔,$ \pSݪoA x7m3XC8^K JI$3tbj2z`}{ۻ~ 0֚endstream endobj 18064 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18065 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18066 0 obj <> endobj 18067 0 obj <> stream q /X1 Do Q q endstream endobj 18068 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18069 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18070 0 obj <> stream HW]oF}ׯУ`yG; \$h6>tŭ-; ~IYs9vMR<$uiO?}QbTKmb'Uj Pj Q DQ-!aV16@16D1*FԆ(}ZŨL36D Pj Q){jCTʞŨŰOTRj5ZjZjC>QfTKmb'Ռj Pj Q DQ-!aV36@16D1jFԆ(}Zͨ06D Pj Q){jCTʞŨŰOTkRj ZjZjC>QaTKmb'5j Pj Q DQ-!a06@16D1FԆ(}Zè26D Pj Q){jCT>! zfo7fron3)F3<5e;W6ON\ooɟ_#24+~U{r*m 3jmKҮ*O*')1kgb~&קt{iښ~< dU)BtQ|m$z_z"1w]7ƪe)TpPi> BLɼm~uQR 3{Ox (]1y66wl qO4) V<@3_>F`.gt'CSJ1~P3ύm 5slwu[-& MzQfۼ_nm$rWZ|Bu{TN4[̎ Z 6wꈬ?J֙~xk]ktUX~`*ZP37iJa٣ëFrhtcZ‡n)2 5E`o4,LmLZcGX6itoGISBLH~9 Wʹ^y>Pcb"Rj>뎕y*J!i3(c9L* 0ɔBE|.U%^Mw\Nշm p*XP6ޗڊ*&߬-ZD ֭9}xO=3Cz Y@X.K:9q%B(s jpU,*/Xe#0nnSoqޒ vhT4|f%jY \>(LB[͏uB.@Ų0+e}5IZ` t U<-cU:e9|nɞ E|.o}5:wFn?諨. vtemzs9y]‘] `q~a$Pӊ š!L$.'IYʏN@|ᅢ35PƇQXzBg*$a?}T{q0"L_9풒r-pGI' >PA8ʭ/S? |Y1]lKҵV7}&8"FP̡Ja,\쫩W,|c?}=bm] Xb@ xiÖ47< Iy+e I#a[|H!lLWŴvˁ`yɞjn.Xoi U~lV T*\u%]NPNwuuŔݿhW^<~:]4QOc,TP Hy-5;vp^űHj^ YT0>] V%ۿJ ѻuSRۗa%\^1GgNFxzGNku̎_GLfÆZD5m3β8espk7h3F7n>E 6uq.I}eC4p6W\rd>>5;؝IZCԱnL^[U;VF,jxnx+/q>endstream endobj 18071 0 obj <>/P 151 0 R/Type/Annot/A 18133 0 R/Subtype/Link/Rect[154.800003 665.190979 385.091003 677.221008]/Border[0 0 0]/H/N>> endobj 18072 0 obj <>/P 151 0 R/Type/Annot/A 18132 0 R/Subtype/Link/Rect[154.800003 652.190979 323.790009 664.221008]/Border[0 0 0]/H/N>> endobj 18073 0 obj <>/P 151 0 R/Type/Annot/A 18131 0 R/Subtype/Link/Rect[154.800003 639.190979 347.709991 651.221008]/Border[0 0 0]/H/N>> endobj 18074 0 obj <>/P 151 0 R/Type/Annot/A 18130 0 R/Subtype/Link/Rect[154.800003 626.190979 287.420013 638.221008]/Border[0 0 0]/H/N>> endobj 18075 0 obj <>/P 151 0 R/Type/Annot/A 18129 0 R/Subtype/Link/Rect[154.800003 613.190979 337.200012 625.221008]/Border[0 0 0]/H/N>> endobj 18076 0 obj <>/P 151 0 R/Type/Annot/A 18128 0 R/Subtype/Link/Rect[154.800003 600.190979 304.299988 612.221008]/Border[0 0 0]/H/N>> endobj 18077 0 obj <>/P 151 0 R/Type/Annot/A 18127 0 R/Subtype/Link/Rect[154.800003 587.190979 344.359009 599.221008]/Border[0 0 0]/H/N>> endobj 18078 0 obj <>/P 151 0 R/Type/Annot/A 18126 0 R/Subtype/Link/Rect[154.800003 574.190979 313.889008 586.221008]/Border[0 0 0]/H/N>> endobj 18079 0 obj <>/P 151 0 R/Type/Annot/A 18125 0 R/Subtype/Link/Rect[154.800003 561.190979 319.079987 573.221008]/Border[0 0 0]/H/N>> endobj 18080 0 obj <>/P 151 0 R/Type/Annot/A 18124 0 R/Subtype/Link/Rect[154.800003 548.190979 371.059998 560.221008]/Border[0 0 0]/H/N>> endobj 18081 0 obj <>/P 151 0 R/Type/Annot/A 18123 0 R/Subtype/Link/Rect[154.800003 535.190979 282.959991 547.221008]/Border[0 0 0]/H/N>> endobj 18082 0 obj <>/P 151 0 R/Type/Annot/A 18122 0 R/Subtype/Link/Rect[129.600006 510.490997 487.459991 522.890991]/Border[0 0 0]/H/N>> endobj 18083 0 obj <>/P 151 0 R/Type/Annot/A 18120 0 R/Subtype/Link/Rect[154.800003 492.290985 292.130005 504.321014]/Border[0 0 0]/H/N>> endobj 18084 0 obj <>/P 151 0 R/Type/Annot/A 18119 0 R/Subtype/Link/Rect[154.800003 479.290985 304.651001 491.321014]/Border[0 0 0]/H/N>> endobj 18085 0 obj <>/P 151 0 R/Type/Annot/A 18118 0 R/Subtype/Link/Rect[154.800995 466.290985 329.520996 478.321014]/Border[0 0 0]/H/N>> endobj 18086 0 obj <>/P 151 0 R/Type/Annot/A 18117 0 R/Subtype/Link/Rect[154.800995 453.290985 289.341003 465.321014]/Border[0 0 0]/H/N>> endobj 18087 0 obj <>/P 151 0 R/Type/Annot/A 18116 0 R/Subtype/Link/Rect[154.800995 440.290985 361.341003 452.321014]/Border[0 0 0]/H/N>> endobj 18088 0 obj <>/P 151 0 R/Type/Annot/A 18115 0 R/Subtype/Link/Rect[154.800995 427.290985 364.071014 439.321014]/Border[0 0 0]/H/N>> endobj 18089 0 obj <>/P 151 0 R/Type/Annot/A 18114 0 R/Subtype/Link/Rect[154.800995 414.290985 318.240997 426.321014]/Border[0 0 0]/H/N>> endobj 18090 0 obj <>/P 151 0 R/Type/Annot/A 18113 0 R/Subtype/Link/Rect[154.800003 401.290985 319.369995 413.321014]/Border[0 0 0]/H/N>> endobj 18091 0 obj <>/P 151 0 R/Type/Annot/A 18112 0 R/Subtype/Link/Rect[154.800003 388.290985 334.920013 400.321014]/Border[0 0 0]/H/N>> endobj 18092 0 obj <>/P 151 0 R/Type/Annot/A 18111 0 R/Subtype/Link/Rect[154.800003 375.290985 356.040985 387.321014]/Border[0 0 0]/H/N>> endobj 18093 0 obj <>/P 151 0 R/Type/Annot/A 18110 0 R/Subtype/Link/Rect[154.800995 362.290985 282.960999 374.321014]/Border[0 0 0]/H/N>> endobj 18094 0 obj <>/P 151 0 R/Type/Annot/A 18109 0 R/Subtype/Link/Rect[129.600998 337.591003 487.460999 349.98999]/Border[0 0 0]/H/N>> endobj 18095 0 obj <>/P 151 0 R/Type/Annot/A 37651 0 R/Subtype/Link/Rect[154.800995 319.390991 292.131012 331.420013]/Border[0 0 0]/H/N>> endobj 18096 0 obj <>/P 151 0 R/Type/Annot/A 37647 0 R/Subtype/Link/Rect[154.800995 306.390991 307.790985 318.420013]/Border[0 0 0]/H/N>> endobj 18097 0 obj <>/P 151 0 R/Type/Annot/A 18121 0 R/Subtype/Link/Rect[154.800995 293.390991 333.401001 305.420013]/Border[0 0 0]/H/N>> endobj 18098 0 obj <>/P 151 0 R/Type/Annot/A 37642 0 R/Subtype/Link/Rect[154.800995 280.390991 362.141998 293.320007]/Border[0 0 0]/H/N>> endobj 18099 0 obj <>/P 151 0 R/Type/Annot/A 37640 0 R/Subtype/Link/Rect[154.800995 267.390991 316.932007 279.420013]/Border[0 0 0]/H/N>> endobj 18100 0 obj <>/P 151 0 R/Type/Annot/A 37636 0 R/Subtype/Link/Rect[154.800995 254.391006 392.871002 266.420013]/Border[0 0 0]/H/N>> endobj 18101 0 obj <>/P 151 0 R/Type/Annot/A 24988 0 R/Subtype/Link/Rect[154.800995 241.389999 316.071014 253.419998]/Border[0 0 0]/H/N>> endobj 18102 0 obj <>/P 151 0 R/Type/Annot/A 37631 0 R/Subtype/Link/Rect[154.800995 228.389999 325.200989 240.419998]/Border[0 0 0]/H/N>> endobj 18103 0 obj <>/P 151 0 R/Type/Annot/A 37630 0 R/Subtype/Link/Rect[154.800995 215.389999 342.300995 227.419998]/Border[0 0 0]/H/N>> endobj 18104 0 obj <>/P 151 0 R/Type/Annot/A 24248 0 R/Subtype/Link/Rect[154.800995 202.389999 394.591003 214.419998]/Border[0 0 0]/H/N>> endobj 18105 0 obj <>/P 151 0 R/Type/Annot/A 37626 0 R/Subtype/Link/Rect[154.800995 189.389999 424.59201 201.419998]/Border[0 0 0]/H/N>> endobj 18106 0 obj <>/P 151 0 R/Type/Annot/A 37617 0 R/Subtype/Link/Rect[154.800995 176.389999 282.962006 188.419998]/Border[0 0 0]/H/N>> endobj 18107 0 obj <>/P 151 0 R/Type/Annot/A 37616 0 R/Subtype/Link/Rect[129.602005 151.690002 487.462006 164.089996]/Border[0 0 0]/H/N>> endobj 18108 0 obj <>/P 151 0 R/Type/Annot/A 22599 0 R/Subtype/Link/Rect[154.802002 133.490005 292.131989 145.520004]/Border[0 0 0]/H/N>> endobj 18109 0 obj <> endobj 18110 0 obj <> endobj 18111 0 obj <> endobj 18112 0 obj <> endobj 18113 0 obj <> endobj 18114 0 obj <> endobj 18115 0 obj <> endobj 18116 0 obj <> endobj 18117 0 obj <> endobj 18118 0 obj <> endobj 18119 0 obj <> endobj 18120 0 obj <> endobj 18121 0 obj <> endobj 18122 0 obj <> endobj 18123 0 obj <> endobj 18124 0 obj <> endobj 18125 0 obj <> endobj 18126 0 obj <> endobj 18127 0 obj <> endobj 18128 0 obj <> endobj 18129 0 obj <> endobj 18130 0 obj <> endobj 18131 0 obj <> endobj 18132 0 obj <> endobj 18133 0 obj <> endobj 18134 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18135 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18136 0 obj <> stream q /X1 Do Q q endstream endobj 18137 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18138 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18139 0 obj <> stream HWmo6}w %in ]ɕ1oRZArR‡ ϒV1b'wO]ONvk:J7@+9}U4L Pz%2%hUM}JޔC+>VP#D|w)R 6N HØ_FpꋚJ K'}UdπPs%eYrU'PΎBdrffoAN``$#soa>_:gȜ"BĞm]uaG½8] kXnx> !kaBʕ/HOWi'N}_Q c[_ }aHd!d_ z$BnE݆`˵1l'Eg.9T 27p3JdeJ'ɆRU 2n#T@1fB+ hFR<0nDg&E f$f?wׂ.OUFޠH[~* HhC1xm"i43 of0 JW8MWcr-i VHLnif2 Uh/beDӫ~Ps*0+Jc'7e P4`:/*Y|0мQ 3}BOW$}n)2Gd? @Db{сSay\@É+bؔFKdc'Uxp%DZ13m3m}|̼x0԰ϾF `yX\g|Tlb M7L ӽufOkc z) !witeOGGURPQ́LK3* UԘUuGx] -:$i-WӿC#,EUԂGc$ud2%9MQAr5 v=~~@~ǨD0(R:1 43qi]h&a\K'jgC bhI+f" PfZendstream endobj 18140 0 obj <>/P 528 0 R/Type/Annot/A 18145 0 R/Subtype/Link/Rect[129.080002 539.039978 378.079987 674.039978]/Border[0 0 0]/H/N>> endobj 18141 0 obj <>/P 528 0 R/Type/Annot/A 18144 0 R/Subtype/Link/Rect[93.5999985 440.627991 199.356003 460.308014]/Border[0 0 0]/H/N>> endobj 18142 0 obj <>/P 528 0 R/Type/Annot/A 18143 0 R/Subtype/Link/Rect[93.5998001 289.428009 402.838989 309.108002]/Border[0 0 0]/H/N>> endobj 18143 0 obj <> endobj 18144 0 obj <> endobj 18145 0 obj <> endobj 18146 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18147 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18148 0 obj <> endobj 18149 0 obj <> endobj 18150 0 obj <> endobj 18151 0 obj <> endobj 18152 0 obj <> endobj 18153 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18154 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18155 0 obj <> endobj 18156 0 obj <> endobj 18157 0 obj <> endobj 18158 0 obj <> endobj 18159 0 obj <> stream q /X1 Do Q q endstream endobj 18160 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18161 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18162 0 obj <> stream HWko8_!`8_z4Iw; b϶m(RkKKn&{/EyAQ'{u~oŋׯ(|+Ƴ TXI,އU_ap~[V\֫z[v[m2&x5 gN<=LYal|Ly[Ux\hSggod,OO|=}3TY5? YW|0E wmјQKQxQW bܐ| K Coa&9 aɘ #E)>AU0 2r29Ibs1`q Y`9Ż^x^x%^z%^z%^z^y^y5^{5^{5^{cB}쩏 >!'PxB}O >%ԧPy3BYNց \bջ׺|.,_p!PVu1d= µ.,µ.,BZAŐE\+׺׺kZCs \b"\b"{k] YzϵpIŐw1`u1d] YzZCs$\b"{k] Xk] Yzϵp!PVu1`u1d=Jµ.,BZIŀEŐE\+ ׺k%Z[p!Wb"\bջ|.,µ.,BZEŐE\׺׺kZCs"\b"\b"{Uk] Yzϵpp!PVu1d=*µ.4ZCŀEŐw1d3e #4,8xC#ÃaglLnf^]{o׳^l;b8UU=RpRom6jUV_[,>ސ mw][yWVe{T]N:IjޖuSJ!&e>jebkBN3NօYeϼozzHm-0[Wߴ۳t;3s\J.eG,p\ɢ^]86ZnZ`/yֳ 5Ǐ80||H8B" l.R͍$x3%M~R*Ƶjs42S'k2lEe)Sˑ򭑛I!a{`_It!Emشi:잽CD.̋y,jXG!s>d/˅4dP*XmM\GLEc9e/PʼZ;)ۨ7a㾰 M=ɜ36[łpݭPJmabm>B 5Ϊ=)%i}B%jSX24{1czE>=,.1\ԡ xaٲک }_RE{cjxՉ³YCUnԍXgql6sT͗U?+G}nY.{b9:Xx$V4e%[Y{33H U=ٸ}c#ro0/#0uҡ,G &<^GѢ*]%A<(Iro6lc_>q=~d]̮g%q 99*p` %|bLQsذ'w5@m2fݳ?KS3aw-M A?އ8T2mU9{#6IBcoymwBobh^m>7e_D3px[2=FEa4)J9ٛhpRmq^t{£=Dҥ>}¶+;42)Rx \йu7\38)`l9>6SӜ!߂ FO (ꭃ`Z@΂ww#Vy|r]k1B;%r^F*=qB *?|l |JS;z5ոBKJ[EHFz8d m(ѥ$`2lMnn1RX8JȀE?$-((]xz\ВAɳo*zjС"2Sg2^f Y=ͪ+2O Oݥ֑9KKS}mGGIO@F{@r^9>ygT6pKi~T%`()'geFCFw~P XgM$^^a}$p- 9AxXrxBgB 5t8"MX!TFoƻӂaޞ`Fk_j᚜nG$=܌~d#z+LNT -h_JxK9tP #:~nN&8[*Ft7pS4Sm9%Q~FnJ򘛪;;-F轪]9ʐ7%yvڭSų% !ޡwFGD*pX))3JJ,ѢƲuۘG3`JIx"x恝]}7';4!R0ZI"<+pؓ w/0 wKft8ӾEp,4nͮo6첮zYM\].6QK] :y|iN'#Y}` endstream endobj 18163 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18164 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18165 0 obj <> endobj 18166 0 obj <> endobj 18167 0 obj <> endobj 18168 0 obj <> endobj 18169 0 obj <> endobj 18170 0 obj <> endobj 18171 0 obj <> endobj 18172 0 obj <> endobj 18173 0 obj <> stream Adobe PDF library 6.66 2005-10-31T16:41:56-05:00 2005-11-01T16:28:31Z Illustrator 2005-10-31T16:41:56-05:00 JPEG 256 224 /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA4AEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYqpXNzb2tvLc3EixW8KmSWVzRVVRUkk9gMBIAss8eOU5CMRcjyeA+evzx1jUZ5bPy47afpwqv1 sClxL/lA/wC6x4U+L37Zp8+tlLaOwfS+yPZHFiAnqBx5O7+Efr+773mN1eXd3KZrueS4lPWSV2dj 9LEnMIm3r8eKEBUQIjy2RujeZvMGiyrLpWoT2jKa8Y3PA71+JDVGHsRkoZJRNg04+q0GDUCssIy9 43+fN7r+WP5wReYZU0jWglvq5FIJl+GO4I7U/Zk9uh7U6ZtdNrOL0y5vnPb/ALMnSg5cNyxdR1j+ sfd9r0/M95B2KuxViH5h/mNpnk+xXkoudUuATaWQNNunqSH9lAfv6DuRjanUjGP6TvOxOw8munt6 ccecv0Dz+589eYvzB83eYJme/wBRlELGq2kLGKBR4BFO9PFqn3zTZM858y+oaHsXS6YVCAvvO5+f 6mPxySROJI3KOu6upII+RGVO0lEEUdwzjyh+cHmzQZo47m4fVNNBAe1uWLOF/wCK5TVlPhWo9sys OrnDzDzvafsxptSCYjw8nfH9I5fpfRPlzzFpfmHSYdU0yX1LeXYg7Ojj7SOOzL/ntm5xZRONh8s1 2hyaXKceQVIfb5jyTPLHEdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVeP/wDOQfmi W2sbLy7buVN7W5vaGlYkaka/JnBJ/wBUZre0MvKL3XsV2eJzlnl/B6Y+88z8vveEZqn0d2KuxVfD NLDMk0LmOWJg8cimjKymoII7g4WMoiQIO4L638j+Yf8AEXlXTtWagmnjpcAdBLGSkm3YFlJHtnQa fJxwBfEe1tF+V1M8XSJ29x3H2J7lzrlOeaKCGSeVuMUSl5GPZVFSfuwE0LLKETIgDmXyH5r8xXfm LX7zVrknlcOTEh/YiG0aD/VX+uc7kyGciS+49naGOlwRxR/hG/mepSjK3OdirsVelfkV5nl03zWN Jkc/UtWUpxPRZ0BaNvpAK/SPDM3RZeGddC8l7X9njLpvFH14/wDcnn+t9G5unyt2KuxV2KuxV2Ku xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV86f85A+p/jmHlXj9Rh4V6U9STp9Nc0uv/vPg+p+xdfkz /wAMP3ReZ5hPXOxV2KuxV9IfkIso8hAv9k3cxi/1aKP+JVzc9n/3fxfKPbEj87t/Mj+l6Pmc8qk3 nMSHyfrojr6h0+64U68vQelMqz/RL3Fz+y6/NYr5eJD/AHQfIOc6+5OxV2KuxVPvIfqf430D0/tf pC2r/q+svL8MtwfXH3h1vbFfk8t/6nL7i+uc6J8QdirsVdirsVdirsVdirsVdirsVdirsVdirsVd irsVdirsVeRf85A+VpbvTbPzDbJyawrBeAbn0ZDVH+SPUf7LNb2hisCQe49i+0BDJLBL+PePvHMf Efc8FzVPpLsVdirPvym/LweatVe5vlI0WxINxSo9aQ7rCGFKbbsR0HzrmXpdP4kt/pDzXtJ23+Tx CMP72fLyH879X7H0pa2ttaW0dtaxJBbwqEiijAVVUdgBm7jEAUHybJklORlI3I9Sq4WDsVeHfnV+ WlraQt5n0aERRcgNStYxRQXO06gdNzRgPn45qdbphH1R5dX0T2U7elM/l8xs/wABP+5/V8u54zmu e9dirsVemfkT5Wm1LzT+mJEP1HSQWDno07qVRR/qglvag8czdDi4p30DyPtf2gMWm8IH15P9yOf6 vm+i83T5Y7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqp3EENxBJBOiywyqUljYVVl YUIIPYjAQCKLKEzEiUTRDwbz3+Rep2c8l75YU3tixLGxJHrxd6IT/eL4ftfPrmoz6GUd47h9J7H9 r8eSIhqfRP8Anfwn39x+z3cnl97pep2EjR31pNayKaMk0bRkH3DAZgkEbF7DFqMeQXCUZDyIKYaN 5N806zKI9N0y4nqaGTgVjH+tI3FB9JycMUpchbjartTTYBeScR8d/kN30x+XflZ/LHlS00ubgbwF pbx49w0sjV67V4rxWvtm802LggAeb5H232iNXqZZBfDyjfcPxfxZLl7qXYq7FUNqen2+o6ddWFyv KC7ieGUf5LqVP68jOIkCD1bcGaWLJGcfqiQfk+WPMf5cecdAlcXmnSSW6na8twZYSPHko+Gv+UAc 0GTBOHMPsuh7d0mpA4JgS/mnY/t+FsdjtriWT0ooneUGhRVJavToN8qdpLJECyQAznyj+TXmzXJ0 kvYH0nTqgyT3KlZCPCOI0Yn3agzKxaSc/IPOdp+1Om08SIHxMndHl8Ty+Vl9D+XvL2l+X9Jh0vTI vTtoR1O7ux+07ttVm/z2zcY8YgKD5frdbk1OU5MhuR+zyHkmWWOI7FXYq7FXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FVkssUUbSyuscaAs7sQqgDqST0wE1zTGJkaG5Yzd/mj+X9rKYpdbty 42PpcpV2/wAqNXX8coOrxjq7fH7P66YsYpfHb76TDR/OPlbWWCaZqlvcykVEKuBLT/jG1H/DJwzw lyLjarsvU4N8mOUR31t8+Sc5a4DsVdirsVdiqWaz5l0DRUD6rqEFnyFVWVwHYf5Kfab6Blc8sYcy 5el0GfUGsUJS9w/SkMf5v/lzJL6a6ygbxaKdV/4Jowv45T+cxd/3uyl7M68C/DPzj+tk+narpmp2 4udOuory3O3qwOsi18CVJofbMiMxIWDbqM+nyYpcOSJjLzFIrJNLsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVSzzJ5h07y9o1xquoPxt7cfZH2nc7KiDuzH/OmV5cghGy5eh0WTU5R ix/VL7PMvmHzp+YGv+a7xpLyUxWKsTb6ehPpIO1Rtzb/ACj+GaLNnlkO76/2V2Lg0UKgLn1l1P6h 5MZyl265WZGDoSrKQVYGhBHQg4oIBFF7L+Vf5xTrPFonme45wvRbTU5SAUPZJnPVT2c9O+3TZaXW EemfLveC9ovZiPCc2nG/8UB184j9Hy8+39dxm1fPG8Vdiry/81fzZj0FX0bQ5Fk1phSecUZbYHt3 Bk9j075r9Vq+H0x5vYezvs2dSRlzCsXQfzv+O/e+fry8u725kuruZ7i5lPKWaVi7sfEsd81JJO5f TcWKOOIjACMR0CjgbEx0LzDrOhXy3ulXT2twtKlT8LAfsup+Fh7EZOEzE2C4us0WLUw4MsRKP45d z6Z/Lnz9aecNHM3EQala0S+tgdgSNpE78HoaV6dPc7vTagZB5vkfbnY0tDlrnjl9J/QfMMtzJdI7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq8H/5yH16WTVtP0NHIgt4frUyjoZZSVWv +qqbf62antDJchHufSPYnRgYp5j9Ujwj3Df7SfseQZrnuXYq7FXYqzryj+cHmvy7CloXXUdPSgS3 ualkUdo5AeQHsageGZWLVzhtzDznafsxptUTL6J98evvH9jOY/8AnI6xMNZNDlE23wrOpX3+IoD+ GZX8o/0ft/Y86fYad7ZRX9X9rFvM357eatVhe206NNIt32LRMZJ6Ht6pC0+aqD75Rl105bDYO40H shpsJEshOWQ79o/L9ZLzZmZmLMSzMakncknMJ6wCmsUuxV2Ksz/KLXZtI896dxYiG/cWU6fzCYhU +6TicydLPhyDz2dB7S6MZ9FPvgOIfDn9lvqTN8+OuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2Kvm/8+7eWLz4ZHFFntIXjPiAWQ/ipzSa4VkL6t7HTB0VDpM/oLzjMN6t2KuxV2KuxVUW 3uHTmsTsn8wUkbe+LA5Ig0SFPFm7FXYq7FXYqnnki2kufOWhwx15NfW5JXqFWVWY/QoJyzCLmB5u u7WyCGkyk/zJfc+u86N8PdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVeY/nl5Ln1n RItXsY/UvdKDGWNR8T27bvTx9MjlTwrmBrsPEOIdHrvZHtWODMcUzUMn2S6fPl8nztmnfU3Yq7FU z8u+XdU8w6tDpemxepcTHcnZEQfadz2Vf898njxmZoOJrtdj0uI5MhqI+3yHm+jPJ/5R+VPL0KSS 26alqVAXu7lQ4Df8VxmqpTsfte+bnDo4Q57l8q7T9pdTqiQD4eP+bH9J5n7vJm4AUAAUA2AHQDMt 54lj3mXyD5U8xxOuo2Keu/S8iAjnU+PqAb/Jqj2yjLpoT5h2mg7Z1OlI8OZ4f5p3j8v1UXzr+YH5 fan5P1JYpW+sadcVNnegUDU6o4/ZceGabPgOM0eT6n2L21j12Ox6ckfqj+keTFMod07FXYq9g/IT yXPNqDeabuMrbWweLT67c5WHF3H+Sikr8z7ZsdBhs8Z5B4X2x7VjGH5aJ9Ut5eQ6D4nf3e97vm2f OHYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq8r88/kZp2rTy6hoEqadeyEtJauD 9Wdj3HGpj+gEewzX59CJbx2ey7I9rsmADHnHHAdf4h+v7D5vMrz8mvzEtpeA0v117SQzQspp83DD 6RmCdJkHR67F7U6CYvjr3iX6ky0T8h/Ot9Kv6QEOl2+xd5HWWSn+SkRYV/1mGThoch57OLq/bDSY x+7vJLyFD5n9Re2eTPImh+UrIwaehe4lA+s3klDLIR8uijsozaYNPHGNub592r2xm1s+LIfSOURy H472R5e6p2KuxVL9c0LStc02XTtUgW4tZeqnYqw6MrDdWHiMhkxiYouTpNZk0+QZMZ4ZB4n5k/5x 91u3meTQLqO9tiapBOfSnUeHKnpt86r8s1eTQSH07voOh9tMMhWeJhLvG4/WPt97HE/Jb8yWYA6S EB6s1zbUH3SE5T+Ty933O2PtV2eB/ef7GX/Es18o/wDOPxjnS68z3SyIpDDT7Umjd6SSkLt4hR/s sycXZ55zee7S9tLBjp41/Sl+gfr+T2W2tre1t47a2jWG3hUJFEgCqqqKAADoBmzAAFB4PJklORlI 3I8yq4WDsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVSrzB5p0Dy9bC41e9jtUav pq1Wd6fyItWb6BleTNGH1FzdF2fn1UuHFEy+4e88mAXf/OQ/lSOQrbWF7OoI+MiOMHfeg5sfvzDP aMegL0uP2J1JHqnAfM/oTHRPzz8jalKsM8k2myMaBrpAIyf9eNnA+bUycNfA89nF1fsjrMQuIjkH 9E7/ACNfZb0CKWKaJJYXWSKQBo5EIZWU7ggjYg5mA3yeZlExNEUQvwsXYq7FXYq8o86/85N/lN5V upLKTUJNXvoWKy22los/BhsQ0rNHDUHqA5IxViEH/Oa/5dNKqz6Nq8UZ+1IqWzkf7H1lxV6t5D/N v8v/AD1Gf8O6tHcXSrzl0+UGG6QdyYnozAd2Wq++KswxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxV2KuxV2KuxV2Ksa/MDznbeU/L0mouolupD6NlAT9uVgSK/wCSoFW+7vlGozeHG+rtuxuy5a3O MY2iN5HuH6z0fLWsazqes6hLqGpXDXN3MavI56DsqjoqjsBmhlIyNnm+x6XS48EBjxjhiEFkXIdi r6L/ACJ80Q6j5V/Q8jj67pLFeJO7QSMWRh/qklfbbxzcaDLceHqHyv2v7POLU+KPoyf7oc/1/N6Z me8k7FXYq89/Pb8wbbyR+W+qah6gXUryNrHSYwfia5nUqHH/ABiWsh+VO+KvztxV2KonTtS1DTL6 C/065ktL62cSW9zA5jkRx0ZWUgg4q+7v+cdfzob8xvLk1tqnFPM2kBEv+ACrPG9QlwqjoTxIcDYN 4AgYq9dxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV89/wDOQeqy3Hmq006p9Cxt gwXt6kzEsf8AgVXNNr53Ou59P9itMI6aWTrOX2D9tvLMwXsnYq7FUz8u+YdU8v6tDqmmy+ncwncH dXQ/aRx3Vv8APfJwmYmw4mu0WPU4jjyC4n7PMeb6m8keaovNHly21hIfq7SlklgLBuLo3FqEdu4q M32DN4kbfG+1uzjo88sRPFXI+RT7LnWpT5r8w23lvyxquv3KNLBpVpNdvEmzOIUL8FPYtSmKvz2/ NX81vMf5j+Yf0rqxENtAGj07TYiTFbxE1oCacnb9tyPi9gAAqwrFXYq7FXqX/OM3mOfQ/wA5NC4O Vt9TZ9OukBoHS4QhAflMqN9GKv0CxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV8 6fn/AGE0HnWK6Yfuru0jKN25RsyMv0UB+nNLro1kvvfU/YzMJaQx6xmftovM8wnrnYq7FXYq+n/y X0+Sz/L3TjIOL3LS3FD/ACvIQp+lQDm80MaxjzfH/anMMmunX8ND5Df7WcZlvPMZ/M3SLjWfy68z aXbKXubzTLuK3RerSmFuC/S1Bir80cVdirsVdir0b/nHjRp9W/OXyxDECRbXX12Vh+ylqjTVPsSg H04q/Q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FWE/mt5GbzV5e42oH6VsSZrK u3Oo+OKvbmAKe4GYurweJHbmHoPZztf8nn9X93PaXl3H4fdb5ingmgmeCeNopo2KSRuCrKwNCCDu CM0b6/CYkAQbBU8DJ2Ksn8g+R9Q82a1HawqyWETK1/dfsxx16A/ztSij+AOXYMJySoOo7Z7WhosJ kfrP0jvP6h1fVdtbwW1vFbW6COCBFjijXoqIOKqPkBnQAACg+MZJmcjKRsk2VXCwdir4R/5yT/Ju 98k+a7jWtOtyfKuszNNbSRr8FtO55PbPTZd6mPxXbqpxV4zirsVbAJNBuTir7R/5xS/Jq88q6TN5 u16BoNb1eIRWdrIKPb2ZIerqRVXlZQSOygdyRir6CxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2KsR85flj5Y81Ez3cTW2oUoL63oshoKASAgq4+e/gcxs2ljk35F3fZfb+o0fpieK H808vh3PN7v/AJxy1ZZD9T1mCWOuxmieNqfJTJmFLs6XQh6zF7cYyPXjkD5EH9SZaL/zjrZxyrJr OqtcIDU29snpg08ZGLHf2UfPJw7O/nH5OJq/beZFYcfD5yN/Z+16to2iaTotilhpdslrax9I0HU/ zMTuzHxJrmwhjjAUA8XqtXlzzM8kjKR/HwR2Tcd2KuxVC6ppem6rp8+nanbR3lhdIY7i2mUPG6ns ynbFXzx50/5wt8s39xJdeVNXl0cuSwsLlPrUA/yUfkkqD/W54qw61/5wi83NccbvzHp8VvX+8ijm lelevBhEP+GxV7D+Wf8AzjB+X/kq7h1O49TXtaho0V1eKohicGoeG3FVVh2LMxHYjFXsOKuxV2Ku xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV 2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvnbyTqH5r+cJbuLTPMRhazVGlNzIygiQkDjwjk/lzSYTl yGhL7X1LtXD2ZoRE5MN8V/SO73yDKv8AA/55/wDU023/ACPm/wCyfMn8vn/nfaXS/wArdjf6hL/S x/4tI/Nq/nL5PsodUvvMC3Fu0oiBhkMlHILDkksSAg8T45TlGbGLMvtdj2aeyddM44YeGVXuK+0S L17yNrtzr3lPTdWuVVbi5irME2XmjFGIHapWubLT5DOAJeH7X0kdNqZ4o/TE7fewT89/M+v6H+g/ 0RfS2X1j616/pEDlw9HjWo7cjmLr8ko8NGuf6Ho/ZDs/BqPF8WInw8FX58SGh8l/nlLEkq+abcK6 hgDNNWhFf98ZAYM5F8X2lul2r2MCR4Ev9LH/AItd/gf89P8Aqabf/kfN/wBk+P5fP/O+0o/lbsb/ AFCX+lj/AMWhfyy87edB57m8q6/dfXQDPE5fiWjlgBYlXUAsp40ocjpc8/E4JG23t/snSfkhqcEe D6T7xLye05tXgXgN7rv5iax+ZOpeXdG1t7Wl1cLbrK5WJEi5NxqqO3Rdts0xnkllMRLqX0vFo9Bg 7PhqMuLi9MbrnZ+IT/8AwP8Ann/1NNt/yPm/7J8v/L5/532l1n8rdjf6hL/Sx/4t3+B/zz/6mm2/ 5Hzf9k+P5fP/ADvtK/yt2N/qEv8ASx/4t6V5Xs9astBtLXWrlbzVIlYXNyhLK5LkggsqH7JA6ZnY YyjECRsvJ9oZcOTPKWGPDjPId23xedfnd5t8x6BqOi/oe9ktfVWV5EUAq5Rk48lYEHrmDrssoyFG nqvZPs3T6mGXxYiVV8ObJPy6/M3TfNtr9XlC2utwrW4s6mjgdZIieq+I6r+Jv02qGTY/U6ntzsDJ opcQ9WE8pfoPn9/2M2zLefeRfnp5q8xaHd6Qmk38tms8cxmERA5FWSlajtXNbrskokUae49kOzsG ojkOWAlRjV/F6b5gt9TuNDvoNKlEGpSQutpMTxCyEfCa0NN/bM7KCYkR5vIaKeOOaMsgvGJDiHk8 p/wf+fP/AFf4/wDpIP8A1SzXeBqO/wC17T+U+xf9RP8Apf8AjzGNS1T82tP802/lmfXX/SVy0Sxl ZKx1m2WrcAfntlEpZRLhJN+92+DT9mZdMdRHEPDjfTfb4sn/AMH/AJ8/9X+P/pIP/VLL/A1Hf9rq P5T7F/1E/wCl/wCPPRvI9h5msdBWDzJdC81MSOzTK3McCfhFSF6fLM7TxnGNT5vK9rZtPkzcWnjw 46G3Ld555b82+ZLn857zRp9Qlk0tLi8RLQkcAsauUFKdqZhYssjnq9rP6XqNd2bp4dkxyxgBkMYb 9dyLex5tHhHjf5medfN7eeLbyl5euxYl/RjMgoGeaehHJyrFVAI+z71r21eqzz8Tgiae77A7K0o0 ctVnjx8/gI+Xf71v+D/z5/6v8f8A0kH/AKpYPA1Hf9rL+U+xf9RP+l/487/B/wCfP/V/j/6SD/1S x8DUd/2r/KfYv+on/S/8eTL8kvPmu+YP0hp+sz/WpbRY5be4Kqr8WJVlYqBXelD1y3RZ5SJEt3E9 rOx8Ol4J4hwiVgh6H5juJrfy9qlxA5jmhtJ5IpB1VliYqR8iMzMxqBI7i8voYCWeETuDOI+14Z5J n/NvzhFdyaZ5j9FbNkWX6zI6kmQMRx4RSfy5qcHi5LqXLzfRe1Ydl6ExGTDfFf0ju98gyX/A/wCe f/U023/I+b/snzI/L5/532l1H8rdjf6hL/Sx/wCLd/gf88/+pptv+R83/ZPj+Xz/AM77Sv8AK3Y3 +oS/0sf+LYZ+TvnjQvKt1qkmrNIq3aRLD6SF90LE1p/rZi6TPHGSS7/2n7JzayMBir0k3ZrnT07/ AJXv5A/37c/8iD/XM78/j83kP9B+u7o/6ZhX5s/mh5Z8y+W4dM0r13n+spM7SR8FVUVh3NSSWzG1 WqjkjQ73oPZv2f1Gk1ByZeEDhI2N86em/lTBND+XuipKhRzCzhW2PF5GdT9KsDmdoxWIPI+0UxLX ZSP533ABgH/OSX/TO/8AR5/zIzF7S/h+P6HpvYX/AC3+Z/v2RWv55+Qo7WGNpbnkiKrfuT1AA8cs jr4AAbuqyeyOtMiajz/nKv8AyvfyB/v25/5EH+uH8/j82H+g/Xd0f9MwD8uL5NZ/Oi41Wzjf6rNJ eXI5CjLHIrBS9K03YDMTTHiz2PN6btzCcHZIxTI4gIR+Irk+g83L5i+a5fMM/l784NV1WCxbUZIb u7UWiMUZufJa1CydK1+zmi8TgzGVXuX1mOijqeyseOUuAGEN/dXmPvZr/wAr31n/AKk65/5Hv/2T Zl/ygf5v2/see/0IYf8AlJj/AKUf8W9H8pa9Nr3l601aazbT5bn1OVo7FmT05WjFSVjO4Sv2e+Zu HJxxEqp5XtLRjTZ5YhLjEa9XfYB7z396cZa4Lw7/AJyLdk1HQXU0ZY5yp9w0ZzU9o/UH0T2HF48o PfH9Ke/mP+VU010fM3lIm01uBvWltoTw9Vwa+pEajjJ4jo3z626nSfxQ5ut7D9ohGP5fVerCdgT0 8j3j7vdyHflr+a0OvFdG1ulp5hiqlGHBZytQeKmnGQU+JPu8BPTavi9Mvqcft72dOm/e4fVgPx4f 1juPz84n/wA5H/73aF/xiuP+JR5j9o/UHdew30ZffH9L3LNs+duxV4Z50/8AJ86P/wAZbH9eajN/ jA94fReyv+MXJ7pvc827507FXgvlP/yf99/zFX//ABB80+H/ABj4n9L6T2j/AMYkP6uP7w96zcPm zwXzZ/5P+x/5irD/AIgmafN/jHxH6H0ns7/jEn/VyfeXvWbh82dirGPKH5d+XPKbzS6UspnuFCSz TSF2Kg1AoAq9fbMfDpo4zYdv2n23qNaAMtVHkAPwUy81/wDKL6x/zA3P/Jlsnn+iXuLidnf4zj/r x+8Pn38r/P8Ae+VYNQjttFl1YXbRMzRyMnp8AwAPGKWteXtmo02o8O9rt9O9oOxoayUDLKMfDfMX d1/SDOP+V76z/wBSdc/8j3/7Jsyv5QP837f2PO/6EMP/ACkx/wBKP+Lev5snh3z7+Q/l/RNYvNYX VbGG9WGOAxCdA4Usz1pXxpmm0OOMibFvp3thrc2COPwpShZldGu57B/yrvyL/wBWGy/5Ep/TNl+V x9zwv8t63/VZ/wCmK+HyD5JhkWWPQrEOu6kwRmh8RUHCNNjH8IYz7Z1khRyzr+sU+AAAAFAOgy51 rxX/AJyS/wCmd/6PP+ZGaztL+H4/ofQPYX/Lf5n+/eh2f5e+R3s4GbQ7Is0alj6K1JKj2zKhpsZA 2eXy9tawTP72fPvLyPz9+XE/kvU01/SrWPUdB51ltbpPWWHkaenIDuYz0V+o6E1oTr9RpjiPEN4v b9jduDX4zgyyOPNWxiavzHn3jl+jqH5Z+YfJesaaz+X7K30y7AH16wjRI5FI2DEqF9RfBv1HM7S5 Mch6RReP7e0WrwZKzylkj/DIkkfsPkzTMt0D5/8AL15aWf58ahPdzx28C3V8GllZUQVVwKsxA65p scgNQSe8/pfTNbilPsWEYgyPDDYb9z2v/Fflf/q8WP8A0kw/81ZtPHh/OHzfP/5O1P8Aqc/9Kf1O /wAV+V/+rxY/9JMP/NWPjw/nD5r/ACdqf9Tn/pT+pMLW7tbuBbi1mS4gevCaJg6GhoaMpINCKZZG QIsONkxyhLhkDGXcdniX/OR/+92hf8Yrj/iUeartH6g+g+w30ZffH9L3LNs+dvOfzL/KmDzADq+j UtPMEVGBU8EnKmo5EfZkH7L/AH+IwdTpOP1R+r73quwfaKWm/dZfVgPx4f2d4+Xnxjzr5r1rWbfT tO1yF01fRjNb3E0mzurFOPNT+2vA1PfbNZlyylQlzD33ZXZ2HBKeTCf3WXhIHdz5eW+3c+rc6F8X dirwzzp/5PnR/wDjLY/rzUZv8YHvD6L2V/xi5PdN7nm3fOnYq8F8p/8Ak/77/mKv/wDiD5p8P+Mf E/pfSe0f+MSH9XH94e9ZuHzZ4H5zkjt/z4sp7h1hgW4sXaWQhVChEqxY7ACmafOa1FnvH6H0rsqJ l2LKMdzwz+8vZ/8AFflf/q8WP/STD/zVmz8eH84fN4H+TtT/AKnP/Sn9Tv8AFflf/q8WP/STD/zV j48P5w+a/wAnan/U5/6U/qeYfkP5m8x6tqGp2+p3899bwQRtH67GQqzOR9tqtuB45gaHJKUiCSdn sPbDQafBCEscIwlKR5bdO56f5r/5RfWP+YG5/wCTLZn5/ol7i8f2d/jOP+vH7w8k/wCcftX0qwtN aF9ewWhkktzGJ5Uj5UWStORFaVzXaCcY8VmuX6Xt/bTTZcksXBGUqEuQJ7u563/ivyv/ANXix/6S Yf8AmrNj48P5w+bxH8nan/U5/wClP6nf4r8r/wDV4sf+kmH/AJqx8eH84fNf5O1P+pz/ANKf1JT5 J/LfQ/J8t3Lpk91M14qLKLl42AEZJHHhHH/NkMOmjjNi3O7V7dza4RGQRHDf03195LK8yHSuxV2K sX87/l5ovnH6l+k57mH6j6vo/VmjWvrcOXLmkn++xSmUZ9PHJV9Hcdk9t5tDxeGInjq+K+l9xHey WGNYokiWpVFCgnrQCmXAUKdTKVkl00MM8LwzRrLDIpSSNwGVlYUIYHYg4kXsVjIxIINEMDtPyX8s 2Gs/pfS77UNNuVkMkSW0sQjSprwAeJyU/wAlicxBooA2CQ9Jk9qtRkw+FkjjyRqvUDZ89pDfzFM+ AoAK198zHmXnms/kb5T1bVrvU7m7v0uLyV5pVjkhCBnNSFDQsafTmFPQwkSbO71Ol9rtVgxRxxjj 4YitxLp/nIL/AKF48l/8tupf8jYP+qGD+T4d5/Hwb/8ARtq/5uP5S/4p3/QvHkv/AJbdS/5Gwf8A VDH+T4d5/HwX/Rtq/wCbj+Uv+KZ75Y8u2Xl3Q7bRrJ5JLW15+m8xVpD6kjSHkVVB1c9sysWMQjwh 5vX62eqzSyzAEpVy5bADz7ko87flvofnCW0l1Oe6hazV1iFs8agiQgnlzjk/lyvNpo5DZtzuyu3c 2hEhjETxV9V9PcQyvMh0rsVYn5y/LPyx5sliuNQWWC7iHH61asqSMn8j8ldWA7bVzHzaWGQ2ebuu y+3tRogY46MT0luPeKIZZmQ6V2KsU1P8t9D1HzbbeaZ57pdQtWiaOJHjEJMJqtVMZb5/FmNLSxlP j3t3Wn7dzYtLLTAR4JXvve/xr7GV5kuldirEdP8Ayz0Gw84S+aoZ7ptRmkmlaJ3jMNZwQ1FEYanx bfFmNHSxE+Pe3d5+3s2TSjTER4AALo36fjX2MuzJdIxPzj+WflnzZPFc6is0N3Enpi5tnCOUBJCt yV1NCT2zHzaWGQ2ebuuy+3tRogY46MTvUhtf2FjX/QvHkv8A5bdS/wCRsH/VDKf5Ph3n8fB23+jb V/zcfyl/xTv+hePJf/LbqX/I2D/qhj/J8O8/j4L/AKNtX/Nx/KX/ABTMfJ/kbQPKdrNBpUb8rgqb i4mbnI/CvEEgKKCp2AzIw4I4xs6LtPtfPrZCWUj08gOQTjULKK+sLmxmLLFdRPDIyUDBZFKkrUEV ofDLJR4gR3uDhynHOMxziQfk82/6F48l/wDLbqX/ACNg/wCqGYf8nw7z+Pg9X/o21f8ANx/KX/FO /wChePJf/LbqX/I2D/qhj/J8O8/j4L/o21f83H8pf8U7/oXjyX/y26l/yNg/6oY/yfDvP4+C/wCj bV/zcfyl/wAU9RzOePdirsVdirsVdirsVSHzv510PyX5dn8wa40iadbNGkrQoZHrK4RaKP8AKbFX eSPOuh+dPLsHmDQ2kfTrlpEiaZDG9YnKNVT/AJS4qn2KpD53866H5L8uz+YNcaRNOtmjSVoUMj1l cItFH+U2Ku8keddD86eXYPMGhtI+nXLSJE0yGN6xOUaqn/KXFU+xVDalqVjpmnXWo38y29lZxPPc zuaKkcalnY/IDFXn/kT/AJyC/LXzvr6aDol3P+kpI3lhiuIWiEgjHJlQkmrBatTwBxV6TirsVYH5 q/OryP5X84WPlHVZbhdY1D0PqyRwl4z9ZkMUdXB2+Ib4qzzFXYq7FWB+avzq8j+V/OFj5R1WW4XW NQ9D6skcJeM/WZDFHVwdviG+Ks8xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV4//AM5Y f+SS1f8A4z2f/USmKqH/ADirqFhD+SukRzXMUcgnvKo7qp3uX7E4q9c/S2lf8tsH/I1P64q8j/5y q1Cwm/JXV44bmKSQz2dER1Y7XKdgcVV/+cT/APySWkf8Z7z/AKiXxV7Bir5z/wCcr/Pd/crpn5W+ XOU+s6/LE1/FEfi9JnAgg9vVk+JvBV32bFWF/nN+Tkv5VaP5P86+UmKX2gmC31i4UEq92GMiXTA7 8ZJC0bAmnHguKvp/yB5003zp5Q03zJp5Ahvog0kNeRimX4ZYm90cEe/XFWQ4q+QP+chv/WmvKn/b o/6jXxV9f4q7FXYq+QP+chv/AFpryp/26P8AqNfFX1/irsVdirsVdirsVdirsVdirsVdirsVdirs VdirsVdirx//AJyw/wDJJav/AMZ7P/qJTFXin5Of84waD598hWXma71u6sp7qSdGt4o42QCGVoxQ tvvxxVm3/QkPlb/qZb7/AJEw4qwn84/+cYNB8heQr3zNaa3dXs9rJAi28scaoRNKsZqV325Yq9r/ AOcT/wDySWkf8Z7z/qJfFXpXmzzNpnlfy3qPmDU34WOmwNPLuAWI2VFr+07EKo8Tir4p/LD82/Kd v+a2rfmP5/8ArVxqcxd9Lt7WJZljeUFKku8dBDCBHGN9j7Yq9k8y/wDOVH5JeY/L+oaFqdrqsljq UD286/VoqgOKclrNsyn4lPY4q89/5xJ/M6HQfN1z5Jurln0bXJS2lyyDhxvE2X4KkL9YjUAip+IK MVfZWKvkD/nIb/1pryp/26P+o18VfX+KuxV2KvkD/nIb/wBaa8qf9uj/AKjXxV9f4q7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq8r/wCcmtG1fWPyg1Sw0ixuNRvpJrQx2lpE88rBbhGYiOMM xoBU7Yq7/nGXRtX0f8oNLsNXsbjTr6Oa7MlpdxPBKoa4dlJjkCsKg1G2KvVMVeV/85NaNq+sflBq lhpFjcajfSTWhjtLSJ55WC3CMxEcYZjQCp2xV3/OMujavo/5QaXYavY3GnX0c12ZLS7ieCVQ1w7K THIFYVBqNsVYP/zlDH+YPm7VNF8g+WdF1CbS5pYptU1VLac2RlkbhCj3AT0wkIJkkNabjuuKvWvL n5Rfl7omg2GkLoVhefUoUha7ubSCSaVlHxSSMyElnapOKpl/yrzyB/1LOlf9INt/zRirwj/nJ38l Jnt9I81+QdGaPVNPlEF3ZaPbUkZC3qQ3CRW615RSVDMBWhHZcVe2/lh5l1rzF5J03Udd0260nW/T 9HU7O8t5LZ/Xi+F5FjkVPgk+2tNt6dQcVfOf/OSvlnz5L+dWl+YvL3lzUdXh061sZo5bazuLiAy2 88knps8KkeFRWuKpt/0MD/zkl/5bCf8A7hmqf1xV3/QwP/OSX/lsJ/8AuGap/XFXuf5W+ZPNPmTy Zaat5o0ltE1mZ5ln054poCipIyofTn/eDkoB3xV87f8AOSvlnz5L+dWl+YvL3lzUdXh061sZo5ba zuLiAy288knps8KkeFRWuKpt/wBDA/8AOSX/AJbCf/uGap/XFXf9DA/85Jf+Wwn/AO4Zqn9cVe5/ lb5k80+ZPJlpq3mjSW0TWZnmWfTnimgKKkjKh9Of94OSgHfFWW4q7FXYq7FXYq7FXYq//9k= uuid:b4394bb7-4a5a-11da-89f8-000a95d54d10 uuid:b43951a4-4a5a-11da-89f8-000a95d54d10 application/postscript endstream endobj 18174 0 obj <> stream application/postscript Adobe Illustrator CS3 2010-02-22T16:05:52-05:00 2010-02-22T16:05:53-05:00 2010-02-22T16:05:53-05:00 256 64 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAQAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq8F/5yn/6Zj/o+/7F8w9X0e+9hv8ALf5n +/eCZhvfvTvIf/koPP3/AEZf8nDkh9Mv8373l+1f+NHTf533PMci9Q7FXYq7FX3rm4fAnYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXgv/ADlP/wBMx/0ff9i+Yer6 Pfew3+W/zP8AfvBMw3v3s/5J+XJPMvkXzhocc4tnvXtEE7KXC8Sz/ZBFfs+OXYYcQkP6v3l4r2l1 g02rwZSOLh4tlS//AOcZtQs7G5uzr0Ti3ieUoLdgSEUtT+89sM9PKIJ22Y4vbSE5iPhnc19X7Him UPbo7QdLbV9c07SlkELahdQ2qykcghmkEfIjatOVcMRZpo1WfwcUslXwRMvkLeyf9Cuaj/1MEP8A 0jN/1UzI/Ky8njP9G8P9SP8Apv2PoPM988dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVeC/wDOU/8A0zH/AEff9i+Yer6Pfew3+W/zP9+8EzDe/fQf/OLn/HO8wf8A Ga2/4jJmVpOcvh+l889t/rxe6X6HsfmH/jgan/zCT/8AJtsys30S9xeN0n99D+sPvfDOat91T78v /wDlPPLf/bUsv+ohMnj+oe91/a3+KZf+Fz/3Jfa+bV8SdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVdirsVdirwX/nKf/pmP+j7/sXzD1fR772G/wAt/mf794JmG9++g/8A nFz/AI53mD/jNbf8RkzK0nOXw/S+ee2/14vdL9D2PzD/AMcDU/8AmEn/AOTbZlZvol7i8bpP76H9 Yfe+Gc1b7qn35f8A/KeeW/8AtqWX/UQmTx/UPe6/tb/FMv8Awuf+5L7XzaviTsVdirsVdirsVdir sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVeC/8AOU//AEzH/R9/2L5h6vo997Df 5b/M/wB+8EzDe/fQf/OLn/HO8wf8Zrb/AIjJmVpOcvh+l889t/rxe6X6HsfmH/jgan/zCT/8m2zK zfRL3F43Sf30P6w+98M5q33VPvy//wCU88t/9tSy/wCohMnj+oe91/a3+KZf+Fz/ANyX2vm1fEnY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq8F/5yn/AOmY/wCj 7/sXzD1fR772G/y3+Z/v3gmYb376D/5xc/453mD/AIzW3/EZMytJzl8P0vnntv8AXi90v0PY/MP/ ABwNT/5hJ/8Ak22ZWb6Je4vG6T++h/WH3vhnNW+6p9+X/wDynnlv/tqWX/UQmTx/UPe6/tb/ABTL /wALn/uS+182r4k7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7 FXgv/OU//TMf9H3/AGL5h6vo997Df5b/ADP9+8EzDe/fQf8Azi5/xzvMH/Ga2/4jJmVpOcvh+l88 9t/rxe6X6HsfmH/jgan/AMwk/wDybbMrN9EvcXjdJ/fQ/rD73wzmrfdU+/L/AP5Tzy3/ANtSy/6i EyeP6h73X9rf4pl/4XP/AHJfa+bV8SdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd irsVdirsVdirsVdirBvzO/K2389/o31tQew/R3r8eEYk5+v6da1ZaU9LKM2Ezrene9i9uS0HHUeL jrrXK/1sG/6Fc07/AKmCb/pGX/qplH5Q/wA77P2u9/0bz/1If6b9jPfyz/LODyLBfww373wvnjcl 4xHx9MMOzNWvLLsOHgve7dB2120dcYkx4eG+t82XahaC8sLm0LcBcRPEXpWnNStae1cunHiiR3uo xZOCYl3EF4p/0K5p3/UwTf8ASMv/AFUzD/KH+d9n7Xtv9G8/9SH+m/YjtB/5xwsdI1zTtVXXJZm0 +6huliNuqhzDIJOJPM0rxpko6Ugg39n7WjVe2E82KWPwwOOJj9XeK7nsmZjxj//Z uuid:57AF147B5E21DF1199F7CCA4C6BF7A02 uuid:58AF147B5E21DF1199F7CCA4C6BF7A02 uuid:C2AA2E501DE011DDB083D7A1EF0195FC uuid:C2AA2E4F1DE011DDB083D7A1EF0195FC 1 False False 8.500000 11.000000 Inches Magenta Yellow Default Swatch Group 0 White CMYK PROCESS 0.000000 0.000000 0.000000 0.000000 Black CMYK PROCESS 0.000000 0.000000 0.000000 100.000000 Charcoal CMYK PROCESS 0.000000 0.000000 0.000000 75.000000 Graphite CMYK PROCESS 0.000000 0.000000 0.000000 60.000004 Ash CMYK PROCESS 0.000000 0.000000 0.000000 45.000000 Smoke CMYK PROCESS 0.000000 0.000000 0.000000 30.000002 Latte CMYK PROCESS 10.000002 23.000002 33.000000 0.000000 Capuccino CMYK PROCESS 15.999996 37.000000 58.000000 0.000000 Mochaccino CMYK PROCESS 32.000000 48.000000 76.000000 19.999998 Mocha CMYK PROCESS 42.999996 52.000000 80.000000 38.000000 Mars Red CMYK PROCESS 25.000000 100.000000 100.000000 25.000000 Ruby CMYK PROCESS 25.000000 100.000000 100.000000 0.000000 Red CMYK PROCESS 0.000000 100.000000 100.000000 0.000000 Pumpkin CMYK PROCESS 0.000000 75.000000 100.000000 0.000000 Squash CMYK PROCESS 0.000000 50.000000 100.000000 0.000000 Sunshine CMYK PROCESS 0.000000 25.000000 100.000000 0.000000 Pure Yellow CMYK PROCESS 0.000000 0.000000 100.000000 0.000000 Peridot CMYK PROCESS 25.000000 0.000000 100.000000 0.000000 Little Sprout Green CMYK PROCESS 50.000000 0.000000 100.000000 0.000000 Jade CMYK PROCESS 50.000000 0.000000 100.000000 25.000000 Mint Julep CMYK PROCESS 75.000000 0.000000 100.000000 25.000000 Emerald CMYK PROCESS 100.000000 25.000000 100.000000 25.000000 Sea Green CMYK PROCESS 100.000000 25.000000 50.000000 25.000000 Caribbean Blue CMYK PROCESS 100.000000 25.000000 25.000000 0.000000 Pure Cyan CMYK PROCESS 100.000000 0.000000 0.000000 0.000000 Hawaiian Blue CMYK PROCESS 100.000000 25.000000 0.000000 0.000000 Twillight Blue CMYK PROCESS 100.000000 50.000000 0.000000 0.000000 Starry Night Blue CMYK PROCESS 100.000000 75.000000 0.000000 0.000000 Deep Sea Blue CMYK PROCESS 100.000000 100.000000 0.000000 0.000000 Fresh Lavender CMYK PROCESS 75.000000 75.000000 0.000000 0.000000 Purple CMYK PROCESS 75.000000 100.000000 0.000000 0.000000 Amethyst CMYK PROCESS 50.000000 100.000000 0.000000 0.000000 Rasberry CMYK PROCESS 25.000000 100.000000 0.000000 0.000000 Pure Magenta CMYK PROCESS 0.000000 100.000000 0.000000 0.000000 Global Red PROCESS 100.000000 CMYK 0.000000 100.000000 100.000000 0.000000 Global Squash PROCESS 100.000000 CMYK 0.000000 50.000000 100.000000 0.000000 Global Pure Yellow PROCESS 100.000000 CMYK 0.000000 0.000000 100.000000 0.000000 Global Green PROCESS 100.000000 CMYK 80.000000 0.000000 100.000000 0.000000 Global Pure Cyan PROCESS 100.000000 CMYK 100.000000 0.000000 0.000000 0.000000 Global Deep Sea Blue PROCESS 100.000000 CMYK 100.000000 100.000000 0.000000 0.000000 endstream endobj 18175 0 obj [/ICCBased 30226 0 R] endobj 18176 0 obj [/DeviceN[/Black]/DeviceCMYK 30219 0 R 30220 0 R] endobj 18177 0 obj <> stream Adobed        o!1AQ"aq2 #BR3$bC4% rS&cD5Ts6'E7F򃓣dU()8GHVe*9:IJWXYZftugvwhijxyzi!1AQa"q2#BR 3br$’Csc%4S5&DTdEU' ()*6789:FGHIJVWXYZefghijtuvwxyz ?N (^z^z^&׫zWzWzz O7[=ZsU{^ܩ딪W^7Uf55#Vכ5׹{W{׫qV;rk\u]jk/nz^z^ su\ZnnY9C^CW=^s=^s=V +D"ysj =^cNz^ ysz^=^s=^HVɷ4+Ƹ_׹4kպ֍xIaW3sժ Mr9`j¹ 9S[¸znӛW_o6+іz1μXW\Z( W`G-VXVto4k@*DjMusDw0s'I4S3uppF[ESFX)NBƥ G,k [&(@1њ FVx)g̽+`H4(lk%XW 2g={?l٭۽xO] YU.a1RM4v4hz>3MDCMXƠhU{m/N\:Z});h;6i@ i:kƳX=4bGU$ ׅLp<}Vᕹ61#1\1< 6ԬMV'MמAMY+pj,UHeJD7RǨMG%N}V1SaX)zA%xߧia RiA+1gzsFb"OߧS1[DӯY;FQ֠S((m}G^8Q]bלXo 8śUN"f>a zi2yeƻ%)3u2)%.gj{b c^Z*"h2JMP19:V%@/9J5%@=Q)6RoD ُ~*>Ev!Tm"SU#w{ٜ)3ъ0+xF\p-eӸc ?f,IWrիUH\iXn-@Zn~8?"|A)+WF>]ۊntxM6؄\[*"<Z>E.O],Vg]ͨ8*4enQs 4T1UThB7'a nzbĬ @ӉUѾR~4nqwxˀDE5'3moc)zḚVo>;EEBi|t )cGm"q* %bA`=ݛ#q4f:5pףo*|MUnw_ugbt,'n)N5U4'-xi X^ P1'~^U@I]LT:Ⱦ{_FL)_;Z*sibRfae~}%AU&wJ̐0{a]4Sn!NJ^YUequ#0 ElQOKY%m!Bǝ(pjlPi[^G/^LPݻQƌ$/D{yS|^@M-,N9NN*eDRS^hR_"/Y6ok§RRf`d@|S^yZX s -~&YDoJ(~ fXFěxZ5.XAbZhx(hTQx0z8O#3vO]4rb)#_RiyBK"3C%$AB׸p20p5a1Vh>wҌnZgx6ۉ MZ&W?N6j5#L$da\,ؠ7ؕ/Ld7~ , GM{m_ s#ǁcSF\">U?TCC xDץq)%Xf0 TƓ4*E9 R&?u&):ރg,dmd-/DaABMs AŖnEv—`]APv?paE›ˈarڍTA7\^2K"hGDžyhѕ?h(C:4d+p,t-nh^H/?xdPr-o_x5E&yG<J`wÖ^ OZˈl W='U&M]YOZC}1cjiCfv 9!'eN_W3[! 爜@Q Ծijxm;괏JYf5bΘ *G`4+~t93FŲpH}+l`k\ҿWK?U&!K^ƍׯ3auJ~նцDoBz[\!Vf {yfV0*0,wYӴs ÃV# \+Z|KYaQPĴ n>*u'AOwEȞ[02B 8R炖S _M b-}&$ҰOV},F`e ڠ.u/s.2pwf(p*4H!Gdž)C4-}eNN.!ԁ"S۹5# Vչiu zma~T"Ut&(_sx.a*ӎ-^qinM<+%>՚((ّA۔QGRmrAW㞪׹{W`ۛm|Vدrzsm 4+fkܬUfs=^s=^նl0nlDWsUj5^sunn*W2O5Z6'WEmWܴMnjܰW<ٮJ{WurQsV5^s=^sq^sU=^suk z\٭Wr[ۗ_W8rz^E,+ sq^׿4DZ q Ҷ _o—R! ^ZB+ÿ J(`8hDOik)Cm0bıIx>HMx wg]Sj&iЗKY*$O#JV[IL4$a$ѕ&KuƀnpcUF?_sB$~\ۙU~(.7\*pxT҄(<1S*e|?AL(RSJOPuhcq]UE?Jb6!DžRҿ|TpO=*ٯ(M_IxJMНTM~<"cg*j/*..x*A&:| ^x+Zk'VQhroM%ɫ*Wˌ _˄n(Ѽ)_xsvj&AJX{W-.Vu>M>\;Y|p6kn瀫 MH c\if*fZt*WH4|zG +RS#>ʅV&7?~h*c`R.d9e.kK=˴TSI'-H k~x._F^U< BxX}]M 4(E^&~!=u_*pEF?JbJI{[)>χX,~=;/@ H)%ī 7s‡Vh)MdcxuUtky1Gx*Ɩ05 )ˢ/Fk1B@ik0>kA "iĬ[ Ec( U9!e<}2S Uhg tP1m]~<Pgg,$FokCOs"e5BY4ԪPTXۅ7KТ){& ˊglEA: 6rijRX}6*n&niq&ՕP- %v {x{l@i{Q4ǠH,˂i'Kf(@8iE52r*)Z4sxC4~R_eΥRgI.ײɣ¹t Ӈ,i)1xwJW~(Km4A{ )c`,ۚqShIc8EhmmH&6S`MNWzm&ُN H!JQ^z9q*s,A3ߵ@8QBdz>3V'Y,9 G>Ɩ!sGwЗ^w*j:ZM+!fQ XӄG:87Ukeo8 }mߎFڰ4g칈ej,[ӽŶm!f4S3/a}(\T׎>&H afUj+ƲRKK^vJƄ c?kopOktR'h(M1uʸYb@_u#n5"ڠ$6)RL$nZM1SNDwLA<1MG .,i> Vhk~W h@G;<>p$ѯ 4@(Ps??R.`8bJjWFR@_H B4FaR,nSIVKu7x[<8b:&hc)=Nd Y>{'R ңsN=LP!V)#]$E!(} `99j$E6ЎG$&(bLR+1KP̓}Ai\b3t UN-]W#TaEy#ũV1,@F`[1\k)faXEs8mZAB( OQYOotۆk؊B4,OWK~VGDŽb$sI+#7{q{LjJUOf¨`Lh7CN v&s'UbFc7'ƒ n6U֎IcR$ѥ`PkMssQ$$}`-EIܴXDC1HIӄ *2&}q0k5O%' p vPn8S[FCgნ**,B%cQƍl A~&EA-?.86SXGF4,CV#(tՂ^zk$^hTU{  ?s Q$]"Zdvf#q:US9:<76RNpyЖȫݘ̸kKk&`Ȣ I;q\XJvb+=Tnz\ߞW.z\շs+NlVdvW{׹{׹U5n^"4rL\+Z9{Wxy{W{WsNٯW۞WK{պsU랯W{{5+^sU=^[WsNzz^墵5+[s=^qklW%EzWߛ׫NzY9{WwW1nVݴ9^\z5^s=^s6+Z׹JsVW|zWz\z{sՙXWdnuŀ 뛭׹ZrjnP ܽZko=[ yM=[1UNʚb}QNVkh5^T֫aWM9cVyMr.5Vxuōc5 n+^jG+aQi ,߈~d#S|8s#R'u8\w D~TZ,.(f$@aFVH]=#>=B+4iL(I.Ë4qO\2; WpBjXחYjh vnG˴F8C4Hr6R#fVӷHHLŕ mo5(NzIc>9<ۇTbV 韠U}=ȴP__,H.xy8QQ ϙ J K~0)W* Q7>A#ջQ9k,n2q܍h:x+h 2ͥ]x 8SAH&nl͟drJӢCiPƓ)8S?6_eu5'}pMkfL\\TX4JIyM)_ESuNߤC4#jvSTL?<'tE/@ :B FbSkeJa4~$}4&VTAi#@]|;G(SI=f|#!DkRБNhuTkZb&׋V{(RwJ^{׀qg΄)! 1:]08թgbp8CTR 8tIR_>^Lj) گIM#M-ŖkL:(y7>':gıD4&TM,;؀'EIC8LUی))ԤQPZP"[nUTajXWRqJ|3hj=.(`MY/OZj(̧%|cď߯"M(,O$oR O.5E}I81\BjϪ F?.\'FJصtoԻĄOpJ;(zO4h˜Yk# "E~g9>fQ6|8odu iʂSCugψHf^]SH,'Hƕ&6MN0uS*x e-@M8M7ƒ1bzz]C%R>T !>t g}Shd& 40XԐ[[݆ϊNj )t+PEAhiw2#-srK&/NfGQ)CQ3ܪV%t&xȾQ˚ h`XND{߳*4zrYF,77 ½1A6DDÞHĨԨ"mq[4ҍ/rkbM ~Q8(XkND9GmQpAN9dRzeڑ۞iJ&tHO/_3Q Hlj!fL 'ޣ>ɆW7W61[9^~+:\#ar tOh›A.>MUESԇ>gx4+zv)܏O0Mη6["?t'N8a,psq8NZ:=}'q,93SSζ=4  NUU{^8Rj4/OauKTG:OpMo4Up ً0‹42Hn6=:vݵḒiP^_<0,``э4>a>1,_(:Z"G&{i}h}J5*mt_j<< '/ɤV}odLoT${~GqnE,|  V]4]]nO< +mVT xxr/J)L CEp2~PdEYXiikgu9QD׉P6oILj<DM5Iz&)獩ڰM`3$HO+&SӞvu uϧׁۼU4 z_4Ua"XkgF.h)-9$ibhBhNUF iڤm? $E7(kƊrZت\vo=^|zNzհbUrC˃U5˛W{W{W{RMRk =ZJ\4iZ*eP,m7BtUDҗo,0㔜|[4VU$_io$KW~@|j`8(.x- iU$j5:\ &N4"6lE7{.AkʼkPpkE%*8{il8E>fA2~y~˻lprx?2-vf)(U DB˄%#Fht+ l]BR J2)aXuϩ]U=Nʭ}Brh831i")c#[_ҁH4W)NE$fC\N&on0BS|]H^G[_@Gom8fbyZ̈́PR!SG/S?i䅚\o̎[Q 9dXp-G4=HbYꈳM#}gDk֨3"Î䪼iף9ZL6#:\ׄώ0ofUça TN)eFB@.㨝 =>ϗ{NUmD}" ii) (],3H@ =8" ex&\̝PpK=`m= ^-d?û4uYkgH.Fe)4(d14TKR̍uPGO< H+iA뤟F=X;}}^<)f"ǫ8Z2bTI1y..`T_id 1 ZѮxI' TW^)J vky<^HU4(=Hu 8+4%HSɉսSu2(BR$݇K>y)E_I߆l0!~y ͸!sEw UP~ Us%KiNŵmԮ*Ґ`ؖC#1& u ' ߕJj@a@Fv8[ƝZ 1+ñ)hQ٪Tz}>$b(iSӼ b*т>QۀkPƧ2e!4ϳ{ ӆjOC2hBtS3{ن2kktpT4LAgUdF!euy$HHPÍ^ +ߘk&LĨXhX |tf.XŲ18L"X~#Zt /^M֮ǀ4+v!xNEZMdT|=DGe>xX쥆uRKY?8$(Oe^d֤p51Q/bv;i")¼) uْ#:l8 iۧX`g{liŠXk!8T7J)ӶumO; .RHꥬ@F1~fmLDкC1,_/:UNDu*Ƃ)/⅌iias`n"a#G25ATD>6pg,q%+[b+}ei|V\FEmv4(ZrfZ#OzK~V 4d?)Nx쾟EUpBi}b| <UH5\m )$mm8ղ"\+IL{0G+ӔI" SGy9P:N%Qe(AaRk(7W-^\Mz"r\Vn\կUz+ت*=^s=^s鍹busS^C4qW4wh|jMt"+dW|j s[J{W{Wxs 7\y{+6kՏW$fR]\VUt!57 (v;(YoRij2oD [+dsPʀL)F猸+MGZe<_;Baa²YKҁUEqaRHA~*nV"nFh?8^`}pcH $SbQҚIPUD.@'^-K"ur*DF̖q# —ۂi? Ѡx6ݬ ۝Xh$qT}Ns :MBEēx64]&ɡ+,I ED'5uL+aS L^RV \*Fн_^:(KDiM; >EK\ <Һbd9_?b8|L|_OCBΦEIZ^?1Qx@x𢵍(?z],O)5UEjX)-=~$U,ep7{k}lcNN#څiʻnN6)C΋BY:h<*QT[~Gac /՟&9LV*Jm0"5]ZcZ9n; *Iƛ Qꧦpu()ɱ(#[⋇ ֐"_3.UoL U#c>M93O|ӜJ^"OrG<&p/Ĵc̩ 38$֣4O~ …}umqƻE> ]Up~ZSZN/mVnπtiܱ$q{pW$$m5Ҳ(N0F[ťԒi<\4:4eW %C SX|=8ݺ(E]Ԑ&p* T:ݤ-dl鿥ً=|-N`kx<إ)14gdJF,f8+MiBa;o0X} ɴG X &I Q\:_R&A&[qna۷M8U1>q!r_b -J+m[Y~ajt3ZͮCIQCϹ* F[̕&ϥ+:dzV[_>媈n)nQ7 `o=jVs LC!O4\[^6ё-s. )pGf"h AzeX;ejFsp滐SUXZt \?b@ЧU(tc13)Bgt׊&&tw ac~;i1+20sz40X Eo9cݍ 86vuyMQ` d" G,4nVhMVn;QV|%C; &m{qٗ< EJkߗwl}gg7 >lX'E\k8cA/O =1M o9!P%JHư>hxTvq(U0X3]iq$X[i—b(ѣ3]+6ucx~I}? C)>3JN^hm.pxPiqƫ(qhlx.iz]LhLQrAtV;8|@Hd M!A3̀AIXPs#1 Vڎh>U)+G{q)jV+3;X~\ڨŠa ׺﹍tȡ{^ YoBlɴSX1(' {X5[^*+/7YljHzs\e5,JZHcJ%5Bi{CЮ7CԚ- >hRnxRl=, UBbQ&5$4vhVȽF]co}B<|4H1b#( 3/H(*5dQq={)ҔSUO9g 8ղL urlAZzMx$jIv$]IqlIýX8)=ƓXNPRbKGg!n-}OQ[)ьG&svEf"(G^Q-dV@oWNn5f\U֫ۚNz+n+vT.n^z^h뭃RSur =^{WE5Zs5^su5^_W{W$ǚW`+olWmצM9VrUZ~z]֫5^Հ^zkay8Е# =E6[İ:unJPMm8ktIJy2BibgxUVF%m:pX6#CiM'|=ꮣuYFHg;/߿%RhtE ]-"ys;T>bNh$rצ,:$r-v&O@˹/bc{47)8-(My…JS԰V4)hzIt2m ͭq z'R* ˺M1#OhAQ&m[ME%i6-vᰘUH4mB M1E.\F ۼM*>Py,Qɧ$j vu{9+z':oMNQNu3*ҦR .Ql4/ *f2H|`/p;|8MLmrj1; ц&Jȁ("7hBm7^!c!7pE=8MQIc%[{o~3G {`3߃AO(]nI=P>8QPһjM HUfyfkAMOGy|:ȳ9]u6 PIa*V6iN`#H,O8K\U(aؤ_<[1B~y}]T,L3Fı E.d~l4/ev^Pan@袙z:qzȜ<KLMC> A.IMxT¼CΌ0Þ\ 2 ?7FH4豮A8 pt֖%Tt- V)alo)ZZUDWtރť3X|Xv =RuE:*BusnG7_!hٵ+Q(UU@FԢ&(z3c=;vo6o߱+=C\'ET9vXX4X4 WLџv{"ރH|딩j!2O6EOB=)zGO! nFh8ԀҰcne.h#mQK6'6|#8_J2Luj^L4> P\X",h[F:;p>cJN_Ch0֛͎z{8ZY3]$GIYJ$KX{+l#ʁKw|L=Ie<ݵD$Ӛ))Iь:rd#I=u~ҍXk}%JJ&h5cf) TUX[PI+j28WbNDžμ GDqBF:kp 8 5=S~J.'QMR[>NNTݭs\UBfc`bnrt.WAs7PcʌIq C*} z$窌G$)xƒOYOOU;I;NJ VYCy3$a{}fQ~!XV \6&hCnp V<Bo|"԰MNN_-N4Brم ֣5┘U6(e췔:Y$a*xnQ PQĀi [WcLKai>m:p9N릯Y M?ehAWuL/uDi%gUp͔r+pO~GvG'qıf%:ך(1(sCaJ$n9sNz\rVz]u`ߚW|Zkksbk/Ts=^sD+5j廛!85]=^XW<׉5Zm W-WzMxz^j^n]sպ뚭WWOۗkbrƶkO+ZzwUձ\ZzuS\[5 j\S7^|zWܸWxsu杹EWV^su䀎^k=ZH-W=^sZ5伽nUzY)6z\s{+=^sU5^_WiWj뒰=^\zWzWz=^i͊ѯsJלVyNV6^׹nkUxu^R֫5V\ʚ`ۛZuUŅcsX+9[[jXK; D45ʫT#QZi$gy<@mTEC֕OZlk.?*T`A„OS\xf_[sy6ZGɬ]%cºMyOx߿v"H<ΒuSX(f{|l9]P+sHXM!h6 ~Ez\U;-zʙ*`Gi]H ۧZIjMU> ,28 c8qE!d|F]b&ڭ{(_ihNڲBc}gՆθ(n)s%$u>d( xeA%}du1倪Hpm}O# E[^lɓ0Y +Ӹ>a/{ĺ^jVs}'0@!SK JC{^jw)bqK UO߆%b8tp #bn43Rg2`x H|j wҒkDMvj~bms'@*4INC%?*HMb3-l]圐58i}>G,&) NHm4^R\U6Ƹd@E 8֐b赝}>u9(j^D0MEZhƪ)pV ~J~w&EW:Ԫ#&)<V#M!졻J3񹪈\}|N3O)")9kfc$ko jPuO}}ێ40..₲np[' k45dZzcRK\PNA*rvA*JXPQ,Y> ݢ @U!(rTqkۻg -8қ{;(~yB#6UUFv0| 0nZ QwjQ4Xy*@}ڰ"߯4ŪTMmwEoΒRc 2{8Zwrk_z*:K:ȩ)R0;ޤs}\G*^#? ̿Y`0Wt ?4ݳajRnmuQJ[^K v)ڣ+&f)ƫ%$n;];L @{)i[$o M$`x 1_n 6ixtaBt+=rZQOH8 Rf+,'!6t?hŗ1Bڏ@/Bou =RZcԝ$qmmmR[L`M~r!9[HFN)gс1fZ`č٧1{ҚA;EjUUQv(ɣhNgOpfm3)hn/@"X{=VAG-}@rkBXJP8PRQx|Mف$ E$VJP,pi4LR1)G:$q.TM X$F4a?,gxcV߷L8Q)JG52pAvI2Aƍ/冊LuRzPBէOmellA[ZDtR<Zux0?HF)59 A8 W)rvxzʰI*6<H([%M 9G*M^} a7.4xEU[~".Ddž+% LJ:E84t?u- tP)*1't&SBN6l5REI6e_{vF45 AGˋ51Sm T'()F}8$հ[}Aɽ>ӻlNh`@>V~ue Hv{?&Oċ=_/Hf-(׻($Ez!4>+W,o@n/LSJNt#tJ:"0׍:5}aްrk f}d E3RN7=&NJcx4mRE0􅞺K صKF'պƀh,&hwɞ2gOϨHEIb{=;S"H#+pWJc2._ 3H}8Ov{UQhqe,Z9f_pEr_9|^Z4ֿ2UG([6j*)`BGËvQeP (z/~j\r½\ZrCW=^Hyr{bpvj\KX^)W ۞W!1]#W\nVny[|jf#mµ]nsU=^sU=^su5^sb\_][5^o=q^sFkz\{VNz]1=^?lձ\Z{Wq^su,n+U ]Z5^kێVz\˞WvunV妵\zWT׫+^ ykՓ/^r^z^z+Z+aWW|zWzTw=V+U۞s0\/nz5z5zkձXWLypkuz^WU;zЮl9m'+Z7W㚊b9dP9B*L½\XsU%Xͻ?zg\b'|w{9V}/LeA-_<~(L LzvtbzRj͌h<跫*t[mmÁ6VI(8] _Q3M.2u^sKMSq<)p.[&D iRKX4p.EJH4bnle5iU)4_BjsK*[chlVI^)`T<_SnGW-M)eZ1^ZZX^I(\Z4&/[{/b1G$u"4Hb;xq83W4fb93fBTbD@Ǘm2EP? kHalN M4Pq9BB= e&] r5UXqg`aN\#CO_#x)i~U,4'1BZV]6:|NʲT(9?EDT6m:{O*Qn b Ak;'F`6ՃgR<֞jƀMI}ġ.i#):n,m &4/Jq8 >Pe*?·#6Ҽ$(?E]iOQLz'i S<@הhz4:㲲D{4:S0B3@N5e詛y荴Iᘼi̥{[JE[ *4[C5TXO)*HyC|_`/sBi})N}3("q,M/Uq6oy4 vy,|'RmYG?>,}I-k8zz/ ?Vk%\W?^wnHM2ɰP-rGo;B(~%9̝S3c D/-xE4v~ h; Zㄝgy(ce@pAI4 `}w9 }g"6S-8F4" v 5xpHxT8 2Is6"mCLG@,} ]e*,Cq>nM3eV0L,~1#΍ERSᘭ=9{`aZjvilQ':`?vZ}H эo~i QGt1PFBhͿ425TDUT 4bUaYnu6J ?!2+4?I!KlDWD qmkm중ՀJ(H;v6ȩ5x[ߛZ %zj: UnZh: fj>* $QVq],.4P;[RO8!BM3 XT] J F`)ŐjIB8LJIFoTY^#V~[4_pJg Zpb"E^ˉ!$8KAb0c%f@/uBKt z遚Ii(exG죋aFO~3JiiHCUoE14[QZR?N H@ ZBqU#S)17d3FTJ0*N루7Vo̗BDP%Hfmp6L3 ??]Э$E+LnSs_ʡ4Z:Y֞Ib UH#1̚mǽ\Ŋk1 Y?y"k`U퓲O$4$yl1D7YrшS2FokGM&zsaENdmT1:pahڡXS&phꩻ$['*4eLcߗ(ly$M{9 Y䮎<ġd' yJi* pdBC64c1$, qهFp‰'=^ysCqWzU{WsU{57妵+V ժw=[sժCbM{W{W%{su6Ennz]mkq] 9v wW^sU-5^sU玦+75@榵]~j+ksb+'+UsժO=[;_W۞W.j^oez׫/n s5=^X>z\W.z^́^͚ͭwMz^nScs^ 9V@oMz^r=^s=[-[mV=^_W=^ٷs=4{Wz׹ѯsթWl 'N^X[nj\K^ܭz'xVV֍brycաQw7WmbO r~߂2Bh( U =s Q8-n uoG TcpL O._*)Oyo:ME }>DpʸbNGڑ5_wK`3M%`ualVqx)fzO9 "#!'Z ~9"gD,tq @=H9 zwʕ S󏔫*m6=譫 ,ZUw <&P9*uwHNGªꠏ/uΰχHR8.;XwX"|ElW@Xw'EUFҭ8" Y aG_##e|;rMiB( ЅC]tkŀZ."ZCu$c[ J!GW)HTB^Cb{ Qn")ms453y&':eh1PGt E:HUVT*(bKrT:TM,_uŶbScp!`vEz ˋHαM+=dHExkOy$d ,&rKV #DHx+ > @_q00!_onfiۥ)&iocOR(u9,loPƛJӞѽ 'PE绪^4Yޒat\ym}NYOx|Z.)m0DRUR&Ml+ҕ2 apQRJvռ$X !ʏ7=ih ^KfH'm06pvH &2L yـ߷-ҔɊHx rdҪgFEA{~|[+H4Er5@C&G:JW@N&䜧~3WܮM/q–J) YvDPsCC[DŽ$m Q=:9s~zQ;-]`ONʳLߛ,oy3FŕF$P0X[݂Ky{p1hdoE (i媽*|x 1”lHGp^b3)lOn0֣nHU{u]E#WNO=ce.<@tr6lFۯ򢑪" ;Paa== $PyM&vR@dkJ 'L&qA,~-dHhHBd&b|~{f<8%Jq:>Ā?ǁbF*PuL. R~7)ߛ@/}b\X"8_ttbe 6SяH>dܵ1VG\GԍREs/6Ӏɸw֍MS7lUnc W-vZTH ޜ_plo:^J(%|U Pv=߆:@4\ *澫b1ᓕؾ=.#Mh'ɽbĆ;J4`/(ZkvIsJBU´=4Ol_aLV(P/# 38c)k4kOVE Y$(*jj  'ʗ)D:G˅UtGғ4q'eũ[Fm=i S뾨p6!d) j6tM$h(8PiHssxǻMwDRpƵx=F+RA?bL>6P4pP\)f̞DdůOE P{x_Hj#x'׺mBVE=GXn=^D_:V`U w?N"lޮE[K vn!F2=-NT[@}Des.}]ҨUH+XŎu6̫HӖm{_-4 e?QV3^C8} 3Fvvѕ0<[JXT1< @"O_ L4<^S\|u&AeJ.qΣf:::]R>'WiEǏdY*pM>kjQ)q[(DG{ES8R<"$4)tK( bފaYMYQFW }Y?EФS`_Q2^SH?CC5]T]sZTrQr䝵EnuW el;i~T={nqU-v,Jk.xDž ŒuCiph*C#T: wI0jES-59nnRt'6(FzLDIT4D/~:SLcFIRYS1 {Nn&RH/]{ʹ+ņAUK<' 6-OIƭD/z _ĒӬ2Fy@j\G&f?A(;Kȕ1I TZ&*\R%"aGj1q[8OEC2|SmxAA(~ͺɞ墧+}_AxzI-ӭT7L }qe \/HЧj#)X$o ]`{ 顀Uy;K5[Q+-6Ӽ"nbϳv)u~: 3;,P!XA$-pU"1 cabyUp.c2cA66sX=|@^3aX"hʌ?yj«'u5u yNe`4ׇvi# uqi^@$Lx1N1} [Qqҋa4.3T٧(lyNO+*@?ܓLdY)%b<9`Ц ۔ F.kb QÍ}JHƭz.d:32cBF~Nl ,͉ERxhHE%T(Ճ\⋋Fv&^: m%=..ɈjͼmԆtT !@H}DmNxuDJLZD MNC X iV.E3O os*Vp!(O0UOyֿoyRi5`(a@VC RK>T&hQt&gJqH!V ek2iEk1 wʱ"53NM`XfDwJ}F4;¢9Jrԋ4$V6 )QRAw&pL2G ﯇ DM -QBk` H이#|Tv f)k6OQSwUv5C(,1U T8Gcm:pgŲGQR n*\4ކ2M?HqOQ:sK5O : =t|q<]<ۘ33,XVT0JQ!S\lVҠERR5jg?8N/;(UDa4?rOm \}Ν3FaE[n߿0IYLPu1L&vsoʁBקQk+n8BK"*߰'nc 4_Sq|Z)jebJͧx.Bpiԣ-`X[Á+V~ rOcuPꃪ-Q-"=6a߂NEW4_jO}y,F(i)3-OП'xJnLPg:x1dT3 N_4uL9a[ԁ7r|N!HѦtb;#oܦ Qnk^ ^ 5qx7[5*Xd'e.o*Db\HDE?< H-ܤi{K"S&`xLZ~wS"%0xXp#)RJiĨG30"Ƿ afH11vJffۅ у @Œ9S&O(HO L(yю)GpH\or!Bne`m|&kΧ-,¨Y_i/axhT=Ou_ߡájt}. $ 5JJzYIbY3c.@$w-U#m;eQ;b-GǕXM@ElY&{k{5^`(]j1R^9)ZbI8;h&iCb~aYeuI6#A;*4I:9GO2*-@ Y/Ոg%o2z#6(QG& , M afig ڶIzmeu6i`R(s+Q4(ˏS# v=U9riΔ$X)DЍь|bxDT$ 6 ЅҌrEYA#4mF{9\YV'/*h;v&HpjՑ;rkb/n{z)ƹ窵znz]=^\lWxi֢Wq"j+nn׹w·]sU7^ۚWDߚW%ksuur9x61Mrqk9Z5˕W6ukVzxUoʚ<+B&XWWyCZ5s{kk`O5{W{Wiߛ>z^\WzSnn\"+U1[{z+oV yW0oVz خs^n#ZW$<^\zScDW7MzWÞW{W{4k׹{U&MnVW׹x^׫kj^sUj~\VWV򵹬gSVkejkցX2zT7=[-ey5ӵcsO5^׫ XWr9a͊byBj4CεKs{wm)2p4 1]KY7hwQEO6fYՆ؇8\ն4b""|N$a{pR͹m4LZu>fĶ}ͽ)qqhՕ4QѨfG "xk"b)P8/)zfΝ0S- `~#[bI"'Ph[7B͋Qr-'7 LU=^IQAS%LLRZn(C#KhkGn\ӓUCҮq5=WFT}oSdk?}9 i7'5f4ёO7֦S.9%{mWS(NUzzLJiҥ7*ѝ^nrV G+|/ [LAzvYjjcțG}Go.he8Q_|3BޒCa{wdQ?yB_{[ȪGn(H4 uON $ypٚLNjcZ :#z'!1iSvZ¥r(BFqvʒjtU^㖹jݨP[rbcA&tȣT'Nrr.T]Q?Myݍ7u+Zjl=w1r[P4x˧ jiԪzW8t죑HE #.A6`@ ZĈl'[lTE= ؇uc^j}1Ib9)iC{^)uV?,F|K"*/.D~]|/u#PEnQD1/GـFl.yQՐ.ˡ":hhl9K`x&=إD(bu"ܑ J:9rʆ4"ణHE14AOXiʩ+wǢowQb}N_)NlweHo"ED [ZV~lo#>ͱ[}d;S[iqLj#f7[ߋP 1I=gT>ʗ\Jx$w<nO-BOnDIAޟRz-z4 '@'᥵TrSI4o`\ Չpn~NRGnF- hs,8{H 6AwS?# Mpgo*6oI}F‘X',=DŽRĚ;NbD{[{"4;ۢ*TD5hAoqu3DpTIV݀o^5`+CC+.m\N"jh%-xaƘ40`̕A(XE-a]E 'A}A1Ϩk,fC"tЂ>ILx8X#fdӲVhRZⲂÀ㮄6`߃F/dJ*crx)-ȹغx_p Ku?ze#D/xpj4qOM̪j|:!G;'_(ڴz18R6KGQѪZI,7&hhM#uCՎRReSaJ ϖUYYtyf;,1EOJshyԜ[**EX{puRbҗP^=64Lf.wE.ӡFGLt\|&24bKO+ AMq;o"VJ]OG2Y(֢u+Pc{Oٶ%BU%,=:D], :QPq udıj("<*En93x,|\Ķ׶䓕3$'^r:*n-=e;Scph# MJS`Tp4 ^aKÁDjnniH`]U*w10ÃJB?Ξ//Dq~[рX:7n'h|Qv!=Z!8qnkHQƍGϟjⱻ%nSLߊ~b8?Ri6S&\᝽ΔB~@4Nϣ4H!/$yP JIjE4R=ɍspG cY^(u,0LƄ֮/8S ѧ-!d@UUWz̳Rfg{YA-F4i z>3; XHJu N*52G) >|TpAT?̻> Pu ,Yh3N{0z,xb QH6>VR8 GI))0؝}bx]j/wKã3n(^H PQx <@)eԤpśS8L*DtiI׹ZJM"rK4*h/swdht/3@sU#X #s<){Í(DR?2c8m 's&Nm.f"MEȹ(K*s, iSnkn6RX{MQM.f*xSHK<%dž @OUW„_n֨kw`Ra|ĒZ|gaeɎIpVs`~Rt׷Q0۞XVNTW{$窦sթ۞W0oWmz~z^z+n窳^tVʑw֫zW[kWQsEzTzk]uJwr׫)Z,HR\x.j^z^mW75^s`׫ܽz׫⭶ xѪׯnoeoedj{sa]VQF7 И Lۂl*]PVl)|q9dJJJuHm+Jlꧧ(W%~ (4SlgJ;wyAN?\͜};Zʶi/rnwE4ŠH<'6Ub4Hvbi1zzZ+&Ei֜KM$ fQfJ :W՟KYzjFJzXŕto8բ>S w^,SSz=u$G9",ߊP܏{b ID\:*Pg%R|c'^v4i4(:jMBo޻8QAL9 =u3%=wэƖSQT(&(h0Ȥ{O?GӞ ק1a[/7yV.'h zUǺg1z$J?Ƞa|Eݦjx%u@oTe]6Y)*,޷ W&(ɁQz[ѬyK>!]q{QʕkFOTOTzbQħ< 1pi[/Q}*S5%Rjye=xͶoZԝ a%f$,{sL>T qhIrOdž:T=Xڠ /bk@Qk-$\=w&4ZpS>d2 T>:cOVVb`@S,M`^BD wuG v}!]ĊTQLӷ /}lۍ'KM?ZNEE2u]5`ET,Ln/$xiڤcVsg*,J-~Qbϐr%yrS:ӵi"6'-M:tJ_?yLrăr7:Q/᥅ňTe,k{:jNvme(MoH=c=󫡒7}B[.Pg$M9ْUl[˓8vI‹Xl(!9W' n 43f?0AMJٮgOx"{\y)rPڹ*$XP*Å%ZبU5h+6* LT*0(d^4ɵ#n1A`ehvPhpGE, Rtre35IB8z Hb)vꢰb5ѧR`iɏ&ռ1Հ:GsxO2QG9xk"-0D*PhtVU =C۷ ̃IE9"YcwN4SF9aКcqKX֪yxmָ;} X$yP*>tS6(*4MvaX}\F^)U+ M}c "AGMH4mUJzJsܷ"GEyBgK:2tUN/081 K݈K(:1ɷ/n6 JPBWN:!ᐩ<ZڈQ++`#Ceۇm駚8# 6RHIil VdQ((pץZscK[Aj :>0,[&;6𓶖Ul\ofxWXN zZu2O[b;qK LNDvb&SZ-u2C**8*g&0(PZ%41Q}I<ӛ(ZB[4><ƨ S 6=Hn{8m.ʅ6'΍Gꬣ& طm6# ?H*.#,L]@YbvSD)tR̈ 皵EyK˜]e*𱼰,5G$x*5g4eZBj ƞe{ S4}=B#^( z)ϔ<ӥ^'ibF2G_#Y t{.-u׆Z]P & rf55ԋ{OezONM-:`Js=$Pӟ_yo=?^ n`Yg|LJ,PN$,Eok7`B^zDTsQ^?fAnxbs$x}d *4tʲژOO$tT΀t߽N%#$+;vy3MoKjVnk#MXh~jy7D[KQ QM[_ EƌnI4m\swDYUZCo,xxGd<.\xFPQBʌ!%$ei\ 5 J_Mq 5-K0'߅V]5'm(C'Ah'[їv{h<*2t?6-I{!'k}GCZNGE率8>B"p\(*R j>QGSMr!54\0[47 QU=C.nb&^-$}fi5M{wQ) [ Fi"hwkqkk|xLF Qrf+%o4M*1VTfZm1-Ȏ%>wFh~0}-e .aVM&!V{@,r|3ڄ*ƇE>sM(>nSvA{}vࡤzhX j}K"G3KAC$U}nOsIj4gz:рE..1)TVG WfQ €&c9z6 oO$m8tϦ'\iBbz`G,{wcǁ+iòttQ0ĶTKGr|OYQK* Ֆ$ߕTz\ªi/~9^!_yp+TT?΍7804Uwn", jƂpjoE>6k t(hBy(B鏺a7)#M3ߠI adv>Bh%P*rC|>w]|FFG'6T٦2$ arQouNQ\SK#qN4Q[qzP?G#+yLVY/*K .NeL҂_O}QArb8ijȤE QNGoH k!uiӢOX밪βFOARzוYs"IcЦtrB`GΞ'Ai)yS}˅6o'T`̸tj.Q sh`v?4K.UTڮ`S1Vq+z#u)FRӶSQI}R QEg9>iۆ4_I`9YfHw<-W 0O°uW\Ynu.M= gY-}/rmJOЅ8 %9j-fhoƿp MhVaQUdQʀq}ɬmVeC4jƹnhUk7-5 s<^z~z^{s=^szqVϻj+$FU5˔W{W{W{Wv xUнEr 55]9pkMjj\_^XV)Zqaqʸnuh*Wmm^keVWzWw˞W{/^r+-bMr5Z6 V7/^5˞W$7˞Wxn\Ň-^{WzyZwVϞ55^s=^s=^s=^r^sB]3[&+Zqfז׫VWWZkÕ\5Zlm q,O,k+uո4墭XKZ\$~xWcjHuMZr!Մx p.{VIkuMXTJ}syUϨnԞJo*૩7Nj;)+7UsSJsDIt<8!4i"ޘA h$ -R4Tfu.&e] -QO,M99E$AXiqJ-S $Қ+aq7Ԣg#BIaE$R$z gv>xdn\K/Aޓ2\SƻheエwN+BtRM5s#d-,٢B@b[\2IVNJmס@җӷXOA))ie"`^-{Al飔հ hCu5qx PM^ESD A(*A lI ⱷbh袧nD,+o[#qMY/R!C[8 GzZ0ˮ0=tV7>aj-1RkGFlxqowh.QDw](hɕA` ~!crp[p5K;VU}π\^*eVS>t=&QPEnN I M.(1=mi#+/Qk2T1)`h^6Qٗ#T#A(yamI:)po \nFQB^WS!1ϷCDQpR6*h$#rnjm41 ڌRR˸>)@E7!z>Y=BE @6r4.oeW-1zxj O˵HE!IiD >JYwH3EaTU D J"'P;S*iUЌ vԔU7e^oS[Mz_E˗0y!p?m~+>tfa 2 ˴p@n4$ FiaQU׷S_[*!޷'܏5B QI ORas#m ~_]`(ѢM91R`wwA'MйX3rJV]>>]*’t]RE\D 8<))¬c M jVuf_5{[U˕Wmas{j5^QWz\׹׹{WZikqʭs򊪚ƪq[sժ5^s=^s=^խ׫ÞK~h rz?;6 LjҊ<2Bi8/E pVuҞ!&E![ pDA4#ax5\ #INڅ*1V =G1'4AMi)5uITE1, Bxߙ-b"\%g<~3(ֶ(_ođ`bEU9\ZI5}O  Bo؝ _qB(]8rVәzPdV\j1V`y -X'`J´b*PAǪo<N"T]t=9Mv7ٶ,(ê¦t)_O3IW𺴑7!]n ÌLՁ\/Uawܤa[&iFhZ'ZJifc`p*^АBj'Ζ`yڲk㷀w´PύtfYנYzZHf'x]׀Й"G_Q0 R{-_Dw5IQ*5nU hc!ah7h?2@GsUqȔޜg#{ֻhHҵ ? xY}@ լ|3*)P"8!:x8UTXUIz38ǥzuiJ5I/.< t7D0#aDOZƓ6̓O {DkU5-~J9&;ٹ#afPi3-8eW#KK7Ƒ}U=Ӟ+5NH$#m|n൜v(csh衽6V$ $A}J7Ã|1ҭqNʮLW3;j>\p&R<ǽyJ!1!wE!JҕliR<_ni:1vzُ4jhc7;X{|8YpxL ^S}el%u[oI$XD7zpV1FjtAx UJe"jT:PA: 6!W R`a M㏱Ӓ%y8Gl)OL? sf1([嫹  ?p֣OٓDUSQ>\ E\+4= /O L6MH&\,QDQ9z5/V)pha/R;B׮a1jx ЫmE냭4^;\rnGe=pvwx{/4Wy&> ZF T6zP@QeEkCg`0\S1x%Dy:4Ð=[u_8bCE.xϷûd 2i:hgIzٛg+je`H੕!)}j:KUYz)}1 _f&S2Rȕ8:qW[75%[V%I"`!k3X+ 4c+􇧕RҬi-UpV+IBʖ@ +h~ J*썉^ԥ$O#Ьl~'v\x<NNt5QIEU0'^G?O$BqHPjߥ>tR24Q(㕭q> 8"1EpΗvű)lBJfw&BmӚ57zÒ~SeB~ a-'Q0h:RI#SB֟O=iYnFma:7JBV I CBI`XZe.f`W4A yqNTd=3%4qihw##h} GKT*V˘*ϘQ!M*:I$@NXic61D$ݱvh7ṗY "w/j˅BKo n*CmxŸQ-FExO%EgTPf ;)BA)N=Qd*A׸T "jH=]niLBS_ҏGR ZeԻ-+"]*3N銯ސfߙGYKdrUqeS -cp%TƣA‘\+s~b${h)VKB%48-~:tF-5NN f.u'O[\hʹkƄ_DCb"W0&vMiN`Ln2JOscŲ ]fj @6wkָ:IPI3*RCOpٟ䪱[@]ѩPE[iߛWjmUc=VC vժ:bVA͚vZsH-۹{=Z5ql z&TW!!VVǖd7d w֫z׫z͚{WrR- ժzk5^ujyu׫N\W=9\՛nW!yalWg ։V+Z 9sSq׫j^zMz ~95iӔUx.7Usӛ9z{W%SW=^s=^r·\j{W W7^josMyrP׫zWz׫ܽzWT׫5WL=^zW۞W{`+6U6{sz{kUĞ^+&MpvמTz9a[ ۗ6k!Ջw=^lny^n5GQݵX7Xep4j⣼PÿG-lMVOKy~4F#CHVDiMMO"_7S+H4/IE59mQpHM4¨]~:xpJ-[B➪*Z7\ nY}&SA\(8g^ZS2娽mF𵣦K N,KJA8R)QUVHIЀq 8\pN2☸ڤq ]7$ jtNÈnP8R ոV6dј"'`Xm8j'e! or~~|HZQJ.}J& %TPPH«T"V4POI wLiO/klV*N4C׿U3qEHV&,Ƿı⋛Pvz  A-&@8lhc-:;փJR8 ,K <,)M]ލԎJEXX K` ):,ZM .`%6#QYPCmT6#~&yyqd< HƝt@&-]&X3۞NڽʢoW1i /f$6byJU46F1)h&PAphwU%63(USjDʦFU0L=&x*nUJ8qEfzxZ'կ)!O\Q2,M >SōIU5XYn >f'x vֿ* hLE.3-m1HH d=0 w$q=xZ,Ws~K)q?NPU&ejf͐jUПoU=?6_~tlb?"// 'F ]BGg*M+2N婷m8˶EWBsyQK[JA,R0u%Җ=kE!G<>o* +4b$E'yg)澇:p3z1Gl'B!։sU(lF"1yҀ^W8ԇV]sNFI:4[i.x#z~K771(@7:xsՍX66pfKyVw˴ ( YU+lW47^sU4O=^갮jn9sTq+u˞WrCnz\׻sբf1u=U%+U=[^zVkk yR&̈́0WEz+q⸫fY3XsU7^X <w*j^z]1偭Ǫwh`-MRh<׫9n=W񬶿T 9sV=W7^zWܴ׫]7a74R)4mF4Pl4ןs5uĤ [NjpnMՃ].NRMy=\+BTis.([㙻rR6O L$RI@ϧ <]"q 2e6 B!-YMhU~*K4LW|B9㿰┬*)"pELjᙺZX~bUe"Ak)=ƃrA4y!D b3'J2EG)qw1 =qg(eyt\F?8\֎hiޥ&MJ4U"Etr`8kh=TjQ*S$dܻV[֡+Ԇf+p4: K K)za70f@-E7m&(1? Ⱥz0jvE: u!UdCf~~ѱE8 )źz(gceD:pT׫z׫ۛ[WzkjkŞzsF\I+^qg=^B+Vt ErWQ$JDKh2T{$B.xQa ;ʻ>n Oth;t{ӅW􅛩ӪTygSU)ef)r^1U"hXX]ۇx;$ҟ 3)Ucd OzJ5֍2xv4Q̾l(xbvdkU]u#3Q"d1ɸ9}*XoE"8ƪ˪Nfj;Dx~\R *6m}pxIS0ڼŎE<"  3Wӫ |x㧄jt/50ʭ.u^ww+)8lI`pS l{pR*Tk5m?]L֒Ab]YXԺ "Um+0 ]tEiRFۆ:#.a*:L)XɋHRFj׷۞$z7^;[KX,nLtv=0⋷u 3nMYVƼS[_tBr-&K||k[mYg3,yjRURfWdYcJ0 #J&XeŰj(BHnaoʿGi+ãYv}=Te(Jvu#~g<2iՅփ/Χ ::6ݎr#B j(lQg8fW[ mV5SHp~u*Px K<~gJz)e^!94P"0otHKn::C qt7z$8׹!8&XB y2X %'87h#S;`8i)IE4T} 談#>eMZ+IA$Xٿ +^~h'ZɐU8pn I'$EZ,izϙږCUP9QFzɤ7vi!YL]cLCܳ_]#ÀMZm)`up5pڈG ЅatԬ.ئc>*,ƟWտKq_9?F $\UAJzjL^IiW̃_ǞS!5G034a2a-4TZzbTyXP,?oW OM:7jjH’.)Q , CpR9t +yt.H$VM\ܒvT>0RG0'Sϲ*)D3 򼙝l/l&pN4A!dz5,h̊,5Äw6JE[(V̰2ML?ܣUVCPXn SPG3ʐ${ Z~'Ώ75T@ql[H ؕmEYrg d9;Xؠ4 "w*`%[av!UbOry0`+yյ~y&lO]($d_˿ 41*;2(&{.eDtT Y吏bbMFdЏNto o#r>eGo))*ۖWf۞`A\a{ndp].?÷Рߛ(=f=@ 4pcXܪlS x$i#O=Ŵח i4 OV 2|sۚ)=\XiU$`H(\bjGQCIM>$̒R{ \] o5<Uht['F}Fmc5`ثIm?>Ԋ"KrZnZzWWՊXh~$~ Ӫ))nҪ5ʯ\R8ڮ>z\xu`Y4|n>Hs( ޠ]GϋeLT]qt+mey_xHMAA.d2Y)@8!Tmn 4`yǀ`{hOrT0R*ts=gOvmp)jMёiWV@x\˝Ȏ4Iן2P3SE<" i<}k)r@ }_04ghn+ Q2=}XDR9xS?Q>;Di(Yq@Wk< k{pA'T$Q(`T AH_@UI@BR(RU%l닱hhhR5zCtIʸ"bo%(Q6ZJ#&2G4_6&ݶ;߼2Fl: Qg^t9,O=C˵܎*ӴR;)q ֝6P^B#HC7 eSAwU_RBa ʩt=)(2AruAK(pUf) "OB0pM?ćiGCS5˞W갬ߞWiW"ysڛr"=^ߞW{W{WR/^ɿ5Z]sցsuj=^s֦KGz^z], zyj{WrCʚrzWW!EzW7Wzkj]?nXW7^=^%ʚu׫ӞWW榽\9]sezVkhVqV7nz\U*I x~Z\dӞV 5SX9[nӚV&RO7^vzJ\V =[mZKu 3TKQob\H0kUO?2H6(K2۹60:И&2UzG qDdx]gx>=ڶ@H:qDoQ=8~ E+V4Zyg0Ty+%9ӷ -$BD <͗zL I B0J]Y3PO9+5'2~ pAxIUhM (ܿEŏ"pUˠ0~hxBv{Гie1Kݣ`ua[)!ANI/Tpsoim4=̟e;[VdQ˗8AY5TdgdJ>x-HFƜ*G 2>GdT^cަG,ÿǑSv:2L817^k//qO) g[ {O3xuavPH1ގAIO2 `~*~8fb4} ƸɤӎxWCŠY`{X)Ę4 u2>f+f},pBvS[faa<ѣ#Q8ђ x>( SbmPJ콙LDk+n9`,)kX-cǒUG+ḌDeV!P-W|=;`&Vu֙qV:#"_v0X_߁+ ~l.xCwFz%oѱeɣ(V]ޘHeD5<2r_σKŠFUu8E$tݺ wᆒL G91'dD4jvjn}7E*I-RH5m@ M:XJoEnEGzeOPIu`ij^t#a"Qsڴz)Q3Fx 8E'Vpom R(]$R=UmC$ydsք&Iv .Ӟbu~::eL·-9݈O˷.R|8O}tOA˧K`uUkG?ȴo#̀-nr&ƧU ?ϞrdU -ҬNlbuTE\̶%{ܪy7zG&GLi J*$29R=f>;Ӊ0e(҄/nal86SPIe6!0ݩjr} 8ޒ:OG_BxңIWRA+|b\O.,Ǎ6PG-Z_CWLՉ*En4=9Wϝr:aoĩSsgvH~־M6.ҿٯoE̕IᶋVCbj#eHTm6宬G1>]B =.hh (uMs8yRUz޿ہB.9ELĐӒÅM*0*qƷ%[e#@ƒ.c8$Lp=xȣѿMYPu#öVV  w}0/VRiW[n7/<WXzZ<>ɯẻ%siF#'Epj 4\YFߣ7c\[ɒaaRhHzG7ujJ =n7M/< Y&Vsk\D֒(])_+sӯ IO)wL' O&:9 q.z,)M2w᝛_p ??K7JFci%TH 6a,WWĤ N4D‚K` '쩰ňBT&)<'mC;#0ЕfƜE-ib Y 6 5&"pp58 a,c~) *_)xJ惗JGA)чͰj}Fnd;𺯚2vƭT).A$Gm;ejfQqĄA>tLB:5OY=^srCWs dWpk{k 7jW6uϞW{W{R5W;VߞWu=^ƼzѭמEr/Ez+W\nWz#ە"k}EhW(\nUBk+U - ErV +UgN2x$MP|˝*[h%I"ܢ$zXOjGݚjB/kNߞA4zE G2P▖ @讀sYKTG-DDw3^ +>0SSR7%#VxQUI=:0`֭A06\hU u 8Q= N4ul"Bo-PUJD׿ |ئjeb2Mn~uIcNG'j.φT 2ӿ}rٚ3mЪ< tO[ U>%Uu?S(t4~bGԬ2$$h>>v>DeWۅz{إ6Y߉[8|wa'mHV&4nM:M4M z GWP)0ףa%HVPO׈ 8*fT͐Ѭ*kLRig8?aӡe pT`F`N4!< m*DR ţģq)UTǭòZFXi([x~>%<{Z; i ֜:E"z/<^Kz@0:k<fe#a\Յ`å-K o]/ǃu G̢zGe _ǒZmuQ,<=B([>WlDs(1h>^a"Td).<ʊ  ju,ĀfbA$l VG)9zܧw)+F ޻+^孤eG0(p&I&O+z^z^z^/W,i~jR:`D4ȇr:1VR;E?G&V3?a""l4?v*y/nh X8LlVtan`/vb+r5(;sڣnIpj榵4ߚ2rçg'WGR.̍<=7o-]EVvslmܶaz?p>tNQ7OhPMi$Rf8K &AH"t9C4`=C%wf^cg*ғD]$_#2y.HQ3dYD^D6 @43BgOzRq V3I 9Dyg Ĥz])u S cn'a:WJ^WOT{YovߔЈ馬IGo\fCvcQTNyɜkR*`k8p44ԎfυObǿ):LMs<ςfdHNC yv@xbOn-K$ʅ,,Vᕊ!:㍲A(ES%E#+I! x.j@&xVK( 4%)!rV3CLOίa\f?5K[[YjB&HR CJ6Is~#n(4v^ό"1eǎ;vT UZ 83Vcu˃ltz\R[O`aI ҝI­_&WҞ mD+^zVNz^bGU=^z'nzk7[;rUk+^sm wWzfW3Rv z!=^3mҹ<sV~Z߇=[]aMzkַ=57^AmVkU#^{9د^n۞T;"k <*¹O(vMw1ӞX-6UWvAjuz]Ȳ-U"nhRIkWqK"YyJ{W5+^ss/^s9s^Րz^M7^\zWzuO,+u˖W{W5w͌+x׫z~lWzy{=^ߕ5땯Wtuzz\]ZǕ2o׫z'mk+)}GHK>uJޝS  8ZfvQ8y ef Q~LjNz:XX VQc@OэV:6 |>a+.-2+)x_ &"R}'b}9j('bB@#x%QM2[[86 X&UI3^7ҺJ7ؐ\JJQGFzWD:Zg4UΧc7c[>yMK6&?@Qpe #k& ۃ%w( 44徭Q [v\b{5ʹک֘fdr\ q aUC߽ǦbC 5pDgh?Ugu$7Hnnȡ V(nv)QΖ-D@V$ďn־p9x+ T[(5UNPtl8ą < =w:ܲzOnxPg10ӴRK28  .f~9[̓Hp 74*/a7k0RpV4Z$(‹3c4yIeU+H&_}} 8.%E+EJ'}7|U±ərDi{G,+U.eE3=>xcNj_.x`~NJ?;NN8%U<)Ef xW+&gݤy`/ģJW5B(z]A͜4A-mP=!UǿK-9aAIZδ+WՁ"G^GqcM幷VFͬ,Pqz.EbGpAH~;c|e) "=Bo3\&ꆻdd>A'`H5-A&N @<A«#Ԋ(ɡcӚ?,xsL p)5纪HiO]<+FfjfJxR!:i,<*&|fǟQid:݌|KJ?qbH–6Su:QLO‡HJB4jJO4=< )F( OeNRw$+Sq[<W({bHvp̲hzzL;f@@Ck_!m2i*F: wEFzH("Q  K x DkI*4 j素m>B eg!HM9rO{S1wp[#BQl;-W8]s_?ҏUX_:g/3OӉEUݽw:mٕm1ϾiSÅ>_8C-j'Ej5grH-%SAj1x_M2)6S+K#-eiƚj7T,׌.^7N !#֌Ӊ4Mjk`G)ZC%zHɕ5LJatiՈUDP ; f 5h՗j3⟚ڞ&43aWHyar)ڗ%ե1N1D׭W=^s=^s=^H9Hy8Q(HT5[ VR ؂;}z?"|4>85`0 aWٜ;$EʻӧgR#SSTעo Edb".9`z 0RSF:×WRyR+TOGpNڌtm7eАlT[*Ai+JHPTҖ5±4 EX#2}l>[X8PwLɌAfP%5$+(:S fVDmn<}]_NAS5M[GE(qGы"R(;@r/~tIck۔#"+/^$MK~oU2Kܣzc5K{ѧZ^i%Q\JG{`TqE=%UC(xIqgm)`y7jvG)#~Be~YMonHM))]S[jN4i4ȿ-qXjɰ'"jF8&C2*;Z ZQb( D(6INT=F`GLϷKۆ,(kiq4!b ߚZ&##[ֳVwZ*y⒡ +7KiyOs",pQQf5};J((4M8SlK R?JLjO 򭊪ִ-*#VU^vԑCZ+<- =Zvi⹃nj+ 7[+6<>nv jF+zV=^|z{sw=^!]yt[W v5`ߚ׼9Vӕ5S]skkW-cV۹jxYӛׂjYqUMc~ rۍknk±;W4kƹ~VX:Wj] (SY8Vhy^V+Uz\XUkz^+uXWܵz[=^AHW|z!ӗErz^zn=^s7^_ z{WvnT׫+^s鍇6+q76śWCW{W7\HW- wDv?w 'm88h&^.mn(n)˜,}X(3r$5rVJ[oHAU<[1ոE6"[s'^z2kL#[ڱꈣC,")x'mATRi:zvy=ĴA)81M)9c9Rfx\6xxutUp쑻"3J\ pݏÊj|*P3gVaۺFn٭Fh Ѻ)T*{/լЅ(M4)_Di"14_tE96;Ni_^ϑ1XFA7,SajiTn<ژ:O]]C$ZRYUR.u!f9LWkfZz=n\9)17@0jZp0ڪ"GF=vO䍸e3UoVi:fD߉RG"}}Ǽnm-E_B"evVvy"` LRk%\x0gpURb fc~#P)p b ߉N+%uTndE 9c6Ŋ ۊT 3 ->+WIjm`$#{K.^IdQ}ñ:ZVEhwxyуFi:ї1&"efcِ2p~2vK IHmâ /S> pȏQG)&{:.<Ȭ1NdOs£SjqAɕқg_i@ʍ8<;"O&t0i>*N3Қuh q5żI'NGKKX[[V&(I`^X)H}Z&\G[^SFyJ1U#]FNÅ.$RPƧ,I°6]I]!E j(*Wlp^( 60uWX)P KԚ_ԐĚ_~.鎪Lɣ×붰Ko&x^;iOr\KLw\)\iSR-JXTĔ[410„IX7p5h>F455N@LxH;lxE &RҠէC+'NժSRk܉TSPN%CN?j=/p?8=akΩl>r*X+X M$uR7Hsu+~B R+3bm!FnzՐ8* ,8OVnh֍ttVxzmbxDTt<#(UTike=ɇ3O0Jd2!e5-ልZTvJM:Q =^s=^W(ؐz^ 7^N[a7I1&giޒvhXU7G#B"\K(qƐ M4Y3F)[SKI.=gHח@P߯9L^O)搐Z$8sQ }Q+qh#1+7:N$[|ԡ$ D'N(pm]NW/ܑlmʨ%srp6#NWݭxR|8V;6mJ)\&a8gOwȈbR HY[E.j RN%.<7JRS;n?iT@+Ank͵fBY; xN'm/Ka8U@3ר=f%*:MI wI޵HvHT7qێ0[(,~K a^%#n==UtyѼR燁J<(Piq~cj ->8i=͇ތO БJ`4p:'\߅Rp]5K)I)_h1="(fIQt<$uԓt PqI"Iu#xLidգ[4L6{𾔌EoKy>U*̷ m(3A+iU E\دsz5ѯW.n+ מsb5Ej׹wz^ԃ/Z^mmM+Zۗ׹sYV ~n^$V*]+nfwwGzК-AGtA$yJ*NEە[ 恭R Pb+pG,^8%VezVܤ^o\G~-ENj"bЯ]cOYLLߒ7'7qo@+N <鲝40䎡fE2up|A'F Y P-o-1JBebKLқF=$4 yF&ny+Pϒ"1!l:懬0RWj׵>#N]%E>%lQchh=Ǵx4=n]mL4bPn < liVhRmu> ?~*͗b"nRH#mQ==>~MG)e$}!y)Յ(ֺi$? 76ljWR# eƮSv4^kqLN9e׿[vNF𐕦gImo?HM yWb%~>hAÁJ :2_ +RDZLj ҌlrFS_@Qxlc)5eV#"G#rhGSp7UKI w<$ҡƗ0`T(}IRDzFX#*,x4!H6K':/G/2ȂJ gF;o[Tu43B+Urk,JY :>4EKɡU5 qQf6!"lag6I>U RRN $2]\_։9~:H {kGo'΅(VС}@V 4h]##[ƛ.l)ΚKt4==y+$,JT*E 8;wMi لjk=|b-T-uq:Cqk8/H{`7~g,\զN )(6 =>e\MJ(*ԱM͸z҅.tژ$+[N(ЦĊh1`d32f*TjZ-iʌy*ҬFDۥ +JpQ)/YsGQ4Kzsj4昴%ptEXC}l#AG9YI7l.^<ے=B{/n(Z(`K E x!'> l)"/T%%Gߌ8ۭQ3J7R=\88=a6ӖPVLUt*`$3 hHT/keNWpTWn:$?@Š_l< 5呿t_]xR)4DՌOp8p2@PE$:īZ(zLmDv)x'QMdz rVuiW'=[U7^Jl.h֫zWzWzUI<צS=^z][D[׹{Wwnz\ӚW_W|֦5s^zksu랭d[MuU+\UzkʼnVz\vrV=Zd4檳^"Z@tU5ύUkznx׫5^ۖsuxWܽzW۞W%kQ^\zW6Z^3׫5^s=^_izWÛ|j4z^ksS[WLz=^nz\IW\z7~;^xs5μhV 疭ksMXNnXΟO=U@l 5U׫6ˊcvƶ FyJG-~hցOۚjm+v6 ~5&jV\J؟"]"|x8hTM$};~U< 48r)JYTV"S~7)5PZףu.ȃ|#C~8pu47 b- u{2L9r.a=ʑ=p-Mw cR(?aM,w; ,CW8K}ZFDm`F>\)4Qap;9MbcΫ.uke#Äח N4emn` QB)a$~>'r3GIe4xNᾗrw -${"x4yvv(u[3W[~fB|E)Jߝi  t&rM&>r;.U4Uo3]TRD&E="4zC3P;{p0Gtu&[+M9t<9k_-$7?tŒe'%xЋzDbT v>V0bheKK֜/6Z@e`{mnVF@PЎDžHؓc ǖhcH. A۞Mw^5.Tl8ie 4i:5kwj ѧCiޟĄS:{6jAPү.:Z.x[ ^`}Q6"ު:X !¢E6箄X|XTdrH->'~-Mɍ*S%@P0|4 WSw=eI V(4lA<+ZbS(s!x^҄S9AՅ=BfEgF\VȚw4c~.Cʅ;g?]pЯdE>L㺓ĤX⥥/%E~axDKVMՔ K mтTC^YƲӯpMi_g5r6Qf goi#UI?DŽҔ/Q4cW{+ʣg<~SSAh}UᔱBb []/K2*hu0C&im}çq1\.{_ljMPgJ*xcwEö&H4!R7 f6c~é"&xUJ O@G4~<#ʏ'ffJzM8W͆8O\S&oL?8%?(Ғo[kc:)ْOx@`J(@OTs(F25 IBjxsQoP}pރ:M抄Y40S3Toy>557=5\~jbpNOP\i8T֑E?a#V ĥqB"2z0i҄6,jG=NP)rkʪUKn GO#ѯshIѧfΏãZ"kb<2<4sAa+$$e*aru㍮!I>0j=rt§?kK41 @׍ЫݭqA+t9Ur='Qh$YO xKZɣt$R!+h|ooHʃ-fܛ͗RG&I(0(}`;}|aœmc5_K y7 aR}`RmkqbJ ` zE3m@<3w {_jIugN9a$'lwx|rɩ 7-cVR/|,F#8#a0ho5gG 51YqWh^ʶL9e*WogȸJ0w*UW?YvէMȳ0[$kC pThkxlKɒ(aM)-bA9pt(ms^oY=4k&Pq f\Q*h ۍp"ƼM%'SkezWܰWj{W~nY8zWNlWkWj|zWz׫iW.n^z^C^{Wt^z~z]WWLxWoW۞Wnj\Y!G7Xb-~n^&z_N[en1qXd6T ZhV;=[5xV sV UZ3mt.ZɸI$lo5ql;9>&U;k)Cmt}=eȺQU#FK|o!(Qv(BC/iꊭXsݯÅ/܆𥭴TfVZE./DQ#GeD4\$l̻0@uŸ{msQ[Iƛ]qJ߁[J- Յ[x(U7s<ݻʊkzWKOWIϓlm|un?GʯY&s'Zݤ{-:輸(] nYĤJqXp;p.fNg,t˭9a~`{sJ"XsEDx^#HI 5u:RqxIܵ\=[a+ Qjؤ{:N*PDm`/PBҿwYLj'Vt `m4[>4*v<&fLqU(UDbV06O,\+A[bEdeb^ 2IPa=DRb I*@.W&"!LAS /-qC`47ijAr^!WJ6!$؂߉HPzge:j9b[hIc}x+A(k½Uzkj< ev(ۿÅwV葶;R//XP”txljjjc$WLg(jqͯ UrW*0ރ%侱: 77MQWhNU}4qE`ϝ=l_6h5*E8Tֆ(cNiI5*"]E( xܠk~#qºh.Zi)p\a *OB.IR(zePAogSE4$| 4wF#-r`cThtyb4]{p#vRvЅ'D0MXvu{_NKU4GLn;+l/ANE)@;i"S9:rb3߷9 OXb喚R<9PI4MU˚6SJʎtM04e2`V0gڀDpM2h8ҋZ&{ T`=UCOSak"y~#GwE28} ws9yěk`=޹T?yq“OԼÁ5+SS<Ӌݔ$j~z4a)z:laUT vƱF>k7dMVw&Q1b/KUR0#I#Uf'+^q?P>rR(uA6?+K1nʼnE:*k*mӀV6z+JŭaT5vY&@Ӕٶ$Maz{WasEFyxkZxWupyI#K̡ xӧ=ec<2%e4M \UJiôח&M1D\X9iAnDmjsKPP۞8yLTj7r fV Uz^z^z^zV |GfwPd19Uu$A^lseZMȱOW~U z}ĨhbQ5A27FHpo%(03~I|=<2?)~T:[GUhNl ~e;ij*e,W]>жP4zI)OMr8US`mV֦4H  k&Ԕշt{V`#WO6W>T6RHtՁVbM%(m6=NMF%*LPjjJiL wϋl~vK5J,cݪīOM+Je#~ ƒC5+.uA# @ѳwd>h05N- jKs9B!VPαhN Jv1_$hMƧ Qi]vzɬ'q!_vcJ6PMx71Xu _8c^8SXY `>pي ߌfJ~/3Yy{׹긮HoV"j\ƶk7^6+k6+l׹aZ.]XuAG=^K榽\K_W{x?=^z]~h֍{=^m{WW׿=^s=^qFkk^\,x x׍x+m8⻸hܪ`EK+1z7RЃ?w;i ke5t&L(Ң@MxvM`l8ڷӓY)]!۔I³ 5]nKDHۅǏoP.hM6kfՈ*Fqki E@?̙ȞQUceǴ{AfXm񭃧eF=&-41BF52*?erF[ڜ~4.4+G6<&Rb \侧IB4^2sPUIq7ݑ ̧DZGey4.Wԟ\ 3Taۥ^̷SN`/'$P 0Ƞ5t9gZj)IT$axb4ſǛ񆖾*E@ j,@ 2!5e䬇5tҁQ+0(rB> QR#lbh@}7`u kVha&KF|#ֲ{ΗzX?ZY>va-O/QQ^*hѤ1M* zvn e"K-UBT>yB1(]ě|“Ң^y20bY6j#pPSi8Xt2IUxOp(ѻ*>B$@/I6=8/f W`TLؔ>d{;T%hJ|>Pp֏ESGb*/Р;I3yqS^Kg]n'H0$STp Rī*s3ˡ:XVz]يIuO=8DžbeT 5?VQ"jbEg)MFtS5MުIrsr&>`ǂth bX߉M4lTA~: Umjs%d3LBIԅp娲blVj ,Yf0Ծ&ꮟP᮳+[ ƋN{cY-$$vnM{r;p%e(4-h*9쿞奤4n@;GC1@O[ p) l.8Li1CՌ*Y*"yTH -pިO*:_)Rz+'=^ =Z5=^ڋ׎5sƼ+ܭjWwWNz^Cnz]z~jb5ׂߛMs+5v禽5禽55n^ӞWxs=^^z_T'/V)+\V[5harS^:sժ5s\nX t5\yZsV+U5Zj7[ߍ{W$u˚W75ߖ׹S^s`Wܵz 7kUr^zYWzNz=^s=^ kU$s+lwsyzj^۞Wz^&j3_뛫W7ǚWW5Z\ ['kxc^mVu#[su$T{rIxV9$6+uGHү6c`xK|) M>!I'OXf%J*sV(Lͽ)Ph$R){n "vwP#ꇥYÒ)§ 8 gƄv(:$mF!)x8#zƣt Y+2iVݔ36;gE5$ _ TQuP7ShRcUⓅ+\sժdWʘW 6\ +[mOC*E\MFΊQru < ``Rү8*"}O*4noZ+ +(.I¼o [~0HׁF)p**Sݰ, K[nԟo-ZzФưV7&?m RTb>%\-}4z𬮝ѫzWĺuXfW>s6~.4ȁ{ ,HPD(41d|`"`ǂFC,)#B⎞28K^ h*v?0gut6 Щ)€X_֦j X{6kV\7W~S]B6F<78@eF*=vMؾ*]p_!Cn&@ۈiբ=LtˌDI Qk\@ SDS34YezdUp#7BxB"h<̽)"I`?x&]L!k_ѻGw yׇi h)I~̡i3f%n؀xeHM\OS"j.VHE£>& %{(=&,ʀLJ0qD2UlOT I"*$^sN$w|Ci!jGZcFpl>\"Cxۄ!]=tbALZ|^G VtRH*;H)ݢEbji $hWpuA2V(+*9SZ^j^»VU7ՐsU;uMj zUM=Zz]~z{R [Wds랯WaEjoV2s^>Vjnz+uxWqkZj\WExiVzWѯyuVj×0ECT5W^Zks\MiI+~8PvTޒs%K')T7ۍ_^SƊb:FFρz)PwJc8&7is^E0Cp+_]acn֖m,(:;@"g\AZu7ΕiZV (OYD/  M\t ODzoq=IXq]By G+*i (<~H\ûQ4u$UzlTsSQ)gcl㦣N84&h55yeyR `]c} hW+g,aؽd^kX8 epVC{4/[_TSȬpv6'qpՂEZKqNe.1O59uK~|lӚ3+8 bXAzUNuQF4*5KD=lStn".zybp4?{H;{fco.BR˥vEΚpho->33nC~3seL=g eqDۺ^릊Ű|kooVr0Wɇd[9mpD.czz*fV"FI[A rK$4HRQA2NX JhTd|QmѤgP0,6!h o Y|HkT3tR a[MN+sDU=mt`F6K z`O2U-q?4+R3'襺7.>p U7FD}i)hT\=eR?}.e qҭF>7Bg6iV9VG%=$̴bmm&(╴pd >PqVɤST>w byVpPͷ5ǚ5uXVnzr Z:ut‡!C*} 8dMi0U\9(cDDXV,B<-)1hZX>DRWbbP]M7:M0Wܨ@aedq<xHEBV_@ vTVW 6HTSF&a̧U$C?L LB;GhƅL!QKRRE!,ɥDzvPmpG6ZSqAdU]951&<>#PE-U}63d0>15zS 0M[e@÷i* eƚ̘*5Q,0!VA FxHE 3P\aE[Ruޕ=4RAAR}< 56 @?(SN "LfѤWTDPK31rI扊PV`UFD1ñ?Wڢz&܅o*w )S*6tQSoM!+}7gGET1I!wS?Q<;CtpWm];N+<1D&#NIqSL DFN?{c+UPDTMio^ƊꜦY=?g AG\V4CYZIh2sCP*6Kym O, م6%0T={! e_GftqƇ28L~Jk嵐\Ӏ8Ϊ ~e\1-B۱?_!F/1< ҕ>6FM1sՎbM=d>#qSfir(xna%T97Xع_Uoi< .tR4?bے*\)# }$zzy%"5h ء*/ܪ6Qg3)Bs =å٭ʋt":54ǰvhz!]dNJLa=˹_8NN{j{i(4:`UU>jxs^Vߏ ҚJxekarFLQ2(bJLCK [S(F蘣E?Ru&Uõ /K}*mE)\lB<$2,Lɵ qY+ Q)IԜ?+uIpSJC#vofv4/ 8 0^AcRW5;r=^sq\ӷ=WYyQUra\ѯVn^^7Zs*j½թ~^=[su=^s=^s潹ST5yךW7+j+Q] l خO}2e̫651T\l 0[ pE==N<RyKZ(Eu^E0zijb8Vm36mNJTjW\w"nMneOyw1Qԗ5#S4sHmH/'Sn=MRwr4犀N? sGē`8niӉIVnѪ24OP5W߸O @Jh>ךSA>W܎Wq.Kf[sJ<,Iid#Z.WEF2u I_֚JxN$Dv#-KY 4*/{nBt3m,Vй誾ơ"?Ezf1ԗ 2Ua U`AڃAFI{&~Δc!A-,ňAԅ=((>Z~a*;+Šd.lב5N+1?#{*(Բ5|nLע&Zgg6V]ʠ߿Qzj}'WHA4و֍ 9It1,TaOxb 3CNNJmQ_` "^P OLe>fp|.հ:e pv) ƍXPlp5%iOąXca[QSwJ+^?l6B9Bm,uSa@n8Ւ$~*~֬^-?S`6*Vg`:Dnz—2UjBom5i4U*2:`ke,1B GlȊ.xN4zbdbġȮ'vАtKjTc`tzGs\p8„ RvEh&qn2Ry >n)LNK~O(tah)Mɡ4,d$Ĥ (#]yJ!aA$S}OǕ[51t N̓Pj5H =):ZM<y֑e2AINaPnG.+DVY0mǷ7T6tQB+mqIJi t$Û4瞚UBmOCbHU.(nӪ-H$@(:xRqnWxDElꦻt.d76W]hC%$dU{߁d0IQz.?,%]vJT5On5lNH8 -±nNxJBuJ8Ōl~6ĘCZF7߆MO"2U|;zwJ)aP>ZJ)4*KfЩJFD]|C0EvSX՞ i אh0܏]hqWFhRȽ[媗zv*/UY駒o:+sˁuE~{w&3a~%B[q:gz}qjuq:B(„-нzÖi'ܨG_ⅥiN4U'XTaћJC9$9wY @J w q=x}N~#`m<4&9)2=iۥ,8N%ZUPt@j }/v..SOQIb(VCL4nj\{ 槚W%ksQ[\{ {rZ=5*MXWR-W'7Wsu=^s=^ yr7VzsuW/Wە)lVt wߚl^u7[{Q\ߖW1MT?oV*Wˊv/Vz]sU7C{kb}pWDE m^)QыKY.=[顏2gܓG Za$vDmuM(([Ԇc3= AᦿZ0ҫWaXҋǪG',#/B S bh$P/\_%4/U,цbZůoiU욬|;j+$ oz |FS;f >8b?0q4R柽&C9*vg!F(mp x\_F/z5TY^*wMJYH#wQE.6tE#ic{x l+(ڔt@paBt-tYut*Qv a--PxraY?*6 G~5eYYsgBW[{E3HID~{_*lPүN~[V>ޔ(e[wգ58hj}\wPGRe 1wg'n+}Цy?9p_?њ(@(R8(y?9]of"j#o7zR} 9bN)?Qhb/c4x{a_qBs4 L+,#a>t~sG?*5B~U.xYcL|9M)c6>M qG%=UWWoJhUn}$}\@ü)CՍB;5Qv}te8t? bTĥ;˯h) Mū֞9)pF*b@2n#"$Q1vҫчaVގHiep@;Xx\U&ďMOE l`U=Wש/w<G>zP]2Ah{ߣLfș5KRg:i~ΗtT)dkVf x1h ܨ6/N+2pznJ6POv)Oef'-IƏY@=4M\Qʔ+¿yZz]3[^I_iSG7ũZQį5tgZWDxYv?)M[,_i[(c؁ohӧL#!>D?18R)#iU:gLZ*Yce,uƠ[ FWݨ2.ׁu44l8 FT [մPuԜ\.LUTB(:irHe*nZAA5=̴ٚ$G4#sP"ၙ]yH>3e+UKsLM()BH%sMsƊ_:)lk BOØHS~$GH?L}JW xIlm:ө4VjDjH-)*-f{r˜"x^MVcKYsoomP G~~6>FiH hYJ+UmNl%aC],(~>?k4؊4dIPM#>sр;rUd)hJ8#X`8@  -1KJ<< &Oxbfqԙ)"x}j.vi5Zp֪Aux/]0WK0e}maR)3+qˁTW@#^K MaIZWʴL6GlEAdH|;9d:Ǒ+z}TcUaiY\w?p9rxSBd0UVx^1J, qꯤ$cLi&:epPŭTR $vsJ*/'^ *M -5WtӦ_6hQ1#qDŽ(%&iӞ80 %O^):D"̉mN=*HKjzM͓86lR:9Z{Ws^n=^\zCnz\{Wٯsժ=NR/MW09י+5hצ5u-[Z+U~n]2ۛ5ǖWv;suzsU^c^WѪ^#iߖVC(j5Z[Wˊsu4kF UvuVZ5Ukznz]U75 j{Wj{W{W rWۖV@o׫zWs㞯W|jV۞Wu뚯WxsM55su㻛W\zWzɯ=Z vzXUfX~l׫V냀cn9Uج,x'nnXIמM\WZkSX%6nxɭ9\$͊`f-]I{dЉTKa*9V.anP6aVkI,6Z RkdP}r)NW'P$xȽO85E緻x}c>hXGlּ8KSU${[\+Y$т@EǠ꬧O&Ig.@'mWM,CKmӶ)S/)樖9NRo@V3^N`}AtS U NF@ kK6Ҥk1t RUb|Zm 3$ El+tŊ+Q] O2_1VG7qyIDLd=0hr EF~ ui2@;1'&, jZP=QDp>z~FF5.eK}`[/r<#OH溕d±a|J}\q(=0}PS*~*D>?&#dR+3UcX婪2UQ_cUy_i 23I5z&-zZ{XurUe#P1^gi}"65HpYU}GTtTxZ=*BOR2}V~#EA%vcʏP퟈5तČv`Кo}Ofc5Lqx()s [}RҰPGMGS8dqL8TW[v1x~u*Zf ѫ#IǣM#<.b?b)=ZU|c&J$k-; kXOGR 0V=tGqcC$vsF:;{FNԕڪ ь%х\+<8|KB/a(Io%~#N%_*YC_-ɯ⊸Vi j /)m'v.7+_th,jM/CqeY\nVaC,R-`A>:0$2A IhHXp3ŠWA ,EE4UV }EN.0G,U+S4Y8VP÷|xfe)K %V70c_8uol@ƋݹFYbW,HӷvF \\xGx,TxdDo"R:M*F/r5U i_i۸6j28|~URSā`_#`2'E6u?攤1$MUu|xY)'ۡEYG@ uGª@aĽ+t9Hd2]#dqZ3sz>=it1 YƄO OG*#Zw KQ~wIaf-O0};/5bTDE͘0Gl^(@yp E/-vֵlur)hFat.w!y>:KYFO~IppNW8iA_9S"ًr f-1AeI}*@0M묦j8 {ϖ'ͤř/,TtٌVJ8xLR"~Jh8ͼ[4e0-hń[MM`YU6Q3AtM>ejCm`ksS5ۡӚpvvXmkFK$թ\E1?E,H]\z> A>7'E )>=3OAVm{Ϻ(4~F ^-ajoGxVG$񾼩X'c Tў Qa`q7{Hf h'>qXK, lc%u%^"S.|Wz$m&T=iˬ~5bΛ\`xiX/Oo {sJDL'>dc=)?:Ь"쵄S7vܟ| U#^*Ry-ϙ _M"c!COM[w:Oʦh;UK!_g cU:+1Q<:|1zp#=h{&y`%n" "٠ЇZX`~Ufm>&&~'n:v2<>'Vܺ=@U4.goo˘V4)#/FJ pBԕO(騱pE+aʁ 8 ǁ% &(z̕PJ&خB/v́RftV[rXv %c))A'} YK<$GiE:&^ 厱ibhhNTHrJQSQ,;c lb^ӻe\{+Y$5U4>iBxX()P,^\hO"ɯ5Ʈ>a4 ;v"l %VmE0C49 LOyXwVgWBG N^GyTn^hD8&̧1kI)mV y&))(v̓MX`'-M@Y0 ~aUx|b>6W8l%3!2#I^ B :Bpµ'?\\JȠ0q mI֋&=~uiL$̠aqeKmTԑ=㿆L5p~χ}Š>K"YvZ07(׊k[M=~X[.J2]!(U /e,Iba%u\NDQ*F ipMeJFEJSچɨ$G0b /k5pFRisqErFj|S vJd]( 4[(#.eg&%ikQ4Zs7QQ*c0{{p偤Aqim>/NA9^$̃Nl׫Zrz^\VA=[ 9dՐB^z]3[^7ԃ+r5Y=^vV⹉~V=ĜV+Z++5Rk}mEn"u5k榵5-kDL6 lW/իA^z#\n nhW-㕊W:j~ M2n-M ˺dvv׀NԝéT{%ylt[t//*^ǖyG"XEGM3k^uI})SPm}XWFk^~P3V"k#d,6cvM}W<mMhɦߠ.W8U@.[7$&֬"+RaBЅӛ&kՀ<={[N{Uzدĸ]{^$h˃}t=U}Gj&;?,uUIQPci=`KK,Ԑ9 MW"IInelCUPVX,T>;8?oVJJg?A3ݤ|ruI*׃aW*@5plßJh#2;@u?'sj0-!im&W7֒Xt|%0=405K rG=M05ph?l-[6XGk&#۳ɋPd{ThyeE"K*pj ']¿|VB?dy>}x>itkЎѥ^./K򹒅Wsj-P!~W 4{u2mxYI0~'x6j Xmj-Rj5fcxufP/*%USq6F 2x"W)iQhAףp ^])kOBG߅zdAS罬{{wB{ 5)MET &1f#e&+ n /yT\ʩƒ#O?%F*)O|؂ݴJhVNjڰCz26c0T+VTA"ЏnIh͸j~j~xLSu1*~ZŒ*IǔT n.=Qx$Pukj|nA4$wR`4oS@fh>!'#e e[R=1Z-5&>zbl"AחJG(:ft8UhMxw'XMx թzY=>r!oU ߾/(*Dєʊ@mF{ehԷvQQjBskQE?Z.sӼ`S5|GE*L(AD%ObWe(qDe'hɇc)_u ?J˃[J)uE >H j1C&D&mWi9ʏ,|OV&!faHsdMY4q ֣"9W<4U6 ] C.izRr|\ߕ&+M)2AM4E$޽(~%^&`4KxjNʕPnwKgҀռ~zG_=^EM{@䂔(zh>>x yۭVn&ikO n|D`& ) :(H2wᠽP'T#\[%R#֜h7\k!jJP}>IKԧ$ut5LQq E$k2Hꦴ}eu]T&9;!M-& *bj+Z^z׫zW<ѯW|z׫ÞVA׫zW[WW6WmzWWMۗ\9{W{W5Dz0,֢%-jo=^nnHמV"זCXZ\/ج2zX$kJlR75U2Յ`fkukՊY,mՅGr Ղw+G7[zTAz_9WlO.s8{6TNb>\N#GQc\p~#4%@Pu?9`jm jHz[T"ߠY?'}-{GT `dWU&~XtTJP ;x}YxQuӝpՋM2`=~]( ^#0Q6Ca;_xÊR14擏͸tӍwf*Zx׈ (iMQUQmBz`z҄',x"dD/+XZxq `8D̢B Pwu:P*G~~bI>[Yd%Iw͹iGm2'\D$rJXxrƷ*J_Ӭgdc;C~&Mr¿xV2f04[?@p,v7vłA-׫mY?r(-(Q575YK-5[S^Ǟvnz]FS]]WUQV[sպZkUnz[ǚxߞuߛxjkŚss^l7e9ؒIYUݹp'1^`3 Y 'g hDi| D?#jdPYxd0nR˷ys,aURe'铳P+ ڢ'b6>+%1I+0 m;tΕEcI'SjH0h+8eb\3ëSG$2W ڍF#Q-?N2,mGv^O%Tr! 49f 8 mqm/[2*:2º"Hb$Ir`NtGh.{F ix6W,Tpmw+Jf{<#Z6UKNĕ_yo R?f|/#B:XהsF(aSF}ꆳժ;m#Õ5qHa hjW.EXmWޛIP†@Q;_PuSD_Qe#THݢSk[%vm06V|@+ۧ8i<7 )0*TÌEagiqHk#}KGˡO M~p>z(eVZ.Y1}9hQaĖ9jb#Pˆq`bIW&Xh~}`Q1}8#0Tɹ`My@p)51hTaU"xmֶR;3ÚV4 _2P!swW[ΣVv@֝z7j:Bd |}He,e'RM sꬃp=ÍO*57N V>;sXv 90H "?AxijG (G,Z0Pg4LM0lS*SL1FY+f*)P"؃c\]neAChۆ)LVM(m˯4 A -LSR> .O5p{i65]VʭRi'hEh*D0U?kpzA$ՑW47z'~V\{jlysbnU=V~z]=Z%皊!YUZUn ە x?7讘ߞ uo5Z=+>W^}zk\ƸH^oaz+nj+Q\K^PFIګ{n#GqK-tS*TOPeF{jGI^GEկD6E9H>=dx富IU*XKVBV<6]tV݄,tѬP‹q UP4`='Ck[+CEnZÛ[sƷ]ךrO7Z䰞z5VV(9{mMjWyyj/xn^=5=j7^}ѯW׫Nz^ߞWZպ~n5Ks֫E5_mU}5Q5?傫ƙ1>U_lh7}ItޜnIeV5i#ؙLnjIN QCe|kĿ)..tOHȎi*c-)EӾ`hĦBS,X$zhk(ꢙ)`N}F#J0>|ɠ˨+Itݘ0 ^Z:1*^z:誱x(C Hf<Å(_xԋ&*tGܭ2cqR+ğIemӂI{u >A40* T)Re0y6+P(ƋڱI>$zOT0N'!Cu#EtPf p^ Y Aա"H18̉b)(SWMT3SN빭ŶAvՃ }rňLfde*T \hBGEҼ_U] S1)t#8_0+aڭ% !ܝUl})B ш;GvS9x;*{t-adʉEja P8Tf:u'N4Ut=Mi8i:Ppty|.F8 4uKKlx];{bOTr٧mV5\E#6M\ bQJ oI iר$"X0`>ԑ+ҹ?k<2F)pEU'K۬_np*)vmO8h`)*6/~mj[|ȰdQt8U$@b4o=8f&7C`/& -ԑGؐ|tB4'rb*46PNNW3T[a~yp&~fY:{i 4m?.ơHVV;țpG߈'{.tR(T6ح)4+ڤE&s$Zܩu3#SiPCoU>i3Uc["Dmݱԯ<>Ӎ/ I)r85P+΅MEڲ鷽dy%a('Z@WE7jq6B؁{^۱݌iM/> $b"7}ms*𘨞}cs \=ME7VU c(Ol2_t}0=an[(mBR %Lӧ1ɱes08Ĥb>VUV ͖)Ju aB@+i2dpJu.%'ҍ3wYFĪo,-9E9UR8Ce90e5WË`(E#3UoK:Y U"#Oc"i"LEX3ӄi{7{\ Ci`(b;bV -:=F6稺)z+[^Jn9S^oWj^²~j^W'=^s7z^Ԅh/5Y[׶s^6Wsպp"zWzyWWuʜtӯׅ~%9)_g.6U{ \p;6m5WbL6 E|$G&T UV 3z:p Bkx @O3_RTG ;)fĴ^bnqi0IRSeYf NV6ZSH?>#L8= pKk<, aF[(a[I>:il떒$.x["E8oU0fD~n'ID{6dS"2)?whi)4fHaZYSxN'IF,/PGϥ*yQKF4-\YDZ_eiCTQcƖVS5Y {kqIV!3rkFoT^`O20{ qiiK[ Ν"؝mtk~־p\ųy W \O>}dp5 !Bp40$ K{4 G.j<)kх[m/2d7^P',f0ysI iUMVCC~z0hE5pk>!E,>ܨ q/IHSFsIӁNjDEo͊ndsUM JWROv۹,L>$uQKzurMؖ_%v{ K4UbX]DD`x]5BpE,$Ki0Rۍ,[k13l1mDE]$Z)]N U,M"<8 !']6mw/*;z($͹W m̤䷱eO>(}!ҼoUZ’;3}F6]z;ڵܛ .D(Q`┾HM>^ xX7E'OEN 3 cMmV8'tMb.jm}g.;~tc[/oJ^5V=SxV&@qraۆl+ZHZ{jzJlg6H j=2 -n~&"4dTt~z\ߗ懚55^\zUvnydSWW{W9!]Ź`1Eq@9+q\Z^:j\{jOWE9Mwzk^+~zkS]m9tl9wsSZ7V7^sպ=^ԑVw!Nz^S]ms^5^O4MhlWq ^S~zkS\-׫$maʚѮۿ6+byrn۞.z1nnY! TN5Usb\կW$<دW.Z^z^z^z+ڵ=5"r+UZkR^Ľz=^s=^^z9VomW [ͷV'$}|cNn"\<+Uśw-Umku¼k-ZNzzHjyWCnjQ}9֪4;G*kuVՂF6+ՅF* __M)OE^FvҪf4pg˘.>b( p3JUE5O;#P{#PP+RXGT*%QW{% F+hSGK5m"*.κ#iik0H'K6Xx{_m*aBv!ձ$kONXlt ΝҚ1 !qLΨcTqJ_J2RvP-O_*d7 $?ųƋȡ|vIU|k 81JYM0 yw44D|n{h`-vCx, 4I&E( Snu );Mj8"}(ELs*ͩF %^m{TWq^y~]=;6;;MGuo5[a?[qZ|ytVn[WG7^ 9{=^/=^\z=^=^Mxz]ߛ{w=5z^o75Mz+ƽ^V=WGNV+W`ߚWzz`ZksX&suSNj/bc Ϟ* J;.c@{u9tOKMNamĦ[FUA >܊KE$s<(+Ξ垕Ȫ^eVrf RI2y͚l+Ɣޭө]ϧWqJgi0P<":I#qӓA6f8,ÉaqH6_4Jk41T:a@:0۩ <)hq.VޑQhu+Ѕu+5wNf2p"zՎE=mZ#zcEW_e>x. ~ĒC?,W[-:%3{[uv׊GW3:4\)W%L{xd}Ma4SH*~.U'֛}'JEVDgul*&#c=oԗI۶e])^ѥMrX:xTP3Pm̌؍3Ah%!:\;[(ک&ARk6_:wԨߵФf)X4DztESTSʋ߷ pEa`,]ZhD $:6 {cp4`FeS~xo>Ђoxτ0BD(H,qWP+.+h+@ 8*ePQj>V/#t>nmÖV)QS0X-pÈce SCNp;h4f`l/YkI:l8Ut4l Q%x-#n 9xF6i{2っ#>R_Ul/(tОM| cWQkhnVVDWsc d]-^lyJsz^znz^ScW6ksUs␤_E35P;Dצ&ZH.9ZyO,j^QcVWW{ ne梵jz^מ54*oLVl9x7$ߛ׭nz^ՐJw=[y[w<+½ydǚ5\V)=^0XWEz+26ƈZӿ-5Mz k8]U=5=^s=^s6n\z]]墷^/M{W{WD۞W=UsjZp[--^XߚV7}9d׫=3T5χ-ZlmV6T[͹avu؎n\sZ+[w:Uz#{9FzG}O-[R7TYߖVnZX$cEXW_a%G%E4LT:Jކ2q{[+jU ZO.2aYˆ_]x Fzd} e4Jp1]p4M>j&y ]Ӷh+Cr@RLBqU^P'`OG)5ΰ@mp,44vS6G&cv>'6.++o@CO4w䂔4RTi̕PLR-x{9gWO]z#4| F%d[/t( c%Tu$UV .TuĨ+l4_sʊ|UZ .RJ%')Ыr T\[m:H:̌:~T:QzM\4uqpL^5RXr)*^"en$)?bGUIX $ tu)~}*fHًqYLE:]K6`n. Rܡ+N iE4o2ϹkJDsM>:qѡߡxxopn]WBk{zL.=W7lA$i%a G(j’yYl0HB=v)V5;=|Yռ×[\;F{X| IƓ/@!*pX ؍>dņO=+sߊSJ55ZqٍQ"2QZ^5^&1 X4:zZ==;oТc4;VJ;4|(ܛ1FPギu<4ȤNI>eܑ~V*\.mUSW⢋loK\uSm{wk^04xBAw *xO4Ұ,NfDu'sSgN'䐡~04 UKU "BXqR6=EN(;I)HEoҾx-}HtĎ'I— A%g&r+dPgHd:|y)zhc6-xxruuPf5opv=,sA-wE5J8TjKG;p@&F ,i1F)`2&oUQasR"&qLo*=FNQUzOr#{ǽ4i69v?TP$Y%O-VǷm;h9r“:.c,Gxߗm7?3n %_L+"Y,(YW@<<i ½M )- %I\*T@ 6[h5tYFpO+P5Uռdb#bU@:}8v* V&{ӾW# X!)L5*hR殦t`1&094ȣ7п[6Jk _'Ck5.xF0h>mTtDcX6,\.4*MUB-&hL-o&MLnYNZh(,*-`dbAΏ/.=Pp oXp86 nć!Yo >Z}?VޚQ0Es1`=ߚX^{Z7>(:M+eU sI|]X>Rٌ)!J=P 1#,'`2.#~+[N4^QC&> g9F XGlEh*JiIj5Jx^IG;p #c=μ,&XQb K<9d4}~94I Fӿ5TZlivU<*EYEb-t#nh43f#ҼSz1_B>X,RlZ2(tcbGi|߱7~<.-0yj8m=(h~5OBʤj|}SKP׀cQ x&)a՝<1["iƿac`wlS S. XkܩLѓOSӜ&#ST/WJTxwHF)R&C"r"-pEɭ$Ѓ)eY_=QNBQ4tԝXҾ:马uO=pDryZDG4)=6ej-X)MY6%LeZi7dx\) Cq[A*OGJNZvxuIPPOٸDVdQ̾n7aRGRXUav;oG "#IӿTY7Ԗ_̔I$^m-2i{AxLvUi;O_P<{yXvFQ7oV[Tei"XfJ=ԫ apWn'mSxW3P|,{ݭKJ/e2qGVUuzp{G-bAJ ]zK$op4DjBN)] VIJ f"hAJsf@l<;9ރB+E0\ӏDžI HFV8@UܮFL߉V3ZqH*2S:t Tћ2xm!":Rv>TJRUHrM,ztP,<6 -ΚJOb~$34Aw΢j0U#Q8QlԡߔV@m֍d\ȆVD 744J6 48±M"B]h^T Ry4hןN0 JGUdۿm[MtS:`]I3 DңH ՙ[sg+`E25vd~RΩ,PdU{O\wLd , p܈KyWQ|]k|z7q5wWV-)_Y,R֠)?z~YRչQo n__AkƿoNX  R~ݏ)ݓ[*Jbl΁:@`ҍkP' cdCc {7S?P^ x)F70IcÚny›[AhĘP?qh5i=«4a%&`iR+}U9קʘqV+1J`AWAOXxtFLQ3qti?}qi͆ZQ3Aꮪ\"q.bev3 œV)ƒ: n]KourGeP)Rtf )!:qA\N|(R6akrhNJL rbWK7~2Z5mT%ǧ^l#4xOKCoL>kUnA-)3Sa.!Oz5?%u#u$c8ux:rVY+^n]U05[ݯWz榽^zz^["+M5^!U`Þl:|<7V<`o 2Yk{~j42{%N먰Pl>b 9a׈V`ˈW[buPK K T:9)%j\b˫EՕ+%pH9IH:ƬvLҦ)h瞊 ruK+f4KU5XY$Kz=u=9.n OV=(շuF;6+]#Buvy w6dZj{k_w^CxFֶ>u$ap''& B`_JI8P1YɕWOn؏kk o"쩏UdkHTiʮaR5Stg+E!{V$]MڝY|9XQ~3 h.zt t0tk_c><ҌU G=dMIH7uy19/5AS~h}' '=&v>yk4+eh8R[ i^`QmA婕Sv Z=(`F:LE/U8Xjx/?^NsXPA[9˖q߉x}i)CCT`oGX+mU ]8Pz?x>SC&87@4*$ qMқP^^:yXkG }xF>&ޙ}UF!vua^F4zE2zYP,3qzxQ k#$Y_m?5Ӆ/-*WQ^\We%LXBVkxnh*S= qVeYiv!i m .]T3auM :Ҭ;ũ)Tщ #E)P)&.|{#> Ot`}ڍC֔U'pcH,Ջ 3:9{$kE%b ne.fsEf*t[sH5wЭa#7{B 9T zK!$*$JnvQρ -pcBJ? y+nxWjq]pq@*b9*,nM2 !j1n2DCF?_Qޙ2>[qŧh%4OEC)Ef,F`w>'Sx}DѻJ%"*UjA=Iω,J5~8]zf`(ibG -=2!muF%]qYcTvDZ_tw2 m퐮 F= |YjƱN#2UB&`6cYzd q:&n2ՂO tܑYk7RDJ 40AP&^9܅ÄnpvE 1zo|o߀RG(2(NGA 3wd $6glJ^]8LTI>B;_SS=%9ĊLleT+ǷǍVfY"[j*0Lw-HC\g= 1)TXnxcZPcTJqV>jpޓ0^< SH53n)JvY=ӊrlO#?cft2[>A#Nƚ3VJ,K*T/ZHoWPXkߖJDF=z>Zs[IA]2SjW>m;Ft8g 3 nR{\) Vo <@AqM8O%TL2F6~<@)Bq_.~hTݾ‡ O ܸ(QG0ܽNX 8BPP# R.( *lsXvUjt.ukI M}qh6cF,EێUnhv&b('.Gj+ۍՕE2+#Xr bs(KI};q+q5?Y|8'C(~UʣR8y#^B!|I5jk44l͹Ov4ʓCUj_IxjfcMy+"_OejSN)ԅ'GL" @OqE;i|U~ҨY*ƬPقСEǢaYy*>$JTJfKfcT IlJˌ $U{ -USmw18~lWN*\,m~YE[A*s#fL>Ij{I"VPdSo7S&'s7eQXZÒ]mQ*V/8_z}M1xMFQvG~'O8t}EA2GrO7 ] =U<`{1ivO[#(WQ%UE>'@0dBkiX"i)VSǏM5n+Uˌ+ϔ55^iۛWcW{W{W{W{Wtݹ^z5p碷XV닽<+UuGUw6+F9媕7^,@^+굉5^5չNzX6zJOIzfg5Qb46d)鍴.f_KWBvΡmc9A[%A4$pMWiӍM} ܩaÆire1Y#1[j#oχzM!I@|Q@#+c‚h z|enTG zQs[&ޣz!OY\D.U+j(r GLߥ6-ŶHV+uc㧽?4pL'$WaB)E˥]p;$xS/b6NԓK2M}.iNS6i~vw+_> qm8iGPo*"wcRɥaTf>cui ~'*1N+X\ `H'F&frqfO7GO~hoE[/޻)=O=QTS gQO tSjFJ.56U+0z\=Zs=^Mzm}asU\=[5O=[-8s~VNLۜ{)h3.-rʌu (ao/4)[S)Woq~&@'4ͭuC  u 췪?)5nMA#i;ǡ^Nռ hu_͹ AçroFk'h(QiDYnn+Z7YՑMz9YsS~RYWj^½U۞{!`Ezk*kS^X=57V5558^z {mvdsQ^⺞z"\yb]j* W[W[ǿ)VyZ%=^sƴkׅukj;U\ڥp:qƹJn\ CC~xmNV]nZ^u6zsuZǞW%;r+nzkSY!Te/Mnk eV *=5D׫5^X^]=^szz^z^Śz3m^psb\Mzw^T\ƽ3mm۞V>zX1_e~NX1v#p}\ޑFH^4׏Tg2V-;\_Iib4>WZs#G3%IFX:g-5tʢ i`:nV6fN}-&1[$Uۜqapݔ6dJ|N7`4 Os5SIA>>hA )Pͭ™ "#T->9L;c#W970ED4.vDNe3^谸`6Ri)uwLảG?El :)Pe{o 3I\LCZ>HՂQ*o#_NN/MpzaM?WOJdZSBә[J$sƵkpX#t7ٟG˅cޜ ;߂ۖKXMU6_R : <CĊlTV( ϴOSb[Y,`` DB ।GӅ-*>lnTwd[,SIuDѭ<Ӟi7^1G9DjG9^ҷ,pTyO5QQ7j}y$:>`PE 1mXEtv;c98RATb FFq0ibQOg nD{q%aBiiTخFnQκO ǎt FV_&6>?2¼C\8qʚH\N"UXs_M=`TLj wzf"EB -p탦9&~&Y/HJg7⇝Q.}d?*&󸷓Qe>Z FC*D)U $RM@#;+g ?̍tfS{Ty"[h Pux Qf2LPe$hAwN1z_^e$<3Z".P'ӌ^+#hk؀F4E'paBu"oۂ 1`]Lbt XQ”"b)ߖ-xF4NUH 3گÍܦMKi4V?dwIS়zNc([jv:{M ATӍX5͚P%qUk§04{mgi "x馼O((94A0cLHS 3Sl4GN߰S;})cHQ[+ 4 ㏤!s l 7r􌫅 9 tI,)a{Gx>1&4x}…z*'l"- 4&?q+zqџ"8hrX,t #r)IY4'^#)z( W ժ SV"i5-1^iVtWw=['AW=^SqՁS&Z߯tQ= { Am7i`I +vhaZ"b\5b[ \*lH^m5aHEߏo:gz/IΠ&vI$kQߔ^0'΄`o!I^8bn!"ҍYt6'xcNןp*|rT%ܧљxLN=Iz.uƲBW*)Ck#nm qX7.87?#a,"PlHxxR6?G(IhI IE<]O1mWGNz1OkZË;f.>e*)ꩯ :{Q<]jLO:>9Rd-II7o8IW/}_8IKY^BoG:_R)wױEV8iҊ<}q -$F]ŒW̱ЂH`NAM9˔jb ?ORASzG }C"1ԎG,G~h/Ĩ!R-nPE]"~fđ^9#Ì[H4ou{pi@efhBb=TFšt [NTht:Ⱥ]X7GK_Ǝ8SK{PLk:{eT.z]ՑM(+rY=[^ܽ[me1)ZJ٭.j^s^½W׹Rpo, RzPK,vH4ʕ QI3$lv F幫VgšAΪ FU+{%*"J[׬~ze,NYA5`O;k騳wR˯zr)^6^nk(nz\V z5Ƿ=V=^#vW4W:rQ4^z:J)D,Xt -:[ov5["Q,E#>+")ȠĘCPhkmrFhZ(XXpWO:z14tK\rW/ d!4j8Hk[}bTIxlxF> yu¦ҞhEƋNS6+|,{8P0 ׅoO0ZĞoqj&۩Pu^U+{\v>2 p0)0X`7ËfUԉk 2nmN>ݻD70c׌bs+}8" Ò)Mwq4.:hEr bvGUaBt`(Aqj6|JUJvfPfoK$Q:jcߏEPk.`M]%~<4ށA|IP<9b&Eϫ}j)|{q*3A8ږRPiY^ T/]4"G@xɥ7= 沝 rt_. y"|j*ňu"AZw@lmkՒ(z-# xxk4rJ5RM)I439A㚩iCioki3BM% 0snj(P­GsۍՍLJMv)uSKSH_dO)X,N7 1p^)=0*y$g wPU<Co^of*!'fY{(dYd% }?G/]SD6 C1>bI4ՒEkq)YJ`q? tAnPs'n#͞M/}W&h&*g^:S-VTGGxds(!&Ov7CK>XQ>ʘ N9=vұJ:@:@Ocb ۽x^irC!/aQƒ6xpD FhM"z(NVڪ3骧:ydWE"ۂȜ+λ4{i!Zu 7Hj\-Hߔߞ5^jd\suu˖ܵx0vQUJb~z^uz^sz4墷ڀy^":sժj^z^=]U]wǚWq^r^כ&ڶn<5\onXcVnyMsFq*ۖ\z {W{W rH*¹ru60Er ~Z&^4Ezk WNtlWZ]#W%kWjysڝyѬV Er+UܰW5k^z5yؒz9tdz&׫n\YWzbv$պ[o=^/=ܱ3ZltUf+[j1=^.l9!7ZuÞvժ#۞V5`+:sƽX&mV,V'}oVaת$n^XsU3XsUjQ/H+sfXdkiMjj,[j5yvuj4VW \R'*:=Rlv7<1[l+NVtZZ6]c~<ڡF ()MVmV6"4!P1`lA=PI)4 eJY|.Z+1L@R%2Xs5;2eUHeMrĊŋpQO,/u$[[\UnYOĪ@#ǂM:!U:$^Bws-05 JsHOoOSƹe|JE9YIEK7PƛqW…$V5xh*)7 Z%BbHR4A, ڟ,lRQHǗ(̈́a42@ÉҮF5ՏsբX{v(HsƨU>L`TGᅳN+^&[\E,m6^!)SƠ9U*i'pn=6LBbpU'T$m\ݹl (p.s^RZ Dq8֪m=kE8QtrI"&icLI6aٸ[Iҗ32`xmdcjX$)]r*m6kKP/dV Ie#% K[KcHݬ׍첖X| (z##5n),6lJ%lG5NYbc\51I ¢4"Okǩ)1*=ӯqC.7{$PaԃBVv\X/p~s`$%,MuʥCpE(F\$=MAכMғq @&vSif¦v > Ob|ĝI怪œ(Mx396x5"RSS ٯ<>RjZ4zvmcHDE~:zVٱhpxdQ%UV)/qW'MeX䙣.Gf_rhPsay Tɸe= w5e}hᙧ#AF$kHI ~' P~&sMPд<m[ht kʌMXtC~yjz /Gѓ}t4[QY֢IZxR6LK .D$P] enO,lLbee֞6c yZi?¬,Ju /Sj!Y5Uao0]vXuP*Rd^ipU.]3$u&TMB0$tuyfX8^-PBO&/ G2 >#=q[nQKA&+`rƖQޖTUsqe5*h7{l*z\^+mFuuK)kc' M!raW!xUH_Y̗HxͿ~$mꃰј=S4 TZ\)%Eч<0X},C V#-N0eXSt(C.4q0hbD4r29O #KqPP4NEBxE=jv%FPⴎl mJWgX ˕;Z Đ6r@ե9a/SSRIjB߻6'iXJ\L0(vlMI?EajǦ>±S/ (>7<9.QFGugٗ \>TT,8B*hNs:+\ SVXfg<7e=ؤ+:#2JQa_1UVڍG4[+Tt @-੍)%N1lzEgJ0S3 (fCFġQt N5Ȝz#[Tƪ)7^5omxWjlys8W 7 r 7Z5W76WV@oVzWպAi{`s[ѯoMzk+Z=Zs{׹{WCWcNj]NXUxsuj%骓]\ˊxr]Vj瞯W%W|nJͯ/5[JtMT[<+]5}YJq<^u/W\z]պ61«\h[{k"]!wqsdjWmz~z^z^:sdǚW susg ccs͌+u rMb\X[WycTaׅpfkbyjpv=^Nz[}jHy`a~nQ}_/V7מV)[5PmMn5V k9E͚`ߚTiMVmƪfUcպ1ӞTiO4pTyQ[Uۗ5U^ui3ӼsA&5@:]AMohm/̵<ԷuY3@|j94Yj 6k*v9N% Ǚau" @s]*(zC*b#.ֽ< r V'8_JU Zw޼rM&Z0Ҙe]umv)TY 33LUBTo}u6Lcq ݎ(A >ρ⥦3h jLjdmcѦ\W mqfooWWW`X\H_hi SNyUJj>,<8IED);ӌ~Z,HPA4t$BcC'YpLfX1,oێz1Lsa8_P> 23@\ZG htE>k &q)8Ѫ&Ls6YTǏw7uCNw GhMK=kGχt Lk$T`U&Ņy3x7[O5ZCI(@4K4ףPH[K\vPքҒ"сn2iH3O=[ J/29OtX{yaW^~x|ÛmyV(M \|cvOl@6 g;u&|iZjQF x("~g+2iˠ1 Q618v;Ck_gyf64Sbu.*2$#x#E8­iS iT6BddRӰ'A|E5w.O ,9 TqNI |J’%ﵭ~3nKTۙKMU0&|`6 D9|{T.M*SF&NWB1JDvs+'}rb2XGbyfQ~nYPߞVDmygSU8`G+UNnsj䇞5淿4+uZ+%̓^+ۖ5d7^\5V'+^s=^{su忞WAV5Z^nVt6֫Uu6MTW5ZsvWr+ŵnמ]ߗׁ5Uչr*j,^=WӚ5]sSZ9mȯqnV+mtqYkƹlfnZ^7Z dj[W wr*̛R+@WH

7%XU>n4esmFYZ.eXnmW>m4[s?P:Io7ÌMX0c#d^28b0u8IEp$121O9hE(>|B X`$ox[ƮV)!M?f)fS exP >Ӝ(D鮲=^7P_7VȻwɪWѠ(ZJi)_NO1CLOcߊ[0z+TѥJ&i2M'%Rb%SLH6UI 7P~j)Me(*Tw7N*VH㕩S3sXׁڼ 6$Wn;nqzpSF+0QT" Iӊ!r^iفT*0婺Rg0z}9*WSo0PںLcCYX.!VMA]J(#BB H+IM+J**|Z,71)dJz_9V7q"V%IAAMLIMV+U@kW7^[W-EzՓC+Šb%kĒ{;|扊UߤYvqt M=%!j6 ,¥U4)͔a*RX/OPK?NsB,Q F<kâ , zhzq [kn2уB7b$ pQUljlvJm/XO<)-y)ŢIqqH[R`*|bO>͗!#e7m"\P~iF߅'N ROƖY6d V8YEtUW(ăU+_(h*6WzzDls:p^+txVUU)b~Y*T)_̆^pɧbp-&vGחm6W9E"\t1J0|(u${|xEqjp.pV=t!dΪpO[ !n읆u]-nN>b5YO˄$Ses9-WYƒ~qVTjZv=[QMxV)pNsVNӁ4E:w iaƺsbE8`R5HEuɣ˕) V` PYdžh%T(.oUbI~zzqd >wʄ3ޡup=c2 cH`R+1eZx%b?XЅ=ā3[D掣-J6e:sfqc-d:P ck0SAÇ Wf(뿨*z zD{(U[>'\3K{3t+$4l4-@wsa0BfñZQt<`:^%@S A't|Z"[{n[4Z*2V\*aRXŴӍ!QOUk2nYUMsC[R!kTPmVe-Z5Ϛ׫`f\׫=^qʸƲ+_hlyZv׫W7@~j]WmWuqW=^C^n^&z+W{yr禫5=D`ߞWb9[yu~nYXsST #C eraz]5\+Tqot+G4kƺhVs#W-5ɧ=8W5^5ܰ U65M5>X bMO MNJ,A `eOD쫋y·7R-MDeVr %XjKX%ӱG5Z"+s`uW{W[5ꅎ6[Գj@?iӚ&+`MR7)t_ bi]]aY\ng[0V jSAtO0ՙһff$\*ŕG <ޚlwv!hM!"<*R-X|0ƜwPVRiq͇*ӝ@ۧqoej4gNT $vFM)m:U-2nhCj+4Y 8V ];FuAl6?PxzH?@BkJh>K WY85CuXD YL8%V<٥6/0|MyEdj*XqqjFZ+|21V$} }p/O:QL)saM < m)B]xn1rV =ߕuMNPU;rS5>,dnWexRvbjՖ ZꩴˆߕVNcnTֳ]:u>z$:u{±S;E;Rh<z X ;յ+,* nv5%f|ִyib5" :xpIEN,7S8Fi@b*.5wqWw6ЫҮ`NaZz#$զuU9:Sm;qk-N&`(<Ξ0MKTb7bֶÆ!H.Qw]@$/96J R/t*/!!ϳ-[)e[(u̐Yl_neZhNTUH'EPIO!! sQl[̸;++ C{G/=Ce8TcӌbFyeVVDG=^|z.z!՞3qʪk*jYA"Qs"E2>bO>9ޔPaCfܳ=I`$BLKwKmy$H|#.ӂZ'u6կoe)3+,{j|B>,xSEhCH7]|x) 0i$ҿXA)@*Bh',X] ۷j@U2N\PaqmtSblȤn 4qxSM (eEUUșci>ѱ&,Ԝ24RYZTֿᤂ)[b5aw7q+ji-g|' QP"̶*mu,}<)y87IˈUѺRbk{>6SWZdTWtJAsxкҐEAĪ(B̛ ;qMG:b;rCK1qQB^KY8Y^fjՂUU@ǞID7JOLin]*(pMkR͡⤙\y&I%(^&"\Qߔ")kҠ͵z}y@մ=^(Nn)潅=5\C,f_Wڜ |@X4W-ۛƵ+&[M]8WM3A91RBioF?IHnEB䚽*Aʷ$ȧuj"ٚeG6k3'JZ*_^3@g7{ -͕Ȑ&ӗ,g/=\uT2]'rH5m vP[O:i+My:7TCW`(pxiMEω>'@v TNiK/O:VZ[OЎ÷_Z(TyҜ- ) SO \2?*Myːi4+n"EqβW6͂ǚS>,_6Qw:yTlC)ψ7$ k>+aQer,CUxtJ; h hj4em<$ErVPYbTP _Y&!3OǞSR絸U tbMB|PT?NN:HSMEMp^i/Mz)6b`<.W }O ޢIٌmI";yia{uhyҷ]+/ߛ#Qȝp@#[wSƗS1iM;iB\ iWK3)@Q4c7=bRR戯MI$ߕs5<֙M`sS:s@V-s b,>x׊- dV7-4A;\zA'WqO[R*xdL7 ]G)ufSp;T1؟["=4- `˩e8 5rA_:7`tѳ3>}~<\\M'Z / ^PFiGC\Ji7:|؜3XGIHgVh(UXLL[BEK42|8ʑb3}&jo2_9I:3|Aqâ0ƏD>Adoa*sQ…@Qnz+bDj՝ 5Z9aV5d9dgN59JsC͊s7^*kZ׫n\W9Vj4窵ڵ+㚊usQ^%Vs]nz]=^ɷ=ZsUHnz]1z=^m5zkʷ禽5hWubyjzWz]j^×p#5iHoߚ"*s~j]~j]y[I<usB+:5Z7[<ƽ\#65zC~T{+[+,9yI#5\A*ymjȇvZ5yJxwbǞ[]o53]Z+ R"\z0zX/=^^z+q]Zy+ך5`ؚpݿ^戚D۔Mqf/5FVqL֍xV209.)"J|58$Sim5ǷzpܛSkHܖff7$$OsMZjth\aF(щYQM/B)~%՘#"\V=b$:E;ȎR>Y \x\rfHlFASP.Oaf5)FgrQr~Bumk$5l:%8Ŷ|jGh@{4~, y^ӟÊzkA onl$ߏ)_ˍ$쑡NJ`qSKsM K0P!n}|2RiMI0G[btm /2I| y TdQ.h/nSղ߄Ւ|2~N"5֭E9w4,X7迏4*Ve:xM= Hkކx㾭w hRҮ4cE)wSFڮ"y;A%3= |mIOFcGFSXbrxO7 p㲓9ڱtn^\j 2׬M/6uZ g*R#oVY6ՑIen>͆'7G5qD(#]~XK p/Ii!nRYӞVxxRNnY6 \T4kՔ+ՑNzY9Uȇ5VT<ڭsS7\vǛW o׫jsV9wWͯ+uUW H+UjSnj^fV:Kvk~PTbMvAk)4ӈ_aC~VG A)ٶ㙦TQS^q 9œ1/PL1 eYY¥#MwHJc9rJfoA HJq)bY|*P2 >804'i AL6H|_Rf RϭK2?8M+K4/eC{nCmOKK,;FqPMr}M,!jS o+U)ʖ/nnb"AcjZ2VR5j]vUN8-W梮JZXVQ5)pNV%UQ<9\@yѮW穳P*瞦5VsCMf7=&' i֠fPk-Ub1* 7犢+=4 SsZɪA\ 2v}ZT8mBlI$ W▙5bc̸^)Sk *fإɰ WTh'`r<`r"̣Ą\RDR UBQa nh҄`R]cc̈́jVǓds-O-1v41a4+ӀTa RB%Tʥ* ? -׉(4 m\{ 31X`XRMη?džPZI% 7lyNzZɸ!O6P5*HY=btWjIU򝤏gǛ)} N6{1fԾTw{oF$jwmqBMPy22GVEg pRf:F{ܼF RC_}PL]JͷIDq5i?t?9RsuxEA> ҔЩn5x,r K5J-٧5aTMY[/E6osqeg\Vl[ҕmpXNmLUԜ//BI va!#yB]U5~@ה8Uw@(q%6`DFʰR%TU@}\Q3N <ЪTȀKMHLܩjVDny^0sURbYc<ٯTM5՞#nlVgV9zfV5^!H:sƷ\DcEz+*4+B6V V'-[sB]nn\Sz!n[W>z]r+dzR7Z=Znz^kՅy}zkS^UsuM]U㞭WZkߚvT׎zomuksuZk]15^Uw5Z^ƽ]~1^5k^" sEj+j^tPokn\۞Wwj[WV5nT]rF|RA:`$ uJ B5DR*;m 7bxSq۞ª<`/=WC\%PO=TWSdT sZUV{m3Ѫk[VA{rkbpxke>)CG)3Om/aNh—x#Nj)M@_M k+ک:GEՏ?onX&׫P2*NұB{O=el'%,Lpt怊ҫWs6Gä{mۏyP)I gxV+=Z4 HKL w4Do*1ħ P}=f̽I463W4 zu9Ƈgf[!F;Xx/EAJeS}ƶ}4v! ?}9+ɚ˟1YN?PҐ|q߷+r1:)juƕ׿"RExYq4K#rN^aHG>n&>hyMfsu©EuH+Y6Ty궨:iUuMd[5PZk@㖪$W檵st6PG5ZAL.xsqNG+n Di\aJ/4é:rɬ8`J$[eZh^ǞԸw彌#q"UMJ3-PfBnKju\~\%ڢ SWK\F%7;YF)1],-JY/cgq?@: -{j;H2l➧qH_υNp`iU`迪xI@Av6 AS}MXf f#XvMXKp)o50VCی'e͊Yjg! LJxU5^sꟁ=,5`b2B18w;jdTԺ#6御7 x\&{40$ҍݖ2E>.iT8IBG)!ɥ^)j-k}|l) jbx5z.m~ZOX&o1ÛQvSګ E{Ւ JQX ٯU.BgҐ&HM禛Rk ز]Q].+7V)~皭6 ׉Vk5y Q6{m)+S4IHܨL.t 9Q}2`Kmr&)/1X/oc76REhjYlM@N4 ohH1XQ}(M:ٯ`Uq︶,Qb*{ovG)bKW+$QV8S>q3;IK<+b:юªYKau`-1f>[)'u.ؕ!ew{_NڥwQZI,hۏw*n+>f[/Y|xAM5 cگ霉)},)xSc5Tlrk?O EIr}DF"NVO,+*תTMՍIQSה5=U5&͜kqR6U=V5&UQr=^pV66VgAcƫu5U5zũ՝uR][-WfR~ح}jy ZܬW7nkejcV׷6 V@k]N\t_Njj^VWcN8 VMBfXߚ\X6VWLI禽5ER6nkj \WxV냵m+B3\sc p:+Bnl c橺~nXݹavn+Z.lyavlTyn>Z\i^29]FqI8ӻ%|iMj;XYJ)?_(Z S^nj4{]t滩O5A9ӂ0PoR6_?g7ܑWJf5sa6?(/qVe7*SOMxMʸL}Jƹ8S}ǔ(Qj:nٮMzke:{WUPYc[U< {Yy fÚz*@[IVxP=5E;'PGR-:#4&h1S1R-Ӵ,Q {I3a8-}u>wo.:J(ݳ?6.& aͪR2ȨlH6(Mq5NV} Pt(tfH)KztA]4}W ŏS2:+g$\}_QHnT!#OgñUVh60t6HqӨi$xZ 7mTưO)dR4qVUK)7~=ᣅN6j9dNwZ:1?3Jfp З*I.Xk*1ÎhWingeM ġ8Ur+Th6XLXmCd즔K|c MNybE@J|86WpT 7+y-L`͙s`uroWtk$ʼn :x #*EFˑScBDZqRQM(СMdQAr)͆kZ[G!`X$ӚVՅ8d '1dڵLjkI(P"ʱC|>y U.}uo\`O7PWJGCHMsu/^q^R`¦ӱ:rjT\עlyJߞYbY͏4k*3WDgVh,+Ƥ媓YcnܦrU=^jmW4l9dśV[o7[+5I qsW0tkoEZ jd^sUWqW=^~z^VuzUn=[AW}MyIz*rS`H5&/E C) x&M(+6flQltV$}ʊI4ӎ|+, Z/RX\V%Hʱ{tqjU# +YbQK-9BjO:&_ ^<*TV>mRSI(3)RoAU5ԝUم#R״N9@'Aӊ5Ȃ)0fkmlh P{q$pspttN7oeGUni)cC vfQs[\ v$1'Iy sL|jWKQc6f%{7^t)qJ5RbiWmnFe-qۗ U=Lo }㍩xSt7]zfnZ~\JpvRܨm^׊&ό=oMJ{JL8mBn 6BґQJӳL<5e X5|0>iHP"*k9wRpFEoHqa1ӮG7JZfP\ګ4~їwqS50שew,iN!^Ug yRfp./zevG$w6if|oվ=֥4 @)NWsn >8l݈۶`:s%VL5: ,4DŽE FK,YnO)}5oNU yՋP}-TGލ q˖Jjj7OcM⦙4v LВn[8øQ3A):ZdS7Tas{pJeDp/Ӷ5\gV@x|G SIxtRrrb© Iu/*ѢFT]M%G78l 9N.6;xJWBދJ\DjO,J*m-oo,M0fYJ"<8qnqn9\z+7$9d`pp5qgXX!=͕A48+x,U-j+armkH5M.]q,ȧʧh%akvLA4iGq(p|ebuv~6B[JX|=$EiC r̵!|sQ7&QZуɖ3Dа۲vacoˎ jH΢EXQ :]C]iG4@[2{!*mgPǍ&u C}~ BlT8nyJ5wwU,RW$[5C2= nfmjOH'AIM*'CSTe4*8c/JGsv\1pA1B4NRj*#nomzˊHMʚT5^s0[+ƥ'nxV$FܱTZ㔯T5^k HSc eNjFt*/zY5^qnYwiMsP9r^nmhʍ戚̧֫=^Jtjs+un]nz\*DW灯m[jRXn^nj^׫ʼnwNz5֜bz79W~z^us㛚WZ׫5q匊rG+^`QU#n+m ٯ~j]ubqlp5Yr]Za9hW%ds1yh]D񾃈˔v1i>6aP4VƲb9S,6RzJ'k}=eiM!2lja(J>achzߚ(yc ,1;}fUKeM3[R~\M8M%zEڿi&); tTQJ ÊRIǍ&{MdHBl "P9ؤa4vzȓJѲ^aO|^yMBikn%%牫@z ZZ#w2d;BہN?8r)5I}ůƦM^a=h H+հ3Z 52[O˛=L{X[L#8쩓K*j6dxhN]DUFhS%UI4ѕ;N ~U)i^byJ=V]k=k{Eʹn,jhgΟ2YӉLZM(Ɩ1?k?zh'zzO.o 3oˎI| eT91J}?BƛԾ`Q_K2x&}i߹@`5̆If:7<6W0TY%FN&8MQt "{8cL'5вJMf.5t-oz8{)"W ޓ58Llp Zݿฑ*m*wiMALY|[9Ye>ѶjrsKj4g=UÏeyGZe_Ƒ5zkr&c&QMp~_} +f.x1ƃnXR#B,/p~Lj&Ffaۺ{qUĚGzȩbT#h{#VR:GyԾ A."+@QmeHf銋kVJF1W}c*A0JOx*F6S8dE ({x@h2Qp 2J3=NJ8 }8pd)t&)֫[CL pVjwa4X\5"'ғ{~|^MA25dAX:w cSg*m1FoFYip[A>ŕF IU0+jt!h76kt죇[*rn64[OU m1!wL j AO"Q~XۊxVE "۵<*K_æ"ؐ_q T˄5D]a]=8ZTTN49 d,~x*z0k_.Z @D.#J!TzRbサRc^nS nVS  EI^xUDhԤUk"v"CZqRY,E'U"soo E+n[a\hXЏTP*jbkos IʔWN5a8u,ŏɀh1xlKZtс*q(F#9=V\An 51Ge o1e_pHh^k1E @nE:ꚛ1CIF[Iں ^ py*o/x&F? j5 9ŲS@tƪ X  b"5OBQTWfGQrm"1Q_x>qAWj7&,4$Q/ ~p٫`|:iuU8!7*) cHRpJhM>FglȊF^0X6:E!;k-, %>}XO*n0W[4j2NʿQYQLqIQ]JNe_pmSfY{ J*{_A-'y3 utVAăAYHeP{qAv0Ʉcmй \~)I_;>?w$$l=6qȑI;òRG"|Sts G ƶSX\فA۴8N%ڗ,**\WL-nZRSV6qΝjI۞Ԙ=ZժE9MRFyS^zY©Xۖ&+sȆدVe~?g=[6%%>A'@9>O-Z,i⤀kTTA~/F(cQ+5/kV5qMqcn>"PƞZ61n(A&Xnrm R+G]c"?ÉmV4(Fpl¥t}wkhFG;coƶAyt٘kU ]#7"Hue`Q NYp~#5"gª{9džc#x xhUPf & QVf-K] Lw";Sgʬi7~K Qп־Wm(8Q7qIז7^PjSiyCV(,9lnRՙ;ձYЎh׍J·Vh\VgNV+qYSf9^yZsKZY5H^{mssVȮkV(kzYQrWksU 7Z5vuoez^=^[=C7NW`_WMxsպ]~j^=59qZ^Cn^kƻ9Z^nמx?=^zq^V^:k^=3^߷<nkoi[m;sWN4?}Ҟz&{ӥ?O ?6VSt_0a߽Y+T(Z`1 #q1Y1Q0'"d ;UOƛ\ ۈ _Ï)\DkŖI{ܪ +ce(~"+) zE&JBߋ&6*#S8X|9eAfG?-‹'L*)n(Z Z!k2(aG^ qsaEn5X_Pq~(TjF0&ۋ.gX_\'>\cwqƓN lSW *TXe?Rp5sAo~G76Ze&4 3{(c3.~Z\&+ V&sj2ߥiI> *o0 Cpt:艚?nܝGòoS6^N^Hm q^n^sO7UW|Z8 R&[Wd[[]5kn^\n8ZHZtjnA˩a҆[+3Ey$10|/ժ0"V97g$dh&bl l NcG1•74Չ'h=.#@$" 1MֆV>Li\r5"b9PA _˕MYE9ҠԃW梽ҳL[sUc@\}7 MK\$ Ƒgh ~<*COsMjT8&&= ~n+D4fTNILphLz_U F%CS_Ժ5E_=mpbqSjOЏpNQS:F*1vo8˝KD/z7Vk-k8˶!CΨ,xhE"5 4EnKU%zSsJ¶) \5B*NKVxR""r#ĝ=F XcM8 E^#ͼH]9ppKV8ÌM9)3ΜVflCʏjX%+@)s*&gbaTƐyF\o[>?Ï /\7񍪑5~|PT4}p E8sE|(+ Osc!iѕ yj xR5t҆+檥 geLM&8bXFná!]5w#)F`CŻF7o ZҾn[_<αulǷm9둈4]-.I?Di@~|`ЬhkԥEaLŚB 4,٘p(l(@P})mIȹ*$*Βm4{EbǦ4mgSo`ݥ4E_M]ȧOe+{“=ad+{<A)9҆!$imPq f $4d}z\j+5[r7^5W75=^rUq^+r9C^kqk爪-59nn\]9S[n sE5XT[LsQ^puߙnn*\:v偊خz*)1[L׫:k^ߎuMXRy5\[4EjV^ys/ T|&lJ`ԲC*M2#{q7u)`lK-e3Q |NM<t^+x$R Qz[O U;-U*+-:vNVJ+qZVyUܣ61(J|v7V4ms:_oqc@U&?^tQ̒-}Gv$қy~)2lSf 0J"2BmqxZ`ѢIֿ K0LhrQ,41z~E_Ll5^g%@Vy 4sSBNM0 8PZ~"hf#M@7RGaUQmNYR"1[eFl\5;:pUm(W՜@ƶW]&"[*Nt;0bf8wSr_ةr)6~Ӌ='P. 5K,f2xZy=А@ӈlE,iPh`Lb ; %Ј 7]x$A ˚~veJ SbQKTHP.qN4ګ>oM\E%xɑ.4qTMXLsL)#jx/ ÅJ|/e[xiDV*&{8go I'MLh*MGs&_E@;[)p%TɋfIH~b#IFVE/QYc  4Gb1GIUʏT`] 0dlAcM~M&:=5-LN7̭_u;>i;Rhp) ,qP>Ɓ Nqr⛩PrRSN^R`ׅNԈVh6+FBygz!jDonP:9TjdV=9VjpUM=\W$z[nV\^}V)<+³+DEz!U<+p-+R^ԂW'+Ǟƫ\m^ٯ)7^W55Xik]_wʪ~nkMz/nxtq畅n+:q8»۞W}yt½])r*)ZH+hr*]ۍ[5o. ֫Z^=^(N75áZsdEhW#~j]nz\^ĥ1lW+kMzkqnn+vW^~j+kMz[] 9szc~T׫ܾu~{MjnxU^ qsWy56V<7^:sI~DZvTjXj H6Xq̲eidҕlN5}m/hHbXo6fr.87m5S90թoxi]Uv@ +\~\0lȡ dES+M}l>'p U&G[-M(*+~3TwD&5Y/?H04ʑCIPW*|c?WvkIv3\:[kA2)%z o.I Ϳn3n J*@ VLR+!38*qdzLV_g2PFMlO}>'*4M8؃(${- *G ԮA; ^JOm#Q΢bH)sB/*Sa}6u#4efthnÿŠG'/O[V`@F2of²4"W>OXi ҬⴸASN#U ҎaưzfnrR DQ覦SZkU&&9CRVd՞6ゴeMlVu6Z!jǧj>3l M`bq#L͜"uهj|Țu~DR4c.Sy,;Au/HR`LQɹlAFX8k/ۖV5T Ju#Z96K"f`G<׈Лծe[ 6X}ZUbQhk%R^xE&",,,/&N4ˀEMr6i @hRdS-5.a4 @0x{rwe]xE3j Vg)ǽQN#lan^6dAegS:j!>>ߣ KK_P4e1O_ @|cQv$ljµ5٣2f2 #Blƍl1yy{Y,`\alE;&8&h&۲k}٧HL)eEEUd#OSGqQ__UO<5U6^$Z7'm*oNi ԨLu@ƙ*Io7r?E,s XH Jqoao)[)h@D'R<yH#΢Ԍue$m_K{y1MJ.u/E;#H 7*k7D2gx$,]M5Mqf/K$sV}Ik^\3Z")-ejӱP.B(N&&- A'se<=^@M0ƒXZ&"9x. i@҃j,AHE )6zıj2Foxݛ6Mti1}eˇpcvuإƕoC:'dh*-_I4[O-MƠʉ.>EZA42ڥ ]LZq=4"B6 Hp:Bl c8^+hzaNmve0b_\nl6eO6_2Sh')*$/LBJi&&vb,~NP0:Umk$iUb~rwSg}+0MֶNP"iw:QY&b؜χHGn̢Ē~*KT9YR#Z4=b +c5Ra7VN/ʓ^2.j"WVx7[5*U+87z',k"PתT|zuMeNj!Ӛ̍ǔVE,Vӛ8UMp/息Wnz+¸71^I~nk\[SʚV6Ś^ jX~xՅtb+7^Rl ~ZX7uÞV7ks^۞WmWaq"4.@p.(DT3Ÿ-?4*t/cn;)͝=?庨H3cy넄+lbh)A9PGf?pb /(m诧Lc2et*T& Bffti*u#[s^g9\ٗzYЂ 9Pt7~]i aU4VWy`ŬW<:k5i8vpţ)⧤ٛ`.xrE'AМdnlz]2iN1Qdi_NA uX RCxo-Z$V7II݇a5`~td`/F QޜrZU@7$sM>rVY 1@{_~X e̹,e4/m|xPW{o;a6%IEhԍOiĘXEW$XdP8K $?"AfE;HiM/LRӑsNopEuoN,{}x4a#CO*)2Yܮy8>3KT"KI4:OIc;M+)ۢޟpg9 (b/a8Ւ&tO2darMǍM( HI2 O kw'skۧWCI}[_kͤEYjt{`UBnsZfP3ifI  xMSH7t* <}hs3&%%v2f8jv%4bIrH5-e V2Y@eם1J,SD")4_h}tjh2 ( @ӓAYr{Ն{}'lF ͔,TۙY 򨔷Qxe*3 uHc>t6IƔ=uz~+1sA2uR}f/M:WMY9+m=PRijwRgC r ]x4>];yQh }N@Lc jHI+ ?t|9r⪏^ )LWi:Ol[;]4,Q-2m.~QvԊjPh Rc9cmʶK4rh3fL Kpȧi(}&)yצ)28mcG6 1Fk/"GZ 鵵/P\ ģ35t̀vA\saSB-#%b^J'6)B}c3djOq{ȣε|H9_8*'e\BULTO]vh _\Air&!apnҜ[i"mp*_3EK.IK3_Q'HڏMY}{-3O-=k0|+ $?^`\!雦%4@54XA€)QP?QU` :)蛧I(1;A61ƚP&e|5%r_^eՂIEO3 fc5L٧v)мO6x ˕DQ=M~e:Di!ǂF4h9/Tb5%2Wj!U4u/aw  E:(Gx:⃯L~rDFYͪ4ŏߧ-3B zIR8;A _R>;XvVSOMޓ)fZןw]> WL "L'N$u*ܸԄuVu?(j+[Z5U ۛȇTT)^nYߗ{rZjTμa[S="Ln$A$i*XRߧ~è: ЋgsE5)ً[qIm$ǎS%Tf)RWŸ1>"G-A)),/XSRvcRS#7.D/狻I167gfML_ʼnYa^nPc>?Kb: L~:ؘT|NiRSeiTа>S x+IR0ުF{-;MPlauZ:VTE Y Ml/e_!"Gd2uqTBiyn8ld)7Qoo:1TCSUQ#[134ΚTb1G EN_*1x+S5'á. Qy)a'/_0\clV6vG~u5J)M´BJ=<9VH),ZGg1$eo0`ɓDΓ"ZFLsMHὪ8(&LKNe,u8N"'Z=J4X}U7khVMy73|~ۉ4 .++p\݅P ȣ"Sp;CBEυNZRisFRȝf´k2yjƲF|y;dNjnn\Ѽ9sSc spVVW57YQW6b:eN+R'#Պ% BopD}ЉƘR 97B2HH^D~eکHEYvKWx`SƔ_pJ5 b@O  Iuk; |g'GEV^,c05ؠK82\PTUQ>QQPK2U k k{q-(( y8scq};[Ö&k_`iAnoJ"POW=߹Oe7<8je:k0S iThjtǛy`ոXK3k])+"*Ӎ P`QA@}\‰I&Zb8mU}UΚtlj)1J"jv ~Y8i2eՁܐnyG[j?qnxT, %"KƯJ1a '18̕ڷ [p(^d1Bn!c9;xr4Q"GOP9jfhF2o>DžMusPUbco%;Dž3Co^2U0$bOkۋJ4X# >c4*ȗS\{to Ҁ Hò4Irn˛1^AepεJmܶO¤'h i]nyf%ZRkeՔY1)\3>< 8!Th <g.E;/$GHjtn,_d6- <+]P 1 Zf[bw CHw{eizڥV*WۭĥՒ*Aw{P?o7P3W<(t(T&"Y)ͱlgZUU4˵QI'cp8& (|(S{jL(oqdM<]9jg)jʀ5A40wτK-wsŢ6 x(57=cL _]m+߆2(gu[ћ#pb\ NN*))9#˥P)<2H*g#ŲRj4⻖?g٧3UK(~0SbPVܤ 8XH;):h%YcQ:h0xAaBZ Q@P~GD51rulx 1&hf]Ӆ6B: R3`Ü%`Ԡ7mÄ7F;#TBxQG}\j:R RG9⍔svU:o܋0"pG&\ZxWDzfR)NԈnk4}갩0yHCqU+|zSyS^(o׫(6g St.窛IAHꚟtiWS3FUrW6RǰX1cuE:ZMOS0(N} w-ܞx(`9e孌2iזK&vSEb nD '8ѯKGYLR";NYtiMy-MUie+`Tw 4UW̒x 5W`>orq\uM{ TAaEżx&qM0f->E:ډfkTp vRHKN\YIUT&xU ,`Qr~ʩ0jƟ=(Z FV#ȪA_ 5D;/yEU +AKH)a{}xE_4P[*ƌhf{}k]dpEb*r>56K1H\@Ǚ޲E")p&Q_}ߗaӫSpɶ rh(S'h+A5qU}bARqy. /8BQ kC!M.T8pM( ZjZ9ȈH=ubhA jz|"Ջ +Ad[GΟ/uңBVᵊXa_DZ}4?Ρ;mxR H0/^|!}[ppTH𥪒\S3opfxR iX1SˆbZoa5,Y 4[RꠋҲ)(vӊM4I,-)p hi&($̘y IoVp[ЅQgYVlT!pː+¬ϧVԞ4jk[R9iR1+Uo߇l-t0Ik/~]<+͚ρ48m͸SU,cmrz^T+P<[_׊Gf)uDm1.`U`1mͩĎ5gV1y4lb1y%%nxT61S3 e=R):3Iw2|̷ k!z*i~gƙ)qңK ^V]6o)Kbz~ϚAm tŎI0 ɧ^n؍Go[*mhkjk)vaJV kO斏QH8:oXχuO+l Rmh`~6o>)rDasA?GE`%W}F2iT"kso:kiatw}AejZk{f@4O:sBDedžo%N) JJ ^*{88q:Pe ('*.=MmFX CRMWlŒ[VAǬoT%1Vuah*"\]%eHo xmq2鴸M#U2P۵q2 Y/(RoPwl*tz?kjjM`8ݒqeNq%dʺH.b}>ڴIr'm6)T26i20NY+ 7ӎSI YZ(I$R-52 XZ{QXa4To< MY(0]hwX~';*z/ʘ4ݼmuR1YyS9JGy(,|m~<.;M%-V1[ [pmi pkپ0őmq<&[@'GMВNY/n:8ӪHvbˬRs(/z bIpkTaI[@L(' !J4/R]Qo/vkͩcGA>E#}j4+v6_i8Xi?Py%_,fh*y{xqe;)+M 3ᅞ3fÞyEn3aB&`RsYӛTM4ElTMJHC{s½5>jk<\j=ZEzFS^yH̺ձYTպrj ̺z\Ӟ8lVT:s =Zn4׫W"}Y)^_sS=^K{mrdVjO78יVn{WCrZWzNz7^9uۛW`s^ȿ5^nz\=Z5q}9Ju5=Zȿ=^9׉bijO+5㚭Wrk媵׫5\nn\Mjj{+]ժ6ܬV^_U"k碫s[+u~XMZ~nз=^z\IZ^WB+rj}Wߚ8m蝼֫z֫<{mqcaml.1 ǖ myc&zWy+ՆCV n+VW<ⰹFetgoq@'y'aaËuH u@ψP^ጶc:ɷ!^ P12ԄDl>~V4_rAP 3"go`j„JP q8~ S{Yߛ#:aLs)]4b7xpU" &&dLHT 'j]],ɨ#mSJpE9PrB/m6H Bibk[yN6=O S1O@?ҞTuVo*vXʆ/)~̦q?+QNȬI2G ?XM.HKͷ`=q o\8=4Z%:q*Ez ׺e-Js$:ݙ 0AfѥZ2+XXdžl>DI\d z{܋[6go0 8RE(2G [QiOվ\؛8@ecj:sSV޹Rˇb8[5 ( ҃eEu^+Q;t#0SYy)d؉P'^yH R5N$b:IH-Irjuף(cTЕ7Se 𸝘J QQWIv*+eJ$ؙ2E5T aO/TE x8(6CQb-m9r:i$QZ]njYS=^hzsU㛊vǎ8V4m~P9KVV^a֢.n媵r72 Vrv7?_j1#u =x›1ΝD K=*iO1<Q yMl*Cu0_ pU;g::{PyEWKm. 4qMr<| WҤR*/ZBbgG(eU?O5`vx*bxTrETl}\j4 @YuF Y"j.2XcG ="P8M4c.ҷ7<Mp_Z!6禪E#rt_)hT4 :fO7HJO CHğ M#l?OK~ \OxQȷÄ ,4 7-CńI"GKO 7(;?L 44$\= o8P6Im!Ђ>ƕ¼iߥ]sVT.ڌ< ~O?hEwN@h9,a 3F`SvkH=ha@$:i/YGv$fWyjb_f)4FdI(XnA!.O`$4WzQ+ kU9}1ѣӜV"" nmT4O Um"DžwIEۙcdEY lx'F{k,hҬE+2 LSh,*q2f#٩Mloh@*+XTԱBYZ4c=w+}j`᱅# V"$⭂bm6-B(M^cSWm,Bp[j 'DiUk%2+Џ۷ Rh#TSWM3o$l[}bLM?vp1B& p>zIUB?ˊƝKD*\_UkæP|#0U@q}'cRF5f:U2m 7K 6ppWOS R!VBOx6᳅'URj3>X17bIvF]c\Լ=@ɿDŽ]DRmGU~ByFin"Ǥ>URY#6d#apxictJi4#5T- h a|¬ۈ.6OE`bsB$k_icI (;s $ƽR [jkU2nVRcz=^sժt*()NnO.4=Ŵ Ղ:LWzͮ/CL,d@@{& 93O>zz*?nV+ؓyR&1V5ʲ*V\{xJJHʋDEiiG Y Ɣ8R:nJU°U`*=h" m*2$#MQ`(Qe50dvoljlt Qcf*ia~\pր*];ˋnډ] SNYǦ؜3 ">4o1, 3v :EqNE0ڲ5qi(c×`F?x;6:-M`|OhiUyF#Aohۧb1[cܩT(N*wRTvENۘ(OmU^qXۯ5"Tъb`RK8 H;{SH% |8HM¹adZi""SrqwQkuXnikA ѕH̍$;t>?Å*w|KHv[[E:ZU)/o:.Ř(:ppvQS Ϯ+I0i!G5qXw >ep A1F$j%r&c($k_GSF6NXڄl&(|-MG0̓MLEr =:qwUi/M-Q1v۶My5 [tg?6H»D ܐ, @}'Qۊ=sme =f5zRoʚAXtr;xpBLN٪vzpC/^g[%'E[M iU( lH khMu?U`dW!WCew0jUyʘPP|&"ha8ʐN{ i\17(:^)T@~#MtotЇAH(:H<^ZT<9R3/o5QDԽ0f']<Egu>e3mrEKl '#N_8PISb}%tO+z]Q g?盧"G?eW`<zYcu"-9HNz~^YS5Ӕ;k&3)^j5՚#nXVeZY 5HYT_D:UȚz\vn\r5*n*Yv~nk`vכW{9M!XyZWO5^=Zիvz~z^=Z]nnz5כVW瞭!/=Z^ ~z5VttU6upywqz窕Ǟ׵UO7[[V⸓n{mh|VSsUjnWnzVQUMtn]ܞxxshWaVע~zkW~g/^9B]3_&kux׆3͢2_I")=OD )p/Ng5WE"UxNG W`*H"DG+N~ȸqWl57TBZ3ma`셀]}hUi+'tT .5(V+@Q_gJPIOXwS%r@͡LR !PI xRwS"VNs5feaKw"S A^P#*Y4a~<*bh~%>z}t742':.m3KF"M=ۆTPˌe$𙅂4sp<Ln9`~~ fh:0ө 81p%q禴ESd$$|ufp G$EL)H' V9|k?C-qZyS\iŠ6T,{dE4q53ت¯-QW >CG= AqQǓ|4 C x?/oJ'WԨj\GGL$@";iI;(2\5T'cƂa9>X;XPIjh^cTB=\^LĶw"`A#lɊY(fʞp|Wu sӘ%c jkv牊eNRYՐn\=^C^z\^J-z+uksչGߖVNVj nz^sH[iWÞMz׫sպ^z5U[W@ߞW|V\[+U\UzպT׫b\u盯Wj^ǞWe]ysuA9ZѮzar"nحW @Y)Ɠ@QO8I$hx85was褶%Y<8aQp6]>PPq2J`:iʁ44CrEG4EX2,Z!%f;SǞ· 0RW]2M´RW׭EwG r>Am e(Nu>U޶(+*DB"k$b5CI)b(`Xޝ=st(I%QN щ&:dہ]A{5qHЍFxnI)A]~QQ}ѧNqUU8gޞ/Y\.pעn}+a3@nU%+h^YŽZ@Jh?L Ddyd${;~2i@?S "^V7ˠV(7xu>aExn7ǜs) XgqjQKUe`s_^1U }jR-QoǞ+5"%j`f]' AP3H_1B,ZGͺ[4)ɽ,gy@ie?N?_,T:kA`i{>D_şN7 4[7%%~'_K *|^"CFv)@$S*Lb̞s'|Va{n?N (F"s9fuЫÅQ 07/ћ8'ǔHIU'fR \a{}yRUF+ k[04ZMkU:@WF5OUV%/MG~lMAƅκ<ñlӽ[8۷yPC˗*<2G C- q~8$kLᒺC2A3A uA4Su%0 L?Ǵ|uE)1Avu(ee]{{O—F-E>nrG|e ;LwS3<:T ħfr#+ߨS$>zư Yun|+*AWo)V4|f*M?i9._~$GYynDHVɧl=5 gВHw srJbmf_H*։kAK@IOSeL3H)'RuopzY՞.jR<+4M¦ޝ}QhQu:kM)HNt3 b9?$s[h{{9pmFykӟNipUAck[Il"'D:]]^݇5TM[G3VBF)r@y.{pA?ǛcXZyp `-?6j" A^ " q}{Xp14Ys…V'TDo&:EUzʑڀZ_ಾة{x6VsK 5!E Qܚņű ;I=q$sX EU6O\ytq훠˜Y7qxD^hG{:2RPĀm@cTEXa `.R߹8I4SX.v|o͓h2/96GU]'vPl~7kq-'YO;o&hA[qQNO+yў=1)寓tLo{~g`5+%tűHVHSmnmmŋf@\)OdrfGI}lf>e"0+/Y&"*Jx|)&^}VƑ'_E޶# IQ р]V2WOX&k.+G~bZ׸6i 9& TjWb 7>5M:N?>PopBTEV}ɸ@ħ:pD (ڠ]U ƜܳWS !*dXzlG¾](*l>#>7N3$U3Ӥ{ > i4H?.%-\aWj|upōJ)t (m˞0y#V8%DqM^.veéT355L%d\r/H0Z!b׉|#JlO@ gi%u>c^!fieA?Ut˙>xS\4&̺맭rf}6*f2e=4k1F~hLݔ(-:pٳ4y:TE8Vhŏ+R^TImm̃NlUk4BٯVxyH^W$ȜIZl׫<|znyfV$sbY/U5Þk W^7[joW"z\ѭW5^[W%ku/+ՐR\_q\Amm{[]禽4MnkERk sժ[e{=^׶׌s^\潹vtUqnz1]_{vѯMw{z^RG5Z\_=Zj^cnnkmUkVXn5W^z}Uk#z~z7Uk7=^sUvzkۏ7^{y\9qf=U]]55랯Wqݧ-W5fqNYl74)w(E: E鷱,pP$Թp1#hL}V 7;F3M*b=vܸ5SaƩJ,| hpBY3-{/mIj4:.FL(:qn5\61T ZxMG{YNmӦWL]Xmpx$m\8l͞2tԐso]#IP-<9fBUl߆i3ODus9j{nR&MՇž*݆Sʐ4[:33{ q"oOTe%NjIoOѳH2Ɗ"^۝gyR@I=aFPK SάosT)LjWIDXϦtLk-. BxI(ziTڨTbأ jMp-;<>)4OsB%҂ rƷr?6 t]o9♭$/KIϕI$!Xx' ,:+ir 4վ44UX]xsE!R0Q{ys)L7}`&/L?$g hVV,~߫+mQc:vwRsӒEĎV\&҆hcďA GAPn2zvZT~?iE*V4 -N*, QPKR)/ԿAG u j*E]/<]4g,dHO ߸6tUӟL]Fa/&Թ uS$S-O;gOF*;q]3^H#ЅuMpJ )$i26č'(z7 $MNdd$=؂*ˏ!L(P78i‹ M+_˹*IO@6>y-UhϞ0Lhpֿd<.,kƍBÈ/T=OfBMZ_n+BR%T.5KHHлA7 $ug[VNčTh"S"5DR0v76PvBiAQ}H_ԘJI^zYsbY5)^NxW}/ZЁתBVYcV}eµYV+'=^q9\;ȼz'~j\xkWsu䃛dߛ5@m禽5vlW(͇aMK{C'HXvґm,מ|OU kSP+d`-K0O/(*QE?ULT[iOkN4!Jƺ77?wR nG%3OM/Ts #/s,q9>v;m$\ōɤdeT+Qkw'q"jڨzhǙjctA\{uzge*o.TtG/PJiL> 4WpduB27b##YDr8!*}ƟxUjk=֓xԞجXlY|Dy [rHUdBE y+!Q}@ {}Sn M2ƹf/B8҃%rm=ON[ЎM$kQ[)$mE?} p3H%?+jGt?opFg :}VYqEm̺u͉?O܇]RiҢY؞Ofkb);z~Ș.fX`wkˁ"M>\AHSD~zAzj '$8nvK y_"+4,BێaFKYK`P,^ , +,)zI8amn1xHkٙ<<ͣIӰ)i%*a~3eE#V\*aHslQjw;ᮢIQ}$@4VLji+1[>& Q~N,餕7a`I}#"G4~%tseXdfsK ?n6;?oU.Fv%NSy2l-;+TR S2?&7!e`  c~˂ ]59 us|O* 6N!GP `@r UFxQᥤEH,¶L)0y"v_<")bNi0tOH-[b|)4MtE _nF'Lԥ@>wh)E4}hP2=#Uɴ17Fh& uQTX[_qfo+#eߌO0[F͹aINx/M}AStE {yzgY(*j']f) D8hѽEڶpƊOH ]t\B.qV-4ʅy?S2oko6OL4AuSQ=;-Vc [qTRl4CK,,V7cÄ($(YMM>}R rO>H#PcncSaN>{+C5"/s.`BQFVe߇OQHxnk84z(VH`TO+)qr~ǒ1EK~(HnkokFL (`@=4فG xVrBa恧jf 6扚vҟRL^Ǎa4oBk3ߏMP4I{%MP*-`u~zff;?60=^éJgr PF4cqn0dӢtǪ$`u콇Nh4"z9m7IFseuю˨(̟^W`V)m AȃM24҃.'YX dž6n4' ɲPPv4Qw8%7A)Vi"d.px# q-T2yQ$÷~U3B*zS!F]Gb)"ϩM+XʬAߖƚ"g!4p鮃S擅Pk51I-I @}Ѱi,cVϣÈ_dRU ?Z,߆ 3 ^T(`8Dcö\sJbP{\x#r xI=Lgp6OtJZX(=!\fG#t3B >L. +]* :lI&UCTIB8effZߍ魥SBⱗe}:H]f'ې>= ANC\-"vlG/QY jML Ԭ= \$Tp5g~f=,>^HU`!$kJE}Tu 5ϻ,M9*m ׮|,XѲ-R;k<~ڲzOo+SFPEFxi^g8Ttwyd6$|G6B 4MN.:4x+8-OADWXxM=qWtChI{Wlp)1KC%b!dZ؆6=<3  "'jUHHyRV4ˊ RJM!~4\.~=9wH ʁa{e <ópeYޑ%IʇQoX('B} 01XR.k1?0t7ІC©$y)C:[)H<!`dI!7;3pA [ܕ#<{Vݽ@Ǎ4A}#ъڷ`U j~ 2}R"v Q=k\bw!ڱh('sGl;gZJg=@9pq]]#zZb{/} RtȚBcxmXyAQbK9<+B j]Tuz_׀XU=^susU=^snUz^=^sVzߛun+kejZ*i=,n G ^h&f>M@hd84 8 Q]0լh&é$8 [^zˑfu,O k{.BM |Mt1SC*Z̓6~)uXQVƋoWh#ybʇ l %<^q0ˆtz}q=83b&94 7.ۤmE:eHN<3a(Tia(4Z׋#UHxg͓ZQ3SpO{M2LmҜUf]5{FXQ=ڡ4L-Tj${ 7⻶̊Mh KsT\EXeK xw4REl(V`@UаUo zՂ"[:@sEB+? iSeV}OrS7f\ou+DZ2oN>%},0o1Jt<7,CS>'Өd1#{,mīpqUW4rŰa~;l[TBF 5a)_+ʑ_@E滞Qt89:jPGQˆ`'m`\Y%mfAŌ0z)::i+i`e>_dOM?@t|@Qjw/~m,({g"5äQXk[)@CrL@KH|tSŎރg1,-JHB%@Pϩ2f>4/,}uh!! uRQC_M(醩UPI |"Qkuoˎ~nA[6l4XFFU'ѧ{Y^gPw͒\„n hU8KFN &vQ\aE1AZiT2V @UwOJMf .P< _6M7Vaml-0mFM[[X|yHU88NDQO9v a׃;v!pQ4L h#^!!;) IGr3;h&öLOx (]{Wc)C{hZ\>n/gLJe Jݿ (lTU)BYAn14Qi(zA eI1TΈ\k~TעDzՒ1VD=Zj\_ȦǞ5 HAeM5^H5u1=Zvk47XVA{omXVPr[wx|R+vuUǛ oVlVvW$nz@ɵ^S8{OϖKhIX-z0*5cm~8"k9XEkIF{F3 zwR]A}G_ y4qϫr^*eRyap eGl)p-duRWLQh{R6p  <^ ’޺:Y<,A:cX{NzHi1g Xn!>Hn1(U;hVw,d5<ضюUHѮ~7<4mrN4_ypjZs+A>׸>'A)R#QF,qsEmxZTFF;~ΝQ Iݦ {9ah`褣gjS!؛Xiv)åT(b`]j W>Q$IR^ԿJ8n9՜͊+I}H 5c[vCY zTHVė#ǹS^)=9«x8Z4&6QɱH<Ż{p`cAuRBǨWa{|8қ-x qc*|؅<ˣH5TL[S~jkE/L,sER}rWE1ZwfH.JGs`>?r`(FպYƓ՘KS(? Qe" IM_e;d$ Og"I\`!X:\\d_A|xA| Ea~Qk2vU՞!njR׫]h5ƷYbnTתBh9CZ=^=[͊A.qYmׅdZ o~R3\Ɩ6xW1aWU s[{WjO7[YHnlEwۛkuר?=^wz^z]Uӛyk{^ s^kZ^UڽHnuzMXM6%c#$AEXR_0d:6N[U2 0G alܟ sMh(Tˇc> y4ʟW_4S^8V#3Z.?Ǟ ?XWJ$}MMAƭBp@t?uuTR \kjiʝVŶZ=?2Eh? 5xPH‘YϨ8~N+t}ncH'e& ;vm?3[TswX:eǷnzkDS~9)XCZ"I S qY8{VΗqɔTR"fR x{kۆ.ߗoM2{(a'Z)D(jA@`.4?Cڰb'*lHshJfQR IdKoqIWM߽yp'] ) =4m,RwqI 8fkn ҅t +INmMج.>? (8h,RfD],(R*&d؛m7>ee̾kHɕ^3knBRN=0vԨDߐQu2Fu aa$¢64*MykòltS㈴Օrh~;mdX-,?W&$R/TX"`N Oms11Z7DһE"am {_ Y#%X.t"_|HňyM«i) }\` ak&'8/lD8~ds'{vM%[i{)$Sh#n]-w|44٪&n/Լ%SDPu,+ASO+evVLL2 2ĒZ^iǒkMPYY[p Rڍ\oԭ^wˑIҖO-AU JR 9Ĩ^efFX'ݸ4aY4wȲ*9'IB;F;Dx:"ce)Lq|e^J˵k\Eq[N!jRUSQy#m=?WL/B䂖T1 YnNk3_A>)tL0D!̒{ۇ6.%8]`@Us8eҹmS~2uFV۶"S#{VܫfCOWJ!x8*iG΋nK2IQTC>n>[SCddg>}2l6ƦehDD(r]vN)qI!eL >!ph" bZPhY &ZԑUz}F%{-B | W,(>" N dJW`~:Se"$P[!<%a/e>QdQEƙ̬4Z;>{ m$8oOY+0v ڳ }bb#tn*_qi ZJUyt# qm{xjI9lčK"F>/ui]Ud&2"JAE,(Y8Ҥ-)*s^HS#uf7R/z ԘPw-xpY'`ʅmfqٛ@=p:˸2vtQP)MP|Ŗ1 54i뭏kC hL7h9*ƕX+IA>n"8Rg`An݇*⌗ sWY;TD'q]$3#o *L|zFj~nYTVD7PUkDUdVwsO(l8@S꿘;t>}Wl8/R2ĠipI߯Ve Jٞ9Me}3V&‚ױ7_5^Ve]t<ƴLRC 4Xe3MyߣuXDJ[n?1f"qG%Lab-k\x>UxO]pU$AcF4M(ts^ *JVh c c A\(SBoo8yD欧ռ!QR4~\SkGHdD*úwjbHb_6&qoӤcV3K h1houG.D2A]jfd[$L}*o\A"ی&3eBcYQu}1m(Kټ'¤^!UjV6Ӆ_Q!`Aԃ~Rېh7*GmFo݈nxGCs *΢6i_q Ne E)M k moU |[aPOss¢_&yvZHa c/׮)=U,լB+K|OP}n }7(R (^AQ_.WE.H>/8 iԼ[K4Ct(T"ɦI𪽤!5nE:Eۖ&1XWq؏ۭ%"d(kyɨkE;*v,*ԈaĒ)i*) QF 6RhztYH*`RuجH$x0.)d}fL[5ϋVIϵhGq2)"+H1*橅H;qiJ#eZ'e_j!cpA7/[|F#IRTvѺo[aR9d-N%>4Wv/\r{X⻿mHP7%o/T4v*˽f?1dZңȈB SĥXӴU\hߟ‘R0p  XW]Ρ@/?):қЗI5*PNnmk V)$VI/'"9VUcy mv2ۏ]$RU }!8I2vpIkv‰-JA1b >h"UMuO`M׷)NsYr}j|㴿q4tGHZvה)6;SOV+9"pvh׆4SXcv~Rbj:PV9"Mϣ|9qU2u_ᮼ٭i.e%M,;P||O,@5;A2tT(ad]<.ܨIj\*(//vЏ ||9VV, R*4wGFʁDb,Tܐl@'[VSejƏF>:GDҳ˱MNǛ٧xw{7`~\gF:[O^ɔx!5n"KZe$o_gm"BEى*<;vsJZz>V?ۍVRr'h@E[}cez*.c8,IU{onX<ƪP *sYKI$I\Di8z:X~ÿSMbxS[ <-VaƵУjSՁ?3ZNʓm۾ qfH^ޮ&rǑ6ٵPSVycc9xiPܾ E:lNuFLLJQy?0!"7]GΟm(>]qpZ:S )Ѡd̯Zb6m~w^3N(<Ͼr{?X\4Eثi}zP{@[U@oW24}nߩMfېPמTȱΞdFE:_FbM)IftJj#]UK{k߆nŽᰮRz Yz!WR~'yE 8jY0k,QQ"G-4ʡ[rL~>W\ǮEf~SbY,#زoP&(k7C긫h S{8T^(gxu}A2LǏ6Btk@]rUu%@`ϽE0ͿwsgJrF׽?Y4)_WyۥkV:%+%_J;-K[Mx7x;׷QzzPcdBdH_,8X ^Tgo,_[l\YZ"#AXߋ N h{^iVapGjB4Qp)—X,v{gEM1`:-nN.i8QqɄ/+R*cΫq*Eb+ٽ˄ v'e3:sryxA;:u3x{/n$ziԠ&`YpcUmd3;q0I;keT /OXk)jKfUa(S$Ә5PHqհrHT&hӴ󔰉362Nb aVHrU;gZf3R#M{knnAe%i8j qd"j/Uk*zY#zD9ZHՓ=U5 U@+~jY=\:sdW* zpn9jdÞ8sQ&\jvǍEn~RY5Z7[_W0yrzzy{W禷\z\V;&9Y*k<5, nW׫Cnz5n+ZWj]W&zf-׫>~lVtBboV=TPA8Pi'cJVým75~@VlMNl5}m~zLU4Ғ5-jςfK*T,ِ#1^c ՟[%\{vkTҟSttkj}U6$fO6IVw-I fO ZE "nSr729p2MXMW⇅՗-OnGqǎl8RCfE#[UeHXSoEUc* hR1~QYp 1A$>!ņ LA ƟO\I'h)>z&4:" KeX1X@+4,2;Zu˸ N=K\2|Pw3v-5J:NWKPȥ$Xo-+4 ;@[RMzo^jktgv4Ab1אĀ*M\:Cpז2RZp|}Hj4CITaj.4 f 5\n ǻ~I " 8k,B7YXsuحxyHNÕW>\WgN^Yck i5Ȣ皭NxV 9e]6+F媠MrQ< lo40Mv˃5f[(Zr=Za5^=^n\W-ƽ\{WwnzkA-z vW.z^g'qWuqz5^'Nn\ =^=^Wt@ʚq&5~l 5tnۖj9z>ӈɆS,5O$Wɶ6E:QQe5*3Fb`┘Ml)I.j;jb5?AOUQIv^k26i5x@mb}w=ĊjŲL(U |9BeŲ=kӌhuSv3IM@ -sa5̹KT>^;ul3flr! N= nR,n0_Ǖ"6RL {Z\z0:O=^̡%n2/âu__٧.\9;QHU}m5+"cKE[~I ũY .~6ÔW*dT[@Esf+Ղ<"e/LW7 `nߟ9DptfpVR}ݴߧ5IHDqkxh{,}y灊JSTĖCZ~v-Z 7n~4@ zL@չ#O<yO h}Z~}9pǺY)u[sB@}^A.4vԛO`8ªi?:Dgf n9-mP~yr8ש-:&( R :{u|nz+Ƙ",A@_(Sצ1atճ-nT U7RVHUI$@ϣjk?NU\Ex?MP}n[HɚOc6JW*K7$g>ޓZnUF _a級8>CT xqЌ+Sykӡ x:E 1,z@r4W7)I"&cN߭p '%b{;ii[2#ݻ,S5"zLc@l$_c bR0.[I7W36*Tܧ̕KS]zzf;n>0ʸM>u_XL ݀)NHW4'9(猼9u&Ո* f09hH<^(;p4huW9i]o9*]rQ4&sm)8e$JHz oPR|,Mj4@5bEe,г :- Vj|Mwo׷ʐk`x&@[qSXrw"aA>*G~9/NVߞ5k KSAX@յ>߬:{;5iT@( o戚@8u)ʣjǾ'NܩDVY~IiQIo(ocsDW]'L䒶iO`ʚ@Ũ.,m-G4 Y*$E}vQrMΚ\kTLe*(Xuf Rf;e-e:pu mݏÎU)oCpvf[>;AZB 6<eV[1p [XiO-W, ܛ//+rEk ˌSdSsU?i~i"k u* P2H [eV>eފ3(oa7W뷱oV Fb**:/*GEzZz:Ctmao%5jBL+Pyk` {m0V∾,Oc碵 /sxl9X[MnbYTыZ㞊ƛXٮz+sYp妰|-LSz+TM UFw6׍.BEQ\_+GeP./pSi ,!PYjrj]̄ }6<ZRb1>e^ְ{kjYmz#k5ȼk^j׃{yMr&ܬMxW|n\{9v57jzۖ;r9n WaEwV<+M9{W6t'梷4ٙ/)'E6W۴6~zEzb0ߘ-:_X8mM #~C3k;{Zݼ>G;fynh5̳nrmh~>Aօ()g8;nvw|h>4pTY0 m;\7Me?oZn*{{|;lMx&!ʽ-{nG* cո&Da]5Zd>lË(JZNVo)MMGa+[U+Iٽmyp&L7 EX T^iI,Ljlڝ;w.7l` 掠s@fy^H0$u-L[ ԞGa7V*jqEnU54HT^d̗;ms@ ڗd1܏ 5R쯹j[wVfW `*M+)pX\F7XfJ]Si$(xpJ<7Uf66>XV8GVJPYK0Ͻ>[x7фg ?[kʌkszsOTɊЦlkS #RZО54ݡ.a&0 NVO'7_vױ4z3ש/\T +dtEu=>29c+*S;kWtx3z囆,E<{m(iz,Nv^`̪ 7 >S5gDHY.IIa{9H0Ua+UV٥|N[¹ɘpK;b4UV,nw(__Ooo< 2O]C] ӕl1u]b?g9jPNƨ܆}˞j>ӣ_Q{x^Suj0]|~nxETsthSnxۯEj\JdS:ipxsF)j*8D8Kox}'Iʼc!`n>|>{ejp_q3"$j.~t&7[z04gZY׷{#r ѥ. @tI[sZ3P5؞-pII'(U8e9ݛ}9XP"}4V!4Vʣ{y+SN6}%^ƙ1jv67$ܱZU[[^ $Mpb.?`8-EJ]GBy vR$eTbBiDlYpHnjb1g:ύ5q9c/!*ɻ[gǕUȤ_tYTnՉk^ꫣ`:r@}ڡL+b Fwmu麟h͔3`+q{JƬ0=2VI$>(H$U f|]T mm+ګf1Z V[)Kh7m݇1MH JrGy3Z1M`X7ٷ[Ɣ"e;lrܒ.~RjT*l Gg%p B/'P X.Xzяsr+@M,k;+)H)MX3)Ym 6S ƕ=:>V@yu oe6j¹sպ;v4=rUrznz5pU5^su~ZD^j+U~z]h9yMwj]6z+ӵ{=׫zcaߚWAߙW2z:sz׫ѯWcWnzkz$sU\ߞW yvyrݦz=^9{WaO=^ՊUHWW{WvӞW\zMzl瀊9jq'Nj\@=1[n\I'W7^ ߞWd[Wz{V2-֫=[!JsD׫}HEtXl㕫Eukbp%lrY9qbyqcqWn+Պim^%kkמ\ +&z\\sU~n\'cNh֫וV7ՉΜn+^=Zڏ'=ZRvՎNjkz5M=W٬zj,Vⰸ=ZX$מTwnQ;iyW P\Q?A>+5s pUhɑi5SE JƦMTOkOg(VM1Vqnj\!ݮTJjFu6 \ӕk[EQ&io+MMGam/A&§ᆚ k}C{_eR>cM FϸkAxtk07bmcga͚P2q"_03K}>gxH|3]˘Qf2Ua$otsUK)NlzH6Xv?֦KFB7ԝ{<<|yZ6zur-k}XCcHT7VOAaZ3zXv쁡Awͤ_>ÚbP`ccP [;~905g<i{p,txxxUj6Wj$'ʍ~D/91M$z52FM8ZjQIV{[~_+^4 &eMXOnF4Z]DU&&B_9y"){򯜋&nRKӑUkmo~߀n(Y.ok;Tfīk*!eEvr4˔!T&ݯNV,m6h[ÛT\S2!nuߎ&jeFm@$^ÛVaDw,{9YPVv~lMgH^~<0f3^o$a&vXofsʪwCS0GkskکQlm$?")ʣ2J7c!mӷEZ`` η'샧hT&*l 1Uܐ,=r0+EB1OV֔^ߟ~WIB)?KU!dFUGm*Ձ7]=6^$RZ}TŬȪ;~\ 53d:SKBfA&hi'5F[ lSCQ( ݡ 𮩲 T[M IXP`:,!`~6&"q|GO,w]xSBb?Ƀ8P[O-8n^i·y^\tSZNԱGB,-Î l 0ԣ 4j6%Y?~hU/wW_SUۗn+uȝZ"9Z57ZպN\ׅd^ЯV"Օtz(u=Zj.yt׫sk\A墫ZѮv- \[5 JvnUz\QݹwVuV:/NW5zy{p_zCWW7^V⸫U6禽]7^EH榽^s랯W~n+jMn a!mø5zj0Tl:͑T5PDM/H*إ R{$\V U& _4GW-lM x碷I|W2+U2m rU 8\hlēn ~:G5ԩRu>ːj&OMlOuR֦1P~`fzot9#ɯ`i ; 1iEx \>b֩ggJ 6Poq^VLǩ;*kNa(Ub8%)v __?yHɤ%J"ݼ5ϯ\qpkMkS cev;O`=q5駜9- Jl K^߯iη;USѯݼm{4|<9+M/)5[ߧSV)M|99)pkNN<5䚺 `W>xezjăO[?_.MP`iEYh(~nh٤vkP'5ZpAMGa>?Н6*}@;o>lWLW1F";`'Ap||O,j_W$'sf$}ǵƧ㹪hu[Z{ja9hPIہ:kn?ѩ՘8] - yK}oMj*=&esa{k)m t*T"RW`|/O7kdQkw}_g`Mxjw9Ho+U*۽Md7Hs[y0iUP*ۅu=>sU觺:Ph`llt`焚X52-Hߎ5R"ϒkO1vܐ[AsZ)4PUHb~<88Ez8@0.-jq$JѐHOϖ+U-DKx[]><[Y,׸'P;i~j+™T^ˊ•4j\R2ZYG쭊+ǸuOonVj)KOi"sEZ$TO@ mǚ5)IK;&\ZvUnKv sYPۛDYzfYAxq^&<Փ)Pic|5Y-d%B7}ܭzi9Y#֧P@B nUBMXSmXȹ*[i[jLJdi&e"Xig>Ϗ=3ZX+Hكwr´kb.FHqVI|۔,r~<دUeF̮Ou'͚kԈ.ZmmnnxVӦ-piH YjAƬjup)HRĕ$ ssUP-QhrVE 5Uc#ǀƕbˎQRiх%hr{c=o<թA0ZZN{_NХɉ?_g6lc.DExiӗI^Yb#vTx4 zSei[{{_j^ E%.w,57h/}>?ɭ" z wgʄɮiDcb .j~f\3],hv{Z˦LSe5hl]_˚^&:[G=1a*+7x~6 9NqeH͉ ~|59kE@r,S$f E5SMfEZBd7$Ek9[N8cʬGh}<¬iҋdiv`>6}EI'n7 k/a]?/o-UAb (sÜ+qIZk)Vox>q5C^t6 kOtۛ* Y[n mIy{m4cxmUg5@\a?I &%`B76]Hו^˔T?zڶ?_=k r&{XOߖZNN)R@_ךTu*U6U5)a)]mU$UaVʬZ{oXׅN4d݀$rkIIg2c"1CfKIb>h*kMXV kf+qJl#E_Ǎq&b:| fkqI\K5C,լ,~\ +XRr jZ"^"4Auh>';kT^MGS'aR7SoiKZK~xVW8D˯x(оIȮjlyjfCqV4Cerdu>xUMHYyCYPV"vi6+qY#n\TY|xVW r^ptw׶W{6Ml.y[hmȊsW7^b D!<۵jI6i+5Auw-K~xW:F`;ODVp(7 Oa}O8ޚ4tr)~Uv]'JR7uJQ=+pU$~Uynz$(nh&kՙZzT>ZkƟ2.FEcpCt$]{F $~vT䚜,6REl mh)\*H[ LfZX"ÚkSI Ǘ5ZA<=+sḐo k(UY* nVjzFmr-oVRh.?G7ZhsEzkLZr[&)ӚJL- m>j-+Tu4&]Xnf:؂ yT[1l"<?.fB\ho>͍}Xu4ᝈX׿9S^0͵ΦmۖZNc=1k۾Z4s5M>mausEzB..{_ؤ~1M/}@?*GQVZM$xkۚ;+`SV3x+1F E6!.We(LvK_ǖV@Qi}9ŀFd u,H?TaJ_!"EPCm{<}b5L~L%AEB\Ǜ1Nbq39bn{}5 ֪BYA'Ou爯Navh5 ohlr4y l\j{~۷krjgbAA܃_ C^"0OBdb5qm,v>' ^ǓEmHG68T,I,,6[-Y2JU)am~x׶Ӎn\`h@O(ku8Y kㆵ5S5yMb_Kk\ 5B-$5Z)Nʄdi䊖 7 _Q4ck:\6ǞqMq_$eXmH~w<h VCkvLjH}?[rkpk)"6A Tj m=~ϧ)iʛ/AQlEɵQ4Nbx[Lw'?Ӆji >(5O I~Qc5jO] sU5 YVafmuϴ9R*]LnTaoͥ5+,8Ԙ>'|O<+G˖瑢d<X*EwWKV7#R,?SjkQR`RZI.=-o~h*kq46%AV+N"C`x[[xx>=91N:Dj:7{4ok°f`Y# Aوt O*1)!}joxvхPB"|)YMk9iT"))׸"eR \osViSu69^'+`M:*R.{{{ǿ*MxW z/ IPHۿV1}jJU-6jj}6>f 4;_EZk.=ڍ~"kB1k~Ǘ1\ ԓN?1+Ca~7&)VXÎmvR{=-n& 5(~r_H;j@ԒVT?G妵oq#9iTC)R~i`{aƔff`6U߷i#~5W4+ ݺ'OTc"`;|5*.))dCs7btf]evrAak|E_MkM3IK9F-{}6|9k4ML62M[IZ|nMwx0ͨ twV{؋|uM8)3FDޭܓnu)٥ PЧwn了*DUm@b;w~6啍xaPqޡQVT0$_Q{[^a5*$Yj~ `G̫R/,ŀ梷Ixpvx@w^<ڪIlWqjaVNڶk ӿKXpbX~ѭ\V$ 3>mOOxWpdaۈ ۖ]UR$e#h7j D 2k{[KqÍRpIn$n_G°Uaq1.~n|O51[WrTaЍșTp  )x)$6o}O5~ur׶禷%P@$h-}NX~ ˹kZbn&A{`HIš]san{s[M[ed3=.{yZ]eIF @I\c15w-iǦIW;͜k§QDaXIwM{mrsa5Z5cmkO=M]{\vʐk`cNu0-}BMnSZpHokr5)gb"mM\!:mMj)r=#NQ'+ ХF bF%ZP z[墵3eq[KrV'5iIn8*^&frSGP,Ez]W<5R+rգ]=^˚O/5adC~7[GNx*]-.[/u+ˍWj7^5ȵ4Vn>9(0 sEj~jky{ez_^ܵn+Nz^Q扭E;yYWAy^aEnkG=Z=^w5ĽrըJyxժᷞWVu۞Wi'5U57=ZPՅta^57U[W~evXs-WWӛWrmWכ׃U)Vb7ZsxsusUsy{AW۞W5^elxWqw[W ipcs֫z^ѭu<+ y%כ"]1͊כWNl 5^j]\mVj+Uǖ/͊cfxu+7vTV6;y·5J^ScƪՈ¨kvz8k{+ V nߚ'ՂM9c'Nn+LA"Pkonթ&7U BO~l+)9IϿ2* ĺmpOsFMhTэhn$o o猚nΏVGȷ_sh -p뮼$Hɴ1iX{Ǖ[E:o~z/Ȍ6@{F*: M{xUFfL.V 64漫ThK]'lŬ<]ӛ+w;@ BMb/{<5b*! XMB>yXMp҄b܀j*ܑ_eUB-ߛ :|9F\<W1ĪBEhc1^TӴl64t牭ԌUTΦmqEl <P j~5hzr=xyiMs˲ݧGr©w <5z{\lUHb9H>5J86,,}ڐ=m)Y1nR&Ćj6%5j&P+1$NÛS`ZhO5i) sƼ<6[|y]$J'.PjSY%ɶV)-*ӣCJU|O.E'aqT3"iAMI IO(~汢K8뚋^Yc6ՕMZhW>n\ !5UMnk06עeS&uѭm.oskԓƤ {k]9qT=TLpӀVxفb4_o)ƭ¢[1{\p^J?{(P+Aр&|ק f}$w爚5o5FM;H-倚F\PԝmqaEzk2u_)[%[CܹkBbi\JGӷ)U45ooKk;p9}@ F 2gmΫBṰS EHfsulրk6`ťr=9^58KwMEfh4WUV+Ϗ*DU5{)[ |9F~3jM,m ؠ0Yn O4EWm-sFh4(Ixx}دT|=]^lmSTMH|͓^SvgǰN(͵nz 𤗛E [H*WmoASUZUko|yX bPa.nk]~78=Ԧ?H@Bڞ^UV_k^װ[銕 %h p,omowI*^ \,B4->?ڵwcjI9}5Ilr`4怭m%{)b ~ڈZS+W{ xW8 bkc c4`/[Jq ˋYX㲨?h O.Ly:[<ƫ1U)܀s֦BOuќZU9/mOl4*FGǛ7vdÞ~iF&A?߅#a~-gm4qӷ׫"/7^W<|T>n+Eg%;*,#q™X18#WB >9X>LuP j F#|9hƫX! ؏KǔX6$^ŀƴ))5iP>^0l+aEz+S|9Q" *7 Gn[ oJ?yTX}iS+$;/܁&_ H)\s|kTarY67Q e }ѻPď{nʰ9Rf-:[s1[iq7S^8XXQse^5nxMYR}Q{ptʫA1Kz9kjjԞ @g+u$.mkQZ鵀^T )%V&Ơ>6q1W|8$BU`{whPGcuqElj:,z+SH#qLm`dk("h զZkU*K 傫tQcU7Bj뼲;>{ 0م &3Pqkp\ֽ*E=IeYv? {eZGɰe6A6Ih< ?kMzh-}en $֕H4'-^|Xc+K+|-HV}$)cǺ2Gv*ݍ͹n=UO͂5o`jJ* @Ԏ_ Q[eCcs{|oMlS4HR2uӗPve|yj4d/؞a^S-Ym&kj9CWk8uC7q/_*]*i+rT}VkUl ,j>h(bhR}׸5<>GTYO o9&k>-$hT>oMkU9TR_@><Ufil4_yo{̈́xk$USb EOr+i}WPDӞE%\vfThInh*Tz(W, v|8=t֧ύ-C*-ۿ̈́^&VT9,9zo mە[W!"qݴ»e;UPjZQki"MG?7,fceoV5P)CE sMoQcpHsA~h+`lͬGsk 4擶1Ip؉>TgjU[؎lM aOGÌT#"h;xƯUz 2<4haA*46(IZYSVEa sC~nMe^Vk湫nnkRBuV+(Ӕdz=^Cׁ6+U5jv" rVʊɷ/;¼+)W$7"]W-ȚxW׍vyz5̣^j>VǞW~z]ӞWMrbO=U^z5јnz=sժXhks·\yvZjWWWu$DMzz#ۚ5Z׫@Ur9W9QV5jn^omz3cʓVZ^׶WZyqT5ujMxykUz-cWskѷ5^V닰zO=^ ÛW7o- 9^۞Y.Vka渃V۞xWD_ǞV&7<׫UجNoʊѬ$ߛ5nPcqʚc~z+ u2iW3 LclKkm4WmIiidSo.G~xeڤ-+iGGEknhos܄ ~QBĕO [_=5=e4PXinSS6 l/s؛x_Һz} ;qS>ʅY%WYC @W/UdzwUHEu(Hg~_h' rèX"ʈ]bؙ%)\=<"5/Pc8yT4>'1Zx`4`'M<4uPS8vFȿor*X:w=n`שĨ߹*M4eܩE{O~\k@RJ+U+M}yTX`y iexvG5yΌ"y*'&i 1:ļD@H~jjv O}Eoo(@Y83R|!ů4ҕ)Qs 7$}Q Jƒ @؅dQGyM,p.e*[l+~ aA4R!חVU=^qnY#窦nj]V櫷^ǔ0wsթnRY5^Hyr{W`MϿ*Mn+Ú$#.j]yry5{k64۹Ejr z^7^'56ul(3ss^F[U5!墽梫j^gÛy/ۚmU<9UmמW{+mVmWsգq2yv .yy=[nhWmi׫bW!)nxVܽzh ws]{sպj{mtz5nj+U+S\K9 NTb=Z$#VHEzsb~Z^7lW[c^.O/T]z^]V2ozEZkhW'5Xu7ZמW7<q\vߕMvXsգ];mj=[pV=^ks{kа榽5U=Z7uEp:u^z\yѮU]_ǛW9tÔP '+k mNnwzX=ZRkVhybm9b'=[NzXd<1[/V4ЯTszȣ1Ӟ㚯X$ jHZ@ly!so墽4R}{kjƚ3 =qڭ,dtR:J@[ƺRG7#EkNM˞ֹO,LE:ŋ.mreZd5a5m0f D;e6+D6OώӬr~]IO,Y_M^$[sKՓ1L=$u'p/O(7I Ǿw(En0^7YCp/ؒ;|8٭W'm~:?ʊ@yh"=8U5M$[K`.n&8yd0D+7SߟsZk{iGʟT b4>ר4ʕyhAd5CS|?SVZ﮿G9ahT^k49J8g*Y+VM ؁)\srvX->텉_4*O; D;.#k~ݼ5c=GQ#܋Zq0R&"=+`5TcxUX1-NqS}<ؑ[ n2fvQq۾Gsdoɼ_|.=5EN:jT1G []>h ٬<с;{n$9Mjk>-T]@7 I`(,+{oˏT Ķo`H wT>Qmە:+E 2]]NO^Ttr4fܑ=M7n%ZǕ­(߳#nO5[wu5p;&ǛUIm<9VlNB^^ɿ-&<h֢j0{*4 ƾr&*d8:v'sA1)"mmCʓ[LjRELm{?W,5E`+>crxE7X Qm⒞1u9R"M&=9eŃΗ F4j0Z5icE(5 \s׫eVT7)[۞W+˃U\P9vFz sMW$ƻ+~z5l!Nz]W~R+s]5V(hKsՠkjUߞW*j¼Ѯه6+U ƽ\½\@7^[[]~j5٭W!yV"s]ժslWW71VdkG55p֫'O4خt9P*oU.Mb[nM4UK[FGm@?ydJb<׶L5;\1Iey.+iDǒ,Mӹ«QR+j1=\*jEKd41,VicpF+f O(U[+=f M)ӶmFI,f1Bٗ7ER41\4ccζ<bh!P.\؁ƀrbM&?GˑA5Ŏ$ ەƷYMV >6GM8QH6Mn)(f@ 4O+87̣N;sx֌S%P吳| 9`MhÅ׵;.Mn$:}\բsP7n`Sʓ[S\7kXUTmӚziFkw"ֵ5u Ekߕ5[k =鬘`)WP]#iw<81M+(nVfDT00klOAMMnu怫Z8go.i1J 8&[)㚫Nn_6ioLH6'O5XR)UT :$\_,vVt\AXrEXue{{yLS Pgsn91Zy |HhmK3D ƌM\ld9P)cN4{yN=G&vS{h>1rPdvy:Zu>oE"06^#,9rjk 9dMG=[sUCYPu 5m~lW.j\׷7Tk*ysMw^z+z]Z45`+/WO=_Wnn^W~Zb\_kUnZ\XߚW)j^YH]ӞEq7[ U$'Wl»V5V<x׹jxWW% qbG7[Õ5j9W偭߷4j{UJ}W(+4EnyWs·X{rպsb\zqߔs2yW5b9Ѯۛsը=V+s/=Z]yY9Zׁ=sC W75'M-5MjnD;;jT2cNڨ{պVP J5ض@"ڎ߯~jkQPr8QJ=ߏ< xLtg˄,U755$܁U%^\ U@U_+))7x#x h~>"3NX}=M6a58»e6Ǐw4qX1 Y6llnxW n#%EsSDnF4\G$49H½\*מ*&[ViK=R+tɋ#s{v+{i\5 }sDVX%t[pkЫij E{ZXsjE:aK0V?9U& 4ʙ ? +S\f%U[v/+{k_yR^g,fÿnxڑSkPNlWJ7]Tי eb4TՖc5O ~&O *n#HUk7Zܻ d>S{nWWPAbN=U搴֙Z:ey~nzjNX\Z2mڪ.@& kf)#vm/yZ0q%bL6yM,ii ۿ9Q^ܽLd[_@{ ~PkmrqB -s`׈e{UO{ڞlj`js[Ne)AvL U#[aTMoz+K33 ްrTXT`y_KSߞwMKpP$,'iV۞TS!8͵׏ESm`fH$ >LW5Z(^kS^_%mI_["jU4R:-MlvM-߿, z$n|yTjMJ[M9mSNTx7muVM"n &1L^K-U;M(-&$ՍO:Yٙ>Zx[P}u.+E5k[TIM$R5vʓ[+ SY ߚ*iL$yj@הV5<.ٞ?og. A6=4xcO\rEz,^tdSa'BݹqVҙ#Z8P)ַls/QNQ(a}]sUL=(4Vtk˖怎ZY=[onz5wUϞ]~zYgef[[[͓^t"SE :7#ǿq4rLxӖkT64R>nmnⷷ}>;r<+DS^ S JRA$# ihdkH7 sQVcXum5>')^MnPIn0" Oب"i zo%.K؛w7{ʙ B;倪X$Ӑ魑J<6a]~7knߩZ㙩pw QI:} O5Xvx\=ܤ^T[e`X _Kx*kzk&'m=ˆ' 7*-^ Xo<Z*女n&y$LVUn=>􍕲 0MTZO5Px׉\/,wܬUf0L)IܼUI2S\'qN4xF[ xw 8D%H]w mc~^&p`H#hsBz-^j7?,4?k)Qa(E~Pj}&L} 6rUͅ0xՀKǗ\ }h[SUĪ 6Жlk?"cyahRo&;GDZPHՋ!*Q?O75vi:;׶2))ሠ8@/O MWSzv̉Wݷ}eq]cn};)#n!3$kmOȡo|l) &t5G,$WT]^Vk2^&|O=xɎd,&#E>͸6˦EKiNk{+G{l iO%1hVIʼSΪqGMw'*MDEDo } / Hc=^4U4,5ni%pv܋6DUEG>k+-Ut%%ǿ4Mm"b= 炫zkU^=Ws*llMlaQ1ff+C 8q}hةbvj+=>?-3DZs^&Qn^)J@! O/VN/Og5VsK=aDUF4S[=mU@6[&)C`Un,?Ú+c'::`Nu8dS\)mrHrZi֛Ƞ mSV dFРp"IO1֫,cW%79s^nVNz\Ԃ9qzVsu=Zrk(6UM*cٍ'y5hX$"b hַ7WW f7M<{mMsI(,E؁sdMzi排*65(Uq p/UTR;vhv> i^61 &d/{7y@^)„S&7<Mo(Xf;|8[kۿ/5XLe`$2acrM9` Vv)0pr4?.65pb1iĊum߿.WUI{`Ѵq/Ǟ)vr3|F6UI6gȨjk6 z;M+)$@e4))q}?_2En(e9Zj-MTE!<ՅdN"cq{yԌR$, V8T l eF[`SSB#hm3 Xn63N K:.H\A~<ƬE&>A)B䮶ːjaQHnܡ¶+ԡS7o5e U7>?͊T,)ak{ӷ=ש޳,>IUV6` {IJZ6Z鯰O6k™& k+Ӗ8Ub\%ۍM kF*2lu1DZ핸xRȡvӞI;+  Bu6A;jAR><4Hm6Qx9SqQ*I~ÿI¨I5*y1Or&PǙ_R|~VYhc|ByjJTg -Rfp)GO gj鬏-4ch$֫=. ea媴-OڞzN4j*``@7 ~tvuS#v<p"4=LǕW4jϷ=^mW*UJʃNz\מ+<حWg^n+ rYb:f+/%{sq^\zV^z\=^s=^suU-V)5^kչ7^&~j+Q^"㞯l^nMj>^sժuWzWz~z]<׫yWkVۏ75O5Z5nz7Uu+ݹv[½\͚w۔ׁ=^o#W%;w"mVk{z^-nz]E{W{W W˩kU˷=[)z Q\S~zSZ陗Ǟku8W=[5΂hWHIsvڱ窦Mqv6lV+yV)ŜߞExsb575aʓUw7{5k5^56U)#5pzkӛtuyyW禪q zC*~=^[5׫6m5\KXsmxW o͜+ku7UiVjXՉbK Pi]8: )#(Q=m4"ZJ1]CwTƺ_RwdUdĚ+fYdInC{lm4 d[ԃߎTU9aak\)0n*DB-qT]7M~xU8];Hk[{G=kU(mL6(А=-ƴub:+ScEcMxt FMp6_=̈́4BF;RQi\V,%tEJ.='+dLXcÿNgHU&[ȘRlt_NXMP--5J4;ܝooߗjW$0[1sߗƛS[~xV#G@[^ZkQNT8kž,E6 fAԼ>zB_ybS6%,.J#g455r*0_9wz:ӈYXm~6抚goʥU))*CZJm|wQk7FQ%5.-o={ V`ٱu%BmsQlN)|`n{iqgmHqP9b&f\IssA^T_s~7k@P{h+˜rdmf#I42@|OId%|Þ5ꏄam%~G4M\VJB-"Onhr/ws½4G>XURJ fýRkbC= [@I R,oo++؏<֪V*ܢq-wSܟ傺NT2b(F椚V*8hw=7&7 _pk_[&1As۞׫[iUVX7p><$րE6R4oUU h wO+V-1gMo˿+Ƽz5a:?m*#m BP1(FZ~M5(RT{vEX̗,ǚQ*ˁֆ4ՑympKÖTX牭EH(0gFx|.'^@QKE` L%25R "75ʭ~j+uMrW d^z5Meu@_@-WܰWwkyJsDUe4*Wh|9[|zWksu~j^jkn^#{WwyVnkoUkV4zkHu]Vk-Uz~z5S]suW^`VZq 5"z G*5YaN,Hĩ:Xx{>SM^j$X*h{߷8R 9I,0HX/EX1֌E㶶6SF)<[Z?yNZ\"(ͭƼעq~uceRӔq8i#v"nCK¨`?m$!*̃Fqחc\.{}<I[qo]j+/<eR`TjYLv*,K?.*ٮ7С_׍:.hV&lm~;AS$bY"Zw7|·]͟p.أŻ/}U4Wp:$ o|{sD ³[,GsXV&}%DRG&mBq?籡N }Pa19AcP޸UOX =_oPMdzTw7ojTuMzk5i5Xkz hN^\3-VL;hƛ1B%g[tӗ&){ĒGƷHlb(ߚ4W:׻@n\ ƣ0o5 I sƼ)›1H7[CۚSżA:r[&ԨB ykmBhi}kms%זʝC+)'Ed[kStwm@FEpef([CkqU%*ZeS~jYW$X̓фtdN5Q-QVn [&5Ւ/vS<YƚCY>[4ͅ䊊l#oǚ$V1~TR>;^ݹE&qΚIժoˤ6\!Ssc(Of~m`xJ\HncMnDTl D+3ǖ)ZgL& rH!l9 ҍ6e,t4XUM{jlijVk"bNgon[Hjj5 jMZ&%ʯ;*jTxXoIAx{5ӛ+SI[+OR[wxEJYNnmy^|x.Nmrk5ӣHטL#/)Pe)gj>"Urt' Ƣ ) yx}K`Lߗ 1<z6p>fEU5XHAN$"}ma9 ^0a w C o*N"K)66qQR `]<~=aLcm6?ѯoDSC+@E7 isr2Soon^MuUP (嬞50^,1),Nxv$viq9j|yX;kQEZkNcI7AIQcnf qziSE0AB+VjL..3{;Xתe>\T$b~njT9Z2õwkQ\mc=n+U?*%o7^Q 5h!FKVDưU~o.+ƣJҵE58 M"$q^(TT">%e{~.oeF$mÏLR#}kuF׫$fj)ydr ~nY#u *kFny5뗯^x =ZUc\ƜPH4kՓW{VמW`ߞW{Wv7[|yH戭W{uwVպ U)+nzO=Vp8Ok66*5!EM#Țœ L`1у0jomp0F/c~{T \IRnێّ^̴4x| w;rHƵw=\skLUpGMaP}iƲN Ob7jhV17c^CZ!}ԟe`ޞi:ˇ4L/5~DuU;٠՘zWFAMOӉR )KxRI,=J*e5T cb<|y k˖PU~yk`V:%+>_0ߤK_8FthbH<5+S8uzUd+##n_l&4I\>:&Q8 |9y)U)8cKCE9#4ݯo8X^x݇**ƛlЪ#+}<Յ6er;)B-t|/˃]/P͉$Q?StE})!˧ CwK[oB$P=Q[ լ@Mt^8 { IJak:j=DF_LtO E7ջ6z+XSf1`hS}$[8֪UXTZ&) oPI妽0 9a]]l#R.Os:rW>T`ҁ{x[>ޠV$Ԝ3(SUJUv&_/E{M;e!Kx^Rkq1VEKLE,u}MN+mv^O5L2!T˂**$TܒnT2 9uNjjQ!v]װ&q*Sp^:=)q[t7碵LهuRn:}5avӿjՑf?U@ vw̓^j#X4kbbi'!T1ߧNVqLU%@XsU[*?MSsDׅ5ޒ"[M;jqT|2,5CF& á{jn1F,fR9ST-T#)QEÕ4v1ySyw kȍpfɗBrբU;TU2½Q$ tӚ5}STOE=>o?TV%Tmn +f""0G,׹Uʂj9"$s·X'_fWbB,yT8d*[G媕/ SHvQa~zN8R,AO S;WSӷ̀+UPAml~A,"R 5J9bwh.ZUI#Zx'm_>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 540 720]>> stream xOK1 lL'.@ $݂lEJAe^޼ @AyԶ|_s%4"|ō:>^bp"0X4>a N=>eEro՘m1{EZHjUV%,ڀ*9ɚݞ'lq1 k|^͏8-݂ɋe5}Ô6ɭ[gz}:V*zxendstream endobj 18179 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 540 720]>> stream xe] @ s5 }-@*XCk]D @-SZ'eudlڳEJYMBv?/] ?-?{j#㜉aMP#7&ߕh8c,endstream endobj 18180 0 obj <> stream Adobed    B    o!1AQ"aq2 #BR3$bC4% rS&cD5Ts6'E7F򃓣dU()8GHVe*9:IJWXYZftugvwhijxyzi!1AQa"q2#BR 3br$’Csc%4S5&DTdEU' ()*6789:FGHIJVWXYZefghijtuvwxyz ?N (^z^z^&׫zWzWzz O7[=ZsU{^ܩ딪W^7Uf55#Vכ5׹{W{׫qV;rk\u]jk/nz^z^ su\ZnnY9C^CW=^s=^s=V +D"ysj =^cNz^ ysz^=^s=^HVɷ4+Ƹ_׹4kպ֍xIaW3sժ Mr9`j¹ 9S[¸znӛW_o6+іz1μXW\Z( W`G-VXVto4k@*DjMusDw0s'I4S3uppF[ESFX)NBƥ G,k [&(@1њ FVx)g̽+`H4(lk%XW 2g={?l٭۽xO] YU.a1RM4v4hz>3MDCMXƠhU{m/N\:Z});h;6i@ i:kƳX=4bGU$ ׅLp<}Vᕹ61#1\1< 6ԬMV'MמAMY+pj,UHeJD7RǨMG%N}V1SaX)zA%xߧia RiA+1gzsFb"OߧS1[DӯY;FQ֠S((m}G^8Q]bלXo 8śUN"f>a zi2yeƻ%)3u2)%.gj{b c^Z*"h2JMP19:V%@/9J5%@=Q)6RoD ُ~*>Ev!Tm"SU#w{ٜ)3ъ0+xF\p-eӸc ?f,IWrիUH\iXn-@Zn~8?"|A)+WF>]ۊntxM6؄\[*"<Z>E.O],Vg]ͨ8*4enQs 4T1UThB7'a nzbĬ @ӉUѾR~4nqwxˀDE5'3moc)zḚVo>;EEBi|t )cGm"q* %bA`=ݛ#q4f:5pףo*|MUnw_ugbt,'n)N5U4'-xi X^ P1'~^U@I]LT:Ⱦ{_FL)_;Z*sibRf7^5Ǜ\j%Vɮ\jWܰ?G ѥaUTZN\USF30릝ljHUKx#Jj ]'~P!YMG D5+U*)^& (C;z4ʴYqAI4.;sEsV>Wά5VbTO$$. :6 "P5>=i Q<7k AW:É?*u1+*A%n^h٫%atZ/X2t%}GÖJM=t2 C a |»XiCp3 <m{G !`*(fʲKoC;J:P(xevqĖ@PYm udy N3JT` rNaޭQ7k{XPͅ(.RTRSR44qJZLRaqӡ(>TٲC~yb}Lؠҷ漎^*vIj:_<򧉴/ZYMWWI'zr1OnTʉU6>4'nHǮEi4_m ߢ?@ׅNh7̀NgpFEnZGL&oZ4Q"bL"6禴j]LxЦQ &NvUGVԬ-M 1~FUAT鱎fJl)@ Ts.gr4g2mr L*$G# nnyd `liȢ %l(0pA 駇~mSZhptyȐw&pҟě,ˌ):Zŗ]?gSD鐿j|ф%OQdR)`p,=Y"Ff.iZi RFĿ y#eGlQƖܹaEYGip*vKF)vm4s 50Tf%o4+QUigO~mGqZ3\v&UApіh(_Q0ƊzT !PV%P}y{v''z?6EfJIT(q~~k(! G5:/1IM$¹YAo ñ*_8oy YOvA˜xz#j9^dSqwLF@?C~˄RWS}D@HKG E|=.L+ ,#y["=+-d%tL<w'˸RkZhz=0w< m,t搡5˙\K(Z)6#-6]E[#/b3 悡@t‹ '79Il-bnoVڼe'&DЏ ѣ+~P*uh+1VX[$м&_TɺQZ Hz"jM$y2;)߇, )L00h0c{{ۄNM+M#t*b/ʆ6:(rBN)!I\fBE9A|4.w i(k%͝1U2iV rfeN3>&3/JWt٦ֹKGMB/<  +_S=Rg,/ ]$ __m .dބCO@"`Ul`X*mi?VBFVcN ڢi=|T4 N' 8,j^z^^z^8+`$Gfz1_b0(1(i9-}cM<m8ѢP͗rFD)rX(LP}oi+bl@߻.4BJ=W~$QBpЉERI\`ʼnctM5@|*  76>$pղLӇ.ÜTHFĭe ܶhHÊI+/L7:ݴ'嵜(#'"~8.H3%xǨ~SC ٴr,N]4~n̄ƴ&[[F& ZZk7;tEW߮~Bo[(Nu 'u &~=< pSD+StT9\ kF6b>`u+TvFA꾳؁toՔwe#Nu*C_R]#KsY6m~#p p[qM/]bQzHw).9g R6J0QMzOWJdcM?m48 ~Et+N4TB =gsf+O4uS'ޛ:uKmBOm<-u-Ct(LI Y#^0)& *TgRT>?ÍjKNQr ɠ@CoO%bIZ .*s}P\<)nUJ$񂩥 DPybT3P~x_zfh2֋:eO~ K14: ^2;-?N| #SP=1⻣2/ mC )Pl{cU^P* ǡ:xI+|xET_nU\\U"M3Tu,$pV:NGF3 5;ޚKu VT  QţxRV8M 3ߔ"Z _U \v|| Z*w0m6WL4!uo͌TW%AyҏŌ. U\PG#t!f{}%2`Q5)IQQ|~8Šx{)Tz<~Ta?)-)p$,Xзӟ.7T]f"MJ攊D6Mm&ǡLMut=2jX8S+2_|j.i L`]42F6ZO{$pD7 =tB]&oXDڴXcSƖ}^&x[#a^m0vvXb>8FU`}w"i Qmt*-c~7MtB z#@:T6܋7 zYX=:Ş Δ0R}y $Ȋ+s1)䡍  ۔)3Z '.jbMkxE;ӷiD1 (%Bpָupf)(t{מH1 OQnڈ Lү2M|:v{4aB[c_&M{Sj+𚑴Hr*v\1iC˞AV(_%g Q[]쉥Vk_ǠܧZZxC1kuFM ~e%EE%|n8,m6DUH 7đ-> om&fYۦپ&j4? )$P%LGajTH"aZn0H)*X(q(U\2U m!HR4XtÏjbj)cı#N+=h N^_wf<4hsM R(XDcshu [Ez<ԟg.n̮97P3OThqbFVF"p,dQ*?P8OA&PTJjQ]u,PPE"%ǁi w.h&e0u Òm@S^wO'k2% G6#V4<~yVHH8P*4~*?[e*lG(Ŭ۩R) W:L ^q{q.:)GlOn~0yPGTY%MB?3e )Bh~)&ZħOh! %=z^z]b׫z]yٮJMzkUtzz^z^_mlWa7z\W=^s=^_Wk'=^`ߞLyp&xW nsuj~hѮ!ly[euժ>nr]ss+XsBQQWsu*kSXS]M. ۛ5kl\j c~z5Pl4EZ,jjA',00v"\I.'NB*|X{pv_,SKVn,xњRUǐtcZU,`jSD>_`c7᝚M%I?IJ`}B"ADYTP3ye)rCT6x8dAExe3)HLJH\/wƙXxpVN4pyeFde*;@ rp ~K~%b PHG~qUCb? ;GVWDoӏGTp-?UEWxcMGfΎHxXl+mQI+3QI1иC@)rvYz9LPY7,/LV>ITSE'z;5LR(t {?.+ 6a)>ONk!Ta$8ֆ}(Q.M!$btx P =HOXI$Oֆ(SNEj 4iU%R4d9kY>q nDRMSނuX=.mլ7Xl;T4LM6) *[V-mJE/7 iA#-~(YhNPdpҋBje.!wvUR#ԵTi vim˝Jf"Β ?;~\e Fׅs96!+5XYK2Rb4Ph>RKY5-OГ48yީLdƪk"&Rl*V {Lg^RhTy5M"=vrEԟZ8_gP1᳛?Dpc"襦W1rEWImAv~BGvM 9?ݧmDqI& \ ifj·+# 5HH4\:ap葯xn\ИF4j u/[pF oXm p,QaE?%?QAZJvĂ!QNEG#odbq3,HMh/ni-xՈ[3WU8XE‹{{[-GMxi1.5Ҥv`,n^Y-} z"•*~pٙ8i;ZWHq6U)~4Gv(~y icU c{knnZ'MJi'&+Rb MP[MRG(n eT,8pX1XMx4P OاM@x}U5cTV2xTVOėNG(`36"c*pT@‹M 5lSQ,}~ r:A+JHFuUv'M;SC1ܯ.Mn!%4CvȣWRs3bT9*Y`%7fgk۰ 9pFE|fOUQ$Ys?&}%,B/R;U4uVC Z:upnRIFq@c ۿS`hsQ X<{{mPۚBVhf^qQIM o}kaMGO7d 璪,/) We{XX֕ {@$5t-ETOtPb/᧕qWQwG\jE'@I mdžSlĘIܵ"cR#3xb\X=4Ә}g|):ǎBX9+;wRy|IG^f!*hK,P4,~~s\qf*'ڐA…h?×_MWBYc ݏKҒ'#o)mxpŰtM38RzY7K-J00} xNcJAGӼl*zB.-{R,GŬMHBPs sRImHM?)8P5ĘWQ}c2'=>f.[nGe+JR F?RcYY~$ŒqFcGS,찊p<ڴFP)1?Οܞ .שhY먟))(,(y /&( o)3VI缓VFn1 5Po*M+%0(N"vnOWm05K\5ݾIKg׊*HH Z40 C߯h|:Pc`q㬐*U~dLI8`krJN^J7LE7Bv⹢\W>z^nTrT"~V^:s7^s U=^s=^s杹^1=^uU=^su756kV^z^=^s杹wWzEjk^V^z^׫دVK{Wc6+ϗWzs=^sKss^cQ͊{WiWsF\JsSq׫j^z^lWܵl rz=^{W%mz yzoW25갮V9^7[rC]ܠU;z׼z\ժz^csVÕ5TG<+Ƣyjw<5k6WÞWsƭ^\j5VkzV,\ Wo.*£>׎YFMFW%p.FM%yQNpd,=訴X\PIߌxIN!48zzG|;p!z{"VhҙMPoD]hM"s]|dvP)3 5셌!2//h.%iixphVl=medF̭n, "+*A^ߚ0kdQ]Ν:8L}sx  -)?@{hX\:p<2>?^`6STto|>G'ëw #qIs7CHYvݻ8.dI *=t2WOheKpMLٛ>J䕧EEn:ҡ'RpO}8ljN`6O*Ԩ<)m]($"h-{j8R :)YHhG짒™/'3z s-:zcoxN^ug)@"+)t/߁ʕGh.HiL(GCw놏Q=hz(FCc)Qۀm"+6њA%ʩׂ<M-{n &Qf*F1%̕)$%կϝRBFctaq#RN~q`:qB'G.p<ƥ.}ֽ R_F[Nj,uPn|NuωbhL*XwrO&&R(p 6gSSIU:vDo«e:@ >f1z\QB_SO1瞟bQK/NJjǵ]_DQ]'Y5t/Hޤ]Wܞ] kLpb GU:u:~\0)) 6Ojͩw 25RJvQi^Q=.iXh&p4Qr8}GLU8s=pڣe7n&sOpȥ4P/#"Y=hҔM^D_!6gf$C]z̙ O_G}A o*bmcÁms4WJuFSCT5l<Ӆ64\};+xҞqmVݹTMmJRO@jᲃ[J(5;"q(U$ !UOooIM>[G 3" \ !XPNNe՞Fq6UHOx'ԯJryëibCAAO5l8|Ŧ@}0LhVCS:yO$KË>LX] $1K<*R;)芙~qi`nt v [JT}9 Qz`omSD=:~}ROZjq0!w"YKqRtzO3u3&XsWfpsmp{i:A5U$8!pJh_~:Òb Pu A"hIahd*w,l{| tkZҡL=?Լ;bx`,;G[Ynh|}FbY*7Q tE'tMNщjU sSD`xx-N_IȘ 0IEYl  iԺ*xV*xб*f.aWE:+xSȤc,e*LSJQ? o@PzJMe{h+\M:W7Ӿ~ɘ- ,qDtr?y{ $UXүR=Ex-,up!@w$@:oZn!eknGSZiOU*uVcjF߲xP\x=~YЅ/PsuuTI;* A(t"4m+J"(:^Rvh8H;i8Y͙ q8E™ O%6v7G!ym}!Grj6MAKf؅MLTL*jkmrMW2:ImF>TtZL擶HcaM$y!g"4IZބM]Zfj* X:㒪 ^i0lW(@s^>;]S9UJ6ᥦؤ/tgذQ#Sc6<$)Qs2uAA, 0&vxLPәe*E"X}ZljҔhI˲Ӯ!Q-K25@@G<) A~#9c7hexkQ$i为OQ2.+2kFk$*Q]zC•((ٯ \{ SiT!.8S EO&&'VxZQOhWOA^h5Klv,y Y}'~9\bXI".&6ZU"SG%4r@U@?})UlD.^BKu;| 4RJ@3bYt*(-*G /~T+ut"I)-'Df½(>z^?~RѢ&PHzi!(_0c Ѱ%5@-53=4Fɡr;KN%&t*JdÅi.6tų  &[㌲5l)xRf| ,p3;QbM=6q""H^YHDR-67m2iLUzO8V%@65 ]` <)"tҚÉ-ɒ XE$"GLzi E#z$5RWԁ<Π$vQ{$-M8Pbdr6}&U%:< \ '8oU(iqygsRG#)}}wuOL"rf7u{9jW /:g܎Yu2Hbb]:q> lIKGⱚ?[&5/oRLmV P1|<]$kuUnŪi*d(7v5MTa9 ^:V3BVpJNAG#fJES`WME8 R8 ON,7b,$n?F_Gn Cɖ<>')4'Ne? ɢ IL#f *}~Rn82:V!3Qj ^4d-H3{6 ZH؄g1:qj<"6!#yR;L3 `:]ZI-dp={wZfsI†nrUD}D & ׯfJ>며V*T nPCa˻S w +Ua8S[q+poNڅl <`\$I#BV]=c 2_#B v4`~LU;UԪcp@coˊ1Im 偸ᄍ8׽uR/uT۷qJ 4aUr22+:R3OE+'<Ė@,^@TmE-B9ZYqڢӼ(k/%əkި}=-o X$ \z[O8Q~|NU n}[$xF?W)"(r)צ(@Vʆ4p&1NP!'K4clIMN,@gB8Ep6QIߞ^+ܵ{mrS-5֩#ui^Zj\ߚ5]U6Ҷl]U5,En+Uz^z^mW7qlWٯV>Z\sʭyJur=[+_W%U{uLyZ51y"r=^r׫z͊W5 j恊1]mӖ֫nz]=^ɹ׫Û+76MS^Zv^|5^s=^snkz^WzWzݯ=^=^yv~j^ҋƭ5{=^L/Ww窻+mU tz\=V»#{+㚯TboJ UŚl35鮙r֫XV6Z*XMA}9 UbXKn^f3r[UuaSn ,IRhInX|RW?fyrS+wNru*K)z=ˆAьc2@@T4+kZ=' e QQ{7.6uUiaiL{R~y-m_2nȯI6Fx{۞Z^JB14_M]%o {8[r8'֓^:7cW}Eo~b8l6~UDj:H!hd ^AYP 2 ?~]|D*ӷݻ*Q8pmVLZD(PPVnF' =@1h8mJh VV͔{Ve')BBʓ4oAkm]ɮTjI;@~ [{S>Ӹ!wrĒ{iǭM\\baJȠ{'@E8ʅo䪚4AIo2T >[xQm|o" HIF)xDKJX51 <{qox\FF_? ̻GO@+,lֵǔ}8\a+]bw합?ÚANΚV5ai1puw'#BTnby̧e =^+ShYJJbe6%p@ƐEÉb)_o晏v4$Lh{>f 5E$1,EѹXOII5Z8cEY \'K@Y8P{Tk3f\4u){~\Qavp6Tco:I)8RE 6QuJ8fghiy'Jt +^^i𗬂T.v ǚL\2N9&xjv1m&<\Ɂ42hF9Ԏ+$S)#Oqn@KKҾRΑmr/fvׄV>/S`ƚ6JT07HÀ @*>u#ѣ'Q2\}NJTJʋ`qub bl~ ^FFwt,qMsI&<0T&m Q):?czI%-B< ๥L !u23Fm5Zte!14SbB6a&zjaChĂ/[j:qT˔[IXarj +0&^7҃k"x5e L9&MbXĠ%bDmzī0WDvg&+ }IsWS0 Բ1)k kō( qBRh0HSKSU,T DԒ<i٢1["juv qN LA ňG`,?`#PLՓuGk8JQL U^zkay8Е# =E6[İ:unJPMm8ktIJy2BibgxUVF%m:pX6#CiM'|=ꮣuYFHg;/߿%RhtE ]-"ys;T>bNh$rצ,:$r-v&O@˹/bc{47)8-(My…JS԰V4)hzIt2m ͭq z'R* ˺M1#OhAQ&m[ME%i6-vᰘUH4mB M1E.\F ۼM*>Py,Qɧ$j vu{9+z':oMNQNu3*ҦR .Ql4/ *f2H|`/p;|8MLmrj1; ц&Jȁ("7hBm7^!c!7pE=8MQIc%[{o~3G {`3߃AO(]nI=P>8QPһjM HUfyfkAMOGy|:ȳ9]u6 PIa*V6iN`#H,O8K\U(aؤ_<[1B~y}]T,L3Fı E.d~l4/ev^Pan@袙z:qzȜ<KLMC> A.IMxT¼CΌ0Þ\ 2 ?7FH4豮A8 pt֖%Tt- V)alo)ZZUDWtރť3X|Xv =RuE:*BusnG7_!hٵ+Q(UU@FԢ&(z3c=;vo6o߱+=C\'ET9vXX4X4 WLџv{"ރH|딩j!2O6EOB=)zGO! nFh8ԀҰcne.h#mQK6'6|#8_J2Luj^L4> P\X",h[F:;p>cJN_Ch0֛͎z{8ZY3]$GIYJ$KX{+l#ʁKw|L=Ie<ݵD$Ӛ))Iь:rd#I=u~ҍXk}%JJ&h5cf) TUX[PI+j28WbNDžμ GDqBF:kp 8 5=S~J.'QMR[>NNTݭs\UBfc`bnrt.WAs7PcʌIq C*} z$窌G$)xƒOYOOU;I;NJ VYCy3$a{}fQ~!XV \6&hCnp V<Bo|"԰MNN_-N4Brم ֣5┘U6(e췔:Y$a*xnQ PQĀi [WcLKai>m:p9N릯Y M?ehAWuL/uDi%gUp͔r+pO~GvG'qıf%:ך(1(sCaJ$n9sNz\{O[azSxsUzzWۛWz^z^߇=[{tq+,kf)$W~j]-[ϕW7U5E[0u;uWzˊ{W7^i۔Uzk7^Hfsժzs=^խ̓^Kz^Ր^nxW7]5^sU{{&+ܭn+ sWzWzWsvح=^~j yΜhהjnz5zM{汻z\ _W[*\^jU`k MUG^n\X[V9w=^勞n*^JVCWu Xrjⅇ=[Ly^r,ej-&jsus3\ {h$ifʬe͗on:HDzKXm)'UvˑciPZH0O3P.u <[%$Q}̌d}\u5",Fȉ_8qčjN&ޑz5q(* >8%)zUCT[۩B~hIu'NλAН;q>Fi6 Nm6( mb {LtSE8Q~GwvwQ/,DБ K1%V{NҽPmuʇ:g" S"/{\\Ϗ!iVnHsNlC`?lrh=͵%68FM^ȩoHmLI,<('9֖6RsO.[hYbbUD`C.WŇZ]"jh6r}Z )ȋSL<ӄk4,gt 6fhWE $yr`lG4,k͞sԬ(f'(￀4CI3X<%B5VYay2FwpKn/4HTT=iQŦ&⫵Ji(D5=Edža!7coN|^<+7JX_Db(\'U1,o(e6kتÕ4Qňؤ3`'X5QS׫<vԀqu$Iv[3b)#Rv?4RNgjz)m粏)ux$(X >Y$UL3 Ua";׽K櫟%g<|s u4KT>afqQ %Ta~"Xv!SGGp6-!mOvyN5/qFs& wFxκm)&LQ8glf+K-Ov? 2tD0bQL4V,m2Y Sޑr*rb m>$E%P;lkJ4\1]i(NYiPj+3" kuA$Ufj enзGzixdQ5sLJ9bbo14JN?>"ijnV;jRF6Ʈ'Qڻ8*17ޑCZn(+ ynղpFCVEzX5$ΟO $2:?G'h#hAJA|ƌYs-'\P;iؠ.e=IGV-&h^%˶ T>mL7(JyDmA♚,}aeLH={>?P)dQPFPU`8 R̚6~4Wfڑ1?@v M6 %g3ejdr<&%5.UiWݘ@h4REde_m73DME+{#}\œN} ӫxGALłDcF&|>Ea omxTaS-ґD,dsY'?~7l H$hXh1ZwU-_N ?n*Zx+D_=fEJWAe!jJAWh"P~  @zoқ=sEm*גAFgr3'.glLJ,bo{Ccd5^гytrYv{,O QU/Lxb*Qox~ QcA7IsRЪnxJpGNo=0+z<4-#fγU$T1CaQ'miI_@q3Xh9;;*n6ЕK2K!;"TjZӌM[E^H;4[1IJV h`[5gQIP$a*ǿ/hHcbb{_^RI_BS@r)od4Hr7Kq 3or/ xӪWV].vh,>&@MT_S:.sa,o>'I$PHY԰͋Th. ~[h f|&t< X, )KӼ;B$2{q5tVL%veuzPsm&;WYE,u$؟a& 4QI>U@ BX|8 -\ˍSQfd@Gn'K53W j5["A |6.p*"*cU]!7V:Ϳ.-M'&,J~ԧ'}ЫÆɢP婪cң/S}b>Kp@V셜k)+'|{qmOt erTDm%]9k 3FuO?L*ֳQpq,rxR4bʵ-sczF>`8Tu뛰jQZa۔HX0hJ7zMI&*smk0xZt:N4|lcHq콈ƩԈ# \ ͘q S6:]Bb37!6;*6sAx 5O7v5Vaƭ9pE?#e| १ET~g TG jFYtڬ+I;*P8"YIPXZRH AQ5~!χ[ =98lU@7pVGIƟf10y {IfQ8`&Fb֎bH\p0E*48(Z>jq_S\*M d kǁw55hR 4\zp¡b,S,LmRz]M.۩woTnإBߨe? G,r ؄E1F~/'l5+K. BE˹F& f#6OqZRdR4 h"TO3e6^KGźU3v| 0AnAqQ'efnƒaTݬC^J6)=4*J4n !}ZL3d**e؃AE tQ]Ph,9&| u1Ɯ)ulƬ6͔jX28xBD:6?»%IObNUiAYUDi F5Ɨm905EҪ|Bb}? 8m6XҦ pV8QUPx;p6LҪUQg(0Ȭ[#'Q.e_ƉQvŷ[GV*#ۆ"o~oUkH4m2w,-9UbiT<&*z3Bt\C$0GYtUB5nI>T㌅ #41byR7;Yw(cE+`_A%?@3 2 *m%Qez<;8nq[Xxyn})h{0h k@  z.$Hkhu.,]G 9-%ꓦji%{,ob_,U>~M*#%LSG6k&lzA4(p%U?-۱ݒ`|3cDSTE3D"džVhQ'G[^PUP| ν*#OMuWɽoEk\>JKDTHwfjy85#}(,~XqjY TNpޗ}ϋURKru(ShH{=;XD]ZfP K2^ m2~}Bd U"TSE2hh$PtGB1M*hgZz%H"`5U#C>ƛ2ios*U3)f'U䉭VOӶN?XҡF!Nr4%9P^57jaLê#gIn(r2]~\Q?IU7 hЀ)g8:t%5*ݤ'QM lяDĐ ÷ - fu &z) =^$7^&zWzWyNz"^=Zٶ5VVWѯW{{WqsSVփ׈ sSZ5VyCU59[׹rV'ם׫mW5^s7^^omz{Wqrk=UWW=^sWfz禽\~Z]j~TWW 7妽^扯WZ{W{{vMZvuǞWW۞Wl۹u͊{nWz{spkh׹[Չ6XW/^}H׉5^%q/nV]s[+{+ wF9~"8e\a1zV#H;FvvЙ{&T:6+<^='R ISuӿΐƌ-[ߑ3L"g:8 sEOP;J)U6ۉtVՅzDH*Q;VO@UBߨ:$R'VRQԋ#TaUJuPGˏ:Xgä`)OQ{F־^} UQM"6+, ŻW" UVr ~ H0 IUL岀>& thBŮ5i-qYnyiE!Pk1? |Jk%#hGY GQ*!/!U\IF鶹ۼxq24~If\Uu$q*[*S>74xr2N x06sE +"WmԑS!h‹t.Qyo1t̹|YRx&`Uq_k۸  0Y"MeŤgX妕2ST΢<5i'<2cZ[mM9O]P%D" $DX}<Kt\s/8ȘSiVr/7׌734Ҏۊ471'ÇhNL:[~67q_wcMPi Ȩ"x,I0LjyI.<6w,>t-dE\O6QYM"mo )f\ѓ&UiJB8he();hjV,Gh] …¯%3]|j8\tRBRakt} oŖJd$uJ-"Pb#˄|xK+Rd'PNSr}韛nW&Kt%cxdr,OG ՀV̨PO9 -mV6Ѕ(Ms_= 0q§eYo TqT?J=h~%`˸anh@t P`(:ai& BG)?͠LՈR1B.,Z^/_ E1zk@z POH)FTIZWJu#ZdjF)"iCd;F&67V1xxm;mI- $PoNx_/Ӹ6iu/%HqG[U;\}g .i s_U_p 4ޱbCeI0; v)_VI*pIYn7mfpe6s?m*=xDISme wFνR2֏XD.;uAsee , Z EFM_VuJf\eicfc`*eGՠM™'{ױv--Sj@Σ' ‚ adrokW.*#4R]|GW]5ƻ$@9!*ZFuC6XAo/0RE+i(M1Fǀ @"qhLUKSe5QH^K"#eªчTiI`ŏUbԭ64Rh)TpNUIK~\4(|KYPE䂇P lp99覻)8cZNW# )@1&Q(mY8R([.NnᔳO"2_SbM'Hp(P=ռR5DG6!R+n,7|"/+0* DKC6^WzT䥆{B Mzp'JZfa }|>`@2M >䮊QIiT uAZEެz:^fUi6=Q}/Ɩ}}L!_˾;a;h?\Zy*OѠC'tyjF/).E>: ^Gq,&%m;xdɦT'>a?|A´4dΝbȱ)p(Z|HqN=~lIdY4KTюCn;E²sz榽]zIbWsu뚯W{^剭\sF5(=YW9WWۛdWR^z^=^*jeJ.qΣf:::]R>'WiEǏdY*pM>kjQ)q[(DG{ES8R<"$4)tK( bފaYMYQFW }Y?EФS`_Q2^SH?CC5]T]sZTrQr䝵EnuW el;i~T={nqU-v,Jk.xDž ŒuCiph*C#T: wI0jES-59nnRt'6(FzLDIT4D/~:SLcFIRYS1 {Nn&RH/]{ʹ+ņAUK<' 6-OIƭD/z _ĒӬ2Fy@j\G&f?A(;Kȕ1I TZ&*\R%"aGj1q[8OEC2|SmxAA(~ͺɞ墧+}_AxzI-ӭT7L }qe \/HЧj#)X$o ]`{ 顀Uy;K5[Q+-6Ӽ"nbϳv)u~: 3;,P!XA$-pU"1 cabyUp.c2cA66sX=|@^3aX"hʌ?yj«'u5u yNe`4ׇvi# uqi^@$Lx1N1} [Qqҋa4.3T٧(lyNO+*@?ܓLdY)%b<9`Ц ۔ F.kb QÍ}JHƭz.d:32cBF~Nl ,͉ERxhHE%T(Ճ\⋋Fv&^: m%=..ɈjͼmԆtT !@H}DmNxuDJLZD MNC X iV.E3O os*Vp!(O0UOyֿoyRi5`(a@VC RK>T&hQt&gJqH!V ek2iEk1 wʱ"53NM`XfDwJ}F4;¢9Jrԋ4$V6 )QRAw&pL2G ﯇ DM -QBk` H이#|Tv f)k6OQSwUv5C(,1U T8Gcm:pgŲGQR n*\4ކ2M?HqOQ:sK5O : =t|q<]<ۘ33,XVT0JQ!S\lVҠERR5jg?8N/;(UDa4?rOm \}Ν3FaE[n߿0IYLPu1L&vsoʁBקQk+n8BK"*߰'nc 4_Sq|Z)jebJͧx.Bpiԣ-`X[Á+V~ rOcuPꃪ-Q-"=6a߂NEW4_jO}y,F(i)3-OП'xJnLPg:x1dT3 N_4uL9a[ԁ7r|N!HѦtb;#oܦ Qnk^ ^ 5qx7[5*Xd'e.o*Db\HDE?< H-ܤi{K"S&`xLZ~wS"%0xXp#)RJiĨG30"Ƿ afH11vJffۅ у @Œ9S&O(HO L(yю)GpH\or!Bne`m|&kΧ-,¨Y_i/axhT=Ou_ߡájt}. $ 5JJzYIbY3c.@$w-U#m;eQ;b-GǕXM@ElY&{k{5^`(]j1R^9)ZbI8;h&iCb~aYeuI6#A;*4I:9GO2*-@ Y/Ոg%o2z#6(QG& , M afig ڶIzmeu6i`R(s+Q4(ˏS# v=U9riΔ$X)DЍь|bxDT$ 6 ЅҌrEYA#4mF{9\YV'/*h;v&HpjՑ;rkb/n{ztWǖ뚯Wvz&j+[WLoWWyZko^AѮ\j-[C^j^¯^c~TMt Z6ºѮۛ^\yEwVjVzNnժ5^r^ڛsu Zw灊s]~z]V⹃~z^XVv{q׍rזW|j!戚rkڛZ"\*kj^zWz^+ܵh׹^Enkʩ5zkujUfVǖW 瞚tO=]XUÚV;ⷲ7~z5Ǖc:j\_V7$s[+S]_ tHƱՂجn9hc-cVWn7yp-nn]o(j¸;U ĎlWsUiu\0>ިshH_j]RωG ÿn $R(Z|2V6<6i歵i+|pui# m{ۂmigHݓ6%mKF6*C4B8X^TW&kwN1L?yyM+5tO*mHKI-a?BΩlZmA<)Otff pZO& *d b̀pUН1Gt _&0Dl;\;wJ朚Zsfyb5`}|6" ^跩Ηf9O>p!=47 }ɾ2Uv/+jGp*;קdPE+M,׍T{&ތvs&b9[}Z`H=7sӲSS}D;;|9uD)Jk9\F ؕ"ΚPER8w6 EjAc~pl#ˆďdn[<\M53asZv]ǷiCC`9\MQ5*'E= 䎦@MPՅq4`p.VT1@)J xNUN^&=#{rOfvvsc*F<~w* PNʴ^c`=6tky}m $ހ*2KcQK4ZINp= mtʤ\TSƎg%ӹuR}jPWxr"M8 =vzh{ѤHI:1? -R(&hDZ H{-R@NM4u4Nuʕ2<@uwLp26 oF_ha@ŏM!: @Rl 38e QzMĠ6>aV<&X–$te%wB#olj1 ߆ԙR!EEB 8TP7#M군v`x7w`͙Z\wm,|DgpE9SUA.o~4tu >d E8v /Pk .!9:/ }G]5dc2׸à. Jcg5&Ȣuc@T7.^/t!H1|k"UIS+InEPӄ,OU(H\C^P 4)%QƋ3W)4Km%%eSS9|Q8FեSэP•>_<RIfp=nx 7NG-#Bi7fr* Pm|˦6@<e *zUTGΤ|.ΑTR,tz_ ۇ&㪓M w鱢fK7}߿s(1v 4%f::eä.@4xZ\}X< 9P k|]V*z99FX< xDʹ()`(""UQ` QdҊW߷S&%T1A,MV"(uɞ3fcB%?$ 8zSqh))GJ@X`:h4TV&BQR ^ #Ueİ ssMGcjST _}GQtQG7&裋K.lBǹѻq;DNK a GËu #ZB4j?|S1( w5fSOQ 7 tOM0yİv}Cx)#ʀnRM=KUwb,xA@"VLmk8T[Eӭf чg-lp-2`4&tQx N8m "e3=, : Qj1MS ֦ݕ bBSRuUo08Hc⣄F eܷNiDX@xbQbΓ@!sߨ9ֻd TXRD"f^eƅ^: I~-qZEi>*/?ὁ4ŃI+k5}4sqNg^&c>e]=4@5h~&Bŝ>8ױ%O]i=QH07#E@nj2)>d)ďFv$=uX}bh}/}}'UIFE+ޕqy%E.ҏr(:w~bEi#]d GWMVgg J({Ɋ2`ic0޴Vk+GgiR*Wnn!T{nZQU(Uؔo)e=L\.FVaE _J?TIT`ZkYdOofA3mjֵ'lb:(傘r8p4 `9مI+ ?niAEZ'\Ꭲh@.:OV6ؚTipj?gɦ +)ϙ U βzXtU,+)xxP t$ ) 4PO~ L/I]V {ˇB"kHBh9 ʝ15ng<k.8QLƋCuc6b+QP_*thê)iSL=>4 4|j(L.#"M]}Lhwv'8b$Sg4xP4{]QovG&oWq"%m>EyB[6>SOxFgLþb?.4]WMX$QDq|F ,5r՜zJ 04ҋ_*i*f1^Q#o:(f_4Mz]Yގ- (glXIjA4orӌQV }1t0A4ٚ? l.F!#_g}I%*"%,Luv?Rq{7@ǛsAM~խQW2D,V0o %tuj>,VGkx \A抉(" ;;IVv*-UiQc(K31xT]nhL54a"tЎA+,ش{zb534iԘ4Z}2cɀuo u`΁qy'CL(~.Q=/aȋi ?o5ʔ#/)Ukxnks evN|jkpӍ(фXm&BR)zx^,"u"N@ TpJ?&(͡# ]lXj6?WUJ:@_q3GwPhkxérǿi jRҪ-ȥmn5{^dPο̵G=S Ō( k>hsRb5rm ۍR,Еӎad*|oGVJhc{vvE+zi榎 6~Eu|h=J-:5VpFXRZh$6ɸNq0|$[9;2A)ٻ'U8Sޖa̓kXR)¬8ӯl>%؇G&E ]b̐G?5$ʙI|L 0,f@ck{=Mtz Gxz*ťRO4 첢IJ\7!S)8J ᓥn /pK-Pb|'~yNw$ QzzX0W–rRPQE MQnȆ㞯VEW"z5^pU+7 jWzWzWǖ zn5)mF4~*T \)FX q²RMmg[5k1ZUcya(5(Xk'IUkhʵus|0<^?$@hzGP/Sן(yKOӄ dVFAKT$;\[ mFLMIϟv'ͤj"k25A}˄cŢZu?v8{H3>z.7\>Z*]4;%uXIX_׈n(;h.P/Lp5~R4 -ywRH.#/{< Th齕e1eNHg{ۿJǾ7 *Ziz5K=I=n4򵊇k{߸Yx]B_/+eBJHҸj(Ks NAjjZ-O#l`Oc njNPN5cK*= IeBN-/;OxUeuӎd~ml'[r dBNS6QɃ-q7P8 KB (p|MBEo-$PUOO (|8)9Q5 !Bkih`yB]{0_{cn41a+na3un0u0sf$"XӥjeulqU$VD*Ԋ.tMvXIƪTNM=:$<'Oyjt(t浓\nwi6₰)8FEu5⹎ƛTgEY>tιZ,>@t`>Z&d~:jd%C,ykShMP1'EKSK5 8X"HM ,hUb^a7>V17N x+ՙb 7vB_osPhGOp#G b~W?K-+r젓'{XWEt̋KJqSZ*TWO1JJaD8MlRf"}/I*HJE))GI5 A!DAgUrGME Q%TklRiz/P0ŅC3|}0i!3HnzM\U%8L[I%5 kf9?PS!ENg,>׸Ҍ0W K%-\i U5sIc̵'88b[}J}r?_Y-"фp`=mTZ8\UdĚLBZH#&(X.g IU>}qVP|- CI$z|E fH"+ݎH甓^hz"u\]!jbR&/'@MPr} lAߊIH4 #pMpNӸ6X0OWcB645GKe (XalԲ&T,I+^T&#^rIBq:V~!oQTpa_TPt#JnRG x4gA}G ԅvJ#U3>,|gU.AմO mĩMdIB䣎W4"b7{Fj5h>@7~+iFWOj?6ʬ3c= 4^TX\8.5^e-],npI >Q`V(QXBE aU%d8*tElM}*;U\ID!> ~yVQ2"uW>Pu?;;DwOËR3I(MΌvI#L~FjRjmQ5ӞRJt0M)2vۨsŒ+5d)Đig f`v)"-rb$=GbiO([nY V4  <0hᲭ<*efE8Q W^g^4-/4Ԉ>2+Lru56Ӹ\ňIV/ &9Y$75#' i{o8Qm"el9wpqfa g6% n5Kc0[R^VgdO4^X.jo̽E7K(t3 *VjAkc;(aW7Fdqb`~FVz'cI1V~>j /CS}=J*&y):4$O VTQE"E)rG 0wm{[SHN3)58LkF^Ap4'E,^tQPG16O2 \rm.T$ f(:i+ռ>e-\unaz )};uY/R& ub׿.TΚ9NM[@Ͱf> 7YW@G):tX:T@/b@ A:Z2+Djh}9b" UipĒpm`H+v 얋ފ*|MoI 7$Ւ*(*d; ]dw | Na^pa펶Zڣ]M(ֱXp)fFv4GzҌњ T&gA?' |ջ(>Qj8;ijeYL \e3mCe DQf4]Ԑ;H#˅x롫[Y7 EUB(cx^"@ƔYf MᝰRuuVU@z"ر'U 5 ԮI~ņaDp'$~8Ր.=$ѓ}K+3d\UXN M R¶5pr Kߟ-•%PME8)iUt^ /QI@8TnH{kk'K{vԮvY'!,4uO(iIN4ͻ .wU0*<;mPu؞_IiQh#|30S3ܑO4ThgB J6&S~S5B_nuoqck_Vw9 jXy yρ xP?3/e![5IQK">:φ98S Ѥ釣`ѲHByI3V8 ²-0aECQ⑏.(I h EcEȹ7v!oPkURIr@8olȡR @\ᦃ:ԍ4d ^/PSR9Xk1rōts@JTѝ\]3 +$cb(?p֨a+I]~,?Ǒ۪4 HК+0̷m)8so_t&;>!:5^ S~bXpF86x% ]#Q4˟wϕ5\1<?:_Sa3 Ĵ>j͂N0Of MSm؏yX "w].M eujp+TV~8nZhJuU W7/S=CCĩhbU09 ;l A:o1at[uZl'IH*C 떅ip@e}8%K204RLi,\ԓ@;ptl%U9?p4E+hnO7)Ffp G  oB@fE]{qE1L^qHbΝ|}JJT t]DU&N20݀5Vm)㚳& pJy^0OdxDѽ e U5Uk^Uj^z^z][We=[CW9p~x֫vuz^z7~9NVHmUS\ZZyEn9jrRO.A4hFj@GOoIT Ucq{爭z)bOq i›S4kh꒩/>bYS7=3[E ڸJ4xBg'Qm P߉"F@s$Wﴒk~MBS: ؾ2PpW))2o5э,o.9D64c3[ OnW!fhUIU\yY?.;PD L:zr-^n=lY@QSUMSkN)fui"nB?Sd^s'JoI56ķM:ҌеO]yOdiU)ּ1!VOU,3Adcoëin(@~'PNrT+2E'sgQҾ`AZ= ?n"0k7 (Tk_ ݘrV p1LB7SF*Wp6>S*BR&(8j*4ϩt(73Sb>ͲM`?d*q u>6㶯*-Ink7p J:KD gHCSfWFi]ßӾWO*XZ.ṘV„+o-UV8%3/~/Kj=F25(TO⽨cJIG)3XOÀ칾*8yP*}O~l>k:C;n9_`N ~H$(ՓJ}BM`di"Q+Z"}@=qDb*U/ bS<؅4L-svۧ4"k4o}!u8+$ k1Հi=ZN`tK06VF,>{Ҳ܍6&Ou}xn„2ƒ/%l)UqT]ywHbWԏ8U&)y}HlFo=*; Z^fAI3ޜoįLVUg S"*9FSUB zkMjW`48 ]<8#7."Z 񖊙ê 4gS LC$j?IGڳ-6"lBtXӭlȩV2O~(6M~Et 3w3m{D%~UʼxoAF6EWB)4\ 2xVd1P&*eph{mg3&LŒmEQ:[,F#[Q4cRCSˎZNbl/Om2Fo ۋp[F:N\:@LnH7r.MkI('B1lIOY' MyfVҜe<.7G !u=z0kI`cräh/XH[+|8Ti^ٔ_J{<fK)0hGG)rA6"Uw#1RU 1'BTtIebF>IE$40tlbI7ce8Bn O%Sa2rE^&) )E== b UN=1mS۲>X0I[;=k~vx2'e*KX-w}SSG{$3Tp8FE?OeԑѝJ{n;ҙ5&>V@-ˁv[~WDTf_!93,{oB[s M+pK F"VʼnIXOSƬ6K3hq![N*u,[d$j4Ν #Ag!T\N+ћh׍ teŞE`Mov5w2+/Ν̘,d,;n.Njen#=f$>l$m qߕuV07QNgUMl5-as>3EUb ƻS.ӿ7T۞\~zY/zߎօrEj+kjn+yjfCqMP|jWzWٯW{W%"nb=Zn禽]sU 7^6W\ztzߎӕOnzYzby\?6plnkmhAEjrӞW57zlWܴ׫V9EWruZ=^ 9[WrU#H,*s hLR/Ut()ꢥu9`kQ\0ڎ8Ri4ƒu3 ZO n|Ph h Z:jLYDP '*ɗ) *ZJ+dɢߴRX*W4kܜ0Η >]%qF:g4t ޤ. VV$R."Ϙӈzr?׀Z:-k0Uq >5 |)==BV?qtdW O"tw> +s-Wɳ$ _ 'PA^PgJqjmu6[(c=@/ &ې0i/Dy8aisi4ˍ餧u,Ua 66 |C[B> EnaAC uZu"ful-^-YVAO^QPL6 ;߈ug̽%zJji]% +[p>6CTz [qJ ' XHBM'"wRsn;ӎeJIeϴN-qnGiߣBX1ҲNVH"Go΂׾%QA Rv߳vR@YV?˗NW++7ą. Bī"`сUNu**eB(aSIO i(]'tO/btAoT={S7Z$5blB{|K( M7jYgٻy@0Z2h|t;@&?ӣh9yq05#A${‘Oщߩ]H\[ t6J›Y* J:^NP[.fSb5<1ٱuC`;8PѣŐ=64rJIHGoWEjhziӌk_Mi:߹?OW:_GWKG }~ IP“,ӌ2)WA7 iE# "}ĥTGgphQgK\iWA4bߊLUzRa參;x{MTܪ(Es֚jh`BbAnf ^ =O\qdiIfmeG >[WqY}bSc=BQX!<fin:M/LhkkS4ިro%TW[=ϽOWbr;{}%oo-?\i%*UO3:eF;Z ZbM4 L'S [#%Nk][ۧcH4X}OFPnr/“ah=a`7.t3M74M$ dN ē. ݴߋ47ifJ\İa()[il+` :w?U:A =4RS*u&6= pj4)|B8vo?,_JkIfid_NR=O*R) <2gT=[p(Ѱ&鏧fvV*6 9\oILƚ~\ʅzAGUKt R+tME$JI~TAsY$Y S~N6R6ĪfFe[(5 :xR6$QJMlFfX/r ؏.hѕ坲vPjb3QJǂfMuCbHnnT^|m]3 . ]u%[amm&se zG1;UuM8O~.zRC/;p!AdTzқ wp'q3z2 WOcJ}h@&["d/4J5R*ZdWG(f AㆶIV*⭕2FN˸lUj"HfbC~pI 0S|jTb_iv"i)"̋GY|#dSWR[D6g_,3JO[v6TAxf({Bb;*m}^$?G~$i_kxz*jqG.b_;[ۄ0(ٳ3œs xpX()$76t JbRaPzdmF]X6\, N4#&3Fh(o<|DUfz>{o9brhF/zð0zǕ{ pGO %ӌ2~ :5; t^ú{pg4a;xPJBEpSL:]Ne% #:ono'Upç4X)bZBOIz!W.)dH]^8 c@ⅉ\ ,B {r"0*>E%F&"KQv\ط 5e< V\JoS5z+rԕ9m]yj{W1-XqfyjuWzEyvT/557[~Q><֦djkUmya[ݸ¯YQv5qx=^2 ];kb~;Wvb9vd梽uzY*W.7U\չ|jW n^^^w~n\WMj+$su׫zӞW|zWzܽnG=^Vz zrMzsMzWzM^%q禽^榽\YW=^4kě뚯W{sW:sD׫ks@Mz\cmWu(*5^ 3Xպ'=^Nz׫jXٯW_^~hՅDQmy^FslIƃG8P]HY:HMu:uXRZ-i%R*fX|ׁ Q#"M)>%P;<@TLdPxs]h/X:`xSEˢ. 'm,FPe,'R3=%.6AhP*+1ZLb_#Œ (N 0|HnyB8Q#ivnn){}RG7|%.õL]2ʍNWn꘣(wR;fD՝lk΅55'I4!IK,"Bj˙˶lնЅs2'1%]&axfE9AЂ;IZ"huY|[*d-$H&v:;<Mo-`OF[ҌTm_>7s̷(֑X]h:N2<{nG"4,!B~ÉeuH::hU7t7RZxqQfq^=U~#K|# JVO}t.0{Nis~I^JbJ3m{*Rk ѐOW/5AbR|<~F:0㿉&SL\oe@G`r1C_RBEirβ~ E 5ZӇ -nĒxYxDQʦxgd5XLmǬLSwjƒE=t15E<84զ ϑLbXOڸW | _G:Jk:¢ihz-[S`Kˡ;jT~ =F|=,/y2ZJ;ts3F#+>{~|R@E,EGpu%h"Aʆx(L8,^/vV)"R5I 쟤:g)c@ˑOrNpEon4'eC~$qu=,)nM#0+ə[rk $L"{3RƊ Ȣ[|8GzdQk,,5_kȱjQ41@65q1 BGůz |sUK OPմ͉VU7+(FpA >@) (qrf UfA}Q)2ˀFSF1xvQ%C mME+G3x/hfk4HML_ϕ~n+Uhi\܈Ko4y!e 54S @'6"$ 1ZS#Fy6N#^E#8X}G;M> c~ UFbŘ=GxHoJ?^6GbuHK +>uJ0T}d %"u(_^fȏ̼[憁V*XWV^[w=^{W,zWÿ=^mnx v9ZrY9z{WjmW=^s=^[\ƼzWz!Mzsf^+ZW碽^+=55^,+ÛWD۞WMzkWksS^pc~9]sU+54+bV=^*qW\8Tp;)V-0DhёZ~hDžSԩ1b׌Uv^̦"5 tPX`7UzfŊŵATb*QHᣕFlw "Lҫ{+C`۰A˫H:LW8`+P,/jo}տQF6z =al`2d+Lt~2QbHz/ݥpaE#IPю"̒:]P݅IQUWbx[IQJLP5xOOq }? JU$Pv y^G,myݥo`G7"=2§B_h$c 4TM/:ui0S(Z=ۂv#T''ӥ:#Z7`[KMK9lAyS|k 92*VeX61:Hc"FGf[UM<z qv G]4SX ڳiiĈ TiBX^j55WڞzDK t zX7V0Gm$ +4v蒰3Дh;n>8͚1<]%n!Q-]LͺIvG'řb~ˁz׫zWzTG xث)e$~k55~T^(0<_% *k ?uRe?O5݁ Vk3SpZԵ{߹YoI~}GEZ^iQvaav^ Ad@c ]P(}#WVW[_"UzVιI0ٷT3LʻHX?k_vCeei_׷颋JƤE!5QX2qapZtPl*6қV#. 4HQ4h~H9Ɗ =O_[hPuuf"HHia}m¦RU^c[UECDz\①aAMc&8U؞TMS)4ٷo +ͬ O=DDdݲ[D҃9` l.Lo鱮-YJV~4$i #:Ɉ5F%VKyUxF+9^T"kIHf /QDa빁ׅ$CaA'J}I_O|}P; /B럥L#h1˂4$REVS0 +qbR'NxaAN%԰]TT~V!*TyQWhJ_cN",`نiE DEϸX8z?0uAf %sA٥#`  Jn5F쾣BN2Nenx]WRuoVӗ 6ɝ5S3(B :&tɡ'ߞWrW(ǎWUoWnמWc^j]h֍xkV碽n+n^z\ʑZ5۾j"+.*^5ϕǎբ+qo'mxV;WsÕWRۛ\T[|zƬ4kFxsWz!7^\W{WzxiW7nkuύ֫zW|zs=^{W$,+u5x7^{W W5^s^ۛWuW^ۗWoVsպ[w*Mzkz\WGW-qc6zr=^_5)^.oת=FaXěG-Qg{Z\6u#Uw+UDb4M8b@nG'Ul5ݦXAs&e3TfRn5hcJfwH}ddmP o :|-4 fF)S宗WBc^m-k [G; .a.UJCQRe:~`(S7A^'uQ!.ŁutV|CDxM3AcnO y)@EW ŞqF<0ǁ4p P~'4V6$RmɚsUzۉc &R=43M#5ai bOdmeܕ^`-}nQNfi 5~#Re!ƧRow OyKCQ㢏X (S KKjw9%#ݍlWIQ;bvCS)bIϛ\+zuTi;kh+w}w&N&z^T= ЊF#{(YCPQg0H('ތn 3*fqhHaq5)@4`uLE^_i28 *0 `#^0pvO6V)bQ┪SD-]T,4`LiԼ?=_t-sMhܴkN"=ur/H%] U 53 2ɑ.jDzְMRa%S7:r#Q=Mqk#/C-|\6(a^Z!{t-+"f9``| J4/T0 ~8H`8l1ƒˆ8UKbbrE~N)K*.K[g6ʥ&}k/M_ %>RpvM”U(tSs7rUbHʮA44^Ik1:Y*pDGڪ%$lЂWx<6죫hX1T 5L{kobeIi(RRon*kjI*z{Uy2bfBeEUK5:b@U1 6׫]_#ќ\nŚwtXj]O v2#TE8UBd$ru'ӕ=^s=^s=^sՖ45ZPE~{en0j"thC)"^ U0fhfUq6DXo4LM6{+Ez rO^70q;A1fܹQ d8GN^]sSZof9aWDTVBfF^T~U񷖉d|.+;X6n[0IuLm: ]w'Rv|(|k4N~(Cq&)wOT_~` $X\xyP0ň G;߳/M~3UIS.elg/THw$wRx̨fu,m"qtp3FϽY)KA8Άdž+_4꟣uzl@dx~\0(tdF: Gc=#ߏ2Ӊ Ү]O̊iQuw+I4ܗ6@lQ FwT!ܺ I]hgKQC0͏< M|#,}`V]ZdVR56M=ENsPNdʀGJ=SNe:qbl# L.fouQTo ?Em) :죏ҏW[)+Qvu'"i/N3vn}򛂗 nm ;6M~"FM۷JPA*hi}Z:oä =kiaaǵSqX0 4UYOl{{ GUMsMK[k!"ψ ~MLHo4c ]BPR,ZJIݭ}~rVP)CjTt:q+ Ey7{tu͹dPϫc3K)QUahT7dpH>]+)M=r8rR)ur)oqhT_&xn`hvHQ gXh^ʫ W9dh-Z%!VT{6B3rPZsI)'J:MhV D7 Ԏǀsn&XX.[F]Z:1ȏ vVSo4Dzg+!Mg w 7(}|3EN8QkfZ6Mu>=x5/AV GQB5N~X疙W{V6SfkuTπ yQFV$̕CtÉQJ.YJxTL%-!sߏ>6Tu|.%:-l>u#F Οoυ$h~$T63ib{yFRio Q~`ʝ7mb4HpVI(byJ:RPĐ+d%)yE[xvVֿ̀d-H)U"֒Ti 3viA@})}mQN3UZC;g~-'ґ 5crr 5wNbx=t:FKNvZq<{|H~W5a2UuG 8.^gh&g{b1pvt۳*c}!ҧU }?p:Z1O88j*$.[JJb*?Ire$RmzVF[X>#5Do@Y\n.O*!=BGիhLR) ;ԆJ+sVk+'2|n>ˡ ٗ. UӴV,k.#YbhH2A2uGu7d7tR}GE_l8pD̡,KxjH ]"WGPt5LFݮx-՜};zjLeTwxS{qZ m3ņQQ ma. [i(z1(n YQ#rNOSG4hB@=4SMGlG5G/5f U]%C^71Wbo)۲)&$.EBYr0Bj ]&%IN:wJQQhq?Rَ@~ [U;i5$&[U{G䪼"6+WCuapy "*Zz]X9j5އWEEqn 뛭hyZ {Ûa]9SU5=z+1|!XBd?  XPivq^3Lk%#=UdM{NV:ǭV®靔_S1˼TEG~(\1~cYɤA43Mbo, kI BGgV o/r˞4o#S+LJWʩ,U  S=tqP(l<}Iacp)KbvsSl: J2)ʎՌ7"N(ߡW.lQcų[1AtQmm%8тq燐/Ja[8 N49nKHR)XZB~ǂvE*3lǓKIz0ґH3&o:7kojXzEWN")[,c4x 8j¡6yAnݻifMYuA" }ZP"B5y$Iƒ#EOτSc`D% totx_Cru1FFͩS50?OkNAUH.ύE[e/2R`|z6e[vÑ^"t R$xlsp|Wi>$jnHۍ6S5_}f8vdM$r/Qgءی{&Gbۉ]4PhU)2&WlEgg(XOq&^}0&qU&/o P}&j}&0,)tƪ9&B?{Z:Uz)E;UdVX̌ GpAׁ'-4fM s}@`r`x,NVknF=)7,d: "3[0p ,rijY-"̊HG<*964])u8$ 9y#sò-dj@oCS=)_1χ\[JtRttŋ0P<kk)iԖŎ4ժeDzZe__;4n |C%Y_/N5hd8QrP"E*e QjԚ,+ h٤܁ZyR;ijRzf "kc_u• j II .|I=g8 t̚=]Q L9~kM4gyS)]͝Eı_t`O ~-U•Ƙ %;/dLIEN @(IECwQ~ &cH^3STDŽQDŽPl.a}* ZxO8arz_ZO5*(șIzE8uXd4Fi#.GF*|ꝿc7"UayH>p[htGU!pQw 7Rza.,b6&RtfY ӏÄj6hGAUi<'MF'EIGIQ<8KUA,O`9`&V[Nsܘ~<3 FNS"S[2կG`,JtӠE^^=^s=^sz2j]u=^tsV:QUnBnzWz2fvzsÉaUsSxj)xe`~[ 6JL%uMb/O=)G{wlvb=i7;*S!OŨe+$_d}Ѹ°P;)~zAL?L6YhKS3C!v̷a ;Z*S:ij}!fzҕMRhz_vt|%*xN%фR檚X> o.Kt[R3ct%1#FD {4Ɇ^Fd%#PׄvX_=zSbR$ԛXmziJQ_Qdi %Cws ᑔvX6ܽEWIGQy) .xx‹._8V/L~]n D  \ti 6 II,J"x;nU]ߥ* 5\N^!BUr"KFh>ğ HPMCG]I1GMn,)R>@&MZ?E(ܣMT`pI HQ[3X{@R4FPU˞=Wzv=^n{mkmrmyZpܽ^W梵ku rT[q碷\WͧnlWuի۞W+k͊د#mqeG4T "Q=KvKiiHUHQ4eTpHڪǿo4iJ&fbT|nE6 M]E>tGYR(&gI3l;w_,n4ىI?OT}"0F(qBzrq9!owa><=d.( PJ^גi+jGXAכ6N<(}>Gm%:X;@'NǞꦔE=t¤eԙ` ᙵp4cNkJϧ 4gC/܇6=*UDMKDX XyK5殔X)t-YaJ QпPī!=x#LtQ:>eբO9WE۩~^¥'qF˦8Cb)=6BO)pێ&P "Zy$1+z;hݦ {˃Fk\iX!oPcOIaE`Ik?-M8_af >d7mc8b /Vl$[ujAhz!j?IK)&Wa/?g 0=[d|_Yx"mqARE2hcʸt-ovB. PaѕpHD~XJ=d} e3r6Ƴg41I.L9B:UW.;y䠒_fHS)%Pv4XGOX%32H?}!Tfy A^=1z>~`EN>fDTHL821}Bxp:ɧɚZ{5SXbR@P.IkqT' Z+Wd*˘-.$QӁkdZHTyi=^sWH5^o=kƱISA5YՋsSYSeHYYR /6MTw*G7vwPSƪϞW{W{PSAR\>v'GtS}DG_\wR^QI 5(._^]̮o+q&w&7o΋#8Ԕv|)Jj#~Ȋ(_FMZ1gXk1 `<.zHAΧP\w6V6!fz"~LqStO7lj@[k\r;|A>t)B 0z+G" -ߎ4seYNt[=k!Y%؝mePJP(e4YX uۼJh=HL'V^&p7KjQn믨{\ixE iPs?T1e4waOF(LI*JjQAPnmǿծ(@b)XQO4š+;2*ƺg'Q%r 9ȶOmewЕ4䎯ܗaȒ{q@t֑@oBXJ(cġ ?nx𠭘Se1Nnq~R)*> am0=UeIw-טuT'rpQ\*bkPmOn!LEN:B\./rgp$R3`Vq$,I&g}. À )$@׎%\jFkІ7O`3n#OSllF<8k'=^sչ rղk=5鮔WGWV5uz^z]۞W tU55 y׹^zuS]rJv×`kÞbyUWUnVY;9׈7V9EUMsUZ7^i۞5iW妵\{/^s6ZW)^sM,+ϖWruWzWy^aru=Z 9{WtZ=^(:AJhVy*cdbU_JMT8&un{˭2 ߸>=*&]M=ōG؋mCu8̬\ OA2Ao1`4>KiE|==?±XԠ 9E6 >+~)~pHW.aI0i͸tAҞ`Ř-WeTȠ>pAG噚3jN"Clz 3R)j'N)C*W~3mƝX8Bsw\*@Zi*5< \~٣cCaqY[H_RO;4n8Xg6O:}@Z08axe,P0VKqR̊;v0042֫MjkMnyW+?G.T8y(U5}O~Ղ)\P, /k%nZ n54*krd+PJU{܏IZ SAֲh+ J&3w{[Ç,[@r7FY&3eI?R}J >&zC_v0fh(E>o xWt¤BM~TXjZX%³?Hpc3/R]YӲXI Ƃ>t[in"Თ[t9$M8$ E>#m%:ٗ(3&j;%@J~6nm1In=֓g| 7E)Բ"V _pE)(eZۆ:I-4M,xOT3x5D֠ZE~ʅaBq\_SI dQxX:^ݔ t:b=IW/ЂmbЭi9ƭ#9fL.:-;ъ_4a%szI2㗫Ez[5XnxVzlWׯVn5Z/MjrWDߛcCVוWg^Z]su^^ T׹ttVyn^+EX>ܪjY H^8Ro ZEFheTRL;vT@-ao#E"M. F|˾  w\[>Ԝi90%=ݰMX_UGrS~?ۼ>1ƺXt9_x8q+,;>f݇Q&~\`W9=2u}J" "LJD5w)AFhFLӐ!&Gw7:{xQ4);84TG4A,_S!kh=Y,|նJ_OM'"F\Lpu++7utλxaB&PKU>M0OxGasfj1zg]ήOYjp4Izf(ca8%;I^":D$QyYLV* .9Z5 6E&!@$ rb)2 E;O9PX|m6 XCK9t!Utb M!momwx]V]c(7׊M1O1r+ܥ^ǦV[ΠWbI8Wuoމh .+"Jn[(L )GG Zs8ܾ-fɭIۄ98 :_:Zۍ#Q:[3pc;r&5K]/_:GA*E׹?W7o'mZM{dJ Շi'[* 7D)K^-U^yHHt ~>qVh؋t T^]D^c&*:s1S.#1Z~]Nn1?|.Yi -λOÕN^a==̹e=-D,lK$3FS zKv amv}G D+NOl =(n?G8(bS*747)Z=3(aHI]Hc!+HDuQpI&њ ač8BjR><>&ٓJP…edښ\8j׈<8vM0Ԗ+Zdp[:@ViIM[wG8:i9)t;-3nN|UwOImU-DH]X1 l$^JpSc=kRhV$gpMFNm$^D=ڨ>XJҴvR?n@i)d3RBQ=b 7v@S kmNTpЦh<Ӛ:T*mNۅ){v8=0jcUFjx_ ;Ef\`,~Uf4eޠzˣ]E5>~ l%Pu}? jĠ7#5׹$#St׫ku=^Woѯw¼M{=^szz^>h֍r]yZccsvuC]倯]!7V]yZtWwV2-ʚryT nș*]M7^|zWkf]U-5-^sO=^|Wxs`µ\z{W(r=^s=^s=^׉7ZWǕuWzWWz^&z-ʚq-q-~Z]sWkաX\U#_[n梷\[5\Nn^zX]7;5Z3y^i^eUbG*ku(jՊC=Tv€+0F@mp扊qHs\ɃIʳSJgP ~2f3Pb5]w{qGm;܁M~玱ZJ ?jpJ$Ұ_£OiXؐ(5'PLQwa+1MxQ5|Uí=@̯Ca!{%Szmlp>\5n[fZ)PI0~њ *h}W.x4#lTl3FRi4s4Ъq*^4ΰ)3WbٝENw7u WE?~Za «(T@Lp <1L BK# e O~`e2*~ ê#j.l,H|}4HՍΚfaq.fCOa>@wXƜ[hd.d>:fV᭮k)O11fD* ;- >/ GS Ӽ4*TnٌFTO&a@e:^e"&վb6֙_t4Tq.UTGc[ !٬_"otfO6SVJtw0d*CTPn b]n;pM,/3ZI(@,nyO;I~6R٢Rxd 쥹hW7NW-5A\j"3V&(3N#]=LJ(K&3G"մp#ywg죦фɝVTSin۩Vrk2?6E8X+¤5ry8VuVfK h pU\M £mlзA-m7tuG:Rշ* ch,s;5tHǤŦ3R(fV%GyH܃\+v[SƔ%Ɛ^eh&DŽLRK(XַǍxz]d>?2N}pǼyk<8Skꊶ[yw+Lx%FCnjgmSE.Fjy_hq"f 'JNfVP5oa͓J֚2"榜"UPזNJeWE:Vg=1 `<TT7)Wz]zWz98en-EUK#<.G$lUYXA\ۛ) ׁ:rׇS J$MQLT>ȷ޶U_)Β\ c^).PunDSp# _<+{)& q"pOZ{AT.diI:~c\LPֺCA,QzНU|5pv vX8zI™}t,k:夃s$NnGw&%TG:ܴH`8xF4X(aNE!vͅ@Iޣ&(zS%DO*epi[GB|*W#e >hP4B=QYmdcbICqb 4Zeޘz5Mm}-E$Kax; ]0JjO{p7I; ~`1Yژ?-5uRw1moaWqR8|0pt`x,BHtr7l7JÁQ͵^i}ۃ'vymL[^5GiR>>?(R2v+}E#Pb 9q:3EI&W]( ntW7ԠR x}v _b<~+0~j\$7i)sSm<צzk9YM{=5鮈=575suzWÞWzZʥq=zyMXG4*ZܱEs [ӞWkrUk牭իZUyehkz'7[\j Ednʚ{^nY+Z[55^s4r^wϞW{WxXcZ)#^c85^sU=^.z6Uֶ\Z7^5[l9GNlWC0cg[+ } VYIF޿ChTGcCpLwS!8-E =kp\K紐M)ei M9=zz1,bQSFfmJ@}ֿ  Kv$plԓ 0h$SB:jXܴ;e>*QoTKChe !?8LPTQФ}D'zQ_%l`p`!;h0jF_T|(Ϳm>TœJ<'o_%6%P-3ƥRFEk.0fY)Տy4}#t"Iřӄ*'4Bʮ[=v:Ýj|#JWhc@nVnP(wj'j/_0vo8D!34@C}\ǣ4>uC5.R<5f}3X>QgGWV;A${ĮiHQ\96aiÉ4 m`mP پ^ *_m9Cb AAqTP{uht"zӊi?8*T=/ƲN>]HM=4#^@ #mb6 KƗ50eͩ_J졙ܥ:($X W͓7ZըTe"ځn2Dw"(Z㞭W' GNTjL.9ը\p`Zj~ Ww*wh%6tW axWtdS}UW!V'xPqt}:5emXO~QYAtjNx`+gцE7 =hv1KTU "-(xg\ǕUfͲ;ȫiGu)Hkaߌ[;#uC4 ;*† ׿0-W傢C>L>"@$[Nӧ_uR)]UCj 4*G7p*ŏni֒ݽ5dgV;fވS v^;xn^čx@b:GΖc=B qrm£J(oO]<\T)2n|4a$IT+ث5q8JP?֟O! Zte{koRݜK ` ńo"HK+Cw8)͕dInC_CsZU$.6*_)6RCɱ@Z=A4X$&=ZG7avBfR +pUKSFHP"mkI7ĄS;֖{Ʊ\(Q FI? ´dQΫb=4¤'F4P$D\/bG7u2uOɒ_1dbnh "*f\=ϕqFE!btR}<ڮZOc6CZ;]_ l(cЍUn[ +#PLFO^2mG&jnض:JhIT(SuSW B.ů+>Tp0V),vEXх+!h>tl{8ldTq2G|8 GIf#ǩ}qMzrNqz8z0VpHkY~ SՉϕk],N$R%;`2`ӓcF6 0`nudF6Tw]9MX\oRLqRƨ /~1$R/d#?q4i ;9]TZi#:}Q)e SqijL 4䊝W,5ss5V坣Mykm2Zܰehb{ۿL /q[iPB)Xblyr[*\UM\*@~R)f |9rO=^+&Z+ԬVH=b򽯵siApf>Qi𰢞 ^djZvx~ jfօ& 5@)7n/VP{?*k0ѣׅetX Ҿ%ӪƗ6XϺ_+p9 =5~DpYbB$D#C{<7ƊaIgjtǽ%\mNF6V'mO÷8hۯ+x^ƅIN6ε3W H_yXѺ4j11L*S*1QnVR q2^FN.NfC-F\b"H]J_HŸ"᧕:͈+%Z:ACe8IKpE6Z` X '~غ=l#?SH^E!JM+We I%1+p=C*Gjv|2PpzB. 70Ul!+@yg5igT<8//lQJ&)b|r<m8fIVQ"q%l[jFؤNa T=J0gÃ`}%5v#% : 2d5fRr<AQN"@(1N,z(VHi#BsȊ ަ ѐDYWAʚdW -)z]s5W-㚊WFNz+]ӞW`ߚWEn -sMZkRy׈7^ 9{WvZ5=^s^ܭRrz(jpyq Mnkǖ W7<۞e_Grh\3P^YҼ6+JE k (!oRˎa4]iRX8)8`SN#뱈Xo6`AA%eCm>E/I+>xwj3CFOM?jj9Z_E,lz-tp&V~6bP|̯*AL o=8 l0;kk:lqt/f+kyA#.HSn)`).Icݸύ8s@5U|gGarauq]IO ,yJxuц̝"Å}L%w^#rۃ܅mh.Z)dR6jua!S Zi66NF]N~ wf7+=Eʯ+[su*/߀W,ERI*Q-TQAɰ5 $ , Oli(/W0!S Vdҁti5rz ,CWsGf7>(#)cqRl2Z6eF / UdRSEQRGn¼ }:*"$~e,^) ޓ3Gf`ֱ {;o tҺLR?2Rj :&F)u5=hyQeY4lNz){u#8~LmX^YtH9NcXmo&ntL釬lN?!uhw^t\m? nF 0g-i"bH `T^4>(UZ*ipL}Cȝ%oOY@lH"`}?A:I}ĝ J0?7Y? ICMJl-9BZ4J&d- A"{jnu*Q 6Yk`Q2)Vnh=vxv6_R{i~\ցU]9>lӉ_"@ 6Gz[?&tX}RFYE'_TJH(Y@6m22M #wV:@^4̡:A>:U–&_Vc?*d{G Q cVwmRnlءG 5vy4}j#D O=tYfF]n+CدV.\PKSGUXP(`OG I;ʫ= w*ŘhGe&-BgJLS* 3`Ru (8Ll?tb.ZZIb*z2.E8{<#F_[4J_-63#U'$ΊF,[rEQ˅$a@oYxO1_栘m%XF:{fe?NaGCxt5tQbnSgU1D+~wLi})Iƒ'w2KGi@~mOpX%rGTl >j۸Z/.{kᲄzSI_T=82#l;^Y)#PES?A Y)iapXku<*|(hgRndʴ7ZxvoM>@] GE6qn4!a67)5n.*zHdaܝmוƙ|Ga2#h,jJƵ\9Z$/VzWzWznT x^{momv5梵al $WEs{++s¶+-V1W׷+5Z떫Wv4j-Vh֍aznzYm׫,*¸u=^^zjsVdӚ8֫'WrF׫5^I[FCcԡ)^z׫۞W zr5^ 9W5mܰW|z rC׫5^s=^s=^s=^/W=^nz\VuEn-nx qf7^{Ws~kmj9[l{W {+ՊI-7^FzHBMz3^^\ 8ׅcv=[,7{ez `N80MG~h5nk_TI^lVaMyiyZLO%bK^WeY8)Sp.beVԪo1C-Cq$ɓ)wd36]̨"L+se7~&OLs*e U.)){OOyS=>3Eo攰Rֹ /m{n]F6WQdq,1rLwkt*&ZUW'jxHۓA[qxS]Tu%@78R'[R05%ۏS@E9܍9+qSvO3-fcQ$'[q4RUtj|s:LM @UG7(BP1uTO:O.j-AMQo3?I0D~Ո9V1E7I|VÖ@=آV,S`;,Ӊujo11]ژƙ7_\ԸBFlr kmoBXRS@>uXbwL4C Yqa黽?GڤiIʳ~Z5C~  GPpcA$pW-e/Vx{KJ)(_c * vc[z&2?~#[`un; zSGǰvuм)UT &U2V=*zɔt;"qo"`ć/~YB9Z{au7Z2&zk@_]jQTxۇ~Z/TRnR<2e-pt|UXz:P]!m߀>ѡ4}?f:MƱwtMSVEOٿĩO(Ax8&p>;P@]ɶKRBvM ې$p a|0U.z*HOCG^-Y`u%C UxBoBdXE#P@ #p4FQ_ 6HPy K1b=u!O{{xEh3~?Vl55"`Jn9J𢽙? -uMSOʊ5,'M_5?IdGr7Tr^:E}7"G%e +3b=5C'Nzir K"Xh|a4ŒœӒ5:=m<[T{4SO0:o:_) l¬ 5M}sJz0V<\/ yzZS!V?(VfRש[7MybKTeXFĹP>'5d5@Ou:iw Y}=X"̕oMuM6UJ/ZcKm6Ѓ2"^2(d2+$>R/w(8H~&QZ \[bOpcA3n:;iߣ9S"otF40yJei2hD "1),^xҠ#eXFPI_uvVA]'@A`T(u?Fj Fo,?hNgVO=>uYb?%czp#vAҐ4hR>v1c8"(=߯q&P֑᱓SȨUGGޤkҶX~$2OҭM-pٴ*b⑴Q<C]5gCB'e 7#aZ7G1D/Vpjޝ l`zi[82]Q_4uɌ_phPV$hΙޟj|Zq<:Fo<J0 i)F4/d宪I*/8iZS!ihD7 V0tfҐu ?9bh]#~%P'R7C{kb}pWDE m^)QыKY.=[顏2gܓG Za$vDmuM(([Ԇc3= AᦿZ0ҫWaXҋǪG',#/B S bh$P/\_%4/U,цbZůoiU욬|;j+$ oz |FS;f >8b?0q4R柽&C9*vg!F(mp x\_F/z5TY^*wMJYH#wQE.6tE#ic{x l+(ڔt@paBt-tYut*Qv a--PxraY?*6 G~5eYYsgBW[{E3HID~{_*lPүN~[V>ޔ(e[wգ58hj}\wPGRe 1wg'n+}Цy?9p_?њ(@(R8(y?9]of"j#o7zR} 9bN)?Qhb/c4x{a_qBs4 L+,#a>t~sG?*5B~U.xYcL|9M)c6>M qG%=UWWoJhUn}$}\@ü)CՍB;5Qv}te8t? bTĥ;˯h) Mū֞9)pF*b@2n#"$Q1vҫчaVގHiep@;Xx\U&ďMOE l`U=Wש/w<G>zP]2Ah{ߣLfș5KRg:i~ΗtT)dkVf x1h ܨ6/N+2pznJ6POv)Oef'-IƏY@=4M\Qʔ+¿yZz]3[^I_iSG7ũZQį5tgZWDxYv?)M[,_i[(c؁ohӧL#!>D?18R)#iU:gLZ*Yce,uƠ[ FWݨ2.ׁu44l8 FT [մPuԜ\.LUTB(:irHe*nZAA5=̴ٚ$G4#sP"ၙ]yH>3e+UKsLM()BH%sMsƊ_:)lk BOØHS~$GH?L}JW xIlm:ө4VjDjH-)*-f{r˜"x^MVcKYsoomP G~~6>FiH hYJ+UmNl%aC],(~>?k4؊4dIPM#>sр;rUd)hJ8#X`8@  -1KJ<< &Oxbfqԙ)"x}j.vi5Zp֪Aux/]0WK0e}maR)3+qˁTW@#^K MaIZWʴL6GlEAdH|;9d:Ǒ+z}TcUaiY\w?p9rxSBd0UVx^1J, qꯤ$cLi&:epPŭTR $vsJ*/'^ *M -5WtӦ_6hQ1#qDŽ(%&iӞ80 %O^):D"̉mN=*HKjzM͓86lR:j9sMyRnks\Mzknk^a Zպy]rZu-ks\yjwnj\7^W5Z5;xi59Ɲjd:rkUz7[sFknj\nn]jߚ5Y8VWv5^ss^ߖWZ{W{WrmW.z jdzWz G=^Jn9wVnMp,O7^{W=^dSZ7[;uWzWժhu۞QXO6jՌzn8 mV6X\~XWbv굄ydqi 妵5Snx njcnJحk^/ʚGמQJ>h0Msjt񾣍)4VzYũU,PmtG l T(WWKa$?5Fu4l//zâ1HB9!oËmƑ:ISwI!R8.eEd(A+.bĂx"KC "Z4i+l6C}ÄJFѫL.8okxk۰=MnJԱ/Qb mE+of[RI\`'*B[\Q;I$ Crjj2*,Џ* >E$G쟝'lGQAkaR\D jp7#=dO?>kVJ,+8>&Z@Għ? qJ H11,2bLM*PNjR6Ae"8eV:/E;^Z%^E?/?=P?O_WOƐك!c4_`=؝EQ ?UVXɂ?h5&z6+3cTWyx%NwI?Jq!Dž!Jb$'.'l4XLdWf<1a?-@y˕>^ JLHf l&1ST /W1OE! + }H8q${,`3fAؓKE~`m[R`=? z8x;9Qa3̈́A1Qn\0xW_\p8IUK"6GF"W$t78V԰ 8Uu5D׷p?eT$)؜xGS}t#m?ikŔ: S-%! z6u'IMy*`'h!Š,T8?NYtq)t}ԦL"PMl|>*_NGNjdHM$zL`tSJn(1 2BR޼Ю>PЮ*f8 Ė bW4\EaX+.=u)ܚ(f0ڼ2x0i!r_~5NaƤR17fU5fY42"؆=C)䖄 #> (zkɴZ~,DSEU`?Ti=rhpR>e3Ekje;ydžiQ))}"0ʲUasf=V hۑ4`K*5rċ[M;pWon4mLjїwGLK-v %)N^l21w#UP:=f1#SƾQsSYMc< }F*mr'7h&CHuoHq1&i %ǎ'3I`+:|^~LSsXSC gHTӖP 4B[U kہiTЦztP7/ZM)a,* ҂OzqI^ 6Ɯ:M#uԾu5,!)yMhՀ6B #paBP(8d ;6[Bޖg>S0;ܷO?G كG HRi]+)Ț<,)&*9ybqL^tt=>w}Tx4)/z/:;,n 3NqS^Ua+.0yXO7I4elq`irMUiB~_7H@SNZ4I=멶7Z&G1O(ߠۺ1I? ۼZVÈ{E*z*5;,HJE6 "q4]gPiiJLcJW^ǀ,ŒpM$QƱGԣcʻlIp6(htVrmcUGJbm$6XE*=ݮG)q1VGtG$]֨iUtF v+5dQR_THlW1iXV&cʘa:bMfgn!o <}T갤8ΐ|u EP@i"W k74JۡWFN%JPw_ˆa*b6RW-glrEƌ[T4-1qsT>ZIuyusA^b+sի׫9vj^/Ez+quz\=^F,VcaU۹CT56xWZ*z\CkE\ VÚ5^&ܬf-V8j+}^hsW"˔Wj׫5^s䜹W.R^zWzWsQa^^HyvͷW|zW6z5=^\jWF\ytpz]z^=Zu禽\Yc,+{*;sunyZb' SX\Zo+XֶV =^N·57Xd{Tcg)VzQ$=6<٭9MErRfe/NCVJO%~c}rm8cKO]V%+kX{}\'Ѩў>}0MGQB!啗m׸$VT){Tx mIt͕"~xҳnP4k;Grdq-A&8JLrB:IͽYb)_anīe_<0M O: /T:Wl9C'U'MuTT߽qE>AwU:5KZZ0,hĨ1߄6Fnƍ9X%601+ e${CR(Fץn,`ek* s:i-ܨ7xI46`?YHfj0ܑ}k.Uf?D< m,gks,+#s?8ik|)-Ew9߁&ܴxV>lX<26Ջ!SS'6bTfLGz+ܶ)۷ZȤ\?aVиmp-f< =E&:+8\|LUO؋f,I*c5TXB}'ypë4?î/>Z6f|Qcf2Y+1J(61lї\ m56‰=daT8uD{6Dy #N+GPonNkTasQۏAAcUbXn%),VUrj-_pǸ}cZa>9%z) ғyX}F`OWO)SFz4GOE_q(c"b=k5@b9/2xj#JiԕzLcKi_䑷s=P.c:msYUPc=-)0OU<d?BOOTR_ru<%TznjKO?~u_>g+,^}4g&B$W˸(>>]5n?Q5?G*>gU,~> PI܁W_,xdGSiꚜ@>{}pk3Q?^!Fbdl/fBicnsaLvi:u·T5&vFJa;{(S w#U*Nщ``x f ]+KY%9]4;8KL\{7NR;~4MӉU Y YUk)nh7=n[H @Fg}]yPtՈ40ėɭD+ RYe7f[76XEұUe46u]D+΢&T=(uRp)wbC86Kq:QO}o_TC7)N6=Z26q33ERRU )Ml-:}vQ%/h:U!a=Z"z{J {NM! H MZ( BAЁ$kzU+.,jek?|zyRdIgRm,>8өTk)J<x bi‰%Th}It<G$59o܌{y i[{ ٭f-Uk!M\Pq|ؘ\ŸXkP[r7IV$Cp_.aX0k  *5:Qo&DkK(ҋ4ʧ>hdx([mbh4A2=a[m^*a -);`UyQ{=F52ŬNtM'PX LS\d) Cʷ6 4S]b 4REd)Udw Am惩); O #wa"jzزn=4N2hW_|Chw~΃('R!Ic@-7GKkA߬՟^jZuU X[ҽ4@^=:aƦ$ %I,Tݸ\i"T8\%z@l '{Q ԞD"pZ vq(w3w"mƦX-'Z.D =0@2)-Ŗm-RRF4c3O8#> +¶WVg,gc1ڕhDð{}l^)Iom4`ql*Sw`rcǛxVZIJ!&FbXOIs ;)D.sR 6*EӦ *Oj&I94J|R(u3[^mː"YIeL))v#\|x04|lԌFt;>\:~C¥ !S ,M->&VFԩЏomUNaz(L =NIut~PX-~A ^um 4oPh2fѶZÛcވ\ѓ4n> )*wʓxeb%T 5, [|ָBͤi>߀'] l ܥS@f)qۤ`QׅK t*4t?҅Xh HG<4ZTJpMޚipgK.kk׈T)(rF{tb7G$!#{x' z]ej,_ @P]<=a!N.yz 67t,&-薳 "RX!JF 58tzielIhg)jyGi 1£2 ?Ɖls[Y}0X#>inm*Ӳ=$OL SCډO8emmTT p=3)OF%=#R5$}im~yjƒR~[`5 8rO!{ǛUҒLi1#]RJ4?ED|ʐ \;0Қ+=̽N-]Oڇ hZs|Iw#駩87a?OM 1RC9|nSA \, V͖08ɈaebAƔ%}gMO@2Mp2\30bR%6UYGiR=®TTq>4̾0c0VJ; A=tM3({oWn6?-^}/ aBnP]m8iqX+j\VjK,}8kU%*?~i#h?a)GQrE yIp6m<^kn#O:j8<'Zi)=#iWK-'dU\T(_?!^Lr#R}{ &wǩ BoZTjZO>W>hq 8aM$QxϽ1}4YT iAT\qMDsLb."oˤO:Pާ媌 6U Hht#+nen%$ڟڟ LJ5n~.o05 xt(fs (O~2Tb !Zڟ,ED` ,Ԙ< ?ψIƄHBYcyLV`Mj"ޘ#HPuҨ4 Y&3Zek8*{)^5j^zOH}H7 > 4e2[icQZ5-TZ29PQ~O֋8\%> AAJ vQ=xu&s;0q(l4*I=2aW|x3OҲEk҇.JAsqfBoO5R~CPɑ#ItUN|47tƩgt٦v&Vi;|ȎU>Fzơx${˧aB) 㔜1ISF-oySMI7wo,) #Wɫ13 T0ǃ.uoWpe*=9 Ϥ&<*^D/nlZ'5/`)JE {<j ƌh/T2>53=U).AW6mT  W-fZr@mOni*j"(R)a:I]&*S~\BIz̺:3@_A:9z]WU) em|A*oX*k1^ ,˓P5<(z][E%; *qNW1eIbB$A.ӻ2$Rܕi[wc& /.8Ӎ;=)u(˟3J$wGm}m{8svZq4^2`KI!J_ᅑՉ~WS.{PHAQy4bբxH'K&hiӼKL%y\x'V}^6c%VF'›{ђj5};žhLu>xL`U%İW7ڣqu(*шCsyR\B\H^'Nj^[9^5ȧ+5Y-XWW7[[W ^W7+7[ʔ<ڬvH碽#״z7VڋsdצG[\j\Xr¬+ExkVUj{Wesjj]v4j<צ/9U^Ivy&YA5Z5^[mzUM,1W>j+Z^z׫zW<ѯW|z׫ÞVA׫zW[WW6WmzWWMۗ\9{W{W5Dz0,֢%-jo=^nnHמV"זCXZ\/ج2zX$kJlR75U2Յ`fkukՊY,mՅGr Ղw+G7[zTAz_9WlO.s8{6TNb>\N#GQc\p~#4%@Pu?9`jm jHz[T"ߠY?'}-{GT `dWU&~XtTJP ;x}YxQuӝpՋM2`=~]( ^#0Q6Ca;_xÊR14擏͸tӍwf*Zx׈ (iMQUQmBz`z҄',x"dD/+XZxq `8D̢B Pwu:P*G~~bI>[Yd%Iw͹iGm2'\D$rJXxrƷ*J_Ӭgdc;C~&Mr¿xV2f04[?@p,v7vłA-׫mY?r(-(Q575YK-5[S^Ǟvnz]FS]]WUQV[sպZkUnz[ǚxߞuߛxjkŚss^l7e9ؒIYUݹp'1^`3 Y 'g hDi| D?#jdPYxd0nR˷ys,aURe'铳P+ ڢ'b6>+%1I+0 m;tΕEcI'SjH0h+8eb\3ëSG$2W ڍF#Q-?N2,mGv^O%Tr! 49f 8 mqm/[2*:2º"Hb$Ir`NtGh.{F ix6W,Tpmw+Jf{<#Z6UKNĕ_yo R?f|/#B:XהsF(aSF}ꆳժ;m#Õ5qHa hjW.EXmWޛIP†@Q;_PuSD_Qe#THݢSk[%vm06V|@+ۧ8i<7 )0*TÌEagiqHk#}KGˡO M~p>z(eVZ.Y1}9hQaĖ9jb#Pˆq`bIW&Xh~}`Q1}8#0Tɹ`My@p)51hTaU"xmֶR;3ÚV4 _2P!swW[ΣVv@֝z7j:Bd |}He,e'RM sꬃp=ÍO*57N V>;sXv 90H "?AxijG (G,Z0Pg4LM0lS*SL1FY+f*)P"؃c\]neAChۆ)LVM(m˯4 A -LSR> .O5p{i65]VʭRi'hEh*D0U?kpzA$NZ4g^kkVsuT/nT5Wc~z+/뽼jWWG=^KEz+MrPG4kG#Ez+ѽ7aEq/5j/nR*6¼+ws*rj7[sܬUbVÞȲ\Zb+fܩuj+nkziʚr+U6+ՓLT(pW.zCO)fIA:t):A%qFxvS!n´LUh9TJ+ [n me6yw+Єuq^̸o߽ƕk'sKFvQ ]4y\N젦`캕rmh2v d֪YP8CҋS1ԏIAh&Ix$%duVx (,2'8ROG\c5PM;F[淲_ V3UC#A2a R`-q; eJW~=Ut-LltPЎTGj$^ĂC,H RGrvU l(kF QIƲ-dˊ%$I Eb/4dڝOt=PBNyеۯo*'mBOLs iQԟo8U@h5U?An|e|Bl[4.2.|g+5"~SUt?QfI=Zrە5p)?ӭE*;s*Y&+[RM^yc(j݀RDJoMiTx/n})ٷHu>ۈT=+S-n!"qf)EҘbW\uѼᘚ3 >40{RE>bBhӍ 38ПɈӿ/TA]:R1:f vKb_H RjlW›oP Eda6Ѵ"mZMZb"mA_~"J 44:HTFqjKRH bҨl_rjxldkrPi̍OeAj=eTUnb3o?vRHpBƃ VZx[G oqaC `>mˆ4.a$)42aKāAj~jgΚS匵+<э6*2]4lnOˑLhhykoišP7,\ {)&8UhNn"+7CFC(7qyu )up 'tgmBWQ/؁QF Ҭ"RԊƋ%i^yR1*ŌY2+MbN(!r/J}zqXD 2ܴDDM۞W0ў^j^=5l禽5mW۹WVuWER+ח׹{Wwըn'EuVՕ9SU5yjy[iU2@UEb%ʚs¼+vjw=^^zXժnz\5Zy𮁷7[-MQZȭfVW`&\Z{䇞8׫<+n^z^z\55B"]y{ܽzf*MnkU\W=jq&zW׫zy ա\K[khV.Չnu瞯W;yU57ZZ `sk9`ߞXPիتFq͕핀պ3rkRo15[IV*VU`3#ЯpAď (>-%IL~~E*%uNݸVBtm4uwTREQo1_iĤArݺNG 4RC/wU7j4@ٯ-F@e7[-q•@ͦD3$gPa2)7scBvGWKkcۇt,MMY7^s%?S(~I>»l(۲ =+6,Ma?ݍ>}as&h:aX=+GUg=cyXv~߯wo J֞6mě7f7Oao_g-L\:6l/IQ(YgSM$q@m^%0ÆuH3IPea.XtKڠ\)EPHl3ӖSh/4X+jkk&WZ $$pRUoǞLWq^7w5[j@檵cEz כ*l-}w>=~[Uz)9o&HR6 jpuk(1 ,A*aûG5)mnez?#q5pwFaNcz'@аA n~]X)cqPQzFKԉo+UPJ^ґ 3Nݍ+iq HVΩfqװvǞVӆ"JQG;UX<ԑSI"SKQ @2au.xУ_J-bxW+wϻO-t_:/&gdʵBg(kVjciH J-&? )]k#ձ_i]_Fق8qZJ2m"/}H*Fd>#vגht ՎRA c>SoПrO^2nvC)ܱ{Guu'QQ`ir~tU4m5KOUN[C&>/ yv+ b>9N-֏QkѬa1O.]f]o?-+6й*W*\y l`W`OSΗe$mt[ph9j}_ yI 07JsR 2\l7-Z wmNjMY$:lxdH״Mz"_G:.g)uIQJ*ZAU*1 .f{;IH3P6vS ́hP4ga0 Tʳc28l~|GpGV+pzuxX @ŒP·}tQN-%~H](Dq$ޫ:a:ݶ&NK 5&lurDe6R~- Rh%널´=+&?N"X^K3bU'>:򢖌h[ʸ<҆4ǡ,Tj#\oDXBfv֍ި3a|d`@5VB8k-җB#;EoI::9}๋f409}'t1CR7!V:eE*j@C$ha٠HNiZ)4)eAB\/ xSO ^e\ɹ Y;IaLQYc[Fg:c|ڈHR0XE%}_~yk%Bq CNl7x ^U--vQ!}TI)r,O#I1oc 8ʟ' |"6PCx\v$v&gmں,wmõk6\*)Ǻ"P-)|*)"}}' JoNʊgz,ۈxp<)8[S~_5G|/M7%tUqNK,THDK>r֚/>zt۩3I%={-ﬓ4}zqOF;ʛ`\)"4>]3^)wI3>#Y;&M7ƶ 1^_ 8 kNb( p3JUE5O;#P{#PP+RXGT*%QW{% F+hSGK5m"*.κ#iik0H'K6Xx{_m*aBv!ձ$kONXlt ΝҚ1 !qLΨcTqJ_J2RvP-O_*d7 $?ųƋȡ|vIU|k 81JYM0 yw44D|n{h`-vCx, 4I&E( Snu );Mj8"}(ELs*ͩF %^m{TWq^y~]=;6;;MGuo5[a?[qZ|ytVn[WG7^ 9{=^/=^\z=^=^Mxz]ߛ{w=5z^o75Mz+ƽ^V=WGNV+W`ߚWzz`ZksX&suSNj/bc Ϟ* J;.c@{u9tOKMNamĦ[FUA >܊KE$s<(+Ξ垕Ȫ^eVrf RI2y͚l+Ɣޭө]ϧWqJgi0P<":I#qӓA6f8,ÉaqH6_4Jk41T:a@:0۩ <)hq.VޑQhu+Ѕu+5wNf2p"zՎE=mZ#zcEW_e>x. ~ĒC?,W[-:%3{[uv׊GW3:4\)W%L{xd}Ma4SH*~.U'֛}'JEVDgul*&#c=oԗI۶e])^ѥMrX:xTP3Pm̌؍3Ah%!:\;[(ک&ARk6_:wԨߵФf)X4DztESTSʋ߷ pEa`,]ZhD $:6 {cp4`FeS~xo>Ђoxτ0BD(H,qWP+.+h+@ 8*ePQj>V/#t>nmÖV)QS0X-pÈce SCNp;h4f`l/YkI:l8Ut4l Q%x-#n 9xF6i{2っ#>R_Ul/(tОM| cWQkhnVW|zD_EnkȠw扯MvM&\\rXբǚWeE{uExy9t7[˃Ej+WzWzfkZX۞mƶ+suVz1窵V5[uFsժ3ZXn7^-^ܵjHǕREA5Z+ ,KJi[t5 e~%CaY9" ODŽW Ԫ 1z5Gl \/>eV³+ c(ɘ]i^Nc$x؁qCNMKM~NAAmIƂ^YUGZ}1;&#s"}10i~}MCu5#-sum9dmoLѡEV._˒䪼I?N/NR*k`IYiiFl5f*L"6& ({|O m\V4Wpށ"iA8@(0hә+䠘Z xBl,Ik7SoQ)\2N' $^ F#h 7e={ڦf H c%TD@UTX(xr7$c׫ڎz]7^<ѯW~z^O=^w=5 yWyx/7^@_W7^ 9wn{mzwߞW7^|yZz]۞Wn^z\~z^[kj]^z-nj+5+^s=^W÷7[E÷?_ ,m .X=Ǟ6-X {܆ o so~_TW!W1o{]#mAdc)^u>ZuWf^$pPhi,lW]@Dc15I*4eNAv(eYZŖA"z"mS,Eb-Ø|=|)[osFή4TG6h2VJȶ_JQbaJ e:S H\=;T?0륉PWہ'i9ѮM#6 \7KOK8SV%@" jtJu(t >t]#hj[SvT2E'cH&R~t諯\.HTRT>9100u l\;0 ɹBVaҊher0#FJV羚|tuCBKH5 oܺ0.3X\zM"oPHKPՅ$%Y$3FEYb`1{6R/kZvzSëy.v%QOoލ%a8&^&C,TᴱA|- z2V즕kjی8E\ e˘NсjLc1]?A隰%&htzzvߡE \hwdiv:iQ7bc]2xiI&}Dӹ"UҸ4\:du{60/EޖRx&4Fbsǰih њ6}$@B$-Z4`h„BUUD!h aY͠,O+D4+dO!C^`i*2v@E)J #<=Ol{ 6=QQ/rww.RQҊߥ|UZ m uÉN/n@FK.,L8Vȡ ,"pt`SǑm[偤#jj-m:j⳦zyO J;_IHXMei)[m} ʓB'1HG})Y "=m~Y˨+G㨴yx\Y!+2UO/}ʝ\ *e;`~sgxK\M*+ 42}lFO~4̹M2:VA-t|+{}VyMk9xŪGĪtp퍞TArMX|U0!N7xIrfyAT\z%5h[=Z^[n+\[5׆zk+5RkrպuMjkyMt9[^y{m5ZѪvWVWMnk9xUsB]碷m۞WULh;suuڭ=U5)=`+`W%sղksѭ7]S^@ߕ8WW%nZ\{W{W{W{W{W{Wxs~zk=^\\X1/)/]+ycsW7-^RXq suZnzXMlcX,+kzH|9"noѬr7=^sձX]Z7<+Ƣm*ՄaW,W V VQ%jɻS(Ùp+_rNtQcýO49Rlaer?.NNĪRw2%bktsM[]-opՄ&{]wu:Q%ik_Ĩa5'Շ \@D5`nʯ{+x)3hԩKVfGXǚЛhÄt"B lۖ*q6O|b eָuŸ ;5SMbPسrHܪq5U z8< ZRL8M0fȵDM6tK7Q1g{Hg};hejq'x[.; :i`Pز³Or9{5ZۚW{Mnߺz2W^2 WK%Er^-^0禵lr757=5\^_WMz7^pW o׫sUכWwuEua~hn^碽^梽^梽^{GՎJ}n?sQdAt{{?_j4 ziɐVR7VZ!B[O0 ^b͹ Hy5).E ǸQ:=5E#&rHSYL>еD$t:<өTs@P}=f:+k|84]GRBHGWj+[2Qh8>w.ClLyZ2J̀\JWXnm )#Ǝ##֌ҽDN x3xY==\Vbf±5R AǺ yn˯6)?bzB\3TҒSed)$lU}8/z*/ǔ u ~gJ:#rLWg'B o @Bi)9a¢0nx5e.X[mj[zkD³L!ƞ~jc@{ oxmhG4T4Y'v`TqKf0M+p@.ď8"ȸN 0nq:R9zmE $O4,'S` ~qq)>fS&Zfh +G{& <6${X:^4=`E`6m.bDE$3V\ENP+k鱧TxLMޥeЎ^b͘JMKDQ}9bIhȣeюM#~Oj(媶㱶P= *rM.UC^GPi㔘Vvl f#U/MߪL1LSܸ)ap{r3FM?AONsMP]]+Sk> q!pKLP(IȊ_`¥k&BHdRE:M 9FҐ RucJۗiGrܹ=L.GOU[P VWH2)u-׿ˋeBৼ?Iњ&0؆q8S}Jt V`P{톁 8)2)8TOUQ_CO,ߕhյPIyh8=.! %2ULzpN<`=<=+|Ԑ>RFʑ[fz ywWNl 랯Wv=^ s뚚xsS75Su?S 5dB3E=&e>0灭Qy.ϦrD&m=6jxA)? T!Dž!Q*H׎Mc՜$yXEw7jufۯbE;d42ӲS ҜY%?hJ3T'M~6"& XߍhLK$l)+U5息Э1In81y%EUO1hȡ8M2PTzJ,㯍am򪏴{;5aB nXo.[~$Ii QIjybT)t3%C/}OE dhB) 06SJl=B yzNfm' ՖӤn:m,n*e NBKw @Ë54TR(1귥,{Ԇh("`-E>3 P± ]+O/PB攮])uAƗ\Bh(̪}=Zxfvui%i™Dϡ\#hHǡ]|ϙ-Uc8=bPH@߷ F"r1Uu5O[=L!n'DmZIaN0-fU(Q[BP(2U$t+֙2Apn(flZĚCf>mS[V6 xxm o~ho75dYVLn \M-{[`V=^)L.oq{3 nv@tIs=5E$sO(%/ 3b܄0ue*qv7E]nDE>xC2%s8J󥵖E;QM6le`ř^+iR)4:(M"/ש9QUD~1?.H/s)xFjYeeJkZBi  {V5ǯ^BNb{](+J{Jͧ{@_LA&mO}?E!{'H#0ɧQ)ĪHLj(N4z=+XU­*B];8P)[ ;]>U@ VWt* =r P~eMaҫ.ѿNWy%uI$iN-P6q" r:ňqjMzEE_{quEdk\LP[e i/n6En&0ϗ3{C8yTw"w*@$uKD O7RuPՐ؀PMx:1S:u#^X%dQKLPji:D|hBPA)4`ȧb 8*bÿU7C7K3E[7U5Y՜@0Z;_ݸ(S4 /4…GĝPʓLq1ltrj)-Sqb5Eʪm'݀͝ :sUq /ۛ"hz%_Ndlɇµ0)-Q{6$^V m d^ra|&< ^rKj:YeZjOt/ Y.HI44g?Os(&\"qI aCbOy<`VF-.I߂pDqqe 4&Ux+RM%*ŠwX馧MMvp#GCO KHRQ<0tk6A1H13FOwZB TQoݯ'GxF (OY5Q:rJܞ[M4h}::LC\*e^tG=FQɚ36%%#t|8KŒʨxj ͫabnJ9rSȻڶОMV5W6oWau{qC^TWw8+_xU+Mz6灊񮈿-+SEx+y5Zǖ+uq랫Wz[rƴ++WJtF"RQ5j ЮrƬk`~hUEy qXj\7[nzYVNzY5C]0כaY"*jqZ~\a^|WsNzzWzWzWzWzW͊p=^V=~Z\]9Z'NnX=^?5Z۹Z5-TNnyqb*X/UNy,'p:sZ!V±Hy`,0TY[V3ۚ5;xW4~nX$nzQ 3q^EzJo^RAAԌΪ<`̭kj9B)נ RVET,ۈ֜FcVg,<%UA㢖wA=Id1KVd$>-lŒg>Od] b,o$PJ zK%4<*k 'OLms6=g]?Qt^2n@o7RE.i?133^Í5d|ZziYKcƬ & mmn$&6S§bMmvn2MXSܽ-tFzZFLPfCfb5X5MXMK_ T| jXWj)66{9fn1j'wB>ߏn8U֌xӞ5'ЙuRMe/ ^痯EvOn^"擩4+b*AHn ?^맣 y ڔ8K<,Ok')*i?aU(z u(W9< v{DSz*}(Hyڠ=bHC8zxn+P0Uaq)]պ {WunZkn{mnW ٮyV9iÛ>zQho>սي`V0{{ogpEŋaYѓY׹&^Ņ[h-5XOR9hQ$ZH# %|,]|q*N-*1=NIHvT :>$>qKvs4g 2gӂ)%v ,bk\Hʸ@^#ȎZ(|͛V%;-ϵESn pᠤFI؃ }\ROE=5tuΎDWuTi Eq5U\"yԮ~/N۫Zcp~5O]3u8fH4ˊtucaqN* {ƻy֎0y XRh߾pM\I((PAm  PQXKkܮ[izpsda-*]3=G_TfE w]=U(jzIO[CumF<=SxH@ܐmht#ݯmn4)+Ft٬XYJǞQ~m٦@ulEW^?LRgyus)[o戚PڴN_OvYIDAdl3(7"iBh \9IޜhDkcs|m㚩 K3FNTG]AdV͸i+,5O#.GnhsB>8q7魕 !/iTi tfߍ)KGphTd`FoU6D y9JڟeO{s6=t`>mkPKU98eV9II#rj N= vcF mV' 5F8J0_=`o3E\]UfC|ۂ kWZa=!n_&Ȋ'~:OȬwԒ|)yӄ9iMnXT1#͍O~Y2a]4[rG4}2~WQQL*Sؕ% MV̗ӧȡV^ ˁ5hor i׫-VnF<ѯW.n]Xw5^EmMjk$<ѪyA7[ER禽\r6q帤+ds},4N[";9̘]Oxf i"h<0!e>jyS=4dPrE)c,w|JG7^&?STѸEՑNߠӈ2iݴLp1l߾ӚBM6E.N,9?H "譑AB6?8bvJlcᝳFi+h`[ljSko l-4JӅwS :p(JIS:?jʆ6*?f$"d;/eFiӅN_)&'T)Pщ 8V6JNEI+qK(PcpvyɭDǨbUt^8Rwkq*Q#^^J`'9f8n_3{ ~[QOga":~B5I6pdk6a3H6SەK*1dמT"k$O-4nzi)5zuj@|C{~Y8&Zf4]&)V<\ONӖ^ϸXIh+ pAnxDSVU_L1<9U.*ߴuJ| !5pXhCtZRb_Ĉ4U. 6]7c0tJl N3^50W_tdk‰EP8ij^]jp(Vs<øuiW6Dx֭c566"n3ptӛpehw4r#zj:{s;ym#ZOk m 'oIѕ0H"EU@GhLP2Hu]u  Y6A{B{6S$mI^Ta1VY.>O@E› OX;u_d j 6۰?Ms5OO]eyd};w4}ƝpMqhp;$4~P˄Unj*#*t7\q sxXcL)T~ªih',*5j ŸR+.+ѽT%flVڨt;@> g/b@P Zh]kIL$ktuh^{>_i.GpE/ph!t1 Z8Xd@)4bm?"$HRV?كifƆf*f&'e .0EY |To" Q|K|JIiZ*އ I&$ƴh>txtQ:sJSYժ^[yxWBnnj+Q^ז^^y5]֫b؞V+d+Xf5kj֫Xs`֫gtՀmW-ߚV7חJsU~z\ezmՓ9ErpGu]vuֶ݂gN8D֫ƍl׈#=^9uѭ<Ӟi7^1G9DjG9^ҷ,pTyO5QQ7j}y$:>`PE 1mXEtv;c98RATb FFq0ibQOg nD{q%aBiiTخFnQκO ǎt FV_&6>?2¼C\8qʚH\N"UXs_M=`TLj wzf"EB -p탦9&~&Y/HJg7⇝Q.}d?*&󸷓Qe>Z FC*D)U $RM@#;+g ?̍tfS{Ty"[h Pux Qf2LPe$hAwN1z_^e$<3Z".P'ӌ^+#hk؀F4E'paBu"oۂ 1`]Lbt XQ”"b)ߖ-xF4NUH 3گÍܦMKi4V?dwIS়zNc([jv:{M ATӍX5͚P%qUk§04{mgi "x馼O((94A0cLHS 3Sl4GN߰S;})cHQ[+ 4 ㏤!s l 7r􌫅 9 tI,)a{Gx>1&4x}…z*'l"- 4&?q+zqџ"8hrX,t #r)IY4'^#)z( W ժ SV"i5-1^iVtWw=['AW=^SqՁS&Z߯tQ= { Am7i`I +vhaZ"b\5b[ \*lH^m5aHEߏo:gz/IΠ&vI$kQߔ^0'΄`o!I^8bn!"ҍYt6'xcNןp*|rT%ܧљxLN=Iz.uƲBW*)Ck#nm qX7.87?#a,"PlHxxR6?G(IhI IE<]O1mWGNz1OkZË;f.>e*)ꩯ :{Q<]jLO:>9Rd-II7o8IW/}_8IKY^BoG:_R)wױEV8iҊ<}q -$F]ŒW̱ЂH`NAM9˔jb ?ORASzG }C"1ԎG,G~h/Ĩ!R-nPE]"~fđ^9#Ì[H4ou{pi@efhBb=TFšt [NTht:Ⱥ]X7GK_Ǝ8SK{PLk:{eT.z^Ԟ7[Vnĭv͊ĎjkrW|׃ߞƽ\g ֪sUj=`WNx׍xzXu랯Wj/WoWz&W- s`U yXG 2yQ[*G-kV#\q"]y[×Wuz\[W|zW"䍷Y9x)5ua{)T|XM;Z8bFZ4Tя釭ܳMh n4)ePq, T'a4{u㎀Eyh(HaF]U:(R" ,r>yIJBTRLI]E7 9njDUhb|e?? dq2I}"-Jȧ^rcKPdX,DNj,ԲE^WW"ժ瞫MqUW9]8wnƑ4 .{(- x-ȢmBi)o?ƜhM<ˡ*pغQXP z?koZMe?_R9ݙdzd1y~QT)˘2WDE_M7PE:>n.5XQsFڊGedLN0vw5VdjU ƗF ǧy2ixƍCsB\˥sHH1b/kx*hPkZ5d#^)HM8\ER u~p @k= }xdPZFELЧIB &$@/eQucS3R`Ssݭr hTR8 t (Ӎ<)Lz>+=iOcGL I%5UaE}CݸrMPR⏖vsOhSO]fRj`o0(NP#؄¦a}G\PKXTp?Gm,He)R+lyJq?*kFܼz-͌+\_W^jLZTK*J٭sSZ+E]ZM-FFCWJΩOT, V(՝8 X䶄6pQn r}aղ![U[h;:8lpTT,zc:k#A­Xƣ:p*]&&>:?/QIT ˕K%F*t8+Ӻ<؂LSFӟ^]%aQJSr~PVfhR=h(F>Ymaj\V].tt6PV5䘧?C] }Gjj*)zmQ~8 E&bxȍ3T X$OnTkJMYoҖt 1ƾJbG,8SPԮfN̢{궼UR"#GYS\"bm/;j, dy Ei[S*>SDΈUr?o *r B SⱮyfAY_qrE:N}c|pRai1o*ǕI~>6Z ;MFv)Eqؒ.x=8Pq9/6sa[Ti5R/p3aM )i *d4Q*Mj*5c5hbݹ01%Ok84{tӣ %vŸ׉K|׈cJTxE+)1'EUJIf%=ä́\w= eW7nx.5J;o A׷ִQ*=}*5d4a
gN0bT~8>*G1REpr)RMvn4hi=zL̰b%>YڳIAWFܬ j Zx+ -?C;Ղeb} CR7k5f,>$""9DOVYsR+K~znxRz+~z\[5ytnlV )o7VPX!/ @|@=QqGD k> Dp["tj:CAY!C`d_*B(xoWIINUc/~;U,W"fCL n5>+D,L r90`"(T/n[<+w tML 8+n43=͉$R׍$3ILݭ(OjŠ'.Hbp |K <In-$MS@Ej ~ RBpd1ithLet.EPF "*Ŭ)^: 6Xu ЕW-KF,\4htv*T;+lmNa&{i6Qx5/̴MÏ!SL)jN`X[F&):x]N44M}Dt'N"X_[q"1.uiGq)g1JU`5`ъK|, FkXE8ko,ΡPG8Vx5]gUtO&Xm8I4`&7SsFrgE:Q>iSDEpa/b5Sq4xP9Ii9COBS1'{{y* :^ nͭ4MxԲ6ƳnkOĥ7ÖM]1 }z}X&>@ߦΞ>{kk{6lF;e=)IUUbEvyzIO4:o0NbوQ#R֔"i;ӧ CZtl"F: pi@ d뮺 #̞ҐJ,M`٧hΜftГӈ-M.x_ʘh a#P }2u>JuI(xV]ʀq|)L8J _1YG <2hjāBgH}uǗbh؏pd«Q.]qli#D4p·Ekb]t2\r5^Ň4jgNx  z+]WV碽x׍w7=^[=^v5iWaX׈حV'W{j+ůEps'NV\9jx9{Wr=5J榭57[]YW%^nf ssSW!+VJfMtحsƼkyZ텹Vu&ʤ1h{_DBPe&-SE侟dB"tʾ67롯@ J8e:9R"JUsha]sպ=^ HV+ZszIaV,(ؓMϼ;?vMzF2-.A?VSj{T`Dln]X<5^_6|X2;ުV.o ,FMfwmӅUCkb mβzc%3 tqqZ.T*7B+=>Y očZ~]Pv3GtpʐP`й+KE$Ⱥ0W+Od tryi`{n8wEƞ! HƎF^)8AVin* YSդu!ҪV͖SYDr~'0|e1 JA"J6Χ6nuJ8+ ZSecofs'e?]A@$= N$͉]5@S&st3PmqkC |8)d7nSLVƄl |Č :؝9p**3c̥e5aOv&V8ʰƞ>))4);M゚W/4Śi)݉PۖHl( #v|=†AƧKApxfnH}<:0`2,; ejjV)0H[y$+iQX!ɘ=͘}I' -@8GV3zXe%(H2UKʑewrtWeM wiŽgEz+S|b8 `4dž짻gQf_0ρ⥦3h jLjdmcѦ\W mqfooWWW`X\H_hi SNyUJj>,<8IED);ӌ~Z,HPA4t$BcC'YpLfX1,oێz1Lsa8_P> 23@\ZG htE>k &q)8Ѫ&Ls6YTǏw7uCNw GhMK=kGχt Lk$T`U&Ņy3x7[O5ZCI(@4K4ףPH[K\vPքҒ"сn2iH3O=[ J/29OtX{yaW^~x|ÛmyV(M \|cvOl@6 g;u&|iZjQF x("~g+2iˠ1 Q618v;Ck_gyf64Sbu.*2$#x#E8­iS iT6BddRӰ'A|E5w.O ,9 TqNI |J’%ﵭ~3nKTۙKMU0&|`6 D9|{T.M*SF&NWB1JDvs+'}rb2XGbyfQ~nYPߞVDmygSU8`G+URp=zrVu˚W~z^Uksq[:sskU~Z*]urkۚWtYlyb+\]·\CV.MRk ۚjZ_5C][ W`ߞ`Ѯ 9Mx{dW+6enTsUw\Vj\H-V_EvZ_o5U^-֫;]jM)+k8x`oĩ<5`kFǞ8֎5Wvnn\z^W$z\BFz^,n]Ӛnx׫j8-T oVsժߚLl9^lvnX٭WÛV&7sU瞯Vk͚bU+͊GjbZ5i,yG9[["EFCWLoV4z;sU9zHtjj4UnzQ`O=^5Czy+b1n*~RMX1O$"`}sk(ueNH3Ko6%#KpڸLǕPa5-@[o x8)y&c <ȘfTF4 uq>4p8 >UB ~|xƙO'f Z hUC[kwEc,Q|eeF2/ap4xRKoX]pkh{u$hUvT,CnT26#,V2Lj,aB7naxV-ET$7&f1Z{/euJ[:BŞ$,F\k( Knf8h)kӮXQr2O i|j>j™Ӎ':95vӶYz$䢸gwfE'\JH4"`Vek>FM,S hqW7+(m]&1ǬѬzë&p `GxS$qS[_vZi>_-c%=c /a{Zv[VE  ߍn&$`榫 5˛WW"]sUɡꍊ`yaI=>sDl W@oEk嬻 8:J܂ amaRyX0{)[,'Ua^'SZYG9!Rn(ETpR_b=4|8偆PF-5BhiḴe߸[骶5RBl;K%?,AÉSTꔖÍa${8-)0i>T1' fJؑ.G` (?M4#o“'O'K,i2ZplXI:ERޫObAN/[}4J]Y=ttBo6yGU8W/Py:xωcy+*1wW,A/CK}/{|8dӱHO8ymտZCU ͻ#k˶+jΑ h~:\ d%IN_TU:=<" 8Qe8+gUd]t'- vNK ߌV.֖xط@MuP)fߖ+cI?}8LSSR`_֪T5-;[JA(&+Q'B9WKȧ^RiqÝ;մ]9U"0) ^ޚR:dяʔӅ+0\߄(,N4SJV}_e7TP[=m=8ÞB렰7@VԄ+ )qMG~[|BP8VSP± ܀HRR0 ]㘲-<CEs,{hB@HsGQ֖d|9Գ}}WO(piڵ) Ðt+ u=\="rͽ O.=؊ 6; G3HY\aحGY0UIx?)QƓq>L-V-ܽЏ-x-rh+.A0b,biɧ檵 7[ UȦz*Dk(6+F\֦_WDssuywsWכ׉=^:{+jks\tnj+57؎lVn+q]_d+s¬+·YAܼnXyz{Wjh!+j\[< #\ǽMziN@J7ԟ)a|);ȚeXF`|27HsLDPV NJn?u}Zڪ.5ZjHHepupripA̒Pc%]4G<)n!HK~;O)"iJS! DPyEnJ'FH=(AYhk+B+ Xѳ执龬OpչN|b{sժo^V 8M1DXߞ<`ߎ aTL{X?ȤdAx8py*˜tR|S-ƈP z,sT>\-Z*=N[ ;_Mux ssU"r~,Mj 1V؎zkdLyT7^^f+2$Se[E4Vh-qvV)&x_i6cQꚬ-{<-2)BqJH(s ^m)A'2pZvR=jk EeM>USMO:XSScR {CX1*Y}d;*sԋSG UtuܧBAj V0 km> t}V 4dz^Ezc9r͖5,ڐOt扊T=yM]8ZWWXAjzGYL,UZ]:ESL2ufq~btYI' qen76fÈcHHGO#JcDž!V521){5Ui?saʴP6[xE!ZӭU9bI>QJ[NKL$"Pڂ,$@VGŽA0i+q?`{pѝFxP[3 6(/>PҚ•F,~~4Mzp{HukLUH)ƟmD)Kΰc y|=#(dB>q2@~|hPAG\h7iSS碮*uyNܡO)ە^ԴݼyXen:m62ᆷ`UӬە"ΝOI5k{ƴ0TQNԟ67"V*mNmCÊ5ʆ/qB[oA~Y5&%^ZX0H0evQS'm -QGaztPʋn@<\U)*XӬ$`aޡ*" =uiyNg*l{y[NZS 3;8SR7CصHlR" ]sP1I* NMvq<)uR5HsVm YV}+3$"V[(;ۦwy)֡81:Ӥy/R TwHh}ih?.V*.'hD<PE/Ut&QjYU핺W=^=^n9gr~VIǎUrW/WG7^$ߚWV妽\a j9^5XuksE5] +n\~lcU5v4ʮ4UnFtmmi%UX[5hyyFzf5Ej%t׫t@UۛkwWyq,׫6c½\o~6k<h7xzPi@Fޞr% 2.=./ pN hVM͔hJ:k e\MJqRf- v.⤤,SJ7Acm8U ڈI3c3mtOnjV4qTʵ8msBQŵӅO4A}"4EO7$_VW"f7)(CFK0:'dVRpLIeiPZۆglS%ntSQJfQx~ӈA77%ECD2ة԰KTTS&s.#IWFK%IM]iL=S^9)(qjFcq>#BJA 2l&4Dž6iںB0օ,#ot}F L:ez/f2Fr)dEyV =WWz Wp!'OZM*U=3饹tS45K6fEs9攚q&*$$<T ny-_N2]CG:1zʑO٩!`OY[ P~ FR4WeRJu9q, h 6c#8{EwjgPTU5*'c-/  k:RlJL![_Ae2G9Pk@%}d#I?zNEJ*T&W5ӋJA5 APM:;Tz )M56: jEy-5 و]\)?t+ z'?f1}'8T%hiqxxש-Jw~oLjDR"uºyT0An1NP_`=NƦ{7Z6 p+a].$ȥDӄUUIJ"5&~V*ΖhZf5 NZ73$4㽈^+@fX4!ZB4OKD+eUsUYRI]}=n)KCΐ⺑25uՙN>* Rrhb}l?tдt1 8X{.+S4/1亼4Ӑ I!۲x$|Z˔!Fl8? smq4k(̾1z Au ri)Tbrc1'![i0W!a0U1m]~ ,XN+p 3*FrEJt|K$l\\>V|OUKmXĪV/qG EJkʩ:B-_1KxKWci `wk|ABJ)`y+Mnbbʵ[Clqc{_PUeɝ0.f {]f1jh=1,7K[_+tuq"fLNhkh$[ $JU!byI`>J4R!ÀYYeE>)`cA6![tM+& }6WmapkAJ…JC Jx:: E:9@$ XLӡdɘFsQe:O?˃6FO!a"T@ j/qƚe6s Ę">LJr Qc78^pgx3Nq"zX#y[<4YQ褊A5]qLQ@H| QQfKaF1!QSE)&/q".g2h?l9b yHiSvE(E8Y~-ۿLR7UO'>hTJZ!GaDWiEԘrFOc}9`7TAF?FsUj[5L/~')K4˾q(?x[8ne&sKc cK([W{ eY+*_Bm굞"sDUfFn>͆'7G5qD(#]~XK p/Ii!nRYӞVxxRNnY6 \T4kՔ+ՑNzY9Uȇ5˸rbbG7VnUқsU1jsSnz-5yWEj ~z+q^&{exkWַ75翕WsVԃVE#^jkvp gQwnXcZ~n]_^2[Z{W~n\շsպWuyr&jGh׶ u«U/^۷++ÍW^z+ sb+r9W%pO6kƹ7+1T7^W~zYn9XWBzqEz`9t\Z&\]s uksZ/nl W9\[4Mh\Weqg7^ux\^lYIDS'/8bwH͵'56Xꢏߏ_g,ize S*̬׷X)hüBPSȓeS3}> 8@4ުVgHPw8[HP%>7 zf]@$5b&}jYjn)Z^{(u"rm>6x\Ya5 0#҄kS5-VRia Uy\©NTxTVV[ss U2ѕ"̓Vӵڮqj5pR²0E.IKr*5OVw-"=MU<4iV&㞪h1W1<ح1O]3n_Ű:v1kُ+5E.o Ǫ,#x4j5G0#SKn?jS?.8d"4Q4ݝ5b"_‚`*VmN#AMoF3ʔզK* mANtcL8:\bp& ߐ2'-;YmahׇN1Y̩;o/8VwL.1_ĨoƔkqJ~d\oiAe{y5b"y?/crUQn8LS >j){+-S:bޔk4jwujb~1xMp  rH­GKA-l)|~/B'm>6U`t8tj* " wRD\XE|!*-ExQjI =q&תyj 6([E\8vmr|"`uo8I^XjTv.x$I4_@u렷(pp4,z9ױ)iI“xS|U׸ˉf61,ʨ Ƕq #({a8":`o,U: 798ցY9yn4sf]{{ۍ-yi;&uB,Di+l6"ay*"`iX\STN9&)*VSR~qIjv^߷-1[84MnyZܰ1ULwqɚTѹ1Y,Sj{R8 Pǻ)iڃ[؞2E,q;'_mZ|n0=OTx^zY窆Jz ߞȨӆ窵  93W7gT4& dv<|R7RfB^ .4F8 RE8,[]HWR'̶Crsv<1UJ_UY!9mR)CcTy{hnjd(qJDl0c ?)!PbM- OIqzVoNi“SuxCٿ9z $y-qshfϣ#njV "\.`m{,uM4U $1wa 4'5t&b~ZRUyZ6 P{yB&BO\J6&u*b\_=Va{)uc q}24KՌ1A7oRՄK `J/ >c8兀2:9͗j4JSC/cpCq)袗H"*,P>EqDS97UzR sX /ZN@H +Fŧ-Z"yJVhnoez9C^(yf^媻k:09U,gVxՕ =^=^۞W0zU)uzQ^Uбj^$Ns]SY$zk9=V8媆IA7M>V8s~jS ˪S:ayrQ&i[e sqWR-b )qN5k1 &4Vר.yoc')\pUSzAҺT*Yڝ|r! aFߦyFviQ~kii~ jWz>?-= 'RKhOk ^*<̯;R:WGӸFX:/<73Ry|7ݦM)hSxV+E-<S~A~aJ$]ѐ8֒i_;*HVҟ?G6mfE-.+Ep R&(UNmH*u< 'p\˃ҍuF8 V]$~5l 0j&`0#mH>JJdTO~T1e&YYDSV+ [ MXH|&>DR,= O <?G &. PAnvxiۛI(R/-tŨ4 |`)Tm9]¹^|9mdRVpkƕKjiY)4 *pyԚ+|56,Ifi!a4C؛}|lёVc oQ0pk^@/SiVu`:_I(/^iwWT_[0&HI4i#њ %2KcLk,SQOM g'KMN\v:^hèdJl-=Rdl7*, k[6Rk?E:Nk#U\{-s aTXƭݑ(e4cD]| LYnI6n(+˸%FHYd]:WӶ]f|V`,6xʨc[ ϙŖfex.Ar0*AzaO0I0ō}˜^")՜w} 1Knu_1gSJ4}d1U,HJL6g"E @w ^G/ӯW:kp[`|x]\+pF/}xʱh4܅],mpO6S5 ?.,y+DW,UI@!HI*H9)'U-T5W]'Ԩ+4PSH,>#lSkmI V "81Ki"TeY}tG PUNIS1jl.Sۂ;3ߣʈRo}>^͠[Q*i%p4E7Ra]U-(U,%~]-)߰+ʺ :j\,Җ2yE_~|T7ϖ4]=MǺԦ).mxӧ vv07lNdiA5X(-/-iʡ:p @媈/ѡ:{.9rMT F,qi}T&.{ةUr +gw 3Fs426Q^U, sj.ys 5/{XLE0vƫ:ZCr6xjb)/SNTTU94_4]֊&6^-O)ԂEӧ}wPPcYUH@ I EQk@Vͽŭ嚉 )Q\ه-4٧WKhx4{j] {q-E8J ;I&σ+ ~h^x^LBa{Sr* ßV Mj9yRߥ$[۷ D,~]z7 򩀨0EgEh6 _)).k{tUse5vʴk=Rvp8ZLFүs=Ɩ054Tut{0{  2C}?H7X/ei#H5`O 2\mBkVTԨzHULtMzܬVEߛԨO=Z^zYPy[p*DfzyZ5V#H k:9ʦժߞ^oen+!7lW-z7V\z+7$9d`pp5qgXX!=͕A48+x,U-j+armkH5M.]q,ȧʧh%akvLA4iGq(p|ebuv~6B[JX|=$EiC r̵!|sQ7&QZуɖ3Dа۲vacoˎ jH΢EXQ :]C]iG4@[2{!*mgPǍ&u C}~ BlT8nyJ5wwU,RW$[5C2= nfmjOH'AIM*'CSTe4*8c/JGsv\1pA1B4NRj*#nomzˊHMʚT5^s0[+ƥ'nxV$FܱTZ㔯T5^k HSc eNjFt*/zY5^qnYwiMwnjksLsUjsU6^,O7^֫s鮴Mnȟ5^=^EzkJD[]bמ&\41+,dVr9ZsWsu]nhVxUJM=^7[/7[k{enkO.q .Ô_ƻ aEz)F'r9XExz^]-~52j m@JE'\ޭ扚M`~\m8Tye TZdyljoeLYW^;U) KGp&xB6F/x抮Me饗wKLLPTkY{[,~UticWF>t:ޜJ` :nM@4Y;A;ypx]~\u6FNf/H-1SeŢ4ؼX>ddF"]T,7M.͒$sad2L#1Ա᲼ *2q5j8icf9Vo$4iu9l[{ēLhVjcev+nOĉV;iTSL>Zj g0=o4)Ƞ +/i>SP3%lu#XT 9{+D:Dc*p@4 %<[37ڊk:[(M [0vw4u ‘EAa{,zjɔq&ӸS,/*8Tkn3~2O4Y,*6Mͩ[Si ܔE 9m^Ke?JP枞S#tqd_x=Dh3i_pI >;,Rg^0hP8dPw G:yVƚ.XHݭRXn4ܩ \u~Ăx?/Ҧ\$Q 2[ 6ԤRqmΰU$IcpTPFцk\Wr(n? !qThtq 5Rחjurj(Mj*J­R F'njY/5KuRGsgE*ՙjW$g^zYssչ@yZwߞW7^!͑^Z_vku6v׫pkS\Ajkku}wW7Z]lѯ7.Я/~4j/Mxjy^EZzÞWz+ۯVn^'D׎1[9ZVs^4ѭcNz]yjrGW'a\bH S&E]8䜲&Yv>Ys7;hh K5ǴiM?R!Bby[Q˶oU9VD)>QF4Еnwnj%dOEHGNPE{LT'@cO-q{kkt :P}j_=^}=ҙm =^cu2*OVM IOPI@P1;OV~ (|x )*_рJMK\aSp@[T1MmۊI)3\A;" Xȷ{O[l8o\5A(k]/{o~]6Q9!Te/.SM:|<|R0C{yVsw_YCwQB? .kmCmBmQqq{&.'RR9hx:" mX2fF%cBN\ I \6ʹ򶈲 O[Oxq:MGB<@Ijc(E:h+>%Y28ܨUǖ[ 5kjiH¼ht5കfߧ;uDVIg}h57"ԋo66yS M L!c$,MRbyih+7[oW4LO|xtE:GmwdWU^$ oND.}(+Hs}^-1Fi4JDTu]isb?EYT^ /otXo⤉E1Ɩ^j&RB4lqI ߉_ø&1~i04f<e"Wu" r:G8Yr!Td¥$Sck(.G{\ HcnG,fHmEB U  RCkȹMߧRw?gump+n".)>V)q]oM7buʪ44Gv:}gxI_eʰH\dZͨnYj½ǤۛMˆxME5Q$s0|>#O+ ;݆uW!K0o1!4#C4z?Ʃ{QSf*HKdhCx[B\h/Bڠʂ&c:rVT-RƼ*D^n:k<\zygSn\W4dVR)^onzYbY7U>҅XaYZ9FU.zͧT)μ0-V򵺉Q7ZHV63DSUh:slH,R45T qZ&i0"cEO^*(s Nf,&G?oǕ8UI8AfÅFaB-☪M1t6|ʙSyhh!44wO{8u,T,qTB믷_BKFcOb c:~8+ Lɝ[Bɼ[k/kplH%&(%쥘t wn vҵN?%&%Mկ7(=_bR=X2ڣƌLv0H_P4kdS'9-L!K۽9d mBiq[w2%!bA:w5Ey"'/O ϵjRm@6:LMi!:;s[vR12K,̔Ԫ]S3>!d@}V45 cb K; h*Ƴ~5YN٭5#׷6| =?ǫebnXKnLEgEqW!Vt}Dϕ&ki+=6mL+:{-P2(nX_ƞ"VE:|T/)\M6 0 ![߱࿼$m 1M7 q %3Kmem׫۹{W[p+św75P+:s^w7Mt¼MEZsU5Đ6*ǿ4jV5^ l9O XV5Uw:->>P4&O+ScИ)ĵ#ip ߴ񳲬0a \!75q /}# K356_hHfN(tu<8i)e|&i BMP()̓FAQƙqa غ3 ul4ʶH؟*Nc%"(?]vOM;:3in!&)&bYPm jmӺ& A#a& ;8VA3iwenw66bS!;$W"?2aS.Oz>S/cg?[k8SaOQcŪ0) Qc2}^$AJUY;Ӝz_mU"QYaS t M gEN$V[!2٧ uW,rF=Qrތh"l+&-rML77]5T=elp)매yfEa1Om,i (^~`x>ԬV0v?O{)*7A1g1 x⦗4΃Q3nd'޹ѴN0fQȲD4wV!H@ԛ6Bzz ﬈;NVPWLi҉;lrT  , Ш+f9iݭ9r ۹R r$V\.Th5} ] žJZ/9P`= `oo > FQIzu WJei+vSM/nnƽdBY#xp+N&ID![^^h˴Y4 R&I*LjgT#*E9'=Cm^\ٮDQ% p3²AnXGN UȤ7$66͸0jϦ (=t_[Oφ)1H,#u~91ZSUAy5?-ӡ4^s7|b ;@߀*>t"Jp#@z6CR%0-{(U?KG:"HLTN5ԌіѠ_TL4?O3nY)o ʠҔ\+]>uc+J#7M8T7/J9ݛ>iH4qiGw kO⹪OX,l<@h%'ZBΩ$2uD8$P0~u.jYudCi:DSu :t~pSu"ܸԨlTWTtj>3l M`bq#L͜"uهj|Țu~DR4c.Sy,;Au/HR`LQɹlAFX8k/ۖV5T Ju#Z96K"f`G<׈Лծe[ 6X}ZUbQhk%R^xE&",,,/&N4ˀEMr6i @hRdS-5.a4 @0x{rwe]xE3j Vg)ǽQN#lan^6dAegS:j!>>ߣ KK_P4e1O_ @|cQv$ljµ5٣2f2 #Blƍl1yy{Y,`\alE;&8&h&۲k}٧HL)eEEUd#OSGqQ__UO<5U6^$Z7'm*oNi ԨLu@ƙ*Io7r?E,s XH Jqoao)[)h@D'R<yH#΢Ԍue$m_K{y1MJ.u/E;#H 7*k7D2gx$,]M5Mqf/K$sV}Ik^\3Z")-ejӱP.B(N&&- A'se<=^@M0ƒXZ&"9x. i@҃j,AHE )6zıj2Foxݛ6Mti1}eˇpcvuإƕoC:'dh*-_I4[O-MƠʉ.>EZA42ڥ ]LZq=4"B6 Hp:Bl c8^+hzaNmve0b_\nl6eO6_2Sh')*$/LBJi&&vb,~NP0:Umk$iUb~rwSg}+0MֶNP"iw:QY&b؜χHGn̢Ē~*KT9YR#Z4=b +c5Ra7VN/ʓ^2.j"WVx7[5*U+87z',k"PתT|zuMeNj!Ӛ̍ǔVEu)QH o=K+*Ls"2FKiŏ+J")ۻg(5 *H $inP74m\5aw  у*³e:z/6VmB=%-T^+Ɔ?@YJLhi!;}8q&]^e)LA$+T`绪pNSVDJ$Og2ԚhԮ=Rg9fO\x SFEWG8u %TKL++[K]"TsԘXl7R:M6Lٓ)$B2)j8&I^zbG ;wXq͂LQ#C㧖84:mmtTWC(]E, 6]P}4TйzXb*Ҡ䍷Fof @Пg,X@E=ad4S୯^E0(ty0A IDS>jzw7=]uWZ\Xu)[t!Hhp R9: jALǔI馒)VA|6^  OZL3J†6I,n}7p%"=4}le4q}zfeh  M3Fv<~<$p0=:wjlGxTf$#T=x*XNz&J Nv q)9Gək-MIc{׷xA5`Dzf`Y|{G6iݴJ}6/'`8M7p~2iQOzF:NZHn-Q "3NK$X@qpnLڈUa@F<QpN7N.h1j/qc}zLЁ*žRz'AGNCWԏ?]vAT*SwY9O"o Ӊ)J.+u!jC5OƥE,|VUjBvz!&*3W$bÛVt7hk*^ܴV5Zm=^ߞW-ǛSn5NW5kr^s0VnߞW+ sz;r5b9Sj{ d͑^Z&XqnxkM&565[kwV0h^:k$֍y,q vfX\0W-fk^Mn^zח5Yj"\ok+hMd 9rUz^ly[[j z+zV߷=Zz5mMzZ\@9W~hҕ3h(0=GMOC8RC$N3Gc6:}y¶4:z:EhdHHӚUOzQu7kTS[0%ivbb}|Dݦ'4ZSHSX_T:2 *4%c4NGn]_ٵwb*mnxȼtAe#X,i5Y’hwPFOFdqu;5յ@nm{>t5Bf>i&ZTÓ}η|}/kjdNL`T${HI~>TʮeCٚs݇Jcy3 e#Nn7׌PQ^^qzh1+!~rLY@ J{mZɢ&)Pk k{,] ce`sN^ݖS ʨEji!߁ef{on%p`R4I :wn$@<*,-_Z _U]ZE3 JC GE~:45(e(#,8*)e%pن)S3Bn(ubF/~(bfi4,c!-+&U`cVjNB\R oQN_`uoi(f)Ҭm 4yr#M/$jRhPzyzs 3w ̄k P yҕO#?xvT`SĊ ވ8PsE52SYӖԈ;xתlqj.6u>ZRbR/nj+|jz)+Ց;he:Qdu`+*wUjȝeNz=5e ~z~z}yxsW{WozmL׫suf^1[ÏsGnV]7zkĐ9jvEz梽\~*EXnh&]tꂼksXѹzخz]o^/BsWnkÕ99XMb[5h'3->3 <]OouG< KYQF"NkURPݸˌdtobz]͉8(Ҡ 8₆t7SMW {vԽjNSp8TG#o{ê)ZV\z eMX\<6ULcH躙uOX)2HˠN-AFhPzeuMI a]ۍiNRoՙ/5U3Jv\碴 S3򇨼O| 1^T^zAyh)Q~mۋkxsjBUJ!B">xDL)@Pg!scgl$IV?[2Ta"ݬ;x񥫼0)cJ ?%1H?:Ե>]3}y}CIL/rL1؂r]lP%zs(JE**M~wZ (ypB*5ɽSռfj1ѸT5/ba477}xRU}'+O 'G5j2M5^4DD5:͊TðjR%ݙ͵.MiƆ(rB> aD`-UֱlM 6U5MRo%yJ5;qi,XU^4ə2nH7<]R_qӸr*qRR&.1?ipim?-e˪ P}@Y}/eF~GU>KeGeSP S;B(IƛRyk%55Av`8m(uG :5i4t4WIT =/}xLD$`"kO~0(&3N +!b-pjc\p|B6 A&0Lx4ۏM2[PeRF)=&R7׏]2H.5Q@o{Ge@Ӡ]\r f\f;9oGr&V̊_j h3 M:_j8P.߈'Llgv؍@?UXQCI$f_qM)xVNdhq]ӊnꪥoJ)(d+nR,S$\4btTsJZ?XTtZR)μT7kՔxW4D)n5M5ZlVdPGa:{xL<ѕm隆`͔ XAA<`F#_zBw' )Yykc nɝXBۑI4k`@lS*0nqӁb~e8f=|^lElE2SUbjYA'X*U#y!=]w$ s}oy=6\W-GE`8^U.i;PeD qo-eIpL9 }/϶NiÅ+(Rz@U|>'Ǖ piA 4$E\LJ8#V2*PWBi QjbhR u^G4W.Ĺ@wqJ: MbR&zHyGu+ Wonh6Tfjn~2m4\)Z)#cpo?*M~gU_XèT^KKТlƚPSb}K7<<,~-SJ'aBVe2")*nX,)',f?Â;Hbh /c0|m}8QtPaUb8mbAqO ^]Űoru}Ǜd|&]θtT:&:%65nQ֟눙aK"nZ+ m>|>`X;$|4ᕋ]Q}ÚӍ ZnPtuT[@F-#oo4%JBFڗ"" :E#+ LFNT|EIP唓C̽;7 ~(E*Poս.^}Q78~^x-h0o,HxP7ѼKLH}5&i;(,JZ88%J)#a…m_Uz s-;%ES1 mOp)XsL9rtH[u&HO&b)-iOsʂuMa9*: mMcnG?3JILTƧrXUZƀ\_MkjG6M*F4"ej1ۭ܍Efi-e˾'yY&gM vLmO]~zkԖyjkpP}bl#.8Hf1߬ l0.<;q(Q{ʌ b#Qʶquq%HicN$P_ #hc _8T&ire;Hُ߳ZhAF%g..ᅑqW$Sp@-\*){98ƽl*S&/& LX5O$ xfF*{fxlQp#e'S&i?Oma/\〥M5=C}.:Ti`@"*֫8SlTWH?M9B╁5N2I"F4PK׼M;;h reT mMe8],5siBW0\n6B-+wx)b2[X3SR,eh G)hܞ R>T0g*njzGءtU:u9<)Xmq"́!Vm @ӳe/Tzt8au7.v'㨹ldxfV*]um[Mm,.Sϵv,TZKR5}/rLtƉBU=NhH :!iIAҥT'P D@wUrZ$EG T6PT(~jYIW~w 8Qw h8҃6 ,-]WP럣UˤR̩UՍM4A~6ɳjXv&U%EWM|4cN͖YN@GMmTMIl۲N1LԎ40dWIOÂ{V.]ޡWE*Bx&FԂ)%bPb&qyJi=R2E;I<2Eb\A Xj5`+b& 0M}[!EMQn \B'eXVSYF[yF4v«/*g)S?Dž§iJ޷9+b$߳nTm!-~97F55;?u]4$(I\:I+5PuINUu*B^.pE[tS):j)+h)൘~e܏$"i^W%]B˪54-{8y8h8C>vȸboZEn+# m7"dB1\/{,p2'e%y#WR|Ü0ls:2({(Uߌ Nk:su 戭 )VonxWGߛMgTU9hVhW*k!)SY^z+*zYn_mPYQWzs569MjʇNz\udryjkoV׿=^yt;۞!UzWWuÚW]v75U6գ]WӞtnz\\ժ鮀#xz+&4ej0(`y_̘_"1`/Dž# 738{tcjzR 5P' QdNHZ\CܑNxv`i){\"ӬaIѷTn.EvBM6@8PmԜ0dbx[JqIӸ#zUOm5'E4 enU 9=+r&}DIG~Lvw>߫BGX1 ()(+aElE/WF}w `B~Wbv8Q0TǞY V,h2R&D8I]4 $ӉHzJcA) 5Nay0 /~ >\S-HH$FiE,TX|u2*VqvqoV(N  ߧ8Ӏ]5<ǵ}}3T`?./0bI&#w R bfAnn*4%@y&HM584S-D"Vdik,O&4nL}@3t ) eL@UoGm_lkn>7sx.$3$z퐓T i餏.;?lp>sOpSW.{\ 2ԡ`w8`J*ٚhʘ m^-[e"xfH@9gȵsoJMm|.&뛎_.R,*pհ4[-ӊ$ vV6355`(-,v!@*u^߈"- (=6TWUùAr=0Q1 bM r|5Ċ.:_:cTOy(ʏ4:?&]z<65Mm Su6PH@ ُ 1HMU5-utiҶTPM $XX8UIAx*JPMPX{}NӂNd<UNP"VӚ#qEX%V:JdtP@ ?2G%p "&c#HS ?+WXl۠f؟w #_vM>qƴrxam7 yx(o h0hH.q02Zۯ#O3L$R`h| E3Or)$kB.Ot].pxinDF u&' \[(N32]t"f nFelAQLT U^QXL8 t B\QIh"*$WINJ9,/oT) |hrPh&bmuO sXU5Sg _KtmC wY} lyr$X TRL9$=rM/ F{hcjwP/O&rD҆1ARZԿg뭜xL"S}RӺݑ\8`H_8I*2D p (`&`-6 \e^!AWUrOON%Ham{k6{uwhcW=TtYX&)6p,CF)< )TQZ8e#b)tO%-[{2$GAi|+/#ɒBn<8iW^ qaˊ$"'Tc^QLuGDM_zcM/ ?p++UwaZP H%0`x=4]-,>XX5ԒCЏ*HM8lO<JlXF=G(aVqkG{:5D4E'Ud.qҰ4՛ғ2$Jd8ejUSOqW)3ԽU:U߷~` j壡p?SVNw@R[6`VOÉIg 9A&XHnC2yЋ-jLi[i)Uhi~: m'c/¶~K)98pEbh|8i8$VHi>U}uu}'8IAF&=ċǰ-{F“~ 4: :G8Ұ8W;yjʅQ M( ?;>%T5U !h n p=@I;}(wQdU%(=ĞxL9O-L@p2F̃q; % $%fŠ^"s|Aj>ϴ3Z4czsWDA&)C;JU`M$_0H[s Pa,~lh!m`m~~U#u3"VHfR?rcIwmN8Q{55IAP(8%WE}Kp* S2+QgٛuL|60yjUpULVm84Re LzJjW_ m\!QDh*Md&Ev{vV [$jjq$koZN(Dó!u6Uw 5ʣU|Gߘ"qXөrH^5K_~Xt`o$fJzn8Y„jHƬ^"MFaP~`bSPR$#jԴI[6p괓aMFg13&w Qw3NڃˬkzC7#˼V-~"*VhX_^/(: :mQԊ\$f̒Dl<. ,n] 3Ffꅴ1p! L9OUql SnxVaĝmk&t*?,N*:*/vӀgVu tO UHz&Cׇ,i"anxaD"1~xתD sMjB-LcVT՞.zRc'VHz'+ƽRb9JgrgۗSYW-Z| ʝʵeCV7Z-jo=56nʩ[t9jvn\9qnz EvG=5+ƸuMZp֦$sպ9zVj+מ׃[WasuHu˿5U ^n^w=^禽5nz^]7V`պ=r Q@ˣS/Z9a't%$Mk-ŭ-yREQhWb~whB;( wgU4ƬH;gP 5 1ATH ӊE}G_#) ~N,qBE6>~ fyfR9w؏8;*4I&O~f;WmPOӦtڅ-3 M]nHN ӎma@3s)m@eMA`9< !G΍EZWLXl;=8GR!KX3o"-DSsF Qfsh5&ĺ}|2+Q !j;EyD5jeLBH_xd(|ek~(>L40ueH'=S4PY U.JHqAүZA ت ?l_pP7OhCKۇqF x LxjM-BUf_ M|fkP(zj^P3ƍ@:[dɃNV2e"%6'}/ќ_x\h >~iGQ`. h كsӑD}rTe&>:˨iPM4,!\'[niD.Dir ΄7JAZlCAU91uh /Y& E9uZ8m#{X 3͢2_I")=OD )p/Ng5WE"UxNG W`*H"DG+N~ȸqWl57TBZ3ma`셀]}hUi+'tT .5(V+@Q_gJPIOXwS%r@͡LR !PI xRwS"VNs5feaKw"S A^P#*Y4a~<*bh~%>z}t742':.m3KF"M=ۆTPˌe$𙅂4sp<Ln9`~~ fh:0ө 81p%q禴ESd$$|ufp G$EL)H' V9|k?C-qZyS\iŠ6T,{dE4q53ت¯-QW >CG= AqQǓ|4 C x?/oJ'WԨj\GGL$@";iI;(2\5T'cƂa9>X;XPIjh^cTB=\^LĶw"`A#lɊY(fʞp|Wu sӘ%c jkv牊eNRY,9' G=^z5s^Vy׷ߛWV-nz]~z][qnn\FWmr#o=VVyS^͊r׫n\yx z]#uעkFyWa7[ȋU{sb\ըc]=^yv kmxExHO-kB~n\5VZjsU]oV+@9qf5U{ewVa^x皪׷z]s׫6ěUߛǖMj&I/-Z dߛc\\MQ^8WoVkmzMNzXMn+ZMYcf7ZlybX6jHo8nzDV6jXΜzH9`[5zJyam(kS+^r[/۞5'+V'=[s"+sպ*ߔ"QjW4nzQe^j*]9D^9NTY XTiO6+QQזTi;[kt`\TN@NigHNE?$tTχ+WؖOIfd PG#t{9BUAp)#P{[*U `xTȲhQOkzg T,I_w0 ˦7_4G I\zg^Rqn"(Yնs02!::vgWTgz7d[$uI@"݈)DR(tC g߃BFlGS" &V"EHpYJVM+ѭnlYj 4W 7yTE]ֹ?3KAUZã!66:ŲNl"JSnBR& ._<) `4Ɲi3CJP`m qR$PMLh50B'~ׂdP Wk5u? ^HJ͹ʱE'74 /y2fLTSK$P.;&BvW7RZp+~GN\$Z;e6#)]X[ (E45+d:1 |}r ZxR ԃs' qFEWo|[:I[4E"gn}i N⤂0j1R98WBۮG&8P"JS?{>)zmĒݾ"YiZ~'gTh=B{q{P&*\.K 3[9gKߔtT׆"m@V`xEdղJvK*N';)0Ap 3%!;$bn/{8IP~dl_V5 #yZS&LԂ5BI 7˅)-@Yi}#̫Z&xo--'WE?t@NI3 IIbج57G:ol?g=k_|Z( ;owh(群cY4Gk({8 .,P&*ʲUE:Y'/r?x/ohLUcb#o.iTUnYs<~N Ȇ;)x*a4PޑgHbƁlvס PiI 2hQ^T "jRh֫"wu;̇NlW/Tz*kb%5V|z^g-z7[Ú5 Zub7Z]=[+^j5[+ߞwW۞W"j7^>z\Yz yr9qcf Z-^3[WAV^ZWz5Xn]WǞW_We׫pÚMknz]~z]=ZZzuzsf5Vyjs]5V;{s]מBWz_Wj^&j]כp_XVb.O-W_Z\yW nyj55Zkez1jrG 8 RdE=O cIV?tDSlaJVR z^_ VEe,LI)r1(:ւ.PQN4Q+iT 웖w(miVEnǑOpcB!nTej*wNq i/S x .\&QZӪZyPXZƒb1HWWd7a GU$VQUQe8"sJ\KxEPOƫ\ hnÖ́gC:pH\_^=LM\UIU*w Ej^hle'!8օ&1?W,*i^&Í)#R®MHw{}>»E/&alBFuvu463I,LjhEͿFė)a]4u;f0dM}8"玦b4q -awP<.<88B/dcBi w}NM8zT<(˝-lr;di$ KEG͑WI]}hg~|ěɚ@0oTSƊxgeLJzyk2&" J~1lR2U[[OhQ +ҭ0fb4`N=fTI#/$`uYan.>qIƔ3Ny+1و ]jRi%icW+(KFH#IEJT(Nu \M"SsJi9/K99aR<j2ڐ| zcW/=UM Q Zh >]c1Fec1,L_4&$(~9?.,͊SNɴ7vݫZEN' rQGE3UmMJfw_gkpγ#. ?z3HU@^*X6ayBV8Q1g\2l [L\.߷6HUmDhKYW CO ehQKk#RuY@_Xm[h6߉Bj(e\^Y*'kȧk} H#T^æxg6J nS4b5c-pڼA%l| :-#g%M+ǫ_9 ę!H*N, t[€ÇZvVpb,$ #PMԼ+\P+ysZFYyBV*ߪbR)&?,;;9VVAzaqbِ b'-4_[qYH4g`IH;1䊒>IWUcI3QrTC4`1mŨծLSIEi%1?y#J q¯ƻxIex ŏwxNb(Ӽuz+:>=ЕG՟Fn1)N 6fBq&"t,qyw}G8V*Q0J @+ӿL L$rOl(&.+KKWghڶ~>cRn r bHլ4> tt1\Sf+׼˝pgU *o {rSkIYW.uL$s,HiX5FR*Ʋu kZI]OX׈nYYnh]9rOc %.{;p**d`(\lM:<"y io @lOM#uZQߚ7e :m 6lNBz(՚1cT5Rc[s[kf ӛZ6k՞jR<+z'5ƽRa55^qzYدVAMeh9U ׍V5ke\nT2@U=z] mmmo碽]n{sVnb=5su=^Zj5=Z"~z]o?+Zx@ۚ׃[x,qٛ=4dcM %opߚF5[y4r̅8ٿ g1]bsՁܤˊ M1"1/Ey|U5 ̧!Ui6uZfgtA'Í@N EO9žK92>'լG1V!Kf!Pe ÍS4E:ϛL)?{w2'QYM͓SHDՎ&$S'銱LGJ[]@AdOQ\ϵQűGg,$?E9ZZ9Iwx}&Rh"K{n8lHJy&.ď^l^c)Q墧Tih\՗[;EK m@"N?;dF=ꃊPU2JAk_ÊMB~HЬsXWV0>t_睬)$#mӷʹ{pMKߥ blj 1:Z4d1-8~r"Ti#ZՀTYt?N6Ɩ@R_~ayp $q+XA *7RQ Հܓkp V:<Y"1SB{璳NFR:O7g.bY8(wm8yd*Qr R/F9Lj%֧qo `-˕Y#4H5K2a+-Z+4L }/ {xƲLPUՕ=_N8$"NfiQ#b2R9W+1^gSu44RԠֱwM:D@ti2MZV񲕾 MOYN\.LoV3saq])8h ^z|KKDz:j{ NV4s&vf<,xʹOPE8(21~,1 )HMI6ۻG攐 {m')Ӽw-e<\=OR@$vMZhDGALVST͵E`65zhz~KĥKWL%}[3RʱRΆ;Qgvh4QtxR+}98Alnx DvbqzBȕ4 ʶE:%#]HY*c)'ᩗ0ifeR>qpE/E8DfjlQ[M yzPOU]P/Ρ<=;)XJ|5BT;_xiYNXȑ; pmtƫ>S^MrA3w㍨H[Ҟv9ʞTwxy=ܺfGG tRRHe}m&) OPo,H"If{ pU CvPVoM=qq~@V1rT"6m}\['`3=f`0+N~ɯx\Y׍H^zڅM/YWp3H-Jר]Gkᥖ6vo!ю$I3Y$%cߋE!Dj`.oŌl҃N,=[1 rj z'6k"+RYW8^YTzۚ8j yzVNz\:sge^׍׫5^)ͶܬUk4sn+uБG1厞K}q#ieEN2ixWKxO *{9Jzk(zkN8_(LӀEN%m}mS+ev)91{ =Wwx]NVx$%0czcA_SrM8[_Tɘ#;$~ q(^h93aQLh?R؏Qq/TbYl5ݹ["\(( M )}TYHaM*0?X 6)- !bJGS^z 1I?=W1M@X,?4EVRU3SGimK<8Ѕ*߬tR4 HP5Ì>4@RϘdv6ܽμQư_WyH p?g7&9ՕPfJ5F ܟĊjet~\RCq׷œ ՞r Xt75RPB)0P\_dW6*]Kh: ݈mfznh}UkѬZMI?sRzbbaeY'mʉ cK)U cU䬅E1qM%4嘽J ɴ3rUuIJgb{)?A"`cݬ;.4hr^x|I QM1u (({҅,7wjBdӔdJb n:Zi^e.e,ީB첓x,D&O_$mն]A S֋fd C6&Nx+Ԫ͕Yp;!ͱEx'E["R4?lF0,LIGaXO:$,zT݇0'hJ ͖ia,w=@(T`ؖ/5;M鰷hQKL/NR8,j$%@IG .RR&Ut.VQaPk{w<'*;hdO_v)@j7W06a˲@5U~1}G"G3 H0@ 3C/sg ^\>\>8 }| 9$>^ "om<5ұ+~!F6a3R'C ݢm$?=CʼAW &ǁAԚ~dlQGSMbGm~B-礬~3<\o9o6%:e5OI5 Ud:> 0LL}D [u2G)n_.QJL /XEXDJXw=(fI57K,-Ϲ>[x @b\ybjKMRE:4ح ԋ`># DMZ+#~>2Fdj9"hb*}Ṭ$P[!F2QRCѥKbEุf= fT,g<;)>/cCS+WiM̩@ѵB6ny 8b-M*H;8TE0UOWs̵ho].<~4rp%Q7cQW2ac[Eu&*!~VR"6Օ;q^hתJ-Ɯzr½\iW4Kr9NꐽЬ"w=[ћ9ƽh`jye @U5Zʽwըuuڛ֫>h^ rUYXlמPt*,pe:Rujnx֍xOj+Q]sUÞWߗ%q t5n{s霝=@z]:Ve yZtIud5Z͛W`z]Ukj}7dC;n)c*s,O~[hw韧,Kno ONjNCAkV$$%FHX ?>LЈ⦺PAʓOE׎]( 4߳JjۤXx7vXg f1_B V[=>àEMAF|~sEb)0rISE6V+TGU)icP;,qQ*7 ~u3Ը6wD(?gok?4L:&#e`*`mX?>YPUp0]g|Z69Sm&@<֕K>Vּ* U{B׎Cq8ԝN6pN(*wyeߍ$U K`=R'1ᕙk[O~6[ǦM?_3!vnC*U9pٳtGpFf\1({7כA0*c@_R:S8V6"\xp)pQL՜z, z!V`wݮ@ )zEQ< ,?>ztv4ܪ)'^LcwFȶ;H{jʡ>MO K-Aaq|yEz&,~'y(*QӕۘؑT44o:~$<ԯ\ ?yHWm]a6lǓq\Ss %]Br/ kb6HTT$SG7i/4>sI c[j8Њj];='ɱݯ{xD=Bu2Sg\E~r/}OЬ)f #BxP'5LsNn.ī$g3P,%u$1&_e\xAԛIapbYk[_~ D.(F\bkaô-*rWbKxaUઅQߔ*X"P1LaBDRƍNyYl qvT|\39#ªƑY#Mboph&i#.K}C@ӀUCZƁl:MUA[0hAaR8׽r)P۹O.s u=4:l¥8sm肛[X%`#N8[~2JTSZ 6HH‹qEFb3Namx8R5Tfp-~58e:#!e05qA?G*os@068Ll\Tbhbx-.uim??˶B)82Dk|FOI:&-*œJɤQ/QEđ{bbz:9EAqOanǒL$l@张I\a]'J\˄V :!"q?TruDZ&禎Qp*==du˝<Z8؟]xUܑR4Qh1Tlj[ܒ7(PvV¦,bئKQyd kjU|Ҝ)KCK"jUCQ(*`yt$0})ȱUVl.E[x'jݪODɒF@WЃ~+lȤ֊Լ?8K.ہqA^XZİ׉{_sE$V…af^Aa} PV7OX.b*X ;|OG4Q T"pguۨ 0U%؀ &@5>YB1) 㽂nH|iTtP0:i̘ES{n+TmTI;zB9Q5?;#yRp4לw5kHT:.+jUbGM+/H%g,˚K#-/(+܋-#Qr)=]C U3O YC|xSt!Xѻ@QzSyD0{e)iƙjEe:߅恆GoaogP0]Hhꤷ ,x`/4;[ MZE5ZWsggNVRPj\@n9f{r+U=h׫*r9eQ5^-׫4zYVÚ"+**߇=5X`8Mn$碷]1x5hakUع;y[+Ƶ^/nz+pkuzG=^1WHzW|zh=+Xof:rj wsWӞx뛯WWwݹviUyro=^k ɘGTbԼ0mGJ{FM ?~c7UA$1Eտ.9Elc,.~[› L$A%Git <)@d-Yu'=JNI> l?!aj aƴZO*`.ɑEW"GH!b[Nd$iAjQR ɊAiUfq8jCW&a' r/kg \ OOЕSN{Yq,TPt<`ՃS T/kFEgVy7B36Isg Y4mzTxgL-K1;j8,GIp~5iPXg"\U>/q(KI5oBvRp4y ?HU6TZ^J`8-5nnaM"TZZ$;i$FY(uR^El kis1BvPٞ0i)p)*_vÄ#-PK\VpӍYgj" uݸFѤ!Bw -&sS:#qS^ʂÛVH=[jFjY zpDrC֊dKg@K{%4@*hAWxSC<8)qrڪ[4twk9>׃DdٮϺ*Ogеh\vRvqU+ZexIO5uDP0Rvk*t#QtUIi²HlUA 'R!{'.Q[=q&\)W#i UJDЫfCPKR-Vh,Ք(=wOhA$y[ 5Ek} ;bUExb@ %ALʢ,VKT I)AT5K$s1 %TZel: rxwknJq^] .h;_NMH%n>g(Yƽ'%lc~:q%E*azLN }ř ljz!L YEŽ;꿳ʺ)Qq4F}&׃"TA/o /zHRZנcϋXUlW }p|O_(SvF@y9X </ox(FwN7c:ܒ5LAr[jIFy.0 Q(Cg69MKOSJP:?|ESbIy撥" ~ps9WyeV2jǾʇZ  L=;.Gr;_N:I¼R(zsWa"=?Mqn$ iLlcL2yvƂFWQ.iq3%K7 ("([㇚MdT yG_T(5j ׀"_yCGPtz ةZf\q#Z'HX9fF=CHcJu*Gڨ~uMy)5e]6z8đQzYS鬃^\U&ە ;qʵvߔ"+uύ{U$^W{W{W|n4Flt׫׫x{׹vnR+u۝y^+^{8֫kuukn]S@a LLi,,'Z =2ϻoh&M#CE(׫ ֆ@oO*#+(R@SmyPqPE);]]ysUj!~rbnmsVeOh̑FZ8mn6Tƭ0VsxJŶ2$[rR(:DI,l݆{OhDCqV|`~Gie$Ե~h";vዷL} 3JEQ!b;X )F ;7Y>:TAE+$f(iY.4Ri!@OUj,aP<ƛ(FKNPƪ`Re_{wXv؞$ЮXT+΂,ϒdtdnchC*I(e|BJlb| >:qs RhuN1bۃ4] xӛScu+ OJ<)5, 0K <*Ԋ2v&eMχ~E4/2et590׌ېirDӸp{g *5p7'o/r8ȓG㪘z)GEh  k3Zð[$ﹻ~-5e\+gNlY>h { 8?& K-VgLV4kȘ[FhB8jhzx 151b?Ņ#S@pdDb Fnw0ZɡO.`q)R $Q"4ߙ2I^Ss V^Ia36ۗK{x %y (6jɨ$8v8/IT;+@.eh;~ `5u §$ךq'm)*g&@cg-BF+WRaPd:Ul}gBxҔGxz*nч n%MƘaM,>ChJIPNƑ Ǻ^ J{;(u_(WuZ agb{VӈZ2EDԱcT^`HbOyOw"6$hĺKй pB[o~!eϊG*S* *+@$y͋IN4Wr\N> pGےGL=5,qTU%ϴ[4)Y襏L[ qZ,Q< ܷn]B:dRh~YS#C O`\7m!X>4cI$UmG&"хIc~^{xPF4_ cCFUIWo/)*#+^ѯ=Z_Vd%+^W( z.5Tl׫^z9d?ǞEc˸f91*ߗMĚjź-BG+"AǨ/ܘ$ӖMi+ X)XR]Ut8emXF#ƅ,=N%P#6rHx]Tpk>͎ܓ~M^J[S0X0(2n .۩E@s]Wcvx·o╢FXM. :[9cUJ̡I[33ɸl{w=&jPW&ۜ ̻뮖ǖ։HaYf`t#sZi;nKu#[-?_V4:ߟ2䩑Q`,EԜ*5/ *16QplxbHƒn|YVEIJ x!B۸La4Ah4˓sB:wH\7Gp(VՔc*"X˙Vmbx̀hXwN-LTK}n-vtz*za7M;p\ThH1K L,{{[uOSM$]q&b,T,k6S2.ӯ c[m4Sp[7|xT6vQJp$56o3v Br ;UHԝ>6mhn35%\"\?ZQp +1lUH#im{JOl# u.cTK.ҢK\ >yt6T p¥1@V3wox]jOmBϦU A<FှA Z)3veL\[p '8H; 4d,f )Xo/q]몖/;."<xtB(i8Ӧb;vm#\tӬA2)]ASh44ӫ( `^If{N W4>W7ȧHr7P6[ubLt1`95mhwe]N4:}#@ZL2⸒E^Re$Ei 7T\0g{N5pM)BlSެKXMD1BЬn!Ԕ$`I4JU:7MYl*G1LüƊ?uE.SorR t6UX"W ͺ~Q*$׉#4EDT*ʺ8 t;mN׵f][q뤊BO=ZZi&R~? -nÑ8Q5ũH1Cf'͇U>:"A RO+PRXYFq !Tm55=G i_EflJ)T͙7I YQkxq:I⦀Js̈֕k0&IR/ @GjZ\FbiPyk~뮤暶m3*}EC*8c@5Ơ`0ʦ,R3gyv :T2^=Dfv8VɱB3F qfNUuKG7*~0-\ɭ#[|NNM?E@ >=Pzjka+[oC~:4M'VP fQVGE}n X_[‘[ ܓuVGSX+3X ?.2"w4&4΋V:wU9H_Ve#k㵺ʜl׫4"Þ'gz{p7!.[Co*LT|N@@;~|EX) oR"JհU)mi~iB*5_M5=b0(S5ym2w^VrE <ѯ iY9 S ۶_m6u,2DrE"5GcrΫ\d-C0 * mG]yZMt]jsJXwm̠Xk[*v?:ePȻ|=x]P#m{ʒԹU>P_)d^/sG04X,2U>i^$U] X ؀O"4Սɗ |u$Tf bQS{7O5y&'*An{s+ I1*".t.5"))E)hCk'z*.p%3Qth~65xŗ0 "A x[ÍkG'ի~>g5HE괝'a+@۷}A#̑½SS]lMGߏ#4mX)jMU2]G]N r ;ikm1z˹}@u:؝x/&[>~) a0BEoB>dP}൞u# o§H8RA(ə_)D?B mr ;[RfPy}Xΰi$=Vpx։BWS%Ua52U [}>^f^}~NPʾT$XGNX'PaN~D^PRWa'C۠eko<ޱkE:KNge7t_Nh?ݙUJ\jE3`/aJyYrL {7ssUEhJo 0MJOY'V&ܴT(U=k6 RkJ,,t =p4NIqw%A>$xҀ҅4XΆ\}|ƷܪL; diݿS:!#ׯTbh}{% 坘-w )+u{f',-"^Hpө@MHƫV;19(L q;htP; x3L26ӍWHƟpVJ5(%¢SJ hqV\kǵւi֛6-cǺC9*+vU)+LqHC1Xv؛iH Vy/'.=1y K0I83UʶoTd,Ym{b8m1y>h>uUi˔c/" hWmDIJ6đ'_Gb"Z|~=^:3G TU~C1I$l$_Õ)MA7<i=* oA*]f=7ӯoo)njivnwש;lMn{~sZkICx$FX_; fDk<,>>njV[Zoթ`ӒךV)?ǞV2O=^8U3VLժu^ZH6sU5LxnX՞ Ie7t咢"DQ}Q!"ڃpT;[[^+&#ԬSo__yl kbXܟ߉*ӕGǚR*|BAekǗB*M._ԅ}^! m@tSN]`: Y(dVA}Ksaz+VBon6;Rk]6M{ezjseYkkժbhV|0YRgH$^̄X g&}elA*۵Z~S^P07ԍ 'Q'#2|`M*lbM] @2~ p-`m_4)vʜEXϯܛ5x޶ْhƊ l¿<.jr;,)R $yRjЙUS4E+Q@rNR; PwiM @5`QD#v Џ,n=;ݥjLMYi 3Yb̂ÛW4nVBvz\:r+^N61VEkfڸ3R&=. mXl5tZ+" Zo9@q+ezEE,t\ܟw6bX#**qF]iTxS{`x|mÞTL7Fg5e, ]OyS[$dGxd5M'5b9cGmIQ *Mv`@k\|_83pb/+z٣b _ov碼i.XTr8Mzi_&M[:q;__@[Hx%%mDTM8LVSe[>ʄWe6崊?dp qP~q1RNpkW cU-s랯Wv; ($iqg5Z5~k @, j8V2ImSoi<5e:As5V^Tb Ae{IS48I@µ8ןZƽ:TQPcǤ7#Anx rK뤐B"f1tߗ P}>V+8+ n&c,a*_r0=۱3^)Yt4Mv0LRV%#_Ex*mpmXnbn\S䁁c`"4>tifNZk(7BsuU΃4kU½]Ֆ-G+ZRk$g^V+%=[qnnh׫*\–dѮ“x ysq[H7NjywW|yvnj^&WEzV WeW㚯WzlWjmW&j+sU7["R9nn]_W}uVw75۞W`kݹU򵹽_וWo׫zyx3G ”ttѳw"jTy^oOQ' 0 5ӚԺ\,˭ָהE;P` N=SVPj0Qcqbl8vSdOx>m1cmNו5jQ&4*\Y.,.[Roh[5*bUjIRp}4'5AJ֩ZUHP 5VabaX WXvZt&|A:ۻS(2K̶#s }w5UA -p/lx O7UʬbRӿ:ZS5 Ye6_C_V?PHX"U,~D׉AATd<ʬ |˽fPnoeZf>,Moc]y:UOTu_ Tsȴt OJjԅ̙VAO`{}XEkMk@^qo4r7瀚NIJ=7]rhX=ָ M}ñ|щ$kSP+t~*j 1lT>s}R H6N۟}TC7MZ\,n=BE&] ^yiԮ?.*M' 9MۛVNzeM=[5.zYW7[>[ejG׫4f㕭ȺjYTXsUȃNx׫|z!8rFךkՑyO׫Io<֦rx=^szWyy7^#lc~n]ߞW[=ZĄs[k]u9x8nz^z:R+7^z^w5^ szWWu~{ez G=5=,ySZsb^ڛs ˞WtXz]sZWz]=^oz=^{W4qWr9^Mxs[kuВW7=^{;yqcWGN{mz=^6zW5Uo:stՅsq^oV6~nEpsnz5j_]y^5ߞXV);sպ5Zc~zIʚaV 4uQV?nnX%g17ͽ $|~sB]z"}q`Ok[>h^zL O8 p>~WsumnV-5Mh9Х,muùj&Mkk@mQ/ox0χa͉dWD2YW}mUAy(+ _쟧́3Xq|%IG)wV b)4ku*qI<7Ϳ.։FhRʜkm1>eɍMSnw55,h^3L+#B]Nש+tޕA ړ?Sjԝ%MQ4HMߞN4Qy[I3Pi*NULx֍`.Q*SkS-:p9Z@;ݹ&8Rs#k߳ lhæG,evr@Jgmx|X|pňR.a952Î%3U*NT1t'>*RtSlǐpo XQ@7⩢*jrպʚz*D"hT }\lնVl>D u5Ie:rN ӒWeZ\|{`ۚR"tI'n$ ~8Vi0Bȡ o+`j$I,B}?M{P9.J꒕K Z~lVHZ7 +osg ':vta㽿S^Sl1/^K~Xօ(pl@ ׿ۖ^# ĖB_m >"P2_eÕYU&T{?g,5}Os5[X%pjj:4sbkxW935U"n`ga^lU&jjE iǁ0Ik}~:r5m<β@wGG͑Z,RDL2p [icCkv7aUN̤Y{]>k>ZhWk6Ooa;NPjT|2Xw!/n;vtl 9_nKƀꆘ02#1{}^w=Z)7fFqpXsM ۽FT>zocXaZ4pcHP.@ nz+Uxފw[߅QI?ZI"}d 5[}]/+qJ7dB2o6Z&ު0FۙT{/o6jiT~V+`8&-P^ۖ"kU*0uxksZk5÷sQZlU"[r~?_=[V7 O75\䌶Y_ 5>h.xg,0^8[Xmt\SiiZĸw-Nyjewن5픪 Y@k_s@EZcX|O;9h(3a87 ^GoחP)v]tr{ܵRy4\_WLRF='Of0,{3Y7ks򠊹WQN*ڱ tUtvLGBn@T")4l[T0H]-s­Y{\>n5~iXՆ\$=4% `5>7LϘ 81P D/-{Ux8qF+P7?+z5bP)uy5UINTbhT&kF)r+6~\8҃LmRҲ{ErMXz P-a"1\0ļ`H[߹5[[a1t.PEh v#ee)V [Þ v+3C#] aaXҧXGYO.M짊E.!~9tSoXFfħMV6Pxi-MNnYS=^kW2w˛\rƵYFz/5ZNz]ǩՕ u9q\XZjmmmWQ^TQ]1vVzsusuq<Ֆl@'*&] EF6c刊L,VE_SߚM9O 5A @><ʤ |ǰq:85sIc`nXu>Û5Hd@D`f b}fYTɿ0*d*H>Sal/o5VO%Jlcr_M+rP ro:xxG-m4%Z{ 99o1-ܟµ\gt4"Cy蚭$:p-v/VM-k>7y5c2rGkv[_9" gI/XV VJ̬-Z4sZ%+ql5襖 $^5^+[X*ߵ<l>з7^eaQmB藺o׿Mhʌ D%UrH60EpzO;#xX su)5  {~5B_# po~xaV4͎fHu^õ +M7aXkmU?a1Ԏ׵Rr6|IG*EXSFdo}B5$oʊrsߝnOOrѪLTscު X{t`V6c \)>+ڄR~ ªCȌ UI 5c}5+鑔(o{}l'H7H0YTv^Ljg ɈtKqM91L,NkK4[O.AكO榆!P@ CA]SdrYp uXC85l6MZE6ҎDX *SY0,]5sf>$qʠ5Zq~ܽXӝM 򽴹Ʀb X[O٬.aFӎiXlK3b|Ъ/V_"ЮWA4U/4W5u;f*D:rk2 n]u Ƚ^5!MVEW*9rQ"z\\W$עXEV+U]ߞR"(j9Zxu࿭w=^nn]ߚqV ֫mMz ~n\Mz=^^Wwۚxy핪X׫s׿5^Wn9zEz{uW{W(yOW=^ ƽ\~z]u=^nךWfLWmMz-nn^wWfkksWj+n"zMq/Wm׫Ďj]9Ē;sS׫+^V6z 5^7^i^hnk݅ /W9q½]!<ѯW kܹ cql=Ѯ Uưɧ=TsumUƜnۚ5ڎzX ZbcEbߞG}ysը.uQXǞV&uOwV5{j4zp=UT`+Z=^TynXˊV9UqD⣆qUh4a\)*|kBۇqaˌjՎ`](u"j 6_xKe;7ק4ZBOmlV_OWU ^TS`PiXi}I妼=WE"/bC }?41Ep>oa~Þk>`okt~<تLt+ȈF~j+Ûjq2'a6_hᲽ%)b;i׫!8ᮺF2vqJzr[_<|UK|z@H?۔"NXMiVZ%:) P@EndV eR۴q%E-6ى'ox>tkRr} 7M6.?9U`1.M4cUqUq9R*6>:r.G^Ӿvb4Ӗ Ը|GfmcRΔrl2%M٘߷ÿJSvUZ?~>ÞP$&qJ S6IJiExk}_=V"P+ 5oשv{?_kO8>sZA :_;k`ӝnv_-ɻx ioaxs`W_dSkqNLRssTRH{?&6׀xk5uY%A;V{|=#eZ)*Չ {v~\Ҋ-Q~5HUO9pjaK[@Л܎|_o=[;8l4Tw6q|8ƯNbDwNgX fH1N'Iۨkq)OsU 8궵Dz׿O(*ÒrѮF=tݍ[sգS08p[,5SA22DߚTzL~ˎC׸RUsl۷E^Q+Ȯm_[{~n+xɅآ$>4OKBsܑkX#8VUC{iO5ZZ5ho?g禷N`ҪUm {j}炫Out44&q 5$<"je[qБjEs$b# SXh2-yq0xJ=,Xjf7#H[y h% l<ֶ2VwrM5vRl וUc%I4\}[̈`;h95+䷨-$|#vMyh.%qT4ڌÖa2Kv6.9r`ILA{|TE^1 *A/m_没7[WyfCVn3\׷-Zn9ZyN59dz^ZYj\5YNzqW-5ٮ5=jz+jÚW\zzv {w=^=^W s=q^n\S^l_77Z_W`U9yNWVvkuInZ]5^75>z^=^Zz.9s ~j^׫5^susmnj]s뛯WwǞWNkدW}q'WǞ5כW\zmW9xsQ^=^7-^?l[+nzXמWw7碽]1扊cS^o -#͊t ^nh׫sW;A=QxZ˱q Ri/cԃ)MHĥHÍiiQk|]5$V9kxnQ"o5lm$}>}|׶TLXTSϲD /k-(.Q58:̅b#Ǜ4欝HJK籪&1l%9*kOAƵ8҇ŞPn{rjlRE&'" I17^G6fUp%@,66@l)AUJHFV<;#I0/#- &ͲK9|y_Fۿ߷Ö\r6GKܦ!e;kMnԧr ~z'U1g_爭Z}Ixҫ,506er{=nlՓXE qwݲֻkkssµƝ1lۅLf*A[R<5cP%k7HLGP $ [qj;@T84R/NomuRǼA<4-\rҖ(uomo+[i;xw&J Tnb*wZw?nxօ,LL o9+fu&0F/NLR/A>Ҡđ=Pқ/CJH'@/NnkTϚZ))w#aA{LN4g< @,O.Mh~`{EU;=~T&MwJ#gVtS|>'5JcGcCZ]5b( Ce$vn\ ȩ4v79+_YQXCiȚv##(FlMk^"*;b$ 0b.\|}g. m2*2c!%@*, C_ q0U`O;GFcNX#%#Hó~<ע*M>?qMY{{yjTN@ GonÞ[N,#XJ{v'㉪|1eZ|G~VT0ؖ@v[jM +ij?I" ?QxM8`1+Eμ<&\ؑշ>kXV6 ~֚tpMOz_n"`TөPEOxES Hܽor&zFUbƼ*uT4  ^8JOK= {e4e32\KsAS^jŲ5[]+1[SeHV#N{m8 pڛkbUmJbk6SFuh4${V1N!NGf撪T,G%dR[oXitPR牭O& ;u߿(jԤ鼵`Úi¢ς%$,\݅ϷAQ^q> -}= BͻXo_~zTjWrt k}zoPdf_-Ejg ")SpI P}HIW!bn~keWm5tU#w[ o4[IcB ERJ<ZǖgBx}<ւfY%M妼i΍_!hyبY7Z=y`5y1 h T[[\ԏs`iHtȠ i=kAU.ԥR߱W{m8< } :_QXiӅ8kS],E3\}+D)qXEƽ/X0\"ڂI73UIRʥX!'^5zAbX[n5&ʱU@'͑5iI A%ɺ4<5jc,f$o/U"ؿȑBC[>oV!AbosE80$ke6!)R7y"]ONʄdi䊖 7 _Q4ck:\6ǞqMq_$eXmH~w<h VCkvLjH}?[rkpk)"6A Tj m=~ϧ)iʛ/AQlEɵQ4Nbx[Lw'?Ӆji >(5O I~Qc5jO] sU5 YVafmuϴ9R*]LnTaoͥ5+,8Ԙ>'|O<+G˖瑢d<X*EwWKV7#R,?SjkQR`RZI.=-o~h*kq46%AV+N"C`x[[xx>=91N:Dj:7{4ok°f`Y# Aوt O*1)!}joxvхPB"|)YMk9iT"))׸"eR \osViSu69^'+`M:*R.{{{ǿ*MxW z/ IPHۿV1}jJU-6jj}6>f 4;_EZk.=ڍ~"kB1k~Ǘ1\ ԓN?1+Ca~7&)VXÎmvR{=-n& 5(~r_H;j@ԒVT7^ӞWz7~n]sS[)('^zanܵZn4kUxW[I禽5Z.mU5Z6hW:ը|=h i@+<@]Q5yOv: E ȦĞ;5|KS`Is5Y =M,3;װ_8REވn@67?a[i4lH#W`Ћ~حbñc1vV`K,MdqJѤW]{ֹ >?Xӕ)qgrd$ X>;\H |^{ih8ԫF^?b^66' 0卛wYFb"4]"_$/a4ߋzz "lA)1%q,r 6O ʙ%[2H:\\q1 Ksi V4xR4FkJ̡0vD,o_~x;TNTtvt\g}?]9b"&U'Amm܍8LՅM6 vkR)/_e;wӔV2(HlBYPQ\TM c m+rcU#ÞSi꒾Nly4FXĄCb@[@T,TƄߺn;-eX4|O~T:QR,Q3[ou9iw8b报ݵ$:mFb9:v2Gojz4BPoaDV_;"BJlBOOꔌ161#uv q_5h 6+AL#yTcuo&q;O`n7sWT$X_osT8TZL-fR,6gOrA)Cu'i` ׯ&)b/C_yͻ^cyZ}}}nhURI,IMIwusp+EFfRJmw͔M(gRXh**ƤXx'+ nֿj4·kۖV1cψ9YkXfs6TEܛwVwˊJ=a~yZ5v$|9i;RLHrj)P(:[&Rj>45rh*5W)3^BnONJi!XZUiAfQq2Pǚ"P LWhX h٥≤nYcՖ>zY=Z5ϞMs^XWrW4kƳGMjksU۞W0u[^nYjV.qrb+5nH`J+z+S^^锎n5nkmV릓i墵]nWn]sƽ7+q\Zy[\mS]XUݹzzՌ9yW+^UsSZ7Z_Wznj+w5^ s=^=^[WWW%kywks^su=^+q^:rժ{sUמWs:s׫mWiWַ55盯WWۚW[uГw7UdߖWnhV=5讁XW$<+FjwW{9m+RytINxpj*jr7~z+H±ElӂshS2a[N"Uk"chǞ+VGR*NAdku}T&u>/%#Φn@מTz0mpul:yhfԒ|~gMj)_BeGr j)sPR} Í)flnGp5ji,VAuN;E#"wek@T\S6RpnZ˸>"K yc^x+$b7xy]U5h߷*\h%Ck}j֚fr8 [msdׂil)cf yAV5R]RHm;\j+t2!ٯm/SMn*= J|HZ{G*Sy6E tuZkf)vKkq{w:j}sִq0 ?Lq#o65+5fCGw36݈涚ɂfz9]{fƻ6ʓ0jcj [ӏMR&wm8ׅN±_xʚY_jk6 TKxȭJ| zXߕ Ɯa;Zw愚b+&Nk@SF+4ŞERڛ˛^)4 ѰCu6jS>Mo O~{[Y F]lOVJ*1 AX+JEke6fYS哀+OjҒpUM{ L8&c YBxƚPH0NB|xV5h;,SU ݛߋZKDm8(hVhfP@u=O=U8>lW$xW5krjV~j\Zdl7[|jW0y`jW{FsUBnhaJMsEj~jky{ez_^ܵn+Nz^Q扭E;yYWAy^aEnkG=Z=^w5ĽrըJyxժᷞWVu۞Wi'5U57=ZPՅta^57U[W~evXs-WWӛWrmWכ׃U)Vb7ZsxsusUsy{AW۞W5^elxWqw[W ipcs֫z^ѭu<+ y%כ"]1͊כWNl 5^j]\mVj+Uǖ/͊cfxu+7vTV6;y·5J^ScƪՈ¨kvz8k{+ V nߚ'ՂM9c'Nn+LA"Pkonթ&7U BO~l+)9IϿ2* ĺmpOsFMhTэhn$o o猚nΏVGȷ_sh -p뮼$Hɴ1iX{Ǖ[E:o~z/Ȍ6@{F*: M{xUFfL.V 64漫ThK]'lŬ<]ӛ+w;@ BMb/{<5b*! XMB>yXMp҄b܀j*ܑ_eUB-ߛ :|9F\<W1ĪBEhc1^TӴl64t牭ԌUTΦmqEl <P j~5hzr=xyiMs˲ݧGr©w <5z{\lUHb9H>5J86,,}ڐ=m)Y1nR&Ćj6%5j&P+1$NÛS`ZhO5i) sƼ<6[|y]$J'.PjSY%ɶV)-*ӣCJU|O.E'aqT3"iAMI IO(~汢K8뚋^Yc6ՕMZhW>n\ !5UMnk06Vnȣ^zX\۞V':s8扯M`csW'7.Sm`sU 5fնXQA.7`<2JXhZ)c\iP*K"86?9U۽y^8{>+s^4 ߛ&0Ϗa#KP<k~I/6T۲SߖZ\FΫg": 7ġ]׾=}]ydҫXL\o5'}YM㈓T$T!X$h[|<Q͝j 73nԓrjY+*iZ4ۄKUVSenX9&V{߿񭂮q5:xm K-ߔz Q[)0OmZ\򕸮-^`x4'ldGnke_mp˒K4Mx o 4p5V zʈaKv{+̮HMJsĸcTV& nH^V. @b_>XՁƗvdu(x _fVTfh1H;<_pSO{D8Ui 'ɽ;$|<-3TbpG8 }$r5|,;n 0GrэVOC[AcbG9+4)|mHyhRSɢjҡ}|aMV 5+2zÞ>W r 8D AɃUPTn(A$ܶ"X~`o$ӢW/Hv1_+dM6DSiw֩妲m;kn".v<ݕaRr3Z0u:b6Ӗ*o-ʦq<*<{rj* V.{ܛv?75SS貥E ծ&͕Vc&r2 0<թ=0WzI\֢ۛ)͐keq^RKzL1# A|mZbNpIثС =EGJf㖊4ՊuYT%nbEEZRmkAȚTR$Xr+mڏo=ƶi.FGۭD>#LK¹V#!{=?qvc^ƔM[1nnXMbs:X[czITPY>yXVrac{ >lV4[l1R_BRV ?G*Xˇ,wbksQ^ A@K r0MpwIvQxJ_R]m&Nf]5HUxo4I>doעj<^sxֶT< 4QCi݉ z)i0)Oky"v R(P0)0uN& Po}xqfH.q|8Oz\4X<?teQFQH+"z'7Zպ̇AVdksb\^HuTxM(vMeC@ەNz^j9^5-TչVqUjBn'rt7u~z]sչWl{mx==[4Vo5^-^V[xj6UߙqVW-;yWsS^k9WLsu;5j^CNj]h1/553۞\KyzPh+sժ=5=Z;]G=]۞uVŰ$7Uk3W`_l#Mu ɷ=Z[SMx׈W}ztǕ^]-׫[[m֫=^aW=s׫nyyO5^@~z^gnz\o;uNzX{4kFZÞcӛsZUժVpmO5ZoWzXkՍ5^+j+uμ·XߕV)دVWUn?=^R sձQ=V/ߚ51z6zI=Z&oV`~ZInjQך5SAߩq\Xˏ^ Paj5 kH@? >U;mkSԖZOcU~$|Smk˔VPa+ moʚ N劉Mz+ X÷ǁRΙ$\j*2`QrjܲRBݯ 5W :*;x$¨XX;G(Xb5bfP{Ӛ)1KL'>u;y芴(` yJ [@cy5yvD|@PǛ&i吝hGk;q$Tj kf(ĦA{X;-щE@jeP>(>Io3Z2Y^o͚6>~Y ^ܽWe$dqpqR.tm7$U1N$BȩX~IÅ\l4#HU{7Uq)ȲHI v?>jI @]$w*kMCã гNۧDi9_xTcc b[; oMhzʘ{28};i5ya@@ܸS:ԵG}4M"7/551V)%@a[pˌHXj+r%EK%7^*C.B|-hq: ^F:(r+Թ±˱j"ԏoAR>}<{$ybۖ^4=L-A^8X0ԯR H/T677<ѳD#'Q}9p+uhP [ǖJB{ij}52Ֆl65pfiT3waUUr/0%GoV( A\悍n+&,F(e'{=_ czY{Lşkv?kƱSFUAֵSN).!u!H̀VfsI1ELWƲEU6 Y{G-)p _w< u M94RUfe@v抢Hrr oo<=~ #Mjz\2bݻ|HkeL XÞWaJ\v=Yex.HWM+ZSP NƨE*z,qff6QcU4X]> @ogt 0fNT{6Ni;ks 8aIUKLU4Ц?d}8ɥI1R&~'jZgp>Qic .~F2Cb?Օ9dVЯW47DUUfnkX +k4'^xb9IV@oW9xsb\_WV搆eԢ+=Zz^wNz\ z5ɉew"kj^ӺdYc9^^.*{k~T+q4їrd#?g[[>rII*< WPu6EP`iaZ']֓[i:2$@&w( vێ`qɩ69=n=< f4q߯q3PP߯9ƼE1`Pn O6L׀Mf\I+f\* HGRH~iU&nHEYL-?yוX:Et֪m&kP0Fa_Ϟ]ᘶ*8os )=[ak#8k ړqqrlV_;bsUoܱ5+SoJp*E,~n0!>^*'aWvdՅed|P+]afdJ؂{GMTMSaIPymRUeӿj{m<."G"F[oog<+t0bRXr;v+FeOU2p`A^yI TR+þUMμ3ZQQ).uk ~ۯ5bPT%~%mTԗZ6sP+{kA-X ۛ ~iXW5'Pv}\֦:4AٚPb)=GM<,2Hv:v#YPETmOD@Y}'S5 `Ii6§b¢_s`ѦO+"ݾ:r+SN]tQbM+OsRT؏q瀎5kP,$7k}sμ+)3;VO{W6$sC Ɯ$%-'ʅU.=A@Ch ώ M¡5ROemʜxVi&`A媆Papmcȭ Wx}5hkNLxXY=/7 )1|}Ē;0>KsڀxK/~dWMmuxjJ, sJTE4f 8 G'* 2bFuy4U\ QmUhd;Jȇ^^YVzydʝwMZ+[mz+R\VjEJdz!un]c6>57XV|fJY.Y@sj9pjxP%%@:ƶU"5}PZB{u:OnjaYO҄wƼ),Yuo׫-.*&ᨽǕQm0 &ܛ/Z&)|f|vc6N|y`Ԝjl"ÚX):a^$;~Y=U'zyAHH=B+tхbX~đoeg>?}o{kTVR;Aqbi%[p-4kt(5U qs%%4"!Ympt}t94d`{EzYwv֙6[J<_T^Zekg=A^T8B $N@㈚JS>] cBXע6pE}<[41..JO5VHMҡbH^*͍zh}u?_ +F/͇^<\)P\F)8 9U' AZhnaJ㛐nAl,H9V}1Z'v[+i:\׫97 xo([)ªjv;Ċt7%C?$DlH~XMZq~h*v)RR9@V`~妌q'͐:kSYl키 NxGMhMuAg[K~\|*(ʑi1,h|,to10W ѮKj,@PPh㞯W.^\կW(ں[i3eUWj쥞 ʱ`׍Dl@2ԝ|/˃5Xj|j0ob;< xT/ Pb,7 =ש7e*ڲ[ʐM\x}_W-3^X%XUdB4|;~oA54BAךihហM@Ɲ+p(nKjE8a~G-_7 c[0# ؝>8 cKTK9S[8q~ܱZ,UrUiaʁbf:%1L5Biֽ͸j) Zx xqfS,M615q%H[q@8PEE:LێM\$b7v)' /x_rՒYIH h~+ƠWEE, 6|?[њrh3m9ƷOxDu؋)<}XVɰScf{s¼iq*+Hš&u4qnXM8?$FWH ,HuμMlaP2RHXʑ[L_-I-{۷5[MȪHwӚ" B+ܛ_P}XL/VJ-{7"ÞU)͵4Yʩ5pi>TPdXaZ7Q*~O71[^~Hoʕ8o1f;7sֶԌ'b^g{o53Z*seZT Eꦼ,e3,Ǖꦬ\( :xkq6xaSqEe] M>ظ[%AosvֶR6bW؂  tE94+l sTrƲ*їnQr7^xc[5Lvang6~Ьnxهӏ+f!?S͟ ZicO6 MT?_ʊ>eS"[6k[kvKx_moDl3-]W#jn|,vd+P eV  t.QNV8wO* n&`m]R[ nO*M8υ kNVkX<.Ym @}OR£^$Sj^_ !f;Nڠ˜ mz*ks5P A \wjb1IB^_ǚV*+jH'vR@ڐAnRkdS'NjnQn`kԝ#pSL֢V@jTimrld梶(i(pPXhH45ie2Yl@")޿iAi5y&j~͹ܪh؄7${뭹q^Բ,AZܾʤTJi"۶T\0jNU[M>Re9'[@#R/t!{{9pL`Tl? y&kEz7o"+Վ!f$R:ˌjw<NcEFxJu"E }OfN1GF! (+^\W4rժȝeC{sY=Z|x ;zȖUs#m~?j*ԗy~FԋMo}{}|fpu4ȭJBm=z|)n@.}I"2{&v1sb~?Gn^EfJ+[ .l8# d8$*7/mya5Yh줐{;rkS^./{|9킵5*o=Jma۞[&Y^\nl7ٶ_^U5y1 qbo^EL DZۮNIw Ӫs}Hӛ^Lc2ojP[TXpMp@E{R& V l I^[ez؎^c(Пx5xCɱ6om'l kXEZӥtBr@pCcqxR2JjXlPup'SRj|xkVak]t4;VU6XhÇ?O5AdðbTudx ޿y&52\\q^= ɵmj <ЭӦA[\m9CVW-{qyS6!HV}\Zr~ӛ5)GA 1 =zY5[\˿7^JI˷=^1cʚѬ9s"z֫۷=Z8W oUzAȒruU۞W+9vj+ӞWk!nzٓhQ^^禽xs[nkupyWhMwUz9ה5=5Zպۛ^$j^>z\FsU=[H'5˸[Wny갯ZnGyriӚWM!noenZp{saV,=Uz+=UsU7Z+WkU'W\zG=^xsUxkWu1+ۚ+֫5\ڶמ׆j$j\XߛWpÞz׫=^zQXÞ\O=[z\lV&j9^[4Lp劫Q\]5mnmUXsS^5Grken9n16ՍzӞV'j=^Lպ۞qXCVnVQanzX\=k UXnn+ U+j9-EzEK<4q Gm"ijSr ~<`^1}0A4aR#`6ŸCn"1aSh̃̓ I#*w6+Fh"W~Џ偯E?>^# :vojj¡5 ήy[V)i#;پχkq̩Fa)*$*y%"=HMDiUi(}@EPR5n6oÍSǚsSV@r>:[?WN ƙ̳A۽\8֢VM_t2.|8ƷLc??VO}t`*MT!u5xSM i ꬴyɯlFƀk۵C[I]2]$MV+6SBR[9V&1.|{^Es|+l:1O imO5VVBZߏ5qdiXIkWBE#V/"G<ע o Gh'^xȧJˆ"_M}TuӾOx54 )Ux˛^cmϸ v4I5FLep`*\XB"o|ykbE:Nlϸ-ExG#{_hEqyz+{suZ8z#Im".~\[G$ ԛEǞ"= eT}ۯPԝO6+f%fHu-},;mT\Ƕ[ʑ[,-k/qr}n9&iUUVQ`Km9+jV+,ǚ)MD=]E:) 0'nN^jc(YAՂ>?+ƭ4Åd:_/uѻ5n &TXݭ}O+3W8T4 5d<HME|8$iT\Ok5Q"`V pE8Uƛ>?R1J_A;Nc^z̳ y%UX޸=g405'+)j Tk<ٯ g|%jNXUgp8{n7']46|ɱr6VvVJ Jc"Ny$*> T5 ȚCgQ}IZe X 扫)SCp6I»l<%-kjy8Pҿs) &4)c|ANe$R <_D2+V\SW #_W>z=^oU+* 9r^z`b]yWh-֍e͚n\zsU=ZyrW8㔢WoVu5^s=^svs^^i檱\m=[n<zybs#t4FrTjke*{ %5bb)=5\C}|tO6:kDN1 fCJGէyrZvijD*T@M1bَgm;|=q#mTǏWl"ckIM]9`"M4G%BB@+\wru~_4qe\n6l~_omMlJ@bn5ykqXyImyiE9PG ?H'ǚ zijTו,/ RyRu oa劫QLؗX#E+;KT״j4aߛ+"N#QdRc|x"j6+*j%K,Tj.|}*VȤb̩ i*ݶF*) FD ;5)Yfyĕ 'FM8!S;SM# J@刚Kgɛr$VyR}./ޙAnzFڠ/ĮO aɑ+W^Q&jˀRScc5qY*1 J氊omVbMK(*ItL*u ,l7io>VfY',$Hò\i2G h9銤N42b>?ZXrĶQOr 9RyRġjXtTᣍX#~ܚT/,*S}cq7z"DDc 0m~ @rԡoi4E--0Cn)&ܠ qUMM`q[w>?ܸSLE.k ٯT儭Ad+kY BBHԑL֎3~Fs{^j"B)yϴؑmxZ#Ik`~1oqۚk[*qgy'Xv媛)TKUl}DlLӎ$afNV3n.{_=UQS$fc'>h+Gcs?X*gk{99T4p$/a+13!ԟ)"KsכV,~gkǖW#&u6ܵ4 YȽ.!:_N"v sK%.3ְOx4ᡴH]xO43Xl H1msʪ+Fwv:qoVC*ʤ" :&2ۮ\xixsպQaml}oMnRcFA~sʤ׍'x91UYi3tƭo t?ajiP؈_.Dsc5W;KF mSdlK _hPv?Ɲ4SOBnW?1,-` >x[ϸn\lQZ?>oq ^7>=XaY߭tIFs9+SMuF")#k|Z8erv~^>lMzhlvF ֱX\*Tꄞ7W`=Xd;Uf*yW: 榽54p{c5Q@4']yjU&MArXM~!TD:i˓T =I?#c[¤61^~o^okݎ÷.TQFӷA䤎nlc^M`U)l MHQTU!<µW44M{ez qRo~^bEWeNT"TTk5婺;ގrd qS# "2-ԕܭn5^W ^\ȷ=^UȧTW%j ~n],+S]NzY#4jՑMrZW5mVz5^Ÿ?5@]+W3V;׹=^bƵFVyv=^XwS]m])VQV渏wWW瞯WW=^i׫j^zWz=^WUvWDVz]Wyv_WWzWswWzWWz^z^מWnHׁ[MvSMuksujsV |yWmla^'`窵WWǞWt@X̓фtdN5Q-QVn [&5Ւ/vS<YƚCY>[4ͅ䊊l#oǚ$V1~TR>;^ݹE&qΚIժoˤ6\!Ssc(Of~m`xJ\HncMnDTl D+3ǖ)ZgL& rH!l9 ҍ6e,t4XUM{jlijVk"bNgon[Hjj5 jMZ&%ʯ;*jTxXoIAx{5ӛ+SI[+OR[wxEJYNnmy^|x.Nmrk5ӣHטL#/)Pe)gj>"Urt' Ƣ ) yx}K`Lߗ 1<z6p>fEU5XHAN$"}ma9 ^0a w C o*N"K)66qQR `]<~=aLcm6?ѯoDSC+@E7 isr2Soon^MuUP (嬞50^,1),Nxv$viq9j|yX;kQEZkNcI7AIQcnf qziSE0AB+VjL..3{;Xתe>\T$b~njT9Z2õwkQ\mc=n+U?*%o7^Q 5h!FKVDưU~o.+ƣJҵE58 M"$q^(TT">%e{~.oeF$mÏLR#}kuF׫$fj)ydr ~nY#u *kFny5뗯^x =ZUc\ƜPH4kՓW{VמW[PtnZ"窱\a^AsWxv]l=[c'=^锯=[ѬyW j+ߞEw~zq+sպsVzWza֫V4+SWzEvܽVW7UVzWzyWjo͚w~VǖR+7ZJn9w{s5Ɯj# oWz^Uz]~j\Ukl w=VVO=Z%sժG=['VzkK=^瞭wUkǞW9q^[NhW/WvSmzH/Ez_Weo4LVjۚUxWUvՌkBW(LիkՉbWkՌߖV'!Jer;ﮟ,+DW.}Fֶqyi*` c _"q9; {mXEMnUlF3bUD{HªOf,>Ziͤ`Aǎ$U JJ*:2Җb|=3[)ֆj~G(F80t^Jh,El+2e<-[A5q (^v﯍uII.Zbn">:}uhWucr`+ t.XkbQOMRYЂ>l )ɠ3iy L -4`:@T& /͙ICGϱsۧ,kXWx31PE6?W }4tؖU oI k.TKT ~ZfX)6^\%xcs~6MXW>I3T _Hdںۏ lпwpkƍ9Fj EU֨eʨbE^*f6.9SVΦ"[梷M4ԳE9 UvԑD8R=tn*j̡鯎ZiEQ5tdE~<ע}ہ=+ MjEtNXʌP7"oo q[Ǘ2mH/l Ée嘘­ϷM}[C/$h {MS@y*H,fX QA opHndWqk.XXߞ(ȋsb=ߍLa nku.[7gB;Mz))-$l[g?vٯW)&:e$sxV=hK~բq>Z*x OЩE,rc[*POUY4[A>#\F[] oaҬ* ,O60jϙ*u]J؍xEhԬz,|;*MxTٰ(7B#?+[LC1F*34szXRp̣QMV)UH}|4Uc -}yIV Y-0U׿r5:3SCa{<2,P_o.gSp rJriIS,,mM9SEFhw^Mx$@6Ul~S]lAߞ3fRJkכVJjqNVEʌ[sqU167#6 z+]E`V<ѭfEP{~9Ze1TbsuUl6UO^czHom4yƵQP FݙH?XMP`hR|FITƟLvA܁"6U&]O{-VMWQTVړ MG‹T5NhעaMQ?}ſ_,z+TQXR+ G(0x{H{^O5V* :X bPJi7U]lE PJ5oiT5Ls#E8KL4R5}?+qNX\LQNN6TX>mC9 K,,+t UݠZܺEiU'i$X~<P176: m~{Mnj3 kڪ#Kh{F 5+ t% XZʑZ5mUtF*5$qE< Iik|<9Y^ ӵF3;v*aĥ]7>xqPӦ)hohrmlT*5V*'*_ް6妫R2~&Q?()^:QarSdqK+`j;56SI@灊#Å 5eu7sc\dՔ$1Z%BߵyBOQSɦH¬ HSU1F+m(b-YӚICȆz/W-Z@ߛDZz!ӞȚj]u^墫\+WW|jkUkj}٭̇uzXendstream endobj 18181 0 obj <> endobj 18182 0 obj <> stream H\j0 ~ Cql(M 9e{V29'; ldoYn Z =B옃6*ܼQ:IܮsĄA9v'=ugk:{hdPU^{#OC)nz _ϨIB/Ldd+YM[z&et0Q2sb:|1yx79 U\WFendstream endobj 18183 0 obj <> endobj 18184 0 obj <> stream q /X1 Do Q q endstream endobj 18185 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18186 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18187 0 obj <> stream HW]oH|篘G֡9$`b5{CX$$&pEˤkR.V8U?g޼xq_ߘܼ|߉ ~`g3U™]l|LYv=Wݺۭ6m[n\r}I{524$7D4U^fKoy+Y}yD*h>/n]zQuhRlZ(2ynd`&3{ _$>sNJy>7 D_f M`$9QplIb$F,k5K`*KzVp{;^W=p>A/B/B/B/R/RJJJZZ}T#p:kAi%IhĘKXcv/1fi#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu$Vb%F,Z1K{ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZmZ+1fi#hĘKYڽĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkh6IZ+1fi#hĘKYy0t P1ևd8DŊ J+ U(hJZ*V*U) hUJZҪV"ЊJ+(\$,%1>-,вJ-Rw k,r/1f-{r/vRZ cRw X,r/1f-{r/tʒZ^bZR R  R  R # R # R R R cR c֒TȽTȽ(TȽ(TȽxTȽxTȽxTȽxTȽxcTȽxc$,%1r->f1`r7y;$iY&q g)1&y2B.7o%9Y5k"ȧ\gSnzp\mw3Ywφ ߷~7jk|?7vh>qz<;}{zGi!ݔ}F!̍z,gH.Mht)JF߅zژ }宿?,5#~x=JU';|g&9g88ޢLJu3gls?(\;< Ǖ}$zk~Ɠkƞ;XckC؉_7+ }g0r;~yWb̊ J+ U(hJZ*V*U) hUJZҪV"ЊJ+(\$,%1bYeZVi9唖Z*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ#ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘTȽĘ$F,{1 h{1 h{1 h{1 h{1 h{1 h{1 h{1 h{1 h c֒@%,c[ڬj9cMLa+oqoK: ]+sa*|wen++u˾^pUX9v?8U9nF?n:yF o|Z+s$ޝ?oEn}?׾g▄:S_}`Fn˧Cw9vN(gT$m3]y]Qg1QS l?]1j?xkcf2(>]*Xz2V֬'v@.dcl>]Y|x zݝM=ia ?^{nvh 6ItY'bM)JjDvt>=, GJsAg.nMY ll ^+A Vc-5\#qtROw ^?)D ||RFGv۠A ՟yCJ B%9^KTؐ< t?5.v ךV]7=NK8ln $!v]tv> pԞ,Vbi!z77ӡ304(  8ﰒh-nOQx TIyύtƪ^+܈(Q(seҐ7+x NZ^֝<}xyJ cO-[R"dYg5g5 i++Uӌ@+Zqs9847BvZWr'r?=D8ޞG zjs .]hHH%0?^#$>@.28J1[![+QLؔd_ 5H~9&(üU ϹWUdeY{:6maA>KǖSk@Y=)w״0I$nM:&HvlxF^v9TwYNѾ6լH%Cn !a6&v0YNuY $o~}+{_endstream endobj 18188 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18189 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18190 0 obj <> endobj 18191 0 obj <> endobj 18192 0 obj <> endobj 18193 0 obj <> endobj 18194 0 obj <> stream q /X1 Do Q q endstream endobj 18195 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18196 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18197 0 obj <> stream HWnH}W4aAyl}mw q2ddsZԒTo/]Y6ǧO_Nu/~|g<0+ b酂EUn ~e_Y]M]S)Wݴ9M`K'N|rȏYv.gW6;>ovTĞ{Ut3y|VʼnݽmWU;K?J䡒;v$^(2gAr'->;4 sz"L~ϵD@\8I`rKdbȲ31`qn Y2sn71` B BKBKBKB+B+BRK}@,!>ԇR#K}D,>DŽRcK}BO, ,'LkbkG51dM XkM YzCĀEĐE\+ךkZZCr \kb"[kM XkM Yz˵p!PoV51`51d- µ&,BZA֎$\kbȲ՛ךl&,[p!PoV51d-Jµ&,µ&,BZIĐE\+ ךךk%ZCr$\kb"\kb"[kM Yz˵pEĐe71`51dM YzZCr"\kb"[UkM XkM Yz˵p!PoV51`51d-*µ&,BZEĀEĐE\ךkZ[;ZCĀEĐe71d/I|kkyꜦ`K'G}`dq%s7_o=ayVu>w1;;xu廹+O]/nQuÞvKX$^اMs~kOCf@4c?jR0Wy]uM]0HIxPA QD}#jYQ]şEuàբ<R`i>C/i?8x?_TlbogW^- CcEȎ^gqТh3/r܁G}/˅i),xcT0ȥNxf>oB@|Avl؀M:2uyE73z1"ߍy]ןItGհixR픺+@djϬY7YuzԚ()6콓 ]/2wSv}t>RJ/I0?Yut.eشk>&Ǭkݭ {]u(` ś*4; F{ݞMQxWV0xa~ɺUeg=>u..Fx %P_[*ӈoΪmѭV6<ʢ,I ΫG^#9F-  RհlXQ8crF ,?5΄?+!|C58^ 36;6׍nݭS^LJt)_Yl=B N  EnηyRSv#$;3AYgx9Ut)l00=ܖ'TƒDC ^Bl/LEsc>Eshd*/9 ur1^ה(4^C[q2ۻ0jB^E47[j/F>|ԪBb!_ FI|$D„+1C*]fx)_(<< BivfG/gxȥ_oPzO(FgTPTXƇTBޱh!EYW<00n &Y;…a|04'Rd˽ծ3__о'|y80y7p}\T-}ҁh5|.8Ţ;޷ @h5EKVfzz 7E dijԔfpw ru T0\_Vendstream endobj 18198 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18199 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18200 0 obj <> endobj 18201 0 obj <> endobj 18202 0 obj <> stream q /X1 Do Q q endstream endobj 18203 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18204 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18205 0 obj <> stream HWm6_!x x( 4iH6ŭ9`*)K&ҳy?VCWzs|⯢Rr%_RגQZ#ʮ*oWѿ~la׬]S\z-岸ZVEY$tu7k>4}W^/*Ň#YZ'O#ar.J &]=_\y SbFz 1UUhnwc0/KQ w)-$SY7{S|,4am ׅ)p*.3R!+.ŀUU9+ Vr),AzAzIzIzIzEWzEWzMיzMיzMיzC7zC7zKzKzKP_gkB}wzw̳apm!+Wb"\bէr),µ),B}ZA6ŐE\+צצkC>s \b"\b"gkS Y̵pmpm!PVM1d3 µ)-$CV>ŀE6ŐO1dS XkS Y̵pm!PVM1`M1d3Jµ),B}ZI6ŀE6ŐE\+ צk%C>s$\b"gkSl[(µ)\}pm!+WbէצkC>s"\b"\b"gUkS Y̵pmpm!PVM1d3*µ),µ),B}ZE6ŐE\צضЄkS YCV>Őw9J岸Z.EY[b`qW.͢vZ|3cVZ0aw@^\]1nxK\U&?bBRٚWGV7#hI߾G}bPw>88N05nq>.ncjfD1L}ޞbm7u'&vGԫCQ:%k)eS(qq⎑`؉6G\)Ig#W#&hO2mt#v?ŧa ~R׻?.zoj u״QU?1=E5~Rpb(dȀ ɺJ՜ n>5PYs_â!fQ| ;1ȘFaǯpsKJZV~q o;pP$7= '6H<:ҫM-Vm;سaq' p #H)̻aW@X>,Ff6dqH X?|϶g= cb] *u}bNm"ZxXPPɺu>Z(6%xaq>3e87 4RlppėC{hɧܸx=]>zf,4ciRcno۳e%o&vh4TdMj3~RqW=4IJ'#tef왫.p]#̳)4(' }{Z8>Quyo]1JqMz^,|blг>d-9]>gR8OL^3"^'zg\+DD}49pYBjmʧC18嶨:A:ÐVKTKTKtKtLLll&bYUge˥eCV+ŀU,VEĪX%X >ŐE^yb"bey/O1dDާx aXQUx %QnmӪ*"7G[EQ߽30;z3a3ýb1T1^Px9+{Cpi UPx9k{Cpi Uýf1T1^Px9k{Cpi Uýf1T1^Px9{CEcb1T1^Px9{Cpoi Uýa1T1^Px9{Cpoi Uýa1T1^!=1P1\D&IbGxce$`X1Z䰇Uo-p _m~!#yZIREԞ˝|x3KUkرcv>DY R*iC°Dƌ: kZ͸ꌚ0jRl˪O-a^(<v*ngNNO|BjWEޕ 7?/YC6t)ڼ)]#]+eq u("_V8t?d838EK&Lf?ϾX'RX#UQϹj-Q߷\E$ﷷ&LƤ)P˕2 o5#\ueW\i,ۍ˅^HPN 12:Ms]𬉀Ю9FcS!m@U@C.J20Bxsxl`~*>/P 1311 0 R/Type/Annot/A 24905 0 R/Subtype/Link/Rect[93.6001968 663.229004 292.957001 682.908997]/Border[0 0 0]/H/N>> endobj 18207 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18208 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18209 0 obj <> stream q /X1 Do Q q endstream endobj 18210 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18211 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18212 0 obj <> stream HWko۸_!~qTSk,j/nlPmQW;)&'[Cp3VtCwcy诈1D,ORg)O$;/n""qtEWP>wmve]fn 4&!q0foh,B_},+_bnom>Lel{($t1=5,嗈',~)?)F]fXt>,JCDXvJC>,gzgzzzzzzzzQSD}Y>Cg Q^^sD}g)bZ# +TcB\c1 a!2ĵ>fX q q>p-C\c\a!2ĵ>fX q q>p-C\c\Xqĵ>fXzZ3PVǀ Q#1Bk} Xk}̰k9Z3,D}Zǀ Q#1Bk} Xk}̰k9Z3,D}ZH 1 a}̰B>,ĵ>fXq>p@\cB\c\+a! ĵ>,ĵ>fXq>p@\cB\c\+a! ĵ>VGqVǀ +Tcϓ/994عK[}~J[8r?-41}(+ݬ~RZ?KY+]=z/<$|_ Pj"?sfyj*ݞ&vK{ԝwJIHBy:KY>x7&PU 'V̿:gK<N I6B\X=(+nut먋aНwIdhu}\ډz:6)"\gx*qޗN̅xλ$.aܢڦA;@&Vƕ*n~EMZݮl}X2FqAYm{<㖙鞐#v&W̟]f-J@կmWUBf/KW=@z$+3M!)35#V A{YL-Ā40lSHKD(266v"pIE,IF+Hnl sFEyX(_wS\TK|GB8lhEsǂ*U*cމU (1H5$T S8];Ͱ/^BMC,U1m X0}7-S]ݵk~϶i/ԏEO?ᬌŲ"_t̯5PxioNx] 3y~NMLL}=Ʊ퓇7/ *I:ݯ~zX.Q}(I~|1'xZنfb]}(&lrargJbTN :wJj); ~+b/Ǘ.1͗DZ45)+D_=;m*ݕ$& = .SWLIr_)K$˖Uj\2a8iI1L@"%Yb&4e.qOJۚb-}hJzGF8?8dj'!BNL'!1kG[3>bTB-p: _"Egy fXN/4Ơg=5J/.!Q&b}tMm1BI1>HEΑ*ZGy9m|_$TٶIgFiLسRd{'ih IHWcx ~&3#+]A4?,YvB{1ۦ^-   i5^3Υp1[ ˜/\!_[WN>8yʏ(Yݸ@VS)f!rT `ܥy qjĪ<,ޣe|=b:>zlCZf7VIɜit`x.Ir{89ݥou:fGpE[E?1Tj SA.9U0Fz҂̈́։A.=6^g4t'dRM/ΚI/ ?jNbigK󘾃mĐVf0~n:LYhTLAl~2)veضY!~2#C6R:}8OvUDMh.|+ w잂PSѵ>Z#AV#͡r1]$`? i[%, @L1[+c,T9LiؐJ\Q%eq*ړaP%0lm8O”dGfLNoزuBQTO&;Mmz 1*I+kʶڼze|01\,vH>U|I=a]=.0K3Iwi Ŕ|gEu(RW*ʉ8XVJnZc&!Hm`n|wKYߦvv>>7¾i;8o)1HIO1|JUMR@QjDio:NGn鰐FInM:NJ،&`l$rɾDkFZr'ܠf2(^WFs}0I2@m'!2{1*ڥCEh|v46IHU?i!b>5z#uJtV8h`܏O8Kp^+L}sun[_7(o(KXxD|S!d=%rE 0怽T?;ZśA? \u+W׋(8]R$<+T4>H#A}} 99Sendstream endobj 18213 0 obj <>/P 519 0 R/Type/Annot/A 18214 0 R/Subtype/Link/Rect[93.6011963 214.828995 180.001007 234.509003]/Border[0 0 0]/H/N>> endobj 18214 0 obj <> endobj 18215 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18216 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18217 0 obj <> stream q /X1 Do Q q endstream endobj 18218 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18219 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18220 0 obj <> stream HWkoܶ_2CE 4moqȻ򮒕H=8f᜙г_~p}__pqX(,Kev(YlpVS/GyCUZC\lWՊCaiaMsx[mťHǑz?Qj{ nuwJnik[v@s]2 ޳_bai$*gİnc@ Qv P(dž@9ɻ6@ KKK++'c}BO<)>اc3}F<>cs&k&{h][B Q>{(B Q>{׆(kZ׆(ZAֵ!`Vum"TET+պ6D= B Pj]jZ׆(ZAֵPkCS TET+պ:j]| Pj]| Q>{(B Q{OPkCS$TEֵ!`Vum"{j]պ6D=JB Q{OPkZ׆(ZIֵ!`Vumuպ6D]պ6D]| Pj]jZ׆(ZEֵPkCS"TETպ6@um"{Uj]jZ(B Q{OPkCS"T !Twm"TwmHkX u^W+U0V;4e5[ENb-VQ >?U5momٔ/7z0ϻ0~$xyخˮvЕ+/oclǃ99(b>\:JIfN;5}~~t@o)/vjpt|5%BqG[8 Kv|t x,z|F‚I< Fi[Iy=`k;q3;_%`&iKήaa塮j;%\h'tzj _q0\~ޢt ,/ꪷ̚.m7^a-w(`<]D /" =MLOq a(zA<"m  wݱ60;LbD-`5wR$#CJ}A=Qp3;;c 8A=-p)t"eP--s!TFq1db+=nwCf޲펵 B$cs&ϛ!v WmcWJ˓(ƌk'%'뻎q_ MMS찰M٭`1ASJBK"hW N<OҹJS=RJ U=ƖbY#Y^S+Wn wck*2L|f3yU?K Y3tS"I]+'j\¸p8*B ~q LzPh1 ]EC MEiD"Cu7E=O쳄H|>RS(N`l1gጩVxJ~|ѝCeBȤKu# WYPcyc P%̱Cךd? C4IcY_cF]_n"Uwf 1;chYXU){,;MuiWw~,.MØP֭FP aSiߦGVaC9X1d&MwJY9u=S($l' ՗A~P'~ѵ8"0o?V^ዂk>Oo>ђ d]~`dtB9[joXܷ|cl|O>ɰMXtC3xݎnӑt>rɖF&+Pc#MW9t3eOS&C/u}|ڙ$>:a*^8?aElyfvxz'A3k(p 竆 (=Sd,"t%9hzJ:Vu%O"Ѱ6]%0i Gf4])9}!:v@rK[⽞IRIH`'kj~1<|@.N.q 8?2XhDȐ_(ۗ7O|]R5j=^4[+o GPC,Jm#QWZ.8OUDjZ!9愾I~ /c\~ ˲tHþ`Xӹga]"6ob%0tӱrxD_*׿qca3gaY^&+|jmFJ^C8jqۆ|*$c63HFcc5hXr}ey뒾$/sqX葂!@}>\P#X2@P]矗2Ũ8 ɛ,3٘*`2q)BU]Mݏ+.:#M߸4) hO?x̊,6آW I|Ӛz:t38k'D%wr:ÝjC(bX$R@vU";j8"ry⍩mRE΍p/9z*/9KfmaB[& ʻ#@</!DIUz`N`޸ ;먽xck[VL.Ke}mʱIC_BZ ;莧}hF,m0`snXzaioM݇F3}N**:ص^9&9~Dl-~O]kon-sZEkLwUh5}{;𺬯-js4^ Z%ytw}^^"+2M_^\#T %K,"?qdxGds۵w'm93B*Q^`sW 9/>F0J3$q蕯+dc24xC"D;ק7" 140^e燍o7D@N΍\{ȣX?mNӱG{hv-''4!.3l.8TD>Ƃ;lZIkJTDCkΞy=ż KPR1ӂf !FdvRy7o-tCv.-"%a,;wð9]oe* V ٶ> ԍT4Yd C'" I| k[]^N/a,9/{sRU,И Lq3c9|%=|;ơkJ84%d"͕@ɛb)nuskD!-90ޚӤ*f.(TW$(c ~u +nn_~z Mendstream endobj 18221 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18222 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18223 0 obj <> stream q /X1 Do Q q endstream endobj 18224 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18225 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18226 0 obj <> stream HWoFYsH.z \2H80TH"QqCG\z!57rg,OM><}sǏ>}͌&*TNVM}P,WיQskny.|t̳z=ڜ[eT}t\E*JlMqRiflW6Ļ8i[urٲ&fulN>կCPg1:VR~QgyQ2동V(7+S.U]- Y,EsDɉcr'H#b`qHK, [Vwp{;^p>A/B/B/R/R/RJJ}#p/:k@i9,h-Lj%s,@k9F,cĒ9X#p/ZkAk9F,^ւr,@k9F,^ւrXhXbrXh{Z Z˱{Z Z1bćrX= cĒ9F,cZ1bcEkh- cEkh-Lj܋:Z%h-Lj܋:Z uK,Z u#p/Z@k9Gc*O9XfO촮2rU_8Tzׅ*BT&.F=\wM3Գ'Mx]^Uȶ.:^QV.[߻`$=VvӨmR&vˣ$!Dsv+VW6~`H/y҇?#Sw/m>;Ɨpul70oc7~bѦj8뷉~?yPGC %&mX=wl:m_oZ/nA|*Lonx2/smU>\+sǣkMnfaMνM-vռ fn)jS37f^V) )k }N~H#qX?0kϳ/0[ov]9CgOv~.ISf556|4]V!O7--ɖXWXsYO:2B7aޑ82ZT;NvanCBPD8-MpkƎRؘ<fJ ln۹y*q2Z2J3O6s6UEdصG*Eq\3G7y&7zmXju$H[)P%;Ez }|}mu\++ ,a2+t<&-> ˴,(P"Φ VM8q5jg{yccض?p ּ4ͩm@k;,2+`;?є>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18228 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18229 0 obj <> endobj 18230 0 obj <> endobj 18231 0 obj <> endobj 18232 0 obj <> endobj 18233 0 obj <> stream q /X1 Do Q q endstream endobj 18234 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18235 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18236 0 obj <> stream HWo8Ba"X`Emo}(בr eˢ#9(ZGrpxiٴ/\}M_oo$\1RWTZ#iS&J7I~MxZ_Ӳ~7ۧmSeTPz\-O4yR &Mm^:nܴŷ syȷ$gԽO$f|Ӈ4q0au('Nc1a@^11@qP̣49^D^D%^F%^F%^F^E^E5^G5^G5^G D D-F-F-F B}/E]#r´8V'p-yTE<*Vc1@1"Gkq̣kZZ(B}ZAr$\cE\+ G#Jµ8Qȵp-p-y>r$\cE\+ G#Jµ8Qȵp-Չ"\c1@1Gq Pkq̣kZ(B}ZEE _HY]vp I@ɜ#DA)cbNiQ>gJze?QNs&dx;W 9s>炟}E;M?1coé sp(9\ktڋskz~s!xTAwRΫz;CȈ0wtC55tG*\U˧/_( ,1|訄[^[Bˬv;v̀AjQ]YV"ClC|YS8u-N3+Ak6J3쾅bٹ, O;J>M+)bЖ70;&8%'Mx<0@皉"߸]\#Sdw>;OF!hѹ֮v\:ؤLOlޫeA0s7xPɺa!rXHT3uy޷os~ܷl[pmk_D di_~&&ɝ_(4| $НTB4^rLYͷ&;[SV3<4Kasn퇛i+endstream endobj 18237 0 obj <>/P 112 0 R/Type/Annot/A 41283 0 R/Subtype/Link/Rect[154.800003 666.190979 308.230011 677.221008]/Border[0 0 0]/H/N>> endobj 18238 0 obj <>/P 112 0 R/Type/Annot/A 41257 0 R/Subtype/Link/Rect[154.800003 653.190979 276.320007 664.221008]/Border[0 0 0]/H/N>> endobj 18239 0 obj <>/P 112 0 R/Type/Annot/A 18273 0 R/Subtype/Link/Rect[154.800003 640.190979 277.401001 651.221008]/Border[0 0 0]/H/N>> endobj 18240 0 obj <>/P 112 0 R/Type/Annot/A 41184 0 R/Subtype/Link/Rect[129.600006 615.491028 487.460999 626.890991]/Border[0 0 0]/H/N>> endobj 18241 0 obj <>/P 112 0 R/Type/Annot/A 41158 0 R/Subtype/Link/Rect[154.800995 597.291016 286.571014 608.320984]/Border[0 0 0]/H/N>> endobj 18242 0 obj <>/P 112 0 R/Type/Annot/A 41125 0 R/Subtype/Link/Rect[154.800995 584.291016 456.490997 595.320984]/Border[0 0 0]/H/N>> endobj 18243 0 obj <>/P 112 0 R/Type/Annot/A 37650 0 R/Subtype/Link/Rect[154.800995 571.291016 282.020996 582.320984]/Border[0 0 0]/H/N>> endobj 18244 0 obj <>/P 112 0 R/Type/Annot/A 41050 0 R/Subtype/Link/Rect[154.800003 558.291016 374.360992 569.320984]/Border[0 0 0]/H/N>> endobj 18245 0 obj <>/P 112 0 R/Type/Annot/A 37643 0 R/Subtype/Link/Rect[154.800003 545.291016 347.980988 556.320984]/Border[0 0 0]/H/N>> endobj 18246 0 obj <>/P 112 0 R/Type/Annot/A 21353 0 R/Subtype/Link/Rect[154.800995 532.291016 429.330994 543.320984]/Border[0 0 0]/H/N>> endobj 18247 0 obj <>/P 112 0 R/Type/Annot/A 40675 0 R/Subtype/Link/Rect[154.800995 519.291016 406.591003 530.320984]/Border[0 0 0]/H/N>> endobj 18248 0 obj <>/P 112 0 R/Type/Annot/A 40109 0 R/Subtype/Link/Rect[154.800995 506.290985 313.790985 517.320984]/Border[0 0 0]/H/N>> endobj 18249 0 obj <>/P 112 0 R/Type/Annot/A 20134 0 R/Subtype/Link/Rect[154.800995 493.290985 441.710999 504.321014]/Border[0 0 0]/H/N>> endobj 18250 0 obj <>/P 112 0 R/Type/Annot/A 20098 0 R/Subtype/Link/Rect[154.800995 480.290985 283.580994 491.321014]/Border[0 0 0]/H/N>> endobj 18251 0 obj <>/P 112 0 R/Type/Annot/A 39486 0 R/Subtype/Link/Rect[154.800995 454.290985 398.860992 478.321014]/Border[0 0 0]/H/N>> endobj 18252 0 obj <>/P 112 0 R/Type/Annot/A 38959 0 R/Subtype/Link/Rect[154.800995 441.290985 280.851013 452.321014]/Border[0 0 0]/H/N>> endobj 18253 0 obj <>/P 112 0 R/Type/Annot/A 19096 0 R/Subtype/Link/Rect[154.800003 428.290985 307.73999 439.321014]/Border[0 0 0]/H/N>> endobj 18254 0 obj <>/P 112 0 R/Type/Annot/A 38391 0 R/Subtype/Link/Rect[154.800003 415.290985 299.890015 426.321014]/Border[0 0 0]/H/N>> endobj 18255 0 obj <>/P 112 0 R/Type/Annot/A 38340 0 R/Subtype/Link/Rect[154.800003 389.290985 437.200012 413.321014]/Border[0 0 0]/H/N>> endobj 18256 0 obj <>/P 112 0 R/Type/Annot/A 18274 0 R/Subtype/Link/Rect[154.800003 376.290985 400.589996 387.321014]/Border[0 0 0]/H/N>> endobj 18257 0 obj <>/P 112 0 R/Type/Annot/A 18952 0 R/Subtype/Link/Rect[154.800003 363.290985 309.339996 374.321014]/Border[0 0 0]/H/N>> endobj 18258 0 obj <>/P 112 0 R/Type/Annot/A 24230 0 R/Subtype/Link/Rect[154.800003 350.290985 417.730011 361.320007]/Border[0 0 0]/H/N>> endobj 18259 0 obj <>/P 112 0 R/Type/Annot/A 36788 0 R/Subtype/Link/Rect[154.800003 337.290985 288.769989 348.320007]/Border[0 0 0]/H/N>> endobj 18260 0 obj <>/P 112 0 R/Type/Annot/A 38212 0 R/Subtype/Link/Rect[154.800003 324.290985 465.709991 335.320007]/Border[0 0 0]/H/N>> endobj 18261 0 obj <>/P 112 0 R/Type/Annot/A 36707 0 R/Subtype/Link/Rect[154.800003 311.290985 429.710999 322.320007]/Border[0 0 0]/H/N>> endobj 18262 0 obj <>/P 112 0 R/Type/Annot/A 36684 0 R/Subtype/Link/Rect[154.800003 298.290985 330.610992 309.320007]/Border[0 0 0]/H/N>> endobj 18263 0 obj <>/P 112 0 R/Type/Annot/A 18726 0 R/Subtype/Link/Rect[154.800995 285.290985 429.710999 296.320007]/Border[0 0 0]/H/N>> endobj 18264 0 obj <>/P 112 0 R/Type/Annot/A 35852 0 R/Subtype/Link/Rect[154.800995 272.290985 335.161011 283.320007]/Border[0 0 0]/H/N>> endobj 18265 0 obj <>/P 112 0 R/Type/Annot/A 18657 0 R/Subtype/Link/Rect[154.800995 259.290009 433.311005 270.320007]/Border[0 0 0]/H/N>> endobj 18266 0 obj <>/P 112 0 R/Type/Annot/A 38135 0 R/Subtype/Link/Rect[154.800003 246.289993 282.960999 257.320007]/Border[0 0 0]/H/N>> endobj 18267 0 obj <>/P 112 0 R/Type/Annot/A 34251 0 R/Subtype/Link/Rect[129.600998 221.589996 487.462006 232.990005]/Border[0 0 0]/H/N>> endobj 18268 0 obj <>/P 112 0 R/Type/Annot/A 18587 0 R/Subtype/Link/Rect[154.800995 203.389999 292.131012 214.419998]/Border[0 0 0]/H/N>> endobj 18269 0 obj <>/P 112 0 R/Type/Annot/A 33666 0 R/Subtype/Link/Rect[154.800995 190.389999 368.371002 201.419998]/Border[0 0 0]/H/N>> endobj 18270 0 obj <>/P 112 0 R/Type/Annot/A 18493 0 R/Subtype/Link/Rect[154.800995 164.389999 425.640991 188.419998]/Border[0 0 0]/H/N>> endobj 18271 0 obj <>/P 112 0 R/Type/Annot/A 33592 0 R/Subtype/Link/Rect[154.800995 151.389999 279.751007 162.419998]/Border[0 0 0]/H/N>> endobj 18272 0 obj <>/P 112 0 R/Type/Annot/A 37618 0 R/Subtype/Link/Rect[154.800995 138.389999 326.591003 149.419998]/Border[0 0 0]/H/N>> endobj 18273 0 obj <> endobj 18274 0 obj <> endobj 18275 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18276 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18277 0 obj <> endobj 18278 0 obj <> endobj 18279 0 obj <> stream q /X1 Do Q q endstream endobj 18280 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18281 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18282 0 obj <> stream H_sD)7I-t:&-Z3<4TmI)sז][aH8Ho%_"yewBEJ 2AdSňVL_dJt-uGV⒧yOjmlyD:J3c繱it ?+2y ;}_2 *ei۟aK2ch,^׀4H-CRkBeHj} ($f)}Z,Rː*Hj}R{_ IY*tk PHj}R IY q#5Aj9Z_>H-GRk@!5K!r$f)}Z׀BRkBHj}R I,5Bfн,R+AjZ_ IY qV 5K! $Z_>H@RkBHj} ($f)}Z,R+*Hj}R{_ IY*tk ݛ#H:_%Ϧt %$ߪ9̤( *lbô]ڶ`oOƲ4+(=R=vq_Kf;|v(}-izUV >s-qRų-9ݤ1wi]?7m)`˃% E}n~_;36yj{uX]X ={d6ֻهK3jI擪bxn=Gݶ[N8v]e.N9V@@Y{C7ȾF;yD2zd1nX! >tnB9 rސu/GѴr㌦nhZ ؔJ)+{ĦaC}9QwGm"!{3釖U|`{wC.rG+ͷbkxĸܸr,tPb946lc_oq瓝U'㱾}ozD_0#Rm5ҋW -l} aդ]mneн}3Z DWvQV'k+I ; jYM3LQʏ&6f^b _b}u"د)?5VgXHU5N1 jƑf@UͰXU>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18284 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18285 0 obj <> endobj 18286 0 obj <> endobj 18287 0 obj <> stream q /X1 Do Q q endstream endobj 18288 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18289 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18290 0 obj <> stream H[s6+y68'mL$G(n6IiFј.? /^|uN8RbIlUd*ah B(!VuwqrQU9 ?/`BgAh 6!)䋠9?56o Me]T{"vao5)6HNVͲ jٿ(sUIbe'56~[F44vKߓu` p /4L!lL ^Y'̃AQO=2ռwG5t!wͻ"EÐS ]F7[2z+[Foz@G}#>b@3X}"'>F Oѧ}3>c@2 "0Bj]jRK5T.NO5t w ,FH-ռKg5Bj.!T.w ,FH-%j%г!T.RͻzZ#j%г!T[VH-ռS ]Bj]j驆.!T. w ,VH-%j%гZ!T. RͻzZ+j%гZ!TCZy@RkRͻzZ+j wqzKH-ռSͻ8=%j%г:!T. RͻzZ'j%г:!TCZy@RRͻzZ'jRK5YjZy@RRmDBj]jRK5T.N,h|,y0BgASD+ "zr>]S8>w߾Z0+M u(V7Wp0_o&FG}h<&㺀E*a\U/0[Ut7-TeMKbj],/Qo&X`ҠڦaS~-VQ?G}{)ITԴ\MZ>D;ic?vqm!lAΛaEiۢ!Qh[ vػ+5nO2-%}t/1Kx)JfSki2_m-qȪXw؝Q糷e:PE[ZIOۭiS-4/.*r%ݭ_Ү%>ا#Znjs4C:c=gnuvMu[YU& R:{7NkwJVv{t W?~W{O{3a &Jwӛi3Vjbe{7lF*v:n*JiUilHDOx:>Zo'=sh=8CN)ByxΓ F+갻=b3u6P.;duz%_?cS61YtWwKdGl“y4d1U:lZn3Jiۼ,>D<6Utg0.8qU,ku)6J)B2^H8GZrI} :fkOw?!<9w#О#<\4C 4NO_!O-]endstream endobj 18291 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18292 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18293 0 obj <> endobj 18294 0 obj <> endobj 18295 0 obj <> endobj 18296 0 obj <> endobj 18297 0 obj <> endobj 18298 0 obj <> stream q /X1 Do Q q endstream endobj 18299 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18300 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18301 0 obj <> stream HWmo.H @I"m"CϺjծΐZ"g\L>3|87\x;&ط߾:5˚ʰҼP,4g}$Xv]7^o]]ײ]]VCj]-f-&f5dr- ]\,?9äʹq^=6}kWRb7G)5/Kovt2m7B?d+Ĥ`?O`+պ*¢¿.gu6S:HPCT:])*!*'P1w)Sq P``````o`o9>Oq"\EO\1@c"'Ukk8(µq QĵpmC>q"\6&\c"\cJ1@c"'Մkk58(µq QĵpmC>q&\E6!`Vc"'Մk1Djµq QĵpmdpmCT>pmCT>!*eE6!`c"'5k1Dµq Qĵpm8(}ZC6!`c"\EO\k1DµqlkRq PkRq QTY)V\\kkԲr!i׼k72Z[$[e Cn2%W-7bضe&to(6pD/gK˓lv-hAU DR- Ɠw\_sJi%#D"$ܐ1ίPqHw}rGD!]ըB-^V rusZٽV~FghVK: JXw=.dضv..aߋEl~.eTdBF?:QceE !KKLc^2rw6>{a--[ ;ԂZE)mJ HS"t*MEU4Rr9K#hex-yw ܌R֋~4qa n8QBը3w9?Y2Y8zFc5q~նaDyB9?WYv2eYD)6ϙakPre>]ж,%]TN tQ9qL*`o9o-rIu:Y '/s wŏ/SN8)Г_2pK5mkv>F|`#g1wӽ41&2K;)ye^II]} B]L_ΦVNQ ]/#xQ. gskVtXbp,b"|&tN9<*M:4$`d g:ij9w% K˱:v=1BNO׮{1Jv/ ,ZWSpb&akЭ,Fa4qSK} TGaⵚA-DkT" S)HP{92W+(T\߭*Hk[S[g 6QMw![ AA7sδ~vQZVw豍>Foo dkU`q]I# a55LOgnAn!ߌ,_l,|~vdaFǭ .垠3ߴ6 g*(T]t P´~װ YV~HX8W|~$Ł.Nyrrr<*&uʥaGoD˫[o 2q[+tI]7{G̮FvEB Pw0Mm-G5^KTu=V9V5P|rd\ba: >= avr7I:f|^Swq1 6e8%p?GzM'_`ppIfmll{ݰao)}kg{gw}>,y8X~-Kn3-}Y7PÞ|>3vFURM4 x-+s;p}`CK~#ѺX[C(y 5GѲf >;cw^O54t>tS9Q3[ͥfw1RZG_7͹1[O8ЭJI=O8\xJpIhrs-Wo%U 8yvelah%n&HWN_"V7+r :NJ# hUv ],SBtdU6"ru T0 e endstream endobj 18302 0 obj <> stream q /X1 Do Q q endstream endobj 18303 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18304 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18305 0 obj <> stream HW]H}(i^ҫ],Bbg4DP˝8z_\cߺ:u}O}5{7XĞ?}2oU b:a,XP GV,+?f]-Y()6)?oupwqadIu_{ZҸ!xCcyKi@_:ʳ-z"tzYW]seLNĜȒ+-V/C/hژ ;u${ C{W{>}ؖFơQgdјc|AI18Y,Mv} O O$KO$KO$KO"+O"+O&kO&kO&kO}L=1>'SO}BO<)>ԧSoSog9aZ \1c Xk1fYzYc"\1"{k1fYzϵp-ƀEcE\+b̲kZp-,PVŘe= µZYs \1"{k1Vp-,W1`Ře1fYzp-,PVŘe=JµZYs$\1"{k1,µ,BZIcE\+ b Xk1fYzϵp-,PVX(µ,_=ƀEcǘe1,µ,BZEcE\b Xk1fYzϵp-,PVb̲kZYs"\1`Ře=*µ,BZEce b̲|ZYc71FMܮZ0ֻ8_Xd2XVTigݡɳmxx~y-~ԄRbhȣDi &R֯ZmXsUޝ)p5˛VauvYq<9՗'HBY62*Zk}s/pM #{ڝMWWzUѺw{} LG]힛CV;ّxy"WCspixR0:D}wT^ecɺC>ֲl} 3m /Fi6]Tc¯13'j(!E,C [d,>< 2 luN?s~԰,aV S!J%4)1z݇޿I-{d-CC-՜?eǩ]X[قYH_MF ҧ8?6bd>p z^yY7]#໮^sn^m^J" ǔbuddp_zRpZv[ws }V 7LǾyjwY\(^orFǩZNmlIV߲iq1/ʇc^BR34Ib*Z=,]d˲/X^.../]G­HO"rp cn>ڦ"1+jg'&Y5w$.~kS"QaAPzA/zWǶhЧ8^O{rd+ywܑ[ݴj9M6)!/mm V솠l0m?ضslm.Q Ҵ*,0rMvym{*v"e>!6p^y}.*ۻ}kXB=VC4%- EYC<+9ewTr&LS1q.o3Wr)$] J3S$0k 68Oaikee_H~}m/;tr;;Xn|06Rxpω{"ۍeһ'ngͷ $F4k&EĿјn%#o?q(C}-O,, weN9psdJEJq2/]BͲo?\5ȥXn'wM<t^J"Tld8$8s4i(DZ>,J?$UO 54:Uga z Iss"cEvF`_y >xXh0vfYs>߮/)a{O]M,` Q|W.\CyŋVE" ZN./Y6YS[ Cތ7^9mb\O* B,EԧjPQ N& 픙.m`|dGCwWpȅrh`- =RAaJNË3Kk-Ŧa&r eXOTyßݔ#]m2 kB45u:+l1Ԙ2Pl%[7Sקt4S lǷ_n4JZI@IPLXg +d M袠ɋ21DݍoV 2Q %V*>E2ccsnqkpL.j!/^L_UU-M?TN:81U3 z6*lγ 'Y"#(1CX="I1RhRN_ƅ,|*I7 lӑ |}u@ExgP.а_IS OhJsOBcOupO<4T=IN6:XG+z] J#G{OQFfSSWP'vt$=b9ɧ&z]mkO`ba`SInծޯG%i(MѦv$?KYg]ZNN11AGT#u)r> m=6 >X:i"X2Qp0_֍o)-Vm>cláu1Nj>/P 1009 0 R/Type/Annot/A 42582 0 R/Subtype/Link/Rect[93.6011963 252.509003 285.687012 272.188995]/Border[0 0 0]/H/N>> endobj 18307 0 obj <>/P 1009 0 R/Type/Annot/A 37561 0 R/Subtype/Link/Rect[129.602005 164.908997 270.553986 184.589005]/Border[0 0 0]/H/N>> endobj 18308 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18309 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18310 0 obj <> stream q /X1 Do Q q endstream endobj 18311 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18312 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18313 0 obj <> stream H[o+N/Ǧy.a&&L`R &,eL[LuPޤ(K{/1YgZ[ֹmn͏?^~zIo~lmi_LZ8s&|:f%!1bmb6z636O]JI˨OE)*Sɔ)c 1QjJhL٭FJ@z{ޫ*J@>)H)H)HHH9H9H9HH_H_%H_%Hfւ2r`jƔN/5J)^jLR# LԘ:0Rc WSJ(0Rc WSJ)^MS+5J)^MS+5@z5LԈS+5@z5LԘ:0R[FLԘFZ1K)^jDS ZVjLjj=ZVjLjj=Z1ҫ`jFZ1ҫ`jHփQ`jHփS ZVj(S:ԈS+5tz1K(0Rc WSJ)^MmS+5J)^MmS+5@z5LԈS+5@z5LԘ0R# LԘ0Rc WSJm`jƔN/5J)^jLe\e0 9-7UtYUXSGe:dy{S-l>mI2:{ܶw.g|t6m?ϟ~wuø"2zf%cȘV~81šH~6vdt?7}v26^_'OLW˒ܘfc]wtq~o|ͨv5]݀q2޼2+CKgXu,jɈ&-nopGtOıKOwA^27<._]{+PE\ɩn{$8Sؑ#K_yn 7mfԕq2pg:ojV/Ӎy\Smv_6ymvxn7/o߽1u߭ff23jfkfoCsS?իwO8;}icj=̇۟,Lkt@}?ӷ7 T6[(kMFg-.Bp%8}/8<:m Wђ32tݧDOM1UJyW^Ay+U^)JW2Ly+W^9ʕW UByT^%*KԘ^R#/,/RwRc x;{1TԘ^^jL/{z/5SKށK)zAƔQRc x{{1T=Ԙ^^jL/{z/5SKރK)zARRc x{1FԘ^^jL/z/5}SK>K)z@RRc x{1TԘ^)Ԙ^R# ^jLi2.2/*gg(x\1n$q_][&vO̟. H̝uWV E'4>Ad\3xN$^l3V4f|AG'>="ˇ#`|_62.?7Շ{N]=8K7x*/dU9}GxohqlMBgqIVM?ۆ$ |p=Zs.?YS,|Yv8a2鹑{nG4yE~tWuA7[puqNtYoFfxze4+XNi6E9蝱J3ln/A`Bc +(JWR* xe+^ʁWr+xʫ^*WJUJ/h/1F^VyYe^Ny9z@RwRc x;{1TԘ^^jL/{z/5SKރK)%5@RRc x{{1T=Ԙ^^jL/{z/5SKރK)zARRcJ{I({1TԘ^^jL/z/5}SK>K)z@RRc x{1TS{1FԘ^|(+C 蒾qeZIZ6bwםV$}ǧx]w s>ϻSYLv<\:LjcwJ{[Ͷzezfcd4f6?^@{ 2Q|z/ۺ D}~{WN0Iz@{ ta$\YvwFlsfE`+}S۶7D~-|LHpLt`"a6Yon[.ӦlU_ԧzR.LՇG&z$) ;wɡ?卍 Wj[ڴpw nn)Cݢ֫{fcO1Qk9[2wOŇuDCW! ,XN`9JVXJ+X)c+eL`e r3V.r*VX*(DE5tq b3Xb7B.roS ]˽rO5t ,{#jX,F=%X{K`[!TCgQ \B.roS ] ˽rO5t ,{+jX,V=%X{K`[!TCbB.rS ]E5p ˽rO5t ,{'jX,N=%X{K`;!TCbwB.rS ] }"j,K=Y.KxYq|q;x~w2t=Iav1vSOŮipJR/}omf7C =3UvUW8&tE`M:jV[uychV7/]]m}sWUS,S9Q33YiG. FSg~h6 ܆55>#@[b5688_[mn5;$9Cwq:XG$ l͟n6;5'1)`8d˶;6N5emA%# 5;.4ga  wR tvzؘzU,w9Pisӂ=7Nfhr&uFy0\)mĹj0,lZ5L{^Z{j[mow|C]'endstream endobj 18314 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18315 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18316 0 obj <> endobj 18317 0 obj <> stream q /X1 Do Q q endstream endobj 18318 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18319 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18320 0 obj <> stream H]kHW̥ |J(- VЋ4ȶRveiαs˯y4uލ&?J-߿8?D~[/CTne;Usad+fYd\mv*V?}rוW滕FV3"ZFӜХ:qMfrte衺=>%?M?2e6mvr` 1aY4ITB+g.'ᔕhy&zJ[yN"X/"DD3r8K1BP1Tg%1;{;b{O=c}`} >gsb39/}A ƾ %c_/}d#=aJNX8,QLkqPgbZ3{Z˴g@1i-Ŵg@1i-΀bIk-Z%i-΀bIk-ZؓZ8KZؓZ8'Lkq Ǵg@Q{%i-΀8,QLkqcOZ (ƞ1Y (ƞ1P=icZD1P=icZ3{ZǴgbZ3{ZǴg@1i-: (jD1Pg@Q{%i-΀bIk=Zؓz8KZؓz8'Lkq(8'LkqcOZ,QLkqcOZ (ƞ3Y'ZEq(8 (jUK~^]N;q]qe;id5q Q2/:9=gҦ<]Y42hHUoO7 M-\!v"ӓ'7֬}tݢݪțJM?R'Zendstream endobj 18321 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18322 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18323 0 obj <> endobj 18324 0 obj <> stream q /X1 Do Q q endstream endobj 18325 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18326 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18327 0 obj <> stream HWn8}W 8xх&@vq[v+ѥW؏*Jꖊe{Xêb^> ~E$~WiBiUFę%D]! ~/|(ڪʺr'2Z>x O%D >Eeb[7n(F\Pq}wĆ^EUM7?bl{35>t+&Bɦ~u\%ad=u#6B@wWC*~ tĽxwHE`ufa{}O>eاazS}>cg{˰{˰4+R[(FԆ(=Q-!gOmSRjZjCSbTKmbTKmb{Uj Q {OQ-Q-!aV16D1=*F(FԆ(ZŨŰTR[hFԆ(=Q-!gOmSRj5ZjCSfTKmbTKmb{Ռj Q {OQ-Q-!aV36D1=jF(FԆ(ZͨŰTR[FԆ(=Q-!gOmSRj ZjCSaTKmbTKmb{5j Q {OQ-Q-!a06D1=F(FԆ(ZèŰTkR[Čj Q>{jZjCϞ峷ֈ-:x O%2rvHeD$:io i7!VExmb?_lӷhPT,[ьͼ'cmwynؘ,d9/͞8uRs@gy^R{8~ڎ2PRMM U݉Z0A Ḑhes;rz|[.uSƱ+1aƊFkB<'0J'!jȢjI@)aj"yL0NEvW}O&"o m|?n\ޘ>hPck_|/wS>ʺP͞Ɛ]5>i:|tBZz~$b3ФIX4NQpƾw]e,nyW-^Y"O7~`U)@jb>ʹYCjcUJLnqdoU3_(l.T  Ff8T=e#rܘnPuhR~/Ij5Z/>y .ny35 so8U3' \$cy,pOn7Up-Rn%z/-O.v+Ž'ʔ8N؋8ˣs zkZ8 r(,'Π81!\2uTɈۢ)||4nڪjqqڻx74:YhD E&P>} ym>,};Tg&k@5F#1tS k,8 <[ ]KP@=h;{hN123A^6U$]S0ڡp>E0ZD3W/8{I*2sLLsu|*vמ4gjUn;Ş;6+;x7lٷE {$c1@Mᕭw82t9.8uy{@i8b"v0{URBZM"^iōd9JĈc+f'VN&@iZ.@_ c I59D\)С~tl|H|L|+ol?Ձ&#\cʙJg IzLB& =wLt:crPpB) 2L`qn f$l3zS΍.ߝSq_3q(wvOwa% )&nH:Hi;ChڼmHE%{L$D Szuz~B/Y?s m|}$q/1}O l1P4;Y_TxK!]WO%@9p-8t9?LnƖí(JSһtv?ݡcӽ)!g6Քq -^9+WtTa@"l|C(T1ypE&L$fw9z, R4jpQ2xsҰZ{ݤPy*6(o!vR:rt@M/q S=2;|>mGLp\cix=œCЍ1 թ@a@My9AT5,@ \Z70ׅ&4PxQ(*C჈L*(쓔O#߬U;jk5š|f3WwuWMo%E x䰣n$$-}b#(!qwٓOG=L.|K6Cl9[ 9C*bS-2${'8F y)De _"K<m24nxoN]"ܻh5y9Xg iͣJy.}9p\34D\2yep|*TbŃh ZqZz5\H@9 ._,Faȁ 6``wד~Q3+,za@@eV*afE."VȻ𯻚x}z+od \`#*\vDq;B0_.VXqZѥ qȅXeB,p!8B㽕 ).8 \˄4r32O+DXF/n4U>ngΛ[J {b6c^RƋJƋ m8E܂5ESZ{qW^DnRk/2} Y/;ZV..,,E5K5+yJ/hj K5KE,,˵ %ȚeemȊ1qfa4Sʵ6??ІMtZ"ilų Wk{(W7ۛ^G w]}K<ذq6CA'p-OA%ls_`9udT :7mytje{yZ+\)p0A&' w "N3X-z"`ďg" VhHh  Ej~/,O ,[1ךgQs `TF$ 2XHO `A,OE *_4X={IR+#X 'MYdDhgc{%4%4,@{5*kL'+ub$.<{+rnNr87pvcb؁:>urDrHqo0$R )fT3|5 #DbeU.EF z+AYYk"^ՐBbwd8[E]APz;OWop9tN1 !Z#`aPXZEjB(k Vb_Z&,V3ɺzLuXUL 2X vJmH> J,瑮 ` "`5i/ VR/vz VF7-_J˔4; ^[&5ZEҮ6]AU|FWo'<7+L;Nw{؞GP_J=}p2O7ï׾^s>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18329 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18330 0 obj <> endobj 18331 0 obj <> endobj 18332 0 obj <> endobj 18333 0 obj <> endobj 18334 0 obj <> endobj 18335 0 obj <> endobj 18336 0 obj <> stream q /X1 Do Q q endstream endobj 18337 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18338 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18339 0 obj <> stream HWnF}W4fAe3ّ D9+QZ[-M(;xd>}9UC]?psw7:.M\6W7QD\jSn;۪=PG?1YD <b9$] gl"^lϫɞSX(?yZ܂#[, ??ſū8r*OtY?g&G`8"S1Ϣa X~Θ02 k$^Q/zŨWDb+^1Q׌zMF! QoQ9>'-Qoz˨D}/Q_QzǨ'i1$ZyU1`1ŘgQ,cb\1bJƵ,F=qd\1`1Řg1k%ZyV2b̳ĵq-RɴgՀ>rIvJw;<̻ JQAa|۔2JCH}|mr_!?o2x~z}3I/!S4^ ݛ=q=T_;ۭ{%]?vۛaR&*Zdzm޺W.BJj&E[#\ɳJ''TXT?= 9y>F19(|*TZ'AiSiB 8c5.\@d.M`u_47JJfbjVZ.R2.3ֲ9a%ΊakCŜ5eˊ~9mݔm>=5m6S2$ڱ6/wÞXBHb "P$-\ӡJ,mZaGf(Gb,Hf+*zEɲ Z=OtȘrt Yv5ʍpvEl0_<5p _A<݄B5*<:աjU!nە C5:dژ= :U\;cÁ1毞AbMT\Nfβ3:~."^m#cY^2_x(8pI49w1I RpG/yZU+?^F\5t4q#zٴ(x) m8O endstream endobj 18340 0 obj <>/P 75 0 R/Type/Annot/A 40132 0 R/Subtype/Link/Rect[154.800003 665.190979 333.25 677.221008]/Border[0 0 0]/H/N>> endobj 18341 0 obj <>/P 75 0 R/Type/Annot/A 21351 0 R/Subtype/Link/Rect[154.800003 652.190979 282.329987 664.221008]/Border[0 0 0]/H/N>> endobj 18342 0 obj <>/P 75 0 R/Type/Annot/A 43777 0 R/Subtype/Link/Rect[154.800003 639.190979 311.23999 651.221008]/Border[0 0 0]/H/N>> endobj 18343 0 obj <>/P 75 0 R/Type/Annot/A 39512 0 R/Subtype/Link/Rect[154.800003 626.190979 394.600006 638.221008]/Border[0 0 0]/H/N>> endobj 18344 0 obj <>/P 75 0 R/Type/Annot/A 38986 0 R/Subtype/Link/Rect[154.800003 613.190979 274.549988 625.221008]/Border[0 0 0]/H/N>> endobj 18345 0 obj <>/P 75 0 R/Type/Annot/A 43662 0 R/Subtype/Link/Rect[154.800003 600.190979 376.029999 612.221008]/Border[0 0 0]/H/N>> endobj 18346 0 obj <>/P 75 0 R/Type/Annot/A 43618 0 R/Subtype/Link/Rect[154.800003 587.190979 380.700012 599.221008]/Border[0 0 0]/H/N>> endobj 18347 0 obj <>/P 75 0 R/Type/Annot/A 43587 0 R/Subtype/Link/Rect[154.800003 574.190979 286.779999 586.221008]/Border[0 0 0]/H/N>> endobj 18348 0 obj <>/P 75 0 R/Type/Annot/A 43544 0 R/Subtype/Link/Rect[154.800003 561.190979 292.98999 573.221008]/Border[0 0 0]/H/N>> endobj 18349 0 obj <>/P 75 0 R/Type/Annot/A 38282 0 R/Subtype/Link/Rect[154.800003 548.190979 276.119995 560.221008]/Border[0 0 0]/H/N>> endobj 18350 0 obj <>/P 75 0 R/Type/Annot/A 38254 0 R/Subtype/Link/Rect[154.800003 535.190979 303.450012 547.221008]/Border[0 0 0]/H/N>> endobj 18351 0 obj <>/P 75 0 R/Type/Annot/A 43448 0 R/Subtype/Link/Rect[154.800003 522.190979 283.029999 534.221008]/Border[0 0 0]/H/N>> endobj 18352 0 obj <>/P 75 0 R/Type/Annot/A 36772 0 R/Subtype/Link/Rect[154.800003 509.19101 350.679993 521.221008]/Border[0 0 0]/H/N>> endobj 18353 0 obj <>/P 75 0 R/Type/Annot/A 38208 0 R/Subtype/Link/Rect[154.800003 496.19101 455.540009 508.221008]/Border[0 0 0]/H/N>> endobj 18354 0 obj <>/P 75 0 R/Type/Annot/A 43321 0 R/Subtype/Link/Rect[154.800003 483.19101 260.429993 495.221008]/Border[0 0 0]/H/N>> endobj 18355 0 obj <>/P 75 0 R/Type/Annot/A 38179 0 R/Subtype/Link/Rect[154.800003 470.19101 313.998993 482.221008]/Border[0 0 0]/H/N>> endobj 18356 0 obj <>/P 75 0 R/Type/Annot/A 38161 0 R/Subtype/Link/Rect[154.798996 457.19101 314.55899 469.221008]/Border[0 0 0]/H/N>> endobj 18357 0 obj <>/P 75 0 R/Type/Annot/A 38153 0 R/Subtype/Link/Rect[154.798996 444.19101 300.109009 456.221008]/Border[0 0 0]/H/N>> endobj 18358 0 obj <>/P 75 0 R/Type/Annot/A 38137 0 R/Subtype/Link/Rect[154.798996 418.19101 402.519012 443.221008]/Border[0 0 0]/H/N>> endobj 18359 0 obj <>/P 75 0 R/Type/Annot/A 43118 0 R/Subtype/Link/Rect[154.798996 405.19101 388.170013 417.221008]/Border[0 0 0]/H/N>> endobj 18360 0 obj <>/P 75 0 R/Type/Annot/A 43093 0 R/Subtype/Link/Rect[154.798996 392.19101 268.779999 404.221008]/Border[0 0 0]/H/N>> endobj 18361 0 obj <>/P 75 0 R/Type/Annot/A 18629 0 R/Subtype/Link/Rect[154.798996 379.19101 330.630005 391.221008]/Border[0 0 0]/H/N>> endobj 18362 0 obj <>/P 75 0 R/Type/Annot/A 42994 0 R/Subtype/Link/Rect[154.800003 366.19101 369.718994 378.221008]/Border[0 0 0]/H/N>> endobj 18363 0 obj <>/P 75 0 R/Type/Annot/A 42970 0 R/Subtype/Link/Rect[154.798996 353.19101 380.098999 365.220001]/Border[0 0 0]/H/N>> endobj 18364 0 obj <>/P 75 0 R/Type/Annot/A 33060 0 R/Subtype/Link/Rect[154.798996 340.19101 277.399994 352.220001]/Border[0 0 0]/H/N>> endobj 18365 0 obj <>/P 75 0 R/Type/Annot/A 33036 0 R/Subtype/Link/Rect[129.598999 315.490997 487.459991 327.890015]/Border[0 0 0]/H/N>> endobj 18366 0 obj <>/P 75 0 R/Type/Annot/A 42859 0 R/Subtype/Link/Rect[154.798996 297.290985 286.570007 309.320007]/Border[0 0 0]/H/N>> endobj 18367 0 obj <>/P 75 0 R/Type/Annot/A 37980 0 R/Subtype/Link/Rect[154.798996 284.290985 306.700012 296.320007]/Border[0 0 0]/H/N>> endobj 18368 0 obj <>/P 75 0 R/Type/Annot/A 37572 0 R/Subtype/Link/Rect[154.800003 271.290985 371.029999 283.320007]/Border[0 0 0]/H/N>> endobj 18369 0 obj <>/P 75 0 R/Type/Annot/A 31773 0 R/Subtype/Link/Rect[154.800003 258.290009 308.230011 270.320007]/Border[0 0 0]/H/N>> endobj 18370 0 obj <>/P 75 0 R/Type/Annot/A 42712 0 R/Subtype/Link/Rect[154.800003 245.289993 308.230011 257.320007]/Border[0 0 0]/H/N>> endobj 18371 0 obj <>/P 75 0 R/Type/Annot/A 37948 0 R/Subtype/Link/Rect[154.800003 232.289993 308.230011 244.320007]/Border[0 0 0]/H/N>> endobj 18372 0 obj <>/P 75 0 R/Type/Annot/A 30289 0 R/Subtype/Link/Rect[154.800003 219.289993 302.230011 231.320007]/Border[0 0 0]/H/N>> endobj 18373 0 obj <>/P 75 0 R/Type/Annot/A 42594 0 R/Subtype/Link/Rect[154.800003 206.289993 308.230011 218.320007]/Border[0 0 0]/H/N>> endobj 18374 0 obj <>/P 75 0 R/Type/Annot/A 30227 0 R/Subtype/Link/Rect[154.800003 193.289993 296.01001 205.320007]/Border[0 0 0]/H/N>> endobj 18375 0 obj <>/P 75 0 R/Type/Annot/A 37905 0 R/Subtype/Link/Rect[154.800003 180.289993 290.600006 192.320007]/Border[0 0 0]/H/N>> endobj 18376 0 obj <>/P 75 0 R/Type/Annot/A 18380 0 R/Subtype/Link/Rect[154.800003 167.289993 319.25 179.320007]/Border[0 0 0]/H/N>> endobj 18377 0 obj <>/P 75 0 R/Type/Annot/A 37893 0 R/Subtype/Link/Rect[154.800003 154.289993 353.029999 166.320007]/Border[0 0 0]/H/N>> endobj 18378 0 obj <>/P 75 0 R/Type/Annot/A 42399 0 R/Subtype/Link/Rect[154.800003 141.289993 430.149994 153.320007]/Border[0 0 0]/H/N>> endobj 18379 0 obj <>/P 75 0 R/Type/Annot/A 37876 0 R/Subtype/Link/Rect[154.800003 128.289993 308.230011 140.320007]/Border[0 0 0]/H/N>> endobj 18380 0 obj <> endobj 18381 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18382 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18383 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18384 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18385 0 obj <> endobj 18386 0 obj <> stream q /X1 Do Q q endstream endobj 18387 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18388 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18389 0 obj <> stream HksHW~[Y}-Jِb@Nɤ( șɿn]8}d+/~uԯw)yfwE޽v *L b{tqnڌV'5,lPfZǪ]YxAvqs?eyoFMDgP=">ĵ<myW eIKKuHdK~c﮾F+{^'i|Y9//2Φ̴}Pj+7AdXrn{MEw="Kb1-DZ<1|HXS÷!jq &)Ju h zT75I1=3=s=s=s= Ľ Ľۈ{[so#mͽ5;{Gs"]ͽw5.{{Os!=ͽ5>^,EB BMQ{I I-tPZ) q!ZjZI I-RːBMQ{- I-$jBkeHj(ĽZjBR 5E!2$PS^K-CR BMQ{I I-tPZ) q#Zj9ZI I-RˑBMQ{-I-$jBkHj(ĽZjBR 5E!r$PS^K-GR !BMQ{I I-tPZ) qV ZjZI I-R+BMQ{-I-$jBkHj(ĽZjBR 5E! $PS^K@R a#tPZ)Jw5E}}A,v1n#&8$z2LeǕhU]qp[?dT`Hy7o3ܮf0L[cՠWQd5NfN˷x.oih0X -m OaϢL&3ά= ۟L}>:I8 ~x}t( >jd&ӆJVUvzA* >̢·:Zi0:Q?`0{4ƪcC/FQ{4acU>.F$4TzU? Ax׭80 q6Q|dt? ypNLoW}0SO#^(Iv#nc2Q@&9=NYa|omM"YZu{(6][j@NbVy6N,1:*}ljz  CV4CpT8KDDmuM#ٴaq8m] fwl55OUbв,z<Q[M6(i\>gK3yGye. a8,̣KϿ(Rn,-@XҚv,z%.31_HDBWO'Sxh5)@X5-V+毫l3eZ+m`eQ=+3#':*uܰO[):_vqӟgXydCam#n2#)mIڦEYΘ&vdɮSK3z:~';,xC .H#]m%ρ,N6L^,.6,#n}wKcJs!j4Nd=Ij>|&ߗ5$r7'uٺ?-Fը f˻5$_D9>k*[-i[P+sPMf/}2a_z 2]</z0):ٝ.XxԴL]/TD˳MʪjZb+J%;.m4ɲTԼnɍک30&|~"fWAPz>JRuî/zؕ$ϼG`^iݵLV'z]:. l/=jXM8Iޡ T1a"pxߞZAdÎ;1'Gendstream endobj 18390 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18391 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18392 0 obj <> stream q /X1 Do Q q endstream endobj 18393 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18394 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18395 0 obj <> stream HWkoV_q7@TмqMbna3G*)Ivs&jAbe<;w<~Mj^xUkdCb+C`'3E̙U7(5"kTƛKj9[yY5jﯜ^uƚ}T LEHK3GU=4˅ͽR=}L#u#v?=;3_Ť FsqaXV޺E(EZN??GӻۯfS7ڐ֊GG?hYU&YZ㤗_ӛ~ލvNAz)c", }z46Y@");J#_E؎7Q/2e"t$B ~Qb-?]Ʋ,):Ftԛm|for3 u' Yv<]]}h|N.OJ{(oDK]xU可ڶ yg>-'er-'=޽=vt^s^L.g})}M&FgRҼ/o$=֟툼Y`cyUy Ý.Pm -VW~=Oόa, ճY/5d[ v,=9~ͬYndnV.Nj^O{4v|vrכ=Y6S`wDA"z~dzƏwvsw翌g0˩M0``U|~C ?9,^gQj?"྿}\eO~U޻\I&f}!|*RZhVPZʔV2\i@+WZ*V URi@TZЪV*R%1fi--,вJ-Rw cRw cRw cRw cRw cRw cRw cR c֒@%,rA%,rA%,rA%,rA%,rA%,rA%,rA%,rA%,r@%,%1bKY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>Ĉr/1fi**G:FC{5n~M\g.6/wSUi|OF4|w|>ptSFw鞶P?͖a |_G&v9:b%4m3~4lj=fl֌텣{|x pNNiWU~IRXoHcmD(Lvkbat//xiUu)OZ폢cJP۷QI "EԗvMpAd<0E6aa=WOO )vK+I(pF[툔hqmw{GfB:*A4VEE%e;aw]KU&*~JyQ6:pp[ߘhȸKx7M4xUϩ U\9 .1 %80\v~|jg3Xh8; w !x{Zendstream endobj 18396 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18397 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18398 0 obj <> endobj 18399 0 obj <> stream q /X1 Do Q q endstream endobj 18400 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18401 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18402 0 obj <> stream HmoFWfTc& $mШqhef Zk;,cA"3Թôճg_Ջ/|/3^ҿ֫P9]XUN:]-\]eF5*;O[]N|jd*&YL*>ֳij|bC>2A۴n⎗"eYVV^'_.ZmbKrSo΍7{ټ]z_xH,fBqg,O*"7V(kV} EWhS^"0>f1p&J&2N@\#JnǵD#)ų#s-Q"H@z';މw"HAz/>"}H_H_H_H_H_H_H_HA(G^̬C˵Efr(kS5dz%s-Q`jFH/ւQ Z kS5@z1L-׈Z0\KZҋ`jFH/ւZr(^LS5@z1L-S5dz% L-׈FLϵDQ ZkDbjZ% L-׈:0\# Sr-Q`jFH/ցQ ZkS5@z1L-׈:0\[dL-׈鹖(0\#JQ2=kDbj=Zҋ`j(0\# Sr(^LS˵DQ ZkDbj=Z% L-׈z0\# Srm0\#JZr(kDQӟErN&N5PT*\;5Ydf^UݯGfY?Uϻ~>{.W|\ۻwݟ׽Wiuu1x5d.WO˞?Wg>^{UJauu_ַiB[jVG]~hKr ~.E^HL*n6B.ټ]״Y!]fŏʠ"ݰ?|s n$SRv#^ݨ,-Z(32#FT / +*W! Ux«^W%*U +r/K/%(2/ Kނs(%zoAF\# x[{D-=׈^kD/{ z5QҋkQKށs(%z@Fw\# x;{-OǔQKށsm==׈^k1Ž<=׈^\&\&\s$\s$\"\"\\\S\SQҋkt^^SrwR6vbHt(FMW6cWزe)WV;W!¦WuVT.f,<',WGUt9`J/%61,mq"Tڛ@:7h7Sc#_մ2dԾyk_jh7^j^Vo-难x`KI^O87Z_YXLャOFo~ɢVtS뻭Szm:ާ?>oӮw^?x O]p %ͥjzլEM]*:l'|jSYO]]#r!m>[+W $˵lx:GyB jݏ)uϞ.Tųo*=7&ѹG$3= ӯRspnڔ=ZAci|Exټ]ma]M,g}.KSn%8]^A"LuZN}uD5VJC_rh7QTr#ccy[mWB%QP//<+  «^*W!JU x«^W%"+Ƚl.FZ 2/#,/{ z5QKނs(%zoAF\# x[{D-=׈^kDI/% kD/{z5QKށs(%z@Fw\# x;{D=׈^kD/{z5z5QKރs(%zAF\# x{{D==׈^kD/{z5}QҋkaPRow焸%M_T6|sQ'զO?J?nw^e?|URʹHr{b9n{+vϹ\H݇=T,S}]7UMBM{m'}?Қ0Bԃ$fRZPI||5bKl^hfofٙY D!L͉&!'Qq8F3XG-Ѓp5jJhcj}mȪto`rXF00I4gN(cmͶ\L ukG<w( Pn~wH X%4mxHd[Ҝ| Ԅᾯi?1PUdh.Cp¦Z -)i[ bU˔2,1duBik BʅwOPuKPyɌfh Nh4b?7|qnќN( fWkק~Sqendstream endobj 18403 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18404 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18405 0 obj <> endobj 18406 0 obj <> endobj 18407 0 obj <> endobj 18408 0 obj <> stream q /X1 Do Q q endstream endobj 18409 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18410 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18411 0 obj <> stream HWko6_A`ȅMny,lFHc^㸋"<$ﹼ<=ݵŋ___a|k' +ÂXP(WyuNT |>z7  nw6Y<<\.ZsoC!boW#Y \&FޱO_[3/!W$b-$:6ޕ6'q9őB;$C;KJea ]JWKꕣ^ꕣ^굣^굣^굣ꍣꍣ> P8B} >$ԇP9#B}䨏>&ǎP;B}Og%aZ+=EƐ媷1`1dm YzZCq"\kc";Ukm Xkm Yzǵp!PV1`1d*µ6,BZEƀEƐEw\kZ+=MƐ媷1`1dm YzZCq&\kc";Մkm Xkm Yzǵp!PV1`1djµ6,BZMƀEƐEw\ k5Z+=CƐ媷1`1dm YzZCq!\kc";5km Xkm Yzǵp!P1`1dµ6,BZCƀEƐEw\kk Z+p!Uoc"\kcr\ O0-YZy+yd[Lp!cʘ~Jx0aw', Yv}WЁ9_E8+l˛qy,u@E55H7şEu.FF/D}tu76oFZCVXub_ޟ۴t zhdoOVиKf5vٝϳ>!uxH= trSOW^Mb~h'|LOq$A";0+eM켘VTPVq`^6Qn7+/ r^Z\Bu\w!yo/VW׿\y-HN}W'gT&AMiUNC#mܣ+"F-jh(*9},j&}XPϡ}̡3+w}iuӁ^d=G- Y}_lv(汿T]<Сz>R5iHA23MYe!)b/~cѡtA1ȱd*Z5)^_!>/1-X=*VXCl]Zp b{dr8;xB1 TF/;˙2GY[4~2>`0\\e5V~V|x^}p"0ôӴ%׼fyd';UT=v3&}i3toEm뜽w/>xeFngEUce?-2Aؕ^ c'} ˈn8yb~ /cL]QØş3 r9P@e' Ntm[zu .Ԗ\~cxpxˎtok;c,4Wu1b*1}UwYPu)nj_@ e4>=˂ Vo6Q!LGY jD decݛaG_g" "o! X bm K ~fyӜxiYCѷr~]uHʶm {|Jq܆9zaױ((@Q^<H gGe9KBɔDQcH4VZ@)sE.t5[,ѭ/EԚ;Ӏ[]Ie#G[y/.U7l L4/+Zf8a&ă5hٕBE2NrގJTD->[ a..0ÞcvpZm2LذxHo<3k}rA\j036,J[ۛ@r<.*JY{>c^lt{wkooWihQ0?9L{+GCMG?BPvȣsh2M-@'=Tnv_/iФTY}xwP's4حgK7rru螎X;*G Fn7ap:FQRjz8(xR-M.L@A3s|ROoa2[w~I> D xfoDGq0D(x͆:&-ᾴdip%ٓg=ehTG#5}4 rk$ "+ջ3KKu Ҁ)$k(344Mk8A3&J+`CЊԌ%ˣo,㣶qhgx3ho-ES1c }u*הEۆ3_, cn5Bm. [dή}Zظz]+ә9DM \Y@xz`΍l+֫.W{p#q3 yy91ٰHDg,VJ&"N 4HvBLAɴ}A X@@};4/Ƙ vZFK|Iy󘰯 iM#Y `RfkE)>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18413 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18414 0 obj <> stream q /X1 Do Q q endstream endobj 18415 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18416 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18417 0 obj <> stream HWob )i/\rK[4B[ EltC~(2ߛ\<]Ȼ_zWzωv*oMsܦިJ$S7VJ.Qm}zz[mTm\ި.y5K.g(f$I2TJ5&Wղw^MtG-wd:}__v^͖89PO9} xJ.]^AVaǫYf!G$fMt|]n?$65ALJ[u!S+MB16$x GgV8F,9"Kkb<`qZK,F-po{ [Nw=p{{^ρ\ρ\/B/B/B/R/R}p/:Ai9M h-Lj%s,@k9F,cĒ9Y#p/Zk@k9F,^րr,@k9F,^րrXhXdrXh{ZZ˱{ZZ1bcĂrX=" cĒ9F,cZ1bcEk-h-" cEk-h-Lj܋ZZEh-Lj܋ZZ ,Z #p/ZkAk9Mh-Lj%s,@k9F,cĒ9Y#p/Z@k9F,^ցr,@k9F,^ցrXhXdrXh{ZZ˱{ZZ1bcărX=" cĒ9F,^=x!!Su#dtKh9儖ZNhy兖Z^h@+Z9ʅV UBh@Z%*VZAhɤLj%8F5ZZheZ"cژ%@9F,%ro@9vYB cZ"c ֘%@9F,%ro@9v:Y\˂sXRctZ"ctZ"ctZ"ctZ"ctEZ"ctEZ"ctZ"ctZ"ctZ"ctZ#]Ƚ]Ƚ]Ƚ]ȽȽȽ߁Ƚ߁Ƚ́Ƚ̥Lj%8FGn%rACBp*]nWr6J: {'4Wi\mf_Ujz,fޞM?L |^6&}ZEYɗ]>qp.զnU'E}_UVz517(^FRjB: "az>^~DiRrPj>n#÷*Ox¤Nkljmws}~ }>Zڸ 4;=;ljv~Q}nfW?oϺ9;?n%O[>KįdD/joq#۪o`M#sMwWzhoݹZnSⰹgtL-ڮR^ztgEZ kue_Y+<|4'wYls[o˓EKSmRgE34.吒eS캾»vov 퓳3MΚߐ&gi4a{:>FQmVUl~ůSjcLsagrÏchNCy^tCfذ¥ڔf4nv[3:oľ]4MuV﫮<4#Ͳw͹R]|4 D4ލ(뎣]BIUӥp:7O3x~D}ؿ4E_ۺYjv}[77nWwD_p(S_葋6zR`eY7qdžN@ЩuH`~}ho:lSE>n9l $3 6γtD۩.'?oǧ@M;]<~s(>i[I:5L ,} xOkX@0%=aJ`1{ZÔb)żi Sy 8 %xOkX{'xOkX{'xOkX{'xOkX{'xOkX{'xOkX{'xOkX{'xOkX{'xOkXP0Y){Zg%:I׿wO'E2qDٵQcŷy+Wٱ'  ?W_>N6IzW0_ŜCɯߪ^0,VJƁjy/tzM;{c?~Ґt>j{kӴVKôW&+> "8Xޛ `WmWSje`k'͢;l~WllnћV<{<׭[ H=PsO٥NSowMξ^+8}/.+~_ u]WJձoMBb3+җWm5|2QzPW;4/,Gۮ.՝QԱU n4x{iLd^,aNSEx>7;7 fۼ{?V a ۢZZC+F p :v*^ tWDF!$13%t{jčGC -?AЭK~#PJ/?2endstream endobj 18418 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18419 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18420 0 obj <> endobj 18421 0 obj <> endobj 18422 0 obj <> endobj 18423 0 obj <> endobj 18424 0 obj <> endobj 18425 0 obj <> stream q /X1 Do Q q endstream endobj 18426 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18427 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18428 0 obj <> stream HWmo8_ 2bu) fbl+kIoFoɉl"%9~y8gH]ܷ_.| دz:+ )Vq#'.M"XŒMVwuַjUr{n"\ϊ N8ɘcdyV6˶w4Y*3/>-ȸ8mo7~wm9;}7S&5\E+#bl[3?a)c+8e4RV`M\~b$gB1.LEІ]h1*!1(I{I{EW{EW{EW{M{M{C7{C7{C7{K{K`Gs} yľ `_DE>Ҭ Dڶ$Tm"Tmه6@ m"GjCj%(B QHPmhC>R$TE6!`V m"GjCՆ6D#JB QHPmh&PmhCT>PmhCT>!*fE6!`V m"GUjCՆ6D#*B QHPmhІ(}ZE6!`V m"TETՆ6D#*BmhB Q1(B Q1І}hІ(}ZM6!`V m"TET Ն6D#jB PjCj5І(}ZM6PmhC>R&TET ՆmbՆ6DCՆ6DCb;4߬&B|VLu21ld" Z$P],&Y1j׈\,D Kts{Od\iiOH}Qdi 3q6Si}ginjRӺ~Yﻕ)Npqk4|L}ۗuxUMߖM}W<`Jz_otU嗲FCmq|;G8ťe \\}.|6muFQluQLOA Ý.V׵(Ze@\.}3L4x^9t[3D>\iF0$ԄZwч*#/]SWdb6 N*-v7j߆Rv_ /wC } B.fЍ+\N;@\MՒ,;eg}X"7Rﮔ4mF@}*PǘIqOZTDZp9gOLӊLf,{4 P B~?\zZ$o{Cfpm]CC/PVېP^UTVMІTW5~W/$[[q[]ިsnдCJ1{]U3X0P)n]E8{0Ό=޽^]I )􎾰l4e~yWC?_~1*bS/i&7r( z ;a@tf!CۡV.3YɆGϗ߾`ep~q҄(Vw o|B-+7jaWu^}ygusVAbzIB\fvBBY;vw~}[-Cft78 ۷mxՏt_V(ߵ%>xk:>evQݤ'Iɴv\c, O*:s ϸ8X gf ABPuA.e%?!g2ED&<`cթϳ@q~3?tt+{燕YD> pjwƩSXD.r0pp$"W0KixEhVdy7r ;۟ diGG'LxZӟӒy!A2j r3j2Ԭ~j M,PS_xܯͧ3{F~m]~{oѝ*r(r~p(8{7;xa-r]"4AgFGAq9Zi-c^؆W cI;;% SLfq噿}4onȕѳg *8v/# 8S# Glȍyd^:bh΄KcHl/tO ]hqbފ2CASd8u.J 0ИɛGnTvφ7ڭh} lpDI ܏s^%mA#؃{:7Hr[r) ϫC$tTSr3(@EhG$LF$ҦĐ5Wcʞ@(da4\Ra3SAj,% B]<_xQyX:n$@A"=%z:i g8(ӤƸ旇aCLUPܱE;+"_0hԙ f> 5/A .z>_OUEct]KN`JD[^[{j1ai\Q\[P%HnؗKJG;zlQE:D#H\+QE}b(,ZRL Q/f9by> a3> endobj 18430 0 obj <> endobj 18431 0 obj <> stream q /X1 Do Q q endstream endobj 18432 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18433 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18434 0 obj <> stream HWmܶBuY'H4E $) \6 畭._z#gEh!hf_E7?p?q/zsd2H2͞} w!'`xS}O ^^^>#g`ys} f!ZwqBQ>{(BQ>{ׇ(Zׇ(ZN!`節u}"TET պ>D=rBPj]j9Zׇ(ZNPCS-'TET պNu}ٻ>@u}ٻ>D]պ>D= BQ{OPZׇ(ZA!`Vu}"TET+պ>D= BPj]jZׇ(ZAvPCPC!gE!`Vu}"{j]պ>D=JBQ{OPZׇ(ZI!`Vu}"TET+ պ>D=JBKպ>D]պ>D]|y boef w:'QiO ^(oϧS]}ܿYR|Z>]쓴7*fak.<ӱݗ]uy8jk}UZֺ;7PʹҝIɔia>;^ǚoA"gOb"Y^LT6`q02XKg _.Ql}ݠ$,6ܞ0FyOIl}ؼ 4X@.s?8 %:2aŲR>l;&6j߫H.wb, ۏYmkVZӄkt]H᏾j>?Mt1&"ɢD c"2P99\ JF f6SY)h%-0rX"E'ƥM2$ Ó/P.qO}(=j"Ԟg:ٿz#wTk\916ԖN;C$ DZk\^QmpۍfLqV(A`1=D. L+ԥatWԣX<1Pչ?Ai攆b(ָC V?-H9&55}]v^wwmw*R{]:ͭC{o &dbYxSoE*UB]"p .fp*\,eX{8F8 ӹZPRXCHt3-5 㴦/N 4@=TBl:в\\qG J[ iX{ Xpn鍅 sf 4[/u SlaQ7xέ$fn`5$& 7s"аi FݸP"eit &,֤Q%V6xPq۞k&IM\a*6LahH6! xRO/lXܫq:!UU`m5".Sq+ bl;lӨ˗'_ª-˳, .zT:d=[v8Z޾9-O<ʸԂV`BGLz֣ ԊGZx}'h'n"R4s/$F)71WJ u%bM-”:&_a ibc~]Z`f%!l]0S4$08U <CUbO3{߷ X0\o6垏kRuHCDa=CA0zP8j<Bǧ]_;8iZ<|c}c}]TMZr'x(,zy U:akrT>Xc㴓i9|1%6c)]8=`c0N(򱳙yc A3APA%մM\0,] j ƯGSBHq|+hڊj͋T-zCT(B?wR"8ˆS{l'c)]nݙhg@|b+p-p|g`5.V][ɀ)Ø/)fY>X}1.>ibG|Ya1T4U D+t \`H$%=mvQR m`K[K#oHꃲhbQ gH>yE܊wkDJsq1;F츽8}'#4U,2BKphSy,1< Z\sT,Lw(7>:DxMZʋ:˫gȖ+!aj()!2y }žźoٽGU8i@'P기ܗmGLIC H'Ss ~Iw{ )rOIi[n -֎`gPv9]B㌷K9d.aڭ^` ̨͏&iqb6f4_Q vϙ]KH)QҫXDe3Yֶ:)g AL&352_B2㧏thpɬƾ5Laⷲj9qNltʳ¾J7|L;):]rhDM9i$ `{ ] ɌluS?eE 0ƥAendstream endobj 18435 0 obj <>/P 522 0 R/Type/Annot/A 18436 0 R/Subtype/Link/Rect[93.6001968 663.229004 184.404007 682.908997]/Border[0 0 0]/H/N>> endobj 18436 0 obj <> endobj 18437 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18438 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18439 0 obj <> endobj 18440 0 obj <> endobj 18441 0 obj <> stream q /X1 Do Q q endstream endobj 18442 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18443 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18444 0 obj <> stream HWmoܸ_A_–7A&w84kf+{uݕ|6;CQo(g3C>?g^]?~懷W/әDFZ >:}YłoCVDzo-kwMp%lsHrOPquƅ[M/eMX]\I&Yv_!'`xS}O >%ا`y3} >'{h]1j]| Pj]| Q>{(B Q{OPkCS TEֵ!`Vum"{j]պ6D= B Q{OPkZ׆(ZAֵ!`Vum@umٻ6@umٻ6D]պ6D=JB Q{OPkZ׆(ZIֵ!`Vum"TET+ պ6D=JB Pj]j%Z׆(ZIֵEֵ!gEֵ!gwm"TETպ6D=*B Pj]jZ׆(ZEֵPkCS"TETպ6@um"{Uj]jZv 4Z׆(kZ׆(kC>Xmti.()TUyX[$Q-<ɜr&l]o6b:|߷e}꪿LBW1|Օ@:lf(mYR&-=Cй;6'gsXFt/\i&.x<`4)ך&{=K% |]g(^d. ()@ܶe93)7} ^'"A[}/̥璧L^:a)*.h~aӶ7EuJp(Q={Mr(3Pbl'Nj8iGC\\ی/QKԷx0)u!]s Cućg"hfP4e]MTB'ĊpCЍ&S .RxCVBNM:BSlm2cSݩ6 Rorxv\dr~z%?尽b&,ap1[6 vZUؕʾ!KcUsA<-ǡK;~R_Y}iV^jΕyo9lY:0G Iפ͛f|/>u4P];ϒ9Qjfpͽ >'YP7D~`E,|( O%HW^ڒG"W@!.H8=}Q7C4c&QxH N&XAjfpk‹9jgj;;!uqnC?Y[qvI4J!:]^:Z0*vwk9ch#,Ed¢U5 D{LEe+sD 8 8P Šm#Cb]Xw3_P6?TĶuz{Ĝf uu"H&ΠwOjvKԹn?p:3q.H&ڸ>$*Oēo-Oa _BZcT~sXJĒg"W6~nk^O3 ^S;z%v#|qtLZ\L&@o0T|C4 vDL*q wG!HU-.DbDQ6\dH7}d),"5րؼD;!c|[zu~{U9.]zrJU6-Ғ}nF^th>ٙ%œh_̶ _܅CdG%7Ձ*K:ĤzP_n{ 3՞t{o\MQ=<>jjHIܯ}@y>d{ *XnuT ,X4xS~xŧ?tvendstream endobj 18445 0 obj <> endobj 18446 0 obj <> stream q /X1 Do Q q endstream endobj 18447 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18448 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18449 0 obj <> stream HWo&_}THTA BeVeQHz9kvm3O%Ls3ouc<9I̳g/^DF6Ķ4LZ8s&|:SWof%cdDViRخr]5rfet;g>|lfJҔi0u4sw2ĩ́m]# f'B sYqMtW.MF,iɇ񫣃w6UٗcbiO761'y!1s>]JI2]TSjN)86$1fq#%0f%[KXwʽr{{+}rܧ}ܧ}ܧ}g}g}}}}}}ܗ}ܗ:rcv/1bJYڽĘKXcpZ@k%,^ցJXcpZ@k%,^ցJXcpZ@k%,^ցJXcpZ@k%,^ցJlyZ1K@k%,^b%F,Z1 WcpZAk%F,Z1 WcpZAk%F,Z1 WcpZAk%F,Z1 WcpZAk%hĘKXcv/1fi#hĘܫZ1 W #hĘܫZ1 W #hĘܫZ1 W #hĘܫZ1 W [G)hĘKXcv/1fЁEIK> ,VPZhTi@+UZʔV2\i@+WZ*V URi@Z.Zc֒րUZhY倖SZh;{u!KiKY@KށK; YJ ^bZ*^bkRZ cRw NC c֒wʽwʽdʽdʽQʽQʽ>ʽ>ʽ+ʽ+Ę$r@%r@%Gr@%Gr@%ƛ|r@%ƛ|r@%wr@%wr@%sr@%s%1fi-hܧ e\e0 8[Gxl5ETC;83YZt?fޏę%$";grAd0V/L7fW_M]Ͷ<6j~}uτ1˝MWjnŶ _I"|E57$̚vcUin*Csٛjcj5ߑ[tw:踣fw殮rvc+v~ˤa.ghp 'kr6,v92]'Y$ہ@m7n9\u!Ni%M+Fzg wѺ3Mey<`qǶZ⺰_\~Cs6,_?޻ACRu!hTfקrIJ~vջ?#_.ߴ?[W ^ϭ? UD: =,)`8 .[hB׏<=>5.o6 ӺM^񪮯[6у~rx@&.<ph ybכr[j.ۣw ujO&͕1.߂ބio67g4{2Zm7E8=crڷc;L o;pt~.Wa<3݋'лe>mЀOv5FW!v4&rB:߰!m}x;]5oy\w(c} |JRZhVPZ)JV RLie@+SZ9ʕVrUBi@PZ%*V J%1fi--,вJ-Rw cRw cRw cRw cRw cRw cRw cR c֒@%,rA%,rA%,rA%,rA%,rA%,rA%,rA%,rA%,r@%,%1bKY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>Ĉr/1fi2.2;GڬjuԆ+X2_`XNYtJ"͢F8 \H_l8iiǾ%GH ;k?2ʓ,W)V,P_Tg;-|X,SNuA\M߆~haPVCӵvdETt2(c}ikKd" .V@P,/χ'NT&3˫>5#Wp4йkZ^6iM.`у'WgPtzw)JdW%KOD"j=G Bm.O ZP;ASPg)iG G}:8g3g;J ۂế$c\& W|E.@v×ըlcͿ&y8t.>f bdtGJ)+ r*U"qH!5TH$DFY"ݳzBfh ")D~#;DtS*zQ5D(;4z;6C/r#Sd}2:8!c"C>e4vPJ7jWL-z՗FO ?SRL<\N. ?ŊF,lI[mv'T~'΃ʽ y,eLhJ7@P_=㿯/K '{XRR|ACЖkEEcOp=l&EmI"9*sso*4z267p6<%`Im,Xt[? Z &j{H=g$+H̗WdOnJ%Pb9s"Qt(r,x`\h[ȲK>t{mj2&:v{|G*̽8ԆiCo;nfVm6Ot6ǀܪ1;dE'e 1\qi䓆JF{.V`_[3OL'ْujnKt}˒쮡@Ś辻/]{zG㹴{涹0 wɚXIf%<VQV>>;+ +'> tXGvZlZLqj}K*,l(]mNf06/)1hgz361cÀ[ɩlt{a*[&4?~z zBvЂPzpb _ڍ0/37įmn-S2%dk@"˯??<' Iendstream endobj 18450 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18451 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18452 0 obj <> endobj 18453 0 obj <> stream q /X1 Do Q q endstream endobj 18454 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18455 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18456 0 obj <> stream H]o6+ػqHnM-6l3p@˶Tۺ~y43.PPWҪ!ϟ_}w$&/^Uk$eO.2&DPIE%(&w#9~ɶi*eYSR9j> 6XbaLcCEtvv7kշoTƊD?v&/w]5Ǖ&WeS6Xiȹ'4V1ڡQLY 7|NXLH_r1&7$")]DV}dؐb@~QPsB(_;cx?G@=G@@ԋ@@ԋ@@ԋ@D@D@Bԫ@Bԫ@Bԫ@}O > kDkDkDD D [D [D}Y֏G\c@!c 1GPkk9Z?(D}Z֏֏9 Q#cBkPkk9Z?(D}Z֏֏9 Q#cBkX ĵ~Qz?Z?PsTޏ֏9 QV cBkPkkZ?(D}Z֏֏9 QV cBkPkkZ?(D}Z֏D\c@!c 1GPkk%Z?(D}Z֏֏9 QV"cBkPkk%Z?(D}Z֏֏9 QV"cBkX)ĵ~Qz?Z?PsTRk$1)jmdڨ![DCVXq0'Xݤ=z}Xm]ݐ}ZgUV7U9dOj*bN吺O+bސKبvx[Cn͐Ղ&=wb_s];~3\P`fUV-W]Ӆ7#ax7Mʦkhqj.s”5\-S>pWo*Chz;d@ Tp}ީ;p܀ .TmrM۲*@rVyMXU^qzR\)eUUVK\2vbaDR8iq*Q臻3π*a SxE/ᳲ4%)N2ҽ3uß٧SbɋԔ'n9Ӽ`K7XP6$`;Sfa SHp&4LA^?[*S4>e&\稥Znc2$DFMqZTN8@S=` X0<7e*:n a9>dw:- (oIO7`>lXvCI*}tmeqv؝;Mbd $n-FLsUBVgp i`A gZ=!NNZgû\;Q *hS ]ڈSlA8iQ *h|dHaF$(p2S.LrnEr Lm/%UF ,`C: R`DX7 &w5 4?$6b8N]=hL> 0Vk>$\n¢k s ,eXQK%2x*Y<׋0cPT&J,nOȷFe>ئecU\.UgxӂdnHly'$v{Ӵ%n%z,\w [yыt^&p^XgfmC=_t@nzSݟD >6LB7-u#Ny;ZZ f}H?q7s?r8;eNZR=MO )Zhisq">9Yck\2m{c/Ck}W !Xzz`R1L_;kwq+!GڪU#y(}F4un Փ1<,A5ՔYlIf񷫶-)sz2$TLS6|cH/F_4h@+ =xĈgʮV7'Zp֏B_K~h]\"b8WѿIw=nendstream endobj 18457 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18458 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18459 0 obj <> endobj 18460 0 obj <> endobj 18461 0 obj <> stream q /X1 Do Q q endstream endobj 18462 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18463 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18464 0 obj <> stream HWێF|W4aY{77A}NR%eN _cDΉcRHCŀe g YA`Qp[ -sw{;c3^p }>s 3>g}.ϙ\p3>g }G=JK:Bk),bZK1dqCwO1` Vh-Ő%gBk),C Vh-ŀ%bܳZC R Y{Z+bܳZ'b),CwO1dqZ!KpZR Y{Z'bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%guBk),=kZK:Bk),bZK1dqCwO1` ^h-Ő%gBk),C ^h-ŀ%bܳzC R Y{Z/bܳz b),CwO1d '{ykU3eMUu{+QJN̓+櫤BY5gNɧ١<ޚbVݠp9-:Nim\,tc10[7m?fninaH0CVQ9ʴ!]nv7ҰZuԼ^pJRm:Vͨ'5,upi?:h8z40><?V[ dʑAx ڤWNy̯Um~%/_?avnt!AL )ǃ8<݌Q9MtOKQg)Ct}UhgﺪT}p.ە_k¨0Tbbuf]2B說.V[=>wMYԢ9k*թ).#ja:+R7>Z*|T ٵ|s-7+{5mj7ќχđi.=F xs])yTOM;ڿld\?yh;PLyݻ:yj,vյаboB2OOnn; gfc(6\5m[}R I7,;[mY1?n@M;Xb_iXXBWȇWz+ 'Y?fa $< ypizo4C}ѬVyr[~F" ]R{|X3~,/pb<9 jq&@laa:U:7mBqFcz?ɬ{6nۦѵ n n:wp _X[D& ~X ׋r۷_FFZ<Ⱦ VV13xi3)beK.j|S}۴3c824tuO.  +:"ܣ8QXn qfwSg>ZݧYW bDϻ3!50(zH|ݝۜU.,6^Uo`vZ8P-60f.r>| pt/< W':Goz9\ϥ ]i1v3EλMܿ,eע-&S_23^շ>l6!?wn^)8=;2lKG~KxHʾ!7;zzq7K2=\]Άؼw;tZZu?6}DSYedˠg,zl؏,^K? 䜖qbCҙi{0s1>wp80q_d6f?hNzR < |N60dEŴ噖< V`ZA L+2 ZiVδ A`ZU0(hEHlʵ(,E1`A0-#he-˴roS Y˽rO1d Z,V=Ő%h[!CroS Y˽rO1d Z,V=Ő%h;!CעS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1dq-K=Ő%h{!CrS Y˽rO1d Z,^=Ő%h{!CrS Y˽rO1d Z'zۄ{~$Q hKnbSڦNɣNs UUu cs|}|F}(~8'Q Q߻IXk8(E$jQNކbx|0_8pfɮ砱d0 Eqx:YZcZm84K}zjk߳}.옊<#)Ϫ] yQ{Q'_c7!,x8`!1 23Wx cxs:soݵIkWz֖ÚW7W?׷A QGm43zjEP%fBSekՁ=3`wیOU{{{ƺBjǕ6@(O! rd6Yk %,m A3UUz< oIBx{=тz3TB},vO en||ɫ$endstream endobj 18465 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18466 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18467 0 obj <> endobj 18468 0 obj <> endobj 18469 0 obj <> stream q /X1 Do Q q endstream endobj 18470 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18471 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18472 0 obj <> stream H|moFW /RМ7 lҴHЗ`K`?؁H(~()R*Q~}?Byw_v*iKިvYn36*O]7vood?a!{d6J& BZ5]6+}9o0b\ٿWݲ]KهO柛*Wy߭wǶu5tu9Q_.ԯ1şsV* ̍EM]Dfds&H&0FV@\#JǵHi-)ųk-s-R7"HoAz+[ފ"H@z'{ދ"H_H_H_H_H_H_H_H@ ^̬C˵.3`jFLϵHQ2=׈)0\# Skr(^LS˵HQ ZkDbj ZE L-׈0\# Skr-R`jFH/րQ Zk]fr(kS5dz%s-R`jFH/ւQ Z kS5@z1L-׈Z0\Zҋ`jFH/ւZr(^LS5@z1L-׺́Q2="kD\#JZr(^LS5@z1L-"kDbjZҋu`j)0\# Sr(^LS˵HQ ZkDbjZuS5dzE L-׈FLSE6EҪt1%y2.gζx~8fwhcV2j$t,0o̊VOls_&EϚ.89M^hJh]^7ibp{|}zVǧ~kv5ӓdAu'(Fv6Yҧ7ܖ>Z u29uȣ}4 x~v^NcEdw_vɺ]a-v,À&\Uڗ>&Z+/U+W~2nP|]|n/ϯG3j4ȭnÔ&Nrj?#2וvi3q'z0|_Aln}烇$hZ0좈 X-Q6)ԦAޙCJ&gF)|W<y G܏/jqzk@Vy7wc}NfgM1.fh]uB%0m-[JB/mDr#\0RyFHWOx>W9UhXtçUO_9{=~rVBE4trcT` gL`e r3V.r*VX*($E5tqf,-4ce,{#jX,F=%X{K`!TCb7B.roS ]˽rO5tq%jX,V=%X{K`[!TCbB.roS ] ˽rO5t ,{+jX,N=YT{K`;!TCbwB.rS ] ˽rO5t ,{'jX,N=%X{K`ܧB.΢S ]U;>V~ .llņHIkUUBSD ml6mZvPeTU]w_b^Гjݾ|+t :]Xc96塒y!6P:`Re?p |3@8U8,oH/]=vNpNy{>]E8511>p^".u!cn0za9QfTYcU1M;f='>񯫿?~zOphZV(!Y8Yʜ~ dx j!:2.1*P}%N ^Z嗳{׏~x8W,Ӌ^m4V9\+}Fv_=M美Ù5Ep9\Ψ 暈.g&H((z,@D`:LJ1GOwg%tDCW! ,XN`9JVXJ ,X^`yVX+X9c+gB`ULYTCgQ \Z`iK3Xb7B.roS ]˽rO5t ,{#jX,F=%X{K`[!TCgQ \B.roS ] ˽rO5t ,{+jX,V=%X{K`[!TCbB.rS ]E5p ˽rO5t ,{'jX,N=%X{K`;!TCbwB.rS ] }*j,K=Y4ο +d"v7y^yh LMWcr*hO,ʽNrYnUX"ke^ʺ2 ~I*q/am&@0ZChҘB.箛ipa^p%pM4KVaw qV%ޓ-uim[Ӱp9`8L3rv°X(]@CTv/4&SYy՗xhai.sw*NOi0G}]5OXnnRB,W\vd.U_qMlenuE+}Eb=d&&͒lnp LFqpy!z3ZgUn_/\Lz n.gyx~OFi㽴^A|J\eYߋG.>ոƟzJk(ye+ěUI87)`﫻x]\i_5ۧuBb'+VCۍ6G @S?H A<(rCc{)ٲ e?:0@"|ȓ:5 >mendstream endobj 18473 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18474 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18475 0 obj <> stream q /X1 Do Q q endstream endobj 18476 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18477 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18478 0 obj <> stream HW]sF|ǯJ^( al*[%].U~\*$$$u7:JńůŦU^]|Jo]FE:(8sFeQ2(QV.~+WE[})/UejSE?n6z;.*wQITM%3iXy _YY,KeSOrAgnV@y3|(xICi_ͣ,!g\a;~llԓ҉A]JRE Bvߣ)'pN XFt֜E0dyEkS XFpo{#7̽[ -sow{;c3^p{/}*OTp2>c3}g9s s>s,Z-֑RK1dqZ!{KH-Ő%g5Bj),=KRK1` ,FH-Ő%g5Bj),!C,FH-ŀ%bܳ!C:Bj),bRK1dqCwO1` ,VH-Ő%gBj),!C ,VH-ŀ%bܳZ!C R Y{Z+bܳZ![GNH-ŐS XBj),b),!C ,NH-ŀ%bܳ:!C R Y{Z'bܳ:!Z!KpRR Y{Z'b {KH-ŐS Y}CN%qΣuJ]xSA:{i?}(M}cк,#6g&Y>uba@YWuVM۶hw×j];Z|,5|0][\z?;{ibQC5qnOXҦPdlCi/>?ͲZdr zZ='ab y}O&o'Ir`\`TwRn6qSB|>œyjIx|lY>--wb?1} /drNBJCeZqɻmwf|۲}Ώf`'Egwz1d$I_#7%TA縀k;.= b,XP:t:Rw;et?CYs7$pTuB٢Ҫjђ 4#3ОN |jܚ$wqv0J .-.On!l P,in;i ƘmKk`? 6v ;ŞcoR.8 6ro m5!C6Øݦ՝_t0Cn(]Qv=vIw3ТZظ'iӷޚ#!cKC;)贛-$M]N0fЀξq>3G=5ۢG:8mXso-#?%+ ?s1^C:ӮuklS;pMqQޗͧ{9խ6CӶx$]ְ{bK tNr3ہ1] 9&CvyNA KY܄,.={ܒxp\X?1~?]'x~.&vJ/hXIf<g&vjy|Rz5O^vR}W<;|!$-|K14݈nBfc?şeu3TKf⮾9yvx6nQt`6 =_x1L$,,%b!  &%&n^>X-3inZȦFp+TTI\u{_PvN껸wb'v E*Ďx!NŒhֽn~{aq;e֞Ma"t]]"Fe_שCKq_njp\}Gȵ*o6 vU"oO4ntDִN}׾v*{},lPzDiÃ_Elx2)"JXN`9r1V*RJVX+Xc+g\`U U0V)J*VIY&,.-4ci,XF`!TCb7B.roS ]˽rO5t ,{#jX,F=%X{.!TCbB.roS ] ˽rO5t ,{+jX,V=%X{K`[!TCbwB.΢S ] ˽rO5t ,{'jX,N=%X{K`;!TCbwB.rS ]>rO5tq%jRe ߯ޭt_^Bh:H C4t?rWzǷݵ.bh)DP]T7pUEv/|A}E?r(`lxkﵟ vsLba}j1Y`n?l#:r&P10'n@843%4Qy[B>WX\jmIun6h8 ?*$,KQ-=38k֤>Y7QѧU:m*8cu:-~jL]7x"O4yl|c51=>kkp쿛Nt)B s){nΦ%/ӝ߇S?6,8((*ʪvs~:Lqp4"v>J<4 q-~ۦ!mEЪC_xϖz-ZhlfȀ 2=xv:)U$np]YfqYbGw?Չebgoru6endstream endobj 18479 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18480 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18481 0 obj <> endobj 18482 0 obj <> endobj 18483 0 obj <> endobj 18484 0 obj <> endobj 18485 0 obj <> endobj 18486 0 obj <> endobj 18487 0 obj <> endobj 18488 0 obj <> endobj 18489 0 obj <> endobj 18490 0 obj <> endobj 18491 0 obj <> endobj 18492 0 obj <> endobj 18493 0 obj <> endobj 18494 0 obj <> endobj 18495 0 obj <> stream q /X1 Do Q q endstream endobj 18496 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18497 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18498 0 obj <> stream HW]o}篘ÂNmEr8IEnP,щ6H%&nQ^ɒ{O"%939xݙ/})˗޼Pd &6+_Dgm,|ʬ|;Wzhlbֳ+g>mW|doft%4$4u٘"_nZ3ܕEsr3zw ڥ=?Z}[~;=ݦ9MG׫ib ~h!Uadڲ(+ %?' _2_8`li~%;4S%_.R"KgWY4' -"IYz8Z"`Ij#r{{+ʽr>(}rW}W}}}}7}7}'>) W[dVb%F,Z1K{ VbUkhĘܫ:Z VbUkhĘܫ:Z VbUkhĘܫ:Z VbUkhĘܫ:Z-2Z+1fi#hĘKYڽĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hY{ Vb%,^b{Z+1fVb{Z+1fVb{Z+1fVb{Z+1fVb,JYڽĈZ+1ficpo HwTև;DJ J+"ЊJ+*U) hUJZҪV(h5J+JR˕ZKbZвJ-rJ-{r/amRZ cRw ;Æ,r/1f-{r/kRZ cRw ;,A%,%1>-{r/1>-{r/1>-{r/1>-{r/1>-{r/1>-{r/1>|-{r/1>|-{r/1>V-{r/1>Vh-1KkI @K>K @K>K@K>K@K>K7@K>K7@K>K@K>K@K>K7@K>K7ZKbZ-7R H)Sҿ"{5G#kgiG0/*ST"ڙ32?vr3z'ɡ)#3!tTr?g]kf:fNVi8|Nݿvy2|ᛢ<O8rs8yu|>1nnorha<oo_r*s41{A_:`~gl35/˦{{[1Ģ챹ԡnҀ7wqM]NgOﭡW/殽ljM~}(|φƀf\Qˌb61j/<狪%m݌ټ5dF9h/-tO^JqO3W]]rhz:Qo%Oj X> +*{X ߣ As+~i{gufG[Tgݼ }|k{p̣yDF-vW`nM43) i1k] "YZ_q{7Ѧ \ۯ#v=r7&{s;ʧ'=2 m_~,;'-8fQ~'vG1ᣘĘKiVZAiEVZQiU@RZЪV jUZi5@QZ jVZIi%+Ę$F, Ҳ@*-r@KށKY@KށKY@KށKY@KށKY@KށKY@KށKY@KށKY@KރKYZKbʽʽʽʽʽʽʽʽ}Ĉr/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1fi- ^bZO)ǯY5GkFn }?>ڙ[w[Hf{8+2Q^@RF2"E\\Z#di#iϸ̐Ԯȕ|jG69yfԍ} REwxYO=K~yz9HF9 (l9<,Ԇѿos36& :p |b2, |*V<ó3s,XI@ VzÁ 6;D% eE̩OiYrm^/;xϛ?!-*fȘbk{iW>A "Z,pqB2мJJcKo/(;ڤmt)U18c%_`ŹcxqaBŧ y\0C,9D]S^D"im7Du͜' *(Ʒw >g I`_Ȓ⩽̏9Ba)o c2V|' ݼ¬KD]*gn{u~߰eu՗N;rj*aٺݓ; v4%.!*d5qQIDC.8}@E &[odsvҍOX}?wVm1涫q7L9QJ{"`X{>!ʃOM(3ABNvhNX ;^q !+VGs8M8f֭X̊xo=<Π~M#%O7a"X%}Pd)ҰaOw2) t(a6~0 o%6gSG)qL1ꭗwZ'_w:8 ncXn^w;2ئ!)?x՛,U\xNrΏ8II8$Uq9Gcme,T&>`;P4o1 bjETJ&}f 3(vZhޏP Upxe2Aba)Mȷ2Z QMyE"Dr8".' ̨B*uv|ys^ZVg-r}ba#[{s#`I ~û>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18500 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18501 0 obj <> endobj 18502 0 obj <> stream q /X3 Do Q q endstream endobj 18503 0 obj <>/ExtGState<>/Properties<>/ColorSpace<>/XObject<>>> endobj 18504 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X2 Do Q endstream endobj 18505 0 obj <> stream HW˒ WT ߏ=`'bf[rH{Ph`L>]OJÇӍߗ\QӖs: "~{m\o//ϯ^?=~n/SO %iC?/ްu-Gs+y}~s緔::ַۅࢥˎ |mﰙG)gB25=#vE&멹[`nɿ_шvЩk:ђ?i|>}<Є̠z7YVic߱xZ@)íHxb8B@`Gk5LC z.(aa@4Y|t?ߏkfqf3֨Ak\/ԻnG;D><}-hgZpi).ʧtT73%tlI]Sq348L7>z_O]M84TɤofQm"Se*V>ھ~hr?|};jhS%Oyqe|Gri*2r-ǐl?U7a& OwGAn & uG#8e*J:z'g,ڃkGo$cEm,ea>EbG[ 6H$/B&C G&R&*ov9[?B Č8CKp9AKdSe  rKb Gq穘=' Rs*5POSqbh 0k#F)4͡Sx"Ʀ<6[)tх'nujh* ۋ%*L ܐqs )?ͥ7|!Lar`^Bd5 오UfҀ]fC |@> L1fÀ^ %ImkHjtP)/x'K9I:=fX&ΈIIQRn@Ȏwt~b2h>u{|ՋXbFNwhb6sYt#v~&XY *Wt' Z!~3V#.fvzIJ#Z2N HDo&dsZe<ѩuq@}.@%b(JBjOq4vPf`mq=!b,IܓYQɉFCq͉N;}%b~hN"L6CtRGLēwN*〬!^6Z'EBAkd W| )N1۴6 8GۚT|5GN!̑dE݂J1>e Ͷ TO*NG,s)us\c p[jfq8sEuwb񓙳-oJ1GSb s%qn5T^|lǣ 8CA+]0j-òntAEQkBTANcN]Un[#*6P&ǚ /=h; (+E'TbT\ԼZ aDXo`)4c36UP0g|5.Qh@"uyĀ=nF'(l<8ÕI7 +8ZV[_ _hZ8ƅ7h {ffS$WH'(X)bKXY݉&XO9.*0=啓|Vp'Op(o.Y);+3cjZNȏye>:䯓E+˜UJ[sYQp{4XkJzN`uiMfaj\WWElM)Op^6 > Q`h=B{)յv4He&5bcͷZwSpu|H?*y}ф$ҵIKE[ysjP.h8QV$'i*9 ]ןy-Wo\mVz[,e:6#Q,y\E$D0ESK =ٮˌn TSdl\:6P*L:2fGy^H^^(SAZ9[Jc tu?s hoL(IH#e" d/!2!0A%2IX^hJ|cwn֬TW}7՘߅!௷COB|IEbJߵj3.5@*rdL)c(b`at$RgLې܋0Z*Y!K_RV[o!FlI}K*]B%%~.Nh%8,<12ZM\|1ֳZI+t(c|Ֆ' Q+cU3KE B @a kG%"Tt?l9+qCO,X!)K"CR8Hp X8;3{1 R )?`15G]Y܉ ƦY!fWw-ai ]djŻvZYkP|'#QO$HHL>rSAK s4te/lj-X(%$G#c\hD':RqS ?Sr){.|%8_  2fr2אWx"` YX P<2sFY5CD"!Uzu+ KMNE 𭏀3f7|Qd i20w Hm[&gQf5 s 铱&OqB\R `.)e-;Xpg3=bNlb葆 7D:4a@ɨ@I E `veӔ3-:i6!{AʕSQeejB(3CP5"\QnNE}(a)UEv|%<47 ^ɴ$BijO:naGXʡsE G̢1. |gage4Ѕ@]rft%;K,Ż=˜IIy]] u).Ki3Ԫ֙NjP 3,b6"%D VN(xQIfU^0@O ^vƜ!{4=gX׬ʥL[L`I _M51W#i,&cqXկjc;5#RZ>T##GP-KTT##@/ꏡ#Tq x ոjeFR-o\^F+)vÉPvؿ 4&Mn,52ǒkvJЙјk =PDCP|5JԥXNx)\ ]Wť Due28f*H_%q_,i2rEg0L7\K;1|LK}X-1nY8=N((ɳ7"eV"jUt:%⼠PδZ my@s =j3QN&\εE|3, [P,$TPRG mZ NtJFqkդlՁEUqlc4mhMi6h㚷cghQ7u *fS2ۂIFjh"%U$0UfTeqN*9Rnf`ѠaFA *Y& `Y?{s(.Qq7&2=Ζ*]%ɊYl\8ŠX油DD$r`"A$5lq$ FY~>9˂%}],d:ZLM{WgkyLکf:&YkwG112TRsXO)VU:c` syxTmIHw?oQx~ ފiEpFKWp B'$ ʥ҄O>fۓOO: VNϮ̧WQ}~uNjnZ- oZqz58n)Mܞ-ҽŘ{sb"R3h(,g=;_lC^yܪv*{y ; Uh:+l v QdҾ4b-V>n 翃%gwNWn or蹧O/{0B$.>ŜR{%{o% Ҍ Ly7<;6`]!]o[.i|w>mz6 ;C_ 7yjj] IW7xȞ$,@+esgE7/fOTiyw}9lO f@F#]e7DHKkf.z~x 8 /UB4۽/TT*+Nσz7^~a}VZ@o+i\hoqsnjPd$l[zNvl'lz vLHO|a w F_fq <:'ux7)V/C+]7?DY[;sr1=u |p?ikR'=Q'rQmUi]Oh2{ƟϮO9yl=ug*fF]Êu t[wv&m*ekEM,';4:$ڮ13P+̄`Q́ L\1MC5_ (oWՉ=B؂kI7R7zmku 𜂢D́ob\_ _l Xn0OcoH?~];S#gE8;+FoNv*ٍ#9w~EICjd3`_Dn{{YMQc誌EKN$ey߮|6{7ϡ;`=mu[]Bp?<^RfQN}drxtFmVq)c :NqWNBiGKCKɊp$8saPSaƹ=G p $ӫ%1%(?eLdNJtDβYw[ز!˪c d]# ҅?bl+'Iw͙ ѽ4Bax^#bn__J؝4+po,M*TH([ue3Jz=>7Z (SWdy6k{zv_QsguTrn,CpM= PV i+>%[ޟXWg Bai(eKӵU-n3jv)MUrc.X,ؙB>lUm9#%=n.,VT+;*ؽA&./jQeg۶:&|Dו+E{Ex^):tXOzr 8b(T9ʚF/373C}MJ1N~,)۟lrv><'jRB h FN^)DH*DJNq S Z$XñVAB/o"v=<'j|ibj53Х2U֮}r& YKR[ckYԭh+hgXWF&-^IYqPXS(0 G!b1v%QpVI\k'zJ:>5VRI:-KԉDhk9Q%g(.оJ*u˳"aHJ,ɢ+kI=3%E&{}(!! :˘W*yZ^1)){.w1q bD|tG/|RW 褰h ;.z h& @HGATO3,/t]zmYb Qp.0WB+Ui =c@w&.0qVؐPc7-"JJ' f܅S73xu>t!JϢ(6x OɗmѪιw({O#R~#Wԉ#imOíao5TMFfF̞}M' F Ģk09[rHVSJWGl]h".4CYxHE͜fșa}բlPXmqWs?Mm+ zTY3;W0N6Hzq$):J`D?W&*CA*~.Y!K&qnLlFVICP\)(sҮV p4@Ec)lsGTŪ37+h.[>^ꌖ9Vk;uɄ%Ph;:6D҅!#08na qLxPMggS0lU?] Dy-=[u}!!Hēb>yt DYHcQ/LVfsxmQ`aXp|J}NfZ"=%6>OQ 1rP*%drm2tGκ4&!jpys\2uM nVeq^g,-ADAmSvD>a[U+37ykLCH5C0I:L&%o2@%b([{v|w%U{5Xq\}5{$Sv @Wc\(Gẃ 9ؓ&ר 7E|̈́"mCw1IWHKrSЏg0,/ fDPJeu ؛J}(qW8p j4e]tti#(! ߅<VZGYHV)T1s}y_D].X+]M=Ȱ#'Mÿ yd/&d!(s,#.x rUԫJ* ܣ.ؑ_`PӚ*VCan!l USkQUv/Bpu؞Z" PFlU/KMj ,]"oU˴a9iS}RP.AWrFV1Ki(Ż" iu)< [ҥRx+? /o'1GRxnƥVx/Gm^)+-J^^~ U.W~+K[[Rxf[RxG^^Aor08HxhGwu0 ;ՀȌdc .+IJ)xX f;Pu`J ŐԄD%4o(+' 2ɢ^-dqmR߬fu&DTO/)''H *7aeg%@" RB~x$s1.WdjbMLPѤdžZi2s/ܤk, AajsM5I^L=BFFxiۦ8zg[&݊_K1{IYYmsSHT5$9OAdL^a EY:L~czXsz1&| 4pi|]a̶ht}pjl9Fϧ~[.x̮j}Ih+ᶪ[rCHy{ _E'f}:shk9|(ZL'PP*mbR 0ӆr3b?f3Ԫ/:R .;Ex6lMz᠒)-$-+ ެ)isIW>N/O&4<8F"N8P/JIF!T[ ˇaҪCzg2G]ek751J=mw5 >Ǎm;ѵ\DIjRx/a>GE(B1L-ꢬi0WLrWL*P=dUioP"![Y!VE[C ')ʎ%IZU6KV$ k`m\A {X 8@6 lVRWh68.^N.Z]gxi7|y7#y0Ӫ Ăw1kO IH~Ga9<4tpF+1 ;YH*5]Ch\7; |`##|/9=q W `~-K NФ}荚:P?rGOQ"ǐy@@YOKh>|5+_p־Ŏ#:i262Պ㓩;6 k%AՅac>"#8Qzc+P'`.V(Ұ4q+ᔽEЉMyHcQ4OfC̾avq$Zxn6$@;A{b4|fM:^tdPƁPW͓t3]=I)CJ0PSnvq4* '1cGU$Mh +&)Q|CY_=骇@Ufwb`V/j۩;qƢ@؉kAV5 S"/L8HdEb ulHwUϯoGjr(D{@ij{Y<,0B㣝x-y53kX?2IN4 rN:*2#G5G.j 1IqLZ(aQmS +'+ǪQn~cUH1*49dp>sփ͜^u0"h}̐zǃ]/;ƒ_}atw42QZ"_y(: &U8k<,S94 zAsC1&t&6'NEu( _bW_`悥Fhsm_jjj#m[37bh.#l/swACH)!z& g $] ܄oPjiB}s;3-DWBo#;%$ngaԘ(+Y_)LM&;; +CN3*ۑg_ M*Ӛ6?YTmӲd׆|4ٕ2- Q-oPv+IDߊuqƑb !RaPb:tK0|(X4Vf/1[[wbC rhwP-6.SZzs)bߕOۊTjX!F.s}]:k,f5ugw8 wT9j41TD1)U_2{K׽/Xr#)#!lC$SC=x`_@x vz;vv-зe2-}-~_uChJ[6V|Jy0N7ՒdGns$?G腽V`Ֆƛ 9鉸o;#RMt« IW&J>Dd*3ʠ*FZ}ӗ*xlGv:5 VTS4 rIktdPMfkq .75+߸UxwcZ*<~0zGt<0ЫyTB!Q;i?Qb,ifr'@6CQAK; gʜ/:ϲer] K2qc93Űbiyڡ)Sm"}y  {-(ġ A_4 -70ВwʂQ bjZ k 9K ͠K=uTe MqLQGj"*\ÂZ>y> $AR3IhYZy4Fdadad金|?52W?627F&db42ȴi/FFFr5F-}t=uW~r?3/y^y<<\SI2?Mu@P@$mR G5~EUIzb$ln|=Y4Ry az<6Wg'1E2njhG!E-A4C+MH5;piqHl[ܣoࢾsзO4]Sւ䋹"hZ8}>O4dmP`RW[!lo~5ޠ^BŴvaި--ӻYPo[>jc{ c3 H#,.$9{xZoV9sчELG*C* ٪P=GAU$H'~\c-hKlvFrju-3vE Y<8® !Q&A4&Z$zԚЧ*Je˵r:0Z6?Z)6cvj"н]泴"f͵Ž1T@FQeCOXw7aǬ98j%Ba6alL' 3bAaTZ6nkt5Zŧ0N{solZ.8}mո8TN؏{\FVS* Z\b'*Tk9Tuɲx P,F)]H<,;6eeRz죩Ѳq"*bEg hSόtxMf|4~@?UbS.geiELzzZ- %"i/Fm.s;6up|{vO23kGf׏2_3wf! z Ɨvr{RRL0צڤ಩ǧCqdm#Ļzf F U`^"sW3]%Dp u+] o TLTyCaTXI&TН7ׂ7n˿Ж nuJñtrꨪ\;Vu9ƌ|>[܅VG84u:+r8>U]rpk0rn [Z2h\vX}]kIӞHC ղk*x-q +6)XkوInV{@G=A)Q!yֽ+0F8 '>pU_֯6tTNd:嵌Q߳u3f J 21Ӛ)@;w [6V(G9m*3/:3V+[l>+  Ӌ~Pa [g5O֗/Z`0gXgg$uwWhR]hBk|JI ?O~-MN}S\oq>œØtDy ߻S^/I.wim(9G_7J8޹j|4Hde?=n7co+;'mґ&JW_Fxvz |nFY뽁|n*"~pmyŵu]+eZ[ U U~^qcY'Z=N!7IcaHJ"{L/(uy[(zj³ʍOBIa5LmufC8X4_)[s[z>N5CcrJͧcz`אL ^yhy )5$mU ţ?s}Lvl^ٝ7ϭ.Ey$!=B `s!GМNl7aE}F!Q+O +m[N:ٛ·Dx-j'  e|j&F)\Z~~^tuSΙ@1Z+Nlp 6+;ޕ"Uq ]ޡ^R,jjTיcn'Lj`Kjk(un*l\0Q2 Gغ<|em?]43>zk,},o{j9G=OLG3 Ȫ&ƽgs˿0}=~(> tTy[Dy~VAvtD]N^~R1z{:-mQ.)eΊj>lQ``︍hچ)6)*29 G?xO NyqHs՘J|gTH~*[)NK<Bܣ>0"&jSA;w fen]Y~=MHp5Z5cAT& }%\}~0Fk~ހؤFulT`^5}⚗q1݇FҕnBlj҇!=bW5I$c;;Cbxu[)U1~+" 3%.n;p?Z}W"97k{(Y߂z5PKOK&{t#-r| ]ŗ0B3*\^u1zB?D~rN29_;I-6,n21Pi&mi:!=цcKĐ1iD3;ӓc #Do] o$^b B_w7k...䉭&ԉ.RF%^sroWo˜לּ$Zh5PbQb& ]&niES>Z1O xfV;_kKmN @Άʱ2DߨD@p̨_]33'3OK߂YhVEaDd!,}g:t͍= MSEY%GG<#1=ޣwi\Z,]_`|1ĚТ (D$#ޓea! T);bpR6 !5g/<~$&ӏqvM<=cwa1\?w; ].26^{vx)ZUq|ϰf^Sx"bM D\+TBdHT3f Ox:6j\HB(X=~wc+!雥̓e%*b#[vSE}U Vͫc^`*1/ZTelLpfʣ0& $RͺZEW,uH7JIyZM]6TmY 1}euʥ @R'^,5EZijme,2TLέ vqgKb΅*]g0նNvMl  VŸ*T6,aGK-;,e6Zjکj2=y8ܺG1l|lz[e)[#ձ?Qgܗ8 (u= e Eq׶:{ gJ,Vj_ZN:up^%[g EOFlhd]?S1')+$^3Dk(?vU\?XpukmҚT8e-L4lebqޥ1 5pG!qj-gYe\"K8ډX`ԗMϲځ8^b7e&7uGcXZs4mfegcńyNї#4 =+/Ton9 5u$r&3 [f;))0nC@r#A f{X(VLV6Ҕ rl ;0L56 Cݥ"XRkz8qR'QT8C}E=o-(Ȼ2C7}Ax5FqΝ-6_ e8g~@@FAJfPO~Kճ CBW!Qeb=b(~/~+v=TRg-[1{5{9Y;;jȤ!=<=k輞7u#hbMKGVT)׷3=9ܱ[䴐FaatPOPԮ0Jg6|*_L$ =+iK1nJ>vs|Z?a[AWG_%BDwOU@ HcP*77IOotN:HIg؍tҍtJ:u.qx'l(n)';w]A4zč[nk7La<RMd!u`~Mkh i Pir_5?:>ipJfReca.!w%:hGjκ wF!ms5 _V)o.VD:`okv5lա 8ӁRo9 وGwrua.+TPȦы\|31Lhg8SiYB)sLʹ;#Lo%4S 7!FHDTmn~Xo >"4(?=Kfs~Eyq[bVP9Bܠ<"W"g=>>z}KW`MP,3Ji2e8b$.eK|8hu"T"(S$\ 2{͔7gK䭆}.6{Mg-:K 7ն ZnAvYM$2tF&cG3GLf^f//c`8⺡4cQ'| EZh+6Vq҇3fDX eE\ :ips4&Vnƶ/5R֕R㷕-6e46Ok9-C5[Y3BkyOٻœ|nڌL?ҬqpA]yV8N&&E\Ϸ d u.s9]*S=[Gh)#j%n?ѫܼHzA}K|SN(Fאoj?j$1@\ ~>.S)\R8!nSe^#Y !"OӎoCu?L.wE:>$B;@kh]1h0Q\".Xт#v-0'x! 1e&jZo&+0`pu!r!N`.~-8˪t]2"LU(g79kLeB,ip9$n_O!y&li ~? O4~5'3e#S{YhƔ9;KrrH4HȠ✒6C[`jQqa阤iSh֖Klf$$]}<Ը}&hT^)#yuj+]O5+ pA_r6@d IT,"cJfEhB$vÞvd.`p;Z9:YIT/`Kh/ڦ>m@Qc|_%:;BHtrd5DNLV{keoah ! 5UB8rQdJ1kFU.)0nKm(3+)gZ@AWǙV"{N2mg svYJ#\Օ$^&tR(F]ؽ) I"ds1wMdRe`r.*eY+6azF}-JO'$AC}$Wrð"Kqeխ~TMRdc Oj@ ?osl=ۃ~;ys߲bWWCC{P|!זp0:U>{BcLdV̬FY zcݐm,!x+KMyBNrVsULXb H hXp}S/K+?d%h 1PՉߣhg>ډ_ Rj{i ;> ,v62XNN,pH@_m>NOz@PM+bv[kBVVr < }qn2W _qf4u.vf#L]N!V|G0?O0jP^H+HB*&_w mT\{Ύo6)IOvakYv#wwu P#ߋ_F<'8ʎJπuT~#z=i. %OT/)y3O NN팧NN;Z?épZg8-;iD_444N33K4#M=);긢)hz3?QiṗVF,' Hum w/j@*xVAF72zy,*N;ejC40u_;_;݅\cm2?RpkwabJ[7L]h.x!HTj|" #|Xs'/cb;t_V$=Fnfkx@}9_(LIU W\sʩBUՇ֘{b1meY^{LRN \=5[a 8COZeUyIp6RgiNlK8/P<ϝ7Uk|#H@t~4,'*5 NRf%reK8# P2qF4?4c! (LϽɶ.@EN FfV,6 c6ϺP]L:HgEߐ\n^36WPsRڏL)?1`hFYDP'ɼƪKݞ#eDNT7]YA46@ P{K1ZFm4 gTr\2`RYk9:VyN?L!nmG"sUI'㛒(z]e]afN"rt] ZEUm P6 JSI JDYֿ@ިE%5;_#]βYKb>,RÊnΉp*< ,ެ-Ytx1LeٹkPRүNdlB,0Ԅ,ƇQi6 7D Uzi}e%bG{ ík&Q:䓬sZ~nݡ3#wpL ((1lN~KI_J ~?he.o>#enΈ67Ւ]n潊ހG}s2dvTvLlJ%Q 6.j{Rk <xpQ9T=FN_@z٘Bǧjin{)QsG\O9::/A&t]ڋn&]ց|wNؒjdVNe>ym(^v.Qb(\?Xf[ހ~^\afeYYY80k-Gra2nD*%8iSͤ@,cNT/W!<s{?dpA{^fv.*yYwi3sl`{cUmK9TqIruQDe}>?64t.l 'Ecq/®L%}Đt~p:(x,GYm֤6m,YXY5?C6- PdI$.=4`%)҇ v)_g[Ij¸t2VfF F]11j6- Nb&?aF'3F;`U05nfb4"qkf4`2 o܈n4ߞQ λf +TuF^a'qQ?z=όwA?SOz{rW/enB"DЗ+z QF3eeÏ ?:_Ć1zTtEyiVye-Bky!NvEG$HIw z.^s&g'KhK%2* .alʼAJ,{P""r}^u;?3 9h_ߦdu:ga=,|qq= nR`딇:,7=$ƐxH_YeL@}beSƌJ5VtcT鵤N.n­M1sg)MSw>Apx뉮J<L'A@(j&rN}kM/z <76RƔt>9AC#s념BLXbʚ߮:Ql$2Z?˳@ }q^F4˫i#~3}on\u$Mi #<` ! \r,#!~'̙Нt~ǹ(všTϧyrȇaܚ}~Jkǂo3+OLE0kqCN%JmIܐ6 _k5_z(_z k蝒&vQ̇> JyC]lTWF^:wzhl.0iXU1k;Qccޱ^e5hRek07MKUclCm =޻ #) f{N~%|ܭMX+q{(֔U%_&SŝWf%3͜s?c'!W?:hbnH@pU]^&{JB:hl,tS"}ڸgawޔUiM}S}̺9тeB'' J?gR 2|:q7W L$cOII\9L^G%oGvGΉ"@J3;_3>QU35(ΝtqĜCdk\Ƚo'u*&!kz+ޅ ]լ-lfeFݷrc.'Y0eWgzDs57| ('|5rS5hAa<Ӻ/ Ƀ#e1Tk hܝvdxV Ixy!5hšk֪)X|Gアm6-M^ u;+E톜;\!We'BGbwE+=Hƅ[~.yY*Wꅨʎ! Y 2+޳ SgH߳B@)6x/EV٪.IMW[ *ZBpv7LgކP`3ufznT#_FVi~1y{~:c5-B{ T_e]CeT&w>WZ-J&CtbDOd]+\zؘ6X7p+IyI`qBm,=ky whTϔ R+;D~iѩ2}[-v)v;;Įj;_nbWSٟ:Ŏ+ڵ|]˧їlٷjWOߪjgGR܎ _5{‹dxx XVr5Rg-QN EPw ]˒^vQ]R4I p;GQNBёݵdɳ6pv(-$PՏ 0~*qpvz֐ŲIޣDqȿˆU60- YT2#2"mZy^l{P?JQQD9vU3!ɐ1890eX=0|Ħ6ɊEڛc@rϠR787UkIu@&8A:O&FLTY* y[eDhUvnlNDk }]3V}9|G}w"ejVS/rWM~ڧ|]a8~^~[AKg(5_M u$<+۠✸t e) L =IP$ z.ҸwW,5<)tsG)s( SAD:%o]L d'./Ϥtӻ܊*.::CGZH򀍌Y,[>e2 GoylɋPŶ!EwR2~A(:3L1#8ٕsx Xsx>d͆e;,qoCoRJBHV-$q=Pl;.T&g1-3". e^mFa˱arPϫ: LL-XM;~5Gt,»UxBPqQ8EgHy/:*40  }&}$~ 5n~b&Oz b|VRFo5X<?WOPZVWZ+֚ځ`{vHhB}Hl:-Z;#7vfYeSqf7#wd}zڲ;*M,@ޠ!& Ln- wޑa=˒+]Hp(܀5zrϝFɴ?{Oq:~?TzV]lNtQ}{mYj=lwA[ oMog~ `c=81h0>ŦCb{maxg)+@h='#Zܡǐ8].Ye@>Ǹ8MPZobv'sB"V3T!8hvZ8*=&A#clA\3.#8&æ37lȑ/ ^"&gMY"bE͆h:\jFNӘ916\@, L=(Sۺ_U [8H?%̦ʐP,y'#:)"t݇vK)'UQ6ᎯK,wQ8DvIcwiR!VK" 6v.nNфu!IS/إigCGPC⺐ 5T a` (E6(M'p,+g<ļ͚xQijZpHHTgَ.qO*Ƅ_Δ;%GF۱Jփſj2GJJTUG%5]I?.AIEUαj\6⚔W2EwEūxs.e_o'1p`L^d^wufEA ĨB4rE rN6@g0 _|8 v9dgݧSߨ}rO|--ZwD"\?BBN?P &rղRQlc(LAY&Z&:;jdM[aJRv%d!06s/\XG$L;蠨S*-7R^:Kcuy@Ĵ:0Crd]d*%RsM"W(,u ˅ת8㴚x,]Gƛ*V]׿z;e6qX5ȂI<#sE H!Y Of#uqaFAQW"5t9wrnSB/JK2m."="S$kQ&tfc]~DGtѸpWfsϱh1q6;ZLCaՒ\I>/P s/UG8bn?@e+{c'^*Hxjͯq U'hOٔ49BptHR"'eaL,SwXIg1D]N52.N+pn6la`k=!ȩx=/.6*w6Ⱥ&׀ĸb%B7I:ehVҕ&7]\ntz8`QثQ;&]BU;s.8%Ͼ44d:TYF/fF<$RU՗ҺXpis{_R^f[CvKIS2I裫1>~ a лSXAvdb-r|rj[(8άx%Tq4g+3gЃDK([#@9jFrg<;q]\*̐k/gq@LTi~ c!s@6dP:NjR{҇hͷR,,B|f" Djo"3eX5sp^|wN/ц!CI Zxpj"#Yzl}2AAxy /G\Š8z;%"c? 8ޯ`">vR$GYtDNiY{!agb\US%R7ѻAc)K8';҄U}Y  *'7yN5dxf,|W7%]QFdZQ%Bg-KYD+M+'aϽXX/ u^f4y JqG2_PzY|{PnƔP,kS`&%;V:=۰.AԆn.Gm63L?= ЍӯlTFBgf3VQ%~fcktyy@пId_Wۯ}F]N)rJ*/=CQ* !m3]|D G\/#j `Zؓ(Q`굱wSR0DG $eT|UP. iiZQpdYk0]ԧ`PB .wG4&Je! VlHGBHA)Is@×#[:% *3 on$BYpw3o0 R1RP{3I)lZ{t4,]_5,*&Ӌ[8m)K  N)s?A8ͭaػ8KHCo|o;ɯĽw" @ 1VVzhsQcH_lث7MZ9_1x[d37>*.jrg'): سp` سКcCwYŨo03e@J ۏ:D`UJMW1 {E0(=qm: IAmeågXu z_!p:Jc;s7V2_@[k礳 ʰ 1^]o^q]ieCHC3Gk!KW έl)=v.kB{/uzu9Ug!d xdNr!1MWvOѕb]ۺjsgB^㒝kWׅj GJc֢cKmp+[[*ˊ:\7quLjfs_: o_&x_zQǙOgr Fj`d Ř39-򑒢O[? -9< -ź ZMWZKݐ^n2pGfչ9':pf2)Z|r|@7TUvGsE _eNy"P5Vi9`HT7ة wˌNUƺ]zf'Y0 0˨mY,bofYYfQfQ9"&'p6KYj{3}guejnwrSz}Cُz[\]H9<#^ߒ#d p~,6INyi̝v9Ijh4x|'ʺ[ E#SEZ B{U78`&cANJK"Sb{#rQ"!c_+O)I2Wq#Иn_'Dl$W "DP2ҷL|&CAq@~SK '4JQt4E4j#Vƫ)\U͓6T‰m:(mҞSjʸtPdWܪXvN>9mȉE&8Ɵ])FमZtRkN,c=p~ |%yvݨlQ\@v *?cW+إ{Dj59-p&Sk{ Mgܿ]s߿~kUl,|g43͟᧹vu80.<Ŋ$+'\р:\Eݒp`+c3ukwWy` :pGƙcY.c3V5A%6x^9WgaEeHcqf gW q-v}`^;JxAlOi 6h"6݅pyѱ4Iu.&Rg-bN(B^xX佲D"Lk.)F׻=DQR"P >|yaX)?ރ3D"GEiX=/W_R"l+ JȗWXGPwu9pJ@ a[b0D˴ tJ42kk4ſf լP]xȇ ;rZF((FUy΍)i({]Ʋ 4JU!^cƗKAq)/Urn&M+O3.u)Fgr<9SomU nvNu]LW2F觖* W:laTI `Y٤^TT6eDHF,f1M|fr/܇-7;~Q;UkzGSvl͟'cA+/|ZxXTyC=/)~gs8sk3xEvYvT #k/kꭒl1YBHSc5(zj7#g2ϰ&4Z7Q.~n(cFשUNlbkS;%f8 W= YZn~F8.+*}E 9WtuMn@T{%F!Q^Z@ŻS:v__bR#/ZhC陋6I9{X=ݭ?2,v~[ئJI.pw\cQNtQsΏFr:%y-. IHlå  6WvnʺNkhbF*DLJ5(wtHHRH){ 5с~lXNwwY7 st1*LCl8h#Y(G0E;ej8Sk@.UU; ڀ>dMC_ _,o O,4O,LZLjοC8О7TYOT}A 1ʑ܆d@(׼+,{1k+PdRvNSu()PZTiCY(=,p×46oV~&S5ќߚ,0zl&I-*I7eSaҒjkTn?ɔ %٬8*5 J(ǦqT)rJ)-/ dDv"}R@hXDi)7/Z5wTR4R;7kZFqUZպѪhU7Z;ƓVAUZUy*UUɪ4rSsUGyբ .:)8_CcQ`er Px<$r&4 BiY>0U$B-(ǏPV&7mn%;_ƺa7.Ag{v<3k= +{\ha6ΜJcʃZ-3ȼFGnWmߕbקH"#]Z>sױ?Jמ]"o˕6#k?WB[.اclיM=VF/!QzМUs_0krO0ⷙn ٤l3(Nz4bj67`N! D,z}$V}$8 Du=v%YBp6 )*%<(;J_/K2|b46xKKˆT&)b @~3d堧8謋Yr^j✙P)!>H c:>zw]+%4yw.7MF*Pu=h*5\N?'^`ڞUh1k"k P~D;b>UIhRQ~poM#!nH =<f%%)~.ѕT. 68ð(MMvYI3-o/Yǘx^夯l\{ 37}}F;jG*ё0Ô3JG+C3+ilrd{McͶ 2\5Ͼ@"7P+b1,SlШT85@K;+߀7mU5'Xٞ~A*)a!׏|B?l9ze ^DSC.HD9 \L~yAHĔiE>`, +sH:!}g5 lWKr\1sTIBsfㅽvn{UVEn4ZB_mf7L`޸ +1)+! A: žN+Ww_?ߖ>pb-$p0DC6-2E3JeIv Њ.NTb2ҍ яÑ${#]1YeL匀@Ǚv 缰+6!Τ.{iw`}|`h+(pbb%^ #D>{̔xrj;oyi%Y@qHQS T1Ÿu)uP[G N[jg5ԝPJKA\ 0Z<l4/U6$jK7 Tt',le~ i nZ{m0҂^5<}tuy^/CMU8{quUNB*&2I9u⒴)*ߺp4:`Yt00h=kms\lP~b}mUf2v:u@M GsxaķEgyG޲_Z|"ځigk7P,SYgoyּ0eeBh 8c̫/_LEc&;e͈?d{ށ+ƟҮm/!劜q͌? Nendstream endobj 18506 0 obj <> endobj 18507 0 obj <> endobj 18508 0 obj <> endobj 18509 0 obj <> endobj 18510 0 obj <> endobj 18511 0 obj <> endobj 18512 0 obj <> endobj 18513 0 obj <> endobj 18514 0 obj <<>> endobj 18515 0 obj <> endobj 18516 0 obj <> stream JFIFDAdobedC     $''''$25552;;;;;;;;;; D"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?.:qإشhko%g_Mlȥ/J?R%?)~meG_oģgE/}7Qm"쾛q(K_Mlȥ/J?R%?)~meG_oģgE/}7Qm"쾛q(K_Mlȥ/J?R%?)~meG_oģgE/}7Qm"쾛q(K_Mlȥ/J?W3@ mUBm^?hAi~׵t7"I$I$I$I$I$I$I/rH-{?Kq?+jI$I$I$I$I$I$Ρ?':zFWYc@h=ckK\ӡr ׳7"I$I$I$I$I$I$I/*͝b:x7F4AcI(unRZ)cZSCF@9? ]k__CUOt]184 <m/UqK ?Յemv eϧ2lζ:ֆ%ĭI$BnEFns>aiXSo#nE}.qxVI$I$I$sO9O4wAsCZ\!kM夷>UZ~&WPiQꖱU]Fۘӡ:42'[zSgewzԂ;;f.oΞ>n'|vgXFWMvb{s-i p{\"N/gm9o*_鵻}>ʕoSŮ슬~=h̿in;;4!vK#uv}Y6!\ɗLD-N_Pu's#`-Bb4IG7^N]:U>ѹ5'R9]C"+]M4'>tP~?@I$I$I/(Uu5R2K omV3tO 5sZ[ !7 syUK/wEgn'E VG~1Zӵ ++4zO>.nUuN/8G1~?Q{>#C!U 8o7p ƴq95a8=_)-mS[Ihq3:0guϏ/xBO[O-o>cuk|7 o/q诡b>F'KR kf-kH1̹eKHiʸY?m{7't $I$I$Ρ?':!-#mn cqFkhc  *_-{?Kq?+jbљvM, vQkUnЯjm %8ifv]$5nџ{j"_sKz)gUK)m;vNes,uϤ6,tj?Wn7-kv0{VZ=~'E mIZ7,OUfZ*3n/tJ/ۇP-_浥 <3<^}5Ӎ~@nͯvGn I #$hf6sřm]ݠx"ލ?] p.3-4I$I$IxPgQV:IkzNsKoO.}|fKvaĂ6<ʣ׳7"K}C񨹆qMD4lr(YvC/],uO:sI$I$I$_ΩV.K[8L_I$I$IxPgQO]V[eNp}sʎc YX hP ¥׳7"K,4K9؝#oɼ98V2znUo+w͑/Gdf.̌v=[ kpִ秚ԋ.aRp->7*uӇV _p׿o=zC0TU{u{{D5d(M74V}qUrװk'UZ2:_Hn-c#5nN4P1r[r0ې,y,md6I1VY֭CbR'ylz{Sw\gFUyY1}YUCF/R$PvDXoK YZ jݣ'fbKaa}.eXF<苁ղ.=#22ۚ-sJG\~.vn |9\Nt{3mr+}ضPCKhZ $I/)e}5ia-waiy-;p_/wEf/kf!izhV1VLw F&3e1~xqԬ\>#{%偋[i=h)uzo*Xv~mU 節g5-vwb΃W!ll-TN31*+?#ԭA8>@]f Z˝_O҇s/\Ù7FWW.W~bքe\0uoVtOZٟILTð:/UͶMCWX/h sGutW`l7΢V*?S_'83:d: PDn7Ƈ۷ݯxC8=OWv8.̺cH&] 8=Oۺ+UL/[U cxkX]!kyzS˻^0>lnCSY=o*b!`{]c7;nl4OԮË՛SsMK1*-7O[WcDnڅplpǹֵCVL̷.}G"Okq$I%C~OuEϱi'[Pu3Pk>%hrקUz]?gKU_ElYX}|ʱ+6Waq Ѳ7I|A.6Yn=$]e k;o29h6 3ʯsj q{zgU a9Y8 ]u~oKij4R۪])affW^=m+c3u" .3q6T79\wK i58r:?]oXnKO[{]` A):a456:b4A9=W#7Vq #oWׯYwE~+Yso6nCRN:Yηҥ\,7ggdc_[铬nlO9e-f]!s{Z[Xrl6kkkdw>jI$K:?7N7 S9X\N||{o\@DA{xTZ$ȥ-oKQzwģmP:G[W{-u5s,=̜|ZE83nyrL裋VUeO8KO|ٿMG?&#tvʙ]wn7Qudxz~EuUt[V'KůVޡ~0@B?ѺO.[= %p$I$Ρ?':&.C7#;}bh ?9O/wEN"湌W?z`φ ۄVLs]ê9#PFjkoSTl }SsgSIS՗sZzDK*]BۭYlI+fδu1%C_'?ꚏL-W@F׬j}[mc{ROT93cj|w$F/[&߬=. l v}RCs@,[)$I$K:?l_c@ien뮫ʴhMRӯק}U l_ ȥ^OMǽz4m; ;6lky/p&$WmVn[[@/qIpU^:VgU4\۫cc]tT}}K6n=1jZ%^V^VCm~WXj`^8d?uڮ[ŴY<0<[tQ]RI$I$Ρ?':tzm€v>ƳK\{fShsͅ NAP ]kҾ>zECC#Q~?\Ź\ 3itcc;cwv%.*W{t7>Vm?Fwi9U2-G;GtdI$I$I$I$^9?YTTEu9-{\?Yy iil7nv#|K/wE@d_6\ <7{kˢf[qk7ZX}`53f )ĺޟkkV45k?َ\`ʠ9*f>{?ŭ.Uu.M.ɤZ͍ٚ6]- TۗNCmgٛ7 93uvղw<852{!~馷\25CI>Hn8Ż۰ja W2KXcar;: W3܊m=Ξ!-UC =rPFC8l/hi>6Pod{uUWuz:f,ze7{tx: rq8 cEI$I%C~OuE]6,k]u{Hġe%l4eK%]M1R@E.r9blGos|WW+~-Z^2kG1M֙o#"?XֺY@C.ZG>>ax SpzGRȳ:The;f#[}FUh_^1W?X:ݤ x _67:f3b~ \=O`ƒ>6u g*l" ݹ|Z913e:mcwՋS)5a0KE1Ή!gcߨ@/,Q:ۋG8uܚRI$I%C~OuEY=FHw9;|e/ 0f=A1TZzex#GT+J躰p=|IuLl>}Ns~x!OPaߦqs? kO^ӡ?sC-g]v wNAOtXoξ[uhb{4ﭸeuutWH%0G23RTzSO[U8Zp:Ҝc8Z9:*qw8<>!Lb?wEub̩{$ٝ鮶TG;VI$IxPgQSaftsa;uPwݦN6nvݾ|4S ]k?M [}1OE-9հ$kZSoƝG-tƥ:L.'7IgMɱ{_2@*5f=K1,{ԃ%2&WWu}f$zWL'qà52QE.sj#nlxmFG3}`wHGc wD a7lxgt`;&.7ٗ`Z'PgbޖzCqmc^lѐ2s[3\v0hEU( osvIk6Krw(vP 7Ÿål5eh0k1333fsHѾvWRI$^9?YTThe.kc@$\mo!kA/M=OS߉nc.>M>V_Y="Gl.ӵtmm't#Џ輏w :-d8]1-?gIPX8L~AsFc9|^Eve,iۼln>1橎m4T6ƏwLL\W ^"xģ W ۫"wꅙ0nʲ8PֹKV-3nټѦ_P´nO%fȡc  ocoe~7%%'']]S$vM$^9?YTT]ei XwZ4OesMf5Nô{}tzL'}Q+/횖ݎ9A)Y]!]J׸U"NKtV56֑m=nV~V*۱edUsC>˷0ftsu9Dap݀ꍬ{K+pez[[^CWp#Pug՛>iQiŞ"պS-xPsi|۩sH7_n}umLs וoOG#)qs˴fHƬC\m8u&Ga&}[kVXŰg=+ޛqf~\+`kZ+wm]cI/(*62Cf}ڪM{r,k8j <*_^O(Y[-XZ"^m,qWssJ٥1̆otޑD83X.On+ntkk'h?z>bMRXOq ]%K1Es.vH3㓠T^4c G oYִ'A=yٽG¬ken,[R8wB'X̱]^?h|7~ay2<;*6z6 uP:>NNZɽ6l..7#s8c^#S!qu1&~n$12A Ym宬cG9YEi6mpQmVч6c|~$]RjZ4 5hmU.yu{\+,"7WM.Xk?VC΍`A0Z)!ecՙn%cڏ"NI cW+sL'qOV-BD4;%q{I\J*I$K:?XYs^Z \vtrr4\k-,ѧk74;S> _^O$8qBc}+xiVIOXY:#2mu-ӴaO ?7U+3:\9j iC vqVI$I$I$IxPgQOyն׸ƻ|γQ /k A=׳7"I$z e~,dn]?LOgltONϕeUx?xbjʯ?1?Uofc\Cm1IppgQ i$I$I$I/rcX+!kd}(9Xe ЏT ]k__CUL@">Sf?c;|&v@!a3kj>+6KÂ@%#+_XO{ 3ac ل-~4Kˬ-w]TO_ck8,.ְGj2XӨsLI$I$I/*XeZՎ bq8hPkf5FmvֲIBNXǵa;][U6h;GX7R g׮NQ^8d,^uy%\,/q,pͼ ^к7]ueD2ڞF>KQ$u?9WU7X1o ;[-͝<~*_^O$I*ã܃zmpϓ]WF?neϑmomy:-/zs(\%?L@{OvGHi~^ƿȧwg1 5#&k?5N]> IyLpC#[kV k׺Z`ghDSk->CyiHDVݥ-y S}cw./Ikـ_W [ڪ^K]M:*5WY%v{OsOƽM ,꬟\84cnȍ#}ʇ_^O$I(Xen`;K\Me/dt,'sOgv:~{K -եr}9blo</Vu?Mu,bn{04[ ْ_,yd| sZ2<ahxp49y#87v3ާme7Qo7sYW:ۙ +n _qO=؇!X#w">^sE;= qɵQpecGxeY.zw7ʏ#KэUmMZC=^{rqh!ywE^9?YTS;O6l˃C3x{f ԁn$UZ~&WPi$I%ӥ8ou.p'ϲD-~<~iqzmz  D WwPestʭvW3QCS贁a0?{+n>C C\< {)Y8*N|.%mm:ƅZȰ?mm=F8*企SI[۬> ǹa_ `p> vxvV.Cdx?,i77c5kຮ}X{0[ W[jV! k:?H-{?Kq?+jiwNI.wgD -muC P\Cc>OcCeZXG`= Zo0XM-~Ŕ'x/N+;?TG5z`0!ay4}fLW{-qO2oVX-<9xy*6Yoe2 ih> M.꽧Veo&{c鼵'W?dwG(8nkg jc̖}3şPm0Aƫ>}b8a6rpw\5mtwUӯ( /MIwF$Is_X}Z$PZ;k+"@w Ѓ+NdD-wϏȫ|d7% W}*#G }vz4(c6Q)u&K*)y0LI<0m!n-8 5P9ig8x4#$*KN=Ԩm=Q22:~ьhث,/lg|Guct\޵鵐ד؊I.Ֆ}^ r26 hl[:ƧUsO$׳7"I$I$K \TZϟg&ey-55-+}Ioskedp3r0xH')85iOi2qa7 i1y#S,Hfi`9gYYn!2 <I(4=׸bd0Zւ]>-w>N^#^i7ѹKRFaWzU=ӭ̼}?XxenuSZctޭSFA>@?9OފwO$׳7"I$I$I,qzۧʯ5øTmȮO-Asui\F&_O93^m]ѫ w+OfḴhGJM>׍;BWxcJt21eEr|V;2/3I` #],k5Yg~UG_DlgܭC5;vCF~~@P&$I$sO$׳7"I$I$I$I!]ݹ2cC)Ts=m?(]?~G4eY@$I$sO$ת?gض5VchV/R_dGK /%?*_KtT/R_dGK /%?*_KtT/R_dGK /%?*_KtT/Wg}ޫ7D(K/H?zW>endstream endobj 18517 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18518 0 obj <> stream JFIF,'AdobedC     $''''$25552;;;;;;;;;; ',"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?\F}'s Yya *6V{;\#% rm?)LV5z+;I ?:S~?޶zwXAd :v+Qful o-ضErcZ,^ugPX`=CXڝ;֟m?2ݏ֟\{Ny#IT,ՙeaU[dGⷾ~ӏW]icY='bXO w.B̌}L`ܵȅVc>:%it.+d"~KQendstream endobj 18519 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18520 0 obj <> endobj 18521 0 obj <> endobj 18522 0 obj <> stream h\Rn0 StK@0P(4i"өZdgߗ1H:#}tnl?CG޶ ,7v3h %oOӌv#(%gzf]~^A[=b=:Rhh^= $N!\xlqrڠҼJ@}2f;P94CB\.W!fI։*7QmjpQFIId 䒉X0Q`bTDT:LXc_8j'Y<=$98Ϟ/[K| 0 5+endstream endobj 18523 0 obj <> stream htV XSW1s1V#W-QTPQъTB#@P m}P:CU('J>bkEm>jZƯvtw;w{gk)S? EQА,[:<.X8I|m0NU6 c]>pDJ%NT")V7WKNVMr|'~y|}TsZUx![fP-LOgeⲵj՜իUU֠u,34?*D>8>]xtDrTq쬸DmZ\*>eiuu6QKWeuZJgUYK.St )|c$h=Rd f?䗒H%$%QJ$#h%JR$p$6I$ZHB%FI$ܨH~uKziiS t2 b0yL9f:{9.Q.[]upMwq}__6)nQn%n-n0sQ" "'q-ԾxASUxkgbzdΈp:f2̑قO&1kJ1t.37aUYv&~[U)2tOzO^ք\s('4,Cj꾜 +Rs|JMR88ܤM(I)ZQSSYYSQ*6BYhU*qq Zt l+dٱ! ?DF)? =M{/#0y2bҚ(]6&%pϞ _Y:ȁb̿ğtw̸# m-@wg"Pt^ӕ')̆ X+NLH+8xlP@Ob̢,^ķǣ f#}WtpcOdEC&΃ɸ !x?\XuF^?3a% gn\I&LјȮ! {==_zf5[;WU5n+/6X$骊])3>6d 8A\aXEHmmy+1 '&(pHkKћ¯ldԌ%NCW0<}NNT "Lݵszw^rRX c tw%71 fH2>u2c#@!N¹$ fh0C* `wVhݱȰ,`$!?2ej%EO3^'GrC0b[gmA#`.v6@쇬}Z˞Hm r/3_<3b}?IL[r~G<#= 8 XKda)$:L &٦x=izn!^ILVX#Ppo,$Af%`KeDdPtbR#^y$WvZ{&ۧ˹AaW a$) //vp4Ɠn\?$0HA R+ 妗746ywRV쑶amejעKB .Lwk_HRRUt_-sr>~1R23u4RqmW=˕8oJ\kqBѬވ-Vs嚱U U4Cgk]^*a;6\G* j xlwx V!?[ET\*j0 Sqo'~L qB/. 42P4bhs,f6CK'U#-RqB1PRֲ{;8{g+;COQ-Km#'U;֝T*QY+lC:2)Tܭ Fa'=Fn)8cܺI&SLz}0%Ǖm !^S~0=S[#S"=jIigq{5)%4}{8篔:,YcLrV9aݗ?8uQ}Q{yu?eL!j5ѝޠ i&2u͝Ϯ~O7dGli;UkfۿSc/]sϿ^۱Fwh[%AfKݡߓ-oo,5լsj Y #y}̼ą6Ei^^~G2 [u_VVvĆF%AȈSݩ5!\JL؃gO>tғ7&Enh<{`6#_T^ZP#8k"#4:~ ##Ɨܯȟc0Cp0=`HO?h:x66pסԯJ\\H7U>󣂸ۆ?H}K!#3 ipccȧE8ߑoB" Hu#o!Β}û*뎯&-BkNWmun<ԛ쫰E'&Ң-UirV&7otd$AWQSa\렎uC#9McCFӏq#N,7O ]27LR A];[u'UJ9(=&t #yaPO^h>/3uHoe6ׯϬϷGt$1Kx ǹ?ٻ]ʣ5%qʉa+g 8RC$o?{*LǦ]=Q21 3Υܧ8xXu D4#u.p:N aoZ#_ٜԍX#;p$)EakC1,E'.,FƧks>, f]Mũ> endobj 18525 0 obj <> endobj 18526 0 obj <> stream hTMO0 >qwǤLځ{M;ccC'olO[ϐpwmi<pS ˡ|ſwiaV=NsbݧwCNgOvgq@7C M-v*Yj#]'o,N:OUocgLPt(]#qECZ^/Ps[_tw.\ŊKqY_GWX!誌1uQגBLeA\5)K % /6^{&̣GϓO0#'endstream endobj 18527 0 obj <> stream hlU Tav1C4GDQI4FųJT\]e,ˮԄ("_ZSP# "DR5v=ѱ9o{ڙEg̛;}! MA$rE8eg:DIdO Ëާ۟FP7>n>JDgV:rVKKx9s796\9;W;9e66\ӭ~T㋛Ȉ\(F9/v+?,yhlc4[ʚNIteT-yNkɚ:s_\T! ^&pGA Gb=AvDO.&5A1A5CEPQ745nMSs^D;"ѷZFk( ?@*{,^((/;DaFEV}ê0%9(Qa41~=!sEP8I/CLt{,CBDAR4:iLhLt$F 6JTc<[C }{\x‡?]ݻniS5NV!'oS'OAOp?}>4JWҊ4 fj&S$Ý IP{} xi1> .e]q5F>i$4hF6 5U\ \UkpXg\B7V0/?W{k.oZ{pzޑk yLa%Vf4Qao?05T*St%<~ a5G~8.J*e[]R.8ЭIOzNjTl@,K4 }~ۥ&97 R~??^|T!XKsJ򠽥Ewiڕ-V/k𬅯cfM "z;#`b ž!.LPk ;剞&xhؖ"$i19 *~4K]s[_{1b7$Nd^amNK{c}qL0ݵ)ቘx&\vb)§@'d@ Gl1|1o]mtR [-d*wQOٿ[BsќnǓ'IE ػZxqySodl$ھ mSNB CfdO >GޖaFg~*)u ^Rվ|PPg+ʯDڬG7'QJ8Zdh|d: Lz hCiAus[-!5yMN\4㵫wt-4c;oTm>(QDݔKY޸-|όQ=U5W{[~o!_u\ҨЭk=_2C*,S)XvA\p@T1QEF VVto;#Q]SC< -.K-Ö2gJ;˴|UёÇ9e4I EO 0 E endstream endobj 18528 0 obj <> endobj 18529 0 obj <> endobj 18530 0 obj <> stream hTMo0 ;BMaZtH#Dgci'oc޷#дEK'<\ky73%È7=TUpOkt[1$p ;#PIل!(Nӎ׀Olw8c1F` $[Jʩ_&&jR [" 3 ?kkR|JYS . R$6@T\e[|C9YKU%q)1 +Vb \I<[%F4ީ}0T$endstream endobj 18531 0 obj <> stream htT{Xa\뮃J"JIG Ep]dqa Q jcXcjZ-H|ZlF{4~3gw﹗ee51+"##&S6gf٤_jӚ:WY` ۼd?o]?~c'/'珿b\Pص\q]M ??$  f̔"Tk2,ْmhm}a2I#Vb,9.#Λ ψi9l6Q89Ky+9.KdJZf Zzɜ|8a1KѰゥ=&iRpҌ:ÈӞnԥK\~CgشԚ)E`1ZFk2ksv>,3¼̼`B9̫|f&Y,e1+h&cf#̋tk(e`rv>q[kLE".n* 1vG.q8K ppS8': >&@F{epp(>ng{a:h?QitۑpTtJ WqDQNvؙʁC0^QK47h4 8 >vb02|+L%+\}|ʹ*Sv$H80ל]@25JrE;'P86\ n*P}\㜓8\h'xKw:aJl‘YB0m6gH»89XB 0" 8喢3C% kr7N;Vҹ8 '!vGTޮ@ p L3o6 E9VwMNcJ;)C58_q֕Skۯ-+'jJvufs!F;oWrK%eqۄ8u΍]6cgCͅ9gN喙 adsaaᚮ+n/*㋆߆VS%X"dO"ޛ ä|lMrCMGzSGDBf)nSfD x8;Ux-5h@n/wɉ<#g͋mԞ[/; L۶T8&g71=W*X`]gL} X+>qK~XxtY߃\w?cXN NtA/ɩB[URvрGasC5{S"soK<߄rP¯]/k~qՊt_jK0wi-ίk-&a8wlc97;^=> endobj 18533 0 obj <> endobj 18534 0 obj <> stream hT=o0wSu0pbhH PI9(R11C}6Ma^SXA?2V!8 QmV558T~)+}rvhG=~|P|Ae LܗiA>.Qh= ,)A%1+^}5$d@G>i` ǒќc?$!bfZ/(> stream ht LSW_[*jJyl#}Ϗ&:jɨ+)TemaMAѨ@AQ.nNܖ #yan,s.s~ν*@JI$WLiit-Nkʷxbxp$ŪKJGJ\%n=&%D11gY]\ +=tyK r0%y^*W.ۋqn ݂w8y/ [mMD[V>)'fs JdNqSBIg) 1/0@##Պ:ktz$6-~g跔XJPA"@G"gC!Eϧg]d~ ʛ3MũŮ='4}E lyvѨ Z`i{*I+~LaDdpD|Zj0 0l Ң! U `XP€ODVy T"PIؙ)6B[f1Na&7ϛ:3ZȻҝA,D^ :8ZeyY?ɠL4q|Z]]VȁM1<INYeKXű_c{9.Lg2ntvli=6>ڶ0[Lǹh&Nl7/i) 2&2KY q# 3Q6'DL8T|GM--]Va&N AD ث8׵j3P*6X >9.'(IR/r1`J0V'Lݞlooonno7gzFbI/X%BF:(@0F| )JzJ^A|h 鍡5ZGSպmk*HP@xdU4i`i2420#zQJXԁ4 "AYxG62v1כc{N:zhȤW;ymܵPyŽɚ3"s8R_6E'24/)̜,s %u)59KjuO`!_9ƒ '5o{kVYV`i fHwbmO_5n b2PXv_cA4XyvM #endstream endobj 18536 0 obj <> endobj 18537 0 obj <> endobj 18538 0 obj <> stream q /X1 Do Q q endstream endobj 18539 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18540 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18541 0 obj <> stream H]o8+w"Sfm)E\$Er-y%쯟C[y(b0sWyɋ/IYW.>]Pw&C/DFH2 $y@}HFtXeI2[2 .pr_oŜ}*aJbØDSC`fLt6c\~:+rr Wt<:Z:6㋺iey 6{ݦ2 O1Xy7V<0E.6rH%@JɒB`j쟛 փ: b2è 7f):7c>,Θ/ލSS/S/S/S/S/SSSS!#O}<Q=Q=Q=Qo<Qo<1>Ljzϳ 1qލ֍YW,wc@!ucB{kݘk9Z7Z7f)DZ֍Y Q﹖#uc@!ucB{kݘk9Z7Z7f)DZ֍Y Q﹖#uc@ ucջ1׺1Kݘ|n (ĵnRzϵqs@\ƀB\,\+׺1K!= ĵn (ĵnRzϵqs@\ƀB\,\+׺1K!= ĵnlHĵnRz7Z7f)_ލ֍Y QV"ucB{kPkݘk%Z7f)DZ֍֍Y QV"ucB{kPkݘk%Z7f)DZ֍m֍YWƀB\,wcaǒP&x;.sAxF$,?,&LVeծڦA9W=n(&6+䟇,M ^$ A:軳YU zU'qfd{6$ph"I:we^HsGq(YGÙڍ/Hkjxm0& eadcREKe#-°?.F\5\uD-rꓰAIV|c!~EiU٢,*̗:sQނ>ִy H{H YRlY[` )+\ID"d@K%Am[s"?(3ffEI{Z"'$[H9L˭tjxdNӑ ٻvrNL3Ptjv"1g#YU/'1v%-A4&=+NS-~S!|[P}Y7;}߭N鈵 ZLhېQ(p> W|d|м&*M\Ár9Cg;A)DMYOe1GtKWv]E<<$?S=MsRš,9va;IRɓm\t gS<&Y'!S}Rg0dKGFVǑW(Y~ߵ\O:;*%&)G.AkV?nv}5vOq$NJ8 ;bZO& *$>0Ö6B98?FyQ.&mνu (#_"?9, 4miU `hRtaUǎ6 ^$O0ٓqF؋\GOpWp=}ft~=v=l[], 5$e7<x^. b:u9pj(ٸrtˏnWo>?_˛ˏW/4J:\)kJ,jQf[ͭr̾ps 9n_89GY8QO/$01ɾym'x0w "r0 cG3n!mCg+Q̩&g燇Y#OZUi<Ĩq%ql؁*-|˿}tYL6<~IѬ#=G@T`jEiF{Wpj+ AI#(fώ:x{ngp@\lyLHj4pJ'Πȓ! 4'Ex4Iӽ^H}U>ALJY3B^3#jc|lh?+΁֣lmW} (U:}fKJKq|L,j"IUey<Yv8 u,>6&:*롷8U[)O!GOU\ -ܗ./ApIXO'0+yp2 0! ?endstream endobj 18542 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18543 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18544 0 obj <> endobj 18545 0 obj <> endobj 18546 0 obj <> stream q /X1 Do Q q endstream endobj 18547 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18548 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18549 0 obj <> stream HWm۸_A_F+Ib]䮇|"kc%䓴\}gHɖqApjؓ'7<g/GD\%0+ӅL2L&Z޳.J爳E77jj5]?fښ mt;>ѳ2)G8+"0s<-XnwM=}Ǯ \'CJu&4|/҈DUqHRErOֻ~l.LT5}gُ7N֊#e`EY!?G2|o퇔mXdd 3~#vѻhcB0<ȷ!*\η ϝo ؋ ؋$ˀ$ˀ$ˀ"ث"ث&뀽&뀽&}F> <`}N"`o&`of9!Z߶Z߆oZ߆oCT޷PoC>P TET+6@m"j}jZ(B Q@PoC>P TEַ!`Vm"j}>j}B Pj}B Q!{(B Q@PoC>P$TEַ!`Vm"j}6DJB Q@PoZ߆(}ZIַ!`VmHm 6@m 6D}6D*B Q@PoZ߆(}ZEַ!`Vm"TET6D*B Pj}jZ߆(}ZEַ#Mַ!*dEַ!*d71F>zVF7%(g]8MR#XY3Z|C0XV}îBՇX⡹*DXA`t0ZKXL}:Q韌Nx!@ OFANgם 0u~χI8k緟~kyt OȲvN'×rU)I)f<ݦ>_3x` ߿_ +ھ٦g?XQxjs9("Bb!ĊFXcװc~]*Nl<^5ΰ|B["W r!e:Ϙ|TP0ݩ (c0}uX)AsTTi-&2O salp?j ˨cJ7ٵ 龹2fG8CǃSvlNd/\5ӴX-`"]t e'O—1NT:!.qP[kBi^V/!;{|1~oa`iL~sOm㓊jҤǼf>F$.er}񸄆2qr@_/So`E{a^ s\`tݏ.m<=zAXh4ߛnb㶁slzt{Z ]W}AIWI's@iod6mlb<4t76[A_}ƫm+T+@bE[hO%HM1l$*3oBS%!:7H,+~<_NT(Y0  % z%ލ`1 Jҙ/fz]A^1P\c ͻަwY W=BD<mwD iþq[1VMOVL=whS`Q!+x[.&epzeZ03zS f,Cܹ<}偔ͪPiMbl m&KZH=>~{A~L#2]% \2pq"},:*MRb*NX+,{oL:U*) ,@5>HD4y[`H025>WR-{Ө^/kxҺŘx˭ 8 ~9VS<5eZuw7- 惠CU[ qӜ:]+ۅ.8BQp)fP)}T f&/eȢ$:'(‹05j%X8s4] O+b"Ñ4_p-bKxbƅ=O!e*נb5 ˭M(Ԯ(JB@˴vǩH*U?6ԲmGj;T'~1wB*FO9}dV4*_u6>/P 1158 0 R/Type/Annot/A 18551 0 R/Subtype/Link/Rect[93.6007004 444.432007 307.489014 464.112]/Border[0 0 0]/H/N>> endobj 18551 0 obj <> endobj 18552 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18553 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18554 0 obj <> stream q /X1 Do Q q endstream endobj 18555 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18556 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18557 0 obj <> stream HW]ۺ}@/b").Z4CZYZ֒n}gHI&- p8< ^%ŋW EO%Rōd:}kXtPͷuwNM[b&d_&ۈϊ ELeI6m!~_WC3iXHn>m` DR&|ٟn6_/?˜gtC[HD$"Iѱ:.,hjkdߙHo+c>%lˢB\ضQ }TSÈD ߆p:(!BgC!P>w!B P`/`/``````o`o`o)> ا4`쳀}F> <`}A/>Ь DHm 6@m 6D}6DJB Q@PoZ߆(}ZIַ!`Vm"TET+ 6DJB Pj}j%Z߆(}ZIַ"Tm"Tm 6@m"Uj}jZ(B Q@PoC>P"TEַ!`Vm"Uj}6D*B Q@Pok#Mַ!*dEַ!*dm"TET 6DjB Pj}j5Z߆(}ZMַPoC>P&TET 6@m"Մj}j5ZFPoCT޷PoCT޷!*d_(4Kߢ[ѫMtlDb,M iYTxin DLظ96CSC|lw=:5+ܟZҜضޕp8=| ih Ɵ*k21YÜݱfU8\ׂIh!_*D2{.?m[AX~=VLtLVe_^F^M ˘Zx:[`ŨtrqC~๣h43.}8Ulcwڌ܎ وŬð?sףHP1,N<^ˇ>č1]r1ϱ갥_ǼKѦ5cu8ok|=߿‘aǂ,mӴ}fMB3#),_hN5}v?O2D^|#Or#E`|Ho\rി< f[/|n{ fʛ dj#SE<6p*wm;[ C>!ʷ]P%*q*0ޯ6˰=KxRȵܾJ w~P$׉*|?O-u%+ʝ ʼ([:^sk4v뛡0b($*3áJ\p>nDvV( kz/1[M?Eloꄯ'r^5=@#6 F)M94saF4/tz(KuD Uu7=p2z { Ir7AC`wF q('dBp>,i;Hִ0^ˡ+ho87%̖^Y.Ft& Ηdin8#Jey,zEN0d EX$.%Yg;̯rCA-RAm̗ o@CrONH Q,T]J8D7$~Cq8aD.-^}J`Y:2rG-R GF 8 y m,Ȫ, a[QI{Jq'd`lSй$Y/sy'Tk>Fб&a[?/)o!.!l"{BMkp5`qBYOĈKڪr:41 (Y ab٨݄=l:0a^Ͻw&݇=>g9"fhe-WZzyi^b{;n*בяT2qS@Y#z7`)IlIٴA8wѢ,A`(օ O>OIR+I(38T>ƽz.V^ӡ,buMLl,|QpaX^T w|50gc fY&F!!pqlwCşLgEYII1^JҼB~iK⍨% y9ϼ1ZɠHi4,WΒϊ/2R-BɉM nS|S!@y ~#)]vTv恸`92$BQŪ+^ 8˗ rh5@BC??xLendstream endobj 18558 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18559 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18560 0 obj <> endobj 18561 0 obj <> endobj 18562 0 obj <> endobj 18563 0 obj <> endobj 18564 0 obj <> stream q /X1 Do Q q endstream endobj 18565 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18566 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18567 0 obj <> stream HWkoF_1`)i΋$)gMvm EJJQN"}%EQ:E>>s!yۼn~FE꧟^yhLS>alTU&ԗ@R*V/^W.ESKWboj 2$R@S%QfjrYMYmhOofd?_Oۢ,nEW\3~?WX)Ż0vq:LQԻC,ŽW8,;jޣ-aʟMH J_uu 2wRd qNF8:D1d(,9`zך0Fpo{+̽[ -sw{{g3^pXp3>f}'O s S>ܧ}&ϘLp:RlCwO1` {!R Y{Z#bܳZ!KpZkR Y{Z#bZK1d YkZ!KpZkR XBk),=kZK1d YkZ+b),CwO1dqZ!KpZkR Y{Z+bZK1d YkZ!KpZkR XBk),=kZK1d YkZKh-Ő%gBk),=kZKuR Y=ŀ%b),bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%guBk),=kZK1` Nh-Ő%guBk)Z!R Y=ŐgaeNEe^͂L+f  B$ I~7pOFN4dHwQrL5Cꟸ?r5;Qכ{0e = ݄JBoo?$ Cjϛb'~y@?ǰWpn ^x0|zrw& Ʃh)Fad!NAMIa3Q1WhXo 7\6>Pj捂AfҚ&"7"miTvC[]6 ?SIΔN%\}ĵ5NR~(p?n4NoMu1_ErTEgh ~j\<#LC+."~:)n(L{UUn~_.?Eh7/ݮz߷ӞCt:>a(_ᣅLϣ{`onLc'TCZI9S1IS.1晘,ӳbڀ+ضke*ݞw< 6Q&2nD62+#E[TDt/#@bs4EX^BmcN=9 _:)izc[4'Q"qQ@9񽗝疦eC7 -2Q>^NW(|Vh1+,Eg7. NX2bgXUʬ3N>_z>8L 4EjKP:&ZHC=B̊!\&P%s9FBP!ˀ?zi] JBШܤ5vٺ?BilRU'oHC?_:"oi HA] 2F}c۷qM3:gĝk7Sw isx<&o|endstream endobj 18568 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18569 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18570 0 obj <> endobj 18571 0 obj <> endobj 18572 0 obj <> endobj 18573 0 obj <> endobj 18574 0 obj <> stream q /X1 Do Q q endstream endobj 18575 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18576 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18577 0 obj <> stream HWmo_O$p%{{Hw^Q(2m+K$'9DrHw<3-o>QW^QAh&r 9,hA݊e/cS5myP}[A[ya[=WkO`](,#qˈ`}X4Y˰ 5+}{<^*Rg9ٜljNby.% XoM D '0(eCebf| 354k^M $^F#<@|`:|ns8Jd d"u.ʼy9ufñi`SW+AoQN3d(sV;< +|OQP;3dTdy+7 <񞟑h*u0W꾳EOH0F"&#դtW l%gnݧHu`g_N/gVI'VbbWTk ,qD&H˅Es6S`@NNL(o- 8`kjSnu~<.N}kۧn:'S[[Z,Y4 h Kg~XRE\X:rwUt\f·,ڲ `P$B죝-`& yg1!H?SlZD`5!7mN3Фcz #lD`9a%TqF()(w0Ph:)ɢmՒ 9b(:i(G!(,RϿԷxr9xX͞&_ϖxP7Wz?]t8ZLtlpD?j<|Wv;tS)EeQ0[*1~lF[/s{,$Jh ͋6"p,I.F10ټng,9bGFb7PY{zC^X5gA&2ið4P=ҥѬ.j1`6x'mGbz?Rkـ OOCdv)z(9UieRpQI=ou"pc>ңsa`r} `* 6w})'w=u0^zf %ՑТrd9x9Y,kc}:(#tCDxr"M/^S҈( 31.u_%?0It`Svũ3).϶k2‚[# 41 IlQ&]֮Gjrf|UefPHg/5 "6{0&T^VnX(wĩƾ< >/P 849 0 R/Type/Annot/A 18583 0 R/Subtype/Link/Rect[130.078995 539.020996 212.891006 673.916016]/Border[0 0 0]/H/N>> endobj 18579 0 obj <>/P 849 0 R/Type/Annot/A 18582 0 R/Subtype/Link/Rect[93.5999985 438.227997 199.356003 457.90799]/Border[0 0 0]/H/N>> endobj 18580 0 obj <>/P 849 0 R/Type/Annot/A 18581 0 R/Subtype/Link/Rect[93.5998001 200.628006 226.955002 220.307999]/Border[0 0 0]/H/N>> endobj 18581 0 obj <> endobj 18582 0 obj <> endobj 18583 0 obj <> endobj 18584 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18585 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18586 0 obj <> endobj 18587 0 obj <> endobj 18588 0 obj <> stream q /X1 Do Q q endstream endobj 18589 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18590 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18591 0 obj <> stream H{H4ߡ(Yf5^<6$NO0h}: {ؑVN~>ulNV˵zًsgNϢ?"bU86Ό3F-jDM#\׳j|Ųe3R&:yΨ*:-RҪD>,(|TyRr /?v=IMﲙժĤIUC"69gݺ^peĺ;cå?fѻȧщ׈q-PZKiDٵ(ހF -HoEz [ށNw S>S>S>3>3>s>s>s>  =HEzҋ`h6 Z%s-P`jFL5dz L-׈0\# Skr-P`jFH/րQ ZkS5@z1L-׈0\ Zҋ5`jFH/ր<`jFLϵ@Q2=׈(0\# Skr(^LS˵@Q Z kDbj-Z L-׈Z0\# Skr-P`jFH/ւQ Z kȁQ2=kD\#JZr(^LS5@z1L-kDbjZҋu`j(0\# Sr(^LS˵@Q ZkDbjZͣL-׈(0\#JQ2N%ϽytZF'eiV$I'q̫r.w_~ Zkvy숿長?w뢷.Vhn(mxa ^miqNXwt^#椩-էz\mv7ZU;.`c4ӄlv=>N_hִ;תkͼn[e}[^Q36cH 8H`ZƦejl֋ ݲi+U,ZU=GztȫJMy]~zqECɜef -H6L#Jx9儗^Nx+^)JW2Lx+^9ʅW UBxy兗^{Dzq(ŵ@iॅ^Zxe^kD/{z5QKހs(%zo@F7\# x{D-=׈^\ =׈^kD/{ z5QKނs(%zoAF\# x[{D-=߶r\#JzqKށsKށs6Kށs6KށsKށsKށs6Kށs6KށsKށsҋkDI/цxާ-tg~3|شf\ݦo6INɨ]gOak"lvjaZNGZןo> <ݹ>z; * bMb\>W Ýݥ55Q/ʰs*6Nvt\4AfUMT/6kz3Ȩ8qPȼ? ?OC*'Qɴ]IP6~ƅ~.fY+jm{BKV%X(ߗClu}0\V{ dWdKMH3*0q2 0eF.l%\ǚf8*P(/YhRj[蕰%`F N@'AQ x;P@̆8W[0$!\A-|[]{namN;F7[pb:FpR;h=q]Cyg 0!O$bH!2&^O+N3W}V? k^gbYM'#01,yG}S[3Dv}}yO endstream endobj 18592 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18593 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18594 0 obj <> endobj 18595 0 obj <> endobj 18596 0 obj <> endobj 18597 0 obj <> endobj 18598 0 obj <> stream q /X1 Do Q q endstream endobj 18599 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18600 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18601 0 obj <> stream HWێ8}Wa@-t fg&\bH@i[,XrVbSd JS"O|8t~{|3O?1;_O$Kōd(fHEUѕcS5roCb2zd6zb-7Q,g9di>Z8[~azpqy@7x.|͢YٶewϤԟݻ >\ā{[wU/wSg1F8/(>=W{ǯ⒝o0{.fkA~. 3|<9uÈX ߇p8((N|2.DHJe^e^U^U^U^u^uMMM>!'`S}O i>%ا`3} y>'h}>j}BPj}BQ!{(BQ@PC>P$TE!`V}"j}>DJBQ@PZ߇(}ZI!`V}H} >@} >D}>D*BQ@PZ߇(}ZE!`V}"TET>D*BPj}jZ߇(}ZE#M!*dE!*d}"TET >DjBPj}j5Z߇(}ZMPC>P&TET >@}"Մj}j5Z߷ Z߇Z߇CT>yk?\a)k&rCȜ',IrGo7'vL/M8aC5nxE"蟏U*+{¾tn˦nlR,RvcYzkwR a HH⇻Gif2vbnag!R7P:@[% X劝ZԨ jEqlrb)٥jlI1kqsv*uYo펇u_,[Mqu CeM߬ oP {vj՚&|3Үv J> x:@n~]UsgX9% O - عM։%?>ubJM l!o@zq6#:ెe[. ϶&q2ƭ 䦷_o4_eז8m8ۃ}pU*OD [b8U* oLU v,R1C'߳SR<{jQ)p |#Πɥ,fpWe/#$nHT hPJmMN~y([ |NS?xvCe¥0h&wN<=Ϯ'?2{M̝Ϲ߈V'5uYR ^*]JEH nppc3JpIs<"{VRYnknf)1AA=srBTTo5]A8LoQN61e{%5(ĉEAd[iX}-\_֍kfw+44XRQD{p2<Gm:{nnCML8 (+/"xbR%"+mǠs4K}dĬ8r[m/~q/djĄnt!-Cmȱ9X6ՠ v"R.͡(>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18603 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18604 0 obj <> endobj 18605 0 obj <> endobj 18606 0 obj <> endobj 18607 0 obj <> stream q /X1 Do Q q endstream endobj 18608 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18609 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18610 0 obj <> stream HWko۸_2*K`@d{m/^EJֶ4, MQCpj/.E(~'M S+#lH8ҁUb{[/N?.r]M^+%+;-y) TЧD7oT4ihfJrW; u gK1{l蟕z7<@N qz`k kiVCOX6MT8 ArӁOB .?b)TGQK RNrR‘vHC;ŀ%",âڥtS XQQQQQQoQoQoQoQo>rGQ3cG}̨1>v'Q0G}ʨO)dLKR Yzq-Ő媧\Z!QV1kZq-ŐŨw\R Yzǵq-ŀŸbb;Uk),FZŸbb\K1d1*ƵCqb\KR Yzq-Ő媧\Z!QV3k5Zq-ŐŨw\R Yzǵq-ŀŸbb;Ռk),FZ͸bb\K1d1jƵCqf\KgR Yzq-Ő媧\Z!Q0k Zq-ŐŨw\kR Yzǵq-ŀŸbb;5k),FZøbb\K1d1ƵCqa\KgR Yzq-Ő媧\i++p c!i¿b㽙{syc;/iD@2M|]M.;.6E={%%ܸZ슇(ߛ##MDCGͿpcm0hĿom p1@6ZGj0Js5 *޿xjgo._/?5[\|8G807ٷb߈~spubW"bfVwt۬:O|+Q{+HӰUɿ`ӬDǖĦdIͻ*@6]ۋze5`BY-GoNm.|)n!m\yu$ q~& 7.car.Ŗ_ =b_Ad7|V#0L0$ϰ+$f,9̫ˑ)& Cy<(=6!Ge#2SVY#㽔4f 0n"[qy$)aɵ??UMCvy,TI#~'icC^r; : á_=Wr{GƑ͢ &Ads6$-Ĉh8} XHxIB>}Ss&~*FyIw4 N0y&jnMvhg <ƻVy3|2|QhU#6;оt ˲ vWf`':ګ0;^Kd}8{*UQ1.;= ;t`aa+5fVh&8f2 On"+8le%K'thMҴwoKCa837Wp##b6ݺ)cl!>\K\gbzZ1d }T:PA88tX 6I,jlt)C_Mi;}`+5HƠUBMInQH#6jmQO4}&#uTP Fr+.IYhpJ+wh`% -v-'lEgqdL6vq܀ـщNT TqD}riƒjGԪ8o`0WaVi#CLd̲1eȘ##"J)/Աv:4/ewU^p !5Ǹ@UKRgd(Z~{| m޳%_b'-Nj䃣jn]4% l*Vn{"{bĸ[CNk M@Bɲ 'jߵAh{GoC5scM/[ %j-2҈5c"c੓Ó[ۜ 89' J1JI;.7>Yp=g`]T1hʌg&_AۖbFV%0J+)'͡#ws܁`GqN5YٚfgH [%q2J9>R4iT|L3(4n<]Df Tg )ԩ{qO8Mc3>;$ل>/P 1003 0 R/Type/Annot/A 43131 0 R/Subtype/Link/Rect[93.6010971 253.229996 232.705994 272.910004]/Border[0 0 0]/H/N>> endobj 18612 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18613 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18614 0 obj <> endobj 18615 0 obj <> stream q /X1 Do Q q endstream endobj 18616 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18617 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18618 0 obj <> stream H|YoX+_y7.t,Y,#HT@`0}(K EdzWgMf^xUgbCj+C?]0iL4:_Md[bMc?͢o~ԯv]lkk>;m%3kf뤢d21MfM&y ڬ='~,e2'.f_M/fnݡiQ;U_w,K-]oO163(wΜ_dfe穋J~&U@$*JO=+إO'5rY]BcW.Z^jr SHTz{ރ^ WHT>Q }T#HUUU/T/T/T/U/U T W3kJm80RcN/5rtzKJ] ZVj:0R#Z WSJ] ZVjS+5vjjZ WSJ\`j.^MS+5vjjZmVjF.0RcN/5vR#Z WSJ] ZVjS+5vjj=Z WSJ\`j.^MS+5vjj=Z Lҫ`j.^MS+mJ]:Vj.^jS+5vjjZ WSJ\`j.^MmS+5vjjZ Lҫ `j.^MmS+5r@z5Lҫ `jM"ZKJ]:إWiUUdr%3kffN/&+3&e=}'*c^:{.`FXp4Oov>'oob.Rtsf4w]Ң V[>U&LE桴wg)R[Χ9x_7x_. VsG+Zb[-'_GiO[dto\ƊߏM{u18!`jḿsxCd)cex{jgEq麧L)C_QK5ܻ~%c2UHwۋ_~oI3^a!GuүfxwU]si&|3J̍Ix@ၕ*RXA`Ŋ+VTr+W *PJ*T *Ū,iإYR#,Xb9rKށK]z@.RwRc`;{ TX^j,{z/5v4KjKރK]zA.RRc`{{ T=X^j,{z/5vK>K]%5rK]z@.RRc`{ TX^j,z/5v}K>K]zA.͒?}Rz ß/{$pxJ0(K.7׫ṯ̲#~2H/ b-q{^&|fYr|eU6/}oO\ @i+ҧ>axzjڞoch9̢<1Eg,mZѦD9>pǸɃfL瞬WO/di %Oa). m_OZ 'MW/Vflv =b.Yw5OḀّqsI|VČ N{:ztJ*#Y|w -|by̽y;}>Rg&\jG]7uC;a (LS\u߽n׍w~0|Ջv5BwwU6G˸Xk6j'WǛ/o޿ik͍(CWuo죁u؍GS}1}<^pg6 Ü3YZϰ5cfGޥU1~j$;q%Yj@WTǎ*RXA`Ŋ+VTr+W *PJ*T *Ū,iإYR#,Xb9rKށK]z@.RwRc`;{ TX^j,{z/5v4KjKރK]zA.RRc`{{ T=X^j,{z/5vK>K]%5rK]z@.RRc`{ TX^j,z/5v}K>K]zA?˭Q#+Z΋=t!RENb1A (ToTp],K=YdEK8\?Zo('|6@o۱6<)K칛խvMS΋#ećL{jhIA[z e܎΍sqng `I^pʄ[:tN&@ɬuI,2:J\Gxf5C9|Ix hhUmpkYYnݕ3|ee??<7zu9C36g1ߥP8Jd]$$ubUiYCӾ)vo'i s# =}@\⬌U. +0VX21V&2VX+ XQ`EJ+1VX U0V! r.΢ee,'c9rS ] ˽rO5t ,{'jX,N=%X{K`;!TCbB.΢S ] ˽rO5t ,{/jX,^=%X{K`{!TCbB.rS ]>8jrO5t , jX,A=%X{K`!TCbB.rS ]>}rO5t ,L=YT{ ]EO7pXil0%hԴdr~_}I{u?~^Mdt-]<A5?u_a!C9,S|\|6؇KtdV 7;ͮV_Cn-Т- mZt]PCw g_] ?sum[WCӵjjPNԇoC׫eMvMI˰٘=v9tgGuG^=<)R,\b97/zP>̓5ULKzpH?_/W endstream endobj 18619 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18620 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18621 0 obj <> stream q /X1 Do Q q endstream endobj 18622 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18623 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18624 0 obj <> stream H[oGWt@@Ik63e%a/y (x EH6߷S%Ła]5ߔu9?M6[ᛣ/LmE)}4 mMlf/fY}TogWj/f|j6y]=ޝyLQrd ӴugE5Jv|rm dήkjYΧ%j9~׿,r. ]ڹ.KEqyS~(_w97UN>/>''+&.֊9t)M\tv0֊˓{C@HHI }$#$}O> '>Ao }C7%[Hߒ-oIw$};ϐ>0 'S5qazZ kM\^kEVk"aj=ZdjV\dj&.֓՚HzZOVkEVk"aj=ZdjV\dj&.֓՚HzZOVk*՚0֊Lą&.L"S5q0LE2Z+.2ZISjM\$=Lm S"S5q0LE2Z+.2ZISjM\$=Lm SEjM\^kEVkZZq՚HzHVk"aj#ZZdj&.6Zq՚HzHVk"aj#ZZdj&.6ڢJdj&.L"S5qaz7MYH/4MVeDFpeV$HXXa%`5!X-aj VGX:ꀕ ++V,_#KkBdY#,,GXX<kM‚{ZAX@z5Y+5q!Kk0>kM‚G{*@XHz5Y zI&Z|‚G{;aA#񝰠^k`NXHz5y0Gą,#7aA}9h/y_3ULyiR1c^ݜd}3l]'d;r;/݉)_7w+pBnj~NR 7Xׯ~esџrkדޤœttl;5uΤliٜ]~}::KMv98C6Ɇcej8 ew&?}߽,gے.cG뻣ooĕ`zc_IgkM\ZqkM\ZaAEX@z5q>kM\ZaAEX@z5q>kM\ZV\ZaA#EXHz5q>kM\ZaA#EXHz5q>kM\ZaAą,ą,@?Y֟afae;eWrE,7YCl+rUPW=m.;]lٵٮlk&f=ٌ]7-7s3_ߗ˝Zv_9c 0/ֿendstream endobj 18625 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18626 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18627 0 obj <> endobj 18628 0 obj <> endobj 18629 0 obj <> endobj 18630 0 obj <> endobj 18631 0 obj <> endobj 18632 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18633 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18634 0 obj <> endobj 18635 0 obj <> endobj 18636 0 obj <> stream q /X1 Do Q q endstream endobj 18637 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18638 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 18639 0 obj <> stream H40E)Y%]Mj)6^%1w8g9Wtm !H $N.쟮4[̞W LPd!`__PzyB]Q5B]E۔-x_} >f K05`Q-Zendstream endobj 18640 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18641 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18642 0 obj <> endobj 18643 0 obj <> endobj 18644 0 obj <> endobj 18645 0 obj <> endobj 18646 0 obj <> endobj 18647 0 obj <> endobj 18648 0 obj <> endobj 18649 0 obj <> stream q /X1 Do Q q endstream endobj 18650 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18651 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18652 0 obj <> stream HWko6_2|K- llix'V0qG{)Q!"pH9<~ᇫO>DǷ?ȸ_(KI T rt>c.&gѽ;Ǻqݱސc]|-]]eW+UNVIBLR&v>Y^Pyeq*j/V_R9a6ZGRFB);6s^:שyS߯2FyOMY9T'Gr-ɬ4ThJ6-΀]vYslʱ3b̳b X,b휧c XQ/Q/Q/Q/Q/ Q QQQQQoQoH"Q_ D}/%L[DM[D}Y6ƚL 1JƘgc̳R1,ĵ1Yĵqmy>q@\cB\cO\+Ƙg! ĵ1,ĵ1Yĵqmy>q@\cB\cO\+Ƙg! ĵ1dqmyV>ƀ6<+Uc1`!1B'kc̳k%,D}Z6< QV"1`!1B'kc̳k%,D}Z6< QV"&Skc̳R1,ĵ1YT} qmy>qB\cO\Ƙg!*ĵ1Yĵ qm qmy>qB\cO\Ƙg!*ĵ1Yĵ qm5F\c1`!1Jǘg-*ߢijſJ6ǡ?j1,nñT{ƨ!01 z9K0Krb;ϺZ B(jRMTg dDВSLo~Շ=x#TWmUy|xpñqnvn{xӁ/˴ K cB涫8$M2N\(-n@6ߎqTKcn7C^hih);ͺȨnCE@ =@CAmwroJ.qURKcG@A%-/8LnxM5Tֵ+vn]^pNV]EZoXw?[_XS/DAȿX 6L³3N?=Pwqpܝ;>ݩq2`O~6BXCB3u) >z;Q1\+@ 5Z03nC3E_?o]?k>,nDign1t`Y5>:f1J(+qmKє pΫEW;?օY1ѿb_xx{()dE)lxIŋ&ySdpfM=Qe$u7P¯/.;A_֡=,aX46kPBBdX &XKuWuӈ 9{;"0L އ߆λKeZ(5Ͽ`S7UFqr8Ϝ(3zP )a* {m! zP/]g_IѦf\1qMʢYP:~:K8} OY0-)0JÕΧ#2H5@& j;bx26-nԟҡ?~NhKu9'2ۥ姑ԆT$ :>6/Vejsi4_iGPpc>ӮJ8ئi9[_oLnd I'tED9k̍߸/3sY*ca{ZxعzbYgݱjH'Nӝ,>o ;dAEr*IX,Dm!1-NKt8 UD.ǧC4HHz3uHP+{nL'AXjNɸe Ya%K%K%4K'4K' $ $ $V*XEDbIU&,&,ƱKcŘgb XœXœX%XԽ@>< Խ@>< Խ@>< Խ@>< Խ@>< Խ@>< Խ@>< ԽD>x8nCQ}>eɱ\J Ї>, aJHlR+O{iOQ~\5ZpȽZpȽZpȽZpȽZpȽZpȽZpȽZpȽZpȽZpI׼ kX"kX"kX"kX"kX"kX"kX"kX"kX"=ׂK] \ .ɪTUUvsq _h:rU5ovw[|7E8 6ѷ;M{s|:siʰ`\/ %3*[vM;wkLcJڵ.K-'v>/[8e%/tQ;z_rޞorޢorq?ɗKwڇicVVzrI<6dævM;>d pߺ+;&?<}crc@>endstream endobj 18653 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18654 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18655 0 obj <> endobj 18656 0 obj <> endobj 18657 0 obj <> endobj 18658 0 obj <> endobj 18659 0 obj <> stream q /X1 Do Q q endstream endobj 18660 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18661 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18662 0 obj <> stream HWkoH_1yסIrd a?XFh{zE ߯YngĢJ555êxq^7Ӌ_}/_$MOMTz fVKUuV7QJ.>yS}-_ֻڔM]-T]%o>[usHObQ$$ZEASPMr9\.jUgmR{v5}w$,Kڗ韭  ."4р"cx]l` oZuV̟jPnu9r"D11Őŧ,!+,nb{[e1Np{'w̽{ =s}`3}g9s s>}!/Bp_0Qp(g5Bi)IZ!R Y=ŐS XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` Vh-Ő%gBk),C Vh-6ZK1dqZ!{Kh-Ő%guBk),=kZK1` Nh-Ő%guBk),C Nh-ŀ%bܳ:C &Bk),bZK1dqCwO1` ^h-Ő%gBk),C ^h-ŀ%bܳzC R Y{Z/bܳz$Ah-ŐS XBk),bccJÿ&y>M.S^'#(۴PYSdR~DΞMLtBVe!" ʖ4dyO(C.~VU^/Ni/_izw(g她w챱Z0)ðnTI]ˮU;R?=S/~W9;D< #{ۏ?ީ5 Ew a6y jԡYVG!FtOGAn;s64j[Kլ_7eZҞf@0 -M٨y}s)A]job=␡0owv6o3*_ao>' xL}=6b4^zDæW M]/Vuo\]O?p`zN_nɡ)j??4nVfW74P?ہյzrYmNwj 3}R^M9HlQOp Z5h`zqxtYeh'Jày8;-O>Ԍ^MH4-ixի;(>p6Ώ<)(uptK+bK}a4sx~rWvvՏuM1h3фu)~b<Ѽ)<0j_g3fU&U×Ojnƶ\,FX9d1yrb;M W5IP.͵v<̗$ `,d̷i bU{;#pqWWMOWSa4(n{wx.xmS#>=* Ym5Zχ9g;/O,pp?U߶Ex[n5? #I}HuV.nzxkkKGBau<̽^^ޯEpxxyXվ-vlpx9\//Y&  tj~թӎ>iBMs"iaD' fmN p(xVqvyڷ>uOX͛nߕ! t'UZv&wmcArb DV]6 bSD(T>7!xLw ~#],'`*h`q\${r,ƺ={dګЃƎv"eu_. '2}YϛjyP^m@=_G- En6@lw rVNrj}b8O&ΐsoS@l|pe4N:QF r܂˒ )ߠ`EYTO#){DǾU}a"Ɠ0.^G;vfc~Ɋ + , &f}4ѺdRtXہ4_붍f<g IBd„(utKz32?eNOgق4@%:jaXHc;a1jw?8nVhB2 ~jE<0a@e*0EB᭘ S'4MIB]=ӵ)1hX5|Lё·4h}r㊣)Uo,{(Υ2WyV$JFKQTL  Ex)SL擥H kp<`e@5yIdƷ=G#"DE3HǪ Zϻ?~RԛHal~VK5'8@w<,W O].c\oFE2Xiヘ<+Vv=sV^2H7D?Ű@K4L=/o<dt]7J[4"8iIϾ..D@z[G?%#xVYJrut# tq>LGa>MFKoMwa21TҰg#$- u2YR~} *>Q#\<ͽffhO KrhP҅!b)l3yfH.cH( ZӤr4ctc:GLݏ=c߼tUip>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18664 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18665 0 obj <> stream q /X1 Do Q q endstream endobj 18666 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18667 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18668 0 obj <> stream HmsӸSKz2@[v˶pP%l&.,QXt S9ɪ$ϟ]F^xur/I%M-$9ɴU|$˄$%s]wr-?.|ѯ8]'8$%C˜$cy0dK4zbIrFWo< Yc<_E>_;h^VJ9U6F/q}N0_A9NRF.@W{C>}fdF+4 a}.wɇĪ1c&e"˜Dž14B4ƀzzzzzzzWzWzWz׈z׈zY>Cg QE D D-F->l6-69*VƀB\cՇ1׆1G!#rĵaQȵqm qms>r-G\\׆1׆1G!#rĵaQȵqm qms>r-G\\׆E"׆1GPkØbaQ00(D}Z69 QV c@! cBGkØk00(D}Z69 QV c@! cBGkØk0H$0X} qmsT>9*VƀB\\+׆1G!#Jĵa (ĵaQȵqms>rD\ƀB\\+׆1G!#Jĵa (ĵaQȵqms>rD\B\c@! cՇ1G-J_t'G )$f5$j3.|Y:LX5u^~M#BOy^^'|]jZI)7ecZoZS5lTJqs!ۦm0?_əvZ}8;iw!c>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18670 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18671 0 obj <> stream q /X1 Do Q q endstream endobj 18672 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18673 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18674 0 obj <> stream HWn6}У زxх @2Y3@67ymtKIm~HFX!YHVcw|SFOvL/QV$Q$QwD.v,j;v}scQnӰqݳDĢN i"1"-i9tmtuó4fE]4EB_toIh-%O*W/05%I.rBJ YdiJ9v =`4= N$,B}ZNǀEǐE\ k9ZZC>p-'\c"k} Xk} Yp!PN1d} Xk} YzCVǀEǐE\+kZZC>p \c"k} Xk} Yp!PV1`1d µ>,B}ZAN;Iǐ1`1d} YzZC>p$\c"k} Xk} Yp!PV1`1dJµ>,B}ZIǀEǐE\+ k%Z;2µ>Pp!+Tc իD)%i~wEGb50ǬH(eGk٩v7qgze!2l.s?TW2KgS]v`xg]k7T)i`@~T@|yqؿ 84[ōߗfyUE^&\u|1 e(74+oG),THfl&ɵ{u&96]2\Sayfj5t|\yGM LE<^"thx6jz8n9g;{&EERs &8DtgRr&Տj7P|ɡ+^of*5k2-0Š= q) ݫ">tڒGQ&K_ݨ*w1fV^7¼\22!+Ȫ,t jqWBL&8AAxlNlc{}`~E{DE,]yB5T~8J5e 6@Wz\E8ǟ.M6"ѸxZۯ/S zn~o*8 cuAs^}c|Tm਑խQNX^WwocK##ݏ\B߾KcMS;Z: TTʸ6҆+Crq<)!󸈻cz? y%Ƶ4@.i ;|9IO/~帇= ڡީ@zxMkAQv(Tn#<nCf{ʰ\{[6c8cAZ|Mk))(Zcp;Rzz۵SeM\V,}BvO [ŞSn:~z?7l2cnBvdn,>v>\3ϻea@X =<4xBޚn6M!4AtG~- \gv~:rpiSf3x2^ȓIvֶv{~"o.O_s ڌ˰X?7Cult&6R!0QA]vJ֮//ew!t}V) Pa@XؽdBm 5*7Tu4arNx>P"+ wd儥v_!SnPm?BMCk(3[vK *|Sf*{='qPbU#Xw=|U/\&YNF^o}gиeXåX;ræUl|zg"ėeR %9,+VbwyJlbk_|,lz8˖2i?w~wbK?fF _Nqgga]RkX\xyx ѽo]k&7{jjh˼X;rUSpD \N*}yI#eyz+ X;#ͫg6y+pL 8q~aU&p:ɓNԽR\jZ0_vLk3ugjM F~s( Oz<~[?$OJ ; WPtCzJv9/A}GUEhhT uvq>Z:]|>Cr{5^?Wi|-W! ,e-˴ercZ2VjV'huL: Z=iyA3-/hyE1dq-K Zi)AK1--hi-{-b{!Kbׂ),A^ -{-b{!Kbׂ),Aŀ%b{!Kb7),A-{#b{!Kb7),A-{#b{!kQ X),A -{+b{!Kb),A -{+b{!Kb),A ŀ%bZۡL4b~|$ĘPսC%%| 抒vW> P2<7ܾk[-6==!y g8To HivHG-V)@ݴnwt|~yƴ\ofDigiYA2-+hY-ǴV+hLZ ZiVϴzAgZ^L ZjfʢXN;%i)AK1-%h)-ʹ|S,ŴS,ŴS,ŴS,ŴS,ŴS,ŴS,E{S{S{S{S{S{S{S{S{S{S|OvJ|OvJ|OvJ|OvJ|OvJ|OvJ|OvJ|OvJ|OvJ|OvJr)NbZ)ΔiG}1Wp0km|Qja폽L Z5.ݯBS6Du9 zuMmHz|)|קU7 07cendstream endobj 18675 0 obj <>/P 1304 0 R/Type/Annot/A 37848 0 R/Subtype/Link/Rect[93.6001968 663.229004 292.957001 682.908997]/Border[0 0 0]/H/N>> endobj 18676 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18677 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18678 0 obj <> endobj 18679 0 obj <> endobj 18680 0 obj <> endobj 18681 0 obj <> stream q /X1 Do Q q endstream endobj 18682 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18683 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18684 0 obj <> stream H|Wi_p R/#dHcHZ0.pErR~}xQU2{޾~|]d_Vz/U={E52^\W!s:*MVe^mXFFU*W)[4mU}[T[E?_YuEϗQ˛(*W9h4ԲW媯xbC0od0>a}ܧO)s S>g}&Ϙ\p3eXY!CwO1` {!R Y{Z+bܳZ!Z!KpRkR Y{Z+bRK1d YjZ!KpRkR XBj),=KRK1d YjZՑRK1dqZ!{KH-Ő%guBj),=KRK1` ,NH-Ő%guBj),!C ,NH-ŀ%bܳ:!C Xy!CwO1` {!R Y{Z/bܳz!Z!KpRR Y{Z/bRK1d YjZ!KpRR XBj),=KRK1d YjZQRK1dqZ!\yU  Wu|].VL.M2$[4MU^eQcJfY;x vp:3GvCߩT{ܨ?޽^6uQmUB/e K+66%0ʾު'&_\j&D㏇rvEGv dӦi6F4 RàrNKU7+l>q!΍ Y[xbX[9`KښΓq3\ڠ4{jWn祓LC*aSpP4T X/?a1H7㫱 "K:.)b-Tw).J#^[҇^>fu};,kjmN:N^WqcQg]m-AO>r{m@O!A%1w{ڢ^eqc Nʦ':6z{^ ?s Çe9;j f W8x"Xp &AACV.[{V씵?C]CޣKKuB;W9&N׋`,XᐸPS^ջzտ#"n7ƞusnVTm= EM)6 Y6LtVn0*ArT'J{B%4Eލ Ϭg׳^Vȳ]0Bo y>*1簬RbQG ='ڨ-m$gfQ2f=>LJaJX㺘Mݥ%ork\CkxlYFɓ (Ƒ_R:C10ءIC5cDeVpԃ|HW#e*Ҋ[wAȸ%%P (r-8|:< <~{LFdZF< <f%MxoF`3S*me Hb>巯'17\Bݸ]f5x0{ iaRzjdr!rJ`z/bendstream endobj 18685 0 obj <> stream q /X1 Do Q q endstream endobj 18686 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18687 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18688 0 obj <> stream HWm۸_CA$ih ln%,ҢCRñ7w-9Y <4w{ϯfp_fKsŊ\sءv`d5ˮZmMzjj!o4lq9XD0d(b]Wb󏋷0S7 ^E9;T3vv[G$jB#uS kL 쏝 oEU~Yd=W[ꯙ=0);e[+ D&{91.8B' lt9l) <(]ʔ<JU^U^u^u^uMMmmm>' `' }/E¾  `_&K}w{wD-m3E<*em"Tm6JcbG*BQDP-P-y>Q"TmEOTbbG*BQDP-P-y>Q"TmEOTb6ӄjͣR(BQ){l=P-y>Q&TmEOT bbGjBQDP-P-y>Q&TmEOT bbGjBQDP-m3C<*em"Tm6JcbGBQDP-P-y>Q!TmEOTkbbGBQDP-P-y>Q!TmEOTkb6jͣR(BQ){l󨔽97f/bad;b fx8s-L=0@y-4) avs=z[ +zánקݪc7uEΔŧ oYW>NrȷaIhg,p=vQ"6ۼ_3+lS5Sg:e9kkO ˶~۾nOoQ!{ZGn5i.(yY 9U]szwnml8PpfR]"|CX[p )cXm@g1V>LM ա`jcM>qlP&naX"8.P=~|/lɥӊuw@SBC[mN=?~;^=;'.^caAJ|Qu^&wHQjwrz:sKU԰cs8VV+ ;]ʉ?\KIiӮG@I\`\yI'ϕz|D [%lwrc]R+sWW춿,dp0$w:K.&l1 T}JW.Oj.f$Ȏk ?m]ڿ< -ٗ=(܁a ;db6 :{r y9Ub=D+M01qrCْTZӍ͞X4"ˉ 塁-Cu<`PaO5u{ q Oͦڥ a99DL!\w e+$Z?3n֪9³T0- `i=bPp c& X^QV#Z/ժu^yO$Kxƪm //C̀p:}yA/EUol-J?؈^> #\] -0+5LM1M\T; )(SBJ@$BA0GP>]OV}W -e8\aOcu?,%24`i<|f+b-ySP~0cX~9]J ;uܑm_AAU U>¡+,{`.:h˰7ho&sG3]H>H.G,o~脱`Z ˠOrp# \rʙ$Wߙ !/97%#:R4Xa8 u-gBri`6^%;j& QBD6HQO߮a>/Lg:,nk^ QJ,ʨA` t|I9/-.584؏J8˅FuJc9R<ƲBGqS砊.?a |~`7G1dK`TCֲ)6JK}+ ~1![BBB?)o=F)_qwIF{ -Hqqz 9]ψ?Ïp]d'/p] s_K,7cs ŋOOQ1s[q\atH@OxL"y<%єL~GJ)dN̴WN*NuKy6n{~HQT{c  fbR~ÇERR^,|"!ģZ92)m"-Jܔ7T]`(]aҦI1"KɻF6e;>a[u褪 :Ce;>?ެG}xe1qc6fw0ӡçR'm?F=B,8HéNaAx$jɋR1,%AwЋLYn3ܶ!j!+G|m 9.S ^*".}. pʹV65K=ի@4BVM`"C9FzG^ );`ucK6տItQ7熈*t^exWMs2߶3爛1LAUY/lEYFF]^FR%{ ŌXS:HjܓWٽUcDZgs;Sß3H ar]_&Q rpEYy2ۮo!EfmނBb"*>::2F  3ݟ"^ĦilJ`z!ϦAQ iU3CUeH#>o]`m:C򂵿E2?JH?}OWo`)endstream endobj 18689 0 obj <>/P 1131 0 R/Type/Annot/A 18690 0 R/Subtype/Link/Rect[93.6001968 663.229004 307.487 682.908997]/Border[0 0 0]/H/N>> endobj 18690 0 obj <> endobj 18691 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18692 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18693 0 obj <> endobj 18694 0 obj <> endobj 18695 0 obj <> stream q /X1 Do Q q endstream endobj 18696 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18697 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18698 0 obj <> stream HWmo8_*^[.b.) Ց_3dKq芞3Qn;go_/Σ"ibi_:Δ3JlOqIQ_ժyjBl %n<:ˏJH1_FIyR:C)JW8ydɇo{ɋX=-jõGI,]a+F:V^DoC"EduM #O ")c F&:Q PR(bCTʠ(w)C(ŰW{ŰW{Ͱ{Ͱ{Ͱ{ð7{ð7aS}Oi>cgas}y>ga_ } { @-#Ũ6@16D Q!{jZjC>PbTKmbUj Pj Q @Q-!aV16@16D1*FԆ(}ZŨŨŰTRjZj[GQ-!*dOmbTKm SB(FԆ(}ZͨŰTRRj5ZjC>PfTKmbTKmbՌj Q @Q-Q-!aV36D1jFԶ ZjCTȞŨ6D Pj Q @Q-!a06@16D1FԆ(}ZèŨŰTkRj ZjZjC>PaTKmb5jmj Q!{jZjCTȞֈ <:ˏZH1_F2qv/DY1_GKq_ZtX՛dY?XD:׶>.WWw_wNj=:O1P*YpY׈gROMԛw wY̚m-ms0xU'EI t@GIlbBhVidf4+,BՕVj5m & >la SX8Yx72F1JFduVٕyy%dBۺ宭Uu30tNyl>`>l0.r0.?]/{(LJ"J0Dv%IQasWmˮvҘ+UmzZ]5TZpBIN2l1vX۝;_)hRu 3х)uWdu Ot9;@,I8Qmyui[?t_W̫h|u__S"N&{z˜`$WA҂6`c8 &.0$-?mE˲^||c&p q̼h euvW-p:Ir<:ȊwS'5 Lɚ>mAYZA6r-VEVfTޫ .MFfy\cikfLOG%PmN95Sf4HJj;O +Q.π:ힲaHPv.$ldbF7Lȯ{ 0VA[oo<8MK-i>.T/[U{s?:n妁mѢYߕC\L;\3zn`_m[ymڽHJj\݂Ŭ`E񱂠"RmRks"F۞/ nյްXhn?K  !,gշ񩸏점/2J=@j +%$8vR\xv߿zu/h)# "0#(d㧉 H!z5[5G61"ģ?0{*kw-(ec<$}2^oPh$LI:qLMqaw h$=Ц){ڑ4#g ;,|@("-&8?b٬V}u->=EcyUYYOKuHiH2L*2~4.0ycR+U}O?"8 A1z\)vSwU2q|B hq.'\go5XF81MPe,)dO\4P.!XV(TM\}“`#4Knr r6ׁo忖ۺٵ37okjuۆ}ɗǢaXbDi:v;MϿGQ%L%I|{Qsӷe 7$4'שyȒhl0#ڞXS: FE΄-Q5kx(G~\0Zo꠬=].ɣ[ fw%1iuޙ=*hĺ@Nj($5ӈ8er]-``l[ c-lf҄7mv Wv3PUzX-J{eg]Kky:s"Lڐs)Csn4G/1_]4e-a7(\E\Xwv^p 38rHh;yI*:+ND]=Nu,Ȯ?]p)L"0 Zj 99}B^"1DtnlL4\KRVGΗTHg5#r3v QKifaBpĬ"P&q)jߠOv4fq~yi*!'`vUKZ gn.eBZ2\!;8*,q6f_EaI[*e<=Q :EB|fO1 "_0G`PFe]8+ԇ#>Xg/W8ZZ#8hquhgo֫^;pmu.'iL.|7&+u:i8ш]o%/@$~۟efY3v.Y*=nA-2MqU)0 cÿhE|>rFkhixur=+łZMI^o^:{p'd /4>7mmS43bŌY&pV5Y.x 9#~[rá/E%s1~oZ|E<5&&b/gJvn+[{1pV_O:2f%h"d*q?BUTEMO k@{r?P2M"A}bYW3d@}#ЂL2%Fzd꨺8cT!j/׎N2x(X4=5Y^.1VEqX8Xm.l.ý́$͐e-k~g[XV+<OgZtqh͏k'Aۇ4*LZbNv=j-LN|:7͈ZdCVc6'Ws $f^'4M9D+inrolD+Y`$Jd%n8g/pjnx|鞚frцQiC`ӾƪZףm`WL76\ 8Sh5:⅌NMۙNn9q۟~pDf4BڸN̂[Kuendstream endobj 18699 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18700 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18701 0 obj <> endobj 18702 0 obj <> endobj 18703 0 obj <> endobj 18704 0 obj <> stream q /X1 Do Q q endstream endobj 18705 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18706 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 18707 0 obj <> stream H @Fw* EjR&UD 1ɀtY<#I HQV{:`4=ÀMwj1_hMkްDxڙNW3k+ BȞh0)pޗyJؠꭝR!3 0&,endstream endobj 18708 0 obj <> endobj 18709 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18710 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18711 0 obj <> stream q /X1 Do Q q endstream endobj 18712 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18713 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18714 0 obj <> stream HWkoV_q4y|&F4X4! Yb%=GD(Tdܡ8sgoo~0yś_ +ΔOsg&,|Nny[EiΓ_>8y^;cM=K"Mh"i2LHFeQ_4einٳS{|l@df|3^7O>oBӲtݐ7M>qٖ}Y,h_:FПLM}?I,]!D͉c3HcNbIJVƬwkyNwS=p{{^}Ppϕϕϕ///// G>VbāJYڽĈZ+1ficv/1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+EAk%,^b{1K@k%,^փJYj@k%,^փJYj@k%,^փJYj@k%,^փJYj" cv/1bJYڽĘKXcpZ@k%,^6JXcpZ@k%,^6JXcpZ@k%,^6JXcpZ@k%,^6Jl䠵cv/1bJYڽĘܛo.(ևDŊ J+r+hJZ*VJU*hJZҪV"ЊJ+(\$,%1-,вJ-Rw .kCʽXw ȽĘTȽĺ ֐@%,r@%],A%,%1-{r/1-{r/1-{r/1-{r/1-{r/1-{r/1|-{r/1|-{r/1V-{r/1Vh-1KkI/ @K>K/ @K>K@K>K@K>K@K>K@K>K@K>K@K>K@K>KZKbZ#7RAcc &z_'uյ5Գ$Nia<<^$G,ɩuY6:{v~+ɡJˎ\1"tUsG76fжrcشdN|Ymq ut5[7׫YMǯpyՉ9?7,}ZuS4uwдaq5c4m5T14vpuLWvǞғfI߁Y;OlUu~~'|ǻ__Ξx9|7f ^ſh1_f|/'eTqzϻ9cn8iVR'^>iI~ÁyQs74{|s]Ҷ[lݻn^S;@X8fl#Ī>_vC\t K]Gwt5f֯|6U~`Mn,:rO?b,R~[n.wGd\on|GYS:ձ<Ы/{丏J{97H! IZuv}:w`Fzbx/7~t9UϣE^l#)v𞍷 amNŻilɧu=lj 6/csl^scw;aF)+;'v%}x^/3ޙ~8/sp, @d?=7~o!afrCk'8Ԏ7w˚d#t3k2XY_$ƬXJ+ J+ZʁV U(hJZ*V*U) hUJ+"ЊReZKbZ#ZViYeZNi9r@%,r@%,r@%,r@%,r@%,r@%,r@%,rA%,%1bKY@KރKY@KރKY@KރKY@KރKY@KރKY@KރKY@KރKY@KރKY@K>KYZKb}}}}}}}}}r/1fi- ^bZqwߞtX]'gƚzQ?/xKV٢]y>m9oյUĘUkWKo6W)vCzhbщw(ұ6ؓF <u5E |\[bswSjc|E@CA8:q׿dHڷutt;!ZKtLn!4r>= FR^Q8io1BREi<&3y(EVj KR?CדuO`?\g'g;-}T]W ӹw>RFsӶswi[CZ4]35UjcF1V<↡Nd*Yn 7Og]<(As'9 ap@G*g82V4{0͸d,`Y:dP!tn|XҪq"fM5t!gm8%֧- wOK*Ϙ^y_.TWk3@ҕx"s`c]3cpG)2ͥ,*nmPWAJ(zS"a*Z03OQ7s< ,mmoDŽ0uv v<ƕji G6$#!0~CC3yDa$1[EF"sGzV[E 9l;1l>,[42TZgwcZy=wþ^BXQMwQ<_aXS6;X+`X~,uOI-&+)[|KR +ޭ8{֮a"9[kBECˮ R*C K@|!$@ɴϹ6SRd0aCSw Ȑ׭e pъdd+ƭ1iA3U y`18s>}ߋ#>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18716 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18717 0 obj <> stream q /X1 Do Q q endstream endobj 18718 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18719 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18720 0 obj <> stream HWn8}WHd gOf0fL;5VҒdyثW^+o~ fP,e 2JL7kU,z0W ]U . ];I2v 1LC,sbesIioRFZz:lKHmPuwV~# M3 _TW~0ma  e =`O]ٞ$'Y:;@'.Gpx,=!bx,CVB\] XP/

'SO}JO=)>gS3O}F<9>S S g9aZAŐw1`u1d] YzZCs \b"{k] Xk] Yzϵp!PVu1`u1d= µ.,BZAŀEŐE\+׺kZIŐw1`u1d] YzZCs$\b"{k] Xk] Yzϵp!PVu1`u1d=Jµ.,BZIŀEŐE\+ ׺k%ZEŐw1`u1d] YzZCs"\b"{Uk] Xk] Yzϵp!PVu1`u1d=*µ.,BZEŀEŐE\׺kZp!Wb"\bջ|:Z+kYovn'g[0a4NW4z$ Gyzf ̂-btUUsd (q27 eH|iHpvȕQ 'i Gf/[-~q*MgjY?&4Ta7S_$ , HvM=(Ur&1R6Qls3sKHܓaȌLiҟH67 m7}3ɢ6PXQi[G82*X_5`X|߷Mnc6bvۂESqN~Yh0QfWo>Ljq^JM}6thD"Eli$(O57 _<G<Ÿcs#Er>Ǔx$;7U{m|k3 ǾQjyWQ-uA8:sБZ⢴ggšl(NM(ٔ_X?YdIcn2QA1T/%lfܮJfˌ#hLr*\^</=\Tq-NC|{Ysw* P~Ԕ6-)%䙮qώmc3=o*u1MXtw ?\\!x;Qs'XаƖ<-w=Kcr-.˺ϥ>a+'`:ޏ~yrJtob~Y:6c穙:[lM1E `*LeP)}mZ<DΖLL)'nK2"WЩ؎G~o:ֽ,M7_GS4vIF-uixj;{OImg\ѓrgpf-> 2_USO{^X}"IAt<5zh=vY"9&pZ#[WEF^g$qrV>-(\cUTV:(nںI͉?0 uŽG,yX)o0%@'y >xX$gʚ{߲[j {L e ocp.T nsqdse<}21 [ J|-]f~]K{ܞ{ؠOhMnj%`iܻpJ!(5! w577>;F ,d%ٵZL|!Vv03d^)o>  )"pQsbp 3?GQ =O|K 49*"f>;?|:^9/K!c6;fb N *]&`$UBh`YBg@0@b' P{>/P 690 0 R/Type/Annot/A 43319 0 R/Subtype/Link/Rect[93.6001968 663.229004 250.679993 682.908997]/Border[0 0 0]/H/N>> endobj 18722 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18723 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18724 0 obj <> endobj 18725 0 obj <> endobj 18726 0 obj <> endobj 18727 0 obj <> endobj 18728 0 obj <> stream q /X1 Do Q q endstream endobj 18729 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18730 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18731 0 obj <> stream HtWkoF_1"Έk иN[Fl&R]~Pu-Ó3gΐײիWWRzOW ^%өUYtbUWES(VwQfuUn^f~nGbQUT"*T*s5oI@s4cmr"sͤ]TIaS}ܧs 3>g}.ϙ\p3` =JK&Bk),bZK1dqCwO1` Vh-Ő%gBk),C Vh-ŀ%bܳZC R Y{Z+bܳZk"'b),CwO1dqZ!KpZR Y{Z'bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%guBk),=kZK&Bk),bZK1dqCwO1` ^h-Ő%gBk),C ^h-ŀ%bܳzC R Y{Z/bܳzkDh-ŐS XBk),b ]W1y6\4ћy4ϭ2jLOjx뺯e8%z)k9~.`OnMv[mW#cyB`괆͜*=ySʼn9Rr\x{L՛pRd+˲/G9ilۮszSnEc0n,`%X5tcΫ s䇛U,=JN6( 'McHgomu:ćvV~t>H?p~_hcq}&$Ϯ]$&E6Dy.!0Ep\yt7O5<0Ywr/ 4ƙq^Nĝk gE P> p  v(2{ayܝOO i7Mt_+90)1/Y*ᎄNIཔ%Ǖ&՟k:/ {d1>]kgRKJݦf.=Kb"?6ҥV TGh|u `{3&'Uύ7{Ȝp10p^=7M?4)B`1-/hy-ϴA+aZ0TJV*hL+2 ZiVδ A`ZUP-s-!kQ XF2LZiYA2-+h[!CroS Y˽rO1d Z,V=Ő%h[!CroS Y˽rO1d Z,N=Őŵ(,!CrS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1d Z,N=Ő%h;!CrS Y\brO1d Z,^=Ő%h{!CrS Y˽rO1d Z,^=Ő%h{!CrS Y˽rO1d Z,{!kQ XB),Uh,gCfs cppVk&gYJ]}/ЭsnXֽ-LY9j߉?]?=[bˤx2{1|f9k{ ,R׽ږwU]X{1|i0#Kuz`4eE*ťZܗz㇛'.:>HOyoq8׉^-ogqs:?/8X' 9rbgs{>g2\aj/*!7\ۈΎS߾hj&P un'x?,MչrŁ^uݗ?u;`Rnz-MT/n\<[tUMk@+B-!uKf {lZ$! PtwCp>޼}ofsW0iE-g70r9 GTni8%v Tb'0Rg]|N`~ݛڸ禔j7V;{G92ez,C/@Q³+N\$@9Dϐf>4$y=WA_YQYy* :-Ax$yMvkڽ`h@>hj*$T_b@ɂhPʍ忈YY{"<NՓe3~PZ!mG,_&&(YDIY$7'B,|J~'qrI8KuJSN-%-ҕեGy5 zLjo^X\X t49F o55ÄD^&ח;LUCendstream endobj 18732 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18733 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18734 0 obj <> stream q /X1 Do Q q endstream endobj 18735 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18736 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18737 0 obj <> stream HWkoH_1S_@";YgI nP$fV$X_7IVw8dRJ55ř!98jlxruxhiTSabȨ8~hT{VOByQ}>\-VU몘Fݬ7QZes/I4U$*[z(4kC4mB_oy7I9go wq}x`ql]W] 8!.g})3p~P5S^j#߄ $xXxc/ )'圔pt`bQ XZs ,]knb2{a2Vpo{+̽; s C>܇}(Hp1>bc}ǂ1s>'}*OTp:RlCwO1` {!R Y{Z#bܳZ!KpZkR Y{Z#bZK1d YkZ!KpZkR XBk),=kZK1d YkZ-=+b),CwO1dqZ!KpZkR Y{Z+bZK1d YkZ!KpZkR XBk),=kZK1d YkZKh-Ő%gBk),=kZKR Y=ŀ%b),bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%guBk),=kZK1` Nh-Ő%guBk)BCwO1` {!O4M ϓӥ6YVK[ҩ*[zRF~tXQ3 l򪷯;b?L?6~"i7J>!,ֹ*WVk\߂ M|OWeObUbgΫ0WA&%} Vf'Z Zޘ/As˛Uo\͋rPI=QߊVBPzRo~_ }qNy{ź,wFGz/^zu Yj5W_6y^tS0|ϯBQ }n9yN'eU3cYV]$7/ɼaݼDzw5@W|,JcGB*4݃a*hX`:NYCg~דǪZNj͔"Эk6!Cw A a>/k.nJ5 Vn7*rft5ɿA3^CwjX%<]uc({f:<\SVr38LmWViXgnN.쎽6&L8<~w2gz/zp98y@=9Q%pg.q׬"0 عj/Nߏ3Iwv'^sQnatD\fSV{gxxv=:y[6'a 26a"zDo߬ћM3-]v8ܽf*)\]+QǒvV 7]mQli&eoSQ??I^vL=n +vQ=X33m/~)P8;:p\ē*+,T?GV?HC,ݦ˝39ƵnXU=DkZKÓٛƏzw Υn C tېhyN'ǜ b&<7:qA@AbJrcZNrL+B Z!ӊiEVĴbA+fZ3DJV"h%L+R Z)2עŀ-ʹ 2˽rO1d Z,F=Ő%h!CroS Y˽rO1d Z,F=Ő%h!CroS Y\brO1d Z,V=Ő%h[!CroS Y˽rO1d Z,V=Ő%h[!CroS Y˽rO1d Z,N=Őŵ(,!CrS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1d Z,N=Ő%h;!Cr ŀ%bZkdU6m}8dbd7M{#|a <wӼ/x뤗.&Zt~򇚭Tϼ^73yPѼ:xLս(i{oG/;[}YbQdn ?jcgј\8CRG&zY?utj{Eά+볶w2kᑗ7㳡/Oendstream endobj 18738 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18739 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18740 0 obj <> endobj 18741 0 obj <> endobj 18742 0 obj <> stream q /X1 Do Q q endstream endobj 18743 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18744 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18745 0 obj <> stream HWr7}Q)y uJ7d["қ\*-5R-á6s$J9N7N}z뇼 o]^J޽;9;!."N8I+N,#J#F&$:ɦ%;]LddLIta*:EG#v/#"b 'I&Yt;8^.or+:8>6P%U1KT~b^>]X'BX?`T"JMbjLz>hJRs'S"SO}O=)>kDkDDDYfG\bw1`!u1ջe] Xk]̲k9Z,DZŀ, Q﹖#u1B{k] Xk]̲k9Z,DZŀ, Q﹖#u1B{k]l ĵ.fYzZ,_Yŀ, QV u1B{k] Xk]̲kZ,DZŀ, QV u1B{k] Xk]̲kZ,DZfD\bw1`!u1ջe] Xk]̲k%Z,DZŀ, QV"u1B{k] Xk]̲k%Z,DZŀ, QV"u1B{k]l)ĵ.fYzZ,_YI(xHFFO.QM7qBY4̋wK-M;UV:)9kwWIٽ0И2MFcȮJWn:SC$%ĺDi2eEʔ|OVcǻze'JZ2Ht2-|~5y"W+N94q.(IXM7\b|}l\ĩ-;,>.꾊VvzkU̻z˙V=Wqs/R"Z6keGCu({U;UP;)c~긝TlW;4٧jmd6)i]u4_\^OnM믇]Jqwv<:n/s/W/> Gǧx< ^-}eYv2<#:d?X]m.dE;UU~y~SzQ,BMlּ|!7T BHQ J෺_o_ϿJMfb{7fJu;xw~й irb4X('!`y4TdLBU*i"u^!7WJ m+{KhBU%mI6qX%)cyyšn#tC11M$kҟu7JG,SهL=JZ|kk^;܃sƦ |Ӕ ϡĎ$$RQ&7z.0xxŗ`³*0XUm' \,cnuV"Lߏ2dkaJqsT#+~ *Cv4iۏz=h:@.73oS{s-}GGY;xY4O9ѥc/ϊM\冯Z5Xm.n[nYtOK+$Xt|*ФZlgy}$guW>Ɣ9K:aǕMmڕLdG=Γ6] -ý+fc}!Y`c'vкiI`+(?:b*u% EBSn?c W\eg r4&W/`qp}a341:gQF(H S_:nW"U-}oSWZ/4V^@[LR8:Ni'ղ\OE>s>H:ewsyX3as;]5nn?4 F=ġݖU6~U'Oy遊z4D`l endstream endobj 18746 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18747 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18748 0 obj <> endobj 18749 0 obj <> stream q /X5 Do Q q endstream endobj 18750 0 obj <>/Font<>/XObject<>/ProcSet[/PDF/Text/ImageB]/ExtGState<>>> endobj 18751 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X4 Do Q endstream endobj 18752 0 obj <> stream HWmoܸ"ˈҧRI(Be{K̐MaXˑg^D?%T ֢ۭ*7+%bs?p8nwqۉvYVk+0 *Z6"q2MUͰiY3X auRqj+:כFcz@qj/C-f 3v QP_b*'6 ˦..+]V ϦB Mch!FUIXia]e]XBK_\AJ;{Ho{qP*Ul1XjSc4urvצ82$_.)F1-;y߈RE_uR{0YA|%+bp۞ǿ+US>D#b<<$XTˆҡ.eqCiȆ 6U7۩6MpXnV]x8~4Wx=mq<`'Ƚ8tfWw8|(&G [W hS2;(zyK$g2:ZsαnL6 w2-\\{Ws(za%t[Qn6&MUމ6N֍9bRFV!(ὑXv'8 zUI/"]]x VOQ*CijXC-mmt4* `NlxI@JYy]TC4}#)6.cm^(~ų).D>3i/N.o$*Z#ƾ4 y.C< Bծ<5nΫ)qS)ClQNt'Sہuj ғmw]kmiRٽ"s U#-FYCʖ2 8]l,3s,)z;) &D={K%~P)[B;<[dy6a%Xk8kI %ZlJ"}L=_S^.<㔰vwX l?F$'sx u8xD؜A0>!5D&(՞߁I'sRd1'b |6U&lKzY^b}q e@}x"b|t}wlڃZ ˺@ϓYM1l<C6Jn~4~LqoӱZ#eҼ4;U3AT45 ŕzRݦD)^b> 24E6ΝW3N'5ק!jFZηNhluB?|['/8ߊ,)y"InoFs߭nA 4oh/\]K 5){ ޱ< f;~$i=@.*^R p=#E'ƶi~IbzY;}EBNL\Zs(,[ r6ikҸ6*4h DUVѼE 8بDR>rRs|UTdR-<SD.5TWK%)o@&iТ€ndG {c4M>2e!9h[ 9˻!ڪtAx4q+EZlp뮺cNFwVGO.\(ri~(AY ḧTeoBJT:8MI.ۧ B_`W7%]tQ+ {ƫ[hy"_&'ٚqRKE!N /pW.# mHM$҅v h7P&϶eo;]f8:U Ub gU}Z. c+J-`*?ݯX7>}`"kT8rCY~3?13P'$e]֓ aXUb4=!ht'?U1ALy}um56Ƿ '.YYoIe-pᭌgW2VdM&K]#mQ.Ca3Ut%RZPu #'hJ殔ADj`Y6jqGfc tPFcxz c)mmHI&׳4}ךJd5f8h p0O=O=O=cO=kӝF5SSةmCmڦ<mڦ?{=MCmc~mm6?)B/)񨻜,xǣC{Y; 35mVqDB}q<C$ 1A 0fMx&mHF7YY־ṷg-&tNhAr^ 'LWMq2FcPaW ges1COBbuF;p 8rm6*I+/%j3&S?z.x.g.ͿK蠏\+[KTE` 'Ske )7|čn_Zm+@f۾|ڠN-N_JMrS]Igy)^ b{-&0vPY8q$%[ZZ~ϻ`l `ҶJABX ;+k`T^5EU*ױFB BPտZ)ly\R.!0rKRcܣnM%~+q?Q#tIZLʮ@ c?Wmt#"' PX!Md(6E %Ǯ -(R"v6 A@QQo5TΈ ,l= C?JzL ʂ[4iApA1S2)K' @Mgc(Z@~M\y,ZJmJA Ki .kkClό̕> +^)R4W+ 8eTjke /_#г;lr[%̌'_ph/ 6TSA^c+.I Urk,):kY"NrM*z_Ij.~uDqnoFz<&'C_{qq\]q5z+B i(>}˽si~Y 9NfCK>K8aWeҏS7n2U R~giP/qm~'ڹ_xp۷ 6oH:&e%l޺3G$Q%8+OVjW4 z,'4>x%Zh4QSv tdN 1kU~Zx_%ɑHޯ(þ6fs(]")Q= g!@?536K 0t`uj}9A^C:i\дkq\YW5b*[D^v:6@3`tvяm#"Zة@aZ'Rc9FY~oF;'M~n n1qgdgn'Ž;yN1ؐu$EDmp:YE4f6?(VMS\A\f=$pQb d#^=0=0؎X{_'=0yǭ /tldF|FL~w %ĆɞĮ3?gN41vF[~9D-Y1غ#=]Ensslȳm 5;یl7Ȩy.p\L͕KAnH0Bԋh( e:5KE^$DЛ}7Xq.[FИY85hI͞mQ >XX7E`f#֡`DȀЊwd!⾡iWyMy HߘwYLQR8\,hU"-%Ģ |Ǣl-xIjiATarBaXE-#OL}~aOɞ\悰 -Ii`IS6Fk|/g#bƪ H*B f*yڑ04/Bh3l-qQ/m6?%Q El׃?m'am ;a_A:,< +S&l4(Ϻ #fV؊wS ÑhR6J7O1\`dh^үj'oҁZ| 39%9BzDеG $BMmO sfwזziZs'Q<J>152Z#gJ zdC1ME ^\6b~١ Cm:/4wm98:ᘊ5i`@軜f7jlpJR5 /%- s]^N&ubOd*C<9Ҕ*$Ϋhx6!ģzeV} KJD)5"XfFB*)Z7kj]233=!t "\${444 t8ERFosazwĐ UJ4 A)JNi.Hz($it@REj4q|dY M)Q-Q/K~&J'JZ3Qҟ&JL?('%'%`~z}mT.noOK˶ro97[qM^W`(Zn$[SMu /2gBǻN'OVR0ߝpZ (I-]@p(1)Jb>&TO̢TsI4 {l'NWeXnb)f)AE"zSLq:-;F4f#|f%J8&XS,*PqFqBtP+I u)jPD7M1).yLbV@+-xm@hc /N _51Q.z^+J ɕ98DGЌ^pxA4ymF~ k7j\!SA_[P' ~OA+yAJPAկTbAͯk6]TMfWB(,Fk5 i+GAUd6vHdn*Dp(5* NZ|"G6"NIɇQ:#b'IS9 ZShj("_8Q=:Ƣ0Bͺ_B/uX:AkoaN:[k#in+{@vT,I!9Q[Bjw7K߾OrSAƬ֓8csU7\AK[F@:Rh/0SwGuFG*+;k8v!`bY:'B}]^tZ'D^tMH9{'"Is ?aIBZ˷V] ꧌;zYSfRw;-{+H"sn:9 K>ԏJe .\aL khB@]/|ruUh[~ NcC[{ic_3+6yIXY4$yll/bYlZU-)hܝm(slɸq|iҶR7I۬}|jj#H[ñz@yLItaIe(]uՖcmgzk^00݇UEsy8OH"Y<\/ =O.<" J &N4K{@őU^5E6~B4%ӈEηR)^3( -Y 녘*z$qlx 3gnhWnhd0#|`~K?CסĜ)O}kK+?뱎\qqx~hѭ SOYͩUځjH0]B_DV!N\mewUxzy1~D.3(SK_Վ0bj#[lϹ'K٫6ȬK/ B[b"JSW枩JS%J:&ڤz4[gsb e|!'m!'t-umL0Q7Ihd!kl4@bc߰)eVwwu)_01`[z(k)o:sۘ!=K?&Ffɕ@5DW#jM<5fȿ=ɪ 'Xr+'0 j,jkW!Zff=L:DXu倩oA(\/bC۳VK[IY7NvΎ`qy~fG4,?FlY ԥ۴ ]\{[RFA_ommme͇*%l\snb%X)޻$J'K7Lf-+(QsJnlo_?O~p)dZ"!V!"6LsPa'kI)ȋk5z*׸ZDV~Ujbm_ :{ VR m~;wx*:aH>tDEkT@f2)kݢ{  \sF`U6U:gGPmT-3TvAYrՌ+s"~UE Y4gxJ=l.\Xc?,Cݞʢ:J(6"1>p%c{@/rx> ɕǫh$~\ACWWcbBg$'2hG@j"w)'>]ΦTvzջ*h[tP`vT.2wq?a`76 Ǒ8(HԾE|(I4x71˲_.Q[ҰRcvaSY˪jpJKsy#Aro4uyV[STV]O nJ$f1'zQpEM? I&v?4q E6/\Z#P3@)}[%WfgbyQxPyyO#Z,5r0\ie'^{1thruNHyMG МV}v?:oRܾ T7#C/st!nQN23iL߻/z5|mlr%d` F[׸lAd+K,:4T1 <]n %id+^ts/dEL./3[ٟǽO#4O_s! fA̐->!IȶM̮:BèHUr4 yktsU]~8.馝e-h˜sEsyRO=4gbyJFe|/ I]2 _wc 򄓆Ȗ= DC;D7U ΚV5aځV 3Σ/;{@ļ{oGd"rI#GgD{DoF= " );{:[c/Bw]94EnJ9orxY=C]4uPA.8U򾮪 eOQ}?Ȣ6MMp~Sc5,1ZP@+;~ ǜzwj챏@ѯpI @8j,9es>NbIasF75n Af`xO+l窚Uע 0{Wb;Ly+D$>.]V } q-fFfK<#` TeN 6WDJUG"slI{}]-r6t_QUn[*Hfd x} vCMX("/'y 9D}NVwv:FVr`kl)(8е-\G㓕l[\S'2,lDsg_U-V n"j[Ʒ:fVj4]l MSs5Qt q!B؅ͻC+fy)ulұ)u}'R~55s'9 Ukv;RmcALlEuHVTdydmdTbq *;u p0XV'"GAHaKv*+&l  5a!J(!?P?FLVen$2צX3K,Z){vxu3t^)&)AC he>9HiA~N6ohRǜuޓߩrDqcШ:wȇpIK)zd;gy ף;ksըzrg %#ρ 𝳼`km!QKăJ¹u ˠܞWCfr)a`C Wt],0ڵWq^bn,/whCk\n@N⓰Fozl$tE.r?cz}ku}ef~}>yaynILD@ǹ]PR01fI+3/u}N^I%NwOWVߪtLG.)[T%G>ʋ)vdN897PyaM$/?<̓]nnm=ϫ||E]Z~zy'a}I6XUy"V4RŖx}ޯyOy{eqբÎ.yhx!AP34V'Y"+Įr+W>m!yWX }s"\f0yݎ[;f;'#'x VG Fw\ɗ.VC"*^_"p9$-MEʔvI,0myHbPءTO?~Z`TUVLޟBn"t߻}_i/fT*%Y1}F%$Lzݕle  7PdQ`;+,e#ydԎO'd|NEqQBrbr l'Q=CЉ`\e35@'vG`Qs]%SB HkFXW%9ply嘍ii3eZ%1hjZ)H)('oyi"EbipP#3Jt 7`_iBv-lneH 1Xуe>ɩ1UARH|=/Tl괅$Aleܭ iw{%c{TCb7UXoE-碾cTyצww3#μUǛzq ^X"[X=4h)|){bS"$<.d(FF=/9I%2hFLh xM _Gn#([*u:{<%DQQGf6Z:R+8?15V~c'-W} ]&;ǸweWuac]6MO*4qȘ;F**&ۈx*:Ĺ1]8%`t86psI&6,;DMN&uM5#\TG!t#ФcC>#t_Z,a@N%BHqyP)T rOQ4nUi& Lۭ9F7kRETS&b[%C%ҩ5 x'Z "0%@π( ;z\j$&دr#S8 xxao$o<g|rT{a醛x4NמM9L&@wI2WiCClh*Y&7GX!qӟf QL 9,I-2JbtًSuqkܜJǷ~&Dl1]^`(Au+J)^=..buɀ`%=M~= PA.AO~!̪3NR0^*0jO7TjVO7(p"+LʄwvW9 6[T9FV|Kv6dz/>24T>A 6c WA(skxhp9UUе!@t9=gt籲447*?h2XeR8#^MXu2B@c5wہY@Ta#]KzqƳ $Qbϵw^u]K!]4~yDv( k1 [WW7I^\8h)*m *n'.6$,!OގI|ԑzS jONY"AySĴ)-{g()Ĝ:E2WL[ bk.PG,@C՜hMdF-)^Gg)Rl@F#0= qsiNn}`3ƇrSQ͔,ؤYGKX80SQlȢʎ!UZ|9+6XlD(j4=̏.VȆq;h2|1FkZ ;&27!co=!?k@-LK  .m}0{ dH|V«'yoN$<~HVL)} +wd;Ɉ7rV傯*'gŚ%eg;zwU%T _Fחw19긿g572)Cej9FҖ!k}Pl_8YO5( jOr[u,hFvHFM7*GMUȀ~]Tm,.Sixl0"f$4Dca'*-@P-#KD4ViFY %_Pl$́@,[r^te[OoxP.4drx#S%zgۂz~UpϞl\D*euM/'̤]cjMQLh}捠.zC9B@y[T;h Q0oFmUɎ@d)ޕ#p+8#\s.#.g P$b[[hК OOP5ue_!nmawS,:ɮ=l:0Kkz6Jt![Dų.L&}Mb7XawA1 bau_^"Cï @|x\bX)l G=9P\C "o`P->._[bWtޙsBh},AxVA561l+_8U=Zns=ɛ\ 4uR^0}zr$ fNQxjrL婮.1g-4K'Ŭ2 6*:bK՝(%%Ho{L!l^t'/tqk^].<<|eNECNq?d-mT~$r3~?ER5fU)mQ/K6Oɰ2iJTgF(x,m΀PVsL U6QTDPvX&Guȟ9؅!ʁ Ʊ^^Cc @͖l\zB^l6?CPRՊ*fL l&/2Q ;^ԕ ]5α G!.fYцFޡvE *8먢UsLR$ϟjB6~cjCgLgu"i)ՊMnOɉG_eA⨟*5K*Km- q-zގXn"a"m CEyIf,YBerW@kY)%/,q r:Xƒ[S.aLSS./MU+2ϛ&tM6C;@.lg|A趛7nτn |wnBS薻M=췅n~ЍuYa(neu;[BH[J2']@ĵ5A[8 K$c=-i-I)kЋ]H/$L刚&Bdw3bWe{G&IV;ʜݜ4 B[beiad P 9 G97e Xĩ=Zg`#4fܶ ]rPNj=J5%U=gTvDzm<1}0kV&ҺJ|~U=!lhLU<؁t4Q 1hq}g*WO.gJE"7`'r_,jAˏӸ6{ 8^6r)BnݯG#g#"3d3{9:p `6g!y2G$%6XA{ǂR$˕ٛq:JS3l/sT7:f0' JZ`Mq?>Z"dsaZey@3[5Z,| :ָ`{/tD:y/Djz`u^ѧB>~ eZ-gѵ O> P +ѣ9P I6@o_ IѣU$aW$%X3χ`\PJqJ$m I=3|'VpI S'_SټYn,ߣ1 ϘNH R(Ι H >g*>pE⥑(e[ uO:N.ETRH[em+"3f9tnns'Mx&w/"ZC~-/Mi Me-JIy#0^{8R2o` PZR9ro+- _(#ӿm  !j*\^PIr GmtG,.r% R eܼ*;(q_{/9~D,7uIᆠQg w@>amAU+@)teoC NqB!xH"%JϽ#s3*oq=QrdS$|ty*烵{()ȷ3qf0Ps&}QLQ@xO龆|k8EYRkLGuj u4Έ՛Xh?rX3s|YzE :">3'S Ĵ { (R3Ͽ:ExF|Fư=v+_]P<Dž2e0@ H ӅlO5]q֨u|/ц#6z[`I|Iu_@P1g;eEB.JP\k X74}s!oᝫCȓ)6bF!{}.gZ}yQs}~f?8AoϦo1<}0,DMx?9b6 Bv~֕Bc^ O UṖ!H ?l6؝V֜={Z Q:d}Oo?OKb:sz 邨7=)869{hjH R7`Ώۍǥ5@"Q?h[ũU֢͊/hh,dW\1Q$hjea d4=.C Tq~;Fpol?1uV r^ұ3(&o*y1lq w3v6l|e!]n7ϩ5/BSǯ,[(? [b;O @9ҤD`;CTVc OJ爢uninVjIz߿4r997GId.oJk:=sxT"|U.{PMg=C;DMH!)sɗǣ%d׌/ѷ*$TjQ%d&` RYTSVJ 4u=YDKYǘ V~GAL+6暱\`ԕQ:$%~r**{$Т._r<QLXPh?=]-G7Uirܻt}!$cztd>:"vVP'Ǖ{-2$)ZF&.cӢY:f1LueRVߓ\(+Ln, =q Uqs |subYb; ݒ8=;I=y^L[ժ:v3_}I%G$I8 !K )'hd㪭D,?{^DПfgcU~QRo-#RzR 2EtϵDqo֒D B fkZߴͳw5בe&ct7(oLbd TlPǼ抸=/9uץZDzVQڂI.|TM!7whQq춆1~%W<=O//)3/}}^Zߝ`v˪98DP޾|""0- -6S%$R83 GFPǸk*#۽~Y(Q ]K rJ/= _I!&èIVI콢\8~ q4yMt;4Z "1Ӣf!jݑE@9(R;}Q胲o4ө8TsXɘ888~힌Lr&ct28n8\G.3믹8׹X>Tlg*#=hEBl[\}("* VMM(iv1|?jc|v.RsG(d>rNĢ5]TRyLgL?2u-ŗY-:C|b|~K1UU+x7j^t}Bfq:]V/ߴS768/cpY1>طv3LM15M?5/Ŵ5]"ǿ)cV0At!cL6Z+UgHJI0vnj1@HICM%oH R泹'-,8.n!Dmē|ƒKyk|B j\Czs&-LH]݋CU(.vlcǾk-*ڲ}ꕣjF^Lt-q|a CnϪ =fDgJ]eKkV%, At10J-SiDhaXVهXUoThaxmqXFY޾|"Nf%w\:ҳt(V0S]q0)ryE4tgUIFRl;+$*׳V3APw>JR H?Hqr.Y 1JUbវE){OIψ*%hڏ l)]*#o]&.e\^pxwqM mbvjFH6•jndvb:-8%cJAϵʦ|T`#S: Kz5v!DPz>Jic\RxtiُC'd1W^~0o\>{ȿ\2)OM1 SRi|̄  JVQuWŚvŝ#@|vנFmM:shSO|>^sD*ґ۷Njc]Ύ:[wj0=)E* k9_23A!)jh|v s*RI"ii_ -sK־=DDҮ~ |bd9ʵ%bSCZ4 KJOH! > endobj 18754 0 obj <> endobj 18755 0 obj <> endobj 18756 0 obj <> stream JFIF45AdobedC     $''''$25552;;;;;;;;;; 54"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?V@ N_}wm~ܗm~ }wuX nkW_϶%b_aO޶Zqlh[BoN,ϗrƻķ;6:nk+2x 8 lGh}v5&#s2c2xJU8Wh;+#U9uO$v?Vg1j5&U]3ԟv ?4~-lol7"h_cjvAsӑ:^KAgvdUWT-ia=Ȯ0VZk0VU\gV?OX%e/:`wg+cc7#Ϗu>.ۋC;O'* XZȧy_Ѩ9> stream JFIF76AdobedC     $''''$25552;;;;;;;;;; 67"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?߲uՠ:cD~2{һr_J~׿+o)Wղ Oh N],s;?j1$.̼6mF9Tko,N<[Os'Ue"V-m9$kiff@Wmȸqʮhξ='(ɚ_K@ h2,ǍƷDAVp.qFs2>DOb2/(@Z?84z {@ ʵ7{ ղ[R>?\}n2-uoдhߵ2|}]}͢豖KH/%C1{G:±?V/D wۭik=eռ8{\>-fu\|gӹBpLAvSa +!9\|ʽYߠvѮnM'nh.wepʏtTOOOLhTn3 3~qOZwFNj,$Dendstream endobj 18758 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18759 0 obj <> stream JFIF77AdobedC     $''''$25552;;;;;;;;;; 77"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?^>HȳV֎^Ym1Ǿ*?311ܗLg%93?ȕ}a{ۚ~;[ s'ٙ[?IS\_T;esYmss5ژ> stream JFIF84AdobedC     $''''$25552;;;;;;;;;; 48"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?+[ ov*s|dȖʢdǎ&y/IyM3psMdK]7 Jٌ뵞L2_e"V1 ۵'w^֕}~D-i,wusNgӉi6-˛=kVnKF}?B'![3lczs+và;wΰɀ\ߑJ[G = {o"}69~fNkc"[XW e۹{j7Sa{79p$.W|&a/wKRGT[?Eendstream endobj 18761 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18762 0 obj <> endobj 18763 0 obj <> stream HtTmTaٙgYS@U@(QLDv.SRxJXbDH`bDE -hR.M%Mi{{{iݍiWi e, o*J Be<[1ǭ?Wn8?e☗~Mt&캡G̘:g136z'ךR&>ms~؜Wj2FIEE%:d/psqiy)$Ryf}!)`ٲRh,3,K 7JEQc(ʇ)*ҍNQTJWS$q:rTImRݴmnZ9nknC(^Qd**qR*>T2_3Y *ZU8Iy[&{떷;{ZGk64 iHJ(MR۹OΪ|40g0O2ֱ7诮!$ߓ&)ђ~V37@=_n\71AۃQn0O*;O]_|q]kUp. VQV_EJRF}I^!)Ww:ۍ/kty/^=*=/<_! [ۼt -bA*.茅2+:Yh#EeȪWFNFW.˭%BwUDe;rJPEFnHbl0|#-"i6,&  ˶VeXL FJ ـ/$1۝hOuj:6z$$iHdE)VD%=Z'o4WF"p s A-}r墛)qOqgD B0Z#2͸ot.9BE*%AFBLt6]%')&Ad :yY3ECv,Fb;kfL;6Wv51Nc8G>\cpYKGd&2v X8 *܄ϔZW]6[e[_:#!_=eҦq`O40<\`@֢j)8˭~>= o,x)SWz;ي_?P;x͌v}ݻ[TmeV Yv.wvg@:TIԢrѷ0V@{|o] dqZrRaI3,uhg]<\ wyubd jp2wĂ]8̌m˧i7t{uQ/m0l.E']9ݠցf8 Z;CdZ85 ";::0fXJ_老}A[ -PmBG1@Qa~=!Ʒ)*So@n^o:j,ߩ9~qx)Bvp_skw-PB!~ PNfxQWW 5ʕ .4 vJiZKdEtW]"eU˥O%܊zؕѡVەܬ*K\;_+@DtغvLˠJ% `S {U@ \޷$$47Hė}_V5&9NoԄŸsX׵btK{ =Ubk W/}lx5y?h2~:-#~.$"?Qbzb?51B!~ #s LI1Ғm%Ux8Kk$]]Iʼn[]AmgmoNKzAt2ÒWdw> endobj 18765 0 obj <> endobj 18766 0 obj <> stream q /X1 Do Q q endstream endobj 18767 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18768 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18769 0 obj <> stream HWmo8_A _E]o"W/([NԵ-[P/5b+zprx>[_2~ѿ#+53JRl#Y]D}M$Xɢۼ-/mU4et$lL™cb23ESb)LHwwmYx, j|(Ū-W}`)#ʦ(xp(ω* 2#j%0goa 7#gki w9;1l3BCU6 6@ ͣ ܅c$^%^^^^5^5^   S}O immm>#g`>Ь DmH6 cbGͣB(BQ@P-y>P$Tm"TmET+ bGJB(BQ@P-y>P$Tm"TmET+ bGJBضZl=P-yT<*dm"TmETbG*B(BQ@P-y>P"Tm"TmETbG*B(BQ@P-y>P"TmH6 cbGͣB(BQ@P-y>P&Tm"TmET bGjB(BQ@P-y>P&Tm"TmET bGjBض Zl=P-yT<*df;vetl)ir]b35 -\')Wn7P,& qYVev0Zͪ.mU7ki:;I 4jP .PZdf<|(|S%PJQ+ᬘ2ҽzb-~R-/ P8c]J{g lcK]o*Cf'4n#uWO?> F`lH>T\C!A)\#c@p:=I <$ 48rhݼ &Np7WmY.Nro2(TeӉepIN j't>˩Z Q"Oo ڷiGݦj-u'(NW+}5DA/i?>]/xCy'n U2:ED8NJItU;X qQ1t՛P+N:PIl&2ĿI>f6.paBU2Ff:pd&/;1Z}[n>f i"B0I|IlP&s}vBĽ.$|>]M{W1aMg:G#Wӹݑ<]W;JUґ.ʦhW-HR$Np. #r +ۚA~ 9>4F񭦘\Wp9kn,3,^u#zpK:C$޹bEV#Zڟ~<,u؏Y ڄ[#B!X1}:lu>Hp/pȩ) j%8 IK%:hf{'<?O%6NL '[~-e\?۴TRpS|#.AJr|sgȃxy7g&:NTtjWIfE_No.C˝FAߵWf:6hwsYKIJ^Oo(ˬE..y=qdi*/~HFz6r' (z 'W8޶q |ϯQU|H"fMvL, n~?RDRݓ(r3o:~GLvʮ_QT싼-29IeC˧[\u7$/-OVhsW']J nj,b_{^k*^VϫYP W8F>)T碞2 cީRg@@^x6kpWz}եZ{`sir)6bsC/%&+D@nP QBBb4ho?w3!H,DmF ^lir,69Zݹ?#9m\^ˈ|tg HT @\]7],-`Z/u]<,Ym`D`xٕdybĹRƖ IEN0x; Jy%?f{h@IiM MR 7%͓?X-;5y.fS6kZ,ɉQ,TH"xuKp*0 MK0џw5oEhT*^SKyٿݷw7x *RE9'1&+;k_[ hI%:Ij>{'"Nʮީ&Q L4[7c#z-L Ϧܷ,:!m۬,(0}9n?}ՑIhzj{2OID> Qh8 DQjBUϪ;.*59vtr OJ9DԌ2 Xj˒'W`~ ^՘y кب 4zCCe?_ם YVs划\PɂDcޫTLfHBJpD7s|r3:x<ߓ}6 XbzPT= BW{6. 2A&DMY141~^@Ɖ6IEn> endobj 18771 0 obj <> endobj 18772 0 obj <> endobj 18773 0 obj <> stream q /X1 Do Q q endstream endobj 18774 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18775 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 18776 0 obj <> stream HWmogq8.p㤇4=+M(dYvT˒*I:3%%KH$w3gNO?=q2(j ٔ ~F7ϓl^OnV1[MG?z|88I "b/&Yr \>"3|$2UP߱Kv.>|-Ki 2e nɂ/R8GjXq3!%.WKY%ΰ.+Uo~J [h>g>}, L1s-t1/mybڹjmt,31a5Z:ZGPiE%5%5@#3»sh@/-Oil7&@S|\0%=g̕Rk땞3P* ;-cb| Ӱie~-˲N E@[XPSFSϗ7N[71(WTIYĂggmz>OݼJzwdBCE`z\D:VUIO7U(x|s; '_o?'"Ti:tXO꩛6n=}h6fGn#IDDިs88X$ PD*0N|#5?x֣ݤ/Ky2J3,K )KBM4tvZJ{_y%;6ɃGz8E*wߵi٨ZQc h(#9.ȲPZ(lv?CJ36[* S5~|"7kYDI s>vL # W>;Tz9uO/s%E^)?os=kDbR [U/G#RoQЊc׏xV.<ƤyʓJN8Ki=e]}ա-(uq{EySAc0x,I'#c=:>h[,}#ϘZMnL%(,7Ĵ*$H/t#A ™[ *>˄u%XSZIWQ1jAן$*r=L7N?a7%i|3-q'4i̠5sŷv{(h^`~&!WRetZ;T<-B>NQGpp>[z)<{s? +} wπg؀= ğS"j:{ᛓv(vg'4~& )\h𽨡tPL1_SBcdsHľJRRE[OS+6t|C=>`JvFXBuD}O.%v'}-< !9Tu0ZOcFK)rob8GsʕZ$ q7d=d=geÛLDS;&g- bv q%!_0j`r7$Cn2|qh> ȆKRSps k{Ȫ| qA!g4I@Ja[d]SaJ*Қ a AQ09{Ƃ;ŴKQll#O*!X JIoafւ$`I-zGoѢpCZkݣ* HfOT #;&ݪ@D3##swծ±vmke{*7b>hBA2u,<9onGWR@uodX7#ĝYɆP=$`qLOsNd~.B"*綥FUWlm<0X}kQbu0PI..i[CV}Hz 1qc]&&| ^I} 92>U^OJe0|DX-VV=w1k+Z'4hbZ&l@p'KԆ#<[;N\ʚh/ AtT3:[Tą<.dSCZf~,yZǡ8w,sYDFV2Ǩ]jJQ f'ؑzWWhL\[$tHOD/ n f{9L< -aq= cl=dylˡL=XI6w 9Aq]XvOP8\ۡ*l#zi~;ǘ/M~uċ`) %z;D f>-Z r{ ,Kh`-D=_`m6{^McATRʂh+(->(tU6ITT5ȗOM3HѩHM#Fv iY1%F=H u|*3d.]ՏMxjܖC dl:[QBQ RÚmxSuf;ZҴ¹p% :ծ4َpP7T~ȐaDQmyMWK]Q&]UOȖ,XJ/а)P-7M] tOQWխĩWafٕt@rCNgoc p}`U2.ܻ޵> endobj 18778 0 obj <> endobj 18779 0 obj <> endobj 18780 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18781 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18782 0 obj /DeviceCMYK endobj 18783 0 obj [/Separation/All/DeviceGray<>] endobj 18784 0 obj <> endobj 18785 0 obj <> stream q /X1 Do Q q endstream endobj 18786 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18787 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18788 0 obj <> stream HWnH|'8-/$!Wl0,&`#Q6({ݏsxs`Y.VWUl_EӪoNͻ$(qVFeި](Qfʷnm6R5U4٨}fɕQ**s5F岭Ꝛ2>X'nnO/s̎N]οK#8iDpucl"X#?|?btw6^%ÿOkV* 6ƃP6 >GSN@8IlbQ XIYCX{p so{[e1Np{/̽{ =s S>ܧ}&ϘLp1>cs}=l"b{Kh-ŐS Y=ŀ%bܳCR Y{Z#bܳZ!KpZkR Y{Z#bZK1d YkZ!KpZkRlYCwO1` {!R Y{Z+bܳZZ!KpZkR Y{Z+bZK1d YkZ!KpZkR XBk),=kZK1d YkZm#'b),CwO1dqZ!KpZR Y{Z'bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%guBk),=kZKmR Y=ŀ%b),>S1wtFol\:J4 j.'mmUUIڛr8m_矎$][\7lߔX]5ձk¨3wp=4Go' SYs{oq47ٕmof1Dޟi8,>(fI1>RSxn#{䟭:"aeA['ܭݵtS-oTX=uؗ> *q:AC LG>g-\Vݬm~8ɵ/nb^7dh~1s Ֆ[ډ30ec?7vy͘:=EuiƦo1d) ]MD[OQaT.d`x7y$:w쩋ZөŸZX0,{y 㛢ح#Ox's9}>P6irl ~oheǩ{ Kq:A.<Vr=zNjӇ 2=xW,6\p92,!ܗ^U᤬ Yp2Rp??5+Ym1S};~xECVAgt@RHaӭОz8X-,_8ɤprWlptjb?iOxE_ap/[aWޟ /X#u4)ɗ+~p]ѥr)nHWJ{菫PWv^GxW?{=d`i㱬K &cXl ﱓv lq7p—$ck3_cфN&`".y?4E}W(H0g<" qKN\AahWiNfsI~rኬ&}Zx9+tKr Vr WX^ VBaU(BŠVRaU*榹tq 'u V2V&XVaY K*O,%\I]k>Ks 'u {a.Rr5l%XJ퓺8)O,%\I]k>Ks 'u {a.Rr5l%XJ퓺K=װ}R`)O,%\I]+O,%\I]k>Ks 'u {a.Rr5l%XJ퓺K=װ}R`)O,%\I]s 'u {a\^oT? ^L fqe4Wvd8>syKLίXJ|ޙkAݱNSrNlw3s-~j(>]u2tHɝs;*|+ⵃ57ɶ>W2. &A럎Kourn'r}^qg\bm̰![ ]Xı"v\{|1=+*<%sw=V9iyȷ!5𔿪eHM8$T{zNZ]f a$O;}m;}5YaZsgsxlK\tzߜ@/wÛoڴ!~$dqvLCC^|nTmW򋷛gx.$Uን o7>Hn 0Jendstream endobj 18789 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18790 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18791 0 obj <> stream q /X1 Do Q q endstream endobj 18792 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18793 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18794 0 obj <> stream HWkoܸ_A_4#GhE4z  ECHSI})D^} y|xyxsI]Rv{77oY^zM'/_$L2JR):|dM}Y͂_M{hXWnmp >(`,s=[] u۰ 0̕Y~>w݆a{>~ s*N#>E y.7o oue d$#1|޳_bcA!H({ l۠P.9H.,:>s_Kꅧ^ꅧ^ꥧ^ꥧ^ꥧ>!'Px^y^y^ySB}O >#gPy3B} >'P_x BYNŎ \bջ׺|.,_p!PVu1d= µ.,µ.,BZAŐE\+׺׺kZCs \b"\b"{k] YzϵpIŐw1`u1d] YzZCs$\b"{k] Xk] Yzϵp!PVu1`u1d=Jµ.,BZIŀEŐE\+ ׺k%Z; ZCŀEŐw1d] Xk] Yzϵ ZCsmBŀEŐE\u1d=&k] Xk] Yzϵ ZCsmBŀEŐE\u1d=&k](µ.,_p!WbQQ E:.g#?\QҴ`c9PS͋" 8}v/A$l[KQ'Spw'e~ b'D$\;m+ZzlM˔P+"]fùkںtg -syRٸ~(EIMeW_=>{~cWnX0]\:" d8iLGGmf0Q?ts Dy_T4; p̜}$b=|G1f!#0l1S82Qz'# fivSsvk6UJ#=Ǻٳ<Ԛ][9^ͧ0>P?pecU{sx*gm0,q"Mq<3ֈ$Oyb|}cuC[uEXÇD!b%=vV uob@h_'Pl!tT#|?=[!0Cu.QÀ=ø٘B`BF/3e{%~*X.g*spH"ѼDzm:~,dS! =ށ[IwǺ6W0<#Sr-ZOsz%|f:&B^j47U D9*I8nMʇuvvR b}^K$'>i5.v#ȵ1.Q .Ks;bkJ{c y~J7c)2NS{@ r[&AE[(bޒsv ,t0O)~ j GO0FQX!B8N<'0P]vHJ2Uڍmd9ڋ&!g;esI}Q9ja9%^S >/Sq wIcZb1K$ڲ>*30LP*1<'aA. a"#?ʺSE60wA_^N6cGQh1<4. zGwGiWT 2hx"Ի 6Yn0kr7 xH=7e8Qa"MeNS-S#z1UUCd DaPϤoP"~mm᧿dRrsny>Č] 9|L.b$3(MW5Ig 3 R7NBbj)=d[zUVջ~ETcƑNtHc]\o_T A1!6!17룑ޒԡHxn#HX&b|D3X|Lo&e5,ss㙎xBb;$Ht.,\ ^{)yrw__}Y_)/pb׺ŦE(cn ${Yu:(. ځZ]&Y(d_E1x'u˃Y(%c4t_9^2pv v-(00N T(œqGj @w6ud _޹0DcCd5a!Yt8AuMHcHi3GEqߔڿ؃d e9r9$ӜU3^0(KQ R wv߮0(s:ew18fYIxo^59MX7&CI!}BẶɳſA=j8&|̹y$#4 Oe BfrԺgn5^]![>ukiO{_sS~UCWmZqOWm`*endstream endobj 18795 0 obj <>/P 665 0 R/Type/Annot/A 18796 0 R/Subtype/Link/Rect[93.6004028 409.169006 284.184998 428.848999]/Border[0 0 0]/H/N>> endobj 18796 0 obj <> endobj 18797 0 obj <> endobj 18798 0 obj <> endobj 18799 0 obj <> endobj 18800 0 obj <> stream q /X1 Do Q q endstream endobj 18801 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18802 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18803 0 obj <> stream HWko6_"a7: n ̇bLƖL}%ZAJὼ߫oO?}a3IÉbVHuv)kEY-kա~=t*`s\/dFӂÃLɂl[f_Jhv++Dj޹ţ؅}ە掙"¤&Zw7Tm#K c(P!eiA6Σ* Q%Ay>u gQU^;>اֻ L,[DrRBL!v'K]L%Sp\R7se^AC2_vXQjqA$[4ku}u2K0sY2٤(ŅHQ֮67L̍} *o)DBLڅާxگvuOBTQ4TBRbRrP`5.c 7:^&9U(=.UN)N F=l8 M /v4FoWaP׵ˡj{Zԛz=y'\Նd)\eũ+_VUc? (A*R:VpUWW[HOqPV"yA}7M|Qƕbis1`;4fDDqm/:! RSW_AI0>3ѥ_C 5tS<_Ti'xLm@oԂH@C8qc9D/庋r бݗ9/RV/!w)chXڨT'ǜϿpBL/ #\S&ߣ(B@SUA2۷G_ͫ+eNP>Q ئOSDzǀ0z\1z&HqE7dz4~~)"V+ c kg+:O~0%W')0#PC2BcL/T K<Ψ21rD%ܘ0Y nxTEzG0,-&g5oRG@lYORq#L?2틓fd&E~8*9f AcK]\|ZMefV!zM:JF HT?=HX5d0 w  2ݜJSMMғb5q;&dQ5f ָ`GF5f\j̺Ȍo53= XA<u֏{ zy*eJRNo`L%{Ѯdƪz0.pJGluHdP횈B>3K>x9\›xFrl5v_ + >ff\D(]N!skUFr& zRdT;uz&Ш? Z6j3wٟgNL!n08xÙ'U\^ WsM8EMq{)!c0}¨/0,Lؤ@y .s{$d){}c-;RRkB8'xYj]⇤őϽsb fnKM<a>'.x`)zvAhips)$ICڧ3J eB$xA|8OnLQp'm0^hqq7aCuݼ/>Wpcr1ivRnf%F=L?e(.M'e h"5 Cb^u7 y0pӝuBKG8| TmW(Z|QaH>zwTNЗ%q'1e02"*I"ݩmN U{+HsRJQ GQQ5FUA(ĨVtRNЉQf u4jt{<:^}k2[u5ENNxxۂCմ 0de endstream endobj 18804 0 obj <>/P 688 0 R/Type/Annot/A 37668 0 R/Subtype/Link/Rect[130.078995 539.020996 376.951996 673.916016]/Border[0 0 0]/H/N>> endobj 18805 0 obj <>/P 688 0 R/Type/Annot/A 43592 0 R/Subtype/Link/Rect[93.6001968 440.627991 199.356003 460.308014]/Border[0 0 0]/H/N>> endobj 18806 0 obj <>/P 688 0 R/Type/Annot/A 28349 0 R/Subtype/Link/Rect[93.600502 296.627991 215.735992 316.308014]/Border[0 0 0]/H/N>> endobj 18807 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18808 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18809 0 obj <> endobj 18810 0 obj <> endobj 18811 0 obj <> stream q /X1 Do Q q endstream endobj 18812 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18813 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18814 0 obj <> stream H|{o秘nR%NHdmԯZ e E9JKR^l~KR޹Y3w73ܯZ{7^] [˩oq-'S K(SWx6 cnWuNmQf.D142>$vR8"LbHDPSv(hӤΊ\ ҳM'ShVahIKMiK]USgV=۷C)Aݘņ *:,)~-nwY<>b-HΈ5FQO{"ql.}:qt1.qTdK-dK-b+-b+-b+-ˤw.{LzOK1=-Ǥ>Lz_K0-}>҇LPK2C-}Ĥ^caΐ TCjbTCjbjbkJZjbkJZIQ+j.ZIQ+j.&Fdj.&Fdj;C1R ]zzjS ]zzjbk*ZIQj.ZIQj.&Fbj.&Fbjbjbk*Z jS \ TCjS \ TC^e.C-PK5t15j]ZIQ2R \ TC^e.C-PK5t15j]ZIQ2Rmgx TCjbTC>(r ξ&;clL7F##~`[J;|N7Yr?|ƃm'e<şX/W1 q; H\6[Q+xf_X65:iv_}sud`yX|ntx1ag(ˢ/guV">//EY0Ulr*:/-M2*O*H.lRԅ`LWQ3om*iK rYէ`섰Pӛ%safafy,̒y~h,MfrU]~T ۴/c~|=9YU,]dW=[K]EvHJzjQgיKzVxxl"G@rZ]}oǺ]'fY/L.EqA$NGT.8 8aoY!|@wzܿ\ݬ0J#^l-#~4oty4\]g?$  gӡoR  CXί빾?ngO?S2+^d0v1 |tpDeq';+q]ܜYsl~!Φ3stoqG=w} buT0iEԡdFwʓmJy϶yvg]Y8[;@7OUV ]/wӿ1o ?! ,Si ~Z .ם0j_ sPc2}1O_JC;kno&n S\<+ۋ^dJau/sޝ ٦hW"4xCe~y}81 .nLpp+ٳؘL 氁endstream endobj 18815 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18816 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18817 0 obj <> endobj 18818 0 obj <> stream q /X1 Do Q q endstream endobj 18819 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18820 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18821 0 obj <> stream HWێ}W0 `N6X 6+Ìap4]&M~>UHTU˞Ӈ4_}vmϯ~\r?ʤo}J͋T>L珙ɛ<{zUͷv55|d~h}v=^|%xS@3/tch&zi#ǨN#yW󯝰;:*sdW <Ӏ"c|.02l~ȍ}~Yy\T6.RqY 8'ю(,:"ލ),+̽[ sw{{g3Ap }> #s/s_ })/Rp_2Ip$g5Bh)άZ!R Y=ŐS XBj),=KRK1d YjZKH-Ő%gBj),=KRK1` ,VH-Ő%gBj),!C ,VH-֙RK1dqZ!{KH-Ő%guBj),=KRK1` ,NH-Ő%guBj),!C ,NH-ŀ%bܳ:!C :Bj),bRK1dqCwO1` ,^H-Ő%gBj),!C ,^H-ŀ%bܳz!C R Y{Z/bܳz![gAH-ŐS XBj),bJ)\b]ϳWs&?dFw8Ϊq0d*a7*мǍ ^ Sauڣ}эQƺbt Vs>42ާHs*d p)[UI2Hd"S4jnm߼~dxCK 쎫[.5Tp<6٢/J#jel9Pmg5llĄ!/tZ=ؔ^AlI.u@=sg \p)Ϻn@DTj3y]mƳ@|q%(]xGƍNρ;ek#p1Q,NTofpIڃZ/}샀Z:FsY媧Wc+uW8gpqBiCe'?p|y2=lrtbg @<|P *0d%Ŵ噖< V`ZA L+ ZiEA+2B*V!hLJU Z%JVbZIJT .6E1dq-ZiA0-+hYe-VV{!Kbuo-VV{!Kbuo-VV{!Kbuo-VV{!Kbuŀ%=Ő%hwBS Y{'=Ő%hwBS Y{'=Ő%hwBS Y{'=Ő%hwBS Y{'=Ő%hBS Y\bbX{),AսbX{),AսbX{),AսbX{),AսbX),E1` uO1dq-uc 'zBw /p[_b wZ-;G;eMk6*Gƺj6oJR߃;~zguW¶Q~{Ss }{,m _A8\"DlX`qc^ɐACJZKٴOϜ!un^od'cݲmh0RTBrTQlq]M.Cmw]MA#k|`m<+4˹epc(>woaOprlH~\}zƎe`3]-:Ui^Lv zuRtb?tu?5ܻáemwr 2꿗9c :+,lJ%uO)I+]<)k1͕X5^dg|ퟛ|u$ҐEz7̞}>6IP89[4]o&"_J צ_Vy%X&t -ieVieViViViViViBDZ2%le -dka̳b-KZ"$%#-IhE1YV{IcEhE1YV{IcEhE1YV{IcEhE1YV{Ecka X1YV{EcEhEW1YV{EcEhEW1YV{EcEhEW1YV{EcEhEW1YV{Mcka X1YV{McEhEׄ1YV{McEhEׄ1YV{McEhEׄ1YV{McEhEׄ1YV=<+c̳b-˭z?cF|PL 0iV*|^4 <>J(hWryM5ʾdJͥoǎ:Vc}t5`4Teߴc a]_ ۻ.Џenxwع͘Fs#S`nN!mհ2;ۇ E&ϱDfCZ`f\.pΜ@'Y`ٳ~7hẀvS/zeٟ4Bsyw<0QwF|õ\dL:WV泀n (1H`7֨{d -SPy78XJqXp_ƥDsD>;;ط݉Ci8+,Nj[=IT^a9$rȑ4CIXNŝ8Lg\;᷺?]ٻޏp smS{^vC|1ZNt7p|Vx߃0pKv`$Jf>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18823 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18824 0 obj <> endobj 18825 0 obj <> stream q /X1 Do Q q endstream endobj 18826 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18827 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18828 0 obj <> stream HmoWLICq8m`xMĵUZJJIw(\JL8.1,d&JtD+Lb\﹛o|Ɋ .6246IZUv|K>uJσqP[ӌ\L| )`/G ?ͷݳ8D\:3g,bx$=k/58)9Jιok@ ½ ½K½K½K½+½+½k½k½k½DŽscϽ!Ͻ!Ͻ!}BO< >[½[½YNk@Ś|XH-ǚ|XH-ER+bQ{/H-ր"R5G "XsK R5bQ{/H-ER+b ("XsK R5G "X[H-PDj(=PDj(½ZIk"{DjZ9pVŚ^j%ZEk"{Dj(½ZIk@Ś^j%Z9pV2PDj(=ր"R5G(=ր"R5G*"XsK"R5bQ{/H-ERb ("XsK"R5G*"XH-ERbQ{/H-֖&R5GZ9w5GmhU,_4Lq6}JM6Yl@\,ߌfL[t(P4*ӈU*L!m{YӶ6֛fT,:* QNt-/Uo&!m2abcoF|VhTtmŅ -]czTA ZcšjBxAKښjrCYj~9mO~լЃVS]x.9%sϹ,f齀mU\Vc:5{f'l}+i=VI]{nED۶jNS7q7Gp5 HxsBt$:4]v,'RB{uF܌? fwmsX9h- D[ԫoyEɛvTh:YYn݂ip&ooe~xƾ5Xl-韈tҌ;=7(ܶHWU8<M>p<z3{-ViS$!숦{*yq0I[ӿ{`Oo $L&ػ?''=c8mF3:dd 颂0b޳tYVmcgK޶'UH)e׍pMP,Gey,dL-I"!¸0#h^XMѳtnEXjHpA ْ΋q9[hR®BC2ٓn)tݓkz'ГDt)ӓ]>gv: dEm^ <[lۨkU;lmQX؛좑{*|jtij@]49g܀lw>ޥoG}pa| Hȸpv.s̀lΣʨ3P^XFm*זw=8cZ|!Ǹh-Ε{f#SC)?o6h᩵rG~8 u#g}h E_חDcחRN쒻M8v/U{?'e.<=8-Ysɇ.D_.w2Wz~q}}.>]]ֿ ?N݌;N3nazأEtKg;b@:;?<iU[?y"ᩛP]^N?ftý:]L/?XhTendstream endobj 18829 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18830 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18831 0 obj <> endobj 18832 0 obj <> endobj 18833 0 obj <> stream q /X1 Do Q q endstream endobj 18834 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18835 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18836 0 obj <> stream H|]OHW䂉RՕJQVzA+d6(wIh|a ֛猟qVa7oVN }GMrS Yt0+t*eRoyOm?4m=F>[٩wZ҂Z& P5!Kr([u8z ,: AÐw6? .ٲ]_fW秊QuB(uYm&n ?(->0 f )Og}3>c`1\ϙ}.̾ f_F(-Ze )nOH RܞfHq{EJh-͐YkZ!%سZ4Z!%سZ4CJgBki)4CJgBki`Zk,RBki`Zk ) YZ!i)4C )nOH R=kZK3{Z'fZK3{Z'fH Nh-"%fH Nh-͐YkZEJh-͐YkZ!%س:4kZK3="%fHq{!i)4CJgBki`Z,RBki`Z ) Y ) R=kZKH R=kZK3{Z/f BkiY )nO3}įuޕjUK kU<`BM ([e׻Yx~78?PA{??UYXmhnjs9]n"ϓLD跥\XX UwSx[ú6 K/^'^~ktW^kXNkF_۩N;ΛFisV;x~[?(ΧGkWu_Q|~o{O 5l:POdƸxc:?m5&a{A6&д >Ի}o7~!Em~`V?:MjmM}Xyk<$7ybK>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18838 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18839 0 obj <> endobj 18840 0 obj <> endobj 18841 0 obj <> endobj 18842 0 obj <> endobj 18843 0 obj <> endobj 18844 0 obj <> stream q /X1 Do Q q endstream endobj 18845 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18846 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18847 0 obj <> stream HWis_#x.KTʢQHRłyԑ8=3{3͍ұdo_yg&1O<}v#!]0i̙s?}qtC\bWŮ~Li";ļ$ s&1c>]JIӨ$TrJ)&^$,Ĉef Y)`Ij#r{{+ʽr>()p*)p*)p*p)p)9p+9p+9p+p_(p_(%p_*%p:kAi%6hĘKXcv/1fi#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 WuFVb%F,Z1K{ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZMZ+1fi#hĘKYڽĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĦQ Z+1fi#hĘKYlhC"dM> &2(V XJ+ J+ZJV2) heJ+ZʁV U(hJZ*V)\$,%1ެ-,вJ-Rw oֆ,r/1f-{r/6lRZ cRw o,r/1f-{r/iȒZ^bZR R  R  R - R - R R R mR m֒xTȽxTȽx+TȽx+TȽ%h{K>R wr@%Ư@K>K_́}k-1KkI_} r_eYПޏ7iT5TQ&z3eLcit967G.$ۣ7 IE}Bd-!|.̴qܶԳ際y76.e|tl^Ϛ/KEML왣z2Y.o;=MiS;2Sm7kf˝t䀃=sscv21d&]n6sހ8A+I9 [VSGWgI;B>?{ee82>kNj,Z8/hPТM]F\S>.(CбG`,CR҃I4{לJDi[sng[gO;u>C'+N}XpԺnZoflE,t>ľSG]3n.6؅>]㬷XyuqgdWMLo:1ti͆+O9}1(S]ώvVpMU;J=/KW X|i"4}Y~{NĶg'}j4My }Lи՜éy7 f3nG0l"k3D{43{h.E'*TƢl}AIJ=ѴՓ)->PB5+K]fFi5& pJle\wta9`_M|5H 7H> ь WmBdqa6㎩jz_whqa?uӐ ;Պ] 0eL8$Tr}gLC+A3|O`Z~y|d%4dvI͛ %Q܂w:X2Jvs4"591'H; !*й`<#rR 3ȝd 5] YȬW1i S<ңB<X8޾xRx^r'R(e,p(gP?+5߰!?7kK#Xk}|SBjXA?c{꼰x|2 WB}hCO^c4Ž&s+C`->twYdنM'X4 VMִ<KPר4 iۂV|HĚB[m#5 S2u ~I-sl2u[H ?~P>>=!}EWV0s]U60Z7| q3)Z&V:Y ij[}Ef2r]<`ς Wl d|uڿH, Ƣ(п #5[ŧxg*ʄ+䍾y͗Ż;:dY:}A63>T|yM"N-}) a:.̋0٧.z|5v) luRakX.2ĥOt,^D-` 쮴a Vo2~تU , ό`܂c},ƻw\)aLMhG___`+>>endstream endobj 18848 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18849 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18850 0 obj <> endobj 18851 0 obj <> stream q /X1 Do Q q endstream endobj 18852 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18853 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18854 0 obj <> stream HWmo8_".ضwkq 4Er¶\͈, hD×?|B_~yUW8*#BǙyTS}H([ʮZjvͩWݩ^S]U⡍^UYDI‚OBm W* 'riv뼈8ߝOˤX4midEj38X4Ov3sbdjiU$C D:VY$Rn')6":U d}daF6b,$R jCT8*IB!*eP{ Paaaaaaoao)> ا 4`2Ӏ}ư> <`3}ΰþ "`o6`ofFԶZjCTȞŨ6D Pj Q @Q-!aV16@16D1*FԆ(}ZŨŨŰTRjZjZjC>PbTKmbUjmiFԆ=Q-!*dOm SRj5ZjC>PfTKmbTKmbՌj Q @Q-Q-!aV36D1jF(FԆ(}ZͨŰTR>2j Q!{jZjCTȞ6@16D1FԆ(}ZèŨŰTkRj ZjZjC>PaTKmb5j Pj Q @Q-!a0}26D Pj Q!{jCTZ#$4*^%Hjɸ(XE"{|g"ˬXŝ2K$ *W)l1?.X^b=Vq,OˤXTPA5}AzHr"\g<*:0^1AKAw&S+a%'@&MuuR7g#r,iqٔnPyxt ƹꙑΫKakux}N *ޯ@ŭ{.VϢÃtNhcٍʷ½M8/1_8`{LJM%l}c8S[G4w?>/rPJz>dtp;( { n-dDcg6X3]^N0dA(8E;2 ʑL޴'0iCb1w{aG r}qwJebo832T׳$C;߶O1Kqyӥј n&xęi~߉iODP`~Qg^d-:Q}aEQL! 2u$QRGU)>Z.  䱪/h"ͅ&X'q=3oK.bew-f/Ö?;JJ9[vj-G_qλKD,6+5Y9=ZjAK ZVubH B:%UO$ȒDܗE.#&JIL/HcB^VϚ'{~Վ7C'T073hjdMb|BcT@Du "nlÿ"4Qt !O~aӻWPendstream endobj 18855 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18856 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18857 0 obj <> endobj 18858 0 obj <> endobj 18859 0 obj <> endobj 18860 0 obj <> endobj 18861 0 obj <> stream q /X1 Do Q q endstream endobj 18862 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18863 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18864 0 obj <> stream HWko6_ Ň^@ MQO7:A zJ˗!$g{._a 뛷acR?aZ8a8 Oa$c@: ~M5Oon4Իp4|7jKҐۇI K3̓"ܶADlhFh˻n_I5Mm5UiW޴n~hA\ml?̃iNaqy-Sw ka9$I h»/Ie1Maܤ6(3 n2u9)IGr1s1`LRj'bzꩧzgzgzgzzzO>EԧQz3D}>GQ{sD}/@Q_zKDYڀ"u1ջ׺d]L|.,ĵ.&YzϵqIs-E\bB\b\K׺d!=Rĵ.,ĵ.&YzϵqIs-E\bB\b\K׺d!=Rĵ. qIŀ$Wbw1`!u1B{ek]LkZZ,DZ$ Q﹖!u1`!u1B{ek]LkZZ,DZ$ Q﹖!u6k]L|.,ĵ.&Yz,_ qIs-G\b\׺׺d!=rĵ.&Yzϵq qIs-G\b\׺׺d!=rĵ.&YzϵqA$WbB\bw1՗qYV&3 ccYh=)[cT;I'1k"|.RQKruȉfsi:LQn*7StI=W -,uܼ]J$<I:-}9Le"totܿFۏiczr$vbh{2_k7v}5UCCXd.WQM$0el_Ө )h,_謣HjeqZv(4NIn^frs<JPENC#dJ-H X`r(YupUe}8>d 8$)z@ܯeޮQHMO{ׅC6]Y5]~ C9{~\,S!j]=ѼK{Z-WYopqrB35e3.qO|*G=2?.Grs?w s/{,D^E+gqeB>eRbI)iԅ[˰RqDm ͸CiLdm8J8 Ȕ`mӲ`JGd!\Tl>o19[sǽOM&. =V1 ]lS ]H=g{V$| r"7m ݯendstream endobj 18865 0 obj <>/P 684 0 R/Type/Annot/A 25898 0 R/Subtype/Link/Rect[93.6001968 559.229004 184.404007 578.908997]/Border[0 0 0]/H/N>> endobj 18866 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18867 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18868 0 obj <> stream q /X1 Do Q q endstream endobj 18869 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18870 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18871 0 obj <> stream HWk6_20ш=( 4&4Al &AزGYKr%y{Iʖ&:>$]ُO?ݾ{,LŸ~.#`2f* BL)*AapڗcPuju%wCtܮG9bs1`1 Y)r3w1`qB=sB= B B BKBKBԧSSO}JO=>gSsO}N=9>S_ O"+O"{ei] 8ZCŀEŐw1d] Xk] Yzϵp!P﹖u1`u1d=rµ.,BZNŀEŐE\ ׺k9ZZCs-'\b"{k] ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d= µ.,BZAŀEŐE\+׺kZZCs \b"{k] $ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d=Jµ.,BZIŀEŐE\+ ׺k%ZZCs$\b"{k] Rµ.,_p!WbիX)%u<]+;Y,8E}5 I^D<usWMՎXw6XơˎhLξۮo_V*iQi,L˙ۭ͌/XUnw9n_50V}yZK2 ҭǩu9zmu[ѳ݃zXA.q{_.!0!C/[s4{DZ:q67Wx|!c%g .Fawm1PmQ]׎ b^IG/(Ҙ;dI"y@v?KL}<zO\ONCQvu4q252 qt;˔ף38I7bvIwĹo]0!yzG,&AΊŬs0WBi#3@]aD^C) 3nX0tDÔzt=㽉́@8x~1zOۤ4Cz{Zl*pV>ŬfsDmQw™qqӋUOόg1 Ȩ7]Yt$T|8]?OpV\8撖YLxB Ld} L`ԴMf#\t[BtQ{]w~GfPX囗nQSF`n?!ؔc9AO-UP e"lWxk1lE=]%ty~Rp5 %c(L0=]JnKy {y?fc6!~޽ >W鷁l[LǽdҋoF*7p cgMG{wm=VmlbJ(Ӫ *K㒬X9T'\: `a"/ѭ~\ 9;>tdK5RA5ՃTh.,̳KP-?uNo 4 g>8Լs-lѩtJ9?6ܴ2PeQyiwƋ')į`SoqqU?`kqoB,\s#ܘ^,Π>u-_!}k,\IȝW?&PB~i6>|mc`d&l71zW cPm Z Y %ג7䐢IC 9y}fE>六; 1L'ߢ u{xӇ_72kB<GyW($5)uNL^%9ѝ LRssf㹖dzF_FI@fٍjQ7cG|3W3- X;H:ǩ~ q^TNu;H\KȞ'/XD<+.u7t͐[d3 $YɅfP79A;&$Sd-xnzkY^E8 s'b C2z8P ފbUv8g2՟D U]B G?;t}N /SXzKv^OݶǢNuIY F~M&EK"x8PaB]W dP/scC8+,dlY&6:تjadMp'5-7rfbW1*IN1BmCv?uٓxLu: 2+;Wz (Fe~)I1L$y8*xb+ ,;"#/MVz$wE+ڞxƱ﬿;Դ0x:4R.gӐ6(Ělg-xTArőrm<\GIp- GyBIlհQI!2g[8Bw94,;7E/qv{۝ʺf<:y 'Rv|:ec?opZt,M隍N5Zz?8r{ki#H,^ +/TB~ d`C`0 - $MǝV 0Ɋŀw_V͘Pm󧧿ݠNSϡ~B"=! (7Ըk.N.á%.8 |Ʈ>CZ\32%!iP:6`9 xSucR6NI8qS/mwT:t5%:KuhWLiJq}٣O>|?6 0טendstream endobj 18872 0 obj <>/P 1418 0 R/Type/Annot/A 18873 0 R/Subtype/Link/Rect[93.6004028 244.429001 184.404999 264.108002]/Border[0 0 0]/H/N>> endobj 18873 0 obj <> endobj 18874 0 obj <> endobj 18875 0 obj <> stream q /X1 Do Q q endstream endobj 18876 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18877 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18878 0 obj <> stream HWێ7}9 ysYlal3lK"R7Yq4U}X<,aUOon~;&ط߾}F.[a6hNsX5}#C#ن5ovݩ,YinUcnI6oZXDy|̬v70,g܇{ĞVr7;,ݼUVvf Oӌ{u~xy bMW]aڴĴ5-0R TU/W%e*l.eMJU^U^u^u^uMMmmm]]}}}>C>Cž%ط`_iV-mF-mٗ6@-mٗ6DKՖ6D+*B QJPmi҆(}ZE!`_V-m"T[ETՖ6D+*B PjKj҆(}ZEM!f_E!f_U/m"T[ET Ֆ6D+jB PjKj5҆(}ZMPmiCR&T[ET Ֆ6@-m"WՄjKj5Ҷk ҆}i҆}iCT;PmiCR!T[ETkՖ6@-m"W5jKj (B QJPmiCR!T[E!`_-m"W5jKۮjKj PjKj QTs` w`ny۶ 7.J<0g,_;e0w78ixdɞz8]q:^m¡1Hgc%|.d&Dk`І fvnS3D((%ϫ n4B\1t\o+dXop~u'>ݼVKK~/pQzJǬ k+f.Ϯw60k$+vKX./ hx1CSZqi*)'zO$O,i!¯6 \ -0*, B8*\ ^yG!dyYa bR ul_UI ϏK:D "b vЗmA(@<؟9`KKGqm9yyAqu>oh#o"_ DyaA<+yDɞ28Oʀ9ա+\_͉bNg:U Fݩ2^Czs^/ P/Ş-JٴM{6maгx%s!s!g iφ/ن <=lݸgL{6˥g=YMbhHߧLz5(WU Uݘ+ ȅKnΓf`1=Q탂K%aŴDKJ4>sD|ip(2W 7)-m,oVqX!T+e2Y`joTUc |Q/jQ@(wiF=;;"5#:=XfO[ _u#UٹpCI,NهBjeΎ=t^] Y: B1>e9<,1>ƹzq̣?n9W@ ¾ V)xo&3Ą@*nSȊ<r:~Y.b>voni=:ΟXPc:vMovyǾ$y,^OhQ/ܡ88(S`Q0lyCz8DhxÎ99iƸ(Vҩg)8OŽscEKaB/Ey}Q+[fm`rf~zz"RQߟ?cF;x>`A[CBizئwhTZa*9)??lX_AQ`vL^0$ی)1ݐ Io$9 ?zyduM]BD S9bϳ*U%֡(0.k5v4hY`p):O)@fGAaXg&exㅬ"R^媜KRHWO%L79~ہ ~j{6ޗ_޼woñkגf% Qvm24R|hU!EZ Cw;{FPO[EK]=&h>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18880 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18881 0 obj <> endobj 18882 0 obj <> endobj 18883 0 obj <> stream q /X1 Do Q q endstream endobj 18884 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18885 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18886 0 obj <> stream HWn7|(/lāvaG-i ͌v.R_oH70..Yl_݁o?iHedWfN14=46Xs~qX=ojv%ۭ_Pv߼7sQ37MY̋fsbSTb]ޮ[vvهo#WzN_25tFsŞw.?v͚Wꊀu pD[rb͉G ]J YJ XR֬C%Xv)k%,EWzEWzMוzMוzMוzC7zC7zKzKzKzGwzGwzOzOzO@@HH2+ЖغQDjK YCVĐU/1`-1d*"%,B}ZEĀEĐERԖUjCJ"R[b"WUDjK XDjK Y*Hm!P_V-uԖj%,"%Z}!V_b"R[b"WDjK Y*HmHm!P_V-1dj"%,"%,B}ZMĐERԖԖUj5CJ&R[b-1dK XDjK YCVĀEĐERkԖUj CJ!R[b"W5DjK XDjK Y*Hm!P_-1`-1d"%,B}ZC֍%R[bȪ՗Ԗj%Z}1F~.ys1 l~Hp;\dus9ߵ6S^i;/wvnwCڧLY{86u5\_ۛ7n:n;0-h\^Id{ZyXE"zl0ta8h~6\+pA 9J.P#:܌`a*v9=Aʊ$^Η,k5v,8hajO3Ն](T]SAɫȑJ0Ť6+`h-o!J+8sadCaeC{Fir1߫8k6g-*86sȠxP&V0ϧZOS&~@fMrd& >3$ ^X_FekT7#xF: ` +zt ) 4Nv9{ _!B4q0$B?,=%8cg!i8.nXk{;=Q/#A1{WZbv^෪40mZV䔏Ǐ׋âzL/ q0+]##fVFboID&-ӓG|s(%SjFG`vMS XfX꫟7TuXƜU`~ªߘj]TGscE_4̘.XFĊeL,YV,lI](;]wTeRJ(ޟ{8=rYk>g g5x?s?aR}XV?x?s?q^rȉk>g O5xzsYkK9k>cZYk>c=A2}-p. vjD"% 7䦏=~S95V6{q]834Qۊz΢ldI,xN%"@jsZQ1~ Vh14D.Wk( XAw5EJ-2i:cД C(aTLKd?Df-C%2ϙFzUBG=ٓunR Q>&|9{ ,];57|N0$SeN=@Կ\%yT⺹?Yendstream endobj 18887 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18888 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18889 0 obj <> stream q /X1 Do Q q endstream endobj 18890 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18891 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18892 0 obj <> stream HWmSH_1 oa^T!)r!_UT a _=l*@ZOgo%{͛wG4\z*ì#g`EEE=G=>Ҭ$DcDűX@q,b8(B8PHP->R"Tc"TcETX@#*B8(B8PHP->R"Tc"TcETX@#*B86I4Z =P-T*fc"TcET X@#jB8(B8PHP->R&Tc"TcET X@#jB8(B8PHP->R&TcűX@q,b8(B8PHP->R!Tc"TcETkX@#B8(B8PHP->R!Tc"TcETkX@#B86I,Z =P-T*f0'(94lt2T, 8I`#@ fYO8\8 e oTJ4?77ƬJ0*g𢅱&f6],㬸ftCfM/-5ECkMXژA*jW?S\KX"&{51{&cR.Yq _/~.K͆v=g]zɺdO!J4>AiEsl/~j 2S2hiG`[vzVMVp\檲_LsE (vTk@!X>:SUnyt6踫ML#y?Hf5>&MR+/lx$"w|vw9/L`ɺ<~{2ɬOxNO**l/ dAO]}W;BxyzMڭ[Fmz6";9W;Ng'Pp}w9U.9{ ]k@\tIm,_>̧_ar솕W9d c p< So]=fY/&g>tr7gF{ `wm48mLmwɡ,BjbJXKԿ_ϻBj۹QxLgZMcv`ULeLMix'*b5A\a 9ǤJu| aL XC zBk@0jm,KfG9] Ǣb{M\{3ÙIHN#omNK[͵6xyO,|3G;80yo7T0H1ć/ s^,szM0!J(E]qMz8-hO*q_N_z7e(%Qr|z%` endstream endobj 18893 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18894 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18895 0 obj <> endobj 18896 0 obj <> endobj 18897 0 obj <> endobj 18898 0 obj <> endobj 18899 0 obj <> endobj 18900 0 obj <> endobj 18901 0 obj <> stream q /X1 Do Q q endstream endobj 18902 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18903 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18904 0 obj <> stream HWmo_4o n9 l D9(W݇$yhA:()$`[At,%aJ{Zg7½po{+[ w½ppppppppppp_p_crX=< cĒ9F,cZ1bcEk h-< cEk h-Lj܋Zyh-Lj܋Z 5,Z 5#p/Zk@k9,h-Lj%s̳@k9F,cĒ9Y#p/ZkAk9F,^ւr̳@k9F,^ւrXhgrXh{Z Z1{Z Z1bcrX=< cĒ9F,cZ1bcEkh-< cEkh-Lj܋:Zyh-Lj܋:Z u,Z u#p/Z@k9ZKgrX=Lj%QQN߃E R+iPt",*MXE-*58y/w! /?]\<sͤҖPr^ꥊ|t~m[ltr,oU=Q/T< LdQrnV#Sh; [UR!qoyG%<?UZ-պ5ZTzjROvI]K&> yIelO{dq-7ZW7WeKz1mXMuZ!hޞ0_Whj1^7+Zmzdh>_ɇp7%'Oj6zQtJnTgZe4}'?:G\t!ѫ1M3V=3 nPx/g%7mvfa O^Fyޥw路cN_9e]o§pV7ppu(ʍ:(q] /j~^3ƴʗ?^ '~T;rGj7K^m{uruvZRnېcB~l+:pݬ6FʫO'%C-CӶOf2 wK;,__\;E"6}ZG6rW56 nA=>(}AAhL..q?Φ@5㏢#wʇ_DۻuE1l1$}u|~Ü*_o7v]LOb2dLu]o/Afuև|7?b Gj_Y=2ʩo*i:ϴu=qX` -r@ h%B+ZJV*R heB+ZʁV.r hBZ2۬*v^heR`bpMxM/f:IU7|_ty,YUn_tbGhd+zR͗QU SI?Ubufr9ڋS~.fM %-7fܿ0Wa=՛G4*\֯™*JrpuN7ݯn :t,vMGc[n'\_Fb9 M[5u\KSJ8pվN',8횲CZ9,9e= E:7~ӸPgl{w!B3WTn>j9m]vx򖛻/jԏVg=h5ZTG2F?+ӭJ=#ÈUr@ -JV"hB+ZʀV&2 hB+Z*V! Up-K-Kjq̳4BK-- 2B-{r1b-{r1b-{r1b-{r1b-{r1b-{r1b-{r1b-]. Q+тc⌏@)Bj\ "1PM1M|EZ3Z%7{Q x3jyF-=ϨX{Kxo<` g,Z%{QKxZ{Q x3jyF-[=ϨX{ Kxo<` -g,Z%{Q m=Ϩ%YĪc~YeY3ZVec!{mY~ҖSb nG[{`66IͲ6LWh8_y|-4۵[o^%Np:V-[֞y@GWy[ ?{iTo\n\1?L[L4VtPyV_endstream endobj 18905 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18906 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18907 0 obj <> endobj 18908 0 obj <> stream q /X1 Do Q q endstream endobj 18909 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18910 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18911 0 obj <> stream HWk_q ɰ>j#&5jEa U⮘PP\F{HQZ3AĒsCr{e۩gϮ|/^~צP_U;ZN'VUobuUU}omյJutUwE]*ۨ'U8W68?47hsov>.l^?xT6gyrm3`Uieѳ_QNMK6\i(ןOZpIЍsFE6CT$SHN8&v1bq,,+,ice{+[ w½p{'{ }'}'}'} ܧ} ܧ}g}g}g}}}}܋PZm# Z1bI ,ZK{h-Lj܋ZZ  ,Z #p/ZkAk9X#p/ZkAk9F,^ւr,@k9F,^ւrXh6r#tϱ{KX`rXh{ZZ˱{ZZ1bcZ1bcEkh- cEkh-Lj܋:Zm#Z1bI ,ZK{h-Lj܋zZ  ,Z #p/ZAk9X#p/ZAk9F,^փr,@k9F,^փrXh6J@k9F,cZ1bI#p0Ҵq~ CZ^hyVDh@+Z)JV2Lh@+Z9ʅV UkXjqXRc4-# 2B-+,  kSȽe =LjD-=.֔%@9F,%roA9v,@9F,1wȽ;@Kށs%r@9F w h;{шD=hZ"c4|-{r1+ȽRcĒZh{{D==hZ"c4 -{r1-{r1-{r1ھ-{r1ھ-{r1ژ-{r1ژK-Kjq@K>/tQ^_WE]QFQ1TTIr\VRW}7WgN8Yն<|tc׀i6gf}w?,fSn%j?.mr<1ڪ46:ڠu]}xozjU՟u{Y/'j1k‘l1_̿'O Q8Ʋ_y&ڍC{Sjlr[+Oq ;]\$OWņ~=߻ˏL3sjGy`8O3X nu^|Oh|mEx}hH<&ɳx%ڏ-f /STË[ǧ0̟Nu1W:!-UOSqMXiq+$O{xX W_OMN:ǦB/S',=ɪa:ZAݱjn鴿{_p2;\p>|i!wF<~xÂiUlBw5ʧgM}ܨ6ݺ1MP g*?'go%PuVgUy,yT]Z8Zw]֧'nͥ[}j(BcRxz&'0:뭴ww,3 Yox^\V.^umz洁ˇ9mG.#VXB-/ cĒZa( ?l/_fE]*(\Yic–?~C}wBK{Zت܆%}l&UˎNC uW~:3DG?yı%M}.r{h0T?9|6nV _iN_ד@;}v'`{S/. /~ŝXg?\_d36Yى1R sg]hϚNLJ=3Z5q@_Hّ?cEmZuJ^@j{(Όg޼y`ҋ [cX&Ȝ X УFbb,]6R jnIWX4c a] _xƂy`&f8A&B‡8@YFGX-pJ Fn@\xܥ~N]@cϕ$]k9ӥƮ"P+ v M~SeǃRHS\Ínڞ\]\t?r4:Ҙ8ekRR0Hr󬨿<*zTXE`(Gy~ Sҷ4.CBTM1*[]({0:"Vuh@ w6[} S?'8oOOWk-4(?^V?zIF.|~ܰmzVv-8~>hEO]W JEj{i8Nzr#!nRB⟮i!I8?rk:de5'CXtZD{0IIQ%MxRvҎ{a?=0cMۉ78dK@sc}Re}w{^: R8q,"?Wu}i>1r.L$Fր/ oܙܹPTuOFX4ꨏ[l(be H~ɾ0e/} C}Q9m3wC>pibp MOAR |Okw a{[t_c/endstream endobj 18912 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18913 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18914 0 obj <> stream q /X1 Do Q q endstream endobj 18915 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18916 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18917 0 obj <> stream HWko:_ (Kh^vۦHH@ؽ_CE.T p8~Nӏ.HH~GE@3AAH@2{!y(YFjϋu]mt]edN2Xzg3tF8d$0&CEfοY*rrtd󀊣7cS7d_dy>}"l^:FSa $ Zcgɿx !}kHKx0 <7^O kKI\Lbahm3(7m.ʲDP6wJ] P a aaaaa/a/a/a/a/>rGa#c}1>v+r+r'a RDm1D͠\ PjmAmAm6B;ejmA!2D PjmA!2D͠jZ(D͠jZfP{G QmZfP{G Qm3(Zֶm<ֶ޶ Qm3(m3(mZfP{GQm3(Zֶ Qm3(ZֶQ-GTkֶQ-GTk a猪#mBTk a猪#mwTڶ'6r6@!m岷m岷mBTk aV mwT+6@!mwT+6B;jm6B;jmA! D PjmA! D͠jZ۶$ZfP.{(D͠\͠\I$ !fl'͊@CD$3MNhK=:{ .BIh 'PdyVeZS ahqn] Cun__Vղtq9ֺvT8}솝=gP1iME-]Yǻ(ϊҼq<͘Ҧ¿x8p}Ihm@R,C3D*@GfL(/ueMIk,m_ Ȇo.J}R'Ύ 3׋t,%f$2MbLҰu㳨+#5uot0n|HHVEmW>H;g b|/Y0s5obbgժȃI 3e0-",_EU?o$m %7]RHE3lK)%.e.._:oZ |ptFR@/t78N@b*gK6r}&lpa4 o',"vH8B%ʸ[( 5&'W]YNdLQq lD hX+rc=\`4&-˱h bCЀ5Kpi) I1_2O&xƱͳJ:(8;w7(n&_?\\Ut Aes *_n^clWUo:x_naϻ&ʇȡF4ͩkɆ`on~0NtjA^6ef:m-GROϗ.NH`rs`Ot-R>]:p}zȿ/M1? atFKz)@Or#ҺTӪ j?:@E T.^E\Ld n^Šs˟yl|oKzU>3pհg5iFo]V/Jy)zwzJB~*RZ1`?݈\عVFpR4[ɯM4U9O /ZLJf ( N9 _͉BG/I((# 뫢(.#jM+ Ӻ~>,eybg3["J)Ǒ.EzD\4"#h,G ,'4ўcPn,m7;:2I`4a c&qRb-&tVp[5E(TFFE5+R~8HZE"{/SѴVUپV˴einW7WIc YNUQAsUpRm+m,trpbpIs!hrن4ޖUQ-#,Us2}}yN;]6qx 4mhs@zgN-S sI ncFJh}Ý5bRpJ7Tp-,]%#[efՁf]v"W/He(j>Ԛ& ),'|3K'뀈xlvzlՉd] [6b]{x3@֙iok@1R0l3y) pt"JaJuR:bؕ5}Qa\HܻQsA2 W4[B2=,6']w" cmZiQ Fw͠~[jm MHQ$06,!(BɵM=)39:Y̬zsNKo6j)$C׷%~KƱV2"W?b)z$*VksK, 0Aϡlwbv>//!eڳF _)6/?Q`}2b* ٵA MPmF%*H#d}=0;L[-=2{n}wn7?c|{nx7Ld#gK,0>}>Wcd `^3EWxtn$m墻|2xP*'iB8a\ dQsB׼ȍJ " IѾ^K O({7%yά.,M o֛\ט pN7g&?Hģ۔EeK:CRpR)GbBsIlawtJ]We|{F}ꫜ MrCC($o:;ISN, (*44pZ` R66llZEsǯd1Gn1t/E F ti2!#{9ǐOZ=Mɇ }E8qLDPJ5 XXVa*9CQY<͞Hʆ 40ce5Ň"ʋlEᮈ Drؗƻ"% nl?gBWSOΝAc|>[7wp\vY&XLКxvݞք˧q(cnȭ_f$X}i1_0)KS]~ȫ]## 2C~nI3mp_1рR>3T&%$ݠ+# s3ȏCw/5Ӗ;ݢ_r0n|R'.Bbo=}*>iVPsC 텽S8&*&|"Ix$]KC|z=?) : $y[R:9WIĒY Oy^b L#ly~z?&SBGpiشK! θ0=3sg1Q兯U%{G(P'غNBcٶXj^k뾹zT5xcӟ7ک$Y|P<,B2Lv4Q's4'q.ވ9\ 8 0_endstream endobj 18918 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18919 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18920 0 obj <> stream q /X3 Do Q q endstream endobj 18921 0 obj <>/Font<>/XObject<>/ProcSet[/PDF/Text/ImageB]/ExtGState<>>> endobj 18922 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X2 Do Q endstream endobj 18923 0 obj <> stream HWr8+,x g8n=Ju:]SDPGv|{ARĞ,D p>pęlD)oj\ɲZyQʉX7g{1[ M[']:Ç:VU7hÇD5Yڟh{Кl>TA[8ËNţH_&3S  ͷQBAo1kB"S`?L$qu>C^2rr_)/ qeri} \DCa4or])r<P;7a*JF&! @O&bbx;sTJ6jH"e]N >e*R3H&أ<"x1Œy d_cZ55- ,)%YGU$6|;s''wX,<& If @{(we=FghFcn5X "%t`L٠ ;J>ٺN(Km-@>2z"ČYkM,STw)3DzIlg&>rqVF OH As ^SD.zղ\Ӳu*۪ m*Ao`MkWwgPyKvՔRKA@iB,WbF9%N81F&~p;ٯO6ː׉( ĚbvN'BNEcJ (aTMCEEKx6UoT;^ ^}1^w+<4Vlo ]L1#oVb - \>77qm[6]_˹,9[ʙ%7`q)ZiYH(2I8:y&ISyZ-KMIN _Z4sjKsC%Tw/xf0O\w!'Ky*/L%J~@Y\9mJyܪ VpfFk_:rV3_ $QTj:2:H3M^p`:?M%d1^Sj4PQ#C~T09t4(j@s2jGMs2kDouFeq2R짢Ki4˚C]T8+9XIS8%>r+[Tk6'XؘU8/hCIGZm 8jם Z8Za. 5K4'ϟAea-yٞ|n;&똦Ձ758ĝHl3D=ZҤIk#FfR&AY,` ws(q{Yh;;hm00Чŏڭ]$8P"B!yCk2nWؤz,)M4䚩0GA7xp!,Xa!UCP?TR\bbI:w+X"$fkbjsud]Hrւޣ_$I|͇1_6؝ȹxL5.']0G-Gh9-qW{y掫S{:Yn@aݟ4#9|cn,OM]4|OT k~SvD{U1,R_UŇS7W`B [h5+g08=HSچ+t؆ 6Wy_H5@ETbÏP,!QD w$Յg͎4g d ~%&o*O&fvԜGysbԄR2PCM1\ɺGlY"b:%_ďwl]R6b΅#T_/8FڏYtvz#a{ ӺZ 0&UE=W^~ms~cC?s7 HFpS|Sk2(f)x$eDٸ\t7uў: H -Weiǎ/f5v*BKjLͿw'Uݑ"nE~?3< HO%PpI&uK>PZvΛgV rќS\W6*,_>I#>bÝ3q0NqLῼN㊊`ɎHϤ>m}?py=/p> u] 32}];इw_l݉Oju졿]|R*1zd~jhM%f̥Ռm˕A"t׋+n\ݹ"S$ؔb"v#6*Ʊh{9' س%2bS p@ a1 6}IqdPFPj8l!ᢝҚ-g{_f2 J7O"d10RŰ% 'n3SqBˉ.eʂ-S$2)+[+3Q#maf#Se U}+)`*g8孫H,Yvf ڙtLI2(Y[q\j^h?A^=S1weK,kLK5Ȗ;,\4S u)5FwCRW(_a"עY2%֕wlwIQ5|4)BPQb{` fXgaD3L=W,L7:˯0f%0rw'6 f-1;4~¹<!\2y\`onFX@ʂXW)J5¨rMPq) ދiexᯔ6E TJtÅƆ5B"Lf;/  ޳Tn `YtP^66L[9Gۄ7(%EqLxn'-*&R̫)D wWNbK(S48TxI&-eYd2]̶ /2"Ɛ-O;:- vI9Kk5ZM0mge lrLV5U/U-K)}'1yYˉWuaA/ 7I:%r{NIH,|lQ.Pa@̦:9v9FB/3OPD G!2n9OA&LaN*oj԰+IQ'>oFII u%%5qi03旐fVFV.gAH&}KD>!\m -ښ( ]qiqaq*I. TA| V:Z OɅQO1)?"'Xi/eRST vŹ wk[ o(Pݺ-ob({9/v0 ĮItYsp)Ї?jSNX eWH ^Tx{4l\*9xpŴ> wS;yj.M#Z&tYY0[p,]ߘDr G5\}^)b;%funpo,Yic#y1<2Z': BAzCy=lLY]q^J>!ǂ'pk:ƣF,h…OF sAǫuY̺endstream endobj 18924 0 obj [/Separation/All/DeviceGray 18943 0 R] endobj 18925 0 obj <> endobj 18926 0 obj <> endobj 18927 0 obj <> endobj 18928 0 obj <> endobj 18929 0 obj <> endobj 18930 0 obj <> stream JFIF AdobedC     $''''$25552;;;;;;;;;;  "  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?>zY[]O>zY]]K|"|"|"eowE7eowE?eowE7eowE?ewwE7eowE?ewwE/ߺoߺ_uO+)ϞVR=?,ȧ=?,ȥ>zY[]K|"eowE/_啿uO+~)ϞVR=?,Ȧ=?,ȥ>zY[]O>zY]]M>zY[]K|"eowE/ߺߺoߺ_啿uO+)ϞVSϞVR=?,Ȧ=?,ȥ>zY[]K|"eowE/ߺ_u啿u啿uO+~)O+~+%-lKb[ؖĶ%-lKb[ؖĶ%-lKb[ؖĶ%-lKb[ؖĶ%-lKb[ؖĶ%-lKb[ؖĶ%-Ķ%-lKb[ؖĶ%-lKb[ؗĶ%-lKb[ؖĶ%-lKb[ؖĶ%-lKb[ؖĶ%-lKb[ؖĶ-o׿/س [lYKnu,%7:V{+r? νş^ܿb/س nu,%7:V{+r? νş^ܿb_sn_gA/׿/س [lYO7:V{+r? λş]ܿbo׿/س [lYKnu,%7:Vνşsn_gA/׿/س nu,%7:V{+r? ^ܿb_sn_gA?[lYKnu,&{+r? νş^ܿb_sn_gA/׿/س [lYO7:Vνş^ܿb׿/س nu,%7:Vνşsn_gA/׿/س [lYKnu,/endstream endobj 18931 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18932 0 obj <> stream JFIF}AdobedC     $''''$25552;;;;;;;;;; }"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?4I$$I$I'$$'K(O O $xO <$Q)BP% (J(M BPBxJОД'M BxM BP(JД$$(JT$$I$I:P$'<% pԡ(J(I$Д'4% BP(J钄(I$JJ$4$2I'I:P'O ӄ<'$(N'<% BPJ$I$t(O O <&D>R-KjhO BPД% BI(O BhJJ$% (J(J O P'J'<% $:Pt'(N''ڞR$О(JM mO BhJhM (JОR"1 4'fI$%:pP p'NthO BPt% (N8 (O G "(J4JPJКД% BP% (O BP% BhJ(Jbdt8NptBxJP$'МԃS$[St 4 F(J0 О#T$4&(KjP% BP% (J(J(YE$$$xN (NtBI<$<% <% BP%:q I$ʘʐ)▚%-KÏuBe#DDcMCDyOG>Q=Jѥ1cޤΥY`VYmv cD% BhJ(I$2I$L$'O 8N8 A:xI<% ҄'<''($O~R&6T\>"ޢroO c1r~IRp(Ԫ~oڍ£Pƕ<iـ&`ǨMܷp~ut`i?#3[6SSj3~jVy6Q?}tܡfߨ_\V[D?ӶܽhM ~UC+SCIu=s5[W}j@;p0Bk欥 BI$(JM BPJBxJ<'RR'I:I'9)o`(4Ls*)}بS1/sQ}_rC')FO"wTV3}eZ3Zl?f}So;(YPߨ[h\?mM#3]}jqY}awҷ\k*?_V&,hO;?FAgRRzu6uGp?V*zP1f~Ck\_6/|>袎iYܗ3^S`3 Mc_swT;z^7]T΃Y;:fO?:٧XFk{5qkv)̸rg]Od)F4R>E<~Dj~!(4iJBP&-iks\ $}xK곬vl4py+nյ$% (J(JBP% BI4' 'II %]>? }'mVcK[*xfjjyGg |ksFT~?C`f}DMlfμfZa۩]vz*sa'R6qV+;yqm`+ ]X7zV7Ysjϫ_WX}7N(VFEs~XGVFh lv~E#e|\4$)ǸOHT*Q~!8}Fk'1 | |$%>I%D~Tq))'iJ?*h)$BhH8nA w裢*h }.<TSӧ^I(L% BI&$JE4 $:tIFm`E9v:^ajg|f,6Bj`s?(]'F8F6u]25]~$H) ' <'?pdiuJ5$RNS!0#(NJ8xH >E9#Q|F ~I̦>IFxSv`Gq#Z0% BIBd%2hN<'<)pMd+y cFz'Atl`l?R `' @)  Ӏ):@)Gd8SƟ 5Ra8)Fx$OE-O F0j>%4h?~Iwѧ`3lf$o~)0T RH Nx;O FԀH|H)1)3([>mH)Ȥy?Nɀ"r94؞5>I_OJGHptGO?\F Zi$IN$IdBhJ'JZOR5cG[MaL) R @)0OIGd;J?)F#SeOxyx|ħHI>ߘR wCwN$ڟ{!3A>ǎjL]uuC֟ tNVG75=X~0; >_rWa3q>h?POL:Z4&cs#jNkƧm"42\ j{&|YwJʭ{{+پK&XnU }M!;lXg??rA,:cRm+ ]PZBQܗ8l'.F!Ax<4iJ?*K%a tnmdI$I$$S<'NRI,@^nKa3XLJ R @)S @xwSmo<4\xc?ܦ)hSxy8u:˙Elpn>'s>VÏ֝ vGļh?Unm<.Y"DxVOV?XVǷ"+Yh9CZOJ]En= ;ԺO76Do$ޏ[v64XN_[]f4ٻW?ƿ\ - 5{}[_MW~7Z> ﮟ\>߬y?5c5c[KgW<[]T>? A߭]W7{r u>Qw?H.]MO.|ly!O>+~VkdA>t˾u2c[1dctS1#ͭ*~dygES~?Ϩ[zeD- ]=WWUwd5{K'@+o1.Ϡq\;O55w$4:dĝw Wܯ*5c]v_^@Ws^ljX7?D~kcO_ޚ??#y\"7DI$I$$K%1M tN*IzwOŤYEM#1%s}c룺_PF] 0 ѫ<\`'X|Va؞՚f|kG7\+.Sn?utU{' ߏeٹqk'û?73#\֬yN~R%Ov1?z_v K {KL;J/] ۺuepc}bٔXsuN-c~ UgZDRyOGÛ_u!gtv[U"m:X78׀K\ 9.\f<\+v=mWɡG-Od~sv; ,z^V3: 8bKijyKg5WQG5W7 X̊뽭:񧄪Y_U~fdۙNĸHK'oKA5er/p[dRjc74OeLZZhsf8{ppkk`E֍)8rӢ_ ūK~N[DO-!7 T'N@)~oW_.?~U:'_WF M|)3qiŶY:8h'y79?Zi65} <pq1w ͺ/ҷ?I$I$I$$1 8 $$:j\^GODH :݇'e}|ϩW%.-y4f}UD.?Wucc=u.p-=8X'ٌm^Å0˙7I^NOө+gī5V/ 9k4u` amG,?z\:3t{6<8{GU jXeۓ{6}̙{OR5?U4 _YPc .7txi:On-ض7ո t-sEG׏[[U^"KKD};_Y͌QٯH~ ~ad9E,~`?@4<v׌nҺA/í. xZkg-]YL y;{Yܘ$56ˣ};~j$I$I$I$L$t%G_ìo~ `熂l: |I)S>[sxkFRs'#HqDl]8ؔcE5ciBnM_X#{*G=y0}K5.Teegմ>5cy+s5G]C9?"gǙ܁MYY Ǩ:;XْIoޯs1)p,a-{4iJҰz>0:uB+O.qJ? J?QMm~G/-X8@} T?C?#Y3m X_Rժrݠt4Ai+~nԬ:]n :M&IMg4#=sMm=xit\P?U{8nvNehwN ѳ: +KcuQg׷ՏGh_<vʣbכd1ר`:sL%y1[,YyԺ1r9kr@Ao!|_?{&~=>0c=԰dIl:wOdšG0QYSh?dגy WwH#Jy׫mh*]WtεQc! w!x?wU^KĸoǸxC/ _EvcFC5l"A] 4>k ~+?Kʺ7T~U$I$$I$I$H)&q䴾W\`Wpgs]^ qS8Υ>ܮџR+\֏g.\ha-.ts]<}GN@m3$5{I3ǀ O0y{jUn֬`>Mq`:PK\Q[bxt[o8<\~IT >R~u {`+d>]f[| t UNѺ_YeuuLqIua{v@?AT/F.ߖ¹/:?I阯cYvAՂ kXtԞ)W[{?mh.ye\5/5UT5\UxU3!R-"|﬏_eb*6K@K^`?@'K}>cXS?s3n?CX|] eUsEPA^KzGV1ڴS~YF,Qw")`_-=\};^c=Vt5V;/e3)9f=yuhV?YS#5ٸZ }bx{GX?_V]4Q2ikwX.#sil1+쎡qUr5|UsV WOξxs70u ǩvr|\y%.Um`%9$1B>x&纷ZW9 fRl i1{/)+zet&˅3fcwj0:M21+6oB3>4eܵεDZ,uxƊ 9^SOMVOE.ZtG|ħ=ϔb}Q_Y:-2:i-sO\U՚3Yƺzoѡeza|gI+lrǹl[N?WwP?Ј1tn??OuZRp)-dy1EMG>_^S}6s? ^Mo1 c]eOԌon>K>ִI?]/SL iЃ.>UR_kH/%ŭ3pz~lY_L}»cuvٽ'Vؚ?Kư?Y+:g-$I$I$ed'H)|WqNKcZ.аzצ3hm39\\#tѱ݋{͇psZxx+L)9UcCcKÚ䲛+|ϣ[8I-6A>u4UX 쩡OhVзBx-)I2'Bȧ꧎GO'/KiK$J|ģ&$2b5\V+Wt3͟歄I$LI$K12I$pLB^W00˜S aL)Q˜S @vS @wSRDx)LGHv)|Ӂ'h> Ro!R)/KӤ/NRJI2tß?dI$LdW!4T:$}VI$dI2I$)N'Ts нFlƆV5RL)0E0˜R CRRcSQJ>㏁K2@p\I$E$H$E$I$I2G#4HTG޼wJY[I$I$dI$4I$N6*kui'$Je ˜R amS)0Rǎc|)r~)ǏN;}r^II(I:dI$JNI$dI$ןKcboԴ4Kw lSv=udO-+mhsL!:II$,LS'O $J4Y~̰$5Jmm2{OQZ!L)0›Tڈ0 SoR cHqdAʐ)?zx?qGO>iztI:I$I$dNI$LP50?'6`݋5R{!gt*Gm .jɿW:wQv+;%߻״=95 I$$I,R BJfײ݊쾦GMё?F u"SjTS cTF aH)Lq*cH)> cTȧ|4㷞GTK|:I$$I$'I2tL$I$P{[Kpk[$ ˾rh}_~X oiݕ|WSU7 +cY@{*`K!rv8QW0:u'yDzƇCAԒI2P:dq $8 8NX@Ўk]v-.̵0A]wK[WV?lJ?&cu}\ge! ߭W&}s C_ձzȢV¯!X;">}Y TX?1kԩR[GOx}Vң?ܤ>VNrS)U#SG!3N|)Oq(rJAGTcTN5?ܥ>>D3ן0?ʔi?G_T$(xO>k׿(r_nG/<ޥy?E/?-)K}O)M??);-*M h:A78Sο,&`6gL7goM?ԿooMOԿM#2~I79_RQտM1SMG祝864h}LͿM7:?Scc&&/-Ϳ}NOl%ggE/u>ܛ??*'k}P_i?CNAn}W?vmX㥞?o%67xuyYs5qwX?e-.=ĭ^Z X$`u 0S] V2ŕw)$$dY4%(IH'NCk⪻Qr/H>d}?qKERgAH>{)~Ʒ#~5RoF/ضoRoF?[7)~Ż#b]_.J/ؗoKҷORwV)~ÿ+aWo~¿+?M ?+ҳ`%/7g/7gҳK[`]qK~7Lϸ>G#Koq=fǴzsz7>0oǃ ӷ~流_zȟ]O?ޗvD~C?dHx?C2O7Ǐxm7?hgӟFA3H^h17?-= ?r]uݕ1I>!rW:ʠek:'I.Ȭ[QȩI$IgBhL<% IRN 'Ntt'I:I'I:II$I' yyGOؐ& $}!\ #a["Y'=?T~O,?I`-`{A݈>*I$IgLBtt' tӧI:t'I$NtNI:I'I(I:A(I:PHp~ƱG BS@~I) L>ȟ@HiL4h;'L~ĥ<L?hx$x$^$I$rYcUΛݔEKiO ,_4CStܟe5]j$wJPI% "':p:t$'Nt:I҄$:I'I$PIrN~Jm@9r| 'P>yH RS@2.DґN>:q#4"SSħ$ #KX?ʑ%2I%b~KTa[  ;czU\zVO1?Nk&N$Jrb8N:p NtNt:IӤt<'I$% ҄I8'~(~bvLמ_S7N{H#?"G~D9~0\CIt!'rO)G@M(II%I:tt$'Nt 'I:t'JI<$$$zP~D|O?ڐjQ.ďO$4p?OO?\->dG`ϼe7-qHY!9O??<?yNgF>@ƭSy>aD?P>IwI7dI$N;2iu/1:V&$9 I&I$Y2b8NItI8NtI:tt'BtI:Po];JD{К;#]0I/ݒ$I$dLRI:tt:t$:IӤ:t:tI(N'JR?R"4#$t?Z#oN͇s܆Ro[hILd~H.><k~XI4(vԇ %r[?F|OI@$yzD}1@ ۮq3N؟O443q>-ӿLgG`$'P>&#(UՍ'n?8?!Lw?H&~h>'$7_.rd$RKdI$$I$,ɓI:t:tI8N$ӄ' IӧNt@'!~䎇?S;I# [x "?SΏwJ$ߏ[#{)F< GL81ir@{Hּ-NT0#d~\*FbG MH~<[e(?s.vd&䤛rr$I2I$dI$jdNtNN$Ӥ8N'N$N:p:x F?ǜ'-{Ā>z?s!NG*au4m"]{FۢMg)0A ?'w$?!$on-ծ&>G_{IQF{)G%;o6|OIe0?1R?n#]I2II$$$YI:tt'Nt8NttN:tӄӧ:C>I;?|Nt_rZ?rN?F6q}`IL7Ó>-y3j:&?M;Q:-=>2×ÿMw-.a~`tIG)<Ȣ?$81ǵ/*)~.Ɋ]I/L2I$$$endstream endobj 18933 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18934 0 obj <> endobj 18935 0 obj <> stream Hbd`ab`ddTttv H)K-LNuKI+NMuIL)!C o}aO 10128_PYQ`hia"A!4KǔTbϼĒ=ǜ i AũEe@Q2JSRs|2K* RurR2&gd&e'02203221l*g<]&5ߕ~հU4wl߁= άߩ8~Mݘ{@>Bx endstream endobj 18936 0 obj <> endobj 18937 0 obj <> endobj 18938 0 obj <> stream H> endobj 18940 0 obj <> stream HlU PWfgǔCVT DŠ0( <ʬ""bcQ$jtku{AKsTӥy^h'sMb[؇z;x 3s^n^yxgy~cܧW]nNN~@{DaU?@!Wl*DPB7ǚF8&L[85Y??)N'iK)LgqEU+-k.n gMZZʿ%o/jkLcb,cwRCL|\<#ϣ&3sM|S|Gv}pWD!]^LߌAB3pN+~}8hg^$xu%D.Y]sGD%pI %r`` 3&SwdyEF͝fǂ(~> !g_ nxYrPmoº^+BT"}R(!'!u8{ 6<`"[0=F(HIrw".ْƷo׿|l+Sg{ ܲig;|x̵FjTȗ+ȜN]^+n} .]$"j$V,BVD YkfӆD,7bp0Hx洞SeBxzFt&s7@]?N+ZId'}G =XSŕ-)*zbu/H@xTS[a? κ='H4b\ї]-*!>f3z% E$ +VVV*zWOqy/SJŗF՝Q$'J|ܬMP^*x0 VmvU%b$Y@D"yP,c9.FOLLOlpj@ĵq0bspl f]-z- ~%s04QsHP${ p&p_K7;d?.$\zu·󐈞̝_kS&e\  n,]1˨"&'mq8p\<8,=LzwOTި޽,K 4d W0o{fkonb+޷p^/4{$4kze=jERwM<2 W( tc0:r| ?h#f<n5ܚۨ 4 44;. ! s#IߕXIsv 9Bzs0Y)$`|1I)D$PYmS2u*0BqgRXH'C&/8ŏa!׏C&ȾhUj_%CR(-[$69|¨œS6l< N9 asCswn2=Sz-E@e3 );ďPiaGZ>j'woڸ|ˮ\re2#fn"p]WV:W|T^~TmM0tV3hUUف7:{@DJBQV'JMqLJGDfG H/% 0(̨Kg;rfyyrդ7xpnߘ/Zb% ":W$@p3 !,)r&,A?yy7EE7Q^kCMk'wt7*p't6>H|)kD孔'zD!3kIhp@"6ʌ䍺f:/nYyq4`sNU=d*TkAF38SP׊@S;OF$֬ERbu=$o@v$[>l#Gܝ,ח*o{/H 5nR^ p/jZ*t}TlvG۰LzꔩnEl$O֡w^P.K.@aYT:@C\ @9l1ƪV .K0EgSGik k k_G^Rַ;ʴu'"k-׈pҤ0jggS$34r^r #.|w_߼{$qt]nC.{U;>c3Rr`ߤv>vŽdU e9Y>fj1xq`bԘYϬцdp1_n@MKN_*,tLJD`8#,z1I{uWR`UTs՝T[:iZ"h3R bt!E0`@0ݳF<)2(Ll#jB'o ܕ9F\gۘ jIT,U8hp,oOj_tFppR,Qb_mN Fx0|3=$ٳCA\^)!C{ x-JBЛ^zO~.>wuShFJXpW`[0cju!罆JtF7Fq=t=9SşNѺ,bU=i9`:Le0'pP1r) yQ!ç> endobj 18942 0 obj <> stream HW}lS?}99cc y$N bY 1_ IH1aP,ĉC$2JZ `  PDW,$hYVk5VNlcj eDP;z{93H~nQ6zJW(&*x+-%j\?10 8 CMm_mb '0Phr@s+  li@ qq읨/toL9 #nnoѷpJvEB-ԝbu8y*,McGm* 5lgT%i`ʫo9kn;k;ʝ|yۉ쬂 }ކҸ 0i UsK ?4j`;(* hJߒ*iP9w97ꧺ4Eű=ZDoByy䮴s=z%[`v%Pۙ8"^](LZvhykb!9 \.+ᶫ8dI"' lX#{՜TnWu#w=}H}&҉1}ȅ.{?ŔAk{8U V^RmA8Jn`NyǮ`7$U<&!T0ʾ2J璢42Ydf!ť璒,K&gHCJjQai 9%mWr֞j:iV{J>5'H\W_F6TTl0ǿ+/ J+kw:Z|9ceB(eJ%$=Z׃^M9w苷n9 yttIOz-Ds~_jXLV}:úcU_++AgU<Ұ{da6dğ!4Ȇ.v xYb&FzZ+ڳ>CS#P|%|ϐ!6tBm姓-ooU ӟ*3537\񢖷m[]A䇝/Y(3XXPiYueHe5jP(>zP_fҾ5lF' ƺ&hD5( Jϥ36K~;X̜O\-Mb5 \<gv14j:]רt!D19ի{c+X)L˕EΒ<${jFe2D %o]،5Lxk,LT8m$c0K&)B_4եHtFxc`3RD;A#j7Gf~4\%r",*3] 2VɓN?/h,mߑ%sHySu<_]uh貺c˵g}bD1JQ <*KhD3SI`rAVd26c[ܾmY?ɞ*YǏ*+99Ds- EJ2yxUf:OkvڃbuhuWxlɟjLnοsdg6 W_+PSY Ģr4n&Z¥UZNGazPۗQί<dOJ3Fo^VjNԥⓈD@AZ1N:SzJkMOLo1?Yq#~TŕK[Vx_] p4|DAhBj|sŋ+yeFX?銇5Jb< 8#1T 0?s/*(AF'0D@Gx$;3ϋc !TX 5`xS+,vb#ؕ/v_Gx7x[-X62[OLBG n;`{C>oWOK;B⠿.,  J[> 5.ð 'KiB^Ew(2HԣУ̼[Qsc j!ɉ+"ʣel"aŏV9ډ n\.ԗTdtJ,rc,V|_";J\md\!L)6I Fc)mਪ3}އ azƤh±~j!su_&s`S?q)gPma|PJYǬV?3%Nkh;v ^9)s9"1Q({/e3K/\m2qDP^T] >n:©y/M?޵5ݗvݴ9 ֹ?';au:e}ɧ(kΠt(AN+u:OЇ*ZLuc|3ߏ3Ecqvkπ'*_yb(bhQU,.+2_]T+G J*R^%GLq>14a5*Z}%!:|xA =m"7<g۶ v=J!۞Þ.%I$,=<*Aӧ4 Vx`DD|+6^B"w:x#oE{)spZ_ g"G DPbvK !US6++O)PN*S W֨;սi9qGN!Eeu.W)S.zC}.%ͲޠtQFah= L=tC=2+ NOk6}; |ƧiË,D]xyemtgl: 1d#bFcG r:tSJx=_ouԋ ">b Eޠ=6Gר*>/W!GajTK=:.PBLS~[x|zrQEyso-SՒ[f*3=ڌӦ;e9\Yef8"z(1S-kjJXc"~D 1ͦs8}IN(' ()ւfе^"6{0+`n[@396# `DF_S"=h03oHpmD RA+NZ= U0o0b6n'ZRll^mf,ŘNbڥ9ԩ%{==.je-;"J%z\bnIqw#f)9Nu֎D@ *e#odw+F0]CحϬHh7F<H2]FS,*2 eZhViVR٬74.Erg10w$5#_iQ1ILj#1k>L-e&<&$k4D F f"4!at-dČxY\76c#&XwО銵1jM:G&1VdygLN3:[=2YlӃ/2`lT'M_( E0(M29嗺 `jѣa&) \B 1IA orjx8=G$Ur[GE}XkM5YN_i{0({7tS"~ Oj J ]>_sxۓ n1@8wt?Do) U4] #WBTFD|* x=UM |IxR9\VzJ@)o|D7ec߰Aa Кk@W{wU2cLc;w;WJ(STc}+o._ƗK*t2@+)T!HU 7Y$,RY93~=UD瀈( RD/(z2A NnFM5mjm݊̚e]ץie׃#0e:%%KJ&Il=wΥPeM}+*.kTq[=7q/bAz[R^ ҦqT(9}k d.o<`GXg^?iJO?~2oeؼ@D&Pq~ܡz?"a8 O9| yjr3r mj 5:+GO=w ڔPܣbwiV8g g@+.[WEGʼ[rc~ ͤ$~TݢvTtnUd׈A}ȕ/1oP٪d|kR.EWTZ^ۚ(l;nPE*Ϟ=Q/$M:)}=}ӹ~I ԙ! :Jz %L뛯RSDl/)(wbڐ"sK/n]L" ^T~T m<As?wP:W'Q'eHW"wޯ?f{hۻKy&O{#W| rDT_ΨS4&Y5n%?UKi[ww_5jzZrk{0[( jD-t>gJ\|!6f}#f'49vѳKotjcBz?qL 1$,_޵6F?[xQ )䖇@!D`#%zJCNowo)3PֆsWZF-˔L%TY%GwoXf5|9t#O]&l^ )/e۬L[l5_|lhvY7qoo,RܤA ă=0㳔G&f[8]DbNZzԊHٺ6_@0h|{6{(4>*V1`&8R>I2=w-Ƭ]pVmVo6 H &: |)|by9:q `]blL#ds5; PTlWPZ z;};=nD- q9u (+x"|+4RCi=w!Uɵ4Q@WxrP//j>H"Kԛ:~8֢l3 }Vl5̭6/ !^@`[Qjs|W"8+:>*?q g Rfڜmϸdhqz+m24Xj, 0=M(0h"ŊЬ"ݖSv#ÜEqwqafɫD} F(B9?8ȅ0_dT:͙J#ˣ9d+Ȅi#+ > stream H~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!    endstream endobj 18944 0 obj <> stream q /X1 Do Q q endstream endobj 18945 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18946 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18947 0 obj <> stream HWks_'ʕAMbiڌřt*i4 ZLP@(v|t<ÃgsMkvLf^~mKbCj.iLY4w*̧ĚIŸZ]/|Y|by2ڙO(3֌fIA2M$MSf-u=i땹xl಴}8p~n.F?wd:Iz[)O-Y,GٲYjdݒ%Mħ|663?$I)sX$I%'jNyEp#%0f%[KXwʽr{{+}r}}}}}ܗ}ܗ}ܗ}W}W}G>*W[&Vb%F,Z1K{ VbUkhĘܫ:Z VbUkhĘܫ:Z VbUkhĘܫ:Z VbUkhĘܫ:Z-Z+1fi#hĘKYڽĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hĖI{ Vb%,^b{Z+1fVb{Z+1fVb{Z+1fVb{Z+1fVb${ Vb%,|6t }Q1Q'+ @+(ʁVr+hJZ*VJU* hUJZҊ@+*r֒Ҳ@*-r@KށK;ȽĘTȽĺc)KiKY@KށK;`ȽĘTȽĺ)Kjy{1KkI;@KރK;@KރK2@KރK2@KރK(@KރK(@KރK@KރK@KރK@KރKZKbZR R R R M>R M>R ;R ;R 9R ㍹֒x Ts_2y3J5֌fI yLi>fLn*Kl0|qq7 ɡJˎ\1"tTsԌq<_1yY^ϏuS}iҀҬ35umMkU[7dqy4aQw.ͺ![`tW8zΎq)5dLaR0Ҋn{`FC>mq;^cZ/gVcN4 =D};xD߿nb@wno/@UHnp`yӪut'S'<o&9Yq}yZfa `|e6O\_]}}50^ބYo`._]7yt;w>qm%$vn ]Lm]Ѿ@!ѫsqildև;}ivfWΧEo̼'5z.}&.r5+FsXUc*}WeT7C =WbNXŨϋry1\zy6uܬnv=_6{2Gǎן]NBҢ#sv=wҚ5ݏSm=شfnz2LLEnrM~Md gmyx!33S5WSi1ԻOt1Yqn~k6ߘ}o>ȌҼ3S5qt3\+~C~I'H /ti[Vw@7OtdhqAnxvIJÑl?\{ޒ2-;M+d\{oK/4rd_[xl6ڽ {W ia6"OVק^^pH9^N ~޼\Ӳٵ7yd3y|k=9qwՈVI|?Ҋvg?>#HYVZAiVr\i@PZ*V JURiU@RZЪVZQiE˴Ę$F, Ҳ@*-r@KށKY@KށKY@KށKY@KށKY@KށKY@KށKY@KށKY@KރKYZKbʽʽʽʽʽʽʽʽ}Ĉr/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-^bZ#ȽĘbc -~+mߌ;chVܐt,vǀWֻl(0(HG>F~љH]BZ+3̋;5?WC8;;IbBTlCǴ Md3DJJʼM8AެS$[%pO2lCbXt=-sRD Dt8m K:F +@(/ZOvw^vvsXߝ'\8$eF+/̇uؼz?=(+@nN҈%vH0z[)Y)4@(6W:K<87-pD+H6iUv9!Nw*Q)qw%(?YgO+Fhp%k-AC$ uU䂒"g|UEA]܆d*GckUET_&FXkXrQ ldnn!ۜ:wDKV Â*d[gh&vJN~u-lد2HdmF"/-{y04EL]Lu}q~[(sO׋λv"Ƒnh{m3qO]Qs=o`aSw:$Hbp0!U9jzXSUEpM65lT. ˋHKg1•!vY.d4V3nWcJo YiTwJ 7aRC&xMژ|QbEQ(0|G9-۸P3*K!+s\0%|Go6kqFl^P:C (@G ["H?eb*bDiL7R0>ypr~ dO:G_439)|͖hM5(n2x>Ɨ1SSՓ=5JTVh;_#A㼑_n(x*NFW n2JhǿEa8oׅ2U1 l~BTbq8 Y9BŘһCADd5bb.W|^i$uQH`HiVN'z7ޫԢ<[j `2\ |~ ͱRߒs\~bVr3o ^yL'Ck!X "K[m9rTx&s-BX#U B?q|<˂0e Vɡ<-( WsVgY\VXJ)D V 8+ԟU%m/>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18949 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18950 0 obj <> endobj 18951 0 obj <> endobj 18952 0 obj <> endobj 18953 0 obj <> endobj 18954 0 obj <> endobj 18955 0 obj <> endobj 18956 0 obj <> endobj 18957 0 obj <> endobj 18958 0 obj <> stream HdN#G=Ob庹%TWE. 0v3A 2̂OJ4n~M.>]vz=,aZ^ve|2i{~߽<?|//׫o紐駴|_NχOO÷e9O7ݴ_72]}ߟ~||il^q_ۛt_wWa }yx] y3d;d7d?08!!!!!! ~37 ~37 ~37 ~37# (oeKʎ=+rP䨼%ogI9r!J^ܔ;,wStJ`6endstream endobj 18959 0 obj <> stream HT{PSgO7Dr+`EPwnQ  $&`-HxVE",OyUU-b[e:v=.tWؙo~39s s3ɜ+KSR#Tc̑uz՘7Kod1lmWnReP ; Wx{71?AO*Tr085^HSI܄BaIA)*jB20NJKғDaѬL q +B1UyhR KIn 㵱#9Èg\dRf{X,%yyyy#cX-6>~QqFpǂguYY٢#sr漲TqswنNlFݞo_@.{"ApBDž7.Vs/ٰ䉓 KC,SX|uhennWt}+^e {ݚ;==/8QTYNKwq+D.lw^ĉcQs:X|8!ѭ<\/.ΦZ9}-SeKjvqF 8GYS3ߩ#OsPDᡛx25 .Eu0Ty4h#oBML:~j?[#(PC4^[uCa;" i!" fSr,=mAq'4p}e jP|A=o+draRIrqRmwAW~ZW@%eHSmxzIMlݚ#GQSٴʼnB^`x/z;sd7XpA^Ķ1v}LQ߫É>;n#peX^%x dGuBtȭVDqy Pe+ !bw$piˋӶ9Iyuͱ"ÔDӧ;N-D8$ ahCP$/8#? Q2 @<_PX1*FHD Ƙ~r[a4ܴPi͏v*-8mV .5姰9eH|Vg;\'9>gBc? DHP!u?6@6ZUÂXK&iS kn:t𗣭A#9ʂvH&t1TN :Ì*K:q4Wj*q.i"ڙMcP;Ƃ\ 5 (y! *2Ž[0jh}ʄ7YUuAΓ'%##O845Ãt{jR25>7OaR5FӶ d/j.pr&elaWce㢸8ì-dZw1$*B@A EB`E@a2׊aMv s(zzΘz懟GVygj;O'0adʦ y?1.瑍Ǫ|}z%y+w.(wډ$&E+p D8"JmmBo͈ɺ"O/PC1TTOR0IUVGu%d-@Ur_f[3Bu?\ADKHk 6<^YYEj\w/a /NlPpVBKhg["0rV'C=kHŵh p`эlu!A#87+!9ys1h LzΜ)E/{uۋYa{V zo'ۙS7n6x, T66_cW_g`漗H8j/O_箟#)B*,$=Yo<'R 6:RePba(ۼM<+UEaO 2vtU,Xg/+BqP<- ߴn"r+z@\)xyČ/˱ g+ TH_pW*PG$囉}ufe>qR6j[vpGy 1-5-\KcKm㶇pNzE7?/:׎l_p{30QNBzcY:M c.8AP-m3lc 1)ԇEYi_5vT4TY̴R}4;\`Bp" hA ^Siͦ0t^F:%8 WԿl[XI=EK&#o!A3&dI0[-$ˈ<,(W|S$rr#w2 یX/U6 3]Fߧ?N8?+_9Q أB5P _Wq@<%SE&[*J4%&paC'Y3/fV8 V)5V jt!6u1^ؕN~fɡ,RqK6~A3V-Y/^S y I"4 yi?rR!kV1=f%5|nV?O2Z&VIڱ=7sұBݶ+3s}~[9U+@A:CBPutMb=!9> }Η2p畧_Dfy;AmF%*<\^*6(j[h55wW|fJ4߀K`= n֭w.jc[.KCN6Pvv6{y .˧e1D]\ VZ<5kh7# ByČ}G{.z0-ц^[SΩ wF?qZ\Zi)b9ݕEخt2J&Yhgbdty/}bijbPUdd%}mla|[gNáJ%`4SPf0XGa4B£?N%!ψ)jP@kb >J?cSƓEi<0~k3\dTL^K E/~sFt*&8"9S+H7n#Z7{-bOp~sz`,SSk |[_9/:l${Agu0T3xE`9*h1MgDqqZƿΩ]It7nhQ}aГtt"1+F"@`g?Ts{:.Iaq,ɹy ߄t_u0$9Zܦ)Ծ})Ϥ֮k>l @b(ܱ͑5Q0uYwN{tTff6~xFk%Ÿy2q&v[\IQ2ht7^nm}ll]CgfZ!Thƅ˙-9\1P:R;`l<~^S89^yaЂv.ڿ?NeK׶SmRɒm7d"t[B-218cUF55ת\(+].ޢ\$%^ C/DNB'X+%^EZ@F+0&AP'd\N);EWMsGk{K`Ô^e8WpUe=$u)!Ǒ~Gwat]4G%G$Nn7XHJ𢌜 x>s2d8_PF\h:/۱wJ!l|L UڢM5mڜ|ާ}:_dٌyzgZ]Xۧ;X^9CE{~hBfL2^h&n/Jᷘ[A)]]CjPGїG{8Z&EUeR;H5X?FbKYh3E *:Ck2C8~O珌9jRP7̑8CÇػ8-E} ?h#- iwrf;h%p*A"Y@F^d䝔 J䷘nt7Ut3Q{='okKYCwQ/SW&ӗ""V`U4_z׃hVW[y#hcqF*p;eʡ+e),e+vÂ4w\b7G9`?p'rD $Y;й6%p굾[Wp&Tt_io  ޯZ <"9'>=U _5W jDIz-Y猧R*# =2Zy͗A&I?V]dpD+G,C#V{s>8kq,0ƾ\{lKd%rRYyE'1(Ǧ;c}n1q\5$ćkko &װk_Xп<[jbe;\4]]Ł wNګ $5..% g^񁒊JSp{)Gϧh>;QXR)7y{OH!?!;܏JB%X.y2DA \PX^ ( \* -M2JMٍ -m 3"nƿ;/E籶@֐LVM^ߔ#Կ a#qyaD8?)ҟqoT kS r3z/ ED_$9^_L⻀~@E8fK\xazP)˸Զى0nW]*b1k}dx֮+æ'/?^cCޞf-푯f-2j'KSpGgh2_q<]֓l;4ƦflmqhE *0, B=^Qk.шFO(db%Xc7@+ٖ!=lE*v嫉|UZ"f?R |`i O9)GcœzVJq4%+[%H:AB>_'0Sr]+wF={=c24/EOvZ< rϝoMRB-0lXկ~XmΥ,F}aЩeͺ@n ]D`WS2q<6rpz qitu5zMR8zTШOoCw7į{ e4@ւXooLŰ}2ZEr:5躌p ~j"ȸ_jK+k r15M3FEJ%8vk DqT8,r,!}BqYOb'Mnf|N=>ۋWnMB"BrL'ٸ#j[{|NX\]qox)k7iqv~>dO0Sd#hbx,&38HQȾniHK\0[9`|Q+A\0ӝ [I_+P]ǾV2$7v~L9 V8X;Ӿ{Ǯm"RhQG⪉ Οi뭼 ;ד.sm˯&r iLkη:IMfN$XІv<`VU=ktݴƪjo {}GvZj+Z_uUֺ>0!!@^,$0$!!@@y Ve}]iˢ؝vt׎Ll{;}~<%mw|,m+^N2 yxW(b7;0wZFE#6k @(\ptKO]VLgGSw\`)E Cv9X=eL)@~> 'VYv[{KS&c' "|{R87eTeIiaEoc2av] (PcŻQe-R[=]Y:[@&^ݘ8(MfsUVb?iY&"+)Kɑ F>IM+}41|@/4}d!ٛ/so Y3M%k\9:nE;RTx*0]ǐIWϣ֥u4BQb+CK|tb6P Ku~l$x~ <]*tHC?hw&+ _]ݜN*DwR֍rKbW-^Npr,pOlU<]yoT",7b7i_**slqr,u*᧌?e007S`\C6qL,K"fe)J>ڥD٩w_}$[ 77J.7bS\8>BLHٱC,E\Y\8kxȮH ߿?K+nf=BRqjJ?f{:F&56ƹYq>X:Z}-& xm"$$#r>!8 #Qlt#0}!iǟI8\˙ፘ؍cѭ9ztX\6MIáE\JOTN(&3Tz4aG`t;I[3\o|?ob5ٿPH Ք N9MtuV+D! PdGQ; ?/jLQLWg= DT#T;*9Zg`2wh6&1>= 23Q\%*|V/M^Y_~[|%Nj"XaCj LyZ h▅ y]PwD/ƫ>ӛzz]WUpVEZO7mQ9@C7@> . H|"hxT78vuz#oy{q$MRn2[Vj|]?7Bp'1dȟy{ʟN3d,]$rA9>sуg/ }={^ IBdLȅJ|{BVdOv`p`1Y roA}Wמ~§_M\z0СMaYϛ|@ 5`ح^EN`$XW~8:ah'0zpbt('^ۺolkg['|-nlHPIn*]H<<2<=W:.y2= Ea,mI $Ƃ8JUz2{M;^nVʕ*A^)+Pv 5 ob?] ۝K)09'>r/|˕h CZEVTR!łc'uGmǎc֚rBbn\ZQe/vT=kL3:^h|73|k7i78$.,, w3yc|Ľ(IQQ#Rid`Cx{잳7 ~Ȩfb'j4\11qqmm.y6o-<9/^hQ>TPQfĪbӎ$dҙD!HRA`ch<2MC\ڂx'||ڰnO,K7[4Z8(L! <_e+o.azJoB nExaIYA)RC1ro9OeBoJVAWooa lBҽ=牿O&5ZKbWr1>0ČqdHﶋl-#MR_.oxd3 )kHN3/ޛW.u-Bt8&7e}P9]۽ZZYAOgZx9 D@@$@M-T[75 Yw\M:S^uzOs~7$W][ͫ)]CJoJ%Jԃg8`URi_Eeh11\&AΑg)IvSh2X p{VVFX|AR6Ń5h >%os}y_o_2̤Y󦵞{$^?g\d.#ZWw#o KȹNTr+no/)`MP?ETg ,2R1`k>G6[H?WSAi [d`tj[t]OEQ2j9x@q|_j,NE{lNՋWTq4F\!;BMvKfnj2o%<_ј#NLٟ|xC9o@0RJBW ~th+ : ΥCt G ޛ||RkBoD+snHV k=(|obH.2pB 1ѱd\bfr_kfGN'=Aƈ~5ÚF;`&=$Z(}~^՟RDoDCN1|nxE]H}> I[~{%z&R99z?}FqTh= ;Y֠b\P6Vۖ5LYV -ϊfvb)سKG媮Nf4$2$<*oUX0*lq"_T4lZvzĴXrSC2vF|fWCP [?Z0hьZz@7ĺ8\#Ęx6J()&Mؾ|t5k|A3atXТ5jks"̒Q :#'a~IXjVLՆKr0Bړs}yyLj;Tdy})of,`& gPLMu:ctǃ_"[ 'Nouټ,K_yzoNcP?%fЙJynf=$=dR t%b~)؊3U?ޭ)?<@ 0U"`w9I>M~rKۮh YP_Z&ίa9,7Z "E٢ٴi΅jnVWkJߛ7r[6,0i(p;Q~ L|DK<^pmAݐ:an(r 91ϳXh$#wtʟ6_$UFE2utVZxk>\Ur.O҉Aa[=X1]H9 V[0m=AZa-ȭH<8UDZݪa.(T [;# ̻ Z)8%s.x*WqSCXviz |[mhID/}5兇hb2Ttf2;.z麴=]9}{?/N,v81"Ռw'~.9-$&ۓd̦N]d99ga/leZ\qyNVt?/@ iI`DOCwIbEe5DI@~1n}|䴼4B80n54kDɢ &faOsP<`gDwB0 `Ph٦wŵ6v޸qvra6!z0wucfJ`lF`_>#rѦcKѼ x0N|4 SL9yp koh?/\mO,4@X8utC`y85Hr\}/!Ƙ,Y^޹ܜs=v[P]XWSȥ7 w^7;0~TlG~tm4284NTҶ'oD)E2}wK1OSP;q/Nes{^FaDSz9c(|OGvFȧ|CyVT!TQ*"ZETHd (D&V@uo1yvSήn75O6tP&:ܚ>-'z mw}Oi+ggc鳹ZcICMll 4^XyC\`[o#5u}:RM?SX1 +=yM@މq֛&dUq]fWgRY{ (੮#+Y됖3m1iy@o$[q}Md3s Cf>L)t腟*9[ (=ǎ3n%6!E{` WS ꟻ3_I9%CB-ڻ pBͧh,n}ʆ-~9oGjJ:f/*H Upj3x{UE'A@ќ QI'j`= k; 9P{&QWd3*P ӄ*H pϲi90+&]d֙JJ0~d%S]\Sn 6J{dxCD $ \Aܣ&ݒS-g]:dßadE,*D $:X+eܧ6#U%c.yX>Ǻ^||1}(endstream endobj 18960 0 obj <> stream q /X1 Do Q q endstream endobj 18961 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18962 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18963 0 obj <> stream HWo8]C(Dz~{ER,[IZr֖7#[ENP_9oyC|Ӱ/.޼=g {诈[ Ŵq*XX )?X%6db7zޔUl۔Fٜ)gBYfaN%ͫrX4f'B'4ɧ4|aXэ˓gR`j.d?yUyt)bDj(T' [G >9`' ߱O [4fJ ~V*Yslȱ'2 p>,C!K,_;x ԋ@ ԋ@$@$@$@"ԫ@"ԫ@&@&@&@}JO)> g,P@}FPoPoPoPx*k} YzZCVǐ1`1d µ>,B}ZAǀEǐE\+kZZC>p \c"k} Xk} Yp!PV*k} YzZCVǐ1`1dJµ>,B}ZIǀEǐE\+ k%ZZC>p$\c"k} Xk} Yp!PV*Rk} YzZCVǐ1`1d*µ>,B}ZEǀEǐE\kZZC>p"\c"Uk} Xk} Yp!PV*҄k} YzZCVǐV8_Uzq6xϿ8eijټfds,VZ#wl: :MM7rvMigvZl뛓Ow)eSn\)7s 5|86~n<>Պ8U_iCJD,LY_Cf/5fl,e6N~aeݬYή7'_t~{d{v{+j,v+&$L!|6ln ktqLxXyef|q\#1 .Oe1ff4Ӟ4w0@Itб[4 J8 I,pu GI+P6MD_4M}PiņA]|}asZ}z>L"3ްy(C}Bcza,ߴPCRrh>7Qc=e]7dlLgװ'&6Jt3pLg6rvabؔmMʺVvuдtƍ7'K[ 4y2(Fk!E6b(\Z=tTdb/xv5DS*W  =ω^zdܭww]NӲ(cU5ϛg_WzaRpj[0*p>u;2pz^cTY:?c6UTkz_ w&.JRN je%B?Íi|S V=D@|6A sum][UB1'wP i;Sg[+-׷IZQO|iYYd:z69gW>G.\2 MZvvov{(/yװ[>Sfvx)80f7=z2NZ7%_OFξ7+ߟ{e[͓>ě=9e5^5[e.E n vpwMh# _fO+)! 24[wj?i)e/|\tqS8{rLrHiļ8;??qtTdT>@ Uf02,n{d|0Qߓ᪵+j&i /W'XJ3pvrӌգPvLm`T4K"Li4i q1&y< 钝^ ]hQYqh/PqM-t\5^.n[bT"sL*PbpZ_P%J{rUֻ*ZXxEAT(ѵITL] g>_|9|'.~9#6sz XEmY}[]L)qI%=tU;$@:ø-)$ ) >Zw"VӥxفN|#1fEbS鵋8cޟ6ьH_jQJW[ԭ+(Alaax;y<@h2Sj=55bL[c%+C%1I 2V|M{xD~$. T1ht 2 ̪Ҋ"NԲ u&i`gQ[gՂDp!iN<"%뤰>ޛdwU9#Mf0><$9O@:/<q]ox6 !3{Te!lB,^,t* k 9 ;gP?n Cq_!S0ׂt)|iՇu<\WX*s?S-䏦_/JE}uS_~zU&CTՓv =P5\xj %E>sS+ UeV׎q)۳:D:l) qb>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18965 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18966 0 obj <> endobj 18967 0 obj <> endobj 18968 0 obj <> endobj 18969 0 obj <> endobj 18970 0 obj <> stream q /X1 Do Q q endstream endobj 18971 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18972 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18973 0 obj <> stream HWkF_1| {yu wm 70jD"_7Ejs lȩWmz嵊7<~צP_U;ZN'V!QQ"*-ކ>f۴.mU/n뢧h42j X$V*@Seq&}j&dZ~{"'}*OTp2>c3}g9s s}!g5Bi)Z!R Y=ŐS XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` Vh-Ő%gBk),C Vh-vZK1dqZ!{Kh-Ő%guBk),=kZK1` Nh-Ő%guBk),C Nh-ŀ%bܳ:C .Bk),bZK1dqCwO1` ^h-Ő%gBk),C ^h-ŀ%bܳzC R Y{Z/bܳzEZ!R Y=Ő( blXh42jLzˋ5qjY3˴=f/tf^d0;6yDV~U_58"#'G/}U} ²RjgS cfnFeUU~ʣĔ\:X&^ j!+iv;CW~L#OsrO1dq-K=Őŵ ]^φty S כ/˗G!/;s -5aRhcƏ/ZMUϮon'eӛkU}h72GS(&^QN B˷?\-O]wWa- x3*0Yg'փɠᜎOa+]س7˗x5\{UՇ//3FՍ.%8օ;lw'J6گ?(iZuPwioNV_:?ݲ٪MhU(]M 7]V-҉YJۗ/y l_7͋ n639l/u[Sa a^׷?O;S -ބa > b&ا PVEm4nHK!@ڮef%ܖ^pWw; DE\*8'C}s ZjLc6W\ne8Šg72>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18975 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18976 0 obj <> endobj 18977 0 obj <> stream q /X1 Do Q q endstream endobj 18978 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18979 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 18980 0 obj <> stream Hko8Wp9E*E6 ҝb] )ė=l]m%(oCKRg' {&۷?gdp N\"**y&}&YŲ/dSY/jVnVՔ엯ݯl,o4l|yx`y±,9'N?cRY.tS-䵲byum \/6Ӳ\Z-oJŭ/ѻb xv@?3/Ť`]}e^\YGs''pG }/E {Gw{Gw{O{O2+bm)"X Tk@ZbX Tk@ZQjZpVPDj(}ZEk"GUDjZpVZQjZEk"GUDj(}ZEkLZbXH-ZbXH-ERb-P(H-ր"R@j"X >J&R5b-P(H-ERb ("X >J&R@j"XeH-PDj=PDj(}ZCk"G5DjZpZQj ZEk"G5Dj(}ZCk@ZQj Zp,Dj=ր"R@ؽ{w:ޏX3w۪IyY6曓E[rOȹi7F4$pW{X*U#C3U*u@.t_j4*Ϲ3-'3;LH%F啷E/JF2uu?/oY>c{ Fx^-^=vsgja ]tO^K'վnl[X{{_zæc7b/m|2+9ɅeSArer%.ޛ)-'Wp^P: 7':oײp)c>?Yu5N-,:oWg,ue_XC1[Zg~ʨ&)2:S,,{v5&E]olAx kŧ]z!Wp[+l/LbY`a/Y.{bC"vM Y_ a~e׬MEK:aș}Sw̐{pؙT[Sݮ馚MF4/OuL;!(T>'8^/q6c^nVN@VZM>ddcanakXuhЃ:T:tmnt?5 ~twߛT?(;v% 皺 gpfY䀵a5ċ^++VWǺR+\5uG| \rĵG%?Wi륓C ?t_(:C'Z>#Rڽ<--[qv<'/_endstream endobj 18981 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18982 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18983 0 obj <> endobj 18984 0 obj <> endobj 18985 0 obj <> stream q /X1 Do Q q endstream endobj 18986 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 18987 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 18988 0 obj <> stream HWn#y`86}0 `lAR6EȿȪO+2+3r)ܞr}yr揟>??޼<ߟӻ*9,_N>aoy%ǾrxO>_| g|vOWn q+utZ^nO\^TFST?B,9aj/r15]=LYx"tJSšrqz}wiyb%-ֲMϗ9_ˇGӗrŭSKT}w.Wgmy})%$/ʐ*uXؔOOnghkch)ϥrUZ`X;ks'z@.W^;u k]JcuLyhX|Y=Aa¼VNݖmj龭%jCo\d| r uv~dDſ2.:yM` c@;WFl`?93$|q?9vcY[{LaGq*N;b\S@O[ɻY~xvg`mXc6%J&LI (GJn $& 4˙!hLzڐ/L6z9RG)S7`v:׀c RAJSدY4L.b^,Cd67 eO&ʫf%LeFŘLUO(UV2%Lm"m(.y6!AbPȈNdSs"u#kwf>3Ԗ1l9mڪZ[fq=,H!pF9{f>6+9UT"PO$ܬmv`5!->-uk )/ ']XN.a8D5j3W{8ph3ҍfRdI3J8tHál6*ї'U5nP]чA !Ÿ_^. Ǔ[nO~@~99+H_+z N$8nqTNȓɣj bf gy>2t>AVfK:63")w֛YG,ލ!e}ƊK<@8^tQS$q!l^yÍf/~h1qp4ݱy9:9l@!&Tk xXTjFJj0}h":UB]8)"uݞOf!A[)  n`tv$n=rY{ HuGk~IsF_wޜJgʌL>Dg*lL_sAσ -4D b!=[gzG78.bϯ!;5US쐷SU7aH *:& ],sm}Vv]q38Vqr }o1v&ǫᶷⲼZxȍ`'0VEo7 Ӝ69.YlqT`\0>ۯ;.UEF1ENw{)4<,Kqm 3i4McӰᵅCL+QsORm\16ZtԊ$]_OȄJ/OJ&NJ@9ϤCmЬIw)N62b(4m UKnswnw&E: tW}4>-dr,fA%+ηwTͿȬ(I8CɁEF(Ė.t6<lAULqA-jsg˔_o˒0>oB8^V55XEhb{L54 k ºxv bb##y:"T;H- { ÓⰋ5VD\\(qNXr\@qŗ[lqMX:h& d9M%$΢|Ϣ8cLjs6\;P*Cx[AfY(@$\|X5S/fy@$msɲǹ yT^b\bVV[ vaa}ۮf /gbՙcdW~bʕ&Rcm^!p@t?hErCزWcpZ*4IPre̞#R+1 /N૧-z3mVݶ_n=BvT>btTEJ:PT+ā ip %-VECI4() ^A*UC ?j}sԿEA/V ?OϢ$Vu nm^F(`PH0ӯHQk9yUGFBj,k)/2е*ĜOz*J, Pt-xej? A&qL/ MSH+WȴP~i:hћjW;5 9Xi`2P`ME9E-P*%N 9HIA%;tW(CֹBfc6c~2_!3,Rf!V@J&6o :Ys\*( dgٰq9bÄpft:9-H6-^/+A K!c6Gٝ;jNG57j|!@CnHv.FM5tpdXeOUxx )`.E CU:ПU`a~þ'61.=}j)6GZ6x.Nf>8 HLCf֐꺠y {xM?d>X c-V?oa1[Z^ R@ ]pl1WX(]d@oj9z(\\h5E=`P9btxAtm{oS{ɢϤ}E& 8ˮ#D'6UuOR]IIEA?EA#Z3V-U'V]?gU vւ(ѐquna#X?(x@0ݍuu?N.\-) /'ť߯&Α.)I&4e4sg1oЩ.ɲsyDK,jϱjؾ ^N8`}SpNZ ֤U7/ X ]W{b;w`y+|l^+,h?0dI4A4VCIEg 'nv94''?k]^՘4!ʑ !֖?J9;Mr^(*7DK7(Z4YV2kR(ՑGT{p}<{w cz0\4/2za M7%뙧qF}鶽_"`.;&/|!Vt'X .SST/"%y5b5Bb@2FtLOXdN$6ee&/ӛl[gưQz&:F`X3vKo͖bwٽ8z}Xmcrr}7kT.A?{.6XxOhvE:}vsy}n±4+9,htK*{uvY 4}묁|G.VA3Xnm.\/EE*v?"2 OdhַY0u.Nnk ~HF%*$aBzGo]w1;#xuqdb[ T4"cn{UP<#)>^_'Y7#&2u?lw?{i9Z f.D!R'Pm62&2fOL6F{BOZy%OS:=ci:k./P5~5t2(+Mvp;ݷ XHÐZPvkKQB XXۨ~(C*=j rF>޵ȭ<~-GD~#&v[QWzh;7Qv/C[AN}T7Zb hߵ4(P))Fr(6;j-$g%f~~)(ȣ$ xg^8ajy7d=v(1juA׼C8l7yv/xzi+:85rR0+7 T[5Y4=wì2ML94ejӯC\rL$~ʿ3mPK~7& tfyNݘ"Kλqs\ߗĢ^#ܪd끣k 9W$%ܹQ>zyeuMKsy#@O:8-Nر$ءDحa}~4ғp}׵(Xk*kgHf^y/Ϩ)~qxM5LviЩBeAi S>zgxtZNDQdQ:ĤGhČ`jmT޽DlKk^ m- մZ2$7!3zb;t> )M<̻2GkL.3CL{OJ]kϛhֆJ-MoocLIaRQ΄I&$ͥP1д}9j({ۥa&yuHulި1(DDh',vBKRu`u 1:|4$`ζx׎VB5=E3 L%faׁ-3hug=4loVC_=Ew ]Ҙ%x~ 8(^ vҢEs^_e)OmCbLG)b9H /( y; )m<I@* OrhWh>Yi4Z?IҨ\iT^Ҩ4NuzM7h4?H"~j_"K2u%₶ʾͷh_JE5HCWAȊ p=lK;^gj/VScu׭ qTG_g$V"LyU~ғΥtv dfeomCټ'=&1%[\8nRŕh/.:rW#>4n'ti9b;{)Q'G4X㢖" >AGnvF|k`gF,ơ8إ . +% `/7u`M/])YTGh/կs ..$u lmmo =I6ѓraR@UVP f(qTnj)"m^L#4.t'$~25aBЊ+jr`U|룜]{BgK MPk'P7Rs[<XUkxyXE)EXUW^ݬЗG Cm7jF 9&G5R3eapt篋x#_#J yۃꤌ_:5&_-9FpSz_sY؋IV%H6fӏUE&izԛ6=t#LW0B2A MŘ<$"{X6EE/KEYdl}>@t?OLt8=i`F9NY۪iDbDso/p{Q녮d n (Xu4Wn`6̟͠pb9΍om#ӵ{= SNop4Wwc^ɍ!PyL mhI &wEQ;u[R15#0=9LrZZTD]]Y^ h8]ß ՟i8&"m:h}@J1avDtQ.hӍj]n' P4747f{a]ʉ/(n#~]nouJ}Sm/rg;x%(9eX餗^CA7r=I8~<KQsi׷E.ZtCR |8O7HnX<"x,w|GC~9Y4$ݖs Ft>Lp>+J@X"ΉGlit^c 51 Fe dv棖R|@ݟ, "% [욵M :\Յ0ꋃiW-;Ę䯊kREѫY %2J`JfN2SO\uٹRrl7ʙˁsg4M{#=!̀Ugomp$"2XYv["&Q5FErMs9i]^Xe0LvCy޺FDlczoPD*, })+F3w\oI7%nHrQdBZFHeQE&*t2g0";kUo" F;kEZ]ME)ZF%w=b"l!%o(}/ d9_{Ӟim#gx(*6q=a-sBiW3M:?SwNJ:1=)$%p1*=F?.#f w|ۇeG}x(ᆺӊݾUd7}m9 v>,/RxgV;ȶ<aü0 |<6qT]hhy?ːjpuҙA#o.Nm:w<7T;m&;t>o?cτ2npSMmjc'W R%iB ;p.> vNy9,'co;Hr`|л *p`ɎN?CսBa;׈7RdBDk. 9Mya@N*8ƵY,@01䦼$ڃͅK  s\ )}nǫ_eu/)sr XqxNMu6{nXG λ+_|^,N@ҤkSzr!=)(-'A6(O`_^KR`t8St)iS*VǤ< +ДvsQm4B᯺/K kQ R,Nㅎ/uP"o}e_ ;'!)pql`.\bdLXx:H7nAA^QQޥnް &@0FOM7^_FbЈI z~|.iw%p w[{Ak\5" C]~)n ҙth+*%I5)-TbM}?~ nA-qˡmur[%u-xw_Qť#d&;ncÐ~~\F3Mg4ӂ5:A؟$Ƽ!1'8~?Y>L!p2h&g֧';֓5 {tC}( [O [7 + [L1dKrݹPe5 2 Yնޑ2.6vig 񡴦 [lʀ& Y 48 $kB䟙iAB˿mS nrt?ez8ɛ i܏9z%$A^:˿ 9#xhzh lhኤKZU=GTd}[.pt1osI˜tQf2#g􃃕22|M՛|2c=FClK|s=^\~cȮ9ʂPNHb%W^}~Xn#>_o?OB1> q}u0ֿ};zKr}}ZUӆ/(˅; |C3y,Nstōٓ>T* _ޜ^}}}ydZH9~_w\1SR,_=+nIK\8::G q[rBF?/Iz E*r2_m}E+^ѯ?"Z+@>XHߡbd]ܥi<0q}Z">{+ kԛӐj 7qk9&"0zc#"ݛR^(7RY7\d4Fo;q3I@ d; lH/*B4; qJsىd廹I^3HWrP&`jŤ5zz&0BC!pwapO#Bp8;_4+&do#|Sp;%( ]0{}L&u`fɰrHaQ=>Hvi DS*DTV&D< -j:&v4*gόwLM ThX*uޕhy5nE!-Z{ɚ&L/BaC:\WL ;lVuBLf8yaRUp);44jBf]@O(l PZҵ_3Q+fd 斪 $]_ 6ujcbIpS1Ŧaxה\ ,ˋ1_jn76 pzD2ND㬟Oz-ZfZ-)W nd_- j:/_&*; ? \_-<궹QHKFk+آ6s37Om"T:gՄ>w6"[8ZZ7z!Лae[2Za>@>H Fg=mT1],P0Gv`ޘ 1@{|fv+u!yp>h4 n0AWl'Nۑn'tvJ;^L*n5mkoӨb,Tm' [f~>yaT1K]_NW ’8K^l,qi)ryWjI ͊jmFj-j tNF$ٖq(D"r !4S? '2_9@!*eǢGQFUV"iv,kn8P%A +. % yg-ݡQM(AK_+}Nb&7|L94Ȣ ճ\gGKQowRx@ټ繞䗆G-Y/rV"tMf*R5ogѠ$5C%j ƒT97ZʸH(n'_\ ?Πus@g=\d~|ڽj\OdV#ޱaHGNC&໼\JO9MDԪv@ͤBy- JE&q$(%QѳL8xodwطb4p"ةi,46;Cim.=OI1-@Oje䗋8MM |Wɒ"xϯV !q@8 NU#1~[""_Va*ދann>b"_Uz0ѦQ )ԊUh_244:HYc<x ʁ宋CfZub]p֭[,t%8$MdesQMSPP^U3B+rT|y\1h@jQң/o?H7JH9_Hp8{:8ͳcѣsF z*ثboT@-!hz 0UF>9G[1 *G6D19yǭcpR6NAes6]KbD}ہ;ly]1с߹=p<F0y'Q$rPSM Uvep?&2/}MVY-C/4r_n'܃|avbuO>q!ahL9 Rj1)7W'պD* vFgK΍ .^g_'fGTZ]@Q乗sDne5gjK n [; %5Hmd&V`,! n1BZ\;B0c?,9P ƨ08lC ,-)ap$f9}TT.0l+2<5>[vR*ךHz8 ^̐Pj};Y֞\5< lQL.`gֳ} ]qҍ''w?ʺXמYW~>)+ϴ+ϴ~*뮜{f/7gCc`8=y62A3'jwRͺhoy}rNUM~1g%DZ*Jl4g? Q^(E捑ѩ@{RU1*w^ Ŵy~:ifKv?{}(|R> %͔JL"XI-Vi0]#,M=C$cgB }qA.'K rԚyZ7S8xUJZ `<̚/>Г-ZeoCT2ĸKy?_Wq('IL""j: X6]p9LYXcS+[ :kŹCYd9iY\f ^udqn8_oĨM|]KW엥`pQfx\XO['Y8BvW\ĨQ6@IoMx OcI{NUlβA ED*nZK(征nJ Yܿ^o99'u UGO)e,%7D ~/Zg8*ߍ:d;/@>,1>Pۍ tA0;꭮I-W14|yu1-e,47RLs?| gd4Q^!z>ވ$:}m6v/vPtw*X%)1F>tk9ԶLV*JWrPZ)w!`?Ienhxeu03SN.P~Bt,!iˣQR/LKW %-?੠/WךyTl hۭ\UtcK%*T7T>(2̞nT4b}ԗ:BR٬66MkM٢b|-17Tv04x.s"23.@*h䴣kFcn#\D}oľvڀ[=Fը"`/ذkq:pq/-0 읃xN)&*HD%da yxYٙ}juuN:ytzo٩v0+j7#&V]QАB -4}-O`[&]56ľ̵=TUĴ~o^ KQQWb]H񲮿% MJPTϔRz^N-'> kbrhX-!oǢt['pjp9 ZPc"(!A35(|eWhx1q}ԭE^,11p;hř|J`'C>b"a  ȅH*,6\58"&endstream endobj 18989 0 obj <> endobj 18990 0 obj <> endobj 18991 0 obj <> endobj 18992 0 obj <> endobj 18993 0 obj <> endobj 18994 0 obj <> endobj 18995 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 18996 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 18997 0 obj <> endobj 18998 0 obj <> endobj 18999 0 obj <> endobj 19000 0 obj <> endobj 19001 0 obj <> stream H\Ak0:đF-@hZa˦{5ld8+]g7Iyݥ~r<{ܱO]pͭT,+7s3ˤ]:E]M^|swn8}Q̝>ݟ+qgM[uzB?9+gî~=ۨ ^Ʀܤž_Yo+pl6+,^,l0ޒ lrf+r^W`O@`! 8#ސ7ƞ^^u> stream HTiTg.^DfEvQDeQ@4K# r "AG3F%2pT&AaӌJ("VD+LA3?9Wdhj0LJEj"[0(!2DhnlQz.$׋sO,See*?ݚ-Yh-{ΡXk#Xl1YKT@ BNbSP߃wSD`x9Po1@U¢!xbcgA=dJ,%I̱5t$#ޙߓ"ʙ@'vP{GG@ G8Ja/[plBDNvP' O/ *t][diTFp1? 6M/9O> v@b?y&(. 1bC)kuSj^{;[۰+k"9ZGj"Lfw`<ߗް8R2CeD"JZT9Rt5q~skxաɊm$B5DͽoncEwmFFh^:)xF{HgmI22K_o-L hϾ έ}jC+Sю)E!c8Ϝ/xe}Bs>2YP~A_}(@ #/l)<Wz `MA‚@ p'$xCnYh =.rcNW5B+ZշZV>FUnL0ղyPW=L8Âc@HC=J "Sav,`cB19{)fGP‚%PJhV<"f):?~_.s'fAD0Ǿv P75jhR(oxAXe;&'JQ 6$HAq(. KdYR  ,I^yU zr鉣 L81]3jt}sx?SDˡLo#Ql?v_"K.}p>_x`;`d=x$f<1mN@j0[+Ȇ~N 77 H92}bGg-ܼmBz,?iV|JkO}?*ϰeo@_8 AbUŴbhC#,,3b8wfn )1q=@9{1)wz`˩ Z03}/]hߏt^Z֋߀vs!d|ޏi59i51hcQI̊S7Ldpµ!XD53m6lRl'KVB(}U!!Q%j'ǁy56*z#REE ƪ(Eb7NG<<.(]RSS={;F,Fo]ϲ;&\>c wAj΃Y-sp.-LJ@U^}As7նupaepi:G:]>j<"nq #f5&~4y.[@j~[$}G4P??t;䎄w+~TҤd's[,dx[$tZ *1J` 3sx\F9G jX%>a_lSEuS]hmf 撚iΐ!2S oVv6ok0L+߄#q-W kvH+PX9ÊS"avw+ MGerGKhV2t~c 4%X0 c<Ə&*P(Hz,|S` _;Qa%$S.Hio~ \Wj6TbhK] Mܐ0#Ŗ`֥VHٵm dFXO1Q; |QzfCoH!(p9GhRy?"/r -#x[9rV U4 >"z7r]tW6s|ܺ3+FGc+70th~ }W92~plv;zmWWiLӞVR67aZ+`gаCZK`jثyIyVE[49GpH)%t h @3O3hq`>LɝS8 vW>'f͚hi/Uy{9v8&vѲ;h!`9 **D~BW" I4Uw B)?ȿ^/ӫPDtSFZ2ͻ;~ t̷<}Eyal06 ?cZjnM#b3?x's约8/_vsoXcuYi-2>ey <\yU"?9r0+E}||A2d5 Gj*9[!)/@f :\=L ߲r x>`|{ԨH:U%AC_ETB&Gk`316<ܑ5bBo}Cqh迊x 1̟uK2^TB?Mu'{'JNc ểX~~Ya^b@1!AbcQP5[*k䆨=Em^/^o8J[`n04 0U`o`Ռ?I/7P%}M|i.*)6H6'[oPPQ-nGlȀkS_J|F&gcWi`E3ؘC :&LfHGnR xJFs P]uR2O`r$0#wT0z'vU($R{ H)`ӕH_*L&k|6ƺT%sǥp}  ]Fh6'pl3g'G:7^SCݰx=ǭ<ՓI>Mc߱0cfekE.xE7.XIZs;EӪU;)PbqL<8-TIJڦʛ{=r41>VjOb~͸wQCǕڄ}^k#%EjL<:HM_(VeQ])Lz89 zxDw-zy&{R?X{KbŒo{0oljE3U G/9<8򪘌"Ng-Q \5 ?TiI#`+j5}0`0Y'ѨBm2<|m'LloQˍL\ CR수% gK WmFKE#IN O; v[aro6b/HEؼ1ބ6=IġƦG .i\'w40Kj9pS$:`'@C/锕b&>S 8awlqԂ$vpiOohSaj*ЌtnARC"B\#7LctP͑XzDMGb>K:c(ZԽI!5y-<,hҕS÷MeRr %/2j&6Slxcyy`v2Ue$i[xXF=J +ߴv 9%u!h;i`;M1^ok:+QfL`a%N f'C ȧvBePۨӭun7̆3c53ZS~>@$CE@棧&gm$wb}( | h#/BcK`,dJyxCtN8 EZm>VcA|ɸo4o<}z2L?T15N)ߓU[35zy!^r^o]v>%{;K/I k`icbrVS19 4Z'Cbf֒WjL+"̣f0c)+ "_b(vT&`7c`ԅKXd&/Cb?5ܹtmǜb.tCbFߑ$I$)5 7?MiRN[I͑h|u]su9Ϸ~>o+lV+daBPOq:ǴueW.޿Bߡ@e) בfvS$8G`TiCe匄b`!="B/ $#^1q+aY:H!D~o)$105K7tQPwJj^PLֹsW6\+-WVmwpqqs-b:=VG!!'+mAC\j mBNj⥬ACEzk_n+Ԃ;ֶ3y@M^7z]^kh|*N;_ʪ>2ڀP{TV Ofr6ذ:K@f#CyX)˂Tf44x@N?ANǸ9-zI).7ч]qܞ$"1((aqCWI$&geScBp"ljtsj}$96Bnw@rh RO)8EzTftM)Sa"ߺI#Rva=/uvSJ0_˗wJKE 1]RYRTq3켼@_@ݓ{ 犦Djq\T0ĤFxxD(Np\ ̽˥kF> R1 v~D*<ETWq-#aw|x[n^Yiz|*;L(̋){o!fd(/U*p^UaVQ9wm+&^cRŞz"\cݤnc޶ dVJG{Ej_. hj2@w$F6y-z~PnIfB* 1}bK(OY.HZfS;Bn䰸aߩ@>fJHAY n4sA[_qMt5_3vL͞9|3աD #aR&:%;1 4di|jC3㤘:rp1whU-[P"( "RRZ`E|@Ay(l4Q-ʊv=s~ vd̜JEҿlSf8qk6N\iE:N}zBۅYG-VCf-X_vs2gaHFAs%FңP9(j'"& MǝiN_%7p֖ V@E]RUl9)#9V)/+\<=yBz-/!>wߺFL]*לeJE0;g;Eimn׬2- j>;<9z;^X_rѧgΖFǬSDɆGeJIᤨOkޗD5[Ew(-Ay "D V N4BB"A#$N׷e#'O[y0XF%.A.gA p@DvEpǨ (p~M͇`lcqE+ LK ېEqKq ȽI=B'g[r2F׵w6OD * r4mkH3{,53vsZ&D 71lBVEyˣՖgP7 e$7;8MjF): ;a$z?*zzw *p#`> #ci<2HRp:$([,nͩ/mzAnC>m dIM%>҃kE$ -uZ^ʼnCNlr1 Q2Bx]O1 b۰zϘMǔ6? -Zl!VwpF _ U H''CҴ8_sPppÇ?WP1[Q;=/j[?q#f/fâ$J46om3v_;L|qAikx?7oBI8X^aʙkTLi WQaI c]gIqg!QN8<.0l̥Ti ⿉&+D=<$`T j""~:FLj9NpzTThsN#Tҩ]W;AfQַdT}y4)+Ͻ{=h'Le+c4z;^3\ٙom/]fj幛p&Aa]qIf99&_*1wj6&l7Ԥba5$butTp/W2iEf2칌w:r8{̕:tTASjrU"N.szh$33^]I^UOVa'vϟ-WB*]ݢ&fSt~ s# ;Hax N:VƐ0[O`q.i fzYq囅%W` ԌR6P6E)' صlj;`xNjBi aC^P 2T_a~hqف^6Q#.j8t,J(d!]aB R$/9Ca&Z|/Ji {.kňWxwU*zWISHZ)W'մ_ͧ,!q 9r-y+Fˢc,Y}CWɉå+qt~M"/YR-`L5dZl0F#a7fǍ=? Z  ݱ76|{O{{k7*=z͕vt\= Σ=uȝ X96u"uEGY*0f3|iK&.۟E fe+:Sw)\p2 k/^ _ƛ?~1ʽ= -p> C&hJ4{׷s\fuDP=Ԕ 0 mq:@(FaT fЂf.A-Ql!Mߏ^&<4 Q>WCg*2,BH iO֣[xfi]\()F3/}\xm1X߸t-s68π"&oIg~RfъWOp?L9e):(..`~fT&sք?6eHϺ Z`\$$҂I]'5*uWaЍT7p$-ي}^jY%,RvwP#.cA1XV /vgQ%a0E/A"ъE`$p/!bovZEΰ[h:s`FRvMt4R)8iM\]FV&,R7ݦ.+,l1 $[; k K"!>^N=ЧkdsNN3S7* tr 2sejMޅi; |luۦ g?ݻ OO mendstream endobj 19003 0 obj <> endobj 19004 0 obj <> stream H\N0y gJQ%hAQx4ٖHԉзǓA a);]oڬ7]fkw vϡ1CyڮVӻ9C4q}RU.}1\]:I_Bkw^t{/;-}zh.n6mM;~ezN3Mi ?XRX1eb/7uH g8Ey^TɡS'N /"^{s0 )SL3eA.B5P_/9SG#HI.h 5eҼ%߂ '߃Y+ArJP+aRQSSSSSSSSSSSS-N.u՜Cm5Oob[ ȣendstream endobj 19005 0 obj <> stream HWklWx]{wY3;n{kصcN0n$1ŴGEM4$)-*)T%M6)@ ?6UEBT8QӢY4(:ٙ;3w9JoN߽7q|hN!0F_j#!g x~a]>Hc$g*~X''frz}kI.NM<?,*:<>;w؞p! \zMk_z/;B>WKt? 8kxH+; vI=yqZL ϭE,YQ}5}պQ}>qg&1}E'OJs[\(1cBюƪ5ٯԘW:NУ7Wo[…_VfL rLbqKďx@DZp/ǁ@D~Le+HpS\iޕ/tvu~@o?Vj?of g}m2mz/:|8p|8pq5TM.Ufn%6Wa`?0Ng_Bl(*Qaʱp4&mzE Lp__ k!$7>@*I镵3+!K<\1Wtb$: Qv4'y `V11I{i'@8f7"*9^ÑSu UPu UPu UPu UPu UPuͭkXQr"$APĸF ƸWF$o  @vYp$j0JkBZҚք&5! iMHkBZҚ&5iC>١1tH3+ƯX4m-_ՐU0 Y]m />X:=̃oh:=:==>:];*sHf \OI5I& $$\kpMI5I&& $ׄ1gG5AA8bX3hwN8K b$ N\'Yp'Yp'Yp'Yp'Yp'YXNj~*ovi f pGS.s%JFIhg|gF:6vX]xCyYzڛz%;{.{>Rygdc;M1qtDUvu.s6%K7 -eh)CKZR2 -eh)ZRw5&mӪ@XhuDsӠwPq(ǡrq(ǡrq(ǡ/72T0'SkzMv}eM ;PzgGFg 'N}g=t392;2hzo CF'C狈p59%R*6>$ty3Bt1RJqT*#"ʛj]%e6E:"?d= 7yݦv#yse'^{oskiJx\-p&cU}Gu o;*;*;*4[`\cP*1R, kVRX|>>zS;ᦡ}]ڵ|g^YvszנivkosW`0o(YH_X `n`nm0sm0sm0v9V|9 Xg2I2)Ht*Ht*Ht*Ht*HSA:f0_i*[0Si^01q!y|+!] ٕ] ٕ] ٕ] ٕ] ٕ] pg`FC(Rl ` Rl Rl Rl Rl)6bi k]wնM2~nr͕pǎT:>[ G Oֱ\e}h+ƪH2]lU~-h05z-ROb0O|2%K7Zn{̈́oͮpCVd/%?;xOq]da㯢lN΁;_x#^Xm=Ǟ/)q174%oHY?|?Goc7 ѣO%AS dImT\(O)cdip8 gMDK1tKaFq@{ՅK-Y3i<3+lڑ؊(*iP(,RRyj_ʾZ}BwcX6}YhC[dߖ}CC)|wflo~J;3||m|)-7$ mTܣt4Gs : KKKKK^B% cT}:4C~iiiiii_hN ĉd8xs_>EMyKQRԕ-_Jn+IOYEnVt^96Ύ]l~>eR*ZAՌL,Z:SG9-d k kMWzm,R}(vjg&g]vſkX7^zMيu;4:YxlQ[c4Acx4Aă1;c)/ujQ$I..T-&r`DUēW6V, 9Ҋ8_'mva4CMN 4;N 4;f'@hvhvNGJId39jql )XUʏ:巾ZzXzkۃKK/Y/ ^fTmsyM}!(_U:K}?[t ;䟨W+^QV2չဟ8jW5ZI*JګgBbuQ,p\?eֵ5v6 }˖M3aw-U͌N݄)RD#Z6'Ȍq/F1ҼpqdZ'g=RD4A4AsҠy נy נyMxYؒ!hx!C-\QYb>oO©zqZ/{"S(I&>@=MSR T(FbT(FbT(FbT(FbT(FMB1h2NQū!A~ȴ}(STn &R85[Qt]K%EY~[I_=Ql?rg dw$DƢg2ys|Cz>~_I-3g-y?싨ER= R:&m'F6Io4L|E10 ^B1.&qqqqqqE&MĒG!VX tp67V>z=ɯ[EVɖX!ϙm'g_T?DL8˃׃As[π)5kT)JI'IZ"Gq$~ϑ8GHI# p4ci|́95_sk|I| P̹0t.fic6^8k_+𵀯|-k_ ZD ݞt` ݞ3t{n=CgIg,T'}Խ Sٽ:l4W} 7 #lvOҦnaz忀Z̋ҿyюX' >miO|6 >mgJI3'۹@ډf͓3cCc C @kZ5h @k$ֈC4M&G8mCn2 ?WytT2IfLfI^LyHX#$, (( X[d}n%‘]mZu'O3I[B;~wO\~@4cH7W]W}!9u77AК0ko's#LL&idV$L$L$L$L$L$`RO+s>ӘaGvzaGvzaG:#GR*MOuMf;s˖EP18%(uOLuDA=HI $у$zDA=XG 4=Ę(uPAw6cu2[$7|pa=2 ɮ6I-I7GF+)9-)xZe&Þ8 e'9ԌVA \sU -؉T5cz^ӗDZWN(&*NgSJ888'Qqw隱Ts)#?)/)Ӛ\b'ӱ sM;~4r7Kn.UbPT1+7VO#7ոSLaYE##XiAwXXXX+7r @dy'2`i\s-NE!Vzb⼚iK/Zg\9"0ߡ\;c;@u7Պ7mcd^uն]LSO N/(k3{XSOI'L(Ǿc뱹#;یӛgޛ과?RRkm5)2pJ̨7UJT*}SoM7UZ$ Jkl3sm[oCܯ`:3|~2OfL?'3d1Of fnG[iCK88$2T5#C9:1k|I%[goo~z I~ַ.{WlYq\Ϭ/ǴjHj J|| \ |^:H3w^ |ݬL3ws~7hjՒjjjWzf?~}+3Z0ZW 1M)R c3c93+;80ߜddΈ"pΤ02͘O-m퐋< ]QBt@GxG6N<.".2GTO3 >_>'W"瘂_a~Qvy,R9rA.;䤼+䄜b,cX0ENcix,j 1A mr _0x1 KLųQ~ 0Wx{9(x0 ШD޷sײ(̖ٲJjTrAjͶVvَNOW CPVm(=Wia-Ki#Jvp n>bQ.Ѿ ѹyъ+kֲ0ne7ו,nRBP{ ԆYxMݔZ)vNb7ncuӶztuUAsj7_ƌ뛯UUj`Uܪª=UkVFEGގ |?;jdSdNثW$}psu.s.q.B5ǿSj QXZKP(=T*%J2NL!w;ϔƞp+Nb."Qevl*f*]x dq+sy41>>`k X#HEhO?ѪUw.C탾s{s{_dG8?InڮXjpe=&A:xwC8-{aПqrB`z9UliGhhttz@KIיCY#cޒٛNasxW:?k447_l2B}ە&3-fzLf}Agp-I/Imʸ'9df194B1L2"P(L z2hڬ[c:܉&> &@wNfh eM'+G5~mƭ( . ZYm"fg0/}=ڂ4gMnޅ$|9όZ{H͞ɟH96~6ۊ=ڽNJ*odԛ\- )z!=`MQ6Qč 3"nj:x"'ț.[ȓ`Y!XB{(<{**O]ҷh~LkbkjQnUQ9#_|G%T35J {l;JK_Ftc(q0֦:|3^D >hZXVJ9#/g3{ %ё%<)<{|{[TK;K­[8A@תo#xpחH`TISȻRKsI-2J,o)oU\ΛpG NvBZVQյ U*Lt`@W,u6Wz74WZjao.yz궖sq8◁*PgD>wwh)p;mCqSi{R(A2Wb2~y=t)[?zH+Xg9>܆tx ,c5* UŽk.C޿bu\ cB~70fq@ e O`N^ls0E5mJ{-g,ͲO;aֲ1RTσIӸ{]}88iJV}@%Pqi[Q CUČ@)MZ??be:TXqCJ!^39;Fqg`ӠbDƇ2>^]e@qZƧ~+x!/θ߄iZC3UT{'i% gM'nE痩7*j j-Gga{q%`r5g ?CcvÏ:'|j #2~q:=vĸ#%1Y?'IkE wg W8tCqXӁ67q+߮vǬU.Y;]%%͇rrcG?1uk#Q XQTDhw7 m6S#ݧxW:k UpE~3k{u'.6:#J]< WkOaط=nsAȽ&W.ϊ7A 8\<_ 7TV7ENa@* *~Qj;q+xZ> endobj 19007 0 obj <> stream H\n0 \/*(JiAb(1QE;DX~ݏm3t5[ ^{6 oƩ28TUQ@Ai <=+yWx:+s?8!zik3 DA yY߈v48E+"UBqU*_>IEvƫ"qLA&0L8cšy/g> 3qLkXK}Vx˜ ̢լr{u.3KMj~Q,4{gajH')=!gKx&97iDYTzFO 0Yendstream endobj 19008 0 obj <> stream H\T Pv\ea Dx0Rc@hq wȁQcH3J)4Db HN:gQN!h*$6 yctof}y{eAG޴`iueRfEVMe%kodj|fH-[mtVW))e+f"m_VUgv)+jZRg=(7+K)zQRR,JbW[UeeUe֮)|Sg][J[Yiw=ACI d.CR OH!ل,"d)!Y#u&ѓ[NpsFY_=@ZfRDxr8lXYsB&Ϩ[ ŕXC4H֫wV1xpڪL MK) 9UU42MVH匾\R^x:>; AѫoC𘺛L ;YH XQ(""4FhaaE3c(T@s:^hg@Ps3W Y5E`5I֝ԗ{-Zе!:l:Yj*gk1ܹbcb0_v{_W 4}ǾSYU5?Nӹ<\0($KWgF**?3>.]l.irwt,DŽQC 9(= 3l]psGj;@ZCpGZ2Lp0*?Q/x^ Bx?&nV &ѷ3=E2̈́:29x C؊RoMCGW:MgduFW 'QЛpV [>TKi8\k -VSZ 䗖$ A፥X=w Gic70m+}ȕm{vK̶F ca >ͫ^o4r?p}[G WܲU E}煁.zn-E(Aq` ǡD¤" ח.^%9`.xyGZ 8̝=p ] |KSSK)tCVW_b,O:u8u\&'\< I8Z#(mz*'B.x/фKif{[E$[`@$ >̧ys=^Wk&~s d> ,f- *p?~¥wny{L{Gd9$UL>U 8c0]b:냽,$sƆ~y^BX4KƘB!, GZfHT Mendstream endobj 19009 0 obj <> endobj 19010 0 obj <> stream H\j0 ~ C ne{VRb9' l!~}{ mFWN>cogdߖs(iB^!0AkJ?8cȠmȃM03ءsBS݌d,  8Zo͝F{3${TFՊS!=e Ov%boT>Ob nrendstream endobj 19011 0 obj <> stream Hbd`ab`ddTuH)K-LNuKI+NML()!C_5\Xe$yW#bDĔĢl4ǜĒ<=p`)ߋ~n f{bZ)=wys~w;o9;v!oCwzW{{~(zS<ҿ;x֓l|~hTyʹ?n1s\endstream endobj 19012 0 obj <> stream H\n0E|l !$b'RL^ r"_EEJ#ܙjf\Xn@ ;ftn'vha@tseoNST,pS;LGz7;͙=}3yG2 KXӰNNO7vbO{|\/.'>S4O]'ۙ3Eu⾆;5yV"xvևW.7JBӶ ?7#O%kw$fWTLЧ@1:T: _$ДpbA38SvǾYVįߍV7wf##mendstream endobj 19013 0 obj [19014 0 R] endobj 19014 0 obj <> endobj 19015 0 obj <> endobj 19016 0 obj <> endobj 19017 0 obj <> stream HVkTgBHfј$ei zk]-"P wD@.J$3"FQAϊ={?~C?2v힝3?}}pt<o~έ!ۗ튌Lh=wk"5S++Y9("XWБ%Dp뇕E,.0SgžED@ 6hT;bTԸ"+RUBdZUnS(jKZqi5*助2F 80r @ R< ւB@88r@!@ 8 A=hC.C%c>MU^NXK^2t> 6dzWeЎmMSdw|s{3E]6WwY3f%Ӭ'fy#獊KbA3-{Hb "i6;:]ˠ+Ⱦ󾸜wA">yFF y";*Jˤqch#J3M{)ڠHI4n蝘uW 㒂SR~40B>:qY1Je|BKT^ʺJBQQ>JzU6Z]\'<.a<b Z`aIN98 Z:Sann]x/LUF5Z ~'w x3MF`#9zp69 rC3GXJL]yFsP&7lƿ $>e:sNvm23U<"o';O0G;bM̵MQc%#f†pbn>!w'.rXN`A|SeW( tweSSLZ`OjOp>'r>34"551LzsyEfз 쪟4w'zoMϔަJ0^&j5/r?q`~5A -%`U@Ť ,' iN~2E +8t<9.8+}ɞ=I4z-I3T~f6fLp kJ*J`1d<:fHbbXqubU^l|mbe3Fe(@Jp0y@:Bup+\3Y{ 9!g>O!awzkj&,-%密~kE2b6J+Mg!eP,%䮀@:p+'K?>?.idnP=*tx([ @ű̪uL-]WWGNd0閬/j^ޅ<ٸ8֮;O 3:'\_⳻: e3mTj+GF *a: ط5-#kje㴘! +R7o97*i m >D2&d1[/qI+{0꒱_VCN2XD&1jjezrCR8uԘyTfRMFS=XX),ejJ1΄T8G9hgC@P¨ñL<@764 S%3,} AgHQ$ 'LY925x&S'h.?? OS'Q:zEkyǩb\\#v8? =%E7d9U6Ar뵼ye%MW*JbS{]KSkq :9ڵ;03LDб='37J1z%&DO//{YbkZ/./S7ӧ##Oxzx`JJϰ1$7SD7cQlq3lI š@n! $!!0PxՎcU2s/s9Ӟ{}y$'=?;Asݣ{>DU y|rvw`_/ZrBCJ]o3S&dс5Dq3ju&SeR,ˁ`֯^we0., XQjsړyAIzdžk@ DA Xo6vן~>ƾ,> p/xvQIUi,gcYCrl69& b8H²١i#S+VW8`pqJj~D}_&+L$% 6kݧSROHj~5p`:8΅s? }y4LԀcviEr q`噳Ny J#~WhS)]^"Ymn]ӣnC)`R:Ȁo}ͼuژ/+Q!/IDI:N4-!A~od=qmuSw[>}i;NK=Aɇsr&|^ۏj\ K2lT+?b+lV9_Βe+%GaT˯9ߖ׀^R+?W.d" WuYX\ç8:!]Tƀ' WmEEAMy:5x{3ZF6mMy̆da8߸66̧v__8~3P~Z*oKs86#'qlpW3&GF# 9nWdY$M 5vG[r#p$>=/?~gA"u-\ZUblO - Iڣߺ1*o&3c )^O_MaR tV BBvHdm%mVlt AAYsኧp!|?`)\ G|=Q@%Y0&ZNrwJSAE<1POkSHױ& dzp؏Kp!|1L|1ER=۝`377Sp˩/qmv}u#qXf(0(O'Zf $PX]gC\աa G 2ѮzUi^!\-{ /U-M꫙<5]s6JYRB+Udr./A$f*bIVZ;0n-Yp.7I!9uɜ)U"FEѷu6Jc7+_>y93?C]Ax*Z٘Yկ?FVV`]u#񡽁Lȁ~D,dXy5͵7ˊKF,&cUq.X,173n3U6ԛ5ї9 ;h&G#U["#d$'i[~g2R Q!=r8=z o)aK|!?@N;& ,'TI[C:HG3gwcF?$y枬bNC&d[҈ĀhY<pl*[nsK} $W.DVb)vt(VW:՘sX&aLId Kj+9fԤW !.ŋTL:Y]mҘ\vabuaSpM,B5̤i(Nv6N~t|ms@:rNw^m9P}r~s@᫾ӭ|Rmob[w#lwwc/MT$cmc6+6*S%~/ p!V00  &wu]n  ֘endstream endobj 19018 0 obj <> stream Hj0endstream endobj 19019 0 obj <> stream q /X1 Do Q q endstream endobj 19020 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19021 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19022 0 obj <> stream HWmo8_OhJbmkn Vb䳔 ܏!bi8PgR ˫Ա|+&/x2O" _e5ORͭb2DD%*EW}-_6TTmةJ._PM^˵C1w$9 &DևztUSʊR\|Z:ygqWvpuٔm; O&͹f js¬HZd:z`^'+Ȥ` g]lS,D-}!qs\q#H8ƀ%eBgYK^E^E5^G5^G5^G D D-F-F-FSB}O i>#gPE3B} y>'zGwzG<+ b(µX=ƀEcǘg1,µ,B}ZEcE\b Xk1Yȵp-r"\1`Řg#*µ,B}ZEcDŘg1,µX=<+V1`Řg#jµ,B}ZMc"\1"GՄk1Yȵp-ƀEcE\ b̳k5Zp-r!\1"G5k1,µ,B}ZCcE\kb Xk1Yȵp-THPc_ jhal6l*CFΤ ?6y܄yLw(W!8~J IgW`seYs&K8*"[A/s:B5`u0?̝_q)nvS )ͅ4̳Ӣi;}Mit$ 2~o:oK`#؄ݖspGΫOku,N]y~z鰺CeaUE1!gϳ,]?wE]n<]|9quzߙ:‡  }Õ.#C)tlS>Yg470 F+54RX zbxFU9Rpq~iBUc<z(2T`SPe~Є4i]/:]yWsG`,z BU2~SaLm,2lap\}n:0τL9ʚ:`\p0[ |1L!nݗZy b KK;Mq;IА}@\̼6Xjj˒`[xo.|Cmv;˶ _ }V}+}Wf nXz_65\CZ _ӵk kN_ʡ ^On u݅k&GUz;).q8Q n<&j5s =vA\ۺ9p YU0G8~S)Gաx6|z,ZE37ú#<>7OGoC]DZŵED0 Q/>쿘^ߑ KQᠻWa\:Oð F㗰~(}U`۔O4q-,w(S"~l0hm6F*(2;KٺQm8iD. K~ǂq͍D}FS ifJ_˭LR 7K>oSO' S)b:՟qO^%> ]ݯrVmбa巪Aokx 2$CmW 58oOe!q9gm6/sysh9V4ä 7p] V9SdbZOԛChUa2U}Y{jZSjߤ7)2 -|G2^%DTJ!&@!\hap=|̹9%#aBQB؞>9r5W$Pi<φ/f4״lP2-f.of\0H5/ 2j^*'63^.8QUeb9>Jy  XXCˇ" T(Y҄Q)\'Vfz,KfbAq`?dy>UrNM*1YӶ4%]5&*rR4hilYPۀ[{GRj/[uSMGE%To﫲fKNP֨.I*r5FrOEZɵ|Bۭ5TjB墚SIq [K*u<.} /tՈ2xˤ^-8e}K(U)h}Tka0&fJfʴ,l6%o\c U(Gj(UcK(?j4е%%t-ШZ/B/a#ԱAi 6?Mj:c\`g'%_j4K9L pHAp꣖|T'/էܫVϡSo 9F9R)(uT\z{J'(TOe+(crG`$;n8N9{JP^ucũR |OhG[(j%8 ܺXZǜRR=Fa Fa,[߫Z(쵔ҽG3 R%9G(KN)Ia3 kR^UFa1 kPXǜ2YPR*!BaT{R:tZBa?攌<ϼUyr&6/[ԩ- j! ʷuhmr8S`5% mMZtU9q)yPVGIiRIʧݻQT-7jA2 =ݨ Jը #(%jUY-DF&ЇB?3 A(0$1Z*Bs 3w=po\ǹvWgtzx>`E+4ץڿ^GP?ظskpېث_0 ~ g@-DXi;m尥;|`v,SdMLR+/`eNP lUݦ~t\)xFi nnJj>DϷpɭ~~=>F|T;r"z&@qzq;.R-D&]b:[x8#<6n7G󲫟&7p`5gW pֶoA"0+ovyN̆n_E6io)ٰ?A JM݃[}u0:uˏ_~%K~endstream endobj 19023 0 obj <>/P 838 0 R/Type/Annot/A 37500 0 R/Subtype/Link/Rect[93.6007996 522.939026 288.505005 542.619019]/Border[0 0 0]/H/N>> endobj 19024 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19025 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19026 0 obj <> endobj 19027 0 obj <> endobj 19028 0 obj <> endobj 19029 0 obj <> stream q /X1 Do Q q endstream endobj 19030 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19031 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19032 0 obj <> stream HWmo8.^"QCӦh]4>䀤(T[Yr7ԋM GnQϐg =~W,f/^|u/ Y)JfREt6Q#J]~,Vy]~+\}]챊^΢˙`$1˜I& JQB'\lL&ٻ#RK#Oثe}W ,h<| Ky).1|wS,*2q=ב5*l16X @Pt(!B9TB0w!B(I{I{EW{EW{EW{M{M`}OI>%ا`   3}Ym Bض$Zls=P-9T*dm"TmET+ bCJB(BP@P-9>P$Tm"TmET+ bCJB(BP@P-9>P$TmH6 cbC͡B(BP@P-9>P"Tm"TmETbC*B(BP@P-9>P"Tm"TmETbC*Bض4Zls=P-9T*dm"TmET bCjB(BP@P-9>P&Tm"TmET bCjB(BP@P-9>P&Tm(!Tm6@6 cC-j?u^΢L3fpcm𰊧,M-BOg_0@!|oU Fr}}ri#n=~p4ٲNxlvzDq3pH*yn4CdxH6MS3r.e>+MG%3²$Km>alDXf1nT\!|`~c(v>Ez3A's_FfӐTP?DL$zg葥\d < vh꒫?O G[˒L趺T W7l;@m'T? gQh)KRq >3rLRw+2Wy,Uє 61WRdN%iY {4d>yN|T?8j͇˟χ!m>ޏB>gnme3,}>OJsɫm6[H Nb_-˝KL{"KzÝ Dª|\'pWэN&/n8@NX7?ԅ80'TfüQyOuAKa|{ KJvOR@RpBt^=B 0GdA4nvwki n °*mB%upѧs;/vnK\i;_є|K01wPeZ^fԽ>|v xs~%+ۇ_2 (8RY&ϷTpiȨo"R)pbJYzT bj[*!}宩^_WᅗUބ<|پ.|˺KkK1 md!@6d!QR8`=O2fp}: yE6tl@|<9&T #B,b a^uQ;%E懪Fm-L ޺ƧZM#~UpXt.˟v9?/~:WӚ7wo GwqpC6bs7g* G|#>wK]$1t3bqjxm ?*xǺnQEPv]mgxHZ!=CG3glrt)YccW:6d멊 m4O-\pcZȒU"Jrm>j*.,n:B{[c+,9m~֝(auxTt)3@vf %p]{ *Sk?zI-<‹[|8j+`^ã" IpJ #7-s8B+4BǗB%~^ g`?]W[I;ܽt59HLbQWu> _WXFaܞA5D1OLȐ9~)0b6wNq3Bm+#@a虑d5|AG5s[pMs1 )xyB$ ^6^p_s6MΤ]ڄ藮Iճ-J(* xtӏ/}i1#!bLĥ3rៈOӮk6]UG53]jtz}5"wmV켔ѐv&hz}r~6cJ9<7||Jr0##EKߺ' k`anʺAbpOH4mS2#e}Eh%4Inl!R@i3_SmzoKc"|| i^[){Q? o扻tQ† ?T_-`S Vyσcj0aH "G2{UI.nĽ$D# zL5ϻo>5EulY<A7; ;/ EZKmZ8l ߸U6C^|7r;0Lȿߓ_G;dňr۹%M0%v j"`H(5 o2Wz?.r=(Z_p ir}鮚->k&$8R=IyHtx~`(ca i!xendstream endobj 19033 0 obj <>/P 511 0 R/Type/Annot/A 19034 0 R/Subtype/Link/Rect[93.6001968 663.229004 222.936005 682.908997]/Border[0 0 0]/H/N>> endobj 19034 0 obj <> endobj 19035 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19036 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19037 0 obj <> endobj 19038 0 obj <> stream q /X1 Do Q q endstream endobj 19039 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19040 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 19041 0 obj <> stream H4;0=+ %B0EBi:$@@YFgqy DG&Ŭa=Bk]vz_4uS$!1e6/3n'OA,endstream endobj 19042 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19043 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19044 0 obj <> endobj 19045 0 obj <> endobj 19046 0 obj <> endobj 19047 0 obj <> stream q /X1 Do Q q endstream endobj 19048 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19049 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19050 0 obj <> stream HWkN a6؛<6w3`\ q%KG$7$=#>|h^#89)ߋnP/^ܼ[W^}'2^_U;ZN'VueODUvU]]U]}zݬoNGUP4Uj]G+H4cm÷~(kuMb(Oաq/;j06WN>˵웻~(yZ:\G1,3붆9rڪeb~ߩۏک(Ttu }BB9s1Őŗ,!+XԻ1<ŀe{;c1Np{/̽{>'}"ODp0>eS}gs 3>}.ϙ }ܳ#+b),CwO1dqZ!KpZkR Y{Z+bZK1d YkZ!KpZkR XBk),=kZK1d YkZKh-Ő%gBk),=kZK:rBk),bZK1dqCwO1` Nh-Ő%guBk),C Nh-ŀ%bܳ:C R Y{Z'bܳ:#/b),CwO1dqZ!KpZR Y{Z/bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%gBk),=kZK:JR Y=ŀ%b),>W1w6ut6yezxblЩJӠutڶPTM|VW?t5ܕ`\aW|U3]ͱf=vӨu]}\b|jz4։/rwńy<:.^Na|+ԃڲ 34׽+OU~\rs`VCgHQ ,rr6_ׇ42=vU_^Ox5y#cT'pwi`p(. 龻2Zy6 :˳ef LJ ?ZIF8qjYpG6>]e޷ &vknb %ȀFwAӯgsp\p fvodB̃}a~Z_'*W.YOV퇪./} }(ُ=Q<)8S+̪F(6 ޗe !j}W~grlYV?>}oq Ԣ=s6rGO˺DIbrl5S9]ԴlB7}Za(`b~GIA6oc8o.gnӤ{5+b6õjڦ`3no\OtޮO_yt4mMP2C &]48I/&HY?YE&,;$OOM&S~> yiLӤCx<9 %<&G<ۇp4 0 0}Nl9@`PhlØ~|j&l{hr}hXx]CY؝p6Ȅq_tC= h9b Nq0>+2qvxQo݌S+AE0ĐG9) ֤%r@6"9uffas%\ W/աvj6 _+^g/V zѿ]o˗*\mpNfuKu:37g¾ԡl>wz5plge0K3t=*^rm܆޿.d ać$*)YE8r,4?&ѽ'Yt:~(3ͽ.lR_Zak(ͻsKGs_zlt/}}Z$y;^;mdfzutdj,X^<`y* *J * +Vj,K%Y\.XF `eȽKނs\%roAF. \#`[{ D-=X"k,{r5rIע k,{r5rȽKށs\%r@F.w \#`;{ D=X"k,{r5rIע k,{r5rȽKރs\%rAF. \#`{{ D==X"k,k,E=%Yڏ/Q"$9#|С*\~OV,]埫ֳk8|Guܦ3jsdJ;91r]ͩ_%*њ]ӖZ^[ŕK!a=a/;NICbt~^c7ut..e. [|Y[/Iך| <_Մ\v,x5+*򠫐W%5 9@i=8+3ud8lOKNGm?Mxx52}>Lؾ'cw3a\vݧ 4O 2d$.iӍ,f2t|>ffY+qU8ig6/fθSb978ƩbC=nXjsYb0y -ܫo-zu*OMWOmxF8 갋{qdTn99ʘ[co]~tVۓ1W2`wKq{CiϔP骀zuyo.3}qZ'S=endstream endobj 19051 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19052 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19053 0 obj <> endobj 19054 0 obj <> endobj 19055 0 obj <> stream q /X1 Do Q q endstream endobj 19056 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19057 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19058 0 obj <> stream Hko۸Wpz^%(ͥh7v/zp"0luK9PwC9X48󒣓bG^vLjQ#cG}O >qkDvkDY֎m֎UoǀB\k 媷cr11C!rĵvPzǵq q3q-G\k w\11C!rĵvPzǵq q3q-G\k w\ڱM 1CPk혡\vPz;Z;f(DZ֎ QV c@!cB;k혡kZ;Z;f(DZ֎ QV c@!cB;k혡kZ; $Z;f(W q3ގUoǀB\k w\+1C!Jĵv (ĵvPzǵq3qD\kǀB\k w\+1C!Jĵv (ĵvPzǵq3qD\k6B\k 媷c@!cr1CuMzL02]IM:HCpnw fEJh崇l-Za9dX?K2ɓIcM{&[l$?֌N!ҢKAPK-eVp# '-':#9}MmɈ Yun]<'pIJGϛ mq!*+Ȗf7Tb'Ko&Ccg[VEl'6e6:{{.J }.VuXpfEꭜ@`8#L OjXG6))I'oاIuD4@.ߤ>|ԹP{61nCP3z\:ON9sG۹7e7gxݣ>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19060 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19061 0 obj <> endobj 19062 0 obj <> stream q /X1 Do Q q endstream endobj 19063 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19064 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19065 0 obj <> stream HWkoF_14hih XH#[De7{I1gΜ9N_T|Eg]K|ą<7 ѿT:jOa]upѬv ]vl6z5Χ(˨IRU4Uj鷞f4m|]UBMΌO_LL?<]n<7GMuۅvOy~3R!.QJWp ~P_RPQixN De>SrNI8:D1d(,9`zך0Fpo{+̽[ -sw{{g3^pLp1>cs}9s_ })/Rp:RlCwO1` {!R Y{Z#bܳZ!KpZkR Y{Z#bZK1d YkZ!KpZkR XBk),=kZK1d YkZm"+b),CwO1dqZ!KpZkR Y{Z+bZK1d YkZ!KpZkR XBk),=kZK1d YkZKh-Ő%gBk),=kZKMR Y=ŀ%b),bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%guBk),=kZK1` Nh-Ő%guBk)Z!R Y=ŐݗIYNr^MT+˨J&)TUM/VۮU/˟/l;~; .q*e% ~QxR7:S+)0Ǚ2F3 +DŽZ6MniflB'_ۮv[XzTOT۷'gHm];]]*Յzjj|ea GVqЕ<, }o 7u6uq.~8/H(_zk J:U7j`{;K~x ܃Y>M.~ӟg|;HTt>,z5rOXo>\ K`هov}VP9Ϥz!ޤC"ěiyz0K &{ rWgYyͧOWoy Lհux=e6tg`pԗx593nrUWkJT[U.,h\sp'Y S^A"lkg CéN{s##oBt8|“ʩ{vںO;!XL Zi9A1-/hy-ϴ2A+cZ1\ʙV.hL UZ*iVILʵ(,E1`iAK3--hie-ôroS Y˽rO1d Z,F=Ő%h!CroS Y˽rO1d Z,F=Ő%h[!CעS Y˽rO1d Z,V=Ő%h[!CroS Y˽rO1d Z,V=Ő%h[!CroS Y˽rO1dq-K=Ő%h;!CrS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1d Z,N=Ő%h{!CעS Y\Lʲt%b5Χ(xYFEʤ6SxZkoW׻6[N0Ky0q&Zѹyz8ӱ_ò1M<I F#B^f̌/j~gJϫz5n&ޏa~+|tY{ ggUS/WҘ{Xi6ڊR?O yY 퇧 2n`> +IաݮbPj<"T'I] Ϣd'F.nv;\:E_D50woƔEBYՁ̰Z[u߇5Kr=1ö2{\<'g6DZ&Bje#q]UyoɒS.w[5gj *mRfKx6>$"wdS }cz1ػ$\} >\up,i6p#uXF>ϟc?ܯ>¶R7)27ZB,!M;26:,!޸V5[w?dm}iNi6NI(m%AQ$eJ|IpÙ7d 5.Wd<\n8 /B+]UZəJt%KkK\ oe/@`Fw5ZaGGr #0`ڜ_h{rC{-v"c}:\s^3AhƖ-Gr͛u2tjs"lXSEU˙(vgxb]|ezbز=1+ .RsCdm2Id~_*div4 ջ Im9!׆%ždL2,BsZ;M叞bGOaDrx#|rtre7/ o+y!}'\?)+ Zo?n[zb_E ~c>S8z!s-/pL~K$%]&'^b#ijoզ7QҒ^L %50΃.?J-Dr68ofxņ Geb= .O!-HVi$#3RX{ qvӝ*2xOـ3~UOTHV$m~ȜԳϧ=;`[ /ȗ`P{abSw셓r',*MNy|hp fN1zlm5iVwh QcV. ( >$ŶŸmMu癯E*l)\/)٘677g` PLhX:j%)q|$9li6j"+Nq_V[endstream endobj 19066 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19067 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19068 0 obj <> endobj 19069 0 obj <> endobj 19070 0 obj <> endobj 19071 0 obj <> stream q /X1 Do Q q endstream endobj 19072 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19073 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19074 0 obj <> stream Hko8Wp9lP M"v&ET]KHJ=yhAsW|O˪!nJ^zcg1sIT$0J£c$#tlܔUM%ʼw_8y |adb0& iDw;nb$g/˳*Yzc4YYOWlyg;%rDqv|^xg;Mrxw9A%a=JɊx|H^+m&6F1Mә1)#)Pvlf (zzzzzzzWzWzWQXD}`>DԇQZ#D}d>FǖQoy!5cך1MPk͘lfLSz3Z3)DZ֌i Qo#5c@!5cB[k͘k9Z3Z3)DZ֌i Qo#5c@!5cB[k͘k9Z3{qӔތ֌iVo4e7c@!5cB[k͘kZ3Z3)DZ֌i QoV 5c@!5cB[k͘kZ3Z3)DZ֌i QoV 5c'ך1MPk͘lfLSz3Z3)DZ֌i QoV"5c@!5cB[k͘k%Z3Z3)DZ֌i QoV"5c@!5cB[k͘k%Z3{ qӔތ֌iVo4e8%$^/BFk/E#x$!{h5& , X<]1$g=yIqf^0"!QFqH}W I-+195|>^QBQ_0zB\وL8򃐋~fuoΩQ O00f OcwG lh2=UV^ʀng[3f,>x,ȟ*i&c~PlTLQɻ9(d K(o:ңwM:cѬv^`=ņh ǖ48, kõ{%_oKh(\~`Z׺MK"|\*SբrbMZnJV)C`\ĴhT쐡+&詊 5*w1{7@ì \U^<)U;dU=_&mnrvMd4u[Nbxn,qd40{]Vy50Rr}JC=y[QH1ciE5ɊcC&kHWs"R~~?޺avS .%_b lRg k+|ơ]Ү~О) l3ǚp5}hu#&S{wټͻ|c_0a!S#6~M8+%{[3KG1POI't&备~:jN| D"}6~ ȨN.Q"tcjG3A*GKnqP&Kف\]R@!/4AQ}ҟIme"C*e/) < 4Y>-7'a7OeM}cq7r>;#,pة;IX4tz&Nl۔U=|lZ*d7"aWΓNm.1=>"ش~ӓu'v|ve4#Bk`UC;"͗oeNIzSDmy'opmç6vKBfst hJ @k 9Rr8dբ! *y9SK݇( <2N"LJd/n! eC pЪ Ing{plN8'.sr9jk)ښA`BL.W̧Hmo7 0d>]Y\.Fu}Ǜ7sz ~GoP}+|;?0'_x6/?Yu/5ft _&>2ϗѽaT^LTS+I}i :U&u'J_KgG w>iDxM=sf04jx_=i]aQO:DwR-8=>Zw'']' kendstream endobj 19075 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19076 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19077 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19078 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19079 0 obj <> endobj 19080 0 obj <> stream q /X1 Do Q q endstream endobj 19081 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19082 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19083 0 obj <> stream HWmo8_OHM"q^Ŷ[\ CR,[ճ%4{f$і15zH>屏wo,Wo^GNԱ*e\*52>V縉!qGve_^XXc]$.zWOxu9$]`͸lG0!M*NG):i}+id6ݶ>t_V¦y塯L7]ElSz~TO+-ś8r*Ou3 .9C1.8 @Ԇp;j!e.DH%2`/2`*`*`*`:`:`o&`o&`o&`3}ΰþ "`_0싀eۀeۀcػchmIFԆ=Q-!*dOm SRj%ZjC>PdTKmbTKmbj Q @Q-Q-!aV26D1JF(FԆ(}ZɨŰT+R>Rj Q!{jZjCTȞ6@16D1*FԆ(}ZŨŨŰTRjZjZjC>PbTKmbUj Pj Q @Q-!aV1}RB(FԆ=!*dOmbTKmbՌj Q @Q-Q-!aV36D1jF(FԆ(}ZͨŰTRRj5ZjC>PfTKm06D Pj Q!{jCTޥ9go6\Wz%TW;Tꎼ^oft/muoʫŗoL1i[5q-x~duZIhGRmK$벗sf:Rn9Ii VuSU"zv ]!P '8t[%M7=V4 G]fî3yZM$Y(Dڝ`*8>^i4nJ4OqvB*X}80z*wu 0Tdv~M`cS]e<&)Fx_wg ׻w}?6nzo.bˇ7y?9cTvVpf= 1f,h̟{&n;Y3{FeyY3hGFR __,Goq~n( yc/u q؏1.=Nhoo8c\3: -b<4hiĒpeEhy>uۈhpB^CI"hkA+@)yV,W^Vss8MCQad*,Iv ' `k2svC=A`egw@T4TvP *P`\I ),U|]1P{r {%1N+o| ({ 5hAr~am*);ԟ4gaK'0: n_+1TXSD:ޕQ S 6G(E l7QޙD>A2/?0E9z(T~I™ 'KN],{2>Lhm&37y.) h(Qc'b2AHUad\Y[`zendstream endobj 19084 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19085 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19086 0 obj <> endobj 19087 0 obj <> endobj 19088 0 obj <> stream q /X1 Do Q q endstream endobj 19089 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19090 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19091 0 obj <> stream HWko_qԡy_|I>8M"&@%*VV =G,>EFùIכ/.~y7&7^]y;!]0YLY,:ӵofsb$_Ѿ,7bbjErʙI.{5Q}T#p///// W[%Vb%F,Z1K{ VbUkhĘܫ:Z VbUkhĘܫ:Z VbUkhĘܫ:Z VbUkhĘܫ:ZZ+1fi#hĘKYڽĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hVI{ Vb%,^b{Z+1fVb{Z+1fVb{Z+1fVb{Z+1fVb$JYڽĈZ+1ficpo TAjRZhVPZhEVTZ*V URi@TZЪV*UZi@Z.Zc֒k@*- r@)-TȽĎژ@%,r@%v,r/1f-{r/5f)-{1 h;{G1Kjy{1KkIrA%R Ah{{ T=ȽxDZ*^b<-{r/1>ʽ@KރK rA%c֒x`Z*^b<0-r/1}@K>K_}-r/1~}Z*^bTȽh{֒hG:: NWe\454 g)bf|LsoI.YE*/A1oxhoLour+cǧffYo{><~nhY-vr-:fh8Xl@Bܒ.w3c{vfƶͺ X)fA9*>!Ɛ1/'}{L}k曎6~\ S?BOXP露uf=[??Fkѵ'Kʹ^ޗY,oO,?6|}gJroyQZ R"F #c*<.\G8OF*I!VvM>vn)$<<8}y|DӸ|2)WN<36nE_bxa&кʁ8K[Lۥ1k MYgd)!ISkwwiy풸l;`ޯwG,z>>Fl~Zã;~<.Y/w-JLeV '|GvknznOpwnPiegs>h?<>8ٷ tn޾Xql*JnfOבE_:!44hHht},^vmѶҐفb8C6mkNf]8 luWB6 bMݓc*SyD=T {k'EO\ f-`t6-_8(.fq"?y6dmo`tO~,cy̢p聳>1xZv'p9oss#1,VPZhVTZhEUBi@PZ%*V JUJiU@RZ5ЪV jr%1fi--,вJ-Rw cRw cRw cRw cRw cRw cRw cR c֒@%,rA%,rA%,rA%,rA%,rA%,rA%,rA%,rA%,r@%,%1bKY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KYZKbVuǯ~$qƚfݫ"q<&(k9_~#Kqdܵ<-\4UuҎjN \҃3+|c_ _ƫm+|TS΋z !-SRr_C%5~>>*kz\/=ĝv5~m85{gܸy!>xɤ=-Ԧrĸ5ܢe_wE4 R$+aP%%kޭdY3Hc?&J]gS|yB젎+D쀐Z&<<&, ƙ7 !p5]u77/hZH"%$]|ph]m\M; jfD(^z}ޤf\ע׉ܛg[/E*䒇p ;H8`DƵLgMOPIή%wq՝q\g#>+nyp }*TVυgk7#SNʜH *B ρROM0 F#ߜt8mTn1xo1?{v 0endstream endobj 19092 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19093 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19094 0 obj <> endobj 19095 0 obj <> endobj 19096 0 obj <> endobj 19097 0 obj <> stream q /X1 Do Q q endstream endobj 19098 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19099 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19100 0 obj <> stream HWm6_^`_%E4E8\|۠ܵ[Yڸo(R65 A!p8pt4;V_~ymߌ t%s#Xid;e{8kYvOo}S{ݰSY!{/8[?d5lRհ&+يWfu% wÈ=*A0ZL7:/ D9r'ܫ5n^& 벾N |,AKuoַ<kP,Y.^¨Wyax-sY䪨xy%#ZJaM7.4\َ9]f'+Ȏ:k50C JěD\9Ca6Z )BaFLbnK/ .хX.ѭqr2s( o]^Z6MS05MVhf.L}lP5uP98g,3^pW#Kt/GKUD\!Wּwx4)PfvwfLҔ_EalWd~hӾɳ\nBeP 0Vj %MYS.HNEVs* ΦDHgzAzrKű;W}{:Ar^)lؤ9zN Q/y.c+. W4/yP6)pURw3Ώ9&ylA֥.r) :u/#LĽ\eLw *nZw?[i0n}T +Mws8F㹿l; t}̎/^ƾ Ң6қD pGQ! ^eUW0.v*_kW.7p/Y{W[etPDн'4 x^P]sx&霗t7IqV MSԸ8 ]*>: YRYD'\UUi$QU煻+zSkQ/̞tNl/6׸a_.F.ʭJႛsM"L*`&ܚ}KiAUTrWU&Z~ͫrȮ?M!b5zyNI.i>%)],PvC%%tdRZ.\LO ` "q P8C/HƓ*eQpPs!"R/f :7>åG GЗg`ayŠL7hIr&auېr*J2f !b7E0tާ7_rE8^V9:ZK +nbڶyjTP;OvӒ[I(]-|bʜnC>gC5Mz>%ųK~Ӫr$#P.ަ 8b1_pN>-?#zydY@UUv[RR5m>1$hl4߆>{s|}?`+ѧP,8I{+(Re0sx\-hM\K}X HYVFb!$r=<&")k (&OGj:jM;TPDwN'Gd^Ǎ/3ힻI׬Hz?z VLGŎSg8%zTW*폾?x/ : ܬ{V?Ln|^o~gUVq7Q lSOrIf89d$1s&$t3Hk 8 x=xsgZܖu~b& v<5`_*,cG`W2 ~k5x2R53+ _"P_GʛwY׃}-2pmbz<nxF./JLoT@$۬zַd:I NS_J5w[ETǀZ1€{g|? q _۪ Ԫۄ`VcA*_܀N{COzۥ1/fE\ˮ#L,J}eWB-teWBY/iɡ ©|0E/-^b%ƨ`Y+kMڮ1-l(尢Y/;K%$gr0#rj=詇v|_fѮ'-GPՇ䨆7=˃CD8o9gG^F7%x3EmnWh/bXfH9Gx`du)CyKNQ ӌe(j.?f":)ҫ 9x 8ǟ8- UX_-=Tr?=X--̥Է.D,ni[(|$ \f Mɢfw K)qG|= hiT1Z7B8S;m8Z}۵4f֓W3eKUTQ"bd;(_xihWє~~Jb(*~ u:ԲLA>~7mx {(`$PUC,B]'IͥBH {' 6y^b@Hg?& ҄L44쿶uS+}s,;b&[8c1^4%!\(bTCmy* s" IQcܶ4 a]*Y0OK|+>:Gt)j!pvfvZ(9Ytl}rytY# Vw!Z-v@mgp Ԩ:Bn c,huN<MLơ4Lb=#Mo+Ka,`T F<׮O6hNp ՞7sЙiVmGZXtSZ-{0$jʦ!trO?y.)oyendstream endobj 19101 0 obj <>/P 671 0 R/Type/Annot/A 19102 0 R/Subtype/Link/Rect[93.6010971 216.429993 234.936996 236.110001]/Border[0 0 0]/H/N>> endobj 19102 0 obj <> endobj 19103 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19104 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19105 0 obj <> stream q /X1 Do Q q endstream endobj 19106 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19107 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19108 0 obj <> stream HW]۶}ׯУp/I>$)6@o"k%Xr;/rl܋}swSo߆q믯߾ ~TBPf$,LN$ Oe1l8| hXݟeM[POUp &/EԧQz3D}^!ꕧ^!=RĴ.vZ,_ qi4WbB\b\׺f!=2ĵ.,ĵ.Yzϵ qis-C\bB\b\׺f!=2ĵ.,ĵ.Yzϵ qis-C\b#u1ջ׺f]L|.,ĵ.Yzϵqis-G\bB\b\׺f!=rĵ.,ĵ.Yzϵqis-G\bB\b\׺f!=rĵ.vZ,_ qi4WbB\b\+׺f!= ĵ.,ĵ.Yzϵqis@\bB\b\+׺f!= ĵ.,ĵ.Yzϵqis@\b@"u1ջ׺f]L|(Dfq^o Cnv>#I$*7 nK8Q<u{>2CFU0&cTuͫ4~PSWmsk~?ŀ$Vb2#Y{sמU5?g9[K87ꄚg*S# nE}Y sM\ۮ֥U5kB{lEYowHn>]Hܷ˭i-粜# ZS!Ev啄f$K35!:$jx&ShW4}}1 K q )s=WWQ< ONS³eXPOfZhBL)<9 Rbbb,IL6OdL}AH-4sPR"ID g3WP^:!w$ -S^q8l&X7a5ОVO}ՓWH1uiZ"f`"\?: 2\Pf!W)s\dj#AcY` T=U zB*OH2?M]6oO{{F뇷Q\ tDCd2Vbgg٠sz-Zq(ҔPV 4օ߶`E je8|=SL.]ٜQ}enu;D2+#A?!2%_ʹA\"xzF9XV/6%ݗ}xvC;b_̵C 4[܅|ӝ=N菇 qLnDBWnc<6um|OSoG! Ź~^ 5EM{:u*ce1Ž iЮA yȦSoU *RɲE?y`&lX {-a._T@*XT汨}u(.fdٛSC"˭-n)a\-LM)Sw>$ y\ O1seq5ykIƇ1=:V%%*K)v.##,NفTg1-S*RIo0F ၹ-/>,7cNUT3l $um^ Ǟ6&_ƫ`m+T\A(jM@ma"t,Ķ J#HY$~C 3ol3jliU}Y<-wszG|)_|-C9): |jHmLdrt8)Ym4~uBKcWz;i4W]L/#]l2*^?G ΰ s&U(:4QA@ "FcL&`".bu11 M\Pj3ľ=1]RG70Qce)=;ԟ𳱽t&^Ǧ?Źpwƹ9}}y|3ѺoUW`Rƶ,U+s$~&iƸs~'ӾMEQB*4n3C^ɪb?"!ГvP2EJ:)(?. Ļ'$5V==L$47c0CQ=B1@UJQ%~\2JX?/[\9deh4h擯vigg=+]cZpIj x2Vժ5{"SpJ7fx#Ƅknɮ|fkIH[I'cdO\ ELZlOPpiV=Z~ ]vtfr ~F_ #g%ñ[<@_fLS?0GK;XX$kn¹a7z٪p '+TJ_8 T"64\BjDS͔2Gz*2 Z4kv<<Lr9Ko=a4Ý9 C4"U A$B)*2:}oH} :gZ p㻉IȌ8pza 2fW$QtL8u <@hTxvNȩ]pDjX{SV2{AdBIaA*2#JMn8h^fǡʊx?KJe20_N`9endstream endobj 19109 0 obj <>/P 509 0 R/Type/Annot/A 19110 0 R/Subtype/Link/Rect[93.5999985 508.428986 371.230988 528.109009]/Border[0 0 0]/H/N>> endobj 19110 0 obj <> endobj 19111 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19112 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19113 0 obj <> endobj 19114 0 obj <> endobj 19115 0 obj <> endobj 19116 0 obj <> stream q /X1 Do Q q endstream endobj 19117 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19118 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19119 0 obj <> stream HWmoF_20[uՓ_ 3pUa= ERPdXvF>3;ۻkWo/旹ȿELB>mЅSw*߭m&_3rxy~٭7)߭W*sޖA2/?e6y#̽y&ѩ 0l![|q"ge&8]ePr)kp;|Y,jW( Dߛ,9Ϣb"H!*ݎ%e"6DYEK6@)J+JkNkNkNII[M[M[M;K;K{O{O{O}H}HG}LG}YɈ6bTKmJSRRԆ=Q-!aV16D1*F(FԆ(}ZŨŰOTRRjZjC>QbTKmbTKmb'Uj Q DQ-m2ͨ6@16D Q){jZjC>QfTKmb'Ռj Pj Q DQ-!aV36@16D1jFԆ(}ZͨŨŰOTRj5ZjdQ-!*eOmbTKmJSR(FԆ(}ZèŰOTkRRj ZjC>QaTKmbTKmb'5j Q DQ-Q-!a06D1FԶ,ZjCTʞŨ6Dcc4G>mwe,e.S*kȥ˝&nnAs*4nw&ews]& Oy O-:L$t?gwY_%L+n _d*..S@u?_ u;{\؛YYxLʬhZΧ.l t~Y^+4//ϫi~FY1cżMԅB'nq@X~ `>v"4a "1ǮEpt^47VLHmTsdж5^~Ɇp7T6 $xX6[m= 8=r|/{jMnl:jNЀmژ{=)D"Zvմj,oJJUUC=]c$f 8Lأ2q[jtzX )3Pr+b(8,Gmi0fa"ʊf8qg3dQ7b1TejW2r .CM .Dύ>)d#*ى82;es=? n4)ӄ$$nof>z ɱ"$ZB7gj1Sg›U-$Sbn pw^~{TujOo`М5u\okڹȊ'Yi#rcꔕ*BTfW.ƻHqxcn[Dڮ`CpX,n/nЭJ3eiLS" F fnW{7x %W7ٛi M``,JޖSs1w0'w'kۊhbjsjLe|qPQO)*\OM8t謹y|?̐5q~țGs#=48< ФpH(&i{9[^z x ʇD,C(.&x (.CmnȑG8lK=, Ć.\r?l"PO\W8칵;xGFwCO&]O㤩 ܞ`8uQzdn~aZֱv3&/*Ƥ*z׺f_Bz-zn#i~f=l?>n_As/oL'신~}jH s p-tvF\f\{fFUΨc/д킢++Z`-(Pn>>O=EDN3D"a uX}Dl0 j9l'^pa?߄u'(AB%2n#g+LXln̖sz8{Sb@oc0=jm=~fw&N6QItf 0  l{D!ח0*!jϗ[e.KDaT0+%_HE頫 }B0-XF ev޴b_:rڅU);5F -HC񇵜5vT9D+?킝o'^t| e8J<14&jLn }Uh0um*I)UBH5KW{Ik]f`1|s` '\O AHs6ɝc0p9IJkwP 9 -xnq2aql>AՄ> \Yaغj#ȡT30Ӑ3\<֏<[G kzֵ$ "+ <^5m@_ L:idГ*1Jt R4phvxp>tOP Eϡ_Qg279=rK ^)'ǥ!%s . Y#/WJP2ioF/+s"-Ub}\NtSSC>36=˦ i|)ErkK)cP)rL3;[T&IkN#]T s:fbࢉkCcQA;&IA`:?xZL1Kf8嚟 w3.ר8Q´C˻Čc.{'d )G;-"\`vAwΌAcğ˔G+bHe82z;g&bSf|__ `pltF,"3 l>WpsԄZq.ۙ eƚ1cPzV^U@5677S.?/o|KШuJf]QXk.؟3C!jTi|A=s(R"=}=I)yi 3)9=M߿yԡ2>@SsՕ6 If6O{o?E E8=@r̦0h@vnۯcIje"_: aZ-D&*v=}60ND8U_SZ`dV\TsPviVN|X8nr,Xqsnb{d7^9S} g3d^GV"fm7I7< Gh"֦Wf(X %Jy.}5^ۄlN.˲2вۛbasP1sg6 6pI(rJ`:3l8pZ~mA~[=^q}Oo/͓ GJIs atFc/V|"|Ь*(a@l6 ѯ9DRE 6]Cc(b9`j/tSŁ3,l8}$M$32=.8}HB:EK$?!Αr'Lam! z0)@((}EQzZ%0*+G4Bt!/ Srؕ&W+ ȕ!TF% `d)#< c0Cˬ"rpG>59A pu 0Xdendstream endobj 19120 0 obj <>/P 3876 0 R/Type/Annot/A 19600 0 R/Subtype/Link/Rect[189 670 201 678]/Border[0 0 0]/H/N>> endobj 19121 0 obj <>/P 3876 0 R/Type/Annot/A 19597 0 R/Subtype/Link/Rect[228 660 240 668]/Border[0 0 0]/H/N>> endobj 19122 0 obj <>/P 3876 0 R/Type/Annot/A 28406 0 R/Subtype/Link/Rect[185 650 199 658]/Border[0 0 0]/H/N>> endobj 19123 0 obj <>/P 3876 0 R/Type/Annot/A 28361 0 R/Subtype/Link/Rect[201 650 213 658]/Border[0 0 0]/H/N>> endobj 19124 0 obj <>/P 3876 0 R/Type/Annot/A 19587 0 R/Subtype/Link/Rect[201 640 218 649]/Border[0 0 0]/H/N>> endobj 19125 0 obj <>/P 3876 0 R/Type/Annot/A 19582 0 R/Subtype/Link/Rect[218 640 232 648]/Border[0 0 0]/H/N>> endobj 19126 0 obj <>/P 3876 0 R/Type/Annot/A 27554 0 R/Subtype/Link/Rect[234 640 248 648]/Border[0 0 0]/H/N>> endobj 19127 0 obj <>/P 3876 0 R/Type/Annot/A 26962 0 R/Subtype/Link/Rect[250 640 264 648]/Border[0 0 0]/H/N>> endobj 19128 0 obj <>/P 3876 0 R/Type/Annot/A 26925 0 R/Subtype/Link/Rect[266 640 280 648]/Border[0 0 0]/H/N>> endobj 19129 0 obj <>/P 3876 0 R/Type/Annot/A 19569 0 R/Subtype/Link/Rect[282 640 296 648]/Border[0 0 0]/H/N>> endobj 19130 0 obj <>/P 3876 0 R/Type/Annot/A 26462 0 R/Subtype/Link/Rect[151 630 168 639]/Border[0 0 0]/H/N>> endobj 19131 0 obj <>/P 3876 0 R/Type/Annot/A 19562 0 R/Subtype/Link/Rect[169 630 183 638]/Border[0 0 0]/H/N>> endobj 19132 0 obj <>/P 3876 0 R/Type/Annot/A 19558 0 R/Subtype/Link/Rect[185 630 199 638]/Border[0 0 0]/H/N>> endobj 19133 0 obj <>/P 3876 0 R/Type/Annot/A 19553 0 R/Subtype/Link/Rect[201 630 213 638]/Border[0 0 0]/H/N>> endobj 19134 0 obj <>/P 3876 0 R/Type/Annot/A 25796 0 R/Subtype/Link/Rect[194 620 210 629]/Border[0 0 0]/H/N>> endobj 19135 0 obj <>/P 3876 0 R/Type/Annot/A 19547 0 R/Subtype/Link/Rect[211 620 225 628]/Border[0 0 0]/H/N>> endobj 19136 0 obj <>/P 3876 0 R/Type/Annot/A 19541 0 R/Subtype/Link/Rect[227 620 241 628]/Border[0 0 0]/H/N>> endobj 19137 0 obj <>/P 3876 0 R/Type/Annot/A 19536 0 R/Subtype/Link/Rect[243 620 257 628]/Border[0 0 0]/H/N>> endobj 19138 0 obj <>/P 3876 0 R/Type/Annot/A 24258 0 R/Subtype/Link/Rect[259 620 276 629]/Border[0 0 0]/H/N>> endobj 19139 0 obj <>/P 3876 0 R/Type/Annot/A 23443 0 R/Subtype/Link/Rect[276 620 288 628]/Border[0 0 0]/H/N>> endobj 19140 0 obj <>/P 3876 0 R/Type/Annot/A 19525 0 R/Subtype/Link/Rect[212 610 228 619]/Border[0 0 0]/H/N>> endobj 19141 0 obj <>/P 3876 0 R/Type/Annot/A 19521 0 R/Subtype/Link/Rect[229 610 241 618]/Border[0 0 0]/H/N>> endobj 19142 0 obj <>/P 3876 0 R/Type/Annot/A 19517 0 R/Subtype/Link/Rect[181 600 193 608]/Border[0 0 0]/H/N>> endobj 19143 0 obj <>/P 3876 0 R/Type/Annot/A 19512 0 R/Subtype/Link/Rect[181 590 193 598]/Border[0 0 0]/H/N>> endobj 19144 0 obj <>/P 3876 0 R/Type/Annot/A 22006 0 R/Subtype/Link/Rect[167 580 184 589]/Border[0 0 0]/H/N>> endobj 19145 0 obj <>/P 3876 0 R/Type/Annot/A 19504 0 R/Subtype/Link/Rect[184 580 198 588]/Border[0 0 0]/H/N>> endobj 19146 0 obj <>/P 3876 0 R/Type/Annot/A 21411 0 R/Subtype/Link/Rect[200 580 212 588]/Border[0 0 0]/H/N>> endobj 19147 0 obj <>/P 3876 0 R/Type/Annot/A 21348 0 R/Subtype/Link/Rect[162 570 174 578]/Border[0 0 0]/H/N>> endobj 19148 0 obj <>/P 3876 0 R/Type/Annot/A 19494 0 R/Subtype/Link/Rect[167 560 177 568]/Border[0 0 0]/H/N>> endobj 19149 0 obj <>/P 3876 0 R/Type/Annot/A 19491 0 R/Subtype/Link/Rect[179 560 190 568]/Border[0 0 0]/H/N>> endobj 19150 0 obj <>/P 3876 0 R/Type/Annot/A 20124 0 R/Subtype/Link/Rect[177 550 188 558]/Border[0 0 0]/H/N>> endobj 19151 0 obj <>/P 3876 0 R/Type/Annot/A 20090 0 R/Subtype/Link/Rect[196 540 206 548]/Border[0 0 0]/H/N>> endobj 19152 0 obj <>/P 3876 0 R/Type/Annot/A 19482 0 R/Subtype/Link/Rect[208 540 219 548]/Border[0 0 0]/H/N>> endobj 19153 0 obj <>/P 3876 0 R/Type/Annot/A 19478 0 R/Subtype/Link/Rect[186 530 198 538]/Border[0 0 0]/H/N>> endobj 19154 0 obj <>/P 3876 0 R/Type/Annot/A 19630 0 R/Subtype/Link/Rect[201 520 212 528]/Border[0 0 0]/H/N>> endobj 19155 0 obj <>/P 3876 0 R/Type/Annot/A 19626 0 R/Subtype/Link/Rect[201 510 212 518]/Border[0 0 0]/H/N>> endobj 19156 0 obj <>/P 3876 0 R/Type/Annot/A 19623 0 R/Subtype/Link/Rect[196 500 207 508]/Border[0 0 0]/H/N>> endobj 19157 0 obj <>/P 3876 0 R/Type/Annot/A 19620 0 R/Subtype/Link/Rect[181 490 193 498]/Border[0 0 0]/H/N>> endobj 19158 0 obj <>/P 3876 0 R/Type/Annot/A 19617 0 R/Subtype/Link/Rect[220 480 232 488]/Border[0 0 0]/H/N>> endobj 19159 0 obj <>/P 3876 0 R/Type/Annot/A 19615 0 R/Subtype/Link/Rect[172 470 183 478]/Border[0 0 0]/H/N>> endobj 19160 0 obj <>/P 3876 0 R/Type/Annot/A 19613 0 R/Subtype/Link/Rect[181 460 195 468]/Border[0 0 0]/H/N>> endobj 19161 0 obj <>/P 3876 0 R/Type/Annot/A 19608 0 R/Subtype/Link/Rect[197 460 211 468]/Border[0 0 0]/H/N>> endobj 19162 0 obj <>/P 3876 0 R/Type/Annot/A 19606 0 R/Subtype/Link/Rect[213 460 225 468]/Border[0 0 0]/H/N>> endobj 19163 0 obj <>/P 3876 0 R/Type/Annot/A 19603 0 R/Subtype/Link/Rect[186 450 198 458]/Border[0 0 0]/H/N>> endobj 19164 0 obj <>/P 3876 0 R/Type/Annot/A 19601 0 R/Subtype/Link/Rect[215 440 227 448]/Border[0 0 0]/H/N>> endobj 19165 0 obj <>/P 3876 0 R/Type/Annot/A 19599 0 R/Subtype/Link/Rect[181 430 193 438]/Border[0 0 0]/H/N>> endobj 19166 0 obj <>/P 3876 0 R/Type/Annot/A 19596 0 R/Subtype/Link/Rect[181 420 193 428]/Border[0 0 0]/H/N>> endobj 19167 0 obj <>/P 3876 0 R/Type/Annot/A 19594 0 R/Subtype/Link/Rect[172 410 186 418]/Border[0 0 0]/H/N>> endobj 19168 0 obj <>/P 3876 0 R/Type/Annot/A 19590 0 R/Subtype/Link/Rect[188 410 204 419]/Border[0 0 0]/H/N>> endobj 19169 0 obj <>/P 3876 0 R/Type/Annot/A 19586 0 R/Subtype/Link/Rect[205 410 217 418]/Border[0 0 0]/H/N>> endobj 19170 0 obj <>/P 3876 0 R/Type/Annot/A 19581 0 R/Subtype/Link/Rect[167 400 181 408]/Border[0 0 0]/H/N>> endobj 19171 0 obj <>/P 3876 0 R/Type/Annot/A 19579 0 R/Subtype/Link/Rect[183 400 196 408]/Border[0 0 0]/H/N>> endobj 19172 0 obj <>/P 3876 0 R/Type/Annot/A 19576 0 R/Subtype/Link/Rect[198 400 215 409]/Border[0 0 0]/H/N>> endobj 19173 0 obj <>/P 3876 0 R/Type/Annot/A 19571 0 R/Subtype/Link/Rect[216 400 230 408]/Border[0 0 0]/H/N>> endobj 19174 0 obj <>/P 3876 0 R/Type/Annot/A 19568 0 R/Subtype/Link/Rect[232 400 246 408]/Border[0 0 0]/H/N>> endobj 19175 0 obj <>/P 3876 0 R/Type/Annot/A 19565 0 R/Subtype/Link/Rect[248 400 262 408]/Border[0 0 0]/H/N>> endobj 19176 0 obj <>/P 3876 0 R/Type/Annot/A 19561 0 R/Subtype/Link/Rect[264 400 278 408]/Border[0 0 0]/H/N>> endobj 19177 0 obj <>/P 3876 0 R/Type/Annot/A 37714 0 R/Subtype/Link/Rect[280 400 294 408]/Border[0 0 0]/H/N>> endobj 19178 0 obj <>/P 3876 0 R/Type/Annot/A 19554 0 R/Subtype/Link/Rect[151 390 168 399]/Border[0 0 0]/H/N>> endobj 19179 0 obj <>/P 3876 0 R/Type/Annot/A 19550 0 R/Subtype/Link/Rect[169 390 181 398]/Border[0 0 0]/H/N>> endobj 19180 0 obj <>/P 3876 0 R/Type/Annot/A 19548 0 R/Subtype/Link/Rect[220 380 231 388]/Border[0 0 0]/H/N>> endobj 19181 0 obj <>/P 3876 0 R/Type/Annot/A 19543 0 R/Subtype/Link/Rect[162 370 174 378]/Border[0 0 0]/H/N>> endobj 19182 0 obj <>/P 3876 0 R/Type/Annot/A 19538 0 R/Subtype/Link/Rect[172 360 185 368]/Border[0 0 0]/H/N>> endobj 19183 0 obj <>/P 3876 0 R/Type/Annot/A 19534 0 R/Subtype/Link/Rect[187 360 201 368]/Border[0 0 0]/H/N>> endobj 19184 0 obj <>/P 3876 0 R/Type/Annot/A 19531 0 R/Subtype/Link/Rect[203 360 215 368]/Border[0 0 0]/H/N>> endobj 19185 0 obj <>/P 3876 0 R/Type/Annot/A 19527 0 R/Subtype/Link/Rect[167 350 180 358]/Border[0 0 0]/H/N>> endobj 19186 0 obj <>/P 3876 0 R/Type/Annot/A 19522 0 R/Subtype/Link/Rect[182 350 196 358]/Border[0 0 0]/H/N>> endobj 19187 0 obj <>/P 3876 0 R/Type/Annot/A 19518 0 R/Subtype/Link/Rect[198 350 210 358]/Border[0 0 0]/H/N>> endobj 19188 0 obj <>/P 3876 0 R/Type/Annot/A 19514 0 R/Subtype/Link/Rect[177 340 188 348]/Border[0 0 0]/H/N>> endobj 19189 0 obj <>/P 3876 0 R/Type/Annot/A 19510 0 R/Subtype/Link/Rect[157 330 171 338]/Border[0 0 0]/H/N>> endobj 19190 0 obj <>/P 3876 0 R/Type/Annot/A 19506 0 R/Subtype/Link/Rect[173 330 187 338]/Border[0 0 0]/H/N>> endobj 19191 0 obj <>/P 3876 0 R/Type/Annot/A 19502 0 R/Subtype/Link/Rect[189 330 206 339]/Border[0 0 0]/H/N>> endobj 19192 0 obj <>/P 3876 0 R/Type/Annot/A 19498 0 R/Subtype/Link/Rect[207 330 221 338]/Border[0 0 0]/H/N>> endobj 19193 0 obj <>/P 3876 0 R/Type/Annot/A 19495 0 R/Subtype/Link/Rect[223 330 236 339]/Border[0 0 0]/H/N>> endobj 19194 0 obj <>/P 3876 0 R/Type/Annot/A 19492 0 R/Subtype/Link/Rect[238 330 250 338]/Border[0 0 0]/H/N>> endobj 19195 0 obj <>/P 3876 0 R/Type/Annot/A 19489 0 R/Subtype/Link/Rect[167 320 181 329]/Border[0 0 0]/H/N>> endobj 19196 0 obj <>/P 3876 0 R/Type/Annot/A 19486 0 R/Subtype/Link/Rect[183 320 195 329]/Border[0 0 0]/H/N>> endobj 19197 0 obj <>/P 3876 0 R/Type/Annot/A 19483 0 R/Subtype/Link/Rect[180 310 192 319]/Border[0 0 0]/H/N>> endobj 19198 0 obj <>/P 3876 0 R/Type/Annot/A 19480 0 R/Subtype/Link/Rect[183 300 193 309]/Border[0 0 0]/H/N>> endobj 19199 0 obj <>/P 3876 0 R/Type/Annot/A 19477 0 R/Subtype/Link/Rect[195 300 212 309]/Border[0 0 0]/H/N>> endobj 19200 0 obj <>/P 3876 0 R/Type/Annot/A 19475 0 R/Subtype/Link/Rect[212 300 226 309]/Border[0 0 0]/H/N>> endobj 19201 0 obj <>/P 3876 0 R/Type/Annot/A 19633 0 R/Subtype/Link/Rect[228 300 242 309]/Border[0 0 0]/H/N>> endobj 19202 0 obj <>/P 3876 0 R/Type/Annot/A 19627 0 R/Subtype/Link/Rect[244 300 258 309]/Border[0 0 0]/H/N>> endobj 19203 0 obj <>/P 3876 0 R/Type/Annot/A 19624 0 R/Subtype/Link/Rect[260 300 274 309]/Border[0 0 0]/H/N>> endobj 19204 0 obj <>/P 3876 0 R/Type/Annot/A 19621 0 R/Subtype/Link/Rect[276 300 290 309]/Border[0 0 0]/H/N>> endobj 19205 0 obj <>/P 3876 0 R/Type/Annot/A 19618 0 R/Subtype/Link/Rect[151 290 168 299]/Border[0 0 0]/H/N>> endobj 19206 0 obj <>/P 3876 0 R/Type/Annot/A 19616 0 R/Subtype/Link/Rect[169 290 183 299]/Border[0 0 0]/H/N>> endobj 19207 0 obj <>/P 3876 0 R/Type/Annot/A 19614 0 R/Subtype/Link/Rect[185 290 201 299]/Border[0 0 0]/H/N>> endobj 19208 0 obj <>/P 3876 0 R/Type/Annot/A 19609 0 R/Subtype/Link/Rect[202 290 216 299]/Border[0 0 0]/H/N>> endobj 19209 0 obj <>/P 3876 0 R/Type/Annot/A 19607 0 R/Subtype/Link/Rect[218 290 232 299]/Border[0 0 0]/H/N>> endobj 19210 0 obj <>/P 3876 0 R/Type/Annot/A 19604 0 R/Subtype/Link/Rect[234 290 248 299]/Border[0 0 0]/H/N>> endobj 19211 0 obj <>/P 3876 0 R/Type/Annot/A 19602 0 R/Subtype/Link/Rect[250 290 262 299]/Border[0 0 0]/H/N>> endobj 19212 0 obj <>/P 3876 0 R/Type/Annot/A 19457 0 R/Subtype/Link/Rect[217 280 231 289]/Border[0 0 0]/H/N>> endobj 19213 0 obj <>/P 3876 0 R/Type/Annot/A 19598 0 R/Subtype/Link/Rect[233 280 247 289]/Border[0 0 0]/H/N>> endobj 19214 0 obj <>/P 3876 0 R/Type/Annot/A 19595 0 R/Subtype/Link/Rect[249 280 266 289]/Border[0 0 0]/H/N>> endobj 19215 0 obj <>/P 3876 0 R/Type/Annot/A 19593 0 R/Subtype/Link/Rect[266 280 280 289]/Border[0 0 0]/H/N>> endobj 19216 0 obj <>/P 3876 0 R/Type/Annot/A 19589 0 R/Subtype/Link/Rect[282 280 296 289]/Border[0 0 0]/H/N>> endobj 19217 0 obj <>/P 3876 0 R/Type/Annot/A 19585 0 R/Subtype/Link/Rect[298 280 310 289]/Border[0 0 0]/H/N>> endobj 19218 0 obj <>/P 3876 0 R/Type/Annot/A 19580 0 R/Subtype/Link/Rect[218 270 232 279]/Border[0 0 0]/H/N>> endobj 19219 0 obj <>/P 3876 0 R/Type/Annot/A 19577 0 R/Subtype/Link/Rect[234 270 248 279]/Border[0 0 0]/H/N>> endobj 19220 0 obj <>/P 3876 0 R/Type/Annot/A 19574 0 R/Subtype/Link/Rect[250 270 264 279]/Border[0 0 0]/H/N>> endobj 19221 0 obj <>/P 3876 0 R/Type/Annot/A 19570 0 R/Subtype/Link/Rect[266 270 280 279]/Border[0 0 0]/H/N>> endobj 19222 0 obj <>/P 3876 0 R/Type/Annot/A 19567 0 R/Subtype/Link/Rect[282 270 294 279]/Border[0 0 0]/H/N>> endobj 19223 0 obj <>/P 3876 0 R/Type/Annot/A 19564 0 R/Subtype/Link/Rect[222 260 236 269]/Border[0 0 0]/H/N>> endobj 19224 0 obj <>/P 3876 0 R/Type/Annot/A 19560 0 R/Subtype/Link/Rect[238 260 252 269]/Border[0 0 0]/H/N>> endobj 19225 0 obj <>/P 3876 0 R/Type/Annot/A 19557 0 R/Subtype/Link/Rect[254 260 268 269]/Border[0 0 0]/H/N>> endobj 19226 0 obj <>/P 3876 0 R/Type/Annot/A 19552 0 R/Subtype/Link/Rect[270 260 284 269]/Border[0 0 0]/H/N>> endobj 19227 0 obj <>/P 3876 0 R/Type/Annot/A 19549 0 R/Subtype/Link/Rect[286 260 298 269]/Border[0 0 0]/H/N>> endobj 19228 0 obj <>/P 3876 0 R/Type/Annot/A 19546 0 R/Subtype/Link/Rect[204 250 216 259]/Border[0 0 0]/H/N>> endobj 19229 0 obj <>/P 3876 0 R/Type/Annot/A 19542 0 R/Subtype/Link/Rect[180 240 192 249]/Border[0 0 0]/H/N>> endobj 19230 0 obj <>/P 3876 0 R/Type/Annot/A 19537 0 R/Subtype/Link/Rect[180 230 194 239]/Border[0 0 0]/H/N>> endobj 19231 0 obj <>/P 3876 0 R/Type/Annot/A 19533 0 R/Subtype/Link/Rect[196 230 208 239]/Border[0 0 0]/H/N>> endobj 19232 0 obj <>/P 3876 0 R/Type/Annot/A 37530 0 R/Subtype/Link/Rect[158 220 168 229]/Border[0 0 0]/H/N>> endobj 19233 0 obj <>/P 3876 0 R/Type/Annot/A 19528 0 R/Subtype/Link/Rect[170 220 180 229]/Border[0 0 0]/H/N>> endobj 19234 0 obj <>/P 3876 0 R/Type/Annot/A 19523 0 R/Subtype/Link/Rect[182 220 196 229]/Border[0 0 0]/H/N>> endobj 19235 0 obj <>/P 3876 0 R/Type/Annot/A 19519 0 R/Subtype/Link/Rect[198 220 212 229]/Border[0 0 0]/H/N>> endobj 19236 0 obj <>/P 3876 0 R/Type/Annot/A 19515 0 R/Subtype/Link/Rect[214 220 231 229]/Border[0 0 0]/H/N>> endobj 19237 0 obj <>/P 3876 0 R/Type/Annot/A 19511 0 R/Subtype/Link/Rect[231 220 245 229]/Border[0 0 0]/H/N>> endobj 19238 0 obj <>/P 3876 0 R/Type/Annot/A 19507 0 R/Subtype/Link/Rect[247 220 259 229]/Border[0 0 0]/H/N>> endobj 19239 0 obj <>/P 3876 0 R/Type/Annot/A 19503 0 R/Subtype/Link/Rect[185 210 193 219]/Border[0 0 0]/H/N>> endobj 19240 0 obj <>/P 3876 0 R/Type/Annot/A 19499 0 R/Subtype/Link/Rect[227 200 241 209]/Border[0 0 0]/H/N>> endobj 19241 0 obj <>/P 3876 0 R/Type/Annot/A 19496 0 R/Subtype/Link/Rect[243 200 257 209]/Border[0 0 0]/H/N>> endobj 19242 0 obj <>/P 3876 0 R/Type/Annot/A 19493 0 R/Subtype/Link/Rect[259 200 276 209]/Border[0 0 0]/H/N>> endobj 19243 0 obj <>/P 3876 0 R/Type/Annot/A 19490 0 R/Subtype/Link/Rect[276 200 290 209]/Border[0 0 0]/H/N>> endobj 19244 0 obj <>/P 3876 0 R/Type/Annot/A 19487 0 R/Subtype/Link/Rect[151 190 168 199]/Border[0 0 0]/H/N>> endobj 19245 0 obj <>/P 3876 0 R/Type/Annot/A 19484 0 R/Subtype/Link/Rect[169 190 181 199]/Border[0 0 0]/H/N>> endobj 19246 0 obj <>/P 3876 0 R/Type/Annot/A 37475 0 R/Subtype/Link/Rect[231 180 245 189]/Border[0 0 0]/H/N>> endobj 19247 0 obj <>/P 3876 0 R/Type/Annot/A 19479 0 R/Subtype/Link/Rect[247 180 259 189]/Border[0 0 0]/H/N>> endobj 19248 0 obj <>/P 3876 0 R/Type/Annot/A 19476 0 R/Subtype/Link/Rect[207 170 221 179]/Border[0 0 0]/H/N>> endobj 19249 0 obj <>/P 3876 0 R/Type/Annot/A 19474 0 R/Subtype/Link/Rect[223 170 235 179]/Border[0 0 0]/H/N>> endobj 19250 0 obj <>/P 3876 0 R/Type/Annot/A 19472 0 R/Subtype/Link/Rect[190 160 202 169]/Border[0 0 0]/H/N>> endobj 19251 0 obj <>/P 3876 0 R/Type/Annot/A 19471 0 R/Subtype/Link/Rect[207 150 221 159]/Border[0 0 0]/H/N>> endobj 19252 0 obj <>/P 3876 0 R/Type/Annot/A 19468 0 R/Subtype/Link/Rect[223 150 237 159]/Border[0 0 0]/H/N>> endobj 19253 0 obj <>/P 3876 0 R/Type/Annot/A 19467 0 R/Subtype/Link/Rect[239 150 253 159]/Border[0 0 0]/H/N>> endobj 19254 0 obj <>/P 3876 0 R/Type/Annot/A 19465 0 R/Subtype/Link/Rect[255 150 267 159]/Border[0 0 0]/H/N>> endobj 19255 0 obj <>/P 3876 0 R/Type/Annot/A 19463 0 R/Subtype/Link/Rect[398 670 410 678]/Border[0 0 0]/H/N>> endobj 19256 0 obj <>/P 3876 0 R/Type/Annot/A 19462 0 R/Subtype/Link/Rect[415 660 429 668]/Border[0 0 0]/H/N>> endobj 19257 0 obj <>/P 3876 0 R/Type/Annot/A 19461 0 R/Subtype/Link/Rect[431 660 445 668]/Border[0 0 0]/H/N>> endobj 19258 0 obj <>/P 3876 0 R/Type/Annot/A 19460 0 R/Subtype/Link/Rect[447 660 459 668]/Border[0 0 0]/H/N>> endobj 19259 0 obj <>/P 3876 0 R/Type/Annot/A 19459 0 R/Subtype/Link/Rect[398 650 410 658]/Border[0 0 0]/H/N>> endobj 19260 0 obj <>/P 3876 0 R/Type/Annot/A 19458 0 R/Subtype/Link/Rect[410 640 424 648]/Border[0 0 0]/H/N>> endobj 19261 0 obj <>/P 3876 0 R/Type/Annot/A 19456 0 R/Subtype/Link/Rect[426 640 438 648]/Border[0 0 0]/H/N>> endobj 19262 0 obj <>/P 3876 0 R/Type/Annot/A 19455 0 R/Subtype/Link/Rect[398 630 410 638]/Border[0 0 0]/H/N>> endobj 19263 0 obj <>/P 3876 0 R/Type/Annot/A 19454 0 R/Subtype/Link/Rect[400 620 412 629]/Border[0 0 0]/H/N>> endobj 19264 0 obj <>/P 3876 0 R/Type/Annot/A 19453 0 R/Subtype/Link/Rect[413 620 423 628]/Border[0 0 0]/H/N>> endobj 19265 0 obj <>/P 3876 0 R/Type/Annot/A 19452 0 R/Subtype/Link/Rect[425 620 435 628]/Border[0 0 0]/H/N>> endobj 19266 0 obj <>/P 3876 0 R/Type/Annot/A 19451 0 R/Subtype/Link/Rect[437 620 447 628]/Border[0 0 0]/H/N>> endobj 19267 0 obj <>/P 3876 0 R/Type/Annot/A 19450 0 R/Subtype/Link/Rect[449 620 459 628]/Border[0 0 0]/H/N>> endobj 19268 0 obj <>/P 3876 0 R/Type/Annot/A 19449 0 R/Subtype/Link/Rect[461 620 471 628]/Border[0 0 0]/H/N>> endobj 19269 0 obj <>/P 3876 0 R/Type/Annot/A 19448 0 R/Subtype/Link/Rect[473 620 483 628]/Border[0 0 0]/H/N>> endobj 19270 0 obj <>/P 3876 0 R/Type/Annot/A 28448 0 R/Subtype/Link/Rect[485 620 495 628]/Border[0 0 0]/H/N>> endobj 19271 0 obj <>/P 3876 0 R/Type/Annot/A 19578 0 R/Subtype/Link/Rect[497 620 511 628]/Border[0 0 0]/H/N>> endobj 19272 0 obj <>/P 3876 0 R/Type/Annot/A 19575 0 R/Subtype/Link/Rect[359 610 373 618]/Border[0 0 0]/H/N>> endobj 19273 0 obj <>/P 3876 0 R/Type/Annot/A 39547 0 R/Subtype/Link/Rect[375 610 389 618]/Border[0 0 0]/H/N>> endobj 19274 0 obj <>/P 3876 0 R/Type/Annot/A 44673 0 R/Subtype/Link/Rect[391 610 405 618]/Border[0 0 0]/H/N>> endobj 19275 0 obj <>/P 3876 0 R/Type/Annot/A 42749 0 R/Subtype/Link/Rect[407 610 421 618]/Border[0 0 0]/H/N>> endobj 19276 0 obj <>/P 3876 0 R/Type/Annot/A 19559 0 R/Subtype/Link/Rect[423 610 437 618]/Border[0 0 0]/H/N>> endobj 19277 0 obj <>/P 3876 0 R/Type/Annot/A 38395 0 R/Subtype/Link/Rect[439 610 453 618]/Border[0 0 0]/H/N>> endobj 19278 0 obj <>/P 3876 0 R/Type/Annot/A 44515 0 R/Subtype/Link/Rect[455 610 469 618]/Border[0 0 0]/H/N>> endobj 19279 0 obj <>/P 3876 0 R/Type/Annot/A 44496 0 R/Subtype/Link/Rect[471 610 485 618]/Border[0 0 0]/H/N>> endobj 19280 0 obj <>/P 3876 0 R/Type/Annot/A 44446 0 R/Subtype/Link/Rect[487 610 504 619]/Border[0 0 0]/H/N>> endobj 19281 0 obj <>/P 3876 0 R/Type/Annot/A 44415 0 R/Subtype/Link/Rect[505 610 519 618]/Border[0 0 0]/H/N>> endobj 19282 0 obj <>/P 3876 0 R/Type/Annot/A 19532 0 R/Subtype/Link/Rect[359 600 376 609]/Border[0 0 0]/H/N>> endobj 19283 0 obj <>/P 3876 0 R/Type/Annot/A 19529 0 R/Subtype/Link/Rect[377 600 391 608]/Border[0 0 0]/H/N>> endobj 19284 0 obj <>/P 3876 0 R/Type/Annot/A 19524 0 R/Subtype/Link/Rect[393 600 407 608]/Border[0 0 0]/H/N>> endobj 19285 0 obj <>/P 3876 0 R/Type/Annot/A 44260 0 R/Subtype/Link/Rect[409 600 423 608]/Border[0 0 0]/H/N>> endobj 19286 0 obj <>/P 3876 0 R/Type/Annot/A 35875 0 R/Subtype/Link/Rect[425 600 439 608]/Border[0 0 0]/H/N>> endobj 19287 0 obj <>/P 3876 0 R/Type/Annot/A 44196 0 R/Subtype/Link/Rect[441 600 455 608]/Border[0 0 0]/H/N>> endobj 19288 0 obj <>/P 3876 0 R/Type/Annot/A 42240 0 R/Subtype/Link/Rect[457 600 471 608]/Border[0 0 0]/H/N>> endobj 19289 0 obj <>/P 3876 0 R/Type/Annot/A 44128 0 R/Subtype/Link/Rect[473 600 487 608]/Border[0 0 0]/H/N>> endobj 19290 0 obj <>/P 3876 0 R/Type/Annot/A 42152 0 R/Subtype/Link/Rect[489 600 503 608]/Border[0 0 0]/H/N>> endobj 19291 0 obj <>/P 3876 0 R/Type/Annot/A 42099 0 R/Subtype/Link/Rect[505 600 519 608]/Border[0 0 0]/H/N>> endobj 19292 0 obj <>/P 3876 0 R/Type/Annot/A 38087 0 R/Subtype/Link/Rect[359 590 373 598]/Border[0 0 0]/H/N>> endobj 19293 0 obj <>/P 3876 0 R/Type/Annot/A 38058 0 R/Subtype/Link/Rect[375 590 389 598]/Border[0 0 0]/H/N>> endobj 19294 0 obj <>/P 3876 0 R/Type/Annot/A 43961 0 R/Subtype/Link/Rect[391 590 405 598]/Border[0 0 0]/H/N>> endobj 19295 0 obj <>/P 3876 0 R/Type/Annot/A 41947 0 R/Subtype/Link/Rect[407 590 424 599]/Border[0 0 0]/H/N>> endobj 19296 0 obj <>/P 3876 0 R/Type/Annot/A 43875 0 R/Subtype/Link/Rect[425 590 439 598]/Border[0 0 0]/H/N>> endobj 19297 0 obj <>/P 3876 0 R/Type/Annot/A 20534 0 R/Subtype/Link/Rect[441 590 455 598]/Border[0 0 0]/H/N>> endobj 19298 0 obj <>/P 3876 0 R/Type/Annot/A 41792 0 R/Subtype/Link/Rect[457 590 471 598]/Border[0 0 0]/H/N>> endobj 19299 0 obj <>/P 3876 0 R/Type/Annot/A 41741 0 R/Subtype/Link/Rect[473 590 487 598]/Border[0 0 0]/H/N>> endobj 19300 0 obj <>/P 3876 0 R/Type/Annot/A 31064 0 R/Subtype/Link/Rect[489 590 503 598]/Border[0 0 0]/H/N>> endobj 19301 0 obj <>/P 3876 0 R/Type/Annot/A 41654 0 R/Subtype/Link/Rect[505 590 519 598]/Border[0 0 0]/H/N>> endobj 19302 0 obj <>/P 3876 0 R/Type/Annot/A 43660 0 R/Subtype/Link/Rect[359 580 373 588]/Border[0 0 0]/H/N>> endobj 19303 0 obj <>/P 3876 0 R/Type/Annot/A 43615 0 R/Subtype/Link/Rect[375 580 389 588]/Border[0 0 0]/H/N>> endobj 19304 0 obj <>/P 3876 0 R/Type/Annot/A 43584 0 R/Subtype/Link/Rect[391 580 405 588]/Border[0 0 0]/H/N>> endobj 19305 0 obj <>/P 3876 0 R/Type/Annot/A 43536 0 R/Subtype/Link/Rect[407 580 421 588]/Border[0 0 0]/H/N>> endobj 19306 0 obj <>/P 3876 0 R/Type/Annot/A 43515 0 R/Subtype/Link/Rect[423 580 440 589]/Border[0 0 0]/H/N>> endobj 19307 0 obj <>/P 3876 0 R/Type/Annot/A 19612 0 R/Subtype/Link/Rect[441 580 455 588]/Border[0 0 0]/H/N>> endobj 19308 0 obj <>/P 3876 0 R/Type/Annot/A 37883 0 R/Subtype/Link/Rect[457 580 471 588]/Border[0 0 0]/H/N>> endobj 19309 0 obj <>/P 3876 0 R/Type/Annot/A 43400 0 R/Subtype/Link/Rect[473 580 487 588]/Border[0 0 0]/H/N>> endobj 19310 0 obj <>/P 3876 0 R/Type/Annot/A 43361 0 R/Subtype/Link/Rect[489 580 503 588]/Border[0 0 0]/H/N>> endobj 19311 0 obj <>/P 3876 0 R/Type/Annot/A 41258 0 R/Subtype/Link/Rect[505 580 519 588]/Border[0 0 0]/H/N>> endobj 19312 0 obj <>/P 3876 0 R/Type/Annot/A 29152 0 R/Subtype/Link/Rect[359 570 373 578]/Border[0 0 0]/H/N>> endobj 19313 0 obj <>/P 3876 0 R/Type/Annot/A 43229 0 R/Subtype/Link/Rect[375 570 389 578]/Border[0 0 0]/H/N>> endobj 19314 0 obj <>/P 3876 0 R/Type/Annot/A 19592 0 R/Subtype/Link/Rect[391 570 405 578]/Border[0 0 0]/H/N>> endobj 19315 0 obj <>/P 3876 0 R/Type/Annot/A 43153 0 R/Subtype/Link/Rect[407 570 421 578]/Border[0 0 0]/H/N>> endobj 19316 0 obj <>/P 3876 0 R/Type/Annot/A 43114 0 R/Subtype/Link/Rect[423 570 437 578]/Border[0 0 0]/H/N>> endobj 19317 0 obj <>/P 3876 0 R/Type/Annot/A 43090 0 R/Subtype/Link/Rect[439 570 456 579]/Border[0 0 0]/H/N>> endobj 19318 0 obj <>/P 3876 0 R/Type/Annot/A 43020 0 R/Subtype/Link/Rect[457 570 471 578]/Border[0 0 0]/H/N>> endobj 19319 0 obj <>/P 3876 0 R/Type/Annot/A 42992 0 R/Subtype/Link/Rect[473 570 487 578]/Border[0 0 0]/H/N>> endobj 19320 0 obj <>/P 3876 0 R/Type/Annot/A 42962 0 R/Subtype/Link/Rect[359 560 376 569]/Border[0 0 0]/H/N>> endobj 19321 0 obj <>/P 3876 0 R/Type/Annot/A 42926 0 R/Subtype/Link/Rect[377 560 391 568]/Border[0 0 0]/H/N>> endobj 19322 0 obj <>/P 3876 0 R/Type/Annot/A 42886 0 R/Subtype/Link/Rect[393 560 407 568]/Border[0 0 0]/H/N>> endobj 19323 0 obj <>/P 3876 0 R/Type/Annot/A 42856 0 R/Subtype/Link/Rect[409 560 423 568]/Border[0 0 0]/H/N>> endobj 19324 0 obj <>/P 3876 0 R/Type/Annot/A 26932 0 R/Subtype/Link/Rect[425 560 439 568]/Border[0 0 0]/H/N>> endobj 19325 0 obj <>/P 3876 0 R/Type/Annot/A 42773 0 R/Subtype/Link/Rect[441 560 455 568]/Border[0 0 0]/H/N>> endobj 19326 0 obj <>/P 3876 0 R/Type/Annot/A 19545 0 R/Subtype/Link/Rect[457 560 471 568]/Border[0 0 0]/H/N>> endobj 19327 0 obj <>/P 3876 0 R/Type/Annot/A 19540 0 R/Subtype/Link/Rect[473 560 487 568]/Border[0 0 0]/H/N>> endobj 19328 0 obj <>/P 3876 0 R/Type/Annot/A 42675 0 R/Subtype/Link/Rect[489 560 503 568]/Border[0 0 0]/H/N>> endobj 19329 0 obj <>/P 3876 0 R/Type/Annot/A 25865 0 R/Subtype/Link/Rect[505 560 517 568]/Border[0 0 0]/H/N>> endobj 19330 0 obj <>/P 3876 0 R/Type/Annot/A 42591 0 R/Subtype/Link/Rect[414 550 427 559]/Border[0 0 0]/H/N>> endobj 19331 0 obj <>/P 3876 0 R/Type/Annot/A 42563 0 R/Subtype/Link/Rect[427 550 437 558]/Border[0 0 0]/H/N>> endobj 19332 0 obj <>/P 3876 0 R/Type/Annot/A 42531 0 R/Subtype/Link/Rect[439 550 447 558]/Border[0 0 0]/H/N>> endobj 19333 0 obj <>/P 3876 0 R/Type/Annot/A 42488 0 R/Subtype/Link/Rect[386 530 399 539]/Border[0 0 0]/H/N>> endobj 19334 0 obj <>/P 3876 0 R/Type/Annot/A 36691 0 R/Subtype/Link/Rect[400 530 408 538]/Border[0 0 0]/H/N>> endobj 19335 0 obj <>/P 3876 0 R/Type/Annot/A 42395 0 R/Subtype/Link/Rect[414 520 431 529]/Border[0 0 0]/H/N>> endobj 19336 0 obj <>/P 3876 0 R/Type/Annot/A 42372 0 R/Subtype/Link/Rect[432 520 444 528]/Border[0 0 0]/H/N>> endobj 19337 0 obj <>/P 3876 0 R/Type/Annot/A 38154 0 R/Subtype/Link/Rect[384 510 392 518]/Border[0 0 0]/H/N>> endobj 19338 0 obj <>/P 3876 0 R/Type/Annot/A 35049 0 R/Subtype/Link/Rect[419 500 436 509]/Border[0 0 0]/H/N>> endobj 19339 0 obj <>/P 3876 0 R/Type/Annot/A 38127 0 R/Subtype/Link/Rect[436 500 448 508]/Border[0 0 0]/H/N>> endobj 19340 0 obj <>/P 3876 0 R/Type/Annot/A 42218 0 R/Subtype/Link/Rect[393 490 403 498]/Border[0 0 0]/H/N>> endobj 19341 0 obj <>/P 3876 0 R/Type/Annot/A 21967 0 R/Subtype/Link/Rect[405 490 419 498]/Border[0 0 0]/H/N>> endobj 19342 0 obj <>/P 3876 0 R/Type/Annot/A 33627 0 R/Subtype/Link/Rect[421 490 433 498]/Border[0 0 0]/H/N>> endobj 19343 0 obj <>/P 3876 0 R/Type/Annot/A 42072 0 R/Subtype/Link/Rect[415 480 421 488]/Border[0 0 0]/H/N>> endobj 19344 0 obj <>/P 3876 0 R/Type/Annot/A 42040 0 R/Subtype/Link/Rect[423 480 437 488]/Border[0 0 0]/H/N>> endobj 19345 0 obj <>/P 3876 0 R/Type/Annot/A 41995 0 R/Subtype/Link/Rect[439 480 453 488]/Border[0 0 0]/H/N>> endobj 19346 0 obj <>/P 3876 0 R/Type/Annot/A 41957 0 R/Subtype/Link/Rect[455 480 469 488]/Border[0 0 0]/H/N>> endobj 19347 0 obj <>/P 3876 0 R/Type/Annot/A 19470 0 R/Subtype/Link/Rect[471 480 483 488]/Border[0 0 0]/H/N>> endobj 19348 0 obj <>/P 3876 0 R/Type/Annot/A 41883 0 R/Subtype/Link/Rect[398 470 410 478]/Border[0 0 0]/H/N>> endobj 19349 0 obj <>/P 3876 0 R/Type/Annot/A 41838 0 R/Subtype/Link/Rect[410 460 424 468]/Border[0 0 0]/H/N>> endobj 19350 0 obj <>/P 3876 0 R/Type/Annot/A 19629 0 R/Subtype/Link/Rect[426 460 440 468]/Border[0 0 0]/H/N>> endobj 19351 0 obj <>/P 3876 0 R/Type/Annot/A 41732 0 R/Subtype/Link/Rect[442 460 454 468]/Border[0 0 0]/H/N>> endobj 19352 0 obj <>/P 3876 0 R/Type/Annot/A 30290 0 R/Subtype/Link/Rect[398 450 410 458]/Border[0 0 0]/H/N>> endobj 19353 0 obj <>/P 3876 0 R/Type/Annot/A 30263 0 R/Subtype/Link/Rect[410 440 416 448]/Border[0 0 0]/H/N>> endobj 19354 0 obj <>/P 3876 0 R/Type/Annot/A 41600 0 R/Subtype/Link/Rect[418 440 432 448]/Border[0 0 0]/H/N>> endobj 19355 0 obj <>/P 3876 0 R/Type/Annot/A 41557 0 R/Subtype/Link/Rect[434 440 446 448]/Border[0 0 0]/H/N>> endobj 19356 0 obj <>/P 3876 0 R/Type/Annot/A 19611 0 R/Subtype/Link/Rect[398 430 410 438]/Border[0 0 0]/H/N>> endobj 19357 0 obj <>/P 3876 0 R/Type/Annot/A 41468 0 R/Subtype/Link/Rect[393 420 403 428]/Border[0 0 0]/H/N>> endobj 19358 0 obj <>/P 3876 0 R/Type/Annot/A 41434 0 R/Subtype/Link/Rect[405 420 417 428]/Border[0 0 0]/H/N>> endobj 19359 0 obj <>/P 3876 0 R/Type/Annot/A 41414 0 R/Subtype/Link/Rect[388 410 400 418]/Border[0 0 0]/H/N>> endobj 19360 0 obj <>/P 3876 0 R/Type/Annot/A 41345 0 R/Subtype/Link/Rect[425 400 437 408]/Border[0 0 0]/H/N>> endobj 19361 0 obj <>/P 3876 0 R/Type/Annot/A 41320 0 R/Subtype/Link/Rect[406 390 419 399]/Border[0 0 0]/H/N>> endobj 19362 0 obj <>/P 3876 0 R/Type/Annot/A 29162 0 R/Subtype/Link/Rect[419 390 429 398]/Border[0 0 0]/H/N>> endobj 19363 0 obj <>/P 3876 0 R/Type/Annot/A 19591 0 R/Subtype/Link/Rect[431 390 445 398]/Border[0 0 0]/H/N>> endobj 19364 0 obj <>/P 3876 0 R/Type/Annot/A 29083 0 R/Subtype/Link/Rect[447 390 464 399]/Border[0 0 0]/H/N>> endobj 19365 0 obj <>/P 3876 0 R/Type/Annot/A 19583 0 R/Subtype/Link/Rect[465 390 477 398]/Border[0 0 0]/H/N>> endobj 19366 0 obj <>/P 3876 0 R/Type/Annot/A 28520 0 R/Subtype/Link/Rect[406 380 420 388]/Border[0 0 0]/H/N>> endobj 19367 0 obj <>/P 3876 0 R/Type/Annot/A 28502 0 R/Subtype/Link/Rect[422 380 434 388]/Border[0 0 0]/H/N>> endobj 19368 0 obj <>/P 3876 0 R/Type/Annot/A 19572 0 R/Subtype/Link/Rect[421 370 433 378]/Border[0 0 0]/H/N>> endobj 19369 0 obj <>/P 3876 0 R/Type/Annot/A 28418 0 R/Subtype/Link/Rect[416 360 428 368]/Border[0 0 0]/H/N>> endobj 19370 0 obj <>/P 3876 0 R/Type/Annot/A 28365 0 R/Subtype/Link/Rect[444 350 456 358]/Border[0 0 0]/H/N>> endobj 19371 0 obj <>/P 3876 0 R/Type/Annot/A 19563 0 R/Subtype/Link/Rect[420 340 437 349]/Border[0 0 0]/H/N>> endobj 19372 0 obj <>/P 3876 0 R/Type/Annot/A 27596 0 R/Subtype/Link/Rect[438 340 450 348]/Border[0 0 0]/H/N>> endobj 19373 0 obj <>/P 3876 0 R/Type/Annot/A 19555 0 R/Subtype/Link/Rect[411 330 417 338]/Border[0 0 0]/H/N>> endobj 19374 0 obj <>/P 3876 0 R/Type/Annot/A 19551 0 R/Subtype/Link/Rect[419 330 429 338]/Border[0 0 0]/H/N>> endobj 19375 0 obj <>/P 3876 0 R/Type/Annot/A 26929 0 R/Subtype/Link/Rect[431 330 445 338]/Border[0 0 0]/H/N>> endobj 19376 0 obj <>/P 3876 0 R/Type/Annot/A 19544 0 R/Subtype/Link/Rect[447 330 463 339]/Border[0 0 0]/H/N>> endobj 19377 0 obj <>/P 3876 0 R/Type/Annot/A 22001 0 R/Subtype/Link/Rect[464 330 478 338]/Border[0 0 0]/H/N>> endobj 19378 0 obj <>/P 3876 0 R/Type/Annot/A 25939 0 R/Subtype/Link/Rect[480 330 494 338]/Border[0 0 0]/H/N>> endobj 19379 0 obj <>/P 3876 0 R/Type/Annot/A 19530 0 R/Subtype/Link/Rect[496 330 510 338]/Border[0 0 0]/H/N>> endobj 19380 0 obj <>/P 3876 0 R/Type/Annot/A 19526 0 R/Subtype/Link/Rect[359 320 376 329]/Border[0 0 0]/H/N>> endobj 19381 0 obj <>/P 3876 0 R/Type/Annot/A 25822 0 R/Subtype/Link/Rect[377 320 389 329]/Border[0 0 0]/H/N>> endobj 19382 0 obj <>/P 3876 0 R/Type/Annot/A 25003 0 R/Subtype/Link/Rect[440 310 456 319]/Border[0 0 0]/H/N>> endobj 19383 0 obj <>/P 3876 0 R/Type/Annot/A 19513 0 R/Subtype/Link/Rect[457 310 471 319]/Border[0 0 0]/H/N>> endobj 19384 0 obj <>/P 3876 0 R/Type/Annot/A 19509 0 R/Subtype/Link/Rect[473 310 485 319]/Border[0 0 0]/H/N>> endobj 19385 0 obj <>/P 3876 0 R/Type/Annot/A 19505 0 R/Subtype/Link/Rect[425 300 442 309]/Border[0 0 0]/H/N>> endobj 19386 0 obj <>/P 3876 0 R/Type/Annot/A 19501 0 R/Subtype/Link/Rect[442 300 454 309]/Border[0 0 0]/H/N>> endobj 19387 0 obj <>/P 3876 0 R/Type/Annot/A 23413 0 R/Subtype/Link/Rect[411 290 423 299]/Border[0 0 0]/H/N>> endobj 19388 0 obj <>/P 3876 0 R/Type/Annot/A 23358 0 R/Subtype/Link/Rect[392 280 406 289]/Border[0 0 0]/H/N>> endobj 19389 0 obj <>/P 3876 0 R/Type/Annot/A 22654 0 R/Subtype/Link/Rect[408 280 420 289]/Border[0 0 0]/H/N>> endobj 19390 0 obj <>/P 3876 0 R/Type/Annot/A 19488 0 R/Subtype/Link/Rect[420 270 437 279]/Border[0 0 0]/H/N>> endobj 19391 0 obj <>/P 3876 0 R/Type/Annot/A 19485 0 R/Subtype/Link/Rect[438 270 450 279]/Border[0 0 0]/H/N>> endobj 19392 0 obj <>/P 3876 0 R/Type/Annot/A 21972 0 R/Subtype/Link/Rect[411 260 421 269]/Border[0 0 0]/H/N>> endobj 19393 0 obj <>/P 3876 0 R/Type/Annot/A 21427 0 R/Subtype/Link/Rect[423 260 439 269]/Border[0 0 0]/H/N>> endobj 19394 0 obj <>/P 3876 0 R/Type/Annot/A 21385 0 R/Subtype/Link/Rect[440 260 452 269]/Border[0 0 0]/H/N>> endobj 19395 0 obj <>/P 3876 0 R/Type/Annot/A 19473 0 R/Subtype/Link/Rect[416 250 428 259]/Border[0 0 0]/H/N>> endobj 19396 0 obj <>/P 3876 0 R/Type/Annot/A 20553 0 R/Subtype/Link/Rect[435 240 447 249]/Border[0 0 0]/H/N>> endobj 19397 0 obj <>/P 3876 0 R/Type/Annot/A 19469 0 R/Subtype/Link/Rect[416 230 428 239]/Border[0 0 0]/H/N>> endobj 19398 0 obj <>/P 3876 0 R/Type/Annot/A 20099 0 R/Subtype/Link/Rect[401 220 413 229]/Border[0 0 0]/H/N>> endobj 19399 0 obj <>/P 3876 0 R/Type/Annot/A 19466 0 R/Subtype/Link/Rect[388 210 402 219]/Border[0 0 0]/H/N>> endobj 19400 0 obj <>/P 3876 0 R/Type/Annot/A 19464 0 R/Subtype/Link/Rect[404 210 416 219]/Border[0 0 0]/H/N>> endobj 19401 0 obj <>/P 3876 0 R/Type/Annot/A 31823 0 R/Subtype/Link/Rect[407 200 421 209]/Border[0 0 0]/H/N>> endobj 19402 0 obj <>/P 3876 0 R/Type/Annot/A 19628 0 R/Subtype/Link/Rect[423 200 437 209]/Border[0 0 0]/H/N>> endobj 19403 0 obj <>/P 3876 0 R/Type/Annot/A 19625 0 R/Subtype/Link/Rect[439 200 453 209]/Border[0 0 0]/H/N>> endobj 19404 0 obj <>/P 3876 0 R/Type/Annot/A 19622 0 R/Subtype/Link/Rect[455 200 469 209]/Border[0 0 0]/H/N>> endobj 19405 0 obj <>/P 3876 0 R/Type/Annot/A 19619 0 R/Subtype/Link/Rect[471 200 483 209]/Border[0 0 0]/H/N>> endobj 19406 0 obj <>/P 3876 0 R/Type/Annot/A 30267 0 R/Subtype/Link/Rect[374 190 386 199]/Border[0 0 0]/H/N>> endobj 19407 0 obj <>/P 3876 0 R/Type/Annot/A 30239 0 R/Subtype/Link/Rect[417 180 427 189]/Border[0 0 0]/H/N>> endobj 19408 0 obj <>/P 3876 0 R/Type/Annot/A 19610 0 R/Subtype/Link/Rect[429 180 443 189]/Border[0 0 0]/H/N>> endobj 19409 0 obj <>/P 3876 0 R/Type/Annot/A 30149 0 R/Subtype/Link/Rect[445 180 459 189]/Border[0 0 0]/H/N>> endobj 19410 0 obj <>/P 3876 0 R/Type/Annot/A 19605 0 R/Subtype/Link/Rect[461 180 473 189]/Border[0 0 0]/H/N>> endobj 19411 0 obj <>/P 3876 0 R/Type/Annot/A 30063 0 R/Subtype/Link/Rect[396 170 408 179]/Border[0 0 0]/H/N>> endobj 19412 0 obj <>/P 3876 0 R/Type/Annot/A 29315 0 R/Subtype/Link/Rect[409 170 419 179]/Border[0 0 0]/H/N>> endobj 19413 0 obj <>/P 3876 0 R/Type/Annot/A 29272 0 R/Subtype/Link/Rect[421 170 431 179]/Border[0 0 0]/H/N>> endobj 19414 0 obj <>/P 3876 0 R/Type/Annot/A 29239 0 R/Subtype/Link/Rect[433 170 443 179]/Border[0 0 0]/H/N>> endobj 19415 0 obj <>/P 3876 0 R/Type/Annot/A 29200 0 R/Subtype/Link/Rect[445 170 457 179]/Border[0 0 0]/H/N>> endobj 19416 0 obj <>/P 3876 0 R/Type/Annot/A 19588 0 R/Subtype/Link/Rect[458 170 468 179]/Border[0 0 0]/H/N>> endobj 19417 0 obj <>/P 3876 0 R/Type/Annot/A 19584 0 R/Subtype/Link/Rect[470 170 480 179]/Border[0 0 0]/H/N>> endobj 19418 0 obj <>/P 3876 0 R/Type/Annot/A 29077 0 R/Subtype/Link/Rect[482 170 492 179]/Border[0 0 0]/H/N>> endobj 19419 0 obj <>/P 3876 0 R/Type/Annot/A 28558 0 R/Subtype/Link/Rect[494 170 504 179]/Border[0 0 0]/H/N>> endobj 19420 0 obj <>/P 3876 0 R/Type/Annot/A 19573 0 R/Subtype/Link/Rect[359 160 373 169]/Border[0 0 0]/H/N>> endobj 19421 0 obj <>/P 3876 0 R/Type/Annot/A 28495 0 R/Subtype/Link/Rect[375 160 389 169]/Border[0 0 0]/H/N>> endobj 19422 0 obj <>/P 3876 0 R/Type/Annot/A 19566 0 R/Subtype/Link/Rect[391 160 405 169]/Border[0 0 0]/H/N>> endobj 19423 0 obj <>/P 3876 0 R/Type/Annot/A 28408 0 R/Subtype/Link/Rect[407 160 421 169]/Border[0 0 0]/H/N>> endobj 19424 0 obj <>/P 3876 0 R/Type/Annot/A 28363 0 R/Subtype/Link/Rect[423 160 437 169]/Border[0 0 0]/H/N>> endobj 19425 0 obj <>/P 3876 0 R/Type/Annot/A 19556 0 R/Subtype/Link/Rect[439 160 453 169]/Border[0 0 0]/H/N>> endobj 19426 0 obj <>/P 3876 0 R/Type/Annot/A 27592 0 R/Subtype/Link/Rect[455 160 469 169]/Border[0 0 0]/H/N>> endobj 19427 0 obj <>/P 3876 0 R/Type/Annot/A 27560 0 R/Subtype/Link/Rect[471 160 485 169]/Border[0 0 0]/H/N>> endobj 19428 0 obj <>/P 3876 0 R/Type/Annot/A 26972 0 R/Subtype/Link/Rect[487 160 504 169]/Border[0 0 0]/H/N>> endobj 19429 0 obj <>/P 3876 0 R/Type/Annot/A 19539 0 R/Subtype/Link/Rect[504 160 518 169]/Border[0 0 0]/H/N>> endobj 19430 0 obj <>/P 3876 0 R/Type/Annot/A 19535 0 R/Subtype/Link/Rect[359 150 376 159]/Border[0 0 0]/H/N>> endobj 19431 0 obj <>/P 3876 0 R/Type/Annot/A 26468 0 R/Subtype/Link/Rect[377 150 391 159]/Border[0 0 0]/H/N>> endobj 19432 0 obj <>/P 3876 0 R/Type/Annot/A 25940 0 R/Subtype/Link/Rect[393 150 409 159]/Border[0 0 0]/H/N>> endobj 19433 0 obj <>/P 3876 0 R/Type/Annot/A 25899 0 R/Subtype/Link/Rect[410 150 424 159]/Border[0 0 0]/H/N>> endobj 19434 0 obj <>/P 3876 0 R/Type/Annot/A 19520 0 R/Subtype/Link/Rect[426 150 443 159]/Border[0 0 0]/H/N>> endobj 19435 0 obj <>/P 3876 0 R/Type/Annot/A 19516 0 R/Subtype/Link/Rect[443 150 457 159]/Border[0 0 0]/H/N>> endobj 19436 0 obj <>/P 3876 0 R/Type/Annot/A 25005 0 R/Subtype/Link/Rect[459 150 476 159]/Border[0 0 0]/H/N>> endobj 19437 0 obj <>/P 3876 0 R/Type/Annot/A 19508 0 R/Subtype/Link/Rect[476 150 490 159]/Border[0 0 0]/H/N>> endobj 19438 0 obj <>/P 3876 0 R/Type/Annot/A 24906 0 R/Subtype/Link/Rect[492 150 506 159]/Border[0 0 0]/H/N>> endobj 19439 0 obj <>/P 3876 0 R/Type/Annot/A 19500 0 R/Subtype/Link/Rect[359 140 373 149]/Border[0 0 0]/H/N>> endobj 19440 0 obj <>/P 3876 0 R/Type/Annot/A 19497 0 R/Subtype/Link/Rect[375 140 392 149]/Border[0 0 0]/H/N>> endobj 19441 0 obj <>/P 3876 0 R/Type/Annot/A 23438 0 R/Subtype/Link/Rect[393 140 407 149]/Border[0 0 0]/H/N>> endobj 19442 0 obj <>/P 3876 0 R/Type/Annot/A 23374 0 R/Subtype/Link/Rect[409 140 425 149]/Border[0 0 0]/H/N>> endobj 19443 0 obj <>/P 3876 0 R/Type/Annot/A 22658 0 R/Subtype/Link/Rect[426 140 440 149]/Border[0 0 0]/H/N>> endobj 19444 0 obj <>/P 3876 0 R/Type/Annot/A 22616 0 R/Subtype/Link/Rect[442 140 459 149]/Border[0 0 0]/H/N>> endobj 19445 0 obj <>/P 3876 0 R/Type/Annot/A 19481 0 R/Subtype/Link/Rect[459 140 473 149]/Border[0 0 0]/H/N>> endobj 19446 0 obj <>/P 3876 0 R/Type/Annot/A 22003 0 R/Subtype/Link/Rect[475 140 489 149]/Border[0 0 0]/H/N>> endobj 19447 0 obj <>/P 3876 0 R/Type/Annot/A 21439 0 R/Subtype/Link/Rect[491 140 505 149]/Border[0 0 0]/H/N>> endobj 19448 0 obj <> endobj 19449 0 obj <> endobj 19450 0 obj <> endobj 19451 0 obj <> endobj 19452 0 obj <> endobj 19453 0 obj <> endobj 19454 0 obj <> endobj 19455 0 obj <> endobj 19456 0 obj <> endobj 19457 0 obj <> endobj 19458 0 obj <> endobj 19459 0 obj <> endobj 19460 0 obj <> endobj 19461 0 obj <> endobj 19462 0 obj <> endobj 19463 0 obj <> endobj 19464 0 obj <> endobj 19465 0 obj <> endobj 19466 0 obj <> endobj 19467 0 obj <> endobj 19468 0 obj <> endobj 19469 0 obj <> endobj 19470 0 obj <> endobj 19471 0 obj <> endobj 19472 0 obj <> endobj 19473 0 obj <> endobj 19474 0 obj <> endobj 19475 0 obj <> endobj 19476 0 obj <> endobj 19477 0 obj <> endobj 19478 0 obj <> endobj 19479 0 obj <> endobj 19480 0 obj <> endobj 19481 0 obj <> endobj 19482 0 obj <> endobj 19483 0 obj <> endobj 19484 0 obj <> endobj 19485 0 obj <> endobj 19486 0 obj <> endobj 19487 0 obj <> endobj 19488 0 obj <> endobj 19489 0 obj <> endobj 19490 0 obj <> endobj 19491 0 obj <> endobj 19492 0 obj <> endobj 19493 0 obj <> endobj 19494 0 obj <> endobj 19495 0 obj <> endobj 19496 0 obj <> endobj 19497 0 obj <> endobj 19498 0 obj <> endobj 19499 0 obj <> endobj 19500 0 obj <> endobj 19501 0 obj <> endobj 19502 0 obj <> endobj 19503 0 obj <> endobj 19504 0 obj <> endobj 19505 0 obj <> endobj 19506 0 obj <> endobj 19507 0 obj <> endobj 19508 0 obj <> endobj 19509 0 obj <> endobj 19510 0 obj <> endobj 19511 0 obj <> endobj 19512 0 obj <> endobj 19513 0 obj <> endobj 19514 0 obj <> endobj 19515 0 obj <> endobj 19516 0 obj <> endobj 19517 0 obj <> endobj 19518 0 obj <> endobj 19519 0 obj <> endobj 19520 0 obj <> endobj 19521 0 obj <> endobj 19522 0 obj <> endobj 19523 0 obj <> endobj 19524 0 obj <> endobj 19525 0 obj <> endobj 19526 0 obj <> endobj 19527 0 obj <> endobj 19528 0 obj <> endobj 19529 0 obj <> endobj 19530 0 obj <> endobj 19531 0 obj <> endobj 19532 0 obj <> endobj 19533 0 obj <> endobj 19534 0 obj <> endobj 19535 0 obj <> endobj 19536 0 obj <> endobj 19537 0 obj <> endobj 19538 0 obj <> endobj 19539 0 obj <> endobj 19540 0 obj <> endobj 19541 0 obj <> endobj 19542 0 obj <> endobj 19543 0 obj <> endobj 19544 0 obj <> endobj 19545 0 obj <> endobj 19546 0 obj <> endobj 19547 0 obj <> endobj 19548 0 obj <> endobj 19549 0 obj <> endobj 19550 0 obj <> endobj 19551 0 obj <> endobj 19552 0 obj <> endobj 19553 0 obj <> endobj 19554 0 obj <> endobj 19555 0 obj <> endobj 19556 0 obj <> endobj 19557 0 obj <> endobj 19558 0 obj <> endobj 19559 0 obj <> endobj 19560 0 obj <> endobj 19561 0 obj <> endobj 19562 0 obj <> endobj 19563 0 obj <> endobj 19564 0 obj <> endobj 19565 0 obj <> endobj 19566 0 obj <> endobj 19567 0 obj <> endobj 19568 0 obj <> endobj 19569 0 obj <> endobj 19570 0 obj <> endobj 19571 0 obj <> endobj 19572 0 obj <> endobj 19573 0 obj <> endobj 19574 0 obj <> endobj 19575 0 obj <> endobj 19576 0 obj <> endobj 19577 0 obj <> endobj 19578 0 obj <> endobj 19579 0 obj <> endobj 19580 0 obj <> endobj 19581 0 obj <> endobj 19582 0 obj <> endobj 19583 0 obj <> endobj 19584 0 obj <> endobj 19585 0 obj <> endobj 19586 0 obj <> endobj 19587 0 obj <> endobj 19588 0 obj <> endobj 19589 0 obj <> endobj 19590 0 obj <> endobj 19591 0 obj <> endobj 19592 0 obj <> endobj 19593 0 obj <> endobj 19594 0 obj <> endobj 19595 0 obj <> endobj 19596 0 obj <> endobj 19597 0 obj <> endobj 19598 0 obj <> endobj 19599 0 obj <> endobj 19600 0 obj <> endobj 19601 0 obj <> endobj 19602 0 obj <> endobj 19603 0 obj <> endobj 19604 0 obj <> endobj 19605 0 obj <> endobj 19606 0 obj <> endobj 19607 0 obj <> endobj 19608 0 obj <> endobj 19609 0 obj <> endobj 19610 0 obj <> endobj 19611 0 obj <> endobj 19612 0 obj <> endobj 19613 0 obj <> endobj 19614 0 obj <> endobj 19615 0 obj <> endobj 19616 0 obj <> endobj 19617 0 obj <> endobj 19618 0 obj <> endobj 19619 0 obj <> endobj 19620 0 obj <> endobj 19621 0 obj <> endobj 19622 0 obj <> endobj 19623 0 obj <> endobj 19624 0 obj <> endobj 19625 0 obj <> endobj 19626 0 obj <> endobj 19627 0 obj <> endobj 19628 0 obj <> endobj 19629 0 obj <> endobj 19630 0 obj <> endobj 19631 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19632 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19633 0 obj <> endobj 19634 0 obj <> stream q /X1 Do Q q endstream endobj 19635 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19636 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19637 0 obj <> stream HWmo8_/bomv[E㽽"-$rNfdQ b+ÙgH>jGѴ__}}y7:9f&Sq"YH֔_8X4XV^lVZmS-XSEwWmh:+&6! g9!&KyzrU.jSsi$?2 f:vd^ͿC Reˢͮr%DX g'r #(2s"Kg3pdQX3|<=VUԧS3O}F<9>zϳ0#IŐw1`u1d] YzZCs$\b"{k] Xk] Yzϵp!PVu1`u1d=Jµ.,BZIŀEŐE\+ ׺k%Z[Gp!Wb"\bջ|.,µ.,BZEŐE\׺׺kZCs"\b"\b"{Uk] Yzϵpp!PVu1d=*µ.4ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d=jµ.,BZMŀEŐE\ ׺k5ZZCs&\b"{Մk]lµ.,_p!Wbqqss^ϣ\`Hy$|]Onw6%;;OM>)}s\TJeܕum]eu{e "J̓۲9=$ )Q[Y}8\oemvîu`q&!I1mSw !_=dǡ b1]-rhr;??. p12q6z O0І%uỬ3&tO`JRvEpeW:ȎF|7yX?gvYJY\8%|obĉ4e^O VVYdeei7L̻ӢO7ac5ry[%tP022n2e3d1PԄxb^ȁɁЌ h N^,& XSԯ" A̘^EP揲hWÐRXj1TÂ#gc<*@ KXKH&-[\,EL$Oy#$i 7tRzȉR K b&n#M\Ź be_S HlrG'NdTSj!IE"e^;d -yUeuWaZ,%7?G-EA$]ЧTÇא䒚I.)}oժ]>K7v C}y5Fs9'p~LɏcC #Hk4“#ض}b/l^7RM"X`#CfcS~WLVTTEApGA%`bBcŖN XAڶ7xew=~ۄ?gov= <|"%Tt1K-ɐHJ⥠6'kKMH6Aז͌ 7Tkl`WܶW0YfnDa$ !'qCh WA# B?7YX޵[O,.bH1 "Ot' u-Xv܇zo`Y#wOtjM8͢X0f %x_Im)ۀ> gJX6z1Ó?N0>9 ~Ŧ^{h/޺bFmja۪u5O8?kg`Hdd+fzqkffe9N1 `%;ng<ڏ 3!Zf@$N!|kᒒy X[ߔ-ˆ8&/34Cdv&WD1h}9nqq!b_6ZIՂm{x "ҁo1kL8Ұ L)^v#Nb2E)C$xVW[)3hcB$X=^=\= n08ȧgN"eU⠊qpl*dݏ 50o|XB^6‡?dW۾OoVv9}ʟkcjth)qM _@cGcKm#FRQMZڏgVq7)%YbZMa1[1Y2eܾ߆&)iK(i~4]6^C1Ϛw聗: i8E 9 f;`np~mlLP1?~$R|}tX4 eF;TĞXi~y;ߓ?N@+^(ak>vJ$ǴPKW)v jj闧H%UVSezn-~ZН3njpxũuOѡ;K^zB "onٟuϙ2Tvbϭ ҅-xwrt'=Vf MqY,hb=6s=jKΛ+<= ɼ{$R\}$XaZUx* |SQ(2ɻ0b\[ؔ04gVDC#|ƀ…ƀ2؄hzӖE%jl #S%f~88jވ2LŒfe}6š̸@/ M;'=Qg[M1$flJ)bc}7mi>ak6pn8rR,ROy{T"+cWN4"Q$\rn=TGIt :͒%Ttxb5Dҫ$@`4 pPuXMgEeϡW6, )H X ԶmJUd~zJpˇcT$8{PH 2@M0>ci` JƢS )R@ʞv Xp8~~ 0B$endstream endobj 19638 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19639 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19640 0 obj <> endobj 19641 0 obj <> endobj 19642 0 obj <> endobj 19643 0 obj <> stream q /X1 Do Q q endstream endobj 19644 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19645 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19646 0 obj <> stream HtWkoH_1Bl 8"!X(9&WwA"RSS쩒=m^t ԛ7o]yBLƩ(:6*jK@=xw\}\^5릭6eVj+Qv]{B5_ylLe UwߖE_5](D=٦6&9ʻ&պ޾+ٞwR~w=@{-6=@}2kR˒`zYD9d(,ŀE0dEzCnb2{a2Vpo{+̽; s #>G}$Xp3>f}'O s S>ܧ}&ϘLp: 3Bk),bZK1dqCwO1` Fh-Ő%g5Bk),CFh-ŀ%bܳCR Y{Z#bܳxVh-ŐS XBk),b),C Vh-ŀ%bܳZC R Y{Z+bܳZZ!KpZkR Y{Z+b {Kh-ŐS Y=ŀ%bܳ:C R Y{Z'bܳ:Z!KpZR Y{Z'bZK1d YkZ!KpZRlEBk),bZK1dqCw,˜ b㽝{ިPWĘy`` \u8Sw5pG/ 8 \&(֘0uYvE[=M; a;IjfvkH e8Cq<ѡ[ΧM~mMel iq.pa[$::<_lef{4$Dd4,Ex~9:W̅TG΅z :_cq#RmcW;iQo: hm/NȺPgad73<5UO`Xu:Y@}H# 0u[8P!a|Sb0 Xn9R8kpWn\~qpM^ =: oQ_aGthhäˆo-_RS^.eԸK=b֎ÃK/}spaboSb].;%[Zo;߿rNi\ZCvlڸw]ێ c8>?4rx GqegaIAY۩`>*q2ڔ]?j?*ڕlg;^LjS?nC3^u- P}"Pt>Pd ORuDV)aݓܤtޓ{vXv=.C\$QX 3z) bsHPrqU޳ؗQjw6A:SW.&Ŀhh=d=*]Pruq;eg+抢Ij) Ś;\.6h(+nPbǡRII%SRI}S@W?bߖdVk{b7|]l{E!5^oP(qEh; F?endstream endobj 19647 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19648 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19649 0 obj <> endobj 19650 0 obj <> stream q /X1 Do Q q endstream endobj 19651 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19652 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19653 0 obj <> stream HWێ8}WQ:l 0 7 ``c`ArZZt_U")dRuH)n?/߼b^&Mb̔FsÎIƾ%,OGw vmrGɾɋur_$lK*U0'+ɧcVϤRm2_(0?LJJ?4WfRp%39O?td'j5HM]R3"y)FQ`$bJ쑉 }mYRKe%>IU\8Ǥ2!1U@Qq(!bTC!P!w!bP`/#`/#`"`"`"`#`#`o"`o"`o"9>Ҭ D$T}"T}ه>@ }"GjCj%(BQHPmC>R$TE6!`V }"GjCՆ>D#JBQHPm;@}ه>@ }ه>DCՆ>D#*BQHPmЇ(}ZE6!`V }"TETՆ>D#*BPjCjЇ(}ZE6M6!*fE6!*f}"TET Ն>D#jBPjCj5Ї(}ZM6PmC>R&TET Ն>@ }"GՄjCj5wH Ї}Ї}CT̾UUi9$/Z|L.xY*0xw YWl}H;{"2*VDYM_}^Hkh)r xnC,x-%ܗswa6oƽ|^2m)=FS\ ꯓ sqŶgqqqsƵ-wZV|JlaNү2p:,΃&ꙁ7;?uoc9/j yǓǝ e m좆f&m~nqm``\xрKVJ).`ly9imOFD& ѕ3/x,.ug1sopf{c+4(&}U&^vWc,J%()(~xv8"؏po-`]ڔb ^{uUJA](Yۢvcm߬B/I[y8аBS?Xl 2ŢXs(l& 8n 1Lklࣉ+#gZP\]Wzult(e֭Ԝ!uc+ fȵ5P&Kd9fx~7rumX/:c_^)CyM^]dMUBVsq1WzK'Q1@vW\aFUU٣(+QLVXnδ]Zh[Kz+A S3t7ͿaP "xSO;f\,ros_[ ˕_UL$BXT!xa<0\Lq33*9ɝ܅ |p%Qnzj`wþB`<+:.%TɅ]7PTGVM-M?9t_U{.٤5{Z ܬ1EbmG{w1bnGc[oPlP 0nT3LL5"/9X tʱNpp{8ZrRna%q˙.ۥ&rSJ狙J^1b$L@ %lN|T;Tw{s Ӿ4{Ln0AUaPҪ|;ơ;W.@v'ISN,C׸?U'XcM92ȧXy$.`8i; a(.^nj ^Iн}>/*{ӀNIcF9:ymy{ԧr쾧t+1ʙBuOd/9(0׶UZޣvi_B_oS:+J? *BC{4q8 SXgZ/Fr;__ԗeO Cxd+H}]9tYeWkZ)~(a Mg[ruvDWZvni̥]4XA;Rk;sb k`:v, ./T{*\_!|qc^uCωQ ɺ~l>-Gj=4lGOlww_PBI#pO ZKendstream endobj 19654 0 obj <>/P 503 0 R/Type/Annot/A 37644 0 R/Subtype/Link/Rect[93.6004028 267.229004 240.287994 286.90799]/Border[0 0 0]/H/N>> endobj 19655 0 obj <> stream q /X1 Do Q q endstream endobj 19656 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19657 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19658 0 obj <> stream HWk۸_A_9${./o~v{1^zmDTJͲRdELM~eMٷD%7vSumiwvzvurgɾ7f.lJ L™ad/|>EW z!3>W_OLxZj)G,Wzw4K>aj,0=6-m?*j׭ugg,RH}N#9>"R_H}A/"%ԗ2Ro&RogaZmIcḇbsX=ƀEcE\+ ḇk%Zp-PVŘc#JµZ9>r$\1"Gk1,µs,B}ZIcE\+ bl(µsX=ƀEcǘc1,µs,B}ZEcE\b Xk1Xȵp-PVḇkZ9>r"\1`Řc#*µs,B}ZEcDŘc1,µsX=+V1`Řc#jµs,B}ZMc"\1"GՄk1Xȵp-ƀEcE\ ḇk5Zp-PVŘc#jµ&Z9Vc"\1NJc̱b&5hϤ&o\+&|_<7lMfmî^QΎ64jS1U>T]mwW_'#BW/TCْanm{aJpe~E{hwz*iiYs)PomAKGWOj ?Z&͌ѳ[#nfSη}h`[-F8îZ><-dɂ\Q&XRy!QfGoWhn(tm7%c= WM{0X뿋`~ sasa0vJC K3H/O̪] 8aLʹсK^EnPq 81ܼ|8>f\~Q2~m7:ja Jy}mOq{삈+Qߴ{y MhA_(oTh |#eU IT:/%BO[V>luv5CU)_ ^w?dVo B 0_o],Q*Q/Axai-ss2ˆ4w G]tP.C줮 yAEBG9)ʣR}Ug=!4nʎ3P./W&x Y'I fuB-Cc6>FYO&ugv%ÈO 08owجvlwX .cSɹ@!f9,-{6/]r[wUO 7<_؟Υ2 |!yL˼T_$J,:=v] {a^~7oo?O0* dYb5 C ѶcnD?$vd ObSP'$P_ZS&0+qW gχ/7f!]NvYL< TJ^I7>fcy4o~qR gڜď&~ѾХ"K YXU ~9v`ZKyO64UW(ez"/pRů,>f_47>Ll-eoH sgru76誤(!de5? ;{/7y~ ~x~TH ϭ~ġPcT H$Ni잇j+]A掼cm\@=_r}?dZ!ݒEm I>r x]{?njt큺Pڅ>VCg *sSNTXr')9?1V ]0w:8--էо͋`}]=ՓK3GV93} L:4[*t؟붂<; iM{kGH&0ÓefvwBl9.qrw/$7}]NVOKPB6h U0] 9NMG' SBQו KR1^nmA~ hhrwyCm"M'0dyeIW83KgE:{~3M͂pl09m>EvUCj\mBћsG g~BCu+{xAsn|؈gj㦷¨3S7 [e67|aXfc^dǽ F?Zx7dռDzk־/_FOJags;m7ԤGIi`XCk8KFbwYTB!:%/M|TLZen/4 _WZT8;>EmEjTlwQzaVb)~kdS }ӥߊ&GGy)\{p]莫B9hMP ]p),Xbe)VXb倕+VXbU(VXbU*V XbUU)VXdD.͒RJ+T `2ro@.R7 Rc`{ T ȽX*^j,{r/5vʽKނK]%5rK]roA.R Rc`[{ T-ȽX*^j,{ r/5vʽKނK]r@.͒@.Rw Rc`;{ TȽX*^j,{r/5vʽKށK]r@.R@.͒@.ͪ⪪\=ҍˣ® GtveUwuX|j^VqǡW?&Eӌɺ~nSM$F螺mq,b?;qCr}-Ly_N|6r;k pt7nkQ?)]tvk'Z\:;יKYԌ*͖\ :5r6. }ܑaWY߅sS2`%Cz0|of;~2ݯ'F' 09wendstream endobj 19659 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19660 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19661 0 obj <> stream q /X1 Do Q q endstream endobj 19662 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19663 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19664 0 obj <> stream HWko_T(kmM8uDʕH;KY|)hQ46ggs><~tvk/^> KbA#Nt$$O?H&`dId5+q:)GNn48+A^^C $:tb*Wmq_yR2~U8L6`-6q2+%Ǒ`wwIXSSet7ziٜLm!۟5& ~ߒ/!Yru\Fwc`1>8 ,c>ʉYBP.w|n Pa=a=a/<a/<a/<a/=a/= a< a< a<>Gcccc#c}=ao<ai!uc#ucwcBT,g,g֍YS-GT, a節#ucBT, a節#ucTպ1@!ucTպ1B{jպ1B{jݘE!=rDnlDn̢|n PjݘEݘEպ1B{jݘE!= Dn PjݘE!= Dn̢jZ7(Dn̢jZ7fQ{OQZ7fQ{OQ(Z֍֍Yލ Q((Z7fQ{OQ(Z֍ Q(Z֍YSDT֍YSDT, aV"ucBT, aV"ucT+պuպ1ٻ1@!ucwc7#I~Wh:uWј0nhD" up9zȖ 2~e~)IѺIl7:lϛ?mJ9`)i\ʼ[3NF+I&icKʾMu& H;]2Y#)S=|^+}}Me[;J/+󋤼gf~"w2-,Ieũi5 r$1GY |E[L#4O8c;q<-d{Ri"VLۘqzAl( <ژS_I1HB(AU5[KDiczOAĜ6zvS#pӠ} )Hأ~GlrXI,Sxߩm3+dI?!WaՇwrߦ/OO'^ƛT <9=?OR1aШ][Ȉ6ODPN.VP)ָ$cX X?T7>?¥u%ku$ɫIL iqTR)?~˂HP͵SjZ8ɧUuݾ"p&ZdaӋlz^|z;W,zaƱn5N1{Gn7-ɮ:)MB)n IAfyL ?~6={-WKDogYd*HRޗ{:)6m!ca/F^d*$BIa.i<[|junჶ-Ls"_g94]TΝ'E/%aYmva&rC  : yd #ľ%34lczOC Ae9hRưn9tD 6ixe~?/=bqʎ]SfwpAE`[(f^9_eT;Hݠ}G3MVψ}}FILgP)LcQuuF8QWCy:#[gxOCי*g:# sj 3/79=GTtPv* zTuMeorDQSr)mDWs C%\2^+;~6z?AZm^& 1d1 R'!0hZendstream endobj 19665 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19666 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19667 0 obj <> endobj 19668 0 obj <> endobj 19669 0 obj <> stream q /X1 Do Q q endstream endobj 19670 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19671 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19672 0 obj <> stream HWms_q'Б!_f"KI:NL>X DmUǓ=$!ϳR;zooq=ޝӟ\7ɿ2Tm fިM~S$W'Z-TrKlo6MXn1U"9Q%gurZ+I*5UW^%iYIyG{ZyUOUg9#抪|Lmsܵj<}S+mVf榹ݶaw:zѻ!t)Q_V}J-2p^* L>$sN8:1b8YZKÈ{ZXd7½po{+[ w½p{/{ }}} ܗ} ܗ} ܗ}W}W}p{Y J˱Ub@k9F,cZ1bI#tϱ{ZZ1bcZ1bcEk h-" cEk h-Lj܋ZEh-Lj܋Z 5[%cĒ9Y#t1bI,Z #p/ZkAk9Y#p/ZkAk9F,^ւr,@k9F,^ւrXhXdrXh{Z Z˱U@k9F,cZ1bI#tϱ{ZZ1bcZ1bcEkh-" cEkh-Lj܋:ZEh-Lj܋:Z u[%cĒ9Y#t1b꫊ETmD: %rB-'6Osf̙27b27Pͪ}ZŽF ؘ>3آ7֏}dT2?*(q"syU'>ClrĦa20v;Q馛eY~i:·zvjQۛVblۙ^!Cg`HNۺ̎غMӉz̎(>XolVL6^g#x&NoNt*2}i$ym057B}~vFsgkJݼ3?X>g)6G^xx#j,b=jr3Bm8QqNT~9Q/w3&+˾n#>'qyN6ׯu̚`xf3{vjq @Ko6 a ,d$R`wF6jr"-ϐlvX'itatV_7UY87ɽ%@1ZȂ/9pଜ*S4k_:%4\CXǸB>(6z صiZS#K ?޸ Bs4%<! l?Ɨ)nciil{M5Z7SQYd3ajo \ՒL5tDr̆dT*a׮p97*<~C+u=ۦ7FT9q M3w4RH lcC Kάw~ʄW*M$?~8G4y6zJ98 2*8]\qk[iejdb.;KRUkȷ~U?tKM\{*1&mk R:{MOuTwctXP'UI >,uCnDB a~qm})TN uXf(@'5:N1ݡ"֨maLrK#.fZ9uq(h-n=Mzh QB+]Y"5OX]>{pɬ1*MކL8HY98 %:U0J'Zb9$DРY,h~a>hbIIf-0 #觸 os}&!%o_&8bު@f[lLrT޽HY)8D ͦ$LS 6͐8aoxk?k60ZoULB( NT+B;f-N]Q;/m 9A&GQXc s7]S}B3kCA5K׮ jzAZT0"[d[ y7- ! jmR*LʡaFУSRz P hl%&x~AXɱ ck&Eg }ğt&2ݾr|pm :{͐ +NvrPg1NIkJe_pJ} ʄ\R睁XΉZI"|pe!hBEH0T|՛y 2endstream endobj 19673 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19674 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19675 0 obj <> endobj 19676 0 obj <> endobj 19677 0 obj <> endobj 19678 0 obj <> endobj 19679 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 19680 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 19681 0 obj <> endobj 19682 0 obj <> stream q /X1 Do Q q endstream endobj 19683 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 19684 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 19685 0 obj <> stream HWnH}W (t/@IY1مghd9aƲ&oŦ"`0tP:]uNUbeO}qq/B"0J͌WYU6.8RVj^\ljlS$r[S$TET+ զ6@Mm"gjSj%(B QLPmjC>S$Tօ"TOm"TOm٧6@Mm"gUjSj(B QLPmjC>S"TE6!`VMm"gUjSզ6D3*B QLPmj[PmjCT>PmjCT>!*gE6!`VMm"gՄjSզ6D3jB QLPmjԆ(}ZM6!`VMm"TET զ6D3jBm]B Q9(B Q9Ԇ}(Cq?yUV`Uo Jˬ㺘:>T*>kmi~>[\n9;x" Y~^DZ]CQ`b6Q>MG1?E6m}sh'8 Kͬj_5.a7' T|vjɡb<1d 1x&^X\{9>'3!r:y{rw~LFن9jB-6܃>=poq yukܶdm (Wy>4[}SAg5.GtH3+pwY@h_ǔ>`G۲[=Vmk8ϔDmU@·ߞ_ GZ蓑iW~uGDj>EYŻloֿߕr uy{׫jb x%X;n'oB.x1D,jL?w59Rrv2݊Y:#L_|!`|ĜVے5qAwÞ>%mӨIc~c^~mtܞʅYzafq6 F+mt#}ً=3.SʡkϬ;ΎvY׋+]hܒa1nxn3^Z'řڬpAp{w߫ flȶ񸢫~&n'`TmSMp轷:gC*d.U {Ww4S;כ!`qV?s:v}3bGoN {=דL 3*4  X<O &{08"q-UdG;g'9&T\ԓb2dGed&IWOOGc sʾ b(9 2j+;]gQAA]\]Ջ54֪'`S(SvPagWxJv}]Sm7wߪ+b ~6nY,;>4(-9S{߮jpcZSжޛS^mqA]_,K/Nbb%! E.vvhS==A9U]}Tj|ء$L!߃T3+lN̉MIQuss._/͈3$3vd*7N.>#f(k7j߹J(=FdϩDNz=,b1Xn 0tWP@83C'iaeZ@za5>S|)U.cT͍-lw>i'+-]E&쿭N-.~mk 8ZL1Kt9'vyLxiiT72˴bhq~iE(3 `~:ƫs| 'e{PtM 'ݤ!ϧryo8Uf=֕rk~Xti#مd]h#wXCU掖Ox~ׅHuAN:6EdL<*y_,Hit\F`n0mzxVl8w2`=^sp\ љPוBت ~9bXh&dNV,Y hԴtqyZx5$qF{#|%@u4j=Hz;"Q@WgTx=nNK4!qڛ0ʥ3r)$wr<.  [80$Wf&qϭ'6^VF_&3OYZG0Y.Tf0=\#$yi\G0ËJK4`G9Q%3G=|y]>{Q2NتiB:DlWZ Siyofȿꡀ`zDT*ZJ)fR[RJEYQPgKxmB2a`\ j7gI s&x&jf.ZC3gg$(WਅK[ LrC֗B1^$MSt9,VqLp_R@w888c8IB+z m،/:}칎KˈuᓚB+b]<x "A2MlRG:5I*= ̀^`F=x/~[]'|"endstream endobj 19686 0 obj <>/P 13192 0 R/Type/Annot/A 43754 0 R/Subtype/Link/Rect[202 670 214 678]/Border[0 0 0]/H/N>> endobj 19687 0 obj <>/P 13192 0 R/Type/Annot/A 20017 0 R/Subtype/Link/Rect[193 660 205 668]/Border[0 0 0]/H/N>> endobj 19688 0 obj <>/P 13192 0 R/Type/Annot/A 43684 0 R/Subtype/Link/Rect[193 650 205 658]/Border[0 0 0]/H/N>> endobj 19689 0 obj <>/P 13192 0 R/Type/Annot/A 20010 0 R/Subtype/Link/Rect[202 640 214 648]/Border[0 0 0]/H/N>> endobj 19690 0 obj <>/P 13192 0 R/Type/Annot/A 43603 0 R/Subtype/Link/Rect[190 630 202 638]/Border[0 0 0]/H/N>> endobj 19691 0 obj <>/P 13192 0 R/Type/Annot/A 43553 0 R/Subtype/Link/Rect[183 620 195 628]/Border[0 0 0]/H/N>> endobj 19692 0 obj <>/P 13192 0 R/Type/Annot/A 43526 0 R/Subtype/Link/Rect[183 610 195 618]/Border[0 0 0]/H/N>> endobj 19693 0 obj <>/P 13192 0 R/Type/Annot/A 43488 0 R/Subtype/Link/Rect[193 600 207 608]/Border[0 0 0]/H/N>> endobj 19694 0 obj <>/P 13192 0 R/Type/Annot/A 43455 0 R/Subtype/Link/Rect[209 600 223 608]/Border[0 0 0]/H/N>> endobj 19695 0 obj <>/P 13192 0 R/Type/Annot/A 43422 0 R/Subtype/Link/Rect[225 600 239 608]/Border[0 0 0]/H/N>> endobj 19696 0 obj <>/P 13192 0 R/Type/Annot/A 43374 0 R/Subtype/Link/Rect[241 600 253 608]/Border[0 0 0]/H/N>> endobj 19697 0 obj <>/P 13192 0 R/Type/Annot/A 43343 0 R/Subtype/Link/Rect[193 590 209 599]/Border[0 0 0]/H/N>> endobj 19698 0 obj <>/P 13192 0 R/Type/Annot/A 43284 0 R/Subtype/Link/Rect[210 590 224 598]/Border[0 0 0]/H/N>> endobj 19699 0 obj <>/P 13192 0 R/Type/Annot/A 43248 0 R/Subtype/Link/Rect[226 590 238 598]/Border[0 0 0]/H/N>> endobj 19700 0 obj <>/P 13192 0 R/Type/Annot/A 43188 0 R/Subtype/Link/Rect[202 580 214 588]/Border[0 0 0]/H/N>> endobj 19701 0 obj <>/P 13192 0 R/Type/Annot/A 43168 0 R/Subtype/Link/Rect[207 570 219 578]/Border[0 0 0]/H/N>> endobj 19702 0 obj <>/P 13192 0 R/Type/Annot/A 43133 0 R/Subtype/Link/Rect[197 560 209 568]/Border[0 0 0]/H/N>> endobj 19703 0 obj <>/P 13192 0 R/Type/Annot/A 43104 0 R/Subtype/Link/Rect[188 527 204 536]/Border[0 0 0]/H/N>> endobj 19704 0 obj <>/P 13192 0 R/Type/Annot/A 43057 0 R/Subtype/Link/Rect[205 527 219 535]/Border[0 0 0]/H/N>> endobj 19705 0 obj <>/P 13192 0 R/Type/Annot/A 43003 0 R/Subtype/Link/Rect[221 527 238 536]/Border[0 0 0]/H/N>> endobj 19706 0 obj <>/P 13192 0 R/Type/Annot/A 42982 0 R/Subtype/Link/Rect[238 527 252 535]/Border[0 0 0]/H/N>> endobj 19707 0 obj <>/P 13192 0 R/Type/Annot/A 42933 0 R/Subtype/Link/Rect[254 527 268 535]/Border[0 0 0]/H/N>> endobj 19708 0 obj <>/P 13192 0 R/Type/Annot/A 42915 0 R/Subtype/Link/Rect[270 527 284 535]/Border[0 0 0]/H/N>> endobj 19709 0 obj <>/P 13192 0 R/Type/Annot/A 42868 0 R/Subtype/Link/Rect[286 527 300 535]/Border[0 0 0]/H/N>> endobj 19710 0 obj <>/P 13192 0 R/Type/Annot/A 42846 0 R/Subtype/Link/Rect[151 517 165 525]/Border[0 0 0]/H/N>> endobj 19711 0 obj <>/P 13192 0 R/Type/Annot/A 42798 0 R/Subtype/Link/Rect[167 517 181 525]/Border[0 0 0]/H/N>> endobj 19712 0 obj <>/P 13192 0 R/Type/Annot/A 42760 0 R/Subtype/Link/Rect[183 517 200 526]/Border[0 0 0]/H/N>> endobj 19713 0 obj <>/P 13192 0 R/Type/Annot/A 42728 0 R/Subtype/Link/Rect[201 517 215 525]/Border[0 0 0]/H/N>> endobj 19714 0 obj <>/P 13192 0 R/Type/Annot/A 42687 0 R/Subtype/Link/Rect[217 517 231 525]/Border[0 0 0]/H/N>> endobj 19715 0 obj <>/P 13192 0 R/Type/Annot/A 42652 0 R/Subtype/Link/Rect[233 517 247 525]/Border[0 0 0]/H/N>> endobj 19716 0 obj <>/P 13192 0 R/Type/Annot/A 42606 0 R/Subtype/Link/Rect[249 517 265 526]/Border[0 0 0]/H/N>> endobj 19717 0 obj <>/P 13192 0 R/Type/Annot/A 42574 0 R/Subtype/Link/Rect[266 517 280 525]/Border[0 0 0]/H/N>> endobj 19718 0 obj <>/P 13192 0 R/Type/Annot/A 42548 0 R/Subtype/Link/Rect[282 517 296 525]/Border[0 0 0]/H/N>> endobj 19719 0 obj <>/P 13192 0 R/Type/Annot/A 42499 0 R/Subtype/Link/Rect[151 507 168 516]/Border[0 0 0]/H/N>> endobj 19720 0 obj <>/P 13192 0 R/Type/Annot/A 42466 0 R/Subtype/Link/Rect[169 507 183 515]/Border[0 0 0]/H/N>> endobj 19721 0 obj <>/P 13192 0 R/Type/Annot/A 42416 0 R/Subtype/Link/Rect[185 507 199 515]/Border[0 0 0]/H/N>> endobj 19722 0 obj <>/P 13192 0 R/Type/Annot/A 42380 0 R/Subtype/Link/Rect[201 507 215 515]/Border[0 0 0]/H/N>> endobj 19723 0 obj <>/P 13192 0 R/Type/Annot/A 42759 0 R/Subtype/Link/Rect[217 507 233 516]/Border[0 0 0]/H/N>> endobj 19724 0 obj <>/P 13192 0 R/Type/Annot/A 42322 0 R/Subtype/Link/Rect[234 507 248 515]/Border[0 0 0]/H/N>> endobj 19725 0 obj <>/P 13192 0 R/Type/Annot/A 42685 0 R/Subtype/Link/Rect[250 507 264 515]/Border[0 0 0]/H/N>> endobj 19726 0 obj <>/P 13192 0 R/Type/Annot/A 42235 0 R/Subtype/Link/Rect[266 507 280 515]/Border[0 0 0]/H/N>> endobj 19727 0 obj <>/P 13192 0 R/Type/Annot/A 20015 0 R/Subtype/Link/Rect[282 507 296 515]/Border[0 0 0]/H/N>> endobj 19728 0 obj <>/P 13192 0 R/Type/Annot/A 42141 0 R/Subtype/Link/Rect[151 497 165 505]/Border[0 0 0]/H/N>> endobj 19729 0 obj <>/P 13192 0 R/Type/Annot/A 42095 0 R/Subtype/Link/Rect[167 497 181 505]/Border[0 0 0]/H/N>> endobj 19730 0 obj <>/P 13192 0 R/Type/Annot/A 42063 0 R/Subtype/Link/Rect[183 497 195 505]/Border[0 0 0]/H/N>> endobj 19731 0 obj <>/P 13192 0 R/Type/Annot/A 42455 0 R/Subtype/Link/Rect[190 487 202 495]/Border[0 0 0]/H/N>> endobj 19732 0 obj <>/P 13192 0 R/Type/Annot/A 41974 0 R/Subtype/Link/Rect[193 467 205 475]/Border[0 0 0]/H/N>> endobj 19733 0 obj <>/P 13192 0 R/Type/Annot/A 41946 0 R/Subtype/Link/Rect[190 457 202 465]/Border[0 0 0]/H/N>> endobj 19734 0 obj <>/P 13192 0 R/Type/Annot/A 42739 0 R/Subtype/Link/Rect[193 447 205 455]/Border[0 0 0]/H/N>> endobj 19735 0 obj <>/P 13192 0 R/Type/Annot/A 41861 0 R/Subtype/Link/Rect[190 437 202 445]/Border[0 0 0]/H/N>> endobj 19736 0 obj <>/P 13192 0 R/Type/Annot/A 41794 0 R/Subtype/Link/Rect[217 427 231 435]/Border[0 0 0]/H/N>> endobj 19737 0 obj <>/P 13192 0 R/Type/Annot/A 41743 0 R/Subtype/Link/Rect[233 427 247 435]/Border[0 0 0]/H/N>> endobj 19738 0 obj <>/P 13192 0 R/Type/Annot/A 41700 0 R/Subtype/Link/Rect[249 427 263 435]/Border[0 0 0]/H/N>> endobj 19739 0 obj <>/P 13192 0 R/Type/Annot/A 41658 0 R/Subtype/Link/Rect[265 427 279 435]/Border[0 0 0]/H/N>> endobj 19740 0 obj <>/P 13192 0 R/Type/Annot/A 41617 0 R/Subtype/Link/Rect[281 427 295 435]/Border[0 0 0]/H/N>> endobj 19741 0 obj <>/P 13192 0 R/Type/Annot/A 41567 0 R/Subtype/Link/Rect[297 427 311 435]/Border[0 0 0]/H/N>> endobj 19742 0 obj <>/P 13192 0 R/Type/Annot/A 41529 0 R/Subtype/Link/Rect[151 417 165 425]/Border[0 0 0]/H/N>> endobj 19743 0 obj <>/P 13192 0 R/Type/Annot/A 41494 0 R/Subtype/Link/Rect[167 417 179 425]/Border[0 0 0]/H/N>> endobj 19744 0 obj <>/P 13192 0 R/Type/Annot/A 41452 0 R/Subtype/Link/Rect[190 407 204 415]/Border[0 0 0]/H/N>> endobj 19745 0 obj <>/P 13192 0 R/Type/Annot/A 41423 0 R/Subtype/Link/Rect[206 407 218 415]/Border[0 0 0]/H/N>> endobj 19746 0 obj <>/P 13192 0 R/Type/Annot/A 41403 0 R/Subtype/Link/Rect[197 397 214 406]/Border[0 0 0]/H/N>> endobj 19747 0 obj <>/P 13192 0 R/Type/Annot/A 42217 0 R/Subtype/Link/Rect[215 397 229 405]/Border[0 0 0]/H/N>> endobj 19748 0 obj <>/P 13192 0 R/Type/Annot/A 41298 0 R/Subtype/Link/Rect[231 397 245 405]/Border[0 0 0]/H/N>> endobj 19749 0 obj <>/P 13192 0 R/Type/Annot/A 41663 0 R/Subtype/Link/Rect[247 397 259 405]/Border[0 0 0]/H/N>> endobj 19750 0 obj <>/P 13192 0 R/Type/Annot/A 42484 0 R/Subtype/Link/Rect[190 387 202 395]/Border[0 0 0]/H/N>> endobj 19751 0 obj <>/P 13192 0 R/Type/Annot/A 41193 0 R/Subtype/Link/Rect[221 377 238 386]/Border[0 0 0]/H/N>> endobj 19752 0 obj <>/P 13192 0 R/Type/Annot/A 41166 0 R/Subtype/Link/Rect[239 377 253 385]/Border[0 0 0]/H/N>> endobj 19753 0 obj <>/P 13192 0 R/Type/Annot/A 41146 0 R/Subtype/Link/Rect[255 377 269 385]/Border[0 0 0]/H/N>> endobj 19754 0 obj <>/P 13192 0 R/Type/Annot/A 41117 0 R/Subtype/Link/Rect[271 377 285 385]/Border[0 0 0]/H/N>> endobj 19755 0 obj <>/P 13192 0 R/Type/Annot/A 41422 0 R/Subtype/Link/Rect[287 377 301 385]/Border[0 0 0]/H/N>> endobj 19756 0 obj <>/P 13192 0 R/Type/Annot/A 41396 0 R/Subtype/Link/Rect[151 367 165 375]/Border[0 0 0]/H/N>> endobj 19757 0 obj <>/P 13192 0 R/Type/Annot/A 40723 0 R/Subtype/Link/Rect[167 367 181 375]/Border[0 0 0]/H/N>> endobj 19758 0 obj <>/P 13192 0 R/Type/Annot/A 40685 0 R/Subtype/Link/Rect[183 367 197 375]/Border[0 0 0]/H/N>> endobj 19759 0 obj <>/P 13192 0 R/Type/Annot/A 40122 0 R/Subtype/Link/Rect[199 367 211 375]/Border[0 0 0]/H/N>> endobj 19760 0 obj <>/P 13192 0 R/Type/Annot/A 40095 0 R/Subtype/Link/Rect[190 357 204 365]/Border[0 0 0]/H/N>> endobj 19761 0 obj <>/P 13192 0 R/Type/Annot/A 39549 0 R/Subtype/Link/Rect[206 357 218 365]/Border[0 0 0]/H/N>> endobj 19762 0 obj <>/P 13192 0 R/Type/Annot/A 39508 0 R/Subtype/Link/Rect[202 347 214 356]/Border[0 0 0]/H/N>> endobj 19763 0 obj <>/P 13192 0 R/Type/Annot/A 38983 0 R/Subtype/Link/Rect[215 347 225 355]/Border[0 0 0]/H/N>> endobj 19764 0 obj <>/P 13192 0 R/Type/Annot/A 38932 0 R/Subtype/Link/Rect[227 347 237 355]/Border[0 0 0]/H/N>> endobj 19765 0 obj <>/P 13192 0 R/Type/Annot/A 38410 0 R/Subtype/Link/Rect[239 347 249 355]/Border[0 0 0]/H/N>> endobj 19766 0 obj <>/P 13192 0 R/Type/Annot/A 38351 0 R/Subtype/Link/Rect[251 347 268 356]/Border[0 0 0]/H/N>> endobj 19767 0 obj <>/P 13192 0 R/Type/Annot/A 38321 0 R/Subtype/Link/Rect[268 347 282 355]/Border[0 0 0]/H/N>> endobj 19768 0 obj <>/P 13192 0 R/Type/Annot/A 38284 0 R/Subtype/Link/Rect[284 347 298 355]/Border[0 0 0]/H/N>> endobj 19769 0 obj <>/P 13192 0 R/Type/Annot/A 43123 0 R/Subtype/Link/Rect[151 337 165 345]/Border[0 0 0]/H/N>> endobj 19770 0 obj <>/P 13192 0 R/Type/Annot/A 36809 0 R/Subtype/Link/Rect[167 337 184 346]/Border[0 0 0]/H/N>> endobj 19771 0 obj <>/P 13192 0 R/Type/Annot/A 38224 0 R/Subtype/Link/Rect[185 337 199 345]/Border[0 0 0]/H/N>> endobj 19772 0 obj <>/P 13192 0 R/Type/Annot/A 39484 0 R/Subtype/Link/Rect[201 337 215 345]/Border[0 0 0]/H/N>> endobj 19773 0 obj <>/P 13192 0 R/Type/Annot/A 38952 0 R/Subtype/Link/Rect[217 337 231 345]/Border[0 0 0]/H/N>> endobj 19774 0 obj <>/P 13192 0 R/Type/Annot/A 41054 0 R/Subtype/Link/Rect[233 337 247 345]/Border[0 0 0]/H/N>> endobj 19775 0 obj <>/P 13192 0 R/Type/Annot/A 35871 0 R/Subtype/Link/Rect[249 337 263 345]/Border[0 0 0]/H/N>> endobj 19776 0 obj <>/P 13192 0 R/Type/Annot/A 38155 0 R/Subtype/Link/Rect[265 337 279 345]/Border[0 0 0]/H/N>> endobj 19777 0 obj <>/P 13192 0 R/Type/Annot/A 35058 0 R/Subtype/Link/Rect[281 337 295 345]/Border[0 0 0]/H/N>> endobj 19778 0 obj <>/P 13192 0 R/Type/Annot/A 34279 0 R/Subtype/Link/Rect[297 337 311 345]/Border[0 0 0]/H/N>> endobj 19779 0 obj <>/P 13192 0 R/Type/Annot/A 38113 0 R/Subtype/Link/Rect[151 327 168 336]/Border[0 0 0]/H/N>> endobj 19780 0 obj <>/P 13192 0 R/Type/Annot/A 38095 0 R/Subtype/Link/Rect[169 327 183 335]/Border[0 0 0]/H/N>> endobj 19781 0 obj <>/P 13192 0 R/Type/Annot/A 36747 0 R/Subtype/Link/Rect[185 327 199 335]/Border[0 0 0]/H/N>> endobj 19782 0 obj <>/P 13192 0 R/Type/Annot/A 33606 0 R/Subtype/Link/Rect[201 327 215 335]/Border[0 0 0]/H/N>> endobj 19783 0 obj <>/P 13192 0 R/Type/Annot/A 33087 0 R/Subtype/Link/Rect[217 327 231 335]/Border[0 0 0]/H/N>> endobj 19784 0 obj <>/P 13192 0 R/Type/Annot/A 38030 0 R/Subtype/Link/Rect[233 327 249 336]/Border[0 0 0]/H/N>> endobj 19785 0 obj <>/P 13192 0 R/Type/Annot/A 35098 0 R/Subtype/Link/Rect[250 327 264 335]/Border[0 0 0]/H/N>> endobj 19786 0 obj <>/P 13192 0 R/Type/Annot/A 37998 0 R/Subtype/Link/Rect[266 327 283 336]/Border[0 0 0]/H/N>> endobj 19787 0 obj <>/P 13192 0 R/Type/Annot/A 31851 0 R/Subtype/Link/Rect[283 327 297 335]/Border[0 0 0]/H/N>> endobj 19788 0 obj <>/P 13192 0 R/Type/Annot/A 37977 0 R/Subtype/Link/Rect[151 317 165 325]/Border[0 0 0]/H/N>> endobj 19789 0 obj <>/P 13192 0 R/Type/Annot/A 31109 0 R/Subtype/Link/Rect[167 317 181 325]/Border[0 0 0]/H/N>> endobj 19790 0 obj <>/P 13192 0 R/Type/Annot/A 33640 0 R/Subtype/Link/Rect[183 317 197 325]/Border[0 0 0]/H/N>> endobj 19791 0 obj <>/P 13192 0 R/Type/Annot/A 31001 0 R/Subtype/Link/Rect[199 317 211 325]/Border[0 0 0]/H/N>> endobj 19792 0 obj <>/P 13192 0 R/Type/Annot/A 30287 0 R/Subtype/Link/Rect[190 307 202 315]/Border[0 0 0]/H/N>> endobj 19793 0 obj <>/P 13192 0 R/Type/Annot/A 35854 0 R/Subtype/Link/Rect[189 297 201 305]/Border[0 0 0]/H/N>> endobj 19794 0 obj <>/P 13192 0 R/Type/Annot/A 30224 0 R/Subtype/Link/Rect[179 287 191 295]/Border[0 0 0]/H/N>> endobj 19795 0 obj <>/P 13192 0 R/Type/Annot/A 32524 0 R/Subtype/Link/Rect[206 277 216 285]/Border[0 0 0]/H/N>> endobj 19796 0 obj <>/P 13192 0 R/Type/Annot/A 30128 0 R/Subtype/Link/Rect[218 277 230 285]/Border[0 0 0]/H/N>> endobj 19797 0 obj <>/P 13192 0 R/Type/Annot/A 30081 0 R/Subtype/Link/Rect[206 267 214 275]/Border[0 0 0]/H/N>> endobj 19798 0 obj <>/P 13192 0 R/Type/Annot/A 29326 0 R/Subtype/Link/Rect[217 257 231 265]/Border[0 0 0]/H/N>> endobj 19799 0 obj <>/P 13192 0 R/Type/Annot/A 29286 0 R/Subtype/Link/Rect[233 257 245 265]/Border[0 0 0]/H/N>> endobj 19800 0 obj <>/P 13192 0 R/Type/Annot/A 30988 0 R/Subtype/Link/Rect[212 247 228 256]/Border[0 0 0]/H/N>> endobj 19801 0 obj <>/P 13192 0 R/Type/Annot/A 33048 0 R/Subtype/Link/Rect[229 247 241 255]/Border[0 0 0]/H/N>> endobj 19802 0 obj <>/P 13192 0 R/Type/Annot/A 29164 0 R/Subtype/Link/Rect[202 237 214 245]/Border[0 0 0]/H/N>> endobj 19803 0 obj <>/P 13192 0 R/Type/Annot/A 29139 0 R/Subtype/Link/Rect[207 227 219 235]/Border[0 0 0]/H/N>> endobj 19804 0 obj <>/P 13192 0 R/Type/Annot/A 29091 0 R/Subtype/Link/Rect[212 217 224 225]/Border[0 0 0]/H/N>> endobj 19805 0 obj <>/P 13192 0 R/Type/Annot/A 31794 0 R/Subtype/Link/Rect[207 207 219 215]/Border[0 0 0]/H/N>> endobj 19806 0 obj <>/P 13192 0 R/Type/Annot/A 36709 0 R/Subtype/Link/Rect[197 197 209 205]/Border[0 0 0]/H/N>> endobj 19807 0 obj <>/P 13192 0 R/Type/Annot/A 28507 0 R/Subtype/Link/Rect[211 187 219 195]/Border[0 0 0]/H/N>> endobj 19808 0 obj <>/P 13192 0 R/Type/Annot/A 37794 0 R/Subtype/Link/Rect[180 177 194 185]/Border[0 0 0]/H/N>> endobj 19809 0 obj <>/P 13192 0 R/Type/Annot/A 29235 0 R/Subtype/Link/Rect[196 177 208 185]/Border[0 0 0]/H/N>> endobj 19810 0 obj <>/P 13192 0 R/Type/Annot/A 29178 0 R/Subtype/Link/Rect[158 167 168 175]/Border[0 0 0]/H/N>> endobj 19811 0 obj <>/P 13192 0 R/Type/Annot/A 29148 0 R/Subtype/Link/Rect[170 167 182 175]/Border[0 0 0]/H/N>> endobj 19812 0 obj <>/P 13192 0 R/Type/Annot/A 30140 0 R/Subtype/Link/Rect[192 157 202 165]/Border[0 0 0]/H/N>> endobj 19813 0 obj <>/P 13192 0 R/Type/Annot/A 27566 0 R/Subtype/Link/Rect[204 157 218 165]/Border[0 0 0]/H/N>> endobj 19814 0 obj <>/P 13192 0 R/Type/Annot/A 26991 0 R/Subtype/Link/Rect[220 157 234 165]/Border[0 0 0]/H/N>> endobj 19815 0 obj <>/P 13192 0 R/Type/Annot/A 26944 0 R/Subtype/Link/Rect[236 157 250 165]/Border[0 0 0]/H/N>> endobj 19816 0 obj <>/P 13192 0 R/Type/Annot/A 28470 0 R/Subtype/Link/Rect[252 157 264 165]/Border[0 0 0]/H/N>> endobj 19817 0 obj <>/P 13192 0 R/Type/Annot/A 37724 0 R/Subtype/Link/Rect[193 147 205 155]/Border[0 0 0]/H/N>> endobj 19818 0 obj <>/P 13192 0 R/Type/Annot/A 37717 0 R/Subtype/Link/Rect[443 670 457 678]/Border[0 0 0]/H/N>> endobj 19819 0 obj <>/P 13192 0 R/Type/Annot/A 25917 0 R/Subtype/Link/Rect[459 670 473 678]/Border[0 0 0]/H/N>> endobj 19820 0 obj <>/P 13192 0 R/Type/Annot/A 27607 0 R/Subtype/Link/Rect[475 670 492 679]/Border[0 0 0]/H/N>> endobj 19821 0 obj <>/P 13192 0 R/Type/Annot/A 28563 0 R/Subtype/Link/Rect[492 670 506 678]/Border[0 0 0]/H/N>> endobj 19822 0 obj <>/P 13192 0 R/Type/Annot/A 26983 0 R/Subtype/Link/Rect[359 660 371 668]/Border[0 0 0]/H/N>> endobj 19823 0 obj <>/P 13192 0 R/Type/Annot/A 26935 0 R/Subtype/Link/Rect[410 650 422 658]/Border[0 0 0]/H/N>> endobj 19824 0 obj <>/P 13192 0 R/Type/Annot/A 24924 0 R/Subtype/Link/Rect[429 640 446 649]/Border[0 0 0]/H/N>> endobj 19825 0 obj <>/P 13192 0 R/Type/Annot/A 29185 0 R/Subtype/Link/Rect[447 640 459 648]/Border[0 0 0]/H/N>> endobj 19826 0 obj <>/P 13192 0 R/Type/Annot/A 30167 0 R/Subtype/Link/Rect[392 630 406 638]/Border[0 0 0]/H/N>> endobj 19827 0 obj <>/P 13192 0 R/Type/Annot/A 24227 0 R/Subtype/Link/Rect[408 630 420 638]/Border[0 0 0]/H/N>> endobj 19828 0 obj <>/P 13192 0 R/Type/Annot/A 25869 0 R/Subtype/Link/Rect[434 620 446 628]/Border[0 0 0]/H/N>> endobj 19829 0 obj <>/P 13192 0 R/Type/Annot/A 23356 0 R/Subtype/Link/Rect[420 610 436 619]/Border[0 0 0]/H/N>> endobj 19830 0 obj <>/P 13192 0 R/Type/Annot/A 22646 0 R/Subtype/Link/Rect[437 610 449 618]/Border[0 0 0]/H/N>> endobj 19831 0 obj <>/P 13192 0 R/Type/Annot/A 28455 0 R/Subtype/Link/Rect[429 600 446 609]/Border[0 0 0]/H/N>> endobj 19832 0 obj <>/P 13192 0 R/Type/Annot/A 26486 0 R/Subtype/Link/Rect[447 600 459 608]/Border[0 0 0]/H/N>> endobj 19833 0 obj <>/P 13192 0 R/Type/Annot/A 24286 0 R/Subtype/Link/Rect[425 590 441 599]/Border[0 0 0]/H/N>> endobj 19834 0 obj <>/P 13192 0 R/Type/Annot/A 27624 0 R/Subtype/Link/Rect[442 590 456 598]/Border[0 0 0]/H/N>> endobj 19835 0 obj <>/P 13192 0 R/Type/Annot/A 23437 0 R/Subtype/Link/Rect[458 590 470 598]/Border[0 0 0]/H/N>> endobj 19836 0 obj <>/P 13192 0 R/Type/Annot/A 21330 0 R/Subtype/Link/Rect[385 580 399 588]/Border[0 0 0]/H/N>> endobj 19837 0 obj <>/P 13192 0 R/Type/Annot/A 25794 0 R/Subtype/Link/Rect[401 580 413 588]/Border[0 0 0]/H/N>> endobj 19838 0 obj <>/P 13192 0 R/Type/Annot/A 20536 0 R/Subtype/Link/Rect[412 550 424 558]/Border[0 0 0]/H/N>> endobj 19839 0 obj <>/P 13192 0 R/Type/Annot/A 20100 0 R/Subtype/Link/Rect[384 540 398 548]/Border[0 0 0]/H/N>> endobj 19840 0 obj <>/P 13192 0 R/Type/Annot/A 21999 0 R/Subtype/Link/Rect[400 540 414 548]/Border[0 0 0]/H/N>> endobj 19841 0 obj <>/P 13192 0 R/Type/Annot/A 20082 0 R/Subtype/Link/Rect[416 540 433 549]/Border[0 0 0]/H/N>> endobj 19842 0 obj <>/P 13192 0 R/Type/Annot/A 20081 0 R/Subtype/Link/Rect[433 540 447 548]/Border[0 0 0]/H/N>> endobj 19843 0 obj <>/P 13192 0 R/Type/Annot/A 20080 0 R/Subtype/Link/Rect[449 540 463 548]/Border[0 0 0]/H/N>> endobj 19844 0 obj <>/P 13192 0 R/Type/Annot/A 20079 0 R/Subtype/Link/Rect[465 540 479 548]/Border[0 0 0]/H/N>> endobj 19845 0 obj <>/P 13192 0 R/Type/Annot/A 20078 0 R/Subtype/Link/Rect[481 540 498 549]/Border[0 0 0]/H/N>> endobj 19846 0 obj <>/P 13192 0 R/Type/Annot/A 20077 0 R/Subtype/Link/Rect[499 540 511 548]/Border[0 0 0]/H/N>> endobj 19847 0 obj <>/P 13192 0 R/Type/Annot/A 20076 0 R/Subtype/Link/Rect[412 530 426 538]/Border[0 0 0]/H/N>> endobj 19848 0 obj <>/P 13192 0 R/Type/Annot/A 20075 0 R/Subtype/Link/Rect[428 530 444 539]/Border[0 0 0]/H/N>> endobj 19849 0 obj <>/P 13192 0 R/Type/Annot/A 20074 0 R/Subtype/Link/Rect[445 530 459 538]/Border[0 0 0]/H/N>> endobj 19850 0 obj <>/P 13192 0 R/Type/Annot/A 20073 0 R/Subtype/Link/Rect[461 530 475 538]/Border[0 0 0]/H/N>> endobj 19851 0 obj <>/P 13192 0 R/Type/Annot/A 20072 0 R/Subtype/Link/Rect[477 530 491 538]/Border[0 0 0]/H/N>> endobj 19852 0 obj <>/P 13192 0 R/Type/Annot/A 20071 0 R/Subtype/Link/Rect[493 530 507 538]/Border[0 0 0]/H/N>> endobj 19853 0 obj <>/P 13192 0 R/Type/Annot/A 20070 0 R/Subtype/Link/Rect[359 520 373 528]/Border[0 0 0]/H/N>> endobj 19854 0 obj <>/P 13192 0 R/Type/Annot/A 20069 0 R/Subtype/Link/Rect[375 520 389 528]/Border[0 0 0]/H/N>> endobj 19855 0 obj <>/P 13192 0 R/Type/Annot/A 20068 0 R/Subtype/Link/Rect[391 520 403 528]/Border[0 0 0]/H/N>> endobj 19856 0 obj <>/P 13192 0 R/Type/Annot/A 20067 0 R/Subtype/Link/Rect[403 510 417 518]/Border[0 0 0]/H/N>> endobj 19857 0 obj <>/P 13192 0 R/Type/Annot/A 20066 0 R/Subtype/Link/Rect[419 510 431 518]/Border[0 0 0]/H/N>> endobj 19858 0 obj <>/P 13192 0 R/Type/Annot/A 20065 0 R/Subtype/Link/Rect[410 500 424 508]/Border[0 0 0]/H/N>> endobj 19859 0 obj <>/P 13192 0 R/Type/Annot/A 20064 0 R/Subtype/Link/Rect[426 500 438 508]/Border[0 0 0]/H/N>> endobj 19860 0 obj <>/P 13192 0 R/Type/Annot/A 20063 0 R/Subtype/Link/Rect[410 490 424 498]/Border[0 0 0]/H/N>> endobj 19861 0 obj <>/P 13192 0 R/Type/Annot/A 20062 0 R/Subtype/Link/Rect[426 490 438 498]/Border[0 0 0]/H/N>> endobj 19862 0 obj <>/P 13192 0 R/Type/Annot/A 20061 0 R/Subtype/Link/Rect[396 480 408 488]/Border[0 0 0]/H/N>> endobj 19863 0 obj <>/P 13192 0 R/Type/Annot/A 20060 0 R/Subtype/Link/Rect[415 450 423 458]/Border[0 0 0]/H/N>> endobj 19864 0 obj <>/P 13192 0 R/Type/Annot/A 20059 0 R/Subtype/Link/Rect[410 440 422 448]/Border[0 0 0]/H/N>> endobj 19865 0 obj <>/P 13192 0 R/Type/Annot/A 20058 0 R/Subtype/Link/Rect[423 430 431 438]/Border[0 0 0]/H/N>> endobj 19866 0 obj <>/P 13192 0 R/Type/Annot/A 20057 0 R/Subtype/Link/Rect[441 420 458 429]/Border[0 0 0]/H/N>> endobj 19867 0 obj <>/P 13192 0 R/Type/Annot/A 20056 0 R/Subtype/Link/Rect[458 420 472 428]/Border[0 0 0]/H/N>> endobj 19868 0 obj <>/P 13192 0 R/Type/Annot/A 20055 0 R/Subtype/Link/Rect[474 420 491 429]/Border[0 0 0]/H/N>> endobj 19869 0 obj <>/P 13192 0 R/Type/Annot/A 20054 0 R/Subtype/Link/Rect[492 420 504 428]/Border[0 0 0]/H/N>> endobj 19870 0 obj <>/P 13192 0 R/Type/Annot/A 20053 0 R/Subtype/Link/Rect[397 400 409 408]/Border[0 0 0]/H/N>> endobj 19871 0 obj <>/P 13192 0 R/Type/Annot/A 20052 0 R/Subtype/Link/Rect[410 390 422 398]/Border[0 0 0]/H/N>> endobj 19872 0 obj <>/P 13192 0 R/Type/Annot/A 20051 0 R/Subtype/Link/Rect[383 360 391 368]/Border[0 0 0]/H/N>> endobj 19873 0 obj <>/P 13192 0 R/Type/Annot/A 20050 0 R/Subtype/Link/Rect[376 350 390 358]/Border[0 0 0]/H/N>> endobj 19874 0 obj <>/P 13192 0 R/Type/Annot/A 20049 0 R/Subtype/Link/Rect[392 350 404 358]/Border[0 0 0]/H/N>> endobj 19875 0 obj <>/P 13192 0 R/Type/Annot/A 20048 0 R/Subtype/Link/Rect[400 340 410 348]/Border[0 0 0]/H/N>> endobj 19876 0 obj <>/P 13192 0 R/Type/Annot/A 20047 0 R/Subtype/Link/Rect[412 340 424 349]/Border[0 0 0]/H/N>> endobj 19877 0 obj <>/P 13192 0 R/Type/Annot/A 20046 0 R/Subtype/Link/Rect[425 340 433 348]/Border[0 0 0]/H/N>> endobj 19878 0 obj <>/P 13192 0 R/Type/Annot/A 20045 0 R/Subtype/Link/Rect[402 330 414 338]/Border[0 0 0]/H/N>> endobj 19879 0 obj <>/P 13192 0 R/Type/Annot/A 20044 0 R/Subtype/Link/Rect[401 320 409 329]/Border[0 0 0]/H/N>> endobj 19880 0 obj <>/P 13192 0 R/Type/Annot/A 20043 0 R/Subtype/Link/Rect[410 320 420 328]/Border[0 0 0]/H/N>> endobj 19881 0 obj <>/P 13192 0 R/Type/Annot/A 20042 0 R/Subtype/Link/Rect[422 320 435 329]/Border[0 0 0]/H/N>> endobj 19882 0 obj <>/P 13192 0 R/Type/Annot/A 20041 0 R/Subtype/Link/Rect[435 320 445 328]/Border[0 0 0]/H/N>> endobj 19883 0 obj <>/P 13192 0 R/Type/Annot/A 20040 0 R/Subtype/Link/Rect[447 320 457 328]/Border[0 0 0]/H/N>> endobj 19884 0 obj <>/P 13192 0 R/Type/Annot/A 20039 0 R/Subtype/Link/Rect[459 320 469 328]/Border[0 0 0]/H/N>> endobj 19885 0 obj <>/P 13192 0 R/Type/Annot/A 20038 0 R/Subtype/Link/Rect[471 320 484 329]/Border[0 0 0]/H/N>> endobj 19886 0 obj <>/P 13192 0 R/Type/Annot/A 20037 0 R/Subtype/Link/Rect[485 320 495 328]/Border[0 0 0]/H/N>> endobj 19887 0 obj <>/P 13192 0 R/Type/Annot/A 20036 0 R/Subtype/Link/Rect[359 310 372 319]/Border[0 0 0]/H/N>> endobj 19888 0 obj <>/P 13192 0 R/Type/Annot/A 20035 0 R/Subtype/Link/Rect[373 310 383 318]/Border[0 0 0]/H/N>> endobj 19889 0 obj <>/P 13192 0 R/Type/Annot/A 20034 0 R/Subtype/Link/Rect[385 310 395 318]/Border[0 0 0]/H/N>> endobj 19890 0 obj <>/P 13192 0 R/Type/Annot/A 20033 0 R/Subtype/Link/Rect[397 310 409 319]/Border[0 0 0]/H/N>> endobj 19891 0 obj <>/P 13192 0 R/Type/Annot/A 20032 0 R/Subtype/Link/Rect[410 310 420 318]/Border[0 0 0]/H/N>> endobj 19892 0 obj <>/P 13192 0 R/Type/Annot/A 20031 0 R/Subtype/Link/Rect[422 310 435 319]/Border[0 0 0]/H/N>> endobj 19893 0 obj <>/P 13192 0 R/Type/Annot/A 20030 0 R/Subtype/Link/Rect[435 310 445 318]/Border[0 0 0]/H/N>> endobj 19894 0 obj <>/P 13192 0 R/Type/Annot/A 20029 0 R/Subtype/Link/Rect[447 310 457 318]/Border[0 0 0]/H/N>> endobj 19895 0 obj <>/P 13192 0 R/Type/Annot/A 20028 0 R/Subtype/Link/Rect[459 310 473 318]/Border[0 0 0]/H/N>> endobj 19896 0 obj <>/P 13192 0 R/Type/Annot/A 20027 0 R/Subtype/Link/Rect[475 310 492 319]/Border[0 0 0]/H/N>> endobj 19897 0 obj <>/P 13192 0 R/Type/Annot/A 20026 0 R/Subtype/Link/Rect[492 310 506 318]/Border[0 0 0]/H/N>> endobj 19898 0 obj <>/P 13192 0 R/Type/Annot/A 20025 0 R/Subtype/Link/Rect[359 300 373 308]/Border[0 0 0]/H/N>> endobj 19899 0 obj <>/P 13192 0 R/Type/Annot/A 20024 0 R/Subtype/Link/Rect[375 300 389 308]/Border[0 0 0]/H/N>> endobj 19900 0 obj <>/P 13192 0 R/Type/Annot/A 20023 0 R/Subtype/Link/Rect[391 300 405 308]/Border[0 0 0]/H/N>> endobj 19901 0 obj <>/P 13192 0 R/Type/Annot/A 20022 0 R/Subtype/Link/Rect[407 300 424 309]/Border[0 0 0]/H/N>> endobj 19902 0 obj <>/P 13192 0 R/Type/Annot/A 20021 0 R/Subtype/Link/Rect[425 300 439 308]/Border[0 0 0]/H/N>> endobj 19903 0 obj <>/P 13192 0 R/Type/Annot/A 20020 0 R/Subtype/Link/Rect[441 300 455 308]/Border[0 0 0]/H/N>> endobj 19904 0 obj <>/P 13192 0 R/Type/Annot/A 20019 0 R/Subtype/Link/Rect[457 300 471 308]/Border[0 0 0]/H/N>> endobj 19905 0 obj <>/P 13192 0 R/Type/Annot/A 20018 0 R/Subtype/Link/Rect[473 300 489 309]/Border[0 0 0]/H/N>> endobj 19906 0 obj <>/P 13192 0 R/Type/Annot/A 20016 0 R/Subtype/Link/Rect[490 300 504 308]/Border[0 0 0]/H/N>> endobj 19907 0 obj <>/P 13192 0 R/Type/Annot/A 20014 0 R/Subtype/Link/Rect[359 290 373 298]/Border[0 0 0]/H/N>> endobj 19908 0 obj <>/P 13192 0 R/Type/Annot/A 20011 0 R/Subtype/Link/Rect[375 290 392 299]/Border[0 0 0]/H/N>> endobj 19909 0 obj <>/P 13192 0 R/Type/Annot/A 20009 0 R/Subtype/Link/Rect[393 290 407 298]/Border[0 0 0]/H/N>> endobj 19910 0 obj <>/P 13192 0 R/Type/Annot/A 20007 0 R/Subtype/Link/Rect[409 290 423 298]/Border[0 0 0]/H/N>> endobj 19911 0 obj <>/P 13192 0 R/Type/Annot/A 44833 0 R/Subtype/Link/Rect[425 290 439 298]/Border[0 0 0]/H/N>> endobj 19912 0 obj <>/P 13192 0 R/Type/Annot/A 44793 0 R/Subtype/Link/Rect[441 290 455 298]/Border[0 0 0]/H/N>> endobj 19913 0 obj <>/P 13192 0 R/Type/Annot/A 44750 0 R/Subtype/Link/Rect[457 290 471 298]/Border[0 0 0]/H/N>> endobj 19914 0 obj <>/P 13192 0 R/Type/Annot/A 37439 0 R/Subtype/Link/Rect[473 290 489 299]/Border[0 0 0]/H/N>> endobj 19915 0 obj <>/P 13192 0 R/Type/Annot/A 44690 0 R/Subtype/Link/Rect[490 290 504 298]/Border[0 0 0]/H/N>> endobj 19916 0 obj <>/P 13192 0 R/Type/Annot/A 44666 0 R/Subtype/Link/Rect[359 280 373 288]/Border[0 0 0]/H/N>> endobj 19917 0 obj <>/P 13192 0 R/Type/Annot/A 20013 0 R/Subtype/Link/Rect[375 280 392 289]/Border[0 0 0]/H/N>> endobj 19918 0 obj <>/P 13192 0 R/Type/Annot/A 44582 0 R/Subtype/Link/Rect[393 280 407 288]/Border[0 0 0]/H/N>> endobj 19919 0 obj <>/P 13192 0 R/Type/Annot/A 44542 0 R/Subtype/Link/Rect[409 280 423 288]/Border[0 0 0]/H/N>> endobj 19920 0 obj <>/P 13192 0 R/Type/Annot/A 44507 0 R/Subtype/Link/Rect[425 280 439 288]/Border[0 0 0]/H/N>> endobj 19921 0 obj <>/P 13192 0 R/Type/Annot/A 44485 0 R/Subtype/Link/Rect[441 280 455 288]/Border[0 0 0]/H/N>> endobj 19922 0 obj <>/P 13192 0 R/Type/Annot/A 44433 0 R/Subtype/Link/Rect[457 280 471 288]/Border[0 0 0]/H/N>> endobj 19923 0 obj <>/P 13192 0 R/Type/Annot/A 44401 0 R/Subtype/Link/Rect[473 280 487 288]/Border[0 0 0]/H/N>> endobj 19924 0 obj <>/P 13192 0 R/Type/Annot/A 44359 0 R/Subtype/Link/Rect[359 270 376 279]/Border[0 0 0]/H/N>> endobj 19925 0 obj <>/P 13192 0 R/Type/Annot/A 44334 0 R/Subtype/Link/Rect[377 270 391 278]/Border[0 0 0]/H/N>> endobj 19926 0 obj <>/P 13192 0 R/Type/Annot/A 20012 0 R/Subtype/Link/Rect[393 270 409 279]/Border[0 0 0]/H/N>> endobj 19927 0 obj <>/P 13192 0 R/Type/Annot/A 44254 0 R/Subtype/Link/Rect[410 270 424 278]/Border[0 0 0]/H/N>> endobj 19928 0 obj <>/P 13192 0 R/Type/Annot/A 20008 0 R/Subtype/Link/Rect[426 270 443 279]/Border[0 0 0]/H/N>> endobj 19929 0 obj <>/P 13192 0 R/Type/Annot/A 44181 0 R/Subtype/Link/Rect[443 270 457 278]/Border[0 0 0]/H/N>> endobj 19930 0 obj <>/P 13192 0 R/Type/Annot/A 44159 0 R/Subtype/Link/Rect[459 270 473 278]/Border[0 0 0]/H/N>> endobj 19931 0 obj <>/P 13192 0 R/Type/Annot/A 44115 0 R/Subtype/Link/Rect[475 270 492 279]/Border[0 0 0]/H/N>> endobj 19932 0 obj <>/P 13192 0 R/Type/Annot/A 44088 0 R/Subtype/Link/Rect[492 270 506 278]/Border[0 0 0]/H/N>> endobj 19933 0 obj <>/P 13192 0 R/Type/Annot/A 44045 0 R/Subtype/Link/Rect[359 260 373 268]/Border[0 0 0]/H/N>> endobj 19934 0 obj <>/P 13192 0 R/Type/Annot/A 44014 0 R/Subtype/Link/Rect[375 260 389 268]/Border[0 0 0]/H/N>> endobj 19935 0 obj <>/P 13192 0 R/Type/Annot/A 43973 0 R/Subtype/Link/Rect[391 260 405 268]/Border[0 0 0]/H/N>> endobj 19936 0 obj <>/P 13192 0 R/Type/Annot/A 43948 0 R/Subtype/Link/Rect[407 260 421 268]/Border[0 0 0]/H/N>> endobj 19937 0 obj <>/P 13192 0 R/Type/Annot/A 43899 0 R/Subtype/Link/Rect[423 260 437 268]/Border[0 0 0]/H/N>> endobj 19938 0 obj <>/P 13192 0 R/Type/Annot/A 43861 0 R/Subtype/Link/Rect[439 260 453 268]/Border[0 0 0]/H/N>> endobj 19939 0 obj <>/P 13192 0 R/Type/Annot/A 43834 0 R/Subtype/Link/Rect[455 260 469 268]/Border[0 0 0]/H/N>> endobj 19940 0 obj <>/P 13192 0 R/Type/Annot/A 43798 0 R/Subtype/Link/Rect[471 260 485 268]/Border[0 0 0]/H/N>> endobj 19941 0 obj <>/P 13192 0 R/Type/Annot/A 43756 0 R/Subtype/Link/Rect[487 260 501 268]/Border[0 0 0]/H/N>> endobj 19942 0 obj <>/P 13192 0 R/Type/Annot/A 43717 0 R/Subtype/Link/Rect[503 260 517 268]/Border[0 0 0]/H/N>> endobj 19943 0 obj <>/P 13192 0 R/Type/Annot/A 43693 0 R/Subtype/Link/Rect[359 250 373 258]/Border[0 0 0]/H/N>> endobj 19944 0 obj <>/P 13192 0 R/Type/Annot/A 43635 0 R/Subtype/Link/Rect[375 250 392 259]/Border[0 0 0]/H/N>> endobj 19945 0 obj <>/P 13192 0 R/Type/Annot/A 43606 0 R/Subtype/Link/Rect[393 250 407 258]/Border[0 0 0]/H/N>> endobj 19946 0 obj <>/P 13192 0 R/Type/Annot/A 43561 0 R/Subtype/Link/Rect[409 250 423 258]/Border[0 0 0]/H/N>> endobj 19947 0 obj <>/P 13192 0 R/Type/Annot/A 43528 0 R/Subtype/Link/Rect[425 250 439 258]/Border[0 0 0]/H/N>> endobj 19948 0 obj <>/P 13192 0 R/Type/Annot/A 43495 0 R/Subtype/Link/Rect[441 250 455 258]/Border[0 0 0]/H/N>> endobj 19949 0 obj <>/P 13192 0 R/Type/Annot/A 43458 0 R/Subtype/Link/Rect[457 250 471 258]/Border[0 0 0]/H/N>> endobj 19950 0 obj <>/P 13192 0 R/Type/Annot/A 43429 0 R/Subtype/Link/Rect[473 250 487 258]/Border[0 0 0]/H/N>> endobj 19951 0 obj <>/P 13192 0 R/Type/Annot/A 43377 0 R/Subtype/Link/Rect[489 250 503 258]/Border[0 0 0]/H/N>> endobj 19952 0 obj <>/P 13192 0 R/Type/Annot/A 43346 0 R/Subtype/Link/Rect[505 250 519 258]/Border[0 0 0]/H/N>> endobj 19953 0 obj <>/P 13192 0 R/Type/Annot/A 43286 0 R/Subtype/Link/Rect[359 240 373 248]/Border[0 0 0]/H/N>> endobj 19954 0 obj <>/P 13192 0 R/Type/Annot/A 43256 0 R/Subtype/Link/Rect[375 240 392 249]/Border[0 0 0]/H/N>> endobj 19955 0 obj <>/P 13192 0 R/Type/Annot/A 43198 0 R/Subtype/Link/Rect[393 240 407 248]/Border[0 0 0]/H/N>> endobj 19956 0 obj <>/P 13192 0 R/Type/Annot/A 43170 0 R/Subtype/Link/Rect[409 240 423 248]/Border[0 0 0]/H/N>> endobj 19957 0 obj <>/P 13192 0 R/Type/Annot/A 43278 0 R/Subtype/Link/Rect[425 240 439 248]/Border[0 0 0]/H/N>> endobj 19958 0 obj <>/P 13192 0 R/Type/Annot/A 43106 0 R/Subtype/Link/Rect[441 240 455 248]/Border[0 0 0]/H/N>> endobj 19959 0 obj <>/P 13192 0 R/Type/Annot/A 43075 0 R/Subtype/Link/Rect[457 240 473 249]/Border[0 0 0]/H/N>> endobj 19960 0 obj <>/P 13192 0 R/Type/Annot/A 43006 0 R/Subtype/Link/Rect[474 240 488 248]/Border[0 0 0]/H/N>> endobj 19961 0 obj <>/P 13192 0 R/Type/Annot/A 43681 0 R/Subtype/Link/Rect[490 240 502 248]/Border[0 0 0]/H/N>> endobj 19962 0 obj <>/P 13192 0 R/Type/Annot/A 42943 0 R/Subtype/Link/Rect[398 230 406 238]/Border[0 0 0]/H/N>> endobj 19963 0 obj <>/P 13192 0 R/Type/Annot/A 42919 0 R/Subtype/Link/Rect[425 220 439 228]/Border[0 0 0]/H/N>> endobj 19964 0 obj <>/P 13192 0 R/Type/Annot/A 42871 0 R/Subtype/Link/Rect[441 220 455 228]/Border[0 0 0]/H/N>> endobj 19965 0 obj <>/P 13192 0 R/Type/Annot/A 42848 0 R/Subtype/Link/Rect[457 220 471 228]/Border[0 0 0]/H/N>> endobj 19966 0 obj <>/P 13192 0 R/Type/Annot/A 43173 0 R/Subtype/Link/Rect[473 220 487 228]/Border[0 0 0]/H/N>> endobj 19967 0 obj <>/P 13192 0 R/Type/Annot/A 42762 0 R/Subtype/Link/Rect[489 220 501 228]/Border[0 0 0]/H/N>> endobj 19968 0 obj <>/P 13192 0 R/Type/Annot/A 42736 0 R/Subtype/Link/Rect[405 210 422 219]/Border[0 0 0]/H/N>> endobj 19969 0 obj <>/P 13192 0 R/Type/Annot/A 42690 0 R/Subtype/Link/Rect[423 210 437 218]/Border[0 0 0]/H/N>> endobj 19970 0 obj <>/P 13192 0 R/Type/Annot/A 42660 0 R/Subtype/Link/Rect[439 210 453 218]/Border[0 0 0]/H/N>> endobj 19971 0 obj <>/P 13192 0 R/Type/Annot/A 42610 0 R/Subtype/Link/Rect[455 210 471 219]/Border[0 0 0]/H/N>> endobj 19972 0 obj <>/P 13192 0 R/Type/Annot/A 42583 0 R/Subtype/Link/Rect[472 210 486 218]/Border[0 0 0]/H/N>> endobj 19973 0 obj <>/P 13192 0 R/Type/Annot/A 42552 0 R/Subtype/Link/Rect[488 210 502 218]/Border[0 0 0]/H/N>> endobj 19974 0 obj <>/P 13192 0 R/Type/Annot/A 42513 0 R/Subtype/Link/Rect[359 200 376 209]/Border[0 0 0]/H/N>> endobj 19975 0 obj <>/P 13192 0 R/Type/Annot/A 42468 0 R/Subtype/Link/Rect[377 200 390 208]/Border[0 0 0]/H/N>> endobj 19976 0 obj <>/P 13192 0 R/Type/Annot/A 42423 0 R/Subtype/Link/Rect[392 200 409 209]/Border[0 0 0]/H/N>> endobj 19977 0 obj <>/P 13192 0 R/Type/Annot/A 42382 0 R/Subtype/Link/Rect[409 200 423 208]/Border[0 0 0]/H/N>> endobj 19978 0 obj <>/P 13192 0 R/Type/Annot/A 42361 0 R/Subtype/Link/Rect[425 200 439 208]/Border[0 0 0]/H/N>> endobj 19979 0 obj <>/P 13192 0 R/Type/Annot/A 42325 0 R/Subtype/Link/Rect[441 200 453 208]/Border[0 0 0]/H/N>> endobj 19980 0 obj <>/P 13192 0 R/Type/Annot/A 42257 0 R/Subtype/Link/Rect[398 190 415 199]/Border[0 0 0]/H/N>> endobj 19981 0 obj <>/P 13192 0 R/Type/Annot/A 42237 0 R/Subtype/Link/Rect[415 190 427 198]/Border[0 0 0]/H/N>> endobj 19982 0 obj <>/P 13192 0 R/Type/Annot/A 42198 0 R/Subtype/Link/Rect[405 180 415 188]/Border[0 0 0]/H/N>> endobj 19983 0 obj <>/P 13192 0 R/Type/Annot/A 42150 0 R/Subtype/Link/Rect[417 180 427 188]/Border[0 0 0]/H/N>> endobj 19984 0 obj <>/P 13192 0 R/Type/Annot/A 42098 0 R/Subtype/Link/Rect[429 180 443 188]/Border[0 0 0]/H/N>> endobj 19985 0 obj <>/P 13192 0 R/Type/Annot/A 42065 0 R/Subtype/Link/Rect[445 180 459 188]/Border[0 0 0]/H/N>> endobj 19986 0 obj <>/P 13192 0 R/Type/Annot/A 42023 0 R/Subtype/Link/Rect[461 180 475 188]/Border[0 0 0]/H/N>> endobj 19987 0 obj <>/P 13192 0 R/Type/Annot/A 41977 0 R/Subtype/Link/Rect[477 180 494 189]/Border[0 0 0]/H/N>> endobj 19988 0 obj <>/P 13192 0 R/Type/Annot/A 41949 0 R/Subtype/Link/Rect[495 180 509 188]/Border[0 0 0]/H/N>> endobj 19989 0 obj <>/P 13192 0 R/Type/Annot/A 41906 0 R/Subtype/Link/Rect[359 170 376 179]/Border[0 0 0]/H/N>> endobj 19990 0 obj <>/P 13192 0 R/Type/Annot/A 41864 0 R/Subtype/Link/Rect[377 170 391 178]/Border[0 0 0]/H/N>> endobj 19991 0 obj <>/P 13192 0 R/Type/Annot/A 41803 0 R/Subtype/Link/Rect[393 170 407 178]/Border[0 0 0]/H/N>> endobj 19992 0 obj <>/P 13192 0 R/Type/Annot/A 41746 0 R/Subtype/Link/Rect[409 170 422 178]/Border[0 0 0]/H/N>> endobj 19993 0 obj <>/P 13192 0 R/Type/Annot/A 41708 0 R/Subtype/Link/Rect[424 170 438 178]/Border[0 0 0]/H/N>> endobj 19994 0 obj <>/P 13192 0 R/Type/Annot/A 41662 0 R/Subtype/Link/Rect[440 170 454 178]/Border[0 0 0]/H/N>> endobj 19995 0 obj <>/P 13192 0 R/Type/Annot/A 41620 0 R/Subtype/Link/Rect[456 170 470 178]/Border[0 0 0]/H/N>> endobj 19996 0 obj <>/P 13192 0 R/Type/Annot/A 41795 0 R/Subtype/Link/Rect[472 170 486 178]/Border[0 0 0]/H/N>> endobj 19997 0 obj <>/P 13192 0 R/Type/Annot/A 41539 0 R/Subtype/Link/Rect[488 170 502 178]/Border[0 0 0]/H/N>> endobj 19998 0 obj <>/P 13192 0 R/Type/Annot/A 41495 0 R/Subtype/Link/Rect[504 170 518 178]/Border[0 0 0]/H/N>> endobj 19999 0 obj <>/P 13192 0 R/Type/Annot/A 41461 0 R/Subtype/Link/Rect[359 160 373 168]/Border[0 0 0]/H/N>> endobj 20000 0 obj <>/P 13192 0 R/Type/Annot/A 41427 0 R/Subtype/Link/Rect[375 160 387 168]/Border[0 0 0]/H/N>> endobj 20001 0 obj <>/P 13192 0 R/Type/Annot/A 41407 0 R/Subtype/Link/Rect[398 150 410 158]/Border[0 0 0]/H/N>> endobj 20002 0 obj <>/P 13192 0 R/Type/Annot/A 41339 0 R/Subtype/Link/Rect[391 568 408 577]/Border[0 0 0]/H/N>> endobj 20003 0 obj <>/P 13192 0 R/Type/Annot/A 41301 0 R/Subtype/Link/Rect[172 475 189 484]/Border[0 0 0]/H/N>> endobj 20004 0 obj <>/P 13192 0 R/Type/Annot/A 41276 0 R/Subtype/Link/Rect[374 468 391 477]/Border[0 0 0]/H/N>> endobj 20005 0 obj <>/P 13192 0 R/Type/Annot/A 41239 0 R/Subtype/Link/Rect[373 458 390 467]/Border[0 0 0]/H/N>> endobj 20006 0 obj <>/P 13192 0 R/Type/Annot/A 41279 0 R/Subtype/Link/Rect[390 378 407 387]/Border[0 0 0]/H/N>> endobj 20007 0 obj <> endobj 20008 0 obj <> endobj 20009 0 obj <> endobj 20010 0 obj <> endobj 20011 0 obj <> endobj 20012 0 obj <> endobj 20013 0 obj <> endobj 20014 0 obj <> endobj 20015 0 obj <> endobj 20016 0 obj <> endobj 20017 0 obj <> endobj 20018 0 obj <> endobj 20019 0 obj <> endobj 20020 0 obj <> endobj 20021 0 obj <> endobj 20022 0 obj <> endobj 20023 0 obj <> endobj 20024 0 obj <> endobj 20025 0 obj <> endobj 20026 0 obj <> endobj 20027 0 obj <> endobj 20028 0 obj <> endobj 20029 0 obj <> endobj 20030 0 obj <> endobj 20031 0 obj <> endobj 20032 0 obj <> endobj 20033 0 obj <> endobj 20034 0 obj <> endobj 20035 0 obj <> endobj 20036 0 obj <> endobj 20037 0 obj <> endobj 20038 0 obj <> endobj 20039 0 obj <> endobj 20040 0 obj <> endobj 20041 0 obj <> endobj 20042 0 obj <> endobj 20043 0 obj <> endobj 20044 0 obj <> endobj 20045 0 obj <> endobj 20046 0 obj <> endobj 20047 0 obj <> endobj 20048 0 obj <> endobj 20049 0 obj <> endobj 20050 0 obj <> endobj 20051 0 obj <> endobj 20052 0 obj <> endobj 20053 0 obj <> endobj 20054 0 obj <> endobj 20055 0 obj <> endobj 20056 0 obj <> endobj 20057 0 obj <> endobj 20058 0 obj <> endobj 20059 0 obj <> endobj 20060 0 obj <> endobj 20061 0 obj <> endobj 20062 0 obj <> endobj 20063 0 obj <> endobj 20064 0 obj <> endobj 20065 0 obj <> endobj 20066 0 obj <> endobj 20067 0 obj <> endobj 20068 0 obj <> endobj 20069 0 obj <> endobj 20070 0 obj <> endobj 20071 0 obj <> endobj 20072 0 obj <> endobj 20073 0 obj <> endobj 20074 0 obj <> endobj 20075 0 obj <> endobj 20076 0 obj <> endobj 20077 0 obj <> endobj 20078 0 obj <> endobj 20079 0 obj <> endobj 20080 0 obj <> endobj 20081 0 obj <> endobj 20082 0 obj <> endobj 20083 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 20084 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 20085 0 obj <> endobj 20086 0 obj <> endobj 20087 0 obj <> endobj 20088 0 obj <> endobj 20089 0 obj <> endobj 20090 0 obj <> endobj 20091 0 obj <> endobj 20092 0 obj <> stream q /X1 Do Q q endstream endobj 20093 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 20094 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 20095 0 obj <> stream HWioH_;rdɅX`"Q2: >-WbS.6'uc?>ywIӧ_Flmi.qL8uM/5K|Vf:ݮr]5rfet̙/$:+g,&ILiJ4yR:e!Oi~H.m;=nf܌]^<_NܱC()p*)p*)p*p)p)9p+9p+9p+p_(p_(%p_*%p:kAi%hĘKXcv/1fi#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu[GVb%F,Z1K{ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZZ+1fi#hĘKYڽĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhQ Z+1fi#hĘKYnBCIK> ,VPZhTi@+UZʔV2\i@+WZ*V URi@Z.Zc֒_րUZhY倖SZh;{_ֆ,r/1f-{r/kؐ@%,r@%vȽĘTȽNC c֒_wʽ_wʽ_dʽ_dʽ_Qʽ_Qʽ_>ʽ_>ʽ_+ʽ_+Ę$r@%r@%Wr@%Wr@%Ƈ|r@%Ƈ|r@%wr@%wr@%sr@%s%1fi-hܧ e\e0 wl=D'5LQ di:V2_Ɠ8ǻvGO YRQ'Gf2ۅm7M]ϷEUfkvf~RWofb̼M жyX'>}غ$;{uEhi.䍔Ll۲U5f935/D =o<1Q7=zZmgޥ՜5Y+gK tj|jE:g 8ݐ5T!-tmio\mr>:gX<!9^r1?rkLwL0U]!^[`(=0xiH' ]38YWi^5+' O ]u~fchs{hbRdyή/JtdHb0f_~).uwGSq,j)V?+N%1K? YhV)m [FNm=P?1 )tx06&@ 3{Eg_?S㧠!n024Kjf] ws{#;'? > ҟ^<`%:CuKf<ʟ͞ PWmۋ1zyM:+O+K{÷j`۫9^NFi!:vPSrB{ݓt A\BlwHY%`) @+(hJ+ZʀV2)hJ+Z*V U(hJZr֒ĈeUZhY倖SZh;{1 h;{1 h;{1 h;{1 h;{1 h;{1 h;{1 h{{1KkIX cR cR cR cR cR cR cR cR cR c֒@%,r@%,r@%,r@%,r@%,r@%,r@%,r@%,r@%,rL{t1*Lŀ{t1*L,,--M yXw 1vBҸ,>agljne; zƠ?H16S`oE_0󒙗cllZ\YP__ZPHMS(ON-.\} endstream endobj 20096 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 20097 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 20098 0 obj <> endobj 20099 0 obj <> endobj 20100 0 obj <> endobj 20101 0 obj <> stream q /X1 Do Q q endstream endobj 20102 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 20103 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 20104 0 obj <> stream HWm6_!xZMyC+! Jei+7I I`!pxK'?eO>"3b2a:U!y&㾊~(?F,ת)sk>VC_⾎n{㏧6ݲ"f.$ua8Ox{6WO#LaM7G_~)<ϊ͋Cy?TջMJ]*ƒTij̯Q "!fi?oޥ>n&J ytr4H+!F# KE> a QgP@aP```/`/`/`/`/```> g,`}N9>"`_싀&뀽&ehqBgP!{Z3=TE `>"jPjϠj9Z3(}ZNE `>"jPjϠj9Z3(}ZN T}>@> cAPjϠjZ3(}ZAE `V>"jPjϠjZ3(}ZAE `V>"jIBgP!{Z3=TE `V>"jPjϠj%Z3(}ZIE `V>"jPjϠj%Z3(}ZI"T}>@> cAuq =F[^,E7ijow1KG|C0,lFdz\DBn ` Yuf_;+jgV5LЏAo[n ϑ(,OțW ބ~Z5MzM_t= bMEJPO|Mܑ";\T܎;C=yV2f}rF\WTk.g(I>C`ަ:ݝEx'p8q}LN{2&DoW(Q~%*Dw@֝j\(u۫t4*{순%9K.x ,/Rc%L S8aLbqn[!'0ju]PdjhshS Ca4WcG ܝltLeϗNZ6^z_?^! ƅ\-"oL+j0ַ, 6 8uqS(`*]cmh$۫ڟzC[aWeMk|z"vۙez>7jNinβeh c\3W3ewծRع~[FPYkgjҺ ޻̀E)5 Ņ f36i 5eOܡ\ɴKY-CmZ%  ]71-.Ǣ 7M1p"_MWDd*9Y9p3Ӟ:aO!ey,3YkjCG.Tws8֞54D|=C8*(josCݸK5{+Mh7r2F[Ty :+~/u0{XƮr8T`.ssYjb2w.uv~}M5*wk_~8*>BU=uHhpG-g,ɒ 7y+.8xTyq)h l7Lυz@ `+ѐvu Оss^"l_[VsvOGwfN8F}únt87Gij?B |T+{n PEa(|ee¯j(e)l  G*wke&M.^wn9إun!ɽzذ#Jnr R8ʙNXgZz"* !@₄Ҭf:<]~=vb:Ngy|3WK>ԕP(W[$˾yN HKs4c~PqmUaj0Lf[usφ89p~ 1˲ }a529GtydȊ2m'{Do{9Iyow7\<(HHO6'ítRҩr4Qyo Sյǹ~=:B_ӽӄi:3IZhhA|\F=4c[\  c>/P 990 0 R/Type/Annot/A 44410 0 R/Subtype/Link/Rect[129.600998 380.049011 218.809006 399.729004]/Border[0 0 0]/H/N>> endobj 20106 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 20107 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 20108 0 obj <> stream q /X1 Do Q q endstream endobj 20109 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 20110 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 20111 0 obj <> stream Hm۸SFGQj.wH9} +'ʭ=YkwƶDZE8HE8eU7݋/gϞ="=:f&Uq"MTl$߬8 V}~jEuW6ob"Wɾj)>)&re2--.J?\|\PM,)DRq4Qi/j绋巃=Tbx,ZecqHŒg`o -2Qf(3>L1cHc@ R^ )CPv!B~ (IzIzEWzEWzEWzMׁzMׁzC7zC7zC7PB}zzzO i>%ԧP3B}YA֏m#I֏!c@cHRz?Z?>p$\ǐ"kPkRpCPVc@cHJµ~ )B}ZI֏E֏!E\+ 1k%Z?Z?TޏE֏!cHPkRpCPVc@cH*µ~ )B}ZE֏E֏!E\1kZ?Z?>p"\ǐ"Uk6҄kRz?Z?Tޏ!c@cHjµ~ )B}ZM֏E֏!E\ 1k5Z?Z?>p&\ǐ"ՄkPkRpCPVccHPkRz?T>,ӌß2Z.lC4eBfq m(b 1a}?˻j[~{M-u7惛\|2i.qbLfsu>5E}־қM'26:݀i =<7u,Jc #ؚvW zJHU}qfda`@b u?7f25,5sᗇ0y{2~_mqZpUUaWJd@g|~2ǟƤgdءFÌёy0"'XF3ᔶ5:j73 0SbT+>7rA IOj qXYuܬbWvSi8l7?Ikugm#avf(l\U6}&En%iSHz9G8 Fsd{iO˪)rlʌ ea{ډ&kCcFɠI;.34.|Ґ<›D*`0"}UUq;q<8L8T@LN.СdzBV8T`,.ߛ|7-*:U("qg6Q j ZJvtӧnz_௳lJx蜵yͪ ;,܄b/SDue\)4X*OBLUV mt|T2:^Q !;iAiRVcG3eܼ#~Ꝯq݌MoΘ)e)O#v̬Pg)&G6v:_tNo*P-VN-bgjL>W358s š)3uLL'_jfpJ\2wۛYz#d zcw3^)f!J%wemʘZ&-rOt#0%uFqUsB*еvnH2vo*3HpnOtѭ)V#-yɵ&i9?W.^,C:K>a,$#;yacfyW?yriy3W?f}xҐx\MQt#F % YҸ7ϱdgIpwαђ0θ9@7rǦCm}o(ӦH_)oAFWCY<{$~]T=&nICsnwW: GI8K5jUK^-W^Ddendstream endobj 20112 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 20113 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 20114 0 obj <> endobj 20115 0 obj <> endobj 20116 0 obj <> endobj 20117 0 obj <> endobj 20118 0 obj <> stream q /X1 Do Q q endstream endobj 20119 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 20120 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 20121 0 obj <> stream HWkoV_q *mhɻmq  -,Q=\InP)3kRs3?ƛᇳw~4yU{fCa`bʙEtfeUV2k&;[w?Wz3_v|b6.쬵XβD&D..nWf2weь>oǢv?76͠7^]/XV-K([WU_YY؞t,?fp拱yGJSi&K*\$e`}R9IplIbIXjKzVp{;^W=p>A}T#pG++kkk>IO2scv/1bJYڽĘKXcpZ@k%,^ցJXcpZ@k%,^ցJXcpZ@k%,^ցJXcpZ@k%,^ցJlyZ1K@k%,^b%F,Z1 WcpZAk%F,Z1 WcpZAk%F,Z1 WcpZAk%F,Z1 WcpZAk%hĘKXcv/1fi#hĘܫZ1 W #hĘܫZ1 W #hĘܫZ1 W #hĘܫZ1 W [fVb%F,Z1K{@Jj}8ACdPXJ+ J+"ЊJZҪVjU+hJZjVJJ+$\$,%1րUZhY倖SZh;{ )KiKY@KށKlNYJ ^bZ*^bÀuRZ cRw FS c֒;@KރKrA%ƃ R Ah{{T=ȽxDZ*^b<|-{r/1>ʽ@KރK %1fi-TȽx`Z*^b< -r/1}-r/1~Z*^bTȽh{9R s%1fi-+7R H)Sҟevfgm5,K{72ULǴcnkkF](SFCSٗD&3b=:3^j}57Yw喾)aKĖ3֙zcVݗ| 3ޙn5E۸6q3thr<\L<9~f9+stߝj5jt52/^|joav m6U!_Es>;0_{}Lp?>/?q؄"7GᏒ^vOofe:0}\ה:Z_ uACk\X" d.mt;pz|{kƓIݚn܌Ht^"Ƣp?)=t+'\'iP [|A _pluˋSuϮFd{Z[{R}B3nl!ܚns?X+ܑXXQrz2W!DUxd`;z_^9]=W쫢/Ie}lONWѺ?O~TO|c>'~Ïlj^0%tRsi𨀟4szX<;F=-yJZ/pOz%sMaFgfotcV,VPZhVTZhEUJiU@RZ5ЪV jFi5@QZ h%VZZc֒,вJ-rJ-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1fi- ^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ#ȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘT#ȽĘ$F,{1Kk%~h_~fgvƚvU@JG[Ӕj:S? =vt1^5=0"y`}׶[ZaZ,G16SۙtdI=)z$)ӎncH6BjSݯpٛrYjm::JW'˜;_gu oiWsi8\qe?\9N`,szp3Kc.}1oW'v'؄^GbqYJ+^;'Ę f2sJ`*2ƭNRyI*fwWӚHaˋI1nVn)I0,we䧕1Z*lZ\=$&؝s49~SbҷjwvR{)vX4X3ΆXdC' !3Z3NhhV|8oFjيVf7 r-#s} ݱK[M"y ^ﵯgד- NaL%(p ~VyLeqx 7܄x (̜ʇP6.C'eEB&[VW.u5 M2u"5DSUDѦ?{\S´,bk*T:ǜLh T>KA (Ρ$J(ILxlvsd̃9<6>@ RR[D= ND?7IhL 55DS;ڦj.0) ..QlZ]߷R`aWi7]2q9zsUYH.xs톮/}9mL#؟/8ʱ0!LݴX@*ds ) "r/@i|1;֑(E>WXZ㤋g.Zc}Fꚡ81wmz\,R!Jݬ@[ujONo^mL+mub=aN,xd1/].5.yCxÄ!ޥ]d]oV 00ބmu;'$yA#P7m"D̓iVQOZhm`VƜ}8f&&HmiUfIs@R.~G%O>m"{A*lʳ &Wf5J&/N),M<1X0US+"K!,r ,fVSTww3CMܵǂq2X_*! ,`Fvo7]/q-TLKum ћܩ޺w{LG{?|>/|kendstream endobj 20122 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 20123 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 20124 0 obj <> endobj 20125 0 obj <> endobj 20126 0 obj <> endobj 20127 0 obj <> endobj 20128 0 obj <> stream q /X1 Do Q q endstream endobj 20129 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 20130 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 20131 0 obj <> stream HWQo8~ׯAE$EI=\" W\ -j-g3dKqzXlŌ?|7$o?^7w"^{7I$U"LT,ՑQb_D9mW?7Wu﫵WۏJe.Occccc0}°Oا c13}ư<> c3se[e{hZjCϞŨ峧6D Pj Q {OQ-!aV16@16D1=*FԆ(ZŨŨŰTRjZjZjCSbTKmb{Uj4ZjCϞŨ峧6D Pj Q {OQ-!aV36@16D1=jFԆ(ZͨŨŰTRj5ZjZjCSfTKmb{ՌjFԆ(=Q-!gOmSRjFԆ(ڄQ-Q-!a6aTKmb{MRRjFԆ(ڄQ-Q-!a6aTKmb{MR[FԆ(=Q-!gOmZ uzܮZHz d<#RVsTim ۲khez=QF mdUtba#?hn Q5GP{l~d2 .NL!wfu[5Ϣ/u[QM e#cS<9d=$K%dH$1{ٶk'm]؀n.`-;Q]+W]ݘ8?mʱЗCJ=nקa[]'nZxy:ֵK^^X RES2}}:7#a(rKwi),lnX4^#o>37~0<ŰRgdj,R 'P(ZD)̕="K8|&Ml&F Pqe (TH*2 a/ea&$JR3XJd:YPvz7*g~QĽAY]NLdR3w>^" 0WEpύ.B09T|j^;Ǫ,X=E] l؅;Jxe3)8XmNs?ab4f)F21r7M㦑6DGRÑvb?ROe/dKkHPEƑr@f^qɓNs๩#cg;exFۢW5ӊ ^m#m"DqDf$*X:S` aەž[HgtI90R{QB|%|j߽U,;&k)hu2KUwd(|_nDZa \n?gX,L%ZfYEǯ,>[%=`| 8)?LЮ~qoϯ!ܥ.u4{I,O/^yG2o/^@O8|xʣ&K;2 -wh /g/*5U.=.Ƕ^j:=?*9\॓ 2ĉyK{>M%8C}W7 ;/z ȃv4{F8LruZU3vFhL}2o^58;huMh%W9t3['Z[@FboO[ϘEr/pFCmu_bf#~5-$]F?\x=bw}*L7)9č] wIClnp͂BFfq~nw^Yiݢ,j!c;nОdҨN }.n䯈Pv~^d2h)i>bɪ]]zyv %<!#zOTWm4кKeJfP- < ţCUXs&N2x5뱒4`6Eqq_Mlcqb#qf]Q_FˀRb qDokrmE^jlhg77oͿ ݎ}OR=)!+!MUۧrd7]%bhLbCXGVXg ~7_6]ulwxX܂aDC, Ks*;(’'Uf@ =FKIn)YrkͦBg)n֏3W_dEf]+KIɛT&3Z@gc ͬ`Pq< 뷻 ^G3wX(h;>l:02MV׻()xc2\x4^~LaՋ>o$4LNF@P~=,w~Ƶb$.wZ⸌Z:' fB0X SEɐg*e tQpsU0י4:c4}gbFiz6 Q`:f&HZ.a&jXҥlj!֭u1Q/ONg=Uc[uh|?4sp'!0gw>,߾?|ׇ?7 0ڬendstream endobj 20132 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 20133 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 20134 0 obj <> endobj 20135 0 obj <> stream q /X1 Do Q q endstream endobj 20136 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 20137 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 20138 0 obj <> stream HWmoeYw 85wH^`lŧT/$jҒ]vfyșg8u݋ׯ>^x'x_2` v ӵWu%CBTW~<,7j.vQ]îz;oU RDѧ2骚 La l:܇!O+v¤w+SkJ;,.Žv5X%^U sm%&f%um*6D)U2,ʹ+Um=a{Ͱ{Ͱ{Ͱ{ð7{ð7{˰{˰{˰{ǰw{ǰw{ϰ{ϰ{ϰȰȰ/4UjsJ QjsJP%܆(FP B6a_6D1mbFP B6!Qmn#þP-0mbF QjsjQmn#þP-0mJ3m*6D1m*6Bs6B1 jFP BQmnCF(}Zͨ6a_V3mbTŰ/T6B1 jF Qjsj5F(}Zͨ6*è6dŨ6dUmbTŰ/Tk6B1 F Qjsj F(}Zè6!Qmn#þPaTŰ/Tk6D1mb5jsj ܶ,F}nCF}n#T>1F#$;nUVWөJLU N8U5yZ/^L#R T52/6Kq ߧ?wx&ډr}$^=O._5HbJZ1GxQk'{k#tuj:RèS5#ԵP{s pK >b|V_ ==py,{p\cq dLbG!Gc2K2AĹno|Uո 3&*b->\cMh|ԕwdx/+oθV1긜ؖVG/qJ;ܝo2KM't&lCB]o{-$G \ڂA:_&lV(8p}zsIMOj?)2`KnwoTw2n?F9ͧ&qX |f`,NL;"B0]LprFoS,FdcXKW^hBЗs2ooP07߾xqͤwYc1^q]OXVjؓMܬW^<϶MHW1|+>Km_Mp5( օ ?o׮V?G?.l!8){<kNFDZk=쑟t?.ݴ$VF{Ա hM[^81`xuJ_ gXmevt"HhC دw~DKzwC/(J(%D+ib.`46F[5񌧻SU]up@C@΍LÁbi!sr]>4eݨQ^+X,ynh|SVl|{YJ3{˷z5Rx<{,AQL+r3Hia,4|i٘ξ'py{U/J9 hEUz>km;, 8 C=-EoS|3h{'dӪ,H 6O9Pdy*os=nB#MnxZ{a.h@N'uFbCGDjҀbw*| LV=,ݲ'M=.ҡÅM yBӵpQ- ]ř7H=uo(Y zD)Y-)V"9nɱ2X6tH/ccjHbsZ_֏Yk`d=h[jx6F q{ xwEGK5+Eq,Eq)g$dJL҆I|02&WY]r^xE>):"(\$Hdhzq;I$.R4d~7ɉ`ΊpSu؅DmJYx-#/x:ӹ6"Y]`I:"d8a1Mİ/rd>:2.ʜғhx\dma(y{\:0O@8ɡAzreIĊehu>lV@1Z`e8+.8Нڪf^% NKK6Ƨ[Ͽ7P!) tk^N˞ҹ-B.M_(3ֆUr \A#f\axX5Mp(ƥNx'Q h`Մ0wFA9''\ zC'(j(wS=Y I: D;La"&Eb˺E2ŶnP-bZ j:{W3>\9ERNrup xLPF;ATa)rG?Nb+3;||}t=qendstream endobj 20139 0 obj <>/P 12870 0 R/Type/Annot/A 38203 0 R/Subtype/Link/Rect[197 670 210 678]/Border[0 0 0]/H/N>> endobj 20140 0 obj <>/P 12870 0 R/Type/Annot/A 38183 0 R/Subtype/Link/Rect[212 670 229 678]/Border[0 0 0]/H/N>> endobj 20141 0 obj <>/P 12870 0 R/Type/Annot/A 41265 0 R/Subtype/Link/Rect[229 670 243 678]/Border[0 0 0]/H/N>> endobj 20142 0 obj <>/P 12870 0 R/Type/Annot/A 38160 0 R/Subtype/Link/Rect[245 670 262 678]/Border[0 0 0]/H/N>> endobj 20143 0 obj <>/P 12870 0 R/Type/Annot/A 38149 0 R/Subtype/Link/Rect[262 670 276 678]/Border[0 0 0]/H/N>> endobj 20144 0 obj <>/P 12870 0 R/Type/Annot/A 20421 0 R/Subtype/Link/Rect[278 670 292 678]/Border[0 0 0]/H/N>> endobj 20145 0 obj <>/P 12870 0 R/Type/Annot/A 38123 0 R/Subtype/Link/Rect[294 670 308 678]/Border[0 0 0]/H/N>> endobj 20146 0 obj <>/P 12870 0 R/Type/Annot/A 41099 0 R/Subtype/Link/Rect[151 660 167 669]/Border[0 0 0]/H/N>> endobj 20147 0 obj <>/P 12870 0 R/Type/Annot/A 20411 0 R/Subtype/Link/Rect[168 660 182 668]/Border[0 0 0]/H/N>> endobj 20148 0 obj <>/P 12870 0 R/Type/Annot/A 38085 0 R/Subtype/Link/Rect[184 660 198 668]/Border[0 0 0]/H/N>> endobj 20149 0 obj <>/P 12870 0 R/Type/Annot/A 38055 0 R/Subtype/Link/Rect[200 660 214 668]/Border[0 0 0]/H/N>> endobj 20150 0 obj <>/P 12870 0 R/Type/Annot/A 38040 0 R/Subtype/Link/Rect[216 660 230 668]/Border[0 0 0]/H/N>> endobj 20151 0 obj <>/P 12870 0 R/Type/Annot/A 20479 0 R/Subtype/Link/Rect[232 660 246 668]/Border[0 0 0]/H/N>> endobj 20152 0 obj <>/P 12870 0 R/Type/Annot/A 20476 0 R/Subtype/Link/Rect[248 660 262 668]/Border[0 0 0]/H/N>> endobj 20153 0 obj <>/P 12870 0 R/Type/Annot/A 37988 0 R/Subtype/Link/Rect[264 660 278 668]/Border[0 0 0]/H/N>> endobj 20154 0 obj <>/P 12870 0 R/Type/Annot/A 37978 0 R/Subtype/Link/Rect[280 660 294 668]/Border[0 0 0]/H/N>> endobj 20155 0 obj <>/P 12870 0 R/Type/Annot/A 20463 0 R/Subtype/Link/Rect[296 660 310 668]/Border[0 0 0]/H/N>> endobj 20156 0 obj <>/P 12870 0 R/Type/Annot/A 37969 0 R/Subtype/Link/Rect[151 650 165 658]/Border[0 0 0]/H/N>> endobj 20157 0 obj <>/P 12870 0 R/Type/Annot/A 37955 0 R/Subtype/Link/Rect[167 650 183 659]/Border[0 0 0]/H/N>> endobj 20158 0 obj <>/P 12870 0 R/Type/Annot/A 37946 0 R/Subtype/Link/Rect[184 650 198 658]/Border[0 0 0]/H/N>> endobj 20159 0 obj <>/P 12870 0 R/Type/Annot/A 37933 0 R/Subtype/Link/Rect[200 650 214 658]/Border[0 0 0]/H/N>> endobj 20160 0 obj <>/P 12870 0 R/Type/Annot/A 37916 0 R/Subtype/Link/Rect[216 650 230 658]/Border[0 0 0]/H/N>> endobj 20161 0 obj <>/P 12870 0 R/Type/Annot/A 36825 0 R/Subtype/Link/Rect[232 650 246 658]/Border[0 0 0]/H/N>> endobj 20162 0 obj <>/P 12870 0 R/Type/Annot/A 20440 0 R/Subtype/Link/Rect[248 650 262 658]/Border[0 0 0]/H/N>> endobj 20163 0 obj <>/P 12870 0 R/Type/Annot/A 37895 0 R/Subtype/Link/Rect[264 650 276 658]/Border[0 0 0]/H/N>> endobj 20164 0 obj <>/P 12870 0 R/Type/Annot/A 38193 0 R/Subtype/Link/Rect[189 640 201 648]/Border[0 0 0]/H/N>> endobj 20165 0 obj <>/P 12870 0 R/Type/Annot/A 37878 0 R/Subtype/Link/Rect[206 630 223 639]/Border[0 0 0]/H/N>> endobj 20166 0 obj <>/P 12870 0 R/Type/Annot/A 37873 0 R/Subtype/Link/Rect[223 630 237 638]/Border[0 0 0]/H/N>> endobj 20167 0 obj <>/P 12870 0 R/Type/Annot/A 37871 0 R/Subtype/Link/Rect[239 630 253 638]/Border[0 0 0]/H/N>> endobj 20168 0 obj <>/P 12870 0 R/Type/Annot/A 37863 0 R/Subtype/Link/Rect[255 630 267 638]/Border[0 0 0]/H/N>> endobj 20169 0 obj <>/P 12870 0 R/Type/Annot/A 37850 0 R/Subtype/Link/Rect[189 620 201 628]/Border[0 0 0]/H/N>> endobj 20170 0 obj <>/P 12870 0 R/Type/Annot/A 37847 0 R/Subtype/Link/Rect[202 610 216 618]/Border[0 0 0]/H/N>> endobj 20171 0 obj <>/P 12870 0 R/Type/Annot/A 34199 0 R/Subtype/Link/Rect[218 610 234 619]/Border[0 0 0]/H/N>> endobj 20172 0 obj <>/P 12870 0 R/Type/Annot/A 33639 0 R/Subtype/Link/Rect[235 610 249 618]/Border[0 0 0]/H/N>> endobj 20173 0 obj <>/P 12870 0 R/Type/Annot/A 33603 0 R/Subtype/Link/Rect[251 610 265 618]/Border[0 0 0]/H/N>> endobj 20174 0 obj <>/P 12870 0 R/Type/Annot/A 37797 0 R/Subtype/Link/Rect[267 610 281 618]/Border[0 0 0]/H/N>> endobj 20175 0 obj <>/P 12870 0 R/Type/Annot/A 37791 0 R/Subtype/Link/Rect[151 600 167 609]/Border[0 0 0]/H/N>> endobj 20176 0 obj <>/P 12870 0 R/Type/Annot/A 32557 0 R/Subtype/Link/Rect[168 600 182 608]/Border[0 0 0]/H/N>> endobj 20177 0 obj <>/P 12870 0 R/Type/Annot/A 37778 0 R/Subtype/Link/Rect[184 600 198 608]/Border[0 0 0]/H/N>> endobj 20178 0 obj <>/P 12870 0 R/Type/Annot/A 37771 0 R/Subtype/Link/Rect[200 600 217 609]/Border[0 0 0]/H/N>> endobj 20179 0 obj <>/P 12870 0 R/Type/Annot/A 20452 0 R/Subtype/Link/Rect[217 600 231 608]/Border[0 0 0]/H/N>> endobj 20180 0 obj <>/P 12870 0 R/Type/Annot/A 37761 0 R/Subtype/Link/Rect[233 600 247 608]/Border[0 0 0]/H/N>> endobj 20181 0 obj <>/P 12870 0 R/Type/Annot/A 37739 0 R/Subtype/Link/Rect[249 600 261 608]/Border[0 0 0]/H/N>> endobj 20182 0 obj <>/P 12870 0 R/Type/Annot/A 30987 0 R/Subtype/Link/Rect[206 590 223 599]/Border[0 0 0]/H/N>> endobj 20183 0 obj <>/P 12870 0 R/Type/Annot/A 20434 0 R/Subtype/Link/Rect[224 590 236 598]/Border[0 0 0]/H/N>> endobj 20184 0 obj <>/P 12870 0 R/Type/Annot/A 20428 0 R/Subtype/Link/Rect[189 580 201 588]/Border[0 0 0]/H/N>> endobj 20185 0 obj <>/P 12870 0 R/Type/Annot/A 37715 0 R/Subtype/Link/Rect[169 570 183 578]/Border[0 0 0]/H/N>> endobj 20186 0 obj <>/P 12870 0 R/Type/Annot/A 37705 0 R/Subtype/Link/Rect[185 570 199 578]/Border[0 0 0]/H/N>> endobj 20187 0 obj <>/P 12870 0 R/Type/Annot/A 37693 0 R/Subtype/Link/Rect[201 570 213 578]/Border[0 0 0]/H/N>> endobj 20188 0 obj <>/P 12870 0 R/Type/Annot/A 30055 0 R/Subtype/Link/Rect[197 560 214 569]/Border[0 0 0]/H/N>> endobj 20189 0 obj <>/P 12870 0 R/Type/Annot/A 37678 0 R/Subtype/Link/Rect[215 560 227 568]/Border[0 0 0]/H/N>> endobj 20190 0 obj <>/P 12870 0 R/Type/Annot/A 29269 0 R/Subtype/Link/Rect[206 550 220 558]/Border[0 0 0]/H/N>> endobj 20191 0 obj <>/P 12870 0 R/Type/Annot/A 29234 0 R/Subtype/Link/Rect[222 550 234 558]/Border[0 0 0]/H/N>> endobj 20192 0 obj <>/P 12870 0 R/Type/Annot/A 37666 0 R/Subtype/Link/Rect[189 540 201 548]/Border[0 0 0]/H/N>> endobj 20193 0 obj <>/P 12870 0 R/Type/Annot/A 29147 0 R/Subtype/Link/Rect[198 530 206 538]/Border[0 0 0]/H/N>> endobj 20194 0 obj <>/P 12870 0 R/Type/Annot/A 20468 0 R/Subtype/Link/Rect[226 520 240 528]/Border[0 0 0]/H/N>> endobj 20195 0 obj <>/P 12870 0 R/Type/Annot/A 37658 0 R/Subtype/Link/Rect[242 520 256 528]/Border[0 0 0]/H/N>> endobj 20196 0 obj <>/P 12870 0 R/Type/Annot/A 37654 0 R/Subtype/Link/Rect[258 520 272 528]/Border[0 0 0]/H/N>> endobj 20197 0 obj <>/P 12870 0 R/Type/Annot/A 33065 0 R/Subtype/Link/Rect[274 520 286 528]/Border[0 0 0]/H/N>> endobj 20198 0 obj <>/P 12870 0 R/Type/Annot/A 37652 0 R/Subtype/Link/Rect[189 510 201 518]/Border[0 0 0]/H/N>> endobj 20199 0 obj <>/P 12870 0 R/Type/Annot/A 37648 0 R/Subtype/Link/Rect[162 500 174 508]/Border[0 0 0]/H/N>> endobj 20200 0 obj <>/P 12870 0 R/Type/Annot/A 32516 0 R/Subtype/Link/Rect[198 490 215 499]/Border[0 0 0]/H/N>> endobj 20201 0 obj <>/P 12870 0 R/Type/Annot/A 21409 0 R/Subtype/Link/Rect[215 490 229 498]/Border[0 0 0]/H/N>> endobj 20202 0 obj <>/P 12870 0 R/Type/Annot/A 21347 0 R/Subtype/Link/Rect[231 490 245 498]/Border[0 0 0]/H/N>> endobj 20203 0 obj <>/P 12870 0 R/Type/Annot/A 37638 0 R/Subtype/Link/Rect[247 490 264 499]/Border[0 0 0]/H/N>> endobj 20204 0 obj <>/P 12870 0 R/Type/Annot/A 20542 0 R/Subtype/Link/Rect[265 490 279 498]/Border[0 0 0]/H/N>> endobj 20205 0 obj <>/P 12870 0 R/Type/Annot/A 20533 0 R/Subtype/Link/Rect[151 480 167 489]/Border[0 0 0]/H/N>> endobj 20206 0 obj <>/P 12870 0 R/Type/Annot/A 20530 0 R/Subtype/Link/Rect[168 480 182 488]/Border[0 0 0]/H/N>> endobj 20207 0 obj <>/P 12870 0 R/Type/Annot/A 20529 0 R/Subtype/Link/Rect[184 480 196 488]/Border[0 0 0]/H/N>> endobj 20208 0 obj <>/P 12870 0 R/Type/Annot/A 20528 0 R/Subtype/Link/Rect[213 470 225 478]/Border[0 0 0]/H/N>> endobj 20209 0 obj <>/P 12870 0 R/Type/Annot/A 20527 0 R/Subtype/Link/Rect[234 460 248 468]/Border[0 0 0]/H/N>> endobj 20210 0 obj <>/P 12870 0 R/Type/Annot/A 20526 0 R/Subtype/Link/Rect[250 460 262 468]/Border[0 0 0]/H/N>> endobj 20211 0 obj <>/P 12870 0 R/Type/Annot/A 20525 0 R/Subtype/Link/Rect[161 450 171 458]/Border[0 0 0]/H/N>> endobj 20212 0 obj <>/P 12870 0 R/Type/Annot/A 20524 0 R/Subtype/Link/Rect[173 450 190 459]/Border[0 0 0]/H/N>> endobj 20213 0 obj <>/P 12870 0 R/Type/Annot/A 20523 0 R/Subtype/Link/Rect[191 450 203 458]/Border[0 0 0]/H/N>> endobj 20214 0 obj <>/P 12870 0 R/Type/Annot/A 20522 0 R/Subtype/Link/Rect[176 440 188 449]/Border[0 0 0]/H/N>> endobj 20215 0 obj <>/P 12870 0 R/Type/Annot/A 20521 0 R/Subtype/Link/Rect[189 440 199 448]/Border[0 0 0]/H/N>> endobj 20216 0 obj <>/P 12870 0 R/Type/Annot/A 20520 0 R/Subtype/Link/Rect[201 440 218 449]/Border[0 0 0]/H/N>> endobj 20217 0 obj <>/P 12870 0 R/Type/Annot/A 20519 0 R/Subtype/Link/Rect[218 440 232 448]/Border[0 0 0]/H/N>> endobj 20218 0 obj <>/P 12870 0 R/Type/Annot/A 20518 0 R/Subtype/Link/Rect[234 440 248 448]/Border[0 0 0]/H/N>> endobj 20219 0 obj <>/P 12870 0 R/Type/Annot/A 20517 0 R/Subtype/Link/Rect[250 440 264 448]/Border[0 0 0]/H/N>> endobj 20220 0 obj <>/P 12870 0 R/Type/Annot/A 20516 0 R/Subtype/Link/Rect[266 440 280 448]/Border[0 0 0]/H/N>> endobj 20221 0 obj <>/P 12870 0 R/Type/Annot/A 20515 0 R/Subtype/Link/Rect[282 440 296 448]/Border[0 0 0]/H/N>> endobj 20222 0 obj <>/P 12870 0 R/Type/Annot/A 20514 0 R/Subtype/Link/Rect[151 430 165 438]/Border[0 0 0]/H/N>> endobj 20223 0 obj <>/P 12870 0 R/Type/Annot/A 20513 0 R/Subtype/Link/Rect[167 430 181 438]/Border[0 0 0]/H/N>> endobj 20224 0 obj <>/P 12870 0 R/Type/Annot/A 20512 0 R/Subtype/Link/Rect[183 430 197 438]/Border[0 0 0]/H/N>> endobj 20225 0 obj <>/P 12870 0 R/Type/Annot/A 20511 0 R/Subtype/Link/Rect[199 430 215 439]/Border[0 0 0]/H/N>> endobj 20226 0 obj <>/P 12870 0 R/Type/Annot/A 20510 0 R/Subtype/Link/Rect[216 430 230 438]/Border[0 0 0]/H/N>> endobj 20227 0 obj <>/P 12870 0 R/Type/Annot/A 20509 0 R/Subtype/Link/Rect[232 430 246 438]/Border[0 0 0]/H/N>> endobj 20228 0 obj <>/P 12870 0 R/Type/Annot/A 20508 0 R/Subtype/Link/Rect[248 430 262 438]/Border[0 0 0]/H/N>> endobj 20229 0 obj <>/P 12870 0 R/Type/Annot/A 20507 0 R/Subtype/Link/Rect[264 430 278 438]/Border[0 0 0]/H/N>> endobj 20230 0 obj <>/P 12870 0 R/Type/Annot/A 20506 0 R/Subtype/Link/Rect[280 430 294 438]/Border[0 0 0]/H/N>> endobj 20231 0 obj <>/P 12870 0 R/Type/Annot/A 20505 0 R/Subtype/Link/Rect[296 430 310 438]/Border[0 0 0]/H/N>> endobj 20232 0 obj <>/P 12870 0 R/Type/Annot/A 20504 0 R/Subtype/Link/Rect[151 420 165 428]/Border[0 0 0]/H/N>> endobj 20233 0 obj <>/P 12870 0 R/Type/Annot/A 20503 0 R/Subtype/Link/Rect[167 420 181 428]/Border[0 0 0]/H/N>> endobj 20234 0 obj <>/P 12870 0 R/Type/Annot/A 20502 0 R/Subtype/Link/Rect[183 420 197 428]/Border[0 0 0]/H/N>> endobj 20235 0 obj <>/P 12870 0 R/Type/Annot/A 20501 0 R/Subtype/Link/Rect[199 420 213 428]/Border[0 0 0]/H/N>> endobj 20236 0 obj <>/P 12870 0 R/Type/Annot/A 20500 0 R/Subtype/Link/Rect[215 420 231 429]/Border[0 0 0]/H/N>> endobj 20237 0 obj <>/P 12870 0 R/Type/Annot/A 20499 0 R/Subtype/Link/Rect[232 420 246 428]/Border[0 0 0]/H/N>> endobj 20238 0 obj <>/P 12870 0 R/Type/Annot/A 20498 0 R/Subtype/Link/Rect[248 420 262 428]/Border[0 0 0]/H/N>> endobj 20239 0 obj <>/P 12870 0 R/Type/Annot/A 20497 0 R/Subtype/Link/Rect[264 420 278 428]/Border[0 0 0]/H/N>> endobj 20240 0 obj <>/P 12870 0 R/Type/Annot/A 20496 0 R/Subtype/Link/Rect[280 420 294 428]/Border[0 0 0]/H/N>> endobj 20241 0 obj <>/P 12870 0 R/Type/Annot/A 20495 0 R/Subtype/Link/Rect[296 420 308 428]/Border[0 0 0]/H/N>> endobj 20242 0 obj <>/P 12870 0 R/Type/Annot/A 20494 0 R/Subtype/Link/Rect[159 410 172 419]/Border[0 0 0]/H/N>> endobj 20243 0 obj <>/P 12870 0 R/Type/Annot/A 20493 0 R/Subtype/Link/Rect[172 410 182 418]/Border[0 0 0]/H/N>> endobj 20244 0 obj <>/P 12870 0 R/Type/Annot/A 20492 0 R/Subtype/Link/Rect[184 410 194 418]/Border[0 0 0]/H/N>> endobj 20245 0 obj <>/P 12870 0 R/Type/Annot/A 20491 0 R/Subtype/Link/Rect[196 410 209 419]/Border[0 0 0]/H/N>> endobj 20246 0 obj <>/P 12870 0 R/Type/Annot/A 20490 0 R/Subtype/Link/Rect[210 410 220 418]/Border[0 0 0]/H/N>> endobj 20247 0 obj <>/P 12870 0 R/Type/Annot/A 20489 0 R/Subtype/Link/Rect[222 410 236 418]/Border[0 0 0]/H/N>> endobj 20248 0 obj <>/P 12870 0 R/Type/Annot/A 20488 0 R/Subtype/Link/Rect[238 410 252 418]/Border[0 0 0]/H/N>> endobj 20249 0 obj <>/P 12870 0 R/Type/Annot/A 20487 0 R/Subtype/Link/Rect[254 410 268 418]/Border[0 0 0]/H/N>> endobj 20250 0 obj <>/P 12870 0 R/Type/Annot/A 20486 0 R/Subtype/Link/Rect[270 410 284 418]/Border[0 0 0]/H/N>> endobj 20251 0 obj <>/P 12870 0 R/Type/Annot/A 20485 0 R/Subtype/Link/Rect[151 400 167 409]/Border[0 0 0]/H/N>> endobj 20252 0 obj <>/P 12870 0 R/Type/Annot/A 20484 0 R/Subtype/Link/Rect[168 400 182 408]/Border[0 0 0]/H/N>> endobj 20253 0 obj <>/P 12870 0 R/Type/Annot/A 20483 0 R/Subtype/Link/Rect[184 400 201 409]/Border[0 0 0]/H/N>> endobj 20254 0 obj <>/P 12870 0 R/Type/Annot/A 20482 0 R/Subtype/Link/Rect[201 400 215 408]/Border[0 0 0]/H/N>> endobj 20255 0 obj <>/P 12870 0 R/Type/Annot/A 20481 0 R/Subtype/Link/Rect[217 400 231 408]/Border[0 0 0]/H/N>> endobj 20256 0 obj <>/P 12870 0 R/Type/Annot/A 20480 0 R/Subtype/Link/Rect[233 400 247 408]/Border[0 0 0]/H/N>> endobj 20257 0 obj <>/P 12870 0 R/Type/Annot/A 20477 0 R/Subtype/Link/Rect[249 400 263 408]/Border[0 0 0]/H/N>> endobj 20258 0 obj <>/P 12870 0 R/Type/Annot/A 20474 0 R/Subtype/Link/Rect[265 400 279 408]/Border[0 0 0]/H/N>> endobj 20259 0 obj <>/P 12870 0 R/Type/Annot/A 20471 0 R/Subtype/Link/Rect[281 400 295 408]/Border[0 0 0]/H/N>> endobj 20260 0 obj <>/P 12870 0 R/Type/Annot/A 20467 0 R/Subtype/Link/Rect[151 390 165 398]/Border[0 0 0]/H/N>> endobj 20261 0 obj <>/P 12870 0 R/Type/Annot/A 20462 0 R/Subtype/Link/Rect[167 390 181 398]/Border[0 0 0]/H/N>> endobj 20262 0 obj <>/P 12870 0 R/Type/Annot/A 20460 0 R/Subtype/Link/Rect[183 390 195 398]/Border[0 0 0]/H/N>> endobj 20263 0 obj <>/P 12870 0 R/Type/Annot/A 20458 0 R/Subtype/Link/Rect[211 380 219 388]/Border[0 0 0]/H/N>> endobj 20264 0 obj <>/P 12870 0 R/Type/Annot/A 20457 0 R/Subtype/Link/Rect[197 370 211 378]/Border[0 0 0]/H/N>> endobj 20265 0 obj <>/P 12870 0 R/Type/Annot/A 20455 0 R/Subtype/Link/Rect[213 370 225 378]/Border[0 0 0]/H/N>> endobj 20266 0 obj <>/P 12870 0 R/Type/Annot/A 20450 0 R/Subtype/Link/Rect[260 360 270 368]/Border[0 0 0]/H/N>> endobj 20267 0 obj <>/P 12870 0 R/Type/Annot/A 20446 0 R/Subtype/Link/Rect[272 360 286 368]/Border[0 0 0]/H/N>> endobj 20268 0 obj <>/P 12870 0 R/Type/Annot/A 20443 0 R/Subtype/Link/Rect[288 360 302 368]/Border[0 0 0]/H/N>> endobj 20269 0 obj <>/P 12870 0 R/Type/Annot/A 20441 0 R/Subtype/Link/Rect[151 350 163 358]/Border[0 0 0]/H/N>> endobj 20270 0 obj <>/P 12870 0 R/Type/Annot/A 20435 0 R/Subtype/Link/Rect[192 340 206 348]/Border[0 0 0]/H/N>> endobj 20271 0 obj <>/P 12870 0 R/Type/Annot/A 20431 0 R/Subtype/Link/Rect[208 340 222 348]/Border[0 0 0]/H/N>> endobj 20272 0 obj <>/P 12870 0 R/Type/Annot/A 20426 0 R/Subtype/Link/Rect[224 340 236 348]/Border[0 0 0]/H/N>> endobj 20273 0 obj <>/P 12870 0 R/Type/Annot/A 20422 0 R/Subtype/Link/Rect[211 330 223 338]/Border[0 0 0]/H/N>> endobj 20274 0 obj <>/P 12870 0 R/Type/Annot/A 20419 0 R/Subtype/Link/Rect[211 320 228 329]/Border[0 0 0]/H/N>> endobj 20275 0 obj <>/P 12870 0 R/Type/Annot/A 20417 0 R/Subtype/Link/Rect[229 320 243 328]/Border[0 0 0]/H/N>> endobj 20276 0 obj <>/P 12870 0 R/Type/Annot/A 20413 0 R/Subtype/Link/Rect[245 320 259 328]/Border[0 0 0]/H/N>> endobj 20277 0 obj <>/P 12870 0 R/Type/Annot/A 20410 0 R/Subtype/Link/Rect[261 320 275 328]/Border[0 0 0]/H/N>> endobj 20278 0 obj <>/P 12870 0 R/Type/Annot/A 20478 0 R/Subtype/Link/Rect[277 320 289 328]/Border[0 0 0]/H/N>> endobj 20279 0 obj <>/P 12870 0 R/Type/Annot/A 44785 0 R/Subtype/Link/Rect[189 310 201 318]/Border[0 0 0]/H/N>> endobj 20280 0 obj <>/P 12870 0 R/Type/Annot/A 20470 0 R/Subtype/Link/Rect[216 300 233 309]/Border[0 0 0]/H/N>> endobj 20281 0 obj <>/P 12870 0 R/Type/Annot/A 44701 0 R/Subtype/Link/Rect[234 300 246 308]/Border[0 0 0]/H/N>> endobj 20282 0 obj <>/P 12870 0 R/Type/Annot/A 44676 0 R/Subtype/Link/Rect[197 290 214 299]/Border[0 0 0]/H/N>> endobj 20283 0 obj <>/P 12870 0 R/Type/Annot/A 44650 0 R/Subtype/Link/Rect[214 290 228 298]/Border[0 0 0]/H/N>> endobj 20284 0 obj <>/P 12870 0 R/Type/Annot/A 44600 0 R/Subtype/Link/Rect[230 290 244 298]/Border[0 0 0]/H/N>> endobj 20285 0 obj <>/P 12870 0 R/Type/Annot/A 20456 0 R/Subtype/Link/Rect[246 290 260 298]/Border[0 0 0]/H/N>> endobj 20286 0 obj <>/P 12870 0 R/Type/Annot/A 20453 0 R/Subtype/Link/Rect[262 290 276 298]/Border[0 0 0]/H/N>> endobj 20287 0 obj <>/P 12870 0 R/Type/Annot/A 44498 0 R/Subtype/Link/Rect[278 290 290 298]/Border[0 0 0]/H/N>> endobj 20288 0 obj <>/P 12870 0 R/Type/Annot/A 44454 0 R/Subtype/Link/Rect[189 280 201 288]/Border[0 0 0]/H/N>> endobj 20289 0 obj <>/P 12870 0 R/Type/Annot/A 44417 0 R/Subtype/Link/Rect[169 270 185 279]/Border[0 0 0]/H/N>> endobj 20290 0 obj <>/P 12870 0 R/Type/Annot/A 20438 0 R/Subtype/Link/Rect[186 270 200 278]/Border[0 0 0]/H/N>> endobj 20291 0 obj <>/P 12870 0 R/Type/Annot/A 20433 0 R/Subtype/Link/Rect[202 270 216 278]/Border[0 0 0]/H/N>> endobj 20292 0 obj <>/P 12870 0 R/Type/Annot/A 44323 0 R/Subtype/Link/Rect[218 270 232 278]/Border[0 0 0]/H/N>> endobj 20293 0 obj <>/P 12870 0 R/Type/Annot/A 44263 0 R/Subtype/Link/Rect[234 270 248 278]/Border[0 0 0]/H/N>> endobj 20294 0 obj <>/P 12870 0 R/Type/Annot/A 44244 0 R/Subtype/Link/Rect[250 270 264 278]/Border[0 0 0]/H/N>> endobj 20295 0 obj <>/P 12870 0 R/Type/Annot/A 20418 0 R/Subtype/Link/Rect[266 270 278 278]/Border[0 0 0]/H/N>> endobj 20296 0 obj <>/P 12870 0 R/Type/Annot/A 44174 0 R/Subtype/Link/Rect[189 260 201 268]/Border[0 0 0]/H/N>> endobj 20297 0 obj <>/P 12870 0 R/Type/Annot/A 44130 0 R/Subtype/Link/Rect[173 250 185 258]/Border[0 0 0]/H/N>> endobj 20298 0 obj <>/P 12870 0 R/Type/Annot/A 44105 0 R/Subtype/Link/Rect[205 240 213 248]/Border[0 0 0]/H/N>> endobj 20299 0 obj <>/P 12870 0 R/Type/Annot/A 20472 0 R/Subtype/Link/Rect[204 230 220 239]/Border[0 0 0]/H/N>> endobj 20300 0 obj <>/P 12870 0 R/Type/Annot/A 44033 0 R/Subtype/Link/Rect[221 230 235 238]/Border[0 0 0]/H/N>> endobj 20301 0 obj <>/P 12870 0 R/Type/Annot/A 20466 0 R/Subtype/Link/Rect[237 230 249 238]/Border[0 0 0]/H/N>> endobj 20302 0 obj <>/P 12870 0 R/Type/Annot/A 43963 0 R/Subtype/Link/Rect[234 220 246 228]/Border[0 0 0]/H/N>> endobj 20303 0 obj <>/P 12870 0 R/Type/Annot/A 20459 0 R/Subtype/Link/Rect[188 210 200 218]/Border[0 0 0]/H/N>> endobj 20304 0 obj <>/P 12870 0 R/Type/Annot/A 43879 0 R/Subtype/Link/Rect[145 172 159 180]/Border[0 0 0]/H/N>> endobj 20305 0 obj <>/P 12870 0 R/Type/Annot/A 43843 0 R/Subtype/Link/Rect[161 172 173 180]/Border[0 0 0]/H/N>> endobj 20306 0 obj <>/P 12870 0 R/Type/Annot/A 20451 0 R/Subtype/Link/Rect[197 162 209 170]/Border[0 0 0]/H/N>> endobj 20307 0 obj <>/P 12870 0 R/Type/Annot/A 20447 0 R/Subtype/Link/Rect[197 152 211 160]/Border[0 0 0]/H/N>> endobj 20308 0 obj <>/P 12870 0 R/Type/Annot/A 43740 0 R/Subtype/Link/Rect[213 152 230 161]/Border[0 0 0]/H/N>> endobj 20309 0 obj <>/P 12870 0 R/Type/Annot/A 43701 0 R/Subtype/Link/Rect[230 152 242 160]/Border[0 0 0]/H/N>> endobj 20310 0 obj <>/P 12870 0 R/Type/Annot/A 20436 0 R/Subtype/Link/Rect[413 670 427 678]/Border[0 0 0]/H/N>> endobj 20311 0 obj <>/P 12870 0 R/Type/Annot/A 20449 0 R/Subtype/Link/Rect[429 670 446 678]/Border[0 0 0]/H/N>> endobj 20312 0 obj <>/P 12870 0 R/Type/Annot/A 20425 0 R/Subtype/Link/Rect[447 670 459 678]/Border[0 0 0]/H/N>> endobj 20313 0 obj <>/P 12870 0 R/Type/Annot/A 20420 0 R/Subtype/Link/Rect[439 660 451 668]/Border[0 0 0]/H/N>> endobj 20314 0 obj <>/P 12870 0 R/Type/Annot/A 43518 0 R/Subtype/Link/Rect[425 650 437 658]/Border[0 0 0]/H/N>> endobj 20315 0 obj <>/P 12870 0 R/Type/Annot/A 20415 0 R/Subtype/Link/Rect[423 640 435 648]/Border[0 0 0]/H/N>> endobj 20316 0 obj <>/P 12870 0 R/Type/Annot/A 20412 0 R/Subtype/Link/Rect[389 620 403 628]/Border[0 0 0]/H/N>> endobj 20317 0 obj <>/P 12870 0 R/Type/Annot/A 20475 0 R/Subtype/Link/Rect[405 620 419 628]/Border[0 0 0]/H/N>> endobj 20318 0 obj <>/P 12870 0 R/Type/Annot/A 43365 0 R/Subtype/Link/Rect[421 620 435 628]/Border[0 0 0]/H/N>> endobj 20319 0 obj <>/P 12870 0 R/Type/Annot/A 20469 0 R/Subtype/Link/Rect[437 620 451 628]/Border[0 0 0]/H/N>> endobj 20320 0 obj <>/P 12870 0 R/Type/Annot/A 20464 0 R/Subtype/Link/Rect[453 620 465 628]/Border[0 0 0]/H/N>> endobj 20321 0 obj <>/P 12870 0 R/Type/Annot/A 43233 0 R/Subtype/Link/Rect[376 610 388 618]/Border[0 0 0]/H/N>> endobj 20322 0 obj <>/P 12870 0 R/Type/Annot/A 43180 0 R/Subtype/Link/Rect[380 600 392 608]/Border[0 0 0]/H/N>> endobj 20323 0 obj <>/P 12870 0 R/Type/Annot/A 43161 0 R/Subtype/Link/Rect[372 590 384 598]/Border[0 0 0]/H/N>> endobj 20324 0 obj <>/P 12870 0 R/Type/Annot/A 20454 0 R/Subtype/Link/Rect[380 580 394 588]/Border[0 0 0]/H/N>> endobj 20325 0 obj <>/P 12870 0 R/Type/Annot/A 20448 0 R/Subtype/Link/Rect[396 580 410 588]/Border[0 0 0]/H/N>> endobj 20326 0 obj <>/P 12870 0 R/Type/Annot/A 20445 0 R/Subtype/Link/Rect[412 580 426 588]/Border[0 0 0]/H/N>> endobj 20327 0 obj <>/P 12870 0 R/Type/Annot/A 20442 0 R/Subtype/Link/Rect[428 580 440 588]/Border[0 0 0]/H/N>> endobj 20328 0 obj <>/P 12870 0 R/Type/Annot/A 20437 0 R/Subtype/Link/Rect[463 570 475 578]/Border[0 0 0]/H/N>> endobj 20329 0 obj <>/P 12870 0 R/Type/Annot/A 20432 0 R/Subtype/Link/Rect[420 560 432 568]/Border[0 0 0]/H/N>> endobj 20330 0 obj <>/P 12870 0 R/Type/Annot/A 20427 0 R/Subtype/Link/Rect[420 550 432 558]/Border[0 0 0]/H/N>> endobj 20331 0 obj <>/P 12870 0 R/Type/Annot/A 20423 0 R/Subtype/Link/Rect[414 540 428 548]/Border[0 0 0]/H/N>> endobj 20332 0 obj <>/P 12870 0 R/Type/Annot/A 42827 0 R/Subtype/Link/Rect[430 540 447 549]/Border[0 0 0]/H/N>> endobj 20333 0 obj <>/P 12870 0 R/Type/Annot/A 42777 0 R/Subtype/Link/Rect[448 540 460 548]/Border[0 0 0]/H/N>> endobj 20334 0 obj <>/P 12870 0 R/Type/Annot/A 42748 0 R/Subtype/Link/Rect[415 530 427 538]/Border[0 0 0]/H/N>> endobj 20335 0 obj <>/P 12870 0 R/Type/Annot/A 20473 0 R/Subtype/Link/Rect[414 520 428 528]/Border[0 0 0]/H/N>> endobj 20336 0 obj <>/P 12870 0 R/Type/Annot/A 42678 0 R/Subtype/Link/Rect[430 520 442 528]/Border[0 0 0]/H/N>> endobj 20337 0 obj <>/P 12870 0 R/Type/Annot/A 42636 0 R/Subtype/Link/Rect[397 510 409 518]/Border[0 0 0]/H/N>> endobj 20338 0 obj <>/P 12870 0 R/Type/Annot/A 20461 0 R/Subtype/Link/Rect[405 500 417 508]/Border[0 0 0]/H/N>> endobj 20339 0 obj <>/P 12870 0 R/Type/Annot/A 42567 0 R/Subtype/Link/Rect[395 490 412 499]/Border[0 0 0]/H/N>> endobj 20340 0 obj <>/P 12870 0 R/Type/Annot/A 42533 0 R/Subtype/Link/Rect[413 490 427 498]/Border[0 0 0]/H/N>> endobj 20341 0 obj <>/P 12870 0 R/Type/Annot/A 42492 0 R/Subtype/Link/Rect[429 490 441 498]/Border[0 0 0]/H/N>> endobj 20342 0 obj <>/P 12870 0 R/Type/Annot/A 42452 0 R/Subtype/Link/Rect[395 480 409 488]/Border[0 0 0]/H/N>> endobj 20343 0 obj <>/P 12870 0 R/Type/Annot/A 20416 0 R/Subtype/Link/Rect[411 480 423 488]/Border[0 0 0]/H/N>> endobj 20344 0 obj <>/P 12870 0 R/Type/Annot/A 42374 0 R/Subtype/Link/Rect[400 470 412 478]/Border[0 0 0]/H/N>> endobj 20345 0 obj <>/P 12870 0 R/Type/Annot/A 20439 0 R/Subtype/Link/Rect[405 460 417 468]/Border[0 0 0]/H/N>> endobj 20346 0 obj <>/P 12870 0 R/Type/Annot/A 42302 0 R/Subtype/Link/Rect[410 450 422 458]/Border[0 0 0]/H/N>> endobj 20347 0 obj <>/P 12870 0 R/Type/Annot/A 42250 0 R/Subtype/Link/Rect[400 440 414 448]/Border[0 0 0]/H/N>> endobj 20348 0 obj <>/P 12870 0 R/Type/Annot/A 20424 0 R/Subtype/Link/Rect[416 440 433 449]/Border[0 0 0]/H/N>> endobj 20349 0 obj <>/P 12870 0 R/Type/Annot/A 42164 0 R/Subtype/Link/Rect[433 440 447 448]/Border[0 0 0]/H/N>> endobj 20350 0 obj <>/P 12870 0 R/Type/Annot/A 42129 0 R/Subtype/Link/Rect[449 440 463 448]/Border[0 0 0]/H/N>> endobj 20351 0 obj <>/P 12870 0 R/Type/Annot/A 42083 0 R/Subtype/Link/Rect[465 440 482 449]/Border[0 0 0]/H/N>> endobj 20352 0 obj <>/P 12870 0 R/Type/Annot/A 42043 0 R/Subtype/Link/Rect[483 440 495 448]/Border[0 0 0]/H/N>> endobj 20353 0 obj <>/P 12870 0 R/Type/Annot/A 41999 0 R/Subtype/Link/Rect[414 430 428 438]/Border[0 0 0]/H/N>> endobj 20354 0 obj <>/P 12870 0 R/Type/Annot/A 20465 0 R/Subtype/Link/Rect[430 430 442 438]/Border[0 0 0]/H/N>> endobj 20355 0 obj <>/P 12870 0 R/Type/Annot/A 41932 0 R/Subtype/Link/Rect[397 420 409 428]/Border[0 0 0]/H/N>> endobj 20356 0 obj <>/P 12870 0 R/Type/Annot/A 41891 0 R/Subtype/Link/Rect[410 410 422 418]/Border[0 0 0]/H/N>> endobj 20357 0 obj <>/P 12870 0 R/Type/Annot/A 42585 0 R/Subtype/Link/Rect[397 400 409 408]/Border[0 0 0]/H/N>> endobj 20358 0 obj <>/P 12870 0 R/Type/Annot/A 41786 0 R/Subtype/Link/Rect[419 390 431 398]/Border[0 0 0]/H/N>> endobj 20359 0 obj <>/P 12870 0 R/Type/Annot/A 41736 0 R/Subtype/Link/Rect[387 380 401 388]/Border[0 0 0]/H/N>> endobj 20360 0 obj <>/P 12870 0 R/Type/Annot/A 20444 0 R/Subtype/Link/Rect[403 380 417 388]/Border[0 0 0]/H/N>> endobj 20361 0 obj <>/P 12870 0 R/Type/Annot/A 41647 0 R/Subtype/Link/Rect[419 380 433 388]/Border[0 0 0]/H/N>> endobj 20362 0 obj <>/P 12870 0 R/Type/Annot/A 41602 0 R/Subtype/Link/Rect[435 380 449 388]/Border[0 0 0]/H/N>> endobj 20363 0 obj <>/P 12870 0 R/Type/Annot/A 20429 0 R/Subtype/Link/Rect[451 380 467 389]/Border[0 0 0]/H/N>> endobj 20364 0 obj <>/P 12870 0 R/Type/Annot/A 41518 0 R/Subtype/Link/Rect[468 380 482 388]/Border[0 0 0]/H/N>> endobj 20365 0 obj <>/P 12870 0 R/Type/Annot/A 41471 0 R/Subtype/Link/Rect[484 380 496 388]/Border[0 0 0]/H/N>> endobj 20366 0 obj <>/P 12870 0 R/Type/Annot/A 41438 0 R/Subtype/Link/Rect[400 370 417 379]/Border[0 0 0]/H/N>> endobj 20367 0 obj <>/P 12870 0 R/Type/Annot/A 20414 0 R/Subtype/Link/Rect[418 370 430 378]/Border[0 0 0]/H/N>> endobj 20368 0 obj <>/P 12870 0 R/Type/Annot/A 41354 0 R/Subtype/Link/Rect[396 360 408 368]/Border[0 0 0]/H/N>> endobj 20369 0 obj <>/P 12870 0 R/Type/Annot/A 41323 0 R/Subtype/Link/Rect[400 350 412 358]/Border[0 0 0]/H/N>> endobj 20370 0 obj <>/P 12870 0 R/Type/Annot/A 41286 0 R/Subtype/Link/Rect[405 340 417 348]/Border[0 0 0]/H/N>> endobj 20371 0 obj <>/P 12870 0 R/Type/Annot/A 41261 0 R/Subtype/Link/Rect[395 330 412 339]/Border[0 0 0]/H/N>> endobj 20372 0 obj <>/P 12870 0 R/Type/Annot/A 41212 0 R/Subtype/Link/Rect[413 330 427 338]/Border[0 0 0]/H/N>> endobj 20373 0 obj <>/P 12870 0 R/Type/Annot/A 43324 0 R/Subtype/Link/Rect[429 330 441 338]/Border[0 0 0]/H/N>> endobj 20374 0 obj <>/P 12870 0 R/Type/Annot/A 41161 0 R/Subtype/Link/Rect[368 320 381 329]/Border[0 0 0]/H/N>> endobj 20375 0 obj <>/P 12870 0 R/Type/Annot/A 41129 0 R/Subtype/Link/Rect[381 320 391 328]/Border[0 0 0]/H/N>> endobj 20376 0 obj <>/P 12870 0 R/Type/Annot/A 41098 0 R/Subtype/Link/Rect[393 320 403 328]/Border[0 0 0]/H/N>> endobj 20377 0 obj <>/P 12870 0 R/Type/Annot/A 41051 0 R/Subtype/Link/Rect[405 320 419 328]/Border[0 0 0]/H/N>> endobj 20378 0 obj <>/P 12870 0 R/Type/Annot/A 40743 0 R/Subtype/Link/Rect[421 320 435 328]/Border[0 0 0]/H/N>> endobj 20379 0 obj <>/P 12870 0 R/Type/Annot/A 40711 0 R/Subtype/Link/Rect[437 320 451 328]/Border[0 0 0]/H/N>> endobj 20380 0 obj <>/P 12870 0 R/Type/Annot/A 40678 0 R/Subtype/Link/Rect[453 320 467 328]/Border[0 0 0]/H/N>> endobj 20381 0 obj <>/P 12870 0 R/Type/Annot/A 40113 0 R/Subtype/Link/Rect[469 320 481 328]/Border[0 0 0]/H/N>> endobj 20382 0 obj <>/P 12870 0 R/Type/Annot/A 40085 0 R/Subtype/Link/Rect[402 310 418 319]/Border[0 0 0]/H/N>> endobj 20383 0 obj <>/P 12870 0 R/Type/Annot/A 39527 0 R/Subtype/Link/Rect[419 310 431 318]/Border[0 0 0]/H/N>> endobj 20384 0 obj <>/P 12870 0 R/Type/Annot/A 39490 0 R/Subtype/Link/Rect[372 300 386 308]/Border[0 0 0]/H/N>> endobj 20385 0 obj <>/P 12870 0 R/Type/Annot/A 38969 0 R/Subtype/Link/Rect[388 300 402 308]/Border[0 0 0]/H/N>> endobj 20386 0 obj <>/P 12870 0 R/Type/Annot/A 38925 0 R/Subtype/Link/Rect[404 300 421 309]/Border[0 0 0]/H/N>> endobj 20387 0 obj <>/P 12870 0 R/Type/Annot/A 38393 0 R/Subtype/Link/Rect[421 300 435 308]/Border[0 0 0]/H/N>> endobj 20388 0 obj <>/P 12870 0 R/Type/Annot/A 38343 0 R/Subtype/Link/Rect[437 300 449 308]/Border[0 0 0]/H/N>> endobj 20389 0 obj <>/P 12870 0 R/Type/Annot/A 41969 0 R/Subtype/Link/Rect[403 290 417 298]/Border[0 0 0]/H/N>> endobj 20390 0 obj <>/P 12870 0 R/Type/Annot/A 38276 0 R/Subtype/Link/Rect[419 290 433 298]/Border[0 0 0]/H/N>> endobj 20391 0 obj <>/P 12870 0 R/Type/Annot/A 38245 0 R/Subtype/Link/Rect[435 290 449 298]/Border[0 0 0]/H/N>> endobj 20392 0 obj <>/P 12870 0 R/Type/Annot/A 36791 0 R/Subtype/Link/Rect[451 290 463 298]/Border[0 0 0]/H/N>> endobj 20393 0 obj <>/P 12870 0 R/Type/Annot/A 38214 0 R/Subtype/Link/Rect[410 280 424 288]/Border[0 0 0]/H/N>> endobj 20394 0 obj <>/P 12870 0 R/Type/Annot/A 38206 0 R/Subtype/Link/Rect[426 280 438 288]/Border[0 0 0]/H/N>> endobj 20395 0 obj <>/P 12870 0 R/Type/Annot/A 36688 0 R/Subtype/Link/Rect[397 270 409 278]/Border[0 0 0]/H/N>> endobj 20396 0 obj <>/P 12870 0 R/Type/Annot/A 38176 0 R/Subtype/Link/Rect[400 260 412 268]/Border[0 0 0]/H/N>> endobj 20397 0 obj <>/P 12870 0 R/Type/Annot/A 35856 0 R/Subtype/Link/Rect[400 250 412 258]/Border[0 0 0]/H/N>> endobj 20398 0 obj <>/P 12870 0 R/Type/Annot/A 38152 0 R/Subtype/Link/Rect[415 240 427 248]/Border[0 0 0]/H/N>> endobj 20399 0 obj <>/P 12870 0 R/Type/Annot/A 35048 0 R/Subtype/Link/Rect[405 230 417 238]/Border[0 0 0]/H/N>> endobj 20400 0 obj <>/P 12870 0 R/Type/Annot/A 34259 0 R/Subtype/Link/Rect[397 220 409 228]/Border[0 0 0]/H/N>> endobj 20401 0 obj <>/P 12870 0 R/Type/Annot/A 34227 0 R/Subtype/Link/Rect[419 210 433 218]/Border[0 0 0]/H/N>> endobj 20402 0 obj <>/P 12870 0 R/Type/Annot/A 34188 0 R/Subtype/Link/Rect[435 210 447 218]/Border[0 0 0]/H/N>> endobj 20403 0 obj <>/P 12870 0 R/Type/Annot/A 33629 0 R/Subtype/Link/Rect[397 200 409 208]/Border[0 0 0]/H/N>> endobj 20404 0 obj <>/P 12870 0 R/Type/Annot/A 33601 0 R/Subtype/Link/Rect[414 190 428 198]/Border[0 0 0]/H/N>> endobj 20405 0 obj <>/P 12870 0 R/Type/Annot/A 33064 0 R/Subtype/Link/Rect[430 190 442 198]/Border[0 0 0]/H/N>> endobj 20406 0 obj <>/P 12870 0 R/Type/Annot/A 33039 0 R/Subtype/Link/Rect[397 180 409 188]/Border[0 0 0]/H/N>> endobj 20407 0 obj <>/P 12870 0 R/Type/Annot/A 20430 0 R/Subtype/Link/Rect[410 170 422 178]/Border[0 0 0]/H/N>> endobj 20408 0 obj <>/P 12870 0 R/Type/Annot/A 38244 0 R/Subtype/Link/Rect[397 160 409 168]/Border[0 0 0]/H/N>> endobj 20409 0 obj <>/P 12870 0 R/Type/Annot/A 36789 0 R/Subtype/Link/Rect[405 150 417 158]/Border[0 0 0]/H/N>> endobj 20410 0 obj <> endobj 20411 0 obj <> endobj 20412 0 obj <> endobj 20413 0 obj <> endobj 20414 0 obj <> endobj 20415 0 obj <> endobj 20416 0 obj <> endobj 20417 0 obj <> endobj 20418 0 obj <> endobj 20419 0 obj <> endobj 20420 0 obj <> endobj 20421 0 obj <> endobj 20422 0 obj <> endobj 20423 0 obj <> endobj 20424 0 obj <> endobj 20425 0 obj <> endobj 20426 0 obj <> endobj 20427 0 obj <> endobj 20428 0 obj <> endobj 20429 0 obj <> endobj 20430 0 obj <> endobj 20431 0 obj <> endobj 20432 0 obj <> endobj 20433 0 obj <> endobj 20434 0 obj <> endobj 20435 0 obj <> endobj 20436 0 obj <> endobj 20437 0 obj <> endobj 20438 0 obj <> endobj 20439 0 obj <> endobj 20440 0 obj <> endobj 20441 0 obj <> endobj 20442 0 obj <> endobj 20443 0 obj <> endobj 20444 0 obj <> endobj 20445 0 obj <> endobj 20446 0 obj <> endobj 20447 0 obj <> endobj 20448 0 obj <> endobj 20449 0 obj <> endobj 20450 0 obj <> endobj 20451 0 obj <> endobj 20452 0 obj <> endobj 20453 0 obj <> endobj 20454 0 obj <> endobj 20455 0 obj <> endobj 20456 0 obj <> endobj 20457 0 obj <> endobj 20458 0 obj <> endobj 20459 0 obj <> endobj 20460 0 obj <> endobj 20461 0 obj <> endobj 20462 0 obj <> endobj 20463 0 obj <> endobj 20464 0 obj <> endobj 20465 0 obj <> endobj 20466 0 obj <> endobj 20467 0 obj <> endobj 20468 0 obj <> endobj 20469 0 obj <> endobj 20470 0 obj <> endobj 20471 0 obj <> endobj 20472 0 obj <> endobj 20473 0 obj <> endobj 20474 0 obj <> endobj 20475 0 obj <> endobj 20476 0 obj <> endobj 20477 0 obj <> endobj 20478 0 obj <> endobj 20479 0 obj <> endobj 20480 0 obj <> endobj 20481 0 obj <> endobj 20482 0 obj <> endobj 20483 0 obj <> endobj 20484 0 obj <> endobj 20485 0 obj <> endobj 20486 0 obj <> endobj 20487 0 obj <> endobj 20488 0 obj <> endobj 20489 0 obj <> endobj 20490 0 obj <> endobj 20491 0 obj <> endobj 20492 0 obj <> endobj 20493 0 obj <> endobj 20494 0 obj <> endobj 20495 0 obj <> endobj 20496 0 obj <> endobj 20497 0 obj <> endobj 20498 0 obj <> endobj 20499 0 obj <> endobj 20500 0 obj <> endobj 20501 0 obj <> endobj 20502 0 obj <> endobj 20503 0 obj <> endobj 20504 0 obj <> endobj 20505 0 obj <> endobj 20506 0 obj <> endobj 20507 0 obj <> endobj 20508 0 obj <> endobj 20509 0 obj <> endobj 20510 0 obj <> endobj 20511 0 obj <> endobj 20512 0 obj <> endobj 20513 0 obj <> endobj 20514 0 obj <> endobj 20515 0 obj <> endobj 20516 0 obj <> endobj 20517 0 obj <> endobj 20518 0 obj <> endobj 20519 0 obj <> endobj 20520 0 obj <> endobj 20521 0 obj <> endobj 20522 0 obj <> endobj 20523 0 obj <> endobj 20524 0 obj <> endobj 20525 0 obj <> endobj 20526 0 obj <> endobj 20527 0 obj <> endobj 20528 0 obj <> endobj 20529 0 obj <> endobj 20530 0 obj <> endobj 20531 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 20532 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 20533 0 obj <> endobj 20534 0 obj <> endobj 20535 0 obj <> endobj 20536 0 obj <> endobj 20537 0 obj <> endobj 20538 0 obj <> endobj 20539 0 obj <> endobj 20540 0 obj <> endobj 20541 0 obj <> endobj 20542 0 obj <> endobj 20543 0 obj <> endobj 20544 0 obj <> stream q /X1 Do Q q endstream endobj 20545 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 20546 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 20547 0 obj <> stream HWn8}W$,t&lT$zvE_}Uͮi۪$m\O]r\m='l$'9$i> ߫\A'azS}O>Cg ays}f)"Z׶ZצQ>{(DM|M| Pj]F!=2DMjZ(DMjZצQ{O QkZצQ{O Qk(Zֵ Qk(ZֵiS-CTGT4gֵi޵i޵ Qk(ZֵiS-GTֵiS-GT4 a節#umBT4 a節#umTպ6@!umTպ6B{j]>j]F]պ6ٻ6ٻ6@!umT+պ6B{j]պ6B{j]F!= D Pj]F!= DMjZ(DMjZצQ{OQkQk(kZצQ>{צQ><\->x 6J6>QB$'}^]U|FxDDfpj^Y4 \<,TNսCh|(N/gsEP9c5'o1e x| K(\xyңbA_,YdIuվal_[}]4taccUE O ks,✭qca܆0'GԨ,[ (N0 Iân'ڎV;e;}᷃j =S==5 ުlЅU\&|{?7gYqR۳ G"s6xI<fl6Van֏fN^f4J$_}<֥A<$XjBM/=4CNtG*$SNO)_r8錻 6:o6w `0y:%6;vhw9:"UX B}4Ñn1K8rW0u隽dz]7R]>}14V:-찪;@,ʡP'gQ4$Tl@2jXMG^]Ȕgɲj]`cUM{Ab}> t.9mjfnrcptd.6ն7"7EH|I:Fӂuj𶻴=;P~Cz=t9/uBfWas ]lQܫ6[qZ C^٦0Ll2&ɔRLD݅pUg4/ߌ:֒uƲ}QȽ ;N 9bx-bPUC1Lif8f!]fdq.+TSZN0͠8ݱ) j5oʶG˜ etb(Td XFVя;g (ܓdC~~)UC$O-$*-CP#ZtXUgr}5D]l$o:SvoJq*cF^-^05u'&1O5cc9r,SA&z*@/N$RR pqrhEwr Y,Wq_kőT*3\w`no<5>8 9fDt&84{:%7ϳcnqBs 59'+J/18~V/WF\Z&au2oan+~w \ =1){$}jjrQ( Et&=%3A=C4鿧⹨r (me~O Ʃ&-w .l,S)~L+R? ѸJ2#SUӀoa|; Z3& !]ӵ1tϘk(c |aOl(IɽuDfVL v? D7\}{Pxbi5`DznJk!^BNtO뗦DsB0 B+Uw{={nۊt\TafApdx6gP_[Y ZB \^/J1sqDIdx3h`3ȣH9h<:׊u%\9:{isc}J=AR ۺ6@J,[Дk6]ـ:d:or{CnaM3  {+ wov gk <5`tÜ~=;!``<11?|LO>WB#uinTM&Z>9.-&U,dA)X2-+˧ءSZLެ>% ocnendstream endobj 20548 0 obj <>/P 506 0 R/Type/Annot/A 20549 0 R/Subtype/Link/Rect[93.5997009 289.628998 278.687012 309.308014]/Border[0 0 0]/H/N>> endobj 20549 0 obj <> endobj 20550 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 20551 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 20552 0 obj <> endobj 20553 0 obj <> endobj 20554 0 obj <> endobj 20555 0 obj <> stream q /X1 Do Q q endstream endobj 20556 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 20557 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 20558 0 obj <> stream HWێ8}W(_avf'>d V'Nv~d"xTuXS,>sy8?_׬ϟUjPv1F6ZԇwXj͗~la/Ez/y<a=-sb[]yî:ø _w"_,*vĄ-p֜/~7ui_mp_N1>Ù@ Qy(sTbC&P)ws P`/2`/2`/3`/3`/3`2`2`3`3`3`o2`o2`o3`o3`o3`2`2`3`iMmJMm٧6@Mm٧6DSզ6D3 B QLPmjԆ(}ZA6!`VMm"TET+զ6D3 B PjSjԆ(}ZA6m+I6!*gE6!*gOm"TET+ զ6D3JB PjSj%Ԇ(}ZI6PmjC>S$TET+ զ6@Mm"gjSj%ԶԆ}jԆ}jCT>PmjC>S"TETզ6@Mm"gUjSj(B QLPmjC>S"TE6!`VMm"gUjS۶҄jSr PjSr Q9{xU࿫mtQ=^,x]:㶺zd^/>kLp}XY6˷#ؕZ_M6SQ8G=#7owF׋Uԍ2"olAM8Ş`y:Pp<\ϫC>:kG7#j pzXxu!eMtnMm$'f\ b]!#\͹2 27p_fnPW(]]WSeq)LۛQEXtfRaT^ؾ l腏 ^`2uq&n6Hߝ;6ej7F5+! +=g0ISgPJ u;@sYL 1@r=>D"츳>FIU >q%NLuLܸ8B46ʆ^8rڿR#j\B<3Op QetGIb5уrkEsKܚªq)nzV!a/]%&)B-:~I;c6~8HL$X0.,^6Pz!N&^$9S+Ogn}V C/<@eƕ8#,ZT!kf v\ϻC[n\o.oo" [דa=;PrXO9pvdʉĀ=HL!)FL8'c  @dqD'6;Cza(Ǔ?bv+e}m$5I_DМ]r=(*t>a/ }a/fnͻ #XK.xg\ѤE/^-pa[wXl-!Ơ,bE-]g< CwJD]QrvgO6Fމ}О6kf.PnT)5sC83 Wztx25ôBLy8 yd3(s6R4c/bcT=(~ ]j x0샕lj*1.غC{۵Jnln_@S+ub`_I1OFq(KGC͸ԡ]5t )RX)ꉻanȽƗa,p>3xMlzţp̆ &naܩHD{P ]jΩlǛfPgK>1c(9S. rя|vܪD䒩ԪxUME {3nv[l춦^a[,NYô J+XtC/|f}Ið>qFt0q6/v.FFy=e0T>+)1b'0s?fO¾4z06;^'Ϧn<;Ao'F&Pίzjכp1c/5v%4#4/~g*_&3m}#7I%=ب5DCoq93O})#>V1U6N(ڃ }-LA3ݷY @6-asl7+7\ёS%rf;peHUkO"xB/t QbȦ;y`+;U Cir3*k=s3@6z'BQpf'J\nD/f\dt0;B쓩dN߳}2#FQNm9GyQ0ɞ,gfo߯>/ 3&'WU<]!Bh/z[!83&'l㬰1.G0%sW/Kym~ƇA-z]V"i7+mPw(Rҽ,<?~G3{PQ'o+Ψ`$e,%ƒOA?k!8x*WKv}-jdxg粹\>]=~8CFrn >×on1*C꼖9Hpـe]ΡZӰrwr"9P2(L0r |쁼Д g]ͨ, Z֢9u="jPJ:k>J7:n8V[:CnS1 br,2)dO"&'p8V9m@N$L;X]{pctCM2cĄ7E7endstream endobj 20559 0 obj <>/P 3210 0 R/Type/Annot/A 20981 0 R/Subtype/Link/Rect[248 669 260 678]/Border[0 0 0]/H/N>> endobj 20560 0 obj <>/P 3210 0 R/Type/Annot/A 20977 0 R/Subtype/Link/Rect[171 659 185 668]/Border[0 0 0]/H/N>> endobj 20561 0 obj <>/P 3210 0 R/Type/Annot/A 20971 0 R/Subtype/Link/Rect[187 659 199 668]/Border[0 0 0]/H/N>> endobj 20562 0 obj <>/P 3210 0 R/Type/Annot/A 28345 0 R/Subtype/Link/Rect[180 649 197 659]/Border[0 0 0]/H/N>> endobj 20563 0 obj <>/P 3210 0 R/Type/Annot/A 20907 0 R/Subtype/Link/Rect[197 649 211 658]/Border[0 0 0]/H/N>> endobj 20564 0 obj <>/P 3210 0 R/Type/Annot/A 20960 0 R/Subtype/Link/Rect[213 649 230 659]/Border[0 0 0]/H/N>> endobj 20565 0 obj <>/P 3210 0 R/Type/Annot/A 20956 0 R/Subtype/Link/Rect[231 649 245 658]/Border[0 0 0]/H/N>> endobj 20566 0 obj <>/P 3210 0 R/Type/Annot/A 20953 0 R/Subtype/Link/Rect[247 649 263 659]/Border[0 0 0]/H/N>> endobj 20567 0 obj <>/P 3210 0 R/Type/Annot/A 26511 0 R/Subtype/Link/Rect[264 649 278 658]/Border[0 0 0]/H/N>> endobj 20568 0 obj <>/P 3210 0 R/Type/Annot/A 20946 0 R/Subtype/Link/Rect[280 649 294 658]/Border[0 0 0]/H/N>> endobj 20569 0 obj <>/P 3210 0 R/Type/Annot/A 20941 0 R/Subtype/Link/Rect[296 649 310 658]/Border[0 0 0]/H/N>> endobj 20570 0 obj <>/P 3210 0 R/Type/Annot/A 25906 0 R/Subtype/Link/Rect[151 639 163 648]/Border[0 0 0]/H/N>> endobj 20571 0 obj <>/P 3210 0 R/Type/Annot/A 25871 0 R/Subtype/Link/Rect[212 629 226 638]/Border[0 0 0]/H/N>> endobj 20572 0 obj <>/P 3210 0 R/Type/Annot/A 20993 0 R/Subtype/Link/Rect[228 629 244 639]/Border[0 0 0]/H/N>> endobj 20573 0 obj <>/P 3210 0 R/Type/Annot/A 20986 0 R/Subtype/Link/Rect[245 629 257 638]/Border[0 0 0]/H/N>> endobj 20574 0 obj <>/P 3210 0 R/Type/Annot/A 20982 0 R/Subtype/Link/Rect[190 619 202 628]/Border[0 0 0]/H/N>> endobj 20575 0 obj <>/P 3210 0 R/Type/Annot/A 24921 0 R/Subtype/Link/Rect[207 609 221 618]/Border[0 0 0]/H/N>> endobj 20576 0 obj <>/P 3210 0 R/Type/Annot/A 20973 0 R/Subtype/Link/Rect[223 609 237 618]/Border[0 0 0]/H/N>> endobj 20577 0 obj <>/P 3210 0 R/Type/Annot/A 24259 0 R/Subtype/Link/Rect[239 609 253 618]/Border[0 0 0]/H/N>> endobj 20578 0 obj <>/P 3210 0 R/Type/Annot/A 20965 0 R/Subtype/Link/Rect[255 609 267 618]/Border[0 0 0]/H/N>> endobj 20579 0 obj <>/P 3210 0 R/Type/Annot/A 20962 0 R/Subtype/Link/Rect[190 599 204 608]/Border[0 0 0]/H/N>> endobj 20580 0 obj <>/P 3210 0 R/Type/Annot/A 23353 0 R/Subtype/Link/Rect[206 599 218 608]/Border[0 0 0]/H/N>> endobj 20581 0 obj <>/P 3210 0 R/Type/Annot/A 22626 0 R/Subtype/Link/Rect[212 589 226 598]/Border[0 0 0]/H/N>> endobj 20582 0 obj <>/P 3210 0 R/Type/Annot/A 22587 0 R/Subtype/Link/Rect[228 589 242 598]/Border[0 0 0]/H/N>> endobj 20583 0 obj <>/P 3210 0 R/Type/Annot/A 20948 0 R/Subtype/Link/Rect[244 589 258 598]/Border[0 0 0]/H/N>> endobj 20584 0 obj <>/P 3210 0 R/Type/Annot/A 20943 0 R/Subtype/Link/Rect[260 589 276 599]/Border[0 0 0]/H/N>> endobj 20585 0 obj <>/P 3210 0 R/Type/Annot/A 20937 0 R/Subtype/Link/Rect[277 589 291 598]/Border[0 0 0]/H/N>> endobj 20586 0 obj <>/P 3210 0 R/Type/Annot/A 21354 0 R/Subtype/Link/Rect[293 589 307 598]/Border[0 0 0]/H/N>> endobj 20587 0 obj <>/P 3210 0 R/Type/Annot/A 20933 0 R/Subtype/Link/Rect[151 579 163 588]/Border[0 0 0]/H/N>> endobj 20588 0 obj <>/P 3210 0 R/Type/Annot/A 20992 0 R/Subtype/Link/Rect[190 569 204 578]/Border[0 0 0]/H/N>> endobj 20589 0 obj <>/P 3210 0 R/Type/Annot/A 20924 0 R/Subtype/Link/Rect[206 569 218 578]/Border[0 0 0]/H/N>> endobj 20590 0 obj <>/P 3210 0 R/Type/Annot/A 20983 0 R/Subtype/Link/Rect[226 559 240 568]/Border[0 0 0]/H/N>> endobj 20591 0 obj <>/P 3210 0 R/Type/Annot/A 20978 0 R/Subtype/Link/Rect[242 559 259 569]/Border[0 0 0]/H/N>> endobj 20592 0 obj <>/P 3210 0 R/Type/Annot/A 20974 0 R/Subtype/Link/Rect[259 559 273 568]/Border[0 0 0]/H/N>> endobj 20593 0 obj <>/P 3210 0 R/Type/Annot/A 20968 0 R/Subtype/Link/Rect[275 559 289 568]/Border[0 0 0]/H/N>> endobj 20594 0 obj <>/P 3210 0 R/Type/Annot/A 20966 0 R/Subtype/Link/Rect[291 559 305 568]/Border[0 0 0]/H/N>> endobj 20595 0 obj <>/P 3210 0 R/Type/Annot/A 20963 0 R/Subtype/Link/Rect[151 549 168 559]/Border[0 0 0]/H/N>> endobj 20596 0 obj <>/P 3210 0 R/Type/Annot/A 20957 0 R/Subtype/Link/Rect[168 549 182 558]/Border[0 0 0]/H/N>> endobj 20597 0 obj <>/P 3210 0 R/Type/Annot/A 20954 0 R/Subtype/Link/Rect[184 549 198 558]/Border[0 0 0]/H/N>> endobj 20598 0 obj <>/P 3210 0 R/Type/Annot/A 20951 0 R/Subtype/Link/Rect[200 549 217 559]/Border[0 0 0]/H/N>> endobj 20599 0 obj <>/P 3210 0 R/Type/Annot/A 20949 0 R/Subtype/Link/Rect[218 549 230 558]/Border[0 0 0]/H/N>> endobj 20600 0 obj <>/P 3210 0 R/Type/Annot/A 20944 0 R/Subtype/Link/Rect[190 539 202 548]/Border[0 0 0]/H/N>> endobj 20601 0 obj <>/P 3210 0 R/Type/Annot/A 20939 0 R/Subtype/Link/Rect[207 529 221 538]/Border[0 0 0]/H/N>> endobj 20602 0 obj <>/P 3210 0 R/Type/Annot/A 20936 0 R/Subtype/Link/Rect[223 529 239 539]/Border[0 0 0]/H/N>> endobj 20603 0 obj <>/P 3210 0 R/Type/Annot/A 20934 0 R/Subtype/Link/Rect[240 529 254 538]/Border[0 0 0]/H/N>> endobj 20604 0 obj <>/P 3210 0 R/Type/Annot/A 20929 0 R/Subtype/Link/Rect[256 529 270 538]/Border[0 0 0]/H/N>> endobj 20605 0 obj <>/P 3210 0 R/Type/Annot/A 20926 0 R/Subtype/Link/Rect[272 529 286 538]/Border[0 0 0]/H/N>> endobj 20606 0 obj <>/P 3210 0 R/Type/Annot/A 20921 0 R/Subtype/Link/Rect[288 529 302 538]/Border[0 0 0]/H/N>> endobj 20607 0 obj <>/P 3210 0 R/Type/Annot/A 20918 0 R/Subtype/Link/Rect[151 519 163 528]/Border[0 0 0]/H/N>> endobj 20608 0 obj <>/P 3210 0 R/Type/Annot/A 20914 0 R/Subtype/Link/Rect[190 509 204 518]/Border[0 0 0]/H/N>> endobj 20609 0 obj <>/P 3210 0 R/Type/Annot/A 20912 0 R/Subtype/Link/Rect[206 509 218 518]/Border[0 0 0]/H/N>> endobj 20610 0 obj <>/P 3210 0 R/Type/Annot/A 20908 0 R/Subtype/Link/Rect[250 499 264 508]/Border[0 0 0]/H/N>> endobj 20611 0 obj <>/P 3210 0 R/Type/Annot/A 20903 0 R/Subtype/Link/Rect[266 499 283 509]/Border[0 0 0]/H/N>> endobj 20612 0 obj <>/P 3210 0 R/Type/Annot/A 20901 0 R/Subtype/Link/Rect[283 499 297 508]/Border[0 0 0]/H/N>> endobj 20613 0 obj <>/P 3210 0 R/Type/Annot/A 20898 0 R/Subtype/Link/Rect[151 489 168 499]/Border[0 0 0]/H/N>> endobj 20614 0 obj <>/P 3210 0 R/Type/Annot/A 20896 0 R/Subtype/Link/Rect[168 489 182 498]/Border[0 0 0]/H/N>> endobj 20615 0 obj <>/P 3210 0 R/Type/Annot/A 20895 0 R/Subtype/Link/Rect[184 489 201 499]/Border[0 0 0]/H/N>> endobj 20616 0 obj <>/P 3210 0 R/Type/Annot/A 20894 0 R/Subtype/Link/Rect[202 489 216 498]/Border[0 0 0]/H/N>> endobj 20617 0 obj <>/P 3210 0 R/Type/Annot/A 20893 0 R/Subtype/Link/Rect[218 489 232 498]/Border[0 0 0]/H/N>> endobj 20618 0 obj <>/P 3210 0 R/Type/Annot/A 20892 0 R/Subtype/Link/Rect[234 489 246 498]/Border[0 0 0]/H/N>> endobj 20619 0 obj <>/P 3210 0 R/Type/Annot/A 20891 0 R/Subtype/Link/Rect[190 479 202 488]/Border[0 0 0]/H/N>> endobj 20620 0 obj <>/P 3210 0 R/Type/Annot/A 20890 0 R/Subtype/Link/Rect[226 469 240 478]/Border[0 0 0]/H/N>> endobj 20621 0 obj <>/P 3210 0 R/Type/Annot/A 20889 0 R/Subtype/Link/Rect[242 469 256 478]/Border[0 0 0]/H/N>> endobj 20622 0 obj <>/P 3210 0 R/Type/Annot/A 20888 0 R/Subtype/Link/Rect[258 469 275 479]/Border[0 0 0]/H/N>> endobj 20623 0 obj <>/P 3210 0 R/Type/Annot/A 20887 0 R/Subtype/Link/Rect[275 469 289 478]/Border[0 0 0]/H/N>> endobj 20624 0 obj <>/P 3210 0 R/Type/Annot/A 20886 0 R/Subtype/Link/Rect[291 469 303 478]/Border[0 0 0]/H/N>> endobj 20625 0 obj <>/P 3210 0 R/Type/Annot/A 20885 0 R/Subtype/Link/Rect[190 459 202 468]/Border[0 0 0]/H/N>> endobj 20626 0 obj <>/P 3210 0 R/Type/Annot/A 20884 0 R/Subtype/Link/Rect[207 449 223 459]/Border[0 0 0]/H/N>> endobj 20627 0 obj <>/P 3210 0 R/Type/Annot/A 20883 0 R/Subtype/Link/Rect[224 449 238 458]/Border[0 0 0]/H/N>> endobj 20628 0 obj <>/P 3210 0 R/Type/Annot/A 20882 0 R/Subtype/Link/Rect[240 449 252 458]/Border[0 0 0]/H/N>> endobj 20629 0 obj <>/P 3210 0 R/Type/Annot/A 20881 0 R/Subtype/Link/Rect[190 439 202 448]/Border[0 0 0]/H/N>> endobj 20630 0 obj <>/P 3210 0 R/Type/Annot/A 20880 0 R/Subtype/Link/Rect[210 429 224 438]/Border[0 0 0]/H/N>> endobj 20631 0 obj <>/P 3210 0 R/Type/Annot/A 20879 0 R/Subtype/Link/Rect[226 429 240 438]/Border[0 0 0]/H/N>> endobj 20632 0 obj <>/P 3210 0 R/Type/Annot/A 20878 0 R/Subtype/Link/Rect[242 429 256 438]/Border[0 0 0]/H/N>> endobj 20633 0 obj <>/P 3210 0 R/Type/Annot/A 20877 0 R/Subtype/Link/Rect[258 429 275 439]/Border[0 0 0]/H/N>> endobj 20634 0 obj <>/P 3210 0 R/Type/Annot/A 20876 0 R/Subtype/Link/Rect[276 429 290 438]/Border[0 0 0]/H/N>> endobj 20635 0 obj <>/P 3210 0 R/Type/Annot/A 20875 0 R/Subtype/Link/Rect[292 429 306 438]/Border[0 0 0]/H/N>> endobj 20636 0 obj <>/P 3210 0 R/Type/Annot/A 20874 0 R/Subtype/Link/Rect[151 419 165 428]/Border[0 0 0]/H/N>> endobj 20637 0 obj <>/P 3210 0 R/Type/Annot/A 20872 0 R/Subtype/Link/Rect[167 419 179 428]/Border[0 0 0]/H/N>> endobj 20638 0 obj <>/P 3210 0 R/Type/Annot/A 20871 0 R/Subtype/Link/Rect[207 409 221 418]/Border[0 0 0]/H/N>> endobj 20639 0 obj <>/P 3210 0 R/Type/Annot/A 20870 0 R/Subtype/Link/Rect[223 409 237 418]/Border[0 0 0]/H/N>> endobj 20640 0 obj <>/P 3210 0 R/Type/Annot/A 20869 0 R/Subtype/Link/Rect[239 409 251 418]/Border[0 0 0]/H/N>> endobj 20641 0 obj <>/P 3210 0 R/Type/Annot/A 20868 0 R/Subtype/Link/Rect[190 399 202 408]/Border[0 0 0]/H/N>> endobj 20642 0 obj <>/P 3210 0 R/Type/Annot/A 20867 0 R/Subtype/Link/Rect[212 389 226 398]/Border[0 0 0]/H/N>> endobj 20643 0 obj <>/P 3210 0 R/Type/Annot/A 20866 0 R/Subtype/Link/Rect[228 389 242 398]/Border[0 0 0]/H/N>> endobj 20644 0 obj <>/P 3210 0 R/Type/Annot/A 20865 0 R/Subtype/Link/Rect[244 389 258 398]/Border[0 0 0]/H/N>> endobj 20645 0 obj <>/P 3210 0 R/Type/Annot/A 20864 0 R/Subtype/Link/Rect[260 389 274 398]/Border[0 0 0]/H/N>> endobj 20646 0 obj <>/P 3210 0 R/Type/Annot/A 20863 0 R/Subtype/Link/Rect[276 389 288 398]/Border[0 0 0]/H/N>> endobj 20647 0 obj <>/P 3210 0 R/Type/Annot/A 20862 0 R/Subtype/Link/Rect[176 379 193 389]/Border[0 0 0]/H/N>> endobj 20648 0 obj <>/P 3210 0 R/Type/Annot/A 20861 0 R/Subtype/Link/Rect[193 379 207 388]/Border[0 0 0]/H/N>> endobj 20649 0 obj <>/P 3210 0 R/Type/Annot/A 20860 0 R/Subtype/Link/Rect[209 379 221 388]/Border[0 0 0]/H/N>> endobj 20650 0 obj <>/P 3210 0 R/Type/Annot/A 20859 0 R/Subtype/Link/Rect[226 369 238 378]/Border[0 0 0]/H/N>> endobj 20651 0 obj <>/P 3210 0 R/Type/Annot/A 20858 0 R/Subtype/Link/Rect[212 359 226 368]/Border[0 0 0]/H/N>> endobj 20652 0 obj <>/P 3210 0 R/Type/Annot/A 20857 0 R/Subtype/Link/Rect[228 359 240 368]/Border[0 0 0]/H/N>> endobj 20653 0 obj <>/P 3210 0 R/Type/Annot/A 20856 0 R/Subtype/Link/Rect[216 349 230 358]/Border[0 0 0]/H/N>> endobj 20654 0 obj <>/P 3210 0 R/Type/Annot/A 20855 0 R/Subtype/Link/Rect[232 349 244 358]/Border[0 0 0]/H/N>> endobj 20655 0 obj <>/P 3210 0 R/Type/Annot/A 20854 0 R/Subtype/Link/Rect[212 339 224 348]/Border[0 0 0]/H/N>> endobj 20656 0 obj <>/P 3210 0 R/Type/Annot/A 20853 0 R/Subtype/Link/Rect[212 329 226 338]/Border[0 0 0]/H/N>> endobj 20657 0 obj <>/P 3210 0 R/Type/Annot/A 20852 0 R/Subtype/Link/Rect[228 329 240 338]/Border[0 0 0]/H/N>> endobj 20658 0 obj <>/P 3210 0 R/Type/Annot/A 20851 0 R/Subtype/Link/Rect[226 319 238 328]/Border[0 0 0]/H/N>> endobj 20659 0 obj <>/P 3210 0 R/Type/Annot/A 20850 0 R/Subtype/Link/Rect[221 309 235 318]/Border[0 0 0]/H/N>> endobj 20660 0 obj <>/P 3210 0 R/Type/Annot/A 20849 0 R/Subtype/Link/Rect[237 309 249 318]/Border[0 0 0]/H/N>> endobj 20661 0 obj <>/P 3210 0 R/Type/Annot/A 20848 0 R/Subtype/Link/Rect[207 299 221 308]/Border[0 0 0]/H/N>> endobj 20662 0 obj <>/P 3210 0 R/Type/Annot/A 42006 0 R/Subtype/Link/Rect[223 299 235 308]/Border[0 0 0]/H/N>> endobj 20663 0 obj <>/P 3210 0 R/Type/Annot/A 44790 0 R/Subtype/Link/Rect[212 289 226 298]/Border[0 0 0]/H/N>> endobj 20664 0 obj <>/P 3210 0 R/Type/Annot/A 43386 0 R/Subtype/Link/Rect[228 289 240 298]/Border[0 0 0]/H/N>> endobj 20665 0 obj <>/P 3210 0 R/Type/Annot/A 44044 0 R/Subtype/Link/Rect[216 279 230 288]/Border[0 0 0]/H/N>> endobj 20666 0 obj <>/P 3210 0 R/Type/Annot/A 44688 0 R/Subtype/Link/Rect[232 279 246 288]/Border[0 0 0]/H/N>> endobj 20667 0 obj <>/P 3210 0 R/Type/Annot/A 44657 0 R/Subtype/Link/Rect[248 279 262 288]/Border[0 0 0]/H/N>> endobj 20668 0 obj <>/P 3210 0 R/Type/Annot/A 44622 0 R/Subtype/Link/Rect[264 279 278 288]/Border[0 0 0]/H/N>> endobj 20669 0 obj <>/P 3210 0 R/Type/Annot/A 30127 0 R/Subtype/Link/Rect[280 279 294 288]/Border[0 0 0]/H/N>> endobj 20670 0 obj <>/P 3210 0 R/Type/Annot/A 43857 0 R/Subtype/Link/Rect[296 279 310 288]/Border[0 0 0]/H/N>> endobj 20671 0 obj <>/P 3210 0 R/Type/Annot/A 44504 0 R/Subtype/Link/Rect[151 269 165 278]/Border[0 0 0]/H/N>> endobj 20672 0 obj <>/P 3210 0 R/Type/Annot/A 20989 0 R/Subtype/Link/Rect[167 269 181 278]/Border[0 0 0]/H/N>> endobj 20673 0 obj <>/P 3210 0 R/Type/Annot/A 44423 0 R/Subtype/Link/Rect[183 269 200 279]/Border[0 0 0]/H/N>> endobj 20674 0 obj <>/P 3210 0 R/Type/Annot/A 44397 0 R/Subtype/Link/Rect[200 269 212 278]/Border[0 0 0]/H/N>> endobj 20675 0 obj <>/P 3210 0 R/Type/Annot/A 43679 0 R/Subtype/Link/Rect[190 259 204 268]/Border[0 0 0]/H/N>> endobj 20676 0 obj <>/P 3210 0 R/Type/Annot/A 44333 0 R/Subtype/Link/Rect[206 259 218 268]/Border[0 0 0]/H/N>> endobj 20677 0 obj <>/P 3210 0 R/Type/Annot/A 43590 0 R/Subtype/Link/Rect[202 249 219 259]/Border[0 0 0]/H/N>> endobj 20678 0 obj <>/P 3210 0 R/Type/Annot/A 38272 0 R/Subtype/Link/Rect[219 249 233 258]/Border[0 0 0]/H/N>> endobj 20679 0 obj <>/P 3210 0 R/Type/Annot/A 42766 0 R/Subtype/Link/Rect[235 249 249 258]/Border[0 0 0]/H/N>> endobj 20680 0 obj <>/P 3210 0 R/Type/Annot/A 31049 0 R/Subtype/Link/Rect[251 249 265 258]/Border[0 0 0]/H/N>> endobj 20681 0 obj <>/P 3210 0 R/Type/Annot/A 22625 0 R/Subtype/Link/Rect[267 249 284 259]/Border[0 0 0]/H/N>> endobj 20682 0 obj <>/P 3210 0 R/Type/Annot/A 43401 0 R/Subtype/Link/Rect[285 249 299 258]/Border[0 0 0]/H/N>> endobj 20683 0 obj <>/P 3210 0 R/Type/Annot/A 42608 0 R/Subtype/Link/Rect[151 239 168 249]/Border[0 0 0]/H/N>> endobj 20684 0 obj <>/P 3210 0 R/Type/Annot/A 43304 0 R/Subtype/Link/Rect[168 239 182 248]/Border[0 0 0]/H/N>> endobj 20685 0 obj <>/P 3210 0 R/Type/Annot/A 42546 0 R/Subtype/Link/Rect[184 239 196 248]/Border[0 0 0]/H/N>> endobj 20686 0 obj <>/P 3210 0 R/Type/Annot/A 43972 0 R/Subtype/Link/Rect[190 229 204 238]/Border[0 0 0]/H/N>> endobj 20687 0 obj <>/P 3210 0 R/Type/Annot/A 40114 0 R/Subtype/Link/Rect[206 229 218 238]/Border[0 0 0]/H/N>> endobj 20688 0 obj <>/P 3210 0 R/Type/Annot/A 41575 0 R/Subtype/Link/Rect[221 219 235 228]/Border[0 0 0]/H/N>> endobj 20689 0 obj <>/P 3210 0 R/Type/Annot/A 42376 0 R/Subtype/Link/Rect[237 219 251 228]/Border[0 0 0]/H/N>> endobj 20690 0 obj <>/P 3210 0 R/Type/Annot/A 43084 0 R/Subtype/Link/Rect[253 219 267 228]/Border[0 0 0]/H/N>> endobj 20691 0 obj <>/P 3210 0 R/Type/Annot/A 43010 0 R/Subtype/Link/Rect[269 219 283 228]/Border[0 0 0]/H/N>> endobj 20692 0 obj <>/P 3210 0 R/Type/Annot/A 42986 0 R/Subtype/Link/Rect[285 219 297 228]/Border[0 0 0]/H/N>> endobj 20693 0 obj <>/P 3210 0 R/Type/Annot/A 32532 0 R/Subtype/Link/Rect[190 209 202 218]/Border[0 0 0]/H/N>> endobj 20694 0 obj <>/P 3210 0 R/Type/Annot/A 38317 0 R/Subtype/Link/Rect[221 199 235 208]/Border[0 0 0]/H/N>> endobj 20695 0 obj <>/P 3210 0 R/Type/Annot/A 42872 0 R/Subtype/Link/Rect[237 199 254 209]/Border[0 0 0]/H/N>> endobj 20696 0 obj <>/P 3210 0 R/Type/Annot/A 28420 0 R/Subtype/Link/Rect[255 199 269 208]/Border[0 0 0]/H/N>> endobj 20697 0 obj <>/P 3210 0 R/Type/Annot/A 42806 0 R/Subtype/Link/Rect[271 199 285 208]/Border[0 0 0]/H/N>> endobj 20698 0 obj <>/P 3210 0 R/Type/Annot/A 42761 0 R/Subtype/Link/Rect[287 199 301 208]/Border[0 0 0]/H/N>> endobj 20699 0 obj <>/P 3210 0 R/Type/Annot/A 41948 0 R/Subtype/Link/Rect[151 189 163 198]/Border[0 0 0]/H/N>> endobj 20700 0 obj <>/P 3210 0 R/Type/Annot/A 41903 0 R/Subtype/Link/Rect[190 179 202 188]/Border[0 0 0]/H/N>> endobj 20701 0 obj <>/P 3210 0 R/Type/Annot/A 21386 0 R/Subtype/Link/Rect[221 169 235 178]/Border[0 0 0]/H/N>> endobj 20702 0 obj <>/P 3210 0 R/Type/Annot/A 42604 0 R/Subtype/Link/Rect[237 169 251 178]/Border[0 0 0]/H/N>> endobj 20703 0 obj <>/P 3210 0 R/Type/Annot/A 41739 0 R/Subtype/Link/Rect[253 169 267 178]/Border[0 0 0]/H/N>> endobj 20704 0 obj <>/P 3210 0 R/Type/Annot/A 25938 0 R/Subtype/Link/Rect[269 169 283 178]/Border[0 0 0]/H/N>> endobj 20705 0 obj <>/P 3210 0 R/Type/Annot/A 42496 0 R/Subtype/Link/Rect[151 159 168 169]/Border[0 0 0]/H/N>> endobj 20706 0 obj <>/P 3210 0 R/Type/Annot/A 33664 0 R/Subtype/Link/Rect[168 159 182 168]/Border[0 0 0]/H/N>> endobj 20707 0 obj <>/P 3210 0 R/Type/Annot/A 42406 0 R/Subtype/Link/Rect[184 159 196 168]/Border[0 0 0]/H/N>> endobj 20708 0 obj <>/P 3210 0 R/Type/Annot/A 41508 0 R/Subtype/Link/Rect[190 149 202 158]/Border[0 0 0]/H/N>> endobj 20709 0 obj <>/P 3210 0 R/Type/Annot/A 42349 0 R/Subtype/Link/Rect[425 669 439 678]/Border[0 0 0]/H/N>> endobj 20710 0 obj <>/P 3210 0 R/Type/Annot/A 42303 0 R/Subtype/Link/Rect[441 669 455 678]/Border[0 0 0]/H/N>> endobj 20711 0 obj <>/P 3210 0 R/Type/Annot/A 41410 0 R/Subtype/Link/Rect[457 669 469 678]/Border[0 0 0]/H/N>> endobj 20712 0 obj <>/P 3210 0 R/Type/Annot/A 28473 0 R/Subtype/Link/Rect[420 659 434 668]/Border[0 0 0]/H/N>> endobj 20713 0 obj <>/P 3210 0 R/Type/Annot/A 20942 0 R/Subtype/Link/Rect[436 659 450 668]/Border[0 0 0]/H/N>> endobj 20714 0 obj <>/P 3210 0 R/Type/Annot/A 42127 0 R/Subtype/Link/Rect[452 659 466 668]/Border[0 0 0]/H/N>> endobj 20715 0 obj <>/P 3210 0 R/Type/Annot/A 31011 0 R/Subtype/Link/Rect[468 659 482 668]/Border[0 0 0]/H/N>> endobj 20716 0 obj <>/P 3210 0 R/Type/Annot/A 42845 0 R/Subtype/Link/Rect[484 659 496 668]/Border[0 0 0]/H/N>> endobj 20717 0 obj <>/P 3210 0 R/Type/Annot/A 36700 0 R/Subtype/Link/Rect[398 649 412 658]/Border[0 0 0]/H/N>> endobj 20718 0 obj <>/P 3210 0 R/Type/Annot/A 41954 0 R/Subtype/Link/Rect[414 649 426 658]/Border[0 0 0]/H/N>> endobj 20719 0 obj <>/P 3210 0 R/Type/Annot/A 35878 0 R/Subtype/Link/Rect[415 639 429 648]/Border[0 0 0]/H/N>> endobj 20720 0 obj <>/P 3210 0 R/Type/Annot/A 41880 0 R/Subtype/Link/Rect[431 639 445 648]/Border[0 0 0]/H/N>> endobj 20721 0 obj <>/P 3210 0 R/Type/Annot/A 40744 0 R/Subtype/Link/Rect[447 639 459 648]/Border[0 0 0]/H/N>> endobj 20722 0 obj <>/P 3210 0 R/Type/Annot/A 42605 0 R/Subtype/Link/Rect[415 629 429 638]/Border[0 0 0]/H/N>> endobj 20723 0 obj <>/P 3210 0 R/Type/Annot/A 41710 0 R/Subtype/Link/Rect[431 629 445 638]/Border[0 0 0]/H/N>> endobj 20724 0 obj <>/P 3210 0 R/Type/Annot/A 41666 0 R/Subtype/Link/Rect[447 629 461 638]/Border[0 0 0]/H/N>> endobj 20725 0 obj <>/P 3210 0 R/Type/Annot/A 41622 0 R/Subtype/Link/Rect[463 629 477 638]/Border[0 0 0]/H/N>> endobj 20726 0 obj <>/P 3210 0 R/Type/Annot/A 20959 0 R/Subtype/Link/Rect[479 629 493 638]/Border[0 0 0]/H/N>> endobj 20727 0 obj <>/P 3210 0 R/Type/Annot/A 39483 0 R/Subtype/Link/Rect[495 629 509 638]/Border[0 0 0]/H/N>> endobj 20728 0 obj <>/P 3210 0 R/Type/Annot/A 38950 0 R/Subtype/Link/Rect[359 619 373 628]/Border[0 0 0]/H/N>> endobj 20729 0 obj <>/P 3210 0 R/Type/Annot/A 38906 0 R/Subtype/Link/Rect[375 619 389 628]/Border[0 0 0]/H/N>> endobj 20730 0 obj <>/P 3210 0 R/Type/Annot/A 23372 0 R/Subtype/Link/Rect[391 619 405 628]/Border[0 0 0]/H/N>> endobj 20731 0 obj <>/P 3210 0 R/Type/Annot/A 41404 0 R/Subtype/Link/Rect[407 619 419 628]/Border[0 0 0]/H/N>> endobj 20732 0 obj <>/P 3210 0 R/Type/Annot/A 28397 0 R/Subtype/Link/Rect[398 609 412 618]/Border[0 0 0]/H/N>> endobj 20733 0 obj <>/P 3210 0 R/Type/Annot/A 20930 0 R/Subtype/Link/Rect[414 609 426 618]/Border[0 0 0]/H/N>> endobj 20734 0 obj <>/P 3210 0 R/Type/Annot/A 36801 0 R/Subtype/Link/Rect[434 599 448 608]/Border[0 0 0]/H/N>> endobj 20735 0 obj <>/P 3210 0 R/Type/Annot/A 37936 0 R/Subtype/Link/Rect[450 599 464 608]/Border[0 0 0]/H/N>> endobj 20736 0 obj <>/P 3210 0 R/Type/Annot/A 20915 0 R/Subtype/Link/Rect[466 599 483 609]/Border[0 0 0]/H/N>> endobj 20737 0 obj <>/P 3210 0 R/Type/Annot/A 38184 0 R/Subtype/Link/Rect[483 599 497 608]/Border[0 0 0]/H/N>> endobj 20738 0 obj <>/P 3210 0 R/Type/Annot/A 41140 0 R/Subtype/Link/Rect[359 589 376 599]/Border[0 0 0]/H/N>> endobj 20739 0 obj <>/P 3210 0 R/Type/Annot/A 41103 0 R/Subtype/Link/Rect[376 589 390 598]/Border[0 0 0]/H/N>> endobj 20740 0 obj <>/P 3210 0 R/Type/Annot/A 35080 0 R/Subtype/Link/Rect[392 589 406 598]/Border[0 0 0]/H/N>> endobj 20741 0 obj <>/P 3210 0 R/Type/Annot/A 40745 0 R/Subtype/Link/Rect[408 589 422 598]/Border[0 0 0]/H/N>> endobj 20742 0 obj <>/P 3210 0 R/Type/Annot/A 29260 0 R/Subtype/Link/Rect[424 589 441 599]/Border[0 0 0]/H/N>> endobj 20743 0 obj <>/P 3210 0 R/Type/Annot/A 25784 0 R/Subtype/Link/Rect[442 589 454 598]/Border[0 0 0]/H/N>> endobj 20744 0 obj <>/P 3210 0 R/Type/Annot/A 33660 0 R/Subtype/Link/Rect[398 579 410 588]/Border[0 0 0]/H/N>> endobj 20745 0 obj <>/P 3210 0 R/Type/Annot/A 38069 0 R/Subtype/Link/Rect[434 569 448 578]/Border[0 0 0]/H/N>> endobj 20746 0 obj <>/P 3210 0 R/Type/Annot/A 33099 0 R/Subtype/Link/Rect[450 569 464 578]/Border[0 0 0]/H/N>> endobj 20747 0 obj <>/P 3210 0 R/Type/Annot/A 33047 0 R/Subtype/Link/Rect[466 569 480 578]/Border[0 0 0]/H/N>> endobj 20748 0 obj <>/P 3210 0 R/Type/Annot/A 41528 0 R/Subtype/Link/Rect[482 569 496 578]/Border[0 0 0]/H/N>> endobj 20749 0 obj <>/P 3210 0 R/Type/Annot/A 38920 0 R/Subtype/Link/Rect[498 569 512 578]/Border[0 0 0]/H/N>> endobj 20750 0 obj <>/P 3210 0 R/Type/Annot/A 28440 0 R/Subtype/Link/Rect[359 559 376 569]/Border[0 0 0]/H/N>> endobj 20751 0 obj <>/P 3210 0 R/Type/Annot/A 20932 0 R/Subtype/Link/Rect[376 559 390 568]/Border[0 0 0]/H/N>> endobj 20752 0 obj <>/P 3210 0 R/Type/Annot/A 22004 0 R/Subtype/Link/Rect[392 559 406 568]/Border[0 0 0]/H/N>> endobj 20753 0 obj <>/P 3210 0 R/Type/Annot/A 27611 0 R/Subtype/Link/Rect[408 559 422 568]/Border[0 0 0]/H/N>> endobj 20754 0 obj <>/P 3210 0 R/Type/Annot/A 36838 0 R/Subtype/Link/Rect[424 559 436 568]/Border[0 0 0]/H/N>> endobj 20755 0 obj <>/P 3210 0 R/Type/Annot/A 36785 0 R/Subtype/Link/Rect[398 549 410 558]/Border[0 0 0]/H/N>> endobj 20756 0 obj <>/P 3210 0 R/Type/Annot/A 41235 0 R/Subtype/Link/Rect[434 539 448 548]/Border[0 0 0]/H/N>> endobj 20757 0 obj <>/P 3210 0 R/Type/Annot/A 36698 0 R/Subtype/Link/Rect[450 539 464 548]/Border[0 0 0]/H/N>> endobj 20758 0 obj <>/P 3210 0 R/Type/Annot/A 41165 0 R/Subtype/Link/Rect[466 539 480 548]/Border[0 0 0]/H/N>> endobj 20759 0 obj <>/P 3210 0 R/Type/Annot/A 41145 0 R/Subtype/Link/Rect[482 539 496 548]/Border[0 0 0]/H/N>> endobj 20760 0 obj <>/P 3210 0 R/Type/Annot/A 41116 0 R/Subtype/Link/Rect[359 529 376 539]/Border[0 0 0]/H/N>> endobj 20761 0 obj <>/P 3210 0 R/Type/Annot/A 35060 0 R/Subtype/Link/Rect[376 529 390 538]/Border[0 0 0]/H/N>> endobj 20762 0 obj <>/P 3210 0 R/Type/Annot/A 34280 0 R/Subtype/Link/Rect[392 529 404 538]/Border[0 0 0]/H/N>> endobj 20763 0 obj <>/P 3210 0 R/Type/Annot/A 34239 0 R/Subtype/Link/Rect[398 519 410 528]/Border[0 0 0]/H/N>> endobj 20764 0 obj <>/P 3210 0 R/Type/Annot/A 20955 0 R/Subtype/Link/Rect[406 509 418 518]/Border[0 0 0]/H/N>> endobj 20765 0 obj <>/P 3210 0 R/Type/Annot/A 29138 0 R/Subtype/Link/Rect[387 499 399 508]/Border[0 0 0]/H/N>> endobj 20766 0 obj <>/P 3210 0 R/Type/Annot/A 33604 0 R/Subtype/Link/Rect[376 489 390 498]/Border[0 0 0]/H/N>> endobj 20767 0 obj <>/P 3210 0 R/Type/Annot/A 33080 0 R/Subtype/Link/Rect[392 489 406 498]/Border[0 0 0]/H/N>> endobj 20768 0 obj <>/P 3210 0 R/Type/Annot/A 28519 0 R/Subtype/Link/Rect[408 489 422 498]/Border[0 0 0]/H/N>> endobj 20769 0 obj <>/P 3210 0 R/Type/Annot/A 32565 0 R/Subtype/Link/Rect[424 489 438 498]/Border[0 0 0]/H/N>> endobj 20770 0 obj <>/P 3210 0 R/Type/Annot/A 32526 0 R/Subtype/Link/Rect[440 489 452 498]/Border[0 0 0]/H/N>> endobj 20771 0 obj <>/P 3210 0 R/Type/Annot/A 20928 0 R/Subtype/Link/Rect[390 479 407 489]/Border[0 0 0]/H/N>> endobj 20772 0 obj <>/P 3210 0 R/Type/Annot/A 20923 0 R/Subtype/Link/Rect[408 479 420 488]/Border[0 0 0]/H/N>> endobj 20773 0 obj <>/P 3210 0 R/Type/Annot/A 20919 0 R/Subtype/Link/Rect[405 469 417 478]/Border[0 0 0]/H/N>> endobj 20774 0 obj <>/P 3210 0 R/Type/Annot/A 27585 0 R/Subtype/Link/Rect[423 459 429 468]/Border[0 0 0]/H/N>> endobj 20775 0 obj <>/P 3210 0 R/Type/Annot/A 27556 0 R/Subtype/Link/Rect[431 459 439 468]/Border[0 0 0]/H/N>> endobj 20776 0 obj <>/P 3210 0 R/Type/Annot/A 20904 0 R/Subtype/Link/Rect[436 449 440 458]/Border[0 0 0]/H/N>> endobj 20777 0 obj <>/P 3210 0 R/Type/Annot/A 26926 0 R/Subtype/Link/Rect[392 439 400 448]/Border[0 0 0]/H/N>> endobj 20778 0 obj <>/P 3210 0 R/Type/Annot/A 20899 0 R/Subtype/Link/Rect[444 429 454 438]/Border[0 0 0]/H/N>> endobj 20779 0 obj <>/P 3210 0 R/Type/Annot/A 26461 0 R/Subtype/Link/Rect[456 429 464 438]/Border[0 0 0]/H/N>> endobj 20780 0 obj <>/P 3210 0 R/Type/Annot/A 20970 0 R/Subtype/Link/Rect[391 419 405 428]/Border[0 0 0]/H/N>> endobj 20781 0 obj <>/P 3210 0 R/Type/Annot/A 30062 0 R/Subtype/Link/Rect[407 419 421 428]/Border[0 0 0]/H/N>> endobj 20782 0 obj <>/P 3210 0 R/Type/Annot/A 25848 0 R/Subtype/Link/Rect[423 419 437 428]/Border[0 0 0]/H/N>> endobj 20783 0 obj <>/P 3210 0 R/Type/Annot/A 25793 0 R/Subtype/Link/Rect[439 419 451 428]/Border[0 0 0]/H/N>> endobj 20784 0 obj <>/P 3210 0 R/Type/Annot/A 29237 0 R/Subtype/Link/Rect[430 409 447 419]/Border[0 0 0]/H/N>> endobj 20785 0 obj <>/P 3210 0 R/Type/Annot/A 24910 0 R/Subtype/Link/Rect[447 409 459 418]/Border[0 0 0]/H/N>> endobj 20786 0 obj <>/P 3210 0 R/Type/Annot/A 20950 0 R/Subtype/Link/Rect[403 399 416 409]/Border[0 0 0]/H/N>> endobj 20787 0 obj <>/P 3210 0 R/Type/Annot/A 29116 0 R/Subtype/Link/Rect[417 399 427 408]/Border[0 0 0]/H/N>> endobj 20788 0 obj <>/P 3210 0 R/Type/Annot/A 20938 0 R/Subtype/Link/Rect[429 399 443 408]/Border[0 0 0]/H/N>> endobj 20789 0 obj <>/P 3210 0 R/Type/Annot/A 23373 0 R/Subtype/Link/Rect[445 399 457 408]/Border[0 0 0]/H/N>> endobj 20790 0 obj <>/P 3210 0 R/Type/Annot/A 28510 0 R/Subtype/Link/Rect[413 389 421 398]/Border[0 0 0]/H/N>> endobj 20791 0 obj <>/P 3210 0 R/Type/Annot/A 22607 0 R/Subtype/Link/Rect[413 379 423 388]/Border[0 0 0]/H/N>> endobj 20792 0 obj <>/P 3210 0 R/Type/Annot/A 20925 0 R/Subtype/Link/Rect[425 379 437 388]/Border[0 0 0]/H/N>> endobj 20793 0 obj <>/P 3210 0 R/Type/Annot/A 20920 0 R/Subtype/Link/Rect[413 369 421 378]/Border[0 0 0]/H/N>> endobj 20794 0 obj <>/P 3210 0 R/Type/Annot/A 28350 0 R/Subtype/Link/Rect[374 349 387 359]/Border[0 0 0]/H/N>> endobj 20795 0 obj <>/P 3210 0 R/Type/Annot/A 27610 0 R/Subtype/Link/Rect[387 349 397 358]/Border[0 0 0]/H/N>> endobj 20796 0 obj <>/P 3210 0 R/Type/Annot/A 20909 0 R/Subtype/Link/Rect[399 349 413 358]/Border[0 0 0]/H/N>> endobj 20797 0 obj <>/P 3210 0 R/Type/Annot/A 20994 0 R/Subtype/Link/Rect[415 349 429 358]/Border[0 0 0]/H/N>> endobj 20798 0 obj <>/P 3210 0 R/Type/Annot/A 20987 0 R/Subtype/Link/Rect[431 349 445 358]/Border[0 0 0]/H/N>> endobj 20799 0 obj <>/P 3210 0 R/Type/Annot/A 20897 0 R/Subtype/Link/Rect[447 349 459 358]/Border[0 0 0]/H/N>> endobj 20800 0 obj <>/P 3210 0 R/Type/Annot/A 26481 0 R/Subtype/Link/Rect[375 339 388 349]/Border[0 0 0]/H/N>> endobj 20801 0 obj <>/P 3210 0 R/Type/Annot/A 20972 0 R/Subtype/Link/Rect[388 339 398 348]/Border[0 0 0]/H/N>> endobj 20802 0 obj <>/P 3210 0 R/Type/Annot/A 25905 0 R/Subtype/Link/Rect[400 339 414 348]/Border[0 0 0]/H/N>> endobj 20803 0 obj <>/P 3210 0 R/Type/Annot/A 20964 0 R/Subtype/Link/Rect[416 339 430 348]/Border[0 0 0]/H/N>> endobj 20804 0 obj <>/P 3210 0 R/Type/Annot/A 20961 0 R/Subtype/Link/Rect[432 339 446 348]/Border[0 0 0]/H/N>> endobj 20805 0 obj <>/P 3210 0 R/Type/Annot/A 25785 0 R/Subtype/Link/Rect[448 339 460 348]/Border[0 0 0]/H/N>> endobj 20806 0 obj <>/P 3210 0 R/Type/Annot/A 24978 0 R/Subtype/Link/Rect[406 329 422 339]/Border[0 0 0]/H/N>> endobj 20807 0 obj <>/P 3210 0 R/Type/Annot/A 24908 0 R/Subtype/Link/Rect[423 329 435 338]/Border[0 0 0]/H/N>> endobj 20808 0 obj <>/P 3210 0 R/Type/Annot/A 20947 0 R/Subtype/Link/Rect[413 319 425 328]/Border[0 0 0]/H/N>> endobj 20809 0 obj <>/P 3210 0 R/Type/Annot/A 24250 0 R/Subtype/Link/Rect[413 309 421 318]/Border[0 0 0]/H/N>> endobj 20810 0 obj <>/P 3210 0 R/Type/Annot/A 23439 0 R/Subtype/Link/Rect[408 299 422 308]/Border[0 0 0]/H/N>> endobj 20811 0 obj <>/P 3210 0 R/Type/Annot/A 20935 0 R/Subtype/Link/Rect[424 299 438 308]/Border[0 0 0]/H/N>> endobj 20812 0 obj <>/P 3210 0 R/Type/Annot/A 20931 0 R/Subtype/Link/Rect[440 299 452 308]/Border[0 0 0]/H/N>> endobj 20813 0 obj <>/P 3210 0 R/Type/Annot/A 20927 0 R/Subtype/Link/Rect[413 289 423 298]/Border[0 0 0]/H/N>> endobj 20814 0 obj <>/P 3210 0 R/Type/Annot/A 20922 0 R/Subtype/Link/Rect[425 289 435 298]/Border[0 0 0]/H/N>> endobj 20815 0 obj <>/P 3210 0 R/Type/Annot/A 20917 0 R/Subtype/Link/Rect[437 289 449 298]/Border[0 0 0]/H/N>> endobj 20816 0 obj <>/P 3210 0 R/Type/Annot/A 20913 0 R/Subtype/Link/Rect[422 279 432 288]/Border[0 0 0]/H/N>> endobj 20817 0 obj <>/P 3210 0 R/Type/Annot/A 20911 0 R/Subtype/Link/Rect[434 279 446 288]/Border[0 0 0]/H/N>> endobj 20818 0 obj <>/P 3210 0 R/Type/Annot/A 20906 0 R/Subtype/Link/Rect[418 269 428 278]/Border[0 0 0]/H/N>> endobj 20819 0 obj <>/P 3210 0 R/Type/Annot/A 20996 0 R/Subtype/Link/Rect[430 269 442 278]/Border[0 0 0]/H/N>> endobj 20820 0 obj <>/P 3210 0 R/Type/Annot/A 20900 0 R/Subtype/Link/Rect[422 259 432 268]/Border[0 0 0]/H/N>> endobj 20821 0 obj <>/P 3210 0 R/Type/Annot/A 20985 0 R/Subtype/Link/Rect[434 259 446 268]/Border[0 0 0]/H/N>> endobj 20822 0 obj <>/P 3210 0 R/Type/Annot/A 20980 0 R/Subtype/Link/Rect[404 249 414 258]/Border[0 0 0]/H/N>> endobj 20823 0 obj <>/P 3210 0 R/Type/Annot/A 20976 0 R/Subtype/Link/Rect[416 249 433 259]/Border[0 0 0]/H/N>> endobj 20824 0 obj <>/P 3210 0 R/Type/Annot/A 20969 0 R/Subtype/Link/Rect[433 249 445 258]/Border[0 0 0]/H/N>> endobj 20825 0 obj <>/P 3210 0 R/Type/Annot/A 20967 0 R/Subtype/Link/Rect[423 239 435 248]/Border[0 0 0]/H/N>> endobj 20826 0 obj <>/P 3210 0 R/Type/Annot/A 25874 0 R/Subtype/Link/Rect[408 229 422 238]/Border[0 0 0]/H/N>> endobj 20827 0 obj <>/P 3210 0 R/Type/Annot/A 20958 0 R/Subtype/Link/Rect[424 229 438 238]/Border[0 0 0]/H/N>> endobj 20828 0 obj <>/P 3210 0 R/Type/Annot/A 25797 0 R/Subtype/Link/Rect[440 229 454 238]/Border[0 0 0]/H/N>> endobj 20829 0 obj <>/P 3210 0 R/Type/Annot/A 20952 0 R/Subtype/Link/Rect[456 229 470 238]/Border[0 0 0]/H/N>> endobj 20830 0 obj <>/P 3210 0 R/Type/Annot/A 24923 0 R/Subtype/Link/Rect[472 229 486 238]/Border[0 0 0]/H/N>> endobj 20831 0 obj <>/P 3210 0 R/Type/Annot/A 20945 0 R/Subtype/Link/Rect[488 229 500 238]/Border[0 0 0]/H/N>> endobj 20832 0 obj <>/P 3210 0 R/Type/Annot/A 20940 0 R/Subtype/Link/Rect[401 219 413 228]/Border[0 0 0]/H/N>> endobj 20833 0 obj <>/P 3210 0 R/Type/Annot/A 24226 0 R/Subtype/Link/Rect[413 209 430 219]/Border[0 0 0]/H/N>> endobj 20834 0 obj <>/P 3210 0 R/Type/Annot/A 23393 0 R/Subtype/Link/Rect[430 209 442 218]/Border[0 0 0]/H/N>> endobj 20835 0 obj <>/P 3210 0 R/Type/Annot/A 23355 0 R/Subtype/Link/Rect[387 199 401 208]/Border[0 0 0]/H/N>> endobj 20836 0 obj <>/P 3210 0 R/Type/Annot/A 22645 0 R/Subtype/Link/Rect[403 199 415 208]/Border[0 0 0]/H/N>> endobj 20837 0 obj <>/P 3210 0 R/Type/Annot/A 22590 0 R/Subtype/Link/Rect[393 189 399 198]/Border[0 0 0]/H/N>> endobj 20838 0 obj <>/P 3210 0 R/Type/Annot/A 20916 0 R/Subtype/Link/Rect[401 189 415 198]/Border[0 0 0]/H/N>> endobj 20839 0 obj <>/P 3210 0 R/Type/Annot/A 21971 0 R/Subtype/Link/Rect[417 189 431 198]/Border[0 0 0]/H/N>> endobj 20840 0 obj <>/P 3210 0 R/Type/Annot/A 20910 0 R/Subtype/Link/Rect[433 189 447 198]/Border[0 0 0]/H/N>> endobj 20841 0 obj <>/P 3210 0 R/Type/Annot/A 20905 0 R/Subtype/Link/Rect[449 189 461 198]/Border[0 0 0]/H/N>> endobj 20842 0 obj <>/P 3210 0 R/Type/Annot/A 20902 0 R/Subtype/Link/Rect[384 169 393 179]/Border[0 0 0]/H/N>> endobj 20843 0 obj <>/P 3210 0 R/Type/Annot/A 20873 0 R/Subtype/Link/Rect[393 169 397 178]/Border[0 0 0]/H/N>> endobj 20844 0 obj <>/P 3210 0 R/Type/Annot/A 20988 0 R/Subtype/Link/Rect[405 159 419 168]/Border[0 0 0]/H/N>> endobj 20845 0 obj <>/P 3210 0 R/Type/Annot/A 20984 0 R/Subtype/Link/Rect[421 159 433 168]/Border[0 0 0]/H/N>> endobj 20846 0 obj <>/P 3210 0 R/Type/Annot/A 20979 0 R/Subtype/Link/Rect[381 149 398 159]/Border[0 0 0]/H/N>> endobj 20847 0 obj <>/P 3210 0 R/Type/Annot/A 20975 0 R/Subtype/Link/Rect[399 149 411 158]/Border[0 0 0]/H/N>> endobj 20848 0 obj <> endobj 20849 0 obj <> endobj 20850 0 obj <> endobj 20851 0 obj <> endobj 20852 0 obj <> endobj 20853 0 obj <> endobj 20854 0 obj <> endobj 20855 0 obj <> endobj 20856 0 obj <> endobj 20857 0 obj <> endobj 20858 0 obj <> endobj 20859 0 obj <> endobj 20860 0 obj <> endobj 20861 0 obj <> endobj 20862 0 obj <> endobj 20863 0 obj <> endobj 20864 0 obj <> endobj 20865 0 obj <> endobj 20866 0 obj <> endobj 20867 0 obj <> endobj 20868 0 obj <> endobj 20869 0 obj <> endobj 20870 0 obj <> endobj 20871 0 obj <> endobj 20872 0 obj <> endobj 20873 0 obj <> endobj 20874 0 obj <> endobj 20875 0 obj <> endobj 20876 0 obj <> endobj 20877 0 obj <> endobj 20878 0 obj <> endobj 20879 0 obj <> endobj 20880 0 obj <> endobj 20881 0 obj <> endobj 20882 0 obj <> endobj 20883 0 obj <> endobj 20884 0 obj <> endobj 20885 0 obj <> endobj 20886 0 obj <> endobj 20887 0 obj <> endobj 20888 0 obj <> endobj 20889 0 obj <> endobj 20890 0 obj <> endobj 20891 0 obj <> endobj 20892 0 obj <> endobj 20893 0 obj <> endobj 20894 0 obj <> endobj 20895 0 obj <> endobj 20896 0 obj <> endobj 20897 0 obj <> endobj 20898 0 obj <> endobj 20899 0 obj <> endobj 20900 0 obj <> endobj 20901 0 obj <> endobj 20902 0 obj <> endobj 20903 0 obj <> endobj 20904 0 obj <> endobj 20905 0 obj <> endobj 20906 0 obj <> endobj 20907 0 obj <> endobj 20908 0 obj <> endobj 20909 0 obj <> endobj 20910 0 obj <> endobj 20911 0 obj <> endobj 20912 0 obj <> endobj 20913 0 obj <> endobj 20914 0 obj <> endobj 20915 0 obj <> endobj 20916 0 obj <> endobj 20917 0 obj <> endobj 20918 0 obj <> endobj 20919 0 obj <> endobj 20920 0 obj <> endobj 20921 0 obj <> endobj 20922 0 obj <> endobj 20923 0 obj <> endobj 20924 0 obj <> endobj 20925 0 obj <> endobj 20926 0 obj <> endobj 20927 0 obj <> endobj 20928 0 obj <> endobj 20929 0 obj <> endobj 20930 0 obj <> endobj 20931 0 obj <> endobj 20932 0 obj <> endobj 20933 0 obj <> endobj 20934 0 obj <> endobj 20935 0 obj <> endobj 20936 0 obj <> endobj 20937 0 obj <> endobj 20938 0 obj <> endobj 20939 0 obj <> endobj 20940 0 obj <> endobj 20941 0 obj <> endobj 20942 0 obj <> endobj 20943 0 obj <> endobj 20944 0 obj <> endobj 20945 0 obj <> endobj 20946 0 obj <> endobj 20947 0 obj <> endobj 20948 0 obj <> endobj 20949 0 obj <> endobj 20950 0 obj <> endobj 20951 0 obj <> endobj 20952 0 obj <> endobj 20953 0 obj <> endobj 20954 0 obj <> endobj 20955 0 obj <> endobj 20956 0 obj <> endobj 20957 0 obj <> endobj 20958 0 obj <> endobj 20959 0 obj <> endobj 20960 0 obj <> endobj 20961 0 obj <> endobj 20962 0 obj <> endobj 20963 0 obj <> endobj 20964 0 obj <> endobj 20965 0 obj <> endobj 20966 0 obj <> endobj 20967 0 obj <> endobj 20968 0 obj <> endobj 20969 0 obj <> endobj 20970 0 obj <> endobj 20971 0 obj <> endobj 20972 0 obj <> endobj 20973 0 obj <> endobj 20974 0 obj <> endobj 20975 0 obj <> endobj 20976 0 obj <> endobj 20977 0 obj <> endobj 20978 0 obj <> endobj 20979 0 obj <> endobj 20980 0 obj <> endobj 20981 0 obj <> endobj 20982 0 obj <> endobj 20983 0 obj <> endobj 20984 0 obj <> endobj 20985 0 obj <> endobj 20986 0 obj <> endobj 20987 0 obj <> endobj 20988 0 obj <> endobj 20989 0 obj <> endobj 20990 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 20991 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 20992 0 obj <> endobj 20993 0 obj <> endobj 20994 0 obj <> endobj 20995 0 obj <> endobj 20996 0 obj <> endobj 20997 0 obj <> stream q /X1 Do Q q endstream endobj 20998 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 20999 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 21000 0 obj <> stream HksHWGbMf)B0 X[[Jy0˿ӎO;T(Hx֫>mɧMŞ??pK؋/_GePLg2N3`"7[F qVOGq6墨6mD/eZ2Ef5I2/QfғSC [Ϊrd'.6'wldlluZU?Y*l.7uX[֍Μq%pm4?g 7};v9a7,2u\D y4ƌHša (} isPp/

6o<+U3QuVAV5|`*lVL}嫇նXtj3S? 0:+`z6#imm"%{C۪Uwݨ<őAZ[g1myHٮ'ogl]cQtn/w6z(`PGhq^6C>>`>na`M٢ޝ?lx'pW|1lw0^a\v랩:Rq<Mf"wy8 }(l oHp7X>7/E Mu侢o:+t!(F_Ȑa꾺+,fD(R_  \{n# roh*A  \g%WZNv.ro`MX*bp[Se0fI2Ki2:J>Y n`n/i?Ut?\|c;ޅ:inM\nVd~fmmJ?#]f/]τ+Rۋvs܋Ro[LE]&mQ“.sekVj*2mإ(: fUz"Ww\ͧ7e8TI!m(ή׻_o~5nKx8j ӢEVsiQi1vFp@7njzU\HHv%fE>D X/U3{?% N"uX'_q{c^OTE! @p~`s{5u'K/Ժ}K ~2dvUw ҰB!U&TAhߍvg VD CK" nG65'iɒNtþDN8Ͷ'Afс`}3] Ցl>2tl"(挩U݋ʦPZOtu]m/L/9_Qp#BPydVWTU*&@C}c$ԏ/fZɠ=6ckp"^σ#UГLN ~ij1Zy@?]c! fdcIY kq(Iwx)rJ_"? a꾁r9vd?02ȹ/~[8.Iiɋ6(< º-XMUtuswH8ZJs<~dݺ_mi=IH.C qvlmҮ*3nbqO *ihCnqƄʲJڕ,\X(X(vn]˱nHIU0JO@RFޚ/l)jo *V˝Đ9eiF/iH\ȏ%Z`,M EA#?8"l9aF ~+u%2Vf4TwŲ  TEϗ/IL?9! (tg}mgBDȓcق4Gfɤ9ĐjUА΄M%PV#oJ&ĴlOmo w@EhmWm^b0% vCaqO@} QGTtǶN(k7r=< \ƌPendstream endobj 22039 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 22040 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 22041 0 obj <> endobj 22042 0 obj <> endobj 22043 0 obj <> endobj 22044 0 obj <> stream q /X1 Do Q q endstream endobj 22045 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 22046 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 22047 0 obj <> stream HWo}}<#!.qL8ueȚD|ַjjE64u4xљM| k$4%i<)p2ïӬKc}꽯?ti{Ǐɷ?Նyϯjv%6(GpdA{ؙ&yJ_o̧ωYRN G2RsJW$1K?NbIJVƬwkyNwS=p{{^}PpOOO ϔ ϔϕϕϕ///W [DVb%F,Z1K{ VbUjHĘܫ:Z VbUjHĘܫ:Z VbUjHĘܫ:Z VbUjHĘܫ:Z-"R+1fi#HĘKYڽĈR+1f*VbUj=HĈR+1f*VbUj=HĈR+1f*VbUj=HĈR+1f*VbUj=HQ{ Vb%,^b{R+1f*Vb{R+1f*Vb{R+1f*Vb{R+1f*Vb({ Vb%,˲ &'0 X3E6`Q83YV"Ի1^0ygWe5ir^m67 vLx/jLeEj:`h/|ue%5Yb^Wfm[]5ㅩe}uUIxÉ9|r"q_D|EzcZzt܎ Ьf 헲M8Z7^`YT oLzq!-vO:`;,dn{և#ƬVZAiV RTie@+SZʔVr\i@PZ*V JURjDkIYZKbIJ@*- r@)-T;cR}@KY@K}/1f-ĘT;cR}@KY@K}/ݸ{̒ZĘ$c+R}AKVރ@K}/1H{^bk@K}}/1ր^b<-x Z{TKkIYZKb<:-)2`rKN9ƣ8+Ko9oGAw)+/v%~ 6WM\a~T7WW )@jjqQË́LY_xiYWtʺwŋ]uT զ6NΖTmg..I I%~.j9gc}"N?ڪYHWnQj&5tژy$G3PwyQdtz;sv*,;יq(w'J9H49Ǥc-z`Le!I۲^PEfkX=9q/r3ϰ9>Bpuq$nOHfg3:r2_U?ɨ?/TT /z٨o/wqa诡8Mwy@AF3&f;5]OMrjx/Q<6T8zn=4Ň椹Y>{m<2ޜʹ$.tQpmT?vԳ G7^'DlM۵^iz'M3R/ENyļ[Et]ߢuCzݎmh$mŮ(l9mW$IO2<;Ʉ.oˋfYu#VQs .^mj7Ul ~뎚f|wK[E%PvMoMT|İ[rs\o"vn{KYhF[b\/w{/gHE`EPǻW/g+ҭ\a ,d[!]ݑ]ЮHK8f÷ǃզy7[:{endstream endobj 22048 0 obj <> endobj 22049 0 obj <> endobj 22050 0 obj <> endobj 22051 0 obj <> endobj 22052 0 obj <> endobj 22053 0 obj <> stream q /X1 Do Q q endstream endobj 22054 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 22055 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 22056 0 obj <> stream HWko8_r"v0@H13-&} -٦udɕWl`Qy{嗢O?-}{߼{x"bq&D4A,X ٽYɼ*Qm-o kKoF{+~'gC,1Yfln˦f"}/><3%0o!2/I b//mNrrCl Yn8.,[;x G G$KG$KG$KG}D>rDŽQcG}L >q'QSG}JO)>ugQ3G}N9,'Lkc{O1dm Xkm YzCƀEƐEw\+kZZCq \kc";km Xkm Yzǵp!PV1`1d µ6,BZA$\kcr\6,Wp!PV1dJµ6,µ6,BZIƐEw\+ k%ZCq$\kc"\kc";km Yzǵpp!Uoc"\kcr\6,µ6,Bڈp!P6"\kc"\kc";k#µ6,µ6,Bڈp!P6"\kc"\kc";k#µ6bµ6,Wp!UocrA ߤ{oVrlx8_$j2`XWjmiJ@FH< Jfli_/?FSgtcM[gUUjxaz}ȯ"ڞA*Lf/ rɒ84;wn)ى/}:3"Ak{Ϳ~{;CIO;|2g_qXia!`哳H%%' !ɧ<.IAWLЗ)jX+F9s7-.S S؜&Sc&ۦk, 莇Cӎoͱ^L Sgyb_$^`i&M!d,y5PXhqIVY^j|: Jܺ7SlZb;(XZ1}2$ D4坧aZLB7eǓ꾰Oވqgdm:=>4;U3ߍDIia ,N(GoFSuji@-x!9Av\!j[yf?sXAGH˾܏ض-viù1M.^.9ahߩqGe%З%c)H\N% ʣd0/:HYÛ No$O69M/,e(z2 \@O 5OWB o;+X7> !]ttHW9Qf'"'N]3ea 9qja3 |t8e  s,;PCUt3Z;eJX~_L [Z ;a{Vj6j09b>{f6(o9N (z RG ?ni yf@h8\D+zL$Ah\N!"(AˁEY Z-Um {hN{8® ]@..i 9ZD,J CzSm8|]2Aa|zoA7qȁ̳ g0ayu++HW7@1v/0\T_,Paݝ`n.L貙p9z=6S`ǦNB[Yw@ť&8jdP&7|{~g'> * n}[*ABo~ڲ;øk&6 `H=bɈƗWxs 7p}bS%͋/0qf>b!OXԊ& _o'6T\_I >}&su;l0Y/v4tW0 nF7g\wSc'H kJtz\NW}6rlμ!4a,8\܅p K㩾?qWSò,衻[`o`INdQlYs-H!8tH+[^1nf+;固[cU ( C$3 U'~0`O& j"77vXhKw[IQr1& ]VƷ]kJD/y29/ȧ`S)+&Bte_ӡF䅷"9 "*O9*oQh]E+L)/<b dO  HbX\b6U#Jo; >:`׵/(KυT.Im>E8+RWC׮[̼кfn!`sKI4U^Nɒ'La&d)/=q©Jc®#J׽4hb_tjNYKY FH>LLeqıCQL }7ݤz O\.>Sxq]ƚ WPtw˺XAu,s3>;LDyޯsQ]Ӗ%$-q.n ((]ECi|?ȭ<Xt=fXE{=uC*fkT]ұjS\HTBcl+T̄ldEI|^&E?Rӷo_~uEYح^~ gA+du]z`pƀfj9 "փ|z5>QѡBp$+^eNMy$) ʻ} `I?ܬTeROf>+&?yiVk}oD@X L.'[XL[3-ciOiJz\q>/P 1120 0 R/Type/Annot/A 38122 0 R/Subtype/Link/Rect[129.600006 550.429016 322.656006 570.109009]/Border[0 0 0]/H/N>> endobj 22058 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 22059 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 22060 0 obj <> endobj 22061 0 obj <> endobj 22062 0 obj <> stream q /X1 Do Q q endstream endobj 22063 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 22064 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 22065 0 obj <> stream HWmu0P;ENZ@R8AeŕtN_ߙjIWu!É|yg^MJZR3Um%sVFCSvg`kV,Oo͛fXoabuu{Euw xlY`ښZ9lfowͿo[Z 8X]m% ށwY%=VEM &ń*6Dۥ6@  J Om{{W{W{W{{{7{7{7{{{w{w{w{{{LmjVPmjCT>PmjCT>!*gE6!`VMm"gjSզ6D3JB QLPmjԆ(}ZI6!`VMm"TET+ զ6D3JBm[)B Q9(B Q9Ԇ}jԆ(}ZE6!`VMm"TETզ6D3*B PjSjԆ(}ZE6PmjC>S"TETզm զ6DSզ6DSr PjSj5Ԇ(}ZM6PmjC>S&TET զ6@Mm"gՄjSj5(B QLPmjC>S&Tڶ!TOm"TOmه:mzQ.ĝb-*ߚ=2ԖYmavsqYf2ya83gAaXσ:(.paIg)oG(_=\cf=LưŊ]ޫLHY㴯-rϰY K{~FԒsn8`xij؋ y Y>'xO }qxo A}9#X fOi i8е7"F/Pmd9k͹aVw ߔ5`< Tt-hЯPJ 5y+ AwZԮ [ti;a0O$j ~ 00駟'/iN1nDt(k s!B ge|9*eBp̄vV1._,+B<ȿˢZxY(ܕs~=D\ 4 cUuЋvOg?6mܭc\;8Pz)hw!쟎t ,ܪeAXt,g\f/oթMk>5pnq"x˼Gc P_ӇbKAתLE lf;&"E[-|gϙ!)GGqXؽ`d Z`!aN,3 `.9)'DpHŰ X{K\Q *D!-#mJ6#-~8tmqrNEB{*I-E-?m^rKLZpfNʤ2ƔhJ.ŖXIs,xݯ_6ˏzkl ٩ ':dL\˚c|3˃Iuu0_0UמؚYip#nrx\\@FK^ cԙ%Ԅ\_ξE뗳'Cs?VMÙO_Nw|2ubDlթDע%*JU~RbR1]ʴ]JE˭q [?&BQ4ȓ?W|Z2*ډ/ØPLR=d.Fxdٿ-M3<3 qN7WN@*-*L0W_hLN6iaC%k&a[g[x2Etܸe!Cm\=0HjpTUBñT}dz yb"ǭ oþutu QS(N͖ͱ{@"z!t|>׻SsxJ@O_OPܨUx%qB *^ixt\:[SsJ_x(k'g9K 5]>4ٙi?-Q~B^cR‹F4n}N W(((8P9s<~uQz8<4,}jǧ#{xڭ`h70~RZpy_ҫ7n+!ѵ@>&MQ@!ڰ)Q$",y37.9Z~m zJIo^` N:#B/T4V+%*{>6iLş-&p+IͥJI"Rѣ8p(1NXf-mnVwסJnG-qK FS qQY `حu+.UC#2fo)u[qdn>8NwtVNqI(}2p ^z {vG9:#cXka-]=}ԓ51Lա[jIMi0SQfaiLuiMFt>M$g3-\ 4c$s# 4uެ.f4JYUb"n&ÿk5!~8NCl֭|_7y%'<dLޏl5R,lh1mY-\e+xM|,6+lXd|a뻯X--6&*3?\dV)^YkT8u?Ueheʔ|ܗHHQ%Rb$+1_ش@{~WZL (~mCܾnFݖ/waIt!1< }} d191]ʰn[TC22,y@EpTTJo^ i d%/9S4<]mjRf- ^WvWЎ_wkr E?Ym";m@h'wZBRNUJCB׷?}6#nk=[V PF֠uHm~VX#|ԬtŪɗVML¤ʵ@ٮƄD%+ҬXfw}+1^x!4/+>1$ltD 0ϳ qØ9 H*+- ڄ٧ b0 3O@iU;Iz*NiGNN!nXZ7ϡN v$]KlKȃ}Mt8p&(K8]T̪w.g^L)s=q{U&K쟑8(ġ}zx9gUUs?>Z9/m%"և7oBC3RZ`l{ " С >noֱXp >8Y;p\\p|Xϸ~f_d&0<2 e7:135=YvL>δ2b -6I- T-TWDSv?Y\< 9qhЦoni^Iӫ_zwendstream endobj 22066 0 obj <>/P 12054 0 R/Type/Annot/A 22455 0 R/Subtype/Link/Rect[183 670 193 678]/Border[0 0 0]/H/N>> endobj 22067 0 obj <>/P 12054 0 R/Type/Annot/A 43516 0 R/Subtype/Link/Rect[195 670 208 678]/Border[0 0 0]/H/N>> endobj 22068 0 obj <>/P 12054 0 R/Type/Annot/A 40121 0 R/Subtype/Link/Rect[209 670 219 678]/Border[0 0 0]/H/N>> endobj 22069 0 obj <>/P 12054 0 R/Type/Annot/A 22442 0 R/Subtype/Link/Rect[221 670 237 678]/Border[0 0 0]/H/N>> endobj 22070 0 obj <>/P 12054 0 R/Type/Annot/A 39545 0 R/Subtype/Link/Rect[237 670 251 678]/Border[0 0 0]/H/N>> endobj 22071 0 obj <>/P 12054 0 R/Type/Annot/A 22435 0 R/Subtype/Link/Rect[253 670 266 678]/Border[0 0 0]/H/N>> endobj 22072 0 obj <>/P 12054 0 R/Type/Annot/A 38980 0 R/Subtype/Link/Rect[268 670 282 678]/Border[0 0 0]/H/N>> endobj 22073 0 obj <>/P 12054 0 R/Type/Annot/A 22428 0 R/Subtype/Link/Rect[151 660 168 669]/Border[0 0 0]/H/N>> endobj 22074 0 obj <>/P 12054 0 R/Type/Annot/A 22424 0 R/Subtype/Link/Rect[169 660 183 668]/Border[0 0 0]/H/N>> endobj 22075 0 obj <>/P 12054 0 R/Type/Annot/A 38347 0 R/Subtype/Link/Rect[185 660 199 668]/Border[0 0 0]/H/N>> endobj 22076 0 obj <>/P 12054 0 R/Type/Annot/A 22417 0 R/Subtype/Link/Rect[201 660 215 668]/Border[0 0 0]/H/N>> endobj 22077 0 obj <>/P 12054 0 R/Type/Annot/A 38280 0 R/Subtype/Link/Rect[217 660 231 668]/Border[0 0 0]/H/N>> endobj 22078 0 obj <>/P 12054 0 R/Type/Annot/A 22409 0 R/Subtype/Link/Rect[233 660 247 668]/Border[0 0 0]/H/N>> endobj 22079 0 obj <>/P 12054 0 R/Type/Annot/A 43008 0 R/Subtype/Link/Rect[249 660 265 669]/Border[0 0 0]/H/N>> endobj 22080 0 obj <>/P 12054 0 R/Type/Annot/A 22402 0 R/Subtype/Link/Rect[266 660 278 668]/Border[0 0 0]/H/N>> endobj 22081 0 obj <>/P 12054 0 R/Type/Annot/A 36728 0 R/Subtype/Link/Rect[202 650 219 659]/Border[0 0 0]/H/N>> endobj 22082 0 obj <>/P 12054 0 R/Type/Annot/A 22396 0 R/Subtype/Link/Rect[220 650 234 658]/Border[0 0 0]/H/N>> endobj 22083 0 obj <>/P 12054 0 R/Type/Annot/A 38180 0 R/Subtype/Link/Rect[236 650 250 658]/Border[0 0 0]/H/N>> endobj 22084 0 obj <>/P 12054 0 R/Type/Annot/A 22389 0 R/Subtype/Link/Rect[252 650 264 658]/Border[0 0 0]/H/N>> endobj 22085 0 obj <>/P 12054 0 R/Type/Annot/A 35095 0 R/Subtype/Link/Rect[190 640 202 648]/Border[0 0 0]/H/N>> endobj 22086 0 obj <>/P 12054 0 R/Type/Annot/A 22382 0 R/Subtype/Link/Rect[212 630 228 639]/Border[0 0 0]/H/N>> endobj 22087 0 obj <>/P 12054 0 R/Type/Annot/A 38131 0 R/Subtype/Link/Rect[229 630 243 638]/Border[0 0 0]/H/N>> endobj 22088 0 obj <>/P 12054 0 R/Type/Annot/A 22374 0 R/Subtype/Link/Rect[245 630 259 638]/Border[0 0 0]/H/N>> endobj 22089 0 obj <>/P 12054 0 R/Type/Annot/A 22370 0 R/Subtype/Link/Rect[261 630 273 638]/Border[0 0 0]/H/N>> endobj 22090 0 obj <>/P 12054 0 R/Type/Annot/A 22366 0 R/Subtype/Link/Rect[190 620 202 628]/Border[0 0 0]/H/N>> endobj 22091 0 obj <>/P 12054 0 R/Type/Annot/A 38061 0 R/Subtype/Link/Rect[222 610 232 618]/Border[0 0 0]/H/N>> endobj 22092 0 obj <>/P 12054 0 R/Type/Annot/A 38050 0 R/Subtype/Link/Rect[234 610 244 618]/Border[0 0 0]/H/N>> endobj 22093 0 obj <>/P 12054 0 R/Type/Annot/A 22357 0 R/Subtype/Link/Rect[246 610 254 618]/Border[0 0 0]/H/N>> endobj 22094 0 obj <>/P 12054 0 R/Type/Annot/A 22353 0 R/Subtype/Link/Rect[222 600 232 608]/Border[0 0 0]/H/N>> endobj 22095 0 obj <>/P 12054 0 R/Type/Annot/A 22561 0 R/Subtype/Link/Rect[234 600 244 608]/Border[0 0 0]/H/N>> endobj 22096 0 obj <>/P 12054 0 R/Type/Annot/A 22559 0 R/Subtype/Link/Rect[246 600 258 609]/Border[0 0 0]/H/N>> endobj 22097 0 obj <>/P 12054 0 R/Type/Annot/A 31795 0 R/Subtype/Link/Rect[259 600 267 608]/Border[0 0 0]/H/N>> endobj 22098 0 obj <>/P 12054 0 R/Type/Annot/A 31106 0 R/Subtype/Link/Rect[188 590 198 598]/Border[0 0 0]/H/N>> endobj 22099 0 obj <>/P 12054 0 R/Type/Annot/A 31056 0 R/Subtype/Link/Rect[200 590 210 598]/Border[0 0 0]/H/N>> endobj 22100 0 obj <>/P 12054 0 R/Type/Annot/A 30999 0 R/Subtype/Link/Rect[212 590 224 598]/Border[0 0 0]/H/N>> endobj 22101 0 obj <>/P 12054 0 R/Type/Annot/A 37937 0 R/Subtype/Link/Rect[190 580 198 588]/Border[0 0 0]/H/N>> endobj 22102 0 obj <>/P 12054 0 R/Type/Annot/A 30250 0 R/Subtype/Link/Rect[189 570 197 578]/Border[0 0 0]/H/N>> endobj 22103 0 obj <>/P 12054 0 R/Type/Annot/A 30218 0 R/Subtype/Link/Rect[239 560 251 569]/Border[0 0 0]/H/N>> endobj 22104 0 obj <>/P 12054 0 R/Type/Annot/A 30156 0 R/Subtype/Link/Rect[252 560 260 568]/Border[0 0 0]/H/N>> endobj 22105 0 obj <>/P 12054 0 R/Type/Annot/A 30125 0 R/Subtype/Link/Rect[202 550 212 558]/Border[0 0 0]/H/N>> endobj 22106 0 obj <>/P 12054 0 R/Type/Annot/A 30078 0 R/Subtype/Link/Rect[214 550 226 559]/Border[0 0 0]/H/N>> endobj 22107 0 obj <>/P 12054 0 R/Type/Annot/A 22525 0 R/Subtype/Link/Rect[227 550 235 558]/Border[0 0 0]/H/N>> endobj 22108 0 obj <>/P 12054 0 R/Type/Annot/A 29284 0 R/Subtype/Link/Rect[220 540 232 548]/Border[0 0 0]/H/N>> endobj 22109 0 obj <>/P 12054 0 R/Type/Annot/A 29254 0 R/Subtype/Link/Rect[202 530 212 538]/Border[0 0 0]/H/N>> endobj 22110 0 obj <>/P 12054 0 R/Type/Annot/A 29205 0 R/Subtype/Link/Rect[214 530 224 538]/Border[0 0 0]/H/N>> endobj 22111 0 obj <>/P 12054 0 R/Type/Annot/A 22509 0 R/Subtype/Link/Rect[226 530 236 538]/Border[0 0 0]/H/N>> endobj 22112 0 obj <>/P 12054 0 R/Type/Annot/A 29136 0 R/Subtype/Link/Rect[238 530 251 539]/Border[0 0 0]/H/N>> endobj 22113 0 obj <>/P 12054 0 R/Type/Annot/A 22503 0 R/Subtype/Link/Rect[252 530 262 538]/Border[0 0 0]/H/N>> endobj 22114 0 obj <>/P 12054 0 R/Type/Annot/A 37836 0 R/Subtype/Link/Rect[264 530 276 539]/Border[0 0 0]/H/N>> endobj 22115 0 obj <>/P 12054 0 R/Type/Annot/A 22495 0 R/Subtype/Link/Rect[277 530 287 538]/Border[0 0 0]/H/N>> endobj 22116 0 obj <>/P 12054 0 R/Type/Annot/A 28503 0 R/Subtype/Link/Rect[289 530 299 538]/Border[0 0 0]/H/N>> endobj 22117 0 obj <>/P 12054 0 R/Type/Annot/A 22489 0 R/Subtype/Link/Rect[151 520 164 529]/Border[0 0 0]/H/N>> endobj 22118 0 obj <>/P 12054 0 R/Type/Annot/A 37790 0 R/Subtype/Link/Rect[165 520 175 528]/Border[0 0 0]/H/N>> endobj 22119 0 obj <>/P 12054 0 R/Type/Annot/A 22480 0 R/Subtype/Link/Rect[177 520 187 528]/Border[0 0 0]/H/N>> endobj 22120 0 obj <>/P 12054 0 R/Type/Annot/A 22474 0 R/Subtype/Link/Rect[189 520 199 528]/Border[0 0 0]/H/N>> endobj 22121 0 obj <>/P 12054 0 R/Type/Annot/A 27605 0 R/Subtype/Link/Rect[201 520 215 528]/Border[0 0 0]/H/N>> endobj 22122 0 obj <>/P 12054 0 R/Type/Annot/A 22468 0 R/Subtype/Link/Rect[217 520 231 528]/Border[0 0 0]/H/N>> endobj 22123 0 obj <>/P 12054 0 R/Type/Annot/A 22464 0 R/Subtype/Link/Rect[233 520 247 528]/Border[0 0 0]/H/N>> endobj 22124 0 obj <>/P 12054 0 R/Type/Annot/A 37736 0 R/Subtype/Link/Rect[249 520 263 528]/Border[0 0 0]/H/N>> endobj 22125 0 obj <>/P 12054 0 R/Type/Annot/A 26512 0 R/Subtype/Link/Rect[265 520 281 529]/Border[0 0 0]/H/N>> endobj 22126 0 obj <>/P 12054 0 R/Type/Annot/A 37722 0 R/Subtype/Link/Rect[282 520 296 528]/Border[0 0 0]/H/N>> endobj 22127 0 obj <>/P 12054 0 R/Type/Annot/A 22450 0 R/Subtype/Link/Rect[151 510 165 518]/Border[0 0 0]/H/N>> endobj 22128 0 obj <>/P 12054 0 R/Type/Annot/A 22446 0 R/Subtype/Link/Rect[167 510 184 519]/Border[0 0 0]/H/N>> endobj 22129 0 obj <>/P 12054 0 R/Type/Annot/A 25872 0 R/Subtype/Link/Rect[185 510 199 518]/Border[0 0 0]/H/N>> endobj 22130 0 obj <>/P 12054 0 R/Type/Annot/A 22438 0 R/Subtype/Link/Rect[201 510 215 518]/Border[0 0 0]/H/N>> endobj 22131 0 obj <>/P 12054 0 R/Type/Annot/A 25795 0 R/Subtype/Link/Rect[217 510 231 518]/Border[0 0 0]/H/N>> endobj 22132 0 obj <>/P 12054 0 R/Type/Annot/A 24990 0 R/Subtype/Link/Rect[233 510 247 518]/Border[0 0 0]/H/N>> endobj 22133 0 obj <>/P 12054 0 R/Type/Annot/A 37670 0 R/Subtype/Link/Rect[249 510 263 518]/Border[0 0 0]/H/N>> endobj 22134 0 obj <>/P 12054 0 R/Type/Annot/A 24297 0 R/Subtype/Link/Rect[265 510 279 518]/Border[0 0 0]/H/N>> endobj 22135 0 obj <>/P 12054 0 R/Type/Annot/A 22420 0 R/Subtype/Link/Rect[281 510 295 518]/Border[0 0 0]/H/N>> endobj 22136 0 obj <>/P 12054 0 R/Type/Annot/A 22416 0 R/Subtype/Link/Rect[297 510 311 518]/Border[0 0 0]/H/N>> endobj 22137 0 obj <>/P 12054 0 R/Type/Annot/A 23391 0 R/Subtype/Link/Rect[151 500 165 508]/Border[0 0 0]/H/N>> endobj 22138 0 obj <>/P 12054 0 R/Type/Annot/A 23354 0 R/Subtype/Link/Rect[167 500 181 508]/Border[0 0 0]/H/N>> endobj 22139 0 obj <>/P 12054 0 R/Type/Annot/A 22406 0 R/Subtype/Link/Rect[183 500 197 508]/Border[0 0 0]/H/N>> endobj 22140 0 obj <>/P 12054 0 R/Type/Annot/A 22588 0 R/Subtype/Link/Rect[199 500 211 508]/Border[0 0 0]/H/N>> endobj 22141 0 obj <>/P 12054 0 R/Type/Annot/A 22577 0 R/Subtype/Link/Rect[190 490 198 498]/Border[0 0 0]/H/N>> endobj 22142 0 obj <>/P 12054 0 R/Type/Annot/A 22576 0 R/Subtype/Link/Rect[199 480 213 488]/Border[0 0 0]/H/N>> endobj 22143 0 obj <>/P 12054 0 R/Type/Annot/A 22575 0 R/Subtype/Link/Rect[215 480 227 488]/Border[0 0 0]/H/N>> endobj 22144 0 obj <>/P 12054 0 R/Type/Annot/A 22574 0 R/Subtype/Link/Rect[199 470 211 478]/Border[0 0 0]/H/N>> endobj 22145 0 obj <>/P 12054 0 R/Type/Annot/A 22573 0 R/Subtype/Link/Rect[244 460 252 468]/Border[0 0 0]/H/N>> endobj 22146 0 obj <>/P 12054 0 R/Type/Annot/A 22572 0 R/Subtype/Link/Rect[225 450 233 458]/Border[0 0 0]/H/N>> endobj 22147 0 obj <>/P 12054 0 R/Type/Annot/A 22571 0 R/Subtype/Link/Rect[215 440 225 448]/Border[0 0 0]/H/N>> endobj 22148 0 obj <>/P 12054 0 R/Type/Annot/A 22569 0 R/Subtype/Link/Rect[227 440 239 448]/Border[0 0 0]/H/N>> endobj 22149 0 obj <>/P 12054 0 R/Type/Annot/A 22568 0 R/Subtype/Link/Rect[268 430 280 438]/Border[0 0 0]/H/N>> endobj 22150 0 obj <>/P 12054 0 R/Type/Annot/A 22567 0 R/Subtype/Link/Rect[197 420 211 428]/Border[0 0 0]/H/N>> endobj 22151 0 obj <>/P 12054 0 R/Type/Annot/A 22566 0 R/Subtype/Link/Rect[213 420 227 428]/Border[0 0 0]/H/N>> endobj 22152 0 obj <>/P 12054 0 R/Type/Annot/A 22565 0 R/Subtype/Link/Rect[229 420 246 429]/Border[0 0 0]/H/N>> endobj 22153 0 obj <>/P 12054 0 R/Type/Annot/A 22564 0 R/Subtype/Link/Rect[247 420 261 428]/Border[0 0 0]/H/N>> endobj 22154 0 obj <>/P 12054 0 R/Type/Annot/A 22563 0 R/Subtype/Link/Rect[263 420 279 429]/Border[0 0 0]/H/N>> endobj 22155 0 obj <>/P 12054 0 R/Type/Annot/A 22562 0 R/Subtype/Link/Rect[280 420 294 428]/Border[0 0 0]/H/N>> endobj 22156 0 obj <>/P 12054 0 R/Type/Annot/A 22560 0 R/Subtype/Link/Rect[151 410 168 419]/Border[0 0 0]/H/N>> endobj 22157 0 obj <>/P 12054 0 R/Type/Annot/A 22558 0 R/Subtype/Link/Rect[169 410 183 418]/Border[0 0 0]/H/N>> endobj 22158 0 obj <>/P 12054 0 R/Type/Annot/A 22557 0 R/Subtype/Link/Rect[185 410 201 419]/Border[0 0 0]/H/N>> endobj 22159 0 obj <>/P 12054 0 R/Type/Annot/A 22556 0 R/Subtype/Link/Rect[202 410 216 418]/Border[0 0 0]/H/N>> endobj 22160 0 obj <>/P 12054 0 R/Type/Annot/A 22554 0 R/Subtype/Link/Rect[218 410 232 418]/Border[0 0 0]/H/N>> endobj 22161 0 obj <>/P 12054 0 R/Type/Annot/A 22551 0 R/Subtype/Link/Rect[234 410 248 418]/Border[0 0 0]/H/N>> endobj 22162 0 obj <>/P 12054 0 R/Type/Annot/A 22548 0 R/Subtype/Link/Rect[250 410 262 418]/Border[0 0 0]/H/N>> endobj 22163 0 obj <>/P 12054 0 R/Type/Annot/A 22545 0 R/Subtype/Link/Rect[190 400 202 408]/Border[0 0 0]/H/N>> endobj 22164 0 obj <>/P 12054 0 R/Type/Annot/A 22542 0 R/Subtype/Link/Rect[203 390 220 399]/Border[0 0 0]/H/N>> endobj 22165 0 obj <>/P 12054 0 R/Type/Annot/A 22539 0 R/Subtype/Link/Rect[221 390 235 398]/Border[0 0 0]/H/N>> endobj 22166 0 obj <>/P 12054 0 R/Type/Annot/A 22536 0 R/Subtype/Link/Rect[237 390 251 398]/Border[0 0 0]/H/N>> endobj 22167 0 obj <>/P 12054 0 R/Type/Annot/A 22533 0 R/Subtype/Link/Rect[253 390 267 398]/Border[0 0 0]/H/N>> endobj 22168 0 obj <>/P 12054 0 R/Type/Annot/A 22529 0 R/Subtype/Link/Rect[269 390 285 399]/Border[0 0 0]/H/N>> endobj 22169 0 obj <>/P 12054 0 R/Type/Annot/A 22524 0 R/Subtype/Link/Rect[286 390 298 398]/Border[0 0 0]/H/N>> endobj 22170 0 obj <>/P 12054 0 R/Type/Annot/A 22521 0 R/Subtype/Link/Rect[211 380 219 388]/Border[0 0 0]/H/N>> endobj 22171 0 obj <>/P 12054 0 R/Type/Annot/A 22518 0 R/Subtype/Link/Rect[225 370 237 378]/Border[0 0 0]/H/N>> endobj 22172 0 obj <>/P 12054 0 R/Type/Annot/A 22514 0 R/Subtype/Link/Rect[220 360 228 368]/Border[0 0 0]/H/N>> endobj 22173 0 obj <>/P 12054 0 R/Type/Annot/A 22510 0 R/Subtype/Link/Rect[215 350 223 358]/Border[0 0 0]/H/N>> endobj 22174 0 obj <>/P 12054 0 R/Type/Annot/A 22506 0 R/Subtype/Link/Rect[220 340 228 348]/Border[0 0 0]/H/N>> endobj 22175 0 obj <>/P 12054 0 R/Type/Annot/A 22504 0 R/Subtype/Link/Rect[225 330 235 338]/Border[0 0 0]/H/N>> endobj 22176 0 obj <>/P 12054 0 R/Type/Annot/A 22500 0 R/Subtype/Link/Rect[237 330 245 338]/Border[0 0 0]/H/N>> endobj 22177 0 obj <>/P 12054 0 R/Type/Annot/A 22497 0 R/Subtype/Link/Rect[239 320 247 328]/Border[0 0 0]/H/N>> endobj 22178 0 obj <>/P 12054 0 R/Type/Annot/A 22493 0 R/Subtype/Link/Rect[230 310 240 318]/Border[0 0 0]/H/N>> endobj 22179 0 obj <>/P 12054 0 R/Type/Annot/A 22490 0 R/Subtype/Link/Rect[242 310 256 318]/Border[0 0 0]/H/N>> endobj 22180 0 obj <>/P 12054 0 R/Type/Annot/A 22487 0 R/Subtype/Link/Rect[258 310 272 318]/Border[0 0 0]/H/N>> endobj 22181 0 obj <>/P 12054 0 R/Type/Annot/A 22484 0 R/Subtype/Link/Rect[274 310 291 319]/Border[0 0 0]/H/N>> endobj 22182 0 obj <>/P 12054 0 R/Type/Annot/A 22479 0 R/Subtype/Link/Rect[291 310 303 318]/Border[0 0 0]/H/N>> endobj 22183 0 obj <>/P 12054 0 R/Type/Annot/A 22475 0 R/Subtype/Link/Rect[215 300 225 308]/Border[0 0 0]/H/N>> endobj 22184 0 obj <>/P 12054 0 R/Type/Annot/A 22471 0 R/Subtype/Link/Rect[227 300 239 308]/Border[0 0 0]/H/N>> endobj 22185 0 obj <>/P 12054 0 R/Type/Annot/A 22469 0 R/Subtype/Link/Rect[215 290 223 298]/Border[0 0 0]/H/N>> endobj 22186 0 obj <>/P 12054 0 R/Type/Annot/A 22465 0 R/Subtype/Link/Rect[220 280 232 288]/Border[0 0 0]/H/N>> endobj 22187 0 obj <>/P 12054 0 R/Type/Annot/A 22462 0 R/Subtype/Link/Rect[230 270 242 278]/Border[0 0 0]/H/N>> endobj 22188 0 obj <>/P 12054 0 R/Type/Annot/A 22459 0 R/Subtype/Link/Rect[230 260 240 268]/Border[0 0 0]/H/N>> endobj 22189 0 obj <>/P 12054 0 R/Type/Annot/A 22457 0 R/Subtype/Link/Rect[242 260 254 268]/Border[0 0 0]/H/N>> endobj 22190 0 obj <>/P 12054 0 R/Type/Annot/A 22454 0 R/Subtype/Link/Rect[230 250 238 258]/Border[0 0 0]/H/N>> endobj 22191 0 obj <>/P 12054 0 R/Type/Annot/A 22449 0 R/Subtype/Link/Rect[220 240 230 248]/Border[0 0 0]/H/N>> endobj 22192 0 obj <>/P 12054 0 R/Type/Annot/A 22445 0 R/Subtype/Link/Rect[232 240 240 248]/Border[0 0 0]/H/N>> endobj 22193 0 obj <>/P 12054 0 R/Type/Annot/A 22441 0 R/Subtype/Link/Rect[235 230 243 238]/Border[0 0 0]/H/N>> endobj 22194 0 obj <>/P 12054 0 R/Type/Annot/A 22437 0 R/Subtype/Link/Rect[244 220 256 228]/Border[0 0 0]/H/N>> endobj 22195 0 obj <>/P 12054 0 R/Type/Annot/A 22434 0 R/Subtype/Link/Rect[178 210 184 218]/Border[0 0 0]/H/N>> endobj 22196 0 obj <>/P 12054 0 R/Type/Annot/A 22431 0 R/Subtype/Link/Rect[186 210 194 218]/Border[0 0 0]/H/N>> endobj 22197 0 obj <>/P 12054 0 R/Type/Annot/A 22429 0 R/Subtype/Link/Rect[187 200 204 209]/Border[0 0 0]/H/N>> endobj 22198 0 obj <>/P 12054 0 R/Type/Annot/A 22426 0 R/Subtype/Link/Rect[204 200 218 208]/Border[0 0 0]/H/N>> endobj 22199 0 obj <>/P 12054 0 R/Type/Annot/A 22422 0 R/Subtype/Link/Rect[220 200 234 208]/Border[0 0 0]/H/N>> endobj 22200 0 obj <>/P 12054 0 R/Type/Annot/A 22419 0 R/Subtype/Link/Rect[236 200 250 208]/Border[0 0 0]/H/N>> endobj 22201 0 obj <>/P 12054 0 R/Type/Annot/A 22415 0 R/Subtype/Link/Rect[252 200 269 209]/Border[0 0 0]/H/N>> endobj 22202 0 obj <>/P 12054 0 R/Type/Annot/A 22411 0 R/Subtype/Link/Rect[270 200 284 208]/Border[0 0 0]/H/N>> endobj 22203 0 obj <>/P 12054 0 R/Type/Annot/A 22408 0 R/Subtype/Link/Rect[286 200 300 208]/Border[0 0 0]/H/N>> endobj 22204 0 obj <>/P 12054 0 R/Type/Annot/A 22405 0 R/Subtype/Link/Rect[151 190 163 198]/Border[0 0 0]/H/N>> endobj 22205 0 obj <>/P 12054 0 R/Type/Annot/A 22401 0 R/Subtype/Link/Rect[178 180 194 189]/Border[0 0 0]/H/N>> endobj 22206 0 obj <>/P 12054 0 R/Type/Annot/A 22399 0 R/Subtype/Link/Rect[195 180 209 188]/Border[0 0 0]/H/N>> endobj 22207 0 obj <>/P 12054 0 R/Type/Annot/A 22395 0 R/Subtype/Link/Rect[211 180 228 189]/Border[0 0 0]/H/N>> endobj 22208 0 obj <>/P 12054 0 R/Type/Annot/A 22392 0 R/Subtype/Link/Rect[228 180 242 188]/Border[0 0 0]/H/N>> endobj 22209 0 obj <>/P 12054 0 R/Type/Annot/A 22388 0 R/Subtype/Link/Rect[244 180 258 188]/Border[0 0 0]/H/N>> endobj 22210 0 obj <>/P 12054 0 R/Type/Annot/A 22385 0 R/Subtype/Link/Rect[260 180 274 188]/Border[0 0 0]/H/N>> endobj 22211 0 obj <>/P 12054 0 R/Type/Annot/A 22381 0 R/Subtype/Link/Rect[276 180 290 188]/Border[0 0 0]/H/N>> endobj 22212 0 obj <>/P 12054 0 R/Type/Annot/A 22378 0 R/Subtype/Link/Rect[292 180 304 188]/Border[0 0 0]/H/N>> endobj 22213 0 obj <>/P 12054 0 R/Type/Annot/A 22375 0 R/Subtype/Link/Rect[171 170 183 178]/Border[0 0 0]/H/N>> endobj 22214 0 obj <>/P 12054 0 R/Type/Annot/A 22371 0 R/Subtype/Link/Rect[205 160 217 169]/Border[0 0 0]/H/N>> endobj 22215 0 obj <>/P 12054 0 R/Type/Annot/A 22368 0 R/Subtype/Link/Rect[218 160 226 168]/Border[0 0 0]/H/N>> endobj 22216 0 obj <>/P 12054 0 R/Type/Annot/A 22364 0 R/Subtype/Link/Rect[197 150 207 158]/Border[0 0 0]/H/N>> endobj 22217 0 obj <>/P 12054 0 R/Type/Annot/A 22361 0 R/Subtype/Link/Rect[209 150 223 158]/Border[0 0 0]/H/N>> endobj 22218 0 obj <>/P 12054 0 R/Type/Annot/A 22358 0 R/Subtype/Link/Rect[225 150 239 158]/Border[0 0 0]/H/N>> endobj 22219 0 obj <>/P 12054 0 R/Type/Annot/A 22355 0 R/Subtype/Link/Rect[241 150 255 158]/Border[0 0 0]/H/N>> endobj 22220 0 obj <>/P 12054 0 R/Type/Annot/A 22555 0 R/Subtype/Link/Rect[257 150 274 159]/Border[0 0 0]/H/N>> endobj 22221 0 obj <>/P 12054 0 R/Type/Annot/A 22553 0 R/Subtype/Link/Rect[275 150 289 158]/Border[0 0 0]/H/N>> endobj 22222 0 obj <>/P 12054 0 R/Type/Annot/A 22550 0 R/Subtype/Link/Rect[151 140 168 149]/Border[0 0 0]/H/N>> endobj 22223 0 obj <>/P 12054 0 R/Type/Annot/A 22546 0 R/Subtype/Link/Rect[169 140 183 148]/Border[0 0 0]/H/N>> endobj 22224 0 obj <>/P 12054 0 R/Type/Annot/A 22543 0 R/Subtype/Link/Rect[185 140 199 148]/Border[0 0 0]/H/N>> endobj 22225 0 obj <>/P 12054 0 R/Type/Annot/A 44658 0 R/Subtype/Link/Rect[201 140 217 149]/Border[0 0 0]/H/N>> endobj 22226 0 obj <>/P 12054 0 R/Type/Annot/A 22537 0 R/Subtype/Link/Rect[218 140 232 148]/Border[0 0 0]/H/N>> endobj 22227 0 obj <>/P 12054 0 R/Type/Annot/A 22534 0 R/Subtype/Link/Rect[234 140 248 148]/Border[0 0 0]/H/N>> endobj 22228 0 obj <>/P 12054 0 R/Type/Annot/A 22531 0 R/Subtype/Link/Rect[250 140 264 148]/Border[0 0 0]/H/N>> endobj 22229 0 obj <>/P 12054 0 R/Type/Annot/A 22527 0 R/Subtype/Link/Rect[266 140 280 148]/Border[0 0 0]/H/N>> endobj 22230 0 obj <>/P 12054 0 R/Type/Annot/A 22523 0 R/Subtype/Link/Rect[282 140 296 148]/Border[0 0 0]/H/N>> endobj 22231 0 obj <>/P 12054 0 R/Type/Annot/A 22520 0 R/Subtype/Link/Rect[359 670 373 678]/Border[0 0 0]/H/N>> endobj 22232 0 obj <>/P 12054 0 R/Type/Annot/A 22517 0 R/Subtype/Link/Rect[375 670 387 678]/Border[0 0 0]/H/N>> endobj 22233 0 obj <>/P 12054 0 R/Type/Annot/A 22513 0 R/Subtype/Link/Rect[398 660 415 669]/Border[0 0 0]/H/N>> endobj 22234 0 obj <>/P 12054 0 R/Type/Annot/A 22508 0 R/Subtype/Link/Rect[415 660 429 668]/Border[0 0 0]/H/N>> endobj 22235 0 obj <>/P 12054 0 R/Type/Annot/A 44288 0 R/Subtype/Link/Rect[431 660 443 668]/Border[0 0 0]/H/N>> endobj 22236 0 obj <>/P 12054 0 R/Type/Annot/A 22502 0 R/Subtype/Link/Rect[398 650 410 658]/Border[0 0 0]/H/N>> endobj 22237 0 obj <>/P 12054 0 R/Type/Annot/A 44222 0 R/Subtype/Link/Rect[417 640 434 649]/Border[0 0 0]/H/N>> endobj 22238 0 obj <>/P 12054 0 R/Type/Annot/A 22494 0 R/Subtype/Link/Rect[435 640 447 648]/Border[0 0 0]/H/N>> endobj 22239 0 obj <>/P 12054 0 R/Type/Annot/A 44151 0 R/Subtype/Link/Rect[397 630 411 638]/Border[0 0 0]/H/N>> endobj 22240 0 obj <>/P 12054 0 R/Type/Annot/A 44114 0 R/Subtype/Link/Rect[413 630 425 638]/Border[0 0 0]/H/N>> endobj 22241 0 obj <>/P 12054 0 R/Type/Annot/A 22485 0 R/Subtype/Link/Rect[392 620 402 628]/Border[0 0 0]/H/N>> endobj 22242 0 obj <>/P 12054 0 R/Type/Annot/A 22481 0 R/Subtype/Link/Rect[404 620 418 628]/Border[0 0 0]/H/N>> endobj 22243 0 obj <>/P 12054 0 R/Type/Annot/A 22476 0 R/Subtype/Link/Rect[420 620 434 628]/Border[0 0 0]/H/N>> endobj 22244 0 obj <>/P 12054 0 R/Type/Annot/A 22472 0 R/Subtype/Link/Rect[436 620 450 628]/Border[0 0 0]/H/N>> endobj 22245 0 obj <>/P 12054 0 R/Type/Annot/A 43947 0 R/Subtype/Link/Rect[452 620 466 628]/Border[0 0 0]/H/N>> endobj 22246 0 obj <>/P 12054 0 R/Type/Annot/A 22466 0 R/Subtype/Link/Rect[468 620 482 628]/Border[0 0 0]/H/N>> endobj 22247 0 obj <>/P 12054 0 R/Type/Annot/A 43859 0 R/Subtype/Link/Rect[484 620 498 628]/Border[0 0 0]/H/N>> endobj 22248 0 obj <>/P 12054 0 R/Type/Annot/A 22460 0 R/Subtype/Link/Rect[359 610 376 619]/Border[0 0 0]/H/N>> endobj 22249 0 obj <>/P 12054 0 R/Type/Annot/A 22404 0 R/Subtype/Link/Rect[377 610 391 618]/Border[0 0 0]/H/N>> endobj 22250 0 obj <>/P 12054 0 R/Type/Annot/A 22453 0 R/Subtype/Link/Rect[393 610 407 618]/Border[0 0 0]/H/N>> endobj 22251 0 obj <>/P 12054 0 R/Type/Annot/A 22448 0 R/Subtype/Link/Rect[409 610 425 619]/Border[0 0 0]/H/N>> endobj 22252 0 obj <>/P 12054 0 R/Type/Annot/A 22444 0 R/Subtype/Link/Rect[426 610 440 618]/Border[0 0 0]/H/N>> endobj 22253 0 obj <>/P 12054 0 R/Type/Annot/A 22440 0 R/Subtype/Link/Rect[442 610 456 618]/Border[0 0 0]/H/N>> endobj 22254 0 obj <>/P 12054 0 R/Type/Annot/A 22436 0 R/Subtype/Link/Rect[458 610 470 618]/Border[0 0 0]/H/N>> endobj 22255 0 obj <>/P 12054 0 R/Type/Annot/A 22433 0 R/Subtype/Link/Rect[428 590 438 598]/Border[0 0 0]/H/N>> endobj 22256 0 obj <>/P 12054 0 R/Type/Annot/A 22430 0 R/Subtype/Link/Rect[440 590 452 598]/Border[0 0 0]/H/N>> endobj 22257 0 obj <>/P 12054 0 R/Type/Annot/A 22427 0 R/Subtype/Link/Rect[433 580 441 588]/Border[0 0 0]/H/N>> endobj 22258 0 obj <>/P 12054 0 R/Type/Annot/A 22423 0 R/Subtype/Link/Rect[438 570 446 578]/Border[0 0 0]/H/N>> endobj 22259 0 obj <>/P 12054 0 R/Type/Annot/A 22421 0 R/Subtype/Link/Rect[433 560 443 568]/Border[0 0 0]/H/N>> endobj 22260 0 obj <>/P 12054 0 R/Type/Annot/A 22580 0 R/Subtype/Link/Rect[445 560 455 568]/Border[0 0 0]/H/N>> endobj 22261 0 obj <>/P 12054 0 R/Type/Annot/A 22412 0 R/Subtype/Link/Rect[457 560 471 568]/Border[0 0 0]/H/N>> endobj 22262 0 obj <>/P 12054 0 R/Type/Annot/A 22410 0 R/Subtype/Link/Rect[473 560 487 568]/Border[0 0 0]/H/N>> endobj 22263 0 obj <>/P 12054 0 R/Type/Annot/A 22407 0 R/Subtype/Link/Rect[489 560 503 568]/Border[0 0 0]/H/N>> endobj 22264 0 obj <>/P 12054 0 R/Type/Annot/A 22403 0 R/Subtype/Link/Rect[505 560 517 568]/Border[0 0 0]/H/N>> endobj 22265 0 obj <>/P 12054 0 R/Type/Annot/A 22400 0 R/Subtype/Link/Rect[423 550 431 558]/Border[0 0 0]/H/N>> endobj 22266 0 obj <>/P 12054 0 R/Type/Annot/A 22398 0 R/Subtype/Link/Rect[419 540 429 548]/Border[0 0 0]/H/N>> endobj 22267 0 obj <>/P 12054 0 R/Type/Annot/A 22394 0 R/Subtype/Link/Rect[431 540 443 548]/Border[0 0 0]/H/N>> endobj 22268 0 obj <>/P 12054 0 R/Type/Annot/A 22391 0 R/Subtype/Link/Rect[443 530 451 538]/Border[0 0 0]/H/N>> endobj 22269 0 obj <>/P 12054 0 R/Type/Annot/A 22387 0 R/Subtype/Link/Rect[428 520 438 528]/Border[0 0 0]/H/N>> endobj 22270 0 obj <>/P 12054 0 R/Type/Annot/A 22384 0 R/Subtype/Link/Rect[440 520 452 528]/Border[0 0 0]/H/N>> endobj 22271 0 obj <>/P 12054 0 R/Type/Annot/A 22380 0 R/Subtype/Link/Rect[396 464 408 472]/Border[0 0 0]/H/N>> endobj 22272 0 obj <>/P 12054 0 R/Type/Annot/A 22377 0 R/Subtype/Link/Rect[396 454 408 462]/Border[0 0 0]/H/N>> endobj 22273 0 obj <>/P 12054 0 R/Type/Annot/A 22373 0 R/Subtype/Link/Rect[396 444 408 452]/Border[0 0 0]/H/N>> endobj 22274 0 obj <>/P 12054 0 R/Type/Annot/A 22369 0 R/Subtype/Link/Rect[396 434 413 443]/Border[0 0 0]/H/N>> endobj 22275 0 obj <>/P 12054 0 R/Type/Annot/A 22365 0 R/Subtype/Link/Rect[413 434 425 442]/Border[0 0 0]/H/N>> endobj 22276 0 obj <>/P 12054 0 R/Type/Annot/A 22362 0 R/Subtype/Link/Rect[406 424 420 432]/Border[0 0 0]/H/N>> endobj 22277 0 obj <>/P 12054 0 R/Type/Annot/A 22359 0 R/Subtype/Link/Rect[422 424 436 432]/Border[0 0 0]/H/N>> endobj 22278 0 obj <>/P 12054 0 R/Type/Annot/A 22356 0 R/Subtype/Link/Rect[438 424 454 433]/Border[0 0 0]/H/N>> endobj 22279 0 obj <>/P 12054 0 R/Type/Annot/A 22552 0 R/Subtype/Link/Rect[455 424 467 432]/Border[0 0 0]/H/N>> endobj 22280 0 obj <>/P 12054 0 R/Type/Annot/A 22549 0 R/Subtype/Link/Rect[392 404 406 412]/Border[0 0 0]/H/N>> endobj 22281 0 obj <>/P 12054 0 R/Type/Annot/A 22478 0 R/Subtype/Link/Rect[408 404 422 412]/Border[0 0 0]/H/N>> endobj 22282 0 obj <>/P 12054 0 R/Type/Annot/A 22541 0 R/Subtype/Link/Rect[424 404 438 412]/Border[0 0 0]/H/N>> endobj 22283 0 obj <>/P 12054 0 R/Type/Annot/A 22538 0 R/Subtype/Link/Rect[440 404 457 413]/Border[0 0 0]/H/N>> endobj 22284 0 obj <>/P 12054 0 R/Type/Annot/A 22535 0 R/Subtype/Link/Rect[458 404 469 412]/Border[0 0 0]/H/N>> endobj 22285 0 obj <>/P 12054 0 R/Type/Annot/A 22532 0 R/Subtype/Link/Rect[404 394 412 402]/Border[0 0 0]/H/N>> endobj 22286 0 obj <>/P 12054 0 R/Type/Annot/A 22528 0 R/Subtype/Link/Rect[410 384 424 392]/Border[0 0 0]/H/N>> endobj 22287 0 obj <>/P 12054 0 R/Type/Annot/A 42359 0 R/Subtype/Link/Rect[426 384 440 392]/Border[0 0 0]/H/N>> endobj 22288 0 obj <>/P 12054 0 R/Type/Annot/A 22452 0 R/Subtype/Link/Rect[442 384 456 392]/Border[0 0 0]/H/N>> endobj 22289 0 obj <>/P 12054 0 R/Type/Annot/A 22516 0 R/Subtype/Link/Rect[458 384 472 392]/Border[0 0 0]/H/N>> endobj 22290 0 obj <>/P 12054 0 R/Type/Annot/A 22512 0 R/Subtype/Link/Rect[474 384 486 392]/Border[0 0 0]/H/N>> endobj 22291 0 obj <>/P 12054 0 R/Type/Annot/A 22507 0 R/Subtype/Link/Rect[398 374 410 382]/Border[0 0 0]/H/N>> endobj 22292 0 obj <>/P 12054 0 R/Type/Annot/A 22505 0 R/Subtype/Link/Rect[418 364 430 372]/Border[0 0 0]/H/N>> endobj 22293 0 obj <>/P 12054 0 R/Type/Annot/A 22501 0 R/Subtype/Link/Rect[405 354 419 362]/Border[0 0 0]/H/N>> endobj 22294 0 obj <>/P 12054 0 R/Type/Annot/A 22498 0 R/Subtype/Link/Rect[421 354 435 362]/Border[0 0 0]/H/N>> endobj 22295 0 obj <>/P 12054 0 R/Type/Annot/A 42016 0 R/Subtype/Link/Rect[437 354 451 362]/Border[0 0 0]/H/N>> endobj 22296 0 obj <>/P 12054 0 R/Type/Annot/A 22491 0 R/Subtype/Link/Rect[453 354 465 362]/Border[0 0 0]/H/N>> endobj 22297 0 obj <>/P 12054 0 R/Type/Annot/A 22488 0 R/Subtype/Link/Rect[398 344 410 352]/Border[0 0 0]/H/N>> endobj 22298 0 obj <>/P 12054 0 R/Type/Annot/A 22483 0 R/Subtype/Link/Rect[410 334 424 342]/Border[0 0 0]/H/N>> endobj 22299 0 obj <>/P 12054 0 R/Type/Annot/A 22477 0 R/Subtype/Link/Rect[426 334 440 342]/Border[0 0 0]/H/N>> endobj 22300 0 obj <>/P 12054 0 R/Type/Annot/A 22473 0 R/Subtype/Link/Rect[442 334 456 342]/Border[0 0 0]/H/N>> endobj 22301 0 obj <>/P 12054 0 R/Type/Annot/A 22470 0 R/Subtype/Link/Rect[458 334 472 342]/Border[0 0 0]/H/N>> endobj 22302 0 obj <>/P 12054 0 R/Type/Annot/A 22467 0 R/Subtype/Link/Rect[474 334 488 342]/Border[0 0 0]/H/N>> endobj 22303 0 obj <>/P 12054 0 R/Type/Annot/A 22463 0 R/Subtype/Link/Rect[490 334 502 342]/Border[0 0 0]/H/N>> endobj 22304 0 obj <>/P 12054 0 R/Type/Annot/A 22461 0 R/Subtype/Link/Rect[398 324 410 332]/Border[0 0 0]/H/N>> endobj 22305 0 obj <>/P 12054 0 R/Type/Annot/A 22458 0 R/Subtype/Link/Rect[420 314 434 322]/Border[0 0 0]/H/N>> endobj 22306 0 obj <>/P 12054 0 R/Type/Annot/A 22456 0 R/Subtype/Link/Rect[436 314 450 322]/Border[0 0 0]/H/N>> endobj 22307 0 obj <>/P 12054 0 R/Type/Annot/A 22451 0 R/Subtype/Link/Rect[452 314 466 322]/Border[0 0 0]/H/N>> endobj 22308 0 obj <>/P 12054 0 R/Type/Annot/A 22447 0 R/Subtype/Link/Rect[468 314 482 322]/Border[0 0 0]/H/N>> endobj 22309 0 obj <>/P 12054 0 R/Type/Annot/A 22443 0 R/Subtype/Link/Rect[484 314 500 323]/Border[0 0 0]/H/N>> endobj 22310 0 obj <>/P 12054 0 R/Type/Annot/A 22439 0 R/Subtype/Link/Rect[501 314 515 322]/Border[0 0 0]/H/N>> endobj 22311 0 obj <>/P 12054 0 R/Type/Annot/A 41335 0 R/Subtype/Link/Rect[359 304 376 313]/Border[0 0 0]/H/N>> endobj 22312 0 obj <>/P 12054 0 R/Type/Annot/A 22432 0 R/Subtype/Link/Rect[377 304 391 312]/Border[0 0 0]/H/N>> endobj 22313 0 obj <>/P 12054 0 R/Type/Annot/A 22547 0 R/Subtype/Link/Rect[393 304 407 312]/Border[0 0 0]/H/N>> endobj 22314 0 obj <>/P 12054 0 R/Type/Annot/A 22425 0 R/Subtype/Link/Rect[409 304 423 312]/Border[0 0 0]/H/N>> endobj 22315 0 obj <>/P 12054 0 R/Type/Annot/A 43486 0 R/Subtype/Link/Rect[425 304 441 313]/Border[0 0 0]/H/N>> endobj 22316 0 obj <>/P 12054 0 R/Type/Annot/A 22418 0 R/Subtype/Link/Rect[442 304 456 312]/Border[0 0 0]/H/N>> endobj 22317 0 obj <>/P 12054 0 R/Type/Annot/A 22413 0 R/Subtype/Link/Rect[458 304 472 312]/Border[0 0 0]/H/N>> endobj 22318 0 obj <>/P 12054 0 R/Type/Annot/A 43370 0 R/Subtype/Link/Rect[474 304 490 313]/Border[0 0 0]/H/N>> endobj 22319 0 obj <>/P 12054 0 R/Type/Annot/A 41073 0 R/Subtype/Link/Rect[491 304 503 312]/Border[0 0 0]/H/N>> endobj 22320 0 obj <>/P 12054 0 R/Type/Annot/A 40755 0 R/Subtype/Link/Rect[398 294 410 302]/Border[0 0 0]/H/N>> endobj 22321 0 obj <>/P 12054 0 R/Type/Annot/A 22570 0 R/Subtype/Link/Rect[420 284 436 293]/Border[0 0 0]/H/N>> endobj 22322 0 obj <>/P 12054 0 R/Type/Annot/A 22397 0 R/Subtype/Link/Rect[437 284 451 292]/Border[0 0 0]/H/N>> endobj 22323 0 obj <>/P 12054 0 R/Type/Annot/A 22393 0 R/Subtype/Link/Rect[453 284 467 292]/Border[0 0 0]/H/N>> endobj 22324 0 obj <>/P 12054 0 R/Type/Annot/A 22390 0 R/Subtype/Link/Rect[469 284 483 292]/Border[0 0 0]/H/N>> endobj 22325 0 obj <>/P 12054 0 R/Type/Annot/A 22386 0 R/Subtype/Link/Rect[485 284 497 292]/Border[0 0 0]/H/N>> endobj 22326 0 obj <>/P 12054 0 R/Type/Annot/A 22383 0 R/Subtype/Link/Rect[398 274 410 282]/Border[0 0 0]/H/N>> endobj 22327 0 obj <>/P 12054 0 R/Type/Annot/A 22379 0 R/Subtype/Link/Rect[415 264 432 273]/Border[0 0 0]/H/N>> endobj 22328 0 obj <>/P 12054 0 R/Type/Annot/A 22376 0 R/Subtype/Link/Rect[432 264 446 272]/Border[0 0 0]/H/N>> endobj 22329 0 obj <>/P 12054 0 R/Type/Annot/A 22372 0 R/Subtype/Link/Rect[448 264 462 272]/Border[0 0 0]/H/N>> endobj 22330 0 obj <>/P 12054 0 R/Type/Annot/A 22367 0 R/Subtype/Link/Rect[464 264 476 272]/Border[0 0 0]/H/N>> endobj 22331 0 obj <>/P 12054 0 R/Type/Annot/A 22363 0 R/Subtype/Link/Rect[398 254 410 262]/Border[0 0 0]/H/N>> endobj 22332 0 obj <>/P 12054 0 R/Type/Annot/A 22360 0 R/Subtype/Link/Rect[415 244 427 252]/Border[0 0 0]/H/N>> endobj 22333 0 obj <>/P 12054 0 R/Type/Annot/A 38256 0 R/Subtype/Link/Rect[406 234 418 242]/Border[0 0 0]/H/N>> endobj 22334 0 obj <>/P 12054 0 R/Type/Annot/A 22354 0 R/Subtype/Link/Rect[420 224 432 232]/Border[0 0 0]/H/N>> endobj 22335 0 obj <>/P 12054 0 R/Type/Annot/A 22544 0 R/Subtype/Link/Rect[401 214 413 222]/Border[0 0 0]/H/N>> endobj 22336 0 obj <>/P 12054 0 R/Type/Annot/A 22540 0 R/Subtype/Link/Rect[378 204 392 212]/Border[0 0 0]/H/N>> endobj 22337 0 obj <>/P 12054 0 R/Type/Annot/A 38192 0 R/Subtype/Link/Rect[394 204 406 212]/Border[0 0 0]/H/N>> endobj 22338 0 obj <>/P 12054 0 R/Type/Annot/A 38181 0 R/Subtype/Link/Rect[415 194 427 202]/Border[0 0 0]/H/N>> endobj 22339 0 obj <>/P 12054 0 R/Type/Annot/A 22530 0 R/Subtype/Link/Rect[406 184 418 192]/Border[0 0 0]/H/N>> endobj 22340 0 obj <>/P 12054 0 R/Type/Annot/A 22526 0 R/Subtype/Link/Rect[401 174 413 182]/Border[0 0 0]/H/N>> endobj 22341 0 obj <>/P 12054 0 R/Type/Annot/A 22522 0 R/Subtype/Link/Rect[420 164 432 172]/Border[0 0 0]/H/N>> endobj 22342 0 obj <>/P 12054 0 R/Type/Annot/A 22519 0 R/Subtype/Link/Rect[420 154 434 162]/Border[0 0 0]/H/N>> endobj 22343 0 obj <>/P 12054 0 R/Type/Annot/A 22515 0 R/Subtype/Link/Rect[436 154 450 162]/Border[0 0 0]/H/N>> endobj 22344 0 obj <>/P 12054 0 R/Type/Annot/A 22511 0 R/Subtype/Link/Rect[452 154 466 162]/Border[0 0 0]/H/N>> endobj 22345 0 obj <>/P 12054 0 R/Type/Annot/A 22414 0 R/Subtype/Link/Rect[468 154 485 163]/Border[0 0 0]/H/N>> endobj 22346 0 obj <>/P 12054 0 R/Type/Annot/A 38063 0 R/Subtype/Link/Rect[485 154 497 162]/Border[0 0 0]/H/N>> endobj 22347 0 obj <>/P 12054 0 R/Type/Annot/A 22499 0 R/Subtype/Link/Rect[410 144 427 153]/Border[0 0 0]/H/N>> endobj 22348 0 obj <>/P 12054 0 R/Type/Annot/A 22496 0 R/Subtype/Link/Rect[428 144 442 152]/Border[0 0 0]/H/N>> endobj 22349 0 obj <>/P 12054 0 R/Type/Annot/A 22492 0 R/Subtype/Link/Rect[444 144 458 152]/Border[0 0 0]/H/N>> endobj 22350 0 obj <>/P 12054 0 R/Type/Annot/A 42093 0 R/Subtype/Link/Rect[460 144 472 152]/Border[0 0 0]/H/N>> endobj 22351 0 obj <>/P 12054 0 R/Type/Annot/A 22486 0 R/Subtype/Link/Rect[376 618 390 627]/Border[0 0 0]/H/N>> endobj 22352 0 obj <>/P 12054 0 R/Type/Annot/A 22482 0 R/Subtype/Link/Rect[380 412 397 421]/Border[0 0 0]/H/N>> endobj 22353 0 obj <> endobj 22354 0 obj <> endobj 22355 0 obj <> endobj 22356 0 obj <> endobj 22357 0 obj <> endobj 22358 0 obj <> endobj 22359 0 obj <> endobj 22360 0 obj <> endobj 22361 0 obj <> endobj 22362 0 obj <> endobj 22363 0 obj <> endobj 22364 0 obj <> endobj 22365 0 obj <> endobj 22366 0 obj <> endobj 22367 0 obj <> endobj 22368 0 obj <> endobj 22369 0 obj <> endobj 22370 0 obj <> endobj 22371 0 obj <> endobj 22372 0 obj <> endobj 22373 0 obj <> endobj 22374 0 obj <> endobj 22375 0 obj <> endobj 22376 0 obj <> endobj 22377 0 obj <> endobj 22378 0 obj <> endobj 22379 0 obj <> endobj 22380 0 obj <> endobj 22381 0 obj <> endobj 22382 0 obj <> endobj 22383 0 obj <> endobj 22384 0 obj <> endobj 22385 0 obj <> endobj 22386 0 obj <> endobj 22387 0 obj <> endobj 22388 0 obj <> endobj 22389 0 obj <> endobj 22390 0 obj <> endobj 22391 0 obj <> endobj 22392 0 obj <> endobj 22393 0 obj <> endobj 22394 0 obj <> endobj 22395 0 obj <> endobj 22396 0 obj <> endobj 22397 0 obj <> endobj 22398 0 obj <> endobj 22399 0 obj <> endobj 22400 0 obj <> endobj 22401 0 obj <> endobj 22402 0 obj <> endobj 22403 0 obj <> endobj 22404 0 obj <> endobj 22405 0 obj <> endobj 22406 0 obj <> endobj 22407 0 obj <> endobj 22408 0 obj <> endobj 22409 0 obj <> endobj 22410 0 obj <> endobj 22411 0 obj <> endobj 22412 0 obj <> endobj 22413 0 obj <> endobj 22414 0 obj <> endobj 22415 0 obj <> endobj 22416 0 obj <> endobj 22417 0 obj <> endobj 22418 0 obj <> endobj 22419 0 obj <> endobj 22420 0 obj <> endobj 22421 0 obj <> endobj 22422 0 obj <> endobj 22423 0 obj <> endobj 22424 0 obj <> endobj 22425 0 obj <> endobj 22426 0 obj <> endobj 22427 0 obj <> endobj 22428 0 obj <> endobj 22429 0 obj <> endobj 22430 0 obj <> endobj 22431 0 obj <> endobj 22432 0 obj <> endobj 22433 0 obj <> endobj 22434 0 obj <> endobj 22435 0 obj <> endobj 22436 0 obj <> endobj 22437 0 obj <> endobj 22438 0 obj <> endobj 22439 0 obj <> endobj 22440 0 obj <> endobj 22441 0 obj <> endobj 22442 0 obj <> endobj 22443 0 obj <> endobj 22444 0 obj <> endobj 22445 0 obj <> endobj 22446 0 obj <> endobj 22447 0 obj <> endobj 22448 0 obj <> endobj 22449 0 obj <> endobj 22450 0 obj <> endobj 22451 0 obj <> endobj 22452 0 obj <> endobj 22453 0 obj <> endobj 22454 0 obj <> endobj 22455 0 obj <> endobj 22456 0 obj <> endobj 22457 0 obj <> endobj 22458 0 obj <> endobj 22459 0 obj <> endobj 22460 0 obj <> endobj 22461 0 obj <> endobj 22462 0 obj <> endobj 22463 0 obj <> endobj 22464 0 obj <> endobj 22465 0 obj <> endobj 22466 0 obj <> endobj 22467 0 obj <> endobj 22468 0 obj <> endobj 22469 0 obj <> endobj 22470 0 obj <> endobj 22471 0 obj <> endobj 22472 0 obj <> endobj 22473 0 obj <> endobj 22474 0 obj <> endobj 22475 0 obj <> endobj 22476 0 obj <> endobj 22477 0 obj <> endobj 22478 0 obj <> endobj 22479 0 obj <> endobj 22480 0 obj <> endobj 22481 0 obj <> endobj 22482 0 obj <> endobj 22483 0 obj <> endobj 22484 0 obj <> endobj 22485 0 obj <> endobj 22486 0 obj <> endobj 22487 0 obj <> endobj 22488 0 obj <> endobj 22489 0 obj <> endobj 22490 0 obj <> endobj 22491 0 obj <> endobj 22492 0 obj <> endobj 22493 0 obj <> endobj 22494 0 obj <> endobj 22495 0 obj <> endobj 22496 0 obj <> endobj 22497 0 obj <> endobj 22498 0 obj <> endobj 22499 0 obj <> endobj 22500 0 obj <> endobj 22501 0 obj <> endobj 22502 0 obj <> endobj 22503 0 obj <> endobj 22504 0 obj <> endobj 22505 0 obj <> endobj 22506 0 obj <> endobj 22507 0 obj <> endobj 22508 0 obj <> endobj 22509 0 obj <> endobj 22510 0 obj <> endobj 22511 0 obj <> endobj 22512 0 obj <> endobj 22513 0 obj <> endobj 22514 0 obj <> endobj 22515 0 obj <> endobj 22516 0 obj <> endobj 22517 0 obj <> endobj 22518 0 obj <> endobj 22519 0 obj <> endobj 22520 0 obj <> endobj 22521 0 obj <> endobj 22522 0 obj <> endobj 22523 0 obj <> endobj 22524 0 obj <> endobj 22525 0 obj <> endobj 22526 0 obj <> endobj 22527 0 obj <> endobj 22528 0 obj <> endobj 22529 0 obj <> endobj 22530 0 obj <> endobj 22531 0 obj <> endobj 22532 0 obj <> endobj 22533 0 obj <> endobj 22534 0 obj <> endobj 22535 0 obj <> endobj 22536 0 obj <> endobj 22537 0 obj <> endobj 22538 0 obj <> endobj 22539 0 obj <> endobj 22540 0 obj <> endobj 22541 0 obj <> endobj 22542 0 obj <> endobj 22543 0 obj <> endobj 22544 0 obj <> endobj 22545 0 obj <> endobj 22546 0 obj <> endobj 22547 0 obj <> endobj 22548 0 obj <> endobj 22549 0 obj <> endobj 22550 0 obj <> endobj 22551 0 obj <> endobj 22552 0 obj <> endobj 22553 0 obj <> endobj 22554 0 obj <> endobj 22555 0 obj <> endobj 22556 0 obj <> endobj 22557 0 obj <> endobj 22558 0 obj <> endobj 22559 0 obj <> endobj 22560 0 obj <> endobj 22561 0 obj <> endobj 22562 0 obj <> endobj 22563 0 obj <> endobj 22564 0 obj <> endobj 22565 0 obj <> endobj 22566 0 obj <> endobj 22567 0 obj <> endobj 22568 0 obj <> endobj 22569 0 obj <> endobj 22570 0 obj <> endobj 22571 0 obj <> endobj 22572 0 obj <> endobj 22573 0 obj <> endobj 22574 0 obj <> endobj 22575 0 obj <> endobj 22576 0 obj <> endobj 22577 0 obj <> endobj 22578 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 22579 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 22580 0 obj <> endobj 22581 0 obj <> stream q /X1 Do Q q endstream endobj 22582 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 22583 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 22584 0 obj <> stream HmoFS콓 >!gH7uj>Ch$$9Dr9;h#h܌sg٣bŎ·Y޼y~ b:~(XJ_ Ƚ ؃Y|2Za9)4_-- õ`K]N2{/,a ɢ fԻٸ?;x%t0x{%X*>uC4VE9җ62A*W? VJtAD5Ƞ'| U?)OxaoGv%`c%2QKV`]{L2 bx  >ǀܥPPv]8 G G$KG$KG$KG"+G"+G&kG&kG&kG}H!>tGQ#G}D1>vDŽQG}Bw< kqPzp-UcrPkqPzǵp-PV1☡kZ3q \c@1C µ8f(BZAǀ"\c";kqPzǵp-M=I 1☡\8f(W=E Ew\+ ☡k%Zp-PV1CJµ8Z3q$\c";kq (µ8f(BZI Ew\+ SkqPzp-UcrPkqPzǵp-PV1☡kZ3q"\c@1C*µ8f(BZEǀ"\c";UkqPzǵp-M=M 1☡\8f(W}'IXͦ޻;JS8Kx0A` aQda_x@O\s͂NI!\hfNP9L9[rx}>;jPͤE@ooͮ||mC*YM'M59>a+E>ᤍ+jѱu8[xbo$s%^~ѮӘ-F}M:zw[X@r -ͯKR/+)@" {gKLW}f=a%s׹ ̄q%V5h6e#Vx)7v83ꏒ@!BϚ dde`:^'Ed[xFCr37ɨNȆӏ e^ߋy>U~A:oOFدɤ~uf `Ct1Gݷ#J{v|zxn=;q5o?  {ɁsO=d)ؠ@ [@UOqZv@u 3[s[NNsĴI*;n'6/u;/emޖE d5D/,jo7Yk)ڹ)_őr^_=Ҝg 9oHE>h ]PF-7Z XQѥzz~EEnpuEAG4KxI#='n~'4 46=v46{9O]'M]wL:<4kBIiD 6U}wU&lm~'?#l笏^XK|i&s5j5֐յ{YyI>Z䋮Ym ON=5GlO{ Ծ({`M洆zIslRf=EGiRn7I;l~J1mhߪP6Y J*{Nlot4QYPh_k$PՄǺalrL1`4|-{9Pu{*׻g!}~"t:lO4;&w_^] Ow0YJva+y{mQ;9za? endstream endobj 22585 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 22586 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 22587 0 obj <> endobj 22588 0 obj <> endobj 22589 0 obj <> endobj 22590 0 obj <> endobj 22591 0 obj <> stream q /X1 Do Q q endstream endobj 22592 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 22593 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 22594 0 obj <> stream HW]o6}ׯpdKN"٦[ă!eFH_"i :::RzozA2O/'IHiA/Dj挨J$Mۄ$o]vvzC:劑crN.#oL>Yli`%l[w9{dzu#S(2&W:R:=,嗄|&4#o@'{-I LBL}RKB"f<"aŏ 1`Q̰$ S1`1D=3D=sD=sD=sD= D DKDKDKD,ELb! 1ÊՇ׆aC̰b!,ĵ!fXȵ qm>r-C\bB\b\׆a!#2ĵ!,ĵ!fXȵ qm>r-C\bB\b\׆a!#2ĵ!O83X} qmV> +VbB\b\׆a!#rĵ!,ĵ!fXȵqm>r-G\bB\b\׆a!#rĵ!,ĵ!fXȵqm>r-G\bD 1ÊՇ׆aC̰b!,ĵ!fXȵqm>r@\bB\b\+׆a!# ĵ!,ĵ!fXȵqm>r@\bB\b\+׆a!# ĵ!O$3X} qmV> +V_EQpO.Ś~MXLIs+ɻ"gX5_|.nT7UW[wٷnpΨ^8x:ڮwW7mFӮ;O</Ǿ?mܠ̺Ugׯån)v8X"g$\ꣅ?_nT:h6Ͷ:Tw~.DSQ/cUǪ;["KŤև^]VZ~lo:^E $.B٘ R.!nzuujMXꥦhM<6Ip94W9r+7LU |Y+bZMճm`9E),#PPPRp_9hLXtxd Ű{͕NzR]UKhZ|Y=L| ^zC&r*r|V ,4N?nm /%HܒEӂt{g6Xݗ]ݞvfh0OG(PO҄=[;KŕWH\T_V2,qߗY*fwlɑsc@A7v[m֦!/tzBw [&\XYƶ彽z7.[74ECsE/^۪iGwUHߢc:oWfރ:_@Bx+*zeuvfhsxY9اtY?R cRx.V]}A :nYwN@] T{NNG9#A&eNw6F۲/=_% ciӟfLQ`uc >z lǑ2?wWnP8 !w_i:nxʖu3X7fK 7g“#$oAX1Ҁx(f"׹H?u(x/J^B&& E(=UByנ$(i)f-I Xdۺo^ԜST4Ŵ+/'Z/sc/3(-w1K3^0OF\li#o)q9S6]f/(1-[0hxZ$ѻwF87Ǫ^p~kz~\wC&q9*_CC#;4^v3 8ޡLOpNfpx~|`* $n3h_uۘ95]K2a2 `>k쌨S %")0[k>payg_1Z6M?ܛ'?^1:4g\ \1`"f،/X,Š CǦ'.X6/tEO\b]X,ŸF(bY XpY\%"b Q,-#d2`lʳP}c +W2Tt^PcE_dq]򹟳|'s?cY>~X> Y>3O,9~b/r^fX>s򹟳|g,nX>s?U C>`}Ta{8L< l%z(nU>qJg'U|U~YHIC@GVfTB?a֜v}q+3WEs")pG8>~Yߢ"eHfRmD% (ιf-k^a{ e)%+ӊFgᡩ̡W+iJPYpUhCKX,_+):D-q{$@ڑ!z<%+J(5Fe+AA38PF\a{Ia6Hp˰{g`1PV0ZRa"cYIфȐ.XiMuS*8*ǑehpAi+$D)8,y;*$ P0'jepဇdއ]*E"a9 79T<\8!s@\j6u*& T|0ߨUXAr<~럮_U[)vŬk 27R$_B:n¡wu |/?h^:?~,nt,#ڰ٧lZnUE>{U/[V+WDÚidmG j쭭5JEwy:h3vhA^4q|iMS7ILݥK۞3Z owRm"wkz&&",$>?fw!GoI;_16bts̗;ٚ'|yuNDIn ^oGSx%Cfda+pP3Ws:EΧAjgO|,'6;OSݘ5ﵿw*$jw#S=-kΦ?~ҭog2o'Q_1v`zC@L'!8!'j -RK:Qek+/;_3¥ ms MIv H观@{ ffT; 0 ک 87ը F1Y)ޢp#'}K5 ߇vZ'~݀ mDˋzb fڇ9NS e#x 4ŏY/S۟S? 'qt?ZhOÏ"d2*v 0endstream endobj 22595 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 22596 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 22597 0 obj <> endobj 22598 0 obj <> endobj 22599 0 obj <> endobj 22600 0 obj <> stream q /X1 Do Q q endstream endobj 22601 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 22602 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 22603 0 obj <> stream HsFƿ미6CݛLHR M4xR * /}wؒwW=%ÀG{twywrQVŋwLJ*Q/_:靔Olܧ}&ϘLp1>cs}=ˬBKidR )j@ R=ՐZ!%g5BjPBjR{Z#j@ R{Z#jH YjZ%jH YjZ!%g5Bj6Z!S (!TCR=ՀRK5,VH-ՐܳZ!TJH-ՐܳZ!TCJpRkR (!TCJpRkR )=KRK5R )=KRK5,VH-զRK5{%jHqTCPBj R{Z'j@ R{Z'jH YjZ%jH YjZ!%guBjZ!%guBj 4BjwO5R )jHq!!8UQZQ^&ĩJ3Qo2,Th0w:2lTVɢLzMUU<˛ \nk>_O~խRobDect\ݕglr>T˲޼TRgbr}Wmc˕φ㎵>6+|bQ[n&չ$ X)jU{d.N|2RN]G+3]], |?} Pip,JdkT]/mf3~=4Lhpq_ sObd>kr9ox\TU9orHLlKCtigz;qf&6t-y>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 22605 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 22606 0 obj <> endobj 22607 0 obj <> endobj 22608 0 obj <> stream q /X1 Do Q q endstream endobj 22609 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 22610 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 22611 0 obj <> stream HWn}Wt!S}%6`ٻ+&l wHjI%ȿwv =S]?u^< իo.=0+53 BɢPF:J;Oyc߲Xyucux%]z[E1^A8KXsl[xkk&#ڿzlڬ`pMڦ58-貼U4@Fr޷Y==简e@&8~gKTHD+ѻccXmr6@ , ᒷm{鰗{W{W{W{{{7{7{7{ >$؇`9#}䰏>&`;}Of!ZVxPmC޶PmC޶!eoEֶ!`Vm";jm6DJB Q{GPmZۆ(ZIֶ!`Vm"TkEwT+ 6DJBZۆ(mZۆ(mC޶PmCQ"TkEwT6@m";UjmjZ(B Q{GPmCQ"TkEֶ!`Vm";Ujm[iB Q.{(B Q.{ۆ(mZۆ(ZMֶ!`Vm"TkEwT 6DjB Pjmj5Zۆ(ZMֶPmCQ&TkEwT ڶ3jm\ Pjm\ Q.$HD3]zۭdmo0! C(-oM.2 .3[ݲNۼcf{vN2HeϾqYG~t%鄩c6OE]0TYٲI'n|"貌;xL y1b'fyZG厂!3>;<^CC&= LzưY~fui탎e3CNC{3d$ӧڍC đYrZ`0* >j$V z(0Q RmV/Ap۹QyP5#^HbREa*S:U&_fCUl;nOnF~U^7uґBL p?K'L 琰X%r?8T}V}صp>]:B/""=3x2ܩaS5n'Wԥ-erMk' d 1K02~zla8T|?߯co@]p}lW8HwhrH-V 2B.IyGK\K z.6-||rռ3%v8f߲#0png Mἳgf;es_=Q0Fπ~Ͻ@E ^ed:npҁot_>s#YDBg:ZZ'sR@Q~_;"?1}8HCCLq]ga4x;hAy.Y*岲'}i(HMrgӺ_1hT]$lR*dép,:ͱ}Ұ >'8U5&x'$fv8HP3ڿz/@w(1_v}mA,շ|?$']bcyUecj|ubH/Ue`%iUCG|[  ~+q2& d"WS_ckɶ8<Ƿ0H/ǏZ1Ka`?ph}pxe_"{<=\vNpf/uL*g\Fbb7,"`>AG :pw 1'V.6/z𹕡=cW_߲=B6ad'`D^%Ueْw eaʍ@%A'nx(+-˭U.˖yƯʅ Ż VJtդiEjz&MŜNMW ơ$w_Ϋi91$ !|Lz`cR%ZŒ즅Sde%ޮ޾(KvGY&PJ(Ax"Xx)y i%VNw{TewZXB *Yaw@r,?ugtD:|Y|4~Ms@&ʙ8CNqZ(%)JAgE 2Z%#?ID;3Tu!G+5R/!4S| o?å#P)\Yߗ"NM,0 D(I"N]wT}=2kz9{`lBaf( *ų18 ]+3XEo3yA[:<;*^ R(U'.P, }2 娳hvEnBf+kR# Qxx|ZQP M]Nnx_.\SXdq`F6U^2P'pJ_/_}]+'Eendstream endobj 22612 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 22613 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 22614 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 22615 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 22616 0 obj <> endobj 22617 0 obj <> stream q /X1 Do Q q endstream endobj 22618 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 22619 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 22620 0 obj <> stream HWkoܸ__‘Ň^m /,mvAaIͻ?&cV?aZ8a8᠂a$C: ~SM5O}CݪqPW?]a[W+],\% eXBa M.i1j^i}̖Cgrb\ tMs„~ DCȒ ÛoI Rd1OghL]NsJ\ Yp.,|!+%Xv|.,NzNzAzAzAzIzIPzSB}O >#gPysB} >'P_x B}/ ${ei] 8ZCŀEŐw1d] Xk] Yzϵp!P﹖u1`u1d=rµ.,BZNŀEŐE\ ׺k9ZZCs-'\b"{k] ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d= µ.,BZAŀEŐE\+׺kZZCs \b"{k] $ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d=Jµ.,BZIŀEŐE\+ ׺k%ZZCs$\b"{k] Rµ.,_p!Wb՗qY2LInwjžː%8 WmpN5+.Mھۙ7JLJ Zepm9Hb q8edab#HL%QPZn7?FwϻQ:nn3[@ KfiGNgѺnC5(>VCժQ ;F -6mVH=<'|f?8I6&R105]~Ɋʀh:6(dtY$;ʥ2AqK/B|yX&q%ٙakzSktcgyeE"Oz\m;m>d~SL No3GJwϣ&e]"om3 w6O6ycQ8`;l"E1w RMbLiZ̈́S M2݃2 +)' Vu`޶ՓN)'69Xֺi%ZAY£vܭqrd•ERS tIKzybRxUQGxv,{؅䐬<2u寂X3Y˫ Ji~2}6FRhS v7qx@/R cxX,[(+\(8^=$R^{aI\wfE5񫶭x%mH"ީLy=&UCJ,f3, R"fɹHYfnN3R_9Ee'^Fu/ ,Y"\A'H,;OssnhnX&ṡS3(qACoj@ϗf0L8Kl3CɌ9O웈%'M.Cs"Y0^+6.v™2Wsa.v\ez_OX?np5"6'BtCTS\4Тm׏Pexk9zz}EL"$I&T`GS"vWM\N5wjx`En=fc=vBW0/ep=mS =JZMoͥYiμm[eBҏ7`m0u@ռԶGSqq^7Kɗ4I%{JY$#^=1 sN\{_ޟ]pL崚'c]2#FF>6Fn OG=՝i9HON6-|XQ'?vpl;=&ЧOK]0'5}?" tH C-MRɥ4; 'TYo7J{ŭEj* P6:zN+ =|JB^6sFƀb Y:mlBby'# -nAƢe7HgׅsIW(/|Oޮ>:ғX0&%>.3*SjX{Uc>MI ըsTwʞy(#ME(L"|QǬ=>p$E:yk&R=Rvx6)Z2B54fgvmj j*s滑Z >i8ή3锗 i*ěh:E65uzF~UU~0WSh _e^~S=cߠp '+8R2'nx=o?\Lr^dE1w}L(|JpYKnj QEaf O ն۶D,B.ýTEMbEhو Qqӯ\vٝ=~" ?\_hA kTu<QsP>#t08qn]]K&OL+͛\@f,E2J`fWXJkhj';1WkkHuL(˓lhv/RI;Q>uIO,fPND$bߞUS'tM~@'hԫf/ϖ S{MQ)C"l=m<fd(; E 3&L\3T˟;j]],xGv3\pj?JtMaq.R)X ۶ʻŠ]F7 f:DI7.qN$'l' '&vB0nk7QUݿW}8Մ]]ulD%%Dc8[8Th q >E (j(pWz_YX߷Cc1]2򣝔2ŔS9V]ªi1XUAre%%`9Oð((C]:~#thN'!WRB1ᮦ?K=cqzrn SN(~*\S𩱜2Kgbg5U"'IG,th+~2KM\Euh0 " ?;9؏IĴ⿢ٮm-D"]јU$R?,·y90@r:#{MnkȏŒ}Tnu3ߪD2~|CJh ( ,I<\Fr\Aq> HJ=3G;pJrj[U;׳b1^endstream endobj 22621 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 22622 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 22623 0 obj <> endobj 22624 0 obj <> endobj 22625 0 obj <> endobj 22626 0 obj <> endobj 22627 0 obj <> stream q /X1 Do Q q endstream endobj 22628 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 22629 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 22630 0 obj <> stream HėnF{K)hqBEbMM]>M_vetk( YH7|E8~=%X\)yą%bLTa5U ˡaws߇]L /w/s#2&)پkTI=kl/)&i|198LhI)z.zNGn|? ݽ~mq k:- iˆ5w^}ܕT /v܂.[L co$cm!dQANyF(67OB' lW8ה+00Ip&@JuR{t:5H0J8òMhv[%h0Gj,C)A4_$a̔T m'_˒S)_ iZ' w0M8)Ph$@*)PpȇU%FA}ȓİbdw+ދBpUVk8#LD'N YAM-w۳z= j1:4ZazzhNnF[b}WSo U#^^҆0j4 Ճ= },ٕIBF#\=8ɮhDn׆!N>݀<=j[Ov[\vsE)p(ʊol3_ò"nk(X-̠$ח5O"UT6Cbr,SF:^,ʞKSR +,e>]BAFYx!ArZ۞Y"pݸAwXG>+2N;"sqV˞fz(C?y} `kV2_KEk n3DAֆP MwELy tӧ&@n+ڹ 6T$x;M#|p R"ާ*zO1J;apX[y'6 #1]L7AuMp`aYyTB%pdFo\]1A^Ut37:$v_[(6juVևOX1&L=+"Q@ (Ŀc7^2Fp,oAZ0Fendstream endobj 22631 0 obj <> endobj 22632 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 22633 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 22634 0 obj <> endobj 22635 0 obj <> stream HdNVmp|>_/rrzz7//_>is8_O_o|zpxen>ן?>/㏏<#q~;?뼹.?wm[~6<zh.wKrScSsKkۏ> endobj 22637 0 obj <> stream q /X1 Do Q q endstream endobj 22638 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 22639 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 22640 0 obj <> stream HW]oH|'panq>uI!Y'Hp1g-SIt|buS%u$bJ5553U9TzbT~o?k3ت MZժfմz:= ^0VU,&TrTib\ռ8 Mɷ#eY@;;ؘݸ%;>vP/OdasӖQ\8Jt現9?+HaN[uL>w^]|Ե rhR:#`yL99c"HCb2X`Qp[ -sw{;c3^pXp3>fc}'O s S>ܧ}*OLp1>cs}{Y#b {Kh-ŐS Y=ŀ%bܳZC R Y{Z+bܳZZ!KpZkR Y{Z+bZK1d YkZ!KpZkRl8CwO1` {!R Y{Z'bܳ:Z!KpZR Y{Z'bZK1d YkZ!KpZR XBk),=kZK1d YkZ/b),CwO1dqZ!KpZR Y{Z/bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%gBk),=kZKu {Kh-ŐS Y}<*?uEQ"ȷouڪ$S:녚]})Wog' ˾j׳zR|yl2)R3ĹNm/nr mZ/#)o"3(!{S*f᦭kR,'nq^}yf{REd^%hT@s59uQgoJ{Ͳ?ٮD*>QϦ ۺ6poo ]9Nq[Fuusggw ߧFgIdaS՞'FY1XU[˶}СۛWտy aUs?6vG?:9!kRh5J^]j*7Ù6KHZ\V\G+맬rg56e&C \GO5v;0nˡ2jLj5N Wflܫ\n07|6|Gd7ӏz1>t N/z[3x.|Ămz8 U%Ormv&.Z 8~7]}\lwcy@'0n_BጠClH5S ȹqmr(U'­+6WA##Z룻#ʵC;l3ogS_ ,ՙݨڐvDj'KǥD ?]bU@5DŽ2űN>6g(OM^0`x p1n>|.rŴ噖<ӊiłV̴A+aZ0TJV*hL+2 ZiVNlĵ(,E1`A0-#he-˴roS Y˽rO1d Z,V=Ő%h[!CroS Y˽rO1d Z,V=Ő%h;!CעS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1dq-K=Ő%h{!CrS Y˽rO1d Z,^=Ő%h{!CrS Y˽rO1d Z,^=Ő%hB),E1`  >/UL sQ"8Sܴunoo꛻RRe,0{<jK/$WMszluFͼ 1ۈ%j"+/@>em;1Y̫-lFֲF4}xM5jyutGWoʾuEYx|\Wn1gzz(CRHrmq9 xB֞/J-;2s.xbz4G-ղ*w2Hǻe| i~ͰxA=9E,2G)OZӧvbi``g f`wڧ;d^3g O; cB?˶n%9ρYo7 7.Mtedi;ܭKL.v.z]nM"pHt42O)'|VAn0{L˜kCUP Ԏ0]@0*=2ffQp͚ؐ$c ](΁g(s@~s׺ل6{d_.S3CSFTO=vl!냒=TK!]8<f'RVN]0r]4 VVNg]݁bas^7#i.lGr=:R$Y4ݚ/ S޹J;}F)GeGBY@%cʓHxN! Wx't#>/P 1408 0 R/Type/Annot/A 22642 0 R/Subtype/Link/Rect[93.6007004 254.748001 271.656006 274.428009]/Border[0 0 0]/H/N>> endobj 22642 0 obj <> endobj 22643 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 22644 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 22645 0 obj <> endobj 22646 0 obj <> endobj 22647 0 obj <> stream q /X1 Do Q q endstream endobj 22648 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 22649 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 22650 0 obj <> stream HWioH_јO'ޝ 03Gc-X0Ցd=^^Ruujuۥ͏?^\Nؐh }V:S>+Y7ɟfSb$4vyֳE]f=Kr&&C{5iiDITym:jji/].mK*j ?wd;qsz4;)lV**V}3LH.g|367g}kos31Ie Rk~]$*D͉csHcNbIJVƬwkyNwS=p{{^}Pp///// G>VbāJYڽĈZ+1ficv/1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+EAk%,^b{1K@k%,^փJYj@k%,^փJYj@k%,^փJYj@k%,^փJYj" cv/1bJYڽĘKXcpZ@k%,^6JXcpZ@k%,^6JXcpZ@k%,^6JXcpZ@k%,^6Jlcv/1bJYڽĘܛo2{A"`) @+(hJZ*VJU* hUJZҪVjU+Ҋ@+J-k-1KkIk@*- r@)-TȽĺZ@%,r@%,r/1f-{r/g)-{1 h;{uG>Kjy{1KkI;@KރK;@KރK2@KރK2@KރK(@KރK(@KރK@KރK@KރK@KރKZKbZR R R R M>R M>R ;R ;R 9R ㍹֒x T x\ k$ vYi"ft=fH27yz~6PgU˵̭+Sjr۬>,jRYjVpU[?zlGٸϏ! }]`ǻ|ߤfW4v\x%(f܍>꬛d2j+>v3 -=U\Mw9g?6gW[*Oe~lN񙩽=S lgz#uwiɬ˃>7'jez~[]od{Yn'`CUu OU>ۣK4SFhdٮF ןr1Yѐ 2,ih~q(J*zKn5^_{zi{_:2_ξK]D9G^,nY@%=[KG=-.K9=|D9SzG ;7fA{$K}ff~'A[-}CÑX:x6\qw󽱷/;_[ {wWM.j~MPwo/ʊ"r:0=s* RwU;ޙ)m|ϖԬ,sCns>a,ŀ fLJ]C^i#\ud/S3v{kj_1YolK70u۩ђ+a4~:(}a )psOYWoGͲMIz;U7픚yeNNW,lu1PU.]Ŷjo}ݿA'SL jon'ES@exOQ~1 +_cĊ<ƒ gf8g nd`kwKBK\?@9]k@B+ hTY4xL( L"3f t> J&hf4|Zt$ U;4];Զ遧7ϦElv$O1;_3_j~2!3Wc,L{5 ,o_&"&./ܗ1R&.t\4w5d)ȂqR:2,shZ^r^f KEv%ę007!$#*|d?q|Mίh”G0Čz[ en/&Ϝ /"לJ&ހ!2{߻*@+B5'a"~U;bœ1*6\ʃ韭s8Vh E}]ƻ%R˓c%M""Aʶ;7q&lF0f80[IH /endstream endobj 22651 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 22652 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 22653 0 obj <> endobj 22654 0 obj <> endobj 22655 0 obj <> endobj 22656 0 obj <> endobj 22657 0 obj <> endobj 22658 0 obj <> endobj 22659 0 obj <> endobj 22660 0 obj <> endobj 22661 0 obj <> endobj 22662 0 obj <> stream q /X1 Do Q q endstream endobj 22663 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 22664 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 22665 0 obj <> stream HWmo7e@vmsS:y($3˕]8]Çyf,7`ϞxO% WfN14OTIfnyX_v>+_W\+z.f->V6,>-6,p&ǽ֏|6Jsˤ`W [[VEK*KL0RUn%el*.eI>JU^U^u^u^uMMmmm]]}}}>C>C>c> JBmS)B Q%(B Q%܆}n܆(}ZE6!`_Vm"TE/T6D *B Pjsj܆(}ZE6PmnCP"TE/TM 6Ds6DsJ Pjsj5܆(}ZM6PmnCP&TE/T 6@m"Մjsj5(B QBPmnCP&T6!TUm"TUm*6@m"5jsj (B QBPmnCP!TE6!`_m"5js6D B QBPmnTPmnCT>PmnCT>!dy0jSXTd->V&U9M5{p[],Z7< #Zp+JEsՀ99 sm!Z8p};uh}_w]0|>Z';iJt`61dwׇ{}W='Vz=nW*UלzvUR7--jP;< {8W JO 8hH nO=>~ß5LQX}"x*'lW؀)apѪ.l;a}b#jy,H kgHD8T7כz\@fvuX}ٌ}Jݶ_~m$wѩ[W.4n>Fg% )v..S..df]ޱ~me, R9m׸>vٟMP4\fjcm~>헛DOg }Y/TҼT(u}ٯ>ϲ#nᱰ1z{X6"cY6^?zC_L+BL*pe!D":9 [2 +B[&(X8X-: ~e'hpƃW9sE5Fa UMPu *eVqa& w!!.]&5n# K 3m]bR5?/!fRsSt5#gງRZB1FzA7s1`~>]};V\ ʲ0ktY .SFLtvsww*[|-p?&K ` փ|=`0sIe Pvݰu0'vhݷzߍ6;4b@g9<.Li"È@4?^C Q{ hj*7XCN]P%^zguO?(s| @8 P2WN)C>G)PlĕF^Pʕ0+1Hn/Ȏd:3 ti?mcWØ!v$G =`(9f)au079a^GQq#q^%mQ# }L"A(; d@`:! фH:ߧj{6-^䜿vL1kN涁GKP{6.4ob騴WߌD`ੴҒUӖ*?qţTW{ۄ 2}8m%P@@[ВZB?hc| hasReM &|bJˇ?],o6Te4Ɩ׷Cւ* qXkN[Z"Ӑsʩjg ؊G";G9U'fsq!z6]msy쎫_;3H{M 5SEvCP9Bv@߇[9V`E,:|q}-zd-Ͳ^Y>wc3V P}]E DUcW*.zrn 4JmqaS) Msb W( ,jި fI. NY8 V `EZGjB}hb,4:He$@y fנl5 gL\|^F"]'#D쾢uOD&@ˈy?  *CۆN*)/ vy%xgOxh cotJ˖ 46:V{((Bpq\wLO"ϣ {?œԔ2ǣP:gU5Sq1mISSmiE$Z~ AeìeYY^l q%,ڶ|2XGf%:Y뜼.:)dL\i[=fWϫ5~-tC[]h gsY uUgOy9F$twt=<>B6*[Uk%/4%UY'd@\Rc jqiODQWڳ&4cY8$H }E) :sIV{D9( Tv߆ѹaQY9YY؝F]5btsŚ(٧fZo3K{<3Tڿ2RY2tUaM> 2Bv.TYCmx##0v]k>o1kWUrq* $dɀJ *muB7j9J~St7p="Us-E25+ u=UטwrĬ-z.fV>jgLH5XfrW9Iv[ԥ|!2/&=odI&JPִ&c|w,&ZMKYꪲ1{;Xendstream endobj 22666 0 obj <>/P 11766 0 R/Type/Annot/A 23131 0 R/Subtype/Link/Rect[211 670 221 678]/Border[0 0 0]/H/N>> endobj 22667 0 obj <>/P 11766 0 R/Type/Annot/A 23128 0 R/Subtype/Link/Rect[223 670 237 678]/Border[0 0 0]/H/N>> endobj 22668 0 obj <>/P 11766 0 R/Type/Annot/A 23124 0 R/Subtype/Link/Rect[239 670 251 678]/Border[0 0 0]/H/N>> endobj 22669 0 obj <>/P 11766 0 R/Type/Annot/A 23122 0 R/Subtype/Link/Rect[196 660 206 668]/Border[0 0 0]/H/N>> endobj 22670 0 obj <>/P 11766 0 R/Type/Annot/A 23117 0 R/Subtype/Link/Rect[208 660 222 668]/Border[0 0 0]/H/N>> endobj 22671 0 obj <>/P 11766 0 R/Type/Annot/A 23113 0 R/Subtype/Link/Rect[224 660 238 668]/Border[0 0 0]/H/N>> endobj 22672 0 obj <>/P 11766 0 R/Type/Annot/A 23109 0 R/Subtype/Link/Rect[240 660 257 669]/Border[0 0 0]/H/N>> endobj 22673 0 obj <>/P 11766 0 R/Type/Annot/A 23104 0 R/Subtype/Link/Rect[258 660 272 668]/Border[0 0 0]/H/N>> endobj 22674 0 obj <>/P 11766 0 R/Type/Annot/A 23100 0 R/Subtype/Link/Rect[274 660 288 668]/Border[0 0 0]/H/N>> endobj 22675 0 obj <>/P 11766 0 R/Type/Annot/A 23094 0 R/Subtype/Link/Rect[290 660 304 668]/Border[0 0 0]/H/N>> endobj 22676 0 obj <>/P 11766 0 R/Type/Annot/A 23092 0 R/Subtype/Link/Rect[151 650 165 658]/Border[0 0 0]/H/N>> endobj 22677 0 obj <>/P 11766 0 R/Type/Annot/A 23090 0 R/Subtype/Link/Rect[167 650 179 658]/Border[0 0 0]/H/N>> endobj 22678 0 obj <>/P 11766 0 R/Type/Annot/A 23085 0 R/Subtype/Link/Rect[231 640 237 648]/Border[0 0 0]/H/N>> endobj 22679 0 obj <>/P 11766 0 R/Type/Annot/A 23082 0 R/Subtype/Link/Rect[239 640 249 648]/Border[0 0 0]/H/N>> endobj 22680 0 obj <>/P 11766 0 R/Type/Annot/A 23078 0 R/Subtype/Link/Rect[251 640 261 648]/Border[0 0 0]/H/N>> endobj 22681 0 obj <>/P 11766 0 R/Type/Annot/A 23074 0 R/Subtype/Link/Rect[263 640 277 648]/Border[0 0 0]/H/N>> endobj 22682 0 obj <>/P 11766 0 R/Type/Annot/A 37660 0 R/Subtype/Link/Rect[279 640 293 648]/Border[0 0 0]/H/N>> endobj 22683 0 obj <>/P 11766 0 R/Type/Annot/A 44789 0 R/Subtype/Link/Rect[295 640 309 648]/Border[0 0 0]/H/N>> endobj 22684 0 obj <>/P 11766 0 R/Type/Annot/A 23352 0 R/Subtype/Link/Rect[151 630 165 638]/Border[0 0 0]/H/N>> endobj 22685 0 obj <>/P 11766 0 R/Type/Annot/A 44706 0 R/Subtype/Link/Rect[167 630 181 638]/Border[0 0 0]/H/N>> endobj 22686 0 obj <>/P 11766 0 R/Type/Annot/A 23348 0 R/Subtype/Link/Rect[183 630 197 638]/Border[0 0 0]/H/N>> endobj 22687 0 obj <>/P 11766 0 R/Type/Annot/A 23345 0 R/Subtype/Link/Rect[199 630 213 638]/Border[0 0 0]/H/N>> endobj 22688 0 obj <>/P 11766 0 R/Type/Annot/A 23342 0 R/Subtype/Link/Rect[215 630 232 639]/Border[0 0 0]/H/N>> endobj 22689 0 obj <>/P 11766 0 R/Type/Annot/A 23339 0 R/Subtype/Link/Rect[233 630 247 638]/Border[0 0 0]/H/N>> endobj 22690 0 obj <>/P 11766 0 R/Type/Annot/A 23335 0 R/Subtype/Link/Rect[249 630 263 638]/Border[0 0 0]/H/N>> endobj 22691 0 obj <>/P 11766 0 R/Type/Annot/A 44503 0 R/Subtype/Link/Rect[265 630 281 639]/Border[0 0 0]/H/N>> endobj 22692 0 obj <>/P 11766 0 R/Type/Annot/A 23329 0 R/Subtype/Link/Rect[282 630 296 638]/Border[0 0 0]/H/N>> endobj 22693 0 obj <>/P 11766 0 R/Type/Annot/A 23325 0 R/Subtype/Link/Rect[151 620 168 629]/Border[0 0 0]/H/N>> endobj 22694 0 obj <>/P 11766 0 R/Type/Annot/A 23319 0 R/Subtype/Link/Rect[169 620 183 628]/Border[0 0 0]/H/N>> endobj 22695 0 obj <>/P 11766 0 R/Type/Annot/A 44357 0 R/Subtype/Link/Rect[185 620 199 628]/Border[0 0 0]/H/N>> endobj 22696 0 obj <>/P 11766 0 R/Type/Annot/A 44331 0 R/Subtype/Link/Rect[201 620 215 628]/Border[0 0 0]/H/N>> endobj 22697 0 obj <>/P 11766 0 R/Type/Annot/A 23305 0 R/Subtype/Link/Rect[217 620 233 629]/Border[0 0 0]/H/N>> endobj 22698 0 obj <>/P 11766 0 R/Type/Annot/A 44251 0 R/Subtype/Link/Rect[234 620 248 628]/Border[0 0 0]/H/N>> endobj 22699 0 obj <>/P 11766 0 R/Type/Annot/A 44221 0 R/Subtype/Link/Rect[250 620 262 628]/Border[0 0 0]/H/N>> endobj 22700 0 obj <>/P 11766 0 R/Type/Annot/A 23291 0 R/Subtype/Link/Rect[254 580 268 588]/Border[0 0 0]/H/N>> endobj 22701 0 obj <>/P 11766 0 R/Type/Annot/A 44149 0 R/Subtype/Link/Rect[270 580 284 588]/Border[0 0 0]/H/N>> endobj 22702 0 obj <>/P 11766 0 R/Type/Annot/A 23283 0 R/Subtype/Link/Rect[286 580 300 588]/Border[0 0 0]/H/N>> endobj 22703 0 obj <>/P 11766 0 R/Type/Annot/A 44077 0 R/Subtype/Link/Rect[151 570 165 578]/Border[0 0 0]/H/N>> endobj 22704 0 obj <>/P 11766 0 R/Type/Annot/A 23276 0 R/Subtype/Link/Rect[167 570 181 578]/Border[0 0 0]/H/N>> endobj 22705 0 obj <>/P 11766 0 R/Type/Annot/A 23272 0 R/Subtype/Link/Rect[183 570 197 578]/Border[0 0 0]/H/N>> endobj 22706 0 obj <>/P 11766 0 R/Type/Annot/A 43970 0 R/Subtype/Link/Rect[199 570 213 578]/Border[0 0 0]/H/N>> endobj 22707 0 obj <>/P 11766 0 R/Type/Annot/A 23264 0 R/Subtype/Link/Rect[215 570 227 578]/Border[0 0 0]/H/N>> endobj 22708 0 obj <>/P 11766 0 R/Type/Annot/A 43886 0 R/Subtype/Link/Rect[168 560 184 569]/Border[0 0 0]/H/N>> endobj 22709 0 obj <>/P 11766 0 R/Type/Annot/A 43856 0 R/Subtype/Link/Rect[185 560 199 568]/Border[0 0 0]/H/N>> endobj 22710 0 obj <>/P 11766 0 R/Type/Annot/A 23256 0 R/Subtype/Link/Rect[201 560 215 568]/Border[0 0 0]/H/N>> endobj 22711 0 obj <>/P 11766 0 R/Type/Annot/A 43789 0 R/Subtype/Link/Rect[217 560 229 568]/Border[0 0 0]/H/N>> endobj 22712 0 obj <>/P 11766 0 R/Type/Annot/A 43752 0 R/Subtype/Link/Rect[193 550 205 558]/Border[0 0 0]/H/N>> endobj 22713 0 obj <>/P 11766 0 R/Type/Annot/A 23249 0 R/Subtype/Link/Rect[201 540 215 548]/Border[0 0 0]/H/N>> endobj 22714 0 obj <>/P 11766 0 R/Type/Annot/A 23246 0 R/Subtype/Link/Rect[217 540 229 548]/Border[0 0 0]/H/N>> endobj 22715 0 obj <>/P 11766 0 R/Type/Annot/A 43632 0 R/Subtype/Link/Rect[222 530 236 538]/Border[0 0 0]/H/N>> endobj 22716 0 obj <>/P 11766 0 R/Type/Annot/A 23241 0 R/Subtype/Link/Rect[238 530 254 539]/Border[0 0 0]/H/N>> endobj 22717 0 obj <>/P 11766 0 R/Type/Annot/A 43551 0 R/Subtype/Link/Rect[255 530 269 538]/Border[0 0 0]/H/N>> endobj 22718 0 obj <>/P 11766 0 R/Type/Annot/A 43523 0 R/Subtype/Link/Rect[271 530 285 538]/Border[0 0 0]/H/N>> endobj 22719 0 obj <>/P 11766 0 R/Type/Annot/A 23230 0 R/Subtype/Link/Rect[287 530 301 538]/Border[0 0 0]/H/N>> endobj 22720 0 obj <>/P 11766 0 R/Type/Annot/A 23228 0 R/Subtype/Link/Rect[151 520 163 528]/Border[0 0 0]/H/N>> endobj 22721 0 obj <>/P 11766 0 R/Type/Annot/A 23224 0 R/Subtype/Link/Rect[202 510 214 518]/Border[0 0 0]/H/N>> endobj 22722 0 obj <>/P 11766 0 R/Type/Annot/A 23219 0 R/Subtype/Link/Rect[190 500 202 508]/Border[0 0 0]/H/N>> endobj 22723 0 obj <>/P 11766 0 R/Type/Annot/A 23215 0 R/Subtype/Link/Rect[199 490 211 498]/Border[0 0 0]/H/N>> endobj 22724 0 obj <>/P 11766 0 R/Type/Annot/A 23211 0 R/Subtype/Link/Rect[167 480 181 488]/Border[0 0 0]/H/N>> endobj 22725 0 obj <>/P 11766 0 R/Type/Annot/A 23208 0 R/Subtype/Link/Rect[183 480 195 488]/Border[0 0 0]/H/N>> endobj 22726 0 obj <>/P 11766 0 R/Type/Annot/A 43186 0 R/Subtype/Link/Rect[197 470 209 478]/Border[0 0 0]/H/N>> endobj 22727 0 obj <>/P 11766 0 R/Type/Annot/A 43166 0 R/Subtype/Link/Rect[200 460 212 468]/Border[0 0 0]/H/N>> endobj 22728 0 obj <>/P 11766 0 R/Type/Annot/A 23200 0 R/Subtype/Link/Rect[217 450 227 458]/Border[0 0 0]/H/N>> endobj 22729 0 obj <>/P 11766 0 R/Type/Annot/A 23195 0 R/Subtype/Link/Rect[229 450 239 458]/Border[0 0 0]/H/N>> endobj 22730 0 obj <>/P 11766 0 R/Type/Annot/A 43048 0 R/Subtype/Link/Rect[241 450 251 458]/Border[0 0 0]/H/N>> endobj 22731 0 obj <>/P 11766 0 R/Type/Annot/A 43001 0 R/Subtype/Link/Rect[253 450 261 458]/Border[0 0 0]/H/N>> endobj 22732 0 obj <>/P 11766 0 R/Type/Annot/A 23186 0 R/Subtype/Link/Rect[190 440 200 448]/Border[0 0 0]/H/N>> endobj 22733 0 obj <>/P 11766 0 R/Type/Annot/A 23183 0 R/Subtype/Link/Rect[202 440 216 448]/Border[0 0 0]/H/N>> endobj 22734 0 obj <>/P 11766 0 R/Type/Annot/A 23180 0 R/Subtype/Link/Rect[218 440 234 449]/Border[0 0 0]/H/N>> endobj 22735 0 obj <>/P 11766 0 R/Type/Annot/A 42866 0 R/Subtype/Link/Rect[235 440 249 448]/Border[0 0 0]/H/N>> endobj 22736 0 obj <>/P 11766 0 R/Type/Annot/A 23174 0 R/Subtype/Link/Rect[251 440 265 448]/Border[0 0 0]/H/N>> endobj 22737 0 obj <>/P 11766 0 R/Type/Annot/A 42796 0 R/Subtype/Link/Rect[267 440 281 448]/Border[0 0 0]/H/N>> endobj 22738 0 obj <>/P 11766 0 R/Type/Annot/A 23168 0 R/Subtype/Link/Rect[283 440 297 448]/Border[0 0 0]/H/N>> endobj 22739 0 obj <>/P 11766 0 R/Type/Annot/A 23164 0 R/Subtype/Link/Rect[151 430 165 438]/Border[0 0 0]/H/N>> endobj 22740 0 obj <>/P 11766 0 R/Type/Annot/A 23160 0 R/Subtype/Link/Rect[167 430 181 438]/Border[0 0 0]/H/N>> endobj 22741 0 obj <>/P 11766 0 R/Type/Annot/A 23158 0 R/Subtype/Link/Rect[183 430 197 438]/Border[0 0 0]/H/N>> endobj 22742 0 obj <>/P 11766 0 R/Type/Annot/A 42603 0 R/Subtype/Link/Rect[199 430 213 438]/Border[0 0 0]/H/N>> endobj 22743 0 obj <>/P 11766 0 R/Type/Annot/A 23151 0 R/Subtype/Link/Rect[215 430 232 439]/Border[0 0 0]/H/N>> endobj 22744 0 obj <>/P 11766 0 R/Type/Annot/A 42545 0 R/Subtype/Link/Rect[233 430 247 438]/Border[0 0 0]/H/N>> endobj 22745 0 obj <>/P 11766 0 R/Type/Annot/A 23145 0 R/Subtype/Link/Rect[249 430 263 438]/Border[0 0 0]/H/N>> endobj 22746 0 obj <>/P 11766 0 R/Type/Annot/A 42464 0 R/Subtype/Link/Rect[265 430 279 438]/Border[0 0 0]/H/N>> endobj 22747 0 obj <>/P 11766 0 R/Type/Annot/A 23138 0 R/Subtype/Link/Rect[281 430 293 438]/Border[0 0 0]/H/N>> endobj 22748 0 obj <>/P 11766 0 R/Type/Annot/A 23134 0 R/Subtype/Link/Rect[196 420 213 429]/Border[0 0 0]/H/N>> endobj 22749 0 obj <>/P 11766 0 R/Type/Annot/A 23130 0 R/Subtype/Link/Rect[213 420 225 428]/Border[0 0 0]/H/N>> endobj 22750 0 obj <>/P 11766 0 R/Type/Annot/A 42320 0 R/Subtype/Link/Rect[177 400 191 408]/Border[0 0 0]/H/N>> endobj 22751 0 obj <>/P 11766 0 R/Type/Annot/A 42255 0 R/Subtype/Link/Rect[193 400 205 408]/Border[0 0 0]/H/N>> endobj 22752 0 obj <>/P 11766 0 R/Type/Annot/A 23121 0 R/Subtype/Link/Rect[167 390 181 398]/Border[0 0 0]/H/N>> endobj 22753 0 obj <>/P 11766 0 R/Type/Annot/A 23116 0 R/Subtype/Link/Rect[183 390 195 398]/Border[0 0 0]/H/N>> endobj 22754 0 obj <>/P 11766 0 R/Type/Annot/A 23111 0 R/Subtype/Link/Rect[167 380 181 388]/Border[0 0 0]/H/N>> endobj 22755 0 obj <>/P 11766 0 R/Type/Annot/A 23107 0 R/Subtype/Link/Rect[183 380 195 388]/Border[0 0 0]/H/N>> endobj 22756 0 obj <>/P 11766 0 R/Type/Annot/A 23102 0 R/Subtype/Link/Rect[186 370 200 378]/Border[0 0 0]/H/N>> endobj 22757 0 obj <>/P 11766 0 R/Type/Annot/A 23098 0 R/Subtype/Link/Rect[202 370 214 378]/Border[0 0 0]/H/N>> endobj 22758 0 obj <>/P 11766 0 R/Type/Annot/A 41971 0 R/Subtype/Link/Rect[214 360 231 369]/Border[0 0 0]/H/N>> endobj 22759 0 obj <>/P 11766 0 R/Type/Annot/A 41944 0 R/Subtype/Link/Rect[232 360 244 368]/Border[0 0 0]/H/N>> endobj 22760 0 obj <>/P 11766 0 R/Type/Annot/A 23087 0 R/Subtype/Link/Rect[254 350 266 358]/Border[0 0 0]/H/N>> endobj 22761 0 obj <>/P 11766 0 R/Type/Annot/A 41858 0 R/Subtype/Link/Rect[170 340 182 348]/Border[0 0 0]/H/N>> endobj 22762 0 obj <>/P 11766 0 R/Type/Annot/A 23080 0 R/Subtype/Link/Rect[207 330 220 339]/Border[0 0 0]/H/N>> endobj 22763 0 obj <>/P 11766 0 R/Type/Annot/A 23076 0 R/Subtype/Link/Rect[220 330 230 338]/Border[0 0 0]/H/N>> endobj 22764 0 obj <>/P 11766 0 R/Type/Annot/A 23328 0 R/Subtype/Link/Rect[232 330 242 338]/Border[0 0 0]/H/N>> endobj 22765 0 obj <>/P 11766 0 R/Type/Annot/A 41656 0 R/Subtype/Link/Rect[244 330 258 338]/Border[0 0 0]/H/N>> endobj 22766 0 obj <>/P 11766 0 R/Type/Annot/A 23347 0 R/Subtype/Link/Rect[260 330 274 338]/Border[0 0 0]/H/N>> endobj 22767 0 obj <>/P 11766 0 R/Type/Annot/A 23344 0 R/Subtype/Link/Rect[276 330 290 338]/Border[0 0 0]/H/N>> endobj 22768 0 obj <>/P 11766 0 R/Type/Annot/A 23341 0 R/Subtype/Link/Rect[292 330 306 338]/Border[0 0 0]/H/N>> endobj 22769 0 obj <>/P 11766 0 R/Type/Annot/A 23337 0 R/Subtype/Link/Rect[151 320 165 328]/Border[0 0 0]/H/N>> endobj 22770 0 obj <>/P 11766 0 R/Type/Annot/A 23333 0 R/Subtype/Link/Rect[167 320 184 329]/Border[0 0 0]/H/N>> endobj 22771 0 obj <>/P 11766 0 R/Type/Annot/A 41420 0 R/Subtype/Link/Rect[185 320 199 328]/Border[0 0 0]/H/N>> endobj 22772 0 obj <>/P 11766 0 R/Type/Annot/A 41395 0 R/Subtype/Link/Rect[201 320 215 328]/Border[0 0 0]/H/N>> endobj 22773 0 obj <>/P 11766 0 R/Type/Annot/A 23322 0 R/Subtype/Link/Rect[217 320 233 329]/Border[0 0 0]/H/N>> endobj 22774 0 obj <>/P 11766 0 R/Type/Annot/A 23316 0 R/Subtype/Link/Rect[234 320 248 328]/Border[0 0 0]/H/N>> endobj 22775 0 obj <>/P 11766 0 R/Type/Annot/A 41273 0 R/Subtype/Link/Rect[250 320 267 329]/Border[0 0 0]/H/N>> endobj 22776 0 obj <>/P 11766 0 R/Type/Annot/A 41232 0 R/Subtype/Link/Rect[267 320 281 328]/Border[0 0 0]/H/N>> endobj 22777 0 obj <>/P 11766 0 R/Type/Annot/A 23301 0 R/Subtype/Link/Rect[283 320 297 328]/Border[0 0 0]/H/N>> endobj 22778 0 obj <>/P 11766 0 R/Type/Annot/A 41164 0 R/Subtype/Link/Rect[151 310 165 318]/Border[0 0 0]/H/N>> endobj 22779 0 obj <>/P 11766 0 R/Type/Annot/A 23293 0 R/Subtype/Link/Rect[167 310 184 319]/Border[0 0 0]/H/N>> endobj 22780 0 obj <>/P 11766 0 R/Type/Annot/A 23288 0 R/Subtype/Link/Rect[185 310 199 318]/Border[0 0 0]/H/N>> endobj 22781 0 obj <>/P 11766 0 R/Type/Annot/A 23284 0 R/Subtype/Link/Rect[201 310 215 318]/Border[0 0 0]/H/N>> endobj 22782 0 obj <>/P 11766 0 R/Type/Annot/A 40752 0 R/Subtype/Link/Rect[217 310 233 319]/Border[0 0 0]/H/N>> endobj 22783 0 obj <>/P 11766 0 R/Type/Annot/A 40720 0 R/Subtype/Link/Rect[234 310 248 318]/Border[0 0 0]/H/N>> endobj 22784 0 obj <>/P 11766 0 R/Type/Annot/A 40682 0 R/Subtype/Link/Rect[250 310 264 318]/Border[0 0 0]/H/N>> endobj 22785 0 obj <>/P 11766 0 R/Type/Annot/A 23269 0 R/Subtype/Link/Rect[266 310 280 318]/Border[0 0 0]/H/N>> endobj 22786 0 obj <>/P 11766 0 R/Type/Annot/A 40093 0 R/Subtype/Link/Rect[282 310 296 318]/Border[0 0 0]/H/N>> endobj 22787 0 obj <>/P 11766 0 R/Type/Annot/A 39546 0 R/Subtype/Link/Rect[151 300 165 308]/Border[0 0 0]/H/N>> endobj 22788 0 obj <>/P 11766 0 R/Type/Annot/A 39505 0 R/Subtype/Link/Rect[167 300 181 308]/Border[0 0 0]/H/N>> endobj 22789 0 obj <>/P 11766 0 R/Type/Annot/A 38981 0 R/Subtype/Link/Rect[183 300 195 308]/Border[0 0 0]/H/N>> endobj 22790 0 obj <>/P 11766 0 R/Type/Annot/A 38930 0 R/Subtype/Link/Rect[190 290 198 298]/Border[0 0 0]/H/N>> endobj 22791 0 obj <>/P 11766 0 R/Type/Annot/A 38407 0 R/Subtype/Link/Rect[217 280 231 288]/Border[0 0 0]/H/N>> endobj 22792 0 obj <>/P 11766 0 R/Type/Annot/A 38348 0 R/Subtype/Link/Rect[233 280 245 288]/Border[0 0 0]/H/N>> endobj 22793 0 obj <>/P 11766 0 R/Type/Annot/A 38318 0 R/Subtype/Link/Rect[207 270 221 278]/Border[0 0 0]/H/N>> endobj 22794 0 obj <>/P 11766 0 R/Type/Annot/A 38281 0 R/Subtype/Link/Rect[223 270 240 279]/Border[0 0 0]/H/N>> endobj 22795 0 obj <>/P 11766 0 R/Type/Annot/A 23239 0 R/Subtype/Link/Rect[240 270 254 278]/Border[0 0 0]/H/N>> endobj 22796 0 obj <>/P 11766 0 R/Type/Annot/A 23237 0 R/Subtype/Link/Rect[256 270 270 278]/Border[0 0 0]/H/N>> endobj 22797 0 obj <>/P 11766 0 R/Type/Annot/A 36773 0 R/Subtype/Link/Rect[272 270 286 278]/Border[0 0 0]/H/N>> endobj 22798 0 obj <>/P 11766 0 R/Type/Annot/A 36729 0 R/Subtype/Link/Rect[288 270 302 278]/Border[0 0 0]/H/N>> endobj 22799 0 obj <>/P 11766 0 R/Type/Annot/A 38185 0 R/Subtype/Link/Rect[151 260 163 268]/Border[0 0 0]/H/N>> endobj 22800 0 obj <>/P 11766 0 R/Type/Annot/A 23222 0 R/Subtype/Link/Rect[190 250 202 258]/Border[0 0 0]/H/N>> endobj 22801 0 obj <>/P 11766 0 R/Type/Annot/A 35868 0 R/Subtype/Link/Rect[217 240 229 248]/Border[0 0 0]/H/N>> endobj 22802 0 obj <>/P 11766 0 R/Type/Annot/A 35096 0 R/Subtype/Link/Rect[190 230 202 238]/Border[0 0 0]/H/N>> endobj 22803 0 obj <>/P 11766 0 R/Type/Annot/A 23209 0 R/Subtype/Link/Rect[211 220 221 228]/Border[0 0 0]/H/N>> endobj 22804 0 obj <>/P 11766 0 R/Type/Annot/A 23206 0 R/Subtype/Link/Rect[223 220 235 228]/Border[0 0 0]/H/N>> endobj 22805 0 obj <>/P 11766 0 R/Type/Annot/A 23203 0 R/Subtype/Link/Rect[215 210 223 218]/Border[0 0 0]/H/N>> endobj 22806 0 obj <>/P 11766 0 R/Type/Annot/A 34200 0 R/Subtype/Link/Rect[194 200 206 208]/Border[0 0 0]/H/N>> endobj 22807 0 obj <>/P 11766 0 R/Type/Annot/A 23197 0 R/Subtype/Link/Rect[197 190 207 198]/Border[0 0 0]/H/N>> endobj 22808 0 obj <>/P 11766 0 R/Type/Annot/A 38062 0 R/Subtype/Link/Rect[209 190 223 198]/Border[0 0 0]/H/N>> endobj 22809 0 obj <>/P 11766 0 R/Type/Annot/A 38051 0 R/Subtype/Link/Rect[225 190 237 198]/Border[0 0 0]/H/N>> endobj 22810 0 obj <>/P 11766 0 R/Type/Annot/A 23187 0 R/Subtype/Link/Rect[221 180 233 188]/Border[0 0 0]/H/N>> endobj 22811 0 obj <>/P 11766 0 R/Type/Annot/A 38015 0 R/Subtype/Link/Rect[202 170 214 178]/Border[0 0 0]/H/N>> endobj 22812 0 obj <>/P 11766 0 R/Type/Annot/A 32528 0 R/Subtype/Link/Rect[181 160 195 168]/Border[0 0 0]/H/N>> endobj 22813 0 obj <>/P 11766 0 R/Type/Annot/A 23177 0 R/Subtype/Link/Rect[197 160 211 168]/Border[0 0 0]/H/N>> endobj 22814 0 obj <>/P 11766 0 R/Type/Annot/A 31796 0 R/Subtype/Link/Rect[213 160 225 168]/Border[0 0 0]/H/N>> endobj 22815 0 obj <>/P 11766 0 R/Type/Annot/A 23172 0 R/Subtype/Link/Rect[215 150 229 158]/Border[0 0 0]/H/N>> endobj 22816 0 obj <>/P 11766 0 R/Type/Annot/A 31057 0 R/Subtype/Link/Rect[231 150 243 158]/Border[0 0 0]/H/N>> endobj 22817 0 obj <>/P 11766 0 R/Type/Annot/A 23166 0 R/Subtype/Link/Rect[415 670 427 678]/Border[0 0 0]/H/N>> endobj 22818 0 obj <>/P 11766 0 R/Type/Annot/A 23162 0 R/Subtype/Link/Rect[398 660 410 668]/Border[0 0 0]/H/N>> endobj 22819 0 obj <>/P 11766 0 R/Type/Annot/A 30251 0 R/Subtype/Link/Rect[420 650 434 658]/Border[0 0 0]/H/N>> endobj 22820 0 obj <>/P 11766 0 R/Type/Annot/A 23156 0 R/Subtype/Link/Rect[436 650 448 658]/Border[0 0 0]/H/N>> endobj 22821 0 obj <>/P 11766 0 R/Type/Annot/A 23152 0 R/Subtype/Link/Rect[398 640 410 648]/Border[0 0 0]/H/N>> endobj 22822 0 obj <>/P 11766 0 R/Type/Annot/A 23148 0 R/Subtype/Link/Rect[405 630 419 638]/Border[0 0 0]/H/N>> endobj 22823 0 obj <>/P 11766 0 R/Type/Annot/A 37892 0 R/Subtype/Link/Rect[421 630 438 639]/Border[0 0 0]/H/N>> endobj 22824 0 obj <>/P 11766 0 R/Type/Annot/A 29324 0 R/Subtype/Link/Rect[439 630 451 638]/Border[0 0 0]/H/N>> endobj 22825 0 obj <>/P 11766 0 R/Type/Annot/A 23137 0 R/Subtype/Link/Rect[415 620 427 628]/Border[0 0 0]/H/N>> endobj 22826 0 obj <>/P 11766 0 R/Type/Annot/A 23133 0 R/Subtype/Link/Rect[405 610 417 618]/Border[0 0 0]/H/N>> endobj 22827 0 obj <>/P 11766 0 R/Type/Annot/A 37865 0 R/Subtype/Link/Rect[397 600 411 608]/Border[0 0 0]/H/N>> endobj 22828 0 obj <>/P 11766 0 R/Type/Annot/A 23127 0 R/Subtype/Link/Rect[413 600 430 609]/Border[0 0 0]/H/N>> endobj 22829 0 obj <>/P 11766 0 R/Type/Annot/A 37849 0 R/Subtype/Link/Rect[430 600 444 608]/Border[0 0 0]/H/N>> endobj 22830 0 obj <>/P 11766 0 R/Type/Annot/A 23119 0 R/Subtype/Link/Rect[446 600 460 608]/Border[0 0 0]/H/N>> endobj 22831 0 obj <>/P 11766 0 R/Type/Annot/A 23115 0 R/Subtype/Link/Rect[462 600 476 608]/Border[0 0 0]/H/N>> endobj 22832 0 obj <>/P 11766 0 R/Type/Annot/A 37824 0 R/Subtype/Link/Rect[478 600 490 608]/Border[0 0 0]/H/N>> endobj 22833 0 obj <>/P 11766 0 R/Type/Annot/A 23106 0 R/Subtype/Link/Rect[383 590 397 598]/Border[0 0 0]/H/N>> endobj 22834 0 obj <>/P 11766 0 R/Type/Annot/A 23101 0 R/Subtype/Link/Rect[399 590 413 598]/Border[0 0 0]/H/N>> endobj 22835 0 obj <>/P 11766 0 R/Type/Annot/A 23095 0 R/Subtype/Link/Rect[415 590 427 598]/Border[0 0 0]/H/N>> endobj 22836 0 obj <>/P 11766 0 R/Type/Annot/A 23312 0 R/Subtype/Link/Rect[425 580 433 588]/Border[0 0 0]/H/N>> endobj 22837 0 obj <>/P 11766 0 R/Type/Annot/A 23089 0 R/Subtype/Link/Rect[429 570 437 578]/Border[0 0 0]/H/N>> endobj 22838 0 obj <>/P 11766 0 R/Type/Annot/A 23084 0 R/Subtype/Link/Rect[429 560 437 568]/Border[0 0 0]/H/N>> endobj 22839 0 obj <>/P 11766 0 R/Type/Annot/A 23081 0 R/Subtype/Link/Rect[387 550 399 558]/Border[0 0 0]/H/N>> endobj 22840 0 obj <>/P 11766 0 R/Type/Annot/A 37741 0 R/Subtype/Link/Rect[429 540 443 548]/Border[0 0 0]/H/N>> endobj 22841 0 obj <>/P 11766 0 R/Type/Annot/A 23073 0 R/Subtype/Link/Rect[445 540 459 548]/Border[0 0 0]/H/N>> endobj 22842 0 obj <>/P 11766 0 R/Type/Annot/A 37728 0 R/Subtype/Link/Rect[461 540 473 548]/Border[0 0 0]/H/N>> endobj 22843 0 obj <>/P 11766 0 R/Type/Annot/A 37723 0 R/Subtype/Link/Rect[398 530 410 538]/Border[0 0 0]/H/N>> endobj 22844 0 obj <>/P 11766 0 R/Type/Annot/A 23338 0 R/Subtype/Link/Rect[461 510 471 518]/Border[0 0 0]/H/N>> endobj 22845 0 obj <>/P 11766 0 R/Type/Annot/A 23334 0 R/Subtype/Link/Rect[473 510 483 518]/Border[0 0 0]/H/N>> endobj 22846 0 obj <>/P 11766 0 R/Type/Annot/A 37696 0 R/Subtype/Link/Rect[485 510 495 518]/Border[0 0 0]/H/N>> endobj 22847 0 obj <>/P 11766 0 R/Type/Annot/A 37690 0 R/Subtype/Link/Rect[497 510 511 518]/Border[0 0 0]/H/N>> endobj 22848 0 obj <>/P 11766 0 R/Type/Annot/A 23321 0 R/Subtype/Link/Rect[359 500 371 508]/Border[0 0 0]/H/N>> endobj 22849 0 obj <>/P 11766 0 R/Type/Annot/A 23315 0 R/Subtype/Link/Rect[386 490 396 498]/Border[0 0 0]/H/N>> endobj 22850 0 obj <>/P 11766 0 R/Type/Annot/A 23310 0 R/Subtype/Link/Rect[398 490 412 498]/Border[0 0 0]/H/N>> endobj 22851 0 obj <>/P 11766 0 R/Type/Annot/A 23306 0 R/Subtype/Link/Rect[414 490 428 498]/Border[0 0 0]/H/N>> endobj 22852 0 obj <>/P 11766 0 R/Type/Annot/A 23300 0 R/Subtype/Link/Rect[430 490 442 498]/Border[0 0 0]/H/N>> endobj 22853 0 obj <>/P 11766 0 R/Type/Annot/A 23297 0 R/Subtype/Link/Rect[378 480 386 488]/Border[0 0 0]/H/N>> endobj 22854 0 obj <>/P 11766 0 R/Type/Annot/A 23292 0 R/Subtype/Link/Rect[432 470 442 478]/Border[0 0 0]/H/N>> endobj 22855 0 obj <>/P 11766 0 R/Type/Annot/A 23287 0 R/Subtype/Link/Rect[444 470 454 478]/Border[0 0 0]/H/N>> endobj 22856 0 obj <>/P 11766 0 R/Type/Annot/A 23349 0 R/Subtype/Link/Rect[456 470 466 478]/Border[0 0 0]/H/N>> endobj 22857 0 obj <>/P 11766 0 R/Type/Annot/A 23346 0 R/Subtype/Link/Rect[468 470 482 478]/Border[0 0 0]/H/N>> endobj 22858 0 obj <>/P 11766 0 R/Type/Annot/A 23343 0 R/Subtype/Link/Rect[484 470 498 478]/Border[0 0 0]/H/N>> endobj 22859 0 obj <>/P 11766 0 R/Type/Annot/A 23340 0 R/Subtype/Link/Rect[500 470 513 478]/Border[0 0 0]/H/N>> endobj 22860 0 obj <>/P 11766 0 R/Type/Annot/A 23336 0 R/Subtype/Link/Rect[359 460 376 469]/Border[0 0 0]/H/N>> endobj 22861 0 obj <>/P 11766 0 R/Type/Annot/A 23263 0 R/Subtype/Link/Rect[377 460 391 468]/Border[0 0 0]/H/N>> endobj 22862 0 obj <>/P 11766 0 R/Type/Annot/A 23331 0 R/Subtype/Link/Rect[393 460 407 468]/Border[0 0 0]/H/N>> endobj 22863 0 obj <>/P 11766 0 R/Type/Annot/A 23326 0 R/Subtype/Link/Rect[409 460 423 468]/Border[0 0 0]/H/N>> endobj 22864 0 obj <>/P 11766 0 R/Type/Annot/A 23324 0 R/Subtype/Link/Rect[425 460 437 468]/Border[0 0 0]/H/N>> endobj 22865 0 obj <>/P 11766 0 R/Type/Annot/A 23318 0 R/Subtype/Link/Rect[491 450 501 458]/Border[0 0 0]/H/N>> endobj 22866 0 obj <>/P 11766 0 R/Type/Annot/A 23314 0 R/Subtype/Link/Rect[359 440 372 449]/Border[0 0 0]/H/N>> endobj 22867 0 obj <>/P 11766 0 R/Type/Annot/A 23309 0 R/Subtype/Link/Rect[373 440 383 448]/Border[0 0 0]/H/N>> endobj 22868 0 obj <>/P 11766 0 R/Type/Annot/A 23304 0 R/Subtype/Link/Rect[385 440 395 448]/Border[0 0 0]/H/N>> endobj 22869 0 obj <>/P 11766 0 R/Type/Annot/A 23299 0 R/Subtype/Link/Rect[397 440 407 448]/Border[0 0 0]/H/N>> endobj 22870 0 obj <>/P 11766 0 R/Type/Annot/A 23296 0 R/Subtype/Link/Rect[409 440 421 449]/Border[0 0 0]/H/N>> endobj 22871 0 obj <>/P 11766 0 R/Type/Annot/A 23290 0 R/Subtype/Link/Rect[422 440 432 448]/Border[0 0 0]/H/N>> endobj 22872 0 obj <>/P 11766 0 R/Type/Annot/A 23286 0 R/Subtype/Link/Rect[434 440 447 449]/Border[0 0 0]/H/N>> endobj 22873 0 obj <>/P 11766 0 R/Type/Annot/A 23282 0 R/Subtype/Link/Rect[447 440 457 448]/Border[0 0 0]/H/N>> endobj 22874 0 obj <>/P 11766 0 R/Type/Annot/A 23279 0 R/Subtype/Link/Rect[459 440 472 449]/Border[0 0 0]/H/N>> endobj 22875 0 obj <>/P 11766 0 R/Type/Annot/A 36792 0 R/Subtype/Link/Rect[472 440 482 448]/Border[0 0 0]/H/N>> endobj 22876 0 obj <>/P 11766 0 R/Type/Annot/A 23273 0 R/Subtype/Link/Rect[484 440 494 448]/Border[0 0 0]/H/N>> endobj 22877 0 obj <>/P 11766 0 R/Type/Annot/A 23268 0 R/Subtype/Link/Rect[496 440 506 448]/Border[0 0 0]/H/N>> endobj 22878 0 obj <>/P 11766 0 R/Type/Annot/A 23265 0 R/Subtype/Link/Rect[508 440 518 448]/Border[0 0 0]/H/N>> endobj 22879 0 obj <>/P 11766 0 R/Type/Annot/A 23261 0 R/Subtype/Link/Rect[359 430 369 438]/Border[0 0 0]/H/N>> endobj 22880 0 obj <>/P 11766 0 R/Type/Annot/A 23259 0 R/Subtype/Link/Rect[371 430 381 438]/Border[0 0 0]/H/N>> endobj 22881 0 obj <>/P 11766 0 R/Type/Annot/A 23257 0 R/Subtype/Link/Rect[383 430 397 438]/Border[0 0 0]/H/N>> endobj 22882 0 obj <>/P 11766 0 R/Type/Annot/A 23254 0 R/Subtype/Link/Rect[399 430 413 438]/Border[0 0 0]/H/N>> endobj 22883 0 obj <>/P 11766 0 R/Type/Annot/A 23252 0 R/Subtype/Link/Rect[415 430 429 438]/Border[0 0 0]/H/N>> endobj 22884 0 obj <>/P 11766 0 R/Type/Annot/A 23250 0 R/Subtype/Link/Rect[431 430 445 438]/Border[0 0 0]/H/N>> endobj 22885 0 obj <>/P 11766 0 R/Type/Annot/A 23247 0 R/Subtype/Link/Rect[447 430 461 438]/Border[0 0 0]/H/N>> endobj 22886 0 obj <>/P 11766 0 R/Type/Annot/A 23244 0 R/Subtype/Link/Rect[463 430 477 438]/Border[0 0 0]/H/N>> endobj 22887 0 obj <>/P 11766 0 R/Type/Annot/A 23242 0 R/Subtype/Link/Rect[479 430 493 438]/Border[0 0 0]/H/N>> endobj 22888 0 obj <>/P 11766 0 R/Type/Annot/A 23238 0 R/Subtype/Link/Rect[495 430 509 438]/Border[0 0 0]/H/N>> endobj 22889 0 obj <>/P 11766 0 R/Type/Annot/A 23236 0 R/Subtype/Link/Rect[359 420 376 429]/Border[0 0 0]/H/N>> endobj 22890 0 obj <>/P 11766 0 R/Type/Annot/A 23233 0 R/Subtype/Link/Rect[377 420 391 428]/Border[0 0 0]/H/N>> endobj 22891 0 obj <>/P 11766 0 R/Type/Annot/A 23229 0 R/Subtype/Link/Rect[393 420 407 428]/Border[0 0 0]/H/N>> endobj 22892 0 obj <>/P 11766 0 R/Type/Annot/A 23226 0 R/Subtype/Link/Rect[409 420 423 428]/Border[0 0 0]/H/N>> endobj 22893 0 obj <>/P 11766 0 R/Type/Annot/A 23221 0 R/Subtype/Link/Rect[425 420 441 429]/Border[0 0 0]/H/N>> endobj 22894 0 obj <>/P 11766 0 R/Type/Annot/A 23217 0 R/Subtype/Link/Rect[442 420 456 428]/Border[0 0 0]/H/N>> endobj 22895 0 obj <>/P 11766 0 R/Type/Annot/A 23213 0 R/Subtype/Link/Rect[458 420 472 428]/Border[0 0 0]/H/N>> endobj 22896 0 obj <>/P 11766 0 R/Type/Annot/A 23210 0 R/Subtype/Link/Rect[474 420 490 429]/Border[0 0 0]/H/N>> endobj 22897 0 obj <>/P 11766 0 R/Type/Annot/A 23207 0 R/Subtype/Link/Rect[491 420 505 428]/Border[0 0 0]/H/N>> endobj 22898 0 obj <>/P 11766 0 R/Type/Annot/A 23204 0 R/Subtype/Link/Rect[359 410 376 419]/Border[0 0 0]/H/N>> endobj 22899 0 obj <>/P 11766 0 R/Type/Annot/A 23201 0 R/Subtype/Link/Rect[377 410 391 418]/Border[0 0 0]/H/N>> endobj 22900 0 obj <>/P 11766 0 R/Type/Annot/A 23199 0 R/Subtype/Link/Rect[393 410 407 418]/Border[0 0 0]/H/N>> endobj 22901 0 obj <>/P 11766 0 R/Type/Annot/A 23194 0 R/Subtype/Link/Rect[409 410 423 418]/Border[0 0 0]/H/N>> endobj 22902 0 obj <>/P 11766 0 R/Type/Annot/A 23193 0 R/Subtype/Link/Rect[425 410 441 419]/Border[0 0 0]/H/N>> endobj 22903 0 obj <>/P 11766 0 R/Type/Annot/A 23190 0 R/Subtype/Link/Rect[442 410 456 418]/Border[0 0 0]/H/N>> endobj 22904 0 obj <>/P 11766 0 R/Type/Annot/A 23185 0 R/Subtype/Link/Rect[458 410 472 418]/Border[0 0 0]/H/N>> endobj 22905 0 obj <>/P 11766 0 R/Type/Annot/A 23182 0 R/Subtype/Link/Rect[474 410 488 418]/Border[0 0 0]/H/N>> endobj 22906 0 obj <>/P 11766 0 R/Type/Annot/A 23179 0 R/Subtype/Link/Rect[490 410 504 418]/Border[0 0 0]/H/N>> endobj 22907 0 obj <>/P 11766 0 R/Type/Annot/A 23176 0 R/Subtype/Link/Rect[506 410 519 418]/Border[0 0 0]/H/N>> endobj 22908 0 obj <>/P 11766 0 R/Type/Annot/A 23097 0 R/Subtype/Link/Rect[359 400 373 408]/Border[0 0 0]/H/N>> endobj 22909 0 obj <>/P 11766 0 R/Type/Annot/A 23171 0 R/Subtype/Link/Rect[375 400 389 408]/Border[0 0 0]/H/N>> endobj 22910 0 obj <>/P 11766 0 R/Type/Annot/A 23169 0 R/Subtype/Link/Rect[391 400 405 408]/Border[0 0 0]/H/N>> endobj 22911 0 obj <>/P 11766 0 R/Type/Annot/A 23165 0 R/Subtype/Link/Rect[407 400 421 408]/Border[0 0 0]/H/N>> endobj 22912 0 obj <>/P 11766 0 R/Type/Annot/A 23161 0 R/Subtype/Link/Rect[423 400 437 408]/Border[0 0 0]/H/N>> endobj 22913 0 obj <>/P 11766 0 R/Type/Annot/A 23159 0 R/Subtype/Link/Rect[439 400 453 408]/Border[0 0 0]/H/N>> endobj 22914 0 obj <>/P 11766 0 R/Type/Annot/A 23157 0 R/Subtype/Link/Rect[455 400 469 408]/Border[0 0 0]/H/N>> endobj 22915 0 obj <>/P 11766 0 R/Type/Annot/A 23154 0 R/Subtype/Link/Rect[471 400 485 408]/Border[0 0 0]/H/N>> endobj 22916 0 obj <>/P 11766 0 R/Type/Annot/A 23149 0 R/Subtype/Link/Rect[487 400 504 409]/Border[0 0 0]/H/N>> endobj 22917 0 obj <>/P 11766 0 R/Type/Annot/A 23147 0 R/Subtype/Link/Rect[505 400 519 408]/Border[0 0 0]/H/N>> endobj 22918 0 obj <>/P 11766 0 R/Type/Annot/A 23143 0 R/Subtype/Link/Rect[359 390 373 398]/Border[0 0 0]/H/N>> endobj 22919 0 obj <>/P 11766 0 R/Type/Annot/A 23140 0 R/Subtype/Link/Rect[375 390 392 399]/Border[0 0 0]/H/N>> endobj 22920 0 obj <>/P 11766 0 R/Type/Annot/A 23135 0 R/Subtype/Link/Rect[393 390 407 398]/Border[0 0 0]/H/N>> endobj 22921 0 obj <>/P 11766 0 R/Type/Annot/A 23132 0 R/Subtype/Link/Rect[409 390 423 398]/Border[0 0 0]/H/N>> endobj 22922 0 obj <>/P 11766 0 R/Type/Annot/A 23129 0 R/Subtype/Link/Rect[425 390 439 398]/Border[0 0 0]/H/N>> endobj 22923 0 obj <>/P 11766 0 R/Type/Annot/A 23126 0 R/Subtype/Link/Rect[441 390 455 398]/Border[0 0 0]/H/N>> endobj 22924 0 obj <>/P 11766 0 R/Type/Annot/A 23123 0 R/Subtype/Link/Rect[457 390 471 398]/Border[0 0 0]/H/N>> endobj 22925 0 obj <>/P 11766 0 R/Type/Annot/A 23118 0 R/Subtype/Link/Rect[473 390 487 398]/Border[0 0 0]/H/N>> endobj 22926 0 obj <>/P 11766 0 R/Type/Annot/A 23114 0 R/Subtype/Link/Rect[489 390 503 398]/Border[0 0 0]/H/N>> endobj 22927 0 obj <>/P 11766 0 R/Type/Annot/A 23110 0 R/Subtype/Link/Rect[359 380 376 389]/Border[0 0 0]/H/N>> endobj 22928 0 obj <>/P 11766 0 R/Type/Annot/A 23105 0 R/Subtype/Link/Rect[377 380 391 388]/Border[0 0 0]/H/N>> endobj 22929 0 obj <>/P 11766 0 R/Type/Annot/A 23274 0 R/Subtype/Link/Rect[393 380 409 389]/Border[0 0 0]/H/N>> endobj 22930 0 obj <>/P 11766 0 R/Type/Annot/A 23096 0 R/Subtype/Link/Rect[410 380 424 388]/Border[0 0 0]/H/N>> endobj 22931 0 obj <>/P 11766 0 R/Type/Annot/A 23093 0 R/Subtype/Link/Rect[426 380 440 388]/Border[0 0 0]/H/N>> endobj 22932 0 obj <>/P 11766 0 R/Type/Annot/A 23091 0 R/Subtype/Link/Rect[442 380 456 388]/Border[0 0 0]/H/N>> endobj 22933 0 obj <>/P 11766 0 R/Type/Annot/A 23086 0 R/Subtype/Link/Rect[458 380 475 389]/Border[0 0 0]/H/N>> endobj 22934 0 obj <>/P 11766 0 R/Type/Annot/A 23083 0 R/Subtype/Link/Rect[475 380 489 388]/Border[0 0 0]/H/N>> endobj 22935 0 obj <>/P 11766 0 R/Type/Annot/A 23079 0 R/Subtype/Link/Rect[359 370 376 379]/Border[0 0 0]/H/N>> endobj 22936 0 obj <>/P 11766 0 R/Type/Annot/A 23075 0 R/Subtype/Link/Rect[377 370 391 378]/Border[0 0 0]/H/N>> endobj 22937 0 obj <>/P 11766 0 R/Type/Annot/A 44830 0 R/Subtype/Link/Rect[393 370 407 378]/Border[0 0 0]/H/N>> endobj 22938 0 obj <>/P 11766 0 R/Type/Annot/A 23332 0 R/Subtype/Link/Rect[409 370 423 378]/Border[0 0 0]/H/N>> endobj 22939 0 obj <>/P 11766 0 R/Type/Annot/A 23330 0 R/Subtype/Link/Rect[425 370 439 378]/Border[0 0 0]/H/N>> endobj 22940 0 obj <>/P 11766 0 R/Type/Annot/A 44707 0 R/Subtype/Link/Rect[441 370 455 378]/Border[0 0 0]/H/N>> endobj 22941 0 obj <>/P 11766 0 R/Type/Annot/A 23320 0 R/Subtype/Link/Rect[457 370 471 378]/Border[0 0 0]/H/N>> endobj 22942 0 obj <>/P 11766 0 R/Type/Annot/A 23231 0 R/Subtype/Link/Rect[473 370 487 378]/Border[0 0 0]/H/N>> endobj 22943 0 obj <>/P 11766 0 R/Type/Annot/A 23311 0 R/Subtype/Link/Rect[489 370 503 378]/Border[0 0 0]/H/N>> endobj 22944 0 obj <>/P 11766 0 R/Type/Annot/A 23307 0 R/Subtype/Link/Rect[505 370 519 378]/Border[0 0 0]/H/N>> endobj 22945 0 obj <>/P 11766 0 R/Type/Annot/A 23302 0 R/Subtype/Link/Rect[359 360 373 368]/Border[0 0 0]/H/N>> endobj 22946 0 obj <>/P 11766 0 R/Type/Annot/A 23298 0 R/Subtype/Link/Rect[375 360 389 368]/Border[0 0 0]/H/N>> endobj 22947 0 obj <>/P 11766 0 R/Type/Annot/A 23294 0 R/Subtype/Link/Rect[391 360 405 368]/Border[0 0 0]/H/N>> endobj 22948 0 obj <>/P 11766 0 R/Type/Annot/A 23289 0 R/Subtype/Link/Rect[407 360 421 368]/Border[0 0 0]/H/N>> endobj 22949 0 obj <>/P 11766 0 R/Type/Annot/A 44399 0 R/Subtype/Link/Rect[423 360 440 369]/Border[0 0 0]/H/N>> endobj 22950 0 obj <>/P 11766 0 R/Type/Annot/A 23281 0 R/Subtype/Link/Rect[441 360 455 368]/Border[0 0 0]/H/N>> endobj 22951 0 obj <>/P 11766 0 R/Type/Annot/A 23278 0 R/Subtype/Link/Rect[457 360 471 368]/Border[0 0 0]/H/N>> endobj 22952 0 obj <>/P 11766 0 R/Type/Annot/A 23275 0 R/Subtype/Link/Rect[473 360 487 368]/Border[0 0 0]/H/N>> endobj 22953 0 obj <>/P 11766 0 R/Type/Annot/A 44252 0 R/Subtype/Link/Rect[489 360 503 368]/Border[0 0 0]/H/N>> endobj 22954 0 obj <>/P 11766 0 R/Type/Annot/A 23266 0 R/Subtype/Link/Rect[505 360 517 368]/Border[0 0 0]/H/N>> endobj 22955 0 obj <>/P 11766 0 R/Type/Annot/A 44180 0 R/Subtype/Link/Rect[429 350 443 358]/Border[0 0 0]/H/N>> endobj 22956 0 obj <>/P 11766 0 R/Type/Annot/A 23260 0 R/Subtype/Link/Rect[445 350 459 358]/Border[0 0 0]/H/N>> endobj 22957 0 obj <>/P 11766 0 R/Type/Annot/A 23258 0 R/Subtype/Link/Rect[461 350 475 358]/Border[0 0 0]/H/N>> endobj 22958 0 obj <>/P 11766 0 R/Type/Annot/A 23255 0 R/Subtype/Link/Rect[477 350 491 358]/Border[0 0 0]/H/N>> endobj 22959 0 obj <>/P 11766 0 R/Type/Annot/A 44042 0 R/Subtype/Link/Rect[493 350 505 358]/Border[0 0 0]/H/N>> endobj 22960 0 obj <>/P 11766 0 R/Type/Annot/A 23251 0 R/Subtype/Link/Rect[490 340 498 348]/Border[0 0 0]/H/N>> endobj 22961 0 obj <>/P 11766 0 R/Type/Annot/A 23248 0 R/Subtype/Link/Rect[502 340 510 348]/Border[0 0 0]/H/N>> endobj 22962 0 obj <>/P 11766 0 R/Type/Annot/A 23245 0 R/Subtype/Link/Rect[490 330 498 338]/Border[0 0 0]/H/N>> endobj 22963 0 obj <>/P 11766 0 R/Type/Annot/A 23243 0 R/Subtype/Link/Rect[502 330 512 338]/Border[0 0 0]/H/N>> endobj 22964 0 obj <>/P 11766 0 R/Type/Annot/A 43860 0 R/Subtype/Link/Rect[359 320 369 328]/Border[0 0 0]/H/N>> endobj 22965 0 obj <>/P 11766 0 R/Type/Annot/A 23235 0 R/Subtype/Link/Rect[371 320 385 328]/Border[0 0 0]/H/N>> endobj 22966 0 obj <>/P 11766 0 R/Type/Annot/A 23232 0 R/Subtype/Link/Rect[387 320 401 328]/Border[0 0 0]/H/N>> endobj 22967 0 obj <>/P 11766 0 R/Type/Annot/A 43755 0 R/Subtype/Link/Rect[403 320 417 328]/Border[0 0 0]/H/N>> endobj 22968 0 obj <>/P 11766 0 R/Type/Annot/A 23225 0 R/Subtype/Link/Rect[419 320 436 329]/Border[0 0 0]/H/N>> endobj 22969 0 obj <>/P 11766 0 R/Type/Annot/A 23220 0 R/Subtype/Link/Rect[437 320 451 328]/Border[0 0 0]/H/N>> endobj 22970 0 obj <>/P 11766 0 R/Type/Annot/A 23216 0 R/Subtype/Link/Rect[453 320 467 328]/Border[0 0 0]/H/N>> endobj 22971 0 obj <>/P 11766 0 R/Type/Annot/A 23212 0 R/Subtype/Link/Rect[469 320 483 328]/Border[0 0 0]/H/N>> endobj 22972 0 obj <>/P 11766 0 R/Type/Annot/A 43554 0 R/Subtype/Link/Rect[485 320 501 329]/Border[0 0 0]/H/N>> endobj 22973 0 obj <>/P 11766 0 R/Type/Annot/A 23205 0 R/Subtype/Link/Rect[502 320 516 328]/Border[0 0 0]/H/N>> endobj 22974 0 obj <>/P 11766 0 R/Type/Annot/A 23202 0 R/Subtype/Link/Rect[359 310 373 318]/Border[0 0 0]/H/N>> endobj 22975 0 obj <>/P 11766 0 R/Type/Annot/A 43456 0 R/Subtype/Link/Rect[375 310 392 319]/Border[0 0 0]/H/N>> endobj 22976 0 obj <>/P 11766 0 R/Type/Annot/A 23196 0 R/Subtype/Link/Rect[393 310 407 318]/Border[0 0 0]/H/N>> endobj 22977 0 obj <>/P 11766 0 R/Type/Annot/A 43375 0 R/Subtype/Link/Rect[409 310 423 318]/Border[0 0 0]/H/N>> endobj 22978 0 obj <>/P 11766 0 R/Type/Annot/A 23191 0 R/Subtype/Link/Rect[425 310 439 318]/Border[0 0 0]/H/N>> endobj 22979 0 obj <>/P 11766 0 R/Type/Annot/A 23188 0 R/Subtype/Link/Rect[441 310 455 318]/Border[0 0 0]/H/N>> endobj 22980 0 obj <>/P 11766 0 R/Type/Annot/A 23184 0 R/Subtype/Link/Rect[457 310 473 319]/Border[0 0 0]/H/N>> endobj 22981 0 obj <>/P 11766 0 R/Type/Annot/A 23181 0 R/Subtype/Link/Rect[474 310 488 318]/Border[0 0 0]/H/N>> endobj 22982 0 obj <>/P 11766 0 R/Type/Annot/A 23178 0 R/Subtype/Link/Rect[490 310 504 318]/Border[0 0 0]/H/N>> endobj 22983 0 obj <>/P 11766 0 R/Type/Annot/A 23175 0 R/Subtype/Link/Rect[359 300 373 308]/Border[0 0 0]/H/N>> endobj 22984 0 obj <>/P 11766 0 R/Type/Annot/A 43105 0 R/Subtype/Link/Rect[375 300 389 308]/Border[0 0 0]/H/N>> endobj 22985 0 obj <>/P 11766 0 R/Type/Annot/A 23170 0 R/Subtype/Link/Rect[391 300 403 308]/Border[0 0 0]/H/N>> endobj 22986 0 obj <>/P 11766 0 R/Type/Annot/A 43004 0 R/Subtype/Link/Rect[488 290 501 299]/Border[0 0 0]/H/N>> endobj 22987 0 obj <>/P 11766 0 R/Type/Annot/A 23163 0 R/Subtype/Link/Rect[502 290 512 298]/Border[0 0 0]/H/N>> endobj 22988 0 obj <>/P 11766 0 R/Type/Annot/A 42934 0 R/Subtype/Link/Rect[359 280 371 288]/Border[0 0 0]/H/N>> endobj 22989 0 obj <>/P 11766 0 R/Type/Annot/A 42916 0 R/Subtype/Link/Rect[363 270 373 278]/Border[0 0 0]/H/N>> endobj 22990 0 obj <>/P 11766 0 R/Type/Annot/A 23155 0 R/Subtype/Link/Rect[375 270 389 278]/Border[0 0 0]/H/N>> endobj 22991 0 obj <>/P 11766 0 R/Type/Annot/A 23150 0 R/Subtype/Link/Rect[391 270 405 278]/Border[0 0 0]/H/N>> endobj 22992 0 obj <>/P 11766 0 R/Type/Annot/A 42799 0 R/Subtype/Link/Rect[407 270 421 278]/Border[0 0 0]/H/N>> endobj 22993 0 obj <>/P 11766 0 R/Type/Annot/A 23144 0 R/Subtype/Link/Rect[423 270 437 278]/Border[0 0 0]/H/N>> endobj 22994 0 obj <>/P 11766 0 R/Type/Annot/A 23141 0 R/Subtype/Link/Rect[439 270 456 279]/Border[0 0 0]/H/N>> endobj 22995 0 obj <>/P 11766 0 R/Type/Annot/A 23136 0 R/Subtype/Link/Rect[456 270 470 278]/Border[0 0 0]/H/N>> endobj 22996 0 obj <>/P 11766 0 R/Type/Annot/A 23271 0 R/Subtype/Link/Rect[472 270 486 278]/Border[0 0 0]/H/N>> endobj 22997 0 obj <>/P 11766 0 R/Type/Annot/A 42607 0 R/Subtype/Link/Rect[488 270 500 278]/Border[0 0 0]/H/N>> endobj 22998 0 obj <>/P 11766 0 R/Type/Annot/A 23125 0 R/Subtype/Link/Rect[363 260 373 268]/Border[0 0 0]/H/N>> endobj 22999 0 obj <>/P 11766 0 R/Type/Annot/A 42549 0 R/Subtype/Link/Rect[375 260 389 268]/Border[0 0 0]/H/N>> endobj 23000 0 obj <>/P 11766 0 R/Type/Annot/A 24909 0 R/Subtype/Link/Rect[391 260 405 268]/Border[0 0 0]/H/N>> endobj 23001 0 obj <>/P 11766 0 R/Type/Annot/A 23112 0 R/Subtype/Link/Rect[407 260 421 268]/Border[0 0 0]/H/N>> endobj 23002 0 obj <>/P 11766 0 R/Type/Annot/A 23108 0 R/Subtype/Link/Rect[423 260 437 268]/Border[0 0 0]/H/N>> endobj 23003 0 obj <>/P 11766 0 R/Type/Annot/A 23103 0 R/Subtype/Link/Rect[439 260 453 268]/Border[0 0 0]/H/N>> endobj 23004 0 obj <>/P 11766 0 R/Type/Annot/A 23099 0 R/Subtype/Link/Rect[455 260 469 268]/Border[0 0 0]/H/N>> endobj 23005 0 obj <>/P 11766 0 R/Type/Annot/A 42323 0 R/Subtype/Link/Rect[471 260 485 268]/Border[0 0 0]/H/N>> endobj 23006 0 obj <>/P 11766 0 R/Type/Annot/A 42256 0 R/Subtype/Link/Rect[487 260 501 268]/Border[0 0 0]/H/N>> endobj 23007 0 obj <>/P 11766 0 R/Type/Annot/A 23088 0 R/Subtype/Link/Rect[503 260 517 268]/Border[0 0 0]/H/N>> endobj 23008 0 obj <>/P 11766 0 R/Type/Annot/A 42196 0 R/Subtype/Link/Rect[359 250 373 258]/Border[0 0 0]/H/N>> endobj 23009 0 obj <>/P 11766 0 R/Type/Annot/A 42142 0 R/Subtype/Link/Rect[375 250 389 258]/Border[0 0 0]/H/N>> endobj 23010 0 obj <>/P 11766 0 R/Type/Annot/A 23077 0 R/Subtype/Link/Rect[391 250 405 258]/Border[0 0 0]/H/N>> endobj 23011 0 obj <>/P 11766 0 R/Type/Annot/A 23072 0 R/Subtype/Link/Rect[407 250 421 258]/Border[0 0 0]/H/N>> endobj 23012 0 obj <>/P 11766 0 R/Type/Annot/A 23327 0 R/Subtype/Link/Rect[423 250 437 258]/Border[0 0 0]/H/N>> endobj 23013 0 obj <>/P 11766 0 R/Type/Annot/A 23323 0 R/Subtype/Link/Rect[439 250 451 258]/Border[0 0 0]/H/N>> endobj 23014 0 obj <>/P 11766 0 R/Type/Annot/A 23317 0 R/Subtype/Link/Rect[388 220 398 228]/Border[0 0 0]/H/N>> endobj 23015 0 obj <>/P 11766 0 R/Type/Annot/A 23313 0 R/Subtype/Link/Rect[400 220 410 228]/Border[0 0 0]/H/N>> endobj 23016 0 obj <>/P 11766 0 R/Type/Annot/A 23308 0 R/Subtype/Link/Rect[412 220 424 228]/Border[0 0 0]/H/N>> endobj 23017 0 obj <>/P 11766 0 R/Type/Annot/A 23303 0 R/Subtype/Link/Rect[420 210 426 218]/Border[0 0 0]/H/N>> endobj 23018 0 obj <>/P 11766 0 R/Type/Annot/A 41744 0 R/Subtype/Link/Rect[428 210 438 218]/Border[0 0 0]/H/N>> endobj 23019 0 obj <>/P 11766 0 R/Type/Annot/A 23295 0 R/Subtype/Link/Rect[440 210 450 218]/Border[0 0 0]/H/N>> endobj 23020 0 obj <>/P 11766 0 R/Type/Annot/A 41659 0 R/Subtype/Link/Rect[452 210 464 219]/Border[0 0 0]/H/N>> endobj 23021 0 obj <>/P 11766 0 R/Type/Annot/A 23285 0 R/Subtype/Link/Rect[465 210 475 218]/Border[0 0 0]/H/N>> endobj 23022 0 obj <>/P 11766 0 R/Type/Annot/A 23280 0 R/Subtype/Link/Rect[477 210 487 218]/Border[0 0 0]/H/N>> endobj 23023 0 obj <>/P 11766 0 R/Type/Annot/A 23277 0 R/Subtype/Link/Rect[489 210 499 218]/Border[0 0 0]/H/N>> endobj 23024 0 obj <>/P 11766 0 R/Type/Annot/A 35843 0 R/Subtype/Link/Rect[501 210 511 218]/Border[0 0 0]/H/N>> endobj 23025 0 obj <>/P 11766 0 R/Type/Annot/A 23270 0 R/Subtype/Link/Rect[359 200 369 208]/Border[0 0 0]/H/N>> endobj 23026 0 obj <>/P 11766 0 R/Type/Annot/A 41424 0 R/Subtype/Link/Rect[371 200 385 208]/Border[0 0 0]/H/N>> endobj 23027 0 obj <>/P 11766 0 R/Type/Annot/A 23262 0 R/Subtype/Link/Rect[387 200 401 208]/Border[0 0 0]/H/N>> endobj 23028 0 obj <>/P 11766 0 R/Type/Annot/A 41336 0 R/Subtype/Link/Rect[403 200 417 208]/Border[0 0 0]/H/N>> endobj 23029 0 obj <>/P 11766 0 R/Type/Annot/A 41299 0 R/Subtype/Link/Rect[419 200 433 208]/Border[0 0 0]/H/N>> endobj 23030 0 obj <>/P 11766 0 R/Type/Annot/A 23253 0 R/Subtype/Link/Rect[435 200 449 208]/Border[0 0 0]/H/N>> endobj 23031 0 obj <>/P 11766 0 R/Type/Annot/A 41236 0 R/Subtype/Link/Rect[451 200 465 208]/Border[0 0 0]/H/N>> endobj 23032 0 obj <>/P 11766 0 R/Type/Annot/A 41194 0 R/Subtype/Link/Rect[467 200 481 208]/Border[0 0 0]/H/N>> endobj 23033 0 obj <>/P 11766 0 R/Type/Annot/A 41167 0 R/Subtype/Link/Rect[483 200 497 208]/Border[0 0 0]/H/N>> endobj 23034 0 obj <>/P 11766 0 R/Type/Annot/A 41147 0 R/Subtype/Link/Rect[499 200 513 208]/Border[0 0 0]/H/N>> endobj 23035 0 obj <>/P 11766 0 R/Type/Annot/A 23240 0 R/Subtype/Link/Rect[359 190 373 198]/Border[0 0 0]/H/N>> endobj 23036 0 obj <>/P 11766 0 R/Type/Annot/A 37579 0 R/Subtype/Link/Rect[375 190 389 198]/Border[0 0 0]/H/N>> endobj 23037 0 obj <>/P 11766 0 R/Type/Annot/A 23234 0 R/Subtype/Link/Rect[391 190 405 198]/Border[0 0 0]/H/N>> endobj 23038 0 obj <>/P 11766 0 R/Type/Annot/A 40724 0 R/Subtype/Link/Rect[407 190 421 198]/Border[0 0 0]/H/N>> endobj 23039 0 obj <>/P 11766 0 R/Type/Annot/A 23227 0 R/Subtype/Link/Rect[423 190 437 198]/Border[0 0 0]/H/N>> endobj 23040 0 obj <>/P 11766 0 R/Type/Annot/A 23223 0 R/Subtype/Link/Rect[439 190 456 199]/Border[0 0 0]/H/N>> endobj 23041 0 obj <>/P 11766 0 R/Type/Annot/A 23218 0 R/Subtype/Link/Rect[457 190 471 198]/Border[0 0 0]/H/N>> endobj 23042 0 obj <>/P 11766 0 R/Type/Annot/A 23214 0 R/Subtype/Link/Rect[473 190 487 198]/Border[0 0 0]/H/N>> endobj 23043 0 obj <>/P 11766 0 R/Type/Annot/A 39509 0 R/Subtype/Link/Rect[489 190 503 198]/Border[0 0 0]/H/N>> endobj 23044 0 obj <>/P 11766 0 R/Type/Annot/A 38984 0 R/Subtype/Link/Rect[505 190 519 198]/Border[0 0 0]/H/N>> endobj 23045 0 obj <>/P 11766 0 R/Type/Annot/A 37532 0 R/Subtype/Link/Rect[359 180 373 188]/Border[0 0 0]/H/N>> endobj 23046 0 obj <>/P 11766 0 R/Type/Annot/A 38411 0 R/Subtype/Link/Rect[375 180 389 188]/Border[0 0 0]/H/N>> endobj 23047 0 obj <>/P 11766 0 R/Type/Annot/A 23198 0 R/Subtype/Link/Rect[391 180 403 188]/Border[0 0 0]/H/N>> endobj 23048 0 obj <>/P 11766 0 R/Type/Annot/A 38322 0 R/Subtype/Link/Rect[403 170 415 178]/Border[0 0 0]/H/N>> endobj 23049 0 obj <>/P 11766 0 R/Type/Annot/A 23192 0 R/Subtype/Link/Rect[415 160 427 168]/Border[0 0 0]/H/N>> endobj 23050 0 obj <>/P 11766 0 R/Type/Annot/A 23189 0 R/Subtype/Link/Rect[415 150 427 158]/Border[0 0 0]/H/N>> endobj 23051 0 obj <>/P 11766 0 R/Type/Annot/A 36810 0 R/Subtype/Link/Rect[185 608 202 617]/Border[0 0 0]/H/N>> endobj 23052 0 obj <>/P 11766 0 R/Type/Annot/A 36776 0 R/Subtype/Link/Rect[185 599 202 608]/Border[0 0 0]/H/N>> endobj 23053 0 obj <>/P 11766 0 R/Type/Annot/A 38209 0 R/Subtype/Link/Rect[183 588 201 597]/Border[0 0 0]/H/N>> endobj 23054 0 obj <>/P 11766 0 R/Type/Annot/A 36694 0 R/Subtype/Link/Rect[185 578 196 587]/Border[0 0 0]/H/N>> endobj 23055 0 obj <>/P 11766 0 R/Type/Annot/A 23173 0 R/Subtype/Link/Rect[198 578 210 587]/Border[0 0 0]/H/N>> endobj 23056 0 obj <>/P 11766 0 R/Type/Annot/A 35872 0 R/Subtype/Link/Rect[214 578 231 587]/Border[0 0 0]/H/N>> endobj 23057 0 obj <>/P 11766 0 R/Type/Annot/A 23167 0 R/Subtype/Link/Rect[233 578 252 587]/Border[0 0 0]/H/N>> endobj 23058 0 obj <>/P 11766 0 R/Type/Annot/A 35059 0 R/Subtype/Link/Rect[408 508 423 517]/Border[0 0 0]/H/N>> endobj 23059 0 obj <>/P 11766 0 R/Type/Annot/A 38132 0 R/Subtype/Link/Rect[423 508 438 517]/Border[0 0 0]/H/N>> endobj 23060 0 obj <>/P 11766 0 R/Type/Annot/A 23267 0 R/Subtype/Link/Rect[440 508 459 517]/Border[0 0 0]/H/N>> endobj 23061 0 obj <>/P 11766 0 R/Type/Annot/A 23153 0 R/Subtype/Link/Rect[457 448 470 457]/Border[0 0 0]/H/N>> endobj 23062 0 obj <>/P 11766 0 R/Type/Annot/A 33657 0 R/Subtype/Link/Rect[472 448 489 457]/Border[0 0 0]/H/N>> endobj 23063 0 obj <>/P 11766 0 R/Type/Annot/A 23146 0 R/Subtype/Link/Rect[368 488 384 497]/Border[0 0 0]/H/N>> endobj 23064 0 obj <>/P 11766 0 R/Type/Annot/A 23142 0 R/Subtype/Link/Rect[173 438 188 447]/Border[0 0 0]/H/N>> endobj 23065 0 obj <>/P 11766 0 R/Type/Annot/A 23139 0 R/Subtype/Link/Rect[474 288 487 297]/Border[0 0 0]/H/N>> endobj 23066 0 obj <>/P 11766 0 R/Type/Annot/A 32574 0 R/Subtype/Link/Rect[369 238 384 247]/Border[0 0 0]/H/N>> endobj 23067 0 obj <>/P 11766 0 R/Type/Annot/A 37999 0 R/Subtype/Link/Rect[369 228 384 237]/Border[0 0 0]/H/N>> endobj 23068 0 obj <>/P 11766 0 R/Type/Annot/A 31852 0 R/Subtype/Link/Rect[369 218 386 227]/Border[0 0 0]/H/N>> endobj 23069 0 obj <>/P 11766 0 R/Type/Annot/A 31798 0 R/Subtype/Link/Rect[363 208 378 217]/Border[0 0 0]/H/N>> endobj 23070 0 obj <>/P 11766 0 R/Type/Annot/A 23120 0 R/Subtype/Link/Rect[380 208 395 217]/Border[0 0 0]/H/N>> endobj 23071 0 obj <>/P 11766 0 R/Type/Annot/A 37962 0 R/Subtype/Link/Rect[399 208 418 217]/Border[0 0 0]/H/N>> endobj 23072 0 obj <> endobj 23073 0 obj <> endobj 23074 0 obj <> endobj 23075 0 obj <> endobj 23076 0 obj <> endobj 23077 0 obj <> endobj 23078 0 obj <> endobj 23079 0 obj <> endobj 23080 0 obj <> endobj 23081 0 obj <> endobj 23082 0 obj <> endobj 23083 0 obj <> endobj 23084 0 obj <> endobj 23085 0 obj <> endobj 23086 0 obj <> endobj 23087 0 obj <> endobj 23088 0 obj <> endobj 23089 0 obj <> endobj 23090 0 obj <> endobj 23091 0 obj <> endobj 23092 0 obj <> endobj 23093 0 obj <> endobj 23094 0 obj <> endobj 23095 0 obj <> endobj 23096 0 obj <> endobj 23097 0 obj <> endobj 23098 0 obj <> endobj 23099 0 obj <> endobj 23100 0 obj <> endobj 23101 0 obj <> endobj 23102 0 obj <> endobj 23103 0 obj <> endobj 23104 0 obj <> endobj 23105 0 obj <> endobj 23106 0 obj <> endobj 23107 0 obj <> endobj 23108 0 obj <> endobj 23109 0 obj <> endobj 23110 0 obj <> endobj 23111 0 obj <> endobj 23112 0 obj <> endobj 23113 0 obj <> endobj 23114 0 obj <> endobj 23115 0 obj <> endobj 23116 0 obj <> endobj 23117 0 obj <> endobj 23118 0 obj <> endobj 23119 0 obj <> endobj 23120 0 obj <> endobj 23121 0 obj <> endobj 23122 0 obj <> endobj 23123 0 obj <> endobj 23124 0 obj <> endobj 23125 0 obj <> endobj 23126 0 obj <> endobj 23127 0 obj <> endobj 23128 0 obj <> endobj 23129 0 obj <> endobj 23130 0 obj <> endobj 23131 0 obj <> endobj 23132 0 obj <> endobj 23133 0 obj <> endobj 23134 0 obj <> endobj 23135 0 obj <> endobj 23136 0 obj <> endobj 23137 0 obj <> endobj 23138 0 obj <> endobj 23139 0 obj <> endobj 23140 0 obj <> endobj 23141 0 obj <> endobj 23142 0 obj <> endobj 23143 0 obj <> endobj 23144 0 obj <> endobj 23145 0 obj <> endobj 23146 0 obj <> endobj 23147 0 obj <> endobj 23148 0 obj <> endobj 23149 0 obj <> endobj 23150 0 obj <> endobj 23151 0 obj <> endobj 23152 0 obj <> endobj 23153 0 obj <> endobj 23154 0 obj <> endobj 23155 0 obj <> endobj 23156 0 obj <> endobj 23157 0 obj <> endobj 23158 0 obj <> endobj 23159 0 obj <> endobj 23160 0 obj <> endobj 23161 0 obj <> endobj 23162 0 obj <> endobj 23163 0 obj <> endobj 23164 0 obj <> endobj 23165 0 obj <> endobj 23166 0 obj <> endobj 23167 0 obj <> endobj 23168 0 obj <> endobj 23169 0 obj <> endobj 23170 0 obj <> endobj 23171 0 obj <> endobj 23172 0 obj <> endobj 23173 0 obj <> endobj 23174 0 obj <> endobj 23175 0 obj <> endobj 23176 0 obj <> endobj 23177 0 obj <> endobj 23178 0 obj <> endobj 23179 0 obj <> endobj 23180 0 obj <> endobj 23181 0 obj <> endobj 23182 0 obj <> endobj 23183 0 obj <> endobj 23184 0 obj <> endobj 23185 0 obj <> endobj 23186 0 obj <> endobj 23187 0 obj <> endobj 23188 0 obj <> endobj 23189 0 obj <> endobj 23190 0 obj <> endobj 23191 0 obj <> endobj 23192 0 obj <> endobj 23193 0 obj <> endobj 23194 0 obj <> endobj 23195 0 obj <> endobj 23196 0 obj <> endobj 23197 0 obj <> endobj 23198 0 obj <> endobj 23199 0 obj <> endobj 23200 0 obj <> endobj 23201 0 obj <> endobj 23202 0 obj <> endobj 23203 0 obj <> endobj 23204 0 obj <> endobj 23205 0 obj <> endobj 23206 0 obj <> endobj 23207 0 obj <> endobj 23208 0 obj <> endobj 23209 0 obj <> endobj 23210 0 obj <> endobj 23211 0 obj <> endobj 23212 0 obj <> endobj 23213 0 obj <> endobj 23214 0 obj <> endobj 23215 0 obj <> endobj 23216 0 obj <> endobj 23217 0 obj <> endobj 23218 0 obj <> endobj 23219 0 obj <> endobj 23220 0 obj <> endobj 23221 0 obj <> endobj 23222 0 obj <> endobj 23223 0 obj <> endobj 23224 0 obj <> endobj 23225 0 obj <> endobj 23226 0 obj <> endobj 23227 0 obj <> endobj 23228 0 obj <> endobj 23229 0 obj <> endobj 23230 0 obj <> endobj 23231 0 obj <> endobj 23232 0 obj <> endobj 23233 0 obj <> endobj 23234 0 obj <> endobj 23235 0 obj <> endobj 23236 0 obj <> endobj 23237 0 obj <> endobj 23238 0 obj <> endobj 23239 0 obj <> endobj 23240 0 obj <> endobj 23241 0 obj <> endobj 23242 0 obj <> endobj 23243 0 obj <> endobj 23244 0 obj <> endobj 23245 0 obj <> endobj 23246 0 obj <> endobj 23247 0 obj <> endobj 23248 0 obj <> endobj 23249 0 obj <> endobj 23250 0 obj <> endobj 23251 0 obj <> endobj 23252 0 obj <> endobj 23253 0 obj <> endobj 23254 0 obj <> endobj 23255 0 obj <> endobj 23256 0 obj <> endobj 23257 0 obj <> endobj 23258 0 obj <> endobj 23259 0 obj <> endobj 23260 0 obj <> endobj 23261 0 obj <> endobj 23262 0 obj <> endobj 23263 0 obj <> endobj 23264 0 obj <> endobj 23265 0 obj <> endobj 23266 0 obj <> endobj 23267 0 obj <> endobj 23268 0 obj <> endobj 23269 0 obj <> endobj 23270 0 obj <> endobj 23271 0 obj <> endobj 23272 0 obj <> endobj 23273 0 obj <> endobj 23274 0 obj <> endobj 23275 0 obj <> endobj 23276 0 obj <> endobj 23277 0 obj <> endobj 23278 0 obj <> endobj 23279 0 obj <> endobj 23280 0 obj <> endobj 23281 0 obj <> endobj 23282 0 obj <> endobj 23283 0 obj <> endobj 23284 0 obj <> endobj 23285 0 obj <> endobj 23286 0 obj <> endobj 23287 0 obj <> endobj 23288 0 obj <> endobj 23289 0 obj <> endobj 23290 0 obj <> endobj 23291 0 obj <> endobj 23292 0 obj <> endobj 23293 0 obj <> endobj 23294 0 obj <> endobj 23295 0 obj <> endobj 23296 0 obj <> endobj 23297 0 obj <> endobj 23298 0 obj <> endobj 23299 0 obj <> endobj 23300 0 obj <> endobj 23301 0 obj <> endobj 23302 0 obj <> endobj 23303 0 obj <> endobj 23304 0 obj <> endobj 23305 0 obj <> endobj 23306 0 obj <> endobj 23307 0 obj <> endobj 23308 0 obj <> endobj 23309 0 obj <> endobj 23310 0 obj <> endobj 23311 0 obj <> endobj 23312 0 obj <> endobj 23313 0 obj <> endobj 23314 0 obj <> endobj 23315 0 obj <> endobj 23316 0 obj <> endobj 23317 0 obj <> endobj 23318 0 obj <> endobj 23319 0 obj <> endobj 23320 0 obj <> endobj 23321 0 obj <> endobj 23322 0 obj <> endobj 23323 0 obj <> endobj 23324 0 obj <> endobj 23325 0 obj <> endobj 23326 0 obj <> endobj 23327 0 obj <> endobj 23328 0 obj <> endobj 23329 0 obj <> endobj 23330 0 obj <> endobj 23331 0 obj <> endobj 23332 0 obj <> endobj 23333 0 obj <> endobj 23334 0 obj <> endobj 23335 0 obj <> endobj 23336 0 obj <> endobj 23337 0 obj <> endobj 23338 0 obj <> endobj 23339 0 obj <> endobj 23340 0 obj <> endobj 23341 0 obj <> endobj 23342 0 obj <> endobj 23343 0 obj <> endobj 23344 0 obj <> endobj 23345 0 obj <> endobj 23346 0 obj <> endobj 23347 0 obj <> endobj 23348 0 obj <> endobj 23349 0 obj <> endobj 23350 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 23351 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 23352 0 obj <> endobj 23353 0 obj <> endobj 23354 0 obj <> endobj 23355 0 obj <> endobj 23356 0 obj <> endobj 23357 0 obj <> endobj 23358 0 obj <> endobj 23359 0 obj <> stream q /X1 Do Q q endstream endobj 23360 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 23361 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 23362 0 obj <> stream HW]oܺ}ׯCQm,KEbAҦ- yM*J[I7@|gDJ+Ekt<$ e7yWwDFI/L"J9R):|fM]7u]O}mWU[U͛O&$K)(`>YlsBW#Mi WQ2>tH"*x^L?߇V=*ձy7Y,YݗAwe1_o&s{i D3Kb~ט=i<ESP(S$H.,8V,C"X$Ż8{9{^x^x^x%^z%^z^y^y^ySB}O >#gPy3B} >'P_x Bل0NŐw1`u1d] YzZCs-'\b"{k] Xk] Yzϵp!P﹖u1`u1d=rµ.,BZNŀEŐE\ ׺k9Z;p!Wb"\bջ|.,µ.,BZAŐE\+׺׺kZCs \b"\b"{k] Yzϵpp!PVu1d= µ.v$ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d=Jµ.,BZIŀEŐE\+ ׺k%ZZCs$\b"{k](µ.,_p!WbQQonMpIIS#QҴ`CpVOꚧ*Fl> ̿jO]]Y5m\};޾~olmy> ~vꓜj4zCk;ږu %C{>)b<L#3$O6 ׻ Snf8\'ICfك5t$y8v(e2Adf hJYg?`<폝y4, dÆvUaW7/պ7?f2ޏ] 9,ťM0 u31Q-$?s5ٓynNCY }~Σuf;hjPP#n" (M"|SСޛjd??D8ǡP_q+;sޙbP[Yu 8J'zp̋yN鴹tRm9m3M])=;y3CMrAs:<ԏSKMgLy& ~"9 }mb<$M5xF|X9sZsz jCT:k=h@c㴮(NrgM( 0ҺHXʾmfCܵQq zm3y<ԛ#M`06~# 䞚:[+xr=4,܀&e>ڢ8 ˁ_Y$LΝ`nx¸ M0/tCuCquq˓L8EӀnoE<'24/IJxWyniԺt9KĴb*./|[zt.`vBPw6.6ڶJW 'MW*IOxN|ogzտq5̣i /u%\UL>ӰpOޭr5ZYuhI^ l$y,<\D<ʆU af7^˞bqXavհ70qq6o]ӜX1U?^\!~&yGn8. tOyEZRi;LȷFRd\twNM \ tտ)߼#gF_qPEvtrCѓr9^BDj<x6n>ח+,i6Sa#j10:J9m6eҽk9|2)e#n8A9V,I ;. G^ε'7imѥѭOӡ,x]B-_,—m6Z%TGos^۽wj9Mnj˓0 ˉ~G6ebxRjC \S~&އctˊu7,Zv/lxL~ Ob%q?ƫqWP;hư,Y[ECbwg/Ӄ3 8H:GsɐP 5xxXH#q$o *QOK tʪٖͺ%3 yq_*Vr~w,vۗT/ I-N՞ E%bDֽ梞O \'<0yk^ŝFWYT:"2#%(6K!/ZcD} pꈑlJYJAt  ĹD;Cu{ 6Xz5 إĨtbb*>ܼt6"2CrZ+{gdw#FDd~ȋ/%xZaȚ400Ԍ&3u>C}}yÿAα"Qb#?to.nov;W-m z!6OZ[Ҍ@ +gD ( ,dרHA6VFCy~Ss$qg=Rv`fPcΈQbGm`Bw>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 23364 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 23365 0 obj <> endobj 23366 0 obj <> stream q /X1 Do Q q endstream endobj 23367 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 23368 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 23369 0 obj <> stream H[oF+.zolEڵ+i$0NZRtRH e $G{gWE)^;9|w$x0;P6TNڊ(5aE0Ңȃ?4[X{ngxx$q\o 2uiM`)pHd*Iig>ϧbje8jݯ念rf$}̤II >!&}BҧLO)IwLz¬b$ X.kbŚwX.kbŚw1 kŤ'jZkŤ'jZyPj.ZyPj]LzBfj]LzBfŚw1 k0bͻhzkEcͻhzkŤ'ZyPkj.ZyPkj]LzBaj]LzBaŚw1 kbŚw1 kŤ'ZMP5.ZyM5.ZyPkj]LzBej]LzBeŚw1 kbŚw1 kŤ'ZZkŤ'ZZyPkj6 "ZyM5p1bͻhzyMBt;YeZ(iBi"N@;i6lIұE~u}9+WeY\.r~Uu=(ԗe+9n0dCm망d*݁}sNjed_k[W]Y߂&6%P'tI -~f#*)yq7kGg9|q?rv]U5gpps@*Zhwt.og"/ 1| 1=&ޯ :ٹ/f_e$}-46L<+ggPtۢbF@-ʳ^D*m.3#mIň~dVQw2mmz2 RҦI f"y9<=8)tey|DPl'VVQN~c!i!)Bm*Ϭ٘~ٴ޷ %qFRڃ|uC**z"hz8.< [?V\#r4.Ƌ2<^/m9BkV&ҖV=s-ulxm9ME5؆_T'j#8u$ih[&˶6zc(Ծ7mzzch47RFzcc{S;x:&')dSΎGa8C Qm7Cϯn^^}=>ZTC323eĴ%}#KƯĩkhb Vڡ7Mζ]kZ~n֦d@4gw'Ƨjendstream endobj 23370 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 23371 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 23372 0 obj <> endobj 23373 0 obj <> endobj 23374 0 obj <> endobj 23375 0 obj <> endobj 23376 0 obj <> stream q /X1 Do Q q endstream endobj 23377 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 23378 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 23379 0 obj <> stream HWm۶_.s$dN&OvrjIDW)qҹ``Y,^:wo^#^*#˂ʰj)gwK[%,ڔ]zlCC`:^U'wsA3VdlMEW7;vBb5Br qjjп,]W:[n~hSq916J~'1.{dR7'}/ؒ%θJa%a6)a'E1E)F ͡bw()c9TJ0w)c(EW{EW{M{M{M{C7{C7`FS}O i>#g`Es} y>'{K{K`_D }YI۶"Tm6@6cC Pj͡jZls(}ZEE`V6"GUj Pj͡jZls(}ZEE`V6"GUjmhBP1{lZls=9TE`V6"GՄj Pj͡j5Zls(}ZME`V6"GՄj Pj͡j5Zls(}ZM۶!Tm6@6cC Pj͡j Zls(}ZCE`6"G5j Pj͡j Zls(}ZCE`6"G5jmj͡b(BP1{ls}0Lb'wf?&0xe2cm2kqѱcݳ?eG-ݼȄzWy?=N-?N}˺970\onr݀sξ#s^?Nr7ͪ1=hEivV |[-ݲem[T}Xc?e)z(HU6- /YmfWGۭ6 =ӪH.ɲ3x2S+$_~2 im6Ձ^ CuUvȯ'uJɓ_jJDR9F!=p O_q 5] sl~Gg)5 =A5Cu1m80C?h]C-o }3"U.7jڮچPoaǧzhLA?պ c3k6yjK*<,?v{(@53Re8"w]nU-qZóLAAXm ӌlEfI^V Ġ:-uP.IKi+HE\835}uqW"s|jǠ3 4EN!0]H^1 woo̞ %*.U/RSf6e{)Hal4BnڲLBfޢ `T^c&vk:՚]m4,ZV!є.lMpp]qiھfrs!7`4 OmW{ǥQ"}&<\0<\ej%ߜ®ɖ Yx~ U_}waWM UVQ\M)qOu^ dL $/=r@ x1w/na&I3fEw78]?Rμ%?+_?Wo/4azW W"U K7r8)gQh;vvҳ ov`XW mM<5d\h z=3f I3츟qZ͖UWWZ%QQjntX_PE6]V-V9/rY,۰`plC=\06;#%/ HAg0nfwpY >coJD>{=FsJŵv%حF;Rr&m=+BcU^{Nm{R!/%Y~c 'f3|3!rE*gK?WYup: DbKw{ [\}sbB昵U֕CwzcQBa:cR׺`z,';:,ߴՎMialK*J&b8?2 A婾GcL`@'1a^CoR1;lוyx<"qnxKibubq U@gNQybY['2]lVД"gk1#h xg}R%J3\bݣD,DŰWɒ?CԶm˒QS <á-y}E^X E-A_zpGq1)w%WN”Ց\+3Wz q :꺝9 ZJf9yp21UܿݩZ0@}>1ϙI <32.vp,K[Nm7(z!L* rVA_jr:A#60d39Ox(s2=JmeX[iTi{*$Z5Qzx`0\9ȿ/1AeLBv{g%Qv-]7*;Lt%U/8Жqݾ33/ې"4eF tjg!{ݚ,QggC+A$ @@'h3t}?|5!y&eRiBqL3;AhgҕRxRw]?#SЏ/螪 nU,vR8")Y9$}ݖq_y?C'_舕 atq<-033Q0YJMF}wR37rFi"7WEv퇶z,d?DZ+1'Yeswgt-33LB *SXP&koRhnF}suӑ/9ι= ai+c iwu|9AF"ҞSsiexTZWбMөxɼ8͈%4!K U!/"YcՠjLbaڒ{i(m) }k6r ?m8' rS㖰>/P 673 0 R/Type/Annot/A 32507 0 R/Subtype/Link/Rect[93.5980988 305.048004 253.628998 324.727997]/Border[0 0 0]/H/N>> endobj 23381 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 23382 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 23383 0 obj <> stream q /X1 Do Q q endstream endobj 23384 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 23385 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 23386 0 obj <> stream HWmo8_ *ހE pk@iG][Zrܯir\ܡHEr 7ͧ,7FEL.iiナwQo"qtmYݩ.C|f,{1'Y\5Y/vїN-ǶW<p[]}]|.S''/>5ZQ7AL;˳"e$[~e`E]`]"{̲L >_f*jQyd~wQ]]T>1a@ Q;(BgCTN|}89^^^%^%^s} y>'`_ }/ e$ؗ`_+}U&`hmm 6@m 6D}6DrB Q@PoZ߆(}ZNַ!`m"TET 6DrB Pj}j9Z߆(}ZNַ"Aַ!*dEַ!*dm"TET+6D B Pj}jZ߆(}ZAַPoC>P TET+6@m"j}jZ߶$Z߆oZ߆oCT޷PoC>P$TET+ 6@m"j}j%Z(B Q@PoC>P$TEַ!`Vm"j}. 6D}6D}BuZ׵34"Yx^eiƪxYc4CByiP$v{!fc;ulߕzY'nU;Ս=U4>5m5U?4[=b=44?~j.Lə 6C1i@/y\M~;vK{3N}_*u$a{;>f3!MyshMB֧ȧ$pn2 .fYθp1:eYYN/rY{k]3EzG]ߐ dV:r&!ij39TR:pHgg/ީg🦫:k4ܿ%뀚sz*W@e] CLgy&(k14kzWG2 ;ᾘ j&~l7p5T{ U@*2}nL` N /8QS1\5TQ|J'g>:w~0;l-<*e8_LⱜގOqzv 6̓?tKj1YҙliӃ/2*k2O =E0is9IΝMf1_e3Fe5b@tʬ'9mjkWS\eɕzf{q r|@+X<2ȋL[#(WBpɜrC3W7K璦~x[.U(RjIlb۝i̱ؒkOQ']I$Ϛw10'|Q]"`cl^a:lPavyӭȊoN4M P Pg%Q (x-VK΀Ywog 1+ WL/3 Ƶެ\Ė3k'vd:ё<y% JR&Ki \ arsoxMOSs{5\[KAX?6ȕPh$K JqN$j.s3 ;xq48IVvKK*=JE RI@y+)KYR2B-=S>F fyĤ|Uj@T .q1iW^#ϒDA%&bw10IyVu 4^R5QN-]9 ލ_= [W K5V^*{Q7{+C{bA3M&YQ[ne`(!,tu;T y]x*;JT.|OUG\jzşU;)4QbE.qV$nU]{|5dUzqU3,|kuFA(pDѠYz/c"3JI 7׉~s*9kSră0e.2"-KUlwppRfbEނJc_.ģŨ_!2yCm~"S}koH$D>8Ѡ1%nSl.Z0~T9F|u{\AeTL춵G Zo9rƳ!Ik[:Ph9yie-ңڍgus SQendstream endobj 23387 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 23388 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 23389 0 obj <> endobj 23390 0 obj <> endobj 23391 0 obj <> endobj 23392 0 obj <> endobj 23393 0 obj <> endobj 23394 0 obj <> stream q /X1 Do Q q endstream endobj 23395 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 23396 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 23397 0 obj <> stream HWk8_`F#$X,>Xl , ٜr~uKlw$+b좨?C~2~~;.A)_47m:oK2hU񯸭5onbWP'}4K-ǥbV$ **R-dQXs:5MigV=-wLcxh]n3M᪛YgmZed00rNU-QoJgp~PO3VIyj<e%>$W6O9s2ŐŇ,! ,]knb2{a2Vpo{+̽; s{{gs}/s_ })/Rp_2Ap gBh)$FH-ŐS XBj),b),!C,FH-ŀ%bܳ!CR Y{Z#bܳ!Z!KpRkR Y{Z#bMbR Y=ŀ%b),bRK1d YjZ!KpRkR XBj),=KRK1d YjZKH-Ő%gBj),=KRK1` ,VH-Ő%gBj)$NH-ŐS XBj),b),!C ,NH-ŀ%bܳ:!C R Y{Z'bܳ:!Z!KpRR Y{Z'bMR Y=ŀ%b),>!2s\5ɻe_jli}^~cbڨ[~x8rwVceA.SxkCS̤y;T&y\_ ܷz7uRw]8のRR}ō=X}u}fMa^ ,%Yy[;prY~7] %Ll[}0@ ]w6-uQ$ز?F^#Yic7XTXNavUUڪ.r]M6fxжvC.ް߻q zf{o|rXͼ:WkL{䮗΄캯𱃛γ"Xmzlna)8n3XEqa9J;luZyզ=t m8%p{l@Z4q1rΜ[\o)}?Aq㱏cc?HrqU6vGڦ{!Yv ?di[e\*fxDWά`z68Fv:(ç84C]dTIڍC轈{3^gyXԪ#xB]lqa:unp:_p(SBEzB`.d?uW;>h5PwUu񞌿>ia<μ~_6Rձ"ʪcw xY*w->cֽj}ܷwlN ۾xVNG7r/_Pz:=WMԛJ`qsx]lmM>2 YA`1-'h9-Ǵ噖<iVδ A`ZU0R*V)hL+ZiA+P-q-!kQ XZLK ZiA0-#h7BS Y{#=Ő%h7BS Y{#=Ő%h7BS Y{#=Ő%h7BS Y{+=Őŵ(,),AսbX[),AսbX[),AսbX[),AսbX[),AսbZPC uO1d ZPC uO1d ZPC uO1d ZPC uO1d ZPC uO1dq-K{!k4kEna$Gg=jM)y1-_DҖTHM6T+d5RT;k|{Ι3kw&,N pd7KH uvC [50Ђz6Vxß,*4߇p8Z@S#IPK7݀.5#\FNF o0qX&9&=,E,_p"\ޜ$Ͳ^l{ЦM 1 8Q>_jdab.I7fVFLjkP&!$^wQ.Y˪~B=-ZlqpAfI|\emTx\@@f,ZĬoT5\m҂$ZҼ+)&#P IL&THCm"hp` 2bZĠ`jϋOi qݍ-6 ,$FWGyyW jJnwNuxk|];mh^\=CJ}4bhhNNajh:SjߤX1[bJ0!&2QL&tK<5Y рG#5~RuZz1S8eqvdyZq_)"Z;ZwHmux=Q8D9Y,*{ LB[G>|Ln=*FkR5IP{SL1ՄÆ/(qZK&<ԐSrH÷%WjDL<ǜk^8sS Uuf7 '^e7ͱ J RNB9+#o&T9|d$7/ūendstream endobj 23398 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 23399 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 23400 0 obj <> stream q /X1 Do Q q endstream endobj 23401 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 23402 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 23403 0 obj <> stream HmoFWG9e6EmiZb%*V/E'.{dԽGfQ2N9qNߍ.Lb~ Z|3ib~_çLL\ی?Q(ytL2A3A0i$5rR#*M5%42@iK( [ނVw SHTz;ރ^ W3>S3>S3>Ss>Ws>W P P PKTKTHTҫMJmY0RcJQ`jƔN/5tzVjLjj-Z1ҫ`jFZ1ҫ`jHւQ`jHւS Z VjDS Z VjLjj-Z-"VjLR# LԘƔN/5J)^MS+5@z5LԈS+5@z5LԘ:0R# LԘ:0Rc WSJ(0Rc WSJ)^MS+EJ)^jDS:ԘFZ1ҫ`jHփQ`jHփS ZVjDS ZVjLjj=ZVjLjj=Z1ҫ`j20RcJQ`jƔN/5@zЁt?<$[4u@"^^yyW2Ly+W^9ʕW UByT^%*W^AyMԘ^RJW ReU^x[{CJyK)zoA)z/5Z{:Ԙ^^j鐒^^jLi/qx;{qx;{Ax;{Ax;{x;{x;{x;{x;{x;{B{I)%5>0/{z/5>0/{z/5> /{z/5> /{z/5~^^jT=x{{;RRszA/KjLi/+7R@CB&:0:S4 [|< 1ݏ.[R$g'%˸س%%-l\vM=>:]=:j*SWwuͨf55me&ft3ZW\ܕq_<?EAmM5wդ^m/~ܘt)ZOes`i,l}:yA{ԡ`:1UmfILg]4Lا=i0=4-K_0YUa.vTݡO_gf1Wc.J51$N$j'x~y߷|K}-p~o.l9ZT/ |ZR{z45~&}|k5^tp+agB몡o[G$6Kd ~lmFͼo.O>m(Wz=_oyy6}~nnڍݘ\TIn<4֧jO-lڴ|OzVдI<.gˊvIh76yѽj7Z3jpqvz{,vcg܁>bHQۗ}h1U~P|[УNS7월`>~w+9-?fE44bOv{Vlq;Z>|yݻ| { NoCG~ps~]/ GlXHs58t $^O&:9ѴjƷʼn: 6BJ{>K0D#]2m7.ye}; iH6I8'Y7:}+ W7gׯ^]>7˕ws3wI GvOβޘ.}2gt]ֺ_KCigyo.^щݛdF@Z?dl\ڌwu45f@ҋ\GT ';TqVyJD ʠ)_K߮GV"~t"i GI;aVhL*Ux?~{nH$8*w @/wӺU?}S8p1x U/zOHM9v 4q~\EZJ@@p>SG98bVֳ|a<.Xqq^2PA"͔AW\R4^r4Z۫ĞĶ '!:'a" Ǘ,+=(>m&z'wZPﶣTHx$hmbN)ivDA-c%먻+N#P3s+/kr^~!MtӘU/w#u+fϐJ:˫b_`vhf-&NӴs$+,`a9!-# BHy Y1f%f짤aRN->>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 23405 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 23406 0 obj <> endobj 23407 0 obj <> stream q /X1 Do Q q endstream endobj 23408 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 23409 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 23410 0 obj <> stream HWm6_Ax6pIzE$Aܵruo,w6|fwmϞ?k/^~'R$W<,KO$kMQ#*je_=W;ij*d]rݭ ~ X$f+'✭J%LȄakכy&xK7g7֍뇦=~sqLNn_coZ7-Q K9g).ٙ\S̶,*Te~}6*SÈX ߆p9(!BgCTB|B}$^%^^^^5^5^}OI>!'`S}Y>#g`s} y `hVmHm 6@m 6D}6DJB Q@PoZ߆(}ZIַ!`Vm"TET+ 6DJB Pj}j%Z߆(}ZIַ"Eַ!*dEַ!*dm"TET6D*B Pj}jZ߆(}ZEַPoC>P"TET6@m"Uj}jZv4Z߆oZ߆oCT޷PoC>P&TET 6@m"Մj}j5Z(B Q@PoC>P&TEַ!`Vm"Մj}!J6D}6D}B/B͆Crݭ ~DlOYl}>^6k)3`WEWbxeFű\ /m[Gi\Bǐ\.tu (x8|c1g̳B/f|Nf%[k[0] ZvVBL/>p)W޻Qsq/8oq?~4 9mJt/?:swnݸ}70§ca%"\%;\Z EQ(6b+ʧKx BC $Q lofw)foJ R4Cs "_ZJpHsRB-oQhp ѻ!xoq"Oq7Z(Aި@gÖ- x*:U9&G{"sDS~SJ9x`Di3=lzk@J kK@c/vb2-ߐdHp-5@^eP%6 L*ܕpğ]d^Jˢy] 6$$9M{p4Y\^잛! o'xػ?pam~ZUrt>Hvx[hj8'{mh%]J+,3(1}/omqgskjy:LngsI2OL%IoBu8+{mnxV.H-/{G+36>jW7jW%^SZr8~ڋ$"^d2ԍp^| {BADV(81a=Je0/Xz&w ?{i+pљzgʺ^c kj1~K֘tƤ)/Yz%h~p}[0k)HlnoC P@?)g:S@ZUY>2ӠzvDxqA. a\(^s^#I`A EEJ俧{Ikٝ-L5e}**N^uuZvqeʒcv%O/_j㍿1t"n?rVb-yY})|ëx.qUӂ$~4vxN;.'S88UMN4I86vKy:>8k4Ê>9~0 |3HEtͦmw 겛 9d3_=N>oN" >˗<ڈ;YfxسF{ء}=Wٶ/ߵO\-\Ϗnpm[-]=OOӦ<%0xlL'U[Ƣl3|Xn(hG{:μ|$X5fa7߳J i77to5 E0'saK\X2. +VPXQ"`E*TJŪR *ŪVjjQɢ.\RcfI\bY),{r/5vʽKށK]r@.Rw Rc`;{ TȽX*^j, ^j,{r/5vʽKރK]rA.R Rc`{{ T=ȽX*^j,r/5vir/5v}K>K]r@.R Rc`{ TȽX*^j,r/5v}4Kj4Mc+3t/h_m?|+Vn׸"*pwjjh`n}ծ@`\sCǙMO[|gHX.Џ'o8節5].u{L1VEl2| 昖Թ:i~\2Nkh|m~Gq#+jƠ AW<&| ^{>}\_4qxvҝnU1O;37a2WoRy r{E2UBvqmׄtA=/C.z߮%>]6 ;t^vPƝwjK` +VTXQJ*R*JjZjF~;vI-uܥXbY),{r/ysbK-uܥX RK7w)ȽR]r/ysbK-uܥX RK7wIZ꼹K@:oR,{Λ ^j.Z꼹K@:oR,{Λ ^j.Z꼹K@:or/ysbK-uܥX RK7w)ȽR]r/ysbK-uܥX RK7w)ȽR]r/ysbK-u%Y^j.Zc;ԗ޺kٍVu{~8|A>䧮(cQ7egSx[Sz@{hfuvqX?mB_.~7 05endstream endobj 23411 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 23412 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 23413 0 obj <> endobj 23414 0 obj <> endobj 23415 0 obj <> stream q /X2 Do Q q endstream endobj 23416 0 obj <>/Font<>/XObject<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 23417 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X1 Do Q endstream endobj 23418 0 obj <> stream HWmoHgiC}R@b[ZIrsݙdǞ&Sqo栱~V5f/zz\~ r+U ] 9|d><˿>ܨoe3_y |ZN/_݀?z 7]M.WVvX\_u.g2RLyrܾ8w[qB#<vOR,E"}.xJ "3>n!\EJ|`Wx̦5K= u5|rء!AWoYx/ѰYNW`|dzbv0ͦcme,yF~'8kl]̛q1߬`߻b*$ ya:SG =?d1oEֈ?+|JkAd ¸xU[QLݹWO"7A+Sx42'k(KƓrl+͆9a?oqW3 Q8ldd8n$EE_j*m`s0|=g z*U"H$08e%U3b+aRTz $K-Mb$pYtkA_#eT^\<qpĥ"CK/U^%I?'ͯNagۗ}9S bͬ+^ b nC5W\fz,U8@"䚗ȅ(>Kl=]!vЉΆ}" £3ߺ"\*~ Z)^(CI/wx"{lҏ}vLN(+5*AY뒤[T 73Y^iЌe3Q.k6~pbܪ׼_5'KXD͌҇;L ͤi(P bҴ,* %=nn_ez-uod(kF.ǾQPUTUgpe \up#yAcÃ'uտW\IT7avĉoiZh{TfӚ Fu%U잇%&upSp/03vҵcZ"^`HP!3}m,9Qdh5?ZE_Xw5%l֑k1IgUA{7hZ5"~- }>BטϼN|~Sk[A]XWN Hv,99-FGjRxh'ovʒTi\ظَa@rU@՝D#,~2  f,5p{/`)p0YF70O|ag i,8޸?g;g;󞵊)dTf L.9w t{eXrL4R!}*2sF%o`GdT =P!{ASly^BiQy$pD+BxdNMp ѝbr]%qRe"Wz7zy*hd`#WsZKͻ.Y&9zb{qиC%5LGQƉ>)Mah+1{C/Gbh#EC`퍆6Ih"敦$gr?<77ͲVdpTr@ #u IUcUgц}endstream endobj 23419 0 obj <> endobj 23420 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 23421 0 obj <>/Subtype/Form/Filter/FlateDecode/BBox[33 699 573 24]/Matrix[1 0 0 1 0 0]>> stream H0endstream endobj 23422 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 23423 0 obj <> endobj 23424 0 obj <> stream HdN#G=ObusK\`f 2̂OJ>nw7hSާN/}z|:N˷~,_Wf;grus3]~~1/_OW׿uriߧt{;~~xy>ί?|>c?>^i>7`/a_v۫xf/Nڟ9!ol<4<2:6#ofofofofollFyK*[Uvd^9r$Gy> stream HlT TSg#Kd /-BdE bEG*: $B Avjq:P,(z@uzFJujꀶ>q^̙s lxRtf]>7;0P]S/17Q;ƺmPxSfnҍHa&NؽNr$#ǿ jy휫BhhGKhVDVB\q߯MQ^ռk`yؔ*E"wxu !{xh>DO꾒%T;;i dVqf BǤGcDC5c==W_&#}Woz& 4' _s a=,!ΟlcltInzY7`ЕD&&z~R u!/#'|;/H݈O }="$I_عUOo"$z]Rdy]wA8w4ǰJiq' W{\OO{N]M<8Cty߃R? Fč.Zd~Xun -BC.W@~\i<9EqN'([dO8FKD\CrK%H\1;p#SA`58Y< .ى|%nG~jJnVj9F $ )  X8o-(P$R!nxyqipaȰhU%Q;A5U]oQM$_va .[>B;$Q}nw!>c@Qt z|d'TjDGT[wrlW% g"|G帤|Ŏ;Ǯ&Vf법y%HuJP-JZ lŃ{r.m^"H[9 $C= ןoWd*t)GFHx_ Ǎ{z1rӧoQB}(<>MA7޾%q۳i-0rih!r&H+zܴQ<Y !r M;":Y=v3'(pk;,ݚ`6-ea+5 {_:ufKb(qO2rӝFm3_hm]ӍRyx#րM/(P>ӿ(+̺̿(EƁ]A Ā$x "FR[D=oS%ڮEЊ ">P҈RD Air"J$7whbO۳gΝ/K)͗c0nAԒ;_nH'`0K3$n]xƢ+H?Xdn3lQQtRz j)d<7UW"M,IW#Sh<nKxV3ˡJpp[C8M4}p#]8+N2l9;LBՃ`PTX66~튳N'K Y p 8៱F7io_*nh%yfn"9]۫ M;lPL3;mID[I*}Ώ+>OW1K)bAL^b{ |ݧjr'ƜZyц/0XJf*WPJm~ZwT-}j4[A SlÙa08岣h? *# ,V6y-2نWsnaA[#6ӟ]h> `h< E7(d)#n2i@`p@*Kph\%|}B"d }C$]c+1gL20fmgI7a, ӷTsF O+j.qHԲ YHv<diG<ɸfbFMI1#gX?j/Ek,{WMj >g: &s;=WGiKXI|p`YO TVVeM3_wycCfyv PKsg'k3ioӾN[K[sdD 1?sϩRǶ&3~ .zc+N++cPǎ0LKH:Ot.ޯqppxS477Zq/uj%c$_x!X tt빚'rO^R E bzT2c':&{>nC->Rb\IrboG+cX)pt )p2xkM搵4/H-X:}Lc"Eo(||om D)'-)=s@+<\>~au8?zlcغ?(aGlwep΁,%KsK|NX*O=6(7ov# m1~ߦp1t;mdܾqM4{td2ܺXrLL'%rjU3zS"o䥲gqdFu^, UYGK4Z 06QRK²Muݮ3K-g{43hꉀ( + .t DD@ Q(Q+QDv4fkOB(=cݙ7ܽJlNR'2qI (ĴuyAQp;4s(!e:% U40Jp+\LK>1d Ȣ Q7i<"cx@4|dsʑsf.,A<8.j4EVri[W`:}^U GO}rWb9S-ӄaVoxԶ< 6PUA^V?'IB2+Z::N ~$իlNwTǓ +(zFh3f|aiȃVOk6H[;`[ v|= Pi@-?"~?&,*882*44}ѣ].]N]]x>*s 9QQklgXn#o|sO o"ſ:BH렛ql UnXb/r \xlޘg8=u_E迚SEװEI T~)LAl) iCI4bCGlK 1`H &$dǽ+M fw|E(EK45`Ҹ*O en6SFDi;UȕG@Uʐ{۶G y| vrLK'kXt.*ͩk333B8Hᅨdzdx _rO6}-PWtBȖj{ QAkdP_wrq4܇'T?Vq}>j큝g@Z &U^ˍVL\KT-wȎ+YiuD\Dk+G&*jZAH&CiT'+\3êO%,-PUT'o10!C2>` &6]ImnL=&h;na=sѢd5q7oolhm-k8sLIּ>~Pc2WA@2$XF" ^0 LPo0w*E%hH6-EGyy8SiPu~fuxxq ʅ,=HTi)o<'Z͋#{ u^7`-S~vG&GXM:YhDhժ"ncV7Yщ k`6(96<oY̿Gg;{ά%[Xv5l{EU-.#ċ:GzFZĐ@8ΛhI]Y-lU^sT~8); m ^iMh}zô0r>*Sq䶭.IJ70Ğa 96c둽Jv8`*gd~eީ8fʘG%?.>ِ:C7[!g3nmڂRq mJH!Tj-?&|A/,i&ee. b|R@Ϝ>HʁޘR,N2"Zkx0e]. rJ jQUZ,98}(İ^1'LgCn`Ůq4Ĵ`$mF.&.$st,5zz"',`]8;wj! [xsЂh`(o]a7 ,p t3&]74ٚku`U7Hxl`XGsu0'c<=[UP;#IzeaV߾] \ChM3 8IsޅGʊn[=\6 R I:&+Xajbڊ,AM\W26&sB"Hb5Yh1~Hg \yz y Ʃ'o.,XpBG Hv0[ONp@$fgЌacq<&9=bUˍ87M0 U0Y!0y9qq(+-*)) - ]2:I7@>>tnRuVbk:^q \x#n=-Ibo$p")N160EeJfpqd#-W䟖n?7*~!uT1tT}S U(h}VpMǖzCoIӆ,{tt-J:=T΁$sآ3aF/͋Zwu`4 طĺkhto`yaX~HV`NVp:9 ^h` oַi-Svi($s;8=Gu-`GxőLH $XjۭMTlMx/D*/(%nQ!"$>"HU&H|HџL2Ab_ grA[? P\]{ܵm.!Ӻ_8)q#Q4;[dgjI>!0ޜN{2h/q 0p"DBmǘ/C_ zx76ZrDfub_6 S>/ZQz(IirU·~y9^f๵[㢖*cbRҗK?ܼ|ٝvS<|KF^!N؃ѕ54Rpͅι|<#Uo[F0=.SÁ๖sP+KIߟ[!jUdF<55_(^8E~/b6sw0rbuBS$d.2ߡmdȹ`ܠq_i\(> @xOx j_JN:[ &rIRQa% @GbFqKVmJK XOg;mKUyxq0]$&LːBIZcb%ĠYJ ) ډD"N!4 (&1;i؆Mj^ƾ{ܑtI w}\Ɏ7EN vjG.xV*᱕m0Vr:UXħAG4q>w0<(T$Cś0CXfXV$ ;(C'2||T' AfPsv:rr'E9'*XofX<=ͣNOP9_nO&QsxԜZX6eH>e>WV_]kq,3&H`6f)\drlZy}Kew o'gChs(dЅˎ|*_YBylͲC}tss?˔YU|xQh5atK90[r< z}jt3`əͅleOp ؍B7 y(s.,Xsƒ$uւe%xyJzRG+k>]Qr̟ep젊.tSiD=11i$_Lme4̆4 Fn̿S*ݦ|.hBLqªGł-;7}gM8cI߬) cv[CIx+ b)16V'RfU\V+NՒ^{ZA~`0!gт;K@4 ;xκ'*!H3"`LPϋq:B2HbAՓi-%/Ռܖ/*/]'0LbrZL;SZM6v$ArX85KP\Y"BEDŽ҈׷MZ2IfW!|Y$of $ܪ>7A+sZzFثaM'&k' bc(!w<._.3I@8vRT HGDmV91gǜхOA՛U j%CiC%8iK8CX7}'s>𩛽H>5rk:艢jcQR;[)jqk"N`;]/u륚N/ ~N/L>5OBOzw54q;̄'H՟/ņSBԬ*.nL,~>/sQCI}E?\+oK?25W6RĦ6I=v2J\ȇx<ĕ{.p"Ǯ~xj{r^,(\' Uqd'RNR&Dׇu##Gqs[8$tI v fp8ηen]a~7 ҺZ3 {BjN Ka ͫgqht+u,qKgX4CK 1EWkT 0aZzkg͙9J<oˊM|J7cTȃ`6> stream q /X1 Do Q q endstream endobj 23427 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 23428 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 23429 0 obj <> stream HWk۸_!_4ES6ȇ/ތL.YZ(!l]K&}7c+j}[t`n5Pѭ5RΘ;(.zB~d*SYF ?~f*JBHmT3`JsʐSzd@1d| X,C&XvC>,AzAzIzIzIzEWzEWzMׁzMׁzMׁP3B} y>'P B}/E$ԗPxm$B>,µ>P!+Tc"\c"k} Ypp!PV1d µ>,µ>,B}ZAǐE\+kZC>p \cH1d} Xk} YzCVǀEǐE\+ k%ZZC>p$\c"k} Xk} Yp!PV1`1dJµ>,B}ZIǶ"\c B>Pp!PV1d*µ>,µ>,B}ZEǐE\kZC>p"\c"\c"Uk} Ypm#Mǐ1`1d} Y2-R 4"^/2bqfp_YVƋm1WOˤoQM|jiߏ$}ϋ7TVu|vꚾ6Vimەm]ڋEѹyҷZNۉVۙ*`iY&]wWHm8zzT3|8υۼPW~FOQi܌+Uƀ]Wݺ -]lbĂpajiOxjoVDaa-Y+9 53r2c\,YR,-.I7WKux'u1$O\gPQٟ!Scfe_wVц0@F1n1.t'Iųs1K^JGN5)KR(ASe>RHPdXY\TPcYV`COLFb,d-r4xa1WknP4Hb* 7kuyTS 7d!fEQ Cx1UwiB;CCV.hT07?vlb!S>qڛP2ͅPSQSalк}qb1Ѡ6ʍc]fkJ͏ysLw`#?s1 SM=<_/ +P_8U|hWm x{%(/J=>cKIğ_/.p[+Q9TTC>`ԍ]Eok4;̦3~-"/l O_FwZ9pWIup 7$6ǾQO!l6{$e9t8U=YwKd 3'"eer`}LKD:36+t_k503~؉ΧX=ʵo;.0Nf1;m*oLwv3!بߏPrx=y'8ܶY6-YupHm56B`Zp6с*^w*KP@͗ѿb&/Z( W߀ $;{t"кj6G6%@J&k̵Qp.>f$άa)+8eJBbf:ÕbV?noCsx `J/\a;bHǝxtoR<`f _uzIDDl2-}O)p~GXsx6*x8Ysh_w-*1oV $BJA6 O%,2>p W`U w 8YY!v3=@bjpo9s|:p7G,S2ܨp'(߫ӒI5=<ɲ_=9A)xMyTT"*mPVsvE?qySow+e*j y Z$%7o_JX7Zz,H>AxƯǾ *!/cY)_R= ;Ȧ=LB.*`kL_ƫmm?2Ö|}+kQl6PE&H~G7Krm/HERﵞHJ=Wv60&L/u[} 82/3`w<2ؠJU'\}iީRmmD="ʬۅ)ttm~aѡ%vf 0qcV2$Q= <.અe%áO],߼~d]3`v485UtK_>sd~MXSJG#ÝuSoxUb8G#3v͆lYm[-YV7- Y SAz~{mXШďyhߌ'-HlA$-E<&mk/ؘ0ٛ# `uy-)+fܲ5ӽ FYPa4ߋƖn%agLq5ROGx|*lY $aM :YBs^x|$c iSňD2JD5 4H[%:So^ꇍ7O##;!| +Q웶UHFhdܪjA S?() ]!dr2r ּf`Hy 'b"y"߱j}Y4S*Y(ͧ-G𨎄.(PU~$D" Z'P39Q Ydmvv8 ߘp?F%p8ϗ`Hse{5M%ɦ*`˗D]4OTx gNQ9R$N3$-屨qMu7hD(k`FJ4"Fei+=DhHJë"c[UEYjbMj C ᥅i 8`.Zɲ9,|˻׷ﯿ_ݜq^*QP]S#H5ӎ:Շ/+endstream endobj 23430 0 obj <>/P 983 0 R/Type/Annot/A 23433 0 R/Subtype/Link/Rect[129.600006 543.22998 398.112 562.909973]/Border[0 0 0]/H/N>> endobj 23431 0 obj <>/P 983 0 R/Type/Annot/A 23432 0 R/Subtype/Link/Rect[129.600006 269.848999 288.156006 289.528992]/Border[0 0 0]/H/N>> endobj 23432 0 obj <> endobj 23433 0 obj <> endobj 23434 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 23435 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 23436 0 obj <> endobj 23437 0 obj <> endobj 23438 0 obj <> endobj 23439 0 obj <> endobj 23440 0 obj <> endobj 23441 0 obj <> endobj 23442 0 obj <> endobj 23443 0 obj <> endobj 23444 0 obj <> stream q /X1 Do Q q endstream endobj 23445 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 23446 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 23447 0 obj <> stream HW]o}_GP( 8mVna*גrm%u}gV+-9\t;:9?̟ߟ^ )~iBRE_0]:҂x^u!ŧB(Oty^x^n@|z)Ί㙺챈D(VxlUL.ף X+]Zd pBͿ+%=$nAQ( 愈cx*nhSL11(3Pj#T.!JeT]|jC0!c {kkk[[[;;{{{}}G}G}Yň6 `TOmbTOm٧6D1MmbgFP L6!Qmj#>S-0MmbgF QjSjQmj#>S-0MmbTŰT jSjQmj[Qmj#T>!Qmj#T>*gŨ6aV3MmbgՌjSզ6B13jFP LQmjCF(}Zͨ6aV3MmbTŰTզ6B13jFmUFP9Ԇ(FP9F}jCF(}Zè6a0MmbTŰTkզ6B13F QjSj F(}Zè6!Qmj#>SaTŰTkզUaզ6BSզ6BSr1!ޯx@(1{,BeBY<Wj*֛_O-ןGo'џUTZ*ZXz|RʖX qnT8 ˗T+'N;U e4F5K&V'v]:%+InAIbk/ft-m4@ ê(KpR7nэߏg3UGy^5};y' _eB7tCm0QOutj*jt},%A\逮L)+PWd~]hKJJes*JoT[x`MHew崤c0dBaEҴi89VBn3Tˋf5_Ÿn tZǶDGUA/W7C-6ˊ钧ЦUv5Y\]-:n;*ŗ#Bl/'߇Ra(͡T TeP{/Zl޶BŬS\nE \i56ٷM"AuGΚݩ*ayy?/uIe:2v!cI^ǟ7}`BWxa0 e zk\Z*1?6`4~s(~gxlbж3'~O'jˍ,LdUuhk,9IƀGhe[74eITL+˂߻;M=LW|Ndž{! LƱRyKSʨh yB= }nOT)~tןǐ!>`T4arV&X!G?: \sk PZ;QݻeĎ8t2b[n@9UO@m*Zd 4j𤄹q{φ<@SRFqQ}CԄrA2;CSIfֆkb >\Vч퓶hFb@ /(4^RSf |m>k.C3Sؽת@cUu*RHmꄩ98 }ҋ+ھ"| QhyPN{x"x cx&:O\ ޖn$Gcc]ðC=b{ZJH%rmu1ρF-=MsN{/pM K%§m*8.g0+t ?\Mǁ+`#REBM}ZR2ۉ J&7*tE';p}Ej91*w}x |Fj;z!zDzY?NV q-݃tr̕2̦̉o1CŴ^:-^f/%fKl7bx/-|Y(mT|XI| ;T35go!XBxe_xCi0us#Q `wWWo/.<i6ݬ΍Ɠm'77genK_}  w}zl{{׭}Px|}>RarT̿͗OOZy1Ry.&Kl u7wWg>6쪚 |ώ=;n7_援MxWNX)=ԓv4qneϺjm#9 >Ҁ2`c+K@ED*9՜ žTS>le~w.Q礁cj9EzbbuB znݎ+$i=얿?ڷfV>#PE1܄^4&{l]͞^q*`_ԫc&$NPkq8:Cҿ-YNE _ S6u"Cp%wl?IJ+˗='3j^ (Nڱ:8yz5e/ /H;6kRuuR}tHڦVHrE'>w jok*PO?sE,@3kDVDi[ii*JFW߈v#;:e \VjNH3?<ڠ*b.IO 'Rq3Kxv:"ydq fo  l?Lc\Nr!Vr7rQē=L,P2HƬ Z9d9W70l;Ό3:,>?qk s{wǢ(@\S)ZSĊi7_ŔK:L!KO70Ԕǐ u(,vܳu:= > +9`qX?S'˜'Upa{vs( FxZG8az<dƏY4d4?2+1ELKؑ{TlW a'C +I}7lvԍǫ8vE`m#o=R,brY)IٮXB w})EQkg9Fe{KbKy.6_ۧc.4(C1Dr79oC \A{)_ |)9x-t8]KC0.י*O6#MA# 7]Qe *9ik %a؆02eO8X9F58ÈKA+SNdtP MJ=s@ݯ |ⲡ":F}tb;6':ILOL0j15|V2PQJ~X'ɫ2ɛ,kt&WPƒّv$ F73v#GpX>LV*Uq[}Ʒ|J5^.ZDDл7oo%֐yQ5JD^rY,qEjj}7JT>x&lk93"!C/G#m4AQ87*=͈DTQ ̙Nj _}}6*fG,68K`,!Bߘ2vp>V eN΍͠>ӏH"+]oƔwxfbndvݼ_j`b`!r'e4Rܭ5ҒNo&k-"I/o0t͔bnςĎ@),XLMy"/H]$h(dWr $QxI ObTP@7$a.&" ܍iO (9dѾmE3H7_0@ҜUe'xm7©ϯ}_W`Wendstream endobj 23448 0 obj <>/P 11359 0 R/Type/Annot/A 24048 0 R/Subtype/Link/Rect[208 669 225 679]/Border[0 0 0]/H/N>> endobj 23449 0 obj <>/P 11359 0 R/Type/Annot/A 24043 0 R/Subtype/Link/Rect[226 669 240 678]/Border[0 0 0]/H/N>> endobj 23450 0 obj <>/P 11359 0 R/Type/Annot/A 24036 0 R/Subtype/Link/Rect[242 669 254 678]/Border[0 0 0]/H/N>> endobj 23451 0 obj <>/P 11359 0 R/Type/Annot/A 24030 0 R/Subtype/Link/Rect[187 659 197 668]/Border[0 0 0]/H/N>> endobj 23452 0 obj <>/P 11359 0 R/Type/Annot/A 24025 0 R/Subtype/Link/Rect[199 659 213 668]/Border[0 0 0]/H/N>> endobj 23453 0 obj <>/P 11359 0 R/Type/Annot/A 42140 0 R/Subtype/Link/Rect[215 659 229 668]/Border[0 0 0]/H/N>> endobj 23454 0 obj <>/P 11359 0 R/Type/Annot/A 24014 0 R/Subtype/Link/Rect[231 659 248 669]/Border[0 0 0]/H/N>> endobj 23455 0 obj <>/P 11359 0 R/Type/Annot/A 24008 0 R/Subtype/Link/Rect[248 659 260 668]/Border[0 0 0]/H/N>> endobj 23456 0 obj <>/P 11359 0 R/Type/Annot/A 24002 0 R/Subtype/Link/Rect[173 649 190 659]/Border[0 0 0]/H/N>> endobj 23457 0 obj <>/P 11359 0 R/Type/Annot/A 41972 0 R/Subtype/Link/Rect[190 649 202 658]/Border[0 0 0]/H/N>> endobj 23458 0 obj <>/P 11359 0 R/Type/Annot/A 23991 0 R/Subtype/Link/Rect[197 639 211 648]/Border[0 0 0]/H/N>> endobj 23459 0 obj <>/P 11359 0 R/Type/Annot/A 23986 0 R/Subtype/Link/Rect[213 639 227 648]/Border[0 0 0]/H/N>> endobj 23460 0 obj <>/P 11359 0 R/Type/Annot/A 23981 0 R/Subtype/Link/Rect[229 639 243 648]/Border[0 0 0]/H/N>> endobj 23461 0 obj <>/P 11359 0 R/Type/Annot/A 23977 0 R/Subtype/Link/Rect[245 639 259 648]/Border[0 0 0]/H/N>> endobj 23462 0 obj <>/P 11359 0 R/Type/Annot/A 23973 0 R/Subtype/Link/Rect[261 639 275 648]/Border[0 0 0]/H/N>> endobj 23463 0 obj <>/P 11359 0 R/Type/Annot/A 41698 0 R/Subtype/Link/Rect[277 639 291 648]/Border[0 0 0]/H/N>> endobj 23464 0 obj <>/P 11359 0 R/Type/Annot/A 23964 0 R/Subtype/Link/Rect[293 639 307 648]/Border[0 0 0]/H/N>> endobj 23465 0 obj <>/P 11359 0 R/Type/Annot/A 41615 0 R/Subtype/Link/Rect[151 629 165 638]/Border[0 0 0]/H/N>> endobj 23466 0 obj <>/P 11359 0 R/Type/Annot/A 41565 0 R/Subtype/Link/Rect[167 629 184 639]/Border[0 0 0]/H/N>> endobj 23467 0 obj <>/P 11359 0 R/Type/Annot/A 41527 0 R/Subtype/Link/Rect[185 629 199 638]/Border[0 0 0]/H/N>> endobj 23468 0 obj <>/P 11359 0 R/Type/Annot/A 41492 0 R/Subtype/Link/Rect[201 629 217 639]/Border[0 0 0]/H/N>> endobj 23469 0 obj <>/P 11359 0 R/Type/Annot/A 23947 0 R/Subtype/Link/Rect[218 629 232 638]/Border[0 0 0]/H/N>> endobj 23470 0 obj <>/P 11359 0 R/Type/Annot/A 41421 0 R/Subtype/Link/Rect[234 629 246 638]/Border[0 0 0]/H/N>> endobj 23471 0 obj <>/P 11359 0 R/Type/Annot/A 23940 0 R/Subtype/Link/Rect[190 619 202 628]/Border[0 0 0]/H/N>> endobj 23472 0 obj <>/P 11359 0 R/Type/Annot/A 23936 0 R/Subtype/Link/Rect[217 609 231 618]/Border[0 0 0]/H/N>> endobj 23473 0 obj <>/P 11359 0 R/Type/Annot/A 37453 0 R/Subtype/Link/Rect[233 609 247 618]/Border[0 0 0]/H/N>> endobj 23474 0 obj <>/P 11359 0 R/Type/Annot/A 23930 0 R/Subtype/Link/Rect[249 609 265 619]/Border[0 0 0]/H/N>> endobj 23475 0 obj <>/P 11359 0 R/Type/Annot/A 23925 0 R/Subtype/Link/Rect[266 609 280 618]/Border[0 0 0]/H/N>> endobj 23476 0 obj <>/P 11359 0 R/Type/Annot/A 41192 0 R/Subtype/Link/Rect[282 609 296 618]/Border[0 0 0]/H/N>> endobj 23477 0 obj <>/P 11359 0 R/Type/Annot/A 23916 0 R/Subtype/Link/Rect[151 599 165 608]/Border[0 0 0]/H/N>> endobj 23478 0 obj <>/P 11359 0 R/Type/Annot/A 23913 0 R/Subtype/Link/Rect[167 599 179 608]/Border[0 0 0]/H/N>> endobj 23479 0 obj <>/P 11359 0 R/Type/Annot/A 23909 0 R/Subtype/Link/Rect[190 589 202 598]/Border[0 0 0]/H/N>> endobj 23480 0 obj <>/P 11359 0 R/Type/Annot/A 23905 0 R/Subtype/Link/Rect[215 579 232 589]/Border[0 0 0]/H/N>> endobj 23481 0 obj <>/P 11359 0 R/Type/Annot/A 23901 0 R/Subtype/Link/Rect[233 579 245 588]/Border[0 0 0]/H/N>> endobj 23482 0 obj <>/P 11359 0 R/Type/Annot/A 40721 0 R/Subtype/Link/Rect[170 569 182 578]/Border[0 0 0]/H/N>> endobj 23483 0 obj <>/P 11359 0 R/Type/Annot/A 40683 0 R/Subtype/Link/Rect[215 559 232 569]/Border[0 0 0]/H/N>> endobj 23484 0 obj <>/P 11359 0 R/Type/Annot/A 23893 0 R/Subtype/Link/Rect[233 559 247 568]/Border[0 0 0]/H/N>> endobj 23485 0 obj <>/P 11359 0 R/Type/Annot/A 23890 0 R/Subtype/Link/Rect[249 559 263 568]/Border[0 0 0]/H/N>> endobj 23486 0 obj <>/P 11359 0 R/Type/Annot/A 28561 0 R/Subtype/Link/Rect[265 559 279 568]/Border[0 0 0]/H/N>> endobj 23487 0 obj <>/P 11359 0 R/Type/Annot/A 39506 0 R/Subtype/Link/Rect[281 559 295 568]/Border[0 0 0]/H/N>> endobj 23488 0 obj <>/P 11359 0 R/Type/Annot/A 24132 0 R/Subtype/Link/Rect[297 559 309 568]/Border[0 0 0]/H/N>> endobj 23489 0 obj <>/P 11359 0 R/Type/Annot/A 38931 0 R/Subtype/Link/Rect[207 549 224 559]/Border[0 0 0]/H/N>> endobj 23490 0 obj <>/P 11359 0 R/Type/Annot/A 38408 0 R/Subtype/Link/Rect[224 549 238 558]/Border[0 0 0]/H/N>> endobj 23491 0 obj <>/P 11359 0 R/Type/Annot/A 38349 0 R/Subtype/Link/Rect[240 549 252 558]/Border[0 0 0]/H/N>> endobj 23492 0 obj <>/P 11359 0 R/Type/Annot/A 38319 0 R/Subtype/Link/Rect[236 539 253 549]/Border[0 0 0]/H/N>> endobj 23493 0 obj <>/P 11359 0 R/Type/Annot/A 24111 0 R/Subtype/Link/Rect[253 539 267 548]/Border[0 0 0]/H/N>> endobj 23494 0 obj <>/P 11359 0 R/Type/Annot/A 24106 0 R/Subtype/Link/Rect[269 539 283 548]/Border[0 0 0]/H/N>> endobj 23495 0 obj <>/P 11359 0 R/Type/Annot/A 24100 0 R/Subtype/Link/Rect[285 539 299 548]/Border[0 0 0]/H/N>> endobj 23496 0 obj <>/P 11359 0 R/Type/Annot/A 38223 0 R/Subtype/Link/Rect[151 529 165 538]/Border[0 0 0]/H/N>> endobj 23497 0 obj <>/P 11359 0 R/Type/Annot/A 36730 0 R/Subtype/Link/Rect[167 529 181 538]/Border[0 0 0]/H/N>> endobj 23498 0 obj <>/P 11359 0 R/Type/Annot/A 36692 0 R/Subtype/Link/Rect[183 529 195 538]/Border[0 0 0]/H/N>> endobj 23499 0 obj <>/P 11359 0 R/Type/Annot/A 24082 0 R/Subtype/Link/Rect[222 519 236 528]/Border[0 0 0]/H/N>> endobj 23500 0 obj <>/P 11359 0 R/Type/Annot/A 35869 0 R/Subtype/Link/Rect[238 519 254 529]/Border[0 0 0]/H/N>> endobj 23501 0 obj <>/P 11359 0 R/Type/Annot/A 25847 0 R/Subtype/Link/Rect[255 519 269 528]/Border[0 0 0]/H/N>> endobj 23502 0 obj <>/P 11359 0 R/Type/Annot/A 24068 0 R/Subtype/Link/Rect[271 519 285 528]/Border[0 0 0]/H/N>> endobj 23503 0 obj <>/P 11359 0 R/Type/Annot/A 34277 0 R/Subtype/Link/Rect[287 519 301 528]/Border[0 0 0]/H/N>> endobj 23504 0 obj <>/P 11359 0 R/Type/Annot/A 24058 0 R/Subtype/Link/Rect[151 509 165 518]/Border[0 0 0]/H/N>> endobj 23505 0 obj <>/P 11359 0 R/Type/Annot/A 34201 0 R/Subtype/Link/Rect[167 509 181 518]/Border[0 0 0]/H/N>> endobj 23506 0 obj <>/P 11359 0 R/Type/Annot/A 33647 0 R/Subtype/Link/Rect[183 509 200 519]/Border[0 0 0]/H/N>> endobj 23507 0 obj <>/P 11359 0 R/Type/Annot/A 24222 0 R/Subtype/Link/Rect[201 509 215 518]/Border[0 0 0]/H/N>> endobj 23508 0 obj <>/P 11359 0 R/Type/Annot/A 38052 0 R/Subtype/Link/Rect[217 509 233 519]/Border[0 0 0]/H/N>> endobj 23509 0 obj <>/P 11359 0 R/Type/Annot/A 24212 0 R/Subtype/Link/Rect[234 509 248 518]/Border[0 0 0]/H/N>> endobj 23510 0 obj <>/P 11359 0 R/Type/Annot/A 32572 0 R/Subtype/Link/Rect[250 509 264 518]/Border[0 0 0]/H/N>> endobj 23511 0 obj <>/P 11359 0 R/Type/Annot/A 32529 0 R/Subtype/Link/Rect[266 509 280 518]/Border[0 0 0]/H/N>> endobj 23512 0 obj <>/P 11359 0 R/Type/Annot/A 31849 0 R/Subtype/Link/Rect[282 509 296 518]/Border[0 0 0]/H/N>> endobj 23513 0 obj <>/P 11359 0 R/Type/Annot/A 37976 0 R/Subtype/Link/Rect[151 499 165 508]/Border[0 0 0]/H/N>> endobj 23514 0 obj <>/P 11359 0 R/Type/Annot/A 31107 0 R/Subtype/Link/Rect[167 499 181 508]/Border[0 0 0]/H/N>> endobj 23515 0 obj <>/P 11359 0 R/Type/Annot/A 31058 0 R/Subtype/Link/Rect[183 499 197 508]/Border[0 0 0]/H/N>> endobj 23516 0 obj <>/P 11359 0 R/Type/Annot/A 24186 0 R/Subtype/Link/Rect[199 499 213 508]/Border[0 0 0]/H/N>> endobj 23517 0 obj <>/P 11359 0 R/Type/Annot/A 37938 0 R/Subtype/Link/Rect[215 499 227 508]/Border[0 0 0]/H/N>> endobj 23518 0 obj <>/P 11359 0 R/Type/Annot/A 24177 0 R/Subtype/Link/Rect[228 489 237 499]/Border[0 0 0]/H/N>> endobj 23519 0 obj <>/P 11359 0 R/Type/Annot/A 30222 0 R/Subtype/Link/Rect[238 489 244 498]/Border[0 0 0]/H/N>> endobj 23520 0 obj <>/P 11359 0 R/Type/Annot/A 30165 0 R/Subtype/Link/Rect[246 489 258 499]/Border[0 0 0]/H/N>> endobj 23521 0 obj <>/P 11359 0 R/Type/Annot/A 30126 0 R/Subtype/Link/Rect[259 489 269 498]/Border[0 0 0]/H/N>> endobj 23522 0 obj <>/P 11359 0 R/Type/Annot/A 30079 0 R/Subtype/Link/Rect[271 489 284 499]/Border[0 0 0]/H/N>> endobj 23523 0 obj <>/P 11359 0 R/Type/Annot/A 37884 0 R/Subtype/Link/Rect[284 489 294 498]/Border[0 0 0]/H/N>> endobj 23524 0 obj <>/P 11359 0 R/Type/Annot/A 37875 0 R/Subtype/Link/Rect[151 479 164 489]/Border[0 0 0]/H/N>> endobj 23525 0 obj <>/P 11359 0 R/Type/Annot/A 24152 0 R/Subtype/Link/Rect[165 479 175 488]/Border[0 0 0]/H/N>> endobj 23526 0 obj <>/P 11359 0 R/Type/Annot/A 29207 0 R/Subtype/Link/Rect[177 479 187 488]/Border[0 0 0]/H/N>> endobj 23527 0 obj <>/P 11359 0 R/Type/Annot/A 24143 0 R/Subtype/Link/Rect[189 479 199 488]/Border[0 0 0]/H/N>> endobj 23528 0 obj <>/P 11359 0 R/Type/Annot/A 24140 0 R/Subtype/Link/Rect[201 479 213 489]/Border[0 0 0]/H/N>> endobj 23529 0 obj <>/P 11359 0 R/Type/Annot/A 37845 0 R/Subtype/Link/Rect[214 479 224 488]/Border[0 0 0]/H/N>> endobj 23530 0 obj <>/P 11359 0 R/Type/Annot/A 24130 0 R/Subtype/Link/Rect[226 479 239 489]/Border[0 0 0]/H/N>> endobj 23531 0 obj <>/P 11359 0 R/Type/Annot/A 28521 0 R/Subtype/Link/Rect[239 479 249 488]/Border[0 0 0]/H/N>> endobj 23532 0 obj <>/P 11359 0 R/Type/Annot/A 28505 0 R/Subtype/Link/Rect[251 479 261 488]/Border[0 0 0]/H/N>> endobj 23533 0 obj <>/P 11359 0 R/Type/Annot/A 37793 0 R/Subtype/Link/Rect[263 479 276 489]/Border[0 0 0]/H/N>> endobj 23534 0 obj <>/P 11359 0 R/Type/Annot/A 24116 0 R/Subtype/Link/Rect[277 479 287 488]/Border[0 0 0]/H/N>> endobj 23535 0 obj <>/P 11359 0 R/Type/Annot/A 28381 0 R/Subtype/Link/Rect[289 479 299 488]/Border[0 0 0]/H/N>> endobj 23536 0 obj <>/P 11359 0 R/Type/Annot/A 24107 0 R/Subtype/Link/Rect[301 479 311 488]/Border[0 0 0]/H/N>> endobj 23537 0 obj <>/P 11359 0 R/Type/Annot/A 24101 0 R/Subtype/Link/Rect[151 469 161 478]/Border[0 0 0]/H/N>> endobj 23538 0 obj <>/P 11359 0 R/Type/Annot/A 37763 0 R/Subtype/Link/Rect[163 469 177 478]/Border[0 0 0]/H/N>> endobj 23539 0 obj <>/P 11359 0 R/Type/Annot/A 24093 0 R/Subtype/Link/Rect[179 469 196 479]/Border[0 0 0]/H/N>> endobj 23540 0 obj <>/P 11359 0 R/Type/Annot/A 24088 0 R/Subtype/Link/Rect[197 469 210 478]/Border[0 0 0]/H/N>> endobj 23541 0 obj <>/P 11359 0 R/Type/Annot/A 26924 0 R/Subtype/Link/Rect[212 469 229 479]/Border[0 0 0]/H/N>> endobj 23542 0 obj <>/P 11359 0 R/Type/Annot/A 26483 0 R/Subtype/Link/Rect[229 469 243 478]/Border[0 0 0]/H/N>> endobj 23543 0 obj <>/P 11359 0 R/Type/Annot/A 24077 0 R/Subtype/Link/Rect[245 469 259 478]/Border[0 0 0]/H/N>> endobj 23544 0 obj <>/P 11359 0 R/Type/Annot/A 24072 0 R/Subtype/Link/Rect[261 469 278 479]/Border[0 0 0]/H/N>> endobj 23545 0 obj <>/P 11359 0 R/Type/Annot/A 24065 0 R/Subtype/Link/Rect[279 469 293 478]/Border[0 0 0]/H/N>> endobj 23546 0 obj <>/P 11359 0 R/Type/Annot/A 24060 0 R/Subtype/Link/Rect[295 469 309 478]/Border[0 0 0]/H/N>> endobj 23547 0 obj <>/P 11359 0 R/Type/Annot/A 24054 0 R/Subtype/Link/Rect[151 459 165 468]/Border[0 0 0]/H/N>> endobj 23548 0 obj <>/P 11359 0 R/Type/Annot/A 24049 0 R/Subtype/Link/Rect[167 459 181 468]/Border[0 0 0]/H/N>> endobj 23549 0 obj <>/P 11359 0 R/Type/Annot/A 24044 0 R/Subtype/Link/Rect[183 459 200 469]/Border[0 0 0]/H/N>> endobj 23550 0 obj <>/P 11359 0 R/Type/Annot/A 24304 0 R/Subtype/Link/Rect[201 459 215 468]/Border[0 0 0]/H/N>> endobj 23551 0 obj <>/P 11359 0 R/Type/Annot/A 24031 0 R/Subtype/Link/Rect[217 459 233 469]/Border[0 0 0]/H/N>> endobj 23552 0 obj <>/P 11359 0 R/Type/Annot/A 24225 0 R/Subtype/Link/Rect[234 459 248 468]/Border[0 0 0]/H/N>> endobj 23553 0 obj <>/P 11359 0 R/Type/Annot/A 24218 0 R/Subtype/Link/Rect[250 459 266 469]/Border[0 0 0]/H/N>> endobj 23554 0 obj <>/P 11359 0 R/Type/Annot/A 24214 0 R/Subtype/Link/Rect[267 459 281 468]/Border[0 0 0]/H/N>> endobj 23555 0 obj <>/P 11359 0 R/Type/Annot/A 24209 0 R/Subtype/Link/Rect[283 459 297 468]/Border[0 0 0]/H/N>> endobj 23556 0 obj <>/P 11359 0 R/Type/Annot/A 24205 0 R/Subtype/Link/Rect[151 449 165 458]/Border[0 0 0]/H/N>> endobj 23557 0 obj <>/P 11359 0 R/Type/Annot/A 24202 0 R/Subtype/Link/Rect[167 449 181 458]/Border[0 0 0]/H/N>> endobj 23558 0 obj <>/P 11359 0 R/Type/Annot/A 24199 0 R/Subtype/Link/Rect[183 449 197 458]/Border[0 0 0]/H/N>> endobj 23559 0 obj <>/P 11359 0 R/Type/Annot/A 24195 0 R/Subtype/Link/Rect[199 449 213 458]/Border[0 0 0]/H/N>> endobj 23560 0 obj <>/P 11359 0 R/Type/Annot/A 24191 0 R/Subtype/Link/Rect[215 449 232 459]/Border[0 0 0]/H/N>> endobj 23561 0 obj <>/P 11359 0 R/Type/Annot/A 24189 0 R/Subtype/Link/Rect[233 449 247 458]/Border[0 0 0]/H/N>> endobj 23562 0 obj <>/P 11359 0 R/Type/Annot/A 24187 0 R/Subtype/Link/Rect[249 449 263 458]/Border[0 0 0]/H/N>> endobj 23563 0 obj <>/P 11359 0 R/Type/Annot/A 24183 0 R/Subtype/Link/Rect[265 449 279 458]/Border[0 0 0]/H/N>> endobj 23564 0 obj <>/P 11359 0 R/Type/Annot/A 24180 0 R/Subtype/Link/Rect[281 449 295 458]/Border[0 0 0]/H/N>> endobj 23565 0 obj <>/P 11359 0 R/Type/Annot/A 24175 0 R/Subtype/Link/Rect[297 449 311 458]/Border[0 0 0]/H/N>> endobj 23566 0 obj <>/P 11359 0 R/Type/Annot/A 24172 0 R/Subtype/Link/Rect[151 439 165 448]/Border[0 0 0]/H/N>> endobj 23567 0 obj <>/P 11359 0 R/Type/Annot/A 24168 0 R/Subtype/Link/Rect[167 439 181 448]/Border[0 0 0]/H/N>> endobj 23568 0 obj <>/P 11359 0 R/Type/Annot/A 24165 0 R/Subtype/Link/Rect[183 439 197 448]/Border[0 0 0]/H/N>> endobj 23569 0 obj <>/P 11359 0 R/Type/Annot/A 24161 0 R/Subtype/Link/Rect[199 439 213 448]/Border[0 0 0]/H/N>> endobj 23570 0 obj <>/P 11359 0 R/Type/Annot/A 24157 0 R/Subtype/Link/Rect[215 439 229 448]/Border[0 0 0]/H/N>> endobj 23571 0 obj <>/P 11359 0 R/Type/Annot/A 24155 0 R/Subtype/Link/Rect[231 439 248 449]/Border[0 0 0]/H/N>> endobj 23572 0 obj <>/P 11359 0 R/Type/Annot/A 24150 0 R/Subtype/Link/Rect[249 439 263 448]/Border[0 0 0]/H/N>> endobj 23573 0 obj <>/P 11359 0 R/Type/Annot/A 24146 0 R/Subtype/Link/Rect[265 439 279 448]/Border[0 0 0]/H/N>> endobj 23574 0 obj <>/P 11359 0 R/Type/Annot/A 24141 0 R/Subtype/Link/Rect[151 429 168 439]/Border[0 0 0]/H/N>> endobj 23575 0 obj <>/P 11359 0 R/Type/Annot/A 24138 0 R/Subtype/Link/Rect[169 429 183 438]/Border[0 0 0]/H/N>> endobj 23576 0 obj <>/P 11359 0 R/Type/Annot/A 24134 0 R/Subtype/Link/Rect[185 429 199 438]/Border[0 0 0]/H/N>> endobj 23577 0 obj <>/P 11359 0 R/Type/Annot/A 24129 0 R/Subtype/Link/Rect[201 429 215 438]/Border[0 0 0]/H/N>> endobj 23578 0 obj <>/P 11359 0 R/Type/Annot/A 24126 0 R/Subtype/Link/Rect[217 429 231 438]/Border[0 0 0]/H/N>> endobj 23579 0 obj <>/P 11359 0 R/Type/Annot/A 24123 0 R/Subtype/Link/Rect[233 429 247 438]/Border[0 0 0]/H/N>> endobj 23580 0 obj <>/P 11359 0 R/Type/Annot/A 24120 0 R/Subtype/Link/Rect[249 429 263 438]/Border[0 0 0]/H/N>> endobj 23581 0 obj <>/P 11359 0 R/Type/Annot/A 24117 0 R/Subtype/Link/Rect[265 429 281 439]/Border[0 0 0]/H/N>> endobj 23582 0 obj <>/P 11359 0 R/Type/Annot/A 24112 0 R/Subtype/Link/Rect[282 429 296 438]/Border[0 0 0]/H/N>> endobj 23583 0 obj <>/P 11359 0 R/Type/Annot/A 24108 0 R/Subtype/Link/Rect[151 419 165 428]/Border[0 0 0]/H/N>> endobj 23584 0 obj <>/P 11359 0 R/Type/Annot/A 24103 0 R/Subtype/Link/Rect[167 419 181 428]/Border[0 0 0]/H/N>> endobj 23585 0 obj <>/P 11359 0 R/Type/Annot/A 24098 0 R/Subtype/Link/Rect[183 419 197 428]/Border[0 0 0]/H/N>> endobj 23586 0 obj <>/P 11359 0 R/Type/Annot/A 24094 0 R/Subtype/Link/Rect[199 419 213 428]/Border[0 0 0]/H/N>> endobj 23587 0 obj <>/P 11359 0 R/Type/Annot/A 24090 0 R/Subtype/Link/Rect[215 419 229 428]/Border[0 0 0]/H/N>> endobj 23588 0 obj <>/P 11359 0 R/Type/Annot/A 24085 0 R/Subtype/Link/Rect[231 419 248 429]/Border[0 0 0]/H/N>> endobj 23589 0 obj <>/P 11359 0 R/Type/Annot/A 24084 0 R/Subtype/Link/Rect[249 419 263 428]/Border[0 0 0]/H/N>> endobj 23590 0 obj <>/P 11359 0 R/Type/Annot/A 24079 0 R/Subtype/Link/Rect[265 419 279 428]/Border[0 0 0]/H/N>> endobj 23591 0 obj <>/P 11359 0 R/Type/Annot/A 24074 0 R/Subtype/Link/Rect[281 419 295 428]/Border[0 0 0]/H/N>> endobj 23592 0 obj <>/P 11359 0 R/Type/Annot/A 24069 0 R/Subtype/Link/Rect[297 419 311 428]/Border[0 0 0]/H/N>> endobj 23593 0 obj <>/P 11359 0 R/Type/Annot/A 24063 0 R/Subtype/Link/Rect[151 409 165 418]/Border[0 0 0]/H/N>> endobj 23594 0 obj <>/P 11359 0 R/Type/Annot/A 24059 0 R/Subtype/Link/Rect[167 409 184 419]/Border[0 0 0]/H/N>> endobj 23595 0 obj <>/P 11359 0 R/Type/Annot/A 24055 0 R/Subtype/Link/Rect[185 409 199 418]/Border[0 0 0]/H/N>> endobj 23596 0 obj <>/P 11359 0 R/Type/Annot/A 24051 0 R/Subtype/Link/Rect[201 409 215 418]/Border[0 0 0]/H/N>> endobj 23597 0 obj <>/P 11359 0 R/Type/Annot/A 24046 0 R/Subtype/Link/Rect[217 409 231 418]/Border[0 0 0]/H/N>> endobj 23598 0 obj <>/P 11359 0 R/Type/Annot/A 24040 0 R/Subtype/Link/Rect[233 409 249 419]/Border[0 0 0]/H/N>> endobj 23599 0 obj <>/P 11359 0 R/Type/Annot/A 24033 0 R/Subtype/Link/Rect[250 409 264 418]/Border[0 0 0]/H/N>> endobj 23600 0 obj <>/P 11359 0 R/Type/Annot/A 24027 0 R/Subtype/Link/Rect[266 409 280 418]/Border[0 0 0]/H/N>> endobj 23601 0 obj <>/P 11359 0 R/Type/Annot/A 24022 0 R/Subtype/Link/Rect[282 409 296 418]/Border[0 0 0]/H/N>> endobj 23602 0 obj <>/P 11359 0 R/Type/Annot/A 24017 0 R/Subtype/Link/Rect[151 399 165 408]/Border[0 0 0]/H/N>> endobj 23603 0 obj <>/P 11359 0 R/Type/Annot/A 24011 0 R/Subtype/Link/Rect[167 399 181 408]/Border[0 0 0]/H/N>> endobj 23604 0 obj <>/P 11359 0 R/Type/Annot/A 24006 0 R/Subtype/Link/Rect[183 399 197 408]/Border[0 0 0]/H/N>> endobj 23605 0 obj <>/P 11359 0 R/Type/Annot/A 24000 0 R/Subtype/Link/Rect[199 399 213 408]/Border[0 0 0]/H/N>> endobj 23606 0 obj <>/P 11359 0 R/Type/Annot/A 23995 0 R/Subtype/Link/Rect[215 399 232 409]/Border[0 0 0]/H/N>> endobj 23607 0 obj <>/P 11359 0 R/Type/Annot/A 23989 0 R/Subtype/Link/Rect[233 399 247 408]/Border[0 0 0]/H/N>> endobj 23608 0 obj <>/P 11359 0 R/Type/Annot/A 23984 0 R/Subtype/Link/Rect[249 399 263 408]/Border[0 0 0]/H/N>> endobj 23609 0 obj <>/P 11359 0 R/Type/Annot/A 23979 0 R/Subtype/Link/Rect[265 399 279 408]/Border[0 0 0]/H/N>> endobj 23610 0 obj <>/P 11359 0 R/Type/Annot/A 23976 0 R/Subtype/Link/Rect[281 399 295 408]/Border[0 0 0]/H/N>> endobj 23611 0 obj <>/P 11359 0 R/Type/Annot/A 23972 0 R/Subtype/Link/Rect[151 389 168 399]/Border[0 0 0]/H/N>> endobj 23612 0 obj <>/P 11359 0 R/Type/Annot/A 23967 0 R/Subtype/Link/Rect[169 389 183 398]/Border[0 0 0]/H/N>> endobj 23613 0 obj <>/P 11359 0 R/Type/Annot/A 23963 0 R/Subtype/Link/Rect[185 389 201 399]/Border[0 0 0]/H/N>> endobj 23614 0 obj <>/P 11359 0 R/Type/Annot/A 23961 0 R/Subtype/Link/Rect[201 389 215 398]/Border[0 0 0]/H/N>> endobj 23615 0 obj <>/P 11359 0 R/Type/Annot/A 23957 0 R/Subtype/Link/Rect[217 389 231 398]/Border[0 0 0]/H/N>> endobj 23616 0 obj <>/P 11359 0 R/Type/Annot/A 23954 0 R/Subtype/Link/Rect[233 389 247 398]/Border[0 0 0]/H/N>> endobj 23617 0 obj <>/P 11359 0 R/Type/Annot/A 23951 0 R/Subtype/Link/Rect[249 389 263 398]/Border[0 0 0]/H/N>> endobj 23618 0 obj <>/P 11359 0 R/Type/Annot/A 23948 0 R/Subtype/Link/Rect[265 389 282 399]/Border[0 0 0]/H/N>> endobj 23619 0 obj <>/P 11359 0 R/Type/Annot/A 23944 0 R/Subtype/Link/Rect[283 389 297 398]/Border[0 0 0]/H/N>> endobj 23620 0 obj <>/P 11359 0 R/Type/Annot/A 23941 0 R/Subtype/Link/Rect[151 379 168 389]/Border[0 0 0]/H/N>> endobj 23621 0 obj <>/P 11359 0 R/Type/Annot/A 23937 0 R/Subtype/Link/Rect[169 379 183 388]/Border[0 0 0]/H/N>> endobj 23622 0 obj <>/P 11359 0 R/Type/Annot/A 23933 0 R/Subtype/Link/Rect[185 379 199 388]/Border[0 0 0]/H/N>> endobj 23623 0 obj <>/P 11359 0 R/Type/Annot/A 23931 0 R/Subtype/Link/Rect[201 379 215 388]/Border[0 0 0]/H/N>> endobj 23624 0 obj <>/P 11359 0 R/Type/Annot/A 23927 0 R/Subtype/Link/Rect[217 379 231 388]/Border[0 0 0]/H/N>> endobj 23625 0 obj <>/P 11359 0 R/Type/Annot/A 23922 0 R/Subtype/Link/Rect[233 379 249 389]/Border[0 0 0]/H/N>> endobj 23626 0 obj <>/P 11359 0 R/Type/Annot/A 23918 0 R/Subtype/Link/Rect[250 379 264 388]/Border[0 0 0]/H/N>> endobj 23627 0 obj <>/P 11359 0 R/Type/Annot/A 23914 0 R/Subtype/Link/Rect[266 379 283 389]/Border[0 0 0]/H/N>> endobj 23628 0 obj <>/P 11359 0 R/Type/Annot/A 23911 0 R/Subtype/Link/Rect[283 379 297 388]/Border[0 0 0]/H/N>> endobj 23629 0 obj <>/P 11359 0 R/Type/Annot/A 23907 0 R/Subtype/Link/Rect[151 369 168 379]/Border[0 0 0]/H/N>> endobj 23630 0 obj <>/P 11359 0 R/Type/Annot/A 23903 0 R/Subtype/Link/Rect[169 369 183 378]/Border[0 0 0]/H/N>> endobj 23631 0 obj <>/P 11359 0 R/Type/Annot/A 23899 0 R/Subtype/Link/Rect[185 369 201 379]/Border[0 0 0]/H/N>> endobj 23632 0 obj <>/P 11359 0 R/Type/Annot/A 23896 0 R/Subtype/Link/Rect[202 369 216 378]/Border[0 0 0]/H/N>> endobj 23633 0 obj <>/P 11359 0 R/Type/Annot/A 23894 0 R/Subtype/Link/Rect[218 369 232 378]/Border[0 0 0]/H/N>> endobj 23634 0 obj <>/P 11359 0 R/Type/Annot/A 23892 0 R/Subtype/Link/Rect[234 369 248 378]/Border[0 0 0]/H/N>> endobj 23635 0 obj <>/P 11359 0 R/Type/Annot/A 23889 0 R/Subtype/Link/Rect[250 369 263 378]/Border[0 0 0]/H/N>> endobj 23636 0 obj <>/P 11359 0 R/Type/Annot/A 37779 0 R/Subtype/Link/Rect[265 369 279 378]/Border[0 0 0]/H/N>> endobj 23637 0 obj <>/P 11359 0 R/Type/Annot/A 24080 0 R/Subtype/Link/Rect[281 369 295 378]/Border[0 0 0]/H/N>> endobj 23638 0 obj <>/P 11359 0 R/Type/Annot/A 24073 0 R/Subtype/Link/Rect[297 369 311 378]/Border[0 0 0]/H/N>> endobj 23639 0 obj <>/P 11359 0 R/Type/Annot/A 37762 0 R/Subtype/Link/Rect[151 359 165 368]/Border[0 0 0]/H/N>> endobj 23640 0 obj <>/P 11359 0 R/Type/Annot/A 24062 0 R/Subtype/Link/Rect[167 359 184 369]/Border[0 0 0]/H/N>> endobj 23641 0 obj <>/P 11359 0 R/Type/Annot/A 42661 0 R/Subtype/Link/Rect[185 359 199 368]/Border[0 0 0]/H/N>> endobj 23642 0 obj <>/P 11359 0 R/Type/Annot/A 44624 0 R/Subtype/Link/Rect[201 359 213 368]/Border[0 0 0]/H/N>> endobj 23643 0 obj <>/P 11359 0 R/Type/Annot/A 24201 0 R/Subtype/Link/Rect[217 349 233 359]/Border[0 0 0]/H/N>> endobj 23644 0 obj <>/P 11359 0 R/Type/Annot/A 24042 0 R/Subtype/Link/Rect[234 349 248 358]/Border[0 0 0]/H/N>> endobj 23645 0 obj <>/P 11359 0 R/Type/Annot/A 24035 0 R/Subtype/Link/Rect[250 349 267 359]/Border[0 0 0]/H/N>> endobj 23646 0 obj <>/P 11359 0 R/Type/Annot/A 24029 0 R/Subtype/Link/Rect[267 349 281 358]/Border[0 0 0]/H/N>> endobj 23647 0 obj <>/P 11359 0 R/Type/Annot/A 24024 0 R/Subtype/Link/Rect[151 339 168 349]/Border[0 0 0]/H/N>> endobj 23648 0 obj <>/P 11359 0 R/Type/Annot/A 24018 0 R/Subtype/Link/Rect[169 339 181 348]/Border[0 0 0]/H/N>> endobj 23649 0 obj <>/P 11359 0 R/Type/Annot/A 44358 0 R/Subtype/Link/Rect[210 329 227 339]/Border[0 0 0]/H/N>> endobj 23650 0 obj <>/P 11359 0 R/Type/Annot/A 24005 0 R/Subtype/Link/Rect[227 329 239 338]/Border[0 0 0]/H/N>> endobj 23651 0 obj <>/P 11359 0 R/Type/Annot/A 23999 0 R/Subtype/Link/Rect[212 319 224 328]/Border[0 0 0]/H/N>> endobj 23652 0 obj <>/P 11359 0 R/Type/Annot/A 44253 0 R/Subtype/Link/Rect[226 309 238 318]/Border[0 0 0]/H/N>> endobj 23653 0 obj <>/P 11359 0 R/Type/Annot/A 44223 0 R/Subtype/Link/Rect[222 299 234 308]/Border[0 0 0]/H/N>> endobj 23654 0 obj <>/P 11359 0 R/Type/Annot/A 24216 0 R/Subtype/Link/Rect[226 289 238 298]/Border[0 0 0]/H/N>> endobj 23655 0 obj <>/P 11359 0 R/Type/Annot/A 24211 0 R/Subtype/Link/Rect[207 269 219 278]/Border[0 0 0]/H/N>> endobj 23656 0 obj <>/P 11359 0 R/Type/Annot/A 24207 0 R/Subtype/Link/Rect[178 259 192 268]/Border[0 0 0]/H/N>> endobj 23657 0 obj <>/P 11359 0 R/Type/Annot/A 44086 0 R/Subtype/Link/Rect[194 259 208 268]/Border[0 0 0]/H/N>> endobj 23658 0 obj <>/P 11359 0 R/Type/Annot/A 44043 0 R/Subtype/Link/Rect[210 259 224 268]/Border[0 0 0]/H/N>> endobj 23659 0 obj <>/P 11359 0 R/Type/Annot/A 24196 0 R/Subtype/Link/Rect[226 259 238 268]/Border[0 0 0]/H/N>> endobj 23660 0 obj <>/P 11359 0 R/Type/Annot/A 24192 0 R/Subtype/Link/Rect[193 249 205 258]/Border[0 0 0]/H/N>> endobj 23661 0 obj <>/P 11359 0 R/Type/Annot/A 23953 0 R/Subtype/Link/Rect[206 239 214 248]/Border[0 0 0]/H/N>> endobj 23662 0 obj <>/P 11359 0 R/Type/Annot/A 43898 0 R/Subtype/Link/Rect[171 229 188 239]/Border[0 0 0]/H/N>> endobj 23663 0 obj <>/P 11359 0 R/Type/Annot/A 24182 0 R/Subtype/Link/Rect[188 229 200 238]/Border[0 0 0]/H/N>> endobj 23664 0 obj <>/P 11359 0 R/Type/Annot/A 24178 0 R/Subtype/Link/Rect[194 219 211 229]/Border[0 0 0]/H/N>> endobj 23665 0 obj <>/P 11359 0 R/Type/Annot/A 24174 0 R/Subtype/Link/Rect[212 219 224 228]/Border[0 0 0]/H/N>> endobj 23666 0 obj <>/P 11359 0 R/Type/Annot/A 24171 0 R/Subtype/Link/Rect[202 209 216 218]/Border[0 0 0]/H/N>> endobj 23667 0 obj <>/P 11359 0 R/Type/Annot/A 43716 0 R/Subtype/Link/Rect[218 209 232 218]/Border[0 0 0]/H/N>> endobj 23668 0 obj <>/P 11359 0 R/Type/Annot/A 24164 0 R/Subtype/Link/Rect[234 209 248 218]/Border[0 0 0]/H/N>> endobj 23669 0 obj <>/P 11359 0 R/Type/Annot/A 24160 0 R/Subtype/Link/Rect[250 209 264 218]/Border[0 0 0]/H/N>> endobj 23670 0 obj <>/P 11359 0 R/Type/Annot/A 43604 0 R/Subtype/Link/Rect[266 209 280 218]/Border[0 0 0]/H/N>> endobj 23671 0 obj <>/P 11359 0 R/Type/Annot/A 24154 0 R/Subtype/Link/Rect[282 209 296 218]/Border[0 0 0]/H/N>> endobj 23672 0 obj <>/P 11359 0 R/Type/Annot/A 24149 0 R/Subtype/Link/Rect[151 199 165 208]/Border[0 0 0]/H/N>> endobj 23673 0 obj <>/P 11359 0 R/Type/Annot/A 24145 0 R/Subtype/Link/Rect[167 199 181 208]/Border[0 0 0]/H/N>> endobj 23674 0 obj <>/P 11359 0 R/Type/Annot/A 43457 0 R/Subtype/Link/Rect[183 199 200 209]/Border[0 0 0]/H/N>> endobj 23675 0 obj <>/P 11359 0 R/Type/Annot/A 24137 0 R/Subtype/Link/Rect[201 199 215 208]/Border[0 0 0]/H/N>> endobj 23676 0 obj <>/P 11359 0 R/Type/Annot/A 24133 0 R/Subtype/Link/Rect[217 199 231 208]/Border[0 0 0]/H/N>> endobj 23677 0 obj <>/P 11359 0 R/Type/Annot/A 43345 0 R/Subtype/Link/Rect[233 199 249 209]/Border[0 0 0]/H/N>> endobj 23678 0 obj <>/P 11359 0 R/Type/Annot/A 24125 0 R/Subtype/Link/Rect[250 199 264 208]/Border[0 0 0]/H/N>> endobj 23679 0 obj <>/P 11359 0 R/Type/Annot/A 24122 0 R/Subtype/Link/Rect[266 199 280 208]/Border[0 0 0]/H/N>> endobj 23680 0 obj <>/P 11359 0 R/Type/Annot/A 24119 0 R/Subtype/Link/Rect[151 189 168 199]/Border[0 0 0]/H/N>> endobj 23681 0 obj <>/P 11359 0 R/Type/Annot/A 24114 0 R/Subtype/Link/Rect[169 189 183 198]/Border[0 0 0]/H/N>> endobj 23682 0 obj <>/P 11359 0 R/Type/Annot/A 24110 0 R/Subtype/Link/Rect[185 189 201 199]/Border[0 0 0]/H/N>> endobj 23683 0 obj <>/P 11359 0 R/Type/Annot/A 24105 0 R/Subtype/Link/Rect[202 189 216 198]/Border[0 0 0]/H/N>> endobj 23684 0 obj <>/P 11359 0 R/Type/Annot/A 43068 0 R/Subtype/Link/Rect[218 189 235 199]/Border[0 0 0]/H/N>> endobj 23685 0 obj <>/P 11359 0 R/Type/Annot/A 24096 0 R/Subtype/Link/Rect[235 189 249 198]/Border[0 0 0]/H/N>> endobj 23686 0 obj <>/P 11359 0 R/Type/Annot/A 24092 0 R/Subtype/Link/Rect[251 189 268 199]/Border[0 0 0]/H/N>> endobj 23687 0 obj <>/P 11359 0 R/Type/Annot/A 24087 0 R/Subtype/Link/Rect[269 189 283 198]/Border[0 0 0]/H/N>> endobj 23688 0 obj <>/P 11359 0 R/Type/Annot/A 42917 0 R/Subtype/Link/Rect[285 189 299 198]/Border[0 0 0]/H/N>> endobj 23689 0 obj <>/P 11359 0 R/Type/Annot/A 24081 0 R/Subtype/Link/Rect[151 179 165 188]/Border[0 0 0]/H/N>> endobj 23690 0 obj <>/P 11359 0 R/Type/Annot/A 24075 0 R/Subtype/Link/Rect[167 179 179 188]/Border[0 0 0]/H/N>> endobj 23691 0 obj <>/P 11359 0 R/Type/Annot/A 24070 0 R/Subtype/Link/Rect[190 169 202 178]/Border[0 0 0]/H/N>> endobj 23692 0 obj <>/P 11359 0 R/Type/Annot/A 24064 0 R/Subtype/Link/Rect[190 159 202 168]/Border[0 0 0]/H/N>> endobj 23693 0 obj <>/P 11359 0 R/Type/Annot/A 42735 0 R/Subtype/Link/Rect[203 149 215 158]/Border[0 0 0]/H/N>> endobj 23694 0 obj <>/P 11359 0 R/Type/Annot/A 42688 0 R/Subtype/Link/Rect[415 669 427 678]/Border[0 0 0]/H/N>> endobj 23695 0 obj <>/P 11359 0 R/Type/Annot/A 24050 0 R/Subtype/Link/Rect[415 659 427 668]/Border[0 0 0]/H/N>> endobj 23696 0 obj <>/P 11359 0 R/Type/Annot/A 24045 0 R/Subtype/Link/Rect[405 649 419 658]/Border[0 0 0]/H/N>> endobj 23697 0 obj <>/P 11359 0 R/Type/Annot/A 24039 0 R/Subtype/Link/Rect[421 649 435 658]/Border[0 0 0]/H/N>> endobj 23698 0 obj <>/P 11359 0 R/Type/Annot/A 42550 0 R/Subtype/Link/Rect[437 649 451 658]/Border[0 0 0]/H/N>> endobj 23699 0 obj <>/P 11359 0 R/Type/Annot/A 24026 0 R/Subtype/Link/Rect[453 649 470 659]/Border[0 0 0]/H/N>> endobj 23700 0 obj <>/P 11359 0 R/Type/Annot/A 24021 0 R/Subtype/Link/Rect[471 649 483 658]/Border[0 0 0]/H/N>> endobj 23701 0 obj <>/P 11359 0 R/Type/Annot/A 24016 0 R/Subtype/Link/Rect[398 639 410 648]/Border[0 0 0]/H/N>> endobj 23702 0 obj <>/P 11359 0 R/Type/Annot/A 24010 0 R/Subtype/Link/Rect[392 629 404 638]/Border[0 0 0]/H/N>> endobj 23703 0 obj <>/P 11359 0 R/Type/Annot/A 24004 0 R/Subtype/Link/Rect[397 619 409 628]/Border[0 0 0]/H/N>> endobj 23704 0 obj <>/P 11359 0 R/Type/Annot/A 23998 0 R/Subtype/Link/Rect[420 609 430 618]/Border[0 0 0]/H/N>> endobj 23705 0 obj <>/P 11359 0 R/Type/Annot/A 23993 0 R/Subtype/Link/Rect[432 609 442 618]/Border[0 0 0]/H/N>> endobj 23706 0 obj <>/P 11359 0 R/Type/Annot/A 23987 0 R/Subtype/Link/Rect[444 609 452 618]/Border[0 0 0]/H/N>> endobj 23707 0 obj <>/P 11359 0 R/Type/Annot/A 23983 0 R/Subtype/Link/Rect[414 599 424 608]/Border[0 0 0]/H/N>> endobj 23708 0 obj <>/P 11359 0 R/Type/Annot/A 42143 0 R/Subtype/Link/Rect[426 599 436 608]/Border[0 0 0]/H/N>> endobj 23709 0 obj <>/P 11359 0 R/Type/Annot/A 23975 0 R/Subtype/Link/Rect[438 599 446 608]/Border[0 0 0]/H/N>> endobj 23710 0 obj <>/P 11359 0 R/Type/Annot/A 23971 0 R/Subtype/Link/Rect[362 589 376 598]/Border[0 0 0]/H/N>> endobj 23711 0 obj <>/P 11359 0 R/Type/Annot/A 23966 0 R/Subtype/Link/Rect[378 589 390 598]/Border[0 0 0]/H/N>> endobj 23712 0 obj <>/P 11359 0 R/Type/Annot/A 41975 0 R/Subtype/Link/Rect[420 579 432 588]/Border[0 0 0]/H/N>> endobj 23713 0 obj <>/P 11359 0 R/Type/Annot/A 23959 0 R/Subtype/Link/Rect[420 569 432 578]/Border[0 0 0]/H/N>> endobj 23714 0 obj <>/P 11359 0 R/Type/Annot/A 41904 0 R/Subtype/Link/Rect[394 559 400 568]/Border[0 0 0]/H/N>> endobj 23715 0 obj <>/P 11359 0 R/Type/Annot/A 41862 0 R/Subtype/Link/Rect[402 559 416 568]/Border[0 0 0]/H/N>> endobj 23716 0 obj <>/P 11359 0 R/Type/Annot/A 23950 0 R/Subtype/Link/Rect[418 559 430 568]/Border[0 0 0]/H/N>> endobj 23717 0 obj <>/P 11359 0 R/Type/Annot/A 23946 0 R/Subtype/Link/Rect[426 549 442 559]/Border[0 0 0]/H/N>> endobj 23718 0 obj <>/P 11359 0 R/Type/Annot/A 23943 0 R/Subtype/Link/Rect[443 549 455 558]/Border[0 0 0]/H/N>> endobj 23719 0 obj <>/P 11359 0 R/Type/Annot/A 23939 0 R/Subtype/Link/Rect[396 539 402 548]/Border[0 0 0]/H/N>> endobj 23720 0 obj <>/P 11359 0 R/Type/Annot/A 23935 0 R/Subtype/Link/Rect[404 539 416 548]/Border[0 0 0]/H/N>> endobj 23721 0 obj <>/P 11359 0 R/Type/Annot/A 23932 0 R/Subtype/Link/Rect[396 519 412 529]/Border[0 0 0]/H/N>> endobj 23722 0 obj <>/P 11359 0 R/Type/Annot/A 23928 0 R/Subtype/Link/Rect[413 519 425 528]/Border[0 0 0]/H/N>> endobj 23723 0 obj <>/P 11359 0 R/Type/Annot/A 23923 0 R/Subtype/Link/Rect[387 509 404 519]/Border[0 0 0]/H/N>> endobj 23724 0 obj <>/P 11359 0 R/Type/Annot/A 23919 0 R/Subtype/Link/Rect[405 509 419 518]/Border[0 0 0]/H/N>> endobj 23725 0 obj <>/P 11359 0 R/Type/Annot/A 41425 0 R/Subtype/Link/Rect[421 509 435 518]/Border[0 0 0]/H/N>> endobj 23726 0 obj <>/P 11359 0 R/Type/Annot/A 23910 0 R/Subtype/Link/Rect[437 509 451 518]/Border[0 0 0]/H/N>> endobj 23727 0 obj <>/P 11359 0 R/Type/Annot/A 23906 0 R/Subtype/Link/Rect[453 509 467 518]/Border[0 0 0]/H/N>> endobj 23728 0 obj <>/P 11359 0 R/Type/Annot/A 23902 0 R/Subtype/Link/Rect[469 509 483 518]/Border[0 0 0]/H/N>> endobj 23729 0 obj <>/P 11359 0 R/Type/Annot/A 23898 0 R/Subtype/Link/Rect[485 509 499 518]/Border[0 0 0]/H/N>> endobj 23730 0 obj <>/P 11359 0 R/Type/Annot/A 23895 0 R/Subtype/Link/Rect[501 509 515 518]/Border[0 0 0]/H/N>> endobj 23731 0 obj <>/P 11359 0 R/Type/Annot/A 24057 0 R/Subtype/Link/Rect[359 499 371 508]/Border[0 0 0]/H/N>> endobj 23732 0 obj <>/P 11359 0 R/Type/Annot/A 23891 0 R/Subtype/Link/Rect[387 489 404 499]/Border[0 0 0]/H/N>> endobj 23733 0 obj <>/P 11359 0 R/Type/Annot/A 23888 0 R/Subtype/Link/Rect[404 489 416 498]/Border[0 0 0]/H/N>> endobj 23734 0 obj <>/P 11359 0 R/Type/Annot/A 24038 0 R/Subtype/Link/Rect[411 479 428 489]/Border[0 0 0]/H/N>> endobj 23735 0 obj <>/P 11359 0 R/Type/Annot/A 41074 0 R/Subtype/Link/Rect[428 479 440 488]/Border[0 0 0]/H/N>> endobj 23736 0 obj <>/P 11359 0 R/Type/Annot/A 44743 0 R/Subtype/Link/Rect[377 469 387 478]/Border[0 0 0]/H/N>> endobj 23737 0 obj <>/P 11359 0 R/Type/Annot/A 24020 0 R/Subtype/Link/Rect[389 469 406 479]/Border[0 0 0]/H/N>> endobj 23738 0 obj <>/P 11359 0 R/Type/Annot/A 24013 0 R/Subtype/Link/Rect[407 469 419 478]/Border[0 0 0]/H/N>> endobj 23739 0 obj <>/P 11359 0 R/Type/Annot/A 40129 0 R/Subtype/Link/Rect[382 459 398 469]/Border[0 0 0]/H/N>> endobj 23740 0 obj <>/P 11359 0 R/Type/Annot/A 40096 0 R/Subtype/Link/Rect[399 459 411 468]/Border[0 0 0]/H/N>> endobj 23741 0 obj <>/P 11359 0 R/Type/Annot/A 23994 0 R/Subtype/Link/Rect[462 449 474 458]/Border[0 0 0]/H/N>> endobj 23742 0 obj <>/P 11359 0 R/Type/Annot/A 23988 0 R/Subtype/Link/Rect[401 439 407 448]/Border[0 0 0]/H/N>> endobj 23743 0 obj <>/P 11359 0 R/Type/Annot/A 38985 0 R/Subtype/Link/Rect[409 439 423 448]/Border[0 0 0]/H/N>> endobj 23744 0 obj <>/P 11359 0 R/Type/Annot/A 23978 0 R/Subtype/Link/Rect[425 439 437 448]/Border[0 0 0]/H/N>> endobj 23745 0 obj <>/P 11359 0 R/Type/Annot/A 38412 0 R/Subtype/Link/Rect[378 429 391 439]/Border[0 0 0]/H/N>> endobj 23746 0 obj <>/P 11359 0 R/Type/Annot/A 23970 0 R/Subtype/Link/Rect[392 429 400 438]/Border[0 0 0]/H/N>> endobj 23747 0 obj <>/P 11359 0 R/Type/Annot/A 24223 0 R/Subtype/Link/Rect[393 419 406 429]/Border[0 0 0]/H/N>> endobj 23748 0 obj <>/P 11359 0 R/Type/Annot/A 24217 0 R/Subtype/Link/Rect[406 419 414 428]/Border[0 0 0]/H/N>> endobj 23749 0 obj <>/P 11359 0 R/Type/Annot/A 24213 0 R/Subtype/Link/Rect[434 409 448 418]/Border[0 0 0]/H/N>> endobj 23750 0 obj <>/P 11359 0 R/Type/Annot/A 24208 0 R/Subtype/Link/Rect[450 409 467 419]/Border[0 0 0]/H/N>> endobj 23751 0 obj <>/P 11359 0 R/Type/Annot/A 24204 0 R/Subtype/Link/Rect[467 409 481 418]/Border[0 0 0]/H/N>> endobj 23752 0 obj <>/P 11359 0 R/Type/Annot/A 38210 0 R/Subtype/Link/Rect[483 409 497 418]/Border[0 0 0]/H/N>> endobj 23753 0 obj <>/P 11359 0 R/Type/Annot/A 24198 0 R/Subtype/Link/Rect[499 409 513 418]/Border[0 0 0]/H/N>> endobj 23754 0 obj <>/P 11359 0 R/Type/Annot/A 24194 0 R/Subtype/Link/Rect[359 399 371 408]/Border[0 0 0]/H/N>> endobj 23755 0 obj <>/P 11359 0 R/Type/Annot/A 24190 0 R/Subtype/Link/Rect[396 389 402 398]/Border[0 0 0]/H/N>> endobj 23756 0 obj <>/P 11359 0 R/Type/Annot/A 38156 0 R/Subtype/Link/Rect[404 389 410 398]/Border[0 0 0]/H/N>> endobj 23757 0 obj <>/P 11359 0 R/Type/Annot/A 23926 0 R/Subtype/Link/Rect[412 389 422 398]/Border[0 0 0]/H/N>> endobj 23758 0 obj <>/P 11359 0 R/Type/Annot/A 24179 0 R/Subtype/Link/Rect[424 389 436 399]/Border[0 0 0]/H/N>> endobj 23759 0 obj <>/P 11359 0 R/Type/Annot/A 23917 0 R/Subtype/Link/Rect[437 389 447 398]/Border[0 0 0]/H/N>> endobj 23760 0 obj <>/P 11359 0 R/Type/Annot/A 24170 0 R/Subtype/Link/Rect[449 389 459 398]/Border[0 0 0]/H/N>> endobj 23761 0 obj <>/P 11359 0 R/Type/Annot/A 24167 0 R/Subtype/Link/Rect[461 389 471 398]/Border[0 0 0]/H/N>> endobj 23762 0 obj <>/P 11359 0 R/Type/Annot/A 24163 0 R/Subtype/Link/Rect[473 389 487 398]/Border[0 0 0]/H/N>> endobj 23763 0 obj <>/P 11359 0 R/Type/Annot/A 24159 0 R/Subtype/Link/Rect[359 379 376 389]/Border[0 0 0]/H/N>> endobj 23764 0 obj <>/P 11359 0 R/Type/Annot/A 38031 0 R/Subtype/Link/Rect[377 379 391 388]/Border[0 0 0]/H/N>> endobj 23765 0 obj <>/P 11359 0 R/Type/Annot/A 24153 0 R/Subtype/Link/Rect[393 379 407 388]/Border[0 0 0]/H/N>> endobj 23766 0 obj <>/P 11359 0 R/Type/Annot/A 24148 0 R/Subtype/Link/Rect[409 379 425 389]/Border[0 0 0]/H/N>> endobj 23767 0 obj <>/P 11359 0 R/Type/Annot/A 24144 0 R/Subtype/Link/Rect[426 379 440 388]/Border[0 0 0]/H/N>> endobj 23768 0 obj <>/P 11359 0 R/Type/Annot/A 31799 0 R/Subtype/Link/Rect[442 379 456 388]/Border[0 0 0]/H/N>> endobj 23769 0 obj <>/P 11359 0 R/Type/Annot/A 24136 0 R/Subtype/Link/Rect[458 379 472 388]/Border[0 0 0]/H/N>> endobj 23770 0 obj <>/P 11359 0 R/Type/Annot/A 31060 0 R/Subtype/Link/Rect[474 379 491 389]/Border[0 0 0]/H/N>> endobj 23771 0 obj <>/P 11359 0 R/Type/Annot/A 24127 0 R/Subtype/Link/Rect[491 379 505 388]/Border[0 0 0]/H/N>> endobj 23772 0 obj <>/P 11359 0 R/Type/Annot/A 30288 0 R/Subtype/Link/Rect[359 369 373 378]/Border[0 0 0]/H/N>> endobj 23773 0 obj <>/P 11359 0 R/Type/Annot/A 30260 0 R/Subtype/Link/Rect[375 369 389 378]/Border[0 0 0]/H/N>> endobj 23774 0 obj <>/P 11359 0 R/Type/Annot/A 30225 0 R/Subtype/Link/Rect[391 369 405 378]/Border[0 0 0]/H/N>> endobj 23775 0 obj <>/P 11359 0 R/Type/Annot/A 37904 0 R/Subtype/Link/Rect[407 369 421 378]/Border[0 0 0]/H/N>> endobj 23776 0 obj <>/P 11359 0 R/Type/Annot/A 30129 0 R/Subtype/Link/Rect[423 369 437 378]/Border[0 0 0]/H/N>> endobj 23777 0 obj <>/P 11359 0 R/Type/Annot/A 30082 0 R/Subtype/Link/Rect[439 369 453 378]/Border[0 0 0]/H/N>> endobj 23778 0 obj <>/P 11359 0 R/Type/Annot/A 24097 0 R/Subtype/Link/Rect[455 369 472 379]/Border[0 0 0]/H/N>> endobj 23779 0 obj <>/P 11359 0 R/Type/Annot/A 29293 0 R/Subtype/Link/Rect[473 369 487 378]/Border[0 0 0]/H/N>> endobj 23780 0 obj <>/P 11359 0 R/Type/Annot/A 24089 0 R/Subtype/Link/Rect[489 369 503 378]/Border[0 0 0]/H/N>> endobj 23781 0 obj <>/P 11359 0 R/Type/Annot/A 37866 0 R/Subtype/Link/Rect[505 369 519 378]/Border[0 0 0]/H/N>> endobj 23782 0 obj <>/P 11359 0 R/Type/Annot/A 29165 0 R/Subtype/Link/Rect[359 359 373 368]/Border[0 0 0]/H/N>> endobj 23783 0 obj <>/P 11359 0 R/Type/Annot/A 24078 0 R/Subtype/Link/Rect[375 359 389 368]/Border[0 0 0]/H/N>> endobj 23784 0 obj <>/P 11359 0 R/Type/Annot/A 29092 0 R/Subtype/Link/Rect[391 359 403 368]/Border[0 0 0]/H/N>> endobj 23785 0 obj <>/P 11359 0 R/Type/Annot/A 24067 0 R/Subtype/Link/Rect[398 349 406 358]/Border[0 0 0]/H/N>> endobj 23786 0 obj <>/P 11359 0 R/Type/Annot/A 28529 0 R/Subtype/Link/Rect[398 339 411 349]/Border[0 0 0]/H/N>> endobj 23787 0 obj <>/P 11359 0 R/Type/Annot/A 28508 0 R/Subtype/Link/Rect[411 339 421 348]/Border[0 0 0]/H/N>> endobj 23788 0 obj <>/P 11359 0 R/Type/Annot/A 24052 0 R/Subtype/Link/Rect[423 339 433 348]/Border[0 0 0]/H/N>> endobj 23789 0 obj <>/P 11359 0 R/Type/Annot/A 28424 0 R/Subtype/Link/Rect[435 339 448 348]/Border[0 0 0]/H/N>> endobj 23790 0 obj <>/P 11359 0 R/Type/Annot/A 28396 0 R/Subtype/Link/Rect[450 339 464 348]/Border[0 0 0]/H/N>> endobj 23791 0 obj <>/P 11359 0 R/Type/Annot/A 24032 0 R/Subtype/Link/Rect[466 339 480 348]/Border[0 0 0]/H/N>> endobj 23792 0 obj <>/P 11359 0 R/Type/Annot/A 37769 0 R/Subtype/Link/Rect[482 339 496 348]/Border[0 0 0]/H/N>> endobj 23793 0 obj <>/P 11359 0 R/Type/Annot/A 37765 0 R/Subtype/Link/Rect[498 339 512 348]/Border[0 0 0]/H/N>> endobj 23794 0 obj <>/P 11359 0 R/Type/Annot/A 24015 0 R/Subtype/Link/Rect[359 329 373 338]/Border[0 0 0]/H/N>> endobj 23795 0 obj <>/P 11359 0 R/Type/Annot/A 24009 0 R/Subtype/Link/Rect[375 329 389 338]/Border[0 0 0]/H/N>> endobj 23796 0 obj <>/P 11359 0 R/Type/Annot/A 24003 0 R/Subtype/Link/Rect[391 329 405 338]/Border[0 0 0]/H/N>> endobj 23797 0 obj <>/P 11359 0 R/Type/Annot/A 23997 0 R/Subtype/Link/Rect[407 329 421 338]/Border[0 0 0]/H/N>> endobj 23798 0 obj <>/P 11359 0 R/Type/Annot/A 23992 0 R/Subtype/Link/Rect[423 329 437 338]/Border[0 0 0]/H/N>> endobj 23799 0 obj <>/P 11359 0 R/Type/Annot/A 25918 0 R/Subtype/Link/Rect[439 329 453 338]/Border[0 0 0]/H/N>> endobj 23800 0 obj <>/P 11359 0 R/Type/Annot/A 23982 0 R/Subtype/Link/Rect[455 329 469 338]/Border[0 0 0]/H/N>> endobj 23801 0 obj <>/P 11359 0 R/Type/Annot/A 25862 0 R/Subtype/Link/Rect[471 329 485 338]/Border[0 0 0]/H/N>> endobj 23802 0 obj <>/P 11359 0 R/Type/Annot/A 25799 0 R/Subtype/Link/Rect[487 329 501 338]/Border[0 0 0]/H/N>> endobj 23803 0 obj <>/P 11359 0 R/Type/Annot/A 23968 0 R/Subtype/Link/Rect[503 329 517 338]/Border[0 0 0]/H/N>> endobj 23804 0 obj <>/P 11359 0 R/Type/Annot/A 24115 0 R/Subtype/Link/Rect[359 319 376 329]/Border[0 0 0]/H/N>> endobj 23805 0 obj <>/P 11359 0 R/Type/Annot/A 23960 0 R/Subtype/Link/Rect[377 319 391 328]/Border[0 0 0]/H/N>> endobj 23806 0 obj <>/P 11359 0 R/Type/Annot/A 23956 0 R/Subtype/Link/Rect[393 319 407 328]/Border[0 0 0]/H/N>> endobj 23807 0 obj <>/P 11359 0 R/Type/Annot/A 24228 0 R/Subtype/Link/Rect[409 319 423 328]/Border[0 0 0]/H/N>> endobj 23808 0 obj <>/P 11359 0 R/Type/Annot/A 24219 0 R/Subtype/Link/Rect[425 319 437 328]/Border[0 0 0]/H/N>> endobj 23809 0 obj <>/P 11359 0 R/Type/Annot/A 24215 0 R/Subtype/Link/Rect[396 309 408 318]/Border[0 0 0]/H/N>> endobj 23810 0 obj <>/P 11359 0 R/Type/Annot/A 24210 0 R/Subtype/Link/Rect[439 299 453 308]/Border[0 0 0]/H/N>> endobj 23811 0 obj <>/P 11359 0 R/Type/Annot/A 24206 0 R/Subtype/Link/Rect[455 299 469 308]/Border[0 0 0]/H/N>> endobj 23812 0 obj <>/P 11359 0 R/Type/Annot/A 24203 0 R/Subtype/Link/Rect[471 299 485 308]/Border[0 0 0]/H/N>> endobj 23813 0 obj <>/P 11359 0 R/Type/Annot/A 24200 0 R/Subtype/Link/Rect[487 299 501 308]/Border[0 0 0]/H/N>> endobj 23814 0 obj <>/P 11359 0 R/Type/Annot/A 24197 0 R/Subtype/Link/Rect[503 299 515 308]/Border[0 0 0]/H/N>> endobj 23815 0 obj <>/P 11359 0 R/Type/Annot/A 24193 0 R/Subtype/Link/Rect[419 289 429 298]/Border[0 0 0]/H/N>> endobj 23816 0 obj <>/P 11359 0 R/Type/Annot/A 23921 0 R/Subtype/Link/Rect[431 289 447 299]/Border[0 0 0]/H/N>> endobj 23817 0 obj <>/P 11359 0 R/Type/Annot/A 24188 0 R/Subtype/Link/Rect[448 289 462 298]/Border[0 0 0]/H/N>> endobj 23818 0 obj <>/P 11359 0 R/Type/Annot/A 24184 0 R/Subtype/Link/Rect[464 289 478 298]/Border[0 0 0]/H/N>> endobj 23819 0 obj <>/P 11359 0 R/Type/Annot/A 24181 0 R/Subtype/Link/Rect[480 289 492 298]/Border[0 0 0]/H/N>> endobj 23820 0 obj <>/P 11359 0 R/Type/Annot/A 24176 0 R/Subtype/Link/Rect[423 279 431 288]/Border[0 0 0]/H/N>> endobj 23821 0 obj <>/P 11359 0 R/Type/Annot/A 24173 0 R/Subtype/Link/Rect[392 269 411 281]/Border[0 0 0]/H/N>> endobj 23822 0 obj <>/P 11359 0 R/Type/Annot/A 24169 0 R/Subtype/Link/Rect[456 269 464 278]/Border[0 0 0]/H/N>> endobj 23823 0 obj <>/P 11359 0 R/Type/Annot/A 24166 0 R/Subtype/Link/Rect[419 259 429 268]/Border[0 0 0]/H/N>> endobj 23824 0 obj <>/P 11359 0 R/Type/Annot/A 24162 0 R/Subtype/Link/Rect[431 259 443 268]/Border[0 0 0]/H/N>> endobj 23825 0 obj <>/P 11359 0 R/Type/Annot/A 24158 0 R/Subtype/Link/Rect[404 249 418 258]/Border[0 0 0]/H/N>> endobj 23826 0 obj <>/P 11359 0 R/Type/Annot/A 24156 0 R/Subtype/Link/Rect[420 249 434 258]/Border[0 0 0]/H/N>> endobj 23827 0 obj <>/P 11359 0 R/Type/Annot/A 24151 0 R/Subtype/Link/Rect[436 249 450 258]/Border[0 0 0]/H/N>> endobj 23828 0 obj <>/P 11359 0 R/Type/Annot/A 24147 0 R/Subtype/Link/Rect[452 249 464 258]/Border[0 0 0]/H/N>> endobj 23829 0 obj <>/P 11359 0 R/Type/Annot/A 24142 0 R/Subtype/Link/Rect[439 239 449 248]/Border[0 0 0]/H/N>> endobj 23830 0 obj <>/P 11359 0 R/Type/Annot/A 24139 0 R/Subtype/Link/Rect[451 239 465 248]/Border[0 0 0]/H/N>> endobj 23831 0 obj <>/P 11359 0 R/Type/Annot/A 24135 0 R/Subtype/Link/Rect[467 239 484 249]/Border[0 0 0]/H/N>> endobj 23832 0 obj <>/P 11359 0 R/Type/Annot/A 24131 0 R/Subtype/Link/Rect[484 239 498 248]/Border[0 0 0]/H/N>> endobj 23833 0 obj <>/P 11359 0 R/Type/Annot/A 24128 0 R/Subtype/Link/Rect[500 239 514 248]/Border[0 0 0]/H/N>> endobj 23834 0 obj <>/P 11359 0 R/Type/Annot/A 24124 0 R/Subtype/Link/Rect[359 229 373 238]/Border[0 0 0]/H/N>> endobj 23835 0 obj <>/P 11359 0 R/Type/Annot/A 24121 0 R/Subtype/Link/Rect[375 229 389 238]/Border[0 0 0]/H/N>> endobj 23836 0 obj <>/P 11359 0 R/Type/Annot/A 24118 0 R/Subtype/Link/Rect[391 229 403 238]/Border[0 0 0]/H/N>> endobj 23837 0 obj <>/P 11359 0 R/Type/Annot/A 24113 0 R/Subtype/Link/Rect[400 219 410 228]/Border[0 0 0]/H/N>> endobj 23838 0 obj <>/P 11359 0 R/Type/Annot/A 24109 0 R/Subtype/Link/Rect[412 219 425 228]/Border[0 0 0]/H/N>> endobj 23839 0 obj <>/P 11359 0 R/Type/Annot/A 24104 0 R/Subtype/Link/Rect[427 219 441 228]/Border[0 0 0]/H/N>> endobj 23840 0 obj <>/P 11359 0 R/Type/Annot/A 24099 0 R/Subtype/Link/Rect[443 219 457 228]/Border[0 0 0]/H/N>> endobj 23841 0 obj <>/P 11359 0 R/Type/Annot/A 24095 0 R/Subtype/Link/Rect[459 219 473 228]/Border[0 0 0]/H/N>> endobj 23842 0 obj <>/P 11359 0 R/Type/Annot/A 24091 0 R/Subtype/Link/Rect[475 219 492 229]/Border[0 0 0]/H/N>> endobj 23843 0 obj <>/P 11359 0 R/Type/Annot/A 24086 0 R/Subtype/Link/Rect[493 219 507 228]/Border[0 0 0]/H/N>> endobj 23844 0 obj <>/P 11359 0 R/Type/Annot/A 24083 0 R/Subtype/Link/Rect[359 209 371 218]/Border[0 0 0]/H/N>> endobj 23845 0 obj <>/P 11359 0 R/Type/Annot/A 24185 0 R/Subtype/Link/Rect[434 199 440 208]/Border[0 0 0]/H/N>> endobj 23846 0 obj <>/P 11359 0 R/Type/Annot/A 24076 0 R/Subtype/Link/Rect[442 199 452 208]/Border[0 0 0]/H/N>> endobj 23847 0 obj <>/P 11359 0 R/Type/Annot/A 24071 0 R/Subtype/Link/Rect[454 199 464 208]/Border[0 0 0]/H/N>> endobj 23848 0 obj <>/P 11359 0 R/Type/Annot/A 24066 0 R/Subtype/Link/Rect[466 199 476 208]/Border[0 0 0]/H/N>> endobj 23849 0 obj <>/P 11359 0 R/Type/Annot/A 24061 0 R/Subtype/Link/Rect[478 199 492 208]/Border[0 0 0]/H/N>> endobj 23850 0 obj <>/P 11359 0 R/Type/Annot/A 24056 0 R/Subtype/Link/Rect[494 199 508 208]/Border[0 0 0]/H/N>> endobj 23851 0 obj <>/P 11359 0 R/Type/Annot/A 24053 0 R/Subtype/Link/Rect[359 189 373 198]/Border[0 0 0]/H/N>> endobj 23852 0 obj <>/P 11359 0 R/Type/Annot/A 24047 0 R/Subtype/Link/Rect[375 189 389 198]/Border[0 0 0]/H/N>> endobj 23853 0 obj <>/P 11359 0 R/Type/Annot/A 24041 0 R/Subtype/Link/Rect[391 189 405 198]/Border[0 0 0]/H/N>> endobj 23854 0 obj <>/P 11359 0 R/Type/Annot/A 24034 0 R/Subtype/Link/Rect[407 189 421 198]/Border[0 0 0]/H/N>> endobj 23855 0 obj <>/P 11359 0 R/Type/Annot/A 24028 0 R/Subtype/Link/Rect[423 189 440 199]/Border[0 0 0]/H/N>> endobj 23856 0 obj <>/P 11359 0 R/Type/Annot/A 24023 0 R/Subtype/Link/Rect[441 189 455 198]/Border[0 0 0]/H/N>> endobj 23857 0 obj <>/P 11359 0 R/Type/Annot/A 24019 0 R/Subtype/Link/Rect[457 189 471 198]/Border[0 0 0]/H/N>> endobj 23858 0 obj <>/P 11359 0 R/Type/Annot/A 24012 0 R/Subtype/Link/Rect[473 189 489 199]/Border[0 0 0]/H/N>> endobj 23859 0 obj <>/P 11359 0 R/Type/Annot/A 24007 0 R/Subtype/Link/Rect[490 189 504 198]/Border[0 0 0]/H/N>> endobj 23860 0 obj <>/P 11359 0 R/Type/Annot/A 24001 0 R/Subtype/Link/Rect[359 179 373 188]/Border[0 0 0]/H/N>> endobj 23861 0 obj <>/P 11359 0 R/Type/Annot/A 23996 0 R/Subtype/Link/Rect[375 179 389 188]/Border[0 0 0]/H/N>> endobj 23862 0 obj <>/P 11359 0 R/Type/Annot/A 23990 0 R/Subtype/Link/Rect[391 179 405 188]/Border[0 0 0]/H/N>> endobj 23863 0 obj <>/P 11359 0 R/Type/Annot/A 23985 0 R/Subtype/Link/Rect[407 179 421 188]/Border[0 0 0]/H/N>> endobj 23864 0 obj <>/P 11359 0 R/Type/Annot/A 23980 0 R/Subtype/Link/Rect[423 179 437 188]/Border[0 0 0]/H/N>> endobj 23865 0 obj <>/P 11359 0 R/Type/Annot/A 24102 0 R/Subtype/Link/Rect[439 179 455 189]/Border[0 0 0]/H/N>> endobj 23866 0 obj <>/P 11359 0 R/Type/Annot/A 23974 0 R/Subtype/Link/Rect[456 179 470 188]/Border[0 0 0]/H/N>> endobj 23867 0 obj <>/P 11359 0 R/Type/Annot/A 23969 0 R/Subtype/Link/Rect[472 179 489 189]/Border[0 0 0]/H/N>> endobj 23868 0 obj <>/P 11359 0 R/Type/Annot/A 23965 0 R/Subtype/Link/Rect[489 179 501 188]/Border[0 0 0]/H/N>> endobj 23869 0 obj <>/P 11359 0 R/Type/Annot/A 23962 0 R/Subtype/Link/Rect[419 169 429 178]/Border[0 0 0]/H/N>> endobj 23870 0 obj <>/P 11359 0 R/Type/Annot/A 23958 0 R/Subtype/Link/Rect[431 169 443 178]/Border[0 0 0]/H/N>> endobj 23871 0 obj <>/P 11359 0 R/Type/Annot/A 23955 0 R/Subtype/Link/Rect[414 159 424 168]/Border[0 0 0]/H/N>> endobj 23872 0 obj <>/P 11359 0 R/Type/Annot/A 23952 0 R/Subtype/Link/Rect[426 159 436 168]/Border[0 0 0]/H/N>> endobj 23873 0 obj <>/P 11359 0 R/Type/Annot/A 23949 0 R/Subtype/Link/Rect[438 159 448 168]/Border[0 0 0]/H/N>> endobj 23874 0 obj <>/P 11359 0 R/Type/Annot/A 23945 0 R/Subtype/Link/Rect[450 159 460 168]/Border[0 0 0]/H/N>> endobj 23875 0 obj <>/P 11359 0 R/Type/Annot/A 23942 0 R/Subtype/Link/Rect[462 159 476 168]/Border[0 0 0]/H/N>> endobj 23876 0 obj <>/P 11359 0 R/Type/Annot/A 23938 0 R/Subtype/Link/Rect[478 159 492 168]/Border[0 0 0]/H/N>> endobj 23877 0 obj <>/P 11359 0 R/Type/Annot/A 23934 0 R/Subtype/Link/Rect[494 159 508 168]/Border[0 0 0]/H/N>> endobj 23878 0 obj <>/P 11359 0 R/Type/Annot/A 24037 0 R/Subtype/Link/Rect[359 149 373 158]/Border[0 0 0]/H/N>> endobj 23879 0 obj <>/P 11359 0 R/Type/Annot/A 23929 0 R/Subtype/Link/Rect[375 149 389 158]/Border[0 0 0]/H/N>> endobj 23880 0 obj <>/P 11359 0 R/Type/Annot/A 23924 0 R/Subtype/Link/Rect[391 149 405 158]/Border[0 0 0]/H/N>> endobj 23881 0 obj <>/P 11359 0 R/Type/Annot/A 23920 0 R/Subtype/Link/Rect[407 149 421 158]/Border[0 0 0]/H/N>> endobj 23882 0 obj <>/P 11359 0 R/Type/Annot/A 23915 0 R/Subtype/Link/Rect[423 149 435 158]/Border[0 0 0]/H/N>> endobj 23883 0 obj <>/P 11359 0 R/Type/Annot/A 23912 0 R/Subtype/Link/Rect[159 488 170 497]/Border[0 0 0]/H/N>> endobj 23884 0 obj <>/P 11359 0 R/Type/Annot/A 23908 0 R/Subtype/Link/Rect[174 488 189 497]/Border[0 0 0]/H/N>> endobj 23885 0 obj <>/P 11359 0 R/Type/Annot/A 23904 0 R/Subtype/Link/Rect[191 488 205 497]/Border[0 0 0]/H/N>> endobj 23886 0 obj <>/P 11359 0 R/Type/Annot/A 23900 0 R/Subtype/Link/Rect[207 488 226 497]/Border[0 0 0]/H/N>> endobj 23887 0 obj <>/P 11359 0 R/Type/Annot/A 23897 0 R/Subtype/Link/Rect[220 278 232 287]/Border[0 0 0]/H/N>> endobj 23888 0 obj <> endobj 23889 0 obj <> endobj 23890 0 obj <> endobj 23891 0 obj <> endobj 23892 0 obj <> endobj 23893 0 obj <> endobj 23894 0 obj <> endobj 23895 0 obj <> endobj 23896 0 obj <> endobj 23897 0 obj <> endobj 23898 0 obj <> endobj 23899 0 obj <> endobj 23900 0 obj <> endobj 23901 0 obj <> endobj 23902 0 obj <> endobj 23903 0 obj <> endobj 23904 0 obj <> endobj 23905 0 obj <> endobj 23906 0 obj <> endobj 23907 0 obj <> endobj 23908 0 obj <> endobj 23909 0 obj <> endobj 23910 0 obj <> endobj 23911 0 obj <> endobj 23912 0 obj <> endobj 23913 0 obj <> endobj 23914 0 obj <> endobj 23915 0 obj <> endobj 23916 0 obj <> endobj 23917 0 obj <> endobj 23918 0 obj <> endobj 23919 0 obj <> endobj 23920 0 obj <> endobj 23921 0 obj <> endobj 23922 0 obj <> endobj 23923 0 obj <> endobj 23924 0 obj <> endobj 23925 0 obj <> endobj 23926 0 obj <> endobj 23927 0 obj <> endobj 23928 0 obj <> endobj 23929 0 obj <> endobj 23930 0 obj <> endobj 23931 0 obj <> endobj 23932 0 obj <> endobj 23933 0 obj <> endobj 23934 0 obj <> endobj 23935 0 obj <> endobj 23936 0 obj <> endobj 23937 0 obj <> endobj 23938 0 obj <> endobj 23939 0 obj <> endobj 23940 0 obj <> endobj 23941 0 obj <> endobj 23942 0 obj <> endobj 23943 0 obj <> endobj 23944 0 obj <> endobj 23945 0 obj <> endobj 23946 0 obj <> endobj 23947 0 obj <> endobj 23948 0 obj <> endobj 23949 0 obj <> endobj 23950 0 obj <> endobj 23951 0 obj <> endobj 23952 0 obj <> endobj 23953 0 obj <> endobj 23954 0 obj <> endobj 23955 0 obj <> endobj 23956 0 obj <> endobj 23957 0 obj <> endobj 23958 0 obj <> endobj 23959 0 obj <> endobj 23960 0 obj <> endobj 23961 0 obj <> endobj 23962 0 obj <> endobj 23963 0 obj <> endobj 23964 0 obj <> endobj 23965 0 obj <> endobj 23966 0 obj <> endobj 23967 0 obj <> endobj 23968 0 obj <> endobj 23969 0 obj <> endobj 23970 0 obj <> endobj 23971 0 obj <> endobj 23972 0 obj <> endobj 23973 0 obj <> endobj 23974 0 obj <> endobj 23975 0 obj <> endobj 23976 0 obj <> endobj 23977 0 obj <> endobj 23978 0 obj <> endobj 23979 0 obj <> endobj 23980 0 obj <> endobj 23981 0 obj <> endobj 23982 0 obj <> endobj 23983 0 obj <> endobj 23984 0 obj <> endobj 23985 0 obj <> endobj 23986 0 obj <> endobj 23987 0 obj <> endobj 23988 0 obj <> endobj 23989 0 obj <> endobj 23990 0 obj <> endobj 23991 0 obj <> endobj 23992 0 obj <> endobj 23993 0 obj <> endobj 23994 0 obj <> endobj 23995 0 obj <> endobj 23996 0 obj <> endobj 23997 0 obj <> endobj 23998 0 obj <> endobj 23999 0 obj <> endobj 24000 0 obj <> endobj 24001 0 obj <> endobj 24002 0 obj <> endobj 24003 0 obj <> endobj 24004 0 obj <> endobj 24005 0 obj <> endobj 24006 0 obj <> endobj 24007 0 obj <> endobj 24008 0 obj <> endobj 24009 0 obj <> endobj 24010 0 obj <> endobj 24011 0 obj <> endobj 24012 0 obj <> endobj 24013 0 obj <> endobj 24014 0 obj <> endobj 24015 0 obj <> endobj 24016 0 obj <> endobj 24017 0 obj <> endobj 24018 0 obj <> endobj 24019 0 obj <> endobj 24020 0 obj <> endobj 24021 0 obj <> endobj 24022 0 obj <> endobj 24023 0 obj <> endobj 24024 0 obj <> endobj 24025 0 obj <> endobj 24026 0 obj <> endobj 24027 0 obj <> endobj 24028 0 obj <> endobj 24029 0 obj <> endobj 24030 0 obj <> endobj 24031 0 obj <> endobj 24032 0 obj <> endobj 24033 0 obj <> endobj 24034 0 obj <> endobj 24035 0 obj <> endobj 24036 0 obj <> endobj 24037 0 obj <> endobj 24038 0 obj <> endobj 24039 0 obj <> endobj 24040 0 obj <> endobj 24041 0 obj <> endobj 24042 0 obj <> endobj 24043 0 obj <> endobj 24044 0 obj <> endobj 24045 0 obj <> endobj 24046 0 obj <> endobj 24047 0 obj <> endobj 24048 0 obj <> endobj 24049 0 obj <> endobj 24050 0 obj <> endobj 24051 0 obj <> endobj 24052 0 obj <> endobj 24053 0 obj <> endobj 24054 0 obj <> endobj 24055 0 obj <> endobj 24056 0 obj <> endobj 24057 0 obj <> endobj 24058 0 obj <> endobj 24059 0 obj <> endobj 24060 0 obj <> endobj 24061 0 obj <> endobj 24062 0 obj <> endobj 24063 0 obj <> endobj 24064 0 obj <> endobj 24065 0 obj <> endobj 24066 0 obj <> endobj 24067 0 obj <> endobj 24068 0 obj <> endobj 24069 0 obj <> endobj 24070 0 obj <> endobj 24071 0 obj <> endobj 24072 0 obj <> endobj 24073 0 obj <> endobj 24074 0 obj <> endobj 24075 0 obj <> endobj 24076 0 obj <> endobj 24077 0 obj <> endobj 24078 0 obj <> endobj 24079 0 obj <> endobj 24080 0 obj <> endobj 24081 0 obj <> endobj 24082 0 obj <> endobj 24083 0 obj <> endobj 24084 0 obj <> endobj 24085 0 obj <> endobj 24086 0 obj <> endobj 24087 0 obj <> endobj 24088 0 obj <> endobj 24089 0 obj <> endobj 24090 0 obj <> endobj 24091 0 obj <> endobj 24092 0 obj <> endobj 24093 0 obj <> endobj 24094 0 obj <> endobj 24095 0 obj <> endobj 24096 0 obj <> endobj 24097 0 obj <> endobj 24098 0 obj <> endobj 24099 0 obj <> endobj 24100 0 obj <> endobj 24101 0 obj <> endobj 24102 0 obj <> endobj 24103 0 obj <> endobj 24104 0 obj <> endobj 24105 0 obj <> endobj 24106 0 obj <> endobj 24107 0 obj <> endobj 24108 0 obj <> endobj 24109 0 obj <> endobj 24110 0 obj <> endobj 24111 0 obj <> endobj 24112 0 obj <> endobj 24113 0 obj <> endobj 24114 0 obj <> endobj 24115 0 obj <> endobj 24116 0 obj <> endobj 24117 0 obj <> endobj 24118 0 obj <> endobj 24119 0 obj <> endobj 24120 0 obj <> endobj 24121 0 obj <> endobj 24122 0 obj <> endobj 24123 0 obj <> endobj 24124 0 obj <> endobj 24125 0 obj <> endobj 24126 0 obj <> endobj 24127 0 obj <> endobj 24128 0 obj <> endobj 24129 0 obj <> endobj 24130 0 obj <> endobj 24131 0 obj <> endobj 24132 0 obj <> endobj 24133 0 obj <> endobj 24134 0 obj <> endobj 24135 0 obj <> endobj 24136 0 obj <> endobj 24137 0 obj <> endobj 24138 0 obj <> endobj 24139 0 obj <> endobj 24140 0 obj <> endobj 24141 0 obj <> endobj 24142 0 obj <> endobj 24143 0 obj <> endobj 24144 0 obj <> endobj 24145 0 obj <> endobj 24146 0 obj <> endobj 24147 0 obj <> endobj 24148 0 obj <> endobj 24149 0 obj <> endobj 24150 0 obj <> endobj 24151 0 obj <> endobj 24152 0 obj <> endobj 24153 0 obj <> endobj 24154 0 obj <> endobj 24155 0 obj <> endobj 24156 0 obj <> endobj 24157 0 obj <> endobj 24158 0 obj <> endobj 24159 0 obj <> endobj 24160 0 obj <> endobj 24161 0 obj <> endobj 24162 0 obj <> endobj 24163 0 obj <> endobj 24164 0 obj <> endobj 24165 0 obj <> endobj 24166 0 obj <> endobj 24167 0 obj <> endobj 24168 0 obj <> endobj 24169 0 obj <> endobj 24170 0 obj <> endobj 24171 0 obj <> endobj 24172 0 obj <> endobj 24173 0 obj <> endobj 24174 0 obj <> endobj 24175 0 obj <> endobj 24176 0 obj <> endobj 24177 0 obj <> endobj 24178 0 obj <> endobj 24179 0 obj <> endobj 24180 0 obj <> endobj 24181 0 obj <> endobj 24182 0 obj <> endobj 24183 0 obj <> endobj 24184 0 obj <> endobj 24185 0 obj <> endobj 24186 0 obj <> endobj 24187 0 obj <> endobj 24188 0 obj <> endobj 24189 0 obj <> endobj 24190 0 obj <> endobj 24191 0 obj <> endobj 24192 0 obj <> endobj 24193 0 obj <> endobj 24194 0 obj <> endobj 24195 0 obj <> endobj 24196 0 obj <> endobj 24197 0 obj <> endobj 24198 0 obj <> endobj 24199 0 obj <> endobj 24200 0 obj <> endobj 24201 0 obj <> endobj 24202 0 obj <> endobj 24203 0 obj <> endobj 24204 0 obj <> endobj 24205 0 obj <> endobj 24206 0 obj <> endobj 24207 0 obj <> endobj 24208 0 obj <> endobj 24209 0 obj <> endobj 24210 0 obj <> endobj 24211 0 obj <> endobj 24212 0 obj <> endobj 24213 0 obj <> endobj 24214 0 obj <> endobj 24215 0 obj <> endobj 24216 0 obj <> endobj 24217 0 obj <> endobj 24218 0 obj <> endobj 24219 0 obj <> endobj 24220 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24221 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 24222 0 obj <> endobj 24223 0 obj <> endobj 24224 0 obj <> endobj 24225 0 obj <> endobj 24226 0 obj <> endobj 24227 0 obj <> endobj 24228 0 obj <> endobj 24229 0 obj <> endobj 24230 0 obj <> endobj 24231 0 obj <> endobj 24232 0 obj <> endobj 24233 0 obj <> endobj 24234 0 obj <> stream q /X1 Do Q q endstream endobj 24235 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 24236 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 24237 0 obj <> stream HWk6_~F|- 4IHEfBc3Jeɕ $% ]QLJsyuK5Looz-Kw߽~&#*%bI&XD 6ѿX1au[MMCsٱn F[dmQ ARVdyZ1?Ի;y%tI}pJ rQ4\4Y>l?ZN$-baD(M!c$OO0'{>lϢRf0RZFR22 p>,C!K,_;x ԋ@ ԋ@$@$@$@"ԫ@"ԫ@&@&@&@}F> ,B}ZAǀEǐE\+kZZC>p \c"k} Xk} Yp!PVc$ B>,µ>P!+Tc"\c"k} Ypp!PV1dJµ>,µ>,B}ZIǐE\+ k%ZC>p$\cH1d} Xk} YzCVǀEǐE\kZZC>p"\c"Uk} Xk} Yp!PV1`1d*µ>,B}ZEǎ&\c B>P}eX V1zn78"d,J=FwO8ͫ6jjnȾ]ն5=cϽmnݵ6Wqe^$(qڗS&:Ksݱ,r0I*-ҍS]oJ P%]~8B0\z^اծaËoTxaܺ+mlL6ܠ,K ˅;il Ke0eyM\ڼOyS8ĬOvRz<P^b瓡{k~GWVVUJu0m|;V{)fz iqPZv <Yl 4A6ݮ=kTǦp.i>f}n7G_:M 7ODʋ5~7ov&d ~yoBn^*F'l [M]R,ϋ+dL$pdq}g,,(̞"aOHo"8C&%mLh9'I5.y5+fiY|e5rC{8V]XGyĝI:癵!IyJW-RvJ̑aP͒\~.LARksLou7fXuq:OHQ3He>n0>u &J\p,e츞+8I[`M19~oMcx斵s^iy}EZtZmE((ŕ.(qH_.~T 8Oe|ύM7aa A7, au pxFlˤx6o Grn#s0mRe.|ØF-I (Uf?)k^GJKؾY//d6LtEEb9qwt8K&@Hc4x=^'Rn_TZYn3#Kj5 f#{1Tw;Lܽ*v(V4jq3vQ{܌UjjLJ0X|_@P?\^bIGKfM() Mr<)|čǷ&ݟ\bw8ZFTkj#\2or/6 oذl VN5!ma<mV,=H|K n|= ztb JSOڬZIɪ}} VFh'(كлg!3o;<4[ؿje3w:16bQ7ϳ/n6#~֮PDŐ< ~Hޚ ^BIpH{ p6vH~!a>\!i^(Lky2m$r ,ɕ܌> u> @ \54l'5թ~s⻑R:8e;*KgV+r u*,t~y4}(Q `s._7xs-JP:>pEGnbO .endstream endobj 24238 0 obj <>/P 828 0 R/Type/Annot/A 24239 0 R/Subtype/Link/Rect[93.6001968 500.429993 200.028 520.109985]/Border[0 0 0]/H/N>> endobj 24239 0 obj <> endobj 24240 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24241 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 24242 0 obj <> stream q /X1 Do Q q endstream endobj 24243 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 24244 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 24245 0 obj <> stream HW]oF|篸GHݵFII&*`"1SIT)I}(0l ٽ̑:}?jvvvחg^J$R"GDj1," ,B}ZIcER+b XDj1X(H-PVb,Qj%Z>J$Ryb,bZVcb,QjZ>J"R1`X`*" ,B}ZEc"R"GUDj1X(H-ƀEcERb,QjZMcb,b X=ƀEcERb,Qj5ZH-PVX`j"Z>J&R"GDj1," ,B}ZMcERbl" X=ƀEcX`}׌FdW~ Jt+QpdG hA(Z%ޝ'?%\endstream endobj 24246 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24247 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 24248 0 obj <> endobj 24249 0 obj <> endobj 24250 0 obj <> endobj 24251 0 obj <> endobj 24252 0 obj <> stream q /X1 Do Q q endstream endobj 24253 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 24254 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 24255 0 obj <> stream HW]o|_䃗"0lHI0$Q I~}gf{-ɖ )vM^a닟loy_ 3~0|>j<]m{paps5LW'bgw/E\犘s6eMSuq+ٟ|{Ͽrќp{?}}a?64w (MY_'ٚ'x?^zOl >L5SS%25^8F,VFvkxNwz'{E꽢 ^QB}P>*PQ('E}ꓢ> YQB}Vg(P_E*WEUL˱rXR=R\1bI#T1rXzZcR :ŵKq-Ljuk9F,EpS\1rXzZcR :ŵKq-Ljuk9F,EpS\˱rXR=R\1bI#T1rXzZcR zŵKq-Ljk9F,EpW\1rXzZcR zŵKq-Ljk9F,EpW\˱rXR=R\1bI#T1rXzڠcR ŵKq-Lj k9F,EpmP\1rXzڠcR ŵKq-Lj k9F,EpmP\˱rXR=R\1bI#vCnN9;3= 0=M;K{9yD 0#$ϱtaWw'L64|${;߽{n'xhbS^/dۨC6mCm˚E%Z={??МҗgPܺc bT6JaǗ"M>^ΆEzXr)07F|0x 61VN*WTWTWTmedUx~>r"oX#' k5reܟF7SVGOX# k~*R5rʪ\iVG; VxGS, Ӧwyz?lݏ iE@njۻXߙ$RJ#`QK혰o3h!F`oik`5xْ OMR@ ԵCs?^mł(Rj+a;E Mc⻄De-$h}%T}j9&yg8n +Bߛ\<ф"zZjPך}BZZRfͧM{SH3XT/ _,IIu{xn>ίdi@5ڀ7ѽ;6E/ڔmSfLG,J;cȆE8e; kM='LOM/\CMM.|ʂ6ˣ0qu>$X=մ8ITTp#w h>/Nj{V=/DhOmۜϦ64}̦>a|duuT>|vwAOү,4c-~=YHm@7T_ތyrc6nljqܶib%|T8[ c$3P>ЉGTzeb,;AR\5hH Cա?OS1:C~hN(4dMmw*b"# О@W@}u;'BdRx`$fS&dH;Eq5#`2X6R L>EG+Bz1,%בT`'B @U.T7c!&l38zkQ׻W;0̕я`A<#NsfgUK-'/NfR=\V9ZQ>ȔT@ZE3S^ѭ8|A?Q]+WM~}K!:$ &@TdԒC<~N2μM7$n|.,M|/q(F)nܑ^XR$nZjp ګ,KϧhJkmWRP{VBEv"_ N iXJ̏F%Vx$fKq<q'={Qva1R;J]Z~ԨpF;pIm?^py=x ߇D{S܊ W7Fs,^*!TjVL桟8=]~_+#|;s#l}EcQ9#hڡ)+p>?[9F͊ 'KeE%[UEvB?M{wBuH(ZYL2E,1z%SgNPDZ ]qvZe>F0՞Ӝ0ɢn&{(Dl L^ 5q0BSĬ]JF,`Ǣ-kgV}O^̬Op~v{jI}҄H 宖׎ Pһc@GEO h?ܘfr~2{#/Jd@X 8]OdCcOhճsk|aAؖ*2ק5C0qiC/:{a`4iY9=W? ܶTm}λeendstream endobj 24256 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24257 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 24258 0 obj <> endobj 24259 0 obj <> endobj 24260 0 obj <> endobj 24261 0 obj <> endobj 24262 0 obj <> endobj 24263 0 obj <> stream H\n0 y CE@Z !U841Q~1:H_pNPҴ#WдF;SWFVV]mEi+MӋ,M:k957X}nvhFB 9mSjoisv|N!!Q ]mn(9d?rFG{N6v"hv'!s9fggNc9!NSb,{ȚG₿'L|a?%S$bw;b)g&tn. ,З }З)ISrDTJo> stream q /X1 Do Q q endstream endobj 24265 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 24266 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 24267 0 obj <> stream HWko_1 @ 4`dI"aP%Jf**I; wlEX:9sp朑8mtɯo_X|yxm֫$w:*KNjwbT4Xg]u[뺩6eTsTOVUM seQ2 0I 8W&}*]Uo&?`\aNyguѮ>.Hiwϼ֌M>Wl7WtL:!ϜA7Ekӓi*_A N]~BE&xD!;ѧ($8'#Q Y|:"ES XVpo{+̽; s{{g}'O s S>ܧ}&ϘLp1>cs}=JKMdR Y=ŀ%b),bZK1d YkZ!KpZkR XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` Vh-Ő%gBk)Z!R Y=ŐS XBk),=kZK1d YkZKh-Ő%guBk),=kZK1` Nh-Ő%guBk),C Nh-6ZK1dqZ!{Kh-Ő%gBk),=kZK1` ^h-Ő%gBk),C ^h-ŀ%bܳzC &JR Y=ŀ%b),>W1wt;DhRFU,X0i,Nh_fS.GTRMGj^Pt4G'j~]dx݉dV*MNu9cNM:7]7SuDnآ8hw= F#e-aykm*˧ѰJ٦T/t=x u7AgG/ P|^Z?da?~&}v/ lqǛ SlށzX:8"J}jf_i$a8RݴU0@u1jS/J֏aQ͙cOG+U`uŃzV!Yvv~#4u'>4C$;Lg{hQ_wCdH`Cv2v4mWeF7=6$!Xp2,Zm,%>`@z8|^\9Ya"c4tM->@V÷u\B fFgOtnKإeܟ0D>|e]-wwͼSPMU*τrj}|Uv n؇a'YAx?KLz~^g+t^_/ދ6O LSfPOֺ7=L'pvvgswS_||BQlt| H}"'w^mw8Ňks;Oϭ5Nؾ`o ӓWW7tf?AWŐgZ^L+Z JiVʴ2A+cZ1\ʙV.hL+ZiA+P-s-!kQ XF2LZiYA2-+h[!CroS Y˽rO1d Z,V=Ő%h[!CroS Y˽rO1d Z,N=Őŵ(,!CrS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1d Z,N=Ő%h;!CrS Y\brO1d Z,^=Ő%h{!CrS Y˽rO1d Z,^=Ő%h{!CrS Y˽rO1d Z,{!kQ XB),to")xo[FyBI+N0\n0m.[28u/ǣGu 0WUہԝIvU𲶬=4 dLy3B횱Gm0+KO{ۭ0WͶ wmٛ~:|ZNMӺ=:"p;k>f]+.tbz 3|#NɩuOS~`sfkIz/h˲4)#'~tӖpW/+ދYkt9h}͌=М.M! ~~hq9Ve/smbOxzVifM[r*GG* C}"KҦ] AQ]\nb(54N7>VɡCz̜A8AN+2i\vaO/"m]q6PڟSz ݛc)?m4,$c:JX PI>./+`X򐠬|_N\_ fK3\2qj V}kLmm =,cT3-bIt`endstream endobj 24268 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24269 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 24270 0 obj <> endobj 24271 0 obj <> endobj 24272 0 obj <> stream q /X1 Do Q q endstream endobj 24273 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 24274 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 24275 0 obj <> stream HtWm6_Z`_vWM/A=4>MPhmzIJ|ޯ,rEÙ/pt~/q/oF\1^⬔,qK)J㧈Moc7fMt~m2fU$q񦍒BlM(Fq.]sɇnn>HULb=Q.'?7Q4ݶd"~yk⨒9MKFUrQ*T2>D|8QQs}{{{{{W{W{Y>#g`s} y `_ }/ e$ؗ`_+}YN T}"T} >@}"j}jZ(BQ@PC>P TE!`V}"j}>D BQ@Pk#I!*dE!*d}"TET+ >DJBPj}j%Z߇(}ZIPC>P$TET+ >@}"j}j%ZFPCTPCT!*dE!`V}"Uj}>D*BQ@PZ߇(}ZE!`V}"TET>D*B2BQ!{(BQ!{߇}ŪRq ]6DwyGoRV"lcN,7mo6ߢԃ䜩!"Ev<7o8IDdcC38iӓ|vtG[cϣkd7_7,+7ގMFqukgq8tK/4fŴ%z[rdU8C//no=^lg];oF=ݎNq euxmmמk+edX&bYH2V"rz@}d9^띂zRw6߬CDM<)^D/v .YUTC=$gu[V5 /;hNάw5^ևQquJrN%S*ʹO_S&ӹ_az49G PBH&C鳆;K^GUVe36\ &0v{lzaiyl<k1=ԧt<~K|auYд-]lЭ> Tte0r ,ƞ>kBR>C%S59sh#|GDrK/XڀF"[ R3ߌm1콩*Ys. ~mI5wv&ìXXϺoa/^(\iaWyZ:<iND! PR$m,b]Kh .5WU kdm9`WJzdA5(CAqA;rDʋ|jeݫ( >s=XGkwOug3sOuUxɠ_5TVAw:[|s >9/5`*%=z6ZсRd*ggڒ5)8ZxCT^sixrt\3b_YjkN3ѭބ"ݴL+*hw1Dc[rÛ Ftf`_n^/ə,=;&9K2_s׏tソk^rg-!ђ\f%D,5ҙ}w؎_ۿf-)Y挗S&Cb^D {qo?cV`9/+ m$jT/ִiQDk a`:z үx^(*05eJj:U]=lNazӂ} Z+&D~?AZ>[Jů^bjW Z%Qk?*L]?mb93OKS>WQytd#ECFSY$n>~zT$9b> *0qK ń2G4)2pCǧ/7̶a:w+z^^ã9#YvUAokOSl'}=\X3x0y`=O0!]%Z)g_.\-B` {?6al+|b ^;R|ș^;xHa7U<8ePIy3WK6WYU"EJBNyEm!A+sc#^ɰ$ E.z08<9^ &KzA;v VjMe6yMG v*'AU*hnв _sxJEUei-z:rp %[fuyJ( ܮ+tmg%ܙ.S(Vߧ(|o$r "WLTY' e*b=D0W*Drw\W ^TĎTYjΏiJwgɜͰ'z 3g a3=v0QF hN_s"SQIxǶFީ;DZ檞.;ʈ 3,H:?Em+^;_1;9{…JJ9zۏ|"7zm%gh nYI` ǞyT}@7wf@XꓕsK<*b Jp%%rXIH(8s#pdmw`jܹuD/3:-e*LTKKx\!A=[n5坅LEEd$).,(F,*lvp P]9[OLmhNLG#b8H5g 1ZJ,z l)d]zYbrTA7laM̷p4`P8*HNH^KܢZ?/`DٟHQWE wzʙ 3{{Dlp<LJŐXj$N_ (:{_ퟴVunnPPǴv}Ɲ$ZC7ij2ZNYK=5yԁUE&s9q@2Y*,*'.EwJ"Mg'VO|6nӾް4o 2ҁsgr#/ Bk5~D<Ș/ɾ~VUYdO7ǾA,O׍UkO 7,i&@gYr;  AAQc(*:S]"GLm|p;iS93+Dw b L+ЩNd~aܵӗnN2W(/p3+ f_Nk ;w(!>Nlbl}vhb8-%iYLQ'/4s`k߱kFV0 daS?;qGe/,3S9D<;lI?U]7qHyLa8,dpGn_~x͋Hendstream endobj 24276 0 obj <>/P 499 0 R/Type/Annot/A 24277 0 R/Subtype/Link/Rect[93.5992966 468.229004 201.623001 487.908997]/Border[0 0 0]/H/N>> endobj 24277 0 obj <> endobj 24278 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24279 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 24280 0 obj <> stream q /X1 Do Q q endstream endobj 24281 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 24282 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 24283 0 obj <> stream HW]o|r!͊Er&q"AS,CMR-[eEs(˒#EIJܙ9iگ̷N>kJMuOMj`7}W\9/bsw9]~Vb/ޜobҺcoiϊL&L..Qt~Zا9{=.LOnzzk/ftx1]~P(miOflrΖ9=I;ڢ*}r'>)p_)p_)5p_+5p_+5p_+ p( p(}Ug({ Vb%,^b{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb"JYڽĈZ+1ficv/1bJYjm{Z+1bJYjm{Z+1bJYjm{Z+1bJYjm{Z+EAk%,^b{1K@k%,^6JYjm@k%,^6JYjm@k%,^6JYjm@k%,^6JYjmآHcv/1bJYڽĘgs;,7m1i[giϊҴ'&Y^7U]`E1/_/޼27j:|9n13s4r^ᇣޠTyW+pDZ0퀦mE/ r490ەyޚn\i&9D#=kEO']krq.ֵ\zroξdRUٴa<}gV9wWf~9fjny9R`5&6)hB3;Yg67o#¶Kވ7&`u7WfQz6CKjH'6D7) 5{~H=ˇn ֤z>Α=^T/Ra"ӹjkEnѼgn4U>µ b_3}ˣ__.AOۜ?bxq'Pm쾀U_r!mAh_9Vwr;)fvuo.iחw'MT= :6reft4Ϟoj%gl#Gꮿ:%7b]#%s0v8=mS{nG~3Xtfo4w`5s uqWy[ݎkn m>!.SА%axt!! (1feRZhEVTZ h%VRZЪV*UZi@VZ jVVVZheK%1fi--rJ-KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KYZKbV9~JOobҺcz0Y 0Ǥ`1_bOfw}g8#g]n? PήM?v͈U(򡟭 F/>3 }Dendstream endobj 24284 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24285 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 24286 0 obj <> endobj 24287 0 obj <> stream q /X1 Do Q q endstream endobj 24288 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 24289 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 24290 0 obj <> stream HWoFŢQ~]si4i`$f Q>oEI{c ѓyZ<}_4z+_: h\SqfĨ4alTS:uUoznU5L5Up˥QmrNQZMATr(SUqrYκj]G8LMO.wco7zr:[^,C q:N6cR=Q{s7K`C[F} r&JQF Oep1䒓3 qXr9y֒0bŀŽk-s̳ po{V-po{;NXXXODODOTOTOTπLπLρ\ρ{Y J˱U`@k9F,cZ1bI#t1{ZZ1bcZ1bcEk h-< cEk h-Lj܋Zyh-Lj܋Z 5[cĒ9Y#t1bI,Z #p/ZkAk9Y#p/ZkAk9F,^ւr̳@k9F,^ւrXhgrXh{Z Z˱U@k9F,cZ1bI#t1{ZZ1bcZ1bcEkh-< cEkh-Lj܋:Zyh-Lj܋:Z u[1h-Lj%s̳@k9F,cĒ0s"gt9[/T_t6y$t|LoJut=˿rW/6\D&LuU̿Q(5S1PH~,{;ggkt6b WnrY}i{CQ$ܙ/Y _kwjUf?S,JG3?ܗϊ.nbd"?]=u8T|U}ol\ӛj)[Qwuŋnsu? bX妚mS}+ ߧ]xr,Uy+U0(mvmWtC~H9O_&UK6 TH+,倖Zh9Xh@+Z JVTh@+ZʄV2\h@+Z&Z#giZZheZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cĒZ,{ h[{ h[{ h[{ h[{ h[{ h[{ h[{ h[{ h;{Kjq̳@9F,%r@9F,%r@9F,%r@9F,%r@9F,%r@9F,%r@9F,%r@9F,%r@9F,%rsXRcb Dc;c9$֋w/y; ݍ(Cq{W7?R&Lrz5pdh)w[7ϏNlEc-k5r_-uO7arؿaeWSv ݼhie|Gq0?;t˦׏&}=eQOt٪kfc[{0ʲ~/:ńN9-);B.lbz^ղTuvEݵCB:clKU4k˹֛UiٺނnJR {?h3>YBvGC}ۢ)uӛg{piީ{Ӄ/M˯Icr;쩛y#Ra/bV7]|&7N'Ļ?~xwOCOf4JO.~0)cvMJgZ}U_֫BN,|tn|V/$a[>{t=un#><3Na[%l&z~؜ RHkJ^ۮnhw0Yo`,}7 9VVpԿ;:_~̆Ό8OO~}qիmHxnmv+xgn-Imw.pP p~~kU8>nN~ <><跐ct?nkUE[wЫ Ljr@ -ЊV,b h%B+ZJV*R heB+ZʁV.S^mq@_kQċn@Q(@:EhYr%wFp6Iv4{x8 WAdrQB.`D%.pIK\ t/S@=! t/S@=! t/S@=! t/S@=!*>@1>D1\{C^1>D1\{C^1>D1\{C^1>D1\{C^1>D1\5{CTE}btO}bkFԇ(+нftO}bkFԇ(+нftO}bkFԇ(+нftO}bkFԇ(+нftO}b'Q!=!**"xj࿚Ьz%O0Vu%"j,rkPjc[L@DP¤KYөӮVg7-C Jm{yd :|a4 MWz2}m}crp|[V l8k I@)qIٟ0zیV~K?rnʇʠTC07궲 aߋdEeׯ#W1?lJ@X(-kf`H_ h4~/p2YUH0T]lz ^p-r!`zS b;˃7k09[=5uko(MP#wX"ƌfo]1tb'6#NGH"1r \"$Wb mx4ݜSj:tEmd\qpr+T+ܒe$nM,Zl\#Uti[q8s|p= K>ZO9yrћp0OYY<,tZJpp} jΛ⋱ϵuTS=9j`bB\/U`mbgfrʓJ@Y34u0ep ysBe΀,\4VmsꂇB.4ݎòG[]a,N9Z:#_>YʩVB=qRVȄpӷ}nnڡGId*p/UN89%SZdo붅}Nc`Vv{ Lѻջ~cs>!6endstream endobj 24291 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24292 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 24293 0 obj <> endobj 24294 0 obj <> endobj 24295 0 obj <> endobj 24296 0 obj <> endobj 24297 0 obj <> endobj 24298 0 obj <> stream q /X1 Do Q q endstream endobj 24299 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 24300 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 24301 0 obj <> stream HWێ8}WQ tt3Hml:Ai[,y$Vd :>dyˇ_~yͻ! 7_W1/B_0e0Ke&`.a/rnꠇZ]w}z\/"jEXapu"w#M^ӸHb>:ͿI"/v>{!Ymcy~<f_ٞ*`L{ cC+?pLc,!(+>Er S8ΤGr1d\ X,CVB\] XP/

'SO}JO=)>gS3O}F<9>S_ O}A< Ӻ!k] YzZCŐw1`u1d= µ.,BZAŀEŐE\+׺kZZCs \b"{k] Xk] Yzϵp!PVuC ׺|.,µ.,_!Wb"\b"{k] Yzϵpp!PVu1d=Jµ.,µ.,BZIŐE\+ ׺׺k%ZCs$\b@u1d] Xk] YzCŀEŐE\׺kZZCs"\b"{Uk] Xk] Yzϵp!PVu1`u1d=*µ.,BZEABŐw1`u1d] Y".B ]4ׇ*x_d6xbp9࢈0MpuN̡߭<)1O޽)کwW!ފp#2y8c PtLuϣ`_Sg[ܴg2iQ)(DB@ f91t3t?l,"$I,y88%%-b%Gہґ3X/:UͨY]ƀd^>q,ږUݛ^^vkecU\Ƽ\NZ*\1!1s y)m;4;LDAM6n.XLuY׽g"/ln] Xj#[3`ޝ 2%g[K4\mo7Ey%YLGu{%IOC}J3. 6 ="s5G^I5:<\P?YE-vTaPNSaSpZ ~h-RsDt,,u*resMՊ<wAfITr=Moߌ4u:3rԥ3rhDLĢ1gt2 !VxvO;vyY| %`tˀVy&P5K'1^+9qOۖ-lٰGR6hmcW=97TuʔlOT0]$V㳌(^9NXy,^*7e3q0Ʃ7eHgfL R2WhZ<-r5}@#!ERVEmyO!i: \pV=[.6}fl/R6(JЀ@ދhtOZN:`"uf9=iz3TrUѼ _Hۣ(&]T$t e/ @:j  o>tן5KѼjY+]W]|#$Wp`){+́zUGŅz}ԚɃ3?{mAūn/emwS{S^j/=CȱnEO+~6LC؝*Y1ahe*셧5O^MwDz pvz߿ rAcZKwb'Qh|Vv78: ʆTd[h"r"qpc"XO*%1ir\-娿hA?r6uf2 q+ovv8!o?;YSgi ,]_ŜO@;b(`ݝDӬCP|HU#xTs0( W73T?G'1_fWUu^R(0>y]z0WIzZ$W*eټl+ #|QeSπ*Y޲0fdֈ8[iJ]ʭL Ǜ 魚X"(ĵVM31YjR4<~Q~+Q_Md|l,JyrJ7{ɺ#*︥FrzUS|?9䉏ZIg¼n1шang+jnBQb -pvr9"{3PoؼrbwG{Nob$dRK[z9#"Dp0bf<2+Ta&v=d^O9ǾrV8S,{NeZZGVԪFv=Y}0TkI rn+aDiWCÁ该`0( еoy(Ion~ 5t-r;v}EO]z6*/4U$#Ǽ:X%?7gue{~3BfM?C,bT$;/1c̜y>V#n*k1}Qs,w.~9oqq{>.;ejrgRRE0 HAW:,%gŮ55h)qLJg-:h "Խ.LZ]#i:u5|C p( 7yAc-ygF[9Uݫ"R!tyrAVvgpTse<Ү kY2dAr缭P=*lSwhSDp1ΝseanW @UZV[s& ƌ lɋ. G%O`3lgUq- -@h0p҄" apPaA;޹HnL.:'X:J|HvE) ?z1IQl3  f+b +͔4"M`4A}7fZWx_ez*|{[}ѭЮ.BxX=BS"aQ4(d]RG=Y/7|LY_&zY|.!x08fuhhHNT+tLP\pF?2(#A4 DlQ->yp뇿F`endstream endobj 24302 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24303 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 24304 0 obj <> endobj 24305 0 obj <> stream q /X1 Do Q q endstream endobj 24306 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 24307 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 24308 0 obj <> stream Hoo7Kp$PHQخnr!+KNm%7rW,>UC>Æk?z}\]] Wjf*dUaQ|`낳/`KV].n6jyXò8:IxUGVLsa<0&cxgꯍL˄4vT8jWtZR= }[VxeKi`,W{bVxk|FpHUQ UPBq T $eBz+^%W &uB z$7 !MBo z[&A_%A_%A_%w #]B z{> LV$\P1PcJR8*µq U}ZI6O\+ 1Pc"Jµq U}ZI6pmCAVc"Jµq TkĵpmCAVcBcJ1Tq U)}8*>q"\PE'Uk1Tk8*>q"\@E6O\1Tk8*µq U}ZE6O\ƱU 1Tq TkR8>pmCAVc"jµq TkĵpmCAVc"\PE'Մkĵpm8*>q&\PE'Մkت0kR8*µq U)}CUJKf|ULsᚨcB2[ApUL_AZGJJI?Mno67loÃL) ?ZOugK2yY;%9DGg;ޡdj>'c? +!*AtrLkp5X-tl'6.5rϦ7Pҷ|­]_J݊r,r~1Db-&۷D$oHv#+=ҸGU5F';8$ \n"yvh.K%vs}o %\(Y\DiL{ N4e575cԼu0z1#m¿f{JV=~V.Y݂R\ϟʟzVYz"!6ȬV EX%#XSp޼׶Kۗխ ݤ7|-HL2tNAFN6̣7nzhb[_)g?#*d L󓹌L]g8]bCLkb4Qfd<7^ L*dž~7TE0ց``40Z)M*|Ȼӳ|RU+'b}fyp@¨0 fc+}؃muk3P+B@I^Ζv-2^ýe+ 븾:{`Q'&f &jTpt~_:HtU4[ oqUA5E&!FD7^UMiGeј 쇕6[ &&,vv)ITR&5 }#MoPq9-_7'.? P&rGUWd~WL+ꮄоQ]7͚ˁR]\U6n}"`EFN72F4^|76BOLt,TLXbxHL)njdSRJvPgZuSa޴U/"Xj_(FvJ,ןﳷdH N]N^N)V=dH]r<'CuчC*Jՠ =k"uE7q%q@yU醬D3{AP„ Eu]PiA?n/n&7Cإ>{1=C?ؕ{m{|< rAt//Ӈo-珇l-瑂ڦb19f:$g@鍓A ?CUAE#2GQE"&w|f않e)|5|隽Ue]JPUzzvqU竍h婱 `PqϏgQYYNoW'W'!Zp%B/3 9Sy7!L 8<8 |ltH}>M]ӈ*_ڈQF܈kߕzPK{0Eq _7y42JЀBr Z~yER2fb0ӓ) ?ɦXcgBjM Jz~ziN@*A0S4OʏȂŸ\tiޏ\q )d1O1CS,m&I3PzŰ.}/` ѥK {[|WR X4Aoe`~1(U"᱕nqzV}+ZSݬDNtFJɖcsĩs5 gN>=ql'eSRS -cm @a-DOt'3OWeSrC5R3}L׶iz_]{_k-mRd I0" wӲ:=!﭂}NUM&Ho%LjVy;TکX Qjayk,kJۑ1+ǯ~U]T@D.ctBi҇9S#ku>d!2S;3B39KYKQř?K,pc(}%W^R@uʩ .d0~߉Ec<M\yA+!5a170 NaOm?$mR cC\j]t#C5 v X>,:ƒw͹4B`q_{"@g sO9k10D#/8]kA<~)NvlOkc`?lQic^zاR%{G@\`nݮTS!mǎ٫aiPEWuFTaV_ww*]ݯNjkWص^4mL3?$${V0#ZX_rE%!1BAbjTȴPj|+(jj 'DLf;E&L N4kM/,ۘfVvCr d#s=H'kƍ gr!=u9;W{~in{%D]61^b(jF˘6NKUS14qܗ]#kkm]ɕQC'WZ(2d(:}[L1Hpb8yOR4 FVectd턟}W|]L#@QEnI֚#%=N\ RR- TiMNƠI qxoB)mbTdt* cf zrh*: -k%&<|Y<>lWwO(>Gtl͓ϟQ=_Fqendstream endobj 24309 0 obj <>/P 10918 0 R/Type/Annot/A 24878 0 R/Subtype/Link/Rect[211 670 221 678]/Border[0 0 0]/H/N>> endobj 24310 0 obj <>/P 10918 0 R/Type/Annot/A 24873 0 R/Subtype/Link/Rect[223 670 237 678]/Border[0 0 0]/H/N>> endobj 24311 0 obj <>/P 10918 0 R/Type/Annot/A 43546 0 R/Subtype/Link/Rect[239 670 253 678]/Border[0 0 0]/H/N>> endobj 24312 0 obj <>/P 10918 0 R/Type/Annot/A 24865 0 R/Subtype/Link/Rect[255 670 271 679]/Border[0 0 0]/H/N>> endobj 24313 0 obj <>/P 10918 0 R/Type/Annot/A 43477 0 R/Subtype/Link/Rect[272 670 286 678]/Border[0 0 0]/H/N>> endobj 24314 0 obj <>/P 10918 0 R/Type/Annot/A 24888 0 R/Subtype/Link/Rect[151 660 168 669]/Border[0 0 0]/H/N>> endobj 24315 0 obj <>/P 10918 0 R/Type/Annot/A 24885 0 R/Subtype/Link/Rect[169 660 183 668]/Border[0 0 0]/H/N>> endobj 24316 0 obj <>/P 10918 0 R/Type/Annot/A 24881 0 R/Subtype/Link/Rect[185 660 199 668]/Border[0 0 0]/H/N>> endobj 24317 0 obj <>/P 10918 0 R/Type/Annot/A 24877 0 R/Subtype/Link/Rect[201 660 215 668]/Border[0 0 0]/H/N>> endobj 24318 0 obj <>/P 10918 0 R/Type/Annot/A 24872 0 R/Subtype/Link/Rect[217 660 231 668]/Border[0 0 0]/H/N>> endobj 24319 0 obj <>/P 10918 0 R/Type/Annot/A 24869 0 R/Subtype/Link/Rect[233 660 247 668]/Border[0 0 0]/H/N>> endobj 24320 0 obj <>/P 10918 0 R/Type/Annot/A 24862 0 R/Subtype/Link/Rect[249 660 263 668]/Border[0 0 0]/H/N>> endobj 24321 0 obj <>/P 10918 0 R/Type/Annot/A 24858 0 R/Subtype/Link/Rect[265 660 281 669]/Border[0 0 0]/H/N>> endobj 24322 0 obj <>/P 10918 0 R/Type/Annot/A 43121 0 R/Subtype/Link/Rect[282 660 296 668]/Border[0 0 0]/H/N>> endobj 24323 0 obj <>/P 10918 0 R/Type/Annot/A 24851 0 R/Subtype/Link/Rect[151 650 165 658]/Border[0 0 0]/H/N>> endobj 24324 0 obj <>/P 10918 0 R/Type/Annot/A 43031 0 R/Subtype/Link/Rect[167 650 179 658]/Border[0 0 0]/H/N>> endobj 24325 0 obj <>/P 10918 0 R/Type/Annot/A 42997 0 R/Subtype/Link/Rect[203 640 217 648]/Border[0 0 0]/H/N>> endobj 24326 0 obj <>/P 10918 0 R/Type/Annot/A 24840 0 R/Subtype/Link/Rect[219 640 231 648]/Border[0 0 0]/H/N>> endobj 24327 0 obj <>/P 10918 0 R/Type/Annot/A 24836 0 R/Subtype/Link/Rect[194 630 208 638]/Border[0 0 0]/H/N>> endobj 24328 0 obj <>/P 10918 0 R/Type/Annot/A 42897 0 R/Subtype/Link/Rect[210 630 224 638]/Border[0 0 0]/H/N>> endobj 24329 0 obj <>/P 10918 0 R/Type/Annot/A 24829 0 R/Subtype/Link/Rect[226 630 240 638]/Border[0 0 0]/H/N>> endobj 24330 0 obj <>/P 10918 0 R/Type/Annot/A 24825 0 R/Subtype/Link/Rect[242 630 256 638]/Border[0 0 0]/H/N>> endobj 24331 0 obj <>/P 10918 0 R/Type/Annot/A 42780 0 R/Subtype/Link/Rect[258 630 272 638]/Border[0 0 0]/H/N>> endobj 24332 0 obj <>/P 10918 0 R/Type/Annot/A 24819 0 R/Subtype/Link/Rect[274 630 286 638]/Border[0 0 0]/H/N>> endobj 24333 0 obj <>/P 10918 0 R/Type/Annot/A 42720 0 R/Subtype/Link/Rect[194 620 206 628]/Border[0 0 0]/H/N>> endobj 24334 0 obj <>/P 10918 0 R/Type/Annot/A 24814 0 R/Subtype/Link/Rect[217 610 231 618]/Border[0 0 0]/H/N>> endobj 24335 0 obj <>/P 10918 0 R/Type/Annot/A 24811 0 R/Subtype/Link/Rect[233 610 247 618]/Border[0 0 0]/H/N>> endobj 24336 0 obj <>/P 10918 0 R/Type/Annot/A 24807 0 R/Subtype/Link/Rect[249 610 265 619]/Border[0 0 0]/H/N>> endobj 24337 0 obj <>/P 10918 0 R/Type/Annot/A 24804 0 R/Subtype/Link/Rect[266 610 280 618]/Border[0 0 0]/H/N>> endobj 24338 0 obj <>/P 10918 0 R/Type/Annot/A 24802 0 R/Subtype/Link/Rect[282 610 296 618]/Border[0 0 0]/H/N>> endobj 24339 0 obj <>/P 10918 0 R/Type/Annot/A 24800 0 R/Subtype/Link/Rect[298 610 310 618]/Border[0 0 0]/H/N>> endobj 24340 0 obj <>/P 10918 0 R/Type/Annot/A 24796 0 R/Subtype/Link/Rect[190 600 202 608]/Border[0 0 0]/H/N>> endobj 24341 0 obj <>/P 10918 0 R/Type/Annot/A 24794 0 R/Subtype/Link/Rect[189 590 203 598]/Border[0 0 0]/H/N>> endobj 24342 0 obj <>/P 10918 0 R/Type/Annot/A 24792 0 R/Subtype/Link/Rect[205 590 217 598]/Border[0 0 0]/H/N>> endobj 24343 0 obj <>/P 10918 0 R/Type/Annot/A 24789 0 R/Subtype/Link/Rect[194 580 208 588]/Border[0 0 0]/H/N>> endobj 24344 0 obj <>/P 10918 0 R/Type/Annot/A 24786 0 R/Subtype/Link/Rect[210 580 224 588]/Border[0 0 0]/H/N>> endobj 24345 0 obj <>/P 10918 0 R/Type/Annot/A 24783 0 R/Subtype/Link/Rect[226 580 240 588]/Border[0 0 0]/H/N>> endobj 24346 0 obj <>/P 10918 0 R/Type/Annot/A 24780 0 R/Subtype/Link/Rect[242 580 256 588]/Border[0 0 0]/H/N>> endobj 24347 0 obj <>/P 10918 0 R/Type/Annot/A 24776 0 R/Subtype/Link/Rect[258 580 274 589]/Border[0 0 0]/H/N>> endobj 24348 0 obj <>/P 10918 0 R/Type/Annot/A 24773 0 R/Subtype/Link/Rect[275 580 289 588]/Border[0 0 0]/H/N>> endobj 24349 0 obj <>/P 10918 0 R/Type/Annot/A 24770 0 R/Subtype/Link/Rect[291 580 305 588]/Border[0 0 0]/H/N>> endobj 24350 0 obj <>/P 10918 0 R/Type/Annot/A 42050 0 R/Subtype/Link/Rect[151 570 168 579]/Border[0 0 0]/H/N>> endobj 24351 0 obj <>/P 10918 0 R/Type/Annot/A 24765 0 R/Subtype/Link/Rect[169 570 183 578]/Border[0 0 0]/H/N>> endobj 24352 0 obj <>/P 10918 0 R/Type/Annot/A 24762 0 R/Subtype/Link/Rect[185 570 199 578]/Border[0 0 0]/H/N>> endobj 24353 0 obj <>/P 10918 0 R/Type/Annot/A 24760 0 R/Subtype/Link/Rect[201 570 215 578]/Border[0 0 0]/H/N>> endobj 24354 0 obj <>/P 10918 0 R/Type/Annot/A 24757 0 R/Subtype/Link/Rect[217 570 231 578]/Border[0 0 0]/H/N>> endobj 24355 0 obj <>/P 10918 0 R/Type/Annot/A 41854 0 R/Subtype/Link/Rect[233 570 245 578]/Border[0 0 0]/H/N>> endobj 24356 0 obj <>/P 10918 0 R/Type/Annot/A 24752 0 R/Subtype/Link/Rect[194 560 208 568]/Border[0 0 0]/H/N>> endobj 24357 0 obj <>/P 10918 0 R/Type/Annot/A 41738 0 R/Subtype/Link/Rect[210 560 222 568]/Border[0 0 0]/H/N>> endobj 24358 0 obj <>/P 10918 0 R/Type/Annot/A 24747 0 R/Subtype/Link/Rect[189 550 201 558]/Border[0 0 0]/H/N>> endobj 24359 0 obj <>/P 10918 0 R/Type/Annot/A 41650 0 R/Subtype/Link/Rect[226 540 238 548]/Border[0 0 0]/H/N>> endobj 24360 0 obj <>/P 10918 0 R/Type/Annot/A 41605 0 R/Subtype/Link/Rect[194 530 208 538]/Border[0 0 0]/H/N>> endobj 24361 0 obj <>/P 10918 0 R/Type/Annot/A 41562 0 R/Subtype/Link/Rect[210 530 224 538]/Border[0 0 0]/H/N>> endobj 24362 0 obj <>/P 10918 0 R/Type/Annot/A 24739 0 R/Subtype/Link/Rect[226 530 240 538]/Border[0 0 0]/H/N>> endobj 24363 0 obj <>/P 10918 0 R/Type/Annot/A 24735 0 R/Subtype/Link/Rect[242 530 254 538]/Border[0 0 0]/H/N>> endobj 24364 0 obj <>/P 10918 0 R/Type/Annot/A 24732 0 R/Subtype/Link/Rect[194 520 208 528]/Border[0 0 0]/H/N>> endobj 24365 0 obj <>/P 10918 0 R/Type/Annot/A 41417 0 R/Subtype/Link/Rect[210 520 224 528]/Border[0 0 0]/H/N>> endobj 24366 0 obj <>/P 10918 0 R/Type/Annot/A 24727 0 R/Subtype/Link/Rect[226 520 240 528]/Border[0 0 0]/H/N>> endobj 24367 0 obj <>/P 10918 0 R/Type/Annot/A 24724 0 R/Subtype/Link/Rect[242 520 258 529]/Border[0 0 0]/H/N>> endobj 24368 0 obj <>/P 10918 0 R/Type/Annot/A 24721 0 R/Subtype/Link/Rect[259 520 273 528]/Border[0 0 0]/H/N>> endobj 24369 0 obj <>/P 10918 0 R/Type/Annot/A 24718 0 R/Subtype/Link/Rect[275 520 292 529]/Border[0 0 0]/H/N>> endobj 24370 0 obj <>/P 10918 0 R/Type/Annot/A 24715 0 R/Subtype/Link/Rect[292 520 306 528]/Border[0 0 0]/H/N>> endobj 24371 0 obj <>/P 10918 0 R/Type/Annot/A 41189 0 R/Subtype/Link/Rect[151 510 165 518]/Border[0 0 0]/H/N>> endobj 24372 0 obj <>/P 10918 0 R/Type/Annot/A 24711 0 R/Subtype/Link/Rect[167 510 181 518]/Border[0 0 0]/H/N>> endobj 24373 0 obj <>/P 10918 0 R/Type/Annot/A 24709 0 R/Subtype/Link/Rect[183 510 197 518]/Border[0 0 0]/H/N>> endobj 24374 0 obj <>/P 10918 0 R/Type/Annot/A 41101 0 R/Subtype/Link/Rect[199 510 211 518]/Border[0 0 0]/H/N>> endobj 24375 0 obj <>/P 10918 0 R/Type/Annot/A 41052 0 R/Subtype/Link/Rect[194 500 210 509]/Border[0 0 0]/H/N>> endobj 24376 0 obj <>/P 10918 0 R/Type/Annot/A 24703 0 R/Subtype/Link/Rect[211 500 225 508]/Border[0 0 0]/H/N>> endobj 24377 0 obj <>/P 10918 0 R/Type/Annot/A 24700 0 R/Subtype/Link/Rect[227 500 241 508]/Border[0 0 0]/H/N>> endobj 24378 0 obj <>/P 10918 0 R/Type/Annot/A 40680 0 R/Subtype/Link/Rect[243 500 257 508]/Border[0 0 0]/H/N>> endobj 24379 0 obj <>/P 10918 0 R/Type/Annot/A 24696 0 R/Subtype/Link/Rect[259 500 273 508]/Border[0 0 0]/H/N>> endobj 24380 0 obj <>/P 10918 0 R/Type/Annot/A 24693 0 R/Subtype/Link/Rect[275 500 289 508]/Border[0 0 0]/H/N>> endobj 24381 0 obj <>/P 10918 0 R/Type/Annot/A 39541 0 R/Subtype/Link/Rect[291 500 305 508]/Border[0 0 0]/H/N>> endobj 24382 0 obj <>/P 10918 0 R/Type/Annot/A 24688 0 R/Subtype/Link/Rect[151 490 163 498]/Border[0 0 0]/H/N>> endobj 24383 0 obj <>/P 10918 0 R/Type/Annot/A 24686 0 R/Subtype/Link/Rect[194 480 210 489]/Border[0 0 0]/H/N>> endobj 24384 0 obj <>/P 10918 0 R/Type/Annot/A 24683 0 R/Subtype/Link/Rect[211 480 225 488]/Border[0 0 0]/H/N>> endobj 24385 0 obj <>/P 10918 0 R/Type/Annot/A 38396 0 R/Subtype/Link/Rect[227 480 241 488]/Border[0 0 0]/H/N>> endobj 24386 0 obj <>/P 10918 0 R/Type/Annot/A 38345 0 R/Subtype/Link/Rect[243 480 257 488]/Border[0 0 0]/H/N>> endobj 24387 0 obj <>/P 10918 0 R/Type/Annot/A 24676 0 R/Subtype/Link/Rect[259 480 273 488]/Border[0 0 0]/H/N>> endobj 24388 0 obj <>/P 10918 0 R/Type/Annot/A 38278 0 R/Subtype/Link/Rect[275 480 289 488]/Border[0 0 0]/H/N>> endobj 24389 0 obj <>/P 10918 0 R/Type/Annot/A 38246 0 R/Subtype/Link/Rect[291 480 303 488]/Border[0 0 0]/H/N>> endobj 24390 0 obj <>/P 10918 0 R/Type/Annot/A 36793 0 R/Subtype/Link/Rect[222 470 236 478]/Border[0 0 0]/H/N>> endobj 24391 0 obj <>/P 10918 0 R/Type/Annot/A 36771 0 R/Subtype/Link/Rect[238 470 252 478]/Border[0 0 0]/H/N>> endobj 24392 0 obj <>/P 10918 0 R/Type/Annot/A 24667 0 R/Subtype/Link/Rect[254 470 268 478]/Border[0 0 0]/H/N>> endobj 24393 0 obj <>/P 10918 0 R/Type/Annot/A 24664 0 R/Subtype/Link/Rect[270 470 282 478]/Border[0 0 0]/H/N>> endobj 24394 0 obj <>/P 10918 0 R/Type/Annot/A 35897 0 R/Subtype/Link/Rect[189 460 199 468]/Border[0 0 0]/H/N>> endobj 24395 0 obj <>/P 10918 0 R/Type/Annot/A 24659 0 R/Subtype/Link/Rect[201 460 215 468]/Border[0 0 0]/H/N>> endobj 24396 0 obj <>/P 10918 0 R/Type/Annot/A 24657 0 R/Subtype/Link/Rect[217 460 231 468]/Border[0 0 0]/H/N>> endobj 24397 0 obj <>/P 10918 0 R/Type/Annot/A 24870 0 R/Subtype/Link/Rect[233 460 247 468]/Border[0 0 0]/H/N>> endobj 24398 0 obj <>/P 10918 0 R/Type/Annot/A 34266 0 R/Subtype/Link/Rect[249 460 263 468]/Border[0 0 0]/H/N>> endobj 24399 0 obj <>/P 10918 0 R/Type/Annot/A 38111 0 R/Subtype/Link/Rect[265 460 282 469]/Border[0 0 0]/H/N>> endobj 24400 0 obj <>/P 10918 0 R/Type/Annot/A 34196 0 R/Subtype/Link/Rect[282 460 296 468]/Border[0 0 0]/H/N>> endobj 24401 0 obj <>/P 10918 0 R/Type/Annot/A 28451 0 R/Subtype/Link/Rect[298 460 310 468]/Border[0 0 0]/H/N>> endobj 24402 0 obj <>/P 10918 0 R/Type/Annot/A 38059 0 R/Subtype/Link/Rect[194 450 208 458]/Border[0 0 0]/H/N>> endobj 24403 0 obj <>/P 10918 0 R/Type/Annot/A 33072 0 R/Subtype/Link/Rect[210 450 224 458]/Border[0 0 0]/H/N>> endobj 24404 0 obj <>/P 10918 0 R/Type/Annot/A 27613 0 R/Subtype/Link/Rect[226 450 240 458]/Border[0 0 0]/H/N>> endobj 24405 0 obj <>/P 10918 0 R/Type/Annot/A 38014 0 R/Subtype/Link/Rect[242 450 256 458]/Border[0 0 0]/H/N>> endobj 24406 0 obj <>/P 10918 0 R/Type/Annot/A 37991 0 R/Subtype/Link/Rect[258 450 274 459]/Border[0 0 0]/H/N>> endobj 24407 0 obj <>/P 10918 0 R/Type/Annot/A 37979 0 R/Subtype/Link/Rect[275 450 289 458]/Border[0 0 0]/H/N>> endobj 24408 0 obj <>/P 10918 0 R/Type/Annot/A 31792 0 R/Subtype/Link/Rect[151 440 168 449]/Border[0 0 0]/H/N>> endobj 24409 0 obj <>/P 10918 0 R/Type/Annot/A 29126 0 R/Subtype/Link/Rect[169 440 183 448]/Border[0 0 0]/H/N>> endobj 24410 0 obj <>/P 10918 0 R/Type/Annot/A 31047 0 R/Subtype/Link/Rect[185 440 201 449]/Border[0 0 0]/H/N>> endobj 24411 0 obj <>/P 10918 0 R/Type/Annot/A 30996 0 R/Subtype/Link/Rect[202 440 216 448]/Border[0 0 0]/H/N>> endobj 24412 0 obj <>/P 10918 0 R/Type/Annot/A 28513 0 R/Subtype/Link/Rect[218 440 230 448]/Border[0 0 0]/H/N>> endobj 24413 0 obj <>/P 10918 0 R/Type/Annot/A 37796 0 R/Subtype/Link/Rect[194 430 208 438]/Border[0 0 0]/H/N>> endobj 24414 0 obj <>/P 10918 0 R/Type/Annot/A 37914 0 R/Subtype/Link/Rect[210 430 224 438]/Border[0 0 0]/H/N>> endobj 24415 0 obj <>/P 10918 0 R/Type/Annot/A 24920 0 R/Subtype/Link/Rect[226 430 240 438]/Border[0 0 0]/H/N>> endobj 24416 0 obj <>/P 10918 0 R/Type/Annot/A 24892 0 R/Subtype/Link/Rect[242 430 258 439]/Border[0 0 0]/H/N>> endobj 24417 0 obj <>/P 10918 0 R/Type/Annot/A 37891 0 R/Subtype/Link/Rect[259 430 271 438]/Border[0 0 0]/H/N>> endobj 24418 0 obj <>/P 10918 0 R/Type/Annot/A 29321 0 R/Subtype/Link/Rect[199 420 211 428]/Border[0 0 0]/H/N>> endobj 24419 0 obj <>/P 10918 0 R/Type/Annot/A 29282 0 R/Subtype/Link/Rect[203 410 217 418]/Border[0 0 0]/H/N>> endobj 24420 0 obj <>/P 10918 0 R/Type/Annot/A 37872 0 R/Subtype/Link/Rect[219 410 231 418]/Border[0 0 0]/H/N>> endobj 24421 0 obj <>/P 10918 0 R/Type/Annot/A 29202 0 R/Subtype/Link/Rect[202 400 216 408]/Border[0 0 0]/H/N>> endobj 24422 0 obj <>/P 10918 0 R/Type/Annot/A 24864 0 R/Subtype/Link/Rect[218 400 235 409]/Border[0 0 0]/H/N>> endobj 24423 0 obj <>/P 10918 0 R/Type/Annot/A 29134 0 R/Subtype/Link/Rect[236 400 250 408]/Border[0 0 0]/H/N>> endobj 24424 0 obj <>/P 10918 0 R/Type/Annot/A 29080 0 R/Subtype/Link/Rect[252 400 266 408]/Border[0 0 0]/H/N>> endobj 24425 0 obj <>/P 10918 0 R/Type/Annot/A 25868 0 R/Subtype/Link/Rect[268 400 282 408]/Border[0 0 0]/H/N>> endobj 24426 0 obj <>/P 10918 0 R/Type/Annot/A 28517 0 R/Subtype/Link/Rect[284 400 298 408]/Border[0 0 0]/H/N>> endobj 24427 0 obj <>/P 10918 0 R/Type/Annot/A 24842 0 R/Subtype/Link/Rect[300 400 312 408]/Border[0 0 0]/H/N>> endobj 24428 0 obj <>/P 10918 0 R/Type/Annot/A 28453 0 R/Subtype/Link/Rect[190 390 202 398]/Border[0 0 0]/H/N>> endobj 24429 0 obj <>/P 10918 0 R/Type/Annot/A 24835 0 R/Subtype/Link/Rect[221 380 233 388]/Border[0 0 0]/H/N>> endobj 24430 0 obj <>/P 10918 0 R/Type/Annot/A 24891 0 R/Subtype/Link/Rect[208 370 222 378]/Border[0 0 0]/H/N>> endobj 24431 0 obj <>/P 10918 0 R/Type/Annot/A 28343 0 R/Subtype/Link/Rect[224 370 236 378]/Border[0 0 0]/H/N>> endobj 24432 0 obj <>/P 10918 0 R/Type/Annot/A 27597 0 R/Subtype/Link/Rect[198 360 212 368]/Border[0 0 0]/H/N>> endobj 24433 0 obj <>/P 10918 0 R/Type/Annot/A 27563 0 R/Subtype/Link/Rect[214 360 228 368]/Border[0 0 0]/H/N>> endobj 24434 0 obj <>/P 10918 0 R/Type/Annot/A 26981 0 R/Subtype/Link/Rect[230 360 244 368]/Border[0 0 0]/H/N>> endobj 24435 0 obj <>/P 10918 0 R/Type/Annot/A 37734 0 R/Subtype/Link/Rect[246 360 263 369]/Border[0 0 0]/H/N>> endobj 24436 0 obj <>/P 10918 0 R/Type/Annot/A 24863 0 R/Subtype/Link/Rect[263 360 277 368]/Border[0 0 0]/H/N>> endobj 24437 0 obj <>/P 10918 0 R/Type/Annot/A 26471 0 R/Subtype/Link/Rect[279 360 296 369]/Border[0 0 0]/H/N>> endobj 24438 0 obj <>/P 10918 0 R/Type/Annot/A 25946 0 R/Subtype/Link/Rect[297 360 311 368]/Border[0 0 0]/H/N>> endobj 24439 0 obj <>/P 10918 0 R/Type/Annot/A 37706 0 R/Subtype/Link/Rect[151 350 168 359]/Border[0 0 0]/H/N>> endobj 24440 0 obj <>/P 10918 0 R/Type/Annot/A 37695 0 R/Subtype/Link/Rect[169 350 181 358]/Border[0 0 0]/H/N>> endobj 24441 0 obj <>/P 10918 0 R/Type/Annot/A 25845 0 R/Subtype/Link/Rect[194 340 208 348]/Border[0 0 0]/H/N>> endobj 24442 0 obj <>/P 10918 0 R/Type/Annot/A 24839 0 R/Subtype/Link/Rect[210 340 224 348]/Border[0 0 0]/H/N>> endobj 24443 0 obj <>/P 10918 0 R/Type/Annot/A 37677 0 R/Subtype/Link/Rect[226 340 238 348]/Border[0 0 0]/H/N>> endobj 24444 0 obj <>/P 10918 0 R/Type/Annot/A 37669 0 R/Subtype/Link/Rect[194 330 208 338]/Border[0 0 0]/H/N>> endobj 24445 0 obj <>/P 10918 0 R/Type/Annot/A 24893 0 R/Subtype/Link/Rect[210 330 224 338]/Border[0 0 0]/H/N>> endobj 24446 0 obj <>/P 10918 0 R/Type/Annot/A 24887 0 R/Subtype/Link/Rect[226 330 240 338]/Border[0 0 0]/H/N>> endobj 24447 0 obj <>/P 10918 0 R/Type/Annot/A 24883 0 R/Subtype/Link/Rect[242 330 256 338]/Border[0 0 0]/H/N>> endobj 24448 0 obj <>/P 10918 0 R/Type/Annot/A 24880 0 R/Subtype/Link/Rect[258 330 270 338]/Border[0 0 0]/H/N>> endobj 24449 0 obj <>/P 10918 0 R/Type/Annot/A 24876 0 R/Subtype/Link/Rect[194 320 208 328]/Border[0 0 0]/H/N>> endobj 24450 0 obj <>/P 10918 0 R/Type/Annot/A 24871 0 R/Subtype/Link/Rect[210 320 222 328]/Border[0 0 0]/H/N>> endobj 24451 0 obj <>/P 10918 0 R/Type/Annot/A 24867 0 R/Subtype/Link/Rect[207 300 219 308]/Border[0 0 0]/H/N>> endobj 24452 0 obj <>/P 10918 0 R/Type/Annot/A 24861 0 R/Subtype/Link/Rect[168 290 182 298]/Border[0 0 0]/H/N>> endobj 24453 0 obj <>/P 10918 0 R/Type/Annot/A 24857 0 R/Subtype/Link/Rect[184 290 197 298]/Border[0 0 0]/H/N>> endobj 24454 0 obj <>/P 10918 0 R/Type/Annot/A 24855 0 R/Subtype/Link/Rect[199 290 211 298]/Border[0 0 0]/H/N>> endobj 24455 0 obj <>/P 10918 0 R/Type/Annot/A 24850 0 R/Subtype/Link/Rect[222 250 239 259]/Border[0 0 0]/H/N>> endobj 24456 0 obj <>/P 10918 0 R/Type/Annot/A 24846 0 R/Subtype/Link/Rect[240 250 252 258]/Border[0 0 0]/H/N>> endobj 24457 0 obj <>/P 10918 0 R/Type/Annot/A 24843 0 R/Subtype/Link/Rect[202 240 214 248]/Border[0 0 0]/H/N>> endobj 24458 0 obj <>/P 10918 0 R/Type/Annot/A 24790 0 R/Subtype/Link/Rect[212 230 224 238]/Border[0 0 0]/H/N>> endobj 24459 0 obj <>/P 10918 0 R/Type/Annot/A 24837 0 R/Subtype/Link/Rect[207 220 219 228]/Border[0 0 0]/H/N>> endobj 24460 0 obj <>/P 10918 0 R/Type/Annot/A 24833 0 R/Subtype/Link/Rect[202 210 212 218]/Border[0 0 0]/H/N>> endobj 24461 0 obj <>/P 10918 0 R/Type/Annot/A 24830 0 R/Subtype/Link/Rect[214 210 228 218]/Border[0 0 0]/H/N>> endobj 24462 0 obj <>/P 10918 0 R/Type/Annot/A 24826 0 R/Subtype/Link/Rect[230 210 244 218]/Border[0 0 0]/H/N>> endobj 24463 0 obj <>/P 10918 0 R/Type/Annot/A 24823 0 R/Subtype/Link/Rect[246 210 260 218]/Border[0 0 0]/H/N>> endobj 24464 0 obj <>/P 10918 0 R/Type/Annot/A 24820 0 R/Subtype/Link/Rect[262 210 276 218]/Border[0 0 0]/H/N>> endobj 24465 0 obj <>/P 10918 0 R/Type/Annot/A 24817 0 R/Subtype/Link/Rect[278 210 292 218]/Border[0 0 0]/H/N>> endobj 24466 0 obj <>/P 10918 0 R/Type/Annot/A 24815 0 R/Subtype/Link/Rect[294 210 306 218]/Border[0 0 0]/H/N>> endobj 24467 0 obj <>/P 10918 0 R/Type/Annot/A 24812 0 R/Subtype/Link/Rect[202 200 212 208]/Border[0 0 0]/H/N>> endobj 24468 0 obj <>/P 10918 0 R/Type/Annot/A 24808 0 R/Subtype/Link/Rect[214 200 228 208]/Border[0 0 0]/H/N>> endobj 24469 0 obj <>/P 10918 0 R/Type/Annot/A 24805 0 R/Subtype/Link/Rect[230 200 244 208]/Border[0 0 0]/H/N>> endobj 24470 0 obj <>/P 10918 0 R/Type/Annot/A 24803 0 R/Subtype/Link/Rect[246 200 260 208]/Border[0 0 0]/H/N>> endobj 24471 0 obj <>/P 10918 0 R/Type/Annot/A 24801 0 R/Subtype/Link/Rect[262 200 276 208]/Border[0 0 0]/H/N>> endobj 24472 0 obj <>/P 10918 0 R/Type/Annot/A 24799 0 R/Subtype/Link/Rect[278 200 292 208]/Border[0 0 0]/H/N>> endobj 24473 0 obj <>/P 10918 0 R/Type/Annot/A 24795 0 R/Subtype/Link/Rect[294 200 306 208]/Border[0 0 0]/H/N>> endobj 24474 0 obj <>/P 10918 0 R/Type/Annot/A 24793 0 R/Subtype/Link/Rect[202 190 212 198]/Border[0 0 0]/H/N>> endobj 24475 0 obj <>/P 10918 0 R/Type/Annot/A 24791 0 R/Subtype/Link/Rect[214 190 228 198]/Border[0 0 0]/H/N>> endobj 24476 0 obj <>/P 10918 0 R/Type/Annot/A 24788 0 R/Subtype/Link/Rect[230 190 244 198]/Border[0 0 0]/H/N>> endobj 24477 0 obj <>/P 10918 0 R/Type/Annot/A 24785 0 R/Subtype/Link/Rect[246 190 260 198]/Border[0 0 0]/H/N>> endobj 24478 0 obj <>/P 10918 0 R/Type/Annot/A 24782 0 R/Subtype/Link/Rect[262 190 276 198]/Border[0 0 0]/H/N>> endobj 24479 0 obj <>/P 10918 0 R/Type/Annot/A 24778 0 R/Subtype/Link/Rect[278 190 292 198]/Border[0 0 0]/H/N>> endobj 24480 0 obj <>/P 10918 0 R/Type/Annot/A 24775 0 R/Subtype/Link/Rect[294 190 308 198]/Border[0 0 0]/H/N>> endobj 24481 0 obj <>/P 10918 0 R/Type/Annot/A 24772 0 R/Subtype/Link/Rect[151 180 165 188]/Border[0 0 0]/H/N>> endobj 24482 0 obj <>/P 10918 0 R/Type/Annot/A 24769 0 R/Subtype/Link/Rect[167 180 179 188]/Border[0 0 0]/H/N>> endobj 24483 0 obj <>/P 10918 0 R/Type/Annot/A 24767 0 R/Subtype/Link/Rect[202 170 216 178]/Border[0 0 0]/H/N>> endobj 24484 0 obj <>/P 10918 0 R/Type/Annot/A 24764 0 R/Subtype/Link/Rect[218 170 230 178]/Border[0 0 0]/H/N>> endobj 24485 0 obj <>/P 10918 0 R/Type/Annot/A 24761 0 R/Subtype/Link/Rect[202 160 216 168]/Border[0 0 0]/H/N>> endobj 24486 0 obj <>/P 10918 0 R/Type/Annot/A 24759 0 R/Subtype/Link/Rect[218 160 230 168]/Border[0 0 0]/H/N>> endobj 24487 0 obj <>/P 10918 0 R/Type/Annot/A 24756 0 R/Subtype/Link/Rect[202 150 216 158]/Border[0 0 0]/H/N>> endobj 24488 0 obj <>/P 10918 0 R/Type/Annot/A 24754 0 R/Subtype/Link/Rect[218 150 232 158]/Border[0 0 0]/H/N>> endobj 24489 0 obj <>/P 10918 0 R/Type/Annot/A 24751 0 R/Subtype/Link/Rect[234 150 246 158]/Border[0 0 0]/H/N>> endobj 24490 0 obj <>/P 10918 0 R/Type/Annot/A 24749 0 R/Subtype/Link/Rect[410 670 423 679]/Border[0 0 0]/H/N>> endobj 24491 0 obj <>/P 10918 0 R/Type/Annot/A 24701 0 R/Subtype/Link/Rect[423 670 433 678]/Border[0 0 0]/H/N>> endobj 24492 0 obj <>/P 10918 0 R/Type/Annot/A 24746 0 R/Subtype/Link/Rect[435 670 447 678]/Border[0 0 0]/H/N>> endobj 24493 0 obj <>/P 10918 0 R/Type/Annot/A 24744 0 R/Subtype/Link/Rect[410 660 423 669]/Border[0 0 0]/H/N>> endobj 24494 0 obj <>/P 10918 0 R/Type/Annot/A 24742 0 R/Subtype/Link/Rect[423 660 433 668]/Border[0 0 0]/H/N>> endobj 24495 0 obj <>/P 10918 0 R/Type/Annot/A 24740 0 R/Subtype/Link/Rect[435 660 449 668]/Border[0 0 0]/H/N>> endobj 24496 0 obj <>/P 10918 0 R/Type/Annot/A 24737 0 R/Subtype/Link/Rect[451 660 463 668]/Border[0 0 0]/H/N>> endobj 24497 0 obj <>/P 10918 0 R/Type/Annot/A 24733 0 R/Subtype/Link/Rect[410 650 423 659]/Border[0 0 0]/H/N>> endobj 24498 0 obj <>/P 10918 0 R/Type/Annot/A 24730 0 R/Subtype/Link/Rect[423 650 433 658]/Border[0 0 0]/H/N>> endobj 24499 0 obj <>/P 10918 0 R/Type/Annot/A 24728 0 R/Subtype/Link/Rect[435 650 449 658]/Border[0 0 0]/H/N>> endobj 24500 0 obj <>/P 10918 0 R/Type/Annot/A 24725 0 R/Subtype/Link/Rect[451 650 463 658]/Border[0 0 0]/H/N>> endobj 24501 0 obj <>/P 10918 0 R/Type/Annot/A 24722 0 R/Subtype/Link/Rect[415 640 428 649]/Border[0 0 0]/H/N>> endobj 24502 0 obj <>/P 10918 0 R/Type/Annot/A 24719 0 R/Subtype/Link/Rect[428 640 438 648]/Border[0 0 0]/H/N>> endobj 24503 0 obj <>/P 10918 0 R/Type/Annot/A 24716 0 R/Subtype/Link/Rect[440 640 454 648]/Border[0 0 0]/H/N>> endobj 24504 0 obj <>/P 10918 0 R/Type/Annot/A 24714 0 R/Subtype/Link/Rect[456 640 468 648]/Border[0 0 0]/H/N>> endobj 24505 0 obj <>/P 10918 0 R/Type/Annot/A 24713 0 R/Subtype/Link/Rect[410 630 420 638]/Border[0 0 0]/H/N>> endobj 24506 0 obj <>/P 10918 0 R/Type/Annot/A 24710 0 R/Subtype/Link/Rect[422 630 436 638]/Border[0 0 0]/H/N>> endobj 24507 0 obj <>/P 10918 0 R/Type/Annot/A 24708 0 R/Subtype/Link/Rect[438 630 452 638]/Border[0 0 0]/H/N>> endobj 24508 0 obj <>/P 10918 0 R/Type/Annot/A 24706 0 R/Subtype/Link/Rect[454 630 466 638]/Border[0 0 0]/H/N>> endobj 24509 0 obj <>/P 10918 0 R/Type/Annot/A 24705 0 R/Subtype/Link/Rect[410 620 423 629]/Border[0 0 0]/H/N>> endobj 24510 0 obj <>/P 10918 0 R/Type/Annot/A 24702 0 R/Subtype/Link/Rect[423 620 431 628]/Border[0 0 0]/H/N>> endobj 24511 0 obj <>/P 10918 0 R/Type/Annot/A 24699 0 R/Subtype/Link/Rect[410 610 420 618]/Border[0 0 0]/H/N>> endobj 24512 0 obj <>/P 10918 0 R/Type/Annot/A 24697 0 R/Subtype/Link/Rect[422 610 434 618]/Border[0 0 0]/H/N>> endobj 24513 0 obj <>/P 10918 0 R/Type/Annot/A 24695 0 R/Subtype/Link/Rect[415 600 428 609]/Border[0 0 0]/H/N>> endobj 24514 0 obj <>/P 10918 0 R/Type/Annot/A 24692 0 R/Subtype/Link/Rect[428 600 438 608]/Border[0 0 0]/H/N>> endobj 24515 0 obj <>/P 10918 0 R/Type/Annot/A 24690 0 R/Subtype/Link/Rect[440 600 452 608]/Border[0 0 0]/H/N>> endobj 24516 0 obj <>/P 10918 0 R/Type/Annot/A 24687 0 R/Subtype/Link/Rect[410 590 420 598]/Border[0 0 0]/H/N>> endobj 24517 0 obj <>/P 10918 0 R/Type/Annot/A 24685 0 R/Subtype/Link/Rect[422 590 436 598]/Border[0 0 0]/H/N>> endobj 24518 0 obj <>/P 10918 0 R/Type/Annot/A 24682 0 R/Subtype/Link/Rect[438 590 450 598]/Border[0 0 0]/H/N>> endobj 24519 0 obj <>/P 10918 0 R/Type/Annot/A 24680 0 R/Subtype/Link/Rect[410 580 427 589]/Border[0 0 0]/H/N>> endobj 24520 0 obj <>/P 10918 0 R/Type/Annot/A 24678 0 R/Subtype/Link/Rect[428 580 442 588]/Border[0 0 0]/H/N>> endobj 24521 0 obj <>/P 10918 0 R/Type/Annot/A 24675 0 R/Subtype/Link/Rect[444 580 456 588]/Border[0 0 0]/H/N>> endobj 24522 0 obj <>/P 10918 0 R/Type/Annot/A 24673 0 R/Subtype/Link/Rect[415 570 427 578]/Border[0 0 0]/H/N>> endobj 24523 0 obj <>/P 10918 0 R/Type/Annot/A 24672 0 R/Subtype/Link/Rect[410 560 422 568]/Border[0 0 0]/H/N>> endobj 24524 0 obj <>/P 10918 0 R/Type/Annot/A 24671 0 R/Subtype/Link/Rect[410 550 420 558]/Border[0 0 0]/H/N>> endobj 24525 0 obj <>/P 10918 0 R/Type/Annot/A 24669 0 R/Subtype/Link/Rect[422 550 436 558]/Border[0 0 0]/H/N>> endobj 24526 0 obj <>/P 10918 0 R/Type/Annot/A 24668 0 R/Subtype/Link/Rect[438 550 452 558]/Border[0 0 0]/H/N>> endobj 24527 0 obj <>/P 10918 0 R/Type/Annot/A 24665 0 R/Subtype/Link/Rect[454 550 468 558]/Border[0 0 0]/H/N>> endobj 24528 0 obj <>/P 10918 0 R/Type/Annot/A 24662 0 R/Subtype/Link/Rect[470 550 482 558]/Border[0 0 0]/H/N>> endobj 24529 0 obj <>/P 10918 0 R/Type/Annot/A 24660 0 R/Subtype/Link/Rect[410 540 420 548]/Border[0 0 0]/H/N>> endobj 24530 0 obj <>/P 10918 0 R/Type/Annot/A 24658 0 R/Subtype/Link/Rect[422 540 436 548]/Border[0 0 0]/H/N>> endobj 24531 0 obj <>/P 10918 0 R/Type/Annot/A 44824 0 R/Subtype/Link/Rect[438 540 452 548]/Border[0 0 0]/H/N>> endobj 24532 0 obj <>/P 10918 0 R/Type/Annot/A 44787 0 R/Subtype/Link/Rect[454 540 468 548]/Border[0 0 0]/H/N>> endobj 24533 0 obj <>/P 10918 0 R/Type/Annot/A 24831 0 R/Subtype/Link/Rect[470 540 482 548]/Border[0 0 0]/H/N>> endobj 24534 0 obj <>/P 10918 0 R/Type/Annot/A 44704 0 R/Subtype/Link/Rect[410 530 420 538]/Border[0 0 0]/H/N>> endobj 24535 0 obj <>/P 10918 0 R/Type/Annot/A 44680 0 R/Subtype/Link/Rect[422 530 436 538]/Border[0 0 0]/H/N>> endobj 24536 0 obj <>/P 10918 0 R/Type/Annot/A 44654 0 R/Subtype/Link/Rect[438 530 452 538]/Border[0 0 0]/H/N>> endobj 24537 0 obj <>/P 10918 0 R/Type/Annot/A 44619 0 R/Subtype/Link/Rect[454 530 468 538]/Border[0 0 0]/H/N>> endobj 24538 0 obj <>/P 10918 0 R/Type/Annot/A 44572 0 R/Subtype/Link/Rect[470 530 484 538]/Border[0 0 0]/H/N>> endobj 24539 0 obj <>/P 10918 0 R/Type/Annot/A 24894 0 R/Subtype/Link/Rect[486 530 500 538]/Border[0 0 0]/H/N>> endobj 24540 0 obj <>/P 10918 0 R/Type/Annot/A 29102 0 R/Subtype/Link/Rect[502 530 516 538]/Border[0 0 0]/H/N>> endobj 24541 0 obj <>/P 10918 0 R/Type/Annot/A 24884 0 R/Subtype/Link/Rect[359 520 373 528]/Border[0 0 0]/H/N>> endobj 24542 0 obj <>/P 10918 0 R/Type/Annot/A 24879 0 R/Subtype/Link/Rect[375 520 387 528]/Border[0 0 0]/H/N>> endobj 24543 0 obj <>/P 10918 0 R/Type/Annot/A 24875 0 R/Subtype/Link/Rect[410 510 420 518]/Border[0 0 0]/H/N>> endobj 24544 0 obj <>/P 10918 0 R/Type/Annot/A 44355 0 R/Subtype/Link/Rect[422 510 436 518]/Border[0 0 0]/H/N>> endobj 24545 0 obj <>/P 10918 0 R/Type/Annot/A 44329 0 R/Subtype/Link/Rect[438 510 452 518]/Border[0 0 0]/H/N>> endobj 24546 0 obj <>/P 10918 0 R/Type/Annot/A 24860 0 R/Subtype/Link/Rect[454 510 468 518]/Border[0 0 0]/H/N>> endobj 24547 0 obj <>/P 10918 0 R/Type/Annot/A 24856 0 R/Subtype/Link/Rect[470 510 482 518]/Border[0 0 0]/H/N>> endobj 24548 0 obj <>/P 10918 0 R/Type/Annot/A 24852 0 R/Subtype/Link/Rect[410 500 420 508]/Border[0 0 0]/H/N>> endobj 24549 0 obj <>/P 10918 0 R/Type/Annot/A 24847 0 R/Subtype/Link/Rect[422 500 436 508]/Border[0 0 0]/H/N>> endobj 24550 0 obj <>/P 10918 0 R/Type/Annot/A 44147 0 R/Subtype/Link/Rect[438 500 452 508]/Border[0 0 0]/H/N>> endobj 24551 0 obj <>/P 10918 0 R/Type/Annot/A 26934 0 R/Subtype/Link/Rect[454 500 466 508]/Border[0 0 0]/H/N>> endobj 24552 0 obj <>/P 10918 0 R/Type/Annot/A 26510 0 R/Subtype/Link/Rect[410 490 420 498]/Border[0 0 0]/H/N>> endobj 24553 0 obj <>/P 10918 0 R/Type/Annot/A 24832 0 R/Subtype/Link/Rect[422 490 436 498]/Border[0 0 0]/H/N>> endobj 24554 0 obj <>/P 10918 0 R/Type/Annot/A 24828 0 R/Subtype/Link/Rect[438 490 452 498]/Border[0 0 0]/H/N>> endobj 24555 0 obj <>/P 10918 0 R/Type/Annot/A 43968 0 R/Subtype/Link/Rect[454 490 468 498]/Border[0 0 0]/H/N>> endobj 24556 0 obj <>/P 10918 0 R/Type/Annot/A 24822 0 R/Subtype/Link/Rect[470 490 482 498]/Border[0 0 0]/H/N>> endobj 24557 0 obj <>/P 10918 0 R/Type/Annot/A 25836 0 R/Subtype/Link/Rect[372 480 388 489]/Border[0 0 0]/H/N>> endobj 24558 0 obj <>/P 10918 0 R/Type/Annot/A 24816 0 R/Subtype/Link/Rect[389 480 400 488]/Border[0 0 0]/H/N>> endobj 24559 0 obj <>/P 10918 0 R/Type/Annot/A 24976 0 R/Subtype/Link/Rect[397 470 414 479]/Border[0 0 0]/H/N>> endobj 24560 0 obj <>/P 10918 0 R/Type/Annot/A 24810 0 R/Subtype/Link/Rect[414 470 428 478]/Border[0 0 0]/H/N>> endobj 24561 0 obj <>/P 10918 0 R/Type/Annot/A 43750 0 R/Subtype/Link/Rect[430 470 442 478]/Border[0 0 0]/H/N>> endobj 24562 0 obj <>/P 10918 0 R/Type/Annot/A 24886 0 R/Subtype/Link/Rect[405 460 417 468]/Border[0 0 0]/H/N>> endobj 24563 0 obj <>/P 10918 0 R/Type/Annot/A 24882 0 R/Subtype/Link/Rect[409 450 422 459]/Border[0 0 0]/H/N>> endobj 24564 0 obj <>/P 10918 0 R/Type/Annot/A 24797 0 R/Subtype/Link/Rect[422 450 432 458]/Border[0 0 0]/H/N>> endobj 24565 0 obj <>/P 10918 0 R/Type/Annot/A 24874 0 R/Subtype/Link/Rect[434 450 444 458]/Border[0 0 0]/H/N>> endobj 24566 0 obj <>/P 10918 0 R/Type/Annot/A 43549 0 R/Subtype/Link/Rect[446 450 460 458]/Border[0 0 0]/H/N>> endobj 24567 0 obj <>/P 10918 0 R/Type/Annot/A 24866 0 R/Subtype/Link/Rect[462 450 476 458]/Border[0 0 0]/H/N>> endobj 24568 0 obj <>/P 10918 0 R/Type/Annot/A 24859 0 R/Subtype/Link/Rect[478 450 490 458]/Border[0 0 0]/H/N>> endobj 24569 0 obj <>/P 10918 0 R/Type/Annot/A 24784 0 R/Subtype/Link/Rect[407 440 419 448]/Border[0 0 0]/H/N>> endobj 24570 0 obj <>/P 10918 0 R/Type/Annot/A 24853 0 R/Subtype/Link/Rect[401 430 415 438]/Border[0 0 0]/H/N>> endobj 24571 0 obj <>/P 10918 0 R/Type/Annot/A 24848 0 R/Subtype/Link/Rect[417 430 431 438]/Border[0 0 0]/H/N>> endobj 24572 0 obj <>/P 10918 0 R/Type/Annot/A 24844 0 R/Subtype/Link/Rect[433 430 447 438]/Border[0 0 0]/H/N>> endobj 24573 0 obj <>/P 10918 0 R/Type/Annot/A 24841 0 R/Subtype/Link/Rect[449 430 463 438]/Border[0 0 0]/H/N>> endobj 24574 0 obj <>/P 10918 0 R/Type/Annot/A 43237 0 R/Subtype/Link/Rect[465 430 479 438]/Border[0 0 0]/H/N>> endobj 24575 0 obj <>/P 10918 0 R/Type/Annot/A 43184 0 R/Subtype/Link/Rect[481 430 495 438]/Border[0 0 0]/H/N>> endobj 24576 0 obj <>/P 10918 0 R/Type/Annot/A 43164 0 R/Subtype/Link/Rect[497 430 511 438]/Border[0 0 0]/H/N>> endobj 24577 0 obj <>/P 10918 0 R/Type/Annot/A 24827 0 R/Subtype/Link/Rect[359 420 373 428]/Border[0 0 0]/H/N>> endobj 24578 0 obj <>/P 10918 0 R/Type/Annot/A 24824 0 R/Subtype/Link/Rect[375 420 389 428]/Border[0 0 0]/H/N>> endobj 24579 0 obj <>/P 10918 0 R/Type/Annot/A 24821 0 R/Subtype/Link/Rect[391 420 408 429]/Border[0 0 0]/H/N>> endobj 24580 0 obj <>/P 10918 0 R/Type/Annot/A 24818 0 R/Subtype/Link/Rect[409 420 423 428]/Border[0 0 0]/H/N>> endobj 24581 0 obj <>/P 10918 0 R/Type/Annot/A 42979 0 R/Subtype/Link/Rect[425 420 439 428]/Border[0 0 0]/H/N>> endobj 24582 0 obj <>/P 10918 0 R/Type/Annot/A 24813 0 R/Subtype/Link/Rect[441 420 457 429]/Border[0 0 0]/H/N>> endobj 24583 0 obj <>/P 10918 0 R/Type/Annot/A 24809 0 R/Subtype/Link/Rect[458 420 472 428]/Border[0 0 0]/H/N>> endobj 24584 0 obj <>/P 10918 0 R/Type/Annot/A 24806 0 R/Subtype/Link/Rect[474 420 490 429]/Border[0 0 0]/H/N>> endobj 24585 0 obj <>/P 10918 0 R/Type/Annot/A 42842 0 R/Subtype/Link/Rect[491 420 505 428]/Border[0 0 0]/H/N>> endobj 24586 0 obj <>/P 10918 0 R/Type/Annot/A 24736 0 R/Subtype/Link/Rect[359 410 373 418]/Border[0 0 0]/H/N>> endobj 24587 0 obj <>/P 10918 0 R/Type/Annot/A 24798 0 R/Subtype/Link/Rect[375 410 392 419]/Border[0 0 0]/H/N>> endobj 24588 0 obj <>/P 10918 0 R/Type/Annot/A 42724 0 R/Subtype/Link/Rect[393 410 407 418]/Border[0 0 0]/H/N>> endobj 24589 0 obj <>/P 10918 0 R/Type/Annot/A 42683 0 R/Subtype/Link/Rect[409 410 423 418]/Border[0 0 0]/H/N>> endobj 24590 0 obj <>/P 10918 0 R/Type/Annot/A 42649 0 R/Subtype/Link/Rect[425 410 439 418]/Border[0 0 0]/H/N>> endobj 24591 0 obj <>/P 10918 0 R/Type/Annot/A 24787 0 R/Subtype/Link/Rect[441 410 455 418]/Border[0 0 0]/H/N>> endobj 24592 0 obj <>/P 10918 0 R/Type/Annot/A 42571 0 R/Subtype/Link/Rect[457 410 471 418]/Border[0 0 0]/H/N>> endobj 24593 0 obj <>/P 10918 0 R/Type/Annot/A 24781 0 R/Subtype/Link/Rect[473 410 487 418]/Border[0 0 0]/H/N>> endobj 24594 0 obj <>/P 10918 0 R/Type/Annot/A 24777 0 R/Subtype/Link/Rect[359 400 376 409]/Border[0 0 0]/H/N>> endobj 24595 0 obj <>/P 10918 0 R/Type/Annot/A 24774 0 R/Subtype/Link/Rect[377 400 391 408]/Border[0 0 0]/H/N>> endobj 24596 0 obj <>/P 10918 0 R/Type/Annot/A 42407 0 R/Subtype/Link/Rect[393 400 407 408]/Border[0 0 0]/H/N>> endobj 24597 0 obj <>/P 10918 0 R/Type/Annot/A 24768 0 R/Subtype/Link/Rect[409 400 423 408]/Border[0 0 0]/H/N>> endobj 24598 0 obj <>/P 10918 0 R/Type/Annot/A 24766 0 R/Subtype/Link/Rect[425 400 439 408]/Border[0 0 0]/H/N>> endobj 24599 0 obj <>/P 10918 0 R/Type/Annot/A 24763 0 R/Subtype/Link/Rect[441 400 455 408]/Border[0 0 0]/H/N>> endobj 24600 0 obj <>/P 10918 0 R/Type/Annot/A 42253 0 R/Subtype/Link/Rect[457 400 469 408]/Border[0 0 0]/H/N>> endobj 24601 0 obj <>/P 10918 0 R/Type/Annot/A 24758 0 R/Subtype/Link/Rect[398 390 415 399]/Border[0 0 0]/H/N>> endobj 24602 0 obj <>/P 10918 0 R/Type/Annot/A 24755 0 R/Subtype/Link/Rect[415 390 429 398]/Border[0 0 0]/H/N>> endobj 24603 0 obj <>/P 10918 0 R/Type/Annot/A 24753 0 R/Subtype/Link/Rect[431 390 443 398]/Border[0 0 0]/H/N>> endobj 24604 0 obj <>/P 10918 0 R/Type/Annot/A 24750 0 R/Subtype/Link/Rect[402 380 414 388]/Border[0 0 0]/H/N>> endobj 24605 0 obj <>/P 10918 0 R/Type/Annot/A 24748 0 R/Subtype/Link/Rect[405 370 417 378]/Border[0 0 0]/H/N>> endobj 24606 0 obj <>/P 10918 0 R/Type/Annot/A 42007 0 R/Subtype/Link/Rect[415 360 429 368]/Border[0 0 0]/H/N>> endobj 24607 0 obj <>/P 10918 0 R/Type/Annot/A 24745 0 R/Subtype/Link/Rect[431 360 443 368]/Border[0 0 0]/H/N>> endobj 24608 0 obj <>/P 10918 0 R/Type/Annot/A 24743 0 R/Subtype/Link/Rect[398 350 415 359]/Border[0 0 0]/H/N>> endobj 24609 0 obj <>/P 10918 0 R/Type/Annot/A 24741 0 R/Subtype/Link/Rect[415 350 427 358]/Border[0 0 0]/H/N>> endobj 24610 0 obj <>/P 10918 0 R/Type/Annot/A 24738 0 R/Subtype/Link/Rect[469 340 481 348]/Border[0 0 0]/H/N>> endobj 24611 0 obj <>/P 10918 0 R/Type/Annot/A 24734 0 R/Subtype/Link/Rect[401 330 413 338]/Border[0 0 0]/H/N>> endobj 24612 0 obj <>/P 10918 0 R/Type/Annot/A 24731 0 R/Subtype/Link/Rect[407 320 419 328]/Border[0 0 0]/H/N>> endobj 24613 0 obj <>/P 10918 0 R/Type/Annot/A 24729 0 R/Subtype/Link/Rect[415 300 429 308]/Border[0 0 0]/H/N>> endobj 24614 0 obj <>/P 10918 0 R/Type/Annot/A 24726 0 R/Subtype/Link/Rect[431 300 445 308]/Border[0 0 0]/H/N>> endobj 24615 0 obj <>/P 10918 0 R/Type/Annot/A 24723 0 R/Subtype/Link/Rect[447 300 459 308]/Border[0 0 0]/H/N>> endobj 24616 0 obj <>/P 10918 0 R/Type/Annot/A 24720 0 R/Subtype/Link/Rect[398 290 410 298]/Border[0 0 0]/H/N>> endobj 24617 0 obj <>/P 10918 0 R/Type/Annot/A 24717 0 R/Subtype/Link/Rect[380 280 392 288]/Border[0 0 0]/H/N>> endobj 24618 0 obj <>/P 10918 0 R/Type/Annot/A 41490 0 R/Subtype/Link/Rect[417 270 434 279]/Border[0 0 0]/H/N>> endobj 24619 0 obj <>/P 10918 0 R/Type/Annot/A 24712 0 R/Subtype/Link/Rect[434 270 448 278]/Border[0 0 0]/H/N>> endobj 24620 0 obj <>/P 10918 0 R/Type/Annot/A 41419 0 R/Subtype/Link/Rect[450 270 467 279]/Border[0 0 0]/H/N>> endobj 24621 0 obj <>/P 10918 0 R/Type/Annot/A 24707 0 R/Subtype/Link/Rect[468 270 482 278]/Border[0 0 0]/H/N>> endobj 24622 0 obj <>/P 10918 0 R/Type/Annot/A 41325 0 R/Subtype/Link/Rect[484 270 498 278]/Border[0 0 0]/H/N>> endobj 24623 0 obj <>/P 10918 0 R/Type/Annot/A 24704 0 R/Subtype/Link/Rect[500 270 514 278]/Border[0 0 0]/H/N>> endobj 24624 0 obj <>/P 10918 0 R/Type/Annot/A 35070 0 R/Subtype/Link/Rect[359 260 373 268]/Border[0 0 0]/H/N>> endobj 24625 0 obj <>/P 10918 0 R/Type/Annot/A 24698 0 R/Subtype/Link/Rect[375 260 389 268]/Border[0 0 0]/H/N>> endobj 24626 0 obj <>/P 10918 0 R/Type/Annot/A 41191 0 R/Subtype/Link/Rect[391 260 405 268]/Border[0 0 0]/H/N>> endobj 24627 0 obj <>/P 10918 0 R/Type/Annot/A 24694 0 R/Subtype/Link/Rect[407 260 421 268]/Border[0 0 0]/H/N>> endobj 24628 0 obj <>/P 10918 0 R/Type/Annot/A 24691 0 R/Subtype/Link/Rect[423 260 437 268]/Border[0 0 0]/H/N>> endobj 24629 0 obj <>/P 10918 0 R/Type/Annot/A 24689 0 R/Subtype/Link/Rect[439 260 451 268]/Border[0 0 0]/H/N>> endobj 24630 0 obj <>/P 10918 0 R/Type/Annot/A 41055 0 R/Subtype/Link/Rect[431 250 448 259]/Border[0 0 0]/H/N>> endobj 24631 0 obj <>/P 10918 0 R/Type/Annot/A 24684 0 R/Subtype/Link/Rect[449 250 463 258]/Border[0 0 0]/H/N>> endobj 24632 0 obj <>/P 10918 0 R/Type/Annot/A 24681 0 R/Subtype/Link/Rect[465 250 477 258]/Border[0 0 0]/H/N>> endobj 24633 0 obj <>/P 10918 0 R/Type/Annot/A 24679 0 R/Subtype/Link/Rect[436 240 453 249]/Border[0 0 0]/H/N>> endobj 24634 0 obj <>/P 10918 0 R/Type/Annot/A 24677 0 R/Subtype/Link/Rect[454 240 466 248]/Border[0 0 0]/H/N>> endobj 24635 0 obj <>/P 10918 0 R/Type/Annot/A 24674 0 R/Subtype/Link/Rect[431 230 448 239]/Border[0 0 0]/H/N>> endobj 24636 0 obj <>/P 10918 0 R/Type/Annot/A 39544 0 R/Subtype/Link/Rect[449 230 463 238]/Border[0 0 0]/H/N>> endobj 24637 0 obj <>/P 10918 0 R/Type/Annot/A 39498 0 R/Subtype/Link/Rect[465 230 481 239]/Border[0 0 0]/H/N>> endobj 24638 0 obj <>/P 10918 0 R/Type/Annot/A 24670 0 R/Subtype/Link/Rect[482 230 494 238]/Border[0 0 0]/H/N>> endobj 24639 0 obj <>/P 10918 0 R/Type/Annot/A 38929 0 R/Subtype/Link/Rect[425 220 439 228]/Border[0 0 0]/H/N>> endobj 24640 0 obj <>/P 10918 0 R/Type/Annot/A 24666 0 R/Subtype/Link/Rect[441 220 453 228]/Border[0 0 0]/H/N>> endobj 24641 0 obj <>/P 10918 0 R/Type/Annot/A 24663 0 R/Subtype/Link/Rect[398 210 410 218]/Border[0 0 0]/H/N>> endobj 24642 0 obj <>/P 10918 0 R/Type/Annot/A 24661 0 R/Subtype/Link/Rect[425 200 441 209]/Border[0 0 0]/H/N>> endobj 24643 0 obj <>/P 10918 0 R/Type/Annot/A 38279 0 R/Subtype/Link/Rect[442 200 456 208]/Border[0 0 0]/H/N>> endobj 24644 0 obj <>/P 10918 0 R/Type/Annot/A 38247 0 R/Subtype/Link/Rect[458 200 472 208]/Border[0 0 0]/H/N>> endobj 24645 0 obj <>/P 10918 0 R/Type/Annot/A 36800 0 R/Subtype/Link/Rect[474 200 488 208]/Border[0 0 0]/H/N>> endobj 24646 0 obj <>/P 10918 0 R/Type/Annot/A 38222 0 R/Subtype/Link/Rect[490 200 504 208]/Border[0 0 0]/H/N>> endobj 24647 0 obj <>/P 10918 0 R/Type/Annot/A 24779 0 R/Subtype/Link/Rect[359 190 373 198]/Border[0 0 0]/H/N>> endobj 24648 0 obj <>/P 10918 0 R/Type/Annot/A 24868 0 R/Subtype/Link/Rect[375 190 389 198]/Border[0 0 0]/H/N>> endobj 24649 0 obj <>/P 10918 0 R/Type/Annot/A 24771 0 R/Subtype/Link/Rect[391 190 405 198]/Border[0 0 0]/H/N>> endobj 24650 0 obj <>/P 10918 0 R/Type/Annot/A 35867 0 R/Subtype/Link/Rect[407 190 419 198]/Border[0 0 0]/H/N>> endobj 24651 0 obj <>/P 10918 0 R/Type/Annot/A 24854 0 R/Subtype/Link/Rect[393 170 410 179]/Border[0 0 0]/H/N>> endobj 24652 0 obj <>/P 10918 0 R/Type/Annot/A 24849 0 R/Subtype/Link/Rect[411 170 423 178]/Border[0 0 0]/H/N>> endobj 24653 0 obj <>/P 10918 0 R/Type/Annot/A 24845 0 R/Subtype/Link/Rect[394 160 411 169]/Border[0 0 0]/H/N>> endobj 24654 0 obj <>/P 10918 0 R/Type/Annot/A 34237 0 R/Subtype/Link/Rect[411 160 423 168]/Border[0 0 0]/H/N>> endobj 24655 0 obj <>/P 10918 0 R/Type/Annot/A 24838 0 R/Subtype/Link/Rect[422 150 434 158]/Border[0 0 0]/H/N>> endobj 24656 0 obj <>/P 10918 0 R/Type/Annot/A 24834 0 R/Subtype/Link/Rect[395 308 406 317]/Border[0 0 0]/H/N>> endobj 24657 0 obj <> endobj 24658 0 obj <> endobj 24659 0 obj <> endobj 24660 0 obj <> endobj 24661 0 obj <> endobj 24662 0 obj <> endobj 24663 0 obj <> endobj 24664 0 obj <> endobj 24665 0 obj <> endobj 24666 0 obj <> endobj 24667 0 obj <> endobj 24668 0 obj <> endobj 24669 0 obj <> endobj 24670 0 obj <> endobj 24671 0 obj <> endobj 24672 0 obj <> endobj 24673 0 obj <> endobj 24674 0 obj <> endobj 24675 0 obj <> endobj 24676 0 obj <> endobj 24677 0 obj <> endobj 24678 0 obj <> endobj 24679 0 obj <> endobj 24680 0 obj <> endobj 24681 0 obj <> endobj 24682 0 obj <> endobj 24683 0 obj <> endobj 24684 0 obj <> endobj 24685 0 obj <> endobj 24686 0 obj <> endobj 24687 0 obj <> endobj 24688 0 obj <> endobj 24689 0 obj <> endobj 24690 0 obj <> endobj 24691 0 obj <> endobj 24692 0 obj <> endobj 24693 0 obj <> endobj 24694 0 obj <> endobj 24695 0 obj <> endobj 24696 0 obj <> endobj 24697 0 obj <> endobj 24698 0 obj <> endobj 24699 0 obj <> endobj 24700 0 obj <> endobj 24701 0 obj <> endobj 24702 0 obj <> endobj 24703 0 obj <> endobj 24704 0 obj <> endobj 24705 0 obj <> endobj 24706 0 obj <> endobj 24707 0 obj <> endobj 24708 0 obj <> endobj 24709 0 obj <> endobj 24710 0 obj <> endobj 24711 0 obj <> endobj 24712 0 obj <> endobj 24713 0 obj <> endobj 24714 0 obj <> endobj 24715 0 obj <> endobj 24716 0 obj <> endobj 24717 0 obj <> endobj 24718 0 obj <> endobj 24719 0 obj <> endobj 24720 0 obj <> endobj 24721 0 obj <> endobj 24722 0 obj <> endobj 24723 0 obj <> endobj 24724 0 obj <> endobj 24725 0 obj <> endobj 24726 0 obj <> endobj 24727 0 obj <> endobj 24728 0 obj <> endobj 24729 0 obj <> endobj 24730 0 obj <> endobj 24731 0 obj <> endobj 24732 0 obj <> endobj 24733 0 obj <> endobj 24734 0 obj <> endobj 24735 0 obj <> endobj 24736 0 obj <> endobj 24737 0 obj <> endobj 24738 0 obj <> endobj 24739 0 obj <> endobj 24740 0 obj <> endobj 24741 0 obj <> endobj 24742 0 obj <> endobj 24743 0 obj <> endobj 24744 0 obj <> endobj 24745 0 obj <> endobj 24746 0 obj <> endobj 24747 0 obj <> endobj 24748 0 obj <> endobj 24749 0 obj <> endobj 24750 0 obj <> endobj 24751 0 obj <> endobj 24752 0 obj <> endobj 24753 0 obj <> endobj 24754 0 obj <> endobj 24755 0 obj <> endobj 24756 0 obj <> endobj 24757 0 obj <> endobj 24758 0 obj <> endobj 24759 0 obj <> endobj 24760 0 obj <> endobj 24761 0 obj <> endobj 24762 0 obj <> endobj 24763 0 obj <> endobj 24764 0 obj <> endobj 24765 0 obj <> endobj 24766 0 obj <> endobj 24767 0 obj <> endobj 24768 0 obj <> endobj 24769 0 obj <> endobj 24770 0 obj <> endobj 24771 0 obj <> endobj 24772 0 obj <> endobj 24773 0 obj <> endobj 24774 0 obj <> endobj 24775 0 obj <> endobj 24776 0 obj <> endobj 24777 0 obj <> endobj 24778 0 obj <> endobj 24779 0 obj <> endobj 24780 0 obj <> endobj 24781 0 obj <> endobj 24782 0 obj <> endobj 24783 0 obj <> endobj 24784 0 obj <> endobj 24785 0 obj <> endobj 24786 0 obj <> endobj 24787 0 obj <> endobj 24788 0 obj <> endobj 24789 0 obj <> endobj 24790 0 obj <> endobj 24791 0 obj <> endobj 24792 0 obj <> endobj 24793 0 obj <> endobj 24794 0 obj <> endobj 24795 0 obj <> endobj 24796 0 obj <> endobj 24797 0 obj <> endobj 24798 0 obj <> endobj 24799 0 obj <> endobj 24800 0 obj <> endobj 24801 0 obj <> endobj 24802 0 obj <> endobj 24803 0 obj <> endobj 24804 0 obj <> endobj 24805 0 obj <> endobj 24806 0 obj <> endobj 24807 0 obj <> endobj 24808 0 obj <> endobj 24809 0 obj <> endobj 24810 0 obj <> endobj 24811 0 obj <> endobj 24812 0 obj <> endobj 24813 0 obj <> endobj 24814 0 obj <> endobj 24815 0 obj <> endobj 24816 0 obj <> endobj 24817 0 obj <> endobj 24818 0 obj <> endobj 24819 0 obj <> endobj 24820 0 obj <> endobj 24821 0 obj <> endobj 24822 0 obj <> endobj 24823 0 obj <> endobj 24824 0 obj <> endobj 24825 0 obj <> endobj 24826 0 obj <> endobj 24827 0 obj <> endobj 24828 0 obj <> endobj 24829 0 obj <> endobj 24830 0 obj <> endobj 24831 0 obj <> endobj 24832 0 obj <> endobj 24833 0 obj <> endobj 24834 0 obj <> endobj 24835 0 obj <> endobj 24836 0 obj <> endobj 24837 0 obj <> endobj 24838 0 obj <> endobj 24839 0 obj <> endobj 24840 0 obj <> endobj 24841 0 obj <> endobj 24842 0 obj <> endobj 24843 0 obj <> endobj 24844 0 obj <> endobj 24845 0 obj <> endobj 24846 0 obj <> endobj 24847 0 obj <> endobj 24848 0 obj <> endobj 24849 0 obj <> endobj 24850 0 obj <> endobj 24851 0 obj <> endobj 24852 0 obj <> endobj 24853 0 obj <> endobj 24854 0 obj <> endobj 24855 0 obj <> endobj 24856 0 obj <> endobj 24857 0 obj <> endobj 24858 0 obj <> endobj 24859 0 obj <> endobj 24860 0 obj <> endobj 24861 0 obj <> endobj 24862 0 obj <> endobj 24863 0 obj <> endobj 24864 0 obj <> endobj 24865 0 obj <> endobj 24866 0 obj <> endobj 24867 0 obj <> endobj 24868 0 obj <> endobj 24869 0 obj <> endobj 24870 0 obj <> endobj 24871 0 obj <> endobj 24872 0 obj <> endobj 24873 0 obj <> endobj 24874 0 obj <> endobj 24875 0 obj <> endobj 24876 0 obj <> endobj 24877 0 obj <> endobj 24878 0 obj <> endobj 24879 0 obj <> endobj 24880 0 obj <> endobj 24881 0 obj <> endobj 24882 0 obj <> endobj 24883 0 obj <> endobj 24884 0 obj <> endobj 24885 0 obj <> endobj 24886 0 obj <> endobj 24887 0 obj <> endobj 24888 0 obj <> endobj 24889 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24890 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 24891 0 obj <> endobj 24892 0 obj <> endobj 24893 0 obj <> endobj 24894 0 obj <> endobj 24895 0 obj <> stream q /X1 Do Q q endstream endobj 24896 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 24897 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 24898 0 obj <> stream HWkoH_12М$ǝ~($H*Np~$eݭFꚙxo}ꅊӧ^<hLS>alTՔ_jD&ЪRE*k^M. ^^u,Fi/ D*Sh$JU>.yWuhП|_ߓ5adE#92(&3gMiesMة ae==Rdzs% lhԝґz Jkc*lJQ K&* 2O9d#HC/G1`iYCXԻ<ŀe7{[e2Vpo{'w̽; =s{ǂ1s>'}"OTp2>e3}g{Y-b{KH-ŐS Y=ŀ%bܳ!CR Y{Z#bܳ!Z!KpRkR Y{Z#bRK1d YjZ!KpRkRlX!CwO1` {!R Y{Z+bܳZ!Z!KpRkR Y{Z+bRK1d YjZ!KpRkR XBj),=KRK1d YjZ'b),!CwO1dqZ!KpRR Y{Z'bRK1d YjZ!KpRR XBj),=KRK1d YjZKH-Ő%guBj),=KRKuR Y=ŀ%b),> ,s*u,\+e ouQqV`v[mŢQwy$L> S~~wijfWA:fY_n;UݶSwԆZUmwuru~]EIĄ-l@_ޮꛫٛ//.$T`n~UkNR KM^vM}'8Q~a#8=>ئ& //oO]n|[Ͽ,0T][6_KX/^7J irs]HOC,vl ݩb~F{ƒ'?h<#e}KA燌'˩;|4S[7A0CV&rcZ^L ZiłV̴bA+fZ0DJV*hL+R ZjkQ Y\b҂fZZLZiAbX),AbX),AbX),AbX[),E1` }O1d ZC }O1d ZC }O1d ZC }O1d ZC }O1d ZCע-N{!Kb}-N{!Kb}-N{!Kb}-N{!Kb}-^{!kQ _r-^,̲ ?Y*x[i/}.U.M5;N3i&Rs8RD)֪Zv*YtF,]SU,jFew1}CGREP*v^mڮ,qbgrܵO?s=8~21Ph,`MCimpڗkNn3x4!vRxuy5>㦕ؗ X,pKfƍu]7é~>CEx e Un(+pߎPP4}1x4B0+lQDl`ӱȮ=~NDg/G94&?W/V yAE]`BF!ì-nSiBInk=\')+߯j7M)E7+?|A<~ xZlvxWo߽?~,I,J64zV-=lQ~=Vu5yN0~+8TwƧvx0att32 x)P'R?e|2!$+8Y Mj.y䪂:<=pffMm|+ T(t)k=}ډ3jn6=<:vݓݭZy`<˩G0S[Z'ix6niej~;{_$ޫ {2e,mbE`O:qӈL*1eHn{e҃{,VeٶwXb3bYUtW/7նm7cLO9\6>u\9F߄hA xiCb= `z~WT8m/ݞ|P_ Bz*IVIp%6[-zГ+;Vj'})R`OeJ(12FܽIn{`'3ldiV4Iɮ [ݮ㫹ZKé]d,-If, ~:uWޚ:0g%,t`$5VHAjR4dŮ*<{)⼄Ow6.?[)V8ONi/juˆ".àEw"hZxW .5u6/(vPMo,;H[am'r^俫/[Kv(:@eU?NDD{5gi[σ&&Y&X~Ԟɒ+#@W375VfN//ptl=1\pK4S{3wsKbEĚY+" Ȑ bI\oؽM(S꽡>_7 iEЦ D#Q<|}L"Fi00~f0,Y}LAb ɞq۫aq5섍mFV6CȇBhxzs|ُY,I , 8܊ydB讖ѩf?5ejl5J Ҧv9)leC D[G|k4G Ӆ&)'|@aÍU-`0hx!D&X=eqEf !Qyt'y28̪;LJ7#sK Yj,qG:E0,_ Bv&>Dnt|jmoup['}h(Bn?ƞHkuwvTn.DB#A5d rsnwH,E`9n89\WSCuc],-J}verl"2ibyDs_G烰xy?\;Ocxq=W. Rڵ>c ur_xꖘ/k-CWۤ@ -4 pg8+XSVF!Drل*<}PN9+k܆So.e^znI7ӣ܈d~JtX;^[`G˲&$5 qʖ"^|akW|8; /> AlS;!:Jsm)rBx ;=RJw>++M'RU Ef&&>Vt Zu!.Kdp XC0?*7TJMB|UI: "C>+ݞͭ*24Ͷ@jy>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24900 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 24901 0 obj <> endobj 24902 0 obj <> endobj 24903 0 obj <> endobj 24904 0 obj <> endobj 24905 0 obj <> endobj 24906 0 obj <> endobj 24907 0 obj <> endobj 24908 0 obj <> endobj 24909 0 obj <> endobj 24910 0 obj <> endobj 24911 0 obj <> stream q /X1 Do Q q endstream endobj 24912 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 24913 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 24914 0 obj <> stream HWko8_ *Ctfv`c`wj3ZJr2zu[C璼h:ͻފXӛi"iWF$R%TG %A,)JUEW>ۺr约\ n~S ެB'B"sKO3KTI$O?iY}X]ۊW*AVo塽Tdy29w-kƚg bLk#%;~؈4R 6[Up؄rϱ#c(,;KJE0d% jO1`)F+FkFkFkFFF'S0O}¨O<)>ԧS13O}ƨ<>S3sOe[Oe{i) Z!WO1`1|Cbb\K1d1=*ƵCsb\K1`1kZ!QV1R Yzϵq-ŐŨ\R Xk),FZŸbb{Uk) 4Z!WO1`1|Cbb\K1d1=jƵCsf\K1`1k5Z!QV3R Yzϵq-ŐŨ\R Xk),FZ͸bb{Ռk) Z!WO1`1|Cbb\K1d1=ƵCsa\K1`1k Z!Q0R Yzϵq-ŐŨ\kR Xk),FZøbb{5k) ƵCbb\K1d),|k4iM$z FZ#b׻*YOFHz,KEX/+hb9}{sV\F?񯫏,{x' 5û*]Q2"5c< 8K5Qf34ʱF+G$~\78ʟWAɞ7=׻sMB<"0c 2FE^i}p{Lm$gu6m.'qGO]C7JX)ԩxV2[zj(zUEp]v~S}~C~g8";YNx&oOGj1nH)z0rxlT/E[1T>{,PwEWVUUΉu+uUGѹfWj,!M8# tX[gf=aA3H~G 9#853>*® 32mʝk1[ E0)vb ĮEuuF6FkHLr!=}#ʵ^LŘ?5~%6Rہk "WD  7e?M\;M`H伿Ok3;؝+۱@!ynS oFIzI&V؎kNQf*˨omA_[K=Mh`ajsZtc<NaUS75W8'و,fZj:ʵe}:RlM׽\0] 'Im?4 ۃ[}He7'B1^e7\0:(|uލ =f,8 e |E^* Ejݱr% \"8MAyԮ*ĶxrIԙٷ׋lTy/N)ػ-Lom=<,÷3 #Hdv7\Jκ]npKJ㳹~Y?է/K] Rr.\CʱC-mq/;t\&Mhm@o2R _~J~˦>Vs Ѻ) xx3;U\\f$(D$lYg\"UCs!47gjz=BE/. IQT[vXEnڲ#ĖKNȑ! p37oRӾv;C6fIWISOCu{Gӡ9$\ʋI7 :g*H;Ȃ m>V+-E]rF ۟uG9 Zd:R`\.9K{mKk*%]K}aFZjm5켱?K/xO_+꤮LfxHڵZPʊjtt z_Ы@9 a=*K@y_khSzZUph2TjPnv뾊~6u\I ఞtתo*Ø4?_IiF@( B.UtE~O/Q{Çj/ׇF"E__|+F8gIk 06v5j(zv!$ :@2''t ,NӅVq1 dW>U;WI¨s(5w Jqi`X gCV\W1P2[N*.4 (NP( |F赅(+z.KR'N=".B[N[2}68k9t tlsp|aJRSOrdС&Rj 3fi*z.MfM4.8cQ?@fVYxQ!|,Ek}YTs ]!zJtBe׵t׺MV>W ;/TxU 5$_ Ng" ɓ1tpQ&>>/P 826 0 R/Type/Annot/A 24916 0 R/Subtype/Link/Rect[93.6010971 341.98999 428.834015 361.670013]/Border[0 0 0]/H/N>> endobj 24916 0 obj <> endobj 24917 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24918 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 24919 0 obj <> endobj 24920 0 obj <> endobj 24921 0 obj <> endobj 24922 0 obj <> endobj 24923 0 obj <> endobj 24924 0 obj <> endobj 24925 0 obj <> endobj 24926 0 obj [/ICCBased 44656 0 R] endobj 24927 0 obj <> endobj 24928 0 obj <> endobj 24929 0 obj <> endobj 24930 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'd \\ނlž~'UczKA&3g|xԘOlVvH ޔl%JiNS#/uǻ!Tӳ鸔v a ƒ=jȶ>qiBV- OM԰Eﮢ$i$wp3O0Xe~[q=r`Zex-Tеѽ4 ޱ wn"y)endstream endobj 24931 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-64.9199982 -64.7399979 616.919983 769.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24932 0 obj <>/ColorSpace<>>>/Subtype/Form/Filter/FlateDecode/BBox[251.824997 178.080994 272.945007 156.720993]/Matrix[1 0 0 1 0 0]>> stream Hw6PH.V0PP(NwrӋL ,L - ,  tBQ*W@{ endstream endobj 24933 0 obj <>/ColorSpace<>>>/Subtype/Form/Filter/FlateDecode/BBox[310.649994 177.612 331.049988 156.731995]/Matrix[1 0 0 1 0 0]>> stream Hw6PH.V0PP(NwrӋ L  LtBQ*W@b endstream endobj 24934 0 obj <> stream JFIF-/AdobedC     $''''$25552;;;;;;;;;; /-"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?侨}CF6-n^F8$ >+]ag(2 ?DgXYmJ gfosD05;K\>翳>3wڽ_Cv޽TBmnT>Σ[|Smձ/s;MdF~߬tGQs01n7q.ˎ+~gLǢթuHhkX 7S:"?u7fՎ_N85'Ag9[?$~Eoceɾe_S뫣7uk 5h7P[%99tn1qP cn#PY:FuWon;w5@KVNeyYkh-vr{1uޗJ/d;{n]yC`3b H+vwbŵ_i..lĽ&ᇅ0r{kch ۖt쵢v%1۵ڦo SivXiv;l-_V;uLŮ2p&tp]8XR^]~v-mDz f;ϯ_W\?>w$}|W$wv3P\m`K|ۻs-ߦOmK~endstream endobj 24935 0 obj <> stream AdobedC   <<   !"$123 #%&'()*456789:ABCDEFGHIJQRSTUVWXYZabcdefghijqrstuvwxyz?m']"TCGwd֘\Cr&fgX p,f)JS4 & '䯰қWWyM0QQ(qD@.WzL LmP׎{B&' n7̀vgy`3t5f]jGRm0:%M2!QQR bπF) u/rᕦ+eOhXiEHJXHJZfDتlZA0P誑J&3"z_y ZYިr TX ab.hz UQR rL+G-I"fU*94Cd%֫'l%I$'01rԋFyU3d̥0 I)ġT@N qHQ5ls49kEtFR2ғNG\FH#Zhy_PF;-4/JGp4=x $˖SMfRsj ,I &ԐZ)0 xşJe=6W}%ff(΃I@P!(fiZ3[VP0SJVs{4zt:apK81 *+F53hJ9#Q[1B!&'Lۖt] &2H/u[ 6INk/y> stream AdobedC   <<  y!1A "#$%&'()*Rab23456789:BCDEFGHIJQSTUVWXYZcdefghijqrstuvwxyz?&IZaNɑUZ$`T(P4q\B's'R#vb92tMyYS@ E ._ [+y cE|W4/7l~"诊-]ƤF!Um8gFP"ALgD(A0R6ÏOj{R5-@UV5f'Ah)0Y( PFeJm Nެwp 媆衁y:(`^N6C`sa4á3A#pe`o`GiMSbᘻ"S&HHRXY 6!@f Nu) _I'| ̉"( C0{ R+! ރԳLVE,B@as˜Buxx vm`zFҎ `ܴPtPtPq*$T)A *ڤd(0 [M"3MN]N_X'df4HqM Bb1HiKS! kz-{ڒ:$}22E09 (֯B!)A^&~ S/Z\tPtPsJS,g,YWA/}*Y"{a3xjJ!I⁹|dH؛Y{ fJ&AUQ,@'c53NZx~uy]|޷yHШQh- V\"U`4h fB /:%hjpoEP("VBlťikr:|BӾ']4-;|%:|BӾ'\UJLqe1Yt阠n:TeTҵh"R@5=$_1U081.%Mt "  LQ -AL n9X! Qmͭ&&:=fT@T yFy*R$NS Q [袧6V+f"l{Z;'UdN ZP26J%[Z(s`I HqlF11s$ }=pPlxʝO&F(i\0' ;}s dd9JcEAs#@`霊&s&f(P^XQ*Ikq D*U*Sv]~HLVѾHx$&g+h$(PAcdwpendstream endobj 24937 0 obj <> stream JFIFl{AdobedC     $''''$25552;;;;;;;;;; {l"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?TI$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$:ϲͭ {>hcgKz_cgKz_cgKz_cgKz_cgKz_cgKz_cgKz_cgKz_cgKz_cgKz_cgKz_cgKz_cgKz_cgKz_cgKz_cgKz_cgKz_cgKz3X7"n ekFqs8r~?2_yW@sM5\{- oqޗqޗqޗqޗqޗqޗqޗqޗqޗqޗqޗqޗqޗqޗqޗqޗqޗqޗq޼/\.ٝpk,{Z$h'_}G.^nMk0wD4|>]<3%㿽/3%㿽/3%㿽/3%㿽/3%㿽/3%㿽/3%㿽/3%㿽/3%㿽/3%㿽/3%㿽/3%㿽/3%㿽/3%㿽/3%㿽/3%㿽/3%㿽/3%㿽/3%㿽r[3vu4e]SVdpXλH]^Uֽ"=ВQy!# ,Ǫis;'qޗqޗqޗqޗqޗqޗqޗqޗqޗqޗqޗqޗqޗqޗqޗqޗqޗq޸Oc`u\L˫6tĴ+/ruw?ZX:ݽOsm{,ȩi" \I$I$I$|_2S+uu} Oܪz;,eV;VAD!3ume8&QI$jPľU7Wc8e m.{k` 2cY18H$Kziy!kM07a>k:xk-&4^7~꾡_cZ@wUZ:I$I$I$I$I/iP<9$ft7z.]Y ]JO=XId6u:)n0;~eY=;& @}oGb3>w}u&5@$!:Ⱦת{i$8:z~}ypq^ >HGuzُQϢxĤkJ$$I$_, q~ذH =Z ^%l=1m./'A JW%ֳP햁[}Uez*\54 I$I$^cY_ ;f*?Fi:&I$I$I$|_2Tjx\SeH\ƷYq`uvZA%cTh8Ԟkig}bkhg@DI$o i1㹫qmlu!h.q<0ov Y/.`tv,8VI$Υ(YTUeCӤ?;_{uKj}$NUb,:a.?Q˰Սslxhhae%YKH$Vgq]URÚd)eM/$I XPaT^=vAQB}{\^w}Ǘ|WS.,.%_'$eIk3YӾf_Gem{֟v CiV~s^$̹Fߌ<0?z=ەcb1%ycl*xI5Ye-vEai;k7EwP{cU'^J[߭8Ō/?c@@5`fSy}Ƴ!KD1pO*ٓj7=5u!K $$8tŏN+[O~0wk2[m=F7ޘ5maBrZyȻ;l? g_ft]MyXnkEWn#Ijb6܃6atjQS#ͫZ ^%l enJ uMOJ^v gzh^-1g*g4GX7V,r5Isq0KՖF8uAn䳾M?y!T计V:cr$OMoBn\;͟I$I$^eY_ #q <1k?f\I$I$I$U1fR={0Zoz|{ݞ:E4s49ws(]@oQ`se3k9:A`q7QxW~ 1ccqli*Z؝'1clwwrؘdҝ5R싙>yU^*↰Ifai}`z6_*{=Kz^l<2{^_CvDMSriq}R=nB슰 x6SNCZKϺ{Ԓ^YԿ?|ƳkKq&;uP1|t ;mOC}b7 aOಙUoۑC naomX;p:j:kVѹĵ@[Uu<+?A. ;vΐFUYY;vi| ņ}eE Ǯ\gC{Y6Mv7un o&K_Ak6A7|jl`}en[\%R]b[.cd3ZOʢ[X&4K@ǀQcV;qcZotQm8=p@'.=,A,\jQ]Ruc8 Vv?Ȯ$Meb cy ]Tԕ||zg߬v+jznr6F{3ݙ5n6ܻ[]{c 77XJXGHtl^ښ {ƞؔl~UVV*m.uomdϮjNeu>E6̴zdzN- tc3: =J˘Zݭ J?%BM5>Xsx9~5mCtZ@ $)>sS;mkalZձc, %.ٲ[Tu1xkn p.mpŕ|le-m9ʠuz6ʲR=7KØXVC߈jk!q"Ƈnb|5Z2UI qvN'z9a׌,}t 947Dp$CG[?B2ŇN·P]GSk^|sC޻cggS߲X{iţbg:+c#4nZXq{sgYUp:uan]IlvFI$I$/?WP՜V ]&%|K?f\I$I$I$U1X\o7Onk4}Yo!Gn9al s.nI*c;D_=޿:QߓǴ٣ yfIEIiDg'f?semV]*_U /Y-ode`9+}8lo"Υ(YTTHh >r~_cZ@wUZ:«WբVi#Q? ĥ< vޱf={a3?#(ݒoi+z[NZ`%sE eV>ǒKW8V%]?n1c^[u']~8[Pnͦ'ȭ,,Ft7Lmٺ6Ou:<Y4]&haMkzV3tbUE@vvGKFZ<)#CCH]" ѿn_{ e$Mf -aas.1q[RoZRU~?oJ.j5R`$Tm؎e:9>K] 6-Ouk͎P&pDm5ӂNOoo6sšI$K)~r 8qlHeO8?aӒQwD-!{,m;3}W6lk>lW4k:funmac]Cio"}2eYZhA];ƣi,;k-w\p%ZOvN'YEeXma٢LutN=:=ٴd ]I+*:]0K{\|v?TDz`} #R@"u*X=6<̬s_ǶǷdmݰӸ^;7#5E6־1X}Ύ#t.,ծ%_'$,V>f'O=W^;͕쮻 :ͮn͢nU[ǢZ\5( qQd+,욝[Eem}EVAo^^<{ƽծԳe^P)8ퟴ^V\edK0 >l7vm}^mUZV*eEsv<{羼`:[2zmcּ;7M{(c.m[`}ޓIwTE-jv;}[ ]_}t?z^wQ"V{m'my$:-I%z9cPW2NYSb_(x(gHFX]#}kPT:_WHD=JoMs,m\4Ljc8nhU}hSX~N=A|u gW'*X/TwǘLZ>X1GAӟӨc-=CHUf^,Z@Tw^CwQlӡa-i3Uޕ%UPi$I%?\E`q 쉁ώ?ijĒI$I$I%YdsZG u8vSm)kNd>PNPn.C[w}amXnlK;!k*OQұ~{^k".q!U2,md2v ΊLZY_Sh pp⮤euj31r{t|dQ}6FMn+3Yӝ`64>;+)$K:gQOl[\[@L$}WWON;qqOY5~m[S:?}ɛ ׹[G30< w1%HcFAkA'@+yekZ]Nk-{K`-dNxha}^}׿Ky^籍a67{5 8R[UWhs);l"ep 1ܚȿ:;;$ί.m2X}='Q*oC n>S~͹s˵.|ʻ^~לjkv ?% =Akuգ{ 6}zƇDh!M$MQD˹÷lpޤ<ՄH7*; -uL&lh Sb`ƺ_cLJgpcN ~'`9VWս {힩n0z#` =&4Ӯ9ݢϿ#/# ;e\Z hcv5OϬXV+c\_M{`V=2hap. İKKLa-/yk ś-> Wɵy_4ZX_Ӛ?3R> 8 ~UFC(ȼ 'cd% 9WĶGOәzۭuU_X\{V~?Rkہ}\)\\ݍmFc-2\kkk!Zy$.0 ixSK~+_CVypm#t4qK?f\I$I$I$\?jn}Ydףc}Շ,#K,i->e!*~=4]z8Ͳm CP2> nCG?Cs-qFFF[;}sD\VS}Y )p{dء}Aw0vѷw*t_2#R#-Fu 7qd A>:!}?6hke$$qqu8WC+`W> \@#$u/G(TT Ml` iWjx]W??+ +]:H_SG\CvSF B/\ǢK)fu-k XC}K,k1ߐkXSַ&Uqw}V24k^\t!_v[Sf5rwo}kd DCRcSӾ5C_]h6OLޥsT}B oL&7Ku*bW>^(nv`Unp;uzIsҺZÀ5&?z!\; w (ŠZ5f[RoZRU~?oK,tB 0ݛFKmƤlt-VWSc+7E hչ1 ~%&Xyn̑:W-ȶrenhfX<>As)UҎ%ӭ6Rn40=vWo++5 qweΰaL~P*c[[uq_gnW̏Ӻd7@@\{MTz֜`,c49>C*VQf h/ecwTty$Yc|D3qu۾A?jY6[eE`p=/.n}.YHʋjkXC:)e6mFƒNCGFIp^:??X;#Y 9tOg 1zrJ/hzrdXZW`@-u&k"4):;2E>E 8˭>>sv+͸̪VK4v =+իc_WeY66{v!Qγ&%@]"wN5Ѹokuc6ֹ1A0=XsCүb5af:"͡ԧ`V?Ұ댖*YDz5kQFK7 "?WPI4@|t_ V$I$I$Kr{GPٵF\2ZZ7=Og3דZYo=\®qmn՘8XuT'1Y݈2; Z7+#ޜ/wOVVj-O/mvtak[8Zo{limуUYOѿzJI$uK+>ߣ<u_P1|t ;mO۶v@:GNV-TVsMd.>/vu=Nu60kbc2llK%ϳ7&l Oղ1oUiޞF^k:#24..ii'cl:Ărh )Ǿ 3p=F6ngu@ldd_"6A? aQCς;qnk[YNfx@=;qv{wh1͓y&E~y G^?5FCc^*sAvIù SC8'p2ƿ65Y$NwytRoRRU~?oK'fs6:涴= ..;F"]Z*v:me/ ƢQ1gIZַ{Oc5ksC&{f8x0 p!͵Y`<H߽FϬ=:,ȴl%00Fy`?$uI[_os?HY!Ud8~ߥ>NoaZl|XhSŮiQ.GGﱸt@)tOg 1zrJ/:K:7n]C7t|պ=-[hV}A1P=BzuuF3j~-WuZX_iNy!;P܌AEοXDi\dX̑@Ώi.?;_}l$}%SkMapGI$c-ҬљY} ߽f?C2eSN@ֻzv0-76 K̾+_CU'}7HuiG?f\I$I$I$\?h ???+YnV/Ks|Gt|7+V2+_t s6+]?Ogԯl~,gЯbwFnL}Pz53@43#?t qE HE^;3#5EK!S[$&y@;]Y ]JO=XIs6cgÝkzezkH(hUdIͦ/kȰ4<:1x{mc1l+`ue..uU^:Sh8sh)~rä?{[]ˆf'(;PQ޲{ttنWX+_{]?+hom=#Ycc[~?wy oRgwǡrZqc8 c;a@3i$I$ 4#kS+7+-{X=ܑn/2, Yg i{\7xp"G?m^I$I$I$|K/0w5\U@2+`>!]9aW`/ht;!o Ǩ,i:|d <?g`NS>;?MYX"F8* hc hLcw3ԙg Su4/zKcH;{.ƓGݏQw4eksю-< #$K:gQS̲W+q7H1V򺟨~WVt6V2,Y4,uW\ z-iWU5jþ_j<5 \kiOoYaa@ݔYgYs|ԺN~VK`nK1`M֞ťViw< 6ն4:{e uo+'s[ :-$ɮTK!nS=1Ȳv {`V]N$lZnEuaptkZֈ@u㹟/QV3CS:I;Βޤ<Մ=S]4{'f{v;˩%SM/wWFQPym Ȧ΍FuYOk.}kk59]S;YUmɩ¸Yuv郹Y0U66u11OǙCn{kZ9Đ ?rk;p~>@ {@ PAۏCkmb@ګocDj 2tqdjtL5E5m p}Zwuޤ<Մ;3un67s6Ϥ5gStw[Eպ_{~>jf3qk2>̹m,q\e?(3Qs5O_U`.ߣȳv$<@ШgMu ap-&>M5 aἙѭ DI$I%g1g֝x3.%z9c1,㴇nx'9%| J?RLe]=ݻ.9Ҵ]p{f[}u'3cVֵX-`y-n>#~u35{>3>lC,;V=卺8=&4p/׸ZvLFA 6<jI$L9E͐hCja1Z[[^eY_ "!C]"N|3O[W$I$I$I.c1."|a]$D8>uoeaSx,-$Ht?knݫGav2~g'߿YIi|$ioZb0ahw$8h~ʚs\xnX@+I3wCc~7)iqik@;UĒIygRr(VQcY:O>_cZ@wUZ-:Zǂ5AB 0QY.2Z50:qy;BZ:2bIsF-0>+ Ļ(Nց'Iv;PRI%&0\|ý݃~$"7Zys윢%wg7߈(ɽ% !l [Cxs?_ڙ6L;-y)e7w*?O7a11iYU]ǽ09ᆽУb==h!ڎU~juDyWuM6$}4Өik\ùD;Fv3zf3CO| [UCh$ĩ#WhTr }s\>{GNz7QE[\Pӳ6"벳5?~Tl W䲦 %t#t^ƖÏU)~r68 @ӷ~ '9%| J?Rob9XK WmYG-wT;K^]T!`;HsfW: z^`Mߧhr i#T}8-ox{ H{-,,`#EX\B";ڭ1;!.46 }\em6Ex/|Ռ;sjx#`ݫ'UeRh?<Y/-hȭNrO~__Yw]=#jsk `$I2t)טqW¿c_& xPI$I$I$uc2~{n%c4" IkiN9i4>at-ʡ79&;$5Ӵ kHb4p I3։qh$΁:IА0 Btu/G+>0{K$# @+'kIkUh$u\iC\)$vck/<-:}04 kZ!tLDS2V2`FI$w3e(iq;mqtRoZRU~?oKU~{n X %2ߨj[m0 =+ 6bif~[L?R6<=(i2ZZ7:HSܪY[I$7> U[22m={R֐(Ͼ?4﷣c&]ics MEc״8HPw[keDID3)\?ׯN--o_c$V25?'Dp$CG[?B#vC̩H ;.-CdpZ$$u776ܧ6.7ϕ]" |TVoL85}yI7sxi}YX\[ :DI$IyQe|+j` bI`=}t_ V$I$I$J/?,2=h'xbI++7lVn%U]M5ڐ_UvtnsK_ vf o}6kxЖi}қ+&̂״2N;AuXiidK?ʔm:.[7yaL8 kiNzMz}evF;mZ]&u7&NeFn[|`{m~K..Zx@g1aipqHN+s\<2I+QygRr)Khn$ .?$M)U:Or\eTVp0n^*eL6I$I$^;.l4 r_CzV^S3mK5X|`2ںΰ\w=z۲cm˪ʹ>b,ݨhisCf-gtYU9{j;Apcm[,5 u:.,m6u k`<ZY jQ2q8Bdf_SjkS(1zKns ]Qkd7|;ٶ:uѤJ~x[֪I$K)~rî[ݫO-{|a8?aӒQwD-!r^>Ʋl六$ :M`U}f~`aK4X힩 mǢ׻y9ˆtF5 _ՍSw,ʐ7?i5⛥}&YYFkx ^F X݉y,sZ]zDvS,u̴C[v6!CK]E.nbcߎE$V[$s2ҺI$IyQe|+j}7Wq%d.?ijĒI$I$I%_̟2(fE.8G+Ucx0~J)$bbd|Mv"1Cp$ND=e6;iB >jgfS!1kL>k|rq(Yucŭ~-V?YG"Qj:!>z"zW?/K#94)P^XEZ&#I$I/kꊖMMc[IN3~.]Y ]JO=XIx<\, -/+<%K}eS {˟e76ms›:5ߏM>6Xkv<8ȣN?Es2=zl{ay{5y./ͿնݬR{W=).x94R\7 .+8W鬹6 ktv_YeW`;qM.h9@ŽX˳ 1(s/i5AVۆrيnhgՓ=~[I$K)~rĤ@q۽z'9%| J?RE!B8/?KP}ߢg<h3\ c2X ugcӃW{#s~VI$I$I/1, TO6$z{}O⟣?f\I$I$I$U1XXsܶ dixrxlܶ6bH'sOñ;Ru&Tet-mG1ls_k7 q$wLΛjC!%#ӰK^%$~2kmmH:ngs* 1Bx<| Knpy\;Ot!_*'vRV_GJM{aǴ .&D|#z.;ט"}պ`טp1:ƚ|U ck-f5nzwDI$I$fK5E1eu4yg _CzV^e]H`8"{"ƀG@:O#[uX=ϫʚ}:iUۓC:yC #-nKsʺ4Uumnc%nYX8苕ou.Fz2[a6EqkZ}}gUq-`cKRz}'䃋j9' Ք>z7Vk79csyIԾ˘1$ƻHgVB#|zI$Ip^:??Y5:&`x?Dp$CG[?B)p}Pu~[k[YYNюs<7Vװ$OM9M\:}YcC` hD1kG\ܼf}w7˲ͫ+%w9;p&]Q:.-I$I$^eY_ 8ACG?m^I$I$I$32ߓSrh&=9&UgPuLTr{]K ||I H24#W{̗n̏Zuha;rxwb<ȏʢc~.uL;ɺE\usYɂCØp:>I$\?ׯN.;ljg!L0:'9%| J?R̺1m$;O5u,~I#6:LFy=c~dnPcqּ[ :D.˥.=`/6T sDjuy-'|֞E:9Um~35Н9Bijr6'{[mF(3[s*=vVǰ\Cyh0CDG>IP/kkI 15͆:f`I$IyQe|+jk ibw%|3O[W$I$I$I/a=V\fp ?Z:MxoIǎ[k- Ox?Ob%ՍN67 {݃O [7E9ƹ}]?'>EVJ:I) ,o{I?J$GVV8lnE@oZ;u/G+:(0S^ݰ$N'kIkUiYI.n_}.qKWc/pXGC\z_PN&PNJ0sN(g:Ơ!YcLCîy+;/ZܫhݶڐƎ&UxwQI$I%QFk[s-L<+_CzV9-%'UqkdzQ-ߤ渳ٯcn}El>%7T 9%kyջG9ۣxO6PXr2qfstu<\CK hX׈i.sy Rl;8|: 9 \\4w7>IΕӱ}ծY!ovY'EssouvZI̹hvNm&cD;f9y/S?1癳>=jI$_,ZZ n'Dp$CO[?B\q18I=v^n-1jrqj9ɿWį"c}~ɧ" Vn\1.έߥn;O꣞GKۏuO1r=Pn?^NQeQ]cL:UĒI$}qW¿8?cen0L%|3O[W$I$I$I/<{uާѲlm\v'X}t1,_x"8.zԍuX]ms;5x+Av_1f>9c^w ~ێ:_#\Hki+7տ6/rMKo,%5!`c}b8FU\<+\3jګuaWۨ^<9ޟ[Uk c AkJ;I.n<[y%KQsm2X,fا+q `~vI<;$I$̿wƿe%CGt_RoZRU~?o?aK]fhVh5.{?w k hxwG}lcuc1qL OeodϪ<JcqԖІ\ZK;I+}Zee:K8[=0hm_oޣhZ qJ|lϏZ$I.GGT-kwI. F8%8?aӒQwCdp![mNZW<~y]~%0rx]û,Tw\gD-?jֻunqfeY[sgB5cms:ߔA_N㳤wm=AYegqbȠVZʚeq GUƘk齍> $.}dG:K_thNxarznk0cܓv;d9BhXu: 6?M$n+m>M5eVO>pv9u66a._cZX|~V,IjLys]}CؿZJcnkC|UcOoe,\ײַ[(gR!WWEc&5U<^:H8bo]=j^nq1qH4ē;~ `DI$w?kjf֖ͳ3$3+{]Y ]K/ Ŏ4:jg{roHEk`;/2s#h3% g)3#=gOlxhK]s=5Ek7 cd܋LI=ϯ`Q+acKsBI$K)~ra#vsT'9$'W37ww*JiU5WNM-kq&4;j,[+o~NΔ+gwsc_WzP.8XH]X+8W}&Ǎ[:;k 辑~mZ$I/1, U]&Kݣo=?f\I$I$I$^aefbuՏNWl\gEƠ84h9뾤u:o#6D[!McQzN,ɭ8Ӣʋ/`N^{ZTsq&j}BԅSCa8/fc q5 O58ۧfKpoM}@5չ?WY8t{]mLJ;Z x.I}mm.> Sls жq!.p璬9_<5հtn#i 'kIb籿gf$.q>ygV}s[Y^+W;a7h]tjc׍QU58 [0 aloglNI$K2g9f4S_Cz+ISf>muw9w#S/O E&L@:F;Ami4``*U׵Ѿƾ`3ahsvohF]I@"Z 6gG6Hu GM|*Tk"LIqp:s)Yn@s,SFֻ٫V7lntq=ԒI$Ip^:??Xc26mILp?0&w?AyKyĢv0>rm^]F۽95#EX$>>9t;lL, ,ck;ID[]Jn8*d$h4D(!ƿmo?kSyVT-yKLpO%O=k$I$(5Pu|ٴiˣ~+ڽq$I$I$IyOZnk*YXW? 6E1i\u9 ~651]d-`=fO0kO-џPߤ65q?9xbϢ~E-i p 6ְiCyѧv_:aȦ۫114. 4'Rlx[95yL ;XذXYNOhݏ}f ɠ[IOĕfaQV5דCe?rC~ :?UmmǛZ2r$QWNZ@SmxYKypmUyXT~0+M@Lw<^YԿ? ].?%1$Etgǹ[ *K bt윢cѥ56s,!mm-(h ;WeUXr~? *gZYdQ9 `p30ٵmukZ [||$I$WGZlKռ0wd9ձ]V:%v=*Ɨ7*4! ?st815 $eK1EBm.]Y ]K''ƳĒVfmq6?k'I$I$I$Ip^:??\ڽ?0&w?Ayc Xr[& VnxV0/c.qV\lf[zC5iN=Ü@6NCqqGژe$7wh1%x}y]qc_]vՎ`Hp..`'DY:F.th&jX̬p/xw:i-_H}RĿIT維dI$}qW¿Uo?f\I$I$I$\Rλ&%?&V^{i2,N9a$ӟծhqPv.poIzo97EYY?A'i}Xuh8d[^!'tNvY8 X2 3T׶Zl7UUsv{ K\rzvMLrK_\CKGmʕt-݂AJI$I$I$I.GG˛W'9$'W37w?h̩Ѹ ^5WkO}὆\aΎ4魯+^PpvSZ@pP8 imgeýrݝFxc"%^ɑwV}lƨS{-cՍc﵆1%-;]ƝU$$WT/Y$I%_\E[I$I$I$|a/79u\W;:H.|:mӱի~9:~,{pV_w9^eC?I`뾢˽<'5܂;^'s^>`Qf ga@zO46Yʥa8|?}BVk(qXopݥFϽysatv ܾӺOc \ܻ[ $Υ(YTUeCӤճֳC:c{K/Mꟳ`u,̮H]r{׿KءRR05@5tI-~^E]/캺km5BOx5 {āOf d\4Mp{G ȥ]~OU238">u'UW],<䋙˅C굱Tv+2D}09o]^9*%K/!kIddZ=-۰L9]JI$I$I$ձ:~ECdFр $jgDBwX#F+ʜj4?S#ͫY ^g}+˙ H $@yX 5WE\0H$}Y9Jά/kvmt n,lt#7'TzV@nƳ.εys5hk^N Ecj'i䬞)$:Z "{\]'į>_*?VI$K̾+_CV*|3O[W$I$I$I*d ]Xp԰mj]C A,~sFZy^f[Ml={gV=B?S:M܏:{ofilꋉL+]ixaӣqa?7٫~;WֺLf}1=Jo9VYҪd$jΥ(YTUeCӤzճֳ^+<zNn#}Gí#SپA]I$YX]gt7k;e> ;qQS+.Ɔ$uni氻h;C>w }_meoȘ5@is0񟉖eVsO Kr_c͎:Ix_TPW.,.%YWwK˜@=6=XHEB`Hhp}ttl|{uf,cvk)Ҙ K.2t4o༐c1{cmyq:Ήv+$K~+_CV*|3O[W$I$I$I*ue6 6<: <Yqﹿ5]e1A{OM8k3M7qLj?5OPɨ?>~u"j!Q/":W\g9gMu2S~w_jwǻoM/;7&ڝq\wFZWm}p }_[3+!U4?4Ф\W]X=7x)}-KNAo_jw ~S[7$ڝ߹$%oI/;sI}-KNAo_jw ~S[7$ڝ߹$%oI/;sI}-KNAo_jw ~䗚d}_/ȵt9# 'ZIgٗIi%NWdz/kKXCbckr9r[psu6cm;w83oI[հsn| %c {ǩkO;sI}-KNAo_jw ~S[7$ڝ߹$%oI/;sI}-KNAo_jw ~S[7$ڝ߹$%oI/;sI}-\'n3FN>3oZ8ܲZ䕞z]O1X̊㹺5$I$I$IEr %-zhW9JcoWum >ED83FkPd'I%h+*+?[m%$I$I$I$I$X|JhVp_⯤[I$I$I$I$U};_5'^/cD Oڋm/*}CW?O_I13>~I4%!))R%!)RI,_򭔒I$I$I% I_!o!CF6R Cu*vok܅L(^&*tYV?»ۿ 27CF8HNI$F`Aj$I%?GW!^H`#MBn{yv=>$I$I$I$l@U35lnxФ5$iU3[_BZ&<*^#IL@P n&Dj<$Ʃz ?z^ n2 '2gc@p2L'pHTA&)&LRja$)zLTI$f`a/ȃ T3tI$I$I% 8ꋺa)"ʪu:&y)Uio`h0\ kĺѺ4q>᪕okIBVaRVݼB*I$lwĨ·ۿ ܷŧ˸G!:I(>Z>!G5v֏Ȧ8pD*rZA=P.C{a5jgkZi:HAQDȇ6ƹ>e5v -;Me{Ħc|?C!;Ii(p4I$I$I$Ks#2P9xVnLUso t3hRe$ΰ{)Z HWrߚJUiFI$-ߺC?*bZ[Qpu2@UG'S؄y 㟊Q5?Mn{6+>j kJhV0=m$;qiVHNI$I$I$J`#~g-,J=08Ma"f$IRk@41 qxqx o%9@$!+$I*C~D(R~i$I$I$I*w Sn;{BsHP?M-Ta'aAh'Q͎| }.QJ;(hΧlчRȕ |)T^=Vq~?$;y5JF:DBJuNo(O;'%hg kꏦޫBb>asG?'EI%?Џ=+I!~hP% u:FI$I$I$I%W({o^I% B"5N<t#3τKy ꭎ| op[`(j?gGDI$IRw!BcZ $I$I$J¿U]4O ?dy:w9\ )[1--P!*S|>Ioj[’I$I$x!m)o\I%FZ5O;k.qʔ HiR̢WX`<'1kdI'Qڵ)iM$I%NSPۤ{ I$I$I${㏂+u(MO(OFh;⇱Y ʙ:tHnA0.pK1ʉ "m"agU4SdU\=Ⓜ-DQRP!E$Sa<:4Ì޵~(.sb?8æl" ɶq$H=Dk I$I$p{% > $Ok~JA! քŭ*I$I$> {JLUT(@ږ6i01=U G{Y!BǗi MhU~M$I%VB=0{ I$I$I$y{> kFi#BD(;ks8SxS2Tm֓#杬xh@ӿtII)$8{" -?DQQpI$0TNmNI$J:GL0 pR.[πKy o>-&O>MZ I$H7}!P'`J[~0(O mq晴{HU5K4&ڟj_m$I${GNI$I$I X=䀢?uN|>(|@ $ސS;)BI$I% m:HDSI7tI)09HRRNI$I*j䢤I@*> Z4|SmuRu0Bm6=B ꝃMQBI$HVp(Ɖ4{$@-斘BRR||wKc [SlwO-,уऒI$ LotI$I$I%Xs%![iRcdI(SKhM-AOtB#R L੤uBPqr%7/jp:I$I$ B|D鈕~Ɯ7T-1Fd G~{I$I 5$pI.5DxM-nRI$I$=4hF$I$I$I2t2I$ I$I$I$y)M:J)$rDtI$I$4vrd(yI߄Šh16)[RYSo I$Pw)$9$:&J#PNI$I(8j4H B"I$I$I$ddI:I$I$I'P<)$I&)NNI$I$I($I&N/ ^)rC$yN8NI$M!ʚI$dɒN9R$I$I$]4I$_endstream endobj 24938 0 obj <> stream AdobedC      !1 "#$%&'()*23456789:ABCDEFGHIJQRSTUVWXYZabcdefghijqrstuvwxyz?*Tu&ĤBM;b' mҹ(  ((%S:8Ỷ3S I000Ph!c%ie9Jr21 ̀5R|¿Lmp8q0H,(κb)l4-%g!S9TrA% {{Ԫ,Ы1E3#HŰ bbʭ$s(c3~3[D@i&)0P=j=Ow! Hvs--b*N*,BX,L#5 HrF i*0n[$+a]rNhQ4YW B*a(Qq&A}Oȡ!iOafh4ΉRjFbQ)I1U`hV-$ ‘Q&5ti*(&t@ Sm]@a -Hv9ay= d n:̧Q&m@O53U| ;mlE ;RrmV &p(35 M8L4JsYq9'eҔʘ3jfu+ge2`` &-SkYb( (LnB m:m6m@**& OV&NXƣ E=&dB Pendstream endobj 24939 0 obj <> endobj 24940 0 obj <> endobj 24941 0 obj <> endobj 24942 0 obj <> endobj 24943 0 obj [0] endobj 24944 0 obj <>/ProcSet[/PDF/ImageB]/ExtGState<>>>/Subtype/Form/Filter/FlateDecode/BBox[309.209991 179.052002 333.209991 155.052002]/Matrix[1 0 0 1 0 0]>> stream H*w6PH/22ֳS DXXZ))$r{(sr;Q]endstream endobj 24945 0 obj <> endobj 24946 0 obj <> stream AdobedC   dd   s!571AQ "#$%&'()*234689:BCDEFGHIJRSTUVWXYZabcdefghijqrtuvwxyz?_1!D6K:k#  )]ԏ|Iu#.R]H˹~R=_%ԏ|Iu#.Rj; J)`blQ p)$(!h B?:TMSZjgllg0 ""X$4vg @mFܗrP]^^1˹BKf9w(Iy{L. //iܡ6݉ C20)*(15L0bpC%)@Ǜ deFl =`k")$$H% xD63(*= m-W4nJn%tmH=bB("D$AML^2on=tnJn%tmH=bB("D$AML^2on=tnJn%tmH=bB("D$AML^2on=tnJn%tmH=bB("D$AML^2on=tnJn%tmH=bB("D$AML^2on=tnJn%tmH=bB("D$AML^2on=t.s'"(5"ah!VHQBkf"D$AYxuR!tQRF\a TPJ$XC(O@|262Hg\L{<`@Fޛ3L$z/% /4BKǬ2P3L$z/% LC㲼`Dށ{QsC#H( D(0a#c@_$P8B,P DF Ro̼WIv).տ2_%ڷ^+XV~jߙxbGo\` 4Én"B1b _$H"D$@endstream endobj 24947 0 obj [/ICCBased 38269 0 R] endobj 24948 0 obj <> stream H ك FPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUa_AUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU=8mUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU@TUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU؃CA_ Xendstream endobj 24949 0 obj <>/Type/XObject/Height 60/Name/X>> stream HϪayc1lfԋ,N_)r;`\$Jmlc;~ճz84̽CuwG5&F√:H|`$qJl-c$@qr"V@;V} K<!!G=9|SXmYfeYfov]:!sh!wp[! )NSVc JFLE/k]$Wը? zB ,r7\S[{Z!45fnl7kiI}/IfJSb>$^u~~ܨMendstream endobj 24950 0 obj <>/Type/XObject/Height 60/Name/X>> stream H׿jP$ƴ&pU,n""_%VI@_@5.ƶl?L?CᎼnE_3n/Kj:vS#a2E%#L5% Y%$+h'2v-nhA> Ka hRK-RhwMă@B@ |ג3%5V!_1z}qL/.2^ݧQ3g<7j=6XQrm7QYk"kVT2:gu;FQMaǕljtP<\ȥ/?շoendstream endobj 24951 0 obj <> stream H\N0y gJQ%hAQx4ٖHԉзǓA a);]oڬ7]fkw vϡ1CyڮVӻ9C4q}RU.}1\]:I_Bkw^t{/;-}zh.n6mM;~ezN3Mi ?XRX1eb/7uH g8Ey^TɡS'N /"^{s0 )SL3eA.B5P_/9SG#HI.h 5eҼ%߂ '߃Y+ArJP+aRQSSSSSSSSSSSS-N.u՜Cm5Oob[ ȣendstream endobj 24952 0 obj <> stream H\j >wٜ%PrNReby6l*s)do݀@q;@ڂ.]bqi"w8=8YWȁf8}ކ3aK txg^삠+v!a{Bhk 5YliFe̓T?}YV-ަxBm̒N(}H)&,#o0endstream endobj 24953 0 obj <> endobj 24954 0 obj <> stream q /X1 Do Q q endstream endobj 24955 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 24956 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 24957 0 obj <> stream HnH0dA8(2m+$Hœ}$U]x8J7?V_ݼ}~囟J^㋟^B3J_xŬ,Ur*/ Qa٭6/wztܯ-^,S\nPtܗMz׬n[^\J+Q9o~nOVxHZ)Z7շCra0p**_- DI <υb|*/>G^ޔEPIq?7Ep'] ք\Fpp,U(UPav!rx$eF/ z+^eW"UF zk^g7!MFoz[f#]Fz;e'}F> LcBűq Tkq,rz@EǢ\+ XTk%ZZ*>s$\cQEgkq Tkq,̵p-EAV1Pű"3Jµ8U}ZI6"\cQXT8U9=p-EAVű"3*µ8*µ8U}ZEǢ\XTkZ*>s"\c"\cQEgUkq,̵p-m MǢ*1Pűq,rzZ*>s&\cQEgՄkq Tkq,̵p-EAV1Pű"3jµ8U}ZM@EǢ\ XTk5Zp-EUNc"\cQXTtr)^,S\yŪ2[ZŦ6#KD~^êb ݤ헛A~k]YCR\+e}8tX..-|ymfySgf:pQ.46-(WͲ;[秱%tjw{Xllxpoa }*!)vvS4j~v4ftKc9rA.vm˧{A1v~.elgτXVYJ{y*~{_nbWvp5w1I$5`￝kޮҽ`Ygj?h Ε*f}|n"Χ{j5hiWv/c0)&㴿mдz>k3Z7i֋vO,-peVjHǴ= 095FK`HC=z fd֙cwx~!>TRtuTr&:gV6 F5?$*θ۩39vF?I4J@r4RWa`MbpU&6$2p:Tr5ae%eG'e IsL&2o(QLfkKLjMw`wdLKL3#&kd톆5DlepcfbB,6 6iZ>5@$:VBf!B[(X3#gGA$9<@NAi a& Z#BRWN& `J fb?4A^*vp2=0S{>+Ysj<äF  a 8!( %y%j} O| bԎ-rV \R3= 2D\`WAvҳbT1ؙ>fy8R6`Ji<̪3~D0,XmB˙\Hp18] $4_tπ d AU5GIȁ`j{lB=!Hh aȂ!8Z$4kh=Ȃ&7~@z$Nƞ9 c_$K* F;g ɚ.ZTpF;԰g, J0tJtMx4#GSUUT"'*ؙjU~ʟ=瀯NFDpVSaߔFp j0#8v?«d7r+=j&q 6մEXKG#Yrw|Ik"y:`uO5Z힆hnv?TwC]@vrx,.1MO\[餌n罧qc()2YGޑjsOc6VM&S´JQβYa 90Pl}H&ud_ocqf@$,4ӤC\^ }]lH(G#lDQkaυ@6Ar6X;׻~j AzN%] x&jq^-D)-:Ljv`hC4 ׵ZĬ{'mSM2Ki&Bi傜~<` ]K $1|޴ v_T`60$EoPElHZ틡Iq򂭜z$>F>(T=ʃ~KA.Љeu`h,JZ,%m)![+w)0f`8`Թed͢huif`;I4>L:] z"ŭ9O3(}~rYTeċqyDɲ %1o})VD@T\- +3 m@ZdPnFZ]NZMzMu_Gt&4$d^=s$O-~)*VP??(@5Nl_[8`x_wGjVՈGŅ(`IB\\M92i 'ŅԶ&z eG)ȼM+7n0>sR;=ZYsCn.xqjN+5 4\A`[8˶u8BD+S3$E5&5njCύ<] yo+JTQ_z3b [7QBn$nA_B*tz{B=b/N=񂈊E%alP4'`+JR;Wu`w(Вw]4|cDpAϺfj]yCۧ%<4|O 0BYGendstream endobj 24958 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24959 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 24960 0 obj <> stream q /X1 Do Q q endstream endobj 24961 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 24962 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 24963 0 obj <> stream H]oH+7&cV[EU6u:.V=isiI<33ێ~4-<{6phx:1^Nԩ`)N4|J T,瓶\/˦ZmSMћ "܂2q 98'dz "9=8)maph>0ŻiVcomp(jh ݣvޓAgXh?fB1k s>3g -Yx{!%XKH4oO3ki)= ,RB{fR4ОYkki)= )ZEJhϬ4ОYkki`-"%gZZEJhϬ4[$Nfi`-",R=͐YZ'XKH 홵NfH ,RB{fYZ'XK3ki)= ,RB{fR4ОYki)= lxZER4oOH4CJf3k`-"%gzZ!%XKH 홵^f3k`-͐YZ/XKH 홵^fH ,RB{fYZ/XKEki)ޞfH ,R="*s{;]$/dT ISL+"9=XWM98oaphf4|,Fo^ߍ>h| W 6դkZl GbFJFCPJbٔno./ķ1#mʻߏOVѶms3m)?JoӞƒCϯz;R=:Tsid* w/\7uq~t!Uf74~Žr÷Gl1uVyeㄸn;Ue*|\խMU%mx:C=T- eq2ʹ^_lo/ @qd7f<:Hl?[u gݔO&7(j {z)ۛS;=q۪s0ie-y:e肚.m7V?wW?~?gS˦sGM%t;<.x>/ ~ʸݱ?OÙx'Йǣt99fM|;h9?P3dgus{4 қa6ǧYNw~-*kqwC-8[IˡVץ03:^qC0-NP.V([c"CS}ߎlMÍE~(k8e󾥆>`Z+|8DW6u {@6+n[#ѭIW2h'܊_-|RtW[;I^/~endstream endobj 24964 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24965 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 24966 0 obj <> endobj 24967 0 obj <> endobj 24968 0 obj <> stream q /X1 Do Q q endstream endobj 24969 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 24970 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 24971 0 obj <> stream HWko6_cE]4I[4hz-2CUY&}k$Eν?󦍿_<7Ff"*fd7.w\E,!B!+!Xv!B>,IzIzEWzEWzEWzMׁzMׁPB}OIMM>%ԧPSB}zzY>#i}$ZCVǀEǐ1d} Xk} Yp!PV1`1dJµ>,B}ZIǀEǐE\+ k%ZZC>p$\c"k}ZCVǀEǐ1d} Xk} Yp!PV1`1d*µ>,B}ZEǀEǐE\kZZC>p"\c"Uk}4ZCVǀEǐ1d} Xk} Yp!PV1`1djµ>,B}ZMǀEǐE\ k5ZZC>p&\c"Մk}µ>Pp!+TcȢ^"ò1)Y#Xe:oVܔћutXvΘ566IhSsk2_9]|uc_'|7ǻoySጧ8Ya uRL2k.Y3,J4ڂWnBI/Cݔy[uęVkZl= -*`uKJX[NoԧKeI~u!?82|uD,gI6]\ rn;|-684ED1ɟɾ4ah"]i]ú{iH)8o9w[װif1O^#6{7y̏C$7$SRIk_:xvKU>cW5p!uEiiI:OimZ }5!׬rR!_\na<քJY&d\z5!3#WB#TƴqbUmݩqas@.n~ ޕj#o}5.)3CWcjX1KAh96#ˈajXV+J dBfs/;HBA ɢuNE,cCYhxԨD꥞+ E Dt ѓχHV*/,zy=^ie-{ak2+xIbwtCMOHpC;Ŷcׂ|pMwP 4ᘟϝB#CzQ|Ry>_٦| @|uxu߮c`kHȉvhu}\#ab&_Jb&vj_> 攚,]b<_g9͇"Kt9σLm]bTz^>B6D{pnHձv{ws:v?A2t#D]gs9T:bTm Ԯ>j]G/xQ~:uyVBwYcIbWCuJ Ij?ÝGN½r֐ m?]aK`FAp1wulRm1,B7q8@ܺ ZؼQ'lɋW”g⩁& D5{ns 7>(5R(2LAp631|hy]i!|ܱ]RVc\ĭ8xzBT#Ћ\þ}O;/N"vjIr<u,෡2^Š)׻&K2duT„0'69,u?8Aǻp7 Bxv6k-umt2ƼeR8o܌-HK^wc]Fü9'Թ_׽*X]gR U۽IWKGvmX:s۳N2tl*L{虎 IY8YÕ"]/Iͳ.ń(jܶa=bbWnid٦tڙd[5K} @R\֠A{@J5Pwt:D A Ry{1e 7tta}s`Di2-1X?jC\gIb*ede5(Pipu[qFj#Ov%MVΎyhO`Q˚* |}o4b'+Kvhu_vjQnB|DU# uӰr> c [~pFhhLb5a? H:0PJ]kW$+%'SqP[NYM$E}Nڍցc3ns_b0~|IyRtzUinXsǯM7u:N&#/wŬT xZL8,AH82X+aR`<:h㗉>[lls$!o%ҬlU7$/"݋7Ĺ;7[6Ixddy=YXNj" \R )zpI IQlHAʶϾ]Zk6'gM9El.9ߦ뾳dENby=qpUrl쓥65%/ y)a7~DRdSa^*kC[7͗Qu\V uFJ7J4 {;y4r?QIbp,V'HU!vۅYVS,z8KReu&Ip<4S NBnhz6#y$l"Co#  @UiUe*aW _ T|MM3yazۛ>R&RESEl૖1 -Gky~ C?}4訰=rYMOY=ю"8V7zYM SkO{\{(D un%.ޙٖ7W&$ ,$qYؐ9P F.ڸ3DOX~GuDw&V(K/MM.N1!h/F8_DVBO<ƟYfBAyB7OWgzW& -Uq# pǡ{l`%w\+U*CMտ%6",Șaw LIЩ;aQ"+8; ~׊XFx3)ÓݩlT.";^{ԕI?c-iUj:fN/>/qeq mAN㐑ѹ <v(%T4qdvPmFƱRnnͫ$YؓsN~~;ڌw:E5roj 601QխHr͓RU_V*~ 1N"mRܢjwWvʣ=aZneSk<8bͯ-fK; K|N(M㠽)P8b㴾-;fn@#ч>|zϻW 06endstream endobj 24972 0 obj <>/P 669 0 R/Type/Annot/A 24973 0 R/Subtype/Link/Rect[93.6013031 229.229004 228.302002 248.908997]/Border[0 0 0]/H/N>> endobj 24973 0 obj <> endobj 24974 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24975 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 24976 0 obj <> endobj 24977 0 obj <> endobj 24978 0 obj <> endobj 24979 0 obj <> stream q /X1 Do Q q endstream endobj 24980 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 24981 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 24982 0 obj <> stream HW8tH]ۜV9mZI14& } =޿P*`^?U~eԋ/~y"^M@HWF$VGYDS& _)jmLnl ]Xi61hV][7kSRzڌaԿnumֺ8d빃3 HY J?:R"d,~[S,"uF->A}>}NN82bYCV°v)}b+Ob+OfkOfkOfkOaOaO}¨O< >'S2SO}ʨO=>gS13Oe[Oe[O}Ψ=9dLKCR Yzq-Ő嫧|Z!QV1kZq-ŐŨ\R Yzϵq-ŀŸbb{Uk),FZŸbb\K1d1=*ƵCsb\KCR Yzq-Ő嫧|Z!QV3k5Zq-ŐŨ\R Yzϵq-ŀŸbb{Ռk),FZ͸bb\K1d1=jƵCsf\KC`R Yzq-Ő嫧|Z!Q0k Zq-ŐŨ\kR Yzϵq-ŀŸbb{5k),FZøbb\K1d1=ƵCsa\KC0|Z!WO1d(s#bh&xlb#A_4Cny[~wm{uJFFrR7p۪/pzF~NDj=L_oG2dnؚuI +i!ϧP': ۓh·$F<<ݧMGrxzB$5"5cFLO-kK,7ϸ`%U x TȉMhw/T^*UTUc_fQ,_s %DdեpcM_Lr vk*5c\ZCuE Eߟs_uby,N0m/ 7j1l+%;јt&J{ !%w/, 7d+n)dJ!`mS^u۸}w%=9ۮ؆󾯏ʽbޑ:Ojڹkmӏ;hq ՠ #^VCъ PwajC{}֬zAgCGK\mӄg@ޭٟ4(QB:IIE>ݠ$Y(k ꮯuuqM$۶E ͟_Ɍ$5ZqRtfEũ.3xO2*2fEwm>j۲d '˨,R^ɸo";!x؃Kv[2WVƮO*cC7" 7FnVPWC/N:r&Qu䆃" Yg: <,.vc8 d.C/̯%mFP{lFi">$<5Kn\c+P7qXQ\ZO[JӬRY!߹&8$04Rg솃hʵef'@ t؟Q Gk.ؚ <[l5dR=zl(3[ |庣`hԉ+]]CYLfZ{NUq~E+3V1neEס$bcQ&[ h9ǫIvRRM+4:猛 8֚vkcLÍ,z@9ά+. NSO@6|㶿v*ʲ ;%{ubԈ.yܔɭd]nbkX0N='Q^ֱEu_wH/3HTxn@>\?./vPjh62JM3RXAg\^`u_KNV(%dJkjխ|\vpʧ9 ~ki7<_K =`wl5oDx-B>|{Z{gZ;)Pk+byoDm6LOi_ϕ/0|hr{;@1ԐwOG{>uZa]\\Ŋ{2o-ix¯NzIkBej>8+1e wϽkS?G:z˩8L!ӥ_/#\YsZ]w>qΫ~l=$Nj}^J׾,[\Aq $ &@82<%o} -_ygeʎN-fN%ܭ!D2 u^:.sw=b;Vcm,?U6 C|̀ӷc3r0iK0l~䯺12)Q],-4mM3$Q ϥv$VG|m_59tk1|B?&X>?%,iH@S RJ= )cFpJ%Y+l%ĝC:5i.3֒99*]ɍ*(AA}"v䑼[wBW:OIV<9_P!- D6.e95OץJT!^f>SEukҕw#, |"z`Kѿ Z.z*r͢ψXTH#|#!z!M㪶WzZXJfT9,Af ^,jNI Y)| . cYMjvOnHQZJmsܤƀ RJ53>/P 961 0 R/Type/Annot/A 24984 0 R/Subtype/Link/Rect[93.6003036 551.090027 269.268005 570.77002]/Border[0 0 0]/H/N>> endobj 24984 0 obj <> endobj 24985 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24986 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 24987 0 obj <> endobj 24988 0 obj <> endobj 24989 0 obj <> endobj 24990 0 obj <> endobj 24991 0 obj <> endobj 24992 0 obj <> stream q /X1 Do Q q endstream endobj 24993 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 24994 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 24995 0 obj <> stream HWmoܸ_!_օMM/͡޶8A jm%Ҟ$p}gDewpp!yk77>y/o߿~f$W,q*ȸ-uHU]}\kM[ʾ6q[EneEoZ|S׻@؀8y>DwrWM_\Ʉ l~ui+1$3<4Mq<[7aӧ21^%2X8X1~7XׇH1Ă7;}6JD!'`S}Y>#g`s} yM BIB Q!{(B Q!{߆oZ߆(}ZIַ!`Vm"TET+ 6DJB Pj}j%Z߆(}ZIַPoC>P$TET+ C6D}6D}B Pj}jZ߆(}ZEַPoC>P"TET6@m"Uj}jZ(B Q@PoC>P"T&Tm"Tm 6@m"Մj}j5Z(B Q@PoC>P&TEַ!`Vm"Մj}6DjB Q@Po;D Z߆oZ߆oCT0c9nut^XX3|bi&^,/,]ݔ0$fzuS&,_}S7f4mQڡi-\+( &~een4Pve)̮/ѳAa.\݂o7wGH=:X[*{z~˵^ (WH,ӆԋ 7M[ +]nnj*0U[\o$B܊Ks9, jz\fiS ρqT}p{5yw`$cxJ6T1 9S.nf'fn`/8=ڏ?Ϗc FD.Cic)nnO THcwaOY -ՑrK\n⯟o?vij<{_X®r-O)a5/+3ưĨ Se;6EvOcqճGBgCS&>'6=8^w2=mچ'jչ,^H8?P4tc* (HoKX\G R|yR9tˊf oJ % R߇?''ӄdtܫl ihWYo8~ϯȣ xwz@cY  Qcm+HJJ`g8gO;$%ʅZ "?N(G&4u)j1[ߝ~, A)`$}zLJ7>"ĚARj%'őSOdzݜ|mOP'TY@n*Sqk縅o/TZ2޻>KX@d^ Cn0"C UAwc[M3th?\Ȳ0I=XXj r&~lݭ]ourOZK*BV8׃܊>ZnP殝t$zVpz]<]NYnya CjҘҥ"Tɘ%ɋ*2ef448Pg+m]cY.a{e֛Ǿz Hgvi456+3SP{hڋ*pdL˅vP$΢f1G?M =n=u~m x3x Tn}y΋mՈEBv&B g7uB-y5 ^CUdmRJ *b ~gc+J\5ڟ?GRGRN+P fvu6Xxy2Ǖ&iIgy'%e`޻BS M,'ڂO LT9Ax^|qq&+E$O[o|ծ=!TB.>^?'u䉅ovy7 =YUP ̔e㉎P=B96M߰s]ӸَFW K-"a).$*ev2hT*"Dcc!ۣ6IY\ɘ>3Al7c{䙿|Xf}XVęa:n[,laThҮ,o\$1eY.0B\}Ut5\-+F3Dyr +Tzz[v?tR,TUHB JQh^}hwr{~R@;4a߿u>=S*'RDprRe[`ejń5$.e.i&sH3w'/zendstream endobj 24996 0 obj <>/P 1137 0 R/Type/Annot/A 24997 0 R/Subtype/Link/Rect[93.6001968 663.229004 247.740005 682.908997]/Border[0 0 0]/H/N>> endobj 24997 0 obj <> endobj 24998 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 24999 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 25000 0 obj <> endobj 25001 0 obj <> endobj 25002 0 obj <> endobj 25003 0 obj <> endobj 25004 0 obj <> endobj 25005 0 obj <> endobj 25006 0 obj <> endobj 25007 0 obj <> stream q /X1 Do Q q endstream endobj 25008 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 25009 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 25010 0 obj <> stream HWko\7~>ڀ{I&NL:Y'Ϳ_R3%2 x#]>lŏ?99{.gO5ʶ* V@0;ӂ⮑sčh߯o/7Oon6͕xi_~clԅJHu V?/ kXU=2 骑h%DilLſ _HI4ѸVӞ2п&D1 )@Pv QJF(`P9wJ Qa a ao ao ao ao ao =0` {(;+;+{/{/{/}(}(G},G}Yň6mͨ6dŨ6dUmbTŰ/T6B1 jF Qjsj5F(}Zͨ6!Qmn#þPfTŰ/T6D1mbՌjsj5ܶi F}nCF}n#T>!Qmn#þPaTŰ/Tk6D1mb5jsj ܆(FP BQmn#þPaTŨ6a_0mb5jsۦjsJ QjsJP%܆(FP BQmn#þPeTŨ6a_2mbjs6B1 ZFP BQmnCF(}Z˨6a_2m6Bs6BsJ1Z!W٪9^Pbu݄d B:<7Ꟈ/W:hѡ[HA`:cj~/uq\]l6or{)߿)  inbENw%2b+l x|YpukB9s4@Z8}:}8{yۓ_IR`>0Wwxmw;FE6z=alKѓy:rn[#8=z@٣=ҏaR`>2\>8~0+Rأ?R]qQ>m_0-L+кʍ`4@ȥ`';?9}]u0g(o :t|#mBDĽ( LekRLe5à){8sb6ʙ68HQ.a %P_p8+&& EM%WpCp+ȕ'5"@`:18[z&,U;V%hF&ӥU pCNVR2Zw_S:}_؋[: y{KLw5q=zwFw >ora|I,1,}j_(",%aֿ%Wq4JjILO`D]R_4pT픱 -` )Ȣ[@ +P%% Ju%(զKUDaUѦO{%UH\)jpx Te44i9$d%Ǒ?ZUaP^G hU,t*8ns G ќbwKP3Ls3RIRM07%Zzn\wo1k%_\ \PMe.N߿˒b^,Uo`4ݜI\v'`dg #wD\?<̾*UaťH9tWK> R5K.OYUǫCQj knMPu]y>oWo[D? ݽKlrZ(ۘt]LGf{ W7^=!*0wKC`#qԃw0ؐ׊pb^T}VrPsw:t[We#W`je#2 1~z0_XцMu^2?Q>`cV2Rl]wBH,@fbu0"CwT|^_}ڿA/Wzx%W&Rzm=䙈@:8f}#`p 6` ^u'O;t}q1=`4:OZIJOB/O+OI%WANmM_>kqNJZWT; ~9tsw}Hkm-H= qDcKK+z7J'PC=A7Mfu}fZFW\  hy左%+$Li>ec}p߹X!%6i(7PN$b60KX{^`ny)t@G\fy NvO0,Mq\(6O#Cy(i樕-Mmn5OS0G]۪H c**LPk8WXD"j㱛F3S:tf % VJy47&GAy-E2Ғ21 jrMr 7° ²SK|/IU:;X[hf%qN8ON2qC&HJ7QV9WP#yi9(xZL٦V *:8i;GRʣ}Cpg* Auct,k 6J?[Љe:o~k`J3W'Pf C 4XP4eF l֧ma3`b@fYǃ[Xg "S8N[ă`^cOʘl 3Ng2o2eCR`h Kcc1b۟u,h>/P 10569 0 R/Type/Annot/A 25498 0 R/Subtype/Link/Rect[221 669 233 678]/Border[0 0 0]/H/N>> endobj 25012 0 obj <>/P 10569 0 R/Type/Annot/A 25492 0 R/Subtype/Link/Rect[229 659 239 668]/Border[0 0 0]/H/N>> endobj 25013 0 obj <>/P 10569 0 R/Type/Annot/A 25485 0 R/Subtype/Link/Rect[241 659 258 669]/Border[0 0 0]/H/N>> endobj 25014 0 obj <>/P 10569 0 R/Type/Annot/A 25783 0 R/Subtype/Link/Rect[258 659 272 668]/Border[0 0 0]/H/N>> endobj 25015 0 obj <>/P 10569 0 R/Type/Annot/A 25777 0 R/Subtype/Link/Rect[274 659 291 669]/Border[0 0 0]/H/N>> endobj 25016 0 obj <>/P 10569 0 R/Type/Annot/A 25775 0 R/Subtype/Link/Rect[292 659 306 668]/Border[0 0 0]/H/N>> endobj 25017 0 obj <>/P 10569 0 R/Type/Annot/A 25772 0 R/Subtype/Link/Rect[151 649 163 658]/Border[0 0 0]/H/N>> endobj 25018 0 obj <>/P 10569 0 R/Type/Annot/A 25769 0 R/Subtype/Link/Rect[211 639 225 648]/Border[0 0 0]/H/N>> endobj 25019 0 obj <>/P 10569 0 R/Type/Annot/A 25765 0 R/Subtype/Link/Rect[227 639 241 648]/Border[0 0 0]/H/N>> endobj 25020 0 obj <>/P 10569 0 R/Type/Annot/A 25761 0 R/Subtype/Link/Rect[243 639 257 648]/Border[0 0 0]/H/N>> endobj 25021 0 obj <>/P 10569 0 R/Type/Annot/A 25757 0 R/Subtype/Link/Rect[259 639 276 649]/Border[0 0 0]/H/N>> endobj 25022 0 obj <>/P 10569 0 R/Type/Annot/A 25753 0 R/Subtype/Link/Rect[277 639 291 648]/Border[0 0 0]/H/N>> endobj 25023 0 obj <>/P 10569 0 R/Type/Annot/A 25748 0 R/Subtype/Link/Rect[293 639 307 648]/Border[0 0 0]/H/N>> endobj 25024 0 obj <>/P 10569 0 R/Type/Annot/A 25744 0 R/Subtype/Link/Rect[151 629 165 638]/Border[0 0 0]/H/N>> endobj 25025 0 obj <>/P 10569 0 R/Type/Annot/A 25741 0 R/Subtype/Link/Rect[167 629 181 638]/Border[0 0 0]/H/N>> endobj 25026 0 obj <>/P 10569 0 R/Type/Annot/A 25737 0 R/Subtype/Link/Rect[183 629 197 638]/Border[0 0 0]/H/N>> endobj 25027 0 obj <>/P 10569 0 R/Type/Annot/A 25733 0 R/Subtype/Link/Rect[199 629 213 638]/Border[0 0 0]/H/N>> endobj 25028 0 obj <>/P 10569 0 R/Type/Annot/A 25729 0 R/Subtype/Link/Rect[215 629 229 638]/Border[0 0 0]/H/N>> endobj 25029 0 obj <>/P 10569 0 R/Type/Annot/A 25725 0 R/Subtype/Link/Rect[231 629 243 638]/Border[0 0 0]/H/N>> endobj 25030 0 obj <>/P 10569 0 R/Type/Annot/A 25722 0 R/Subtype/Link/Rect[188 619 202 628]/Border[0 0 0]/H/N>> endobj 25031 0 obj <>/P 10569 0 R/Type/Annot/A 25719 0 R/Subtype/Link/Rect[204 619 221 629]/Border[0 0 0]/H/N>> endobj 25032 0 obj <>/P 10569 0 R/Type/Annot/A 25714 0 R/Subtype/Link/Rect[222 619 236 628]/Border[0 0 0]/H/N>> endobj 25033 0 obj <>/P 10569 0 R/Type/Annot/A 25710 0 R/Subtype/Link/Rect[238 619 252 628]/Border[0 0 0]/H/N>> endobj 25034 0 obj <>/P 10569 0 R/Type/Annot/A 25706 0 R/Subtype/Link/Rect[254 619 266 628]/Border[0 0 0]/H/N>> endobj 25035 0 obj <>/P 10569 0 R/Type/Annot/A 25702 0 R/Subtype/Link/Rect[203 609 215 618]/Border[0 0 0]/H/N>> endobj 25036 0 obj <>/P 10569 0 R/Type/Annot/A 25699 0 R/Subtype/Link/Rect[193 599 207 608]/Border[0 0 0]/H/N>> endobj 25037 0 obj <>/P 10569 0 R/Type/Annot/A 25696 0 R/Subtype/Link/Rect[209 599 223 608]/Border[0 0 0]/H/N>> endobj 25038 0 obj <>/P 10569 0 R/Type/Annot/A 25693 0 R/Subtype/Link/Rect[225 599 239 608]/Border[0 0 0]/H/N>> endobj 25039 0 obj <>/P 10569 0 R/Type/Annot/A 25690 0 R/Subtype/Link/Rect[241 599 255 608]/Border[0 0 0]/H/N>> endobj 25040 0 obj <>/P 10569 0 R/Type/Annot/A 25687 0 R/Subtype/Link/Rect[257 599 274 609]/Border[0 0 0]/H/N>> endobj 25041 0 obj <>/P 10569 0 R/Type/Annot/A 25684 0 R/Subtype/Link/Rect[274 599 288 608]/Border[0 0 0]/H/N>> endobj 25042 0 obj <>/P 10569 0 R/Type/Annot/A 25681 0 R/Subtype/Link/Rect[151 589 167 599]/Border[0 0 0]/H/N>> endobj 25043 0 obj <>/P 10569 0 R/Type/Annot/A 25678 0 R/Subtype/Link/Rect[168 589 182 598]/Border[0 0 0]/H/N>> endobj 25044 0 obj <>/P 10569 0 R/Type/Annot/A 25675 0 R/Subtype/Link/Rect[184 589 201 599]/Border[0 0 0]/H/N>> endobj 25045 0 obj <>/P 10569 0 R/Type/Annot/A 25673 0 R/Subtype/Link/Rect[201 589 215 598]/Border[0 0 0]/H/N>> endobj 25046 0 obj <>/P 10569 0 R/Type/Annot/A 25670 0 R/Subtype/Link/Rect[217 589 234 599]/Border[0 0 0]/H/N>> endobj 25047 0 obj <>/P 10569 0 R/Type/Annot/A 25667 0 R/Subtype/Link/Rect[235 589 249 598]/Border[0 0 0]/H/N>> endobj 25048 0 obj <>/P 10569 0 R/Type/Annot/A 25664 0 R/Subtype/Link/Rect[251 589 265 598]/Border[0 0 0]/H/N>> endobj 25049 0 obj <>/P 10569 0 R/Type/Annot/A 25662 0 R/Subtype/Link/Rect[267 589 281 598]/Border[0 0 0]/H/N>> endobj 25050 0 obj <>/P 10569 0 R/Type/Annot/A 25660 0 R/Subtype/Link/Rect[283 589 297 598]/Border[0 0 0]/H/N>> endobj 25051 0 obj <>/P 10569 0 R/Type/Annot/A 25657 0 R/Subtype/Link/Rect[151 579 165 588]/Border[0 0 0]/H/N>> endobj 25052 0 obj <>/P 10569 0 R/Type/Annot/A 25654 0 R/Subtype/Link/Rect[167 579 181 588]/Border[0 0 0]/H/N>> endobj 25053 0 obj <>/P 10569 0 R/Type/Annot/A 25651 0 R/Subtype/Link/Rect[183 579 197 588]/Border[0 0 0]/H/N>> endobj 25054 0 obj <>/P 10569 0 R/Type/Annot/A 25648 0 R/Subtype/Link/Rect[199 579 211 588]/Border[0 0 0]/H/N>> endobj 25055 0 obj <>/P 10569 0 R/Type/Annot/A 25645 0 R/Subtype/Link/Rect[181 569 197 579]/Border[0 0 0]/H/N>> endobj 25056 0 obj <>/P 10569 0 R/Type/Annot/A 25642 0 R/Subtype/Link/Rect[198 569 210 578]/Border[0 0 0]/H/N>> endobj 25057 0 obj <>/P 10569 0 R/Type/Annot/A 25639 0 R/Subtype/Link/Rect[188 559 202 568]/Border[0 0 0]/H/N>> endobj 25058 0 obj <>/P 10569 0 R/Type/Annot/A 25634 0 R/Subtype/Link/Rect[204 559 221 569]/Border[0 0 0]/H/N>> endobj 25059 0 obj <>/P 10569 0 R/Type/Annot/A 25631 0 R/Subtype/Link/Rect[222 559 234 568]/Border[0 0 0]/H/N>> endobj 25060 0 obj <>/P 10569 0 R/Type/Annot/A 25628 0 R/Subtype/Link/Rect[193 549 207 558]/Border[0 0 0]/H/N>> endobj 25061 0 obj <>/P 10569 0 R/Type/Annot/A 25625 0 R/Subtype/Link/Rect[209 549 223 558]/Border[0 0 0]/H/N>> endobj 25062 0 obj <>/P 10569 0 R/Type/Annot/A 25622 0 R/Subtype/Link/Rect[225 549 239 558]/Border[0 0 0]/H/N>> endobj 25063 0 obj <>/P 10569 0 R/Type/Annot/A 25619 0 R/Subtype/Link/Rect[241 549 255 558]/Border[0 0 0]/H/N>> endobj 25064 0 obj <>/P 10569 0 R/Type/Annot/A 25615 0 R/Subtype/Link/Rect[257 549 271 558]/Border[0 0 0]/H/N>> endobj 25065 0 obj <>/P 10569 0 R/Type/Annot/A 25612 0 R/Subtype/Link/Rect[273 549 285 558]/Border[0 0 0]/H/N>> endobj 25066 0 obj <>/P 10569 0 R/Type/Annot/A 25609 0 R/Subtype/Link/Rect[211 539 225 548]/Border[0 0 0]/H/N>> endobj 25067 0 obj <>/P 10569 0 R/Type/Annot/A 25605 0 R/Subtype/Link/Rect[227 539 244 549]/Border[0 0 0]/H/N>> endobj 25068 0 obj <>/P 10569 0 R/Type/Annot/A 25602 0 R/Subtype/Link/Rect[245 539 259 548]/Border[0 0 0]/H/N>> endobj 25069 0 obj <>/P 10569 0 R/Type/Annot/A 25599 0 R/Subtype/Link/Rect[261 539 275 548]/Border[0 0 0]/H/N>> endobj 25070 0 obj <>/P 10569 0 R/Type/Annot/A 25596 0 R/Subtype/Link/Rect[277 539 291 548]/Border[0 0 0]/H/N>> endobj 25071 0 obj <>/P 10569 0 R/Type/Annot/A 25592 0 R/Subtype/Link/Rect[293 539 305 548]/Border[0 0 0]/H/N>> endobj 25072 0 obj <>/P 10569 0 R/Type/Annot/A 25589 0 R/Subtype/Link/Rect[189 529 206 539]/Border[0 0 0]/H/N>> endobj 25073 0 obj <>/P 10569 0 R/Type/Annot/A 25586 0 R/Subtype/Link/Rect[207 529 219 538]/Border[0 0 0]/H/N>> endobj 25074 0 obj <>/P 10569 0 R/Type/Annot/A 25583 0 R/Subtype/Link/Rect[202 519 216 528]/Border[0 0 0]/H/N>> endobj 25075 0 obj <>/P 10569 0 R/Type/Annot/A 25580 0 R/Subtype/Link/Rect[218 519 232 528]/Border[0 0 0]/H/N>> endobj 25076 0 obj <>/P 10569 0 R/Type/Annot/A 25577 0 R/Subtype/Link/Rect[234 519 250 529]/Border[0 0 0]/H/N>> endobj 25077 0 obj <>/P 10569 0 R/Type/Annot/A 25574 0 R/Subtype/Link/Rect[251 519 265 528]/Border[0 0 0]/H/N>> endobj 25078 0 obj <>/P 10569 0 R/Type/Annot/A 25570 0 R/Subtype/Link/Rect[267 519 281 528]/Border[0 0 0]/H/N>> endobj 25079 0 obj <>/P 10569 0 R/Type/Annot/A 25566 0 R/Subtype/Link/Rect[151 509 167 519]/Border[0 0 0]/H/N>> endobj 25080 0 obj <>/P 10569 0 R/Type/Annot/A 25561 0 R/Subtype/Link/Rect[168 509 182 518]/Border[0 0 0]/H/N>> endobj 25081 0 obj <>/P 10569 0 R/Type/Annot/A 25557 0 R/Subtype/Link/Rect[184 509 196 518]/Border[0 0 0]/H/N>> endobj 25082 0 obj <>/P 10569 0 R/Type/Annot/A 25550 0 R/Subtype/Link/Rect[221 499 235 508]/Border[0 0 0]/H/N>> endobj 25083 0 obj <>/P 10569 0 R/Type/Annot/A 25546 0 R/Subtype/Link/Rect[237 499 251 508]/Border[0 0 0]/H/N>> endobj 25084 0 obj <>/P 10569 0 R/Type/Annot/A 25539 0 R/Subtype/Link/Rect[253 499 267 508]/Border[0 0 0]/H/N>> endobj 25085 0 obj <>/P 10569 0 R/Type/Annot/A 25533 0 R/Subtype/Link/Rect[269 499 285 509]/Border[0 0 0]/H/N>> endobj 25086 0 obj <>/P 10569 0 R/Type/Annot/A 25527 0 R/Subtype/Link/Rect[286 499 300 508]/Border[0 0 0]/H/N>> endobj 25087 0 obj <>/P 10569 0 R/Type/Annot/A 25521 0 R/Subtype/Link/Rect[151 489 165 498]/Border[0 0 0]/H/N>> endobj 25088 0 obj <>/P 10569 0 R/Type/Annot/A 25515 0 R/Subtype/Link/Rect[167 489 183 499]/Border[0 0 0]/H/N>> endobj 25089 0 obj <>/P 10569 0 R/Type/Annot/A 25509 0 R/Subtype/Link/Rect[184 489 198 498]/Border[0 0 0]/H/N>> endobj 25090 0 obj <>/P 10569 0 R/Type/Annot/A 25502 0 R/Subtype/Link/Rect[200 489 217 499]/Border[0 0 0]/H/N>> endobj 25091 0 obj <>/P 10569 0 R/Type/Annot/A 25496 0 R/Subtype/Link/Rect[217 489 231 498]/Border[0 0 0]/H/N>> endobj 25092 0 obj <>/P 10569 0 R/Type/Annot/A 25491 0 R/Subtype/Link/Rect[233 489 247 498]/Border[0 0 0]/H/N>> endobj 25093 0 obj <>/P 10569 0 R/Type/Annot/A 25484 0 R/Subtype/Link/Rect[249 489 263 498]/Border[0 0 0]/H/N>> endobj 25094 0 obj <>/P 10569 0 R/Type/Annot/A 25475 0 R/Subtype/Link/Rect[265 489 279 498]/Border[0 0 0]/H/N>> endobj 25095 0 obj <>/P 10569 0 R/Type/Annot/A 25468 0 R/Subtype/Link/Rect[281 489 295 498]/Border[0 0 0]/H/N>> endobj 25096 0 obj <>/P 10569 0 R/Type/Annot/A 25460 0 R/Subtype/Link/Rect[151 479 165 488]/Border[0 0 0]/H/N>> endobj 25097 0 obj <>/P 10569 0 R/Type/Annot/A 25456 0 R/Subtype/Link/Rect[167 479 181 488]/Border[0 0 0]/H/N>> endobj 25098 0 obj <>/P 10569 0 R/Type/Annot/A 25449 0 R/Subtype/Link/Rect[183 479 197 488]/Border[0 0 0]/H/N>> endobj 25099 0 obj <>/P 10569 0 R/Type/Annot/A 25443 0 R/Subtype/Link/Rect[199 479 213 488]/Border[0 0 0]/H/N>> endobj 25100 0 obj <>/P 10569 0 R/Type/Annot/A 25435 0 R/Subtype/Link/Rect[215 479 229 488]/Border[0 0 0]/H/N>> endobj 25101 0 obj <>/P 10569 0 R/Type/Annot/A 25427 0 R/Subtype/Link/Rect[231 479 243 488]/Border[0 0 0]/H/N>> endobj 25102 0 obj <>/P 10569 0 R/Type/Annot/A 25421 0 R/Subtype/Link/Rect[189 469 201 478]/Border[0 0 0]/H/N>> endobj 25103 0 obj <>/P 10569 0 R/Type/Annot/A 25576 0 R/Subtype/Link/Rect[188 459 205 469]/Border[0 0 0]/H/N>> endobj 25104 0 obj <>/P 10569 0 R/Type/Annot/A 25571 0 R/Subtype/Link/Rect[206 459 218 468]/Border[0 0 0]/H/N>> endobj 25105 0 obj <>/P 10569 0 R/Type/Annot/A 25565 0 R/Subtype/Link/Rect[202 449 212 458]/Border[0 0 0]/H/N>> endobj 25106 0 obj <>/P 10569 0 R/Type/Annot/A 25560 0 R/Subtype/Link/Rect[214 449 228 458]/Border[0 0 0]/H/N>> endobj 25107 0 obj <>/P 10569 0 R/Type/Annot/A 25555 0 R/Subtype/Link/Rect[230 449 244 458]/Border[0 0 0]/H/N>> endobj 25108 0 obj <>/P 10569 0 R/Type/Annot/A 25549 0 R/Subtype/Link/Rect[246 449 262 459]/Border[0 0 0]/H/N>> endobj 25109 0 obj <>/P 10569 0 R/Type/Annot/A 25542 0 R/Subtype/Link/Rect[263 449 277 458]/Border[0 0 0]/H/N>> endobj 25110 0 obj <>/P 10569 0 R/Type/Annot/A 25537 0 R/Subtype/Link/Rect[279 449 293 458]/Border[0 0 0]/H/N>> endobj 25111 0 obj <>/P 10569 0 R/Type/Annot/A 25530 0 R/Subtype/Link/Rect[151 439 167 449]/Border[0 0 0]/H/N>> endobj 25112 0 obj <>/P 10569 0 R/Type/Annot/A 25524 0 R/Subtype/Link/Rect[168 439 182 448]/Border[0 0 0]/H/N>> endobj 25113 0 obj <>/P 10569 0 R/Type/Annot/A 25518 0 R/Subtype/Link/Rect[184 439 201 449]/Border[0 0 0]/H/N>> endobj 25114 0 obj <>/P 10569 0 R/Type/Annot/A 25511 0 R/Subtype/Link/Rect[201 439 215 448]/Border[0 0 0]/H/N>> endobj 25115 0 obj <>/P 10569 0 R/Type/Annot/A 25504 0 R/Subtype/Link/Rect[217 439 231 448]/Border[0 0 0]/H/N>> endobj 25116 0 obj <>/P 10569 0 R/Type/Annot/A 25499 0 R/Subtype/Link/Rect[233 439 247 448]/Border[0 0 0]/H/N>> endobj 25117 0 obj <>/P 10569 0 R/Type/Annot/A 25493 0 R/Subtype/Link/Rect[249 439 263 448]/Border[0 0 0]/H/N>> endobj 25118 0 obj <>/P 10569 0 R/Type/Annot/A 25487 0 R/Subtype/Link/Rect[265 439 279 448]/Border[0 0 0]/H/N>> endobj 25119 0 obj <>/P 10569 0 R/Type/Annot/A 25477 0 R/Subtype/Link/Rect[281 439 295 448]/Border[0 0 0]/H/N>> endobj 25120 0 obj <>/P 10569 0 R/Type/Annot/A 25469 0 R/Subtype/Link/Rect[297 439 309 448]/Border[0 0 0]/H/N>> endobj 25121 0 obj <>/P 10569 0 R/Type/Annot/A 25526 0 R/Subtype/Link/Rect[208 429 220 438]/Border[0 0 0]/H/N>> endobj 25122 0 obj <>/P 10569 0 R/Type/Annot/A 25455 0 R/Subtype/Link/Rect[216 419 228 428]/Border[0 0 0]/H/N>> endobj 25123 0 obj <>/P 10569 0 R/Type/Annot/A 25447 0 R/Subtype/Link/Rect[216 409 230 418]/Border[0 0 0]/H/N>> endobj 25124 0 obj <>/P 10569 0 R/Type/Annot/A 25440 0 R/Subtype/Link/Rect[232 409 246 418]/Border[0 0 0]/H/N>> endobj 25125 0 obj <>/P 10569 0 R/Type/Annot/A 25433 0 R/Subtype/Link/Rect[248 409 262 418]/Border[0 0 0]/H/N>> endobj 25126 0 obj <>/P 10569 0 R/Type/Annot/A 25425 0 R/Subtype/Link/Rect[264 409 278 418]/Border[0 0 0]/H/N>> endobj 25127 0 obj <>/P 10569 0 R/Type/Annot/A 25573 0 R/Subtype/Link/Rect[280 409 292 418]/Border[0 0 0]/H/N>> endobj 25128 0 obj <>/P 10569 0 R/Type/Annot/A 25569 0 R/Subtype/Link/Rect[189 399 201 408]/Border[0 0 0]/H/N>> endobj 25129 0 obj <>/P 10569 0 R/Type/Annot/A 43880 0 R/Subtype/Link/Rect[188 389 198 398]/Border[0 0 0]/H/N>> endobj 25130 0 obj <>/P 10569 0 R/Type/Annot/A 25556 0 R/Subtype/Link/Rect[200 389 217 399]/Border[0 0 0]/H/N>> endobj 25131 0 obj <>/P 10569 0 R/Type/Annot/A 25636 0 R/Subtype/Link/Rect[218 389 232 398]/Border[0 0 0]/H/N>> endobj 25132 0 obj <>/P 10569 0 R/Type/Annot/A 25541 0 R/Subtype/Link/Rect[234 389 250 399]/Border[0 0 0]/H/N>> endobj 25133 0 obj <>/P 10569 0 R/Type/Annot/A 25536 0 R/Subtype/Link/Rect[251 389 265 398]/Border[0 0 0]/H/N>> endobj 25134 0 obj <>/P 10569 0 R/Type/Annot/A 25529 0 R/Subtype/Link/Rect[267 389 284 399]/Border[0 0 0]/H/N>> endobj 25135 0 obj <>/P 10569 0 R/Type/Annot/A 25523 0 R/Subtype/Link/Rect[284 389 296 398]/Border[0 0 0]/H/N>> endobj 25136 0 obj <>/P 10569 0 R/Type/Annot/A 25517 0 R/Subtype/Link/Rect[203 379 219 389]/Border[0 0 0]/H/N>> endobj 25137 0 obj <>/P 10569 0 R/Type/Annot/A 25508 0 R/Subtype/Link/Rect[220 379 232 388]/Border[0 0 0]/H/N>> endobj 25138 0 obj <>/P 10569 0 R/Type/Annot/A 43545 0 R/Subtype/Link/Rect[205 369 222 379]/Border[0 0 0]/H/N>> endobj 25139 0 obj <>/P 10569 0 R/Type/Annot/A 25494 0 R/Subtype/Link/Rect[222 369 236 378]/Border[0 0 0]/H/N>> endobj 25140 0 obj <>/P 10569 0 R/Type/Annot/A 43475 0 R/Subtype/Link/Rect[238 369 250 378]/Border[0 0 0]/H/N>> endobj 25141 0 obj <>/P 10569 0 R/Type/Annot/A 25482 0 R/Subtype/Link/Rect[188 359 205 369]/Border[0 0 0]/H/N>> endobj 25142 0 obj <>/P 10569 0 R/Type/Annot/A 25473 0 R/Subtype/Link/Rect[206 359 220 368]/Border[0 0 0]/H/N>> endobj 25143 0 obj <>/P 10569 0 R/Type/Annot/A 25465 0 R/Subtype/Link/Rect[222 359 238 369]/Border[0 0 0]/H/N>> endobj 25144 0 obj <>/P 10569 0 R/Type/Annot/A 43322 0 R/Subtype/Link/Rect[239 359 253 368]/Border[0 0 0]/H/N>> endobj 25145 0 obj <>/P 10569 0 R/Type/Annot/A 25448 0 R/Subtype/Link/Rect[255 359 269 368]/Border[0 0 0]/H/N>> endobj 25146 0 obj <>/P 10569 0 R/Type/Annot/A 25441 0 R/Subtype/Link/Rect[271 359 288 369]/Border[0 0 0]/H/N>> endobj 25147 0 obj <>/P 10569 0 R/Type/Annot/A 30262 0 R/Subtype/Link/Rect[288 359 302 368]/Border[0 0 0]/H/N>> endobj 25148 0 obj <>/P 10569 0 R/Type/Annot/A 25424 0 R/Subtype/Link/Rect[151 349 165 358]/Border[0 0 0]/H/N>> endobj 25149 0 obj <>/P 10569 0 R/Type/Annot/A 25564 0 R/Subtype/Link/Rect[167 349 181 358]/Border[0 0 0]/H/N>> endobj 25150 0 obj <>/P 10569 0 R/Type/Annot/A 25903 0 R/Subtype/Link/Rect[183 349 197 358]/Border[0 0 0]/H/N>> endobj 25151 0 obj <>/P 10569 0 R/Type/Annot/A 25552 0 R/Subtype/Link/Rect[199 349 211 358]/Border[0 0 0]/H/N>> endobj 25152 0 obj <>/P 10569 0 R/Type/Annot/A 25548 0 R/Subtype/Link/Rect[202 339 216 348]/Border[0 0 0]/H/N>> endobj 25153 0 obj <>/P 10569 0 R/Type/Annot/A 25532 0 R/Subtype/Link/Rect[218 339 232 348]/Border[0 0 0]/H/N>> endobj 25154 0 obj <>/P 10569 0 R/Type/Annot/A 25778 0 R/Subtype/Link/Rect[234 339 248 348]/Border[0 0 0]/H/N>> endobj 25155 0 obj <>/P 10569 0 R/Type/Annot/A 42895 0 R/Subtype/Link/Rect[250 339 264 348]/Border[0 0 0]/H/N>> endobj 25156 0 obj <>/P 10569 0 R/Type/Annot/A 25771 0 R/Subtype/Link/Rect[266 339 280 348]/Border[0 0 0]/H/N>> endobj 25157 0 obj <>/P 10569 0 R/Type/Annot/A 25768 0 R/Subtype/Link/Rect[282 339 296 348]/Border[0 0 0]/H/N>> endobj 25158 0 obj <>/P 10569 0 R/Type/Annot/A 25764 0 R/Subtype/Link/Rect[151 329 165 338]/Border[0 0 0]/H/N>> endobj 25159 0 obj <>/P 10569 0 R/Type/Annot/A 25760 0 R/Subtype/Link/Rect[167 329 179 338]/Border[0 0 0]/H/N>> endobj 25160 0 obj <>/P 10569 0 R/Type/Annot/A 25756 0 R/Subtype/Link/Rect[188 319 205 329]/Border[0 0 0]/H/N>> endobj 25161 0 obj <>/P 10569 0 R/Type/Annot/A 25752 0 R/Subtype/Link/Rect[206 319 220 328]/Border[0 0 0]/H/N>> endobj 25162 0 obj <>/P 10569 0 R/Type/Annot/A 25747 0 R/Subtype/Link/Rect[222 319 238 329]/Border[0 0 0]/H/N>> endobj 25163 0 obj <>/P 10569 0 R/Type/Annot/A 25743 0 R/Subtype/Link/Rect[239 319 253 328]/Border[0 0 0]/H/N>> endobj 25164 0 obj <>/P 10569 0 R/Type/Annot/A 25740 0 R/Subtype/Link/Rect[255 319 267 328]/Border[0 0 0]/H/N>> endobj 25165 0 obj <>/P 10569 0 R/Type/Annot/A 25736 0 R/Subtype/Link/Rect[193 309 210 319]/Border[0 0 0]/H/N>> endobj 25166 0 obj <>/P 10569 0 R/Type/Annot/A 25732 0 R/Subtype/Link/Rect[210 309 224 318]/Border[0 0 0]/H/N>> endobj 25167 0 obj <>/P 10569 0 R/Type/Annot/A 25727 0 R/Subtype/Link/Rect[226 309 240 318]/Border[0 0 0]/H/N>> endobj 25168 0 obj <>/P 10569 0 R/Type/Annot/A 25724 0 R/Subtype/Link/Rect[242 309 254 318]/Border[0 0 0]/H/N>> endobj 25169 0 obj <>/P 10569 0 R/Type/Annot/A 25721 0 R/Subtype/Link/Rect[204 299 218 308]/Border[0 0 0]/H/N>> endobj 25170 0 obj <>/P 10569 0 R/Type/Annot/A 25716 0 R/Subtype/Link/Rect[220 299 234 308]/Border[0 0 0]/H/N>> endobj 25171 0 obj <>/P 10569 0 R/Type/Annot/A 25712 0 R/Subtype/Link/Rect[236 299 252 309]/Border[0 0 0]/H/N>> endobj 25172 0 obj <>/P 10569 0 R/Type/Annot/A 25708 0 R/Subtype/Link/Rect[253 299 267 308]/Border[0 0 0]/H/N>> endobj 25173 0 obj <>/P 10569 0 R/Type/Annot/A 25704 0 R/Subtype/Link/Rect[269 299 283 308]/Border[0 0 0]/H/N>> endobj 25174 0 obj <>/P 10569 0 R/Type/Annot/A 25701 0 R/Subtype/Link/Rect[285 299 299 308]/Border[0 0 0]/H/N>> endobj 25175 0 obj <>/P 10569 0 R/Type/Annot/A 25698 0 R/Subtype/Link/Rect[151 289 165 298]/Border[0 0 0]/H/N>> endobj 25176 0 obj <>/P 10569 0 R/Type/Annot/A 25695 0 R/Subtype/Link/Rect[167 289 179 298]/Border[0 0 0]/H/N>> endobj 25177 0 obj <>/P 10569 0 R/Type/Annot/A 25692 0 R/Subtype/Link/Rect[188 279 201 289]/Border[0 0 0]/H/N>> endobj 25178 0 obj <>/P 10569 0 R/Type/Annot/A 25689 0 R/Subtype/Link/Rect[202 279 212 288]/Border[0 0 0]/H/N>> endobj 25179 0 obj <>/P 10569 0 R/Type/Annot/A 25686 0 R/Subtype/Link/Rect[214 279 228 288]/Border[0 0 0]/H/N>> endobj 25180 0 obj <>/P 10569 0 R/Type/Annot/A 25683 0 R/Subtype/Link/Rect[230 279 244 288]/Border[0 0 0]/H/N>> endobj 25181 0 obj <>/P 10569 0 R/Type/Annot/A 25680 0 R/Subtype/Link/Rect[246 279 260 288]/Border[0 0 0]/H/N>> endobj 25182 0 obj <>/P 10569 0 R/Type/Annot/A 25677 0 R/Subtype/Link/Rect[262 279 278 289]/Border[0 0 0]/H/N>> endobj 25183 0 obj <>/P 10569 0 R/Type/Annot/A 25674 0 R/Subtype/Link/Rect[279 279 293 288]/Border[0 0 0]/H/N>> endobj 25184 0 obj <>/P 10569 0 R/Type/Annot/A 25671 0 R/Subtype/Link/Rect[151 269 167 279]/Border[0 0 0]/H/N>> endobj 25185 0 obj <>/P 10569 0 R/Type/Annot/A 25668 0 R/Subtype/Link/Rect[168 269 182 278]/Border[0 0 0]/H/N>> endobj 25186 0 obj <>/P 10569 0 R/Type/Annot/A 25665 0 R/Subtype/Link/Rect[184 269 198 278]/Border[0 0 0]/H/N>> endobj 25187 0 obj <>/P 10569 0 R/Type/Annot/A 25728 0 R/Subtype/Link/Rect[200 269 217 279]/Border[0 0 0]/H/N>> endobj 25188 0 obj <>/P 10569 0 R/Type/Annot/A 25659 0 R/Subtype/Link/Rect[217 269 231 278]/Border[0 0 0]/H/N>> endobj 25189 0 obj <>/P 10569 0 R/Type/Annot/A 25656 0 R/Subtype/Link/Rect[233 269 250 279]/Border[0 0 0]/H/N>> endobj 25190 0 obj <>/P 10569 0 R/Type/Annot/A 25653 0 R/Subtype/Link/Rect[251 269 265 278]/Border[0 0 0]/H/N>> endobj 25191 0 obj <>/P 10569 0 R/Type/Annot/A 25650 0 R/Subtype/Link/Rect[267 269 283 279]/Border[0 0 0]/H/N>> endobj 25192 0 obj <>/P 10569 0 R/Type/Annot/A 25647 0 R/Subtype/Link/Rect[284 269 298 278]/Border[0 0 0]/H/N>> endobj 25193 0 obj <>/P 10569 0 R/Type/Annot/A 25644 0 R/Subtype/Link/Rect[151 259 165 268]/Border[0 0 0]/H/N>> endobj 25194 0 obj <>/P 10569 0 R/Type/Annot/A 25641 0 R/Subtype/Link/Rect[167 259 183 269]/Border[0 0 0]/H/N>> endobj 25195 0 obj <>/P 10569 0 R/Type/Annot/A 25638 0 R/Subtype/Link/Rect[184 259 198 268]/Border[0 0 0]/H/N>> endobj 25196 0 obj <>/P 10569 0 R/Type/Annot/A 25633 0 R/Subtype/Link/Rect[200 259 214 268]/Border[0 0 0]/H/N>> endobj 25197 0 obj <>/P 10569 0 R/Type/Annot/A 25630 0 R/Subtype/Link/Rect[216 259 230 268]/Border[0 0 0]/H/N>> endobj 25198 0 obj <>/P 10569 0 R/Type/Annot/A 25627 0 R/Subtype/Link/Rect[232 259 246 268]/Border[0 0 0]/H/N>> endobj 25199 0 obj <>/P 10569 0 R/Type/Annot/A 25624 0 R/Subtype/Link/Rect[248 259 262 268]/Border[0 0 0]/H/N>> endobj 25200 0 obj <>/P 10569 0 R/Type/Annot/A 25621 0 R/Subtype/Link/Rect[264 259 281 269]/Border[0 0 0]/H/N>> endobj 25201 0 obj <>/P 10569 0 R/Type/Annot/A 25617 0 R/Subtype/Link/Rect[281 259 295 268]/Border[0 0 0]/H/N>> endobj 25202 0 obj <>/P 10569 0 R/Type/Annot/A 25614 0 R/Subtype/Link/Rect[151 249 167 259]/Border[0 0 0]/H/N>> endobj 25203 0 obj <>/P 10569 0 R/Type/Annot/A 25611 0 R/Subtype/Link/Rect[168 249 182 258]/Border[0 0 0]/H/N>> endobj 25204 0 obj <>/P 10569 0 R/Type/Annot/A 25607 0 R/Subtype/Link/Rect[184 249 198 258]/Border[0 0 0]/H/N>> endobj 25205 0 obj <>/P 10569 0 R/Type/Annot/A 25604 0 R/Subtype/Link/Rect[200 249 214 258]/Border[0 0 0]/H/N>> endobj 25206 0 obj <>/P 10569 0 R/Type/Annot/A 25601 0 R/Subtype/Link/Rect[216 249 228 258]/Border[0 0 0]/H/N>> endobj 25207 0 obj <>/P 10569 0 R/Type/Annot/A 25598 0 R/Subtype/Link/Rect[183 239 193 248]/Border[0 0 0]/H/N>> endobj 25208 0 obj <>/P 10569 0 R/Type/Annot/A 25594 0 R/Subtype/Link/Rect[195 239 209 248]/Border[0 0 0]/H/N>> endobj 25209 0 obj <>/P 10569 0 R/Type/Annot/A 25591 0 R/Subtype/Link/Rect[211 239 225 248]/Border[0 0 0]/H/N>> endobj 25210 0 obj <>/P 10569 0 R/Type/Annot/A 25588 0 R/Subtype/Link/Rect[227 239 241 248]/Border[0 0 0]/H/N>> endobj 25211 0 obj <>/P 10569 0 R/Type/Annot/A 25585 0 R/Subtype/Link/Rect[243 239 260 249]/Border[0 0 0]/H/N>> endobj 25212 0 obj <>/P 10569 0 R/Type/Annot/A 25582 0 R/Subtype/Link/Rect[261 239 275 248]/Border[0 0 0]/H/N>> endobj 25213 0 obj <>/P 10569 0 R/Type/Annot/A 25579 0 R/Subtype/Link/Rect[277 239 289 248]/Border[0 0 0]/H/N>> endobj 25214 0 obj <>/P 10569 0 R/Type/Annot/A 25637 0 R/Subtype/Link/Rect[188 229 202 238]/Border[0 0 0]/H/N>> endobj 25215 0 obj <>/P 10569 0 R/Type/Annot/A 25572 0 R/Subtype/Link/Rect[204 229 218 238]/Border[0 0 0]/H/N>> endobj 25216 0 obj <>/P 10569 0 R/Type/Annot/A 25567 0 R/Subtype/Link/Rect[220 229 232 238]/Border[0 0 0]/H/N>> endobj 25217 0 obj <>/P 10569 0 R/Type/Annot/A 25562 0 R/Subtype/Link/Rect[221 219 235 228]/Border[0 0 0]/H/N>> endobj 25218 0 obj <>/P 10569 0 R/Type/Annot/A 25558 0 R/Subtype/Link/Rect[237 219 253 229]/Border[0 0 0]/H/N>> endobj 25219 0 obj <>/P 10569 0 R/Type/Annot/A 25618 0 R/Subtype/Link/Rect[254 219 268 228]/Border[0 0 0]/H/N>> endobj 25220 0 obj <>/P 10569 0 R/Type/Annot/A 25545 0 R/Subtype/Link/Rect[270 219 287 229]/Border[0 0 0]/H/N>> endobj 25221 0 obj <>/P 10569 0 R/Type/Annot/A 25538 0 R/Subtype/Link/Rect[287 219 301 228]/Border[0 0 0]/H/N>> endobj 25222 0 obj <>/P 10569 0 R/Type/Annot/A 25531 0 R/Subtype/Link/Rect[151 209 163 218]/Border[0 0 0]/H/N>> endobj 25223 0 obj <>/P 10569 0 R/Type/Annot/A 25525 0 R/Subtype/Link/Rect[189 199 206 209]/Border[0 0 0]/H/N>> endobj 25224 0 obj <>/P 10569 0 R/Type/Annot/A 25520 0 R/Subtype/Link/Rect[207 199 219 208]/Border[0 0 0]/H/N>> endobj 25225 0 obj <>/P 10569 0 R/Type/Annot/A 25513 0 R/Subtype/Link/Rect[220 189 232 198]/Border[0 0 0]/H/N>> endobj 25226 0 obj <>/P 10569 0 R/Type/Annot/A 25507 0 R/Subtype/Link/Rect[193 179 205 188]/Border[0 0 0]/H/N>> endobj 25227 0 obj <>/P 10569 0 R/Type/Annot/A 25501 0 R/Subtype/Link/Rect[193 169 205 178]/Border[0 0 0]/H/N>> endobj 25228 0 obj <>/P 10569 0 R/Type/Annot/A 25495 0 R/Subtype/Link/Rect[193 159 207 168]/Border[0 0 0]/H/N>> endobj 25229 0 obj <>/P 10569 0 R/Type/Annot/A 25490 0 R/Subtype/Link/Rect[209 159 223 168]/Border[0 0 0]/H/N>> endobj 25230 0 obj <>/P 10569 0 R/Type/Annot/A 25483 0 R/Subtype/Link/Rect[225 159 239 168]/Border[0 0 0]/H/N>> endobj 25231 0 obj <>/P 10569 0 R/Type/Annot/A 33040 0 R/Subtype/Link/Rect[241 159 255 168]/Border[0 0 0]/H/N>> endobj 25232 0 obj <>/P 10569 0 R/Type/Annot/A 25467 0 R/Subtype/Link/Rect[257 159 271 168]/Border[0 0 0]/H/N>> endobj 25233 0 obj <>/P 10569 0 R/Type/Annot/A 25458 0 R/Subtype/Link/Rect[273 159 287 168]/Border[0 0 0]/H/N>> endobj 25234 0 obj <>/P 10569 0 R/Type/Annot/A 25452 0 R/Subtype/Link/Rect[289 159 303 168]/Border[0 0 0]/H/N>> endobj 25235 0 obj <>/P 10569 0 R/Type/Annot/A 25445 0 R/Subtype/Link/Rect[151 149 165 158]/Border[0 0 0]/H/N>> endobj 25236 0 obj <>/P 10569 0 R/Type/Annot/A 31097 0 R/Subtype/Link/Rect[167 149 181 158]/Border[0 0 0]/H/N>> endobj 25237 0 obj <>/P 10569 0 R/Type/Annot/A 25431 0 R/Subtype/Link/Rect[183 149 195 158]/Border[0 0 0]/H/N>> endobj 25238 0 obj <>/P 10569 0 R/Type/Annot/A 25423 0 R/Subtype/Link/Rect[424 669 438 678]/Border[0 0 0]/H/N>> endobj 25239 0 obj <>/P 10569 0 R/Type/Annot/A 35879 0 R/Subtype/Link/Rect[440 669 454 678]/Border[0 0 0]/H/N>> endobj 25240 0 obj <>/P 10569 0 R/Type/Annot/A 30242 0 R/Subtype/Link/Rect[456 669 473 679]/Border[0 0 0]/H/N>> endobj 25241 0 obj <>/P 10569 0 R/Type/Annot/A 25519 0 R/Subtype/Link/Rect[473 669 487 678]/Border[0 0 0]/H/N>> endobj 25242 0 obj <>/P 10569 0 R/Type/Annot/A 25512 0 R/Subtype/Link/Rect[489 669 501 678]/Border[0 0 0]/H/N>> endobj 25243 0 obj <>/P 10569 0 R/Type/Annot/A 25505 0 R/Subtype/Link/Rect[397 659 409 668]/Border[0 0 0]/H/N>> endobj 25244 0 obj <>/P 10569 0 R/Type/Annot/A 25500 0 R/Subtype/Link/Rect[401 649 413 658]/Border[0 0 0]/H/N>> endobj 25245 0 obj <>/P 10569 0 R/Type/Annot/A 29320 0 R/Subtype/Link/Rect[396 639 410 648]/Border[0 0 0]/H/N>> endobj 25246 0 obj <>/P 10569 0 R/Type/Annot/A 29281 0 R/Subtype/Link/Rect[412 639 426 648]/Border[0 0 0]/H/N>> endobj 25247 0 obj <>/P 10569 0 R/Type/Annot/A 25479 0 R/Subtype/Link/Rect[428 639 440 648]/Border[0 0 0]/H/N>> endobj 25248 0 obj <>/P 10569 0 R/Type/Annot/A 25471 0 R/Subtype/Link/Rect[405 629 417 639]/Border[0 0 0]/H/N>> endobj 25249 0 obj <>/P 10569 0 R/Type/Annot/A 25461 0 R/Subtype/Link/Rect[418 629 428 638]/Border[0 0 0]/H/N>> endobj 25250 0 obj <>/P 10569 0 R/Type/Annot/A 29127 0 R/Subtype/Link/Rect[430 629 440 638]/Border[0 0 0]/H/N>> endobj 25251 0 obj <>/P 10569 0 R/Type/Annot/A 25554 0 R/Subtype/Link/Rect[442 629 456 638]/Border[0 0 0]/H/N>> endobj 25252 0 obj <>/P 10569 0 R/Type/Annot/A 25439 0 R/Subtype/Link/Rect[458 629 475 639]/Border[0 0 0]/H/N>> endobj 25253 0 obj <>/P 10569 0 R/Type/Annot/A 31078 0 R/Subtype/Link/Rect[475 629 489 638]/Border[0 0 0]/H/N>> endobj 25254 0 obj <>/P 10569 0 R/Type/Annot/A 25535 0 R/Subtype/Link/Rect[359 619 375 629]/Border[0 0 0]/H/N>> endobj 25255 0 obj <>/P 10569 0 R/Type/Annot/A 28452 0 R/Subtype/Link/Rect[376 619 390 628]/Border[0 0 0]/H/N>> endobj 25256 0 obj <>/P 10569 0 R/Type/Annot/A 28411 0 R/Subtype/Link/Rect[392 619 409 629]/Border[0 0 0]/H/N>> endobj 25257 0 obj <>/P 10569 0 R/Type/Annot/A 25514 0 R/Subtype/Link/Rect[409 619 423 628]/Border[0 0 0]/H/N>> endobj 25258 0 obj <>/P 10569 0 R/Type/Annot/A 25506 0 R/Subtype/Link/Rect[425 619 442 629]/Border[0 0 0]/H/N>> endobj 25259 0 obj <>/P 10569 0 R/Type/Annot/A 34221 0 R/Subtype/Link/Rect[443 619 457 628]/Border[0 0 0]/H/N>> endobj 25260 0 obj <>/P 10569 0 R/Type/Annot/A 27562 0 R/Subtype/Link/Rect[459 619 475 629]/Border[0 0 0]/H/N>> endobj 25261 0 obj <>/P 10569 0 R/Type/Annot/A 25488 0 R/Subtype/Link/Rect[476 619 490 628]/Border[0 0 0]/H/N>> endobj 25262 0 obj <>/P 10569 0 R/Type/Annot/A 25476 0 R/Subtype/Link/Rect[359 609 375 619]/Border[0 0 0]/H/N>> endobj 25263 0 obj <>/P 10569 0 R/Type/Annot/A 29253 0 R/Subtype/Link/Rect[376 609 390 618]/Border[0 0 0]/H/N>> endobj 25264 0 obj <>/P 10569 0 R/Type/Annot/A 25459 0 R/Subtype/Link/Rect[392 609 406 618]/Border[0 0 0]/H/N>> endobj 25265 0 obj <>/P 10569 0 R/Type/Annot/A 25451 0 R/Subtype/Link/Rect[408 609 422 618]/Border[0 0 0]/H/N>> endobj 25266 0 obj <>/P 10569 0 R/Type/Annot/A 25902 0 R/Subtype/Link/Rect[424 609 438 618]/Border[0 0 0]/H/N>> endobj 25267 0 obj <>/P 10569 0 R/Type/Annot/A 37694 0 R/Subtype/Link/Rect[440 609 454 618]/Border[0 0 0]/H/N>> endobj 25268 0 obj <>/P 10569 0 R/Type/Annot/A 25428 0 R/Subtype/Link/Rect[456 609 470 618]/Border[0 0 0]/H/N>> endobj 25269 0 obj <>/P 10569 0 R/Type/Annot/A 28512 0 R/Subtype/Link/Rect[472 609 486 618]/Border[0 0 0]/H/N>> endobj 25270 0 obj <>/P 10569 0 R/Type/Annot/A 25779 0 R/Subtype/Link/Rect[488 609 501 618]/Border[0 0 0]/H/N>> endobj 25271 0 obj <>/P 10569 0 R/Type/Annot/A 25776 0 R/Subtype/Link/Rect[503 609 515 618]/Border[0 0 0]/H/N>> endobj 25272 0 obj <>/P 10569 0 R/Type/Annot/A 25773 0 R/Subtype/Link/Rect[397 599 411 608]/Border[0 0 0]/H/N>> endobj 25273 0 obj <>/P 10569 0 R/Type/Annot/A 25770 0 R/Subtype/Link/Rect[413 599 425 608]/Border[0 0 0]/H/N>> endobj 25274 0 obj <>/P 10569 0 R/Type/Annot/A 25766 0 R/Subtype/Link/Rect[385 589 397 598]/Border[0 0 0]/H/N>> endobj 25275 0 obj <>/P 10569 0 R/Type/Annot/A 25762 0 R/Subtype/Link/Rect[376 579 390 588]/Border[0 0 0]/H/N>> endobj 25276 0 obj <>/P 10569 0 R/Type/Annot/A 25758 0 R/Subtype/Link/Rect[392 579 409 589]/Border[0 0 0]/H/N>> endobj 25277 0 obj <>/P 10569 0 R/Type/Annot/A 25754 0 R/Subtype/Link/Rect[409 579 423 588]/Border[0 0 0]/H/N>> endobj 25278 0 obj <>/P 10569 0 R/Type/Annot/A 25749 0 R/Subtype/Link/Rect[425 579 439 588]/Border[0 0 0]/H/N>> endobj 25279 0 obj <>/P 10569 0 R/Type/Annot/A 25745 0 R/Subtype/Link/Rect[441 579 453 588]/Border[0 0 0]/H/N>> endobj 25280 0 obj <>/P 10569 0 R/Type/Annot/A 25742 0 R/Subtype/Link/Rect[418 569 428 578]/Border[0 0 0]/H/N>> endobj 25281 0 obj <>/P 10569 0 R/Type/Annot/A 25739 0 R/Subtype/Link/Rect[430 569 444 578]/Border[0 0 0]/H/N>> endobj 25282 0 obj <>/P 10569 0 R/Type/Annot/A 25735 0 R/Subtype/Link/Rect[446 569 460 578]/Border[0 0 0]/H/N>> endobj 25283 0 obj <>/P 10569 0 R/Type/Annot/A 25731 0 R/Subtype/Link/Rect[462 569 476 578]/Border[0 0 0]/H/N>> endobj 25284 0 obj <>/P 10569 0 R/Type/Annot/A 25726 0 R/Subtype/Link/Rect[478 569 495 579]/Border[0 0 0]/H/N>> endobj 25285 0 obj <>/P 10569 0 R/Type/Annot/A 25723 0 R/Subtype/Link/Rect[495 569 509 578]/Border[0 0 0]/H/N>> endobj 25286 0 obj <>/P 10569 0 R/Type/Annot/A 25720 0 R/Subtype/Link/Rect[359 559 371 568]/Border[0 0 0]/H/N>> endobj 25287 0 obj <>/P 10569 0 R/Type/Annot/A 25715 0 R/Subtype/Link/Rect[429 549 443 558]/Border[0 0 0]/H/N>> endobj 25288 0 obj <>/P 10569 0 R/Type/Annot/A 25711 0 R/Subtype/Link/Rect[445 549 459 558]/Border[0 0 0]/H/N>> endobj 25289 0 obj <>/P 10569 0 R/Type/Annot/A 25707 0 R/Subtype/Link/Rect[461 549 475 558]/Border[0 0 0]/H/N>> endobj 25290 0 obj <>/P 10569 0 R/Type/Annot/A 25703 0 R/Subtype/Link/Rect[477 549 491 558]/Border[0 0 0]/H/N>> endobj 25291 0 obj <>/P 10569 0 R/Type/Annot/A 25700 0 R/Subtype/Link/Rect[493 549 507 558]/Border[0 0 0]/H/N>> endobj 25292 0 obj <>/P 10569 0 R/Type/Annot/A 25697 0 R/Subtype/Link/Rect[359 539 373 548]/Border[0 0 0]/H/N>> endobj 25293 0 obj <>/P 10569 0 R/Type/Annot/A 25694 0 R/Subtype/Link/Rect[375 539 389 548]/Border[0 0 0]/H/N>> endobj 25294 0 obj <>/P 10569 0 R/Type/Annot/A 25691 0 R/Subtype/Link/Rect[391 539 403 548]/Border[0 0 0]/H/N>> endobj 25295 0 obj <>/P 10569 0 R/Type/Annot/A 25688 0 R/Subtype/Link/Rect[397 529 409 538]/Border[0 0 0]/H/N>> endobj 25296 0 obj <>/P 10569 0 R/Type/Annot/A 25685 0 R/Subtype/Link/Rect[368 519 380 529]/Border[0 0 0]/H/N>> endobj 25297 0 obj <>/P 10569 0 R/Type/Annot/A 25682 0 R/Subtype/Link/Rect[381 519 391 528]/Border[0 0 0]/H/N>> endobj 25298 0 obj <>/P 10569 0 R/Type/Annot/A 25679 0 R/Subtype/Link/Rect[393 519 410 529]/Border[0 0 0]/H/N>> endobj 25299 0 obj <>/P 10569 0 R/Type/Annot/A 25676 0 R/Subtype/Link/Rect[410 519 422 528]/Border[0 0 0]/H/N>> endobj 25300 0 obj <>/P 10569 0 R/Type/Annot/A 25717 0 R/Subtype/Link/Rect[384 509 396 518]/Border[0 0 0]/H/N>> endobj 25301 0 obj <>/P 10569 0 R/Type/Annot/A 25672 0 R/Subtype/Link/Rect[382 499 394 508]/Border[0 0 0]/H/N>> endobj 25302 0 obj <>/P 10569 0 R/Type/Annot/A 25669 0 R/Subtype/Link/Rect[392 489 404 498]/Border[0 0 0]/H/N>> endobj 25303 0 obj <>/P 10569 0 R/Type/Annot/A 25666 0 R/Subtype/Link/Rect[454 479 466 488]/Border[0 0 0]/H/N>> endobj 25304 0 obj <>/P 10569 0 R/Type/Annot/A 25663 0 R/Subtype/Link/Rect[392 469 409 479]/Border[0 0 0]/H/N>> endobj 25305 0 obj <>/P 10569 0 R/Type/Annot/A 25661 0 R/Subtype/Link/Rect[409 469 421 478]/Border[0 0 0]/H/N>> endobj 25306 0 obj <>/P 10569 0 R/Type/Annot/A 25658 0 R/Subtype/Link/Rect[368 459 382 468]/Border[0 0 0]/H/N>> endobj 25307 0 obj <>/P 10569 0 R/Type/Annot/A 25655 0 R/Subtype/Link/Rect[384 459 396 468]/Border[0 0 0]/H/N>> endobj 25308 0 obj <>/P 10569 0 R/Type/Annot/A 25652 0 R/Subtype/Link/Rect[383 449 395 458]/Border[0 0 0]/H/N>> endobj 25309 0 obj <>/P 10569 0 R/Type/Annot/A 25649 0 R/Subtype/Link/Rect[387 439 401 448]/Border[0 0 0]/H/N>> endobj 25310 0 obj <>/P 10569 0 R/Type/Annot/A 25646 0 R/Subtype/Link/Rect[403 439 417 448]/Border[0 0 0]/H/N>> endobj 25311 0 obj <>/P 10569 0 R/Type/Annot/A 25643 0 R/Subtype/Link/Rect[419 439 431 448]/Border[0 0 0]/H/N>> endobj 25312 0 obj <>/P 10569 0 R/Type/Annot/A 25640 0 R/Subtype/Link/Rect[380 429 397 439]/Border[0 0 0]/H/N>> endobj 25313 0 obj <>/P 10569 0 R/Type/Annot/A 25635 0 R/Subtype/Link/Rect[397 429 409 438]/Border[0 0 0]/H/N>> endobj 25314 0 obj <>/P 10569 0 R/Type/Annot/A 25632 0 R/Subtype/Link/Rect[389 419 406 429]/Border[0 0 0]/H/N>> endobj 25315 0 obj <>/P 10569 0 R/Type/Annot/A 25629 0 R/Subtype/Link/Rect[407 419 419 428]/Border[0 0 0]/H/N>> endobj 25316 0 obj <>/P 10569 0 R/Type/Annot/A 25626 0 R/Subtype/Link/Rect[438 409 452 418]/Border[0 0 0]/H/N>> endobj 25317 0 obj <>/P 10569 0 R/Type/Annot/A 25623 0 R/Subtype/Link/Rect[454 409 466 418]/Border[0 0 0]/H/N>> endobj 25318 0 obj <>/P 10569 0 R/Type/Annot/A 25620 0 R/Subtype/Link/Rect[397 399 409 408]/Border[0 0 0]/H/N>> endobj 25319 0 obj <>/P 10569 0 R/Type/Annot/A 25616 0 R/Subtype/Link/Rect[414 389 426 398]/Border[0 0 0]/H/N>> endobj 25320 0 obj <>/P 10569 0 R/Type/Annot/A 25613 0 R/Subtype/Link/Rect[424 379 438 388]/Border[0 0 0]/H/N>> endobj 25321 0 obj <>/P 10569 0 R/Type/Annot/A 25610 0 R/Subtype/Link/Rect[440 379 454 388]/Border[0 0 0]/H/N>> endobj 25322 0 obj <>/P 10569 0 R/Type/Annot/A 25606 0 R/Subtype/Link/Rect[456 379 473 389]/Border[0 0 0]/H/N>> endobj 25323 0 obj <>/P 10569 0 R/Type/Annot/A 25603 0 R/Subtype/Link/Rect[473 379 485 388]/Border[0 0 0]/H/N>> endobj 25324 0 obj <>/P 10569 0 R/Type/Annot/A 25600 0 R/Subtype/Link/Rect[397 369 409 378]/Border[0 0 0]/H/N>> endobj 25325 0 obj <>/P 10569 0 R/Type/Annot/A 25597 0 R/Subtype/Link/Rect[401 359 415 368]/Border[0 0 0]/H/N>> endobj 25326 0 obj <>/P 10569 0 R/Type/Annot/A 25593 0 R/Subtype/Link/Rect[417 359 431 368]/Border[0 0 0]/H/N>> endobj 25327 0 obj <>/P 10569 0 R/Type/Annot/A 25590 0 R/Subtype/Link/Rect[433 359 447 368]/Border[0 0 0]/H/N>> endobj 25328 0 obj <>/P 10569 0 R/Type/Annot/A 25587 0 R/Subtype/Link/Rect[449 359 463 368]/Border[0 0 0]/H/N>> endobj 25329 0 obj <>/P 10569 0 R/Type/Annot/A 25584 0 R/Subtype/Link/Rect[465 359 482 369]/Border[0 0 0]/H/N>> endobj 25330 0 obj <>/P 10569 0 R/Type/Annot/A 25581 0 R/Subtype/Link/Rect[482 359 496 368]/Border[0 0 0]/H/N>> endobj 25331 0 obj <>/P 10569 0 R/Type/Annot/A 25578 0 R/Subtype/Link/Rect[498 359 512 368]/Border[0 0 0]/H/N>> endobj 25332 0 obj <>/P 10569 0 R/Type/Annot/A 25575 0 R/Subtype/Link/Rect[359 349 373 358]/Border[0 0 0]/H/N>> endobj 25333 0 obj <>/P 10569 0 R/Type/Annot/A 25608 0 R/Subtype/Link/Rect[375 349 389 358]/Border[0 0 0]/H/N>> endobj 25334 0 obj <>/P 10569 0 R/Type/Annot/A 25568 0 R/Subtype/Link/Rect[391 349 404 358]/Border[0 0 0]/H/N>> endobj 25335 0 obj <>/P 10569 0 R/Type/Annot/A 25563 0 R/Subtype/Link/Rect[406 349 420 358]/Border[0 0 0]/H/N>> endobj 25336 0 obj <>/P 10569 0 R/Type/Annot/A 25559 0 R/Subtype/Link/Rect[422 349 434 358]/Border[0 0 0]/H/N>> endobj 25337 0 obj <>/P 10569 0 R/Type/Annot/A 25551 0 R/Subtype/Link/Rect[401 339 415 348]/Border[0 0 0]/H/N>> endobj 25338 0 obj <>/P 10569 0 R/Type/Annot/A 25547 0 R/Subtype/Link/Rect[417 339 431 348]/Border[0 0 0]/H/N>> endobj 25339 0 obj <>/P 10569 0 R/Type/Annot/A 25540 0 R/Subtype/Link/Rect[433 339 447 348]/Border[0 0 0]/H/N>> endobj 25340 0 obj <>/P 10569 0 R/Type/Annot/A 25534 0 R/Subtype/Link/Rect[449 339 466 349]/Border[0 0 0]/H/N>> endobj 25341 0 obj <>/P 10569 0 R/Type/Annot/A 25528 0 R/Subtype/Link/Rect[466 339 478 348]/Border[0 0 0]/H/N>> endobj 25342 0 obj <>/P 10569 0 R/Type/Annot/A 25522 0 R/Subtype/Link/Rect[429 329 443 338]/Border[0 0 0]/H/N>> endobj 25343 0 obj <>/P 10569 0 R/Type/Annot/A 25516 0 R/Subtype/Link/Rect[445 329 459 338]/Border[0 0 0]/H/N>> endobj 25344 0 obj <>/P 10569 0 R/Type/Annot/A 25510 0 R/Subtype/Link/Rect[461 329 475 338]/Border[0 0 0]/H/N>> endobj 25345 0 obj <>/P 10569 0 R/Type/Annot/A 25503 0 R/Subtype/Link/Rect[477 329 491 338]/Border[0 0 0]/H/N>> endobj 25346 0 obj <>/P 10569 0 R/Type/Annot/A 25497 0 R/Subtype/Link/Rect[359 319 375 329]/Border[0 0 0]/H/N>> endobj 25347 0 obj <>/P 10569 0 R/Type/Annot/A 25595 0 R/Subtype/Link/Rect[376 319 390 328]/Border[0 0 0]/H/N>> endobj 25348 0 obj <>/P 10569 0 R/Type/Annot/A 25486 0 R/Subtype/Link/Rect[392 319 406 328]/Border[0 0 0]/H/N>> endobj 25349 0 obj <>/P 10569 0 R/Type/Annot/A 25543 0 R/Subtype/Link/Rect[408 319 425 329]/Border[0 0 0]/H/N>> endobj 25350 0 obj <>/P 10569 0 R/Type/Annot/A 25470 0 R/Subtype/Link/Rect[425 319 439 328]/Border[0 0 0]/H/N>> endobj 25351 0 obj <>/P 10569 0 R/Type/Annot/A 25463 0 R/Subtype/Link/Rect[441 319 455 328]/Border[0 0 0]/H/N>> endobj 25352 0 obj <>/P 10569 0 R/Type/Annot/A 25457 0 R/Subtype/Link/Rect[457 319 471 328]/Border[0 0 0]/H/N>> endobj 25353 0 obj <>/P 10569 0 R/Type/Annot/A 25450 0 R/Subtype/Link/Rect[473 319 487 328]/Border[0 0 0]/H/N>> endobj 25354 0 obj <>/P 10569 0 R/Type/Annot/A 25444 0 R/Subtype/Link/Rect[489 319 503 328]/Border[0 0 0]/H/N>> endobj 25355 0 obj <>/P 10569 0 R/Type/Annot/A 25436 0 R/Subtype/Link/Rect[359 309 375 319]/Border[0 0 0]/H/N>> endobj 25356 0 obj <>/P 10569 0 R/Type/Annot/A 25429 0 R/Subtype/Link/Rect[376 309 390 318]/Border[0 0 0]/H/N>> endobj 25357 0 obj <>/P 10569 0 R/Type/Annot/A 25422 0 R/Subtype/Link/Rect[392 309 406 318]/Border[0 0 0]/H/N>> endobj 25358 0 obj <>/P 10569 0 R/Type/Annot/A 25489 0 R/Subtype/Link/Rect[408 309 420 318]/Border[0 0 0]/H/N>> endobj 25359 0 obj <>/P 10569 0 R/Type/Annot/A 25480 0 R/Subtype/Link/Rect[397 299 409 308]/Border[0 0 0]/H/N>> endobj 25360 0 obj <>/P 10569 0 R/Type/Annot/A 25472 0 R/Subtype/Link/Rect[401 289 415 298]/Border[0 0 0]/H/N>> endobj 25361 0 obj <>/P 10569 0 R/Type/Annot/A 25462 0 R/Subtype/Link/Rect[417 289 429 298]/Border[0 0 0]/H/N>> endobj 25362 0 obj <>/P 10569 0 R/Type/Annot/A 44679 0 R/Subtype/Link/Rect[396 279 413 289]/Border[0 0 0]/H/N>> endobj 25363 0 obj <>/P 10569 0 R/Type/Annot/A 44653 0 R/Subtype/Link/Rect[414 279 428 288]/Border[0 0 0]/H/N>> endobj 25364 0 obj <>/P 10569 0 R/Type/Annot/A 25442 0 R/Subtype/Link/Rect[430 279 442 288]/Border[0 0 0]/H/N>> endobj 25365 0 obj <>/P 10569 0 R/Type/Annot/A 25434 0 R/Subtype/Link/Rect[414 269 428 278]/Border[0 0 0]/H/N>> endobj 25366 0 obj <>/P 10569 0 R/Type/Annot/A 25426 0 R/Subtype/Link/Rect[430 269 444 278]/Border[0 0 0]/H/N>> endobj 25367 0 obj <>/P 10569 0 R/Type/Annot/A 25544 0 R/Subtype/Link/Rect[446 269 460 278]/Border[0 0 0]/H/N>> endobj 25368 0 obj <>/P 10569 0 R/Type/Annot/A 25478 0 R/Subtype/Link/Rect[462 269 479 279]/Border[0 0 0]/H/N>> endobj 25369 0 obj <>/P 10569 0 R/Type/Annot/A 44421 0 R/Subtype/Link/Rect[480 269 492 278]/Border[0 0 0]/H/N>> endobj 25370 0 obj <>/P 10569 0 R/Type/Annot/A 33622 0 R/Subtype/Link/Rect[397 259 409 268]/Border[0 0 0]/H/N>> endobj 25371 0 obj <>/P 10569 0 R/Type/Annot/A 25454 0 R/Subtype/Link/Rect[434 249 444 258]/Border[0 0 0]/H/N>> endobj 25372 0 obj <>/P 10569 0 R/Type/Annot/A 44328 0 R/Subtype/Link/Rect[446 249 456 258]/Border[0 0 0]/H/N>> endobj 25373 0 obj <>/P 10569 0 R/Type/Annot/A 44285 0 R/Subtype/Link/Rect[458 249 470 258]/Border[0 0 0]/H/N>> endobj 25374 0 obj <>/P 10569 0 R/Type/Annot/A 25432 0 R/Subtype/Link/Rect[401 239 415 248]/Border[0 0 0]/H/N>> endobj 25375 0 obj <>/P 10569 0 R/Type/Annot/A 30123 0 R/Subtype/Link/Rect[417 239 431 248]/Border[0 0 0]/H/N>> endobj 25376 0 obj <>/P 10569 0 R/Type/Annot/A 25481 0 R/Subtype/Link/Rect[433 239 447 248]/Border[0 0 0]/H/N>> endobj 25377 0 obj <>/P 10569 0 R/Type/Annot/A 44140 0 R/Subtype/Link/Rect[449 239 466 249]/Border[0 0 0]/H/N>> endobj 25378 0 obj <>/P 10569 0 R/Type/Annot/A 44109 0 R/Subtype/Link/Rect[466 239 480 248]/Border[0 0 0]/H/N>> endobj 25379 0 obj <>/P 10569 0 R/Type/Annot/A 25453 0 R/Subtype/Link/Rect[482 239 499 249]/Border[0 0 0]/H/N>> endobj 25380 0 obj <>/P 10569 0 R/Type/Annot/A 33057 0 R/Subtype/Link/Rect[500 239 514 248]/Border[0 0 0]/H/N>> endobj 25381 0 obj <>/P 10569 0 R/Type/Annot/A 44003 0 R/Subtype/Link/Rect[359 229 373 238]/Border[0 0 0]/H/N>> endobj 25382 0 obj <>/P 10569 0 R/Type/Annot/A 29124 0 R/Subtype/Link/Rect[375 229 389 238]/Border[0 0 0]/H/N>> endobj 25383 0 obj <>/P 10569 0 R/Type/Annot/A 43938 0 R/Subtype/Link/Rect[391 229 405 238]/Border[0 0 0]/H/N>> endobj 25384 0 obj <>/P 10569 0 R/Type/Annot/A 25474 0 R/Subtype/Link/Rect[407 229 423 239]/Border[0 0 0]/H/N>> endobj 25385 0 obj <>/P 10569 0 R/Type/Annot/A 25464 0 R/Subtype/Link/Rect[424 229 438 238]/Border[0 0 0]/H/N>> endobj 25386 0 obj <>/P 10569 0 R/Type/Annot/A 43812 0 R/Subtype/Link/Rect[440 229 454 238]/Border[0 0 0]/H/N>> endobj 25387 0 obj <>/P 10569 0 R/Type/Annot/A 25446 0 R/Subtype/Link/Rect[456 229 470 238]/Border[0 0 0]/H/N>> endobj 25388 0 obj <>/P 10569 0 R/Type/Annot/A 25438 0 R/Subtype/Link/Rect[472 229 486 238]/Border[0 0 0]/H/N>> endobj 25389 0 obj <>/P 10569 0 R/Type/Annot/A 25430 0 R/Subtype/Link/Rect[488 229 502 238]/Border[0 0 0]/H/N>> endobj 25390 0 obj <>/P 10569 0 R/Type/Annot/A 27621 0 R/Subtype/Link/Rect[504 229 516 238]/Border[0 0 0]/H/N>> endobj 25391 0 obj <>/P 10569 0 R/Type/Annot/A 43629 0 R/Subtype/Link/Rect[415 219 427 228]/Border[0 0 0]/H/N>> endobj 25392 0 obj <>/P 10569 0 R/Type/Annot/A 28556 0 R/Subtype/Link/Rect[415 209 427 218]/Border[0 0 0]/H/N>> endobj 25393 0 obj <>/P 10569 0 R/Type/Annot/A 43548 0 R/Subtype/Link/Rect[401 199 415 208]/Border[0 0 0]/H/N>> endobj 25394 0 obj <>/P 10569 0 R/Type/Annot/A 33043 0 R/Subtype/Link/Rect[417 199 431 208]/Border[0 0 0]/H/N>> endobj 25395 0 obj <>/P 10569 0 R/Type/Annot/A 43479 0 R/Subtype/Link/Rect[433 199 447 208]/Border[0 0 0]/H/N>> endobj 25396 0 obj <>/P 10569 0 R/Type/Annot/A 26463 0 R/Subtype/Link/Rect[449 199 463 208]/Border[0 0 0]/H/N>> endobj 25397 0 obj <>/P 10569 0 R/Type/Annot/A 25466 0 R/Subtype/Link/Rect[465 199 479 208]/Border[0 0 0]/H/N>> endobj 25398 0 obj <>/P 10569 0 R/Type/Annot/A 25553 0 R/Subtype/Link/Rect[481 199 498 209]/Border[0 0 0]/H/N>> endobj 25399 0 obj <>/P 10569 0 R/Type/Annot/A 25861 0 R/Subtype/Link/Rect[498 199 512 208]/Border[0 0 0]/H/N>> endobj 25400 0 obj <>/P 10569 0 R/Type/Annot/A 25437 0 R/Subtype/Link/Rect[359 189 373 198]/Border[0 0 0]/H/N>> endobj 25401 0 obj <>/P 10569 0 R/Type/Annot/A 25782 0 R/Subtype/Link/Rect[375 189 387 198]/Border[0 0 0]/H/N>> endobj 25402 0 obj <>/P 10569 0 R/Type/Annot/A 43183 0 R/Subtype/Link/Rect[405 179 419 188]/Border[0 0 0]/H/N>> endobj 25403 0 obj <>/P 10569 0 R/Type/Annot/A 25774 0 R/Subtype/Link/Rect[421 179 433 188]/Border[0 0 0]/H/N>> endobj 25404 0 obj <>/P 10569 0 R/Type/Annot/A 43122 0 R/Subtype/Link/Rect[419 169 433 178]/Border[0 0 0]/H/N>> endobj 25405 0 obj <>/P 10569 0 R/Type/Annot/A 25767 0 R/Subtype/Link/Rect[435 169 449 178]/Border[0 0 0]/H/N>> endobj 25406 0 obj <>/P 10569 0 R/Type/Annot/A 25763 0 R/Subtype/Link/Rect[451 169 468 179]/Border[0 0 0]/H/N>> endobj 25407 0 obj <>/P 10569 0 R/Type/Annot/A 25759 0 R/Subtype/Link/Rect[468 169 480 178]/Border[0 0 0]/H/N>> endobj 25408 0 obj <>/P 10569 0 R/Type/Annot/A 25755 0 R/Subtype/Link/Rect[397 159 409 168]/Border[0 0 0]/H/N>> endobj 25409 0 obj <>/P 10569 0 R/Type/Annot/A 25750 0 R/Subtype/Link/Rect[429 149 443 158]/Border[0 0 0]/H/N>> endobj 25410 0 obj <>/P 10569 0 R/Type/Annot/A 25746 0 R/Subtype/Link/Rect[445 149 462 159]/Border[0 0 0]/H/N>> endobj 25411 0 obj <>/P 10569 0 R/Type/Annot/A 42863 0 R/Subtype/Link/Rect[462 149 476 158]/Border[0 0 0]/H/N>> endobj 25412 0 obj <>/P 10569 0 R/Type/Annot/A 25738 0 R/Subtype/Link/Rect[478 149 492 158]/Border[0 0 0]/H/N>> endobj 25413 0 obj <>/P 10569 0 R/Type/Annot/A 25734 0 R/Subtype/Link/Rect[359 139 375 149]/Border[0 0 0]/H/N>> endobj 25414 0 obj <>/P 10569 0 R/Type/Annot/A 25730 0 R/Subtype/Link/Rect[376 139 390 148]/Border[0 0 0]/H/N>> endobj 25415 0 obj <>/P 10569 0 R/Type/Annot/A 25751 0 R/Subtype/Link/Rect[392 139 406 148]/Border[0 0 0]/H/N>> endobj 25416 0 obj <>/P 10569 0 R/Type/Annot/A 42682 0 R/Subtype/Link/Rect[408 139 422 148]/Border[0 0 0]/H/N>> endobj 25417 0 obj <>/P 10569 0 R/Type/Annot/A 25718 0 R/Subtype/Link/Rect[424 139 438 148]/Border[0 0 0]/H/N>> endobj 25418 0 obj <>/P 10569 0 R/Type/Annot/A 25713 0 R/Subtype/Link/Rect[440 139 454 148]/Border[0 0 0]/H/N>> endobj 25419 0 obj <>/P 10569 0 R/Type/Annot/A 25709 0 R/Subtype/Link/Rect[456 139 470 148]/Border[0 0 0]/H/N>> endobj 25420 0 obj <>/P 10569 0 R/Type/Annot/A 25705 0 R/Subtype/Link/Rect[472 139 484 148]/Border[0 0 0]/H/N>> endobj 25421 0 obj <> endobj 25422 0 obj <> endobj 25423 0 obj <> endobj 25424 0 obj <> endobj 25425 0 obj <> endobj 25426 0 obj <> endobj 25427 0 obj <> endobj 25428 0 obj <> endobj 25429 0 obj <> endobj 25430 0 obj <> endobj 25431 0 obj <> endobj 25432 0 obj <> endobj 25433 0 obj <> endobj 25434 0 obj <> endobj 25435 0 obj <> endobj 25436 0 obj <> endobj 25437 0 obj <> endobj 25438 0 obj <> endobj 25439 0 obj <> endobj 25440 0 obj <> endobj 25441 0 obj <> endobj 25442 0 obj <> endobj 25443 0 obj <> endobj 25444 0 obj <> endobj 25445 0 obj <> endobj 25446 0 obj <> endobj 25447 0 obj <> endobj 25448 0 obj <> endobj 25449 0 obj <> endobj 25450 0 obj <> endobj 25451 0 obj <> endobj 25452 0 obj <> endobj 25453 0 obj <> endobj 25454 0 obj <> endobj 25455 0 obj <> endobj 25456 0 obj <> endobj 25457 0 obj <> endobj 25458 0 obj <> endobj 25459 0 obj <> endobj 25460 0 obj <> endobj 25461 0 obj <> endobj 25462 0 obj <> endobj 25463 0 obj <> endobj 25464 0 obj <> endobj 25465 0 obj <> endobj 25466 0 obj <> endobj 25467 0 obj <> endobj 25468 0 obj <> endobj 25469 0 obj <> endobj 25470 0 obj <> endobj 25471 0 obj <> endobj 25472 0 obj <> endobj 25473 0 obj <> endobj 25474 0 obj <> endobj 25475 0 obj <> endobj 25476 0 obj <> endobj 25477 0 obj <> endobj 25478 0 obj <> endobj 25479 0 obj <> endobj 25480 0 obj <> endobj 25481 0 obj <> endobj 25482 0 obj <> endobj 25483 0 obj <> endobj 25484 0 obj <> endobj 25485 0 obj <> endobj 25486 0 obj <> endobj 25487 0 obj <> endobj 25488 0 obj <> endobj 25489 0 obj <> endobj 25490 0 obj <> endobj 25491 0 obj <> endobj 25492 0 obj <> endobj 25493 0 obj <> endobj 25494 0 obj <> endobj 25495 0 obj <> endobj 25496 0 obj <> endobj 25497 0 obj <> endobj 25498 0 obj <> endobj 25499 0 obj <> endobj 25500 0 obj <> endobj 25501 0 obj <> endobj 25502 0 obj <> endobj 25503 0 obj <> endobj 25504 0 obj <> endobj 25505 0 obj <> endobj 25506 0 obj <> endobj 25507 0 obj <> endobj 25508 0 obj <> endobj 25509 0 obj <> endobj 25510 0 obj <> endobj 25511 0 obj <> endobj 25512 0 obj <> endobj 25513 0 obj <> endobj 25514 0 obj <> endobj 25515 0 obj <> endobj 25516 0 obj <> endobj 25517 0 obj <> endobj 25518 0 obj <> endobj 25519 0 obj <> endobj 25520 0 obj <> endobj 25521 0 obj <> endobj 25522 0 obj <> endobj 25523 0 obj <> endobj 25524 0 obj <> endobj 25525 0 obj <> endobj 25526 0 obj <> endobj 25527 0 obj <> endobj 25528 0 obj <> endobj 25529 0 obj <> endobj 25530 0 obj <> endobj 25531 0 obj <> endobj 25532 0 obj <> endobj 25533 0 obj <> endobj 25534 0 obj <> endobj 25535 0 obj <> endobj 25536 0 obj <> endobj 25537 0 obj <> endobj 25538 0 obj <> endobj 25539 0 obj <> endobj 25540 0 obj <> endobj 25541 0 obj <> endobj 25542 0 obj <> endobj 25543 0 obj <> endobj 25544 0 obj <> endobj 25545 0 obj <> endobj 25546 0 obj <> endobj 25547 0 obj <> endobj 25548 0 obj <> endobj 25549 0 obj <> endobj 25550 0 obj <> endobj 25551 0 obj <> endobj 25552 0 obj <> endobj 25553 0 obj <> endobj 25554 0 obj <> endobj 25555 0 obj <> endobj 25556 0 obj <> endobj 25557 0 obj <> endobj 25558 0 obj <> endobj 25559 0 obj <> endobj 25560 0 obj <> endobj 25561 0 obj <> endobj 25562 0 obj <> endobj 25563 0 obj <> endobj 25564 0 obj <> endobj 25565 0 obj <> endobj 25566 0 obj <> endobj 25567 0 obj <> endobj 25568 0 obj <> endobj 25569 0 obj <> endobj 25570 0 obj <> endobj 25571 0 obj <> endobj 25572 0 obj <> endobj 25573 0 obj <> endobj 25574 0 obj <> endobj 25575 0 obj <> endobj 25576 0 obj <> endobj 25577 0 obj <> endobj 25578 0 obj <> endobj 25579 0 obj <> endobj 25580 0 obj <> endobj 25581 0 obj <> endobj 25582 0 obj <> endobj 25583 0 obj <> endobj 25584 0 obj <> endobj 25585 0 obj <> endobj 25586 0 obj <> endobj 25587 0 obj <> endobj 25588 0 obj <> endobj 25589 0 obj <> endobj 25590 0 obj <> endobj 25591 0 obj <> endobj 25592 0 obj <> endobj 25593 0 obj <> endobj 25594 0 obj <> endobj 25595 0 obj <> endobj 25596 0 obj <> endobj 25597 0 obj <> endobj 25598 0 obj <> endobj 25599 0 obj <> endobj 25600 0 obj <> endobj 25601 0 obj <> endobj 25602 0 obj <> endobj 25603 0 obj <> endobj 25604 0 obj <> endobj 25605 0 obj <> endobj 25606 0 obj <> endobj 25607 0 obj <> endobj 25608 0 obj <> endobj 25609 0 obj <> endobj 25610 0 obj <> endobj 25611 0 obj <> endobj 25612 0 obj <> endobj 25613 0 obj <> endobj 25614 0 obj <> endobj 25615 0 obj <> endobj 25616 0 obj <> endobj 25617 0 obj <> endobj 25618 0 obj <> endobj 25619 0 obj <> endobj 25620 0 obj <> endobj 25621 0 obj <> endobj 25622 0 obj <> endobj 25623 0 obj <> endobj 25624 0 obj <> endobj 25625 0 obj <> endobj 25626 0 obj <> endobj 25627 0 obj <> endobj 25628 0 obj <> endobj 25629 0 obj <> endobj 25630 0 obj <> endobj 25631 0 obj <> endobj 25632 0 obj <> endobj 25633 0 obj <> endobj 25634 0 obj <> endobj 25635 0 obj <> endobj 25636 0 obj <> endobj 25637 0 obj <> endobj 25638 0 obj <> endobj 25639 0 obj <> endobj 25640 0 obj <> endobj 25641 0 obj <> endobj 25642 0 obj <> endobj 25643 0 obj <> endobj 25644 0 obj <> endobj 25645 0 obj <> endobj 25646 0 obj <> endobj 25647 0 obj <> endobj 25648 0 obj <> endobj 25649 0 obj <> endobj 25650 0 obj <> endobj 25651 0 obj <> endobj 25652 0 obj <> endobj 25653 0 obj <> endobj 25654 0 obj <> endobj 25655 0 obj <> endobj 25656 0 obj <> endobj 25657 0 obj <> endobj 25658 0 obj <> endobj 25659 0 obj <> endobj 25660 0 obj <> endobj 25661 0 obj <> endobj 25662 0 obj <> endobj 25663 0 obj <> endobj 25664 0 obj <> endobj 25665 0 obj <> endobj 25666 0 obj <> endobj 25667 0 obj <> endobj 25668 0 obj <> endobj 25669 0 obj <> endobj 25670 0 obj <> endobj 25671 0 obj <> endobj 25672 0 obj <> endobj 25673 0 obj <> endobj 25674 0 obj <> endobj 25675 0 obj <> endobj 25676 0 obj <> endobj 25677 0 obj <> endobj 25678 0 obj <> endobj 25679 0 obj <> endobj 25680 0 obj <> endobj 25681 0 obj <> endobj 25682 0 obj <> endobj 25683 0 obj <> endobj 25684 0 obj <> endobj 25685 0 obj <> endobj 25686 0 obj <> endobj 25687 0 obj <> endobj 25688 0 obj <> endobj 25689 0 obj <> endobj 25690 0 obj <> endobj 25691 0 obj <> endobj 25692 0 obj <> endobj 25693 0 obj <> endobj 25694 0 obj <> endobj 25695 0 obj <> endobj 25696 0 obj <> endobj 25697 0 obj <> endobj 25698 0 obj <> endobj 25699 0 obj <> endobj 25700 0 obj <> endobj 25701 0 obj <> endobj 25702 0 obj <> endobj 25703 0 obj <> endobj 25704 0 obj <> endobj 25705 0 obj <> endobj 25706 0 obj <> endobj 25707 0 obj <> endobj 25708 0 obj <> endobj 25709 0 obj <> endobj 25710 0 obj <> endobj 25711 0 obj <> endobj 25712 0 obj <> endobj 25713 0 obj <> endobj 25714 0 obj <> endobj 25715 0 obj <> endobj 25716 0 obj <> endobj 25717 0 obj <> endobj 25718 0 obj <> endobj 25719 0 obj <> endobj 25720 0 obj <> endobj 25721 0 obj <> endobj 25722 0 obj <> endobj 25723 0 obj <> endobj 25724 0 obj <> endobj 25725 0 obj <> endobj 25726 0 obj <> endobj 25727 0 obj <> endobj 25728 0 obj <> endobj 25729 0 obj <> endobj 25730 0 obj <> endobj 25731 0 obj <> endobj 25732 0 obj <> endobj 25733 0 obj <> endobj 25734 0 obj <> endobj 25735 0 obj <> endobj 25736 0 obj <> endobj 25737 0 obj <> endobj 25738 0 obj <> endobj 25739 0 obj <> endobj 25740 0 obj <> endobj 25741 0 obj <> endobj 25742 0 obj <> endobj 25743 0 obj <> endobj 25744 0 obj <> endobj 25745 0 obj <> endobj 25746 0 obj <> endobj 25747 0 obj <> endobj 25748 0 obj <> endobj 25749 0 obj <> endobj 25750 0 obj <> endobj 25751 0 obj <> endobj 25752 0 obj <> endobj 25753 0 obj <> endobj 25754 0 obj <> endobj 25755 0 obj <> endobj 25756 0 obj <> endobj 25757 0 obj <> endobj 25758 0 obj <> endobj 25759 0 obj <> endobj 25760 0 obj <> endobj 25761 0 obj <> endobj 25762 0 obj <> endobj 25763 0 obj <> endobj 25764 0 obj <> endobj 25765 0 obj <> endobj 25766 0 obj <> endobj 25767 0 obj <> endobj 25768 0 obj <> endobj 25769 0 obj <> endobj 25770 0 obj <> endobj 25771 0 obj <> endobj 25772 0 obj <> endobj 25773 0 obj <> endobj 25774 0 obj <> endobj 25775 0 obj <> endobj 25776 0 obj <> endobj 25777 0 obj <> endobj 25778 0 obj <> endobj 25779 0 obj <> endobj 25780 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 25781 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 25782 0 obj <> endobj 25783 0 obj <> endobj 25784 0 obj <> endobj 25785 0 obj <> endobj 25786 0 obj <> endobj 25787 0 obj <> stream q /X1 Do Q q endstream endobj 25788 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 25789 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 25790 0 obj <> stream H[7WQ=7 d`'$@Z@qȸ'ULh4Z%PLj(kZ%qORb-Q{Zͤk@1Z$I-Ÿ'LjZ%qORb-Q{Zͤk@1Z$I-Ÿ'Lj Z%PLj(kZ%qORkb-Q{Zäk@1Z$I-Ÿ'5LjZ%qORkb-Q{Zäk@1Z$I-Ÿ'5Lj,Z%PLj(kZ%qORkb-Q{Zˤk@1Z$I-Ÿ'LjZ%qORkb-Q{Zˤk@1Z$I-Ÿ'LjZ%PLj(kccB{n7#X>tZ(y{/bwں_o:A6P7q?9 eӘ|8ިO|r~3ڕO9ǿ<_evuzƺy\ Wק#X88jWӇ5Obiԇ<^?9Qe+kTٟ. K= Q*U7K]vo&}9>gas*gP7n^=LUWV?Z4z^fTV9v\ݏǻϨc籠؇KO ~ZWy>`<1 ii&i̿7H5FftBk'% .Tyd+pz-8 \{pׂ̺=<9=n_jJ)Th`CHxh{e`#L LZИ*O e<7˷ɚ 1&e(GyPF0%gPRVbj"L-ejoIS{UT% wSEPb*ޚ*|J*'rjJZ5USQ CiBIJ0Se4'e(C(PS% 5USQ,4C+^1W~AwWv,ਵ8AS^m@} E7؇nZ$n"36[Yr-y{F$%ʗ,Ci8ΜrzߛS82/p.lFHpd"4CfEؼm&vdY.熖k}:yGI5VD2$JX5 6|q#k.9Ysi`c.sË%9[fDc 8c(uLhmە޲z+FNa(2ؔzy9n9NGR~ K2^T_roHbZRQ0X6NrGI:qG&0,ʺ~%=dq|{\,4?2\6OR$=Y\/ډ}c߿:|n^xst߹ Msm>AƱݖv554"`-]+rOHe);+C@6ܾ Qe:h f,³eQtabVb[(,(.6GYhwML E]iϮ׈oӰ{$)veL;_hKd{e>}JvC1fj XCPyyxrr;vp9k'CήGTӺ<)tY Itf+ņ_:,4P[^݇k+3Ԙa~4s֫_:tY-*)XZJ|ৌz"XKƟkZd"ʼҖGI,w~{Ǖ)+|V>a:!U[뗡DQ'Fz.-iHt$kl@8; f6tɄ3; &.tCc^9.2H>m׮%N >?89XmL:*HHXX/P/PjըCơz]Wх~D : D+߿ &'iTs3iR&e$shmUzΟbq!3 z4V3_stcsk'Z )yB&IbxYD14byΞecyn 5(a_S8`*|g֎ݡ^͏L"o}GHy2d\r۟_K̜;n“50,oQ,Ԥ@WGr-p4:H֗SE.doD}̣̋ 2)o81y>᪽箴ZQ;i7#4N̦9abYtU|=lxAZkpT6ZTx RL>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 25792 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 25793 0 obj <> endobj 25794 0 obj <> endobj 25795 0 obj <> endobj 25796 0 obj <> endobj 25797 0 obj <> endobj 25798 0 obj <> endobj 25799 0 obj <> endobj 25800 0 obj <> endobj 25801 0 obj <> stream q /X1 Do Q q endstream endobj 25802 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 25803 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 25804 0 obj <> stream HWko_1wMb$ۦ|/CŮݬMIy1yJW3֬.Ԥiʬ2](|\}i~N.OĻX[_+s>s>s KKK++kUg-(v{ Vb%,^b{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb{ZZ+1fVbăJYڽĈZ+1ficv/1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+]@k%,^b{1K@k%,^6JYjm@k%,^6JYjm@k%,^6JYjm@k%,^6JYjm.Ak%,^b{1KӺ迓.yJW+kY]'@0tie2KY͡;ض#/3E^E/ci6ǯ^.sѿ1?.nKlqkwyMc[ Mt[55gG@tYM3ND*-rxa*KWi п0Z]oLj:CaDD_|"x*HEyJH $4abi}!S`̪KiVZAi@+WZ9ʕV UBi@TZ%*V*UJi@VZ5Ъ˴Ę$F, Ҳ@*-r@KށKY@KށKY@KށKY@KށKY@KށKY@KށKY@KށKY@KރKYZKbʽʽʽʽʽʽʽʽFwΒZ^bZ)R )R m'R m'R  %R  %R "R "R M R M֒x{Ts?ڏnV=\GZgEjm}ssG2[ox2 9(Nn@v[ڙyq&>q_ЦEۯ͡c=Csɲ`B&ͣ=ve>'vat0 eQǦF4l'_o_{<:~"_b7}hʏ  N=RbuҬqtNNHږ{ª.gB`QΗ6NnK<9>^ͦ\]dNu8x8vZܭiG_2K-ϧ@_#Le}nxv۳/~6Mɧ i>^I£pSaS^=zZn<!tʼ hޙ\:.e9Nӎ, " 7Mnu'*zJE RM߂Jw8tOa]>8ܷ~2ӲLJS Ly~8qۦ8;=wy{3pr7^vmz)PNzd{㇝aaGCqC5bhlU-f(5'>}|N1@|+~ )tA{mcmN#,v y}Mr61]:U_C*5OM׏5.j/Z,['^RL쿗:~_'A!)r xM*Uy>-&pMϯQ岯ҫ۞;ӎ(_tfiBUb̪KiVZAi@+WZ9ʕV UBi@TZ%*V*UJi@VZ5Ъ˴Ę$F, Ҳ@*-r@KށKY@KށKY@KށKY@KށKY@KށKY@KށKY@KށKY@KރKYZKbʽʽʽʽʽʽʽʽ}&<(ᰜRڪj)dm:FŋK/3;|;*ˎCp /{NpoPEx9s{;*1T^ގrv U='c"9Cp1T^v̨\y/cTaȁ( M6UWHN5~[g-om%5۽%dRI^(c#MjZ5Y0$r[* ?}y8׆T"̋{~`ð¸%Ҍ 4I𪶆Y g]k:#lz_<F^j@plԀsN`ߵ桔fTUT, X<qعJQ[0E`nXϲ F}҄´u=<ʡ*[-նX@Wk ss8f5#'b#h>PMvӉ3_@*;8ӑ/J6)fCV/=|q)ifRZ-*!21πnum4`UQͺS 4]5G'kg71*nK|emv H= g̀D%HUw/;hb#-^EѡZвٗJh\uǫ?ډendstream endobj 25805 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 25806 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 25807 0 obj <> stream q /X2 Do Q q endstream endobj 25808 0 obj <>/ProcSet[/PDF/ImageC]/ExtGState<>>> endobj 25809 0 obj <> stream Q q /X1 Do Q endstream endobj 25810 0 obj <> stream H*225R0BcCC=0+9K3@%+ mendstream endobj 25811 0 obj <> stream JFIFExifMM*bj(1r2iAdobe Photoshop 7.02013:05:10 15:07:04a(&HHJFIFHH Adobe_CMAdobed            h"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?,,3Mjg7G7p=_7} c/zo(cgMs$&Ji2A9Sߤק`*(rG3/zo%/Wi>IH^xM\8_} cK*F55xa1%v֢,c_F_.8_} c$8_ &+>YMm>Z7EyյK=ع2r_ή6`h̜̋p*"Ákvfw~[{ wq_XL!ԓ )!%lk?V28xoCO-QJ\\U7~P+s˘$k=o?kg/FîϵWڎ+vfkʴ}>u}o^طC}\֖;Xzs9{h.ҽI^~I}_b#O/җ6aYGezk^ 3!W:mW[/֖p{}jŻv[]/5ޒ% _+l+~b$bK>׽^o]V m]ԽٳgU~=Ol5lkX7U[]oS=_|~^8kq`}yյo?2c6>gܗῳ0w`'^6w;3QTvL526-p32q&-;|gukm$:tmUglzâͬV!IB0:%kw`}eþV̱s|;A?sL3{|SrFHӋӫ_NtLN>ˆckvsmmyFEUE8{h5M?=m% 8_Xqө\_f^^`eV6=۝_c7ۅ}Cӭ4}=Z=*ꑗo؈y&n"0m+,u~1ٳvVNn[^;H9lPs{m}??,\b.Kz9>z?H-4NH s=JݷwOjJZ?8![wt,&SSUX^Ώkyǵ䵿Of7=d0;~>O)z5O}mt$V !Vz~{ӆIhEu;X,7=(V5R}1mɝiدc\>hv05Zǰ ๶2}G5 7gesQŹu>RYM>w;VWCoOSٶ kߢZJ&;###JKs^=oe_m]*jo/?_1??gѨ&l ?oJ:}.$GAǡ#p:pѽ.]Pk?c:uUtѶ1ոng`Wv%0Y89yZ-i{OsD8݈W?K@b0 t\k^WK2,m\2F]߿5>vk{-mi~#Ѹ5r986-ץw}\̌&?=Ο+:nh2YC->sMծ%@ FW|B~.60J8F<>qqC$1z/?WtӬ9mfёz,g7n&F=: kv5!{^Ys)ɲOñkC]ߢe4#K+>H^cۛ~Վ ĊDvQT2OAn=5ŖTݸqyߠ}/b_FbZe_:6܇W9kv.NP#\=77\̷Эi1潃F.wWM! i[Y츣u%$?Ż)nciߎ2ug/X^WXh snյ]BƷۊEV5;}Djw #*tx8 oyյt 'c4s?d'm De<$=礥y'ˈ)-?/:X]C2k1?cC\o۲̋{ w=F{.?S?BÀZΩS@{@!l?YD$c_<-O4*ģ=&[o`n7:>z$S]/)ZkI]X55DjщA >6Ɨ;2˞;9'WiĤSI&LoV1AV`L8~Ұplj>L >^΄胏..k*j?UV'/?k?d'Ϯp8tio" 'kZlIJYH;~rKsXLclcxǂ ,Ԅt S]Ko>>c>Nu=k6?w9cG|xL(CnnY nꪸ5?Wbg|H8 TG.#?erkNϳLJL'#^px}8=wc2/}.ee.ץ7U׋38Z$1[o~G=ֵ1z[t3`SGCEõL{ƿ'ls3wm XgMA$ jw}/0KRoTenIix$ ceX[@f;UVվ>zʿڥl<?/@Qˬ;C &%Ż=} u/դ?XL?бRSics\sHA^ΡИ:[})sKwlv-YE*CY&HЃgآ͌>R% xH81rf>'g~K2^Z=Ok93ff_/Z?yU[j֛sRȾٱKo1-%Wa~Ͳ5wøXr?E_ʑx%{1EyqЖ9Nj\℠jH}-sWES[a ^gOvL?}Z(|RSOnjt{JU(+45PH{D/Joo.?,yY68_y^w'8L _ps?#폵vݻG7c̬Qc [Ϻ=7cz.3څt{sALo};?H!>7DZe+ZuŞBxe ׍O9&G<,3=2BCnOmG.ne}Ameln;vM'&vKsm"[@{=FZm^?[_^=oe_mSĜ $l$H&#$;R[=ى^ AsG~WLQPp/aIH^xM\8_} cK*F55xa1%v֢,c_F_.8_} c$8_ &+>YMm>Z7EyյK=ع2r_ή6`h̜̋p*"Ákvfw~[{ wq_XL!ԓ )!%lk?V28xoCO-QJ\\U7~P+s˘$k=o?kg/FîϵWڎ+vfkʴ}>u}o^طC}\֖;Xzs9{h.ҽI^~I}_b#O/җ6aYGezk^ 3!W:mW[/֖p{}jŻv[]/5ޒ% _+l+~b$bK>׽^o]V m]ԽٳgU~=Ol5lkX7U[]oS=_|~^8kq`}yյo?2c6>gܗῳ0w`'^6w;3QTvL526-p32q&-;|gukm$:tmUglzâͬV!IB0:%kw`}eþV̱s|;A?sL3{|SrFHӋӫ_NtLN>ˆckvsmmyFEUE8{h5M?=m% 8_Xqө\_f^^`eV6=۝_c7ۅ}Cӭ4}=Z=*ꑗo؈y&n"0m+,u~1ٳvVNn[^;H9lPs{m}??,\b.Kz9>z?H-4NH s=JݷwOjJZ?8![wt,&SSUX^Ώkyǵ䵿Of7=d0;~>O)z5O}mt$V !Vz~{ӆIhEu;X,7=(V5R}1mɝiدc\>hv05Zǰ ๶2}G5 7gesQŹu>RYM>w;VWCoOSٶ kߢZJ&;###JKs^=oe_m]*jo/?_1??gѨ&l ?oJ:}.$GAǡ#p:pѽ.]Pk?c:uUtѶ1ոng`Wv%0Y89yZ-i{OsD8݈W?K@b0 t\k^WK2,m\2F]߿5>vk{-mi~#Ѹ5r986-ץw}\̌&?=Ο+:nh2YC->sMծ%@ FW|B~.60J8F<>qqC$1z/?WtӬ9mfёz,g7n&F=: kv5!{^Ys)ɲOñkC]ߢe4#K+>H^cۛ~Վ ĊDvQT2OAn=5ŖTݸqyߠ}/b_FbZe_:6܇W9kv.NP#\=77\̷Эi1潃F.wWM! i[Y츣u%$?Ż)nciߎ2ug/X^WXh snյ]BƷۊEV5;}Djw #*tx8 oyյt 'c4s?d'm De<$=礥y'ˈ)-?/:X]C2k1?cC\o۲̋{ w=F{.?S?BÀZΩS@{@!l?YD$c_<-O4*ģ=&[o`n7:>z$S]/)ZkI]X55DjщA >6Ɨ;2˞;9'WiĤSI&LoV1AV`L8~Ұplj>L >^΄胏..k*j?UV'/?k?d'Ϯp8tio" 'kZlIJYH;~rKsXLclcxǂ ,Ԅt S]Ko>>c>Nu=k6?w9cG|xL(CnnY nꪸ5?Wbg|H8 TG.#?erkNϳLJL'#^px}8=wc2/}.ee.ץ7U׋38Z$1[o~G=ֵ1z[t3`SGCEõL{ƿ'ls3wm XgMA$ jw}/0KRoTenIix$ ceX[@f;UVվ>zʿڥl<?/@Qˬ;C &%Ż=} u/դ?XL?бRSics\sHA^ΡИ:[})sKwlv-YE*CY&HЃgآ͌>R% xH81rf>'g~K2^Z=Ok93ff_/Z?yU[j֛sRȾٱKo1-%Wa~Ͳ5wøXr?E_ʑx%{1EyqЖ9Nj\℠jH}-sWES[a ^gOvL?}Z(|RSOnjt{JU(+45PH{D/Joo.?,yY68_y^w'8L _ps?#폵vݻG7c̬Qc [Ϻ=7cz.3څt{sALo};?H!>7DZe+ZuŞBxe ׍O9&G<,3=2BCnOmG.ne}Ameln;vM'&vKsm"[@{=FZm^?[_^=oe_mSĜ $l$H&#$;R[=ى^ AsG~WLQPp/a adobe:docid:photoshop:eb8d25a4-b954-11e2-8a5b-80a0b22c6a17 Adobed         ""   aX !1AQ"2aqBs5Rbr#TE634U$t%CSc&Dd!1"2AB3QRr#CbaqScs$4“ ?p p9lt/'J_o k@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@?&<o l@V8pm97 S0H9j=;8~fi\wٙfVEϘ}َ4~QYEϚCw٣ž>X.|v~a>i1f? zb?ȹH f;Y!>iq-ž>X.|4BΥN(^}N?J?|?/54                    hg n &XY @R?l*~Bʟ|_@@@@@@@@@@@@@@@@@@@@T{G+='M_:bO:!` ` &~ġ|_@@@@@@@@@@@@@@@@@@@@T{G+='M?*dՀgj` `s|J',Q|_@@@@@@@@@@@@@@@@@@@@T;G#= Sp}WO ,CP0G9>% _|_@@@@@@@@@@@@@@@@@@@@T{G#= Sp}W+C! aT2b*CP0G;>% T?i|_@@@@@@@@@@@@@@@@@@@@T{G#= Sp}WyUV[@4=kcit!hNmtDsn[K9/dͩ#S_GH+j>&PY0G;>% Z~|_@@@@@@@@@@@@@@@@@@@@T{G+='M_=x ,q(q9h% iq7kÉ`+k;lɱ!w2R_ĢpkȈ塳%{]Dӗu 3nnlNtHWiZٗaJ 1y!kl՞V:v꺊<]7oR\ @Q?Uf-)jY^J:is*1QGam~B|_@@@@b@@@@@@@@@d@@@@@@@@ISp}W_xt҆ kв,7ۺhV Jm'oVj1̅&Fy9q<P#SPaeO|_@@@X,cYcͧ㌝b2]5ۼ^ ?FlpsC*=Lt/BahmnE߫;t+yqr>!N{1~9Zڃͫݥ>EeMۋ ^_`nN;UfDTeDZbRdM.     RVxw-y+{-$qjO)MX7h&7H#֭1j甫ʝ^bg2+ oe^7ZNMJ.]T' ҡ       ?+s}yгCfkUQv<w=y":kSx6\ePP``a}C_=U[\W+otx)SkTA. ]_:04? /|_@@@@Eǫ 3;CW[*2'+] ;}ε w9'tD͂Bu{e&þn Γ|bH|ÊuvݺST67$k<73_<<6|Q 3WGnܴ\Y!VNi\ʎ]5Qu~(m+v.2vvqUQDqmJIg{GvG8kicB& BU{EX|<_\Ԏg885`H]sWuW453Ȟ7} <% ?|_@@@@Aq{GGuly)=b]bmP IކP;fm$չ 9wtO;e5UuU>e{bь=jI6slfnEwRӱBNʡMb^Nq .!|294PM=).ĺ0$4y]Kju UYz̹\{ $hALܭ~.RM] w6.ФH(Y摱CZ{UAKTOЄ(ZSwhd¤jTrXf.q.ےHO8FS*U cK$hp!TQ p>)ca#\Bc^_T^-`/{ F+"ƶ9 =DDwYv'w64zAV4QRu! - 0ƍ*6zhs.ady=0\{^vN_xjgO\cT;.,>Dzqⱳ޾Fh;\t4yfۜE T?[߸{w[TA(]ܤb<d1uJwY4Qqodܛ#8%묾cYD7Xhw﮹v(p» 7%1VݒVW )ﮘvj܎yH"6,ZJ=iQ2'd"DKNqk\5i nWwQ-|=nSow9Ҡ^MV.ne)|Am]kyqU-v[%DӨ7iM?yMaԘY9p"+&stcT\w<ޜRd{l k',SQZȇq#5:NB<;{OT"x7h(}4;:ls*U.F9i^׃+ީӄOYz0:oЊi+ݾ)Oȃ0E$& t#m\Uß~[F \ql#t`$S#Ưqg##f1q(;zoiy1]mK4:&߈Atn7*XeͼW8<,G付GR8Jću\2XpAӱAR\#|iJd+<YvԂTܶ&O}yzVs-}LdV\QMcoi컟J?q\n Y@@@@@@@Gbxqà*gUM"Gl't~oJ/7~-hdR+o }y׶>GoG66T/v硧u#Ҁ#e?ϩ(O|_@@@@*>h^R嶈|wj:$˴k>+ l U  M2޷rjz*6t)*:Ɔ{Fqݎ0;3_)ٰu~5'pD.ڵ:Z/NsXh{緾R"ߦ{U~_YaLۛ9vظ[{]IW#-v7FWƊk%?|_@@@%` 6xú;Bwdcjm1V;f#&u)Yu]W@=0gIЭ*@s{e';7j Ƥ>:J3pŢw[fXgFg{\|ƏuO\ vGM G4&]쭼CȏxUn'Qw'8jwܾXe10]l#\%WnɏvȼL2Y**ˑpM2BSrc3 {BFE͑F'./;ҵ$eU`w71S6JWA$y{_lO1cswom;wv;>[487k]+emKeYgtx>/eWJ=Ǭp/FVGS-J"Ǘjse_t{tEWr\-<x>T'vYTDO"/dnRU;]ˠ.ZTrN9;c6hܹQMboujvjW="6+wdYgKw#hk["jY_rN"wtxLmUϞ+}Zq+,L2#cOeQ+^Ν        *=Ħ1W ,Բ l[l.fgp<<]R&ZQf|;mNdG.liEn7[;==bvb&HcťYIxqw|t" s|J,O|_@@@%Ќ\O({lçw;C]="ʄZ@R2H xkiRc;v=L h Xf:d qүr#ޟ)AbN>F@TH78M^$uGFG?+l[u)Whui*F^VGٹ%}{5KWZ?XTM9iv{޴TsR4){!ͻB\~ \YБSg(ދ \IgBvf^P߸c/Y+TjcǠuVB; [d7$xU_/Oyoy;Yf3ۊ=y܌h~ʰ+0zΡS2+z-*=eׄ 'Kq"6KC@Zt7`:>nó{&&hkΉ :Z21+.#dA0'2ywґ#=gBXcq0} өZb\ !Uklt|mnl-i{k k6`{#"c۱9` Z+E 0ͪGkRo656bx8$9uw?­'-gZTGx48B9 9[`yIJvi_(?z ,       ?`[J (7NQ'cݒfZZ@ FsFT)hNOr2/~B']bt-| ?r=w;Sܖd1cmM-kO+ɧEpxu RT u\zˉ9^W+{u}C9c䳜Sx}QzBpN/-a&0\?KuBYѭ7ey1s -.fFߔ*ӫ:N%Y L0#hkGp (Ԙ X7zԂGS(paʒf8Of#/mi,}[Ȫn$_3 2.!uƺN6^:|pt %זRWoo2#Quzޭi](гl-N@@@@@@@T{G+='M_=΅=UlOA>iLIm45*Y%R$m`ᙐ㏫hkJ)H#n5#2[IN:E%I'J6FB;`-CdSQ?aej|_@@@@ 2@@|`c#mw]t -E#`,(d`X}g  P (yPX DcPd h&BT5!P-pD5P@Ё$V14dk=uT5KZXZC52@L2e@@@@@@@ISp}Wl<eM<4ocsAҕ[JYJr)/d%k5 N̕zq%"ӈ/mTE(d6E|ܼMAu㡕dSPO|_@@@@@Ҁ!(d               VzO*+`:gb3<$d|[`tn978Ɨ4t.֤ZGͦFH3|UpCFġ|_@@@@|ɾZC#A:Y'BotwvĀKZZ&2Fn8@(e|Od=dn-pجi1W,іv|kueQZ*NLJUNqAqkszK*΋/3cOg {vS}%R%ڽݪuA2        P/xcKh֊fIU8 6CԚ q.R5*PATBmB(     *=)>+bN;YY[CGNRlqD4ST }OC?|_@@@@= *}s֝u6vJzt[v 18)Fk~8Q_-ĠXoỄ9 &njj S@@X &**@P@@@@,*+NH-cizyc 2Yg: s[$ Lj1j[bBeno mŽyh@*e1)5.N P}OA?|_@@@tOyeg Jҕy9H=?/3>ztjnrСk3$ou?U&Y;9|y q'E>4;ʰ-WFV@@@ mX3SO V$ix[m]z,2B(       Z<<,pck\z-$ToĦZ  Fz@`{vk2 T%};!Աϣ#-Q/q[bSճo3O&`-͐PS.V6Y.c+'$ Ŕ+ 0}LCtgSPaeO|_@@@tOyeg NҹzxtN}GlF ϩ+chnr&l֟F֞*y$Bw6;wϜJ\Gv62.H2<1\wect{Unګg;9䨑⸠dnYF9in;jqtM"Ȏ ~}BCN]4^bf,Nkյy'PmD˗<-|D[; S#w$X,ů8h{=mѓlWQy-k }Β | I\G!Q*6xD3l^ D:B6.q;ZSUؑ|qq=*y-sG( E$\wgӮHg7tW,|/NPT{kq9N*[xWo}(ߧw)A/RDmh0 kyƴ'7 J8[ ʒ^oc#89kAP)MbQ l$ycIA{vTH2< i8f%% (J$wD[H[ OyWXWJ4\\FH-M>Yd17=%6qϼYk/"\ͬq#A#,Z$tZ'YM,ƪNOr]:Ydm_e)vs v QFg8g$[ A  ҆H'^.wx2Ϟ,HsɫFOXSs?6.{s85a !!70y R<Pz2Wp%7܃.$arTejQ P@@Gb3xq9% _|355T    ;{(8nOw>WJ}ټ%lCN|GƖMm,[Ij485ic M)WlɁ/LW[(7#> q]qϳ$ѻ곹j^7"U۸Uρ22p4[\47uuU5z79|EVea{UU4ӡpLv hue#^uegpNTNpl7Aswy\v:U ,//nMc2/qD cmq\[N_jm'oAUtFF015PۮAű#ѣz &ݽO94 =I2Z$d7U7mÉRŌw;t\#'erdaC}zE@: q ;wTr"{ia2Xz^rڣ(oRjc[r/h4I*6NLD1Lo4AfۤN,Yg{L?{_4l9oܢ:'6͖Y6CvnN@"ّ!Lu4iUocBF&x692Kv)1+ol|D-Km9d#Eƕ.&Iʊg723.AMg¥NڝiRS$,rVd;&k;kcj_'WLmzq9`CvD9n掭-ݦ*uEˊjvws3.{gt_URG' 10Mc@72 NH/$?rnNXյRL6Z5jH\bYx"Kt`ݯp(YqNÕmEAQGqEDqKۣNrmi]-^}=$xKs. .t!wƕ.#Jrߋ[c-z'y]eƑou,m㶶`dLѬyCvlqJUYM".+p 7wЫWE,%?ҳr%tW^GqjT.$k˲C[ýA%{oH6F:*E#MA  ú'3ֺ<ֺBQqnwI@ߣW]TZor5MMD֭*B?qĔ<?gAgY7YmPT7E鬽!+]̪<M͢hO%4R+ _9nSW/^K' Ws{WI-ų35yG[I~̠uZޢ(psmYϵ=7ѢS' W۞\{fMž=q qY`*Bf{}'N p5Tet+xvBv=>ꗁzffOw]qG.YxU8Oryw'IGqY`kj64*w:N· nlAY?]8mDK;eGMK#ru Z)ƌd;,|8lMw2йܧKrNr>#Ck㓉tnit|W':ŇP|%ަ__2' ZÊ3s]u'ܪtye[bШOHs?\>ԋ7No*[N_{"9r֎ ݞ}3)0}Ӭ*#Д=f*Á٤`cndK,Όvޖ]qjq{f#Zuנjo}gyzh(m2Q3¢u: :N8GTj #O;oxx z84sǼn.z#g5t0W9E*:ʠ=!{Lѕo2ENAcsE^I.(֬eJ ]U*U/4Ig@v"][ L}&*{9{xBA³?u*R  ?Y׷{eWģ,5>WWmUn*<3;K[w Rp`W L+CHW:vGv` qsJ8=qsѷJK{2U i"ԋ7~*+}K7D奞vsN}rL/p*L?L U׳dM?vΆ\Uyhq/RzO5g˵yҜw ˌIϿOE>7YʆO8GTj%>~h*'h{;XD|mo3m>Օqg0~ϊ-<r׼|*_ NEt6=%iKk#w n6{=`tE2ftPәA:Q2Tʯf.2NmL;]E3*$BnL*fP@@@H< fY_= azD`~XFhɼcl.?Gx[R{r.Re1z[96u@]l:\V;N=Ismsk/WuYkQU.3ApgoFsagC$SPacԕLv+g{imV'N*R!QwP:hReyI$P־q54 !vSG[J͖tHPo{J9î'#0>74!zHIUs..  ;{(8nKw>äs;ez6^f}LP_{ ,5>cUxݜWxVӷ{e@,JoiVo0!S{+{k =?bV*(eɡ] -.Ii0N.+\_-®ݩQ-7m⎪'5qrj^Lv,}:+;f?9C:-[KZC!@@@T{G#='M Ǒ^f}hL1i1%zW=ŬkZ\ 9h[fHq2mәg;lrKMJql=+1t[ }F rPGY|VӍ(d_jD HġՕ{Џ ^C7OKkmďU]K7(TID--%];YZԆ:{Lc,"UgA/|JeY|uf7>iw }dfh^"7c-8:3bNbd B{?izW/QoXNk? laҿZ ^ӿ{YU5Fg'\}ϴ}P71%綬KW[6M3Ehw37r׹{UlwAH{ftLxsnѦ3孭"=whpU )3f.=n3okN{Z i*ҩibؤWK{$]cIh&1%IioQeeq1Q5hPڝxHÅbzÐpǻ%Wb6+Mz%C>Ax|x;VAm!ROoT+v%>$뗔8HyrY<~5#lmvy=ԑ|q-l9XƱꎰ7yUei'Zƅ*J?i8ܱm:T71jsCay|D˷,w?])ֶQv.k#.| \k_nnڷ_{Uߥ*ﭤWLq uq{c[@a*8S+g}rC{AAFy--qmAn;Z)EGn$rCn9MFfwr*7̅JE KwGx G2R"ƒq)krU9sewgq;2ZCw^ꇕg]ƄK[Z!Y2+YswYW|xk*7ɽDEa]\Xa ,qk "e8틉Y թq5{ªƗ1Lq치dΌ n%̹H༌YmoX\XNu3-bosӍ$Z`o<{wu֫r>y +a V,on3HUԜe %癩oY7ytt?+T%-} u$R55l pԹό| {J4ґ!g1}gr[uBe[ߨwbSyOf֒-::JR9ծR| quia͛\RJ3s$tn&|LcEZb:?j4rc“O91ˍiXT@ӣ]WK6m"pR),FZ+;-a$WjQ(wxۡ:-Fcf뾦~t*ZV%﬩ZHy؟icpba' Ǚħ˓"++;冢2F"nNlQfglro+~uۓLZWD-f7KpȜSJ["kVYw,s=Y es/}eu4<+z7/[v;{W.XL{^8T*E\ESjCde@@@T{G#= Sp}¿{g1W'(MYeqPn`y.Gn}vSez72ӻZL=nBf3QvMKqpQOR34ɛqt#4֍YYMxn21IzBP2?ߩ(aג[B<%y,OcaPwzjUc`iW*|ե{OR6ЪI >cY@DkG65~ x#[i;o!reMj\ocHސ7h+jy\%C^W>B6+aT)_s>.xVsdQ]}o$&*/)#+sx; fX,ͻMq EyErieڧ3(}vIK > lxYHq4c%krѼEt:G?g SSPagА[B<%yLOcP!R'ف S U3|]JCTާqyk3ؖ=i_VCWx1:BD!cӧouE"vXY1L{uN7YuH [6;[#F ϵ\=7 mXOUH.Uۺ:9^MVuPX P*^0p w+i]ߩ)=NٸvC,dujgu\Q$J?̫ nˣ.mI |nE ŧ:2Mhyd,26 0LN`"+F+1bMmx\>*6ƝS WdYFe*(Y; H =U~{]="yNsVrYZDyj VMUn+n]Mbr|Omqoo'(!jW.;I0/?ף. f6C6M.[%xw\!_[s\WF8\m-bl,<\twuvf\6roMXbrNutU u%⯸-Ԯ^k&r4DdMZZ:]fyG{٠4l,ZH ,Ci@ʆBNYq:/ft6W#nEۖYlrV7 fl!sw4 q65`MR\bIyO@P@@Gbxq9qW,)ģ[ C!@@@T{G#= Sp}W΅j:Ak][K<`y%\v1-XZ"Fφf i4Hk K+?Z|Z\cX\o6-v%rhwWď[:|,O{"Џ ^_+v: շV.baV6yRZ@e?T,Hi?jEXǁ)[EDq}u:vlqVсW\EMǩ}7{wQgznNOn?ȑoҽ~=tz:y4fRNE ,+52fUa`LeluMz9ڏ_rMލ ZO>eSfHa "V< XLRT>r[Mg#n9 lQ2&kxQpzb bY@@@Hqà*cP62+(V/'4+0uǃ63;װ }~2v'coG)_r5/ൂV9b Ms~C[srck.PqR?ϩ('Џ ^[1IoBȍ5+N;*WICH .9Y8%G0>xJ4z~ف~UIHYsG*7,krR!tۇ֝%U'ضD?Yr:ՑGxxb| H4IN[…6VO깤hil{8V$w¿qM=\Y5ub>u8rmV={o-YIFEm?s>e9R:h=+kڭ|Х0M|o0}WIO|krԽKm '4v(BԴP)a63@'tz6x}kRv@z&V /.}o';,,UDR XzU OEcwxV\u8[TZE&    ?!_:bU:PcekENxx!c-ojXMjj]DŽdI(hLNeKYmFiUmʄdDשy ݎ-R1\DzR_}!a}vi{O+V{ZM{oC7z `GmupÍn*3gKnSɬn8N _9N΋tIH(Y8߾pmoª Zrq@Uw*G9NɬUPSVfed8%y0=yp!~[l4| +)%QI4!8{/K+Hl浐UOuG=LvŤlkIk4z4HingQ^G}3Q/Rw}ߵPE&Xp|I0ea95w?u~A*7e>F(d`Zi=d2],\`^KC|Ws69CG3nGC*e@@@@@Hp1W'a6EٲW%loi3IZJw"3$ZܸğbXWiܕs [t.[mw!VXY/gIZ dߊ)84_DȌY]HeG7>% ƚ+i뱺I$͊H*g%{M4T*PZ2.ᥭrmhJF] AR"IH购.qjPdD5c|JMYZĈ%␮{s栏RS\fS^4=ͧXS;~WRF)VҺ+W?uA~r[OKbu Ot}t,^v'^g\sÿo-T$XKƭTSGv`J5^Ϲn8tpOX;ܯk(q4myz#-\MewO9___}*u>%a+{}vi싟O+V{ZM;gD_HcIp1Gg6V]>x)wAo9&1ۡT]/5ZCU2,W&F:[m#UZkJ?bS2`!qK< `{lYxCT{iq$&O| +'쯮KG+$w d/#~.?}DFJ9ho1Hj~X Vҋ֦8$es]t#FosʵIbެTNJ1X6+sj)^!{LaV)=u@z0Yyt[Yn$\}4LCvK .BjmnY0rbLkrQ&WWcIj[.9l׀{UyQ>ɔ@@@@@T{G#= Sp}W΅ =ѩgZ%{9ݒb4$#hQ/^vjKi.i3~GY+%[O4[ kW㬶mX,`Nmc ampI:TWt n"SPaco3'z~^MAP.řjA*i24đhvQpBlFC4]%fhZ\9\%#Ԡȉ"j* MB`vUͳFCq\D@^v&E6;Αݡyksqg+q~bwq\*tl>P^v;͗n{Y?GWacc'Tg#=Hvޖ^Uc- ,@c}`|o5um4=uEVCteX2r7ėg8<_tN5Ook$#]Y\Me3\MyeKG+$w d/#~&?}D҈K 28I'ّrʱ;w{77Wp笶C7gj^7ALQ;e#PG O#*јX2@u53SçȘwuHJ9ʮ0FF@;u$(P\g6YˀHuס¹o2\ql{gBTQ,    ?Y$~ Vnӷ]"rL #_X{ ^g)sr͓rFnJQn$ ji"&x(H\6EȬ:&Ux.&$lZ\Q D<(ϨZ3:]T`q92<Lcu^%N4.{MRW[%?=fȹoܺkLqV4pVV~>QqiVUt*=ܘn_SsRe~'*D;i}3HY:he`0uvhaP\GV] [AU&[x#,xUje fPƆj;Xҩ>|JWi%7m] ^~K :H=U=Ǜ3DW ]GziƵN]Hd      hg)>+`O:gbT)Z%Q% 2B7dc5Y5d2[Ja-;ҥaL72Yh{SS%;ūcweMr*rZo\;Q~QSɥyyп8]LΓRh{ejbxl2ciN_=źdCIv2Ӕ.b禮J=oo5k n'ܽQ2o'Uי)k]^Ew*l^cJZӈRGR;CXX ..#1ݍο1rtF!oon_4=\mc4)0ĜB4*'rcF n1u:*~V>䶽`@'r̼Zq(%. AỤȄ2Aq;ǘXܓGBV'x88(+mU]ZM'CTx^_YIpƝ>NcĪz -Ec;:[}%~^D%*+?ݙnncG?qƝX-iuod$t8<8%T xEɃ@q?F)llKc p VuHirsN"Eivġv~xJ?G܍9t:G/$]/vj*4u: &xK/^Yy"~df4z^gײ9C5TSKVYYeعR䔡mվ0樑}60%`v'9mi/.9>(]YG7>% ?c,,CW{<~Lv=7jdDI,NUr!bJynz$\2US\Ҍ]3;gTFWە0qM, IG4"h m[>JpP_%[\Td ZJӀ0tW >#OM}aҾ닥<-&y9c\(ʼ$/}[PuӇΣZBMj KJrK-?,O.ڱ9O1t/r5v/{>zUWIx7.r86O-mDgKW4`W@@pY;o-Xf0FX5l;dSRܾb/1M'Xؾ(ꋛuNu^RV [eڡO2@@@@@@@bo-h#}e+y  -&u`     hg n_t 3OڲVV͝\\VVҵ6'{w4j'MĸJ6W b5:t3}}I4v/N;S#s-|GY$tXy[MibF2Ts|J !c ]<%y܇{,^EKC$&4kQ4dv;nvA]*|g m}R^IL,yi٩H nґԨ"RDXiX%!vT"FJ8{o"YF a9~ą}ۊ'6Y+fnGxi_/rݟG{Ne-ܾ*zvu[o'r1ep m5Sm_QE-ELR m#89^\SeR*EqAE@*<^аkֱtpy6i) (  >BàCJɀdY@@@@@@@aCˈ %7b+FC[^"XkQI@@@@ISp}Wl<dѷFl!$v"ї]Y 07FOWHv2F ZO-ˋmc)\؝ۄa/)oh Փ]%?[\:m]cIwЎ# /ņ5 ^nYZ>'dM"FOU+oz7Mq5iRڬIϚH**4z4J5=̨v*hE<+'"6))vxHABi]i6osTo9Q4:Jv:ҵ$%HP.59ʍhL{Zk{Ȟr+C_rKӏDuh1YZch ?RORӢMqP >@j|v{pujWAm֦W/2f)- xi#S# NZml{xsi<9|?br1[[8^7I.wo7 3E԰ݝͶOv-o>D.вگLH/cˈnJV7ww+-*'G"F;h<v(Ʈ9(i+{aJXW+Ͷ71Yn\OsKW+goIߍΓR16>!\>>Roor~sŸ$,cx?4Y^nm/4\j@4S8ImkV:F0WAݯIXbUe^No\ U/F.˕) +5ŜKsC'V'*c|r"o%wNBɓ(    hg nsO:se_7a_ro&w<#FZv>ll wb6эoqijV{/,FeE>c 7 sy}"wטӵwXT#,Oo<%ygz\_O##JsFBQm$)uGk}$cYoɔ9e|̟ptdب$M|Hy-Y[z0}u MH (]%Ƈ"%m+ZE*rs˱CZfmx2,Я8#jq{(9??+XžYmx[˝6 H,h m@ @J+3-s\Z4zJa%!ro{3ogx|nY ylqۛ;_Q] *uQ[4 W7UxF4#%$\=4-Aox 8;Fdn[tJfY=4 % BUZ*Sعq8dGwrs}?UBk.i.5MSm(5UWr5ZɖG;>% U?iڰ< ak]-$h"yzKkF|Nsy9PiA۱G:T*\ R v֕d+ѩ߲A9Eyv3(Kr2E<GU$VZ[" 3)MQw !bۋ1<-$Έ1xCud:6 696J.3F?)ZwAy WrÓ\"Q\o-%ߠ78MzrFs;zXj`.Bu=V.WDY۲f{ +ohQ\!.M $ot\ yaӂxW'q㐷p-!gXZ(; KOϸ죢;7c<2QI3 OH|Xvtݚӟjq_H. 9?q#pg{ X,2ۖאU].?n_)Q>V',&#!rSe5﹡mlK@?GSKZ9_4 s .ڕ/ģ›Ϳ4uES>{F#>Uki{;3E4@IOj +k@;Aٗ=t=HzYxUCA]t2u– [3{*!侢4qOWVq}c+w~p}Eg $CDzr.9Gqj3* Eɔd-1= яvsEjT -<Ŏ4iT;9xz錕w6%5\Ru湭 Rx2'n4,|sn<-n"fwU5̔w h@U2/QIc+pX_dYxU}E?cG_=oǨx2 p     hg)>+c^t-6UqdmsFQⓖh#h4%{K5LYf'pY2>ġ~1iowXا`{ j=s!rPu+; K'ZyFV3a+EwfkUφj7o\MNmG}rԉ_IG]UIE'ΏWuJZ{uo]\! I{#goI)QzERu9Tr7-_4#GXSsOyuĽ_YKgtjlb%=8W%}6*mm$uF9+rq=QuZ0pW='Φ!?!+UsX*HL{X|MJ ֠)*de }tZE21:t~#ħF$v\oBB;YnԢn=էyؓj.ן#)\Ώi3 ~?z筿s;ϳǁϻJhuXL S!&{?3]lƸf— 3kKR U\.h$YնO,R{LV]fǸZz;gC,Mߓ5^a{l MUscsvZO5:K8oעgvhhP;k0X b\/y7i=?jW5i_O߉|4 V?/C/k<~ Kϳ"7[@f_׸#meV,ۣхw#UU}E7`¶F~(ݜ{jOA2*zΡS2Qw}{UAm!Q\er>) w5zUKgut^mnDOMMV _Aa+ɟ象=x'6'8QŢ Iܔ"濖wçpͯf|wt]>'(Ԓ g>pȳ,*rn?I' Y?{HR;QpeU@@@@ISp}pcȯ|O;L 6r#Y$9K;xePtwaQٓuI4}$o:qpuW丮[$ǎq :ϸ#  cz-R-ZDrՠ'" s|J?!e\_C {W︹U1ob43r:=i+V.۳_czs-Y=kEWG&|ƫ/m9:fVQ{6:;wᑟ{sRschk+Kއ5;c:-ONxY1#OƱ:9n.xwUnO<ͭnj#B'|4 V?+{_is5*z4TF+~xSzà;wr,*坢{tz1Wx :5T\c{qO.* +|niǶIUu r#;1?A~7TԈݷ,Ra&^Z;VW1>%aާh-P@@@ISp¿t_p cjz&s{7 @ti .E1&l"egnEkݷcۺZYJרz2[DR9qgx{T+T5CoJ 5R?OߕPae_|_@`@y$ad9A jq34Qڗש'z7Zܩ=B_1R\ψӼ̖ijh\WKJV{?A9nG4ЀDO$A{XG>,gpXbjuZ+@WT$]1h !EBϸF|deL -vV1vϢR ]9ӌ2֝<}w;bqxʴ:E{%/3 uA r/fv|v\{/Yg2ũ}v ụִҽҦanm~}+xsHdY;\\Tk e p,pyޕ_Iw˸mp6xS6ԯw._{zwOUޅǥ 7qC6mw6i]zX/k[ycX SqlIN~.\VӋ ңRs-Jkv0|D~[p놶41$*jODz a{vk]CBZ9WvaI9Sb_YSVud{ j9VEm.]ž>D6$ogq+ՇLތjjɦu84eY LL $7VVynUbdԋD>kCIoF&^_Q`zK>AFLj>@@@ISp}¿?*|LSczV\0>jq:, ǃF1v\ X$l'D8UN]bȷ$15†4FYjC(G|_@`@@j,t v.7f넪G7'nh~SkTzn/k=EIIt3ewD!BMydJLg/,nq}HW#o%t R,BާZ bm6KYڠZn&wP7jf&ϏUG)%€YT ذ'r')Ym B<x#>e_*?1CY B{J}9T|Fې xD};7D Vu-uVשpl,iXʻYN_q͘n](z{kWkӊ{aas_JZ-rKŝn۟TbO]:^2V0$Smi^kQ*AAWqoyo1z&u :ht6%6f\-t[(|Q7f(XOafa3cFvymKi>gԗzq!}{=I|G !AhOR_c ogKkZѺF@-G#&2!iHK9eX[B묁%qˉZx#fY=yBsF~,ygԗǧYG]ȘGPk r٧nY%1>끞hOR_c K=8 <О#ӏllᨀ*_>~ \\u|G6DS _~ɲ1,,C)c{1_慟R_~U[HԗǥZwcgx˨[3yenźEcBԓ42l,H7ǧehLm趚3?j?4,1}AvTj4 ;WAAr-Mѯq5dƸ3Gm>( v፱y- W&(ZY@@@Gb37E~A <镟llJq[;K6;{L(ׯOY?M9%i1y6Ѻ%GXӖ_,ȷ !W9+̕p| RKf1C>&UvgV(?ϩ(_G|_@ud2| A1P4nD[%Gs{w˨_VK^Ӭd]e; )rSR\{6Oװ - {O\,vum ȷj>Y7yztq$k!s7R%y4UHq:!pU-zj|Zމn .JiQdsf*džrJ&qU=J9M(ږ# Ї nFr jL9rҽf, $x J(HF ]+TCFX8Z\R9N*ʎOvyNRg2B( QQD Q@QD @(     *=)>+AL-k \e[3\, pVNM97-RgM/&Q[ddpiMPweyMJ{˯B Ps|J,O|_@W1ɔmݺ |u]^d[`zs)++aP51HӺdC֎+p\A }\UmrHM|fQ)@ C,pa'-\UUvII3GFTb%r:>fv+Ѵ-˨Y^q*,;WvE/E2D[6:ԈRmQ.beLt TxYc2[YͣNh߲ͯ!ԊCGJhOu[N+uk"Һun=ط#zڽAhi j:' eFOD$jcj[,w%D2   P bdU@* TBPT BPT B(    ?"t_ul09V3`ݹ1Y؜\׍f:uʌת޵S'Y6 zȳC "R?ϩ(_?i|_@{ZUAaQxK= mǒos9_nH76W{ aA,{\$L{Cb-ntG%npH$Iæ7vZd$hнbyěӈi!߱z~i7 u4'42|IsN*.F:xjlCWKM bμOGGum+fe+O?F l'=1NcE\M(b^{cS0bNطhS{+lGtR5!9cc6u-:AXn]Q:HԧX   N!i\ sXm#nri#hcNhW7vg3#>Ɯ9$` :}XLO^8~3#ۭfWcFnБvJݲ\K3tWn CLNC'66QPk hoZհزr@$̻ :s'ǭ= g EUn|F[IЄA?A-l4.nZJGIv\[mЅ4zwI=qg:Qrsic]O7䄹\)T'uۯIX_23q [FUGqt s·+y6|[sI"}evh^2 2    ?Y2vDGmc(~IQ\9I/1wgqerkI٨oRqKpqIژ VUY}rފ^\.&,klaОX\inF7  "7S c}tբz"vɣd@@@Ŵ1I-pІѓZeim ت]M5ڮ{=囇10>7IZ+ZkW5Y孇^\o$)G.a;6ZA^G,d ܄y TW!ܲ7+h[iq#ڹ9Rә:ܣYdcE5ITyq/cz7Ϭ;r(ukꣿ6旐q?cD\IҒJgW'%O8/÷e1 EvV-ȧGM{[٦u-U5]hUdG+C7.%TYazmbWQ:dVXN"&:)j\-+in`nXzJݶZ1J%ik#^BV-1-g&N5s7wvJ[Kc#љw^A#m,0>V4xvwS+nl\9tkjjZlN;-1-yl"2_w~HեuܜjUرvV/&rYK]{?5VDKVgr[cB^\X:Cͺ"c&ZRM!K`騥V۴ ўm0r[If7S4,-Ϟ.y@@@Gb3x/psC͙YF@aPMjH: yF"DFu)2']g`zE@k, ڏHФ-B/X|_@#)O!Hj1*~銧܉;%(vC d5ܔa(15S4y҄.b%Vm$nG 'BqWY8;P9Uhv'ߩ;VǾ(iq}${.2^Thive^~!> v{ޒnKYxuMF YrF/!7w 7XMխ.'/lH9q-ml:vӒ=œl®uT ].G?Ygs5KVЫci38qBpR\-ľc;e2#uypLm$yŵ"d>޳ݑnk:)omImuhTZy{DͩZxoOyfJ9ae#E!{|ԈMIԟ^ ^0KZgș3̳g,~t5V.UjoxVX7h6j[*%\4K+k+b*ke)^ZA+&sh,XHvDS Givh4ig]۰@@@@T{G#= Sp¿{g1WP< ,/uq ݷ&n}DѳutJ5)5♲ CڕK\RuklŔkMOYٯoɷnԣ'RƸ<[imd"-2WeQn48adB)t>0)85끡4#CX߂_Ǽ|M'mZ u@61/BC^#,sC|_խ7۳cm8MAĹ(usw|4o+nݿB[q8n"w лrK%9rֶ쒒HWQIJǕNNQY1|a%L+3^$.^%]Xыp239["fs4zHvNc2{yO(q}\6Ӫpd/Xwn$L `5V҃h^7guiv ɈsM6 kDGʻN7Xf/5pR6MOO^#Ð:2ý]4- {nI|kpoO>0"pmSY0sU] \#f%EpM; kFՈ\w7^Kd3~٬!=e̬;y[4[-GL8 +[pi{D.Sk5]Yƃ+ՏS,lnu;km.@@@Gb3;Epb*yV@OS+BB`#oN(-N򓦄y6Wฒ9'=8ˢm][Z"#⋲d`2?ϩ('|_@@ K+`Gt>a*>Er4;ػʥbJ7da" &IE4z4rq و#i j*TY$F6+5*9QTs:ˉ+J !I&{MXwkݵ'#hl:F[Z؎MW3Q^IxѬ*U/Y1oG]XHȒq1%Ŏ1d )QF?a6gSwԄUލUI*-P@@@@@@@@@@@@Gbxqà*bxi-J㷊K{W]c%5}KrzXk%ڝ27 n:G< -һ7-%J:XZJR!r7dnkcmc0tZڴs[ƌ#L}OC?|_@@ XS16P?S :En2֩$\H܏ȏ#aɛP=Fp6[E+SD|;Sb%.+-*3u\ъ-vheQeO1sHVr.5a8h&UVKy6A HSQ!E߸亵{<ޤ1K? ]`mkSl=sCHzx b4 N4gɠ@@@@@@@@@@@@@T{G+='M_=jyЀw'기,kC^n}5H>-."?d&i\wK{fD466m֠㸯5FdX|_@@ f(2|M '<ZN*JquG>}O0+d6ObC!Ԡ4:I5ţ=} 4s64(hxݫYYVГR#_IEU& ]R0aq)V ?^Bڧ]t{_I/6(c=]&sqWIɖVD1Z$ԨYx>J:xy]OܣRS3q ;C*&7*܂P@@@@@@@@@@@Qج%7+s}]O; X|W6.c5pj$ٽ(p7,7&`t9K/YCI>Cj6n#1J9ISOPqy֦a# /|_@@@S_ZVhukvuD*>ɫb3=MȟF#t9=pNRGXHbzj.GBvඅZa^OBOpVy]rIjʇYhdt=u!7NahƊhU,1-U"K yeLHX0<,ܑezM)wq%K+Llf$uؕSҳE9B2[]WI#P@@@@@@@@@@@Qج%3 +AU,ik$sZ|x6OAamݏܺ9/42FCۗ2&Ff~Z>WpD=`o.~-u}߃"Yl"?ϩ('|_@@@@Egl=nԹǥU7ƫӗUn*_34Mj}7AXfمQq3#~1z DYX9ClY=󡩁d~vʰɽji 9ͲCDOUvcքMyU聯jUaZrW]!j>۪3jXBF9n ];(k'M|e-ъ'C\GrZLv7CP(: v#oNXݮu[\Ci!])ҹ1ne$ |WHw=dX޶mh^GiCY]q/mj[1lo;VK%Z}䱂KJJG@]gZMm$n=KK+v9@ham>6c ֆѵn.Coc?)i< 'BpXfȤqTa?5 G\Mkq,#k>r.ָ7f 4ٙmMIT/] 2  0 2(m?b!@@a@e(@a@e@bP@@Qج%7E~Av+  l[Tڴ ~%uchUgrHF壄?P;guîaREVd7"׉5kл.)sH*:pqM  0<02ķ-Z <GC}\Fs^@m,r78؜MիZ;W9Tgr71cM5QL@X,FJTJKa|uy\ds#?) ($͈``KvH؀>)̼-y0!S{u-٨s|,1v{|P o U؀P     *=)>+AJ<ز`jĶ+$[:ݶϼkJvT6︭MWд)o15 F`itqhLhҽF/4G9>%_?|_@@@@|?HQtLVh+ N,ghʅzFHk77#FIKF5%(liRhwDbh$\``QzK2u!ۣ1Ǎ\yE=]&{Ke7uwVz:ɥһjq7-wvN3;JަR/yDercI|.v|Uv,6e.p7F3AO|(csđi)H7l%B̋όv kCK%qq(fH_J4ڹWTHY~ġ|_@@@@|!}aC1=~⪍l-([ND"ԑw*S$@ tjZSX'epw xZ]JVnhe&7[%hI.@E^dxLbc5J6x<@zy VvLmP9(28]iϔ//sT[3{xHc;heBѯs Z^_//IN[h"g@NH    *=)^_:bU]#dP@{d+'6,#'V8ۡh:BgXz,e@a@ "³7LM_4xE5. hmN D  0 !_)6O0[Ocr ~A=XbP    ?1W' &E67ømNBy䨙W$آf=63g1Kx֍UK[)[\9Vz'Q }e%G#wpsG◁Pk9]X?ϩ(?|_@@@@|aR>9*5⻭jJ76iU|oPҸZCFғ&261ͣj"҄zIX7VJ*t*Ɖ,ípo j ?RN9JwTXvfTPEzQ!NjnxLvPmEbڒFȡ@q?BU¥>8s4]5"SGuZV3)ZO(k g)F[@@P@@@((    *=)>+b|O:w_'qa)Z\%JV@wK{Q_{WQ.͘VL/Y!lW6DO\Zge+ ~>ۗ X@|2=*rT BݣB?ϩ(_'|_@@@@a`y\Eث2meJV&#J:M2{(Woj5ս2/J[7,]‹W#^'nBHB[&W .ʞ#ByS䊽yHCحh_yXAQ^&n[Ď|Ff%FA5 R=m|(>\QM],>b|km=^<{7O" NM3tlEt~+dqbZ         Fz@1W' &F~ČRRXn'Y#tc*.&$I6Dl %c{A]Y!cal֝b3+N500OCO|_@@@@ 7-CBbj2[XES;)lyJ\%bwD{۫\?~r.[awg܍kh謫j&gڦa} O|_@@@@ foXL*q64{tǚ[VmV۴;69fb֯`q+1- ̈́nYpS2ɒǔ.3g&ͣLy"lк7im.X֯' U,\RgyF-7RqUI22%TOEw6).Zj[eP8;bxP}iiTy]:}Ҥ6VETм;JR%[^/۵Flxn6G(\-sb VΆۄWjM(ZHh֔$ٹIf'hs\G8zR,1?XI E &doTwuJ7R{@\Ee v\ *C'"fTh-7RF>kTEkM)R4Ṣ=naO(Q%U( gr$n4=u=˩ez$}/K;< snxDtOCW5nBwi9alt(ݦ݇X9y@ܱч /WI(yfqtk*~49x,k@s-(`@* i&*:xפ,6.F!Y.#h-4޾&%fGj֫т֢N!Ʊ#QQ.wqU\hؓ!2u&:vQs΃6qrn{ř)#"4n>rW=86*T$:=DV޶-FFy%ZE{KC^ŒwU{ (r;rפ;X2"0<'[.UXFIUlle@@Q،%7D +͙Y3劭jmT/ [#CT7eMɑ(6qNQ[+=SkF5s,e&3䗓!Xe7[`]l+9]m()bBu PG9>% ?|_@@@@ `!RwYtyJEkᢵH |)y]捐UXYlo.)Sۏm4rJLՖ([!.4Ҳ;ԥq5\0}=T_`ެvĜLÎi.ބ Rfn21x8g#0W^Ή}ΥňQjG_{JЖCۺlCdy҈nmnrjmhж"eN[^KאID޷F\_[2fcU6(oYv^ۦ7K=]TkУioyg8{w*:aNdKxfPU细&"{ٚۈtv_>Nw5Vڻ-O@њ:ĕ.ȷZ^uO#or5[>_g2péXF]_#"'ur=[KInnlᛊXy:QIoYݽ4tjentn[<~sQ0PVFtZ^KZ2bߌ/ey|@q#}qsijosCN֦҅ţ#f㌜WT썤п-irq>5e)-ԑ䦕Qeim4\'JGs0/$ITdٸReї$/%7W2Z;I'A\䫼VxF`۸}~Jg)ڕ%NoۿE@ZJiO<49luMn>Jvܮs[$nh{]FWo1XiLf.hZ)rQ2Wuā .$|ЇՒ =uQvš'n>qg&E2XZ\> s iXvtEF9l"ɷc[táUZ\ڞxjX:@@@ISp}Wl VLCȲmWK1vd}PH.9EvIvޓL2Rת eȓdwxЧ^^j;9d7> rHqˊGiGG~ّPY2G7>%G|_@@@@ (+x |2H \ubJГIɊQ;aiUSP |2:vJl;Xɗ4gI[ = gl 9Ά5NUC?W;GUԉͩhVx-F\c Ŵf8=΅FNy%qդٴb5CZtMkcj aXց7>O؜A<(Lt[ۻʺ: zW6.MWt K6nt˰Bru wN`!͕)U<8L%ӣ: ]FzK|*H1 9Bi#MEͥL4da]0Fהp|?FbV>NY>o %M֦Ç5?!_W'T읡vv6_j%n7pp=k'e\#'o:vTe^DZvOudetS3GӍ7PRrV֦pŅﶶ܁qo,25wz/ %*㉒甲ก,W#i=%„;TV87Į,]RTI]b8gnvF2kk3TZ=:IqQZ1+,| ɨV"7tlY7L"Jf4/2Pui[ZlQ72Z@[_<v]2 Ϊ5oShSҦ#Om|!"H9!waV& v6;_]P.؄sRcoDCz@(Rv2ѕH/D6k2?M SsfMtU(jO06[gNO,-f>6j^wh{3ɎzݢgoGi3rKkNebeǨvhY3M-ݿu3I`j(Wr,%Y׶oZǝ;R.cKC8c!YkM9wͯj|鴿Y/Xq:ϝM*4tеl[2 Fz@9W'AdygS/6+1jQn+&ҵnwWu2+(S$v"^eNk+iWOe}OB?|_@@@@@+ زaԮ~ݟ?H65Jr=_j Su(AQ&#qjx4Jd5{lQ[Pcǵ4sMKU38PlG4}<\-p2y KkIc<ȺԕnTj"yWDǣI{htд5Z"Fi }5kG4o&j©37y;mXgTAԍWCg-3u< D_O=~?ܽxQЎB$k[?9޸`.='vFVץqM{~r ̒8wTyihU&-$nW!RYۋ?Zs\Gnt4Y}֯lunV٧'\Tg,uaSsxyiRJfT ֶV HUBO+=\ܖ L^ؚN=V%K6F\2 'fUEF-u]f[+] ASZu&nYChWQqel3@i&ƛ7q9mm#sH<׺y&xw, Ƞ]&ۺk eqp<+bO8@ٓx,R(],J*t(s.2&Brn!/[ۚӝ5il]2G7>%?|_@@@@@@40AAR;1#o蝪e(V.C-8+{At@aUr*[>(/rԶ\fM o}q-UWn[5ܭE7(=Ť%R=, jR'Si:y{Fa4Ʈ7'W΀jMBtk 8|N .Q)qu(WV[d{=-QF-:}iVK/ދ)p}{JSRgZv+tr'h{ dSkc T=[ֵGUO2(uhZjI/7HkQª~f2t%DӦ5*8ؾ-fl:Xy{7I8˷\C0xѱwebtInɴ<071F./!|4S-O,QcpWTy.c:dEdLǍD|W]yVaC0mΊ;PR"^{ny7 k Y_RToɲӢ ,s>#tƍU|LZ| Y`W_s;Ren]zg029^ n_٘3ėn^r&]6^%I5Sųs'huRijn/61Ar ʒ0VݳxtۥPR>KUk[@w6Fkv_l^զDJE3F-:A :Gh]kFAdqYNh!K]®pIqkKgUGoyV?\ &;&lUu?vra(\rȍY8İjBnazv_HʰtޮM.oŖm47E2}U ,@t6_)eVgoR4m}:w0^F#wZ}jkBG۸}C-T+(:IE1`QFPpQ{Z(u>H$lu5,UQv$XLw4Fo$*,jNSZu,bφ::Ժq6nIM:(6jfyӰ7c4xq֛y4\W Wd[eۺ'7XTs^$8[qJ>Xַ|QBVKѓ}u2ZwjDڕ<Бm15ƌȍ`ƺ[=r3;%{F](g55Ck׍ u:Uܺo,${fqC!0ݢB<tByZ&wrv7]0G-(O%mavm{ d5NWX=rݺV%X[4r8=lB ",dnEzuhAqt8hc #BIdZu8-en74I4ì55FlFk >rkbr-IoA7јnۿ ثbҖ>c{U:A0ro zIXVc=zn#-o制9 4qc5kC7,ƵE&0r:Fm 7sZg[9N/lsXq8oUtza =Kk_5x2^I;i=[΂jqqc?JLlWV3Z.jU:ܵtOXcn F3wyYb+4IX"<`OtOjStkln#i2 eWqc5ƟiuC+ ?Y-tRh:.RxN5E [sƢQ}4pܔiV9۞{ռ#:CKȻ#nr'Ȑoj8N;r. 3$_V5);:oq{x[ˆAaZiWKm$˴w6wae]JIV cۊ|@Im4SZqsZ_uѥsFW;R灶ec$љa]dkwumng{|D;yeRF]lI6TƕU]ˍ|АC\]АUO=ǤX6vF>e?zKMQRZڽw uFC濝.Df>z0ypܨN;\b{CpthñRحbK9]mؠ+W:7 *k^l ?>NMi7#+܅"F *hD̦=&XZ.yX-VYb;{"h:7xrì9[Ÿ́ۋS9.o_bO8|R˒)VU4k\C r.w]ͣ LF6zVOYm |(GnnsUȷy@q}o\1u~ݍWv^U+m,!noZD ?Y? }9mv(xٮKlG.mȥYV\ H JVQ<-#᭜Rzejdz(m i]Dlk5Gst#\nGsi4du/7t^eu^A[эamj=+[ƽ7++S^nBԿ Kt$Mg 9*F_)dd@,hL'^֊|-nZw:۴US;r-]1'#;Sxv)yi Ag*Zol&DWCd}^oO2NGJp=$;9jˌrw/”Q:JԸz(ݲ0Qb1)Kqɀ{9T9J=_<'C#Lw6-ev۵<ɭ tNMTiVY[c ֊;BZd9<,B{CM'i^[ѝB#qUo0_2ALWэzq>+_#SS&FuN{Ö6Uie')jO >@@Q،M_s{y&Bɓ & `s|J!e|_@@@@@@#Cm\nSFS)QbZ hK*4ߟE%07X*|R9a,;V홽[R95.d,evZUԜᜈWy?RjEn}r.M ٱNE8YL/5i6R04slEOvm/ͼ"}C[3wk|71Faq~M$rj'r}fE4N;e%FXY x 4*'bU^ԍAAsH[yW& uU1ܮYL|Mya/fm.'XmZ]AZ]II2ᵯ7XQ'{l"k uV#] l:5sv)ZWl~m&&9Vf6r8alUa+g̋[d 3D0G;{qFj߳+،RH:qTN۩6h\ZZzXU&L.ְ̨=!Z PۡJVB6LNSκHzӏ<|֙#&pp0Rc'iEOzӨB JT ȹ6AUW%c&n%| &=ik%7/9dO{o[^G::ºTw|$YlK:*UXck*>Rbisv썠e$g>sEna'ivv]`p>&\*Tkamb'o4N8 4 (7qs:$/ʬlB $i9Z'qchڶą!zh[0r7^Gv#{veKErqn$kiZ7a^,~"qg~ke1(\u&HƽcZᨂ>L@@T{G#= Sp}W+C!d@Cd0G7>% _|_@@@@@@ıFv\M*26&_&+rN2[ `zt6k\nҥ^dig`}twʃR5nC;؝M9̒;BI2Pa2#t6cluD":Ԃ N(2(G`K4zA?W܆S^SOk&Sq8)1{UNڔ˛w> :l'Q%qN)ȭ8+eۯ[Bc^D>^(qvIty.b/Rf1~pZ)6Rqt}&էZV 8ooW&ԪfU{A9 Wui(W $n==1(pg]4m_ZЍJ]yX] :Ʀ]Jwpu\)ǁWg,X֊;Esc*^S't$HZ?1豯h;!ݘ ""(ΰ ZpzsIuwIhV7F)/7Q+a_YW1S^Z _^شݣC#g-xG}q#EFΛWtxg :6$+Wo |^E"^;z>Վl߅\{nנ;6wM2˖Pv§q~]&XAr:ΐ1˝Zߞ;ujKY1z}9v0?$qJ;YI>DtR(o3>r 8iڣJ2D+)l2h%|_@@@@@@P@x[vAV ԧ1ZuK \#Rv6FfvњӒgs :ywꉶуk2vW=yMktzWC&na[B(}^_(Xaܶhxnt`(+X_UtWxk=yQg;_mҜ:G5-GFg^xI񆢥c(Ft5]#M|.'ɰ-;:'^(pACM _frO w47Oi=:9p/> cd>qN|p2]HYfcC7@hl4> Y@Cb3xps}y)`o|J,Q|_@@@@@@@ ng it7 rOqs$JɕV,iu~&sd5'bi݅C>qߍi*mDȇ4Em$XE4<:'iMe%̋8gu.ҧBef#̺I\@(M.r}Ɔ0wܚ-w|] e٣##om$|/N IƌbS5ڵDR0|w69s B3G{|nG4JxKtL@*fƦ)oqF9E'ouVs:kțVBHvC3Oko>b"./Tn]\OCҸ&l4H~h!]N*=kBUr[gvݚ*jÅIdܺS(ρo`ܴzI+|WZw58l+KC**Y2_Ԟ&eZһڰs[eV.C+WE] F ><7l3VQUݜn*oX[vQ{26oCjV:%S;,Ep{G]-=g2KQ;:5g 5 9KzAz4[s= *YڝVdGl; l\;!W+NyCu$Cus6w=q [M֘n#kzu5H*\ /O vtQ^N^{Ըb bFzܯ-̙H5 cCZ5(6#   *{Ħ OL0A ġ~|_@@@@@@@O%ۘguAi\[STg[Wem & x69TJ۶\O{G:{RV,6J H^%PBdМw*L_ٶGtۡXZQ2zrmݣV"#_Ž4^YI^[Z?[8r'h]##8kYQ񆥼U85'fYH ]M%2APJ&e5Gx9]ЃKz-xhsNK~GFϏ',>%22/FZےAOmmn|[*wo㥇[Wߛ+rt均o7}yG$چ"ͩ󕐅T?q~8;Wr3cN{i4NA:۩(:zւc9FJ7ok^?[J7jSJNqn.e2ܸj-i]stWJ{%umo;V7sob\[Iy`#t{rMn`oE+ VzO"AUxd CSQ?aeO|_@@@@@@@@ayW)[86WQF'ǹ-ƶv?z\:'Vn1|5M:*d"l/i "̵!fXR Zuw6L>'q޳_}DoZ'; ׃ShɦX޲QLiWI3LyFi.#Mj`TEf ۴'y⹵CtJ٨Z×F$$\-:wTVM/U'{H.5o EvKGm N:{ϞBt4I[IV#?3+4ҵ$'ۨ(Cn N ~GEnV49.TqjĢsiǕŵФ:A#7ڷyWV5GHw^9eht^>t-5$ӻan?*jۑڙ">[0|8#fr"Bϳ2QtxWFtunDa&@mApisuX˔*m[f c'[͡ jҟxVVEjۄ;MZư"7tp[E;֬۵%^mA͑ ff[$𪃕ۛ/$'}MՉUYvӁg'k%Ubىጻ팉5ţmT#ᡵ-y!o-qL-$I $9M䎌қ3QkDl;+&swbx2n'\9ckwİf2)E ! * G*(VzO"AUdmX ,/Y~|_@@@@@@@@#=v"I2Jwp>T7ICab^w-v)9,pp:P_=ih2E#4= de.i4kԫ7 %; J5TSۛ9NK+06t*Ŧz{qG%ވi\:Jm*6KcziJúM4,FD\8l;W *.Gc$%~3FѳMa4=dm5H5÷w1% k^I ;VmJ:y%Sc/c-qOD5JZ;Kd< 髐 2'vFkF؆wE9[J '$z7wZmM|2S`h;].5^YL͘h{Kƶ-<lvG}m('d ~(>8ncۼ T\.'j5p`p6SSSlߙݻ/^˾e3E4i\&s\v@ss.FfN${uqZ.y7% _|_@@@@@@@@ !{hn#1#T-en.EC-,vع7tJs^G) U3D'i|}‘q.xl2vu]HȰK~#zɕ M{˅PȪ"XBҢбkS2PL[-x)D6ry= hy˺A̸qA86;XmJЯq}v@qI݉ cZ#P4g1ﵑo89{ڭ]G견^`mZ!) nT+%qؕ"+Y%oyFn>]>-n<-wиJ^Ƅ$JIK◖emˎ\[͹-!BK6f_!HWT|֢ a,")!| uwt.OZ] 1=aFoF8vVGZ<ƣ(v奪OryRYź@?{p.Ҿⱅ)s8+7:cz 2B!I!9%~8-V&j97S=cY):P&ӻi3rIY⧼KPy}ήts_ "Mr|?&l!C7~fyziBdqNYpmFѭh5WlhIP56VOV*R6hX2  hg)>_s%}yЀ!2`, >ġ~|_@@@@@@@@@3MpI۹(:Zo8J`kws>Qi[y>+LrrlbP&J{ >Q-IU-yYZzU[[ύÝ+m9B])ii#@-Xx3rRV{u9/O"HƜE[#~[>_"KˌK /ojۖ0Ӣ*wʌ}/7*犺Nĭxx&C9,w\| ߟً\^B~RH#_)5$kݦpZJS6f⌛ٽh"gɠ+"ڱf:n'ϼn5=7ZG[Ṳ;kw7bZ\#;iWH^~)5%DLJGy~?nQfkC8qK#51{]ҴM։Coo1 o?LkO}tYP;̞7oq?eGѣ]tBkdD .@troE{^9"{Iv[[rf?DՓ'{c :4Ve+o'\hJsܕTOiX=McoQGXz3q5m)FSX)Qmokm &:@fUT6   *=)>+AJXZ?2C-%sr7aW@;ZDE=5x3hv&Sd[iOtCk[)k[;zVB߇SiRf2iR6*&h.6@0@@@Gb77+AUx &Bɂ>SPai~|_@@@@@@@@@@@( kKy&Xj3E4#uwZ%Yλm2uٽ[v5% ?|_@@@@@@@@@@@ 04 @**JPɕ+      *=Ħs}y!,l` `s|J,Q|_@@@@@@@@@@@@@@@@@@@@T{G+='M_:cȯO8 42(@(`,>ġ}|_@@@@@@@@@@@@@@@@@@@@T{G#= Sp}WU_xtx}d(U?!{d55io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€}a(io€wi.9yjo¦~zn4"¯7&{kb8|+5_/³UEb6b•_Yg>dKg߅f(:ȏFySrhu]Ӫj)Zw:ԳӥXK='w@@@@@@@@@@@@@@@@@@@ ##[.9_[,K"SWa̓ , eq2|[xendstream endobj 25812 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 252 311.399994]>> stream xOk0 $U;z; 7vvl_NڹnFa?~2؝tҫ] x3t(l&RȖ"|慭m?_C@<{x~18җAXBD ٶڪSa5͟Pa]؞'nwp! fkxlWp-XWdtZF Z+G1VѭncJRoOppf zxendstream endobj 25813 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 252 311.399994]>> stream xeQ @ Dsj[!~+@*(*ŊH2|Lxz?[Θ=VGB^K3빵u`GpU"B!ip3D4]ݲSLI o%X,endstream endobj 25814 0 obj <> stream q /X1 Do Q q endstream endobj 25815 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 25816 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 25817 0 obj <> stream H[oF+Q R{#iq Lv (2m+.\}g ə#!079Ÿ(GOD$޼99; eMu+:Jy h?t(,QL/['YpɑRdI"ᄃ1E"4 3mL*-wq>)lԻ(w50qiZrQ~_+ϧ2LTuɮw =;}PBF= މq,,pIKx.g1(##M yN5!}B'O)q2S1q$ -fbR5OQXI-:1a,h <+84lWH<+ 4;M7bP'ƶbw]EwrX8]ȶ^rf-Tο2Xldd=tzX]mI~~6(y~'6fu5untRQ(OPP)S RuLaZ^Uu&טEXVUǾ"wKߌ˲䫲X|X.hY~Mxr=LdU2遻Q](ϳu2$ywy9yXLZ"T݃U)B5o}+(ok7q.^L7+whՑ M5Z_nnzG\ʔ8Lhbx][oے$?|#N'ɞ~\䝯I#VJn&=ʵ hT=ЗLC@vp~PܥݼVZ xIջ@UuIVU0rꪚ$0wTѭk;ITW?%#~7tl#TIOt .<JA`hКdS1Qq w$K!/m -g{np7FIp /ݦ0Dԟ Kږ^]I4pp|6~8\^󿏳A+BWu*|{<u~}CZ_"_"wendstream endobj 25818 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 25819 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 25820 0 obj <> endobj 25821 0 obj <> endobj 25822 0 obj <> endobj 25823 0 obj <> endobj 25824 0 obj <> endobj 25825 0 obj <> stream q /X1 Do Q q endstream endobj 25826 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 25827 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 25828 0 obj <> stream HWko_1| hy؋&ب(P;h(Hś^>d,GgŧЪ//~yիWo޽ ~t)(1*Ml:?U.ЪRůhovve{P?6 ,jVu U*3aju,7gi?Үëj[g_NLfI#o@rđz^FF=(_o rDƃns SN992ŐŇ,! ,]knb2{a2Vpo{+̽; s{{g}'O)s S>ܧ}&ϘLp1>gs=ˬBK]`R Y=ŀ%b),bRK1d YjZ!KpRkR XBj),=KRK1d YjZKH-Ő%g5Bj),=KRK1` ,FH-Ő%g5Bj) Z!R Y=ŐS XBj),=KRK1d YjZKH-Ő%gBj),=KRK1` ,VH-Ő%gBj),!C ,VH-vRK1dqZ!{KH-Ő%guBj),=KRK1` ,NH-Ő%guBj),!C ,NH-ŀ%bܳ:!C .Bj),bRK1dqCwGy;rYSZ-pc`x6JTj Begߐ)O|B|8Tm9PNMGľ:˶}u=Qܥ:+BUaڲV^Cd[ݨv3zHMDrX0`)}=X* D0 }GVqUǺjUy ]t=O^ Pƹ(]b_,թQY%g$bM?qCSpS 3();-P~oFvΑ99{A4My8ɔkuUwAתTZ}` %|i6D|½scT<#K"lp8Y?t|'<(q,KUfDqZ4eQ5OY|)ړkOmؔ f,n6O8ߊq#;}~ mXƦI]N ì.eCH4|I 'ɴqWl<b|r,h:d=Z/ ĻUI%Skv{ű)溳b[4M&Y7:&c>F)\3,l*ݾmF۪cU5[FDz,W'X=`pPjW gPw7Xi/,F݄nRi;+yI7"i>G+uG  }o".ubS~g-ƿ{>jBC{w[ַ׼Əqzd 7uSXf{<N)#ן>]Ӈ,vNPdd&|(ܗ ߼\ ٔh 5'ru.R9D0^Lj5:!i%!(4u=|P;wӻB\aؑ e)D~6|#j'~n%EhKLt>8?@b,O&% _4>rOxS,~O9ѸB 'L; pճք/>  k|eU3O;{sLae;;x?uUO,87Vk7!`pzԸv\o) \ \P18ŤCQwGpНK:S>'G7=7:g=m ΍CV.rcZ^L Zi%V´A+aZ2TJV&heL+2 Z9jkQ Y\b҂fZZLZiAսbX),AսbX),AսbX),AսbX[),E1` uO1d ZPC uO1d ZPC uO1d ZPC uO1d ZPC uO1d ZPCע-VN{!Kbu-VN{!Kbu-VN{!Kbu-VN{!Kbu-V^{!kQ XBS Y\+ukSmKuބ«MyKo6d J 26A P զceHr2^%)MЕÏ#Ygyu-uVՂ .t6[,gx}8?/BM u_E }}Z-~ wWE,D ٯ\y$uC8B^2ffXE 沌It d SeJ窊P`e+#XYK,Id Vr` XE* VJU`U"XfMt5J}UJ VR,Nx+='|k.E\(U=P{\sW,B XqͅR_ {\sW,B XqͅR_ *`5J}U"|k.E\(U=P{\sW,B¬=P{\sW,B XqͅR_ *`5J}U"|k.E\(U=P{\sWa$|k.E\(>鳰4ey\Z/˹SLRNaxK{~̌l$8^McN@V;fD6ÞU_yV&0I(zwm}k/l]zY}:/znî٩[eԾt!65Rg>ir\T)R$! z ua3e!ェ)Tسg!M{ige޼qg6SE\ל Ʊ8ر5 ȹq)$!4ގAꕙ|y /Ar:ṈQ86{5i26=vjv޶Ӛe f!,)#5k9xM?3XyPxqvݏYT}_m[alU=([孾؆1\ۓ۫b%D;Fm)"yZE^se 6轠yFhF[f-6 Ȭ@7OX-&$֬oƙKNYB {\d, x!{k1K ce7^=Ws7)+D&|zUǡvgG>p~ed}2H\t8՞=yuGBӞm{-GsiwW(f/WzZEv4<6+eϖ??0Mc?luoF/7 ߿endstream endobj 25829 0 obj <>/P 496 0 R/Type/Annot/A 25832 0 R/Subtype/Link/Rect[93.6001968 663.229004 222.936005 682.908997]/Border[0 0 0]/H/N>> endobj 25830 0 obj <>/P 496 0 R/Type/Annot/A 25831 0 R/Subtype/Link/Rect[93.6003036 462.549988 208.848007 482.229004]/Border[0 0 0]/H/N>> endobj 25831 0 obj <> endobj 25832 0 obj <> endobj 25833 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 25834 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 25835 0 obj <> endobj 25836 0 obj <> endobj 25837 0 obj <> stream q /X1 Do Q q endstream endobj 25838 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 25839 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 25840 0 obj <> stream HWm۸__F+Ib&w ru ڲW-$9w7qbrg<3-{oX^}:3*b:a,XP VYDlpV|ŷububuv'ض n͒&0$bؓ%Qʖ`Su B|/6߳BG7Y _] \妪@*>/M$ E"N۾~m^nqeDz^@}g0cwc|AIm6@q͢49c^x^x%^z%^z%^z^y^y5^{5^{5^{c}챏 >!'`x}O >%ا{C7{C4 b>j͢|(BfQ>{l(=P-YS TmET+bbE= BfQ{OP-P-YS TmET+bbE= BfQ{OP-I,gm"Tm6cbE=JBfQ{OP-P-YS$TmET+ bbE=JBfQ{OP-P-YS$TmET+ b>Pj͢|(BfQ>{l(=P-YS"TmETbbE=*BfQ{OP-P-YS"TmETbbE=*BfQ{OP-M,gm"Tm6ٛX͖}p nK8[n|1ac>X(W:g/eѴ+KF$GQlۺ:OuY/ڍ% Sw[mH/ <:E#9N0sm}qtp(OW)|qhCM#ouټ`q׬ڰx8}^Y&6훆#)B$LX !0&į -]'ZI%G>uϱ>sX]A8Rae{m[l=*7XUٍ~HFFTղ~_<{sg+}fYfw.T;-v唻W*,(΅Ue Q(Ӆ%:RD 444(DaSe5<ݖc–RŘޢ,\=f5{v.FuȤHC#LB1G9N859Tir1pi$I캜o_J4*m>>g-*FA/iQ8-%wH .{UG -qŶ}G٥9ep>*a2Æ]=OE7s7U[U{BaV)bP6G)S͍C ߅j$e{Sۏ!;VJ@cf6_eC''ܡ _<Z 7p2OL!58ESVw T&5)LX%6?Lc`"dg0([˷ e!)54,^#> gv Tv?d6ÂN桔0aͷn7lc=nMUHU-w:Hi~!}}VU~eg{u+'dݏC5l/n7V?8a:ЩOGlf|߅iw1D[ݐSPK-si+Olr;ȶO3r" u*p:9B˻aLFEc@Ifs%s)ɶ[`](#_du=ᬞ JԨFp)~/vv)iU(e  ' q*D aSſhW5$;Rr't/t/F2G1dvc.Tu=I|D͛̀F.mj$|p(Zzѕ]降@brv-%AN #{NA/Gׄ) >װ~av}y0Q3Fݻ0h2׺㨚Gu M]&Nt nXvïa]lKh;:{_TQ0aO}F)Ec>v5'V8mgӎ]ޮS:ĆΐԛiSu.fI~Z^=װZ!~֣IBa%cvowFX0>Wm}X#XO&sy̻Zﮫl70.HLFfNF[1>OWC>3ҁo s ';,GlOσZWzS5%o} d)~K@aC] a #Iؕ}XF((j7͋"#*hs^Ca*8k .u?Ib. 嬪2.ݚy tOrR].hm ~7܌f\s#LrN!ec>1;XJhN ~ʘ8v=AcC9piulrHS^-;nPt\OBW}$Ei;-` Kjˎ3+R2)SʤL=b3~7<0 ҄zBI@i.8g`qN'6Ϲ /jk*UdoBѕ{~hoXƸSs=6"N0!vA"/h  TS3\f&o VPX}OR f2e1[S{"(OF׈4ߥ"~Q'tn>("c`}5R\]Z,* =.-Jɫ2lyx?)['oHUr&T`֧=Η/[;Waԇ}F/@3m5Jܯ|Yf3jeC3|xm k@@L-w-N"J3ٻU(wc2N8b/}~1U<竆&n%0M,s%b#&> $%Øc烴t|0EH'8 <>"@N fÃm 䗾;9j#ܴj{0 MB f̤KH~K*"Li`As }-f@qsipLã}_ dFnj,td]U5x$H[c0ܡVnEN_+ ƿ>/P 667 0 R/Type/Annot/A 25842 0 R/Subtype/Link/Rect[93.6000977 175.209 290.18399 194.889008]/Border[0 0 0]/H/N>> endobj 25842 0 obj <> endobj 25843 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 25844 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 25845 0 obj <> endobj 25846 0 obj <> endobj 25847 0 obj <> endobj 25848 0 obj <> endobj 25849 0 obj <> stream q /X1 Do Q q endstream endobj 25850 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 25851 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 25852 0 obj <> stream HWmoܸ_A_a6kR\Z8A ^崒OzEJ+y c-j|83yȋz˗~xqEyNPDg&Z~#M}IE翔u1TnP]%]= }j=Opr0&IYF6(V]m>0q)q}gpGl|Ů'WϤH,~/y=ciM6[2՜Syho6 dzn#I9O@3ޑH˄ 3PG\<3|A6@q ا4`"Ӏ}> <`#rD D͠B Pj}A}A}6Bj}A! D Pj}A! D͠jZ(D͠jZfP@QoZfP@Qo3(}Zַ"ַT޷ Qo3o3oZfP@Qo3(}Zַ Qo3(}Zַ>PDTַ>PDT aV"mBT aV"mT+C6 6@!mmmBT aV!mT6@!mT6BUj}6BUj}A!*D Pj}A!*D͠jZv4ZfP!{(D͠B͠B9\D7"lg2͖p6"EN$9+6#AdFyČcgp Ni۲'WϒDwmZþtgqYUC9v;`y")ʹ>sy ;ve?taXJ43wJT*)b%弒aH'NL9.:sΤA$~{7XsNs aFKXG.PzƖiC=b{ܻ=/ldv5O88R&]?mq/s&߾bn8)PsP7qD"큆9EWM#CKƵ&|8rmJ R6q?vI~Uٸ 𥞡U3asgAyqC+msU3Pyi"3M7SW,PK"TԞg& 8ptE=~q^)G!Fp_[= Up욿#?㚔h<9nAmC7l@|}zB~J%'m֮:̖q9ey .Q팚F_o+k4|Pj1 u-]pϺ:Tq ~7}e t) ;n"3t ӭܹj ;eFǏkArѸͭ䯩ZO?q}9"*K(zew6i.WhLa7ci75W&>/_A$.Ee!hE[$W֠}n2&n}h)9\k(2铳qzZ=Tϒq/: l#=|u07%HiEḠ;&W󎮾 B$3Z!p(OSeC4Ur3]]1 aP;(i[)C T|r4Xٙ6|rPoNbʿk ytVS^_=5MisI(XtOt׮#-(SbI3P,(b" dIϏ;={JSpCgҴPپ 0EX- w` b 4ʆ/Hml0q]9ˑF(mw+-oW-sm3pu!35\,QmrP 5c,~sD§$Yk|ȴn.֏5o?}_V(Ux S՗Q.uoh#;|\ Md&7~}q}?^ U%HPk%VKM/JڕfdG|&,"A咡(n6Of4tX,TtCxq9Dn5qz:)Bd hb7LT6O߳ώG<ͨcϯu=ReYe\hq^>^yU ˧[0 iӸT0+h_Awm~oz/Ƚ]w>pkt0atRO间XUMGa6c}!U؎ulG1ϗCG2?4ل0aւJ.u^}~HDny.Tv>?4g啩xTiXWZk3y픰_/}pK*%_jl]٬#g*-Eְ"զW @Em 4u.Tr\^2iM7ִh|9CRͽtn`u+z/s2){> aiFIdzK`9rW,X^*JjZ` +VTXQ(t%5viUVX%`e(,{r/5vʽKހK]ro@.R7 Rc`{ T ȽX*^j, ^j,{ r/5vʽKނK]roA.R Rc`[{ T-ȽX*^j,{r/5vir/5vʽKށK]r@.Rw Rc`;{ TȽX*^j,{r/5vʽ4Kj4+1F#Uw?&+ǻ8AVn1]t~ܟcswO#=r-tw{lC|I?!K˜F7~~-V[Z=?~3OVuendstream endobj 25853 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 25854 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 25855 0 obj <> stream q /X1 Do Q q endstream endobj 25856 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 25857 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 25858 0 obj <> stream HW[h|ľ$ aFfw}ĆVuҧ3E̮I0$3k&֬v-a23ɳ:3ԋd2i"+MNFхq!ͺڞw5t3kf|b6eu ;L?݉nC~Q'!lMsSg>W=}i^gfn穋$Nbߓ*JN9+ĘO'1bYYcV,Zm^brSp{{^Wp>Q}T#pϕϕ///// W['Vb%F,Z1K{ VbUkhĘܫ:Z VbUkhĘܫ:Z VbUkhĘܫ:Z VbUkhĘܫ:ZZ+1fi#hĘKYڽĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hI{ Vb%,^b{Z+1fVb{Z+1fVb{Z+1fVb{Z+1fVb$JYڽĈZ+1ficv_UUџ;ogYLjkEb47y^z\ 3(ѵYowc[|yq9}96}wogf~:f+MWf7(rtb~y"BiS_Xg\.zuǢ;`/ߙvݘ05ljL7ss3ؘ`>7{ct!}7Οfhi{uпҳ IP4ZH Y`) @+(Ҋ@+*hJ+Z*V U(hJZҪV*UI-i-1KkIXhYeUZh9倖ʽʽʽʽʽʽʽyxGZ*^b-{r/1>ʽo@KރKJrA%{%R h{{T=ȽxZ*^b j-1KkIK)r@%۔֒xOZ*TmeJcJkolu7ñIoλ/n nhg)\&ۭ?ExQyy`jۮ̛lpdYdt:wxRHhs=ZⲘ?2˹y{dN6cm?V!-{ >6u&!gijˡ§(6 t[+yb6S -קzlQ8ѻ菡zt9soZ{Z1<jtΥ@=vḣtaǗf4ݖzYD7:Fou?'ªGCHj~k90 +MB_Z[ـUVCy7q4++C'y;H[P^#>ՈcNeО|=w# F;x𹍷ŦO%=C|JwACιg/}mx塹3lnmfG?aogp>iWe;/|6|V'w8y3dNƿ6\7+yos<*Мs%}s.Ϲ|{9)1}N;yt0}턯/G_4_yd8a6+}_ Ng[RJimypF{ZQz0JY`) @+(Ҋ@+*hJ+Z*V U(hJZҪV*UI-i-1KkIXhYeUZh9倖ʽʽʽʽʽʽʽʽĈr/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-r/1fi- ^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ#ȽĘ?dR7*z-LۊJcCɻR!(ua^V҆Pnp\}t2 6c=gf~|iByj/G,aO ϋWϓ Du^endstream endobj 25859 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 25860 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 25861 0 obj <> endobj 25862 0 obj <> endobj 25863 0 obj <> endobj 25864 0 obj <> endobj 25865 0 obj <> endobj 25866 0 obj <> endobj 25867 0 obj <> endobj 25868 0 obj <> endobj 25869 0 obj <> endobj 25870 0 obj <> endobj 25871 0 obj <> endobj 25872 0 obj <> endobj 25873 0 obj <> endobj 25874 0 obj <> endobj 25875 0 obj <> stream q /X1 Do Q q endstream endobj 25876 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 25877 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 25878 0 obj <> stream HW]o6}ׯТ/c/IyH\NmO $A 3DK4׻Rgy?%yG 7׿w7 1e d<3(wUWDiվ}oP ]:Ǐ}n]Wxi:gE>D+&iM?:C~"ѼOvS}|qUڦNEsh~Ws-i49 cƿo!%qEp)π}ti9:haH30ƀXBa)389^^^%^%^^^^3B}Y>'PsB}/E zMׁzM<bqµ3P=ƀEcǘa1,µ3,B}ZNcE\ b Xk1fXp- Pb̰k9Z>p-'\1`Řarµ3,B}ZNcHŘa1,µ3P= +T1`Řa µ3,B}ZAc"\1"k1fXp-ƀEcE\+b̰kZp- PVŘa µ;Dp- +T1`Řa1fXzp- PVŘaJµZ>p$\1"k1,µ3,B}ZIcE\+ b Xk1fXp- PV!Rk1fXzp- +T1 Dk--Cn]Wxtġ`\'Ye:^O㋫Nf~uXUékϥ꺋/IgYj`aWʦ+woC8CJI{ϢdV$i.UX`ԜMԶeaQ6*G1NpS99ʗM;؊lʾDة?{[=v%,Φ:fh}~Tq^ BLdlҳzh!2 BƏuSghJMI'0fS$usqR=eCB̩+P# [tchBdB)6OeW6CUyî*5qL.<Ynnݳ(;ˊZ]evV})O87/DXF[a%4K /B &U]=/q.ݏթe֜3Pۛ/N[R5эW}}Øb%CeYpտ*hmY}>0~^jвy!a2ۖJ>V嫻y?uMYlSCwٿjyߎ7] ) 1aH=ȟ#,Q2V ;0^Y}bj@e%E6`% H uWWpΰeU&LB.=?j<ӢBqBLH}i5O*`g`EcHҢ(qTO"apԇz_v6ʸo,mqGl{ *`lz椱OaAi5 =wҧxHತnvZ`3L&f~$wY%W/x:$pĞ7;5 4)2ۛKfӞ 5؅Νvt }u[\:J epLmp`Ϟe7"8D wL f;/ 8K) !^sZ`w{ڌGވѳKw(sqͥ[K28+ʧ.V!r.əuwsӸ0}@H, 1dhI=\Ur_:c[oPxl;Pޥ=T4W+3jK§t .pj6ӶrCp ;Oވ3Wi9x ^yŊlVxXGoRZ&ܵ&mIP Y:)]Nچ&_\٩+&xkq|Ѿ:o*O򮅃k֞1OPwAm/?`djxu>/ T*7ruqҺ['cUw;h4=L,_̔,+4l: s]rJ~|fc}\CτB&+dz9\43u8ѩJj ϭھ/B'yQUap?OTe)&(^A6^\q륟?NV_[q21c}«˖v6@Mg%ڝ6/rs`q%Kۘsa-Y7CɘgyܟnW۱i;@#_+*^4PwTch /'ЁrO_NV¿Ӿ6ƭ|6'օfy=l/C)J.ՙ9ψDYǞ;zPt{z ^VbOHXOm׼}A:[}!j}& ꫚ Q/ݱ!b,Й Z t "N8ϖŌV-LuRf&dTQ`߾{8ON;L.*ڷkz`0bW: ?NFx'cgY#'09'llJYJU>`W%\|ɓ!*O;G>/P 823 0 R/Type/Annot/A 25880 0 R/Subtype/Link/Rect[93.6006012 317.489014 249.324997 337.169006]/Border[0 0 0]/H/N>> endobj 25880 0 obj <> endobj 25881 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 25882 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 25883 0 obj <> endobj 25884 0 obj <> stream q /X1 Do Q q endstream endobj 25885 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 25886 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 25887 0 obj <> stream HWkF_1Hh y]XA#q%r-R^_7gHi{8-]Mè>*SϞ="hJSinTuh?UdcUߛ]=_?f<uh˟qH˵`V뤂E2U 4UjOޭ6;ul^_Y.s݉G~960fjj>S=O_嶸XJ^ PdnĦF)_@{޽V%SA)+OK&s*љe$!/G1`iYCXԻ<ŀe7{[e2Vpo{'w̽; =s{9s_ }!/Rp_2d+}W{Y-b{KH-ŐS Y=ŀ%bܳ!CR Y{Z#bܳ!Z!KpRkR Y{Z#bRK1d YjZ!KpRkRlX!CwO1` {!R Y{Z+bܳZ!Z!KpRkR Y{Z+bRK1d YjZ!KpRkR XBj),=KRK1d YjZ'b),!CwO1dqZ!KpRR Y{Z'bRK1d YjZ!KpRR XBj),=KRK1d YjZKH-Ő%guBj),=KRK}R Y=ŀ%b),Jr*Ά}|\Z_':p/UWjOVb k͈yVx3wh_?al0GP7Hˤwc۾SO֫?ڏ$KmjQ'zhqteqJWqM=/Wǡط8o9?~zp> 0Y>S6\ݮ>v0,\Þuͮm1k6Yf.~P c\u5ݓ]7aty|[7˃|XE_ƛ& wq<|_]Dh(ɼnvp,_4ſE >\O[w.nó%7cZE|M~K8l$l'Y~\N7dtÇFeL/Pets}ovĝ:H4w:zRJ˪xK 8vÐ)M G/W)?U6H"VA}8@ez =6&q3T/BgqjM}&XfY5w];Bɒ)q£X]7zvzoO Ϗ D[r=usU-RSod_LOY(|#(6Q6Jss6((f&[MmUsMUHpu)^p>6o[pi77;5xyav{;l6P۷]y[mӷwUnS;Sޭ曮fgy4_a>`?&,,tye,Ӭg4LcC5'"Ftr…z gLW'U\8x,s k~Oa6 uޝ_=r`-zz {9à h?Xo3;_ IC77-!OiO2؄l\ďgя j>Ͱ9=T,F"DNuhgα:y\1/ia05wZy8ؾjwUVT_DSzzbW89uxӁg>!u
;-Tij**plmIo~3>t6\s37τIKKqұ'x&áe>Ne8mۮQ׫_/e+M62JpZWNY^,GujM=6p Et۾f `G]o.cZ{~}*5Ψ[-MvS(ԏGٴ'6a<{=gHH'R) 1X0U=%]9d5y}^mh'@QB/]i"Iǡ.O zqOr&XB n+&tC}<%clT蒊]FvmtwCI1\~<_eJC%#Kvi:w@TIQ*I_^ 4ҕWR&o> /÷h2).KF,){YԿF0.K>W^!1h& cݙE> 'R>4f |$x a~$aAz1nyR=7V(]ptՆ:/U4yS9. w0튉H\x3F>gK7R2E҆mlI\cMEu#& _0 :̢f endstream endobj 25888 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 25889 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 25890 0 obj <> endobj 25891 0 obj <> stream q /X1 Do Q q endstream endobj 25892 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 25893 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 25894 0 obj <> stream H[oF+QR{e cA\hP$ajI.EM}gt#9386=Y./U^fc}'O s S>ܧ}*OLp1>c3^p2Rm!TCPBjwO5{%jH YjZ!%g5BjZ!%g5BjPBjR{Z#j@ R{Z#jH YjZM+jHqTJH-ՐwO5R )=KRK5,VH-ՀRK5,VH-ՐܳZ!TJH-ՐܳZ!TCJpRkR (!TCJpRkR )=KRKIR )j@ R=ՐZ!%guBj PBj R{Z'j@ R{Z'jH YjZ%jH YjZ!%guBj6 b!TCPBjwO5{z_$xynVm-LiD%)`PNb`iU1 뺺U1vuVϖU&Maڛ}jdBdy M}d%xZᯏ~nj,ru_n:j=;y.1ݒP9ɣOˢ~pU}:`VKQTDž\}bdm6Ia^G4B]{=ͦZYfiA;MD\WqڄQ^p<&sGHmʜAM9QӮE;Qwȅ6u: M̆Ԩڴ)65^5OҦ0rզ )=]ضծܹs w@.k&mo&.v5߷K`O9~VUYTyv"=Ynldօ7\:,>l\'QS$#^s֩!g|Wê,A+`-vYž(G \`[c8mvo{Qte㞵׃um&{ jJz{ (~rgۤ崬W{S~= @1$\"fSһH Pd`dQ!gpLoh 6&˫[NHˆVN)Vo9"9 Ft^MڶFĚqڳB6N| דþZ%= Hi `0}A\endstream endobj 25895 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 25896 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 25897 0 obj <> endobj 25898 0 obj <> endobj 25899 0 obj <> endobj 25900 0 obj <> endobj 25901 0 obj <> endobj 25902 0 obj <> endobj 25903 0 obj <> endobj 25904 0 obj <> endobj 25905 0 obj <> endobj 25906 0 obj <> endobj 25907 0 obj <> stream q /X1 Do Q q endstream endobj 25908 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 25909 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 25910 0 obj <> stream HW]o8}ׯb_EŠ_-v:h]L !) Ecum)#t^-]ޤEш:><幤^z߼o?#(\T,UHkG,zݗ};imWlo%?Fы`mT +X},mmV$2J+Ζ+տ6S30QF$Eqg1]G gzVo=2ߡ ri$wCTd `} 9E)G$* a̱0,!B,]P<ƀ% 2P/ 2P*P*P*P :P :Po&Po&Po&P@}JO> g,P@}N9>"P_ ´;Dp-+T1`Řc1Xzp-PVŘcJµZ9>p$\1"k1,µs,B}ZIcE\+ b Xk1Xp-PV!Rk1Xzp-+T1 c Xk1Xp-PVḇkZ9>p"\1`Řc*µs,B}ZEc"\1"Uk1Xp-&\1 c Xk1Xz9Vc"\1"Մk1Xp-ƀEcE\ ḇk5Zp-PVŘcjµZ9>p&\1"Մk1v Z9Vc"\1 c̱B/B͚!z^׆ ãPD엞9Yq6 @"tYJu::qi]}sAɂJ&rk SZ" ;mᦎ5Jg 9J<"=iSF?8O)h7E=&9švݲa󞽂zlqz5l96ϲb6@'hV&RZ$ Oo3?Oe輝r%r#[crpPt&$U.i؅5>g#Yϗ'kExeksCgJ "x"rFJG:2i'm~O;*D,5 n8hQP( s)+u7.).=52j} q;v+3rs!*t2#vH=c+H$(ȸ*lW!,qUTAnqWW;k s=,&<,CSo8Z).A"-F-T7!e}1-챷_rK0H=JQI P֣حl@  #|Y%v98}}l9&7WOCSM˙$ ҭr[P" *r%B/biW?ν>iY赆.bRWA[޼\Y4?{D〛_u?qQpaHmݮ hHO:3NNT9x+NC  m췺8w 'Wd BE ">=ggw$&]6 SE闳]~@oOBVII;Zv#Vp[7v[=JfW>ⷫ$1CgOt='1AtWb,2ٸ"llv r+$^H}?p(RvAkXIt;:c*OljOJYU zqc`52vg;޳IΙ;eGfy!w|lua~PD6=Bih>ǖ0gNJ<ǵzJ3(ZΟ Vsp{hY6;6XVnoVu)?LU1Z2O+g""JEni' G Nbuն%T3x"5pϏS&~fnĦPރܩ*,g̒a%=Eͨޖ[G'oyh<=3G{q煹v*s/ᆪ{ՁPv}}ݗ22\]cS_>p9^ʅ=<)rUVOT1pw4zSAL-zn%Fcu ޞ:;?ڪm zϯPo("]@m]l,I -Òf}ߐL#ٓIy3μy~WFo)6TH0yveXrmGo֚-d2`E8% so|Vib͙bLjnqW3eEq{h53綨DiiC]V}+M|=0mK %%àT.0ط[DC$]AJ|WSW@ґ؁*!`c x!fGY&P<䗆vROܢaѢEV9BNy< @4 Gyz4rYbx^UV ʇk.>| ̵̢p< yjm3z,ЗEXL0A;f4OL pJgx3 plTXCV6Wi @)l#NI?5LmN0|wRS⛪y.`@G4Fo` Ƴ2EnG=`sAI![{W_qDH9RCHI'|+E5Asp6i*UUJK)ׁ󸯚&^&5&d1&YjE4c-\ﴇ 7թ p!l} `>b1&|%c`J"rdL`XTB2' s< 㮙q+ן8J|ѥy0 vN/$$I"(SJ=,v|a"o5%čPx5$add~prO]6ni"sxh´yQ5*Ƅ;:U&17Cv:{=3Y2|=oVֳgX⹍eLI }|eKi9.rX ] zi4ս^i.1!G6Hk¢bmӐtOZR2W~ՔI8 \~MQ.+@9ItC&d4umֹfz_Tz+x&,uŒIꕴq:oO;L4Ez7#I)yMQqo3"؜>/P 493 0 R/Type/Annot/A 25912 0 R/Subtype/Link/Rect[93.6001968 663.229004 215.735992 682.908997]/Border[0 0 0]/H/N>> endobj 25912 0 obj <> endobj 25913 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 25914 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 25915 0 obj <> endobj 25916 0 obj <> endobj 25917 0 obj <> endobj 25918 0 obj <> endobj 25919 0 obj <> stream q /X1 Do Q q endstream endobj 25920 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 25921 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 25922 0 obj <> stream HWmo6_2|ˡ(pI P/ wiRʕv|fHJ%ǽ"p8}y83$ SןC|}GU*Օ ̵H|N Kir隩}2ڃvmrӍH&2>!K봆1ӒUf7f;1z+4՗%+%Ċd2 bY3iv~ܛ6ksS|go\6,ou["ɥb5BIX-hnOEr~ KwiR"Fb./]r:10 }Dir<&%"b/"b/ 2b/ 2b/ 2b*b*b :b :b :b_싈}A/"%ؗ2b_ˈ}E":b_#rBBQ1(BQ1Ї}Ї(}ZA6!`V }"TET+Ն>D# BPjCjЇ(}ZA6PmC>R TET+ՆC" Ն>DCՆ>DCbPjCj%Ї(}ZI6PmC>R$TET+ Ն>@ }"GjCj%(BQHPmC>R$T"T}"T}ه>@ }"GUjCj(BQHPmC>R"TE6!`V }"GUjCՆ>D#*BQHPm;$PmCT>PmCT>!*f_u]3s{Hm *Snʺ)y%8m٦Wo/7o9ˋތߤГw~l>B"YKYqi?fpS{0~FqB\,_ǽ; 9\*3r6~n\0)sѕȚ[7} 8Ʈjen=98]qיq`6ޘ[}U\˕iGڻ^.h^){.fF5`S6,f}%x'3mimO O9LIOt7Szgߟ|ނ(6<4\Ԟ#]|aK+HWؐf=>-㬽E`}~{%X#.ubkH]kil@p23R ӷ&$y23.I>C)p|1C vOk}[8y&[œٙi>g;g߻Vt5];rۉeNPjmN(ek48Iqj&oZAk% 6&{~(Wc2[f34(K .L4{@%l۠Um8ˊfn]:" sj/BZ >;͆Ksj| 3fL(zi^и]I@UjB1yQe൜B{\1A9|W 5/n`'w20<ƌpEMG~rƫ˵X'J+es[6 Ҳ+vN sft/N>vNst70Lм#aRI{gBl yTG}{4Ki'+3t?s"]ѱ[XM90T_&ks 1gsgO3Hšq O-12@ƚZrew9nݚў寲?x+>ldJgλcSqr-С`/oϻmdhYDYUy>_L3Jm'{ ˲WPŜ<+V.w&(fsn6iS\j"!`C8 ٛlk(tJit8tH|fx<7n[EX6%W&\6"K5Q1TU^uޙfjy O8YT1]x^^" gQކ|cJ 4[>Kkq_݉yˁo9^1hn .*C]WoB <@ P7itlj95{YX]B/ܳ7#XE WqYd-ﺨmDxm"E;5EҤp0`%eE$ɕ3ᙙ3j"Rλ SՀH *BS~֣zl 0(LoցƑZo m_vb"B#qH.H4T^% )R!!I d"@q@|Vs&1~8tPE]ƚAGCT7aաoeȩnf_"Q%^3Y~% Z*%0X:(:yF7zf}_lӨΖ.p亳Z|Ҫ)[Ϲr*m.OB$'yIӏ91r{,h0(ڔdS?H3RIRjَ.}HRLU(V_a”yW CE{Q P ʋO Ib\6jk[!3 zf:c'ԍ(a-yU#C"2h Q3 yg_^:\F6l {Ҡ;.Erw&Q-$* 9jOR&F %>XyZ{CҮby*ެ|+mԕ\j1tD5K?#<]qĀNgzz/cD/7YhPȹYk]@DJuOU#93er0GG8!Rsє0=\\qTHqd!g$,q(# x$$XAe?XHwIM=m^VмY#son9Z?X Giʹdzp{gBBOei|bwJ]V`H6cb-̻~+OȑvKSAE ~4`ްۛ_n|aa^]_us;]j]GPLLtH#VJ%.4U\MIu>Vxݴ:7VT8lZgO1>CeEG2$g%"b g=KBOWZ^`s$GB[M$&-A،kNQ:1 z4V>+a+s7BM)تltMgk&AzxO胵=Vj;>v M<“vZ|1L混?endstream endobj 25923 0 obj <>/P 977 0 R/Type/Annot/A 25924 0 R/Subtype/Link/Rect[129.600006 613.229004 296.100006 632.908997]/Border[0 0 0]/H/N>> endobj 25924 0 obj <> endobj 25925 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 25926 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 25927 0 obj <> endobj 25928 0 obj <> stream q /X1 Do Q q endstream endobj 25929 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 25930 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 25931 0 obj <> stream HWێ8}W 8j 0` 0<$@mm-ɑvoH6YFAGCY~w.12U!y&^G_6JLjuW﫱~}׍zut3*_D6*!Iq WMuYǺk7\ H}_}~+yMdiuiV? V0JƓI63O}=[HKc;\*͒3[qPd纁Qǧ_)=7qT, ޔl2T> 9aH>0aRX(ǀ

Dp!+Tc"\c B>,µ>,B}ZNǐE\ k9ZC>p-'\c"\c"k} Ypp!P1drµ>Dp!+Tc"\c B>,µ>,B}ZAǐE\+kZC>p \c"\c"k} Ypp!PV1d µ>Dp!+Tc"\c B>,µ>,B}ZIǐE\+ k%ZC>p$\c"\c"k} Ypp!PV1dJµ>Dp!+Tc"\c BeRSw*_D6bIgYc߽Cb86Mտ}_}DI%:>+Brz.ÔI9zID]woj^Wu68A;mImAmnlc]CKI^a4G L!=`ӵ:{ 5rގpT&rN'bOgq}=y4Mwl4:aSZΩv= #1"ļR{BV,ACm객Eذ;?kjʏYsIj%j,M".N00G,~)eg{rMLB ͬaK ȘHc#8Ԃ'y)2X R<<3f'vi\-XR\Zg4atvMf]T(e*Jhvo+{~Fϙɿ^kAAc(;0V藇ou?$nz^n&*LM1(3Κjj-;x3y|fCz3OSjNEv\ S0خǺknڡK&iF,)?G!FhkX!mMw,x=$g-UYlJ %X=_MQMVU*< ;B,S]j`-XBo\orcm]oƦ!^}"w9TXlT62ɮʡ76"-] vԸ*Ἴ9iw|ƴwa3ӂa[^9G=?}9.ER4.GMvE"ӶO\ծ6cpOc;R :(9ϳ{$,+dPȄpp-wvSX/lh7)WLs[gK,`G,0Wڭ)&4Kōc8Λ~H.NyZ&L*:*$!z]cMi .EZW.|6qGC_隆vtjݭ#cIK+^ i nbi^uC3ypnEWVRϙ8Թ?Mpv5*)At84 f=ZРi%Dj95$@oLAB)qRMnG*}@V~44Q-;c()Y,?wFa1ҚXvq.xʥ3DŽ0yv%Q@ނJ&Y(\B1Q?ʾ\w0)%展F"(pbD}a>`"֘\$.A'$4Ķ_}˵^~ѪOgNBKp 2t,L=a |0)}h+Ovhݹu=ۺAVrD|ttvvWw{;&zyZpr43ny< zc\YAYz?U6Ցw{[ ā`;UmLL(>vz(5m?8g3 R;R>/P 1134 0 R/Type/Annot/A 25933 0 R/Subtype/Link/Rect[93.5999985 579.229004 307.487 598.908997]/Border[0 0 0]/H/N>> endobj 25933 0 obj <> endobj 25934 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 25935 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 25936 0 obj <> endobj 25937 0 obj <> endobj 25938 0 obj <> endobj 25939 0 obj <> endobj 25940 0 obj <> endobj 25941 0 obj <> endobj 25942 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 25943 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 25944 0 obj <> endobj 25945 0 obj <> endobj 25946 0 obj <> endobj 25947 0 obj <> endobj 25948 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 25949 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 25950 0 obj <> stream q /X1 Do Q q endstream endobj 25951 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 25952 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 25953 0 obj <> stream HWnG}G PF}_QR#HjIʉjȹu0PFUuًWo>e|⿅Х ~fƫJ*dYqzX_7~Տ7j. 6+lY`ښR9l)f/5VR VD4WcJbkp}[VeK{r7EpCqScB FpbbHQ Q@܅H6@ILKL+J+J+JkNkNIII[M[M;K;K;K{O{O}H}YA6m I6!*eE6!*em"TEOT+ 6DJB Pjcj%؆(}ZI6PmlC>Q$TEOT+ 6@m"'jcj%ض)؆}l؆}lCT>PmlC>Q"TEOT6@m"'Ujcj(B QDPmlC>Q"TE6!`Vm"'UjcۦЄjcR PjcR Q)(B QDPmlC>Q&TE6!`Vm"'Մjc6DjB QDPml؆(}ZM6!`VmmJ6@mJ6DCBЌ6yq5 6{ϺR2)fNK4xn._:X0'D]IIK:o[p$#C)p;G] c%l6:̶~ G0 f,ykfJmpynij9mbY;u `iV^3poY03A,?lj'alh\-M(}ɌTJt dO@ak\9ACY-o<j{dɈR2Gbl6' v?{v\ojy\ׇݶ! ^ds-~E TJvjyנ0LjgNێR5<ݍqfxF ?{ZQ_#}Ja,54WE:7#Av,VC5v$hB!Q&z]a#hz~U+x3.\4AP&=ZIʃ+` fk]&VPyocqb%TRTi4]?{;ʒf4n{8.ǎMA:1  и"'J--&8k&\iʞ+(;:2Lwn1|xTم+$Za 8T4`LCz  nV[ja[uomX?l<0ht_fqk[6R=.i D{cOoi xk\ߘN*jPN "\Qw9ZNhgSv=Vlq!jx8(+rK%nyps^p:D:ȜY Y*O2JN[D3L9EeG3<*e4닋`apnRե7)>Kkk9VzWXLidꪭgd9AIONxh\4Mf h@7RZg˹FkOT+ iga]tO \4P_9 mؼ {w^S~>f'^d?ږϢ;V;Re۲Rpy2@@w#g_feW?nr@301z@wUVu*rY{\^9ݝ*4t݂&d}epvIʷ"жe) 9W&WLLX5mdKCCu|Ξ$^@p|,>_*ZSL8NLQ^<4g9?`Wg tF0܏߭*Um12%/l4VTKh![ d|Nbb\nV\3*ٗ(IUrBKϚ9؟DSg^Ln4p,a7Ϗvs F܈,|t۽ˆH*fW-%hWڟlxV0bpxGb>ժm̉;],WqlPA2j2jDU7S:*Vy JLx@@$Ư'SMS)?mEڎFksk5֝6 -U^A~Z?.9 iojuS}y~ٚvy_m @e5>ZW9VY7דpgfɳ%bpŤDLKm䆡 @v (P9pY'|Nl}JSpSu~6Z:~t]&{ NuÐ1vԄ rjc7EјX%Pf^K#>@[d 9N9pjB9'mj;;;aH&Xai,x*&"@~kR?u`CSEr{pPSrƖ!;͗IR9.J)Z{-fBH~?m!ֶb4~HLpBkvwvdAT5b{yzEⶌ)y8p%#ӹP z>}E\ߟګ敨\)I*@`וX25ByD.!y$W^KH8f \tM5O-E(nU,릩1AF0 4˓t?]pq~Z+0m4QبM?~ss54 endstream endobj 25954 0 obj <>/P 9885 0 R/Type/Annot/A 42490 0 R/Subtype/Link/Rect[151 669 165 678]/Border[0 0 0]/H/N>> endobj 25955 0 obj <>/P 9885 0 R/Type/Annot/A 26285 0 R/Subtype/Link/Rect[167 669 181 678]/Border[0 0 0]/H/N>> endobj 25956 0 obj <>/P 9885 0 R/Type/Annot/A 26281 0 R/Subtype/Link/Rect[183 669 199 679]/Border[0 0 0]/H/N>> endobj 25957 0 obj <>/P 9885 0 R/Type/Annot/A 26278 0 R/Subtype/Link/Rect[200 669 214 678]/Border[0 0 0]/H/N>> endobj 25958 0 obj <>/P 9885 0 R/Type/Annot/A 42340 0 R/Subtype/Link/Rect[216 669 233 679]/Border[0 0 0]/H/N>> endobj 25959 0 obj <>/P 9885 0 R/Type/Annot/A 42300 0 R/Subtype/Link/Rect[233 669 247 678]/Border[0 0 0]/H/N>> endobj 25960 0 obj <>/P 9885 0 R/Type/Annot/A 26272 0 R/Subtype/Link/Rect[249 669 266 679]/Border[0 0 0]/H/N>> endobj 25961 0 obj <>/P 9885 0 R/Type/Annot/A 42220 0 R/Subtype/Link/Rect[267 669 281 678]/Border[0 0 0]/H/N>> endobj 25962 0 obj <>/P 9885 0 R/Type/Annot/A 26267 0 R/Subtype/Link/Rect[283 669 297 678]/Border[0 0 0]/H/N>> endobj 25963 0 obj <>/P 9885 0 R/Type/Annot/A 26262 0 R/Subtype/Link/Rect[151 659 165 668]/Border[0 0 0]/H/N>> endobj 25964 0 obj <>/P 9885 0 R/Type/Annot/A 42081 0 R/Subtype/Link/Rect[167 659 181 668]/Border[0 0 0]/H/N>> endobj 25965 0 obj <>/P 9885 0 R/Type/Annot/A 26256 0 R/Subtype/Link/Rect[183 659 195 668]/Border[0 0 0]/H/N>> endobj 25966 0 obj <>/P 9885 0 R/Type/Annot/A 26253 0 R/Subtype/Link/Rect[189 649 201 658]/Border[0 0 0]/H/N>> endobj 25967 0 obj <>/P 9885 0 R/Type/Annot/A 26470 0 R/Subtype/Link/Rect[172 639 186 648]/Border[0 0 0]/H/N>> endobj 25968 0 obj <>/P 9885 0 R/Type/Annot/A 26457 0 R/Subtype/Link/Rect[188 639 200 648]/Border[0 0 0]/H/N>> endobj 25969 0 obj <>/P 9885 0 R/Type/Annot/A 26453 0 R/Subtype/Link/Rect[174 629 184 638]/Border[0 0 0]/H/N>> endobj 25970 0 obj <>/P 9885 0 R/Type/Annot/A 26451 0 R/Subtype/Link/Rect[186 629 200 638]/Border[0 0 0]/H/N>> endobj 25971 0 obj <>/P 9885 0 R/Type/Annot/A 41785 0 R/Subtype/Link/Rect[202 629 219 639]/Border[0 0 0]/H/N>> endobj 25972 0 obj <>/P 9885 0 R/Type/Annot/A 26446 0 R/Subtype/Link/Rect[219 629 231 638]/Border[0 0 0]/H/N>> endobj 25973 0 obj <>/P 9885 0 R/Type/Annot/A 26443 0 R/Subtype/Link/Rect[211 619 228 629]/Border[0 0 0]/H/N>> endobj 25974 0 obj <>/P 9885 0 R/Type/Annot/A 41645 0 R/Subtype/Link/Rect[229 619 241 628]/Border[0 0 0]/H/N>> endobj 25975 0 obj <>/P 9885 0 R/Type/Annot/A 26438 0 R/Subtype/Link/Rect[241 609 255 618]/Border[0 0 0]/H/N>> endobj 25976 0 obj <>/P 9885 0 R/Type/Annot/A 26436 0 R/Subtype/Link/Rect[257 609 269 618]/Border[0 0 0]/H/N>> endobj 25977 0 obj <>/P 9885 0 R/Type/Annot/A 41509 0 R/Subtype/Link/Rect[224 599 232 608]/Border[0 0 0]/H/N>> endobj 25978 0 obj <>/P 9885 0 R/Type/Annot/A 26432 0 R/Subtype/Link/Rect[199 589 216 599]/Border[0 0 0]/H/N>> endobj 25979 0 obj <>/P 9885 0 R/Type/Annot/A 41436 0 R/Subtype/Link/Rect[216 589 228 598]/Border[0 0 0]/H/N>> endobj 25980 0 obj <>/P 9885 0 R/Type/Annot/A 26429 0 R/Subtype/Link/Rect[211 579 225 588]/Border[0 0 0]/H/N>> endobj 25981 0 obj <>/P 9885 0 R/Type/Annot/A 26426 0 R/Subtype/Link/Rect[227 579 239 588]/Border[0 0 0]/H/N>> endobj 25982 0 obj <>/P 9885 0 R/Type/Annot/A 37646 0 R/Subtype/Link/Rect[189 569 201 578]/Border[0 0 0]/H/N>> endobj 25983 0 obj <>/P 9885 0 R/Type/Annot/A 26423 0 R/Subtype/Link/Rect[197 559 211 568]/Border[0 0 0]/H/N>> endobj 25984 0 obj <>/P 9885 0 R/Type/Annot/A 41259 0 R/Subtype/Link/Rect[213 559 227 568]/Border[0 0 0]/H/N>> endobj 25985 0 obj <>/P 9885 0 R/Type/Annot/A 26418 0 R/Subtype/Link/Rect[229 559 245 569]/Border[0 0 0]/H/N>> endobj 25986 0 obj <>/P 9885 0 R/Type/Annot/A 26415 0 R/Subtype/Link/Rect[246 559 260 568]/Border[0 0 0]/H/N>> endobj 25987 0 obj <>/P 9885 0 R/Type/Annot/A 26412 0 R/Subtype/Link/Rect[262 559 274 568]/Border[0 0 0]/H/N>> endobj 25988 0 obj <>/P 9885 0 R/Type/Annot/A 41127 0 R/Subtype/Link/Rect[189 549 201 558]/Border[0 0 0]/H/N>> endobj 25989 0 obj <>/P 9885 0 R/Type/Annot/A 41096 0 R/Subtype/Link/Rect[221 539 233 548]/Border[0 0 0]/H/N>> endobj 25990 0 obj <>/P 9885 0 R/Type/Annot/A 26404 0 R/Subtype/Link/Rect[189 529 201 538]/Border[0 0 0]/H/N>> endobj 25991 0 obj <>/P 9885 0 R/Type/Annot/A 26402 0 R/Subtype/Link/Rect[216 519 228 528]/Border[0 0 0]/H/N>> endobj 25992 0 obj <>/P 9885 0 R/Type/Annot/A 26399 0 R/Subtype/Link/Rect[197 509 213 519]/Border[0 0 0]/H/N>> endobj 25993 0 obj <>/P 9885 0 R/Type/Annot/A 26396 0 R/Subtype/Link/Rect[214 509 228 518]/Border[0 0 0]/H/N>> endobj 25994 0 obj <>/P 9885 0 R/Type/Annot/A 26394 0 R/Subtype/Link/Rect[230 509 247 519]/Border[0 0 0]/H/N>> endobj 25995 0 obj <>/P 9885 0 R/Type/Annot/A 26391 0 R/Subtype/Link/Rect[247 509 259 518]/Border[0 0 0]/H/N>> endobj 25996 0 obj <>/P 9885 0 R/Type/Annot/A 39525 0 R/Subtype/Link/Rect[189 499 201 508]/Border[0 0 0]/H/N>> endobj 25997 0 obj <>/P 9885 0 R/Type/Annot/A 37610 0 R/Subtype/Link/Rect[226 489 238 498]/Border[0 0 0]/H/N>> endobj 25998 0 obj <>/P 9885 0 R/Type/Annot/A 26386 0 R/Subtype/Link/Rect[189 479 201 488]/Border[0 0 0]/H/N>> endobj 25999 0 obj <>/P 9885 0 R/Type/Annot/A 38923 0 R/Subtype/Link/Rect[208 469 225 479]/Border[0 0 0]/H/N>> endobj 26000 0 obj <>/P 9885 0 R/Type/Annot/A 26381 0 R/Subtype/Link/Rect[226 469 238 478]/Border[0 0 0]/H/N>> endobj 26001 0 obj <>/P 9885 0 R/Type/Annot/A 26379 0 R/Subtype/Link/Rect[206 459 218 468]/Border[0 0 0]/H/N>> endobj 26002 0 obj <>/P 9885 0 R/Type/Annot/A 26377 0 R/Subtype/Link/Rect[189 449 201 458]/Border[0 0 0]/H/N>> endobj 26003 0 obj <>/P 9885 0 R/Type/Annot/A 38274 0 R/Subtype/Link/Rect[231 439 241 448]/Border[0 0 0]/H/N>> endobj 26004 0 obj <>/P 9885 0 R/Type/Annot/A 26371 0 R/Subtype/Link/Rect[243 439 251 448]/Border[0 0 0]/H/N>> endobj 26005 0 obj <>/P 9885 0 R/Type/Annot/A 26369 0 R/Subtype/Link/Rect[192 429 206 438]/Border[0 0 0]/H/N>> endobj 26006 0 obj <>/P 9885 0 R/Type/Annot/A 36762 0 R/Subtype/Link/Rect[208 429 222 438]/Border[0 0 0]/H/N>> endobj 26007 0 obj <>/P 9885 0 R/Type/Annot/A 26365 0 R/Subtype/Link/Rect[224 429 241 439]/Border[0 0 0]/H/N>> endobj 26008 0 obj <>/P 9885 0 R/Type/Annot/A 36686 0 R/Subtype/Link/Rect[241 429 253 438]/Border[0 0 0]/H/N>> endobj 26009 0 obj <>/P 9885 0 R/Type/Annot/A 26360 0 R/Subtype/Link/Rect[189 419 201 428]/Border[0 0 0]/H/N>> endobj 26010 0 obj <>/P 9885 0 R/Type/Annot/A 26358 0 R/Subtype/Link/Rect[206 409 223 419]/Border[0 0 0]/H/N>> endobj 26011 0 obj <>/P 9885 0 R/Type/Annot/A 26355 0 R/Subtype/Link/Rect[224 409 238 418]/Border[0 0 0]/H/N>> endobj 26012 0 obj <>/P 9885 0 R/Type/Annot/A 26352 0 R/Subtype/Link/Rect[240 409 254 418]/Border[0 0 0]/H/N>> endobj 26013 0 obj <>/P 9885 0 R/Type/Annot/A 26349 0 R/Subtype/Link/Rect[256 409 268 418]/Border[0 0 0]/H/N>> endobj 26014 0 obj <>/P 9885 0 R/Type/Annot/A 26347 0 R/Subtype/Link/Rect[189 399 201 408]/Border[0 0 0]/H/N>> endobj 26015 0 obj <>/P 9885 0 R/Type/Annot/A 26344 0 R/Subtype/Link/Rect[206 389 220 398]/Border[0 0 0]/H/N>> endobj 26016 0 obj <>/P 9885 0 R/Type/Annot/A 26341 0 R/Subtype/Link/Rect[222 389 239 399]/Border[0 0 0]/H/N>> endobj 26017 0 obj <>/P 9885 0 R/Type/Annot/A 33599 0 R/Subtype/Link/Rect[240 389 254 398]/Border[0 0 0]/H/N>> endobj 26018 0 obj <>/P 9885 0 R/Type/Annot/A 26336 0 R/Subtype/Link/Rect[256 389 268 398]/Border[0 0 0]/H/N>> endobj 26019 0 obj <>/P 9885 0 R/Type/Annot/A 26333 0 R/Subtype/Link/Rect[189 379 201 388]/Border[0 0 0]/H/N>> endobj 26020 0 obj <>/P 9885 0 R/Type/Annot/A 32543 0 R/Subtype/Link/Rect[194 369 206 378]/Border[0 0 0]/H/N>> endobj 26021 0 obj <>/P 9885 0 R/Type/Annot/A 26327 0 R/Subtype/Link/Rect[230 359 244 368]/Border[0 0 0]/H/N>> endobj 26022 0 obj <>/P 9885 0 R/Type/Annot/A 31825 0 R/Subtype/Link/Rect[246 359 263 369]/Border[0 0 0]/H/N>> endobj 26023 0 obj <>/P 9885 0 R/Type/Annot/A 26322 0 R/Subtype/Link/Rect[264 359 276 368]/Border[0 0 0]/H/N>> endobj 26024 0 obj <>/P 9885 0 R/Type/Annot/A 26319 0 R/Subtype/Link/Rect[189 349 201 358]/Border[0 0 0]/H/N>> endobj 26025 0 obj <>/P 9885 0 R/Type/Annot/A 26317 0 R/Subtype/Link/Rect[221 339 235 348]/Border[0 0 0]/H/N>> endobj 26026 0 obj <>/P 9885 0 R/Type/Annot/A 26315 0 R/Subtype/Link/Rect[237 339 249 348]/Border[0 0 0]/H/N>> endobj 26027 0 obj <>/P 9885 0 R/Type/Annot/A 26312 0 R/Subtype/Link/Rect[183 329 200 339]/Border[0 0 0]/H/N>> endobj 26028 0 obj <>/P 9885 0 R/Type/Annot/A 26309 0 R/Subtype/Link/Rect[200 329 212 338]/Border[0 0 0]/H/N>> endobj 26029 0 obj <>/P 9885 0 R/Type/Annot/A 26307 0 R/Subtype/Link/Rect[207 319 223 329]/Border[0 0 0]/H/N>> endobj 26030 0 obj <>/P 9885 0 R/Type/Annot/A 26304 0 R/Subtype/Link/Rect[224 319 238 328]/Border[0 0 0]/H/N>> endobj 26031 0 obj <>/P 9885 0 R/Type/Annot/A 26301 0 R/Subtype/Link/Rect[240 319 254 328]/Border[0 0 0]/H/N>> endobj 26032 0 obj <>/P 9885 0 R/Type/Annot/A 30065 0 R/Subtype/Link/Rect[256 319 268 328]/Border[0 0 0]/H/N>> endobj 26033 0 obj <>/P 9885 0 R/Type/Annot/A 29317 0 R/Subtype/Link/Rect[216 309 233 319]/Border[0 0 0]/H/N>> endobj 26034 0 obj <>/P 9885 0 R/Type/Annot/A 26294 0 R/Subtype/Link/Rect[233 309 247 318]/Border[0 0 0]/H/N>> endobj 26035 0 obj <>/P 9885 0 R/Type/Annot/A 26292 0 R/Subtype/Link/Rect[249 309 261 318]/Border[0 0 0]/H/N>> endobj 26036 0 obj <>/P 9885 0 R/Type/Annot/A 26289 0 R/Subtype/Link/Rect[189 299 201 308]/Border[0 0 0]/H/N>> endobj 26037 0 obj <>/P 9885 0 R/Type/Annot/A 26286 0 R/Subtype/Link/Rect[231 289 241 298]/Border[0 0 0]/H/N>> endobj 26038 0 obj <>/P 9885 0 R/Type/Annot/A 26282 0 R/Subtype/Link/Rect[243 289 253 298]/Border[0 0 0]/H/N>> endobj 26039 0 obj <>/P 9885 0 R/Type/Annot/A 26279 0 R/Subtype/Link/Rect[255 289 267 298]/Border[0 0 0]/H/N>> endobj 26040 0 obj <>/P 9885 0 R/Type/Annot/A 26276 0 R/Subtype/Link/Rect[206 279 220 288]/Border[0 0 0]/H/N>> endobj 26041 0 obj <>/P 9885 0 R/Type/Annot/A 26274 0 R/Subtype/Link/Rect[222 279 239 289]/Border[0 0 0]/H/N>> endobj 26042 0 obj <>/P 9885 0 R/Type/Annot/A 28497 0 R/Subtype/Link/Rect[240 279 254 288]/Border[0 0 0]/H/N>> endobj 26043 0 obj <>/P 9885 0 R/Type/Annot/A 28449 0 R/Subtype/Link/Rect[256 279 268 288]/Border[0 0 0]/H/N>> endobj 26044 0 obj <>/P 9885 0 R/Type/Annot/A 26268 0 R/Subtype/Link/Rect[189 269 201 278]/Border[0 0 0]/H/N>> endobj 26045 0 obj <>/P 9885 0 R/Type/Annot/A 26264 0 R/Subtype/Link/Rect[187 259 201 268]/Border[0 0 0]/H/N>> endobj 26046 0 obj <>/P 9885 0 R/Type/Annot/A 26260 0 R/Subtype/Link/Rect[203 259 217 268]/Border[0 0 0]/H/N>> endobj 26047 0 obj <>/P 9885 0 R/Type/Annot/A 27594 0 R/Subtype/Link/Rect[219 259 233 268]/Border[0 0 0]/H/N>> endobj 26048 0 obj <>/P 9885 0 R/Type/Annot/A 26254 0 R/Subtype/Link/Rect[235 259 249 268]/Border[0 0 0]/H/N>> endobj 26049 0 obj <>/P 9885 0 R/Type/Annot/A 26251 0 R/Subtype/Link/Rect[251 259 265 268]/Border[0 0 0]/H/N>> endobj 26050 0 obj <>/P 9885 0 R/Type/Annot/A 26249 0 R/Subtype/Link/Rect[267 259 284 269]/Border[0 0 0]/H/N>> endobj 26051 0 obj <>/P 9885 0 R/Type/Annot/A 26247 0 R/Subtype/Link/Rect[285 259 297 268]/Border[0 0 0]/H/N>> endobj 26052 0 obj <>/P 9885 0 R/Type/Annot/A 26245 0 R/Subtype/Link/Rect[189 249 201 258]/Border[0 0 0]/H/N>> endobj 26053 0 obj <>/P 9885 0 R/Type/Annot/A 26458 0 R/Subtype/Link/Rect[206 239 223 249]/Border[0 0 0]/H/N>> endobj 26054 0 obj <>/P 9885 0 R/Type/Annot/A 26454 0 R/Subtype/Link/Rect[224 239 238 248]/Border[0 0 0]/H/N>> endobj 26055 0 obj <>/P 9885 0 R/Type/Annot/A 26452 0 R/Subtype/Link/Rect[240 239 254 248]/Border[0 0 0]/H/N>> endobj 26056 0 obj <>/P 9885 0 R/Type/Annot/A 26449 0 R/Subtype/Link/Rect[256 239 272 249]/Border[0 0 0]/H/N>> endobj 26057 0 obj <>/P 9885 0 R/Type/Annot/A 26447 0 R/Subtype/Link/Rect[273 239 287 248]/Border[0 0 0]/H/N>> endobj 26058 0 obj <>/P 9885 0 R/Type/Annot/A 26444 0 R/Subtype/Link/Rect[151 229 167 239]/Border[0 0 0]/H/N>> endobj 26059 0 obj <>/P 9885 0 R/Type/Annot/A 26441 0 R/Subtype/Link/Rect[168 229 182 238]/Border[0 0 0]/H/N>> endobj 26060 0 obj <>/P 9885 0 R/Type/Annot/A 26439 0 R/Subtype/Link/Rect[184 229 196 238]/Border[0 0 0]/H/N>> endobj 26061 0 obj <>/P 9885 0 R/Type/Annot/A 26437 0 R/Subtype/Link/Rect[189 219 203 228]/Border[0 0 0]/H/N>> endobj 26062 0 obj <>/P 9885 0 R/Type/Annot/A 26435 0 R/Subtype/Link/Rect[205 219 217 228]/Border[0 0 0]/H/N>> endobj 26063 0 obj <>/P 9885 0 R/Type/Annot/A 26433 0 R/Subtype/Link/Rect[202 209 218 219]/Border[0 0 0]/H/N>> endobj 26064 0 obj <>/P 9885 0 R/Type/Annot/A 26431 0 R/Subtype/Link/Rect[219 209 233 218]/Border[0 0 0]/H/N>> endobj 26065 0 obj <>/P 9885 0 R/Type/Annot/A 26430 0 R/Subtype/Link/Rect[235 209 249 218]/Border[0 0 0]/H/N>> endobj 26066 0 obj <>/P 9885 0 R/Type/Annot/A 26428 0 R/Subtype/Link/Rect[251 209 265 218]/Border[0 0 0]/H/N>> endobj 26067 0 obj <>/P 9885 0 R/Type/Annot/A 26425 0 R/Subtype/Link/Rect[267 209 284 219]/Border[0 0 0]/H/N>> endobj 26068 0 obj <>/P 9885 0 R/Type/Annot/A 26424 0 R/Subtype/Link/Rect[284 209 298 218]/Border[0 0 0]/H/N>> endobj 26069 0 obj <>/P 9885 0 R/Type/Annot/A 26422 0 R/Subtype/Link/Rect[151 199 165 208]/Border[0 0 0]/H/N>> endobj 26070 0 obj <>/P 9885 0 R/Type/Annot/A 26420 0 R/Subtype/Link/Rect[167 199 179 208]/Border[0 0 0]/H/N>> endobj 26071 0 obj <>/P 9885 0 R/Type/Annot/A 26417 0 R/Subtype/Link/Rect[189 189 203 198]/Border[0 0 0]/H/N>> endobj 26072 0 obj <>/P 9885 0 R/Type/Annot/A 26414 0 R/Subtype/Link/Rect[205 189 219 198]/Border[0 0 0]/H/N>> endobj 26073 0 obj <>/P 9885 0 R/Type/Annot/A 26411 0 R/Subtype/Link/Rect[221 189 233 198]/Border[0 0 0]/H/N>> endobj 26074 0 obj <>/P 9885 0 R/Type/Annot/A 26409 0 R/Subtype/Link/Rect[202 179 216 188]/Border[0 0 0]/H/N>> endobj 26075 0 obj <>/P 9885 0 R/Type/Annot/A 26407 0 R/Subtype/Link/Rect[218 179 232 188]/Border[0 0 0]/H/N>> endobj 26076 0 obj <>/P 9885 0 R/Type/Annot/A 26403 0 R/Subtype/Link/Rect[234 179 247 188]/Border[0 0 0]/H/N>> endobj 26077 0 obj <>/P 9885 0 R/Type/Annot/A 26401 0 R/Subtype/Link/Rect[249 179 263 188]/Border[0 0 0]/H/N>> endobj 26078 0 obj <>/P 9885 0 R/Type/Annot/A 26398 0 R/Subtype/Link/Rect[265 179 282 189]/Border[0 0 0]/H/N>> endobj 26079 0 obj <>/P 9885 0 R/Type/Annot/A 26395 0 R/Subtype/Link/Rect[282 179 296 188]/Border[0 0 0]/H/N>> endobj 26080 0 obj <>/P 9885 0 R/Type/Annot/A 26393 0 R/Subtype/Link/Rect[151 169 165 178]/Border[0 0 0]/H/N>> endobj 26081 0 obj <>/P 9885 0 R/Type/Annot/A 26390 0 R/Subtype/Link/Rect[167 169 179 178]/Border[0 0 0]/H/N>> endobj 26082 0 obj <>/P 9885 0 R/Type/Annot/A 26389 0 R/Subtype/Link/Rect[189 159 201 168]/Border[0 0 0]/H/N>> endobj 26083 0 obj <>/P 9885 0 R/Type/Annot/A 26387 0 R/Subtype/Link/Rect[197 149 211 158]/Border[0 0 0]/H/N>> endobj 26084 0 obj <>/P 9885 0 R/Type/Annot/A 26385 0 R/Subtype/Link/Rect[213 149 227 158]/Border[0 0 0]/H/N>> endobj 26085 0 obj <>/P 9885 0 R/Type/Annot/A 26383 0 R/Subtype/Link/Rect[229 149 245 159]/Border[0 0 0]/H/N>> endobj 26086 0 obj <>/P 9885 0 R/Type/Annot/A 26382 0 R/Subtype/Link/Rect[246 149 260 158]/Border[0 0 0]/H/N>> endobj 26087 0 obj <>/P 9885 0 R/Type/Annot/A 26380 0 R/Subtype/Link/Rect[262 149 276 158]/Border[0 0 0]/H/N>> endobj 26088 0 obj <>/P 9885 0 R/Type/Annot/A 26378 0 R/Subtype/Link/Rect[278 149 294 159]/Border[0 0 0]/H/N>> endobj 26089 0 obj <>/P 9885 0 R/Type/Annot/A 26376 0 R/Subtype/Link/Rect[295 149 307 158]/Border[0 0 0]/H/N>> endobj 26090 0 obj <>/P 9885 0 R/Type/Annot/A 26373 0 R/Subtype/Link/Rect[397 669 409 678]/Border[0 0 0]/H/N>> endobj 26091 0 obj <>/P 9885 0 R/Type/Annot/A 26370 0 R/Subtype/Link/Rect[410 659 422 668]/Border[0 0 0]/H/N>> endobj 26092 0 obj <>/P 9885 0 R/Type/Annot/A 26368 0 R/Subtype/Link/Rect[429 649 445 659]/Border[0 0 0]/H/N>> endobj 26093 0 obj <>/P 9885 0 R/Type/Annot/A 26366 0 R/Subtype/Link/Rect[446 649 460 658]/Border[0 0 0]/H/N>> endobj 26094 0 obj <>/P 9885 0 R/Type/Annot/A 26363 0 R/Subtype/Link/Rect[462 649 476 658]/Border[0 0 0]/H/N>> endobj 26095 0 obj <>/P 9885 0 R/Type/Annot/A 26361 0 R/Subtype/Link/Rect[478 649 492 658]/Border[0 0 0]/H/N>> endobj 26096 0 obj <>/P 9885 0 R/Type/Annot/A 26359 0 R/Subtype/Link/Rect[494 649 508 658]/Border[0 0 0]/H/N>> endobj 26097 0 obj <>/P 9885 0 R/Type/Annot/A 26356 0 R/Subtype/Link/Rect[359 639 373 648]/Border[0 0 0]/H/N>> endobj 26098 0 obj <>/P 9885 0 R/Type/Annot/A 26353 0 R/Subtype/Link/Rect[375 639 391 649]/Border[0 0 0]/H/N>> endobj 26099 0 obj <>/P 9885 0 R/Type/Annot/A 26350 0 R/Subtype/Link/Rect[392 639 406 648]/Border[0 0 0]/H/N>> endobj 26100 0 obj <>/P 9885 0 R/Type/Annot/A 26348 0 R/Subtype/Link/Rect[408 639 420 648]/Border[0 0 0]/H/N>> endobj 26101 0 obj <>/P 9885 0 R/Type/Annot/A 26345 0 R/Subtype/Link/Rect[397 629 411 638]/Border[0 0 0]/H/N>> endobj 26102 0 obj <>/P 9885 0 R/Type/Annot/A 26342 0 R/Subtype/Link/Rect[413 629 425 638]/Border[0 0 0]/H/N>> endobj 26103 0 obj <>/P 9885 0 R/Type/Annot/A 26339 0 R/Subtype/Link/Rect[412 619 424 628]/Border[0 0 0]/H/N>> endobj 26104 0 obj <>/P 9885 0 R/Type/Annot/A 26337 0 R/Subtype/Link/Rect[429 589 445 599]/Border[0 0 0]/H/N>> endobj 26105 0 obj <>/P 9885 0 R/Type/Annot/A 26334 0 R/Subtype/Link/Rect[446 589 460 598]/Border[0 0 0]/H/N>> endobj 26106 0 obj <>/P 9885 0 R/Type/Annot/A 26332 0 R/Subtype/Link/Rect[462 589 476 598]/Border[0 0 0]/H/N>> endobj 26107 0 obj <>/P 9885 0 R/Type/Annot/A 26329 0 R/Subtype/Link/Rect[478 589 495 599]/Border[0 0 0]/H/N>> endobj 26108 0 obj <>/P 9885 0 R/Type/Annot/A 26326 0 R/Subtype/Link/Rect[495 589 509 598]/Border[0 0 0]/H/N>> endobj 26109 0 obj <>/P 9885 0 R/Type/Annot/A 26325 0 R/Subtype/Link/Rect[359 579 373 588]/Border[0 0 0]/H/N>> endobj 26110 0 obj <>/P 9885 0 R/Type/Annot/A 26321 0 R/Subtype/Link/Rect[375 579 389 588]/Border[0 0 0]/H/N>> endobj 26111 0 obj <>/P 9885 0 R/Type/Annot/A 26318 0 R/Subtype/Link/Rect[391 579 403 588]/Border[0 0 0]/H/N>> endobj 26112 0 obj <>/P 9885 0 R/Type/Annot/A 26316 0 R/Subtype/Link/Rect[397 569 414 579]/Border[0 0 0]/H/N>> endobj 26113 0 obj <>/P 9885 0 R/Type/Annot/A 26314 0 R/Subtype/Link/Rect[415 569 427 578]/Border[0 0 0]/H/N>> endobj 26114 0 obj <>/P 9885 0 R/Type/Annot/A 26311 0 R/Subtype/Link/Rect[368 559 385 569]/Border[0 0 0]/H/N>> endobj 26115 0 obj <>/P 9885 0 R/Type/Annot/A 26308 0 R/Subtype/Link/Rect[386 559 398 568]/Border[0 0 0]/H/N>> endobj 26116 0 obj <>/P 9885 0 R/Type/Annot/A 26306 0 R/Subtype/Link/Rect[363 549 377 558]/Border[0 0 0]/H/N>> endobj 26117 0 obj <>/P 9885 0 R/Type/Annot/A 26303 0 R/Subtype/Link/Rect[379 549 393 558]/Border[0 0 0]/H/N>> endobj 26118 0 obj <>/P 9885 0 R/Type/Annot/A 26266 0 R/Subtype/Link/Rect[395 549 409 558]/Border[0 0 0]/H/N>> endobj 26119 0 obj <>/P 9885 0 R/Type/Annot/A 26299 0 R/Subtype/Link/Rect[411 549 424 558]/Border[0 0 0]/H/N>> endobj 26120 0 obj <>/P 9885 0 R/Type/Annot/A 26297 0 R/Subtype/Link/Rect[426 549 443 559]/Border[0 0 0]/H/N>> endobj 26121 0 obj <>/P 9885 0 R/Type/Annot/A 26295 0 R/Subtype/Link/Rect[444 549 456 558]/Border[0 0 0]/H/N>> endobj 26122 0 obj <>/P 9885 0 R/Type/Annot/A 26293 0 R/Subtype/Link/Rect[375 539 392 549]/Border[0 0 0]/H/N>> endobj 26123 0 obj <>/P 9885 0 R/Type/Annot/A 26291 0 R/Subtype/Link/Rect[393 539 407 548]/Border[0 0 0]/H/N>> endobj 26124 0 obj <>/P 9885 0 R/Type/Annot/A 26288 0 R/Subtype/Link/Rect[409 539 422 548]/Border[0 0 0]/H/N>> endobj 26125 0 obj <>/P 9885 0 R/Type/Annot/A 26284 0 R/Subtype/Link/Rect[424 539 438 548]/Border[0 0 0]/H/N>> endobj 26126 0 obj <>/P 9885 0 R/Type/Annot/A 26280 0 R/Subtype/Link/Rect[440 539 457 549]/Border[0 0 0]/H/N>> endobj 26127 0 obj <>/P 9885 0 R/Type/Annot/A 26277 0 R/Subtype/Link/Rect[457 539 471 548]/Border[0 0 0]/H/N>> endobj 26128 0 obj <>/P 9885 0 R/Type/Annot/A 26275 0 R/Subtype/Link/Rect[473 539 487 548]/Border[0 0 0]/H/N>> endobj 26129 0 obj <>/P 9885 0 R/Type/Annot/A 26273 0 R/Subtype/Link/Rect[359 529 375 539]/Border[0 0 0]/H/N>> endobj 26130 0 obj <>/P 9885 0 R/Type/Annot/A 26271 0 R/Subtype/Link/Rect[376 529 390 538]/Border[0 0 0]/H/N>> endobj 26131 0 obj <>/P 9885 0 R/Type/Annot/A 26269 0 R/Subtype/Link/Rect[392 529 406 538]/Border[0 0 0]/H/N>> endobj 26132 0 obj <>/P 9885 0 R/Type/Annot/A 26265 0 R/Subtype/Link/Rect[408 529 420 538]/Border[0 0 0]/H/N>> endobj 26133 0 obj <>/P 9885 0 R/Type/Annot/A 26261 0 R/Subtype/Link/Rect[414 519 426 528]/Border[0 0 0]/H/N>> endobj 26134 0 obj <>/P 9885 0 R/Type/Annot/A 26258 0 R/Subtype/Link/Rect[412 509 428 519]/Border[0 0 0]/H/N>> endobj 26135 0 obj <>/P 9885 0 R/Type/Annot/A 26255 0 R/Subtype/Link/Rect[429 509 443 518]/Border[0 0 0]/H/N>> endobj 26136 0 obj <>/P 9885 0 R/Type/Annot/A 26252 0 R/Subtype/Link/Rect[445 509 459 518]/Border[0 0 0]/H/N>> endobj 26137 0 obj <>/P 9885 0 R/Type/Annot/A 26250 0 R/Subtype/Link/Rect[461 509 473 518]/Border[0 0 0]/H/N>> endobj 26138 0 obj <>/P 9885 0 R/Type/Annot/A 26248 0 R/Subtype/Link/Rect[389 489 403 498]/Border[0 0 0]/H/N>> endobj 26139 0 obj <>/P 9885 0 R/Type/Annot/A 26246 0 R/Subtype/Link/Rect[405 489 419 498]/Border[0 0 0]/H/N>> endobj 26140 0 obj <>/P 9885 0 R/Type/Annot/A 26244 0 R/Subtype/Link/Rect[421 489 435 498]/Border[0 0 0]/H/N>> endobj 26141 0 obj <>/P 9885 0 R/Type/Annot/A 26243 0 R/Subtype/Link/Rect[437 489 449 498]/Border[0 0 0]/H/N>> endobj 26142 0 obj <>/P 9885 0 R/Type/Annot/A 26241 0 R/Subtype/Link/Rect[375 479 389 488]/Border[0 0 0]/H/N>> endobj 26143 0 obj <>/P 9885 0 R/Type/Annot/A 26239 0 R/Subtype/Link/Rect[391 479 408 489]/Border[0 0 0]/H/N>> endobj 26144 0 obj <>/P 9885 0 R/Type/Annot/A 26237 0 R/Subtype/Link/Rect[408 479 422 488]/Border[0 0 0]/H/N>> endobj 26145 0 obj <>/P 9885 0 R/Type/Annot/A 26235 0 R/Subtype/Link/Rect[424 479 438 488]/Border[0 0 0]/H/N>> endobj 26146 0 obj <>/P 9885 0 R/Type/Annot/A 26413 0 R/Subtype/Link/Rect[440 479 452 488]/Border[0 0 0]/H/N>> endobj 26147 0 obj <>/P 9885 0 R/Type/Annot/A 26410 0 R/Subtype/Link/Rect[405 469 419 478]/Border[0 0 0]/H/N>> endobj 26148 0 obj <>/P 9885 0 R/Type/Annot/A 26408 0 R/Subtype/Link/Rect[421 469 433 478]/Border[0 0 0]/H/N>> endobj 26149 0 obj <>/P 9885 0 R/Type/Annot/A 26406 0 R/Subtype/Link/Rect[462 459 474 468]/Border[0 0 0]/H/N>> endobj 26150 0 obj <>/P 9885 0 R/Type/Annot/A 44677 0 R/Subtype/Link/Rect[405 449 421 459]/Border[0 0 0]/H/N>> endobj 26151 0 obj <>/P 9885 0 R/Type/Annot/A 26400 0 R/Subtype/Link/Rect[422 449 436 458]/Border[0 0 0]/H/N>> endobj 26152 0 obj <>/P 9885 0 R/Type/Annot/A 26397 0 R/Subtype/Link/Rect[438 449 452 458]/Border[0 0 0]/H/N>> endobj 26153 0 obj <>/P 9885 0 R/Type/Annot/A 44568 0 R/Subtype/Link/Rect[454 449 468 458]/Border[0 0 0]/H/N>> endobj 26154 0 obj <>/P 9885 0 R/Type/Annot/A 26392 0 R/Subtype/Link/Rect[470 449 484 458]/Border[0 0 0]/H/N>> endobj 26155 0 obj <>/P 9885 0 R/Type/Annot/A 44500 0 R/Subtype/Link/Rect[486 449 503 459]/Border[0 0 0]/H/N>> endobj 26156 0 obj <>/P 9885 0 R/Type/Annot/A 26388 0 R/Subtype/Link/Rect[503 449 517 458]/Border[0 0 0]/H/N>> endobj 26157 0 obj <>/P 9885 0 R/Type/Annot/A 44418 0 R/Subtype/Link/Rect[359 439 373 448]/Border[0 0 0]/H/N>> endobj 26158 0 obj <>/P 9885 0 R/Type/Annot/A 26384 0 R/Subtype/Link/Rect[375 439 387 448]/Border[0 0 0]/H/N>> endobj 26159 0 obj <>/P 9885 0 R/Type/Annot/A 44347 0 R/Subtype/Link/Rect[397 429 409 438]/Border[0 0 0]/H/N>> endobj 26160 0 obj <>/P 9885 0 R/Type/Annot/A 44325 0 R/Subtype/Link/Rect[429 419 443 428]/Border[0 0 0]/H/N>> endobj 26161 0 obj <>/P 9885 0 R/Type/Annot/A 26330 0 R/Subtype/Link/Rect[445 419 459 428]/Border[0 0 0]/H/N>> endobj 26162 0 obj <>/P 9885 0 R/Type/Annot/A 26375 0 R/Subtype/Link/Rect[461 419 475 428]/Border[0 0 0]/H/N>> endobj 26163 0 obj <>/P 9885 0 R/Type/Annot/A 26372 0 R/Subtype/Link/Rect[477 419 489 428]/Border[0 0 0]/H/N>> endobj 26164 0 obj <>/P 9885 0 R/Type/Annot/A 26323 0 R/Subtype/Link/Rect[397 409 409 418]/Border[0 0 0]/H/N>> endobj 26165 0 obj <>/P 9885 0 R/Type/Annot/A 26367 0 R/Subtype/Link/Rect[410 399 422 408]/Border[0 0 0]/H/N>> endobj 26166 0 obj <>/P 9885 0 R/Type/Annot/A 26364 0 R/Subtype/Link/Rect[397 389 409 398]/Border[0 0 0]/H/N>> endobj 26167 0 obj <>/P 9885 0 R/Type/Annot/A 26362 0 R/Subtype/Link/Rect[405 379 419 388]/Border[0 0 0]/H/N>> endobj 26168 0 obj <>/P 9885 0 R/Type/Annot/A 36840 0 R/Subtype/Link/Rect[421 379 435 388]/Border[0 0 0]/H/N>> endobj 26169 0 obj <>/P 9885 0 R/Type/Annot/A 26357 0 R/Subtype/Link/Rect[437 379 449 388]/Border[0 0 0]/H/N>> endobj 26170 0 obj <>/P 9885 0 R/Type/Annot/A 26354 0 R/Subtype/Link/Rect[397 369 409 378]/Border[0 0 0]/H/N>> endobj 26171 0 obj <>/P 9885 0 R/Type/Annot/A 26351 0 R/Subtype/Link/Rect[410 359 426 369]/Border[0 0 0]/H/N>> endobj 26172 0 obj <>/P 9885 0 R/Type/Annot/A 36681 0 R/Subtype/Link/Rect[427 359 439 368]/Border[0 0 0]/H/N>> endobj 26173 0 obj <>/P 9885 0 R/Type/Annot/A 26346 0 R/Subtype/Link/Rect[397 349 409 358]/Border[0 0 0]/H/N>> endobj 26174 0 obj <>/P 9885 0 R/Type/Annot/A 26343 0 R/Subtype/Link/Rect[405 339 415 348]/Border[0 0 0]/H/N>> endobj 26175 0 obj <>/P 9885 0 R/Type/Annot/A 26340 0 R/Subtype/Link/Rect[417 339 433 349]/Border[0 0 0]/H/N>> endobj 26176 0 obj <>/P 9885 0 R/Type/Annot/A 26338 0 R/Subtype/Link/Rect[434 339 448 348]/Border[0 0 0]/H/N>> endobj 26177 0 obj <>/P 9885 0 R/Type/Annot/A 26335 0 R/Subtype/Link/Rect[450 339 464 348]/Border[0 0 0]/H/N>> endobj 26178 0 obj <>/P 9885 0 R/Type/Annot/A 26331 0 R/Subtype/Link/Rect[466 339 480 348]/Border[0 0 0]/H/N>> endobj 26179 0 obj <>/P 9885 0 R/Type/Annot/A 26328 0 R/Subtype/Link/Rect[482 339 494 348]/Border[0 0 0]/H/N>> endobj 26180 0 obj <>/P 9885 0 R/Type/Annot/A 43589 0 R/Subtype/Link/Rect[397 329 405 338]/Border[0 0 0]/H/N>> endobj 26181 0 obj <>/P 9885 0 R/Type/Annot/A 26324 0 R/Subtype/Link/Rect[405 319 419 328]/Border[0 0 0]/H/N>> endobj 26182 0 obj <>/P 9885 0 R/Type/Annot/A 26320 0 R/Subtype/Link/Rect[421 319 435 328]/Border[0 0 0]/H/N>> endobj 26183 0 obj <>/P 9885 0 R/Type/Annot/A 43476 0 R/Subtype/Link/Rect[437 319 451 328]/Border[0 0 0]/H/N>> endobj 26184 0 obj <>/P 9885 0 R/Type/Annot/A 43450 0 R/Subtype/Link/Rect[453 319 467 328]/Border[0 0 0]/H/N>> endobj 26185 0 obj <>/P 9885 0 R/Type/Annot/A 26313 0 R/Subtype/Link/Rect[469 319 481 328]/Border[0 0 0]/H/N>> endobj 26186 0 obj <>/P 9885 0 R/Type/Annot/A 26310 0 R/Subtype/Link/Rect[397 309 409 318]/Border[0 0 0]/H/N>> endobj 26187 0 obj <>/P 9885 0 R/Type/Annot/A 31105 0 R/Subtype/Link/Rect[414 299 431 309]/Border[0 0 0]/H/N>> endobj 26188 0 obj <>/P 9885 0 R/Type/Annot/A 26305 0 R/Subtype/Link/Rect[432 299 446 308]/Border[0 0 0]/H/N>> endobj 26189 0 obj <>/P 9885 0 R/Type/Annot/A 26302 0 R/Subtype/Link/Rect[448 299 462 308]/Border[0 0 0]/H/N>> endobj 26190 0 obj <>/P 9885 0 R/Type/Annot/A 26300 0 R/Subtype/Link/Rect[464 299 476 308]/Border[0 0 0]/H/N>> endobj 26191 0 obj <>/P 9885 0 R/Type/Annot/A 26298 0 R/Subtype/Link/Rect[397 289 409 298]/Border[0 0 0]/H/N>> endobj 26192 0 obj <>/P 9885 0 R/Type/Annot/A 26296 0 R/Subtype/Link/Rect[388 279 401 289]/Border[0 0 0]/H/N>> endobj 26193 0 obj <>/P 9885 0 R/Type/Annot/A 43095 0 R/Subtype/Link/Rect[402 279 412 288]/Border[0 0 0]/H/N>> endobj 26194 0 obj <>/P 9885 0 R/Type/Annot/A 26290 0 R/Subtype/Link/Rect[414 279 428 288]/Border[0 0 0]/H/N>> endobj 26195 0 obj <>/P 9885 0 R/Type/Annot/A 26287 0 R/Subtype/Link/Rect[430 279 446 289]/Border[0 0 0]/H/N>> endobj 26196 0 obj <>/P 9885 0 R/Type/Annot/A 26283 0 R/Subtype/Link/Rect[447 279 461 288]/Border[0 0 0]/H/N>> endobj 26197 0 obj <>/P 9885 0 R/Type/Annot/A 26450 0 R/Subtype/Link/Rect[463 279 477 288]/Border[0 0 0]/H/N>> endobj 26198 0 obj <>/P 9885 0 R/Type/Annot/A 42896 0 R/Subtype/Link/Rect[479 279 493 288]/Border[0 0 0]/H/N>> endobj 26199 0 obj <>/P 9885 0 R/Type/Annot/A 29199 0 R/Subtype/Link/Rect[495 279 509 288]/Border[0 0 0]/H/N>> endobj 26200 0 obj <>/P 9885 0 R/Type/Annot/A 29151 0 R/Subtype/Link/Rect[359 269 373 278]/Border[0 0 0]/H/N>> endobj 26201 0 obj <>/P 9885 0 R/Type/Annot/A 26270 0 R/Subtype/Link/Rect[375 269 389 278]/Border[0 0 0]/H/N>> endobj 26202 0 obj <>/P 9885 0 R/Type/Annot/A 29069 0 R/Subtype/Link/Rect[391 269 405 278]/Border[0 0 0]/H/N>> endobj 26203 0 obj <>/P 9885 0 R/Type/Annot/A 26263 0 R/Subtype/Link/Rect[407 269 421 278]/Border[0 0 0]/H/N>> endobj 26204 0 obj <>/P 9885 0 R/Type/Annot/A 26259 0 R/Subtype/Link/Rect[423 269 437 278]/Border[0 0 0]/H/N>> endobj 26205 0 obj <>/P 9885 0 R/Type/Annot/A 26257 0 R/Subtype/Link/Rect[439 269 451 278]/Border[0 0 0]/H/N>> endobj 26206 0 obj <>/P 9885 0 R/Type/Annot/A 28433 0 R/Subtype/Link/Rect[374 259 384 268]/Border[0 0 0]/H/N>> endobj 26207 0 obj <>/P 9885 0 R/Type/Annot/A 28398 0 R/Subtype/Link/Rect[386 259 396 268]/Border[0 0 0]/H/N>> endobj 26208 0 obj <>/P 9885 0 R/Type/Annot/A 28353 0 R/Subtype/Link/Rect[398 259 410 268]/Border[0 0 0]/H/N>> endobj 26209 0 obj <>/P 9885 0 R/Type/Annot/A 42494 0 R/Subtype/Link/Rect[419 249 431 258]/Border[0 0 0]/H/N>> endobj 26210 0 obj <>/P 9885 0 R/Type/Annot/A 42454 0 R/Subtype/Link/Rect[397 239 409 248]/Border[0 0 0]/H/N>> endobj 26211 0 obj <>/P 9885 0 R/Type/Annot/A 26242 0 R/Subtype/Link/Rect[424 229 438 238]/Border[0 0 0]/H/N>> endobj 26212 0 obj <>/P 9885 0 R/Type/Annot/A 26240 0 R/Subtype/Link/Rect[440 229 452 238]/Border[0 0 0]/H/N>> endobj 26213 0 obj <>/P 9885 0 R/Type/Annot/A 26238 0 R/Subtype/Link/Rect[397 219 409 228]/Border[0 0 0]/H/N>> endobj 26214 0 obj <>/P 9885 0 R/Type/Annot/A 26236 0 R/Subtype/Link/Rect[429 209 441 218]/Border[0 0 0]/H/N>> endobj 26215 0 obj <>/P 9885 0 R/Type/Annot/A 26405 0 R/Subtype/Link/Rect[419 199 433 208]/Border[0 0 0]/H/N>> endobj 26216 0 obj <>/P 9885 0 R/Type/Annot/A 42224 0 R/Subtype/Link/Rect[435 199 449 208]/Border[0 0 0]/H/N>> endobj 26217 0 obj <>/P 9885 0 R/Type/Annot/A 42171 0 R/Subtype/Link/Rect[451 199 465 208]/Border[0 0 0]/H/N>> endobj 26218 0 obj <>/P 9885 0 R/Type/Annot/A 42131 0 R/Subtype/Link/Rect[467 199 479 208]/Border[0 0 0]/H/N>> endobj 26219 0 obj <>/P 9885 0 R/Type/Annot/A 26448 0 R/Subtype/Link/Rect[410 189 424 198]/Border[0 0 0]/H/N>> endobj 26220 0 obj <>/P 9885 0 R/Type/Annot/A 26445 0 R/Subtype/Link/Rect[426 189 438 198]/Border[0 0 0]/H/N>> endobj 26221 0 obj <>/P 9885 0 R/Type/Annot/A 26442 0 R/Subtype/Link/Rect[405 179 419 188]/Border[0 0 0]/H/N>> endobj 26222 0 obj <>/P 9885 0 R/Type/Annot/A 26440 0 R/Subtype/Link/Rect[421 179 435 188]/Border[0 0 0]/H/N>> endobj 26223 0 obj <>/P 9885 0 R/Type/Annot/A 41933 0 R/Subtype/Link/Rect[437 179 453 189]/Border[0 0 0]/H/N>> endobj 26224 0 obj <>/P 9885 0 R/Type/Annot/A 41898 0 R/Subtype/Link/Rect[454 179 468 188]/Border[0 0 0]/H/N>> endobj 26225 0 obj <>/P 9885 0 R/Type/Annot/A 26434 0 R/Subtype/Link/Rect[470 179 484 188]/Border[0 0 0]/H/N>> endobj 26226 0 obj <>/P 9885 0 R/Type/Annot/A 41787 0 R/Subtype/Link/Rect[486 179 500 188]/Border[0 0 0]/H/N>> endobj 26227 0 obj <>/P 9885 0 R/Type/Annot/A 26374 0 R/Subtype/Link/Rect[502 179 516 188]/Border[0 0 0]/H/N>> endobj 26228 0 obj <>/P 9885 0 R/Type/Annot/A 26427 0 R/Subtype/Link/Rect[359 169 375 179]/Border[0 0 0]/H/N>> endobj 26229 0 obj <>/P 9885 0 R/Type/Annot/A 41649 0 R/Subtype/Link/Rect[376 169 390 178]/Border[0 0 0]/H/N>> endobj 26230 0 obj <>/P 9885 0 R/Type/Annot/A 41604 0 R/Subtype/Link/Rect[392 169 406 178]/Border[0 0 0]/H/N>> endobj 26231 0 obj <>/P 9885 0 R/Type/Annot/A 26421 0 R/Subtype/Link/Rect[408 169 422 178]/Border[0 0 0]/H/N>> endobj 26232 0 obj <>/P 9885 0 R/Type/Annot/A 26419 0 R/Subtype/Link/Rect[424 169 436 178]/Border[0 0 0]/H/N>> endobj 26233 0 obj <>/P 9885 0 R/Type/Annot/A 26416 0 R/Subtype/Link/Rect[397 159 409 168]/Border[0 0 0]/H/N>> endobj 26234 0 obj <>/P 9885 0 R/Type/Annot/A 41440 0 R/Subtype/Link/Rect[418 149 426 158]/Border[0 0 0]/H/N>> endobj 26235 0 obj <> endobj 26236 0 obj <> endobj 26237 0 obj <> endobj 26238 0 obj <> endobj 26239 0 obj <> endobj 26240 0 obj <> endobj 26241 0 obj <> endobj 26242 0 obj <> endobj 26243 0 obj <> endobj 26244 0 obj <> endobj 26245 0 obj <> endobj 26246 0 obj <> endobj 26247 0 obj <> endobj 26248 0 obj <> endobj 26249 0 obj <> endobj 26250 0 obj <> endobj 26251 0 obj <> endobj 26252 0 obj <> endobj 26253 0 obj <> endobj 26254 0 obj <> endobj 26255 0 obj <> endobj 26256 0 obj <> endobj 26257 0 obj <> endobj 26258 0 obj <> endobj 26259 0 obj <> endobj 26260 0 obj <> endobj 26261 0 obj <> endobj 26262 0 obj <> endobj 26263 0 obj <> endobj 26264 0 obj <> endobj 26265 0 obj <> endobj 26266 0 obj <> endobj 26267 0 obj <> endobj 26268 0 obj <> endobj 26269 0 obj <> endobj 26270 0 obj <> endobj 26271 0 obj <> endobj 26272 0 obj <> endobj 26273 0 obj <> endobj 26274 0 obj <> endobj 26275 0 obj <> endobj 26276 0 obj <> endobj 26277 0 obj <> endobj 26278 0 obj <> endobj 26279 0 obj <> endobj 26280 0 obj <> endobj 26281 0 obj <> endobj 26282 0 obj <> endobj 26283 0 obj <> endobj 26284 0 obj <> endobj 26285 0 obj <> endobj 26286 0 obj <> endobj 26287 0 obj <> endobj 26288 0 obj <> endobj 26289 0 obj <> endobj 26290 0 obj <> endobj 26291 0 obj <> endobj 26292 0 obj <> endobj 26293 0 obj <> endobj 26294 0 obj <> endobj 26295 0 obj <> endobj 26296 0 obj <> endobj 26297 0 obj <> endobj 26298 0 obj <> endobj 26299 0 obj <> endobj 26300 0 obj <> endobj 26301 0 obj <> endobj 26302 0 obj <> endobj 26303 0 obj <> endobj 26304 0 obj <> endobj 26305 0 obj <> endobj 26306 0 obj <> endobj 26307 0 obj <> endobj 26308 0 obj <> endobj 26309 0 obj <> endobj 26310 0 obj <> endobj 26311 0 obj <> endobj 26312 0 obj <> endobj 26313 0 obj <> endobj 26314 0 obj <> endobj 26315 0 obj <> endobj 26316 0 obj <> endobj 26317 0 obj <> endobj 26318 0 obj <> endobj 26319 0 obj <> endobj 26320 0 obj <> endobj 26321 0 obj <> endobj 26322 0 obj <> endobj 26323 0 obj <> endobj 26324 0 obj <> endobj 26325 0 obj <> endobj 26326 0 obj <> endobj 26327 0 obj <> endobj 26328 0 obj <> endobj 26329 0 obj <> endobj 26330 0 obj <> endobj 26331 0 obj <> endobj 26332 0 obj <> endobj 26333 0 obj <> endobj 26334 0 obj <> endobj 26335 0 obj <> endobj 26336 0 obj <> endobj 26337 0 obj <> endobj 26338 0 obj <> endobj 26339 0 obj <> endobj 26340 0 obj <> endobj 26341 0 obj <> endobj 26342 0 obj <> endobj 26343 0 obj <> endobj 26344 0 obj <> endobj 26345 0 obj <> endobj 26346 0 obj <> endobj 26347 0 obj <> endobj 26348 0 obj <> endobj 26349 0 obj <> endobj 26350 0 obj <> endobj 26351 0 obj <> endobj 26352 0 obj <> endobj 26353 0 obj <> endobj 26354 0 obj <> endobj 26355 0 obj <> endobj 26356 0 obj <> endobj 26357 0 obj <> endobj 26358 0 obj <> endobj 26359 0 obj <> endobj 26360 0 obj <> endobj 26361 0 obj <> endobj 26362 0 obj <> endobj 26363 0 obj <> endobj 26364 0 obj <> endobj 26365 0 obj <> endobj 26366 0 obj <> endobj 26367 0 obj <> endobj 26368 0 obj <> endobj 26369 0 obj <> endobj 26370 0 obj <> endobj 26371 0 obj <> endobj 26372 0 obj <> endobj 26373 0 obj <> endobj 26374 0 obj <> endobj 26375 0 obj <> endobj 26376 0 obj <> endobj 26377 0 obj <> endobj 26378 0 obj <> endobj 26379 0 obj <> endobj 26380 0 obj <> endobj 26381 0 obj <> endobj 26382 0 obj <> endobj 26383 0 obj <> endobj 26384 0 obj <> endobj 26385 0 obj <> endobj 26386 0 obj <> endobj 26387 0 obj <> endobj 26388 0 obj <> endobj 26389 0 obj <> endobj 26390 0 obj <> endobj 26391 0 obj <> endobj 26392 0 obj <> endobj 26393 0 obj <> endobj 26394 0 obj <> endobj 26395 0 obj <> endobj 26396 0 obj <> endobj 26397 0 obj <> endobj 26398 0 obj <> endobj 26399 0 obj <> endobj 26400 0 obj <> endobj 26401 0 obj <> endobj 26402 0 obj <> endobj 26403 0 obj <> endobj 26404 0 obj <> endobj 26405 0 obj <> endobj 26406 0 obj <> endobj 26407 0 obj <> endobj 26408 0 obj <> endobj 26409 0 obj <> endobj 26410 0 obj <> endobj 26411 0 obj <> endobj 26412 0 obj <> endobj 26413 0 obj <> endobj 26414 0 obj <> endobj 26415 0 obj <> endobj 26416 0 obj <> endobj 26417 0 obj <> endobj 26418 0 obj <> endobj 26419 0 obj <> endobj 26420 0 obj <> endobj 26421 0 obj <> endobj 26422 0 obj <> endobj 26423 0 obj <> endobj 26424 0 obj <> endobj 26425 0 obj <> endobj 26426 0 obj <> endobj 26427 0 obj <> endobj 26428 0 obj <> endobj 26429 0 obj <> endobj 26430 0 obj <> endobj 26431 0 obj <> endobj 26432 0 obj <> endobj 26433 0 obj <> endobj 26434 0 obj <> endobj 26435 0 obj <> endobj 26436 0 obj <> endobj 26437 0 obj <> endobj 26438 0 obj <> endobj 26439 0 obj <> endobj 26440 0 obj <> endobj 26441 0 obj <> endobj 26442 0 obj <> endobj 26443 0 obj <> endobj 26444 0 obj <> endobj 26445 0 obj <> endobj 26446 0 obj <> endobj 26447 0 obj <> endobj 26448 0 obj <> endobj 26449 0 obj <> endobj 26450 0 obj <> endobj 26451 0 obj <> endobj 26452 0 obj <> endobj 26453 0 obj <> endobj 26454 0 obj <> endobj 26455 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 26456 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 26457 0 obj <> endobj 26458 0 obj <> endobj 26459 0 obj <> endobj 26460 0 obj <> endobj 26461 0 obj <> endobj 26462 0 obj <> endobj 26463 0 obj <> endobj 26464 0 obj <> stream q /X1 Do Q q endstream endobj 26465 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 26466 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 26467 0 obj <> stream HW]oV|篸ILO6ņ@(,{d9#A,y4;9b1^o5_meC?}4 UMS*yͲSgo/6z7Yϋ{xgg""dI45ݢP6ҜdKt{w ǐ=|_t_mAzRl!L-$[WZwmcVnKڿ^-h8k~$/њkSPW>muQf$'kNg"IYz99`Ii#r{>(}rG>* O}r}}7}7}7}ܷ}ܷ}g>+Wu[Vb%F,Z1K{ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZ-Z+1fi#hĘKYڽĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhE{ Vb%,^b{Z+1fVb{Z+1fVb{Z+1fVb{Z+1fVb"JYڽĈZ+1ficpo :Յ8AvCdT XJ+"ЊJ+JJZҪV(h5JZjV2J+,Zc֒k@)-@+-T=ȽĆamRZ cR ư)KiKY@KރKl,r/1f-{r/atVxZ*^b<-r/1d}2@K>KGr@%# R h{TȽxZ*^br-rs4^-7]qu8yG0tjS\~L(>mۘ[[oN>vd|Y97߳S҅gͧ~cuo>*oS5Gsi^=wpxuh]pXx<ƢvBn\^~0vch?kO.(_*?|mXBnV)iϽY/FV߬:NKTt_ Vek<~WWsZ~ymV7]ӓEJVࡱcv6㪤PWqoQE&p&W_f%gؼ0<|~jۮY[fJqrʷ{s~{&WK*_$[n{dt]yTpDB 6k\̡zzs1b< Ke"2k7=4f|';.zH~CmO?&]; %OGႣOPtBC/e`"%tDz:4y ?}jg~9}qlXڍJ{|_p$G%rL>ZOG<9r:VD: [SQ ȫ24" |ȅ8Ax&2`)Ҋ@+*J@+)hJZjV(hJZ@++ VkIYZKbr@)-@+-T=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘTȽĘ$F,{1 h{1 h{1 h{1 h{1 h{1 h{1 h{1 h{1 hG{1KkIX cR cR cR cR cR cR cR cR cRO c֒@%,i*qwaMWuon =zy" ږIW7,hN-rF4~yhSM: u4<\=_cYl[wwzCj> COκ}Őt_nN] '3>aKz~yg'm.X_vG mUM|F$_|ql n\~O?EWWuʛ~|S6 <׵N^죿xX`讖7a |ϯJ[Z=Jz#!wcq‰/0|7Nm\A/ KK*!qOײdae~<.m8ҦrO5xp:iD#{|C<`i8rt1~*: ] kDN;I' ނ"J®W8Rp=<>*9&DgigydQj"hI dz3SXbX(W?gChU&2NJZ }JCta sp%5ei ).:KNCD0x~IDD;~㋺1GB#k$f DD89Ug)sr&ʃ@^/u^#$/H,z jUt? v;9J^5g > endobj 26469 0 obj <> endobj 26470 0 obj <> endobj 26471 0 obj <> endobj 26472 0 obj <> endobj 26473 0 obj <> stream q /X1 Do Q q endstream endobj 26474 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 26475 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 26476 0 obj <> stream H[7WQ{x)ހ @5 X ؇ #+KnƁcO:oOO{?W"A`FwfZ?0Hq?(ۧݟӫOOݝ8_jq^n%6"^7xW/8ګw7 >}~, VQI^G_wt!fPRV7x/hܨ2}'<oh1)!2EZ2e {WZ4^q{ø7Ľa0 q{ qĽe[2-qow{G;ƽ#=q{ϸ}`>0q{YńkA3Z{%I-2Ec-S=Ťkbܓj&X㞤V3Zb-S{Zͤkbܓj&XKZeqORb-S{ZͤkbRL1Ij5ZeqORbm?&XuD1Z{eZb-S{Zäkbܓ&XKZeqORkb-S{ZäkbRL1Ij ZeqORkb-QLj)=IaRL1Ij Z`RLQXKZeZ{%I-2Ÿ'&X㞤b-QLj)=I-0Z$kbRL1IjI-2Ÿ'&XKZeqOR Lj)=I-0~Lj)kbRLQXu#4_pCzc# Mzћ;Wo/rNJ΋ub^l^ejqsyn6y7ٝ8=-}P>Sr?Tj]T'td. =Č\]a!ҭl?D'GG;~y/S-ׇ?0.Cʴ1r~OlP׻ϵVF*]La!uȲ6ȕ+:64_)U\ۥY> 5WJͱŬJS.h3N{hu)yn1m*3eQ9Z9q2KEBԑ.|\~<'5}[7O7x2( TeӠdӨƀ75o;wo i~J}h%T\uS&QSǂy*f9VyD#P(LͿk(g4kH]h93QzLEC(-찧FTЁPa_!R_Qc_Q_1"_ZKK1/ 򕚑ZKrٞ2x%e^t\O͝Pv᪙)IqIR5\Z*cMZg ۆ*jTҗ-U4UR5//4_9!B0?r_gNt[([ҌUcnU[:sZ͘[ḙkE PRV+D~i(Es+UjTBC)z@\ӷf$j[潡$<9=sp;|YP_^KYK(M)QRB8FuKy 7fUk m Ѣx Q CVP PFD9=4m( Sj\^H4WyjH<*ZP r2SjC-zS eH ]F0,yտK%J?* `b*+H[" ,@DUkHU:t؂M' ^zKJYyg JZUhxOP%/UrRs:dJ{JDQev2*sʬ)U^GR֫چ֫핪y_G>iKUzҿ Uz,4TKG\5T^G*yo2zJ:DQe5TUUfZKiZ2ОuT Uf{G34j=OBK}# .w&5#2s,R;x,JK{0e^֘/~|sK܊)x(t#Z@uԌ羵}٩ҩITQmf `Ef<x:b{*L'cxdyF446$7Qk|Xܣ> ̮<*o _]LCpTlR V(=4&Eʓ\o~DSHB7(nʋ-|TFOr62իȋXv硙!5EeMsX ̋c='FEhS4vUzM?|> ӷ5S}y cxx+Co|uCVϳ ƌ^aA*G<'γ(ߒ~ef'D)tMP}k>κ$9ʤ4>C(ظׇp&CgaͦA.{Y5O duDS.<6OZ-{+k/#@QUzc:1A\(8/{sD5SGy͊24OM J\ 9p!W^ @;ˀrM\l8#Ein/>3[P\0ԩ8$`ggCH@,4F'ϤMg .L%گ1v^n b4fZ{n }Fz7aq~~/hB\W+K%4Jˇ5rB}GebΫ9&Aڨ|+j5i{ 2'QU/!*xIJ fڌl[7t膺եL r_Є W@ qyMsW醵WÀW8멥P_Ըp΁a_vW-a[ D"$c TI[Һ ,[: \AxFU RBኾZOt(?n7ۏ$ 0Æendstream endobj 26477 0 obj <>/P 821 0 R/Type/Annot/A 26478 0 R/Subtype/Link/Rect[93.6001968 663.229004 182.292007 682.908997]/Border[0 0 0]/H/N>> endobj 26478 0 obj <> endobj 26479 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 26480 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 26481 0 obj <> endobj 26482 0 obj <> endobj 26483 0 obj <> endobj 26484 0 obj <> endobj 26485 0 obj <> endobj 26486 0 obj <> endobj 26487 0 obj <> stream q /X1 Do Q q endstream endobj 26488 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 26489 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 26490 0 obj <> stream H{o秸u )M(_$@⸻NvEJTm~Έl͜tbGxDxGO<>zv$o΢E6Ķ4>Μ3δu'sYӘhOs}fQwm35muFrƚ:* )MIL' $ŰcuileM_Rb堞f̻<+gnѳ$NTS_Z'ez@[*JxlٿNY|̽yO?cbf&*};%.2?QJO=+إ'5rY]BcW \2:@z;ީ*JAz>*} ҧ*} ҧ*} ҧ*}g*}g*}*}*}*}*}*} җ*} ҫ`hZKJ]:إK\`j.^MS+5vjjZ Lҫu`j.^MS+5r@z5Lҫu`jF.0RcHց@z5LS+5vR#ZKtz Lҫ`j.^MS+5r@z5Lҫ`jF.0RcHփ@z5LVjz0RcHփ" `j.^jS+5vRcN/5r@z5Lҫ `jF.0RcH6@z5LVj0RcH6J] Vj0R[D)ZKJ]:қ{C,+j}8RMdP+VPXARJ+T2+Lr+\ *BJ*R\YRcfI7keU,XN`;{=l֎]z/5v6إXRc`;{=l]z/5v%Y^j,vT=xX^j,{z/5oQKރK(zAƛRR`{{T=x[YRcfI7 z@RR`{VT!T!TTTT\.͒?r} z_eYпGN*U3TQb){83YZLnfVݦoOէHCm,} V$Β.ipXw,&r9&]wjD2:OͺG1>5'_'OaNDme_>_T<5[">=r( coϬK aH^-gksݮf7OFÏ[I\bѺd5n)t̜.65u[dqh@$'=`!GUGtsw/psm ~aq;]\O[?lfrC_}q<ݔEnD^Uy{.G:=|>:|n?xN7}럛nK]z@.RRc`{ TS{KF.{Kʸ,??J믫hT+gb+ysm ~ٴCllvgˋX\Ń I.ٿЋ 9O@nȒ8}g.MͺѢ"ęZD[Im:sm1X- o/?n4K=][^W.pԖ'™>4/#'lvjt&Rt/$rLtwn12ݲe& c7e!I \%/HNã$6J _Zrk7Y ߊPLF'JH:T0+[<.>şendstream endobj 26491 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 26492 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 26493 0 obj <> endobj 26494 0 obj <> stream q /X1 Do Q q endstream endobj 26495 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 26496 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 26497 0 obj <> stream HWk6_`F×H ( 4iHA]`Q֖g^aSwnLDWVof㫟_''Bgd,/Tf$Fedƚm"X͒]vm*]/ zHJ0&`}R^4 gbݥ?mUmՍyջ3[[Y+/׏S]fpw=,De= g6,)d?Ii.91DUD˜ga XB,yVNv!b$H$H"ԫH"ԫH"ԫH&H&H}N#9>r$\1"Gk1OZyVc"\1ϊc̳bZy>r"\1"GUk1,µ,B}ZEcE\b Xk1Yȵp-r"\} b̳bZyVcb̳k5Zy>r&\1`Řg#jµ,B}ZMc"\1"GՄk1Yȵp-ƀEcE\ b̳k5Z퓜p-<+V1`Řg1Y2+R3zZ%d 3d}^vjd!K6ӞmՍ6}ogԮgtS ϫw^T4,y2Sest{Wo(Ov^_cӓAfV]̊۩1<?> )2Yp;t^2yI*\MǾv0'eW79PB:fl{9.hӱu7 Lσ=]31s󈳔yu۹^_ŠW\ E>  C׏/ m3OsEfMUmWuS7[45qx3!R%B̪q &la/saso՚,p X߈qQ ҆z.'@ 7a!{cc#kȫM .G@ &4J!^< D3 ipאmv "\~d:}Y= rVn׮!PxI3aN{/U®)pHBc ?V]-,|(lDwM{>Scv3z 8Fe%Mp>=a!w h 5zYLp4m3aL@t=!JB~1TyϿ"v,{/1t9;KQ$ a˂]'(Uc_8 vc75Ku/~瘕CdֆIA%om`9Q){WA/; |+\(2/3.+=n8/;= /~?T{?}=BqP߻͘oV O OEnZP] :D>gW1Zy&fڏ=us*ۙ2\`? $U ynǾfyVCr9U|%"}f>,hz/氥Oei3c) i 1jw6ޥE~ȐKKT/( 3 bVo`д!@Q3 k2cbI Gk ÚeR`MϬ3̈Mߤq WN&R.7+ᾅOyH+?7$ҠpBˠ ی[rfK PT .LI,qK>|oU[?6Gť2S5oyvXr*05PrO>j3\~hw4O<>!!f;I{ >]0A:Mg)!duEDMT rnh[:f|5y3WCq~wjZ$ 2;?ƫmWѝqj!]]P+ufFO>ہj0u6EzG;è΁'c+c $Ƨ{t#vOQ§Rq7 ]pg+t^ܵ}4F4uao)HQLkYxߍc.Ǝ;!tG T펺B>iXi I֗| ZiQ%+ФREu-AUKOl_S c2tUp ^Ѥʊl TU%1n<^{^Mu7)Vm)X|pOϾ_e,Dbuܟ7sWjw_{ `f$ގ͈E%86OlC\饈ڐh$Ƙ^S,R9RlJd#G.^y6*tX*D(6 rX" (;J:z*0JکCaůՊbj UıY`xI4:2pՏuAh'EM 8%+CqozT]{b6hr*쩵)S矻BamzdDRî% o#/W xJ@ZECu+8_s.,`˥K.[2RQ 5;|3QHt@ڿ=ئxK`|UbHkH]R [q%R1u9yQ)PBi%MmW.4>K4Ht 3դdW@o,Eg7y9:;.:}>aPYԍEa%Fff=_ \P>7H%%V(UEl㬢P{ԃfUu׃m-]@do?;^ 2L8f#ƕE|:t#CJL.,0@nB($>XIoiv tSv_Oa>.l.F fX(Dh%֛*Y.%ȹ!1 énhG48~S78/ߜwyيVН?pȿ<:Pcpf=?{Cݸ_sHhχ\(EfYBK'!<Nm4BUddetLT'}VK!B|*hP7 y;Q u=돻m⛨@2sԐhFkAh~,FW2F*R^u @wʠڏDWٵ=%ZzʥBv07w+&G<[SGڿ=x@;tʪ81EH[I5DLUI6i:*g-B[] 씏 ׇ = Km/)BgD<"W.* 9Qs+gs;P}F y*x--=iɌ5û?`2;endstream endobj 26498 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 26499 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 26500 0 obj <> endobj 26501 0 obj <> stream q /X1 Do Q q endstream endobj 26502 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 26503 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 26504 0 obj <> stream HWn8}WQlY`'$X\'0nv[ٖӒx~u#;A]<$uO%r_}u:'" 2QˆJx$9/R1$mM(u{,X5UpP,d0'QqJVebC%x݇o&WLNj/#R4bMOG *#ڍ.# o@+'_b!AƓI7Nͷ 20샻 .&11@͠\(Q͠$rSwmb{g{{{{{{᱗{鱗{鱗{O>A'{W{W{WazS}>C{h][0D͠| Pj]A]A]պ6B{ej]A!=2D Pj]A!=2D͠jZ(D͠jZfP{O QkZfP{O Qk3(ZֵGT gֵ޵޵ Qk3(ZֵS-GTֵS-GT a節#umBT a節#umTպ6@!umTպ6B{j][D͠| Pj]A]A]պ6B{j]A!= D Pj]A!= D͠jZ(D͠jZfP{OQkZfP{OQk3(ZֵDT gֵ޵Rߋk'=Š(+߬.WzEd ΜH AU܇&ԇLf4X/Dr9`,t(`WlM!Xp6-/hK]oVA?|)]XO{(~Z1MG7!{>zorF.hJ8|{tu{::\a;Ĕ /{KtΙjM<ӜYjܙ41xT|\dlbVoܾtcsyߝ}i$h2އ8C꾏 Dlh߃ Dv:J^ݾ3a$& MP}.Z c67rljC}xH/q!wHADXJ:F KHc % 7EM2 t6JiE$yu^H6yD?S'(UrΤۄ 6C 7KjD3s_%bѭp["?s:F6oYqt?)蝗&َN^9!Q1H\4{j6I{8sI$5aHscID)dx6$[~h``bM5q JL|&%u1cZ%-KXΏ>/";b CSy礷 zXƦ7yu7.^90L!?eݐ"2Qyiuu֡ݩP"J' 6"I]gy3ft߇<{+ $*|*Tߺ}þ0r]OMaͦ>vƧ>s&:χE>٥0?.#ANi;s m&˶ۛOJ*oy텩Q,!nl7}l.Gui(sR]-8 i}`Ŵ^{mwjui˚֡?oE<`_c@=z]uw:qMYC5<~ę%tN|/O.-B9ufSmGX\ Yet_H j9 RB*PdSu.)Jm; uKglf\Wʈ (zS_p;+JF6MaIejch!\þXYĘye[8_-(a$>86Aat=.YTEW)LRS}]lTUdd?UB";8 X01@^Jxe|(pس&fr(f;x6̞QGi[a~JQ5 Phq(=cbeae]B&z%yWi.^{9rp= p㯢>}2{vbD5l)(Md#t5I)SFO&ެmkP a`G /*/$~f]!40; fʢ''|V($K_}9Y(in*4He]~$r ?>Rw\6Kw# '?cH[33%sfRی.-(nzB:-$f؎zTU 6ÏR[RW|^rNO%OP¢U Cujg(;G97t(`jBKSYr祡Qj93)V"25kr}!ļʦ^QgWY/Wc:2h , )tgԶz^mK\~7+xY|M->_ְz+QԪL3ruudʕj5|BY7 IRTPRœ+uUwwQcPu' Xӭq2PϏ*C8{-LMZ|*:9rOvfjJSB3Y8xxud zuQaU (utm a4C׺;36ϛfj?3S=;$Rpʨ^+B!B;Hmy.Ws{ËEJٌ"jr TN6:W#^!BYr(7|hp\ ++Dj@/(NXTX?T]K4@Fx* ؑV7c4T]!~:$lWؿZh݇24endstream endobj 26505 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 26506 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 26507 0 obj <> endobj 26508 0 obj <> endobj 26509 0 obj <> endobj 26510 0 obj <> endobj 26511 0 obj <> endobj 26512 0 obj <> endobj 26513 0 obj <> stream q /X1 Do Q q endstream endobj 26514 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 26515 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 26516 0 obj <> stream HW]o}_2M.eV"Ki&ʲ4SYn{]풳T\M!!wpzI_> RyszKLxŸB̈iɇt.2MN&oכ_÷~Y/zOEzIg"iq@QkB~ PkB~ Qz?(µ~ QpC>p"\E֏!PVc"Uk1D*µ~ QpZ?(B}ZE֏!PVc&\c"\c Y*e_HN<-n<3O:lҟ x>ނeZ Wԙ?7׫qzJhցmD(I+4R)5n?5.N69e\A'GZ!*T3<LIEf-r"L,:tp>4\@NtUR7* g#g $H#k#-n2Ebyun@ @t^">urΫ sw -A [=£Ys^>u"<XM>b"+L~N0~Rh|:S0y[@w ќm#c}G;}Z7ˇU#w&SS~ί-Wwϧj"i1Ow.˥m:D&Cvb5˻EyB4qL6M%,7%<< Sݶq I笮F4 ++_ xOE޻;*8ta;rIh*%Rf"QjjGx4~? p!VHQ.%nwRU/iEA-=$QZUy,iYc*ԧ:s)2匬4*!; i #u?pfO׻ bLn VW,-w4gBeB "PO-5NFڟIU~ql{`<ڊrSYeu<>4f."+F+(t?$FsH?$l{s\mETfv i4. ]PJA["V~P׏/˛C_>O&Aߖ%~cA4n&3Wv7~ow5%6_<>Vmm<$ErYm5֞񴘍9xmoAPȤe2[a00g4=Cr в䚸_כnV69㨈Cfj`ZDr$uҟ6ZH_ Պ)Q12U@ 6vu(pdOeI/{u?4Z,+E[y}桬ޤ>еq#zK]1ϣJn蓄m omC D[ $CbV"V5k3^ xҍxՏ')҃QA4h d_'gWqo`&ī8W/bmZ+ä j tWěiH:^)1 VGhGe/. X+ƣ_Y9ᑫ,÷Ofjke]o+?@봳WQ?3տV?KiЦƖz}B 9H i.˟a[_ߗ",DP\^nűLhp* Vj5JACX'm×:_`V5{;¨aRw( #965/O  Zumcd*éĮAŠs^m0=_]Ӊ 2;A.`lMdKz,[X3/~1CQ; f9*=`Ou]cVIMh0?btN,.obcS<7y8=@yR^j6PhFڄU=Vk}jBN*V&68 SI*/5WA|Ö8E65Qp,O#nfQnv&s\Y|uh"ǫTFc G1\wAib2LL͎`aG[E1-2ʻ&1pn^ ;hi~SMH-(]>⢘_zA ٕw S@D Ũus9sHYUjBϤI { ¨=u-Zn6zܢOTTef׫OaIJG1\^YGL>d>HRX@!tq 0f8…'SGEI![x!{xJ~ OZgHʇĭEV=:"qFaU%:d)M# [+?gI~Idx&<ie,Rmoϯ/66..ijq[h2 E>a8D>jFjTcj/f}+r:܈Y ^?7o~>flM5O0 ګ/SVjq1$_!xe emkߦܦ5z\je"{'6@[H?)Ah%Eky-B#QCVHfm P$s! 2kJ|?Rv֖@ΟH=# hsJ+ݯ\)JvGh 1@T?ZSMg;W7bH6쐼ueXR"t[|zl9s&›)n5NSक߼ 4H e e4ቐÌB(kas:P u_1"E +rptƄhs HPuJh8DfF#B{94r< >)֋4O5y+$DJlb j%:{R.]sgjq99_?endstream endobj 26517 0 obj <>/P 9603 0 R/Type/Annot/A 26791 0 R/Subtype/Link/Rect[226 670 240 679]/Border[0 0 0]/H/N>> endobj 26518 0 obj <>/P 9603 0 R/Type/Annot/A 26790 0 R/Subtype/Link/Rect[242 670 254 679]/Border[0 0 0]/H/N>> endobj 26519 0 obj <>/P 9603 0 R/Type/Annot/A 26787 0 R/Subtype/Link/Rect[217 660 231 669]/Border[0 0 0]/H/N>> endobj 26520 0 obj <>/P 9603 0 R/Type/Annot/A 26784 0 R/Subtype/Link/Rect[233 660 247 669]/Border[0 0 0]/H/N>> endobj 26521 0 obj <>/P 9603 0 R/Type/Annot/A 26780 0 R/Subtype/Link/Rect[249 660 263 669]/Border[0 0 0]/H/N>> endobj 26522 0 obj <>/P 9603 0 R/Type/Annot/A 26777 0 R/Subtype/Link/Rect[265 660 281 670]/Border[0 0 0]/H/N>> endobj 26523 0 obj <>/P 9603 0 R/Type/Annot/A 26774 0 R/Subtype/Link/Rect[282 660 294 669]/Border[0 0 0]/H/N>> endobj 26524 0 obj <>/P 9603 0 R/Type/Annot/A 26770 0 R/Subtype/Link/Rect[217 650 231 659]/Border[0 0 0]/H/N>> endobj 26525 0 obj <>/P 9603 0 R/Type/Annot/A 26766 0 R/Subtype/Link/Rect[233 650 249 660]/Border[0 0 0]/H/N>> endobj 26526 0 obj <>/P 9603 0 R/Type/Annot/A 26763 0 R/Subtype/Link/Rect[250 650 264 659]/Border[0 0 0]/H/N>> endobj 26527 0 obj <>/P 9603 0 R/Type/Annot/A 26760 0 R/Subtype/Link/Rect[266 650 280 659]/Border[0 0 0]/H/N>> endobj 26528 0 obj <>/P 9603 0 R/Type/Annot/A 26757 0 R/Subtype/Link/Rect[282 650 294 659]/Border[0 0 0]/H/N>> endobj 26529 0 obj <>/P 9603 0 R/Type/Annot/A 26755 0 R/Subtype/Link/Rect[192 630 202 639]/Border[0 0 0]/H/N>> endobj 26530 0 obj <>/P 9603 0 R/Type/Annot/A 26753 0 R/Subtype/Link/Rect[204 630 214 639]/Border[0 0 0]/H/N>> endobj 26531 0 obj <>/P 9603 0 R/Type/Annot/A 26752 0 R/Subtype/Link/Rect[216 630 228 639]/Border[0 0 0]/H/N>> endobj 26532 0 obj <>/P 9603 0 R/Type/Annot/A 26750 0 R/Subtype/Link/Rect[186 620 195 629]/Border[0 0 0]/H/N>> endobj 26533 0 obj <>/P 9603 0 R/Type/Annot/A 26749 0 R/Subtype/Link/Rect[197 620 207 629]/Border[0 0 0]/H/N>> endobj 26534 0 obj <>/P 9603 0 R/Type/Annot/A 26748 0 R/Subtype/Link/Rect[209 620 226 630]/Border[0 0 0]/H/N>> endobj 26535 0 obj <>/P 9603 0 R/Type/Annot/A 26747 0 R/Subtype/Link/Rect[227 620 241 629]/Border[0 0 0]/H/N>> endobj 26536 0 obj <>/P 9603 0 R/Type/Annot/A 26746 0 R/Subtype/Link/Rect[243 620 257 629]/Border[0 0 0]/H/N>> endobj 26537 0 obj <>/P 9603 0 R/Type/Annot/A 26745 0 R/Subtype/Link/Rect[259 620 271 629]/Border[0 0 0]/H/N>> endobj 26538 0 obj <>/P 9603 0 R/Type/Annot/A 26744 0 R/Subtype/Link/Rect[212 610 224 619]/Border[0 0 0]/H/N>> endobj 26539 0 obj <>/P 9603 0 R/Type/Annot/A 26743 0 R/Subtype/Link/Rect[188 600 200 610]/Border[0 0 0]/H/N>> endobj 26540 0 obj <>/P 9603 0 R/Type/Annot/A 26742 0 R/Subtype/Link/Rect[201 600 211 609]/Border[0 0 0]/H/N>> endobj 26541 0 obj <>/P 9603 0 R/Type/Annot/A 26741 0 R/Subtype/Link/Rect[213 600 227 609]/Border[0 0 0]/H/N>> endobj 26542 0 obj <>/P 9603 0 R/Type/Annot/A 26740 0 R/Subtype/Link/Rect[229 600 241 609]/Border[0 0 0]/H/N>> endobj 26543 0 obj <>/P 9603 0 R/Type/Annot/A 26739 0 R/Subtype/Link/Rect[222 590 234 599]/Border[0 0 0]/H/N>> endobj 26544 0 obj <>/P 9603 0 R/Type/Annot/A 26738 0 R/Subtype/Link/Rect[274 580 286 589]/Border[0 0 0]/H/N>> endobj 26545 0 obj <>/P 9603 0 R/Type/Annot/A 26799 0 R/Subtype/Link/Rect[199 570 211 579]/Border[0 0 0]/H/N>> endobj 26546 0 obj <>/P 9603 0 R/Type/Annot/A 26796 0 R/Subtype/Link/Rect[241 560 257 570]/Border[0 0 0]/H/N>> endobj 26547 0 obj <>/P 9603 0 R/Type/Annot/A 26793 0 R/Subtype/Link/Rect[258 560 270 569]/Border[0 0 0]/H/N>> endobj 26548 0 obj <>/P 9603 0 R/Type/Annot/A 44712 0 R/Subtype/Link/Rect[190 550 202 559]/Border[0 0 0]/H/N>> endobj 26549 0 obj <>/P 9603 0 R/Type/Annot/A 26789 0 R/Subtype/Link/Rect[202 540 214 549]/Border[0 0 0]/H/N>> endobj 26550 0 obj <>/P 9603 0 R/Type/Annot/A 26785 0 R/Subtype/Link/Rect[193 530 207 539]/Border[0 0 0]/H/N>> endobj 26551 0 obj <>/P 9603 0 R/Type/Annot/A 26782 0 R/Subtype/Link/Rect[209 530 225 540]/Border[0 0 0]/H/N>> endobj 26552 0 obj <>/P 9603 0 R/Type/Annot/A 26778 0 R/Subtype/Link/Rect[226 530 240 539]/Border[0 0 0]/H/N>> endobj 26553 0 obj <>/P 9603 0 R/Type/Annot/A 26775 0 R/Subtype/Link/Rect[242 530 254 539]/Border[0 0 0]/H/N>> endobj 26554 0 obj <>/P 9603 0 R/Type/Annot/A 26771 0 R/Subtype/Link/Rect[190 520 202 529]/Border[0 0 0]/H/N>> endobj 26555 0 obj <>/P 9603 0 R/Type/Annot/A 26767 0 R/Subtype/Link/Rect[222 510 232 519]/Border[0 0 0]/H/N>> endobj 26556 0 obj <>/P 9603 0 R/Type/Annot/A 37725 0 R/Subtype/Link/Rect[234 510 242 519]/Border[0 0 0]/H/N>> endobj 26557 0 obj <>/P 9603 0 R/Type/Annot/A 26919 0 R/Subtype/Link/Rect[260 500 268 509]/Border[0 0 0]/H/N>> endobj 26558 0 obj <>/P 9603 0 R/Type/Annot/A 26917 0 R/Subtype/Link/Rect[236 490 244 499]/Border[0 0 0]/H/N>> endobj 26559 0 obj <>/P 9603 0 R/Type/Annot/A 44342 0 R/Subtype/Link/Rect[176 480 190 489]/Border[0 0 0]/H/N>> endobj 26560 0 obj <>/P 9603 0 R/Type/Annot/A 26912 0 R/Subtype/Link/Rect[192 480 204 489]/Border[0 0 0]/H/N>> endobj 26561 0 obj <>/P 9603 0 R/Type/Annot/A 26910 0 R/Subtype/Link/Rect[226 470 234 479]/Border[0 0 0]/H/N>> endobj 26562 0 obj <>/P 9603 0 R/Type/Annot/A 26907 0 R/Subtype/Link/Rect[231 460 241 469]/Border[0 0 0]/H/N>> endobj 26563 0 obj <>/P 9603 0 R/Type/Annot/A 26904 0 R/Subtype/Link/Rect[243 460 255 469]/Border[0 0 0]/H/N>> endobj 26564 0 obj <>/P 9603 0 R/Type/Annot/A 44162 0 R/Subtype/Link/Rect[222 450 234 460]/Border[0 0 0]/H/N>> endobj 26565 0 obj <>/P 9603 0 R/Type/Annot/A 26899 0 R/Subtype/Link/Rect[235 450 245 459]/Border[0 0 0]/H/N>> endobj 26566 0 obj <>/P 9603 0 R/Type/Annot/A 26896 0 R/Subtype/Link/Rect[247 450 264 460]/Border[0 0 0]/H/N>> endobj 26567 0 obj <>/P 9603 0 R/Type/Annot/A 26892 0 R/Subtype/Link/Rect[264 450 276 459]/Border[0 0 0]/H/N>> endobj 26568 0 obj <>/P 9603 0 R/Type/Annot/A 26890 0 R/Subtype/Link/Rect[260 440 268 449]/Border[0 0 0]/H/N>> endobj 26569 0 obj <>/P 9603 0 R/Type/Annot/A 26888 0 R/Subtype/Link/Rect[265 430 273 439]/Border[0 0 0]/H/N>> endobj 26570 0 obj <>/P 9603 0 R/Type/Annot/A 26885 0 R/Subtype/Link/Rect[255 420 263 429]/Border[0 0 0]/H/N>> endobj 26571 0 obj <>/P 9603 0 R/Type/Annot/A 26882 0 R/Subtype/Link/Rect[212 410 225 420]/Border[0 0 0]/H/N>> endobj 26572 0 obj <>/P 9603 0 R/Type/Annot/A 26880 0 R/Subtype/Link/Rect[225 410 233 419]/Border[0 0 0]/H/N>> endobj 26573 0 obj <>/P 9603 0 R/Type/Annot/A 43837 0 R/Subtype/Link/Rect[212 400 225 410]/Border[0 0 0]/H/N>> endobj 26574 0 obj <>/P 9603 0 R/Type/Annot/A 43801 0 R/Subtype/Link/Rect[225 400 233 409]/Border[0 0 0]/H/N>> endobj 26575 0 obj <>/P 9603 0 R/Type/Annot/A 43764 0 R/Subtype/Link/Rect[206 390 214 399]/Border[0 0 0]/H/N>> endobj 26576 0 obj <>/P 9603 0 R/Type/Annot/A 26873 0 R/Subtype/Link/Rect[205 380 222 390]/Border[0 0 0]/H/N>> endobj 26577 0 obj <>/P 9603 0 R/Type/Annot/A 26871 0 R/Subtype/Link/Rect[222 380 234 389]/Border[0 0 0]/H/N>> endobj 26578 0 obj <>/P 9603 0 R/Type/Annot/A 26869 0 R/Subtype/Link/Rect[250 370 260 379]/Border[0 0 0]/H/N>> endobj 26579 0 obj <>/P 9603 0 R/Type/Annot/A 43608 0 R/Subtype/Link/Rect[262 370 276 379]/Border[0 0 0]/H/N>> endobj 26580 0 obj <>/P 9603 0 R/Type/Annot/A 26865 0 R/Subtype/Link/Rect[278 370 292 379]/Border[0 0 0]/H/N>> endobj 26581 0 obj <>/P 9603 0 R/Type/Annot/A 26861 0 R/Subtype/Link/Rect[294 370 308 379]/Border[0 0 0]/H/N>> endobj 26582 0 obj <>/P 9603 0 R/Type/Annot/A 26858 0 R/Subtype/Link/Rect[151 360 163 369]/Border[0 0 0]/H/N>> endobj 26583 0 obj <>/P 9603 0 R/Type/Annot/A 26855 0 R/Subtype/Link/Rect[181 350 195 359]/Border[0 0 0]/H/N>> endobj 26584 0 obj <>/P 9603 0 R/Type/Annot/A 26853 0 R/Subtype/Link/Rect[197 350 211 359]/Border[0 0 0]/H/N>> endobj 26585 0 obj <>/P 9603 0 R/Type/Annot/A 26850 0 R/Subtype/Link/Rect[213 350 227 359]/Border[0 0 0]/H/N>> endobj 26586 0 obj <>/P 9603 0 R/Type/Annot/A 26847 0 R/Subtype/Link/Rect[229 350 241 359]/Border[0 0 0]/H/N>> endobj 26587 0 obj <>/P 9603 0 R/Type/Annot/A 26846 0 R/Subtype/Link/Rect[250 340 262 349]/Border[0 0 0]/H/N>> endobj 26588 0 obj <>/P 9603 0 R/Type/Annot/A 26844 0 R/Subtype/Link/Rect[222 330 230 339]/Border[0 0 0]/H/N>> endobj 26589 0 obj <>/P 9603 0 R/Type/Annot/A 26842 0 R/Subtype/Link/Rect[241 320 251 329]/Border[0 0 0]/H/N>> endobj 26590 0 obj <>/P 9603 0 R/Type/Annot/A 26840 0 R/Subtype/Link/Rect[253 320 261 329]/Border[0 0 0]/H/N>> endobj 26591 0 obj <>/P 9603 0 R/Type/Annot/A 43143 0 R/Subtype/Link/Rect[226 310 234 319]/Border[0 0 0]/H/N>> endobj 26592 0 obj <>/P 9603 0 R/Type/Annot/A 26837 0 R/Subtype/Link/Rect[255 300 263 309]/Border[0 0 0]/H/N>> endobj 26593 0 obj <>/P 9603 0 R/Type/Annot/A 43077 0 R/Subtype/Link/Rect[246 290 254 299]/Border[0 0 0]/H/N>> endobj 26594 0 obj <>/P 9603 0 R/Type/Annot/A 26834 0 R/Subtype/Link/Rect[241 280 257 290]/Border[0 0 0]/H/N>> endobj 26595 0 obj <>/P 9603 0 R/Type/Annot/A 26832 0 R/Subtype/Link/Rect[258 280 270 289]/Border[0 0 0]/H/N>> endobj 26596 0 obj <>/P 9603 0 R/Type/Annot/A 26830 0 R/Subtype/Link/Rect[212 270 229 280]/Border[0 0 0]/H/N>> endobj 26597 0 obj <>/P 9603 0 R/Type/Annot/A 26828 0 R/Subtype/Link/Rect[229 270 243 279]/Border[0 0 0]/H/N>> endobj 26598 0 obj <>/P 9603 0 R/Type/Annot/A 42875 0 R/Subtype/Link/Rect[245 270 257 279]/Border[0 0 0]/H/N>> endobj 26599 0 obj <>/P 9603 0 R/Type/Annot/A 26826 0 R/Subtype/Link/Rect[226 260 240 269]/Border[0 0 0]/H/N>> endobj 26600 0 obj <>/P 9603 0 R/Type/Annot/A 26824 0 R/Subtype/Link/Rect[242 260 254 269]/Border[0 0 0]/H/N>> endobj 26601 0 obj <>/P 9603 0 R/Type/Annot/A 26821 0 R/Subtype/Link/Rect[270 250 278 259]/Border[0 0 0]/H/N>> endobj 26602 0 obj <>/P 9603 0 R/Type/Annot/A 26819 0 R/Subtype/Link/Rect[217 240 233 250]/Border[0 0 0]/H/N>> endobj 26603 0 obj <>/P 9603 0 R/Type/Annot/A 26818 0 R/Subtype/Link/Rect[234 240 248 249]/Border[0 0 0]/H/N>> endobj 26604 0 obj <>/P 9603 0 R/Type/Annot/A 26815 0 R/Subtype/Link/Rect[250 240 264 249]/Border[0 0 0]/H/N>> endobj 26605 0 obj <>/P 9603 0 R/Type/Annot/A 26813 0 R/Subtype/Link/Rect[266 240 278 249]/Border[0 0 0]/H/N>> endobj 26606 0 obj <>/P 9603 0 R/Type/Annot/A 42586 0 R/Subtype/Link/Rect[241 230 249 239]/Border[0 0 0]/H/N>> endobj 26607 0 obj <>/P 9603 0 R/Type/Annot/A 26810 0 R/Subtype/Link/Rect[212 220 224 229]/Border[0 0 0]/H/N>> endobj 26608 0 obj <>/P 9603 0 R/Type/Annot/A 42516 0 R/Subtype/Link/Rect[236 210 244 219]/Border[0 0 0]/H/N>> endobj 26609 0 obj <>/P 9603 0 R/Type/Annot/A 26808 0 R/Subtype/Link/Rect[226 200 236 209]/Border[0 0 0]/H/N>> endobj 26610 0 obj <>/P 9603 0 R/Type/Annot/A 26806 0 R/Subtype/Link/Rect[238 200 248 209]/Border[0 0 0]/H/N>> endobj 26611 0 obj <>/P 9603 0 R/Type/Annot/A 26804 0 R/Subtype/Link/Rect[250 200 264 209]/Border[0 0 0]/H/N>> endobj 26612 0 obj <>/P 9603 0 R/Type/Annot/A 26803 0 R/Subtype/Link/Rect[266 200 278 209]/Border[0 0 0]/H/N>> endobj 26613 0 obj <>/P 9603 0 R/Type/Annot/A 42335 0 R/Subtype/Link/Rect[226 190 236 199]/Border[0 0 0]/H/N>> endobj 26614 0 obj <>/P 9603 0 R/Type/Annot/A 26801 0 R/Subtype/Link/Rect[238 190 250 199]/Border[0 0 0]/H/N>> endobj 26615 0 obj <>/P 9603 0 R/Type/Annot/A 26800 0 R/Subtype/Link/Rect[231 180 241 189]/Border[0 0 0]/H/N>> endobj 26616 0 obj <>/P 9603 0 R/Type/Annot/A 26797 0 R/Subtype/Link/Rect[243 180 255 189]/Border[0 0 0]/H/N>> endobj 26617 0 obj <>/P 9603 0 R/Type/Annot/A 26794 0 R/Subtype/Link/Rect[279 170 287 179]/Border[0 0 0]/H/N>> endobj 26618 0 obj <>/P 9603 0 R/Type/Annot/A 42107 0 R/Subtype/Link/Rect[265 160 273 169]/Border[0 0 0]/H/N>> endobj 26619 0 obj <>/P 9603 0 R/Type/Annot/A 42068 0 R/Subtype/Link/Rect[236 150 244 159]/Border[0 0 0]/H/N>> endobj 26620 0 obj <>/P 9603 0 R/Type/Annot/A 26788 0 R/Subtype/Link/Rect[407 670 421 679]/Border[0 0 0]/H/N>> endobj 26621 0 obj <>/P 9603 0 R/Type/Annot/A 41979 0 R/Subtype/Link/Rect[423 670 439 680]/Border[0 0 0]/H/N>> endobj 26622 0 obj <>/P 9603 0 R/Type/Annot/A 26781 0 R/Subtype/Link/Rect[440 670 454 679]/Border[0 0 0]/H/N>> endobj 26623 0 obj <>/P 9603 0 R/Type/Annot/A 26823 0 R/Subtype/Link/Rect[456 670 470 679]/Border[0 0 0]/H/N>> endobj 26624 0 obj <>/P 9603 0 R/Type/Annot/A 26773 0 R/Subtype/Link/Rect[472 670 489 680]/Border[0 0 0]/H/N>> endobj 26625 0 obj <>/P 9603 0 R/Type/Annot/A 26769 0 R/Subtype/Link/Rect[489 670 503 679]/Border[0 0 0]/H/N>> endobj 26626 0 obj <>/P 9603 0 R/Type/Annot/A 26765 0 R/Subtype/Link/Rect[359 660 376 670]/Border[0 0 0]/H/N>> endobj 26627 0 obj <>/P 9603 0 R/Type/Annot/A 26762 0 R/Subtype/Link/Rect[377 660 389 669]/Border[0 0 0]/H/N>> endobj 26628 0 obj <>/P 9603 0 R/Type/Annot/A 26759 0 R/Subtype/Link/Rect[439 650 447 659]/Border[0 0 0]/H/N>> endobj 26629 0 obj <>/P 9603 0 R/Type/Annot/A 26920 0 R/Subtype/Link/Rect[439 640 449 649]/Border[0 0 0]/H/N>> endobj 26630 0 obj <>/P 9603 0 R/Type/Annot/A 41577 0 R/Subtype/Link/Rect[451 640 461 649]/Border[0 0 0]/H/N>> endobj 26631 0 obj <>/P 9603 0 R/Type/Annot/A 26916 0 R/Subtype/Link/Rect[463 640 473 649]/Border[0 0 0]/H/N>> endobj 26632 0 obj <>/P 9603 0 R/Type/Annot/A 26914 0 R/Subtype/Link/Rect[475 640 487 649]/Border[0 0 0]/H/N>> endobj 26633 0 obj <>/P 9603 0 R/Type/Annot/A 41464 0 R/Subtype/Link/Rect[444 630 452 639]/Border[0 0 0]/H/N>> endobj 26634 0 obj <>/P 9603 0 R/Type/Annot/A 26909 0 R/Subtype/Link/Rect[458 620 466 629]/Border[0 0 0]/H/N>> endobj 26635 0 obj <>/P 9603 0 R/Type/Annot/A 26906 0 R/Subtype/Link/Rect[458 610 466 619]/Border[0 0 0]/H/N>> endobj 26636 0 obj <>/P 9603 0 R/Type/Annot/A 26903 0 R/Subtype/Link/Rect[420 600 428 609]/Border[0 0 0]/H/N>> endobj 26637 0 obj <>/P 9603 0 R/Type/Annot/A 26901 0 R/Subtype/Link/Rect[454 590 462 599]/Border[0 0 0]/H/N>> endobj 26638 0 obj <>/P 9603 0 R/Type/Annot/A 26898 0 R/Subtype/Link/Rect[444 580 452 589]/Border[0 0 0]/H/N>> endobj 26639 0 obj <>/P 9603 0 R/Type/Annot/A 41249 0 R/Subtype/Link/Rect[444 570 452 579]/Border[0 0 0]/H/N>> endobj 26640 0 obj <>/P 9603 0 R/Type/Annot/A 26893 0 R/Subtype/Link/Rect[449 560 457 569]/Border[0 0 0]/H/N>> endobj 26641 0 obj <>/P 9603 0 R/Type/Annot/A 41179 0 R/Subtype/Link/Rect[497 550 509 559]/Border[0 0 0]/H/N>> endobj 26642 0 obj <>/P 9603 0 R/Type/Annot/A 41156 0 R/Subtype/Link/Rect[497 540 509 549]/Border[0 0 0]/H/N>> endobj 26643 0 obj <>/P 9603 0 R/Type/Annot/A 26886 0 R/Subtype/Link/Rect[395 520 407 529]/Border[0 0 0]/H/N>> endobj 26644 0 obj <>/P 9603 0 R/Type/Annot/A 26883 0 R/Subtype/Link/Rect[468 510 480 519]/Border[0 0 0]/H/N>> endobj 26645 0 obj <>/P 9603 0 R/Type/Annot/A 41047 0 R/Subtype/Link/Rect[497 500 509 509]/Border[0 0 0]/H/N>> endobj 26646 0 obj <>/P 9603 0 R/Type/Annot/A 40736 0 R/Subtype/Link/Rect[430 490 440 499]/Border[0 0 0]/H/N>> endobj 26647 0 obj <>/P 9603 0 R/Type/Annot/A 40694 0 R/Subtype/Link/Rect[442 490 454 499]/Border[0 0 0]/H/N>> endobj 26648 0 obj <>/P 9603 0 R/Type/Annot/A 26876 0 R/Subtype/Link/Rect[497 480 507 489]/Border[0 0 0]/H/N>> endobj 26649 0 obj <>/P 9603 0 R/Type/Annot/A 40105 0 R/Subtype/Link/Rect[359 470 371 479]/Border[0 0 0]/H/N>> endobj 26650 0 obj <>/P 9603 0 R/Type/Annot/A 39573 0 R/Subtype/Link/Rect[473 460 485 469]/Border[0 0 0]/H/N>> endobj 26651 0 obj <>/P 9603 0 R/Type/Annot/A 39520 0 R/Subtype/Link/Rect[482 450 494 459]/Border[0 0 0]/H/N>> endobj 26652 0 obj <>/P 9603 0 R/Type/Annot/A 26868 0 R/Subtype/Link/Rect[439 440 447 449]/Border[0 0 0]/H/N>> endobj 26653 0 obj <>/P 9603 0 R/Type/Annot/A 26866 0 R/Subtype/Link/Rect[425 430 433 439]/Border[0 0 0]/H/N>> endobj 26654 0 obj <>/P 9603 0 R/Type/Annot/A 26863 0 R/Subtype/Link/Rect[454 420 462 429]/Border[0 0 0]/H/N>> endobj 26655 0 obj <>/P 9603 0 R/Type/Annot/A 26859 0 R/Subtype/Link/Rect[444 410 452 419]/Border[0 0 0]/H/N>> endobj 26656 0 obj <>/P 9603 0 R/Type/Annot/A 26856 0 R/Subtype/Link/Rect[463 400 471 409]/Border[0 0 0]/H/N>> endobj 26657 0 obj <>/P 9603 0 R/Type/Annot/A 38300 0 R/Subtype/Link/Rect[468 390 476 399]/Border[0 0 0]/H/N>> endobj 26658 0 obj <>/P 9603 0 R/Type/Annot/A 26851 0 R/Subtype/Link/Rect[458 380 466 389]/Border[0 0 0]/H/N>> endobj 26659 0 obj <>/P 9603 0 R/Type/Annot/A 26848 0 R/Subtype/Link/Rect[463 370 471 379]/Border[0 0 0]/H/N>> endobj 26660 0 obj <>/P 9603 0 R/Type/Annot/A 36784 0 R/Subtype/Link/Rect[430 360 440 369]/Border[0 0 0]/H/N>> endobj 26661 0 obj <>/P 9603 0 R/Type/Annot/A 26845 0 R/Subtype/Link/Rect[442 360 452 369]/Border[0 0 0]/H/N>> endobj 26662 0 obj <>/P 9603 0 R/Type/Annot/A 26843 0 R/Subtype/Link/Rect[454 360 462 369]/Border[0 0 0]/H/N>> endobj 26663 0 obj <>/P 9603 0 R/Type/Annot/A 26841 0 R/Subtype/Link/Rect[449 350 457 359]/Border[0 0 0]/H/N>> endobj 26664 0 obj <>/P 9603 0 R/Type/Annot/A 26839 0 R/Subtype/Link/Rect[463 340 471 349]/Border[0 0 0]/H/N>> endobj 26665 0 obj <>/P 9603 0 R/Type/Annot/A 26838 0 R/Subtype/Link/Rect[502 330 510 339]/Border[0 0 0]/H/N>> endobj 26666 0 obj <>/P 9603 0 R/Type/Annot/A 26836 0 R/Subtype/Link/Rect[439 320 447 329]/Border[0 0 0]/H/N>> endobj 26667 0 obj <>/P 9603 0 R/Type/Annot/A 26835 0 R/Subtype/Link/Rect[458 310 468 319]/Border[0 0 0]/H/N>> endobj 26668 0 obj <>/P 9603 0 R/Type/Annot/A 26833 0 R/Subtype/Link/Rect[470 310 480 319]/Border[0 0 0]/H/N>> endobj 26669 0 obj <>/P 9603 0 R/Type/Annot/A 26831 0 R/Subtype/Link/Rect[482 310 490 319]/Border[0 0 0]/H/N>> endobj 26670 0 obj <>/P 9603 0 R/Type/Annot/A 26829 0 R/Subtype/Link/Rect[419 300 427 309]/Border[0 0 0]/H/N>> endobj 26671 0 obj <>/P 9603 0 R/Type/Annot/A 26827 0 R/Subtype/Link/Rect[392 290 404 299]/Border[0 0 0]/H/N>> endobj 26672 0 obj <>/P 9603 0 R/Type/Annot/A 33100 0 R/Subtype/Link/Rect[381 280 393 289]/Border[0 0 0]/H/N>> endobj 26673 0 obj <>/P 9603 0 R/Type/Annot/A 26862 0 R/Subtype/Link/Rect[396 270 404 279]/Border[0 0 0]/H/N>> endobj 26674 0 obj <>/P 9603 0 R/Type/Annot/A 26825 0 R/Subtype/Link/Rect[415 260 425 269]/Border[0 0 0]/H/N>> endobj 26675 0 obj <>/P 9603 0 R/Type/Annot/A 26822 0 R/Subtype/Link/Rect[427 260 441 269]/Border[0 0 0]/H/N>> endobj 26676 0 obj <>/P 9603 0 R/Type/Annot/A 26820 0 R/Subtype/Link/Rect[443 260 457 269]/Border[0 0 0]/H/N>> endobj 26677 0 obj <>/P 9603 0 R/Type/Annot/A 31801 0 R/Subtype/Link/Rect[459 260 476 270]/Border[0 0 0]/H/N>> endobj 26678 0 obj <>/P 9603 0 R/Type/Annot/A 26816 0 R/Subtype/Link/Rect[476 260 490 269]/Border[0 0 0]/H/N>> endobj 26679 0 obj <>/P 9603 0 R/Type/Annot/A 26814 0 R/Subtype/Link/Rect[492 260 504 269]/Border[0 0 0]/H/N>> endobj 26680 0 obj <>/P 9603 0 R/Type/Annot/A 26812 0 R/Subtype/Link/Rect[410 250 427 260]/Border[0 0 0]/H/N>> endobj 26681 0 obj <>/P 9603 0 R/Type/Annot/A 26811 0 R/Subtype/Link/Rect[427 250 441 259]/Border[0 0 0]/H/N>> endobj 26682 0 obj <>/P 9603 0 R/Type/Annot/A 26809 0 R/Subtype/Link/Rect[443 250 455 259]/Border[0 0 0]/H/N>> endobj 26683 0 obj <>/P 9603 0 R/Type/Annot/A 30228 0 R/Subtype/Link/Rect[398 240 410 249]/Border[0 0 0]/H/N>> endobj 26684 0 obj <>/P 9603 0 R/Type/Annot/A 26807 0 R/Subtype/Link/Rect[415 230 425 239]/Border[0 0 0]/H/N>> endobj 26685 0 obj <>/P 9603 0 R/Type/Annot/A 26805 0 R/Subtype/Link/Rect[427 230 441 239]/Border[0 0 0]/H/N>> endobj 26686 0 obj <>/P 9603 0 R/Type/Annot/A 30090 0 R/Subtype/Link/Rect[443 230 457 239]/Border[0 0 0]/H/N>> endobj 26687 0 obj <>/P 9603 0 R/Type/Annot/A 26802 0 R/Subtype/Link/Rect[459 230 476 240]/Border[0 0 0]/H/N>> endobj 26688 0 obj <>/P 9603 0 R/Type/Annot/A 29300 0 R/Subtype/Link/Rect[476 230 490 239]/Border[0 0 0]/H/N>> endobj 26689 0 obj <>/P 9603 0 R/Type/Annot/A 29262 0 R/Subtype/Link/Rect[359 220 376 230]/Border[0 0 0]/H/N>> endobj 26690 0 obj <>/P 9603 0 R/Type/Annot/A 26798 0 R/Subtype/Link/Rect[377 220 391 229]/Border[0 0 0]/H/N>> endobj 26691 0 obj <>/P 9603 0 R/Type/Annot/A 26795 0 R/Subtype/Link/Rect[393 220 404 229]/Border[0 0 0]/H/N>> endobj 26692 0 obj <>/P 9603 0 R/Type/Annot/A 26792 0 R/Subtype/Link/Rect[415 210 425 219]/Border[0 0 0]/H/N>> endobj 26693 0 obj <>/P 9603 0 R/Type/Annot/A 29115 0 R/Subtype/Link/Rect[427 210 441 219]/Border[0 0 0]/H/N>> endobj 26694 0 obj <>/P 9603 0 R/Type/Annot/A 26817 0 R/Subtype/Link/Rect[443 210 457 219]/Border[0 0 0]/H/N>> endobj 26695 0 obj <>/P 9603 0 R/Type/Annot/A 26786 0 R/Subtype/Link/Rect[459 210 473 219]/Border[0 0 0]/H/N>> endobj 26696 0 obj <>/P 9603 0 R/Type/Annot/A 26783 0 R/Subtype/Link/Rect[475 210 492 220]/Border[0 0 0]/H/N>> endobj 26697 0 obj <>/P 9603 0 R/Type/Annot/A 26779 0 R/Subtype/Link/Rect[492 210 506 219]/Border[0 0 0]/H/N>> endobj 26698 0 obj <>/P 9603 0 R/Type/Annot/A 26776 0 R/Subtype/Link/Rect[359 200 373 209]/Border[0 0 0]/H/N>> endobj 26699 0 obj <>/P 9603 0 R/Type/Annot/A 26772 0 R/Subtype/Link/Rect[375 200 389 209]/Border[0 0 0]/H/N>> endobj 26700 0 obj <>/P 9603 0 R/Type/Annot/A 26768 0 R/Subtype/Link/Rect[391 200 408 210]/Border[0 0 0]/H/N>> endobj 26701 0 obj <>/P 9603 0 R/Type/Annot/A 26764 0 R/Subtype/Link/Rect[408 200 422 209]/Border[0 0 0]/H/N>> endobj 26702 0 obj <>/P 9603 0 R/Type/Annot/A 26761 0 R/Subtype/Link/Rect[424 200 441 210]/Border[0 0 0]/H/N>> endobj 26703 0 obj <>/P 9603 0 R/Type/Annot/A 26758 0 R/Subtype/Link/Rect[442 200 456 209]/Border[0 0 0]/H/N>> endobj 26704 0 obj <>/P 9603 0 R/Type/Annot/A 26756 0 R/Subtype/Link/Rect[458 200 474 210]/Border[0 0 0]/H/N>> endobj 26705 0 obj <>/P 9603 0 R/Type/Annot/A 26754 0 R/Subtype/Link/Rect[475 200 489 209]/Border[0 0 0]/H/N>> endobj 26706 0 obj <>/P 9603 0 R/Type/Annot/A 26923 0 R/Subtype/Link/Rect[359 190 376 200]/Border[0 0 0]/H/N>> endobj 26707 0 obj <>/P 9603 0 R/Type/Annot/A 26751 0 R/Subtype/Link/Rect[377 190 391 199]/Border[0 0 0]/H/N>> endobj 26708 0 obj <>/P 9603 0 R/Type/Annot/A 26918 0 R/Subtype/Link/Rect[393 190 409 200]/Border[0 0 0]/H/N>> endobj 26709 0 obj <>/P 9603 0 R/Type/Annot/A 26915 0 R/Subtype/Link/Rect[410 190 424 199]/Border[0 0 0]/H/N>> endobj 26710 0 obj <>/P 9603 0 R/Type/Annot/A 26913 0 R/Subtype/Link/Rect[426 190 442 200]/Border[0 0 0]/H/N>> endobj 26711 0 obj <>/P 9603 0 R/Type/Annot/A 26911 0 R/Subtype/Link/Rect[443 190 455 199]/Border[0 0 0]/H/N>> endobj 26712 0 obj <>/P 9603 0 R/Type/Annot/A 26908 0 R/Subtype/Link/Rect[430 180 442 189]/Border[0 0 0]/H/N>> endobj 26713 0 obj <>/P 9603 0 R/Type/Annot/A 26905 0 R/Subtype/Link/Rect[430 170 442 179]/Border[0 0 0]/H/N>> endobj 26714 0 obj <>/P 9603 0 R/Type/Annot/A 26902 0 R/Subtype/Link/Rect[405 160 422 170]/Border[0 0 0]/H/N>> endobj 26715 0 obj <>/P 9603 0 R/Type/Annot/A 26900 0 R/Subtype/Link/Rect[423 160 437 169]/Border[0 0 0]/H/N>> endobj 26716 0 obj <>/P 9603 0 R/Type/Annot/A 26897 0 R/Subtype/Link/Rect[439 160 453 169]/Border[0 0 0]/H/N>> endobj 26717 0 obj <>/P 9603 0 R/Type/Annot/A 26895 0 R/Subtype/Link/Rect[455 160 469 169]/Border[0 0 0]/H/N>> endobj 26718 0 obj <>/P 9603 0 R/Type/Annot/A 26891 0 R/Subtype/Link/Rect[471 160 485 169]/Border[0 0 0]/H/N>> endobj 26719 0 obj <>/P 9603 0 R/Type/Annot/A 26889 0 R/Subtype/Link/Rect[487 160 503 170]/Border[0 0 0]/H/N>> endobj 26720 0 obj <>/P 9603 0 R/Type/Annot/A 26887 0 R/Subtype/Link/Rect[504 160 518 169]/Border[0 0 0]/H/N>> endobj 26721 0 obj <>/P 9603 0 R/Type/Annot/A 26884 0 R/Subtype/Link/Rect[359 150 376 160]/Border[0 0 0]/H/N>> endobj 26722 0 obj <>/P 9603 0 R/Type/Annot/A 26881 0 R/Subtype/Link/Rect[377 150 391 159]/Border[0 0 0]/H/N>> endobj 26723 0 obj <>/P 9603 0 R/Type/Annot/A 26879 0 R/Subtype/Link/Rect[393 150 406 159]/Border[0 0 0]/H/N>> endobj 26724 0 obj <>/P 9603 0 R/Type/Annot/A 26878 0 R/Subtype/Link/Rect[408 150 422 159]/Border[0 0 0]/H/N>> endobj 26725 0 obj <>/P 9603 0 R/Type/Annot/A 26877 0 R/Subtype/Link/Rect[424 150 438 159]/Border[0 0 0]/H/N>> endobj 26726 0 obj <>/P 9603 0 R/Type/Annot/A 26875 0 R/Subtype/Link/Rect[440 150 454 159]/Border[0 0 0]/H/N>> endobj 26727 0 obj <>/P 9603 0 R/Type/Annot/A 26874 0 R/Subtype/Link/Rect[456 150 473 160]/Border[0 0 0]/H/N>> endobj 26728 0 obj <>/P 9603 0 R/Type/Annot/A 26872 0 R/Subtype/Link/Rect[474 150 488 159]/Border[0 0 0]/H/N>> endobj 26729 0 obj <>/P 9603 0 R/Type/Annot/A 26870 0 R/Subtype/Link/Rect[359 140 376 150]/Border[0 0 0]/H/N>> endobj 26730 0 obj <>/P 9603 0 R/Type/Annot/A 26867 0 R/Subtype/Link/Rect[377 140 391 149]/Border[0 0 0]/H/N>> endobj 26731 0 obj <>/P 9603 0 R/Type/Annot/A 26894 0 R/Subtype/Link/Rect[393 140 409 150]/Border[0 0 0]/H/N>> endobj 26732 0 obj <>/P 9603 0 R/Type/Annot/A 26864 0 R/Subtype/Link/Rect[410 140 424 149]/Border[0 0 0]/H/N>> endobj 26733 0 obj <>/P 9603 0 R/Type/Annot/A 26860 0 R/Subtype/Link/Rect[426 140 440 149]/Border[0 0 0]/H/N>> endobj 26734 0 obj <>/P 9603 0 R/Type/Annot/A 26857 0 R/Subtype/Link/Rect[442 140 458 150]/Border[0 0 0]/H/N>> endobj 26735 0 obj <>/P 9603 0 R/Type/Annot/A 26854 0 R/Subtype/Link/Rect[459 140 473 149]/Border[0 0 0]/H/N>> endobj 26736 0 obj <>/P 9603 0 R/Type/Annot/A 26852 0 R/Subtype/Link/Rect[475 140 489 149]/Border[0 0 0]/H/N>> endobj 26737 0 obj <>/P 9603 0 R/Type/Annot/A 26849 0 R/Subtype/Link/Rect[491 140 505 149]/Border[0 0 0]/H/N>> endobj 26738 0 obj <> endobj 26739 0 obj <> endobj 26740 0 obj <> endobj 26741 0 obj <> endobj 26742 0 obj <> endobj 26743 0 obj <> endobj 26744 0 obj <> endobj 26745 0 obj <> endobj 26746 0 obj <> endobj 26747 0 obj <> endobj 26748 0 obj <> endobj 26749 0 obj <> endobj 26750 0 obj <> endobj 26751 0 obj <> endobj 26752 0 obj <> endobj 26753 0 obj <> endobj 26754 0 obj <> endobj 26755 0 obj <> endobj 26756 0 obj <> endobj 26757 0 obj <> endobj 26758 0 obj <> endobj 26759 0 obj <> endobj 26760 0 obj <> endobj 26761 0 obj <> endobj 26762 0 obj <> endobj 26763 0 obj <> endobj 26764 0 obj <> endobj 26765 0 obj <> endobj 26766 0 obj <> endobj 26767 0 obj <> endobj 26768 0 obj <> endobj 26769 0 obj <> endobj 26770 0 obj <> endobj 26771 0 obj <> endobj 26772 0 obj <> endobj 26773 0 obj <> endobj 26774 0 obj <> endobj 26775 0 obj <> endobj 26776 0 obj <> endobj 26777 0 obj <> endobj 26778 0 obj <> endobj 26779 0 obj <> endobj 26780 0 obj <> endobj 26781 0 obj <> endobj 26782 0 obj <> endobj 26783 0 obj <> endobj 26784 0 obj <> endobj 26785 0 obj <> endobj 26786 0 obj <> endobj 26787 0 obj <> endobj 26788 0 obj <> endobj 26789 0 obj <> endobj 26790 0 obj <> endobj 26791 0 obj <> endobj 26792 0 obj <> endobj 26793 0 obj <> endobj 26794 0 obj <> endobj 26795 0 obj <> endobj 26796 0 obj <> endobj 26797 0 obj <> endobj 26798 0 obj <> endobj 26799 0 obj <> endobj 26800 0 obj <> endobj 26801 0 obj <> endobj 26802 0 obj <> endobj 26803 0 obj <> endobj 26804 0 obj <> endobj 26805 0 obj <> endobj 26806 0 obj <> endobj 26807 0 obj <> endobj 26808 0 obj <> endobj 26809 0 obj <> endobj 26810 0 obj <> endobj 26811 0 obj <> endobj 26812 0 obj <> endobj 26813 0 obj <> endobj 26814 0 obj <> endobj 26815 0 obj <> endobj 26816 0 obj <> endobj 26817 0 obj <> endobj 26818 0 obj <> endobj 26819 0 obj <> endobj 26820 0 obj <> endobj 26821 0 obj <> endobj 26822 0 obj <> endobj 26823 0 obj <> endobj 26824 0 obj <> endobj 26825 0 obj <> endobj 26826 0 obj <> endobj 26827 0 obj <> endobj 26828 0 obj <> endobj 26829 0 obj <> endobj 26830 0 obj <> endobj 26831 0 obj <> endobj 26832 0 obj <> endobj 26833 0 obj <> endobj 26834 0 obj <> endobj 26835 0 obj <> endobj 26836 0 obj <> endobj 26837 0 obj <> endobj 26838 0 obj <> endobj 26839 0 obj <> endobj 26840 0 obj <> endobj 26841 0 obj <> endobj 26842 0 obj <> endobj 26843 0 obj <> endobj 26844 0 obj <> endobj 26845 0 obj <> endobj 26846 0 obj <> endobj 26847 0 obj <> endobj 26848 0 obj <> endobj 26849 0 obj <> endobj 26850 0 obj <> endobj 26851 0 obj <> endobj 26852 0 obj <> endobj 26853 0 obj <> endobj 26854 0 obj <> endobj 26855 0 obj <> endobj 26856 0 obj <> endobj 26857 0 obj <> endobj 26858 0 obj <> endobj 26859 0 obj <> endobj 26860 0 obj <> endobj 26861 0 obj <> endobj 26862 0 obj <> endobj 26863 0 obj <> endobj 26864 0 obj <> endobj 26865 0 obj <> endobj 26866 0 obj <> endobj 26867 0 obj <> endobj 26868 0 obj <> endobj 26869 0 obj <> endobj 26870 0 obj <> endobj 26871 0 obj <> endobj 26872 0 obj <> endobj 26873 0 obj <> endobj 26874 0 obj <> endobj 26875 0 obj <> endobj 26876 0 obj <> endobj 26877 0 obj <> endobj 26878 0 obj <> endobj 26879 0 obj <> endobj 26880 0 obj <> endobj 26881 0 obj <> endobj 26882 0 obj <> endobj 26883 0 obj <> endobj 26884 0 obj <> endobj 26885 0 obj <> endobj 26886 0 obj <> endobj 26887 0 obj <> endobj 26888 0 obj <> endobj 26889 0 obj <> endobj 26890 0 obj <> endobj 26891 0 obj <> endobj 26892 0 obj <> endobj 26893 0 obj <> endobj 26894 0 obj <> endobj 26895 0 obj <> endobj 26896 0 obj <> endobj 26897 0 obj <> endobj 26898 0 obj <> endobj 26899 0 obj <> endobj 26900 0 obj <> endobj 26901 0 obj <> endobj 26902 0 obj <> endobj 26903 0 obj <> endobj 26904 0 obj <> endobj 26905 0 obj <> endobj 26906 0 obj <> endobj 26907 0 obj <> endobj 26908 0 obj <> endobj 26909 0 obj <> endobj 26910 0 obj <> endobj 26911 0 obj <> endobj 26912 0 obj <> endobj 26913 0 obj <> endobj 26914 0 obj <> endobj 26915 0 obj <> endobj 26916 0 obj <> endobj 26917 0 obj <> endobj 26918 0 obj <> endobj 26919 0 obj <> endobj 26920 0 obj <> endobj 26921 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 26922 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 26923 0 obj <> endobj 26924 0 obj <> endobj 26925 0 obj <> endobj 26926 0 obj <> endobj 26927 0 obj <> endobj 26928 0 obj <> endobj 26929 0 obj <> endobj 26930 0 obj <> endobj 26931 0 obj <> endobj 26932 0 obj <> endobj 26933 0 obj <> endobj 26934 0 obj <> endobj 26935 0 obj <> endobj 26936 0 obj <> endobj 26937 0 obj <> stream q /X1 Do Q q endstream endobj 26938 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 26939 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 26940 0 obj <> stream HW]۶}ׯ`-ъ_h>PlEb>צ lٵ!)p7(Rqgc_=ٛ7o߿KNʸadVV2ӂl_$9{L8Yr]ݾ;zoSb:`mv,W8[l0s2b¨7Ss:#IQmˮ^ ֡i8D'~cgO$]aۿ%2\K,1Ȅy})g]91cL1s͡ P(ds(M0wc(A{A{I{I{I{EW{EW{M{M{M`_D }/ eľ$ؗ`_F+}UM#rBضOZls=P-9T*fm"TmET+bC# B(BPHP-9>R Tm"TmET+bC# B(BPHP-9>R TmD6cbC͡b(BPHP-9>R$Tm"TmET+ bC#JB(BPHP-9>R$Tm"TmET+ bC#JBضOZls=P-9T*fm"TmETbC#*B(BPHP-9>R"Tm"TmETbC#*B(BPHP-9>R"TmD6cbC͡b&3(j]$7`-6 o`2$nVe+*Xvvz}t.7 U6`L Čb0åЙ*8+~~өiaʶ-{ #} /OtMt*DV D_:OMZQ5a);yEg; _8J a|f  x-E)sLQ6AP)8F]1$.1rW|A)4*15De-˯Y񿯖]:cۧvH3RdEYUokTTg=-T_lӱ@K켮2YUxOmޥ-6;7\-0.0Z S6Jgچ9L\ŊMN!t4[mٜ .uϣ^C{) _|h'֥ rG`Y>޾zslzж'^೛xnI) |\ 2rSO7,u?P3 i_7jv|a BXݮlG*Ô#-Gl_!o30 [L0g^=~F:CCe}\"6zqXDDŽ[8 ySU]EŰ/<߻zczoҒWR+uj\z/"BͩS}8y; c Tm-JderX⨇jrpmC^0ͺ ,W`e_2(hnj)pҢ%hp.3C4])W#tFe SB32GA ܵ;^SLTv {W=2sM^12B*ҩ> ph3uӂ:)~;V.wWp R3ŸN*p|T]˅Ocl!ͻBzOF]u=[Yd7;-;EG;k_eQI#g$knnM9 &\gKSNW ZHnVeu}# }}Yo:vCO]@QEkg KK6>2%>\bW&B\0{'jHa~/&ή Bd3];ЄoKUdBa“dQq=[1K>G}y¶3j}W@ƨ]҄.ʄ J7O/"/0 UIt%lPb 0ݡAcnN{\N&H:mklźoMTk/Surő+q *],şe^ؙSEyQdS6C/Z#Џ~O{h(ڳ- d[Kueگ.~ уaWJO2ҽ :@ {n%gO 5ֺ5 ݿCb[^*oUN}A@[JOtL @]q5EI7yf[CcƇtxQw~֮Ms mD޼ t!{x`( i^.`iC_:ni@+\bx!JlyyR}z >bMw3@=x˳+DWw\=΋GBۋ$^)I|Fñ\8YtU"x}q@XWwo֛طyfygN5Ai~M5J!MHb6_+vv[Hd3&k3BP^]"L-=$.~YX#AFZl (0vyY)z{խ?e|L ylɢ)ަPBp[oH1In~lt/6Öe"mپ~854ժi-uzR]<=7۵zV#xי,ҷN]RQ7t`F1Q_$4wW ed+4͢-T7rgOXe.~3nuFə=rKgw5j0Ui-=wjV}f7uTs"߃3Hx:C!$P^)e2"ヾzk.My${fH >N40Z$ٶ鮈=‰EW(n`9"cH\ .eP,DI`ĉDPjvo:۹ GXr{342fȂ=w [u uU׵Od{mXS+9dJ"r4_u{ODLŰ jLԜ?o )[8x~D1-˞bv`?H6%@r+j5(n7z>림6?WΡ8xSD~HOC>P,p ,Cٟ%4`7SQPe0j-\bє)J*bjs9QCeP*-.t?}{ǧ/? 6endstream endobj 26941 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 26942 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 26943 0 obj <> endobj 26944 0 obj <> endobj 26945 0 obj <> stream q /X1 Do Q q endstream endobj 26946 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 26947 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 26948 0 obj <> stream HWkoNa49>I6HZ-`#Q6w%!8^!^;FΜ9CC/խzÛw?@}xamKiGwZչ*@x*wsKVuۺX.~^/ExmT/I4U$jf-Rϵ fa7=)|ʲtp6;gqoۅs_{ޫZ+/5( ~4[K夜NFtVr<ŀׂ{a0Fpo{+̽[ sw{Gs c>},Dp0>aS}ܧ{P(-vZK1dqZ!{Kh-Ő%gBk),=kZK1` Zh-Ő%gBk),CV Zh-ŀ%bܳjCV 3Bk),bZK1dqCwO1` Fh-Ő%g5Bk),CFh-ŀ%bܳCR Y{Z#bܳyVh-ŐS XBk),b),C Vh-ŀ%bܳZC R Y{Z+bܳZZ!KpZkR Y{Z+b; {Kh-ŐS Y}ijUNW;»X, b=A[UQ7kzjUS~z_}7:i?  ڗ~/7ٮ>W?^wз0kuez*˹$a?%ZΖf-ggoy}g*XΗs?'Fͼf9{+MVl#n7`l6Klqo ۼf'>K?,SQqgM =l~ʗO.űqwuQxպeE9\ ڃeL0]@:#? #pCN8[;A%CV*,ӲeZNrL ZiEVĴ"A+bZ3XЊV"h%L+ Z)JjkQ Y\b iVȴX{!KbB),A^ -{-bX{!KbB),A^ -{#bZ{!Kb7B),A-{#bX{!Kb7B),A-{#bX{!KbB),E1` -{+bX{!KbB),A ;e1-!CroS~;e1-!CroS:eQ-'bZ÷MA 4Ki^ ?7:G2"ߢ`2j^dFe·yQm2Vー{P؏ k6/<>j:^ t~pxynlwv5.aGal1D{ $gfXXxM'Ch4Ⱥ?,6*׍?? ?!rs=lé<7tK8Ƞf tpKNΪ;> b_vqB?$]0S4uM>h ؎_ml0Z4mw0ꎮŦA8] ^04Ȯ{v_K]۵/b ]%W쓴]bLN+ RվCl +=ՐZvospA)=E}}=@q넻mVmn[Zت]em`]$UC9ϳ;G 6(mLI7)}!{Pp %K޴sqr5k|z1Ͱj|z'|4Aubm\^o`=ֻCs|`J^hޡ̘-29zSٗwY{ wtl>x_&p,Edzv/hxJ83iҪa/$/D.mb,lN.. ˫Gۼio/8=!Eq2eot!pTۊ߇g+p顅y 1)vw|- f@daGXbm(471:]B8X&wӤ@LLF|3= IFhiđ M: dN2~wcw~-å0:خ6xS}wFv{@B)\A C6}(ŦZf=B]Gs fT4M *&mRDAk2Ui~,j25d5+@uOR%c;{`i[(\_l:N2*:Mo =LW1EYcEgc0A0O@D'EnkL\s0OXIJhtl$2KOSdEd4.+5wZk[M=u0ym\ԡߥ5aY.4j )vF3V)8%0ӥ,/ _ӵl(P_8A]aGnww_LJ9e o4qM?=.e;Kb42^:]ee T)*yhH45ھ.`g=ڭ(m;jQP9SN xT0y2X*x!ļ۳ yZיprSS¥"TTTɮC'o-]=oR‰ 1#*)oR:c/5F)1AOuB7hƉRwcx])EgUz9 =̊.UVj R+8>^x,4\FxW[!594ʯ׼zt6|gZ{s aIQ~=*:- `<_G5}s{kR6]]ɞ,.S}Gbۥn,&Bjؔ(_uIdp`ɶrgJݹg*`§'`] lQ>Uօ5/KM~h܇oPqm.>S3>C`E]B;\HqU^'a)Lik -K "A6K䓦FEA==5b@CVv>UjpR~JbmOQ4<\M=$D"Ua)me}sQw5oeLkkOl{QYywn(\Wwؘb]q }3}xj=b"6%{|+< 'endstream endobj 26949 0 obj <>/P 1284 0 R/Type/Annot/A 26950 0 R/Subtype/Link/Rect[93.6004028 203.578003 249.612 223.257996]/Border[0 0 0]/H/N>> endobj 26950 0 obj <> endobj 26951 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 26952 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 26953 0 obj <> endobj 26954 0 obj <> stream q /X1 Do Q q endstream endobj 26955 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 26956 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 26957 0 obj <> stream HWmH_65,l%{ pc$,[c+Ҝ$o_Z䎐QtT?gu't TX^<wk:Uuqۺu|mK>{ 0gqڢ*FF*"k5͵34HRm)}~x%(ИdDT  VSO;{3*d/<ϞIb1#B倨 Qn8j.1(]<J2^2^1^1^1^3^3>bGa9#}䰏>fa8}O>eاa: 8 Ѭ`DKmgO26D Pj Q.{jC˞ŨŰwT+Rj%ZjZjCQdTKmb;j Pj Q {GQ-!aV26@16D1JFԆ(ZɨΞbTKmrSR\Ԇ(=Q-!aV16D1*F(FԆ(ZŨŰwTRRjZjCQbTKmbTKmb;Uj Q {GQ-=ͨ岧6@16D Q.{jZjCQfTKmb;Ռj Pj Q {GQ-!aV36@16D1jFԆ(ZͨŨŰwTRj5Zj;{ZjC˞Ũ岧6DM`~f{/ 쉰CH~{Wc7"4]v:öZ ҙ@rpj嚗z' b)daO(ˢ<)~|)wmQhof?e]`bZ;⦍ DVyp(OcȞ! Į.MJŧ/@E$^8"U^3T1HD:ɯեYEi飏4pڎ@dLlo\eݞmw3mtlИquM$ńllgY_pRīj 'KX*]C*"#1QxHd,'r gN2]v^ʼ#oPc8|smZ:eU8: /C^7rڳ"Rgo> Ak] QWjXCY8Vׅ`s2tDio?aC CeD(,} >8$)&M5Mw2#F&R,Z+Ef+(b].џTmJ%HrW]Y`vhMJI}f3!4Z<ہ ^oB7.#h@JU "\ ˭39v}zb ƽz-x_Gk gUespB& PP`zCǞ> HiAN&~'=! WE2xmpɛfQ?0Hv@u.KqKE4Z4%C,qGp]+uF Bg.!2 y858Pq?돢iaؿ,%,k:gXRaDI_lSjwl M*P&ftDMfÔ!\'l6 7&vN3 bPySUם,%+h{/MU: x@oO>.W(&&1GuLu")Vՙ/|Aq5j)J%ykFfkKdӧ-ew~<|F 0HDv6dhϩ!n[!YSUr{E'1֧yZo)@|mp7lEP-с[Ȼ -n<R($E / F4F: tO.p0>K??rȺu쳥 |d1~%$KѩTMSخY] A`b? {9ea܏~} ߋŏ!lyHu C֘føh:>}:Te8hѨb;5Qm8iȲ8v1K8KlԴ=.3En*6Śc! ,>yn<:q4T"cۄe^37lѝ^>IA߆g0n lXp"y788J:1=O|{V"hhPl۝h9M,U2 BlU+ 4r|ŀcOcw9?P䲽PQL^80"FZkMƖJlK-VpҴZO,rcVzƣc$X_P^ƾ(z'Z2D^JU,;-iL1Hy3QO|mߎũ:ջLN<~Pԋ 5cVBY{|?ZZ I[&$B$Hz՟JG9o8rp##k4e TZiPJh\%ad':M˃-kPD>#i0~XqgBRFQ߂Y6.Gޓ %՝zQoUE Ʉ+!q\̊ m~41g0l2۩KU9{A{䫕B0@%4?o{ +x&YIK.Mʾ;8غ:AZ-D)vAL3xHhHF"_?p=RUYW L w>mD!5?r) [NQtU*,)*x#X"}^,$23ب QP%؜AdY% J=aS$Ǣ OvL j3]`UH;5,ӘSUR }Qn<~)ᳬZh`>&$M$M Nmȇ<4A 2o^ vjG0APxAAiIVGSKrL(=Yt*u:,o ;F3\Ft I[k"FT5 Z=5]Elft%\}wLJpܹ87,yu<"毛M$Vܡ*X~Ula<QڟYtNj}CĠt(B<8&\ Rt٩sŸQ#Rl!ž3sF ޯ,}BURh,Ghj)eezr~莟rvk{ )TކG7G>scH|wl1Ԁi;2 m2,+|a8w/ʴy+?;UdҧTǼ_6|>;&z"[2l? ݫi \iPaoÒa.!ЦauJrm ]|/|R%e-©4뫯W(!_8Edtu)AROy˴ N7# ,8,C8h!aDy_禫D2 /<1]n ={E04#6QpB_coS`+>{=h݇7:7 0*Gendstream endobj 26958 0 obj <>/P 661 0 R/Type/Annot/A 26959 0 R/Subtype/Link/Rect[93.6003036 594.830017 244.440994 614.51001]/Border[0 0 0]/H/N>> endobj 26959 0 obj <> endobj 26960 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 26961 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 26962 0 obj <> endobj 26963 0 obj <> endobj 26964 0 obj <> stream q /X1 Do Q q endstream endobj 26965 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 26966 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 26967 0 obj <> stream HWkۺ_OHz/i@?$Bn-W!53i"Ȋ:><:P䫿äջAe7?|hJ_/mU6F M7uL2hժ_C=_C?]3 F mF=ɛujjK*xH*U*R}^ݧgYZ:cl ]Y̮avx6 }csB_5z[|o2eR\'Yrt0K?'65QL_[S*lJY.pH's*љe$!?bҚ,/wy so{[e2Np{'w̽{ =s9s s}!/Bp_0dK}WfP#T-ŐS XBR Y=ŐS XBR Y{VFZ!KpϪUK1` UK1d Yj),=Z#T-ŀ%T-Ő%gUkjPPCUbܳ5BRKPCwO1` UK1dqCwO1` UK1d YZj),=Z+T-ŀ%T-Ő%gUkjPPCUbܳBR XBR Y{VVZ!KpϪ UK.qBR Y=ŀ%T-ŐS Y=ŀ%T-Ő%gU넪jPPCUbܳuBR XBR Y{VNZ!KpϪ UK1` UK1d Y:j),=Z'T-ź UK1dqPCwO1dqUZUSin:y^[zTU^dU.YM/_w_rS¾׷:&-Uʴ %h|4퇦wz>?~}hIҦH{ی?A0e Mq;ʹ ǹQlf婎#iiA gal?} 88K a. _O?a :~BzT Cr|^%m gE!XL Zi9A1-/hy-ϴrA+gZ3B*V!hLJU Z%ӪiUVELƵ(,E1`iAK3--hie-ôroS Y˽rO1d Z,F=Ő%h!CroS Y˽rO1d Z,F=Ő%h[!CעS Y˽rO1d Z,V=Ő%h[!CroSz]{!KbB)v=.YLK=Ő%h[!N,S Y\bxX{RbwB)gEA -{'bx X{)PbwB);A -{'bxrX{ɍkQ Y\bx&X|r.a8Mx V?Q+jsi6tVΫmw:͛G{|c ޤ:3_5 vC]U^٘7Nun5n k Vrv /<'37,M|oyXz7ǹy54ƺ[8O:S?6cJջaj=RotSoCI*uLGy_.lSQ%sl$}q tY%$8Qaΰtnє0TMwcuU~a*\3/h x>C;=EX06/ F I̯>oޕ,tq| ; fn]M/曛i:\HK5P'*\Aǚݦ?np oi a|KhL |g,1wOBMSgrQHen27ˌ22cHVclŴ@c_g/7nVOj\V*_e%>tn;^HTWeZ[>& :6qqύѹ4 9~4#]3=6sk0q1)˓aV|/㾅pPc= _mX.9=q .M؍j_S;7Y*{]ɲ^w=oua됅Wm/ <3>l \8 qߝvu`' ?폱.!y~raq?q 6Ӭq; q 3oJlgPiơ^";<̀[q:S|} 8+Li%gܚh+ib $Ųӫ3IJNfKJ@ܖڢl0C7ulJgWdLmR5 ís@4bu^,ac !ggo]4 ux7%ixQV\ 'LJi(EFwBhbmsZ,Œ^#qfz`mfYeӇ?~i $) n2VZL*&i O [ǹKBz^/22Ij(fq[6Uk}ʔ.Tu߹͸s)Ue8T# :huwrӖ"Yvݰm5+ G30B\ϯoqw hgn{A@ CX,<aJo-NߦS^R8hQVxp=Yf/:õ.Mgf+c<gv+F&kL}[3^0PZĺu3;;}"LY96SNj,snKƟ ӬޒwɄ[5=Fž"@F(vв13 Xbq̶Q[@QPG<#+GLE#  3R*b uFYMTc+4S>|#&Z7 @,OYDFDc Y`F3z͗AּL BC.v.yN?^:) 7{p\vTwmv=Xsɬ$i}ҋ23|0`Ȓ_De}!R%elΜ(b (\>/P 974 0 R/Type/Annot/A 26969 0 R/Subtype/Link/Rect[129.600998 392.628998 395.904999 412.30899]/Border[0 0 0]/H/N>> endobj 26969 0 obj <> endobj 26970 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 26971 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 26972 0 obj <> endobj 26973 0 obj <> endobj 26974 0 obj <> endobj 26975 0 obj <> stream q /X1 Do Q q endstream endobj 26976 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 26977 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 26978 0 obj <> stream HW]F|篘 kX/r82 K[Iy_7IYbw{IQⰚ>ϲO?ח*S?xm[BtnU;jM2uUjՋzԛkj[n<9N5I","h"+|\oUWlfC_Vytu麭g>~Od:̋yis io Q2urme%~nXLu6r"D1c$!/G1`YCVXԻ1<ŀe{;c1Np{/̽{>s9s_ }!/Rp_2d>2QpzMKMb{KZ!{KZ!KpϺ ]K1d YZk),k),=Z+t-Ő%g]kkеCubbܳBR Y{ֵVZm't-ŐS XBR Y=ŐS XBR Y{ֵNZ!KpϺ ]K1` ]K1d Y:k),=Z't-ŀ%t-Ő%g]넮kееCubܳuBRlxk),bb),bbܳBR Y{ֵ^ZKZ!KpϺ ]K1d Yzk),k),=Z/t-Ő%g]녮kеCub$]K1dqеCwO1dqQߓ&y>Os$q (Uyi$o"]Uq\?U0z{qo/3왚QTy:Ey~i?&EʾԱ/:v77mթ^=VVO΅dhj0|`;{ Nm,^AYP,66ÚEQ}L$Ӧ'>qzu(ƶ ҏ|CVXL ZiyA3 hrA+gZ3B*V!hLJU Z%ӊVdZQЊT XCעe ӲeZVbB),A -{+bX{!KbB),A -{+bX{!kQ ZA ˽rO1X-{'b8 Z,N=pX{(*h;!!SbwB)CrS GA \bZPbB)rS G>A |˽rO1-{/b8 Z,^=pLX{&h{!LbB)עpX0XåÀN0 oMx"Gb(U̔ifJ|uUuwn&100td0Jz{Uzmܨsժ}۫/F5SG߇;:{3>_ݾKx)yݪZJ68LkZUj뿪XW25f}j-4^ujv&!pR0>r!WЇT@EKRjliCs8\mgm Xk\U͸ Wm=}g\ Wz;RvV|"8lLQTVrq 8<nsXTMy1LTM"txcEۃbx5=v/OǸےNd dgNo3 zvܭm@9@h t8yU]nT]~#y?D?>p\G{23y{T7wQ@la üXimrKf]g@WCh;=M $yar=dگhr_>öy)Boxx2l+&)4!!*S8bAw DY[;t6ƊHqn}]Gp7v~S1+On RO;ӠF.oH#{Q0gQ㹻^"#[7/kn4TN{ݻj߽[nF$UYfxQqљXz"ݰ,b< T%;)SʌՈS6 mKny&C-!X GVu$VSI$_C Q:ʼRyzm߾uv\L_e rmd`(;M`Lr}˹jSrѭ}fh^AZ"Y$9}̃%R4+!a,+Y`>[. ;Hc5;[xz@'#xag2_7Ƕ% XeIppwy I/JڍxkoqsL`lMDGEb 7T*"їusn:KMEĮ|LJendstream endobj 26979 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 26980 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 26981 0 obj <> endobj 26982 0 obj <> endobj 26983 0 obj <> endobj 26984 0 obj <> stream q /X1 Do Q q endstream endobj 26985 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 26986 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 26987 0 obj <> stream HWko6_A` |4iMӍ h8#ɕ4(%7Ţ:9<乼:5k:wׯ\^LL%RƜ$#NFۀ.}Q(u9i5'mfWAYmP$)Yŵλ-L0?Yb"Y[r&LjS O}O< >ԧS"SOB+OB{ei] 8Z3,_ q WbB\b\׺a!=rĵ.,ĵ.fXzϵqs-G\bB\b\׺a!=rĵ.,ĵ.fXzϵqs-G\be ׺a] Xk]̰|.fXzZ3,DZ QV u1`!u1B{k]̰kZZ3,DZ QV u1`!u1B{k]̰kZ+ WbB\bw1ջ׺a!=Jĵ.fXzϵq qsD\b\+׺׺a!=Jĵ.fXzϵq qsD\b\+׺XDk]̰|.,ĵ.fXz3,_ RPo2*8_08_8VdU+!k3rVwdSl,]luc~t;h}zWFVv1nCa"/\}34Т4ZxxL!ww64t'aJkyo4:B`ui9ۺ37Uat$}R0=r !;6@3RQՐƤ+[꼮6a2I]%zNp{cEd1$ڠBvoKuE]m,bl,c+ ۓ"R;ǽ*G}ֶDMYFi;sJ90_ӛ3'H󂃷!KرD'MwoDtB[V.4Z$_&w ~s}yf'0F𨳏knMu#~ttEhnqTtg~ɔ0bwPǞ)v2CrLުަ)2EI;Q!Nr6)c'jdt(c:藇'kHZ>U"5I$PN:fմeUxr͜*|NDV9f)hlg|^\=b[;>ax苧]ۍ mWySy Gd욥Ԟ 1H=7^W-Wr\(ǖ9UF3勈Ż鲢=Vcev);Mpnd(n1P6(۬FpG AQ_{t3` wtf|aOz&Ӷ*7-O\%w&»~, F$sq7Gݨ3/+20]% &CtNY*dSb&PD%P-эݹTr ;nP B̞4 Ş,{bѧ,)?j,e6LTAٳ-sho+5 %\pڳNEAt:;y%>SپvhߡL<:/L`8x^q҄xd}ti^A$,VwX^>PagvtnlIћeS9&l)Z)U3yUf&,arhXaJ}ů>]x_.quLoN()? !P*'ӖWdYg:4 #g̻F>0!).70?>\jzJA<jt6vwQW; ՇA ʬ} RIPro)c8Ӝ43>en6߷4Ӗ bn44Y9v>0&)/u8٧Ϋ4"f>r~t~V٘qhF=6!IɎ  ˢ:f>MPʫ?I_*/endstream endobj 26988 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 26989 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 26990 0 obj <> endobj 26991 0 obj <> endobj 26992 0 obj <> stream q /X1 Do Q q endstream endobj 26993 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 26994 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 26995 0 obj <> stream HWn9} xh/@`rفLh v%+I﷪d5ENP:,T/>̶;Żחo`/_zO# WfN14mlvH`U_כfXbζ⧏?4Th&`gytL.׷kX+ Di# hh7&{n>ߟoݲ&j)j&KL0RUn%el*.eI>JU^U^u^u^uMMmmm]]}}}>C>C>c> JBm(B Q%(B Q%܆}n܆(}ZE6!`_Vm"TE/T6D *B Pjsj܆(}ZE6PmnCP"TE/TU 6Ds6DsJ Pjsj5܆(}ZM6PmnCP&TE/T 6@m"Մjsj5(B QBPmnCP&TV!TUm"TUm*6@m"5jsj (B QBPmnCP!TE6!`_m"5js6D B QBPmn[5PmnCT>PmnCT>!dy0;_5Th& 90i7y0nZ|2.6oӟTfT99l׳gr'*z[eyK^!܇{9Q3'&pcM8We5hIJ(N 6TG? ~޶j <1ܼ_c$Qדfw cՁ{/Cݙ\9Hfm2z A s=i׻-0`}Zdd RJv(*q;y xRUnUOMd:(2}NDٗh;l ݶιz B\Dg,KanWEf/>ɔ|jm3Kre(e"S;xzױlڲ/ݧloљx x鰸̢L42wM Yu$p&̤}0u]#{XܯgCɰ'xO*gPjkjs۞/A&p<[i{sÆi*^mNeeiEx"w9_AN 4efK y'q8MP? 0B^tG PEM2z70Z90$4Yq֊C$(dE} ') X=N&;H{2kr$?==ax~Ȅ38]u@b, ^SJZqZ%j ?4eMjmg9%)-G]YCM >Qu^T?DjЎuXlvu{hדv0{T\.p;c' y˖b?%:&yڼ`x"7PP5VpԩS'H8nݵOcWl>[O8k!p'M4͠&(빂+P\#?JGK^jN<؇v1?Qbum3L6A@}Z*e%Z {oQc?q T_ ;>Lı6  ]ձ? <)U8;9rT(*.l6O p?@@?<EL\O V;h$8I^6=~x6v jڻw'Q\9eNH^F{41)RzJ@b)nI=.EqٝGGgm@n,_UH=wOv}mYU-zx?-w|whn]k~@ pOT!B:DHU9Kn.c~o4׻esh2c\2_"Gcޞ|S D0;;d{`+rYnJX@`tc꫼Q ǏU ba]S'"0`l_ri38kxgvm< uS㿜Wn7}W8 }Te9u[%Er*Ԗ ]_%#\/̙αUTQ:D>,pO.CpUyā rj+ݓ3L|8@f[9@-G ٖJhX]n|NAs #ac9b"s@im29uaomn_ UDD2W&_cFhV(uB:!KKi=C0jKT,=v|AIVvH4>R&X(KT3s9TF(=x$,Igrq)!Aa9U䧥ᑪ,SUJZ HL7QҙJGSW:aK_aiZ1mh̰ uiS9b.|T&0W``2Tc :c v~[EYjPhH)s I, e(9߇d}@e\oxQ>HLB0Fr2|8 næq4*,ᬱ\2ۿ,MbQ^-D#.j~ 8LT:|ۖ.)VR, ک;N 9?+@LJ$/_w}]&(y벆\@Eqeu*qc{Í"ͅL4=~ÊV-[XX*RɎG$ >Q!0X߻%F_wZu;I4Ⱦ f?2..(hl+1 nm]>5.B33KX+8KD*W&"m`:]PM*Oi fpX,UGҏ@\ tM-<ۖ98=DžR9TvL%DQ)29Ò6i/6QF8S4f6iV>vgٴ#ʥo$@G rۊTmMg'Od~`|:8tτ~^J8x|(X#@M)$׊Eq/QUf嶬d`Gm7' ve5Zr$ KLg(Tyę1_}'ϻСendstream endobj 26996 0 obj <>/P 9381 0 R/Type/Annot/A 27519 0 R/Subtype/Link/Rect[213 669 225 678]/Border[0 0 0]/H/N>> endobj 26997 0 obj <>/P 9381 0 R/Type/Annot/A 27515 0 R/Subtype/Link/Rect[187 659 201 668]/Border[0 0 0]/H/N>> endobj 26998 0 obj <>/P 9381 0 R/Type/Annot/A 38927 0 R/Subtype/Link/Rect[203 659 217 668]/Border[0 0 0]/H/N>> endobj 26999 0 obj <>/P 9381 0 R/Type/Annot/A 27510 0 R/Subtype/Link/Rect[219 659 233 668]/Border[0 0 0]/H/N>> endobj 27000 0 obj <>/P 9381 0 R/Type/Annot/A 27506 0 R/Subtype/Link/Rect[235 659 252 669]/Border[0 0 0]/H/N>> endobj 27001 0 obj <>/P 9381 0 R/Type/Annot/A 27502 0 R/Subtype/Link/Rect[253 659 267 668]/Border[0 0 0]/H/N>> endobj 27002 0 obj <>/P 9381 0 R/Type/Annot/A 27498 0 R/Subtype/Link/Rect[269 659 285 669]/Border[0 0 0]/H/N>> endobj 27003 0 obj <>/P 9381 0 R/Type/Annot/A 27494 0 R/Subtype/Link/Rect[286 659 298 668]/Border[0 0 0]/H/N>> endobj 27004 0 obj <>/P 9381 0 R/Type/Annot/A 27490 0 R/Subtype/Link/Rect[189 649 201 658]/Border[0 0 0]/H/N>> endobj 27005 0 obj <>/P 9381 0 R/Type/Annot/A 27486 0 R/Subtype/Link/Rect[202 639 218 649]/Border[0 0 0]/H/N>> endobj 27006 0 obj <>/P 9381 0 R/Type/Annot/A 27482 0 R/Subtype/Link/Rect[219 639 233 648]/Border[0 0 0]/H/N>> endobj 27007 0 obj <>/P 9381 0 R/Type/Annot/A 27478 0 R/Subtype/Link/Rect[235 639 249 648]/Border[0 0 0]/H/N>> endobj 27008 0 obj <>/P 9381 0 R/Type/Annot/A 27474 0 R/Subtype/Link/Rect[251 639 265 648]/Border[0 0 0]/H/N>> endobj 27009 0 obj <>/P 9381 0 R/Type/Annot/A 27469 0 R/Subtype/Link/Rect[267 639 281 648]/Border[0 0 0]/H/N>> endobj 27010 0 obj <>/P 9381 0 R/Type/Annot/A 27466 0 R/Subtype/Link/Rect[283 639 295 648]/Border[0 0 0]/H/N>> endobj 27011 0 obj <>/P 9381 0 R/Type/Annot/A 35037 0 R/Subtype/Link/Rect[189 629 203 638]/Border[0 0 0]/H/N>> endobj 27012 0 obj <>/P 9381 0 R/Type/Annot/A 27459 0 R/Subtype/Link/Rect[205 629 217 638]/Border[0 0 0]/H/N>> endobj 27013 0 obj <>/P 9381 0 R/Type/Annot/A 34210 0 R/Subtype/Link/Rect[206 619 220 628]/Border[0 0 0]/H/N>> endobj 27014 0 obj <>/P 9381 0 R/Type/Annot/A 27452 0 R/Subtype/Link/Rect[222 619 236 628]/Border[0 0 0]/H/N>> endobj 27015 0 obj <>/P 9381 0 R/Type/Annot/A 27448 0 R/Subtype/Link/Rect[238 619 252 628]/Border[0 0 0]/H/N>> endobj 27016 0 obj <>/P 9381 0 R/Type/Annot/A 27444 0 R/Subtype/Link/Rect[254 619 271 629]/Border[0 0 0]/H/N>> endobj 27017 0 obj <>/P 9381 0 R/Type/Annot/A 42351 0 R/Subtype/Link/Rect[272 619 284 628]/Border[0 0 0]/H/N>> endobj 27018 0 obj <>/P 9381 0 R/Type/Annot/A 27437 0 R/Subtype/Link/Rect[189 609 201 618]/Border[0 0 0]/H/N>> endobj 27019 0 obj <>/P 9381 0 R/Type/Annot/A 27433 0 R/Subtype/Link/Rect[202 599 216 608]/Border[0 0 0]/H/N>> endobj 27020 0 obj <>/P 9381 0 R/Type/Annot/A 27429 0 R/Subtype/Link/Rect[218 599 232 608]/Border[0 0 0]/H/N>> endobj 27021 0 obj <>/P 9381 0 R/Type/Annot/A 27425 0 R/Subtype/Link/Rect[234 599 248 608]/Border[0 0 0]/H/N>> endobj 27022 0 obj <>/P 9381 0 R/Type/Annot/A 27421 0 R/Subtype/Link/Rect[250 599 264 608]/Border[0 0 0]/H/N>> endobj 27023 0 obj <>/P 9381 0 R/Type/Annot/A 27417 0 R/Subtype/Link/Rect[266 599 282 609]/Border[0 0 0]/H/N>> endobj 27024 0 obj <>/P 9381 0 R/Type/Annot/A 42060 0 R/Subtype/Link/Rect[283 599 297 608]/Border[0 0 0]/H/N>> endobj 27025 0 obj <>/P 9381 0 R/Type/Annot/A 27410 0 R/Subtype/Link/Rect[299 599 311 608]/Border[0 0 0]/H/N>> endobj 27026 0 obj <>/P 9381 0 R/Type/Annot/A 27406 0 R/Subtype/Link/Rect[189 589 201 598]/Border[0 0 0]/H/N>> endobj 27027 0 obj <>/P 9381 0 R/Type/Annot/A 30216 0 R/Subtype/Link/Rect[206 579 218 588]/Border[0 0 0]/H/N>> endobj 27028 0 obj <>/P 9381 0 R/Type/Annot/A 27398 0 R/Subtype/Link/Rect[189 569 201 578]/Border[0 0 0]/H/N>> endobj 27029 0 obj <>/P 9381 0 R/Type/Annot/A 27395 0 R/Subtype/Link/Rect[216 559 226 568]/Border[0 0 0]/H/N>> endobj 27030 0 obj <>/P 9381 0 R/Type/Annot/A 27391 0 R/Subtype/Link/Rect[228 559 238 568]/Border[0 0 0]/H/N>> endobj 27031 0 obj <>/P 9381 0 R/Type/Annot/A 27387 0 R/Subtype/Link/Rect[240 559 248 568]/Border[0 0 0]/H/N>> endobj 27032 0 obj <>/P 9381 0 R/Type/Annot/A 27383 0 R/Subtype/Link/Rect[202 549 219 559]/Border[0 0 0]/H/N>> endobj 27033 0 obj <>/P 9381 0 R/Type/Annot/A 27378 0 R/Subtype/Link/Rect[220 549 232 558]/Border[0 0 0]/H/N>> endobj 27034 0 obj <>/P 9381 0 R/Type/Annot/A 27372 0 R/Subtype/Link/Rect[202 539 212 548]/Border[0 0 0]/H/N>> endobj 27035 0 obj <>/P 9381 0 R/Type/Annot/A 27368 0 R/Subtype/Link/Rect[214 539 222 548]/Border[0 0 0]/H/N>> endobj 27036 0 obj <>/P 9381 0 R/Type/Annot/A 27363 0 R/Subtype/Link/Rect[202 529 212 538]/Border[0 0 0]/H/N>> endobj 27037 0 obj <>/P 9381 0 R/Type/Annot/A 27359 0 R/Subtype/Link/Rect[214 529 222 538]/Border[0 0 0]/H/N>> endobj 27038 0 obj <>/P 9381 0 R/Type/Annot/A 27356 0 R/Subtype/Link/Rect[205 519 213 528]/Border[0 0 0]/H/N>> endobj 27039 0 obj <>/P 9381 0 R/Type/Annot/A 27352 0 R/Subtype/Link/Rect[196 509 208 518]/Border[0 0 0]/H/N>> endobj 27040 0 obj <>/P 9381 0 R/Type/Annot/A 41394 0 R/Subtype/Link/Rect[174 499 182 508]/Border[0 0 0]/H/N>> endobj 27041 0 obj <>/P 9381 0 R/Type/Annot/A 27345 0 R/Subtype/Link/Rect[199 489 205 498]/Border[0 0 0]/H/N>> endobj 27042 0 obj <>/P 9381 0 R/Type/Annot/A 27340 0 R/Subtype/Link/Rect[207 489 213 498]/Border[0 0 0]/H/N>> endobj 27043 0 obj <>/P 9381 0 R/Type/Annot/A 27335 0 R/Subtype/Link/Rect[215 489 228 499]/Border[0 0 0]/H/N>> endobj 27044 0 obj <>/P 9381 0 R/Type/Annot/A 27331 0 R/Subtype/Link/Rect[228 489 238 498]/Border[0 0 0]/H/N>> endobj 27045 0 obj <>/P 9381 0 R/Type/Annot/A 27327 0 R/Subtype/Link/Rect[240 489 250 498]/Border[0 0 0]/H/N>> endobj 27046 0 obj <>/P 9381 0 R/Type/Annot/A 41163 0 R/Subtype/Link/Rect[252 489 265 499]/Border[0 0 0]/H/N>> endobj 27047 0 obj <>/P 9381 0 R/Type/Annot/A 41141 0 R/Subtype/Link/Rect[266 489 276 498]/Border[0 0 0]/H/N>> endobj 27048 0 obj <>/P 9381 0 R/Type/Annot/A 27538 0 R/Subtype/Link/Rect[278 489 292 498]/Border[0 0 0]/H/N>> endobj 27049 0 obj <>/P 9381 0 R/Type/Annot/A 27536 0 R/Subtype/Link/Rect[294 489 306 498]/Border[0 0 0]/H/N>> endobj 27050 0 obj <>/P 9381 0 R/Type/Annot/A 27534 0 R/Subtype/Link/Rect[188 479 204 489]/Border[0 0 0]/H/N>> endobj 27051 0 obj <>/P 9381 0 R/Type/Annot/A 27531 0 R/Subtype/Link/Rect[205 479 217 488]/Border[0 0 0]/H/N>> endobj 27052 0 obj <>/P 9381 0 R/Type/Annot/A 27528 0 R/Subtype/Link/Rect[244 469 256 478]/Border[0 0 0]/H/N>> endobj 27053 0 obj <>/P 9381 0 R/Type/Annot/A 27525 0 R/Subtype/Link/Rect[197 459 213 469]/Border[0 0 0]/H/N>> endobj 27054 0 obj <>/P 9381 0 R/Type/Annot/A 27522 0 R/Subtype/Link/Rect[214 459 227 468]/Border[0 0 0]/H/N>> endobj 27055 0 obj <>/P 9381 0 R/Type/Annot/A 27518 0 R/Subtype/Link/Rect[229 459 243 468]/Border[0 0 0]/H/N>> endobj 27056 0 obj <>/P 9381 0 R/Type/Annot/A 27514 0 R/Subtype/Link/Rect[245 459 259 468]/Border[0 0 0]/H/N>> endobj 27057 0 obj <>/P 9381 0 R/Type/Annot/A 27512 0 R/Subtype/Link/Rect[261 459 273 468]/Border[0 0 0]/H/N>> endobj 27058 0 obj <>/P 9381 0 R/Type/Annot/A 27508 0 R/Subtype/Link/Rect[189 449 201 458]/Border[0 0 0]/H/N>> endobj 27059 0 obj <>/P 9381 0 R/Type/Annot/A 27504 0 R/Subtype/Link/Rect[216 439 230 448]/Border[0 0 0]/H/N>> endobj 27060 0 obj <>/P 9381 0 R/Type/Annot/A 27500 0 R/Subtype/Link/Rect[232 439 246 448]/Border[0 0 0]/H/N>> endobj 27061 0 obj <>/P 9381 0 R/Type/Annot/A 27496 0 R/Subtype/Link/Rect[248 439 260 448]/Border[0 0 0]/H/N>> endobj 27062 0 obj <>/P 9381 0 R/Type/Annot/A 27492 0 R/Subtype/Link/Rect[189 429 201 438]/Border[0 0 0]/H/N>> endobj 27063 0 obj <>/P 9381 0 R/Type/Annot/A 27488 0 R/Subtype/Link/Rect[197 419 213 429]/Border[0 0 0]/H/N>> endobj 27064 0 obj <>/P 9381 0 R/Type/Annot/A 27484 0 R/Subtype/Link/Rect[214 419 228 428]/Border[0 0 0]/H/N>> endobj 27065 0 obj <>/P 9381 0 R/Type/Annot/A 27480 0 R/Subtype/Link/Rect[230 419 244 428]/Border[0 0 0]/H/N>> endobj 27066 0 obj <>/P 9381 0 R/Type/Annot/A 27476 0 R/Subtype/Link/Rect[246 419 260 428]/Border[0 0 0]/H/N>> endobj 27067 0 obj <>/P 9381 0 R/Type/Annot/A 27472 0 R/Subtype/Link/Rect[262 419 274 428]/Border[0 0 0]/H/N>> endobj 27068 0 obj <>/P 9381 0 R/Type/Annot/A 27468 0 R/Subtype/Link/Rect[189 409 201 418]/Border[0 0 0]/H/N>> endobj 27069 0 obj <>/P 9381 0 R/Type/Annot/A 27465 0 R/Subtype/Link/Rect[206 399 223 409]/Border[0 0 0]/H/N>> endobj 27070 0 obj <>/P 9381 0 R/Type/Annot/A 27462 0 R/Subtype/Link/Rect[223 399 237 408]/Border[0 0 0]/H/N>> endobj 27071 0 obj <>/P 9381 0 R/Type/Annot/A 27458 0 R/Subtype/Link/Rect[239 399 253 408]/Border[0 0 0]/H/N>> endobj 27072 0 obj <>/P 9381 0 R/Type/Annot/A 27455 0 R/Subtype/Link/Rect[255 399 267 408]/Border[0 0 0]/H/N>> endobj 27073 0 obj <>/P 9381 0 R/Type/Annot/A 27451 0 R/Subtype/Link/Rect[189 389 201 398]/Border[0 0 0]/H/N>> endobj 27074 0 obj <>/P 9381 0 R/Type/Annot/A 27447 0 R/Subtype/Link/Rect[221 379 235 388]/Border[0 0 0]/H/N>> endobj 27075 0 obj <>/P 9381 0 R/Type/Annot/A 27443 0 R/Subtype/Link/Rect[237 379 251 388]/Border[0 0 0]/H/N>> endobj 27076 0 obj <>/P 9381 0 R/Type/Annot/A 27440 0 R/Subtype/Link/Rect[253 379 265 388]/Border[0 0 0]/H/N>> endobj 27077 0 obj <>/P 9381 0 R/Type/Annot/A 27436 0 R/Subtype/Link/Rect[189 369 201 378]/Border[0 0 0]/H/N>> endobj 27078 0 obj <>/P 9381 0 R/Type/Annot/A 27278 0 R/Subtype/Link/Rect[236 359 250 368]/Border[0 0 0]/H/N>> endobj 27079 0 obj <>/P 9381 0 R/Type/Annot/A 27430 0 R/Subtype/Link/Rect[252 359 266 368]/Border[0 0 0]/H/N>> endobj 27080 0 obj <>/P 9381 0 R/Type/Annot/A 27426 0 R/Subtype/Link/Rect[268 359 282 368]/Border[0 0 0]/H/N>> endobj 27081 0 obj <>/P 9381 0 R/Type/Annot/A 27422 0 R/Subtype/Link/Rect[284 359 298 368]/Border[0 0 0]/H/N>> endobj 27082 0 obj <>/P 9381 0 R/Type/Annot/A 27418 0 R/Subtype/Link/Rect[151 349 163 358]/Border[0 0 0]/H/N>> endobj 27083 0 obj <>/P 9381 0 R/Type/Annot/A 27415 0 R/Subtype/Link/Rect[193 339 207 348]/Border[0 0 0]/H/N>> endobj 27084 0 obj <>/P 9381 0 R/Type/Annot/A 27413 0 R/Subtype/Link/Rect[209 339 221 348]/Border[0 0 0]/H/N>> endobj 27085 0 obj <>/P 9381 0 R/Type/Annot/A 27409 0 R/Subtype/Link/Rect[187 329 204 339]/Border[0 0 0]/H/N>> endobj 27086 0 obj <>/P 9381 0 R/Type/Annot/A 27405 0 R/Subtype/Link/Rect[204 329 218 338]/Border[0 0 0]/H/N>> endobj 27087 0 obj <>/P 9381 0 R/Type/Annot/A 27401 0 R/Subtype/Link/Rect[220 329 234 338]/Border[0 0 0]/H/N>> endobj 27088 0 obj <>/P 9381 0 R/Type/Annot/A 27397 0 R/Subtype/Link/Rect[236 329 250 338]/Border[0 0 0]/H/N>> endobj 27089 0 obj <>/P 9381 0 R/Type/Annot/A 27393 0 R/Subtype/Link/Rect[252 329 266 338]/Border[0 0 0]/H/N>> endobj 27090 0 obj <>/P 9381 0 R/Type/Annot/A 27389 0 R/Subtype/Link/Rect[268 329 280 338]/Border[0 0 0]/H/N>> endobj 27091 0 obj <>/P 9381 0 R/Type/Annot/A 27385 0 R/Subtype/Link/Rect[211 319 227 329]/Border[0 0 0]/H/N>> endobj 27092 0 obj <>/P 9381 0 R/Type/Annot/A 27381 0 R/Subtype/Link/Rect[228 319 242 328]/Border[0 0 0]/H/N>> endobj 27093 0 obj <>/P 9381 0 R/Type/Annot/A 27375 0 R/Subtype/Link/Rect[244 319 261 329]/Border[0 0 0]/H/N>> endobj 27094 0 obj <>/P 9381 0 R/Type/Annot/A 27370 0 R/Subtype/Link/Rect[261 319 275 328]/Border[0 0 0]/H/N>> endobj 27095 0 obj <>/P 9381 0 R/Type/Annot/A 27366 0 R/Subtype/Link/Rect[277 319 291 328]/Border[0 0 0]/H/N>> endobj 27096 0 obj <>/P 9381 0 R/Type/Annot/A 27361 0 R/Subtype/Link/Rect[293 319 307 328]/Border[0 0 0]/H/N>> endobj 27097 0 obj <>/P 9381 0 R/Type/Annot/A 27358 0 R/Subtype/Link/Rect[151 309 165 318]/Border[0 0 0]/H/N>> endobj 27098 0 obj <>/P 9381 0 R/Type/Annot/A 27354 0 R/Subtype/Link/Rect[167 309 179 318]/Border[0 0 0]/H/N>> endobj 27099 0 obj <>/P 9381 0 R/Type/Annot/A 27350 0 R/Subtype/Link/Rect[208 299 218 308]/Border[0 0 0]/H/N>> endobj 27100 0 obj <>/P 9381 0 R/Type/Annot/A 27347 0 R/Subtype/Link/Rect[220 299 230 308]/Border[0 0 0]/H/N>> endobj 27101 0 obj <>/P 9381 0 R/Type/Annot/A 27343 0 R/Subtype/Link/Rect[232 299 246 308]/Border[0 0 0]/H/N>> endobj 27102 0 obj <>/P 9381 0 R/Type/Annot/A 27338 0 R/Subtype/Link/Rect[248 299 262 308]/Border[0 0 0]/H/N>> endobj 27103 0 obj <>/P 9381 0 R/Type/Annot/A 27333 0 R/Subtype/Link/Rect[264 299 278 308]/Border[0 0 0]/H/N>> endobj 27104 0 obj <>/P 9381 0 R/Type/Annot/A 27329 0 R/Subtype/Link/Rect[151 289 167 299]/Border[0 0 0]/H/N>> endobj 27105 0 obj <>/P 9381 0 R/Type/Annot/A 27325 0 R/Subtype/Link/Rect[168 289 182 298]/Border[0 0 0]/H/N>> endobj 27106 0 obj <>/P 9381 0 R/Type/Annot/A 27322 0 R/Subtype/Link/Rect[184 289 198 298]/Border[0 0 0]/H/N>> endobj 27107 0 obj <>/P 9381 0 R/Type/Annot/A 27320 0 R/Subtype/Link/Rect[200 289 217 299]/Border[0 0 0]/H/N>> endobj 27108 0 obj <>/P 9381 0 R/Type/Annot/A 27544 0 R/Subtype/Link/Rect[217 289 231 298]/Border[0 0 0]/H/N>> endobj 27109 0 obj <>/P 9381 0 R/Type/Annot/A 27540 0 R/Subtype/Link/Rect[233 289 250 299]/Border[0 0 0]/H/N>> endobj 27110 0 obj <>/P 9381 0 R/Type/Annot/A 27537 0 R/Subtype/Link/Rect[251 289 265 298]/Border[0 0 0]/H/N>> endobj 27111 0 obj <>/P 9381 0 R/Type/Annot/A 27535 0 R/Subtype/Link/Rect[267 289 281 298]/Border[0 0 0]/H/N>> endobj 27112 0 obj <>/P 9381 0 R/Type/Annot/A 27532 0 R/Subtype/Link/Rect[283 289 297 298]/Border[0 0 0]/H/N>> endobj 27113 0 obj <>/P 9381 0 R/Type/Annot/A 27529 0 R/Subtype/Link/Rect[151 279 165 288]/Border[0 0 0]/H/N>> endobj 27114 0 obj <>/P 9381 0 R/Type/Annot/A 27526 0 R/Subtype/Link/Rect[167 279 181 288]/Border[0 0 0]/H/N>> endobj 27115 0 obj <>/P 9381 0 R/Type/Annot/A 27524 0 R/Subtype/Link/Rect[183 279 197 288]/Border[0 0 0]/H/N>> endobj 27116 0 obj <>/P 9381 0 R/Type/Annot/A 27521 0 R/Subtype/Link/Rect[199 279 213 288]/Border[0 0 0]/H/N>> endobj 27117 0 obj <>/P 9381 0 R/Type/Annot/A 27517 0 R/Subtype/Link/Rect[215 279 229 288]/Border[0 0 0]/H/N>> endobj 27118 0 obj <>/P 9381 0 R/Type/Annot/A 27302 0 R/Subtype/Link/Rect[231 279 245 288]/Border[0 0 0]/H/N>> endobj 27119 0 obj <>/P 9381 0 R/Type/Annot/A 27513 0 R/Subtype/Link/Rect[247 279 261 288]/Border[0 0 0]/H/N>> endobj 27120 0 obj <>/P 9381 0 R/Type/Annot/A 27509 0 R/Subtype/Link/Rect[263 279 279 289]/Border[0 0 0]/H/N>> endobj 27121 0 obj <>/P 9381 0 R/Type/Annot/A 27505 0 R/Subtype/Link/Rect[280 279 294 288]/Border[0 0 0]/H/N>> endobj 27122 0 obj <>/P 9381 0 R/Type/Annot/A 27501 0 R/Subtype/Link/Rect[296 279 310 288]/Border[0 0 0]/H/N>> endobj 27123 0 obj <>/P 9381 0 R/Type/Annot/A 27497 0 R/Subtype/Link/Rect[151 269 167 279]/Border[0 0 0]/H/N>> endobj 27124 0 obj <>/P 9381 0 R/Type/Annot/A 27493 0 R/Subtype/Link/Rect[168 269 182 278]/Border[0 0 0]/H/N>> endobj 27125 0 obj <>/P 9381 0 R/Type/Annot/A 27489 0 R/Subtype/Link/Rect[184 269 198 278]/Border[0 0 0]/H/N>> endobj 27126 0 obj <>/P 9381 0 R/Type/Annot/A 27485 0 R/Subtype/Link/Rect[200 269 214 278]/Border[0 0 0]/H/N>> endobj 27127 0 obj <>/P 9381 0 R/Type/Annot/A 27481 0 R/Subtype/Link/Rect[216 269 230 278]/Border[0 0 0]/H/N>> endobj 27128 0 obj <>/P 9381 0 R/Type/Annot/A 27477 0 R/Subtype/Link/Rect[232 269 246 278]/Border[0 0 0]/H/N>> endobj 27129 0 obj <>/P 9381 0 R/Type/Annot/A 27473 0 R/Subtype/Link/Rect[248 269 265 279]/Border[0 0 0]/H/N>> endobj 27130 0 obj <>/P 9381 0 R/Type/Annot/A 27470 0 R/Subtype/Link/Rect[265 269 279 278]/Border[0 0 0]/H/N>> endobj 27131 0 obj <>/P 9381 0 R/Type/Annot/A 27467 0 R/Subtype/Link/Rect[281 269 295 278]/Border[0 0 0]/H/N>> endobj 27132 0 obj <>/P 9381 0 R/Type/Annot/A 27464 0 R/Subtype/Link/Rect[151 259 165 268]/Border[0 0 0]/H/N>> endobj 27133 0 obj <>/P 9381 0 R/Type/Annot/A 27461 0 R/Subtype/Link/Rect[167 259 181 268]/Border[0 0 0]/H/N>> endobj 27134 0 obj <>/P 9381 0 R/Type/Annot/A 27457 0 R/Subtype/Link/Rect[183 259 195 268]/Border[0 0 0]/H/N>> endobj 27135 0 obj <>/P 9381 0 R/Type/Annot/A 27454 0 R/Subtype/Link/Rect[197 249 211 258]/Border[0 0 0]/H/N>> endobj 27136 0 obj <>/P 9381 0 R/Type/Annot/A 27450 0 R/Subtype/Link/Rect[213 249 227 258]/Border[0 0 0]/H/N>> endobj 27137 0 obj <>/P 9381 0 R/Type/Annot/A 27446 0 R/Subtype/Link/Rect[229 249 243 258]/Border[0 0 0]/H/N>> endobj 27138 0 obj <>/P 9381 0 R/Type/Annot/A 27442 0 R/Subtype/Link/Rect[245 249 257 258]/Border[0 0 0]/H/N>> endobj 27139 0 obj <>/P 9381 0 R/Type/Annot/A 27439 0 R/Subtype/Link/Rect[189 239 201 248]/Border[0 0 0]/H/N>> endobj 27140 0 obj <>/P 9381 0 R/Type/Annot/A 27435 0 R/Subtype/Link/Rect[211 229 228 239]/Border[0 0 0]/H/N>> endobj 27141 0 obj <>/P 9381 0 R/Type/Annot/A 27432 0 R/Subtype/Link/Rect[229 229 243 238]/Border[0 0 0]/H/N>> endobj 27142 0 obj <>/P 9381 0 R/Type/Annot/A 27428 0 R/Subtype/Link/Rect[245 229 257 238]/Border[0 0 0]/H/N>> endobj 27143 0 obj <>/P 9381 0 R/Type/Annot/A 27424 0 R/Subtype/Link/Rect[189 219 201 228]/Border[0 0 0]/H/N>> endobj 27144 0 obj <>/P 9381 0 R/Type/Annot/A 27420 0 R/Subtype/Link/Rect[192 209 204 218]/Border[0 0 0]/H/N>> endobj 27145 0 obj <>/P 9381 0 R/Type/Annot/A 27416 0 R/Subtype/Link/Rect[196 199 206 208]/Border[0 0 0]/H/N>> endobj 27146 0 obj <>/P 9381 0 R/Type/Annot/A 27414 0 R/Subtype/Link/Rect[208 199 222 208]/Border[0 0 0]/H/N>> endobj 27147 0 obj <>/P 9381 0 R/Type/Annot/A 27411 0 R/Subtype/Link/Rect[224 199 238 208]/Border[0 0 0]/H/N>> endobj 27148 0 obj <>/P 9381 0 R/Type/Annot/A 27407 0 R/Subtype/Link/Rect[240 199 254 208]/Border[0 0 0]/H/N>> endobj 27149 0 obj <>/P 9381 0 R/Type/Annot/A 27404 0 R/Subtype/Link/Rect[256 199 270 208]/Border[0 0 0]/H/N>> endobj 27150 0 obj <>/P 9381 0 R/Type/Annot/A 27400 0 R/Subtype/Link/Rect[272 199 286 208]/Border[0 0 0]/H/N>> endobj 27151 0 obj <>/P 9381 0 R/Type/Annot/A 27377 0 R/Subtype/Link/Rect[288 199 302 208]/Border[0 0 0]/H/N>> endobj 27152 0 obj <>/P 9381 0 R/Type/Annot/A 27394 0 R/Subtype/Link/Rect[151 189 165 198]/Border[0 0 0]/H/N>> endobj 27153 0 obj <>/P 9381 0 R/Type/Annot/A 27390 0 R/Subtype/Link/Rect[167 189 181 198]/Border[0 0 0]/H/N>> endobj 27154 0 obj <>/P 9381 0 R/Type/Annot/A 27386 0 R/Subtype/Link/Rect[183 189 197 198]/Border[0 0 0]/H/N>> endobj 27155 0 obj <>/P 9381 0 R/Type/Annot/A 27382 0 R/Subtype/Link/Rect[199 189 211 198]/Border[0 0 0]/H/N>> endobj 27156 0 obj <>/P 9381 0 R/Type/Annot/A 27376 0 R/Subtype/Link/Rect[231 179 245 188]/Border[0 0 0]/H/N>> endobj 27157 0 obj <>/P 9381 0 R/Type/Annot/A 27371 0 R/Subtype/Link/Rect[247 179 259 188]/Border[0 0 0]/H/N>> endobj 27158 0 obj <>/P 9381 0 R/Type/Annot/A 27367 0 R/Subtype/Link/Rect[199 169 213 178]/Border[0 0 0]/H/N>> endobj 27159 0 obj <>/P 9381 0 R/Type/Annot/A 27362 0 R/Subtype/Link/Rect[215 169 229 178]/Border[0 0 0]/H/N>> endobj 27160 0 obj <>/P 9381 0 R/Type/Annot/A 27337 0 R/Subtype/Link/Rect[231 169 245 178]/Border[0 0 0]/H/N>> endobj 27161 0 obj <>/P 9381 0 R/Type/Annot/A 27355 0 R/Subtype/Link/Rect[247 169 259 178]/Border[0 0 0]/H/N>> endobj 27162 0 obj <>/P 9381 0 R/Type/Annot/A 27351 0 R/Subtype/Link/Rect[211 159 228 169]/Border[0 0 0]/H/N>> endobj 27163 0 obj <>/P 9381 0 R/Type/Annot/A 27348 0 R/Subtype/Link/Rect[229 159 241 168]/Border[0 0 0]/H/N>> endobj 27164 0 obj <>/P 9381 0 R/Type/Annot/A 27346 0 R/Subtype/Link/Rect[221 149 238 159]/Border[0 0 0]/H/N>> endobj 27165 0 obj <>/P 9381 0 R/Type/Annot/A 27341 0 R/Subtype/Link/Rect[238 149 252 158]/Border[0 0 0]/H/N>> endobj 27166 0 obj <>/P 9381 0 R/Type/Annot/A 27336 0 R/Subtype/Link/Rect[254 149 266 158]/Border[0 0 0]/H/N>> endobj 27167 0 obj <>/P 9381 0 R/Type/Annot/A 27332 0 R/Subtype/Link/Rect[424 669 441 679]/Border[0 0 0]/H/N>> endobj 27168 0 obj <>/P 9381 0 R/Type/Annot/A 27328 0 R/Subtype/Link/Rect[441 669 453 678]/Border[0 0 0]/H/N>> endobj 27169 0 obj <>/P 9381 0 R/Type/Annot/A 27324 0 R/Subtype/Link/Rect[429 659 446 669]/Border[0 0 0]/H/N>> endobj 27170 0 obj <>/P 9381 0 R/Type/Annot/A 27321 0 R/Subtype/Link/Rect[446 659 458 668]/Border[0 0 0]/H/N>> endobj 27171 0 obj <>/P 9381 0 R/Type/Annot/A 27318 0 R/Subtype/Link/Rect[434 649 450 659]/Border[0 0 0]/H/N>> endobj 27172 0 obj <>/P 9381 0 R/Type/Annot/A 27316 0 R/Subtype/Link/Rect[451 649 465 658]/Border[0 0 0]/H/N>> endobj 27173 0 obj <>/P 9381 0 R/Type/Annot/A 27314 0 R/Subtype/Link/Rect[467 649 479 658]/Border[0 0 0]/H/N>> endobj 27174 0 obj <>/P 9381 0 R/Type/Annot/A 27312 0 R/Subtype/Link/Rect[448 639 462 648]/Border[0 0 0]/H/N>> endobj 27175 0 obj <>/P 9381 0 R/Type/Annot/A 27310 0 R/Subtype/Link/Rect[464 639 476 648]/Border[0 0 0]/H/N>> endobj 27176 0 obj <>/P 9381 0 R/Type/Annot/A 27309 0 R/Subtype/Link/Rect[443 629 460 639]/Border[0 0 0]/H/N>> endobj 27177 0 obj <>/P 9381 0 R/Type/Annot/A 27308 0 R/Subtype/Link/Rect[461 629 473 638]/Border[0 0 0]/H/N>> endobj 27178 0 obj <>/P 9381 0 R/Type/Annot/A 27307 0 R/Subtype/Link/Rect[448 619 462 628]/Border[0 0 0]/H/N>> endobj 27179 0 obj <>/P 9381 0 R/Type/Annot/A 27305 0 R/Subtype/Link/Rect[464 619 476 628]/Border[0 0 0]/H/N>> endobj 27180 0 obj <>/P 9381 0 R/Type/Annot/A 27304 0 R/Subtype/Link/Rect[429 609 443 618]/Border[0 0 0]/H/N>> endobj 27181 0 obj <>/P 9381 0 R/Type/Annot/A 27303 0 R/Subtype/Link/Rect[445 609 457 618]/Border[0 0 0]/H/N>> endobj 27182 0 obj <>/P 9381 0 R/Type/Annot/A 27301 0 R/Subtype/Link/Rect[439 599 455 609]/Border[0 0 0]/H/N>> endobj 27183 0 obj <>/P 9381 0 R/Type/Annot/A 27300 0 R/Subtype/Link/Rect[456 599 470 608]/Border[0 0 0]/H/N>> endobj 27184 0 obj <>/P 9381 0 R/Type/Annot/A 27299 0 R/Subtype/Link/Rect[472 599 486 608]/Border[0 0 0]/H/N>> endobj 27185 0 obj <>/P 9381 0 R/Type/Annot/A 27298 0 R/Subtype/Link/Rect[488 599 500 608]/Border[0 0 0]/H/N>> endobj 27186 0 obj <>/P 9381 0 R/Type/Annot/A 27297 0 R/Subtype/Link/Rect[434 589 450 599]/Border[0 0 0]/H/N>> endobj 27187 0 obj <>/P 9381 0 R/Type/Annot/A 27296 0 R/Subtype/Link/Rect[451 589 463 598]/Border[0 0 0]/H/N>> endobj 27188 0 obj <>/P 9381 0 R/Type/Annot/A 27295 0 R/Subtype/Link/Rect[429 579 443 588]/Border[0 0 0]/H/N>> endobj 27189 0 obj <>/P 9381 0 R/Type/Annot/A 27294 0 R/Subtype/Link/Rect[445 579 457 588]/Border[0 0 0]/H/N>> endobj 27190 0 obj <>/P 9381 0 R/Type/Annot/A 27293 0 R/Subtype/Link/Rect[424 569 441 579]/Border[0 0 0]/H/N>> endobj 27191 0 obj <>/P 9381 0 R/Type/Annot/A 27292 0 R/Subtype/Link/Rect[441 569 453 578]/Border[0 0 0]/H/N>> endobj 27192 0 obj <>/P 9381 0 R/Type/Annot/A 27291 0 R/Subtype/Link/Rect[439 559 455 569]/Border[0 0 0]/H/N>> endobj 27193 0 obj <>/P 9381 0 R/Type/Annot/A 27290 0 R/Subtype/Link/Rect[456 559 468 568]/Border[0 0 0]/H/N>> endobj 27194 0 obj <>/P 9381 0 R/Type/Annot/A 27289 0 R/Subtype/Link/Rect[458 549 472 558]/Border[0 0 0]/H/N>> endobj 27195 0 obj <>/P 9381 0 R/Type/Annot/A 27288 0 R/Subtype/Link/Rect[474 549 486 558]/Border[0 0 0]/H/N>> endobj 27196 0 obj <>/P 9381 0 R/Type/Annot/A 27287 0 R/Subtype/Link/Rect[434 539 448 548]/Border[0 0 0]/H/N>> endobj 27197 0 obj <>/P 9381 0 R/Type/Annot/A 27286 0 R/Subtype/Link/Rect[450 539 462 548]/Border[0 0 0]/H/N>> endobj 27198 0 obj <>/P 9381 0 R/Type/Annot/A 27285 0 R/Subtype/Link/Rect[429 529 443 538]/Border[0 0 0]/H/N>> endobj 27199 0 obj <>/P 9381 0 R/Type/Annot/A 27284 0 R/Subtype/Link/Rect[445 529 457 538]/Border[0 0 0]/H/N>> endobj 27200 0 obj <>/P 9381 0 R/Type/Annot/A 27282 0 R/Subtype/Link/Rect[429 519 443 528]/Border[0 0 0]/H/N>> endobj 27201 0 obj <>/P 9381 0 R/Type/Annot/A 27281 0 R/Subtype/Link/Rect[445 519 457 528]/Border[0 0 0]/H/N>> endobj 27202 0 obj <>/P 9381 0 R/Type/Annot/A 27280 0 R/Subtype/Link/Rect[408 509 418 518]/Border[0 0 0]/H/N>> endobj 27203 0 obj <>/P 9381 0 R/Type/Annot/A 27279 0 R/Subtype/Link/Rect[420 509 432 518]/Border[0 0 0]/H/N>> endobj 27204 0 obj <>/P 9381 0 R/Type/Annot/A 27277 0 R/Subtype/Link/Rect[406 499 420 508]/Border[0 0 0]/H/N>> endobj 27205 0 obj <>/P 9381 0 R/Type/Annot/A 27402 0 R/Subtype/Link/Rect[422 499 439 509]/Border[0 0 0]/H/N>> endobj 27206 0 obj <>/P 9381 0 R/Type/Annot/A 44791 0 R/Subtype/Link/Rect[439 499 451 508]/Border[0 0 0]/H/N>> endobj 27207 0 obj <>/P 9381 0 R/Type/Annot/A 27392 0 R/Subtype/Link/Rect[411 489 425 498]/Border[0 0 0]/H/N>> endobj 27208 0 obj <>/P 9381 0 R/Type/Annot/A 27388 0 R/Subtype/Link/Rect[427 489 441 498]/Border[0 0 0]/H/N>> endobj 27209 0 obj <>/P 9381 0 R/Type/Annot/A 30238 0 R/Subtype/Link/Rect[443 489 457 498]/Border[0 0 0]/H/N>> endobj 27210 0 obj <>/P 9381 0 R/Type/Annot/A 27380 0 R/Subtype/Link/Rect[459 489 471 498]/Border[0 0 0]/H/N>> endobj 27211 0 obj <>/P 9381 0 R/Type/Annot/A 27374 0 R/Subtype/Link/Rect[387 479 401 488]/Border[0 0 0]/H/N>> endobj 27212 0 obj <>/P 9381 0 R/Type/Annot/A 27369 0 R/Subtype/Link/Rect[403 479 415 488]/Border[0 0 0]/H/N>> endobj 27213 0 obj <>/P 9381 0 R/Type/Annot/A 27365 0 R/Subtype/Link/Rect[400 469 414 478]/Border[0 0 0]/H/N>> endobj 27214 0 obj <>/P 9381 0 R/Type/Annot/A 27360 0 R/Subtype/Link/Rect[416 469 432 479]/Border[0 0 0]/H/N>> endobj 27215 0 obj <>/P 9381 0 R/Type/Annot/A 27357 0 R/Subtype/Link/Rect[432 469 446 478]/Border[0 0 0]/H/N>> endobj 27216 0 obj <>/P 9381 0 R/Type/Annot/A 27353 0 R/Subtype/Link/Rect[448 469 462 478]/Border[0 0 0]/H/N>> endobj 27217 0 obj <>/P 9381 0 R/Type/Annot/A 27349 0 R/Subtype/Link/Rect[464 469 481 479]/Border[0 0 0]/H/N>> endobj 27218 0 obj <>/P 9381 0 R/Type/Annot/A 27344 0 R/Subtype/Link/Rect[482 469 496 478]/Border[0 0 0]/H/N>> endobj 27219 0 obj <>/P 9381 0 R/Type/Annot/A 27339 0 R/Subtype/Link/Rect[498 469 510 478]/Border[0 0 0]/H/N>> endobj 27220 0 obj <>/P 9381 0 R/Type/Annot/A 27334 0 R/Subtype/Link/Rect[397 459 409 468]/Border[0 0 0]/H/N>> endobj 27221 0 obj <>/P 9381 0 R/Type/Annot/A 27330 0 R/Subtype/Link/Rect[405 449 419 458]/Border[0 0 0]/H/N>> endobj 27222 0 obj <>/P 9381 0 R/Type/Annot/A 27326 0 R/Subtype/Link/Rect[421 449 433 458]/Border[0 0 0]/H/N>> endobj 27223 0 obj <>/P 9381 0 R/Type/Annot/A 27323 0 R/Subtype/Link/Rect[395 439 412 449]/Border[0 0 0]/H/N>> endobj 27224 0 obj <>/P 9381 0 R/Type/Annot/A 27319 0 R/Subtype/Link/Rect[413 439 425 448]/Border[0 0 0]/H/N>> endobj 27225 0 obj <>/P 9381 0 R/Type/Annot/A 27317 0 R/Subtype/Link/Rect[385 419 391 428]/Border[0 0 0]/H/N>> endobj 27226 0 obj <>/P 9381 0 R/Type/Annot/A 27315 0 R/Subtype/Link/Rect[393 419 399 428]/Border[0 0 0]/H/N>> endobj 27227 0 obj <>/P 9381 0 R/Type/Annot/A 27313 0 R/Subtype/Link/Rect[401 419 411 428]/Border[0 0 0]/H/N>> endobj 27228 0 obj <>/P 9381 0 R/Type/Annot/A 27311 0 R/Subtype/Link/Rect[413 419 427 428]/Border[0 0 0]/H/N>> endobj 27229 0 obj <>/P 9381 0 R/Type/Annot/A 27541 0 R/Subtype/Link/Rect[429 419 443 428]/Border[0 0 0]/H/N>> endobj 27230 0 obj <>/P 9381 0 R/Type/Annot/A 27539 0 R/Subtype/Link/Rect[445 419 459 428]/Border[0 0 0]/H/N>> endobj 27231 0 obj <>/P 9381 0 R/Type/Annot/A 27306 0 R/Subtype/Link/Rect[461 419 475 428]/Border[0 0 0]/H/N>> endobj 27232 0 obj <>/P 9381 0 R/Type/Annot/A 27533 0 R/Subtype/Link/Rect[477 419 491 428]/Border[0 0 0]/H/N>> endobj 27233 0 obj <>/P 9381 0 R/Type/Annot/A 27530 0 R/Subtype/Link/Rect[493 419 505 428]/Border[0 0 0]/H/N>> endobj 27234 0 obj <>/P 9381 0 R/Type/Annot/A 27527 0 R/Subtype/Link/Rect[393 409 401 418]/Border[0 0 0]/H/N>> endobj 27235 0 obj <>/P 9381 0 R/Type/Annot/A 27523 0 R/Subtype/Link/Rect[406 399 418 408]/Border[0 0 0]/H/N>> endobj 27236 0 obj <>/P 9381 0 R/Type/Annot/A 27520 0 R/Subtype/Link/Rect[411 389 423 398]/Border[0 0 0]/H/N>> endobj 27237 0 obj <>/P 9381 0 R/Type/Annot/A 27516 0 R/Subtype/Link/Rect[349 379 363 388]/Border[0 0 0]/H/N>> endobj 27238 0 obj <>/P 9381 0 R/Type/Annot/A 40737 0 R/Subtype/Link/Rect[367 379 381 388]/Border[0 0 0]/H/N>> endobj 27239 0 obj <>/P 9381 0 R/Type/Annot/A 27511 0 R/Subtype/Link/Rect[383 379 400 389]/Border[0 0 0]/H/N>> endobj 27240 0 obj <>/P 9381 0 R/Type/Annot/A 27507 0 R/Subtype/Link/Rect[401 379 413 388]/Border[0 0 0]/H/N>> endobj 27241 0 obj <>/P 9381 0 R/Type/Annot/A 27503 0 R/Subtype/Link/Rect[416 369 430 378]/Border[0 0 0]/H/N>> endobj 27242 0 obj <>/P 9381 0 R/Type/Annot/A 27499 0 R/Subtype/Link/Rect[432 369 444 378]/Border[0 0 0]/H/N>> endobj 27243 0 obj <>/P 9381 0 R/Type/Annot/A 27495 0 R/Subtype/Link/Rect[419 359 429 368]/Border[0 0 0]/H/N>> endobj 27244 0 obj <>/P 9381 0 R/Type/Annot/A 27491 0 R/Subtype/Link/Rect[431 359 439 368]/Border[0 0 0]/H/N>> endobj 27245 0 obj <>/P 9381 0 R/Type/Annot/A 27487 0 R/Subtype/Link/Rect[391 349 405 358]/Border[0 0 0]/H/N>> endobj 27246 0 obj <>/P 9381 0 R/Type/Annot/A 27483 0 R/Subtype/Link/Rect[407 349 421 358]/Border[0 0 0]/H/N>> endobj 27247 0 obj <>/P 9381 0 R/Type/Annot/A 27479 0 R/Subtype/Link/Rect[423 349 437 358]/Border[0 0 0]/H/N>> endobj 27248 0 obj <>/P 9381 0 R/Type/Annot/A 27475 0 R/Subtype/Link/Rect[439 349 453 358]/Border[0 0 0]/H/N>> endobj 27249 0 obj <>/P 9381 0 R/Type/Annot/A 27471 0 R/Subtype/Link/Rect[455 349 467 358]/Border[0 0 0]/H/N>> endobj 27250 0 obj <>/P 9381 0 R/Type/Annot/A 27283 0 R/Subtype/Link/Rect[411 339 423 348]/Border[0 0 0]/H/N>> endobj 27251 0 obj <>/P 9381 0 R/Type/Annot/A 27463 0 R/Subtype/Link/Rect[394 291 402 300]/Border[0 0 0]/H/N>> endobj 27252 0 obj <>/P 9381 0 R/Type/Annot/A 27460 0 R/Subtype/Link/Rect[387 281 399 290]/Border[0 0 0]/H/N>> endobj 27253 0 obj <>/P 9381 0 R/Type/Annot/A 27456 0 R/Subtype/Link/Rect[392 271 404 280]/Border[0 0 0]/H/N>> endobj 27254 0 obj <>/P 9381 0 R/Type/Annot/A 27453 0 R/Subtype/Link/Rect[445 251 457 260]/Border[0 0 0]/H/N>> endobj 27255 0 obj <>/P 9381 0 R/Type/Annot/A 27449 0 R/Subtype/Link/Rect[405 241 419 250]/Border[0 0 0]/H/N>> endobj 27256 0 obj <>/P 9381 0 R/Type/Annot/A 27445 0 R/Subtype/Link/Rect[421 241 435 250]/Border[0 0 0]/H/N>> endobj 27257 0 obj <>/P 9381 0 R/Type/Annot/A 27441 0 R/Subtype/Link/Rect[437 241 451 250]/Border[0 0 0]/H/N>> endobj 27258 0 obj <>/P 9381 0 R/Type/Annot/A 27438 0 R/Subtype/Link/Rect[453 241 467 250]/Border[0 0 0]/H/N>> endobj 27259 0 obj <>/P 9381 0 R/Type/Annot/A 27434 0 R/Subtype/Link/Rect[469 241 485 251]/Border[0 0 0]/H/N>> endobj 27260 0 obj <>/P 9381 0 R/Type/Annot/A 27431 0 R/Subtype/Link/Rect[486 241 500 250]/Border[0 0 0]/H/N>> endobj 27261 0 obj <>/P 9381 0 R/Type/Annot/A 27427 0 R/Subtype/Link/Rect[502 241 514 250]/Border[0 0 0]/H/N>> endobj 27262 0 obj <>/P 9381 0 R/Type/Annot/A 27423 0 R/Subtype/Link/Rect[426 231 438 240]/Border[0 0 0]/H/N>> endobj 27263 0 obj <>/P 9381 0 R/Type/Annot/A 27419 0 R/Subtype/Link/Rect[434 221 448 230]/Border[0 0 0]/H/N>> endobj 27264 0 obj <>/P 9381 0 R/Type/Annot/A 27342 0 R/Subtype/Link/Rect[450 221 466 231]/Border[0 0 0]/H/N>> endobj 27265 0 obj <>/P 9381 0 R/Type/Annot/A 27412 0 R/Subtype/Link/Rect[467 221 479 230]/Border[0 0 0]/H/N>> endobj 27266 0 obj <>/P 9381 0 R/Type/Annot/A 27408 0 R/Subtype/Link/Rect[410 211 422 220]/Border[0 0 0]/H/N>> endobj 27267 0 obj <>/P 9381 0 R/Type/Annot/A 27403 0 R/Subtype/Link/Rect[403 201 415 210]/Border[0 0 0]/H/N>> endobj 27268 0 obj <>/P 9381 0 R/Type/Annot/A 27399 0 R/Subtype/Link/Rect[434 191 446 200]/Border[0 0 0]/H/N>> endobj 27269 0 obj <>/P 9381 0 R/Type/Annot/A 27396 0 R/Subtype/Link/Rect[434 181 448 190]/Border[0 0 0]/H/N>> endobj 27270 0 obj <>/P 9381 0 R/Type/Annot/A 31075 0 R/Subtype/Link/Rect[450 181 462 190]/Border[0 0 0]/H/N>> endobj 27271 0 obj <>/P 9381 0 R/Type/Annot/A 31026 0 R/Subtype/Link/Rect[424 171 438 180]/Border[0 0 0]/H/N>> endobj 27272 0 obj <>/P 9381 0 R/Type/Annot/A 27384 0 R/Subtype/Link/Rect[440 171 452 180]/Border[0 0 0]/H/N>> endobj 27273 0 obj <>/P 9381 0 R/Type/Annot/A 27379 0 R/Subtype/Link/Rect[424 151 436 160]/Border[0 0 0]/H/N>> endobj 27274 0 obj <>/P 9381 0 R/Type/Annot/A 27373 0 R/Subtype/Link/Rect[380 260 397 269]/Border[0 0 0]/H/N>> endobj 27275 0 obj <>/P 9381 0 R/Type/Annot/A 30169 0 R/Subtype/Link/Rect[184 198 194 207]/Border[0 0 0]/H/N>> endobj 27276 0 obj <>/P 9381 0 R/Type/Annot/A 27364 0 R/Subtype/Link/Rect[383 200 402 209]/Border[0 0 0]/H/N>> endobj 27277 0 obj <> endobj 27278 0 obj <> endobj 27279 0 obj <> endobj 27280 0 obj <> endobj 27281 0 obj <> endobj 27282 0 obj <> endobj 27283 0 obj <> endobj 27284 0 obj <> endobj 27285 0 obj <> endobj 27286 0 obj <> endobj 27287 0 obj <> endobj 27288 0 obj <> endobj 27289 0 obj <> endobj 27290 0 obj <> endobj 27291 0 obj <> endobj 27292 0 obj <> endobj 27293 0 obj <> endobj 27294 0 obj <> endobj 27295 0 obj <> endobj 27296 0 obj <> endobj 27297 0 obj <> endobj 27298 0 obj <> endobj 27299 0 obj <> endobj 27300 0 obj <> endobj 27301 0 obj <> endobj 27302 0 obj <> endobj 27303 0 obj <> endobj 27304 0 obj <> endobj 27305 0 obj <> endobj 27306 0 obj <> endobj 27307 0 obj <> endobj 27308 0 obj <> endobj 27309 0 obj <> endobj 27310 0 obj <> endobj 27311 0 obj <> endobj 27312 0 obj <> endobj 27313 0 obj <> endobj 27314 0 obj <> endobj 27315 0 obj <> endobj 27316 0 obj <> endobj 27317 0 obj <> endobj 27318 0 obj <> endobj 27319 0 obj <> endobj 27320 0 obj <> endobj 27321 0 obj <> endobj 27322 0 obj <> endobj 27323 0 obj <> endobj 27324 0 obj <> endobj 27325 0 obj <> endobj 27326 0 obj <> endobj 27327 0 obj <> endobj 27328 0 obj <> endobj 27329 0 obj <> endobj 27330 0 obj <> endobj 27331 0 obj <> endobj 27332 0 obj <> endobj 27333 0 obj <> endobj 27334 0 obj <> endobj 27335 0 obj <> endobj 27336 0 obj <> endobj 27337 0 obj <> endobj 27338 0 obj <> endobj 27339 0 obj <> endobj 27340 0 obj <> endobj 27341 0 obj <> endobj 27342 0 obj <> endobj 27343 0 obj <> endobj 27344 0 obj <> endobj 27345 0 obj <> endobj 27346 0 obj <> endobj 27347 0 obj <> endobj 27348 0 obj <> endobj 27349 0 obj <> endobj 27350 0 obj <> endobj 27351 0 obj <> endobj 27352 0 obj <> endobj 27353 0 obj <> endobj 27354 0 obj <> endobj 27355 0 obj <> endobj 27356 0 obj <> endobj 27357 0 obj <> endobj 27358 0 obj <> endobj 27359 0 obj <> endobj 27360 0 obj <> endobj 27361 0 obj <> endobj 27362 0 obj <> endobj 27363 0 obj <> endobj 27364 0 obj <> endobj 27365 0 obj <> endobj 27366 0 obj <> endobj 27367 0 obj <> endobj 27368 0 obj <> endobj 27369 0 obj <> endobj 27370 0 obj <> endobj 27371 0 obj <> endobj 27372 0 obj <> endobj 27373 0 obj <> endobj 27374 0 obj <> endobj 27375 0 obj <> endobj 27376 0 obj <> endobj 27377 0 obj <> endobj 27378 0 obj <> endobj 27379 0 obj <> endobj 27380 0 obj <> endobj 27381 0 obj <> endobj 27382 0 obj <> endobj 27383 0 obj <> endobj 27384 0 obj <> endobj 27385 0 obj <> endobj 27386 0 obj <> endobj 27387 0 obj <> endobj 27388 0 obj <> endobj 27389 0 obj <> endobj 27390 0 obj <> endobj 27391 0 obj <> endobj 27392 0 obj <> endobj 27393 0 obj <> endobj 27394 0 obj <> endobj 27395 0 obj <> endobj 27396 0 obj <> endobj 27397 0 obj <> endobj 27398 0 obj <> endobj 27399 0 obj <> endobj 27400 0 obj <> endobj 27401 0 obj <> endobj 27402 0 obj <> endobj 27403 0 obj <> endobj 27404 0 obj <> endobj 27405 0 obj <> endobj 27406 0 obj <> endobj 27407 0 obj <> endobj 27408 0 obj <> endobj 27409 0 obj <> endobj 27410 0 obj <> endobj 27411 0 obj <> endobj 27412 0 obj <> endobj 27413 0 obj <> endobj 27414 0 obj <> endobj 27415 0 obj <> endobj 27416 0 obj <> endobj 27417 0 obj <> endobj 27418 0 obj <> endobj 27419 0 obj <> endobj 27420 0 obj <> endobj 27421 0 obj <> endobj 27422 0 obj <> endobj 27423 0 obj <> endobj 27424 0 obj <> endobj 27425 0 obj <> endobj 27426 0 obj <> endobj 27427 0 obj <> endobj 27428 0 obj <> endobj 27429 0 obj <> endobj 27430 0 obj <> endobj 27431 0 obj <> endobj 27432 0 obj <> endobj 27433 0 obj <> endobj 27434 0 obj <> endobj 27435 0 obj <> endobj 27436 0 obj <> endobj 27437 0 obj <> endobj 27438 0 obj <> endobj 27439 0 obj <> endobj 27440 0 obj <> endobj 27441 0 obj <> endobj 27442 0 obj <> endobj 27443 0 obj <> endobj 27444 0 obj <> endobj 27445 0 obj <> endobj 27446 0 obj <> endobj 27447 0 obj <> endobj 27448 0 obj <> endobj 27449 0 obj <> endobj 27450 0 obj <> endobj 27451 0 obj <> endobj 27452 0 obj <> endobj 27453 0 obj <> endobj 27454 0 obj <> endobj 27455 0 obj <> endobj 27456 0 obj <> endobj 27457 0 obj <> endobj 27458 0 obj <> endobj 27459 0 obj <> endobj 27460 0 obj <> endobj 27461 0 obj <> endobj 27462 0 obj <> endobj 27463 0 obj <> endobj 27464 0 obj <> endobj 27465 0 obj <> endobj 27466 0 obj <> endobj 27467 0 obj <> endobj 27468 0 obj <> endobj 27469 0 obj <> endobj 27470 0 obj <> endobj 27471 0 obj <> endobj 27472 0 obj <> endobj 27473 0 obj <> endobj 27474 0 obj <> endobj 27475 0 obj <> endobj 27476 0 obj <> endobj 27477 0 obj <> endobj 27478 0 obj <> endobj 27479 0 obj <> endobj 27480 0 obj <> endobj 27481 0 obj <> endobj 27482 0 obj <> endobj 27483 0 obj <> endobj 27484 0 obj <> endobj 27485 0 obj <> endobj 27486 0 obj <> endobj 27487 0 obj <> endobj 27488 0 obj <> endobj 27489 0 obj <> endobj 27490 0 obj <> endobj 27491 0 obj <> endobj 27492 0 obj <> endobj 27493 0 obj <> endobj 27494 0 obj <> endobj 27495 0 obj <> endobj 27496 0 obj <> endobj 27497 0 obj <> endobj 27498 0 obj <> endobj 27499 0 obj <> endobj 27500 0 obj <> endobj 27501 0 obj <> endobj 27502 0 obj <> endobj 27503 0 obj <> endobj 27504 0 obj <> endobj 27505 0 obj <> endobj 27506 0 obj <> endobj 27507 0 obj <> endobj 27508 0 obj <> endobj 27509 0 obj <> endobj 27510 0 obj <> endobj 27511 0 obj <> endobj 27512 0 obj <> endobj 27513 0 obj <> endobj 27514 0 obj <> endobj 27515 0 obj <> endobj 27516 0 obj <> endobj 27517 0 obj <> endobj 27518 0 obj <> endobj 27519 0 obj <> endobj 27520 0 obj <> endobj 27521 0 obj <> endobj 27522 0 obj <> endobj 27523 0 obj <> endobj 27524 0 obj <> endobj 27525 0 obj <> endobj 27526 0 obj <> endobj 27527 0 obj <> endobj 27528 0 obj <> endobj 27529 0 obj <> endobj 27530 0 obj <> endobj 27531 0 obj <> endobj 27532 0 obj <> endobj 27533 0 obj <> endobj 27534 0 obj <> endobj 27535 0 obj <> endobj 27536 0 obj <> endobj 27537 0 obj <> endobj 27538 0 obj <> endobj 27539 0 obj <> endobj 27540 0 obj <> endobj 27541 0 obj <> endobj 27542 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 27543 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 27544 0 obj <> endobj 27545 0 obj <> endobj 27546 0 obj <> stream q /X1 Do Q q endstream endobj 27547 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 27548 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 27549 0 obj <> stream HW۸F+(\{ȡA|H@kklk+nHLg3 wA݇w׷,LB'6׉QO1ݿ}54vv͡f-&^>zVRQ %)lZ!nVGZvM$rqSuM#VkIP7G'/RɅ9(n(h{c:EvPw.ƌ쿭@C=҉g!S!>MFDeߴCT+`G2䔄#S(p8KʐE0dEK^^5^5^5^3F}Y0M0M0M>gQ--- F}/EdԗQxV2!Rk)P=ŀŸb S Yzq-ŐŨ\R Yq-ŀŸbbUk),F}ZŸbb\K1d1*ƵC>pb\K1`1kZ!QV1!Ҍk)P=ŀŸb S Yzq-ŐŨ\R Yq-ŀŸbbՌk),F}Z͸bb\K1d1jƵC>pf\K1`1k5Z!QV3!R Yzq-ŐBZ!Q6c\K1d1fk),ƵC>pmƸbbR Xk),F}ڌq-ŐŨ\1R YZ!Q6c\KCdR Yzq-ŐBeRe&RkUt2!jtG2EbuծY}JDjOۡ>CWW)$Jq(nd2ݍ,!o: 4&:G]5fӻPf5q7:nz5.O{']tڀT=yflfԮ9}~u/d!/$oSOI[8CV׻Chz!~D}I00 /Ù箇sZjcl-j[w3 Ds^=[PWSi"s_?] FIQ_‹;$uR_TfV#P"A{Yc/5mۉs qZ0t|dæ(·2{akNr%{ 3Vϫe?fS7Gz8mF*LZ۾(%3ӐLyFVif5լ걞Xu߻UY.BP㱕6qmz/fj7i{J%b߈o-Ӟw7&c2+K/8sbPZXݣײ`V\OHmp ޿H)vSbmWexsž2ss[\?`F8IA-DTϐ-$L޷=t]0?==2~#rU/9{'MAnXTiXiO4>Ls+"G]"N=:,~zٷzlt7E|kϘi") = 1[jdz$]$V̗-C%s>W?G[؜\>e$y 2X}}|v ^o~a%T^~[\E932*4 [#gd؃ ʗ4so'߸u 6-xc[_j2pd%~TC1uݟ>M 7=gi[`xpXq,aXՍb=&Z0\aٽQ%HN}޼7@@tdj S Ϻ*p N;@ %}ug2 IKnᐧfM1qakyMc Kv/yOA㣪 eSpVMj1YojDMd*m=ZXYa4/yR#,fz*fS?9`qK?hN  OتtaHEH o؉C/9`zXŚGr|p<.2aQ cƪ}z1B%.Ҝ0CWYN-X8ƇGΩgj۲vcYmoUM~/ Vr6-I] >ufPJza4W2.l ;=K&zq` pb;|]e$a'&xCfqE e\ \avxe (#!{D/uƙ"43 70#),)^Pe?0K3ݺL8\_F ]!nN+476 6z42q)2K},b" g8PH7q%X_:7W֝< }K KK[UH+&@{J.x xH|Ρ)/ASb"i"n*Il+^8k5ȥoKtTtu޿Ty8 h#k ~P ^[ cUs)NډDzvaܤ¡ CMZUFd v&j&j&ʋ.aSJQSE5`}r'chMmEnƴR"@}"e>Q,BA\g怆@"9דs9=U͎>v+b?a]l;Fd`)qB`"|tؙr%Fv_ENsߋx?a7P۵:WUOPu}]7 pS<,2OYtv@ w&/ğ8cavH2?;$2v@]Wm'&.~,.@LzHNH t.T I3j KGt;4(Mg = ?yS\~tE\KV[MDOu.;lxs -|sHTк~ #ި DM L:[S6.y{eJHoxue*IO߫޷5h̋#D3vp/'=<~X[ mH[u8gq +w*W?A2.ӑS63t˅sᜭB$lIRxL TޕrGΆs$g\4 ۱MvSlIT7Aص1IC?ԶVK"we0Acm?LdpoƯځ Fy^R9Lf/J^AfEaa3{c4N$.U豚i>Ic 5=i6<*:Hn*$QCB< 썗I|zLa|OsciC&X?c7]ny[WU]4ZqQyzEGW2^dyɯG =<.E2YV2@*o`L(ٙ9јb2M9 \~ǔbz{;T*msvd)=~ݏow`!\endstream endobj 27550 0 obj <>/P 649 0 R/Type/Annot/A 27551 0 R/Subtype/Link/Rect[93.5990982 384.82901 297.407013 404.509003]/Border[0 0 0]/H/N>> endobj 27551 0 obj <> endobj 27552 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 27553 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 27554 0 obj <> endobj 27555 0 obj <> endobj 27556 0 obj <> endobj 27557 0 obj <> endobj 27558 0 obj <> endobj 27559 0 obj <> endobj 27560 0 obj <> endobj 27561 0 obj <> endobj 27562 0 obj <> endobj 27563 0 obj <> endobj 27564 0 obj <> endobj 27565 0 obj <> endobj 27566 0 obj <> endobj 27567 0 obj <> endobj 27568 0 obj <> stream q /X1 Do Q q endstream endobj 27569 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 27570 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 27571 0 obj <> stream HWn8}WQ 8xD`0@.`r7ۭlv[Yaxx9e?t}OqODTbXd,3N$[+>GiѸSWcsjڪ}[ⶊܲ>l-4"Č󴈷ut]_5x4QDln *6“?+gDTњ:KDr^LSgbMQLf,S@RBjؐ/',~i@ok|5qxFHia:Rqn#%} 1Д gPtP(gPA) >@1= 3= s=s=s=  K K K g,`!쳀}9><`_ 싀}/ a ah"}u> >@!}}}BT a!}T>@!}T>Bej}>Bej}A!2DPj}A!2DϠjZWGQ3ZgP!{gP!{(DϠj9ZgP@QZgP@Q3(}Z Q3(}Z>P-GT>P-GT a#}u$> >@!}}}BT aV }T+>@!}T+>Bj}>Bj}A! DPj}A! DϠjZWGQ3ZgP!{gP!{ER"NчmtCT "Y:K>ƛw%{}(/| l= :FHz}:~M2EU|RRun+Nzo{7/'?6ǣvWڶRmMfv*/qןZHa5 O v("2At+ӯ5"b p욺. 1k4ٺŌ#xJI&2:yj7HA$Q9_f4y)_7xik+] ҴvSX݌=Ec h\[u+BfR@H2Gf>"jv;c!Fp!WÝMWH|uݥ~@Iad6uFs)vHaQ> V74M.a7,M̦fsWyZH{ߧ=ڗ^ք`,텁LX:U;n.PEJҔQ]Y; )|te-}zkY]3ѷåa"_aɐ)\ճ[Ay&@I~]\DRN, 5;uѮ<ٜe:qdvhᗳ{t\A׵9(~ǖLªW'J3IȹS8\|BAZxU`o*@-+$p5GdE12R7ͦmMʼnBυvvcNiIKh}",_IZd)n5nЪn< .s)% l*p\>ns|.wթ_]y&Έ2|Z·7=☂llyY>. E8ހMyNR O F7d/ލjVs]0JN_30e79Zo8hgj:=A5P= {I_RyqO.f:)PUOծ (+ mch?ڃP`SWoee-ZaI,+GPx`W_՛Vyyyuak-XbMl"1~HWS5 ]=rdLX^:ڗY^ڝ+I`c2]1tzWG糤ǎ s3Ʈv.I%ɡ֕hf{ ds<Ԗgg>]3 YHKiB3&Wt&A+^z"9Ë hEGmr\'/Qr/I."bu4 VƷj?e\ɋ-~dnGkj/1M`'~u;`L@Yz=E\3|[LI |,Cқ 'e~c.h\-lb[,WIFWXʅ&%`0VC$(9XPM`pjŵz o`^F-l7#CK?Nq?0dT3C ~9*n7է,뫁h~zIV؛ɼx^%{MV/d,ta&g\y5{ 0וNJ=Uj!+51ݣOB™+1hP4֨ZcY5񍎕x!:2ey[yR, 8>uc׉kRV$D Q&R^f_Pў8k$, c?avUHendstream endobj 27572 0 obj <>/P 818 0 R/Type/Annot/A 27573 0 R/Subtype/Link/Rect[93.5990982 342.82901 225.154999 362.509003]/Border[0 0 0]/H/N>> endobj 27573 0 obj <> endobj 27574 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 27575 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 27576 0 obj <> stream q /X1 Do Q q endstream endobj 27577 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 27578 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 27579 0 obj <> stream HWn8}WQYr L^N`(jڭLKvVTD pD>$ux9ڍ˗gߞ ի7LƬ .ôq<qÝ o6apVcs~״j5uk_.xx3oVي]񐅫렄A K3̓"\A yibIc<Ļ^类V9O'_Vl8vSݎjg,:&ӷnaB"}Ȓ#/IRd1OoA%#\ X,CVJ\] XP=P=P/

ԧSSO}F<>SsO}N=S_KO}I<ӺXpµ.,_p!Wbջ׺k9ZCs-'\b"\b"{k] Yzϵpp!P﹖u1d=rµ.,µ.,BZNŐE\ ׺Xµ.,_p!Wbջ׺kZCs \b"\b"{k] Yzϵpp!PVu1d= µ.,µ.,BZAŐE\+׺XHµ.,_p!Wbջ׺k%ZCs$\b"\b"{k] Yzϵpp!PVu1d=Jµ.,µ.,BZIŐE\+ ׺Xk] YzZCŐ/,eYn7l! Wb0|/,̲2\e,883}gz[aou4mX+cditā [TnU.l{S ߯cSl'zkԉpލ zMm=12?<-s#~Э˨74|^Njjv/9RW_L0AczZߩ KhP֩Au~X~ÊvXSaNzäO͵y\k;m1&rԷ 0mRkhZayâ@f)I.#*{hPf}kjd &)YBɌfN`Ga 'h ŠID)ShۭjU7V( v)3JLSv  ](ʇ9C-ɈerQE)bxGj,>X!s,Lqeጮݓ* aܝ@ޝd,\(!d ~),w{EbPN*,95u!4OX1ci3󕢈W6T2|:uw:Ypͫǯ3V)|0߿̇,.NMeڤENp)/L}tetRm?% b'ܔa83~ Q';98rZ'3\Sq$MXɾ46✋%RVu/0g9ٳeSn$%f7p +2dPh!WO~/']Mȁ vh;+,{xvD%ٓ'6L,p O Wk[x\:W"3|pW ր,=p//TejQX?7\ 3}`~t/we5 +u:5L8VjO˅Xwԥ^_= |6W/>--k;Ng@g/7\;զ13ssP-n-Hޘ;B $x*~<Cx* 7_ ow=zݷkj&\nmux4 :`|P&E!ʽ|=&?Zc1`69=l"z' Ö nP1I1kSԮQqVCWHp7-GU؝Tv+Msȫ~0%| W),VWFLlNOm;/yXfbo[ {5˸@Q76|?4E}~U6AB&cb*;.X&P#VNO|7zy* w~U}OeZ7eOfm[0 Oyfjtw#r{t/a~~rF/׏ǜo|c>fڥgs5jnق)>q.pC.|/4iqޕr^,??,z/M^5 1l}UnKqCr}b9]BwvBJ6/i+"aE`EŠVEXjªUV `5%X-aJ+Y_ fBͤ',,OX'L[{ʹEX'L[{ʹEX'L[{ʹEX'L[ʹ,Ixo3mx6axo3mx6axo3mx6axo3mx6axo3mx6l&-ʹEX}$L[GʹEX}$L[GʹEX}$L[GʹEX}$L[GʹEX}Ee3im-d2mk>/P 1282 0 R/Type/Annot/A 27581 0 R/Subtype/Link/Rect[129.600006 663.229004 355.44101 682.908997]/Border[0 0 0]/H/N>> endobj 27581 0 obj <> endobj 27582 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 27583 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 27584 0 obj <> endobj 27585 0 obj <> endobj 27586 0 obj <> stream q /X1 Do Q q endstream endobj 27587 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 27588 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 27589 0 obj <> stream H[oF+6/ԫ7H$E۰mDEttqi:1wyfl7a[8rάƿMV={6~wʨ_|ؠm *^NeѩJRĨUJTI[7MSN}H^ɸNYUΓ61P2rIʳ1뢶7\hˇQ5]}4.&m읔o}ManV",m-L g}xez::1j§B&n }RD)cgՐQ (k9E4@QrT s{{g3Ap }G> #sO)s S>g}&ϘLp1>gs}/,V-VRK5{%jHqTCPBj R{Z'j@ R{Z'jH YjZ%jH YjZ!%guBjZ!%guBj *BjwO5R )jHqTJH-Րܳz!TCJpRR (!TCJpRR )=KRK5R )=KRK5,^H-ՀRK5,^H-Րܳz!T[%AH-ՐZ!S )j@ R{ jH YjZ%jH YjZ!%g BjZ!%g Bj6PBj6R{ j$ R=ՀRK5{!( |e2.K*QT=ltPifW*5U{٬Gӽ,A3sBz- \`=RO_gy%;]4dvlfxbr>s]c7w~|~Zo8O py?g>@j{~;}"qٗT1:f+nmTzfݍ= dn~hUoZnއUF v[ :7L@f@b.r*cYMf35QM5j=TQRgō~X+J%:ƿ,ōuC蜼׃= \: M~t~;y׭A&kU]P;bꠋuG;3fyR!sk6/jn,ԣah-p _y| ;,\ϻuqF=SݞZGkIhC3b7`! zϕfq4c?4>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 27591 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 27592 0 obj <> endobj 27593 0 obj <> endobj 27594 0 obj <> endobj 27595 0 obj <> endobj 27596 0 obj <> endobj 27597 0 obj <> endobj 27598 0 obj <> endobj 27599 0 obj <> stream q /X1 Do Q q endstream endobj 27600 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 27601 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 27602 0 obj <> stream HWo8Hh( (شEzj>E،ƶ7o(Q4\{Xt۷ն:;%;Ovd-Yrqhfŷ,! ~Zvu#xv7xea`42MqhUKm\#r[=R\31|X+eƙ{<S'qD+\c"d!̱ $^%^^^^5^5^B}OI>!'zC7zC7PSB}O i>#gPsB} gaZ"IcḇBsP=ƀEcE\+ ḇk%Zp-PVŘcJµZ9>p$\1"k1,µs,B}ZIcE\+ bl)µsP=ƀEcǘc1,µs,B}ZEcE\b Xk1Xp-PVḇkZ9>p"\1`Řc*µs,B}ZEcHŘc1,µsP=+T1`Řcjµs,B}ZMc"\1"Մk1Xp-ƀEcE\ ḇk5Zp-PVŘcjµE Z9Vc"\1 c̱B9\.w"/W[~7}, e0Gd̥cѺ'?k`\߽ipeX`WY@ KL#+ ̡"/و k>r]|Vʴ\)f=pg[Yɤf)ΖckNor/)Λrm0 xTe1z5FBaq,Fksҡ ^pWt@ݯH*>3m,oGCHO^lWX[W#B OxwE~.K辳})$ ]A@e 7oS@\`һ3bR.F$T屘,3q <'뺾؝@9i[nv߸VR$E~MW?J'ƫC{]l'ɘo xamjDNWQy~™Dmۆ{ { OH iuX1 [=-J`([$O$#".-)'LNsvxx>?TuUY^=Z>:YүḤ}ǟgϔKw x[_NvZU5uI6_æzXfN ?*ksDX/=w+PKaPV]|PwyF )[I_nR~a5unCU[r?Jbme't﫛k(Q7tTS!ܗvE!g>錢 돣hAW>3 ֩{gY(0;Sa㛦gmނ۽MpX[^~I0NaiLZ!; Mpڂy=5u_3]+Iʣ.՟JcW\),X `%VX)`VX`eVX9`劕VX`UV!Y&,KFbŊ+V,XF `{ T ȽX*^j,{r/5vʽKހK]ro@.R RcfI\ Rc`[{ T-ȽX*^j,{ r/5vʽKނK]roA.R Rc`;{KF.{ TȽX*^j,{r/5vʽKށK]r@.Rw Rc`;{ T{KF.{K)z~qm5RR5raVv~Z`TvH-z~~*(cḌje/_ޤ\t-MÛ9L旮|Q.V߃k04 KC1]?p;/~CqY[504ްUۮZLGi0.~Nb*_+q4⺙拏3?jLSr7T/R8՚rA`|o't "1K4:b=<zѵwfan@.y4〓3z~,}s2hHMߚm߾ v塬podrw5&7gendstream endobj 27603 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 27604 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 27605 0 obj <> endobj 27606 0 obj <> endobj 27607 0 obj <> endobj 27608 0 obj <> endobj 27609 0 obj <> endobj 27610 0 obj <> endobj 27611 0 obj <> endobj 27612 0 obj <> endobj 27613 0 obj <> endobj 27614 0 obj <> endobj 27615 0 obj <> stream q /X1 Do Q q endstream endobj 27616 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 27617 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 27618 0 obj <> stream H|WioF_ћ Q|6+'!3=s($ǎv}xUaoeݪ/}'/_:+.օ)85*Km썪CETt1lʶ^7چ˷kWroj $Q*@SeIhMr6)Mw=q-R]]^}?]f,3 @׮cG b„F66҉\ ߫ωZil<'9^QMM)*<SN,#Q Y|8Kk"޵),#7̽ -so{;c1^p{/̽{>ܧ}*OLp1>c3}9s_ ܳj!FFH-ŐS XBj),b),!C,FH-ŀ%bܳ!CR Y{Z#bܳ!Z!KpRkR Y{Z#b {KH-ŐS Y=ŀ%bܳZ!C R Y{Z+bܳZ!Z!KpRkR Y{Z+bRK1d YjZ!KpRkRl9!CwO1` {!R Y{Z'bܳ:!Z!KpRR Y{Z'bRK1d YjZ!KpRR XBj),=KRK1d YjZm#/b),!CwO1dqE\S ;i.ѫyt9|=A4Kbh;lNӎ}]ةq1;8WwO4Y컛Jԋ*9SJ|/UܴMps'i'PS/0Dg4t %/N&H|^YoCsvǦjs?gJ%m~8QRڄ7gr9]ka 7>J7-Eu9a_,C^jLm@%f:U[̮n?sω4aZheS+;IU{3K(`="h[7s ݑ+ǩ*.]\>|ں  Ŵ嘖gZ^L+R Z)ieVƴrA+gZ3B*V!hT$\bZ4҂fZF2LZPCuO1d ZPCuO1d ZPCuO1d ZPC uO1dq-K{!Kbuo-VV{!Kbuo-VV{!Kbuo-VV{!Kbuo-VV{!Kbuŀ%=Ő%hwBS Y{'=Ő%hwBS Y{'=Ő%hwBS Y{'=Ő%hwBS Y{'=Ő%hBS Y\b+hBO]};|+d1l-3\꠴/fnIx#'ƙ>~(ym 5 T7֦MSj]>t͒{1GNϰS뙶/gШwWg#}(hi@؃ c]>bfln=ކ9"n4N2* us>iT{Qֺv~tfqs:-96~uӆqSpܼc&)z!4-]2%^LgX[,ғ1>pS2~Y y$KkCkb ߸`jGby;>o_` P4l׍ۻsE (dwp{|# |R#dB0y#!P 4Ssb̠@OH=/pgruCwNtbljsf*]Op㭜RPK2,)@hYo^e{fJU.#6kXgq Êa[P@2LE;?-65LFٻphAbxrz';41dw osbBD!η@GmJ-aGӹZRMIͥqBa`os`47#[LUEw h.;B8JZ2 LҐtrkU|@IuO ovy>ẙY: &pŰs'gpN6EY_Łb5צ]! tDID4qԸݦ0W['T! pu]I vƒud)= _O"ATHm*K偞>\잇\@4~#[h; `$'eqL HxgCF'B,>qkF(zC<!+h%C+XE)ұ6,t2֗n 5*L,\ĭg5MX>lوS*d)VM#AUСj"`Xz{|}RփmF@NQR+_k>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 27620 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 27621 0 obj <> endobj 27622 0 obj <> endobj 27623 0 obj <> endobj 27624 0 obj <> endobj 27625 0 obj <> stream q /X1 Do Q q endstream endobj 27626 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 27627 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 27628 0 obj <> stream H[oX+d^$p|nȥ{@\F-* ]eHﳷ*Ww+k;uݮ{'0Ϟgd66kTϣ3.{oYa>eLvx~;^W٢׳Yϲ9i5ac/ݤ0$4UQf}&l4.#Wayy be-e[[6n|C(ߗLM|HNEE<{($[xI)};eTn/5HTz;ރ^ W=HU>A }T#HUGKK+++kk>IO Y Vj́S:ԈS+5tz1K(0Rc WSJ)^MS+5J)^MS+5@z5LԈS+5@z5LԘ:0R# LԘ:0Rc WSJmy0RcJQ`jƔN/5tzVjLjj=Z1ҫ`jFZ1ҫ`jHփQ`jHփS ZVjDS ZVjLjj=Z-VjLR# LԘƔN/5J)^MmS+5@z5LԈS+5@z5LԘ0R# LԘ0Rc WSJ(0Rc WSJ)^MmS+EJ)^jDS:ԘSR ?N'{5UfAu)/MY&,niƏc9v֣Uo;Y?6/ѷFd7#rvc_jwe˺Jw w}{n\}V4lVWrUU6շѯ6]0:z0 # Cn-E^?v9S-AcU|cM31:OUqۛѺcxHQ{k' 勉?Xm_c잜ν/8J\aޚg3&"9Nۧh#{u~PͽyW-K)z@RRc x{1TԘ^^jL/z/5}SK>K)%5@ƔJyJ) _7&;lkiGvr2:Ak_@/xEQ\j3GϖeӞXj6jZ҇Gz31FnWquQ ['ƓgUۀW|tNyj/9^G3_:9>;} go=HR{__:x||>6O7z%-V~U^_lo9 )!E?d~ZW/-=o*-]xHxj &1O{WY 4xo+8[rl]?D;.턟X<\'db&lrswy]+hd 0m{WHpP<&+r;@#k&+*WИJR^xWP^xEWT^%*W JUJyUR^5W j啀WR^ x% %5Ԉ*/ r)/TԘ^^jL/{z/5SKށK)z@RwRc x{{1FԘ^^jL/{z/5SKރK)zARRc x{{1T=Ԙ^^jLi/z/5}SK>K)z@RRc x{1TԘ^^jL/z/5}SKjDK)R~;/GMv oizk\W4.2n#>}]ݟW9h3{oهzlQi o&/ .f=#i+3V(ƌnt3믷gu=-ݟsyh_բgv>ʫm+Htm),k5ZrEJ΢' )g8o i[Ư.++zkbh`|Ow 'F|wl7_wzAϸl]Re^S|;c]4݅hk4C$U˺퉮[w;{y8R$z3dz2cJzB9y#i.b&ppΰ<8^(1WvXqLrĿx{SN_kY>YhJK]Q3mHa/hhRii=Cy30 ,X} i)4xڇ%@(VwnƍiHKݒ]K߰>I!|dWmܖ1:} L΀36xF3k!esv˖,AcqT@<96@5%!AZ:<ι&pPlt,1MZ2EӴ;˙uD(+ꦜJzufm40ƸwrL8̻OJ,&] eK~59M$2fJ쇎)=OdXq""37I0*4Jm N8bVX?m5fةn!txsׯOvc*f +|p*IetڸXoicgS`M`WtULJ24N[>5)2x)r,50u}6sěf5tG*[ QMٻeC]6n̙`}u*1 AEt9 I뷷9_HzH %FQجGDXUuYRS-^{x |w cPDORA X%8P+Db K Qv×I:5x骿ݧ&iA@b*_u2΂0F'VkլY -lگyw}Q3֞!Q\2vg;;Vᦍ@P:64bP w'rXapesYU7\EFߦfjO(UA}ku{n盐igcItB!Q[翡$wٟ^K(5;{eݠ`l| uyq3CWFݬ՛"A@sv.O9F_SiVpâP,DGj85|ĐIh.ލ5ɹXFVO _@~HgŌҖ_ӂ2r,Z>k?V:}ȌŲQ^z N}`V8 3& a[E6z?y˻7ݽO7endstream endobj 27629 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 27630 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 27631 0 obj <> endobj 27632 0 obj <> stream q /X1 Do Q q endstream endobj 27633 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 27634 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 27635 0 obj <> stream HW]o:}ׯ 'Phn袷.{xu7$~gdKȑnQT1F39n/??ŋW/ʔ* |j#liVݲCl )>JDqqy;߯//jV []jx5+gJ %f7E RDѧ2ٺ f_+taJR5#! vk[BI}ħEWjd"ᶸ,M11$dF<\jCR9*2R9Ԇ(Ͱ{Ͱ{`C=d d d-f-f-fee=g=g=g>d>d#>f#>ӬbDօfTOmbTOm٧6D1MmbgՌjSj5Ԇ(FP LQmj#>SfTŨ6aV3MmbgՌjSզ6B13jFP LQmj[6*gŨ6*gOmbTŰT jSjQmjCF(}Z`TŰT jSզ6B13F(}Z`TŨ6aզ6B13Զ. F}jCF}j#T>!Qmj#>SaTŰTkզ6D1Mmbg5jSj Ԇ(FP LQmj#>SaTŨ6a0Mmbg5jSۺjSr QjSrP9Xb]糙JnPYP:N8u1[ί6Wj6tWieJ : ?Mn7jgʉQٻ6?%b{3={feehni{iiCs{bC+sL1U QS9x ao^;Ovso Mڹnc%=BM_\L`?}[oT@0]B@UҫXh5(cJg]K%_ E(c'Uv_kg0ډz|X'=AU} &AiJsE˻bY,o{+QIoo*/)53:Jljߏ\_z?z_TRG:XAzWУs}PoNIRsJd*[Z-Չ5zk{0FX/S Җ8o?Mwu1I5o^|}Sh(KY'H^{zD4M8d(v8rb~ї}12 Q h}C uᰒ̒Շ)pؚ]v&hV(=[Z). u88hz?quGKnuglgs-9nhN3 wti55z`:7>>~_:|U/U~aE](鋣.-s7_ެkp.Nub[B5Qa)(#v/?p//07z-&C $M Ʋ7f驦 ZIuw"]Jfq)xZcYOFo/۾9,$ꩦ#E=LGWj&EL4tz94;*itFd;+ [0ÉE}$^O!2`:tA݅W35ڠtQe0wh u x/u=tcN'NIpGH8n xWqćrFemlSr\2].VO҉s-=Wt)s1݀_@QUՆف2x\ (ͬLkp;P@2U3m؃J-20rnL9ŽRUMh8lXɯqeRM%pqʳT\@ V[I%%Z&#, Tת~ R/pMтC-2s)Cd#2a\ByW,O=edIX16ЊuZ(ZL+r֯dfΏEP٣\ sGX@;ǜ`_NoS{us ,=s^#Ҹ^?[Swµö* *Y}2nkIB'| :}JZ2ASe`ҥWDtɾQFyz|͟3|yv@]=NWC{LΥBj)!3>aP{L$,V +3Mrx,S0R%,?{~zgqv,=k¯BΧc"CboS]o[XBRV-,/9:+#M82P@fXkX#X!Ԅ6: _E%&P@׼P/֣%eab Mm紾_iMfe7 Ҵ3h8Vw;r&uh2qG{E8ElB6KnHѐ2wjkٓɳ_}^)_u˿M &nK;(g36sA˙ʭ_Fç:-GNʙ ܹT4#{&`i\n]N'W6 w۔%u%bĺ(d֖CRE?isf9=7(Y^xyo?1) I)Wqׅ`4$}aȣ ˵.Q(*@S;,;J%z -m/!(2*=ڂ-nqRq7)\6J7"TҚ]Z(#Uz(XW*' @I!*o2N2ľ7=ck@XLe =D _?Y 0c-7J ^hR%Wi!<+MS-B sbG)S8S7kg8Agc /e_R&O- =R% 礊: /G7VYm͓p*e|I'>/P 9099 0 R/Type/Annot/A 28030 0 R/Subtype/Link/Rect[250 669 262 678]/Border[0 0 0]/H/N>> endobj 27637 0 obj <>/P 9099 0 R/Type/Annot/A 28025 0 R/Subtype/Link/Rect[190 659 202 668]/Border[0 0 0]/H/N>> endobj 27638 0 obj <>/P 9099 0 R/Type/Annot/A 28022 0 R/Subtype/Link/Rect[250 649 262 658]/Border[0 0 0]/H/N>> endobj 27639 0 obj <>/P 9099 0 R/Type/Annot/A 28020 0 R/Subtype/Link/Rect[190 639 202 648]/Border[0 0 0]/H/N>> endobj 27640 0 obj <>/P 9099 0 R/Type/Annot/A 28018 0 R/Subtype/Link/Rect[265 629 277 638]/Border[0 0 0]/H/N>> endobj 27641 0 obj <>/P 9099 0 R/Type/Annot/A 28016 0 R/Subtype/Link/Rect[190 619 202 628]/Border[0 0 0]/H/N>> endobj 27642 0 obj <>/P 9099 0 R/Type/Annot/A 28014 0 R/Subtype/Link/Rect[260 609 272 618]/Border[0 0 0]/H/N>> endobj 27643 0 obj <>/P 9099 0 R/Type/Annot/A 28012 0 R/Subtype/Link/Rect[190 599 202 608]/Border[0 0 0]/H/N>> endobj 27644 0 obj <>/P 9099 0 R/Type/Annot/A 28010 0 R/Subtype/Link/Rect[250 589 264 598]/Border[0 0 0]/H/N>> endobj 27645 0 obj <>/P 9099 0 R/Type/Annot/A 28008 0 R/Subtype/Link/Rect[266 589 278 598]/Border[0 0 0]/H/N>> endobj 27646 0 obj <>/P 9099 0 R/Type/Annot/A 28006 0 R/Subtype/Link/Rect[215 579 225 588]/Border[0 0 0]/H/N>> endobj 27647 0 obj <>/P 9099 0 R/Type/Annot/A 28003 0 R/Subtype/Link/Rect[227 579 244 588]/Border[0 0 0]/H/N>> endobj 27648 0 obj <>/P 9099 0 R/Type/Annot/A 28261 0 R/Subtype/Link/Rect[245 579 259 588]/Border[0 0 0]/H/N>> endobj 27649 0 obj <>/P 9099 0 R/Type/Annot/A 28255 0 R/Subtype/Link/Rect[261 579 275 588]/Border[0 0 0]/H/N>> endobj 27650 0 obj <>/P 9099 0 R/Type/Annot/A 43163 0 R/Subtype/Link/Rect[277 579 293 588]/Border[0 0 0]/H/N>> endobj 27651 0 obj <>/P 9099 0 R/Type/Annot/A 28243 0 R/Subtype/Link/Rect[294 579 308 588]/Border[0 0 0]/H/N>> endobj 27652 0 obj <>/P 9099 0 R/Type/Annot/A 28237 0 R/Subtype/Link/Rect[151 569 165 578]/Border[0 0 0]/H/N>> endobj 27653 0 obj <>/P 9099 0 R/Type/Annot/A 28231 0 R/Subtype/Link/Rect[167 569 181 578]/Border[0 0 0]/H/N>> endobj 27654 0 obj <>/P 9099 0 R/Type/Annot/A 30998 0 R/Subtype/Link/Rect[183 569 197 578]/Border[0 0 0]/H/N>> endobj 27655 0 obj <>/P 9099 0 R/Type/Annot/A 42971 0 R/Subtype/Link/Rect[199 569 213 578]/Border[0 0 0]/H/N>> endobj 27656 0 obj <>/P 9099 0 R/Type/Annot/A 28215 0 R/Subtype/Link/Rect[215 569 229 578]/Border[0 0 0]/H/N>> endobj 27657 0 obj <>/P 9099 0 R/Type/Annot/A 28209 0 R/Subtype/Link/Rect[231 569 245 578]/Border[0 0 0]/H/N>> endobj 27658 0 obj <>/P 9099 0 R/Type/Annot/A 28203 0 R/Subtype/Link/Rect[247 569 261 578]/Border[0 0 0]/H/N>> endobj 27659 0 obj <>/P 9099 0 R/Type/Annot/A 28197 0 R/Subtype/Link/Rect[263 569 277 578]/Border[0 0 0]/H/N>> endobj 27660 0 obj <>/P 9099 0 R/Type/Annot/A 28191 0 R/Subtype/Link/Rect[279 569 293 578]/Border[0 0 0]/H/N>> endobj 27661 0 obj <>/P 9099 0 R/Type/Annot/A 28184 0 R/Subtype/Link/Rect[295 569 309 578]/Border[0 0 0]/H/N>> endobj 27662 0 obj <>/P 9099 0 R/Type/Annot/A 28178 0 R/Subtype/Link/Rect[151 559 165 568]/Border[0 0 0]/H/N>> endobj 27663 0 obj <>/P 9099 0 R/Type/Annot/A 28171 0 R/Subtype/Link/Rect[167 559 181 568]/Border[0 0 0]/H/N>> endobj 27664 0 obj <>/P 9099 0 R/Type/Annot/A 28166 0 R/Subtype/Link/Rect[183 559 197 568]/Border[0 0 0]/H/N>> endobj 27665 0 obj <>/P 9099 0 R/Type/Annot/A 42588 0 R/Subtype/Link/Rect[199 559 211 568]/Border[0 0 0]/H/N>> endobj 27666 0 obj <>/P 9099 0 R/Type/Annot/A 28153 0 R/Subtype/Link/Rect[255 549 269 558]/Border[0 0 0]/H/N>> endobj 27667 0 obj <>/P 9099 0 R/Type/Annot/A 28560 0 R/Subtype/Link/Rect[271 549 283 558]/Border[0 0 0]/H/N>> endobj 27668 0 obj <>/P 9099 0 R/Type/Annot/A 28140 0 R/Subtype/Link/Rect[190 539 202 548]/Border[0 0 0]/H/N>> endobj 27669 0 obj <>/P 9099 0 R/Type/Annot/A 28133 0 R/Subtype/Link/Rect[260 529 272 538]/Border[0 0 0]/H/N>> endobj 27670 0 obj <>/P 9099 0 R/Type/Annot/A 38397 0 R/Subtype/Link/Rect[215 519 223 528]/Border[0 0 0]/H/N>> endobj 27671 0 obj <>/P 9099 0 R/Type/Annot/A 28122 0 R/Subtype/Link/Rect[202 509 216 518]/Border[0 0 0]/H/N>> endobj 27672 0 obj <>/P 9099 0 R/Type/Annot/A 28115 0 R/Subtype/Link/Rect[218 509 235 518]/Border[0 0 0]/H/N>> endobj 27673 0 obj <>/P 9099 0 R/Type/Annot/A 28340 0 R/Subtype/Link/Rect[236 509 248 518]/Border[0 0 0]/H/N>> endobj 27674 0 obj <>/P 9099 0 R/Type/Annot/A 28332 0 R/Subtype/Link/Rect[190 499 202 508]/Border[0 0 0]/H/N>> endobj 27675 0 obj <>/P 9099 0 R/Type/Annot/A 28327 0 R/Subtype/Link/Rect[184 489 198 498]/Border[0 0 0]/H/N>> endobj 27676 0 obj <>/P 9099 0 R/Type/Annot/A 28320 0 R/Subtype/Link/Rect[200 489 214 498]/Border[0 0 0]/H/N>> endobj 27677 0 obj <>/P 9099 0 R/Type/Annot/A 28316 0 R/Subtype/Link/Rect[216 489 233 498]/Border[0 0 0]/H/N>> endobj 27678 0 obj <>/P 9099 0 R/Type/Annot/A 28312 0 R/Subtype/Link/Rect[234 489 248 498]/Border[0 0 0]/H/N>> endobj 27679 0 obj <>/P 9099 0 R/Type/Annot/A 28308 0 R/Subtype/Link/Rect[250 489 264 498]/Border[0 0 0]/H/N>> endobj 27680 0 obj <>/P 9099 0 R/Type/Annot/A 28302 0 R/Subtype/Link/Rect[266 489 282 498]/Border[0 0 0]/H/N>> endobj 27681 0 obj <>/P 9099 0 R/Type/Annot/A 28296 0 R/Subtype/Link/Rect[283 489 297 498]/Border[0 0 0]/H/N>> endobj 27682 0 obj <>/P 9099 0 R/Type/Annot/A 28290 0 R/Subtype/Link/Rect[299 489 311 498]/Border[0 0 0]/H/N>> endobj 27683 0 obj <>/P 9099 0 R/Type/Annot/A 41856 0 R/Subtype/Link/Rect[207 479 221 488]/Border[0 0 0]/H/N>> endobj 27684 0 obj <>/P 9099 0 R/Type/Annot/A 28280 0 R/Subtype/Link/Rect[223 479 237 488]/Border[0 0 0]/H/N>> endobj 27685 0 obj <>/P 9099 0 R/Type/Annot/A 33638 0 R/Subtype/Link/Rect[239 479 256 488]/Border[0 0 0]/H/N>> endobj 27686 0 obj <>/P 9099 0 R/Type/Annot/A 28269 0 R/Subtype/Link/Rect[256 479 270 488]/Border[0 0 0]/H/N>> endobj 27687 0 obj <>/P 9099 0 R/Type/Annot/A 28263 0 R/Subtype/Link/Rect[272 479 286 488]/Border[0 0 0]/H/N>> endobj 27688 0 obj <>/P 9099 0 R/Type/Annot/A 28256 0 R/Subtype/Link/Rect[288 479 302 488]/Border[0 0 0]/H/N>> endobj 27689 0 obj <>/P 9099 0 R/Type/Annot/A 28249 0 R/Subtype/Link/Rect[151 469 168 478]/Border[0 0 0]/H/N>> endobj 27690 0 obj <>/P 9099 0 R/Type/Annot/A 28244 0 R/Subtype/Link/Rect[169 469 181 478]/Border[0 0 0]/H/N>> endobj 27691 0 obj <>/P 9099 0 R/Type/Annot/A 31822 0 R/Subtype/Link/Rect[190 459 202 468]/Border[0 0 0]/H/N>> endobj 27692 0 obj <>/P 9099 0 R/Type/Annot/A 28232 0 R/Subtype/Link/Rect[212 449 226 458]/Border[0 0 0]/H/N>> endobj 27693 0 obj <>/P 9099 0 R/Type/Annot/A 41413 0 R/Subtype/Link/Rect[228 449 244 458]/Border[0 0 0]/H/N>> endobj 27694 0 obj <>/P 9099 0 R/Type/Annot/A 28222 0 R/Subtype/Link/Rect[245 449 259 458]/Border[0 0 0]/H/N>> endobj 27695 0 obj <>/P 9099 0 R/Type/Annot/A 41312 0 R/Subtype/Link/Rect[261 449 273 458]/Border[0 0 0]/H/N>> endobj 27696 0 obj <>/P 9099 0 R/Type/Annot/A 28212 0 R/Subtype/Link/Rect[190 439 207 448]/Border[0 0 0]/H/N>> endobj 27697 0 obj <>/P 9099 0 R/Type/Annot/A 41252 0 R/Subtype/Link/Rect[207 439 219 448]/Border[0 0 0]/H/N>> endobj 27698 0 obj <>/P 9099 0 R/Type/Annot/A 28201 0 R/Subtype/Link/Rect[212 429 224 438]/Border[0 0 0]/H/N>> endobj 27699 0 obj <>/P 9099 0 R/Type/Annot/A 28195 0 R/Subtype/Link/Rect[212 419 226 428]/Border[0 0 0]/H/N>> endobj 27700 0 obj <>/P 9099 0 R/Type/Annot/A 28187 0 R/Subtype/Link/Rect[228 419 244 428]/Border[0 0 0]/H/N>> endobj 27701 0 obj <>/P 9099 0 R/Type/Annot/A 28181 0 R/Subtype/Link/Rect[245 419 259 428]/Border[0 0 0]/H/N>> endobj 27702 0 obj <>/P 9099 0 R/Type/Annot/A 28174 0 R/Subtype/Link/Rect[261 419 273 428]/Border[0 0 0]/H/N>> endobj 27703 0 obj <>/P 9099 0 R/Type/Annot/A 28168 0 R/Subtype/Link/Rect[190 409 207 418]/Border[0 0 0]/H/N>> endobj 27704 0 obj <>/P 9099 0 R/Type/Annot/A 28162 0 R/Subtype/Link/Rect[207 409 219 418]/Border[0 0 0]/H/N>> endobj 27705 0 obj <>/P 9099 0 R/Type/Annot/A 28156 0 R/Subtype/Link/Rect[157 399 167 408]/Border[0 0 0]/H/N>> endobj 27706 0 obj <>/P 9099 0 R/Type/Annot/A 28150 0 R/Subtype/Link/Rect[169 399 181 408]/Border[0 0 0]/H/N>> endobj 27707 0 obj <>/P 9099 0 R/Type/Annot/A 28144 0 R/Subtype/Link/Rect[188 389 198 398]/Border[0 0 0]/H/N>> endobj 27708 0 obj <>/P 9099 0 R/Type/Annot/A 28136 0 R/Subtype/Link/Rect[200 389 216 398]/Border[0 0 0]/H/N>> endobj 27709 0 obj <>/P 9099 0 R/Type/Annot/A 28129 0 R/Subtype/Link/Rect[217 389 231 398]/Border[0 0 0]/H/N>> endobj 27710 0 obj <>/P 9099 0 R/Type/Annot/A 28124 0 R/Subtype/Link/Rect[233 389 250 398]/Border[0 0 0]/H/N>> endobj 27711 0 obj <>/P 9099 0 R/Type/Annot/A 28117 0 R/Subtype/Link/Rect[250 389 264 398]/Border[0 0 0]/H/N>> endobj 27712 0 obj <>/P 9099 0 R/Type/Annot/A 28111 0 R/Subtype/Link/Rect[266 389 280 398]/Border[0 0 0]/H/N>> endobj 27713 0 obj <>/P 9099 0 R/Type/Annot/A 28106 0 R/Subtype/Link/Rect[282 389 294 398]/Border[0 0 0]/H/N>> endobj 27714 0 obj <>/P 9099 0 R/Type/Annot/A 28339 0 R/Subtype/Link/Rect[190 379 202 388]/Border[0 0 0]/H/N>> endobj 27715 0 obj <>/P 9099 0 R/Type/Annot/A 28331 0 R/Subtype/Link/Rect[202 369 216 378]/Border[0 0 0]/H/N>> endobj 27716 0 obj <>/P 9099 0 R/Type/Annot/A 28326 0 R/Subtype/Link/Rect[218 369 232 378]/Border[0 0 0]/H/N>> endobj 27717 0 obj <>/P 9099 0 R/Type/Annot/A 28321 0 R/Subtype/Link/Rect[234 369 248 378]/Border[0 0 0]/H/N>> endobj 27718 0 obj <>/P 9099 0 R/Type/Annot/A 28317 0 R/Subtype/Link/Rect[250 369 267 378]/Border[0 0 0]/H/N>> endobj 27719 0 obj <>/P 9099 0 R/Type/Annot/A 28314 0 R/Subtype/Link/Rect[268 369 280 378]/Border[0 0 0]/H/N>> endobj 27720 0 obj <>/P 9099 0 R/Type/Annot/A 28309 0 R/Subtype/Link/Rect[190 359 202 368]/Border[0 0 0]/H/N>> endobj 27721 0 obj <>/P 9099 0 R/Type/Annot/A 28303 0 R/Subtype/Link/Rect[245 349 259 358]/Border[0 0 0]/H/N>> endobj 27722 0 obj <>/P 9099 0 R/Type/Annot/A 28297 0 R/Subtype/Link/Rect[261 349 275 358]/Border[0 0 0]/H/N>> endobj 27723 0 obj <>/P 9099 0 R/Type/Annot/A 28291 0 R/Subtype/Link/Rect[277 349 289 358]/Border[0 0 0]/H/N>> endobj 27724 0 obj <>/P 9099 0 R/Type/Annot/A 28287 0 R/Subtype/Link/Rect[190 339 202 348]/Border[0 0 0]/H/N>> endobj 27725 0 obj <>/P 9099 0 R/Type/Annot/A 28283 0 R/Subtype/Link/Rect[231 329 245 338]/Border[0 0 0]/H/N>> endobj 27726 0 obj <>/P 9099 0 R/Type/Annot/A 28277 0 R/Subtype/Link/Rect[247 329 261 338]/Border[0 0 0]/H/N>> endobj 27727 0 obj <>/P 9099 0 R/Type/Annot/A 28272 0 R/Subtype/Link/Rect[263 329 275 338]/Border[0 0 0]/H/N>> endobj 27728 0 obj <>/P 9099 0 R/Type/Annot/A 28266 0 R/Subtype/Link/Rect[190 319 202 328]/Border[0 0 0]/H/N>> endobj 27729 0 obj <>/P 9099 0 R/Type/Annot/A 28259 0 R/Subtype/Link/Rect[197 309 211 318]/Border[0 0 0]/H/N>> endobj 27730 0 obj <>/P 9099 0 R/Type/Annot/A 28253 0 R/Subtype/Link/Rect[213 309 227 318]/Border[0 0 0]/H/N>> endobj 27731 0 obj <>/P 9099 0 R/Type/Annot/A 28248 0 R/Subtype/Link/Rect[229 309 243 318]/Border[0 0 0]/H/N>> endobj 27732 0 obj <>/P 9099 0 R/Type/Annot/A 28241 0 R/Subtype/Link/Rect[245 309 259 318]/Border[0 0 0]/H/N>> endobj 27733 0 obj <>/P 9099 0 R/Type/Annot/A 28235 0 R/Subtype/Link/Rect[261 309 275 318]/Border[0 0 0]/H/N>> endobj 27734 0 obj <>/P 9099 0 R/Type/Annot/A 28229 0 R/Subtype/Link/Rect[277 309 289 318]/Border[0 0 0]/H/N>> endobj 27735 0 obj <>/P 9099 0 R/Type/Annot/A 28224 0 R/Subtype/Link/Rect[190 299 202 308]/Border[0 0 0]/H/N>> endobj 27736 0 obj <>/P 9099 0 R/Type/Annot/A 28220 0 R/Subtype/Link/Rect[207 289 219 298]/Border[0 0 0]/H/N>> endobj 27737 0 obj <>/P 9099 0 R/Type/Annot/A 28214 0 R/Subtype/Link/Rect[188 279 204 288]/Border[0 0 0]/H/N>> endobj 27738 0 obj <>/P 9099 0 R/Type/Annot/A 28210 0 R/Subtype/Link/Rect[205 279 219 288]/Border[0 0 0]/H/N>> endobj 27739 0 obj <>/P 9099 0 R/Type/Annot/A 28204 0 R/Subtype/Link/Rect[221 279 235 288]/Border[0 0 0]/H/N>> endobj 27740 0 obj <>/P 9099 0 R/Type/Annot/A 28198 0 R/Subtype/Link/Rect[237 279 249 288]/Border[0 0 0]/H/N>> endobj 27741 0 obj <>/P 9099 0 R/Type/Annot/A 28192 0 R/Subtype/Link/Rect[190 269 202 278]/Border[0 0 0]/H/N>> endobj 27742 0 obj <>/P 9099 0 R/Type/Annot/A 28185 0 R/Subtype/Link/Rect[217 259 231 268]/Border[0 0 0]/H/N>> endobj 27743 0 obj <>/P 9099 0 R/Type/Annot/A 28179 0 R/Subtype/Link/Rect[233 259 245 268]/Border[0 0 0]/H/N>> endobj 27744 0 obj <>/P 9099 0 R/Type/Annot/A 28172 0 R/Subtype/Link/Rect[193 249 205 258]/Border[0 0 0]/H/N>> endobj 27745 0 obj <>/P 9099 0 R/Type/Annot/A 28167 0 R/Subtype/Link/Rect[207 239 219 248]/Border[0 0 0]/H/N>> endobj 27746 0 obj <>/P 9099 0 R/Type/Annot/A 28160 0 R/Subtype/Link/Rect[229 229 241 238]/Border[0 0 0]/H/N>> endobj 27747 0 obj <>/P 9099 0 R/Type/Annot/A 28155 0 R/Subtype/Link/Rect[196 219 206 228]/Border[0 0 0]/H/N>> endobj 27748 0 obj <>/P 9099 0 R/Type/Annot/A 28149 0 R/Subtype/Link/Rect[208 219 222 228]/Border[0 0 0]/H/N>> endobj 27749 0 obj <>/P 9099 0 R/Type/Annot/A 28143 0 R/Subtype/Link/Rect[224 219 236 228]/Border[0 0 0]/H/N>> endobj 27750 0 obj <>/P 9099 0 R/Type/Annot/A 28137 0 R/Subtype/Link/Rect[197 209 210 218]/Border[0 0 0]/H/N>> endobj 27751 0 obj <>/P 9099 0 R/Type/Annot/A 28130 0 R/Subtype/Link/Rect[211 209 221 218]/Border[0 0 0]/H/N>> endobj 27752 0 obj <>/P 9099 0 R/Type/Annot/A 28125 0 R/Subtype/Link/Rect[223 209 237 218]/Border[0 0 0]/H/N>> endobj 27753 0 obj <>/P 9099 0 R/Type/Annot/A 28118 0 R/Subtype/Link/Rect[239 209 255 218]/Border[0 0 0]/H/N>> endobj 27754 0 obj <>/P 9099 0 R/Type/Annot/A 28112 0 R/Subtype/Link/Rect[256 209 270 218]/Border[0 0 0]/H/N>> endobj 27755 0 obj <>/P 9099 0 R/Type/Annot/A 28107 0 R/Subtype/Link/Rect[272 209 284 218]/Border[0 0 0]/H/N>> endobj 27756 0 obj <>/P 9099 0 R/Type/Annot/A 28102 0 R/Subtype/Link/Rect[190 199 198 208]/Border[0 0 0]/H/N>> endobj 27757 0 obj <>/P 9099 0 R/Type/Annot/A 28342 0 R/Subtype/Link/Rect[196 161 209 170]/Border[0 0 0]/H/N>> endobj 27758 0 obj <>/P 9099 0 R/Type/Annot/A 28335 0 R/Subtype/Link/Rect[209 161 219 170]/Border[0 0 0]/H/N>> endobj 27759 0 obj <>/P 9099 0 R/Type/Annot/A 28329 0 R/Subtype/Link/Rect[221 161 231 170]/Border[0 0 0]/H/N>> endobj 27760 0 obj <>/P 9099 0 R/Type/Annot/A 28324 0 R/Subtype/Link/Rect[233 161 247 170]/Border[0 0 0]/H/N>> endobj 27761 0 obj <>/P 9099 0 R/Type/Annot/A 37732 0 R/Subtype/Link/Rect[249 161 262 170]/Border[0 0 0]/H/N>> endobj 27762 0 obj <>/P 9099 0 R/Type/Annot/A 28315 0 R/Subtype/Link/Rect[264 161 278 170]/Border[0 0 0]/H/N>> endobj 27763 0 obj <>/P 9099 0 R/Type/Annot/A 28311 0 R/Subtype/Link/Rect[280 161 294 170]/Border[0 0 0]/H/N>> endobj 27764 0 obj <>/P 9099 0 R/Type/Annot/A 28307 0 R/Subtype/Link/Rect[296 161 310 170]/Border[0 0 0]/H/N>> endobj 27765 0 obj <>/P 9099 0 R/Type/Annot/A 28301 0 R/Subtype/Link/Rect[151 151 163 160]/Border[0 0 0]/H/N>> endobj 27766 0 obj <>/P 9099 0 R/Type/Annot/A 28295 0 R/Subtype/Link/Rect[222 141 236 150]/Border[0 0 0]/H/N>> endobj 27767 0 obj <>/P 9099 0 R/Type/Annot/A 28071 0 R/Subtype/Link/Rect[238 141 252 150]/Border[0 0 0]/H/N>> endobj 27768 0 obj <>/P 9099 0 R/Type/Annot/A 28286 0 R/Subtype/Link/Rect[254 141 268 150]/Border[0 0 0]/H/N>> endobj 27769 0 obj <>/P 9099 0 R/Type/Annot/A 28281 0 R/Subtype/Link/Rect[270 141 282 150]/Border[0 0 0]/H/N>> endobj 27770 0 obj <>/P 9099 0 R/Type/Annot/A 28275 0 R/Subtype/Link/Rect[397 669 414 678]/Border[0 0 0]/H/N>> endobj 27771 0 obj <>/P 9099 0 R/Type/Annot/A 28270 0 R/Subtype/Link/Rect[415 669 429 678]/Border[0 0 0]/H/N>> endobj 27772 0 obj <>/P 9099 0 R/Type/Annot/A 28264 0 R/Subtype/Link/Rect[431 669 445 678]/Border[0 0 0]/H/N>> endobj 27773 0 obj <>/P 9099 0 R/Type/Annot/A 28258 0 R/Subtype/Link/Rect[447 669 461 678]/Border[0 0 0]/H/N>> endobj 27774 0 obj <>/P 9099 0 R/Type/Annot/A 28252 0 R/Subtype/Link/Rect[463 669 477 678]/Border[0 0 0]/H/N>> endobj 27775 0 obj <>/P 9099 0 R/Type/Annot/A 28247 0 R/Subtype/Link/Rect[479 669 491 678]/Border[0 0 0]/H/N>> endobj 27776 0 obj <>/P 9099 0 R/Type/Annot/A 28240 0 R/Subtype/Link/Rect[403 649 413 658]/Border[0 0 0]/H/N>> endobj 27777 0 obj <>/P 9099 0 R/Type/Annot/A 28057 0 R/Subtype/Link/Rect[415 649 429 658]/Border[0 0 0]/H/N>> endobj 27778 0 obj <>/P 9099 0 R/Type/Annot/A 28230 0 R/Subtype/Link/Rect[431 649 445 658]/Border[0 0 0]/H/N>> endobj 27779 0 obj <>/P 9099 0 R/Type/Annot/A 28225 0 R/Subtype/Link/Rect[447 649 459 658]/Border[0 0 0]/H/N>> endobj 27780 0 obj <>/P 9099 0 R/Type/Annot/A 28221 0 R/Subtype/Link/Rect[401 639 415 648]/Border[0 0 0]/H/N>> endobj 27781 0 obj <>/P 9099 0 R/Type/Annot/A 28217 0 R/Subtype/Link/Rect[417 639 433 648]/Border[0 0 0]/H/N>> endobj 27782 0 obj <>/P 9099 0 R/Type/Annot/A 31040 0 R/Subtype/Link/Rect[434 639 448 648]/Border[0 0 0]/H/N>> endobj 27783 0 obj <>/P 9099 0 R/Type/Annot/A 28207 0 R/Subtype/Link/Rect[450 639 462 648]/Border[0 0 0]/H/N>> endobj 27784 0 obj <>/P 9099 0 R/Type/Annot/A 28200 0 R/Subtype/Link/Rect[398 629 410 638]/Border[0 0 0]/H/N>> endobj 27785 0 obj <>/P 9099 0 R/Type/Annot/A 28194 0 R/Subtype/Link/Rect[396 619 408 628]/Border[0 0 0]/H/N>> endobj 27786 0 obj <>/P 9099 0 R/Type/Annot/A 28188 0 R/Subtype/Link/Rect[412 609 426 618]/Border[0 0 0]/H/N>> endobj 27787 0 obj <>/P 9099 0 R/Type/Annot/A 30151 0 R/Subtype/Link/Rect[428 609 442 618]/Border[0 0 0]/H/N>> endobj 27788 0 obj <>/P 9099 0 R/Type/Annot/A 28175 0 R/Subtype/Link/Rect[444 609 458 618]/Border[0 0 0]/H/N>> endobj 27789 0 obj <>/P 9099 0 R/Type/Annot/A 28169 0 R/Subtype/Link/Rect[460 609 474 618]/Border[0 0 0]/H/N>> endobj 27790 0 obj <>/P 9099 0 R/Type/Annot/A 28164 0 R/Subtype/Link/Rect[476 609 490 618]/Border[0 0 0]/H/N>> endobj 27791 0 obj <>/P 9099 0 R/Type/Annot/A 28158 0 R/Subtype/Link/Rect[492 609 504 618]/Border[0 0 0]/H/N>> endobj 27792 0 obj <>/P 9099 0 R/Type/Annot/A 29241 0 R/Subtype/Link/Rect[397 599 409 608]/Border[0 0 0]/H/N>> endobj 27793 0 obj <>/P 9099 0 R/Type/Annot/A 28147 0 R/Subtype/Link/Rect[396 589 404 598]/Border[0 0 0]/H/N>> endobj 27794 0 obj <>/P 9099 0 R/Type/Annot/A 28141 0 R/Subtype/Link/Rect[405 589 415 598]/Border[0 0 0]/H/N>> endobj 27795 0 obj <>/P 9099 0 R/Type/Annot/A 28134 0 R/Subtype/Link/Rect[417 589 427 598]/Border[0 0 0]/H/N>> endobj 27796 0 obj <>/P 9099 0 R/Type/Annot/A 28128 0 R/Subtype/Link/Rect[429 589 439 598]/Border[0 0 0]/H/N>> endobj 27797 0 obj <>/P 9099 0 R/Type/Annot/A 28123 0 R/Subtype/Link/Rect[441 589 451 598]/Border[0 0 0]/H/N>> endobj 27798 0 obj <>/P 9099 0 R/Type/Annot/A 28116 0 R/Subtype/Link/Rect[453 589 463 598]/Border[0 0 0]/H/N>> endobj 27799 0 obj <>/P 9099 0 R/Type/Annot/A 28110 0 R/Subtype/Link/Rect[465 589 478 598]/Border[0 0 0]/H/N>> endobj 27800 0 obj <>/P 9099 0 R/Type/Annot/A 28105 0 R/Subtype/Link/Rect[478 589 488 598]/Border[0 0 0]/H/N>> endobj 27801 0 obj <>/P 9099 0 R/Type/Annot/A 28101 0 R/Subtype/Link/Rect[490 589 500 598]/Border[0 0 0]/H/N>> endobj 27802 0 obj <>/P 9099 0 R/Type/Annot/A 28097 0 R/Subtype/Link/Rect[502 589 512 598]/Border[0 0 0]/H/N>> endobj 27803 0 obj <>/P 9099 0 R/Type/Annot/A 28093 0 R/Subtype/Link/Rect[359 579 372 588]/Border[0 0 0]/H/N>> endobj 27804 0 obj <>/P 9099 0 R/Type/Annot/A 28336 0 R/Subtype/Link/Rect[373 579 383 588]/Border[0 0 0]/H/N>> endobj 27805 0 obj <>/P 9099 0 R/Type/Annot/A 28330 0 R/Subtype/Link/Rect[385 579 398 588]/Border[0 0 0]/H/N>> endobj 27806 0 obj <>/P 9099 0 R/Type/Annot/A 28325 0 R/Subtype/Link/Rect[400 579 416 588]/Border[0 0 0]/H/N>> endobj 27807 0 obj <>/P 9099 0 R/Type/Annot/A 28319 0 R/Subtype/Link/Rect[417 579 431 588]/Border[0 0 0]/H/N>> endobj 27808 0 obj <>/P 9099 0 R/Type/Annot/A 28152 0 R/Subtype/Link/Rect[433 579 447 588]/Border[0 0 0]/H/N>> endobj 27809 0 obj <>/P 9099 0 R/Type/Annot/A 28313 0 R/Subtype/Link/Rect[449 579 463 588]/Border[0 0 0]/H/N>> endobj 27810 0 obj <>/P 9099 0 R/Type/Annot/A 28074 0 R/Subtype/Link/Rect[465 579 482 588]/Border[0 0 0]/H/N>> endobj 27811 0 obj <>/P 9099 0 R/Type/Annot/A 28304 0 R/Subtype/Link/Rect[482 579 496 588]/Border[0 0 0]/H/N>> endobj 27812 0 obj <>/P 9099 0 R/Type/Annot/A 28299 0 R/Subtype/Link/Rect[498 579 512 588]/Border[0 0 0]/H/N>> endobj 27813 0 obj <>/P 9099 0 R/Type/Annot/A 28294 0 R/Subtype/Link/Rect[359 569 373 578]/Border[0 0 0]/H/N>> endobj 27814 0 obj <>/P 9099 0 R/Type/Annot/A 28289 0 R/Subtype/Link/Rect[375 569 392 578]/Border[0 0 0]/H/N>> endobj 27815 0 obj <>/P 9099 0 R/Type/Annot/A 28285 0 R/Subtype/Link/Rect[393 569 407 578]/Border[0 0 0]/H/N>> endobj 27816 0 obj <>/P 9099 0 R/Type/Annot/A 28279 0 R/Subtype/Link/Rect[409 569 425 578]/Border[0 0 0]/H/N>> endobj 27817 0 obj <>/P 9099 0 R/Type/Annot/A 28274 0 R/Subtype/Link/Rect[426 569 440 578]/Border[0 0 0]/H/N>> endobj 27818 0 obj <>/P 9099 0 R/Type/Annot/A 28268 0 R/Subtype/Link/Rect[442 569 458 578]/Border[0 0 0]/H/N>> endobj 27819 0 obj <>/P 9099 0 R/Type/Annot/A 28262 0 R/Subtype/Link/Rect[459 569 473 578]/Border[0 0 0]/H/N>> endobj 27820 0 obj <>/P 9099 0 R/Type/Annot/A 28060 0 R/Subtype/Link/Rect[475 569 492 578]/Border[0 0 0]/H/N>> endobj 27821 0 obj <>/P 9099 0 R/Type/Annot/A 28250 0 R/Subtype/Link/Rect[492 569 506 578]/Border[0 0 0]/H/N>> endobj 27822 0 obj <>/P 9099 0 R/Type/Annot/A 28245 0 R/Subtype/Link/Rect[359 559 373 568]/Border[0 0 0]/H/N>> endobj 27823 0 obj <>/P 9099 0 R/Type/Annot/A 28238 0 R/Subtype/Link/Rect[375 559 389 568]/Border[0 0 0]/H/N>> endobj 27824 0 obj <>/P 9099 0 R/Type/Annot/A 28234 0 R/Subtype/Link/Rect[391 559 405 568]/Border[0 0 0]/H/N>> endobj 27825 0 obj <>/P 9099 0 R/Type/Annot/A 28228 0 R/Subtype/Link/Rect[407 559 421 568]/Border[0 0 0]/H/N>> endobj 27826 0 obj <>/P 9099 0 R/Type/Annot/A 28223 0 R/Subtype/Link/Rect[423 559 440 568]/Border[0 0 0]/H/N>> endobj 27827 0 obj <>/P 9099 0 R/Type/Annot/A 28219 0 R/Subtype/Link/Rect[441 559 455 568]/Border[0 0 0]/H/N>> endobj 27828 0 obj <>/P 9099 0 R/Type/Annot/A 28050 0 R/Subtype/Link/Rect[457 559 473 568]/Border[0 0 0]/H/N>> endobj 27829 0 obj <>/P 9099 0 R/Type/Annot/A 28211 0 R/Subtype/Link/Rect[474 559 488 568]/Border[0 0 0]/H/N>> endobj 27830 0 obj <>/P 9099 0 R/Type/Annot/A 28206 0 R/Subtype/Link/Rect[359 549 376 558]/Border[0 0 0]/H/N>> endobj 27831 0 obj <>/P 9099 0 R/Type/Annot/A 28046 0 R/Subtype/Link/Rect[377 549 391 558]/Border[0 0 0]/H/N>> endobj 27832 0 obj <>/P 9099 0 R/Type/Annot/A 28043 0 R/Subtype/Link/Rect[393 549 409 558]/Border[0 0 0]/H/N>> endobj 27833 0 obj <>/P 9099 0 R/Type/Annot/A 28189 0 R/Subtype/Link/Rect[410 549 424 558]/Border[0 0 0]/H/N>> endobj 27834 0 obj <>/P 9099 0 R/Type/Annot/A 28182 0 R/Subtype/Link/Rect[426 549 443 558]/Border[0 0 0]/H/N>> endobj 27835 0 obj <>/P 9099 0 R/Type/Annot/A 28177 0 R/Subtype/Link/Rect[443 549 457 558]/Border[0 0 0]/H/N>> endobj 27836 0 obj <>/P 9099 0 R/Type/Annot/A 28170 0 R/Subtype/Link/Rect[459 549 473 558]/Border[0 0 0]/H/N>> endobj 27837 0 obj <>/P 9099 0 R/Type/Annot/A 28165 0 R/Subtype/Link/Rect[475 549 489 558]/Border[0 0 0]/H/N>> endobj 27838 0 obj <>/P 9099 0 R/Type/Annot/A 28159 0 R/Subtype/Link/Rect[359 539 376 548]/Border[0 0 0]/H/N>> endobj 27839 0 obj <>/P 9099 0 R/Type/Annot/A 28154 0 R/Subtype/Link/Rect[377 539 391 548]/Border[0 0 0]/H/N>> endobj 27840 0 obj <>/P 9099 0 R/Type/Annot/A 28148 0 R/Subtype/Link/Rect[393 539 409 548]/Border[0 0 0]/H/N>> endobj 27841 0 obj <>/P 9099 0 R/Type/Annot/A 28142 0 R/Subtype/Link/Rect[410 539 424 548]/Border[0 0 0]/H/N>> endobj 27842 0 obj <>/P 9099 0 R/Type/Annot/A 28135 0 R/Subtype/Link/Rect[426 539 443 548]/Border[0 0 0]/H/N>> endobj 27843 0 obj <>/P 9099 0 R/Type/Annot/A 28028 0 R/Subtype/Link/Rect[443 539 457 548]/Border[0 0 0]/H/N>> endobj 27844 0 obj <>/P 9099 0 R/Type/Annot/A 28024 0 R/Subtype/Link/Rect[459 539 476 548]/Border[0 0 0]/H/N>> endobj 27845 0 obj <>/P 9099 0 R/Type/Annot/A 28119 0 R/Subtype/Link/Rect[476 539 490 548]/Border[0 0 0]/H/N>> endobj 27846 0 obj <>/P 9099 0 R/Type/Annot/A 28113 0 R/Subtype/Link/Rect[359 529 376 538]/Border[0 0 0]/H/N>> endobj 27847 0 obj <>/P 9099 0 R/Type/Annot/A 28109 0 R/Subtype/Link/Rect[377 529 391 538]/Border[0 0 0]/H/N>> endobj 27848 0 obj <>/P 9099 0 R/Type/Annot/A 28104 0 R/Subtype/Link/Rect[393 529 407 538]/Border[0 0 0]/H/N>> endobj 27849 0 obj <>/P 9099 0 R/Type/Annot/A 28100 0 R/Subtype/Link/Rect[409 529 423 538]/Border[0 0 0]/H/N>> endobj 27850 0 obj <>/P 9099 0 R/Type/Annot/A 28096 0 R/Subtype/Link/Rect[425 529 439 538]/Border[0 0 0]/H/N>> endobj 27851 0 obj <>/P 9099 0 R/Type/Annot/A 28091 0 R/Subtype/Link/Rect[441 529 455 538]/Border[0 0 0]/H/N>> endobj 27852 0 obj <>/P 9099 0 R/Type/Annot/A 28087 0 R/Subtype/Link/Rect[457 529 471 538]/Border[0 0 0]/H/N>> endobj 27853 0 obj <>/P 9099 0 R/Type/Annot/A 28084 0 R/Subtype/Link/Rect[473 529 487 538]/Border[0 0 0]/H/N>> endobj 27854 0 obj <>/P 9099 0 R/Type/Annot/A 28080 0 R/Subtype/Link/Rect[488 529 502 538]/Border[0 0 0]/H/N>> endobj 27855 0 obj <>/P 9099 0 R/Type/Annot/A 28077 0 R/Subtype/Link/Rect[504 529 518 538]/Border[0 0 0]/H/N>> endobj 27856 0 obj <>/P 9099 0 R/Type/Annot/A 28076 0 R/Subtype/Link/Rect[359 519 373 528]/Border[0 0 0]/H/N>> endobj 27857 0 obj <>/P 9099 0 R/Type/Annot/A 28075 0 R/Subtype/Link/Rect[375 519 392 528]/Border[0 0 0]/H/N>> endobj 27858 0 obj <>/P 9099 0 R/Type/Annot/A 28073 0 R/Subtype/Link/Rect[393 519 407 528]/Border[0 0 0]/H/N>> endobj 27859 0 obj <>/P 9099 0 R/Type/Annot/A 28072 0 R/Subtype/Link/Rect[409 519 423 528]/Border[0 0 0]/H/N>> endobj 27860 0 obj <>/P 9099 0 R/Type/Annot/A 28070 0 R/Subtype/Link/Rect[425 519 441 528]/Border[0 0 0]/H/N>> endobj 27861 0 obj <>/P 9099 0 R/Type/Annot/A 28069 0 R/Subtype/Link/Rect[442 519 456 528]/Border[0 0 0]/H/N>> endobj 27862 0 obj <>/P 9099 0 R/Type/Annot/A 28068 0 R/Subtype/Link/Rect[458 519 474 528]/Border[0 0 0]/H/N>> endobj 27863 0 obj <>/P 9099 0 R/Type/Annot/A 28067 0 R/Subtype/Link/Rect[475 519 489 528]/Border[0 0 0]/H/N>> endobj 27864 0 obj <>/P 9099 0 R/Type/Annot/A 28066 0 R/Subtype/Link/Rect[359 509 376 518]/Border[0 0 0]/H/N>> endobj 27865 0 obj <>/P 9099 0 R/Type/Annot/A 28065 0 R/Subtype/Link/Rect[377 509 391 518]/Border[0 0 0]/H/N>> endobj 27866 0 obj <>/P 9099 0 R/Type/Annot/A 28063 0 R/Subtype/Link/Rect[393 509 407 518]/Border[0 0 0]/H/N>> endobj 27867 0 obj <>/P 9099 0 R/Type/Annot/A 28062 0 R/Subtype/Link/Rect[409 509 423 518]/Border[0 0 0]/H/N>> endobj 27868 0 obj <>/P 9099 0 R/Type/Annot/A 28061 0 R/Subtype/Link/Rect[425 509 439 518]/Border[0 0 0]/H/N>> endobj 27869 0 obj <>/P 9099 0 R/Type/Annot/A 28059 0 R/Subtype/Link/Rect[441 509 455 518]/Border[0 0 0]/H/N>> endobj 27870 0 obj <>/P 9099 0 R/Type/Annot/A 28058 0 R/Subtype/Link/Rect[457 509 471 518]/Border[0 0 0]/H/N>> endobj 27871 0 obj <>/P 9099 0 R/Type/Annot/A 28056 0 R/Subtype/Link/Rect[473 509 489 518]/Border[0 0 0]/H/N>> endobj 27872 0 obj <>/P 9099 0 R/Type/Annot/A 28055 0 R/Subtype/Link/Rect[490 509 504 518]/Border[0 0 0]/H/N>> endobj 27873 0 obj <>/P 9099 0 R/Type/Annot/A 28054 0 R/Subtype/Link/Rect[359 499 376 508]/Border[0 0 0]/H/N>> endobj 27874 0 obj <>/P 9099 0 R/Type/Annot/A 28053 0 R/Subtype/Link/Rect[377 499 391 508]/Border[0 0 0]/H/N>> endobj 27875 0 obj <>/P 9099 0 R/Type/Annot/A 28052 0 R/Subtype/Link/Rect[393 499 406 508]/Border[0 0 0]/H/N>> endobj 27876 0 obj <>/P 9099 0 R/Type/Annot/A 28051 0 R/Subtype/Link/Rect[408 499 422 508]/Border[0 0 0]/H/N>> endobj 27877 0 obj <>/P 9099 0 R/Type/Annot/A 28049 0 R/Subtype/Link/Rect[424 499 438 508]/Border[0 0 0]/H/N>> endobj 27878 0 obj <>/P 9099 0 R/Type/Annot/A 28048 0 R/Subtype/Link/Rect[440 499 457 508]/Border[0 0 0]/H/N>> endobj 27879 0 obj <>/P 9099 0 R/Type/Annot/A 28047 0 R/Subtype/Link/Rect[457 499 471 508]/Border[0 0 0]/H/N>> endobj 27880 0 obj <>/P 9099 0 R/Type/Annot/A 28044 0 R/Subtype/Link/Rect[473 499 490 508]/Border[0 0 0]/H/N>> endobj 27881 0 obj <>/P 9099 0 R/Type/Annot/A 28042 0 R/Subtype/Link/Rect[491 499 505 508]/Border[0 0 0]/H/N>> endobj 27882 0 obj <>/P 9099 0 R/Type/Annot/A 28041 0 R/Subtype/Link/Rect[359 489 373 498]/Border[0 0 0]/H/N>> endobj 27883 0 obj <>/P 9099 0 R/Type/Annot/A 28040 0 R/Subtype/Link/Rect[375 489 387 498]/Border[0 0 0]/H/N>> endobj 27884 0 obj <>/P 9099 0 R/Type/Annot/A 28039 0 R/Subtype/Link/Rect[398 479 406 488]/Border[0 0 0]/H/N>> endobj 27885 0 obj <>/P 9099 0 R/Type/Annot/A 28038 0 R/Subtype/Link/Rect[386 469 400 478]/Border[0 0 0]/H/N>> endobj 27886 0 obj <>/P 9099 0 R/Type/Annot/A 28037 0 R/Subtype/Link/Rect[402 469 414 478]/Border[0 0 0]/H/N>> endobj 27887 0 obj <>/P 9099 0 R/Type/Annot/A 28036 0 R/Subtype/Link/Rect[410 459 416 468]/Border[0 0 0]/H/N>> endobj 27888 0 obj <>/P 9099 0 R/Type/Annot/A 28034 0 R/Subtype/Link/Rect[418 459 424 468]/Border[0 0 0]/H/N>> endobj 27889 0 obj <>/P 9099 0 R/Type/Annot/A 28033 0 R/Subtype/Link/Rect[426 459 443 468]/Border[0 0 0]/H/N>> endobj 27890 0 obj <>/P 9099 0 R/Type/Annot/A 28032 0 R/Subtype/Link/Rect[443 459 457 468]/Border[0 0 0]/H/N>> endobj 27891 0 obj <>/P 9099 0 R/Type/Annot/A 28031 0 R/Subtype/Link/Rect[459 459 473 468]/Border[0 0 0]/H/N>> endobj 27892 0 obj <>/P 9099 0 R/Type/Annot/A 28026 0 R/Subtype/Link/Rect[475 459 489 468]/Border[0 0 0]/H/N>> endobj 27893 0 obj <>/P 9099 0 R/Type/Annot/A 28023 0 R/Subtype/Link/Rect[491 459 505 468]/Border[0 0 0]/H/N>> endobj 27894 0 obj <>/P 9099 0 R/Type/Annot/A 28021 0 R/Subtype/Link/Rect[507 459 519 468]/Border[0 0 0]/H/N>> endobj 27895 0 obj <>/P 9099 0 R/Type/Annot/A 28019 0 R/Subtype/Link/Rect[398 449 410 458]/Border[0 0 0]/H/N>> endobj 27896 0 obj <>/P 9099 0 R/Type/Annot/A 28017 0 R/Subtype/Link/Rect[420 439 434 448]/Border[0 0 0]/H/N>> endobj 27897 0 obj <>/P 9099 0 R/Type/Annot/A 28015 0 R/Subtype/Link/Rect[436 439 448 448]/Border[0 0 0]/H/N>> endobj 27898 0 obj <>/P 9099 0 R/Type/Annot/A 28013 0 R/Subtype/Link/Rect[445 429 461 438]/Border[0 0 0]/H/N>> endobj 27899 0 obj <>/P 9099 0 R/Type/Annot/A 28011 0 R/Subtype/Link/Rect[462 429 474 438]/Border[0 0 0]/H/N>> endobj 27900 0 obj <>/P 9099 0 R/Type/Annot/A 28009 0 R/Subtype/Link/Rect[412 419 429 428]/Border[0 0 0]/H/N>> endobj 27901 0 obj <>/P 9099 0 R/Type/Annot/A 28007 0 R/Subtype/Link/Rect[429 419 441 428]/Border[0 0 0]/H/N>> endobj 27902 0 obj <>/P 9099 0 R/Type/Annot/A 28004 0 R/Subtype/Link/Rect[410 409 427 418]/Border[0 0 0]/H/N>> endobj 27903 0 obj <>/P 9099 0 R/Type/Annot/A 28092 0 R/Subtype/Link/Rect[427 409 439 418]/Border[0 0 0]/H/N>> endobj 27904 0 obj <>/P 9099 0 R/Type/Annot/A 28088 0 R/Subtype/Link/Rect[415 399 429 408]/Border[0 0 0]/H/N>> endobj 27905 0 obj <>/P 9099 0 R/Type/Annot/A 28083 0 R/Subtype/Link/Rect[431 399 448 408]/Border[0 0 0]/H/N>> endobj 27906 0 obj <>/P 9099 0 R/Type/Annot/A 44703 0 R/Subtype/Link/Rect[448 399 462 408]/Border[0 0 0]/H/N>> endobj 27907 0 obj <>/P 9099 0 R/Type/Annot/A 28334 0 R/Subtype/Link/Rect[464 399 478 408]/Border[0 0 0]/H/N>> endobj 27908 0 obj <>/P 9099 0 R/Type/Annot/A 44652 0 R/Subtype/Link/Rect[480 399 492 408]/Border[0 0 0]/H/N>> endobj 27909 0 obj <>/P 9099 0 R/Type/Annot/A 28323 0 R/Subtype/Link/Rect[398 389 410 398]/Border[0 0 0]/H/N>> endobj 27910 0 obj <>/P 9099 0 R/Type/Annot/A 44570 0 R/Subtype/Link/Rect[425 379 441 388]/Border[0 0 0]/H/N>> endobj 27911 0 obj <>/P 9099 0 R/Type/Annot/A 38346 0 R/Subtype/Link/Rect[442 379 456 388]/Border[0 0 0]/H/N>> endobj 27912 0 obj <>/P 9099 0 R/Type/Annot/A 28310 0 R/Subtype/Link/Rect[458 379 472 388]/Border[0 0 0]/H/N>> endobj 27913 0 obj <>/P 9099 0 R/Type/Annot/A 28305 0 R/Subtype/Link/Rect[474 379 486 388]/Border[0 0 0]/H/N>> endobj 27914 0 obj <>/P 9099 0 R/Type/Annot/A 28298 0 R/Subtype/Link/Rect[398 369 410 378]/Border[0 0 0]/H/N>> endobj 27915 0 obj <>/P 9099 0 R/Type/Annot/A 28292 0 R/Subtype/Link/Rect[420 359 434 368]/Border[0 0 0]/H/N>> endobj 27916 0 obj <>/P 9099 0 R/Type/Annot/A 28064 0 R/Subtype/Link/Rect[436 359 450 368]/Border[0 0 0]/H/N>> endobj 27917 0 obj <>/P 9099 0 R/Type/Annot/A 28282 0 R/Subtype/Link/Rect[452 359 466 368]/Border[0 0 0]/H/N>> endobj 27918 0 obj <>/P 9099 0 R/Type/Annot/A 28276 0 R/Subtype/Link/Rect[468 359 480 368]/Border[0 0 0]/H/N>> endobj 27919 0 obj <>/P 9099 0 R/Type/Annot/A 28271 0 R/Subtype/Link/Rect[415 349 429 358]/Border[0 0 0]/H/N>> endobj 27920 0 obj <>/P 9099 0 R/Type/Annot/A 28265 0 R/Subtype/Link/Rect[431 349 445 358]/Border[0 0 0]/H/N>> endobj 27921 0 obj <>/P 9099 0 R/Type/Annot/A 28257 0 R/Subtype/Link/Rect[447 349 464 358]/Border[0 0 0]/H/N>> endobj 27922 0 obj <>/P 9099 0 R/Type/Annot/A 28251 0 R/Subtype/Link/Rect[464 349 476 358]/Border[0 0 0]/H/N>> endobj 27923 0 obj <>/P 9099 0 R/Type/Annot/A 28246 0 R/Subtype/Link/Rect[398 339 410 348]/Border[0 0 0]/H/N>> endobj 27924 0 obj <>/P 9099 0 R/Type/Annot/A 28239 0 R/Subtype/Link/Rect[401 329 417 338]/Border[0 0 0]/H/N>> endobj 27925 0 obj <>/P 9099 0 R/Type/Annot/A 28233 0 R/Subtype/Link/Rect[418 329 432 338]/Border[0 0 0]/H/N>> endobj 27926 0 obj <>/P 9099 0 R/Type/Annot/A 28227 0 R/Subtype/Link/Rect[434 329 448 338]/Border[0 0 0]/H/N>> endobj 27927 0 obj <>/P 9099 0 R/Type/Annot/A 41986 0 R/Subtype/Link/Rect[450 329 464 338]/Border[0 0 0]/H/N>> endobj 27928 0 obj <>/P 9099 0 R/Type/Annot/A 28218 0 R/Subtype/Link/Rect[466 329 479 338]/Border[0 0 0]/H/N>> endobj 27929 0 obj <>/P 9099 0 R/Type/Annot/A 28213 0 R/Subtype/Link/Rect[481 329 493 338]/Border[0 0 0]/H/N>> endobj 27930 0 obj <>/P 9099 0 R/Type/Annot/A 28208 0 R/Subtype/Link/Rect[398 319 415 328]/Border[0 0 0]/H/N>> endobj 27931 0 obj <>/P 9099 0 R/Type/Annot/A 28202 0 R/Subtype/Link/Rect[415 319 427 328]/Border[0 0 0]/H/N>> endobj 27932 0 obj <>/P 9099 0 R/Type/Annot/A 28196 0 R/Subtype/Link/Rect[401 309 411 318]/Border[0 0 0]/H/N>> endobj 27933 0 obj <>/P 9099 0 R/Type/Annot/A 28190 0 R/Subtype/Link/Rect[413 309 423 318]/Border[0 0 0]/H/N>> endobj 27934 0 obj <>/P 9099 0 R/Type/Annot/A 28183 0 R/Subtype/Link/Rect[425 309 439 318]/Border[0 0 0]/H/N>> endobj 27935 0 obj <>/P 9099 0 R/Type/Annot/A 28176 0 R/Subtype/Link/Rect[441 309 455 318]/Border[0 0 0]/H/N>> endobj 27936 0 obj <>/P 9099 0 R/Type/Annot/A 28035 0 R/Subtype/Link/Rect[457 309 471 318]/Border[0 0 0]/H/N>> endobj 27937 0 obj <>/P 9099 0 R/Type/Annot/A 28163 0 R/Subtype/Link/Rect[473 309 489 318]/Border[0 0 0]/H/N>> endobj 27938 0 obj <>/P 9099 0 R/Type/Annot/A 28157 0 R/Subtype/Link/Rect[490 309 504 318]/Border[0 0 0]/H/N>> endobj 27939 0 obj <>/P 9099 0 R/Type/Annot/A 28029 0 R/Subtype/Link/Rect[359 299 373 308]/Border[0 0 0]/H/N>> endobj 27940 0 obj <>/P 9099 0 R/Type/Annot/A 28146 0 R/Subtype/Link/Rect[375 299 389 308]/Border[0 0 0]/H/N>> endobj 27941 0 obj <>/P 9099 0 R/Type/Annot/A 28139 0 R/Subtype/Link/Rect[391 299 405 308]/Border[0 0 0]/H/N>> endobj 27942 0 obj <>/P 9099 0 R/Type/Annot/A 28132 0 R/Subtype/Link/Rect[407 299 421 308]/Border[0 0 0]/H/N>> endobj 27943 0 obj <>/P 9099 0 R/Type/Annot/A 28127 0 R/Subtype/Link/Rect[423 299 437 308]/Border[0 0 0]/H/N>> endobj 27944 0 obj <>/P 9099 0 R/Type/Annot/A 28121 0 R/Subtype/Link/Rect[439 299 451 308]/Border[0 0 0]/H/N>> endobj 27945 0 obj <>/P 9099 0 R/Type/Annot/A 28114 0 R/Subtype/Link/Rect[398 289 410 298]/Border[0 0 0]/H/N>> endobj 27946 0 obj <>/P 9099 0 R/Type/Annot/A 41188 0 R/Subtype/Link/Rect[425 279 439 288]/Border[0 0 0]/H/N>> endobj 27947 0 obj <>/P 9099 0 R/Type/Annot/A 28103 0 R/Subtype/Link/Rect[441 279 455 288]/Border[0 0 0]/H/N>> endobj 27948 0 obj <>/P 9099 0 R/Type/Annot/A 28098 0 R/Subtype/Link/Rect[457 279 471 288]/Border[0 0 0]/H/N>> endobj 27949 0 obj <>/P 9099 0 R/Type/Annot/A 28094 0 R/Subtype/Link/Rect[473 279 487 288]/Border[0 0 0]/H/N>> endobj 27950 0 obj <>/P 9099 0 R/Type/Annot/A 28089 0 R/Subtype/Link/Rect[489 279 501 288]/Border[0 0 0]/H/N>> endobj 27951 0 obj <>/P 9099 0 R/Type/Annot/A 28085 0 R/Subtype/Link/Rect[387 259 397 268]/Border[0 0 0]/H/N>> endobj 27952 0 obj <>/P 9099 0 R/Type/Annot/A 28081 0 R/Subtype/Link/Rect[399 259 413 268]/Border[0 0 0]/H/N>> endobj 27953 0 obj <>/P 9099 0 R/Type/Annot/A 28078 0 R/Subtype/Link/Rect[415 259 429 268]/Border[0 0 0]/H/N>> endobj 27954 0 obj <>/P 9099 0 R/Type/Annot/A 28341 0 R/Subtype/Link/Rect[431 259 445 268]/Border[0 0 0]/H/N>> endobj 27955 0 obj <>/P 9099 0 R/Type/Annot/A 28333 0 R/Subtype/Link/Rect[447 259 461 268]/Border[0 0 0]/H/N>> endobj 27956 0 obj <>/P 9099 0 R/Type/Annot/A 28328 0 R/Subtype/Link/Rect[463 259 479 268]/Border[0 0 0]/H/N>> endobj 27957 0 obj <>/P 9099 0 R/Type/Annot/A 28322 0 R/Subtype/Link/Rect[480 259 494 268]/Border[0 0 0]/H/N>> endobj 27958 0 obj <>/P 9099 0 R/Type/Annot/A 28318 0 R/Subtype/Link/Rect[496 259 510 268]/Border[0 0 0]/H/N>> endobj 27959 0 obj <>/P 9099 0 R/Type/Annot/A 38913 0 R/Subtype/Link/Rect[359 249 373 258]/Border[0 0 0]/H/N>> endobj 27960 0 obj <>/P 9099 0 R/Type/Annot/A 38375 0 R/Subtype/Link/Rect[375 249 387 258]/Border[0 0 0]/H/N>> endobj 27961 0 obj <>/P 9099 0 R/Type/Annot/A 28306 0 R/Subtype/Link/Rect[380 239 393 248]/Border[0 0 0]/H/N>> endobj 27962 0 obj <>/P 9099 0 R/Type/Annot/A 28300 0 R/Subtype/Link/Rect[394 239 404 248]/Border[0 0 0]/H/N>> endobj 27963 0 obj <>/P 9099 0 R/Type/Annot/A 28293 0 R/Subtype/Link/Rect[406 239 416 248]/Border[0 0 0]/H/N>> endobj 27964 0 obj <>/P 9099 0 R/Type/Annot/A 28288 0 R/Subtype/Link/Rect[418 239 430 248]/Border[0 0 0]/H/N>> endobj 27965 0 obj <>/P 9099 0 R/Type/Annot/A 28284 0 R/Subtype/Link/Rect[431 239 441 248]/Border[0 0 0]/H/N>> endobj 27966 0 obj <>/P 9099 0 R/Type/Annot/A 28278 0 R/Subtype/Link/Rect[443 239 457 248]/Border[0 0 0]/H/N>> endobj 27967 0 obj <>/P 9099 0 R/Type/Annot/A 28273 0 R/Subtype/Link/Rect[459 239 473 248]/Border[0 0 0]/H/N>> endobj 27968 0 obj <>/P 9099 0 R/Type/Annot/A 28267 0 R/Subtype/Link/Rect[475 239 489 248]/Border[0 0 0]/H/N>> endobj 27969 0 obj <>/P 9099 0 R/Type/Annot/A 28260 0 R/Subtype/Link/Rect[491 239 505 248]/Border[0 0 0]/H/N>> endobj 27970 0 obj <>/P 9099 0 R/Type/Annot/A 28254 0 R/Subtype/Link/Rect[359 229 376 238]/Border[0 0 0]/H/N>> endobj 27971 0 obj <>/P 9099 0 R/Type/Annot/A 42310 0 R/Subtype/Link/Rect[377 229 391 238]/Border[0 0 0]/H/N>> endobj 27972 0 obj <>/P 9099 0 R/Type/Annot/A 28242 0 R/Subtype/Link/Rect[393 229 409 238]/Border[0 0 0]/H/N>> endobj 27973 0 obj <>/P 9099 0 R/Type/Annot/A 28236 0 R/Subtype/Link/Rect[410 229 424 238]/Border[0 0 0]/H/N>> endobj 27974 0 obj <>/P 9099 0 R/Type/Annot/A 34198 0 R/Subtype/Link/Rect[426 229 440 238]/Border[0 0 0]/H/N>> endobj 27975 0 obj <>/P 9099 0 R/Type/Annot/A 28226 0 R/Subtype/Link/Rect[442 229 456 238]/Border[0 0 0]/H/N>> endobj 27976 0 obj <>/P 9099 0 R/Type/Annot/A 28045 0 R/Subtype/Link/Rect[458 229 472 238]/Border[0 0 0]/H/N>> endobj 27977 0 obj <>/P 9099 0 R/Type/Annot/A 28216 0 R/Subtype/Link/Rect[474 229 488 238]/Border[0 0 0]/H/N>> endobj 27978 0 obj <>/P 9099 0 R/Type/Annot/A 33041 0 R/Subtype/Link/Rect[490 229 504 238]/Border[0 0 0]/H/N>> endobj 27979 0 obj <>/P 9099 0 R/Type/Annot/A 28205 0 R/Subtype/Link/Rect[359 219 373 228]/Border[0 0 0]/H/N>> endobj 27980 0 obj <>/P 9099 0 R/Type/Annot/A 28199 0 R/Subtype/Link/Rect[375 219 389 228]/Border[0 0 0]/H/N>> endobj 27981 0 obj <>/P 9099 0 R/Type/Annot/A 28193 0 R/Subtype/Link/Rect[391 219 403 228]/Border[0 0 0]/H/N>> endobj 27982 0 obj <>/P 9099 0 R/Type/Annot/A 28186 0 R/Subtype/Link/Rect[410 209 420 218]/Border[0 0 0]/H/N>> endobj 27983 0 obj <>/P 9099 0 R/Type/Annot/A 28180 0 R/Subtype/Link/Rect[422 209 436 218]/Border[0 0 0]/H/N>> endobj 27984 0 obj <>/P 9099 0 R/Type/Annot/A 28173 0 R/Subtype/Link/Rect[438 209 455 218]/Border[0 0 0]/H/N>> endobj 27985 0 obj <>/P 9099 0 R/Type/Annot/A 30298 0 R/Subtype/Link/Rect[455 209 469 218]/Border[0 0 0]/H/N>> endobj 27986 0 obj <>/P 9099 0 R/Type/Annot/A 28161 0 R/Subtype/Link/Rect[471 209 485 218]/Border[0 0 0]/H/N>> endobj 27987 0 obj <>/P 9099 0 R/Type/Annot/A 28027 0 R/Subtype/Link/Rect[487 209 504 218]/Border[0 0 0]/H/N>> endobj 27988 0 obj <>/P 9099 0 R/Type/Annot/A 28151 0 R/Subtype/Link/Rect[505 209 519 218]/Border[0 0 0]/H/N>> endobj 27989 0 obj <>/P 9099 0 R/Type/Annot/A 28145 0 R/Subtype/Link/Rect[359 199 373 208]/Border[0 0 0]/H/N>> endobj 27990 0 obj <>/P 9099 0 R/Type/Annot/A 28138 0 R/Subtype/Link/Rect[375 199 389 208]/Border[0 0 0]/H/N>> endobj 27991 0 obj <>/P 9099 0 R/Type/Annot/A 28131 0 R/Subtype/Link/Rect[391 199 405 208]/Border[0 0 0]/H/N>> endobj 27992 0 obj <>/P 9099 0 R/Type/Annot/A 28126 0 R/Subtype/Link/Rect[407 199 421 208]/Border[0 0 0]/H/N>> endobj 27993 0 obj <>/P 9099 0 R/Type/Annot/A 28120 0 R/Subtype/Link/Rect[423 199 439 208]/Border[0 0 0]/H/N>> endobj 27994 0 obj <>/P 9099 0 R/Type/Annot/A 37867 0 R/Subtype/Link/Rect[440 199 452 208]/Border[0 0 0]/H/N>> endobj 27995 0 obj <>/P 9099 0 R/Type/Annot/A 28108 0 R/Subtype/Link/Rect[398 189 410 198]/Border[0 0 0]/H/N>> endobj 27996 0 obj <>/P 9099 0 R/Type/Annot/A 28005 0 R/Subtype/Link/Rect[394 179 411 188]/Border[0 0 0]/H/N>> endobj 27997 0 obj <>/P 9099 0 R/Type/Annot/A 28099 0 R/Subtype/Link/Rect[412 179 424 188]/Border[0 0 0]/H/N>> endobj 27998 0 obj <>/P 9099 0 R/Type/Annot/A 28095 0 R/Subtype/Link/Rect[385 169 397 178]/Border[0 0 0]/H/N>> endobj 27999 0 obj <>/P 9099 0 R/Type/Annot/A 28090 0 R/Subtype/Link/Rect[387 159 399 168]/Border[0 0 0]/H/N>> endobj 28000 0 obj <>/P 9099 0 R/Type/Annot/A 28086 0 R/Subtype/Link/Rect[393 149 405 158]/Border[0 0 0]/H/N>> endobj 28001 0 obj <>/P 9099 0 R/Type/Annot/A 28082 0 R/Subtype/Link/Rect[379 658 397 667]/Border[0 0 0]/H/N>> endobj 28002 0 obj <>/P 9099 0 R/Type/Annot/A 28079 0 R/Subtype/Link/Rect[382 648 401 657]/Border[0 0 0]/H/N>> endobj 28003 0 obj <> endobj 28004 0 obj <> endobj 28005 0 obj <> endobj 28006 0 obj <> endobj 28007 0 obj <> endobj 28008 0 obj <> endobj 28009 0 obj <> endobj 28010 0 obj <> endobj 28011 0 obj <> endobj 28012 0 obj <> endobj 28013 0 obj <> endobj 28014 0 obj <> endobj 28015 0 obj <> endobj 28016 0 obj <> endobj 28017 0 obj <> endobj 28018 0 obj <> endobj 28019 0 obj <> endobj 28020 0 obj <> endobj 28021 0 obj <> endobj 28022 0 obj <> endobj 28023 0 obj <> endobj 28024 0 obj <> endobj 28025 0 obj <> endobj 28026 0 obj <> endobj 28027 0 obj <> endobj 28028 0 obj <> endobj 28029 0 obj <> endobj 28030 0 obj <> endobj 28031 0 obj <> endobj 28032 0 obj <> endobj 28033 0 obj <> endobj 28034 0 obj <> endobj 28035 0 obj <> endobj 28036 0 obj <> endobj 28037 0 obj <> endobj 28038 0 obj <> endobj 28039 0 obj <> endobj 28040 0 obj <> endobj 28041 0 obj <> endobj 28042 0 obj <> endobj 28043 0 obj <> endobj 28044 0 obj <> endobj 28045 0 obj <> endobj 28046 0 obj <> endobj 28047 0 obj <> endobj 28048 0 obj <> endobj 28049 0 obj <> endobj 28050 0 obj <> endobj 28051 0 obj <> endobj 28052 0 obj <> endobj 28053 0 obj <> endobj 28054 0 obj <> endobj 28055 0 obj <> endobj 28056 0 obj <> endobj 28057 0 obj <> endobj 28058 0 obj <> endobj 28059 0 obj <> endobj 28060 0 obj <> endobj 28061 0 obj <> endobj 28062 0 obj <> endobj 28063 0 obj <> endobj 28064 0 obj <> endobj 28065 0 obj <> endobj 28066 0 obj <> endobj 28067 0 obj <> endobj 28068 0 obj <> endobj 28069 0 obj <> endobj 28070 0 obj <> endobj 28071 0 obj <> endobj 28072 0 obj <> endobj 28073 0 obj <> endobj 28074 0 obj <> endobj 28075 0 obj <> endobj 28076 0 obj <> endobj 28077 0 obj <> endobj 28078 0 obj <> endobj 28079 0 obj <> endobj 28080 0 obj <> endobj 28081 0 obj <> endobj 28082 0 obj <> endobj 28083 0 obj <> endobj 28084 0 obj <> endobj 28085 0 obj <> endobj 28086 0 obj <> endobj 28087 0 obj <> endobj 28088 0 obj <> endobj 28089 0 obj <> endobj 28090 0 obj <> endobj 28091 0 obj <> endobj 28092 0 obj <> endobj 28093 0 obj <> endobj 28094 0 obj <> endobj 28095 0 obj <> endobj 28096 0 obj <> endobj 28097 0 obj <> endobj 28098 0 obj <> endobj 28099 0 obj <> endobj 28100 0 obj <> endobj 28101 0 obj <> endobj 28102 0 obj <> endobj 28103 0 obj <> endobj 28104 0 obj <> endobj 28105 0 obj <> endobj 28106 0 obj <> endobj 28107 0 obj <> endobj 28108 0 obj <> endobj 28109 0 obj <> endobj 28110 0 obj <> endobj 28111 0 obj <> endobj 28112 0 obj <> endobj 28113 0 obj <> endobj 28114 0 obj <> endobj 28115 0 obj <> endobj 28116 0 obj <> endobj 28117 0 obj <> endobj 28118 0 obj <> endobj 28119 0 obj <> endobj 28120 0 obj <> endobj 28121 0 obj <> endobj 28122 0 obj <> endobj 28123 0 obj <> endobj 28124 0 obj <> endobj 28125 0 obj <> endobj 28126 0 obj <> endobj 28127 0 obj <> endobj 28128 0 obj <> endobj 28129 0 obj <> endobj 28130 0 obj <> endobj 28131 0 obj <> endobj 28132 0 obj <> endobj 28133 0 obj <> endobj 28134 0 obj <> endobj 28135 0 obj <> endobj 28136 0 obj <> endobj 28137 0 obj <> endobj 28138 0 obj <> endobj 28139 0 obj <> endobj 28140 0 obj <> endobj 28141 0 obj <> endobj 28142 0 obj <> endobj 28143 0 obj <> endobj 28144 0 obj <> endobj 28145 0 obj <> endobj 28146 0 obj <> endobj 28147 0 obj <> endobj 28148 0 obj <> endobj 28149 0 obj <> endobj 28150 0 obj <> endobj 28151 0 obj <> endobj 28152 0 obj <> endobj 28153 0 obj <> endobj 28154 0 obj <> endobj 28155 0 obj <> endobj 28156 0 obj <> endobj 28157 0 obj <> endobj 28158 0 obj <> endobj 28159 0 obj <> endobj 28160 0 obj <> endobj 28161 0 obj <> endobj 28162 0 obj <> endobj 28163 0 obj <> endobj 28164 0 obj <> endobj 28165 0 obj <> endobj 28166 0 obj <> endobj 28167 0 obj <> endobj 28168 0 obj <> endobj 28169 0 obj <> endobj 28170 0 obj <> endobj 28171 0 obj <> endobj 28172 0 obj <> endobj 28173 0 obj <> endobj 28174 0 obj <> endobj 28175 0 obj <> endobj 28176 0 obj <> endobj 28177 0 obj <> endobj 28178 0 obj <> endobj 28179 0 obj <> endobj 28180 0 obj <> endobj 28181 0 obj <> endobj 28182 0 obj <> endobj 28183 0 obj <> endobj 28184 0 obj <> endobj 28185 0 obj <> endobj 28186 0 obj <> endobj 28187 0 obj <> endobj 28188 0 obj <> endobj 28189 0 obj <> endobj 28190 0 obj <> endobj 28191 0 obj <> endobj 28192 0 obj <> endobj 28193 0 obj <> endobj 28194 0 obj <> endobj 28195 0 obj <> endobj 28196 0 obj <> endobj 28197 0 obj <> endobj 28198 0 obj <> endobj 28199 0 obj <> endobj 28200 0 obj <> endobj 28201 0 obj <> endobj 28202 0 obj <> endobj 28203 0 obj <> endobj 28204 0 obj <> endobj 28205 0 obj <> endobj 28206 0 obj <> endobj 28207 0 obj <> endobj 28208 0 obj <> endobj 28209 0 obj <> endobj 28210 0 obj <> endobj 28211 0 obj <> endobj 28212 0 obj <> endobj 28213 0 obj <> endobj 28214 0 obj <> endobj 28215 0 obj <> endobj 28216 0 obj <> endobj 28217 0 obj <> endobj 28218 0 obj <> endobj 28219 0 obj <> endobj 28220 0 obj <> endobj 28221 0 obj <> endobj 28222 0 obj <> endobj 28223 0 obj <> endobj 28224 0 obj <> endobj 28225 0 obj <> endobj 28226 0 obj <> endobj 28227 0 obj <> endobj 28228 0 obj <> endobj 28229 0 obj <> endobj 28230 0 obj <> endobj 28231 0 obj <> endobj 28232 0 obj <> endobj 28233 0 obj <> endobj 28234 0 obj <> endobj 28235 0 obj <> endobj 28236 0 obj <> endobj 28237 0 obj <> endobj 28238 0 obj <> endobj 28239 0 obj <> endobj 28240 0 obj <> endobj 28241 0 obj <> endobj 28242 0 obj <> endobj 28243 0 obj <> endobj 28244 0 obj <> endobj 28245 0 obj <> endobj 28246 0 obj <> endobj 28247 0 obj <> endobj 28248 0 obj <> endobj 28249 0 obj <> endobj 28250 0 obj <> endobj 28251 0 obj <> endobj 28252 0 obj <> endobj 28253 0 obj <> endobj 28254 0 obj <> endobj 28255 0 obj <> endobj 28256 0 obj <> endobj 28257 0 obj <> endobj 28258 0 obj <> endobj 28259 0 obj <> endobj 28260 0 obj <> endobj 28261 0 obj <> endobj 28262 0 obj <> endobj 28263 0 obj <> endobj 28264 0 obj <> endobj 28265 0 obj <> endobj 28266 0 obj <> endobj 28267 0 obj <> endobj 28268 0 obj <> endobj 28269 0 obj <> endobj 28270 0 obj <> endobj 28271 0 obj <> endobj 28272 0 obj <> endobj 28273 0 obj <> endobj 28274 0 obj <> endobj 28275 0 obj <> endobj 28276 0 obj <> endobj 28277 0 obj <> endobj 28278 0 obj <> endobj 28279 0 obj <> endobj 28280 0 obj <> endobj 28281 0 obj <> endobj 28282 0 obj <> endobj 28283 0 obj <> endobj 28284 0 obj <> endobj 28285 0 obj <> endobj 28286 0 obj <> endobj 28287 0 obj <> endobj 28288 0 obj <> endobj 28289 0 obj <> endobj 28290 0 obj <> endobj 28291 0 obj <> endobj 28292 0 obj <> endobj 28293 0 obj <> endobj 28294 0 obj <> endobj 28295 0 obj <> endobj 28296 0 obj <> endobj 28297 0 obj <> endobj 28298 0 obj <> endobj 28299 0 obj <> endobj 28300 0 obj <> endobj 28301 0 obj <> endobj 28302 0 obj <> endobj 28303 0 obj <> endobj 28304 0 obj <> endobj 28305 0 obj <> endobj 28306 0 obj <> endobj 28307 0 obj <> endobj 28308 0 obj <> endobj 28309 0 obj <> endobj 28310 0 obj <> endobj 28311 0 obj <> endobj 28312 0 obj <> endobj 28313 0 obj <> endobj 28314 0 obj <> endobj 28315 0 obj <> endobj 28316 0 obj <> endobj 28317 0 obj <> endobj 28318 0 obj <> endobj 28319 0 obj <> endobj 28320 0 obj <> endobj 28321 0 obj <> endobj 28322 0 obj <> endobj 28323 0 obj <> endobj 28324 0 obj <> endobj 28325 0 obj <> endobj 28326 0 obj <> endobj 28327 0 obj <> endobj 28328 0 obj <> endobj 28329 0 obj <> endobj 28330 0 obj <> endobj 28331 0 obj <> endobj 28332 0 obj <> endobj 28333 0 obj <> endobj 28334 0 obj <> endobj 28335 0 obj <> endobj 28336 0 obj <> endobj 28337 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28338 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28339 0 obj <> endobj 28340 0 obj <> endobj 28341 0 obj <> endobj 28342 0 obj <> endobj 28343 0 obj <> endobj 28344 0 obj <> endobj 28345 0 obj <> endobj 28346 0 obj <> endobj 28347 0 obj <> endobj 28348 0 obj <> endobj 28349 0 obj <> endobj 28350 0 obj <> endobj 28351 0 obj <> endobj 28352 0 obj <> endobj 28353 0 obj <> endobj 28354 0 obj <> endobj 28355 0 obj <> stream q /X1 Do Q q endstream endobj 28356 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28357 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28358 0 obj <> stream H{o秘B*1&@"fش(2-+1)GuKVt) |6WϞ}J?"MWU(ά3U:UI։Q^/vi~Y&9Ԫu<ʼwʨ2)ERU2z<-T$gzo?!\yvDfVnWEECi32UQ%bz]5~HNT67\w%zAFKރś=K/%FK>ޗ,K﫷&y^%'UeQeRO:SY(uU5쏛vu}{QmGBw'MW߃,/qE}ikޞKcutvի澩*K.&zۮUO%JDHֿgc2I(ӊ\`^g,78ܭWjb{i1_ѭ[ys8ct1qutl?uh1թ)q.bFr9VNi."^m\ߪn/b_SkXGSYMo~13Ư>yrorfΏOJKu8؋,DMusEaqܚg nƔx}hlΆ^moV}ok*swtLiMG1ibcEUo(XBim܉vusi= emܓqԞMwEdlݸuhWZ_qAhK5|Xv "ɽRNmUsxoXEQw@|Wm*I57)9ݏ!3ɤ_UJxy兗^^xW^Axe+^ʄWr\x^*W JU{Tzq(ŵHe^FxYe^kD/{ z5QKނs(%zoAF\# x[{D=׈^\=׈^kD/{z5QKށs(%z@Fw\# x;{D=׈^kDI/E kD/{z5QKރs(%zAF\# x{{D==׈^kD/z5"z5W˲m|X^%'yQeR rl<zijxf}C{zUC~vZNGoղUN_?*pP\gijUS<ͪMOtvb](Ogv|mS}ÇWΡ#ufwul9#]ϫ7_Ґ>+g5ݲ_ m/GOB׫9yoQW;6E`ɏO-f~|Jfq[P% _mUݨUݼ3=\䤪XǓc3ٵcp(>^_7Z}38sy lm߸uj3~ax^h;%93qW 3S3U\G1<=3kp뗑3_ʘA»a6GKqt0qtHА{[҆C:4=wܝ9MEt\`] w1Ea0J#dnmJ^sEUk*E #S3s΢?%tK_ vo‚ib яخhen-ZrY8Q$ (\"!],#pp]ym 1ٟtC1<~: |U)DJ *1߸?VG0YXendstream endobj 28359 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28360 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28361 0 obj <> endobj 28362 0 obj <> endobj 28363 0 obj <> endobj 28364 0 obj <> endobj 28365 0 obj <> endobj 28366 0 obj <> endobj 28367 0 obj <> endobj 28368 0 obj <> stream q /X1 Do Q q endstream endobj 28369 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28370 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28371 0 obj <> stream HWko۸_/PVz.hfxѽHBi[]KJr,"I/a u83$/۞ooX~og /RĂ% "Z}fYɼOz~ltߖkKݭ`{.d-V^ Y2%aw/]Qs/GYB1m{~zx4;״>4uYP8aȏ#o^4'~0`{v%dKe2D#)V^̀we\Nfqx(!seaȊsWKꅣ^ꅣ^ꥣ^ꥣ^ꥣ^ꕣ^ꕣ>"GP9#B}䨏 >&ǎP8B}O>%ԧP:3B}g9aZDZTG] + ,S,Ǣ^/1+/-Pbq-*ov}]"8ىy{.^(I-,{o^!x-L"n2u@BXUan}}s섳@&8EBE0,Ͷ͚UfE^Kf{7C*\12 ~X3bd<|-*/k| 8 VN7.;-^נwh›u FMg ǫ^霪S,7;qfNkty.YO~٥!y) YPuJ$fc]}{SAv:Ɇȿk13-Pp>|{c5@}A *LJ qv/q+^UMv/X_D 3'%4y qLBnpaˀUptWXSA<#_ %B%º1Lٜ5!=g5ք,{|Nr?ssSvþ=JEꐛ}L3'lnZDj(C_xnUȿǢ^+{XsW"dz/=apq+̠m@$Iq8QD@'iOB᭑wl0ȜyԗÉy )AEYf~۵ЍWsվ0I kC&fWcv̀A ۍ!w-6ynSؔ:;)S]g N8g N6Eq:@/-$L1OjTd'fRI3wHeawۼyx c7f_O@Qkv)D9A0RӞ٩eŽ(LH!0>nF5lOxgd]͡P%'6.x!3̭lGcRWy ˌ@}8IN)ǏM0 tz] XبPtq;~kH:bw^m-@}A,B0Ȳ>,i{But6p~|Ŗ;9},f7HִL]tTsX,czBa9;vyQV-"Jq~ =a^ġ{e}$ }Rn]5%)3ADu)fxE;iJ gLf'?r׬#mgȕVZԟ~=Hс:vҏqD腡9ȍff)hUo^M|4{CU߃=11"]<64iVKg:&:SK2%"e<hD9R^hZwQ8 i"ͪaB^Vռ8 cw)jƚ!6Sr{r"t1HY\:،6Xĸ7'6-<3a9xth]YU%L`򕁹m.YSe1F훒6 7O)*zDྛmuޮ٧_~G=qs;WEǛ|\[Rg~߲5J6y-+nSe dE!m|aK2ENcWl;;b<4=`;X632%#-}r^wsF Mhz$(V*QMUG V:kbƻ'poUg |8ߊ0JGU,ϧ S_h*:)E"p 0#N3 ȯf,1#1HBA/5m̗̌S8&άnotCh"#.OY=w`u; F L%}"X5R7MI!+Ţ\d~]303vB9%.d`9V?  &F gi۰"{r7y$}.Pbv,MLE +hy:[sČ_,ͯ?Hendstream endobj 28372 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28373 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28374 0 obj <> stream q /X1 Do Q q endstream endobj 28375 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28376 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28377 0 obj <> stream HWn8}}[-^tg0f2d؇8ݴ[.ڎxZ&aN&㏛䧟޽9_DEB% Yɓ"IȠ.JSDIM͟Y7Pjh#Ocnm/N(>FI$|"-ɶ>wj7}GnXy®>o[ ͋QK?\mDi,HQr?LQ&YFH([Y'_.5ka_#0BhJ~O_oI$9*Oim$7&dcd<6 m4Dy6ϝҐoCس=Cس=G=G=G@؋@؋}> g,`#}¾"`_ 싀}/%¾ K K}YַCT4*dַiT޷iT޷ Qo(}Zַi>P-CTַi>P-CT4 a!mBT4 a!mT6@!mT6Bej}[qDMB Pj}F}F}6Bj}F!rD Pj}F!rDMj9Z(DMj9ZߦQ@QoZߦQ@Qo(}Zַ@T4*dַiT޷iT޷ Qo(}Zַi>P@Tַi>P@T4 aV mBT4 aV mT+6@!mT+6Bj}[ej}F}6 6 DJ)H W]F-JQ%'$6ȶW/Q2#b`` ܀3LUu&)-= \P&7,Y«g5T ̑] QOW6] m%}+9.)B/V"LAlC?*z9(@{- 2p><,\aPOn^"~f'5i\:L8Z5:fLp?r Zr\03Ӂ4.aX 96˒2+y1ծֳvP^ôm_:(ZvFnsFkbП>]HmF嶸Co")FF\z6 ~hŕ;r_yqۼ?T-4rrb:y?#s:aGSwՅܤ._Ju&g}@/dEg i d+.>).0t^FV#}5:綃o٫BSfhm#Q;3iZC߹awjεC̯''0eEZ͞~s5DJ zג7ͫ P}kWsu rO_vo&G56cs93M$rMSog.s`z{_p4j)yi2+irV!Y%ԿCW,Xz2zm&jz nRϊY=n(pUv~'pEQdtg Km8pBߢy0 c9DօzO9MP&Ta {_{]UGdn;YUg;/OwWT-b@LR.Wk}(jʮމEhE[h%h+[p| ꐳӜe?7W(!ue5r]zi3.#QzS*=Qu;ɠM9Kt䙶yNO=;;L3$Dsx*>rL!gKF `Bm= }E^@ J&wö-SKQ?2A3(vj(Y#vbyF_4-yd[q3iaq9`cS_}Y|HS1E<*m5C0:k46\bt6bUyTFM)cx&%S5Ke?bt Fbi ;:/AHF$k?ef&а_[ Jǭ9J:iI EVi`x>Je;SwI8`xr{M|;=v+jׅ7$l$,+1 ~fgGDˇ vӸEx=iՕw}zoojWp.Dt"|A랾owL+k7(;G(eAVʑGI(u]zoRy[gn/1W3m1vΓ95M5Oo4-v545v&o?\TEUK @BۺWS2,Z,I*.(PR:\4x>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28379 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28380 0 obj <> endobj 28381 0 obj <> endobj 28382 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28383 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28384 0 obj <> stream q /X1 Do Q q endstream endobj 28385 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28386 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28387 0 obj <> stream HWۮ۶}WUI/h"ӱR[Jl9_fHbrEk8|Os~xo?,Ǘ?ʾd\PeQ*eE~>cnj]=i}pNvPmC>Q TEOT+>@}"'jcj(BQDPmC>Q TE6!`V}"'jc)jcRPjcRQ)(BQDPmC>Q$TE6!`V}"'jc>DJBQDPm؇(}ZI6!`V}L}J>@}J>Dc>D*BQDPm؇(}ZE6!`V}"TEOT>D*BPjcj؇(}ZE62M6!*eE6!*e71F [){͞yg9?|WyY|{n^ ͹?/*x=?۾Xxmefa)cJ 3FET(LE,˂WUI(. K%= ^l0C3zkCی׾]gGpPW~B [o[2 plvxDoqє|rsmGH$c#^sв/ mǮ J-fva3ovWtgJ왪a39]fdSsLE3$ؙ!Ó} 2t~"vdQ rjUɅ- Rf[T,~ m8L6_Rh%%u!w~s|lZB68|hy (Xٛ!^D!XM`@M>Ma/:÷1O4=-X tҶrqppڏ1NͤXmi,A7vGU8&rX]ߍ]sߍEWxO8̗"iɝR(+~~KVM#ޮk,=F+Hd'l0}Ab`8Pu, S3rg5*&ԼE^B`}۹Uc?\cÝWsS\&W(`%uHI5O{!Ŋi=!\ &Z>$pC*j-OS<,i@Z˔.ZG[ :л,Z9$Y`jwgCV1;v=݌$}`J;I򚡈o=g4CIl9 (j=+}_]x }>gd <{ww:W+ J 2?<6ycp{.=uy?ۣ qf*0.=͝n-u^h+yq;; DM/Q(Ӡ0A2/X}9ʗ%8rYC7gPRz 㫟B Fh k꼇 6`HLVow=Qɗ;Ԫ"a&J|sV~vswPZZUKHuKJߜkY!\ͥNǣ+Xn~|8;ՑCc+1Ӕ]u'ٮVD(uEQUYj=Q9%T&ĒiU=Q2:~J䔰hL ,p,~`<f<4bAϐ/y- ^BF/]ƮҶ4ZBZ0QWw>4_'{$ȢZNM4y;#N\oAG/ M1C>==_/6h] Wjņߟ6>_&^VF)jJp]r.K2%,.kM@pm__߹?]W~GP $N .ۂƯVhېe!Odv6XߤF@]aR%|r* +JDwNBwgYb&;5fza|GzK7oOm QuC DJGY53tzPCwa7p9$uW|r,S/ճoϟ]i^@ Dh'>z]֫]AߟbKiCoZH m}$ 흏E:vlzC0fOѣݙjPO|T\I)N E.N6]4LisY|)ܮUIkPd~rI'ptj< }u狽XwPcٝ.Q$7"\N]Ap,IҺ /w[ng"^C|w#,{&6=YO0"SI{lq]3J'ϟG/[T/j3ǧɿ4ҫn}\~+\1V}|/c,^XX!𽌱 C{c`)߇2*ReU|eU%c1V1V1V1V1V1V1V1V1V}|/c,#𽌱J2eԱ0>bF  5v9,s}_nʹ]Q|AE6Xxܯ/h͒e^]_}6.8z/sVjKf]Mojd>THM^&6sQ5\5! <}Nf=֛/<0ixf|su{B׵wvǿg(΄fR]7bw/[X鿾0OK59|Z_ednb.4α\'.Hb>/8`*Ҳb?/K*%8mky=¬s1qqQd}?ttZ%I b*>g}yV>%y hpueQt#'O1_1wnoyꉳ b=:lmkg@y%i^Z R>wr- ](>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28389 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28390 0 obj <> stream q /X1 Do Q q endstream endobj 28391 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28392 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28393 0 obj <> stream HWko8_~DSnmwCSM'jm)cv~^e:ɢH-9Ňa/^\ Wo^GFB"gd*N$K6+#n# ]|eS|m/v+/߮$Wb!(&b0g9ˡO-vѧٕ]5EU4|??/AjS5mkk_Icyz(!|'c^."3|v0"Kg}ٚEJbi#]`]E<# Hsp8K02 k"1`IB KB +B +B +B kBkBB B B '$P@}JO)> ԧ4P@}F9> -v$R1 c XDj1Xz9Vc"R1"Dj1X H-ƀEcER+ḇAj%ZH-PVŘcJ"Z9>H$R1"Dj1Z9Vc"R1 c̱BZ9>H"R1"UDj1,"s,B}ZEcERb XDj1X H-PVḇAjZ9>H"R]ḇBZ9VcḇAj5Z9>H&R1`Řcj"s,B}ZMc"R1"Dj1X H-ƀEcERḇAj5Z"CcḇBsP}yjZD E1H K-vѧ?JVے]+lff.٦ [-Kvc{`7?(o`E0Jeaٶ|֤wġӼݠXj{X[Pu^-W͗JgE rtjbF1oqV|2i,'S2A=£Zf<)1P,N pg˕I%2j"z ZcÝHΐmsؗϬ+}Cg; 9uc~:1si*O1ҳ$U[C2`}X$dD8$H"Ԑd0'pD2w`qg$ۗaeSTlXsgE-uGjsqhbnb\dbmaZ^U`qN,lҍoejcWTo;[6q;Gd%l˚` *P xo=>Muhf OX͕#Mhl? zP}cop$k,c9<׶l{ܝPQP#?!^yLȭ^c eҸ 8^L92C&r@1rj~\{Zk&&ŬۂB,=Hck'0`#{~j//(5/﫺h ]' ̞ģ>m gG~'o ƗݺoBwT`w+a:z{#Z}]_vh~p>= <ʣ?OxZwSW1W ⟸ˍuy{wTo[欂gqp˥KO,״(-BRgJiX-?4Z\[,ըc[f ll}XT7x(;|vnNǕPz,t1)o_{;(:gp<jad>ZApg{*qѝY?zo].mNf{px%`Lnvpo&(ܠ'OmKUpjpR'nmiwǓ(% n xXvRPUa9sܵ&&NPwmQݿp_d !7."/I Hۗ h H Q  /Zo)yM| ߛcwlpΆi0SE l:^C,[^=1yVsbVn< 'V +BaLhM;֝m]}iD*c!SCX7a!8 f7uqXY+5/( -_s~|])?fa4 G% l>\3NUs^" {ڳű ֬)K|FhOmN;lK] ǴOZ'QZmO? "yᬠx8X;.- 5zL/*WfqX' {]Ab'*fE= |F)X%!(qq)͡c}lNS45ǬBM* #΢6$ͬjȚ֢u5.0 F9HF3M%Xx McöN`Wߴp{z{ɷ  Lfh_{wU .Ʋ2Xrc\`匕 gB`UJU2V)JgQ ]E5p)K ,XZ`i^ ˽rO5t ,{-jX,Z=%X{K`k!TCbB.roS ]E5p ˽rO5t ,{#jX,F=%X{K`!TCb7B.roS ]˽rO5tq%jX,V=%X{K`[!TCbB.roS ] ˽rO5t ,{+jX,N=YT{ʴ,Kg~W<9_v=ڟ;;vzv*lVcW5rYXgR Zydb;Y.~*^%wMMZѼNeMnq^Umgl7PeUQ#52L_tEFRylje*WcN6)V6wee,'c9+X9c+g,/(woOuTcW__dv1 FnK @JǾv昬}Ǿz5f,53_7dnendstream endobj 28394 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28395 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28396 0 obj <> endobj 28397 0 obj <> endobj 28398 0 obj <> endobj 28399 0 obj <> endobj 28400 0 obj <> stream q /X1 Do Q q endstream endobj 28401 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28402 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28403 0 obj <> stream H}oHX* _QUk4q%\lҤS$zymjċ'G"/__eJj+\bdE鴨(P| E9&&3;,'eOʇʃtzJ %z MBj8LDo\γah?.l}{ eh͒oUwX#ceQ'wވ4HVJ}n/A}8k>NP27Z\\b$DR;&}0 ΃a&LaSt;)PػR<րҌ{Mkƽ& qo{ø7Ľe[2-qw{G;ƽ##}DG1q3c>f}¸Oq)>%S=ɬbBibS=րbR5OQXu5bS{Zͤkbܓj&XI-<Ÿ'Lj)=IfR5bS{Zͤkbܓj&XI-<Ÿ'Lj)=IfRi`bS=րbR5OQXu5bS{Zäkbܓ&XI-<Ÿ'5Lj)=IaR5bS{Zäkbܓ&XI-<Ÿ'5Lj)=IaRi`bS=րbR5OQXu5bS{ZˤkbܓZ&XI-<Ÿ'Lj)=IeR5bS{ZˤkbܓZ&XI-<Ÿ'Lj)=IeRibS=րbR5OQXu4MgpNq.M,#š47 ZlZ{7¥yMd:_6J+" M̡YoK<~ʪJA^^귞\E~)A^ݓgϺFu۴2RM^2r.h_ߴK"{]vo X94KX:>_6\-xv. ]ˎ8&z5'xDV?$̶fQy||Sd'Ţ:OlA^rVl|"ns̲ö tcƽ'?&QZG݄Zj]J:o: e~qkx*݉_zN6VFG~45<~mkb®6ŠbVg#f kxJі)lf +xpGѯLa;Fh o?'SX- 8 IDݣ9ݷ"W|endstream endobj 28404 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28405 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28406 0 obj <> endobj 28407 0 obj <> endobj 28408 0 obj <> endobj 28409 0 obj <> endobj 28410 0 obj <> endobj 28411 0 obj <> endobj 28412 0 obj <> stream q /X1 Do Q q endstream endobj 28413 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28414 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28415 0 obj <> stream HW]oܺ}ׯCօMS$^\ E{ۢ" weiJr6Hjع-X!y8C/^#޼{oDboY+J'U#,GՔcz5]_/גut?+]T$1Y&rnU L7̡cxzhq@.rمL/O3)eͮ|vbBy \⩋nZHq,7g? eQR.Xm";q4uT$>1 @QtPq<s㐼$ˀ$ˀ"ث"ث"ث&뀽&}BO > '$`Ӏ}JO> g,`쳀}N9>"`_Ƅh}_IBQ!{(BQ!{߇Z߇(}ZI!`V}"TET+ >DJBPj}j%Z߇(}ZIPC>P$TET+ 6Rj}BPj}BQ!{(BQ@PC>P"TE!`V}"Uj}>D*BQ@PZ߇(}ZE!`V}m >D}>D}BPj}j5Z߇(}ZMPC>P&TET >@}"Մj}j5Z(BQ@PC>P&T(!T}"T} ( [6z.gb.d ń<yҴ`6ZwBruTzi>>8iqB,_O Dêt"cš8=P2_{!x.9*3r[7f=Z=yD$Vr&jKdʕf]5nv?obe<6XY:c+cQ<J23Pw08v0Ǚ٢auP9vfgor; ;vbͮtߙ;TLju|uZ*$l\X.㱘a49HoI\-W^5[љltՉ*bnM9{.[1'~lL Ht1 Lodlt]e뚦;{Ճ8.n2Kija4VwGGx(exMXvтU߭2M !8ɔ8ڡwtŢ9y?Mj޶9y´S};wY3-NlIhs:OSpՍɷa+8?ӪMo:Q=~F%^5]՚茽36c&|Acs,dzj7_U:]p]GJgz\~3\#vo@7fIaς f8ǝbdL%nH*!"YН#3o<ߨaWqh9#4AKHlGKZltiBq0GA?YˈL2sT #RN;,j%%zO.+ ŮjupuZγcO`õp3mo5В+?\x%25xj xv(rE6# p_$afHN<ɝZ3Br;MN ^YXLN,ҞDYC,9&޼,Myr WO=<ĬyؕW*}q<ǃ_xm5WUO .=3}ٶW8gvvfMixNdn!xDdiOgnܨ=^?[=Pw;t!d n| &pJtns14e0Zm༻ yWǙ< [b-ɒT=X";]q0q=֜6:{®=?S >=WhNE`3lp*xYAMjyQz,ɗ_""IO ;fXPbxBb;~ b/.9xkPl5u[mn464 r.>Ѝ->rŇ X !l *M3<4o"av;t00,Ā}ԋ힩Feq(aNFF} rpN;c!g%"|8c#k} #Q΋ &bfՖ29"tj">.YCW8m.:n}nKym{~Eз^HQAg۱7}d[5d٦H"[\ ͞y(qW*?ben Zr-DD-e,.F+m"3D{$-BFζgw!s%7%C%q7\T*[H1 '[7soHlfwk y[SxJZvZ&p6R|/%cOrي-t u1فkcQ | #&"?b@\MR@)I`w!B`-tĩxFc\vew:V&w{2Yn@!n6:Ŧ;F:,U#D1(~BA+1@ikXnCFOԼ(tMNB2q(ݦVJi.c:Jjhp}FU0Zb YPܢo>"ܑ< 1Rq$0-M[Ʃ1,2z!Ö>gͽ:ruZնXWu`#ܴO4Rvp}#gkt+Efco: ]j~ŻJ&{ y#Kxe]j,Wt|tba׉槊o1f6FU8c27:[/㦋* jy>T(ю!]X[BcH]u\m#L mxXk"ff ԏtv'4ZŅCiff{syOk<ן _=֑a83Vxw(cS-:(kRn NqS!JN_.;?ܺuc1Y S<{fzɕຓL jk΅ 7g7 e|rG9ÀÛ混o`"[\endstream endobj 28416 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28417 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28418 0 obj <> endobj 28419 0 obj <> endobj 28420 0 obj <> endobj 28421 0 obj <> endobj 28422 0 obj <> endobj 28423 0 obj <> endobj 28424 0 obj <> endobj 28425 0 obj <> endobj 28426 0 obj <> stream q /X1 Do Q q endstream endobj 28427 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28428 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28429 0 obj <> stream HWێ|Wt l1fol?ǎ 2kVJFv>Q:٭^o쥞V,s ]([@/YY-9Y~¨oJꧤt{>}.յʢ RY" g9'JNd]ZA8XZKÈ{ZXb7½po{+[ w½p{/{ }W}W}p >5p_ 5p_ }Eg5(-{%h-Lj%sX= cEk h-Lj܋Z%h-Lj܋Z 5K,Z 5#p/Zk@k9X#p/Zk@k9F,^րrlYZKXbrX=Lj%s,@k9F,^ւrXhXbrXh{Z Z˱{Z Z1bcZ1bcEk-h-{%h-Lj%sX= cEkh-Lj܋:Z%h-Lj܋:Z uK,Z u#p/Z@k9X#p/Z@k9F,^ցrlyZKXbrX=Ljܫo* ?TU,wTm"`EZh9倖Zhy偖ZЪV*VZhUZh@ZhEVZZ# k@K - 2@-D =a%@9F,%ro@9֏a,r1b-{rϱ~:g -{ h{9kY{Kjq%roA9F Ah[{ D-=hDZ"c4-{ r1>Ƚ @Kނs %roA9Fch`Z"c40-{r1Ƚ@Kށs@Kށs@Kށs@Kށs@Kށs@KށsRcĒZ#7 1:UNNٳa6j8⎠ TcG ٧uV&,P|aNo_p>vmev ](tomU~ӮiF9m\e|Ul߮dzÉ:ޫ59]?yGPR_oߢ[վ(Kۂ;iAE-ds۰Ixuڎ5WLޘC,'’w9)@ЇڭJ9M.=˓c޻f5Ogǹ$xٮMݬy[|g #(5H=rYSp"x|Ucֺ0WZuSNɻx3/Kjٗl9IVfKr7 e{uyrkNf>TrMvVRMdz] 釼>n\au'ͽOݫղ]B׸?{(~lY'6aڠ%:Я}}XKXh}.J0a\>u!)Y ]L y{2:9\䱠"OfKT!@vkNvM *D2y&TI ޣR Jxݒ&=ӧSzZ}e>\UӎkOgNcFHZ?R_Klci<&K1rqq*d]#U*k{JqP"?19Ædmy,7PdZ AF~v O40̭ṼpA14&mXA${M 0~QiqL/df#%Orar̞boJU18a jU]^˫['a֖pg!gd6bշ75 ?ʶ9Dž=XU(˒8ԍf R@^?rd=ˉgux+F,kM`KG&FNW4!,p,GֲuUkP7p_sunuH 9"r;آM\Wvendstream endobj 28430 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28431 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28432 0 obj <> endobj 28433 0 obj <> endobj 28434 0 obj <> stream q /X1 Do Q q endstream endobj 28435 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28436 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28437 0 obj <> stream HWioX_6@"? a]04e3!xnbRb*I0-kK~{(M*JJb# ^ʨ""T* S5^kCs4c#mzp}s5ܳQ88p4g$[ˎnj #qNP:\@8L dXgAQN91Ő/G1`YCV$wcy -sow{;c1^p{/}$Hp1>bc}ǂO s>'}*OTp2>c3=JKU`R Y=ŀ%b),bZK1d YkZ!KpZkR XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` Vh-Ő%gBk) Z!R Y=ŐS XBk),=kZK1d YkZKh-Ő%guBk),=kZK1` Nh-Ő%guBk),C Nh-VZK1dqZ!{Kh-Ő%gBk),=kZK1` ^h-Ő%gBk),C ^h-ŀ%bܳzC *R Y=ŀ%b),>Yy¿UbF5^YKPf:Vqjƫ`h)Xja8(FË{*~KG*/Aͧ:cj8QߊGy&:jf\.=oaf$܃tg.X/6=t]<:ڴ7%85 ]OK\Nq8?9rrOy*MIzŦTA~U*suϞMjf&Ű=hIF<+&Ñ:pty?aǓ!>WdyX~2G5 u`wO$i( DSDi_}WR놉>3[/us͑:H]˛_4ۯNwNtWQ7'ydϛnx_ |*98L[]1~L>Ԟy<4.KudIdpga_:_۫%6)[+ۇwu ŝl:Rq4RU|̈́x[{"գƇt}fv)\U5Ӫe| u:BRbl!G.}$>)~9;|*u[+oVbϼP4 ÓZ)N7u{Ӻ=۪;OU9]& K#{/_:54rs.mn=Codm^]ϧewCU7twwLzxh^nVݥ~6fA]S/}L*HT*b#e2 4vPu6^gm`/Gfƒ䃉jٰ;)[pv"LwUg{Y33΋rw߼ u2!zc2vv;n|@$5[ۼ0b38Pig;C |L6UݣM뚓u~O|0n;k͏tvݝnm]qf,V#ŤEu0Տ$X75!ՇҒ8}>$PZƶJ+ӿ֊z2`I.# jZ⺅a&q3>zv+gF >˹os3)+Y֯Uͦ~q8TYNOo Pb} ^ۇ>+Wנ:KQ¥endstream endobj 28438 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28439 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28440 0 obj <> endobj 28441 0 obj <> stream q /X1 Do Q q endstream endobj 28442 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28443 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28444 0 obj <> stream HWYo6}ׯphq¶(,-f<8Aжɕd\|Er \1"Gk1,µ,B}ZAcE\+bHµX=ƀEcǘe1,µ,B}ZIcE\+ b Xk1fYȵp-,PVb̲k%ZY>r$\1`Ře#Jµ,B}ZIcDŘe1,µX=,+V1`Ře#*µ,B}ZEc"\1"GUk1fYȵp-ƀEcE\b̲kZp-,PVŘe#*µ;&9ZYVc"\1ˊc̲biUUqwLoV<$o@cE\h\6x&\bCLϥ#H/20S݌SC c(]׶f76];΄YlI(U2+7 t~*ŸVRa6/Ѽev^RzfWf*L%Ãeu;Ćý?oY*4l.]73S4{[vWJtB*QCr c\ agEUqL rBZB  "D^řZ)2N"O 0hA"0Ăsdc%SgU .rQG٪$ͫR1<W] VyI gyaGZۋ [}hBy so )dr(~3avpߛSuWy%Ozmg1t G"ڇo;}nRYPCGN sBݽmSbs;4p;pjPГYbyo&24GM*xEM䝵2%"U"2T{[4G]cw+dY esZ!8Jefvڜeq&.IUŶԒ%󁰕5y ܆{wDc}Wֻ?f!z-$`>|9J r]izB1ǡ6F+R0PG8;8%eOZA kZ?"1 rϱOw]( 'e3%E) E]} (3̶ ޹Eb'*d`.®{3a|фRX.[ 'lS>ƝtfLW"ST>]sx}p^ȘKdJ+V ^E^7Leyۆ_C EQk :閩5بMJS=x߽h<]ecibΜٶ.473gVBL$|cs*ewQ]کzB&Նђ1ISdlZtJ45c޴mwbiL1m3\-Pݰ$$eDRಔ.Gɹ+,%#]b.GɹR\bK]q kzDhLL`V)i2,!*VeQ&j+tFؐ uS_u' ROOf''0 '"rBu%cV\TNt*EK;\g\y yQ u'\T$:4m.spy|Y\|EY0`m[c:o_+nF)3Av lur-zp ,LҭO(ׁ c!8;ʛ1hnd7*3rSִ vp`uH_5RgaS(7>$CVHޝ ;2m+{|;nW 8 ;^a`f\ z5V^iw҉uacs [Uj<em:l,Q]꠩l,Oeq$ƺ,-&yg K>8)y[ƄvLژ -0ȶQ}C/Bz_AN:9\Adhw̜(87C38.Y^ȷ_??}endstream endobj 28445 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28446 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28447 0 obj <> endobj 28448 0 obj <> endobj 28449 0 obj <> endobj 28450 0 obj <> endobj 28451 0 obj <> endobj 28452 0 obj <> endobj 28453 0 obj <> endobj 28454 0 obj <> endobj 28455 0 obj <> endobj 28456 0 obj <> stream q /X1 Do Q q endstream endobj 28457 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28458 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28459 0 obj <> stream HWko8_΢ҫ m:)ċ-"{-]4iKKzgt_֯_\]2~@.SaayXi*࿬  $+Xb_)J5EΚ"X~m<dOA bX$lS+'=M/iR\Nw뻶%xB̺llVm;j;OuSyu jÅXþe6c'v=g^´4W+{A- RqB\gAbNsRđB{$9?ƀ%Bc k1`)B+BkBkBkBBBԇSCO}H=>GScO}L=1>'SO}JO=)$L2Pk1Xzp-W1c Xk1Xzϵp-PVḇkZ9s"\1`Řc=*µs,BZEc"\1"{Uk1Xzϵp-@Řc1,µs,_=W1`Řc=jµs,BZMc"\1"{Մk1Xzϵp-ƀEcE\ ḇk5Zp-PVŘc=jµ+Ccḇ|s,_=ƀEcE\kḇk Zp-PŘc=µZ9s!\1"{5k1,µs,BZCcE\kb Bµs,_=ƀEcǘcQ p(ʼncl^:#Və:-iYS>pI0cҖ7AUr)yFg `CKVR'1ԙps,\;A^6oCWԕh՟\_岏r.V䴠& :"e7cG.Rk&E:wl!{UVaͽmb46V.sَXcMt6*Rl)yʄ /NB8IB&8{*nd )_:T6EY,Gb\x}|dY ,OooD a:t벴UkI;y{u-1 x8lQ] -eۢϴͻ{ ӧ HL1~01R~0&+_<4BfѬeynۖ{(lV g`.axeFxiXŹBƠft("ˠ{rIٷg~zST뛬ݹP~~_/Å"(~dͺ=~=|/2<ѤoĊP\SaTe$g;{n+HkGX̒Lyمq [^X}e7s),줾% ':\O!)v 6B8(|ݺx"*yD[+'DzW{t/P!}-ݭXߚ}$ZTf9^BJ '1љSI3OkW\D.gix \"M SJgCS>I}dA.㩦$)oCYbϸ(t9ˣ 46aYчlx`ݹsKavW_^;\"ҥO5qEEŸ"mZնk1leϛcl9jn'r=6}qhR2\Drfeۊn+,i>_ypKo6`n'pwSlm~ln|eY)((9Nְ1u0w:)l/6w?Rbݖϳe\} .d's峔cɅqgTmNxiqS^-=n0>,0XCwQlʼnIP?ؙǿ'Kr$ٙAOHGz~;u~x1ѣ`撥 79 mCZv2rV~jP,4u 9HsnH"Ut#ZhҨ0\杤ϦO0$A(~jO;.@'nA,Z])Rehv )8o枬E|ͺ"r@Z'C!e,2GHW G~~{ EGf1jBH iik<#6{qr4ddOZUu֮E;&-eªz+uXe>7@Z Nib~>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28461 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28462 0 obj <> endobj 28463 0 obj <> endobj 28464 0 obj <> stream q /X1 Do Q q endstream endobj 28465 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28466 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28467 0 obj <> stream HWnH|W,^x2`pax$*R =4r. P.vWٿ|?<}ĆFC]0y™iL$5$3k&\uw~oۦksӮϯy}HɬXS/Hd&H*SoI´~}uyjxeE_5^>4WxWtuu5~di禞qlnmNZV~^'ǔs{93K20gY$"u,UMby$KNԜ(86$1f$F,k5K`KzVp{;^W=p>Aρ\ρ\ρ\/B/B/R/R/RJJ}T#p:kAi%MhĘKXcv/1fi#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu&Vb%F,Z1K{ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZmZ+1fi#hĘKYڽĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĶIZ+1fi#hĘKY}Lcd|o|ܷ|6Oru~9Ӌdžow"\<]^}Otie OWeza<1)ĐS8r,x=pMc`!r|,Zԣ%}͢EnyFdclyqfӜ@r ʀWohbʠlѪu ;ax g&SA!l47mmnwMo0nᛷ(ݮgp''>cyu{]OCvU0}W-mwY٬Z:uoAt8mS~ B74Q$͏6w^2=ռwdt X dvMϺǩ1cCA|WM3挱q]/F'I8n򱸺3Bc᳽vx(|\EC'Po4G?Rr#ea OaO{4Y>opt߶{Ѐ~mNC}cV,VPZh\i@+WZ*V URi@TZЪV*VTZhEEW,1KkIXhYeUZh9倖ʽʽʽʽʽʽʽʽĈr/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-r/1fi- ^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*9ȽĘ$F,{1Kk4'O_Yj{I^&UN D~?~}6N}9czQ}ozt1i_&6jIendstream endobj 28468 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28469 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28470 0 obj <> endobj 28471 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28472 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28473 0 obj <> endobj 28474 0 obj <> endobj 28475 0 obj <> stream q /X1 Do Q q endstream endobj 28476 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28477 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28478 0 obj <> stream HnF)ZH^x9eD9 ,!)iw,-@Ē~ܳ/NW/4B&? "TZ JχkOB,ɚ.?Zݬb7U1o\a S9U !]x C ȏ!]z@sk]T[e]V9_ OW"?6yKӺGcS[-qBo<-|{s `c?K/:w%$'!kD5rt]DqQv)]xK1ʡW r5Czk^3ڡ7 q CoOw2+Rm)&T.jbRK5rf].=Ťj;ULjf] ZŤjbRK5b*&T.IbRK5t1u1NjZYCV1Rͺz'I-լwRRmi&T.jbRK5rf].=Ťj;Ljf] ZͤjbRK5bj&T.IfRK5t1u1Nj5ZYCV3Rͺz'I-լwRRm&T.jbRK5rf].=Ťj;5Ljf] ZäjbRK5b&T.IaRK5t1u1Nj ZYC0Rͺz'I-լwRkRmLjf].=ŤjSͺ\D$IbOΖa Tt%*!/4K.0U3556UV7YO50:s1BA8܃:[1_L3g.ڕI^/u oˬ('Yu=Sس.q(m13o\l_$|пJ>v{+@1(W~}f0aֳ&k/׋xn*k[VgjB*,_n^b#Fbj۱[eEܩvf~ǕD]7yLzPb{3˺h&g:jH E(nrXlOƜ; ˖R^ tzv|:~Ǥ?K9"(>jeDil8&"(~lKhOލOGH;9gUBv..mWo?m&1ha᝚hyr:xeMWͧpE^h/xfnKBW߇!m7'Bmq[_"%m)*XYq=HĻ{ٜe#/rotMc 9x}ZWocgd|34YWd=:er@{AEj#A`O܉5"wЖ>V|lzf^/ݑQyi<endstream endobj 28479 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28480 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28481 0 obj <> stream q /X1 Do Q q endstream endobj 28482 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28483 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28484 0 obj <> stream HWmoܸ__F$Kڋ giaˍ|R䬃E3<3UC^<[BɫWo^DDLLK2''>CD׈DWf7wsQʪ؛*֤*_>qެ6p%hؓ4#}H7st]/~.v.ޟ_}Y}2b{q?4߭"3?{x_"sr$߀7BɆDZ$1W/stfE"|10*o8(Bg(|}8ž9ž^^^%^%^^^^}OI>EاaS}Y>Cg{{4}6 6@!mmmBT, a#mT6@!mT6Bj}6Bj}E!rD Pj}E!rD͢j9Z߶ZfQ!{(D͢B͢B Pj}E! D͢jZ(D͢jZfQ@QoZfQ@Qo(}Zַ Qo(}ZַY>P@TDT,*dַYT޷YT޷ Qo(}ZַY>PDTַY>PDT, aV"mBT, aV"mT+6@!mT+6Bj}>Rj}E}6 6 Xk- &>zW+IYmՙE$d"go|z\W&o:h%Ky ??MQZvyPy&?Dt @R^#"$%uuƲ4rWܛ/xv\k'p)|۽gE;@Sv<8wC^nׇf߿~*/ qnPÏ"aXQ6'hA! g= iSeSO Ldk!2t 2cugxhʊy*eg,NF6} ĆBiWFOoC~k瀅Nc]e>94S6zZ:mJ$oz(ߋCO%L 7.:wt0%RCF Oj4BBGt[,CGA >mPzv᫩H~n892(𙒎-d5cW._̺04qw@s$1add)=S>6 /nu7hE;?٪о`e6u^`;(H@#FS틺hcعOCvnP5:WJuat,`^:^M>x@̏/eO]v۶_~0aƵg>lYARTQ4TLp }Qts[ۓf5nIIGC兆23p[ŖΡغ_hmJ<BD4 ;Sʓ ŠP!=$N۫ȟflNvfU D@;(TС؉6Y +|@ɻO@#k#]Ysg2aKsٖef;bztM4?ն#D+6 +hhHy;%?Ē@,Z..|}NDUu9\'諲ɫ? [{l-HA]͠O Y.XmCSLR&Ii@)oƮ w۞/-g1lÅM%ĨY/4*M 54ЃJ)mk`*ȡ@|dzoUε-B|GG+XJ>,ןQ*}7=9Siӧon%^_bf6LXlܿ%<Ջj X`9mh|1DIuC uf}ȞŠ>[\K u|ݤZFr&Zc/UL0v#2bܠ$z-1Wgx.` C 8okR`rꪷjQ,屿: n 3 v]սl1m 0Km|[z&PrfG5ڑMyog wiDtq ;VL4Qj)+yU$Ҩ|0 A(چR|ϧAM@2&qo(ֺ6C^SVǙ7Le<6n/‚f=5qM'*o" X";ծz)*qN+TICɓ@鵐Y߷y*r׭4zHicJ:v ]d3{V[J qBc'H٥¹Y2I_cSI.3IA4Gww_y_/IBY8ٴhi$s] 2o\y}Jendstream endobj 28485 0 obj <>/P 487 0 R/Type/Annot/A 28490 0 R/Subtype/Link/Rect[93.6001968 663.229004 222.936005 682.908997]/Border[0 0 0]/H/N>> endobj 28486 0 obj <>/P 487 0 R/Type/Annot/A 28489 0 R/Subtype/Link/Rect[93.6006012 376.229004 222.936005 395.908997]/Border[0 0 0]/H/N>> endobj 28487 0 obj <>/P 487 0 R/Type/Annot/A 28488 0 R/Subtype/Link/Rect[93.6008987 208.628998 222.936996 228.309006]/Border[0 0 0]/H/N>> endobj 28488 0 obj <> endobj 28489 0 obj <> endobj 28490 0 obj <> endobj 28491 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28492 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28493 0 obj <> endobj 28494 0 obj <> endobj 28495 0 obj <> endobj 28496 0 obj <> endobj 28497 0 obj <> endobj 28498 0 obj <> endobj 28499 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28500 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28501 0 obj <> endobj 28502 0 obj <> endobj 28503 0 obj <> endobj 28504 0 obj <> endobj 28505 0 obj <> endobj 28506 0 obj <> endobj 28507 0 obj <> endobj 28508 0 obj <> endobj 28509 0 obj <> endobj 28510 0 obj <> endobj 28511 0 obj <> endobj 28512 0 obj <> endobj 28513 0 obj <> endobj 28514 0 obj <> endobj 28515 0 obj <> endobj 28516 0 obj <> endobj 28517 0 obj <> endobj 28518 0 obj <> endobj 28519 0 obj <> endobj 28520 0 obj <> endobj 28521 0 obj <> endobj 28522 0 obj <> endobj 28523 0 obj <> stream q /X1 Do Q q endstream endobj 28524 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28525 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28526 0 obj <> stream HWkoF_1b )my0I,0(LnW˺lvQ33 9G?WyӗƚO|;q1u}4Yܛ"iͪI~5]beLk|ܷ5/]4UxMNjw3,&T"MSԋଙ3>7<_3]i߳ %flWvfѿù5ST!O}FJߋ*yrTTS A$,};92ޝ%F,{^}Pp>Q}T3>S3>S3>Ss>Ws>W P P PKTKT+R+^uցJlxZ1K@k%,^b%F,Z1 WcpZAk%F,Z1 WcpZAk%F,Z1 WcpZAk%F,Z1 WcpZAk%HhĘKXcv/1fi#hĘܫZ1 W #hĘܫZ1 W #hĘܫZ1 W #hĘܫZ1 W [$Vb%F,Z1K{ VbUk#hĘܫFZ VbUk#hĘܫFZ VbUk#hĘܫFZ VbUk#hĘܫFZ- Vb%F,Z1K{BWvCu! CdT VZQiEV2Li@+WZ9ʕV UBi@TZ%*V*UJjy$,%1>-rJ--r/1>-r/1>-r/1>-r/1>-r/1>-r/1>|-r/1>|-r/1>V-r/1>Vh-1KkI @K>K @K>K@K>K@K>K?}-r/1|Z*^bT#ȽhG{֒hg UZUU4~9Y$䨮q%Ն` >MU)=om7N䦟ۏaIeZժO"nGLY5ݫgg 6Gv:рnkf.GChmƳVW̖Khva=XJ],n7W㛫r/~ˋ'8}wZ>{sϓHim瀙ԛ,0? ڮ7Džv0,oxx^C2D[Jqv o\jw# K.?6Gj7ztDM9L,jOhQKsy0 ify7RĹh=+ܑ54_5f=  xsfz̦efՊ%䇘5ř]SfGi?7聁ѐ7?wyC* 5S]?~ % c@wW|@oi\[>r۵hF(YohB6[ixFc,ivVWMF> f;pYw] Ŋ;_cj3J6F\Wۯ 6h}n }v,nho06e0|u褚/:ݙLNzig m$-)>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28528 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28529 0 obj <> endobj 28530 0 obj <> stream q /X1 Do Q q endstream endobj 28531 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28532 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28533 0 obj <> stream HW]o6}ׯУ0D-E[L݇dP(kֶ,'L}$b̲BZYVcb̲kZY>p \1`Ře µ,B}ZAc"\1"k1fYp-ƀEcE\+b̲kZ#Icb̲BP=ƀEcE\+ b̲k%Zp-,PVŘeJµZY>p$\1"k1,µ,B}ZIcE\+ bl)µP=ƀEcǘe1,µ,B}ZEcE\b Xk1fYp-,PVb̲kZY>p"\1`Ře*µ,B}ZEcHŘe1,µP=,+T_(T¿Yu/R<^n"0\,(m}|\,B MDXbluC_և.^ҤVө-98>lv?c7/ 5v_ʝZWU-,|=zuډ抁bjaD9svmNueA f=U}r} B5c&i`sU+`ZX'ԇӟOv}uΕ-rB&jUztO\8V0=rXfsugpfBR9LA&u烫zB!}bTӰqtum%Lk,W1RsĖiʲ7O`\YuWkv#P09jyzމ1rsuLQ \b&-΋X~HS]pgiIrmCsJ0qS0ax> 0Vyu=Za(Ls\b'sMQYf qjΡ^qSL'b5s)X]~=u7m%&&-[_̛m?V91l]w+e;> 1Ç1b]@:VOB*>_7Wsfӽ76B$3R1Npf7(|e[ ^:zLvrrH1'epZt dBey FPY5}yX]}PU-43*K7U }XՙiVjr?$2L:\W8,̤5 soxfvX0o>TS»fWA cKYx=@7Lq@&s<6mUlFf%& }r^<3 o9@1v+ȝ%fl,~60ͩ۽F"Zix><2e_s w?F+721WxڗOc'pz  ]T$k}z/H 4լOj\ݿ?+^+\@~3kOTppT*|9ѐ)xB( pu=dW_" }&xo-U ].۫M%E3[+V˂¥r4W₭bs\ջv3\]Q:3=MO]g|Z_?z6 ~O^9zcTq>k–4+oyey !4w9 2Ct zVڣ 9{Q6/6>;[xa\]l Gr+mI:)eZ 4|<Ό>lˣSi2_Ss5텘A= Z93aHŌrP1!_ lL(O%D4f\ONv#T}Y:qɧ&x߳5'[nCg==6ҵ׉sj8TNG Ps* =(1 @'+ >[4( .6e8agEb;+o7_!rH1#Ŋ~:hp@Ճqr#)brz7L61!h`69}=_(qN$r3w=b0;ieʂ5GȌ>.8ᕗelb4. [ֵ`xz .O ;}&⦌RCI0Թ_qD j BŜg#s<ZoTD~gΨEj堕g.O>04,tN06sɤ3<̈́K tD86W/)sN,fio|j_"(Gن$n_J[LSw7,lvڧ@ "$&R&b-BfFL; 2-F;?.uR]մ=OFck6U^c7γjDž|l7H =5?0v\қ%(쌾alXLN. ^Vz7wQV,Z'BvIv#x@ͨQ< Ω՗](5NK{yx9N^zTt-h{0Xe6>+#*6'vU<5K8)|+P^3HةkKNw恬||ˇwD`r endstream endobj 28534 0 obj <>/P 814 0 R/Type/Annot/A 28535 0 R/Subtype/Link/Rect[93.6006012 320.028992 222.707993 339.708008]/Border[0 0 0]/H/N>> endobj 28535 0 obj <> endobj 28536 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28537 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28538 0 obj <> stream q /X1 Do Q q endstream endobj 28539 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28540 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28541 0 obj <> stream H|Wmo8_ 2|( l]noE fbɒ+Io"YCf(pޟ^1m{wc?|Y}_34+$Cf]}ΞV$+2}loi˽rw4{V֫53W g!T#IU.{N8A?SpD!}~v] [&?"m: S=ai>oJMr#% )ҾlКGC<1sZ%"`4aE}땜dWHjfBy=nN7TEd$p;L?Dq5¤`3?2CtXgc:]FFJs;wq}9gّ1&e'H5Tlk\~tK p- E֩] i`lO׶\{öIF'Z!\sL)!^%Yg-%a!Be"h|1PH1A2 Ae"O\}iuۦrzSh"e۷[ 5~vV ԉߏ`ٱ1IIӸzZkIٴe~WiB ^Tyj;Ce9kPqf웠,Y3\a #}ĕ UTVFWc϶}&p @US,D֋a[D5IAW5{6?CRS3ΑnpsVH $}\fmAs$PjN,Tk=pi;t3`*f(VHS9gws9 XS'<<֑6ҽ/sԋJ %l"]jKܰfS](03ջEdlu&]Dϔ>́UyU>}q4D)E\DNV AGMq|:Ə';|]ѽG3|0j݇#R0 O7ǧ(n!&]:F݌9"Sp`MSw}Y?! tp(gUT2\͊yMt-=l(K,Z\I1Ki6+ 'sNP}[g I3`H?˪܃! ϔ=[eFUelbOYPn5ѭNn2xu#k+H4ֻд},8+}eU]dS,u*$D ~nܛO`8>p1~秼k%)*vK1!G_=95KHkVĸG%s@/8@>?k(9{ 0)'7j@ bt%}_€D`<O@X%=( 2V"ا r gqzu91*er,v7\Z@ 1-av܆pG2H~yxėnDd{SG*z9En׼ԑ.St#`.S5g .I]j8oT(1\6QW&n_$yT+6iwc 1ŵXn-t+74"AfEԉ9\%:`y`tezzw"R^|}|&Ec@^ЦLa]SX?7]? F^bQezt&ʜr<$ Wt}Vd3!>/P 656 0 R/Type/Annot/A 28547 0 R/Subtype/Link/Rect[130.078995 498.917999 406.118011 673.916016]/Border[0 0 0]/H/N>> endobj 28543 0 obj <>/P 656 0 R/Type/Annot/A 28546 0 R/Subtype/Link/Rect[93.6000977 404.627991 199.356003 424.308014]/Border[0 0 0]/H/N>> endobj 28544 0 obj <>/P 656 0 R/Type/Annot/A 28545 0 R/Subtype/Link/Rect[93.6004028 218.628006 212.617004 238.307999]/Border[0 0 0]/H/N>> endobj 28545 0 obj <> endobj 28546 0 obj <> endobj 28547 0 obj <> endobj 28548 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28549 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28550 0 obj <> stream q /X1 Do Q q endstream endobj 28551 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28552 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28553 0 obj <> stream H|{oV秸 :46 $nnLl-ʡw"HHF:ۚO߽z$ŋ_E#b[>Μ3tuQb#k^Էm~]wͪvtMt{g7*:3T˨MS&O Sb۬[3}dBۦOsIO~|m7ݴ` >}bumFAq4UL=Tv쏋]O761}k>~J̕J.%RRqpTzJ)&^.ev ])pR#J@z{ޫ*J@>)H)H)HHH9H9H9HH_H_%H_%Hfւ*r`j.^jS+5vRcN/5r@z5Lҫu`jF.0RcHց@z5LVj:0RcHցJ] ZVj:0R[ELإK\`j.^jF.0RcHփ@z5LVjz0RcHփJ] ZVjz0R#Z WSJ] ZVj(tz LإK]:Vj0RcH6J] Vj0R#Z WSJ] VjS+5vjjZ WSJm`j.^jS+5vRcN_eYПGUNkeTCbgѲm7o7tQ=4ni}COlU!E<$@"f& !N{}Y^[xZ}GYw(ӫӧW)=.t_V=|m |K&xCΪ(mo̽hA ƗHᗒUb +(V Xb*VXbe)VXb倕+VXbU(V XbUJK4Kj,U, XV`9rz@.RwRc`;{ TX^j,{z/5vKރK]%5rK]zA.RRc`{{ T=X^j,{z/5vKރK]z@.͒@.RRc`{ TX^j,z/5v}K>K]z@.ROA.͒@.*,pJ_Vie/ZFE/ƅ". 2csjcCܰY'dZeKɛ䎾5va۽bAh6qv7^WOzp+cO_kIZxB˲bBqlG}^Ά{q8bm-~m)p>v8~쇤C\GRG&kKW͘u''DwXiAH3.\ا.?sO):'i 7xȖǻ\|6.soIo';nYg5q;ٕ:ll7k]e~[[3|m7Ô;ck 3pV~^vs n;~Z+JRXA`J+UR+S 2+Wr*P *TJrfI]%5rYe*,XTX^j,{z/5vKށK]z@.RwRc`{{KF.{ T=X^j,{z/5vKރK]zA.RRc`{{ TإYR#X^j,z/5v}K>K]z@.RRc.a0 Wy|4mTpCk;WZDÙ^sM8-9W#{{f(ī{ɽ=3ȽBro g@!gjzA/.Q<J<]w,UvRhbJPiqN?rA3([`T4(xS ^,OILߧ QiarC4{୶lWXPq*pUynMN( 0>.cWک88䍅00MYTqIfkNJjݫUMuu 6%*\ A6Y5t];M QAR˰>>g35AٚVpz$yu2-endstream endobj 28554 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 28555 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 28556 0 obj <> endobj 28557 0 obj <> endobj 28558 0 obj <> endobj 28559 0 obj <> endobj 28560 0 obj <> endobj 28561 0 obj <> endobj 28562 0 obj <> endobj 28563 0 obj <> endobj 28564 0 obj <> stream q /X1 Do Q q endstream endobj 28565 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 28566 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 28567 0 obj <> stream HW]o}_GP>$>+o%J6Y+pEQŘ=ywm+~w7B~{RVIES{-7bTJJ?6vWn.WM].vY]Ӯz;g%fH6 ~5a뤯UL! EDwZ*SkPR i?xU28Jax>UQL*1`4UNGcRDܕ*4^5^   --==>>>#>#>>þЬbDKcJ31Di Pji Q%{CTɞŨŰ/Tj5ZZCþPfTKcbՌji Pji Q BQ-!a_V31@11D1 jF4(}ZͨVaTKc*J4=Q-!a_01D1 F4(F4(}ZèŰ/Tkj ZCþPaTKcbTKcb5ji Q BQ-*˨U1@11Di Q%{ZCþPeTKcbji Pji Q BQ-!a_21@11D1 ZF4(}Z˨ŨŰ/Tkj-Z[UQ-!dOcbTKc*JN)Y!ΐ?#}bBT{Wfz5!A:[+{i2mKz?yoT4Vtmn'no)feֹ&fkv*h''Y~ vf kM1@Ot?rDyv1>=8TXNkcTxvߍCT' Vֶ[>0|l~7ƯRl>O8<4UPawӺ۴f*nj0Th"9}2lK^V*[Ǯhrh*ծ+ځPdciPREtUC[[e:P*meWA5bc6+8o9\٦}2i>IO]L] YT-tQB-c59AV|A*cǚάƸ?No@YAj# }MBm;nXlVr1+dݴozmxƱO3R=L?y2ٽl6S>ͮv8&TYLNi>nyԢr<6.k(܄CrX=/@Cfm;sn2ܢG$`& w L}lOA%bVK$G}ƎdiXe/ y^O jIU;NyrJ#k@0ܻ7>:1[SitT=Hlw0hiw mH[b u<M ]IJ]a׳e47݄wq U g1i~?)nGm3]h;L:jmJ@Mci,w]r=|sመpo*N^-}I GdR%gpw%6uGv/m}KWz_taa{ W) ^FfDZ\j{9[lΩDcNuQQ]97QlVmik w `wo{RL@wozd{ӧs\7_? '.LVNo8G-'fk%{/;݇|mܯtwqyi3 4TR=  oRNRyuMkƍX0eC E? Vȩ}ऽGogn.Ԍ GdoF'~9Ikv}a\=>Bu&'}Z1c u8OWUB<DW~u6%TSa/c+7gN'=  ; |B3̇ESJꌁ3y⃐8YϨC[G| 8R!'cޮ26/iZ4qqh_c^=='}i omQPClOh/˗##piK`!Sӳ48K| [Jd.(krfX̽aصf33Omz>x)H(k1#kq|c/:[\-0!= W| 7vZ>9BeWqi[Py}בL1v l:U|퉸,z!jxE.x-$g4RcWşAKa>>fMgOb8S&>Czm{~:$wg_<=$i X-Ա B~CqݥP_d|q(mqY]⺘2z!qD^(OM97pJjsr69ZNJL-.*#J`YJJ4[=UQ8CHY U\;͋qZ6^AJ49F^tT 2l8LX;n!O Ў+o:} 4%^v7Ԯn'wpA:|+gK3; 9tPEx|Ka.FK)ZPaUTe"~>R}C==H/2f(ň\q(zz0|-wK}ܶ$°Y&NkkUsAXח*__9>W0yL):!ؑE7QŇ6 Q.9ݍ?nnާvː \Bf|-K>~Y-έw8i~l= R|qc7 w!)=ZtՖd$CXof*D &]A>o~=_D 0)6~HK&5>Y[`* ^zno6_odH/>wȕbDMA6/zrzȨpޖdX0S ۛ_;2ٸV#)%P=Dn@P#N-A*RAt-VXEZ% Z ͬ`(NXR尣Ua1RB: %TդrABP BW.dvbټSTߥQLqȋW9EZQ8-LKĉ}ȿyc=pߡ? ( λÔY1A?fZcJTEk_㼉{waݬ~v.] UnD[0j]Hqh~a\iD脍~yw:ZuSi?bNel5&[˖"f7 +ēb *nޅLp!wuؼ-冟s9ZF>Zh .ڦ Քe܀|]{~ $,ZW>ʋ(,d/(>/P 8349 0 R/Type/Annot/A 28838 0 R/Subtype/Link/Rect[193 659 205 668]/Border[0 0 0]/H/N>> endobj 28569 0 obj <>/P 8349 0 R/Type/Annot/A 28836 0 R/Subtype/Link/Rect[179 649 191 658]/Border[0 0 0]/H/N>> endobj 28570 0 obj <>/P 8349 0 R/Type/Annot/A 28834 0 R/Subtype/Link/Rect[194 639 206 648]/Border[0 0 0]/H/N>> endobj 28571 0 obj <>/P 8349 0 R/Type/Annot/A 44046 0 R/Subtype/Link/Rect[192 629 202 638]/Border[0 0 0]/H/N>> endobj 28572 0 obj <>/P 8349 0 R/Type/Annot/A 44013 0 R/Subtype/Link/Rect[204 629 218 638]/Border[0 0 0]/H/N>> endobj 28573 0 obj <>/P 8349 0 R/Type/Annot/A 44746 0 R/Subtype/Link/Rect[220 629 237 639]/Border[0 0 0]/H/N>> endobj 28574 0 obj <>/P 8349 0 R/Type/Annot/A 28993 0 R/Subtype/Link/Rect[238 629 252 638]/Border[0 0 0]/H/N>> endobj 28575 0 obj <>/P 8349 0 R/Type/Annot/A 36823 0 R/Subtype/Link/Rect[254 629 266 638]/Border[0 0 0]/H/N>> endobj 28576 0 obj <>/P 8349 0 R/Type/Annot/A 28975 0 R/Subtype/Link/Rect[190 619 198 628]/Border[0 0 0]/H/N>> endobj 28577 0 obj <>/P 8349 0 R/Type/Annot/A 29050 0 R/Subtype/Link/Rect[207 609 221 618]/Border[0 0 0]/H/N>> endobj 28578 0 obj <>/P 8349 0 R/Type/Annot/A 43780 0 R/Subtype/Link/Rect[223 609 235 618]/Border[0 0 0]/H/N>> endobj 28579 0 obj <>/P 8349 0 R/Type/Annot/A 29027 0 R/Subtype/Link/Rect[202 599 219 609]/Border[0 0 0]/H/N>> endobj 28580 0 obj <>/P 8349 0 R/Type/Annot/A 44107 0 R/Subtype/Link/Rect[219 599 233 608]/Border[0 0 0]/H/N>> endobj 28581 0 obj <>/P 8349 0 R/Type/Annot/A 44469 0 R/Subtype/Link/Rect[235 599 252 609]/Border[0 0 0]/H/N>> endobj 28582 0 obj <>/P 8349 0 R/Type/Annot/A 28990 0 R/Subtype/Link/Rect[253 599 267 608]/Border[0 0 0]/H/N>> endobj 28583 0 obj <>/P 8349 0 R/Type/Annot/A 43582 0 R/Subtype/Link/Rect[269 599 283 608]/Border[0 0 0]/H/N>> endobj 28584 0 obj <>/P 8349 0 R/Type/Annot/A 33624 0 R/Subtype/Link/Rect[285 599 299 608]/Border[0 0 0]/H/N>> endobj 28585 0 obj <>/P 8349 0 R/Type/Annot/A 43510 0 R/Subtype/Link/Rect[151 589 165 598]/Border[0 0 0]/H/N>> endobj 28586 0 obj <>/P 8349 0 R/Type/Annot/A 29038 0 R/Subtype/Link/Rect[167 589 179 598]/Border[0 0 0]/H/N>> endobj 28587 0 obj <>/P 8349 0 R/Type/Annot/A 29026 0 R/Subtype/Link/Rect[190 579 202 588]/Border[0 0 0]/H/N>> endobj 28588 0 obj <>/P 8349 0 R/Type/Annot/A 43376 0 R/Subtype/Link/Rect[234 569 242 578]/Border[0 0 0]/H/N>> endobj 28589 0 obj <>/P 8349 0 R/Type/Annot/A 29003 0 R/Subtype/Link/Rect[194 559 208 568]/Border[0 0 0]/H/N>> endobj 28590 0 obj <>/P 8349 0 R/Type/Annot/A 29204 0 R/Subtype/Link/Rect[210 559 224 568]/Border[0 0 0]/H/N>> endobj 28591 0 obj <>/P 8349 0 R/Type/Annot/A 44111 0 R/Subtype/Link/Rect[226 559 240 568]/Border[0 0 0]/H/N>> endobj 28592 0 obj <>/P 8349 0 R/Type/Annot/A 28973 0 R/Subtype/Link/Rect[242 559 258 569]/Border[0 0 0]/H/N>> endobj 28593 0 obj <>/P 8349 0 R/Type/Annot/A 43609 0 R/Subtype/Link/Rect[259 559 273 568]/Border[0 0 0]/H/N>> endobj 28594 0 obj <>/P 8349 0 R/Type/Annot/A 43579 0 R/Subtype/Link/Rect[275 559 289 568]/Border[0 0 0]/H/N>> endobj 28595 0 obj <>/P 8349 0 R/Type/Annot/A 29032 0 R/Subtype/Link/Rect[291 559 303 568]/Border[0 0 0]/H/N>> endobj 28596 0 obj <>/P 8349 0 R/Type/Annot/A 43502 0 R/Subtype/Link/Rect[198 549 212 558]/Border[0 0 0]/H/N>> endobj 28597 0 obj <>/P 8349 0 R/Type/Annot/A 29010 0 R/Subtype/Link/Rect[214 549 226 558]/Border[0 0 0]/H/N>> endobj 28598 0 obj <>/P 8349 0 R/Type/Annot/A 28998 0 R/Subtype/Link/Rect[251 539 268 549]/Border[0 0 0]/H/N>> endobj 28599 0 obj <>/P 8349 0 R/Type/Annot/A 42014 0 R/Subtype/Link/Rect[268 539 280 548]/Border[0 0 0]/H/N>> endobj 28600 0 obj <>/P 8349 0 R/Type/Annot/A 28979 0 R/Subtype/Link/Rect[193 529 209 539]/Border[0 0 0]/H/N>> endobj 28601 0 obj <>/P 8349 0 R/Type/Annot/A 28968 0 R/Subtype/Link/Rect[210 529 222 538]/Border[0 0 0]/H/N>> endobj 28602 0 obj <>/P 8349 0 R/Type/Annot/A 29053 0 R/Subtype/Link/Rect[188 519 204 529]/Border[0 0 0]/H/N>> endobj 28603 0 obj <>/P 8349 0 R/Type/Annot/A 30182 0 R/Subtype/Link/Rect[205 519 217 528]/Border[0 0 0]/H/N>> endobj 28604 0 obj <>/P 8349 0 R/Type/Annot/A 36718 0 R/Subtype/Link/Rect[236 509 250 518]/Border[0 0 0]/H/N>> endobj 28605 0 obj <>/P 8349 0 R/Type/Annot/A 29019 0 R/Subtype/Link/Rect[252 509 268 519]/Border[0 0 0]/H/N>> endobj 28606 0 obj <>/P 8349 0 R/Type/Annot/A 29008 0 R/Subtype/Link/Rect[269 509 283 518]/Border[0 0 0]/H/N>> endobj 28607 0 obj <>/P 8349 0 R/Type/Annot/A 28997 0 R/Subtype/Link/Rect[285 509 297 518]/Border[0 0 0]/H/N>> endobj 28608 0 obj <>/P 8349 0 R/Type/Annot/A 28988 0 R/Subtype/Link/Rect[190 499 202 508]/Border[0 0 0]/H/N>> endobj 28609 0 obj <>/P 8349 0 R/Type/Annot/A 28980 0 R/Subtype/Link/Rect[236 489 250 498]/Border[0 0 0]/H/N>> endobj 28610 0 obj <>/P 8349 0 R/Type/Annot/A 34220 0 R/Subtype/Link/Rect[252 489 266 498]/Border[0 0 0]/H/N>> endobj 28611 0 obj <>/P 8349 0 R/Type/Annot/A 30261 0 R/Subtype/Link/Rect[268 489 280 498]/Border[0 0 0]/H/N>> endobj 28612 0 obj <>/P 8349 0 R/Type/Annot/A 29044 0 R/Subtype/Link/Rect[190 479 202 488]/Border[0 0 0]/H/N>> endobj 28613 0 obj <>/P 8349 0 R/Type/Annot/A 29035 0 R/Subtype/Link/Rect[197 469 210 479]/Border[0 0 0]/H/N>> endobj 28614 0 obj <>/P 8349 0 R/Type/Annot/A 29023 0 R/Subtype/Link/Rect[211 469 220 478]/Border[0 0 0]/H/N>> endobj 28615 0 obj <>/P 8349 0 R/Type/Annot/A 39543 0 R/Subtype/Link/Rect[222 469 232 478]/Border[0 0 0]/H/N>> endobj 28616 0 obj <>/P 8349 0 R/Type/Annot/A 31854 0 R/Subtype/Link/Rect[234 469 248 478]/Border[0 0 0]/H/N>> endobj 28617 0 obj <>/P 8349 0 R/Type/Annot/A 42676 0 R/Subtype/Link/Rect[250 469 264 478]/Border[0 0 0]/H/N>> endobj 28618 0 obj <>/P 8349 0 R/Type/Annot/A 28982 0 R/Subtype/Link/Rect[266 469 283 479]/Border[0 0 0]/H/N>> endobj 28619 0 obj <>/P 8349 0 R/Type/Annot/A 31027 0 R/Subtype/Link/Rect[283 469 297 478]/Border[0 0 0]/H/N>> endobj 28620 0 obj <>/P 8349 0 R/Type/Annot/A 28962 0 R/Subtype/Link/Rect[151 459 165 468]/Border[0 0 0]/H/N>> endobj 28621 0 obj <>/P 8349 0 R/Type/Annot/A 28952 0 R/Subtype/Link/Rect[167 459 181 468]/Border[0 0 0]/H/N>> endobj 28622 0 obj <>/P 8349 0 R/Type/Annot/A 29039 0 R/Subtype/Link/Rect[183 459 197 468]/Border[0 0 0]/H/N>> endobj 28623 0 obj <>/P 8349 0 R/Type/Annot/A 29030 0 R/Subtype/Link/Rect[199 459 213 468]/Border[0 0 0]/H/N>> endobj 28624 0 obj <>/P 8349 0 R/Type/Annot/A 29018 0 R/Subtype/Link/Rect[215 459 229 468]/Border[0 0 0]/H/N>> endobj 28625 0 obj <>/P 8349 0 R/Type/Annot/A 29009 0 R/Subtype/Link/Rect[231 459 245 468]/Border[0 0 0]/H/N>> endobj 28626 0 obj <>/P 8349 0 R/Type/Annot/A 28999 0 R/Subtype/Link/Rect[247 459 261 468]/Border[0 0 0]/H/N>> endobj 28627 0 obj <>/P 8349 0 R/Type/Annot/A 35866 0 R/Subtype/Link/Rect[263 459 277 468]/Border[0 0 0]/H/N>> endobj 28628 0 obj <>/P 8349 0 R/Type/Annot/A 28981 0 R/Subtype/Link/Rect[279 459 293 468]/Border[0 0 0]/H/N>> endobj 28629 0 obj <>/P 8349 0 R/Type/Annot/A 28972 0 R/Subtype/Link/Rect[295 459 309 468]/Border[0 0 0]/H/N>> endobj 28630 0 obj <>/P 8349 0 R/Type/Annot/A 28961 0 R/Subtype/Link/Rect[151 449 165 458]/Border[0 0 0]/H/N>> endobj 28631 0 obj <>/P 8349 0 R/Type/Annot/A 29055 0 R/Subtype/Link/Rect[167 449 181 458]/Border[0 0 0]/H/N>> endobj 28632 0 obj <>/P 8349 0 R/Type/Annot/A 29042 0 R/Subtype/Link/Rect[183 449 197 458]/Border[0 0 0]/H/N>> endobj 28633 0 obj <>/P 8349 0 R/Type/Annot/A 42543 0 R/Subtype/Link/Rect[199 449 216 459]/Border[0 0 0]/H/N>> endobj 28634 0 obj <>/P 8349 0 R/Type/Annot/A 29022 0 R/Subtype/Link/Rect[216 449 228 458]/Border[0 0 0]/H/N>> endobj 28635 0 obj <>/P 8349 0 R/Type/Annot/A 36760 0 R/Subtype/Link/Rect[190 439 202 448]/Border[0 0 0]/H/N>> endobj 28636 0 obj <>/P 8349 0 R/Type/Annot/A 29002 0 R/Subtype/Link/Rect[196 429 210 438]/Border[0 0 0]/H/N>> endobj 28637 0 obj <>/P 8349 0 R/Type/Annot/A 28936 0 R/Subtype/Link/Rect[212 429 226 438]/Border[0 0 0]/H/N>> endobj 28638 0 obj <>/P 8349 0 R/Type/Annot/A 28986 0 R/Subtype/Link/Rect[228 429 240 438]/Border[0 0 0]/H/N>> endobj 28639 0 obj <>/P 8349 0 R/Type/Annot/A 28976 0 R/Subtype/Link/Rect[209 419 223 428]/Border[0 0 0]/H/N>> endobj 28640 0 obj <>/P 8349 0 R/Type/Annot/A 28966 0 R/Subtype/Link/Rect[225 419 242 429]/Border[0 0 0]/H/N>> endobj 28641 0 obj <>/P 8349 0 R/Type/Annot/A 41653 0 R/Subtype/Link/Rect[242 419 256 428]/Border[0 0 0]/H/N>> endobj 28642 0 obj <>/P 8349 0 R/Type/Annot/A 29051 0 R/Subtype/Link/Rect[258 419 272 428]/Border[0 0 0]/H/N>> endobj 28643 0 obj <>/P 8349 0 R/Type/Annot/A 29040 0 R/Subtype/Link/Rect[274 419 288 428]/Border[0 0 0]/H/N>> endobj 28644 0 obj <>/P 8349 0 R/Type/Annot/A 29031 0 R/Subtype/Link/Rect[151 409 168 419]/Border[0 0 0]/H/N>> endobj 28645 0 obj <>/P 8349 0 R/Type/Annot/A 29021 0 R/Subtype/Link/Rect[168 409 182 418]/Border[0 0 0]/H/N>> endobj 28646 0 obj <>/P 8349 0 R/Type/Annot/A 29012 0 R/Subtype/Link/Rect[184 409 196 418]/Border[0 0 0]/H/N>> endobj 28647 0 obj <>/P 8349 0 R/Type/Annot/A 29323 0 R/Subtype/Link/Rect[214 399 228 408]/Border[0 0 0]/H/N>> endobj 28648 0 obj <>/P 8349 0 R/Type/Annot/A 40107 0 R/Subtype/Link/Rect[230 399 244 408]/Border[0 0 0]/H/N>> endobj 28649 0 obj <>/P 8349 0 R/Type/Annot/A 28985 0 R/Subtype/Link/Rect[246 399 259 408]/Border[0 0 0]/H/N>> endobj 28650 0 obj <>/P 8349 0 R/Type/Annot/A 28930 0 R/Subtype/Link/Rect[261 399 278 409]/Border[0 0 0]/H/N>> endobj 28651 0 obj <>/P 8349 0 R/Type/Annot/A 28965 0 R/Subtype/Link/Rect[279 399 291 408]/Border[0 0 0]/H/N>> endobj 28652 0 obj <>/P 8349 0 R/Type/Annot/A 28957 0 R/Subtype/Link/Rect[212 389 224 398]/Border[0 0 0]/H/N>> endobj 28653 0 obj <>/P 8349 0 R/Type/Annot/A 41183 0 R/Subtype/Link/Rect[226 379 238 388]/Border[0 0 0]/H/N>> endobj 28654 0 obj <>/P 8349 0 R/Type/Annot/A 30259 0 R/Subtype/Link/Rect[212 369 224 378]/Border[0 0 0]/H/N>> endobj 28655 0 obj <>/P 8349 0 R/Type/Annot/A 29033 0 R/Subtype/Link/Rect[187 359 201 368]/Border[0 0 0]/H/N>> endobj 28656 0 obj <>/P 8349 0 R/Type/Annot/A 30153 0 R/Subtype/Link/Rect[203 359 217 368]/Border[0 0 0]/H/N>> endobj 28657 0 obj <>/P 8349 0 R/Type/Annot/A 29014 0 R/Subtype/Link/Rect[219 359 231 368]/Border[0 0 0]/H/N>> endobj 28658 0 obj <>/P 8349 0 R/Type/Annot/A 29005 0 R/Subtype/Link/Rect[202 349 219 359]/Border[0 0 0]/H/N>> endobj 28659 0 obj <>/P 8349 0 R/Type/Annot/A 28994 0 R/Subtype/Link/Rect[219 349 233 358]/Border[0 0 0]/H/N>> endobj 28660 0 obj <>/P 8349 0 R/Type/Annot/A 38204 0 R/Subtype/Link/Rect[235 349 252 359]/Border[0 0 0]/H/N>> endobj 28661 0 obj <>/P 8349 0 R/Type/Annot/A 28931 0 R/Subtype/Link/Rect[253 349 267 358]/Border[0 0 0]/H/N>> endobj 28662 0 obj <>/P 8349 0 R/Type/Annot/A 28969 0 R/Subtype/Link/Rect[269 349 281 358]/Border[0 0 0]/H/N>> endobj 28663 0 obj <>/P 8349 0 R/Type/Annot/A 28960 0 R/Subtype/Link/Rect[190 339 202 348]/Border[0 0 0]/H/N>> endobj 28664 0 obj <>/P 8349 0 R/Type/Annot/A 28953 0 R/Subtype/Link/Rect[156 329 170 338]/Border[0 0 0]/H/N>> endobj 28665 0 obj <>/P 8349 0 R/Type/Annot/A 29054 0 R/Subtype/Link/Rect[172 329 184 338]/Border[0 0 0]/H/N>> endobj 28666 0 obj <>/P 8349 0 R/Type/Annot/A 34248 0 R/Subtype/Link/Rect[190 319 206 329]/Border[0 0 0]/H/N>> endobj 28667 0 obj <>/P 8349 0 R/Type/Annot/A 29034 0 R/Subtype/Link/Rect[207 319 219 328]/Border[0 0 0]/H/N>> endobj 28668 0 obj <>/P 8349 0 R/Type/Annot/A 29024 0 R/Subtype/Link/Rect[162 309 169 318]/Border[0 0 0]/H/N>> endobj 28669 0 obj <>/P 8349 0 R/Type/Annot/A 29015 0 R/Subtype/Link/Rect[185 299 202 309]/Border[0 0 0]/H/N>> endobj 28670 0 obj <>/P 8349 0 R/Type/Annot/A 29006 0 R/Subtype/Link/Rect[203 299 215 308]/Border[0 0 0]/H/N>> endobj 28671 0 obj <>/P 8349 0 R/Type/Annot/A 28996 0 R/Subtype/Link/Rect[171 289 181 298]/Border[0 0 0]/H/N>> endobj 28672 0 obj <>/P 8349 0 R/Type/Annot/A 28932 0 R/Subtype/Link/Rect[183 289 199 299]/Border[0 0 0]/H/N>> endobj 28673 0 obj <>/P 8349 0 R/Type/Annot/A 36727 0 R/Subtype/Link/Rect[200 289 212 298]/Border[0 0 0]/H/N>> endobj 28674 0 obj <>/P 8349 0 R/Type/Annot/A 36690 0 R/Subtype/Link/Rect[155 279 165 288]/Border[0 0 0]/H/N>> endobj 28675 0 obj <>/P 8349 0 R/Type/Annot/A 28964 0 R/Subtype/Link/Rect[167 279 181 288]/Border[0 0 0]/H/N>> endobj 28676 0 obj <>/P 8349 0 R/Type/Annot/A 28955 0 R/Subtype/Link/Rect[183 279 195 288]/Border[0 0 0]/H/N>> endobj 28677 0 obj <>/P 8349 0 R/Type/Annot/A 28948 0 R/Subtype/Link/Rect[182 269 196 278]/Border[0 0 0]/H/N>> endobj 28678 0 obj <>/P 8349 0 R/Type/Annot/A 29049 0 R/Subtype/Link/Rect[198 269 212 278]/Border[0 0 0]/H/N>> endobj 28679 0 obj <>/P 8349 0 R/Type/Annot/A 30266 0 R/Subtype/Link/Rect[214 269 228 278]/Border[0 0 0]/H/N>> endobj 28680 0 obj <>/P 8349 0 R/Type/Annot/A 28942 0 R/Subtype/Link/Rect[230 269 244 278]/Border[0 0 0]/H/N>> endobj 28681 0 obj <>/P 8349 0 R/Type/Annot/A 30184 0 R/Subtype/Link/Rect[246 269 260 278]/Border[0 0 0]/H/N>> endobj 28682 0 obj <>/P 8349 0 R/Type/Annot/A 29013 0 R/Subtype/Link/Rect[262 269 276 278]/Border[0 0 0]/H/N>> endobj 28683 0 obj <>/P 8349 0 R/Type/Annot/A 28935 0 R/Subtype/Link/Rect[278 269 295 279]/Border[0 0 0]/H/N>> endobj 28684 0 obj <>/P 8349 0 R/Type/Annot/A 28992 0 R/Subtype/Link/Rect[295 269 309 278]/Border[0 0 0]/H/N>> endobj 28685 0 obj <>/P 8349 0 R/Type/Annot/A 28987 0 R/Subtype/Link/Rect[151 259 165 268]/Border[0 0 0]/H/N>> endobj 28686 0 obj <>/P 8349 0 R/Type/Annot/A 28978 0 R/Subtype/Link/Rect[167 259 179 268]/Border[0 0 0]/H/N>> endobj 28687 0 obj <>/P 8349 0 R/Type/Annot/A 28970 0 R/Subtype/Link/Rect[182 249 199 259]/Border[0 0 0]/H/N>> endobj 28688 0 obj <>/P 8349 0 R/Type/Annot/A 28921 0 R/Subtype/Link/Rect[199 249 211 258]/Border[0 0 0]/H/N>> endobj 28689 0 obj <>/P 8349 0 R/Type/Annot/A 28954 0 R/Subtype/Link/Rect[192 239 209 249]/Border[0 0 0]/H/N>> endobj 28690 0 obj <>/P 8349 0 R/Type/Annot/A 28947 0 R/Subtype/Link/Rect[209 239 221 248]/Border[0 0 0]/H/N>> endobj 28691 0 obj <>/P 8349 0 R/Type/Annot/A 29052 0 R/Subtype/Link/Rect[185 229 202 239]/Border[0 0 0]/H/N>> endobj 28692 0 obj <>/P 8349 0 R/Type/Annot/A 29043 0 R/Subtype/Link/Rect[202 229 214 238]/Border[0 0 0]/H/N>> endobj 28693 0 obj <>/P 8349 0 R/Type/Annot/A 29036 0 R/Subtype/Link/Rect[171 219 185 228]/Border[0 0 0]/H/N>> endobj 28694 0 obj <>/P 8349 0 R/Type/Annot/A 29025 0 R/Subtype/Link/Rect[187 219 199 228]/Border[0 0 0]/H/N>> endobj 28695 0 obj <>/P 8349 0 R/Type/Annot/A 29016 0 R/Subtype/Link/Rect[188 209 204 219]/Border[0 0 0]/H/N>> endobj 28696 0 obj <>/P 8349 0 R/Type/Annot/A 29007 0 R/Subtype/Link/Rect[205 209 217 218]/Border[0 0 0]/H/N>> endobj 28697 0 obj <>/P 8349 0 R/Type/Annot/A 29000 0 R/Subtype/Link/Rect[162 199 172 208]/Border[0 0 0]/H/N>> endobj 28698 0 obj <>/P 8349 0 R/Type/Annot/A 28989 0 R/Subtype/Link/Rect[174 199 184 208]/Border[0 0 0]/H/N>> endobj 28699 0 obj <>/P 8349 0 R/Type/Annot/A 28984 0 R/Subtype/Link/Rect[186 199 196 208]/Border[0 0 0]/H/N>> endobj 28700 0 obj <>/P 8349 0 R/Type/Annot/A 28977 0 R/Subtype/Link/Rect[198 199 215 209]/Border[0 0 0]/H/N>> endobj 28701 0 obj <>/P 8349 0 R/Type/Annot/A 28967 0 R/Subtype/Link/Rect[215 199 227 208]/Border[0 0 0]/H/N>> endobj 28702 0 obj <>/P 8349 0 R/Type/Annot/A 28959 0 R/Subtype/Link/Rect[185 189 202 199]/Border[0 0 0]/H/N>> endobj 28703 0 obj <>/P 8349 0 R/Type/Annot/A 28951 0 R/Subtype/Link/Rect[203 189 215 198]/Border[0 0 0]/H/N>> endobj 28704 0 obj <>/P 8349 0 R/Type/Annot/A 28946 0 R/Subtype/Link/Rect[189 179 203 188]/Border[0 0 0]/H/N>> endobj 28705 0 obj <>/P 8349 0 R/Type/Annot/A 29056 0 R/Subtype/Link/Rect[205 179 219 188]/Border[0 0 0]/H/N>> endobj 28706 0 obj <>/P 8349 0 R/Type/Annot/A 29045 0 R/Subtype/Link/Rect[221 179 235 188]/Border[0 0 0]/H/N>> endobj 28707 0 obj <>/P 8349 0 R/Type/Annot/A 29037 0 R/Subtype/Link/Rect[237 179 251 188]/Border[0 0 0]/H/N>> endobj 28708 0 obj <>/P 8349 0 R/Type/Annot/A 29028 0 R/Subtype/Link/Rect[253 179 269 189]/Border[0 0 0]/H/N>> endobj 28709 0 obj <>/P 8349 0 R/Type/Annot/A 29017 0 R/Subtype/Link/Rect[270 179 284 188]/Border[0 0 0]/H/N>> endobj 28710 0 obj <>/P 8349 0 R/Type/Annot/A 30155 0 R/Subtype/Link/Rect[286 179 300 188]/Border[0 0 0]/H/N>> endobj 28711 0 obj <>/P 8349 0 R/Type/Annot/A 29001 0 R/Subtype/Link/Rect[151 169 165 178]/Border[0 0 0]/H/N>> endobj 28712 0 obj <>/P 8349 0 R/Type/Annot/A 28991 0 R/Subtype/Link/Rect[167 169 181 178]/Border[0 0 0]/H/N>> endobj 28713 0 obj <>/P 8349 0 R/Type/Annot/A 28929 0 R/Subtype/Link/Rect[183 169 197 178]/Border[0 0 0]/H/N>> endobj 28714 0 obj <>/P 8349 0 R/Type/Annot/A 28926 0 R/Subtype/Link/Rect[199 169 211 178]/Border[0 0 0]/H/N>> endobj 28715 0 obj <>/P 8349 0 R/Type/Annot/A 28971 0 R/Subtype/Link/Rect[186 159 200 168]/Border[0 0 0]/H/N>> endobj 28716 0 obj <>/P 8349 0 R/Type/Annot/A 28963 0 R/Subtype/Link/Rect[202 159 216 168]/Border[0 0 0]/H/N>> endobj 28717 0 obj <>/P 8349 0 R/Type/Annot/A 28956 0 R/Subtype/Link/Rect[218 159 235 169]/Border[0 0 0]/H/N>> endobj 28718 0 obj <>/P 8349 0 R/Type/Annot/A 28949 0 R/Subtype/Link/Rect[236 159 250 168]/Border[0 0 0]/H/N>> endobj 28719 0 obj <>/P 8349 0 R/Type/Annot/A 28945 0 R/Subtype/Link/Rect[252 159 266 168]/Border[0 0 0]/H/N>> endobj 28720 0 obj <>/P 8349 0 R/Type/Annot/A 29057 0 R/Subtype/Link/Rect[268 159 281 168]/Border[0 0 0]/H/N>> endobj 28721 0 obj <>/P 8349 0 R/Type/Annot/A 29046 0 R/Subtype/Link/Rect[151 149 168 159]/Border[0 0 0]/H/N>> endobj 28722 0 obj <>/P 8349 0 R/Type/Annot/A 28940 0 R/Subtype/Link/Rect[168 149 182 158]/Border[0 0 0]/H/N>> endobj 28723 0 obj <>/P 8349 0 R/Type/Annot/A 29029 0 R/Subtype/Link/Rect[184 149 198 158]/Border[0 0 0]/H/N>> endobj 28724 0 obj <>/P 8349 0 R/Type/Annot/A 29020 0 R/Subtype/Link/Rect[200 149 214 158]/Border[0 0 0]/H/N>> endobj 28725 0 obj <>/P 8349 0 R/Type/Annot/A 28934 0 R/Subtype/Link/Rect[216 149 233 159]/Border[0 0 0]/H/N>> endobj 28726 0 obj <>/P 8349 0 R/Type/Annot/A 29004 0 R/Subtype/Link/Rect[234 149 248 158]/Border[0 0 0]/H/N>> endobj 28727 0 obj <>/P 8349 0 R/Type/Annot/A 28995 0 R/Subtype/Link/Rect[250 149 264 158]/Border[0 0 0]/H/N>> endobj 28728 0 obj <>/P 8349 0 R/Type/Annot/A 28928 0 R/Subtype/Link/Rect[266 149 280 158]/Border[0 0 0]/H/N>> endobj 28729 0 obj <>/P 8349 0 R/Type/Annot/A 28925 0 R/Subtype/Link/Rect[282 149 296 158]/Border[0 0 0]/H/N>> endobj 28730 0 obj <>/P 8349 0 R/Type/Annot/A 28923 0 R/Subtype/Link/Rect[151 139 165 148]/Border[0 0 0]/H/N>> endobj 28731 0 obj <>/P 8349 0 R/Type/Annot/A 28919 0 R/Subtype/Link/Rect[167 139 181 148]/Border[0 0 0]/H/N>> endobj 28732 0 obj <>/P 8349 0 R/Type/Annot/A 28958 0 R/Subtype/Link/Rect[183 139 195 148]/Border[0 0 0]/H/N>> endobj 28733 0 obj <>/P 8349 0 R/Type/Annot/A 28950 0 R/Subtype/Link/Rect[363 669 377 678]/Border[0 0 0]/H/N>> endobj 28734 0 obj <>/P 8349 0 R/Type/Annot/A 28915 0 R/Subtype/Link/Rect[379 669 391 678]/Border[0 0 0]/H/N>> endobj 28735 0 obj <>/P 8349 0 R/Type/Annot/A 28944 0 R/Subtype/Link/Rect[407 659 421 668]/Border[0 0 0]/H/N>> endobj 28736 0 obj <>/P 8349 0 R/Type/Annot/A 28943 0 R/Subtype/Link/Rect[423 659 437 668]/Border[0 0 0]/H/N>> endobj 28737 0 obj <>/P 8349 0 R/Type/Annot/A 28941 0 R/Subtype/Link/Rect[439 659 451 668]/Border[0 0 0]/H/N>> endobj 28738 0 obj <>/P 8349 0 R/Type/Annot/A 28939 0 R/Subtype/Link/Rect[392 649 404 658]/Border[0 0 0]/H/N>> endobj 28739 0 obj <>/P 8349 0 R/Type/Annot/A 28938 0 R/Subtype/Link/Rect[397 639 411 648]/Border[0 0 0]/H/N>> endobj 28740 0 obj <>/P 8349 0 R/Type/Annot/A 28937 0 R/Subtype/Link/Rect[413 639 425 648]/Border[0 0 0]/H/N>> endobj 28741 0 obj <>/P 8349 0 R/Type/Annot/A 28933 0 R/Subtype/Link/Rect[376 629 392 639]/Border[0 0 0]/H/N>> endobj 28742 0 obj <>/P 8349 0 R/Type/Annot/A 28905 0 R/Subtype/Link/Rect[393 629 407 638]/Border[0 0 0]/H/N>> endobj 28743 0 obj <>/P 8349 0 R/Type/Annot/A 28903 0 R/Subtype/Link/Rect[409 629 423 638]/Border[0 0 0]/H/N>> endobj 28744 0 obj <>/P 8349 0 R/Type/Annot/A 28927 0 R/Subtype/Link/Rect[425 629 439 638]/Border[0 0 0]/H/N>> endobj 28745 0 obj <>/P 8349 0 R/Type/Annot/A 28924 0 R/Subtype/Link/Rect[441 629 458 639]/Border[0 0 0]/H/N>> endobj 28746 0 obj <>/P 8349 0 R/Type/Annot/A 28922 0 R/Subtype/Link/Rect[458 629 472 638]/Border[0 0 0]/H/N>> endobj 28747 0 obj <>/P 8349 0 R/Type/Annot/A 28918 0 R/Subtype/Link/Rect[474 629 486 638]/Border[0 0 0]/H/N>> endobj 28748 0 obj <>/P 8349 0 R/Type/Annot/A 28917 0 R/Subtype/Link/Rect[381 619 393 628]/Border[0 0 0]/H/N>> endobj 28749 0 obj <>/P 8349 0 R/Type/Annot/A 28916 0 R/Subtype/Link/Rect[389 609 405 619]/Border[0 0 0]/H/N>> endobj 28750 0 obj <>/P 8349 0 R/Type/Annot/A 28914 0 R/Subtype/Link/Rect[406 609 420 618]/Border[0 0 0]/H/N>> endobj 28751 0 obj <>/P 8349 0 R/Type/Annot/A 28913 0 R/Subtype/Link/Rect[422 609 436 618]/Border[0 0 0]/H/N>> endobj 28752 0 obj <>/P 8349 0 R/Type/Annot/A 28912 0 R/Subtype/Link/Rect[438 609 450 618]/Border[0 0 0]/H/N>> endobj 28753 0 obj <>/P 8349 0 R/Type/Annot/A 28911 0 R/Subtype/Link/Rect[423 599 437 608]/Border[0 0 0]/H/N>> endobj 28754 0 obj <>/P 8349 0 R/Type/Annot/A 28910 0 R/Subtype/Link/Rect[439 599 453 608]/Border[0 0 0]/H/N>> endobj 28755 0 obj <>/P 8349 0 R/Type/Annot/A 28909 0 R/Subtype/Link/Rect[455 599 467 608]/Border[0 0 0]/H/N>> endobj 28756 0 obj <>/P 8349 0 R/Type/Annot/A 28908 0 R/Subtype/Link/Rect[444 589 456 598]/Border[0 0 0]/H/N>> endobj 28757 0 obj <>/P 8349 0 R/Type/Annot/A 28907 0 R/Subtype/Link/Rect[396 579 408 588]/Border[0 0 0]/H/N>> endobj 28758 0 obj <>/P 8349 0 R/Type/Annot/A 28906 0 R/Subtype/Link/Rect[374 569 382 578]/Border[0 0 0]/H/N>> endobj 28759 0 obj <>/P 8349 0 R/Type/Annot/A 28904 0 R/Subtype/Link/Rect[420 559 432 568]/Border[0 0 0]/H/N>> endobj 28760 0 obj <>/P 8349 0 R/Type/Annot/A 28902 0 R/Subtype/Link/Rect[420 549 432 558]/Border[0 0 0]/H/N>> endobj 28761 0 obj <>/P 8349 0 R/Type/Annot/A 28901 0 R/Subtype/Link/Rect[417 539 429 548]/Border[0 0 0]/H/N>> endobj 28762 0 obj <>/P 8349 0 R/Type/Annot/A 28900 0 R/Subtype/Link/Rect[415 529 432 539]/Border[0 0 0]/H/N>> endobj 28763 0 obj <>/P 8349 0 R/Type/Annot/A 28899 0 R/Subtype/Link/Rect[433 529 445 538]/Border[0 0 0]/H/N>> endobj 28764 0 obj <>/P 8349 0 R/Type/Annot/A 28898 0 R/Subtype/Link/Rect[420 519 434 528]/Border[0 0 0]/H/N>> endobj 28765 0 obj <>/P 8349 0 R/Type/Annot/A 28897 0 R/Subtype/Link/Rect[436 519 450 528]/Border[0 0 0]/H/N>> endobj 28766 0 obj <>/P 8349 0 R/Type/Annot/A 28896 0 R/Subtype/Link/Rect[452 519 464 528]/Border[0 0 0]/H/N>> endobj 28767 0 obj <>/P 8349 0 R/Type/Annot/A 28895 0 R/Subtype/Link/Rect[425 509 439 518]/Border[0 0 0]/H/N>> endobj 28768 0 obj <>/P 8349 0 R/Type/Annot/A 28894 0 R/Subtype/Link/Rect[441 509 455 518]/Border[0 0 0]/H/N>> endobj 28769 0 obj <>/P 8349 0 R/Type/Annot/A 28893 0 R/Subtype/Link/Rect[457 509 469 518]/Border[0 0 0]/H/N>> endobj 28770 0 obj <>/P 8349 0 R/Type/Annot/A 28892 0 R/Subtype/Link/Rect[410 499 424 508]/Border[0 0 0]/H/N>> endobj 28771 0 obj <>/P 8349 0 R/Type/Annot/A 28891 0 R/Subtype/Link/Rect[426 499 440 508]/Border[0 0 0]/H/N>> endobj 28772 0 obj <>/P 8349 0 R/Type/Annot/A 28890 0 R/Subtype/Link/Rect[442 499 456 508]/Border[0 0 0]/H/N>> endobj 28773 0 obj <>/P 8349 0 R/Type/Annot/A 28889 0 R/Subtype/Link/Rect[458 499 475 509]/Border[0 0 0]/H/N>> endobj 28774 0 obj <>/P 8349 0 R/Type/Annot/A 28888 0 R/Subtype/Link/Rect[475 499 487 508]/Border[0 0 0]/H/N>> endobj 28775 0 obj <>/P 8349 0 R/Type/Annot/A 28887 0 R/Subtype/Link/Rect[387 489 401 498]/Border[0 0 0]/H/N>> endobj 28776 0 obj <>/P 8349 0 R/Type/Annot/A 28886 0 R/Subtype/Link/Rect[403 489 417 498]/Border[0 0 0]/H/N>> endobj 28777 0 obj <>/P 8349 0 R/Type/Annot/A 28885 0 R/Subtype/Link/Rect[419 489 433 498]/Border[0 0 0]/H/N>> endobj 28778 0 obj <>/P 8349 0 R/Type/Annot/A 28884 0 R/Subtype/Link/Rect[435 489 452 499]/Border[0 0 0]/H/N>> endobj 28779 0 obj <>/P 8349 0 R/Type/Annot/A 28883 0 R/Subtype/Link/Rect[452 489 466 498]/Border[0 0 0]/H/N>> endobj 28780 0 obj <>/P 8349 0 R/Type/Annot/A 28882 0 R/Subtype/Link/Rect[468 489 485 499]/Border[0 0 0]/H/N>> endobj 28781 0 obj <>/P 8349 0 R/Type/Annot/A 28881 0 R/Subtype/Link/Rect[486 489 500 498]/Border[0 0 0]/H/N>> endobj 28782 0 obj <>/P 8349 0 R/Type/Annot/A 28880 0 R/Subtype/Link/Rect[359 479 376 489]/Border[0 0 0]/H/N>> endobj 28783 0 obj <>/P 8349 0 R/Type/Annot/A 28879 0 R/Subtype/Link/Rect[376 479 390 488]/Border[0 0 0]/H/N>> endobj 28784 0 obj <>/P 8349 0 R/Type/Annot/A 28878 0 R/Subtype/Link/Rect[392 479 406 488]/Border[0 0 0]/H/N>> endobj 28785 0 obj <>/P 8349 0 R/Type/Annot/A 28877 0 R/Subtype/Link/Rect[408 479 422 488]/Border[0 0 0]/H/N>> endobj 28786 0 obj <>/P 8349 0 R/Type/Annot/A 28876 0 R/Subtype/Link/Rect[424 479 436 488]/Border[0 0 0]/H/N>> endobj 28787 0 obj <>/P 8349 0 R/Type/Annot/A 28875 0 R/Subtype/Link/Rect[410 469 424 478]/Border[0 0 0]/H/N>> endobj 28788 0 obj <>/P 8349 0 R/Type/Annot/A 28874 0 R/Subtype/Link/Rect[426 469 440 478]/Border[0 0 0]/H/N>> endobj 28789 0 obj <>/P 8349 0 R/Type/Annot/A 28873 0 R/Subtype/Link/Rect[442 469 456 478]/Border[0 0 0]/H/N>> endobj 28790 0 obj <>/P 8349 0 R/Type/Annot/A 28872 0 R/Subtype/Link/Rect[458 469 470 478]/Border[0 0 0]/H/N>> endobj 28791 0 obj <>/P 8349 0 R/Type/Annot/A 28871 0 R/Subtype/Link/Rect[398 459 410 468]/Border[0 0 0]/H/N>> endobj 28792 0 obj <>/P 8349 0 R/Type/Annot/A 28870 0 R/Subtype/Link/Rect[401 449 418 459]/Border[0 0 0]/H/N>> endobj 28793 0 obj <>/P 8349 0 R/Type/Annot/A 28869 0 R/Subtype/Link/Rect[419 449 431 458]/Border[0 0 0]/H/N>> endobj 28794 0 obj <>/P 8349 0 R/Type/Annot/A 28868 0 R/Subtype/Link/Rect[400 439 412 448]/Border[0 0 0]/H/N>> endobj 28795 0 obj <>/P 8349 0 R/Type/Annot/A 28867 0 R/Subtype/Link/Rect[401 429 413 438]/Border[0 0 0]/H/N>> endobj 28796 0 obj <>/P 8349 0 R/Type/Annot/A 28866 0 R/Subtype/Link/Rect[415 419 427 428]/Border[0 0 0]/H/N>> endobj 28797 0 obj <>/P 8349 0 R/Type/Annot/A 28865 0 R/Subtype/Link/Rect[399 409 411 418]/Border[0 0 0]/H/N>> endobj 28798 0 obj <>/P 8349 0 R/Type/Annot/A 28864 0 R/Subtype/Link/Rect[415 399 431 409]/Border[0 0 0]/H/N>> endobj 28799 0 obj <>/P 8349 0 R/Type/Annot/A 28863 0 R/Subtype/Link/Rect[432 399 446 408]/Border[0 0 0]/H/N>> endobj 28800 0 obj <>/P 8349 0 R/Type/Annot/A 28862 0 R/Subtype/Link/Rect[448 399 460 408]/Border[0 0 0]/H/N>> endobj 28801 0 obj <>/P 8349 0 R/Type/Annot/A 28861 0 R/Subtype/Link/Rect[398 389 410 398]/Border[0 0 0]/H/N>> endobj 28802 0 obj <>/P 8349 0 R/Type/Annot/A 28860 0 R/Subtype/Link/Rect[410 379 427 389]/Border[0 0 0]/H/N>> endobj 28803 0 obj <>/P 8349 0 R/Type/Annot/A 28859 0 R/Subtype/Link/Rect[427 379 441 388]/Border[0 0 0]/H/N>> endobj 28804 0 obj <>/P 8349 0 R/Type/Annot/A 28858 0 R/Subtype/Link/Rect[443 379 455 388]/Border[0 0 0]/H/N>> endobj 28805 0 obj <>/P 8349 0 R/Type/Annot/A 28857 0 R/Subtype/Link/Rect[398 369 410 378]/Border[0 0 0]/H/N>> endobj 28806 0 obj <>/P 8349 0 R/Type/Annot/A 28856 0 R/Subtype/Link/Rect[433 359 447 368]/Border[0 0 0]/H/N>> endobj 28807 0 obj <>/P 8349 0 R/Type/Annot/A 28855 0 R/Subtype/Link/Rect[449 359 461 368]/Border[0 0 0]/H/N>> endobj 28808 0 obj <>/P 8349 0 R/Type/Annot/A 28854 0 R/Subtype/Link/Rect[412 349 424 358]/Border[0 0 0]/H/N>> endobj 28809 0 obj <>/P 8349 0 R/Type/Annot/A 28853 0 R/Subtype/Link/Rect[444 339 460 349]/Border[0 0 0]/H/N>> endobj 28810 0 obj <>/P 8349 0 R/Type/Annot/A 28852 0 R/Subtype/Link/Rect[461 339 473 348]/Border[0 0 0]/H/N>> endobj 28811 0 obj <>/P 8349 0 R/Type/Annot/A 28851 0 R/Subtype/Link/Rect[398 329 410 338]/Border[0 0 0]/H/N>> endobj 28812 0 obj <>/P 8349 0 R/Type/Annot/A 28850 0 R/Subtype/Link/Rect[472 319 489 329]/Border[0 0 0]/H/N>> endobj 28813 0 obj <>/P 8349 0 R/Type/Annot/A 28849 0 R/Subtype/Link/Rect[490 319 502 328]/Border[0 0 0]/H/N>> endobj 28814 0 obj <>/P 8349 0 R/Type/Annot/A 28848 0 R/Subtype/Link/Rect[398 309 410 318]/Border[0 0 0]/H/N>> endobj 28815 0 obj <>/P 8349 0 R/Type/Annot/A 28847 0 R/Subtype/Link/Rect[506 299 518 308]/Border[0 0 0]/H/N>> endobj 28816 0 obj <>/P 8349 0 R/Type/Annot/A 28846 0 R/Subtype/Link/Rect[398 289 410 298]/Border[0 0 0]/H/N>> endobj 28817 0 obj <>/P 8349 0 R/Type/Annot/A 28845 0 R/Subtype/Link/Rect[496 279 508 288]/Border[0 0 0]/H/N>> endobj 28818 0 obj <>/P 8349 0 R/Type/Annot/A 28844 0 R/Subtype/Link/Rect[398 269 410 278]/Border[0 0 0]/H/N>> endobj 28819 0 obj <>/P 8349 0 R/Type/Annot/A 28843 0 R/Subtype/Link/Rect[477 259 489 268]/Border[0 0 0]/H/N>> endobj 28820 0 obj <>/P 8349 0 R/Type/Annot/A 28842 0 R/Subtype/Link/Rect[398 249 410 258]/Border[0 0 0]/H/N>> endobj 28821 0 obj <>/P 8349 0 R/Type/Annot/A 28841 0 R/Subtype/Link/Rect[359 229 376 239]/Border[0 0 0]/H/N>> endobj 28822 0 obj <>/P 8349 0 R/Type/Annot/A 28840 0 R/Subtype/Link/Rect[376 229 388 238]/Border[0 0 0]/H/N>> endobj 28823 0 obj <>/P 8349 0 R/Type/Annot/A 28839 0 R/Subtype/Link/Rect[398 219 410 228]/Border[0 0 0]/H/N>> endobj 28824 0 obj <>/P 8349 0 R/Type/Annot/A 28837 0 R/Subtype/Link/Rect[458 209 475 219]/Border[0 0 0]/H/N>> endobj 28825 0 obj <>/P 8349 0 R/Type/Annot/A 28835 0 R/Subtype/Link/Rect[475 209 487 218]/Border[0 0 0]/H/N>> endobj 28826 0 obj <>/P 8349 0 R/Type/Annot/A 29041 0 R/Subtype/Link/Rect[398 199 410 208]/Border[0 0 0]/H/N>> endobj 28827 0 obj <>/P 8349 0 R/Type/Annot/A 43435 0 R/Subtype/Link/Rect[506 189 518 198]/Border[0 0 0]/H/N>> endobj 28828 0 obj <>/P 8349 0 R/Type/Annot/A 44748 0 R/Subtype/Link/Rect[398 179 410 188]/Border[0 0 0]/H/N>> endobj 28829 0 obj <>/P 8349 0 R/Type/Annot/A 29011 0 R/Subtype/Link/Rect[496 169 508 178]/Border[0 0 0]/H/N>> endobj 28830 0 obj <>/P 8349 0 R/Type/Annot/A 43285 0 R/Subtype/Link/Rect[398 159 410 168]/Border[0 0 0]/H/N>> endobj 28831 0 obj <>/P 8349 0 R/Type/Annot/A 28920 0 R/Subtype/Link/Rect[477 149 489 158]/Border[0 0 0]/H/N>> endobj 28832 0 obj <>/P 8349 0 R/Type/Annot/A 28983 0 R/Subtype/Link/Rect[398 139 410 148]/Border[0 0 0]/H/N>> endobj 28833 0 obj <>/P 8349 0 R/Type/Annot/A 28974 0 R/Subtype/Link/Rect[186 608 205 617]/Border[0 0 0]/H/N>> endobj 28834 0 obj <> endobj 28835 0 obj <> endobj 28836 0 obj <> endobj 28837 0 obj <> endobj 28838 0 obj <> endobj 28839 0 obj <> endobj 28840 0 obj <> endobj 28841 0 obj <> endobj 28842 0 obj <> endobj 28843 0 obj <> endobj 28844 0 obj <> endobj 28845 0 obj <> endobj 28846 0 obj <> endobj 28847 0 obj <> endobj 28848 0 obj <> endobj 28849 0 obj <> endobj 28850 0 obj <> endobj 28851 0 obj <> endobj 28852 0 obj <> endobj 28853 0 obj <> endobj 28854 0 obj <> endobj 28855 0 obj <> endobj 28856 0 obj <> endobj 28857 0 obj <> endobj 28858 0 obj <> endobj 28859 0 obj <> endobj 28860 0 obj <> endobj 28861 0 obj <> endobj 28862 0 obj <> endobj 28863 0 obj <> endobj 28864 0 obj <> endobj 28865 0 obj <> endobj 28866 0 obj <> endobj 28867 0 obj <> endobj 28868 0 obj <> endobj 28869 0 obj <> endobj 28870 0 obj <> endobj 28871 0 obj <> endobj 28872 0 obj <> endobj 28873 0 obj <> endobj 28874 0 obj <> endobj 28875 0 obj <> endobj 28876 0 obj <> endobj 28877 0 obj <> endobj 28878 0 obj <> endobj 28879 0 obj <> endobj 28880 0 obj <> endobj 28881 0 obj <> endobj 28882 0 obj <> endobj 28883 0 obj <> endobj 28884 0 obj <> endobj 28885 0 obj <> endobj 28886 0 obj <> endobj 28887 0 obj <> endobj 28888 0 obj <> endobj 28889 0 obj <> endobj 28890 0 obj <> endobj 28891 0 obj <> endobj 28892 0 obj <> endobj 28893 0 obj <> endobj 28894 0 obj <> endobj 28895 0 obj <> endobj 28896 0 obj <> endobj 28897 0 obj <> endobj 28898 0 obj <> endobj 28899 0 obj <> endobj 28900 0 obj <> endobj 28901 0 obj <> endobj 28902 0 obj <> endobj 28903 0 obj <> endobj 28904 0 obj <> endobj 28905 0 obj <> endobj 28906 0 obj <> endobj 28907 0 obj <> endobj 28908 0 obj <> endobj 28909 0 obj <> endobj 28910 0 obj <> endobj 28911 0 obj <> endobj 28912 0 obj <> endobj 28913 0 obj <> endobj 28914 0 obj <> endobj 28915 0 obj <> endobj 28916 0 obj <> endobj 28917 0 obj <> endobj 28918 0 obj <> endobj 28919 0 obj <> endobj 28920 0 obj <> endobj 28921 0 obj <> endobj 28922 0 obj <> endobj 28923 0 obj <> endobj 28924 0 obj <> endobj 28925 0 obj <> endobj 28926 0 obj <> endobj 28927 0 obj <> endobj 28928 0 obj <> endobj 28929 0 obj <> endobj 28930 0 obj <> endobj 28931 0 obj <> endobj 28932 0 obj <> endobj 28933 0 obj <> endobj 28934 0 obj <> endobj 28935 0 obj <> endobj 28936 0 obj <> endobj 28937 0 obj <> endobj 28938 0 obj <> endobj 28939 0 obj <> endobj 28940 0 obj <> endobj 28941 0 obj <> endobj 28942 0 obj <> endobj 28943 0 obj <> endobj 28944 0 obj <> endobj 28945 0 obj <> endobj 28946 0 obj <> endobj 28947 0 obj <> endobj 28948 0 obj <> endobj 28949 0 obj <> endobj 28950 0 obj <> endobj 28951 0 obj <> endobj 28952 0 obj <> endobj 28953 0 obj <> endobj 28954 0 obj <> endobj 28955 0 obj <> endobj 28956 0 obj <> endobj 28957 0 obj <> endobj 28958 0 obj <> endobj 28959 0 obj <> endobj 28960 0 obj <> endobj 28961 0 obj <> endobj 28962 0 obj <> endobj 28963 0 obj <> endobj 28964 0 obj <> endobj 28965 0 obj <> endobj 28966 0 obj <> endobj 28967 0 obj <> endobj 28968 0 obj <> endobj 28969 0 obj <> endobj 28970 0 obj <> endobj 28971 0 obj <> endobj 28972 0 obj <> endobj 28973 0 obj <> endobj 28974 0 obj <> endobj 28975 0 obj <> endobj 28976 0 obj <> endobj 28977 0 obj <> endobj 28978 0 obj <> endobj 28979 0 obj <> endobj 28980 0 obj <> endobj 28981 0 obj <> endobj 28982 0 obj <> endobj 28983 0 obj <> endobj 28984 0 obj <> endobj 28985 0 obj <> endobj 28986 0 obj <> endobj 28987 0 obj <> endobj 28988 0 obj <> endobj 28989 0 obj <> endobj 28990 0 obj <> endobj 28991 0 obj <> endobj 28992 0 obj <> endobj 28993 0 obj <> endobj 28994 0 obj <> endobj 28995 0 obj <> endobj 28996 0 obj <> endobj 28997 0 obj <> endobj 28998 0 obj <> endobj 28999 0 obj <> endobj 29000 0 obj <> endobj 29001 0 obj <> endobj 29002 0 obj <> endobj 29003 0 obj <> endobj 29004 0 obj <> endobj 29005 0 obj <> endobj 29006 0 obj <> endobj 29007 0 obj <> endobj 29008 0 obj <> endobj 29009 0 obj <> endobj 29010 0 obj <> endobj 29011 0 obj <> endobj 29012 0 obj <> endobj 29013 0 obj <> endobj 29014 0 obj <> endobj 29015 0 obj <> endobj 29016 0 obj <> endobj 29017 0 obj <> endobj 29018 0 obj <> endobj 29019 0 obj <> endobj 29020 0 obj <> endobj 29021 0 obj <> endobj 29022 0 obj <> endobj 29023 0 obj <> endobj 29024 0 obj <> endobj 29025 0 obj <> endobj 29026 0 obj <> endobj 29027 0 obj <> endobj 29028 0 obj <> endobj 29029 0 obj <> endobj 29030 0 obj <> endobj 29031 0 obj <> endobj 29032 0 obj <> endobj 29033 0 obj <> endobj 29034 0 obj <> endobj 29035 0 obj <> endobj 29036 0 obj <> endobj 29037 0 obj <> endobj 29038 0 obj <> endobj 29039 0 obj <> endobj 29040 0 obj <> endobj 29041 0 obj <> endobj 29042 0 obj <> endobj 29043 0 obj <> endobj 29044 0 obj <> endobj 29045 0 obj <> endobj 29046 0 obj <> endobj 29047 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29048 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29049 0 obj <> endobj 29050 0 obj <> endobj 29051 0 obj <> endobj 29052 0 obj <> endobj 29053 0 obj <> endobj 29054 0 obj <> endobj 29055 0 obj <> endobj 29056 0 obj <> endobj 29057 0 obj <> endobj 29058 0 obj <> endobj 29059 0 obj <> endobj 29060 0 obj <> stream q /X1 Do Q q endstream endobj 29061 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29062 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29063 0 obj <> stream HWk۶_Z`W+>MrS@o) Lؖ$"3"%q`#px8_~7a7BǢ ôPq&wT߹Tޯ,"SEzV*};HN3i$a~6;X%I'D_pbB.( `| ʔrJSHG(,!|2,]_<ŀ%S/SSSSSS2SO}ʨO=)>gS13O}Ψ=9>S_0 O}/<%ԗzϳ1-vd\K1d),ƵCbS Xk),FZɸbb{k),ƵCsd\K1d1=JƵZ!QV2k%Zq-ŐŨ\+R Yzϵq-vb\K1d),ƵCbS Xk),FZŸbb{Uk),ƵCsb\K1d1=*ƵZ!QV1kZq-ŐŨ\R Yzϵq-vf\K1d),ƵCbS Xk),FZ͸bb{Ռk),ƵCsf\K1d1=jƵZ!QV3k5Zq-ŐŨ\R Yzϵq-vAʸbS Xk),_=Ő/,uf ^U}%P:ɄC2,+ju??E4tRG 0Ly~ɣaUkS3vO ӓOTU%~̾(*?Yv{;֣Ѷa]N, pĉ<-2~LNA]? m _ABRPE:qg̭kla?qʞ+hA!yat/ϦN5=lt "}x_0w0=K駗COL"IϢv[\+m-餔ܩO==Ӱ:`mqԫ^KN8ע5$p]" &vJԜ5m2Nz"P㚘 a*Y\2;?]v<Ҧ/MZS= UQ RMy?\K]qߘ y"[XYN|Q2h06łM}W4ĭ}>xJp Qm҆w|{sA]c=Ԗ*r wM>5]nnxi틌OɐrW¾㯲hsgmXdѮa\sr)b ]'s&4RGLVȳ(&{n *-':gCI 2ݮOԪ5{>8M$8W4V1" O@Xhv=զq?=0O Iqk[/z· 4)<>wxms+:v'LT4l},%v}ni]8ODڽ+Udڥ4V.i)?R]2'}zjvL|k/l$cߎ?ۺRңgiL lV^uJ0ۚ;%|"i=Lx%t9W w$)' 2 bohP-Z- _Lce$X`t˧+tk]R!t}6" ),Z9'x+ ?+HrvE&dv@Zku!9dYԐgΜ5(/oyQ#TPgKShibKk3%1- c,6ރ%26nnowMdjάToiIowx%qJ !`̗j6nr01ѐ@=~t"z/FO:Ơ]Y(d0S/孛)?m;r160ZkA,S+t{ĽB.=AI[ Ǡ['IԘ $aKWB ؇&dOgTr肺y,*aO*˱Qet5̲l;GeԖ':"`'K4lį|>jWRnr{#>AIn각_ӽh_ob8N[2w1v $*N҄՟n΄`şw`0M)SYGⴭOR!pqoM[Y*o}JƩbKY?.Xbˇ`,NDlC:T9ݿ3 "יL}rlX1*[W;*- =N\C`uSř^jTIwew^` bInbpf{n3ИU}|YhjE_Vom.xL`v? *SZ$CeմO*09 ތ  r6BMK|!RI]3Lon>z )/ˉ&@d XJWsO#FB!H][CYA.DXFimez\uwiáqշ78_OdJMӚcGS EюQW/!Zն<+4~G,h@קx7zWi1&$!y -(,u@'Pүrb 5g9ְj/Ԁ\n9E_bmUwGk5 Vg }Gk| z)wڙg.g6,\|xś 04endstream endobj 29064 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29065 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29066 0 obj <> endobj 29067 0 obj <> endobj 29068 0 obj <> endobj 29069 0 obj <> endobj 29070 0 obj <> stream q /X1 Do Q q endstream endobj 29071 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29072 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29073 0 obj <> stream HooKEW$ /A5A>'$8p]3S}p~>=_QZ}o^OMVu'U1:I_&jit8Ou:LWd/ӫt3?2j~8:q^>,1clVŏݫ˿X/vow?(/dkx}@4t돏0=a&)&.{sėn٪?T~޼Ꝛ2zH{rOSɜɄ1Dc⏣1 n OcHYAeꭠ2 ԃz'wL; =SzA}`ꃠ>0QP(L}G> SςgA=LKc Bq4Z+WOci )4V(A=s\Kc3Z4Z+ B kZCJp-JP\kX̵Vp-!% %gkiPzZ+ƎBq4Z+WOci )4V(A=s-B kAp-!% %g4V(A=s-1X̵ %g4Z+X̵ Ǝ\Kci )4V( RkiPzZ' %guki )4V(A=s\Kc3:4Z+ B kZCJp-JP\X̵Np-'/ RkiP\=J:!0iNVs)˛j7]N{?%yv*|:;Npw}{afIQ7{t?ݤgrJ_ >?c'̽Mןϼx)gJ!9R-1HcuyFeNE TTNfTFEFy H)c8ePxgxF%NQXZNeJF̩ SQS*@!@(c3L]1e( R0 4 Tr'!J%Ny TT AS6`CdTҴB xRʚW(;ZX@{,=e{*sD(;Je{`$4=8g(YR T"`X!xF%NEKsvʔJh);\;=QN;V!#O;V!ӔJBFz{g3qq-Ϫ)q0wXOi˨#wT۵:HYJ̩uzruj]n ZY{v߁j]Z')Cv*vz)ͨ$r" PR3P_<8Pͫ=e93S#e)N;PmwTsHYJ5W Ts_OUTsrG5T:v҉RnD;Hir^wǁjUVjU)˩wT#e(պ@S~`պHiRcTպ@.SWdv*)=0Dzʰܯ*;Q)ܯɭ"ܯj'ő$s鴧 \"XO#e(S 4};wҴB& j_"վXzʲ 9?qzvgڽNʹ\nҳYfyǤ|NnZ3@P>]yg֨73@lq;}|Oy39w\|<]tqx|Hf|YG(mdNJFex utZ-n"P{TaBV*T%q7=(\M+YW:4'vJue%E7\2l~Jq]gX&hȉ V3FNfT5;*EǨ\}Q'J}:E}:}m0Pܳ$\ _lk_o9BC[E.Zq^ܮi~Yx2R19$ {tLXzr_߼wߙ\gjz<=5ٵŔX|Cc=˽x33[nI\:n{޷Ocg`^Ew<.ۀ}Vq&e'r]q-g볿E~9@}?#8 tIt/+bqEɾ->TJYJɝޮ[i_zzu?>EB8C/W8>0ڔpեnCO ^Ϻ[gw.\3\V{ڲ 99šc!yNqosrm˰3˩++gdgkq-8 .-rNǓإ='J)FcOrx9qz".s9n4A]{pе=@۵v+׎.vK;-~i ]/n EH([v(T5a]]۽9W~uR^mmP=B^T1$ òMxCf(ɒ&I_ m7ݓH  (H/Vߖg[m~DmnKmA?+*4s>rDW\I4!R3Aq'Yѽy(cPGPMv3pVih>f*k-fY~甈2@ cRNGY!ev=mvpCc)! +Ԛ Pb8EIeZ4Vh,4?$jCpK I $hnY!oIVwiy%7f<.=>m Խ0$3Rt#΀ʂ`QE "|wCY:W8`gt}]ǽj<5^zm";om/k+,ZO\`vL9,^\b[A",1zt[%rIFwiȋ92fòI8 ZA%<+;> MCdY 4.dMԋ[U=J遝n-<se ޶HeԖ 2oF #uŞ ),5C\1]Ā^2blI{vʲEG.ն\mV84ƳA44PDQz-W7Xs^7)f7 RG4|ACI. @_/ȋE^Dh1Ei$rVb'j9<.eɫ_rk}\ |hc1k"[EnzsHF+- Sh c̯aE8ZC,@Z*65K[TTlάi5":.1'@NL~1ZFIx@'[$>HWdZ¤4u4)Y\\ QRڟIST*#L]3Q3d ]Gh!iJi۫w $ةfU-F“j]ⲓpYFjPs/E ZNO<?#ڂc:?5~4ʼnve(Q%7_5mʍTUc4e6lkOwhVuA=_n^c,+I_+N"AgzbLJdCȜh)T]yOX>Ɠouq{t@$r& ٭c[^xw8:endstream endobj 29074 0 obj <>/P 1394 0 R/Type/Annot/A 29075 0 R/Subtype/Link/Rect[93.6044006 350.843994 333.447998 370.524994]/Border[0 0 0]/H/N>> endobj 29075 0 obj <> endobj 29076 0 obj <> endobj 29077 0 obj <> endobj 29078 0 obj <> endobj 29079 0 obj <> endobj 29080 0 obj <> endobj 29081 0 obj <> endobj 29082 0 obj <> endobj 29083 0 obj <> endobj 29084 0 obj <> endobj 29085 0 obj <> stream q /X1 Do Q q endstream endobj 29086 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29087 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 29088 0 obj <> stream H4;0=+ %B0EBi:$@@YFgqy DG&Ŭa=Bk]vz_4uS$!1e6/3n'OA,endstream endobj 29089 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29090 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29091 0 obj <> endobj 29092 0 obj <> endobj 29093 0 obj <> endobj 29094 0 obj <> stream q /X1 Do Q q endstream endobj 29095 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29096 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29097 0 obj <> stream HWێ6}W9EiШӲ[zƓ*dM0,UE*ӟ~)O݇(S_e23ŌL&>$"m?ͱۧ}wԌ}[}L6݊2v0 O˴1Ӝl47oL]Ä4L̸G*_4nHo*gz-gܘt[C #&CoD1>o[z4)U$ lOI_9ɟIiBLc#@QtPBĨ(CBBC$^F%^F^E^E^E5^G5^G D D D3}Y>'`Gs}/Eľ `_FK}YA6I6!*fE6!*f}"TET+ Ն>D#JBPjCj%Ї(}ZI6PmC>R$TET+ Ն>@ }"GjCj%wJЇ}Ї}CT>PmC>R"TETՆ>@ }"GUjCj(BQHPmC>R"TE6!`V }"GUjC)фjCbPjCbQ1(BQHPmC>R&TE6!`V }"GՄjCՆ>D#jBQHPmЇ(}ZM6!`V } }ه>@ }ه>DKVN9[)yMnJE'<֩ӏY,Ͳ2ݞ͹aМ8=c[ۿcgM|QC",]Fq,qJH.ʯ~J(uESq*Gdgy,0#Y͛xe"W#0 լ96WG酁ͺI<}Ǧf3LW[EN`J>c|qc+WuVtvo&_J!=5n[`fnMR'S l~T 94Փ7ۇsg'yhуY쁕rwSq uAhFHO{T=+1C_rU StBѯP5jFxL`niEڠI{R! ۘ &m>@ǥ9">wry|ş`5g2 -PdnY /#uC[pZXt@\2,зSkgc~ n{gvطζKG+f0,E綞.`_ƹ@PY(Vkb~J2w ~2RpX ? AF?C` Ջ`@[z36Gwhǃ4)6z^n]ʠ 8'ţA(J`idd%Gy:n,] pmDz}o0.^(Z`(c;ڙJM$8I!t&ڗ ~pRk=k{ɚ窚?-/ \rg )cw^E}7Ӫ0U<'Ôy*G*㪯UL9-<]>>u }#тэ']`s.r]Ӽ.#i;IfMb2F ~4dѳp6y@yJصO\ik.͹~=ߗP<__ezqA.3H?BwOE#3t2Q򙶓Q7a= .IxxH3!Oi\d'$]N:.DMghTVnuE53g϶Kc]P߀|vfj>V5LA0B+DtQ3j@t}',\H<%rvhnLk]߀?⮙/GTIS\hZı>nu:8ɄY"^%I.p|$DAQ۷)cmU}%i+J̏r˟ P/NB9#@/ഴ"'ܫ&Xo瞿 Z$~۸0K<]D+< rww~BD]RŊdP/oM*t-ڊVҤEv !i]J}ދ~i"H܁xx?/x Q{8V0"K; gSk@wXnw~G(HE!WWVi֙Vk{Sst"˹h( $Zg?, +xKH泤\/ESJSM=JЈKhIpcGJArs-`B?dy YE>S<-'"'"HcS]2eѧ_m^=D,0*H?c{OMqz ɕaz`jѳi4XڿɐSs~c.Z+:96y&]y4JK?(KεE:BTUȵ^eFez@ϓ t.6vDHOhx},M㬚 ,w޿{{| uendstream endobj 29098 0 obj <>/P 968 0 R/Type/Annot/A 29099 0 R/Subtype/Link/Rect[129.600006 498.829987 292.596985 518.51001]/Border[0 0 0]/H/N>> endobj 29099 0 obj <> endobj 29100 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29101 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29102 0 obj <> endobj 29103 0 obj <> stream q /X1 Do Q q endstream endobj 29104 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29105 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29106 0 obj <> stream HWk_1Eh;/RÀ8] )0Zѫ"}>D{w ;3 ^O>|zDǦP*]Z.N:ojiuUrh/pvesTE?j}Gs)먀A*T5Us5E@SIlzb,WM\eYM瑆إ]~\lՃ2Z*>͝V+.mu&65*)8 #Q Y|8"ES XVPoz+L; Sz{AgA}'O S S>ԧL}&ϘLP1>csA}/S_YfZ"+b),!CWO1dqZ!KPRkR YzZ+bRK1d YjZ!KPRkR XBj),A=KRK1d YjZKH-Ő%gBj),A=KRK]R Y\=ŀ%b),bRK1d YjZ!KPRR XBj),A=KRK1d YjZKH-Ő%guBj),A=KRK1` ,NH-Ő%guBj)Z!R Y\=ŐS XBj),A=KRK1d YjZKH-Ő%gBj),A=KRK1` ,^H-Ő%gBj),!C ,^H-vQ"b),!CWO1dqE\W5<Ͻ2j/NUة./U^_lg%qɵ }ZqQn{\ͧd:MtlWݢڷ^K52E=UOYp/|=Op6uS&$=a̎+ay^?>*OcȈ,m2⣺q׫4 =ཱུŴǍ[?"A L:6tlΧ}P_tQ0sYVi<2Omg}33W/þ-d}`nM,sj"&t!lAEƶMFv@@xY]=fQlOX|Mb;J'tN›m97ɓY)<yv\}ܗŶt@Qri] K/a!'2{\P5 b:IP3p>6vEt85}})wu{N>vRʎ|>+yC7R;?>{Dx{8 cBBZjp HOaJPB_6O o0-VINld etˏp;F1 Fἇ2+;?o zG3hM;a9l==A0aa,iyNnd`̼ulwp rW­pSעQ7pytNha;Uq JTXܙ~s)lI6&̠0i?~_.p0gu]h|ڋeV-]ۗq[ձ.~<4q"b q:Of ʦ >\'twtc+lX7DUz8UeٵY:pΣC֎GFpgaѹ^0wzywXo&=[(n'o.7U)u+ç9X=֫L5Zy̵+Hߤ^8qׇmWUrꍂWکuΝN,]Ar_SzQA|m7?;諮`G8lHQw8>&6Y6yl*ylk>) Xn\Y$0yYQN?A 4tZvJSEؕlM3lfY7w=?u.:&$| YbP˳Z^YDZP+aRVjBʄZ 2V+jV.YBUZP(,^b2B-jaP˲ZV|oS YB-{+bj1[CP ZV=Ő%b),|O1d {!עS YB-{'bj1;CP ZN=Ő%bw),|O1d {!K|S YB-{/b(,CP Z^=Ő%b),|O1d {!K|S YB-{/bj1{CP>|O1dZ{!뿄KoFFD=hQ vEhe8jއڕo϶g@k_'n1QmV8^O~4dRH\/{sk!*, bU+f]rq "AԧoGdR>R=ޔu-6~w˙w͵ E_6^41^{>xxiuulu֯Sewt>mmovdcben=/g’8 z>f}_//Ͻ?xy\|{usr,R%A:"ޗrTKPܖ}q2UiJ )JVXJ+X)c+eL`e r3V.r*VX*K ,XZ`i5r38XJ`)RK1V$"Ɗ}$ΜZc 38XB̩%N1{:sjS%ΜZc 38XB̩%NQV,ΜZc 38XB̩%N1{:sjS%ΜZc 38XB̩%N1{:sjS%ΜZc 38EY{:sjS%ΜZc 38XB̩%N1{:sjS%ΜZc 38XB̩%N1{:sjS%ΜZeB̩%N1{:sj9MZغeя P8(N,7/۩6^'wnUBVip0˞z ߬j&y8 Uz$<vƛ(Ђ(ѩ(in۠āN5a~_5wڼ75ëS3ެP{9h5j̷C X}=]&pN^N9D+8PMa >‚fz2iC$fnM9en8U;\}i/$nZ4ͺWK|(FƬ㛌Z oyAQ=owNsi:WڍpPI=@GbMtxc,Is~_xrAvqamqUW٪'Ǵn3ogUP?M,}5!\M;>|_'endstream endobj 29107 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29108 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29109 0 obj <> stream q /X1 Do Q q endstream endobj 29110 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29111 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29112 0 obj <> stream HWn8}WQlW]&םK6I/ M[v+薼j9VI, &,"u{._=<{'R6Qk+\nT,5ӢEtG/sݷ]}ފ._=D%67QHQbLbs7նF]h'"g6D2FYi40TgOeI1rICݔ{nCteעL5yџo" (2|Dxa>_)ET4"Q}&*! %M@(,BծT(bҌz׌z7z7z7zzzwzwzwzOi>eԧQ3F}Y>gQ F}/gcZ"͸b S Xk)P=ŐR Yq-ŐŨ\R Xk),F}Z͸bbՌk),ƵC>pf\K1d1jƵZ!QV3k5Z"øb S Xk)P=ŐR Yq-ŐŨ\kR Xk),F}Zøbb5k),ƵC>pa\K1d1ƵZ!Q0k Z"˸b S Xk)P=ŐR Yq-ŐŨ\kR Xk),F}Z˸bbk),ƵC>pe\K1d1ZƵZ!Q2k-Z"Ǹb S Xk)P=ŐŽsl-RpY*JEW_( +$hnѓMth&40IqJCMݟm>E7L~ybWX}4dAT$ݷu#j魲s<b8uS?d"7Ӯ]N+5FAz _5WR:[xxh5vN!.pn%Xt::hs۬oһvmK"']"ǽ?V({Qtz\L\= +p rloڹNlFc"\XnD byl1ZTA=";P9;ä ~Y9(J,1 !|ZV}b"&4#fI^R_yp&-ED ϝ0 N6xh-0xoI:8Iz &3" cbF1:9c{iWC=4kmu>u |vKr %*bNmR8vues[XT(xa ^_]܊(U/nZx%Ɠjph(XMրY^wB?|}qG:e_{c}5}L(ʀS֢ko}E6q_F.Sʷ]S1B+E2<׶mq8'r:Y?V]=_ FTsXL$x@k+{ošP 3kjwJE%*cVaǤB=6^exdB0("|d╦[qmOgQ'Q/PdNfRf!4ZOg $.ohctel. }Ȭ^= ᥍ /ZUy,m3\vuSzju'9-uykJ05tpq-bLtqp}{߼?Vѷ-PUOcۇtO/iϓ 7&,i-uJnƷst+ L}x#8khA1OjlyǫtU gglvWZzS;pa;{:xl`?3H^ꚫ r#m%mcMP8w=@K5F_c-OVL.6wpҶ=/dÛqk xUn7؜2^'au;Ώ0e^GdCԱƻsg[tcw~@z].HMg17~>L=|5}=U07nRNY 9{3L*x{X7ʷ]ְKxo{9.vl'EPUZi6[:蔎W$"sx>x~Jܥ,ISWC{ƈpW&~2r+WDO|pB+Ua \c-!c6q^5m@_c.a@ɡ3O{h/1f߷H Ċa[EX^#C#%P!7IO&r*@P_ďƒY=d8zWv^`.nQ z|U8唯=Vbt+98rgԔ1񮪠(J:&+Sn7DY/rhg.H7.^[o}}t9ƭ|QACYu09w>Y~wg,?F q`e8=}_%w",X1a(R%(skH+ɮS@mj~N'%w +0:FO,RH\G^8"g F\a2:ʌ|~AJETou_~` GH yZi]X1>,}Ks"%*=qw>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29114 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29115 0 obj <> endobj 29116 0 obj <> endobj 29117 0 obj <> endobj 29118 0 obj <> stream q /X1 Do Q q endstream endobj 29119 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29120 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29121 0 obj <> stream HWko۸_*K}.Zlhb+Zds%?h4>>9"ŗrۋ_~;_}mHX:6qD*?:J}$E-ժmjuSz.utە]. y]H"pSdI.&Y9Iec9gz^-+egߊ{te,7} "J )^HJ< ; %b!"XYHl"*rr\q#(ŀ%e",âڥ S XQQQQQQoQoQoQoQo)> ԧ4P1@}ƨ> pb\K1d1*Ƶk"͸b S Xk)P=ŐR Yq-ŐŨ\R Xk),F}Z͸bbՌk),ƵC>pf\K1d1jƵZ!QV3k5Z5a\K1d),ƵCVb S Xk),F}Zøbb5k),ƵC>pa\K1d1ƵZ!Q0k Zq-ŐŨ\kR Yq-Ś2BZ!+TO1d]3"GἉE!o^%q(B&C0NE:Q4JRgߊQBi;\&EWۦ^WcrnHyQ9䅻UCo~UΊǯq3s2zvժ^<[,:1S7ow4:p[]㈣R.NK{%ɏK0g벩U#3gS.6N]S{Ơo_XC7/O[Yr$QLu=nU]=tܞI>{7Mo+# 5ZZJROK|WzfVY ?Uˌ85~OX'.Vyjj/Iey/b{j glڞ:7qGR|oP8cClПͶ:t:k=LA|h#Q0~iT g(_Ÿw_skzk{gCٟo|CZc`]qg2WM'5MQ_wb>c/o2Űn:}|/zdvygk봶t&^`*JWkw aُrx_ZVײ0qn!n\SÈYliS>\V,#~3 c$tu 04sgq夋d ?@| &\MbStZq) VBN?0(񫡓ٖn+;X.KwUZ=,0Y>> }aD:S~7HK$WU3Þ)K~rntF_?'pbp3DϤ ۀH=^ݷ[9˚tqKlW. Gpش>N ]t#\n`3 v<1G"1L?IުcxLB 6G{ qaܬ'/}9`[&lS8h.x=K?茶rS@e-?ϾnH/CጁaP./qSMC iz HjsCcXA.2A.2A.A.AɕR&Wʘ\Y+creAɕr&WrL.rL.Gs$E1d(,A.A.RA. ^1}O1d1WLS YLC+{=Ő ^1}O1d1WLS YLC+{=Ő\AkGy Q_J.&[ۻX!US!˘u{gL\KJXoގo@.w{ d)^jY{@.w{ d)^jY{t@.{ d)=^jY{@.{ d)=^jY{@>K]:KjK]:+Ntn:M MQ8!8Xnf8oj_\kt3Gͥ}&PHU[a^… s4_ ?{JVN7=M-M<ФQF]|콻MnW4b|J†41ѳLͶ\sZ'0ImzRSnl z-kfjrEwd_$/2(+Eٸ7ԫmmN[)_l%K}An%6O/⽍ p+VIA\(#d(>BwMEL$):\)*}lMzײgcum7|}K-b]blŅƇ´ttތ0M<)%endstream endobj 29122 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29123 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29124 0 obj <> endobj 29125 0 obj <> endobj 29126 0 obj <> endobj 29127 0 obj <> endobj 29128 0 obj <> stream q /X1 Do Q q endstream endobj 29129 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29130 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29131 0 obj <> stream HW]o}BnvM6$ME vm1HUf!-ޫΜ93gȹ{ݩ/>z/U@P 7Nř ĆQ2 RV >uWmnuV 7F=typ5_j~0HrJL&b)M8#fv]=4Eݩ֤I6{*6r{eKiyb sxШґwK*m O'@\yL99䄣#HCbҚX`QZs so{[e1NpXp3>fc}'O s S>ܧ}*OLp1>cs}{Y-b{KH-ŐS Y=ŀ%bܳ!CR Y{Z#bܳ!Z!KpRkR Y{Z#bRK1d YjZ!KpRkRlX!CwO1` {!R Y{Z+bܳZ!Z!KpRkR Y{Z+bRK1d YjZ!KpRkR XBj),=KRK1d YjZ'b),!CwO1dqZ!KpRR Y{Z'bRK1d YjZ!KpRR XBj),=KRK1d YjZKH-Ő%guBj),=KRKu {KH-ŐS Y}yTNur\Zi5rOPa4 ٿ/ߎ?:4*?VU]YW=Ńg^Lz&T07Hݦl,q{xDŗVgf>+:Nݷ[їٕOT3&qOz>]SУ)jԮUzx,})uJuWcmfo|~=.ՏmDR zEQzr}ng?()@l(|௯A2^;uPt%bG[7A! ,-ǴV,hL+bZ JiVʴRA+eZ1LʘV.hL+re"E1dq-K ZiiAK3-#he-VF{!Kbuo-VF{!Kbuo-VF{!Kbuo-VF{!Kbuoŀ%=Ő%hBS Y{+=O)i uO1d ZP;n,%=Ő%hBSxnPC uOtʢZN{!kQ O{'=)hwBS χ{'=|(hwBS O~{'='hwBS t{'=L'hwBS Ok{'=Ƶ(,E1< ZciM5p RO߫T:˒^qZ~7~W5eǞۃ*Ԧ^lV6;g/߻b6՟eh{] .ڥ!f`$G\qOglwH8|F6>qjeykmҔ/{¡-d<}ɪtyY!qq}]eաMS"3vߵ_Mxg4%1g,(94qF o [e?i[$JR2Bؘfo#uadR}}㔢:i< 4O'=*PKm&aq& E Ć)֛\]6WTf?tjU̓T 9Lu(+>1YV"~%Y+^s#(ؤlX*Tuݦ4+lidٸ}=#4]W C؀Lkf8Lb7Jy*3a@oR*c/ ;:\bY7X;7 5)ʦUﵣaFC^\znêZS@9L+O.ཅ8AnWc%Kvv:qd#+>(}j9M+gtbNIUc0dU5NswBF\Z|m;Ru{iDJ5xN75DCv@tM{[}6xego-e,s #p~6NvԘKRje-0u ~8>Nj'ϕAy iOr[}HNgM' sC>[ZCnomUգdհj]`sE+G4ml|kwA߳85ifAsn.]C*g;+~X9 _<~Xc~44S{ҧW)t_pͯ*tҧLvwÇo c ==f%f2 jv+g]%_1;;Tڲq S !s }huu_ƫdmS5]?x( s e"žꚢבP_0(VPՓ8N JSIʀa"|97#_8ȣ0(Lo P|^Ѫ^ 4ܶ؈0!ݗ@;?/ (s FՆ}rn# 3=Xf zE b⮹Qmd2DKÄt7qaV`-8HEeZa:F>I Owϟ endstream endobj 29132 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29133 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29134 0 obj <> endobj 29135 0 obj <> endobj 29136 0 obj <> endobj 29137 0 obj <> endobj 29138 0 obj <> endobj 29139 0 obj <> endobj 29140 0 obj <> stream q /X1 Do Q q endstream endobj 29141 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29142 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29143 0 obj <> stream HW]6}ׯУH8Pnw )/b[+%$ǝW$)TCCKᄏݏ1DfRIX*,U,qWE&Hu^ˡZimWwqWG?>an'xE\qx{6~Yz/Ϳc߼ ݾyf,g2 ͡<Ugj$kq&ww)&k,x ~?xGJL`\ 8F"9E)<* p>,!B!+!Xv!B>,IzIzEWzEWzEWzMׁzMׁPB}OI>%ԧP3B}Y>#gPsB}/E i}Iµ>Pp!+Tc k%ZC>p$\c"\c"k} Ypp!PV1dJµ>,µ>,B}ZIǐE\+ )Rk} YzZCVǐ1`1d*µ>,B}ZEǀEǐE\kZZC>p"\c"Uk} Xk} Yp!PVS B>,µ>P!+Tc"\c"Մk} Ypp!PV1djµ>,µ>,B}ZMǐE\ k5ZC>p&\c(!\c B>P}1n[x >`iE=E??z~j׊\5u*wSݔGs_}wC9fFNPyn>nvbkY&Ur7՟dfmlew#~$S$SbiϮ Kt*P+Oél3<^ 3+`R<ϝr1߇P~n=0N(yl2ơwcծT+m5gv;a)$MKciLJTI~wD=)M:XRj6JXn-h><Ϧ,d"P\,tʵv21nưoX G,q !!uGqwyljl?kk/Y7?i& ˹tSQOy" ֞1#_=L$ZD`H3.~Ӟjv:ZD!ڦڛNusxCgέ2`34`x38..}ww0ᆙ|"cr9ew$voS~5)|]KSJѮ]=T5EXײLDZ@|xX |w|Z|dbƥ+OI.TRnajx,r9aU?NDtc>IQz HSχXOԁSl?;De1P5c*c.{I1Yd),g;q~.$3+L3>G᠙fY.]p\$ϴ+dr/ɴɛۮfG˔ZחIƊc-}Ь*246@=FӚS;{ StńOYU2!VS Y4:KAqH\z=<-mۅ>+(D226U 05RHץ:wWK 2iI13y$sôM{OĤb-K+͊ a=˳t%Zd_s3 Deq ԑ\d:~u+W [2(sP4LJ 6mO q?ۈ<ֆ(Rc]QgK,sΞ5Ge<j#S2%v~xeT^+=v:M7h,'͔߲u8ɝ7mp'湻`v'%ބ~zJ&l겺>myHHI^J77m>VsIfL}ŝZJra=wө;/,kθW1 xUǮ ⮒5S Ps9wcֻ!|%k?@~ V]C(@pv%r3K$pg0!s/ *f[O^kN&K5<[S'X#-_A-̣t6}vͰWσ9K3G,'ӰF_,x_°}ysۍ`EˠpqZ*s(ژ3Ͼ;'v޵6p݆o9Pǣi sY,˜Ma޵!޶m(_GK$حXd[:Vfqw.IQ,9y%]~{N~(c]v\HtƔJILeѹi v\=TYko;?b#h~G:-OS9S\6F*NIzִa ZK@Vך#_ Q 3:ڔ؅ݹ ȇWNXs*^VNf2>T?{̡>*fXniV)'RTΰ8Hec NU65ئ{)TgyG8|eD62A ]>N̐0ƪNcboLe"A{[ zMАo˞eHuuJ2BWQ&G/#G|OeƉdL4qrrRP K#cLO/5:mF;F~YbHeam=6ä*rR o•ۡ7i‹raS(S4 IdPTc57C*xsCfA+óQ a-LA13b&ѮS==;;qqtrgP_cI @?5vХ=+ա9>AiIM&5ؠ<4Nd6U~(YP`f"Y#}dm9O OT\:UXBH~hΞHjeWuxk7b$W3`=ޙ4}Z>9ϬNY={4ʹD_M&ڛVAwٛuUP._o>0()baqGsx4a~? N|6tH .n?OX. v gF'a DܮZUã' oOO|hS}?[_z;ؿ`Qv L3c%u[Ou|FgcZ4nHN|@PZRXx}?]rQh5Ѿ[JA9?/ E8DnEd͗}H W>- H.u(:Ghy*9iuԴmuWW=hw2rɇsM5Xvx2שOڧjSSphDn9`_6m?;!2\lh~i1ZƜ ʂ6/4f 'ȷ{Z%'N۬ BS.<+߫r*j;-U\[ `Er-[aY"~*5S*ͺ+kOK7'|geydz6_⇅sɞoy5toy S9IH 2I/>~_7`jendstream endobj 29144 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29145 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29146 0 obj <> endobj 29147 0 obj <> endobj 29148 0 obj <> endobj 29149 0 obj <> endobj 29150 0 obj <> endobj 29151 0 obj <> endobj 29152 0 obj <> endobj 29153 0 obj <> endobj 29154 0 obj <> stream q /X1 Do Q q endstream endobj 29155 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29156 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29157 0 obj <> stream HWks6_IHƋt;u[[^X,ziH6:㙊O >?ut/q"5r%z1>;ѯ=2)0]` ?wMg6slȱ#Hp9Kʐ0ϊ .e(cRzWzׄzׄzׄz7z7z q>&ǁPB}OI>%ԧPSB}Y>#gzKzK<+ bl)µP=ƀEcǘg1,µ,B}ZEcE\b Xk1Yp-p"\1`Řg*µ,B}ZEcHŘg1,µP=<+T1`Řgjµ,B}ZMc"\1"Մk1Yp-ƀEcE\ b̳k5Zp-p!\1"5k1,µ,B}ZCcE\kb Xk1Yp-Č< UTqrc5AFĠ8gW?YYPA@A:3ٜJ#þj~bEy&c_,m`{&??I jɌ~+~i|'ca֍9f3A sT&@i:'}lq|4$#͙HzѮ;z؄5>c+NX d+vvㆷ*YtƨG@T3Cv2p%Š ^| zAqEfM˯6h]2M(}t4G@Gn;Wqg[8?vul:A[69^6 yR}T{m UtydͲmJg ŵ7~d#Oكʦ{7`kHc6Z?"ztW|3W݂7ʼnM_&DrkqRl|Ÿ+5JJ'>'ԕV)M1xηg_K,Zo mJgizC~CN&%3e8s[ܮ?An->!]9n_[v{ܾ*RT_>fͲ0$ŹrFP}7Y=m|u"Lٔ"ϖ\lƽN3uMm|.0KF̟t]lpD)qIWgQQ1M2o]^xZL7M.!sRΙ- {lVu"g컖* $N2AWEyY7mYif{8+3%;t6H}Bި>lF!=l'7zz$ DN_C?T.Pp_>͊"ا8)բoYvn,8*QL f,xAQ d0r*$lJ}?}S+력oþJ]L>| <Lz(QdD،"r\xK' N(% |߂ +Rn:MDXrHO9 ~ΆT׃p8o$,o\s߂xOɏ =lx(>C4& #*Z!1ИV4CLp }0E|Fi޹ܧY"n$uPVp9޶$zf/KəS210xă9@@T,L"=Wݤ$eHQU]^6{CS5QkBjE8_߬>ՇˋhrrDu:tJ3P|QOĻd}W"z'z?CK&6[ 'z4sjA8N~ 9U4 :p)_|E`>W@&B?E $LHİ{<47M$X!AG=,*ChuQp4ͪEl`O;t/uf3tMVx_v۝}|?Ú0RԢ/kt_׎'"}WGS—?u-<0Dئ|g @ ALH\6ˁ<g7-#?DoŠ^/~u;a7g6tʚxDDfH"ˈC 0bew+*kZZۘclKmL #Ep304w+%nY<5%qQJ٢̱Lֹ>40{gdWcR)|Q9d"e #wu;[7!:lg"GuE}s&'ʄ̽Ïc,'bVeB##/, re'g/Km٘J^P3NؓY+ & V<¸l$eq&x; cӝ sT} J+@30 HиrT 5xZ.2#84J;W ;;7VU#lnWzlƒ^ں[ R+U}84e*4<`_էj2KfR0T Cӻ4=Ý}EThd`!h㐧P RP^Sj_viCNaⶾ6L(RM[tEi)p`DN3CD \E8Ѓ1zU=xp|g.J9经w8eb=5 a|Boa Jbiu xjɟN/K V]풍'e.D@99 ь.7*G~iݝA_nŦ\xF2 IIQ[\a;v^'!kj5lo OweRIC*l1$߷zXɛ':!ķ<$?Tln0~yw"p7௓CMB Q ,&FJcA@'WXzR9;:4a ~(5.!Xɍlg@c6]}c5l7ɧ_ K0t]ҁ8pyEG- "IT3R5X#^Q fX:wq3YM! /ogMop/5K!AE!W8z,^Vc`{ZVN-;0ýs(/lY ˮ}*n?!h3jPtPo1sGTrz`jmB3 qnhIu0F9<(qNbc'_mgFb W_F[ֺcHbB;j9iM}] B" Ɍo@@\F}E@0(2>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29159 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29160 0 obj <> endobj 29161 0 obj <> endobj 29162 0 obj <> endobj 29163 0 obj <> endobj 29164 0 obj <> endobj 29165 0 obj <> endobj 29166 0 obj <> stream q /X1 Do Q q endstream endobj 29167 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29168 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29169 0 obj <> stream HWk۸.$b4&[dhLhlΌYJ8$%K"' CKEۓ| _~yyg$e9\ p&*NZQL"FJ]UїyS5m}[nH[F8gr>q6a$1Igd>/\<*^͉,7;UJɑ>7ǘlIr#řy<]Ut!'8, +ǀX0RX(ǀ ԧ4P"@}> 8Z3P qV +TcB\c\a!rĵ>,ĵ>fXq>p-G\cB\c\a!rĵ>,ĵ>fXq>p-G\cH 1 a}̰B>,ĵ>fXq>p@\cB\c\+a! ĵ>,ĵ>fXq>p@\cB\c\+a! ĵ>$Z3P qV +TcB\c\+a!Jĵ>,ĵ>fXq>pD\cB\c\+a!Jĵ>,ĵ>fXq>pD\cH!1 a}̰B9\͚]l]'NYF,8<&$IrEV#Oj^lܵξoڋ7eT)O}uk׹H*zk.n}͗ۦ^O!Pd< r/֟9UR'xݾ*{Q(_bs_V'y,VKse=.ؖ>- лtˋac /41&@fJ`&g!՘FBEzi%hccM[{mnϛao0] zGGpo;MryZ"M$"țit{2{tkƝV1[_ͥ:ͽjZQ49_`&Le'*]#{*`1Mq5WnkL06:=.xam[^BS1 iC[wFz-jB t,ϟrt$Mƒ1*lW~ Se8K;$\1YPʾf5 ~,mN%.ͯmGbc㋭OrNy>XC"-gvN %kjvXqDZ<6Sb PL $4bZ+^3*AT>wR-s= s)Dz/ٛ&L~=MJ,gǩN2*LNU$5 *a}3kq*4"suP#&txw/Jz ~>Pu=}Bur6+>:/b_Sp/͡'pfe.s(s7=([RTS󮷤w%; cfp,ɼ(+{ b@M]sh!ަ0V _4-`׷VGU|q-p&B%4܉x-pu;4cs.\*|K!;k;ٺ!o5 +HqRNٲs,*gTA2} Tnߘ*G:};aZ#+81R?DhE됊!P߳X2v kS?j]|뺱ҌfuضnnHq3ݨIFv|BKt}'My0/@bf2E7K*1JFy{dvEIdƂ0df;@REW6g)N,Y4cNK^'prkW)D28>Zp=7[:^1}˟e3pMY:!?к/{]w#ǎanry6.Boe%O:}X@8O˝;ޠvgh]j3sǵtm_[v%n9=26zl&_1,05,ٲv(v/GqAL:GQeřdF$"unj]ܮk\TyY/ T*BhnжL76Fi3l/-0ۧCi~bbѾ E <ᐨ(W=P ϯ W<*w<߹3`x6õJ9٠fS#Z 2VK(7Sғ3GTcу>p~ǿojSdxzmMP(e(e@}6lxW pN>~`ltҡ~oƈd/ۍ%yߜġ6I+=Ou wF3͏O 7~>Leu[[Y:ޏ@:%0#Q.3=HM&ɥJ$hZ?_@$O7?*ɡ놫Mc'~ѤJQN,G>jw岊H]nkςͫŖ48sYw~6$Tu*crjoLL3ضV[O{w+Mu'\@S*{Z;*W\$85+56-uxɻ̉ۼ|Ⱍ_ 4hL8@[AZ6[C6RdGڰPtmoθg\R1g 2խ~{6x R!Z2ٗ@!o^ ̳p{?L~9JoQ6*% !Y^zxw7nSuX<1n-"(LF+mR?]mHUZzE2U)!mI+`J@Ăsx2|+Ѝg͉݀rdǶKD=c ۫烈(4=H*DwC7(ujt&jJÉ4~QG[\|ip7 ٥yxQgEUiH8DY:ɯ_&'^X],NEEU:0"VDž3%hVjQ@mOsei*48/[8nR9ښv1ewǚ5tQS qvAMqc94Sekv#LCU0yɤ9'Cv3ZР9轲J$) 6}c0 Ԫ #m:g3sah@?K7Q6dV``/q`kտSŮ>Ln(QX݈ 11GN$ Y9&`%o% )"<: M(%^Wڍ r~x(/? #oG#9Fx_ao.K+j{f-Zz7ZˍURUUn D뷸m$=8>o&p!E&*BEfU\`I55 :fI8(ɹ^}9vC[wZr]rj?fH'an\ThyW{8'[uېH428eC@bqGݍ|[.褩=rD ۑ dhܖ_ Y䐊t %,"^9yu0 =2Pxgdۗ?`EJendstream endobj 29170 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29171 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29172 0 obj <> stream q /X1 Do Q q endstream endobj 29173 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29174 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29175 0 obj <> stream HWkobDyc`A(j`M.uPUܸ\{Ҥ:<{9{/q_,Ud}6LD[SWіG-y_xәzw?/wݾ۴[}W\~:wŋYq9x3[q&Lvm7v[3٫3GgӥĬ~N<ΗG׿l^:On}w.]es|Ar gt.}[DG>̛,MceCIJ៛"#`].r)9YsxIbIXkU6/1b>(}rG>* O}r_r_r_r_r_r_r_r_rrrg^uփJlSZ1K@k%,^b%F,Z1 W cpZ@k%F,Z1 W cpZ@k%F,Z1 W cpZ@k%F,Z1 W cpZ@k%)"hĘKXcv/1fi#hĘܫFZ1 W#hĘܫFZ1 W#hĘܫFZ1 W#hĘܫFZ1 W Vb%F,Z1K{ VbUkhĘܫ&Z VbUkhĘܫ&Z VbUkhĘܫ&Z VbUkhĘܫ&ZmVb%F,Z1K{@:|QU TȤXVZIi%V JURiU@RZЪV jUZi5@QZ jVZYieVpZKbZa hy偖WZh}ð6f)-{1 h{=ac}À5f)-{1 h{=NcԊ c֒;@K>KrA%ƃ R AhG{T#ȽxDZ*^b<|-r/1>}@K>K %1fi-TȽx`Z* ^b< -r/1}-r/1~Z* ^bTȽh'{9RO s%1fi-+7R/A9'ߣMbV\fx3[y zl~lSLmeku<> RckumoK|E Nw~ћng3bS`|3鶽^zOog%x?inSstKH~|bf۷殿_MK{ro K??W6 `|RDԐ4[ߴfCKjT3PFo{I3&\M&[uՔ?}ewѧ:PyǺx~LrlGnI\>MMn0DZ]5ˠd ;6'L"!m[p5} %=d}WA9-mNr5||}ny8=f^b7{;*==g[JCK>Jn <}4soWT2odls30 I&/96*r턚msv+w{߮[?w<&ڕv9~?jC/.Fϊc_{ЦP6ԅ?v*DmY H,[/C#V)=z-3[ <#֚!#1feRZ h%VRZ%*V JUJiU@RZ5ЪV jFi5@QZheVZi-1KkIXhy偖WZh}}}}}}}}Ĉr/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1fi- ^bZ* ^bZ* ^bZ* ^bZ* ^bZ* ^bZ* ^bZ* ^bZ* ^bZ*%ȽĘ$F,{1KkeyhC:Lho&[㧱x ?u4>oSLv=OssCִz=_8r iLa$[3ӞW9qAm8? (:7o]9 NJlUѰHqv%s3+GdMywF/ZJlZe8.v/v1rq>߈1>ط`[|l\9b*49;_<.MiK}i~eA6ވdKzY~N+|j)K(,5՛XFN>o3z\C\} @endstream endobj 29176 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29177 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29178 0 obj <> endobj 29179 0 obj <> stream q /X1 Do Q q endstream endobj 29180 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29181 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29182 0 obj <> stream H]o+wrdk|tiM7*za"6Ԓ3(g%(ƫgf^<vqq/o`/_z:=˔OeM4wNsXEaE$M$Y΢߲庬MTUyt'n<:/I6R8D'ErvvBY15rlOX6yY'N'?+yf[ČXH'Nz<\P{sbL v߱ςXjǕw*{HXGb& 1Rš!4OYޥ c (EW{EW{Mׁ{Mׁ{Mׁ{C7{C7{K{K{K{Gw{Gwpc} q>!'pS}O Af%Zm"Ek c ("XTk c ("X>H"R5O*"XH-H"R5bS H-H!R5bS H-H!R5O"XDH-<PDj=<Oy 7s^ͣ\3QҪ *厹M4ˋlcaq/aKJr}AY9yVnlõ\&=yum~Ͻ/ׁ+/r!qoYsW_6Ƃet-O܁3yBY1>hggIت3ʪ&-ŮMu\na\#Y%= vKQ͊A {jv}H&ɾ^UpVfaK&1vrmKBY5.\9#Su{ c٨#GBL. zw0!٧rIAknozUdUa ٲ,-o{65k`MZkO4MOъiQէ[n:Ѿ$Bozx(\ \;p9=L׮7mcw?UNWC$ݘ98<܀E8ٚߚ߄c}W_N}B(xz{JfkѭkTBo.F lXmwZfu}Nnl ȮTfh=l|? V?D:ۦ15Ϙھ.ؿ/5Z Y7[}ݕ{VY^DtlyÎG-|_9`q{T7!yS-fHݨ/G\`n=~׉{0nVڭJӛp}ix>)xn:1\ x~=B[ȢĘۦ,&ޓc m 3eݴK&NHڧן@!.pަ+QHek9tJ/F|mu97U0PV&ce[UvC5;Q՜ٳWhjvUSՌj:oG/& ΎsrGv:`9qendstream endobj 29183 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29184 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29185 0 obj <> endobj 29186 0 obj <> endobj 29187 0 obj <> stream q /X1 Do Q q endstream endobj 29188 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29189 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29190 0 obj <> stream Hio6~TOXQM!:tnhBX,z:t~,ZV!@Hۢ7on^x ()G"gXRIE޼C&EjU7PiLW%͏Qo^m77[#" K$E97 ɮ;TQAEã .ȤC~Y-v R1hK]g4OWm [P`!)]0,];tn&˱p=L{o}ͽ?AݖXC\t-T\)cV%AN0Y j2eAC2g4מg$ґC8pV)f}!8Hq3%1HPQ2P稜PHs3\xA?:(杹rϵu9 a`( 8C)z(@f"l)rlUIOZД*kdl[_1Lؾ|- ,0BO|n;^5T&ތP?>Ғ28B SŠý&^ u%IJ&1M!\޲oKxayyp@@.yp3r^' ƟK f9J{ HtqQt";72?XS$v|cR~ [nE>OR>L:*2,`-Dlٻt4=8  /SxFy3*08kGLtB֯rN9/]j;ʡ4Ͱ3n9O(\ISVV.ܶX9[P<@~`z}osF-M!? HBl1)IdB|_1\yg\s^e`/9Jrc SqF}x5lr.|Ĉ*ri*!@U1{*<Pk[L巆 r{0x7WE75 IdGnGtEUye @sBTc?Od?QwAY4G -졨nm;a([A!#%ς|hΡ9ɸvP!RÃ%$CwMྀ`ahMTN,H\fgk]j r@g,uS:zڶR,r![,njp2sH-bRr&T kHnW?Np[$hL?x5[/WI{@ V,D4>:YNf8X>S~*32}^nL"]L3lJAf:Z(S$\??T/>H?.iCo9M0<2VOxi WZy,W,qTWOI@wdeCΎ7=/k=?idnBe|5p(ǶjXuU AFuJ[o9Xеΐx! L>f^rRx^BPTY n~xsm`ǃendstream endobj 29191 0 obj <>/P 1276 0 R/Type/Annot/A 29196 0 R/Subtype/Link/Rect[130.078995 539.020996 308.203003 673.916016]/Border[0 0 0]/H/N>> endobj 29192 0 obj <>/P 1276 0 R/Type/Annot/A 29195 0 R/Subtype/Link/Rect[93.5999985 398.627991 199.356003 418.308014]/Border[0 0 0]/H/N>> endobj 29193 0 obj <>/P 1276 0 R/Type/Annot/A 29194 0 R/Subtype/Link/Rect[93.6000977 260.627991 261.395996 280.308014]/Border[0 0 0]/H/N>> endobj 29194 0 obj <> endobj 29195 0 obj <> endobj 29196 0 obj <> endobj 29197 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29198 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29199 0 obj <> endobj 29200 0 obj <> endobj 29201 0 obj <> endobj 29202 0 obj <> endobj 29203 0 obj <> endobj 29204 0 obj <> endobj 29205 0 obj <> endobj 29206 0 obj <> endobj 29207 0 obj <> endobj 29208 0 obj <> endobj 29209 0 obj <> stream q /X1 Do Q q endstream endobj 29210 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29211 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29212 0 obj <> stream HWn8}Wp/‘ś(䆁x1Ӌyp@V˶2j)Ro"YӇ!YXOvO?]5/_ ePL2J3`"AJ\ZTYW~-^5Us,Ew,sv, ^$g$1˜)"ʦfτCV_|ܽɊQ_xP2fS7v'+\ovA (2g~5H'c ޲ۏ1۳$FS|k6@Xrϱ#\ X,C&Xv}.,AzAzIzIzIzEWzEWzMמzMמzMמPxB}7z7z7zO >%ԧzKzK< Ӻ!k] YzZCŐw1`u1d= µ.,BZAŀEŐE\+׺kZZCs \b"{k] Xk] Yzϵp!PVuC ׺|.,µ.,_!Wb"\b"{k] Yzϵpp!PVu1d=Jµ.,µ.,BZIŐE\+ ׺׺k%ZCs$\b@u1d] Xk] YzCŀEŐE\׺kZZCs"\b"{Uk] Xk] Yzϵp!PVu1`u1d=*µ.,BZE&\bջ׺|.,_o]p$lwQ’IJ! 3+ì:<^4lhǬ+]FL%cV 6Yi_쇷{Zcˀ^w>^{lNxL%ij,F<h/*C;*3#zG:Ѕz""4vD+q9̂ltnvKثnBhtw(e-:35K SݕΪ܏S҅NOg="/?HTX11T l*MD* a"x;,rb煴CӍP+U\)̶S8ĕ:-.gcpZMZ*G(MI.ͺkb(Nv[pY>ԍ5ub?a4kk+Ip7_[Z­7Y%jɰdt|= ʷ|=: yۀe,᪓v#y:ӫJF b{=_p|+h쌁aDlI;}@kSt](JX :%*NCXj ez/N0 k\66i/FtKW|F4l&Γ9n-h5n(QsN|LY{6ͧ Me&`̺ ͪAnFn<1l_+|}5c[Q-r}06[?1z였d mӣky ߽R܅MIRZVo]nnN`Y˯U#fڵ?,D0u3)`}U(7*ډ-񄣥87ԅFlsf)xmӥ"Dq`ҘRDJ5+:C͇ zs^f0CDa%]Ä.c5e,I ZMa0[^U8GGU:FYɅ%,~}Rƙ v#V`Ц!"INӏ:"F.KJ0j.\]~Xζ,.^ZQ)gexn}G1+bXȺfr"u%aC&~»8yzCeJs~4薲DJv:0} ʥJuΪłX=}z4+ýA&xBs+D·s_foD5fJЏ[S^n춺.Ĩk>b"b>’}!_~\Fh2eܸ /l(43|@+ 0{1(hd|eQ} LNN;l`,l ifBӇ*4;YiX&iv̈^ J)Q6m)&m_44$+=k U0 sݝ~rQ>2/9/ n.`,sGqw#=ˮSFn7MsG|?1(K͠|LP>!FZ+6Y @XKWwønV"Kb"WryNcvuB!/5-T;V,_y~uWl8ıbScö X-l|RO2+q(]f3 ׷w>]~@U_n߻v׃!) /6Qf oJ$;a/; BܮӜOM z`tv Hq1s f,1R'&>^6QZw$a v@&X'wi]i[蔑OzW.a5WqlԻM  ^4e*w_ȬަZ0%d-k۹βaXZ3 DžH]Ê˿0OW`5"S<*7c?BW0cjX.5#ڝUރ;>+X'֖&endstream endobj 29213 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29214 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29215 0 obj <> endobj 29216 0 obj <> stream q /X1 Do Q q endstream endobj 29217 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29218 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29219 0 obj <> stream HWko8_2*K`6M̴EkHBD[Hr2{/I=LޤE<"y.//>o_I/_]LƬ.C8aX񰫂a$M: .>Vrvvzvupo:Xo"dz0Ha}YCp}6C69WI$b y+%qecè=Vj@i-e5LOX1:-GJr~}j~l (_iW &L@<YI B1WQ!(3`| r S8bs1`1 Y`Ż8{9{^x^x^x%^z%^z^y^y^ySB}O >#gPy3B} >'P_x BYF'\bջ׺|.,_p!P﹖u1d=rµ.,µ.,BZNŐE\ ׺׺k9ZCs-'\b"\b"{k] YzϵpAŐw1`u1d] YzZCs \b"{k] Xk] Yzϵp!PVu1`u1d= µ.,BZAŀEŐE\+׺kZ;p!Wb"\bջ|.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] Yzϵpp!PVu1d=Jµ.vZCŀEŐw1dꋸ( &onupfD.5PPifh}["ݙZ}]M^ROW/>^{A*D3yMC f淺+rrV,6Vk꾯 ä(Ob2\o³ HE'gbU(6q94.D1uqU`l&r1Ǫy OW]9/@͍g`F!ĪMWczן|4|,2#,fy-W˾TJEzt۱?FA~^8يDiND;oU.YDیc|.2yS`0cf`~}i7=۰n{G$Ay6u3 I^P 1rYF{3 BDeQp|mf;G͊b}uWqKލG{/~MG2@voa '&y3"lEǒ޷Mv> Vb.XGtgYq%*v^|p~KY2 20C4l|DXjaxCi{ dEDLɘ|aS]դd;g>ԍyP[ eG|c;R8t_yu|OSwıh$8WM~ӁD"⼐lkZ%,=#o5bOTOgzoN}?FiGl)3@kKg cٗy m ̹)GA\`~m7xXꟺT\a~hڮ!ʨT;20[ʴ=V{A „t,b^imf`!k`1R"}"t:fp&+(,brU- 8}m+]<*E g4lLH_@k2nd+&a?*΄ãҤ#儴/pR̭h}Sĸn+gX3H"gk!fx+ťYmZ (7YѧȲYSݛ)v}5J.X96( 1dLLlo )x*͏2ٷ6}1_ȋLt{S_1o{*jYp Wfw8mYk 噠6gW)*Ja϶p5K4 $qd*.dI%=3it.oq-/OyPu.?e:zW 3Cwa{b ,r}gps\qűc;)ó[܊1ћAu՟'qn,8kIE[[h(_H`r >,|Gq60)#{)hQ`k.ɬ*-}`+wP c Fl\ÃYpgl;tmlkgo*vG{F`vX]I`Y-4z==qu=^J(.bFxUcәL-c`4>rg&yO-uTٗ.X@5Lw/맓Y'5(,)&.Ԩ ,8H &1!io3{Š"sJa_d>%G*x47n{~LMifNв6D]Kڬ}A A|x M 4JE;1[^W^nVd>!@*4v;iC$FaNy'×silF,d0LO8jlMf?JÒ$?9C_/7AF^=DT^i;O? Ezhy9[~FNa L ح.#Ax{wpym dz4zj y[N+ ʏISTxH62FDii_٢\ֽc!7|4ݲ)늺`2k*C0DA!B,%012'$ul &@Z,3#Q]U{„IVUh}k? G!5Jnıd~úӉD9bB7Ӱxzr>K?u'|BJëxL3oZYbS) 6./V>YO"< 2VB!!4庬NfT'Jqrqk+Oa@{2[zJN|v/sDkȴt%UA<+v;MWʵp3=ײ܀cJ ֛+VMr;NtZ*T!:0J  Zr\σiKH (Xj. Ɍ UeZ=t #:m5h"(wADdXH% o ˼_JhZQ !"@u]Њ;x4?TüVċ9;]Ux;| L]M@2G0(ϛ*+wfʌ I̦ii&q[l]X-e m 0˦âxH3fX婕5ΥWH,R>\WV7I!r89ځByBʶ8OLFole#$m_ Q5_$ Cz[!3gLY o j qlnƁ&2m ~е8BI~e|D!(Q4]eq v @%<ԏ',It)nRP'TJ @!dm B)&h)/vU/Dd 5K(,_mjg;{SG$m{Blt9!]S8XU%$Ϙ{닿f 0_B/endstream endobj 29220 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29221 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29222 0 obj <> stream q /X1 Do Q q endstream endobj 29223 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29224 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29225 0 obj <> stream HWko8_!`@ˆ/=m;H.^I1Pd&QkII{)L^C!\^իwq/o 4&Bq0M8,T{qа m1TmmVCWaW7}bs]7k'i~ ryØagۗb7.\]3Gry~f IIwխhU8!q[DSZ ޭБde - {M4K",W;xC3O=C3O=GsO=GsO=GsO@ O@ ODKODKODKO}O< >ԧS"SO}O=>gS#sO}(7/iV7Ȧ<ME3}L5KշT=)\\5HZ.,̹TakSJ$ksNh"3y9軍7i@HW t^e!N^~z1ARcz?1n[͠5OË|)vp:[.qJ_(Pu0ɶXTځQ9_4GӜhZ6S}׭hɲ. =^gK0%= G*QjcAX'Yۆ O9qcqTV _Lw̅YHoNɒfK={9{#M=z5#0({?VLf$fTYb0gc=в8䙕02Y49*nݰ)+72q30O>}Lmըb.:"N bbOj/,FŒEߌY–k{CD-^ ͖\VHk -X&9 Ǚ|ζ9CdV? b+sN6 54ܫKiϻ.y! E^d0昱j̭^ڱݛkmAѨV^*[Rjj|^CNSpwR''+:8-Ӭ7-̣=&Vl*%çɐl`Լ8H&*?`?`V1T=vLzDMv_(`mcuUpeVn\7bOlԅ!;& {BSj poUSnӌ8^æj ޴ |W7(=%%j%8fVGxUfn|37G82ڴ:B G⮦/m^.vRA@x3D@DsЀ\ }nA8$qmx# F bUf7O&r s-g㘸IZ:/m*5P?͏(L9ڛPu‚y6= -q 4DH%tOjN5e ǹR[Y' Ey$!ٛ,Ri1 ayXp e$;w?ʊM7PLRWi,BS1M<A4WhSn73gfwg4Ļ옊W ]6Lj克ZP;cMH6x 9IT,,p?3P{TdJဤce9}:=ًrڽvR'sRSťNzmCGIE,<7-!/hY'OV@̵@<ųU9zFT%u=?'evHDlP̱_VUDRk5#vF"USEAt$ɧ;=A`߽#<@h}odO@QڝnbƅvbG=^' +otSdUU<<?Cdqi5`1endstream endobj 29226 0 obj <>/P 651 0 R/Type/Annot/A 29231 0 R/Subtype/Link/Rect[93.6006012 543.229004 184.404999 562.908997]/Border[0 0 0]/H/N>> endobj 29227 0 obj <>/P 651 0 R/Type/Annot/A 29230 0 R/Subtype/Link/Rect[129.600006 592.911011 255.598007 607.890991]/Border[0 0 0]/H/N>> endobj 29228 0 obj <>/P 651 0 R/Type/Annot/A 29229 0 R/Subtype/Link/Rect[132.106995 582.445984 326.700989 592.580994]/Border[0 0 0]/H/N>> endobj 29229 0 obj <> endobj 29230 0 obj <> endobj 29231 0 obj <> endobj 29232 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29233 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29234 0 obj <> endobj 29235 0 obj <> endobj 29236 0 obj <> endobj 29237 0 obj <> endobj 29238 0 obj <> endobj 29239 0 obj <> endobj 29240 0 obj <> endobj 29241 0 obj <> endobj 29242 0 obj <> endobj 29243 0 obj <> stream q /X1 Do Q q endstream endobj 29244 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29245 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29246 0 obj <> stream H|Wko6_O1`zE8Y 6tBȶzL%$%͐FqXUSLSonipˏ<|mpan0s, mI<~4ah,R gvU/wN%LSqWUxv@"JSyXjC8nAKϲ9Y$Ûo,܅A.+2|AMp>'w81Ős1`űr0d)jc_깧깧^ꅧ^ꅧ^ꅧ^ꥧ^ꥧ^ꕧ^ꕧ^ꕧ>!'PxSB}O >%ԧPy3B} >'{ ӺXpµ.,_p!Wbջ׺k9ZCs-'\b"\b"{k] Yzϵpp!P﹖u1d=rµ.,µ.,BZNŐE\ ׺Xµ.,_p!Wbջ׺kZCs \b"\b"{k] Yzϵpp!PVu1d= µ.,µ.,BZAŐE\+׺XHµ.,_p!Wbջ׺k%ZCs$\b"\b"{k] Yzϵpp!PVu1d=Jµ.,µ.,BZIŐE\+ ׺X(µ.,_p!WbQ2dY60A4Q&In`ζߏy$2τMT]xv!X;۸Wy+mEٷbꦞ^,wC1̽wg߶ie'Z2|[tvAgXlkW=UMщ_aT3!X-'gϲyfw S _:Gyׅ4EgE̹ԂH@%w'g2<ǓqG1%Y$J9С JFL-G,+S\9, \0}1K7:"6tl^#yu{\QTj?tTݬ8kFTBq~ kT8>JDP*cWdj&ml~ɶ=;B}UַB$e1#ԎhU3U (H6VNE)g|3'9Qn)ԤrM$v(r Q, nI8*]5~yǩH̼'vցm]Z1>(C?cK/dfnF%囻|e*/.s,VC!`uob6~?-bv)lԢ&"L.$]g`^s;^KUcA8M;v>Zyg oٲPZ~+V@7Op_bOO6ZEl *&,f<P+LK]WVAǬCWLUc#'=z|O,>&!1gL%61UWd4sx(m.qvS'JL*b?"~0;nҧLGٴ]CŃm,Q־} O)#i.>dv)̣_RQl  Uܞ$k!=xqV[^R\ftn7|ELGZ*\7405?9^%dYiK94y\]L"ʓd[N1yؘu|ָVAT_QmCt. frzϽm$QvdQ2Qϳ#}HAK6Y^IMlEk }>cc3_Tq8E&RWdt ,~2NU|%n^^CpWX7$z45]u)|B|B/9a-s~fr1Yi;g=^͚Mg?~2+©M; m`V/5cUq榧̪+;]qRoEgJ E ;<R# `x;< Ua7ݶq УM"zm.`$}Pl%֖4{8gp"^?Y*jox|4;u'J=7 J8x-V^?姡C!Mr=xV-H>S)Jtde3Wy1 "}b KA`{3mޚrg&ɱZ4?X ŶHuV/SL?T2I,|ݚctj|6ԒJEχQF!gSMm}^H2W{+9x R ɽtŗfֲy #)»׿:Ђ4 a91Mӧd*M(r_3I!tĸ^X{Ƕ{@H3{k5w]7by8tas.ЙLFtDrTIA6؉s+P[H8T/ۼg 08~:5ArшzbEjh9nHpeYQ. Pt@FҡH:@zO @2[.i1" U\Gn;蠐7oiqE+ 6tRa2I蔨+'t+N((]}dZn%hlzn`3)75%{NG8ofȨP8gۤ^v!;")%G;uw[ved.fH|DԴN"P=;{@y!mš$J~+|ܽ_9 +[h)2gRLjr{?:Rcn3l: =8w.2f)ytTMF T~[!\j"mQ!,DL}sEXv^eBt(oG+~>ȉBUoN^Qm۽8;:Fr4tjC*0zt taϷlQP2p%m#_ O)6k\<.X%GUBex ?l,C'a8u$F> j۰:vBfڭME aVӾzXٸ*몙i<]Q|y<6 _k]e1Sbrl/X 2**:ǥ.;=vuI_=:a*9!&:Dy/Sb!d†\D]ٗ]낀|ͭ;nȝ>g0篗? btendstream endobj 29247 0 obj <>/P 1425 0 R/Type/Annot/A 29250 0 R/Subtype/Link/Rect[93.6007996 219.429001 198.408997 239.108994]/Border[0 0 0]/H/N>> endobj 29248 0 obj <>/P 1425 0 R/Type/Annot/A 29249 0 R/Subtype/Link/Rect[213.748993 501.729004 317.213013 513.713013]/Border[0 0 0]/H/N>> endobj 29249 0 obj <> endobj 29250 0 obj <> endobj 29251 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29252 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29253 0 obj <> endobj 29254 0 obj <> endobj 29255 0 obj <> endobj 29256 0 obj <> stream HdN#G=ObusK\`f 2̂OJ>nw7hSާN/}z|:N˷~,_Wf;grus3]~~1/_OW׿uriߧt{;~~xy>ί?|>c?>^i>7`/a_v۫xf/Nڟ9!ol<4<2:6#ofofofofollFyK*[Uvd^9r$Gy> stream HTiPSiMH^| ILjˢh#@-F! aQYeG(u\ԑTնve,?kT͟Suν֭Q)t= J]'ʼn=ra8RixT*zڎ>}\Pz@R]~ːGb;SIRTsTNZF#79:[p:qn^aI(I HE 2rObD$ (t'ueH&jKeKQ4D{<=Id[5y([k8J,E2 J@=EF(*zEύB.ЀΣуUalĴd0KUHPKjⵋG f[دV-Z6.~ا} 3;?ܟ>q٠/y I Aώ>2NVQe+DE11o^WĖ LJ%` 扃I(Y^zBEbJ(H{,MLI$oHS\Q>Ã6mhkhMoJk~!2 V"TdcTRk*#| $L`*XcUӜs3 Ez.bc7ba+L&z 9 vc H!cFבEHE$XH2@Gב2 .hd# +.3Z$ķV*4Ld`>ғہr&+a"+Bk{X?&3º%9wrXx1E`Ծ>T-9hU%أ۩: ZB*sq_J8ɓ>ޓAuD8񍙧[esv*45fÙi*%l윬F>7rݶՕ/:F7ܿ3x;!4 0'߅[>:u軡duMS5oA+c EAnMN:s;|DYVrX~}wkj{/[΀#4(?|n1lzcNuT%֩,LPF-]e|ҲT]6p{7:=L>fŌzV^^)OǣGCSJevV\V~p(><ޘ#]"ۨS#1-ӭ4ME$ZqSɷ1/q zL6ȇ?;Y ?Xrzvwh_d̑9'|?eٰrZO~mBk*N^( <L 4]ɇAlYj%~K)Peԣ4ߌ1 dԳG; 21Όb֛R ox#`@߄O7H'MЗ+lV͓m'p ƴl}P \D,WF+@07}D7Jfzh `pYnB%&5P7.;-sBѡ0q5Lx[y_ue >^cr 3ʯ"@W}ZcO-9a9 )YKFFFn,BJTսҦf>;B3y sӀr(\îk<ȉ4ecw{/]}8z*Oey++9Y5+>Q}BÃJWUNᳺ+б :5*I q,jj29mN:/U`;;1a*.13OVnXѱm:$"4t_4H"3e DpXZZA%9Sc]\~_0-;a-=lOeäZ:S.RC> ]|diӥP'F3\ksT51nB2 Atf9uF%iozs8 } v=¯]6/h!D3) nSKe.fgxZy%&T^u KgM lVu 0 G L|5rF1:*y >,\F"TEmϳW]m@#YӈIb/zt!jŊ)Z6wDhhvWe3m'(!Kkh֛/d_ :Nz7ϟ8xvjwEFSw_WMJ5+;BzYl׮ #wO9Quu;Nʆ_ Q:0}nmurQ=[+xjmq4rwo{o|ݒ8H7 hTj<_B8v ODv.?;i-HAzF %(@1?6 @2ضw"Ga翼!g N&?1^x#s(pa]]dQXZN=uOht$"Q;-J~2H4MʊҢB˲'Mn;#ViRhh8Ly ؕ&pHJ-J v7v,"?]=Rx*rTLSit%,Bl*㲸j%#:U ߺ ꗣsK:O9pVdk+qRWK[o^w`WO-ű[FgAε^OM`,Gj7o j37d dCGIa_JXJ#Uid#ck9̘e"MΕ5_'zI`S jYW{RGDFic5jȓ#U$'uTL-\4CUr q!|>22)}NZL''U_oGsGYml.F#E4[ƕWV1hd0 m+9ru?`§'˵ `&(( u{"G$8.hZ/ƃ)j4.̕53ܯDp>#=ũ %ݙ8 հl,3N!擵{u5s[MsF*rMѢD?m:VdP! %M[6/[ڦ .Qeh;\]W>>.-x pwѥ+LOhRua(m,Qa([n "YMI&HOvb|Q*io9?*i瀳g)O^"cC6QxOba| ^}oSɭT1yRKGIX!0q&z"GR^M\w+y&NzV*Ґh@&.8%1 K-ȧlyweIelˇdl1>J a04) WުN }{}N)e#[l8Yh`Cfڃd6eQƴh 9H&Fuxi N'xAo( D2 ްX| 60"`фra<^xGA67 i;;tdt6_Xgc8 `q`}#>UxX߱+cϔ{ օxC-n$sBY}0kYʹ̇00ZHTHMcYCoh>0q~QFXH5R>jOZW0H]>s31yXO@oōY8RͣT}{ofg cnvI0ZP8 Apv9;e]"5TtEdtXVWWČ< κ\ިv :@c}ԓ]ft.9a=2Q$|.Mד`#p÷t!QtѰ&%"J%V%*w'T`_]/BG"rFA/k (EtI7e֊;VK~e P[tllHJ ؉BN]Qrc=F`,Gq߼uvko?>D%Rha08]ֈd|uTk#"Bj"bd2tcpb6cZ>;L>ìc-C8.5y*΁hRJ\GT5׎<zrk i%}dzGPDa E;_o_çy긻`)Ae]0dZf 葘n}p$[7*m61W/U[E 녅< ~6Z*׋RT25>N_O>FNVr٭$XoSV MHل LMhsRd{5FK+lsfQNtH&x$>w~U;a-z.Jp_sʉ ׿D."t`*r/ºtww7- |?_a 'SɂL!ߒ~Dwi#Ep\ 7Dd@uNP!h@ͽjTmx|i̶eHLe* D]rȹ ˾+nmRڊĶ߼'cuoaX.d"~\rYt-U0 ׋!Q?x%\r"2Z?xEmgYecV# DkTԤ9Oa pdϱg3\94ɟhquV\ J^߭ż|N,WS%dIq1]ϝ zI-x !4Dv69$ YL)k^=D*͡rɜ: G j6 İ;xlJs:F{U ~ֶӹÞmw8즱NXG!U@!PT+~D}*Uisy|Y I*zS#˶hs1t¹%:kM ^fHy.\ q52:ֺ1~8+^1,.W7W7{D)7QjjZ>`ڂ0 8 !{Y*UoՕ2A1>r: )d ϶Vl eBkNY'_k*KLj7d}9ys|ZnWQ]s2+O=yC}ct&ŤvlMRd# oENp%F9PIHf㌰R ,2ly~&TT&vw>/Ր.8iS@%\:8ni8Y='P1hFRT ^PxAA]®{a/.{eaWX]YQb@Q1@"Di.m~59ŸXe+GqA[0C?u¼GJ "<3s\l֠fjE1L7k6K߰Բ՟|7lآ;epd H% >_x/I%$9Gi y>xFf1t o{Ǣ1slJ=-Mvw955JK_i9E5jA?!!MT&IɑADSd0Y&ܼV(m~ɭ:IYP@62F\r5y |jbiLJO!W0sd$=!3θlcAmUܷht6Ⱈ=X':"2#@,uR+ λcn4W LAJ'9DV.X;mqb_t~`f+2 5ɤI<uB'p\%6 +'I I`Lc?}z[U6[xl?njj#1zw3Q|-b\|@ӱyzA`2Y(՘4Īl3Q~ۺ8OU` 3JVaUDp+jIWC#@N_G0v ĎȀ Ǝutrj[Dp2x>|l&fV&ZWM5PO..$ȜJʔZiPe}m{&H֧`y^yp b*iU{ rVh71gpf&D[-.DM?E9rDP贋.9|d)R}I`;P2MaGI~ ~shu:O5x!ѝmPKó#hSez#FW̓w$e9yX^>3`60P&$eZFR5Fn:]^'C ټ/YpZmaOmWjVE)~Mhkj$5ZBV\Mmkf(ߵuEf n>5Qm0lCSD;ޞ? McQ<N]nL95᳻\:%1ѧao%raRy7qDDAak;FksrЅK6m\&1fX,~olBJ3пvV|m~&}{lÍ8tFXL'JAUҭt809%h H=sja'x@3S? rO{Ƿn)KVյχ'[ n1Q''(Sd!7c~>JSρ*Ő~ mSG8ɦ3ׇ\jim~pBU !&p*BuF.4A_(D| .w#Y8p M퍑6,wtۜr~1`a1bR%Ie(#˴,.'O+j$6I4iTjj rb; !T[$^y;Ht|$l2i+le]~? 7jRʌr"uA,.8rϏ>q;ڻ5PhD@\*`B\vhg+6u rt׭ʎ6=ԸJuSO^V_ߵKcm2xh6rd9 7;5vleTjZ +SGP [TN,3`f?C&WRO{麈Ԋj̨ ')p8}^̯KyJ]9MV ,_ }VdPX iAD& jքo͟=}i6D%`TWdF/)!z`Nyg393$538Mc^"* *er]잽W,]D)E[Τ!Ih86?>y~g[I-cW"^cXN S߇Yol#9a7X ?棳3˓,_W݁-Rljk u!z:6ugE' 3Yd$DoWIbgЇ%7_V)e8LI:FџS|8%]XX? ް%?^E*,դ$w,WcbO S* UWZ}B>+tuS׆&Yqtxb^F n4uµQkyŮAZMȧC:O'm5lIO2GeM0#|TS^(JJuU/*5/Sdx/޾69oik2Y1jXֻ;e ~۰k٪R$֕9SY͒5BAerx!,!eC5͟$ݒ4<ځRk$6p s٬ՙXnifU-yiH8dg1ȱ,{U]S`r5mq=gKz ?K҆oUS PoUoֳVx$0L(GefbV!1w^tDuʍRmz.Nۍp鈔ND'\| yW*UA0-`ߢu-Bݦv!)E@M!4*z;$i\`BS~ -Qwqed~)Uؼm! Kܼ|_s PxJbjmI{Jԛrgd_֢ic耍&ĀAJı8?b?b#ˎIȋA[Z`Тt lӤitut~?{1?7&*m CuQ?z}bv:k(/72w^d} ʢx``o 7+GLc~b/z='>KK7ZRi=߼F l uP9Oas mɢݼ|T501#6N݆0E%C1 v"$OḻOY]}tlb'u2Bc,_ $G0Ok0㈫DTi_rć1xv!-8x;t+TKŽ1ǠGxXAAZǴupC%l:ٰGU^&ȼ&Nhn_T֙;1$d?Q^Y&GسHx%qha/^<^nYXXf\ӄG! 17w6Q_5f?g);}a% x ytY&"jzZM3sP-Q}5uˡ]LQ`mȆ\ns}e6(PbaZhӀmppg[Agr(V,]`iYI {`9s "΁SL R:쥂brpqEa4fRD0DnЌ%|XQNZ Au uF)B_-V2-´fī9;..-=X|6<;ɪ3]wΔqZ~_c߃'+ãpz*&VžEI nMrZԍ~u%<rBI5*M*Vrlq2& w?^Kv},JΰgwYՌ` $:>cv?;~Ldummʰ)=$uofP1b>O{wdxJ@?8",yxEWYC[e"~K {fUro1CW$e*Vr%tr0 fVgINN[ tM09|}|E([8VPTRaȋi)y9U)+Q;SgFmhC%qaf瀣c9* & VߴM1 zL0E-JԙꘟfŕBUZZuUVrQ2D̔b]N] hImb׫6Xg*rQ=ՙۘW ZTov^%:f(߻4ڌ~ ~ ('󖔧%@K4 rcy2Zntl)Wقs6- J'b&9}T|WeCjάC&rb[KīM,\(Cq٠r% _]Xt(F@>#BY)h @XGԅe@D u$y2LfC rϴydnV 4Q#Vq8 䮟2 's N<<ӁIBUmU&5%Æ,7RY/5ꎸM`S_d(1VV&Qک+~-ft M~[屏6:GX`c2ep?5n9Stk˗v){_ˮAw60Ͳ: ⸦ <|ؘo(dO@兦)+ndmbiQ"' ^Uęƛ ud=ϹA;TT"-A>@@$&!@!>  ~PѪxwh;7'ڛx:w3֙﾿[MEy*BKݤ v"I((ZTcW\+]bQ&bfjtͻѬ ?F{9O<w 9_Ӫژ\g},|Λ~}nw}*o7h=6`=(2sMBdrQ=WB(3o>HM6,x X/HLƒٛcM"cK:59py-v44i>?DLUG = D~?f;f Z[|eO}ðoN2v|u~=դp2ǯæصYLߒer ̿Hb$*xk?$ѽC Z{cynB0,ƥB$Y$b$/ںH~NkA}ȫ2NP$q,G)#9޺f;u\a. $zຈ=ucÆPo(n!K% a; A>X̕M:YR((.32qbC=<CiDo.AyX]O7Zmj"j,!#%M%DBZM2[@&Z_(jaKނTJ9DdvtlGzN<۳3c(ӭa`)0G^mf”#cR  j SCKs bgዢ5}>6཭AvvjjvK:I`ؠ{[?fND/>W,DSKX(g$FA2/Q:ؔqR-!ݓ^4r%9`[^[-ҒX]_!qH&!Ξ V2$$4g8] x٠qxx>^8QsSz.}ꉞucu.hs:UߎQ<҈JCJCfz"pig^wjt&Ci B۩u:1Q@L6%Շz3QPGnM6j"uAZ_]n 9{ eF'+W#-dŘ?KR.` .X ۻOF/ZBUX\@>{bJMRDf)áq.lT_jkfrpSb;ƐEo|PLUW.#rJB*QJ( 8 \ˡ F`w{E:]&DCi*STw7b*33[,YH1sږu='3뀅cx .iJfҞQ9P9:*OѼmE TI& #6[A/y Rckq H6Y; 6mUkJA@g]+W}EIGx,wp+= $Vpb(wiL3lO>D ? o#yk ]_IK["N{.zNb~kkgڥLJȍ S㤲YZd%vf;IbF{E7rpKpi^X/&;Cq7SdN;;sz(,X*{ %@B^L!^#/AAS,(wij^39g7溙gyݝgg|cO%8<$:l}S(4;8[ͫWUqB1 i8<ffZ0GmS9ܐ}I=mZq[єk*V:J,UmNK0ut(qT%W)p:ρkuI#`0˯(RaU<#Aqx; ϻ*(E*H-Ҕ4k5:%gڧd_D]Pw`V3{n*-gc6 $RӐg+!&BȄ[z~wzѩrzC_]ħwJP$5І%dW-qʉZ-V 78NŹ-/оIfXVpLvST|*%(\<<14`ex<\oھyDHo2k#ބ?zb_.N\ [/\oO BڗnB~5s~@BŮJ$J ۜb>DZ$)'Of9lyVm%\(5jl~ _9kyD_F d(FPuX%gssp$i@],j-6oD޼uOM#g;>~{~_#؁L\&at#e6d)7UȰ@Rb)9SY+,yVŧG}Cm…y*fG1԰<8ed&Ti\A(:|BVZP*uD)!`U!qHa.YV&f'9Z*A{eq5ڛؙ:FQJaÐaxxH?:ά *s'lշr0;PFc4`eC w)S.H#f/sb=B@49h+H0R5 +={˜ eiX\ > C4-š㟸YbzP+$+p)UHNAob(oCt`P6FghsI"OМR;U0E\7{!P 60!i-40`,C'Mq'Qkl.D|){Pm&eW|C_S*RpPpx ^w~^7:r" ?gGk]gOpV|!cӋɇ86%L67'[6s as&[q)o!lP:2cR$x9nc|jh_v-}0VVBPBnst8ZCfJڗG ޿::rjiKqvSt'z$I@~I$/g ߆\O(C}Llp] .er_]Ό|?s *"MPYj苯ZG*X/ĥ-"SjeZF njud}_1F+,۫ 66:ޥ œkjzaVɠahhP?ɁzHnmc͆zV^BZMP4< :jk NK(>ʖAKv}r]Qnί .Xxy(0?K@2|0h຅RiaStJ߹ n_zJKPE%-k_( k c0f}c ml=$Ns(-qO9Ȼ:uԡD"mĉon0ڟ̿|xoh{Mep6PSKst AugjnEΜ=70f.btl":0®X%,N6(J: HhL?, i'ԙ$v9rvsTӱv]mj]KA\Z!D.BBbn H.j0 HudխZ׵Nvn'EqtLsgy}mWn'/REsk4_n(JD2 @E<)(+WWu¸$4ꌴc0up q) ۊ;o|-^7"FHn@anqݰv#Ţ`4 @0̈́XY~,YqS/Bh! EAЛȇ(ڴFm&rE U&[9y:,K1@4sm6mT's ku$8K[E I,$F(c" T>(E@8or+ >BmwE# ?$mF^::5Cc8Ϟ^F//?cXlNBWv/\): ^OZɆdO|aķJ2PdME碝Nn+L|fu 1rL'KEdB Qertm6,X_PTU՚,`XP 93΁Tiį^[%2ৎ|s堩(ko~89pҏ=C`c\ mtѪ QUaqcS_0G Tf*V<&'v3xw1 c~F rc˞JSҲj(ՙqqww;7  Pjw3e9#_{GMhpѺ&,:eh8K))@Ub&LJ֗%RO+Ar$3yzǻ-)Ucr%<^g<:R߲犤>LKB(˕J:_:@7ӽSæX#ڛbf+BWfƶP6LM$%%ѿ5AN^Tf ?u0}@`4+E)aמ:6#q}_y뻼mtvy VDhefZQiKŚAJȒ%BM:@].|#I/ JKBk4:K+&9x:\<\b[**Jvy@jS4)t-Y浙m&r?-aM7kj~& 5Œ :ݻnۢ5%|:K#xoEL-QI{nŏŗR$Ȓ˕\:82jwӅsfrfg:;b+ʺj(\B$p "r#܉ !\e mA@\wvu3wf@_ϗd^]~kdYiiJŰ9gHJjPAυ* qę9^ޥ[$fPq[wbY-(pݕejBMDT^{F<ڍɲ. M! =;m‘B5|Ou`8{oZŗ^|?zp[1s]d( n]O9. j>oOv0!^121ڡOb 9֪fܪaMOM72|c;5E=L0:=<#) `t gyr+Uc׸6iM?;]&<-zqOϣ\& z-PH`D؈'hot۳=K.na|>}E [Y"5OA4$E CEJM5Cw d;^d REZUeah r*= s5^Mwg˟:=pĠ @l$f([X3E ``u(޺ @B_$1JxҨZĈĨD$[~A!~x߅ rs~s{>k&S-LަC|m"©GB"o&^fGD_MGmȱ rg] ەW Ewo crK-FyqSxJe.8j Z{l+*X"ĸ ѣ]\&B#` =ٌkΔUbg-^".LGߪ'.Rk:`Y]w ^W5ھ r8x`WPvD\Rpz3=H#thn+@;rd~ˆnYXtFY5c 1Dyv;󮽦Nnd XEͬGLkEY"1 <OE:g-ߙ>(!%~|c߱EBJfIO|%).+*Š Qfvrv* YI8.IӕViԥf]#jUsH)NdRl4Ͻk/s405d1([6P÷ѿG 'L=iWE?ږ<88rUu؝{>ҫἔDaV@ɶsg}=}Ky8˹[]aw.> 6_rRe){&Ck}6ut.e*l/ M & JWJ DDpJG cYB-T+pV#vIf@DVb@_g3;o"3z. )= 04 >aykӂXgb{v2w '^ƋXPґ'^t ^`|yr'vUU,wdR)z5kvgF_Q>TfC:Dǁd,M Ly=ڛYAHc[}R: BVS'4W($hRW66ZHS~{ E9|I y<%.#ol2pMC)m+a<;ĢњW Lb8W ~~?>}'ȨCt,uR]ۤ:?. OlhYuϸ8y lխM5S&N͖n/MSX3JJXkSMM.j?L\>7GYg1kV,kKZ=aRNVlX+ߧؖ+>^WO hbI60k'8ERuJinJNi-X;gMOGE'r+ Bg꬞ٳ̖nb-w&I&JذvUSOXQVZۘ.?;{)3&|aeҮyscm/66]7o6v;;6ʃċ~suiJ?w6=gwY.epW9ߍӿw}_:ρn?]}j/yS>?E &Nendstream endobj 29258 0 obj <> endobj 29259 0 obj <> endobj 29260 0 obj <> endobj 29261 0 obj <> endobj 29262 0 obj <> endobj 29263 0 obj <> stream q /X1 Do Q q endstream endobj 29264 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29265 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29266 0 obj <> stream HWmo_AUe44mS!I;TIʮ}gȥ$ΎAG<ܝgvyϢᄏB~ _e$q,q® ~ @ 0CTowmWU>ޭ]2\І 3:>jpuX>E, כpeVh]_@9EsmUSkgGQf)*i,<\Pd75)б C)_`/'n4V $r[6[c`ʱ>#Q Y~:KJE0d% jO1`)F+FkFkFkFFF'S0O}¨O<)>ԧS13O}ƨ<>S3sOe[Oe{i)Vq-Ő嫧R Yz!WO1`1kZ!QV1R Yzϵq-ŐŨ\R Xk),FZŸbb{Uk),ƵCsb\K1d1=*Ƶ͸bS Xk),_=Ő嫧R Yzϵq-ŐŨ\R Xk),FZ͸bb{Ռk),ƵCsf\K1d1=jƵZ!QV3k5ZՁa\K1d),ƵCbS Xk),FZøbb{5k),ƵCsa\K1d1=ƵZ!Q0k Zq-ŐŨ\kR Yzϵq- a\K1d),ƵCbZkB:xnwp}H1>4LS60kiW?Ød"RyTPjϠ,$c1L*q&grv.XQUS|6eT͟/&)vvq..QƮcAtq0(m'lV:pr|~Fg ~va7T{Se.LX6Tr߂TTPni7դ6EWlz nUG= lcN?e,jab]>q#UuPޭhM<[@oۍzq{ ._alSP͡Dv @6X:upC2彵co\]QXԸb(©Q]LOMɇ3/rh6ZȻ$-, s4,xPH}i3-~V뙤s那%!vlIђW_&qWͨcpq+=*ĮnGaOF1+-cZu,r0,]512QtՋWDQH7K'7s=W㸐z*O z?qTy/)\ooӦ !2edȦ#`w,k 5#<ylsK;i;ӳ#U,ho84yN/ӽq$+4IF진-eLe'HNZff{SR.#[7neP|cF8"u@8\8ʺNsqjI}']Rl;[f.ePcG۾CL|N| sS&[]w;Y2 b+DFCjŧ? n:&P$T[|cBKl5 Jʬ.U]hV*(j¸hM7r*&pIOQoW@w6얪?I3:0IT͔NuC Xmb4ӎ$オ"@Фq2y\9 pU`STȧy"N5΄Tt!-"͹.i1ariF˜c je{fy+iLƐ7/%h4a8v$81,Sծt#yL;-=+ Aȯk(<2&tb}K XoBĵ}FfnM%x ~N/?zs**F9)acFdw>bl; ҄`9m¶αh%-.OnRvbmG$@߇Hi0&Xu_7n6 <,l;pCn ~Sku߬*`-G[4o`}bN~ M٨B(-(."aG1pb[a^k|n ]PXvEmR新Qjf$U@F-m&lfnIqm|C{eovZEgLGrp{Wo-YXxK7_7n<ˆ:QN<O(ca?KL"\qcIxvN&̝2߈49WZӣDuINs`ZtN#tw#uU]PTP4cM&J4o"UUV Q~78 h7FSvZ`A_FFcLfEjGFl΅3Qgnd7qǢyAcd"SzIN̖8A:Hg ꝏLAmSR0S2u*0|#,kL^3,Ռtlm7yq_Ϊ^hsuh^|crZp*Id~rY4Mr]r](NbnY_y6>=)ΠjvA+OK9{xޜnx~v`ԣ?,a=\IsQ:ZeqaL%/WfXTh)3r"bi5XX#,F5YΘFNsEenÝh !xc;}VA~WW 0lendstream endobj 29267 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29268 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29269 0 obj <> endobj 29270 0 obj <> endobj 29271 0 obj <> endobj 29272 0 obj <> endobj 29273 0 obj <> stream q /X1 Do Q q endstream endobj 29274 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29275 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29276 0 obj <> stream HWM8WHX 搞Ad7! n+$$U")du6:*_d=V]5Ln޽%_qgӘ )S3LJAo>n g |wVOCS^qj/q}ؔ0IJV˜,O m7Q&&a\;?z:7vR$z_|4|޾Yb\y.}u`Cx6nCܳnaymd,ؙN_ 9a;)e '>M_9R2Ĕ'2>D>@q<s}{{{{{O i>%ا{EW{EW{EW`3} y>'` }/E$ؗ`h}F} >@} >D}>D BQ@PZ߇(}ZA!`V}"TET+>D BPj}jZ߇(}ZAI!*dE!*d}"TET+ >DJBPj}j%Z߇(}ZIPC>P$TET+ >@}"j}j%ZnRBQ!{(BQ!{߇Z߇(}ڔPC>PmJPC>PmJ!`6%TE!`6%TET}"TET}"M v>D}>D}Be\ewavs Xg7HX#ybf܅Fp,,hu7ڪ72O匳>,qD̦5V-)Ll[JoP>h\p$/7wX`?d"gdl}Myɛ2"e!`!$_u>6Ϻꌁ.1r.9F{ݱ寧zYSFPen3%r0"4`GlL4R)֑GȤyS jyY?X>4 Cˮ¾Y K}iXs)jbv-I8S vT=Utڕ͙Ѿ:hs-"Ney19O{>Uq$rÄ̟KӋz g)ԃIן݊kÔ2EOA}Pڍ{2Q5ڪϮ(3Zx&aiyQRxR:J`udM)ⲀBEO?v u1mcE,EPjYiǾud͖=3 tᴳ'F=U6 F]Uѱ;Wv09N`~Yk3TPJ<.f(pr:_:\uA]YM7<Hl,bK\Ap1A5[TB%ðx &+1,s8IۼӐi-,=OOR?A@?wz]*R[UdKƬNGy\gvS?Yo;GyXT8U+(qNKr)Rj_reE*|])3⋡˰8/\c7θЧlC?Bsmߛ|=!vn1O֬yp@LPm;`өeؿrW)9Y~`&LF H=k_ܧ}%XOT T ucY>3;qS05]=\z%P8 1Of^ogNx7{Q"NuΧ%*H-9<ρKn `M 'bS2jU0#S!*6u`ܾ{i;feT?cNnZeƁ/FA"%|lrgp/Y˹jfm.k04>/P 1272 0 R/Type/Annot/A 42849 0 R/Subtype/Link/Rect[93.6001968 663.229004 184.404007 682.908997]/Border[0 0 0]/H/N>> endobj 29278 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29279 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29280 0 obj <> endobj 29281 0 obj <> endobj 29282 0 obj <> endobj 29283 0 obj <> stream HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 N')].uJr  wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmendstream endobj 29284 0 obj <> endobj 29285 0 obj <> endobj 29286 0 obj <> endobj 29287 0 obj <> stream q /X1 Do Q q endstream endobj 29288 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29289 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29290 0 obj <> stream HWmsF_M8=OfS;v-zsv&HtʜR5I]P36)|>%;::>Ϧ26.z|q6B?G"Rdck }?q6fSI, D.mA䌏q!yUm ?%Dl2.DH޷Je^e^U^U^U^u^uMMM>!'`S}O i>%ا{K{K{Gw{G4+I$ 6D}6D}B Pj}j%Z߆(}ZIַPoC>P$TET+ 6@m"j}j%Z(B Q@PoC>P$T&"Tm"Tm 6@m"Uj}jZ(B Q@PoC>P"TEַ!`Vm"Uj}6D*B Q@PoDPoCT޷PoCT޷!*dEַ!`Vm"Մj}6DjB Q@PoZ߆(}ZMַ!`Vm"TET 6DjBmB Q!{(B Q!{߆sq$:Fáb "Z&`D|Z=X6`_x'ybJc[6QgB1 GѺSd[A-澷}a{iզg*b%m;Xѭ&,^F%[e~W^5yYЇs\Dd@ sݸG",GYۊWȶ<>{:b/t+?y{g8]p\*}OݛMWf`llŲV[eZʈ.? ѡ_*?WȂ2lJ&/.jz|yyxDm؈NM5hQ50+Tտ+Z$M:L!m/% s WW[BCKl:f';sf:|_],jsڀ/MKdw5\&Y O?w<}z}hgrHt5p RM\Hӣi+Ӯ2n%dHVZWp-9s8ΊT4 ##}]e.ϪZ+A.Y)jn +;vk4&pH-bWFݲ,{h;nm\*^6mr`1x G G]4"gHjj%ߓfs >!=GwL /9k4-%@h[>~,QVTTDpCWaίOYnsendstream endobj 29291 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29292 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29293 0 obj <> endobj 29294 0 obj <> stream q /X1 Do Q q endstream endobj 29295 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29296 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29297 0 obj <> stream HWmo8_}q)#J- ݢ]t CRRΒߡHpP!R|fW=}zXʞ={俉\ \q+Yf7k',z_m˾ZlU^}\S.yLb-&IY eiΖdaX~`zp1n_fUiջ7G2y¿ܔ}pš_-u!sN쑉,v1ekri`4w]Rd363) 1@}O}"F!C >@IK+++kk[[g,b쳈}F"9>R$T}ET+ bbC#JBPHP-P-9>R$T}ET+ bbC#JBPHP-E*f}"T}>cbC#*BPHP-P-9>R"T}ETbbC#*BPHP-P-9>R"T}ETb.фjϡb(BP1{s=P-9>R&T}ET bbC#jBPHP-P-9>R&T}ET bbC#jBPHP-C*f}"T}>( R71W2ZO K<-$[H<"-`]rP'/oK%OnE}kVm:セzM+lʯjM~4kWUͽólYms郷lz4[ÀymWyqSo+o>Tv;_'-@ʾnaU>δwX}/Iʕ|UrS|Uh N6;ցYfVa[ȝڊ4Ѵ|M@L:>J7eסּzF%4]!9{bL0Cjy\r:/OHJiZ(yfMrњhyB){ˏʠ MߗJ%FO#̾+OC4go)2u6V64]?r7@sSP@i8?- ŕU4&h{HE}Na ~(ʼnxJ z ^BW죟fxJjjiǡ +lD]V8 $k?ul?F[P2n!hz-H;"&uVTѷ^5Z{\6 )'5>ёR1CK)z' ,fy;2n[%Oqܢ0rMe[OЂ~ޡ xP{ȅI &Bv: -AxWJJI8-//8eLdnN9SrZ?+{D?- wo6# t9BI$93ďFs ,m'؁y+n`" Yc%RSyUS0OkL$':,ƷcKuMUқk]ibIw_e8 싷.k ;|<2$.ʼnB Jd.ްϴ`Ҹ' d2K{e6K; "ΖZ "xdJAbD!a') гշyȹve_;A2 2:o^O\sLrmzlzݝPBldݐJHɁN'5Z!r,1ߧ>B'9f y7y|9[dA|T2ɰԮ.F!S7վRSZc9wl?b=1טfnBT_7f2_ k2@GS˪9ۖ32x4N-z֙c\cm1{C>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29299 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29300 0 obj <> endobj 29301 0 obj <> stream q /X1 Do Q q endstream endobj 29302 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29303 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29304 0 obj <> stream HWkoݸ_A_–ҫ 䅭dHآv`2DԽ9.GԹpΐ<&7o %/_~&=`2b9$q&4QɠHPr0RjʩM?ԭ"C1x].#$1IJ3RA()=)41G+v~9˖/CUގL47aRɗ}pF#Ǥ7f,y|1="=MYU s)'Q~ %$Eq= t4 ]NsrèH.Y\ X,ӬaŻ8{9{^x^x^x%^z%^zcD}쩏>FǞQxD}O>EԧQz3D}>GQy!u6k]L|.,ĵ.Yz,_ qis-G\b\׺׺f!=rĵ.Yzϵq qis-G\b\׺׺f!=rĵ.Yzϵq@\bw1`!u1ջf] Xk]LkZ,DZŀ4 QV u1B{k] Xk]LkZ,DZŀ4 QV u1B{k] $Z,_ qi4WbB\b\+׺f!=Jĵ.,ĵ.YzϵqisD\bB\b\+׺f!=Jĵ.,ĵ.YzϵqisD\bm#u1ջ׺f]L|y$U.]KHqPRTGx0G ImpJ3Ӯ~f=8McM_}S]vqߛMY}Y䱬7/w`ǝU|Y^˺No6qg^tdځP4LtX8ra]]DN BUޒGWnQQB)#pS:9S?f?}ڕ]=-]z4wejQ`[G(&и뛦:kh6Y!h8mݖSyVVG (gԷ(FyF! "JtPڼ~'گj'격kŭusM$ 4#R93".(Sj R̶u^*;,/Eb4Opp:_j & A _`7oQv/w.pqR}ֽn"2M:`"VdxL5m9y86@Os3)6KP7z(fyQ'uG>jPel ^<͜CAMXn ͘H:/v )'l'}IB+uF2o {,ؙA;&rHd3ZO׶b,W' SlIa0bɾ/x\҅7Ͳ rL `}4Σ^_F(aY* +HJV*Da_ *4_ jZUhS Rƽte ## †ӜJ޲^WϪK  E"TBtGw Q$4 ҝևBiH) mLhHecd2ܴFu҈i|HG>m,vxlV+ Dr ӗ ][;]%(ѳDLkSFE"l;Ԩ3*dnř5'9:znD,7q '&~U1 9'qe^7أ$+ˉ uCRA+p"x=[$n6k̍}MI|V]=+ZB3Y-:70*37u?w{l6k<\\{ugiqCY_G\mRNtzܽӇhMB̹Ԡ1 }b- ncЂ O~j^{Qo_HéPCC.R8WFPy4Pq8T*;%r\ۙ${;ijp3L5Ƅ``phAoJIw߯(MTPeyE[aKKޱsi꣝N'n[PjߚyrOH?B^6cj0ZnŤTxgQ R4&SI?~M E٥>f|۱1*S&(PA2r)LJuTY _;+o`l>5{hLZCgz NhС Ts`ǤB,ڱ^hԈwͶ;GGco^N}|w% Dendstream endobj 29305 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29306 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29307 0 obj <> stream q /X1 Do Q q endstream endobj 29308 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29309 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29310 0 obj <> stream HWko۸_E)RE|- EmS4^l(I#k;#RM[C3}(7#{ݫ,fϟ|*'*bI.T,Q"F.]Y͂)~7nlSg_ v7/WيmP$1+Xc,٪ TM,u">uSɗۅ<q_ݗXoVA\ -%f F"qmPd@\Er S8Kbs1`q Y rsw1` B BKBKBKB+B+B'SO}BO<)>ԧS3O}F<>SsO}A/<,'Lbm ׺|.,µ.,_!Wb"\b"{k] Yzϵpp!PVu1d= µ.,µ.,BZAŐE\+׺׺kZCs \bm ׺|.,µ.,_!Wb"\b"{k] Yzϵpp!PVu1d=Jµ.,µ.,BZIŐE\+ ׺׺k%ZCs$\bm׺|.,µ.,_!Wb"\b"{Uk] Yzϵpp!PVu1d=*µ.,µ.,BZEŐE\׺׺kZCs"\bmu1d] Xk] YzCP,{u\g+U1V',M jGv2\wݍuߝZlquk_{4})_i3TzXoꇱX xoƲɗ= YqX/G$3˩%*oͳ4 ~ Th(wnV'Lh쫌#l'H~i즜w9S̝CA͛W2$,wfiQw!O ߔ摎y蠊ӆyBdBD*H^ʶ6zcMݚcT^}𲬻monylGgAwiYI:kl̏˜ۛAjfBݭ_RqE͞@Ke'4d:'M.W)"S3 bܨ/^Դ u+צqyeS_[-oTNȗ#L"NM[+,vM%2\WZ M 74;9C jޥRwӳ\ۮ$|ip\8*LVUv#<:|H톯\yHm'0[r:=<LZ*m1ʪڔ-v $&]a[b!1IKF̥.WEZ7.OPk&K "㱡Qn=e?pkĔԧ$@!Py \0͆9sf*4DñRBn]jTEr}k"~R(w3˼T1YLPL.>Si4{v,k+ ,TWM69[ؓYer8Hc;C9: $=<Υ E!n! G#r$ֿʻ*JpE 򢈝=am_ǔ) qa,1%&9|🜱#́5n&(.kב$L8~GRdv{ZD[7MѢud,P( ,×)ɻ'r8s&(V(9PAߕA:2@:}OJ!fHyj D٘)ԂqY=3&~ʙ-C pdm1R$xWB lLH=஄6Us.3"'BҷV@|7&cZeww]({?=gGD.xRS0PL5<ưl lRK l㉥R뙆r\e v{#1ALdv$Va&?/~$)XPR[)Pw «D#x\Ag {;+E1XA ƫ->+fq&KEb7e,Spny";Gቹ(J._sD $h򾬉6IGb_*lt:Bq@6`p'0z#tt4֧٥nloE?=~7R=t~/\'T@fc#eާ^b΃Ψiנ57Kͩ芥B;!}kvOQendstream endobj 29311 0 obj <>/P 480 0 R/Type/Annot/A 29312 0 R/Subtype/Link/Rect[93.5995026 445.229004 300.286987 464.908997]/Border[0 0 0]/H/N>> endobj 29312 0 obj <> endobj 29313 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29314 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29315 0 obj <> endobj 29316 0 obj <> endobj 29317 0 obj <> endobj 29318 0 obj <> endobj 29319 0 obj <> endobj 29320 0 obj <> endobj 29321 0 obj <> endobj 29322 0 obj <> endobj 29323 0 obj <> endobj 29324 0 obj <> endobj 29325 0 obj <> endobj 29326 0 obj <> endobj 29327 0 obj <> stream q /X1 Do Q q endstream endobj 29328 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29329 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29330 0 obj <> stream Hko>@ˆQp8,ڴ޵ Zcveɫs>DӲ]Aj<>?EI㏟!\DKXqeD\|E/pÿd-umvj'NQ~!{Z<G͂& bjI\ǐrKG24 ,%e)J3nYbyƃ]/_uq&z-IWNt3&L"VL 5,80bFrk+X02?7=ĀYxr5f{QE{%K7Vikܜ4⹯5x7%eq- .n_-súm9J3k&N)R~;')0uWgcap@㓊.ܞϝ:Q:`D0 z6=zOA8q}K#\b8M@)d~'MJ )80yG}Bܜ&4^(1m`{ګw$=LDmnl۝7a:➲qz.`PrW^_s.`e,491VZMwaaS2Ui*(-+J<$*eĹ|x*xuj!s82y5\NOtqo# vh04nZ &tNئ#uuEIZnȠJBQ%.4C8!,^)P H v]wՃA-4u 9FTi跶җ[xTtW`0bzWa#x*UnC [z1v@ #<\v2jbĪ黝H5A@]3t.Zaã0Л8\[dj|^->y\3ZWsTendstream endobj 29331 0 obj <>/P 1423 0 R/Type/Annot/A 29336 0 R/Subtype/Link/Rect[130.078995 539.020996 369.139008 673.916016]/Border[0 0 0]/H/N>> endobj 29332 0 obj <>/P 1423 0 R/Type/Annot/A 29335 0 R/Subtype/Link/Rect[93.6001968 422.627991 199.356003 442.308014]/Border[0 0 0]/H/N>> endobj 29333 0 obj <>/P 1423 0 R/Type/Annot/A 29334 0 R/Subtype/Link/Rect[93.6006012 182.628006 171.061005 202.307999]/Border[0 0 0]/H/N>> endobj 29334 0 obj <> endobj 29335 0 obj <> endobj 29336 0 obj <> endobj 29337 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 29338 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 29339 0 obj <> stream q /X1 Do Q q endstream endobj 29340 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 29341 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 29342 0 obj <> stream HWko_e@uES!r r%u;\0LÙ;{ffO[O-޾bWе R3Um%sVFݺ=V}{`jc~67ג}V\VKq`*@ 9rS͂' LaBZtw'D-+vĿRd3;p~eUAZ=T _*rLH0 Km"G%6Dr"'% 2c/ 2c*c*c*c :c :co&co&co&co 6co 6c.c.c.c >c >c!cf!Զ$Ԇ}jԆ}jCT>PmjC>S$TET+ զ6@Mm"gjSj%(B QLPmjC>S$TE6!`VMm"gjSۦRjSr PjSr Q9(B QLPmjC>S"TE6!`VMm"gUjSզ6D3*B QLPmjԆ(}ZE6!`VMmJMm٧6@Mm٧6DSզ6D3jB QLPmjԆ(}ZM6!`VMm"TET զ6D3jB PjSj5Ԇ(}ZM6m*C6!*gE6!*guA3?T/r)`7Vτ eցqS.o^\q8Y~ (#vmzOW󓿖v_Hk0Ę3+]) άgFy  9/&c.ًey\S0]k̅9+3cv[`ﭪ5$<Ͻ93 @A(7JrUt%a. Vrʩ&N=W @i0GACƓ+..R MjXjMr sMn[և"q@nhh'vȯ^?̶wMG19z{u=NԪGvL2aꏱpõ{C4Ea6‰HT@ b"9{=tVMDQO8wRu]#*۞xY=MrR P,_M(OGʓ 5M3}~|]O~2 lu! PwR؞l 3(RC3r}I`aK6@|=ȇ!:G2 i?ZiP5Wfx]JעwRV-ٗ尹2}IxHW,՗_m]ݞ`dYT_P_C[W)yj*t1Tsq*oe0E6EJdQ:frG zFJ(uT ӱz_\Nl.ut& I75|lpǏͱ1]UR8\ a5$x1mcWc1BYֱK[B@.gJEJt}6___>:q<\2~5 &`// 6V1#܅tj"J=Vׂ rul3= $qj.{nʼn13F ~T c \E3+$^4>\8ڊ~20xӎm;B7K8k#HyQ; lAP +k˿*xda=L#pP7[;JB<^Ula~-?|>>AEe07)MT\)ؐ<$Ch?L]']y@Ti @p\z { h± =6 8kwa!0)[LnwY `" )>!,%'tU{Bmq4pd=\?饴X! t>n[t嚫._ئR;<qŻyk[F[ tVQY^DY\ #0Z%Rpѩdb'db{tZoE2TxYxXt.4U"6Jll{^[C_Ϻ{4&fw"l-?Op]8Sh@P+x8(1vwG0p(;]ܼ{~l{`SXe,Mtw9FHWm`p;kl9ܖ$H?7Sq GZ*k7 a4LF7CF8,^u7j3ifundub8f)FvlĚ-"z9~g^~:P0t&yL)ym|@aGvZJ. Eb$PJ{.J(`9glbbo:ed;mqFظ>ccuT-Gӌ1G ZЮc4,QPG|W'qˆ =oG)W0*nRzN3eTJJƤ4'䰭jV"_â ]jztCne<_bxHcI"7H"lC#vv&|ŵ\͐IgiYHiwu^~3ii?ITQGf2D(:V:A# rS,yr-vۢnE?ڼѵƻ]\8v`<R¦d&dp5RCGsdEgA֜1$MZ2JiDZۆΧtmNiUiN`!$d;2>6L((< @DٱP])JxĒڪO2<G@"P nC^I>r4oP#+fRɜ n^#eu(fUާiYj&HɭNsK'C%VdOj[da\>rVBXjKB;cRN6,][BBLS:,%%"QJ%eTϋ0SK'=pFdH2U,4!~dU3'W>(U&T/>h/ #xxۏWWs$ 8$nø.`YëWU)^B0D TS&/ֻ +OuI-~!ڼexe2}tی 'dʈT}lugGO63+uJ|'?.DY#="gW۟E0GUlxuwLœч۳8b{kYӽ9lHDe݂K4mrȋfPUlh _dX~k7Cd=C{yңtX-Wgs@ep͌2*g^\Ok[͏jG$u$il%:ԯQ*JKy!DҰ4 W_FQI1q:dPqtsyU; w`iRp\W?{6Z`Sm?X"/>~jzS9X=8*$O6HuKZKYG "k]C{JK C''e2U{ paf6wuQ-bJOB?PK(($Ш BVjWI= 3 vM sڇQT֧Z?H >n=.jC;c6֊z_nrq OSB ^=} Jg7Cy dKL@^w/L^'tendstream endobj 29343 0 obj <>/P 7595 0 R/Type/Annot/A 29965 0 R/Subtype/Link/Rect[202 669 212 678]/Border[0 0 0]/H/N>> endobj 29344 0 obj <>/P 7595 0 R/Type/Annot/A 29963 0 R/Subtype/Link/Rect[214 669 228 678]/Border[0 0 0]/H/N>> endobj 29345 0 obj <>/P 7595 0 R/Type/Annot/A 29961 0 R/Subtype/Link/Rect[230 669 242 678]/Border[0 0 0]/H/N>> endobj 29346 0 obj <>/P 7595 0 R/Type/Annot/A 29959 0 R/Subtype/Link/Rect[212 659 220 668]/Border[0 0 0]/H/N>> endobj 29347 0 obj <>/P 7595 0 R/Type/Annot/A 29956 0 R/Subtype/Link/Rect[202 649 212 658]/Border[0 0 0]/H/N>> endobj 29348 0 obj <>/P 7595 0 R/Type/Annot/A 29953 0 R/Subtype/Link/Rect[214 649 224 658]/Border[0 0 0]/H/N>> endobj 29349 0 obj <>/P 7595 0 R/Type/Annot/A 29950 0 R/Subtype/Link/Rect[226 649 236 658]/Border[0 0 0]/H/N>> endobj 29350 0 obj <>/P 7595 0 R/Type/Annot/A 29946 0 R/Subtype/Link/Rect[238 649 248 658]/Border[0 0 0]/H/N>> endobj 29351 0 obj <>/P 7595 0 R/Type/Annot/A 29942 0 R/Subtype/Link/Rect[250 649 264 658]/Border[0 0 0]/H/N>> endobj 29352 0 obj <>/P 7595 0 R/Type/Annot/A 29938 0 R/Subtype/Link/Rect[266 649 280 658]/Border[0 0 0]/H/N>> endobj 29353 0 obj <>/P 7595 0 R/Type/Annot/A 29936 0 R/Subtype/Link/Rect[282 649 296 658]/Border[0 0 0]/H/N>> endobj 29354 0 obj <>/P 7595 0 R/Type/Annot/A 29932 0 R/Subtype/Link/Rect[151 639 168 649]/Border[0 0 0]/H/N>> endobj 29355 0 obj <>/P 7595 0 R/Type/Annot/A 29928 0 R/Subtype/Link/Rect[169 639 183 648]/Border[0 0 0]/H/N>> endobj 29356 0 obj <>/P 7595 0 R/Type/Annot/A 29923 0 R/Subtype/Link/Rect[185 639 201 649]/Border[0 0 0]/H/N>> endobj 29357 0 obj <>/P 7595 0 R/Type/Annot/A 29919 0 R/Subtype/Link/Rect[202 639 216 648]/Border[0 0 0]/H/N>> endobj 29358 0 obj <>/P 7595 0 R/Type/Annot/A 29914 0 R/Subtype/Link/Rect[218 639 232 648]/Border[0 0 0]/H/N>> endobj 29359 0 obj <>/P 7595 0 R/Type/Annot/A 29908 0 R/Subtype/Link/Rect[234 639 248 648]/Border[0 0 0]/H/N>> endobj 29360 0 obj <>/P 7595 0 R/Type/Annot/A 29901 0 R/Subtype/Link/Rect[250 639 267 649]/Border[0 0 0]/H/N>> endobj 29361 0 obj <>/P 7595 0 R/Type/Annot/A 29894 0 R/Subtype/Link/Rect[267 639 281 648]/Border[0 0 0]/H/N>> endobj 29362 0 obj <>/P 7595 0 R/Type/Annot/A 29887 0 R/Subtype/Link/Rect[283 639 297 648]/Border[0 0 0]/H/N>> endobj 29363 0 obj <>/P 7595 0 R/Type/Annot/A 29878 0 R/Subtype/Link/Rect[151 629 165 638]/Border[0 0 0]/H/N>> endobj 29364 0 obj <>/P 7595 0 R/Type/Annot/A 29870 0 R/Subtype/Link/Rect[167 629 181 638]/Border[0 0 0]/H/N>> endobj 29365 0 obj <>/P 7595 0 R/Type/Annot/A 29860 0 R/Subtype/Link/Rect[183 629 197 638]/Border[0 0 0]/H/N>> endobj 29366 0 obj <>/P 7595 0 R/Type/Annot/A 29850 0 R/Subtype/Link/Rect[199 629 211 638]/Border[0 0 0]/H/N>> endobj 29367 0 obj <>/P 7595 0 R/Type/Annot/A 29841 0 R/Subtype/Link/Rect[193 619 207 628]/Border[0 0 0]/H/N>> endobj 29368 0 obj <>/P 7595 0 R/Type/Annot/A 29832 0 R/Subtype/Link/Rect[209 619 221 628]/Border[0 0 0]/H/N>> endobj 29369 0 obj <>/P 7595 0 R/Type/Annot/A 29824 0 R/Subtype/Link/Rect[179 609 187 618]/Border[0 0 0]/H/N>> endobj 29370 0 obj <>/P 7595 0 R/Type/Annot/A 29817 0 R/Subtype/Link/Rect[207 599 219 608]/Border[0 0 0]/H/N>> endobj 29371 0 obj <>/P 7595 0 R/Type/Annot/A 29806 0 R/Subtype/Link/Rect[222 589 230 598]/Border[0 0 0]/H/N>> endobj 29372 0 obj <>/P 7595 0 R/Type/Annot/A 29798 0 R/Subtype/Link/Rect[202 579 212 588]/Border[0 0 0]/H/N>> endobj 29373 0 obj <>/P 7595 0 R/Type/Annot/A 29788 0 R/Subtype/Link/Rect[214 579 224 588]/Border[0 0 0]/H/N>> endobj 29374 0 obj <>/P 7595 0 R/Type/Annot/A 29780 0 R/Subtype/Link/Rect[226 579 238 588]/Border[0 0 0]/H/N>> endobj 29375 0 obj <>/P 7595 0 R/Type/Annot/A 29770 0 R/Subtype/Link/Rect[198 569 208 578]/Border[0 0 0]/H/N>> endobj 29376 0 obj <>/P 7595 0 R/Type/Annot/A 29762 0 R/Subtype/Link/Rect[210 569 220 578]/Border[0 0 0]/H/N>> endobj 29377 0 obj <>/P 7595 0 R/Type/Annot/A 29753 0 R/Subtype/Link/Rect[222 569 236 578]/Border[0 0 0]/H/N>> endobj 29378 0 obj <>/P 7595 0 R/Type/Annot/A 29744 0 R/Subtype/Link/Rect[238 569 252 578]/Border[0 0 0]/H/N>> endobj 29379 0 obj <>/P 7595 0 R/Type/Annot/A 29735 0 R/Subtype/Link/Rect[254 569 268 578]/Border[0 0 0]/H/N>> endobj 29380 0 obj <>/P 7595 0 R/Type/Annot/A 29728 0 R/Subtype/Link/Rect[270 569 282 578]/Border[0 0 0]/H/N>> endobj 29381 0 obj <>/P 7595 0 R/Type/Annot/A 29722 0 R/Subtype/Link/Rect[198 559 206 568]/Border[0 0 0]/H/N>> endobj 29382 0 obj <>/P 7595 0 R/Type/Annot/A 29713 0 R/Subtype/Link/Rect[193 549 207 558]/Border[0 0 0]/H/N>> endobj 29383 0 obj <>/P 7595 0 R/Type/Annot/A 29704 0 R/Subtype/Link/Rect[209 549 223 558]/Border[0 0 0]/H/N>> endobj 29384 0 obj <>/P 7595 0 R/Type/Annot/A 29929 0 R/Subtype/Link/Rect[225 549 237 558]/Border[0 0 0]/H/N>> endobj 29385 0 obj <>/P 7595 0 R/Type/Annot/A 29991 0 R/Subtype/Link/Rect[196 539 206 548]/Border[0 0 0]/H/N>> endobj 29386 0 obj <>/P 7595 0 R/Type/Annot/A 29918 0 R/Subtype/Link/Rect[208 539 221 549]/Border[0 0 0]/H/N>> endobj 29387 0 obj <>/P 7595 0 R/Type/Annot/A 29913 0 R/Subtype/Link/Rect[221 539 231 548]/Border[0 0 0]/H/N>> endobj 29388 0 obj <>/P 7595 0 R/Type/Annot/A 29906 0 R/Subtype/Link/Rect[233 539 250 549]/Border[0 0 0]/H/N>> endobj 29389 0 obj <>/P 7595 0 R/Type/Annot/A 29899 0 R/Subtype/Link/Rect[251 539 265 548]/Border[0 0 0]/H/N>> endobj 29390 0 obj <>/P 7595 0 R/Type/Annot/A 29893 0 R/Subtype/Link/Rect[267 539 279 548]/Border[0 0 0]/H/N>> endobj 29391 0 obj <>/P 7595 0 R/Type/Annot/A 29885 0 R/Subtype/Link/Rect[193 529 207 538]/Border[0 0 0]/H/N>> endobj 29392 0 obj <>/P 7595 0 R/Type/Annot/A 29876 0 R/Subtype/Link/Rect[209 529 223 538]/Border[0 0 0]/H/N>> endobj 29393 0 obj <>/P 7595 0 R/Type/Annot/A 29867 0 R/Subtype/Link/Rect[225 529 237 538]/Border[0 0 0]/H/N>> endobj 29394 0 obj <>/P 7595 0 R/Type/Annot/A 29857 0 R/Subtype/Link/Rect[202 519 212 528]/Border[0 0 0]/H/N>> endobj 29395 0 obj <>/P 7595 0 R/Type/Annot/A 29847 0 R/Subtype/Link/Rect[214 519 227 529]/Border[0 0 0]/H/N>> endobj 29396 0 obj <>/P 7595 0 R/Type/Annot/A 29837 0 R/Subtype/Link/Rect[228 519 236 528]/Border[0 0 0]/H/N>> endobj 29397 0 obj <>/P 7595 0 R/Type/Annot/A 29828 0 R/Subtype/Link/Rect[193 509 207 518]/Border[0 0 0]/H/N>> endobj 29398 0 obj <>/P 7595 0 R/Type/Annot/A 29821 0 R/Subtype/Link/Rect[209 509 221 518]/Border[0 0 0]/H/N>> endobj 29399 0 obj <>/P 7595 0 R/Type/Annot/A 29813 0 R/Subtype/Link/Rect[170 499 182 508]/Border[0 0 0]/H/N>> endobj 29400 0 obj <>/P 7595 0 R/Type/Annot/A 29802 0 R/Subtype/Link/Rect[207 489 217 498]/Border[0 0 0]/H/N>> endobj 29401 0 obj <>/P 7595 0 R/Type/Annot/A 29793 0 R/Subtype/Link/Rect[219 489 229 498]/Border[0 0 0]/H/N>> endobj 29402 0 obj <>/P 7595 0 R/Type/Annot/A 29784 0 R/Subtype/Link/Rect[231 489 243 498]/Border[0 0 0]/H/N>> endobj 29403 0 obj <>/P 7595 0 R/Type/Annot/A 29776 0 R/Subtype/Link/Rect[193 479 207 488]/Border[0 0 0]/H/N>> endobj 29404 0 obj <>/P 7595 0 R/Type/Annot/A 29767 0 R/Subtype/Link/Rect[209 479 223 488]/Border[0 0 0]/H/N>> endobj 29405 0 obj <>/P 7595 0 R/Type/Annot/A 29758 0 R/Subtype/Link/Rect[225 479 239 488]/Border[0 0 0]/H/N>> endobj 29406 0 obj <>/P 7595 0 R/Type/Annot/A 29748 0 R/Subtype/Link/Rect[241 479 253 488]/Border[0 0 0]/H/N>> endobj 29407 0 obj <>/P 7595 0 R/Type/Annot/A 29740 0 R/Subtype/Link/Rect[198 469 212 478]/Border[0 0 0]/H/N>> endobj 29408 0 obj <>/P 7595 0 R/Type/Annot/A 29731 0 R/Subtype/Link/Rect[214 469 226 478]/Border[0 0 0]/H/N>> endobj 29409 0 obj <>/P 7595 0 R/Type/Annot/A 29724 0 R/Subtype/Link/Rect[193 459 207 468]/Border[0 0 0]/H/N>> endobj 29410 0 obj <>/P 7595 0 R/Type/Annot/A 29716 0 R/Subtype/Link/Rect[209 459 221 468]/Border[0 0 0]/H/N>> endobj 29411 0 obj <>/P 7595 0 R/Type/Annot/A 29706 0 R/Subtype/Link/Rect[207 449 217 458]/Border[0 0 0]/H/N>> endobj 29412 0 obj <>/P 7595 0 R/Type/Annot/A 29927 0 R/Subtype/Link/Rect[219 449 236 459]/Border[0 0 0]/H/N>> endobj 29413 0 obj <>/P 7595 0 R/Type/Annot/A 29921 0 R/Subtype/Link/Rect[236 449 250 458]/Border[0 0 0]/H/N>> endobj 29414 0 obj <>/P 7595 0 R/Type/Annot/A 43731 0 R/Subtype/Link/Rect[252 449 266 458]/Border[0 0 0]/H/N>> endobj 29415 0 obj <>/P 7595 0 R/Type/Annot/A 29910 0 R/Subtype/Link/Rect[268 449 285 459]/Border[0 0 0]/H/N>> endobj 29416 0 obj <>/P 7595 0 R/Type/Annot/A 29902 0 R/Subtype/Link/Rect[286 449 300 458]/Border[0 0 0]/H/N>> endobj 29417 0 obj <>/P 7595 0 R/Type/Annot/A 29983 0 R/Subtype/Link/Rect[151 439 163 448]/Border[0 0 0]/H/N>> endobj 29418 0 obj <>/P 7595 0 R/Type/Annot/A 29886 0 R/Subtype/Link/Rect[198 429 212 438]/Border[0 0 0]/H/N>> endobj 29419 0 obj <>/P 7595 0 R/Type/Annot/A 29877 0 R/Subtype/Link/Rect[214 429 226 438]/Border[0 0 0]/H/N>> endobj 29420 0 obj <>/P 7595 0 R/Type/Annot/A 29868 0 R/Subtype/Link/Rect[217 419 225 428]/Border[0 0 0]/H/N>> endobj 29421 0 obj <>/P 7595 0 R/Type/Annot/A 29858 0 R/Subtype/Link/Rect[217 409 227 418]/Border[0 0 0]/H/N>> endobj 29422 0 obj <>/P 7595 0 R/Type/Annot/A 29975 0 R/Subtype/Link/Rect[229 409 239 418]/Border[0 0 0]/H/N>> endobj 29423 0 obj <>/P 7595 0 R/Type/Annot/A 29836 0 R/Subtype/Link/Rect[241 409 253 419]/Border[0 0 0]/H/N>> endobj 29424 0 obj <>/P 7595 0 R/Type/Annot/A 43363 0 R/Subtype/Link/Rect[254 409 264 418]/Border[0 0 0]/H/N>> endobj 29425 0 obj <>/P 7595 0 R/Type/Annot/A 29819 0 R/Subtype/Link/Rect[266 409 283 419]/Border[0 0 0]/H/N>> endobj 29426 0 obj <>/P 7595 0 R/Type/Annot/A 29810 0 R/Subtype/Link/Rect[283 409 297 418]/Border[0 0 0]/H/N>> endobj 29427 0 obj <>/P 7595 0 R/Type/Annot/A 43231 0 R/Subtype/Link/Rect[151 399 165 408]/Border[0 0 0]/H/N>> endobj 29428 0 obj <>/P 7595 0 R/Type/Annot/A 29790 0 R/Subtype/Link/Rect[167 399 181 408]/Border[0 0 0]/H/N>> endobj 29429 0 obj <>/P 7595 0 R/Type/Annot/A 29782 0 R/Subtype/Link/Rect[183 399 197 408]/Border[0 0 0]/H/N>> endobj 29430 0 obj <>/P 7595 0 R/Type/Annot/A 29773 0 R/Subtype/Link/Rect[199 399 215 409]/Border[0 0 0]/H/N>> endobj 29431 0 obj <>/P 7595 0 R/Type/Annot/A 29764 0 R/Subtype/Link/Rect[216 399 230 408]/Border[0 0 0]/H/N>> endobj 29432 0 obj <>/P 7595 0 R/Type/Annot/A 29754 0 R/Subtype/Link/Rect[232 399 246 408]/Border[0 0 0]/H/N>> endobj 29433 0 obj <>/P 7595 0 R/Type/Annot/A 29745 0 R/Subtype/Link/Rect[248 399 260 408]/Border[0 0 0]/H/N>> endobj 29434 0 obj <>/P 7595 0 R/Type/Annot/A 29734 0 R/Subtype/Link/Rect[188 389 194 398]/Border[0 0 0]/H/N>> endobj 29435 0 obj <>/P 7595 0 R/Type/Annot/A 29727 0 R/Subtype/Link/Rect[196 389 206 398]/Border[0 0 0]/H/N>> endobj 29436 0 obj <>/P 7595 0 R/Type/Annot/A 29719 0 R/Subtype/Link/Rect[208 389 220 399]/Border[0 0 0]/H/N>> endobj 29437 0 obj <>/P 7595 0 R/Type/Annot/A 29709 0 R/Subtype/Link/Rect[221 389 231 398]/Border[0 0 0]/H/N>> endobj 29438 0 obj <>/P 7595 0 R/Type/Annot/A 29989 0 R/Subtype/Link/Rect[233 389 243 398]/Border[0 0 0]/H/N>> endobj 29439 0 obj <>/P 7595 0 R/Type/Annot/A 42775 0 R/Subtype/Link/Rect[245 389 255 398]/Border[0 0 0]/H/N>> endobj 29440 0 obj <>/P 7595 0 R/Type/Annot/A 29912 0 R/Subtype/Link/Rect[257 389 267 398]/Border[0 0 0]/H/N>> endobj 29441 0 obj <>/P 7595 0 R/Type/Annot/A 29905 0 R/Subtype/Link/Rect[269 389 279 398]/Border[0 0 0]/H/N>> endobj 29442 0 obj <>/P 7595 0 R/Type/Annot/A 29897 0 R/Subtype/Link/Rect[281 389 291 398]/Border[0 0 0]/H/N>> endobj 29443 0 obj <>/P 7595 0 R/Type/Annot/A 29891 0 R/Subtype/Link/Rect[151 379 168 389]/Border[0 0 0]/H/N>> endobj 29444 0 obj <>/P 7595 0 R/Type/Annot/A 29882 0 R/Subtype/Link/Rect[169 379 183 388]/Border[0 0 0]/H/N>> endobj 29445 0 obj <>/P 7595 0 R/Type/Annot/A 42565 0 R/Subtype/Link/Rect[185 379 201 389]/Border[0 0 0]/H/N>> endobj 29446 0 obj <>/P 7595 0 R/Type/Annot/A 29864 0 R/Subtype/Link/Rect[202 379 216 388]/Border[0 0 0]/H/N>> endobj 29447 0 obj <>/P 7595 0 R/Type/Annot/A 29853 0 R/Subtype/Link/Rect[218 379 231 388]/Border[0 0 0]/H/N>> endobj 29448 0 obj <>/P 7595 0 R/Type/Annot/A 29843 0 R/Subtype/Link/Rect[233 379 247 388]/Border[0 0 0]/H/N>> endobj 29449 0 obj <>/P 7595 0 R/Type/Annot/A 29968 0 R/Subtype/Link/Rect[249 379 266 389]/Border[0 0 0]/H/N>> endobj 29450 0 obj <>/P 7595 0 R/Type/Annot/A 29823 0 R/Subtype/Link/Rect[266 379 280 388]/Border[0 0 0]/H/N>> endobj 29451 0 obj <>/P 7595 0 R/Type/Annot/A 29814 0 R/Subtype/Link/Rect[151 369 168 379]/Border[0 0 0]/H/N>> endobj 29452 0 obj <>/P 7595 0 R/Type/Annot/A 29804 0 R/Subtype/Link/Rect[169 369 183 378]/Border[0 0 0]/H/N>> endobj 29453 0 obj <>/P 7595 0 R/Type/Annot/A 29795 0 R/Subtype/Link/Rect[185 369 199 378]/Border[0 0 0]/H/N>> endobj 29454 0 obj <>/P 7595 0 R/Type/Annot/A 29785 0 R/Subtype/Link/Rect[201 369 217 379]/Border[0 0 0]/H/N>> endobj 29455 0 obj <>/P 7595 0 R/Type/Annot/A 29955 0 R/Subtype/Link/Rect[218 369 232 378]/Border[0 0 0]/H/N>> endobj 29456 0 obj <>/P 7595 0 R/Type/Annot/A 29766 0 R/Subtype/Link/Rect[234 369 248 378]/Border[0 0 0]/H/N>> endobj 29457 0 obj <>/P 7595 0 R/Type/Annot/A 29757 0 R/Subtype/Link/Rect[250 369 264 378]/Border[0 0 0]/H/N>> endobj 29458 0 obj <>/P 7595 0 R/Type/Annot/A 29747 0 R/Subtype/Link/Rect[266 369 283 379]/Border[0 0 0]/H/N>> endobj 29459 0 obj <>/P 7595 0 R/Type/Annot/A 29737 0 R/Subtype/Link/Rect[283 369 297 378]/Border[0 0 0]/H/N>> endobj 29460 0 obj <>/P 7595 0 R/Type/Annot/A 29935 0 R/Subtype/Link/Rect[151 359 165 368]/Border[0 0 0]/H/N>> endobj 29461 0 obj <>/P 7595 0 R/Type/Annot/A 29720 0 R/Subtype/Link/Rect[167 359 181 368]/Border[0 0 0]/H/N>> endobj 29462 0 obj <>/P 7595 0 R/Type/Annot/A 29711 0 R/Subtype/Link/Rect[183 359 197 368]/Border[0 0 0]/H/N>> endobj 29463 0 obj <>/P 7595 0 R/Type/Annot/A 29922 0 R/Subtype/Link/Rect[199 359 213 368]/Border[0 0 0]/H/N>> endobj 29464 0 obj <>/P 7595 0 R/Type/Annot/A 29917 0 R/Subtype/Link/Rect[215 359 229 368]/Border[0 0 0]/H/N>> endobj 29465 0 obj <>/P 7595 0 R/Type/Annot/A 29909 0 R/Subtype/Link/Rect[231 359 245 368]/Border[0 0 0]/H/N>> endobj 29466 0 obj <>/P 7595 0 R/Type/Annot/A 29900 0 R/Subtype/Link/Rect[247 359 264 369]/Border[0 0 0]/H/N>> endobj 29467 0 obj <>/P 7595 0 R/Type/Annot/A 29892 0 R/Subtype/Link/Rect[265 359 279 368]/Border[0 0 0]/H/N>> endobj 29468 0 obj <>/P 7595 0 R/Type/Annot/A 29884 0 R/Subtype/Link/Rect[151 349 168 359]/Border[0 0 0]/H/N>> endobj 29469 0 obj <>/P 7595 0 R/Type/Annot/A 29874 0 R/Subtype/Link/Rect[169 349 183 358]/Border[0 0 0]/H/N>> endobj 29470 0 obj <>/P 7595 0 R/Type/Annot/A 29865 0 R/Subtype/Link/Rect[185 349 201 359]/Border[0 0 0]/H/N>> endobj 29471 0 obj <>/P 7595 0 R/Type/Annot/A 29854 0 R/Subtype/Link/Rect[202 349 216 358]/Border[0 0 0]/H/N>> endobj 29472 0 obj <>/P 7595 0 R/Type/Annot/A 29970 0 R/Subtype/Link/Rect[218 349 232 358]/Border[0 0 0]/H/N>> endobj 29473 0 obj <>/P 7595 0 R/Type/Annot/A 29831 0 R/Subtype/Link/Rect[234 349 248 358]/Border[0 0 0]/H/N>> endobj 29474 0 obj <>/P 7595 0 R/Type/Annot/A 29822 0 R/Subtype/Link/Rect[250 349 264 358]/Border[0 0 0]/H/N>> endobj 29475 0 obj <>/P 7595 0 R/Type/Annot/A 41321 0 R/Subtype/Link/Rect[266 349 280 358]/Border[0 0 0]/H/N>> endobj 29476 0 obj <>/P 7595 0 R/Type/Annot/A 29803 0 R/Subtype/Link/Rect[282 349 296 358]/Border[0 0 0]/H/N>> endobj 29477 0 obj <>/P 7595 0 R/Type/Annot/A 29792 0 R/Subtype/Link/Rect[151 340 165 348]/Border[0 0 0]/H/N>> endobj 29478 0 obj <>/P 7595 0 R/Type/Annot/A 29783 0 R/Subtype/Link/Rect[167 340 184 349]/Border[0 0 0]/H/N>> endobj 29479 0 obj <>/P 7595 0 R/Type/Annot/A 29774 0 R/Subtype/Link/Rect[185 340 199 348]/Border[0 0 0]/H/N>> endobj 29480 0 obj <>/P 7595 0 R/Type/Annot/A 29763 0 R/Subtype/Link/Rect[201 340 215 348]/Border[0 0 0]/H/N>> endobj 29481 0 obj <>/P 7595 0 R/Type/Annot/A 29995 0 R/Subtype/Link/Rect[217 340 231 348]/Border[0 0 0]/H/N>> endobj 29482 0 obj <>/P 7595 0 R/Type/Annot/A 29743 0 R/Subtype/Link/Rect[233 340 247 348]/Border[0 0 0]/H/N>> endobj 29483 0 obj <>/P 7595 0 R/Type/Annot/A 29733 0 R/Subtype/Link/Rect[249 340 263 348]/Border[0 0 0]/H/N>> endobj 29484 0 obj <>/P 7595 0 R/Type/Annot/A 29725 0 R/Subtype/Link/Rect[265 340 281 349]/Border[0 0 0]/H/N>> endobj 29485 0 obj <>/P 7595 0 R/Type/Annot/A 29717 0 R/Subtype/Link/Rect[282 340 296 348]/Border[0 0 0]/H/N>> endobj 29486 0 obj <>/P 7595 0 R/Type/Annot/A 29707 0 R/Subtype/Link/Rect[151 330 168 339]/Border[0 0 0]/H/N>> endobj 29487 0 obj <>/P 7595 0 R/Type/Annot/A 29915 0 R/Subtype/Link/Rect[169 330 183 338]/Border[0 0 0]/H/N>> endobj 29488 0 obj <>/P 7595 0 R/Type/Annot/A 29907 0 R/Subtype/Link/Rect[185 330 199 338]/Border[0 0 0]/H/N>> endobj 29489 0 obj <>/P 7595 0 R/Type/Annot/A 29898 0 R/Subtype/Link/Rect[201 330 215 338]/Border[0 0 0]/H/N>> endobj 29490 0 obj <>/P 7595 0 R/Type/Annot/A 39488 0 R/Subtype/Link/Rect[217 330 233 339]/Border[0 0 0]/H/N>> endobj 29491 0 obj <>/P 7595 0 R/Type/Annot/A 29883 0 R/Subtype/Link/Rect[234 330 248 338]/Border[0 0 0]/H/N>> endobj 29492 0 obj <>/P 7595 0 R/Type/Annot/A 29873 0 R/Subtype/Link/Rect[250 330 264 338]/Border[0 0 0]/H/N>> endobj 29493 0 obj <>/P 7595 0 R/Type/Annot/A 29863 0 R/Subtype/Link/Rect[266 330 283 339]/Border[0 0 0]/H/N>> endobj 29494 0 obj <>/P 7595 0 R/Type/Annot/A 29851 0 R/Subtype/Link/Rect[283 330 297 338]/Border[0 0 0]/H/N>> endobj 29495 0 obj <>/P 7595 0 R/Type/Annot/A 29840 0 R/Subtype/Link/Rect[151 320 165 328]/Border[0 0 0]/H/N>> endobj 29496 0 obj <>/P 7595 0 R/Type/Annot/A 29830 0 R/Subtype/Link/Rect[167 320 181 328]/Border[0 0 0]/H/N>> endobj 29497 0 obj <>/P 7595 0 R/Type/Annot/A 29820 0 R/Subtype/Link/Rect[183 320 197 328]/Border[0 0 0]/H/N>> endobj 29498 0 obj <>/P 7595 0 R/Type/Annot/A 29809 0 R/Subtype/Link/Rect[199 320 213 328]/Border[0 0 0]/H/N>> endobj 29499 0 obj <>/P 7595 0 R/Type/Annot/A 29800 0 R/Subtype/Link/Rect[215 320 229 328]/Border[0 0 0]/H/N>> endobj 29500 0 obj <>/P 7595 0 R/Type/Annot/A 29789 0 R/Subtype/Link/Rect[231 320 245 328]/Border[0 0 0]/H/N>> endobj 29501 0 obj <>/P 7595 0 R/Type/Annot/A 29778 0 R/Subtype/Link/Rect[247 320 261 328]/Border[0 0 0]/H/N>> endobj 29502 0 obj <>/P 7595 0 R/Type/Annot/A 29768 0 R/Subtype/Link/Rect[263 320 275 328]/Border[0 0 0]/H/N>> endobj 29503 0 obj <>/P 7595 0 R/Type/Annot/A 29759 0 R/Subtype/Link/Rect[190 310 198 318]/Border[0 0 0]/H/N>> endobj 29504 0 obj <>/P 7595 0 R/Type/Annot/A 29749 0 R/Subtype/Link/Rect[231 300 241 308]/Border[0 0 0]/H/N>> endobj 29505 0 obj <>/P 7595 0 R/Type/Annot/A 29739 0 R/Subtype/Link/Rect[243 300 257 308]/Border[0 0 0]/H/N>> endobj 29506 0 obj <>/P 7595 0 R/Type/Annot/A 38125 0 R/Subtype/Link/Rect[259 300 271 308]/Border[0 0 0]/H/N>> endobj 29507 0 obj <>/P 7595 0 R/Type/Annot/A 29924 0 R/Subtype/Link/Rect[197 280 210 289]/Border[0 0 0]/H/N>> endobj 29508 0 obj <>/P 7595 0 R/Type/Annot/A 29710 0 R/Subtype/Link/Rect[211 280 221 288]/Border[0 0 0]/H/N>> endobj 29509 0 obj <>/P 7595 0 R/Type/Annot/A 29911 0 R/Subtype/Link/Rect[223 280 237 288]/Border[0 0 0]/H/N>> endobj 29510 0 obj <>/P 7595 0 R/Type/Annot/A 29904 0 R/Subtype/Link/Rect[239 280 251 288]/Border[0 0 0]/H/N>> endobj 29511 0 obj <>/P 7595 0 R/Type/Annot/A 29896 0 R/Subtype/Link/Rect[190 270 198 278]/Border[0 0 0]/H/N>> endobj 29512 0 obj <>/P 7595 0 R/Type/Annot/A 29889 0 R/Subtype/Link/Rect[196 260 210 268]/Border[0 0 0]/H/N>> endobj 29513 0 obj <>/P 7595 0 R/Type/Annot/A 29976 0 R/Subtype/Link/Rect[212 260 226 268]/Border[0 0 0]/H/N>> endobj 29514 0 obj <>/P 7595 0 R/Type/Annot/A 29973 0 R/Subtype/Link/Rect[228 260 240 268]/Border[0 0 0]/H/N>> endobj 29515 0 obj <>/P 7595 0 R/Type/Annot/A 29856 0 R/Subtype/Link/Rect[202 250 208 258]/Border[0 0 0]/H/N>> endobj 29516 0 obj <>/P 7595 0 R/Type/Annot/A 29846 0 R/Subtype/Link/Rect[210 250 216 258]/Border[0 0 0]/H/N>> endobj 29517 0 obj <>/P 7595 0 R/Type/Annot/A 37971 0 R/Subtype/Link/Rect[218 250 232 258]/Border[0 0 0]/H/N>> endobj 29518 0 obj <>/P 7595 0 R/Type/Annot/A 29825 0 R/Subtype/Link/Rect[234 250 251 259]/Border[0 0 0]/H/N>> endobj 29519 0 obj <>/P 7595 0 R/Type/Annot/A 29815 0 R/Subtype/Link/Rect[252 250 266 258]/Border[0 0 0]/H/N>> endobj 29520 0 obj <>/P 7595 0 R/Type/Annot/A 29958 0 R/Subtype/Link/Rect[268 250 284 259]/Border[0 0 0]/H/N>> endobj 29521 0 obj <>/P 7595 0 R/Type/Annot/A 29794 0 R/Subtype/Link/Rect[285 250 299 258]/Border[0 0 0]/H/N>> endobj 29522 0 obj <>/P 7595 0 R/Type/Annot/A 37907 0 R/Subtype/Link/Rect[151 240 165 248]/Border[0 0 0]/H/N>> endobj 29523 0 obj <>/P 7595 0 R/Type/Annot/A 29772 0 R/Subtype/Link/Rect[167 240 181 248]/Border[0 0 0]/H/N>> endobj 29524 0 obj <>/P 7595 0 R/Type/Annot/A 29941 0 R/Subtype/Link/Rect[183 240 197 248]/Border[0 0 0]/H/N>> endobj 29525 0 obj <>/P 7595 0 R/Type/Annot/A 29752 0 R/Subtype/Link/Rect[199 240 213 248]/Border[0 0 0]/H/N>> endobj 29526 0 obj <>/P 7595 0 R/Type/Annot/A 30053 0 R/Subtype/Link/Rect[215 240 227 248]/Border[0 0 0]/H/N>> endobj 29527 0 obj <>/P 7595 0 R/Type/Annot/A 30050 0 R/Subtype/Link/Rect[190 230 202 238]/Border[0 0 0]/H/N>> endobj 29528 0 obj <>/P 7595 0 R/Type/Annot/A 30049 0 R/Subtype/Link/Rect[202 220 216 228]/Border[0 0 0]/H/N>> endobj 29529 0 obj <>/P 7595 0 R/Type/Annot/A 30048 0 R/Subtype/Link/Rect[218 220 232 228]/Border[0 0 0]/H/N>> endobj 29530 0 obj <>/P 7595 0 R/Type/Annot/A 30047 0 R/Subtype/Link/Rect[234 220 251 229]/Border[0 0 0]/H/N>> endobj 29531 0 obj <>/P 7595 0 R/Type/Annot/A 30046 0 R/Subtype/Link/Rect[252 220 266 228]/Border[0 0 0]/H/N>> endobj 29532 0 obj <>/P 7595 0 R/Type/Annot/A 30045 0 R/Subtype/Link/Rect[268 220 282 228]/Border[0 0 0]/H/N>> endobj 29533 0 obj <>/P 7595 0 R/Type/Annot/A 30044 0 R/Subtype/Link/Rect[284 220 298 228]/Border[0 0 0]/H/N>> endobj 29534 0 obj <>/P 7595 0 R/Type/Annot/A 30043 0 R/Subtype/Link/Rect[300 220 312 228]/Border[0 0 0]/H/N>> endobj 29535 0 obj <>/P 7595 0 R/Type/Annot/A 30042 0 R/Subtype/Link/Rect[190 210 202 218]/Border[0 0 0]/H/N>> endobj 29536 0 obj <>/P 7595 0 R/Type/Annot/A 30041 0 R/Subtype/Link/Rect[207 200 217 208]/Border[0 0 0]/H/N>> endobj 29537 0 obj <>/P 7595 0 R/Type/Annot/A 30040 0 R/Subtype/Link/Rect[219 200 229 208]/Border[0 0 0]/H/N>> endobj 29538 0 obj <>/P 7595 0 R/Type/Annot/A 30039 0 R/Subtype/Link/Rect[231 200 241 208]/Border[0 0 0]/H/N>> endobj 29539 0 obj <>/P 7595 0 R/Type/Annot/A 30038 0 R/Subtype/Link/Rect[243 200 256 209]/Border[0 0 0]/H/N>> endobj 29540 0 obj <>/P 7595 0 R/Type/Annot/A 30037 0 R/Subtype/Link/Rect[256 200 266 208]/Border[0 0 0]/H/N>> endobj 29541 0 obj <>/P 7595 0 R/Type/Annot/A 30036 0 R/Subtype/Link/Rect[268 200 278 208]/Border[0 0 0]/H/N>> endobj 29542 0 obj <>/P 7595 0 R/Type/Annot/A 30035 0 R/Subtype/Link/Rect[280 200 290 208]/Border[0 0 0]/H/N>> endobj 29543 0 obj <>/P 7595 0 R/Type/Annot/A 30034 0 R/Subtype/Link/Rect[292 200 304 208]/Border[0 0 0]/H/N>> endobj 29544 0 obj <>/P 7595 0 R/Type/Annot/A 30033 0 R/Subtype/Link/Rect[207 190 221 198]/Border[0 0 0]/H/N>> endobj 29545 0 obj <>/P 7595 0 R/Type/Annot/A 30032 0 R/Subtype/Link/Rect[223 190 237 198]/Border[0 0 0]/H/N>> endobj 29546 0 obj <>/P 7595 0 R/Type/Annot/A 30031 0 R/Subtype/Link/Rect[239 190 253 198]/Border[0 0 0]/H/N>> endobj 29547 0 obj <>/P 7595 0 R/Type/Annot/A 30030 0 R/Subtype/Link/Rect[255 190 269 198]/Border[0 0 0]/H/N>> endobj 29548 0 obj <>/P 7595 0 R/Type/Annot/A 30029 0 R/Subtype/Link/Rect[271 190 283 198]/Border[0 0 0]/H/N>> endobj 29549 0 obj <>/P 7595 0 R/Type/Annot/A 30028 0 R/Subtype/Link/Rect[190 180 200 188]/Border[0 0 0]/H/N>> endobj 29550 0 obj <>/P 7595 0 R/Type/Annot/A 30027 0 R/Subtype/Link/Rect[202 180 214 188]/Border[0 0 0]/H/N>> endobj 29551 0 obj <>/P 7595 0 R/Type/Annot/A 30026 0 R/Subtype/Link/Rect[236 170 252 179]/Border[0 0 0]/H/N>> endobj 29552 0 obj <>/P 7595 0 R/Type/Annot/A 30025 0 R/Subtype/Link/Rect[253 170 265 178]/Border[0 0 0]/H/N>> endobj 29553 0 obj <>/P 7595 0 R/Type/Annot/A 30024 0 R/Subtype/Link/Rect[190 160 202 168]/Border[0 0 0]/H/N>> endobj 29554 0 obj <>/P 7595 0 R/Type/Annot/A 30023 0 R/Subtype/Link/Rect[177 150 189 158]/Border[0 0 0]/H/N>> endobj 29555 0 obj <>/P 7595 0 R/Type/Annot/A 30022 0 R/Subtype/Link/Rect[376 659 388 668]/Border[0 0 0]/H/N>> endobj 29556 0 obj <>/P 7595 0 R/Type/Annot/A 30021 0 R/Subtype/Link/Rect[449 649 465 659]/Border[0 0 0]/H/N>> endobj 29557 0 obj <>/P 7595 0 R/Type/Annot/A 30020 0 R/Subtype/Link/Rect[466 649 478 658]/Border[0 0 0]/H/N>> endobj 29558 0 obj <>/P 7595 0 R/Type/Annot/A 30019 0 R/Subtype/Link/Rect[398 639 410 648]/Border[0 0 0]/H/N>> endobj 29559 0 obj <>/P 7595 0 R/Type/Annot/A 30018 0 R/Subtype/Link/Rect[401 629 415 638]/Border[0 0 0]/H/N>> endobj 29560 0 obj <>/P 7595 0 R/Type/Annot/A 30017 0 R/Subtype/Link/Rect[417 629 431 638]/Border[0 0 0]/H/N>> endobj 29561 0 obj <>/P 7595 0 R/Type/Annot/A 30016 0 R/Subtype/Link/Rect[433 629 449 639]/Border[0 0 0]/H/N>> endobj 29562 0 obj <>/P 7595 0 R/Type/Annot/A 30015 0 R/Subtype/Link/Rect[450 629 464 638]/Border[0 0 0]/H/N>> endobj 29563 0 obj <>/P 7595 0 R/Type/Annot/A 30014 0 R/Subtype/Link/Rect[466 629 478 638]/Border[0 0 0]/H/N>> endobj 29564 0 obj <>/P 7595 0 R/Type/Annot/A 30013 0 R/Subtype/Link/Rect[404 619 416 628]/Border[0 0 0]/H/N>> endobj 29565 0 obj <>/P 7595 0 R/Type/Annot/A 30012 0 R/Subtype/Link/Rect[404 609 416 618]/Border[0 0 0]/H/N>> endobj 29566 0 obj <>/P 7595 0 R/Type/Annot/A 30011 0 R/Subtype/Link/Rect[404 599 416 608]/Border[0 0 0]/H/N>> endobj 29567 0 obj <>/P 7595 0 R/Type/Annot/A 30010 0 R/Subtype/Link/Rect[389 589 397 598]/Border[0 0 0]/H/N>> endobj 29568 0 obj <>/P 7595 0 R/Type/Annot/A 30009 0 R/Subtype/Link/Rect[370 579 383 589]/Border[0 0 0]/H/N>> endobj 29569 0 obj <>/P 7595 0 R/Type/Annot/A 30007 0 R/Subtype/Link/Rect[383 579 391 588]/Border[0 0 0]/H/N>> endobj 29570 0 obj <>/P 7595 0 R/Type/Annot/A 30006 0 R/Subtype/Link/Rect[377 569 393 579]/Border[0 0 0]/H/N>> endobj 29571 0 obj <>/P 7595 0 R/Type/Annot/A 30005 0 R/Subtype/Link/Rect[394 569 406 578]/Border[0 0 0]/H/N>> endobj 29572 0 obj <>/P 7595 0 R/Type/Annot/A 30004 0 R/Subtype/Link/Rect[404 559 416 568]/Border[0 0 0]/H/N>> endobj 29573 0 obj <>/P 7595 0 R/Type/Annot/A 30003 0 R/Subtype/Link/Rect[444 549 452 558]/Border[0 0 0]/H/N>> endobj 29574 0 obj <>/P 7595 0 R/Type/Annot/A 30002 0 R/Subtype/Link/Rect[415 539 425 548]/Border[0 0 0]/H/N>> endobj 29575 0 obj <>/P 7595 0 R/Type/Annot/A 30001 0 R/Subtype/Link/Rect[427 539 440 549]/Border[0 0 0]/H/N>> endobj 29576 0 obj <>/P 7595 0 R/Type/Annot/A 30000 0 R/Subtype/Link/Rect[440 539 450 548]/Border[0 0 0]/H/N>> endobj 29577 0 obj <>/P 7595 0 R/Type/Annot/A 29999 0 R/Subtype/Link/Rect[452 539 466 548]/Border[0 0 0]/H/N>> endobj 29578 0 obj <>/P 7595 0 R/Type/Annot/A 29998 0 R/Subtype/Link/Rect[468 539 482 548]/Border[0 0 0]/H/N>> endobj 29579 0 obj <>/P 7595 0 R/Type/Annot/A 29997 0 R/Subtype/Link/Rect[484 539 501 549]/Border[0 0 0]/H/N>> endobj 29580 0 obj <>/P 7595 0 R/Type/Annot/A 29996 0 R/Subtype/Link/Rect[502 539 516 548]/Border[0 0 0]/H/N>> endobj 29581 0 obj <>/P 7595 0 R/Type/Annot/A 29994 0 R/Subtype/Link/Rect[359 529 373 538]/Border[0 0 0]/H/N>> endobj 29582 0 obj <>/P 7595 0 R/Type/Annot/A 29992 0 R/Subtype/Link/Rect[375 529 389 538]/Border[0 0 0]/H/N>> endobj 29583 0 obj <>/P 7595 0 R/Type/Annot/A 29990 0 R/Subtype/Link/Rect[391 529 405 538]/Border[0 0 0]/H/N>> endobj 29584 0 obj <>/P 7595 0 R/Type/Annot/A 29988 0 R/Subtype/Link/Rect[407 529 421 538]/Border[0 0 0]/H/N>> endobj 29585 0 obj <>/P 7595 0 R/Type/Annot/A 29987 0 R/Subtype/Link/Rect[423 529 435 538]/Border[0 0 0]/H/N>> endobj 29586 0 obj <>/P 7595 0 R/Type/Annot/A 29986 0 R/Subtype/Link/Rect[406 519 416 528]/Border[0 0 0]/H/N>> endobj 29587 0 obj <>/P 7595 0 R/Type/Annot/A 29985 0 R/Subtype/Link/Rect[418 519 430 529]/Border[0 0 0]/H/N>> endobj 29588 0 obj <>/P 7595 0 R/Type/Annot/A 29984 0 R/Subtype/Link/Rect[431 519 441 528]/Border[0 0 0]/H/N>> endobj 29589 0 obj <>/P 7595 0 R/Type/Annot/A 29982 0 R/Subtype/Link/Rect[443 519 457 528]/Border[0 0 0]/H/N>> endobj 29590 0 obj <>/P 7595 0 R/Type/Annot/A 29981 0 R/Subtype/Link/Rect[459 519 473 528]/Border[0 0 0]/H/N>> endobj 29591 0 obj <>/P 7595 0 R/Type/Annot/A 29980 0 R/Subtype/Link/Rect[475 519 489 528]/Border[0 0 0]/H/N>> endobj 29592 0 obj <>/P 7595 0 R/Type/Annot/A 29979 0 R/Subtype/Link/Rect[491 519 505 528]/Border[0 0 0]/H/N>> endobj 29593 0 obj <>/P 7595 0 R/Type/Annot/A 29977 0 R/Subtype/Link/Rect[359 509 373 518]/Border[0 0 0]/H/N>> endobj 29594 0 obj <>/P 7595 0 R/Type/Annot/A 29974 0 R/Subtype/Link/Rect[375 509 392 519]/Border[0 0 0]/H/N>> endobj 29595 0 obj <>/P 7595 0 R/Type/Annot/A 29972 0 R/Subtype/Link/Rect[393 509 407 518]/Border[0 0 0]/H/N>> endobj 29596 0 obj <>/P 7595 0 R/Type/Annot/A 29969 0 R/Subtype/Link/Rect[409 509 423 518]/Border[0 0 0]/H/N>> endobj 29597 0 obj <>/P 7595 0 R/Type/Annot/A 29967 0 R/Subtype/Link/Rect[425 509 439 518]/Border[0 0 0]/H/N>> endobj 29598 0 obj <>/P 7595 0 R/Type/Annot/A 29966 0 R/Subtype/Link/Rect[441 509 455 518]/Border[0 0 0]/H/N>> endobj 29599 0 obj <>/P 7595 0 R/Type/Annot/A 29964 0 R/Subtype/Link/Rect[457 509 471 518]/Border[0 0 0]/H/N>> endobj 29600 0 obj <>/P 7595 0 R/Type/Annot/A 29962 0 R/Subtype/Link/Rect[473 509 487 518]/Border[0 0 0]/H/N>> endobj 29601 0 obj <>/P 7595 0 R/Type/Annot/A 29960 0 R/Subtype/Link/Rect[489 509 502 518]/Border[0 0 0]/H/N>> endobj 29602 0 obj <>/P 7595 0 R/Type/Annot/A 29957 0 R/Subtype/Link/Rect[504 509 516 518]/Border[0 0 0]/H/N>> endobj 29603 0 obj <>/P 7595 0 R/Type/Annot/A 29954 0 R/Subtype/Link/Rect[382 499 396 508]/Border[0 0 0]/H/N>> endobj 29604 0 obj <>/P 7595 0 R/Type/Annot/A 29951 0 R/Subtype/Link/Rect[398 499 410 508]/Border[0 0 0]/H/N>> endobj 29605 0 obj <>/P 7595 0 R/Type/Annot/A 29947 0 R/Subtype/Link/Rect[410 489 422 498]/Border[0 0 0]/H/N>> endobj 29606 0 obj <>/P 7595 0 R/Type/Annot/A 29943 0 R/Subtype/Link/Rect[430 479 446 489]/Border[0 0 0]/H/N>> endobj 29607 0 obj <>/P 7595 0 R/Type/Annot/A 29939 0 R/Subtype/Link/Rect[447 479 461 488]/Border[0 0 0]/H/N>> endobj 29608 0 obj <>/P 7595 0 R/Type/Annot/A 29937 0 R/Subtype/Link/Rect[463 479 477 488]/Border[0 0 0]/H/N>> endobj 29609 0 obj <>/P 7595 0 R/Type/Annot/A 29933 0 R/Subtype/Link/Rect[479 479 491 488]/Border[0 0 0]/H/N>> endobj 29610 0 obj <>/P 7595 0 R/Type/Annot/A 29930 0 R/Subtype/Link/Rect[410 469 420 478]/Border[0 0 0]/H/N>> endobj 29611 0 obj <>/P 7595 0 R/Type/Annot/A 29925 0 R/Subtype/Link/Rect[422 469 430 478]/Border[0 0 0]/H/N>> endobj 29612 0 obj <>/P 7595 0 R/Type/Annot/A 29920 0 R/Subtype/Link/Rect[415 459 425 468]/Border[0 0 0]/H/N>> endobj 29613 0 obj <>/P 7595 0 R/Type/Annot/A 29916 0 R/Subtype/Link/Rect[427 459 435 468]/Border[0 0 0]/H/N>> endobj 29614 0 obj <>/P 7595 0 R/Type/Annot/A 29978 0 R/Subtype/Link/Rect[462 449 475 459]/Border[0 0 0]/H/N>> endobj 29615 0 obj <>/P 7595 0 R/Type/Annot/A 29903 0 R/Subtype/Link/Rect[475 449 483 458]/Border[0 0 0]/H/N>> endobj 29616 0 obj <>/P 7595 0 R/Type/Annot/A 29895 0 R/Subtype/Link/Rect[406 439 418 449]/Border[0 0 0]/H/N>> endobj 29617 0 obj <>/P 7595 0 R/Type/Annot/A 29888 0 R/Subtype/Link/Rect[419 439 429 448]/Border[0 0 0]/H/N>> endobj 29618 0 obj <>/P 7595 0 R/Type/Annot/A 29880 0 R/Subtype/Link/Rect[431 439 444 449]/Border[0 0 0]/H/N>> endobj 29619 0 obj <>/P 7595 0 R/Type/Annot/A 29871 0 R/Subtype/Link/Rect[444 439 454 448]/Border[0 0 0]/H/N>> endobj 29620 0 obj <>/P 7595 0 R/Type/Annot/A 29862 0 R/Subtype/Link/Rect[456 439 469 449]/Border[0 0 0]/H/N>> endobj 29621 0 obj <>/P 7595 0 R/Type/Annot/A 29852 0 R/Subtype/Link/Rect[470 439 480 448]/Border[0 0 0]/H/N>> endobj 29622 0 obj <>/P 7595 0 R/Type/Annot/A 29844 0 R/Subtype/Link/Rect[482 439 496 448]/Border[0 0 0]/H/N>> endobj 29623 0 obj <>/P 7595 0 R/Type/Annot/A 29834 0 R/Subtype/Link/Rect[498 439 510 448]/Border[0 0 0]/H/N>> endobj 29624 0 obj <>/P 7595 0 R/Type/Annot/A 29826 0 R/Subtype/Link/Rect[410 429 420 438]/Border[0 0 0]/H/N>> endobj 29625 0 obj <>/P 7595 0 R/Type/Annot/A 29818 0 R/Subtype/Link/Rect[422 429 432 438]/Border[0 0 0]/H/N>> endobj 29626 0 obj <>/P 7595 0 R/Type/Annot/A 29808 0 R/Subtype/Link/Rect[434 429 448 438]/Border[0 0 0]/H/N>> endobj 29627 0 obj <>/P 7595 0 R/Type/Annot/A 29799 0 R/Subtype/Link/Rect[450 429 464 438]/Border[0 0 0]/H/N>> endobj 29628 0 obj <>/P 7595 0 R/Type/Annot/A 29940 0 R/Subtype/Link/Rect[466 429 480 438]/Border[0 0 0]/H/N>> endobj 29629 0 obj <>/P 7595 0 R/Type/Annot/A 29781 0 R/Subtype/Link/Rect[482 429 499 439]/Border[0 0 0]/H/N>> endobj 29630 0 obj <>/P 7595 0 R/Type/Annot/A 29771 0 R/Subtype/Link/Rect[499 429 513 438]/Border[0 0 0]/H/N>> endobj 29631 0 obj <>/P 7595 0 R/Type/Annot/A 29931 0 R/Subtype/Link/Rect[359 419 373 428]/Border[0 0 0]/H/N>> endobj 29632 0 obj <>/P 7595 0 R/Type/Annot/A 29755 0 R/Subtype/Link/Rect[375 419 389 428]/Border[0 0 0]/H/N>> endobj 29633 0 obj <>/P 7595 0 R/Type/Annot/A 29746 0 R/Subtype/Link/Rect[391 419 405 428]/Border[0 0 0]/H/N>> endobj 29634 0 obj <>/P 7595 0 R/Type/Annot/A 29738 0 R/Subtype/Link/Rect[407 419 424 429]/Border[0 0 0]/H/N>> endobj 29635 0 obj <>/P 7595 0 R/Type/Annot/A 29729 0 R/Subtype/Link/Rect[425 419 439 428]/Border[0 0 0]/H/N>> endobj 29636 0 obj <>/P 7595 0 R/Type/Annot/A 29723 0 R/Subtype/Link/Rect[441 419 455 428]/Border[0 0 0]/H/N>> endobj 29637 0 obj <>/P 7595 0 R/Type/Annot/A 29715 0 R/Subtype/Link/Rect[457 419 469 428]/Border[0 0 0]/H/N>> endobj 29638 0 obj <>/P 7595 0 R/Type/Annot/A 29705 0 R/Subtype/Link/Rect[425 409 435 418]/Border[0 0 0]/H/N>> endobj 29639 0 obj <>/P 7595 0 R/Type/Annot/A 29881 0 R/Subtype/Link/Rect[437 409 451 418]/Border[0 0 0]/H/N>> endobj 29640 0 obj <>/P 7595 0 R/Type/Annot/A 29872 0 R/Subtype/Link/Rect[453 409 465 418]/Border[0 0 0]/H/N>> endobj 29641 0 obj <>/P 7595 0 R/Type/Annot/A 29993 0 R/Subtype/Link/Rect[403 399 415 408]/Border[0 0 0]/H/N>> endobj 29642 0 obj <>/P 7595 0 R/Type/Annot/A 44702 0 R/Subtype/Link/Rect[386 379 402 389]/Border[0 0 0]/H/N>> endobj 29643 0 obj <>/P 7595 0 R/Type/Annot/A 29842 0 R/Subtype/Link/Rect[403 379 415 388]/Border[0 0 0]/H/N>> endobj 29644 0 obj <>/P 7595 0 R/Type/Annot/A 29833 0 R/Subtype/Link/Rect[365 369 382 379]/Border[0 0 0]/H/N>> endobj 29645 0 obj <>/P 7595 0 R/Type/Annot/A 29952 0 R/Subtype/Link/Rect[383 369 395 378]/Border[0 0 0]/H/N>> endobj 29646 0 obj <>/P 7595 0 R/Type/Annot/A 29816 0 R/Subtype/Link/Rect[415 359 425 368]/Border[0 0 0]/H/N>> endobj 29647 0 obj <>/P 7595 0 R/Type/Annot/A 29805 0 R/Subtype/Link/Rect[427 359 440 369]/Border[0 0 0]/H/N>> endobj 29648 0 obj <>/P 7595 0 R/Type/Annot/A 29796 0 R/Subtype/Link/Rect[440 359 450 368]/Border[0 0 0]/H/N>> endobj 29649 0 obj <>/P 7595 0 R/Type/Annot/A 29787 0 R/Subtype/Link/Rect[452 359 466 368]/Border[0 0 0]/H/N>> endobj 29650 0 obj <>/P 7595 0 R/Type/Annot/A 29779 0 R/Subtype/Link/Rect[468 359 480 368]/Border[0 0 0]/H/N>> endobj 29651 0 obj <>/P 7595 0 R/Type/Annot/A 29769 0 R/Subtype/Link/Rect[406 349 420 358]/Border[0 0 0]/H/N>> endobj 29652 0 obj <>/P 7595 0 R/Type/Annot/A 29761 0 R/Subtype/Link/Rect[422 349 434 358]/Border[0 0 0]/H/N>> endobj 29653 0 obj <>/P 7595 0 R/Type/Annot/A 29751 0 R/Subtype/Link/Rect[451 312 463 320]/Border[0 0 0]/H/N>> endobj 29654 0 obj <>/P 7595 0 R/Type/Annot/A 29742 0 R/Subtype/Link/Rect[382 302 390 310]/Border[0 0 0]/H/N>> endobj 29655 0 obj <>/P 7595 0 R/Type/Annot/A 29732 0 R/Subtype/Link/Rect[376 292 388 300]/Border[0 0 0]/H/N>> endobj 29656 0 obj <>/P 7595 0 R/Type/Annot/A 29726 0 R/Subtype/Link/Rect[418 282 430 290]/Border[0 0 0]/H/N>> endobj 29657 0 obj <>/P 7595 0 R/Type/Annot/A 29718 0 R/Subtype/Link/Rect[447 272 461 280]/Border[0 0 0]/H/N>> endobj 29658 0 obj <>/P 7595 0 R/Type/Annot/A 29708 0 R/Subtype/Link/Rect[463 272 480 281]/Border[0 0 0]/H/N>> endobj 29659 0 obj <>/P 7595 0 R/Type/Annot/A 29879 0 R/Subtype/Link/Rect[480 272 492 280]/Border[0 0 0]/H/N>> endobj 29660 0 obj <>/P 7595 0 R/Type/Annot/A 29869 0 R/Subtype/Link/Rect[415 262 425 270]/Border[0 0 0]/H/N>> endobj 29661 0 obj <>/P 7595 0 R/Type/Annot/A 29859 0 R/Subtype/Link/Rect[427 262 437 270]/Border[0 0 0]/H/N>> endobj 29662 0 obj <>/P 7595 0 R/Type/Annot/A 29848 0 R/Subtype/Link/Rect[439 262 447 270]/Border[0 0 0]/H/N>> endobj 29663 0 obj <>/P 7595 0 R/Type/Annot/A 29838 0 R/Subtype/Link/Rect[420 252 430 260]/Border[0 0 0]/H/N>> endobj 29664 0 obj <>/P 7595 0 R/Type/Annot/A 29829 0 R/Subtype/Link/Rect[432 252 442 260]/Border[0 0 0]/H/N>> endobj 29665 0 obj <>/P 7595 0 R/Type/Annot/A 29948 0 R/Subtype/Link/Rect[444 252 452 260]/Border[0 0 0]/H/N>> endobj 29666 0 obj <>/P 7595 0 R/Type/Annot/A 29812 0 R/Subtype/Link/Rect[401 242 413 250]/Border[0 0 0]/H/N>> endobj 29667 0 obj <>/P 7595 0 R/Type/Annot/A 29801 0 R/Subtype/Link/Rect[406 232 420 240]/Border[0 0 0]/H/N>> endobj 29668 0 obj <>/P 7595 0 R/Type/Annot/A 29791 0 R/Subtype/Link/Rect[422 232 436 240]/Border[0 0 0]/H/N>> endobj 29669 0 obj <>/P 7595 0 R/Type/Annot/A 29934 0 R/Subtype/Link/Rect[438 232 452 240]/Border[0 0 0]/H/N>> endobj 29670 0 obj <>/P 7595 0 R/Type/Annot/A 29775 0 R/Subtype/Link/Rect[454 232 470 241]/Border[0 0 0]/H/N>> endobj 29671 0 obj <>/P 7595 0 R/Type/Annot/A 29765 0 R/Subtype/Link/Rect[471 232 483 240]/Border[0 0 0]/H/N>> endobj 29672 0 obj <>/P 7595 0 R/Type/Annot/A 29756 0 R/Subtype/Link/Rect[386 212 392 220]/Border[0 0 0]/H/N>> endobj 29673 0 obj <>/P 7595 0 R/Type/Annot/A 30008 0 R/Subtype/Link/Rect[394 212 408 220]/Border[0 0 0]/H/N>> endobj 29674 0 obj <>/P 7595 0 R/Type/Annot/A 29736 0 R/Subtype/Link/Rect[410 212 424 220]/Border[0 0 0]/H/N>> endobj 29675 0 obj <>/P 7595 0 R/Type/Annot/A 29971 0 R/Subtype/Link/Rect[426 212 438 220]/Border[0 0 0]/H/N>> endobj 29676 0 obj <>/P 7595 0 R/Type/Annot/A 29721 0 R/Subtype/Link/Rect[392 202 406 210]/Border[0 0 0]/H/N>> endobj 29677 0 obj <>/P 7595 0 R/Type/Annot/A 29712 0 R/Subtype/Link/Rect[408 202 422 210]/Border[0 0 0]/H/N>> endobj 29678 0 obj <>/P 7595 0 R/Type/Annot/A 29875 0 R/Subtype/Link/Rect[424 202 438 210]/Border[0 0 0]/H/N>> endobj 29679 0 obj <>/P 7595 0 R/Type/Annot/A 29866 0 R/Subtype/Link/Rect[440 202 454 210]/Border[0 0 0]/H/N>> endobj 29680 0 obj <>/P 7595 0 R/Type/Annot/A 29855 0 R/Subtype/Link/Rect[456 202 470 210]/Border[0 0 0]/H/N>> endobj 29681 0 obj <>/P 7595 0 R/Type/Annot/A 29845 0 R/Subtype/Link/Rect[472 202 486 210]/Border[0 0 0]/H/N>> endobj 29682 0 obj <>/P 7595 0 R/Type/Annot/A 29835 0 R/Subtype/Link/Rect[488 202 504 211]/Border[0 0 0]/H/N>> endobj 29683 0 obj <>/P 7595 0 R/Type/Annot/A 29827 0 R/Subtype/Link/Rect[505 202 519 210]/Border[0 0 0]/H/N>> endobj 29684 0 obj <>/P 7595 0 R/Type/Annot/A 29945 0 R/Subtype/Link/Rect[359 192 373 200]/Border[0 0 0]/H/N>> endobj 29685 0 obj <>/P 7595 0 R/Type/Annot/A 29807 0 R/Subtype/Link/Rect[375 192 387 200]/Border[0 0 0]/H/N>> endobj 29686 0 obj <>/P 7595 0 R/Type/Annot/A 29797 0 R/Subtype/Link/Rect[406 182 420 190]/Border[0 0 0]/H/N>> endobj 29687 0 obj <>/P 7595 0 R/Type/Annot/A 29786 0 R/Subtype/Link/Rect[422 182 434 190]/Border[0 0 0]/H/N>> endobj 29688 0 obj <>/P 7595 0 R/Type/Annot/A 29777 0 R/Subtype/Link/Rect[414 172 426 180]/Border[0 0 0]/H/N>> endobj 29689 0 obj <>/P 7595 0 R/Type/Annot/A 29926 0 R/Subtype/Link/Rect[406 162 420 170]/Border[0 0 0]/H/N>> endobj 29690 0 obj <>/P 7595 0 R/Type/Annot/A 29760 0 R/Subtype/Link/Rect[422 162 436 170]/Border[0 0 0]/H/N>> endobj 29691 0 obj <>/P 7595 0 R/Type/Annot/A 29750 0 R/Subtype/Link/Rect[438 162 452 170]/Border[0 0 0]/H/N>> endobj 29692 0 obj <>/P 7595 0 R/Type/Annot/A 29741 0 R/Subtype/Link/Rect[454 162 466 170]/Border[0 0 0]/H/N>> endobj 29693 0 obj <>/P 7595 0 R/Type/Annot/A 29730 0 R/Subtype/Link/Rect[406 152 420 160]/Border[0 0 0]/H/N>> endobj 29694 0 obj <>/P 7595 0 R/Type/Annot/A 29890 0 R/Subtype/Link/Rect[422 152 436 160]/Border[0 0 0]/H/N>> endobj 29695 0 obj <>/P 7595 0 R/Type/Annot/A 29714 0 R/Subtype/Link/Rect[438 152 452 160]/Border[0 0 0]/H/N>> endobj 29696 0 obj <>/P 7595 0 R/Type/Annot/A 29703 0 R/Subtype/Link/Rect[454 152 468 160]/Border[0 0 0]/H/N>> endobj 29697 0 obj <>/P 7595 0 R/Type/Annot/A 29861 0 R/Subtype/Link/Rect[470 152 482 160]/Border[0 0 0]/H/N>> endobj 29698 0 obj <>/P 7595 0 R/Type/Annot/A 29849 0 R/Subtype/Link/Rect[387 668 398 677]/Border[0 0 0]/H/N>> endobj 29699 0 obj <>/P 7595 0 R/Type/Annot/A 29839 0 R/Subtype/Link/Rect[412 548 423 557]/Border[0 0 0]/H/N>> endobj 29700 0 obj <>/P 7595 0 R/Type/Annot/A 29949 0 R/Subtype/Link/Rect[427 548 442 557]/Border[0 0 0]/H/N>> endobj 29701 0 obj <>/P 7595 0 R/Type/Annot/A 29944 0 R/Subtype/Link/Rect[198 298 210 307]/Border[0 0 0]/H/N>> endobj 29702 0 obj <>/P 7595 0 R/Type/Annot/A 29811 0 R/Subtype/Link/Rect[212 298 229 307]/Border[0 0 0]/H/N>> endobj 29703 0 obj <> endobj 29704 0 obj <> endobj 29705 0 obj <> endobj 29706 0 obj <> endobj 29707 0 obj <> endobj 29708 0 obj <> endobj 29709 0 obj <> endobj 29710 0 obj <> endobj 29711 0 obj <> endobj 29712 0 obj <> endobj 29713 0 obj <> endobj 29714 0 obj <> endobj 29715 0 obj <> endobj 29716 0 obj <> endobj 29717 0 obj <> endobj 29718 0 obj <> endobj 29719 0 obj <> endobj 29720 0 obj <> endobj 29721 0 obj <> endobj 29722 0 obj <> endobj 29723 0 obj <> endobj 29724 0 obj <> endobj 29725 0 obj <> endobj 29726 0 obj <> endobj 29727 0 obj <> endobj 29728 0 obj <> endobj 29729 0 obj <> endobj 29730 0 obj <> endobj 29731 0 obj <> endobj 29732 0 obj <> endobj 29733 0 obj <> endobj 29734 0 obj <> endobj 29735 0 obj <> endobj 29736 0 obj <> endobj 29737 0 obj <> endobj 29738 0 obj <> endobj 29739 0 obj <> endobj 29740 0 obj <> endobj 29741 0 obj <> endobj 29742 0 obj <> endobj 29743 0 obj <> endobj 29744 0 obj <> endobj 29745 0 obj <> endobj 29746 0 obj <> endobj 29747 0 obj <> endobj 29748 0 obj <> endobj 29749 0 obj <> endobj 29750 0 obj <> endobj 29751 0 obj <> endobj 29752 0 obj <> endobj 29753 0 obj <> endobj 29754 0 obj <> endobj 29755 0 obj <> endobj 29756 0 obj <> endobj 29757 0 obj <> endobj 29758 0 obj <> endobj 29759 0 obj <> endobj 29760 0 obj <> endobj 29761 0 obj <> endobj 29762 0 obj <> endobj 29763 0 obj <> endobj 29764 0 obj <> endobj 29765 0 obj <> endobj 29766 0 obj <> endobj 29767 0 obj <> endobj 29768 0 obj <> endobj 29769 0 obj <> endobj 29770 0 obj <> endobj 29771 0 obj <> endobj 29772 0 obj <> endobj 29773 0 obj <> endobj 29774 0 obj <> endobj 29775 0 obj <> endobj 29776 0 obj <> endobj 29777 0 obj <> endobj 29778 0 obj <> endobj 29779 0 obj <> endobj 29780 0 obj <> endobj 29781 0 obj <> endobj 29782 0 obj <> endobj 29783 0 obj <> endobj 29784 0 obj <> endobj 29785 0 obj <> endobj 29786 0 obj <> endobj 29787 0 obj <> endobj 29788 0 obj <> endobj 29789 0 obj <> endobj 29790 0 obj <> endobj 29791 0 obj <> endobj 29792 0 obj <> endobj 29793 0 obj <> endobj 29794 0 obj <> endobj 29795 0 obj <> endobj 29796 0 obj <> endobj 29797 0 obj <> endobj 29798 0 obj <> endobj 29799 0 obj <> endobj 29800 0 obj <> endobj 29801 0 obj <> endobj 29802 0 obj <> endobj 29803 0 obj <> endobj 29804 0 obj <> endobj 29805 0 obj <> endobj 29806 0 obj <> endobj 29807 0 obj <> endobj 29808 0 obj <> endobj 29809 0 obj <> endobj 29810 0 obj <> endobj 29811 0 obj <> endobj 29812 0 obj <> endobj 29813 0 obj <> endobj 29814 0 obj <> endobj 29815 0 obj <> endobj 29816 0 obj <> endobj 29817 0 obj <> endobj 29818 0 obj <> endobj 29819 0 obj <> endobj 29820 0 obj <> endobj 29821 0 obj <> endobj 29822 0 obj <> endobj 29823 0 obj <> endobj 29824 0 obj <> endobj 29825 0 obj <> endobj 29826 0 obj <> endobj 29827 0 obj <> endobj 29828 0 obj <> endobj 29829 0 obj <> endobj 29830 0 obj <> endobj 29831 0 obj <> endobj 29832 0 obj <> endobj 29833 0 obj <> endobj 29834 0 obj <> endobj 29835 0 obj <> endobj 29836 0 obj <> endobj 29837 0 obj <> endobj 29838 0 obj <> endobj 29839 0 obj <> endobj 29840 0 obj <> endobj 29841 0 obj <> endobj 29842 0 obj <> endobj 29843 0 obj <> endobj 29844 0 obj <> endobj 29845 0 obj <> endobj 29846 0 obj <> endobj 29847 0 obj <> endobj 29848 0 obj <> endobj 29849 0 obj <> endobj 29850 0 obj <> endobj 29851 0 obj <> endobj 29852 0 obj <> endobj 29853 0 obj <> endobj 29854 0 obj <> endobj 29855 0 obj <> endobj 29856 0 obj <> endobj 29857 0 obj <> endobj 29858 0 obj <> endobj 29859 0 obj <> endobj 29860 0 obj <> endobj 29861 0 obj <> endobj 29862 0 obj <> endobj 29863 0 obj <> endobj 29864 0 obj <> endobj 29865 0 obj <> endobj 29866 0 obj <> endobj 29867 0 obj <> endobj 29868 0 obj <> endobj 29869 0 obj <> endobj 29870 0 obj <> endobj 29871 0 obj <> endobj 29872 0 obj <> endobj 29873 0 obj <> endobj 29874 0 obj <> endobj 29875 0 obj <> endobj 29876 0 obj <> endobj 29877 0 obj <> endobj 29878 0 obj <> endobj 29879 0 obj <> endobj 29880 0 obj <> endobj 29881 0 obj <> endobj 29882 0 obj <> endobj 29883 0 obj <> endobj 29884 0 obj <> endobj 29885 0 obj <> endobj 29886 0 obj <> endobj 29887 0 obj <> endobj 29888 0 obj <> endobj 29889 0 obj <> endobj 29890 0 obj <> endobj 29891 0 obj <> endobj 29892 0 obj <> endobj 29893 0 obj <> endobj 29894 0 obj <> endobj 29895 0 obj <> endobj 29896 0 obj <> endobj 29897 0 obj <> endobj 29898 0 obj <> endobj 29899 0 obj <> endobj 29900 0 obj <> endobj 29901 0 obj <> endobj 29902 0 obj <> endobj 29903 0 obj <> endobj 29904 0 obj <> endobj 29905 0 obj <> endobj 29906 0 obj <> endobj 29907 0 obj <> endobj 29908 0 obj <> endobj 29909 0 obj <> endobj 29910 0 obj <> endobj 29911 0 obj <> endobj 29912 0 obj <> endobj 29913 0 obj <> endobj 29914 0 obj <> endobj 29915 0 obj <> endobj 29916 0 obj <> endobj 29917 0 obj <> endobj 29918 0 obj <> endobj 29919 0 obj <> endobj 29920 0 obj <> endobj 29921 0 obj <> endobj 29922 0 obj <> endobj 29923 0 obj <> endobj 29924 0 obj <> endobj 29925 0 obj <> endobj 29926 0 obj <> endobj 29927 0 obj <> endobj 29928 0 obj <> endobj 29929 0 obj <> endobj 29930 0 obj <> endobj 29931 0 obj <> endobj 29932 0 obj <> endobj 29933 0 obj <> endobj 29934 0 obj <> endobj 29935 0 obj <> endobj 29936 0 obj <> endobj 29937 0 obj <> endobj 29938 0 obj <> endobj 29939 0 obj <> endobj 29940 0 obj <> endobj 29941 0 obj <> endobj 29942 0 obj <> endobj 29943 0 obj <> endobj 29944 0 obj <> endobj 29945 0 obj <> endobj 29946 0 obj <> endobj 29947 0 obj <> endobj 29948 0 obj <> endobj 29949 0 obj <> endobj 29950 0 obj <> endobj 29951 0 obj <> endobj 29952 0 obj <> endobj 29953 0 obj <> endobj 29954 0 obj <> endobj 29955 0 obj <> endobj 29956 0 obj <> endobj 29957 0 obj <> endobj 29958 0 obj <> endobj 29959 0 obj <> endobj 29960 0 obj <> endobj 29961 0 obj <> endobj 29962 0 obj <> endobj 29963 0 obj <> endobj 29964 0 obj <> endobj 29965 0 obj <> endobj 29966 0 obj <> endobj 29967 0 obj <> endobj 29968 0 obj <> endobj 29969 0 obj <> endobj 29970 0 obj <> endobj 29971 0 obj <> endobj 29972 0 obj <> endobj 29973 0 obj <> endobj 29974 0 obj <> endobj 29975 0 obj <> endobj 29976 0 obj <> endobj 29977 0 obj <> endobj 29978 0 obj <> endobj 29979 0 obj <> endobj 29980 0 obj <> endobj 29981 0 obj <> endobj 29982 0 obj <> endobj 29983 0 obj <> endobj 29984 0 obj <> endobj 29985 0 obj <> endobj 29986 0 obj <> endobj 29987 0 obj <> endobj 29988 0 obj <> endobj 29989 0 obj <> endobj 29990 0 obj <> endobj 29991 0 obj <> endobj 29992 0 obj <> endobj 29993 0 obj <> endobj 29994 0 obj <> endobj 29995 0 obj <> endobj 29996 0 obj <> endobj 29997 0 obj <> endobj 29998 0 obj <> endobj 29999 0 obj <> endobj 30000 0 obj <> endobj 30001 0 obj <> endobj 30002 0 obj <> endobj 30003 0 obj <> endobj 30004 0 obj <> endobj 30005 0 obj <> endobj 30006 0 obj <> endobj 30007 0 obj <> endobj 30008 0 obj <> endobj 30009 0 obj <> endobj 30010 0 obj <> endobj 30011 0 obj <> endobj 30012 0 obj <> endobj 30013 0 obj <> endobj 30014 0 obj <> endobj 30015 0 obj <> endobj 30016 0 obj <> endobj 30017 0 obj <> endobj 30018 0 obj <> endobj 30019 0 obj <> endobj 30020 0 obj <> endobj 30021 0 obj <> endobj 30022 0 obj <> endobj 30023 0 obj <> endobj 30024 0 obj <> endobj 30025 0 obj <> endobj 30026 0 obj <> endobj 30027 0 obj <> endobj 30028 0 obj <> endobj 30029 0 obj <> endobj 30030 0 obj <> endobj 30031 0 obj <> endobj 30032 0 obj <> endobj 30033 0 obj <> endobj 30034 0 obj <> endobj 30035 0 obj <> endobj 30036 0 obj <> endobj 30037 0 obj <> endobj 30038 0 obj <> endobj 30039 0 obj <> endobj 30040 0 obj <> endobj 30041 0 obj <> endobj 30042 0 obj <> endobj 30043 0 obj <> endobj 30044 0 obj <> endobj 30045 0 obj <> endobj 30046 0 obj <> endobj 30047 0 obj <> endobj 30048 0 obj <> endobj 30049 0 obj <> endobj 30050 0 obj <> endobj 30051 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30052 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30053 0 obj <> endobj 30054 0 obj <> endobj 30055 0 obj <> endobj 30056 0 obj <> stream q /X1 Do Q q endstream endobj 30057 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30058 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30059 0 obj <> stream HWm۸_2ъoz$5A -殕Zkɻz19{=YɇyfOy,wwDL/*EEx|?.LjMMycnZ=]|n_?qm-.bo *`θxF /k*e3aoB//Iop%V 4lm?dQ`qig72_QKkaۿF"s̲7|}U"OymTWc9BLaX&CTc!!J(;c!y(N{N{A{A{A{I{I{EW{EW{EW`s}/E `_K}/ e"W`h}m >D}>D}BPj}j9Z߇(}ZNPC>P-'TET >@}"j}j9Z(BQ@PC>P-'TH} >@} >D}>D BQ@PZ߇(}ZA!`V}"TET+>D BPj}jZ߇(}ZA$T}"T} >@}"j}j%Z(BQ@PC>P$TE!`V}"j}>DJBQ@Pk#E!*dE!*dҪdkwv˾˘ۇeƫ4󼊷m%mwM%{`_&移Ooۏ)ΑY7MfJ]ilZ/a Y* zPRV@=TR)jF& ˄Ri'-LBYGv 7Tv+Xfbj*dWr/P戮gDPOY$C ^␗laL\W!j.>{f5e0*ARɨmGrƽ;@YZ8/Yr^!TΉA ȅF=kw?wξNfGhw #gͻ7ۏsl~48֝/C|nH3BXoH>OzWڽOus9nßG> n. +dq{rCRUY3N =5{%& qJ=|Rm4VG#f396yۤAkҤ:~ji%#_>(nPMnҩ$C0ވ׌+P=LA/"N}b;THK8{3P3 jB}Iz}}Fn,y0>=`L@~hCE{\`Mwj\sS+Tp Nʉ6 -}-x/c߂"_o L,MyS[xuC) hxE}XFy<x~2O5 7NCiȃbA\fN6QLW}0d2,vu8[@ePv<dfL*(Ӭ`b'N/ݱR̯%\Vp=R3C=:Dv~ulLshC4vϿ?9ϞzjL\WYs 菁+XƸvlC}Y)BGjZpi:\$K)\h:яWc`j5?اMy4^Ni~Cr=+. )k\n /d X<ԂR,QH7Ldޙ+ X1mi7WpoyW_-lksNu71:^ͼtrcvcXazJwvg4MKdW'cf2k⇯:qYIeg ~ٮ@~JH5M@׏΂Sm;82dݩB9EUYe<-s0Īʉra%fh*+0~x%`_Gjr8QE}BدPMAKԲ1ݡvN[oֲ]Kn|beRA݆]|5-'w D_n 'NkQj *@G{+7=}UC*%f>P USD2'm2_TN0UAQCBxHL~\`SYWkk)v~9 Y ۫݇ޙ^%mP_ SY:A! rHJ")M9޾ѻ,L=ÜJۆ[A,Aw :RThxt}ª1}hN1 ?>XhjSR{^t2 Х˨+TB90SI"s̠ ,b2\q9.Y)Js_sۉӥzYWc^M0v&SKlj?1/{\gPaĀrCI]-HE.^{M ÅH7L;(qw$BG-uveQm5esK}CJ \I.S`빱֕ۡݷ/sHQnw|=>G{cV$) SCaSDK5(xte‹F(›FnkD/XDʊ>hdF(XZ $ $XA$ig)"Qũ(R"A4Bqk?`eؤp2M˶'Z$%olx*<- pRP$h_Mk(lEܥn<4MlT$,u&9@ x vYt Oml +8%PZG˕K}O"tSǷLK5~|K9V2.>] G#xN4ڿlw}ͧ Q$RFn.ꥤ*ְKiwh߾Wڥ:\gz5 pEs2Xf8rm ۀ_p@6 fw6S̈*9SL|fY!9A8W~|w.""\my #p„mf>5|? /͏!ƌ\0gyrm'.Q9_U:m Olh9ٞ۞B5AG/ig)ͺe H%Ǽ&8 ,8v( #NK7ݗPKks\_VjδwP0 ͌(,"-uL0:`<0JLٜs4=EγKbt`yC՝Xc msٯ^n(nOUsxiþ9Y}뷫VW 0وendstream endobj 30060 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30061 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30062 0 obj <> endobj 30063 0 obj <> endobj 30064 0 obj <> endobj 30065 0 obj <> endobj 30066 0 obj <> endobj 30067 0 obj <> stream q /X1 Do Q q endstream endobj 30068 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30069 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30070 0 obj <> stream HWn8}WQbY"0 q^ YMImJ"n:b1y<,)Rn`v7,dk/A3?,Dp&"9w/d^*]P=Z ]U.]s{V*YV^,g90cڻU9TmyQdg_Vg"B?ݶ-W̓S4kz?7;2m}ˋqN"aDfr?v兀"-k;O=(d4{v%dk" x 3<=޵6'w9ʼnBl Yr6(rY`ڣoczzzzzᨗz騗z騏 >&ǎP;B}O>%ԧP:SB}>#gP;sBو0'\kcr\6,Wp!P︖1drµ6,µ6,BZNƐEw\ k9ZCq-'\kc"\kc";km Yzǵp՞ \kcr\6,Wp!PV1d µ6,µ6,BZAƐEw\+kZCq \kc"\kc";km Yzǵp՞$\kcr\6,Wp!PV1dJµ6,µ6,BZIƐEw\+ k%ZCq$\kc"\kc";km Yzǵp^LƐ媷1`1dm Y<\;hj]VElu_# r$,Ir[tdO 2w۴^Oyyq5NxMPIPshnq0NdB-2Mo}SUf j;8ިF7V7PfeWuU1FǢw[LbGB!Ĩٙ  +,IcGDIr~(ҺP{լO/3aK#;h!8EZFuV &I2:mYH(ˀvfWݝE߶ԫFY瑞~?υ^nn` 1֪E|W1wp̝Un)e~a<^eڈTvЖ] T <@u 4/ 6lE^̰nfu ?Af*ֺ놑`&0@W"]><Uu]Ӟ(Ao3|UͩH- 4e\}ͫ?^9R(q2iSȂ2w//?X3C N9[F7 l*eSd<3Sv_'5)կ . γEˮnO%,Ix"5 YS{Upzj<TWWbo`,RU͆hr:T+NqYyؚΧ6Ng!@Ohj~=~kAGcTbkP7S=W2J"R+ UU0/&tJ#z gv 87qR~sX[`ZS[OųzkOmLN|x]3MsKr ݼK9Lmf7x_cڰyҭ%c<#ցr躭y”.)I^u?1IV-*uo:;(k Q0Js+i(#b;-yjo|28X2#\&1lv?By06W= xC"Zw |31,<E~X1Suqv?=PI,Mdqdcd_[oz$Z^1|$abXe11I gX'tь3v>qtobh^VQlj` g ˫2x3}JU2I&3]Q 'hHOOlv NLwEiֹS%La(tjȹm](~SX߲FTY-S ݬuDHT?)-ύ):xh|];ƒx`[OקHe87ngjOUdڄ.'ḗ¼Ηן󱛒u3=_ 0WVf b];<1X~`c@ S(xrϧ GV6|06'?aakP!f_߮nA|/SˈJWt_6=otydpDp?.~1X8yσQ,bN"T'I,|rhOc̽z}!G9fR+>04f)`ā@5~k59Ktd@>U`IH~ZOF‰d8}2A8?Vk3dvY]Fžf  kBϑ\Bm-[EHwg flpzl=2w_g1=kc-IwTg٢N%ښ,wX CPSe)Xϫţ!ߥ`WEK0+,SsAϗzm5eMdWnHHqE֔{N=KWsh/YF=, Nx~vW2b[6 $S$7i>qG=/v&XI&̌qq:Ft<e5Ǯ6Wi= "졑Q"ǫjh,M~S #%JRQ|qʿy֢2~ wxTgQgZypZnPqHDrC(di$ 2@YIP( PVni G)/(f}1E,4&G-Ӓ˔$^W>/P 1270 0 R/Type/Annot/A 30072 0 R/Subtype/Link/Rect[93.6001968 663.229004 342.924011 682.908997]/Border[0 0 0]/H/N>> endobj 30072 0 obj <> endobj 30073 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30074 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30075 0 obj <> endobj 30076 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30077 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30078 0 obj <> endobj 30079 0 obj <> endobj 30080 0 obj <> endobj 30081 0 obj <> endobj 30082 0 obj <> endobj 30083 0 obj <> endobj 30084 0 obj <> stream q /X1 Do Q q endstream endobj 30085 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30086 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30087 0 obj <> stream HmOHW~ ̫_RK٪ݶj `+bg,~${Zzxf|0BIf>oR\ 5QS 7,HfRʤQkPJQ ir +Ec (͸Ľfk0 qo7{C[ƽ%-q{ǸwĽc;>bG}ĸq1>&c}L'O q2S>eܓ*Xi-Z y{^n0I.&O./кz[d ]ҹ).ue곇~y5~5g}봜ߺ4ƚ!N:Ū9p|yrz|xtvB,i}4YβڢE><WY}eEc`PYNKOքD}tzcD&<*z*mDnZtj m S};v8u }덫<$x{8 ZgÏ}w =7|@zvI;[vat}{G%UY6¼^Nz@o<~IяӲ  9짣ZTZq#RtY"Jjz0]yT"vf<fŵ0&˶}fa5v2&xŴ&mly2xlgޗO}㔙K%\OeH -I9w-tB/~2vՠhIz1Q awH9v㑷,08|) }}endstream endobj 30088 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30089 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30090 0 obj <> endobj 30091 0 obj <> endobj 30092 0 obj <> stream q /X1 Do Q q endstream endobj 30093 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30094 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30095 0 obj <> stream HWێ8}Wp0/Eͫ.Atvgz,ArZYXr-%NdLU":Uś?V=}zWLg^zIe0j+Ě[y'"D,yz_v_پn޼WKXF7KI3ɖ(EXsDl>,붨+vDYeH~yb4OuU~ۛnBG̉XJf}Xb]`o";2)o0W}(؆E0H.ʒGŘ,d#@Pr()C9%P!yl"ث"ث&뀽&뀽&뀽!؛!؛%ۀ%ۀ%ۀ}L1>'$`쓀}BO)> ا4`쳀}F4+ b.Rj͡B(BP!{ls=P-9>P"TmETbbC*BP@P-P-9>P"TmETbbC*BP@P-"M*dm"Tm6 cbCjBP@P-P-9>P&TmET bbCjBP@P-P-9>P&TmET b.2j͡B(BP!{ls=P-9>P!TmETkbbCBP@P-P-9>P!TmETkbbCBP@P-"K*dm"Tm6 g<27wыet\*&rec۔kE_j]69{*jjc2UiC+NP5p:;LB[p 1/yL]NEt=O}>,rî$)H>M?\9>Lq;N]Շn'lfN/,^kRΉ'ZlGODlG8pXF["JCN'o; ~ft6"]$38luv2*Q\'ɜ.NS[wKAO[}zD<懨3x_i!*~ȫ`JnT|Vf`Su,,Vg*K?p2\j=jݬ.z#";Sֱ?#@Ym%3ΰhkϳ<`ҠSKecij80v'20lؙ PϠ!B6DB7:[1ۅl\2kw/˖iȄ%0^<WmPeq>"?O]aIS9i H54{1ݑv=TkwIOM.`nFםe X6,4[ ]d)  pfGF]=ǝ:.N.Ouum6MS3(Z꬜.11MvJ/zbo}ǐ!;oy~pk\4ohGn 6XA-rE=B={> 85.bU6w885{ 0ZZm벬EMC'1*?L&g`xSMP3T>q *9k'Ȣza1 I N斲{!gHFCCRtYNl^M=cckQ*2P1ӥ.s#ts7C*ԩ(?Q{4]T^, vij '6]p?:It>PnNk Ow9$0T]8 =mPݰ4˦nrItA箠hM~";+ UuTV,n+tjSd%` vڽf^/4;03vJLJ+)V|}޼{r}=JE8Ӓ}˫ d'~);c.9j&?@p簄 &rE}?Vʹwvd "uKou߭îV0ңl<@~&?ղ4 E]NgX@#$$i\I:k;G*Nr߾ss;|&vtĐv2t.>74G$@m懃j.0sD5 و5A6X 9 t1V (, j1GFckZ_k4;KK͖KK Rj7kPH^n;a),xd֊MU"G׃rR@3I J35E@xM4UŠLP XD3.#Eά 5Y%>OehڜftS n.w)U@$4"T]fIr߁]| Izk{lECǮf3B\D46*ΛmDԦ>xx+Nl:͔}~sd\#ent !du6:Z}Bo.zzэx/mg?)bX'IlCi`NvfPXI>"u10DC uLXjRuDHO+ B[ml(^=4{fVy INZγ42l1$m<-LM kٖW6|°YJ!p~@li!dBwaW.,ZL+xO7<ŤVqXCj|6lMm?Nd^CӎHe-W+tdmLendstream endobj 30096 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30097 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30098 0 obj <> endobj 30099 0 obj <> stream H&agui@T-(Y4BXu*tXQ;deʏYhZhSq 7 HFe,9o9w1̛{s9ﲌNð,kZ]n]U-wݹekU,2M5I)0{n*ôeLdhry}1vZw,E,edge5;}|-U:*6t wI,M\.iE,#pxz?#HU2ǶϤ͒ݹґAK%^7i,sOð}NT3K0a1L3J3=3ʴ3=v1bN[djnݩ=N^ڸ4oo!f狡.R(LdrH0u~ 9ZE*#:q/r/vD  k@*p^h!9bH>X<\' " v"6G O2evHQ?8L  ~EoRd ;2&8U'1ޓO{u?P Eom2 S F ^ٻ-$=mft[tW'>*Lin/{GQE{g(R"6QnozH# /D, (abs.VZj-|qf}Gw7!#F/R{#2i%uo^WC-}]!ӶVŸƖ6cD <}*~NP ]CF1X~JPfCZhC0"` ΄ffB_~+f3nb..'2ȺhEkݲ0+R kt 2% cJCCLl.'0f3":EG'И\B> ͽH~[9 Ez;~)>7/ Nc:V6=_%Ab%PZu /vO` %}5{vַdf D1ĩI,[5bYpQ.JhuY~(Fcm .`C'ѓ b*pRѪ7ۖhF# L-8|9tL #{w`ݻ>eܢjgLaN0Tҷo{@XKÑ=u!uAT0!>'ą٘Q(&H2 \IL(NA j!bh U;voAZz o66/۴zEXOf_$qTaXFz?(ԞˋǧcD@pҧ~s{v:5^:Jl P.NJZhƃ:( Z ZXm0{5gz֧ĉC}s{kw1y#qqjJnҁ0N9-bS$s vv߷@؎z] 3]Z_~Uאָ$˶ b5Zp6y&1#AAMOj76G.>&Ƈ"/%v endstream endobj 30100 0 obj <> endobj 30101 0 obj <> stream q /X1 Do Q q endstream endobj 30102 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30103 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30104 0 obj <> stream HWk_10r_9#A,WIIFVC^ըX3oQ[ԏ?]@P ~̆Qibب~UUuUmі]ηrep'MvoVi5[9\$RASQfn/ڲIj7},Dp0>aS}ܧO)s 3>g}.ϙ\p2Rl!CwO1` {!R Y{Z#bܳ!Z!KpRkR Y{Z#bRK1d YjZ!KpRkR XBj),=KRK1d YjZ+b),!CwO1dqZ!KpRkR Y{Z+bRK1d YjZ!KpRkR XBj),=KRK1d YjZKH-Ő%gBj),=KRK]R Y=ŀ%b),bRK1d YjZ!KpRR XBj),=KRK1d YjZKH-Ő%guBj),=KRK1` ,NH-Ő%guBj) b!CwO1` {!<ϝp ΂(f Ш$Bf`Ʒau u~k3y:Bytsa]~~H\W8_Mna_VjjFvJvh0g.uqLu UF}իe( W^` J.{d[W@6~>, s{aR ލ8MC3R? "J© `JWDqj\_Vں+k \`1-'h9-ǴbA+fZ3DJV"h%L+R Z)ieVƴrA+gZS-q-!kQ XZLK ZiA0-#h7BS Y{#=Ő%h7BS Y{#=Ő%h7BS Y{#=Ő%h7BS Y{+=Őŵ(,),AսbX[),AսbX[)vnzYLK{!Kbuoعf1-),AսbFEPCע6{'=ŰX;)m uO1l-VN{aC(hwBS BAսb ZPVObu6q{'=ŰZCעgXo7q7wqYgʘ$t9 Bޫ8168˒Y \MR=-Et &ةoDzO?>k*|tGmGl0@ tj?&J:zźR+}V54uGtV&Ò/tfi7-Ў[_O&D5S[Aox,ۍ*iyɯˣ0˪lb;J-UۼvYMV4$#":y ߨBU-(?ۢ;. [PhF ,^ޯjl޼e&FŦ~ ^unm ~`Xm*%zSajvL*]\r kkYYTQ=_UlQߖK>D$c,p|ܨ\~8YƟnKX[c܋B<@뢬[q[$OPmB]#2՝g%/ץHU+e!!m P/z48ปޖ~ GK?JW}>HK66M#8U@AjnkmNvhf %-2 LUPDp[6y7鯣Bð!rzh]іb}#<8cWf?#g>O_XYG!]$p[a4b:9jYUݖЍd_ܟNO OaT?<@D-\u3F":QhIdq;xJs]ڔ`/@~9@>;vjE.ɷ+q ÅI  J8kU!n3;L߻Ѹ0~+R ή/̜^3|"P!Q侮u58ta4z_˥=wZ[rgr&:d_wm4ItK4.\]hx 8B>u^ތ9< '?BC^n(lHvi<+^67  M3HEilLe ۺ9Vf9k.ԯX'Z~E:FɥW T|m0. :=i,. =|+86"E[TZEneuT=La]fՏqi6KV?,l~˜y|o50S -Mo&J=tt-(7;:UjǼ,^;p.?<EPx$eubN],>LSv%hީ{X !U}fV@@9v $jUיD vFP$@~3>Ln\I\83Pq 8s8P]'mq/pu@- hӘ09WB" )"#EY.lO>f9,B_)}|/c[ǀ-RW4C*2DYHㆸ>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30106 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30107 0 obj <> endobj 30108 0 obj <> endobj 30109 0 obj <> endobj 30110 0 obj <> stream q /X1 Do Q q endstream endobj 30111 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30112 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30113 0 obj <> stream HWmo_<@GsߗE % \*.[4ؓH츿orE̳7ݐ|ۻOI|n7 "1M$lj$c8Kly:]ˡ~QJzs{<w%(=mHAxYdwڤ߆[NЬ9c9e\>?G|e_[I$| y?wI_W t p&izh."tcߨ!Vdh.06o# ̠E&>l[uP{PչSٹJq.!&h:UK0$4iP^uTAy`k*oz2Ț*q Y~ Yfܦ%F@`&AU@"R L`#b2Td0rMSωr^"4ʂ_ͼodp"M H>wGTru|UOn˲w !Ƣ$Jx tR Ab'vasFC,6tТ8kQxA94m;ˡtd?Sl'8%TC@M酃ƴs𕃗.{G]O8-f), _)LcK ln2檃^`( ].2pn2b'Aw d!֏~@LaMJ ̅e. o+=׾+iΟv>nl' endstream endobj 30114 0 obj <>/P 478 0 R/Type/Annot/A 30119 0 R/Subtype/Link/Rect[130.078995 539.020996 221.223999 673.916016]/Border[0 0 0]/H/N>> endobj 30115 0 obj <>/P 478 0 R/Type/Annot/A 30118 0 R/Subtype/Link/Rect[93.5999985 428.627991 199.356003 448.308014]/Border[0 0 0]/H/N>> endobj 30116 0 obj <>/P 478 0 R/Type/Annot/A 30117 0 R/Subtype/Link/Rect[93.6008987 200.628006 223.451996 220.307999]/Border[0 0 0]/H/N>> endobj 30117 0 obj <> endobj 30118 0 obj <> endobj 30119 0 obj <> endobj 30120 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30121 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30122 0 obj <> endobj 30123 0 obj <> endobj 30124 0 obj <> endobj 30125 0 obj <> endobj 30126 0 obj <> endobj 30127 0 obj <> endobj 30128 0 obj <> endobj 30129 0 obj <> endobj 30130 0 obj <> stream q /X1 Do Q q endstream endobj 30131 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30132 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30133 0 obj <> stream HWm6_2U/@r(4+ Z,$9P+9FCrCt}[Bɏ?~&_d2sIT*$ (y )Hp.e'5Ŏ4EpGN6߲/0=LBIF2I)7ۯ=LaC/l^qEzq ͩBc~tbJa! wۀ3>w'Xρ8Fɯ+')ٓ qy,Y9c)0*<3(:(|3(\]8ž{9ž{^x^x^x%^z%^z^y^y^yc}챏>A'ax}O>Eا ay3Y Q3(3(ZgP{OQ3(Z Q3(ZS-GTS-GT a節#u}BT a節#u}TպS պ>ٻ>@!u}w}w}BT aV u}T+պ>@!u}T+պ>B{j]պ>B{j]A!= DPj]A!= DϠjZw $ZgP>{(DϠ|Ϡ|Pj]A!=JDϠj%Z(DϠj%ZgP{OQZgP{OQ3(Z Q3(ZSDTNBT g>,¿;v+#|nx0E1lOC n6= d_ =,b(J"*>bߏ"WWm͆>՝.Q Ю>^|kڗa莰 K~PI(0o LD)lB׍Ea%l`E儥OX;2qw=2ʘ]<{W_+ݴ/uSa4և-o7Ut`us*ڶѓ۽Ԃ`i;6NBk:)| tw7'|5ţXUQ:`4Ah*_u[ <',Zrg]4*c_LvbB5#Y#J4*${TVO>UMOKAKtMwe1y?lI,[N\_6pr7'TQ5s36ccܺjG iMZwiI /РQLjT&IAhBE#4M")Mc68wY z07[&gìNO|ugq5-2-w(LM~2: !MLI_.WhqVOwܑ@5cr'*p'OC|2+T'ipuAA+%s+Eï(Sj~:U2m锈S^-[k<Q?Ue>8omCH(7Xco$P2})MgdR]qwmOG&)Xzqbj^&6@٘go5h]b)Մb&NjBt>~.Xq:˰~W㬯z7d`6+{m>OzXJj\&s97t\јۻAҔǀM9/+cqk**H}Do8 4;텁Ʋ0?75OSĝ828T3uSHZAW%t'G7X'r"hfǚ%jo^bQrPdCEԻn; V$_H C ЄDnjҞjYl7_5MMOK>^xAvGǎLb?@s=bN՟QʇZG@C~ؓm﵁ )jnnܘ[o .^0 :ˌG>IA[]6\3%[¹Y =-c G=n$$An}Y<$W^ ;  ,,tC*䊗i @6cY62`&\/r_7ڐs #nϢ\9c8e-z/y,g]FM0U9>'䭙B&BWnxi ,Xz{Pc>yXX<ȇ;Kk!L_K{YA~}΁5Ubl&Or8Sx`c]bWDV3uiP4&X͠PMY.T2nꝇш): :ށ͞Eq#5`nd2OIfLX:c!n g=ײED7.'@HD Ë5=mBT`ݘjWC7Weܡ\~-c}Sֱm!L70n3 e)ir1NI&Fh$9xޯKwQd w섡O>"&Z %\~eyrr+c=M{[P φG(3*aړ5 \rT+CZaC3M{lo=YB13^n{s͟ _endstream endobj 30134 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30135 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30136 0 obj <> endobj 30137 0 obj <> stream HlVkl>WDR)$Q,"%%ے<>n lMR7v^K&q G:dҡC4?ANi 0 +@1tX[ua`+swsB0ͣƞ}P:yg~Pl>X{q y|s$;jغibVCb$:g1mx, 6ܮ͛@(GF7 CB槞4kO^G?۵guvo{i/%Yf (I#&hP.X 44Iy?jsnz 5bss-ha-lRxj=H,{ƿt0/-@@yf O׍fS_tA  }>nѷ뿓~CZXzU_'t8eEŴaHUUTҵ( )& I24]4 O") :`5`:N`hVABRcqj]Va݉ŋRLo+F`) ӊnY0¨\cz? QfmzT|NΛ#V+ibk뱃[Q7~ qՀVUzuGHbD@@-Br򎚯c{]xh5;6Pʱ |XevCc8z{cYIMfB@4C&Y"$Hoȍ?;N0)j}Ua2'RJ<⣂ʣ(pj8%iFiS YP00Nwy} M(d\_+Stm'-MSoOL'\ @{ #j$3'vxF;btr+"m5og:&^ɔĤib6ڌ'=4IFh5Y>zhxCw]^+?;wW&IP#iKg M Q۶5\*ZA2"9psEѧ{m#.I3>N*!*:y؀iT(}ۊJZ0M.xG\KKp߉9Bϊe~vPQvDDC*Z;ͬP$d"Y@()J(Q2^NR'2 Pj"( ,䲼  D(:j8&N?}bwOjpﰲ;Av'.?SEմNL)a|B>/9ZA1d!Yi{{h%ǣOSY:$~`?{ P'!qf&i!yS^CV7(>jeУZ>n;޻YbNQM̆Unce3\B%-߁gLWnln#kv U*WZa㗩š 0d t8ǰlRL^sD(Fs{_,zh4lb2Fu异JDљ}}sM(݅"eI.^A͌%MK*kչ*7_z<>hv9⦹ܔаAX\e˜ײ\w/ʚϡ}'LU `&枺if,nuD `A vt*Qt4w ̝y--8kg峽T97Bzjӳ6wBZd8t//Cܐ+]o[ZQ>rĴ,)*g})z~jSF&Ȃ!Y$YRiUYKZnGGa(|:'սu6,I ]֕)/*!XT*Oʽ:/RRD*3}69_'al]4I0aRBӿyP7hvK azvA5 >w=\! ~unr3ȅ\vV^ȭ[y?TW}lߝ ϳ'ٱ؇C@Bp;Z() ecLP6mꦍRef]EJZiӦҺiƇ:S콳Ø߽w?[wy}k[,+r ORnr?gT*/ēI̔Lژ$&UTf3 _ZOYk݅YYmv 8pdS( kwC={fϡfX<>yR)Ob EJ" lJF/%KQU)AԽv; SSՁ ` 2\PrW|AEsUh$S$ 0cAXhxJV x[?)>|*xU0\W*Uxk\_u_d5>񟢏ρ#)Zp5jRM @0*"׷0jC1D|h7-[Y+OK;N9x{q^,X;(ϿGQ3> !̇5ĄݧԴ7M'4xPk29Ռh;3(^4/*耔AqQAFbjՉ`E6Kkn`Yk"Ι6ZVFq  nD92yHlO7@~K5g^d1%%3oUʟW/K dr6nER}V^d!ͲJh+C ufT%yUԏ,=W9|XW*L>)L1{vOO @ QJp򠠎};;b#=UW4{j`A'ҩXo,2=T'D:f͸Ұq k{?lJVӬV՗UBZ$Ǘ KǕ9U*? K킅{%vGs.PͫY!pR hӔG=I8MW#|؞41s_~0OF2 #3]^GCCzv7^hZo{R${ _3kˇr)ynmeVn4)xW76#:=tEۅK_1]p\ҚfP^񥢪htd,cOPWL9#:FȂn4YFnKd]z:鱼IbX z5!}ڳ/6s@BH?C ]-;n D'CݢЈ$D 2¤YRLj}iJl9DhD8-PHق7`p$o͐2dfqZH+5?2>+X8[ۚ'&h<2!apᚘSeDW}TmW[ y)μ֓S'9i/KwPy>P)Φ_} 8@- !bjf//Yԓ^?>) &3,0`fK5bDQzuZX։EDD]h:6t]Qr\ECYEErpb1ԹaE6Uʻq9('Y&ʰIm3i[Ii =KK`4W6Ԁn6Y" AR) N%NUJJF >K erlZM (#djP''ĹxR5&':+q8ks ~Muc9t3%ǖS-[hX^Up%RiD%×b=ucߧ\uЯL(I'߱)5 gC8áL&N7ևh dv`قޚu#فw}8w[RHhw6qqy|v./ى. Ę4!o( .ee4T Uk2( 5uH?TLOƊԌPisw&+e(~WV2Afə~I+v r!w Pbvq. 4ŰM^bL[+2lPb2 @ i- !hC*R\#;'#▽2z5(338! "JkI=)IwE UEu"+K\Jb]rۨwn8ź{}>ol@ ^kͣHj6(ijPɨ(55MjA! ǐuxef۵v,D^&[FTN\Kކ+LAM"J~CPqeE&W7+GqvT]!Ch@Wj5>2A*d?i$cbCO;vԓWtևn"5+ Ҁ7OiBxhϯVujDDTEKZmw)O6SEPzQԿEԢ_}ٕ|zovޗ63*T+8uR;2ա aY8_u3B (]۟C>Xٸ'e4¿,Rؙ\<DaڂiЭPoѺqZjfM{)[=xsctysg$v0z0?(V坶/d.d/t~%{'m050M_y7>3=='25" f[LMJQ8, " A1buM3K L.Pd b,rYBBmqX4c*.()W +[BfUwA).Mǀ}PUЇr }Ir9m6Jm-- ܐ+ = %fݛ-YΖ&_S7U[[!jͦz.%fA?^oά@kZ33fA}aj]rth~fa'P_Z19\.?E9zK L=8oHs}s }ompZߤ'~vՅ%WMV;vl]]K])j2!$~ ;4GQ{KC;M+|lo|nxe^̪shM!k:AŪ]Eڸx q>P7]w&ӆ 1O֍^WkFWɛB7ՈF1VQB;&@F/HGhFcdEj=ȞEVL )4뢚ڒuE'`TuFaTH̽ȷ9Ļ VkES{#[y!}$;w:ufQsN!hOfo)_/߭7t{ӥDkX3*'J;E]@{M#qxi9 "m1Kh S]9 r, (Z-і&VujVAAC)6J29V3#_ ^mb"h)rZ+هd'FCS:F݆^Zie SI8Gin_ DCq"U؁cc<sɳCC%Ί↠+8MU74TfgOcM$տB-"3A1stQTէ،,~ L;u{C'/YGP Qne*]B͂ij'4q'>ēӘME51F45՚ ;fXs2|{׽{gooVLl;~qN%SS(^1Q]GZlj5J9s|g6GݭR񌢱9 2ԤNi=a?㨸J<7&V=jGLLcQ/X` R~~^aNf_fvcv}Oy&}|͋|^ŗ+|'GouC~Q -!#5E[qU<@n$[Ҥ)WZ(ȣJyheOٯ|t(юǛF6cCŽ`l ;6ޗ*A#eg Vy}\G3@WA1vqD>' f{:V 6/J1/Pd.,;܎P Y3BMj.TUqus{qMx: zP20R.^J)Ҥgehz̓3{ Fi4ݢ_S_J fljhU+ksx`wB [Id榟ZDq|L!6jv!RPW7xXv9='i8D;&vr%6JQfin; ;y\xr>E?gyc$")ɱ`+n[_|/NYbΙCtC|3լ8n ɾv.-m0^w'Lɞ4ƏHO3zTjHm[>,yhRbB|ܐ76&:ӡȒ2Z~H5RCx,^+ d1ԐmrXz;-ݖ̥N) կi6Ң:T6em:ۍ?ڧ,պ?p QyZ^U'AF2ⴥ ,n* m䌅SF )JcNQKr * Ҧmʳ1T䶰שE(c`^@$œE%u ƐRؕ\pm S W7vϭ^v[M#77?˽]a)zT/]>]|=7wgKm2K2D5P+oy=&% (ޅz!XDF%*! z^o%b#ty 9滰_TxMdYۀV 2*\}Э)SYԙGIiyL7n~Π8JiK5FKȟ E2$,l;U8`d4 wB Agc|ͲfZNømЗXrf  ~7eе,Y&̅R s+n+殘l;} 05':{GO>}{xOR&=+Q2YpǺ׳@TI ds+|,WetemGMFTIV oZA[|#EEʍ];x% ߴW pT=w7 䚈@ H ${!.-XBѴ2ԠAQh (LADeA] uZ։δ sNBjgw{l9o [l 8M"Oh=~#~l̠ 0!m>ζ66Mo>ٮ־w5`l[ c| >ͼƲͲN~KǃNc49b_'ZZoz|`g>>H؏zf}Nkm^@^gyւטF!B&u<.\"#̸/0>5ߤ> u(evГ%>ÀH R&^j)vsh0%`s{㷃0}|%kE4Dd-|s3|-.6|־hF^զN|9ϫT>Ίvybs 󯇮y:>"q8ʝ㷊݈8|e`?}qqvx@w'TYIu<CRD eL.yC̣ՙtx☫VnC̽C[FEI ?jzSʳйnOm q; 7zsJ1֍ s첞f)/wZ 4XjM~wZ/ ꅐO%cz }cbdĒd֯ 67=`_`ZFd>:MhJUlTj>iu^]TqBzCŽi6%VG>uNj|u@>BC헿Qj\ )U]]i]6|I!K`'w%Z3vvzyuf֘Yex߬W9'͗'L㸮c(ĞlĢi .v_GP ,G&!ȝဍf! LK6 K{U]< ~A<@@N\AI?.n: X .|uKSZ|U|An~ w~ڂGߔ ZgR'󩜒DbH]"NWv"&R2!n0.L [i 6`V ~~zT92RNv$`ȔIӣZ;y m|U.v^@P)>XL N 0v P\l F4Z$^Qޖ g` n-ߦٯ)P4p|cD?0-{ne;LC0љx%ClzN8ӽ9>hqʼx6G\q[}rso3^*n9nSzC葍,d]hbߓ*F&XG,hIX\\$\T,8; ŖW빵Wm[UROJmj#{b%Slf'h[l(4 m3繱Sy4(/܏5-I!Au/ lD %"09eƹ\!JYd}*OLy@*PH8 H% @."}YO^}92Or_NƑ5)Rl]`OAfmPQ6RKѨJgЉ)fu~'s KR{{?t܇K a$5̀JƁdg.ILrn3 j:1Kk(d1r*(x͇9'P:{~:< EpnӫPu7iDi$șѐ? endstream endobj 30138 0 obj <> endobj 30139 0 obj <> endobj 30140 0 obj <> endobj 30141 0 obj <> stream q /X1 Do Q q endstream endobj 30142 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30143 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30144 0 obj <> stream HWk۸_A_<#>jIfw`;Z MJei֒3^,]^gA!yxsI<˻oݳzm{$4R$W<,KO$;߬bXt˾f޶u{?Uv_$wћut_l $f+O9[髶a7/d)Ts--3Vi*qئ~" ԧ4P@}F> Lc$ b̲BZYVcb̲k%ZY>p$\1`ŘeJµ,B}ZIc"\1"k1fYp-ƀEcE\+ b̲k%Z#Ecb̲BP=ƀEcE\b̲kZp-,PVŘe*µZY>p"\1"Uk1,µ,B}ZEcE\biµP=ƀEcǘe1,µ,B}ZMcE\ b Xk1fYp-,PVb̲k5ZY>p&\1`Řejµ,B}ZMc(!\1 c Xk1fYzYVEQhÿYusެZ2ֻpo?4ɹbc[lְOd-?Y|s!b94y?6[/rTY<_W[أZoF šjvd ,He9FV.EMBP(>c_!~\IJ GS5m?sGY #fLUs~iO@|k5V X?HHRi&$Ը0vهsf,8cxOO8g"I'>vVvbxtV6ijߘfjޜǮ1*Pq4@u4b{[%Upm]"viP2uC \vfN7"_4}c^;֟EƋ4VsMNj5&'|Xi|e(ӯ0In |eZ񟭪1Œ (`͸'3哉u,7^O>l'x?|?Z7MZ%ƭ-6ҀVrέ͵I /[|\um A0Cf!-0fF.N޹^Ie&R66r8Ȭ.1d=[ Xl0շz&0#Y6'B&n:8Lvʲ匔nesfzit!bDֺ{]V#\(B[v0 vg*NWUwᔖ6$p"^h1Kp6el!&zմ|jO}X\~w~d/,C}oe}+ڣ髣nG/=,;WElu}H{4˄T6| r&l<ԑ<{׈0Tq$`-8-ϸ|M׋hP1.QGl;V2]I )|?W tI&D/"9;װUc^~62P k޴=;7&/Y]쫶 *'B 4>%H}nlgg߁S6((Ȋ2[ 3%ԻF'gl_yKؤ {ƾTR!kVܱ\T *!=ℂkjK xW~ J7Vxj|Gw؅5>g#Y ',0$LL+6 \\WBX-:| ޴ ueX̥H=PV[VD;2a _殅#B+3nP+kS!C;QVJR\gX UCa yWs `~w?Gy|ͭcDwq?:|Ū. ՞k3pW}pxdSOٌ@ =^=P/6 i}e6@jk<׿}rs:X,f7DKh&YMlڃpÇpIW;|i˺>,{w ?W]=T <929beT =x.A5/i7%f{K%1OUL=66)i bҗ㾃갩y l\5d2!ཻTӺe%|eIqӞXnG~3]8ǩӁ݌JջOy{uE;78?^짵.<SEU|曋 |ü})Cu_;\ƞ^ &˸/75\em=&?Em _!/ī6,!"ma@[6t пM"ui$3sv .‘3cQfb6\Ig{ 糰MD'"U('͋EB잗 nil.Dž$DbYp4 PMtjҫ >ɳjD1g6%A|4% k{!>*vOIƈЂ$жl9@yq;[.JrD͌++ozg.2WXP^{0f/p*Z~Y8g`nMufе9,ŏ_i.эjD`3mOĢ+nUJ/JYĖ5x(-S~,mhMg|V}qR15᮫ܾKݳ53%Ed3&Aw_yBXraj {jGW /csomy5fh.,9 .8RI&dZReZM0 ЧB;6 {?ﴌe(9]4rXQ?p:[1ŋ(@nu#6Cݝ˃OrBa?2ϳw*N^nQ-9;"$:p4^(ϳNs ǞG< _mSCl)qLЉ*tY͎<49b1>Eٯ&q8(gCSiRSFG%`0N.t:CTxJ޺;"0Gkt0eOV]}{@Ef_랳rC7@ڨ"~U'&G˾owMiu8#iVwʋ|eֳi_۾وPb˛ڛ}bW | 4ImѣN^t~ϳ4}0`O M$䷏&p=ݚ䵬/8h; F "L8RiMErycw}d)5ߛPjyb(çqendstream endobj 30145 0 obj <>/P 947 0 R/Type/Annot/A 30146 0 R/Subtype/Link/Rect[93.5999985 299.869995 224.951996 319.549011]/Border[0 0 0]/H/N>> endobj 30146 0 obj <> endobj 30147 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30148 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30149 0 obj <> endobj 30150 0 obj <> endobj 30151 0 obj <> endobj 30152 0 obj <> endobj 30153 0 obj <> endobj 30154 0 obj <> stream 100 endstream endobj 30155 0 obj <> endobj 30156 0 obj <> endobj 30157 0 obj <> stream q /X1 Do Q q endstream endobj 30158 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30159 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30160 0 obj <> stream HW]o۸}}sD$޻wd7Hn}HBX]Jr;#RL"5>9 Gןc?tqno&MNe*I%Rɚrm'=Mr]tsySڔ]SYSM${j'f`B,eto?|]{u0Wg*2y}*v])"ѿ&B9&* >=~l&V4LlvbXO&քcl\EІ8\h1*!1(I{I{EW{EW{EW{M{M{C7{C7{C7`FS}Y>#g`Es} ym# Bm3jCb PjCb Q1(B QHPmhC>R$TE6!`V m"GjCՆ6D#JB QHPmhІ(}ZI6!`V m"Tm"Tmه6@ m"GUjCj(B QHPmhC>R"TE6!`V m"GUjCՆ6D#*B QHPmhL4І}hІ}hCT>PmhC>R&TET Ն6@ m"GՄjCj5(B QHPmhC>R&TE6!`V m"GՄjCfbՆ6DCՆ6DCb6jh8L&׳b͖ڛaU4l[!b}z~|wv>19!xjtN%x0YV4yKGt╈'1&Ts3?NVk}H]8"W(m>@d|<7b1xے"t-Ew:L%ɲ|4%uvqɃ n.GnfΉ1z9ث^OC׀+EĮ5{pニKҙz58tngjL&ubcv2o LZ M>ٌ(FՓkEqӵ*Ey* !{kGn-, `{߇USF4iSgIɽn 7 h"/xy_Y?}W-LCqo>~lRȱ)Xؗ-6'g&Ңm>*K.New\/vU$>h\TAK mK. mQDnKǼk"ev]P2fX:nJå{|zWx)ewM=o}uu[>H½=~u$,hJlw%~˳#~bf閜'ڌY@/'Y;{~Zٷađ/|ŰzE4E0ZLO]Oӡ7%qOyUo$jmjT9JO;\$;K/%\vCdj?~pMn;MXM>BI%FuR6?{;58{߸_PCxkɮ n Ώ޾L2g<-NM  |j#LJxDT@Us9 ,'aqDW0X&χhCfn%..'Rq} j;(JCM`e``r2=ٺw<,.ܦm |pыHT")kQݴM`rlԖN}?CRCiyqfqYƟG"#%<-s|i59D-" t#|HdKZ ]rb%q2x{:Aq7FmCJ^//=2Rb4Ms $>gfsSoڹ\Y)P{TK;j Gj ЫB{ B{ۉyxi{кU y 3n#U |33)*4j뉸  WUr}כq5n\N[K;yqBx:')K9^Veuޛatp$/Ví锾4ڝ< Z %8Ʋ֙*: w@QbNqQNmޚ_lo,̖[T|{JC༅V)JDe"/ǟE ^MA36h^#;Twti-diֻ  .ʮ6 'w,7pkNMO E\(mDv"ِEw[\xY&ޟq3\$pU^I|#/0 Oc"{`w4RCyҽˍ\ 4|(b]Q } עݕV/ʲ4 1Xvc0xsĪ#m`ܥ ՁH4M1.С+KZI6NcDOchEBb)Kgu,\lj~dm,2Ԓ@fXm}ec|>dqvqoqk"a!eFpd|mۑWog ePj\'Z_}V D mjIwa$z[ǔWmM޺R5Wpn{sPhuZhd6ԡ+Ok=+|]7]5P ۢ\D|>/P 1268 0 R/Type/Annot/A 30162 0 R/Subtype/Link/Rect[93.6001968 663.229004 232.259995 682.908997]/Border[0 0 0]/H/N>> endobj 30162 0 obj <> endobj 30163 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30164 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30165 0 obj <> endobj 30166 0 obj <> endobj 30167 0 obj <> endobj 30168 0 obj <> endobj 30169 0 obj <> endobj 30170 0 obj <> stream q /X1 Do Q q endstream endobj 30171 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30172 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30173 0 obj <> stream H|W[o~ׯ# W@8I"iN{&qQZښߙw|3{~1ɒ6TZ&D(ɒ^o~OM641FﻺMl%avs M% e%Qɶ٤S:NЌ8N)${dp26ev;= 'Vd)Zy_'XHh^g͖9c(`)!xH0A $PYЎUs9@EAT ≴۟v(xOJlw uQ>JV_}kTWҴ W ]é<5]ƣkCT4؍ݱzu1p;2d>-)@zb)LLa]sKEd9w_5Ig dN !g\EW(ƴը[QtuOce.1PMGΤU3^0Vi VV0-T FeZ}L=tN]@6n:,xQaכ'=^4Hϕ_~k,|j-B/(xc)w}"ZhuvKZa:t*m_xX=431 cl$z d&ަ>=B\e$7ޞQUdjOcֵTw݋'mAKEbr*&6n80208A]8+N,'R*5s*6REPvN4;XHipt@Wa8)Oۗ? jjc LN͋*H c]{!ޥ]3^ "8QGQ[KQ.[UzpЭ(sd6 K>~qV^P]tt>q[+i8[6ҷ2X{d,=ٌuUbڃ`-ϭuI4ØXu(ؕ/fX[msƁ1Pݳ[}tp_6aP*92Мy>1%Wx>a~~_AaV.ɻlY=Trr,է59Gl>We/&LF FH+ҕ?nэ0fhnuqH|bE^}|{ijx&{ (gbKj.l01gZ"v̇ 5b/z SKv(+,sn0b;U3ģQJL0Vh 0`(/bR<$$˧it x^L&5ʯk(򈜃MD|!\xs@P8̎誷oTh$$Uy=i;2Z> x N{? yr@ޟ}WW"O.rcpT֦9RMvm uAvı;pZ&(:5`l Fr%x~DagL!Y 1Ha =^~ (J >/P 808 0 R/Type/Annot/A 30178 0 R/Subtype/Link/Rect[130.078995 539.020996 384.243011 673.916016]/Border[0 0 0]/H/N>> endobj 30175 0 obj <>/P 808 0 R/Type/Annot/A 30177 0 R/Subtype/Link/Rect[93.6001968 419.028015 199.356003 438.708008]/Border[0 0 0]/H/N>> endobj 30176 0 obj <>/P 808 0 R/Type/Annot/A 30179 0 R/Subtype/Link/Rect[93.6009979 203.028 224.904007 222.707993]/Border[0 0 0]/H/N>> endobj 30177 0 obj <> endobj 30178 0 obj <> endobj 30179 0 obj <> endobj 30180 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30181 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30182 0 obj <> endobj 30183 0 obj <> endobj 30184 0 obj <> endobj 30185 0 obj <> endobj 30186 0 obj <> stream q /X1 Do Q q endstream endobj 30187 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30188 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30189 0 obj <> stream HW]s۶}}: Oh3Il7un$>"2s-RW %Z,e9ڇg`qi*Gg'7oޝ e$*$#Vi` .ӇI=CiʦlG$wh,nl|X3,b"$&U4K҄b˻Oˬ4|i52Вc6IZ~Qev$RbvLYN246noqanG> % A7]lP'l<W5c}EG˜ca XB,9!XXxKꥧ^ꥧ^ꕧ^ꕧ^ꕧ^굧^굧ꍧꍧꍧ>"GPycB}쩏 >&ǞPxB}⩷z멷zϳ0-$\1c Xk1Xz9c"\1"{k1Xzϵp-ƀEcE\+ ḇk%Zp-PVŘc=JµZ9s$\1"{k1Z9c"\1c̱|Z9s"\1"{Uk1,µs,BZEcE\b Xk1Xzϵp-PVḇkZ9s"\E ḇ|Z9cḇk5Z9s&\1`Řc=jµs,BZMc"\1"{Մk1Xzϵp-ƀEcE\ ḇk5Z-Ccḇ|s,_ qqލX1wAR ҆b iDmdf]Qn7iK.WSxLfiM7s[;J0iFq!l:ҢbB9n4Z݀ wg搌5 FEMhKQCqnL. @70%A(TB&ʂa$m7hiW 6L"ZD*~Q*:0A\6AG:]Ny:czFx2_Մ -yn&*GK[|>rHv~ HvB!85 kg\†3D K00Cݞ|{>bgoO/O?Կ|nJllh@ouXO= :'uLl˴|\Uv>{"_+WAteek GIZj5ɠXU4h0Bױ޿ Zi^+8NqՉ_oιr3x(׺;038#6̷-äweߗ={\CI6߫udL;pN؄S[tŰ{n/1JéB,=,3Gk4{ ٶ4+@&@ *zQg r{o6˞==LfKҲMp_pS2!Ų/(.fTz0DϧH4$Dc*M.5L޷Õ;l#' G<ˈ@ń U":n}g2g65~oj 1j7wM-Pf#Y=Nx`OV_OuT*SHN\5dZ& 0o"8l{aаÎ i&&@O!eeCOs6yx`hQj{PuOR5ei^{4lY 6n{ otn'w H41$7u8|69oY2Z#۸* @ܲhа)wå0ȼ*؍n ?ݳ@0MLۉ0b#6RCr3 /1endstream endobj 30190 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30191 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30192 0 obj <> stream q /X1 Do Q q endstream endobj 30193 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30194 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30195 0 obj <> stream HWko:_A`E#=ڻ)[cCSjmז.'9J['!gGv٫W]g!{wޟW E bX`+{[ﲺxUXXٱ}]y՝!H4Ӱ&K”qX}ohjJ" x&ǎP;B}O>!'P:SB}ׄzׄzdz0=AƐ媷1`1dm YzZCq \kc";km Xkm Yzǵp!PV1`1d µ6,BZAƀEƐEw\+kZ{p!Uoc"\kcr\6,µ6,BZIƐEw\+ k%ZCq$\kc"\kc";km Yzǵpp!PV1dJµ6ZCƀEƐ媷1dm Xkm Yzǵp!PV1`1d*µ6,BZEƀEƐEw\kZZCq"\kc";UkmlEkm YzZCƐׁZ {[b<68|pűftb Ӷ:ֻŷG/ "iFs "~Z{$PJyZV"TԬnN}D@@DaRnc6_mmG3dîXguQ(ZjYEZXv[& FjG뮫a7+Vw g$X\Da_ lXB'5KSh4-@FcY'CGXѴ6ݐLs0.(/QȆ/@X}6n0wOMn 5_`C^,@`h&[Vsqyَm~FA8x0!ۍB PJx/AATGh7{LHGo&\Q"sw9{vWq5~8 T"!MސX:@#fV70 8>nn[a924vYsNll?o>}a>;*t:&- @n9Fgm^ú_*;=ktJ@'j*sU3rf0H?!A͛I/LZZxc.ZJh=&?ϓ)'rC ag*Era0Η g8,1c}^Ǭ7VI_@wʽYdxgCJ 0: pTpWwvhn6C-uݤԕEjVAX0vB̼3~^ ޣOED踒)eFvWEl`c Ŵ_A5)m5W >Mz`|czj X%?W+5,ȧs5Y}|J c^Dt2|S'Rk`ܢ&)udd ]J"T\F#ڶ:[A~̿3aZO60xvTW9l|z#?꾞ѠӮ>+ʗ .̆%T]C9 VUad 73FxB9)0 a4 L]_*0q[_⟔(D~g#$h"pTib XÖPngdkٽv84J)58D拍n3zԿ*Wp1C!ɿtX0CV1hSpPݨ*wO_)ɂwI8oqruutDs w>u񎐵a~lv&_^8s3+ $0ן%4JÏ 5*KQdWl9ZA9T9axdaiK;B3@3<0 LI'M֜v"Judj?.a>;CUGŰ_ 0ݾ"Gi ?k@-F3#, Px^cn>˼0j|eQٮOh~J盫f`~r%T;ÿUZm0|^韞#(gݎ Awx MI*GnJ? qq7p~0HGV"_oH%XOr͠,XbtHx6RRyW *ؾFE.#(ke fE`}^tQP43KGkA@9_/. a@}SjRt1Ch/(5~u:N oZ:2MO9dĘɩdL3 }[i`!@b݂Y}lޣŷsYѵ!`C{ Ľu:C-?[mq3'3GB] ݿOƮHUn`ikAMQ!.ؗq*5yoi{ ]{f o $3qt) caЂ86@? 2U:ա9kEx/[|u^ͫWA/>R>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30197 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30198 0 obj <> stream q /X1 Do Q q endstream endobj 30199 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30200 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30201 0 obj <> stream HWo6׀-$ ( iHfK{JoFZr"#瑚GYu޼eo~~|MJyB1md V2Ղu6$c g5Kj7zú:`}rN8['%$XJaCXiƅN[:?ە=ͮzlwi.LkްiĀE6Đ1dC XkC Yȵpm!PV 1` 1d# µ!,B}ZA6ĀE6ĐE\+׆kC>r \b"GkCHµ!X}pm!+VbȊՇ׆k%C>r$\b"\b"GkC Yȵpmpm!PV 1d#Jµ!,µ!,B}ZI6ĐE\+ ׆!QkC YCV>Đ1` 1d#*µ!,B}ZE6ĀE6ĐE\׆kC>r"\b"GUkC XkC Yȵpm!PV C ׆b!,µ!X}!+V_eY*psHng*K3nzx62E,K>$^?'Y@&y&&ڲ+jY}7Ym]rJ!L"Ū}ä\=[2Rx|-ň'bŲ,L$gg#XX?jebq5M3.Ԫ|r;Q_Uzw_=A˕yP}peɀ7\F.xx&O 9Ujrꇝóm}?a; !+vrA Jty0By øx՛~ݸJ:fT+ [ftYVGHgr>gނʏfp·RiV,}]5mc?;W_ ݶOSw,؇$,pr)WC|h3k>xgBeaʷs5. z9=vqn:1K2%VRשyS) ,Z28Z8Ʉ\fVQTJ.S/;`S5. yVXL4t_fvqXx_zj!TTlr[ Lqѝo~_:`kmu0Fkv ;{⾸V'9wc n|S0ŕGǎʌ0z{mpE- U`O >5eN>B3Qac=,CRPZrn˅~eKwN;jdd&Up甀OGuSu5⪏d)%;U/K6iG }ReJQCѨc<, KyH ~P< X뛏R'wD4ϖztn~1~5i{ҟ1F c8N)/wa쟧Ⱥcy8Ab^=q.µog>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30203 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30204 0 obj <> endobj 30205 0 obj <> stream q /X1 Do Q q endstream endobj 30206 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30207 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30208 0 obj <> stream H|Wn8}WQZ ! vn``tn%-+JZb`!u|X<*)] S/w|[ƿ#i,c2-TgZXugEiɸԧjj~S?4m= >{?]tXƻǨMҸKi(}i&̻P Mw̳VERf'+D+yl6T&/ՆX=OؙqRd-{_c+}㇯i|RgBY8Q_>*-!$D1dQ XR,!2,]P<ŀ*P*P:P:P:Po&Po&Po6Po6Po6P1@}ƨ9>pb\K1d1*ƵZ!QV1kZf\K1d),ƵCVb S Xk),F}Z͸bbՌk),ƵC>pf\K1d1jƵZ!QV3k5Zq-ŐŨ\R Yq-0BZ!+TO1d),ƵC>pa\K1d1ƵZ!Q0k Zq-ŐŨ\kR Yq-ŀŸbb5k),F}ZøbmdR Yzq-ŐB().ɿL,c$ARdq;tl2 7Hn~lc3X/bba\ަto/7_w7`*=EX7Q*4wxÄZ3U|rLm)3+{f&a6 چt:/©p)eg ?@ugٞ<6K|^z٩Fjmp5IW4ֽ"& a2 hE2ZT.'s2BF]2̒ʏ2Q_']?Ygk{m]fMv/pٝWk '~j*|vax`M)%1fk^&Ni-ܜL{&ʀ#Xe1.Q ~zh%+yC5U{QJ:Q~]n <-)򭟷uoa#@6)ٰhem^6K3u&4]uyS릮q}wA݁+zܙ֦r-daA^0(ˍ N-}Al$ͣ$%HK].1چ]دRPtTs!^ZT4r/=M7ٛ m޼Lnlf]Ps+qCa:gʳ&*Ʀ(a [t7?%X aҺ'q.뛳U ӇgP*ߊ?}͂a|}=q YK5C!SQ/(y;]n_s _HUnW~ Prnz7-a\Vo~ލؿvvVk92lLLE1[ѓp ZwGku+WE0s_M|aֶOq߿n?ZRĞ{e_Nu'UAs7oT 7$(eCK pcO/gz]R\`r-xق6p.,]ǥ "םi, LY*;snaWx0l.Jm6!]J͗V>EW m{mUop5=BYuݱ ~-2[(̥?jnAeW-mJ8+%.Ŀ7 -n]=1DxlВ*p]RWnr4aSv9AR8^w+rCkVsʼnϡmf{[} WXBLdcDYF~<둋=rXuj\+/W™JI'3Yt۳?F*(r\Ck,5&)03ttK2<$攅_bfFSSbW?HT~<`Ká 7/ؽ)}6 TjAM^&h^\Jɋy \lݡҘ65ALFՂͧO *̺>gxYr^H3H Zp~YrstcR> ir62k6hhL0_J2L,2L,IJL,IJL,ʘXY+cbeAr&V*XE`bAUJ&VIc= `Q Ya,K2dK2dK1TK1WLS YLSC+{ˮ !EH8~Yj J]hfu)dR= 9<gD{Q+^yF W{gD{ QaQ+^yF {5gD{ Q+^yF {5gD{ Q+yFT3GyF 7{ gD{Q+yF 7{ gD{Q+yF O<#*♣<#**dQfW~<~p-6 dZϛnV&;+g=:1]-|OmUVtvt ;zvRe,U<>:qHgbxz6Y w:w˿@RmgW%ʆ*ǐn@4N^@]xYFE,\~<1 Jدnr+/l]+^9(H|~zyd.Tݕդnoݽ.n+7Z4P{=oW]ub+˶7/p]RUZ٦|<KVUs^l]*QpIr\zqϼ]G7nim~3ݴfޔ4MqX:nsfy&qʌ=kv2S8I wڌFCq6\xn6(ڴ.Ɵw*MXkYxlh7a+|endstream endobj 30209 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30210 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30211 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30212 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30213 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30214 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30215 0 obj <> endobj 30216 0 obj <> endobj 30217 0 obj <> endobj 30218 0 obj <> endobj 30219 0 obj <> stream H63#CbD 2RR+2\eE  ťIu f(4*˛Pi3S!0F4[^_P `.Gendstream endobj 30220 0 obj <> endobj 30221 0 obj <> endobj 30222 0 obj <> endobj 30223 0 obj <> endobj 30224 0 obj <> endobj 30225 0 obj <> endobj 30226 0 obj <> stream Hb``2ptqre``+) rwRR` ``\\yy 5F}Yd<^\PTQJjq2]^Rgd$e@좐 g ͗a_ ' v@t0l-bVep/,L(Q0200PpLOJU,.I-VK/*/J,IM ! A!ahiiI P<@X(v!ɥEePa>Œ9 KX Lz00OE2030`ïPoendstream endobj 30227 0 obj <> endobj 30228 0 obj <> endobj 30229 0 obj <> endobj 30230 0 obj <> stream q /X1 Do Q q endstream endobj 30231 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30232 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30233 0 obj <> stream HWko8_ *C/`0m@vPd:VaI^IN ofP4<>${.O0vu{}&L:_dr3晈S*vA>,lj[Mͣдj:cz\-wpJ$ ˰1<)eDYrYxrE?| /^4SխѪ~nVŷe^<DZ7nR52Hb{̟u KO!K[}KU"y &~A`)}NpX"gS3O}N=9>S_ O}A/<%ԗzϳ0'\bջ׺|.,_p!P﹖u1d=rµ.,µ.,BZNŐE\ ׺׺k9ZCs-'\b"\b"{k] Yzϵp \bջ׺|.,_p!PVu1d= µ.,µ.,BZAŐE\+׺׺kZCs \b"\b"{k] Yzϵp$\bջ׺|.,_p!PVu1d=Jµ.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] YzϵpAJŐw1`u1d] Y2.R ; 6x Kp_RYeel, /^y-m[ ߖYǹsbe߅71L$8LzY9TVL0m ƩV ѪUMMߙ/櫉v? U6݃Uؕ"3> U݄ YBOiEOST۵VVjWI<\q"^qSE_ IIDGA >*;XͽZ \UgDλlCVe!NF],љn^)U@:̂/ɝ>.n^Yv G 8t/!Z8,<]Q'8: &Tk̞'6 wu-uu?̨&gpҲ'GB"Qts4Us`50^;\6+v e=P 3(&\z҈?m|[&0_h!Xjh _Ae5U:z^L[enTL-Bc6Vқ]vWFðRM=ؾ@FM*,:. xØ{G:Zsa zMLmX+wN,VF 2p`i۝0yc"-苣2N 㘐(Iuu&SVݳ u⧻=4KfHs[gtp!o^$~`J/;SCyeM8ϊ,Q~p9?jY> mP=Sse\d i°06 (Jzx069>K蘝t>/P 474 0 R/Type/Annot/A 30235 0 R/Subtype/Link/Rect[93.6001968 663.229004 184.404007 682.908997]/Border[0 0 0]/H/N>> endobj 30235 0 obj <> endobj 30236 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30237 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30238 0 obj <> endobj 30239 0 obj <> endobj 30240 0 obj <> endobj 30241 0 obj <> endobj 30242 0 obj <> endobj 30243 0 obj <> endobj 30244 0 obj <> stream q /X1 Do Q q endstream endobj 30245 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30246 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30247 0 obj <> stream HWے|WL\蒰.TQYHAڂHp -/2*q3$9\ev3W?x ~z25.ѥ 5N&QyfoTDW(U7V.~iu\ֻ4}UFuWEҪZFe$U*BU(.l:>hvJ'z}/wݶ 7j4ok}ww]nzr)/tb0= >盰WMW:Uo7T-TT,1>}n2}Tz)%dZAt ,%aŽk-s, po{V-po{;N=p{{>3>3>s>s>s KEg5(-6{h-Lj%sX= cEk h-Lj܋Zh-Lj܋Z 5 ,Z 5#p/Zk@k9X#p/Zk@k9F,^րrlYZKX`rX=Lj%s,@k9F,^ւrXhX`rXh{Z Z˱{Z Z1bcZ1bcEk-h-6{h-Lj%sX= cEkh-Lj܋:Zh-Lj܋:Z u ,Z u#p/Z@k9X#p/Z@k9F,^ցrlyZKX`rX=Ljܫ{.eezj&,倖Zh9偖ZhyLhe@+Z9ʅVrUBh@Z%*V JeR1bI-e hiZheȽ6e -{ h{aSȽ5e -{ h{NSײ #]wȽ]wȽ]dȽ]dȽ]QȽ]QȽ]>Ƚ]>Ƚ]+Ƚ]+Lj%8F%r@9F%r@9FW%r@9FW%r@9F|%r@9F|%r@9Fw%r@9Fw%r@9Fs%r@9Fs1bI-ёh{2)ҩ43:Dϫ袪ҪZF呠 >T$GUC]fI '">%rȌ˜h굺oڷ7zOfgm$=koh&Ok37_/WOT=횽 5އ?Y_@e9Ü`nvbJ/19@LK[yݯ^\Ip>p?ϐ 3Vsgnn퇯M=:qv<|-Anjtӫ:#U+>i UsVO$N8քhMX}WzH}X -Ĝ e`]NMVL?'Ymi5nGjwa]wjuR6âta ;S葶硶Se)#~?ƒӍTݰ[EI>bS s9.mLWnݨ~5_5]WnaS'Nt4m0-z8_$v·%}9>%7w}p!@:fŠ`w|hd`Ll6nmVmŘl\<>[8" "F1RW- 85vuM*l?l oB۴ۺoX 6<j~󡌰Β#i&sLhݺ81U%f48ûmK33u9}Z>}nMhbX俐AmbD.$&gr#e#pӧ)pjԧ{ʀЩc*Kh9儖ZNhy兖Z^he@+ZʄVr\h@Z*V JUkTjqXRcZhieZh{ h{ h{ h{ h{ h{ h{ h[{Kjq,@9F,%roA9F,%roA9F,%roA9F,%roA9F,%roA9F,%roA9F,%roA9F,%roA9F,%r@9F,űȽȽȽȽȽȽȽȽȽ cĒZeR;_ay]T*eGy>x],,I|f>9W.-U4.Xk&_uM8Ma~2S˻ow[2n/ݬ?N_U">u/E+u>Kt2 no?m>acMf"ӱQaIpK7u&ͲpN'6iݶ}[63^5=n@VJ- 6sa~VZYE!&m Ɇx<xߝWɁOV\>.Èf6ߟ>? T/-b٠># }=NbALu9ԜJ7:5`eYT9wIsyHfFB` %5nyPx锼l!or^=gM P=%]jw"XV-8 HlZ˖]U/mS]i'@NW1Nef!k`vȉ-3W"/wLQs_]-b,kI'A9(nsg@'35ⓌⓌ]ӾvҦYwy^ ,I=g$jB Wf] V^e ~yj3|e\\iR\1j^vEOPtXa}ktWHWwendstream endobj 30248 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30249 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30250 0 obj <> endobj 30251 0 obj <> endobj 30252 0 obj <> endobj 30253 0 obj <> stream q /X1 Do Q q endstream endobj 30254 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30255 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 30256 0 obj <> stream H4;0=+ %B0EBi:$@@YFgqy DG&Ŭa=Bk]vz_4uS$!1e6/3n'OA,endstream endobj 30257 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30258 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30259 0 obj <> endobj 30260 0 obj <> endobj 30261 0 obj <> endobj 30262 0 obj <> endobj 30263 0 obj <> endobj 30264 0 obj <> endobj 30265 0 obj <> endobj 30266 0 obj <> endobj 30267 0 obj <> endobj 30268 0 obj <> stream q /X1 Do Q q endstream endobj 30269 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30270 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30271 0 obj <> stream H[+&oKD*+qlR$h\@i\,oszw?.x )^~mklRk+\bH82E &P"OvYOr[]V8w?k7n>1H!R"9E,oXٷO=j UbUe?qg$2ɉuYϪkĞ;q2 e=@NjPR|')"HMjt*i|&lQ&0JRR>E4CQJfkϽfkϽaϽaϽaϽe[Ͻe[Ͻc;Ͻc;Ͻc;}ĸ<>njs3c}̸= >'s2S}ʸ2Rmh&TCwO5R )=ՐS (&TCqV3R{/I-ՀbRK5^j5Z!ŸRR (&TCqV3R{/I-ՀbRK5^j5Z!ŸRRm&TCwO5R )=ՐS (&TCq0R{/I-ՀbRK5^j Z!ŸRkR (&TCq0R{/I-ՀbRK5^j Z!ŸRkRmX&TCwO5R )=ՐS (&TCq2R{/I-ՀbRK5^j-Z!ŸRkR (&TCq2R{/I-ՀbRK5^j-Z!ŸRkRm8&TCwO5R )=ՐݧaVHo.x #X<I&B4D g/˃V7O8Ē!q< m:+拯ZFɇ٪,Z4>;2$J¤R,wI*8چA4&/_Uz~y}z,FzCdqOY}<՟ž̋:;O1˪*Wⷼ2#MbC %U)bb94 gZᇉ9u*9;6EYXq8K"Rrןe; JjL?̞|TS~u,r傞ꄝ%ifsU?eXA'GZny*SJE]gz3b*3/s+vqiŬ"+֬G܊M2bݗU}8걁qk`sG_JkԞt8 áҮ氿ayO8,J ?cb>I&Z2ԑ_ƪ,Dvh t'+Xcmv\]kǴU΁ȇq3ŦY''tih rGjlSj̥G_/tϞWRa%M۵Ή"/K-hX[a8&+1~ "NB;u060?Sf8c| M$nG_|>0ȶ=$/.XgdSIJd? s3y0D*/#cb%CV^lg \~̘7g,pY:NBNO43n3g#eI/W~[~?;~w-evoir+x?S:$l=Nr0j u]nNC;痲St;pOw#6;0yOhY.2vi#}s M}d 5г>x]yx ?5m# /r4'L63$Ix6+&JrͤܳZ0i޵E$w}D6MNw7an+MhN)"͖-yFۖ|4md/]ug:񓺉 c] hɟ!Vu^LX_? ) 0endstream endobj 30272 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30273 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30274 0 obj <> endobj 30275 0 obj <> endobj 30276 0 obj <> stream q /X1 Do Q q endstream endobj 30277 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30278 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30279 0 obj <> stream HWio8_2` ; $Ÿw'j[~&wĢE?a"?t/$&?*"ZIrd)F|%]ɦon4{F.?8dw X$&)'!TaI&WvYbm?Y4 & اc"S}<>gc#s}=¾{Okkֵ)޵ QkS(kS(kZצP{O QkS(Zֵ QkS(Zֵ)S-CTֵ)S-CT a節!umBT a節!um Tպ6j]B]պ6ٻ6ٻ6@!um Tպ6B{j]պ6B{j]B!=rD Pj]B!=rDMj9Z(DMj9ZצP{OQkkֵ)޵ QkS(kS(kZצP{OQkS(Zֵ QkS(Zֵ)S@Tֵ)S@T aV umBT aV um T+պ6Hպ6ٻ6@!um wm /(fX]p1B@/JI'6ԓj$(ۓIP72ww~R_5^>ʩ;r(Oͤз;7 Xτ*\@շ-8g[AP(΋|PvQ˗kշrpEoy-<#MBe^i>HBE[tvŠ()Q˪) eHi0>Rr~݅Uh[N.9Oq2/ ֎<˦+@k93Ʃ~X7*O>Cٹt(l[>, _ʡ.:^$I( 0Vk3%@Z1ү^$,}Rpp8s"fsEu;K=Q#oNqהK%XZ!wqv~"ՑBR=q [ɢ֫ϫ/M^+mgLVNuj&< D<#Y09#*\q01+Ev*A64}="?xgХZ(Y2WP".u=)q`Շ߿q@tpM$5W$ctG44N~G 9ikwJX*uWj|+URG:,ϷVk\"&Տ1r4*W|0 #RJWVS$־ylZXॆ7liT B 0nBaб1bͧҴs%HPu3Rk&g K+ -RʯHsrrԌ5 %PXjSǣn".ִzb\C|J8q0 /z:;i[;n*qt^ y![D'I~7(L2ϥ'/+^rdf~pدf "/?:x6Kv'?nqoQ҅sӹ# ĥG^ջcXjDktqznR `b c=i w}&}tv4Cvn \*j~#Lx0U>Garv0E'a5dʔaDOٷFy4+[rcw}4(n2,o{SӶfo?tg4^bs ]6HfGA598`%6NH' ^d/3hE;$m@5 ̱)T!8FsQ ;6Bmi\iYܭt"QgU='*T>/P 645 0 R/Type/Annot/A 30281 0 R/Subtype/Link/Rect[93.6003036 539.830017 229.751999 559.51001]/Border[0 0 0]/H/N>> endobj 30281 0 obj <> endobj 30282 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30283 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30284 0 obj <> endobj 30285 0 obj <> endobj 30286 0 obj <> endobj 30287 0 obj <> endobj 30288 0 obj <> endobj 30289 0 obj <> endobj 30290 0 obj <> endobj 30291 0 obj <> endobj 30292 0 obj <> stream q /X1 Do Q q endstream endobj 30293 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30294 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30295 0 obj <> stream HWko8_6*KlQ`vΠ؋Y -Ec_0y3` sr{xy%yu-yI@޿GOgȘ!#Q}H?H$'꘶UԹwˆJ{/ IHs(ɶnWyU[&헑C˄O~M^8#*DTe3>+5شiKϿP]sL4 |YyŃY3 f/$Lg%p6^"mNrClLp6,J]iDXvJ]6,gzgzzzzzzzzQ:CD}訏>BGQ9cD}쨏>A'Qx"ckmL\6,ĵ6Yz,W qiq-C\kcw\ژf!2ĵ6Yzǵ q qiq-C\kcw\ژf!2ĵ6Yzǵ qG\kc媷1`!1rۘfm XkmLk9Z,DZƀ4 Q︖#1B;km XkmLk9Z,DZƀ4 Q︖#1B;kmZ,W qi4UocB\kcw\+ژf! ĵ6,ĵ6Yzǵqiq@\kcB\kcw\+ژf! ĵ6,ĵ6Yzǵqiq@\kc'ژfm XkmL\6Y*L8 `X#csD?IAo6 ֻ;F($d{LhL}J %ھ?v-x>&6 |}8̊i RK0B%wX…niQ{I(dXe?ZYV60rb߮T&՞t_6~6^xUei+Է5Dhm/q*QPчjg*7vBnn>ק RdPT,czZ7qLTܫZ)UMrG i̯]U^QAm3 .LǪY@p>ɻPSPٗ_I?C[h+ȶ<yz$?6 +>lrv͝6.nI b9bdfپ<7şvtgJb]˰WRrJI 彎 녨s$eATy&jkU{do^|k7o6!x.tep8Lk~9\NӇc^$N]Vᴁ(Y{>KyL׆uݥmUҶN6:iiK$Y֟t2qɅQ"QxzYN=QvV !!M©@̮NNف i+MgS:Cst44667a{K\kiՅ]^#̹o5 U XaMb!<|R_j/Hw8\b{ru%P.{?^b0Щ1"=!/2> }E q;\ ht(\8 == y++7%/JneI_w9WpB$ldSA yucϟҴ c6vIF(K0XoIխ~R pޘSz<@On%f$ l7w7~|v|2x63ڡj9t[rX4(;V~PFEGIwή <08@Tu_,:_c4VtY4@][X^6~0Y:Vּ.M5tKi:]=XjomB~F'-T_)뻫A uh=E^X!?jKڵlApf Us@u)߆0^]+;!_@i_^1rty>%EPԫbT1t)#Wq8DS< c^~`7)TmL0/&h6/~6豛 4}j%缫DWNy¼z5k ,[L?f _D|Ѓ|h^?CB`ФuTGd>X&0(ҏ1 p*t?˙H! %.$.iRϚ_nQpp8I ϢțRšs<"/_|Ư4?IlgRYߚGIpWhQ,]޷B8H9\ `r9ҁ8ɧ0ﳞ;p&H|'C[OZpU&*儎ƸW:r* N?LT}</ȡ|w,u_IS ?gM=" ?կgo.#8#bi:^Her6T C\YJL-SCaʹ 3"U\x5^dF3t=ѿL=R^xVn" TU-am2P0hTJڲc/xV弳{D6k DHPe:2;D[ׅ+$ygEB~;!)>okh* c$JLEJp( F;GѪOGrKWi 9,ͥ7%4c_A/OOw (oЪ-ʮ+K}Ճ.`GH܊I6rǟt l]mhfBR8i:^6ICׅdPNB9m Q]H²xx FfjZen ~՛sSH\]4)u,?d"Z;-*\/a!X{ίQNrlN[3N]JMSo݁ѢWUĿn x6搟zę֤?7O??/1kendstream endobj 30296 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30297 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30298 0 obj <> endobj 30299 0 obj <> stream q /X1 Do Q q endstream endobj 30300 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30301 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30302 0 obj <> stream HWnG}G G}AYf^'PB+t(V 9B`I9tu͖ _9΄E`SjfʭdΪHg*1lvu~~Zovx`EvV4;dM?fH8 L[+gMh0h6p @xq"Yo3K .`OWv'gX%rrYpSvcB FpR8(!RTC!Pv!Rq PP/P/PPPPPPoPoPoPoPoPPPPPPPxVcLcJ1@cJ1D1DJµq Qĵpm8(B}ZI6!PVc"\EO\+ 1DJµq Pkk%8(B}ZI6-3E6!*UE6!*Uc"\EO\1D*µq Pkk8(B}ZE6pmC>q"\EO\1@c"'Ukk848T}8T}CT>pmC>q&\EO\ 1@c"'Մkk58(µq QĵpmC>q&\E6!PVc"'Մk23kRq PkRq Q4_χezL 6"Ꙑ!:.fx4X1؉\)Kv^W+RCﰛ9yr}0fm ~XC+9qO $Z6i} ?/8a;t7p>Tk2~W_T-B6q;v֣ͅ߿@cT:Fk|'M DH^;ҁ3\:Wʭooy;u|ƄfڟV[p7zXmM&|_-Ŗø\f.Ò1|;ܛ>n*Nf1!f}]۸nr]]rp<lӬd K3 eC)l5b|3%^\77]L֢mJ4X."Nz,|38yO'V&w\5W >-չah)4Ya l`z'0VyzoC"[,%a;RRe;CФZ ( \<Ӿ&,?hu;tٿ (|VkTgG<6V jyuӍf ^?Eq7'Dhi7h_"52]6j^jX=$m!yžqSjyXUV!煐}7£}䄏6W~J)cA1lȘ?ip]سώW#K0I}מWW+}l& UPաe Pae, u U3S]0ZNx<˃0xFKgOf}{Vwa׺U_K]뮖±__82q j#J|XQIT䙪rvyz1]֡Kr[.ɂ NG÷J[N @LӮ!o_o[so񅞓 *Ö2ĽiˆoSRL ӄurB~1ƜM-d r5s;b#ۡ&M LCl2DlrMzE6AC"6=vmlfDlv - zEƕTjP/h#RWB|S;$|E@l ~ ^1_}]lWj˾o}z,?H.ߌO*HHDN%s,9:j1E+E#}Mu5uAo^qY=֟3n/Qjnk]EmP1;t-ڃR+42v=' F$Ș) +eі'o\1AE͕bUbet'X8(Zyԧo""j[u*dͼ;űN^}Ѿ ببxqz{?޵QősȕLh|w 3Pp̄f4¯!ߛ5k6W}=o?7BΔ/ݍaWFAʚsw̼#7xݎ;O&#n"ؙJd]pf4?>tzvz2jkvU]sIM]gOA*a@eLG-)Kj1UײzxଚA 0-덦7Rf_~…䵞z\X*Cs9n R tN.NnhbJKY?<&$,?Vf:4qq[ŊOWˎ6W8&`!`ɮkOEJYڋ0Rf/$\Z1:՞ZQ -ʮ7GE6y٫~u9s2BKr#1󖄸|lToF6{צđf+Va.Xob>(w/{ͣAyS;4q3OJY NNfN!T/x QJ j^ITvwk6*\Hbl`c 4o;MÅWjcd%>kܰdsՕvuȕql]ަo:п" _vb!ꤕn7_֜Vّm=E1ٰդ@@:Љc@ST]1N>!M3EsUN*V~יl=/Q> 9 :73]{\n~Y.ZrB_rx!ɶs{HP %ts+ ;6QreҾoi۵cBb;=mB|0V绻uPһMt~sX@qx~Q߫:P1&3T'ñ~xzigKJfK09`QXe=]68hӶfqɗXYQ!Yr v\y'@Z?r{Tr#.lUЖxTJ*?3BKz22i(Tz&sv*%+1U,R2C 6xAxk2 xb[Y5QbTxmEZviDQQ3]|@ TN.3[l(f ]XP`fq1q ݅p' PmPa6EZI9WpؽLхɥ1Cy_E4hQ׏Jg;/j[t2?JƧ=:Xjϟ;xK%Gex0[BfaBB-LWSliZ~V$V%f YJ:Cp^*`2t.v/͛1/fHYendstream endobj 30303 0 obj <>/P 6717 0 R/Type/Annot/A 30969 0 R/Subtype/Link/Rect[206 670 220 678]/Border[0 0 0]/H/N>> endobj 30304 0 obj <>/P 6717 0 R/Type/Annot/A 30967 0 R/Subtype/Link/Rect[222 670 236 678]/Border[0 0 0]/H/N>> endobj 30305 0 obj <>/P 6717 0 R/Type/Annot/A 30964 0 R/Subtype/Link/Rect[238 670 255 679]/Border[0 0 0]/H/N>> endobj 30306 0 obj <>/P 6717 0 R/Type/Annot/A 30962 0 R/Subtype/Link/Rect[256 670 268 678]/Border[0 0 0]/H/N>> endobj 30307 0 obj <>/P 6717 0 R/Type/Annot/A 30960 0 R/Subtype/Link/Rect[189 660 201 668]/Border[0 0 0]/H/N>> endobj 30308 0 obj <>/P 6717 0 R/Type/Annot/A 30958 0 R/Subtype/Link/Rect[194 640 210 649]/Border[0 0 0]/H/N>> endobj 30309 0 obj <>/P 6717 0 R/Type/Annot/A 30956 0 R/Subtype/Link/Rect[211 640 223 648]/Border[0 0 0]/H/N>> endobj 30310 0 obj <>/P 6717 0 R/Type/Annot/A 30954 0 R/Subtype/Link/Rect[161 630 178 639]/Border[0 0 0]/H/N>> endobj 30311 0 obj <>/P 6717 0 R/Type/Annot/A 30952 0 R/Subtype/Link/Rect[178 630 190 638]/Border[0 0 0]/H/N>> endobj 30312 0 obj <>/P 6717 0 R/Type/Annot/A 30950 0 R/Subtype/Link/Rect[211 620 228 629]/Border[0 0 0]/H/N>> endobj 30313 0 obj <>/P 6717 0 R/Type/Annot/A 30948 0 R/Subtype/Link/Rect[229 620 243 628]/Border[0 0 0]/H/N>> endobj 30314 0 obj <>/P 6717 0 R/Type/Annot/A 30946 0 R/Subtype/Link/Rect[245 620 257 628]/Border[0 0 0]/H/N>> endobj 30315 0 obj <>/P 6717 0 R/Type/Annot/A 30944 0 R/Subtype/Link/Rect[189 610 201 618]/Border[0 0 0]/H/N>> endobj 30316 0 obj <>/P 6717 0 R/Type/Annot/A 30942 0 R/Subtype/Link/Rect[182 600 194 608]/Border[0 0 0]/H/N>> endobj 30317 0 obj <>/P 6717 0 R/Type/Annot/A 30940 0 R/Subtype/Link/Rect[211 590 223 598]/Border[0 0 0]/H/N>> endobj 30318 0 obj <>/P 6717 0 R/Type/Annot/A 30938 0 R/Subtype/Link/Rect[207 580 219 588]/Border[0 0 0]/H/N>> endobj 30319 0 obj <>/P 6717 0 R/Type/Annot/A 30936 0 R/Subtype/Link/Rect[226 570 238 578]/Border[0 0 0]/H/N>> endobj 30320 0 obj <>/P 6717 0 R/Type/Annot/A 30934 0 R/Subtype/Link/Rect[207 560 221 568]/Border[0 0 0]/H/N>> endobj 30321 0 obj <>/P 6717 0 R/Type/Annot/A 30932 0 R/Subtype/Link/Rect[223 560 235 568]/Border[0 0 0]/H/N>> endobj 30322 0 obj <>/P 6717 0 R/Type/Annot/A 30930 0 R/Subtype/Link/Rect[207 550 219 558]/Border[0 0 0]/H/N>> endobj 30323 0 obj <>/P 6717 0 R/Type/Annot/A 30928 0 R/Subtype/Link/Rect[207 540 219 548]/Border[0 0 0]/H/N>> endobj 30324 0 obj <>/P 6717 0 R/Type/Annot/A 30926 0 R/Subtype/Link/Rect[216 530 230 538]/Border[0 0 0]/H/N>> endobj 30325 0 obj <>/P 6717 0 R/Type/Annot/A 30924 0 R/Subtype/Link/Rect[232 530 244 538]/Border[0 0 0]/H/N>> endobj 30326 0 obj <>/P 6717 0 R/Type/Annot/A 30922 0 R/Subtype/Link/Rect[211 520 223 528]/Border[0 0 0]/H/N>> endobj 30327 0 obj <>/P 6717 0 R/Type/Annot/A 30920 0 R/Subtype/Link/Rect[211 510 223 518]/Border[0 0 0]/H/N>> endobj 30328 0 obj <>/P 6717 0 R/Type/Annot/A 30918 0 R/Subtype/Link/Rect[202 500 216 508]/Border[0 0 0]/H/N>> endobj 30329 0 obj <>/P 6717 0 R/Type/Annot/A 30916 0 R/Subtype/Link/Rect[218 500 234 509]/Border[0 0 0]/H/N>> endobj 30330 0 obj <>/P 6717 0 R/Type/Annot/A 30914 0 R/Subtype/Link/Rect[235 500 249 508]/Border[0 0 0]/H/N>> endobj 30331 0 obj <>/P 6717 0 R/Type/Annot/A 30912 0 R/Subtype/Link/Rect[251 500 268 509]/Border[0 0 0]/H/N>> endobj 30332 0 obj <>/P 6717 0 R/Type/Annot/A 30910 0 R/Subtype/Link/Rect[268 500 282 508]/Border[0 0 0]/H/N>> endobj 30333 0 obj <>/P 6717 0 R/Type/Annot/A 30908 0 R/Subtype/Link/Rect[151 490 167 499]/Border[0 0 0]/H/N>> endobj 30334 0 obj <>/P 6717 0 R/Type/Annot/A 30906 0 R/Subtype/Link/Rect[168 490 182 498]/Border[0 0 0]/H/N>> endobj 30335 0 obj <>/P 6717 0 R/Type/Annot/A 30904 0 R/Subtype/Link/Rect[184 490 201 499]/Border[0 0 0]/H/N>> endobj 30336 0 obj <>/P 6717 0 R/Type/Annot/A 30902 0 R/Subtype/Link/Rect[201 490 215 498]/Border[0 0 0]/H/N>> endobj 30337 0 obj <>/P 6717 0 R/Type/Annot/A 30900 0 R/Subtype/Link/Rect[217 490 234 499]/Border[0 0 0]/H/N>> endobj 30338 0 obj <>/P 6717 0 R/Type/Annot/A 30898 0 R/Subtype/Link/Rect[235 490 247 498]/Border[0 0 0]/H/N>> endobj 30339 0 obj <>/P 6717 0 R/Type/Annot/A 30896 0 R/Subtype/Link/Rect[206 480 220 488]/Border[0 0 0]/H/N>> endobj 30340 0 obj <>/P 6717 0 R/Type/Annot/A 30894 0 R/Subtype/Link/Rect[222 480 239 489]/Border[0 0 0]/H/N>> endobj 30341 0 obj <>/P 6717 0 R/Type/Annot/A 30891 0 R/Subtype/Link/Rect[240 480 252 488]/Border[0 0 0]/H/N>> endobj 30342 0 obj <>/P 6717 0 R/Type/Annot/A 30888 0 R/Subtype/Link/Rect[189 470 201 478]/Border[0 0 0]/H/N>> endobj 30343 0 obj <>/P 6717 0 R/Type/Annot/A 30884 0 R/Subtype/Link/Rect[202 460 214 468]/Border[0 0 0]/H/N>> endobj 30344 0 obj <>/P 6717 0 R/Type/Annot/A 30880 0 R/Subtype/Link/Rect[198 450 210 458]/Border[0 0 0]/H/N>> endobj 30345 0 obj <>/P 6717 0 R/Type/Annot/A 30876 0 R/Subtype/Link/Rect[194 440 211 449]/Border[0 0 0]/H/N>> endobj 30346 0 obj <>/P 6717 0 R/Type/Annot/A 30872 0 R/Subtype/Link/Rect[211 440 223 448]/Border[0 0 0]/H/N>> endobj 30347 0 obj <>/P 6717 0 R/Type/Annot/A 30867 0 R/Subtype/Link/Rect[178 430 190 438]/Border[0 0 0]/H/N>> endobj 30348 0 obj <>/P 6717 0 R/Type/Annot/A 30862 0 R/Subtype/Link/Rect[175 420 181 428]/Border[0 0 0]/H/N>> endobj 30349 0 obj <>/P 6717 0 R/Type/Annot/A 30858 0 R/Subtype/Link/Rect[183 420 193 428]/Border[0 0 0]/H/N>> endobj 30350 0 obj <>/P 6717 0 R/Type/Annot/A 30854 0 R/Subtype/Link/Rect[195 420 209 428]/Border[0 0 0]/H/N>> endobj 30351 0 obj <>/P 6717 0 R/Type/Annot/A 30850 0 R/Subtype/Link/Rect[211 420 225 428]/Border[0 0 0]/H/N>> endobj 30352 0 obj <>/P 6717 0 R/Type/Annot/A 30846 0 R/Subtype/Link/Rect[227 420 241 428]/Border[0 0 0]/H/N>> endobj 30353 0 obj <>/P 6717 0 R/Type/Annot/A 30842 0 R/Subtype/Link/Rect[243 420 256 428]/Border[0 0 0]/H/N>> endobj 30354 0 obj <>/P 6717 0 R/Type/Annot/A 30839 0 R/Subtype/Link/Rect[258 420 275 429]/Border[0 0 0]/H/N>> endobj 30355 0 obj <>/P 6717 0 R/Type/Annot/A 30835 0 R/Subtype/Link/Rect[276 420 290 428]/Border[0 0 0]/H/N>> endobj 30356 0 obj <>/P 6717 0 R/Type/Annot/A 30831 0 R/Subtype/Link/Rect[292 420 306 428]/Border[0 0 0]/H/N>> endobj 30357 0 obj <>/P 6717 0 R/Type/Annot/A 30827 0 R/Subtype/Link/Rect[151 410 165 418]/Border[0 0 0]/H/N>> endobj 30358 0 obj <>/P 6717 0 R/Type/Annot/A 30823 0 R/Subtype/Link/Rect[167 410 179 418]/Border[0 0 0]/H/N>> endobj 30359 0 obj <>/P 6717 0 R/Type/Annot/A 30819 0 R/Subtype/Link/Rect[160 400 168 408]/Border[0 0 0]/H/N>> endobj 30360 0 obj <>/P 6717 0 R/Type/Annot/A 30815 0 R/Subtype/Link/Rect[193 390 207 398]/Border[0 0 0]/H/N>> endobj 30361 0 obj <>/P 6717 0 R/Type/Annot/A 30811 0 R/Subtype/Link/Rect[209 390 223 398]/Border[0 0 0]/H/N>> endobj 30362 0 obj <>/P 6717 0 R/Type/Annot/A 30806 0 R/Subtype/Link/Rect[225 390 239 398]/Border[0 0 0]/H/N>> endobj 30363 0 obj <>/P 6717 0 R/Type/Annot/A 30802 0 R/Subtype/Link/Rect[241 390 255 398]/Border[0 0 0]/H/N>> endobj 30364 0 obj <>/P 6717 0 R/Type/Annot/A 30798 0 R/Subtype/Link/Rect[257 390 271 398]/Border[0 0 0]/H/N>> endobj 30365 0 obj <>/P 6717 0 R/Type/Annot/A 30794 0 R/Subtype/Link/Rect[273 390 287 398]/Border[0 0 0]/H/N>> endobj 30366 0 obj <>/P 6717 0 R/Type/Annot/A 30790 0 R/Subtype/Link/Rect[289 390 303 398]/Border[0 0 0]/H/N>> endobj 30367 0 obj <>/P 6717 0 R/Type/Annot/A 30787 0 R/Subtype/Link/Rect[151 380 165 388]/Border[0 0 0]/H/N>> endobj 30368 0 obj <>/P 6717 0 R/Type/Annot/A 30783 0 R/Subtype/Link/Rect[167 380 183 389]/Border[0 0 0]/H/N>> endobj 30369 0 obj <>/P 6717 0 R/Type/Annot/A 30780 0 R/Subtype/Link/Rect[184 380 198 388]/Border[0 0 0]/H/N>> endobj 30370 0 obj <>/P 6717 0 R/Type/Annot/A 30778 0 R/Subtype/Link/Rect[200 380 214 388]/Border[0 0 0]/H/N>> endobj 30371 0 obj <>/P 6717 0 R/Type/Annot/A 30776 0 R/Subtype/Link/Rect[216 380 230 388]/Border[0 0 0]/H/N>> endobj 30372 0 obj <>/P 6717 0 R/Type/Annot/A 30773 0 R/Subtype/Link/Rect[232 380 246 388]/Border[0 0 0]/H/N>> endobj 30373 0 obj <>/P 6717 0 R/Type/Annot/A 30769 0 R/Subtype/Link/Rect[248 380 262 388]/Border[0 0 0]/H/N>> endobj 30374 0 obj <>/P 6717 0 R/Type/Annot/A 30765 0 R/Subtype/Link/Rect[264 380 276 388]/Border[0 0 0]/H/N>> endobj 30375 0 obj <>/P 6717 0 R/Type/Annot/A 30761 0 R/Subtype/Link/Rect[207 370 221 378]/Border[0 0 0]/H/N>> endobj 30376 0 obj <>/P 6717 0 R/Type/Annot/A 30758 0 R/Subtype/Link/Rect[223 370 237 378]/Border[0 0 0]/H/N>> endobj 30377 0 obj <>/P 6717 0 R/Type/Annot/A 30754 0 R/Subtype/Link/Rect[239 370 251 378]/Border[0 0 0]/H/N>> endobj 30378 0 obj <>/P 6717 0 R/Type/Annot/A 30750 0 R/Subtype/Link/Rect[235 360 245 368]/Border[0 0 0]/H/N>> endobj 30379 0 obj <>/P 6717 0 R/Type/Annot/A 30746 0 R/Subtype/Link/Rect[247 360 257 368]/Border[0 0 0]/H/N>> endobj 30380 0 obj <>/P 6717 0 R/Type/Annot/A 30742 0 R/Subtype/Link/Rect[259 360 267 368]/Border[0 0 0]/H/N>> endobj 30381 0 obj <>/P 6717 0 R/Type/Annot/A 30738 0 R/Subtype/Link/Rect[176 340 192 349]/Border[0 0 0]/H/N>> endobj 30382 0 obj <>/P 6717 0 R/Type/Annot/A 30735 0 R/Subtype/Link/Rect[193 340 205 348]/Border[0 0 0]/H/N>> endobj 30383 0 obj <>/P 6717 0 R/Type/Annot/A 30731 0 R/Subtype/Link/Rect[176 330 192 339]/Border[0 0 0]/H/N>> endobj 30384 0 obj <>/P 6717 0 R/Type/Annot/A 30727 0 R/Subtype/Link/Rect[193 330 205 339]/Border[0 0 0]/H/N>> endobj 30385 0 obj <>/P 6717 0 R/Type/Annot/A 30724 0 R/Subtype/Link/Rect[207 320 219 329]/Border[0 0 0]/H/N>> endobj 30386 0 obj <>/P 6717 0 R/Type/Annot/A 30720 0 R/Subtype/Link/Rect[216 310 228 319]/Border[0 0 0]/H/N>> endobj 30387 0 obj <>/P 6717 0 R/Type/Annot/A 30716 0 R/Subtype/Link/Rect[216 300 228 309]/Border[0 0 0]/H/N>> endobj 30388 0 obj <>/P 6717 0 R/Type/Annot/A 30713 0 R/Subtype/Link/Rect[216 290 228 299]/Border[0 0 0]/H/N>> endobj 30389 0 obj <>/P 6717 0 R/Type/Annot/A 30709 0 R/Subtype/Link/Rect[216 280 228 289]/Border[0 0 0]/H/N>> endobj 30390 0 obj <>/P 6717 0 R/Type/Annot/A 30705 0 R/Subtype/Link/Rect[216 270 228 279]/Border[0 0 0]/H/N>> endobj 30391 0 obj <>/P 6717 0 R/Type/Annot/A 30700 0 R/Subtype/Link/Rect[216 260 228 269]/Border[0 0 0]/H/N>> endobj 30392 0 obj <>/P 6717 0 R/Type/Annot/A 30696 0 R/Subtype/Link/Rect[216 250 228 259]/Border[0 0 0]/H/N>> endobj 30393 0 obj <>/P 6717 0 R/Type/Annot/A 30692 0 R/Subtype/Link/Rect[216 240 228 249]/Border[0 0 0]/H/N>> endobj 30394 0 obj <>/P 6717 0 R/Type/Annot/A 30689 0 R/Subtype/Link/Rect[202 230 214 239]/Border[0 0 0]/H/N>> endobj 30395 0 obj <>/P 6717 0 R/Type/Annot/A 30687 0 R/Subtype/Link/Rect[207 220 219 229]/Border[0 0 0]/H/N>> endobj 30396 0 obj <>/P 6717 0 R/Type/Annot/A 30684 0 R/Subtype/Link/Rect[202 210 216 219]/Border[0 0 0]/H/N>> endobj 30397 0 obj <>/P 6717 0 R/Type/Annot/A 30681 0 R/Subtype/Link/Rect[218 210 230 219]/Border[0 0 0]/H/N>> endobj 30398 0 obj <>/P 6717 0 R/Type/Annot/A 30679 0 R/Subtype/Link/Rect[189 200 201 209]/Border[0 0 0]/H/N>> endobj 30399 0 obj <>/P 6717 0 R/Type/Annot/A 30676 0 R/Subtype/Link/Rect[248 190 262 199]/Border[0 0 0]/H/N>> endobj 30400 0 obj <>/P 6717 0 R/Type/Annot/A 30672 0 R/Subtype/Link/Rect[264 190 278 199]/Border[0 0 0]/H/N>> endobj 30401 0 obj <>/P 6717 0 R/Type/Annot/A 30668 0 R/Subtype/Link/Rect[280 190 292 199]/Border[0 0 0]/H/N>> endobj 30402 0 obj <>/P 6717 0 R/Type/Annot/A 30665 0 R/Subtype/Link/Rect[216 180 230 189]/Border[0 0 0]/H/N>> endobj 30403 0 obj <>/P 6717 0 R/Type/Annot/A 30663 0 R/Subtype/Link/Rect[232 180 244 189]/Border[0 0 0]/H/N>> endobj 30404 0 obj <>/P 6717 0 R/Type/Annot/A 30662 0 R/Subtype/Link/Rect[207 170 219 179]/Border[0 0 0]/H/N>> endobj 30405 0 obj <>/P 6717 0 R/Type/Annot/A 30660 0 R/Subtype/Link/Rect[216 160 228 169]/Border[0 0 0]/H/N>> endobj 30406 0 obj <>/P 6717 0 R/Type/Annot/A 30658 0 R/Subtype/Link/Rect[206 150 220 159]/Border[0 0 0]/H/N>> endobj 30407 0 obj <>/P 6717 0 R/Type/Annot/A 30654 0 R/Subtype/Link/Rect[222 150 234 159]/Border[0 0 0]/H/N>> endobj 30408 0 obj <>/P 6717 0 R/Type/Annot/A 30651 0 R/Subtype/Link/Rect[397 670 409 678]/Border[0 0 0]/H/N>> endobj 30409 0 obj <>/P 6717 0 R/Type/Annot/A 30893 0 R/Subtype/Link/Rect[424 660 436 668]/Border[0 0 0]/H/N>> endobj 30410 0 obj <>/P 6717 0 R/Type/Annot/A 30890 0 R/Subtype/Link/Rect[410 650 424 658]/Border[0 0 0]/H/N>> endobj 30411 0 obj <>/P 6717 0 R/Type/Annot/A 30887 0 R/Subtype/Link/Rect[426 650 438 658]/Border[0 0 0]/H/N>> endobj 30412 0 obj <>/P 6717 0 R/Type/Annot/A 30883 0 R/Subtype/Link/Rect[414 640 428 648]/Border[0 0 0]/H/N>> endobj 30413 0 obj <>/P 6717 0 R/Type/Annot/A 44693 0 R/Subtype/Link/Rect[430 640 447 649]/Border[0 0 0]/H/N>> endobj 30414 0 obj <>/P 6717 0 R/Type/Annot/A 30875 0 R/Subtype/Link/Rect[448 640 460 648]/Border[0 0 0]/H/N>> endobj 30415 0 obj <>/P 6717 0 R/Type/Annot/A 30871 0 R/Subtype/Link/Rect[397 630 409 638]/Border[0 0 0]/H/N>> endobj 30416 0 obj <>/P 6717 0 R/Type/Annot/A 30866 0 R/Subtype/Link/Rect[410 620 426 629]/Border[0 0 0]/H/N>> endobj 30417 0 obj <>/P 6717 0 R/Type/Annot/A 30861 0 R/Subtype/Link/Rect[427 620 439 628]/Border[0 0 0]/H/N>> endobj 30418 0 obj <>/P 6717 0 R/Type/Annot/A 44510 0 R/Subtype/Link/Rect[397 610 409 618]/Border[0 0 0]/H/N>> endobj 30419 0 obj <>/P 6717 0 R/Type/Annot/A 30853 0 R/Subtype/Link/Rect[410 600 424 608]/Border[0 0 0]/H/N>> endobj 30420 0 obj <>/P 6717 0 R/Type/Annot/A 30849 0 R/Subtype/Link/Rect[426 600 442 609]/Border[0 0 0]/H/N>> endobj 30421 0 obj <>/P 6717 0 R/Type/Annot/A 30845 0 R/Subtype/Link/Rect[443 600 455 608]/Border[0 0 0]/H/N>> endobj 30422 0 obj <>/P 6717 0 R/Type/Annot/A 30841 0 R/Subtype/Link/Rect[397 590 409 598]/Border[0 0 0]/H/N>> endobj 30423 0 obj <>/P 6717 0 R/Type/Annot/A 30837 0 R/Subtype/Link/Rect[424 580 436 588]/Border[0 0 0]/H/N>> endobj 30424 0 obj <>/P 6717 0 R/Type/Annot/A 30833 0 R/Subtype/Link/Rect[437 570 451 578]/Border[0 0 0]/H/N>> endobj 30425 0 obj <>/P 6717 0 R/Type/Annot/A 30829 0 R/Subtype/Link/Rect[453 570 467 578]/Border[0 0 0]/H/N>> endobj 30426 0 obj <>/P 6717 0 R/Type/Annot/A 30825 0 R/Subtype/Link/Rect[469 570 483 578]/Border[0 0 0]/H/N>> endobj 30427 0 obj <>/P 6717 0 R/Type/Annot/A 30821 0 R/Subtype/Link/Rect[485 570 499 578]/Border[0 0 0]/H/N>> endobj 30428 0 obj <>/P 6717 0 R/Type/Annot/A 30817 0 R/Subtype/Link/Rect[501 570 513 578]/Border[0 0 0]/H/N>> endobj 30429 0 obj <>/P 6717 0 R/Type/Annot/A 30813 0 R/Subtype/Link/Rect[415 560 429 568]/Border[0 0 0]/H/N>> endobj 30430 0 obj <>/P 6717 0 R/Type/Annot/A 30808 0 R/Subtype/Link/Rect[431 560 443 568]/Border[0 0 0]/H/N>> endobj 30431 0 obj <>/P 6717 0 R/Type/Annot/A 30804 0 R/Subtype/Link/Rect[429 550 441 558]/Border[0 0 0]/H/N>> endobj 30432 0 obj <>/P 6717 0 R/Type/Annot/A 30800 0 R/Subtype/Link/Rect[415 540 423 548]/Border[0 0 0]/H/N>> endobj 30433 0 obj <>/P 6717 0 R/Type/Annot/A 30796 0 R/Subtype/Link/Rect[414 530 428 538]/Border[0 0 0]/H/N>> endobj 30434 0 obj <>/P 6717 0 R/Type/Annot/A 30792 0 R/Subtype/Link/Rect[430 530 442 538]/Border[0 0 0]/H/N>> endobj 30435 0 obj <>/P 6717 0 R/Type/Annot/A 30788 0 R/Subtype/Link/Rect[410 520 424 528]/Border[0 0 0]/H/N>> endobj 30436 0 obj <>/P 6717 0 R/Type/Annot/A 30784 0 R/Subtype/Link/Rect[426 520 440 528]/Border[0 0 0]/H/N>> endobj 30437 0 obj <>/P 6717 0 R/Type/Annot/A 30781 0 R/Subtype/Link/Rect[442 520 458 529]/Border[0 0 0]/H/N>> endobj 30438 0 obj <>/P 6717 0 R/Type/Annot/A 30971 0 R/Subtype/Link/Rect[459 520 473 528]/Border[0 0 0]/H/N>> endobj 30439 0 obj <>/P 6717 0 R/Type/Annot/A 30775 0 R/Subtype/Link/Rect[475 520 489 528]/Border[0 0 0]/H/N>> endobj 30440 0 obj <>/P 6717 0 R/Type/Annot/A 30772 0 R/Subtype/Link/Rect[359 510 375 519]/Border[0 0 0]/H/N>> endobj 30441 0 obj <>/P 6717 0 R/Type/Annot/A 30768 0 R/Subtype/Link/Rect[376 510 390 518]/Border[0 0 0]/H/N>> endobj 30442 0 obj <>/P 6717 0 R/Type/Annot/A 30764 0 R/Subtype/Link/Rect[392 510 409 519]/Border[0 0 0]/H/N>> endobj 30443 0 obj <>/P 6717 0 R/Type/Annot/A 30760 0 R/Subtype/Link/Rect[409 510 423 518]/Border[0 0 0]/H/N>> endobj 30444 0 obj <>/P 6717 0 R/Type/Annot/A 30757 0 R/Subtype/Link/Rect[425 510 439 518]/Border[0 0 0]/H/N>> endobj 30445 0 obj <>/P 6717 0 R/Type/Annot/A 30753 0 R/Subtype/Link/Rect[441 510 458 519]/Border[0 0 0]/H/N>> endobj 30446 0 obj <>/P 6717 0 R/Type/Annot/A 30749 0 R/Subtype/Link/Rect[459 510 473 518]/Border[0 0 0]/H/N>> endobj 30447 0 obj <>/P 6717 0 R/Type/Annot/A 30745 0 R/Subtype/Link/Rect[475 510 489 518]/Border[0 0 0]/H/N>> endobj 30448 0 obj <>/P 6717 0 R/Type/Annot/A 30741 0 R/Subtype/Link/Rect[491 510 505 518]/Border[0 0 0]/H/N>> endobj 30449 0 obj <>/P 6717 0 R/Type/Annot/A 30737 0 R/Subtype/Link/Rect[507 510 519 518]/Border[0 0 0]/H/N>> endobj 30450 0 obj <>/P 6717 0 R/Type/Annot/A 30734 0 R/Subtype/Link/Rect[397 500 409 508]/Border[0 0 0]/H/N>> endobj 30451 0 obj <>/P 6717 0 R/Type/Annot/A 30730 0 R/Subtype/Link/Rect[415 490 425 498]/Border[0 0 0]/H/N>> endobj 30452 0 obj <>/P 6717 0 R/Type/Annot/A 43261 0 R/Subtype/Link/Rect[427 490 439 499]/Border[0 0 0]/H/N>> endobj 30453 0 obj <>/P 6717 0 R/Type/Annot/A 30723 0 R/Subtype/Link/Rect[440 490 450 498]/Border[0 0 0]/H/N>> endobj 30454 0 obj <>/P 6717 0 R/Type/Annot/A 30719 0 R/Subtype/Link/Rect[452 490 462 498]/Border[0 0 0]/H/N>> endobj 30455 0 obj <>/P 6717 0 R/Type/Annot/A 30715 0 R/Subtype/Link/Rect[464 490 478 498]/Border[0 0 0]/H/N>> endobj 30456 0 obj <>/P 6717 0 R/Type/Annot/A 30711 0 R/Subtype/Link/Rect[480 490 497 499]/Border[0 0 0]/H/N>> endobj 30457 0 obj <>/P 6717 0 R/Type/Annot/A 30707 0 R/Subtype/Link/Rect[497 490 509 498]/Border[0 0 0]/H/N>> endobj 30458 0 obj <>/P 6717 0 R/Type/Annot/A 30702 0 R/Subtype/Link/Rect[415 480 423 488]/Border[0 0 0]/H/N>> endobj 30459 0 obj <>/P 6717 0 R/Type/Annot/A 30698 0 R/Subtype/Link/Rect[395 470 412 479]/Border[0 0 0]/H/N>> endobj 30460 0 obj <>/P 6717 0 R/Type/Annot/A 30694 0 R/Subtype/Link/Rect[412 470 426 478]/Border[0 0 0]/H/N>> endobj 30461 0 obj <>/P 6717 0 R/Type/Annot/A 30690 0 R/Subtype/Link/Rect[428 470 442 478]/Border[0 0 0]/H/N>> endobj 30462 0 obj <>/P 6717 0 R/Type/Annot/A 42877 0 R/Subtype/Link/Rect[444 470 458 478]/Border[0 0 0]/H/N>> endobj 30463 0 obj <>/P 6717 0 R/Type/Annot/A 30685 0 R/Subtype/Link/Rect[460 470 474 478]/Border[0 0 0]/H/N>> endobj 30464 0 obj <>/P 6717 0 R/Type/Annot/A 30682 0 R/Subtype/Link/Rect[476 470 488 478]/Border[0 0 0]/H/N>> endobj 30465 0 obj <>/P 6717 0 R/Type/Annot/A 30680 0 R/Subtype/Link/Rect[397 460 411 468]/Border[0 0 0]/H/N>> endobj 30466 0 obj <>/P 6717 0 R/Type/Annot/A 30677 0 R/Subtype/Link/Rect[413 460 425 468]/Border[0 0 0]/H/N>> endobj 30467 0 obj <>/P 6717 0 R/Type/Annot/A 30673 0 R/Subtype/Link/Rect[387 450 401 458]/Border[0 0 0]/H/N>> endobj 30468 0 obj <>/P 6717 0 R/Type/Annot/A 30669 0 R/Subtype/Link/Rect[403 450 415 458]/Border[0 0 0]/H/N>> endobj 30469 0 obj <>/P 6717 0 R/Type/Annot/A 30666 0 R/Subtype/Link/Rect[392 440 404 448]/Border[0 0 0]/H/N>> endobj 30470 0 obj <>/P 6717 0 R/Type/Annot/A 30704 0 R/Subtype/Link/Rect[392 430 406 438]/Border[0 0 0]/H/N>> endobj 30471 0 obj <>/P 6717 0 R/Type/Annot/A 30661 0 R/Subtype/Link/Rect[408 430 420 438]/Border[0 0 0]/H/N>> endobj 30472 0 obj <>/P 6717 0 R/Type/Annot/A 30659 0 R/Subtype/Link/Rect[411 420 425 428]/Border[0 0 0]/H/N>> endobj 30473 0 obj <>/P 6717 0 R/Type/Annot/A 30657 0 R/Subtype/Link/Rect[427 420 439 428]/Border[0 0 0]/H/N>> endobj 30474 0 obj <>/P 6717 0 R/Type/Annot/A 30653 0 R/Subtype/Link/Rect[410 410 422 418]/Border[0 0 0]/H/N>> endobj 30475 0 obj <>/P 6717 0 R/Type/Annot/A 30650 0 R/Subtype/Link/Rect[387 400 395 409]/Border[0 0 0]/H/N>> endobj 30476 0 obj <>/P 6717 0 R/Type/Annot/A 30886 0 R/Subtype/Link/Rect[396 400 402 408]/Border[0 0 0]/H/N>> endobj 30477 0 obj <>/P 6717 0 R/Type/Annot/A 30882 0 R/Subtype/Link/Rect[404 400 414 408]/Border[0 0 0]/H/N>> endobj 30478 0 obj <>/P 6717 0 R/Type/Annot/A 30878 0 R/Subtype/Link/Rect[416 400 433 409]/Border[0 0 0]/H/N>> endobj 30479 0 obj <>/P 6717 0 R/Type/Annot/A 30874 0 R/Subtype/Link/Rect[433 400 447 408]/Border[0 0 0]/H/N>> endobj 30480 0 obj <>/P 6717 0 R/Type/Annot/A 30870 0 R/Subtype/Link/Rect[449 400 463 408]/Border[0 0 0]/H/N>> endobj 30481 0 obj <>/P 6717 0 R/Type/Annot/A 30865 0 R/Subtype/Link/Rect[465 400 479 408]/Border[0 0 0]/H/N>> endobj 30482 0 obj <>/P 6717 0 R/Type/Annot/A 42109 0 R/Subtype/Link/Rect[481 400 495 408]/Border[0 0 0]/H/N>> endobj 30483 0 obj <>/P 6717 0 R/Type/Annot/A 30857 0 R/Subtype/Link/Rect[497 400 511 408]/Border[0 0 0]/H/N>> endobj 30484 0 obj <>/P 6717 0 R/Type/Annot/A 30852 0 R/Subtype/Link/Rect[359 390 373 398]/Border[0 0 0]/H/N>> endobj 30485 0 obj <>/P 6717 0 R/Type/Annot/A 30847 0 R/Subtype/Link/Rect[375 390 389 398]/Border[0 0 0]/H/N>> endobj 30486 0 obj <>/P 6717 0 R/Type/Annot/A 30843 0 R/Subtype/Link/Rect[391 390 405 398]/Border[0 0 0]/H/N>> endobj 30487 0 obj <>/P 6717 0 R/Type/Annot/A 30838 0 R/Subtype/Link/Rect[407 390 421 398]/Border[0 0 0]/H/N>> endobj 30488 0 obj <>/P 6717 0 R/Type/Annot/A 30834 0 R/Subtype/Link/Rect[423 390 437 398]/Border[0 0 0]/H/N>> endobj 30489 0 obj <>/P 6717 0 R/Type/Annot/A 30830 0 R/Subtype/Link/Rect[439 390 453 398]/Border[0 0 0]/H/N>> endobj 30490 0 obj <>/P 6717 0 R/Type/Annot/A 30826 0 R/Subtype/Link/Rect[455 390 467 398]/Border[0 0 0]/H/N>> endobj 30491 0 obj <>/P 6717 0 R/Type/Annot/A 30822 0 R/Subtype/Link/Rect[400 380 406 388]/Border[0 0 0]/H/N>> endobj 30492 0 obj <>/P 6717 0 R/Type/Annot/A 30818 0 R/Subtype/Link/Rect[408 380 418 388]/Border[0 0 0]/H/N>> endobj 30493 0 obj <>/P 6717 0 R/Type/Annot/A 30814 0 R/Subtype/Link/Rect[420 380 430 388]/Border[0 0 0]/H/N>> endobj 30494 0 obj <>/P 6717 0 R/Type/Annot/A 30809 0 R/Subtype/Link/Rect[432 380 445 389]/Border[0 0 0]/H/N>> endobj 30495 0 obj <>/P 6717 0 R/Type/Annot/A 30805 0 R/Subtype/Link/Rect[445 380 455 388]/Border[0 0 0]/H/N>> endobj 30496 0 obj <>/P 6717 0 R/Type/Annot/A 30801 0 R/Subtype/Link/Rect[457 380 470 389]/Border[0 0 0]/H/N>> endobj 30497 0 obj <>/P 6717 0 R/Type/Annot/A 30797 0 R/Subtype/Link/Rect[471 380 481 388]/Border[0 0 0]/H/N>> endobj 30498 0 obj <>/P 6717 0 R/Type/Annot/A 30793 0 R/Subtype/Link/Rect[483 380 493 388]/Border[0 0 0]/H/N>> endobj 30499 0 obj <>/P 6717 0 R/Type/Annot/A 30789 0 R/Subtype/Link/Rect[495 380 505 388]/Border[0 0 0]/H/N>> endobj 30500 0 obj <>/P 6717 0 R/Type/Annot/A 30786 0 R/Subtype/Link/Rect[359 370 373 378]/Border[0 0 0]/H/N>> endobj 30501 0 obj <>/P 6717 0 R/Type/Annot/A 41309 0 R/Subtype/Link/Rect[375 370 389 378]/Border[0 0 0]/H/N>> endobj 30502 0 obj <>/P 6717 0 R/Type/Annot/A 30810 0 R/Subtype/Link/Rect[391 370 405 378]/Border[0 0 0]/H/N>> endobj 30503 0 obj <>/P 6717 0 R/Type/Annot/A 41250 0 R/Subtype/Link/Rect[407 370 421 378]/Border[0 0 0]/H/N>> endobj 30504 0 obj <>/P 6717 0 R/Type/Annot/A 30771 0 R/Subtype/Link/Rect[423 370 437 378]/Border[0 0 0]/H/N>> endobj 30505 0 obj <>/P 6717 0 R/Type/Annot/A 30767 0 R/Subtype/Link/Rect[439 370 453 378]/Border[0 0 0]/H/N>> endobj 30506 0 obj <>/P 6717 0 R/Type/Annot/A 30763 0 R/Subtype/Link/Rect[455 370 469 378]/Border[0 0 0]/H/N>> endobj 30507 0 obj <>/P 6717 0 R/Type/Annot/A 41122 0 R/Subtype/Link/Rect[471 370 485 378]/Border[0 0 0]/H/N>> endobj 30508 0 obj <>/P 6717 0 R/Type/Annot/A 30756 0 R/Subtype/Link/Rect[487 370 501 378]/Border[0 0 0]/H/N>> endobj 30509 0 obj <>/P 6717 0 R/Type/Annot/A 30752 0 R/Subtype/Link/Rect[503 370 517 378]/Border[0 0 0]/H/N>> endobj 30510 0 obj <>/P 6717 0 R/Type/Annot/A 30748 0 R/Subtype/Link/Rect[359 360 375 369]/Border[0 0 0]/H/N>> endobj 30511 0 obj <>/P 6717 0 R/Type/Annot/A 30744 0 R/Subtype/Link/Rect[376 360 390 368]/Border[0 0 0]/H/N>> endobj 30512 0 obj <>/P 6717 0 R/Type/Annot/A 30740 0 R/Subtype/Link/Rect[392 360 406 368]/Border[0 0 0]/H/N>> endobj 30513 0 obj <>/P 6717 0 R/Type/Annot/A 40106 0 R/Subtype/Link/Rect[408 360 422 368]/Border[0 0 0]/H/N>> endobj 30514 0 obj <>/P 6717 0 R/Type/Annot/A 30733 0 R/Subtype/Link/Rect[424 360 438 368]/Border[0 0 0]/H/N>> endobj 30515 0 obj <>/P 6717 0 R/Type/Annot/A 30729 0 R/Subtype/Link/Rect[440 360 454 368]/Border[0 0 0]/H/N>> endobj 30516 0 obj <>/P 6717 0 R/Type/Annot/A 30726 0 R/Subtype/Link/Rect[456 360 470 368]/Border[0 0 0]/H/N>> endobj 30517 0 obj <>/P 6717 0 R/Type/Annot/A 30721 0 R/Subtype/Link/Rect[472 360 484 368]/Border[0 0 0]/H/N>> endobj 30518 0 obj <>/P 6717 0 R/Type/Annot/A 30717 0 R/Subtype/Link/Rect[397 350 405 358]/Border[0 0 0]/H/N>> endobj 30519 0 obj <>/P 6717 0 R/Type/Annot/A 30712 0 R/Subtype/Link/Rect[400 340 413 349]/Border[0 0 0]/H/N>> endobj 30520 0 obj <>/P 6717 0 R/Type/Annot/A 30708 0 R/Subtype/Link/Rect[413 340 423 348]/Border[0 0 0]/H/N>> endobj 30521 0 obj <>/P 6717 0 R/Type/Annot/A 30703 0 R/Subtype/Link/Rect[425 340 442 349]/Border[0 0 0]/H/N>> endobj 30522 0 obj <>/P 6717 0 R/Type/Annot/A 30699 0 R/Subtype/Link/Rect[443 340 457 348]/Border[0 0 0]/H/N>> endobj 30523 0 obj <>/P 6717 0 R/Type/Annot/A 30695 0 R/Subtype/Link/Rect[459 340 473 348]/Border[0 0 0]/H/N>> endobj 30524 0 obj <>/P 6717 0 R/Type/Annot/A 30691 0 R/Subtype/Link/Rect[475 340 489 348]/Border[0 0 0]/H/N>> endobj 30525 0 obj <>/P 6717 0 R/Type/Annot/A 30688 0 R/Subtype/Link/Rect[491 340 505 348]/Border[0 0 0]/H/N>> endobj 30526 0 obj <>/P 6717 0 R/Type/Annot/A 30686 0 R/Subtype/Link/Rect[359 330 373 339]/Border[0 0 0]/H/N>> endobj 30527 0 obj <>/P 6717 0 R/Type/Annot/A 30683 0 R/Subtype/Link/Rect[375 330 387 338]/Border[0 0 0]/H/N>> endobj 30528 0 obj <>/P 6717 0 R/Type/Annot/A 35880 0 R/Subtype/Link/Rect[397 320 405 329]/Border[0 0 0]/H/N>> endobj 30529 0 obj <>/P 6717 0 R/Type/Annot/A 30678 0 R/Subtype/Link/Rect[415 310 427 319]/Border[0 0 0]/H/N>> endobj 30530 0 obj <>/P 6717 0 R/Type/Annot/A 30674 0 R/Subtype/Link/Rect[450 262 459 271]/Border[0 0 0]/H/N>> endobj 30531 0 obj <>/P 6717 0 R/Type/Annot/A 30670 0 R/Subtype/Link/Rect[459 262 465 271]/Border[0 0 0]/H/N>> endobj 30532 0 obj <>/P 6717 0 R/Type/Annot/A 30667 0 R/Subtype/Link/Rect[467 262 477 271]/Border[0 0 0]/H/N>> endobj 30533 0 obj <>/P 6717 0 R/Type/Annot/A 30664 0 R/Subtype/Link/Rect[479 262 492 271]/Border[0 0 0]/H/N>> endobj 30534 0 obj <>/P 6717 0 R/Type/Annot/A 30675 0 R/Subtype/Link/Rect[493 262 503 271]/Border[0 0 0]/H/N>> endobj 30535 0 obj <>/P 6717 0 R/Type/Annot/A 30671 0 R/Subtype/Link/Rect[359 252 371 261]/Border[0 0 0]/H/N>> endobj 30536 0 obj <>/P 6717 0 R/Type/Annot/A 30656 0 R/Subtype/Link/Rect[372 252 382 261]/Border[0 0 0]/H/N>> endobj 30537 0 obj <>/P 6717 0 R/Type/Annot/A 30652 0 R/Subtype/Link/Rect[384 252 397 261]/Border[0 0 0]/H/N>> endobj 30538 0 obj <>/P 6717 0 R/Type/Annot/A 30649 0 R/Subtype/Link/Rect[397 252 407 261]/Border[0 0 0]/H/N>> endobj 30539 0 obj <>/P 6717 0 R/Type/Annot/A 30879 0 R/Subtype/Link/Rect[409 252 419 261]/Border[0 0 0]/H/N>> endobj 30540 0 obj <>/P 6717 0 R/Type/Annot/A 30655 0 R/Subtype/Link/Rect[421 252 431 261]/Border[0 0 0]/H/N>> endobj 30541 0 obj <>/P 6717 0 R/Type/Annot/A 30869 0 R/Subtype/Link/Rect[433 252 443 261]/Border[0 0 0]/H/N>> endobj 30542 0 obj <>/P 6717 0 R/Type/Annot/A 30864 0 R/Subtype/Link/Rect[445 252 455 261]/Border[0 0 0]/H/N>> endobj 30543 0 obj <>/P 6717 0 R/Type/Annot/A 30860 0 R/Subtype/Link/Rect[457 252 467 261]/Border[0 0 0]/H/N>> endobj 30544 0 obj <>/P 6717 0 R/Type/Annot/A 30855 0 R/Subtype/Link/Rect[469 252 479 261]/Border[0 0 0]/H/N>> endobj 30545 0 obj <>/P 6717 0 R/Type/Annot/A 30986 0 R/Subtype/Link/Rect[481 252 491 261]/Border[0 0 0]/H/N>> endobj 30546 0 obj <>/P 6717 0 R/Type/Annot/A 30983 0 R/Subtype/Link/Rect[493 252 503 261]/Border[0 0 0]/H/N>> endobj 30547 0 obj <>/P 6717 0 R/Type/Annot/A 30982 0 R/Subtype/Link/Rect[359 242 371 251]/Border[0 0 0]/H/N>> endobj 30548 0 obj <>/P 6717 0 R/Type/Annot/A 30981 0 R/Subtype/Link/Rect[372 242 382 251]/Border[0 0 0]/H/N>> endobj 30549 0 obj <>/P 6717 0 R/Type/Annot/A 30980 0 R/Subtype/Link/Rect[384 242 398 251]/Border[0 0 0]/H/N>> endobj 30550 0 obj <>/P 6717 0 R/Type/Annot/A 30979 0 R/Subtype/Link/Rect[400 242 417 251]/Border[0 0 0]/H/N>> endobj 30551 0 obj <>/P 6717 0 R/Type/Annot/A 30978 0 R/Subtype/Link/Rect[417 242 430 251]/Border[0 0 0]/H/N>> endobj 30552 0 obj <>/P 6717 0 R/Type/Annot/A 30977 0 R/Subtype/Link/Rect[432 242 446 251]/Border[0 0 0]/H/N>> endobj 30553 0 obj <>/P 6717 0 R/Type/Annot/A 30976 0 R/Subtype/Link/Rect[448 242 462 251]/Border[0 0 0]/H/N>> endobj 30554 0 obj <>/P 6717 0 R/Type/Annot/A 30975 0 R/Subtype/Link/Rect[464 242 478 251]/Border[0 0 0]/H/N>> endobj 30555 0 obj <>/P 6717 0 R/Type/Annot/A 30974 0 R/Subtype/Link/Rect[480 242 494 251]/Border[0 0 0]/H/N>> endobj 30556 0 obj <>/P 6717 0 R/Type/Annot/A 30973 0 R/Subtype/Link/Rect[496 242 510 251]/Border[0 0 0]/H/N>> endobj 30557 0 obj <>/P 6717 0 R/Type/Annot/A 30972 0 R/Subtype/Link/Rect[359 232 373 241]/Border[0 0 0]/H/N>> endobj 30558 0 obj <>/P 6717 0 R/Type/Annot/A 30970 0 R/Subtype/Link/Rect[375 232 389 241]/Border[0 0 0]/H/N>> endobj 30559 0 obj <>/P 6717 0 R/Type/Annot/A 30968 0 R/Subtype/Link/Rect[391 232 405 241]/Border[0 0 0]/H/N>> endobj 30560 0 obj <>/P 6717 0 R/Type/Annot/A 30965 0 R/Subtype/Link/Rect[407 232 423 241]/Border[0 0 0]/H/N>> endobj 30561 0 obj <>/P 6717 0 R/Type/Annot/A 30963 0 R/Subtype/Link/Rect[424 232 438 241]/Border[0 0 0]/H/N>> endobj 30562 0 obj <>/P 6717 0 R/Type/Annot/A 30961 0 R/Subtype/Link/Rect[440 232 457 241]/Border[0 0 0]/H/N>> endobj 30563 0 obj <>/P 6717 0 R/Type/Annot/A 30959 0 R/Subtype/Link/Rect[457 232 471 241]/Border[0 0 0]/H/N>> endobj 30564 0 obj <>/P 6717 0 R/Type/Annot/A 30957 0 R/Subtype/Link/Rect[473 232 487 241]/Border[0 0 0]/H/N>> endobj 30565 0 obj <>/P 6717 0 R/Type/Annot/A 30955 0 R/Subtype/Link/Rect[489 232 503 241]/Border[0 0 0]/H/N>> endobj 30566 0 obj <>/P 6717 0 R/Type/Annot/A 30953 0 R/Subtype/Link/Rect[359 222 375 231]/Border[0 0 0]/H/N>> endobj 30567 0 obj <>/P 6717 0 R/Type/Annot/A 30951 0 R/Subtype/Link/Rect[375 222 389 231]/Border[0 0 0]/H/N>> endobj 30568 0 obj <>/P 6717 0 R/Type/Annot/A 30949 0 R/Subtype/Link/Rect[391 222 405 231]/Border[0 0 0]/H/N>> endobj 30569 0 obj <>/P 6717 0 R/Type/Annot/A 30947 0 R/Subtype/Link/Rect[407 222 421 231]/Border[0 0 0]/H/N>> endobj 30570 0 obj <>/P 6717 0 R/Type/Annot/A 30945 0 R/Subtype/Link/Rect[423 222 437 231]/Border[0 0 0]/H/N>> endobj 30571 0 obj <>/P 6717 0 R/Type/Annot/A 30943 0 R/Subtype/Link/Rect[439 222 456 231]/Border[0 0 0]/H/N>> endobj 30572 0 obj <>/P 6717 0 R/Type/Annot/A 30941 0 R/Subtype/Link/Rect[457 222 471 231]/Border[0 0 0]/H/N>> endobj 30573 0 obj <>/P 6717 0 R/Type/Annot/A 30939 0 R/Subtype/Link/Rect[473 222 487 231]/Border[0 0 0]/H/N>> endobj 30574 0 obj <>/P 6717 0 R/Type/Annot/A 30937 0 R/Subtype/Link/Rect[489 222 503 231]/Border[0 0 0]/H/N>> endobj 30575 0 obj <>/P 6717 0 R/Type/Annot/A 30935 0 R/Subtype/Link/Rect[505 222 519 231]/Border[0 0 0]/H/N>> endobj 30576 0 obj <>/P 6717 0 R/Type/Annot/A 30933 0 R/Subtype/Link/Rect[359 212 373 221]/Border[0 0 0]/H/N>> endobj 30577 0 obj <>/P 6717 0 R/Type/Annot/A 30931 0 R/Subtype/Link/Rect[375 212 391 221]/Border[0 0 0]/H/N>> endobj 30578 0 obj <>/P 6717 0 R/Type/Annot/A 30929 0 R/Subtype/Link/Rect[392 212 406 221]/Border[0 0 0]/H/N>> endobj 30579 0 obj <>/P 6717 0 R/Type/Annot/A 30927 0 R/Subtype/Link/Rect[408 212 425 221]/Border[0 0 0]/H/N>> endobj 30580 0 obj <>/P 6717 0 R/Type/Annot/A 30925 0 R/Subtype/Link/Rect[425 212 439 221]/Border[0 0 0]/H/N>> endobj 30581 0 obj <>/P 6717 0 R/Type/Annot/A 30923 0 R/Subtype/Link/Rect[441 212 458 221]/Border[0 0 0]/H/N>> endobj 30582 0 obj <>/P 6717 0 R/Type/Annot/A 30921 0 R/Subtype/Link/Rect[459 212 473 221]/Border[0 0 0]/H/N>> endobj 30583 0 obj <>/P 6717 0 R/Type/Annot/A 30919 0 R/Subtype/Link/Rect[475 212 489 221]/Border[0 0 0]/H/N>> endobj 30584 0 obj <>/P 6717 0 R/Type/Annot/A 30917 0 R/Subtype/Link/Rect[491 212 505 221]/Border[0 0 0]/H/N>> endobj 30585 0 obj <>/P 6717 0 R/Type/Annot/A 30915 0 R/Subtype/Link/Rect[359 202 375 211]/Border[0 0 0]/H/N>> endobj 30586 0 obj <>/P 6717 0 R/Type/Annot/A 30913 0 R/Subtype/Link/Rect[376 202 390 211]/Border[0 0 0]/H/N>> endobj 30587 0 obj <>/P 6717 0 R/Type/Annot/A 30911 0 R/Subtype/Link/Rect[392 202 406 211]/Border[0 0 0]/H/N>> endobj 30588 0 obj <>/P 6717 0 R/Type/Annot/A 30909 0 R/Subtype/Link/Rect[408 202 422 211]/Border[0 0 0]/H/N>> endobj 30589 0 obj <>/P 6717 0 R/Type/Annot/A 30907 0 R/Subtype/Link/Rect[424 202 438 211]/Border[0 0 0]/H/N>> endobj 30590 0 obj <>/P 6717 0 R/Type/Annot/A 30905 0 R/Subtype/Link/Rect[440 202 454 211]/Border[0 0 0]/H/N>> endobj 30591 0 obj <>/P 6717 0 R/Type/Annot/A 30903 0 R/Subtype/Link/Rect[456 202 470 211]/Border[0 0 0]/H/N>> endobj 30592 0 obj <>/P 6717 0 R/Type/Annot/A 30901 0 R/Subtype/Link/Rect[472 202 486 211]/Border[0 0 0]/H/N>> endobj 30593 0 obj <>/P 6717 0 R/Type/Annot/A 30899 0 R/Subtype/Link/Rect[488 202 502 211]/Border[0 0 0]/H/N>> endobj 30594 0 obj <>/P 6717 0 R/Type/Annot/A 30897 0 R/Subtype/Link/Rect[504 202 518 211]/Border[0 0 0]/H/N>> endobj 30595 0 obj <>/P 6717 0 R/Type/Annot/A 30895 0 R/Subtype/Link/Rect[359 192 373 201]/Border[0 0 0]/H/N>> endobj 30596 0 obj <>/P 6717 0 R/Type/Annot/A 30892 0 R/Subtype/Link/Rect[375 192 391 201]/Border[0 0 0]/H/N>> endobj 30597 0 obj <>/P 6717 0 R/Type/Annot/A 30889 0 R/Subtype/Link/Rect[392 192 406 201]/Border[0 0 0]/H/N>> endobj 30598 0 obj <>/P 6717 0 R/Type/Annot/A 30885 0 R/Subtype/Link/Rect[408 192 422 201]/Border[0 0 0]/H/N>> endobj 30599 0 obj <>/P 6717 0 R/Type/Annot/A 30881 0 R/Subtype/Link/Rect[424 192 438 201]/Border[0 0 0]/H/N>> endobj 30600 0 obj <>/P 6717 0 R/Type/Annot/A 30877 0 R/Subtype/Link/Rect[440 192 454 201]/Border[0 0 0]/H/N>> endobj 30601 0 obj <>/P 6717 0 R/Type/Annot/A 30873 0 R/Subtype/Link/Rect[456 192 470 201]/Border[0 0 0]/H/N>> endobj 30602 0 obj <>/P 6717 0 R/Type/Annot/A 30868 0 R/Subtype/Link/Rect[472 192 486 201]/Border[0 0 0]/H/N>> endobj 30603 0 obj <>/P 6717 0 R/Type/Annot/A 30863 0 R/Subtype/Link/Rect[359 182 375 191]/Border[0 0 0]/H/N>> endobj 30604 0 obj <>/P 6717 0 R/Type/Annot/A 30859 0 R/Subtype/Link/Rect[376 182 390 191]/Border[0 0 0]/H/N>> endobj 30605 0 obj <>/P 6717 0 R/Type/Annot/A 30856 0 R/Subtype/Link/Rect[392 182 409 191]/Border[0 0 0]/H/N>> endobj 30606 0 obj <>/P 6717 0 R/Type/Annot/A 30851 0 R/Subtype/Link/Rect[409 182 423 191]/Border[0 0 0]/H/N>> endobj 30607 0 obj <>/P 6717 0 R/Type/Annot/A 30848 0 R/Subtype/Link/Rect[425 182 439 191]/Border[0 0 0]/H/N>> endobj 30608 0 obj <>/P 6717 0 R/Type/Annot/A 30844 0 R/Subtype/Link/Rect[441 182 455 191]/Border[0 0 0]/H/N>> endobj 30609 0 obj <>/P 6717 0 R/Type/Annot/A 30840 0 R/Subtype/Link/Rect[457 182 471 191]/Border[0 0 0]/H/N>> endobj 30610 0 obj <>/P 6717 0 R/Type/Annot/A 30836 0 R/Subtype/Link/Rect[473 182 487 191]/Border[0 0 0]/H/N>> endobj 30611 0 obj <>/P 6717 0 R/Type/Annot/A 30832 0 R/Subtype/Link/Rect[489 182 503 191]/Border[0 0 0]/H/N>> endobj 30612 0 obj <>/P 6717 0 R/Type/Annot/A 30828 0 R/Subtype/Link/Rect[359 172 373 181]/Border[0 0 0]/H/N>> endobj 30613 0 obj <>/P 6717 0 R/Type/Annot/A 30824 0 R/Subtype/Link/Rect[375 172 389 181]/Border[0 0 0]/H/N>> endobj 30614 0 obj <>/P 6717 0 R/Type/Annot/A 30820 0 R/Subtype/Link/Rect[391 172 405 181]/Border[0 0 0]/H/N>> endobj 30615 0 obj <>/P 6717 0 R/Type/Annot/A 30816 0 R/Subtype/Link/Rect[407 172 421 181]/Border[0 0 0]/H/N>> endobj 30616 0 obj <>/P 6717 0 R/Type/Annot/A 30812 0 R/Subtype/Link/Rect[423 172 437 181]/Border[0 0 0]/H/N>> endobj 30617 0 obj <>/P 6717 0 R/Type/Annot/A 30807 0 R/Subtype/Link/Rect[439 172 453 181]/Border[0 0 0]/H/N>> endobj 30618 0 obj <>/P 6717 0 R/Type/Annot/A 30803 0 R/Subtype/Link/Rect[455 172 469 181]/Border[0 0 0]/H/N>> endobj 30619 0 obj <>/P 6717 0 R/Type/Annot/A 30799 0 R/Subtype/Link/Rect[471 172 487 181]/Border[0 0 0]/H/N>> endobj 30620 0 obj <>/P 6717 0 R/Type/Annot/A 30795 0 R/Subtype/Link/Rect[487 172 501 181]/Border[0 0 0]/H/N>> endobj 30621 0 obj <>/P 6717 0 R/Type/Annot/A 30791 0 R/Subtype/Link/Rect[503 172 517 181]/Border[0 0 0]/H/N>> endobj 30622 0 obj <>/P 6717 0 R/Type/Annot/A 30966 0 R/Subtype/Link/Rect[359 162 373 171]/Border[0 0 0]/H/N>> endobj 30623 0 obj <>/P 6717 0 R/Type/Annot/A 30785 0 R/Subtype/Link/Rect[375 162 389 171]/Border[0 0 0]/H/N>> endobj 30624 0 obj <>/P 6717 0 R/Type/Annot/A 30782 0 R/Subtype/Link/Rect[391 162 407 171]/Border[0 0 0]/H/N>> endobj 30625 0 obj <>/P 6717 0 R/Type/Annot/A 30779 0 R/Subtype/Link/Rect[408 162 422 171]/Border[0 0 0]/H/N>> endobj 30626 0 obj <>/P 6717 0 R/Type/Annot/A 30777 0 R/Subtype/Link/Rect[424 162 441 171]/Border[0 0 0]/H/N>> endobj 30627 0 obj <>/P 6717 0 R/Type/Annot/A 30774 0 R/Subtype/Link/Rect[441 162 455 171]/Border[0 0 0]/H/N>> endobj 30628 0 obj <>/P 6717 0 R/Type/Annot/A 30770 0 R/Subtype/Link/Rect[457 162 471 171]/Border[0 0 0]/H/N>> endobj 30629 0 obj <>/P 6717 0 R/Type/Annot/A 30766 0 R/Subtype/Link/Rect[473 162 487 171]/Border[0 0 0]/H/N>> endobj 30630 0 obj <>/P 6717 0 R/Type/Annot/A 30762 0 R/Subtype/Link/Rect[359 152 375 161]/Border[0 0 0]/H/N>> endobj 30631 0 obj <>/P 6717 0 R/Type/Annot/A 30759 0 R/Subtype/Link/Rect[376 152 390 161]/Border[0 0 0]/H/N>> endobj 30632 0 obj <>/P 6717 0 R/Type/Annot/A 30755 0 R/Subtype/Link/Rect[392 152 409 161]/Border[0 0 0]/H/N>> endobj 30633 0 obj <>/P 6717 0 R/Type/Annot/A 30751 0 R/Subtype/Link/Rect[409 152 423 161]/Border[0 0 0]/H/N>> endobj 30634 0 obj <>/P 6717 0 R/Type/Annot/A 30747 0 R/Subtype/Link/Rect[425 152 439 161]/Border[0 0 0]/H/N>> endobj 30635 0 obj <>/P 6717 0 R/Type/Annot/A 30743 0 R/Subtype/Link/Rect[441 152 455 161]/Border[0 0 0]/H/N>> endobj 30636 0 obj <>/P 6717 0 R/Type/Annot/A 30739 0 R/Subtype/Link/Rect[457 152 471 161]/Border[0 0 0]/H/N>> endobj 30637 0 obj <>/P 6717 0 R/Type/Annot/A 30736 0 R/Subtype/Link/Rect[473 152 487 161]/Border[0 0 0]/H/N>> endobj 30638 0 obj <>/P 6717 0 R/Type/Annot/A 30732 0 R/Subtype/Link/Rect[489 152 503 161]/Border[0 0 0]/H/N>> endobj 30639 0 obj <>/P 6717 0 R/Type/Annot/A 30728 0 R/Subtype/Link/Rect[505 152 519 161]/Border[0 0 0]/H/N>> endobj 30640 0 obj <>/P 6717 0 R/Type/Annot/A 30725 0 R/Subtype/Link/Rect[359 142 373 151]/Border[0 0 0]/H/N>> endobj 30641 0 obj <>/P 6717 0 R/Type/Annot/A 30722 0 R/Subtype/Link/Rect[375 142 389 151]/Border[0 0 0]/H/N>> endobj 30642 0 obj <>/P 6717 0 R/Type/Annot/A 30718 0 R/Subtype/Link/Rect[391 142 407 151]/Border[0 0 0]/H/N>> endobj 30643 0 obj <>/P 6717 0 R/Type/Annot/A 30714 0 R/Subtype/Link/Rect[408 142 420 151]/Border[0 0 0]/H/N>> endobj 30644 0 obj <>/P 6717 0 R/Type/Annot/A 30710 0 R/Subtype/Link/Rect[386 298 403 307]/Border[0 0 0]/H/N>> endobj 30645 0 obj <>/P 6717 0 R/Type/Annot/A 30706 0 R/Subtype/Link/Rect[379 260 389 269]/Border[0 0 0]/H/N>> endobj 30646 0 obj <>/P 6717 0 R/Type/Annot/A 30701 0 R/Subtype/Link/Rect[393 260 408 269]/Border[0 0 0]/H/N>> endobj 30647 0 obj <>/P 6717 0 R/Type/Annot/A 30697 0 R/Subtype/Link/Rect[410 260 425 269]/Border[0 0 0]/H/N>> endobj 30648 0 obj <>/P 6717 0 R/Type/Annot/A 30693 0 R/Subtype/Link/Rect[429 260 449 269]/Border[0 0 0]/H/N>> endobj 30649 0 obj <> endobj 30650 0 obj <> endobj 30651 0 obj <> endobj 30652 0 obj <> endobj 30653 0 obj <> endobj 30654 0 obj <> endobj 30655 0 obj <> endobj 30656 0 obj <> endobj 30657 0 obj <> endobj 30658 0 obj <> endobj 30659 0 obj <> endobj 30660 0 obj <> endobj 30661 0 obj <> endobj 30662 0 obj <> endobj 30663 0 obj <> endobj 30664 0 obj <> endobj 30665 0 obj <> endobj 30666 0 obj <> endobj 30667 0 obj <> endobj 30668 0 obj <> endobj 30669 0 obj <> endobj 30670 0 obj <> endobj 30671 0 obj <> endobj 30672 0 obj <> endobj 30673 0 obj <> endobj 30674 0 obj <> endobj 30675 0 obj <> endobj 30676 0 obj <> endobj 30677 0 obj <> endobj 30678 0 obj <> endobj 30679 0 obj <> endobj 30680 0 obj <> endobj 30681 0 obj <> endobj 30682 0 obj <> endobj 30683 0 obj <> endobj 30684 0 obj <> endobj 30685 0 obj <> endobj 30686 0 obj <> endobj 30687 0 obj <> endobj 30688 0 obj <> endobj 30689 0 obj <> endobj 30690 0 obj <> endobj 30691 0 obj <> endobj 30692 0 obj <> endobj 30693 0 obj <> endobj 30694 0 obj <> endobj 30695 0 obj <> endobj 30696 0 obj <> endobj 30697 0 obj <> endobj 30698 0 obj <> endobj 30699 0 obj <> endobj 30700 0 obj <> endobj 30701 0 obj <> endobj 30702 0 obj <> endobj 30703 0 obj <> endobj 30704 0 obj <> endobj 30705 0 obj <> endobj 30706 0 obj <> endobj 30707 0 obj <> endobj 30708 0 obj <> endobj 30709 0 obj <> endobj 30710 0 obj <> endobj 30711 0 obj <> endobj 30712 0 obj <> endobj 30713 0 obj <> endobj 30714 0 obj <> endobj 30715 0 obj <> endobj 30716 0 obj <> endobj 30717 0 obj <> endobj 30718 0 obj <> endobj 30719 0 obj <> endobj 30720 0 obj <> endobj 30721 0 obj <> endobj 30722 0 obj <> endobj 30723 0 obj <> endobj 30724 0 obj <> endobj 30725 0 obj <> endobj 30726 0 obj <> endobj 30727 0 obj <> endobj 30728 0 obj <> endobj 30729 0 obj <> endobj 30730 0 obj <> endobj 30731 0 obj <> endobj 30732 0 obj <> endobj 30733 0 obj <> endobj 30734 0 obj <> endobj 30735 0 obj <> endobj 30736 0 obj <> endobj 30737 0 obj <> endobj 30738 0 obj <> endobj 30739 0 obj <> endobj 30740 0 obj <> endobj 30741 0 obj <> endobj 30742 0 obj <> endobj 30743 0 obj <> endobj 30744 0 obj <> endobj 30745 0 obj <> endobj 30746 0 obj <> endobj 30747 0 obj <> endobj 30748 0 obj <> endobj 30749 0 obj <> endobj 30750 0 obj <> endobj 30751 0 obj <> endobj 30752 0 obj <> endobj 30753 0 obj <> endobj 30754 0 obj <> endobj 30755 0 obj <> endobj 30756 0 obj <> endobj 30757 0 obj <> endobj 30758 0 obj <> endobj 30759 0 obj <> endobj 30760 0 obj <> endobj 30761 0 obj <> endobj 30762 0 obj <> endobj 30763 0 obj <> endobj 30764 0 obj <> endobj 30765 0 obj <> endobj 30766 0 obj <> endobj 30767 0 obj <> endobj 30768 0 obj <> endobj 30769 0 obj <> endobj 30770 0 obj <> endobj 30771 0 obj <> endobj 30772 0 obj <> endobj 30773 0 obj <> endobj 30774 0 obj <> endobj 30775 0 obj <> endobj 30776 0 obj <> endobj 30777 0 obj <> endobj 30778 0 obj <> endobj 30779 0 obj <> endobj 30780 0 obj <> endobj 30781 0 obj <> endobj 30782 0 obj <> endobj 30783 0 obj <> endobj 30784 0 obj <> endobj 30785 0 obj <> endobj 30786 0 obj <> endobj 30787 0 obj <> endobj 30788 0 obj <> endobj 30789 0 obj <> endobj 30790 0 obj <> endobj 30791 0 obj <> endobj 30792 0 obj <> endobj 30793 0 obj <> endobj 30794 0 obj <> endobj 30795 0 obj <> endobj 30796 0 obj <> endobj 30797 0 obj <> endobj 30798 0 obj <> endobj 30799 0 obj <> endobj 30800 0 obj <> endobj 30801 0 obj <> endobj 30802 0 obj <> endobj 30803 0 obj <> endobj 30804 0 obj <> endobj 30805 0 obj <> endobj 30806 0 obj <> endobj 30807 0 obj <> endobj 30808 0 obj <> endobj 30809 0 obj <> endobj 30810 0 obj <> endobj 30811 0 obj <> endobj 30812 0 obj <> endobj 30813 0 obj <> endobj 30814 0 obj <> endobj 30815 0 obj <> endobj 30816 0 obj <> endobj 30817 0 obj <> endobj 30818 0 obj <> endobj 30819 0 obj <> endobj 30820 0 obj <> endobj 30821 0 obj <> endobj 30822 0 obj <> endobj 30823 0 obj <> endobj 30824 0 obj <> endobj 30825 0 obj <> endobj 30826 0 obj <> endobj 30827 0 obj <> endobj 30828 0 obj <> endobj 30829 0 obj <> endobj 30830 0 obj <> endobj 30831 0 obj <> endobj 30832 0 obj <> endobj 30833 0 obj <> endobj 30834 0 obj <> endobj 30835 0 obj <> endobj 30836 0 obj <> endobj 30837 0 obj <> endobj 30838 0 obj <> endobj 30839 0 obj <> endobj 30840 0 obj <> endobj 30841 0 obj <> endobj 30842 0 obj <> endobj 30843 0 obj <> endobj 30844 0 obj <> endobj 30845 0 obj <> endobj 30846 0 obj <> endobj 30847 0 obj <> endobj 30848 0 obj <> endobj 30849 0 obj <> endobj 30850 0 obj <> endobj 30851 0 obj <> endobj 30852 0 obj <> endobj 30853 0 obj <> endobj 30854 0 obj <> endobj 30855 0 obj <> endobj 30856 0 obj <> endobj 30857 0 obj <> endobj 30858 0 obj <> endobj 30859 0 obj <> endobj 30860 0 obj <> endobj 30861 0 obj <> endobj 30862 0 obj <> endobj 30863 0 obj <> endobj 30864 0 obj <> endobj 30865 0 obj <> endobj 30866 0 obj <> endobj 30867 0 obj <> endobj 30868 0 obj <> endobj 30869 0 obj <> endobj 30870 0 obj <> endobj 30871 0 obj <> endobj 30872 0 obj <> endobj 30873 0 obj <> endobj 30874 0 obj <> endobj 30875 0 obj <> endobj 30876 0 obj <> endobj 30877 0 obj <> endobj 30878 0 obj <> endobj 30879 0 obj <> endobj 30880 0 obj <> endobj 30881 0 obj <> endobj 30882 0 obj <> endobj 30883 0 obj <> endobj 30884 0 obj <> endobj 30885 0 obj <> endobj 30886 0 obj <> endobj 30887 0 obj <> endobj 30888 0 obj <> endobj 30889 0 obj <> endobj 30890 0 obj <> endobj 30891 0 obj <> endobj 30892 0 obj <> endobj 30893 0 obj <> endobj 30894 0 obj <> endobj 30895 0 obj <> endobj 30896 0 obj <> endobj 30897 0 obj <> endobj 30898 0 obj <> endobj 30899 0 obj <> endobj 30900 0 obj <> endobj 30901 0 obj <> endobj 30902 0 obj <> endobj 30903 0 obj <> endobj 30904 0 obj <> endobj 30905 0 obj <> endobj 30906 0 obj <> endobj 30907 0 obj <> endobj 30908 0 obj <> endobj 30909 0 obj <> endobj 30910 0 obj <> endobj 30911 0 obj <> endobj 30912 0 obj <> endobj 30913 0 obj <> endobj 30914 0 obj <> endobj 30915 0 obj <> endobj 30916 0 obj <> endobj 30917 0 obj <> endobj 30918 0 obj <> endobj 30919 0 obj <> endobj 30920 0 obj <> endobj 30921 0 obj <> endobj 30922 0 obj <> endobj 30923 0 obj <> endobj 30924 0 obj <> endobj 30925 0 obj <> endobj 30926 0 obj <> endobj 30927 0 obj <> endobj 30928 0 obj <> endobj 30929 0 obj <> endobj 30930 0 obj <> endobj 30931 0 obj <> endobj 30932 0 obj <> endobj 30933 0 obj <> endobj 30934 0 obj <> endobj 30935 0 obj <> endobj 30936 0 obj <> endobj 30937 0 obj <> endobj 30938 0 obj <> endobj 30939 0 obj <> endobj 30940 0 obj <> endobj 30941 0 obj <> endobj 30942 0 obj <> endobj 30943 0 obj <> endobj 30944 0 obj <> endobj 30945 0 obj <> endobj 30946 0 obj <> endobj 30947 0 obj <> endobj 30948 0 obj <> endobj 30949 0 obj <> endobj 30950 0 obj <> endobj 30951 0 obj <> endobj 30952 0 obj <> endobj 30953 0 obj <> endobj 30954 0 obj <> endobj 30955 0 obj <> endobj 30956 0 obj <> endobj 30957 0 obj <> endobj 30958 0 obj <> endobj 30959 0 obj <> endobj 30960 0 obj <> endobj 30961 0 obj <> endobj 30962 0 obj <> endobj 30963 0 obj <> endobj 30964 0 obj <> endobj 30965 0 obj <> endobj 30966 0 obj <> endobj 30967 0 obj <> endobj 30968 0 obj <> endobj 30969 0 obj <> endobj 30970 0 obj <> endobj 30971 0 obj <> endobj 30972 0 obj <> endobj 30973 0 obj <> endobj 30974 0 obj <> endobj 30975 0 obj <> endobj 30976 0 obj <> endobj 30977 0 obj <> endobj 30978 0 obj <> endobj 30979 0 obj <> endobj 30980 0 obj <> endobj 30981 0 obj <> endobj 30982 0 obj <> endobj 30983 0 obj <> endobj 30984 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30985 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30986 0 obj <> endobj 30987 0 obj <> endobj 30988 0 obj <> endobj 30989 0 obj <> endobj 30990 0 obj <> stream q /X1 Do Q q endstream endobj 30991 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 30992 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 30993 0 obj <> stream H|WkoFN`à ,<G},Xp3>a}'O)s S>g}&g5Bh)Z!R Y=ŐS XBj),=KRK1d YjZKH-Ő%gBj),=KRK1` ,VH-Ő%gBj),!C ,VH-RK1dqZ!{KH-Ő%guBj),=KRK1` ,NH-Ő%guBj),!C ,NH-ŀ%bܳ:!C >Bj),bRK1dqCwO1` ,^H-Ő%gBj),!C ,^H-ŀ%bܳz!C R Y{Z/bܳz!Z!R Y=Őg:2B7iep4N&pXq`|3b(p?qwyy\61#ى;!>/[50.X CUm^wm5\ׇ\ B Hr^ƃ#NCsoߠ|${ox]$ca&$$5&+CrKK·L×'MRoϺ|-=eϜN^:㲷XQ<4x}FS1-qKmtv~z<=L8wpQiN`5]MfiଫCo"\Vɔe/>꽜: VM sK4hARz'׶W.7`e$-,0*c1ېrRhr##tqUkvB:5,pw`-lə$v*{<i6y߫}Qثr#?q%NQP, 6F_ִbvRFIFlkMGHK:z[6TYxETy!J0Wc"?c>J ߂Hr_SC_&G 3/b8gx{y:TxW7Ff3<e[߆^>m~(yz,֏}5#sӭt o>2c4Du8A15}^:~:&Kf5IjjI'6Nҩ_o<ؑI >zj7h|z> mVPT0:Txjں…Z5 JHcæoݲù|1pNu-(nzY1+zR̦;QG6 336Ő ,-ϴV$hEL+" Z1ӊi%V´A+aZ2TJV&heL+2eCE1dq-ZiA0-+hYe-VV{!Kbuo-VV{!Kbuo-VV{!Kbuo-VV{!Kbuŀ%=Ő%hwBS Y{'=Ő%hwBS Y{'=Ő%hwBS Y{'=Ő%hwBS Y{'=Ő%hBS Y\bbX{),AսbX{),AսbX{),AսbX{),AսbXGBS Y\bbZs&,'PYOG3DӝZqVcoBN(U^e_s>,yn./.|.M^E k(&٪}> ʦUt\[m6;]to .<|*9}~\p_H)_UThY(XTkRHt4[u7m7@nxݬ}{^ ^DS2p0y{˻م \@8xuhBݾ_/}sWW7 nfd e;J6yZ2m>U[VVrS9T3^nmA~ׯG7/6*AEefHHpEK%~"utpr7I>ڕt®lͬ+}(Wgշoj.>q%nRgޱUW. :{Y{&n)#6 :7;`c!1 q:Pd]oVtvv1W:zHj7yW"f4MWXQn[` `RpA ŲY< BV`YA ,+R Y)ʄeeBVƲr!+gYB*XV!d4&-NVkeƓ^JX8fNZ,cÄH,]w벴Ap| 6^^~ybu9}Kp2ż~hUiW@#5Tmˆշ0Bng]oϟ\{\ L2.9/ jPO\Ǜ f6R :?oݼAE궹]:vEuGqjx9k|7R P|\!$d;|A5s^[7 0kсRЃB{Ez\)x&jf] :}w^hykwsOvmarkl*a螮q%?QW.Ep}?/> i_`endstream endobj 30994 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 30995 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 30996 0 obj <> endobj 30997 0 obj <> endobj 30998 0 obj <> endobj 30999 0 obj <> endobj 31000 0 obj <> endobj 31001 0 obj <> endobj 31002 0 obj <> stream q /X1 Do Q q endstream endobj 31003 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31004 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31005 0 obj <> stream HWko_q *.м 4,Z-Rԃ'XdEG3Dzԏ?^O?z:_`|dr^řEUmG5VQ Uʮ~^oV^W][U[W?~*|ʨ."Z*ML L_{Ҍ#s]w~QK반}.>`/ɭ=v]7jt]嶫ɲ(,49Zy[.| 7s"Wp}PןZ wIdc~<SǔsNN8F;F(,c8`Ȋn 7O1`Ye2Np{'w̽; =s1s c>}"ODp0>eS}ܧs 3>}.g5Bi)Z!R Y=ŐS XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` Vh-Ő%gBk),C Vh-ցZK1dqZ!{Kh-Ő%guBk),=kZK1` Nh-Ő%guBk),C Nh-ŀ%bܳ:C :Bk),bZK1dqCwO1` ^h-Ő%gBk),C ^h-ŀ%bܳzC R Y{Z/bܳz[Z!R Y=ŐQ^ip^UQXeTqAG^%*AX&|oMu;{q3zZ(SIGIS7V?ԧ߾{~W?Du(Uͮ:RmϿzVUPiuh뇪UjT啠`u | UyΗe^̴lC;G9ȍ7Sݽ8RDVy% t^٥ZfǕ3zZn˶j::A?ɣԞS x b7M~21dͅEnX;M;Y^C.2?8I[z|wC?}ބhwL=46qNB#w&mPN=rT,iyW-֗e6$&'pY$Lkq+Gldy{0ӓ#zX>~UwU!+XL ZiyA3XЊV,hL+Z JiVʴ2A+cZ1\ʙV.hTjE1dq-ZiA0-+hYe-{+bX{!KbB),A -{+bX{!KbB),A ŀ%bX{!KbwB),A -{'bX{!KbwB),A -{'bX{!kQ XB),A -{/bX{!KbB),A -{/bX{!KbB),A>rO1dq-K=Őŵ(s??/WEpU/VUYgʚi!R&L/ʑU ezXVlR'%M.74_3l Ɠ+yЯm;3Youe 7fƹ𱭻6p،G}'gnYva;4Vt91'i׎-/f.{9w_#rrG]Ֆ=TdtzNƅƃyѢ-(,Ѭ >T Y۠ Y2]-7F7,ˣpfQF`b:( Y,j&L"m]O&FFwվߚqpXgn8+G}WSwn[75Z>%:J ir_s1غwk{Z;U*~6~2*Ic'ܶm#CSzZ ܩfQE f1r7ލ=kH)&?K ;OJqxCyωgQl^;M]Uvc7H?bO,ڮ\e9<2Hz<*>{p>/mW<۶nKuՌIkT&r Y&L=(gSj-ubm6mU $~Hql"]=02 %Ò$VNp8MAb\G$*l3[(kA]P&uUW>ݯ/;5:[{wN6{trw60.c]I7.PЩ˔'oj|jG Hӓx KWUb䦆AU q*\cNUvWr%ML<+5dm PE*ueEty+R$%WȞW+Ռӻs%E:}U>/P 1416 0 R/Type/Annot/A 31007 0 R/Subtype/Link/Rect[93.6007004 320.65799 243.216003 340.338013]/Border[0 0 0]/H/N>> endobj 31007 0 obj <> endobj 31008 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31009 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31010 0 obj <> endobj 31011 0 obj <> endobj 31012 0 obj <> stream q /X1 Do Q q endstream endobj 31013 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31014 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31015 0 obj <> stream H|Wmo8_A8TrW"ݶhbrmy%)Y$Nj"5~y833T={ۻ7,a^~sqB18,Kek7vqVs+Gu욶W}[X[G7{f&*I V,KrG \:/Elk\ uP&B eq]:Y\?e|m~r<o屯Z;GK‡)s" x~-}˷YT4Mr|"s >*)BLax"oCTη ϝo ؋ ؋$ˀ$ˀ$ˀ"ث"ث&뀽&뀽&}JO)> g,`쳀}F9><`_싀}A4 }$6D}6D}B Pj}jZ߆(}ZAַPoC>P TET+6@m"j}jZ(B Q@PoC>P T$Tm"Tm 6@m"j}j%Z(B Q@PoC>P$TEַ!`Vm"j}6DJB Q@PoGPoCT޷PoCT޷!*dEַ!`Vm"Uj}6D*B Q@PoZ߆(}ZEַ!`Vm"TET6D*BmiB Q!{(B Q!{߆}EXf>znK8[nu0ãqҴ`}ec0]Ȳtq?}u˾nWߖgPq8qz]-^)QڸONdxJT j}mOu՚a_?nF]_߻Ujjmnc? d|"r&72Jޜ] 'LBl癚mfA{ʽ5lq'bL7˔]׬v&$J*b}웉?p %BiuIO0:|ʃ5psj.kL>`yZ|I@&F[zWJ?  vyLƙBy&dk]Ougގe;bswюns!/4.і0/ñqشj ={1ʙǝ~x{c14IN0&>vu^vn+NPI,\3ү~~9V,bLivB1Ewp>֐Dsv1<+ş|]Pe|BzĠڥyj6YRѶs͛| eWwPI-8ۘMr/fl${iuȞg.q]Vw0iVf :#C I*eVŎ )\!Oi1d|a) lƁQ9h2'VdqLPBL /c1ynNcj{,k+xa( u F۪b% PU-p̓ WkS̏TQ@8+v(H;oݶyO#å=H(F]zȵ²HpiW޺x+L_ VcWAxX hf'ef-^`҅PP-2ve,ھCcFvu̿A_LC0K\vp3oyG:4ȧx*1TyXU .e]A^wLZZ$ݒ֠r8$֊{\1_՚͵\ρpe+bhq/WE+g~0C+Vo?{ i 9C5M2u־ɵ2f_0*á('Lsf(7S;g7TZU  \Ѡ^M`7á~.s!9|yiWä"9|i}sSg(x+; t.g?ytðE ݳa nqaH0K@3Ur J2z Ke1Oi]{G8.61n1lz:mmv\>/P 636 0 R/Type/Annot/A 31017 0 R/Subtype/Link/Rect[93.6001968 663.229004 264.299988 682.908997]/Border[0 0 0]/H/N>> endobj 31017 0 obj <> endobj 31018 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31019 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31020 0 obj <> stream q /X1 Do Q q endstream endobj 31021 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31022 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31023 0 obj <> stream HWk۶_M l|hPo߾L".IZ$$Dr3i"J"FjwP?7"]ݽ>zV 6 (`Nӂ}f[ݑWEԧ Q3D}y>GQ D}/E^!U^!2Ĵ>8Z3P qV +TcB\c\a!rĵ>,ĵ>fXq>p-G\cB\c\a!rĵ>,ĵ>fXq>p-G\cH 1 a}̰B>,ĵ>fXq>p@\cB\c\+a! ĵ>,ĵ>fXq>p@\cB\c\+a! ĵ>$Z3P qV +TcB\c\+a!Jĵ>,ĵ>fXq>pD\cB\c\+a!Jĵ>,ĵ>fXq>pD\c(E\c1`!1 aUa^JFV*H)G~;0WPS0)ľ7Ǧ!7q ;t75!ݯYѶ=ѰntW:.)KZqo歛iyfoqŔLingz,=}\t( ?@+ڌյC0ѻ1(MR(0dUsxi"s>+PVxTH3k z$&Jk jYCqy ,QR֩Y3{m=}nRl x#FVɞ|HqoH!*zrGr/7zxe۫oM+eLnZLViMH 1 >zN۱ W龟YA=8ֻ5MsbAA]zvۃ}*ucɘ~>0E<|ޮq,raf H7s /Œp&v;!Tm3qe[%D0)I[kG])7jT=;8- V gƝ!v24YRkД;PSW̭ 18qUC .꽲UIǥ LMH3>`r2ǩ *"MB9.fw' y9vꓶϾv*Ai߼ Zs~+99,T[!M*^f\}a"3 ؼ1wLWX1/'*^dlw}fԚ i7vmľ\IyZ -lPYXH4%yZ=κS;.k Zb )v]o/$H0MXhNl %Ld:1BϦTnB[övS<"ŅS,N> J)@`˳љNv#*y]v#\:l{`zj{qu>#^R"wՎ\f}vj6a2쯲a< {ogc`Y;3I/)"QE~DHR:̤f&YZu27% y)P)nW[n,+3!3D?SWuں~M6ùi)fK ǹI _IQwp[b6fݕ'B1ލl.zjK Gϓw{2gf#Tگ5\&YLUFލ -0Xolwͬi|bPLD$u# 0#J]_`AXu\8pW,̲2Ll/.)rho!݄ XH3p?->)4.Nn:<j8swY\ML~迏c3w}݀~D05O ΃ڷXBdj `)3O?둊DZ}}']m |ϯСvF EԇNɴqze:TU~@hX !,<+rL- [fWt+ߜ'A̶3nh~M s Vi{Z|k5>o4(`T ԛN  G⊧u(n(?} bSܞ8s`e/&ڃq|6K.?8ĝҢ li^*.wXԟ@=+4z͢xͻ޾u2t4endstream endobj 31024 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31025 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31026 0 obj <> endobj 31027 0 obj <> endobj 31028 0 obj <> endobj 31029 0 obj <> endobj 31030 0 obj <> stream q /X1 Do Q q endstream endobj 31031 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31032 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31033 0 obj <> stream HWko_1U4v"qn$,LY%+Rˇ${- &ux=ÙŮU?t/_~ tq*Jm6ڕޯjӪRr]^׻jSjvw'u]*A'T* SoNypueX{,s2ѡe$!wG1`iYCV$wy so{[e2Np{'w}$Hp1>bc}ǂO s>'}*OTp2>c3=ˬBKgR Y=ŀ%b),bRK1d YjZ!KpRkR XBj),=KRK1d YjZKH-Ő%g5Bj),=KRK1` ,FH-Ő%g5Bj)Z!R Y=ŐS XBj),=KRK1d YjZKH-Ő%gBj),=KRK1` ,VH-Ő%gBj),!C ,VH-6RK1dqZ!{KH-Ő%guBj),=KRK1` ,NH-Ő%guBj),!C ,NH-ŀ%bܳ:!C ƋR Y=ŀ%b),> ,s*':.)38'a`U>ߴUMx(vVm>+EugeA tmnqz{{*?S>_NL/NŌU 뤰7o>~?|&ulaqWmPlCOa[?m_B& ""XZHV?gT)1AbҴSCxƁv3sKQEYƸP0uA=,ڹR 3%'WB|Bu8<`wř+L[7A$ ,-ǴV$hEL+" Z1ӊi%V´A+aZ2TJV&heL+2eBE1dq-K ZiiAK3-#he-VF{!Kbuo-VF{!Kbuo-VF{!Kbuo-VF{!Kbuoŀ%=Ő%hBS Y{+=Ő%hBS Y{+=6Ŵ-VV{OSbX[)vLF~0&&@6Ke󱙳:lj_<4J>"V~֋zeɁ zSRnkuGëk){gX8ggӉ'm~.H u2h(s-$$( B3ͪ=ImwK 0:_xu(ܕS_amo6C,0|=e3hdh]~ښX'8j$иhz@F2{lT+,*W7gSi|Tof ?AY۾[$&07iji!֦ASR=<۶~p3jl56:xܷnb`(u}fLbW jH tlvn_E[_*3SgM8Ny$"lأZAh]+"4OV_WjDf۞VA\: O3Ӫ[Ӗ [WiOzLDD\.bK>.}/ ŷRAA0P>BzAp>\pҰŀ 4l*ck ]6Q:Xy]{?g܅UɍEҸcrM{ ︲gYJ,'ܳc߽  Ƈm pŎ4oO񡥁يI[]#' *0a\{s,ak5#6Z VeI)CYqFmщ ɭBYgKoreWB`\}Q,bE=t0)F8Ia:.'F癈]ƫr0na# b'i݊ ,K*&giyv3 ӈ GNV1 =d[R߿2mR\䚜:1W!H^gpԴf٣9dΆylG$SR+ĥ~f6I'4:٧/w 0RDendstream endobj 31034 0 obj <>/P 1242 0 R/Type/Annot/A 31035 0 R/Subtype/Link/Rect[129.600998 366.729004 392.018005 386.408997]/Border[0 0 0]/H/N>> endobj 31035 0 obj <> endobj 31036 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31037 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31038 0 obj <> endobj 31039 0 obj <> endobj 31040 0 obj <> endobj 31041 0 obj <> stream q /X1 Do Q q endstream endobj 31042 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31043 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31044 0 obj <> stream Hko۸WS x(mE^}"pd9QO,e%%Pu!Gi+!u۪˗޼K(y7!3璨X':LHPr0vUg(mZYB,8ON28]KAYnPbDӘ,"VK)Ƹ َ;_ϓ:+rr+<0ZuQK+Ǒ`|3ŏV20Ev-kDkDkDLjS#cOAOA{ei6kݘ|n (ĵnRz7f)_ qs-G\,\׺1׺1K!=rĵnRzϵq qs-G\,\׺1׺1K!=rĵnRzϵqqލ֍YW,wc@!ucB{kݘkZ7Z7f)DZ֍Y QV uc@!ucB{kݘkZ7Z7f)DZ֍Y QV uc@"ucջ1׺1Kݘ|n (ĵnRzϵqsD\ƀB\,\+׺1K!=Jĵn (ĵnRzϵqsD\ƀB\,\+׺1K!=Jĵnl(ĵnRz7Z7f)_ބI(}Lep\rrM4&0"6Xdy}b1`ZcN;)w?g-. !4%D˄d!gF034cr[>RCƘKOѬ2͗/zͫrMF|D߅I93oWvyU9⏴/?䮨:{HI!U]x$-"),tO>/? sD& f,k=R@NYU$/:(&^y*^ߎy,zv?FɋERUMlM)̒-"ۜPh6~#1lch4BqTo^\}WY 2*0 RAim7(? J=I-:`]"< -^%)6V+Mj:q͞oSO5;oF@N^pIKCF׫;-ˢ7[npQf/ un3^]7ZVE>axM">=]ןvRҦqQ{ѝ" d%#|36I { ʏ:($X=p} s~LE\!.Sa@s&bm316ܶsH\C_H܀F–1_۳Zϭ_W##m]f*^zbaouu쫃:tIC~o9>ml=S%[/7i iA)E 3$S8΢Yir"0Pg1 csEVE+rw}gu`{{ԓ_0QM*M#=nw_ox}+ᖥudz&^ξq 虂Q5Egw[w3plnm{ &my"JWԿ,pѽJ{-ߏ+ׁnv'|Z;\gMhĦu Zrv1=G.&M!%ߑo}9kIZUͺ-OoIendstream endobj 31045 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31046 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31047 0 obj <> endobj 31048 0 obj <> endobj 31049 0 obj <> endobj 31050 0 obj <> stream q /X1 Do Q q endstream endobj 31051 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31052 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31053 0 obj <> stream HW6 jEu( \H]Z VjI>IM8AAVG7n~-Qͻo^HW/R7"U"KUĢ7 "HQ7+ɼv]_7fJupm,&OJHy $(OE4JzysPym㏪})Vq櫗r?~q6(IĦsD0*cRb?mCρ c,d$ށx1"(TQ APNs ‘HC?ŀ%"EK鋧bF}쩏^1ꕧ^1ꕧ^1ꕧ^3굧^3굧>a'QxF}O>eԧQy3F}>gQ{ F}/g%cZ5A̸bS Xk),_=Ő嫧R Yzϵ1Z!Q6f\K1`1kcƵCsm̸bb\K1d1=ƌk),Fژq-ŀŸbb{R Yzϵ1Z5b\K1d),ƵCbS Xk),FZŸbb{Uk),ƵCsb\K1d1=*ƵZ!QV1kZq-ŐŨ\R Yzϵq-Ś@3|Z!WO1d),ƵCsf\K1d1=jƵZ!QV3k5Zq-ŐŨ\R Yzϵq-ŀŸbb{Ռk),FZ͸bM0|Z!WO1dꋰ( -"&x n6RlHl*!GxȸS4oG1nkǾlD݊_ܼ "!Y|#řȏ,&k/u{"^vX?AfLGkM"XEro9CÛ2QMmo{`cO-}>da+hv%ikr?NRda6vlӀ{-,.P["Ao&aM*y]4L(x=[Tp>c_uX_bVHa/13mt׍ޚQa}={66Up#еsŭ bk?8,ݾv?򐪘?$Oh+S1uv:*w;s8j= WtH؛O0Iw7u[M}]ѹ p3=LQǵ˻4L)]q+ڊ|\i_e/v%sRavԴܾhwf:U9Unvǭ}SrgS ~z{ro>/a-XZ_0e,rirv Fc#)rieʗˤ2DZPjR:NK4yVPEBF{M=fL#ucx6qλ[;͓hj :ȴ([L1кgY"( Uayqjnܻ]Y_.ʳ5j2\Wu*sV}ΊW[U鞃y<&R=0˵;:o7ZFښZT:̤ԤɶMkGUy{s2\Q"4|F@?-Zx] 'Ox/x?82;}*:c*-\N:(+H 0HF\@"cE$zرn2d}ΒeH\B. icXtrY߷|qr» 98Xv;3>CsAݤ[;?,=YJ-K" IB+hnO$y&ؕ1 *Պ(~KOAgs_{llC(6SA߃>glJ\lskjo\uyS^S~x}s,N}m7(_opTjW3*hMе8d N=rS}Y.\ :[zoWN,8λT )suF2PyzÕMt3*|v}8Ocw͂ BY: 2" 7LP%PݗټY2aͿ<08ZspʫlpsY܂ʘꇟs > j-EH- |6g.+W>aͩ3ZX`֓E_l.Dp|bnmP84M2܄SX4\]}R L|m|g#qybP7>3"5s2՞14ШFw0c?Xңh~<\F>bHCۂ(Apha8-7󥂋iS*9%ޜ&YDB ,B-Яs Rp)?n't*WPHvaWpLr:zPsi:uHʡcl9 !HH$$.Q6E$bZgX}.I2x*P0ue|,壙 M)Y9hI@@E"L\jT3ÜeRk{򎈞`H>b/ _ɼ?{_2/,51&ԇa#Փ^]ن GbRsG!1]ßrz]' 6XRVE>tr>+AP B~%=xrDt=tbK ;.hN:XY%K09mU^fcFYKU>+"$cyRѝ J)8S9ˣ >XBH[(^:$\}k\MO4V(?pWtC(:Zm(,Q-vM57"Y *]z=aޔE3| O{HV>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31055 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31056 0 obj <> endobj 31057 0 obj <> endobj 31058 0 obj <> endobj 31059 0 obj <> endobj 31060 0 obj <> endobj 31061 0 obj <> endobj 31062 0 obj <> endobj 31063 0 obj <> endobj 31064 0 obj <> endobj 31065 0 obj <> stream q /X1 Do Q q endstream endobj 31066 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31067 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31068 0 obj <> stream HW[o:}ϯc*Ar):Px(t&0$iQw'{'TYڶ?MǞ=;~5 /_ xNd G2Ђ5U^6g%ϊ]ޕ7ūzW7rŚ;~{.ئ^fqƿKYv0HRB,=_(! pû_ojUSC[nbXq,fm~Hgɼ:&Äz27!{*~;v-dk2 {/w.'8<ƐgceY4s1` Bp BpKBtKBtKBt+Br+BrkBvkBvkBvGQ#G}L1>vDŽQG}BO)>uԧzdz0=AƐ媷1`1dm YzZCq \kc";km Xkm Yzǵp!PV1`1d µ6,BZAƀEƐEw\+kZ{p!Uoc"\kcr\6,µ6,BZIƐEw\+ k%ZCq$\kc"\kc";km Yzǵpp!PV1dJµ6ZCƀEƐ媷1dm Xkm Yzǵp!PV1`1d*µ6,BZEƀEƐEw\kZZCq"\kc";Ukmliµ6,Wp!UocrէAo{/38,kÃ4X,{>W8;z i߶]?RGO/XJ.flV_,TlNCA$HtҨ& vxy7_uoٛϭAyI9 .nϫ5۰hX0mƹfF9NrS;Vc83iG*YۏK_AԧaOyB*'$0֡_ f#pN*+Ezt=Ba a|2|;7[WU8H/U'F<|ʸX( 34~ʛ}Qu՟q1<9"PW)f.X0uvִoVCף_cHDv+4V5pa|?A.:btƇ0:ldim1DۖX`v*&:7n\Fj͆s1.]uŦh|w=JU~_`41(cX`¼5˾6QQ†)]C#UYTԿLu(5 mW];~W^HƕR) Z 1ː$G,maE^ wkR!q5aҴ&48 W)ߴY=D'F?k`jS}بIsx"_q;l.UjP.vU=Sx RXmlbVSF*f@%&H!NEͯqG[v5jF=_z,g U, fgc^ݲun܋ϋ 6I@2C9b< x"}|;H(<<S}{K }9 0FjQ@hTaɻy;sMcy ίGR=씪ӢD:H`b<51{)Pih㩭mDP̊V1O>|YOR:PՅCD'36.g_r~ږӫz𨂋cW~&d5NӳqTaR(9/>~DdC^J>(%:F֑}r GMWŪ%j8>9ڰ$¬1\|! sݒ>#ڧǜ,*muS0ڻ"[3iluMb@bw԰<ߟ*pC"yq#Uq 'T ]gėUۡÌI^u;K߂3?.o )L(Ra"swjp;?/#Zvۆ=_ĪćM m,ӵQ[2d;ܕ(1{,Erwvv(.>b9w# J;Zn@}<ۚJm_j<uyD,e7^k yh&c?lgy: A& [J#減rOBI8넠A#\²d0o]|:e+.cQM ZsWZOkb 4ᆪ˚;Y0˱bnW: gK/Rea`0b ܾ%3975c+ vv>/P 1118 0 R/Type/Annot/A 31072 0 R/Subtype/Link/Rect[129.600006 663.229004 343.332001 682.908997]/Border[0 0 0]/H/N>> endobj 31070 0 obj <>/P 1118 0 R/Type/Annot/A 31071 0 R/Subtype/Link/Rect[129.602005 241.229996 311.307007 260.910004]/Border[0 0 0]/H/N>> endobj 31071 0 obj <> endobj 31072 0 obj <> endobj 31073 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31074 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31075 0 obj <> endobj 31076 0 obj <> endobj 31077 0 obj <> endobj 31078 0 obj <> endobj 31079 0 obj <> stream q /X1 Do Q q endstream endobj 31080 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31081 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31082 0 obj <> stream HWnH|W4<؅LZF.I<;lv`(e+$E'̿oJs*MH(UWWUi۩'?~FWo^gekUz* `UdQ,WיQKMN]]T&?zIm2^d1mbTe^zLO=͝Ҍ yz>m:BU=ST:Zs\&Sѿie~wڗ}D}3&:Y1uJ9mս2)SN]|\eچWbyf8'JNd;AvK,c$a Ž#s,,po{ [Nwp{{^}p KKK++>Q*#tϱ{KXbrXh{Z Z˱{Z Z1bcZ1bcEk-h- cEk-h-Lj܋ZZ2Z1bIK,ZK{%h-Lj܋:Z uK,Z u#p/Z@k9X#p/Z@k9F,^ցr,@k9F,^ցrXh*#tϱ{KXbrXh{ZZ˱{ZZ1bcZ1bcEk=h- cEk=h-Lj܋zZZ1bIK,ZKc^U&uQ"3yt"znq)q͕ /FMOjn\޵,׾gA1=^ yHЦkۛ>=67r4]q4t<,um׬uًz-7kM:]tüWYZš|Ӎ'H?1XZ^hyVZAhV UBh@Z%*V*UJhEVZk\jqXRceZheZh[{ h[{ h[{ h[{ h[{ h[{ h[{)k9{KjqW%r@9F+w h;{H D=hZ"c4l-{r1#Ƚ@KށsD%r@9FhZ"c4-{r1ꀖȽ u@Kރs5%rA9F A h{{ D==hZ"c4bI-Kjq'%r@1b&' tzv7lzkMۮ7*qeU ~,j5\@r9L[N4<BP~rFr}9 ?O>F[|t̯cA a\W'gyȊ)gҭ&e35yM_ԓ pi.'.2?YVDLڴI˰Tݬ y WԻ6k,Ӛ4&C-StZ_^xPzE⣌= ~˶mLuf#p6,Q{f >wMU{(6h7P`V.xZ2).:mmfv\$WwrRᓲzV#<*g(mj+cm_ϦKgC7w:=XbZd[o ffmCGTZ={On՟p"/Ͽ\wr釢,OJWF7pRf~h3lny=bvmu҈~;Ոo8ScV.R\Rvzۯ҆!Yrq$=٦6:5Λê;?&ÃcLjKhy兖Z^hVZAh@Z*V JURhU@ZЪVZQhEͥLj%8XheZhYeȽȽȽȽȽȽȽȽ cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cĒZK,{ h{{ h{{ h{{ h{{ h{{ h{{ h{{ h{{ h{Kjq,@9F,ӓ{aUMjseQ"z8 >.=FmTѳ?rlUҵ'4z۵i/**]ixjyKW6Jߍ%z-7kZcD~t$@]{ٮkTwӨ=0_q$|Z\4.&&8:-ء`j!&M'Sla@~66V&iWbPW1eQϲ`o? gߺ5p /Ot l2&:'v `3lsy=Wtg{V;Gendstream endobj 31083 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31084 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31085 0 obj <> stream q /X1 Do Q q endstream endobj 31086 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31087 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31088 0 obj <> stream HWko6.`l=4t$'I`G4v~)-T{X{կ7og_y{8˘%RɲTEd{Κ@WmOݶz}]}\|+CYWKq`uP ,9[0+>e ɏ/7R&!'PxSB}O >#gPy3B} >'P_x BYAv$\bջ׺|.,_p!PVu1d=Jµ.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] YzϵpEŐw1`u1d] YzZCs"\b"{Uk] Xk] Yzϵp!PVu1`u1d=*µ.,BZEŀEŐE\׺kZ1ZCŀEŐw1d] Xk] Yzϵ1ZCsmLŀEŐE\u1d=Ƅk] Xk] Yzϵ1ZCsmLŀEŐE\u1d=Ƅk]l$k] YzZCŐ/(bYoRL:|#d,M _2aU:mFZa|Hq*v &e%1IJB/Tb6z~WV&Q..M{wtT"R%g|U*m u4x!(yG1~b"ot{!cx4RQry&ƃF2b6d=8#? ߬c,kyt-4Y]ڇ}. ެ2JeӛVߚ/i4s$+Ru_MwaYbU6Qn;ӽ l:h֍f횕kEV%cP^j21qfpLHF5vzimٗt 7|y8]n_R$ '@:vAՕ(`ˡO[we|Ҷyة캶~S ;iV'n }S{*5l,ÔqOx|oY6+͈S=ln{w?성5[ @ q$%̴HgBrE3Yp92%13%:QSEͣ׽mڽm\fsI(˙z: ^|2aa|`δCt'y\hUVoE=WU <l*R Vw\=WɱR!DEz2Ρc5m9lB71S;=P3WJ(ꚩ=yQ\\զl2ImaL,vcLB,[<-gU{oV;~pvo@HrIgA !{]m6֝b&.z_Ûfe*JG$=8RA{,1PLx =M6cxEe:M6LicV kjmɚH`YF_洅i4Wsy:|@r%4u_A1_ gFy}13\&u)BQd9Ng6g+Y"\udqn 9h$%Il/XZtL*wS_]HpAi]Og`KczDR5( a;&?ix?Amix)?|IDba l(+^;(3^[:G,LM''$"N䔣.4lw-yMɧIpSA/;i* \Xkxaҫ燆^nCY<8Y8&WQmе Ts=T<\C-9sFe^+K*nҦ$66o#֦ۂenB F5=$2 /zꓫlŬ' m@ IU#wP~h58`,[؛G?2hفi]yRA+Yk>n x2O'cTW|6Ƹx% dX09Aל)OrE#Gvu/Փ'x(-fK@M>q8[-dwdUʵr0[]5*5&ޟvx"'wk_|f~_*_K嬔Ygx{uu1: ^vPjPh*Uf̌3׍M,a Bs唡"B'|hix'e 1#Eay<[ZYaG790UQGWe2EhhW ΢zE$qZ/ 0wz<Srn75xz(Z1Fw@N㣪8cDj*Y]LXSiA:L]%s:2?ھ*,R.0Iaґ$-/T|jv6'UJ-|׺/޼qq4\v?>t6kA8^Ptt|ޯrQu+ιԛx^ic`!Dӟ}_ A+`4]\M#勛}V_7 0endstream endobj 31089 0 obj <>/P 471 0 R/Type/Annot/A 31092 0 R/Subtype/Link/Rect[93.6003036 445.128998 302.953003 464.80899]/Border[0 0 0]/H/N>> endobj 31090 0 obj <>/P 471 0 R/Type/Annot/A 31091 0 R/Subtype/Link/Rect[93.6013031 229.128006 315.960999 248.807999]/Border[0 0 0]/H/N>> endobj 31091 0 obj <> endobj 31092 0 obj <> endobj 31093 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31094 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31095 0 obj <> endobj 31096 0 obj <> endobj 31097 0 obj <> endobj 31098 0 obj <> endobj 31099 0 obj <> stream q /X1 Do Q q endstream endobj 31100 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31101 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31102 0 obj <> stream HWko8_~">- 4pq"Pd:TL$y=E\ϳ;7oͬYT4$? 1{v)Cn-JRb^,_rVdEnd] )S#uY愒hm0CB˜wm412צ{޷ɹ'0י,.fwWESG>}gweB=,P!d{oq{B4ȷY+\ YWV: b(5YX.ҵSj1`1D=33D=3sD=7sD=7sD=7 D0 D0ԻzP"]Cw 3{zP#}C >7P C} !,ELc!12buLL:,ĵ:Xzõ q)p-C\cB\c7\b! 2ĵ:,ĵ:Xzõ q)p-C\cB\c7\b! 2ĵ:8ZS,S q)^TcB\c7\b! rĵ:,ĵ:Xzõq)p-G\cB\c7\b! rĵ:,ĵ:Xzõq)p-G\cK 12buLL:,ĵ:Xzõq)p@\cB\c7\+b! ĵ:,ĵ:Xzõq)p@\cB\c7\+b! ĵ:\ĵ:XzZS,S)>0ādcEiD$Z['턌D NÀx=y!6ַWI'4d#`9 lAOT&1'<:-rrw/?bq#  %b<Ø.OlxMC0G]f&id$괕l߽Qfwm8 L$~W:ulfījӁCr@T8Ub/lWL٣b86'p r3m<.幁2;0E^WoG (f3`@t=Jb 6* „-h \ !ѿO٨OORA*we^tM_uq=G!TcϜ1ۄNO##lLxMlj6'9'emoЮ[G[ءY:6`uX3ѲVnqro} [8lC}ÈT!'mrHO<9d"ۇmcuYS~ߥɝ9nTVąo#Դ5nB˝Ae&pm'M:U &̛aф3HMfx"ܡvH]>,#E7+rf jSWOWy  s|x ^t@sꍖ )J:ZeIP$)'`;}`[#IȲRZu?uymӃ/6{V\j24F2'GDNRCr-g0j]Fn{ TJst멺oq:Z~$`^> xAa7Bak*d'#5+>"%SFGmNOl2GSӕUR=-Ϧг<=3{)J#" %\-fh7Jez{}"Om|.AwWjYqx7\V+5}0N]wLo5C7Zٗʊϫ:#noaI\E,EMjËhǖAabKwK_G/E=aWJB3ҊM>o״0w`;# Y-y~y|n»:I2d+ZlՊqU^pC6io@yaѺ?o?-|V\!]SIAV>9Q`8ޣu"h/r6Zy].'Z$mCt,H.ԉyp,4s85MGY.簤yc'FIQl8QÚA|Z|tS ~lSCl$6߯N ?Ͼ$i8@W .<԰HeZ}[B_L?-UG-ϕ%n<6$;6^t]t7x AYTyrO_U<_WunЉ2#~x* ʫmq+TE[db[h),zKRE^[ިHw! IY$@u_950PޏWfg_?uJ6}[e#i[ģn"6NCe` Xc{&,+Sa$&r:epSĞH2D;{p=O(;RW,P4^:?؁&+P=\agfDZRyR.nͷb9w[Ae'vX?QRTD; R㍡WJbΗ'ƽHbi8~@ԟ*clq,AGj>FiI`a3|Ԥ=do]y|JӌKN/ ðRyhA7:.ǵ %|+'ZEvsT>^xA+Wf뿋 -3e^쪎"Q25$RKjFAB1~Er.7Abd[<:%)DJ-c3,p$5`n/2u{ȮyO };)/׉i^J{1m?'f? >Zm3_:O{k{<;<8&2qg`v9Z]ABq""b/8?Tl+,K,O;0hZލSPU8Hw9́.l6;)Y?mB i3tqA1Um򾅹5< #G:J/}M&*Hcdq,>.[ϗ_SA B.azaDпixlzRZ})"f4u|د}O&F;\19W :UzU->/czhZ K5UX\=ǑBW,xĮO /y UN7*f[a9lҦDs(46)0867&-a:{S}>d-:{]RV|ieh mX@h[e"_aicbfmΰ 9῾k :p"gaZ$˾dghӅLc 9vrfT*=zPן`Xendstream endobj 31103 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31104 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31105 0 obj <> endobj 31106 0 obj <> endobj 31107 0 obj <> endobj 31108 0 obj <> endobj 31109 0 obj <> endobj 31110 0 obj <> stream q /X1 Do Q q endstream endobj 31111 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31112 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31113 0 obj <> stream HWێ8}WQ tś$6 v/VJlkoH]\AU>bU>?8/EBԱ)U˸Ujd|qe6qGUwԬS=Asn=WxYp60g\de:Do6{&KM/?&*Tvܴ[w~\ĭd!crFjuemOO/ۏLPue@s}TXd07#%7qdUJ3e%>-n Cd c Fd*QBw(!B!0(]<J2e^2e^1U^1U^1U^3u^3u0M0M0M>ga }/E`a_K} { @-"ɨ6@16D Q!{jZjC>PdTKmbj Pj Q @Q-!aV26@16D1JFԆ(}ZɨŨŰT+Rj%Zj;DQ-!*dOmbTKm SB(FԆ(}ZŨŰTRRjZjC>PbTKmbTKmbUj Q @Q-Q-!aV16D1*Fv4ZjCTȞŨ6D Pj Q @Q-!aV36@16D1jFԆ(}ZͨŨŰTRj5ZjZjC>PfTKmbՌjFԆ=Q-!*dOm Z -Cn=Wxli繍WSqW݃MrtW&/?`sIRer.}[wooYdvO]Jڙ_=UOiTGH_"KU)>Xt&jjz;ͫ"ʤ>thuwdr!mgLn vBY =q:y0X4Rll:^M橐4WyBgA,5)DZΤ v̆'i^˱v .~Yo%6563sWmy=e\E&>4{vW7w97M zrô ҝnT\$NDlaf"ͺrrv\;U{PJ(*zβ9ZT];󫔴)4hrzz}Ey=7d; BJƋ*/#ƇSjTrJ0?lDpň6֭)BV3- aΤ(bhC[L6ඓ]ׂIԔrvoRQ޻{^=9:z]D,E7\Z8चPS`N8!G)2y\76ph"ЙN c&wΤ0v%Pú}ӎTϺpMͱkex[ q r_[`t&:=dif l$.^pHgWy\3J_8BPvg?q<.=B 4>:K~0|z㙙AfM{? Z\&oTtP-cI;0mY Z 0"9m;C8؍uwUW9r[5uG:1ς<ۤ>qR@a.sĽ69 |1ؾk754"}9bZA 261Q⃯CԠ4-<]2YZ*ܿ+2 WMɎi9v%oAM$"/S!PZ\WZXLOɩ>ף ]{K}U|Bb{uW^xMp; Zç}M mNxn8XT7>q`NE&soRY;I5GsѶDv&2q ,Mfwn-RC?37fs{z۾jj[{h iR)xc;Xh7T!cjKkontRQ 1*N4V\aZ– ӹk+FJ-o>ozqƵ"n Z :!×j{ɠ۳v^[=$u=|yj =O$lˏ}9҈r-a埋2~p01хe*=/g?Fc8eҮ5ar+Kp{3dLi/frr qb+{J+J]Lil@ .攔Txzԧonih(IRO^kSY?lj_a/B(]BPg%-֤P^  v9\~4qU{N )TGyc {w]p:ⓞ@Q@%}w}-tg #z<0Gˠ^m;n@}BݾxE4m O`Z,'!ɱdj|x8rfl4 fm) "[ :QǼ 3vTm#4M30_h 2Q6hb0;\9ґp s떐E( ڑͰÂyQTݥAAu_<͸̧9f ^%\p*)}G\CRer(Ud=TU >y@t$H-uaۀT|Ҿ^þɘ0(i.X ('a!2R"` 3̀\ !HtHPJRβi W,JiFStǺ7Rl3/*ZZaG3ʵԼ]4e LA^nmkm+HH~>ZqJS7Nb[5KF&%](\Fx9vT5vCQqk{׆(ӽ$tEpy].OнkC^wm"kn}nwlb OB/0~UMZlϸJoɟȉ:Ua畇s[-nY 0;zioWwo!@W&B`;WO~>ð:a26a4Wmg}vOGYT \W  ẃ31 (ȇe?<:3Li pCQ5/!|dghnCP ._Kw#s>.oxwgpendstream endobj 31114 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31115 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31116 0 obj <> endobj 31117 0 obj <> stream q /X1 Do Q q endstream endobj 31118 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31119 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31120 0 obj <> stream HWko:_2|"PHӠ"iƋEE:J^?-9EQD.FG93</WL/^:/[HågTJR1Wjn[ؼ쩐az:^7_tlfzLز)N_**^ӑLc!`y9QѬx'NF70ӅIeCB@1w2N Ƥ`0g{^\YKT;+mm9')tJcӥ1@I,JKOcR{W{{{{7{7{{{{/ eƾ$ؗ{Gw{Gw{Gw`_e+}{LmPmCT>PmCT>!*gE6!`VMc"gUjզ1D3*Bi QLPm4(}ZE6!`VMc"TETզ1D3*BilVhBi Q94(Bi Q94}4(}ZM6!`VMc"TET զ1D3jBi Pjj54(}ZM6PmC>S&TET զYaզ1Dզ1Dri Pjj 4(}ZC6PmC>S!TETkզ1@Mc"g5jj 4(Bi QLPmC>S!Tf%TOc"TOc{7LNfQq:I&豨6ъIyJY1f|2 8yoU\jU|n!;yNORn\}}4I&_剬ÓgV@N9dJX;sm?.}váS=~l4aZ Q]&!i]G!{ [n8`e*@d=cgzB,*,\xP^b!d'G,q|'4"ijNϡf8wtUjLi;oLcO?jV=д^o*wb/{%N1qӛI78`wOocn O  5NzIVS<×8%\#%a $`&!=Fpl͇Oyt]@w]lܓ۳¶c㶘]wo/Fg8:G5ct'z9kzM/x 6YW|eL2sty+V{&޴wvFY]Zz(tQvMj׽:Y\]L 2Oo5>٫bԓbM&jn ^LӮ7xŝid[nTL7vHi]p0.L{_=ٞg~n=XRmƣ|_M0[6[<|9EnlkWzY= :5Yy8VI#|^MȹZfZ?E X$Ud <|&3o9j툷| ?eCGt0Yuo%"%߫g߸"| [MƳY(g_i/<=~Sɓct+{Jh.kǧz~ q砋 ;-مp?j>.M?N.2BJe#6ow(\:CBWո-F5lwGۤP@_nj U/0(@eXYr(Ȱe' B htXl /u mb!Z U!`QYV;à*5Tc:`9!P:*vatn^~)*n)aE# HV޷eW0ŗdQs@[[*^--.RPҕƫUC8TTk/Ĥ*] fVfPox/PB-؆#wȂ]~Ȟ7rP;F9u2~qġD= 8??n:*l). ~fƿRnEncd{=ߛ&ہUy2Ztړ0ePzK$Z.xȌno/>^G: : e,=zؐsNѹ=VTp_fh7)YMפ,:pnn)^j8J(q@JR1U̍zZгi.gNnv91 e b& ĦFTg~>.$w/_ ~ qݶwo4lK-nqQb+z8bVqa$uScy !Vr%(ʸf5<]0ݡJ 㧠{ Ln 8LE.QPRx؍E?ȡt]]E}7'4(4ĉ6rm?%?s82: 8& _Ꮞ;*UPVb E&qq*zw 33ϴ`"SVVڒj1Lzs 8)i5ceܮ?݆c9{[]"o1 BiTu@ƃ(s@j 0Yx:|~Z.K=8֎ M.Gb9cWOzb%zyE A8MQ)ت ^ʦ*k"LF4# k*N,4-pu0%+l%0ߓA;Pߠm6,22 -BF:P2oPP1n֪6$=o|,O~2|VB6,!(„K ȳ:rO#M(f450`dn0d--B"g:P ! 'CFv)cHZ ǽX"\a4<@V1IrezYbSe5ؖt\~ ;zKq$-? 61o%Jr:Wr>fr$V$k(~?谒zQ`^\ R? jqxͫJ*+] GHH^}n)qF?H) by4Z5`Nc/=+12LD {C1L@:CʳCQǔ@*#- ^^tQP$J^L@^$(kdMIzԲj%fZ d4RҥXOhtqGqA2#cYWb|I{Gj{r@ѽ :c(B1TqC*1Kgr6>T?ޅBj`F~ ݌C) 2I])cv<ª"oTXXMBkCiof_@IfЅf 'bbv(&i '@G#\sϘaii:uX TϻT#@\;pFY [-HNnfjֻ!E 6(r$,<ĩL 4wpnV 4܊O\Ai!6VJ]zwYfֳpۇf֎@4"LFd<&5}g\VijRW)K<sdh(՛߮_x?<D.=8-PS)3U//'UVgv 4D%'vۤWO՗_"_W#Iؖcf;9G6DIBK= ZK~19اReUr5ir/u~׎ϛݧ2v2q=n>W%х7j-nN[ %q}٭o en@m5I.i6OY,pj$^(wgy .endstream endobj 31121 0 obj <>/P 6370 0 R/Type/Annot/A 31756 0 R/Subtype/Link/Rect[188 669 200 678]/Border[0 0 0]/H/N>> endobj 31122 0 obj <>/P 6370 0 R/Type/Annot/A 31754 0 R/Subtype/Link/Rect[234 659 244 668]/Border[0 0 0]/H/N>> endobj 31123 0 obj <>/P 6370 0 R/Type/Annot/A 31752 0 R/Subtype/Link/Rect[246 659 258 668]/Border[0 0 0]/H/N>> endobj 31124 0 obj <>/P 6370 0 R/Type/Annot/A 31750 0 R/Subtype/Link/Rect[220 649 228 658]/Border[0 0 0]/H/N>> endobj 31125 0 obj <>/P 6370 0 R/Type/Annot/A 31748 0 R/Subtype/Link/Rect[189 639 201 648]/Border[0 0 0]/H/N>> endobj 31126 0 obj <>/P 6370 0 R/Type/Annot/A 31746 0 R/Subtype/Link/Rect[213 629 225 638]/Border[0 0 0]/H/N>> endobj 31127 0 obj <>/P 6370 0 R/Type/Annot/A 31744 0 R/Subtype/Link/Rect[203 619 217 628]/Border[0 0 0]/H/N>> endobj 31128 0 obj <>/P 6370 0 R/Type/Annot/A 31742 0 R/Subtype/Link/Rect[219 619 233 628]/Border[0 0 0]/H/N>> endobj 31129 0 obj <>/P 6370 0 R/Type/Annot/A 31740 0 R/Subtype/Link/Rect[235 619 249 628]/Border[0 0 0]/H/N>> endobj 31130 0 obj <>/P 6370 0 R/Type/Annot/A 31738 0 R/Subtype/Link/Rect[251 619 265 628]/Border[0 0 0]/H/N>> endobj 31131 0 obj <>/P 6370 0 R/Type/Annot/A 31736 0 R/Subtype/Link/Rect[267 619 279 628]/Border[0 0 0]/H/N>> endobj 31132 0 obj <>/P 6370 0 R/Type/Annot/A 31734 0 R/Subtype/Link/Rect[177 609 189 618]/Border[0 0 0]/H/N>> endobj 31133 0 obj <>/P 6370 0 R/Type/Annot/A 31732 0 R/Subtype/Link/Rect[244 599 255 608]/Border[0 0 0]/H/N>> endobj 31134 0 obj <>/P 6370 0 R/Type/Annot/A 31730 0 R/Subtype/Link/Rect[263 589 273 598]/Border[0 0 0]/H/N>> endobj 31135 0 obj <>/P 6370 0 R/Type/Annot/A 31728 0 R/Subtype/Link/Rect[275 589 286 598]/Border[0 0 0]/H/N>> endobj 31136 0 obj <>/P 6370 0 R/Type/Annot/A 31726 0 R/Subtype/Link/Rect[253 579 265 588]/Border[0 0 0]/H/N>> endobj 31137 0 obj <>/P 6370 0 R/Type/Annot/A 31724 0 R/Subtype/Link/Rect[197 569 214 579]/Border[0 0 0]/H/N>> endobj 31138 0 obj <>/P 6370 0 R/Type/Annot/A 31722 0 R/Subtype/Link/Rect[215 569 228 578]/Border[0 0 0]/H/N>> endobj 31139 0 obj <>/P 6370 0 R/Type/Annot/A 31720 0 R/Subtype/Link/Rect[230 569 244 578]/Border[0 0 0]/H/N>> endobj 31140 0 obj <>/P 6370 0 R/Type/Annot/A 31718 0 R/Subtype/Link/Rect[246 569 258 578]/Border[0 0 0]/H/N>> endobj 31141 0 obj <>/P 6370 0 R/Type/Annot/A 31716 0 R/Subtype/Link/Rect[190 559 202 568]/Border[0 0 0]/H/N>> endobj 31142 0 obj <>/P 6370 0 R/Type/Annot/A 31714 0 R/Subtype/Link/Rect[268 549 279 558]/Border[0 0 0]/H/N>> endobj 31143 0 obj <>/P 6370 0 R/Type/Annot/A 31712 0 R/Subtype/Link/Rect[268 539 279 548]/Border[0 0 0]/H/N>> endobj 31144 0 obj <>/P 6370 0 R/Type/Annot/A 31710 0 R/Subtype/Link/Rect[263 529 274 538]/Border[0 0 0]/H/N>> endobj 31145 0 obj <>/P 6370 0 R/Type/Annot/A 31708 0 R/Subtype/Link/Rect[212 519 224 528]/Border[0 0 0]/H/N>> endobj 31146 0 obj <>/P 6370 0 R/Type/Annot/A 31706 0 R/Subtype/Link/Rect[248 509 260 518]/Border[0 0 0]/H/N>> endobj 31147 0 obj <>/P 6370 0 R/Type/Annot/A 31704 0 R/Subtype/Link/Rect[179 499 191 508]/Border[0 0 0]/H/N>> endobj 31148 0 obj <>/P 6370 0 R/Type/Annot/A 31702 0 R/Subtype/Link/Rect[151 479 163 488]/Border[0 0 0]/H/N>> endobj 31149 0 obj <>/P 6370 0 R/Type/Annot/A 31699 0 R/Subtype/Link/Rect[287 469 299 478]/Border[0 0 0]/H/N>> endobj 31150 0 obj <>/P 6370 0 R/Type/Annot/A 31696 0 R/Subtype/Link/Rect[234 459 248 468]/Border[0 0 0]/H/N>> endobj 31151 0 obj <>/P 6370 0 R/Type/Annot/A 31693 0 R/Subtype/Link/Rect[250 459 262 468]/Border[0 0 0]/H/N>> endobj 31152 0 obj <>/P 6370 0 R/Type/Annot/A 31689 0 R/Subtype/Link/Rect[195 449 207 458]/Border[0 0 0]/H/N>> endobj 31153 0 obj <>/P 6370 0 R/Type/Annot/A 31687 0 R/Subtype/Link/Rect[185 439 199 448]/Border[0 0 0]/H/N>> endobj 31154 0 obj <>/P 6370 0 R/Type/Annot/A 31683 0 R/Subtype/Link/Rect[201 439 215 448]/Border[0 0 0]/H/N>> endobj 31155 0 obj <>/P 6370 0 R/Type/Annot/A 31679 0 R/Subtype/Link/Rect[217 439 229 448]/Border[0 0 0]/H/N>> endobj 31156 0 obj <>/P 6370 0 R/Type/Annot/A 31675 0 R/Subtype/Link/Rect[162 429 176 438]/Border[0 0 0]/H/N>> endobj 31157 0 obj <>/P 6370 0 R/Type/Annot/A 31671 0 R/Subtype/Link/Rect[178 429 190 438]/Border[0 0 0]/H/N>> endobj 31158 0 obj <>/P 6370 0 R/Type/Annot/A 31668 0 R/Subtype/Link/Rect[166 419 178 428]/Border[0 0 0]/H/N>> endobj 31159 0 obj <>/P 6370 0 R/Type/Annot/A 31664 0 R/Subtype/Link/Rect[175 409 185 418]/Border[0 0 0]/H/N>> endobj 31160 0 obj <>/P 6370 0 R/Type/Annot/A 31661 0 R/Subtype/Link/Rect[187 409 199 418]/Border[0 0 0]/H/N>> endobj 31161 0 obj <>/P 6370 0 R/Type/Annot/A 31658 0 R/Subtype/Link/Rect[175 399 187 408]/Border[0 0 0]/H/N>> endobj 31162 0 obj <>/P 6370 0 R/Type/Annot/A 31654 0 R/Subtype/Link/Rect[174 389 186 398]/Border[0 0 0]/H/N>> endobj 31163 0 obj <>/P 6370 0 R/Type/Annot/A 31650 0 R/Subtype/Link/Rect[197 379 209 388]/Border[0 0 0]/H/N>> endobj 31164 0 obj <>/P 6370 0 R/Type/Annot/A 31647 0 R/Subtype/Link/Rect[202 369 214 378]/Border[0 0 0]/H/N>> endobj 31165 0 obj <>/P 6370 0 R/Type/Annot/A 31643 0 R/Subtype/Link/Rect[202 359 214 368]/Border[0 0 0]/H/N>> endobj 31166 0 obj <>/P 6370 0 R/Type/Annot/A 31639 0 R/Subtype/Link/Rect[166 349 180 358]/Border[0 0 0]/H/N>> endobj 31167 0 obj <>/P 6370 0 R/Type/Annot/A 31635 0 R/Subtype/Link/Rect[182 349 196 358]/Border[0 0 0]/H/N>> endobj 31168 0 obj <>/P 6370 0 R/Type/Annot/A 31631 0 R/Subtype/Link/Rect[198 349 210 358]/Border[0 0 0]/H/N>> endobj 31169 0 obj <>/P 6370 0 R/Type/Annot/A 31627 0 R/Subtype/Link/Rect[210 340 218 348]/Border[0 0 0]/H/N>> endobj 31170 0 obj <>/P 6370 0 R/Type/Annot/A 31622 0 R/Subtype/Link/Rect[192 330 209 339]/Border[0 0 0]/H/N>> endobj 31171 0 obj <>/P 6370 0 R/Type/Annot/A 31618 0 R/Subtype/Link/Rect[209 330 223 338]/Border[0 0 0]/H/N>> endobj 31172 0 obj <>/P 6370 0 R/Type/Annot/A 31615 0 R/Subtype/Link/Rect[225 330 239 338]/Border[0 0 0]/H/N>> endobj 31173 0 obj <>/P 6370 0 R/Type/Annot/A 31611 0 R/Subtype/Link/Rect[241 330 255 338]/Border[0 0 0]/H/N>> endobj 31174 0 obj <>/P 6370 0 R/Type/Annot/A 31607 0 R/Subtype/Link/Rect[257 330 271 338]/Border[0 0 0]/H/N>> endobj 31175 0 obj <>/P 6370 0 R/Type/Annot/A 31603 0 R/Subtype/Link/Rect[273 330 285 338]/Border[0 0 0]/H/N>> endobj 31176 0 obj <>/P 6370 0 R/Type/Annot/A 31600 0 R/Subtype/Link/Rect[194 310 204 318]/Border[0 0 0]/H/N>> endobj 31177 0 obj <>/P 6370 0 R/Type/Annot/A 31598 0 R/Subtype/Link/Rect[206 310 218 318]/Border[0 0 0]/H/N>> endobj 31178 0 obj <>/P 6370 0 R/Type/Annot/A 31595 0 R/Subtype/Link/Rect[155 300 168 309]/Border[0 0 0]/H/N>> endobj 31179 0 obj <>/P 6370 0 R/Type/Annot/A 31591 0 R/Subtype/Link/Rect[169 300 177 308]/Border[0 0 0]/H/N>> endobj 31180 0 obj <>/P 6370 0 R/Type/Annot/A 31586 0 R/Subtype/Link/Rect[152 290 165 299]/Border[0 0 0]/H/N>> endobj 31181 0 obj <>/P 6370 0 R/Type/Annot/A 31582 0 R/Subtype/Link/Rect[165 290 173 298]/Border[0 0 0]/H/N>> endobj 31182 0 obj <>/P 6370 0 R/Type/Annot/A 31578 0 R/Subtype/Link/Rect[170 280 182 289]/Border[0 0 0]/H/N>> endobj 31183 0 obj <>/P 6370 0 R/Type/Annot/A 31574 0 R/Subtype/Link/Rect[183 280 191 288]/Border[0 0 0]/H/N>> endobj 31184 0 obj <>/P 6370 0 R/Type/Annot/A 31570 0 R/Subtype/Link/Rect[176 270 193 279]/Border[0 0 0]/H/N>> endobj 31185 0 obj <>/P 6370 0 R/Type/Annot/A 31566 0 R/Subtype/Link/Rect[193 270 207 278]/Border[0 0 0]/H/N>> endobj 31186 0 obj <>/P 6370 0 R/Type/Annot/A 31562 0 R/Subtype/Link/Rect[209 270 223 278]/Border[0 0 0]/H/N>> endobj 31187 0 obj <>/P 6370 0 R/Type/Annot/A 31558 0 R/Subtype/Link/Rect[225 270 239 278]/Border[0 0 0]/H/N>> endobj 31188 0 obj <>/P 6370 0 R/Type/Annot/A 31553 0 R/Subtype/Link/Rect[241 270 255 278]/Border[0 0 0]/H/N>> endobj 31189 0 obj <>/P 6370 0 R/Type/Annot/A 31549 0 R/Subtype/Link/Rect[257 270 269 278]/Border[0 0 0]/H/N>> endobj 31190 0 obj <>/P 6370 0 R/Type/Annot/A 31546 0 R/Subtype/Link/Rect[226 260 239 269]/Border[0 0 0]/H/N>> endobj 31191 0 obj <>/P 6370 0 R/Type/Annot/A 31541 0 R/Subtype/Link/Rect[240 260 248 268]/Border[0 0 0]/H/N>> endobj 31192 0 obj <>/P 6370 0 R/Type/Annot/A 31538 0 R/Subtype/Link/Rect[158 250 166 258]/Border[0 0 0]/H/N>> endobj 31193 0 obj <>/P 6370 0 R/Type/Annot/A 31534 0 R/Subtype/Link/Rect[210 240 220 248]/Border[0 0 0]/H/N>> endobj 31194 0 obj <>/P 6370 0 R/Type/Annot/A 31531 0 R/Subtype/Link/Rect[222 240 232 248]/Border[0 0 0]/H/N>> endobj 31195 0 obj <>/P 6370 0 R/Type/Annot/A 31528 0 R/Subtype/Link/Rect[234 240 244 248]/Border[0 0 0]/H/N>> endobj 31196 0 obj <>/P 6370 0 R/Type/Annot/A 31524 0 R/Subtype/Link/Rect[246 240 256 248]/Border[0 0 0]/H/N>> endobj 31197 0 obj <>/P 6370 0 R/Type/Annot/A 31522 0 R/Subtype/Link/Rect[258 240 271 249]/Border[0 0 0]/H/N>> endobj 31198 0 obj <>/P 6370 0 R/Type/Annot/A 31520 0 R/Subtype/Link/Rect[272 240 280 248]/Border[0 0 0]/H/N>> endobj 31199 0 obj <>/P 6370 0 R/Type/Annot/A 31517 0 R/Subtype/Link/Rect[225 220 242 229]/Border[0 0 0]/H/N>> endobj 31200 0 obj <>/P 6370 0 R/Type/Annot/A 31514 0 R/Subtype/Link/Rect[243 220 255 228]/Border[0 0 0]/H/N>> endobj 31201 0 obj <>/P 6370 0 R/Type/Annot/A 31511 0 R/Subtype/Link/Rect[207 210 217 218]/Border[0 0 0]/H/N>> endobj 31202 0 obj <>/P 6370 0 R/Type/Annot/A 31509 0 R/Subtype/Link/Rect[219 210 229 218]/Border[0 0 0]/H/N>> endobj 31203 0 obj <>/P 6370 0 R/Type/Annot/A 31506 0 R/Subtype/Link/Rect[231 210 239 218]/Border[0 0 0]/H/N>> endobj 31204 0 obj <>/P 6370 0 R/Type/Annot/A 31503 0 R/Subtype/Link/Rect[239 200 250 208]/Border[0 0 0]/H/N>> endobj 31205 0 obj <>/P 6370 0 R/Type/Annot/A 31501 0 R/Subtype/Link/Rect[166 180 176 188]/Border[0 0 0]/H/N>> endobj 31206 0 obj <>/P 6370 0 R/Type/Annot/A 31499 0 R/Subtype/Link/Rect[178 180 188 188]/Border[0 0 0]/H/N>> endobj 31207 0 obj <>/P 6370 0 R/Type/Annot/A 31497 0 R/Subtype/Link/Rect[190 180 206 189]/Border[0 0 0]/H/N>> endobj 31208 0 obj <>/P 6370 0 R/Type/Annot/A 31495 0 R/Subtype/Link/Rect[207 180 221 188]/Border[0 0 0]/H/N>> endobj 31209 0 obj <>/P 6370 0 R/Type/Annot/A 31494 0 R/Subtype/Link/Rect[223 180 235 188]/Border[0 0 0]/H/N>> endobj 31210 0 obj <>/P 6370 0 R/Type/Annot/A 31493 0 R/Subtype/Link/Rect[163 170 169 178]/Border[0 0 0]/H/N>> endobj 31211 0 obj <>/P 6370 0 R/Type/Annot/A 31491 0 R/Subtype/Link/Rect[171 170 184 178]/Border[0 0 0]/H/N>> endobj 31212 0 obj <>/P 6370 0 R/Type/Annot/A 31489 0 R/Subtype/Link/Rect[186 170 200 178]/Border[0 0 0]/H/N>> endobj 31213 0 obj <>/P 6370 0 R/Type/Annot/A 31487 0 R/Subtype/Link/Rect[202 170 216 178]/Border[0 0 0]/H/N>> endobj 31214 0 obj <>/P 6370 0 R/Type/Annot/A 31485 0 R/Subtype/Link/Rect[218 170 230 178]/Border[0 0 0]/H/N>> endobj 31215 0 obj <>/P 6370 0 R/Type/Annot/A 31483 0 R/Subtype/Link/Rect[178 160 188 168]/Border[0 0 0]/H/N>> endobj 31216 0 obj <>/P 6370 0 R/Type/Annot/A 31481 0 R/Subtype/Link/Rect[190 160 203 169]/Border[0 0 0]/H/N>> endobj 31217 0 obj <>/P 6370 0 R/Type/Annot/A 31479 0 R/Subtype/Link/Rect[203 160 213 168]/Border[0 0 0]/H/N>> endobj 31218 0 obj <>/P 6370 0 R/Type/Annot/A 31477 0 R/Subtype/Link/Rect[215 160 232 169]/Border[0 0 0]/H/N>> endobj 31219 0 obj <>/P 6370 0 R/Type/Annot/A 31475 0 R/Subtype/Link/Rect[232 160 245 168]/Border[0 0 0]/H/N>> endobj 31220 0 obj <>/P 6370 0 R/Type/Annot/A 31473 0 R/Subtype/Link/Rect[247 160 261 168]/Border[0 0 0]/H/N>> endobj 31221 0 obj <>/P 6370 0 R/Type/Annot/A 31471 0 R/Subtype/Link/Rect[263 160 277 168]/Border[0 0 0]/H/N>> endobj 31222 0 obj <>/P 6370 0 R/Type/Annot/A 31469 0 R/Subtype/Link/Rect[279 160 295 169]/Border[0 0 0]/H/N>> endobj 31223 0 obj <>/P 6370 0 R/Type/Annot/A 31468 0 R/Subtype/Link/Rect[296 160 310 168]/Border[0 0 0]/H/N>> endobj 31224 0 obj <>/P 6370 0 R/Type/Annot/A 31466 0 R/Subtype/Link/Rect[151 150 165 158]/Border[0 0 0]/H/N>> endobj 31225 0 obj <>/P 6370 0 R/Type/Annot/A 31464 0 R/Subtype/Link/Rect[167 150 181 158]/Border[0 0 0]/H/N>> endobj 31226 0 obj <>/P 6370 0 R/Type/Annot/A 31462 0 R/Subtype/Link/Rect[183 150 197 158]/Border[0 0 0]/H/N>> endobj 31227 0 obj <>/P 6370 0 R/Type/Annot/A 31461 0 R/Subtype/Link/Rect[199 150 213 158]/Border[0 0 0]/H/N>> endobj 31228 0 obj <>/P 6370 0 R/Type/Annot/A 31459 0 R/Subtype/Link/Rect[215 150 232 159]/Border[0 0 0]/H/N>> endobj 31229 0 obj <>/P 6370 0 R/Type/Annot/A 31457 0 R/Subtype/Link/Rect[232 150 244 158]/Border[0 0 0]/H/N>> endobj 31230 0 obj <>/P 6370 0 R/Type/Annot/A 31456 0 R/Subtype/Link/Rect[396 669 406 678]/Border[0 0 0]/H/N>> endobj 31231 0 obj <>/P 6370 0 R/Type/Annot/A 31454 0 R/Subtype/Link/Rect[408 669 424 679]/Border[0 0 0]/H/N>> endobj 31232 0 obj <>/P 6370 0 R/Type/Annot/A 31452 0 R/Subtype/Link/Rect[424 669 438 678]/Border[0 0 0]/H/N>> endobj 31233 0 obj <>/P 6370 0 R/Type/Annot/A 31701 0 R/Subtype/Link/Rect[440 669 457 679]/Border[0 0 0]/H/N>> endobj 31234 0 obj <>/P 6370 0 R/Type/Annot/A 31698 0 R/Subtype/Link/Rect[457 669 471 678]/Border[0 0 0]/H/N>> endobj 31235 0 obj <>/P 6370 0 R/Type/Annot/A 31695 0 R/Subtype/Link/Rect[473 669 487 678]/Border[0 0 0]/H/N>> endobj 31236 0 obj <>/P 6370 0 R/Type/Annot/A 31692 0 R/Subtype/Link/Rect[489 669 503 678]/Border[0 0 0]/H/N>> endobj 31237 0 obj <>/P 6370 0 R/Type/Annot/A 44672 0 R/Subtype/Link/Rect[505 669 517 678]/Border[0 0 0]/H/N>> endobj 31238 0 obj <>/P 6370 0 R/Type/Annot/A 31686 0 R/Subtype/Link/Rect[398 659 409 668]/Border[0 0 0]/H/N>> endobj 31239 0 obj <>/P 6370 0 R/Type/Annot/A 31682 0 R/Subtype/Link/Rect[405 649 421 659]/Border[0 0 0]/H/N>> endobj 31240 0 obj <>/P 6370 0 R/Type/Annot/A 31678 0 R/Subtype/Link/Rect[422 649 436 658]/Border[0 0 0]/H/N>> endobj 31241 0 obj <>/P 6370 0 R/Type/Annot/A 31674 0 R/Subtype/Link/Rect[438 649 452 658]/Border[0 0 0]/H/N>> endobj 31242 0 obj <>/P 6370 0 R/Type/Annot/A 31670 0 R/Subtype/Link/Rect[454 649 466 658]/Border[0 0 0]/H/N>> endobj 31243 0 obj <>/P 6370 0 R/Type/Annot/A 31667 0 R/Subtype/Link/Rect[398 639 409 648]/Border[0 0 0]/H/N>> endobj 31244 0 obj <>/P 6370 0 R/Type/Annot/A 31663 0 R/Subtype/Link/Rect[415 629 425 638]/Border[0 0 0]/H/N>> endobj 31245 0 obj <>/P 6370 0 R/Type/Annot/A 31660 0 R/Subtype/Link/Rect[427 629 437 638]/Border[0 0 0]/H/N>> endobj 31246 0 obj <>/P 6370 0 R/Type/Annot/A 31656 0 R/Subtype/Link/Rect[439 629 449 638]/Border[0 0 0]/H/N>> endobj 31247 0 obj <>/P 6370 0 R/Type/Annot/A 31652 0 R/Subtype/Link/Rect[451 629 463 638]/Border[0 0 0]/H/N>> endobj 31248 0 obj <>/P 6370 0 R/Type/Annot/A 44259 0 R/Subtype/Link/Rect[397 619 409 628]/Border[0 0 0]/H/N>> endobj 31249 0 obj <>/P 6370 0 R/Type/Annot/A 31645 0 R/Subtype/Link/Rect[433 609 442 619]/Border[0 0 0]/H/N>> endobj 31250 0 obj <>/P 6370 0 R/Type/Annot/A 31641 0 R/Subtype/Link/Rect[442 609 448 618]/Border[0 0 0]/H/N>> endobj 31251 0 obj <>/P 6370 0 R/Type/Annot/A 31637 0 R/Subtype/Link/Rect[450 609 456 618]/Border[0 0 0]/H/N>> endobj 31252 0 obj <>/P 6370 0 R/Type/Annot/A 31633 0 R/Subtype/Link/Rect[458 609 468 618]/Border[0 0 0]/H/N>> endobj 31253 0 obj <>/P 6370 0 R/Type/Annot/A 31629 0 R/Subtype/Link/Rect[470 609 480 618]/Border[0 0 0]/H/N>> endobj 31254 0 obj <>/P 6370 0 R/Type/Annot/A 31624 0 R/Subtype/Link/Rect[482 609 495 619]/Border[0 0 0]/H/N>> endobj 31255 0 obj <>/P 6370 0 R/Type/Annot/A 31620 0 R/Subtype/Link/Rect[496 609 506 618]/Border[0 0 0]/H/N>> endobj 31256 0 obj <>/P 6370 0 R/Type/Annot/A 31616 0 R/Subtype/Link/Rect[359 599 372 609]/Border[0 0 0]/H/N>> endobj 31257 0 obj <>/P 6370 0 R/Type/Annot/A 31612 0 R/Subtype/Link/Rect[372 599 382 608]/Border[0 0 0]/H/N>> endobj 31258 0 obj <>/P 6370 0 R/Type/Annot/A 31608 0 R/Subtype/Link/Rect[384 599 397 609]/Border[0 0 0]/H/N>> endobj 31259 0 obj <>/P 6370 0 R/Type/Annot/A 31604 0 R/Subtype/Link/Rect[398 599 408 608]/Border[0 0 0]/H/N>> endobj 31260 0 obj <>/P 6370 0 R/Type/Annot/A 31589 0 R/Subtype/Link/Rect[410 599 420 608]/Border[0 0 0]/H/N>> endobj 31261 0 obj <>/P 6370 0 R/Type/Annot/A 31597 0 R/Subtype/Link/Rect[422 599 432 608]/Border[0 0 0]/H/N>> endobj 31262 0 obj <>/P 6370 0 R/Type/Annot/A 31594 0 R/Subtype/Link/Rect[434 599 444 608]/Border[0 0 0]/H/N>> endobj 31263 0 obj <>/P 6370 0 R/Type/Annot/A 31590 0 R/Subtype/Link/Rect[446 599 456 608]/Border[0 0 0]/H/N>> endobj 31264 0 obj <>/P 6370 0 R/Type/Annot/A 31585 0 R/Subtype/Link/Rect[458 599 468 608]/Border[0 0 0]/H/N>> endobj 31265 0 obj <>/P 6370 0 R/Type/Annot/A 31581 0 R/Subtype/Link/Rect[470 599 482 609]/Border[0 0 0]/H/N>> endobj 31266 0 obj <>/P 6370 0 R/Type/Annot/A 31577 0 R/Subtype/Link/Rect[483 599 493 608]/Border[0 0 0]/H/N>> endobj 31267 0 obj <>/P 6370 0 R/Type/Annot/A 31573 0 R/Subtype/Link/Rect[495 599 505 608]/Border[0 0 0]/H/N>> endobj 31268 0 obj <>/P 6370 0 R/Type/Annot/A 31569 0 R/Subtype/Link/Rect[507 599 517 608]/Border[0 0 0]/H/N>> endobj 31269 0 obj <>/P 6370 0 R/Type/Annot/A 31565 0 R/Subtype/Link/Rect[359 589 372 599]/Border[0 0 0]/H/N>> endobj 31270 0 obj <>/P 6370 0 R/Type/Annot/A 31561 0 R/Subtype/Link/Rect[372 589 382 598]/Border[0 0 0]/H/N>> endobj 31271 0 obj <>/P 6370 0 R/Type/Annot/A 31557 0 R/Subtype/Link/Rect[384 589 397 599]/Border[0 0 0]/H/N>> endobj 31272 0 obj <>/P 6370 0 R/Type/Annot/A 31552 0 R/Subtype/Link/Rect[398 589 408 598]/Border[0 0 0]/H/N>> endobj 31273 0 obj <>/P 6370 0 R/Type/Annot/A 43360 0 R/Subtype/Link/Rect[410 589 424 598]/Border[0 0 0]/H/N>> endobj 31274 0 obj <>/P 6370 0 R/Type/Annot/A 31545 0 R/Subtype/Link/Rect[426 589 442 599]/Border[0 0 0]/H/N>> endobj 31275 0 obj <>/P 6370 0 R/Type/Annot/A 31540 0 R/Subtype/Link/Rect[443 589 456 598]/Border[0 0 0]/H/N>> endobj 31276 0 obj <>/P 6370 0 R/Type/Annot/A 31537 0 R/Subtype/Link/Rect[458 589 475 599]/Border[0 0 0]/H/N>> endobj 31277 0 obj <>/P 6370 0 R/Type/Annot/A 31533 0 R/Subtype/Link/Rect[475 589 489 598]/Border[0 0 0]/H/N>> endobj 31278 0 obj <>/P 6370 0 R/Type/Annot/A 31530 0 R/Subtype/Link/Rect[491 589 505 598]/Border[0 0 0]/H/N>> endobj 31279 0 obj <>/P 6370 0 R/Type/Annot/A 31526 0 R/Subtype/Link/Rect[359 579 373 588]/Border[0 0 0]/H/N>> endobj 31280 0 obj <>/P 6370 0 R/Type/Annot/A 31523 0 R/Subtype/Link/Rect[375 579 389 588]/Border[0 0 0]/H/N>> endobj 31281 0 obj <>/P 6370 0 R/Type/Annot/A 31521 0 R/Subtype/Link/Rect[391 579 405 588]/Border[0 0 0]/H/N>> endobj 31282 0 obj <>/P 6370 0 R/Type/Annot/A 31518 0 R/Subtype/Link/Rect[407 579 421 588]/Border[0 0 0]/H/N>> endobj 31283 0 obj <>/P 6370 0 R/Type/Annot/A 31515 0 R/Subtype/Link/Rect[423 579 437 588]/Border[0 0 0]/H/N>> endobj 31284 0 obj <>/P 6370 0 R/Type/Annot/A 31512 0 R/Subtype/Link/Rect[439 579 456 589]/Border[0 0 0]/H/N>> endobj 31285 0 obj <>/P 6370 0 R/Type/Annot/A 31510 0 R/Subtype/Link/Rect[456 579 470 588]/Border[0 0 0]/H/N>> endobj 31286 0 obj <>/P 6370 0 R/Type/Annot/A 31507 0 R/Subtype/Link/Rect[472 579 489 589]/Border[0 0 0]/H/N>> endobj 31287 0 obj <>/P 6370 0 R/Type/Annot/A 31504 0 R/Subtype/Link/Rect[490 579 504 588]/Border[0 0 0]/H/N>> endobj 31288 0 obj <>/P 6370 0 R/Type/Annot/A 31502 0 R/Subtype/Link/Rect[359 569 373 578]/Border[0 0 0]/H/N>> endobj 31289 0 obj <>/P 6370 0 R/Type/Annot/A 31500 0 R/Subtype/Link/Rect[375 569 389 578]/Border[0 0 0]/H/N>> endobj 31290 0 obj <>/P 6370 0 R/Type/Annot/A 31498 0 R/Subtype/Link/Rect[391 569 407 579]/Border[0 0 0]/H/N>> endobj 31291 0 obj <>/P 6370 0 R/Type/Annot/A 31496 0 R/Subtype/Link/Rect[408 569 422 578]/Border[0 0 0]/H/N>> endobj 31292 0 obj <>/P 6370 0 R/Type/Annot/A 42633 0 R/Subtype/Link/Rect[424 569 438 578]/Border[0 0 0]/H/N>> endobj 31293 0 obj <>/P 6370 0 R/Type/Annot/A 31492 0 R/Subtype/Link/Rect[440 569 454 578]/Border[0 0 0]/H/N>> endobj 31294 0 obj <>/P 6370 0 R/Type/Annot/A 31490 0 R/Subtype/Link/Rect[456 569 470 578]/Border[0 0 0]/H/N>> endobj 31295 0 obj <>/P 6370 0 R/Type/Annot/A 31488 0 R/Subtype/Link/Rect[472 569 486 578]/Border[0 0 0]/H/N>> endobj 31296 0 obj <>/P 6370 0 R/Type/Annot/A 31486 0 R/Subtype/Link/Rect[488 569 505 579]/Border[0 0 0]/H/N>> endobj 31297 0 obj <>/P 6370 0 R/Type/Annot/A 31484 0 R/Subtype/Link/Rect[505 569 519 578]/Border[0 0 0]/H/N>> endobj 31298 0 obj <>/P 6370 0 R/Type/Annot/A 31482 0 R/Subtype/Link/Rect[359 559 373 568]/Border[0 0 0]/H/N>> endobj 31299 0 obj <>/P 6370 0 R/Type/Annot/A 31480 0 R/Subtype/Link/Rect[375 559 389 568]/Border[0 0 0]/H/N>> endobj 31300 0 obj <>/P 6370 0 R/Type/Annot/A 31478 0 R/Subtype/Link/Rect[391 559 408 569]/Border[0 0 0]/H/N>> endobj 31301 0 obj <>/P 6370 0 R/Type/Annot/A 31476 0 R/Subtype/Link/Rect[408 559 422 568]/Border[0 0 0]/H/N>> endobj 31302 0 obj <>/P 6370 0 R/Type/Annot/A 31474 0 R/Subtype/Link/Rect[424 559 438 568]/Border[0 0 0]/H/N>> endobj 31303 0 obj <>/P 6370 0 R/Type/Annot/A 31472 0 R/Subtype/Link/Rect[440 559 454 568]/Border[0 0 0]/H/N>> endobj 31304 0 obj <>/P 6370 0 R/Type/Annot/A 31470 0 R/Subtype/Link/Rect[456 559 470 568]/Border[0 0 0]/H/N>> endobj 31305 0 obj <>/P 6370 0 R/Type/Annot/A 42126 0 R/Subtype/Link/Rect[472 559 486 568]/Border[0 0 0]/H/N>> endobj 31306 0 obj <>/P 6370 0 R/Type/Annot/A 31467 0 R/Subtype/Link/Rect[359 549 376 559]/Border[0 0 0]/H/N>> endobj 31307 0 obj <>/P 6370 0 R/Type/Annot/A 31465 0 R/Subtype/Link/Rect[376 549 390 558]/Border[0 0 0]/H/N>> endobj 31308 0 obj <>/P 6370 0 R/Type/Annot/A 31463 0 R/Subtype/Link/Rect[392 549 409 559]/Border[0 0 0]/H/N>> endobj 31309 0 obj <>/P 6370 0 R/Type/Annot/A 41956 0 R/Subtype/Link/Rect[410 549 424 558]/Border[0 0 0]/H/N>> endobj 31310 0 obj <>/P 6370 0 R/Type/Annot/A 31460 0 R/Subtype/Link/Rect[426 549 440 558]/Border[0 0 0]/H/N>> endobj 31311 0 obj <>/P 6370 0 R/Type/Annot/A 31458 0 R/Subtype/Link/Rect[442 549 456 558]/Border[0 0 0]/H/N>> endobj 31312 0 obj <>/P 6370 0 R/Type/Annot/A 41837 0 R/Subtype/Link/Rect[458 549 472 558]/Border[0 0 0]/H/N>> endobj 31313 0 obj <>/P 6370 0 R/Type/Annot/A 31455 0 R/Subtype/Link/Rect[474 549 488 558]/Border[0 0 0]/H/N>> endobj 31314 0 obj <>/P 6370 0 R/Type/Annot/A 31453 0 R/Subtype/Link/Rect[359 539 376 549]/Border[0 0 0]/H/N>> endobj 31315 0 obj <>/P 6370 0 R/Type/Annot/A 41683 0 R/Subtype/Link/Rect[376 539 390 548]/Border[0 0 0]/H/N>> endobj 31316 0 obj <>/P 6370 0 R/Type/Annot/A 31691 0 R/Subtype/Link/Rect[392 539 409 549]/Border[0 0 0]/H/N>> endobj 31317 0 obj <>/P 6370 0 R/Type/Annot/A 41599 0 R/Subtype/Link/Rect[410 539 424 548]/Border[0 0 0]/H/N>> endobj 31318 0 obj <>/P 6370 0 R/Type/Annot/A 31685 0 R/Subtype/Link/Rect[426 539 440 548]/Border[0 0 0]/H/N>> endobj 31319 0 obj <>/P 6370 0 R/Type/Annot/A 31681 0 R/Subtype/Link/Rect[442 539 456 548]/Border[0 0 0]/H/N>> endobj 31320 0 obj <>/P 6370 0 R/Type/Annot/A 31677 0 R/Subtype/Link/Rect[458 539 474 549]/Border[0 0 0]/H/N>> endobj 31321 0 obj <>/P 6370 0 R/Type/Annot/A 31673 0 R/Subtype/Link/Rect[475 539 489 548]/Border[0 0 0]/H/N>> endobj 31322 0 obj <>/P 6370 0 R/Type/Annot/A 31669 0 R/Subtype/Link/Rect[491 539 505 548]/Border[0 0 0]/H/N>> endobj 31323 0 obj <>/P 6370 0 R/Type/Annot/A 31665 0 R/Subtype/Link/Rect[359 529 376 539]/Border[0 0 0]/H/N>> endobj 31324 0 obj <>/P 6370 0 R/Type/Annot/A 31626 0 R/Subtype/Link/Rect[376 529 390 538]/Border[0 0 0]/H/N>> endobj 31325 0 obj <>/P 6370 0 R/Type/Annot/A 31657 0 R/Subtype/Link/Rect[392 529 406 538]/Border[0 0 0]/H/N>> endobj 31326 0 obj <>/P 6370 0 R/Type/Annot/A 31653 0 R/Subtype/Link/Rect[408 529 422 538]/Border[0 0 0]/H/N>> endobj 31327 0 obj <>/P 6370 0 R/Type/Annot/A 31649 0 R/Subtype/Link/Rect[424 529 438 538]/Border[0 0 0]/H/N>> endobj 31328 0 obj <>/P 6370 0 R/Type/Annot/A 31646 0 R/Subtype/Link/Rect[440 529 454 538]/Border[0 0 0]/H/N>> endobj 31329 0 obj <>/P 6370 0 R/Type/Annot/A 31642 0 R/Subtype/Link/Rect[456 529 473 539]/Border[0 0 0]/H/N>> endobj 31330 0 obj <>/P 6370 0 R/Type/Annot/A 31638 0 R/Subtype/Link/Rect[474 529 488 538]/Border[0 0 0]/H/N>> endobj 31331 0 obj <>/P 6370 0 R/Type/Annot/A 31634 0 R/Subtype/Link/Rect[490 529 504 538]/Border[0 0 0]/H/N>> endobj 31332 0 obj <>/P 6370 0 R/Type/Annot/A 31630 0 R/Subtype/Link/Rect[359 519 373 528]/Border[0 0 0]/H/N>> endobj 31333 0 obj <>/P 6370 0 R/Type/Annot/A 31625 0 R/Subtype/Link/Rect[375 519 389 528]/Border[0 0 0]/H/N>> endobj 31334 0 obj <>/P 6370 0 R/Type/Annot/A 31621 0 R/Subtype/Link/Rect[391 519 405 528]/Border[0 0 0]/H/N>> endobj 31335 0 obj <>/P 6370 0 R/Type/Annot/A 31617 0 R/Subtype/Link/Rect[407 519 421 528]/Border[0 0 0]/H/N>> endobj 31336 0 obj <>/P 6370 0 R/Type/Annot/A 31614 0 R/Subtype/Link/Rect[423 519 440 529]/Border[0 0 0]/H/N>> endobj 31337 0 obj <>/P 6370 0 R/Type/Annot/A 31610 0 R/Subtype/Link/Rect[440 519 454 528]/Border[0 0 0]/H/N>> endobj 31338 0 obj <>/P 6370 0 R/Type/Annot/A 31605 0 R/Subtype/Link/Rect[456 519 473 529]/Border[0 0 0]/H/N>> endobj 31339 0 obj <>/P 6370 0 R/Type/Annot/A 31601 0 R/Subtype/Link/Rect[474 519 488 528]/Border[0 0 0]/H/N>> endobj 31340 0 obj <>/P 6370 0 R/Type/Annot/A 31555 0 R/Subtype/Link/Rect[490 519 504 528]/Border[0 0 0]/H/N>> endobj 31341 0 obj <>/P 6370 0 R/Type/Annot/A 31593 0 R/Subtype/Link/Rect[359 509 373 518]/Border[0 0 0]/H/N>> endobj 31342 0 obj <>/P 6370 0 R/Type/Annot/A 31588 0 R/Subtype/Link/Rect[375 509 392 519]/Border[0 0 0]/H/N>> endobj 31343 0 obj <>/P 6370 0 R/Type/Annot/A 31584 0 R/Subtype/Link/Rect[392 509 406 518]/Border[0 0 0]/H/N>> endobj 31344 0 obj <>/P 6370 0 R/Type/Annot/A 31580 0 R/Subtype/Link/Rect[408 509 425 519]/Border[0 0 0]/H/N>> endobj 31345 0 obj <>/P 6370 0 R/Type/Annot/A 31576 0 R/Subtype/Link/Rect[426 509 440 518]/Border[0 0 0]/H/N>> endobj 31346 0 obj <>/P 6370 0 R/Type/Annot/A 31572 0 R/Subtype/Link/Rect[442 509 456 518]/Border[0 0 0]/H/N>> endobj 31347 0 obj <>/P 6370 0 R/Type/Annot/A 31568 0 R/Subtype/Link/Rect[458 509 474 519]/Border[0 0 0]/H/N>> endobj 31348 0 obj <>/P 6370 0 R/Type/Annot/A 31564 0 R/Subtype/Link/Rect[475 509 489 518]/Border[0 0 0]/H/N>> endobj 31349 0 obj <>/P 6370 0 R/Type/Annot/A 31560 0 R/Subtype/Link/Rect[491 509 505 518]/Border[0 0 0]/H/N>> endobj 31350 0 obj <>/P 6370 0 R/Type/Annot/A 31556 0 R/Subtype/Link/Rect[359 499 373 508]/Border[0 0 0]/H/N>> endobj 31351 0 obj <>/P 6370 0 R/Type/Annot/A 31551 0 R/Subtype/Link/Rect[375 499 392 509]/Border[0 0 0]/H/N>> endobj 31352 0 obj <>/P 6370 0 R/Type/Annot/A 31548 0 R/Subtype/Link/Rect[392 499 406 508]/Border[0 0 0]/H/N>> endobj 31353 0 obj <>/P 6370 0 R/Type/Annot/A 31543 0 R/Subtype/Link/Rect[408 499 422 508]/Border[0 0 0]/H/N>> endobj 31354 0 obj <>/P 6370 0 R/Type/Annot/A 31539 0 R/Subtype/Link/Rect[424 499 438 508]/Border[0 0 0]/H/N>> endobj 31355 0 obj <>/P 6370 0 R/Type/Annot/A 31535 0 R/Subtype/Link/Rect[440 499 454 508]/Border[0 0 0]/H/N>> endobj 31356 0 obj <>/P 6370 0 R/Type/Annot/A 31767 0 R/Subtype/Link/Rect[456 499 470 508]/Border[0 0 0]/H/N>> endobj 31357 0 obj <>/P 6370 0 R/Type/Annot/A 31527 0 R/Subtype/Link/Rect[472 499 489 509]/Border[0 0 0]/H/N>> endobj 31358 0 obj <>/P 6370 0 R/Type/Annot/A 33625 0 R/Subtype/Link/Rect[490 499 504 508]/Border[0 0 0]/H/N>> endobj 31359 0 obj <>/P 6370 0 R/Type/Annot/A 31762 0 R/Subtype/Link/Rect[359 489 376 499]/Border[0 0 0]/H/N>> endobj 31360 0 obj <>/P 6370 0 R/Type/Annot/A 31519 0 R/Subtype/Link/Rect[376 489 390 498]/Border[0 0 0]/H/N>> endobj 31361 0 obj <>/P 6370 0 R/Type/Annot/A 31516 0 R/Subtype/Link/Rect[392 489 406 498]/Border[0 0 0]/H/N>> endobj 31362 0 obj <>/P 6370 0 R/Type/Annot/A 31513 0 R/Subtype/Link/Rect[408 489 422 498]/Border[0 0 0]/H/N>> endobj 31363 0 obj <>/P 6370 0 R/Type/Annot/A 37987 0 R/Subtype/Link/Rect[424 489 441 499]/Border[0 0 0]/H/N>> endobj 31364 0 obj <>/P 6370 0 R/Type/Annot/A 31508 0 R/Subtype/Link/Rect[442 489 456 498]/Border[0 0 0]/H/N>> endobj 31365 0 obj <>/P 6370 0 R/Type/Annot/A 31505 0 R/Subtype/Link/Rect[458 489 472 498]/Border[0 0 0]/H/N>> endobj 31366 0 obj <>/P 6370 0 R/Type/Annot/A 31772 0 R/Subtype/Link/Rect[474 489 490 499]/Border[0 0 0]/H/N>> endobj 31367 0 obj <>/P 6370 0 R/Type/Annot/A 31769 0 R/Subtype/Link/Rect[491 489 505 498]/Border[0 0 0]/H/N>> endobj 31368 0 obj <>/P 6370 0 R/Type/Annot/A 31768 0 R/Subtype/Link/Rect[359 479 373 488]/Border[0 0 0]/H/N>> endobj 31369 0 obj <>/P 6370 0 R/Type/Annot/A 31765 0 R/Subtype/Link/Rect[375 479 389 488]/Border[0 0 0]/H/N>> endobj 31370 0 obj <>/P 6370 0 R/Type/Annot/A 31764 0 R/Subtype/Link/Rect[391 479 408 489]/Border[0 0 0]/H/N>> endobj 31371 0 obj <>/P 6370 0 R/Type/Annot/A 31763 0 R/Subtype/Link/Rect[408 479 422 488]/Border[0 0 0]/H/N>> endobj 31372 0 obj <>/P 6370 0 R/Type/Annot/A 31761 0 R/Subtype/Link/Rect[424 479 438 488]/Border[0 0 0]/H/N>> endobj 31373 0 obj <>/P 6370 0 R/Type/Annot/A 31760 0 R/Subtype/Link/Rect[440 479 457 489]/Border[0 0 0]/H/N>> endobj 31374 0 obj <>/P 6370 0 R/Type/Annot/A 31759 0 R/Subtype/Link/Rect[458 479 472 488]/Border[0 0 0]/H/N>> endobj 31375 0 obj <>/P 6370 0 R/Type/Annot/A 31758 0 R/Subtype/Link/Rect[474 479 490 489]/Border[0 0 0]/H/N>> endobj 31376 0 obj <>/P 6370 0 R/Type/Annot/A 31757 0 R/Subtype/Link/Rect[491 479 505 488]/Border[0 0 0]/H/N>> endobj 31377 0 obj <>/P 6370 0 R/Type/Annot/A 31755 0 R/Subtype/Link/Rect[359 469 373 478]/Border[0 0 0]/H/N>> endobj 31378 0 obj <>/P 6370 0 R/Type/Annot/A 31753 0 R/Subtype/Link/Rect[375 469 389 478]/Border[0 0 0]/H/N>> endobj 31379 0 obj <>/P 6370 0 R/Type/Annot/A 31751 0 R/Subtype/Link/Rect[391 469 405 478]/Border[0 0 0]/H/N>> endobj 31380 0 obj <>/P 6370 0 R/Type/Annot/A 31749 0 R/Subtype/Link/Rect[407 469 424 479]/Border[0 0 0]/H/N>> endobj 31381 0 obj <>/P 6370 0 R/Type/Annot/A 31747 0 R/Subtype/Link/Rect[424 469 438 478]/Border[0 0 0]/H/N>> endobj 31382 0 obj <>/P 6370 0 R/Type/Annot/A 31745 0 R/Subtype/Link/Rect[440 469 457 479]/Border[0 0 0]/H/N>> endobj 31383 0 obj <>/P 6370 0 R/Type/Annot/A 31743 0 R/Subtype/Link/Rect[458 469 472 478]/Border[0 0 0]/H/N>> endobj 31384 0 obj <>/P 6370 0 R/Type/Annot/A 31741 0 R/Subtype/Link/Rect[474 469 488 478]/Border[0 0 0]/H/N>> endobj 31385 0 obj <>/P 6370 0 R/Type/Annot/A 31739 0 R/Subtype/Link/Rect[490 469 504 478]/Border[0 0 0]/H/N>> endobj 31386 0 obj <>/P 6370 0 R/Type/Annot/A 31737 0 R/Subtype/Link/Rect[359 459 373 468]/Border[0 0 0]/H/N>> endobj 31387 0 obj <>/P 6370 0 R/Type/Annot/A 31735 0 R/Subtype/Link/Rect[375 459 389 468]/Border[0 0 0]/H/N>> endobj 31388 0 obj <>/P 6370 0 R/Type/Annot/A 31733 0 R/Subtype/Link/Rect[391 459 405 468]/Border[0 0 0]/H/N>> endobj 31389 0 obj <>/P 6370 0 R/Type/Annot/A 31731 0 R/Subtype/Link/Rect[407 459 421 468]/Border[0 0 0]/H/N>> endobj 31390 0 obj <>/P 6370 0 R/Type/Annot/A 31729 0 R/Subtype/Link/Rect[423 459 437 468]/Border[0 0 0]/H/N>> endobj 31391 0 obj <>/P 6370 0 R/Type/Annot/A 31727 0 R/Subtype/Link/Rect[439 459 453 468]/Border[0 0 0]/H/N>> endobj 31392 0 obj <>/P 6370 0 R/Type/Annot/A 31725 0 R/Subtype/Link/Rect[455 459 469 468]/Border[0 0 0]/H/N>> endobj 31393 0 obj <>/P 6370 0 R/Type/Annot/A 31723 0 R/Subtype/Link/Rect[471 459 485 468]/Border[0 0 0]/H/N>> endobj 31394 0 obj <>/P 6370 0 R/Type/Annot/A 31721 0 R/Subtype/Link/Rect[487 459 503 469]/Border[0 0 0]/H/N>> endobj 31395 0 obj <>/P 6370 0 R/Type/Annot/A 31719 0 R/Subtype/Link/Rect[504 459 516 468]/Border[0 0 0]/H/N>> endobj 31396 0 obj <>/P 6370 0 R/Type/Annot/A 31717 0 R/Subtype/Link/Rect[421 449 433 458]/Border[0 0 0]/H/N>> endobj 31397 0 obj <>/P 6370 0 R/Type/Annot/A 31715 0 R/Subtype/Link/Rect[393 439 405 448]/Border[0 0 0]/H/N>> endobj 31398 0 obj <>/P 6370 0 R/Type/Annot/A 31713 0 R/Subtype/Link/Rect[424 429 438 438]/Border[0 0 0]/H/N>> endobj 31399 0 obj <>/P 6370 0 R/Type/Annot/A 31711 0 R/Subtype/Link/Rect[440 429 452 438]/Border[0 0 0]/H/N>> endobj 31400 0 obj <>/P 6370 0 R/Type/Annot/A 31709 0 R/Subtype/Link/Rect[398 419 410 428]/Border[0 0 0]/H/N>> endobj 31401 0 obj <>/P 6370 0 R/Type/Annot/A 31707 0 R/Subtype/Link/Rect[425 409 437 418]/Border[0 0 0]/H/N>> endobj 31402 0 obj <>/P 6370 0 R/Type/Annot/A 31705 0 R/Subtype/Link/Rect[372 399 384 408]/Border[0 0 0]/H/N>> endobj 31403 0 obj <>/P 6370 0 R/Type/Annot/A 31703 0 R/Subtype/Link/Rect[415 389 427 398]/Border[0 0 0]/H/N>> endobj 31404 0 obj <>/P 6370 0 R/Type/Annot/A 31700 0 R/Subtype/Link/Rect[405 379 419 388]/Border[0 0 0]/H/N>> endobj 31405 0 obj <>/P 6370 0 R/Type/Annot/A 31697 0 R/Subtype/Link/Rect[421 379 435 388]/Border[0 0 0]/H/N>> endobj 31406 0 obj <>/P 6370 0 R/Type/Annot/A 31694 0 R/Subtype/Link/Rect[437 379 454 389]/Border[0 0 0]/H/N>> endobj 31407 0 obj <>/P 6370 0 R/Type/Annot/A 31690 0 R/Subtype/Link/Rect[454 379 468 388]/Border[0 0 0]/H/N>> endobj 31408 0 obj <>/P 6370 0 R/Type/Annot/A 31688 0 R/Subtype/Link/Rect[470 379 484 388]/Border[0 0 0]/H/N>> endobj 31409 0 obj <>/P 6370 0 R/Type/Annot/A 31684 0 R/Subtype/Link/Rect[486 379 500 388]/Border[0 0 0]/H/N>> endobj 31410 0 obj <>/P 6370 0 R/Type/Annot/A 31680 0 R/Subtype/Link/Rect[502 379 516 388]/Border[0 0 0]/H/N>> endobj 31411 0 obj <>/P 6370 0 R/Type/Annot/A 31676 0 R/Subtype/Link/Rect[359 369 371 378]/Border[0 0 0]/H/N>> endobj 31412 0 obj <>/P 6370 0 R/Type/Annot/A 31672 0 R/Subtype/Link/Rect[398 359 410 368]/Border[0 0 0]/H/N>> endobj 31413 0 obj <>/P 6370 0 R/Type/Annot/A 37637 0 R/Subtype/Link/Rect[424 349 436 358]/Border[0 0 0]/H/N>> endobj 31414 0 obj <>/P 6370 0 R/Type/Annot/A 31666 0 R/Subtype/Link/Rect[380 340 394 348]/Border[0 0 0]/H/N>> endobj 31415 0 obj <>/P 6370 0 R/Type/Annot/A 31662 0 R/Subtype/Link/Rect[396 340 410 348]/Border[0 0 0]/H/N>> endobj 31416 0 obj <>/P 6370 0 R/Type/Annot/A 31659 0 R/Subtype/Link/Rect[412 340 424 348]/Border[0 0 0]/H/N>> endobj 31417 0 obj <>/P 6370 0 R/Type/Annot/A 31655 0 R/Subtype/Link/Rect[420 330 428 338]/Border[0 0 0]/H/N>> endobj 31418 0 obj <>/P 6370 0 R/Type/Annot/A 31651 0 R/Subtype/Link/Rect[420 320 428 328]/Border[0 0 0]/H/N>> endobj 31419 0 obj <>/P 6370 0 R/Type/Annot/A 31648 0 R/Subtype/Link/Rect[387 310 399 318]/Border[0 0 0]/H/N>> endobj 31420 0 obj <>/P 6370 0 R/Type/Annot/A 31644 0 R/Subtype/Link/Rect[436 300 450 308]/Border[0 0 0]/H/N>> endobj 31421 0 obj <>/P 6370 0 R/Type/Annot/A 31640 0 R/Subtype/Link/Rect[452 300 464 308]/Border[0 0 0]/H/N>> endobj 31422 0 obj <>/P 6370 0 R/Type/Annot/A 31636 0 R/Subtype/Link/Rect[364 290 372 298]/Border[0 0 0]/H/N>> endobj 31423 0 obj <>/P 6370 0 R/Type/Annot/A 31632 0 R/Subtype/Link/Rect[424 280 436 288]/Border[0 0 0]/H/N>> endobj 31424 0 obj <>/P 6370 0 R/Type/Annot/A 31628 0 R/Subtype/Link/Rect[418 270 426 278]/Border[0 0 0]/H/N>> endobj 31425 0 obj <>/P 6370 0 R/Type/Annot/A 31623 0 R/Subtype/Link/Rect[420 260 436 269]/Border[0 0 0]/H/N>> endobj 31426 0 obj <>/P 6370 0 R/Type/Annot/A 31619 0 R/Subtype/Link/Rect[437 260 451 268]/Border[0 0 0]/H/N>> endobj 31427 0 obj <>/P 6370 0 R/Type/Annot/A 31544 0 R/Subtype/Link/Rect[453 260 470 269]/Border[0 0 0]/H/N>> endobj 31428 0 obj <>/P 6370 0 R/Type/Annot/A 31613 0 R/Subtype/Link/Rect[470 260 484 268]/Border[0 0 0]/H/N>> endobj 31429 0 obj <>/P 6370 0 R/Type/Annot/A 31609 0 R/Subtype/Link/Rect[486 260 500 268]/Border[0 0 0]/H/N>> endobj 31430 0 obj <>/P 6370 0 R/Type/Annot/A 31606 0 R/Subtype/Link/Rect[502 260 516 268]/Border[0 0 0]/H/N>> endobj 31431 0 obj <>/P 6370 0 R/Type/Annot/A 31602 0 R/Subtype/Link/Rect[359 250 373 258]/Border[0 0 0]/H/N>> endobj 31432 0 obj <>/P 6370 0 R/Type/Annot/A 31599 0 R/Subtype/Link/Rect[375 250 389 258]/Border[0 0 0]/H/N>> endobj 31433 0 obj <>/P 6370 0 R/Type/Annot/A 31596 0 R/Subtype/Link/Rect[391 250 403 258]/Border[0 0 0]/H/N>> endobj 31434 0 obj <>/P 6370 0 R/Type/Annot/A 31592 0 R/Subtype/Link/Rect[398 240 410 248]/Border[0 0 0]/H/N>> endobj 31435 0 obj <>/P 6370 0 R/Type/Annot/A 31587 0 R/Subtype/Link/Rect[429 230 443 238]/Border[0 0 0]/H/N>> endobj 31436 0 obj <>/P 6370 0 R/Type/Annot/A 31583 0 R/Subtype/Link/Rect[445 230 457 238]/Border[0 0 0]/H/N>> endobj 31437 0 obj <>/P 6370 0 R/Type/Annot/A 31579 0 R/Subtype/Link/Rect[400 220 417 229]/Border[0 0 0]/H/N>> endobj 31438 0 obj <>/P 6370 0 R/Type/Annot/A 31575 0 R/Subtype/Link/Rect[418 220 432 228]/Border[0 0 0]/H/N>> endobj 31439 0 obj <>/P 6370 0 R/Type/Annot/A 31571 0 R/Subtype/Link/Rect[434 220 446 228]/Border[0 0 0]/H/N>> endobj 31440 0 obj <>/P 6370 0 R/Type/Annot/A 31567 0 R/Subtype/Link/Rect[402 210 414 218]/Border[0 0 0]/H/N>> endobj 31441 0 obj <>/P 6370 0 R/Type/Annot/A 31563 0 R/Subtype/Link/Rect[415 200 431 209]/Border[0 0 0]/H/N>> endobj 31442 0 obj <>/P 6370 0 R/Type/Annot/A 31559 0 R/Subtype/Link/Rect[432 200 444 208]/Border[0 0 0]/H/N>> endobj 31443 0 obj <>/P 6370 0 R/Type/Annot/A 31554 0 R/Subtype/Link/Rect[398 190 410 198]/Border[0 0 0]/H/N>> endobj 31444 0 obj <>/P 6370 0 R/Type/Annot/A 31550 0 R/Subtype/Link/Rect[467 170 479 178]/Border[0 0 0]/H/N>> endobj 31445 0 obj <>/P 6370 0 R/Type/Annot/A 31547 0 R/Subtype/Link/Rect[458 160 470 168]/Border[0 0 0]/H/N>> endobj 31446 0 obj <>/P 6370 0 R/Type/Annot/A 31542 0 R/Subtype/Link/Rect[410 150 422 158]/Border[0 0 0]/H/N>> endobj 31447 0 obj <>/P 6370 0 R/Type/Annot/A 31766 0 R/Subtype/Link/Rect[364 608 375 617]/Border[0 0 0]/H/N>> endobj 31448 0 obj <>/P 6370 0 R/Type/Annot/A 31536 0 R/Subtype/Link/Rect[379 608 394 617]/Border[0 0 0]/H/N>> endobj 31449 0 obj <>/P 6370 0 R/Type/Annot/A 31532 0 R/Subtype/Link/Rect[396 608 410 617]/Border[0 0 0]/H/N>> endobj 31450 0 obj <>/P 6370 0 R/Type/Annot/A 31529 0 R/Subtype/Link/Rect[412 608 431 617]/Border[0 0 0]/H/N>> endobj 31451 0 obj <>/P 6370 0 R/Type/Annot/A 31525 0 R/Subtype/Link/Rect[192 228 209 237]/Border[0 0 0]/H/N>> endobj 31452 0 obj <> endobj 31453 0 obj <> endobj 31454 0 obj <> endobj 31455 0 obj <> endobj 31456 0 obj <> endobj 31457 0 obj <> endobj 31458 0 obj <> endobj 31459 0 obj <> endobj 31460 0 obj <> endobj 31461 0 obj <> endobj 31462 0 obj <> endobj 31463 0 obj <> endobj 31464 0 obj <> endobj 31465 0 obj <> endobj 31466 0 obj <> endobj 31467 0 obj <> endobj 31468 0 obj <> endobj 31469 0 obj <> endobj 31470 0 obj <> endobj 31471 0 obj <> endobj 31472 0 obj <> endobj 31473 0 obj <> endobj 31474 0 obj <> endobj 31475 0 obj <> endobj 31476 0 obj <> endobj 31477 0 obj <> endobj 31478 0 obj <> endobj 31479 0 obj <> endobj 31480 0 obj <> endobj 31481 0 obj <> endobj 31482 0 obj <> endobj 31483 0 obj <> endobj 31484 0 obj <> endobj 31485 0 obj <> endobj 31486 0 obj <> endobj 31487 0 obj <> endobj 31488 0 obj <> endobj 31489 0 obj <> endobj 31490 0 obj <> endobj 31491 0 obj <> endobj 31492 0 obj <> endobj 31493 0 obj <> endobj 31494 0 obj <> endobj 31495 0 obj <> endobj 31496 0 obj <> endobj 31497 0 obj <> endobj 31498 0 obj <> endobj 31499 0 obj <> endobj 31500 0 obj <> endobj 31501 0 obj <> endobj 31502 0 obj <> endobj 31503 0 obj <> endobj 31504 0 obj <> endobj 31505 0 obj <> endobj 31506 0 obj <> endobj 31507 0 obj <> endobj 31508 0 obj <> endobj 31509 0 obj <> endobj 31510 0 obj <> endobj 31511 0 obj <> endobj 31512 0 obj <> endobj 31513 0 obj <> endobj 31514 0 obj <> endobj 31515 0 obj <> endobj 31516 0 obj <> endobj 31517 0 obj <> endobj 31518 0 obj <> endobj 31519 0 obj <> endobj 31520 0 obj <> endobj 31521 0 obj <> endobj 31522 0 obj <> endobj 31523 0 obj <> endobj 31524 0 obj <> endobj 31525 0 obj <> endobj 31526 0 obj <> endobj 31527 0 obj <> endobj 31528 0 obj <> endobj 31529 0 obj <> endobj 31530 0 obj <> endobj 31531 0 obj <> endobj 31532 0 obj <> endobj 31533 0 obj <> endobj 31534 0 obj <> endobj 31535 0 obj <> endobj 31536 0 obj <> endobj 31537 0 obj <> endobj 31538 0 obj <> endobj 31539 0 obj <> endobj 31540 0 obj <> endobj 31541 0 obj <> endobj 31542 0 obj <> endobj 31543 0 obj <> endobj 31544 0 obj <> endobj 31545 0 obj <> endobj 31546 0 obj <> endobj 31547 0 obj <> endobj 31548 0 obj <> endobj 31549 0 obj <> endobj 31550 0 obj <> endobj 31551 0 obj <> endobj 31552 0 obj <> endobj 31553 0 obj <> endobj 31554 0 obj <> endobj 31555 0 obj <> endobj 31556 0 obj <> endobj 31557 0 obj <> endobj 31558 0 obj <> endobj 31559 0 obj <> endobj 31560 0 obj <> endobj 31561 0 obj <> endobj 31562 0 obj <> endobj 31563 0 obj <> endobj 31564 0 obj <> endobj 31565 0 obj <> endobj 31566 0 obj <> endobj 31567 0 obj <> endobj 31568 0 obj <> endobj 31569 0 obj <> endobj 31570 0 obj <> endobj 31571 0 obj <> endobj 31572 0 obj <> endobj 31573 0 obj <> endobj 31574 0 obj <> endobj 31575 0 obj <> endobj 31576 0 obj <> endobj 31577 0 obj <> endobj 31578 0 obj <> endobj 31579 0 obj <> endobj 31580 0 obj <> endobj 31581 0 obj <> endobj 31582 0 obj <> endobj 31583 0 obj <> endobj 31584 0 obj <> endobj 31585 0 obj <> endobj 31586 0 obj <> endobj 31587 0 obj <> endobj 31588 0 obj <> endobj 31589 0 obj <> endobj 31590 0 obj <> endobj 31591 0 obj <> endobj 31592 0 obj <> endobj 31593 0 obj <> endobj 31594 0 obj <> endobj 31595 0 obj <> endobj 31596 0 obj <> endobj 31597 0 obj <> endobj 31598 0 obj <> endobj 31599 0 obj <> endobj 31600 0 obj <> endobj 31601 0 obj <> endobj 31602 0 obj <> endobj 31603 0 obj <> endobj 31604 0 obj <> endobj 31605 0 obj <> endobj 31606 0 obj <> endobj 31607 0 obj <> endobj 31608 0 obj <> endobj 31609 0 obj <> endobj 31610 0 obj <> endobj 31611 0 obj <> endobj 31612 0 obj <> endobj 31613 0 obj <> endobj 31614 0 obj <> endobj 31615 0 obj <> endobj 31616 0 obj <> endobj 31617 0 obj <> endobj 31618 0 obj <> endobj 31619 0 obj <> endobj 31620 0 obj <> endobj 31621 0 obj <> endobj 31622 0 obj <> endobj 31623 0 obj <> endobj 31624 0 obj <> endobj 31625 0 obj <> endobj 31626 0 obj <> endobj 31627 0 obj <> endobj 31628 0 obj <> endobj 31629 0 obj <> endobj 31630 0 obj <> endobj 31631 0 obj <> endobj 31632 0 obj <> endobj 31633 0 obj <> endobj 31634 0 obj <> endobj 31635 0 obj <> endobj 31636 0 obj <> endobj 31637 0 obj <> endobj 31638 0 obj <> endobj 31639 0 obj <> endobj 31640 0 obj <> endobj 31641 0 obj <> endobj 31642 0 obj <> endobj 31643 0 obj <> endobj 31644 0 obj <> endobj 31645 0 obj <> endobj 31646 0 obj <> endobj 31647 0 obj <> endobj 31648 0 obj <> endobj 31649 0 obj <> endobj 31650 0 obj <> endobj 31651 0 obj <> endobj 31652 0 obj <> endobj 31653 0 obj <> endobj 31654 0 obj <> endobj 31655 0 obj <> endobj 31656 0 obj <> endobj 31657 0 obj <> endobj 31658 0 obj <> endobj 31659 0 obj <> endobj 31660 0 obj <> endobj 31661 0 obj <> endobj 31662 0 obj <> endobj 31663 0 obj <> endobj 31664 0 obj <> endobj 31665 0 obj <> endobj 31666 0 obj <> endobj 31667 0 obj <> endobj 31668 0 obj <> endobj 31669 0 obj <> endobj 31670 0 obj <> endobj 31671 0 obj <> endobj 31672 0 obj <> endobj 31673 0 obj <> endobj 31674 0 obj <> endobj 31675 0 obj <> endobj 31676 0 obj <> endobj 31677 0 obj <> endobj 31678 0 obj <> endobj 31679 0 obj <> endobj 31680 0 obj <> endobj 31681 0 obj <> endobj 31682 0 obj <> endobj 31683 0 obj <> endobj 31684 0 obj <> endobj 31685 0 obj <> endobj 31686 0 obj <> endobj 31687 0 obj <> endobj 31688 0 obj <> endobj 31689 0 obj <> endobj 31690 0 obj <> endobj 31691 0 obj <> endobj 31692 0 obj <> endobj 31693 0 obj <> endobj 31694 0 obj <> endobj 31695 0 obj <> endobj 31696 0 obj <> endobj 31697 0 obj <> endobj 31698 0 obj <> endobj 31699 0 obj <> endobj 31700 0 obj <> endobj 31701 0 obj <> endobj 31702 0 obj <> endobj 31703 0 obj <> endobj 31704 0 obj <> endobj 31705 0 obj <> endobj 31706 0 obj <> endobj 31707 0 obj <> endobj 31708 0 obj <> endobj 31709 0 obj <> endobj 31710 0 obj <> endobj 31711 0 obj <> endobj 31712 0 obj <> endobj 31713 0 obj <> endobj 31714 0 obj <> endobj 31715 0 obj <> endobj 31716 0 obj <> endobj 31717 0 obj <> endobj 31718 0 obj <> endobj 31719 0 obj <> endobj 31720 0 obj <> endobj 31721 0 obj <> endobj 31722 0 obj <> endobj 31723 0 obj <> endobj 31724 0 obj <> endobj 31725 0 obj <> endobj 31726 0 obj <> endobj 31727 0 obj <> endobj 31728 0 obj <> endobj 31729 0 obj <> endobj 31730 0 obj <> endobj 31731 0 obj <> endobj 31732 0 obj <> endobj 31733 0 obj <> endobj 31734 0 obj <> endobj 31735 0 obj <> endobj 31736 0 obj <> endobj 31737 0 obj <> endobj 31738 0 obj <> endobj 31739 0 obj <> endobj 31740 0 obj <> endobj 31741 0 obj <> endobj 31742 0 obj <> endobj 31743 0 obj <> endobj 31744 0 obj <> endobj 31745 0 obj <> endobj 31746 0 obj <> endobj 31747 0 obj <> endobj 31748 0 obj <> endobj 31749 0 obj <> endobj 31750 0 obj <> endobj 31751 0 obj <> endobj 31752 0 obj <> endobj 31753 0 obj <> endobj 31754 0 obj <> endobj 31755 0 obj <> endobj 31756 0 obj <> endobj 31757 0 obj <> endobj 31758 0 obj <> endobj 31759 0 obj <> endobj 31760 0 obj <> endobj 31761 0 obj <> endobj 31762 0 obj <> endobj 31763 0 obj <> endobj 31764 0 obj <> endobj 31765 0 obj <> endobj 31766 0 obj <> endobj 31767 0 obj <> endobj 31768 0 obj <> endobj 31769 0 obj <> endobj 31770 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31771 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31772 0 obj <> endobj 31773 0 obj <> endobj 31774 0 obj <> endobj 31775 0 obj <> endobj 31776 0 obj <> stream q /X1 Do Q q endstream endobj 31777 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31778 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31779 0 obj <> stream HWko_qa ׼>n x"hh8HC{gHJgiR,ι\)^oׯ~Vz^%өUYtbU[FTuȨJEW(E_})mVoj׷Vuыet42jyH 8W]=_~hnN36{"s:<~~hVeשKċ׏jM~ٙܤMqߗ$:X/Q r8v<~AX7 VjRmЉs<̀m6  cbHCŀe g Yލ),+̽[ sw{{g3>a}'O)s S>g}&ϘLp1>gs}}`e.Bj),bRK1dqCwO1` ,VH-Ő%gBj),!C ,VH-ŀ%bܳZ!C R Y{Z+bܳZ!ENH-ŐS XBj),b),!C ,NH-ŀ%bܳ:!C R Y{Z'bܳ:!Z!KpRR Y{Z'b {KH-ŐS Y=ŀ%bܳz!C R Y{Z/bܳz!Z!KpRR Y{Z/bRK1d YjZ!KpRRl%Bj),bRK1dqCwt;9]jtʨmF2Uikhqw]Y/jWR]*닶?oՕY-~Wor I)[ܷU,eNjզڮ/_Kˀ|R}X9> 7s&,zIF=Z_v{6 ?i":|P35)ϧ׃ot>U[eʼnoDf>XX?Qdc89u_;qk⠳cjSmjoJ&bbpxuvWE_54oի/}S=ˀ*~ -KbL̅g֩oƊ }3q9ms&/Nt~ڹh;=wpg-Eq5\jg8Sv]`CYcq8mN'[qʞXcun,N'a{w E)ǓҶ'O.?\vx[ ˺m&ITtx=wURwSe+zܞF5>Lg-LyHeyߴ}~Z1+p&x0u>ڃx__.BO+ |ˑu1]k<_Jzo>H%br< _?.IվTLǩ_Z:wN||%6=i!8'Ve׍bΚX7 g4AocwhV5)zAGp'_t@8?xΟY{g֤BOCs*Ym|)cɖs鱔BpFԉCF&Y,&#at zS'/jdATxb' qOU_ăR4 Rg#Y?ћnoXL7ϻ%4y2sv3@YRZG(,d܎ohAPM5PӁL暍s"UX6f"LDfpR&M3^:Nr 3y7骉F&KFӁ:=6 oP_hgu{h, 1(l0kјJ 7DO0;,ri}V b^ve( c+˺4h#%p㌩vo t ;Ib!;@Nal 0N1stF;n|hZz1!'Mݙ L[a4t7&c&=X 0endstream endobj 31780 0 obj <>/P 802 0 R/Type/Annot/A 31781 0 R/Subtype/Link/Rect[93.6004028 217.057999 184.404999 236.738007]/Border[0 0 0]/H/N>> endobj 31781 0 obj <> endobj 31782 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31783 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31784 0 obj <> endobj 31785 0 obj <> stream q /X1 Do Q q endstream endobj 31786 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31787 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31788 0 obj <> stream HSFƿ미0ӌ rypS2@(VaT[v2m y݈ׯΎNo߾;> ʆ RZ$ #-"CT@R4oh>hr(28xbeAnP"7 LE6 :bؔJtu$;*M:`VNp4*EYMZ/0="9tA/ dZ}8}`B-J3WA\]K13q#L}dKE!.kޥu! \JQxyf5 &70z[BozK#>"C}DŽ>fcB0 O' }BS>%)Cz;BzYńk@3(=ּI-E.J5bR5p1$I-Гj&X.&XCORb \ =IfR5bR5p1$I-Гj&X.&XCORb \ =IfRY`b \kŤkXǚw1zZäkbIj ZyZ'5Lj.0Św1zZäkbIj ZyZ'5Lj.0,Lj.J5bR5pQzcͻb \ =IeR5p1$I-ּI-ГZ&XCORkbͻb \ =IeR5p1$I-ּI-ГZ&XCORkbmDLj.J5bR5pQzһ9g?΂wYpeJ(4]8,Q7G ojn|tM}7lD>yu<?˔4tm[#jY{< N¨uc1or $޼rM"n7rAg Hơj++ZӖ%NB2]\E޶8<8O>Ц9ˢԆ B [<-6 tռ+ҫY跏gj$6ٗѨ՘cwjr:.~GGV3g{vxq;Cd5vv#ML)*IȤ) 0XN5Njy$ru qh_nrfyY 'z2|!_ڟ;"70^/ϜVЭOwH);E{^g"o^5ٵ֦&j_PSV}aQV|oV-ˇjѴ{ݏ~,֡.`?ΗtW6C众_5S8kgoA7Z}õC|+?w|R?-D5U>+D{/D;Pdnc26X2:up[Ů$ c\s[ϛp>UMծ( 5.iv7߈O\ÈkDT?%:Bc2 &ET;;Wzu˵9ߖatYܦegQy sj[9vi6#6֣/^ ꣋q Plo{R9U7÷hDmfoYDA,7,XE܌Ce0^oLB{N*>^ΎE$n$endstream endobj 31789 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31790 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31791 0 obj <> endobj 31792 0 obj <> endobj 31793 0 obj <> endobj 31794 0 obj <> endobj 31795 0 obj <> endobj 31796 0 obj <> endobj 31797 0 obj <> endobj 31798 0 obj <> endobj 31799 0 obj <> endobj 31800 0 obj <> endobj 31801 0 obj <> endobj 31802 0 obj <> stream q /X1 Do Q q endstream endobj 31803 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31804 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31805 0 obj <> stream H[oV+N4F \4Haч(0rRd(38R3t_'O޽)ͳg_(*\.IM7ul?Ͳ(ͧ™)~Kb5_Egϊt^Bi5lb2P~ҷ'#O;pr1M9uWxȉWmQdAWu7_+;L1>fj*yߋ"{¼x_$,WI)tR#9M (9^jDyޫ*}J@>*}J@'> O*}W*}W*} *} *} *}7*}7*}JAzYF+EjƔN/5jƔN/5tzV+5@zZV+5@zZV+5jHVjHVjFXԘj=XԘj=XԈS ZS Zڢ`RcJQ`RcJS:ԈS ZmS ZmQ`Rc W `Rc W `R# VjLjVjLjVjDJ)^6J)^6JmQDZ1K(Z1K)^jDJ)^6J)^6J(Z1ҫFZ1ҫFZV+5@zV+5@zV+5jHVjHVj(XԘFXԘƔNm9ɢxGm3Iq>Tuiia7UbnoAtѐÎXgS2:ڼCAC|?>MY<ؾ| 6]磜ֳ{w{t;!h_Yo!eaka4>m_ lW~R7/}lOwSV6)QcC魿q6/G1;>ΦOt|S涧tӡ7O;}i󋋏ԷMMyޫå~fkM;|w<~% w^] kQ7T>] W:n[}U[P777})'UBSԘʀR^xEWT^ x%啀WR^W*UZyV^ jW啁WV^xeK%5Ԉr)/+/T=Ԙ^^jL/{z/5SKރK)zARRc x{1FԘ^^jL/z/5}SK>K)z@RRc x{1TԘ^^jLi/z/5}SK>K)zARRc xG{1T#Ԙ^^jL/z/5}SKjDK)m9n?_I؟Q}jOf#7T[A/_?>]qPMÏͱ~Pc~Q̻̜yolīw/L]endstream endobj 31806 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31807 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31808 0 obj <> stream q /X1 Do Q q endstream endobj 31809 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31810 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31811 0 obj <> stream HWkoܶ_2E')mSvZW{%9!ǒ[F!u{9L~}w߾׋ *c"H9R$ u^̻$rw}u+P{Wn9{;j},bW$!+X1Ylzw>L\|( Xxz|pBbd"֘}?&Gs"I(? Y8{fQ~0_gv9d{" xWdgƻ.0Q(C;T(ˇ@ܣ%o a a/a/a/ac}L >q'a}JO)>uga3}F9>wa_ }Aw4} >Dm>Dm\Pjmj9Zۇ(ZNPCQ-'TkEwT >@}";jmj9Z(BQ{GPCQ-'TkZO}r>@}r>Dm>D BQ{GPZۇ(ZA!`V}"TkEwT+>D BPjmjZۇ(ZA^L!eoE!eo岷}"TkEwT}"; >@}"; >DƄjm>DƄjmjcBPjmjcBQ{G1Zz Zۇ(Zۇ(C˾Y6fzow.Yv/WgJ4gdo9nOle7SwvX L7 ikyW@^3ra};(`uY-S4:\4aQGjz-lv4-c1ybQv;KwR= q SA X0%a`K5q(7#o|vwiʺDh"+l(GQWQe,S gY_/]ֿ4 ₧e2`"Y\}T7+B=GLXwڠxjɂqLD^4sDҾ4ь4?¦¦E1?C`Mw%b ̦fJ+?ZVB<[G/$< L}M-ͩy=o7, `{E[U4YCSo&2! HgΒ,#;'aAb /0iFA|J|6*4$3TuѼt1|srPb9'E\I8ƔRP"U_NV%rIv,UpPE j #3r>_z~{{^q;,Dmֽp]ȗ$'ZLRG5`%e`)8b5 Ź9 6n>:G:E{zͩO,Ë& A%qE"XBWOI:9' i_e5 R?M4vbV-^o{/]R^N05oe\f_%,y3Owθr|Pxw+ Wi'F~o{]l 6ѫzެW݀9&u(ZcX +/53k/ɼxgkoOM 9:.ѱh[Odsb17*q.' '` |@YQ,A:oR $K:Qjh͒hz~4|Pv썽|Y<tMq(eUkE6TñrVI pv ^}fG!\w8nsz^zXl=m Ol $ v2ߏzX#{2mS"E?.* 3`KpJDX l)y\.{+̉6H$r,3ށY*Oq9xnģ+$Epyu-kZJ%5є: 7/m ~  `gΑH JEUރϲMvPYUj^HHgJz6QF]v-Pp>DjFZ >Dg4#"G|>fdJUh=`G[;tp} pz48e7c:c] s{R#-*h r×,dHv0;bV8tFprN߄1y\I%߽nq 0Ia,.}_יɮf6xfM`8I{xpzu7:/4# ~s6Θp((:r(L%&'8ʑNaϝ2]~ZUT8.aA:o#`d8BJȵ8>*HSH˘fb $Zhw 4gJ9 ݍJPރęVb7ܹh_xkUTJZܙC!Bxɡq I3 .@ƠJ|}`)$hQawW*7aTV%e&˷>1Wn Z2jq) NJ)r\A 㜨)B֕jC+ÈKyL +Wc:8R˭x (x)WB=i6*=#w(ij*s_)鱢uJ]r9[-Lk0VR|18o]x.ַR- &wO)G-(sx )B-}_gxsH0+g\-TDƴ)br %Q2SY:gE-֓SߍK={\4"kdx{U]Z|{`g :u% }sk]W4z 5igе(aZ!wgAVdG'3C^g`ltwt;yڲl |+/!Z܌ t/;G>xt" ~)6HyڻbKbA )F\*&⢨W-}:8/ T@i#1j,S|(޵ 0ч7KW Z9#I'ڸDAHUe?@nLl^BЭ&4tP J6|"?`F@EQଘJ]wi^Bi[t>܃b>m!g[b4PZoE% &ˉa_s~=٧`=-o/v/gB}(ydW\/QI8a$4  +NQ-*/KLYHt]n,=Wd°IP\1%*@ad(ӫXQ*Nz'4qIn}е ڽ>ß 0t_eendstream endobj 31812 0 obj <>/P 1115 0 R/Type/Annot/A 31813 0 R/Subtype/Link/Rect[93.6006012 619.229004 235.932999 638.908997]/Border[0 0 0]/H/N>> endobj 31813 0 obj <> endobj 31814 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31815 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31816 0 obj <> stream q /X1 Do Q q endstream endobj 31817 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31818 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31819 0 obj <> stream HkoWlIKK4):M( ;0TrH*q%A`%g_ևEWdrIT,ˆPqrȂIPr0l<们:)99?W j$JDӘv~w;MJB~PU^'W"#qO9Vh$+eЗڟ@C%oaO @ ( = lAl&qbd >ΎŘKY1C)3抷c@qD=wsD=w Dp Dp DpKDtKDt+Dr+Dr+DrGQ!#GFkGFkGFkG}1>v'Q 2ĴvlpĵvPz;Z;f(W3ގ֎ Q︖#cB;kPk혡k9Z;f(DZ֎֎ Q︖#cB;kPk혡k9Z;f(DZ֎֎UoǀB\k 媷cr11C! ĵvPzǵq q3q@\k w\+11C! ĵvPzǵq q3q@\k w\+ڱ] 1CPk혡\vPz;Z;f(DZ֎ QV"c@!cB;k혡k%Z;Z;f(DZ֎ QV"c@!cB;k혡k%Z; Z;f(W q3ގUIHB.x .W+AYmƄ$H! yQ-W &-L9fվz.$%ꀚ%?~;o}6rZp;_EŐDD4CF|ȴn_әy:Uxgȉ'dn?ջw{z[w/D-7-$=>-:-Xgq 6ڜ=S|29C0Pz1W]777>7R5s϶,'ܢ*n'ܲS#j{=7_r,՗͆3]ӇfEEDیXWyYuUB8e6{$T! vE9ٌG:ڴr=wuK_P{淞 ~O7@lu4fXkN7K+)u7cj18 4-7S9{(Tg\4K07t0F%U fZoޯ@X$:? w=pkC+)[+>>(_?r I@H q8/7M)iy_mJfrT<KjSL##r3w>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31821 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31822 0 obj <> endobj 31823 0 obj <> endobj 31824 0 obj <> endobj 31825 0 obj <> endobj 31826 0 obj <> endobj 31827 0 obj <> stream q /X1 Do Q q endstream endobj 31828 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31829 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31830 0 obj <> stream HWk۸_)&6s}M1 -(,$g2J-l!yxyuyW|{ً/6#*9b:Q"XH ֕.]Yłe] ۶n)Z ~^]2V IbdiU܆7zx&tˋW8sVkf)#R3\ fNr6+G3U]J-U8xԧSSO}JO=>gSsO}N< ӺXµ.,_p!Wbջ׺kZCs \b"\b"{k] Yzϵpp!PVu1d= µ.,µ.,BZAŐE\+׺XHµ.,_p!Wbջ׺k%ZCs$\b"\b"{k] Yzϵpp!PVu1d=Jµ.,µ.,BZIŐE\+ ׺X(µ.,_p!Wbջ׺kZCs"\b"\b"{Uk] Yzϵpp!PVu1d=*µ.,µ.,BZEŐE\׺Xhµ.,_p!WbQw\7UpKjxᇋ[Qdj?4[@Fv+Y]햁$/b tAjw|Lycq ֜F_9l?cLM WWxP6M(ɗGz+8޳Y`jC3C_nLãi@2Nr^*s-fÇSjYiɳa֪z;uk)Qr]`T u!o*l}1fϕY<4E yw6B(i(\? ,0Qp%)tj C})dWpo[LŔ(8 bx8*4_~gj] Z?fk]uy@Kq]pçŘwU(K e!#pa7=o jߗ e {)ڍ9CkZfS! `>K-lc_tiB48G=ooXrv? fm1ʆٷ]=,I'8diGjx̆:el$d`%1W ތy̵ ?]o# STa .Ãe]4sZe " 9SJı˥?0[aQ_8Cv%;6n^J`=[0<ˑ뇵♎z`p4E ޵2j 1n|Vy%8)xVu}ؔy?lCt­P{s<1$;h3 ح(ЕZ%Oļǻ8vdyŊ) .CacPl)롅x%GeLŽLp;V Z?Z39{J,_`аru7O8IG##|Cq,E1mY6LsEI$ާd0 [=P ҵBKW*x^fơzvo\UXQ҄b/ os ͆"Y'c 1>Py}@l*WHbW̏R=JN8K9#P=[g):u Ks]DK<|/!)q)@j@tVhR߫RHDŽGר"ˡS6ċ/Ï0;<TB Cыkuʦu XƓ"Ѳ0#l+je!X˗rn Q-'[ʂq#4Qr0kr#⼎H07ʈJzey8l%1^"%5GK|׮*dk_!K& 6P[f4tg[qJEk(/X$z,<|90d]3ϘpYD\NV#0:phFв=MKHT(츒-sQo̊T1RÎ,ۍCWLލ,4KOa۟M[_uCm\V÷mpΙw_zKendstream endobj 31831 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31832 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31833 0 obj <> endobj 31834 0 obj <> stream q /X1 Do Q q endstream endobj 31835 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31836 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31837 0 obj <> stream HWio۸_M& W-`fI&EH@(l+#]\j|y"%u|xy.]V5_Oޞ]3~: f&VA(YHV_lq V06_fM%?+eU**g=iꝤ^1G/N8KX1Yc;ϛ\ci/Szjgͦ:J?{<0,ty(Ffd¹;~ͫݞ!8r X6GcB4e^Q@ $go!g{>qD4҆r%f^b0'q9 ,ce!̲ څpc XP/P/PPPPPPoPoPo!>tԇQ#G}D>rDŽQcG}BO L' b̲\ZYcb̲k%ZYq$\1`ŘeJµ,BZIc"\1";k1fYzǵp-ƀEcEw\+ b̲k%ZfC-.nt}E[$]]6H ȇـ}ܛ;Q 7r$a$H}ΚpY`;f:ϖ.U'D1 ϛMz1*5Lo["+<9Z@pm&7ElʮٞR)WW^dφ E%_[6̳ӢoUcE~5FZw&|tʜAJ|rﯯ>s>/E Gh %&BsnOp&OEq Lk!DhjV. Ip+eICL8.#X?R-ٹm,M|kdhe< 646!q`ߏBaA˙]&Y)c'H3zlgn c4¦`QC8pp:U :MO ❶"7^ Vxzݖ%, Pyw3p_,8G;l`p-g\0 {H*4bJ K0]Zo)Ipc`,$\^ߜޟ\7o^4d kO2_%s}s޾>{a&{31+#e'/5)D4e:{ :6n-Oxݞ4OOL'(ۋWӉ9K2 ʌN-Wv'T]TH8[1ٙnRNzL3F雋}1fw~^ +vh@H\ήnMP2iEN/8j'$bLh:n]\AN.?ǣ_lUtU^ ZBAn)D݊+f j*<| D$'l-vhtC՗56Whv v]?3 KUv%KTPS..Ig`mkwlcS/& >rp4eNCfmin J w%@`hrb>C7=ot31DYU6e-C0 6az׹Bxj=R5_y@<8;۶7-]1Eov=d Zm[J/jC$:1GdEȋr?2`Iwڑ -ۢȬiMbHd,15>f(k<~-+ǫ/v:B>jsCjbCCrd_f(CһHyu(< Baay >5fzHфע 3 B_M@EX<͛;H5qIw\@[T}StXhS'_X`]Y-FF)ƔA)j+cI$߈@1f?s` e{ZGFD|tr?b2{8t5 n"`P]z/( ?r")q`Za)Ow߯sTD ó \҅A٠IlDzE;RIxڬ3vHEruD83l;cT$q:H/Tqdo}uɩ|ؖo{2 ö2D};F{?4aod*>n"x!!j+Vp,k.i ܞvEKQ)s[$kCƝf# 6;t(Wn y{ `t[p{+f&|5 NvdueR0>AJ?b~' aendstream endobj 31838 0 obj <>/P 468 0 R/Type/Annot/A 41466 0 R/Subtype/Link/Rect[93.6014023 327.230988 252.014008 346.911011]/Border[0 0 0]/H/N>> endobj 31839 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31840 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31841 0 obj <> stream q /X1 Do Q q endstream endobj 31842 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31843 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31844 0 obj <> stream HWoF6Rac8@6ć+Q2TDipGR޳q(R G}$Hp1>fc}'O s>ܧ}*O{'w̽ܳΆBi)Z!R Y=ŐS XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` Zh-Ő%gBk),CV Zh-֞ZK1dqZ!{Kh-Ő%g5Bk),=kZK1` Fh-Ő%g5Bk),CFh-ŀ%bܳCڳBk),bZK1dqCwO1` Vh-Ő%gBk),C Vh-ŀ%bܳZC R Y{Z+bܳZ[{Z!R Y=Ő;9gU}weZ*[x'(x󵊓7*[{r&v9S?j:;SGΏ;n^ߕѮɗcmr]]MFwY&:W_ͬW˗׿]\f}WST')mwokqyrDMO 2s]rGѴj+Fr&ܐNnjuZ3Շ{'%l{z`@g.u;8Qʍ\[2CFn+zϰrKW? ?mN KϢhHѰƖU6{:NWIZcpWEu&I,vX7 ]!^Zz!ҏi{0p a™d; -ݹ;B\bZVвL ZiEVĴ"A+bZ3XЊV"h%L+ Z)Ji9A1-'h9E1dq-+B Z!҂fZZbB),A^ -{-bX{!KbB),A^ -{-bX{!kQ XB),A-{#bX{!Kb7B),A-{#bX{!Kb7B),A ŀ%bX{!KbB),A -{+bX{!KbB),A -{+bX#!CעS Y\9A ȼ,6 ^^T#O]km vo8La1T<ެf; I}[jུ-֪U5y/~zaj{PA5)4ԦE.ʪ:˲ATVcɶ.(x6 V 0>[-햳Ÿp馨[&ɤ#|-odQKwM~kI{3|s㻥~n\0'Wցou47-.«'ռkwY%A:jSom4:i'K` ɮ;1>%23[ag5ܫ͙L>uSNXe3u4єEBO&k^a@k7;Ljon |ʢhmK#?h>F5o KiD<.vլ-ꤟG{sHkYH.X.iKouׂ;L )L4%t'xܑA:@ݠ;B|G,g ؑecq ME ־/31HvY5Qc}G#u[trn 9q4pRp.f7yU6zC: #1j'Z9?9Ŋe$&eG]4u7drEqn䞁AZw(-iU T@F^_ rsI1[d,[@9>޿g# *UTAucMA-hʬ87M_к!m-&eQS!Nm/ǁypsL.~Fendstream endobj 31845 0 obj <>/P 1264 0 R/Type/Annot/A 31846 0 R/Subtype/Link/Rect[93.6004028 256.528015 220.716995 276.208008]/Border[0 0 0]/H/N>> endobj 31846 0 obj <> endobj 31847 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31848 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31849 0 obj <> endobj 31850 0 obj <> endobj 31851 0 obj <> endobj 31852 0 obj <> endobj 31853 0 obj <> endobj 31854 0 obj <> endobj 31855 0 obj <> stream q /X1 Do Q q endstream endobj 31856 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31857 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31858 0 obj <> stream HW]o6}ׯУ 2?DI> ۠ XAApk;&H0A^.[ȺF{sE<iݫn4'dPiLl8ﶆEŗWP>ď_H# 淎d 8F")| 9PV8Ґa%P!Y!Y#y#y#y>Cg Q^^^sD}y@Q_ D}/eDԗzzfXzZ3PVǀ Q!1Bek} Xk}̰kZ3,D}Zǀ Q!1Bek} Xk}̰kZ3,D}Z#1 a}̰B>,ĵ>fXq>p-G\cB\c\a!rĵ>,ĵ>fXq>p-G\cB\c\a!rĵ>VGZ3P qV +TcB\c\!1Ba!fk}̰k3ĵ>,ĵ>fXZ3,D} q q>pm Q6C\cu$a} Xk}̰B>fXzJ)Us[G6fbo%# ?4\ƛ:J^ +p韙%ߑ2lUtiӅ2s&c2o!^{||Xs |9TSZpPԮumuZj;quWW:5PDƲyҜd1U5 ,UMTqnx۝K5lKok5w͝w/Oz[_>êF&gEhJ+.*4Tms:f/m{8l{3YGx ;[k&m4B՞3|ti{=?nkQ}&z~emL 4FڦxnU.|\% 9t ֬GRmIIiXs)?O ^~4-!ܗ'F9Y-1^٨od ,Q9Y.'i+7Q$5niu:\"36 dY\s:霦4ݱ$)Tak͜;d ~@ ۑB4upD*r?~u<Ԝ"PNyA@%hcj WM!vWC%3J4*At{{W:-)/́#.cH'x jhtvo -(d_luc'mdn]5STU yI*|; iӡjv}1F% zۈ,vqi̶wUd -37T ̹n1K2X{/k7oHu# xC}8` Wp:;$% ybQpWqW(u.M>A;^o4~UOxx|ˉT|k2|d3ռg}}dE`nrJ C_p8B-Tݞ];@]٩iۍlzzq u`Pr!z$)\^A2ʵ("\vB^.8Z2k8kmZ=O'NyU4dH7\A^F+.5ɏ=mU3Sfc~d2#+{Tnr@7S(juJ)s?UH?2|a1 UNH΍El[>\EWwLI&)+Lrҩ_ԻҸ9i7jBS!O3"{}Z<4 Su=2!\:3ch}Tm)UKY@yeO4EG\Tvˡl-'@KWy'ҷdz YM}۫u.%߄ӷ:wpU|<Ͻe*K1O<2i8əÒ)C=jT@ͷ{5Z!I1Oi,W )Oў&?c( ݶ;e71R5nhhSHRƚ̈́# +8HrI{CDZ)624|v`hIN\/㫙)Ƽc^,hl|\- lAB*f&Y20hʞ'43Q<_v,j >=cW 3J $2TU/f <íKaM*zQTl;M$]г.JxfoPy٢X@/fLjbӅzyBq'y%ȅ~։B -](!kH4Jw;}c3Ywx8>Ǭg$ 2[߾է|i%e[I`gL]Rl^`_#@Tؠp *D1f8vϛYq;:*洝d^SIDu A R@7ݸcMĉϙӜrZBp+O**!yʯ*O^K ٞ]+&HFt_AptOh󠔡Dzk=azc!d0q_~dƋΊ'8~d5^IB7?K[Q'ӄ:ZwkvjiȯM1 4hccB8X jάCUD綘0*ihM=!jVd(z w8NL,r2w[n`Iz[tE2W&e*_6m A$ٻiLXݢva[2ΙDL}}}I&~i-g u +X;|juX0 TutA(da8_Xp\ȟǀ$q2ۺ!\$2EZplA`iqf\:9zY0xNZ0^1w"F*֢ۢ4260:,nB4(N9KcQpZ[NyA6^VtmcZT@T!RRʀͅdN+(a*K2ТS*&Ϫ+?< \ E_0t(½# :7_[nU]Tީ\cb޾z|Ƚ.}˱>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 31860 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 31861 0 obj <> stream q /X1 Do Q q endstream endobj 31862 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 31863 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 31864 0 obj <> stream HWn9}(m/`qf5V.Xg xe9Q֒2<[[j"HG>:,֩b]m_.ǯgyg%t-xU[ɜUl3>UJήw_zXηŌmo7}}^MJ& 5r9dY ƫ VuZ`.&+"⿳%RdaKpnUAZbLe\XTcB\eԆ<\j9*!9(I{I{EW{EW{EW{M{M{C7{C7{C7{K{K{Gw{Gw{Gw{O{O@@4+Ѧe% զ6DSզ6DSr PjSj%Ԇ(}ZI6PmjC>S$TET+ զ6@Mm"gjSj%(B QLPmjC>S$Tږ"TOm"TOm٧6@Mm"gUjSj(B QLPmjC>S"TE6!`VMm"gUjSզ6D3*B QLPmj[VPmjCT>PmjCT>!*gE6!`VMm"gՄjSզ6D3jB QLPmjԆ(}ZM6!`VMm"TET զ6D3jBmYB Q9(B Q9Ԇ}Cqss^MJ&3yu`\V|\GlB>?&>\K+jlEI>|?28:wA>_CM7t~Q !"BVG\Fu?omAhM&"ɚ >'("v0[wmeB]z} @zy5.֫@E7ox[u2"n^&\$?rG,`0{ʛ SN v(%}罅y_Tdı0bHxxx0xXtLi&!z7CcbĜI/%Zт9i: k)WJC@{J‰8qtSGt~)z yJmTJ呗.٦ 5Q>/J 9J6M߿y WwOGm?GJ8г@aƵdo.(g53c`NGv޿i#sw7{(ABafy终mk>+7fϳs2WA#rl>z} dcvXYۼuw{؛\u+ F(3 {6kJMMntx q^\.-tG0ې'-;"b<:g_~l2͟l\>;li_fJN,Ԃ]!cu0b\Ih$ѶM'frem[a~.u7O1LM  JWWL 9t}o|ݍMf YKmaf&c;7_:*xc'l4؆?ߌ{3o52`UQPuif/'}'h&.V2h?8t" ́󷽌DO2*7s޽rܻϱ븂f!C ZLX/۟%r]\+{ʕO~1rEYh>y< Cr-PVAHխn6s+sϙ!xThO$4?aZlr&_燐^`PItwR?Eoj.9ȳc#?%rW g G4S*QwG'T0+NVnyV؁q;[1kt1pG-p5߲ \n׳ct\-CNw\v:L1f0Sp흸 HVj7 v[H0\-MYN2KcOC2+΅lZzbJSm}^/-PUd7ZsIh6_Yڄ6}Jt>kc<ލwSzd ܴQ,/3L.yy4|T\|DةCH ?d"IQN$2NՇ \ 9'M2s@ F, ݲpYcz9TX,اJ]@zx^ͶM'C6v`Mݫ)GKEd -a8(D%NYqɉ0S$%6K=G^sQ#I~bLy_2 ^ˋ٧EU(Gj ٕ//n lt|"&I1bZ.R!c aM XI2+(1$xvuJVΘb\`|9ǭTKf2 LC:4Tb4ĖBS2:0>y{(YoEԛc/Dw6Qp}s_ D@@¥f!#)ER߿:>1Ѿqj=Sg^TXʘdJ%TBzh~^ZV ahs1Ʈ7`MM5Z&ѯl\$7tU;zswKA[q0fVl~UaslcR#{SlVcJ;>L%st$茋~e){ߕ @qZ8UI`w^bkFPn\pFљ%h8:Z/Lj%+U;3e=SKw1;V*Kun?=t`իc'< P*Feo=1Atv5C&`N"Nq0F8]W*J`U,%t@r4şg|sZkѻwkOfǣ3EP <+rH}L=JL} J;cߕXs蝵u}!EM2:T@jv\n_5݈VT/X]=Nbqry@Rf._V<nM]W*nД'_^0f 5VY+v߰pna#j?˨} Q E:| ^YʼþmEj5__SyJ=QhO+7=?6m 2&hm,^f*+5WM4DS)A=i'!8xSI̴&|mXodh :YV#>UgO2!p't5hGqq)ݾa,kk f kH.C)@@:c擆~zwxִeN;ޙD|*YH6D մ s9B5DM@C|X p݅tB?p@N-yyPxr*lOUJގ|H"ŦZ拋jv6ԃ %pͩ!}.gVQ$n:;ͭl$eץv:-_?tPS vF7NLR͕r\MX$(*Aoը:z\O#/tUhETAuqGTHǜN@Z,xL=N86?&~ n!r c\Չ7HfhNo)krN yuKmiAfQkd'e˛yѣG 0dendstream endobj 31865 0 obj <>/P 6038 0 R/Type/Annot/A 32479 0 R/Subtype/Link/Rect[176 670 192 678]/Border[0 0 0]/H/N>> endobj 31866 0 obj <>/P 6038 0 R/Type/Annot/A 32476 0 R/Subtype/Link/Rect[193 670 205 677]/Border[0 0 0]/H/N>> endobj 31867 0 obj <>/P 6038 0 R/Type/Annot/A 32473 0 R/Subtype/Link/Rect[185 660 191 667]/Border[0 0 0]/H/N>> endobj 31868 0 obj <>/P 6038 0 R/Type/Annot/A 32470 0 R/Subtype/Link/Rect[193 660 206 668]/Border[0 0 0]/H/N>> endobj 31869 0 obj <>/P 6038 0 R/Type/Annot/A 32466 0 R/Subtype/Link/Rect[207 660 215 667]/Border[0 0 0]/H/N>> endobj 31870 0 obj <>/P 6038 0 R/Type/Annot/A 32462 0 R/Subtype/Link/Rect[202 650 214 657]/Border[0 0 0]/H/N>> endobj 31871 0 obj <>/P 6038 0 R/Type/Annot/A 32458 0 R/Subtype/Link/Rect[192 640 202 647]/Border[0 0 0]/H/N>> endobj 31872 0 obj <>/P 6038 0 R/Type/Annot/A 32454 0 R/Subtype/Link/Rect[204 640 217 648]/Border[0 0 0]/H/N>> endobj 31873 0 obj <>/P 6038 0 R/Type/Annot/A 32450 0 R/Subtype/Link/Rect[217 640 227 647]/Border[0 0 0]/H/N>> endobj 31874 0 obj <>/P 6038 0 R/Type/Annot/A 32446 0 R/Subtype/Link/Rect[229 640 239 647]/Border[0 0 0]/H/N>> endobj 31875 0 obj <>/P 6038 0 R/Type/Annot/A 32442 0 R/Subtype/Link/Rect[241 640 258 648]/Border[0 0 0]/H/N>> endobj 31876 0 obj <>/P 6038 0 R/Type/Annot/A 32438 0 R/Subtype/Link/Rect[259 640 273 647]/Border[0 0 0]/H/N>> endobj 31877 0 obj <>/P 6038 0 R/Type/Annot/A 32435 0 R/Subtype/Link/Rect[275 640 289 647]/Border[0 0 0]/H/N>> endobj 31878 0 obj <>/P 6038 0 R/Type/Annot/A 32432 0 R/Subtype/Link/Rect[151 630 167 638]/Border[0 0 0]/H/N>> endobj 31879 0 obj <>/P 6038 0 R/Type/Annot/A 32428 0 R/Subtype/Link/Rect[168 630 182 637]/Border[0 0 0]/H/N>> endobj 31880 0 obj <>/P 6038 0 R/Type/Annot/A 32424 0 R/Subtype/Link/Rect[184 630 198 637]/Border[0 0 0]/H/N>> endobj 31881 0 obj <>/P 6038 0 R/Type/Annot/A 32420 0 R/Subtype/Link/Rect[200 630 214 637]/Border[0 0 0]/H/N>> endobj 31882 0 obj <>/P 6038 0 R/Type/Annot/A 32416 0 R/Subtype/Link/Rect[216 630 230 637]/Border[0 0 0]/H/N>> endobj 31883 0 obj <>/P 6038 0 R/Type/Annot/A 32412 0 R/Subtype/Link/Rect[232 630 246 637]/Border[0 0 0]/H/N>> endobj 31884 0 obj <>/P 6038 0 R/Type/Annot/A 32407 0 R/Subtype/Link/Rect[248 630 262 637]/Border[0 0 0]/H/N>> endobj 31885 0 obj <>/P 6038 0 R/Type/Annot/A 32403 0 R/Subtype/Link/Rect[264 630 278 637]/Border[0 0 0]/H/N>> endobj 31886 0 obj <>/P 6038 0 R/Type/Annot/A 32399 0 R/Subtype/Link/Rect[280 630 294 637]/Border[0 0 0]/H/N>> endobj 31887 0 obj <>/P 6038 0 R/Type/Annot/A 32395 0 R/Subtype/Link/Rect[151 620 167 628]/Border[0 0 0]/H/N>> endobj 31888 0 obj <>/P 6038 0 R/Type/Annot/A 32392 0 R/Subtype/Link/Rect[168 620 181 627]/Border[0 0 0]/H/N>> endobj 31889 0 obj <>/P 6038 0 R/Type/Annot/A 32388 0 R/Subtype/Link/Rect[183 620 200 628]/Border[0 0 0]/H/N>> endobj 31890 0 obj <>/P 6038 0 R/Type/Annot/A 32384 0 R/Subtype/Link/Rect[201 620 215 627]/Border[0 0 0]/H/N>> endobj 31891 0 obj <>/P 6038 0 R/Type/Annot/A 32380 0 R/Subtype/Link/Rect[217 620 233 628]/Border[0 0 0]/H/N>> endobj 31892 0 obj <>/P 6038 0 R/Type/Annot/A 32378 0 R/Subtype/Link/Rect[234 620 248 627]/Border[0 0 0]/H/N>> endobj 31893 0 obj <>/P 6038 0 R/Type/Annot/A 32375 0 R/Subtype/Link/Rect[250 620 264 627]/Border[0 0 0]/H/N>> endobj 31894 0 obj <>/P 6038 0 R/Type/Annot/A 32371 0 R/Subtype/Link/Rect[266 620 283 628]/Border[0 0 0]/H/N>> endobj 31895 0 obj <>/P 6038 0 R/Type/Annot/A 32368 0 R/Subtype/Link/Rect[283 620 297 627]/Border[0 0 0]/H/N>> endobj 31896 0 obj <>/P 6038 0 R/Type/Annot/A 32364 0 R/Subtype/Link/Rect[151 610 167 618]/Border[0 0 0]/H/N>> endobj 31897 0 obj <>/P 6038 0 R/Type/Annot/A 32361 0 R/Subtype/Link/Rect[168 610 180 617]/Border[0 0 0]/H/N>> endobj 31898 0 obj <>/P 6038 0 R/Type/Annot/A 32357 0 R/Subtype/Link/Rect[189 600 197 607]/Border[0 0 0]/H/N>> endobj 31899 0 obj <>/P 6038 0 R/Type/Annot/A 32354 0 R/Subtype/Link/Rect[197 590 209 597]/Border[0 0 0]/H/N>> endobj 31900 0 obj <>/P 6038 0 R/Type/Annot/A 32350 0 R/Subtype/Link/Rect[197 580 211 587]/Border[0 0 0]/H/N>> endobj 31901 0 obj <>/P 6038 0 R/Type/Annot/A 32346 0 R/Subtype/Link/Rect[213 580 227 587]/Border[0 0 0]/H/N>> endobj 31902 0 obj <>/P 6038 0 R/Type/Annot/A 32342 0 R/Subtype/Link/Rect[229 580 241 587]/Border[0 0 0]/H/N>> endobj 31903 0 obj <>/P 6038 0 R/Type/Annot/A 32338 0 R/Subtype/Link/Rect[226 570 238 577]/Border[0 0 0]/H/N>> endobj 31904 0 obj <>/P 6038 0 R/Type/Annot/A 32335 0 R/Subtype/Link/Rect[197 560 211 567]/Border[0 0 0]/H/N>> endobj 31905 0 obj <>/P 6038 0 R/Type/Annot/A 32332 0 R/Subtype/Link/Rect[213 560 225 567]/Border[0 0 0]/H/N>> endobj 31906 0 obj <>/P 6038 0 R/Type/Annot/A 32329 0 R/Subtype/Link/Rect[235 550 247 557]/Border[0 0 0]/H/N>> endobj 31907 0 obj <>/P 6038 0 R/Type/Annot/A 32326 0 R/Subtype/Link/Rect[194 540 204 547]/Border[0 0 0]/H/N>> endobj 31908 0 obj <>/P 6038 0 R/Type/Annot/A 32323 0 R/Subtype/Link/Rect[206 540 216 547]/Border[0 0 0]/H/N>> endobj 31909 0 obj <>/P 6038 0 R/Type/Annot/A 32320 0 R/Subtype/Link/Rect[218 540 232 547]/Border[0 0 0]/H/N>> endobj 31910 0 obj <>/P 6038 0 R/Type/Annot/A 32317 0 R/Subtype/Link/Rect[234 540 248 547]/Border[0 0 0]/H/N>> endobj 31911 0 obj <>/P 6038 0 R/Type/Annot/A 32314 0 R/Subtype/Link/Rect[250 540 266 548]/Border[0 0 0]/H/N>> endobj 31912 0 obj <>/P 6038 0 R/Type/Annot/A 32311 0 R/Subtype/Link/Rect[267 540 281 547]/Border[0 0 0]/H/N>> endobj 31913 0 obj <>/P 6038 0 R/Type/Annot/A 32308 0 R/Subtype/Link/Rect[283 540 297 547]/Border[0 0 0]/H/N>> endobj 31914 0 obj <>/P 6038 0 R/Type/Annot/A 32305 0 R/Subtype/Link/Rect[151 530 165 537]/Border[0 0 0]/H/N>> endobj 31915 0 obj <>/P 6038 0 R/Type/Annot/A 32302 0 R/Subtype/Link/Rect[167 530 181 537]/Border[0 0 0]/H/N>> endobj 31916 0 obj <>/P 6038 0 R/Type/Annot/A 32299 0 R/Subtype/Link/Rect[183 530 197 537]/Border[0 0 0]/H/N>> endobj 31917 0 obj <>/P 6038 0 R/Type/Annot/A 32296 0 R/Subtype/Link/Rect[199 530 213 537]/Border[0 0 0]/H/N>> endobj 31918 0 obj <>/P 6038 0 R/Type/Annot/A 32293 0 R/Subtype/Link/Rect[215 530 231 538]/Border[0 0 0]/H/N>> endobj 31919 0 obj <>/P 6038 0 R/Type/Annot/A 32290 0 R/Subtype/Link/Rect[232 530 246 537]/Border[0 0 0]/H/N>> endobj 31920 0 obj <>/P 6038 0 R/Type/Annot/A 32287 0 R/Subtype/Link/Rect[248 530 262 537]/Border[0 0 0]/H/N>> endobj 31921 0 obj <>/P 6038 0 R/Type/Annot/A 32285 0 R/Subtype/Link/Rect[264 530 276 537]/Border[0 0 0]/H/N>> endobj 31922 0 obj <>/P 6038 0 R/Type/Annot/A 32282 0 R/Subtype/Link/Rect[202 520 212 527]/Border[0 0 0]/H/N>> endobj 31923 0 obj <>/P 6038 0 R/Type/Annot/A 32279 0 R/Subtype/Link/Rect[214 520 224 527]/Border[0 0 0]/H/N>> endobj 31924 0 obj <>/P 6038 0 R/Type/Annot/A 32276 0 R/Subtype/Link/Rect[226 520 236 527]/Border[0 0 0]/H/N>> endobj 31925 0 obj <>/P 6038 0 R/Type/Annot/A 32274 0 R/Subtype/Link/Rect[238 520 250 527]/Border[0 0 0]/H/N>> endobj 31926 0 obj <>/P 6038 0 R/Type/Annot/A 32272 0 R/Subtype/Link/Rect[256 510 272 518]/Border[0 0 0]/H/N>> endobj 31927 0 obj <>/P 6038 0 R/Type/Annot/A 32269 0 R/Subtype/Link/Rect[273 510 287 517]/Border[0 0 0]/H/N>> endobj 31928 0 obj <>/P 6038 0 R/Type/Annot/A 32266 0 R/Subtype/Link/Rect[151 500 167 508]/Border[0 0 0]/H/N>> endobj 31929 0 obj <>/P 6038 0 R/Type/Annot/A 32263 0 R/Subtype/Link/Rect[168 500 180 507]/Border[0 0 0]/H/N>> endobj 31930 0 obj <>/P 6038 0 R/Type/Annot/A 32260 0 R/Subtype/Link/Rect[182 490 198 498]/Border[0 0 0]/H/N>> endobj 31931 0 obj <>/P 6038 0 R/Type/Annot/A 32258 0 R/Subtype/Link/Rect[199 490 211 497]/Border[0 0 0]/H/N>> endobj 31932 0 obj <>/P 6038 0 R/Type/Annot/A 32256 0 R/Subtype/Link/Rect[158 480 174 488]/Border[0 0 0]/H/N>> endobj 31933 0 obj <>/P 6038 0 R/Type/Annot/A 32254 0 R/Subtype/Link/Rect[175 480 189 487]/Border[0 0 0]/H/N>> endobj 31934 0 obj <>/P 6038 0 R/Type/Annot/A 32252 0 R/Subtype/Link/Rect[191 480 205 487]/Border[0 0 0]/H/N>> endobj 31935 0 obj <>/P 6038 0 R/Type/Annot/A 32250 0 R/Subtype/Link/Rect[207 480 221 487]/Border[0 0 0]/H/N>> endobj 31936 0 obj <>/P 6038 0 R/Type/Annot/A 32248 0 R/Subtype/Link/Rect[223 480 235 487]/Border[0 0 0]/H/N>> endobj 31937 0 obj <>/P 6038 0 R/Type/Annot/A 32246 0 R/Subtype/Link/Rect[158 470 175 478]/Border[0 0 0]/H/N>> endobj 31938 0 obj <>/P 6038 0 R/Type/Annot/A 32244 0 R/Subtype/Link/Rect[175 470 187 477]/Border[0 0 0]/H/N>> endobj 31939 0 obj <>/P 6038 0 R/Type/Annot/A 32242 0 R/Subtype/Link/Rect[211 460 225 467]/Border[0 0 0]/H/N>> endobj 31940 0 obj <>/P 6038 0 R/Type/Annot/A 32240 0 R/Subtype/Link/Rect[227 460 241 467]/Border[0 0 0]/H/N>> endobj 31941 0 obj <>/P 6038 0 R/Type/Annot/A 32238 0 R/Subtype/Link/Rect[243 460 255 467]/Border[0 0 0]/H/N>> endobj 31942 0 obj <>/P 6038 0 R/Type/Annot/A 32236 0 R/Subtype/Link/Rect[207 450 219 457]/Border[0 0 0]/H/N>> endobj 31943 0 obj <>/P 6038 0 R/Type/Annot/A 32234 0 R/Subtype/Link/Rect[216 440 233 448]/Border[0 0 0]/H/N>> endobj 31944 0 obj <>/P 6038 0 R/Type/Annot/A 32232 0 R/Subtype/Link/Rect[233 440 247 447]/Border[0 0 0]/H/N>> endobj 31945 0 obj <>/P 6038 0 R/Type/Annot/A 32230 0 R/Subtype/Link/Rect[249 440 266 448]/Border[0 0 0]/H/N>> endobj 31946 0 obj <>/P 6038 0 R/Type/Annot/A 32228 0 R/Subtype/Link/Rect[267 440 279 447]/Border[0 0 0]/H/N>> endobj 31947 0 obj <>/P 6038 0 R/Type/Annot/A 32226 0 R/Subtype/Link/Rect[208 430 222 437]/Border[0 0 0]/H/N>> endobj 31948 0 obj <>/P 6038 0 R/Type/Annot/A 32223 0 R/Subtype/Link/Rect[224 430 238 437]/Border[0 0 0]/H/N>> endobj 31949 0 obj <>/P 6038 0 R/Type/Annot/A 32221 0 R/Subtype/Link/Rect[240 430 254 437]/Border[0 0 0]/H/N>> endobj 31950 0 obj <>/P 6038 0 R/Type/Annot/A 32219 0 R/Subtype/Link/Rect[256 430 270 437]/Border[0 0 0]/H/N>> endobj 31951 0 obj <>/P 6038 0 R/Type/Annot/A 32217 0 R/Subtype/Link/Rect[272 430 284 437]/Border[0 0 0]/H/N>> endobj 31952 0 obj <>/P 6038 0 R/Type/Annot/A 32215 0 R/Subtype/Link/Rect[221 420 238 428]/Border[0 0 0]/H/N>> endobj 31953 0 obj <>/P 6038 0 R/Type/Annot/A 32212 0 R/Subtype/Link/Rect[238 420 252 427]/Border[0 0 0]/H/N>> endobj 31954 0 obj <>/P 6038 0 R/Type/Annot/A 32210 0 R/Subtype/Link/Rect[254 420 268 427]/Border[0 0 0]/H/N>> endobj 31955 0 obj <>/P 6038 0 R/Type/Annot/A 32208 0 R/Subtype/Link/Rect[270 420 284 427]/Border[0 0 0]/H/N>> endobj 31956 0 obj <>/P 6038 0 R/Type/Annot/A 32205 0 R/Subtype/Link/Rect[286 420 298 427]/Border[0 0 0]/H/N>> endobj 31957 0 obj <>/P 6038 0 R/Type/Annot/A 32202 0 R/Subtype/Link/Rect[193 410 205 417]/Border[0 0 0]/H/N>> endobj 31958 0 obj <>/P 6038 0 R/Type/Annot/A 32200 0 R/Subtype/Link/Rect[207 400 223 408]/Border[0 0 0]/H/N>> endobj 31959 0 obj <>/P 6038 0 R/Type/Annot/A 32199 0 R/Subtype/Link/Rect[224 400 238 407]/Border[0 0 0]/H/N>> endobj 31960 0 obj <>/P 6038 0 R/Type/Annot/A 32197 0 R/Subtype/Link/Rect[240 400 254 407]/Border[0 0 0]/H/N>> endobj 31961 0 obj <>/P 6038 0 R/Type/Annot/A 32195 0 R/Subtype/Link/Rect[256 400 273 408]/Border[0 0 0]/H/N>> endobj 31962 0 obj <>/P 6038 0 R/Type/Annot/A 32193 0 R/Subtype/Link/Rect[273 400 285 407]/Border[0 0 0]/H/N>> endobj 31963 0 obj <>/P 6038 0 R/Type/Annot/A 32191 0 R/Subtype/Link/Rect[188 390 202 397]/Border[0 0 0]/H/N>> endobj 31964 0 obj <>/P 6038 0 R/Type/Annot/A 32189 0 R/Subtype/Link/Rect[204 390 216 397]/Border[0 0 0]/H/N>> endobj 31965 0 obj <>/P 6038 0 R/Type/Annot/A 32187 0 R/Subtype/Link/Rect[202 380 218 388]/Border[0 0 0]/H/N>> endobj 31966 0 obj <>/P 6038 0 R/Type/Annot/A 32478 0 R/Subtype/Link/Rect[219 380 233 387]/Border[0 0 0]/H/N>> endobj 31967 0 obj <>/P 6038 0 R/Type/Annot/A 32475 0 R/Subtype/Link/Rect[235 380 249 387]/Border[0 0 0]/H/N>> endobj 31968 0 obj <>/P 6038 0 R/Type/Annot/A 32472 0 R/Subtype/Link/Rect[251 380 263 387]/Border[0 0 0]/H/N>> endobj 31969 0 obj <>/P 6038 0 R/Type/Annot/A 32469 0 R/Subtype/Link/Rect[207 370 223 378]/Border[0 0 0]/H/N>> endobj 31970 0 obj <>/P 6038 0 R/Type/Annot/A 32465 0 R/Subtype/Link/Rect[224 370 238 377]/Border[0 0 0]/H/N>> endobj 31971 0 obj <>/P 6038 0 R/Type/Annot/A 32461 0 R/Subtype/Link/Rect[240 370 254 377]/Border[0 0 0]/H/N>> endobj 31972 0 obj <>/P 6038 0 R/Type/Annot/A 32457 0 R/Subtype/Link/Rect[256 370 268 377]/Border[0 0 0]/H/N>> endobj 31973 0 obj <>/P 6038 0 R/Type/Annot/A 32453 0 R/Subtype/Link/Rect[245 360 262 368]/Border[0 0 0]/H/N>> endobj 31974 0 obj <>/P 6038 0 R/Type/Annot/A 32449 0 R/Subtype/Link/Rect[263 360 275 367]/Border[0 0 0]/H/N>> endobj 31975 0 obj <>/P 6038 0 R/Type/Annot/A 32445 0 R/Subtype/Link/Rect[186 350 198 357]/Border[0 0 0]/H/N>> endobj 31976 0 obj <>/P 6038 0 R/Type/Annot/A 32441 0 R/Subtype/Link/Rect[204 340 218 347]/Border[0 0 0]/H/N>> endobj 31977 0 obj <>/P 6038 0 R/Type/Annot/A 32437 0 R/Subtype/Link/Rect[220 340 234 347]/Border[0 0 0]/H/N>> endobj 31978 0 obj <>/P 6038 0 R/Type/Annot/A 32434 0 R/Subtype/Link/Rect[236 340 250 347]/Border[0 0 0]/H/N>> endobj 31979 0 obj <>/P 6038 0 R/Type/Annot/A 32430 0 R/Subtype/Link/Rect[252 340 266 347]/Border[0 0 0]/H/N>> endobj 31980 0 obj <>/P 6038 0 R/Type/Annot/A 32426 0 R/Subtype/Link/Rect[268 340 280 347]/Border[0 0 0]/H/N>> endobj 31981 0 obj <>/P 6038 0 R/Type/Annot/A 32422 0 R/Subtype/Link/Rect[226 330 238 337]/Border[0 0 0]/H/N>> endobj 31982 0 obj <>/P 6038 0 R/Type/Annot/A 32418 0 R/Subtype/Link/Rect[216 320 230 327]/Border[0 0 0]/H/N>> endobj 31983 0 obj <>/P 6038 0 R/Type/Annot/A 32414 0 R/Subtype/Link/Rect[232 320 244 327]/Border[0 0 0]/H/N>> endobj 31984 0 obj <>/P 6038 0 R/Type/Annot/A 32409 0 R/Subtype/Link/Rect[226 310 238 317]/Border[0 0 0]/H/N>> endobj 31985 0 obj <>/P 6038 0 R/Type/Annot/A 32405 0 R/Subtype/Link/Rect[221 300 235 307]/Border[0 0 0]/H/N>> endobj 31986 0 obj <>/P 6038 0 R/Type/Annot/A 32401 0 R/Subtype/Link/Rect[237 300 249 307]/Border[0 0 0]/H/N>> endobj 31987 0 obj <>/P 6038 0 R/Type/Annot/A 32397 0 R/Subtype/Link/Rect[221 290 235 297]/Border[0 0 0]/H/N>> endobj 31988 0 obj <>/P 6038 0 R/Type/Annot/A 32393 0 R/Subtype/Link/Rect[237 290 251 297]/Border[0 0 0]/H/N>> endobj 31989 0 obj <>/P 6038 0 R/Type/Annot/A 32389 0 R/Subtype/Link/Rect[253 290 265 297]/Border[0 0 0]/H/N>> endobj 31990 0 obj <>/P 6038 0 R/Type/Annot/A 32385 0 R/Subtype/Link/Rect[221 280 235 287]/Border[0 0 0]/H/N>> endobj 31991 0 obj <>/P 6038 0 R/Type/Annot/A 32381 0 R/Subtype/Link/Rect[237 280 249 287]/Border[0 0 0]/H/N>> endobj 31992 0 obj <>/P 6038 0 R/Type/Annot/A 32225 0 R/Subtype/Link/Rect[197 270 214 278]/Border[0 0 0]/H/N>> endobj 31993 0 obj <>/P 6038 0 R/Type/Annot/A 32374 0 R/Subtype/Link/Rect[214 270 226 277]/Border[0 0 0]/H/N>> endobj 31994 0 obj <>/P 6038 0 R/Type/Annot/A 32370 0 R/Subtype/Link/Rect[151 260 159 267]/Border[0 0 0]/H/N>> endobj 31995 0 obj <>/P 6038 0 R/Type/Annot/A 32366 0 R/Subtype/Link/Rect[202 250 214 257]/Border[0 0 0]/H/N>> endobj 31996 0 obj <>/P 6038 0 R/Type/Annot/A 32363 0 R/Subtype/Link/Rect[197 240 211 247]/Border[0 0 0]/H/N>> endobj 31997 0 obj <>/P 6038 0 R/Type/Annot/A 32360 0 R/Subtype/Link/Rect[213 240 227 247]/Border[0 0 0]/H/N>> endobj 31998 0 obj <>/P 6038 0 R/Type/Annot/A 32356 0 R/Subtype/Link/Rect[229 240 245 248]/Border[0 0 0]/H/N>> endobj 31999 0 obj <>/P 6038 0 R/Type/Annot/A 32353 0 R/Subtype/Link/Rect[246 240 260 247]/Border[0 0 0]/H/N>> endobj 32000 0 obj <>/P 6038 0 R/Type/Annot/A 32349 0 R/Subtype/Link/Rect[262 240 276 247]/Border[0 0 0]/H/N>> endobj 32001 0 obj <>/P 6038 0 R/Type/Annot/A 32345 0 R/Subtype/Link/Rect[278 240 292 247]/Border[0 0 0]/H/N>> endobj 32002 0 obj <>/P 6038 0 R/Type/Annot/A 32341 0 R/Subtype/Link/Rect[294 240 306 247]/Border[0 0 0]/H/N>> endobj 32003 0 obj <>/P 6038 0 R/Type/Annot/A 32337 0 R/Subtype/Link/Rect[189 230 201 237]/Border[0 0 0]/H/N>> endobj 32004 0 obj <>/P 6038 0 R/Type/Annot/A 32334 0 R/Subtype/Link/Rect[202 220 218 228]/Border[0 0 0]/H/N>> endobj 32005 0 obj <>/P 6038 0 R/Type/Annot/A 32331 0 R/Subtype/Link/Rect[219 220 231 227]/Border[0 0 0]/H/N>> endobj 32006 0 obj <>/P 6038 0 R/Type/Annot/A 32328 0 R/Subtype/Link/Rect[207 210 219 217]/Border[0 0 0]/H/N>> endobj 32007 0 obj <>/P 6038 0 R/Type/Annot/A 32325 0 R/Subtype/Link/Rect[187 200 201 207]/Border[0 0 0]/H/N>> endobj 32008 0 obj <>/P 6038 0 R/Type/Annot/A 32322 0 R/Subtype/Link/Rect[203 200 217 207]/Border[0 0 0]/H/N>> endobj 32009 0 obj <>/P 6038 0 R/Type/Annot/A 32319 0 R/Subtype/Link/Rect[219 200 236 208]/Border[0 0 0]/H/N>> endobj 32010 0 obj <>/P 6038 0 R/Type/Annot/A 32316 0 R/Subtype/Link/Rect[237 200 251 207]/Border[0 0 0]/H/N>> endobj 32011 0 obj <>/P 6038 0 R/Type/Annot/A 32313 0 R/Subtype/Link/Rect[253 200 267 207]/Border[0 0 0]/H/N>> endobj 32012 0 obj <>/P 6038 0 R/Type/Annot/A 32310 0 R/Subtype/Link/Rect[269 200 285 208]/Border[0 0 0]/H/N>> endobj 32013 0 obj <>/P 6038 0 R/Type/Annot/A 32307 0 R/Subtype/Link/Rect[286 200 298 207]/Border[0 0 0]/H/N>> endobj 32014 0 obj <>/P 6038 0 R/Type/Annot/A 32304 0 R/Subtype/Link/Rect[169 180 182 188]/Border[0 0 0]/H/N>> endobj 32015 0 obj <>/P 6038 0 R/Type/Annot/A 32301 0 R/Subtype/Link/Rect[183 180 193 187]/Border[0 0 0]/H/N>> endobj 32016 0 obj <>/P 6038 0 R/Type/Annot/A 32298 0 R/Subtype/Link/Rect[195 180 207 187]/Border[0 0 0]/H/N>> endobj 32017 0 obj <>/P 6038 0 R/Type/Annot/A 32295 0 R/Subtype/Link/Rect[156 170 169 178]/Border[0 0 0]/H/N>> endobj 32018 0 obj <>/P 6038 0 R/Type/Annot/A 32292 0 R/Subtype/Link/Rect[169 170 179 177]/Border[0 0 0]/H/N>> endobj 32019 0 obj <>/P 6038 0 R/Type/Annot/A 32289 0 R/Subtype/Link/Rect[181 170 195 177]/Border[0 0 0]/H/N>> endobj 32020 0 obj <>/P 6038 0 R/Type/Annot/A 32286 0 R/Subtype/Link/Rect[197 170 209 177]/Border[0 0 0]/H/N>> endobj 32021 0 obj <>/P 6038 0 R/Type/Annot/A 32283 0 R/Subtype/Link/Rect[210 160 218 167]/Border[0 0 0]/H/N>> endobj 32022 0 obj <>/P 6038 0 R/Type/Annot/A 32280 0 R/Subtype/Link/Rect[245 150 259 157]/Border[0 0 0]/H/N>> endobj 32023 0 obj <>/P 6038 0 R/Type/Annot/A 32277 0 R/Subtype/Link/Rect[261 150 273 157]/Border[0 0 0]/H/N>> endobj 32024 0 obj <>/P 6038 0 R/Type/Annot/A 32411 0 R/Subtype/Link/Rect[410 670 426 678]/Border[0 0 0]/H/N>> endobj 32025 0 obj <>/P 6038 0 R/Type/Annot/A 32271 0 R/Subtype/Link/Rect[427 670 439 677]/Border[0 0 0]/H/N>> endobj 32026 0 obj <>/P 6038 0 R/Type/Annot/A 32268 0 R/Subtype/Link/Rect[405 660 419 667]/Border[0 0 0]/H/N>> endobj 32027 0 obj <>/P 6038 0 R/Type/Annot/A 32265 0 R/Subtype/Link/Rect[421 660 435 667]/Border[0 0 0]/H/N>> endobj 32028 0 obj <>/P 6038 0 R/Type/Annot/A 32262 0 R/Subtype/Link/Rect[437 660 451 667]/Border[0 0 0]/H/N>> endobj 32029 0 obj <>/P 6038 0 R/Type/Annot/A 32259 0 R/Subtype/Link/Rect[453 660 470 668]/Border[0 0 0]/H/N>> endobj 32030 0 obj <>/P 6038 0 R/Type/Annot/A 32257 0 R/Subtype/Link/Rect[470 660 482 667]/Border[0 0 0]/H/N>> endobj 32031 0 obj <>/P 6038 0 R/Type/Annot/A 32255 0 R/Subtype/Link/Rect[458 650 472 657]/Border[0 0 0]/H/N>> endobj 32032 0 obj <>/P 6038 0 R/Type/Annot/A 32253 0 R/Subtype/Link/Rect[474 650 486 657]/Border[0 0 0]/H/N>> endobj 32033 0 obj <>/P 6038 0 R/Type/Annot/A 32251 0 R/Subtype/Link/Rect[400 640 414 647]/Border[0 0 0]/H/N>> endobj 32034 0 obj <>/P 6038 0 R/Type/Annot/A 32249 0 R/Subtype/Link/Rect[416 640 428 647]/Border[0 0 0]/H/N>> endobj 32035 0 obj <>/P 6038 0 R/Type/Annot/A 32247 0 R/Subtype/Link/Rect[400 630 414 637]/Border[0 0 0]/H/N>> endobj 32036 0 obj <>/P 6038 0 R/Type/Annot/A 32245 0 R/Subtype/Link/Rect[416 630 428 637]/Border[0 0 0]/H/N>> endobj 32037 0 obj <>/P 6038 0 R/Type/Annot/A 32243 0 R/Subtype/Link/Rect[400 620 414 627]/Border[0 0 0]/H/N>> endobj 32038 0 obj <>/P 6038 0 R/Type/Annot/A 32241 0 R/Subtype/Link/Rect[416 620 428 627]/Border[0 0 0]/H/N>> endobj 32039 0 obj <>/P 6038 0 R/Type/Annot/A 32239 0 R/Subtype/Link/Rect[400 610 414 617]/Border[0 0 0]/H/N>> endobj 32040 0 obj <>/P 6038 0 R/Type/Annot/A 32237 0 R/Subtype/Link/Rect[416 610 433 618]/Border[0 0 0]/H/N>> endobj 32041 0 obj <>/P 6038 0 R/Type/Annot/A 32235 0 R/Subtype/Link/Rect[433 610 447 617]/Border[0 0 0]/H/N>> endobj 32042 0 obj <>/P 6038 0 R/Type/Annot/A 32233 0 R/Subtype/Link/Rect[449 610 461 617]/Border[0 0 0]/H/N>> endobj 32043 0 obj <>/P 6038 0 R/Type/Annot/A 32231 0 R/Subtype/Link/Rect[395 600 409 607]/Border[0 0 0]/H/N>> endobj 32044 0 obj <>/P 6038 0 R/Type/Annot/A 32229 0 R/Subtype/Link/Rect[411 600 428 608]/Border[0 0 0]/H/N>> endobj 32045 0 obj <>/P 6038 0 R/Type/Annot/A 32227 0 R/Subtype/Link/Rect[429 600 443 607]/Border[0 0 0]/H/N>> endobj 32046 0 obj <>/P 6038 0 R/Type/Annot/A 32224 0 R/Subtype/Link/Rect[445 600 459 607]/Border[0 0 0]/H/N>> endobj 32047 0 obj <>/P 6038 0 R/Type/Annot/A 32222 0 R/Subtype/Link/Rect[461 600 477 608]/Border[0 0 0]/H/N>> endobj 32048 0 obj <>/P 6038 0 R/Type/Annot/A 32220 0 R/Subtype/Link/Rect[478 600 490 607]/Border[0 0 0]/H/N>> endobj 32049 0 obj <>/P 6038 0 R/Type/Annot/A 32218 0 R/Subtype/Link/Rect[372 557 384 564]/Border[0 0 0]/H/N>> endobj 32050 0 obj <>/P 6038 0 R/Type/Annot/A 32216 0 R/Subtype/Link/Rect[413 547 427 554]/Border[0 0 0]/H/N>> endobj 32051 0 obj <>/P 6038 0 R/Type/Annot/A 32213 0 R/Subtype/Link/Rect[429 547 443 554]/Border[0 0 0]/H/N>> endobj 32052 0 obj <>/P 6038 0 R/Type/Annot/A 32211 0 R/Subtype/Link/Rect[445 547 459 554]/Border[0 0 0]/H/N>> endobj 32053 0 obj <>/P 6038 0 R/Type/Annot/A 32209 0 R/Subtype/Link/Rect[461 547 473 554]/Border[0 0 0]/H/N>> endobj 32054 0 obj <>/P 6038 0 R/Type/Annot/A 32206 0 R/Subtype/Link/Rect[381 537 397 545]/Border[0 0 0]/H/N>> endobj 32055 0 obj <>/P 6038 0 R/Type/Annot/A 32203 0 R/Subtype/Link/Rect[398 537 410 544]/Border[0 0 0]/H/N>> endobj 32056 0 obj <>/P 6038 0 R/Type/Annot/A 32485 0 R/Subtype/Link/Rect[370 527 384 534]/Border[0 0 0]/H/N>> endobj 32057 0 obj <>/P 6038 0 R/Type/Annot/A 32198 0 R/Subtype/Link/Rect[386 527 400 534]/Border[0 0 0]/H/N>> endobj 32058 0 obj <>/P 6038 0 R/Type/Annot/A 32196 0 R/Subtype/Link/Rect[402 527 419 535]/Border[0 0 0]/H/N>> endobj 32059 0 obj <>/P 6038 0 R/Type/Annot/A 32194 0 R/Subtype/Link/Rect[420 527 434 534]/Border[0 0 0]/H/N>> endobj 32060 0 obj <>/P 6038 0 R/Type/Annot/A 32192 0 R/Subtype/Link/Rect[436 527 450 534]/Border[0 0 0]/H/N>> endobj 32061 0 obj <>/P 6038 0 R/Type/Annot/A 32190 0 R/Subtype/Link/Rect[452 527 466 534]/Border[0 0 0]/H/N>> endobj 32062 0 obj <>/P 6038 0 R/Type/Annot/A 32188 0 R/Subtype/Link/Rect[468 527 482 534]/Border[0 0 0]/H/N>> endobj 32063 0 obj <>/P 6038 0 R/Type/Annot/A 32186 0 R/Subtype/Link/Rect[484 527 498 534]/Border[0 0 0]/H/N>> endobj 32064 0 obj <>/P 6038 0 R/Type/Annot/A 32468 0 R/Subtype/Link/Rect[359 517 375 525]/Border[0 0 0]/H/N>> endobj 32065 0 obj <>/P 6038 0 R/Type/Annot/A 32464 0 R/Subtype/Link/Rect[376 517 388 524]/Border[0 0 0]/H/N>> endobj 32066 0 obj <>/P 6038 0 R/Type/Annot/A 32460 0 R/Subtype/Link/Rect[378 507 395 515]/Border[0 0 0]/H/N>> endobj 32067 0 obj <>/P 6038 0 R/Type/Annot/A 32456 0 R/Subtype/Link/Rect[396 507 408 514]/Border[0 0 0]/H/N>> endobj 32068 0 obj <>/P 6038 0 R/Type/Annot/A 32452 0 R/Subtype/Link/Rect[392 497 409 505]/Border[0 0 0]/H/N>> endobj 32069 0 obj <>/P 6038 0 R/Type/Annot/A 32448 0 R/Subtype/Link/Rect[410 497 424 504]/Border[0 0 0]/H/N>> endobj 32070 0 obj <>/P 6038 0 R/Type/Annot/A 32443 0 R/Subtype/Link/Rect[426 497 442 505]/Border[0 0 0]/H/N>> endobj 32071 0 obj <>/P 6038 0 R/Type/Annot/A 32439 0 R/Subtype/Link/Rect[443 497 457 504]/Border[0 0 0]/H/N>> endobj 32072 0 obj <>/P 6038 0 R/Type/Annot/A 39510 0 R/Subtype/Link/Rect[459 497 471 504]/Border[0 0 0]/H/N>> endobj 32073 0 obj <>/P 6038 0 R/Type/Annot/A 32431 0 R/Subtype/Link/Rect[471 487 483 494]/Border[0 0 0]/H/N>> endobj 32074 0 obj <>/P 6038 0 R/Type/Annot/A 32427 0 R/Subtype/Link/Rect[414 477 426 484]/Border[0 0 0]/H/N>> endobj 32075 0 obj <>/P 6038 0 R/Type/Annot/A 32423 0 R/Subtype/Link/Rect[397 467 409 474]/Border[0 0 0]/H/N>> endobj 32076 0 obj <>/P 6038 0 R/Type/Annot/A 32419 0 R/Subtype/Link/Rect[471 457 483 464]/Border[0 0 0]/H/N>> endobj 32077 0 obj <>/P 6038 0 R/Type/Annot/A 32415 0 R/Subtype/Link/Rect[424 447 436 454]/Border[0 0 0]/H/N>> endobj 32078 0 obj <>/P 6038 0 R/Type/Annot/A 32410 0 R/Subtype/Link/Rect[397 437 409 444]/Border[0 0 0]/H/N>> endobj 32079 0 obj <>/P 6038 0 R/Type/Annot/A 32406 0 R/Subtype/Link/Rect[382 427 390 434]/Border[0 0 0]/H/N>> endobj 32080 0 obj <>/P 6038 0 R/Type/Annot/A 32402 0 R/Subtype/Link/Rect[385 417 393 424]/Border[0 0 0]/H/N>> endobj 32081 0 obj <>/P 6038 0 R/Type/Annot/A 32398 0 R/Subtype/Link/Rect[392 407 404 414]/Border[0 0 0]/H/N>> endobj 32082 0 obj <>/P 6038 0 R/Type/Annot/A 32394 0 R/Subtype/Link/Rect[386 364 398 372]/Border[0 0 0]/H/N>> endobj 32083 0 obj <>/P 6038 0 R/Type/Annot/A 32391 0 R/Subtype/Link/Rect[399 364 409 371]/Border[0 0 0]/H/N>> endobj 32084 0 obj <>/P 6038 0 R/Type/Annot/A 32387 0 R/Subtype/Link/Rect[411 364 421 371]/Border[0 0 0]/H/N>> endobj 32085 0 obj <>/P 6038 0 R/Type/Annot/A 32383 0 R/Subtype/Link/Rect[423 364 436 371]/Border[0 0 0]/H/N>> endobj 32086 0 obj <>/P 6038 0 R/Type/Annot/A 32379 0 R/Subtype/Link/Rect[438 364 452 371]/Border[0 0 0]/H/N>> endobj 32087 0 obj <>/P 6038 0 R/Type/Annot/A 32376 0 R/Subtype/Link/Rect[454 364 468 371]/Border[0 0 0]/H/N>> endobj 32088 0 obj <>/P 6038 0 R/Type/Annot/A 32207 0 R/Subtype/Link/Rect[470 364 484 371]/Border[0 0 0]/H/N>> endobj 32089 0 obj <>/P 6038 0 R/Type/Annot/A 32367 0 R/Subtype/Link/Rect[486 364 500 371]/Border[0 0 0]/H/N>> endobj 32090 0 obj <>/P 6038 0 R/Type/Annot/A 32201 0 R/Subtype/Link/Rect[502 364 514 371]/Border[0 0 0]/H/N>> endobj 32091 0 obj <>/P 6038 0 R/Type/Annot/A 32359 0 R/Subtype/Link/Rect[365 354 369 361]/Border[0 0 0]/H/N>> endobj 32092 0 obj <>/P 6038 0 R/Type/Annot/A 38064 0 R/Subtype/Link/Rect[436 344 446 351]/Border[0 0 0]/H/N>> endobj 32093 0 obj <>/P 6038 0 R/Type/Annot/A 32352 0 R/Subtype/Link/Rect[448 344 462 351]/Border[0 0 0]/H/N>> endobj 32094 0 obj <>/P 6038 0 R/Type/Annot/A 32348 0 R/Subtype/Link/Rect[464 344 478 351]/Border[0 0 0]/H/N>> endobj 32095 0 obj <>/P 6038 0 R/Type/Annot/A 32344 0 R/Subtype/Link/Rect[480 344 494 351]/Border[0 0 0]/H/N>> endobj 32096 0 obj <>/P 6038 0 R/Type/Annot/A 32340 0 R/Subtype/Link/Rect[496 344 510 351]/Border[0 0 0]/H/N>> endobj 32097 0 obj <>/P 6038 0 R/Type/Annot/A 32506 0 R/Subtype/Link/Rect[359 334 373 341]/Border[0 0 0]/H/N>> endobj 32098 0 obj <>/P 6038 0 R/Type/Annot/A 32503 0 R/Subtype/Link/Rect[375 334 389 341]/Border[0 0 0]/H/N>> endobj 32099 0 obj <>/P 6038 0 R/Type/Annot/A 32502 0 R/Subtype/Link/Rect[391 334 405 341]/Border[0 0 0]/H/N>> endobj 32100 0 obj <>/P 6038 0 R/Type/Annot/A 32501 0 R/Subtype/Link/Rect[407 334 421 341]/Border[0 0 0]/H/N>> endobj 32101 0 obj <>/P 6038 0 R/Type/Annot/A 32500 0 R/Subtype/Link/Rect[423 334 437 341]/Border[0 0 0]/H/N>> endobj 32102 0 obj <>/P 6038 0 R/Type/Annot/A 32499 0 R/Subtype/Link/Rect[439 334 451 341]/Border[0 0 0]/H/N>> endobj 32103 0 obj <>/P 6038 0 R/Type/Annot/A 32498 0 R/Subtype/Link/Rect[383 324 395 331]/Border[0 0 0]/H/N>> endobj 32104 0 obj <>/P 6038 0 R/Type/Annot/A 32497 0 R/Subtype/Link/Rect[372 314 389 322]/Border[0 0 0]/H/N>> endobj 32105 0 obj <>/P 6038 0 R/Type/Annot/A 32496 0 R/Subtype/Link/Rect[389 314 403 321]/Border[0 0 0]/H/N>> endobj 32106 0 obj <>/P 6038 0 R/Type/Annot/A 32495 0 R/Subtype/Link/Rect[405 314 419 321]/Border[0 0 0]/H/N>> endobj 32107 0 obj <>/P 6038 0 R/Type/Annot/A 32494 0 R/Subtype/Link/Rect[421 314 435 321]/Border[0 0 0]/H/N>> endobj 32108 0 obj <>/P 6038 0 R/Type/Annot/A 32493 0 R/Subtype/Link/Rect[437 314 449 321]/Border[0 0 0]/H/N>> endobj 32109 0 obj <>/P 6038 0 R/Type/Annot/A 32492 0 R/Subtype/Link/Rect[403 304 417 311]/Border[0 0 0]/H/N>> endobj 32110 0 obj <>/P 6038 0 R/Type/Annot/A 32491 0 R/Subtype/Link/Rect[419 304 431 311]/Border[0 0 0]/H/N>> endobj 32111 0 obj <>/P 6038 0 R/Type/Annot/A 32490 0 R/Subtype/Link/Rect[395 294 405 301]/Border[0 0 0]/H/N>> endobj 32112 0 obj <>/P 6038 0 R/Type/Annot/A 32489 0 R/Subtype/Link/Rect[407 294 421 301]/Border[0 0 0]/H/N>> endobj 32113 0 obj <>/P 6038 0 R/Type/Annot/A 32488 0 R/Subtype/Link/Rect[423 294 437 301]/Border[0 0 0]/H/N>> endobj 32114 0 obj <>/P 6038 0 R/Type/Annot/A 32487 0 R/Subtype/Link/Rect[439 294 453 301]/Border[0 0 0]/H/N>> endobj 32115 0 obj <>/P 6038 0 R/Type/Annot/A 32486 0 R/Subtype/Link/Rect[455 294 469 301]/Border[0 0 0]/H/N>> endobj 32116 0 obj <>/P 6038 0 R/Type/Annot/A 32484 0 R/Subtype/Link/Rect[471 294 485 301]/Border[0 0 0]/H/N>> endobj 32117 0 obj <>/P 6038 0 R/Type/Annot/A 32483 0 R/Subtype/Link/Rect[487 294 504 302]/Border[0 0 0]/H/N>> endobj 32118 0 obj <>/P 6038 0 R/Type/Annot/A 32482 0 R/Subtype/Link/Rect[504 294 518 301]/Border[0 0 0]/H/N>> endobj 32119 0 obj <>/P 6038 0 R/Type/Annot/A 32481 0 R/Subtype/Link/Rect[359 284 373 291]/Border[0 0 0]/H/N>> endobj 32120 0 obj <>/P 6038 0 R/Type/Annot/A 32480 0 R/Subtype/Link/Rect[375 284 389 291]/Border[0 0 0]/H/N>> endobj 32121 0 obj <>/P 6038 0 R/Type/Annot/A 32477 0 R/Subtype/Link/Rect[391 284 407 292]/Border[0 0 0]/H/N>> endobj 32122 0 obj <>/P 6038 0 R/Type/Annot/A 32474 0 R/Subtype/Link/Rect[408 284 422 291]/Border[0 0 0]/H/N>> endobj 32123 0 obj <>/P 6038 0 R/Type/Annot/A 32471 0 R/Subtype/Link/Rect[424 284 438 291]/Border[0 0 0]/H/N>> endobj 32124 0 obj <>/P 6038 0 R/Type/Annot/A 32467 0 R/Subtype/Link/Rect[440 284 457 292]/Border[0 0 0]/H/N>> endobj 32125 0 obj <>/P 6038 0 R/Type/Annot/A 32463 0 R/Subtype/Link/Rect[457 284 471 291]/Border[0 0 0]/H/N>> endobj 32126 0 obj <>/P 6038 0 R/Type/Annot/A 32459 0 R/Subtype/Link/Rect[473 284 487 291]/Border[0 0 0]/H/N>> endobj 32127 0 obj <>/P 6038 0 R/Type/Annot/A 32455 0 R/Subtype/Link/Rect[489 284 503 291]/Border[0 0 0]/H/N>> endobj 32128 0 obj <>/P 6038 0 R/Type/Annot/A 32451 0 R/Subtype/Link/Rect[359 274 373 281]/Border[0 0 0]/H/N>> endobj 32129 0 obj <>/P 6038 0 R/Type/Annot/A 32447 0 R/Subtype/Link/Rect[375 274 389 281]/Border[0 0 0]/H/N>> endobj 32130 0 obj <>/P 6038 0 R/Type/Annot/A 32444 0 R/Subtype/Link/Rect[391 274 405 281]/Border[0 0 0]/H/N>> endobj 32131 0 obj <>/P 6038 0 R/Type/Annot/A 32440 0 R/Subtype/Link/Rect[407 274 423 282]/Border[0 0 0]/H/N>> endobj 32132 0 obj <>/P 6038 0 R/Type/Annot/A 32436 0 R/Subtype/Link/Rect[424 274 438 281]/Border[0 0 0]/H/N>> endobj 32133 0 obj <>/P 6038 0 R/Type/Annot/A 32433 0 R/Subtype/Link/Rect[440 274 454 281]/Border[0 0 0]/H/N>> endobj 32134 0 obj <>/P 6038 0 R/Type/Annot/A 32429 0 R/Subtype/Link/Rect[456 274 468 281]/Border[0 0 0]/H/N>> endobj 32135 0 obj <>/P 6038 0 R/Type/Annot/A 32425 0 R/Subtype/Link/Rect[397 264 409 271]/Border[0 0 0]/H/N>> endobj 32136 0 obj <>/P 6038 0 R/Type/Annot/A 32421 0 R/Subtype/Link/Rect[396 254 413 262]/Border[0 0 0]/H/N>> endobj 32137 0 obj <>/P 6038 0 R/Type/Annot/A 32417 0 R/Subtype/Link/Rect[414 254 428 261]/Border[0 0 0]/H/N>> endobj 32138 0 obj <>/P 6038 0 R/Type/Annot/A 32413 0 R/Subtype/Link/Rect[430 254 444 261]/Border[0 0 0]/H/N>> endobj 32139 0 obj <>/P 6038 0 R/Type/Annot/A 32408 0 R/Subtype/Link/Rect[446 254 460 261]/Border[0 0 0]/H/N>> endobj 32140 0 obj <>/P 6038 0 R/Type/Annot/A 32404 0 R/Subtype/Link/Rect[462 254 474 261]/Border[0 0 0]/H/N>> endobj 32141 0 obj <>/P 6038 0 R/Type/Annot/A 32400 0 R/Subtype/Link/Rect[427 244 441 251]/Border[0 0 0]/H/N>> endobj 32142 0 obj <>/P 6038 0 R/Type/Annot/A 32396 0 R/Subtype/Link/Rect[443 244 457 251]/Border[0 0 0]/H/N>> endobj 32143 0 obj <>/P 6038 0 R/Type/Annot/A 32214 0 R/Subtype/Link/Rect[459 244 473 251]/Border[0 0 0]/H/N>> endobj 32144 0 obj <>/P 6038 0 R/Type/Annot/A 32390 0 R/Subtype/Link/Rect[475 244 492 252]/Border[0 0 0]/H/N>> endobj 32145 0 obj <>/P 6038 0 R/Type/Annot/A 32386 0 R/Subtype/Link/Rect[492 244 504 251]/Border[0 0 0]/H/N>> endobj 32146 0 obj <>/P 6038 0 R/Type/Annot/A 32382 0 R/Subtype/Link/Rect[434 234 448 241]/Border[0 0 0]/H/N>> endobj 32147 0 obj <>/P 6038 0 R/Type/Annot/A 32204 0 R/Subtype/Link/Rect[450 234 466 242]/Border[0 0 0]/H/N>> endobj 32148 0 obj <>/P 6038 0 R/Type/Annot/A 32377 0 R/Subtype/Link/Rect[467 234 479 241]/Border[0 0 0]/H/N>> endobj 32149 0 obj <>/P 6038 0 R/Type/Annot/A 32372 0 R/Subtype/Link/Rect[397 224 409 231]/Border[0 0 0]/H/N>> endobj 32150 0 obj <>/P 6038 0 R/Type/Annot/A 32369 0 R/Subtype/Link/Rect[393 214 403 221]/Border[0 0 0]/H/N>> endobj 32151 0 obj <>/P 6038 0 R/Type/Annot/A 32365 0 R/Subtype/Link/Rect[405 214 417 221]/Border[0 0 0]/H/N>> endobj 32152 0 obj <>/P 6038 0 R/Type/Annot/A 32362 0 R/Subtype/Link/Rect[387 204 401 211]/Border[0 0 0]/H/N>> endobj 32153 0 obj <>/P 6038 0 R/Type/Annot/A 32358 0 R/Subtype/Link/Rect[403 204 417 211]/Border[0 0 0]/H/N>> endobj 32154 0 obj <>/P 6038 0 R/Type/Annot/A 32355 0 R/Subtype/Link/Rect[419 204 431 211]/Border[0 0 0]/H/N>> endobj 32155 0 obj <>/P 6038 0 R/Type/Annot/A 32351 0 R/Subtype/Link/Rect[383 194 389 201]/Border[0 0 0]/H/N>> endobj 32156 0 obj <>/P 6038 0 R/Type/Annot/A 32347 0 R/Subtype/Link/Rect[391 194 405 201]/Border[0 0 0]/H/N>> endobj 32157 0 obj <>/P 6038 0 R/Type/Annot/A 32343 0 R/Subtype/Link/Rect[407 194 421 201]/Border[0 0 0]/H/N>> endobj 32158 0 obj <>/P 6038 0 R/Type/Annot/A 32339 0 R/Subtype/Link/Rect[423 194 437 201]/Border[0 0 0]/H/N>> endobj 32159 0 obj <>/P 6038 0 R/Type/Annot/A 32336 0 R/Subtype/Link/Rect[439 194 456 202]/Border[0 0 0]/H/N>> endobj 32160 0 obj <>/P 6038 0 R/Type/Annot/A 32333 0 R/Subtype/Link/Rect[457 194 471 201]/Border[0 0 0]/H/N>> endobj 32161 0 obj <>/P 6038 0 R/Type/Annot/A 32330 0 R/Subtype/Link/Rect[473 194 485 201]/Border[0 0 0]/H/N>> endobj 32162 0 obj <>/P 6038 0 R/Type/Annot/A 32327 0 R/Subtype/Link/Rect[379 184 385 191]/Border[0 0 0]/H/N>> endobj 32163 0 obj <>/P 6038 0 R/Type/Annot/A 32324 0 R/Subtype/Link/Rect[387 184 397 191]/Border[0 0 0]/H/N>> endobj 32164 0 obj <>/P 6038 0 R/Type/Annot/A 32321 0 R/Subtype/Link/Rect[399 184 409 191]/Border[0 0 0]/H/N>> endobj 32165 0 obj <>/P 6038 0 R/Type/Annot/A 32318 0 R/Subtype/Link/Rect[411 184 425 191]/Border[0 0 0]/H/N>> endobj 32166 0 obj <>/P 6038 0 R/Type/Annot/A 32315 0 R/Subtype/Link/Rect[427 184 441 191]/Border[0 0 0]/H/N>> endobj 32167 0 obj <>/P 6038 0 R/Type/Annot/A 32312 0 R/Subtype/Link/Rect[443 184 457 191]/Border[0 0 0]/H/N>> endobj 32168 0 obj <>/P 6038 0 R/Type/Annot/A 32309 0 R/Subtype/Link/Rect[459 184 473 191]/Border[0 0 0]/H/N>> endobj 32169 0 obj <>/P 6038 0 R/Type/Annot/A 32306 0 R/Subtype/Link/Rect[475 184 489 191]/Border[0 0 0]/H/N>> endobj 32170 0 obj <>/P 6038 0 R/Type/Annot/A 32303 0 R/Subtype/Link/Rect[491 184 505 191]/Border[0 0 0]/H/N>> endobj 32171 0 obj <>/P 6038 0 R/Type/Annot/A 32300 0 R/Subtype/Link/Rect[359 174 373 181]/Border[0 0 0]/H/N>> endobj 32172 0 obj <>/P 6038 0 R/Type/Annot/A 32297 0 R/Subtype/Link/Rect[375 174 391 182]/Border[0 0 0]/H/N>> endobj 32173 0 obj <>/P 6038 0 R/Type/Annot/A 32294 0 R/Subtype/Link/Rect[392 174 406 181]/Border[0 0 0]/H/N>> endobj 32174 0 obj <>/P 6038 0 R/Type/Annot/A 32291 0 R/Subtype/Link/Rect[408 174 422 181]/Border[0 0 0]/H/N>> endobj 32175 0 obj <>/P 6038 0 R/Type/Annot/A 32288 0 R/Subtype/Link/Rect[424 174 438 181]/Border[0 0 0]/H/N>> endobj 32176 0 obj <>/P 6038 0 R/Type/Annot/A 32373 0 R/Subtype/Link/Rect[440 174 452 181]/Border[0 0 0]/H/N>> endobj 32177 0 obj <>/P 6038 0 R/Type/Annot/A 32284 0 R/Subtype/Link/Rect[391 164 405 171]/Border[0 0 0]/H/N>> endobj 32178 0 obj <>/P 6038 0 R/Type/Annot/A 32281 0 R/Subtype/Link/Rect[407 164 419 171]/Border[0 0 0]/H/N>> endobj 32179 0 obj <>/P 6038 0 R/Type/Annot/A 32278 0 R/Subtype/Link/Rect[381 154 395 161]/Border[0 0 0]/H/N>> endobj 32180 0 obj <>/P 6038 0 R/Type/Annot/A 32275 0 R/Subtype/Link/Rect[397 154 411 161]/Border[0 0 0]/H/N>> endobj 32181 0 obj <>/P 6038 0 R/Type/Annot/A 32273 0 R/Subtype/Link/Rect[413 154 425 161]/Border[0 0 0]/H/N>> endobj 32182 0 obj <>/P 6038 0 R/Type/Annot/A 32270 0 R/Subtype/Link/Rect[403 342 414 351]/Border[0 0 0]/H/N>> endobj 32183 0 obj <>/P 6038 0 R/Type/Annot/A 32267 0 R/Subtype/Link/Rect[416 342 435 351]/Border[0 0 0]/H/N>> endobj 32184 0 obj <>/P 6038 0 R/Type/Annot/A 32264 0 R/Subtype/Link/Rect[288 188 299 197]/Border[0 0 0]/H/N>> endobj 32185 0 obj <>/P 6038 0 R/Type/Annot/A 32261 0 R/Subtype/Link/Rect[151 178 168 187]/Border[0 0 0]/H/N>> endobj 32186 0 obj <> endobj 32187 0 obj <> endobj 32188 0 obj <> endobj 32189 0 obj <> endobj 32190 0 obj <> endobj 32191 0 obj <> endobj 32192 0 obj <> endobj 32193 0 obj <> endobj 32194 0 obj <> endobj 32195 0 obj <> endobj 32196 0 obj <> endobj 32197 0 obj <> endobj 32198 0 obj <> endobj 32199 0 obj <> endobj 32200 0 obj <> endobj 32201 0 obj <> endobj 32202 0 obj <> endobj 32203 0 obj <> endobj 32204 0 obj <> endobj 32205 0 obj <> endobj 32206 0 obj <> endobj 32207 0 obj <> endobj 32208 0 obj <> endobj 32209 0 obj <> endobj 32210 0 obj <> endobj 32211 0 obj <> endobj 32212 0 obj <> endobj 32213 0 obj <> endobj 32214 0 obj <> endobj 32215 0 obj <> endobj 32216 0 obj <> endobj 32217 0 obj <> endobj 32218 0 obj <> endobj 32219 0 obj <> endobj 32220 0 obj <> endobj 32221 0 obj <> endobj 32222 0 obj <> endobj 32223 0 obj <> endobj 32224 0 obj <> endobj 32225 0 obj <> endobj 32226 0 obj <> endobj 32227 0 obj <> endobj 32228 0 obj <> endobj 32229 0 obj <> endobj 32230 0 obj <> endobj 32231 0 obj <> endobj 32232 0 obj <> endobj 32233 0 obj <> endobj 32234 0 obj <> endobj 32235 0 obj <> endobj 32236 0 obj <> endobj 32237 0 obj <> endobj 32238 0 obj <> endobj 32239 0 obj <> endobj 32240 0 obj <> endobj 32241 0 obj <> endobj 32242 0 obj <> endobj 32243 0 obj <> endobj 32244 0 obj <> endobj 32245 0 obj <> endobj 32246 0 obj <> endobj 32247 0 obj <> endobj 32248 0 obj <> endobj 32249 0 obj <> endobj 32250 0 obj <> endobj 32251 0 obj <> endobj 32252 0 obj <> endobj 32253 0 obj <> endobj 32254 0 obj <> endobj 32255 0 obj <> endobj 32256 0 obj <> endobj 32257 0 obj <> endobj 32258 0 obj <> endobj 32259 0 obj <> endobj 32260 0 obj <> endobj 32261 0 obj <> endobj 32262 0 obj <> endobj 32263 0 obj <> endobj 32264 0 obj <> endobj 32265 0 obj <> endobj 32266 0 obj <> endobj 32267 0 obj <> endobj 32268 0 obj <> endobj 32269 0 obj <> endobj 32270 0 obj <> endobj 32271 0 obj <> endobj 32272 0 obj <> endobj 32273 0 obj <> endobj 32274 0 obj <> endobj 32275 0 obj <> endobj 32276 0 obj <> endobj 32277 0 obj <> endobj 32278 0 obj <> endobj 32279 0 obj <> endobj 32280 0 obj <> endobj 32281 0 obj <> endobj 32282 0 obj <> endobj 32283 0 obj <> endobj 32284 0 obj <> endobj 32285 0 obj <> endobj 32286 0 obj <> endobj 32287 0 obj <> endobj 32288 0 obj <> endobj 32289 0 obj <> endobj 32290 0 obj <> endobj 32291 0 obj <> endobj 32292 0 obj <> endobj 32293 0 obj <> endobj 32294 0 obj <> endobj 32295 0 obj <> endobj 32296 0 obj <> endobj 32297 0 obj <> endobj 32298 0 obj <> endobj 32299 0 obj <> endobj 32300 0 obj <> endobj 32301 0 obj <> endobj 32302 0 obj <> endobj 32303 0 obj <> endobj 32304 0 obj <> endobj 32305 0 obj <> endobj 32306 0 obj <> endobj 32307 0 obj <> endobj 32308 0 obj <> endobj 32309 0 obj <> endobj 32310 0 obj <> endobj 32311 0 obj <> endobj 32312 0 obj <> endobj 32313 0 obj <> endobj 32314 0 obj <> endobj 32315 0 obj <> endobj 32316 0 obj <> endobj 32317 0 obj <> endobj 32318 0 obj <> endobj 32319 0 obj <> endobj 32320 0 obj <> endobj 32321 0 obj <> endobj 32322 0 obj <> endobj 32323 0 obj <> endobj 32324 0 obj <> endobj 32325 0 obj <> endobj 32326 0 obj <> endobj 32327 0 obj <> endobj 32328 0 obj <> endobj 32329 0 obj <> endobj 32330 0 obj <> endobj 32331 0 obj <> endobj 32332 0 obj <> endobj 32333 0 obj <> endobj 32334 0 obj <> endobj 32335 0 obj <> endobj 32336 0 obj <> endobj 32337 0 obj <> endobj 32338 0 obj <> endobj 32339 0 obj <> endobj 32340 0 obj <> endobj 32341 0 obj <> endobj 32342 0 obj <> endobj 32343 0 obj <> endobj 32344 0 obj <> endobj 32345 0 obj <> endobj 32346 0 obj <> endobj 32347 0 obj <> endobj 32348 0 obj <> endobj 32349 0 obj <> endobj 32350 0 obj <> endobj 32351 0 obj <> endobj 32352 0 obj <> endobj 32353 0 obj <> endobj 32354 0 obj <> endobj 32355 0 obj <> endobj 32356 0 obj <> endobj 32357 0 obj <> endobj 32358 0 obj <> endobj 32359 0 obj <> endobj 32360 0 obj <> endobj 32361 0 obj <> endobj 32362 0 obj <> endobj 32363 0 obj <> endobj 32364 0 obj <> endobj 32365 0 obj <> endobj 32366 0 obj <> endobj 32367 0 obj <> endobj 32368 0 obj <> endobj 32369 0 obj <> endobj 32370 0 obj <> endobj 32371 0 obj <> endobj 32372 0 obj <> endobj 32373 0 obj <> endobj 32374 0 obj <> endobj 32375 0 obj <> endobj 32376 0 obj <> endobj 32377 0 obj <> endobj 32378 0 obj <> endobj 32379 0 obj <> endobj 32380 0 obj <> endobj 32381 0 obj <> endobj 32382 0 obj <> endobj 32383 0 obj <> endobj 32384 0 obj <> endobj 32385 0 obj <> endobj 32386 0 obj <> endobj 32387 0 obj <> endobj 32388 0 obj <> endobj 32389 0 obj <> endobj 32390 0 obj <> endobj 32391 0 obj <> endobj 32392 0 obj <> endobj 32393 0 obj <> endobj 32394 0 obj <> endobj 32395 0 obj <> endobj 32396 0 obj <> endobj 32397 0 obj <> endobj 32398 0 obj <> endobj 32399 0 obj <> endobj 32400 0 obj <> endobj 32401 0 obj <> endobj 32402 0 obj <> endobj 32403 0 obj <> endobj 32404 0 obj <> endobj 32405 0 obj <> endobj 32406 0 obj <> endobj 32407 0 obj <> endobj 32408 0 obj <> endobj 32409 0 obj <> endobj 32410 0 obj <> endobj 32411 0 obj <> endobj 32412 0 obj <> endobj 32413 0 obj <> endobj 32414 0 obj <> endobj 32415 0 obj <> endobj 32416 0 obj <> endobj 32417 0 obj <> endobj 32418 0 obj <> endobj 32419 0 obj <> endobj 32420 0 obj <> endobj 32421 0 obj <> endobj 32422 0 obj <> endobj 32423 0 obj <> endobj 32424 0 obj <> endobj 32425 0 obj <> endobj 32426 0 obj <> endobj 32427 0 obj <> endobj 32428 0 obj <> endobj 32429 0 obj <> endobj 32430 0 obj <> endobj 32431 0 obj <> endobj 32432 0 obj <> endobj 32433 0 obj <> endobj 32434 0 obj <> endobj 32435 0 obj <> endobj 32436 0 obj <> endobj 32437 0 obj <> endobj 32438 0 obj <> endobj 32439 0 obj <> endobj 32440 0 obj <> endobj 32441 0 obj <> endobj 32442 0 obj <> endobj 32443 0 obj <> endobj 32444 0 obj <> endobj 32445 0 obj <> endobj 32446 0 obj <> endobj 32447 0 obj <> endobj 32448 0 obj <> endobj 32449 0 obj <> endobj 32450 0 obj <> endobj 32451 0 obj <> endobj 32452 0 obj <> endobj 32453 0 obj <> endobj 32454 0 obj <> endobj 32455 0 obj <> endobj 32456 0 obj <> endobj 32457 0 obj <> endobj 32458 0 obj <> endobj 32459 0 obj <> endobj 32460 0 obj <> endobj 32461 0 obj <> endobj 32462 0 obj <> endobj 32463 0 obj <> endobj 32464 0 obj <> endobj 32465 0 obj <> endobj 32466 0 obj <> endobj 32467 0 obj <> endobj 32468 0 obj <> endobj 32469 0 obj <> endobj 32470 0 obj <> endobj 32471 0 obj <> endobj 32472 0 obj <> endobj 32473 0 obj <> endobj 32474 0 obj <> endobj 32475 0 obj <> endobj 32476 0 obj <> endobj 32477 0 obj <> endobj 32478 0 obj <> endobj 32479 0 obj <> endobj 32480 0 obj <> endobj 32481 0 obj <> endobj 32482 0 obj <> endobj 32483 0 obj <> endobj 32484 0 obj <> endobj 32485 0 obj <> endobj 32486 0 obj <> endobj 32487 0 obj <> endobj 32488 0 obj <> endobj 32489 0 obj <> endobj 32490 0 obj <> endobj 32491 0 obj <> endobj 32492 0 obj <> endobj 32493 0 obj <> endobj 32494 0 obj <> endobj 32495 0 obj <> endobj 32496 0 obj <> endobj 32497 0 obj <> endobj 32498 0 obj <> endobj 32499 0 obj <> endobj 32500 0 obj <> endobj 32501 0 obj <> endobj 32502 0 obj <> endobj 32503 0 obj <> endobj 32504 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 32505 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 32506 0 obj <> endobj 32507 0 obj <> endobj 32508 0 obj <> endobj 32509 0 obj <> endobj 32510 0 obj <> stream q /X1 Do Q q endstream endobj 32511 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 32512 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 32513 0 obj <> stream HW]oF}xBJ193Cܠ4Yt7Z*EJJTb+xqEI>:s yΈslۚˋWŋ?\%&YY4+o gܙmˬ|H20?]|i6vj6Er;g>쒗b8miDIӔie&zfm.OG{ruǓoM=ٽnw hCZsGdxbl-iaʘj6;zE[g~3YjޒG\O$夔VJb9ɻ$5' NzEt#VieڼĈ{;)ʽr{>(}}}}}} ܗ} ܗ} ܗ}W}W}r{ VbāJYڽĈZ+1ficv/1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+UAk%,^b{1K@k%,^փJYj@k%,^փJYj@k%,^փJYj@k%,^փJYj* cv/1bJYڽĘKXcpZ@k%,^6JXcpZ@k%,^6JXcpZ@k%,^6JXcpZ@k%,^6Jl䠵cv/1bJYڽĘܛ H/"5atȠXVZAiVr\i@PZ*V JURiU@RZЪVZQiEKĘ$Ƈ5) heJ-Rw {8 YJ ^bZ*^bǰ!KiKY@KށK5d)-{1 h;{=,A%,%1>-{r/1>-{r/1>-{r/1>-{r/1>-{r/1>-{r/1>|-{r/1>|-{r/1>V-{r/1>Vh-1KkI @K>K @K>K@K>K@K>K}?-r/1~|Z*^bTȽh{֒h Iz$If23MbG0o SzdX1gޝ'%=Tݿwb 0g(0hEmlsy{s5MnMڙ'ÿg@ڥ6"^In}llmWabjFzjXOgfS_O`plg}Yg2܅4-O^KvlA{wЦe;7{h7rݨmGn`Y:w ɽ8z_rg6œ[f]7nf7l=?_. o\ټhA:ڪ'WOmee8 6Zk5Mozn8錗2or?Z!E?C|loӧf=G{c$u'Пt@lPu~81f[C =N{|Ψ9|IќiAe8-uڭ2{(t<yƷEsj`̖f!ڇ_e˓dw)uǔ6-Ҽ( Mig>7[k vݵݮ\n4}QTHwW7Wo~\tғӮ˂ؠ ,GibIDzV"F==~=IƘ Zlt,<}Uf鳂DʜMOG]j_pM.G\U~:$z?f顦|z}Xοz_MWo 'endstream endobj 32514 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 32515 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 32516 0 obj <> endobj 32517 0 obj <> endobj 32518 0 obj <> stream q /X1 Do Q q endstream endobj 32519 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 32520 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 32521 0 obj <> stream HmoHϯ!!AZ+>PTyB&$j3ͽtUVg|;n֝|thr/|D|+en SeTr݊wZhQ9b綠jvZ狶[ϧr={/O/jWs+/DLC2{RW^QݚA~G,חr=:<0>0/}K@_2З}#>zl!,fiZZYnqzf虵XKZ Yjki[Yk4-@ϬZf虵XKZ Yjki[Yk4-@ϬZ-,8=R XK4-NO,=ki[Y뀵4K-`-r 3kf虵XK,=ki[Y뀵4K-`-r 3kf虵XKZYjki[fiZZgz`-r 3k=fYnzf,=kiZZgz`-r 3k=fYnzf,=kiXK4K-`-r,8}T1F/ut!^b4{AҪJVN 1Zͪ/q Q3rƬh^uO]\/7l{Rmߝ6S.N|*U:W<߫l_lf^,|u67H6  ,7fM?ɳQY3?,[±DӼW?;m6<}3y}~Z>ﮂo`dzܼAAE׋tgnp_z-˫/u*C Q~@[>3Z`?Nk яmVQTqoɛy=9(}?Rs`z(NEĝ.m78~[;ӱV~CkiW54T_ΰ4z C u3A^=D?+hendstream endobj 32522 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 32523 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 32524 0 obj <> endobj 32525 0 obj <> endobj 32526 0 obj <> endobj 32527 0 obj <> endobj 32528 0 obj <> endobj 32529 0 obj <> endobj 32530 0 obj <> endobj 32531 0 obj <> endobj 32532 0 obj <> endobj 32533 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 32534 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 32535 0 obj <> endobj 32536 0 obj <> endobj 32537 0 obj <> stream q /X1 Do Q q endstream endobj 32538 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 32539 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 32540 0 obj <> stream HWmo8_!8rWv-P5pPl%Vk[YK;8Ej4~H>3oTFR~ұQ$q0g%yE ]f0#n9 nQ/~]T庍^hͦ|E"k*Z)ERqj)q_Q!dxv"-T|e]|1qTT((񹋊lFRLb @ԇp9!e.eH*`*`:`:`:`o&`o&`o6`o6`o6`2Ӏ}ʰO> g ,`1쳀}ΰ9> "`_0JFԷZCTȞŨ>DPjQ @Q-!aV1>@1>D1*Fԇ(}ZŨŨŰTRjZZC>PbTK}bUjoiFԇ=Q-!*dO} SRj5ZC>PfTK}bTK}bՌjQ @Q-Q-!aV3>D1jF(Fԇ(}ZͨŰTR.2jQ!{ZCTȞ>@1>D1Fԇ(}ZèŨŰTkRj ZZC>PaTK}b5jPjQ @Q-!a0]dRB(Fԇ=!*d_(LER~2Q"**I\E)wj9J$N9 h{]T:zbUQr/}^=av[NOUwY}ma>M>.Mɫo~k0v\*i -;$c'܈"UrߎE*fqPM^3ﮜcf|غ {tYUmnfmoYp#J#$9/*1VI/h XC1'  0^)Mx43SVR&Hԙ9yjeOOg(9̇ >.3Hlr|r/rVZAX;%ۢi$&FQICaȋtVUq[da͢W:o>Fڮe,x֭OZk(@A'T CL OЩf+ ! YYk٧M8sQo[w?xJLJ+SYא!ՙ߷ju(G[0zV_!u t;3lLrM6oTtmFU) yh%=X]hP wPIOzU p  dRd ױ+ӱܹ? 焝S X0ߡO3~w:vօ |I'|H=^1pUD@V \\;ȰRD#ry)&ȡ۝~]BB7<'pޟR)YwVw(ꛠ3T{9Xt_>@Y*80'p.q/5*˄IF'PVP۪ﮌu>MmvPl:z&O!U&N]c4g \[(DÌc\)s)Zm/yMi5sxUb2$W"Iv$դFx./O A+2W\+7"X_!ON]_][fmNKMf"5s!˸/ sl2Ɛ#XGd",LOy6g WpO~ɞ~Ume;!8BgV_Q:d2u+};қzv+lN`v|pE!9(^4GPBy>U_!/ғ6osTB٘ iyOnV1o 6Ml}3L #\Rxy;+ҍJmʶ|viaO{5*Ι*DO]?(3oI2;-㣤;zY~:\aL;p)UiA\{.S8(@,fݡI|8Fф k{ݎ}*OB_Q{0i[0i`=[j+vm^\ny=E]poAH2l0P}t]i>C^ۅ\w',yNJjf^@M:ZWeqa>o֛jUZzG6:F#!i+7o]K,`YŲeS,XN2+Lr+\ *B<`y%L4Kj,+DJQ,X*^j,{r/5vʽKހK]ro@.R7 Rc`{ TS{KF.{ TS{ TS{ TS{ TS{ TS{ TS{ TS{ TS{ T-ȽإYR#ȽX*^j,{ r/5vʽKނK]roA.R Rc`[{ T-ȽX*^j, ^j,{mW_\R${CFuqc]62^^BS{i/#hP(&z AOpvf]Lu*HC߃<QR;=l}}v7Wt<_ζt8:v Xb"L4U?D~}FƼendstream endobj 32541 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 32542 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 32543 0 obj <> endobj 32544 0 obj <> endobj 32545 0 obj <> stream q /X1 Do Q q endstream endobj 32546 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 32547 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 32548 0 obj <> stream HWێF}Wp8þ8|Kv1l- G1Y2*vb cftaNUct7_߾ ŋWo^ Y\*q,a/1H‡U|~nj6Upg>UpbE}P!IX $W RI~K*fn( qD7]}[2q zW>vp&{US2\7x_$|,~w[nài8Nr"0A\Lc \\Q Q@ɻ6@q=s= KK+++اcS}F<>gcs}N={Ok;PkC޵PkC޵!gEֵ!`節um"{j]պ6D=rB Q{OPkZ׆(ZNֵ!`節um"TET պ6D=rBB Q>{(B Q>{׆(kZ׆(ZAֵ!`Vum"TET+պ6D= B Pj]jZ׆(ZAֵPkCS TET+պC պ6D]պ6D]| Pj]j%Z׆(ZIֵPkCS$TET+ պ6@um"{j]j%Z(B Q{OPkCS$T"Twm"TwmqQ2Ll9V͊}! WKz;\/N4-!XGBF_HwQ}nm}o?W]JJ6tyS5iv=HPYfwzFfMPtL-}=dAL\w3ɀDq:?^ݮ$e*^e.ʼd_q"6n. EC.::n(+|r?g^G8SE6RKL,S0 \?7ꣽmm|,j/MHDVH@LS.)K1bɼdi璏O}$3&-0bϜκ{ pnzoo@+<5@jwG D1t{loܟtK;}DC,+rZM߬V~3jw^&c!x>lXG6I9dJNs[o667߬qۓYIW}ԛ evt3I*IG?q:Cg}yWF(؅c8HƗ$*eєQi.[nWN}Jh_EUppi>}_P׫ksY릴Dヶ,5[\g6DN9U0/O,ha꣕z*xČ%r٢`Qӂ;#|ޑsD gƯ>CQX`YgkAErsmٕ!DpC9Hۏyļ\>jL25q18THHa9kW3ˬΖ幜 sSJ,Һ>Wn,Np ty{/J2;(,-ϲu*Pt {~ufpSX86#|7emF80OP4T:b?d~ܛC2 %6Dழr3):6buRxʼQhdJBA[SCkﶺ(`Fہ0[961퇟W#L,;`\xRͰۮ6޽@Ngv)WK-daî?#b}C`Id|I:;y.T'o8 el S7W`q9a*ڭ1Tꦡ=q9J LPA-î!/I pz9`lzUp.wΦN8c9"K:~1)mbg |JY`]D"">ue bmnW/.鼽|@ B :O;^@VE'N/J$zj)X?`aKŁRq`([xV Gl<ibs q-+OMU\:ᠷU1@'|L zծ/3,IqQ|+ymt(#o[Wv̾>pw~bכ?*ܔ@{Y42D0j!5Jv6_ h'b<0ЈHz2jHsb-^wO`xk #)s#m.ݣ*rr*'5u`6mBiseT̓B0;MWAhNpi i 2 Z[c$S7pV1X&Eu?_ڦ΅]g50qsLq+ ϱ>1D0 Eh6QUjTH<4cgJY%D7gu%N1&f;G~՞ QB1jpTH̴30o4^oa -8p1PPك!v*E搲T@.GV6jU^ǖ9 Kӟ84 z48-/"سl=IKtYXfwusX])P4z5Ì _+|G4!Ӑrt?(¸cJ!d9􏦟fFxS0wۈ3j__;/mb J˖[@J @~6HЯ{\VyA[6ɢ,ս6+U\*V.t[5ՅRq%>hID" }Nl uSt,V̥i7On驦q˾Zǘ?^b7پ|Ik]u8'.#B~\͎9#?`}Hų@n"S` $ mÔIXW?^3V6w 5+\\ֺgx9`^M/f'*H*×m3eZ;xjƷ+iU"&luܐyHu5&_JڶpW癞0x#^C'V di6sB\O:S%mLnzp 6[w_}ݽ,S/#NLxvyg0+E{8+F'˲vc?F¿@e!T}O/-F5GYڛ.|TNɷ}y9 2ֽ=Xi`-=V ݩ6 Ї?.wK?ƫ!ړLcB\j0Iy! \5jE$&«$=$H41QRܛ(\%`Sb@`Jl!؈ 4:msuYHf Xg\碤'Uʹqi3miʼnـ]C?W/V[:#d~>r֏1%Z^h~"Wo .l"_E›҄7eV^7~ehj*24V l%ZO$K !<]3 ,˒4?+ak49HhU!Z7lݛś2endstream endobj 32549 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 32550 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 32551 0 obj <> stream q /X1 Do Q q endstream endobj 32552 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 32553 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 32554 0 obj <> stream HWko_q~E 'qN\CYJtGRcĂrX=" cĒ9F,cZ1bcEk-h-" cEk-h-Lj܋ZZEh-Lj܋ZZ ,Z #p/ZkAk9Hh-Lj%s,@k9F,cĒ9Y#p/Z@k9F,^ցr,@k9F,^ցrXhXdrXh{ZZ˱{ZZ1bcărX=" cĒ9F,cZ1bcEk=h-" cEk=h-Lj܋zZEh-Lj܋zZ ,Z #p/ZAk9H2ZKXdrX=Ljܫ/<q~lH/XZ^hyV2Lh@+Z9ʅV UBh@Z%*VZAhMLj%8F2B-#,вB-{ rϱaY=LjD-=dž5lZ # 1KhsX@KނslX,@9F,1ZwȽ;@Kށs%r@9F w h;{ъD=hZ"c|-{r1Z+ȽRcĒZh{{D==hZ"c -{r1zZ"cD==h{{; s%rA9FRcĒZGn%rB*-*9*!sgAQ"4V06M'M[| B_ߟ^#t,E?=aqv|~q9:9xqx-^/L<-P/ߟ^xҥL1ƌNp4LAhLO3:qz&~Ow d쾩\qw`EucsP}e]][xAw?1Gg/z7׈qهO3hOu1L1O2:539}&Eՙ޶{B]GN>^5N3ZyT_eVk.{gOhǝ trn-5֞`tΛ/`n8@n+_Z|[[m?19NNjaTbFU٠_ҴZw|y۬]ujv3]g'RV~֍&4v?M{}=<+жFO?u=VGkxVLgg ͪv4Y?>>tOVNuK+DW}j\BqQeo=j`?6M?`௓ֳjYwmM ?6~?Ծ9gnjm^e.S}6}4԰ iy~JRmևvjkٮX;x9FXB-/ٸJ\:n^9yŹqoyrP/ҹݼmqYYuLnUe=J4y})m2\Y`]l|&ޘz[|i[-i(tiRO4]~}*Wwכ+}:;pu%~@E|m_2c\3kt:\N2Z նȼfjqMb$572fO cƭu͏}4ᥩSAjpMGNҰ ߵ1t%zš{E lccGvmwF4+REA%P(~Mbv| ~}GrXi 2l?,mbDJ?ڭ*6{'y/T'=wRmaHҋE}iJl 2@NNYΩ(]zi%^,8AxR# iD[sG&qΦM=pdq&hӷ㷿g+9IL(]<0dɨ*r$2ק^n,72ɭeU;~}5=Xccc$-G8wS^mjCu[J%s׫Ðӎh~C^~?KJx ZwQ7CʢLPƧRmƛQDW\$w|q55z_ ט̺ dTf>o^2]E 9SL $G3sHcB+;+Z*C7ԡ4XwpL[r^es &֓]È9po[lns2X ,Wx< l!UYd"1B;g(bau]5OCܲW̓X ~sebx(^m1SI W2trC^4Ujh"4)(X:}D̸akM:rc7G !fz_ֳ}UfҪx3V0ݘЅT{cUMiɢ$W2\qcUg%Z[- (߹Y ^;FoUߞI$'`ݱà|LA8 4|o0wQd) U4#jxu:H|"yg: %JMỐw|pa` [ONjmk>, T,)zJ>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 32556 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 32557 0 obj <> endobj 32558 0 obj <> endobj 32559 0 obj <> stream q /X1 Do Q q endstream endobj 32560 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 32561 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 32562 0 obj <> stream HWn8}6֑yL2Adf`A wne[RUdu2RՇ!Yxgt˛o8{oC2_jfFő dMUg` nuSy;o=mp_lg)KaNm`#j5LH we>kCö;6 $=j0b|^H7&klMK8 e,70m臌u T(}-}w,HUJ2Hq1I6D˹6@  r wm{鱗{W{W{W{{{7{7{7{㱏>"G`{c}챏 >!'`xS}O f!ZVPkC޵PkC޵!gEֵ!`Vum"{j]պ6D=JB Q{OPkZ׆(ZIֵ!`Vum"TET+ պ6D=JB Z׆(kZ׆(kC޵PkCS"TETպ6@um"{Uj]jZ(B Q{OPkCS"TEֵ!`Vum"{Uj][hB Q>{(B Q>{׆(kZ׆(ZMֵ!`Vum"TET պ6D=jB Pj]j5Z׆(ZMֵPkCS&TET պ20j]| Pj]| Q>4LT3]7[U3!0bQmlj [ cńSNM'q:?oծ+]1&vΆ횢z>C ~ώ~蟲lR VUwW_s0Zf`33Yl;N蘇 PJy XYۅf_<8B ㄛX Pɼd^uvy!lw ä)^wcyO/ ]Nl?/.: a+ Eg+f8b=UեE4Өm/2$=1a"Qbػ#zjfhGm53q>| H xvlOP.^w80vnL2ev D"7P<-oEb f"_YJyh4a:>Q-wؙp.5B}2|c6NW;IɎŋrpvQFi=IBN6l{2tIMGZxB^XJ˜fj:BL~ԌFN`Լ=z^=aK j9mz.$̘c-cU<폷~mk%h&{][8/.5 Kƽp# o\~lS~9wC.^2~WF&vwEe10`ޡ BHR5`3%&wH8ꄽ5<mkݱnGT =IE l׏MVZ4D"xkfc> m %=]mQ_1Ɲ\Fȇu JT(XnZ ]괥ׁ˯yvf?0]YͿ}f6_uNo&xiOX os>=4t ͦͰ (t8>ȷ;nz8tOZy;IpH:EO]%]9\&< <لgϒq-Ŋ+VT 2+Sr+W *PJ*T *Ū,j̸Y2,XbyKy2`)=^f,ˌ[{q x/3ne-R{̸X4Kfˌ[{q x/3n>e-R̸XKy2`)^f,}ˌ[{qKdF-̸XKy2`)#^f,}ˌ[{q x/3n>e-RG̸X x/3nį4tcKzb==9VC?{&npXb9D=O-}EGcc5oY׺].A5:V={7֏K|se&|UWz?zڐllvݻ}Kp!WBo/tl^чouռ(^ϵٵfmv9dOqκٞ}ueiSK~#|^%C vmgv-aB_,I O U7 mg_:<7~k,ҍǤ?[h)VXbe)VXb倕+VXbU(VXbU*V XbUU)VXdTd-͒`9rW,X{Ky2`)=^f,ˌ[{q x/3ne-R̸Y2^f,}ˌ[{q x/3n>e-R̸XKy2`)^f,}ˌ[%3je-RG̸XKy2`)#^f,}ˌ[{q x/3n>e-Rg{qKdF-̸Y*^̴}<bNPʛa[Nϣ6?kZwð?\EL(:hv3סn ?OmZ(||Ufs99t}KkO>7~f& 0endstream endobj 32563 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 32564 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 32565 0 obj <> endobj 32566 0 obj <> stream q /X1 Do Q q endstream endobj 32567 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 32568 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 32569 0 obj <> stream HWn۸}Wy‹ P 8nαՙP%q%{$E]uQ2֦֢ȭˇ(+ȫW ?oF?sl?wr–dI-J-FĺǛXG6['qW$[[o@eHh!XI-4T1BR 12CLLS,$,DZb7RˑBLBLFj9ZiH-GR 1BR 1BHj!Yz#I- I-4 Qo#f!r$K,beb!f!Yz)ZiH@R 1BHj!XHj!Yz#I-4 QoV b!f! $,DZbb7R+BLFjZ%beb!f!Yz)ZiHb7R b!f!:Hj!Yz#Z)ZiHb7R b!f!:Hj!Yz#Z%DR 12CLBLL,G A8G?WuZ![:K'qlG\0>Q62q8'm_| ߖcXj[%"= e<8-Cڬ7W墝)$Hg0X'*d`c+o.ftt;MgɌ\ GbB}ؼx%.^⌨:mb=!~$v۬.ŢVU"Q=]ML.w:xvԄUvG5ԙ>XU9ʲuf*:GwxNfΛzT@Uj]&^9:aDcz9MN6q6PxVeiQ-#]ֱp0Y܍5ăՐgUq'0v-O.*Юla0bAT ~%Q+<]^z}|;,蘚n_I.:%1߫m!{UYcCjSpEEZ |:>k9c-8 D/ |8w~\LLUJa:7O]o8fX9hs8:W NnJN[ۣZe[хyUE3>5=ܐ(}ÖRzYj4wTrNXJyU9͙q' jzٖvgw;<8։FMUo6}kv;dnIG/}]/>߭},Hx7Pw`(7X_PF9DjiE-ޥ&\8Ġ'ܸ7)eM~ۦ=~.춹 9C)EUw~r}uëxUUz)whS?k2˟Ja޷kzc(]UI8ݠ^>=Cd~/u ~p_LHﻲp[]/9LkMDV?{ jJ]/[lWxj{?oY^ {&W[#a~~rL^χ} {  dw rHꏞS֙/:ulk靂z2-]\WvVS]&dl%|Nq]enwY r̂x2u51+@uKOe:,I9Z݃}n~ul- M%U%lJ(0:l*\p?K6'KHH%o |M=Y%?endstream endobj 32570 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 32571 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 32572 0 obj <> endobj 32573 0 obj <> endobj 32574 0 obj <> endobj 32575 0 obj <> endobj 32576 0 obj <> stream q /X1 Do Q q endstream endobj 32577 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 32578 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 32579 0 obj <> stream HWkoF_1 ph΃nR 7H4D@CXWMc{[3gPpfNMyͳMj~go JO2guYGY0z9m6vbfg>tlϽf<*$5Hiiƫ(.]>f]ؖ1~Y3pٌ,纹lnX7viF7>) S^8=l4=i?g+Z'\7 ye>~Jͅ*'.#UT`}Lr*ͩǦ^$,=Ĉef Y`Ij#r{{+ʽr>(p)p)p)9p+9p+p_(p_(p_(%p_*%p_*p_)p:kAi%hĘKXcv/1fi#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu[EVb%F,Z1K{ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZZ+1fi#hĘKYڽĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhVQZ+1fi#hĘKY6t!="ϫ@> %2(VXJ+ J+ZʀVr+hJZ*VJU*hJZҪV%\$,%1-,вJ-Rw .kCʽXw ȽĘTȽĺ ֐@%,r@%],A%,%1-{r/1-{r/1-{r/1-{r/1-{r/1-{r/1|-{r/1|-{r/1V-{r/1Vh-1KkI/ @K>K/ @K>K@K>K@K>K@K>K@K>K@K>K@K>K@K>KZKbZ#7R@`Rl=G5֌Qu :'ɳ**Sa(4^_>_E)Q3ӎq6__t@ryRHESOʼnĬxʤd|oExܚ<a_&i'pHx[/_pE?NBK $*W$h':aUL:QhIU~\Ѷnfɧ. K*o qY/'qݮ7K3[jX/w`zVe |t0-!:/|>_>O^7嶞^0XP"M\swJtU f/;k7ILF8sNķK-7}n^]hտS#8.9-۽y=1o>x}'O>^]οrI̾cX菋JSf>a'f.iwux`zbo{ow6^._u]\ګ!?̈́zJOFK+]h')۷Ps6rYr)ZO[=A B7ζNG&Y͙)=BLsYن:=Ǘ*4){;&Q}\̶[kb=lWfYfwĆ6>1anjbwnNb)PEn!Ţ eK=XYF7f?89A_`P6hoy a]6FWrޮ =UE .>;Y~v'wz,|Qom0WVh/ *OP>, Ro@"ӤF؉=Nc(}z )ġbE{G@2R4&7_3"ed5|cnx7@CaWU[ u aU(e x{[N`z:K5KyĊ "1?})L&iaұ4AWq=>3Cm ܡv$^S'&l M #0u}l g4a2@Lzy̍`okxi2-&2'-k|\%tm Uh;=}y{/endstream endobj 32580 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 32581 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 32582 0 obj <> stream q /X1 Do Q q endstream endobj 32583 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 32584 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 32585 0 obj <> stream HW]۸}ׯ $Z( Xɦۤ`(f@c3JdɕRl &HD ԧ4P!@}> kDkDv8Z3P qV +TcB\c\a!rĵ>,ĵ>fXq>p-G\cB\c\a!rĵ>,ĵ>fXq>p-G\cH 1 a}̰B>,ĵ>fXq>p@\cB\c\+a! ĵ>,ĵ>fXq>p@\cB\c\+a! ĵ>v$Z3P qV +TcB\c\+a!Jĵ>,ĵ>fXq>pD\cB\c\+a!Jĵ>,ĵ>fXq>pD\cH!1 a}̰B9\ΚCr7#'lKF4%i!4d\$5/XWtO/s\}ؼ6tq*4_ukRD_=]UӔg0ke]M|FIuj&lofR7˲ :YQC'R_jfڦײe!ܬ)zj"Q4d~fۮ:&\daXU6WzQV5v':4[Y0Tv)nA؊fgE6 LQ@ACoVW~f[N\U:^Tvq>\z> !*m ddѴ;y]޷S1G|w^m?fw cszz4jQӨ]5 e3'ϬzYg1S|ܰdF.;NtFݹ?NMS5wU P;Od0;H*A4Uw'k$KfKfSETqɌそ%M C7M]s#rѣxO,fƻ7>to;Lٚ<_嶰*bXZdg MUGO-6Z̥Ut)h!u+bvmSsSWrf7\.'{f<qoElܖ՞@Sn]vEM/:Ur"/t`cܴ8c5/@r0Ll&3I>"vҴ>C()HX{LyB3 k$fI;vd3Lf~\;^ÉNS9#^9a,%Iۦ*.hJSY*(Pͫub 3K %4,946V𬆩Rmаf,T-3q}~>/Ǣ!9 ⋵qR48[Eu 849/ni튡pMqѭ.˼N0*t]ݶ_\.n˺ܝ'r%~GIRwS,&Be22Ҟ+!9p6T=XΒ޶dYyuT,G  M-Fo Vv1Oe1?}7q7=Mj<3n,oŮ|SA oJS\4SpIWFoK:̕cLAGљbʹY9I=Rk"#1eLYs@=,PP>Nxwnct܍ۍxW r@Is y6^RN$٥::aDؑPVaZ3L)[T@bX|302w T?P~:/ǣ2EhAJYE7RPp$[e5w$CO^Xs^ђ[S3,Ksp(Er*qw}{).}M  t `8I8vy՛m-rTꪮW+^ _vp񝃻"6]Ոg 8Ws=FkWCoK$ʛ/K(_ĵ k۝8nWв^0aЦV_aE7V;Q2JV6EqA HJoT7'_V2#7(z|03EwAf1xuud3`r8n,:ηVKq8<݆ϱi6hpC)~|9 UP_B'lcnrcq=>A?/"8Utb=oA,b2__f[!+d;lk>w^uv||0ܻOC^f.x?B2'._[L"<|ۏ !tVr?~NiXar {V٩w{.٭F/%1h_4u%˅Ny-t+<>qT iðdձ4,IǯaEvGPvwV?pZ投tz̵`)֖wЏ$ry7H 0l#x Դ*9]s:ۼ1tSۀ%gbl3͜R/*&`f-+xZHWLr`E٭ﱠu{جns{NO}D5>x_\^,`#endstream endobj 32586 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 32587 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 32588 0 obj <> endobj 32589 0 obj <> stream q /X1 Do Q q endstream endobj 32590 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 32591 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 32592 0 obj <> stream HWmo8_*; vפA. 4^rv,9MᣙyfzK޾=^{wy}7"O&4$!YĞ!YĞ#yĞ#yĞ#y^ E^ E^"e^"e^"e^!U^!U^#u^#u^#u M M"m"#RDm0D͡b PjCCCCCՆ6BGejCC!#2D PjCC!#2D͡j(D͡jPH QmhPH Qmhs(}Z6-69T> Qmhs}hs}hPHQmhs(}Z6 Qmhs(}Z69>R-GT69>R-GT a# mBT a# mTՆe"Ն6ه6@! mmmBT aV mT+Ն6@! mT+Ն6BGjCՆ6BGjCC!# D PjCC!# D͡jжL$P1(D͡b͡b6 ߃N(9ѱ S ̦( el~M43ںTáļiBx%{&g~#Tϛ|>;=Rək1W##=h "YJ +j6_Wo4((uT0ww 0Ί(Q%e*lUjqJ2'{&ƨڿY&q 5$Jr5PhYvipE*>xEqsGgodV8;Yz`l3"<ڿcm䳪FR^TJko?_6%3֓bj=JRfX,ӴQ 2-5㾎Ye*);dIhޥi_y\CZj'V绫ݥC=7:N/e\:6X&lO?~:M!*]{me/L@d8n /oްbz yo6f2}vzV%qoxuq鶵Cp@rS®t@i'JPW+Ü+T+(f+~S4;xFli"JP{@jL]&DCզ|XkԖ݅{[Kߵkud{}cdYYEkR2hFEkDzpl\ueGM(;jZCީLC *Xכxz:R5G*Q;_$eKpcbn.-j sbL79 4dj ɘ>`ǫzqp;]}zWQ,鶚>OxZ. \o8u0IDvK"cev}i&q[9`Aj?~jpzYTV+;eL@C2}:@+AGށ3q;c˓˽Of o;YFJ In +K쟙Gߪ j$*y}^">Y'Y zpUk~Gw-yɥW_Y$}rߛ]lE+]!i>=GPQ(q|yq0j=m7_8q>էOWG_|Ѳ?h_fhֺOFwGS}I d#hmGc2\,^"0?J7 j]ZJו:I9<UC K/ePlS^hL6Vf$妜6{O3 ^MۖA&rO :NQ yj#|?_R9LF~2/Ɠl=v>G!d6N狟J,!JUЩ # 6<͸5G%9v0Rcˇ'ˬgSZ՝M|E-ٝM?x=SW4'oːhn-pau$@PWzHi8ng(4ZU^/YY~^֓eWA5nkw06D( -VD=q]MڈΞLdrlaŞM:ڥ_rYsUˆzF[wv]GwwĞ$eV:|?޴k^G#HO(ݶ(Wp ;Ph -֍xQ C$KqTl̝;qOKLs$h[z= ;; z/]Ɲ_bBcvcPF`9ʈT ?!ɕ2Ajro|}cLyꌨϧ Z-\ ?{:~= t9"'e8]H[Zmt&^xn\v ъi}vnafeZ^}߲ULq &%KJqx?O zrE6}wLm|bDl*PեPqKZ<Ƅn_"G*˦׽(!ju%0҅˙He0 |<,ưm_|>0.BT!NUܭ7/2 Kir W3.Dsw#$sS'ls|SvyUʨ*F35XG)f"(O˧uJ><`թ۹ :xsMo?}AsC{RXl4&R)*&"~7zDRlM6(U|1=׮r"*W]L[8XuȶjB$ MiksVT᥅*h5(>ѰR<]/ߒW}e #?5X_T9)j0)!S㽏 Ukh$Z]hM%F1~LPbn.כybi_u3hpui.UX(ӏ#¯Q4 +/iH%S>Q TC뵌)^rX#,"e/NUE=(!| K4!v>) !:48@6ki|IUlʎapM{?pholy Ibi/A[TDW,ZJ8[#mahxCs._$+m%b,VYmCSu4 l}RǤ޸üBys$/RୗF{LxlWv!p`"ks'Q6:_ht;ma}ib @[sᡑ6O6-Jr|41XfE_>=6 EVгIg)>>7]sazxy{?-endstream endobj 32593 0 obj <>/P 5716 0 R/Type/Annot/A 32914 0 R/Subtype/Link/Rect[161 669 169 678]/Border[0 0 0]/H/N>> endobj 32594 0 obj <>/P 5716 0 R/Type/Annot/A 32912 0 R/Subtype/Link/Rect[202 659 214 668]/Border[0 0 0]/H/N>> endobj 32595 0 obj <>/P 5716 0 R/Type/Annot/A 32910 0 R/Subtype/Link/Rect[195 649 207 658]/Border[0 0 0]/H/N>> endobj 32596 0 obj <>/P 5716 0 R/Type/Annot/A 32908 0 R/Subtype/Link/Rect[192 639 206 648]/Border[0 0 0]/H/N>> endobj 32597 0 obj <>/P 5716 0 R/Type/Annot/A 32906 0 R/Subtype/Link/Rect[208 639 222 648]/Border[0 0 0]/H/N>> endobj 32598 0 obj <>/P 5716 0 R/Type/Annot/A 32904 0 R/Subtype/Link/Rect[224 639 241 649]/Border[0 0 0]/H/N>> endobj 32599 0 obj <>/P 5716 0 R/Type/Annot/A 32902 0 R/Subtype/Link/Rect[241 639 255 648]/Border[0 0 0]/H/N>> endobj 32600 0 obj <>/P 5716 0 R/Type/Annot/A 32900 0 R/Subtype/Link/Rect[257 639 269 648]/Border[0 0 0]/H/N>> endobj 32601 0 obj <>/P 5716 0 R/Type/Annot/A 32897 0 R/Subtype/Link/Rect[189 629 201 638]/Border[0 0 0]/H/N>> endobj 32602 0 obj <>/P 5716 0 R/Type/Annot/A 32895 0 R/Subtype/Link/Rect[192 619 206 628]/Border[0 0 0]/H/N>> endobj 32603 0 obj <>/P 5716 0 R/Type/Annot/A 32893 0 R/Subtype/Link/Rect[208 619 222 628]/Border[0 0 0]/H/N>> endobj 32604 0 obj <>/P 5716 0 R/Type/Annot/A 32891 0 R/Subtype/Link/Rect[224 619 236 628]/Border[0 0 0]/H/N>> endobj 32605 0 obj <>/P 5716 0 R/Type/Annot/A 32889 0 R/Subtype/Link/Rect[189 609 201 618]/Border[0 0 0]/H/N>> endobj 32606 0 obj <>/P 5716 0 R/Type/Annot/A 32887 0 R/Subtype/Link/Rect[262 599 279 609]/Border[0 0 0]/H/N>> endobj 32607 0 obj <>/P 5716 0 R/Type/Annot/A 32885 0 R/Subtype/Link/Rect[280 599 292 608]/Border[0 0 0]/H/N>> endobj 32608 0 obj <>/P 5716 0 R/Type/Annot/A 32883 0 R/Subtype/Link/Rect[180 589 194 598]/Border[0 0 0]/H/N>> endobj 32609 0 obj <>/P 5716 0 R/Type/Annot/A 32881 0 R/Subtype/Link/Rect[196 589 208 598]/Border[0 0 0]/H/N>> endobj 32610 0 obj <>/P 5716 0 R/Type/Annot/A 32879 0 R/Subtype/Link/Rect[192 579 206 588]/Border[0 0 0]/H/N>> endobj 32611 0 obj <>/P 5716 0 R/Type/Annot/A 32877 0 R/Subtype/Link/Rect[208 579 220 588]/Border[0 0 0]/H/N>> endobj 32612 0 obj <>/P 5716 0 R/Type/Annot/A 32875 0 R/Subtype/Link/Rect[272 531 280 540]/Border[0 0 0]/H/N>> endobj 32613 0 obj <>/P 5716 0 R/Type/Annot/A 32873 0 R/Subtype/Link/Rect[197 521 211 530]/Border[0 0 0]/H/N>> endobj 32614 0 obj <>/P 5716 0 R/Type/Annot/A 32871 0 R/Subtype/Link/Rect[213 521 227 530]/Border[0 0 0]/H/N>> endobj 32615 0 obj <>/P 5716 0 R/Type/Annot/A 32869 0 R/Subtype/Link/Rect[229 521 246 531]/Border[0 0 0]/H/N>> endobj 32616 0 obj <>/P 5716 0 R/Type/Annot/A 32867 0 R/Subtype/Link/Rect[246 521 260 530]/Border[0 0 0]/H/N>> endobj 32617 0 obj <>/P 5716 0 R/Type/Annot/A 32865 0 R/Subtype/Link/Rect[262 521 279 531]/Border[0 0 0]/H/N>> endobj 32618 0 obj <>/P 5716 0 R/Type/Annot/A 32863 0 R/Subtype/Link/Rect[280 521 294 530]/Border[0 0 0]/H/N>> endobj 32619 0 obj <>/P 5716 0 R/Type/Annot/A 32861 0 R/Subtype/Link/Rect[296 521 310 530]/Border[0 0 0]/H/N>> endobj 32620 0 obj <>/P 5716 0 R/Type/Annot/A 32859 0 R/Subtype/Link/Rect[151 511 165 520]/Border[0 0 0]/H/N>> endobj 32621 0 obj <>/P 5716 0 R/Type/Annot/A 32857 0 R/Subtype/Link/Rect[167 511 183 521]/Border[0 0 0]/H/N>> endobj 32622 0 obj <>/P 5716 0 R/Type/Annot/A 32855 0 R/Subtype/Link/Rect[184 511 196 520]/Border[0 0 0]/H/N>> endobj 32623 0 obj <>/P 5716 0 R/Type/Annot/A 32853 0 R/Subtype/Link/Rect[221 501 233 510]/Border[0 0 0]/H/N>> endobj 32624 0 obj <>/P 5716 0 R/Type/Annot/A 32851 0 R/Subtype/Link/Rect[205 491 213 500]/Border[0 0 0]/H/N>> endobj 32625 0 obj <>/P 5716 0 R/Type/Annot/A 32849 0 R/Subtype/Link/Rect[216 481 228 490]/Border[0 0 0]/H/N>> endobj 32626 0 obj <>/P 5716 0 R/Type/Annot/A 32847 0 R/Subtype/Link/Rect[192 471 206 480]/Border[0 0 0]/H/N>> endobj 32627 0 obj <>/P 5716 0 R/Type/Annot/A 32845 0 R/Subtype/Link/Rect[208 471 222 480]/Border[0 0 0]/H/N>> endobj 32628 0 obj <>/P 5716 0 R/Type/Annot/A 32843 0 R/Subtype/Link/Rect[224 471 238 480]/Border[0 0 0]/H/N>> endobj 32629 0 obj <>/P 5716 0 R/Type/Annot/A 32841 0 R/Subtype/Link/Rect[240 471 254 480]/Border[0 0 0]/H/N>> endobj 32630 0 obj <>/P 5716 0 R/Type/Annot/A 32839 0 R/Subtype/Link/Rect[256 471 273 481]/Border[0 0 0]/H/N>> endobj 32631 0 obj <>/P 5716 0 R/Type/Annot/A 32837 0 R/Subtype/Link/Rect[273 471 285 480]/Border[0 0 0]/H/N>> endobj 32632 0 obj <>/P 5716 0 R/Type/Annot/A 32835 0 R/Subtype/Link/Rect[159 451 176 461]/Border[0 0 0]/H/N>> endobj 32633 0 obj <>/P 5716 0 R/Type/Annot/A 32833 0 R/Subtype/Link/Rect[176 451 188 460]/Border[0 0 0]/H/N>> endobj 32634 0 obj <>/P 5716 0 R/Type/Annot/A 32831 0 R/Subtype/Link/Rect[172 441 189 451]/Border[0 0 0]/H/N>> endobj 32635 0 obj <>/P 5716 0 R/Type/Annot/A 32829 0 R/Subtype/Link/Rect[189 441 201 450]/Border[0 0 0]/H/N>> endobj 32636 0 obj <>/P 5716 0 R/Type/Annot/A 32827 0 R/Subtype/Link/Rect[216 431 228 440]/Border[0 0 0]/H/N>> endobj 32637 0 obj <>/P 5716 0 R/Type/Annot/A 32825 0 R/Subtype/Link/Rect[151 411 159 420]/Border[0 0 0]/H/N>> endobj 32638 0 obj <>/P 5716 0 R/Type/Annot/A 32823 0 R/Subtype/Link/Rect[207 391 219 401]/Border[0 0 0]/H/N>> endobj 32639 0 obj <>/P 5716 0 R/Type/Annot/A 32821 0 R/Subtype/Link/Rect[220 391 230 400]/Border[0 0 0]/H/N>> endobj 32640 0 obj <>/P 5716 0 R/Type/Annot/A 32819 0 R/Subtype/Link/Rect[232 391 244 400]/Border[0 0 0]/H/N>> endobj 32641 0 obj <>/P 5716 0 R/Type/Annot/A 32817 0 R/Subtype/Link/Rect[197 381 211 390]/Border[0 0 0]/H/N>> endobj 32642 0 obj <>/P 5716 0 R/Type/Annot/A 32815 0 R/Subtype/Link/Rect[213 381 227 390]/Border[0 0 0]/H/N>> endobj 32643 0 obj <>/P 5716 0 R/Type/Annot/A 32813 0 R/Subtype/Link/Rect[229 381 246 391]/Border[0 0 0]/H/N>> endobj 32644 0 obj <>/P 5716 0 R/Type/Annot/A 33018 0 R/Subtype/Link/Rect[246 381 260 390]/Border[0 0 0]/H/N>> endobj 32645 0 obj <>/P 5716 0 R/Type/Annot/A 33016 0 R/Subtype/Link/Rect[262 381 276 390]/Border[0 0 0]/H/N>> endobj 32646 0 obj <>/P 5716 0 R/Type/Annot/A 33014 0 R/Subtype/Link/Rect[278 381 295 391]/Border[0 0 0]/H/N>> endobj 32647 0 obj <>/P 5716 0 R/Type/Annot/A 33012 0 R/Subtype/Link/Rect[296 381 308 390]/Border[0 0 0]/H/N>> endobj 32648 0 obj <>/P 5716 0 R/Type/Annot/A 33009 0 R/Subtype/Link/Rect[197 371 214 381]/Border[0 0 0]/H/N>> endobj 32649 0 obj <>/P 5716 0 R/Type/Annot/A 33006 0 R/Subtype/Link/Rect[214 371 226 380]/Border[0 0 0]/H/N>> endobj 32650 0 obj <>/P 5716 0 R/Type/Annot/A 33003 0 R/Subtype/Link/Rect[229 361 241 370]/Border[0 0 0]/H/N>> endobj 32651 0 obj <>/P 5716 0 R/Type/Annot/A 33000 0 R/Subtype/Link/Rect[197 351 211 360]/Border[0 0 0]/H/N>> endobj 32652 0 obj <>/P 5716 0 R/Type/Annot/A 32996 0 R/Subtype/Link/Rect[213 351 227 360]/Border[0 0 0]/H/N>> endobj 32653 0 obj <>/P 5716 0 R/Type/Annot/A 32993 0 R/Subtype/Link/Rect[229 351 241 360]/Border[0 0 0]/H/N>> endobj 32654 0 obj <>/P 5716 0 R/Type/Annot/A 32990 0 R/Subtype/Link/Rect[192 341 206 350]/Border[0 0 0]/H/N>> endobj 32655 0 obj <>/P 5716 0 R/Type/Annot/A 32987 0 R/Subtype/Link/Rect[208 341 222 350]/Border[0 0 0]/H/N>> endobj 32656 0 obj <>/P 5716 0 R/Type/Annot/A 32984 0 R/Subtype/Link/Rect[224 341 238 350]/Border[0 0 0]/H/N>> endobj 32657 0 obj <>/P 5716 0 R/Type/Annot/A 32981 0 R/Subtype/Link/Rect[240 341 252 350]/Border[0 0 0]/H/N>> endobj 32658 0 obj <>/P 5716 0 R/Type/Annot/A 32978 0 R/Subtype/Link/Rect[197 331 211 340]/Border[0 0 0]/H/N>> endobj 32659 0 obj <>/P 5716 0 R/Type/Annot/A 33034 0 R/Subtype/Link/Rect[213 331 227 340]/Border[0 0 0]/H/N>> endobj 32660 0 obj <>/P 5716 0 R/Type/Annot/A 33031 0 R/Subtype/Link/Rect[229 331 241 340]/Border[0 0 0]/H/N>> endobj 32661 0 obj <>/P 5716 0 R/Type/Annot/A 33030 0 R/Subtype/Link/Rect[216 321 228 330]/Border[0 0 0]/H/N>> endobj 32662 0 obj <>/P 5716 0 R/Type/Annot/A 33029 0 R/Subtype/Link/Rect[216 311 228 320]/Border[0 0 0]/H/N>> endobj 32663 0 obj <>/P 5716 0 R/Type/Annot/A 33028 0 R/Subtype/Link/Rect[216 301 228 310]/Border[0 0 0]/H/N>> endobj 32664 0 obj <>/P 5716 0 R/Type/Annot/A 33027 0 R/Subtype/Link/Rect[216 291 228 300]/Border[0 0 0]/H/N>> endobj 32665 0 obj <>/P 5716 0 R/Type/Annot/A 33026 0 R/Subtype/Link/Rect[216 281 228 290]/Border[0 0 0]/H/N>> endobj 32666 0 obj <>/P 5716 0 R/Type/Annot/A 33025 0 R/Subtype/Link/Rect[216 271 228 280]/Border[0 0 0]/H/N>> endobj 32667 0 obj <>/P 5716 0 R/Type/Annot/A 33024 0 R/Subtype/Link/Rect[216 261 228 270]/Border[0 0 0]/H/N>> endobj 32668 0 obj <>/P 5716 0 R/Type/Annot/A 33023 0 R/Subtype/Link/Rect[216 251 228 260]/Border[0 0 0]/H/N>> endobj 32669 0 obj <>/P 5716 0 R/Type/Annot/A 33022 0 R/Subtype/Link/Rect[202 231 216 240]/Border[0 0 0]/H/N>> endobj 32670 0 obj <>/P 5716 0 R/Type/Annot/A 33021 0 R/Subtype/Link/Rect[218 231 230 240]/Border[0 0 0]/H/N>> endobj 32671 0 obj <>/P 5716 0 R/Type/Annot/A 33020 0 R/Subtype/Link/Rect[271 221 287 231]/Border[0 0 0]/H/N>> endobj 32672 0 obj <>/P 5716 0 R/Type/Annot/A 33019 0 R/Subtype/Link/Rect[288 221 300 230]/Border[0 0 0]/H/N>> endobj 32673 0 obj <>/P 5716 0 R/Type/Annot/A 33017 0 R/Subtype/Link/Rect[247 211 255 220]/Border[0 0 0]/H/N>> endobj 32674 0 obj <>/P 5716 0 R/Type/Annot/A 33015 0 R/Subtype/Link/Rect[216 201 228 210]/Border[0 0 0]/H/N>> endobj 32675 0 obj <>/P 5716 0 R/Type/Annot/A 33013 0 R/Subtype/Link/Rect[215 191 227 200]/Border[0 0 0]/H/N>> endobj 32676 0 obj <>/P 5716 0 R/Type/Annot/A 33011 0 R/Subtype/Link/Rect[157 181 167 190]/Border[0 0 0]/H/N>> endobj 32677 0 obj <>/P 5716 0 R/Type/Annot/A 32942 0 R/Subtype/Link/Rect[169 181 181 190]/Border[0 0 0]/H/N>> endobj 32678 0 obj <>/P 5716 0 R/Type/Annot/A 33007 0 R/Subtype/Link/Rect[245 171 257 180]/Border[0 0 0]/H/N>> endobj 32679 0 obj <>/P 5716 0 R/Type/Annot/A 33004 0 R/Subtype/Link/Rect[211 161 223 170]/Border[0 0 0]/H/N>> endobj 32680 0 obj <>/P 5716 0 R/Type/Annot/A 33001 0 R/Subtype/Link/Rect[240 151 254 160]/Border[0 0 0]/H/N>> endobj 32681 0 obj <>/P 5716 0 R/Type/Annot/A 32997 0 R/Subtype/Link/Rect[256 151 273 161]/Border[0 0 0]/H/N>> endobj 32682 0 obj <>/P 5716 0 R/Type/Annot/A 32994 0 R/Subtype/Link/Rect[273 151 285 160]/Border[0 0 0]/H/N>> endobj 32683 0 obj <>/P 5716 0 R/Type/Annot/A 32991 0 R/Subtype/Link/Rect[401 669 415 678]/Border[0 0 0]/H/N>> endobj 32684 0 obj <>/P 5716 0 R/Type/Annot/A 32988 0 R/Subtype/Link/Rect[417 669 431 678]/Border[0 0 0]/H/N>> endobj 32685 0 obj <>/P 5716 0 R/Type/Annot/A 32985 0 R/Subtype/Link/Rect[433 669 447 678]/Border[0 0 0]/H/N>> endobj 32686 0 obj <>/P 5716 0 R/Type/Annot/A 32983 0 R/Subtype/Link/Rect[449 669 463 678]/Border[0 0 0]/H/N>> endobj 32687 0 obj <>/P 5716 0 R/Type/Annot/A 32980 0 R/Subtype/Link/Rect[465 669 477 678]/Border[0 0 0]/H/N>> endobj 32688 0 obj <>/P 5716 0 R/Type/Annot/A 32977 0 R/Subtype/Link/Rect[419 659 433 668]/Border[0 0 0]/H/N>> endobj 32689 0 obj <>/P 5716 0 R/Type/Annot/A 32975 0 R/Subtype/Link/Rect[435 659 447 668]/Border[0 0 0]/H/N>> endobj 32690 0 obj <>/P 5716 0 R/Type/Annot/A 32973 0 R/Subtype/Link/Rect[419 649 433 658]/Border[0 0 0]/H/N>> endobj 32691 0 obj <>/P 5716 0 R/Type/Annot/A 32971 0 R/Subtype/Link/Rect[435 649 447 658]/Border[0 0 0]/H/N>> endobj 32692 0 obj <>/P 5716 0 R/Type/Annot/A 32969 0 R/Subtype/Link/Rect[397 639 409 648]/Border[0 0 0]/H/N>> endobj 32693 0 obj <>/P 5716 0 R/Type/Annot/A 32967 0 R/Subtype/Link/Rect[419 629 431 638]/Border[0 0 0]/H/N>> endobj 32694 0 obj <>/P 5716 0 R/Type/Annot/A 32965 0 R/Subtype/Link/Rect[397 619 409 628]/Border[0 0 0]/H/N>> endobj 32695 0 obj <>/P 5716 0 R/Type/Annot/A 32963 0 R/Subtype/Link/Rect[405 609 417 618]/Border[0 0 0]/H/N>> endobj 32696 0 obj <>/P 5716 0 R/Type/Annot/A 32961 0 R/Subtype/Link/Rect[396 599 410 608]/Border[0 0 0]/H/N>> endobj 32697 0 obj <>/P 5716 0 R/Type/Annot/A 32959 0 R/Subtype/Link/Rect[412 599 426 608]/Border[0 0 0]/H/N>> endobj 32698 0 obj <>/P 5716 0 R/Type/Annot/A 32957 0 R/Subtype/Link/Rect[428 599 442 608]/Border[0 0 0]/H/N>> endobj 32699 0 obj <>/P 5716 0 R/Type/Annot/A 32955 0 R/Subtype/Link/Rect[444 599 461 609]/Border[0 0 0]/H/N>> endobj 32700 0 obj <>/P 5716 0 R/Type/Annot/A 32953 0 R/Subtype/Link/Rect[462 599 476 608]/Border[0 0 0]/H/N>> endobj 32701 0 obj <>/P 5716 0 R/Type/Annot/A 32951 0 R/Subtype/Link/Rect[478 599 492 608]/Border[0 0 0]/H/N>> endobj 32702 0 obj <>/P 5716 0 R/Type/Annot/A 32950 0 R/Subtype/Link/Rect[494 599 508 608]/Border[0 0 0]/H/N>> endobj 32703 0 obj <>/P 5716 0 R/Type/Annot/A 32949 0 R/Subtype/Link/Rect[359 589 375 599]/Border[0 0 0]/H/N>> endobj 32704 0 obj <>/P 5716 0 R/Type/Annot/A 32947 0 R/Subtype/Link/Rect[376 589 390 598]/Border[0 0 0]/H/N>> endobj 32705 0 obj <>/P 5716 0 R/Type/Annot/A 32945 0 R/Subtype/Link/Rect[392 589 406 598]/Border[0 0 0]/H/N>> endobj 32706 0 obj <>/P 5716 0 R/Type/Annot/A 32944 0 R/Subtype/Link/Rect[408 589 422 598]/Border[0 0 0]/H/N>> endobj 32707 0 obj <>/P 5716 0 R/Type/Annot/A 32943 0 R/Subtype/Link/Rect[424 589 438 598]/Border[0 0 0]/H/N>> endobj 32708 0 obj <>/P 5716 0 R/Type/Annot/A 32941 0 R/Subtype/Link/Rect[440 589 454 598]/Border[0 0 0]/H/N>> endobj 32709 0 obj <>/P 5716 0 R/Type/Annot/A 32940 0 R/Subtype/Link/Rect[456 589 470 598]/Border[0 0 0]/H/N>> endobj 32710 0 obj <>/P 5716 0 R/Type/Annot/A 32939 0 R/Subtype/Link/Rect[472 589 486 598]/Border[0 0 0]/H/N>> endobj 32711 0 obj <>/P 5716 0 R/Type/Annot/A 32938 0 R/Subtype/Link/Rect[488 589 502 598]/Border[0 0 0]/H/N>> endobj 32712 0 obj <>/P 5716 0 R/Type/Annot/A 32937 0 R/Subtype/Link/Rect[359 579 375 589]/Border[0 0 0]/H/N>> endobj 32713 0 obj <>/P 5716 0 R/Type/Annot/A 32936 0 R/Subtype/Link/Rect[376 579 390 588]/Border[0 0 0]/H/N>> endobj 32714 0 obj <>/P 5716 0 R/Type/Annot/A 32935 0 R/Subtype/Link/Rect[392 579 406 588]/Border[0 0 0]/H/N>> endobj 32715 0 obj <>/P 5716 0 R/Type/Annot/A 32934 0 R/Subtype/Link/Rect[408 579 422 588]/Border[0 0 0]/H/N>> endobj 32716 0 obj <>/P 5716 0 R/Type/Annot/A 32933 0 R/Subtype/Link/Rect[424 579 436 588]/Border[0 0 0]/H/N>> endobj 32717 0 obj <>/P 5716 0 R/Type/Annot/A 32932 0 R/Subtype/Link/Rect[424 569 438 578]/Border[0 0 0]/H/N>> endobj 32718 0 obj <>/P 5716 0 R/Type/Annot/A 32931 0 R/Subtype/Link/Rect[440 569 452 578]/Border[0 0 0]/H/N>> endobj 32719 0 obj <>/P 5716 0 R/Type/Annot/A 32930 0 R/Subtype/Link/Rect[397 559 409 568]/Border[0 0 0]/H/N>> endobj 32720 0 obj <>/P 5716 0 R/Type/Annot/A 32929 0 R/Subtype/Link/Rect[428 549 440 558]/Border[0 0 0]/H/N>> endobj 32721 0 obj <>/P 5716 0 R/Type/Annot/A 32928 0 R/Subtype/Link/Rect[434 539 448 548]/Border[0 0 0]/H/N>> endobj 32722 0 obj <>/P 5716 0 R/Type/Annot/A 32927 0 R/Subtype/Link/Rect[450 539 464 548]/Border[0 0 0]/H/N>> endobj 32723 0 obj <>/P 5716 0 R/Type/Annot/A 32926 0 R/Subtype/Link/Rect[466 539 480 548]/Border[0 0 0]/H/N>> endobj 32724 0 obj <>/P 5716 0 R/Type/Annot/A 32924 0 R/Subtype/Link/Rect[482 539 494 548]/Border[0 0 0]/H/N>> endobj 32725 0 obj <>/P 5716 0 R/Type/Annot/A 32923 0 R/Subtype/Link/Rect[397 529 409 538]/Border[0 0 0]/H/N>> endobj 32726 0 obj <>/P 5716 0 R/Type/Annot/A 32922 0 R/Subtype/Link/Rect[434 519 448 528]/Border[0 0 0]/H/N>> endobj 32727 0 obj <>/P 5716 0 R/Type/Annot/A 32921 0 R/Subtype/Link/Rect[450 519 464 528]/Border[0 0 0]/H/N>> endobj 32728 0 obj <>/P 5716 0 R/Type/Annot/A 32920 0 R/Subtype/Link/Rect[466 519 478 528]/Border[0 0 0]/H/N>> endobj 32729 0 obj <>/P 5716 0 R/Type/Annot/A 32919 0 R/Subtype/Link/Rect[397 509 409 518]/Border[0 0 0]/H/N>> endobj 32730 0 obj <>/P 5716 0 R/Type/Annot/A 32918 0 R/Subtype/Link/Rect[424 499 441 509]/Border[0 0 0]/H/N>> endobj 32731 0 obj <>/P 5716 0 R/Type/Annot/A 32917 0 R/Subtype/Link/Rect[441 499 455 508]/Border[0 0 0]/H/N>> endobj 32732 0 obj <>/P 5716 0 R/Type/Annot/A 32916 0 R/Subtype/Link/Rect[457 499 471 508]/Border[0 0 0]/H/N>> endobj 32733 0 obj <>/P 5716 0 R/Type/Annot/A 32915 0 R/Subtype/Link/Rect[473 499 490 509]/Border[0 0 0]/H/N>> endobj 32734 0 obj <>/P 5716 0 R/Type/Annot/A 32913 0 R/Subtype/Link/Rect[491 499 505 508]/Border[0 0 0]/H/N>> endobj 32735 0 obj <>/P 5716 0 R/Type/Annot/A 32911 0 R/Subtype/Link/Rect[359 489 373 498]/Border[0 0 0]/H/N>> endobj 32736 0 obj <>/P 5716 0 R/Type/Annot/A 32909 0 R/Subtype/Link/Rect[375 489 387 498]/Border[0 0 0]/H/N>> endobj 32737 0 obj <>/P 5716 0 R/Type/Annot/A 32907 0 R/Subtype/Link/Rect[397 479 411 488]/Border[0 0 0]/H/N>> endobj 32738 0 obj <>/P 5716 0 R/Type/Annot/A 32905 0 R/Subtype/Link/Rect[413 479 425 488]/Border[0 0 0]/H/N>> endobj 32739 0 obj <>/P 5716 0 R/Type/Annot/A 32903 0 R/Subtype/Link/Rect[391 469 403 478]/Border[0 0 0]/H/N>> endobj 32740 0 obj <>/P 5716 0 R/Type/Annot/A 32901 0 R/Subtype/Link/Rect[400 459 414 468]/Border[0 0 0]/H/N>> endobj 32741 0 obj <>/P 5716 0 R/Type/Annot/A 32899 0 R/Subtype/Link/Rect[416 459 428 468]/Border[0 0 0]/H/N>> endobj 32742 0 obj <>/P 5716 0 R/Type/Annot/A 32896 0 R/Subtype/Link/Rect[366 449 376 458]/Border[0 0 0]/H/N>> endobj 32743 0 obj <>/P 5716 0 R/Type/Annot/A 32894 0 R/Subtype/Link/Rect[378 449 390 459]/Border[0 0 0]/H/N>> endobj 32744 0 obj <>/P 5716 0 R/Type/Annot/A 32892 0 R/Subtype/Link/Rect[391 449 401 458]/Border[0 0 0]/H/N>> endobj 32745 0 obj <>/P 5716 0 R/Type/Annot/A 32890 0 R/Subtype/Link/Rect[403 449 413 458]/Border[0 0 0]/H/N>> endobj 32746 0 obj <>/P 5716 0 R/Type/Annot/A 32888 0 R/Subtype/Link/Rect[415 449 429 458]/Border[0 0 0]/H/N>> endobj 32747 0 obj <>/P 5716 0 R/Type/Annot/A 32886 0 R/Subtype/Link/Rect[431 449 447 459]/Border[0 0 0]/H/N>> endobj 32748 0 obj <>/P 5716 0 R/Type/Annot/A 32884 0 R/Subtype/Link/Rect[448 449 461 458]/Border[0 0 0]/H/N>> endobj 32749 0 obj <>/P 5716 0 R/Type/Annot/A 32882 0 R/Subtype/Link/Rect[463 449 477 458]/Border[0 0 0]/H/N>> endobj 32750 0 obj <>/P 5716 0 R/Type/Annot/A 32880 0 R/Subtype/Link/Rect[479 449 493 458]/Border[0 0 0]/H/N>> endobj 32751 0 obj <>/P 5716 0 R/Type/Annot/A 32878 0 R/Subtype/Link/Rect[495 449 509 458]/Border[0 0 0]/H/N>> endobj 32752 0 obj <>/P 5716 0 R/Type/Annot/A 32876 0 R/Subtype/Link/Rect[359 439 375 449]/Border[0 0 0]/H/N>> endobj 32753 0 obj <>/P 5716 0 R/Type/Annot/A 32874 0 R/Subtype/Link/Rect[376 439 390 448]/Border[0 0 0]/H/N>> endobj 32754 0 obj <>/P 5716 0 R/Type/Annot/A 32872 0 R/Subtype/Link/Rect[392 439 409 449]/Border[0 0 0]/H/N>> endobj 32755 0 obj <>/P 5716 0 R/Type/Annot/A 32998 0 R/Subtype/Link/Rect[409 439 423 448]/Border[0 0 0]/H/N>> endobj 32756 0 obj <>/P 5716 0 R/Type/Annot/A 32870 0 R/Subtype/Link/Rect[425 439 439 448]/Border[0 0 0]/H/N>> endobj 32757 0 obj <>/P 5716 0 R/Type/Annot/A 32868 0 R/Subtype/Link/Rect[441 439 455 448]/Border[0 0 0]/H/N>> endobj 32758 0 obj <>/P 5716 0 R/Type/Annot/A 32866 0 R/Subtype/Link/Rect[457 439 471 448]/Border[0 0 0]/H/N>> endobj 32759 0 obj <>/P 5716 0 R/Type/Annot/A 32864 0 R/Subtype/Link/Rect[473 439 487 448]/Border[0 0 0]/H/N>> endobj 32760 0 obj <>/P 5716 0 R/Type/Annot/A 32862 0 R/Subtype/Link/Rect[489 439 503 448]/Border[0 0 0]/H/N>> endobj 32761 0 obj <>/P 5716 0 R/Type/Annot/A 32860 0 R/Subtype/Link/Rect[505 439 517 448]/Border[0 0 0]/H/N>> endobj 32762 0 obj <>/P 5716 0 R/Type/Annot/A 32858 0 R/Subtype/Link/Rect[403 429 413 438]/Border[0 0 0]/H/N>> endobj 32763 0 obj <>/P 5716 0 R/Type/Annot/A 32856 0 R/Subtype/Link/Rect[415 429 427 438]/Border[0 0 0]/H/N>> endobj 32764 0 obj <>/P 5716 0 R/Type/Annot/A 32854 0 R/Subtype/Link/Rect[400 419 414 428]/Border[0 0 0]/H/N>> endobj 32765 0 obj <>/P 5716 0 R/Type/Annot/A 32852 0 R/Subtype/Link/Rect[416 419 430 428]/Border[0 0 0]/H/N>> endobj 32766 0 obj <>/P 5716 0 R/Type/Annot/A 32850 0 R/Subtype/Link/Rect[432 419 446 428]/Border[0 0 0]/H/N>> endobj 32767 0 obj <>/P 5716 0 R/Type/Annot/A 32848 0 R/Subtype/Link/Rect[448 419 465 429]/Border[0 0 0]/H/N>> endobj 32768 0 obj <>/P 5716 0 R/Type/Annot/A 32846 0 R/Subtype/Link/Rect[465 419 477 428]/Border[0 0 0]/H/N>> endobj 32769 0 obj <>/P 5716 0 R/Type/Annot/A 32844 0 R/Subtype/Link/Rect[423 409 435 418]/Border[0 0 0]/H/N>> endobj 32770 0 obj <>/P 5716 0 R/Type/Annot/A 32842 0 R/Subtype/Link/Rect[413 379 425 388]/Border[0 0 0]/H/N>> endobj 32771 0 obj <>/P 5716 0 R/Type/Annot/A 32840 0 R/Subtype/Link/Rect[394 319 406 328]/Border[0 0 0]/H/N>> endobj 32772 0 obj <>/P 5716 0 R/Type/Annot/A 32838 0 R/Subtype/Link/Rect[394 309 410 319]/Border[0 0 0]/H/N>> endobj 32773 0 obj <>/P 5716 0 R/Type/Annot/A 32836 0 R/Subtype/Link/Rect[411 309 425 318]/Border[0 0 0]/H/N>> endobj 32774 0 obj <>/P 5716 0 R/Type/Annot/A 32834 0 R/Subtype/Link/Rect[427 309 439 318]/Border[0 0 0]/H/N>> endobj 32775 0 obj <>/P 5716 0 R/Type/Annot/A 32832 0 R/Subtype/Link/Rect[428 289 445 299]/Border[0 0 0]/H/N>> endobj 32776 0 obj <>/P 5716 0 R/Type/Annot/A 32830 0 R/Subtype/Link/Rect[445 289 459 298]/Border[0 0 0]/H/N>> endobj 32777 0 obj <>/P 5716 0 R/Type/Annot/A 32828 0 R/Subtype/Link/Rect[461 289 475 298]/Border[0 0 0]/H/N>> endobj 32778 0 obj <>/P 5716 0 R/Type/Annot/A 32826 0 R/Subtype/Link/Rect[477 289 491 298]/Border[0 0 0]/H/N>> endobj 32779 0 obj <>/P 5716 0 R/Type/Annot/A 32824 0 R/Subtype/Link/Rect[359 279 375 289]/Border[0 0 0]/H/N>> endobj 32780 0 obj <>/P 5716 0 R/Type/Annot/A 32822 0 R/Subtype/Link/Rect[376 279 390 288]/Border[0 0 0]/H/N>> endobj 32781 0 obj <>/P 5716 0 R/Type/Annot/A 32820 0 R/Subtype/Link/Rect[392 279 406 288]/Border[0 0 0]/H/N>> endobj 32782 0 obj <>/P 5716 0 R/Type/Annot/A 32818 0 R/Subtype/Link/Rect[408 279 420 288]/Border[0 0 0]/H/N>> endobj 32783 0 obj <>/P 5716 0 R/Type/Annot/A 32816 0 R/Subtype/Link/Rect[410 269 422 279]/Border[0 0 0]/H/N>> endobj 32784 0 obj <>/P 5716 0 R/Type/Annot/A 32814 0 R/Subtype/Link/Rect[423 269 431 278]/Border[0 0 0]/H/N>> endobj 32785 0 obj <>/P 5716 0 R/Type/Annot/A 33010 0 R/Subtype/Link/Rect[410 259 422 269]/Border[0 0 0]/H/N>> endobj 32786 0 obj <>/P 5716 0 R/Type/Annot/A 33008 0 R/Subtype/Link/Rect[423 259 431 268]/Border[0 0 0]/H/N>> endobj 32787 0 obj <>/P 5716 0 R/Type/Annot/A 33005 0 R/Subtype/Link/Rect[428 249 442 258]/Border[0 0 0]/H/N>> endobj 32788 0 obj <>/P 5716 0 R/Type/Annot/A 33002 0 R/Subtype/Link/Rect[444 249 458 258]/Border[0 0 0]/H/N>> endobj 32789 0 obj <>/P 5716 0 R/Type/Annot/A 32999 0 R/Subtype/Link/Rect[460 249 474 258]/Border[0 0 0]/H/N>> endobj 32790 0 obj <>/P 5716 0 R/Type/Annot/A 32995 0 R/Subtype/Link/Rect[476 249 488 258]/Border[0 0 0]/H/N>> endobj 32791 0 obj <>/P 5716 0 R/Type/Annot/A 32992 0 R/Subtype/Link/Rect[428 239 436 248]/Border[0 0 0]/H/N>> endobj 32792 0 obj <>/P 5716 0 R/Type/Annot/A 32989 0 R/Subtype/Link/Rect[403 219 417 228]/Border[0 0 0]/H/N>> endobj 32793 0 obj <>/P 5716 0 R/Type/Annot/A 32986 0 R/Subtype/Link/Rect[419 219 436 229]/Border[0 0 0]/H/N>> endobj 32794 0 obj <>/P 5716 0 R/Type/Annot/A 32925 0 R/Subtype/Link/Rect[436 219 448 228]/Border[0 0 0]/H/N>> endobj 32795 0 obj <>/P 5716 0 R/Type/Annot/A 32982 0 R/Subtype/Link/Rect[427 209 439 218]/Border[0 0 0]/H/N>> endobj 32796 0 obj <>/P 5716 0 R/Type/Annot/A 32979 0 R/Subtype/Link/Rect[386 199 399 209]/Border[0 0 0]/H/N>> endobj 32797 0 obj <>/P 5716 0 R/Type/Annot/A 32976 0 R/Subtype/Link/Rect[400 199 408 208]/Border[0 0 0]/H/N>> endobj 32798 0 obj <>/P 5716 0 R/Type/Annot/A 32974 0 R/Subtype/Link/Rect[412 189 422 198]/Border[0 0 0]/H/N>> endobj 32799 0 obj <>/P 5716 0 R/Type/Annot/A 32972 0 R/Subtype/Link/Rect[424 189 441 199]/Border[0 0 0]/H/N>> endobj 32800 0 obj <>/P 5716 0 R/Type/Annot/A 32970 0 R/Subtype/Link/Rect[442 189 454 198]/Border[0 0 0]/H/N>> endobj 32801 0 obj <>/P 5716 0 R/Type/Annot/A 32968 0 R/Subtype/Link/Rect[416 179 432 189]/Border[0 0 0]/H/N>> endobj 32802 0 obj <>/P 5716 0 R/Type/Annot/A 32966 0 R/Subtype/Link/Rect[433 179 445 188]/Border[0 0 0]/H/N>> endobj 32803 0 obj <>/P 5716 0 R/Type/Annot/A 32964 0 R/Subtype/Link/Rect[399 169 416 179]/Border[0 0 0]/H/N>> endobj 32804 0 obj <>/P 5716 0 R/Type/Annot/A 32962 0 R/Subtype/Link/Rect[417 169 429 178]/Border[0 0 0]/H/N>> endobj 32805 0 obj <>/P 5716 0 R/Type/Annot/A 32960 0 R/Subtype/Link/Rect[398 159 415 169]/Border[0 0 0]/H/N>> endobj 32806 0 obj <>/P 5716 0 R/Type/Annot/A 32958 0 R/Subtype/Link/Rect[415 159 427 168]/Border[0 0 0]/H/N>> endobj 32807 0 obj <>/P 5716 0 R/Type/Annot/A 32956 0 R/Subtype/Link/Rect[422 149 439 159]/Border[0 0 0]/H/N>> endobj 32808 0 obj <>/P 5716 0 R/Type/Annot/A 32954 0 R/Subtype/Link/Rect[440 149 454 158]/Border[0 0 0]/H/N>> endobj 32809 0 obj <>/P 5716 0 R/Type/Annot/A 32952 0 R/Subtype/Link/Rect[456 149 468 158]/Border[0 0 0]/H/N>> endobj 32810 0 obj <>/P 5716 0 R/Type/Annot/A 32898 0 R/Subtype/Link/Rect[195 390 205 399]/Border[0 0 0]/H/N>> endobj 32811 0 obj <>/P 5716 0 R/Type/Annot/A 32948 0 R/Subtype/Link/Rect[360 368 373 377]/Border[0 0 0]/H/N>> endobj 32812 0 obj <>/P 5716 0 R/Type/Annot/A 32946 0 R/Subtype/Link/Rect[163 240 173 249]/Border[0 0 0]/H/N>> endobj 32813 0 obj <> endobj 32814 0 obj <> endobj 32815 0 obj <> endobj 32816 0 obj <> endobj 32817 0 obj <> endobj 32818 0 obj <> endobj 32819 0 obj <> endobj 32820 0 obj <> endobj 32821 0 obj <> endobj 32822 0 obj <> endobj 32823 0 obj <> endobj 32824 0 obj <> endobj 32825 0 obj <> endobj 32826 0 obj <> endobj 32827 0 obj <> endobj 32828 0 obj <> endobj 32829 0 obj <> endobj 32830 0 obj <> endobj 32831 0 obj <> endobj 32832 0 obj <> endobj 32833 0 obj <> endobj 32834 0 obj <> endobj 32835 0 obj <> endobj 32836 0 obj <> endobj 32837 0 obj <> endobj 32838 0 obj <> endobj 32839 0 obj <> endobj 32840 0 obj <> endobj 32841 0 obj <> endobj 32842 0 obj <> endobj 32843 0 obj <> endobj 32844 0 obj <> endobj 32845 0 obj <> endobj 32846 0 obj <> endobj 32847 0 obj <> endobj 32848 0 obj <> endobj 32849 0 obj <> endobj 32850 0 obj <> endobj 32851 0 obj <> endobj 32852 0 obj <> endobj 32853 0 obj <> endobj 32854 0 obj <> endobj 32855 0 obj <> endobj 32856 0 obj <> endobj 32857 0 obj <> endobj 32858 0 obj <> endobj 32859 0 obj <> endobj 32860 0 obj <> endobj 32861 0 obj <> endobj 32862 0 obj <> endobj 32863 0 obj <> endobj 32864 0 obj <> endobj 32865 0 obj <> endobj 32866 0 obj <> endobj 32867 0 obj <> endobj 32868 0 obj <> endobj 32869 0 obj <> endobj 32870 0 obj <> endobj 32871 0 obj <> endobj 32872 0 obj <> endobj 32873 0 obj <> endobj 32874 0 obj <> endobj 32875 0 obj <> endobj 32876 0 obj <> endobj 32877 0 obj <> endobj 32878 0 obj <> endobj 32879 0 obj <> endobj 32880 0 obj <> endobj 32881 0 obj <> endobj 32882 0 obj <> endobj 32883 0 obj <> endobj 32884 0 obj <> endobj 32885 0 obj <> endobj 32886 0 obj <> endobj 32887 0 obj <> endobj 32888 0 obj <> endobj 32889 0 obj <> endobj 32890 0 obj <> endobj 32891 0 obj <> endobj 32892 0 obj <> endobj 32893 0 obj <> endobj 32894 0 obj <> endobj 32895 0 obj <> endobj 32896 0 obj <> endobj 32897 0 obj <> endobj 32898 0 obj <> endobj 32899 0 obj <> endobj 32900 0 obj <> endobj 32901 0 obj <> endobj 32902 0 obj <> endobj 32903 0 obj <> endobj 32904 0 obj <> endobj 32905 0 obj <> endobj 32906 0 obj <> endobj 32907 0 obj <> endobj 32908 0 obj <> endobj 32909 0 obj <> endobj 32910 0 obj <> endobj 32911 0 obj <> endobj 32912 0 obj <> endobj 32913 0 obj <> endobj 32914 0 obj <> endobj 32915 0 obj <> endobj 32916 0 obj <> endobj 32917 0 obj <> endobj 32918 0 obj <> endobj 32919 0 obj <> endobj 32920 0 obj <> endobj 32921 0 obj <> endobj 32922 0 obj <> endobj 32923 0 obj <> endobj 32924 0 obj <> endobj 32925 0 obj <> endobj 32926 0 obj <> endobj 32927 0 obj <> endobj 32928 0 obj <> endobj 32929 0 obj <> endobj 32930 0 obj <> endobj 32931 0 obj <> endobj 32932 0 obj <> endobj 32933 0 obj <> endobj 32934 0 obj <> endobj 32935 0 obj <> endobj 32936 0 obj <> endobj 32937 0 obj <> endobj 32938 0 obj <> endobj 32939 0 obj <> endobj 32940 0 obj <> endobj 32941 0 obj <> endobj 32942 0 obj <> endobj 32943 0 obj <> endobj 32944 0 obj <> endobj 32945 0 obj <> endobj 32946 0 obj <> endobj 32947 0 obj <> endobj 32948 0 obj <> endobj 32949 0 obj <> endobj 32950 0 obj <> endobj 32951 0 obj <> endobj 32952 0 obj <> endobj 32953 0 obj <> endobj 32954 0 obj <> endobj 32955 0 obj <> endobj 32956 0 obj <> endobj 32957 0 obj <> endobj 32958 0 obj <> endobj 32959 0 obj <> endobj 32960 0 obj <> endobj 32961 0 obj <> endobj 32962 0 obj <> endobj 32963 0 obj <> endobj 32964 0 obj <> endobj 32965 0 obj <> endobj 32966 0 obj <> endobj 32967 0 obj <> endobj 32968 0 obj <> endobj 32969 0 obj <> endobj 32970 0 obj <> endobj 32971 0 obj <> endobj 32972 0 obj <> endobj 32973 0 obj <> endobj 32974 0 obj <> endobj 32975 0 obj <> endobj 32976 0 obj <> endobj 32977 0 obj <> endobj 32978 0 obj <> endobj 32979 0 obj <> endobj 32980 0 obj <> endobj 32981 0 obj <> endobj 32982 0 obj <> endobj 32983 0 obj <> endobj 32984 0 obj <> endobj 32985 0 obj <> endobj 32986 0 obj <> endobj 32987 0 obj <> endobj 32988 0 obj <> endobj 32989 0 obj <> endobj 32990 0 obj <> endobj 32991 0 obj <> endobj 32992 0 obj <> endobj 32993 0 obj <> endobj 32994 0 obj <> endobj 32995 0 obj <> endobj 32996 0 obj <> endobj 32997 0 obj <> endobj 32998 0 obj <> endobj 32999 0 obj <> endobj 33000 0 obj <> endobj 33001 0 obj <> endobj 33002 0 obj <> endobj 33003 0 obj <> endobj 33004 0 obj <> endobj 33005 0 obj <> endobj 33006 0 obj <> endobj 33007 0 obj <> endobj 33008 0 obj <> endobj 33009 0 obj <> endobj 33010 0 obj <> endobj 33011 0 obj <> endobj 33012 0 obj <> endobj 33013 0 obj <> endobj 33014 0 obj <> endobj 33015 0 obj <> endobj 33016 0 obj <> endobj 33017 0 obj <> endobj 33018 0 obj <> endobj 33019 0 obj <> endobj 33020 0 obj <> endobj 33021 0 obj <> endobj 33022 0 obj <> endobj 33023 0 obj <> endobj 33024 0 obj <> endobj 33025 0 obj <> endobj 33026 0 obj <> endobj 33027 0 obj <> endobj 33028 0 obj <> endobj 33029 0 obj <> endobj 33030 0 obj <> endobj 33031 0 obj <> endobj 33032 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 33033 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 33034 0 obj <> endobj 33035 0 obj <> endobj 33036 0 obj <> endobj 33037 0 obj <> endobj 33038 0 obj <> endobj 33039 0 obj <> endobj 33040 0 obj <> endobj 33041 0 obj <> endobj 33042 0 obj <> endobj 33043 0 obj <> endobj 33044 0 obj <> endobj 33045 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 33046 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 33047 0 obj <> endobj 33048 0 obj <> endobj 33049 0 obj <> stream q /X1 Do Q q endstream endobj 33050 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 33051 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 33052 0 obj <> stream HWk_1EQ@ va vpFF+:%)+wșv c;gyyܼ-xq7ߑ|ѿ#*bZ "sd)%#I(!%n~Uu9Tnꨆڒn~|}D7J6$ )Hm,X7 M,iɘNM8 vLVf6?]9_ӜׇaP 8)*D hҔw{11#gB3tDHȎDOc&$׿Ǩ@ sSxc1`Q g,P#@}1#4+TcB\c1 f!2ĵ>Y q qi>p-C\c\f!2ĵ>Y q qi>p-C\c\1k}LB>,ĵ>YzӬP qi>p-G\c\f!rĵ>Yq qi>p-G\c\f!rĵ>Yq#4+TcB\c1 f! ĵ>Yq qi>p@\c\+f! ĵ>Yq qi>p@\c\+1k}LB>,ĵ>YzӬP}E!HfD7QJ6&x)Iӂl՛Xmf~AA9ơw65EKպ=_jvUUja\6+lYg]^`894_}WCo"lZve3tXy_AX46ۍ> i4d!Ppz»Gޕڹm\ph.r!z輼%sUTΕOҤIXuAwspW4C_u$S;AޕCv@DILMֿ gT;'uZ$+GXK<ɺdk7ܙc0zp?ie꭛ۉI.qnY6Q5Im 4MVF{,ј&W.v6LV;o.H(;UAg9o˱*ldvk^n9 Urכހ4zEn’EͣU; 3nVM&NԱu;t'| -S3͖ԺʪH`0;{mGWQ*US0f#tvvaFrX1'm})+>]jPyb+8C]CwBؓoA˴,ϗMܝ 9c=߮{= r" ӄj8uM|{YvjդjT{_9Evh=β'-+ n  .N4gW Ž Sa͘[(;܈Hqe kl} 3YM,~K0o,?uv],^B=V`i>V+zA{sFldV`1_P:CDV*lwWfRe08d\dp{7'*&qa3g|p%khFǓ6s|X{,0ѻ177xJ^ɔJ951$_MrSIdeUC] h?%Mi $LUJĴ6myU9ilSpNY+yNpfԳ]+ÇO豅\ywîTܵǻx/[UGѵݖL2w[2"FDcoroH)wB0W@ɞx.=DcvUD7iQpiɾrK5r&u\.^_ˤ[F{{2Mo]vwX/ ҘPÕi~ʉi2[dg$u)*>ů]L.GҩK;5>/ڊ. V?եQGy|UШӧ/iSNeV& kSƱK9.9_zmy+};n!!Rk߽ <_.et+P_j*E;^UՕ{]'qB^u@6mjB65&v@KtъQ.ZLT_57S]A)`@\j岀1YBjcKi])'Quz3LqBBz<ھ}9NM]Gwσ<7cǍ]nՏZ[]6M_EE {yC~V\|yǺ|yNcX>Nd`(FU4گjo ė}.VùAx# . kCTP3~fU:?屟*dU/D3r '*gHaav7Cu$4bIB%C*(0OIXN%>dMKKs p| E"Ù5im6}9I5k=^#Ot kRU<-&Me6!,R$s) BeU=H.Dn3. DC?ف.H`M^| A-c-:&82Ѩ\I*Fo*c׷H_]-)n@ʡg2 u g:2AL!u{ֹ xLw"ܪAw(Qo.ntS㾜 yϦKG&Jۛ^xOJm%OD eM;8ǘTM'7v|Ƹi)|} -v} Cs`a !DG{!ï2@tw:?!-%p4QqW Ӧb:7wˋ}_d&endstream endobj 33053 0 obj <>/P 799 0 R/Type/Annot/A 33054 0 R/Subtype/Link/Rect[93.6003036 591.22998 217.404007 610.909973]/Border[0 0 0]/H/N>> endobj 33054 0 obj <> endobj 33055 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 33056 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 33057 0 obj <> endobj 33058 0 obj <> endobj 33059 0 obj <> endobj 33060 0 obj <> endobj 33061 0 obj <> endobj 33062 0 obj <> endobj 33063 0 obj <> endobj 33064 0 obj <> endobj 33065 0 obj <> endobj 33066 0 obj <> stream q /X1 Do Q q endstream endobj 33067 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 33068 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 33069 0 obj <> stream HWkۺ_Ol|h6r[$noMhmz[JE{c- y83l:Ƿ1^~mHD \%dY#Yc)!b'{(ɾuSmTT폟%{h7v-)&z g+`M񜭏]n>Kix E\>i~<`N{&bt V_߯#V7G8֏J$0GX}lˢB41*} 1E)Fp͡ PB(ds(C0w!B(I{I{EW{EW{EW{M{M{C7{C7{C7`S}Y>#g`s} y `hVŶc$ bC Pj͡BP!{lZls(}ZI`V6@6"j͡j%ZlZls(}ZI`V6@6"j͡j%Zl;FP-9TE*dm6@6"Uj͡jZlZls(}ZE`V6@6"Uj͡jZlZls(}ZE`VŶc bC Pj͡BP!{lZls(}ZM`V6@6"Մj͡j5ZlZls(}ZM`V6@6"Մj͡j5Zl;FP-9TE*dm/(4g67v-)&z 77Lp!$eiZ1V_" Z$Eu^~P>zĂ'm I_uΖ[z)0?Wmuz#4cW7`0f? 7i[uU}_fuavpD.:T"A>/MՍNq2pap) 01"Q׍}P_Vlm5z_*uwUAXkvӡ{K9N 8ZC]HzkVy|tg$[`m{D!p${nvSisxoIۍ%r?RS ۗ/J?*yR$rlpou}-ғ E\DXL&OwiwqՇ5RhuHc^1ws7%O{kOp[uzU~fbɮ4(n5n/h+u] 4 "X6v/Hgk7YDf aQi$ z)w~0= 0NZ3)O,OD3|j:*2C}z>u~J*=OKQKUZ}W%ǁktڶzIAq1_ D1ġp~p,Ow[e:^fgPѿpuWw{ t% ɗ8:p7K+aWUygwJ~8~믵?TCz%QRc+<62ᅫ I߆9wVD}ЈN3y; KS瘻Y/ĵg>IN\6'WZ#{dVUpyy\d GJtY2%l\@?F8x{H>c ?Co'FX7[L'nMe]:D^\g.MTK:>͜|WS +g?j- -;;O^]xmmWVIËõ'[U67OkA.P{{,\bU~EHnþHhn~T_`"5HHM)׆qh\ :~*J5ݹ>3 1R( nvY|ihp̙M#5mXMm&fRu{BzCQ Ѧn|nj}'ySQ~8F75mOPq_-EMd+C9D^st5MG?WKoFW }<N Ru@KEDJ KKҒۃzf= 脧l-a0bL$.gx,0 򙹘E8Yy#ve+O6R:7m^llJ?6cKDq $(8[xT_.vܖhLT54V2Z"Yk76l̔UpGq;45iQ'<c>"_=úl17S{*I8N<'JS}Nx:c4`s2Oо/0'>DșMt&n3Muo˫1e+j$UAʅf]Ab)>J>ㄚo0ɲH NKWfY /vm 7ZzuM6;Lz g62҄'@JvFoDTzcqWaRRD %O pTpE"UlWzy}2\nj:1aW#YupE$\B5[tci`$$|}Ўbz\F\Ww\Gwk7NL3 DB#p5eM&p LKkRH_~k.n< oV=T.yBhEޙAs0%hnvΞ qlf)ș2)`diBxlu)^:ٙ 86 &t PÉ(Kl$p`Y&*qE t8uOt]VGFd)1F Xk8`I"RiD&96Kt7U'2R$DdK?pVl[Ye>Fl$XT0kLx4බ ;2WӔ\eU{A|{`2L A'ri 7>a!|~NgLĊ@ ,ng2L<$KQtXprWlzǸHb_TAұ}_łV$6͌p~d"b,>mF{:j#\¦*EӿHqH7*Q'ƳKد[o~΍^$[' /-2:Ëʃ5͢վ ߼ <:f\ye;lǛwTU/(XΚu5A]Dh{QY)q%sbN=Mk1x.04br?m$JSwdž`oఘE"EcWӑ)T$8_FB 9]0[oXDpŴY/Mdz?endstream endobj 33070 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 33071 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 33072 0 obj <> endobj 33073 0 obj <> endobj 33074 0 obj <> stream q /X1 Do Q q endstream endobj 33075 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 33076 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 33077 0 obj <> stream HWisF_1OT@s\JZ lr$h $~{IU*||=xs|;\ݻ㫳93wOh_$ >fAP(T~ "~a3Ϟ`9aΊbOr";MT ,x <%&xҩs2gq;Asr)j" 싗٨̋ي}hǡNQly~覒>OhÏe㾨H뿣)%gW1(;<{^`Nr\9$8K0 .+cz騗zWzWzWzׄzׄz> P8CB} >"GP9#B}䨏 >&ǎP8BYAcSOŘa1,µ3,W= U1`ŘaJµ3,BZIc"\1";k1fXzǵp-ƀEcEw\+ b̰k%Zp- PVŘaJµzp- U1`Řa1fXzp- PVŘa*µZq"\1";Uk1,µ3,BZEcEw\b Xk1fXzǵp- PVӄk1fXzp- U1rc Xk1fXzǵp- PVb̰k5Zq&\1`Řajµ3,BZMc"\1";Մk1fXzǵp-Ʀ^@cb̰\3,W}'Iib/И ! #^'GCӈEm2y~Y>hAC_oe}Ws @dͷ[R5iU%-H-q^OODPZτtT~/-OIC9$E~bQ?v#wѧCKH% u{3Y9j˖})S/>B$,^iYGFOpTfyUZpͲّ8 r٘Tbqx<}`\ylɈuuٲ\䣲-qdII([6"m6Y~P.F`KK8& abXvHU1nW$Y1+[apV2PR߬*F`aVg! לw[5gU5VquُcVJ5#2]rqGQ[!ݜ(9&kZe^qwJPR\B$\`tM!&1{5OXGdC$+Ɓ%oT%/uy"K-aÍĎd cGH,εGƀe[(aL:I͊J5{Ojl<`ڋ4JF 1UjzPԤNq-y .(٘}'V>e c uZD t&|0#!-PV=T+-_|_S'7S&-yLb~[!ǜ[:-׍s( Kz=bUuؑeu&lZ̳YkvUzZ\&rߩUGBKȨN++\dդ/$B9Ŝ ֿٲOjRa3s& EYdW-΀BLDk\?"⭊M7Ne`-tٛoch>W߫oNBH]yC7"S+UnyFQ],֣֊UPn33a\.0U lχӞ:?n nt;= - _qA!B:m! ٪P`Ŵ[f Bl5p 4,Pkk]恃V7د1Kz'ⷖ35 MoQG׌u]xP6{Ǝ2z$|ɟ]6h-nØ7+G?8> QC[ϜY * 8,֓s136ybIKl;q{qͪ5O{!̊UbkJi|D߯\᪪_UcQ#hS1oľ%lA짛_wΛ[4$L9ozσDv4g'7uڿ}H[b#;W= wgۓB{moppl6׫=o+563_F\ݚ |H"^DON/{7t |uȖb6gKF7<݉[ۚ`e=|g[S*#h^μ1 g`Bendstream endobj 33078 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 33079 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 33080 0 obj <> endobj 33081 0 obj <> stream q /X1 Do Q q endstream endobj 33082 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 33083 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 33084 0 obj <> stream H|WkoNa6@`Ӝ_lW%F+ .jF A)Hy4sRсe$!/G1`iYCV(wy so{[e2Np{'w}(Pp2>d#}G1s c>}"ODp0>eS=JK3Bk),bZK1dqCwO1` Fh-Ő%g5Bk),CFh-ŀ%bܳCR Y{Z#bܳ+=+b),CwO1dqZ!KpZkR Y{Z+bZK1d YkZ!KpZkR XBk),=kZK1d YkZKh-Ő%gBk),=kZKsBk),bZK1dqCwO1` Nh-Ő%guBk),C Nh-ŀ%bܳ:C R Y{Z'bܳ:+Ph-ŐS XBk),bS?MSh* bJK:ߨ(|w9+N(fms>Ym`|wy:_|zaG^5N6[uE]ύC8ρM^ب,k+,'OTd`NrͶo2WuUY?Y%:I6Ϊ.o]SJpOmvٶI@b7C_e) ONd٧o^Lʙǿ߿_3HBn-l^MV7&Qink˙ `כ \VO =iW||Aɫ+@w5M-oP瑃q T7u+n«_[WӟnΟ˽woNcx``D6YYΎ 1QO<}\~@|qR?{ 'I6״ uw5tcg)t{&hX@iGQ8 G kDOgۃ.=YZvjUWTY.+H>,*˿aqi~4|(+E?p:'MԽ`J5fku'~Q YbZNrL ZiVȴBA+dZ1HЊV,hL+bZ JiVʴRA+Z&ZCע42aZFb7B),A-{#bX{!Kb7B),A-{#bX{!kQ XB),A -{+bX{!KbB),A -{+bX{!KbB),A ŀ%bX{!KbwB),A -{'bX{!KbwB),A -{'bXC!CעS Y\+4uo~\x }eVp ʺЏt[mr:7f4xȜ{+ _W2-Zg]mRysW8ݿL(_:t,aمV=o^fEElMH,M'\6ժ+JϝfGu>&_6_jhA[.KLri;q+`7{^7zo讇Ѱ* YTmvx0khm5.o 0۔š{bx?~xQĤaO>-›9̙~Bdpa Wn:_ZUECCiݦO9>kaH'&.6v) 1rO)y83i:]wg#v?M|g5:a5|qŋ9? 39-6lǶaT1 C`5Mq7WjH.6o)Y;^tnp-?c`qλ))mjY7ip8$`<ϻb=򔘍S 0&>wxSoaoIGK!}70uWl&zHW;o0 WdtaYk.2dP4[8zͿ'I:dJCȏT=N7N 7,?U Ӹ2wp:Or8*B׷+0j&z8HK[ N*r%EM_yU~A8_y>ϋA*UH@X='`]^*+dldWNg:^LEzQvZ[-)$NuGj4Pg%WN굅zTC7SIlpq[l!9n$g4*>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 33086 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 33087 0 obj <> endobj 33088 0 obj <> stream q /X1 Do Q q endstream endobj 33089 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 33090 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 33091 0 obj <> stream HW]6}fh~c7"]l aQ*K$ǝ{)QD^cAQ^^C^7yjw?F^~跈+3TX$T Ҙ#"F#N cʼ+uY7tM%M cD " '}"d$$a)튺"7wB\|޼e -)T8s17 fNlN_u7.Ei>U4)g_8 s1{=?E r&!WfdGLThRydч(>' 9L$p9!,K#,_;x@ԋ@@ԋ@D@D@D@Bԫ@Bԫ@F@F@F@}1>'$P @}O)> ԧ4P!@}<!k}̲B>,ĵ>fYzP qY>p@\c\+e! ĵ>fYq qY>p@\c\+e! ĵ>fYq",+TcB\c1 e!Jĵ>fYq qY>pD\c\+e!Jĵ>fYq qY>pD\c\+!Rk}̲B>,ĵ>fYzP qY>pB\c\e!*ĵ>fY q qY>pB\c\e!*ĵ>fY q",+TcB\c1 g42E7nћM/pG8|pјqF6~=rs[]^}Ĩd%i)<βqjf5b+),yvNٹa]$d_7PuUmן^AQ f;0͡rWv #Ŝ6᫷KOliIeOGԴ53pӗ`fWbX< f4-eܙy4$eY IjOe>zq7S6]bn*:* uNS7L_r vc[bt!S@ prjO2pI">SyQZd잏2粨KCR8 sxW;۪{ \)' q<{Әݭ_΄CBc!DgLińݒSu5 k*hkmǼmf*:b<2jt<6H^-ݗJIA+#cWNeIëQU{JO뀗, 삼jk$bY*擭^7'.u}ХNR={O4?x,^8^N2M)wVhjƫpK&7|Jn4Īy;r/a8;srar}%kO1زPۛgs]uRR';Q+J :Bkq$e (7ʸ!~5髽=klFߤؠ'S} |BOv< O˙-9T+Bnk -jd jy:7aArbuQܙ:l _)(βW FڴMkӺ:F\Tje3Ǔ*Ha8T# . k>;zj;s uTtm˶#eMVDhr:Vm ⧦ 屺`ߔ|jlg|e_wn_go(K;cOﻃυ'[d[?8<i=Mi% TȾ)k̂ ^g;ø't]\n{SSDW ?CT}J_77grUҵM֤(bQeR tiqaT->/P 640 0 R/Type/Annot/A 33093 0 R/Subtype/Link/Rect[93.6003036 262.348999 225.037003 282.028992]/Border[0 0 0]/H/N>> endobj 33093 0 obj <> endobj 33094 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 33095 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 33096 0 obj <> endobj 33097 0 obj <> stream H\j0E -E{H胦VRC#Y[Z1]K'zy{.fot};|ԌQ&ɞ0Dum0xܬaoQ;{w47Ļ8~ٓuIri:{AOܜi.6xdwJvylZwQkip-#yiCP$8%\WxM^s)S $`! "WK[bݒ5%jJ%k`a _/ȗ#+XW)fʜyGG#{0]!o>#9l~[*JgYtV8+JgYTxV̒tqKooC[ͭ<:wa4a[TȖendstream endobj 33098 0 obj <> stream HtT PW힙~QF3*@~'*("3Ƞ(WkdGWtU 5h!bt\ت} nUS=^wsy4RP4M떇];ϲ!+5h2'fo%F mih:6,CQka&FKj,q)'D$gFҍYLŒ5&dI2& ׭3Dg3 QL%ÐiH4dY鉖4)ٰ85Ôl_`$g7$f$7Jr>sgITcfEфP E (WJQaXGC@G]uq" %ڟl__pLPNâRJV0AL^L<π}Vm_R{_9\h@.1byvkݩwS7Q%Gl;wۙ]9]<ҦaB CXl]B-̍F;q͡6i ;<{O|}^(\0{^aʶ<,jz 68ŏW)&Q4zS٤sմѷl?N}L* dY6kúכ#NEb) qq}ss&=9v$f *H;bWc@v8O`͕z2l%84H蚛p Qkk_" x{b> ">ccY"~@X/9)SNԫRޓ>/~q ˺咱Mm%m;ocw[72}t#qȯW\El6bǫ@ 0 OvBi[[9k[wK]*g=Ettri? ~Ԃj ?&R] w?Xu]p5W8I}P Aofb.' oTD8*? `SqҏBE;i_)]`wַ˪[b,0?6H50ﯗVL^1_'7:KD~0Z:uendstream endobj 33099 0 obj <> endobj 33100 0 obj <> endobj 33101 0 obj <> endobj 33102 0 obj <> stream q /X1 Do Q q endstream endobj 33103 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 33104 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 33105 0 obj <> stream HWmo_C] РQQNp`$bNUNb!9;gg^)xꗗ~R<⇗?eSpI3-̤NC])n%j\ڔmzlCC:"Z_PbqxXD /<,br;”vp׳7nՈvr_>#^>öޕ#4\:L9%LӴHE"aa 6SbR-> %/#Xě,&yxG1>xQD jCTJElr rW*&Om { {7 {7 {7 { { {w {w {w {Y>cgaGs}yľ`a_D=G=>ҬbDKmD36D Pj Q1{jCT̞ŨŰTRj5ZjZjC>RfTKmbGՌj Pj Q HQ-!aV36@16D1#jFԆ(}ZͨڶaTKmSRbԆ=Q-!a06D1#F(FԆ(}ZèŰTkRRj ZjC>RaTKmbTKmbG5j Q HQ-m˨6@16D Q1{jZjC>ReTKmbGj Pj Q HQ-!a26@16D1#ZFԆ(}Z˨ŨŰTkRj-Zj&Q-!*fOmbTKmSb>[!h&/ba~i&\F,lދܵ⹸7U?a5LW=:p&5v]EYZ(`чgE t'Pyz'YG1,c*jUm ծr]o=Up60x=aN] nsU̚mX=*wrʤX!NYdVVw{8wa/0löޕwt~~kk[^mU]? (\0 >6|(ۭ,U{4*\z3u Wy! {"PH:j}\ b4,u@1Y`]>5tjv{>T'ǝFdѪ[L>Zc{]c&4&֫wO)-ժʧ+W ڡ.&KTæV_$k}quFJ @K,@Դa%Kv'NJ : TSih(>)$Qǫݱ|{]?ݒ%[fn>ĬU)`2}ڟCw;>-tK$|$hZWKo*lU-  0o 2c {kI/vUe9bO3VqTnx.2\JRI*yc$T>aƋ0\@ԃ t4u׬1wu b@@wz/6%しv'@< ]S .-sZ<W೟8lܻ# zyplۇd~ ֤ O@k-!@( AC&"ya0^4}@xc"l9Ft8CAKI4ףuɲQ,F O.2(p[8$p׹}*uy66wFH6&VRȩ;iWMo#7 W{5X@ȥ(z\ﮁlb>R$O<)XH='SU88uW N(NAʡqRT$&囨Lq7d4&| U=AT"q$hqce)u+ioﰯ:}6.py96-Qe O+];ԙ=l0% ɬ bg/0*dTd{L)v?@ȕ@[[H~5r  Y}~=_"YU5Gu <vWRs KvL͂8p{ľnN@xh8{Gp{r4{ľAS`. Yџ;1ۄ" =tufp`+-8eM6"-4ބ"D #]p_ނ <$8 $8 7xINRa /9/dUdbBtbL]P]x.Ҩ{nBiK4E-pz~rz::8VC͊F+B4dHhFhƎ( {k8C,B*p25-\y[KAΦjEizZ_s1qϯ=(6f.cIñXҠĺ@rCKl /l DێXP1s &B ▋ ˏ8vyO{^&dRr1je(TQhƙj m .ni iyx՜||k|DҪkvD߬Ah뺵*hQt*Kl8Hyk zCz܋ֻ(CǴuUrFS6ayV L)vKzu[p5E1,6l؄CC9gjS/Λq@41/XюI ccYۍ&k;D{\5EZh)Ds˛S4h*(Ds˛S47hUt Z *i(gPAl 8sNCAlZsO][j@}@sVj. !*?;4xqn̛~:>^vϟvG><|ou? BRv \efk[&w swwendstream endobj 33106 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 33107 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 33108 0 obj <> endobj 33109 0 obj <> stream q /X1 Do Q q endstream endobj 33110 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 33111 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 33112 0 obj <> stream HWio9޿m@i> 䀑`2Lzbweuxe9ǿߪ&(Ic+^xbgϟ_5ŋ_5mnE`+53^V2gUk$uͿئlɚ?bֽڮll..?Hv{߼7sQ1柛A8 L[*gM|)pۊCܛyh]6;7_w/nXm%\7M CL 9&$UJmå6@  J Om{{W{W{W{{{7{7{7{{{w{w{w{{{Lmj[7PmjCT>PmjCT>!*gE6!`VMm"gjSզ6D3JB QLPmjԆ(}ZI6!`VMm"TET+ զ6D3JBm(B Q9(B Q9Ԇ}jԆ(}ZE6!`VMm"TETզ6D3*B PjSjԆ(}ZE6PmjC>S"TETզu զ6DSզ6DSr PjSj5Ԇ(}ZM6PmjC>S&TET զ6@Mm"gՄjSj5(B QLPmjC>S&T֍!TOm"TOmه6F^7/\|TLfτfցq\t*e7raϳg3_w~.2Y/?w7+ˉV)#C3i s}pE҇SI!-Cx1c?xxʶYVj ^?# [>i?~AɒǍva?U箕֋?jz`w# J"?2蠳)g%[)Gt71dǸ~ =)**H<J Y:G'UOq 3aӧ^O?x99u]w[9y 5s2Ҹz֍cժXdž[-Xh=uޅ!| emZڨY/U?*8m.uTc/.pRmuñ]u녋 s&|oh;}"Ů: ڵ`hG~Tsc0#Xcۧp ETh ׹!N2!0QKPUk <$(tL\t3tm_ȸ)( \Es)rl}}` %UeOM h:VݮUvXn蝮KʃOޝ4bX'=Lxר{ix0Bm`0xu3è#UOpߩR3^RN===d~w51\JTB]OIrm?,~;/.TIH;/ܹ}"0Z%aѷ]TBǮ/&d^Ptҭ3ZWgb=4dyh]rp'tRSTGkc/&OYs>J/>KDR#UeST{`Kw-7׆o8HGN5FԞ>1ހczu/ G~4 L&<$2}C'c2|W%U\#L|3/֪XBmmb^DM@c~]G}R'^H}Y_$9l޿_6/[#{K^|_AA¢/߾EB&e|+!|fp{uv;lp޾>?"Nby⑋, y 3:=rVe :ޡnp!ػ\L0y-4>,jC-V}LQ/ vp!=@RZ/u,4Ww>t7qW -g &ۨQx\Q5tp'k:ǛQ2{b qH =q"h'Dj| (IaHŹҋ˦wEvg)³4E^ XQs`cobYۮU3iRԠ;Y-iݗK8#ܔ; ~x[;dfę/zo:xa{`v ?$3Y{7=n< yw^(Lx?/L",+c)ZYJivH)>ECڳ|>!=Y?EnC>:Zbw m~ ˾gӜ3.ҝga 1Qb)c# L@`qtNHarcH4UCczdLOα gj5w!mhFǹcRmU]xuJڻ]7P~HgÆ8:'yyy~X 7% 76|s=*ѧHx.ѥS-SkL~ȑScBXZ;T-:\6~Vf~RUqCmD1?i>`9 Rl0\ny˙9bnV5(%7 :%9_MypҙG#?H=xl_d:/6#Ǩ/z7XKCD2\gД.!n{T)Q2FZP zi% ɃM ܐCi̺ݫ")N8gZ}9EqM6>,RGzVOQrK uF\6HzQ2%siLs]sLEUu,h+dXTGd69UQ +z\#uξFu9 O}p`w,k]:Ͼ>>-??}|%]c:-քMTkMX١#RA*ײV2N[/XaI\%f\ Br隀'i˷' 0ysendstream endobj 33113 0 obj <>/P 5495 0 R/Type/Annot/A 33455 0 R/Subtype/Link/Rect[190 669 202 678]/Border[0 0 0]/H/N>> endobj 33114 0 obj <>/P 5495 0 R/Type/Annot/A 33453 0 R/Subtype/Link/Rect[207 659 224 669]/Border[0 0 0]/H/N>> endobj 33115 0 obj <>/P 5495 0 R/Type/Annot/A 33451 0 R/Subtype/Link/Rect[224 659 238 668]/Border[0 0 0]/H/N>> endobj 33116 0 obj <>/P 5495 0 R/Type/Annot/A 33450 0 R/Subtype/Link/Rect[240 659 254 668]/Border[0 0 0]/H/N>> endobj 33117 0 obj <>/P 5495 0 R/Type/Annot/A 33448 0 R/Subtype/Link/Rect[256 659 270 668]/Border[0 0 0]/H/N>> endobj 33118 0 obj <>/P 5495 0 R/Type/Annot/A 33446 0 R/Subtype/Link/Rect[272 659 286 668]/Border[0 0 0]/H/N>> endobj 33119 0 obj <>/P 5495 0 R/Type/Annot/A 33444 0 R/Subtype/Link/Rect[151 649 168 659]/Border[0 0 0]/H/N>> endobj 33120 0 obj <>/P 5495 0 R/Type/Annot/A 33442 0 R/Subtype/Link/Rect[169 649 183 658]/Border[0 0 0]/H/N>> endobj 33121 0 obj <>/P 5495 0 R/Type/Annot/A 33440 0 R/Subtype/Link/Rect[185 649 199 658]/Border[0 0 0]/H/N>> endobj 33122 0 obj <>/P 5495 0 R/Type/Annot/A 33438 0 R/Subtype/Link/Rect[201 649 215 658]/Border[0 0 0]/H/N>> endobj 33123 0 obj <>/P 5495 0 R/Type/Annot/A 33436 0 R/Subtype/Link/Rect[217 649 231 658]/Border[0 0 0]/H/N>> endobj 33124 0 obj <>/P 5495 0 R/Type/Annot/A 33434 0 R/Subtype/Link/Rect[233 649 245 658]/Border[0 0 0]/H/N>> endobj 33125 0 obj <>/P 5495 0 R/Type/Annot/A 33432 0 R/Subtype/Link/Rect[190 639 207 649]/Border[0 0 0]/H/N>> endobj 33126 0 obj <>/P 5495 0 R/Type/Annot/A 33430 0 R/Subtype/Link/Rect[207 639 219 648]/Border[0 0 0]/H/N>> endobj 33127 0 obj <>/P 5495 0 R/Type/Annot/A 33428 0 R/Subtype/Link/Rect[217 629 231 638]/Border[0 0 0]/H/N>> endobj 33128 0 obj <>/P 5495 0 R/Type/Annot/A 33426 0 R/Subtype/Link/Rect[233 629 245 638]/Border[0 0 0]/H/N>> endobj 33129 0 obj <>/P 5495 0 R/Type/Annot/A 33424 0 R/Subtype/Link/Rect[207 619 224 629]/Border[0 0 0]/H/N>> endobj 33130 0 obj <>/P 5495 0 R/Type/Annot/A 33422 0 R/Subtype/Link/Rect[224 619 238 628]/Border[0 0 0]/H/N>> endobj 33131 0 obj <>/P 5495 0 R/Type/Annot/A 33420 0 R/Subtype/Link/Rect[240 619 254 628]/Border[0 0 0]/H/N>> endobj 33132 0 obj <>/P 5495 0 R/Type/Annot/A 33419 0 R/Subtype/Link/Rect[256 619 273 629]/Border[0 0 0]/H/N>> endobj 33133 0 obj <>/P 5495 0 R/Type/Annot/A 33418 0 R/Subtype/Link/Rect[274 619 288 628]/Border[0 0 0]/H/N>> endobj 33134 0 obj <>/P 5495 0 R/Type/Annot/A 33416 0 R/Subtype/Link/Rect[290 619 304 628]/Border[0 0 0]/H/N>> endobj 33135 0 obj <>/P 5495 0 R/Type/Annot/A 33414 0 R/Subtype/Link/Rect[151 609 165 618]/Border[0 0 0]/H/N>> endobj 33136 0 obj <>/P 5495 0 R/Type/Annot/A 33412 0 R/Subtype/Link/Rect[167 609 181 618]/Border[0 0 0]/H/N>> endobj 33137 0 obj <>/P 5495 0 R/Type/Annot/A 33410 0 R/Subtype/Link/Rect[183 609 195 618]/Border[0 0 0]/H/N>> endobj 33138 0 obj <>/P 5495 0 R/Type/Annot/A 33408 0 R/Subtype/Link/Rect[190 599 202 608]/Border[0 0 0]/H/N>> endobj 33139 0 obj <>/P 5495 0 R/Type/Annot/A 33406 0 R/Subtype/Link/Rect[217 589 231 598]/Border[0 0 0]/H/N>> endobj 33140 0 obj <>/P 5495 0 R/Type/Annot/A 33404 0 R/Subtype/Link/Rect[233 589 245 598]/Border[0 0 0]/H/N>> endobj 33141 0 obj <>/P 5495 0 R/Type/Annot/A 33402 0 R/Subtype/Link/Rect[212 579 224 588]/Border[0 0 0]/H/N>> endobj 33142 0 obj <>/P 5495 0 R/Type/Annot/A 33400 0 R/Subtype/Link/Rect[212 569 224 578]/Border[0 0 0]/H/N>> endobj 33143 0 obj <>/P 5495 0 R/Type/Annot/A 33398 0 R/Subtype/Link/Rect[212 559 222 568]/Border[0 0 0]/H/N>> endobj 33144 0 obj <>/P 5495 0 R/Type/Annot/A 33395 0 R/Subtype/Link/Rect[224 559 238 568]/Border[0 0 0]/H/N>> endobj 33145 0 obj <>/P 5495 0 R/Type/Annot/A 33393 0 R/Subtype/Link/Rect[240 559 254 568]/Border[0 0 0]/H/N>> endobj 33146 0 obj <>/P 5495 0 R/Type/Annot/A 33391 0 R/Subtype/Link/Rect[256 559 272 569]/Border[0 0 0]/H/N>> endobj 33147 0 obj <>/P 5495 0 R/Type/Annot/A 33389 0 R/Subtype/Link/Rect[273 559 287 568]/Border[0 0 0]/H/N>> endobj 33148 0 obj <>/P 5495 0 R/Type/Annot/A 33387 0 R/Subtype/Link/Rect[151 549 168 559]/Border[0 0 0]/H/N>> endobj 33149 0 obj <>/P 5495 0 R/Type/Annot/A 33385 0 R/Subtype/Link/Rect[169 549 181 558]/Border[0 0 0]/H/N>> endobj 33150 0 obj <>/P 5495 0 R/Type/Annot/A 33383 0 R/Subtype/Link/Rect[190 539 202 548]/Border[0 0 0]/H/N>> endobj 33151 0 obj <>/P 5495 0 R/Type/Annot/A 33381 0 R/Subtype/Link/Rect[212 529 226 538]/Border[0 0 0]/H/N>> endobj 33152 0 obj <>/P 5495 0 R/Type/Annot/A 33379 0 R/Subtype/Link/Rect[228 529 240 538]/Border[0 0 0]/H/N>> endobj 33153 0 obj <>/P 5495 0 R/Type/Annot/A 33377 0 R/Subtype/Link/Rect[188 519 204 529]/Border[0 0 0]/H/N>> endobj 33154 0 obj <>/P 5495 0 R/Type/Annot/A 33375 0 R/Subtype/Link/Rect[205 519 219 528]/Border[0 0 0]/H/N>> endobj 33155 0 obj <>/P 5495 0 R/Type/Annot/A 33373 0 R/Subtype/Link/Rect[221 519 233 528]/Border[0 0 0]/H/N>> endobj 33156 0 obj <>/P 5495 0 R/Type/Annot/A 33371 0 R/Subtype/Link/Rect[190 509 202 518]/Border[0 0 0]/H/N>> endobj 33157 0 obj <>/P 5495 0 R/Type/Annot/A 33369 0 R/Subtype/Link/Rect[231 499 245 508]/Border[0 0 0]/H/N>> endobj 33158 0 obj <>/P 5495 0 R/Type/Annot/A 33367 0 R/Subtype/Link/Rect[247 499 261 508]/Border[0 0 0]/H/N>> endobj 33159 0 obj <>/P 5495 0 R/Type/Annot/A 33365 0 R/Subtype/Link/Rect[263 499 275 508]/Border[0 0 0]/H/N>> endobj 33160 0 obj <>/P 5495 0 R/Type/Annot/A 33363 0 R/Subtype/Link/Rect[190 489 202 498]/Border[0 0 0]/H/N>> endobj 33161 0 obj <>/P 5495 0 R/Type/Annot/A 33361 0 R/Subtype/Link/Rect[231 479 245 488]/Border[0 0 0]/H/N>> endobj 33162 0 obj <>/P 5495 0 R/Type/Annot/A 33359 0 R/Subtype/Link/Rect[247 479 261 488]/Border[0 0 0]/H/N>> endobj 33163 0 obj <>/P 5495 0 R/Type/Annot/A 33357 0 R/Subtype/Link/Rect[263 479 275 488]/Border[0 0 0]/H/N>> endobj 33164 0 obj <>/P 5495 0 R/Type/Annot/A 33355 0 R/Subtype/Link/Rect[190 469 202 478]/Border[0 0 0]/H/N>> endobj 33165 0 obj <>/P 5495 0 R/Type/Annot/A 33354 0 R/Subtype/Link/Rect[217 459 231 468]/Border[0 0 0]/H/N>> endobj 33166 0 obj <>/P 5495 0 R/Type/Annot/A 33353 0 R/Subtype/Link/Rect[233 459 247 468]/Border[0 0 0]/H/N>> endobj 33167 0 obj <>/P 5495 0 R/Type/Annot/A 33585 0 R/Subtype/Link/Rect[249 459 261 468]/Border[0 0 0]/H/N>> endobj 33168 0 obj <>/P 5495 0 R/Type/Annot/A 33583 0 R/Subtype/Link/Rect[190 449 202 458]/Border[0 0 0]/H/N>> endobj 33169 0 obj <>/P 5495 0 R/Type/Annot/A 33580 0 R/Subtype/Link/Rect[197 439 209 448]/Border[0 0 0]/H/N>> endobj 33170 0 obj <>/P 5495 0 R/Type/Annot/A 33578 0 R/Subtype/Link/Rect[190 429 202 438]/Border[0 0 0]/H/N>> endobj 33171 0 obj <>/P 5495 0 R/Type/Annot/A 33575 0 R/Subtype/Link/Rect[221 419 235 428]/Border[0 0 0]/H/N>> endobj 33172 0 obj <>/P 5495 0 R/Type/Annot/A 33572 0 R/Subtype/Link/Rect[237 419 249 428]/Border[0 0 0]/H/N>> endobj 33173 0 obj <>/P 5495 0 R/Type/Annot/A 33569 0 R/Subtype/Link/Rect[190 409 202 418]/Border[0 0 0]/H/N>> endobj 33174 0 obj <>/P 5495 0 R/Type/Annot/A 33566 0 R/Subtype/Link/Rect[217 399 231 408]/Border[0 0 0]/H/N>> endobj 33175 0 obj <>/P 5495 0 R/Type/Annot/A 33563 0 R/Subtype/Link/Rect[233 399 249 409]/Border[0 0 0]/H/N>> endobj 33176 0 obj <>/P 5495 0 R/Type/Annot/A 33560 0 R/Subtype/Link/Rect[250 399 262 408]/Border[0 0 0]/H/N>> endobj 33177 0 obj <>/P 5495 0 R/Type/Annot/A 33558 0 R/Subtype/Link/Rect[190 389 202 398]/Border[0 0 0]/H/N>> endobj 33178 0 obj <>/P 5495 0 R/Type/Annot/A 33556 0 R/Subtype/Link/Rect[207 379 219 388]/Border[0 0 0]/H/N>> endobj 33179 0 obj <>/P 5495 0 R/Type/Annot/A 33554 0 R/Subtype/Link/Rect[190 369 202 378]/Border[0 0 0]/H/N>> endobj 33180 0 obj <>/P 5495 0 R/Type/Annot/A 33552 0 R/Subtype/Link/Rect[207 359 221 368]/Border[0 0 0]/H/N>> endobj 33181 0 obj <>/P 5495 0 R/Type/Annot/A 33550 0 R/Subtype/Link/Rect[223 359 235 368]/Border[0 0 0]/H/N>> endobj 33182 0 obj <>/P 5495 0 R/Type/Annot/A 33548 0 R/Subtype/Link/Rect[190 349 202 358]/Border[0 0 0]/H/N>> endobj 33183 0 obj <>/P 5495 0 R/Type/Annot/A 33546 0 R/Subtype/Link/Rect[226 339 240 348]/Border[0 0 0]/H/N>> endobj 33184 0 obj <>/P 5495 0 R/Type/Annot/A 33544 0 R/Subtype/Link/Rect[242 339 256 348]/Border[0 0 0]/H/N>> endobj 33185 0 obj <>/P 5495 0 R/Type/Annot/A 33542 0 R/Subtype/Link/Rect[258 339 272 348]/Border[0 0 0]/H/N>> endobj 33186 0 obj <>/P 5495 0 R/Type/Annot/A 33540 0 R/Subtype/Link/Rect[274 339 288 348]/Border[0 0 0]/H/N>> endobj 33187 0 obj <>/P 5495 0 R/Type/Annot/A 33537 0 R/Subtype/Link/Rect[290 339 302 348]/Border[0 0 0]/H/N>> endobj 33188 0 obj <>/P 5495 0 R/Type/Annot/A 33535 0 R/Subtype/Link/Rect[190 329 202 338]/Border[0 0 0]/H/N>> endobj 33189 0 obj <>/P 5495 0 R/Type/Annot/A 33533 0 R/Subtype/Link/Rect[194 319 208 328]/Border[0 0 0]/H/N>> endobj 33190 0 obj <>/P 5495 0 R/Type/Annot/A 33531 0 R/Subtype/Link/Rect[210 319 226 329]/Border[0 0 0]/H/N>> endobj 33191 0 obj <>/P 5495 0 R/Type/Annot/A 33529 0 R/Subtype/Link/Rect[227 319 241 328]/Border[0 0 0]/H/N>> endobj 33192 0 obj <>/P 5495 0 R/Type/Annot/A 33527 0 R/Subtype/Link/Rect[243 319 257 328]/Border[0 0 0]/H/N>> endobj 33193 0 obj <>/P 5495 0 R/Type/Annot/A 33525 0 R/Subtype/Link/Rect[259 319 271 328]/Border[0 0 0]/H/N>> endobj 33194 0 obj <>/P 5495 0 R/Type/Annot/A 33523 0 R/Subtype/Link/Rect[188 309 200 318]/Border[0 0 0]/H/N>> endobj 33195 0 obj <>/P 5495 0 R/Type/Annot/A 33521 0 R/Subtype/Link/Rect[197 299 207 308]/Border[0 0 0]/H/N>> endobj 33196 0 obj <>/P 5495 0 R/Type/Annot/A 33519 0 R/Subtype/Link/Rect[209 299 223 308]/Border[0 0 0]/H/N>> endobj 33197 0 obj <>/P 5495 0 R/Type/Annot/A 33517 0 R/Subtype/Link/Rect[225 299 239 308]/Border[0 0 0]/H/N>> endobj 33198 0 obj <>/P 5495 0 R/Type/Annot/A 33515 0 R/Subtype/Link/Rect[241 299 255 308]/Border[0 0 0]/H/N>> endobj 33199 0 obj <>/P 5495 0 R/Type/Annot/A 33513 0 R/Subtype/Link/Rect[257 299 274 309]/Border[0 0 0]/H/N>> endobj 33200 0 obj <>/P 5495 0 R/Type/Annot/A 33511 0 R/Subtype/Link/Rect[275 299 289 308]/Border[0 0 0]/H/N>> endobj 33201 0 obj <>/P 5495 0 R/Type/Annot/A 33509 0 R/Subtype/Link/Rect[291 299 303 308]/Border[0 0 0]/H/N>> endobj 33202 0 obj <>/P 5495 0 R/Type/Annot/A 33507 0 R/Subtype/Link/Rect[190 289 202 298]/Border[0 0 0]/H/N>> endobj 33203 0 obj <>/P 5495 0 R/Type/Annot/A 33505 0 R/Subtype/Link/Rect[212 279 226 288]/Border[0 0 0]/H/N>> endobj 33204 0 obj <>/P 5495 0 R/Type/Annot/A 33503 0 R/Subtype/Link/Rect[228 279 240 288]/Border[0 0 0]/H/N>> endobj 33205 0 obj <>/P 5495 0 R/Type/Annot/A 33501 0 R/Subtype/Link/Rect[207 269 221 278]/Border[0 0 0]/H/N>> endobj 33206 0 obj <>/P 5495 0 R/Type/Annot/A 33499 0 R/Subtype/Link/Rect[223 269 235 278]/Border[0 0 0]/H/N>> endobj 33207 0 obj <>/P 5495 0 R/Type/Annot/A 33497 0 R/Subtype/Link/Rect[217 259 231 268]/Border[0 0 0]/H/N>> endobj 33208 0 obj <>/P 5495 0 R/Type/Annot/A 33495 0 R/Subtype/Link/Rect[233 259 245 268]/Border[0 0 0]/H/N>> endobj 33209 0 obj <>/P 5495 0 R/Type/Annot/A 33493 0 R/Subtype/Link/Rect[198 249 210 258]/Border[0 0 0]/H/N>> endobj 33210 0 obj <>/P 5495 0 R/Type/Annot/A 33491 0 R/Subtype/Link/Rect[193 239 205 248]/Border[0 0 0]/H/N>> endobj 33211 0 obj <>/P 5495 0 R/Type/Annot/A 33489 0 R/Subtype/Link/Rect[207 229 219 238]/Border[0 0 0]/H/N>> endobj 33212 0 obj <>/P 5495 0 R/Type/Annot/A 33487 0 R/Subtype/Link/Rect[202 219 214 228]/Border[0 0 0]/H/N>> endobj 33213 0 obj <>/P 5495 0 R/Type/Annot/A 33485 0 R/Subtype/Link/Rect[185 209 197 218]/Border[0 0 0]/H/N>> endobj 33214 0 obj <>/P 5495 0 R/Type/Annot/A 33483 0 R/Subtype/Link/Rect[196 189 204 198]/Border[0 0 0]/H/N>> endobj 33215 0 obj <>/P 5495 0 R/Type/Annot/A 33481 0 R/Subtype/Link/Rect[183 179 197 188]/Border[0 0 0]/H/N>> endobj 33216 0 obj <>/P 5495 0 R/Type/Annot/A 33479 0 R/Subtype/Link/Rect[199 179 213 188]/Border[0 0 0]/H/N>> endobj 33217 0 obj <>/P 5495 0 R/Type/Annot/A 33477 0 R/Subtype/Link/Rect[215 179 227 188]/Border[0 0 0]/H/N>> endobj 33218 0 obj <>/P 5495 0 R/Type/Annot/A 33475 0 R/Subtype/Link/Rect[188 159 200 168]/Border[0 0 0]/H/N>> endobj 33219 0 obj <>/P 5495 0 R/Type/Annot/A 33472 0 R/Subtype/Link/Rect[191 149 203 158]/Border[0 0 0]/H/N>> endobj 33220 0 obj <>/P 5495 0 R/Type/Annot/A 33471 0 R/Subtype/Link/Rect[409 669 417 678]/Border[0 0 0]/H/N>> endobj 33221 0 obj <>/P 5495 0 R/Type/Annot/A 33470 0 R/Subtype/Link/Rect[405 659 422 669]/Border[0 0 0]/H/N>> endobj 33222 0 obj <>/P 5495 0 R/Type/Annot/A 33469 0 R/Subtype/Link/Rect[423 659 437 668]/Border[0 0 0]/H/N>> endobj 33223 0 obj <>/P 5495 0 R/Type/Annot/A 33468 0 R/Subtype/Link/Rect[439 659 451 668]/Border[0 0 0]/H/N>> endobj 33224 0 obj <>/P 5495 0 R/Type/Annot/A 33467 0 R/Subtype/Link/Rect[398 649 410 658]/Border[0 0 0]/H/N>> endobj 33225 0 obj <>/P 5495 0 R/Type/Annot/A 33466 0 R/Subtype/Link/Rect[415 639 427 648]/Border[0 0 0]/H/N>> endobj 33226 0 obj <>/P 5495 0 R/Type/Annot/A 33465 0 R/Subtype/Link/Rect[363 629 369 638]/Border[0 0 0]/H/N>> endobj 33227 0 obj <>/P 5495 0 R/Type/Annot/A 33464 0 R/Subtype/Link/Rect[371 629 385 638]/Border[0 0 0]/H/N>> endobj 33228 0 obj <>/P 5495 0 R/Type/Annot/A 33463 0 R/Subtype/Link/Rect[387 629 399 638]/Border[0 0 0]/H/N>> endobj 33229 0 obj <>/P 5495 0 R/Type/Annot/A 33462 0 R/Subtype/Link/Rect[415 619 423 628]/Border[0 0 0]/H/N>> endobj 33230 0 obj <>/P 5495 0 R/Type/Annot/A 33461 0 R/Subtype/Link/Rect[392 599 406 608]/Border[0 0 0]/H/N>> endobj 33231 0 obj <>/P 5495 0 R/Type/Annot/A 33460 0 R/Subtype/Link/Rect[408 599 420 608]/Border[0 0 0]/H/N>> endobj 33232 0 obj <>/P 5495 0 R/Type/Annot/A 33459 0 R/Subtype/Link/Rect[369 589 381 598]/Border[0 0 0]/H/N>> endobj 33233 0 obj <>/P 5495 0 R/Type/Annot/A 33458 0 R/Subtype/Link/Rect[394 579 410 589]/Border[0 0 0]/H/N>> endobj 33234 0 obj <>/P 5495 0 R/Type/Annot/A 33457 0 R/Subtype/Link/Rect[411 579 425 588]/Border[0 0 0]/H/N>> endobj 33235 0 obj <>/P 5495 0 R/Type/Annot/A 33456 0 R/Subtype/Link/Rect[427 579 444 589]/Border[0 0 0]/H/N>> endobj 33236 0 obj <>/P 5495 0 R/Type/Annot/A 33454 0 R/Subtype/Link/Rect[444 579 456 588]/Border[0 0 0]/H/N>> endobj 33237 0 obj <>/P 5495 0 R/Type/Annot/A 33452 0 R/Subtype/Link/Rect[410 559 427 569]/Border[0 0 0]/H/N>> endobj 33238 0 obj <>/P 5495 0 R/Type/Annot/A 42215 0 R/Subtype/Link/Rect[427 559 439 568]/Border[0 0 0]/H/N>> endobj 33239 0 obj <>/P 5495 0 R/Type/Annot/A 33449 0 R/Subtype/Link/Rect[398 549 410 558]/Border[0 0 0]/H/N>> endobj 33240 0 obj <>/P 5495 0 R/Type/Annot/A 33447 0 R/Subtype/Link/Rect[397 539 407 548]/Border[0 0 0]/H/N>> endobj 33241 0 obj <>/P 5495 0 R/Type/Annot/A 33445 0 R/Subtype/Link/Rect[409 539 423 548]/Border[0 0 0]/H/N>> endobj 33242 0 obj <>/P 5495 0 R/Type/Annot/A 33443 0 R/Subtype/Link/Rect[425 539 439 548]/Border[0 0 0]/H/N>> endobj 33243 0 obj <>/P 5495 0 R/Type/Annot/A 33441 0 R/Subtype/Link/Rect[441 539 455 548]/Border[0 0 0]/H/N>> endobj 33244 0 obj <>/P 5495 0 R/Type/Annot/A 33439 0 R/Subtype/Link/Rect[457 539 474 549]/Border[0 0 0]/H/N>> endobj 33245 0 obj <>/P 5495 0 R/Type/Annot/A 33437 0 R/Subtype/Link/Rect[474 539 486 548]/Border[0 0 0]/H/N>> endobj 33246 0 obj <>/P 5495 0 R/Type/Annot/A 33435 0 R/Subtype/Link/Rect[378 529 395 539]/Border[0 0 0]/H/N>> endobj 33247 0 obj <>/P 5495 0 R/Type/Annot/A 33433 0 R/Subtype/Link/Rect[395 529 407 538]/Border[0 0 0]/H/N>> endobj 33248 0 obj <>/P 5495 0 R/Type/Annot/A 33431 0 R/Subtype/Link/Rect[376 519 386 528]/Border[0 0 0]/H/N>> endobj 33249 0 obj <>/P 5495 0 R/Type/Annot/A 33429 0 R/Subtype/Link/Rect[388 519 405 529]/Border[0 0 0]/H/N>> endobj 33250 0 obj <>/P 5495 0 R/Type/Annot/A 33427 0 R/Subtype/Link/Rect[405 519 417 528]/Border[0 0 0]/H/N>> endobj 33251 0 obj <>/P 5495 0 R/Type/Annot/A 33425 0 R/Subtype/Link/Rect[384 509 397 519]/Border[0 0 0]/H/N>> endobj 33252 0 obj <>/P 5495 0 R/Type/Annot/A 33423 0 R/Subtype/Link/Rect[397 509 407 518]/Border[0 0 0]/H/N>> endobj 33253 0 obj <>/P 5495 0 R/Type/Annot/A 33421 0 R/Subtype/Link/Rect[409 509 426 519]/Border[0 0 0]/H/N>> endobj 33254 0 obj <>/P 5495 0 R/Type/Annot/A 33397 0 R/Subtype/Link/Rect[427 509 441 518]/Border[0 0 0]/H/N>> endobj 33255 0 obj <>/P 5495 0 R/Type/Annot/A 33417 0 R/Subtype/Link/Rect[443 509 457 518]/Border[0 0 0]/H/N>> endobj 33256 0 obj <>/P 5495 0 R/Type/Annot/A 33415 0 R/Subtype/Link/Rect[459 509 472 518]/Border[0 0 0]/H/N>> endobj 33257 0 obj <>/P 5495 0 R/Type/Annot/A 33413 0 R/Subtype/Link/Rect[474 509 488 518]/Border[0 0 0]/H/N>> endobj 33258 0 obj <>/P 5495 0 R/Type/Annot/A 33411 0 R/Subtype/Link/Rect[490 509 504 518]/Border[0 0 0]/H/N>> endobj 33259 0 obj <>/P 5495 0 R/Type/Annot/A 33409 0 R/Subtype/Link/Rect[359 499 373 508]/Border[0 0 0]/H/N>> endobj 33260 0 obj <>/P 5495 0 R/Type/Annot/A 33407 0 R/Subtype/Link/Rect[375 499 389 508]/Border[0 0 0]/H/N>> endobj 33261 0 obj <>/P 5495 0 R/Type/Annot/A 33405 0 R/Subtype/Link/Rect[391 499 405 508]/Border[0 0 0]/H/N>> endobj 33262 0 obj <>/P 5495 0 R/Type/Annot/A 33403 0 R/Subtype/Link/Rect[407 499 421 508]/Border[0 0 0]/H/N>> endobj 33263 0 obj <>/P 5495 0 R/Type/Annot/A 33401 0 R/Subtype/Link/Rect[423 499 437 508]/Border[0 0 0]/H/N>> endobj 33264 0 obj <>/P 5495 0 R/Type/Annot/A 33399 0 R/Subtype/Link/Rect[439 499 451 508]/Border[0 0 0]/H/N>> endobj 33265 0 obj <>/P 5495 0 R/Type/Annot/A 33396 0 R/Subtype/Link/Rect[368 489 378 498]/Border[0 0 0]/H/N>> endobj 33266 0 obj <>/P 5495 0 R/Type/Annot/A 33394 0 R/Subtype/Link/Rect[380 489 394 498]/Border[0 0 0]/H/N>> endobj 33267 0 obj <>/P 5495 0 R/Type/Annot/A 33392 0 R/Subtype/Link/Rect[396 489 410 498]/Border[0 0 0]/H/N>> endobj 33268 0 obj <>/P 5495 0 R/Type/Annot/A 33390 0 R/Subtype/Link/Rect[412 489 426 498]/Border[0 0 0]/H/N>> endobj 33269 0 obj <>/P 5495 0 R/Type/Annot/A 33388 0 R/Subtype/Link/Rect[428 489 442 498]/Border[0 0 0]/H/N>> endobj 33270 0 obj <>/P 5495 0 R/Type/Annot/A 33386 0 R/Subtype/Link/Rect[444 489 460 499]/Border[0 0 0]/H/N>> endobj 33271 0 obj <>/P 5495 0 R/Type/Annot/A 33384 0 R/Subtype/Link/Rect[461 489 475 498]/Border[0 0 0]/H/N>> endobj 33272 0 obj <>/P 5495 0 R/Type/Annot/A 33382 0 R/Subtype/Link/Rect[477 489 491 498]/Border[0 0 0]/H/N>> endobj 33273 0 obj <>/P 5495 0 R/Type/Annot/A 33380 0 R/Subtype/Link/Rect[493 489 507 498]/Border[0 0 0]/H/N>> endobj 33274 0 obj <>/P 5495 0 R/Type/Annot/A 33378 0 R/Subtype/Link/Rect[359 479 371 488]/Border[0 0 0]/H/N>> endobj 33275 0 obj <>/P 5495 0 R/Type/Annot/A 33376 0 R/Subtype/Link/Rect[407 469 417 478]/Border[0 0 0]/H/N>> endobj 33276 0 obj <>/P 5495 0 R/Type/Annot/A 33374 0 R/Subtype/Link/Rect[419 469 429 478]/Border[0 0 0]/H/N>> endobj 33277 0 obj <>/P 5495 0 R/Type/Annot/A 33372 0 R/Subtype/Link/Rect[431 469 441 478]/Border[0 0 0]/H/N>> endobj 33278 0 obj <>/P 5495 0 R/Type/Annot/A 33370 0 R/Subtype/Link/Rect[443 469 457 478]/Border[0 0 0]/H/N>> endobj 33279 0 obj <>/P 5495 0 R/Type/Annot/A 33368 0 R/Subtype/Link/Rect[459 469 473 478]/Border[0 0 0]/H/N>> endobj 33280 0 obj <>/P 5495 0 R/Type/Annot/A 33366 0 R/Subtype/Link/Rect[475 469 489 478]/Border[0 0 0]/H/N>> endobj 33281 0 obj <>/P 5495 0 R/Type/Annot/A 33364 0 R/Subtype/Link/Rect[359 459 376 469]/Border[0 0 0]/H/N>> endobj 33282 0 obj <>/P 5495 0 R/Type/Annot/A 33362 0 R/Subtype/Link/Rect[377 459 391 468]/Border[0 0 0]/H/N>> endobj 33283 0 obj <>/P 5495 0 R/Type/Annot/A 33360 0 R/Subtype/Link/Rect[393 459 407 468]/Border[0 0 0]/H/N>> endobj 33284 0 obj <>/P 5495 0 R/Type/Annot/A 33358 0 R/Subtype/Link/Rect[409 459 423 468]/Border[0 0 0]/H/N>> endobj 33285 0 obj <>/P 5495 0 R/Type/Annot/A 33356 0 R/Subtype/Link/Rect[425 459 437 468]/Border[0 0 0]/H/N>> endobj 33286 0 obj <>/P 5495 0 R/Type/Annot/A 33581 0 R/Subtype/Link/Rect[403 449 415 458]/Border[0 0 0]/H/N>> endobj 33287 0 obj <>/P 5495 0 R/Type/Annot/A 33352 0 R/Subtype/Link/Rect[404 439 414 448]/Border[0 0 0]/H/N>> endobj 33288 0 obj <>/P 5495 0 R/Type/Annot/A 33576 0 R/Subtype/Link/Rect[416 439 430 448]/Border[0 0 0]/H/N>> endobj 33289 0 obj <>/P 5495 0 R/Type/Annot/A 33573 0 R/Subtype/Link/Rect[432 439 444 448]/Border[0 0 0]/H/N>> endobj 33290 0 obj <>/P 5495 0 R/Type/Annot/A 33570 0 R/Subtype/Link/Rect[420 429 434 438]/Border[0 0 0]/H/N>> endobj 33291 0 obj <>/P 5495 0 R/Type/Annot/A 33567 0 R/Subtype/Link/Rect[436 429 448 438]/Border[0 0 0]/H/N>> endobj 33292 0 obj <>/P 5495 0 R/Type/Annot/A 33564 0 R/Subtype/Link/Rect[360 391 374 400]/Border[0 0 0]/H/N>> endobj 33293 0 obj <>/P 5495 0 R/Type/Annot/A 33561 0 R/Subtype/Link/Rect[376 391 388 400]/Border[0 0 0]/H/N>> endobj 33294 0 obj <>/P 5495 0 R/Type/Annot/A 33591 0 R/Subtype/Link/Rect[406 381 418 390]/Border[0 0 0]/H/N>> endobj 33295 0 obj <>/P 5495 0 R/Type/Annot/A 33588 0 R/Subtype/Link/Rect[444 371 458 380]/Border[0 0 0]/H/N>> endobj 33296 0 obj <>/P 5495 0 R/Type/Annot/A 33587 0 R/Subtype/Link/Rect[460 371 476 381]/Border[0 0 0]/H/N>> endobj 33297 0 obj <>/P 5495 0 R/Type/Annot/A 33586 0 R/Subtype/Link/Rect[477 371 491 380]/Border[0 0 0]/H/N>> endobj 33298 0 obj <>/P 5495 0 R/Type/Annot/A 33584 0 R/Subtype/Link/Rect[493 371 505 380]/Border[0 0 0]/H/N>> endobj 33299 0 obj <>/P 5495 0 R/Type/Annot/A 33582 0 R/Subtype/Link/Rect[398 361 412 370]/Border[0 0 0]/H/N>> endobj 33300 0 obj <>/P 5495 0 R/Type/Annot/A 33579 0 R/Subtype/Link/Rect[414 361 426 370]/Border[0 0 0]/H/N>> endobj 33301 0 obj <>/P 5495 0 R/Type/Annot/A 33577 0 R/Subtype/Link/Rect[376 351 382 360]/Border[0 0 0]/H/N>> endobj 33302 0 obj <>/P 5495 0 R/Type/Annot/A 33574 0 R/Subtype/Link/Rect[384 351 397 360]/Border[0 0 0]/H/N>> endobj 33303 0 obj <>/P 5495 0 R/Type/Annot/A 33571 0 R/Subtype/Link/Rect[399 351 413 360]/Border[0 0 0]/H/N>> endobj 33304 0 obj <>/P 5495 0 R/Type/Annot/A 33568 0 R/Subtype/Link/Rect[415 351 429 360]/Border[0 0 0]/H/N>> endobj 33305 0 obj <>/P 5495 0 R/Type/Annot/A 33565 0 R/Subtype/Link/Rect[431 351 443 360]/Border[0 0 0]/H/N>> endobj 33306 0 obj <>/P 5495 0 R/Type/Annot/A 33562 0 R/Subtype/Link/Rect[434 341 448 350]/Border[0 0 0]/H/N>> endobj 33307 0 obj <>/P 5495 0 R/Type/Annot/A 33559 0 R/Subtype/Link/Rect[450 341 462 350]/Border[0 0 0]/H/N>> endobj 33308 0 obj <>/P 5495 0 R/Type/Annot/A 33557 0 R/Subtype/Link/Rect[410 331 422 340]/Border[0 0 0]/H/N>> endobj 33309 0 obj <>/P 5495 0 R/Type/Annot/A 33555 0 R/Subtype/Link/Rect[415 321 427 330]/Border[0 0 0]/H/N>> endobj 33310 0 obj <>/P 5495 0 R/Type/Annot/A 33553 0 R/Subtype/Link/Rect[384 301 392 310]/Border[0 0 0]/H/N>> endobj 33311 0 obj <>/P 5495 0 R/Type/Annot/A 33551 0 R/Subtype/Link/Rect[410 291 418 300]/Border[0 0 0]/H/N>> endobj 33312 0 obj <>/P 5495 0 R/Type/Annot/A 33549 0 R/Subtype/Link/Rect[386 281 394 290]/Border[0 0 0]/H/N>> endobj 33313 0 obj <>/P 5495 0 R/Type/Annot/A 33547 0 R/Subtype/Link/Rect[392 271 400 280]/Border[0 0 0]/H/N>> endobj 33314 0 obj <>/P 5495 0 R/Type/Annot/A 33545 0 R/Subtype/Link/Rect[361 261 373 270]/Border[0 0 0]/H/N>> endobj 33315 0 obj <>/P 5495 0 R/Type/Annot/A 33543 0 R/Subtype/Link/Rect[402 251 414 260]/Border[0 0 0]/H/N>> endobj 33316 0 obj <>/P 5495 0 R/Type/Annot/A 33541 0 R/Subtype/Link/Rect[404 241 414 250]/Border[0 0 0]/H/N>> endobj 33317 0 obj <>/P 5495 0 R/Type/Annot/A 33539 0 R/Subtype/Link/Rect[416 241 428 250]/Border[0 0 0]/H/N>> endobj 33318 0 obj <>/P 5495 0 R/Type/Annot/A 33538 0 R/Subtype/Link/Rect[399 231 409 240]/Border[0 0 0]/H/N>> endobj 33319 0 obj <>/P 5495 0 R/Type/Annot/A 33536 0 R/Subtype/Link/Rect[411 231 425 240]/Border[0 0 0]/H/N>> endobj 33320 0 obj <>/P 5495 0 R/Type/Annot/A 33534 0 R/Subtype/Link/Rect[427 231 438 240]/Border[0 0 0]/H/N>> endobj 33321 0 obj <>/P 5495 0 R/Type/Annot/A 33532 0 R/Subtype/Link/Rect[377 211 390 221]/Border[0 0 0]/H/N>> endobj 33322 0 obj <>/P 5495 0 R/Type/Annot/A 33530 0 R/Subtype/Link/Rect[390 211 400 220]/Border[0 0 0]/H/N>> endobj 33323 0 obj <>/P 5495 0 R/Type/Annot/A 33528 0 R/Subtype/Link/Rect[402 211 418 221]/Border[0 0 0]/H/N>> endobj 33324 0 obj <>/P 5495 0 R/Type/Annot/A 33526 0 R/Subtype/Link/Rect[419 211 430 220]/Border[0 0 0]/H/N>> endobj 33325 0 obj <>/P 5495 0 R/Type/Annot/A 33524 0 R/Subtype/Link/Rect[397 201 403 210]/Border[0 0 0]/H/N>> endobj 33326 0 obj <>/P 5495 0 R/Type/Annot/A 33522 0 R/Subtype/Link/Rect[405 201 411 210]/Border[0 0 0]/H/N>> endobj 33327 0 obj <>/P 5495 0 R/Type/Annot/A 33520 0 R/Subtype/Link/Rect[413 201 427 210]/Border[0 0 0]/H/N>> endobj 33328 0 obj <>/P 5495 0 R/Type/Annot/A 33518 0 R/Subtype/Link/Rect[429 201 442 210]/Border[0 0 0]/H/N>> endobj 33329 0 obj <>/P 5495 0 R/Type/Annot/A 33516 0 R/Subtype/Link/Rect[444 201 458 210]/Border[0 0 0]/H/N>> endobj 33330 0 obj <>/P 5495 0 R/Type/Annot/A 33514 0 R/Subtype/Link/Rect[460 201 472 210]/Border[0 0 0]/H/N>> endobj 33331 0 obj <>/P 5495 0 R/Type/Annot/A 33512 0 R/Subtype/Link/Rect[442 191 459 201]/Border[0 0 0]/H/N>> endobj 33332 0 obj <>/P 5495 0 R/Type/Annot/A 33510 0 R/Subtype/Link/Rect[460 191 473 200]/Border[0 0 0]/H/N>> endobj 33333 0 obj <>/P 5495 0 R/Type/Annot/A 33508 0 R/Subtype/Link/Rect[475 191 487 200]/Border[0 0 0]/H/N>> endobj 33334 0 obj <>/P 5495 0 R/Type/Annot/A 33506 0 R/Subtype/Link/Rect[412 171 424 180]/Border[0 0 0]/H/N>> endobj 33335 0 obj <>/P 5495 0 R/Type/Annot/A 33504 0 R/Subtype/Link/Rect[416 161 428 170]/Border[0 0 0]/H/N>> endobj 33336 0 obj <>/P 5495 0 R/Type/Annot/A 33502 0 R/Subtype/Link/Rect[439 151 449 160]/Border[0 0 0]/H/N>> endobj 33337 0 obj <>/P 5495 0 R/Type/Annot/A 33500 0 R/Subtype/Link/Rect[451 151 461 160]/Border[0 0 0]/H/N>> endobj 33338 0 obj <>/P 5495 0 R/Type/Annot/A 33498 0 R/Subtype/Link/Rect[463 151 473 160]/Border[0 0 0]/H/N>> endobj 33339 0 obj <>/P 5495 0 R/Type/Annot/A 33496 0 R/Subtype/Link/Rect[475 151 489 160]/Border[0 0 0]/H/N>> endobj 33340 0 obj <>/P 5495 0 R/Type/Annot/A 33494 0 R/Subtype/Link/Rect[359 141 376 151]/Border[0 0 0]/H/N>> endobj 33341 0 obj <>/P 5495 0 R/Type/Annot/A 33492 0 R/Subtype/Link/Rect[377 141 391 150]/Border[0 0 0]/H/N>> endobj 33342 0 obj <>/P 5495 0 R/Type/Annot/A 33490 0 R/Subtype/Link/Rect[393 141 409 151]/Border[0 0 0]/H/N>> endobj 33343 0 obj <>/P 5495 0 R/Type/Annot/A 33488 0 R/Subtype/Link/Rect[410 141 424 150]/Border[0 0 0]/H/N>> endobj 33344 0 obj <>/P 5495 0 R/Type/Annot/A 33486 0 R/Subtype/Link/Rect[426 141 440 150]/Border[0 0 0]/H/N>> endobj 33345 0 obj <>/P 5495 0 R/Type/Annot/A 33484 0 R/Subtype/Link/Rect[442 141 454 150]/Border[0 0 0]/H/N>> endobj 33346 0 obj <>/P 5495 0 R/Type/Annot/A 33482 0 R/Subtype/Link/Rect[387 608 404 617]/Border[0 0 0]/H/N>> endobj 33347 0 obj <>/P 5495 0 R/Type/Annot/A 33480 0 R/Subtype/Link/Rect[379 568 396 577]/Border[0 0 0]/H/N>> endobj 33348 0 obj <>/P 5495 0 R/Type/Annot/A 33478 0 R/Subtype/Link/Rect[381 250 400 259]/Border[0 0 0]/H/N>> endobj 33349 0 obj <>/P 5495 0 R/Type/Annot/A 33476 0 R/Subtype/Link/Rect[385 220 402 229]/Border[0 0 0]/H/N>> endobj 33350 0 obj <>/P 5495 0 R/Type/Annot/A 33474 0 R/Subtype/Link/Rect[393 180 410 189]/Border[0 0 0]/H/N>> endobj 33351 0 obj <>/P 5495 0 R/Type/Annot/A 33473 0 R/Subtype/Link/Rect[174 168 191 177]/Border[0 0 0]/H/N>> endobj 33352 0 obj <> endobj 33353 0 obj <> endobj 33354 0 obj <> endobj 33355 0 obj <> endobj 33356 0 obj <> endobj 33357 0 obj <> endobj 33358 0 obj <> endobj 33359 0 obj <> endobj 33360 0 obj <> endobj 33361 0 obj <> endobj 33362 0 obj <> endobj 33363 0 obj <> endobj 33364 0 obj <> endobj 33365 0 obj <> endobj 33366 0 obj <> endobj 33367 0 obj <> endobj 33368 0 obj <> endobj 33369 0 obj <> endobj 33370 0 obj <> endobj 33371 0 obj <> endobj 33372 0 obj <> endobj 33373 0 obj <> endobj 33374 0 obj <> endobj 33375 0 obj <> endobj 33376 0 obj <> endobj 33377 0 obj <> endobj 33378 0 obj <> endobj 33379 0 obj <> endobj 33380 0 obj <> endobj 33381 0 obj <> endobj 33382 0 obj <> endobj 33383 0 obj <> endobj 33384 0 obj <> endobj 33385 0 obj <> endobj 33386 0 obj <> endobj 33387 0 obj <> endobj 33388 0 obj <> endobj 33389 0 obj <> endobj 33390 0 obj <> endobj 33391 0 obj <> endobj 33392 0 obj <> endobj 33393 0 obj <> endobj 33394 0 obj <> endobj 33395 0 obj <> endobj 33396 0 obj <> endobj 33397 0 obj <> endobj 33398 0 obj <> endobj 33399 0 obj <> endobj 33400 0 obj <> endobj 33401 0 obj <> endobj 33402 0 obj <> endobj 33403 0 obj <> endobj 33404 0 obj <> endobj 33405 0 obj <> endobj 33406 0 obj <> endobj 33407 0 obj <> endobj 33408 0 obj <> endobj 33409 0 obj <> endobj 33410 0 obj <> endobj 33411 0 obj <> endobj 33412 0 obj <> endobj 33413 0 obj <> endobj 33414 0 obj <> endobj 33415 0 obj <> endobj 33416 0 obj <> endobj 33417 0 obj <> endobj 33418 0 obj <> endobj 33419 0 obj <> endobj 33420 0 obj <> endobj 33421 0 obj <> endobj 33422 0 obj <> endobj 33423 0 obj <> endobj 33424 0 obj <> endobj 33425 0 obj <> endobj 33426 0 obj <> endobj 33427 0 obj <> endobj 33428 0 obj <> endobj 33429 0 obj <> endobj 33430 0 obj <> endobj 33431 0 obj <> endobj 33432 0 obj <> endobj 33433 0 obj <> endobj 33434 0 obj <> endobj 33435 0 obj <> endobj 33436 0 obj <> endobj 33437 0 obj <> endobj 33438 0 obj <> endobj 33439 0 obj <> endobj 33440 0 obj <> endobj 33441 0 obj <> endobj 33442 0 obj <> endobj 33443 0 obj <> endobj 33444 0 obj <> endobj 33445 0 obj <> endobj 33446 0 obj <> endobj 33447 0 obj <> endobj 33448 0 obj <> endobj 33449 0 obj <> endobj 33450 0 obj <> endobj 33451 0 obj <> endobj 33452 0 obj <> endobj 33453 0 obj <> endobj 33454 0 obj <> endobj 33455 0 obj <> endobj 33456 0 obj <> endobj 33457 0 obj <> endobj 33458 0 obj <> endobj 33459 0 obj <> endobj 33460 0 obj <> endobj 33461 0 obj <> endobj 33462 0 obj <> endobj 33463 0 obj <> endobj 33464 0 obj <> endobj 33465 0 obj <> endobj 33466 0 obj <> endobj 33467 0 obj <> endobj 33468 0 obj <> endobj 33469 0 obj <> endobj 33470 0 obj <> endobj 33471 0 obj <> endobj 33472 0 obj <> endobj 33473 0 obj <> endobj 33474 0 obj <> endobj 33475 0 obj <> endobj 33476 0 obj <> endobj 33477 0 obj <> endobj 33478 0 obj <> endobj 33479 0 obj <> endobj 33480 0 obj <> endobj 33481 0 obj <> endobj 33482 0 obj <> endobj 33483 0 obj <> endobj 33484 0 obj <> endobj 33485 0 obj <> endobj 33486 0 obj <> endobj 33487 0 obj <> endobj 33488 0 obj <> endobj 33489 0 obj <> endobj 33490 0 obj <> endobj 33491 0 obj <> endobj 33492 0 obj <> endobj 33493 0 obj <> endobj 33494 0 obj <> endobj 33495 0 obj <> endobj 33496 0 obj <> endobj 33497 0 obj <> endobj 33498 0 obj <> endobj 33499 0 obj <> endobj 33500 0 obj <> endobj 33501 0 obj <> endobj 33502 0 obj <> endobj 33503 0 obj <> endobj 33504 0 obj <> endobj 33505 0 obj <> endobj 33506 0 obj <> endobj 33507 0 obj <> endobj 33508 0 obj <> endobj 33509 0 obj <> endobj 33510 0 obj <> endobj 33511 0 obj <> endobj 33512 0 obj <> endobj 33513 0 obj <> endobj 33514 0 obj <> endobj 33515 0 obj <> endobj 33516 0 obj <> endobj 33517 0 obj <> endobj 33518 0 obj <> endobj 33519 0 obj <> endobj 33520 0 obj <> endobj 33521 0 obj <> endobj 33522 0 obj <> endobj 33523 0 obj <> endobj 33524 0 obj <> endobj 33525 0 obj <> endobj 33526 0 obj <> endobj 33527 0 obj <> endobj 33528 0 obj <> endobj 33529 0 obj <> endobj 33530 0 obj <> endobj 33531 0 obj <> endobj 33532 0 obj <> endobj 33533 0 obj <> endobj 33534 0 obj <> endobj 33535 0 obj <> endobj 33536 0 obj <> endobj 33537 0 obj <> endobj 33538 0 obj <> endobj 33539 0 obj <> endobj 33540 0 obj <> endobj 33541 0 obj <> endobj 33542 0 obj <> endobj 33543 0 obj <> endobj 33544 0 obj <> endobj 33545 0 obj <> endobj 33546 0 obj <> endobj 33547 0 obj <> endobj 33548 0 obj <> endobj 33549 0 obj <> endobj 33550 0 obj <> endobj 33551 0 obj <> endobj 33552 0 obj <> endobj 33553 0 obj <> endobj 33554 0 obj <> endobj 33555 0 obj <> endobj 33556 0 obj <> endobj 33557 0 obj <> endobj 33558 0 obj <> endobj 33559 0 obj <> endobj 33560 0 obj <> endobj 33561 0 obj <> endobj 33562 0 obj <> endobj 33563 0 obj <> endobj 33564 0 obj <> endobj 33565 0 obj <> endobj 33566 0 obj <> endobj 33567 0 obj <> endobj 33568 0 obj <> endobj 33569 0 obj <> endobj 33570 0 obj <> endobj 33571 0 obj <> endobj 33572 0 obj <> endobj 33573 0 obj <> endobj 33574 0 obj <> endobj 33575 0 obj <> endobj 33576 0 obj <> endobj 33577 0 obj <> endobj 33578 0 obj <> endobj 33579 0 obj <> endobj 33580 0 obj <> endobj 33581 0 obj <> endobj 33582 0 obj <> endobj 33583 0 obj <> endobj 33584 0 obj <> endobj 33585 0 obj <> endobj 33586 0 obj <> endobj 33587 0 obj <> endobj 33588 0 obj <> endobj 33589 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 33590 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 33591 0 obj <> endobj 33592 0 obj <> endobj 33593 0 obj <> stream q /X1 Do Q q endstream endobj 33594 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 33595 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 33596 0 obj <> stream HWmoH_d^% X MֻMR.p%Q϶rҠ돣7KiJf>CRǟ*ېi@h&l:4b X1#M|ap|/U#?-XզX"8~?6xǙPm` mha0i/4_TE^K#o=Vǜãexg#nCegt >PLO9l~Û0*fF!'`x}O >%ا{K{K4+b*j͡|(BP>{ls(=P-9S$TmET+ bbC=JBP{OP-P-9S$TmET+ bbC=JBP{OP-Egm"Tm6cbC=*BP{OP-P-9S"TmETbbC=*BP{OP-P-9S"TmETb*Єj͡|(BP>{ls(=P-9S&TmET bbC=jBP{OP-P-9S&TmET bbC=jBP{OP-Cgm"Tm6[f!U& 31S@̪0m(LzTTش>]N'ϮNޞ]>_M2x|ftT_-5=;?y/RK |\bܸyz>MOޝuqM./uhE9|E\ ȃ˿}@zރLe_>khQ|]mѷ쏀3p;p4%n(qN9B 3CWu~~Qwo?]B#;z/]lzޛγN$KS. XiFt,S.8*a:,TԴeqwDmnDռpѻ-7|37zvMt ܩ鱻r0bYT?Cn\vs> ٧P!4;{7*foyP.IX&D~=_{c7a+7w&R=p{A_o*eSd@k!e*4F((Cr`^i_6:x*߶WW&-ZЕtT,ugkV̫|o6/ydfBF%}76]5* ,yغ 6GGKe*@uJ u-⢸bcRU([7UAܭLPans|D|uꎜ\yn|op6pk#"mպ8Pp?˲+nYM{曢ɶEUn~} B >Y8ʈM-]RC0U6y%.0/ v R/*sˤ;AS 4R0p&Cpd3xo5oOy{QWu_t(ĥ6xX n'b݈v|sFFaO&Lݭܧ0R( ^;)}&fX3SfTA09sqrqO'%B ؝;~U={0N_1)TDbH{R)4#y9Bɸ%NG%}4g"niuo h`?LL^5@Mv+%-=8pԒhpP/X3o'ӓ7@Cos¬| Z5z}>o-z&{2t6?X{O.Rt5]@HgRx+jXTzӘӁ23q*]FH&Hih=h=)3`U.vWBiЮvm|iz>7P1ME BJߺlk_A;ޥ{.VPKCGU` -`Xf+, 4pxum^@= ۰mNRD3gRn<.$pK;:w|]J2PZ 7 Yͱ͈9=vaC0mOH[w c!+܀aO/{Bat܆MmM^ČII;qny蘃ز\߁}GWvIn{N/cJ3|cjX#Qfs8nQqծlOzFaO(ZznڤfG@[Z1w@anړ oUA~z*l $eAJdF<2Ldf5\&/mUO܊QL[L`0)`USͲH&S׮DiYJ}7C An~֑ J΄r$!3`lᠪW)^gs])j}%Gi݄QLD@uT_u S(QEQfĵ ď2#nT~N,ڐ[L n#QO{L8ܣrjTu)ؑ,)IA2"YN%v]džiG@,4!ySx 6. iv? !endstream endobj 33597 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 33598 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 33599 0 obj <> endobj 33600 0 obj <> endobj 33601 0 obj <> endobj 33602 0 obj <> endobj 33603 0 obj <> endobj 33604 0 obj <> endobj 33605 0 obj <> endobj 33606 0 obj <> endobj 33607 0 obj <> endobj 33608 0 obj <> endobj 33609 0 obj <> stream q /X1 Do Q q endstream endobj 33610 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 33611 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 33612 0 obj <> stream HWko8_!_AwmIg4ia6#I~/Eɲɛ(RQLJ=şyۇ^]|~.& S!eg$` _}x0P"!<843*P P7]90*<?1`#,W;cxGsO=GsO@ O@ O@ ODKODKO}=1>LjS O}O<)>ԧS"SO}<>+D+DYŪ#u1ջ׺a]̰|.,ĵ.fXzϵqs-G\bB\b\׺a!=rĵ.,ĵ.fXzϵqs-G\bB\b\׺a!=rĵ.Vqŀ Wbw1`!u1B{k]̰kZZ3,DZ QV u1`!u1B{k]̰kZZ3,DZ QV u*k]̰|.,ĵ.fXz3,_ qsD\b\+׺׺a!=Jĵ.fXzϵq qsD\b\+׺׺a!=Jĵ.fXzϵqUA WbB\bw1+!GU] ! |IEDy{zs"Ȕݾui7g!q9D8;DVm3G$&?UtvϢn1) p 8%4tenFKPŌk+ꕶK]'e9630>r_%0`/K痍DHzqm/hLhuIYlL)C;4ę0ؑ:)]ƖuYwEѼ-o0<D8 3o}^#\7mJO38I(DnFT2e%)c.C|:OqHB I1|2i˙~۷6;0dٜ<&q Cf#M OCM׎ݰ͗RW<۱''^U QefgDZwzLm;=Xy6K)aٶO:gEO AK]FFbF9me*&NyO#:v9"׃PR)Iqwg }2r1~,c߶'dPq .a%pLf A>s TƉcu$?#UL(KQvXRuhp$6\`}36Y&]Ɗ:Z%\?Xf-gծ(Liv4hN-$a iG)UG[l(iznOl1jK3j49;O}TSO=vPcޚ!_}̍$*.rf;%u"4K01Ae"y*ᨁn k ~2!CZwT1.Xfr"5 hǼFNi]//:zCx AsKӴy0lv:6M[=g\b(<|#mFovcB}/`, 5Xi܅GqTLa.i,I2'y/\F, ^u~::Ư⓱~{+T*n,%']vmQ}q?MIR맒H&%w;{%TYkF/bWu =sV WphHkVME=b, UNU}a9M]>`rdڴWT8ZRC/5|+NL:(6Zo7_j\ϫKW [^@/OwrZ[3{3$(/r m?: 5s}wf(\Qx8l^LᲥ)0 (12Rf80Z2駵Ji)ɒg(p|(@.ʬ^_F/'prD\DĦn`x+ Dۋ$cVFs൮9Z+{zƦJZb)g$ O@{fm("-ghsd ) .חe&mI&SHI..%V0Fb3rvYIDN`,`D۴GXdqؖckvjz4SsՋsH*ٳ(I# WDiifJJBcO{rIv%ziF位i:W_fPk+ERvȝUz+J@ܔ!h0AqTxN9~x.n+͜! R-׈(l[]oŇZtendstream endobj 33613 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 33614 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 33615 0 obj <> stream q /X1 Do Q q endstream endobj 33616 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 33617 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 33618 0 obj <> stream HWk_1]4dhZ#aawDnH*CJZ{e-X3gg!WmA%<5.^ƩqfT85-uiUrͺiMٷRUtkn,Fi5<,(g}&Ϙ\p3>gs}/s{Y-b{Kh-ŐS Y=ŀ%bܳCR Y{Z#bܳZ!KpZkR Y{Z#bZK1d YkZ!KpZkRlYCwO1` {!R Y{Z+bܳZZ!KpZkR Y{Z+bZK1d YkZ!KpZkR XBk),=kZK1d YkZm"'b),CwO1dqZ!KpZR Y{Z'bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%guBk),=kZKM {Kh-ŐS YܽN%ߣr=EWQZn"?M\,ObfhRO.nub>v:%qfKuب,@:dy쎔wuWF'J]_d>U>&I&Wߨ]^og/rUW>,]_?`Xذ@o ^n۶{UWRXoi=::R-V]_շy}qy]X0$ !ApP1#t RԌBFOnN)]1oCEQ ydlP$nNYevwb9³6pܻwzi.H_u`?fNE?pC֝ xCbZNrL ZiVʴRA+eZ1LʘV.hL+rUZ*iyA3-/hyeE1dq-K ZiiAK3-#he-{#bX{!Kb7B),A-{#bX{!Kb7B),A ŀ%bX{!KbB),A -{+bX{!KbB),A -{+bX{!kQ XB),A -{'bX{!KbwB),A -{'bX{!KbwB),A>rO1dq-K=Őŵ|w!l]&*\(ct \vۖm/8ːY fwµKߕbrS.{袾ŷYr&q q$5ޖjz/dN{Db7`?#rIT9`Q3"c[W\ Y~,ˮkZLmIq\U'I?t}kv8/q?O%_-bH8>tۍZWZ^}m[^U_4 k,*LTէmc:# vUCǢ$&v¼eKP̈ӌ_^8m}7QM>F[ԍ] e"c|iهMVlCJ\l5h4O^>wC볊1df/e{# 2:tj Vyb$zʃ5ˏ^9$M0#iҭ7ʦ'Mem+;Qmsk]YMҪt:?-ql(87e+^endstream endobj 33619 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 33620 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 33621 0 obj <> endobj 33622 0 obj <> endobj 33623 0 obj <> endobj 33624 0 obj <> endobj 33625 0 obj <> endobj 33626 0 obj <> endobj 33627 0 obj <> endobj 33628 0 obj <> endobj 33629 0 obj <> endobj 33630 0 obj <> stream q /X1 Do Q q endstream endobj 33631 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 33632 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 33633 0 obj <> stream HW]oF}篘  $٦& vѢV0e3k}a{%%[:YE+̙Ù{fx/Uuᇋ_^z/_$$gTU.˭*r&]mZ\Sb{uwm6UWs9s s}!/Bp_0Qp(})/Rp2kRlX!CwO1` {!R Y{Z+bܳZ!Z!KpRkR Y{Z+bRK1d YjZ!KpRkR XBj),=KRK1d YjZ'b),!CwO1dqZ!KpRR Y{Z'bRK1d YjZ!KpRR XBj),=KRK1d YjZKH-Ő%guBj),=KRKuR Y=ŀ%b),bRK1d YjZ!KpRR XBj),=KRK1d YjZKH-Ő%gBj),=KRK1` ,^H-Ő%gBj)NZ!R Y=ŐݗYY^iz<'UFWVZ#KAkY:sjNҦ3믻Z}HַK{~ϛ7g ~{.f?&D.Y>ȵ+4LlB-lUcVg~|nflhB}"O`Mi@u_mɮMt<9S<v)>,>r ? ߑqN%/ƍj CF0diyA3-/hyV.hL+rUZ*iEA+2(hEU Z%*jY͵(,E1`A0-#he-˴ uO1d ZPC uO1d ZPC uO};e1-),Aսb EPCע6{'=Ű)X;) uO1l7-VN{a#)hwBS IAսb" ZPQbu6{'=ŰZCעu{/=ŰX{) uO1l-V^{a+&hBS [1Aսbd ZP&KbuO{/=Ű}ZCע6F 'ލS's&W! 0|L^v23W&wXOWzu3ӦQAػ;@zڰCCו:deZ ^ݮ &4CˢkB(8fbz֬ݫ ꪵnԛvs IWMOiAk\):Z; 1s]T𰏫bEmȾ{̪WsutyRcubǾˬRϠ$/cf 0̌ENyVe.'<:v﫮o7WjR % jW/4іpY{^o]洶 9H;{G,:썳!2]<~t]ipӧINݏL[ٹq:ݾ9;|믛_ (DØOUe35Չ#l( M9Fa\fgÁ^7m𥢏lT6۾z@#dxȴ9WޮwM="''N<aOoh]n<ڮ:{u~)LwECl.X~% px\caۛDWdRxLN'm¤p猉Pu S< Cസ?~;s=]ί@#E?r+rҙpKx얀R+ߺ%۷Pr{n >|pp/>~-ϝ܊߳ wf+BR(xA).,QR[? \3=]3~fc G 5vFlWgXXzX33=p [4tHHə,D]Gnnu7˃ Y@Í>X./BVXGoؑ^tbv-^xZ3V~w r8uH?|>ƅvLunZ5RU]7dW@A}< n^ 2O $xQϋܑ!;bjbm`O<"w(cj8?Z,\ӷ"a:X.k2b{|޶}OmMêe3k8,Xy}!TK2`HPK-Xz r "e`NEBi1PHOJQ^ hD+̀qbaP*(iB'벰3--6t+1[MF)C2D#[ht93X6ic A3<\JLLhw ru T0endstream endobj 33634 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 33635 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 33636 0 obj <> endobj 33637 0 obj <> endobj 33638 0 obj <> endobj 33639 0 obj <> endobj 33640 0 obj <> endobj 33641 0 obj <> stream q /X1 Do Q q endstream endobj 33642 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 33643 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 33644 0 obj <> stream HWnH|Wy楑-$Ėa3i[.'X̿o"HTTȪvEմ᯿qoOD ݟʄiLyTM| AI8 zVorlm7a3 \~.2Vawuġ y0mqP~t4JvO|^Lo܂ƣin]4E[7w{](ϕP=:J6qny}WHOag]sކYR'9lfU`Sαc' qXr99VHÈ$<KJW5p{ k^Z7 poOOO τ τυυυ//{ [ (-{9h-Lj%sX= cEkh-Lj܋*Z9h-Lj܋*Z Us,Z U#p/Z@k9X#p/Z@k9F,^VrlhZKcrX=Lj%s̱@k9F,^VrXhcrXh{Z Z1{Z Z1bcZ1bcEk5h-{9h-Lj%sX= cEk h-Lj܋Z9h-Lj܋Z 5s,Z 5#p/Zk@k9X#p/Zk@k9F,^րrl#t1{ Bw!GxKM!K, XB-# 2B+ZJV*2 heB+ZʁV. UhB-+,в\KRcĒZJVZ h+{u>KhsX@K^sYB cZ" cZ #W N} #]wȽ]wȽ]dȽ]dȽ]QȽ]QȽ]>Ƚ]>Ƚ]+Ƚ]+Lj%8F%ro@9F%ro@9FW%ro@9FW%ro@9F|%ro@9F|%ro@9Fw%ro@9Fw%ro@9Fs%ro@9Fs1bI-ёhܧ 6֚0ṽepXI]`0n:6a9><<%Qq<:]i(3 bɈ$ٺ~_⽢+ʵUw.u[MuћW..&MM'qoT4Qb~|\6m}~|w'dj֍m}],/rkٽ-5?@'c7'pֽ0^7Cnz^7U;]BGl#M˫^YF۫.Tu[Vr\QMu۪͑F$X,dr|5y ;z`tI㍸tmY:+ݣB3h AS˽WyM׺^W/S \i뱫mSǑí6\޹Hﰚ$4s֫p#ҙsj_x;~w»l|/Uɥ["6/eq'vGp&F]x(ؼsrѪii^NO}}zqq y3RYPg}:D2 F, XB-# 2B+ZJV*2 heB+ZʁV. UhB-+,в\KRcĒZsh%B+ZR@K -D=LjD=LjD=LjD=LjD=LjD=LjD=LjD5=Lj%8X # # # # # # # # #7 #csX@KހsX@KހsX@Kހ*mw^aM"MS i* 'X8+iJB>y8z: Zx *k{཯3YΠVg: Zx *k{཯3/_}A}I$d~%F8w?#(!v\f04a$)_aa6cFBu8rZ+V0{L]ݼ.`lUynP,H8V:FN7- '_3}ˋhL<ԥc!I LizeT?e=~'xKj08I=~a\"v-1}O=>A49"q,/ԘPDR/9[<.v"DEw_FDM&$]].cTVnlR,27$M9Nr128n}mgcUofsw|Rkg-LH&lvZ+4WXĺ=v|kЧ.Ѣ>F_Pglu,$Y ̵WQ:]kfaa20qؿ)sz'Vܙsɽz[y^ tFp憮vAh"pCk}ٖ ׻0 IblW]~m 0mNendstream endobj 33645 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 33646 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 33647 0 obj <> endobj 33648 0 obj <> endobj 33649 0 obj <> stream q /X1 Do Q q endstream endobj 33650 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 33651 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 33652 0 obj <> stream HWk8ίjT:nni);tft"CAoAuMk \JgԱ}|񹾾5;t˛oB "e,J7FHC d`% n>U֕śjeepdmzܬg[o& YRa`j%MȈqcVņ]Qz{էcXovCW=u {Xρ⒝{Pc?lÂT.#8LlxTmFqD<,˟cg!̲" $^z%^z^y^y^y5^{5^{#B}䩏>"GzC7zC7P{cB}쩏 >!'PxSB}O gaZIcb̲|,_=ƀEcE\+ b̲k%Zp-,PVŘe=JµZYs$\1"{k1,µ,BZIcE\+ bl(µ,_=ƀEcǘe1,µ,BZEcE\b Xk1fYzϵp-,PVb̲kZYs"\1`Ře=*µ,BZEc@Ře1,µ,_=,W1`Ře=jµ,BZMc"\1"{Մk1fYzϵp-ƀEcE\ b̲k5Zp-,PVŘe=jµZYc"\1c̲|)OT}zܬg[o84B0cRWo;vBfU9tY=5J$"OldvE+[6C,_&׉P7㈛h;%ȶWfKoDYmZFKY 0oj SB??E*VkR,'.e{ DʭkOkw𔹦nYXއ1侢镼y(2FQ&>v!b 3r> ,jf޲z{YU3S0HC1\M%Yũv̮};UAGum䚶țz^_1{ir&\ZU6D91D:*:~d/A2;*4*C=_ݖ RG:s kOk[9UYL]v }Vi̅PӰXEcq;]YMe=I̞R9O A˳(x7ݘ_(l݈nq\}b"u2Ϳuۂ+vݣJY2hMݖN*:gC9ɾT!pf9H]ysp{7盛)xdBLNYoE~(PX GQ&7)KbnZ:*(r!KEܤ+iPCՉ;PxP<JXiyӧᢩ.\ pAJ8AǼcjk{>p o}QdR(S(}{`>?/ƨ?QtF2a)˿o6*s2^h4b|.FXK5(ԵE?#1\$R-zpZ=}l} 'c!@( SVH,Ys?㜕ڼϏ>!j !O\׻rv)#R[.luޟpB 8X|r9ƅBWF 'eI(]_3ljNe}ϦRZNT5N3qڹnV݌|Tf<oYu;-bg Hn Nf3aiNc/OC{r XzDD.d@JV]*iף)p ;HF"iG{3tt."R.qscbX:}+0cz0 kx9*bD#FnqnPDiu#WCy qi)@G |D #CԵ$!'ɧřWQ6~_U_A mU)R)RҨIڗKUq e|c d[i%lvg&Hg1F14tfgFWNCؚQO] UC&Šl LNF (6,&j샴 ,NVM  L#t\ӄ RY26,ā$s65&AOSg"As.m`v#WֽI>|| 6T1TuԞ/ T5=:>sY%[ȩ? WqI|JQरaRL()n`a"2,sB$wGӽMVae9>)?C"|ȋ$GHPCC!NFgJ0Wk1ӪaǗo\\U!I.\b E(TiԒ݈ZjQ.5_xnK9j̜~ze1bS$4~ھQd]bR (2v m!aMM]=KegD:g]z:zw+;FrA%sig}yxs)%eH-ZRo?v? !endstream endobj 33653 0 obj <>/P 1111 0 R/Type/Annot/A 33654 0 R/Subtype/Link/Rect[129.600006 248.709 259.102997 268.389008]/Border[0 0 0]/H/N>> endobj 33654 0 obj <> endobj 33655 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 33656 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 33657 0 obj <> endobj 33658 0 obj <> endobj 33659 0 obj <> endobj 33660 0 obj <> endobj 33661 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 33662 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 33663 0 obj <> endobj 33664 0 obj <> endobj 33665 0 obj <> endobj 33666 0 obj <> endobj 33667 0 obj <> stream q /X1 Do Q q endstream endobj 33668 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 33669 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 33670 0 obj <> stream HWmo7>Bm`;Q/#EK-}H ccM%4?rv5#QアH|HꡨG7Gш~x꿕ԵA TmAVġ#vU#*)֢wYva펇8۷ Wf)@H|<:imr[]yk{$Zv_|&"J و_qxW{5n+N mM)G٨m2EE6Bs2% {Haaaaaaoaoaoaoao-þMط 6a2ۄcػcػgg'hc۶FP)؆(FP)F}lCF(}Z`TŰOT jc6B1F(}Z`TŨ6a6B1؆(FP D6aƶm6Bc6BcR QjcjF(}ZŨ6!Qml#>QbTŰOT6D1mb'Ujcj؆(FP DQml#>QbT۶fTmbTmJ6D1mb'Ռjcj5؆(FP DQml#>QfTŨ6aV3mb'Ռjc6B1jFP DQmlVQml#T>!Qml#T>*ek wmjY,RH|\ouB-j}|t[k|^H ]zꟺB̥èqn!ۨ6O 3ui)WRQx|4_e ]mHX st[)sDNϛ0lx %Z<,ӦTSn.Ys auN5uav Ev3}=!.{idR_vfz@%Ԛ X.v%䨂Ʋ: 3[Q[YSY`RMm$#,.wDig7SA ~Xe0kiSL#vF( iP Lb_]"~Bo΀dn=dR?FL*[݀}Y@N fz.VӄWqtֻ/Ύtl_ҦTR(m8k: 5yjB5iу+V1K-nN3}fXgIz;Ͱ}~Qk:i46%'LXž8rzR^lÔXbh\g߾YeY&]w8\ZvFj1w]Ƴy2㜙_qqʤ[1C,&i4śšG#7hGl44.K7 i(`hJy:|I(cu_?t{O:+ EsvgJCnP vli14NCqcd*qFvZM[hGyJ ~"%UdخH #Vh (w^;ǡI;̙Ǚ[֛}a]X# ^+%)R>~}K/ًw8gbqâw/WdZ &4w*ܒ=PzsJg[Jz?h) ]SJ̉SZΉ.99&Pɋyܢ6d/*hYBVA|cA^[ fWZf "APeK`+ԄY;fDuNi10)o0KKΗ|'ҹ %LY?sR+0_oW!P8P4F4Sw'21endstream endobj 33671 0 obj <>/P 5255 0 R/Type/Annot/A 34074 0 R/Subtype/Link/Rect[226 669 240 677]/Border[0 0 0]/H/N>> endobj 33672 0 obj <>/P 5255 0 R/Type/Annot/A 34071 0 R/Subtype/Link/Rect[242 669 256 677]/Border[0 0 0]/H/N>> endobj 33673 0 obj <>/P 5255 0 R/Type/Annot/A 34069 0 R/Subtype/Link/Rect[258 669 272 677]/Border[0 0 0]/H/N>> endobj 33674 0 obj <>/P 5255 0 R/Type/Annot/A 34066 0 R/Subtype/Link/Rect[274 669 288 677]/Border[0 0 0]/H/N>> endobj 33675 0 obj <>/P 5255 0 R/Type/Annot/A 34063 0 R/Subtype/Link/Rect[290 669 302 677]/Border[0 0 0]/H/N>> endobj 33676 0 obj <>/P 5255 0 R/Type/Annot/A 34060 0 R/Subtype/Link/Rect[189 659 201 667]/Border[0 0 0]/H/N>> endobj 33677 0 obj <>/P 5255 0 R/Type/Annot/A 34057 0 R/Subtype/Link/Rect[197 649 209 657]/Border[0 0 0]/H/N>> endobj 33678 0 obj <>/P 5255 0 R/Type/Annot/A 34055 0 R/Subtype/Link/Rect[179 639 193 647]/Border[0 0 0]/H/N>> endobj 33679 0 obj <>/P 5255 0 R/Type/Annot/A 34052 0 R/Subtype/Link/Rect[195 639 209 647]/Border[0 0 0]/H/N>> endobj 33680 0 obj <>/P 5255 0 R/Type/Annot/A 34050 0 R/Subtype/Link/Rect[211 639 225 647]/Border[0 0 0]/H/N>> endobj 33681 0 obj <>/P 5255 0 R/Type/Annot/A 34048 0 R/Subtype/Link/Rect[227 639 239 647]/Border[0 0 0]/H/N>> endobj 33682 0 obj <>/P 5255 0 R/Type/Annot/A 34046 0 R/Subtype/Link/Rect[178 629 192 637]/Border[0 0 0]/H/N>> endobj 33683 0 obj <>/P 5255 0 R/Type/Annot/A 34044 0 R/Subtype/Link/Rect[194 629 206 637]/Border[0 0 0]/H/N>> endobj 33684 0 obj <>/P 5255 0 R/Type/Annot/A 34042 0 R/Subtype/Link/Rect[188 619 200 627]/Border[0 0 0]/H/N>> endobj 33685 0 obj <>/P 5255 0 R/Type/Annot/A 34040 0 R/Subtype/Link/Rect[184 609 190 617]/Border[0 0 0]/H/N>> endobj 33686 0 obj <>/P 5255 0 R/Type/Annot/A 34038 0 R/Subtype/Link/Rect[192 609 202 617]/Border[0 0 0]/H/N>> endobj 33687 0 obj <>/P 5255 0 R/Type/Annot/A 34036 0 R/Subtype/Link/Rect[204 609 214 617]/Border[0 0 0]/H/N>> endobj 33688 0 obj <>/P 5255 0 R/Type/Annot/A 34034 0 R/Subtype/Link/Rect[216 609 228 617]/Border[0 0 0]/H/N>> endobj 33689 0 obj <>/P 5255 0 R/Type/Annot/A 34032 0 R/Subtype/Link/Rect[184 599 196 607]/Border[0 0 0]/H/N>> endobj 33690 0 obj <>/P 5255 0 R/Type/Annot/A 34030 0 R/Subtype/Link/Rect[180 589 192 597]/Border[0 0 0]/H/N>> endobj 33691 0 obj <>/P 5255 0 R/Type/Annot/A 34028 0 R/Subtype/Link/Rect[188 579 198 587]/Border[0 0 0]/H/N>> endobj 33692 0 obj <>/P 5255 0 R/Type/Annot/A 34026 0 R/Subtype/Link/Rect[200 579 212 587]/Border[0 0 0]/H/N>> endobj 33693 0 obj <>/P 5255 0 R/Type/Annot/A 34024 0 R/Subtype/Link/Rect[221 569 235 577]/Border[0 0 0]/H/N>> endobj 33694 0 obj <>/P 5255 0 R/Type/Annot/A 34022 0 R/Subtype/Link/Rect[237 569 253 578]/Border[0 0 0]/H/N>> endobj 33695 0 obj <>/P 5255 0 R/Type/Annot/A 34020 0 R/Subtype/Link/Rect[254 569 268 577]/Border[0 0 0]/H/N>> endobj 33696 0 obj <>/P 5255 0 R/Type/Annot/A 34018 0 R/Subtype/Link/Rect[270 569 287 578]/Border[0 0 0]/H/N>> endobj 33697 0 obj <>/P 5255 0 R/Type/Annot/A 34016 0 R/Subtype/Link/Rect[287 569 301 577]/Border[0 0 0]/H/N>> endobj 33698 0 obj <>/P 5255 0 R/Type/Annot/A 34014 0 R/Subtype/Link/Rect[151 559 167 568]/Border[0 0 0]/H/N>> endobj 33699 0 obj <>/P 5255 0 R/Type/Annot/A 34012 0 R/Subtype/Link/Rect[168 559 182 567]/Border[0 0 0]/H/N>> endobj 33700 0 obj <>/P 5255 0 R/Type/Annot/A 34010 0 R/Subtype/Link/Rect[184 559 198 567]/Border[0 0 0]/H/N>> endobj 33701 0 obj <>/P 5255 0 R/Type/Annot/A 34008 0 R/Subtype/Link/Rect[200 559 214 567]/Border[0 0 0]/H/N>> endobj 33702 0 obj <>/P 5255 0 R/Type/Annot/A 34006 0 R/Subtype/Link/Rect[216 559 230 567]/Border[0 0 0]/H/N>> endobj 33703 0 obj <>/P 5255 0 R/Type/Annot/A 34004 0 R/Subtype/Link/Rect[232 559 246 567]/Border[0 0 0]/H/N>> endobj 33704 0 obj <>/P 5255 0 R/Type/Annot/A 34002 0 R/Subtype/Link/Rect[248 559 260 567]/Border[0 0 0]/H/N>> endobj 33705 0 obj <>/P 5255 0 R/Type/Annot/A 34000 0 R/Subtype/Link/Rect[189 549 201 557]/Border[0 0 0]/H/N>> endobj 33706 0 obj <>/P 5255 0 R/Type/Annot/A 33998 0 R/Subtype/Link/Rect[221 539 235 547]/Border[0 0 0]/H/N>> endobj 33707 0 obj <>/P 5255 0 R/Type/Annot/A 33996 0 R/Subtype/Link/Rect[237 539 251 547]/Border[0 0 0]/H/N>> endobj 33708 0 obj <>/P 5255 0 R/Type/Annot/A 33994 0 R/Subtype/Link/Rect[253 539 267 547]/Border[0 0 0]/H/N>> endobj 33709 0 obj <>/P 5255 0 R/Type/Annot/A 33992 0 R/Subtype/Link/Rect[269 539 283 547]/Border[0 0 0]/H/N>> endobj 33710 0 obj <>/P 5255 0 R/Type/Annot/A 33990 0 R/Subtype/Link/Rect[285 539 297 547]/Border[0 0 0]/H/N>> endobj 33711 0 obj <>/P 5255 0 R/Type/Annot/A 33988 0 R/Subtype/Link/Rect[189 529 201 537]/Border[0 0 0]/H/N>> endobj 33712 0 obj <>/P 5255 0 R/Type/Annot/A 33986 0 R/Subtype/Link/Rect[197 519 209 527]/Border[0 0 0]/H/N>> endobj 33713 0 obj <>/P 5255 0 R/Type/Annot/A 33983 0 R/Subtype/Link/Rect[187 509 197 517]/Border[0 0 0]/H/N>> endobj 33714 0 obj <>/P 5255 0 R/Type/Annot/A 33981 0 R/Subtype/Link/Rect[199 509 216 518]/Border[0 0 0]/H/N>> endobj 33715 0 obj <>/P 5255 0 R/Type/Annot/A 33979 0 R/Subtype/Link/Rect[217 509 231 517]/Border[0 0 0]/H/N>> endobj 33716 0 obj <>/P 5255 0 R/Type/Annot/A 33977 0 R/Subtype/Link/Rect[233 509 249 518]/Border[0 0 0]/H/N>> endobj 33717 0 obj <>/P 5255 0 R/Type/Annot/A 33975 0 R/Subtype/Link/Rect[250 509 264 517]/Border[0 0 0]/H/N>> endobj 33718 0 obj <>/P 5255 0 R/Type/Annot/A 33973 0 R/Subtype/Link/Rect[266 509 280 517]/Border[0 0 0]/H/N>> endobj 33719 0 obj <>/P 5255 0 R/Type/Annot/A 33971 0 R/Subtype/Link/Rect[151 499 167 508]/Border[0 0 0]/H/N>> endobj 33720 0 obj <>/P 5255 0 R/Type/Annot/A 33969 0 R/Subtype/Link/Rect[168 499 182 507]/Border[0 0 0]/H/N>> endobj 33721 0 obj <>/P 5255 0 R/Type/Annot/A 33967 0 R/Subtype/Link/Rect[184 499 196 507]/Border[0 0 0]/H/N>> endobj 33722 0 obj <>/P 5255 0 R/Type/Annot/A 33965 0 R/Subtype/Link/Rect[189 489 201 497]/Border[0 0 0]/H/N>> endobj 33723 0 obj <>/P 5255 0 R/Type/Annot/A 33963 0 R/Subtype/Link/Rect[202 479 218 488]/Border[0 0 0]/H/N>> endobj 33724 0 obj <>/P 5255 0 R/Type/Annot/A 33961 0 R/Subtype/Link/Rect[219 479 233 487]/Border[0 0 0]/H/N>> endobj 33725 0 obj <>/P 5255 0 R/Type/Annot/A 33959 0 R/Subtype/Link/Rect[235 479 249 487]/Border[0 0 0]/H/N>> endobj 33726 0 obj <>/P 5255 0 R/Type/Annot/A 33957 0 R/Subtype/Link/Rect[251 479 265 487]/Border[0 0 0]/H/N>> endobj 33727 0 obj <>/P 5255 0 R/Type/Annot/A 33955 0 R/Subtype/Link/Rect[267 479 281 487]/Border[0 0 0]/H/N>> endobj 33728 0 obj <>/P 5255 0 R/Type/Annot/A 33953 0 R/Subtype/Link/Rect[283 479 297 487]/Border[0 0 0]/H/N>> endobj 33729 0 obj <>/P 5255 0 R/Type/Annot/A 33951 0 R/Subtype/Link/Rect[299 479 311 487]/Border[0 0 0]/H/N>> endobj 33730 0 obj <>/P 5255 0 R/Type/Annot/A 33949 0 R/Subtype/Link/Rect[189 469 201 477]/Border[0 0 0]/H/N>> endobj 33731 0 obj <>/P 5255 0 R/Type/Annot/A 33947 0 R/Subtype/Link/Rect[245 459 259 467]/Border[0 0 0]/H/N>> endobj 33732 0 obj <>/P 5255 0 R/Type/Annot/A 33945 0 R/Subtype/Link/Rect[261 459 275 467]/Border[0 0 0]/H/N>> endobj 33733 0 obj <>/P 5255 0 R/Type/Annot/A 33943 0 R/Subtype/Link/Rect[277 459 289 467]/Border[0 0 0]/H/N>> endobj 33734 0 obj <>/P 5255 0 R/Type/Annot/A 33941 0 R/Subtype/Link/Rect[189 449 201 457]/Border[0 0 0]/H/N>> endobj 33735 0 obj <>/P 5255 0 R/Type/Annot/A 33939 0 R/Subtype/Link/Rect[203 439 211 447]/Border[0 0 0]/H/N>> endobj 33736 0 obj <>/P 5255 0 R/Type/Annot/A 34177 0 R/Subtype/Link/Rect[230 429 244 437]/Border[0 0 0]/H/N>> endobj 33737 0 obj <>/P 5255 0 R/Type/Annot/A 34175 0 R/Subtype/Link/Rect[246 429 260 437]/Border[0 0 0]/H/N>> endobj 33738 0 obj <>/P 5255 0 R/Type/Annot/A 34173 0 R/Subtype/Link/Rect[262 429 274 437]/Border[0 0 0]/H/N>> endobj 33739 0 obj <>/P 5255 0 R/Type/Annot/A 34171 0 R/Subtype/Link/Rect[189 419 201 427]/Border[0 0 0]/H/N>> endobj 33740 0 obj <>/P 5255 0 R/Type/Annot/A 34169 0 R/Subtype/Link/Rect[197 409 207 417]/Border[0 0 0]/H/N>> endobj 33741 0 obj <>/P 5255 0 R/Type/Annot/A 34167 0 R/Subtype/Link/Rect[209 409 225 418]/Border[0 0 0]/H/N>> endobj 33742 0 obj <>/P 5255 0 R/Type/Annot/A 34165 0 R/Subtype/Link/Rect[226 409 240 417]/Border[0 0 0]/H/N>> endobj 33743 0 obj <>/P 5255 0 R/Type/Annot/A 34163 0 R/Subtype/Link/Rect[242 409 256 417]/Border[0 0 0]/H/N>> endobj 33744 0 obj <>/P 5255 0 R/Type/Annot/A 34161 0 R/Subtype/Link/Rect[258 409 272 417]/Border[0 0 0]/H/N>> endobj 33745 0 obj <>/P 5255 0 R/Type/Annot/A 34159 0 R/Subtype/Link/Rect[274 409 288 417]/Border[0 0 0]/H/N>> endobj 33746 0 obj <>/P 5255 0 R/Type/Annot/A 34157 0 R/Subtype/Link/Rect[151 399 167 408]/Border[0 0 0]/H/N>> endobj 33747 0 obj <>/P 5255 0 R/Type/Annot/A 34155 0 R/Subtype/Link/Rect[167 399 179 407]/Border[0 0 0]/H/N>> endobj 33748 0 obj <>/P 5255 0 R/Type/Annot/A 34152 0 R/Subtype/Link/Rect[189 389 201 397]/Border[0 0 0]/H/N>> endobj 33749 0 obj <>/P 5255 0 R/Type/Annot/A 34150 0 R/Subtype/Link/Rect[202 379 215 387]/Border[0 0 0]/H/N>> endobj 33750 0 obj <>/P 5255 0 R/Type/Annot/A 34148 0 R/Subtype/Link/Rect[217 379 231 387]/Border[0 0 0]/H/N>> endobj 33751 0 obj <>/P 5255 0 R/Type/Annot/A 34146 0 R/Subtype/Link/Rect[233 379 245 387]/Border[0 0 0]/H/N>> endobj 33752 0 obj <>/P 5255 0 R/Type/Annot/A 34144 0 R/Subtype/Link/Rect[206 369 218 377]/Border[0 0 0]/H/N>> endobj 33753 0 obj <>/P 5255 0 R/Type/Annot/A 34142 0 R/Subtype/Link/Rect[202 359 216 367]/Border[0 0 0]/H/N>> endobj 33754 0 obj <>/P 5255 0 R/Type/Annot/A 34140 0 R/Subtype/Link/Rect[218 359 230 367]/Border[0 0 0]/H/N>> endobj 33755 0 obj <>/P 5255 0 R/Type/Annot/A 34138 0 R/Subtype/Link/Rect[189 349 201 357]/Border[0 0 0]/H/N>> endobj 33756 0 obj <>/P 5255 0 R/Type/Annot/A 34137 0 R/Subtype/Link/Rect[197 339 211 347]/Border[0 0 0]/H/N>> endobj 33757 0 obj <>/P 5255 0 R/Type/Annot/A 34136 0 R/Subtype/Link/Rect[213 339 229 348]/Border[0 0 0]/H/N>> endobj 33758 0 obj <>/P 5255 0 R/Type/Annot/A 34134 0 R/Subtype/Link/Rect[230 339 244 347]/Border[0 0 0]/H/N>> endobj 33759 0 obj <>/P 5255 0 R/Type/Annot/A 34132 0 R/Subtype/Link/Rect[246 339 260 347]/Border[0 0 0]/H/N>> endobj 33760 0 obj <>/P 5255 0 R/Type/Annot/A 34130 0 R/Subtype/Link/Rect[262 339 279 348]/Border[0 0 0]/H/N>> endobj 33761 0 obj <>/P 5255 0 R/Type/Annot/A 34128 0 R/Subtype/Link/Rect[279 339 293 347]/Border[0 0 0]/H/N>> endobj 33762 0 obj <>/P 5255 0 R/Type/Annot/A 34126 0 R/Subtype/Link/Rect[151 329 167 338]/Border[0 0 0]/H/N>> endobj 33763 0 obj <>/P 5255 0 R/Type/Annot/A 34124 0 R/Subtype/Link/Rect[168 329 182 337]/Border[0 0 0]/H/N>> endobj 33764 0 obj <>/P 5255 0 R/Type/Annot/A 34122 0 R/Subtype/Link/Rect[184 329 198 337]/Border[0 0 0]/H/N>> endobj 33765 0 obj <>/P 5255 0 R/Type/Annot/A 34120 0 R/Subtype/Link/Rect[200 329 214 337]/Border[0 0 0]/H/N>> endobj 33766 0 obj <>/P 5255 0 R/Type/Annot/A 34118 0 R/Subtype/Link/Rect[216 329 228 338]/Border[0 0 0]/H/N>> endobj 33767 0 obj <>/P 5255 0 R/Type/Annot/A 34116 0 R/Subtype/Link/Rect[189 319 201 328]/Border[0 0 0]/H/N>> endobj 33768 0 obj <>/P 5255 0 R/Type/Annot/A 34114 0 R/Subtype/Link/Rect[206 309 223 318]/Border[0 0 0]/H/N>> endobj 33769 0 obj <>/P 5255 0 R/Type/Annot/A 34112 0 R/Subtype/Link/Rect[224 309 236 318]/Border[0 0 0]/H/N>> endobj 33770 0 obj <>/P 5255 0 R/Type/Annot/A 34110 0 R/Subtype/Link/Rect[202 299 216 308]/Border[0 0 0]/H/N>> endobj 33771 0 obj <>/P 5255 0 R/Type/Annot/A 34108 0 R/Subtype/Link/Rect[218 299 232 308]/Border[0 0 0]/H/N>> endobj 33772 0 obj <>/P 5255 0 R/Type/Annot/A 34106 0 R/Subtype/Link/Rect[234 299 248 308]/Border[0 0 0]/H/N>> endobj 33773 0 obj <>/P 5255 0 R/Type/Annot/A 34104 0 R/Subtype/Link/Rect[250 299 264 308]/Border[0 0 0]/H/N>> endobj 33774 0 obj <>/P 5255 0 R/Type/Annot/A 34102 0 R/Subtype/Link/Rect[266 299 280 308]/Border[0 0 0]/H/N>> endobj 33775 0 obj <>/P 5255 0 R/Type/Annot/A 34100 0 R/Subtype/Link/Rect[282 299 294 308]/Border[0 0 0]/H/N>> endobj 33776 0 obj <>/P 5255 0 R/Type/Annot/A 34098 0 R/Subtype/Link/Rect[189 289 201 298]/Border[0 0 0]/H/N>> endobj 33777 0 obj <>/P 5255 0 R/Type/Annot/A 34096 0 R/Subtype/Link/Rect[197 279 207 288]/Border[0 0 0]/H/N>> endobj 33778 0 obj <>/P 5255 0 R/Type/Annot/A 34094 0 R/Subtype/Link/Rect[209 279 223 288]/Border[0 0 0]/H/N>> endobj 33779 0 obj <>/P 5255 0 R/Type/Annot/A 34092 0 R/Subtype/Link/Rect[225 279 237 288]/Border[0 0 0]/H/N>> endobj 33780 0 obj <>/P 5255 0 R/Type/Annot/A 34090 0 R/Subtype/Link/Rect[189 269 201 278]/Border[0 0 0]/H/N>> endobj 33781 0 obj <>/P 5255 0 R/Type/Annot/A 34088 0 R/Subtype/Link/Rect[206 259 223 268]/Border[0 0 0]/H/N>> endobj 33782 0 obj <>/P 5255 0 R/Type/Annot/A 34086 0 R/Subtype/Link/Rect[224 259 238 268]/Border[0 0 0]/H/N>> endobj 33783 0 obj <>/P 5255 0 R/Type/Annot/A 34083 0 R/Subtype/Link/Rect[240 259 254 268]/Border[0 0 0]/H/N>> endobj 33784 0 obj <>/P 5255 0 R/Type/Annot/A 34081 0 R/Subtype/Link/Rect[256 259 268 268]/Border[0 0 0]/H/N>> endobj 33785 0 obj <>/P 5255 0 R/Type/Annot/A 34079 0 R/Subtype/Link/Rect[189 249 201 258]/Border[0 0 0]/H/N>> endobj 33786 0 obj <>/P 5255 0 R/Type/Annot/A 34077 0 R/Subtype/Link/Rect[206 239 220 248]/Border[0 0 0]/H/N>> endobj 33787 0 obj <>/P 5255 0 R/Type/Annot/A 34075 0 R/Subtype/Link/Rect[222 239 236 248]/Border[0 0 0]/H/N>> endobj 33788 0 obj <>/P 5255 0 R/Type/Annot/A 34072 0 R/Subtype/Link/Rect[238 239 250 248]/Border[0 0 0]/H/N>> endobj 33789 0 obj <>/P 5255 0 R/Type/Annot/A 34070 0 R/Subtype/Link/Rect[189 229 201 238]/Border[0 0 0]/H/N>> endobj 33790 0 obj <>/P 5255 0 R/Type/Annot/A 34068 0 R/Subtype/Link/Rect[216 219 230 228]/Border[0 0 0]/H/N>> endobj 33791 0 obj <>/P 5255 0 R/Type/Annot/A 34065 0 R/Subtype/Link/Rect[232 219 244 228]/Border[0 0 0]/H/N>> endobj 33792 0 obj <>/P 5255 0 R/Type/Annot/A 34062 0 R/Subtype/Link/Rect[206 209 220 218]/Border[0 0 0]/H/N>> endobj 33793 0 obj <>/P 5255 0 R/Type/Annot/A 34059 0 R/Subtype/Link/Rect[222 209 236 218]/Border[0 0 0]/H/N>> endobj 33794 0 obj <>/P 5255 0 R/Type/Annot/A 34056 0 R/Subtype/Link/Rect[238 209 250 218]/Border[0 0 0]/H/N>> endobj 33795 0 obj <>/P 5255 0 R/Type/Annot/A 34054 0 R/Subtype/Link/Rect[189 199 201 208]/Border[0 0 0]/H/N>> endobj 33796 0 obj <>/P 5255 0 R/Type/Annot/A 34051 0 R/Subtype/Link/Rect[216 189 230 198]/Border[0 0 0]/H/N>> endobj 33797 0 obj <>/P 5255 0 R/Type/Annot/A 34049 0 R/Subtype/Link/Rect[232 189 244 198]/Border[0 0 0]/H/N>> endobj 33798 0 obj <>/P 5255 0 R/Type/Annot/A 34047 0 R/Subtype/Link/Rect[211 179 225 188]/Border[0 0 0]/H/N>> endobj 33799 0 obj <>/P 5255 0 R/Type/Annot/A 34045 0 R/Subtype/Link/Rect[227 179 239 188]/Border[0 0 0]/H/N>> endobj 33800 0 obj <>/P 5255 0 R/Type/Annot/A 34043 0 R/Subtype/Link/Rect[189 169 201 178]/Border[0 0 0]/H/N>> endobj 33801 0 obj <>/P 5255 0 R/Type/Annot/A 34041 0 R/Subtype/Link/Rect[230 159 244 168]/Border[0 0 0]/H/N>> endobj 33802 0 obj <>/P 5255 0 R/Type/Annot/A 34039 0 R/Subtype/Link/Rect[246 159 258 168]/Border[0 0 0]/H/N>> endobj 33803 0 obj <>/P 5255 0 R/Type/Annot/A 34037 0 R/Subtype/Link/Rect[230 149 244 158]/Border[0 0 0]/H/N>> endobj 33804 0 obj <>/P 5255 0 R/Type/Annot/A 34035 0 R/Subtype/Link/Rect[246 149 258 158]/Border[0 0 0]/H/N>> endobj 33805 0 obj <>/P 5255 0 R/Type/Annot/A 34033 0 R/Subtype/Link/Rect[424 669 438 677]/Border[0 0 0]/H/N>> endobj 33806 0 obj <>/P 5255 0 R/Type/Annot/A 34031 0 R/Subtype/Link/Rect[440 669 454 677]/Border[0 0 0]/H/N>> endobj 33807 0 obj <>/P 5255 0 R/Type/Annot/A 34029 0 R/Subtype/Link/Rect[456 669 468 677]/Border[0 0 0]/H/N>> endobj 33808 0 obj <>/P 5255 0 R/Type/Annot/A 34027 0 R/Subtype/Link/Rect[397 659 409 667]/Border[0 0 0]/H/N>> endobj 33809 0 obj <>/P 5255 0 R/Type/Annot/A 34053 0 R/Subtype/Link/Rect[419 649 431 657]/Border[0 0 0]/H/N>> endobj 33810 0 obj <>/P 5255 0 R/Type/Annot/A 34025 0 R/Subtype/Link/Rect[429 639 441 648]/Border[0 0 0]/H/N>> endobj 33811 0 obj <>/P 5255 0 R/Type/Annot/A 34023 0 R/Subtype/Link/Rect[442 639 452 647]/Border[0 0 0]/H/N>> endobj 33812 0 obj <>/P 5255 0 R/Type/Annot/A 34021 0 R/Subtype/Link/Rect[454 639 464 647]/Border[0 0 0]/H/N>> endobj 33813 0 obj <>/P 5255 0 R/Type/Annot/A 34019 0 R/Subtype/Link/Rect[466 639 480 647]/Border[0 0 0]/H/N>> endobj 33814 0 obj <>/P 5255 0 R/Type/Annot/A 34017 0 R/Subtype/Link/Rect[482 639 496 647]/Border[0 0 0]/H/N>> endobj 33815 0 obj <>/P 5255 0 R/Type/Annot/A 34015 0 R/Subtype/Link/Rect[359 629 375 638]/Border[0 0 0]/H/N>> endobj 33816 0 obj <>/P 5255 0 R/Type/Annot/A 34013 0 R/Subtype/Link/Rect[376 629 390 637]/Border[0 0 0]/H/N>> endobj 33817 0 obj <>/P 5255 0 R/Type/Annot/A 34011 0 R/Subtype/Link/Rect[392 629 406 637]/Border[0 0 0]/H/N>> endobj 33818 0 obj <>/P 5255 0 R/Type/Annot/A 34009 0 R/Subtype/Link/Rect[408 629 420 637]/Border[0 0 0]/H/N>> endobj 33819 0 obj <>/P 5255 0 R/Type/Annot/A 34007 0 R/Subtype/Link/Rect[397 619 409 627]/Border[0 0 0]/H/N>> endobj 33820 0 obj <>/P 5255 0 R/Type/Annot/A 34005 0 R/Subtype/Link/Rect[410 609 422 617]/Border[0 0 0]/H/N>> endobj 33821 0 obj <>/P 5255 0 R/Type/Annot/A 34003 0 R/Subtype/Link/Rect[414 599 431 608]/Border[0 0 0]/H/N>> endobj 33822 0 obj <>/P 5255 0 R/Type/Annot/A 34001 0 R/Subtype/Link/Rect[432 599 446 607]/Border[0 0 0]/H/N>> endobj 33823 0 obj <>/P 5255 0 R/Type/Annot/A 33999 0 R/Subtype/Link/Rect[448 599 462 607]/Border[0 0 0]/H/N>> endobj 33824 0 obj <>/P 5255 0 R/Type/Annot/A 33997 0 R/Subtype/Link/Rect[464 599 478 607]/Border[0 0 0]/H/N>> endobj 33825 0 obj <>/P 5255 0 R/Type/Annot/A 33995 0 R/Subtype/Link/Rect[480 599 494 607]/Border[0 0 0]/H/N>> endobj 33826 0 obj <>/P 5255 0 R/Type/Annot/A 33993 0 R/Subtype/Link/Rect[359 589 375 598]/Border[0 0 0]/H/N>> endobj 33827 0 obj <>/P 5255 0 R/Type/Annot/A 33991 0 R/Subtype/Link/Rect[376 589 388 597]/Border[0 0 0]/H/N>> endobj 33828 0 obj <>/P 5255 0 R/Type/Annot/A 33989 0 R/Subtype/Link/Rect[397 579 409 587]/Border[0 0 0]/H/N>> endobj 33829 0 obj <>/P 5255 0 R/Type/Annot/A 33987 0 R/Subtype/Link/Rect[424 569 438 577]/Border[0 0 0]/H/N>> endobj 33830 0 obj <>/P 5255 0 R/Type/Annot/A 33985 0 R/Subtype/Link/Rect[440 569 452 577]/Border[0 0 0]/H/N>> endobj 33831 0 obj <>/P 5255 0 R/Type/Annot/A 33982 0 R/Subtype/Link/Rect[405 559 417 567]/Border[0 0 0]/H/N>> endobj 33832 0 obj <>/P 5255 0 R/Type/Annot/A 33980 0 R/Subtype/Link/Rect[429 549 443 557]/Border[0 0 0]/H/N>> endobj 33833 0 obj <>/P 5255 0 R/Type/Annot/A 33978 0 R/Subtype/Link/Rect[445 549 457 557]/Border[0 0 0]/H/N>> endobj 33834 0 obj <>/P 5255 0 R/Type/Annot/A 33976 0 R/Subtype/Link/Rect[397 539 409 547]/Border[0 0 0]/H/N>> endobj 33835 0 obj <>/P 5255 0 R/Type/Annot/A 33974 0 R/Subtype/Link/Rect[410 529 422 537]/Border[0 0 0]/H/N>> endobj 33836 0 obj <>/P 5255 0 R/Type/Annot/A 33972 0 R/Subtype/Link/Rect[434 519 448 527]/Border[0 0 0]/H/N>> endobj 33837 0 obj <>/P 5255 0 R/Type/Annot/A 33970 0 R/Subtype/Link/Rect[450 519 464 527]/Border[0 0 0]/H/N>> endobj 33838 0 obj <>/P 5255 0 R/Type/Annot/A 33968 0 R/Subtype/Link/Rect[466 519 478 527]/Border[0 0 0]/H/N>> endobj 33839 0 obj <>/P 5255 0 R/Type/Annot/A 33966 0 R/Subtype/Link/Rect[397 509 409 517]/Border[0 0 0]/H/N>> endobj 33840 0 obj <>/P 5255 0 R/Type/Annot/A 33964 0 R/Subtype/Link/Rect[434 499 448 507]/Border[0 0 0]/H/N>> endobj 33841 0 obj <>/P 5255 0 R/Type/Annot/A 33962 0 R/Subtype/Link/Rect[450 499 464 507]/Border[0 0 0]/H/N>> endobj 33842 0 obj <>/P 5255 0 R/Type/Annot/A 33984 0 R/Subtype/Link/Rect[466 499 478 507]/Border[0 0 0]/H/N>> endobj 33843 0 obj <>/P 5255 0 R/Type/Annot/A 33960 0 R/Subtype/Link/Rect[397 489 409 497]/Border[0 0 0]/H/N>> endobj 33844 0 obj <>/P 5255 0 R/Type/Annot/A 33958 0 R/Subtype/Link/Rect[419 479 433 487]/Border[0 0 0]/H/N>> endobj 33845 0 obj <>/P 5255 0 R/Type/Annot/A 33956 0 R/Subtype/Link/Rect[435 479 449 487]/Border[0 0 0]/H/N>> endobj 33846 0 obj <>/P 5255 0 R/Type/Annot/A 33954 0 R/Subtype/Link/Rect[451 479 463 487]/Border[0 0 0]/H/N>> endobj 33847 0 obj <>/P 5255 0 R/Type/Annot/A 33952 0 R/Subtype/Link/Rect[397 469 409 477]/Border[0 0 0]/H/N>> endobj 33848 0 obj <>/P 5255 0 R/Type/Annot/A 33950 0 R/Subtype/Link/Rect[434 459 448 467]/Border[0 0 0]/H/N>> endobj 33849 0 obj <>/P 5255 0 R/Type/Annot/A 33948 0 R/Subtype/Link/Rect[450 459 464 467]/Border[0 0 0]/H/N>> endobj 33850 0 obj <>/P 5255 0 R/Type/Annot/A 33946 0 R/Subtype/Link/Rect[466 459 480 467]/Border[0 0 0]/H/N>> endobj 33851 0 obj <>/P 5255 0 R/Type/Annot/A 33944 0 R/Subtype/Link/Rect[482 459 494 467]/Border[0 0 0]/H/N>> endobj 33852 0 obj <>/P 5255 0 R/Type/Annot/A 33942 0 R/Subtype/Link/Rect[397 449 409 457]/Border[0 0 0]/H/N>> endobj 33853 0 obj <>/P 5255 0 R/Type/Annot/A 33940 0 R/Subtype/Link/Rect[405 439 419 447]/Border[0 0 0]/H/N>> endobj 33854 0 obj <>/P 5255 0 R/Type/Annot/A 33938 0 R/Subtype/Link/Rect[421 439 435 447]/Border[0 0 0]/H/N>> endobj 33855 0 obj <>/P 5255 0 R/Type/Annot/A 33937 0 R/Subtype/Link/Rect[437 439 453 448]/Border[0 0 0]/H/N>> endobj 33856 0 obj <>/P 5255 0 R/Type/Annot/A 33935 0 R/Subtype/Link/Rect[454 439 468 447]/Border[0 0 0]/H/N>> endobj 33857 0 obj <>/P 5255 0 R/Type/Annot/A 33933 0 R/Subtype/Link/Rect[470 439 484 447]/Border[0 0 0]/H/N>> endobj 33858 0 obj <>/P 5255 0 R/Type/Annot/A 33932 0 R/Subtype/Link/Rect[486 439 503 448]/Border[0 0 0]/H/N>> endobj 33859 0 obj <>/P 5255 0 R/Type/Annot/A 33931 0 R/Subtype/Link/Rect[503 439 517 447]/Border[0 0 0]/H/N>> endobj 33860 0 obj <>/P 5255 0 R/Type/Annot/A 33930 0 R/Subtype/Link/Rect[359 429 375 438]/Border[0 0 0]/H/N>> endobj 33861 0 obj <>/P 5255 0 R/Type/Annot/A 33929 0 R/Subtype/Link/Rect[376 429 388 437]/Border[0 0 0]/H/N>> endobj 33862 0 obj <>/P 5255 0 R/Type/Annot/A 33928 0 R/Subtype/Link/Rect[397 419 409 427]/Border[0 0 0]/H/N>> endobj 33863 0 obj <>/P 5255 0 R/Type/Annot/A 33927 0 R/Subtype/Link/Rect[410 409 424 417]/Border[0 0 0]/H/N>> endobj 33864 0 obj <>/P 5255 0 R/Type/Annot/A 33926 0 R/Subtype/Link/Rect[426 409 440 417]/Border[0 0 0]/H/N>> endobj 33865 0 obj <>/P 5255 0 R/Type/Annot/A 33925 0 R/Subtype/Link/Rect[442 409 456 417]/Border[0 0 0]/H/N>> endobj 33866 0 obj <>/P 5255 0 R/Type/Annot/A 33936 0 R/Subtype/Link/Rect[458 409 474 418]/Border[0 0 0]/H/N>> endobj 33867 0 obj <>/P 5255 0 R/Type/Annot/A 33934 0 R/Subtype/Link/Rect[475 409 487 417]/Border[0 0 0]/H/N>> endobj 33868 0 obj <>/P 5255 0 R/Type/Annot/A 34180 0 R/Subtype/Link/Rect[397 399 409 407]/Border[0 0 0]/H/N>> endobj 33869 0 obj <>/P 5255 0 R/Type/Annot/A 34176 0 R/Subtype/Link/Rect[429 389 443 397]/Border[0 0 0]/H/N>> endobj 33870 0 obj <>/P 5255 0 R/Type/Annot/A 34174 0 R/Subtype/Link/Rect[445 389 457 397]/Border[0 0 0]/H/N>> endobj 33871 0 obj <>/P 5255 0 R/Type/Annot/A 34172 0 R/Subtype/Link/Rect[397 379 409 387]/Border[0 0 0]/H/N>> endobj 33872 0 obj <>/P 5255 0 R/Type/Annot/A 34170 0 R/Subtype/Link/Rect[410 369 426 378]/Border[0 0 0]/H/N>> endobj 33873 0 obj <>/P 5255 0 R/Type/Annot/A 34168 0 R/Subtype/Link/Rect[427 369 439 377]/Border[0 0 0]/H/N>> endobj 33874 0 obj <>/P 5255 0 R/Type/Annot/A 34166 0 R/Subtype/Link/Rect[397 359 409 367]/Border[0 0 0]/H/N>> endobj 33875 0 obj <>/P 5255 0 R/Type/Annot/A 34164 0 R/Subtype/Link/Rect[410 349 424 357]/Border[0 0 0]/H/N>> endobj 33876 0 obj <>/P 5255 0 R/Type/Annot/A 34162 0 R/Subtype/Link/Rect[426 349 438 357]/Border[0 0 0]/H/N>> endobj 33877 0 obj <>/P 5255 0 R/Type/Annot/A 34160 0 R/Subtype/Link/Rect[397 339 409 347]/Border[0 0 0]/H/N>> endobj 33878 0 obj <>/P 5255 0 R/Type/Annot/A 34158 0 R/Subtype/Link/Rect[405 329 417 338]/Border[0 0 0]/H/N>> endobj 33879 0 obj <>/P 5255 0 R/Type/Annot/A 34156 0 R/Subtype/Link/Rect[405 319 414 328]/Border[0 0 0]/H/N>> endobj 33880 0 obj <>/P 5255 0 R/Type/Annot/A 34153 0 R/Subtype/Link/Rect[416 319 430 328]/Border[0 0 0]/H/N>> endobj 33881 0 obj <>/P 5255 0 R/Type/Annot/A 34151 0 R/Subtype/Link/Rect[432 319 446 328]/Border[0 0 0]/H/N>> endobj 33882 0 obj <>/P 5255 0 R/Type/Annot/A 34149 0 R/Subtype/Link/Rect[448 319 462 328]/Border[0 0 0]/H/N>> endobj 33883 0 obj <>/P 5255 0 R/Type/Annot/A 34147 0 R/Subtype/Link/Rect[464 319 478 328]/Border[0 0 0]/H/N>> endobj 33884 0 obj <>/P 5255 0 R/Type/Annot/A 34145 0 R/Subtype/Link/Rect[480 319 494 328]/Border[0 0 0]/H/N>> endobj 33885 0 obj <>/P 5255 0 R/Type/Annot/A 34143 0 R/Subtype/Link/Rect[496 319 510 328]/Border[0 0 0]/H/N>> endobj 33886 0 obj <>/P 5255 0 R/Type/Annot/A 34141 0 R/Subtype/Link/Rect[359 309 373 318]/Border[0 0 0]/H/N>> endobj 33887 0 obj <>/P 5255 0 R/Type/Annot/A 34139 0 R/Subtype/Link/Rect[375 309 389 318]/Border[0 0 0]/H/N>> endobj 33888 0 obj <>/P 5255 0 R/Type/Annot/A 34154 0 R/Subtype/Link/Rect[391 309 405 318]/Border[0 0 0]/H/N>> endobj 33889 0 obj <>/P 5255 0 R/Type/Annot/A 34135 0 R/Subtype/Link/Rect[407 309 421 318]/Border[0 0 0]/H/N>> endobj 33890 0 obj <>/P 5255 0 R/Type/Annot/A 34133 0 R/Subtype/Link/Rect[423 309 437 318]/Border[0 0 0]/H/N>> endobj 33891 0 obj <>/P 5255 0 R/Type/Annot/A 34131 0 R/Subtype/Link/Rect[439 309 451 318]/Border[0 0 0]/H/N>> endobj 33892 0 obj <>/P 5255 0 R/Type/Annot/A 34129 0 R/Subtype/Link/Rect[397 299 409 308]/Border[0 0 0]/H/N>> endobj 33893 0 obj <>/P 5255 0 R/Type/Annot/A 34127 0 R/Subtype/Link/Rect[410 289 426 298]/Border[0 0 0]/H/N>> endobj 33894 0 obj <>/P 5255 0 R/Type/Annot/A 34125 0 R/Subtype/Link/Rect[427 289 441 298]/Border[0 0 0]/H/N>> endobj 33895 0 obj <>/P 5255 0 R/Type/Annot/A 34123 0 R/Subtype/Link/Rect[443 289 457 298]/Border[0 0 0]/H/N>> endobj 33896 0 obj <>/P 5255 0 R/Type/Annot/A 34121 0 R/Subtype/Link/Rect[459 289 473 298]/Border[0 0 0]/H/N>> endobj 33897 0 obj <>/P 5255 0 R/Type/Annot/A 34119 0 R/Subtype/Link/Rect[475 289 487 298]/Border[0 0 0]/H/N>> endobj 33898 0 obj <>/P 5255 0 R/Type/Annot/A 34117 0 R/Subtype/Link/Rect[397 279 409 288]/Border[0 0 0]/H/N>> endobj 33899 0 obj <>/P 5255 0 R/Type/Annot/A 34115 0 R/Subtype/Link/Rect[438 269 452 278]/Border[0 0 0]/H/N>> endobj 33900 0 obj <>/P 5255 0 R/Type/Annot/A 34113 0 R/Subtype/Link/Rect[454 269 468 278]/Border[0 0 0]/H/N>> endobj 33901 0 obj <>/P 5255 0 R/Type/Annot/A 34111 0 R/Subtype/Link/Rect[470 269 482 278]/Border[0 0 0]/H/N>> endobj 33902 0 obj <>/P 5255 0 R/Type/Annot/A 34109 0 R/Subtype/Link/Rect[397 259 409 268]/Border[0 0 0]/H/N>> endobj 33903 0 obj <>/P 5255 0 R/Type/Annot/A 34107 0 R/Subtype/Link/Rect[448 249 462 258]/Border[0 0 0]/H/N>> endobj 33904 0 obj <>/P 5255 0 R/Type/Annot/A 34105 0 R/Subtype/Link/Rect[464 249 478 258]/Border[0 0 0]/H/N>> endobj 33905 0 obj <>/P 5255 0 R/Type/Annot/A 34103 0 R/Subtype/Link/Rect[480 249 492 258]/Border[0 0 0]/H/N>> endobj 33906 0 obj <>/P 5255 0 R/Type/Annot/A 34101 0 R/Subtype/Link/Rect[397 239 409 248]/Border[0 0 0]/H/N>> endobj 33907 0 obj <>/P 5255 0 R/Type/Annot/A 34099 0 R/Subtype/Link/Rect[429 229 441 238]/Border[0 0 0]/H/N>> endobj 33908 0 obj <>/P 5255 0 R/Type/Annot/A 34097 0 R/Subtype/Link/Rect[397 219 409 228]/Border[0 0 0]/H/N>> endobj 33909 0 obj <>/P 5255 0 R/Type/Annot/A 34095 0 R/Subtype/Link/Rect[443 209 457 218]/Border[0 0 0]/H/N>> endobj 33910 0 obj <>/P 5255 0 R/Type/Annot/A 34093 0 R/Subtype/Link/Rect[459 209 473 218]/Border[0 0 0]/H/N>> endobj 33911 0 obj <>/P 5255 0 R/Type/Annot/A 34091 0 R/Subtype/Link/Rect[475 209 487 218]/Border[0 0 0]/H/N>> endobj 33912 0 obj <>/P 5255 0 R/Type/Annot/A 34089 0 R/Subtype/Link/Rect[397 199 409 208]/Border[0 0 0]/H/N>> endobj 33913 0 obj <>/P 5255 0 R/Type/Annot/A 34087 0 R/Subtype/Link/Rect[453 189 467 198]/Border[0 0 0]/H/N>> endobj 33914 0 obj <>/P 5255 0 R/Type/Annot/A 34084 0 R/Subtype/Link/Rect[469 189 483 198]/Border[0 0 0]/H/N>> endobj 33915 0 obj <>/P 5255 0 R/Type/Annot/A 34082 0 R/Subtype/Link/Rect[485 189 497 198]/Border[0 0 0]/H/N>> endobj 33916 0 obj <>/P 5255 0 R/Type/Annot/A 34080 0 R/Subtype/Link/Rect[397 179 409 188]/Border[0 0 0]/H/N>> endobj 33917 0 obj <>/P 5255 0 R/Type/Annot/A 34078 0 R/Subtype/Link/Rect[429 169 443 178]/Border[0 0 0]/H/N>> endobj 33918 0 obj <>/P 5255 0 R/Type/Annot/A 34076 0 R/Subtype/Link/Rect[445 169 459 178]/Border[0 0 0]/H/N>> endobj 33919 0 obj <>/P 5255 0 R/Type/Annot/A 34073 0 R/Subtype/Link/Rect[461 169 473 178]/Border[0 0 0]/H/N>> endobj 33920 0 obj <>/P 5255 0 R/Type/Annot/A 34085 0 R/Subtype/Link/Rect[397 159 409 168]/Border[0 0 0]/H/N>> endobj 33921 0 obj <>/P 5255 0 R/Type/Annot/A 34067 0 R/Subtype/Link/Rect[414 149 431 158]/Border[0 0 0]/H/N>> endobj 33922 0 obj <>/P 5255 0 R/Type/Annot/A 34064 0 R/Subtype/Link/Rect[432 149 446 158]/Border[0 0 0]/H/N>> endobj 33923 0 obj <>/P 5255 0 R/Type/Annot/A 34061 0 R/Subtype/Link/Rect[448 149 462 158]/Border[0 0 0]/H/N>> endobj 33924 0 obj <>/P 5255 0 R/Type/Annot/A 34058 0 R/Subtype/Link/Rect[464 149 476 158]/Border[0 0 0]/H/N>> endobj 33925 0 obj <> endobj 33926 0 obj <> endobj 33927 0 obj <> endobj 33928 0 obj <> endobj 33929 0 obj <> endobj 33930 0 obj <> endobj 33931 0 obj <> endobj 33932 0 obj <> endobj 33933 0 obj <> endobj 33934 0 obj <> endobj 33935 0 obj <> endobj 33936 0 obj <> endobj 33937 0 obj <> endobj 33938 0 obj <> endobj 33939 0 obj <> endobj 33940 0 obj <> endobj 33941 0 obj <> endobj 33942 0 obj <> endobj 33943 0 obj <> endobj 33944 0 obj <> endobj 33945 0 obj <> endobj 33946 0 obj <> endobj 33947 0 obj <> endobj 33948 0 obj <> endobj 33949 0 obj <> endobj 33950 0 obj <> endobj 33951 0 obj <> endobj 33952 0 obj <> endobj 33953 0 obj <> endobj 33954 0 obj <> endobj 33955 0 obj <> endobj 33956 0 obj <> endobj 33957 0 obj <> endobj 33958 0 obj <> endobj 33959 0 obj <> endobj 33960 0 obj <> endobj 33961 0 obj <> endobj 33962 0 obj <> endobj 33963 0 obj <> endobj 33964 0 obj <> endobj 33965 0 obj <> endobj 33966 0 obj <> endobj 33967 0 obj <> endobj 33968 0 obj <> endobj 33969 0 obj <> endobj 33970 0 obj <> endobj 33971 0 obj <> endobj 33972 0 obj <> endobj 33973 0 obj <> endobj 33974 0 obj <> endobj 33975 0 obj <> endobj 33976 0 obj <> endobj 33977 0 obj <> endobj 33978 0 obj <> endobj 33979 0 obj <> endobj 33980 0 obj <> endobj 33981 0 obj <> endobj 33982 0 obj <> endobj 33983 0 obj <> endobj 33984 0 obj <> endobj 33985 0 obj <> endobj 33986 0 obj <> endobj 33987 0 obj <> endobj 33988 0 obj <> endobj 33989 0 obj <> endobj 33990 0 obj <> endobj 33991 0 obj <> endobj 33992 0 obj <> endobj 33993 0 obj <> endobj 33994 0 obj <> endobj 33995 0 obj <> endobj 33996 0 obj <> endobj 33997 0 obj <> endobj 33998 0 obj <> endobj 33999 0 obj <> endobj 34000 0 obj <> endobj 34001 0 obj <> endobj 34002 0 obj <> endobj 34003 0 obj <> endobj 34004 0 obj <> endobj 34005 0 obj <> endobj 34006 0 obj <> endobj 34007 0 obj <> endobj 34008 0 obj <> endobj 34009 0 obj <> endobj 34010 0 obj <> endobj 34011 0 obj <> endobj 34012 0 obj <> endobj 34013 0 obj <> endobj 34014 0 obj <> endobj 34015 0 obj <> endobj 34016 0 obj <> endobj 34017 0 obj <> endobj 34018 0 obj <> endobj 34019 0 obj <> endobj 34020 0 obj <> endobj 34021 0 obj <> endobj 34022 0 obj <> endobj 34023 0 obj <> endobj 34024 0 obj <> endobj 34025 0 obj <> endobj 34026 0 obj <> endobj 34027 0 obj <> endobj 34028 0 obj <> endobj 34029 0 obj <> endobj 34030 0 obj <> endobj 34031 0 obj <> endobj 34032 0 obj <> endobj 34033 0 obj <> endobj 34034 0 obj <> endobj 34035 0 obj <> endobj 34036 0 obj <> endobj 34037 0 obj <> endobj 34038 0 obj <> endobj 34039 0 obj <> endobj 34040 0 obj <> endobj 34041 0 obj <> endobj 34042 0 obj <> endobj 34043 0 obj <> endobj 34044 0 obj <> endobj 34045 0 obj <> endobj 34046 0 obj <> endobj 34047 0 obj <> endobj 34048 0 obj <> endobj 34049 0 obj <> endobj 34050 0 obj <> endobj 34051 0 obj <> endobj 34052 0 obj <> endobj 34053 0 obj <> endobj 34054 0 obj <> endobj 34055 0 obj <> endobj 34056 0 obj <> endobj 34057 0 obj <> endobj 34058 0 obj <> endobj 34059 0 obj <> endobj 34060 0 obj <> endobj 34061 0 obj <> endobj 34062 0 obj <> endobj 34063 0 obj <> endobj 34064 0 obj <> endobj 34065 0 obj <> endobj 34066 0 obj <> endobj 34067 0 obj <> endobj 34068 0 obj <> endobj 34069 0 obj <> endobj 34070 0 obj <> endobj 34071 0 obj <> endobj 34072 0 obj <> endobj 34073 0 obj <> endobj 34074 0 obj <> endobj 34075 0 obj <> endobj 34076 0 obj <> endobj 34077 0 obj <> endobj 34078 0 obj <> endobj 34079 0 obj <> endobj 34080 0 obj <> endobj 34081 0 obj <> endobj 34082 0 obj <> endobj 34083 0 obj <> endobj 34084 0 obj <> endobj 34085 0 obj <> endobj 34086 0 obj <> endobj 34087 0 obj <> endobj 34088 0 obj <> endobj 34089 0 obj <> endobj 34090 0 obj <> endobj 34091 0 obj <> endobj 34092 0 obj <> endobj 34093 0 obj <> endobj 34094 0 obj <> endobj 34095 0 obj <> endobj 34096 0 obj <> endobj 34097 0 obj <> endobj 34098 0 obj <> endobj 34099 0 obj <> endobj 34100 0 obj <> endobj 34101 0 obj <> endobj 34102 0 obj <> endobj 34103 0 obj <> endobj 34104 0 obj <> endobj 34105 0 obj <> endobj 34106 0 obj <> endobj 34107 0 obj <> endobj 34108 0 obj <> endobj 34109 0 obj <> endobj 34110 0 obj <> endobj 34111 0 obj <> endobj 34112 0 obj <> endobj 34113 0 obj <> endobj 34114 0 obj <> endobj 34115 0 obj <> endobj 34116 0 obj <> endobj 34117 0 obj <> endobj 34118 0 obj <> endobj 34119 0 obj <> endobj 34120 0 obj <> endobj 34121 0 obj <> endobj 34122 0 obj <> endobj 34123 0 obj <> endobj 34124 0 obj <> endobj 34125 0 obj <> endobj 34126 0 obj <> endobj 34127 0 obj <> endobj 34128 0 obj <> endobj 34129 0 obj <> endobj 34130 0 obj <> endobj 34131 0 obj <> endobj 34132 0 obj <> endobj 34133 0 obj <> endobj 34134 0 obj <> endobj 34135 0 obj <> endobj 34136 0 obj <> endobj 34137 0 obj <> endobj 34138 0 obj <> endobj 34139 0 obj <> endobj 34140 0 obj <> endobj 34141 0 obj <> endobj 34142 0 obj <> endobj 34143 0 obj <> endobj 34144 0 obj <> endobj 34145 0 obj <> endobj 34146 0 obj <> endobj 34147 0 obj <> endobj 34148 0 obj <> endobj 34149 0 obj <> endobj 34150 0 obj <> endobj 34151 0 obj <> endobj 34152 0 obj <> endobj 34153 0 obj <> endobj 34154 0 obj <> endobj 34155 0 obj <> endobj 34156 0 obj <> endobj 34157 0 obj <> endobj 34158 0 obj <> endobj 34159 0 obj <> endobj 34160 0 obj <> endobj 34161 0 obj <> endobj 34162 0 obj <> endobj 34163 0 obj <> endobj 34164 0 obj <> endobj 34165 0 obj <> endobj 34166 0 obj <> endobj 34167 0 obj <> endobj 34168 0 obj <> endobj 34169 0 obj <> endobj 34170 0 obj <> endobj 34171 0 obj <> endobj 34172 0 obj <> endobj 34173 0 obj <> endobj 34174 0 obj <> endobj 34175 0 obj <> endobj 34176 0 obj <> endobj 34177 0 obj <> endobj 34178 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 34179 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 34180 0 obj <> endobj 34181 0 obj <> stream q /X1 Do Q q endstream endobj 34182 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 34183 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 34184 0 obj <> stream HW]o|؛HM'?n_IAjP;VA?v uRN8JB˜g0,( a51`iƽ&5^qo{ø7Ľa2-qow{G;ƽ#>"#}Dnj1q3c>a'}¸Oq)tV1Xh,cbZ1Ϣ1Y=ƀŴcŸ'Lk1Y{ZʹcbZ1bܓj,=ifZ1`1Řg1Ik5Zy㞴V3b̳i-Fh|2O7~_%Zd+8M<+{DmOU}iu&}`ĭa$ݴ_gkypʆRGӠm "9.SJɩpSt=$|>njKh@nS&x $:Xӂ)8{D}t6Q2IltQ2>6sppL Ss N[,M48ra2+Ayxw~غ]u&;Y|y#~۪˔Ƌmjz.ooaKWdzn|w/|u]c?a٦ =C$L>vttO#fKc0QRc:T33;d 6x>]Wklc^q~MB;=5^f-VmaG럞ȶ2j@W owy0SYȟ? fF\.^ \N<yy7]Q_.s!і& 4dr{x6#hgKƚN0Ge !O0=^墆E~6ZѸwò>|znyW!fpM0VgqC;Z:T =]Gm„;d\2HT搖!Wׯ.:YTPgX;È? GFؼ]!?+o*hn(Z<f]'C6)a/"[<ȂW@Uendstream endobj 34185 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 34186 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 34187 0 obj <> endobj 34188 0 obj <> endobj 34189 0 obj <> stream q /X1 Do Q q endstream endobj 34190 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 34191 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 34192 0 obj <> stream HWmo8.&bkHmw@ZYW~g(ʖqz(GÙyE۳~/,a?WW17 t.T,-]EWۢmVuٷՊUtۍ`]r]-8[G6IadYe-X~(5Gq`?]d/N7}[;hvuߖu*cگ6ž/[(}c|j8o{dƄax"oCTo!ʳ!J(;!y(A{A{I{I{I{EW{EW{M{M{M`S}Y>#g`s} yMrBZ߆oZ߆oCT޷PoC>P TET+6@m"j}jZ(B Q@PoC>P TEַ!`Vm"j}[IB Q!{(B Q!{߆oZ߆(}ZIַ!`Vm"TET+ 6DJB Pj}j%Z߆(}ZIַPoC>P$TET+ :Rj}B Pj}B Q!{(B Q@PoC>P"TEַ!`Vm"Uj}6D*B Q@PoZ߆(}ZEַ!`Vmu 6D}6D}B&6(pUG/ՒQ}k|)KSÖutiYY6Ud%Jo /ʒ훮mWeᅂEcaoڞu}M2q>cv"rq}C3\St)S}ll죬a.?Iʵ7ynsѷb{(-RSbP\bv/vSa-S~Cĩȳy!PHlSCM*,u3yt#~[{.sN:B֞Wyl ܖT%He:wOn7~؍rzس݈!21seAUVcC&d^uJjzeCۥJfoɫ8~/a3ڡUE}Ӟ*ciŗW_zw jUϯm:ԉa%b]=T3>Ev$-()!渀YV$c,>Z%*Km\w8 |tqw6&ϓ$1NҷyT7\࣭K7l\cqw{nݧEm1\ \H!I$RPr >exy]3 ӡ:AOx9<xD@ݺ?:\U Iz\~>2 .OaT{Áo?Őlp A2{mtNGgCrBٿƓMtt拾Gj18 |= 0/u| s1]g#4:*dX :QV۞NI*i-8-~;A7A7-bݭ<sπ CT?oѸ>?t Sk3U@ oY5'T i䃒^fM$$}8BWhN?ϥ&rG7Ţ3G%;i3c8@4|&E6lGޖE#SK08 w&> WmSh`"0ӡGm >!hbyK|Њ{>,wJP! 6*\_d+stu^NN;'5endstream endobj 34193 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 34194 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 34195 0 obj <> endobj 34196 0 obj <> endobj 34197 0 obj <> endobj 34198 0 obj <> endobj 34199 0 obj <> endobj 34200 0 obj <> endobj 34201 0 obj <> endobj 34202 0 obj <> endobj 34203 0 obj <> stream q /X1 Do Q q endstream endobj 34204 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 34205 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 34206 0 obj <> stream HWn8}W 82oduXA篃g"G`yc}챏 >!'`x}O >%ا`y3YAI!gE!gw}"TET+ պ>D=JBPj]j%Zׇ(ZIPCS$TET+ պ>@u}"{j]j%Z׷ Zׇ(Zׇ(CPCS"TETպ>@u}"{Uj]jZ(BQ{OPCS"TE!`Vu}"{Uj]*Єj]|Pj]|Q>{(BQ{OPCS&TE!`Vu}"{Մj]պ>D=jBQ{OPZׇ(ZM!`Vu} "Tw}"Tw}gaeqcUp'y.`} x!0fq|,?gQVz, bZ XYE\Nmu_',L_?P#kXd L+@ϯCYYDzb۲; \ٴ'%y5`@s٬>Y;}܅P&`\f*()à{,*=ޖriL᮳x(n(U8{ܬuQݦ> 9V߫N 3a#]B3iq\9p[pU_.&%[Df[ߙnb,J+a]&0 Xwwoܽ\ ݙXtOn(=Hc}4î`Z;6N Z8x?}C?RōұNBvw) R$2apkT 3I?$ I]ٮJ6&'&/tHPpCMyph)Fk.34+ZFӀ5 `4l[ n 6-(%[S<8`}Et ,'$lp~9pItl-A4X}K5 .I 4|$7VȴW~u &}|"N2 ^k#fo?tĽh W6 mYjBcI* AJ^5V"ylO Prbjb&)[0(˦'=6t")=j4ͦ EEi@7_г :fC {6/<{sq6:ۛ4I(x97/y ?N6xyې$Ә<M>&Qdz((5w|u9<+`pEl[o#WzGPc&Bld,f3@K3d@xdܼס̱gLi5:::d(R;}2PlotS`(Ph 񙕎 O]y_l#PLS? 9B݊`\,YI m5T"6Y:狏Rma"138? C-=]c},&4#t&zcj`73StXiX-J, IC{Ķ#ﱦy6n赂[{5Ʉ_b;80s1tm!*We_?O鋣A܏ uep/ն۸ D~ & u8iQ쾸+ԱC }P 9qǃ4*@vcXp %eii sXM6ԇYTFr5/MȦ,6P'HaT7N )&*{&՗^JSwm eB`C|j~ymnpV8"Ħp$4i "N=Ef0CIf(#:)/%R+ScFOu8N5RvnG=c1֬GK ;Oɓ:`s0db:2˔豁m󦕏᤟ VUS_r +b\$r~8z|shUTnnZð$+4kZ4BH/]f^L~}nVAt]6PA12<4QLi^f& 8X[z7Yr<ó*Bd 3k1g}7hbN?,VbnbC |#wxj`=sWs^VO(Ǫ/]=qz,׳#|툠rpBF+@ ]$wNn(/])Z3Lb шmURR]s8;"t|`, +E AjP^'EFyڷوU_S9gBtZ`!C={TC |"cn.* *:*W+aX#ڿrZNh?- 8WʀeˑAܹ2н#sl %焌 ;>^4pT,GQvS-Ŷ  ttTJ3Uz/`H= NRrzzhN2L<8&{T|޵5xq9MM;J9c4Eon~]]_ѫendstream endobj 34207 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 34208 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 34209 0 obj <> endobj 34210 0 obj <> endobj 34211 0 obj <> stream q /X1 Do Q q endstream endobj 34212 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 34213 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 34214 0 obj <> stream H|WkoH_1a)М>8bdpY(YR&%Y-XS]3Eky/oLd^|"3qh C]l܇3Yę e 275 ?YWݗͪiuٵܴUp37$8kg,D0i,d\'_z?Yeabjƌ$]4u׎?O=sGm:u&aTI'?kZ:|I|wsd&(|t?A2()4yEt9Zޭ%F,;NW=p{{>c>c>>>>S>S>3>3>3>s>s Uf-ց{ Vb%,^b{ZR+1f*Vb{ZR+1f*Vb{ZR+1f*Vb{ZR+1f*VbJYڽĈR+1ficv/1bJYJ{ZR+1bJYJ{ZR+1bJYJ{ZR+1bJYJ{ZR+uJYڽĈR+1ficv/1bJYJm R+1f*1HĈR+1f*1HĘܫ #HĘܫ cpRJX cpRJYJm R+uJYڽĈR+1ficv_EQ&:x= 'k&F=NajҴ0up5jg+3~jd4oYɻ:L le݅4ޑWˮM6_ Oṵ%Ʋws3f3-M}X m_uI& }R2a}|g^1,Xi@+VZ JVTi@+UZʔV2\i@+WZ*V "%1fi--,вJ-R}@KY@K}/1f-ĘT;cR}@KY@K}/1f-ĘT{c֒@KY@K}/1f-ĘT{cR}AKY@K}/1f-ĘT{cR}AKY@K} ^bZ#{1 hAKY@K} ^bZccR}Ù@KY@K} ^bS}/1f-1{=SOYR+}/1fi-hO@:㧣p[UWEiex)n)˶%G)$msUI(Y˪.чW/c0"IZWWJ0ޏ+Wǵ.?\-LUQ8#\Xgl4LUj>jx➴7 0|L?kaP%4γCZJF8YkP.qxf.Ob]vo6ݢv=pY-_Ͽb׆2izg#ćٞ,ޖח߯0U9oPT7g ;N60w zwɃ(:>|P&CGɼxaXM`~˩xkV+y3c ¦a{MC\ދABwĴ,iqmdqS/69Hw?)g&D1Thj}; ~a 07endstream endobj 34215 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 34216 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 34217 0 obj <> endobj 34218 0 obj <> endobj 34219 0 obj <> endobj 34220 0 obj <> endobj 34221 0 obj <> endobj 34222 0 obj <> endobj 34223 0 obj <> stream H\n0EY6GH$ )"Ģ5{H YaP*Ւc\թr{GhZg=+Zlke5?MW{2 #vkz5D0W\-X WyYAt{b( A/;h+Kv֤9yt^'b_ 1F4ٵ1uP:982By^S!7Ǚ(%I79[e .O'f񐱇lxf*ĩp,ro̹p^p,p,s@tHC˞[HS 0endstream endobj 34224 0 obj <> stream HT{LSg[(ZGo/^i&C1A !s( RQq *Df`|MN&L':tsC%۪;>컀.cK~y\$5sEV&9x)/G$EhHb/A, [@TR56[@.ladd>SK+X nUA\h2뭆ǥ \ j6}gpzj-)K4%x&Ƭ9!&|KQŘcԛ\ )$2XNq$$VK4#|Pa鄘F2 ;'5/$$S&}Sp5NNIp!R 𫸹qSw8WG 8%&ЙNދy͡G^e~.e+ HrɜuV6:sh5]d7z>:Gj߫1z@NmjnP֩%QXRZ } 0馲+s 4&ۖ,v}ZWenx~'N:`hgSnNC:"!9 Da |^hVXUo7o[.~XE;& |`Dm"ly{:-NfLi62J-ħTG)8Ԓ@vDFQl#\&Aj1}@G yޤڏ]9ut. g԰Podgkcd L]K1dn5x_ QNb 0fG6g bT c1yP";uHEI`wVg0f;::?cS$d_'[;NW/,s =8 afu'gOj{^JVWvv ylRgJ5x_P+jL}HF}NA8"Es* Ixo) -Jfc2(R0db|ѳ?DѺY2puAGGqlsx`ѿ.9p^> endobj 34226 0 obj <> endobj 34227 0 obj <> endobj 34228 0 obj <> endobj 34229 0 obj <> endobj 34230 0 obj <> endobj 34231 0 obj <> stream q /X1 Do Q q endstream endobj 34232 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 34233 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 34234 0 obj <> stream HWko_q" )i_I>$qlaV`0m3å$b{ϑ(K:gl#%sP:޼zuoMb޼y]Ȇؖ~`Ǚ3yԙcQbn"kZ}yv];5]əu+{5uT")MI&O S-ѧfڷ4$.s{Sf;bĹM=tcfs8jEƸ-I/-.(!v|761I+`.?'ffgfETG<䔚S M"IYz9ZRޭ%F,;NW=p{{>A}PS>US>US>U3>S3>Ss>Ws>Ws>W P PKTK^uւJl9Z1K@k%,^b%F,Z1 WucpZ@k%F,Z1 WucpZ@k%F,Z1 WucpZ@k%F,Z1 WucpZ@k%K'@r@%ƳR h{TȽxjZc֒c@K>fjFrK؍a<4r:5椾o=IT_ #F|F_%]+}w?je8b6v& ̖|95S3fEl碑U;`c?0:ZlMFrݛmݙkZ}w14? b@֚N^ONz2rw* hqn;U./m$?^L&KZh2_ۛ% f2K؝^v 7jjV9׎^`䈔8"ͶޮMEYd򄝃s:0>='}ɲ8%]ޘuC_tfâA뢊.>i 0endstream endobj 34235 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 34236 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 34237 0 obj <> endobj 34238 0 obj <> endobj 34239 0 obj <> endobj 34240 0 obj <> endobj 34241 0 obj <> endobj 34242 0 obj <> stream q /X1 Do Q q endstream endobj 34243 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 34244 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 34245 0 obj <> stream Hoo۶Sp!cW{mtڥ7n{A$*b;nGڲ(rp1,)~|~^˗NF^z(=rCO%MRI IFNJOWa(բE rLa$ᤸM} #;'XNir1x8ݔOB}*)OOfU9UEג̷`z,ŷVYJ1Y;Hkh{<.T?g䣝= ILpJY~O (12&d `8k _k<@QvCf)zzzzzWzWzׁzׁzׁQSD}Y>Cg QsD}y M rĴ6MZXsT,5GaRkaQq-9 QV 5K!5G! ĵ(D}Z,\+škZXZXs>p@\ kBkamHĵP=Y q-9*Tk Úšk%ZXs>pD\ kB\ kBkaQq-Y q-9 QV"5G!Jĵf)ĵ(D}Z\+4QkaQzXZXsT5K!5G!*ĵ(D}Z,\škZXZXs>pB\ kBUkaRkaQ q-9 QV!išBf)ĵP=9*To1Ffks[zA~ȐfAsS! He].L9Mr:t?)Y~#n2+R$/̮ VvZ{m}5{&bg4KhE흘#^#~U:|^yb$ut(e5IR@GGǣQd !7>-oJorjC t] 'ud65-$}:拎PZWpy;)5 w&dm&SFlr # '͞qvpa{UvX ahz+`:us/yFUT@fhބvb˿ks̤?f,mʆibO-su:j}W.SZh#9e)~{zll𵉸nO;}{@FV/RUo@ x3~P5/\[n5?}V|9u)(ƟոzG2=#cKn"#ڨrxwh6+4lg;ʼFmeiTmUa4 !azI%(k2]%3?Uf"߉"d*O]WmUEt/Oׁ=ӏ铟=[*?zDczGؘWS Ly6k?k`0ʙqD/ R{1cdvѸԵ{G9g[qO=q`<ޣiݫQ5`<ӻCv0 !3]>M,<ߺ} F3ӻ.ë)Fػ^ >\Pd^IvO.M1Q~~#wYݫ13޽ַF?#d=nG-/^a|9Dq44jLxCO9\gU)=Nv;sMZMĶ+j_2iq>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 34247 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 34248 0 obj <> endobj 34249 0 obj <> endobj 34250 0 obj <> endobj 34251 0 obj <> endobj 34252 0 obj <> stream q /X1 Do Q q endstream endobj 34253 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 34254 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 34255 0 obj <> stream H[oF+.ZHxA<ؖ ,QrI:iZwVhf0|;<:i:SŋӓH;sƁϬJ U@SFCpi -\Z]SM+7mt\DB h(QMb!5!3(U9U g=(^=mU|y(eM);-IhוD=,ӉaŨt{Ye ^2 &x\)e{"rO=9ģcLT .ގjҚ\^pQv9F )Oѧ}3>c@1\}.гj!T[FFH-ՂS ]Bj\j驆.!T .Zp ,FH-%j%г!T .R-zZ#j%г!TCZ@RkR-zZ#j ZpqzKH-ՂS-8=%j%гZ!T . R-zZ+j%гZ!TCZ@RkR-zZ+jRKYjZ@RkRm9!T .NO5t ZpqzR-zZ'j%г:!TCZ@RR-zZ'jRKYjZ@RR ]Bj\=KRKYjZ-#/j驆.!T .NOA8]FE4( yo )I+ 2UsF-<궬GAM2;8`s|wq1OR2H|reӌۯ-.^ Uyh2nit9Y6i cR5Xͪb*U␲M?nԋ˄m'qT:0^U3l-;n;~4pXO_ 0 $E[ޫlפ9B5d9A#w^mz\U;)gI)*ycU*m ۞.CWmU̺ZN(xpze},Xar\wWJXb;m]nC}_el4qPG \KVtި8ƒzpN+kϞcþ|,XT T-ԫvtE/=Qh~ 9g>>3~wylvx*eNu'<ϬoS a|(:ً|1i'c+Aqc(ayrsZ?Vz]_ǸCqs&GkD+u੭ᑩl[%l͸XDz[zҲ~u۵=1t{޽_]?z*,{\t/g*{TDT=1{Z(`XD'o+7endstream endobj 34256 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 34257 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 34258 0 obj <> endobj 34259 0 obj <> endobj 34260 0 obj <> stream q /X1 Do Q q endstream endobj 34261 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 34262 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 34263 0 obj <> stream HWn6}Wp̫D.6  Ŧy [$oza>a!af#Zjk3ͨ6@16D Q){jZjC>QfTKmb'Ռj Pj Q DQ-!aV36@16D1jFԆ(}ZͨŨŰOTRj5Zjk3è6@16D Q){jZjC>QaTKmb'5j Pj Q DQ-!a06@16D1FԆ(}ZèŨŰOTkRj Zjk3˨6@16D Q){jZjC>QeTKmb'j Pj Q DQ-!a26@16D1ZFԆ(}Z˨ŨŰOTkRj-Zjk3Ǩ6@16D Q)o1ܵWz~1Bmh\BE6{.7ǫ?,q}Y>!w8WgǁZۇ9L[}js_iwl߻s{SO4{VE(WpMLOCuDg6on >SO3xdis'd|o̗,~\aBD7~Y6⺚N<6ýX$O~ʯ†ouo? &&ˈ9TGoՈ;(/\ZhUOKFN:Fc\Xy1L@Bn Y7"-WcvH,'u%LB2R{<6C"sP.EXd 8"z,ec2 u9s,K%vr]a] &n7{!*) ~P}&a@?. 56`1x!|Ӑ 1˛d((pqiqtG{[<06vb /4-)#]>Z1;NP c;1Z-rZF`^z/a93a@9V3>{yL&Z?N0yeR;O/ͤ#e^q"ņvzFcN>K)+zr//WwqQTzR}o+Z+$n I)ѩ(0 Ua-̭dߏ5C)6xHRKC|cWtjn 50X5$g48S6PJ$iL兵a1e ]$L')~<͘iyH/:E8}MA(ܨaK4%u՝&Eռ78b;M:zvA 7Fb-ԕKDB#a`[JEwua|w?M=ǑUֹ+:$7lo!c~oBH5xѪѰ eᬁ:4בeC6(jR d&s2A|,E.pxƸ}|Ϥ$*,n%tGm]zT Cl\WwF&v7,0čjc FѺ;i.K0^f8MC};LþOb<. h*yd,,1Ȓ 6[\rdu|7Mn:X``t􏢫4acWV;ҫ`Q9R WUU{kB L ԓfl7Q8M)6°ͅX^ʼn*u+%}ڣk4[OX2Wcgp huz)%S'̛T2\o.}Iڳ֦֔dfP4p0OvI!$;J}rm_ %x];QERyByN28({;O xؔ ۫"ƽ] LKy0NMMm)ޮrgfspEX=a]bq8ZUdIE4lb㐅YY|id1?8dcmEc+ȂhCLeʶI9 2:hD|422F4"p9 V(w _xtBfܑUkUVYeP2tc Ljŋ]-@ޏu\E77j?5uٞ0uYӑ/TF Q[6bh0P׍}[&?6*˰ƮEm3,lyg7{.#RLc|j˿e: Z+j_+Äv '_:ŝROV6i8 xX!z]@ Jqk?{o<\`6W!endstream endobj 34264 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 34265 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 34266 0 obj <> endobj 34267 0 obj <> endobj 34268 0 obj <> stream q /X1 Do Q q endstream endobj 34269 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 34270 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 34271 0 obj <> stream H|Wko۸_ *,hݢb EtB!Y&Ej4>$93/e?va7AB8#hI௰ !H* 'r䛮c_¾ ݒan6A4I",`P$ymVƪkëW' eI̋}>*pgf3Tbsl$N5f~ƻ$|$$܇AAp(ճ q樃۠.1I\B˹>@r| =M}PaO<aO<aO=aO=aO= a< a<a=a=a=>gc/c/c/c#s}=¾{O)"ZQS(ZקP>{קP>{(DOj ZקP{OQZקP{OQS(Z QS(Z)S-AT)S-AT a節 u}M@պ>ٻ>@!u} w} w}BT a節"u} TKպ>@!u} TKպ>B{j]պ>B{j]B!=RDPj]B!=RDOj)Z QS(ZקP>{קP>{(DOjZקP{O QZקP{O QS(Z QS(Z)S-CT)S-CT a節!u}Mպ>ٻ>@!u} w} /(XkmpM0 Mp0ˊpwџ]^b4ͱ,sWƘ|Kܹ1yh?q*J]4e7+OU=jnY7ԷUPV(ڢ:qkR'̸K=탚+UYMOL}k^;XY-=̀cQðjPYӼHwg_;ytţ&S'dy%,p5R8*.<R!-ZIĔi+ĎSYOR[`13IBa2yG{98v}!dέu7. f){nYd6!sB LI/iqZHK UV91a6\Thjݙޑ1ZMƄqӺTxa$7a c??Vǰ\x CIN RUM56ݾu,HJw[{ctDZҁv:[mzzUV[ݕ:1 H.T 9 #U/ e_gO;$fzзȕ_X&%i:ɫqcgNeW$|L$12P bE*K|qKJ*UwĩM[s 6έ!X.S' ZtԀo9X"Xv4SWC]lpײ1?Csh%Tc;T'i,آg+? jQN \I]/Ҽ~FiҢƷOe_h^__7ndٚ×S#G ԩ,nOId\Bct>)JWsпWmkF~}7I PB һrZ$e"i}7֒OgvggyDTde{Z-y eߕCx MkEu y'`#ѧiSܽ0I[dM%tC2 !FМ%4VxΎQ2SLfnMۯOhm[<ؚt: NNro5"<vM&N%-(vC5ϩ> 1KHjwf4!ZY/1$+eɤNgwQ/u0 t~1߯>6 YjXvMgf,;H`dD! m G Fb!PƓ$L0%z^e4DIJݰ~8Q66I3'ƏF/vIcLd(OIKgM~&ZRTlt߽u[41RlצZsgzm;&m#-9bES ͹58iy72 x *6Pa\VL !,eԓP@jtZ@ٟ_)'e2vr*zhh84HP2w/iPraELf5eh$S Ƈx5Ud]9;| +igr݋ywk&92>&to{9Vpן. 817]'.Pb"{ ?KVUDe}9QȄg'?DR d~.Nja!`a@Ȗ*c0@YV0`Hi [b8 @rtޜys#T7ջG鲽wIa&l<Օ/?}|כ i NOQ˧OzvQ2}}S-Jr^cYZ2cgBZq±BgJo{beĸc9{%+=)e>/P 463 0 R/Type/Annot/A 34273 0 R/Subtype/Link/Rect[93.6004028 413.82901 174.936005 433.509003]/Border[0 0 0]/H/N>> endobj 34273 0 obj <> endobj 34274 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 34275 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 34276 0 obj <> endobj 34277 0 obj <> endobj 34278 0 obj <> endobj 34279 0 obj <> endobj 34280 0 obj <> endobj 34281 0 obj <> endobj 34282 0 obj <> stream q /X1 Do Q q endstream endobj 34283 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 34284 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 34285 0 obj <> stream HW]o}_GpƒOCHEm0uivڛ4ͮ$Lcs5]i&%SWZbU$=pvSLRii$0 ֽmC/4,%,` g,n~>4UH%߻`';TV4G=6Mcj*Lt3Lrql8(Ĵ#4_45;$=hC4_ vJQО:$O>8# Դ~38p(H#$J{(@gw$>:tpiaA<+@CgzχK;VjRX%of )PA$;6b9D~KIOg.jE\LoyN+=];ۯtrOLp!u%:Z9Eyy7 l䚤{?[%4i:M CHӷJf}܌Z'8s tFVCUdO],v{/tMjM"mgpͿjڣPfnh-1_oh5VK<辑@NTRk,J a?vCާC&%)2?RbC{Ʀunva{菂*vW&v\m>n%{gS`ZSk 6o;6AHV y7ѧ Ѕp-lp8z7ΐӺ^*`Vfi&ӏ&XFj?$,̑1>Q{1op:Β+{*byf Hr-e)>Q*2ȶu2萒}:zϠ%S >.^{7 F;YڳՌ:šXd7U7&g^dM u*j a3%Ja.-w=o4s7|Sg}Z37O4! -C.DzTNpqوqYE\) ./:+e4ت Kz/OX&./wtks5endstream endobj 34286 0 obj <>/P 5000 0 R/Type/Annot/A 34688 0 R/Subtype/Link/Rect[217 669 229 678]/Border[0 0 0]/H/N>> endobj 34287 0 obj <>/P 5000 0 R/Type/Annot/A 34686 0 R/Subtype/Link/Rect[217 659 229 668]/Border[0 0 0]/H/N>> endobj 34288 0 obj <>/P 5000 0 R/Type/Annot/A 34684 0 R/Subtype/Link/Rect[217 649 229 658]/Border[0 0 0]/H/N>> endobj 34289 0 obj <>/P 5000 0 R/Type/Annot/A 34682 0 R/Subtype/Link/Rect[217 639 229 648]/Border[0 0 0]/H/N>> endobj 34290 0 obj <>/P 5000 0 R/Type/Annot/A 34680 0 R/Subtype/Link/Rect[217 629 229 638]/Border[0 0 0]/H/N>> endobj 34291 0 obj <>/P 5000 0 R/Type/Annot/A 34678 0 R/Subtype/Link/Rect[217 619 229 628]/Border[0 0 0]/H/N>> endobj 34292 0 obj <>/P 5000 0 R/Type/Annot/A 34676 0 R/Subtype/Link/Rect[217 609 229 618]/Border[0 0 0]/H/N>> endobj 34293 0 obj <>/P 5000 0 R/Type/Annot/A 34674 0 R/Subtype/Link/Rect[217 599 229 608]/Border[0 0 0]/H/N>> endobj 34294 0 obj <>/P 5000 0 R/Type/Annot/A 34672 0 R/Subtype/Link/Rect[202 589 212 598]/Border[0 0 0]/H/N>> endobj 34295 0 obj <>/P 5000 0 R/Type/Annot/A 34670 0 R/Subtype/Link/Rect[214 589 226 598]/Border[0 0 0]/H/N>> endobj 34296 0 obj <>/P 5000 0 R/Type/Annot/A 34668 0 R/Subtype/Link/Rect[203 579 217 588]/Border[0 0 0]/H/N>> endobj 34297 0 obj <>/P 5000 0 R/Type/Annot/A 34666 0 R/Subtype/Link/Rect[219 579 231 588]/Border[0 0 0]/H/N>> endobj 34298 0 obj <>/P 5000 0 R/Type/Annot/A 34664 0 R/Subtype/Link/Rect[191 569 203 578]/Border[0 0 0]/H/N>> endobj 34299 0 obj <>/P 5000 0 R/Type/Annot/A 34819 0 R/Subtype/Link/Rect[193 559 207 568]/Border[0 0 0]/H/N>> endobj 34300 0 obj <>/P 5000 0 R/Type/Annot/A 34815 0 R/Subtype/Link/Rect[209 559 223 568]/Border[0 0 0]/H/N>> endobj 34301 0 obj <>/P 5000 0 R/Type/Annot/A 34811 0 R/Subtype/Link/Rect[225 559 242 569]/Border[0 0 0]/H/N>> endobj 34302 0 obj <>/P 5000 0 R/Type/Annot/A 34807 0 R/Subtype/Link/Rect[243 559 257 568]/Border[0 0 0]/H/N>> endobj 34303 0 obj <>/P 5000 0 R/Type/Annot/A 34803 0 R/Subtype/Link/Rect[259 559 271 568]/Border[0 0 0]/H/N>> endobj 34304 0 obj <>/P 5000 0 R/Type/Annot/A 34798 0 R/Subtype/Link/Rect[191 549 203 558]/Border[0 0 0]/H/N>> endobj 34305 0 obj <>/P 5000 0 R/Type/Annot/A 34794 0 R/Subtype/Link/Rect[193 539 207 548]/Border[0 0 0]/H/N>> endobj 34306 0 obj <>/P 5000 0 R/Type/Annot/A 34790 0 R/Subtype/Link/Rect[209 539 223 548]/Border[0 0 0]/H/N>> endobj 34307 0 obj <>/P 5000 0 R/Type/Annot/A 34786 0 R/Subtype/Link/Rect[225 539 242 549]/Border[0 0 0]/H/N>> endobj 34308 0 obj <>/P 5000 0 R/Type/Annot/A 34782 0 R/Subtype/Link/Rect[243 539 257 548]/Border[0 0 0]/H/N>> endobj 34309 0 obj <>/P 5000 0 R/Type/Annot/A 34778 0 R/Subtype/Link/Rect[259 539 273 548]/Border[0 0 0]/H/N>> endobj 34310 0 obj <>/P 5000 0 R/Type/Annot/A 44435 0 R/Subtype/Link/Rect[275 539 289 548]/Border[0 0 0]/H/N>> endobj 34311 0 obj <>/P 5000 0 R/Type/Annot/A 34771 0 R/Subtype/Link/Rect[152 529 168 539]/Border[0 0 0]/H/N>> endobj 34312 0 obj <>/P 5000 0 R/Type/Annot/A 34767 0 R/Subtype/Link/Rect[169 529 183 538]/Border[0 0 0]/H/N>> endobj 34313 0 obj <>/P 5000 0 R/Type/Annot/A 34763 0 R/Subtype/Link/Rect[185 529 199 538]/Border[0 0 0]/H/N>> endobj 34314 0 obj <>/P 5000 0 R/Type/Annot/A 34758 0 R/Subtype/Link/Rect[201 529 215 538]/Border[0 0 0]/H/N>> endobj 34315 0 obj <>/P 5000 0 R/Type/Annot/A 34753 0 R/Subtype/Link/Rect[217 529 231 538]/Border[0 0 0]/H/N>> endobj 34316 0 obj <>/P 5000 0 R/Type/Annot/A 34748 0 R/Subtype/Link/Rect[233 529 247 538]/Border[0 0 0]/H/N>> endobj 34317 0 obj <>/P 5000 0 R/Type/Annot/A 34743 0 R/Subtype/Link/Rect[249 529 263 538]/Border[0 0 0]/H/N>> endobj 34318 0 obj <>/P 5000 0 R/Type/Annot/A 44163 0 R/Subtype/Link/Rect[265 529 279 538]/Border[0 0 0]/H/N>> endobj 34319 0 obj <>/P 5000 0 R/Type/Annot/A 34735 0 R/Subtype/Link/Rect[281 529 295 538]/Border[0 0 0]/H/N>> endobj 34320 0 obj <>/P 5000 0 R/Type/Annot/A 44091 0 R/Subtype/Link/Rect[297 529 311 538]/Border[0 0 0]/H/N>> endobj 34321 0 obj <>/P 5000 0 R/Type/Annot/A 34727 0 R/Subtype/Link/Rect[152 519 166 528]/Border[0 0 0]/H/N>> endobj 34322 0 obj <>/P 5000 0 R/Type/Annot/A 35035 0 R/Subtype/Link/Rect[168 519 182 528]/Border[0 0 0]/H/N>> endobj 34323 0 obj <>/P 5000 0 R/Type/Annot/A 35031 0 R/Subtype/Link/Rect[184 519 196 528]/Border[0 0 0]/H/N>> endobj 34324 0 obj <>/P 5000 0 R/Type/Annot/A 35028 0 R/Subtype/Link/Rect[191 509 203 518]/Border[0 0 0]/H/N>> endobj 34325 0 obj <>/P 5000 0 R/Type/Annot/A 35025 0 R/Subtype/Link/Rect[198 499 210 508]/Border[0 0 0]/H/N>> endobj 34326 0 obj <>/P 5000 0 R/Type/Annot/A 35022 0 R/Subtype/Link/Rect[198 489 210 498]/Border[0 0 0]/H/N>> endobj 34327 0 obj <>/P 5000 0 R/Type/Annot/A 35019 0 R/Subtype/Link/Rect[203 479 220 489]/Border[0 0 0]/H/N>> endobj 34328 0 obj <>/P 5000 0 R/Type/Annot/A 35017 0 R/Subtype/Link/Rect[220 479 234 488]/Border[0 0 0]/H/N>> endobj 34329 0 obj <>/P 5000 0 R/Type/Annot/A 35014 0 R/Subtype/Link/Rect[236 479 253 489]/Border[0 0 0]/H/N>> endobj 34330 0 obj <>/P 5000 0 R/Type/Annot/A 35011 0 R/Subtype/Link/Rect[254 479 268 488]/Border[0 0 0]/H/N>> endobj 34331 0 obj <>/P 5000 0 R/Type/Annot/A 35008 0 R/Subtype/Link/Rect[270 479 284 488]/Border[0 0 0]/H/N>> endobj 34332 0 obj <>/P 5000 0 R/Type/Annot/A 35005 0 R/Subtype/Link/Rect[152 469 168 479]/Border[0 0 0]/H/N>> endobj 34333 0 obj <>/P 5000 0 R/Type/Annot/A 35002 0 R/Subtype/Link/Rect[169 469 181 478]/Border[0 0 0]/H/N>> endobj 34334 0 obj <>/P 5000 0 R/Type/Annot/A 34999 0 R/Subtype/Link/Rect[193 459 207 468]/Border[0 0 0]/H/N>> endobj 34335 0 obj <>/P 5000 0 R/Type/Annot/A 34996 0 R/Subtype/Link/Rect[209 459 226 469]/Border[0 0 0]/H/N>> endobj 34336 0 obj <>/P 5000 0 R/Type/Annot/A 34993 0 R/Subtype/Link/Rect[227 459 241 468]/Border[0 0 0]/H/N>> endobj 34337 0 obj <>/P 5000 0 R/Type/Annot/A 43461 0 R/Subtype/Link/Rect[243 459 257 468]/Border[0 0 0]/H/N>> endobj 34338 0 obj <>/P 5000 0 R/Type/Annot/A 34988 0 R/Subtype/Link/Rect[259 459 273 468]/Border[0 0 0]/H/N>> endobj 34339 0 obj <>/P 5000 0 R/Type/Annot/A 34985 0 R/Subtype/Link/Rect[275 459 287 468]/Border[0 0 0]/H/N>> endobj 34340 0 obj <>/P 5000 0 R/Type/Annot/A 34982 0 R/Subtype/Link/Rect[191 449 203 458]/Border[0 0 0]/H/N>> endobj 34341 0 obj <>/P 5000 0 R/Type/Annot/A 34979 0 R/Subtype/Link/Rect[188 439 202 448]/Border[0 0 0]/H/N>> endobj 34342 0 obj <>/P 5000 0 R/Type/Annot/A 34976 0 R/Subtype/Link/Rect[204 439 218 448]/Border[0 0 0]/H/N>> endobj 34343 0 obj <>/P 5000 0 R/Type/Annot/A 34973 0 R/Subtype/Link/Rect[220 439 237 449]/Border[0 0 0]/H/N>> endobj 34344 0 obj <>/P 5000 0 R/Type/Annot/A 34970 0 R/Subtype/Link/Rect[238 439 252 448]/Border[0 0 0]/H/N>> endobj 34345 0 obj <>/P 5000 0 R/Type/Annot/A 34967 0 R/Subtype/Link/Rect[254 439 268 448]/Border[0 0 0]/H/N>> endobj 34346 0 obj <>/P 5000 0 R/Type/Annot/A 34964 0 R/Subtype/Link/Rect[270 439 284 448]/Border[0 0 0]/H/N>> endobj 34347 0 obj <>/P 5000 0 R/Type/Annot/A 34961 0 R/Subtype/Link/Rect[286 439 300 448]/Border[0 0 0]/H/N>> endobj 34348 0 obj <>/P 5000 0 R/Type/Annot/A 34958 0 R/Subtype/Link/Rect[152 429 168 439]/Border[0 0 0]/H/N>> endobj 34349 0 obj <>/P 5000 0 R/Type/Annot/A 34955 0 R/Subtype/Link/Rect[169 429 183 438]/Border[0 0 0]/H/N>> endobj 34350 0 obj <>/P 5000 0 R/Type/Annot/A 34952 0 R/Subtype/Link/Rect[185 429 199 438]/Border[0 0 0]/H/N>> endobj 34351 0 obj <>/P 5000 0 R/Type/Annot/A 34949 0 R/Subtype/Link/Rect[201 429 218 439]/Border[0 0 0]/H/N>> endobj 34352 0 obj <>/P 5000 0 R/Type/Annot/A 34946 0 R/Subtype/Link/Rect[218 429 232 438]/Border[0 0 0]/H/N>> endobj 34353 0 obj <>/P 5000 0 R/Type/Annot/A 34943 0 R/Subtype/Link/Rect[234 429 248 438]/Border[0 0 0]/H/N>> endobj 34354 0 obj <>/P 5000 0 R/Type/Annot/A 34940 0 R/Subtype/Link/Rect[250 429 264 438]/Border[0 0 0]/H/N>> endobj 34355 0 obj <>/P 5000 0 R/Type/Annot/A 34937 0 R/Subtype/Link/Rect[266 429 280 438]/Border[0 0 0]/H/N>> endobj 34356 0 obj <>/P 5000 0 R/Type/Annot/A 34933 0 R/Subtype/Link/Rect[282 429 296 438]/Border[0 0 0]/H/N>> endobj 34357 0 obj <>/P 5000 0 R/Type/Annot/A 34930 0 R/Subtype/Link/Rect[152 419 166 428]/Border[0 0 0]/H/N>> endobj 34358 0 obj <>/P 5000 0 R/Type/Annot/A 34927 0 R/Subtype/Link/Rect[168 419 182 428]/Border[0 0 0]/H/N>> endobj 34359 0 obj <>/P 5000 0 R/Type/Annot/A 42620 0 R/Subtype/Link/Rect[184 419 198 428]/Border[0 0 0]/H/N>> endobj 34360 0 obj <>/P 5000 0 R/Type/Annot/A 34923 0 R/Subtype/Link/Rect[200 419 212 428]/Border[0 0 0]/H/N>> endobj 34361 0 obj <>/P 5000 0 R/Type/Annot/A 34920 0 R/Subtype/Link/Rect[191 409 203 418]/Border[0 0 0]/H/N>> endobj 34362 0 obj <>/P 5000 0 R/Type/Annot/A 34915 0 R/Subtype/Link/Rect[227 399 241 408]/Border[0 0 0]/H/N>> endobj 34363 0 obj <>/P 5000 0 R/Type/Annot/A 34912 0 R/Subtype/Link/Rect[243 399 255 408]/Border[0 0 0]/H/N>> endobj 34364 0 obj <>/P 5000 0 R/Type/Annot/A 34909 0 R/Subtype/Link/Rect[191 389 203 398]/Border[0 0 0]/H/N>> endobj 34365 0 obj <>/P 5000 0 R/Type/Annot/A 34906 0 R/Subtype/Link/Rect[239 379 247 389]/Border[0 0 0]/H/N>> endobj 34366 0 obj <>/P 5000 0 R/Type/Annot/A 34903 0 R/Subtype/Link/Rect[248 379 254 388]/Border[0 0 0]/H/N>> endobj 34367 0 obj <>/P 5000 0 R/Type/Annot/A 34900 0 R/Subtype/Link/Rect[256 379 266 388]/Border[0 0 0]/H/N>> endobj 34368 0 obj <>/P 5000 0 R/Type/Annot/A 34896 0 R/Subtype/Link/Rect[268 379 281 389]/Border[0 0 0]/H/N>> endobj 34369 0 obj <>/P 5000 0 R/Type/Annot/A 34893 0 R/Subtype/Link/Rect[281 379 291 388]/Border[0 0 0]/H/N>> endobj 34370 0 obj <>/P 5000 0 R/Type/Annot/A 34890 0 R/Subtype/Link/Rect[152 369 164 379]/Border[0 0 0]/H/N>> endobj 34371 0 obj <>/P 5000 0 R/Type/Annot/A 34887 0 R/Subtype/Link/Rect[165 369 175 378]/Border[0 0 0]/H/N>> endobj 34372 0 obj <>/P 5000 0 R/Type/Annot/A 34884 0 R/Subtype/Link/Rect[177 369 190 379]/Border[0 0 0]/H/N>> endobj 34373 0 obj <>/P 5000 0 R/Type/Annot/A 34881 0 R/Subtype/Link/Rect[190 369 200 378]/Border[0 0 0]/H/N>> endobj 34374 0 obj <>/P 5000 0 R/Type/Annot/A 34877 0 R/Subtype/Link/Rect[202 369 212 378]/Border[0 0 0]/H/N>> endobj 34375 0 obj <>/P 5000 0 R/Type/Annot/A 34874 0 R/Subtype/Link/Rect[214 369 224 378]/Border[0 0 0]/H/N>> endobj 34376 0 obj <>/P 5000 0 R/Type/Annot/A 34871 0 R/Subtype/Link/Rect[226 369 236 378]/Border[0 0 0]/H/N>> endobj 34377 0 obj <>/P 5000 0 R/Type/Annot/A 34868 0 R/Subtype/Link/Rect[238 369 248 378]/Border[0 0 0]/H/N>> endobj 34378 0 obj <>/P 5000 0 R/Type/Annot/A 34865 0 R/Subtype/Link/Rect[250 369 260 378]/Border[0 0 0]/H/N>> endobj 34379 0 obj <>/P 5000 0 R/Type/Annot/A 34862 0 R/Subtype/Link/Rect[262 369 272 378]/Border[0 0 0]/H/N>> endobj 34380 0 obj <>/P 5000 0 R/Type/Annot/A 34859 0 R/Subtype/Link/Rect[274 369 284 378]/Border[0 0 0]/H/N>> endobj 34381 0 obj <>/P 5000 0 R/Type/Annot/A 34856 0 R/Subtype/Link/Rect[286 369 296 378]/Border[0 0 0]/H/N>> endobj 34382 0 obj <>/P 5000 0 R/Type/Annot/A 34853 0 R/Subtype/Link/Rect[298 369 308 378]/Border[0 0 0]/H/N>> endobj 34383 0 obj <>/P 5000 0 R/Type/Annot/A 34850 0 R/Subtype/Link/Rect[152 359 162 368]/Border[0 0 0]/H/N>> endobj 34384 0 obj <>/P 5000 0 R/Type/Annot/A 34847 0 R/Subtype/Link/Rect[164 359 174 368]/Border[0 0 0]/H/N>> endobj 34385 0 obj <>/P 5000 0 R/Type/Annot/A 34844 0 R/Subtype/Link/Rect[176 359 186 368]/Border[0 0 0]/H/N>> endobj 34386 0 obj <>/P 5000 0 R/Type/Annot/A 41503 0 R/Subtype/Link/Rect[188 359 202 368]/Border[0 0 0]/H/N>> endobj 34387 0 obj <>/P 5000 0 R/Type/Annot/A 34839 0 R/Subtype/Link/Rect[204 359 220 369]/Border[0 0 0]/H/N>> endobj 34388 0 obj <>/P 5000 0 R/Type/Annot/A 34836 0 R/Subtype/Link/Rect[221 359 234 368]/Border[0 0 0]/H/N>> endobj 34389 0 obj <>/P 5000 0 R/Type/Annot/A 41409 0 R/Subtype/Link/Rect[236 359 250 368]/Border[0 0 0]/H/N>> endobj 34390 0 obj <>/P 5000 0 R/Type/Annot/A 34831 0 R/Subtype/Link/Rect[252 359 266 368]/Border[0 0 0]/H/N>> endobj 34391 0 obj <>/P 5000 0 R/Type/Annot/A 34828 0 R/Subtype/Link/Rect[268 359 282 368]/Border[0 0 0]/H/N>> endobj 34392 0 obj <>/P 5000 0 R/Type/Annot/A 34826 0 R/Subtype/Link/Rect[284 359 298 368]/Border[0 0 0]/H/N>> endobj 34393 0 obj <>/P 5000 0 R/Type/Annot/A 34823 0 R/Subtype/Link/Rect[152 349 166 358]/Border[0 0 0]/H/N>> endobj 34394 0 obj <>/P 5000 0 R/Type/Annot/A 41198 0 R/Subtype/Link/Rect[168 349 182 358]/Border[0 0 0]/H/N>> endobj 34395 0 obj <>/P 5000 0 R/Type/Annot/A 34817 0 R/Subtype/Link/Rect[184 349 198 358]/Border[0 0 0]/H/N>> endobj 34396 0 obj <>/P 5000 0 R/Type/Annot/A 34813 0 R/Subtype/Link/Rect[200 349 216 359]/Border[0 0 0]/H/N>> endobj 34397 0 obj <>/P 5000 0 R/Type/Annot/A 34810 0 R/Subtype/Link/Rect[217 349 231 358]/Border[0 0 0]/H/N>> endobj 34398 0 obj <>/P 5000 0 R/Type/Annot/A 34806 0 R/Subtype/Link/Rect[233 349 250 359]/Border[0 0 0]/H/N>> endobj 34399 0 obj <>/P 5000 0 R/Type/Annot/A 34802 0 R/Subtype/Link/Rect[250 349 264 358]/Border[0 0 0]/H/N>> endobj 34400 0 obj <>/P 5000 0 R/Type/Annot/A 34797 0 R/Subtype/Link/Rect[266 349 283 359]/Border[0 0 0]/H/N>> endobj 34401 0 obj <>/P 5000 0 R/Type/Annot/A 34793 0 R/Subtype/Link/Rect[284 349 298 358]/Border[0 0 0]/H/N>> endobj 34402 0 obj <>/P 5000 0 R/Type/Annot/A 34789 0 R/Subtype/Link/Rect[152 339 166 348]/Border[0 0 0]/H/N>> endobj 34403 0 obj <>/P 5000 0 R/Type/Annot/A 34785 0 R/Subtype/Link/Rect[168 339 182 348]/Border[0 0 0]/H/N>> endobj 34404 0 obj <>/P 5000 0 R/Type/Annot/A 34781 0 R/Subtype/Link/Rect[184 339 198 348]/Border[0 0 0]/H/N>> endobj 34405 0 obj <>/P 5000 0 R/Type/Annot/A 34777 0 R/Subtype/Link/Rect[200 339 214 348]/Border[0 0 0]/H/N>> endobj 34406 0 obj <>/P 5000 0 R/Type/Annot/A 34774 0 R/Subtype/Link/Rect[216 339 230 348]/Border[0 0 0]/H/N>> endobj 34407 0 obj <>/P 5000 0 R/Type/Annot/A 34770 0 R/Subtype/Link/Rect[232 339 246 348]/Border[0 0 0]/H/N>> endobj 34408 0 obj <>/P 5000 0 R/Type/Annot/A 34766 0 R/Subtype/Link/Rect[248 339 262 348]/Border[0 0 0]/H/N>> endobj 34409 0 obj <>/P 5000 0 R/Type/Annot/A 34762 0 R/Subtype/Link/Rect[264 339 278 348]/Border[0 0 0]/H/N>> endobj 34410 0 obj <>/P 5000 0 R/Type/Annot/A 34757 0 R/Subtype/Link/Rect[280 339 294 348]/Border[0 0 0]/H/N>> endobj 34411 0 obj <>/P 5000 0 R/Type/Annot/A 34918 0 R/Subtype/Link/Rect[296 339 310 348]/Border[0 0 0]/H/N>> endobj 34412 0 obj <>/P 5000 0 R/Type/Annot/A 34749 0 R/Subtype/Link/Rect[152 329 166 338]/Border[0 0 0]/H/N>> endobj 34413 0 obj <>/P 5000 0 R/Type/Annot/A 34744 0 R/Subtype/Link/Rect[168 329 184 339]/Border[0 0 0]/H/N>> endobj 34414 0 obj <>/P 5000 0 R/Type/Annot/A 34740 0 R/Subtype/Link/Rect[185 329 199 338]/Border[0 0 0]/H/N>> endobj 34415 0 obj <>/P 5000 0 R/Type/Annot/A 34737 0 R/Subtype/Link/Rect[201 329 218 339]/Border[0 0 0]/H/N>> endobj 34416 0 obj <>/P 5000 0 R/Type/Annot/A 34732 0 R/Subtype/Link/Rect[218 329 232 338]/Border[0 0 0]/H/N>> endobj 34417 0 obj <>/P 5000 0 R/Type/Annot/A 34729 0 R/Subtype/Link/Rect[234 329 248 338]/Border[0 0 0]/H/N>> endobj 34418 0 obj <>/P 5000 0 R/Type/Annot/A 34725 0 R/Subtype/Link/Rect[250 329 264 338]/Border[0 0 0]/H/N>> endobj 34419 0 obj <>/P 5000 0 R/Type/Annot/A 34722 0 R/Subtype/Link/Rect[266 329 280 338]/Border[0 0 0]/H/N>> endobj 34420 0 obj <>/P 5000 0 R/Type/Annot/A 34719 0 R/Subtype/Link/Rect[282 329 296 338]/Border[0 0 0]/H/N>> endobj 34421 0 obj <>/P 5000 0 R/Type/Annot/A 34716 0 R/Subtype/Link/Rect[152 319 168 329]/Border[0 0 0]/H/N>> endobj 34422 0 obj <>/P 5000 0 R/Type/Annot/A 35032 0 R/Subtype/Link/Rect[169 319 183 328]/Border[0 0 0]/H/N>> endobj 34423 0 obj <>/P 5000 0 R/Type/Annot/A 35029 0 R/Subtype/Link/Rect[185 319 199 328]/Border[0 0 0]/H/N>> endobj 34424 0 obj <>/P 5000 0 R/Type/Annot/A 35026 0 R/Subtype/Link/Rect[201 319 215 328]/Border[0 0 0]/H/N>> endobj 34425 0 obj <>/P 5000 0 R/Type/Annot/A 35023 0 R/Subtype/Link/Rect[217 319 231 328]/Border[0 0 0]/H/N>> endobj 34426 0 obj <>/P 5000 0 R/Type/Annot/A 35020 0 R/Subtype/Link/Rect[233 319 247 328]/Border[0 0 0]/H/N>> endobj 34427 0 obj <>/P 5000 0 R/Type/Annot/A 35018 0 R/Subtype/Link/Rect[249 319 263 328]/Border[0 0 0]/H/N>> endobj 34428 0 obj <>/P 5000 0 R/Type/Annot/A 35016 0 R/Subtype/Link/Rect[265 319 279 328]/Border[0 0 0]/H/N>> endobj 34429 0 obj <>/P 5000 0 R/Type/Annot/A 35013 0 R/Subtype/Link/Rect[281 319 295 328]/Border[0 0 0]/H/N>> endobj 34430 0 obj <>/P 5000 0 R/Type/Annot/A 35010 0 R/Subtype/Link/Rect[297 319 311 328]/Border[0 0 0]/H/N>> endobj 34431 0 obj <>/P 5000 0 R/Type/Annot/A 35007 0 R/Subtype/Link/Rect[152 309 166 318]/Border[0 0 0]/H/N>> endobj 34432 0 obj <>/P 5000 0 R/Type/Annot/A 35004 0 R/Subtype/Link/Rect[168 309 182 318]/Border[0 0 0]/H/N>> endobj 34433 0 obj <>/P 5000 0 R/Type/Annot/A 35001 0 R/Subtype/Link/Rect[184 309 200 319]/Border[0 0 0]/H/N>> endobj 34434 0 obj <>/P 5000 0 R/Type/Annot/A 34998 0 R/Subtype/Link/Rect[201 309 215 318]/Border[0 0 0]/H/N>> endobj 34435 0 obj <>/P 5000 0 R/Type/Annot/A 34995 0 R/Subtype/Link/Rect[217 309 231 318]/Border[0 0 0]/H/N>> endobj 34436 0 obj <>/P 5000 0 R/Type/Annot/A 34992 0 R/Subtype/Link/Rect[233 309 247 318]/Border[0 0 0]/H/N>> endobj 34437 0 obj <>/P 5000 0 R/Type/Annot/A 34990 0 R/Subtype/Link/Rect[249 309 263 318]/Border[0 0 0]/H/N>> endobj 34438 0 obj <>/P 5000 0 R/Type/Annot/A 34987 0 R/Subtype/Link/Rect[265 309 279 318]/Border[0 0 0]/H/N>> endobj 34439 0 obj <>/P 5000 0 R/Type/Annot/A 34984 0 R/Subtype/Link/Rect[281 309 295 318]/Border[0 0 0]/H/N>> endobj 34440 0 obj <>/P 5000 0 R/Type/Annot/A 34981 0 R/Subtype/Link/Rect[152 299 168 309]/Border[0 0 0]/H/N>> endobj 34441 0 obj <>/P 5000 0 R/Type/Annot/A 34978 0 R/Subtype/Link/Rect[169 299 183 308]/Border[0 0 0]/H/N>> endobj 34442 0 obj <>/P 5000 0 R/Type/Annot/A 34975 0 R/Subtype/Link/Rect[185 299 199 308]/Border[0 0 0]/H/N>> endobj 34443 0 obj <>/P 5000 0 R/Type/Annot/A 34972 0 R/Subtype/Link/Rect[201 299 215 308]/Border[0 0 0]/H/N>> endobj 34444 0 obj <>/P 5000 0 R/Type/Annot/A 34969 0 R/Subtype/Link/Rect[217 299 231 308]/Border[0 0 0]/H/N>> endobj 34445 0 obj <>/P 5000 0 R/Type/Annot/A 34966 0 R/Subtype/Link/Rect[233 299 247 308]/Border[0 0 0]/H/N>> endobj 34446 0 obj <>/P 5000 0 R/Type/Annot/A 34963 0 R/Subtype/Link/Rect[249 299 266 309]/Border[0 0 0]/H/N>> endobj 34447 0 obj <>/P 5000 0 R/Type/Annot/A 34800 0 R/Subtype/Link/Rect[266 299 280 308]/Border[0 0 0]/H/N>> endobj 34448 0 obj <>/P 5000 0 R/Type/Annot/A 34959 0 R/Subtype/Link/Rect[282 299 296 308]/Border[0 0 0]/H/N>> endobj 34449 0 obj <>/P 5000 0 R/Type/Annot/A 34956 0 R/Subtype/Link/Rect[152 289 166 298]/Border[0 0 0]/H/N>> endobj 34450 0 obj <>/P 5000 0 R/Type/Annot/A 34953 0 R/Subtype/Link/Rect[168 289 182 298]/Border[0 0 0]/H/N>> endobj 34451 0 obj <>/P 5000 0 R/Type/Annot/A 34950 0 R/Subtype/Link/Rect[184 289 198 298]/Border[0 0 0]/H/N>> endobj 34452 0 obj <>/P 5000 0 R/Type/Annot/A 34947 0 R/Subtype/Link/Rect[200 289 214 298]/Border[0 0 0]/H/N>> endobj 34453 0 obj <>/P 5000 0 R/Type/Annot/A 34944 0 R/Subtype/Link/Rect[216 289 230 298]/Border[0 0 0]/H/N>> endobj 34454 0 obj <>/P 5000 0 R/Type/Annot/A 34941 0 R/Subtype/Link/Rect[232 289 246 298]/Border[0 0 0]/H/N>> endobj 34455 0 obj <>/P 5000 0 R/Type/Annot/A 34938 0 R/Subtype/Link/Rect[248 289 262 298]/Border[0 0 0]/H/N>> endobj 34456 0 obj <>/P 5000 0 R/Type/Annot/A 34935 0 R/Subtype/Link/Rect[264 289 278 298]/Border[0 0 0]/H/N>> endobj 34457 0 obj <>/P 5000 0 R/Type/Annot/A 34931 0 R/Subtype/Link/Rect[280 289 294 298]/Border[0 0 0]/H/N>> endobj 34458 0 obj <>/P 5000 0 R/Type/Annot/A 34928 0 R/Subtype/Link/Rect[152 279 168 289]/Border[0 0 0]/H/N>> endobj 34459 0 obj <>/P 5000 0 R/Type/Annot/A 34925 0 R/Subtype/Link/Rect[169 279 183 288]/Border[0 0 0]/H/N>> endobj 34460 0 obj <>/P 5000 0 R/Type/Annot/A 34924 0 R/Subtype/Link/Rect[185 279 199 288]/Border[0 0 0]/H/N>> endobj 34461 0 obj <>/P 5000 0 R/Type/Annot/A 34922 0 R/Subtype/Link/Rect[201 279 217 289]/Border[0 0 0]/H/N>> endobj 34462 0 obj <>/P 5000 0 R/Type/Annot/A 34917 0 R/Subtype/Link/Rect[218 279 232 288]/Border[0 0 0]/H/N>> endobj 34463 0 obj <>/P 5000 0 R/Type/Annot/A 34914 0 R/Subtype/Link/Rect[234 279 248 288]/Border[0 0 0]/H/N>> endobj 34464 0 obj <>/P 5000 0 R/Type/Annot/A 34911 0 R/Subtype/Link/Rect[250 279 264 288]/Border[0 0 0]/H/N>> endobj 34465 0 obj <>/P 5000 0 R/Type/Annot/A 34908 0 R/Subtype/Link/Rect[266 279 283 289]/Border[0 0 0]/H/N>> endobj 34466 0 obj <>/P 5000 0 R/Type/Annot/A 34905 0 R/Subtype/Link/Rect[283 279 297 288]/Border[0 0 0]/H/N>> endobj 34467 0 obj <>/P 5000 0 R/Type/Annot/A 34902 0 R/Subtype/Link/Rect[152 269 166 278]/Border[0 0 0]/H/N>> endobj 34468 0 obj <>/P 5000 0 R/Type/Annot/A 34899 0 R/Subtype/Link/Rect[168 269 184 279]/Border[0 0 0]/H/N>> endobj 34469 0 obj <>/P 5000 0 R/Type/Annot/A 34895 0 R/Subtype/Link/Rect[185 269 199 278]/Border[0 0 0]/H/N>> endobj 34470 0 obj <>/P 5000 0 R/Type/Annot/A 34892 0 R/Subtype/Link/Rect[201 269 218 279]/Border[0 0 0]/H/N>> endobj 34471 0 obj <>/P 5000 0 R/Type/Annot/A 34889 0 R/Subtype/Link/Rect[218 269 232 278]/Border[0 0 0]/H/N>> endobj 34472 0 obj <>/P 5000 0 R/Type/Annot/A 34886 0 R/Subtype/Link/Rect[234 269 248 278]/Border[0 0 0]/H/N>> endobj 34473 0 obj <>/P 5000 0 R/Type/Annot/A 34883 0 R/Subtype/Link/Rect[250 269 264 278]/Border[0 0 0]/H/N>> endobj 34474 0 obj <>/P 5000 0 R/Type/Annot/A 34880 0 R/Subtype/Link/Rect[266 269 283 279]/Border[0 0 0]/H/N>> endobj 34475 0 obj <>/P 5000 0 R/Type/Annot/A 34876 0 R/Subtype/Link/Rect[284 269 298 278]/Border[0 0 0]/H/N>> endobj 34476 0 obj <>/P 5000 0 R/Type/Annot/A 34873 0 R/Subtype/Link/Rect[152 259 168 269]/Border[0 0 0]/H/N>> endobj 34477 0 obj <>/P 5000 0 R/Type/Annot/A 34870 0 R/Subtype/Link/Rect[169 259 183 268]/Border[0 0 0]/H/N>> endobj 34478 0 obj <>/P 5000 0 R/Type/Annot/A 34867 0 R/Subtype/Link/Rect[185 259 199 268]/Border[0 0 0]/H/N>> endobj 34479 0 obj <>/P 5000 0 R/Type/Annot/A 34864 0 R/Subtype/Link/Rect[201 259 215 268]/Border[0 0 0]/H/N>> endobj 34480 0 obj <>/P 5000 0 R/Type/Annot/A 35000 0 R/Subtype/Link/Rect[217 259 231 268]/Border[0 0 0]/H/N>> endobj 34481 0 obj <>/P 5000 0 R/Type/Annot/A 34860 0 R/Subtype/Link/Rect[233 259 247 268]/Border[0 0 0]/H/N>> endobj 34482 0 obj <>/P 5000 0 R/Type/Annot/A 34857 0 R/Subtype/Link/Rect[249 259 263 268]/Border[0 0 0]/H/N>> endobj 34483 0 obj <>/P 5000 0 R/Type/Annot/A 34854 0 R/Subtype/Link/Rect[265 259 281 269]/Border[0 0 0]/H/N>> endobj 34484 0 obj <>/P 5000 0 R/Type/Annot/A 34851 0 R/Subtype/Link/Rect[282 259 296 268]/Border[0 0 0]/H/N>> endobj 34485 0 obj <>/P 5000 0 R/Type/Annot/A 34848 0 R/Subtype/Link/Rect[152 249 168 259]/Border[0 0 0]/H/N>> endobj 34486 0 obj <>/P 5000 0 R/Type/Annot/A 34845 0 R/Subtype/Link/Rect[169 249 183 258]/Border[0 0 0]/H/N>> endobj 34487 0 obj <>/P 5000 0 R/Type/Annot/A 34842 0 R/Subtype/Link/Rect[185 249 199 258]/Border[0 0 0]/H/N>> endobj 34488 0 obj <>/P 5000 0 R/Type/Annot/A 34840 0 R/Subtype/Link/Rect[201 249 213 258]/Border[0 0 0]/H/N>> endobj 34489 0 obj <>/P 5000 0 R/Type/Annot/A 34837 0 R/Subtype/Link/Rect[203 239 217 248]/Border[0 0 0]/H/N>> endobj 34490 0 obj <>/P 5000 0 R/Type/Annot/A 34834 0 R/Subtype/Link/Rect[219 239 235 249]/Border[0 0 0]/H/N>> endobj 34491 0 obj <>/P 5000 0 R/Type/Annot/A 34832 0 R/Subtype/Link/Rect[236 239 250 248]/Border[0 0 0]/H/N>> endobj 34492 0 obj <>/P 5000 0 R/Type/Annot/A 34829 0 R/Subtype/Link/Rect[252 239 264 248]/Border[0 0 0]/H/N>> endobj 34493 0 obj <>/P 5000 0 R/Type/Annot/A 34827 0 R/Subtype/Link/Rect[191 229 203 238]/Border[0 0 0]/H/N>> endobj 34494 0 obj <>/P 5000 0 R/Type/Annot/A 34825 0 R/Subtype/Link/Rect[198 219 210 228]/Border[0 0 0]/H/N>> endobj 34495 0 obj <>/P 5000 0 R/Type/Annot/A 34822 0 R/Subtype/Link/Rect[198 209 212 218]/Border[0 0 0]/H/N>> endobj 34496 0 obj <>/P 5000 0 R/Type/Annot/A 34820 0 R/Subtype/Link/Rect[214 209 226 218]/Border[0 0 0]/H/N>> endobj 34497 0 obj <>/P 5000 0 R/Type/Annot/A 34816 0 R/Subtype/Link/Rect[191 199 203 208]/Border[0 0 0]/H/N>> endobj 34498 0 obj <>/P 5000 0 R/Type/Annot/A 34812 0 R/Subtype/Link/Rect[190 189 202 198]/Border[0 0 0]/H/N>> endobj 34499 0 obj <>/P 5000 0 R/Type/Annot/A 34809 0 R/Subtype/Link/Rect[193 179 207 188]/Border[0 0 0]/H/N>> endobj 34500 0 obj <>/P 5000 0 R/Type/Annot/A 34805 0 R/Subtype/Link/Rect[209 179 226 189]/Border[0 0 0]/H/N>> endobj 34501 0 obj <>/P 5000 0 R/Type/Annot/A 34801 0 R/Subtype/Link/Rect[227 179 241 188]/Border[0 0 0]/H/N>> endobj 34502 0 obj <>/P 5000 0 R/Type/Annot/A 34796 0 R/Subtype/Link/Rect[243 179 257 188]/Border[0 0 0]/H/N>> endobj 34503 0 obj <>/P 5000 0 R/Type/Annot/A 34792 0 R/Subtype/Link/Rect[259 179 271 188]/Border[0 0 0]/H/N>> endobj 34504 0 obj <>/P 5000 0 R/Type/Annot/A 34788 0 R/Subtype/Link/Rect[191 169 203 178]/Border[0 0 0]/H/N>> endobj 34505 0 obj <>/P 5000 0 R/Type/Annot/A 34784 0 R/Subtype/Link/Rect[198 159 215 169]/Border[0 0 0]/H/N>> endobj 34506 0 obj <>/P 5000 0 R/Type/Annot/A 34780 0 R/Subtype/Link/Rect[215 159 229 168]/Border[0 0 0]/H/N>> endobj 34507 0 obj <>/P 5000 0 R/Type/Annot/A 34776 0 R/Subtype/Link/Rect[231 159 245 168]/Border[0 0 0]/H/N>> endobj 34508 0 obj <>/P 5000 0 R/Type/Annot/A 34773 0 R/Subtype/Link/Rect[247 159 259 168]/Border[0 0 0]/H/N>> endobj 34509 0 obj <>/P 5000 0 R/Type/Annot/A 34769 0 R/Subtype/Link/Rect[191 149 203 158]/Border[0 0 0]/H/N>> endobj 34510 0 obj <>/P 5000 0 R/Type/Annot/A 34765 0 R/Subtype/Link/Rect[411 669 421 678]/Border[0 0 0]/H/N>> endobj 34511 0 obj <>/P 5000 0 R/Type/Annot/A 34761 0 R/Subtype/Link/Rect[423 669 433 678]/Border[0 0 0]/H/N>> endobj 34512 0 obj <>/P 5000 0 R/Type/Annot/A 34756 0 R/Subtype/Link/Rect[435 669 445 678]/Border[0 0 0]/H/N>> endobj 34513 0 obj <>/P 5000 0 R/Type/Annot/A 34898 0 R/Subtype/Link/Rect[447 669 461 678]/Border[0 0 0]/H/N>> endobj 34514 0 obj <>/P 5000 0 R/Type/Annot/A 34750 0 R/Subtype/Link/Rect[463 669 477 678]/Border[0 0 0]/H/N>> endobj 34515 0 obj <>/P 5000 0 R/Type/Annot/A 34746 0 R/Subtype/Link/Rect[479 669 491 678]/Border[0 0 0]/H/N>> endobj 34516 0 obj <>/P 5000 0 R/Type/Annot/A 34741 0 R/Subtype/Link/Rect[411 659 424 669]/Border[0 0 0]/H/N>> endobj 34517 0 obj <>/P 5000 0 R/Type/Annot/A 34738 0 R/Subtype/Link/Rect[424 659 434 668]/Border[0 0 0]/H/N>> endobj 34518 0 obj <>/P 5000 0 R/Type/Annot/A 34733 0 R/Subtype/Link/Rect[436 659 446 668]/Border[0 0 0]/H/N>> endobj 34519 0 obj <>/P 5000 0 R/Type/Annot/A 34730 0 R/Subtype/Link/Rect[448 659 458 668]/Border[0 0 0]/H/N>> endobj 34520 0 obj <>/P 5000 0 R/Type/Annot/A 34726 0 R/Subtype/Link/Rect[460 659 474 668]/Border[0 0 0]/H/N>> endobj 34521 0 obj <>/P 5000 0 R/Type/Annot/A 34723 0 R/Subtype/Link/Rect[476 659 490 668]/Border[0 0 0]/H/N>> endobj 34522 0 obj <>/P 5000 0 R/Type/Annot/A 34720 0 R/Subtype/Link/Rect[492 659 506 668]/Border[0 0 0]/H/N>> endobj 34523 0 obj <>/P 5000 0 R/Type/Annot/A 34717 0 R/Subtype/Link/Rect[360 649 374 658]/Border[0 0 0]/H/N>> endobj 34524 0 obj <>/P 5000 0 R/Type/Annot/A 34714 0 R/Subtype/Link/Rect[376 649 388 658]/Border[0 0 0]/H/N>> endobj 34525 0 obj <>/P 5000 0 R/Type/Annot/A 34712 0 R/Subtype/Link/Rect[411 639 421 648]/Border[0 0 0]/H/N>> endobj 34526 0 obj <>/P 5000 0 R/Type/Annot/A 34710 0 R/Subtype/Link/Rect[423 639 440 649]/Border[0 0 0]/H/N>> endobj 34527 0 obj <>/P 5000 0 R/Type/Annot/A 34708 0 R/Subtype/Link/Rect[440 639 454 648]/Border[0 0 0]/H/N>> endobj 34528 0 obj <>/P 5000 0 R/Type/Annot/A 34706 0 R/Subtype/Link/Rect[456 639 470 648]/Border[0 0 0]/H/N>> endobj 34529 0 obj <>/P 5000 0 R/Type/Annot/A 34704 0 R/Subtype/Link/Rect[472 639 486 648]/Border[0 0 0]/H/N>> endobj 34530 0 obj <>/P 5000 0 R/Type/Annot/A 34702 0 R/Subtype/Link/Rect[488 639 502 648]/Border[0 0 0]/H/N>> endobj 34531 0 obj <>/P 5000 0 R/Type/Annot/A 34701 0 R/Subtype/Link/Rect[360 629 376 639]/Border[0 0 0]/H/N>> endobj 34532 0 obj <>/P 5000 0 R/Type/Annot/A 34700 0 R/Subtype/Link/Rect[377 629 389 638]/Border[0 0 0]/H/N>> endobj 34533 0 obj <>/P 5000 0 R/Type/Annot/A 34699 0 R/Subtype/Link/Rect[416 619 426 628]/Border[0 0 0]/H/N>> endobj 34534 0 obj <>/P 5000 0 R/Type/Annot/A 34698 0 R/Subtype/Link/Rect[428 619 442 628]/Border[0 0 0]/H/N>> endobj 34535 0 obj <>/P 5000 0 R/Type/Annot/A 34696 0 R/Subtype/Link/Rect[444 619 458 628]/Border[0 0 0]/H/N>> endobj 34536 0 obj <>/P 5000 0 R/Type/Annot/A 34695 0 R/Subtype/Link/Rect[460 619 474 628]/Border[0 0 0]/H/N>> endobj 34537 0 obj <>/P 5000 0 R/Type/Annot/A 34694 0 R/Subtype/Link/Rect[476 619 490 628]/Border[0 0 0]/H/N>> endobj 34538 0 obj <>/P 5000 0 R/Type/Annot/A 34693 0 R/Subtype/Link/Rect[492 619 504 628]/Border[0 0 0]/H/N>> endobj 34539 0 obj <>/P 5000 0 R/Type/Annot/A 34692 0 R/Subtype/Link/Rect[416 609 428 619]/Border[0 0 0]/H/N>> endobj 34540 0 obj <>/P 5000 0 R/Type/Annot/A 34691 0 R/Subtype/Link/Rect[429 609 439 618]/Border[0 0 0]/H/N>> endobj 34541 0 obj <>/P 5000 0 R/Type/Annot/A 34689 0 R/Subtype/Link/Rect[441 609 455 618]/Border[0 0 0]/H/N>> endobj 34542 0 obj <>/P 5000 0 R/Type/Annot/A 34687 0 R/Subtype/Link/Rect[457 609 471 618]/Border[0 0 0]/H/N>> endobj 34543 0 obj <>/P 5000 0 R/Type/Annot/A 34685 0 R/Subtype/Link/Rect[473 609 490 619]/Border[0 0 0]/H/N>> endobj 34544 0 obj <>/P 5000 0 R/Type/Annot/A 34683 0 R/Subtype/Link/Rect[490 609 504 618]/Border[0 0 0]/H/N>> endobj 34545 0 obj <>/P 5000 0 R/Type/Annot/A 34681 0 R/Subtype/Link/Rect[506 609 518 618]/Border[0 0 0]/H/N>> endobj 34546 0 obj <>/P 5000 0 R/Type/Annot/A 34679 0 R/Subtype/Link/Rect[411 599 425 608]/Border[0 0 0]/H/N>> endobj 34547 0 obj <>/P 5000 0 R/Type/Annot/A 34677 0 R/Subtype/Link/Rect[427 599 443 609]/Border[0 0 0]/H/N>> endobj 34548 0 obj <>/P 5000 0 R/Type/Annot/A 34675 0 R/Subtype/Link/Rect[444 599 458 608]/Border[0 0 0]/H/N>> endobj 34549 0 obj <>/P 5000 0 R/Type/Annot/A 34673 0 R/Subtype/Link/Rect[460 599 474 608]/Border[0 0 0]/H/N>> endobj 34550 0 obj <>/P 5000 0 R/Type/Annot/A 34671 0 R/Subtype/Link/Rect[476 599 488 608]/Border[0 0 0]/H/N>> endobj 34551 0 obj <>/P 5000 0 R/Type/Annot/A 34669 0 R/Subtype/Link/Rect[399 589 411 598]/Border[0 0 0]/H/N>> endobj 34552 0 obj <>/P 5000 0 R/Type/Annot/A 34667 0 R/Subtype/Link/Rect[401 579 407 588]/Border[0 0 0]/H/N>> endobj 34553 0 obj <>/P 5000 0 R/Type/Annot/A 34665 0 R/Subtype/Link/Rect[409 579 422 589]/Border[0 0 0]/H/N>> endobj 34554 0 obj <>/P 5000 0 R/Type/Annot/A 34759 0 R/Subtype/Link/Rect[422 579 432 588]/Border[0 0 0]/H/N>> endobj 34555 0 obj <>/P 5000 0 R/Type/Annot/A 34754 0 R/Subtype/Link/Rect[434 579 448 588]/Border[0 0 0]/H/N>> endobj 34556 0 obj <>/P 5000 0 R/Type/Annot/A 34751 0 R/Subtype/Link/Rect[450 579 464 588]/Border[0 0 0]/H/N>> endobj 34557 0 obj <>/P 5000 0 R/Type/Annot/A 34745 0 R/Subtype/Link/Rect[466 579 480 588]/Border[0 0 0]/H/N>> endobj 34558 0 obj <>/P 5000 0 R/Type/Annot/A 34879 0 R/Subtype/Link/Rect[482 579 496 588]/Border[0 0 0]/H/N>> endobj 34559 0 obj <>/P 5000 0 R/Type/Annot/A 34736 0 R/Subtype/Link/Rect[498 579 512 588]/Border[0 0 0]/H/N>> endobj 34560 0 obj <>/P 5000 0 R/Type/Annot/A 34731 0 R/Subtype/Link/Rect[360 569 374 578]/Border[0 0 0]/H/N>> endobj 34561 0 obj <>/P 5000 0 R/Type/Annot/A 34728 0 R/Subtype/Link/Rect[376 569 392 579]/Border[0 0 0]/H/N>> endobj 34562 0 obj <>/P 5000 0 R/Type/Annot/A 34724 0 R/Subtype/Link/Rect[393 569 407 578]/Border[0 0 0]/H/N>> endobj 34563 0 obj <>/P 5000 0 R/Type/Annot/A 34721 0 R/Subtype/Link/Rect[409 569 423 578]/Border[0 0 0]/H/N>> endobj 34564 0 obj <>/P 5000 0 R/Type/Annot/A 34718 0 R/Subtype/Link/Rect[425 569 439 578]/Border[0 0 0]/H/N>> endobj 34565 0 obj <>/P 5000 0 R/Type/Annot/A 34715 0 R/Subtype/Link/Rect[441 569 455 578]/Border[0 0 0]/H/N>> endobj 34566 0 obj <>/P 5000 0 R/Type/Annot/A 34713 0 R/Subtype/Link/Rect[457 569 471 578]/Border[0 0 0]/H/N>> endobj 34567 0 obj <>/P 5000 0 R/Type/Annot/A 34711 0 R/Subtype/Link/Rect[473 569 487 578]/Border[0 0 0]/H/N>> endobj 34568 0 obj <>/P 5000 0 R/Type/Annot/A 34709 0 R/Subtype/Link/Rect[489 569 503 578]/Border[0 0 0]/H/N>> endobj 34569 0 obj <>/P 5000 0 R/Type/Annot/A 34707 0 R/Subtype/Link/Rect[505 569 517 578]/Border[0 0 0]/H/N>> endobj 34570 0 obj <>/P 5000 0 R/Type/Annot/A 34705 0 R/Subtype/Link/Rect[399 559 407 568]/Border[0 0 0]/H/N>> endobj 34571 0 obj <>/P 5000 0 R/Type/Annot/A 35030 0 R/Subtype/Link/Rect[411 549 423 559]/Border[0 0 0]/H/N>> endobj 34572 0 obj <>/P 5000 0 R/Type/Annot/A 35027 0 R/Subtype/Link/Rect[424 549 434 558]/Border[0 0 0]/H/N>> endobj 34573 0 obj <>/P 5000 0 R/Type/Annot/A 35024 0 R/Subtype/Link/Rect[436 549 450 558]/Border[0 0 0]/H/N>> endobj 34574 0 obj <>/P 5000 0 R/Type/Annot/A 35021 0 R/Subtype/Link/Rect[452 549 464 558]/Border[0 0 0]/H/N>> endobj 34575 0 obj <>/P 5000 0 R/Type/Annot/A 34697 0 R/Subtype/Link/Rect[399 539 407 548]/Border[0 0 0]/H/N>> endobj 34576 0 obj <>/P 5000 0 R/Type/Annot/A 35015 0 R/Subtype/Link/Rect[401 529 411 538]/Border[0 0 0]/H/N>> endobj 34577 0 obj <>/P 5000 0 R/Type/Annot/A 35012 0 R/Subtype/Link/Rect[413 529 423 538]/Border[0 0 0]/H/N>> endobj 34578 0 obj <>/P 5000 0 R/Type/Annot/A 35009 0 R/Subtype/Link/Rect[425 529 438 539]/Border[0 0 0]/H/N>> endobj 34579 0 obj <>/P 5000 0 R/Type/Annot/A 35006 0 R/Subtype/Link/Rect[438 529 448 538]/Border[0 0 0]/H/N>> endobj 34580 0 obj <>/P 5000 0 R/Type/Annot/A 35003 0 R/Subtype/Link/Rect[450 529 464 538]/Border[0 0 0]/H/N>> endobj 34581 0 obj <>/P 5000 0 R/Type/Annot/A 34690 0 R/Subtype/Link/Rect[466 529 480 538]/Border[0 0 0]/H/N>> endobj 34582 0 obj <>/P 5000 0 R/Type/Annot/A 34997 0 R/Subtype/Link/Rect[482 529 496 538]/Border[0 0 0]/H/N>> endobj 34583 0 obj <>/P 5000 0 R/Type/Annot/A 34994 0 R/Subtype/Link/Rect[498 529 512 538]/Border[0 0 0]/H/N>> endobj 34584 0 obj <>/P 5000 0 R/Type/Annot/A 34991 0 R/Subtype/Link/Rect[360 519 374 528]/Border[0 0 0]/H/N>> endobj 34585 0 obj <>/P 5000 0 R/Type/Annot/A 34989 0 R/Subtype/Link/Rect[376 519 390 528]/Border[0 0 0]/H/N>> endobj 34586 0 obj <>/P 5000 0 R/Type/Annot/A 34986 0 R/Subtype/Link/Rect[392 519 406 528]/Border[0 0 0]/H/N>> endobj 34587 0 obj <>/P 5000 0 R/Type/Annot/A 34983 0 R/Subtype/Link/Rect[408 519 422 528]/Border[0 0 0]/H/N>> endobj 34588 0 obj <>/P 5000 0 R/Type/Annot/A 34980 0 R/Subtype/Link/Rect[424 519 436 528]/Border[0 0 0]/H/N>> endobj 34589 0 obj <>/P 5000 0 R/Type/Annot/A 34977 0 R/Subtype/Link/Rect[399 509 407 518]/Border[0 0 0]/H/N>> endobj 34590 0 obj <>/P 5000 0 R/Type/Annot/A 34974 0 R/Subtype/Link/Rect[401 499 418 509]/Border[0 0 0]/H/N>> endobj 34591 0 obj <>/P 5000 0 R/Type/Annot/A 34971 0 R/Subtype/Link/Rect[418 499 432 508]/Border[0 0 0]/H/N>> endobj 34592 0 obj <>/P 5000 0 R/Type/Annot/A 34968 0 R/Subtype/Link/Rect[434 499 446 508]/Border[0 0 0]/H/N>> endobj 34593 0 obj <>/P 5000 0 R/Type/Annot/A 34965 0 R/Subtype/Link/Rect[399 489 411 498]/Border[0 0 0]/H/N>> endobj 34594 0 obj <>/P 5000 0 R/Type/Annot/A 34962 0 R/Subtype/Link/Rect[406 479 423 489]/Border[0 0 0]/H/N>> endobj 34595 0 obj <>/P 5000 0 R/Type/Annot/A 34960 0 R/Subtype/Link/Rect[423 479 437 488]/Border[0 0 0]/H/N>> endobj 34596 0 obj <>/P 5000 0 R/Type/Annot/A 34957 0 R/Subtype/Link/Rect[439 479 451 488]/Border[0 0 0]/H/N>> endobj 34597 0 obj <>/P 5000 0 R/Type/Annot/A 34954 0 R/Subtype/Link/Rect[399 469 411 478]/Border[0 0 0]/H/N>> endobj 34598 0 obj <>/P 5000 0 R/Type/Annot/A 34951 0 R/Subtype/Link/Rect[396 459 413 469]/Border[0 0 0]/H/N>> endobj 34599 0 obj <>/P 5000 0 R/Type/Annot/A 34948 0 R/Subtype/Link/Rect[414 459 426 468]/Border[0 0 0]/H/N>> endobj 34600 0 obj <>/P 5000 0 R/Type/Annot/A 34945 0 R/Subtype/Link/Rect[399 449 411 458]/Border[0 0 0]/H/N>> endobj 34601 0 obj <>/P 5000 0 R/Type/Annot/A 34942 0 R/Subtype/Link/Rect[398 439 412 448]/Border[0 0 0]/H/N>> endobj 34602 0 obj <>/P 5000 0 R/Type/Annot/A 34939 0 R/Subtype/Link/Rect[414 439 426 448]/Border[0 0 0]/H/N>> endobj 34603 0 obj <>/P 5000 0 R/Type/Annot/A 34936 0 R/Subtype/Link/Rect[420 429 434 438]/Border[0 0 0]/H/N>> endobj 34604 0 obj <>/P 5000 0 R/Type/Annot/A 34932 0 R/Subtype/Link/Rect[436 429 450 438]/Border[0 0 0]/H/N>> endobj 34605 0 obj <>/P 5000 0 R/Type/Annot/A 34929 0 R/Subtype/Link/Rect[452 429 466 438]/Border[0 0 0]/H/N>> endobj 34606 0 obj <>/P 5000 0 R/Type/Annot/A 34926 0 R/Subtype/Link/Rect[468 429 485 439]/Border[0 0 0]/H/N>> endobj 34607 0 obj <>/P 5000 0 R/Type/Annot/A 34703 0 R/Subtype/Link/Rect[485 429 499 438]/Border[0 0 0]/H/N>> endobj 34608 0 obj <>/P 5000 0 R/Type/Annot/A 34921 0 R/Subtype/Link/Rect[501 429 513 438]/Border[0 0 0]/H/N>> endobj 34609 0 obj <>/P 5000 0 R/Type/Annot/A 34916 0 R/Subtype/Link/Rect[399 419 410 428]/Border[0 0 0]/H/N>> endobj 34610 0 obj <>/P 5000 0 R/Type/Annot/A 34913 0 R/Subtype/Link/Rect[435 409 451 419]/Border[0 0 0]/H/N>> endobj 34611 0 obj <>/P 5000 0 R/Type/Annot/A 34910 0 R/Subtype/Link/Rect[452 409 464 418]/Border[0 0 0]/H/N>> endobj 34612 0 obj <>/P 5000 0 R/Type/Annot/A 34907 0 R/Subtype/Link/Rect[399 399 411 408]/Border[0 0 0]/H/N>> endobj 34613 0 obj <>/P 5000 0 R/Type/Annot/A 34904 0 R/Subtype/Link/Rect[392 389 404 398]/Border[0 0 0]/H/N>> endobj 34614 0 obj <>/P 5000 0 R/Type/Annot/A 34901 0 R/Subtype/Link/Rect[392 379 406 388]/Border[0 0 0]/H/N>> endobj 34615 0 obj <>/P 5000 0 R/Type/Annot/A 34897 0 R/Subtype/Link/Rect[408 379 424 389]/Border[0 0 0]/H/N>> endobj 34616 0 obj <>/P 5000 0 R/Type/Annot/A 34894 0 R/Subtype/Link/Rect[425 379 439 388]/Border[0 0 0]/H/N>> endobj 34617 0 obj <>/P 5000 0 R/Type/Annot/A 34891 0 R/Subtype/Link/Rect[441 379 453 388]/Border[0 0 0]/H/N>> endobj 34618 0 obj <>/P 5000 0 R/Type/Annot/A 34888 0 R/Subtype/Link/Rect[405 369 413 378]/Border[0 0 0]/H/N>> endobj 34619 0 obj <>/P 5000 0 R/Type/Annot/A 34885 0 R/Subtype/Link/Rect[405 359 417 368]/Border[0 0 0]/H/N>> endobj 34620 0 obj <>/P 5000 0 R/Type/Annot/A 34882 0 R/Subtype/Link/Rect[379 349 391 358]/Border[0 0 0]/H/N>> endobj 34621 0 obj <>/P 5000 0 R/Type/Annot/A 34878 0 R/Subtype/Link/Rect[378 339 390 348]/Border[0 0 0]/H/N>> endobj 34622 0 obj <>/P 5000 0 R/Type/Annot/A 34875 0 R/Subtype/Link/Rect[414 329 431 339]/Border[0 0 0]/H/N>> endobj 34623 0 obj <>/P 5000 0 R/Type/Annot/A 34872 0 R/Subtype/Link/Rect[431 329 443 338]/Border[0 0 0]/H/N>> endobj 34624 0 obj <>/P 5000 0 R/Type/Annot/A 34869 0 R/Subtype/Link/Rect[449 319 461 329]/Border[0 0 0]/H/N>> endobj 34625 0 obj <>/P 5000 0 R/Type/Annot/A 34866 0 R/Subtype/Link/Rect[462 319 470 328]/Border[0 0 0]/H/N>> endobj 34626 0 obj <>/P 5000 0 R/Type/Annot/A 34863 0 R/Subtype/Link/Rect[411 309 428 319]/Border[0 0 0]/H/N>> endobj 34627 0 obj <>/P 5000 0 R/Type/Annot/A 34861 0 R/Subtype/Link/Rect[428 309 442 318]/Border[0 0 0]/H/N>> endobj 34628 0 obj <>/P 5000 0 R/Type/Annot/A 34858 0 R/Subtype/Link/Rect[444 309 461 319]/Border[0 0 0]/H/N>> endobj 34629 0 obj <>/P 5000 0 R/Type/Annot/A 34855 0 R/Subtype/Link/Rect[462 309 476 318]/Border[0 0 0]/H/N>> endobj 34630 0 obj <>/P 5000 0 R/Type/Annot/A 34852 0 R/Subtype/Link/Rect[478 309 490 318]/Border[0 0 0]/H/N>> endobj 34631 0 obj <>/P 5000 0 R/Type/Annot/A 34849 0 R/Subtype/Link/Rect[430 299 447 309]/Border[0 0 0]/H/N>> endobj 34632 0 obj <>/P 5000 0 R/Type/Annot/A 34846 0 R/Subtype/Link/Rect[447 299 459 308]/Border[0 0 0]/H/N>> endobj 34633 0 obj <>/P 5000 0 R/Type/Annot/A 34843 0 R/Subtype/Link/Rect[399 289 411 298]/Border[0 0 0]/H/N>> endobj 34634 0 obj <>/P 5000 0 R/Type/Annot/A 34841 0 R/Subtype/Link/Rect[411 279 425 288]/Border[0 0 0]/H/N>> endobj 34635 0 obj <>/P 5000 0 R/Type/Annot/A 34838 0 R/Subtype/Link/Rect[427 279 439 288]/Border[0 0 0]/H/N>> endobj 34636 0 obj <>/P 5000 0 R/Type/Annot/A 34835 0 R/Subtype/Link/Rect[416 269 432 279]/Border[0 0 0]/H/N>> endobj 34637 0 obj <>/P 5000 0 R/Type/Annot/A 34833 0 R/Subtype/Link/Rect[433 269 447 278]/Border[0 0 0]/H/N>> endobj 34638 0 obj <>/P 5000 0 R/Type/Annot/A 34830 0 R/Subtype/Link/Rect[449 269 463 278]/Border[0 0 0]/H/N>> endobj 34639 0 obj <>/P 5000 0 R/Type/Annot/A 34934 0 R/Subtype/Link/Rect[465 269 479 278]/Border[0 0 0]/H/N>> endobj 34640 0 obj <>/P 5000 0 R/Type/Annot/A 34824 0 R/Subtype/Link/Rect[481 269 493 278]/Border[0 0 0]/H/N>> endobj 34641 0 obj <>/P 5000 0 R/Type/Annot/A 34821 0 R/Subtype/Link/Rect[399 259 411 268]/Border[0 0 0]/H/N>> endobj 34642 0 obj <>/P 5000 0 R/Type/Annot/A 34818 0 R/Subtype/Link/Rect[401 249 413 258]/Border[0 0 0]/H/N>> endobj 34643 0 obj <>/P 5000 0 R/Type/Annot/A 34814 0 R/Subtype/Link/Rect[399 239 411 248]/Border[0 0 0]/H/N>> endobj 34644 0 obj <>/P 5000 0 R/Type/Annot/A 34919 0 R/Subtype/Link/Rect[416 229 428 238]/Border[0 0 0]/H/N>> endobj 34645 0 obj <>/P 5000 0 R/Type/Annot/A 34808 0 R/Subtype/Link/Rect[406 219 420 228]/Border[0 0 0]/H/N>> endobj 34646 0 obj <>/P 5000 0 R/Type/Annot/A 34804 0 R/Subtype/Link/Rect[422 219 439 229]/Border[0 0 0]/H/N>> endobj 34647 0 obj <>/P 5000 0 R/Type/Annot/A 34799 0 R/Subtype/Link/Rect[439 219 453 228]/Border[0 0 0]/H/N>> endobj 34648 0 obj <>/P 5000 0 R/Type/Annot/A 34795 0 R/Subtype/Link/Rect[455 219 469 228]/Border[0 0 0]/H/N>> endobj 34649 0 obj <>/P 5000 0 R/Type/Annot/A 34791 0 R/Subtype/Link/Rect[471 219 485 228]/Border[0 0 0]/H/N>> endobj 34650 0 obj <>/P 5000 0 R/Type/Annot/A 34787 0 R/Subtype/Link/Rect[487 219 499 228]/Border[0 0 0]/H/N>> endobj 34651 0 obj <>/P 5000 0 R/Type/Annot/A 34783 0 R/Subtype/Link/Rect[399 209 411 218]/Border[0 0 0]/H/N>> endobj 34652 0 obj <>/P 5000 0 R/Type/Annot/A 34779 0 R/Subtype/Link/Rect[411 199 428 209]/Border[0 0 0]/H/N>> endobj 34653 0 obj <>/P 5000 0 R/Type/Annot/A 34775 0 R/Subtype/Link/Rect[428 199 442 208]/Border[0 0 0]/H/N>> endobj 34654 0 obj <>/P 5000 0 R/Type/Annot/A 34772 0 R/Subtype/Link/Rect[444 199 461 209]/Border[0 0 0]/H/N>> endobj 34655 0 obj <>/P 5000 0 R/Type/Annot/A 34768 0 R/Subtype/Link/Rect[462 199 476 208]/Border[0 0 0]/H/N>> endobj 34656 0 obj <>/P 5000 0 R/Type/Annot/A 34764 0 R/Subtype/Link/Rect[478 199 492 208]/Border[0 0 0]/H/N>> endobj 34657 0 obj <>/P 5000 0 R/Type/Annot/A 34760 0 R/Subtype/Link/Rect[494 199 508 208]/Border[0 0 0]/H/N>> endobj 34658 0 obj <>/P 5000 0 R/Type/Annot/A 34755 0 R/Subtype/Link/Rect[360 189 372 198]/Border[0 0 0]/H/N>> endobj 34659 0 obj <>/P 5000 0 R/Type/Annot/A 34752 0 R/Subtype/Link/Rect[411 179 423 188]/Border[0 0 0]/H/N>> endobj 34660 0 obj <>/P 5000 0 R/Type/Annot/A 34747 0 R/Subtype/Link/Rect[166 378 177 387]/Border[0 0 0]/H/N>> endobj 34661 0 obj <>/P 5000 0 R/Type/Annot/A 34742 0 R/Subtype/Link/Rect[181 378 196 387]/Border[0 0 0]/H/N>> endobj 34662 0 obj <>/P 5000 0 R/Type/Annot/A 34739 0 R/Subtype/Link/Rect[198 378 213 387]/Border[0 0 0]/H/N>> endobj 34663 0 obj <>/P 5000 0 R/Type/Annot/A 34734 0 R/Subtype/Link/Rect[217 378 236 387]/Border[0 0 0]/H/N>> endobj 34664 0 obj <> endobj 34665 0 obj <> endobj 34666 0 obj <> endobj 34667 0 obj <> endobj 34668 0 obj <> endobj 34669 0 obj <> endobj 34670 0 obj <> endobj 34671 0 obj <> endobj 34672 0 obj <> endobj 34673 0 obj <> endobj 34674 0 obj <> endobj 34675 0 obj <> endobj 34676 0 obj <> endobj 34677 0 obj <> endobj 34678 0 obj <> endobj 34679 0 obj <> endobj 34680 0 obj <> endobj 34681 0 obj <> endobj 34682 0 obj <> endobj 34683 0 obj <> endobj 34684 0 obj <> endobj 34685 0 obj <> endobj 34686 0 obj <> endobj 34687 0 obj <> endobj 34688 0 obj <> endobj 34689 0 obj <> endobj 34690 0 obj <> endobj 34691 0 obj <> endobj 34692 0 obj <> endobj 34693 0 obj <> endobj 34694 0 obj <> endobj 34695 0 obj <> endobj 34696 0 obj <> endobj 34697 0 obj <> endobj 34698 0 obj <> endobj 34699 0 obj <> endobj 34700 0 obj <> endobj 34701 0 obj <> endobj 34702 0 obj <> endobj 34703 0 obj <> endobj 34704 0 obj <> endobj 34705 0 obj <> endobj 34706 0 obj <> endobj 34707 0 obj <> endobj 34708 0 obj <> endobj 34709 0 obj <> endobj 34710 0 obj <> endobj 34711 0 obj <> endobj 34712 0 obj <> endobj 34713 0 obj <> endobj 34714 0 obj <> endobj 34715 0 obj <> endobj 34716 0 obj <> endobj 34717 0 obj <> endobj 34718 0 obj <> endobj 34719 0 obj <> endobj 34720 0 obj <> endobj 34721 0 obj <> endobj 34722 0 obj <> endobj 34723 0 obj <> endobj 34724 0 obj <> endobj 34725 0 obj <> endobj 34726 0 obj <> endobj 34727 0 obj <> endobj 34728 0 obj <> endobj 34729 0 obj <> endobj 34730 0 obj <> endobj 34731 0 obj <> endobj 34732 0 obj <> endobj 34733 0 obj <> endobj 34734 0 obj <> endobj 34735 0 obj <> endobj 34736 0 obj <> endobj 34737 0 obj <> endobj 34738 0 obj <> endobj 34739 0 obj <> endobj 34740 0 obj <> endobj 34741 0 obj <> endobj 34742 0 obj <> endobj 34743 0 obj <> endobj 34744 0 obj <> endobj 34745 0 obj <> endobj 34746 0 obj <> endobj 34747 0 obj <> endobj 34748 0 obj <> endobj 34749 0 obj <> endobj 34750 0 obj <> endobj 34751 0 obj <> endobj 34752 0 obj <> endobj 34753 0 obj <> endobj 34754 0 obj <> endobj 34755 0 obj <> endobj 34756 0 obj <> endobj 34757 0 obj <> endobj 34758 0 obj <> endobj 34759 0 obj <> endobj 34760 0 obj <> endobj 34761 0 obj <> endobj 34762 0 obj <> endobj 34763 0 obj <> endobj 34764 0 obj <> endobj 34765 0 obj <> endobj 34766 0 obj <> endobj 34767 0 obj <> endobj 34768 0 obj <> endobj 34769 0 obj <> endobj 34770 0 obj <> endobj 34771 0 obj <> endobj 34772 0 obj <> endobj 34773 0 obj <> endobj 34774 0 obj <> endobj 34775 0 obj <> endobj 34776 0 obj <> endobj 34777 0 obj <> endobj 34778 0 obj <> endobj 34779 0 obj <> endobj 34780 0 obj <> endobj 34781 0 obj <> endobj 34782 0 obj <> endobj 34783 0 obj <> endobj 34784 0 obj <> endobj 34785 0 obj <> endobj 34786 0 obj <> endobj 34787 0 obj <> endobj 34788 0 obj <> endobj 34789 0 obj <> endobj 34790 0 obj <> endobj 34791 0 obj <> endobj 34792 0 obj <> endobj 34793 0 obj <> endobj 34794 0 obj <> endobj 34795 0 obj <> endobj 34796 0 obj <> endobj 34797 0 obj <> endobj 34798 0 obj <> endobj 34799 0 obj <> endobj 34800 0 obj <> endobj 34801 0 obj <> endobj 34802 0 obj <> endobj 34803 0 obj <> endobj 34804 0 obj <> endobj 34805 0 obj <> endobj 34806 0 obj <> endobj 34807 0 obj <> endobj 34808 0 obj <> endobj 34809 0 obj <> endobj 34810 0 obj <> endobj 34811 0 obj <> endobj 34812 0 obj <> endobj 34813 0 obj <> endobj 34814 0 obj <> endobj 34815 0 obj <> endobj 34816 0 obj <> endobj 34817 0 obj <> endobj 34818 0 obj <> endobj 34819 0 obj <> endobj 34820 0 obj <> endobj 34821 0 obj <> endobj 34822 0 obj <> endobj 34823 0 obj <> endobj 34824 0 obj <> endobj 34825 0 obj <> endobj 34826 0 obj <> endobj 34827 0 obj <> endobj 34828 0 obj <> endobj 34829 0 obj <> endobj 34830 0 obj <> endobj 34831 0 obj <> endobj 34832 0 obj <> endobj 34833 0 obj <> endobj 34834 0 obj <> endobj 34835 0 obj <> endobj 34836 0 obj <> endobj 34837 0 obj <> endobj 34838 0 obj <> endobj 34839 0 obj <> endobj 34840 0 obj <> endobj 34841 0 obj <> endobj 34842 0 obj <> endobj 34843 0 obj <> endobj 34844 0 obj <> endobj 34845 0 obj <> endobj 34846 0 obj <> endobj 34847 0 obj <> endobj 34848 0 obj <> endobj 34849 0 obj <> endobj 34850 0 obj <> endobj 34851 0 obj <> endobj 34852 0 obj <> endobj 34853 0 obj <> endobj 34854 0 obj <> endobj 34855 0 obj <> endobj 34856 0 obj <> endobj 34857 0 obj <> endobj 34858 0 obj <> endobj 34859 0 obj <> endobj 34860 0 obj <> endobj 34861 0 obj <> endobj 34862 0 obj <> endobj 34863 0 obj <> endobj 34864 0 obj <> endobj 34865 0 obj <> endobj 34866 0 obj <> endobj 34867 0 obj <> endobj 34868 0 obj <> endobj 34869 0 obj <> endobj 34870 0 obj <> endobj 34871 0 obj <> endobj 34872 0 obj <> endobj 34873 0 obj <> endobj 34874 0 obj <> endobj 34875 0 obj <> endobj 34876 0 obj <> endobj 34877 0 obj <> endobj 34878 0 obj <> endobj 34879 0 obj <> endobj 34880 0 obj <> endobj 34881 0 obj <> endobj 34882 0 obj <> endobj 34883 0 obj <> endobj 34884 0 obj <> endobj 34885 0 obj <> endobj 34886 0 obj <> endobj 34887 0 obj <> endobj 34888 0 obj <> endobj 34889 0 obj <> endobj 34890 0 obj <> endobj 34891 0 obj <> endobj 34892 0 obj <> endobj 34893 0 obj <> endobj 34894 0 obj <> endobj 34895 0 obj <> endobj 34896 0 obj <> endobj 34897 0 obj <> endobj 34898 0 obj <> endobj 34899 0 obj <> endobj 34900 0 obj <> endobj 34901 0 obj <> endobj 34902 0 obj <> endobj 34903 0 obj <> endobj 34904 0 obj <> endobj 34905 0 obj <> endobj 34906 0 obj <> endobj 34907 0 obj <> endobj 34908 0 obj <> endobj 34909 0 obj <> endobj 34910 0 obj <> endobj 34911 0 obj <> endobj 34912 0 obj <> endobj 34913 0 obj <> endobj 34914 0 obj <> endobj 34915 0 obj <> endobj 34916 0 obj <> endobj 34917 0 obj <> endobj 34918 0 obj <> endobj 34919 0 obj <> endobj 34920 0 obj <> endobj 34921 0 obj <> endobj 34922 0 obj <> endobj 34923 0 obj <> endobj 34924 0 obj <> endobj 34925 0 obj <> endobj 34926 0 obj <> endobj 34927 0 obj <> endobj 34928 0 obj <> endobj 34929 0 obj <> endobj 34930 0 obj <> endobj 34931 0 obj <> endobj 34932 0 obj <> endobj 34933 0 obj <> endobj 34934 0 obj <> endobj 34935 0 obj <> endobj 34936 0 obj <> endobj 34937 0 obj <> endobj 34938 0 obj <> endobj 34939 0 obj <> endobj 34940 0 obj <> endobj 34941 0 obj <> endobj 34942 0 obj <> endobj 34943 0 obj <> endobj 34944 0 obj <> endobj 34945 0 obj <> endobj 34946 0 obj <> endobj 34947 0 obj <> endobj 34948 0 obj <> endobj 34949 0 obj <> endobj 34950 0 obj <> endobj 34951 0 obj <> endobj 34952 0 obj <> endobj 34953 0 obj <> endobj 34954 0 obj <> endobj 34955 0 obj <> endobj 34956 0 obj <> endobj 34957 0 obj <> endobj 34958 0 obj <> endobj 34959 0 obj <> endobj 34960 0 obj <> endobj 34961 0 obj <> endobj 34962 0 obj <> endobj 34963 0 obj <> endobj 34964 0 obj <> endobj 34965 0 obj <> endobj 34966 0 obj <> endobj 34967 0 obj <> endobj 34968 0 obj <> endobj 34969 0 obj <> endobj 34970 0 obj <> endobj 34971 0 obj <> endobj 34972 0 obj <> endobj 34973 0 obj <> endobj 34974 0 obj <> endobj 34975 0 obj <> endobj 34976 0 obj <> endobj 34977 0 obj <> endobj 34978 0 obj <> endobj 34979 0 obj <> endobj 34980 0 obj <> endobj 34981 0 obj <> endobj 34982 0 obj <> endobj 34983 0 obj <> endobj 34984 0 obj <> endobj 34985 0 obj <> endobj 34986 0 obj <> endobj 34987 0 obj <> endobj 34988 0 obj <> endobj 34989 0 obj <> endobj 34990 0 obj <> endobj 34991 0 obj <> endobj 34992 0 obj <> endobj 34993 0 obj <> endobj 34994 0 obj <> endobj 34995 0 obj <> endobj 34996 0 obj <> endobj 34997 0 obj <> endobj 34998 0 obj <> endobj 34999 0 obj <> endobj 35000 0 obj <> endobj 35001 0 obj <> endobj 35002 0 obj <> endobj 35003 0 obj <> endobj 35004 0 obj <> endobj 35005 0 obj <> endobj 35006 0 obj <> endobj 35007 0 obj <> endobj 35008 0 obj <> endobj 35009 0 obj <> endobj 35010 0 obj <> endobj 35011 0 obj <> endobj 35012 0 obj <> endobj 35013 0 obj <> endobj 35014 0 obj <> endobj 35015 0 obj <> endobj 35016 0 obj <> endobj 35017 0 obj <> endobj 35018 0 obj <> endobj 35019 0 obj <> endobj 35020 0 obj <> endobj 35021 0 obj <> endobj 35022 0 obj <> endobj 35023 0 obj <> endobj 35024 0 obj <> endobj 35025 0 obj <> endobj 35026 0 obj <> endobj 35027 0 obj <> endobj 35028 0 obj <> endobj 35029 0 obj <> endobj 35030 0 obj <> endobj 35031 0 obj <> endobj 35032 0 obj <> endobj 35033 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 35034 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 35035 0 obj <> endobj 35036 0 obj <> endobj 35037 0 obj <> endobj 35038 0 obj <> endobj 35039 0 obj <> endobj 35040 0 obj <> stream q /X1 Do Q q endstream endobj 35041 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 35042 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 35043 0 obj <> stream HW]ۺ}ׯE_O Iq`E#k%ZrPdm !}rH ÛcK>śgϞ|'rK_6ZE#'nnnV݋zWkUIUvN&{n$,7Eœ`,هŝ+۪>'B<|; D `<]]'+n}UnJ/E]J,Z3N/j1;Ж{י<0|ȚdVTh3[\.:ؔc#g2!Řg8OYYa9O^$^$%^&%^&%^&^%^%5^'5^'5^'sD}y@Q_$ D}7z7zzij1m36<+UcB\c1JƘg! ĵ1Yĵqm qmy>q@\cO\+Ƙg! ĵ1Yĵqm qmy>q@\cO\+>kc̳R1,ĵ1YT} qmy>qD\cO\+Ƙg!Jĵ1Yĵqm qmy>qD\cO\+Ƙg!Jĵ1Yĵqm36<+UcB\c1JƘg!*ĵ1Yĵ qm qmy>qB\cO\Ƙg!*ĵ1Yĵ qm qmy>qB\cO\>ӈkc̳R1,ĵ1YTZEt}|,'I8Yn2:.,I[g]-tL0Z#:ǁN[ %FNEAR| |XܟВ'XTMhW[n[օΡ*wM*W]u?>.NT(Se*5 bfp@!\H%OlvXuVr\]GQ0`ciÇ h~4je7JΓ U.د[O ;wڅn4ZCZIXU xPCJ2ԘbuQ#Gf6 f ˩d,?j@h[ч;㔾'[L~vb}b6ʭ-~@wθо: [ƽ>9J0*ZP S7һwsVAspxڃ8EsUA`bW]P~T\ݦ>9LHK(Yw+Q #5#&DUsTW>@֕_CjIHq puFi▙b"ڞ5!๦Γq!Ⅲg!>ufgYZ5.Y] !w >Ew7^[&\W:p#!`eϫup&,6ӯ8Oi`= <ܴp>tGO#|QSbQa6(0$$YF*{?;?&VAȇv';>AWy\PzwWV}M߻ա!v_]<*)&~tGYQ0քImqY""n"s{޻۱Uc>RSc2}XlN6`م.uez`szCBY[23A WRH$TNs#}t'x!!R sB!wBqzNR udH*lEC/ e9?K q(gV}uz օ|+\ PhAw pq}K*W}q9o3&S߯nPG"7VP(v-2`FrK2Qxbv!~=#FóΟ ̥e}m8H!P_p#m4΅WKHm rIh^hHow]3SVMXt Rk _y˙cߟQ˫y5aʟP.0r>,O{xktC]}uWv6=eԒrz\>2j '߾yyrJjE/JX:k\8\Gb:-f1ʤ^B\Ir*~B3]<8f#[x ݫx[]$Th{Άؿb!﵀ j 'yo-FNGy-J鬓X 5=Bs( xu%+E>zDo5C=}?ծVZ]5`;>r&9\6PIe{Wێ6}"/2֊T6X``M3A Y͞n߶[>7eO*Ȫ:u/ܸy19ad:wawv! l^{&Py7J=UB瞎HRk|{Iʗ~>N7:Ntnn};TBb%+`= =O`V9q07nϿb%Y1 oZԸA.Zw8e0 z( DXIwX.,h(#`=9é$W `ܿJvx2ad* *(ЩC5s'=v$fE$$&.g9H|etĜ9gtS:=`\DӕOII=ԩ FcU9SxJJP3P-b}TA'\'Եe[ỉʘ5vl/k|wrISǿkc  #xТ mo*Ρ^O,V[}rXn%s)llY[J^1'on"q=*MU#W% _y1^d.{o!nw^Fʰ,_Hm/o~1ϑ $IZ[Z ǽ "D)O6#c!y)"H]&jl%~;1"ȯQEe( + k3>=5^&;iliL;'o%߼F\ltO}k ݃գj{ԎbqOx9T=}q4<=*?$Mm[df*ۤqZŎvLx,-KP2>L32~99ǰG97reLP4̀Fh.-DIdgM㋥s |p޼} |C/Ue$5"Oq{ٓ0w/4ֻxp,0ԍVpd(DqXt`4:+UUX(& s2D8?Zh ȣH۸&n}sd\Ļ/C03%nizEQe\<r b+;_>)eS`~ҿ2C]XohXs9 ۆH5\5¼N!G=twS h.,ÎsLrvF^ިߦb;H93PhoY8m5}/H3wlH">X]".6"=B!yFD9_mWSՆ5f&,L񲏮:w.{+# Dd/1#+!n[_٢klAxBӵԗmg?\`fge:#ͤWet|86ithUgw"N 6kt}{u?~M`gendstream endobj 35044 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 35045 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 35046 0 obj <> endobj 35047 0 obj <> endobj 35048 0 obj <> endobj 35049 0 obj <> endobj 35050 0 obj <> endobj 35051 0 obj <> stream q /X1 Do Q q endstream endobj 35052 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 35053 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 35054 0 obj <> stream HWmo8_}Q #I^Qfvbˉv-9kf Eʦqz(RQg8yWxqoHF^|uG$e\U sR*Nvu%KiHrTC~lwM[fIvMr5'w}j\.WAY A29Id&)S&0ePujgUd$R,z;f&@.=}Y;EIy=awGPa\DPN /I)W0oVgbf$׉V!F`X&"Ph38\hc1*BP!wb Pa#a#a/"a/"a/"a/#a/# a" a" a"9>T> Qmh3(}Z6>R@T6>R@T aV mBT aV mT+Ն6@! mT+Ն6BGjC[HD͠b PjCACACՆ6BGjCA!#JD PjCA!#JD͠j%(D͠j%fPHQmhfPHQmh3(}Z6BT *f6T>T^S$6yH. NYmhNrURAm閛&/al˳o!Zr7z_.W5/"CB\TfLg`T˼$90c=w]Yw3Vu7B䛚H(8.۶Y]^IIK>m2 JG0n*uny!:ڎG#jG}pl\Lb=WP~svUZmU';%|}\p(`۱Wjҷ.P;Gk߆!껦(v=O&ktdمdVmn ⬤9b6(7x>9s:D"4Ӛ­̓P8aAv<-3iZfkv}db3Cˊ4agx%3@#zEaZ Hcf ˨10 8S<4/i)vr]*ߣٔlׂI))+8Br[c` }N[ \ZjF`l^Ϙ1vXTٶB}azR+a霏_K@!c6bqs(3]0oxݮ]wr-rHΣصu_/<~̉PROu:~?Oρ#f8(cՄt%WK("Ӆz\կo3b!"szXEfOն;| 5 vol/7KPyڴ\u~ =s 7~呂oMjFmV,}JQ垇O퀘Fn{|Hˍ*|aXfhFgrW=(7lfݾu3بnS~~YTf=.ݪ޹8@ӯocR7.oO-WTw5(w6#eI2HljŞ\OjE:qێ?LL2VqS2mFvNOv3i=rM~Sۉ ?`0L[4}<]tUfOaЂɽ]q.\c1o{'hq?l'!@ ֜s2Ԋ͸ |tnpB0 ;UcH#L4>ڦb[ 8gy1s.o8]i.3Q+tm|sVz~)vYfc>)gʼs(?֫m" pK.T`mWB&qZ '^^|3N@Ɏs̹߉beP4 -(bk\![_r0daס^uVԯm-!$e+*H4IK1`h " kL xi0E l@ǥ2 E=nvT6C?k)~n=.)бA)с¹c3IH(3%B,F|޼˜!A]Qfg"=e_P0 Vd+82 !kEWW$oUo]94~oOuyP,̿LIiF\0 ̐ Ze̦(BH-n]ؒ\ rжo؋H:eጷ=6/{]*,uU{Fale—@ᬖs CN1 86+2"l%E*"eSWβZ{˔ ;ŻfNB%N`TLTAhϏwI!^G\KR4lV\e۝*@|0_c{CER0 ApD+ 3F'ۃ\#HS HkHE}H*¨-pxaX5"p{s_:GS(*]}I5d`ɩ9:@?;EPKx̓mO*6I R}?9G%j/endstream endobj 35055 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 35056 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 35057 0 obj <> endobj 35058 0 obj <> endobj 35059 0 obj <> endobj 35060 0 obj <> endobj 35061 0 obj <> stream q /X1 Do Q q endstream endobj 35062 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 35063 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 35064 0 obj <> stream H[oH+` Mv-3嵙$0dDEdz뷋D'?5IUwώN޿?<>rrSeց FZőqCS-O9*'u+?*eU,**WZݭk|:RL{(Ngc3CCqYLwjSQ߷?N~*]TŲΫmn7u/~`M7is_c\3Y}ᩙrR:^B 'ܹrҐ{RI0q\r\.ߗ.+.k֥kAoAo}APЇ>!}#AHǀ>1} cAD'>)O} Eip4ZKsͺ@r\k\.е\#]Ar\^t]5]5rzѵt-Ejе\.е\#]Ar\^t]5]5rzѵt-Ejе\[8t-%f]kF.I5rIzYZ Ћ5kF.@/րuZkk ZYZ Ћ5kF.@/րuZkk Z-t-%f]kF.I5rIzYZ Ћ @r\^tmkkkе\#]ut-Ekf]kF.@/6]5rzѵZ-t-%f]kF.I5rIM4Pqp3g?Uv\/**kש(JUp[? FgcsTOZ=짽Z/֭k߮*{ֳM|2+ݘh$s ԓri' coa J31\)pd"+Y AV(BdE"+YȊAV,bd%"+YJAV*R,,KfqFV,d"K,-4uAsY.kY5{u%@s\ KԽuϵnD{ dנ C2F.5@{k4,Q=hY {8DP\A d7Fuo@sF0%ހ` KԽu5@{k4\,Kfq&%>u5@=h YP\d@sF%>u5u@=hYP\!d@s%>u5Od%Fu~< nBF)ؐ vj7zH,rߪӋOFv[ٳؼb=7~#{7n b|;ttܰԃVLYPPu9-&|jzyaMw]g6,gMCU,r=ot8Y3U.#"gmJt$qzdf3lo^oF߲fn=虮IRr|Z+wWv~,]{klYn۔v[k%WAvzzGͯi~۳W],ao#Ktzaj|@u-/P~z[(/p/OO/7]Bk$ف%I5}9=l[T $La4v/P.%(ķgv_ !lI#&ˬMo^75KnoSA}[7XAgv]jh݆R^tV 8KIǔO{,Uդ*eeG'O-6s4heizo һ0jÃ˓|zT,M><|Y*1_՘mgo6H]C_]&l._mY}@,&@cir>>}$ɣ}XtRЊ]cGRzlqq.N.8tޠeY7deUoL%b|5 M/\yi„^{644k6 M/9uYռ| =ޣ]p>,qt,Uy3ֶz맭a㘘޴6#yb:>q|~Ҿ4q {0xQk.פOvLus#&h^aڦԛ![b9[/CBc+{T> |R"/Sٰ'JHCY6)bOmݩm^8m_}^`VqСA)ٟOórzDDMG}ԾȾyыѧ B~R58F`ؒv/)ۃ!`njzmG7/vg E m\ DzE z$(|_a)؀rj"iii("' 9~<.sc紡qt%ŗ{RRJ*TXA`Ŋ+VT *ŪRjŪVj,WhإYR#,Xb9rKށK]r@.Rw Rc`;{ TȽX*^j,{r/5vʽ4KjKރK]rA.R Rc`{{ T=ȽX*^j,{r/5vʽK4KjKKKKKKKKK>K]%5rK]լekf5].6Ez=_n̓UFbm}3|惭C6- сm=)~oe=Cg8;vL!xwNs;RÍCQl>:}esʍk,c-ʸz~u" yZpLgQ6@)0o~!.?K_o]U/rϋ:!1aHjNS7\?t-bnӌ6p7M)8 췟>؇2 +b͢rUW, 0\x}nkzquKvZ*5aO\77x_mǵ9֜~[0}&p1K˲SOhNGbaym̑pm.S/P>Ӄ+e~1q|1ߟ C ^fNLwt=zΞ(.|M~ݯf{endstream endobj 35065 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 35066 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 35067 0 obj <> endobj 35068 0 obj <> endobj 35069 0 obj <> endobj 35070 0 obj <> endobj 35071 0 obj <> stream q /X1 Do Q q endstream endobj 35072 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 35073 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 35074 0 obj <> stream HWkF_1gR`Γ p,Ð%jWk8n:0J553]C_S??~l6)낊׹SEutTgQ̨̪ʮ~wf~qO}ݜ+ufW?9{^eW}U&K0QI%T)Uf>y)ͺȫnN ϯgr}Vgy9{qmM*{fQU+5FkIq_V2|03QzƨʒϵC!S>Kee)RND8xFpE0dEE[S XNp{'w̽{ =s}`>2Qp(}.ϙ\p3` }/%s_ K> s,V-RK1dqZ!{KH-Ő%guBj),=KRK1` ,NH-Ő%guBj),!C ,NH-ŀ%bܳ:!C >Bj),bRK1dqCwO1` ,^H-Ő%gBj),!C ,^H-ŀ%bܳz!C R Y{Z/bܳz!gAH-ŐS XBj),b),!C6,AH-ŀ%bܳ!C6R Y{ bܳ!Z!KpRR Y{ b, {KH-ŐS Y}) wgϫ쪪dFU+:W;T^Uf,fOS\+?pX,̫I]mW+qV_/9CS[?GS_nx@3б5Bi̬>^Q~r*렪ٮIIZƎT9Ս:DN VZC ~{9_, QV/)CVpTGƱjyXxP}?Y xln: Iؠ͗Nx$<ΥI?b{v\^Z3=GU#krc)߶WVۭ x vG8O$$#up]+m@m-O?3făVkO—Ufm)'A}TϬoCVXL+ZiA+0(hEȴrA+gZ3B*V!hLJU Z%JVbZIJTE1dq- ZiYA2-'h9-N{!Kb}-N{!Kb}-N{!Kb}-N{!Kb}ŀ%=Ő%hBS Y{/=Ő%hBS Y{/=Ő%hBS Y{/=Ő%hBS Y{/=Ő%hBS Y\bbX),A}bX),A}bX),A}bX),A}bXG),E1` }O1dqSJ{\*[oQ&+[T֢|u,>c{}wbf^&nV75ݴ/s[}c97BG(ȯwàqJO˽7[`pJ]\Hj0r{ UYC~P蘰]epc=ꫥ>5m_1K d6Xô{G|8]1./V,ri#n^cLwS7&R}]iMc^Cq^ݧAfiwM;ŌFvyzN#)YO>N!i2eK!\0 ]ANMZ])ͱ f _,G;lt6DѰ|Hg,HYb[jOc xN|N#+ 2cg="D9WΙW8k>ֻ|5.n4Ҏn+x_܏mwNGxU.QyG7e|B*t {ׯLXOu)/ lQ_*N= :XE.7p7Qd!#aYζoQ@/4r懚ދSX{ m'9VӼݭw f)DS3y9~Ą`'Oy* Ru2l@BqV`ΕN<u\NN`\U$ iI% 0~08c[Pn4RU>(8uƘ XCnԠ)ϺGJ7u1LackY.j֋. =xAN[S` 蔒eqmꠗ1*/*0E 9x5VG|RBG˯di:A˿]ŬZI>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 35076 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 35077 0 obj <> endobj 35078 0 obj [277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 554 554 554 554 554 554 554 554 554 554 0 0 0 0 0 0 0 740 574 813 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 685 650 0 0 0 200 0 0 0 0 610 0 682 0 0 0 0 0 0 0 480] endobj 35079 0 obj <> stream xMU{TW01q fV(z"PPAQ,CAb[ J<4*RPѴP%AL|[vZ&^ܳ?;{w YIEQ5kV7sO4Ȕ^IIv$ĩӣ-7iQ:/>?@|vD~[Gqz9PMNIiq;;Y8QBS(ԊfƱ'LM,WLAhڀfY(mE!{DHd$G 4q#+8jWB)闌H߬JhDе4a꘧pAfZ .{Oÿ.O?b9^&~F?`'D˄X+>ȅF{ECs ڊ/T(/ݮ9m-䃌#ϓ D0tBW)Ax'oڨR4=ЇФzPh oxy1`孺k>V{\j>-kJZ<dB޺rmD3O.jmVyb]0 91]Xwx)IwaYۓS>N82spP 1Jq-0l&f<"y sL^~#m;}se{4acF 2" x# Jb []~2~˄fL1RcêX j^ NAf_w(X ZȽYfW$*n%fgCs*cj/rDiB' @IE8Zz)CI vcef@X#e9d`%@܈+Y+嫹0EŇ}*Ef&~{b9v$DAG? pI ̬:` =2P}R,jqw_]p0aܙceENzү#׻ V(,T7| Ճ߃F)L&pmmڱr1uq"ªtj>*~=t$(ZYջc?/wwY-Bâ?I R @ b=Md=g cb E=~Rq0og܀YlV_Uenu;)FnpZM5|õm8ś荩vMSb"11MSϏ1 /djL58iRL^-a 6,%*LVq@RsK*BNҐi;I3ο_+ӝo[C<@'Tp_|z8pNVx:xEp\OF5xEA++&^iآY㕉Aaa\YAN>rg'ĄMmK [ԡUqAYwNM7nMvW8:7ւ.^: o Pm q| BYQ=bMfz6g%f|k+AXtcP A0bpRh osⳲDwۉ'y{/V*F;s qpJ]3G4{ Y/G\%UM N,=(ajZ-)ð_{kv.0zDC >06XTf-Ѯhhraɑ+޴,C#4ki`E.mM 66&8endstream endobj 35080 0 obj <> endobj 35081 0 obj <> stream q /X1 Do Q q endstream endobj 35082 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 35083 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 35084 0 obj <> stream H}o6ק`,Q}iIZąʴƖ\In׵;JcP4q=$;s[Rj|,/GvM;)\BczJi aҰ!cV:$Ū(,23F&<6F=`C0"\Ă"+xm|;slg;mZ֟g.?>N^U]z? 3]e }.~k+1|ۂ+wNlڈ#aeLȣHDc[frQ ]\m[O5t & &;LzGK0-äw.һLzWK1=-ǤLz_K3}-}>L@K2C-}Ȥ>GLzYjkC0RMTCC-ՔKOO5S ] TS.&F`r15jC-PK5bk Z)^V0R ] TS.&F`r15jC-PK5bk Z)^V0Rmm8 TS.==PK5SMTCC-ՔIQ0RMC-PK5bk: TS.&FPK5t1RMC-ՔIQ0R ] TS.&FPK5bk: T[.C-ՔKOO5t1RMTS.==PK5bkԺ TS.&FPK5t1RM.C-ՔIQ2R ] TS.&FPK5bkԺ TCC-ՔIQ2RM.C-ֆPK5S ] TS.==ՔKOQ`ῃx8xaD5]t ^=wVO{xp "o\2Ќio,O,hhᛡ՗jU,77fonl-珛@eQ>8bІL77C/n&\IV;bA/30~*e2FP0O|Z]m5KjҞN Vy!|\buqXeZ˖}'vΩebnm6E.XbOj++79vA OXEo7bKq]JLXot*=+(#S=TGQPU!>ߛM8#73aى~T ~(U? ]kj;mr>Gm3L%% }?KPz[(5z ;;ٮ ;J'vEnv/mŞZ;]~4!TIv"G=E8~(ן_ܡhb{lH׌IwuS僤\Ch=~tng#nW&8{ܦ8|^fyUVCaaHf@"nm@ܪHW+B +8D!K̃(Gg/KTTy2>Vum,c؁D;G^tu9cZio6~ij_w uɟstmp'2 RՎy˪%~T@~):9GRe}+Hq6.sǛ7lE2?TmG}[OtRjϯo{FbkqG*/'7_g7Np<6M"oJԾfEl\\OgtQendstream endobj 35085 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 35086 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 35087 0 obj <> endobj 35088 0 obj <> endobj 35089 0 obj <> stream q /X1 Do Q q endstream endobj 35090 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 35091 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 35092 0 obj <> stream H|Wk_т/ /1,@;Y-BLMv9339 )WWUYۛw/fً^F"b[>Μ3δUFMtj=뿪ͺiMշܴut™.z1&k&˨ES4MfFOYe]rG'3~dt϶Y;hQ 4 f]mm܍?O*]_f7}Sݞj%8~7t#;ļ#_筹J.%ݤMT':TrJ)&^$,Ĉef Y)`Ij#r{{+ʽr>()p*)p*)p*p)p)9p+9p+9p+p_(p_(%p_*%p:kAi%hĘKXcv/1fi#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 WuDVb%F,Z1K{ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZmZ+1fi#hĘKYڽĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkh6Q Z+1fi#hĘKY}eLB $:Lf/L'7Mt9zXoݢ2'Ywۺ䭜ѲitT_Mt?y]NGW/>||O1]xC~58kqͬ_mg =Ԅf{Տf]=ɶ<: F_]7#n~p' 8ݰЗ T;._ a8y{,1ۍih]Wolv$TUdH r빙ܴcKb6_{&a?}_0MD4χĘU @+(JVR* heJ+ZʁVr+hJZ*VJUJ-h-1KkIXhYeUZh9倖ʽʽʽʽʽʽʽʽĈr/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-r/1fi- ^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*)ȽĘ$F,{1KkqYa5ސDg5LQy N&͊ |[TfWū|4Wmm3'ߥMwx+ܖa\TK:6hWM,[q0~3>ά:657v3a~5O MV[WHtsVy']K@8wM:{trݧ&Ж'Gxt/H'珆{6ugvSog}+67_*8[Tvt%Vܣ3`ާqvVn7..ȬK3%Ӿ( %,Ώ+详^LǚoHzjcg<=?\K3>Dzӱ{'YmכTem^څ]\KgE}Љ83G~{˛g7oqct>8/Xz>;}9zSzda~]*۸Q&]NG64Y0m]l2}' ^w!i~no\p*GY"j%ݓS1j;|98"JRZhVPZ)JV RLie@+SZ9ʕVrUBi@PZ%*V J%1fi--,вJ-Rw cRw cRw cRw cRw cRw cRw cR c֒@%,rA%,rA%,rA%,rA%,rA%,rA%,rA%,rA%,?«mGNWHd3YEeWwcKoӓ*=qg(U㲽=s֡6+mZ9bmxuh刵=s֡#ֆ{[VX3mZ9bmxuh刵=s֡#ֆ{[VX3mZ9bmxuhe{[VXYeY]N~Px.UԃL'TR8G")W% y2QxEq#J Y<` ̨Q qain[xB˘ߪgXh ) #^;4 z-QA9K#u$H:_6~-2Da@wL(=Š9 $9jjfqܺ=p3 d^EDO3䃎LQYOrHcek{ heɽ0z5Cd owZE|^ .J쎓j5ދ"DBdR4oT7Z]X?J@ƺ@ R̘pܟDXA(  p !0 JpEYwjZ*~̈@[$!'K-WQ\~j*#c2b!3_Nkhӷi2Qy-n4hts#Bӌeޝ`svPH؏BwZZ[3D)%zl#0Ԣ#۟O_|y~)f, LZ QAuÅLFn;|[ws+\[($L3 a:U=uN]卲lRuVxGH8$l2# @Ewy[c-L܊n,^dnr87vg<l1|VFVKb7 ljb y(!Wb')Ƹ懃,P^"-k4Q T|.tהarӱ9c] Zȱ^,UI,ƘZLlM?O?忬!jAx@VG҈A;lAh2cnW\8u%I̖+bW\L 4A|8®u責-cWDEYLP`(_ ANE;`؋x޾{_wyw 0SIendstream endobj 35093 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 35094 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 35095 0 obj <> endobj 35096 0 obj <> endobj 35097 0 obj <> endobj 35098 0 obj <> endobj 35099 0 obj <> endobj 35100 0 obj <> endobj 35101 0 obj <> stream q /X1 Do Q q endstream endobj 35102 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 35103 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 35104 0 obj <> stream HW[~ׯУpsEr4m]!-vtmomoӜ_HY#[J6n |$|/W^_T2W]9Uz+m]^ Q>\o|~ylz].~{ʇ]rV\'Urv_D"XFYz٪Dgf_äpw|3+]BWZJQ ?]YD*e愈gx,nh)&H0R DmQQĆ(ˠ(w)s(ŰW{ŰW{Ͱ{Ͱ{Ͱ{ð7{ð7{˰{˰{˰{ǰw{ǰw{ϰ{ϰ{ϰȰȰ4+R۪Pj Q9{jZjCTΞ6@16D13*FԆ(}ZŨŨŰTRjZjZjC>SbTKmbgUj Pj Q LQ-!aV1URr(FԆ=!*gOmbTKmbgՌj Q LQ-Q-!aV36D13jF(FԆ(}ZͨŰTRRj5ZjC>SfTKm06D Pj Q9{jCTΞŨŰTkRj ZjZjC>SaTKmbg5j Pj Q LQ-!a06@16D13FԆ(}ZèVeTKmSRrԆ}bŪx9+g3Yrv_JbJ*&7n~{ `'M^VZ'zꅲb"?O:x`zGp^엛uG> ahO89ӑHwΕPXu FTd}hKK^l}3y=tpUViy"ɓJ[ya:aALKG !q./%nq%[^Yp~Yj6tLp=ʷPc s% RlJ `#00sű\!뇖 ` P.xEe؞mƢ3(Jԩ29fUE!3>9r6\$R'D39RfgSDO%\-c>qFW 3 4 6wu8\y:W_ ӿZTPÚcRc|`RxX/;F+ ^au[H7)m3]ݍટr(k,屒0Ct18(̨[xrCS|L A> Qћxb9 ] -c^wGS |]QBC;=59Ur n ۚY6 !:NsD)CmΝ4P8q>H{r Wk*;%o pSG :yxcTw]қLԦU\Mk1IAgBQAWa.S="A^z}kI*l r[<<ۨ px{\^W&f|4퐕L |=%*px x[n޽3**J&Lm6>p<^AMJg~zg$at'.B.]N)K7S/Pa(EM•R!18/38γXіbk%mkPJ5o I%?WJυ3}U;`2K@zMq>7ց|S0~0 @O7p4B~G4@{\pʱ[uH07ՙN@Fz8'u6K K.4~dGCqXps{umӐsq}ljﴐ~FF?ܞ'-H޲H=z"ǔ%S3~cV[{.=Mv1!!qAŗ#N1I8_Ji]W]Jڄ6m 7k>޸H*Díx)n$*m >ҀM%B"ɉĎB7L%ݙٝ=fPFج鮮6Ę֒.OLXi|[^/mZ<6[n7T&r} r2ˑ.%k=S=A,*_Sn(bw(R^&H%qwyvttp|ѯONglJѾ_'S Zߴc=1]JDn#,L!/mKjc(nкQ2S5tA G?a1ZΏ]ޥkbM-Ѧ,dmBXүNO9b%ߖɱyDk֢xR.f_nS{gLѳ*oat [OˊGE|vxc#dv#xJefDZwTU@z젨$ rԝbWgHy*rckQ J- -c̨rEhؿnyPdE$ ?nv9rB)yP =l| $*oE!AO"cN9=y$?Íg3D4mdko{*DED h [GDqATu \DFlc%{/*_m+ΝKQJ VpU$菿;+1ܔ5ilJ`7_d7mQrYqc+_Φsp'lMxec}|y|+sW|8iaTX(W}_LQ@_ |xGA^ԦY bc)vHgdD5m6(HdLay#a)x/F FamL5W/A%+O 4tVdb}^AщYflAL ykD}DEP*G焌29!Ush>N/O̍D9zaO*S1"[wWٽbI|jyuPl{}J?ڍFcy 8quPP@@@T4ך4s(O%r0tF`D8?k34-(AilVrZ='Ӽ."śOO7ov:FhwiCK8'|-3-0 2֋!һ zRnޢ i A e/-jSTj23Py$]("AC$ƼpsxUpRy9(`aP,| #dϒAƊ!s*م1U5օ7^E d%!*DB =#D*[ɦBȤEuDdKR91  nr(Im)IYnR Ux*O)c4MPuP~8e-ۢ.ȷp$jh(B)hPu8a(q.x œ\ fMI' ũiMijMN \n#;u|BrvF<}qZ >i:F>Br] 9gNL NrB U-PeF*T@5څXIޛ\_%.rBׅxS]$J&A  sBI %HT='A7Q!Kѿ2΋!C<ܷy֛T&,L|jaz~lnY6U e-(m()R[hx^"q,]`g?iZ|ØYb +"<0 F..v5w\O@Qendstream endobj 35105 0 obj <>/P 4621 0 R/Type/Annot/A 35699 0 R/Subtype/Link/Rect[207 669 219 678]/Border[0 0 0]/H/N>> endobj 35106 0 obj <>/P 4621 0 R/Type/Annot/A 35695 0 R/Subtype/Link/Rect[192 659 209 669]/Border[0 0 0]/H/N>> endobj 35107 0 obj <>/P 4621 0 R/Type/Annot/A 35691 0 R/Subtype/Link/Rect[210 659 224 668]/Border[0 0 0]/H/N>> endobj 35108 0 obj <>/P 4621 0 R/Type/Annot/A 35687 0 R/Subtype/Link/Rect[226 659 242 669]/Border[0 0 0]/H/N>> endobj 35109 0 obj <>/P 4621 0 R/Type/Annot/A 35682 0 R/Subtype/Link/Rect[243 659 257 668]/Border[0 0 0]/H/N>> endobj 35110 0 obj <>/P 4621 0 R/Type/Annot/A 35678 0 R/Subtype/Link/Rect[259 659 271 668]/Border[0 0 0]/H/N>> endobj 35111 0 obj <>/P 4621 0 R/Type/Annot/A 35673 0 R/Subtype/Link/Rect[190 649 202 658]/Border[0 0 0]/H/N>> endobj 35112 0 obj <>/P 4621 0 R/Type/Annot/A 35668 0 R/Subtype/Link/Rect[202 639 215 649]/Border[0 0 0]/H/N>> endobj 35113 0 obj <>/P 4621 0 R/Type/Annot/A 35663 0 R/Subtype/Link/Rect[215 639 225 648]/Border[0 0 0]/H/N>> endobj 35114 0 obj <>/P 4621 0 R/Type/Annot/A 35658 0 R/Subtype/Link/Rect[227 639 241 648]/Border[0 0 0]/H/N>> endobj 35115 0 obj <>/P 4621 0 R/Type/Annot/A 35652 0 R/Subtype/Link/Rect[243 639 255 648]/Border[0 0 0]/H/N>> endobj 35116 0 obj <>/P 4621 0 R/Type/Annot/A 35647 0 R/Subtype/Link/Rect[202 629 215 639]/Border[0 0 0]/H/N>> endobj 35117 0 obj <>/P 4621 0 R/Type/Annot/A 35642 0 R/Subtype/Link/Rect[215 629 225 638]/Border[0 0 0]/H/N>> endobj 35118 0 obj <>/P 4621 0 R/Type/Annot/A 35637 0 R/Subtype/Link/Rect[227 629 239 638]/Border[0 0 0]/H/N>> endobj 35119 0 obj <>/P 4621 0 R/Type/Annot/A 35632 0 R/Subtype/Link/Rect[202 619 212 628]/Border[0 0 0]/H/N>> endobj 35120 0 obj <>/P 4621 0 R/Type/Annot/A 35627 0 R/Subtype/Link/Rect[214 619 231 629]/Border[0 0 0]/H/N>> endobj 35121 0 obj <>/P 4621 0 R/Type/Annot/A 35623 0 R/Subtype/Link/Rect[231 619 243 628]/Border[0 0 0]/H/N>> endobj 35122 0 obj <>/P 4621 0 R/Type/Annot/A 35618 0 R/Subtype/Link/Rect[207 609 220 619]/Border[0 0 0]/H/N>> endobj 35123 0 obj <>/P 4621 0 R/Type/Annot/A 35613 0 R/Subtype/Link/Rect[220 609 230 618]/Border[0 0 0]/H/N>> endobj 35124 0 obj <>/P 4621 0 R/Type/Annot/A 35610 0 R/Subtype/Link/Rect[232 609 246 618]/Border[0 0 0]/H/N>> endobj 35125 0 obj <>/P 4621 0 R/Type/Annot/A 35607 0 R/Subtype/Link/Rect[248 609 260 618]/Border[0 0 0]/H/N>> endobj 35126 0 obj <>/P 4621 0 R/Type/Annot/A 35604 0 R/Subtype/Link/Rect[202 599 219 609]/Border[0 0 0]/H/N>> endobj 35127 0 obj <>/P 4621 0 R/Type/Annot/A 35600 0 R/Subtype/Link/Rect[219 599 233 608]/Border[0 0 0]/H/N>> endobj 35128 0 obj <>/P 4621 0 R/Type/Annot/A 35595 0 R/Subtype/Link/Rect[235 599 247 608]/Border[0 0 0]/H/N>> endobj 35129 0 obj <>/P 4621 0 R/Type/Annot/A 35589 0 R/Subtype/Link/Rect[190 589 202 598]/Border[0 0 0]/H/N>> endobj 35130 0 obj <>/P 4621 0 R/Type/Annot/A 35585 0 R/Subtype/Link/Rect[192 579 202 588]/Border[0 0 0]/H/N>> endobj 35131 0 obj <>/P 4621 0 R/Type/Annot/A 35581 0 R/Subtype/Link/Rect[204 579 214 588]/Border[0 0 0]/H/N>> endobj 35132 0 obj <>/P 4621 0 R/Type/Annot/A 35576 0 R/Subtype/Link/Rect[216 579 226 588]/Border[0 0 0]/H/N>> endobj 35133 0 obj <>/P 4621 0 R/Type/Annot/A 35572 0 R/Subtype/Link/Rect[228 579 242 588]/Border[0 0 0]/H/N>> endobj 35134 0 obj <>/P 4621 0 R/Type/Annot/A 35569 0 R/Subtype/Link/Rect[244 579 261 589]/Border[0 0 0]/H/N>> endobj 35135 0 obj <>/P 4621 0 R/Type/Annot/A 35566 0 R/Subtype/Link/Rect[262 579 276 588]/Border[0 0 0]/H/N>> endobj 35136 0 obj <>/P 4621 0 R/Type/Annot/A 35564 0 R/Subtype/Link/Rect[278 579 292 588]/Border[0 0 0]/H/N>> endobj 35137 0 obj <>/P 4621 0 R/Type/Annot/A 35562 0 R/Subtype/Link/Rect[151 569 168 579]/Border[0 0 0]/H/N>> endobj 35138 0 obj <>/P 4621 0 R/Type/Annot/A 35560 0 R/Subtype/Link/Rect[168 569 182 578]/Border[0 0 0]/H/N>> endobj 35139 0 obj <>/P 4621 0 R/Type/Annot/A 35558 0 R/Subtype/Link/Rect[184 569 198 578]/Border[0 0 0]/H/N>> endobj 35140 0 obj <>/P 4621 0 R/Type/Annot/A 35556 0 R/Subtype/Link/Rect[200 569 214 578]/Border[0 0 0]/H/N>> endobj 35141 0 obj <>/P 4621 0 R/Type/Annot/A 35554 0 R/Subtype/Link/Rect[216 569 230 578]/Border[0 0 0]/H/N>> endobj 35142 0 obj <>/P 4621 0 R/Type/Annot/A 35550 0 R/Subtype/Link/Rect[232 569 246 578]/Border[0 0 0]/H/N>> endobj 35143 0 obj <>/P 4621 0 R/Type/Annot/A 35548 0 R/Subtype/Link/Rect[248 569 262 578]/Border[0 0 0]/H/N>> endobj 35144 0 obj <>/P 4621 0 R/Type/Annot/A 35546 0 R/Subtype/Link/Rect[264 569 278 578]/Border[0 0 0]/H/N>> endobj 35145 0 obj <>/P 4621 0 R/Type/Annot/A 35544 0 R/Subtype/Link/Rect[151 559 168 569]/Border[0 0 0]/H/N>> endobj 35146 0 obj <>/P 4621 0 R/Type/Annot/A 35542 0 R/Subtype/Link/Rect[168 559 182 568]/Border[0 0 0]/H/N>> endobj 35147 0 obj <>/P 4621 0 R/Type/Annot/A 35540 0 R/Subtype/Link/Rect[184 559 198 568]/Border[0 0 0]/H/N>> endobj 35148 0 obj <>/P 4621 0 R/Type/Annot/A 35538 0 R/Subtype/Link/Rect[200 559 214 568]/Border[0 0 0]/H/N>> endobj 35149 0 obj <>/P 4621 0 R/Type/Annot/A 35536 0 R/Subtype/Link/Rect[216 559 230 568]/Border[0 0 0]/H/N>> endobj 35150 0 obj <>/P 4621 0 R/Type/Annot/A 35534 0 R/Subtype/Link/Rect[232 559 246 568]/Border[0 0 0]/H/N>> endobj 35151 0 obj <>/P 4621 0 R/Type/Annot/A 35532 0 R/Subtype/Link/Rect[248 559 262 568]/Border[0 0 0]/H/N>> endobj 35152 0 obj <>/P 4621 0 R/Type/Annot/A 35530 0 R/Subtype/Link/Rect[264 559 278 568]/Border[0 0 0]/H/N>> endobj 35153 0 obj <>/P 4621 0 R/Type/Annot/A 35528 0 R/Subtype/Link/Rect[280 559 294 568]/Border[0 0 0]/H/N>> endobj 35154 0 obj <>/P 4621 0 R/Type/Annot/A 35526 0 R/Subtype/Link/Rect[296 559 310 568]/Border[0 0 0]/H/N>> endobj 35155 0 obj <>/P 4621 0 R/Type/Annot/A 35524 0 R/Subtype/Link/Rect[151 549 165 558]/Border[0 0 0]/H/N>> endobj 35156 0 obj <>/P 4621 0 R/Type/Annot/A 35522 0 R/Subtype/Link/Rect[167 549 179 558]/Border[0 0 0]/H/N>> endobj 35157 0 obj <>/P 4621 0 R/Type/Annot/A 35520 0 R/Subtype/Link/Rect[190 539 202 548]/Border[0 0 0]/H/N>> endobj 35158 0 obj <>/P 4621 0 R/Type/Annot/A 35518 0 R/Subtype/Link/Rect[197 529 209 538]/Border[0 0 0]/H/N>> endobj 35159 0 obj <>/P 4621 0 R/Type/Annot/A 35516 0 R/Subtype/Link/Rect[197 519 209 528]/Border[0 0 0]/H/N>> endobj 35160 0 obj <>/P 4621 0 R/Type/Annot/A 35514 0 R/Subtype/Link/Rect[157 509 167 518]/Border[0 0 0]/H/N>> endobj 35161 0 obj <>/P 4621 0 R/Type/Annot/A 35512 0 R/Subtype/Link/Rect[169 509 183 518]/Border[0 0 0]/H/N>> endobj 35162 0 obj <>/P 4621 0 R/Type/Annot/A 35510 0 R/Subtype/Link/Rect[185 509 201 519]/Border[0 0 0]/H/N>> endobj 35163 0 obj <>/P 4621 0 R/Type/Annot/A 35508 0 R/Subtype/Link/Rect[202 509 214 518]/Border[0 0 0]/H/N>> endobj 35164 0 obj <>/P 4621 0 R/Type/Annot/A 35506 0 R/Subtype/Link/Rect[213 489 225 499]/Border[0 0 0]/H/N>> endobj 35165 0 obj <>/P 4621 0 R/Type/Annot/A 35504 0 R/Subtype/Link/Rect[226 489 240 498]/Border[0 0 0]/H/N>> endobj 35166 0 obj <>/P 4621 0 R/Type/Annot/A 35502 0 R/Subtype/Link/Rect[242 489 254 498]/Border[0 0 0]/H/N>> endobj 35167 0 obj <>/P 4621 0 R/Type/Annot/A 35500 0 R/Subtype/Link/Rect[192 479 202 488]/Border[0 0 0]/H/N>> endobj 35168 0 obj <>/P 4621 0 R/Type/Annot/A 35498 0 R/Subtype/Link/Rect[204 479 220 489]/Border[0 0 0]/H/N>> endobj 35169 0 obj <>/P 4621 0 R/Type/Annot/A 35496 0 R/Subtype/Link/Rect[221 479 233 488]/Border[0 0 0]/H/N>> endobj 35170 0 obj <>/P 4621 0 R/Type/Annot/A 35494 0 R/Subtype/Link/Rect[205 469 215 478]/Border[0 0 0]/H/N>> endobj 35171 0 obj <>/P 4621 0 R/Type/Annot/A 35492 0 R/Subtype/Link/Rect[217 469 234 479]/Border[0 0 0]/H/N>> endobj 35172 0 obj <>/P 4621 0 R/Type/Annot/A 35490 0 R/Subtype/Link/Rect[234 469 248 478]/Border[0 0 0]/H/N>> endobj 35173 0 obj <>/P 4621 0 R/Type/Annot/A 35488 0 R/Subtype/Link/Rect[250 469 262 478]/Border[0 0 0]/H/N>> endobj 35174 0 obj <>/P 4621 0 R/Type/Annot/A 35486 0 R/Subtype/Link/Rect[211 459 225 468]/Border[0 0 0]/H/N>> endobj 35175 0 obj <>/P 4621 0 R/Type/Annot/A 35484 0 R/Subtype/Link/Rect[227 459 244 469]/Border[0 0 0]/H/N>> endobj 35176 0 obj <>/P 4621 0 R/Type/Annot/A 35481 0 R/Subtype/Link/Rect[245 459 257 468]/Border[0 0 0]/H/N>> endobj 35177 0 obj <>/P 4621 0 R/Type/Annot/A 35479 0 R/Subtype/Link/Rect[186 449 194 459]/Border[0 0 0]/H/N>> endobj 35178 0 obj <>/P 4621 0 R/Type/Annot/A 35477 0 R/Subtype/Link/Rect[195 449 205 458]/Border[0 0 0]/H/N>> endobj 35179 0 obj <>/P 4621 0 R/Type/Annot/A 35475 0 R/Subtype/Link/Rect[207 449 220 459]/Border[0 0 0]/H/N>> endobj 35180 0 obj <>/P 4621 0 R/Type/Annot/A 35473 0 R/Subtype/Link/Rect[220 449 228 458]/Border[0 0 0]/H/N>> endobj 35181 0 obj <>/P 4621 0 R/Type/Annot/A 35740 0 R/Subtype/Link/Rect[195 439 212 449]/Border[0 0 0]/H/N>> endobj 35182 0 obj <>/P 4621 0 R/Type/Annot/A 35737 0 R/Subtype/Link/Rect[213 439 225 448]/Border[0 0 0]/H/N>> endobj 35183 0 obj <>/P 4621 0 R/Type/Annot/A 35734 0 R/Subtype/Link/Rect[178 429 186 438]/Border[0 0 0]/H/N>> endobj 35184 0 obj <>/P 4621 0 R/Type/Annot/A 35731 0 R/Subtype/Link/Rect[168 419 184 429]/Border[0 0 0]/H/N>> endobj 35185 0 obj <>/P 4621 0 R/Type/Annot/A 35728 0 R/Subtype/Link/Rect[185 419 197 428]/Border[0 0 0]/H/N>> endobj 35186 0 obj <>/P 4621 0 R/Type/Annot/A 35725 0 R/Subtype/Link/Rect[165 409 177 419]/Border[0 0 0]/H/N>> endobj 35187 0 obj <>/P 4621 0 R/Type/Annot/A 35722 0 R/Subtype/Link/Rect[178 409 188 418]/Border[0 0 0]/H/N>> endobj 35188 0 obj <>/P 4621 0 R/Type/Annot/A 35719 0 R/Subtype/Link/Rect[190 409 206 419]/Border[0 0 0]/H/N>> endobj 35189 0 obj <>/P 4621 0 R/Type/Annot/A 35716 0 R/Subtype/Link/Rect[207 409 218 418]/Border[0 0 0]/H/N>> endobj 35190 0 obj <>/P 4621 0 R/Type/Annot/A 35713 0 R/Subtype/Link/Rect[218 399 234 409]/Border[0 0 0]/H/N>> endobj 35191 0 obj <>/P 4621 0 R/Type/Annot/A 35709 0 R/Subtype/Link/Rect[235 399 249 408]/Border[0 0 0]/H/N>> endobj 35192 0 obj <>/P 4621 0 R/Type/Annot/A 35706 0 R/Subtype/Link/Rect[251 399 265 408]/Border[0 0 0]/H/N>> endobj 35193 0 obj <>/P 4621 0 R/Type/Annot/A 35703 0 R/Subtype/Link/Rect[267 399 281 408]/Border[0 0 0]/H/N>> endobj 35194 0 obj <>/P 4621 0 R/Type/Annot/A 35700 0 R/Subtype/Link/Rect[283 399 297 408]/Border[0 0 0]/H/N>> endobj 35195 0 obj <>/P 4621 0 R/Type/Annot/A 35696 0 R/Subtype/Link/Rect[151 389 165 398]/Border[0 0 0]/H/N>> endobj 35196 0 obj <>/P 4621 0 R/Type/Annot/A 35711 0 R/Subtype/Link/Rect[167 389 181 398]/Border[0 0 0]/H/N>> endobj 35197 0 obj <>/P 4621 0 R/Type/Annot/A 35686 0 R/Subtype/Link/Rect[183 389 195 398]/Border[0 0 0]/H/N>> endobj 35198 0 obj <>/P 4621 0 R/Type/Annot/A 35681 0 R/Subtype/Link/Rect[166 379 178 389]/Border[0 0 0]/H/N>> endobj 35199 0 obj <>/P 4621 0 R/Type/Annot/A 35676 0 R/Subtype/Link/Rect[179 379 189 388]/Border[0 0 0]/H/N>> endobj 35200 0 obj <>/P 4621 0 R/Type/Annot/A 35671 0 R/Subtype/Link/Rect[191 379 201 388]/Border[0 0 0]/H/N>> endobj 35201 0 obj <>/P 4621 0 R/Type/Annot/A 35666 0 R/Subtype/Link/Rect[203 379 216 389]/Border[0 0 0]/H/N>> endobj 35202 0 obj <>/P 4621 0 R/Type/Annot/A 35661 0 R/Subtype/Link/Rect[216 379 226 388]/Border[0 0 0]/H/N>> endobj 35203 0 obj <>/P 4621 0 R/Type/Annot/A 35655 0 R/Subtype/Link/Rect[228 379 238 388]/Border[0 0 0]/H/N>> endobj 35204 0 obj <>/P 4621 0 R/Type/Annot/A 35650 0 R/Subtype/Link/Rect[240 379 257 389]/Border[0 0 0]/H/N>> endobj 35205 0 obj <>/P 4621 0 R/Type/Annot/A 35645 0 R/Subtype/Link/Rect[258 379 272 388]/Border[0 0 0]/H/N>> endobj 35206 0 obj <>/P 4621 0 R/Type/Annot/A 35640 0 R/Subtype/Link/Rect[274 379 288 388]/Border[0 0 0]/H/N>> endobj 35207 0 obj <>/P 4621 0 R/Type/Annot/A 35635 0 R/Subtype/Link/Rect[290 379 304 388]/Border[0 0 0]/H/N>> endobj 35208 0 obj <>/P 4621 0 R/Type/Annot/A 35630 0 R/Subtype/Link/Rect[151 369 168 379]/Border[0 0 0]/H/N>> endobj 35209 0 obj <>/P 4621 0 R/Type/Annot/A 35625 0 R/Subtype/Link/Rect[168 369 182 378]/Border[0 0 0]/H/N>> endobj 35210 0 obj <>/P 4621 0 R/Type/Annot/A 35621 0 R/Subtype/Link/Rect[184 369 196 378]/Border[0 0 0]/H/N>> endobj 35211 0 obj <>/P 4621 0 R/Type/Annot/A 35615 0 R/Subtype/Link/Rect[184 359 201 369]/Border[0 0 0]/H/N>> endobj 35212 0 obj <>/P 4621 0 R/Type/Annot/A 35611 0 R/Subtype/Link/Rect[201 359 213 368]/Border[0 0 0]/H/N>> endobj 35213 0 obj <>/P 4621 0 R/Type/Annot/A 35606 0 R/Subtype/Link/Rect[171 349 183 358]/Border[0 0 0]/H/N>> endobj 35214 0 obj <>/P 4621 0 R/Type/Annot/A 35602 0 R/Subtype/Link/Rect[171 339 179 348]/Border[0 0 0]/H/N>> endobj 35215 0 obj <>/P 4621 0 R/Type/Annot/A 35597 0 R/Subtype/Link/Rect[173 329 185 339]/Border[0 0 0]/H/N>> endobj 35216 0 obj <>/P 4621 0 R/Type/Annot/A 35592 0 R/Subtype/Link/Rect[186 329 196 338]/Border[0 0 0]/H/N>> endobj 35217 0 obj <>/P 4621 0 R/Type/Annot/A 35840 0 R/Subtype/Link/Rect[198 329 210 338]/Border[0 0 0]/H/N>> endobj 35218 0 obj <>/P 4621 0 R/Type/Annot/A 35836 0 R/Subtype/Link/Rect[160 319 176 329]/Border[0 0 0]/H/N>> endobj 35219 0 obj <>/P 4621 0 R/Type/Annot/A 35833 0 R/Subtype/Link/Rect[176 319 188 328]/Border[0 0 0]/H/N>> endobj 35220 0 obj <>/P 4621 0 R/Type/Annot/A 35830 0 R/Subtype/Link/Rect[165 309 182 319]/Border[0 0 0]/H/N>> endobj 35221 0 obj <>/P 4621 0 R/Type/Annot/A 35827 0 R/Subtype/Link/Rect[183 309 197 318]/Border[0 0 0]/H/N>> endobj 35222 0 obj <>/P 4621 0 R/Type/Annot/A 35824 0 R/Subtype/Link/Rect[199 309 211 318]/Border[0 0 0]/H/N>> endobj 35223 0 obj <>/P 4621 0 R/Type/Annot/A 35821 0 R/Subtype/Link/Rect[183 299 194 308]/Border[0 0 0]/H/N>> endobj 35224 0 obj <>/P 4621 0 R/Type/Annot/A 35818 0 R/Subtype/Link/Rect[165 289 178 299]/Border[0 0 0]/H/N>> endobj 35225 0 obj <>/P 4621 0 R/Type/Annot/A 35814 0 R/Subtype/Link/Rect[179 289 187 298]/Border[0 0 0]/H/N>> endobj 35226 0 obj <>/P 4621 0 R/Type/Annot/A 35811 0 R/Subtype/Link/Rect[190 279 204 288]/Border[0 0 0]/H/N>> endobj 35227 0 obj <>/P 4621 0 R/Type/Annot/A 35809 0 R/Subtype/Link/Rect[206 279 222 289]/Border[0 0 0]/H/N>> endobj 35228 0 obj <>/P 4621 0 R/Type/Annot/A 35807 0 R/Subtype/Link/Rect[223 279 237 288]/Border[0 0 0]/H/N>> endobj 35229 0 obj <>/P 4621 0 R/Type/Annot/A 35805 0 R/Subtype/Link/Rect[239 279 253 288]/Border[0 0 0]/H/N>> endobj 35230 0 obj <>/P 4621 0 R/Type/Annot/A 35803 0 R/Subtype/Link/Rect[255 279 269 288]/Border[0 0 0]/H/N>> endobj 35231 0 obj <>/P 4621 0 R/Type/Annot/A 35801 0 R/Subtype/Link/Rect[271 279 285 288]/Border[0 0 0]/H/N>> endobj 35232 0 obj <>/P 4621 0 R/Type/Annot/A 35799 0 R/Subtype/Link/Rect[151 269 168 279]/Border[0 0 0]/H/N>> endobj 35233 0 obj <>/P 4621 0 R/Type/Annot/A 35797 0 R/Subtype/Link/Rect[168 269 182 278]/Border[0 0 0]/H/N>> endobj 35234 0 obj <>/P 4621 0 R/Type/Annot/A 35795 0 R/Subtype/Link/Rect[184 269 198 278]/Border[0 0 0]/H/N>> endobj 35235 0 obj <>/P 4621 0 R/Type/Annot/A 35793 0 R/Subtype/Link/Rect[200 269 214 278]/Border[0 0 0]/H/N>> endobj 35236 0 obj <>/P 4621 0 R/Type/Annot/A 35791 0 R/Subtype/Link/Rect[216 269 230 278]/Border[0 0 0]/H/N>> endobj 35237 0 obj <>/P 4621 0 R/Type/Annot/A 35789 0 R/Subtype/Link/Rect[232 269 249 279]/Border[0 0 0]/H/N>> endobj 35238 0 obj <>/P 4621 0 R/Type/Annot/A 35787 0 R/Subtype/Link/Rect[250 269 264 278]/Border[0 0 0]/H/N>> endobj 35239 0 obj <>/P 4621 0 R/Type/Annot/A 35785 0 R/Subtype/Link/Rect[266 269 280 278]/Border[0 0 0]/H/N>> endobj 35240 0 obj <>/P 4621 0 R/Type/Annot/A 35783 0 R/Subtype/Link/Rect[151 259 168 269]/Border[0 0 0]/H/N>> endobj 35241 0 obj <>/P 4621 0 R/Type/Annot/A 35781 0 R/Subtype/Link/Rect[168 259 182 268]/Border[0 0 0]/H/N>> endobj 35242 0 obj <>/P 4621 0 R/Type/Annot/A 35779 0 R/Subtype/Link/Rect[184 259 198 268]/Border[0 0 0]/H/N>> endobj 35243 0 obj <>/P 4621 0 R/Type/Annot/A 35777 0 R/Subtype/Link/Rect[200 259 214 268]/Border[0 0 0]/H/N>> endobj 35244 0 obj <>/P 4621 0 R/Type/Annot/A 35775 0 R/Subtype/Link/Rect[216 259 230 268]/Border[0 0 0]/H/N>> endobj 35245 0 obj <>/P 4621 0 R/Type/Annot/A 35773 0 R/Subtype/Link/Rect[232 259 246 268]/Border[0 0 0]/H/N>> endobj 35246 0 obj <>/P 4621 0 R/Type/Annot/A 35771 0 R/Subtype/Link/Rect[248 259 262 268]/Border[0 0 0]/H/N>> endobj 35247 0 obj <>/P 4621 0 R/Type/Annot/A 35769 0 R/Subtype/Link/Rect[264 259 278 268]/Border[0 0 0]/H/N>> endobj 35248 0 obj <>/P 4621 0 R/Type/Annot/A 35767 0 R/Subtype/Link/Rect[280 259 294 268]/Border[0 0 0]/H/N>> endobj 35249 0 obj <>/P 4621 0 R/Type/Annot/A 35765 0 R/Subtype/Link/Rect[296 259 308 268]/Border[0 0 0]/H/N>> endobj 35250 0 obj <>/P 4621 0 R/Type/Annot/A 35763 0 R/Subtype/Link/Rect[173 249 179 258]/Border[0 0 0]/H/N>> endobj 35251 0 obj <>/P 4621 0 R/Type/Annot/A 35761 0 R/Subtype/Link/Rect[181 249 197 259]/Border[0 0 0]/H/N>> endobj 35252 0 obj <>/P 4621 0 R/Type/Annot/A 35759 0 R/Subtype/Link/Rect[198 249 210 258]/Border[0 0 0]/H/N>> endobj 35253 0 obj <>/P 4621 0 R/Type/Annot/A 35757 0 R/Subtype/Link/Rect[186 239 198 248]/Border[0 0 0]/H/N>> endobj 35254 0 obj <>/P 4621 0 R/Type/Annot/A 35755 0 R/Subtype/Link/Rect[167 229 179 238]/Border[0 0 0]/H/N>> endobj 35255 0 obj <>/P 4621 0 R/Type/Annot/A 35753 0 R/Subtype/Link/Rect[167 219 179 228]/Border[0 0 0]/H/N>> endobj 35256 0 obj <>/P 4621 0 R/Type/Annot/A 35751 0 R/Subtype/Link/Rect[167 209 177 218]/Border[0 0 0]/H/N>> endobj 35257 0 obj <>/P 4621 0 R/Type/Annot/A 35749 0 R/Subtype/Link/Rect[179 209 189 218]/Border[0 0 0]/H/N>> endobj 35258 0 obj <>/P 4621 0 R/Type/Annot/A 35747 0 R/Subtype/Link/Rect[191 209 205 218]/Border[0 0 0]/H/N>> endobj 35259 0 obj <>/P 4621 0 R/Type/Annot/A 35745 0 R/Subtype/Link/Rect[207 209 219 218]/Border[0 0 0]/H/N>> endobj 35260 0 obj <>/P 4621 0 R/Type/Annot/A 35743 0 R/Subtype/Link/Rect[162 199 172 208]/Border[0 0 0]/H/N>> endobj 35261 0 obj <>/P 4621 0 R/Type/Annot/A 35741 0 R/Subtype/Link/Rect[174 199 187 208]/Border[0 0 0]/H/N>> endobj 35262 0 obj <>/P 4621 0 R/Type/Annot/A 35738 0 R/Subtype/Link/Rect[189 199 201 208]/Border[0 0 0]/H/N>> endobj 35263 0 obj <>/P 4621 0 R/Type/Annot/A 35735 0 R/Subtype/Link/Rect[167 189 178 198]/Border[0 0 0]/H/N>> endobj 35264 0 obj <>/P 4621 0 R/Type/Annot/A 35732 0 R/Subtype/Link/Rect[167 179 177 188]/Border[0 0 0]/H/N>> endobj 35265 0 obj <>/P 4621 0 R/Type/Annot/A 35729 0 R/Subtype/Link/Rect[179 179 189 188]/Border[0 0 0]/H/N>> endobj 35266 0 obj <>/P 4621 0 R/Type/Annot/A 35726 0 R/Subtype/Link/Rect[191 179 202 188]/Border[0 0 0]/H/N>> endobj 35267 0 obj <>/P 4621 0 R/Type/Annot/A 35723 0 R/Subtype/Link/Rect[157 169 165 178]/Border[0 0 0]/H/N>> endobj 35268 0 obj <>/P 4621 0 R/Type/Annot/A 35720 0 R/Subtype/Link/Rect[162 159 172 168]/Border[0 0 0]/H/N>> endobj 35269 0 obj <>/P 4621 0 R/Type/Annot/A 35717 0 R/Subtype/Link/Rect[174 159 184 168]/Border[0 0 0]/H/N>> endobj 35270 0 obj <>/P 4621 0 R/Type/Annot/A 35714 0 R/Subtype/Link/Rect[186 159 196 168]/Border[0 0 0]/H/N>> endobj 35271 0 obj <>/P 4621 0 R/Type/Annot/A 35710 0 R/Subtype/Link/Rect[198 159 211 168]/Border[0 0 0]/H/N>> endobj 35272 0 obj <>/P 4621 0 R/Type/Annot/A 35707 0 R/Subtype/Link/Rect[213 159 227 168]/Border[0 0 0]/H/N>> endobj 35273 0 obj <>/P 4621 0 R/Type/Annot/A 35704 0 R/Subtype/Link/Rect[229 159 241 168]/Border[0 0 0]/H/N>> endobj 35274 0 obj <>/P 4621 0 R/Type/Annot/A 35701 0 R/Subtype/Link/Rect[166 149 170 158]/Border[0 0 0]/H/N>> endobj 35275 0 obj <>/P 4621 0 R/Type/Annot/A 35698 0 R/Subtype/Link/Rect[391 669 404 679]/Border[0 0 0]/H/N>> endobj 35276 0 obj <>/P 4621 0 R/Type/Annot/A 35694 0 R/Subtype/Link/Rect[404 669 412 678]/Border[0 0 0]/H/N>> endobj 35277 0 obj <>/P 4621 0 R/Type/Annot/A 35690 0 R/Subtype/Link/Rect[434 659 442 668]/Border[0 0 0]/H/N>> endobj 35278 0 obj <>/P 4621 0 R/Type/Annot/A 35685 0 R/Subtype/Link/Rect[405 649 419 658]/Border[0 0 0]/H/N>> endobj 35279 0 obj <>/P 4621 0 R/Type/Annot/A 35680 0 R/Subtype/Link/Rect[421 649 435 658]/Border[0 0 0]/H/N>> endobj 35280 0 obj <>/P 4621 0 R/Type/Annot/A 35675 0 R/Subtype/Link/Rect[437 649 451 658]/Border[0 0 0]/H/N>> endobj 35281 0 obj <>/P 4621 0 R/Type/Annot/A 35670 0 R/Subtype/Link/Rect[453 649 465 658]/Border[0 0 0]/H/N>> endobj 35282 0 obj <>/P 4621 0 R/Type/Annot/A 35665 0 R/Subtype/Link/Rect[398 639 410 648]/Border[0 0 0]/H/N>> endobj 35283 0 obj <>/P 4621 0 R/Type/Annot/A 35660 0 R/Subtype/Link/Rect[458 629 466 638]/Border[0 0 0]/H/N>> endobj 35284 0 obj <>/P 4621 0 R/Type/Annot/A 35654 0 R/Subtype/Link/Rect[415 619 429 628]/Border[0 0 0]/H/N>> endobj 35285 0 obj <>/P 4621 0 R/Type/Annot/A 35649 0 R/Subtype/Link/Rect[431 619 443 628]/Border[0 0 0]/H/N>> endobj 35286 0 obj <>/P 4621 0 R/Type/Annot/A 35644 0 R/Subtype/Link/Rect[413 609 421 619]/Border[0 0 0]/H/N>> endobj 35287 0 obj <>/P 4621 0 R/Type/Annot/A 35639 0 R/Subtype/Link/Rect[422 609 426 618]/Border[0 0 0]/H/N>> endobj 35288 0 obj <>/P 4621 0 R/Type/Annot/A 35634 0 R/Subtype/Link/Rect[434 599 444 608]/Border[0 0 0]/H/N>> endobj 35289 0 obj <>/P 4621 0 R/Type/Annot/A 35629 0 R/Subtype/Link/Rect[446 599 456 608]/Border[0 0 0]/H/N>> endobj 35290 0 obj <>/P 4621 0 R/Type/Annot/A 35624 0 R/Subtype/Link/Rect[458 599 466 608]/Border[0 0 0]/H/N>> endobj 35291 0 obj <>/P 4621 0 R/Type/Annot/A 35619 0 R/Subtype/Link/Rect[397 589 411 598]/Border[0 0 0]/H/N>> endobj 35292 0 obj <>/P 4621 0 R/Type/Annot/A 35614 0 R/Subtype/Link/Rect[413 589 427 598]/Border[0 0 0]/H/N>> endobj 35293 0 obj <>/P 4621 0 R/Type/Annot/A 35598 0 R/Subtype/Link/Rect[429 589 441 598]/Border[0 0 0]/H/N>> endobj 35294 0 obj <>/P 4621 0 R/Type/Annot/A 35591 0 R/Subtype/Link/Rect[406 579 420 588]/Border[0 0 0]/H/N>> endobj 35295 0 obj <>/P 4621 0 R/Type/Annot/A 35603 0 R/Subtype/Link/Rect[422 579 436 588]/Border[0 0 0]/H/N>> endobj 35296 0 obj <>/P 4621 0 R/Type/Annot/A 35599 0 R/Subtype/Link/Rect[438 579 450 588]/Border[0 0 0]/H/N>> endobj 35297 0 obj <>/P 4621 0 R/Type/Annot/A 35594 0 R/Subtype/Link/Rect[415 569 429 578]/Border[0 0 0]/H/N>> endobj 35298 0 obj <>/P 4621 0 R/Type/Annot/A 35588 0 R/Subtype/Link/Rect[431 569 448 579]/Border[0 0 0]/H/N>> endobj 35299 0 obj <>/P 4621 0 R/Type/Annot/A 35584 0 R/Subtype/Link/Rect[448 569 460 578]/Border[0 0 0]/H/N>> endobj 35300 0 obj <>/P 4621 0 R/Type/Annot/A 35580 0 R/Subtype/Link/Rect[420 559 432 568]/Border[0 0 0]/H/N>> endobj 35301 0 obj <>/P 4621 0 R/Type/Annot/A 35575 0 R/Subtype/Link/Rect[360 549 372 559]/Border[0 0 0]/H/N>> endobj 35302 0 obj <>/P 4621 0 R/Type/Annot/A 35835 0 R/Subtype/Link/Rect[373 549 381 558]/Border[0 0 0]/H/N>> endobj 35303 0 obj <>/P 4621 0 R/Type/Annot/A 35832 0 R/Subtype/Link/Rect[390 539 404 548]/Border[0 0 0]/H/N>> endobj 35304 0 obj <>/P 4621 0 R/Type/Annot/A 35829 0 R/Subtype/Link/Rect[406 539 418 548]/Border[0 0 0]/H/N>> endobj 35305 0 obj <>/P 4621 0 R/Type/Annot/A 35826 0 R/Subtype/Link/Rect[414 529 424 538]/Border[0 0 0]/H/N>> endobj 35306 0 obj <>/P 4621 0 R/Type/Annot/A 35823 0 R/Subtype/Link/Rect[426 529 434 538]/Border[0 0 0]/H/N>> endobj 35307 0 obj <>/P 4621 0 R/Type/Annot/A 35820 0 R/Subtype/Link/Rect[400 519 412 528]/Border[0 0 0]/H/N>> endobj 35308 0 obj <>/P 4621 0 R/Type/Annot/A 35817 0 R/Subtype/Link/Rect[402 509 416 518]/Border[0 0 0]/H/N>> endobj 35309 0 obj <>/P 4621 0 R/Type/Annot/A 35813 0 R/Subtype/Link/Rect[418 509 435 519]/Border[0 0 0]/H/N>> endobj 35310 0 obj <>/P 4621 0 R/Type/Annot/A 35553 0 R/Subtype/Link/Rect[436 509 450 518]/Border[0 0 0]/H/N>> endobj 35311 0 obj <>/P 4621 0 R/Type/Annot/A 35810 0 R/Subtype/Link/Rect[452 509 464 518]/Border[0 0 0]/H/N>> endobj 35312 0 obj <>/P 4621 0 R/Type/Annot/A 35808 0 R/Subtype/Link/Rect[420 499 436 509]/Border[0 0 0]/H/N>> endobj 35313 0 obj <>/P 4621 0 R/Type/Annot/A 35806 0 R/Subtype/Link/Rect[437 499 449 508]/Border[0 0 0]/H/N>> endobj 35314 0 obj <>/P 4621 0 R/Type/Annot/A 35804 0 R/Subtype/Link/Rect[398 489 410 498]/Border[0 0 0]/H/N>> endobj 35315 0 obj <>/P 4621 0 R/Type/Annot/A 35802 0 R/Subtype/Link/Rect[405 479 419 488]/Border[0 0 0]/H/N>> endobj 35316 0 obj <>/P 4621 0 R/Type/Annot/A 35800 0 R/Subtype/Link/Rect[421 479 435 488]/Border[0 0 0]/H/N>> endobj 35317 0 obj <>/P 4621 0 R/Type/Annot/A 35798 0 R/Subtype/Link/Rect[437 479 449 488]/Border[0 0 0]/H/N>> endobj 35318 0 obj <>/P 4621 0 R/Type/Annot/A 35796 0 R/Subtype/Link/Rect[415 469 431 479]/Border[0 0 0]/H/N>> endobj 35319 0 obj <>/P 4621 0 R/Type/Annot/A 35794 0 R/Subtype/Link/Rect[432 469 446 478]/Border[0 0 0]/H/N>> endobj 35320 0 obj <>/P 4621 0 R/Type/Annot/A 35792 0 R/Subtype/Link/Rect[448 469 460 478]/Border[0 0 0]/H/N>> endobj 35321 0 obj <>/P 4621 0 R/Type/Annot/A 35790 0 R/Subtype/Link/Rect[398 459 410 468]/Border[0 0 0]/H/N>> endobj 35322 0 obj <>/P 4621 0 R/Type/Annot/A 35788 0 R/Subtype/Link/Rect[405 449 419 458]/Border[0 0 0]/H/N>> endobj 35323 0 obj <>/P 4621 0 R/Type/Annot/A 35786 0 R/Subtype/Link/Rect[421 449 433 458]/Border[0 0 0]/H/N>> endobj 35324 0 obj <>/P 4621 0 R/Type/Annot/A 35784 0 R/Subtype/Link/Rect[418 439 426 448]/Border[0 0 0]/H/N>> endobj 35325 0 obj <>/P 4621 0 R/Type/Annot/A 35782 0 R/Subtype/Link/Rect[410 429 422 438]/Border[0 0 0]/H/N>> endobj 35326 0 obj <>/P 4621 0 R/Type/Annot/A 35780 0 R/Subtype/Link/Rect[423 419 431 428]/Border[0 0 0]/H/N>> endobj 35327 0 obj <>/P 4621 0 R/Type/Annot/A 35778 0 R/Subtype/Link/Rect[396 409 408 418]/Border[0 0 0]/H/N>> endobj 35328 0 obj <>/P 4621 0 R/Type/Annot/A 35776 0 R/Subtype/Link/Rect[429 399 437 408]/Border[0 0 0]/H/N>> endobj 35329 0 obj <>/P 4621 0 R/Type/Annot/A 35774 0 R/Subtype/Link/Rect[400 389 406 398]/Border[0 0 0]/H/N>> endobj 35330 0 obj <>/P 4621 0 R/Type/Annot/A 35772 0 R/Subtype/Link/Rect[408 389 422 398]/Border[0 0 0]/H/N>> endobj 35331 0 obj <>/P 4621 0 R/Type/Annot/A 35770 0 R/Subtype/Link/Rect[424 389 441 399]/Border[0 0 0]/H/N>> endobj 35332 0 obj <>/P 4621 0 R/Type/Annot/A 35768 0 R/Subtype/Link/Rect[442 389 456 398]/Border[0 0 0]/H/N>> endobj 35333 0 obj <>/P 4621 0 R/Type/Annot/A 35766 0 R/Subtype/Link/Rect[458 389 472 398]/Border[0 0 0]/H/N>> endobj 35334 0 obj <>/P 4621 0 R/Type/Annot/A 35764 0 R/Subtype/Link/Rect[474 389 488 398]/Border[0 0 0]/H/N>> endobj 35335 0 obj <>/P 4621 0 R/Type/Annot/A 35762 0 R/Subtype/Link/Rect[490 389 504 398]/Border[0 0 0]/H/N>> endobj 35336 0 obj <>/P 4621 0 R/Type/Annot/A 35760 0 R/Subtype/Link/Rect[359 379 373 388]/Border[0 0 0]/H/N>> endobj 35337 0 obj <>/P 4621 0 R/Type/Annot/A 35758 0 R/Subtype/Link/Rect[375 379 392 389]/Border[0 0 0]/H/N>> endobj 35338 0 obj <>/P 4621 0 R/Type/Annot/A 35756 0 R/Subtype/Link/Rect[392 379 406 388]/Border[0 0 0]/H/N>> endobj 35339 0 obj <>/P 4621 0 R/Type/Annot/A 35754 0 R/Subtype/Link/Rect[408 379 422 388]/Border[0 0 0]/H/N>> endobj 35340 0 obj <>/P 4621 0 R/Type/Annot/A 35752 0 R/Subtype/Link/Rect[424 379 438 388]/Border[0 0 0]/H/N>> endobj 35341 0 obj <>/P 4621 0 R/Type/Annot/A 35750 0 R/Subtype/Link/Rect[440 379 454 388]/Border[0 0 0]/H/N>> endobj 35342 0 obj <>/P 4621 0 R/Type/Annot/A 35748 0 R/Subtype/Link/Rect[456 379 468 388]/Border[0 0 0]/H/N>> endobj 35343 0 obj <>/P 4621 0 R/Type/Annot/A 35483 0 R/Subtype/Link/Rect[398 369 410 378]/Border[0 0 0]/H/N>> endobj 35344 0 obj <>/P 4621 0 R/Type/Annot/A 35746 0 R/Subtype/Link/Rect[420 359 430 368]/Border[0 0 0]/H/N>> endobj 35345 0 obj <>/P 4621 0 R/Type/Annot/A 35744 0 R/Subtype/Link/Rect[432 359 440 368]/Border[0 0 0]/H/N>> endobj 35346 0 obj <>/P 4621 0 R/Type/Annot/A 35742 0 R/Subtype/Link/Rect[435 349 449 358]/Border[0 0 0]/H/N>> endobj 35347 0 obj <>/P 4621 0 R/Type/Annot/A 35739 0 R/Subtype/Link/Rect[451 349 465 358]/Border[0 0 0]/H/N>> endobj 35348 0 obj <>/P 4621 0 R/Type/Annot/A 35736 0 R/Subtype/Link/Rect[467 349 484 359]/Border[0 0 0]/H/N>> endobj 35349 0 obj <>/P 4621 0 R/Type/Annot/A 35733 0 R/Subtype/Link/Rect[485 349 499 358]/Border[0 0 0]/H/N>> endobj 35350 0 obj <>/P 4621 0 R/Type/Annot/A 35730 0 R/Subtype/Link/Rect[501 349 515 358]/Border[0 0 0]/H/N>> endobj 35351 0 obj <>/P 4621 0 R/Type/Annot/A 35727 0 R/Subtype/Link/Rect[359 339 373 348]/Border[0 0 0]/H/N>> endobj 35352 0 obj <>/P 4621 0 R/Type/Annot/A 35724 0 R/Subtype/Link/Rect[375 339 391 349]/Border[0 0 0]/H/N>> endobj 35353 0 obj <>/P 4621 0 R/Type/Annot/A 35721 0 R/Subtype/Link/Rect[392 339 406 348]/Border[0 0 0]/H/N>> endobj 35354 0 obj <>/P 4621 0 R/Type/Annot/A 35718 0 R/Subtype/Link/Rect[408 339 422 348]/Border[0 0 0]/H/N>> endobj 35355 0 obj <>/P 4621 0 R/Type/Annot/A 35715 0 R/Subtype/Link/Rect[424 339 438 348]/Border[0 0 0]/H/N>> endobj 35356 0 obj <>/P 4621 0 R/Type/Annot/A 35712 0 R/Subtype/Link/Rect[440 339 457 349]/Border[0 0 0]/H/N>> endobj 35357 0 obj <>/P 4621 0 R/Type/Annot/A 35708 0 R/Subtype/Link/Rect[457 339 471 348]/Border[0 0 0]/H/N>> endobj 35358 0 obj <>/P 4621 0 R/Type/Annot/A 35705 0 R/Subtype/Link/Rect[473 339 487 348]/Border[0 0 0]/H/N>> endobj 35359 0 obj <>/P 4621 0 R/Type/Annot/A 35702 0 R/Subtype/Link/Rect[489 339 503 348]/Border[0 0 0]/H/N>> endobj 35360 0 obj <>/P 4621 0 R/Type/Annot/A 35656 0 R/Subtype/Link/Rect[505 339 519 348]/Border[0 0 0]/H/N>> endobj 35361 0 obj <>/P 4621 0 R/Type/Annot/A 35697 0 R/Subtype/Link/Rect[359 329 373 338]/Border[0 0 0]/H/N>> endobj 35362 0 obj <>/P 4621 0 R/Type/Annot/A 35692 0 R/Subtype/Link/Rect[375 329 389 338]/Border[0 0 0]/H/N>> endobj 35363 0 obj <>/P 4621 0 R/Type/Annot/A 35689 0 R/Subtype/Link/Rect[391 329 403 338]/Border[0 0 0]/H/N>> endobj 35364 0 obj <>/P 4621 0 R/Type/Annot/A 35684 0 R/Subtype/Link/Rect[446 319 460 328]/Border[0 0 0]/H/N>> endobj 35365 0 obj <>/P 4621 0 R/Type/Annot/A 35679 0 R/Subtype/Link/Rect[462 319 476 328]/Border[0 0 0]/H/N>> endobj 35366 0 obj <>/P 4621 0 R/Type/Annot/A 35674 0 R/Subtype/Link/Rect[478 319 490 328]/Border[0 0 0]/H/N>> endobj 35367 0 obj <>/P 4621 0 R/Type/Annot/A 35669 0 R/Subtype/Link/Rect[396 309 408 319]/Border[0 0 0]/H/N>> endobj 35368 0 obj <>/P 4621 0 R/Type/Annot/A 35664 0 R/Subtype/Link/Rect[408 309 418 318]/Border[0 0 0]/H/N>> endobj 35369 0 obj <>/P 4621 0 R/Type/Annot/A 35659 0 R/Subtype/Link/Rect[420 309 430 318]/Border[0 0 0]/H/N>> endobj 35370 0 obj <>/P 4621 0 R/Type/Annot/A 35653 0 R/Subtype/Link/Rect[432 309 442 318]/Border[0 0 0]/H/N>> endobj 35371 0 obj <>/P 4621 0 R/Type/Annot/A 35648 0 R/Subtype/Link/Rect[444 309 454 318]/Border[0 0 0]/H/N>> endobj 35372 0 obj <>/P 4621 0 R/Type/Annot/A 35643 0 R/Subtype/Link/Rect[456 309 473 319]/Border[0 0 0]/H/N>> endobj 35373 0 obj <>/P 4621 0 R/Type/Annot/A 35638 0 R/Subtype/Link/Rect[474 309 488 318]/Border[0 0 0]/H/N>> endobj 35374 0 obj <>/P 4621 0 R/Type/Annot/A 35633 0 R/Subtype/Link/Rect[359 299 376 309]/Border[0 0 0]/H/N>> endobj 35375 0 obj <>/P 4621 0 R/Type/Annot/A 35628 0 R/Subtype/Link/Rect[376 299 390 308]/Border[0 0 0]/H/N>> endobj 35376 0 obj <>/P 4621 0 R/Type/Annot/A 35578 0 R/Subtype/Link/Rect[392 299 409 309]/Border[0 0 0]/H/N>> endobj 35377 0 obj <>/P 4621 0 R/Type/Annot/A 35620 0 R/Subtype/Link/Rect[410 299 424 308]/Border[0 0 0]/H/N>> endobj 35378 0 obj <>/P 4621 0 R/Type/Annot/A 35616 0 R/Subtype/Link/Rect[426 299 440 308]/Border[0 0 0]/H/N>> endobj 35379 0 obj <>/P 4621 0 R/Type/Annot/A 35612 0 R/Subtype/Link/Rect[442 299 458 309]/Border[0 0 0]/H/N>> endobj 35380 0 obj <>/P 4621 0 R/Type/Annot/A 35609 0 R/Subtype/Link/Rect[459 299 473 308]/Border[0 0 0]/H/N>> endobj 35381 0 obj <>/P 4621 0 R/Type/Annot/A 35605 0 R/Subtype/Link/Rect[475 299 492 309]/Border[0 0 0]/H/N>> endobj 35382 0 obj <>/P 4621 0 R/Type/Annot/A 35601 0 R/Subtype/Link/Rect[492 299 506 308]/Border[0 0 0]/H/N>> endobj 35383 0 obj <>/P 4621 0 R/Type/Annot/A 35596 0 R/Subtype/Link/Rect[359 289 376 299]/Border[0 0 0]/H/N>> endobj 35384 0 obj <>/P 4621 0 R/Type/Annot/A 35590 0 R/Subtype/Link/Rect[376 289 390 298]/Border[0 0 0]/H/N>> endobj 35385 0 obj <>/P 4621 0 R/Type/Annot/A 35586 0 R/Subtype/Link/Rect[392 289 409 299]/Border[0 0 0]/H/N>> endobj 35386 0 obj <>/P 4621 0 R/Type/Annot/A 35582 0 R/Subtype/Link/Rect[410 289 424 298]/Border[0 0 0]/H/N>> endobj 35387 0 obj <>/P 4621 0 R/Type/Annot/A 35577 0 R/Subtype/Link/Rect[426 289 440 298]/Border[0 0 0]/H/N>> endobj 35388 0 obj <>/P 4621 0 R/Type/Annot/A 35573 0 R/Subtype/Link/Rect[442 289 456 298]/Border[0 0 0]/H/N>> endobj 35389 0 obj <>/P 4621 0 R/Type/Annot/A 35570 0 R/Subtype/Link/Rect[458 289 472 298]/Border[0 0 0]/H/N>> endobj 35390 0 obj <>/P 4621 0 R/Type/Annot/A 35567 0 R/Subtype/Link/Rect[474 289 488 298]/Border[0 0 0]/H/N>> endobj 35391 0 obj <>/P 4621 0 R/Type/Annot/A 35565 0 R/Subtype/Link/Rect[359 279 376 289]/Border[0 0 0]/H/N>> endobj 35392 0 obj <>/P 4621 0 R/Type/Annot/A 35563 0 R/Subtype/Link/Rect[376 279 390 288]/Border[0 0 0]/H/N>> endobj 35393 0 obj <>/P 4621 0 R/Type/Annot/A 35561 0 R/Subtype/Link/Rect[392 279 406 288]/Border[0 0 0]/H/N>> endobj 35394 0 obj <>/P 4621 0 R/Type/Annot/A 35559 0 R/Subtype/Link/Rect[408 279 422 288]/Border[0 0 0]/H/N>> endobj 35395 0 obj <>/P 4621 0 R/Type/Annot/A 35557 0 R/Subtype/Link/Rect[424 279 438 288]/Border[0 0 0]/H/N>> endobj 35396 0 obj <>/P 4621 0 R/Type/Annot/A 35555 0 R/Subtype/Link/Rect[440 279 457 289]/Border[0 0 0]/H/N>> endobj 35397 0 obj <>/P 4621 0 R/Type/Annot/A 35552 0 R/Subtype/Link/Rect[458 279 472 288]/Border[0 0 0]/H/N>> endobj 35398 0 obj <>/P 4621 0 R/Type/Annot/A 35549 0 R/Subtype/Link/Rect[474 279 488 288]/Border[0 0 0]/H/N>> endobj 35399 0 obj <>/P 4621 0 R/Type/Annot/A 35547 0 R/Subtype/Link/Rect[490 279 504 288]/Border[0 0 0]/H/N>> endobj 35400 0 obj <>/P 4621 0 R/Type/Annot/A 35545 0 R/Subtype/Link/Rect[359 269 373 278]/Border[0 0 0]/H/N>> endobj 35401 0 obj <>/P 4621 0 R/Type/Annot/A 35543 0 R/Subtype/Link/Rect[375 269 389 278]/Border[0 0 0]/H/N>> endobj 35402 0 obj <>/P 4621 0 R/Type/Annot/A 35541 0 R/Subtype/Link/Rect[391 269 408 279]/Border[0 0 0]/H/N>> endobj 35403 0 obj <>/P 4621 0 R/Type/Annot/A 35539 0 R/Subtype/Link/Rect[408 269 422 278]/Border[0 0 0]/H/N>> endobj 35404 0 obj <>/P 4621 0 R/Type/Annot/A 35537 0 R/Subtype/Link/Rect[424 269 438 278]/Border[0 0 0]/H/N>> endobj 35405 0 obj <>/P 4621 0 R/Type/Annot/A 35535 0 R/Subtype/Link/Rect[440 269 457 279]/Border[0 0 0]/H/N>> endobj 35406 0 obj <>/P 4621 0 R/Type/Annot/A 35533 0 R/Subtype/Link/Rect[458 269 472 278]/Border[0 0 0]/H/N>> endobj 35407 0 obj <>/P 4621 0 R/Type/Annot/A 35531 0 R/Subtype/Link/Rect[474 269 490 279]/Border[0 0 0]/H/N>> endobj 35408 0 obj <>/P 4621 0 R/Type/Annot/A 35529 0 R/Subtype/Link/Rect[491 269 505 278]/Border[0 0 0]/H/N>> endobj 35409 0 obj <>/P 4621 0 R/Type/Annot/A 35527 0 R/Subtype/Link/Rect[359 259 373 268]/Border[0 0 0]/H/N>> endobj 35410 0 obj <>/P 4621 0 R/Type/Annot/A 35525 0 R/Subtype/Link/Rect[375 259 389 268]/Border[0 0 0]/H/N>> endobj 35411 0 obj <>/P 4621 0 R/Type/Annot/A 35523 0 R/Subtype/Link/Rect[391 259 408 269]/Border[0 0 0]/H/N>> endobj 35412 0 obj <>/P 4621 0 R/Type/Annot/A 35521 0 R/Subtype/Link/Rect[408 259 422 268]/Border[0 0 0]/H/N>> endobj 35413 0 obj <>/P 4621 0 R/Type/Annot/A 35519 0 R/Subtype/Link/Rect[424 259 441 269]/Border[0 0 0]/H/N>> endobj 35414 0 obj <>/P 4621 0 R/Type/Annot/A 35517 0 R/Subtype/Link/Rect[442 259 456 268]/Border[0 0 0]/H/N>> endobj 35415 0 obj <>/P 4621 0 R/Type/Annot/A 35515 0 R/Subtype/Link/Rect[458 259 472 268]/Border[0 0 0]/H/N>> endobj 35416 0 obj <>/P 4621 0 R/Type/Annot/A 35513 0 R/Subtype/Link/Rect[474 259 490 269]/Border[0 0 0]/H/N>> endobj 35417 0 obj <>/P 4621 0 R/Type/Annot/A 35511 0 R/Subtype/Link/Rect[491 259 505 268]/Border[0 0 0]/H/N>> endobj 35418 0 obj <>/P 4621 0 R/Type/Annot/A 35509 0 R/Subtype/Link/Rect[359 249 373 258]/Border[0 0 0]/H/N>> endobj 35419 0 obj <>/P 4621 0 R/Type/Annot/A 35507 0 R/Subtype/Link/Rect[375 249 389 258]/Border[0 0 0]/H/N>> endobj 35420 0 obj <>/P 4621 0 R/Type/Annot/A 35505 0 R/Subtype/Link/Rect[391 249 405 258]/Border[0 0 0]/H/N>> endobj 35421 0 obj <>/P 4621 0 R/Type/Annot/A 35503 0 R/Subtype/Link/Rect[407 249 421 258]/Border[0 0 0]/H/N>> endobj 35422 0 obj <>/P 4621 0 R/Type/Annot/A 35501 0 R/Subtype/Link/Rect[423 249 437 258]/Border[0 0 0]/H/N>> endobj 35423 0 obj <>/P 4621 0 R/Type/Annot/A 35499 0 R/Subtype/Link/Rect[439 249 453 258]/Border[0 0 0]/H/N>> endobj 35424 0 obj <>/P 4621 0 R/Type/Annot/A 35497 0 R/Subtype/Link/Rect[455 249 469 258]/Border[0 0 0]/H/N>> endobj 35425 0 obj <>/P 4621 0 R/Type/Annot/A 35495 0 R/Subtype/Link/Rect[471 249 485 258]/Border[0 0 0]/H/N>> endobj 35426 0 obj <>/P 4621 0 R/Type/Annot/A 35493 0 R/Subtype/Link/Rect[487 249 501 258]/Border[0 0 0]/H/N>> endobj 35427 0 obj <>/P 4621 0 R/Type/Annot/A 35491 0 R/Subtype/Link/Rect[359 239 376 249]/Border[0 0 0]/H/N>> endobj 35428 0 obj <>/P 4621 0 R/Type/Annot/A 35489 0 R/Subtype/Link/Rect[376 239 390 248]/Border[0 0 0]/H/N>> endobj 35429 0 obj <>/P 4621 0 R/Type/Annot/A 35487 0 R/Subtype/Link/Rect[392 239 406 248]/Border[0 0 0]/H/N>> endobj 35430 0 obj <>/P 4621 0 R/Type/Annot/A 35485 0 R/Subtype/Link/Rect[408 239 425 249]/Border[0 0 0]/H/N>> endobj 35431 0 obj <>/P 4621 0 R/Type/Annot/A 35482 0 R/Subtype/Link/Rect[426 239 440 248]/Border[0 0 0]/H/N>> endobj 35432 0 obj <>/P 4621 0 R/Type/Annot/A 35480 0 R/Subtype/Link/Rect[442 239 458 249]/Border[0 0 0]/H/N>> endobj 35433 0 obj <>/P 4621 0 R/Type/Annot/A 35478 0 R/Subtype/Link/Rect[459 239 473 248]/Border[0 0 0]/H/N>> endobj 35434 0 obj <>/P 4621 0 R/Type/Annot/A 35476 0 R/Subtype/Link/Rect[475 239 492 249]/Border[0 0 0]/H/N>> endobj 35435 0 obj <>/P 4621 0 R/Type/Annot/A 35474 0 R/Subtype/Link/Rect[492 239 506 248]/Border[0 0 0]/H/N>> endobj 35436 0 obj <>/P 4621 0 R/Type/Annot/A 35693 0 R/Subtype/Link/Rect[359 229 373 238]/Border[0 0 0]/H/N>> endobj 35437 0 obj <>/P 4621 0 R/Type/Annot/A 35688 0 R/Subtype/Link/Rect[375 229 389 238]/Border[0 0 0]/H/N>> endobj 35438 0 obj <>/P 4621 0 R/Type/Annot/A 35683 0 R/Subtype/Link/Rect[391 229 408 239]/Border[0 0 0]/H/N>> endobj 35439 0 obj <>/P 4621 0 R/Type/Annot/A 35677 0 R/Subtype/Link/Rect[408 229 422 238]/Border[0 0 0]/H/N>> endobj 35440 0 obj <>/P 4621 0 R/Type/Annot/A 35672 0 R/Subtype/Link/Rect[424 229 441 239]/Border[0 0 0]/H/N>> endobj 35441 0 obj <>/P 4621 0 R/Type/Annot/A 35667 0 R/Subtype/Link/Rect[442 229 456 238]/Border[0 0 0]/H/N>> endobj 35442 0 obj <>/P 4621 0 R/Type/Annot/A 35662 0 R/Subtype/Link/Rect[458 229 472 238]/Border[0 0 0]/H/N>> endobj 35443 0 obj <>/P 4621 0 R/Type/Annot/A 35657 0 R/Subtype/Link/Rect[474 229 488 238]/Border[0 0 0]/H/N>> endobj 35444 0 obj <>/P 4621 0 R/Type/Annot/A 35651 0 R/Subtype/Link/Rect[490 229 504 238]/Border[0 0 0]/H/N>> endobj 35445 0 obj <>/P 4621 0 R/Type/Annot/A 35646 0 R/Subtype/Link/Rect[359 219 376 229]/Border[0 0 0]/H/N>> endobj 35446 0 obj <>/P 4621 0 R/Type/Annot/A 35641 0 R/Subtype/Link/Rect[376 219 390 228]/Border[0 0 0]/H/N>> endobj 35447 0 obj <>/P 4621 0 R/Type/Annot/A 35636 0 R/Subtype/Link/Rect[392 219 409 229]/Border[0 0 0]/H/N>> endobj 35448 0 obj <>/P 4621 0 R/Type/Annot/A 35631 0 R/Subtype/Link/Rect[410 219 424 228]/Border[0 0 0]/H/N>> endobj 35449 0 obj <>/P 4621 0 R/Type/Annot/A 35626 0 R/Subtype/Link/Rect[426 219 442 229]/Border[0 0 0]/H/N>> endobj 35450 0 obj <>/P 4621 0 R/Type/Annot/A 35622 0 R/Subtype/Link/Rect[443 219 457 228]/Border[0 0 0]/H/N>> endobj 35451 0 obj <>/P 4621 0 R/Type/Annot/A 35617 0 R/Subtype/Link/Rect[459 219 473 228]/Border[0 0 0]/H/N>> endobj 35452 0 obj <>/P 4621 0 R/Type/Annot/A 35551 0 R/Subtype/Link/Rect[475 219 489 228]/Border[0 0 0]/H/N>> endobj 35453 0 obj <>/P 4621 0 R/Type/Annot/A 35608 0 R/Subtype/Link/Rect[491 219 505 228]/Border[0 0 0]/H/N>> endobj 35454 0 obj <>/P 4621 0 R/Type/Annot/A 35816 0 R/Subtype/Link/Rect[507 219 519 228]/Border[0 0 0]/H/N>> endobj 35455 0 obj <>/P 4621 0 R/Type/Annot/A 35812 0 R/Subtype/Link/Rect[398 209 410 218]/Border[0 0 0]/H/N>> endobj 35456 0 obj <>/P 4621 0 R/Type/Annot/A 35593 0 R/Subtype/Link/Rect[400 199 412 208]/Border[0 0 0]/H/N>> endobj 35457 0 obj <>/P 4621 0 R/Type/Annot/A 35587 0 R/Subtype/Link/Rect[410 189 422 198]/Border[0 0 0]/H/N>> endobj 35458 0 obj <>/P 4621 0 R/Type/Annot/A 35583 0 R/Subtype/Link/Rect[388 179 402 188]/Border[0 0 0]/H/N>> endobj 35459 0 obj <>/P 4621 0 R/Type/Annot/A 35579 0 R/Subtype/Link/Rect[404 179 418 188]/Border[0 0 0]/H/N>> endobj 35460 0 obj <>/P 4621 0 R/Type/Annot/A 35574 0 R/Subtype/Link/Rect[420 179 432 188]/Border[0 0 0]/H/N>> endobj 35461 0 obj <>/P 4621 0 R/Type/Annot/A 35571 0 R/Subtype/Link/Rect[420 169 430 178]/Border[0 0 0]/H/N>> endobj 35462 0 obj <>/P 4621 0 R/Type/Annot/A 35568 0 R/Subtype/Link/Rect[432 169 442 178]/Border[0 0 0]/H/N>> endobj 35463 0 obj <>/P 4621 0 R/Type/Annot/A 35877 0 R/Subtype/Link/Rect[444 169 456 179]/Border[0 0 0]/H/N>> endobj 35464 0 obj <>/P 4621 0 R/Type/Annot/A 35841 0 R/Subtype/Link/Rect[457 169 467 178]/Border[0 0 0]/H/N>> endobj 35465 0 obj <>/P 4621 0 R/Type/Annot/A 35837 0 R/Subtype/Link/Rect[469 169 482 179]/Border[0 0 0]/H/N>> endobj 35466 0 obj <>/P 4621 0 R/Type/Annot/A 35834 0 R/Subtype/Link/Rect[482 169 492 178]/Border[0 0 0]/H/N>> endobj 35467 0 obj <>/P 4621 0 R/Type/Annot/A 35831 0 R/Subtype/Link/Rect[494 169 504 178]/Border[0 0 0]/H/N>> endobj 35468 0 obj <>/P 4621 0 R/Type/Annot/A 35828 0 R/Subtype/Link/Rect[359 159 373 168]/Border[0 0 0]/H/N>> endobj 35469 0 obj <>/P 4621 0 R/Type/Annot/A 35825 0 R/Subtype/Link/Rect[375 159 389 168]/Border[0 0 0]/H/N>> endobj 35470 0 obj <>/P 4621 0 R/Type/Annot/A 35822 0 R/Subtype/Link/Rect[391 159 405 168]/Border[0 0 0]/H/N>> endobj 35471 0 obj <>/P 4621 0 R/Type/Annot/A 35819 0 R/Subtype/Link/Rect[407 159 419 168]/Border[0 0 0]/H/N>> endobj 35472 0 obj <>/P 4621 0 R/Type/Annot/A 35815 0 R/Subtype/Link/Rect[398 149 406 158]/Border[0 0 0]/H/N>> endobj 35473 0 obj <> endobj 35474 0 obj <> endobj 35475 0 obj <> endobj 35476 0 obj <> endobj 35477 0 obj <> endobj 35478 0 obj <> endobj 35479 0 obj <> endobj 35480 0 obj <> endobj 35481 0 obj <> endobj 35482 0 obj <> endobj 35483 0 obj <> endobj 35484 0 obj <> endobj 35485 0 obj <> endobj 35486 0 obj <> endobj 35487 0 obj <> endobj 35488 0 obj <> endobj 35489 0 obj <> endobj 35490 0 obj <> endobj 35491 0 obj <> endobj 35492 0 obj <> endobj 35493 0 obj <> endobj 35494 0 obj <> endobj 35495 0 obj <> endobj 35496 0 obj <> endobj 35497 0 obj <> endobj 35498 0 obj <> endobj 35499 0 obj <> endobj 35500 0 obj <> endobj 35501 0 obj <> endobj 35502 0 obj <> endobj 35503 0 obj <> endobj 35504 0 obj <> endobj 35505 0 obj <> endobj 35506 0 obj <> endobj 35507 0 obj <> endobj 35508 0 obj <> endobj 35509 0 obj <> endobj 35510 0 obj <> endobj 35511 0 obj <> endobj 35512 0 obj <> endobj 35513 0 obj <> endobj 35514 0 obj <> endobj 35515 0 obj <> endobj 35516 0 obj <> endobj 35517 0 obj <> endobj 35518 0 obj <> endobj 35519 0 obj <> endobj 35520 0 obj <> endobj 35521 0 obj <> endobj 35522 0 obj <> endobj 35523 0 obj <> endobj 35524 0 obj <> endobj 35525 0 obj <> endobj 35526 0 obj <> endobj 35527 0 obj <> endobj 35528 0 obj <> endobj 35529 0 obj <> endobj 35530 0 obj <> endobj 35531 0 obj <> endobj 35532 0 obj <> endobj 35533 0 obj <> endobj 35534 0 obj <> endobj 35535 0 obj <> endobj 35536 0 obj <> endobj 35537 0 obj <> endobj 35538 0 obj <> endobj 35539 0 obj <> endobj 35540 0 obj <> endobj 35541 0 obj <> endobj 35542 0 obj <> endobj 35543 0 obj <> endobj 35544 0 obj <> endobj 35545 0 obj <> endobj 35546 0 obj <> endobj 35547 0 obj <> endobj 35548 0 obj <> endobj 35549 0 obj <> endobj 35550 0 obj <> endobj 35551 0 obj <> endobj 35552 0 obj <> endobj 35553 0 obj <> endobj 35554 0 obj <> endobj 35555 0 obj <> endobj 35556 0 obj <> endobj 35557 0 obj <> endobj 35558 0 obj <> endobj 35559 0 obj <> endobj 35560 0 obj <> endobj 35561 0 obj <> endobj 35562 0 obj <> endobj 35563 0 obj <> endobj 35564 0 obj <> endobj 35565 0 obj <> endobj 35566 0 obj <> endobj 35567 0 obj <> endobj 35568 0 obj <> endobj 35569 0 obj <> endobj 35570 0 obj <> endobj 35571 0 obj <> endobj 35572 0 obj <> endobj 35573 0 obj <> endobj 35574 0 obj <> endobj 35575 0 obj <> endobj 35576 0 obj <> endobj 35577 0 obj <> endobj 35578 0 obj <> endobj 35579 0 obj <> endobj 35580 0 obj <> endobj 35581 0 obj <> endobj 35582 0 obj <> endobj 35583 0 obj <> endobj 35584 0 obj <> endobj 35585 0 obj <> endobj 35586 0 obj <> endobj 35587 0 obj <> endobj 35588 0 obj <> endobj 35589 0 obj <> endobj 35590 0 obj <> endobj 35591 0 obj <> endobj 35592 0 obj <> endobj 35593 0 obj <> endobj 35594 0 obj <> endobj 35595 0 obj <> endobj 35596 0 obj <> endobj 35597 0 obj <> endobj 35598 0 obj <> endobj 35599 0 obj <> endobj 35600 0 obj <> endobj 35601 0 obj <> endobj 35602 0 obj <> endobj 35603 0 obj <> endobj 35604 0 obj <> endobj 35605 0 obj <> endobj 35606 0 obj <> endobj 35607 0 obj <> endobj 35608 0 obj <> endobj 35609 0 obj <> endobj 35610 0 obj <> endobj 35611 0 obj <> endobj 35612 0 obj <> endobj 35613 0 obj <> endobj 35614 0 obj <> endobj 35615 0 obj <> endobj 35616 0 obj <> endobj 35617 0 obj <> endobj 35618 0 obj <> endobj 35619 0 obj <> endobj 35620 0 obj <> endobj 35621 0 obj <> endobj 35622 0 obj <> endobj 35623 0 obj <> endobj 35624 0 obj <> endobj 35625 0 obj <> endobj 35626 0 obj <> endobj 35627 0 obj <> endobj 35628 0 obj <> endobj 35629 0 obj <> endobj 35630 0 obj <> endobj 35631 0 obj <> endobj 35632 0 obj <> endobj 35633 0 obj <> endobj 35634 0 obj <> endobj 35635 0 obj <> endobj 35636 0 obj <> endobj 35637 0 obj <> endobj 35638 0 obj <> endobj 35639 0 obj <> endobj 35640 0 obj <> endobj 35641 0 obj <> endobj 35642 0 obj <> endobj 35643 0 obj <> endobj 35644 0 obj <> endobj 35645 0 obj <> endobj 35646 0 obj <> endobj 35647 0 obj <> endobj 35648 0 obj <> endobj 35649 0 obj <> endobj 35650 0 obj <> endobj 35651 0 obj <> endobj 35652 0 obj <> endobj 35653 0 obj <> endobj 35654 0 obj <> endobj 35655 0 obj <> endobj 35656 0 obj <> endobj 35657 0 obj <> endobj 35658 0 obj <> endobj 35659 0 obj <> endobj 35660 0 obj <> endobj 35661 0 obj <> endobj 35662 0 obj <> endobj 35663 0 obj <> endobj 35664 0 obj <> endobj 35665 0 obj <> endobj 35666 0 obj <> endobj 35667 0 obj <> endobj 35668 0 obj <> endobj 35669 0 obj <> endobj 35670 0 obj <> endobj 35671 0 obj <> endobj 35672 0 obj <> endobj 35673 0 obj <> endobj 35674 0 obj <> endobj 35675 0 obj <> endobj 35676 0 obj <> endobj 35677 0 obj <> endobj 35678 0 obj <> endobj 35679 0 obj <> endobj 35680 0 obj <> endobj 35681 0 obj <> endobj 35682 0 obj <> endobj 35683 0 obj <> endobj 35684 0 obj <> endobj 35685 0 obj <> endobj 35686 0 obj <> endobj 35687 0 obj <> endobj 35688 0 obj <> endobj 35689 0 obj <> endobj 35690 0 obj <> endobj 35691 0 obj <> endobj 35692 0 obj <> endobj 35693 0 obj <> endobj 35694 0 obj <> endobj 35695 0 obj <> endobj 35696 0 obj <> endobj 35697 0 obj <> endobj 35698 0 obj <> endobj 35699 0 obj <> endobj 35700 0 obj <> endobj 35701 0 obj <> endobj 35702 0 obj <> endobj 35703 0 obj <> endobj 35704 0 obj <> endobj 35705 0 obj <> endobj 35706 0 obj <> endobj 35707 0 obj <> endobj 35708 0 obj <> endobj 35709 0 obj <> endobj 35710 0 obj <> endobj 35711 0 obj <> endobj 35712 0 obj <> endobj 35713 0 obj <> endobj 35714 0 obj <> endobj 35715 0 obj <> endobj 35716 0 obj <> endobj 35717 0 obj <> endobj 35718 0 obj <> endobj 35719 0 obj <> endobj 35720 0 obj <> endobj 35721 0 obj <> endobj 35722 0 obj <> endobj 35723 0 obj <> endobj 35724 0 obj <> endobj 35725 0 obj <> endobj 35726 0 obj <> endobj 35727 0 obj <> endobj 35728 0 obj <> endobj 35729 0 obj <> endobj 35730 0 obj <> endobj 35731 0 obj <> endobj 35732 0 obj <> endobj 35733 0 obj <> endobj 35734 0 obj <> endobj 35735 0 obj <> endobj 35736 0 obj <> endobj 35737 0 obj <> endobj 35738 0 obj <> endobj 35739 0 obj <> endobj 35740 0 obj <> endobj 35741 0 obj <> endobj 35742 0 obj <> endobj 35743 0 obj <> endobj 35744 0 obj <> endobj 35745 0 obj <> endobj 35746 0 obj <> endobj 35747 0 obj <> endobj 35748 0 obj <> endobj 35749 0 obj <> endobj 35750 0 obj <> endobj 35751 0 obj <> endobj 35752 0 obj <> endobj 35753 0 obj <> endobj 35754 0 obj <> endobj 35755 0 obj <> endobj 35756 0 obj <> endobj 35757 0 obj <> endobj 35758 0 obj <> endobj 35759 0 obj <> endobj 35760 0 obj <> endobj 35761 0 obj <> endobj 35762 0 obj <> endobj 35763 0 obj <> endobj 35764 0 obj <> endobj 35765 0 obj <> endobj 35766 0 obj <> endobj 35767 0 obj <> endobj 35768 0 obj <> endobj 35769 0 obj <> endobj 35770 0 obj <> endobj 35771 0 obj <> endobj 35772 0 obj <> endobj 35773 0 obj <> endobj 35774 0 obj <> endobj 35775 0 obj <> endobj 35776 0 obj <> endobj 35777 0 obj <> endobj 35778 0 obj <> endobj 35779 0 obj <> endobj 35780 0 obj <> endobj 35781 0 obj <> endobj 35782 0 obj <> endobj 35783 0 obj <> endobj 35784 0 obj <> endobj 35785 0 obj <> endobj 35786 0 obj <> endobj 35787 0 obj <> endobj 35788 0 obj <> endobj 35789 0 obj <> endobj 35790 0 obj <> endobj 35791 0 obj <> endobj 35792 0 obj <> endobj 35793 0 obj <> endobj 35794 0 obj <> endobj 35795 0 obj <> endobj 35796 0 obj <> endobj 35797 0 obj <> endobj 35798 0 obj <> endobj 35799 0 obj <> endobj 35800 0 obj <> endobj 35801 0 obj <> endobj 35802 0 obj <> endobj 35803 0 obj <> endobj 35804 0 obj <> endobj 35805 0 obj <> endobj 35806 0 obj <> endobj 35807 0 obj <> endobj 35808 0 obj <> endobj 35809 0 obj <> endobj 35810 0 obj <> endobj 35811 0 obj <> endobj 35812 0 obj <> endobj 35813 0 obj <> endobj 35814 0 obj <> endobj 35815 0 obj <> endobj 35816 0 obj <> endobj 35817 0 obj <> endobj 35818 0 obj <> endobj 35819 0 obj <> endobj 35820 0 obj <> endobj 35821 0 obj <> endobj 35822 0 obj <> endobj 35823 0 obj <> endobj 35824 0 obj <> endobj 35825 0 obj <> endobj 35826 0 obj <> endobj 35827 0 obj <> endobj 35828 0 obj <> endobj 35829 0 obj <> endobj 35830 0 obj <> endobj 35831 0 obj <> endobj 35832 0 obj <> endobj 35833 0 obj <> endobj 35834 0 obj <> endobj 35835 0 obj <> endobj 35836 0 obj <> endobj 35837 0 obj <> endobj 35838 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 35839 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 35840 0 obj <> endobj 35841 0 obj <> endobj 35842 0 obj <> endobj 35843 0 obj <> endobj 35844 0 obj <> endobj 35845 0 obj <> endobj 35846 0 obj <> stream q /X1 Do Q q endstream endobj 35847 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 35848 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 35849 0 obj <> stream H[6F+7;H4-4@"pJZvm&b A`|H}$Շd/_^/W^&7I,,etT2XKṿYq%lˢu}./ ;n>J^EW+I1V# 2 s23ELk%:-wؔ}/ꝇ2}!?9>KX|88-d9[Ҽ]EuuXoLp~-gw,*yx^w5cd5flX>׀"PQpv!$ $ "ҫ "ҫ "ҫ }BO > k"k"k"ҧD4H !қ !қ !қ }Fς> [" ["} ŵ]$ kqQaz\5Gq (Z\s>V⚣􁵒׀"5Gk%a-9HX+ kq (Z\s>V⚣􁵒׀"5Gk%a-9HX+ kqm)Z\sT׀"5GqQaz\EU("}`"5kqQDZEXk"*Z\EU("}`"5kqQDZEXk"*Z\E a-9*Lk@⚣0=EXk"&("}`mBXk@⚣ a-9HXP("}`mBXk"&a-9HX⚣ a-"MXk P0=9*Lockm8w^J1VfLH,5PEnqt+2/FJ T,rQ|VKU=CbmF?YJ`=H89C+ɜ5''tֿɁ9÷,,Ed|h):v8-K9ǧnzh9zٴtu6vpAjٴ[alZrh19nmt5s<;ߙe̟q{bbh޳yqFX=<fmG]FC<./'0jΰL|p~Xظ2@%:N _ޮgzl&(Ī!4&m귯1ش*gWh#] IeIT~1I&T +/0#a?劍Ec|x~ѴBZE\ӡ207=׷.t\rяuê.z|ŖrSSTYg:ORѓ}'\9*vF)>z icv!<]fPYgd!iڦCiEs\ ZT}yl0!a{Ta|T,L RiF4nwNE~;#z/yfgQ(zgΏ7n#zfc[pZ;ghgO;aXkq=Y]sw1?.񆮯bYG\R)x_S~}J@%,yDN0uNz|DO;K'6n'JTz5>ߧ<3.U}2qLm󈾶Y3m HuuNm3>֝Yuvf[ikkqx_n\=%\I{>//mv#lFO,VXl-lq?GVbRѼ]Eo߿d endstream endobj 35850 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 35851 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 35852 0 obj <> endobj 35853 0 obj <> endobj 35854 0 obj <> endobj 35855 0 obj <> endobj 35856 0 obj <> endobj 35857 0 obj <> stream q /X1 Do Q q endstream endobj 35858 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 35859 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 35860 0 obj <> stream HWmo8_20")X,}^ $EJm$9ܯdrEr4~H>3$>W~oX~՛"rQ2_LgZ͎Q¾G5,WCXnmk6kwג}Wj-)&>*a1Yl}bgÄ\L¦ߔ,JMngKu{_H.RQ,{+Q,~'e9u :JB\9@"~v5a[*R8I!*3>JcSzN%D|.DHJe^e^U^U^U>%ا`5^5^5^3}Y>'`s}/E `_K}YA"I!*dE!*d}"TET+ >DJBPj}j%Z߇(}ZIPC>P$TET+ >@}"j}j%ZwZ߇Z߇CTPC>P"TET>@}"Uj}jZ(BQ@PC>P"TE!`V}"Uj}!J >D}>D}BPj}jSBQ@)Z(BQ@)Z߇(}ڔPZ߇(}ڔPC>PmJPC>PmJ!`6%T&T}"T} ٗ,˔%oanѫutR&>ٹ!nua-Oi)v\,q:7U*À~[ c 7 pk|L\]_cþƩJ)<-pӈZLb;ko%Ϡ\Od:G%P.%)F`5d˔7Pz dA&Xv8n* mMh_?C}׮zt}wM?]gB^2A}~{A'ߟi *G)X]CZ]S;gkZV9Tfo=9ND~LpxxiRDb1V$#e]qeDI["WoΐsZ 4)c1Ƨk~1 I7ҳ5Zz5a2Uc6.l0 }o>rΖȋyN>Y9$ML \g*}iAzjGa un_SQ;I%lkfPV=!FbY %<4PEqz5a@ C E) {"]:PU˶ [zY2Oy{7fپ%$JL5Lz^g֚NLej'4%) f3텥p@yJ8 k2~T_ȸưkW fkBJ\fөޢ5ەGNDK\a:~b^}d۷ּ`T;49 4[NSH^*=A(bZA9bܥyQ4X~?m-rʄnwaAnTtŁ 6^zFæ~{<,]nM{7#$Y{Up`N;$$RCt lk2!Pܘ?+#pu¢rt*fRBq~l  >V]3Uv"- u|zo߾DQm-4doX̮Ǟ@hc 2;nmX4AY,/YO`neŀiOWg) UH7\@`v\gkؠ5!D`Q?ڧ2Ӗ) RWb_k <38ze[0 CmHfb$ZL9_oM;{מ# __Dz$ЇVͼq7[L/SfX~A[-mp\;o"߇SBəIl }2aP(_ggW%qPd4&tü&GgH2-TE|%\<8~zU!Nj#>_<%"SY"i!% xy2 BiEsw\puo}>:榭>=;㘁hBV66~ rʞi4aJV B[$srg ͳMQ\0_OSMFe>MˎG'fzzCswvyS(޶O42iE']KOV"(bkf@h,uϿr1h.2|`X8Vkg\"p۷ yjEr]:N.|%{RVL #ܯO !j 4 ҩ.~ h!Ol;4\X4cn.3gh,yLS#,-.ҡylO,:'y^X}XN9bG K3ʽ$}9x6B ex6C, 1W|/J,VgEON6s#KdSQ3fsW\6"՘~6>3}P+Ajzr.A vMVSj#zׯ<&UN-ɕPJSITU;OOenj73d2k3)-KM0FSQA9&,>&z Duʤz#m Vt6 7 ? 6Fr@4v0" -ʬ`}kRd!}EHy>cd7lSBVYvdVצN \b1(XּK6ݴ҂kݮAq+uJ\@Sw}ӪYx1/O/-@eUw\E/ .+g,">Ȕ||"8_47"tjp:狾9sJ awwBHyV#Ubvx|@J)l@ T/12Ե5/`%Ԏ6puwyqKxIo7y~7kݍ ZZewh]z ^ Qendstream endobj 35861 0 obj <>/P 794 0 R/Type/Annot/A 35862 0 R/Subtype/Link/Rect[93.5992966 469.229004 247.283005 488.908997]/Border[0 0 0]/H/N>> endobj 35862 0 obj <> endobj 35863 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 35864 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 35865 0 obj <> endobj 35866 0 obj <> endobj 35867 0 obj <> endobj 35868 0 obj <> endobj 35869 0 obj <> endobj 35870 0 obj <> endobj 35871 0 obj <> endobj 35872 0 obj <> endobj 35873 0 obj <> endobj 35874 0 obj <> endobj 35875 0 obj <> endobj 35876 0 obj <> endobj 35877 0 obj <> endobj 35878 0 obj <> endobj 35879 0 obj <> endobj 35880 0 obj <> endobj 35881 0 obj <> endobj 35882 0 obj <> endobj 35883 0 obj <> endobj 35884 0 obj <> stream q /X1 Do Q q endstream endobj 35885 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 35886 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 35887 0 obj <> stream HWkoܺ_A_օ#=0nɶ`JwW[֮}g$Ji8!cgQsF}y>gQ_ F}z1-Ŷb\K1d),ƵCVb S Xk),F}ZŸbbUk),ƵC>pb\K1d1*ƵZ!QV1kZq-ŐŨ\R Yq-Ŷf\K1d),ƵCVb S Xk),F}Z͸bbՌk),ƵC>pf\K1d1jƵZ!QV3k5Zq-ŐŨ\R Yq-Ŷa\K1d),ƵCVb S Xk),F}Zøbb5k),ƵC>pa\K1d1ƵZ!Q0k Zq-ŐŨ\kR Yq-ŶQʸb S Xk)P=Őֈy6z.R,$VUb2`,bgQB(SȺZԻJvѭ3Y,v*wCO z7ȇp>W7pFqtqu< CI SlPun Y@@v[5:Qs9G)K)#E' TmbSۆ7,KZUCD2m`#c3|3uE0MrƼKCYôܸy֡70mݱHu?1w.+n˃sA ;&UIF铸"ǵWcd_*O}9bÓ~LǶCX3c/ J_涊i4mRM2ɞpFn*|Mu+;A+ 98J쇹 a)7~VG&Vf\,j>*礧!fΫZ2x cءZdE{jsK7V~aH~. uԷw=@EUjE ۾kyp1?#r F ExԬ~#E>l Rz(,y,~r3"WPe/R ? XVj*<=tz;FqZ4kk0^_-a} Q %rsk} }^<6anz5FzE!7Ej8d)CҎ8V'מJ`]nڕ~UoZי"Y᫼4wʗձŝd(i2崙>5nŔSUg&.g+5q՛'Y0IDl[Oz.vXU7 {g/cńkRAvW=ŞXc>+gUۤP`9x.2ٯR?`| Y;kBCٸͦY˵pL}cժAVzMWQᤷM5{Ǒ$6Rjr,dyAw8,.b- ٜsީ2Ac*pV4c;xC|wC=. wO[pJ/Td9 S"U6<`2neqv~Yx#4\I4TِC&P\nIj۴CSrj7Ҍsx:P=:>B*;Ty,N|ߖ|ݷ?x UApL3\r;7 XNґ Yx8c,YXp`c]E\Uط|'Pw뱹WS*])$H?bS;S$ Up'b\иr{q;uv3{*;w_,\j$NEuhr+±WġS(xdzWO-ITzC˛6c܌'x9>?ujALl`I8!k8,];,26\1;Q\ &JOx1ؙ,3ne%/<$nusdM.k/Zw̾)7CO9u90˴vKl.l]*-mO(bIU4?:Hc 8dӛɰ5&EAOsFDQ2lc:fkel~(~_aKna I,SIߙqvxz?ϻ3.Ό>T=㐢9็T0TԳ;Ͷwև|ߦOTJN!yՀ'PU8-M6?CͶh7lH+H@:v=p/ ~qЧsOpg[P}CI]ڱ~-yxvM4-o<>^`o<}-zTm%Uʲb7sSp[يYY>J>puթap*5vERXA`ŪR *ŪVjjQjUZŊ+V,WjإYR#,Xb9rKށK]r@.Rw Rc`;{ TȽX*^j,{r/5vʽ4KjKރK]rA.R Rc`{{ T=ȽX*^j,{r/5vʽK>K]%5rK]r@.R Rc`{ TȽX*^j,r/5v}K>K]r_K]%5rK]M1Le%UワhzjPjoڍx@mby{f݇WizRy FxAӶӐpS&Gl"طh^bi߳+k\[+aܯq~؍øq]K3h.++My]ڞ˜&ykMFLKAۇO/>`yendstream endobj 35888 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 35889 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 35890 0 obj <> endobj 35891 0 obj <> stream q /X1 Do Q q endstream endobj 35892 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 35893 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 35894 0 obj <> stream HWn8}6+v0@n;f$nDGw_U")ul8*VdbCُ߮޽|_z|GE̒\T,<W_ BvDbT]Ճz]_5jkn6F_0I V, smkeDn'op,E_cisdHv8bu&!I$aâ(xe} `dG `G޲CgA!S.)Ev樃H\Lc >Dӹ>@Er|J=|P`/<`/<`/=`/=`/=1>c}BO< >اcS}F<>gcs}N={O!ZPCPC!gE!`Vu}"{j]պ>D= BQ{OPZׇ(ZA!`Vu}"TET+պ>D= B $Zׇ(Zׇ(CPCS$TET+ պ>@u}"{j]j%Z(BQ{OPCS$TE!`Vu}"{j]_Ąj]|Pj]|Q>{(BQ{O1Zׇ(ژPZׇ(ژPCSmLPCSmL!`6&TE!`6&TETu}Mu}ٻ>@u}ٻ>D ^EBwb6F_< yXݱ( OYl7ێ]]Qn(}qI)y{|l#+~]5(tĦKf" F x.R_T<̢v֬''Ґ"։SJ7y]]37UNZ!ԓX21.2It2uGB?ȹ*zONO4yDq'50w|6V:aB TsëO<Ƅm߃K_p;qxq,ʹ`- ]wr 4:!5d)6CewMHaLGgM.Wt0 \e34Q@z2dPK`%R/uv>{WC䞟1OBAġDyswfX"ExF`N4AWhM7_ثaWcWgrn:lX.궭pD K6 +Aعy3sl<{ۗ`\f1h~kјP)ߙ& jxo돺$N!\s3ܹPyY1\DOzumPOCO>'Y*tiU{~?y< d::/2Q5 -r3W]OC \冩`ϵNyBSz\E I7-K2B 0p\paSM&,³51:̷Z+2W 3j5͗)XK`ٲՕtn_`ܕ9FH")N Xt-,6,b2.cܽ=Լ2c1^-nAbvWⴐR.$B ƵFʇ,)dc<}s?cK.;V(4}Zq iN./jM}(ƛq"D"Jw]q_ `K]r@.R Rc` RcfI\ Rcf6П/>aNj" \ǖ fw,+s~:V-= 4GPE2QPm On'i-- G~pmuLMmD;<Ԕնn*n@cvi _zx}\ݿjhCܹfpUc\\G`8FkWqnP_39tq,[yXLO-M}/0:}מ-)(b^}7|cO~|>l׳;gɡ[wBC^Z>励#,ibe㲺fVbrZz*[SLbjW:jqmͫ,zSyn[L VLa>!'ܽ}Z?3ʗcCO}i^ng0Oֵ |ꗏ7oޙiendstream endobj 35895 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 35896 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 35897 0 obj <> endobj 35898 0 obj <> endobj 35899 0 obj <> stream q /X1 Do Q q endstream endobj 35900 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 35901 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 35902 0 obj <> stream HWkۺ. xC]7&vԖK^g}gDJȱ9C!ulײ_~[_})B0~$XI?lWx ؓYɼ-7ޕݕ9ە͇;»YqxR0&-6۲յY/~*9q&Du_-GA?Bqm-fۛw,5σ@Ǐ$xw7@;0ao#%R"7^Ow祡I]Njqx ! gceYBekoczzᨗz騗z騗zWzWz >$ԇP:#B}䨏>&ǎP;cB}O>!'P:SBYN6 \kcr\6,Wp!PV1d µ6,µ6,BZAƐEw\+kZCq \kc"\kc";km YzǵpmO)[lٛz.vMYWꚧpI-|Wn[,>FOTy־l7 |ޱ_0W Y*OrIJGb ;KI$CxkʧXel=gYS0'ݹD ,b) {we#+qK o_ufky`uzWfKq+]B?]3Gf=j6뼘?ϟ.i1>KY[VOۺZV7BXw/yl尹`]ѣX1o+v6DZ|gENR*_d4?t E)tu:peABXlRvi?(v\*g'q!99ԝ'Hғe)*/˦ 9+%ftU0LCAPe]T,H+~Ŷe DWZ$>8ۋ:{"ZVYvjs].@0GHu>@D7E!*+vؕm[T]t!U3OOfEdM]w78@9p^Yjm+U٫񂐡JF=_ys>eGab2i %R}S}u+ 3c6Ŧ޽'=.u :M^u S``w(p"G*~-sΡV^tm ݁C̴UC -f B틿Z.x''CMrRZ6Vl'ˉSܼ;,HA"ơo݀y6(͜$ ̢^~q]QX`ď?U6lLO+ g+T<bCO>MOC!#>b7yV=p?v gr]> yMm~wmԘ.>ȱpLK,JK+f4ju0{͊@$@|@nSPFm:b]yٮ_W=>0 <Mo,'M%?;9mb[)O#˕IFF"&v%h|=56I<ԮtwaDDŽq4㦍ql9$\D|2%=^P}tn64ERm{kq.q"Jj^E&XC31tB<ubBa:2Y\6cg9Q˧\/8jESZ74ӡbymi=D|*,ŊabMlj:ϓA%Zx nvk&]drB K{diP+I&5޾Dn7#HY2Ani 0![oendstream endobj 35903 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 35904 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 35905 0 obj <> stream q /X1 Do Q q endstream endobj 35906 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 35907 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 35908 0 obj <> stream HWo8B_n.6@SE*l'I3dS;'㐏^vC/7޼{'W߾E s\0L xܙSDIqG7}9ԏMo`]v>znWz$>,!5ngW_djwq~87ace,hT"ߢPd[$4?@7}KWqT͸> sSx4ǐ1`i0d)kOPyy^E^E^E^e^e^U^U^U^u^u>#gP3B} y>'P_ B}ٔ0"Nǐ1`1d} YzZC>p-'\c"k} Xk} Yp!P1`1drµ>,B}ZNǀEǐE\ k9Z;Dp!+Tc"\c B>,µ>,B}ZAǐE\+kZC>p \c"\c"k} Ypp!PV1d µ>v$ZCVǀEǐ1d} Xk} Yp!PV1`1dJµ>,B}ZIǀEǐE\+ k%ZZC>p$\c"k})µ>Pp!+Tc ( 'inutN8(MFpc:ׇֺh5<jmfiWǯXx]4aR2`e&/(9L%]\' ʅ%w K 7yN8#Sey".ϫz~|5mGЦ@s:ܛζD2zR6Po/ 2সN_3|N]}(UR)࡬&O;xILO;Zh,G @eMW-PO*W:D^C}0i/4; ^5cfV/3թ^l0[l[=aP{KgGs0Vb "aY/46˜\1 ZzzYH3^=Ql!y_XAY .<>ϓ2at?fmw0IAŪs5}s'q>D=5A`ons+r3<;64by:=+ 7+ng=5hANG9&)p 톹Qxu T;/ J=yd=.XꩄuS6qu3ax9.n)vcyb3;w7dUS?ǽ9f(Q,Vyke>BSH@rt8 k1&H͗c2VR?,I ׹7{_&^)]iT)}Eq+Z!ubX"'VHC<.RCjjJxH¤PÂE әpC'4c WTc_݂PrŅռ} %׶[>z,HJm/q)ӯmMhls,QdRGHx&"Ͱ1g9z1f+SM#k hnNm%e./a ;r}p-G[KlMrd}igBlBL.$܏gBen3Gi3iM9ӅZdc8jpj"׶/1g%en_=Yw_R|)V UV۪sx?~R&do0SW& ˵'LÕB'ʍDո"OIEIXtѫ1G"sPN -.bHHU6UҾ\%P/beRCi%YRxMخrlԍlܠ;ӛ)sncIoOzˋsy>$T\<$]VR*\cbfj3[QJL%>:1.^UǪ ?Bv1ذٖwWlNzBi]"~ta7BwA@6G&/zJصKEKۙgx0Km7\ͅtWP<L /ֻF/N§6;8NX_T/rI܋ [صʶLڎs SZǶļra6_L2}b7Ȱ|ΥCvLw燋GVwd`=ue&P 6)v_y{וt&!޹l1䩿>wYm znĶ,PE$naˉG^X_7$%pyL0<"|Y^15+贙1"S9s>  rtM6Fx L*8l4"*.7hdf(.6(k9km}7R8yR6"!7 W.p%@ 4e9ZiODYb 8ODW=WD$DL~g "fr"hb Z"^j8њ{C"5J5G"Jʡ'tUЭ5~=OD:%/"ћ "MG1ΑBo@D<"^jqAG Z"3gHޒGY%2x i+3VВv(U8(t?~G5ɰ LGdx|ʾvj}Zj--<-vU wW鲊wfEa:a$8bĮ}ATGާJ:G.gъvؿ1=)tU$4\ͥI0seDx@A5D˴,4+&Ǩ;34HGb> endobj 35910 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 35911 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 35912 0 obj <> endobj 35913 0 obj [606] endobj 35914 0 obj <> endobj 35915 0 obj <> stream x]j0D= gc():EAk࿯zAz3gHJ` X gux%mU&*a[@mWF$\h '} kwD:rċAO>S/[F8<*Dc!'it4&U$j~O=?cendstream endobj 35916 0 obj <> stream xztUG!LR!M 9q;^.˖j^,r=qz/HB!evC1a?;9ciν}>eaX,֔Mw\5İd[3"0,6Ǜ;g&=;_}:m `˳fϙ;o+.xmX7,]o|gջ^v 7m޲u;w۳0l{a+9l.c}+~U ^uB { 6`aE&l1{ۂmŖ`۰vl[va+) 1Mt1>ŤjgU$, {K&cB9l <0_EBMyOy?^g&̛p'{w7DGO♇~~??n +x嗆41KL[8mf\W f<4U/w,+fk쟓>:9]>wy^̻4b(7tDdzyQSy{Ao"3ÙRi0ЧrݼB"f)L"Zr4ԜLD9( 뀛9Eabq:2X/nP"Xj{PG.GHӇ-yUl3:=@ tлYפs2B,cD](tz0'\p =|b ktCBUY41i3ZBE?黩VȣO&`2A!+l`.albS>PJ6K'Ӱ mM>?w y#*ҡbiIK(\#TTb]!jͯ,#KI'i ,>3{Tp49"<ɶ~ugRAJ  *D1>ᰥs֭/J JJRܟxʩr*hȻ]1kfxbR=5j]1R (#S 34?e[3[k,4Z\:"+7[ꙋxV/W1-_]p'x1j74`^2~f0Ʋo&S1ɴV6gM[tiтOы[S&jFoL؁~x(5Ư >*yYQY"sו8L6@- '@g|YeGo4IUmzM:B|R+d7qQitEӄ8D!U/C #݄1:(8 9KV6L0t Xrimx~ȶmk3"W0o- JOyHB)Qj@N- L"ǭ{,2G L$- A1Uc`Ia+|{.tt^m^1 Sc҃ 4E BʿH5bYK$ FQA) Tܡ*@[}nX: 3Dq>O@]\urv8ܡLf^̋HOD O،3'VCbu:6h5xR~cVzv뾑KO!4QwC8C#D/wS<(RLOJ y3冸J+:*Z:=}'n%3&G'L[ڧ|UyZhB[ (?e2쀸oړg:\?T,D+ >,XS*Q^ Yd.D!TX" |yy 9`td9r\omo tRRK\bM!hDܱɹ2 T?ԋ+Jc$|LQ*kW׋ClߑӊA$)2R Dٹ(z^0-4oZ*T*򆖲"|AEUNhX"4YAN]"ed` EU?~(kW qС蔺T|$0/0%>i*.\W^3#h{ֲmM (N6T v4G%=}9kPYkoyYy٩HP(Dzz )l_A:bH(jnh{lO)d1mDlJm+r#ϯɎ3Xըf3ǫX/[m5X[48 fq_ `YIpL"_(*']w P}mɿl~ywz!Hr71/0Jf}~ kt5%rJet*f SkSN݂(EHhdV ;pRd |c7QtG-sk~{g?k<ڴ=t0yl{Su73p}h}MIqc!RsKE !ia^܃gnUxYlg̞o ?(,> &nO !irT<ycmcΚ;.8u$#R|O`'3"HcU\N9Py]G? @ĕn7b{s- Tjtۻ233IUxHLS3Dcz"CjMt΁7*h(vX;]C ?ofц^Q8~j`\`{jFucǙG3o G5t.(c2gX_ ? /Y)2E 2u=y(4Oa aP2Ѽ&_}Gߘ2Uy[gE4 TևkBHaZ#ٳi,TK6p;|+[rH:-Q'̎ ,bhfڲB[jQUj0RE3{ lM2m'cJSl [ޞ%M 1#ڟ;SaΡw%t M2EInyUߛ5f vUH}2>XR;n`?R~P46ٷx]lܵu@E)џx,Bٿ aLy-YȮCoӦ@&PDR\!ojD H+~lr( DeI> Aq=俵nX*)}RP57bP]zczSjX\/#.|wlAG+SC7_·m8nH"Tur"L2kr'm5gzO탌 P̔ryNDccn4=mr>mjԠgrvS W,&Kd,۩eb!%fV9s KB-v ec%ȾPgj=z[=j "c\oEq&~+,o|S&wSEWݕy`U_K q n\J*goc, MStJ@ȁʬp^< +*ϟVй5,6HV=D{c0h{F۞b )5$!IF|n}NNM$)jLD =%PZqD jJ 5YǞ5Y4TλNW 7U?<\4]xDMn1C0#"v6zsѓ{ДhZ+h3 b.Iy @ֿ-fwzjD+Yⷼ t5iѕ ihRH h*=]j]֪D{COˊzD$6$Gux/^`T42ȳ1ɏx|7m(ܑ%q$66hS .` sgĉ-in,~Aoud\?TAڳ'=} uk1*c3N8^$*n!&ڼ̥9q UQP,]h)D[#IvDDJ6/҃D*3%֙Q0 f~806r"q,5.ki*eHv2I(J OzPaZq?3ob4%3Hdt6hp5hƂm?m,;}olL*HHBQ>{N9ł l"L@ FJ._TG?l2?47& =DNy@[C"w(\<K?$oBpˋ3Hy;be) ~zշ|qN/p r <|;tιW6JVvb~Wm =dsW0+@GϤDJ0RƉB7d@#\zBfzǑdV9(f&>($c֔QbTsƱ02]J:ŗI1ogR81!<4.?|φ>ӛ!Vk?Ž0YCGO%.E$܅ދΛ5{ؙk|g:w޿.%Bl*O}nA-&TزL9H55COo(p:k.c&0+gb_GgY3s"Wێ:g0n]9g5m?bo`FyR:P? dVT&8__6v&{*L ;)P^슄O05=^2[ FU&\40bstvVaeJecM{nY&w}eoH~0w'&'E~\RN᪡JwB1B1xp.NV&d/"?yVUW k+z.2އ@/u-\O?Z1*a_p8(.-55CSuC?!){ jls;B cpV- #w{l-%IIWJ=o0;s̳o_ѽpMFSZG9e=R WO__hF>S,8=7F9O#&)R5i;Yxؙ CH ٽ^v[eH ICRS91: /sQL! ӫ ~HKNClшG`> MeekN LX}`u 0‰L{|K?hY뉯{%Hmpާ>  =1AQQ"Cr@,RYչfn2 RrrNy:c2aq f tG &z7^th0OB\-`j:R\\#qH쩅o,VfYdzB䟘[*? -nn2oVTH@>isS %5 neq9b%:5D`+e7 cDuN2~)BExhu1ETL  ʪX4kt.Aڡ1gR譱8V&j'Re[kR5:!/ UF|k O& Kآ@!-6g\Z+=oŪ9B>s?lF!Hmn:e>͡<]J :7nNҎ4M͡_ _#)^sIц=W Ju6H_=.RNTjuLAh:BlGUr\-'pǦa"qJΰRdZ=\ya#*/ xcڃ( ӑq5gurA4[/H]oǰ_`&-ļpğ zU~-hs{}ihG7$H5KRH?릨&'VlJ%ru ~#`9h` ՃѠ"}2 >"XqBMp~9҄nfRbӀwdeWoxAC>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 35918 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 35919 0 obj <> stream q /X1 Do Q q endstream endobj 35920 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 35921 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 35922 0 obj <> stream HWio_1M*˘pk {dC6S#,-{/)ҽׯbQGgΜ9>Uݠ=:z 'OxM*-ά3SS5Q."j#aU}lͩUFϣ&ITJTyR::rF4Ng_o>˵ɮz]lmv©In ܧ}&ϘLp1>gs}/s_ ܗ})g5Bi)Z!R Y=ŐS XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` Vh-Ő%gBk),C Vh-֑ZK1dqZ!{Kh-Ő%guBk),=kZK1` Nh-Ő%guBk),C Nh-ŀ%bܳ:C :Bk),bZK1dqCwO1` ^h-Ő%gBk),C ^h-ŀ%bܳzC R Y{Z/bܳz[GZ!R Y=Őݗ,Kw\G|QV*|šV=VeFV}"uxlE|}u駧󿟾y1[#h^{B7#}lM2kDĻYN_)$>alګ9 CuS A=}li>ihޜzXn Swqܮ"dڌzJ(EG7Ҟe 7޽j%VhWggmf j5kw~ZxO>L J[?JaOƃCs¶@3zWN;}ߙ>+zanALj.wvElu@p/}7 =6R8w}ﰭ52_&:YՙD@$†Fժ].Fv7{'-{uk+zho1|'ܝJI܅a5R[=c^!f$^ ."~EP YbZ^L ZiVʴRA+eZ1LʘV.hL+rUZ*iVɴJAZ6ZCעe ӲeZVbB),A -{+bX{!KbB),A -{+bX{!kQ XB),A -{'bX{!KbwB),A -{'bX{!KbwB),A ŀ%bX{!KbB),A -{/bX{!KbB),A -{/bXS!CעS Y\  Oo.yt47N5?.sr&8ȒAib^Gz >T AW2@S$:,Ng+DOz=IYЩ\} zUB?>YG)en'Q٤;}$ 3$nkx=t܇?6%MotlvXV׳*\u)]de{53Y/5UEF(kc8"1hge7+MU ̻NPM_.}}"Li-mܴj6MXl~hݺnh&I9tWS5#VȅK.J6⸎Uۇ~}^r\4Tp6+[[`$'_tz<_g{^ o[폺ؾߥ.w}_f}üр쇪Ŝ;ZsH;0ͻvs3&MNlQ+g7`A1݇2pqy ~ꏮ*7}Vw6wC/CuNWNeFdVgk,WqC29n'(.kX%UiS޽ \J8|b֥nFzI6>,&kl0]L!з,=&>!q m[N6MWCЪm썕R ;㪊+m*ZbbH!N~3/+l 7|5\1D01El>t@f|!%zE\u6.n++.#(N}cB?ĒA\@qaY'|K=1] =wM5K | r/XE X?{nֵ9kY@RZ[y\@:wUA=7$s*~Cbt'B񿏬<Z|wjtri- /V^8mO{ I5zZџn28'wLJBUy=[|Z&ڨ9 A5FxYxwb *NP$0 s- 56 ,>fU^Ul'%Ҳ1tFa";D15V ,`\-N;(^67|6~eMA¬g_WўY1iuW2o-Ii/x=}jww^`qendstream endobj 35923 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 35924 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 35925 0 obj <> endobj 35926 0 obj <> endobj 35927 0 obj <> stream q /X1 Do Q q endstream endobj 35928 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 35929 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 35930 0 obj <> stream HWmy0 Ԏ$hN`:-$3jݽdm3:˗w!ūWxSRVQWaN Z7?ľSVTw6͛mZݏt^/ˇ*&RDa[e]u~v%aaժCF{$Z !+S()~A7_ŇߥUWkSsWE?0!Qmn#T>dŨ6a_0mb5js6B1 FP BQmnCF(}Zè6a_0mbTŰ/Tk6B1 FmWYFP%܆(FP%F}cFHzJ,A೮y4v!0GDO @ܕ]9 up0LJHZ@5(1ZAbvLF~@qg㎮s&kUf@JtBh_ZM nT١X\lo֏,sc pm>o}&X-&Њ%֏#o!}iĂg#{CWXly Ay3MOԐ x{`q<:3w31?\=C$ ÅӍ$dBI?% nT QX*,Ok!%Q5%q T}a0 ɃUfI9]~B *YKk,R=VkR mC/sa72l3KԸ`*jy%l hƛոzkr8h:*̹ 74犭xt[sMVyi+v:zScݚv bBG"_. XgmZ bVбhiͣG=#lӢՓVy~xtY9CھCLweu 7isZ8fD:H\>&"M۝n3q4Hu f:s Lu[ZpRORNA{4#\gL1F <Et覅6q44A-ɎإuEgO/is+=#@@;\ٛzg..%0!qǨ StC5ĉ2е[lY~X*[b̊6b48cY|Rrp4[ZCJkz?9,vdnIdK\RE$ܼz=2|h8*nhؾ^96 jrx;Kj`c+wIMw-eCrNn+ )DKrr֜Lwtfй'Qh8 ?I8ō*yċ7.$kq5X~ډ`Brͻf=:㰴љq딬eqf_;W^T}pzyIN)΀ yoQka{>G(t}߳{~Ry܈Oͮ-==t^ fܫg3ceL7]?Lö7k#ϫ;; 5\SB 琐zs:Fe´ Gb hXtD4 `,3e&R*4E nxOkut~~_~y}oX>pL;E|O5n>ø3?o͐X0X%G,^rF|4L-̈];۠jv|b6/ hZ@qSehLsePW|X;R!r4xd<O)f׼1ß/|Ov)# WRĸ@FK}|T)o>SOV\ʓyʱ;'hmpFPx"mmrXچͿKٙ4[>CanW.hV~2<.&̳9θނ]_Ʃ+G83+xMwxq;5#BU Rv b͟vPK(ljy9V|EbZLdd'z597JL,1b/kGRx¤*r8b(wUcB_G͂8k3~{yFdl'KqL9;ak<<Ȯ^F-_:EyGsڦ `i~KS[L ,Y( beDkI@x;Z47-+7mTJi:, 1$vr]6ӨHiy0&YjH+pr5X;SS|B?;a{0F=C7l3ϛڝ{.(J%q^l.DDǞ6J_ƥ\ %XߪcOPOo/d~QWgMNt9 7q+f5ysǮjE1 @jϛHB#=" iQ2)4foq듳O%bqtF66YtX/gQ;#KidLӝPNf_X6_κ gdNy==_lD؉ɋ2R"?߻_Bopu2%{E1sy e:$QaI,6g(^=_tIOOU:sSp w#Gl2Ҳ<* *G/^{{9IKJGJI@)E.J9Jv% Tj9ckLj$7[v8&A_շyfd\8Ț5<4uo g (")ߞ EɺPKSa%f7} bbZVR5Inܹ&9 .Uxّ+Ҭ }{Q6j7''endstream endobj 35931 0 obj <>/P 4252 0 R/Type/Annot/A 36494 0 R/Subtype/Link/Rect[151 670 165 678]/Border[0 0 0]/H/N>> endobj 35932 0 obj <>/P 4252 0 R/Type/Annot/A 36489 0 R/Subtype/Link/Rect[167 670 181 678]/Border[0 0 0]/H/N>> endobj 35933 0 obj <>/P 4252 0 R/Type/Annot/A 36484 0 R/Subtype/Link/Rect[183 670 197 678]/Border[0 0 0]/H/N>> endobj 35934 0 obj <>/P 4252 0 R/Type/Annot/A 36479 0 R/Subtype/Link/Rect[199 670 213 678]/Border[0 0 0]/H/N>> endobj 35935 0 obj <>/P 4252 0 R/Type/Annot/A 36474 0 R/Subtype/Link/Rect[215 670 229 678]/Border[0 0 0]/H/N>> endobj 35936 0 obj <>/P 4252 0 R/Type/Annot/A 36469 0 R/Subtype/Link/Rect[231 670 245 678]/Border[0 0 0]/H/N>> endobj 35937 0 obj <>/P 4252 0 R/Type/Annot/A 36464 0 R/Subtype/Link/Rect[247 670 261 678]/Border[0 0 0]/H/N>> endobj 35938 0 obj <>/P 4252 0 R/Type/Annot/A 36460 0 R/Subtype/Link/Rect[263 670 277 678]/Border[0 0 0]/H/N>> endobj 35939 0 obj <>/P 4252 0 R/Type/Annot/A 36455 0 R/Subtype/Link/Rect[279 670 293 678]/Border[0 0 0]/H/N>> endobj 35940 0 obj <>/P 4252 0 R/Type/Annot/A 36451 0 R/Subtype/Link/Rect[295 670 309 678]/Border[0 0 0]/H/N>> endobj 35941 0 obj <>/P 4252 0 R/Type/Annot/A 36446 0 R/Subtype/Link/Rect[151 660 165 668]/Border[0 0 0]/H/N>> endobj 35942 0 obj <>/P 4252 0 R/Type/Annot/A 36679 0 R/Subtype/Link/Rect[167 660 184 669]/Border[0 0 0]/H/N>> endobj 35943 0 obj <>/P 4252 0 R/Type/Annot/A 36674 0 R/Subtype/Link/Rect[184 660 198 668]/Border[0 0 0]/H/N>> endobj 35944 0 obj <>/P 4252 0 R/Type/Annot/A 36671 0 R/Subtype/Link/Rect[200 660 217 669]/Border[0 0 0]/H/N>> endobj 35945 0 obj <>/P 4252 0 R/Type/Annot/A 36668 0 R/Subtype/Link/Rect[218 660 232 668]/Border[0 0 0]/H/N>> endobj 35946 0 obj <>/P 4252 0 R/Type/Annot/A 36665 0 R/Subtype/Link/Rect[234 660 248 668]/Border[0 0 0]/H/N>> endobj 35947 0 obj <>/P 4252 0 R/Type/Annot/A 36662 0 R/Subtype/Link/Rect[250 660 266 669]/Border[0 0 0]/H/N>> endobj 35948 0 obj <>/P 4252 0 R/Type/Annot/A 36659 0 R/Subtype/Link/Rect[267 660 281 668]/Border[0 0 0]/H/N>> endobj 35949 0 obj <>/P 4252 0 R/Type/Annot/A 36656 0 R/Subtype/Link/Rect[283 660 297 668]/Border[0 0 0]/H/N>> endobj 35950 0 obj <>/P 4252 0 R/Type/Annot/A 36653 0 R/Subtype/Link/Rect[151 650 165 658]/Border[0 0 0]/H/N>> endobj 35951 0 obj <>/P 4252 0 R/Type/Annot/A 36650 0 R/Subtype/Link/Rect[167 650 181 658]/Border[0 0 0]/H/N>> endobj 35952 0 obj <>/P 4252 0 R/Type/Annot/A 36647 0 R/Subtype/Link/Rect[183 650 197 658]/Border[0 0 0]/H/N>> endobj 35953 0 obj <>/P 4252 0 R/Type/Annot/A 36644 0 R/Subtype/Link/Rect[199 650 213 658]/Border[0 0 0]/H/N>> endobj 35954 0 obj <>/P 4252 0 R/Type/Annot/A 36641 0 R/Subtype/Link/Rect[215 650 229 658]/Border[0 0 0]/H/N>> endobj 35955 0 obj <>/P 4252 0 R/Type/Annot/A 36638 0 R/Subtype/Link/Rect[231 650 245 658]/Border[0 0 0]/H/N>> endobj 35956 0 obj <>/P 4252 0 R/Type/Annot/A 36635 0 R/Subtype/Link/Rect[247 650 259 658]/Border[0 0 0]/H/N>> endobj 35957 0 obj <>/P 4252 0 R/Type/Annot/A 36632 0 R/Subtype/Link/Rect[192 640 209 649]/Border[0 0 0]/H/N>> endobj 35958 0 obj <>/P 4252 0 R/Type/Annot/A 36628 0 R/Subtype/Link/Rect[210 640 224 648]/Border[0 0 0]/H/N>> endobj 35959 0 obj <>/P 4252 0 R/Type/Annot/A 36624 0 R/Subtype/Link/Rect[226 640 240 648]/Border[0 0 0]/H/N>> endobj 35960 0 obj <>/P 4252 0 R/Type/Annot/A 36620 0 R/Subtype/Link/Rect[242 640 258 649]/Border[0 0 0]/H/N>> endobj 35961 0 obj <>/P 4252 0 R/Type/Annot/A 36616 0 R/Subtype/Link/Rect[259 640 273 648]/Border[0 0 0]/H/N>> endobj 35962 0 obj <>/P 4252 0 R/Type/Annot/A 36612 0 R/Subtype/Link/Rect[275 640 289 648]/Border[0 0 0]/H/N>> endobj 35963 0 obj <>/P 4252 0 R/Type/Annot/A 36608 0 R/Subtype/Link/Rect[151 630 168 639]/Border[0 0 0]/H/N>> endobj 35964 0 obj <>/P 4252 0 R/Type/Annot/A 36603 0 R/Subtype/Link/Rect[168 630 182 638]/Border[0 0 0]/H/N>> endobj 35965 0 obj <>/P 4252 0 R/Type/Annot/A 36599 0 R/Subtype/Link/Rect[184 630 198 638]/Border[0 0 0]/H/N>> endobj 35966 0 obj <>/P 4252 0 R/Type/Annot/A 36594 0 R/Subtype/Link/Rect[200 630 214 638]/Border[0 0 0]/H/N>> endobj 35967 0 obj <>/P 4252 0 R/Type/Annot/A 36590 0 R/Subtype/Link/Rect[216 630 230 638]/Border[0 0 0]/H/N>> endobj 35968 0 obj <>/P 4252 0 R/Type/Annot/A 36586 0 R/Subtype/Link/Rect[232 630 249 639]/Border[0 0 0]/H/N>> endobj 35969 0 obj <>/P 4252 0 R/Type/Annot/A 36583 0 R/Subtype/Link/Rect[250 630 264 638]/Border[0 0 0]/H/N>> endobj 35970 0 obj <>/P 4252 0 R/Type/Annot/A 36580 0 R/Subtype/Link/Rect[266 630 280 638]/Border[0 0 0]/H/N>> endobj 35971 0 obj <>/P 4252 0 R/Type/Annot/A 36577 0 R/Subtype/Link/Rect[282 630 296 638]/Border[0 0 0]/H/N>> endobj 35972 0 obj <>/P 4252 0 R/Type/Annot/A 36574 0 R/Subtype/Link/Rect[151 620 168 629]/Border[0 0 0]/H/N>> endobj 35973 0 obj <>/P 4252 0 R/Type/Annot/A 36572 0 R/Subtype/Link/Rect[168 620 182 628]/Border[0 0 0]/H/N>> endobj 35974 0 obj <>/P 4252 0 R/Type/Annot/A 36569 0 R/Subtype/Link/Rect[184 620 198 628]/Border[0 0 0]/H/N>> endobj 35975 0 obj <>/P 4252 0 R/Type/Annot/A 36565 0 R/Subtype/Link/Rect[200 620 214 628]/Border[0 0 0]/H/N>> endobj 35976 0 obj <>/P 4252 0 R/Type/Annot/A 36561 0 R/Subtype/Link/Rect[216 620 230 628]/Border[0 0 0]/H/N>> endobj 35977 0 obj <>/P 4252 0 R/Type/Annot/A 36557 0 R/Subtype/Link/Rect[232 620 244 628]/Border[0 0 0]/H/N>> endobj 35978 0 obj <>/P 4252 0 R/Type/Annot/A 36553 0 R/Subtype/Link/Rect[190 610 202 618]/Border[0 0 0]/H/N>> endobj 35979 0 obj <>/P 4252 0 R/Type/Annot/A 36549 0 R/Subtype/Link/Rect[197 600 214 609]/Border[0 0 0]/H/N>> endobj 35980 0 obj <>/P 4252 0 R/Type/Annot/A 36545 0 R/Subtype/Link/Rect[215 600 229 608]/Border[0 0 0]/H/N>> endobj 35981 0 obj <>/P 4252 0 R/Type/Annot/A 36541 0 R/Subtype/Link/Rect[231 600 245 608]/Border[0 0 0]/H/N>> endobj 35982 0 obj <>/P 4252 0 R/Type/Annot/A 36537 0 R/Subtype/Link/Rect[247 600 261 608]/Border[0 0 0]/H/N>> endobj 35983 0 obj <>/P 4252 0 R/Type/Annot/A 36533 0 R/Subtype/Link/Rect[263 600 275 608]/Border[0 0 0]/H/N>> endobj 35984 0 obj <>/P 4252 0 R/Type/Annot/A 36529 0 R/Subtype/Link/Rect[190 590 202 598]/Border[0 0 0]/H/N>> endobj 35985 0 obj <>/P 4252 0 R/Type/Annot/A 36525 0 R/Subtype/Link/Rect[197 580 210 589]/Border[0 0 0]/H/N>> endobj 35986 0 obj <>/P 4252 0 R/Type/Annot/A 36521 0 R/Subtype/Link/Rect[211 580 221 588]/Border[0 0 0]/H/N>> endobj 35987 0 obj <>/P 4252 0 R/Type/Annot/A 36517 0 R/Subtype/Link/Rect[223 580 233 588]/Border[0 0 0]/H/N>> endobj 35988 0 obj <>/P 4252 0 R/Type/Annot/A 36513 0 R/Subtype/Link/Rect[235 580 251 589]/Border[0 0 0]/H/N>> endobj 35989 0 obj <>/P 4252 0 R/Type/Annot/A 36509 0 R/Subtype/Link/Rect[252 580 266 588]/Border[0 0 0]/H/N>> endobj 35990 0 obj <>/P 4252 0 R/Type/Annot/A 36506 0 R/Subtype/Link/Rect[268 580 285 589]/Border[0 0 0]/H/N>> endobj 35991 0 obj <>/P 4252 0 R/Type/Annot/A 36502 0 R/Subtype/Link/Rect[285 580 299 588]/Border[0 0 0]/H/N>> endobj 35992 0 obj <>/P 4252 0 R/Type/Annot/A 36498 0 R/Subtype/Link/Rect[151 570 168 579]/Border[0 0 0]/H/N>> endobj 35993 0 obj <>/P 4252 0 R/Type/Annot/A 36330 0 R/Subtype/Link/Rect[168 570 182 578]/Border[0 0 0]/H/N>> endobj 35994 0 obj <>/P 4252 0 R/Type/Annot/A 36490 0 R/Subtype/Link/Rect[184 570 198 578]/Border[0 0 0]/H/N>> endobj 35995 0 obj <>/P 4252 0 R/Type/Annot/A 36485 0 R/Subtype/Link/Rect[200 570 214 578]/Border[0 0 0]/H/N>> endobj 35996 0 obj <>/P 4252 0 R/Type/Annot/A 36480 0 R/Subtype/Link/Rect[216 570 228 578]/Border[0 0 0]/H/N>> endobj 35997 0 obj <>/P 4252 0 R/Type/Annot/A 36475 0 R/Subtype/Link/Rect[190 560 202 568]/Border[0 0 0]/H/N>> endobj 35998 0 obj <>/P 4252 0 R/Type/Annot/A 36470 0 R/Subtype/Link/Rect[192 550 209 559]/Border[0 0 0]/H/N>> endobj 35999 0 obj <>/P 4252 0 R/Type/Annot/A 36465 0 R/Subtype/Link/Rect[210 550 224 558]/Border[0 0 0]/H/N>> endobj 36000 0 obj <>/P 4252 0 R/Type/Annot/A 36461 0 R/Subtype/Link/Rect[226 550 238 558]/Border[0 0 0]/H/N>> endobj 36001 0 obj <>/P 4252 0 R/Type/Annot/A 36456 0 R/Subtype/Link/Rect[190 540 202 548]/Border[0 0 0]/H/N>> endobj 36002 0 obj <>/P 4252 0 R/Type/Annot/A 36452 0 R/Subtype/Link/Rect[197 530 214 539]/Border[0 0 0]/H/N>> endobj 36003 0 obj <>/P 4252 0 R/Type/Annot/A 36447 0 R/Subtype/Link/Rect[215 530 229 538]/Border[0 0 0]/H/N>> endobj 36004 0 obj <>/P 4252 0 R/Type/Annot/A 36443 0 R/Subtype/Link/Rect[231 530 245 538]/Border[0 0 0]/H/N>> endobj 36005 0 obj <>/P 4252 0 R/Type/Annot/A 36439 0 R/Subtype/Link/Rect[247 530 261 538]/Border[0 0 0]/H/N>> endobj 36006 0 obj <>/P 4252 0 R/Type/Annot/A 36437 0 R/Subtype/Link/Rect[263 530 275 538]/Border[0 0 0]/H/N>> endobj 36007 0 obj <>/P 4252 0 R/Type/Annot/A 36435 0 R/Subtype/Link/Rect[190 520 202 528]/Border[0 0 0]/H/N>> endobj 36008 0 obj <>/P 4252 0 R/Type/Annot/A 36431 0 R/Subtype/Link/Rect[197 510 214 519]/Border[0 0 0]/H/N>> endobj 36009 0 obj <>/P 4252 0 R/Type/Annot/A 36427 0 R/Subtype/Link/Rect[215 510 229 518]/Border[0 0 0]/H/N>> endobj 36010 0 obj <>/P 4252 0 R/Type/Annot/A 36423 0 R/Subtype/Link/Rect[231 510 245 518]/Border[0 0 0]/H/N>> endobj 36011 0 obj <>/P 4252 0 R/Type/Annot/A 36420 0 R/Subtype/Link/Rect[247 510 263 519]/Border[0 0 0]/H/N>> endobj 36012 0 obj <>/P 4252 0 R/Type/Annot/A 36417 0 R/Subtype/Link/Rect[264 510 276 518]/Border[0 0 0]/H/N>> endobj 36013 0 obj <>/P 4252 0 R/Type/Annot/A 36415 0 R/Subtype/Link/Rect[190 500 202 508]/Border[0 0 0]/H/N>> endobj 36014 0 obj <>/P 4252 0 R/Type/Annot/A 36413 0 R/Subtype/Link/Rect[212 490 229 499]/Border[0 0 0]/H/N>> endobj 36015 0 obj <>/P 4252 0 R/Type/Annot/A 36411 0 R/Subtype/Link/Rect[229 490 241 498]/Border[0 0 0]/H/N>> endobj 36016 0 obj <>/P 4252 0 R/Type/Annot/A 36409 0 R/Subtype/Link/Rect[192 480 206 488]/Border[0 0 0]/H/N>> endobj 36017 0 obj <>/P 4252 0 R/Type/Annot/A 36407 0 R/Subtype/Link/Rect[208 480 222 488]/Border[0 0 0]/H/N>> endobj 36018 0 obj <>/P 4252 0 R/Type/Annot/A 36405 0 R/Subtype/Link/Rect[224 480 241 489]/Border[0 0 0]/H/N>> endobj 36019 0 obj <>/P 4252 0 R/Type/Annot/A 36403 0 R/Subtype/Link/Rect[242 480 256 488]/Border[0 0 0]/H/N>> endobj 36020 0 obj <>/P 4252 0 R/Type/Annot/A 36401 0 R/Subtype/Link/Rect[258 480 272 488]/Border[0 0 0]/H/N>> endobj 36021 0 obj <>/P 4252 0 R/Type/Annot/A 36399 0 R/Subtype/Link/Rect[274 480 288 488]/Border[0 0 0]/H/N>> endobj 36022 0 obj <>/P 4252 0 R/Type/Annot/A 36397 0 R/Subtype/Link/Rect[290 480 304 488]/Border[0 0 0]/H/N>> endobj 36023 0 obj <>/P 4252 0 R/Type/Annot/A 36395 0 R/Subtype/Link/Rect[151 470 165 478]/Border[0 0 0]/H/N>> endobj 36024 0 obj <>/P 4252 0 R/Type/Annot/A 36393 0 R/Subtype/Link/Rect[167 470 181 478]/Border[0 0 0]/H/N>> endobj 36025 0 obj <>/P 4252 0 R/Type/Annot/A 36391 0 R/Subtype/Link/Rect[183 470 195 478]/Border[0 0 0]/H/N>> endobj 36026 0 obj <>/P 4252 0 R/Type/Annot/A 36389 0 R/Subtype/Link/Rect[190 460 202 468]/Border[0 0 0]/H/N>> endobj 36027 0 obj <>/P 4252 0 R/Type/Annot/A 36387 0 R/Subtype/Link/Rect[192 450 206 458]/Border[0 0 0]/H/N>> endobj 36028 0 obj <>/P 4252 0 R/Type/Annot/A 36385 0 R/Subtype/Link/Rect[208 450 222 458]/Border[0 0 0]/H/N>> endobj 36029 0 obj <>/P 4252 0 R/Type/Annot/A 36383 0 R/Subtype/Link/Rect[224 450 241 459]/Border[0 0 0]/H/N>> endobj 36030 0 obj <>/P 4252 0 R/Type/Annot/A 36381 0 R/Subtype/Link/Rect[242 450 256 458]/Border[0 0 0]/H/N>> endobj 36031 0 obj <>/P 4252 0 R/Type/Annot/A 36379 0 R/Subtype/Link/Rect[258 450 274 459]/Border[0 0 0]/H/N>> endobj 36032 0 obj <>/P 4252 0 R/Type/Annot/A 36377 0 R/Subtype/Link/Rect[275 450 289 458]/Border[0 0 0]/H/N>> endobj 36033 0 obj <>/P 4252 0 R/Type/Annot/A 36375 0 R/Subtype/Link/Rect[151 440 168 449]/Border[0 0 0]/H/N>> endobj 36034 0 obj <>/P 4252 0 R/Type/Annot/A 36373 0 R/Subtype/Link/Rect[168 440 182 448]/Border[0 0 0]/H/N>> endobj 36035 0 obj <>/P 4252 0 R/Type/Annot/A 36371 0 R/Subtype/Link/Rect[184 440 198 448]/Border[0 0 0]/H/N>> endobj 36036 0 obj <>/P 4252 0 R/Type/Annot/A 36369 0 R/Subtype/Link/Rect[200 440 214 448]/Border[0 0 0]/H/N>> endobj 36037 0 obj <>/P 4252 0 R/Type/Annot/A 36367 0 R/Subtype/Link/Rect[216 440 230 448]/Border[0 0 0]/H/N>> endobj 36038 0 obj <>/P 4252 0 R/Type/Annot/A 36365 0 R/Subtype/Link/Rect[232 440 246 448]/Border[0 0 0]/H/N>> endobj 36039 0 obj <>/P 4252 0 R/Type/Annot/A 36363 0 R/Subtype/Link/Rect[248 440 262 448]/Border[0 0 0]/H/N>> endobj 36040 0 obj <>/P 4252 0 R/Type/Annot/A 36360 0 R/Subtype/Link/Rect[264 440 278 448]/Border[0 0 0]/H/N>> endobj 36041 0 obj <>/P 4252 0 R/Type/Annot/A 36357 0 R/Subtype/Link/Rect[280 440 294 448]/Border[0 0 0]/H/N>> endobj 36042 0 obj <>/P 4252 0 R/Type/Annot/A 36354 0 R/Subtype/Link/Rect[296 440 310 448]/Border[0 0 0]/H/N>> endobj 36043 0 obj <>/P 4252 0 R/Type/Annot/A 36351 0 R/Subtype/Link/Rect[151 430 163 438]/Border[0 0 0]/H/N>> endobj 36044 0 obj <>/P 4252 0 R/Type/Annot/A 36349 0 R/Subtype/Link/Rect[190 420 202 428]/Border[0 0 0]/H/N>> endobj 36045 0 obj <>/P 4252 0 R/Type/Annot/A 36347 0 R/Subtype/Link/Rect[188 410 194 418]/Border[0 0 0]/H/N>> endobj 36046 0 obj <>/P 4252 0 R/Type/Annot/A 36345 0 R/Subtype/Link/Rect[196 410 210 418]/Border[0 0 0]/H/N>> endobj 36047 0 obj <>/P 4252 0 R/Type/Annot/A 36343 0 R/Subtype/Link/Rect[212 410 226 418]/Border[0 0 0]/H/N>> endobj 36048 0 obj <>/P 4252 0 R/Type/Annot/A 36341 0 R/Subtype/Link/Rect[228 410 244 419]/Border[0 0 0]/H/N>> endobj 36049 0 obj <>/P 4252 0 R/Type/Annot/A 36339 0 R/Subtype/Link/Rect[245 410 259 418]/Border[0 0 0]/H/N>> endobj 36050 0 obj <>/P 4252 0 R/Type/Annot/A 36337 0 R/Subtype/Link/Rect[261 410 275 418]/Border[0 0 0]/H/N>> endobj 36051 0 obj <>/P 4252 0 R/Type/Annot/A 36336 0 R/Subtype/Link/Rect[277 410 291 418]/Border[0 0 0]/H/N>> endobj 36052 0 obj <>/P 4252 0 R/Type/Annot/A 36335 0 R/Subtype/Link/Rect[151 400 168 409]/Border[0 0 0]/H/N>> endobj 36053 0 obj <>/P 4252 0 R/Type/Annot/A 36334 0 R/Subtype/Link/Rect[168 400 182 408]/Border[0 0 0]/H/N>> endobj 36054 0 obj <>/P 4252 0 R/Type/Annot/A 36333 0 R/Subtype/Link/Rect[184 400 198 408]/Border[0 0 0]/H/N>> endobj 36055 0 obj <>/P 4252 0 R/Type/Annot/A 36332 0 R/Subtype/Link/Rect[200 400 214 408]/Border[0 0 0]/H/N>> endobj 36056 0 obj <>/P 4252 0 R/Type/Annot/A 36331 0 R/Subtype/Link/Rect[216 400 230 408]/Border[0 0 0]/H/N>> endobj 36057 0 obj <>/P 4252 0 R/Type/Annot/A 36329 0 R/Subtype/Link/Rect[232 400 249 409]/Border[0 0 0]/H/N>> endobj 36058 0 obj <>/P 4252 0 R/Type/Annot/A 36328 0 R/Subtype/Link/Rect[250 400 264 408]/Border[0 0 0]/H/N>> endobj 36059 0 obj <>/P 4252 0 R/Type/Annot/A 36327 0 R/Subtype/Link/Rect[266 400 282 409]/Border[0 0 0]/H/N>> endobj 36060 0 obj <>/P 4252 0 R/Type/Annot/A 36326 0 R/Subtype/Link/Rect[283 400 297 408]/Border[0 0 0]/H/N>> endobj 36061 0 obj <>/P 4252 0 R/Type/Annot/A 36325 0 R/Subtype/Link/Rect[151 390 165 398]/Border[0 0 0]/H/N>> endobj 36062 0 obj <>/P 4252 0 R/Type/Annot/A 36324 0 R/Subtype/Link/Rect[167 390 181 398]/Border[0 0 0]/H/N>> endobj 36063 0 obj <>/P 4252 0 R/Type/Annot/A 36323 0 R/Subtype/Link/Rect[183 390 197 398]/Border[0 0 0]/H/N>> endobj 36064 0 obj <>/P 4252 0 R/Type/Annot/A 36322 0 R/Subtype/Link/Rect[199 390 216 399]/Border[0 0 0]/H/N>> endobj 36065 0 obj <>/P 4252 0 R/Type/Annot/A 36321 0 R/Subtype/Link/Rect[216 390 230 398]/Border[0 0 0]/H/N>> endobj 36066 0 obj <>/P 4252 0 R/Type/Annot/A 36320 0 R/Subtype/Link/Rect[232 390 246 398]/Border[0 0 0]/H/N>> endobj 36067 0 obj <>/P 4252 0 R/Type/Annot/A 36319 0 R/Subtype/Link/Rect[248 390 262 398]/Border[0 0 0]/H/N>> endobj 36068 0 obj <>/P 4252 0 R/Type/Annot/A 36318 0 R/Subtype/Link/Rect[264 390 278 398]/Border[0 0 0]/H/N>> endobj 36069 0 obj <>/P 4252 0 R/Type/Annot/A 36317 0 R/Subtype/Link/Rect[280 390 294 398]/Border[0 0 0]/H/N>> endobj 36070 0 obj <>/P 4252 0 R/Type/Annot/A 36316 0 R/Subtype/Link/Rect[296 390 310 398]/Border[0 0 0]/H/N>> endobj 36071 0 obj <>/P 4252 0 R/Type/Annot/A 36315 0 R/Subtype/Link/Rect[151 380 165 388]/Border[0 0 0]/H/N>> endobj 36072 0 obj <>/P 4252 0 R/Type/Annot/A 36314 0 R/Subtype/Link/Rect[167 380 181 388]/Border[0 0 0]/H/N>> endobj 36073 0 obj <>/P 4252 0 R/Type/Annot/A 36313 0 R/Subtype/Link/Rect[183 380 197 388]/Border[0 0 0]/H/N>> endobj 36074 0 obj <>/P 4252 0 R/Type/Annot/A 36312 0 R/Subtype/Link/Rect[199 380 213 388]/Border[0 0 0]/H/N>> endobj 36075 0 obj <>/P 4252 0 R/Type/Annot/A 36310 0 R/Subtype/Link/Rect[215 380 229 388]/Border[0 0 0]/H/N>> endobj 36076 0 obj <>/P 4252 0 R/Type/Annot/A 36309 0 R/Subtype/Link/Rect[231 380 248 389]/Border[0 0 0]/H/N>> endobj 36077 0 obj <>/P 4252 0 R/Type/Annot/A 36307 0 R/Subtype/Link/Rect[248 380 262 388]/Border[0 0 0]/H/N>> endobj 36078 0 obj <>/P 4252 0 R/Type/Annot/A 36306 0 R/Subtype/Link/Rect[264 380 276 388]/Border[0 0 0]/H/N>> endobj 36079 0 obj <>/P 4252 0 R/Type/Annot/A 36631 0 R/Subtype/Link/Rect[190 370 202 378]/Border[0 0 0]/H/N>> endobj 36080 0 obj <>/P 4252 0 R/Type/Annot/A 36627 0 R/Subtype/Link/Rect[177 360 189 368]/Border[0 0 0]/H/N>> endobj 36081 0 obj <>/P 4252 0 R/Type/Annot/A 36623 0 R/Subtype/Link/Rect[198 350 212 358]/Border[0 0 0]/H/N>> endobj 36082 0 obj <>/P 4252 0 R/Type/Annot/A 36619 0 R/Subtype/Link/Rect[214 350 231 359]/Border[0 0 0]/H/N>> endobj 36083 0 obj <>/P 4252 0 R/Type/Annot/A 36615 0 R/Subtype/Link/Rect[232 350 246 358]/Border[0 0 0]/H/N>> endobj 36084 0 obj <>/P 4252 0 R/Type/Annot/A 36611 0 R/Subtype/Link/Rect[248 350 260 358]/Border[0 0 0]/H/N>> endobj 36085 0 obj <>/P 4252 0 R/Type/Annot/A 36606 0 R/Subtype/Link/Rect[205 340 217 348]/Border[0 0 0]/H/N>> endobj 36086 0 obj <>/P 4252 0 R/Type/Annot/A 36602 0 R/Subtype/Link/Rect[196 330 208 338]/Border[0 0 0]/H/N>> endobj 36087 0 obj <>/P 4252 0 R/Type/Annot/A 36597 0 R/Subtype/Link/Rect[196 320 208 329]/Border[0 0 0]/H/N>> endobj 36088 0 obj <>/P 4252 0 R/Type/Annot/A 36593 0 R/Subtype/Link/Rect[196 310 206 319]/Border[0 0 0]/H/N>> endobj 36089 0 obj <>/P 4252 0 R/Type/Annot/A 36589 0 R/Subtype/Link/Rect[208 310 218 319]/Border[0 0 0]/H/N>> endobj 36090 0 obj <>/P 4252 0 R/Type/Annot/A 36585 0 R/Subtype/Link/Rect[220 310 234 319]/Border[0 0 0]/H/N>> endobj 36091 0 obj <>/P 4252 0 R/Type/Annot/A 36582 0 R/Subtype/Link/Rect[236 310 248 319]/Border[0 0 0]/H/N>> endobj 36092 0 obj <>/P 4252 0 R/Type/Annot/A 36578 0 R/Subtype/Link/Rect[202 300 216 309]/Border[0 0 0]/H/N>> endobj 36093 0 obj <>/P 4252 0 R/Type/Annot/A 36362 0 R/Subtype/Link/Rect[218 300 230 309]/Border[0 0 0]/H/N>> endobj 36094 0 obj <>/P 4252 0 R/Type/Annot/A 36571 0 R/Subtype/Link/Rect[212 257 228 266]/Border[0 0 0]/H/N>> endobj 36095 0 obj <>/P 4252 0 R/Type/Annot/A 36567 0 R/Subtype/Link/Rect[229 257 243 266]/Border[0 0 0]/H/N>> endobj 36096 0 obj <>/P 4252 0 R/Type/Annot/A 36563 0 R/Subtype/Link/Rect[245 257 259 266]/Border[0 0 0]/H/N>> endobj 36097 0 obj <>/P 4252 0 R/Type/Annot/A 36559 0 R/Subtype/Link/Rect[261 257 273 266]/Border[0 0 0]/H/N>> endobj 36098 0 obj <>/P 4252 0 R/Type/Annot/A 36555 0 R/Subtype/Link/Rect[190 247 202 256]/Border[0 0 0]/H/N>> endobj 36099 0 obj <>/P 4252 0 R/Type/Annot/A 36551 0 R/Subtype/Link/Rect[167 237 181 246]/Border[0 0 0]/H/N>> endobj 36100 0 obj <>/P 4252 0 R/Type/Annot/A 36547 0 R/Subtype/Link/Rect[183 237 197 246]/Border[0 0 0]/H/N>> endobj 36101 0 obj <>/P 4252 0 R/Type/Annot/A 36543 0 R/Subtype/Link/Rect[199 237 211 246]/Border[0 0 0]/H/N>> endobj 36102 0 obj <>/P 4252 0 R/Type/Annot/A 36539 0 R/Subtype/Link/Rect[215 227 227 236]/Border[0 0 0]/H/N>> endobj 36103 0 obj <>/P 4252 0 R/Type/Annot/A 36535 0 R/Subtype/Link/Rect[170 217 178 226]/Border[0 0 0]/H/N>> endobj 36104 0 obj <>/P 4252 0 R/Type/Annot/A 36531 0 R/Subtype/Link/Rect[197 207 214 216]/Border[0 0 0]/H/N>> endobj 36105 0 obj <>/P 4252 0 R/Type/Annot/A 36527 0 R/Subtype/Link/Rect[215 207 229 216]/Border[0 0 0]/H/N>> endobj 36106 0 obj <>/P 4252 0 R/Type/Annot/A 36523 0 R/Subtype/Link/Rect[231 207 243 216]/Border[0 0 0]/H/N>> endobj 36107 0 obj <>/P 4252 0 R/Type/Annot/A 36519 0 R/Subtype/Link/Rect[190 197 202 206]/Border[0 0 0]/H/N>> endobj 36108 0 obj <>/P 4252 0 R/Type/Annot/A 36514 0 R/Subtype/Link/Rect[197 187 214 196]/Border[0 0 0]/H/N>> endobj 36109 0 obj <>/P 4252 0 R/Type/Annot/A 36510 0 R/Subtype/Link/Rect[215 187 229 196]/Border[0 0 0]/H/N>> endobj 36110 0 obj <>/P 4252 0 R/Type/Annot/A 36505 0 R/Subtype/Link/Rect[231 187 245 196]/Border[0 0 0]/H/N>> endobj 36111 0 obj <>/P 4252 0 R/Type/Annot/A 36501 0 R/Subtype/Link/Rect[247 187 261 196]/Border[0 0 0]/H/N>> endobj 36112 0 obj <>/P 4252 0 R/Type/Annot/A 36497 0 R/Subtype/Link/Rect[263 187 277 196]/Border[0 0 0]/H/N>> endobj 36113 0 obj <>/P 4252 0 R/Type/Annot/A 36493 0 R/Subtype/Link/Rect[279 187 293 196]/Border[0 0 0]/H/N>> endobj 36114 0 obj <>/P 4252 0 R/Type/Annot/A 36488 0 R/Subtype/Link/Rect[295 187 309 196]/Border[0 0 0]/H/N>> endobj 36115 0 obj <>/P 4252 0 R/Type/Annot/A 36483 0 R/Subtype/Link/Rect[151 177 163 186]/Border[0 0 0]/H/N>> endobj 36116 0 obj <>/P 4252 0 R/Type/Annot/A 36478 0 R/Subtype/Link/Rect[190 167 202 176]/Border[0 0 0]/H/N>> endobj 36117 0 obj <>/P 4252 0 R/Type/Annot/A 36473 0 R/Subtype/Link/Rect[207 157 223 166]/Border[0 0 0]/H/N>> endobj 36118 0 obj <>/P 4252 0 R/Type/Annot/A 36468 0 R/Subtype/Link/Rect[224 157 238 166]/Border[0 0 0]/H/N>> endobj 36119 0 obj <>/P 4252 0 R/Type/Annot/A 38941 0 R/Subtype/Link/Rect[240 157 254 166]/Border[0 0 0]/H/N>> endobj 36120 0 obj <>/P 4252 0 R/Type/Annot/A 36459 0 R/Subtype/Link/Rect[256 157 268 166]/Border[0 0 0]/H/N>> endobj 36121 0 obj <>/P 4252 0 R/Type/Annot/A 36454 0 R/Subtype/Link/Rect[190 147 202 156]/Border[0 0 0]/H/N>> endobj 36122 0 obj <>/P 4252 0 R/Type/Annot/A 36450 0 R/Subtype/Link/Rect[405 670 422 679]/Border[0 0 0]/H/N>> endobj 36123 0 obj <>/P 4252 0 R/Type/Annot/A 36445 0 R/Subtype/Link/Rect[422 670 436 678]/Border[0 0 0]/H/N>> endobj 36124 0 obj <>/P 4252 0 R/Type/Annot/A 36441 0 R/Subtype/Link/Rect[438 670 452 678]/Border[0 0 0]/H/N>> endobj 36125 0 obj <>/P 4252 0 R/Type/Annot/A 36311 0 R/Subtype/Link/Rect[454 670 468 678]/Border[0 0 0]/H/N>> endobj 36126 0 obj <>/P 4252 0 R/Type/Annot/A 36433 0 R/Subtype/Link/Rect[470 670 484 678]/Border[0 0 0]/H/N>> endobj 36127 0 obj <>/P 4252 0 R/Type/Annot/A 36429 0 R/Subtype/Link/Rect[486 670 498 678]/Border[0 0 0]/H/N>> endobj 36128 0 obj <>/P 4252 0 R/Type/Annot/A 36425 0 R/Subtype/Link/Rect[398 660 410 668]/Border[0 0 0]/H/N>> endobj 36129 0 obj <>/P 4252 0 R/Type/Annot/A 36678 0 R/Subtype/Link/Rect[415 650 431 659]/Border[0 0 0]/H/N>> endobj 36130 0 obj <>/P 4252 0 R/Type/Annot/A 36673 0 R/Subtype/Link/Rect[432 650 446 658]/Border[0 0 0]/H/N>> endobj 36131 0 obj <>/P 4252 0 R/Type/Annot/A 36670 0 R/Subtype/Link/Rect[448 650 462 658]/Border[0 0 0]/H/N>> endobj 36132 0 obj <>/P 4252 0 R/Type/Annot/A 36667 0 R/Subtype/Link/Rect[464 650 476 658]/Border[0 0 0]/H/N>> endobj 36133 0 obj <>/P 4252 0 R/Type/Annot/A 36664 0 R/Subtype/Link/Rect[398 640 410 648]/Border[0 0 0]/H/N>> endobj 36134 0 obj <>/P 4252 0 R/Type/Annot/A 36661 0 R/Subtype/Link/Rect[405 630 422 639]/Border[0 0 0]/H/N>> endobj 36135 0 obj <>/P 4252 0 R/Type/Annot/A 36658 0 R/Subtype/Link/Rect[422 630 436 638]/Border[0 0 0]/H/N>> endobj 36136 0 obj <>/P 4252 0 R/Type/Annot/A 36655 0 R/Subtype/Link/Rect[438 630 455 639]/Border[0 0 0]/H/N>> endobj 36137 0 obj <>/P 4252 0 R/Type/Annot/A 36652 0 R/Subtype/Link/Rect[456 630 470 638]/Border[0 0 0]/H/N>> endobj 36138 0 obj <>/P 4252 0 R/Type/Annot/A 36649 0 R/Subtype/Link/Rect[472 630 486 638]/Border[0 0 0]/H/N>> endobj 36139 0 obj <>/P 4252 0 R/Type/Annot/A 36646 0 R/Subtype/Link/Rect[488 630 502 638]/Border[0 0 0]/H/N>> endobj 36140 0 obj <>/P 4252 0 R/Type/Annot/A 36643 0 R/Subtype/Link/Rect[504 630 518 638]/Border[0 0 0]/H/N>> endobj 36141 0 obj <>/P 4252 0 R/Type/Annot/A 36640 0 R/Subtype/Link/Rect[359 620 373 628]/Border[0 0 0]/H/N>> endobj 36142 0 obj <>/P 4252 0 R/Type/Annot/A 36637 0 R/Subtype/Link/Rect[375 620 389 628]/Border[0 0 0]/H/N>> endobj 36143 0 obj <>/P 4252 0 R/Type/Annot/A 36634 0 R/Subtype/Link/Rect[391 620 405 628]/Border[0 0 0]/H/N>> endobj 36144 0 obj <>/P 4252 0 R/Type/Annot/A 36630 0 R/Subtype/Link/Rect[407 620 421 628]/Border[0 0 0]/H/N>> endobj 36145 0 obj <>/P 4252 0 R/Type/Annot/A 36626 0 R/Subtype/Link/Rect[423 620 435 628]/Border[0 0 0]/H/N>> endobj 36146 0 obj <>/P 4252 0 R/Type/Annot/A 36622 0 R/Subtype/Link/Rect[398 610 410 618]/Border[0 0 0]/H/N>> endobj 36147 0 obj <>/P 4252 0 R/Type/Annot/A 36618 0 R/Subtype/Link/Rect[400 600 410 608]/Border[0 0 0]/H/N>> endobj 36148 0 obj <>/P 4252 0 R/Type/Annot/A 36614 0 R/Subtype/Link/Rect[412 600 422 608]/Border[0 0 0]/H/N>> endobj 36149 0 obj <>/P 4252 0 R/Type/Annot/A 36610 0 R/Subtype/Link/Rect[424 600 437 609]/Border[0 0 0]/H/N>> endobj 36150 0 obj <>/P 4252 0 R/Type/Annot/A 36605 0 R/Subtype/Link/Rect[438 600 448 608]/Border[0 0 0]/H/N>> endobj 36151 0 obj <>/P 4252 0 R/Type/Annot/A 36601 0 R/Subtype/Link/Rect[450 600 460 608]/Border[0 0 0]/H/N>> endobj 36152 0 obj <>/P 4252 0 R/Type/Annot/A 36596 0 R/Subtype/Link/Rect[462 600 475 608]/Border[0 0 0]/H/N>> endobj 36153 0 obj <>/P 4252 0 R/Type/Annot/A 36592 0 R/Subtype/Link/Rect[477 600 491 608]/Border[0 0 0]/H/N>> endobj 36154 0 obj <>/P 4252 0 R/Type/Annot/A 36588 0 R/Subtype/Link/Rect[493 600 507 608]/Border[0 0 0]/H/N>> endobj 36155 0 obj <>/P 4252 0 R/Type/Annot/A 36584 0 R/Subtype/Link/Rect[359 590 376 599]/Border[0 0 0]/H/N>> endobj 36156 0 obj <>/P 4252 0 R/Type/Annot/A 36581 0 R/Subtype/Link/Rect[376 590 390 598]/Border[0 0 0]/H/N>> endobj 36157 0 obj <>/P 4252 0 R/Type/Annot/A 41902 0 R/Subtype/Link/Rect[392 590 406 598]/Border[0 0 0]/H/N>> endobj 36158 0 obj <>/P 4252 0 R/Type/Annot/A 36575 0 R/Subtype/Link/Rect[408 590 425 599]/Border[0 0 0]/H/N>> endobj 36159 0 obj <>/P 4252 0 R/Type/Annot/A 36353 0 R/Subtype/Link/Rect[426 590 440 598]/Border[0 0 0]/H/N>> endobj 36160 0 obj <>/P 4252 0 R/Type/Annot/A 36568 0 R/Subtype/Link/Rect[442 590 456 598]/Border[0 0 0]/H/N>> endobj 36161 0 obj <>/P 4252 0 R/Type/Annot/A 36564 0 R/Subtype/Link/Rect[458 590 472 598]/Border[0 0 0]/H/N>> endobj 36162 0 obj <>/P 4252 0 R/Type/Annot/A 36560 0 R/Subtype/Link/Rect[474 590 490 599]/Border[0 0 0]/H/N>> endobj 36163 0 obj <>/P 4252 0 R/Type/Annot/A 36556 0 R/Subtype/Link/Rect[491 590 505 598]/Border[0 0 0]/H/N>> endobj 36164 0 obj <>/P 4252 0 R/Type/Annot/A 36552 0 R/Subtype/Link/Rect[359 580 373 588]/Border[0 0 0]/H/N>> endobj 36165 0 obj <>/P 4252 0 R/Type/Annot/A 36548 0 R/Subtype/Link/Rect[375 580 392 589]/Border[0 0 0]/H/N>> endobj 36166 0 obj <>/P 4252 0 R/Type/Annot/A 36544 0 R/Subtype/Link/Rect[392 580 406 588]/Border[0 0 0]/H/N>> endobj 36167 0 obj <>/P 4252 0 R/Type/Annot/A 36540 0 R/Subtype/Link/Rect[408 580 425 589]/Border[0 0 0]/H/N>> endobj 36168 0 obj <>/P 4252 0 R/Type/Annot/A 36536 0 R/Subtype/Link/Rect[426 580 439 588]/Border[0 0 0]/H/N>> endobj 36169 0 obj <>/P 4252 0 R/Type/Annot/A 36532 0 R/Subtype/Link/Rect[441 580 455 588]/Border[0 0 0]/H/N>> endobj 36170 0 obj <>/P 4252 0 R/Type/Annot/A 36528 0 R/Subtype/Link/Rect[457 580 474 589]/Border[0 0 0]/H/N>> endobj 36171 0 obj <>/P 4252 0 R/Type/Annot/A 36524 0 R/Subtype/Link/Rect[475 580 489 588]/Border[0 0 0]/H/N>> endobj 36172 0 obj <>/P 4252 0 R/Type/Annot/A 36520 0 R/Subtype/Link/Rect[491 580 505 588]/Border[0 0 0]/H/N>> endobj 36173 0 obj <>/P 4252 0 R/Type/Annot/A 36516 0 R/Subtype/Link/Rect[359 570 373 578]/Border[0 0 0]/H/N>> endobj 36174 0 obj <>/P 4252 0 R/Type/Annot/A 36512 0 R/Subtype/Link/Rect[375 570 389 578]/Border[0 0 0]/H/N>> endobj 36175 0 obj <>/P 4252 0 R/Type/Annot/A 36508 0 R/Subtype/Link/Rect[391 570 403 578]/Border[0 0 0]/H/N>> endobj 36176 0 obj <>/P 4252 0 R/Type/Annot/A 36504 0 R/Subtype/Link/Rect[398 560 406 568]/Border[0 0 0]/H/N>> endobj 36177 0 obj <>/P 4252 0 R/Type/Annot/A 36500 0 R/Subtype/Link/Rect[414 550 424 558]/Border[0 0 0]/H/N>> endobj 36178 0 obj <>/P 4252 0 R/Type/Annot/A 36496 0 R/Subtype/Link/Rect[426 550 434 558]/Border[0 0 0]/H/N>> endobj 36179 0 obj <>/P 4252 0 R/Type/Annot/A 36492 0 R/Subtype/Link/Rect[420 540 430 548]/Border[0 0 0]/H/N>> endobj 36180 0 obj <>/P 4252 0 R/Type/Annot/A 36487 0 R/Subtype/Link/Rect[432 540 444 549]/Border[0 0 0]/H/N>> endobj 36181 0 obj <>/P 4252 0 R/Type/Annot/A 36482 0 R/Subtype/Link/Rect[445 540 455 548]/Border[0 0 0]/H/N>> endobj 36182 0 obj <>/P 4252 0 R/Type/Annot/A 36477 0 R/Subtype/Link/Rect[457 540 471 548]/Border[0 0 0]/H/N>> endobj 36183 0 obj <>/P 4252 0 R/Type/Annot/A 36472 0 R/Subtype/Link/Rect[473 540 487 548]/Border[0 0 0]/H/N>> endobj 36184 0 obj <>/P 4252 0 R/Type/Annot/A 36467 0 R/Subtype/Link/Rect[489 540 503 548]/Border[0 0 0]/H/N>> endobj 36185 0 obj <>/P 4252 0 R/Type/Annot/A 36463 0 R/Subtype/Link/Rect[505 540 517 548]/Border[0 0 0]/H/N>> endobj 36186 0 obj <>/P 4252 0 R/Type/Annot/A 36458 0 R/Subtype/Link/Rect[398 530 406 538]/Border[0 0 0]/H/N>> endobj 36187 0 obj <>/P 4252 0 R/Type/Annot/A 36453 0 R/Subtype/Link/Rect[425 520 435 528]/Border[0 0 0]/H/N>> endobj 36188 0 obj <>/P 4252 0 R/Type/Annot/A 36448 0 R/Subtype/Link/Rect[437 520 447 528]/Border[0 0 0]/H/N>> endobj 36189 0 obj <>/P 4252 0 R/Type/Annot/A 36444 0 R/Subtype/Link/Rect[449 520 461 529]/Border[0 0 0]/H/N>> endobj 36190 0 obj <>/P 4252 0 R/Type/Annot/A 36440 0 R/Subtype/Link/Rect[462 520 472 528]/Border[0 0 0]/H/N>> endobj 36191 0 obj <>/P 4252 0 R/Type/Annot/A 36308 0 R/Subtype/Link/Rect[474 520 488 528]/Border[0 0 0]/H/N>> endobj 36192 0 obj <>/P 4252 0 R/Type/Annot/A 36434 0 R/Subtype/Link/Rect[490 520 502 528]/Border[0 0 0]/H/N>> endobj 36193 0 obj <>/P 4252 0 R/Type/Annot/A 36430 0 R/Subtype/Link/Rect[405 510 422 519]/Border[0 0 0]/H/N>> endobj 36194 0 obj <>/P 4252 0 R/Type/Annot/A 36426 0 R/Subtype/Link/Rect[422 510 436 518]/Border[0 0 0]/H/N>> endobj 36195 0 obj <>/P 4252 0 R/Type/Annot/A 36422 0 R/Subtype/Link/Rect[438 510 452 518]/Border[0 0 0]/H/N>> endobj 36196 0 obj <>/P 4252 0 R/Type/Annot/A 36419 0 R/Subtype/Link/Rect[454 510 466 518]/Border[0 0 0]/H/N>> endobj 36197 0 obj <>/P 4252 0 R/Type/Annot/A 36680 0 R/Subtype/Link/Rect[398 500 410 508]/Border[0 0 0]/H/N>> endobj 36198 0 obj <>/P 4252 0 R/Type/Annot/A 36675 0 R/Subtype/Link/Rect[415 490 431 499]/Border[0 0 0]/H/N>> endobj 36199 0 obj <>/P 4252 0 R/Type/Annot/A 36672 0 R/Subtype/Link/Rect[432 490 446 498]/Border[0 0 0]/H/N>> endobj 36200 0 obj <>/P 4252 0 R/Type/Annot/A 36669 0 R/Subtype/Link/Rect[448 490 462 498]/Border[0 0 0]/H/N>> endobj 36201 0 obj <>/P 4252 0 R/Type/Annot/A 36666 0 R/Subtype/Link/Rect[464 490 478 498]/Border[0 0 0]/H/N>> endobj 36202 0 obj <>/P 4252 0 R/Type/Annot/A 36663 0 R/Subtype/Link/Rect[480 490 492 498]/Border[0 0 0]/H/N>> endobj 36203 0 obj <>/P 4252 0 R/Type/Annot/A 36660 0 R/Subtype/Link/Rect[398 480 410 488]/Border[0 0 0]/H/N>> endobj 36204 0 obj <>/P 4252 0 R/Type/Annot/A 36657 0 R/Subtype/Link/Rect[405 470 422 479]/Border[0 0 0]/H/N>> endobj 36205 0 obj <>/P 4252 0 R/Type/Annot/A 36654 0 R/Subtype/Link/Rect[422 470 436 478]/Border[0 0 0]/H/N>> endobj 36206 0 obj <>/P 4252 0 R/Type/Annot/A 36651 0 R/Subtype/Link/Rect[438 470 452 478]/Border[0 0 0]/H/N>> endobj 36207 0 obj <>/P 4252 0 R/Type/Annot/A 36648 0 R/Subtype/Link/Rect[454 470 468 478]/Border[0 0 0]/H/N>> endobj 36208 0 obj <>/P 4252 0 R/Type/Annot/A 36645 0 R/Subtype/Link/Rect[470 470 482 478]/Border[0 0 0]/H/N>> endobj 36209 0 obj <>/P 4252 0 R/Type/Annot/A 36642 0 R/Subtype/Link/Rect[398 460 410 468]/Border[0 0 0]/H/N>> endobj 36210 0 obj <>/P 4252 0 R/Type/Annot/A 36639 0 R/Subtype/Link/Rect[420 450 436 459]/Border[0 0 0]/H/N>> endobj 36211 0 obj <>/P 4252 0 R/Type/Annot/A 36636 0 R/Subtype/Link/Rect[437 450 449 458]/Border[0 0 0]/H/N>> endobj 36212 0 obj <>/P 4252 0 R/Type/Annot/A 36633 0 R/Subtype/Link/Rect[398 440 410 448]/Border[0 0 0]/H/N>> endobj 36213 0 obj <>/P 4252 0 R/Type/Annot/A 36629 0 R/Subtype/Link/Rect[369 430 386 439]/Border[0 0 0]/H/N>> endobj 36214 0 obj <>/P 4252 0 R/Type/Annot/A 36625 0 R/Subtype/Link/Rect[387 430 401 438]/Border[0 0 0]/H/N>> endobj 36215 0 obj <>/P 4252 0 R/Type/Annot/A 36621 0 R/Subtype/Link/Rect[403 430 417 438]/Border[0 0 0]/H/N>> endobj 36216 0 obj <>/P 4252 0 R/Type/Annot/A 36617 0 R/Subtype/Link/Rect[419 430 431 438]/Border[0 0 0]/H/N>> endobj 36217 0 obj <>/P 4252 0 R/Type/Annot/A 36613 0 R/Subtype/Link/Rect[410 420 424 428]/Border[0 0 0]/H/N>> endobj 36218 0 obj <>/P 4252 0 R/Type/Annot/A 36609 0 R/Subtype/Link/Rect[426 420 440 428]/Border[0 0 0]/H/N>> endobj 36219 0 obj <>/P 4252 0 R/Type/Annot/A 36604 0 R/Subtype/Link/Rect[442 420 456 428]/Border[0 0 0]/H/N>> endobj 36220 0 obj <>/P 4252 0 R/Type/Annot/A 36600 0 R/Subtype/Link/Rect[458 420 470 428]/Border[0 0 0]/H/N>> endobj 36221 0 obj <>/P 4252 0 R/Type/Annot/A 36595 0 R/Subtype/Link/Rect[398 410 410 418]/Border[0 0 0]/H/N>> endobj 36222 0 obj <>/P 4252 0 R/Type/Annot/A 36591 0 R/Subtype/Link/Rect[409 400 419 408]/Border[0 0 0]/H/N>> endobj 36223 0 obj <>/P 4252 0 R/Type/Annot/A 36587 0 R/Subtype/Link/Rect[421 400 437 409]/Border[0 0 0]/H/N>> endobj 36224 0 obj <>/P 4252 0 R/Type/Annot/A 36359 0 R/Subtype/Link/Rect[438 400 452 408]/Border[0 0 0]/H/N>> endobj 36225 0 obj <>/P 4252 0 R/Type/Annot/A 36356 0 R/Subtype/Link/Rect[454 400 468 408]/Border[0 0 0]/H/N>> endobj 36226 0 obj <>/P 4252 0 R/Type/Annot/A 36579 0 R/Subtype/Link/Rect[470 400 484 408]/Border[0 0 0]/H/N>> endobj 36227 0 obj <>/P 4252 0 R/Type/Annot/A 36576 0 R/Subtype/Link/Rect[486 400 500 408]/Border[0 0 0]/H/N>> endobj 36228 0 obj <>/P 4252 0 R/Type/Annot/A 36573 0 R/Subtype/Link/Rect[502 400 516 408]/Border[0 0 0]/H/N>> endobj 36229 0 obj <>/P 4252 0 R/Type/Annot/A 36570 0 R/Subtype/Link/Rect[359 390 376 399]/Border[0 0 0]/H/N>> endobj 36230 0 obj <>/P 4252 0 R/Type/Annot/A 36566 0 R/Subtype/Link/Rect[376 390 390 398]/Border[0 0 0]/H/N>> endobj 36231 0 obj <>/P 4252 0 R/Type/Annot/A 36562 0 R/Subtype/Link/Rect[392 390 409 399]/Border[0 0 0]/H/N>> endobj 36232 0 obj <>/P 4252 0 R/Type/Annot/A 36558 0 R/Subtype/Link/Rect[410 390 424 398]/Border[0 0 0]/H/N>> endobj 36233 0 obj <>/P 4252 0 R/Type/Annot/A 36554 0 R/Subtype/Link/Rect[426 390 438 398]/Border[0 0 0]/H/N>> endobj 36234 0 obj <>/P 4252 0 R/Type/Annot/A 36550 0 R/Subtype/Link/Rect[405 380 422 389]/Border[0 0 0]/H/N>> endobj 36235 0 obj <>/P 4252 0 R/Type/Annot/A 36546 0 R/Subtype/Link/Rect[422 380 436 388]/Border[0 0 0]/H/N>> endobj 36236 0 obj <>/P 4252 0 R/Type/Annot/A 36542 0 R/Subtype/Link/Rect[438 380 455 389]/Border[0 0 0]/H/N>> endobj 36237 0 obj <>/P 4252 0 R/Type/Annot/A 36538 0 R/Subtype/Link/Rect[456 380 470 388]/Border[0 0 0]/H/N>> endobj 36238 0 obj <>/P 4252 0 R/Type/Annot/A 36534 0 R/Subtype/Link/Rect[472 380 486 388]/Border[0 0 0]/H/N>> endobj 36239 0 obj <>/P 4252 0 R/Type/Annot/A 36530 0 R/Subtype/Link/Rect[488 380 502 388]/Border[0 0 0]/H/N>> endobj 36240 0 obj <>/P 4252 0 R/Type/Annot/A 36526 0 R/Subtype/Link/Rect[504 380 516 388]/Border[0 0 0]/H/N>> endobj 36241 0 obj <>/P 4252 0 R/Type/Annot/A 36522 0 R/Subtype/Link/Rect[398 370 410 378]/Border[0 0 0]/H/N>> endobj 36242 0 obj <>/P 4252 0 R/Type/Annot/A 36518 0 R/Subtype/Link/Rect[435 360 447 368]/Border[0 0 0]/H/N>> endobj 36243 0 obj <>/P 4252 0 R/Type/Annot/A 36515 0 R/Subtype/Link/Rect[425 350 439 358]/Border[0 0 0]/H/N>> endobj 36244 0 obj <>/P 4252 0 R/Type/Annot/A 36511 0 R/Subtype/Link/Rect[441 350 457 359]/Border[0 0 0]/H/N>> endobj 36245 0 obj <>/P 4252 0 R/Type/Annot/A 36507 0 R/Subtype/Link/Rect[458 350 470 358]/Border[0 0 0]/H/N>> endobj 36246 0 obj <>/P 4252 0 R/Type/Annot/A 36503 0 R/Subtype/Link/Rect[410 340 423 349]/Border[0 0 0]/H/N>> endobj 36247 0 obj <>/P 4252 0 R/Type/Annot/A 36499 0 R/Subtype/Link/Rect[423 340 433 348]/Border[0 0 0]/H/N>> endobj 36248 0 obj <>/P 4252 0 R/Type/Annot/A 36495 0 R/Subtype/Link/Rect[435 340 447 348]/Border[0 0 0]/H/N>> endobj 36249 0 obj <>/P 4252 0 R/Type/Annot/A 36491 0 R/Subtype/Link/Rect[449 330 459 339]/Border[0 0 0]/H/N>> endobj 36250 0 obj <>/P 4252 0 R/Type/Annot/A 36486 0 R/Subtype/Link/Rect[461 330 473 339]/Border[0 0 0]/H/N>> endobj 36251 0 obj <>/P 4252 0 R/Type/Annot/A 36481 0 R/Subtype/Link/Rect[410 320 427 329]/Border[0 0 0]/H/N>> endobj 36252 0 obj <>/P 4252 0 R/Type/Annot/A 36476 0 R/Subtype/Link/Rect[427 320 441 329]/Border[0 0 0]/H/N>> endobj 36253 0 obj <>/P 4252 0 R/Type/Annot/A 36471 0 R/Subtype/Link/Rect[443 320 457 329]/Border[0 0 0]/H/N>> endobj 36254 0 obj <>/P 4252 0 R/Type/Annot/A 36466 0 R/Subtype/Link/Rect[459 320 473 329]/Border[0 0 0]/H/N>> endobj 36255 0 obj <>/P 4252 0 R/Type/Annot/A 36462 0 R/Subtype/Link/Rect[475 320 487 329]/Border[0 0 0]/H/N>> endobj 36256 0 obj <>/P 4252 0 R/Type/Annot/A 36457 0 R/Subtype/Link/Rect[398 310 410 319]/Border[0 0 0]/H/N>> endobj 36257 0 obj <>/P 4252 0 R/Type/Annot/A 36607 0 R/Subtype/Link/Rect[407 300 419 309]/Border[0 0 0]/H/N>> endobj 36258 0 obj <>/P 4252 0 R/Type/Annot/A 36449 0 R/Subtype/Link/Rect[420 300 430 309]/Border[0 0 0]/H/N>> endobj 36259 0 obj <>/P 4252 0 R/Type/Annot/A 36598 0 R/Subtype/Link/Rect[432 300 440 309]/Border[0 0 0]/H/N>> endobj 36260 0 obj <>/P 4252 0 R/Type/Annot/A 36442 0 R/Subtype/Link/Rect[378 290 392 299]/Border[0 0 0]/H/N>> endobj 36261 0 obj <>/P 4252 0 R/Type/Annot/A 36438 0 R/Subtype/Link/Rect[394 290 408 299]/Border[0 0 0]/H/N>> endobj 36262 0 obj <>/P 4252 0 R/Type/Annot/A 36436 0 R/Subtype/Link/Rect[410 290 424 299]/Border[0 0 0]/H/N>> endobj 36263 0 obj <>/P 4252 0 R/Type/Annot/A 36432 0 R/Subtype/Link/Rect[426 290 440 299]/Border[0 0 0]/H/N>> endobj 36264 0 obj <>/P 4252 0 R/Type/Annot/A 36428 0 R/Subtype/Link/Rect[442 290 454 299]/Border[0 0 0]/H/N>> endobj 36265 0 obj <>/P 4252 0 R/Type/Annot/A 36424 0 R/Subtype/Link/Rect[409 280 417 289]/Border[0 0 0]/H/N>> endobj 36266 0 obj <>/P 4252 0 R/Type/Annot/A 36421 0 R/Subtype/Link/Rect[396 270 410 279]/Border[0 0 0]/H/N>> endobj 36267 0 obj <>/P 4252 0 R/Type/Annot/A 36418 0 R/Subtype/Link/Rect[412 270 424 279]/Border[0 0 0]/H/N>> endobj 36268 0 obj <>/P 4252 0 R/Type/Annot/A 36416 0 R/Subtype/Link/Rect[398 260 410 269]/Border[0 0 0]/H/N>> endobj 36269 0 obj <>/P 4252 0 R/Type/Annot/A 36414 0 R/Subtype/Link/Rect[405 250 415 259]/Border[0 0 0]/H/N>> endobj 36270 0 obj <>/P 4252 0 R/Type/Annot/A 36412 0 R/Subtype/Link/Rect[417 250 431 259]/Border[0 0 0]/H/N>> endobj 36271 0 obj <>/P 4252 0 R/Type/Annot/A 36410 0 R/Subtype/Link/Rect[433 250 447 259]/Border[0 0 0]/H/N>> endobj 36272 0 obj <>/P 4252 0 R/Type/Annot/A 36408 0 R/Subtype/Link/Rect[449 250 463 259]/Border[0 0 0]/H/N>> endobj 36273 0 obj <>/P 4252 0 R/Type/Annot/A 36406 0 R/Subtype/Link/Rect[465 250 479 259]/Border[0 0 0]/H/N>> endobj 36274 0 obj <>/P 4252 0 R/Type/Annot/A 36404 0 R/Subtype/Link/Rect[481 250 495 259]/Border[0 0 0]/H/N>> endobj 36275 0 obj <>/P 4252 0 R/Type/Annot/A 36402 0 R/Subtype/Link/Rect[497 250 511 259]/Border[0 0 0]/H/N>> endobj 36276 0 obj <>/P 4252 0 R/Type/Annot/A 36400 0 R/Subtype/Link/Rect[359 240 371 249]/Border[0 0 0]/H/N>> endobj 36277 0 obj <>/P 4252 0 R/Type/Annot/A 36398 0 R/Subtype/Link/Rect[398 230 410 239]/Border[0 0 0]/H/N>> endobj 36278 0 obj <>/P 4252 0 R/Type/Annot/A 36396 0 R/Subtype/Link/Rect[410 220 427 229]/Border[0 0 0]/H/N>> endobj 36279 0 obj <>/P 4252 0 R/Type/Annot/A 36394 0 R/Subtype/Link/Rect[427 220 441 229]/Border[0 0 0]/H/N>> endobj 36280 0 obj <>/P 4252 0 R/Type/Annot/A 36392 0 R/Subtype/Link/Rect[443 220 457 229]/Border[0 0 0]/H/N>> endobj 36281 0 obj <>/P 4252 0 R/Type/Annot/A 36390 0 R/Subtype/Link/Rect[459 220 471 229]/Border[0 0 0]/H/N>> endobj 36282 0 obj <>/P 4252 0 R/Type/Annot/A 36388 0 R/Subtype/Link/Rect[398 210 410 219]/Border[0 0 0]/H/N>> endobj 36283 0 obj <>/P 4252 0 R/Type/Annot/A 36386 0 R/Subtype/Link/Rect[391 200 403 209]/Border[0 0 0]/H/N>> endobj 36284 0 obj <>/P 4252 0 R/Type/Annot/A 36384 0 R/Subtype/Link/Rect[391 190 403 199]/Border[0 0 0]/H/N>> endobj 36285 0 obj <>/P 4252 0 R/Type/Annot/A 36382 0 R/Subtype/Link/Rect[401 180 415 189]/Border[0 0 0]/H/N>> endobj 36286 0 obj <>/P 4252 0 R/Type/Annot/A 36380 0 R/Subtype/Link/Rect[417 180 431 189]/Border[0 0 0]/H/N>> endobj 36287 0 obj <>/P 4252 0 R/Type/Annot/A 36378 0 R/Subtype/Link/Rect[433 180 447 189]/Border[0 0 0]/H/N>> endobj 36288 0 obj <>/P 4252 0 R/Type/Annot/A 36376 0 R/Subtype/Link/Rect[449 180 461 189]/Border[0 0 0]/H/N>> endobj 36289 0 obj <>/P 4252 0 R/Type/Annot/A 36374 0 R/Subtype/Link/Rect[405 170 419 179]/Border[0 0 0]/H/N>> endobj 36290 0 obj <>/P 4252 0 R/Type/Annot/A 36372 0 R/Subtype/Link/Rect[421 170 435 179]/Border[0 0 0]/H/N>> endobj 36291 0 obj <>/P 4252 0 R/Type/Annot/A 36370 0 R/Subtype/Link/Rect[437 170 451 179]/Border[0 0 0]/H/N>> endobj 36292 0 obj <>/P 4252 0 R/Type/Annot/A 36368 0 R/Subtype/Link/Rect[453 170 467 179]/Border[0 0 0]/H/N>> endobj 36293 0 obj <>/P 4252 0 R/Type/Annot/A 36366 0 R/Subtype/Link/Rect[469 170 486 179]/Border[0 0 0]/H/N>> endobj 36294 0 obj <>/P 4252 0 R/Type/Annot/A 36364 0 R/Subtype/Link/Rect[486 170 500 179]/Border[0 0 0]/H/N>> endobj 36295 0 obj <>/P 4252 0 R/Type/Annot/A 36361 0 R/Subtype/Link/Rect[502 170 516 179]/Border[0 0 0]/H/N>> endobj 36296 0 obj <>/P 4252 0 R/Type/Annot/A 36358 0 R/Subtype/Link/Rect[359 160 373 169]/Border[0 0 0]/H/N>> endobj 36297 0 obj <>/P 4252 0 R/Type/Annot/A 36355 0 R/Subtype/Link/Rect[375 160 392 169]/Border[0 0 0]/H/N>> endobj 36298 0 obj <>/P 4252 0 R/Type/Annot/A 36352 0 R/Subtype/Link/Rect[392 160 406 169]/Border[0 0 0]/H/N>> endobj 36299 0 obj <>/P 4252 0 R/Type/Annot/A 36350 0 R/Subtype/Link/Rect[408 160 422 169]/Border[0 0 0]/H/N>> endobj 36300 0 obj <>/P 4252 0 R/Type/Annot/A 36348 0 R/Subtype/Link/Rect[424 160 438 169]/Border[0 0 0]/H/N>> endobj 36301 0 obj <>/P 4252 0 R/Type/Annot/A 36346 0 R/Subtype/Link/Rect[440 160 454 169]/Border[0 0 0]/H/N>> endobj 36302 0 obj <>/P 4252 0 R/Type/Annot/A 36344 0 R/Subtype/Link/Rect[456 160 470 169]/Border[0 0 0]/H/N>> endobj 36303 0 obj <>/P 4252 0 R/Type/Annot/A 36342 0 R/Subtype/Link/Rect[472 160 486 169]/Border[0 0 0]/H/N>> endobj 36304 0 obj <>/P 4252 0 R/Type/Annot/A 36340 0 R/Subtype/Link/Rect[488 160 500 169]/Border[0 0 0]/H/N>> endobj 36305 0 obj <>/P 4252 0 R/Type/Annot/A 36338 0 R/Subtype/Link/Rect[398 150 410 159]/Border[0 0 0]/H/N>> endobj 36306 0 obj <> endobj 36307 0 obj <> endobj 36308 0 obj <> endobj 36309 0 obj <> endobj 36310 0 obj <> endobj 36311 0 obj <> endobj 36312 0 obj <> endobj 36313 0 obj <> endobj 36314 0 obj <> endobj 36315 0 obj <> endobj 36316 0 obj <> endobj 36317 0 obj <> endobj 36318 0 obj <> endobj 36319 0 obj <> endobj 36320 0 obj <> endobj 36321 0 obj <> endobj 36322 0 obj <> endobj 36323 0 obj <> endobj 36324 0 obj <> endobj 36325 0 obj <> endobj 36326 0 obj <> endobj 36327 0 obj <> endobj 36328 0 obj <> endobj 36329 0 obj <> endobj 36330 0 obj <> endobj 36331 0 obj <> endobj 36332 0 obj <> endobj 36333 0 obj <> endobj 36334 0 obj <> endobj 36335 0 obj <> endobj 36336 0 obj <> endobj 36337 0 obj <> endobj 36338 0 obj <> endobj 36339 0 obj <> endobj 36340 0 obj <> endobj 36341 0 obj <> endobj 36342 0 obj <> endobj 36343 0 obj <> endobj 36344 0 obj <> endobj 36345 0 obj <> endobj 36346 0 obj <> endobj 36347 0 obj <> endobj 36348 0 obj <> endobj 36349 0 obj <> endobj 36350 0 obj <> endobj 36351 0 obj <> endobj 36352 0 obj <> endobj 36353 0 obj <> endobj 36354 0 obj <> endobj 36355 0 obj <> endobj 36356 0 obj <> endobj 36357 0 obj <> endobj 36358 0 obj <> endobj 36359 0 obj <> endobj 36360 0 obj <> endobj 36361 0 obj <> endobj 36362 0 obj <> endobj 36363 0 obj <> endobj 36364 0 obj <> endobj 36365 0 obj <> endobj 36366 0 obj <> endobj 36367 0 obj <> endobj 36368 0 obj <> endobj 36369 0 obj <> endobj 36370 0 obj <> endobj 36371 0 obj <> endobj 36372 0 obj <> endobj 36373 0 obj <> endobj 36374 0 obj <> endobj 36375 0 obj <> endobj 36376 0 obj <> endobj 36377 0 obj <> endobj 36378 0 obj <> endobj 36379 0 obj <> endobj 36380 0 obj <> endobj 36381 0 obj <> endobj 36382 0 obj <> endobj 36383 0 obj <> endobj 36384 0 obj <> endobj 36385 0 obj <> endobj 36386 0 obj <> endobj 36387 0 obj <> endobj 36388 0 obj <> endobj 36389 0 obj <> endobj 36390 0 obj <> endobj 36391 0 obj <> endobj 36392 0 obj <> endobj 36393 0 obj <> endobj 36394 0 obj <> endobj 36395 0 obj <> endobj 36396 0 obj <> endobj 36397 0 obj <> endobj 36398 0 obj <> endobj 36399 0 obj <> endobj 36400 0 obj <> endobj 36401 0 obj <> endobj 36402 0 obj <> endobj 36403 0 obj <> endobj 36404 0 obj <> endobj 36405 0 obj <> endobj 36406 0 obj <> endobj 36407 0 obj <> endobj 36408 0 obj <> endobj 36409 0 obj <> endobj 36410 0 obj <> endobj 36411 0 obj <> endobj 36412 0 obj <> endobj 36413 0 obj <> endobj 36414 0 obj <> endobj 36415 0 obj <> endobj 36416 0 obj <> endobj 36417 0 obj <> endobj 36418 0 obj <> endobj 36419 0 obj <> endobj 36420 0 obj <> endobj 36421 0 obj <> endobj 36422 0 obj <> endobj 36423 0 obj <> endobj 36424 0 obj <> endobj 36425 0 obj <> endobj 36426 0 obj <> endobj 36427 0 obj <> endobj 36428 0 obj <> endobj 36429 0 obj <> endobj 36430 0 obj <> endobj 36431 0 obj <> endobj 36432 0 obj <> endobj 36433 0 obj <> endobj 36434 0 obj <> endobj 36435 0 obj <> endobj 36436 0 obj <> endobj 36437 0 obj <> endobj 36438 0 obj <> endobj 36439 0 obj <> endobj 36440 0 obj <> endobj 36441 0 obj <> endobj 36442 0 obj <> endobj 36443 0 obj <> endobj 36444 0 obj <> endobj 36445 0 obj <> endobj 36446 0 obj <> endobj 36447 0 obj <> endobj 36448 0 obj <> endobj 36449 0 obj <> endobj 36450 0 obj <> endobj 36451 0 obj <> endobj 36452 0 obj <> endobj 36453 0 obj <> endobj 36454 0 obj <> endobj 36455 0 obj <> endobj 36456 0 obj <> endobj 36457 0 obj <> endobj 36458 0 obj <> endobj 36459 0 obj <> endobj 36460 0 obj <> endobj 36461 0 obj <> endobj 36462 0 obj <> endobj 36463 0 obj <> endobj 36464 0 obj <> endobj 36465 0 obj <> endobj 36466 0 obj <> endobj 36467 0 obj <> endobj 36468 0 obj <> endobj 36469 0 obj <> endobj 36470 0 obj <> endobj 36471 0 obj <> endobj 36472 0 obj <> endobj 36473 0 obj <> endobj 36474 0 obj <> endobj 36475 0 obj <> endobj 36476 0 obj <> endobj 36477 0 obj <> endobj 36478 0 obj <> endobj 36479 0 obj <> endobj 36480 0 obj <> endobj 36481 0 obj <> endobj 36482 0 obj <> endobj 36483 0 obj <> endobj 36484 0 obj <> endobj 36485 0 obj <> endobj 36486 0 obj <> endobj 36487 0 obj <> endobj 36488 0 obj <> endobj 36489 0 obj <> endobj 36490 0 obj <> endobj 36491 0 obj <> endobj 36492 0 obj <> endobj 36493 0 obj <> endobj 36494 0 obj <> endobj 36495 0 obj <> endobj 36496 0 obj <> endobj 36497 0 obj <> endobj 36498 0 obj <> endobj 36499 0 obj <> endobj 36500 0 obj <> endobj 36501 0 obj <> endobj 36502 0 obj <> endobj 36503 0 obj <> endobj 36504 0 obj <> endobj 36505 0 obj <> endobj 36506 0 obj <> endobj 36507 0 obj <> endobj 36508 0 obj <> endobj 36509 0 obj <> endobj 36510 0 obj <> endobj 36511 0 obj <> endobj 36512 0 obj <> endobj 36513 0 obj <> endobj 36514 0 obj <> endobj 36515 0 obj <> endobj 36516 0 obj <> endobj 36517 0 obj <> endobj 36518 0 obj <> endobj 36519 0 obj <> endobj 36520 0 obj <> endobj 36521 0 obj <> endobj 36522 0 obj <> endobj 36523 0 obj <> endobj 36524 0 obj <> endobj 36525 0 obj <> endobj 36526 0 obj <> endobj 36527 0 obj <> endobj 36528 0 obj <> endobj 36529 0 obj <> endobj 36530 0 obj <> endobj 36531 0 obj <> endobj 36532 0 obj <> endobj 36533 0 obj <> endobj 36534 0 obj <> endobj 36535 0 obj <> endobj 36536 0 obj <> endobj 36537 0 obj <> endobj 36538 0 obj <> endobj 36539 0 obj <> endobj 36540 0 obj <> endobj 36541 0 obj <> endobj 36542 0 obj <> endobj 36543 0 obj <> endobj 36544 0 obj <> endobj 36545 0 obj <> endobj 36546 0 obj <> endobj 36547 0 obj <> endobj 36548 0 obj <> endobj 36549 0 obj <> endobj 36550 0 obj <> endobj 36551 0 obj <> endobj 36552 0 obj <> endobj 36553 0 obj <> endobj 36554 0 obj <> endobj 36555 0 obj <> endobj 36556 0 obj <> endobj 36557 0 obj <> endobj 36558 0 obj <> endobj 36559 0 obj <> endobj 36560 0 obj <> endobj 36561 0 obj <> endobj 36562 0 obj <> endobj 36563 0 obj <> endobj 36564 0 obj <> endobj 36565 0 obj <> endobj 36566 0 obj <> endobj 36567 0 obj <> endobj 36568 0 obj <> endobj 36569 0 obj <> endobj 36570 0 obj <> endobj 36571 0 obj <> endobj 36572 0 obj <> endobj 36573 0 obj <> endobj 36574 0 obj <> endobj 36575 0 obj <> endobj 36576 0 obj <> endobj 36577 0 obj <> endobj 36578 0 obj <> endobj 36579 0 obj <> endobj 36580 0 obj <> endobj 36581 0 obj <> endobj 36582 0 obj <> endobj 36583 0 obj <> endobj 36584 0 obj <> endobj 36585 0 obj <> endobj 36586 0 obj <> endobj 36587 0 obj <> endobj 36588 0 obj <> endobj 36589 0 obj <> endobj 36590 0 obj <> endobj 36591 0 obj <> endobj 36592 0 obj <> endobj 36593 0 obj <> endobj 36594 0 obj <> endobj 36595 0 obj <> endobj 36596 0 obj <> endobj 36597 0 obj <> endobj 36598 0 obj <> endobj 36599 0 obj <> endobj 36600 0 obj <> endobj 36601 0 obj <> endobj 36602 0 obj <> endobj 36603 0 obj <> endobj 36604 0 obj <> endobj 36605 0 obj <> endobj 36606 0 obj <> endobj 36607 0 obj <> endobj 36608 0 obj <> endobj 36609 0 obj <> endobj 36610 0 obj <> endobj 36611 0 obj <> endobj 36612 0 obj <> endobj 36613 0 obj <> endobj 36614 0 obj <> endobj 36615 0 obj <> endobj 36616 0 obj <> endobj 36617 0 obj <> endobj 36618 0 obj <> endobj 36619 0 obj <> endobj 36620 0 obj <> endobj 36621 0 obj <> endobj 36622 0 obj <> endobj 36623 0 obj <> endobj 36624 0 obj <> endobj 36625 0 obj <> endobj 36626 0 obj <> endobj 36627 0 obj <> endobj 36628 0 obj <> endobj 36629 0 obj <> endobj 36630 0 obj <> endobj 36631 0 obj <> endobj 36632 0 obj <> endobj 36633 0 obj <> endobj 36634 0 obj <> endobj 36635 0 obj <> endobj 36636 0 obj <> endobj 36637 0 obj <> endobj 36638 0 obj <> endobj 36639 0 obj <> endobj 36640 0 obj <> endobj 36641 0 obj <> endobj 36642 0 obj <> endobj 36643 0 obj <> endobj 36644 0 obj <> endobj 36645 0 obj <> endobj 36646 0 obj <> endobj 36647 0 obj <> endobj 36648 0 obj <> endobj 36649 0 obj <> endobj 36650 0 obj <> endobj 36651 0 obj <> endobj 36652 0 obj <> endobj 36653 0 obj <> endobj 36654 0 obj <> endobj 36655 0 obj <> endobj 36656 0 obj <> endobj 36657 0 obj <> endobj 36658 0 obj <> endobj 36659 0 obj <> endobj 36660 0 obj <> endobj 36661 0 obj <> endobj 36662 0 obj <> endobj 36663 0 obj <> endobj 36664 0 obj <> endobj 36665 0 obj <> endobj 36666 0 obj <> endobj 36667 0 obj <> endobj 36668 0 obj <> endobj 36669 0 obj <> endobj 36670 0 obj <> endobj 36671 0 obj <> endobj 36672 0 obj <> endobj 36673 0 obj <> endobj 36674 0 obj <> endobj 36675 0 obj <> endobj 36676 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 36677 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 36678 0 obj <> endobj 36679 0 obj <> endobj 36680 0 obj <> endobj 36681 0 obj <> endobj 36682 0 obj <> endobj 36683 0 obj <> endobj 36684 0 obj <> endobj 36685 0 obj <> endobj 36686 0 obj <> endobj 36687 0 obj <> endobj 36688 0 obj <> endobj 36689 0 obj <> endobj 36690 0 obj <> endobj 36691 0 obj <> endobj 36692 0 obj <> endobj 36693 0 obj <> endobj 36694 0 obj <> endobj 36695 0 obj <> endobj 36696 0 obj <> endobj 36697 0 obj <> endobj 36698 0 obj <> endobj 36699 0 obj <> endobj 36700 0 obj <> endobj 36701 0 obj <> stream q /X1 Do Q q endstream endobj 36702 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 36703 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 36704 0 obj <> stream HWmoF_T4"I:͢ID/>J+o-|ˣ,wf=uܮՋ'޾VgRT8KFMQmIn\ֳZ-g˶붙IN\uJNFiU$!^$SAT<0'fPc㳁R?VJ=]ݯtX}FqޤŁEw>,J={&QJg}Tީ35UIyj|TJ=OBfU< 3+H#"Kkb<`qZK,F-po{ [Nw=p{{^ρ\ρ\/B/B/B/R/R}p/:Ai96O h-Lj%s,@k9F,cĒ9Y#p/Zk@k9F,^րr,@k9F,^րrXhXdrXh{ZZ˱{ZZ1bcĂrX=" cĒ9F,cZ1bcEk-h-" cEk-h-Lj܋ZZEh-Lj܋ZZ ,Z #p/ZkAk96Oh-Lj%s,@k9F,cĒ9Y#p/Z@k9F,^ցr,@k9F,^ցrXhXdrXh{ZZ˱{ZZ1bcărX=" cĒ9F,^=x |!Pu=dstKh9儖ZNhy兖Z^h@+Z9ʅV UBh@Z%*VZAhɤLj%8F5ZZheZ"cZ%@9F,%ro@9v8YB cZ"cV%@9F,%ro@9v8:Y\˂sXRctZ"ctZ"ctZ"ctZ"ctDZ"ctDZ"ctZ"ctZ"ctZ"ctZ#ȽȽȽȽ-{r1zZ"cD=h;{ы9w s1bI-+7 ! !8}̓*9*n!*!Q<YLfZ=g3;uzn&rjjn弙\鏛:QZ,ۥ7J}/U?kXk!Q$.xH-gROρP<䁙my_D0iܯѠYtX,G6Y6sY..Ƴnz淫K"lhnwR>l=suj/]w7PTL6-?׾HMēHQ_\\m5q’Gƍ/ZsFM wHP|I]0i!4ͶJu^FgL.90>nu3.4weW4]vhaQNax:9Rl'<غ2t|A8Xjr߶ePt #lK_ϻv9-?~>R?l74/TV{G+LYcAlbg OEW__] xLFw[h}A n? 4Y[cmu=qjJܹlw@S6~.H{~Əm96 =嘸>#ht4_UV_Ջijxww.q;;gEƗzeMO ^e6|k|ɸyχ_~x1&>ʝf1[:cLހQ:!Uo/^ywĤMJat^`|Bk0r^%ϒ c$7endstream endobj 36705 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 36706 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 36707 0 obj <> endobj 36708 0 obj <> endobj 36709 0 obj <> endobj 36710 0 obj <> endobj 36711 0 obj <> stream q /X1 Do Q q endstream endobj 36712 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 36713 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 36714 0 obj <> stream HWioW>⭀AsdEqĚ`4m^!); =CR$CX]SM?kLb^xy{dClKCw3gǩ3:EE֌Mt|2_z98:}uhF%$1)IIail֮>64L.wӺ_OإIO_Ozվ<̆yu܎1}QE Gv)-UcgK173Qإ$9DQJN9+Ę'1bYYcV XһڼĈ{;)ʽr{>(} ܧ} ܧ} ܧ}g}g}}}}}} ܗ} ܫZPZM#Z+1fi#hĘKYڽĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĦ{ Vb%,^b{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb(JYڽĈZ+1ficv/1bJYjm{Z+1bJYjm{Z+1bJYjm{Z+1bJYjm{Z+iJYڽĈZ+1ficv_eY_eV5Tè-CL'74jl=~vI\ΗOwnwv1A-ͻni(26jLw5v$ 0Y(ⲑnHG< LV + ˇ6pTWŽǷW3\t_կovۇ*f&sy_b0jr,2%-q+6Ljii8>'ie(`2cLcZ9L9tCi7Ǜ_#ۻic|wGaIw<@k!N6L~;s,8wIZo7  .@̀p(]=7~e|EV#yYxH9MLZMBbG'n~O~Oۚfj0Q{罟]WˋUhv?麖ݴojmFjeybq鴾i2hro\. mf4쬵?:8]l8pB{| ~=Þ|;|شjJ%4 ~2/{I]?{;?zwͦ>ɻY.EMݻ_]gYYS_/1}v#7Fl6th괋,=voyMZB@w&3> Q^&Qݫ{ջ'47Αbۮtup°8?o{faΗ|)/h6_{it]riTl.4>׫z6*$r陠c~Gܽ@y2ptc|a` >H8[#cıY-= &c[̠ߋ:OfsOt*.*?؆`FGUeyx>!*1f J+R*hJ+ZʀVr+hJZ*VJU*hR%ZKbZ#ZViYeZNi9r@%,r@%,r@%,r@%,r@%,r@%,r@%,rA%,%1bKY@KރKY@KރKY@KރKY@KރKY@KރKY@KރKY@KރKY@KރKY@K>KYZKb}}}}}}}}} r/1fi- ^bZe\e<*:lL5 YA iLc66mo<&XzC>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 36716 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 36717 0 obj <> endobj 36718 0 obj <> endobj 36719 0 obj <> stream q /X1 Do Q q endstream endobj 36720 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 36721 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 36722 0 obj <> stream HWm6_ l|^Q\-I(6Vk{ݯHpC5~8g4gs￿%+Wſ *J_R[Yբ4( VlkuvU?/ݒ%/AVҁ0[.BZ{}9 ] n=G速T޼vj?]7Vɺ/viq9! g2a[@ P(d (M0ws(A{A{I{I{I{EW{EW{M{M{M`_gk}7{7{7{{{w{wL- A*gm"TmǶcb[@3 BPLP-P->S TmET+bb[@3 BPLP-P->S TmET+b۾j-r(BP9{l =P->S$TmET+ bb[@3JBPLP-P->S$TmET+ bb[@3JBPLP- E*gm"TmǶcb[@3*BPLP-P->S"TmETbb[@3*BPLP-P->S"TmETb۾Єj-r(BP9{l sdo2\틗n?Ml\.ڕ}Ǜg%*?,|.o^Ho_a֧QwI[wmnE8[0 m棔ԧ}㯋!JXKU\CXd&`+xSAm`:TkvsaY@hV?mi`on4M\S{Fé/G ^ .-U+yHn?Y(BrsAjt j6~H"OinWhSBކdcXY6۝g9ĤK8ٚ61ĺEm+mĕH >w^gM8RD۪CVRV̹DV 's]s3w'~22S{N+/u~\1.N#ھmv}]ݪs Id8j' lS!9)YZ e1PeҖ =r`=epjW ?u}bSD嬫/(TaLܷ_lOqr1LWv%k[ \5ÿv)Fb~W>kHft ?.W&˽XYÐw >s_b%aȎ?7xA6{faoVZC EoOS߯abOu 6zn7TI6xQ` S.žp2+`d֓Xo QqḋgU0458-?G02ČS2H7!qk#c٘V0#5NXr&feknoI1^@ U"4⦟Opce,Q\%#as2C0!;Gf?DHh V]"7gxa_y`'pTvpG'4~ [h gL7+0,!it텄Fw23'ІRjRôh;j5 ZV;98uxoO(JԂ uwyq&P|8nk)_#PNVУ⨉CHc|`xn>/XK@Hи'+&U~C,ýs'fDzjBo]p Gܬ_1l&\ ΃RkK ..+Cxm3Diu άш|NW1P.+]X|q7f>XtUE䬩~$Xo ^C gޢY/Xqtk)LTF=pÍp+f?kR-00^UCv^µ?įA`_[3>}G/SC0m._8̳Na~)H8%;nQ)Njlİ'OAB?u Y[ֺYެsOCp~ƀA.^LNU@T vL`CP8귇v- K r5OI,bŜ .n|* .|7 ʣOjҪݩ6Q5>l'sczl*p[rh1h!F53XNӷ.WPzԁ{~"|aR#UlբBA/`9Ox<7Y_oZށD :>W量%;-]j_o5}JTZ|?8e@;>:҇&X";5GnQ%'3T`cyfT!|+ h>"%:\A ;o߽׬i*v5ixPumo>=3SeHbdwz E>Yʩ¿tҭmx06}ݿۏʃz-xN>?QJ! ['8Q[:HoY$m6}_C~ YDu XwEg^sS$4,5%v,eF'.ݏvdQMlHdx\=vt"C640OD.Ӭ(C!RP^Ў4p3j*Sb0p%CէksMc- P¬vh<-Br 5XVҢ p۶xRT!y$ڇ1DBQ*L[O20/3'F\ɈI)4+h=R̻.Z[Ð;s$H܂16׻d$Uö3L6w̨ 𐱿OQU"Rhk lyvw]E`%\W}2xLLQ*gdsn3*GfXWFbe9|,J dm:隶w[ŹHKVۊ^\d(j: ^b |Gץ@7<+;p{)dd_lgn u4\a1aj*qދ5Jaڸ5m[^OEjeQ7O`(WE s7|* ?΁<`f)TnG\D >/P 951 0 R/Type/Annot/A 36724 0 R/Subtype/Link/Rect[93.6003036 188.988998 244.235992 208.669006]/Border[0 0 0]/H/N>> endobj 36724 0 obj <> endobj 36725 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 36726 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 36727 0 obj <> endobj 36728 0 obj <> endobj 36729 0 obj <> endobj 36730 0 obj <> endobj 36731 0 obj <> endobj 36732 0 obj <> stream q /X1 Do Q q endstream endobj 36733 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 36734 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 36735 0 obj <> stream HWkoܸ_A( -$qhݦh;XtF34v_KQ!lu|xyxy+~}Տ$!o޼21I&.M9RA'A(!#.>mUr7tMU.~侍ޮMFVH DCL%9YlS㊲wh,7J2yggpҜj&M|񑜽*y>0 -/š3Gw+.oq䉰 S> YHrq":萣=KD@1 1`1<̲31`qD=sD= D D DKD KD +D +D +D ԧ4P"@}> g,P#@}QQx!]e} Xk}̲B>fYzZ,D}Z, Q#1`!1Bk}̲k9ZZ,D}Z, Q#1`!1Bk}̲k9ZEqYVǀ,+Tc1`!1Bk}̲kZZ,D}Z, QV 1`!1Bk}̲kZZ,D}Z, QV ]$e} Xk}̲B>fYzZ,D}Z, QV"1`!1Bk}̲k%ZZ,D}Z, QV"1`!1Bk}̲k%ZE qYVǀ,+TcTk-I-.z.V7IYm"8$M5Y٘и6eW+bh7CgC1Rz=>U]PϫAEi2;,vl儠(ll3Eϔ!SL$Eyv8b윊MWTvY)f\4I \,z[`cTּښ{Т9cy|ܙmv~&ǡuAdh$T,%,%`x}i\TΩĤo *4䊋j걔z/Ei.1W[e^]x=u3r0Yɛq0Hb7- 트VZcWզuAڬ2ܒArX$tzBgT'b <0ȖN'1X+9,[|vP/낸\24~ $; %cU_(v_VEg?fJcJ'K~6~,ûFٸUع.@S9įB 9mW`,KQ+9uob(9+JW0b\(1dv$LuMQZD$|b50p`zbozO>ٵtpSGxovEg>+pZpX}+ۗT-wU ,3W|cR-mYԛP}asn0v( vŨ׆XUBR'.l8۸:R> Scڮ)utpdvX>uroSGORvs ^b0qX>㒤<7hOi- {sq, ' i;AnoÓ,zbSbO,g']?#B$Ϙ^ElylhWh)ĝڕ6w^qD $SO0j^dB>4*_ $l[OpL46ccj?=Ux(G?|6(t-G !Bо8p?=>{>TU5lH[;nhoM8a;y+RtlvC}'3 cl]Q}U8$͵8gcp#Yܞ3-oN8VI MAh5y]u_~w^.|{{>- j$~=gbp8LPJkP.GwPU2 ˧s_ƫq+CH<`EQ`o[ DRwO gyMpU~t莗oOij|^&g?YdEkV>O͈Nãzk5[Y,q/e>4‹Ad dMː2E)0{/Z`GيZX8WrA:9|os9vv9V|dJNSs'ۋUYYKߪ¢ςJV)%U Q0Sԑ``NyO!M5"3fzk-O3Ao)J:ymʄUPٝ'ḱ Ci1a\ׂ4ƶ]<лg85L= )%f:AVrDJTLgl (ճP{c gS]( Uxfkbgg)[Tvkh/:AVUeFVi%nd3=0Xt&6qVlƠo/ zrVg?`ZjN4T3irɥ,Cʠ5Tjm*Lk׽"0oOF 0oqfvm%^>D7Xq(ЏYCIv1J n0Նfߘ99ۧ/w_`endstream endobj 36736 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 36737 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 36738 0 obj <> stream q /X1 Do Q q endstream endobj 36739 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 36740 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 36741 0 obj <> stream HWmo8_ .a7Q \E{և"˱ [Yrޯd8F3o?m Bg"%'KUdMJ$Ovirg};cocפ.OcfܯtI*X$O9Sj|> }zsdʛϫ3XPJ ~f^P\.(<~)yJrB ?=.ᄥ/)?`!9OiR0 3~J]8vǤ!1U9@OB(QO$ S}b{g{{{{{{{{{/Eľ@{W{W{Wa_FK}UľBGhC>ajCFCՆ>ه>ه>@! }TՆ>BGejCՆ>BGejCF!#2DPjCF!#2DOj(DOjЧQH Qm'QmӨ}ЧQ1ЧQ1(DOj9ЧQHQmЧQHQm(}Z6 Qm(}Z6i>R-GT6i>R-GT4 a# }D }}BT4*f4*f6i>R@T4 aV }BT4 aV }T+Ն>@! }T+Ն>BGjCՆ>BGjCF!# DoHDObPjCFCF+RUHswf6*_/ef>$`u ~3svOn Ǜϫg4bʅG{Dd40yZi{M*sA(ٺ=ެKeen`B_[.=i}N>5wKLB,@c|/&pe648_]+4׏>/ 'EYMzWE!佅 A+FU t3% VbF}L(g 9f EBMz{s>{i6rW@{"G͇1fP_ʫ309r·2 ڈx~4HH3:Wjќ[TO'*؍7'4éɾ]K)8̤Gɾ4nqxw'.J(ϫf@ \T:%2 S,``qIk݅A2:7ٯ^K3I ,!P恟25֙6hpm}8̇eƴ޳rml8{q9%"/gUp$f;eBˡ/^$<ߋmlnďйOm}Z( (*ΰ҄wW#epz\ Pv YiL KvgB|Jە{n. 1iy{8a24+.asuhQK?L xIVb$ˊTz>#L^?p&'ԚkVUV2"Z|"3j|^~t3inչHe#Z R)Ku04-иO]$W5piFi96^KhĕeL9 0{U.sۆS69lMw.H.![Ivj8s& _AI^lpʼs^@ߡL7J]lmo6*2]MpIY)In1ltk A= /0Gf[:_OАg?5nnW2K_F,$BTTgu׵]F~E8I8 줙XDI Jq,Vs[_knh0AVЇ@藄CӘK:WAI+t*%> zBE!q\2f_^a>nV J'rB ^Ӿh)H hYxm D%״-5rn_LJ 3.[f^~u`v}]?]p$ !^`y8ዿ?pϸ m_*6\SLɷrR) ,՜mIΤg{y}ɨJA*G51>*֑y"iX4b$.GSeݝ XN# 6;D `՜ /תet]>C_6]6-Qkd{gz4 ZhZ͉a 5%ҹ펎7"~,%.l+iTcOTlpnJ\2#QК'$O2!^)bz`FDSV9wp,c(N͜%n9mMSwÎ /0" bʮ.R{ .\M.d1{ҁ冰3BN Bu}uFEIF#eja(AE:k}bj KyesqsmxeKx^%:ԉ_|J&nģJ!JS{2 YS/関p QSZo5C? ; 0ACCdi@XٗV#)Yu\M!^+y1Fp\[B5_Ͷ61;b@3ʷaĈnGZaM2R\K|EE\Ə>C*$5TK[]G&ӔvouvrٙeMS7`)"II}Mh?xaⳆf?IGht8+ur|n$=jI~./G-PZÙ TQllFYY)(+LC~dmM_/>b;yweJ7S:w9RAׯ~`X8TUW}j>\ɾVn/u3.~rѝA PgI&{:8!].OiNJsx#\i]i|.P2>*#س\ݽli {d!Oa9qΛ,/I0ŌvIIDVuw[ؓ}ԮvIV,/lHG2}YKoY,o[/K}1m8+vռVF# CcPp}z"9qz_K)sN$44PusV*uh_%QpG#X J6bz&d?g\$Кz}ں mtJ`~Ǹa?B~騝YI`:x7ڛ1.b8Ό #4u(ؑWmrOWzb'e>[xI]Uc#upIMEWU#lWj:~{Dvsԍ\T&SbgybD7D$ܻ:[fy+Y"txUmtG/Cf!rhT]jN PwWw {FHjGR-P|yWtcendstream endobj 36742 0 obj <>/P 792 0 R/Type/Annot/A 36743 0 R/Subtype/Link/Rect[93.6003036 327.229004 237.623993 346.908997]/Border[0 0 0]/H/N>> endobj 36743 0 obj <> endobj 36744 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 36745 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 36746 0 obj <> endobj 36747 0 obj <> endobj 36748 0 obj <> endobj 36749 0 obj <> stream q /X1 Do Q q endstream endobj 36750 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 36751 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 36752 0 obj <> stream HWko8_A`(_zE}ζ@AcLHBX^YN?$Ku㫣C\+zoߐxe%Q1'I,+O "r0RcQ}y_n+5kNUpb_$ad 2$"ɠOD)YA"~fhjIc\Q6n—Yr(|{ĖIO׻|@gҰXt3"T|lHrG,YUpdd>'s8,4ŀŘr0RΘ/ŀSS/S/S/S/S/SSSS#cO}= >'S O}O=)>gS!=2Ĵ.Vqiŀ4Wbw1`!u1B{k]Lk9ZZ,DZ4 Q﹖#u1`!u1B{k]Lk9ZZ,DZ4 Q﹖#u:k]L|.,ĵ.Yz,_ qis@\b\+׺׺f!= ĵ.Yzϵq qis@\b\+׺׺f!= ĵ.YzϵqՁD\bw1`!u1ջf] Xk]Lk%Z,DZŀ4 QV"u1B{k] Xk]Lk%Z,DZŀ4 QV"u1B{k]Z,_ qi4W,$YWjž(jN |И up@.$ c՗Q6wh]4lM_n]qy[hBr8\x(b_aʠ@P$n{l}60H_]xXQ#kz0@^=䏺5|$mdglv:̛!uW3FT4#5R`F4BxdK 6SQx7W:7x(hzvC]]6y5[]S"О锉NAIM[.է|QaBag]ͬ\uv0x g ˒YE ġb& P NC:4%N- m)`LΎ,TA YKY<9_A^˙8ck(C'^I3Q+ᮦR> !"WJ\ɛv1ț~e4Βx>Af7]'l;\PnTI{W i6~wTohѕ t0a?ʾpopTt:"+r7'6ڶqByEwVN"=/Pio.gT۟[?ѡ=nI,-av@ɸ`'&V_ZJ3V·"c~xNpMN2-/{:BéX]<xxjB[!h:mL m3kzvc.'4/N*R8E~BH0#doyclE5_ZĜΛ107a. >'T&÷xC0-я3%|I>O,kzU,,Čvg=1Z#mx{ZR߉lj1iJ`QߓUN3e+9^U6)ʞtB[ E#}XǴ刜 mnl)2ҥ`M x-/DMD./'upʵ+O{>E(8^N]\vs']]eId><2 u)ۧs}>irX;M9w Mptym1vv$$q(& j%\/q ހk=Ÿ~'?Wn8+!ś;h(T4-F16ɰPf.PV6=!I/vGP>C9\t IlK=TzvRFDuQABv"C("L3yRJ BrKσendstream endobj 36753 0 obj <>/P 1106 0 R/Type/Annot/A 36754 0 R/Subtype/Link/Rect[129.600998 593.229004 365.256012 612.908997]/Border[0 0 0]/H/N>> endobj 36754 0 obj <> endobj 36755 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 36756 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 36757 0 obj <> endobj 36758 0 obj <> endobj 36759 0 obj <> endobj 36760 0 obj <> endobj 36761 0 obj <> endobj 36762 0 obj <> endobj 36763 0 obj <> endobj 36764 0 obj <> endobj 36765 0 obj <> stream q /X1 Do Q q endstream endobj 36766 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 36767 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 36768 0 obj <> stream HWmo6_AGRɵhAEpBjv%WڕyÛwU7/o~xW~:3&ID*ѹ7DEt;TCٽnmW[ͷ(qG_o] )6IRQ|<-&O60Ie9n7;zl>l^Jtjvi}0(+$KXjMĈ#,H'J< V~HNDeQZp~JK1e) F:Q PR(bCeP!yjbثbثf뀽f뀽f뀽a؛a؛eۀeۀeۀ}ư> <`3}ΰþ "`_2ˀ}ɰ4+R1Rj Q!{jZjCTȞ6@16D1*FԆ(}ZŨŨŰTRjZjZjC>PbTKmbUj Pj Q @Q-!aV1cRB(FԆ=!*dOmbTKmbՌj Q @Q-Q-!aV36D1jF(FԆ(}ZͨŰTRRj5ZjC>PfTKm06D Pj Q!{jCTȞŨŰTkRj ZjZjC>PaTKmb5j Pj Q @Q-!a06@16D1FԆ(}ZèڎeTKm SRBԆ}eiD 1zlFHG2L2exsﺫQ6[42Ug"MRYh3nΉ:QJA9:Tsctx/AeWǻۦ->aKL[Xo+/(cD/ ]ǚ" ;ZC ծ/M3u>,9I2;k$&p#n&Tx/'b)LC?5p0xN<9 w0&&&:/L/g ťJrd s}4!4 oms"7Bhq̀=z'v}쪡몣'7<r*. 1:v.YqL{za>SNml݃ԷG-.G[m4n9fdϥ^ /`7|w7<ݧkߝj li|(<;rƯofm7&G 3~lGACuNe!Pf$@q#VIB yxlyK/WؓoUIZ%eso!!+(Xa27 _z[$ϊżt]\ t~CWiQT7%Δo~Z+}T@6}='4J nkԳDjr)TaOvOB%iA)vƩR"l[4VijHA5EZv}sCUzߛc.)N) ^`10>OZ܃l#NO Sxa?[ bXIJ.iy <֗@3bSw*$W؅c8zH>ꅅOs?Tpo<0*ȧm]A{ bq஧Ω?'l-) K7^&0>xF}'UZ}uP~v{2Z@n28[z HC=є- 5TT=Tvuڸ˵C Yq~}ti~e,IMKgAid=0E ;uw^њ-SM's꽗W"cc,q5T;8 zV⫤&X`ng8>ޤt} 1lKm-2I;/{qDJL|WڼU?镸 b>tC=< hӞdvodPJ9spl8ePpmk~sJ!Nfš ؙ%S &Տ$OE1xb UO3O? ~"V>7vʭ/R0]k]SS% ,?V0eZlj[)"ųCR/1ςĤ6ߞM;]?a &|X8D=%bwpI ~f/Y< J4ҿ r9Px`ӈjlgBM+NZf%ۭɗT OFUI,n+iJx/js1{!cXi5')V߹Nh{x^]0®m1z\}h: m5fю_-D!?M  3>s[~Nd݆,jbcoF[%oͶ}>.kQ-0|%>$l."uam|A֦C"$-^# _'vnzDxq*d:sTeg&>u6H]}D?]qZc+6_[03 y!k,5z{\ f1mWJm׌7^Y)pb anBrf4I}=TR^N0ftP/u/XԎ|,5{}$&|HzxKr:f-3EDdjаf(seq+S3RI{}{ W ).@tAn,׿m?sV~d]mN ]Ze6Rr.*] !;‚odq{4ڥ>M!>N2S/L!3(& 7V*Jé%ԑb*`̂$ A{㰱~J+LBb )$t8îb$eֿcSk;$Q5\+ҏ|z|$΃כ9 'M?-iˤӦ?/C/}/bXr z'MhEi \Yx?]n(Hʬu r _ޢQ{)|WB&K+':׮}aԨdsS9аf˺BDĺ$.ӇȬQ0 ^a}߯)ȧaŽn I EF.2MiU6hF|khGǮpJQ%=>W,:@ўU";**տ;6?@05_V u[ЄQtrcXF:.KpJJVUv~`lM7ahº c\dIsIV e - T%E ,x ̲懫2dtl:(EC R8N.Oo_xZSVOp2MQ@n[xbqrp;뗦koU%zΣ^QUxo 0j)iJ"0%y3y.2(ܧdVA L!-}yV=*f at91 3U >q-]qH'i܎E4xKv:&Љr`2J7~.*rQ%ߌJqdYlu?*YbYTT`p#Uq L'"DpB[1F(j ym{Mw&VO?Wr 1]L 9LYoscサYPRu.c j@}_>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 36770 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 36771 0 obj <> endobj 36772 0 obj <> endobj 36773 0 obj <> endobj 36774 0 obj <> endobj 36775 0 obj <> endobj 36776 0 obj <> endobj 36777 0 obj <> stream q /X1 Do Q q endstream endobj 36778 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 36779 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 36780 0 obj <> stream HWk6.`>D#@INdH@RKr%9"e2:>${.e7O޾}ysϞegd̊r\)TĊ~ VapޕC]lwmWzUU{>epd_D&(`$, $ud6%d}~}w!\<*Y݂Ѻ pu3?7e()|NpX"%ԧPy3B}>'P{ B}/gaZNŐw1`u1d] YzZCs-'\b"{k] Xk] Yzϵp!P﹖u1`u1d=rµ.,BZNŀEŐE\ ׺k9ZAŐw1`u1d] YzZCs \b"{k] Xk] Yzϵp!PVu1`u1d= µ.,BZAŀEŐE\+׺kZIŐw1`u1d] YzZCs$\b"{k] Xk] Yzϵp!PVu1`u1d=Jµ.,BZIŀEŐE\+ ׺k%ZEŐw1`u1d] Y".B ; Wub.p X2Ͽ8 Ӵu1z1 O<J6lsw{akyYΧϗGK*gEAߘTi iG UZ(l޼yluԟWJbY.W"1v~:Ŋ|b}j-Q9VĎ&.Dɩa. vH,xKYT  ,7aiC1oöLd̅E^OnrΏM;1P$ FQ2U۵+ؠڮ|)jci L8?'uބ0S74mlT*)HyikX%6zm^ꨰT鮪Ϝqq'E%|&:9nG !39O1%1`mSzODfC`-ѮS)g:F-K@y6z\YbȎ;˓`a㭰bKӤexIY+q*S5ZS1pt]3x=/2h5/5g/ܘluy髿յOlɝjTif rkL4oGX|]oK^9# 8$g#>jXYgǶj˺r{F]g(X0%x+xwlc89G݌M ܔ9<4ܿnֺsKN}y1زOr5}aҜ3`chqB,{85+{ 5ϋm 3T}޶ 4UK٧Uˆk\i jk~9~謽ݚ"J ʩKNp O1ۜZ Ю^3bεoƊ1lx1&#iAڻXH[lY:fvԵ 2eR(ʆ fp/;IP0,=q0$%r ox馌Qowaz=9/wA yREM*kLɂȠ=J/41%7U©q,d٩TƱ";b:261O3imS&"Զ@ͬ^mJǘgm櫓zfE yvڴWo$qW6ӫD~O,bY2L/߽~9(r鮷ln)sABIzEe8De<[OS0_hf,O,UTBm|}xGxmQ]@"~d%78-B\Zm XRKRΐlGgrϒ;EujvO/ݔnz1x˸˓;$Ħ×E_fwEe9<"'5{:/k{|ex\`%٣ I0lMᏼѾ_*zYv˭ܿM_VZgߢx̣=Nz(:!+ 뽇f?fDubK/:܌\Ojt4veXbyVX`EVX1`ŊVX `%VX)`VX`eL5Kj,S,XN +,^j,^j,^j,^j,^j,^j,^j,^j, ^j,^j,^j,^j,^j,^j,^j,^j,^j,{r/5vir/5vʽKރK]rA.R Rc`{{ T=ȽX*^j,{r/5v}r/5vir/5viVf,1W:W)8RGÇ3ݪ0/]ao^p Yiꭽ R+orSv-(r*۫~1*h?jvyW.M6n6F_Qf賢j uW"tZWLmyhZq(0`][H:Y:ܼ_>WEW4λ⥩z7yUW_;ٜ$;$cY~]^N^VZPVan˛1砊*{/"r>nEgv>14j)]SEW2lxi5ͰwUEsꄉMuQ`M$ ?>\+M-v܆.0`C4eT"KzcZҒƥ1oaevϗ?}O.]|(~JG1o~i O~yt)Op]_| thev+7f| ]fލ~2Kbendstream endobj 36781 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 36782 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 36783 0 obj <> endobj 36784 0 obj <> endobj 36785 0 obj <> endobj 36786 0 obj <> endobj 36787 0 obj <> endobj 36788 0 obj <> endobj 36789 0 obj <> endobj 36790 0 obj <> endobj 36791 0 obj <> endobj 36792 0 obj <> endobj 36793 0 obj <> endobj 36794 0 obj <> stream q /X1 Do Q q endstream endobj 36795 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 36796 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 36797 0 obj <> stream H|[oV+xT84υI\Z$hń>XhD]yWA,y;Kڲ/7__{7o޾WLZ8s&|:ѯsYӘn7Ck6k?;ssVEeJHbJSɓTr͡5˗.MvHZEpq '{FIz;( rQ"9IJmN,' _~$4?nt{~|̃~lMT,v)9%?2&QJL)xI)}9eT (Z^jD9ީw*JAz{ޫ*}JJJJJJJJJ_J_J_J_jf-Z#VjLR# LԘƔN/5J)^MS+5@z5LԈS+5@z5LԘ:0R# LԘ:0Rc WSJ(0Rc WSJ)^MS+}J)^jDS:ԘFZ1ҫ`jHփQ`jHփS ZVjDS ZVjLjj=ZVjLjj=Z1ҫ`jZ1K(0RcJS:ԈS+5@z5LԘ0R# LԘ0Rc WSJ(0Rc WSJ)^MmS+5J)^MmS+5@z5LQ VjLR# LԘƔN_eYп}.*{5udA83YVj-~hne[[9ASG*,t3u3˗ytK[,u_Gvv~NO3T"ÇM}< }TN^_H,݇$E>c\ ÷荏醻]wt |"cmf3O6?Ttp~~w,gu3eT (WP^xTy+U^ʔW2\y+W^*W URy^.^RcJ{I( */rKށK)z@RwRc x;{1TԘ^^jL/{z/^^jLi/ T=xs^^j/{z/5IoKރKMzA{$RR=x{{T=xC^RcJ{Iw?z@ƻRRx{VTx_^^j/z/5Ā}obK>Kw,z@;SKj=/XWr+$+ǍMoks3N_SŁ7pdzI^dǡ ְf{\-6؛3WKp.[lF|$4?ǻFq|`Gf;HP+ +^JW2) xe+^ʁW U(xʫ^*W)\ƔQxYeU^x9倗SKށK)z@RwRc x;{1TԘ^^jL/{z/5ԈSKރK)zARRc x{{1T=Ԙ^^jL/{z/5SK>K)%5@RRc x{1TԘ^^jL/z/5}SK>K)z@ROAƔQRcJ{qYas).*{5uT ra\GA5]?47]m ZϺggv-CӞ9ҲWБݮ]Ojpۦom2 o9ژy8nyI粸̞zS)aNnݚۉ=HK-s*k넢u9-(d=iYEgs EWy$+B_nή^w^{_w)a|C>>N7C;ۭtWKo0WZ>m+LRx;Uwr 51 NG32KWu[M׎>R*R,Ab$d,2K=W&+=T(ċ|cacXrԩУX'bo~Nk"Fpu'0PA8MK#e{0QӼQ%JqQ@λ.uu%|,K"^#P2"$]|E FIJJߤ9i%C vwSg'2']HNw=gsp`h0v?RK^^JY.!ndhABFP*HO4eeBs9|gaa]X[yf6I@Cn4]L\R陚0gV ;iwJ>|e糮tKad0Ohp>WUcђy41iOJ4~ dN2J˶2 NY͞ I8[U!%k ڱץ7%1L0 GKB^f'ym9>8:l(u!Y ԃNdt^5X+a3G<i] ̵__^?vޟv\k&endstream endobj 36798 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 36799 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 36800 0 obj <> endobj 36801 0 obj <> endobj 36802 0 obj <> stream q /X1 Do Q q endstream endobj 36803 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 36804 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 36805 0 obj <> stream HW]o6}ׯhd~EfhȲGH㝑~/%j"k#nЌxrxy=u{u?_~xWB/Mɒ9sIhQ*NMUCym &#'\?9ad}S8XG$Z2be%qU]?4ΈrH.^qEWo]w߷5OӤ1<Ͷa"S#2[!JNFO>SrM 'tv3 `W|,J9.縄èH)Yr),rVyBXvr),zzzzzzzWzWzWzיzיz7z7z7zzzwz<ӦXWpĵ)Y\}yV>ŀ6< Q#M1BgkS XkS̳k9,D}Z6ŀ6< Q#M1BgkS XkS̳k9,D}Z6źB M1էצgS̳r),ĵ)Y̵qmy>s@\bB\b\+צg!3 ĵ),ĵ)Y̵qmy>s@\bB\b\+צg!3 ĵ)qmyV>ŀ6<+WbO1`!M1BgkS̳k%,D}Z6< QV"M1`!M1BgkS̳k%,D}Z6< QV"MPkS̳r),ĵ)Y,~OKm)LCJ$DuW^k o ;–pKq^JI]:UKv]ВNK+c˖YZUsM.>/JNQRvRmg*Ŋ@\tZovh]7Ƚ눵VZ1J*aJPъq[JM'C}xbahö́ScdxKIYLelƂ̄H9Ʉ%XpJX%NYg,dKR.g9KTaJOk?#q#Vj/X+~ɚjBPj`,3V} _MX V} Y#JH>9?9[.VBҀ#[(=j5* qP&3"-; }Uu|H xە4`]O|j*HW]7dzSwM?yqq+ڎDVlX̤ɆvKxL'@9׸AlЁ}sƎ)XGp zPod)NçS0>%rp销.=t},0qlux̹+0rWb47}VIGC e[f?#?zΞi4B왍sg;q❇0CGvKr r9 y(iL!a gքSkOsV ^'k/<]PNǹF(c.*>ʞ4)nlR_ؤJIxaRbiixfE&f& X<քE,aMfR1=_ &VФRv}GEi|(\H7)dܨՉꔌ[;kUdҪyAzĦRBWM-sAwqc-e4rn$wh{@^W^m(}ҦNئ.Mu ¦>4Zlj-l(>ljmSdS~| FN5nx GN N$q#P(\R90-ɻ~hv6dᅮqh:m Q5ZpWLհc;g8+KR?׽rVx 7G" j7MxcvhzՄл):Pa[@m?E$^MNjQ6ϴXŨT_󢛠~&Km$#,6U fu<rADe戾<ԡ\+cDq2޸zQle4>:^\vgBV^$CJjӜDI!<>SX$O,Y?o<3zδz`iEFJq~K,g{ؚM\ mj'΢;rtz5gu6!0dc֟5zY (s;o`Yr| +,` q~YptHj'&jDvoXHH?CS sSߚGy*^|ƫ\Kne{5^LᕀJЛk];.@y$0k0u:mcev[X\y\[4J)r?剟_'4ȯ3O T rV;*ѽLۘOz~#~ݱ}.޴y6 =,p0HgB.n1=ޓi'NU@%yA$Z\KB2Ѽ'G'cЦ,YuՋ]3\@a#wai8Db!i+Qv))⌰C&ykRSf 5[!mٗ, GTҩޞ~7a_7PL6( bL:w}M'kQADn/bc:x ۈ\GR`P s@)9Rrf8_:N-Qh'Yc{>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 36807 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 36808 0 obj <> endobj 36809 0 obj <> endobj 36810 0 obj <> endobj 36811 0 obj <> stream q /X1 Do Q q endstream endobj 36812 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 36813 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 36814 0 obj <> stream HWiN dja_<@|F6 b085#Z}y$y_u?qՐ/n{ ˗޼vt,". 9 |A'UN ##qn&;CYeyTYB̹}yqn7 lvNA<$M|v?IYp幊՗GG0")&!8\]nlf ~R*>-_Vy4_5-<2>n4<¾w0+}/'> VB̝(X''R&&1a@Mp P(æQ Aɛ6@q=s= KK+++{b#}},>b"C}->G{K iִi޴ Qi(i(iZӦQ{KQi(Zִ Qi(ZִiR-GTkִiR-GTk4 ao#5mBTk4 ao#5mT՚jMFM՚6ٛ6ٛ6@!5mT+՚6B[jM՚6B[jMF!- D PjMF!- DMjZ(DMjZӦQ{KQiִi޴ Qi(i(iZӦQ{KQi(Zִ Qi(ZִiRDTkִiRDTk4 aoV"5mBTk4 aoV"5mT+՚QjMFM՚6ٛ6B{17hEx5ɝWvþ f焭9$LJʸ$&w>VuVduD\o:c՗X3m~vxLeK),x.7&jynי# (vDCn6M<>tNgWOymXIsum\[k?y}_qm}X~CE;`;8YmxH3Ą8 -btʸɊc )6æ?6dI"-,>]YqsL-~%= XX ;nM-tUHa<&+=˪{oJH/=KcJ)@KlRgg'Snb 8;)k\qάUD͞6=An&!`"O-lR?1*6[]L xɾ]N Tp\̊(}fET, \!ܬ)!j,BM\I8rrfU,iJɍ4y9ʬՕ( Z[Zi%{ʚ&-HO1=w&H]]|jAլDwIqAC._N/k>-ļ\1* /Q7ܹKQӰ>$1  Rkp7 $OF[`=Φbi՟MF9u&(H3-GP0Ҏ3Pe>h8nG4 ,$2eUJ 纬<>zlÝznywN\8orQZM~0Q"}qt 'B|OpV|3\ C`u k)Tɝ{/f:Cad,@m{: ,/x??<|_ec v|̑Q< Kh|A~7c{M=_I\ z}γpmYal/1rU~)JvQ}ZFly 5{~Gb< cuWzivp$^F>*͢iADLRٔr>&)5IW7 >:K 6ca&Fyzт~}{}=Ҏ 9T-s6?fn{\6Ep0d6mfs $ |gߟ3aBB˔KLIf+l( g=pl՘<ExPILJFjMzK ckWi?5R)ڍ͊ݿԾʳ_PSwR\Ϡ@zX'VՓȰxպ+zV %dKi<#Ї_!:CJBq:eôs;<y!\SvC}۫YBcr>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 36816 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 36817 0 obj <> stream q /X1 Do Q q endstream endobj 36818 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 36819 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 36820 0 obj <> stream HWmo6.2zEIs .wE@@ŷɿHlZ<3ëߊ~ͯX~嫛\ /53DXC b` ޗu1T_ʛUSjUpV>x 6bmAD,g9(c&e/6G^Ä8~;oJ\fa-]qtpy;3Ʌ_XL$c4 y af "d wۀ?KD!>ÿLjX։2m<]6c}L0"R %B6 .O% c/ cccc c cc}L=1>'c}JO=)>اc3}F<9>{O-5$Tm6@6cA Pj͠j%Zl3(ZIE `V6"{j Pj͠j%Zl3(ZIE `V6"{j Zl3(=P- gm"TmETbA=*B(BfP{OP-S"Tm"TmETbA=*B(BfP{OP-S"TmM bA Pj͠|fP>{lZl3(ZM `V6@6"{Մj͠j5ZlZl3(ZM `V6@6"{Մj͠j5ZlkP-E gmyEbmj#>i&fhŰM~Nxp?Sw~ [j#NPn~b|\4'|S6gVO./^1Hk11`q%RI[$`nq}zs428i҇p۵pָNjvntK1wj;wCt͖-.GC{P)Y.jfȭktl;WN[sp([gݕ $  ӻ]׉u%njd2\}z={.٨8<+jk3͸wEģ\t8uG>WjsP4PFW3gdprFM5My~,ݔ)my?Φ7}"Nd89@_7bu6APmwl"!80-̡I3V/JI. ʑ=>)Dlq"~lϠ//e,żHJ\f=Ϫ=~dX MD!̓*A{ 5?wuR'<^i*-_ho "N4NZVX b%HpWL˾m *&nD'RI4#,Lf~4DŽZmdߙ21㺇qS:6s I8gmHb'] ^kV6V-7*.'IW\ nݜ)bA  ޑV<Ϣ ^,efE'QHdc"luBf薝0fbp2:q_Avy"&'ba Uh#ؗS$pv.(]A9jwS H4+fSp޶& | }[cɖShZa*7%¹r1MA<˺vc{f=V[_w[RM_Sg -hZd taQzBZ23VqLA!d.VW 0t5x W;bEJ'DQDRq-Wv1_[4RmhtC.<{RsE _~gaZKD\SaB6Ad3(x29>VM.$`U´{!PɌ|`8q %*mI2o+0/~/Q+ Q[Bq,< )H(^ra7u,F\cbc߁Zz%i!Zྣ[V&YA )^˷^%u[1 XT3f5u:I8LArkz̭mAwXlN3ys\vaSOR9bbpEd1b1 M;D&dH9 ¬%Io0tH`dDg1}T`#L郤+_ߪkq ڋ.7L:(([Zeu+U#;GСb$b@샒rP+وS= P;ݨ5^L tF%S!{44xIA{p1zDB=<2GI^n{)xۋңcZ:Э>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 36822 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 36823 0 obj <> endobj 36824 0 obj <> endobj 36825 0 obj <> endobj 36826 0 obj <> stream q /X1 Do Q q endstream endobj 36827 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 36828 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 36829 0 obj <> stream HWkoF_1p )΋\s`-a+JqRuK>R85w/?&3?R[邉OsgܧљI>MĚ$7u>5oۮ]7}׮L&\9sK,˥5ۤA2S4MfNWͪosla4^|^?wisy9gYj]y`.zmYfUU鹍L}LHf 5/Oy663Ho?g$SI)+Nb<$WI%ҜJplIbIXjKzVp{;^W=p>A}T#pG>s>s KK+Uf-։{ Vb%,^b{ZR+1f*Vb{ZR+1f*Vb{ZR+1f*Vb{ZR+1f*VbăJYڽĈR+1ficv/1bJYJ{ZR+1bJYJ{ZR+1bJYJ{ZR+1bJYJ{ZR+u@j%,^b{1K@j%,^6JYJm@j%,^6JYJm@j%,^6JYJm@j%,^6JYJm: cv/1bJYڽĘWiUUdvN,kI5 uu3y,ɢ/͟m^Vw7fӬzov?2uwtm?IUin?Yw$K8\N0&!y +YfŪKiVZAiEVZQi@+WZ9ʕV UBi@TZ%*V*UJjLkIYZKbT-,вJ-Ru@KTYJ ԽĘT;P;su/1f-UԽN@KY@Kսu/S7gI-^bZ h%mRuAK.ރ7\@Kսu/1n{^bJ-UԽĸIZ={qT{Ph%֒ĸZ{qcTPh%- Ru@K>7#@K}u/1n3^bf-UԽĸZ{q$,%1n  Ё'C}U5PScs1'+|Zd?wx6n6zs]ӛc߮s]r]]=5]zd p\޷;sچl8>~ zFoz6G%kiDW4:~L0ƼsoM}s9wh&c~^% أ䦥uvn0q?s'{d4f2Ow>E!*8U7[4-qߧ4ݬm:nхs쩜D'HfpxEUy܌׍4f?|a&cq'鱩{v9_H:>"Za*͸RLB$ 'EZF_776'"y1zq߬v>bnb(X*?sa2tw~n7!n@h^ixK 7M{;^͸Om7zзoI2֫fnȣ:ؕy13a<Ҭr򀮤 K<t*QVݸt3$\ ۻi~8^<=|ȝM{QHϻId D0q|p^vlj]SҽmolU8:R|tMbf-ӒQ2cOm^DrY@9-0P 8g]/8rѨm.粯>5j=lixn{1NmEX{%̈́tp| ˝3du(9t[O X Θ\oqtDw8촅۸cw4^>ʔ;ۤJ {Z-> Nna+̯ I&|o7;v d;N tfsDɡ !0C%Ƭ VZAiVZQiEVr\i@PZ*V JURiU@RZЪw%1fi--,вJ-Ru@KY@Kսu/1f-UokPS\,-jnZ66-Z4ClrDX:ƾ؋xι_p5] p5] p5] p5] p5].kewq\{貸w\3.eqf\s͸@Ž q.{p5].k,]=׌ tYܻ{貸\3.ks͸@Žq.{p5]k,==׌ tY{{貸\3.eqf\s͸@Žq]\kω4;LRM+q^$MEoh3_]tZdB7|~ /#˯(K׿UN%=eC78 מS.㾣\łA ]p2D~v/.+( >|_\-}7>[ #"3`r9OQU!򢡟uOERu#$LJ ۿWX`j/&tt ]S`\:Kpn۞$B%.yߑJǶkp>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 36831 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 36832 0 obj <> stream q /X1 Do Q q endstream endobj 36833 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 36834 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 36835 0 obj <> stream HWko6.`?ʀ#=XdlТ" gh=&&CҘ.C\Kj/ܼ}__y}H$&HV$gy12#颔}NɎD `mD"rǡ)H>Yr>,JCiV|픆} X Q QQQQQ/Q/> g,P!@}9>"P_ @}/% ԗ2P/2P/g)bZk#4+TcB\c1 f!2ĵ>Y q qi>p-C\c\f!2ĵ>Y q qi>p-C\c\Xqĵ>YzZӬPiVǀ4 Q#1Bk} Xk}Lk9Z,D}Zǀ4 Q#1Bk} Xk}Lk9Z,D}ZH 1 f}LB>,ĵ>Yqi>p@\cB\c\+f! ĵ>,ĵ>Yqi>p@\cB\c\+f! ĵ>FZӬP qiV4+T/) )wݶѫMt_8dP&$6wj:7r۾vGA pdi>o*/YeI5j,IYVvjz^;VnI mUfRœYa:3DγP WU76dwTq+7,6fx&eʗo_o. |7֏]$+e8y':~ݱVqT-]&RKs^/5a}5T#L\.hzVLcO h:DJu9MNcܝI"ft9UnfNAaktY9N>*|YPVЅȓ2t Ž >V- n(s\vd|#x7f(kE KutC j\ ϝTNeĸHrF3oTks@)מ~@:HG4gP+z% (ZSj >b9˦ǔ}H0N݈ОW'޶'7F،-8ʳ"ѷL\X'X[{xXJmW99=Mtaǣd4ݙr>jws(")l(A;7lURje3㣛x^ߜ4+uOc7btpi$/#x]a2C|1*[}/2K&^oLGtE/ w?*j >nָrogk IJvG̿'J s'2O9[$eJ:dJbOj;7'S ~zczmyײ,*m]̵}peǨcqs_ߏ%;s)((5}vew?| ׾ڻ^~3* 5?=x}eiw) `[C'X,DXRDeۄ.)ӭOI뼘h%T;Luh`ae0ŽoKbs_ - haVlQS\P̖4S1>¡6}CJFl{byxYC{;2˃YBh9&)J)W;?X޾I$E. qص >i͏mb[L5fs  `T4›&aeih[5=K giџ|Y} A:4?g4jzjp<j9z Q :fv6tƣ\qhÆ~$|޴#IT7fRM=T ;+"|] y^>.:Hƒu+^f98_cKY˰jO?=]DdBq:i_~,k^r%-LQ̎ %BցwZ1LZHvYM"2ip7/wHh~O?y-q{&o^VkuR-ᄑ0:3a== wIeQ$ 7K JI9A9c离`q;6] rx/'0R"Vi|Zً.n Zx<(m bɿٸ-1A9_̮5gg|#TTeJ%0WlcÛ:={9c6z|Њ_u9jr8 1 БGG5- Z-,}</Ʊi6KvUqϒ0,yfYURg (ʰ|5JknBz:B䬬T|4Y & $@]q)&2$G7ߔ"Se^M KczkdxV!_h`FB M7la0&bJ?5M3!a'P"0EBg6e| ѧ7Ucm/{xɨrӂQ5I,UWAfe>-9UT(._P%yʵ^SZ"sKwnQ~"=DB*3p[=/\E*t0u PƷpͥv,7̢E@+`B *H !ĮMRp-W]BRam%+Dm#EX<uLJaf[Jزl;/jri.1xmW iwി>c 8;aK׳r;UKIJ7I{>̴At!!Yx H.y!^BrW""Sa5 f蹾~KED(̴g%PIhR؃5!9 &3S(U (e\I\F"Uu >֞_SԢIsLA*3xhSO6P" ۓ]*΄BsZ?@<8z|\ETz fPP3@?DsP mEFR jZCADXDvXc4CP$QتP&+Z}71. JC QMl,܊X8^<-vLL o--+=ANlFm Â!(pq"7":IHר;|=5GX=u;,Ѐz^=_kKT) +PCTcLQW$u1N:V<+7YwliDfaq~?~T>9_H3F%{o%OT{'ۤ5DIΚ]zPy^Et08j2nExl [ i|HZ@^űr<?~/+4endstream endobj 36836 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 36837 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 36838 0 obj <> endobj 36839 0 obj <> endobj 36840 0 obj <> endobj 36841 0 obj <> stream q /X1 Do Q q endstream endobj 36842 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 36843 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 36844 0 obj <> stream HWnH}W (t/@ Y25X <@X%yi9ؔ]$=0,uYחw>\^..E`)53^V2gUi$_lWplÊ_a?Ͷ:ԛ7ɾ<B|VL]`֔gm1ޭ-6XnK!ZW[PdߙGp~`rfEP&w[3<7E0)&䘐`W(!*_.JeT]|j$ˌ$ˌ"ث"ث"ث&댽&댽!؛!؛!؛%ی%ی#ػ#ػ#ػ''} ؇} ghS۶jSr PjSr Q9(B QLPmjC>S$TE6!`VMm"gjSզ6D3JB QLPmjԆ(}ZI6!`VMmBMm٧6@Mm٧6DSզ6D3*B QLPmjԆ(}ZE6!`VMm"TETզ6D3*B PjSjԆ(}ZE6m M6!*gE6!*gOm"TET զ6D3jB PjSj5Ԇ(}ZM6PmjC>S&TET զ6@Mm"gՄjSj5Զ- Ԇ}jԆ}jCT>!8B|VL]gB2-ngM}&Z\PҰŊux l=fFH2ΪaHgYCB%J?/J894sL9kY0 63cfޔہ^dt[t&D\a0nޏ(%ش.$7e^Uzkp0$$i4m0B"/ "3w𺶶Ϸv?U<Џ .[~ہeB$O(K7"}o}WOǸ '(/񕑈ret n$ ~|L]Rbs"ͻv<?BD3&ߩ ]0A ֗rӹXrT,D_XO:]eIa7UmzYmh1e Aԧ_[oBAqIzaӡ>Ӄ_N.!EHJM~#Oy_/wL[ɗ{Ju/WuդSR%ץz(ه&2%eNmtDZ[nr"vv[6p1t"[.o.zUlu%K.ͷ FIx7inaܴڴ+ɸRUzj%9ޱD͇n$5 \KL&24$s'0yvxݖ|C߆CJ:X}p*(ʹ6Zѱ]˦lߓ̀t.*K{.Z܂g|]&$჎-t}d|_=NRv9y3F ';%O{Md4n<֛nBzdM hlA:hƁ}:^Z}!淛_^ (a:K5`^4?QTi$Ec64Ɔ/rE#Hhw'L^#;xI$#\$|&t=ߡl^t)~:dw9P>s~ 4MKx=ӗI?JÑy<Hb]@{r1>mu?M^ݷ َďNl/}8FFBlb'%v)0 ˤ@ئAO.cn ?F"}J*{P+/08 ;TD>T5b$_ k|9.>]]^,W_DN|0f)l FGhOj@/0 dċ}4'p"GG#vݡ]@&.8yroMgo7tq f޻Jk`=&9ړ?x\)1 $o~?#a+U+k!99],> WSL樄/Whj 9q#:_4tN4#Zz۸=BGP}Lc%bKEKa˩6H.Kr^ % 6&)B;gLhI̢ bnBHh .ZTtBA= ٔ20 z>.܎@_PuAd|T낫t(p/g$Ä>REaW_(FdD{PXJA=5FDW 7+rE0Etmє:fA jDDÑB\rگ.gWO5ߟ%;:y_WcWMI$ag[Xˇ%Psԃ'p# U,I~ Sy !KM(={&l rkzt}嶐X djb}|bS<)cIKBvFچckH9r+uD KX@I[$ C?P>6=Y(W6yvgACt:TAÓqeaBC:ąXOÒ!B֒ kmq 4]I.Xb:.)h8@ _iЪ:(x=Ҥ@S0,oDjY%^(?o0eQi%10hBDCo?Xy&|f۫a1>sp$d'0Ά[*!ұmO[mSm{b_ ms0YJ2'JKҡy_w%v+RʸZA÷9;~>_v biF%g4 Ea"d2 [`5b(@U1y=qt482T#jmZU<ޤV+gp] R!$5] -~?.}ḾU4:MS)eNJ(ŸIx )*BHzrehN\aqM K?\H0#{b!**@?>yr>!Bld.\PyZY*,gG/^rcԄ+)9x7405nd7FPJuYFdx^@Fy)&ȆB^ص7iw$ux'o /4U}4q8~yy)ENǥd=ul@$gtk;rM^85ԒL{i}uw'.5i3Wa pww?ѾQ"~_6X7NWv({, 4en-ㅑ0pxqT M||{tsw幔Ъ6UW_{]܎Vj< :J84DQB՞B=&q?wOm&eNU*]dҠc-h,d= e, ,xm`]&8=V;wF!-.$XHZHnQHyh3 J\H4z?c-C?xo>SOcơ؟^f;]N{:r&j3EZ$Hٴ Duۧ]k>/P 3547 0 R/Type/Annot/A 38112 0 R/Subtype/Link/Rect[167 669 171 678]/Border[0 0 0]/H/N>> endobj 36846 0 obj <>/P 3547 0 R/Type/Annot/A 38094 0 R/Subtype/Link/Rect[172 659 181 669]/Border[0 0 0]/H/N>> endobj 36847 0 obj <>/P 3547 0 R/Type/Annot/A 38088 0 R/Subtype/Link/Rect[181 659 187 668]/Border[0 0 0]/H/N>> endobj 36848 0 obj <>/P 3547 0 R/Type/Annot/A 38060 0 R/Subtype/Link/Rect[189 659 195 668]/Border[0 0 0]/H/N>> endobj 36849 0 obj <>/P 3547 0 R/Type/Annot/A 38049 0 R/Subtype/Link/Rect[197 659 207 668]/Border[0 0 0]/H/N>> endobj 36850 0 obj <>/P 3547 0 R/Type/Annot/A 37615 0 R/Subtype/Link/Rect[209 659 219 668]/Border[0 0 0]/H/N>> endobj 36851 0 obj <>/P 3547 0 R/Type/Annot/A 37613 0 R/Subtype/Link/Rect[221 659 231 668]/Border[0 0 0]/H/N>> endobj 36852 0 obj <>/P 3547 0 R/Type/Annot/A 37990 0 R/Subtype/Link/Rect[233 659 243 668]/Border[0 0 0]/H/N>> endobj 36853 0 obj <>/P 3547 0 R/Type/Annot/A 37428 0 R/Subtype/Link/Rect[245 659 255 668]/Border[0 0 0]/H/N>> endobj 36854 0 obj <>/P 3547 0 R/Type/Annot/A 37422 0 R/Subtype/Link/Rect[257 659 271 668]/Border[0 0 0]/H/N>> endobj 36855 0 obj <>/P 3547 0 R/Type/Annot/A 37416 0 R/Subtype/Link/Rect[273 659 289 669]/Border[0 0 0]/H/N>> endobj 36856 0 obj <>/P 3547 0 R/Type/Annot/A 37411 0 R/Subtype/Link/Rect[290 659 304 668]/Border[0 0 0]/H/N>> endobj 36857 0 obj <>/P 3547 0 R/Type/Annot/A 37405 0 R/Subtype/Link/Rect[151 649 165 658]/Border[0 0 0]/H/N>> endobj 36858 0 obj <>/P 3547 0 R/Type/Annot/A 37399 0 R/Subtype/Link/Rect[167 649 181 658]/Border[0 0 0]/H/N>> endobj 36859 0 obj <>/P 3547 0 R/Type/Annot/A 37394 0 R/Subtype/Link/Rect[183 649 197 658]/Border[0 0 0]/H/N>> endobj 36860 0 obj <>/P 3547 0 R/Type/Annot/A 37388 0 R/Subtype/Link/Rect[199 649 216 659]/Border[0 0 0]/H/N>> endobj 36861 0 obj <>/P 3547 0 R/Type/Annot/A 37382 0 R/Subtype/Link/Rect[216 649 230 658]/Border[0 0 0]/H/N>> endobj 36862 0 obj <>/P 3547 0 R/Type/Annot/A 37375 0 R/Subtype/Link/Rect[232 649 246 658]/Border[0 0 0]/H/N>> endobj 36863 0 obj <>/P 3547 0 R/Type/Annot/A 37369 0 R/Subtype/Link/Rect[248 649 262 658]/Border[0 0 0]/H/N>> endobj 36864 0 obj <>/P 3547 0 R/Type/Annot/A 37364 0 R/Subtype/Link/Rect[264 649 278 658]/Border[0 0 0]/H/N>> endobj 36865 0 obj <>/P 3547 0 R/Type/Annot/A 37358 0 R/Subtype/Link/Rect[280 649 294 658]/Border[0 0 0]/H/N>> endobj 36866 0 obj <>/P 3547 0 R/Type/Annot/A 37868 0 R/Subtype/Link/Rect[296 649 310 658]/Border[0 0 0]/H/N>> endobj 36867 0 obj <>/P 3547 0 R/Type/Annot/A 38213 0 R/Subtype/Link/Rect[151 639 165 648]/Border[0 0 0]/H/N>> endobj 36868 0 obj <>/P 3547 0 R/Type/Annot/A 38205 0 R/Subtype/Link/Rect[167 639 179 648]/Border[0 0 0]/H/N>> endobj 36869 0 obj <>/P 3547 0 R/Type/Annot/A 37846 0 R/Subtype/Link/Rect[157 629 165 638]/Border[0 0 0]/H/N>> endobj 36870 0 obj <>/P 3547 0 R/Type/Annot/A 38175 0 R/Subtype/Link/Rect[166 619 172 628]/Border[0 0 0]/H/N>> endobj 36871 0 obj <>/P 3547 0 R/Type/Annot/A 37558 0 R/Subtype/Link/Rect[174 619 180 628]/Border[0 0 0]/H/N>> endobj 36872 0 obj <>/P 3547 0 R/Type/Annot/A 37634 0 R/Subtype/Link/Rect[182 619 196 628]/Border[0 0 0]/H/N>> endobj 36873 0 obj <>/P 3547 0 R/Type/Annot/A 38136 0 R/Subtype/Link/Rect[198 619 212 628]/Border[0 0 0]/H/N>> endobj 36874 0 obj <>/P 3547 0 R/Type/Annot/A 38126 0 R/Subtype/Link/Rect[214 619 228 628]/Border[0 0 0]/H/N>> endobj 36875 0 obj <>/P 3547 0 R/Type/Annot/A 38110 0 R/Subtype/Link/Rect[230 619 242 628]/Border[0 0 0]/H/N>> endobj 36876 0 obj <>/P 3547 0 R/Type/Annot/A 38092 0 R/Subtype/Link/Rect[184 609 201 619]/Border[0 0 0]/H/N>> endobj 36877 0 obj <>/P 3547 0 R/Type/Annot/A 38086 0 R/Subtype/Link/Rect[201 609 213 618]/Border[0 0 0]/H/N>> endobj 36878 0 obj <>/P 3547 0 R/Type/Annot/A 38057 0 R/Subtype/Link/Rect[169 599 175 608]/Border[0 0 0]/H/N>> endobj 36879 0 obj <>/P 3547 0 R/Type/Annot/A 38041 0 R/Subtype/Link/Rect[177 599 191 608]/Border[0 0 0]/H/N>> endobj 36880 0 obj <>/P 3547 0 R/Type/Annot/A 37735 0 R/Subtype/Link/Rect[193 599 207 608]/Border[0 0 0]/H/N>> endobj 36881 0 obj <>/P 3547 0 R/Type/Annot/A 37727 0 R/Subtype/Link/Rect[209 599 221 608]/Border[0 0 0]/H/N>> endobj 36882 0 obj <>/P 3547 0 R/Type/Annot/A 37989 0 R/Subtype/Link/Rect[161 589 167 598]/Border[0 0 0]/H/N>> endobj 36883 0 obj <>/P 3547 0 R/Type/Annot/A 37426 0 R/Subtype/Link/Rect[169 589 175 598]/Border[0 0 0]/H/N>> endobj 36884 0 obj <>/P 3547 0 R/Type/Annot/A 37421 0 R/Subtype/Link/Rect[177 589 187 598]/Border[0 0 0]/H/N>> endobj 36885 0 obj <>/P 3547 0 R/Type/Annot/A 37295 0 R/Subtype/Link/Rect[189 589 203 598]/Border[0 0 0]/H/N>> endobj 36886 0 obj <>/P 3547 0 R/Type/Annot/A 37412 0 R/Subtype/Link/Rect[205 589 219 598]/Border[0 0 0]/H/N>> endobj 36887 0 obj <>/P 3547 0 R/Type/Annot/A 37406 0 R/Subtype/Link/Rect[221 589 235 598]/Border[0 0 0]/H/N>> endobj 36888 0 obj <>/P 3547 0 R/Type/Annot/A 37400 0 R/Subtype/Link/Rect[237 589 251 598]/Border[0 0 0]/H/N>> endobj 36889 0 obj <>/P 3547 0 R/Type/Annot/A 37395 0 R/Subtype/Link/Rect[253 589 267 598]/Border[0 0 0]/H/N>> endobj 36890 0 obj <>/P 3547 0 R/Type/Annot/A 37389 0 R/Subtype/Link/Rect[269 589 281 598]/Border[0 0 0]/H/N>> endobj 36891 0 obj <>/P 3547 0 R/Type/Annot/A 37384 0 R/Subtype/Link/Rect[231 579 243 588]/Border[0 0 0]/H/N>> endobj 36892 0 obj <>/P 3547 0 R/Type/Annot/A 37377 0 R/Subtype/Link/Rect[199 569 205 578]/Border[0 0 0]/H/N>> endobj 36893 0 obj <>/P 3547 0 R/Type/Annot/A 37371 0 R/Subtype/Link/Rect[207 569 213 578]/Border[0 0 0]/H/N>> endobj 36894 0 obj <>/P 3547 0 R/Type/Annot/A 37365 0 R/Subtype/Link/Rect[215 569 229 578]/Border[0 0 0]/H/N>> endobj 36895 0 obj <>/P 3547 0 R/Type/Annot/A 37359 0 R/Subtype/Link/Rect[231 569 245 578]/Border[0 0 0]/H/N>> endobj 36896 0 obj <>/P 3547 0 R/Type/Annot/A 37353 0 R/Subtype/Link/Rect[247 569 261 578]/Border[0 0 0]/H/N>> endobj 36897 0 obj <>/P 3547 0 R/Type/Annot/A 37348 0 R/Subtype/Link/Rect[263 569 275 578]/Border[0 0 0]/H/N>> endobj 36898 0 obj <>/P 3547 0 R/Type/Annot/A 37344 0 R/Subtype/Link/Rect[210 559 216 568]/Border[0 0 0]/H/N>> endobj 36899 0 obj <>/P 3547 0 R/Type/Annot/A 37340 0 R/Subtype/Link/Rect[218 559 228 568]/Border[0 0 0]/H/N>> endobj 36900 0 obj <>/P 3547 0 R/Type/Annot/A 37337 0 R/Subtype/Link/Rect[230 559 242 568]/Border[0 0 0]/H/N>> endobj 36901 0 obj <>/P 3547 0 R/Type/Annot/A 37333 0 R/Subtype/Link/Rect[202 549 214 558]/Border[0 0 0]/H/N>> endobj 36902 0 obj <>/P 3547 0 R/Type/Annot/A 37329 0 R/Subtype/Link/Rect[238 539 252 548]/Border[0 0 0]/H/N>> endobj 36903 0 obj <>/P 3547 0 R/Type/Annot/A 37325 0 R/Subtype/Link/Rect[254 539 268 548]/Border[0 0 0]/H/N>> endobj 36904 0 obj <>/P 3547 0 R/Type/Annot/A 37322 0 R/Subtype/Link/Rect[270 539 282 548]/Border[0 0 0]/H/N>> endobj 36905 0 obj <>/P 3547 0 R/Type/Annot/A 37318 0 R/Subtype/Link/Rect[202 529 214 538]/Border[0 0 0]/H/N>> endobj 36906 0 obj <>/P 3547 0 R/Type/Annot/A 37316 0 R/Subtype/Link/Rect[202 519 214 528]/Border[0 0 0]/H/N>> endobj 36907 0 obj <>/P 3547 0 R/Type/Annot/A 37314 0 R/Subtype/Link/Rect[206 509 214 518]/Border[0 0 0]/H/N>> endobj 36908 0 obj <>/P 3547 0 R/Type/Annot/A 37312 0 R/Subtype/Link/Rect[197 499 209 508]/Border[0 0 0]/H/N>> endobj 36909 0 obj <>/P 3547 0 R/Type/Annot/A 37310 0 R/Subtype/Link/Rect[212 489 226 498]/Border[0 0 0]/H/N>> endobj 36910 0 obj <>/P 3547 0 R/Type/Annot/A 37308 0 R/Subtype/Link/Rect[228 489 240 498]/Border[0 0 0]/H/N>> endobj 36911 0 obj <>/P 3547 0 R/Type/Annot/A 37306 0 R/Subtype/Link/Rect[190 479 202 488]/Border[0 0 0]/H/N>> endobj 36912 0 obj <>/P 3547 0 R/Type/Annot/A 37304 0 R/Subtype/Link/Rect[178 469 192 478]/Border[0 0 0]/H/N>> endobj 36913 0 obj <>/P 3547 0 R/Type/Annot/A 37302 0 R/Subtype/Link/Rect[194 469 206 478]/Border[0 0 0]/H/N>> endobj 36914 0 obj <>/P 3547 0 R/Type/Annot/A 37300 0 R/Subtype/Link/Rect[152 459 162 468]/Border[0 0 0]/H/N>> endobj 36915 0 obj <>/P 3547 0 R/Type/Annot/A 37298 0 R/Subtype/Link/Rect[164 459 172 468]/Border[0 0 0]/H/N>> endobj 36916 0 obj <>/P 3547 0 R/Type/Annot/A 37294 0 R/Subtype/Link/Rect[202 429 216 438]/Border[0 0 0]/H/N>> endobj 36917 0 obj <>/P 3547 0 R/Type/Annot/A 37292 0 R/Subtype/Link/Rect[218 429 232 438]/Border[0 0 0]/H/N>> endobj 36918 0 obj <>/P 3547 0 R/Type/Annot/A 37290 0 R/Subtype/Link/Rect[234 429 246 438]/Border[0 0 0]/H/N>> endobj 36919 0 obj <>/P 3547 0 R/Type/Annot/A 37287 0 R/Subtype/Link/Rect[190 419 202 428]/Border[0 0 0]/H/N>> endobj 36920 0 obj <>/P 3547 0 R/Type/Annot/A 37284 0 R/Subtype/Link/Rect[202 409 214 418]/Border[0 0 0]/H/N>> endobj 36921 0 obj <>/P 3547 0 R/Type/Annot/A 37282 0 R/Subtype/Link/Rect[227 399 241 408]/Border[0 0 0]/H/N>> endobj 36922 0 obj <>/P 3547 0 R/Type/Annot/A 37280 0 R/Subtype/Link/Rect[243 399 257 408]/Border[0 0 0]/H/N>> endobj 36923 0 obj <>/P 3547 0 R/Type/Annot/A 37278 0 R/Subtype/Link/Rect[259 399 271 408]/Border[0 0 0]/H/N>> endobj 36924 0 obj <>/P 3547 0 R/Type/Annot/A 37275 0 R/Subtype/Link/Rect[198 389 210 398]/Border[0 0 0]/H/N>> endobj 36925 0 obj <>/P 3547 0 R/Type/Annot/A 37273 0 R/Subtype/Link/Rect[179 379 192 388]/Border[0 0 0]/H/N>> endobj 36926 0 obj <>/P 3547 0 R/Type/Annot/A 37272 0 R/Subtype/Link/Rect[194 379 208 388]/Border[0 0 0]/H/N>> endobj 36927 0 obj <>/P 3547 0 R/Type/Annot/A 37271 0 R/Subtype/Link/Rect[210 379 222 388]/Border[0 0 0]/H/N>> endobj 36928 0 obj <>/P 3547 0 R/Type/Annot/A 37269 0 R/Subtype/Link/Rect[162 369 170 378]/Border[0 0 0]/H/N>> endobj 36929 0 obj <>/P 3547 0 R/Type/Annot/A 37267 0 R/Subtype/Link/Rect[183 359 193 368]/Border[0 0 0]/H/N>> endobj 36930 0 obj <>/P 3547 0 R/Type/Annot/A 37265 0 R/Subtype/Link/Rect[195 359 205 368]/Border[0 0 0]/H/N>> endobj 36931 0 obj <>/P 3547 0 R/Type/Annot/A 37264 0 R/Subtype/Link/Rect[207 359 217 368]/Border[0 0 0]/H/N>> endobj 36932 0 obj <>/P 3547 0 R/Type/Annot/A 37263 0 R/Subtype/Link/Rect[219 359 229 368]/Border[0 0 0]/H/N>> endobj 36933 0 obj <>/P 3547 0 R/Type/Annot/A 37262 0 R/Subtype/Link/Rect[231 359 243 369]/Border[0 0 0]/H/N>> endobj 36934 0 obj <>/P 3547 0 R/Type/Annot/A 37260 0 R/Subtype/Link/Rect[244 359 254 368]/Border[0 0 0]/H/N>> endobj 36935 0 obj <>/P 3547 0 R/Type/Annot/A 37259 0 R/Subtype/Link/Rect[256 359 270 368]/Border[0 0 0]/H/N>> endobj 36936 0 obj <>/P 3547 0 R/Type/Annot/A 37257 0 R/Subtype/Link/Rect[272 359 286 368]/Border[0 0 0]/H/N>> endobj 36937 0 obj <>/P 3547 0 R/Type/Annot/A 37255 0 R/Subtype/Link/Rect[288 359 302 368]/Border[0 0 0]/H/N>> endobj 36938 0 obj <>/P 3547 0 R/Type/Annot/A 37252 0 R/Subtype/Link/Rect[151 349 165 358]/Border[0 0 0]/H/N>> endobj 36939 0 obj <>/P 3547 0 R/Type/Annot/A 37251 0 R/Subtype/Link/Rect[167 349 181 358]/Border[0 0 0]/H/N>> endobj 36940 0 obj <>/P 3547 0 R/Type/Annot/A 37249 0 R/Subtype/Link/Rect[183 349 200 359]/Border[0 0 0]/H/N>> endobj 36941 0 obj <>/P 3547 0 R/Type/Annot/A 37247 0 R/Subtype/Link/Rect[200 349 214 358]/Border[0 0 0]/H/N>> endobj 36942 0 obj <>/P 3547 0 R/Type/Annot/A 37245 0 R/Subtype/Link/Rect[216 349 233 359]/Border[0 0 0]/H/N>> endobj 36943 0 obj <>/P 3547 0 R/Type/Annot/A 37244 0 R/Subtype/Link/Rect[234 349 248 358]/Border[0 0 0]/H/N>> endobj 36944 0 obj <>/P 3547 0 R/Type/Annot/A 37243 0 R/Subtype/Link/Rect[250 349 266 359]/Border[0 0 0]/H/N>> endobj 36945 0 obj <>/P 3547 0 R/Type/Annot/A 37242 0 R/Subtype/Link/Rect[267 349 281 358]/Border[0 0 0]/H/N>> endobj 36946 0 obj <>/P 3547 0 R/Type/Annot/A 37241 0 R/Subtype/Link/Rect[283 349 295 358]/Border[0 0 0]/H/N>> endobj 36947 0 obj <>/P 3547 0 R/Type/Annot/A 37240 0 R/Subtype/Link/Rect[190 339 198 348]/Border[0 0 0]/H/N>> endobj 36948 0 obj <>/P 3547 0 R/Type/Annot/A 37239 0 R/Subtype/Link/Rect[188 329 198 338]/Border[0 0 0]/H/N>> endobj 36949 0 obj <>/P 3547 0 R/Type/Annot/A 37238 0 R/Subtype/Link/Rect[200 329 212 339]/Border[0 0 0]/H/N>> endobj 36950 0 obj <>/P 3547 0 R/Type/Annot/A 37237 0 R/Subtype/Link/Rect[213 329 223 338]/Border[0 0 0]/H/N>> endobj 36951 0 obj <>/P 3547 0 R/Type/Annot/A 37236 0 R/Subtype/Link/Rect[225 329 235 338]/Border[0 0 0]/H/N>> endobj 36952 0 obj <>/P 3547 0 R/Type/Annot/A 37235 0 R/Subtype/Link/Rect[237 329 251 338]/Border[0 0 0]/H/N>> endobj 36953 0 obj <>/P 3547 0 R/Type/Annot/A 37234 0 R/Subtype/Link/Rect[253 329 267 338]/Border[0 0 0]/H/N>> endobj 36954 0 obj <>/P 3547 0 R/Type/Annot/A 37233 0 R/Subtype/Link/Rect[269 329 283 338]/Border[0 0 0]/H/N>> endobj 36955 0 obj <>/P 3547 0 R/Type/Annot/A 37232 0 R/Subtype/Link/Rect[285 329 299 338]/Border[0 0 0]/H/N>> endobj 36956 0 obj <>/P 3547 0 R/Type/Annot/A 37231 0 R/Subtype/Link/Rect[151 319 168 329]/Border[0 0 0]/H/N>> endobj 36957 0 obj <>/P 3547 0 R/Type/Annot/A 37230 0 R/Subtype/Link/Rect[168 319 182 328]/Border[0 0 0]/H/N>> endobj 36958 0 obj <>/P 3547 0 R/Type/Annot/A 37229 0 R/Subtype/Link/Rect[184 319 198 328]/Border[0 0 0]/H/N>> endobj 36959 0 obj <>/P 3547 0 R/Type/Annot/A 37228 0 R/Subtype/Link/Rect[200 319 217 329]/Border[0 0 0]/H/N>> endobj 36960 0 obj <>/P 3547 0 R/Type/Annot/A 37227 0 R/Subtype/Link/Rect[218 319 232 328]/Border[0 0 0]/H/N>> endobj 36961 0 obj <>/P 3547 0 R/Type/Annot/A 37226 0 R/Subtype/Link/Rect[234 319 248 328]/Border[0 0 0]/H/N>> endobj 36962 0 obj <>/P 3547 0 R/Type/Annot/A 37225 0 R/Subtype/Link/Rect[250 319 266 329]/Border[0 0 0]/H/N>> endobj 36963 0 obj <>/P 3547 0 R/Type/Annot/A 37224 0 R/Subtype/Link/Rect[267 319 281 328]/Border[0 0 0]/H/N>> endobj 36964 0 obj <>/P 3547 0 R/Type/Annot/A 37223 0 R/Subtype/Link/Rect[151 309 168 319]/Border[0 0 0]/H/N>> endobj 36965 0 obj <>/P 3547 0 R/Type/Annot/A 37222 0 R/Subtype/Link/Rect[168 309 182 318]/Border[0 0 0]/H/N>> endobj 36966 0 obj <>/P 3547 0 R/Type/Annot/A 37221 0 R/Subtype/Link/Rect[184 309 201 319]/Border[0 0 0]/H/N>> endobj 36967 0 obj <>/P 3547 0 R/Type/Annot/A 37220 0 R/Subtype/Link/Rect[202 309 214 318]/Border[0 0 0]/H/N>> endobj 36968 0 obj <>/P 3547 0 R/Type/Annot/A 37219 0 R/Subtype/Link/Rect[190 299 198 308]/Border[0 0 0]/H/N>> endobj 36969 0 obj <>/P 3547 0 R/Type/Annot/A 37218 0 R/Subtype/Link/Rect[180 261 192 270]/Border[0 0 0]/H/N>> endobj 36970 0 obj <>/P 3547 0 R/Type/Annot/A 37217 0 R/Subtype/Link/Rect[184 251 197 261]/Border[0 0 0]/H/N>> endobj 36971 0 obj <>/P 3547 0 R/Type/Annot/A 37216 0 R/Subtype/Link/Rect[198 251 208 260]/Border[0 0 0]/H/N>> endobj 36972 0 obj <>/P 3547 0 R/Type/Annot/A 37215 0 R/Subtype/Link/Rect[210 251 224 260]/Border[0 0 0]/H/N>> endobj 36973 0 obj <>/P 3547 0 R/Type/Annot/A 37214 0 R/Subtype/Link/Rect[226 251 240 260]/Border[0 0 0]/H/N>> endobj 36974 0 obj <>/P 3547 0 R/Type/Annot/A 37213 0 R/Subtype/Link/Rect[242 251 256 260]/Border[0 0 0]/H/N>> endobj 36975 0 obj <>/P 3547 0 R/Type/Annot/A 37212 0 R/Subtype/Link/Rect[258 251 270 260]/Border[0 0 0]/H/N>> endobj 36976 0 obj <>/P 3547 0 R/Type/Annot/A 37211 0 R/Subtype/Link/Rect[184 241 194 250]/Border[0 0 0]/H/N>> endobj 36977 0 obj <>/P 3547 0 R/Type/Annot/A 37210 0 R/Subtype/Link/Rect[196 241 210 250]/Border[0 0 0]/H/N>> endobj 36978 0 obj <>/P 3547 0 R/Type/Annot/A 37209 0 R/Subtype/Link/Rect[212 241 226 250]/Border[0 0 0]/H/N>> endobj 36979 0 obj <>/P 3547 0 R/Type/Annot/A 37208 0 R/Subtype/Link/Rect[228 241 242 250]/Border[0 0 0]/H/N>> endobj 36980 0 obj <>/P 3547 0 R/Type/Annot/A 37207 0 R/Subtype/Link/Rect[244 241 258 250]/Border[0 0 0]/H/N>> endobj 36981 0 obj <>/P 3547 0 R/Type/Annot/A 37206 0 R/Subtype/Link/Rect[260 241 274 250]/Border[0 0 0]/H/N>> endobj 36982 0 obj <>/P 3547 0 R/Type/Annot/A 37205 0 R/Subtype/Link/Rect[276 241 293 251]/Border[0 0 0]/H/N>> endobj 36983 0 obj <>/P 3547 0 R/Type/Annot/A 37204 0 R/Subtype/Link/Rect[294 241 308 250]/Border[0 0 0]/H/N>> endobj 36984 0 obj <>/P 3547 0 R/Type/Annot/A 37203 0 R/Subtype/Link/Rect[151 231 165 240]/Border[0 0 0]/H/N>> endobj 36985 0 obj <>/P 3547 0 R/Type/Annot/A 37202 0 R/Subtype/Link/Rect[167 231 181 240]/Border[0 0 0]/H/N>> endobj 36986 0 obj <>/P 3547 0 R/Type/Annot/A 37201 0 R/Subtype/Link/Rect[183 231 197 240]/Border[0 0 0]/H/N>> endobj 36987 0 obj <>/P 3547 0 R/Type/Annot/A 37200 0 R/Subtype/Link/Rect[199 231 216 241]/Border[0 0 0]/H/N>> endobj 36988 0 obj <>/P 3547 0 R/Type/Annot/A 37199 0 R/Subtype/Link/Rect[216 231 230 240]/Border[0 0 0]/H/N>> endobj 36989 0 obj <>/P 3547 0 R/Type/Annot/A 37198 0 R/Subtype/Link/Rect[232 231 246 240]/Border[0 0 0]/H/N>> endobj 36990 0 obj <>/P 3547 0 R/Type/Annot/A 37197 0 R/Subtype/Link/Rect[248 231 262 240]/Border[0 0 0]/H/N>> endobj 36991 0 obj <>/P 3547 0 R/Type/Annot/A 37196 0 R/Subtype/Link/Rect[264 231 276 240]/Border[0 0 0]/H/N>> endobj 36992 0 obj <>/P 3547 0 R/Type/Annot/A 37195 0 R/Subtype/Link/Rect[180 221 190 230]/Border[0 0 0]/H/N>> endobj 36993 0 obj <>/P 3547 0 R/Type/Annot/A 37194 0 R/Subtype/Link/Rect[192 221 204 230]/Border[0 0 0]/H/N>> endobj 36994 0 obj <>/P 3547 0 R/Type/Annot/A 37193 0 R/Subtype/Link/Rect[180 211 190 220]/Border[0 0 0]/H/N>> endobj 36995 0 obj <>/P 3547 0 R/Type/Annot/A 37192 0 R/Subtype/Link/Rect[192 211 206 220]/Border[0 0 0]/H/N>> endobj 36996 0 obj <>/P 3547 0 R/Type/Annot/A 37191 0 R/Subtype/Link/Rect[208 211 222 220]/Border[0 0 0]/H/N>> endobj 36997 0 obj <>/P 3547 0 R/Type/Annot/A 37190 0 R/Subtype/Link/Rect[224 211 236 220]/Border[0 0 0]/H/N>> endobj 36998 0 obj <>/P 3547 0 R/Type/Annot/A 37189 0 R/Subtype/Link/Rect[199 201 211 210]/Border[0 0 0]/H/N>> endobj 36999 0 obj <>/P 3547 0 R/Type/Annot/A 37188 0 R/Subtype/Link/Rect[184 191 198 200]/Border[0 0 0]/H/N>> endobj 37000 0 obj <>/P 3547 0 R/Type/Annot/A 37187 0 R/Subtype/Link/Rect[200 191 214 200]/Border[0 0 0]/H/N>> endobj 37001 0 obj <>/P 3547 0 R/Type/Annot/A 37186 0 R/Subtype/Link/Rect[216 191 230 200]/Border[0 0 0]/H/N>> endobj 37002 0 obj <>/P 3547 0 R/Type/Annot/A 37185 0 R/Subtype/Link/Rect[232 191 244 200]/Border[0 0 0]/H/N>> endobj 37003 0 obj <>/P 3547 0 R/Type/Annot/A 37184 0 R/Subtype/Link/Rect[188 181 202 190]/Border[0 0 0]/H/N>> endobj 37004 0 obj <>/P 3547 0 R/Type/Annot/A 37183 0 R/Subtype/Link/Rect[204 181 220 191]/Border[0 0 0]/H/N>> endobj 37005 0 obj <>/P 3547 0 R/Type/Annot/A 37182 0 R/Subtype/Link/Rect[221 181 235 190]/Border[0 0 0]/H/N>> endobj 37006 0 obj <>/P 3547 0 R/Type/Annot/A 37181 0 R/Subtype/Link/Rect[237 181 251 190]/Border[0 0 0]/H/N>> endobj 37007 0 obj <>/P 3547 0 R/Type/Annot/A 37386 0 R/Subtype/Link/Rect[253 181 270 191]/Border[0 0 0]/H/N>> endobj 37008 0 obj <>/P 3547 0 R/Type/Annot/A 37378 0 R/Subtype/Link/Rect[270 181 284 190]/Border[0 0 0]/H/N>> endobj 37009 0 obj <>/P 3547 0 R/Type/Annot/A 37370 0 R/Subtype/Link/Rect[286 181 298 190]/Border[0 0 0]/H/N>> endobj 37010 0 obj <>/P 3547 0 R/Type/Annot/A 37266 0 R/Subtype/Link/Rect[189 171 201 180]/Border[0 0 0]/H/N>> endobj 37011 0 obj <>/P 3547 0 R/Type/Annot/A 37357 0 R/Subtype/Link/Rect[202 161 216 170]/Border[0 0 0]/H/N>> endobj 37012 0 obj <>/P 3547 0 R/Type/Annot/A 37352 0 R/Subtype/Link/Rect[218 161 230 170]/Border[0 0 0]/H/N>> endobj 37013 0 obj <>/P 3547 0 R/Type/Annot/A 37347 0 R/Subtype/Link/Rect[193 151 207 160]/Border[0 0 0]/H/N>> endobj 37014 0 obj <>/P 3547 0 R/Type/Annot/A 44569 0 R/Subtype/Link/Rect[209 151 225 161]/Border[0 0 0]/H/N>> endobj 37015 0 obj <>/P 3547 0 R/Type/Annot/A 37338 0 R/Subtype/Link/Rect[226 151 240 160]/Border[0 0 0]/H/N>> endobj 37016 0 obj <>/P 3547 0 R/Type/Annot/A 38230 0 R/Subtype/Link/Rect[242 151 256 160]/Border[0 0 0]/H/N>> endobj 37017 0 obj <>/P 3547 0 R/Type/Annot/A 44461 0 R/Subtype/Link/Rect[258 151 270 160]/Border[0 0 0]/H/N>> endobj 37018 0 obj <>/P 3547 0 R/Type/Annot/A 44419 0 R/Subtype/Link/Rect[401 669 415 678]/Border[0 0 0]/H/N>> endobj 37019 0 obj <>/P 3547 0 R/Type/Annot/A 38182 0 R/Subtype/Link/Rect[417 669 431 678]/Border[0 0 0]/H/N>> endobj 37020 0 obj <>/P 3547 0 R/Type/Annot/A 38172 0 R/Subtype/Link/Rect[433 669 447 678]/Border[0 0 0]/H/N>> endobj 37021 0 obj <>/P 3547 0 R/Type/Annot/A 44326 0 R/Subtype/Link/Rect[449 669 461 678]/Border[0 0 0]/H/N>> endobj 37022 0 obj <>/P 3547 0 R/Type/Annot/A 37768 0 R/Subtype/Link/Rect[405 659 419 668]/Border[0 0 0]/H/N>> endobj 37023 0 obj <>/P 3547 0 R/Type/Annot/A 44247 0 R/Subtype/Link/Rect[421 659 433 668]/Border[0 0 0]/H/N>> endobj 37024 0 obj <>/P 3547 0 R/Type/Annot/A 44212 0 R/Subtype/Link/Rect[405 649 419 658]/Border[0 0 0]/H/N>> endobj 37025 0 obj <>/P 3547 0 R/Type/Annot/A 44175 0 R/Subtype/Link/Rect[421 649 435 658]/Border[0 0 0]/H/N>> endobj 37026 0 obj <>/P 3547 0 R/Type/Annot/A 44138 0 R/Subtype/Link/Rect[437 649 451 658]/Border[0 0 0]/H/N>> endobj 37027 0 obj <>/P 3547 0 R/Type/Annot/A 42768 0 R/Subtype/Link/Rect[453 649 465 658]/Border[0 0 0]/H/N>> endobj 37028 0 obj <>/P 3547 0 R/Type/Annot/A 44067 0 R/Subtype/Link/Rect[410 639 424 648]/Border[0 0 0]/H/N>> endobj 37029 0 obj <>/P 3547 0 R/Type/Annot/A 44036 0 R/Subtype/Link/Rect[426 639 443 649]/Border[0 0 0]/H/N>> endobj 37030 0 obj <>/P 3547 0 R/Type/Annot/A 42670 0 R/Subtype/Link/Rect[443 639 455 648]/Border[0 0 0]/H/N>> endobj 37031 0 obj <>/P 3547 0 R/Type/Annot/A 37431 0 R/Subtype/Link/Rect[387 629 401 638]/Border[0 0 0]/H/N>> endobj 37032 0 obj <>/P 3547 0 R/Type/Annot/A 37425 0 R/Subtype/Link/Rect[403 629 420 639]/Border[0 0 0]/H/N>> endobj 37033 0 obj <>/P 3547 0 R/Type/Annot/A 37419 0 R/Subtype/Link/Rect[421 629 435 638]/Border[0 0 0]/H/N>> endobj 37034 0 obj <>/P 3547 0 R/Type/Annot/A 37414 0 R/Subtype/Link/Rect[437 629 453 639]/Border[0 0 0]/H/N>> endobj 37035 0 obj <>/P 3547 0 R/Type/Annot/A 37408 0 R/Subtype/Link/Rect[454 629 466 638]/Border[0 0 0]/H/N>> endobj 37036 0 obj <>/P 3547 0 R/Type/Annot/A 37402 0 R/Subtype/Link/Rect[397 619 409 628]/Border[0 0 0]/H/N>> endobj 37037 0 obj <>/P 3547 0 R/Type/Annot/A 37396 0 R/Subtype/Link/Rect[392 609 406 618]/Border[0 0 0]/H/N>> endobj 37038 0 obj <>/P 3547 0 R/Type/Annot/A 37390 0 R/Subtype/Link/Rect[408 609 422 618]/Border[0 0 0]/H/N>> endobj 37039 0 obj <>/P 3547 0 R/Type/Annot/A 37383 0 R/Subtype/Link/Rect[424 609 436 618]/Border[0 0 0]/H/N>> endobj 37040 0 obj <>/P 3547 0 R/Type/Annot/A 37376 0 R/Subtype/Link/Rect[388 599 400 608]/Border[0 0 0]/H/N>> endobj 37041 0 obj <>/P 3547 0 R/Type/Annot/A 37368 0 R/Subtype/Link/Rect[387 579 399 589]/Border[0 0 0]/H/N>> endobj 37042 0 obj <>/P 3547 0 R/Type/Annot/A 37363 0 R/Subtype/Link/Rect[400 579 410 588]/Border[0 0 0]/H/N>> endobj 37043 0 obj <>/P 3547 0 R/Type/Annot/A 37356 0 R/Subtype/Link/Rect[412 579 429 589]/Border[0 0 0]/H/N>> endobj 37044 0 obj <>/P 3547 0 R/Type/Annot/A 42092 0 R/Subtype/Link/Rect[429 579 443 588]/Border[0 0 0]/H/N>> endobj 37045 0 obj <>/P 3547 0 R/Type/Annot/A 37346 0 R/Subtype/Link/Rect[445 579 459 588]/Border[0 0 0]/H/N>> endobj 37046 0 obj <>/P 3547 0 R/Type/Annot/A 37343 0 R/Subtype/Link/Rect[461 579 475 588]/Border[0 0 0]/H/N>> endobj 37047 0 obj <>/P 3547 0 R/Type/Annot/A 37258 0 R/Subtype/Link/Rect[477 579 491 588]/Border[0 0 0]/H/N>> endobj 37048 0 obj <>/P 3547 0 R/Type/Annot/A 37334 0 R/Subtype/Link/Rect[493 579 507 588]/Border[0 0 0]/H/N>> endobj 37049 0 obj <>/P 3547 0 R/Type/Annot/A 37328 0 R/Subtype/Link/Rect[359 569 373 578]/Border[0 0 0]/H/N>> endobj 37050 0 obj <>/P 3547 0 R/Type/Annot/A 37324 0 R/Subtype/Link/Rect[375 569 389 578]/Border[0 0 0]/H/N>> endobj 37051 0 obj <>/P 3547 0 R/Type/Annot/A 38202 0 R/Subtype/Link/Rect[391 569 405 578]/Border[0 0 0]/H/N>> endobj 37052 0 obj <>/P 3547 0 R/Type/Annot/A 41734 0 R/Subtype/Link/Rect[407 569 421 578]/Border[0 0 0]/H/N>> endobj 37053 0 obj <>/P 3547 0 R/Type/Annot/A 41685 0 R/Subtype/Link/Rect[423 569 437 578]/Border[0 0 0]/H/N>> endobj 37054 0 obj <>/P 3547 0 R/Type/Annot/A 38158 0 R/Subtype/Link/Rect[439 569 451 578]/Border[0 0 0]/H/N>> endobj 37055 0 obj <>/P 3547 0 R/Type/Annot/A 38146 0 R/Subtype/Link/Rect[380 559 393 569]/Border[0 0 0]/H/N>> endobj 37056 0 obj <>/P 3547 0 R/Type/Annot/A 38133 0 R/Subtype/Link/Rect[394 559 404 568]/Border[0 0 0]/H/N>> endobj 37057 0 obj <>/P 3547 0 R/Type/Annot/A 38120 0 R/Subtype/Link/Rect[406 559 422 569]/Border[0 0 0]/H/N>> endobj 37058 0 obj <>/P 3547 0 R/Type/Annot/A 38096 0 R/Subtype/Link/Rect[423 559 437 568]/Border[0 0 0]/H/N>> endobj 37059 0 obj <>/P 3547 0 R/Type/Annot/A 38089 0 R/Subtype/Link/Rect[439 559 453 568]/Border[0 0 0]/H/N>> endobj 37060 0 obj <>/P 3547 0 R/Type/Annot/A 42862 0 R/Subtype/Link/Rect[455 559 468 568]/Border[0 0 0]/H/N>> endobj 37061 0 obj <>/P 3547 0 R/Type/Annot/A 37704 0 R/Subtype/Link/Rect[470 559 484 568]/Border[0 0 0]/H/N>> endobj 37062 0 obj <>/P 3547 0 R/Type/Annot/A 37692 0 R/Subtype/Link/Rect[486 559 500 568]/Border[0 0 0]/H/N>> endobj 37063 0 obj <>/P 3547 0 R/Type/Annot/A 42750 0 R/Subtype/Link/Rect[502 559 516 568]/Border[0 0 0]/H/N>> endobj 37064 0 obj <>/P 3547 0 R/Type/Annot/A 37289 0 R/Subtype/Link/Rect[359 549 373 558]/Border[0 0 0]/H/N>> endobj 37065 0 obj <>/P 3547 0 R/Type/Annot/A 37427 0 R/Subtype/Link/Rect[375 549 389 558]/Border[0 0 0]/H/N>> endobj 37066 0 obj <>/P 3547 0 R/Type/Annot/A 37420 0 R/Subtype/Link/Rect[391 549 408 559]/Border[0 0 0]/H/N>> endobj 37067 0 obj <>/P 3547 0 R/Type/Annot/A 37415 0 R/Subtype/Link/Rect[408 549 422 558]/Border[0 0 0]/H/N>> endobj 37068 0 obj <>/P 3547 0 R/Type/Annot/A 37410 0 R/Subtype/Link/Rect[424 549 438 558]/Border[0 0 0]/H/N>> endobj 37069 0 obj <>/P 3547 0 R/Type/Annot/A 37404 0 R/Subtype/Link/Rect[440 549 454 558]/Border[0 0 0]/H/N>> endobj 37070 0 obj <>/P 3547 0 R/Type/Annot/A 37398 0 R/Subtype/Link/Rect[456 549 470 558]/Border[0 0 0]/H/N>> endobj 37071 0 obj <>/P 3547 0 R/Type/Annot/A 37393 0 R/Subtype/Link/Rect[472 549 486 558]/Border[0 0 0]/H/N>> endobj 37072 0 obj <>/P 3547 0 R/Type/Annot/A 37387 0 R/Subtype/Link/Rect[488 549 502 558]/Border[0 0 0]/H/N>> endobj 37073 0 obj <>/P 3547 0 R/Type/Annot/A 37381 0 R/Subtype/Link/Rect[504 549 518 558]/Border[0 0 0]/H/N>> endobj 37074 0 obj <>/P 3547 0 R/Type/Annot/A 37374 0 R/Subtype/Link/Rect[359 539 373 548]/Border[0 0 0]/H/N>> endobj 37075 0 obj <>/P 3547 0 R/Type/Annot/A 37367 0 R/Subtype/Link/Rect[375 539 389 548]/Border[0 0 0]/H/N>> endobj 37076 0 obj <>/P 3547 0 R/Type/Annot/A 37362 0 R/Subtype/Link/Rect[391 539 405 548]/Border[0 0 0]/H/N>> endobj 37077 0 obj <>/P 3547 0 R/Type/Annot/A 42225 0 R/Subtype/Link/Rect[407 539 424 549]/Border[0 0 0]/H/N>> endobj 37078 0 obj <>/P 3547 0 R/Type/Annot/A 37351 0 R/Subtype/Link/Rect[424 539 438 548]/Border[0 0 0]/H/N>> endobj 37079 0 obj <>/P 3547 0 R/Type/Annot/A 37345 0 R/Subtype/Link/Rect[440 539 454 548]/Border[0 0 0]/H/N>> endobj 37080 0 obj <>/P 3547 0 R/Type/Annot/A 37341 0 R/Subtype/Link/Rect[456 539 470 548]/Border[0 0 0]/H/N>> endobj 37081 0 obj <>/P 3547 0 R/Type/Annot/A 37254 0 R/Subtype/Link/Rect[472 539 486 548]/Border[0 0 0]/H/N>> endobj 37082 0 obj <>/P 3547 0 R/Type/Annot/A 37332 0 R/Subtype/Link/Rect[488 539 500 548]/Border[0 0 0]/H/N>> endobj 37083 0 obj <>/P 3547 0 R/Type/Annot/A 37327 0 R/Subtype/Link/Rect[368 519 381 529]/Border[0 0 0]/H/N>> endobj 37084 0 obj <>/P 3547 0 R/Type/Annot/A 38229 0 R/Subtype/Link/Rect[381 519 389 528]/Border[0 0 0]/H/N>> endobj 37085 0 obj <>/P 3547 0 R/Type/Annot/A 37320 0 R/Subtype/Link/Rect[401 509 418 519]/Border[0 0 0]/H/N>> endobj 37086 0 obj <>/P 3547 0 R/Type/Annot/A 37783 0 R/Subtype/Link/Rect[419 509 431 518]/Border[0 0 0]/H/N>> endobj 37087 0 obj <>/P 3547 0 R/Type/Annot/A 41788 0 R/Subtype/Link/Rect[388 499 404 509]/Border[0 0 0]/H/N>> endobj 37088 0 obj <>/P 3547 0 R/Type/Annot/A 38173 0 R/Subtype/Link/Rect[405 499 419 508]/Border[0 0 0]/H/N>> endobj 37089 0 obj <>/P 3547 0 R/Type/Annot/A 37766 0 R/Subtype/Link/Rect[421 499 438 509]/Border[0 0 0]/H/N>> endobj 37090 0 obj <>/P 3547 0 R/Type/Annot/A 38147 0 R/Subtype/Link/Rect[438 499 452 508]/Border[0 0 0]/H/N>> endobj 37091 0 obj <>/P 3547 0 R/Type/Annot/A 38134 0 R/Subtype/Link/Rect[454 499 466 508]/Border[0 0 0]/H/N>> endobj 37092 0 obj <>/P 3547 0 R/Type/Annot/A 38121 0 R/Subtype/Link/Rect[416 489 433 499]/Border[0 0 0]/H/N>> endobj 37093 0 obj <>/P 3547 0 R/Type/Annot/A 38097 0 R/Subtype/Link/Rect[434 489 448 498]/Border[0 0 0]/H/N>> endobj 37094 0 obj <>/P 3547 0 R/Type/Annot/A 38090 0 R/Subtype/Link/Rect[450 489 462 498]/Border[0 0 0]/H/N>> endobj 37095 0 obj <>/P 3547 0 R/Type/Annot/A 38070 0 R/Subtype/Link/Rect[388 479 398 488]/Border[0 0 0]/H/N>> endobj 37096 0 obj <>/P 3547 0 R/Type/Annot/A 38054 0 R/Subtype/Link/Rect[400 479 416 489]/Border[0 0 0]/H/N>> endobj 37097 0 obj <>/P 3547 0 R/Type/Annot/A 38039 0 R/Subtype/Link/Rect[417 479 431 488]/Border[0 0 0]/H/N>> endobj 37098 0 obj <>/P 3547 0 R/Type/Annot/A 38016 0 R/Subtype/Link/Rect[433 479 447 488]/Border[0 0 0]/H/N>> endobj 37099 0 obj <>/P 3547 0 R/Type/Annot/A 41288 0 R/Subtype/Link/Rect[449 479 466 489]/Border[0 0 0]/H/N>> endobj 37100 0 obj <>/P 3547 0 R/Type/Annot/A 37430 0 R/Subtype/Link/Rect[466 479 480 488]/Border[0 0 0]/H/N>> endobj 37101 0 obj <>/P 3547 0 R/Type/Annot/A 37424 0 R/Subtype/Link/Rect[482 479 496 488]/Border[0 0 0]/H/N>> endobj 37102 0 obj <>/P 3547 0 R/Type/Annot/A 37418 0 R/Subtype/Link/Rect[498 479 512 488]/Border[0 0 0]/H/N>> endobj 37103 0 obj <>/P 3547 0 R/Type/Annot/A 37277 0 R/Subtype/Link/Rect[359 469 373 478]/Border[0 0 0]/H/N>> endobj 37104 0 obj <>/P 3547 0 R/Type/Annot/A 37409 0 R/Subtype/Link/Rect[375 469 389 478]/Border[0 0 0]/H/N>> endobj 37105 0 obj <>/P 3547 0 R/Type/Annot/A 37403 0 R/Subtype/Link/Rect[391 469 405 478]/Border[0 0 0]/H/N>> endobj 37106 0 obj <>/P 3547 0 R/Type/Annot/A 37397 0 R/Subtype/Link/Rect[407 469 421 478]/Border[0 0 0]/H/N>> endobj 37107 0 obj <>/P 3547 0 R/Type/Annot/A 37392 0 R/Subtype/Link/Rect[423 469 440 479]/Border[0 0 0]/H/N>> endobj 37108 0 obj <>/P 3547 0 R/Type/Annot/A 37268 0 R/Subtype/Link/Rect[440 469 454 478]/Border[0 0 0]/H/N>> endobj 37109 0 obj <>/P 3547 0 R/Type/Annot/A 37380 0 R/Subtype/Link/Rect[456 469 473 479]/Border[0 0 0]/H/N>> endobj 37110 0 obj <>/P 3547 0 R/Type/Annot/A 37373 0 R/Subtype/Link/Rect[474 469 488 478]/Border[0 0 0]/H/N>> endobj 37111 0 obj <>/P 3547 0 R/Type/Annot/A 37366 0 R/Subtype/Link/Rect[359 459 376 469]/Border[0 0 0]/H/N>> endobj 37112 0 obj <>/P 3547 0 R/Type/Annot/A 37360 0 R/Subtype/Link/Rect[376 459 390 468]/Border[0 0 0]/H/N>> endobj 37113 0 obj <>/P 3547 0 R/Type/Annot/A 37354 0 R/Subtype/Link/Rect[392 459 404 468]/Border[0 0 0]/H/N>> endobj 37114 0 obj <>/P 3547 0 R/Type/Annot/A 37349 0 R/Subtype/Link/Rect[392 449 402 458]/Border[0 0 0]/H/N>> endobj 37115 0 obj <>/P 3547 0 R/Type/Annot/A 37256 0 R/Subtype/Link/Rect[404 449 417 459]/Border[0 0 0]/H/N>> endobj 37116 0 obj <>/P 3547 0 R/Type/Annot/A 37339 0 R/Subtype/Link/Rect[418 449 428 458]/Border[0 0 0]/H/N>> endobj 37117 0 obj <>/P 3547 0 R/Type/Annot/A 37336 0 R/Subtype/Link/Rect[430 449 444 458]/Border[0 0 0]/H/N>> endobj 37118 0 obj <>/P 3547 0 R/Type/Annot/A 37331 0 R/Subtype/Link/Rect[446 449 460 458]/Border[0 0 0]/H/N>> endobj 37119 0 obj <>/P 3547 0 R/Type/Annot/A 37248 0 R/Subtype/Link/Rect[462 449 476 458]/Border[0 0 0]/H/N>> endobj 37120 0 obj <>/P 3547 0 R/Type/Annot/A 37246 0 R/Subtype/Link/Rect[478 449 494 459]/Border[0 0 0]/H/N>> endobj 37121 0 obj <>/P 3547 0 R/Type/Annot/A 37321 0 R/Subtype/Link/Rect[495 449 509 458]/Border[0 0 0]/H/N>> endobj 37122 0 obj <>/P 3547 0 R/Type/Annot/A 38221 0 R/Subtype/Link/Rect[359 439 376 449]/Border[0 0 0]/H/N>> endobj 37123 0 obj <>/P 3547 0 R/Type/Annot/A 38207 0 R/Subtype/Link/Rect[376 439 390 448]/Border[0 0 0]/H/N>> endobj 37124 0 obj <>/P 3547 0 R/Type/Annot/A 37770 0 R/Subtype/Link/Rect[392 439 406 448]/Border[0 0 0]/H/N>> endobj 37125 0 obj <>/P 3547 0 R/Type/Annot/A 38178 0 R/Subtype/Link/Rect[408 439 420 448]/Border[0 0 0]/H/N>> endobj 37126 0 obj <>/P 3547 0 R/Type/Annot/A 37760 0 R/Subtype/Link/Rect[378 429 392 438]/Border[0 0 0]/H/N>> endobj 37127 0 obj <>/P 3547 0 R/Type/Annot/A 37737 0 R/Subtype/Link/Rect[394 429 408 438]/Border[0 0 0]/H/N>> endobj 37128 0 obj <>/P 3547 0 R/Type/Annot/A 38138 0 R/Subtype/Link/Rect[410 429 427 439]/Border[0 0 0]/H/N>> endobj 37129 0 obj <>/P 3547 0 R/Type/Annot/A 38128 0 R/Subtype/Link/Rect[427 429 441 438]/Border[0 0 0]/H/N>> endobj 37130 0 obj <>/P 3547 0 R/Type/Annot/A 37719 0 R/Subtype/Link/Rect[443 429 460 439]/Border[0 0 0]/H/N>> endobj 37131 0 obj <>/P 3547 0 R/Type/Annot/A 38093 0 R/Subtype/Link/Rect[461 429 473 438]/Border[0 0 0]/H/N>> endobj 37132 0 obj <>/P 3547 0 R/Type/Annot/A 37297 0 R/Subtype/Link/Rect[388 409 404 419]/Border[0 0 0]/H/N>> endobj 37133 0 obj <>/P 3547 0 R/Type/Annot/A 37691 0 R/Subtype/Link/Rect[405 409 417 418]/Border[0 0 0]/H/N>> endobj 37134 0 obj <>/P 3547 0 R/Type/Annot/A 38048 0 R/Subtype/Link/Rect[392 399 406 408]/Border[0 0 0]/H/N>> endobj 37135 0 obj <>/P 3547 0 R/Type/Annot/A 38023 0 R/Subtype/Link/Rect[408 399 420 408]/Border[0 0 0]/H/N>> endobj 37136 0 obj <>/P 3547 0 R/Type/Annot/A 37286 0 R/Subtype/Link/Rect[402 389 414 398]/Border[0 0 0]/H/N>> endobj 37137 0 obj <>/P 3547 0 R/Type/Annot/A 37573 0 R/Subtype/Link/Rect[421 379 431 388]/Border[0 0 0]/H/N>> endobj 37138 0 obj <>/P 3547 0 R/Type/Annot/A 37429 0 R/Subtype/Link/Rect[433 379 447 388]/Border[0 0 0]/H/N>> endobj 37139 0 obj <>/P 3547 0 R/Type/Annot/A 37423 0 R/Subtype/Link/Rect[449 379 461 388]/Border[0 0 0]/H/N>> endobj 37140 0 obj <>/P 3547 0 R/Type/Annot/A 37417 0 R/Subtype/Link/Rect[410 369 422 378]/Border[0 0 0]/H/N>> endobj 37141 0 obj <>/P 3547 0 R/Type/Annot/A 37413 0 R/Subtype/Link/Rect[415 359 431 369]/Border[0 0 0]/H/N>> endobj 37142 0 obj <>/P 3547 0 R/Type/Annot/A 37407 0 R/Subtype/Link/Rect[432 359 446 368]/Border[0 0 0]/H/N>> endobj 37143 0 obj <>/P 3547 0 R/Type/Annot/A 37401 0 R/Subtype/Link/Rect[448 359 462 368]/Border[0 0 0]/H/N>> endobj 37144 0 obj <>/P 3547 0 R/Type/Annot/A 37270 0 R/Subtype/Link/Rect[464 359 476 368]/Border[0 0 0]/H/N>> endobj 37145 0 obj <>/P 3547 0 R/Type/Annot/A 37391 0 R/Subtype/Link/Rect[398 349 410 358]/Border[0 0 0]/H/N>> endobj 37146 0 obj <>/P 3547 0 R/Type/Annot/A 37385 0 R/Subtype/Link/Rect[424 339 438 348]/Border[0 0 0]/H/N>> endobj 37147 0 obj <>/P 3547 0 R/Type/Annot/A 37379 0 R/Subtype/Link/Rect[440 339 452 348]/Border[0 0 0]/H/N>> endobj 37148 0 obj <>/P 3547 0 R/Type/Annot/A 37372 0 R/Subtype/Link/Rect[398 329 410 338]/Border[0 0 0]/H/N>> endobj 37149 0 obj <>/P 3547 0 R/Type/Annot/A 37261 0 R/Subtype/Link/Rect[420 319 434 328]/Border[0 0 0]/H/N>> endobj 37150 0 obj <>/P 3547 0 R/Type/Annot/A 37361 0 R/Subtype/Link/Rect[436 319 448 328]/Border[0 0 0]/H/N>> endobj 37151 0 obj <>/P 3547 0 R/Type/Annot/A 37355 0 R/Subtype/Link/Rect[398 309 410 318]/Border[0 0 0]/H/N>> endobj 37152 0 obj <>/P 3547 0 R/Type/Annot/A 37350 0 R/Subtype/Link/Rect[429 299 443 308]/Border[0 0 0]/H/N>> endobj 37153 0 obj <>/P 3547 0 R/Type/Annot/A 37253 0 R/Subtype/Link/Rect[445 299 457 308]/Border[0 0 0]/H/N>> endobj 37154 0 obj <>/P 3547 0 R/Type/Annot/A 37342 0 R/Subtype/Link/Rect[398 289 410 298]/Border[0 0 0]/H/N>> endobj 37155 0 obj <>/P 3547 0 R/Type/Annot/A 37250 0 R/Subtype/Link/Rect[415 279 431 289]/Border[0 0 0]/H/N>> endobj 37156 0 obj <>/P 3547 0 R/Type/Annot/A 37335 0 R/Subtype/Link/Rect[432 279 446 288]/Border[0 0 0]/H/N>> endobj 37157 0 obj <>/P 3547 0 R/Type/Annot/A 37330 0 R/Subtype/Link/Rect[448 279 462 288]/Border[0 0 0]/H/N>> endobj 37158 0 obj <>/P 3547 0 R/Type/Annot/A 37326 0 R/Subtype/Link/Rect[464 279 476 288]/Border[0 0 0]/H/N>> endobj 37159 0 obj <>/P 3547 0 R/Type/Annot/A 37323 0 R/Subtype/Link/Rect[398 269 410 278]/Border[0 0 0]/H/N>> endobj 37160 0 obj <>/P 3547 0 R/Type/Annot/A 37319 0 R/Subtype/Link/Rect[424 259 438 268]/Border[0 0 0]/H/N>> endobj 37161 0 obj <>/P 3547 0 R/Type/Annot/A 37317 0 R/Subtype/Link/Rect[440 259 452 268]/Border[0 0 0]/H/N>> endobj 37162 0 obj <>/P 3547 0 R/Type/Annot/A 37315 0 R/Subtype/Link/Rect[398 249 410 258]/Border[0 0 0]/H/N>> endobj 37163 0 obj <>/P 3547 0 R/Type/Annot/A 37313 0 R/Subtype/Link/Rect[415 239 427 248]/Border[0 0 0]/H/N>> endobj 37164 0 obj <>/P 3547 0 R/Type/Annot/A 37311 0 R/Subtype/Link/Rect[398 229 410 238]/Border[0 0 0]/H/N>> endobj 37165 0 obj <>/P 3547 0 R/Type/Annot/A 37309 0 R/Subtype/Link/Rect[420 219 434 228]/Border[0 0 0]/H/N>> endobj 37166 0 obj <>/P 3547 0 R/Type/Annot/A 37307 0 R/Subtype/Link/Rect[436 219 448 228]/Border[0 0 0]/H/N>> endobj 37167 0 obj <>/P 3547 0 R/Type/Annot/A 37305 0 R/Subtype/Link/Rect[392 209 400 218]/Border[0 0 0]/H/N>> endobj 37168 0 obj <>/P 3547 0 R/Type/Annot/A 37303 0 R/Subtype/Link/Rect[397 199 405 208]/Border[0 0 0]/H/N>> endobj 37169 0 obj <>/P 3547 0 R/Type/Annot/A 37301 0 R/Subtype/Link/Rect[392 189 402 198]/Border[0 0 0]/H/N>> endobj 37170 0 obj <>/P 3547 0 R/Type/Annot/A 37299 0 R/Subtype/Link/Rect[404 189 418 198]/Border[0 0 0]/H/N>> endobj 37171 0 obj <>/P 3547 0 R/Type/Annot/A 37296 0 R/Subtype/Link/Rect[420 189 434 198]/Border[0 0 0]/H/N>> endobj 37172 0 obj <>/P 3547 0 R/Type/Annot/A 37293 0 R/Subtype/Link/Rect[436 189 450 198]/Border[0 0 0]/H/N>> endobj 37173 0 obj <>/P 3547 0 R/Type/Annot/A 37291 0 R/Subtype/Link/Rect[452 189 464 198]/Border[0 0 0]/H/N>> endobj 37174 0 obj <>/P 3547 0 R/Type/Annot/A 37288 0 R/Subtype/Link/Rect[392 179 400 188]/Border[0 0 0]/H/N>> endobj 37175 0 obj <>/P 3547 0 R/Type/Annot/A 37285 0 R/Subtype/Link/Rect[392 169 402 178]/Border[0 0 0]/H/N>> endobj 37176 0 obj <>/P 3547 0 R/Type/Annot/A 37283 0 R/Subtype/Link/Rect[404 169 416 178]/Border[0 0 0]/H/N>> endobj 37177 0 obj <>/P 3547 0 R/Type/Annot/A 37281 0 R/Subtype/Link/Rect[392 159 404 168]/Border[0 0 0]/H/N>> endobj 37178 0 obj <>/P 3547 0 R/Type/Annot/A 37279 0 R/Subtype/Link/Rect[392 149 402 158]/Border[0 0 0]/H/N>> endobj 37179 0 obj <>/P 3547 0 R/Type/Annot/A 37276 0 R/Subtype/Link/Rect[404 149 416 158]/Border[0 0 0]/H/N>> endobj 37180 0 obj <>/P 3547 0 R/Type/Annot/A 37274 0 R/Subtype/Link/Rect[372 418 389 427]/Border[0 0 0]/H/N>> endobj 37181 0 obj <> endobj 37182 0 obj <> endobj 37183 0 obj <> endobj 37184 0 obj <> endobj 37185 0 obj <> endobj 37186 0 obj <> endobj 37187 0 obj <> endobj 37188 0 obj <> endobj 37189 0 obj <> endobj 37190 0 obj <> endobj 37191 0 obj <> endobj 37192 0 obj <> endobj 37193 0 obj <> endobj 37194 0 obj <> endobj 37195 0 obj <> endobj 37196 0 obj <> endobj 37197 0 obj <> endobj 37198 0 obj <> endobj 37199 0 obj <> endobj 37200 0 obj <> endobj 37201 0 obj <> endobj 37202 0 obj <> endobj 37203 0 obj <> endobj 37204 0 obj <> endobj 37205 0 obj <> endobj 37206 0 obj <> endobj 37207 0 obj <> endobj 37208 0 obj <> endobj 37209 0 obj <> endobj 37210 0 obj <> endobj 37211 0 obj <> endobj 37212 0 obj <> endobj 37213 0 obj <> endobj 37214 0 obj <> endobj 37215 0 obj <> endobj 37216 0 obj <> endobj 37217 0 obj <> endobj 37218 0 obj <> endobj 37219 0 obj <> endobj 37220 0 obj <> endobj 37221 0 obj <> endobj 37222 0 obj <> endobj 37223 0 obj <> endobj 37224 0 obj <> endobj 37225 0 obj <> endobj 37226 0 obj <> endobj 37227 0 obj <> endobj 37228 0 obj <> endobj 37229 0 obj <> endobj 37230 0 obj <> endobj 37231 0 obj <> endobj 37232 0 obj <> endobj 37233 0 obj <> endobj 37234 0 obj <> endobj 37235 0 obj <> endobj 37236 0 obj <> endobj 37237 0 obj <> endobj 37238 0 obj <> endobj 37239 0 obj <> endobj 37240 0 obj <> endobj 37241 0 obj <> endobj 37242 0 obj <> endobj 37243 0 obj <> endobj 37244 0 obj <> endobj 37245 0 obj <> endobj 37246 0 obj <> endobj 37247 0 obj <> endobj 37248 0 obj <> endobj 37249 0 obj <> endobj 37250 0 obj <> endobj 37251 0 obj <> endobj 37252 0 obj <> endobj 37253 0 obj <> endobj 37254 0 obj <> endobj 37255 0 obj <> endobj 37256 0 obj <> endobj 37257 0 obj <> endobj 37258 0 obj <> endobj 37259 0 obj <> endobj 37260 0 obj <> endobj 37261 0 obj <> endobj 37262 0 obj <> endobj 37263 0 obj <> endobj 37264 0 obj <> endobj 37265 0 obj <> endobj 37266 0 obj <> endobj 37267 0 obj <> endobj 37268 0 obj <> endobj 37269 0 obj <> endobj 37270 0 obj <> endobj 37271 0 obj <> endobj 37272 0 obj <> endobj 37273 0 obj <> endobj 37274 0 obj <> endobj 37275 0 obj <> endobj 37276 0 obj <> endobj 37277 0 obj <> endobj 37278 0 obj <> endobj 37279 0 obj <> endobj 37280 0 obj <> endobj 37281 0 obj <> endobj 37282 0 obj <> endobj 37283 0 obj <> endobj 37284 0 obj <> endobj 37285 0 obj <> endobj 37286 0 obj <> endobj 37287 0 obj <> endobj 37288 0 obj <> endobj 37289 0 obj <> endobj 37290 0 obj <> endobj 37291 0 obj <> endobj 37292 0 obj <> endobj 37293 0 obj <> endobj 37294 0 obj <> endobj 37295 0 obj <> endobj 37296 0 obj <> endobj 37297 0 obj <> endobj 37298 0 obj <> endobj 37299 0 obj <> endobj 37300 0 obj <> endobj 37301 0 obj <> endobj 37302 0 obj <> endobj 37303 0 obj <> endobj 37304 0 obj <> endobj 37305 0 obj <> endobj 37306 0 obj <> endobj 37307 0 obj <> endobj 37308 0 obj <> endobj 37309 0 obj <> endobj 37310 0 obj <> endobj 37311 0 obj <> endobj 37312 0 obj <> endobj 37313 0 obj <> endobj 37314 0 obj <> endobj 37315 0 obj <> endobj 37316 0 obj <> endobj 37317 0 obj <> endobj 37318 0 obj <> endobj 37319 0 obj <> endobj 37320 0 obj <> endobj 37321 0 obj <> endobj 37322 0 obj <> endobj 37323 0 obj <> endobj 37324 0 obj <> endobj 37325 0 obj <> endobj 37326 0 obj <> endobj 37327 0 obj <> endobj 37328 0 obj <> endobj 37329 0 obj <> endobj 37330 0 obj <> endobj 37331 0 obj <> endobj 37332 0 obj <> endobj 37333 0 obj <> endobj 37334 0 obj <> endobj 37335 0 obj <> endobj 37336 0 obj <> endobj 37337 0 obj <> endobj 37338 0 obj <> endobj 37339 0 obj <> endobj 37340 0 obj <> endobj 37341 0 obj <> endobj 37342 0 obj <> endobj 37343 0 obj <> endobj 37344 0 obj <> endobj 37345 0 obj <> endobj 37346 0 obj <> endobj 37347 0 obj <> endobj 37348 0 obj <> endobj 37349 0 obj <> endobj 37350 0 obj <> endobj 37351 0 obj <> endobj 37352 0 obj <> endobj 37353 0 obj <> endobj 37354 0 obj <> endobj 37355 0 obj <> endobj 37356 0 obj <> endobj 37357 0 obj <> endobj 37358 0 obj <> endobj 37359 0 obj <> endobj 37360 0 obj <> endobj 37361 0 obj <> endobj 37362 0 obj <> endobj 37363 0 obj <> endobj 37364 0 obj <> endobj 37365 0 obj <> endobj 37366 0 obj <> endobj 37367 0 obj <> endobj 37368 0 obj <> endobj 37369 0 obj <> endobj 37370 0 obj <> endobj 37371 0 obj <> endobj 37372 0 obj <> endobj 37373 0 obj <> endobj 37374 0 obj <> endobj 37375 0 obj <> endobj 37376 0 obj <> endobj 37377 0 obj <> endobj 37378 0 obj <> endobj 37379 0 obj <> endobj 37380 0 obj <> endobj 37381 0 obj <> endobj 37382 0 obj <> endobj 37383 0 obj <> endobj 37384 0 obj <> endobj 37385 0 obj <> endobj 37386 0 obj <> endobj 37387 0 obj <> endobj 37388 0 obj <> endobj 37389 0 obj <> endobj 37390 0 obj <> endobj 37391 0 obj <> endobj 37392 0 obj <> endobj 37393 0 obj <> endobj 37394 0 obj <> endobj 37395 0 obj <> endobj 37396 0 obj <> endobj 37397 0 obj <> endobj 37398 0 obj <> endobj 37399 0 obj <> endobj 37400 0 obj <> endobj 37401 0 obj <> endobj 37402 0 obj <> endobj 37403 0 obj <> endobj 37404 0 obj <> endobj 37405 0 obj <> endobj 37406 0 obj <> endobj 37407 0 obj <> endobj 37408 0 obj <> endobj 37409 0 obj <> endobj 37410 0 obj <> endobj 37411 0 obj <> endobj 37412 0 obj <> endobj 37413 0 obj <> endobj 37414 0 obj <> endobj 37415 0 obj <> endobj 37416 0 obj <> endobj 37417 0 obj <> endobj 37418 0 obj <> endobj 37419 0 obj <> endobj 37420 0 obj <> endobj 37421 0 obj <> endobj 37422 0 obj <> endobj 37423 0 obj <> endobj 37424 0 obj <> endobj 37425 0 obj <> endobj 37426 0 obj <> endobj 37427 0 obj <> endobj 37428 0 obj <> endobj 37429 0 obj <> endobj 37430 0 obj <> endobj 37431 0 obj <> endobj 37432 0 obj <> stream q /X1 Do Q q endstream endobj 37433 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37434 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37435 0 obj <> stream HWk_1bP.w|qI qZ,RtX\K["e({/)^) K̙Ùs(o~P~{V}ѿ"S(k KR%~SmջȨFE֛|wo7getQk*QhU4UsUn(ߏ47s+o{_tˏ/zu6y|u":)LV`緫F'(?K9-,Nj%V}RFp+uyՍ &6񸍊ll7Q(pvD1d(,c8` z72Vpo{'w̽; s{}`>0ApTp2>e3}gs s>}!/Bp:kRlYCwO1` {!R Y{Z+bܳZZ!KpZkR Y{Z+bZK1d YkZ!KpZkR XBk),=kZK1d YkZm#'b),CwO1dqZ!KpZR Y{Z'bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%guBk),=kZKmR Y=ŀ%b),bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` ^h-Ő%gBk)Z!R Y=ŐIQ^iF,2\GDPIL'N(UW|Sk,tD0vE> ǮᶯW7M ˅0G{vf*5yR$?ԟ+8e>u_˅8~=?]Ad 1Q,2v7]mkB%|z7k7g=JxS |hjqnrP=}_?i4) Y׮pEqǮo>Sp!͌Y2P~ &@C'Zb8JY72|(֬AT^.|'2>1vXƯǛחxO:4:s_^&l-ܤl }=vOJ.I[0]w3gGLM&)NyCSP ŰĻe<HЄڞ±zX'l_u~Ǐ $Kxm&?{wOѣ^.N0^ȥ)Y.wizJ19g\WrxnD)ϔ:TMg)Uuc3:=k-ȶ0<~~,#t<—WTCƯ[s|6 Ŵ噖< V`ZA L+R Z)ieVƴrA+gZ3B*V!hTjE1dq-ZiA0-+hYe-{+bX{!KbB),A -{+bX{!KbB),A ŀ%bX{!KbwB),A -{'bX{!KbwB),A -{'bX{!kQ XB),A -{/bX{!KbB),A -{/bX{!KbB),A>ŀ%bZY~M:_4VU|selhSnBo8M4NSV~xƇ? =:ɽHocx9߭YuۻмcUzqUZ'.gx"_aы``|o:^~y'dޥ xWOS=fֵUM ِ‚g9xl s&Opb`jCOrYvpRٍj@3rjo`]?p ϭc(Y:VxVS5Niʛհ-pl6l2+Y$.f"v^m07r7z]7> p!I}ΤZ*l~þow}nokڡf+ ϴ|s8)tl cn0ӘJt6}#mSL]y:_c`]U{s8c3LOp;AHX6:9Jdy<<SB zO :K=)%_Oq`;C攒q~&чO* 6K%?I mLqNn7M}5Lm޷gqO$#񺯿^Hɒw td/'ya #i)^ntxsmwY'4I)6jmeMJ d]lJ5N@T mooƏYzƔ>.V\!Ve+&1_s t'K1}fDD$[V>i~1?VN/(cNl{^p&\~P m8OStҎZU>bAacqӂH_eKfoկ_S/e0̙4}[5KF,΂V*wYɓ;P5 |jCds'I`nJ;$C`} 1YC|jt?l4?>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37437 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37438 0 obj <> endobj 37439 0 obj <> endobj 37440 0 obj <> endobj 37441 0 obj <> stream q /X1 Do Q q endstream endobj 37442 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37443 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37444 0 obj <> stream HWkܶ_@ ZFjv\G@>xHI7^#]ݺEaxs\q./gMǞ=z{%/^^;;\y}cx2}GWg[vD{]W]s)}s&Ǿ(9Ȓ@뀀^$s˅U p#=N- >~ٖ9 =@G~l>NIIlN8ܗ ce1`qnfX9c XP/,P/,P/-P/-P/-P,P,>RK}H-!>GR#K}D,1>DŽRK}B< bµ3,[=ƀEceǘa1,µ3,BZAcE\+b Xk1fXz˵p- PoVb̰kZr \1`Řa- µ3,BZAcGŘa1,µ3,[= V1`Řa-Jµ3,BZIc"\1"[k1fXz˵p-ƀEcE\+ b̰k%Zp- PoVŘa-Jµ;8p- V1`Řa1fXzp- PoVŘa-*µZr"\1"[Uk1,µ3,BZEcE\b Xk1fXz˵p- PoV b̰lZceO$Iߢsqd 0xy! ؓ,=8_*/[͞uFg[o"{R~S>TeEya})}J}',81aBx 3#a$y,-Xc+=Qbj;.@yvyVEuۯy8a= AvbtIFQ׿MnvSznǼ=bv*BaÂ""u59 8fi+#pR'EVj.zgO|J v:L<RؒjLP7cf#ENI!dDNF07׻cf]KvҬ YIɶrVw-+*fewweg'oZDda0W33X"w88hx{Q$*D  U{lЃ\'}6JB\ 6XɆ؁q#^5L|u[-}Vݎ}yvl/nmSfJ >4&iE[ſe(Tu(Z@Rˢ7>Xi<^a6'g2y{,(_S=3m;"]=STdˡH2Ÿx 'Iܓbg|7ގvzcPp|ݻ֕f?0|d14)n'ҠĤIn. j` cEH g;q2\uP2+*'YieC%L{7r̚y܋'GR$B z"!]$!AXB'ʟP@}t_;]m3 )4VaXvƼ(AۿȡwQy511CF=8N;t34@sl;44zpwí.; UR!q^NRb}gPj^O*ٌZEK/ Ϭzb1LSWci'BG%h9U|gW2p@?n۵DJPS2? B,i?>˛]yuJeb(:Ll|6hv컇j"0M (vQDsl܇)X(UP{:bs1:ޔv;N_Lߒv~%.Y;ޗ,{%|K ZB gu.s\KXѢcj=yqXF6~Vuerz5EXw9~-3sx&BZ͡x;ckftbS͔tc+?8h^צf' S~lo0unp!M&rcZ_.)sK=#I42:|=fMVui9;#I`S9AŒxJ_>|+T Y&Ica 2D=}` qc4G9=f mpשN>x1lzosJK! TI(%_y~נ 8N;\m ًC>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37446 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37447 0 obj <> endobj 37448 0 obj <> endobj 37449 0 obj <> endobj 37450 0 obj <> endobj 37451 0 obj <> endobj 37452 0 obj <> endobj 37453 0 obj <> endobj 37454 0 obj <> endobj 37455 0 obj <> endobj 37456 0 obj <> endobj 37457 0 obj <> endobj 37458 0 obj <> endobj 37459 0 obj <> stream q /X1 Do Q q endstream endobj 37460 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37461 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37462 0 obj <> stream HWkF_A@ ~A θEA>F k՞vݜC=mQK!%KbfxjX//?>_%M#c *S۠jtcU_W*Yo?O͗ݧ~]?77~S]euZUED׬r[-|pWˏ-M'hl;T=/-ĹQ^/VwúzX{nz|+0^7ޫ'/>%ZOK"۟t7[XJ7$_կߊvpas[E|~Xr"H ŐU.G1`IY,˰v)KbԫBbԫBfBfBfBaԛBaԛBeBeBeBcԻBcԻBgBgBgB}`ԇB}`ԇB}dB}dLh)Z!TO1`1JCVbbRK1d1*&CHbRK1`1EjZ!Q_V1R Y"I-ŐŨ/RR XLj),F}ZŤbbULj)4Z!TO1`1JCVbbRK1d1j&CHfRK1`1Ej5Z!Q_V3R Y"I-ŐŨ/RR XLj),F}ZͤbbLj) Z!TO1`1JCVbbRK1d1&CHaRK1`1Ej Z!Q_0R Y"I-ŐŨ/RkR XLj),F}Zäbb5Lj),Z!TO1`1JCV>61FS of[=_VKe|_Ir[-Z~D'P/oh!{ZT 6z!X_=f9Uۯ>:}]=f嫑b-Tc-&jRV~<[t/6|VYn~voovgp7m>nkZ1D#".8^Z\xHw@V5A~: 6a޾[v|_ɰݬuo`ki@ >w 0.R 8eoh>όM?|h>ŋ_O_[ves>D˻?uP+F+uKzzx\o$}NZdjz?-!F ՠRp.0Y: 5}mtkYgThPfCiIkﮣKj+aݖb=ⰾ\phFgk|p5<^ߏd[:wIqo(#ڞf" g!Pw$@@nc[L~\ ؝G  "C.xy{b vx<hv>AmZ 2=2_ƳX@8!@2=r'X@\ @'ַ`<}}G 22_J(((g("Cf+Y9 `k" 22_ sXK&C+(It(LbW}7 \`7KG Ecd:J4Bu _Y Y\$`3AB0 ´a ;La0B;-T(%=!k|-{$ۖb[JfOzi@rpsZiuqqPqXݩ| q6!)ϨX`)MYgAvʭ?qD' vIp,Xَ; ͂)\1' k QFv|ǡdnlQe evXN?z8Z M9 2bРH+A@Oo0;F,=l~Ԏˋ8 : QTpƆ `G? @LE]R7Ƭ Vvc zv¢NmJOVSEX9' ;Ĵ6D.Xَ+j9 -Bhpxk0٩it0LG#: ;h bǶR"1b' Vc`Ya\`Sn;TG#;u ih+ee j "},FvH²BQAemvS4ImU#$H-q7is~6#Ձ:;UO~ Mh8X5Nmmc`@E[|-\#:7O~=hT&vhҹ r;1qz f|W#ÍfP:3`C[o&nk'64P-KL74rZ;18)ct-kg[263ةod'ڶaLrʠ{K5û41 jAdlh00ǯpӂ) d`Ac/!fl+#SY1W:3FnKF{@{rΈN!\?#9I{r蛅13ct0{zq WEWX -Z4"%"(ȿh =|K8*_C\zfwjėP}AEi%bU+`hN¸!~ck?Ęթ=&gss{FCB1kq0tD)e>iZK{[CHi%t-?ŶX{ k%w7 ibFYuQ"#W|"8f1ũe(h >LJ'X+T||~,jR`ݚ*U<|wo{Ǐӛf_ǮUw$7[5kei|W,B4 = L.ST[o,iTgL ?6 {ϻ&L٪Rܜt:rw?E'Pb#zB5 -Ԝέ8nAҴ%T)mv=?Mcu)qfo1,be) /:Ç0wq d4`1umk@c600_q)ȗEoγ86~zZem$4MlH+%Q4$b6&Z,5 y7טxE}'vۡ!shjuhoȎ▷3j*˧/^JZ xܠWwam5QNFj"t׫E'36_-F vf+Xnw8-5VC9W߯j%R i10K2V8j72{&eT_V$ *~1lY5C3ۯ_|O8BWendstream endobj 37463 0 obj <>/P 1474 0 R/Type/Annot/A 37915 0 R/Subtype/Link/Rect[93.6074982 214.843994 184.417999 234.524994]/Border[0 0 0]/H/N>> endobj 37464 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37465 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37466 0 obj <> endobj 37467 0 obj <> stream q /X1 Do Q q endstream endobj 37468 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37469 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37470 0 obj <> stream HWko۸_RF|Hڴ(Eh IQ(2+ EJqwQgk ˗.? ի7o/*B0$,LNbv*#l(hX7UC.۪Z ]Y]\b}Yk4\,Yap]$g#L( p׫jxjՇU['c }O=)>اc/c/c!3}4KѺ:`j]F]պ6ٻ6ٻ6@!umTպ6B{ej]պ6B{ej]F!=2D Pj]F!=2DMjZ(DMjZצQ{O Qkֵi޵ Qk(k(kZצQ{OQk(Zֵ Qk(ZֵiS-GTֵiS-GT4 a節#umBT4 a節#umTպ:j]F]պ6ٻ6ٻ6@!umT+պ6B{j]պ6B{j]F!= D Pj]F!= DMjZ(DMjZצQ{OQkQk(kZצQ>{צQ>dY&-EYkC4\4?I:^} ^p-`_6/r754hi |Zvi[i<-)bO3;X}^9d28N +U e;..DR56 DB'U6 a$aZC%+5̽iA,=akix!ƅPiOndE">7i`rFNe> >rer ȋg[4w>wWW'LzUN3 M ֢T?UoʺV2T0^0LZfبfcF) ƂĦ.7d,]LlUVן.WjZ=s.Iaa9u\lBhh;Qj7m7i >=֠ӵ>$Z(-B˦/"}=/qb{7CCF'zIS/q9ͼ>-H|% i*ojXA,MrMBm7/L"NIfKOSg&,Z@WT'Uj45;H}?pt>2F5Yx HƄ@^l*luSi%_qc2ax7*_8d̲e9's~%h/ۅK9>d\jjfۢ>8=4Ϡھx%<`]^AeZfSjXJK{߃04~8[Lμ\aXN~}Q ʾ.}WwnmLp5OrjsY?1F^!_ǻ@ZNҞ۹ilw1I&7Hbi ^~t&ϛd:oP[mp8*9,C(WB$8-ꪭ͛Ns@+Ea{],H |)l/0q܆9faKyآpg±QlY'Ӟ"+!|/K0ga%scڳV f/j,QZDҗcgz$ F6Cy 0\u%-%xje?m.{R9khmlxH'SOqO=J[cGaq(A{?Z9,4 ǞtQj&l0ZL(csiɝ/naya%N9sVv2gJsiQcG4CHڙS4{E;t`Q~Cu[X'[Ԏu3PМ9N7fRc)^?R勍M ]Q/X3H05p5EyA> endobj 37472 0 obj <> endobj 37473 0 obj <> endobj 37474 0 obj <> endobj 37475 0 obj <> endobj 37476 0 obj <> endobj 37477 0 obj <> endobj 37478 0 obj <> stream q /X1 Do Q q endstream endobj 37479 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37480 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37481 0 obj <> stream HWے۸}W ĩs@\xI6`ov3.;NJaHԈD>ojԖW`AѧѸwqh?߼~q_"&sWFLGi#ġ މ:1E%ۢ/msve{P7U<_7X"9b֪faQa'axS}O>eاay3}>g{R.Pj Q>{jZjCϞ峧6@16D1=*FԆ(ZŨŨŰTRjZjZjCSbTKmb{Uj Pj Q {OQ-!aV1]R|(FԆ(=!gOmbTKmb{Ռj Q {OQ-Q-!aV36D1=jF(FԆ(ZͨŰTRRj5ZjCSfTKm06D Pj Q>{jCϞŨŰTkRj ZjZjCSaTKmb{5j Pj Q {OQ-!a06@16D1=FԆ(ZèveTKmSR|Ԇ(}ynf.xn#bXϿ(I. o<8§Tnc?˧~l3*5v,ˣ*fU'Xi9 r\.,@'R6aM?6cI7<W9yj̱2 NHJ pmȳ(c-1&an(hUӶmQ!4VVxtnhDi[fG9Cֳuu ,ӱLUT>0 ӖOI` NU6΢DdZB~%j[^dY AIFaZ2$yX+.RX aWlSɧHMgPc/ |~?A;2oD"'b=Oo<K`" VCyF@.=x] 71 MG#K) HD44@gJ(N@d)du a2peS^htG0sl{x+8웇G<}{ZZtcW[;[TwOMnhNR*"PK.[)r 70; GL<|m wmԥ_s:mUCsP٪-e#uWGctzm⩫QI%6|4;;p;rj-c~K-Z뿯^]o^=Z+z}%99Зppv 4v6sdM,Q23еF&^{]e@7Z7F,AAʘݥK:؞~-7zvŗ?Y\3nח.gTڣpߢ`n =pjt\>{i,?uԇ>囇MwWUn#-] nK\U/f#Pzئ_sUaO/,eY0.?%|41 cF 3W]'oe4TP7'A"ZVX+(Ripf 䡗 +ٔص?~;+!`2e>` pONM}t#6xBӴ8u05jmn7?hGu|Ȅd=Pz$,Ge挫}P>Rl rSWO]d G$&1{6懮!=N TM)(/g+5^ـ\]χܫu?+:I`r4Oe nfLe6֑;:@F,騮/B6{gspoy>Cw AAmEHI1A PSKg$fc}ïҦ' !gHμy3Q9Xrs DotMcv3xm~g~H vJ{/ћ{wn s,(8Y+SNN@js*~^ߟ쟦f&5t}M;]2IGvG+z[ݜVMg<trH"EՋi0Q$˼⡺iyYo!WBkԃi} 5vMu::4X4ϒv"0 P@6XS_MbjۊN(Q7N4tfUߠl^?ˤdġO* tg>]nCg&+LLٟƓr Uڹi vz Vg:#tfibNmd\u Y DDܝAa2*Bfq аV)8C?X ps7xL8-eyGvC$OyRfS\Š{ex } PKB~Nja9H4,sg'P 货 YadFmY\g(Y1#UpP뗘u@LL jdA޻о)wzdm˅ qkTm{]Fdhu|ς$iV<:CӘI`OMu8H{`ĕ\I" 2v#ڊ'dpJ^lq<=.2),Hz{bbJe6RKN] D)*a2T bm ppԏ 6dVw_NjLJt JhЅNz} O(dw3T2I'k~r,EWLe/a.Y@%Qp,>@n#7*Z\ɓ`wTb֙Q wLwvHL8[̄c;6ކaT4|wWtg?1endstream endobj 37482 0 obj <>/P 1171 0 R/Type/Annot/A 37635 0 R/Subtype/Link/Rect[93.6003036 257.028992 163.608002 276.709015]/Border[0 0 0]/H/N>> endobj 37483 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37484 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37485 0 obj <> endobj 37486 0 obj <> stream q /X1 Do Q q endstream endobj 37487 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37488 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37489 0 obj <> stream HW]o6}ׯ /2`Dl@mEvHCl+9Nr(i`q%{.?ʮg?p7LNHåc2gVJdM"}"Y͒7վ/uoP]e]\VcrI.7fm昃>Y. 9$i^ͧfFm̳\n-NeK˾-;PVշ]};y=+0y򱯺)DjZKbL ;HٻXtƕEC`M 9.渀#H!x1+e V]X|KU^U^u^u^uMMmmm>#gPEsB} y>'P_D B}wzwȳ0mE6Đ1` 1dC YC>r"\b"GUkC XkC Yȵpm!PV 1` 1d#*µ!,B}ZE6ĀE6ĐE\׆k;$pm!+Vb"\bȊՇb!,µ!,B}ZM6ĐE\ ׆׆k5C>r&\b"\b"GՄkC Yȵpmpm!PV 1d#jµ!vH CV>ĀE6Đ1dC XkC Yȵpm!P 1` 1d#µ!,B}ZC6ĀE6ĐE\k׆k C>r!\b"G5kCXµ!X}pm!+VbȊ;3LUs{H6F~4L]"ŀ>xƲ̱!yJ.2?>l^yp]WgOC6ՉuMw&}d\.d6[*)B. ÈU mAvGַخXp&8cXT.TPB/N] u!Ժ4e<^y gYr~coK*h*QuwmwBP<fCp!]߷usm] e -2n`EWC4(ﵒܝP9F)i)=.dh,0"[Ҳ#8[fش4ӎF7c-겅H_}oans62>? 퉊L ) 배Y+n)蜒[kOd{M}+#RM-+'/mߌ)i2hXֱtpp#ω|=A̩iա<_YxkܺiwTn1pd*[`mq7>qVp8,=)Pn5j@ VWbӻȜ\bȦ[*23x7P}_uM uWj]b³u_h % kj.68<{lnЄù j>%?onj@fu@CRZBJD{N x-}Cߍp@m$Qھ™iCv;+NB#ĆČxedb8>9NB؝OP5(!D>jڌNjitx38yB35'~>t>59_uxQ3yέg?~śgXL◲pYgި |;Io^pZ9 x컳"}O,{­G5ajV>4.Gܖ&Jj4\?f%K7k46~1' ۻ^du6e:whp4|q&|ߍχ]S}nUz4,AXEY96Om?핹\(H'.KCMjl.p<0>r̐|^ hzYNMkeV PM SgUpwz÷z['hRB@q*';N>7\?kExk {As4dTHHXr~f94{QXBz] =9dĒc. t`=ruwźz!񂟝& 7WWo6/tS#AC6N Iƍ z h18Hs%-"2H8^Hfq9:0<W`뇘ڽWр-2M$ÚC4gyUԫ^oyk3*\8l[ D3Rs29zN@~ݽ77n ꪃA+?`qiY(逍k=?/\ħ#)#_J2V79}ꐱ=z^ ]KN:=]Sɲ)wvpgBe6R-oW9cVM}Z7-vW}xIf>"Y=*Z$"9 p(*(C3rӼ:g{ ~Qc_(";C!dJgldPݕQX^,Iur0G~}+p\]GcIS8ORI)7{ϱÕWC k!sY=Bݔ'xK҉G1,^q[z#H|ۋߘU[xˆ#}qup^:^oz zݙ e2%SF"Q v S}\in)N1cSԼmSo_ ŰYh9ԭ}+7Ny).G6 !1(8Jt2 aV'}4}aX!:1~iKq.j_PmۡPGCW@ISO8ԗZM_̟P2Ku8B.$T25B^w] W^JٌX!_۴ ):_7?ЈaV'y:DJ&1M(ѿ#݉,PlCJjush_uA治`.:[,1>CIlkcn2$)=&Ukꠁ Ѐ{mE3B RdY(@꠶PClRB#:bE.SɑSU՜chR'8o(oB9|Laڅ@Ӫ}mV]C䉄IITfy?uqk(9M.l >e^b64\/;c3X0W\US71+b Iqw.5q%"fЭ C90Mqk?ml:߫?4sǓt,wl}})~ ~[a,t{0cb!2ϰ&ZS >χЛqI݌Xwox^¿u ߾|c?Jendstream endobj 37490 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37491 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37492 0 obj <> endobj 37493 0 obj <> endobj 37494 0 obj <> endobj 37495 0 obj <> endobj 37496 0 obj <> endobj 37497 0 obj <> endobj 37498 0 obj <> endobj 37499 0 obj <> endobj 37500 0 obj <> endobj 37501 0 obj <> endobj 37502 0 obj <> endobj 37503 0 obj <> endobj 37504 0 obj <> stream q /X1 Do Q q endstream endobj 37505 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37506 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37507 0 obj <> stream HWnH|WC@%6;Mx3 vƆfsN81b8YZKÈ{ZXd7½po{+[ w½p{/{ }W}W} } } }7}7}p{Y J˱Ef@k9F,cZ1bI#tϱ{ZZ1bcZ1bcEk h-" cEk h-Lj܋ZEh-Lj܋Z 5[dcĒ9Y#t1bI,Z #p/ZkAk9Y#p/ZkAk9F,^ւr,@k9F,^ւrXhXdrXh{Z Z˱E@k9F,cZ1bI#tϱ{ZZ1bcZ1bcEkh-" cEkh-Lj܋:ZEh-Lj܋:Z u[dcĒ9Y#t1bQUU[7@vH'XZNh9儖Z^hyV*UJh@Z5ЪVFhVZkRjqXRctXZZhiZFh%ro@9v< YB cZ"ccؐ%@9F,%ro@9v<` YB cZ"cǣӐŵ,=Lj%8F%roA9F%roA9F%roA9F%roA9FG%roA9FG%roA9F%roA9F%roA9F %roA9F 1bI-сh;{сh;{Qh;{Qh;{&h;{&h;{h;{h;{h;{\jqXRcZ">!/:]dmҪŽTCG*oUڔe~rɮ)#!XSҶj}}6zl'C6N-Z+5u/>m8)ea?lѩMәYU?jwM]gOYՑ\Vs>4jrGUMwau_*=` ^/[zf w]'&rzv ^P 6=`sF]Oи?YJ`^7׶hӀ37k qI*Sw~3\ - |ޞ'zmm׫jݩY7 ;ԯrNjb3׾p);N<ΗkuK8yD|pC7|Xj췫~5ߖ5]zVoX:HVOUͻM-!_U?Y"2rکz u:$?AeJgJJ|5.ƅ&i^<ͽي&WjFMT ,О\II[v/@ qʎIt馋q\1N1Eυ!$YNXڣŢ'i4*h6ʹOeǣJ蝐䒠狣v2wtwEꆍϧ2]JYq@Ɉ]oK Yz'#'o/ifsz>$*X$KoȱssPrw8x,& KLp|$p 2 v—$ʡR 0,ƻ*Np6=;ekG&Oj4A^ƃosBtkn3٠C奀3 a?+7Vaeyu$3eM\%um*&nLp=!hP ne]8v ~15dm &6%8\mzȣh$< lNJ(BM' z10Ue8)lxTS;}$!sKGAӾ1TYSW '`n& mΖ5n;ӵR8/hCR߅݇-8G5nbUZ>((JNUІ_{cmu[-%%/БVsѸ^S-;+9獃<>ńnـ_0n۬e+.R?ؚG*Sk[$KrTaG_1TeaN#T[$Aߜދ줎uR\'p8Gݐ(#CJ/&yU(͸MkqD͖ik̈́8lֈ(%*:F-J}oqPkOw? 0B_endstream endobj 37508 0 obj <> stream q /X1 Do Q q endstream endobj 37509 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37510 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37511 0 obj <> stream HWk_1"g9@H`#vE "qwHJRE{c%{]( /3gf!ūN}ջo^H=_ ZĪ4q:):]`TUW}*_ڕ]SUSW?| ^Ua>:eTqpH*MF*vu\wվV'6Bk)>ud݉rh& m˶'E"qh3 c/_E|~AH_[u} rhRq fc}'O s S>ܧ}*OLp1>cs}{Y#b {Kh-ŐS Y=ŀ%bܳZC R Y{Z+bܳZZ!KpZkR Y{Z+bZK1d YkZ!KpZkRl8CwO1` {!R Y{Z'bܳ:Z!KpZR Y{Z'bZK1d YkZ!KpZR XBk),=kZK1d YkZ/b),CwO1dqZ!KpZR Y{Z/bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%gBk),=kZK] {Kh-ŐS Y/zDY4QYՔ[u^Et ^Ua>:eTqd=)F8֑W.fa i C~]r)ނfadl"0rm{vc͢E`T'^G= sYdL6U}z"T?vz]i֛b: Ҧ|F=qͽGG8Gހ&mG8b|; A~ZCu(8A&L>׾iqS?Ikzq|?u:̈0Pp0E@Z~.Os~Fgcs\pi"lt%|Jv)c΢qFMa8Qp\'޼?veՌq70I}N~<_23" !t;M~N퓧I&<2K9o9zaixlac$4/_Jdᡓ,S$>":N3l;Ja:AR+cۮYu!q.Pmv lBm+`Zu!ᅿ{ӠfWu]gͺ[i?d!C0_uGa  >ey+; s󟜟'Vla*<"=>@< gŐ ,-ϴV,hL+bZ JiVʴRA+eZ1LʘV.hL+re#E1dq-ZiA0-+hYe-{+bX{!KbB),A -{+bX{!KbB),A ŀ%bX{!KbwB),A -{'bX{!KbwB),A -{'bX{!kQ XB),A -{/bX{!KbB),A -{/bX{!KbB),A>rO1dq-K=Őŵr/EpUFU@^2yǪ^oR]R_'/zȯN`[c:1v^(8g:}m97~W×8xe db[R_TеNuM۪.?y"./x ^23Ք2Pzo~|Kzj\. \Ew>YxQz0R߀ltģoU}nUW6^ujpbO[׶by 3l\\? K =S˽ʥ`{h`rY_+mԟ /9nIVD+:gmOmVhƇCV.Cx&nEQxi!#eJ]TEꢩF 8UL~5I{N{/Xa%`eʄV`%XauV!BXŲB,i Y6',,OXXaxo3mx6axo3mx6axo3mx6axo3mx6l&-ʹEX}$L[GʹEX}$L[GʹEX}$L[GʹEX}$L[GʹEX}"L[Ȳ6axo3mx6axo3mx6axo3mx6axo3mx6axo3m!f"L[*U)%oa~$΅$: M?O}/3`WEsU._ݺw16߻qmO#]]%4iB_V\:x(oO \Wn5mجܺ_d_Wi)OiU>\l& |W$)/ 'ۖ[?rT_Ot |}*!*49\"g 9WM7ϼ{0.\?O&ʍX+[6WpZQw9հy:-WwtZ|aa<(,·l+vޫVqd!YUk^cY;8m?c?DjsjK6l8&y.t?_ƿE`oߓiT4 i+VV"LXX2jVZ`#Xau*UUXVe3m!f +VV ,>m-f",>m-f",>m-f",>m-#fBͤE {iH {iH {iH {iH O{i Y6f",>m-f",>m-f",>m-f",>m-f",>m-dLZ{i Y* <_LvT8Iwm;=7lwc_=SoB}NCL taӗݰdn2C?q,Y& u里Űesm77gendstream endobj 37512 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37513 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37514 0 obj <> endobj 37515 0 obj <> endobj 37516 0 obj <> endobj 37517 0 obj <> endobj 37518 0 obj <> stream q /X1 Do Q q endstream endobj 37519 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37520 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37521 0 obj <> stream HWkoF_15yI7A_(dNZJr+ޓFB̙9C/^}/SzLB7NQue oԶ~ST2*;vl\mWFe|6 qRFM=6̍./jz~~ߎ&NnӜR EЂ/B>66IV@e3[QR>/7QYUa|T*.P* sѥ$KNDZZF,Xܻ<"F7-po{ [Vwp{{^++kkkp܋jPZ-3Z1bI,ZK{Eh-Lj܋Z 5,Z 5#p/Zk@k9Y#p/Zk@k9F,^րr,@k9F,^րrXh2#tϱ{KXdrXh{Z Z˱{Z Z1bcZ1bcEk-h-" cEk-h-Lj܋ZZ-3Z1bI,ZK{Eh-Lj܋:Z u,Z u#p/Z@k9Y#p/Z@k9F,^ցr,@k9F,^ցrXh2#tϱ{ WU߁Ƚ}-{r10Z"ca.8F,1Z">!:_f|2Jm:_E*x?j^jظwyۍL^feMh`X>.GY9XS qԮ)Ԧv8qI4,S]Wϯ ئ(Olo`q{HnBJͧzj9[ϧnh:R?LG`:S4ӹ&Nw~vnmվݾg7LuW}Fmg2lރo];Nn|7摺↿[!%-v ш+tKjޘ0ĺJޡ\M\:ٚ4%~Ӓ;g6tP>}b4?9i\ .K}4LK틟<ͻ #M Wz_[leӖvիgWW'kݖٮgwj~A[&0\_o^^o࣊p'c3$~&1N[/{/mכּ!#nWq:I>r;|RLvg>0ƓMz8Y?R#mLjKh9儖ZNhy兖Z^hU@ZЪV jUZh5@Z jVZAh)Lj%8YhiZheȽȽȽȽȽȽȽȽ" cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cĒZ,{ h;{ h;{ h;{ h;{ h;{ h;{ h;{ h;{ h{{Kjq,@9F,OƏIv>ojrç;H}nL<11~klӝE Zh5:u‹eQ_+lcj΢R+E!&ACpd iW>6&#z;^tilq6RC^*P.#kRF[Ndu - ֗% 'fU~emԑ]CĨ`sN,gfS8uGkm/FaA֪?e0i!Y$g'gO G{"ώ8-V__0ֿI3k)Kkߕ@΋'ںIwQ{\Fh3W&A\$z&u[τf:W5v n#ҒSLɞ%η&iMrVr血9$tX!F`j}6`͗Dhi yK.A+9WF.XX/g%9>|UL(Sj|P`^*OSjТ6SK*C;K#w*d?u )10F1b$ xh9&1`b1, iWjCHw+IǷwW&aendstream endobj 37522 0 obj <> endobj 37523 0 obj <> endobj 37524 0 obj <> stream q /X1 Do Q q endstream endobj 37525 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37526 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37527 0 obj <> stream HWkF_1pXӜ'9 !awŜDmHj|C{ p8)F׿m~^e~.#.QSi0*6FUjL=$Z*yj_S?z:yF=tuz?Y>HPC ܬhnIƧz}X>ͦڪWg~ywqvM\vc_]u(N<ЏMzV:S?{c*6ƃpV|_)'rN$YFr֜E0dyEkS XFpo{#7̽[ -sow{;c3^p{/}>s s>}.ϙBp_0`>2Qp2R!CwO1` {!R Y{Z#bܳ!Z!KpRkR Y{Z#bRK1d YjZ!KpRkR XBj),=KRK1d YjZ+b),!CwO1dqZ!KpRkR Y{Z+bRK1d YjZ!KpRkR XBj),=KRK1d YjZKH-Ő%gBj),=KRKCR Y=ŀ%b),bRK1d YjZ!KpRR XBj),=KRK1d YjZKH-Ő%guBj),=KRK1` ,NH-Ő%guBj)vHZ!R Y=Ő4T] 7:y^>#ARBVɪSfP4 -ujTpE_oLJOnͦl񽺯kcoonzw4cF0y/NT ԳJ?Pqϴu d(rcZ^L ZiA+0 h Z9iV A`ZQЊL+ ZjkQ Y\bص ZiiAK3-#he-VF{]%i uO1d ZPKbX)v4,%=Ő%h7BSC.YT uO1dq-a'hBS >Aսb ZPÎNbuoj{+=ŰWX[)] uO1-VV{a%hBS +E1dq-a$hwBS ;'Aսb ZPÞHbuv;{'=ŰX;)} uO1c-VN{a"hwBS ;E1dq-a!hBCџآ\(c4fЁd! ql3Q? Z4GYBaNͦM:Mxڗ}5J̽Ѭ`Cت&43ʶ-=4( .i2|afއzWW՝鮯+)mrm&PwӚr]_݋^+ E.{ ި3k>̌0' vf7n /=]%΋$WsBL9VP^6a2t=y8fVuMw yXM6f'6|a,lZ#}Weɮe;9:qEf8J=hN k|_\j5^Nc|Ӱ?&cR_h}-TiQd^ rFŌzY,5G|/6n5uCd3}V }^s)5|K~^nsCvWS^[S|ڷ6;2rJ4qu_mgӟxӋ|z5Y.v6xzX5?ۻqPߏײUb5p{lNmw;tu3dӵӡjxoM3izA *ն&ūC05iA zo7Ԍ㲛e\vWo@^z",[UrofX:C ~7 uLRY>Tj\,v=6=~K-?^`뀓_\s̡E]W VOr+[.0~fv~;快q4>y.9WeWaZ ߽0O.lϧiJXm꩔~$\'O;e+ '\ju׍%^ mr7#8e~gyw>J˝3,⫪> b..-3SdxڶpxY$J*b~—9KEx/k -ܖF:V|E yKʹtP jK?FtHcq N2IU7qW^.7!!tN$tPMѶIiڽ[~=xv]yڞxg.X9)ҞIpr:>}¨ՏzICyDSV2I(J1O5\q/sZ.jx.Q01tM*k=hxi %G#h{#iHvf^G}Zw`̇ L06H󱭪*.eIӡ=[&&'˂N{WɰZz9ePn.eL o$'W{Zl^cb7eU\Y[>/U[Agvi-JC"5:sˈiՐKN/$%.He_㘰?PR{a>ۡ} @-Qlb6bo6q0C;Gޘl 7".3"[M,<ɥgsm5C✃Mv 'a)bdM1ͩ>ܚs/tb.SG 9GIs2V$1LBo D}/+tݗImHI鯟u^ǔB2&1H*hFMDhbNjIn^;IP8 0}:$ ]R=Uok #;58LVY:`a:L Oj}CBU.+`gVx8Lx'f q~o᥻_̇) L$Hb7[g#0h`!NkmO^7n~:U,KjJ~\,ϩ)- \TI+3dh ' @\FHuʬJ6&{kW􈿅3"3VR:z]nQ8 GHn:}s;.QLG7F sTIu?y|H+4[³ ,$:F]mhD -{ %A , & P/yvm"K$q&dxpʞjtW姻ߢlendstream endobj 37528 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37529 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37530 0 obj <> endobj 37531 0 obj <> endobj 37532 0 obj <> endobj 37533 0 obj <> stream q /X1 Do Q q endstream endobj 37534 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37535 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37536 0 obj <> stream H[oF+}xŽ: A j`+Q SIL)nZwekfܦE8Eݙ5n" ^JKJaIYȴ?IȏUrO={2բoG5ti]D./(j2aF7 [2z+[Fz@=g^>3F }s>g@_0B/}=ˬBKubR-8=%j]jRKYjZE@RkR ]Bj]=KRKYjZKH-բKg5Bj]=KRK5t Zt ,FH-բKg5BjNZER-8=բS ]Bj]=KRKYjZKH-բKgBj]=KRK5t Zt ,VH-բKgBj.!T. Zt ,VH-։RKTCZEZtqzKH-բKguBj]=KRK5t Zt ,NH-բKguBj.!T. Zt ,NH-%j%г:!T. :Bj]jRKT.NTA:_'Ϧd:ՠaLBom SeaNFoz d>Z`|j\%:\dž[^l4_=~ l||nTY$j;ժF<}s8mG,g1g.T֪VJ.ۮb6>, r-"SŁml?mg/ffA˦Zeۖp~ ԛzW+ݻ 6 `}[W[8cE_wj;wq5<+ IQi(*7ێe*YUw7 uXG@]wsz(?w/0>NcppY_=''X5͇h6wfSwucmPvUVF+GȜ*ǘ[wJgw/\,f]Ɨ^OJZgpW arZNm ny;s)&; F|[֛/lLIY2?y$,L:T7 (7w<8菳[.O /׏)BjU :#2z\/~]^ӍΧL f;:W1hj]3|)tSwݴ8/M3Z~mpnvqSVpӴ !v}]̫7 b⟇wp. w1^îD3n0\7BVqjk,t(.!2tf~A{ܰ8IHeIQ7}biy=$ 0zendstream endobj 37537 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37538 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37539 0 obj <> endobj 37540 0 obj <> endobj 37541 0 obj <> endobj 37542 0 obj <> endobj 37543 0 obj <> stream q /X1 Do Q q endstream endobj 37544 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37545 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37546 0 obj <> stream HmoWܺ@!1·& xݠ`+Dz)NR"H,>:{f类W/_~;W^wiRSiąS>S>S>3>3>s>s>s Kj0\FL-%s-r\2=%s-r\ Zk0\ .0\#H/ր@z1L-ׂ L-ҋ5`jF.^LS˵S5rbj Z SkrmY0\#LϵS5r\#LϵS5rbj-Z Skr-r\ Z kZ0\ .0\#H/ւ@z1L-ׂ L-ҋ`jF.^LS˵mr\2=ׂ L-%s\2=ׂ L-ҋu`jF.^LS˵S5rbjZ Sr-r\ Zk:0\ .0\#H/ց@z1L-׶Q k\`jF.k˸,KrG\+ *luQYVͷѤ^䩫{,ws}N>VjwˮO1NUjU Apgf=9;|Yi$LyvC%-8;\?3X9p𩦥ں3eF,XNRJ+T2+Lr+\ *BJ*L"Y\#dq-4`iҀ,Xk,{z5rKހs\%zo@F.7\#`{sgY{KF*`[{Ѯ Xkm%zoAF%`[{~ Xk9m%zoAF;!`[{N(Y\#dq=w\mD=h,{z5Kށs64w\ D=h,{z5ڽKށs*w\JF.K%zVo̸V\(lgJ<.qG}&mte60gh?n K_~;s/wo~~:)b,mG er=&*|VJk.&m.ۍZlUYnjov l5(W[O?ߞaN韫Iɓ_Xn6o7my/>OH<)–T/4 ixN;m4?휻o9~P'WI~sZw:(԰tEGCإ;uRߐ\(w MrS،/YUa|Nՙ Fvӡ&y=N/7XNcQUWW7~tzo!N=| c?^2.rRJ+ 2+r+ *J*,H%Y\ . XZ4`i2eKހs\%zo@F.7\#`{ D =Xk,{ z5rIׂ k,{ z5rKނs\%zoAF.\#`[{ D-=Xk,{z5rIׂ k,{z5rKށs\%z@F.w\#`;{ D=Xk,k,=%Ye\~C?y~Y=?Y0&*Ֆa~Q.h`Ď_k"]`u߽I]lv/z}jTSmz6ܾpqEU|1ctgUG{1flNVzƒ8,hM"6;>TòW}R[G^.m[AW͆1\jt(HGdɠh)ޙKR&gE-܏'C"NcsU&1sн>4 ҲΧ~h# ;Wݡ>eJ;/}!\LE뫧| UgFZ:o2:u^إ6 [vY7xo9Δ4>ևit뾯C}5)ľΖ 6wuno^akNN;\}$=h\lϴI &Yvȥ)Z{_w^ur2?7Ww;ҧS𽨛$b(< ^55t=sjaeI?fhtz +")}}l+sK^kVhÄ+0`9q-W 2+Sr+W *PJ*T *Ū,j̸Y2,XbYeKyo2`)-^f,ˌ[{q x/3ne-R[̸X{4Kfˌ[w{q x/3ne-R;̸X{Ky2`)^f,ˌ[{qKdF-̸X{Ky2`)=^f,ˌ[{q x/3ne-R{̸X x/3nį4J#!=ܼ٘{h qуERzJ0}{ៗ9 ,/jfߎYyyWS{l'/~:XoʗKS襞Ӭ|U~LM;&˳UYn0Db|dUEUg6;Z}wm?k_0zg7LaMw9|Pa:h~Hlz ugC+b4\Ҹ9nO݀y5`[W. q.O{Zovw֔qLQyĕnE~ŢH,|O>swQ\]jV\]4,)=ymncQ;y~'m| o5g=.{ý`yC3\+}u/0ͿuS&?q-W 2+Sr+W *PJ*T *Ū,j̸Y2,XbYeKyo2`)-^f,ˌ[{q x/3ne-R[̸X{4Kfˌ[w{q x/3ne-R;̸X{Ky2`)^f,ˌ[{qKdF-̸X{Ky2`)=^f,ˌ[{q x/3ne-R{̸X x/3nį4J }qH7 0b*4G4LC&tlK7CG߯?}'Q56Ӕ7WˊB]K2rapCh9EpmxN}tut!4geyn=n8] >:7xۈ }G4F#vu¦O~+R$>endstream endobj 37547 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37548 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37549 0 obj <> endobj 37550 0 obj <> stream q /X1 Do Q q endstream endobj 37551 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37552 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37553 0 obj <> stream Hks6W`ƕ tq7ngx2((WxDw:;$gMV{wLW޼{Håg_e4OsVUΊDDK>I5{.lWٔf/_{(7l,o5l|xx`y9"e^o0Ieu1f˂PV~[|laYjYxg׏yq7^[|xv@/I.w#*KN0Eݞ0O$bnjG:qXJʘBZ,AaR"ܫȽ"ܫȽ&Ƚ&Ƚ&Ƚ!ܛȽ!ܛȽ%Ƚ%Ƚ%}JO#)>;½;½;½g,rȽ'Ƚ'GDhHZ*v5b-P{*v5b-P(H-ERb ("X >J"R@*"XH-ERb-P(H-ր"R@*"X >J"REb-P{Ekc-P{Ek"GDj(}ZMk@ZQj5ZpVPDj(}ZMk"GDjZpVZQj5Z-Ckc ("X Tkc ("X >J!R@"XH-ERkb-P(H-ր"R@"X >J!R5b-P(H-ERkbmX"X Tk@ZbX Tsat'gflfL*S:hVT'3sUu1TEC*ْ7(+66Ye4%=g..t8\t۪(xJnӛdǗbVVw۫蛚T3ybHxP6~Ϋ(fӝQE}a}o=P<sĘ"O,^|᧜=MV)ֵi}M} byjak}t+qe>\h>|V1(yIvZf%=W\ˤo;8Û}+V.;Pp\Yѻ٧\waaq׭{F%< ^[}ݭth.ж^暺MZԤɬŇι9OI6@ZaܦGl4}R(ikNKvأ`cоcd_H l]3h. ݃<Gz} _hՓ3W?e'Qك5'aӫk~~M̞ˌo?_^݇}{iceے=;uݑ,f58,Ňe ~{$dq9p[|@[TۚlZn>VsJӃO08te_'$)i%K3Yf.ިckHN̫xvBeo ݽ:nhr8̯Y웺 Lmр6C[WE^(,Ŭטy [>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37555 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37556 0 obj <> endobj 37557 0 obj <> endobj 37558 0 obj <> endobj 37559 0 obj <> endobj 37560 0 obj <> endobj 37561 0 obj <> endobj 37562 0 obj <> stream q /X1 Do Q q endstream endobj 37563 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37564 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37565 0 obj <> stream H|WmoH_ѷV$~;R Xw'Mf<ɰc6vcyh&e_4yݫg&6/^<{$>JJCޤ2kE5M۬YC?WYmfњM ʚTIbS4M <՗-hqjj:vb(OϘeEGNdS#u3i|Eyn!n'_ۺyb-"/vHszGsȚ{YBޘOc33AȦ$.( >e*9攂N$,=Ĉ$%0f%'6/1bY*ʽr{;)ʽrrrrrrrrr_r_r_r_ ( Z+1fi#hĘKYڽĈZ+1fVbUk-hĈZ+1fVbUk-hĈZ+1fVbUk-hĈZ+1fVbUk-hZ+1fi#hĘKYڽĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhZ+1fi#hĘKYڽĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hVb%F,Z1K{soB,+5q~.^JRZhy偖WZ)JV RLie@+SZ9ʕVrUBi@PZ%*V Jec%1fi-e h%J+ZҲ@*- T-Ƚژ@%,roA%_,r/1f-{ r/5f)-{1 h[{W1Kj9{1KkI;@KށK;@KށK/2@KށK/2@KށK(@KށK(@KށK/@KށK/@KށK@KށKZKbZ R  R R R C>R C>R ;R ;R 9R ヹ֒ TS2*қ: ^VqU%&1<(wC'(3YZF< >iQb8<~rz#ɾ2 tUs?6u33iok3ɦPߚi,?.̸"{3٣fznXwi7fW/>k=]%f2uӬ"gyY"]\t/wj;NucϮ6.ó88{{>L5~~px{hզ5IcV#f\L4{+yYN =7!={9ٵ91之^vlfz8wx`HW1f\Nz=_y%yDNǯ(2`v2?׷ ,IѤ<\d$OM!3O׍YŊԴP6#yrˇ2i _e5/$JA.f^?uGV\l#?O y1nFfioŸȧSgݯp!o{6/.5"jvEr=L'夭7v15ͭsY.vImz6Gl ͚wmc]c溙4e٘<մ7fњɲ'Ef=bgv5qF|\~+ˍ!E[Ӳ_K Lз7"D /^m;}J5L iL;|Q€V#YCSOfz8o4=} HxW߇Ϗ7]Ə{ȥzs B6> zP~-58qAt}Nv+m']ouaZ^Sr=jz6fJtڟKM-ު-dM)H3y?ޣwapμԾx~Q=|c =@vw mGNyLYgÀֻzqF -8,p^I#t[۫lwJ!|ْJRZhy偖WZ)JV RLie@+SZ9ʕVrUBi@PZ%*V Jec%1fi-+ZJV,вJ-{ r/1f-{ r/1f-{ r/1f-{ r/1f-{ r/1f-{ r/1f-{ r/1f-{r/1fi- ^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ#ȽĘT=ȽĘT=ȽĘT=9m |БqE&!6it<YФ*RQx@șA%Eg2y2yE޳Lާ{+#k,Z=}g2y2yELާ{k)+Lާ{k)FyAa^wW؎+XOwtu+Q|tx[{'P C,dVR@gQwɻaC0 ٸ;T Gi`i<ᖣra#ihF_F*$Kl t5KqC{4jR5jt ÿRZ|(E.I|LZ1L3&Cƻ4Ϣ@ɞ*nQΧ4?-fp4O^G8s9-{/B3]0H@e!IӲB-E(*A`qSk'-ro[?ptSi~s/``Yq!YR@_or7dyWڮiF!M*"b$9<4OɟQ|@szIF!x$>"ALjWf@Oc?0RIM1o%qҪ^v:Y=\?u8tVWjݫ~  +e;|p VTUaLpO2'-s!q7!5jJg uM)iCܵ}s oH-!D?9AkGK+i\.;PMe iaX409"6K:4c3 /\4'oV[ٌ rL$dy-Xzi@*uY1'D2h_pk#-fh.{(e&<[/7YSc$Fǜ9-24Z?\T8۠aAo[3 i<ÇeX0L*Cqd&0jK]A Jсn(iWeHNpSt> \Gl$&2Q A_>L{%0V Tz9t(oNkm)툽x=ƳIUjP~8] ꓹ-Íq7뫛?>\!Iendstream endobj 37566 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37567 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37568 0 obj <> endobj 37569 0 obj <> endobj 37570 0 obj <> endobj 37571 0 obj <> endobj 37572 0 obj <> endobj 37573 0 obj <> endobj 37574 0 obj <> stream q /X1 Do Q q endstream endobj 37575 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37576 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37577 0 obj <> stream HWr6}W`/Ԗ Dʃ8eRl)g( 9KR_!V4ΖK̙4<{7ᇳ7_`g/ bc$OKɵ`Mʪ bAJRl+ۺ)wEהk֔]Up?IU`!3,2a*Xh}[njvD(\|\>0A^b8fWV7+4GFl#.4,e Ly`1>88Ő?ŀ> =}.,AzAzIzIzIzEWzEWzMמzMמzMמPxB}O >%ԧPz3B}ꍧ=Ƅi]lµ.,_p!Wbջ׺kZCs \b"\b"{k] Yzϵpp!PVu1d= µ.,µ.,BZAŐE\+׺.k] YzZCŐw1`u1d=Jµ.,BZIŀEŐE\+ ׺k%ZZCs$\b"{k] Xk] Yzϵp!PVu]׺|.,µ.,_!Wb"\b"{Uk] Yzϵpp!PVu1d=*µ.,µ.,BZEŐE\׺׺kZCs"\b@u1d] Xk] YzCpcb ׻*8[ş*z8c]NlN>^O,)EҌİ(8=YkrI!JɫnY@$7d=6,imļW"paCxچWMY]/0.;na$]Qu˷&ʺz: ;x]ln6 !5(1Ib [D4@,H|(DxRgbS+.8qEd#"̻b*ߕ|: ew3 m$8ZMxd_4m!/3g{[wŴb>..fR\JTE{x|F3 ݧV=tmJ&EOJs<8ºU uñ~.e7: ~ \?6J(}_OߌŁ,|6I eP^'"q3tqeYUSefFl [Q_u]u!ۭu^*ߎ֙Ֆq g_K@}5`Kқ\zZAk%1NZ@TUE~Zp,Y:Ѩ6h M-JĒHl*pC_eue wCke&;gNby͛uAʅb Gx HCkkOxBRY̲_Vkt#^ EnʽET#NAg9S8RyVޭS01HRsLY k(Mc.i]1k\ ^T@9.u)?KW,H(phHD*Ɖ $ķv6,g>>*la=DصP^ '8a&e< d61#eZc6 |,,^lgBy$P &#@JYa@0+,ylSրY9\teջ#*ІEm ny $bI:_ E,|*II9V0Wt_Kl:m#g%AoMO!R90LAsIRU䧖My709uUؖZl.'09dFMq[5.]^VH/q;ShP l eԄ3]w u꾶v0 l)ܶ;jpd!s}ɹIXA6i}E8I8*t}h;&=;*2aNy06i9{yl2tgiCp8[йJlHjcv'vzTb-zME-6[?ۂ|3}>do'N)M~MU1n^>QhMӡOCXi*tM<-'O<AA^C"=iKL4H̺lF{ v3fvcɮ@U)}''XŷBk+L v[16U;4tكs0X^r rDak?^"T 7֔`G=Me:Ʃ;iꂹ{lB6_CfqӝCuCX]'q>+ (SPM}6b|mj eĻORet^} ӹŐK;]Y;%v;cT:-2.Cַ/7{qNu?lSF_8ɻ t'R 0-b %fߵCIXiw &ިRmZjb4v 5*!P \qY2B*W!p \q91./py.ϸJd\U2JW%pUK看Źh PJRK \qiK3.-p1kA4(^ 1D \LZ=!Jbׂi QӽtOc{Ct.{#Źh Pi QӽtOc{Cto.{#%p1A4(1D \LF=!Jb7i QӽtOc\4(A4( 1D \LV=!Jbi QӽtOc{Cto.{+%p1[A4(tOc\4(A4(UeUU`ӓ&8_̫*/?4|=ԛk>b)*r \.;,}ep܌?ni?>j=:F?\硗G>S=4G@_}g?gNUendstream endobj 37578 0 obj <> endobj 37579 0 obj <> endobj 37580 0 obj <> endobj 37581 0 obj <> endobj 37582 0 obj <> endobj 37583 0 obj <> stream H\T PWfQi2a&GHA ~W$F`dFdX`lID TL?ą(5,}=QSkW{9hJF4`ŋr&ͷ; Imꎤh%JĎX_2e 4z*rVEi驉r͙ovۋ鲖mrrsnGFve\V:(qWy%;H"9.}b( j M)*fSԓj9E$P GM\M:~Vrh,"f5mL{MQLYGF$' Ќ `fur}e`^ 74p"P!`[[ {-|ϝ@[jLK2< ϒ e2$@188%v!*J1͂42g oҚ꫘ cn ԅ?|WW8Lja7>qW/J=ï|(w3hx_ ^0=\h]SΝ&WY%uqs8V7@J/ Ml5HpTH!q;k .mOnoQ,dlD4η&*Xv>yI*dnjَ kO#ɘ (CXR=aGoZ,0_邨wDH6tv?)KmtHg_ W@րG-\~k>* T7LʱbfƄl9p2ֿOT74]r mR}-K-,dl~DLd ;!; 9"#yᴤvm'IEWaE+@DƗƙ9Zh@4 ~vhױ l"̉ v Dπ< $]sdX%V1{v9fzM#DO}Q|O]SmUaHUN*'ET_?_q_?rβwH޻@w 9DiFQ {CadS0@F2!=ϓRO=)/7iŕx?Tc`9.f ΓA-cْW;ty /ɶZFUBã&?AR&9_M0uݲ%%jpFnSGݦ6ΑnSkO A#P?)8 3VLxL0x*%Ƴ(K|[BaF%`9~RLۮ>б> endobj 37585 0 obj <> stream q /X1 Do Q q endstream endobj 37586 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37587 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37588 0 obj <> stream HWnH|W4^4Kflg0"80h#qa}э9AFJجxݬŋ_Wo^'&6d6 }V:S>+YGLr%ffξWzhجg/I^둽sƚ4Ini6EVU~1=- 3#ۺ"'?0;+#SlfӚ+WffѻP\Cmׇ%.߱oF? g<W|I/3Wp^"'XHNԜ(86$1f$F,k5K`*KzVp{;^W=p>A/B/B/B/R/RJJJZZ}T#p:kAi%HhĘKXcv/1fi#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu[$Vb%F,Z1K{ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZ-Z+1fi#hĘKYڽĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhIZ+1fi#hĘKYy64,cZ~ KiVZAi@PZ*V JURiU@RZЪV jUZiEVZQj\kIYZKb<-,вJ-Rw 놵!KiKY@KށKÆ,r/1f-{r/nȽĘTȽĺiȒZ^bZqh{{T=ȽxZ*^b<-{r/1Qʽ(@KރKrA%R h{{X$,%1} @K>KGr@%ƣR |r@%/@K>K_߁}-r/1~1Z*^bb$,%1~Z*}b_x%ף5֌I g)"`ŕ y^$::#ω,u2߷lZ3]6[-:~n̷fԚvZ#΀?c?4yܮt'f5ٙvNl9i5fhpU;ግoֿZtpv:bUnN\m^6FNp$yVqew!P܀4[?޾xl*f#?>3|kw'9^QΖ/:}6L\eݞ̞3oukf[ miss⿶wpOӆE~lG>UvC|?O~pO$GD^ wWLkVoV>h.l]irOKsNui>vfti!n|gCF gJۧO[J yc:Ugy|d֦j YOrGAg٧r GeXgnh)坁3RKo|><Ěn`U3G?6Qe x;W:W֖;ty4Ngq:3c˛rnDyDL%d~w$bݻY3cO֜{zǦ;;Φz6}Zp{|fM'KLeo/ ^]ꮷCiv<-oӟ' waptdhj^[ѯp#?]vNfDvIÀ=L:%az="ŗ B9ۭ xL[@J}sZxDW!&ri cV"bPQZH 5}3w/5gT5㩩لa 0i>4Vn8ǿEn#_ oOco$}Ve 'EWO^o5Dt~ {._0a7*t?,!v%!iuAV4܎׷ŀ X+JKL;oiV.Yˠ4](;GۖۅAkeSN,T3)VV[f88bD~쾶 Iq0bsVfֺ^iװqU@z{q<MRɖ wp9P[Y&5"3lUS񌌞w3yK{RUzYrPvÚ!RrsmUiQSXD&W(q"ߡR?MA,͌V}L;K=BW#zԼÚ4ACgT^ӹo;c<8,Ai,Oլ;ՍW?6C-P0KLLv7-pDLZw  ZTaD wɠ%&BCtB{oMyKv;2Gt e kL+%I7=NbͭM=]1|AÒ&1Pbo},g.1/c 0$ro$Y TZ|!Va+G UlVQJJe^S&DXLC?n=?|χw 0endstream endobj 37589 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37590 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37591 0 obj <> stream q /X1 Do Q q endstream endobj 37592 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37593 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37594 0 obj <> stream Hے6;)5ƀ8@r=uŎ7YR]S 5#x~xP)q\)Gvkncϟ_G&؋~bcR3cO$Kōd,`Qr]ϖw1*&_eM>g<|}#6z5.gb1-"/1cTX6[E&/문ag҈ٛ81}1eqFq(rWtRp\^" j~+Hqf``/ I{9p WK&r3.dbb<ǀB1O8c@IB KB +B +B +B kBkBB B B '$P@}JO)> ԧ4Po 6Po 6P.Pgc´8$ZTǀ"\c 㘧B8Z>p$\c"kq (µ8)B}ZIp$\cH1Oq (µ8P=y*Tc@1O*µ8)B}ZEǀ"\c"UkqSp-Ep&\c"Մkq (µ8)B}ZMp&\c1Oq (µ8P=y*TsN3:_EflXfVQbx’h4Ҵml)අ?z[R+lZJMڄ∁u}Xnp'AmQSDܦ?x}Vɸs?ݒ~Ѽ ל)tZ=b=<엷x-Кەܺ$nxL1)7~]Ȏll,)F5VRZVqٍ?8\T] MVV'UUolwpde[zTeMT`Ԟaz=B'kSoo .ɌI(.oh mޙ 77c{G$,^]e?ͰU?d^;[pQw9'?s>q` ]'OI4A7IHt]`ӥLÑ_wn3}vQx4Rܥp.CeJlܽt#ǥ=jk%Om5 k,/?gH'N4]v xǻ@AєJt73je̡L)MgzP>[]^ \7JWćCWMVwMU^ޤ6@EulaM\Ny61’=On@hXnjjr3m:B?R 9rA rev]nEtq m'7?~~4\%l~S?4M)>/Nl:WnZڥOuQ7)=~mڙ;lqG#} }7|ugJ?Nc1>׋TB_7 ptd&;.媟>z6UYs$ps] an2A bR٢Cw|y:񛌪? h`_忿! "ٽ{ٻ7o҉3E>5 F4cFa85ҐP>0ilmu~;hStP&TÍfx'}}ğPpITľ'3mz~"C+Ԯ'>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37596 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37597 0 obj <> stream q /X1 Do Q q endstream endobj 37598 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37599 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37600 0 obj <> stream HWnH|W4N}7`8b1<ā!KX%e)9IS1JXTWL~v;wxor'6d6 }V:S>+Y'3fitѾmu˙Kg&odkgiI&HkӬe;-7ksy>||$_d'~zΚd{Y{z{)lG٪z$yflE/k3go|4fnJb5$5' ͽ"IYq#%0f%[KXwʽr{{+}r}}}ܗ}ܗ}W}W}W}}}G>*W[%Vb%F,Z1K{ VbUkhĘܫ:Z VbUkhĘܫ:Z VbUkhĘܫ:Z VbUkhĘܫ:ZZ+1fi#hĘKYڽĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hVI{ Vb%,^b{Z+1fVb{Z+1fVb{Z+1fVb{Z+1fVb{ Vb%,<HP1?P#0DŊ J+ U(hJZ*V*U) hUJZҪV"ЊJ+(\$,%1րUZhY倖SZh;{ژ@%,r@%֏acʽX?`YJ ^bZ*^b4fI-r/1fi-T=ȽxZ*^b<-{r/1dʽ(@KރKGrA%R h{{XT=ȽxZc֒ @K>Kr@%ƣR Qh{!h{!h{h{h{h{\kIYZKb|Z*}brJ6ɤiY$@0tJS11* <<;|PgUOL, Cnkwݶfvuzgvf-vnnfgΚҁwtsv5lܬ ]ϦwwomL\A񤃞_v57m6wtwpqM^,k2qM74ÕGOZgDN MwzxCc\/Y$|soGr7Wg@YѫǓGˉqKt_3gO#r{ <nNzz{vږ4vO갛Y9`s5|Y5lwf>Mbv|kC17w-ca]+X.svyzŦY =J1/ސSyn%}:wԧ9W6+aR|o"'^33k%+#>#w K` 9ZX<}9l_~ܘuO)p\^eh{Ck3&E<{J_ϵ7 픖~9%}֛>7BNj?l]ipA~$gt89pOn fuO?SK?S?Zh{[nw`;{f'wM{rg/dU:?b~n>qqq?//schwʪiۮ߯_ 6rik =t\50+\EEvUROlfX=xxXn=^?_egj w^q nN{~;e<~ UeNt{WN8>KYVZAiV UBi@TZ%*V*UJi@VZ5ЪVZQiE˵Ę$F, Ҳ@*-r@KށKY@KށKY@KށKY@KށKY@KށKY@KށKY@KށKY@KރKYZKbʽʽʽʽʽʽʽʽ}Ĉr/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-^bZ#ȽĘbc IM2i34>E^g;֖Uz]~ ~;+qgܶ<-LƪĘѤFwsAV܎=.׳rɧx_ xtWvn#csy퇏NjE `Iև -X8x'c%)9d=I|")Iг:k;`܍_8x,\;u2%d|TJWV9/\矆qZ(qk0-7^q ,2x/4_QK#"չ^6YP/5 ֍w4{G ̛lYC%+S}cM+0S\Q# ])%#+Q Yo!J 3 aVUU^ݹ8n t,(b(Kɴ|3i]" X/#˼cV@\q2ٷs~6ESwk, D FHn *|elendstream endobj 37601 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37602 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37603 0 obj <> endobj 37604 0 obj <> endobj 37605 0 obj <> endobj 37606 0 obj <> endobj 37607 0 obj <> endobj 37608 0 obj <> endobj 37609 0 obj <> endobj 37610 0 obj <> endobj 37611 0 obj <> endobj 37612 0 obj <> endobj 37613 0 obj <> endobj 37614 0 obj <> endobj 37615 0 obj <> endobj 37616 0 obj <> endobj 37617 0 obj <> endobj 37618 0 obj <> endobj 37619 0 obj <> endobj 37620 0 obj <> stream q /X1 Do Q q endstream endobj 37621 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37622 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37623 0 obj <> stream HW]o8}ׯ>(@B_Xt H^CZ TIڒWɿKQvt2 jQG璇%ԧP3B}Y>#gPsB}/E i1$Z9Vc"\1 c̱BZ9>p$\1"k1,µs,B}ZIcE\+ b Xk1Xp-PVḇk%Z9>p$\mḇBZ9VcḇkZ9>p"\1`Řc*µs,B}ZEc"\1"Uk1Xp-ƀEcE\ḇkZm#McḇBsP=ƀEcE\ ḇk5Zp-PVŘcjµZ9>p&\1"Մk1,µs,B}ZMcE\ blµsP=ƀEcǘc ^f Mmv-K[F'0Y[n\Oh|Qf߳WlaբC~m}5?̼*Xg-s5 mr۸_4}ǚ[F1(yxʞޜZ1-$nڗ,3nr}h޲1%v^"fG>O!IBLa/ 5^6Dg{oR5Nވ|6#oF1|c1<&)l b?gyS κ M]|]~ !?O||q5(c}:JQaϧXTJ>&7DAK6&II=i*7:7wSUgsh^â ?/L\ ay$L+/7JS7͹qV0=xN x^,Yef]ÚgÏ>FB#վ 5Cȡa?J*U7ǮF)bVi<(9B'$RSf,T8WOuDpy7\5LAcK , $ގmԅuٗGjew]ѨII;CUz/?me;_s{||ià.Pˡs4j9TQI隓Qz]wIXR&Ba Ll î|VGl7DlI!Pkݐhs : ?R/MM~USw^Ω܏xv&8ůUOx),"HQqF\R g-&s9%l垵Mc|>vW'ھ :_7˱}jv}c<-Z$\H$,DT< ug_סCU'xNMtt:܅n&Ef`lIh v)&v^k;uwJ6k.sޤ D p 3 4B#t!ZeeN,MYS[.lGÎ&4#uN{vM6v~r끪v6(swd-p T۞ZjgQ_q LilȰS5\4cǴUtc= 0{rSoejr&$*OΔF g cx+5mMiبf X'S3{ 9ÞIĸÈychp8{J3S;oah/=%2S6ợvrA?3;/}EiPrٲqN|81ٱ]ٸe XdIZL/qJ*+RU5cwJ& ]LE%,K,~}OCB W^G种&mx_4…ڱ}zbc TCջnofAkۭj7-dlۜYU +qz޽JJ#69`}ԢW|d`TNފBZa(@|h/7u(NGd`p}a8ƩO66ժt)<7NjG0+jƭЖ_C} GֿԈ3mkֈrߏk\_(.']QymfM?f8BCO'`a琒cyvқa mÕ"x MW~6-%g%5%,TS9;n`odžQpԅW3tW +8zXHF<\2_o c ZHZ^_kv%oDsZIZiք>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37625 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37626 0 obj <> endobj 37627 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37628 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37629 0 obj <> endobj 37630 0 obj <> endobj 37631 0 obj <> endobj 37632 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37633 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37634 0 obj <> endobj 37635 0 obj <> endobj 37636 0 obj <> endobj 37637 0 obj <> endobj 37638 0 obj <> endobj 37639 0 obj <> endobj 37640 0 obj <> endobj 37641 0 obj <> endobj 37642 0 obj <> endobj 37643 0 obj <> endobj 37644 0 obj <> endobj 37645 0 obj <> endobj 37646 0 obj <> endobj 37647 0 obj <> endobj 37648 0 obj <> endobj 37649 0 obj <> endobj 37650 0 obj <> endobj 37651 0 obj <> endobj 37652 0 obj <> endobj 37653 0 obj <> endobj 37654 0 obj <> endobj 37655 0 obj <> endobj 37656 0 obj <> endobj 37657 0 obj <> endobj 37658 0 obj <> endobj 37659 0 obj <> endobj 37660 0 obj <> endobj 37661 0 obj <> stream q /X1 Do Q q endstream endobj 37662 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37663 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37664 0 obj <> stream Hn9)xi_0E;b"`/%[%y%9oCdQĖK_'W矯x[&/~o# Oe ;ż*_6fFF5k\Ϗ/7~Yۯ+v{h^ϚVL٪0`Eyl|x\׻-|iٻ6Js%d/\.v٧Fpf sԄqkef&.SV8.huBܲ&+#}؇ݰ&jǕDH7M}3f"bc1)K%(]Z<RR R R RoRoRo Ro Ro RRR R R RRR R g%aZ4p-%Vc@űDq,Qzp-%P_VűD+*µ8ZKr"\c"WUkq (µ8(B}ZEE\Pkq,Qʵp-%P_VűM Xj8ZKTU1Xk5ZKr&\c@űD+jµ8(B}ZMǀ"\c"WՄkq,Qʵp-EE\ Xk5Z4p-%Vc@űDq,Qzp-%P_űD+µ8ZKr!\c"W5kq (µ8(B}ZCE\kPkq,Qʵp-%P_űMc Xj8ZKTU/grFܤh%@ӈpax`8ǻeaqn$Gix\oo;f~硎A-,AMFJ}i|/eXn bqϱ%֦XXj{?7DTnW*~ Y-V+$1+$m>_!h/BBWh`5F%zf㽚zX#z< X_,kZoWf~\鉫LN7Srv|W^mRʼn `_]CWv/ש=5 AhS&J /{T-,GB`EKtdr*TBt25b#*>TI(MĆ'tI]fP.jB(XPڣHGE( w(Lieكt"*؊":YQN`N꽬{P VV_r?jhur_"܏ s?r'Tr?rGTʹQ9Sc9*~LZ}ʹP9#j՜`Qݗ$Ur?J~L܏1Ur?P%c~J'KT *S%Ur?jsLDu_"=gʞ3ʞ3PeSeQySe猩 Ts&˞3ʞ3B9U1U*{Έ:فpvGp}bEiImNfEW׸. 6| 75}E{4Q$-D!MiӽzܧWГl+ҫ:Њݷ߻&$Dx7VI2H6h]oM?LN2F.G6,?tL\nIhqC{ )OvZ uw;o YFȮIbT۬/TH}KuNeևs/ ۡ*M RCSU-11eGјR#hB(lE9{QV$Vl>D>Z}tHRhMjTB%a/k)( {z3;Μ ˽ n[~~{ɭ5gMDvr;z{vt[#Γa3Ryr!Z[ >8>e߸}ݖݦ6^MyحZoWCr!?yF;(o?{.3g\{9{9ϓ`(^L.嗈l!/,gc u/+gC)Y}Kہ/Jej̏vܚ(8>}J3[,'q0i`=lBE1S :p[S"J*YQILJV?UFD<@%Hfq@>@Jʂj~^0\%U 0'cl\hi-w\{K)̵z=in&nӕm/^* hhAC䜵V2_>s&rl3/ p7:u߻W(QpؿEaLaa;t# zD!x5eHRzD!"Abz 'tO:N7Qh: 'Ú S8y 'OKXB}a,R q\nKN8JP5

-'`(ѨMrͣ`qp)[kT#%`+Gk\ޟG(X; s5PTF/n0pslJ#}#*P97rPdS.~r 85(9l I{l"4QjbMX{KR#=zip  d0*{ގ(mhOLsQ{&6=|b r % O~? <\x )<ˡϻ5mRmחuc\*TzɈ~KW+R(6a,e|fGLq?fX,AGRhy)jS9j׫Q^_vkzjȣD@1G2HFtL[֗ʇsP(=̠ h#~x}g >1~%.ҿ"G`3\W<ɹk/m\/t@Ay$xu oևyjټO}{מV$HOON5X@"Qa1#V,lbז8@'8^ hQ{*C[fh|bl"39k]{Yۮ9,0 26-T^zַ!nU{AbF2vt@p[%TiǸ '$ Vc-+){ Ք{Z@zl4}s9n]C5s{{Os_CkFVB{?nϛ60 Gd͛ wi߸}wbE!SWspY}[~G8||ς|}(;.XHTʫ]{net@ 5=^ptQb39ΏZ.slnzE?Pߵy_{vaV0+E?$_u_nJOM!z{_G4\u}-j*spܯh87x 4b/qzƂ}5wIʉ9[jes .6ad;WO[s# l_`{thX^\myucݵpEGzM54n[7׳$&}_OhߥqV fWcTӾH}E]-g>hC9+,֣#%LYZ.i0@mm=/tnnd=ۃ|rj/_u;&~ׇ?`\Rendstream endobj 37665 0 obj <> endobj 37666 0 obj <> endobj 37667 0 obj <> endobj 37668 0 obj <> endobj 37669 0 obj <> endobj 37670 0 obj <> endobj 37671 0 obj <> stream q /X1 Do Q q endstream endobj 37672 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37673 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 37674 0 obj <> stream H4;0=+ %B0EBi:$@@YFgqy DG&Ŭa=Bk]vz_4uS$!1e6/3n'OA,endstream endobj 37675 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37676 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37677 0 obj <> endobj 37678 0 obj <> endobj 37679 0 obj <> stream q /X1 Do Q q endstream endobj 37680 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37681 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37682 0 obj <> stream HW]o۸}ׯ 4Dbifq[l؇lQ(2$$7Ϳ3er.T!yH?V~_}&;0."83 2uA5,].o}?4fC\כ g1<%L0&ˣmnuъϛfhaV'rXŪnF9*(N 'H,2VE"֛Mor"#}mYP,H *e~2u1)L O>!*%P.8ɻ>@q=s= 'c}JO=)>اc3}F<9>cs}A/<ؗc_=Ƅh]_pBQ>{(BQ>{ׇ(Zׇ(ZN!`節u}"TET պ>D=rBPj]j9Zׇ(ZNPCS-'TET պ6j]|Pj]|Q>{(BQ{OPCS TE!`Vu}"{j]պ>D= BQ{OPZׇ(ZA!`Vu}mu}ٻ>@u}ٻ>D]պ>D=&j]jBPj]jBQ{O Z(BQ{O Zׇ(ڄPZׇ(ڄPCSmBAJ!gE!g/ò,YMppX>3e%۴݊Z_ytljX@y+ FNR=f׌0pDzW&9֮~jNnM錱SMcz0}{IaXŪvUoM7{<~}[ɶ"]BhӮ"^ێڬǎ ^S$p-jvt3$}Yƽ(S1^ j4MxQhq5ݣi W4 i}|!ZҺ`3D:d5 "Müb [IR41r^-*АհoIaĬɜYڛmWu{?rikq?5?`_AW̎mt0䤁ScU1TQyLa57M=Kbl?;)* $j6H0.R>wڨ#0Y­+,2+,3 ǏڐA7~k߫QEf v٭p; gzE, 7h8|ʠmj?jC(z/:U0ri iټe@J8L䴖cWOe;B-&CÉ aMmjU&yy _ ڴ, ha -*?[!i } y Cz ~tA4'녃J0s~>R4ñFefl~?RJg1,]ɿAj&~/f U!ϡvhg cJVuu* \u̇DeK9,`؆x9[}K#&0L<TN `5T -κHi'xc@?N`-Yk^xc(1"[se3;2:yX"?ͥţ1!kRTڪlyG%xj@6 ?`@\،DWjƎ7Z At .2L^RaRK.ŠtG r;:$&kHҹ5d׀E0eX7hdn.ʴ_`kHb?F=2u1Xoa^&KT6J3< ?6[ d36`XsCIéy$KPpOIca6惓ayݷgsö֨6c`8 $d`W373/34T-uQwwOpR^,C[Q| o%fM7sqkz>'ߗlG?mo] .5NVfOػխB[ɀuHllʴþjlݳlm?slvRN5j۟L|z{ͳ ;~>1xn1b4@>*>,POR!Oht,+g tK4^a fl/A[ PXj矽 8rNj╞P|G3ʤ9@3^vU?x?g%SK${`/=e&^܄,XN( [_W )LUT7zj8IlFBֻRH7NRᛱ)i3,Ä*Z Ȁ6 " J$aHPcbIFG2zw)c n|Yz)Ө\r73^% @H y!,(PR/"R$Cwl $䱱=-HACI֯yZY7f MBsB.Tp5*#"T#{_F4g,f&SݪcFi-S1,,> OG!i$je3Pl^:p7 Wk,W9/?GxFfQ36: B ]U[%nfN&aͲV\|KT%nE՛+㠗UtUb*VҐb{Љl z?YvZkƓ,9ؼK[Qڲey,.@/8Aoh`0[`*Q)oAwUwK1OuNX1q]S]߇,1P5qp_[f3& s뾻7grNX£OK@Sv%tw\5ĝJsgՔ'=":~ٿ6OHendstream endobj 37683 0 obj <>/P 1538 0 R/Type/Annot/A 41560 0 R/Subtype/Link/Rect[93.6001968 663.229004 184.404007 682.908997]/Border[0 0 0]/H/N>> endobj 37684 0 obj <> stream q /X1 Do Q q endstream endobj 37685 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37686 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37687 0 obj <> stream HWkoܶ_O lh%QEQv Mݤ@^k%zlwF]'EJ{|8<$ Gv~K?yER3c%Kbōdm b@2lڢmfm^Jt%>+&>HaL XY-ffۇ՗n1 9 HB*E\Wudߙ5ا"vǂ"EU&3 Aj\NsR#"\ Yt.,!|!,Wx$KO$KO"+O"+O"+O&kO&kO!O!O!O}L=1>'SO}BOԧzϳ0U$\bջ׺|.,_p!PVu1d=Jµ.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] YzϵpU"\bջ׺|.,_p!PVu1d=*µ.,µ.,BZEŐE\׺׺kZCs"\b"\b"{Uk] YzϵpU&\bջ׺|.,_p!PVu1d=jµ.,µ.,BZMŐE\ ׺׺k5ZCs&\b"\b"{Մk] YzϵpU!\bջ׺|.,_}4,&*8_+Y1VA3)YDlUrm}ۓ՗# ĎO䅈 U Ld5J08QHVp6ĽQRwX%tm/ K.v[aT"yllR ˭>3i X8x<>w0Jzk W=XϯZ VSs4Q(agT[I \<^2Ƚ~,7eq:_b gg)@m}.ʬtٽh#bl dc2 _=se 9Ї^=4vh;g\B(5"!hcD¹wU8Iom5ݭwJ XG}$RqE\yYfNa~dd\5m~*h$|pdN)m7%&YILV#{*1 [i.EtJ9 *`pؿqßcۂc*[bv.gE5vӤϨMQ[nyp*3QGoáIi#SXՋwMp! ~*Eb4>VYY6_~<<zrvٵq7Jg@i/7l~ l * F!\$nвÆ!{; N 'lufcD ,܊q5kTToU+wD Aum V\XW3geΪ':p qFݦ,V7IᤴMP'D-RFmwb0Sܮ2 Nqrgѹna.v,>&ĸmG^>s [`(s;UU`[_$@qٮd1ᾲ8PC<6M%M0=swjjC!G]ܕHfKZ=.\T0Dee4~{4V0-~o .jS2}r~':|CQ8 e>./pȓendstream endobj 37688 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37689 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37690 0 obj <> endobj 37691 0 obj <> endobj 37692 0 obj <> endobj 37693 0 obj <> endobj 37694 0 obj <> endobj 37695 0 obj <> endobj 37696 0 obj <> endobj 37697 0 obj <> stream q /X1 Do Q q endstream endobj 37698 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37699 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37700 0 obj <> stream H|WmoF_ Uk _6M4IQ$"ӖRKtIFq~)>$bR!w=oo޽Uz7ɟZªp:k>ubV%inVM{v]3t۵/ur^ 'TP!j2TKE@ss6GާM8Z-lapzO~h/.K{YFk$ӐuKUdk^}KWhGᬢ. I>&! 9qLcĒq,,+,ice{+[ w½p{'{ }}}}}} ܗ} ܗ} ܗ}W}W}p{YJ˱]bAk9F,cZ1bI#tϱ{Z Z1bcZ1bcEk-h-" cEk-h-Lj܋ZZEh-Lj܋ZZ %cĒ9Y#t1bI,Z u#p/Z@k9Y#p/Z@k9F,^ցr,@k9F,^ցrXhXdrXh{ZZ˱]Ak9F,cZ1bI#tϱ{ZZ1bcZ1bcEk=h-" cEk=h-Lj܋zZEh-Lj܋zZ %9h-Lj%s,@k9F,cսEj!! V,偖Zhy\h@+Z*V URh@ZЪV*VZhe31bI-a heZhYeȽtX=LjD-=Ǧc؜%@9F,%roA96,r1b-{ rϱ4gq-r1bI-qh;{qh;{Ah;{Ah;{h;{h;{h;{h;{ѱh;{ѱBjqXRct`Z"ct`Z"ctZ"ctZ"cZ"cZ"c}Z"c}Z"c1Z"c1Z#m}rt,;]ur^FU_%a$ׅ*z|Jujq,K\\_r-.EVUGr~$on[UquV٠2]_lFzPۋe~X.ַ?@Wr8B;lLrܸ9gh72>٫~X wrdA'dtSxN~nF?]]K)FgqeǗs5[qNrtR}>,`*n"vHO^ğdEМlsiF~jf?q {woFm&+49bŰ㦽ɴǑTK5FDF=|L=S[B4cOtO4eͳ>F_v ?߿.~}(u88acb^JmOf7ߞ/ FNȔmE.q]!d#+t(}52rKai=bipJ {|uW2NF?WM׵rVv?4m}\=<g^W蘠Fw't8̹LeRFALWi{*-ܮk< \&À5~+0næc %" cĒZAnfu)*^i:R')Sl |8 e: 'Gèl>fV{S͇4CRt4M?~_/Ǜxo޽WTic}0l.=chuY?nt8}]SiC5y$C1N\02sJN_ժtnOu mC3޵ܩ|l4=>Ўup濎{HׄIw: Z/fx^׆ tb~h7==썳|HL8@NAE91 "*_vfIN)戫&! N|UNySCr0 ر-Ăh unmΦ}UU?B4ve\-Q\ۍÜŖ ,[ >8W7iqbH,ӊH!Aio=~^ ,왚WTFd"YbUR%/M.@꾛8FNצUK4Ҧ!+)/ j/OG,o:"ZjjhsSKZu =nj!;@`|U{+de{wx'WZ'Igvr%"YJn&v{|PsFVd|y(J D"jTLObS~4^uQ#`=G(w^myӓy"D"Ue,y0`܆;<@/Ys[̞n"!ϫ03u\gQSY%3/HI_"Q}iW662C(,BB2R0IZ&–'LҶ|.o:]C'S{p yg9l! "aXNhZR_ G'EGx_RJ^dH7iAf0vYփHIh˹m);@:ܔ@RVdbzt ]qw!L +=PhyrjW lr4VXv}QS4fyULY7aGS(-ޤzqoӦߟrQʦ[ [G善Ba',"1`gRQZ!!s7~ ?8¸lrV %~lS؝yص@͂`S#찘>+Ȣ>?}__ .endstream endobj 37701 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37702 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37703 0 obj <> endobj 37704 0 obj <> endobj 37705 0 obj <> endobj 37706 0 obj <> endobj 37707 0 obj <> stream q /X1 Do Q q endstream endobj 37708 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37709 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37710 0 obj <> stream H}oF秘P@2o$@ wa$*fN$]oDivFѳݙg)~Κ??x >|' oe D&>BɓP75_g]G~^()+ZURy@B\ć"?&ަmRBn}דaYL$ޤoG'ⅉR9oʢ-ڵxr~wys0,}7l"&|\z7G>G-\/ѡPN@X{W^POz⑾vLT.w9KJE4 e҅Cz+^3ڡ v5Cz0ơССȡȡȡءءOġOz' -JO1uTCZYKO5r驆.&T.IbRK5b*&TCZYCV1u1NjZI-լwRRͺz'I-Ťj;ULjf] ZŤjRͺ\zI-լ˥uTCZYCV3u1Nj5ZI-լwRRͺz'I-Ťj;Ljf] ZͤjbRK5bj&T.IfRK3Ljf].=ŤjSͺ\zI-լwRkRͺz'I-Ťj;5Ljf] ZäjbRK5b&T.IaRK5t1u1Nj ZYC0ZLjf].=ŤjSͺ\D$Ibǟ.JUTt%[PFАXv0=?Loҷ$"싻غZ70$#' d,wOm}W$jTSOqHBLm"Z١.orS@_g0H+ uGޏ^o!\ Aaľ[AbCk:$F=$ ,bSˇpeQe]] wY\ڼ O`oɡ~^x0׊8q2HlH] jY\?/J},_i;i>te?˙#Vq [{Ob>w k5:d3+W# icvn>N 2j/Z0A~cʏWnz3My-yq]gHK۷Sy/j|geQw Q"6G;TXH3^m*}}qywo.?bvR{ =ssx#~zoޟ{Tlendstream endobj 37711 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37712 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37713 0 obj <> endobj 37714 0 obj <> endobj 37715 0 obj <> endobj 37716 0 obj <> endobj 37717 0 obj <> endobj 37718 0 obj <> endobj 37719 0 obj <> endobj 37720 0 obj <> endobj 37721 0 obj <> endobj 37722 0 obj <> endobj 37723 0 obj <> endobj 37724 0 obj <> endobj 37725 0 obj <> endobj 37726 0 obj <> endobj 37727 0 obj <> endobj 37728 0 obj <> endobj 37729 0 obj <> endobj 37730 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37731 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37732 0 obj <> endobj 37733 0 obj <> endobj 37734 0 obj <> endobj 37735 0 obj <> endobj 37736 0 obj <> endobj 37737 0 obj <> endobj 37738 0 obj <> endobj 37739 0 obj <> endobj 37740 0 obj <> endobj 37741 0 obj <> endobj 37742 0 obj <> stream q /X1 Do Q q endstream endobj 37743 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37744 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37745 0 obj <> stream HWko8_2K`6vNƋ.Vl呔{^㺻 HE]RCM$XŢuj_vMbM]lFR`($1Yc4r-r_,0„4\̸Wî7Mq7(:=W{&R\g&b o٧/1[(W 3|ʍCLaDCTΏJe]$ˀ$ˀ"ث"ث"ث&뀽&뀽!؛!؛!؛}BO > ا4`Ӏ}JO> g,`}N4+}$ 1D1DB~ Pjj%Z?(}ZI֏PC>P$TET+ 1@c"jj%Z?(B~ Q@PC>P$T"Tc"Tc 1@c"UjjZ?(B~ Q@PC>P"TE֏!`Vc"Uj1D*B~ Q@PGPCTޏPCTޏ!*dE֏!`Vc"Մj1DjB~ Q@PZ?(}ZM֏!`Vc"TET 1DjB~lB~ Q!{?(B~ Q!{?}<,Vs^-C3Q> 9OXl>-nonn8xZM!_o~i.LX]u/>pX,S syQzWo~ ->+)]tît+rl a3v~|=teXA4\$8bdQS:c&5ƅI$Mh!&:ɇ/]٢4Ş#3WL5`D>Xu~r.Ù57Zt^6OŦIl68@'}ۍ}^.WE+i{ OXnVbjurl}V*in|@!vuk7儣%Wi\cjʱ.1\n\)k'ÙLZ'$Oԉ+RUfP=%hZT3h~ 'K=j/^x`ވ}qUM řNyhƏ293g9J? zaW[-an`fPT ]?nW{1U,;%_H0Tc9~g[Cp[-AZ_޿G&F;mjx8/EcX3YcrNjx+k(4;{h3q]Tʓ4@N{Ws乆܆IPf1ZLf;Z&ccS&Aʳv4T<[(ph'i wSaa?'_.ࣲTMTeo4YuiuM WI`p'JqV& yh$'8C{ٴ@>q$i8}SJPtT:,b\<= /]5CoxNjQH<g`Si\+%Ov/MȠ&AL@*霖H @zd'ކzd.53sCU# ٜLrHVC:,y,ՔAg2t ӗD&;_Јynb ^-%xdf$c5w7 4'e߅z lp8 yv|3[wշr~)!j2|3~ p9^]+Fë|47`Rq+}ؗ[KәuFrIeg:Iy.cj dφ'R {nZM+\/J55|:m7x{5U+>CO"p DO&\q0{ UYDzgY)cTXcec !g~0co(j ڵK_ 9~uh=RdvOպ'qqrZ3gMt}xڗnB5%첯'{PKP2OpIO-+ZxN6MyTj[c}Z]-;jp!1`/Ϋeq+t H8kdo -+)Aorggt̆ MYD2re^8UEs6"/'bwm_ԥĐ|34B]p@ $Y(C!xcmyk4/XH~'"BK*V~e}*/lvun>fS1e#mB9.աNRuNZ{tҟ3ͭ`@TmCjs7 g$'=3H`< xNo->ٱZ/"Id6¼7l*U5\-$"m{JJhfS_6{ъT2;TV17z%^uVPMQ)瘺AKeDfql҆yt.Z~ ?9-]bAþ¡a!-(˼ؚBp ѓ,l.%cW!.*3j܉hY&_5ǃAdi6hO*yW!P0Gpw,b_hn}yHi Y}FME{OxUCj~k\sh.b{{ 9qjdM~7UUzy> 6ԟq:aa+$DéDγ!,P,r.?И@hb6DGpOAr(ˉ␯n(8 [h :WR/F [$uC!љxFk*].;,#~Gd$ Qn#ȁE#|Fp:h] ve,<` Nը[Զe.+6.e_v`%X"۟FQ@:ƸCq9#b2!!eI ƹ,2(AJ'Hћtu6"Ny|bx jSfs@*wk0 xՁ^?|ӿ "endstream endobj 37746 0 obj <>/P 1651 0 R/Type/Annot/A 37755 0 R/Subtype/Link/Rect[417.733002 557.629028 508.932007 569.612976]/Border[0 0 0]/H/N>> endobj 37747 0 obj <>/P 1651 0 R/Type/Annot/A 37754 0 R/Subtype/Link/Rect[180 547.629028 268.399994 559.612976]/Border[0 0 0]/H/N>> endobj 37748 0 obj <>/P 1651 0 R/Type/Annot/A 37753 0 R/Subtype/Link/Rect[180 470.729004 268.399994 482.713013]/Border[0 0 0]/H/N>> endobj 37749 0 obj <>/P 1651 0 R/Type/Annot/A 37752 0 R/Subtype/Link/Rect[417.733002 480.729004 508.932007 492.713013]/Border[0 0 0]/H/N>> endobj 37750 0 obj <>/P 1651 0 R/Type/Annot/A 37751 0 R/Subtype/Link/Rect[179.998993 190.328003 378.799988 202.311996]/Border[0 0 0]/H/N>> endobj 37751 0 obj <> endobj 37752 0 obj <> endobj 37753 0 obj <> endobj 37754 0 obj <> endobj 37755 0 obj <> endobj 37756 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37757 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37758 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37759 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37760 0 obj <> endobj 37761 0 obj <> endobj 37762 0 obj <> endobj 37763 0 obj <> endobj 37764 0 obj <> endobj 37765 0 obj <> endobj 37766 0 obj <> endobj 37767 0 obj <> endobj 37768 0 obj <> endobj 37769 0 obj <> endobj 37770 0 obj <> endobj 37771 0 obj <> endobj 37772 0 obj <> endobj 37773 0 obj <> endobj 37774 0 obj <> stream q /X1 Do Q q endstream endobj 37775 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37776 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37777 0 obj <> stream H|WnH|W4a!{l}mvxff2A`@)[IԐ`}э9#%dU?_vgϞrOLZ8s&|:Tѿ*J]dDŤu3_V]3f]x]=GckƳIS4MfF/N_64?Yv8ˇ|JɹK㼻}>Tcm3_uUsir;R8Jhz._D>vF~WܚYRN \Fe>L%ԜRplIbIXjn6/1b9)wʽr{{+}rrrrrrrrr_r_r_r_VbȁJYڽĈZ+1ficv/1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+eAk%,^b{1K@k%,^փJYj@k%,^փJYj@k%,^փJYj@k%,^փJYj2 cv/1bJYڽĘKXcpZ@k%,^6JXcpZ@k%,^6JXcpZ@k%,^6JXcpZ@k%,^6Jlcv/1bJYڽĘܛGCLT"b J+R*hJ+ZʀVr+hJZ*VJU*hR%ZKbZвJ-rJ-{r/6d)-{1 h;{ǰ!KiKY@KށK?` YJ ^bZ*^biȒZ^bZR R  R  R # R # R R R cR c֒TȽTȽ(TȽ(TȽxTȽxTȽxTȽxTȽxcTȽxc$,%1r-侌˲ &G_8f<->L1]/ɹuI2"{nN\۶on0j~2"}'`O֓G7ksi', ꫡ턹EDz2ˇE7_/burݵv)o:>ꮻ7gs]mn+Z]HΦ1p'ma``v:} ґνawg='1,VPZhTi@+UZʔV2\i@+WZ*V URi@Z.Zc֒,вJ-rJ-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1fi- ^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ#ȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTS{1KkIX c*,vs?U&Jy]֪R{XiWU78 -Yl6cCC=epx2  ǨJ7?_"H?3 XqXpw8dUz%xHX*pU!xՎP^y$ T<doTȭmW qBi䘀t/7HxFRZ&Q>q,KD8Ƚi園f1'K{LbK<{B?'NX!RU(%)0\uI֑tJLĕ)*V"Bj̺+`Q'M~pT0=D>0p^t+V"(CW4}tZr#(> endobj 37779 0 obj <> endobj 37780 0 obj <> endobj 37781 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37782 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37783 0 obj <> endobj 37784 0 obj <> stream q /X1 Do Q q endstream endobj 37785 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37786 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37787 0 obj <> stream HW]o8}O HC\ hn72(o@3-$ȿ{%JtaQ{.>u~د}w'*B8a"X0.!SYɂbUu/ں\ > oWՊ)gm%LÜ,2 [GSsqG뮬ޯ~Fp]Aڇ@`!'PxSB}O >%ԧPy3B}ׄzׄzϳ0AŐw1`u1d] YzZCs \b"{k] Xk] Yzϵp!PVu1`u1d= µ.,BZAŀEŐE\+׺kZp!Wb"\bջ|.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] Yzϵpp!PVu1d=Jµ.ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d=*µ.,BZEŀEŐE\׺kZZCs"\b"{Uk]lĄk] YzZCŐסZY}v\qQL\ƅ[śr-fCK>rsxƊe(D3%*LY(0L=K{nmQouR&-[=tìfَX8TJKOL`Y7y[l lu a7eav÷b=_0>+$L4DT!t[ףEyD/QGްlAtybq}2A>VZ+8֐}t$C4Jѥi =Q~>i4_3D]yogM.O/R {(MM&Y}HRnnnj1ۯ|wa`LܢA)*Pj,~&Mi&-IE~:l :mbB_ ,pYuO'^WY-J4<é)iw< k8`ŒͺdKNTfY"L aG.I Inq0CjTD`{JBڬnp+8Cm/y#@@YVW2Q!"ɈcIp9j-*Y-3HP,/Y8ZE%C>GpyU*JJ Q`8WM\ajy)Iꎥ l]|?+hX,dy4M8&֗ t%pB  +-"3rQT]]tYW<լLr=԰t ~ʼnI7 ĉbV.gԞ>4c¢[^mŋs+vEIwWOC1o!}1؇S)%*u a!4Dy)2ԺW :a w ߥEj+~TՆ]-:` e跏gJIٱ0e_KYv:_j[ܽ+XcYJ&D=`YBm^+Zp>%Xs :]x$6Q/UBŖ:|LBM~f?onv" -~k &ބ3 llLhPv6aD"SBH5t-.ȄCܻSEMr^ZiEOZe1ɤi>$mq6iLS3/2e,<}Aa97lRW#Kȸb[wLO(e(k#Dgهb;Y0T:KL֐ΠvLY*a! %Ob{;:_pũ imf3V>(`vPFT! #CCpä&j6MзzEM%bmtnscnm1̙E2Kԍ]Xj17U'bozKP!HvIPF-!S73~uOQ,N C-K $k {g`30>4ܞ`+ϯU`CnAǽ|p LY*^F  D,6; d[鱚`IƩgl8ݒiYQAY%I׀Xu>'Qg0$H1r21e܈2"2j;F6ɎxPnbQ'lLwh *d6fܻzn( JyS(lDnv޶–~{^39F 7Si׆yJH齔L,TV ⫺[';,/l%;í\ ,Z vAY/{Kf]{82 yҥχeR~-&+&͕o^Cu.hm纛LQ,bis|9X޷P)H6}8%0Q ś׹V; qt_7ί!v*Dئ(K2ತҬbS?ilHzͯ(=]KBOs>6<;15[Td rP#&_MxLrnr!U*8һH]>/uhxlQ Apstџ(~}ϙ.T|Xt-TTW!9܌/TKNQ&9Aa*QN$.s8RՈ  &KKp=q;㵹_ܵڋKͪAOV J] JO'rs%Zk "?n1 EƻN7PKZ6 '`QqiJpk#chhQz>aD26M°v\EIo@va3z_+I0Fگ:\ˍnv?OۭT ZSnMD:7GRIN(X 6)#9";^s_T@zM nkW _;3 Ŷq0; LfGtU|R$WygIǔ[i8*Q:7OJ3 22x¾jh*}*L"2[ j[^Έ 6{9Z޶_5m; ꛾b6ϽӘ8w友qFAux&ZhӴfF8:M//hfE^zwlendstream endobj 37788 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37789 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37790 0 obj <> endobj 37791 0 obj <> endobj 37792 0 obj <> endobj 37793 0 obj <> endobj 37794 0 obj <> endobj 37795 0 obj <> endobj 37796 0 obj <> endobj 37797 0 obj <> endobj 37798 0 obj <> stream q /X1 Do Q q endstream endobj 37799 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37800 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37801 0 obj <> stream HWob?lM8 ?:>KIZ$EAKk E$e; f̾˛+DЯ^\]N3L pǒZOrBfBQ&tw 6b9y ?X!)$B{t?y34eDO(3to+_:Mt%N|mwEVOiUe0| A u*T8M%웱b-*~Țm>f9MY2z[׬\{:WAgHSEM lLG0qh? 0 &<΄w( 1.[m Fp.Mx곮K]0x yT~㩪=巛{J?t 9`}hAdy|q8MC S^TOhS&#Lyx'gqt,kUmr (TS>Hf3I'hQCXcƆPN FD#08If?ghYiqns)D!ؙ0R-Qe밻>ZsLռ6ލj7e׆uk,Zd}uqhڪ߿mˎ^Ջ.SnLQg˺۱M<*F-Hla7NvBq %:7E*O!b6(#4jO2$q`C*@ѴzZ@h, $F1##y7efEj8GHG?ۛ|*u??W@98 KB.?sƠ{ņaA J0q(q5CDWT3tفZƒ$%mlK(\\p5LFkݬ@m jnotilci㉄̣NPב1k1V݇C$UGR#!Atә_l{Wўsoe#|XA0?NTO8R;h @]` Į*C)L5 km_UzU|I G 9͆=NMfa#wI/E ZsikT 76Oj|@( L3R0^ e< Xrkchշ~uoΡvI|Cc#=U"&Oʿ3A|byVX Jn_N豪~zҾK $fg|TH9c^&&u٩eC|+o P{E!j|ur# %wsf xVgЮӔR:($D%zF"MH=q㩙<"=J\=ܱ?MB́]jqOqC{TVk.)l*`VItĝA SOTִns9@'D`T Z=̡(Z˩Q.{GχSFrG}}r{ߎ›b0@5j{xI3$nGLÔbMMI lm.!M] #M"H)tWKs5s_&z]>K=#̛ӡ.bmpr ~?:R(.9?$c.e*(e՘p?01ܬNH2d4zT + Ƀ:#\U(9ĕ5Y2>v>?QwB=?{2.?soTwrVx:z2/ 9dE( h34o }|c`s|[)<%ֵHO 轋 `Q&/Ch=Vendstream endobj 37802 0 obj <>/P 1648 0 R/Type/Annot/A 37803 0 R/Subtype/Link/Rect[130.078995 539.020996 279.036011 566.104004]/Border[0 0 0]/H/N>> endobj 37803 0 obj <> endobj 37804 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37805 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37806 0 obj <> stream q /X1 Do Q q endstream endobj 37807 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37808 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37809 0 obj <> stream HWko:_~">DIE-EE/bӉnl)W;ÖE99C /iYׯ~ф7c{j?xx'v-`K%R"~n$kKBI\N8< cN1`qfY!9wc XP/P/P/P/P/PP!>tԇQCG&kG&kG}D>rGQcG}L >q'zdz0-6 \1rc Xk1fYzYc"\1";k1fYzǵp-ƀEcEw\+b̲kZp-,PVŘe µZYq \1";k1$ZYc"\1rc̲\ZYq$\1";k1,µ,BZIcEw\+ b Xk1fYzǵp-,PVb̲k%ZYq$\b̲\ZYcb̲kZYq"\1`Ře*µ,BZEc"\1";Uk1fYzǵp-ƀEcEw\b̲kZmp-,U1`Ře1fYOD .6;q6_ygf}R= 6d@OeNˬ58ԧE~XN`~$0Cu > l@_ӣ$brjE=XLDɗ?| -oI-ٳR?q}#,T۵8CetPA̵Ppy_v|i@- [Idm߳ulQEDzLy`ÎIMt-}- Ng /`_J;8Kxi_K֬6=W6#Ŋ y~OEyZkO/QwfmX^7{%Ń)s`X͒463ymka[ٖO T} Tz@59ڻ{4hsIK|ӎxyڔ*lI8}xYmD/:}yi|ւsU q-NMoVeOnkE6f3HB?rR:(kdpxhWbrP0mg &p#ЍpSn6-]+;OWvgS4ǩ8ԐhnޤkςڱTfum*)Chs8>**x]5m*@y8_>~9{"<԰"{el 6ﮞmݸ]k$agϯe񌗍YQ:I/,[ ?vAZ/.x)ZW$eK~t1Gw[%c!K&oFB,MKC,p1fȐCݬϼ}[@ dM#8j#1Ku/I?amfasn죳y ~\}]{!>vti^bR0 % GGI7KU,d?]-m;eWhwPcN#\+گ=+J^HȂJ3H&n$}vSݢf\mұL.'ylg.w46JiƓ޶:kGRKxԴ F\"[=wlu6ݯ7ەm+SVj.[sU7L5 \U7:-7؈rAw4J_+8Pz.(_;WmE-AnA ,_p~]=W]߽n V|YW`ד,{xZ0j9`(8;b"!yu@ 818m}Qb)0Z<͕K 2~u|%|h}JX;տY@sm*5\nWh<VE1fWnp<&:\ehq b^5q@# 69V=PU/RBNli`rZBfx=sy lK!S{ZQ. >OxunVֈv[ja4]Ls]ϰW;pbZ-Ɛ8){NUʜ)q8sK+SԨ LVQwab9YyG:Aי?+__y?UNWr%όOjz0D6"E9#)6bԥP2l-@sTwsTnj蛋8.`*{2%z:;z%bpa90`cUS+*ق*KW'ߚ !Hb^awZe-ay^bDBֱ}ԫaKZ4fSjvHl7@4|#db,牘BrϐCөBdOϣ"Mde%U/$䙌:˅s4\#Qrı߯+m^$)ld,Ra#ą., ָDљ34#ؠR0=1kI,gg} N]×_P`"endstream endobj 37810 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37811 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37812 0 obj <> stream q /X1 Do Q q endstream endobj 37813 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37814 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37815 0 obj <> stream HWko8_2(C5 0Mg)bAflJrKQ/m(RQLJn?_yMB/^_{_<* IČ$1"Fj} GIN?UWu]UU[kR՛%#{VF(Y=z)L0&IBIV{_uW%Y\(i0z;E(ҡzʶ^>M$iتG\2+nL-8T$#€vx<`А>[r1$<X#dx49 o饑I]Njqhi;Rea!,[;xC3G=C3G=GsG=GsG=GsG@ G@ G}>rGQ#cG} >q'Q GDKGDKG}O),ELkc{!1rژfmL\6,ĵ6Yzǵ qiq-C\kcB\kcw\ژf!2ĵ6,ĵ6Yzǵ qiq-C\kcB\kcw\ژf!2ĵ68Z,W qi4UocB\kcw\ژf!rĵ6,ĵ6Yzǵqiq-G\kcB\kcw\ژf!rĵ6,ĵ6Yzǵqiq-G\kc{O 1rژfmL\6,ĵ6Yzǵqiq@\kcB\kcw\+ژf! ĵ6,ĵ6Yzǵqiq@\kcB\kcw\+ژf! ĵ6"ĵ6YzZ,Wi> 4$zZyW+#=5%Iwٚ,..oaҴ7j{΢ּ7á[aeM5I~oQ-V0=\ q:Ij3MWYq{Ϝoˬhe%]VEV 0@L?RQ$#?o4s(M)r~^PJsXP~PԞei' 6QczʶTMݨX~U;%_//dGC[o4$cŇz/da&'(Q-|SĻÀ^˛JUUô7VAOupP^OיI$zM dy߿LXH}N]]^lLVMCvjAmlVZ ^% gZnX@r.H8yHL/0t0Oyrﯳ>Yg_+%(ܔl_U^l/Omȣ{2ۖE^nQg?o͏t AՋD/Wϕe)&5?Ԙ3bqAlD'߾A^ F:eFr|p:&[+bE&8rjyPͫGD.R8Yb}Tq_wY)T'I0/;i7;UicVeS' sxϦ嬈JlF_}9ݾ[.q u\xKh~ة1|hgaTg]~>;W.Ӏx6*t,M(c9/As88 }8 |]qը]u|hݚyU =r 3$'kƜ%b> !:EAš?Uݢ#nhtUv-.[?ʜ=ҿi%E %=S*HNj?Փi=Ff HWzN mVY{ L9̈́q7f5 d eFǶNfaaMƌ>z]v' MowzʞVV }=( x.{;C)˝&u6P.-b&8UC'B8j,>'G> {(wD)DƑfaI+lT;õhhj|ohstPγ D1nDzxӉ+h_輻S߭Sޚ{ y:*GJ*9J"UAX#骆*ۃbgH1G'F-R^SRuYʯ4|Ư 1  o4>cV<ԩurJQ^]u!`LzZłUeŒx (yh[Z~g r6;|6WZ< j/lnS(6-8,F*"̳$<>sj |.,ddhD p}O4易T8I 7{MirָC-+54/ZRY-lh«4xt&9C`d@@ldsJtZS+m+oG7ee"/]C+?Lysr/UA@Ww;^@0٬὾C( @Ε»G+Mt] $7o_ .5VU'bV$wݟDLS/*2LԂWv/NpfQc3 d a}cZ;-B4I.EiI-%hM"ǶJL EO$IV'+]m禮s}9nUݪfYJ¦[K=L8ϗr3,\H,hBh$&8THnbG%KJy);u{_뫗+&j yA 7 ôDB_Xr/i,xlÕ KM4S|YdMcvSJM{:U G> c< tYzb>xeӑ,^pcL0ܺ9Z}7*MGL 69e|~/E-@ʦ#?EaƟ}kF%;endstream endobj 37816 0 obj <>/P 932 0 R/Type/Annot/A 40091 0 R/Subtype/Link/Rect[93.6000977 620.429016 246.707993 640.109009]/Border[0 0 0]/H/N>> endobj 37817 0 obj <> endobj 37818 0 obj <> stream q /X1 Do Q q endstream endobj 37819 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37820 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37821 0 obj <> stream HWk_QAȝ@, &QhnLC?fݽL(=ui{`{x'N=~|߫B=}ٯ*k ӥUt:Xյ uP/r[|nonjwbEvknٳ&j{jYVuTTʕ4c6'fm5zdC/vvw>]ۍ5κ>:)Nx5{&+xtҭ9mս29Rojڕچ$\Tt\euuVΩ%fS8A8%10bލ9X½p{'; w½p{/>}p_p_p(G> }W}W} } ܋PZ2 Z1bIK,ZK{%h-Lj܋ZZ K,Z #p/ZkAk9X#p/ZkAk9F,^ւr,@k9F,^ւrXh*s#tϱ{KXbrXh{ZZ˱{ZZ1bcZ1bcEkh- cEkh-Lj܋:Z2Z1bIK,ZK{%h-Lj܋zZ K,Z #p/ZAk9X#p/ZAk9F,^փr,@k9F,^փrXh* #tϱ{ W*mHQuqa,偖ZhyVZhURh@ZhEVZЪV*UZh@ZZ#mրZheZh[{]6kCȽe6d -{ h[{]6XCȽe4dq-r1bI-vh;{vh;{Fh;{Fh;{h;{h;{h;{h;{Ѷh;{ѶBjqXRcaZ"caZ"cZ"cZ"cZ"cZ"c|Z"c|Z"c0Z"c0Z#-}u]^Otʞ5UeT3A.UjG5m葯"]}\&r6+*/.jbٮ_M؄bÞmA{|S?fi>{ʎGOmRv /.s])ݍzl }gۻA6[wm`1S[Nkk>ml퍯V [q>9$g+@g]~@ߘQ64PŜо'z jZD#ڧ]:Meh/Hd;Du8˿?5T_x57zz4wN֗L짯 :IˋxzI|tpt=ac' [:d!mr?Ӗ6>MO7.-xiӥͅ&9n:d8nv,=/.+{ԣb=\:D|ExѤf֚arR7G'#V XB-/sXRcr1bIZukiZ?kƼwʨfR^qop\IldʘMYq8.ojƛ6 vU1 mCt^5p2vG]v}a3?SWMc9S"|NiFMC_8os8v#Sg?5춝Nzw;|r!&2 cmp~~`:}]EB2 |亡^]}qWY$[{(N/-zP%QDZR?;zؑ{NR䧜_DkLo_ fpl 6oU4:y>p>C $ Jͮ=vP3S-o@q,MA6rxwk_B@X_#>l+13JM&'n5Ȁu BFZ._T?|;yΕ/[o|ڣYfY?6n_7Q X9yd11Piڸ 3;ґ܉˅ 0d=)ޓׯ_f0 7/c#k@)9 RcҶ&yNf86ƒ#blavvs%gEh.w/H_3%Aw+1Y*9=<{"OXcAiJaLc{@J%U@y4Kcs݌ֺ,(TR}:YX7hBgWi<9V f4QKO^'ơe~; }rMMq>L,@OXͣgİp?!Ed%YWC F&&7J_}~AVcsSnz]<{!_,eendstream endobj 37822 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37823 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37824 0 obj <> endobj 37825 0 obj <> endobj 37826 0 obj <> endobj 37827 0 obj <> stream q /X1 Do Q q endstream endobj 37828 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37829 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 37830 0 obj <> stream H4;0=+ %B0EBi:$@@YFgqy DG&Ŭa=Bk]vz_4uS$!1e6/3n'OA,endstream endobj 37831 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37832 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37833 0 obj <> endobj 37834 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37835 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37836 0 obj <> endobj 37837 0 obj <> stream q /X1 Do Q q endstream endobj 37838 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37839 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37840 0 obj <> stream HWے۸}W )7^Ǯ];MjW '$P2@}ʨO)> g,P1@}Ψ9>bLK}R Yzq-ŐBZ!QV3k5Zq-ŐŨ\R Yq-ŀŸbbՌk),F}Z͸bb\K1d1jƵC>pf\K}dR Yzq-ŐBZ!Q0k Zq-ŐŨ\kR Yq-ŀŸbb5k),F}Zøbb\K1d1ƵC>pa\K}dR Yzq-ŐBZ!Q2k-Zq-ŐŨ\kR Yq-ŀŸbbk),F}Z˸bb\K1d1ZƵC>pe\K}R Yzq-ŐB܊*^Pb 'LG?ׇwTwgʷT*}ЉSY]~_^W'Nf0j-=XBkӋ5v=",Fémъ<# IO:ӓ Vߦ-D!,d>p+^o?bJ~=gfd-3ιjy]7C.?]zTfZ7mMJ Ԝ[mtb<J$YȪ'O-~C0'*Cx$5SxSb9b38 gnF4GbsއJ͢(˺kvSum}9C3ePV^D,7~kj/ &5C{JQBdwv&œ& 5_t~@ΫXưy޷$1Qg[1 xW.%YJGwJj+126Kq?PݤRR8%p\z챒 쐵lOʙ˾~[W5 [ePM%.Leoh_-L/`ĺ9+Vej+,Jw1 TU+ z~E&J ˿޿I8+0pQv5Tx*'q |)~&RYp9/~ sPXi!\4U94n7{N3N{@egT.|>ꌆ姟1FخXKݍtW}zxI2;uExE'-5VI$HMC_Xj[F%X8غy[7fhg ; 9c6O[r'rned>ߎNyQyoNÚ+5ƛ"`Gx ƶbxXj xj¨HeM2 0^73olnȱFM>ŗjqhFeUZuXȝ9l.ɵ'߮sR+c=5Kgr+,@Hc ę4x#a kIi6dy$] |Cֶ_ogT k; _2̈́5pjӷ7@Eq<Ò$ B.w'}㵨҇#w)>9> .]P 7l68db=;qF ܓBzU{PW X":E Ǜs4 }5F=pacaњ/ັpS_n&R9껶kXfF[z&f>Wϳ6 _#;}`ۙ=Nwf}BȆyI~'K lɲSF6B;f}D>܃#m۾^$Gkmfwcq@8Uڮfvpq<=fHB:fC)< >{; k:LYL3o lvw:,qjβxf}?,ZR1&TI(֒J$[y0>L !èJkXO$ANR'v<~@?5g[y` q_<=!1 3y!Fۦ'-;nr /ndR&F[קN#_LbDƇ::'}a}7%VK)ߍAi'A }RnzjFe*coc3jt64̢lE_ A@ג:Ki\BeÊ0%GjG'|94*:A+.8*2{+͗LL,ʓA 1L|ç1tBoe-ij]$:cS85plhti+v[/-J6"R"`?ISv `(o/`k%dE({ `5<#xJWvxĀO+"=(C,25î|9Sx8%-ei8K(bzyD>Mp`EϤ0=CwŃigCmL t``#D#/.|| aאc4ѻ3'Ua=POG@4̦c3cJYrCNZD\_zgDS {8JSƲM\j@.E)+v x*dD]=ml}lovx ' !oRO_}wn+znendstream endobj 37841 0 obj <>/P 1428 0 R/Type/Annot/A 37842 0 R/Subtype/Link/Rect[93.6008987 340.880005 278.257996 360.559998]/Border[0 0 0]/H/N>> endobj 37842 0 obj <> endobj 37843 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37844 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37845 0 obj <> endobj 37846 0 obj <> endobj 37847 0 obj <> endobj 37848 0 obj <> endobj 37849 0 obj <> endobj 37850 0 obj <> endobj 37851 0 obj <> endobj 37852 0 obj <> stream q /X1 Do Q q endstream endobj 37853 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37854 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37855 0 obj <> stream HW]6}ׯУH9$Em-REc rlZ{/EJ2yvE0u}HqW1_^!7)/TKrdZ&-=%Y)i&6]5/mw"4$o-(SnMԤLLaǶ?wmaTɴVyҜ_zݮnYx_IƸg}O~J$5Y ;>|]3a11ōK%FcLᙌ@ Qv PǨ(MBC^D^D%^F%^F%^F^E^E5^G5^G5^Gs} yľ `_D }/ eľ$ؗ{C7{C4 цc"Ն6DCՆ6DCb PjCjІ(}ZA6PmhC>R TET+Ն6@ m"GjCj(B QHPmhC>R Tڎ$Tm"Tmه6@ m"GjCj%(B QHPmhC>R$TE6!`V m"GjCՆ6D#JB QHPmh;&PmhCT>PmhCT>!*fE6!`V m"GUjCՆ6D#*B QHPmhІ(}ZE6!`V m"TETՆ6D#*BhB Q1(B Q1Іafo5~)Og #YIatjONdn>l sap7\nC3 j\B:>wMgrdLr 鲋(9i$ @F17կ3K;B~X}x24CK7 0V]u<0%s{CQ& zܿt:^y8 4/#_M/M]#МYƪ{jܼwσFoE098' PgMoC_6)xnWpaW4{^6̰fx_ / RLfiJ]28ӗMlMP0e\)x@+g\-`$Oxe撩r<̝K=A6]SԘlr뛽ZqDTXjKGķCE_?L2?5M1Âjs^7ta4[ ulnVv;wn#U &(&bw O`Ȝ/!cslN@dkǒ. ӥ]sdDIdTp{)i$hܣ3E.=ʞ94|3bx3.TRer;/TWP8+s)7!Y&f|X̴T ?h=箪K} b9Sչf6X?R5+g7@٭ =ӫڬ͹_ E>T6y0Qbpzُ<"xlf ,qɀwy8A+Œ&Kdd^(&;pGqNf?n!KNOhyYmEtCDzneҚTdd8%TYXP݁G=寰F ,%LCXNYD9GL LA%t.<7r`^V؜C{\ ߵ_3H j; #DYW;+a'(S`7Nw + Θ./\[Wb  lwRA! ܁mV{.no\­`p2p pnB֖MU>pnB=r)%Nڊvs.8̥2%r.%vsZ$8ſYZO ̙aZ|tM 1 5)TckK*K5z$Uz{ } OǓۅK܂[з !'£]/p~W6..CX6$/Yf9{y# ]?a䗩_6$7業 E;o`( e9.dJ* )L)7FmץC3fCbK7j8<6>5)SwQuBOQS1n4Ro!/stڣvpqqZR|/_>qhnΙyM!]NߍWmW{6r# n m[ Մ]弤  [ jht;7~lfzN/(ft-\9fT+7 gI,>BVKp; xrmǃG]SCh)6oOad.bIvپ?GcjQ6[ ۺSOwj6v?6H/bIxS؞=#63p+ +Kc /}3ŕVs/U D{"D" H[!6vW+gCJԇˊ9zo恬ζ?9.+EI_Qe(9hC>+yЗ}D'<7<|dk-c!v#1 ,Ur=JBN:=o_۩k,l];ѫ8A?ym7ߕtv7+~ye˙" PܩL3㐢0rΑPGUtoר"l0(Lw /-yH$4[>v|wQ8J#,5g@~ vO9a!bU|ZV3j|C8.}l\j#q lRS޶Arq@zC~ř=ȽgdA 11TT>SK T2~:cCfM[s7χAyU*?GJb-$޹O ?|Z5Rf K*6ru&:PRF R9aJ~j?5d-#8CmTF4$6M}OQx>)vWX̳b>ϒee](4R}.Ĥd S-U vߺ?np`1piFMy=~m^[r3A1qQL~vsmuRyVDF%OOͥ?$a, E (̜^H @TY*t,jC$ M {*`E"ʞ-LERnSLa p=+g|iV-,``Wh;M4hyt]4k:O"_1937g;t:eڑ|~8堂.H?u^2ݭH 1 > +j>TIwW. t`tǑ ŴaL|0t T2id IvPI[*HgҼ DOqtMXV(lup@B/,f(oSJ8i24W:6)SqOrlƱJ&JΫWC]dS!>{²>OzXXӫ-~â*4Y#\u,6'7/׋jȆ9sc|ޝȯ5ΔU.B͔Klv{lETQFkT"v*qaՋzct{7Һ0HtMJ%\HCUR Ss,Gl1xkZep7j9qu;Vؗo ZZ}T&~;YϣX4+ h܅gb 4e+, R0ۤ$ӛχ7 0ku~endstream endobj 37856 0 obj <> stream q /X1 Do Q q endstream endobj 37857 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37858 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37859 0 obj <> stream HW]}ׯl^sO s>ܧ}*OTp2>c3}F(-֑ZK1dqZ!{Kh-Ő%gBk),=kZK1` Vh-Ő%gBk),C Vh-ŀ%bܳZC :rBk),bZK1dqCwO1` Nh-Ő%guBk),C Nh-ŀ%bܳ:C R Y{Z'bܳ:[G^h-ŐS XBk),b),C ^h-ŀ%bܳzC R Y{Z/bܳzZ!KpZR Y{Z/b({Kh-ŐS Y}<*ut]D&q8NTj^ܨp\l\tÇd˶lv@ekPXI؆Tt/=+柣\3eU:G|ËbQu[LVft[wՈnr7Zߤ q>)‚Ftty3q[fym0V{Uԃ[esU!R~^d`FdYsiKu *ѦސM##5d}\qxmzdOEw˹L L!$-F/xH߻="U; ߵeݝ.0xo9cjLVEUTnpJ: /j᣾4mKZfxvJ'˨`Ye V X`ŀ VX`%V X` VX`e VX`倕s$gԒ,,%X `i҂Kx<` 5g,Z%{Q x3j^yF-k=ϨX{$gKxo<` g,Z%7{Q x3jyF-=ϨX{Kxo>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37861 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37862 0 obj <> endobj 37863 0 obj <> endobj 37864 0 obj <> endobj 37865 0 obj <> endobj 37866 0 obj <> endobj 37867 0 obj <> endobj 37868 0 obj <> endobj 37869 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37870 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37871 0 obj <> endobj 37872 0 obj <> endobj 37873 0 obj <> endobj 37874 0 obj <> endobj 37875 0 obj <> endobj 37876 0 obj <> endobj 37877 0 obj <> endobj 37878 0 obj <> endobj 37879 0 obj <> stream q /X1 Do Q q endstream endobj 37880 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37881 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37882 0 obj <> stream HWێ9}ϯcd4`v4H#x`j. ;Te8hv:>/u;_~υKl.k1x;-vcJvR|Xau|֛[n]R鲻\F(ED(" b&姉f4]*oyC^Dϯxbøx|=tN,Wet5Re'a> Z|J?A'xFɀ7]fMrbˉiHCV;ŀT"âڕjS XQQQoQoQoQoQoQQQQQ~hQ?0F}`ԇF}`ԇF}dF}d7Ui)4Z!UO1`1ZCVbb\K1d1jƵCqf\K1`1k5Z!Q߸V3R YƵq-ŐŨo\R Xk),F}Z͸bb7Ռk) Z!UO1`1ZCVbb\K1d1ƵCqa\K1`1k Z!Q߸0R YƵq-ŐŨo\kR Xk),F}Zøbb75k),Z!UO1`1ZCVbb\K1d1ZƵCqe\K1`1k-Z!Q߸2R YƵq-ŐŨo\kR Xk),F}Z˸bb7k)Z!UO1`1ZCs^ gn8VA ᤳCiJ,;ܠOL XIḴp$啪k]p.˥z RC'r%[ie [+pPa1^x|ѝMbmH)Wx5w(]?xq ZKp^ {~^EH;XDE.9Ny4;("sGeKa.܅':vC) - %jo_8yf8wٗx6 h^Ow iI V31!%NJlYM`9,S}H"<0Ôߜ{[rF K; Y=ק移Kum;3oiLKHؔ~ `0+)}T}1/{П.SGkbip-}vvS,?\u j^~$򧠏-(?:/[8ᘶ3L͹Mx*?jny;+jk)ѥ f%ϔnsl{(cY [cuk慛Ecg;(Q_&X8VdaRuȡWpxDlqw~@B\̔𺰚Cd EWd_Me]fh'*]T:p޳NʒqFOM9c$,lJIY6'Hbi KG znZk KOER=JjzL,II,K$$UOduHbMYQ)1.p ?H}9KFNrЧPiPݚBJuH2š#Cta$ʚ#DŽ K4H2IL%v 0/+kdńiS 7C2f ʚ#Κ駻gi\[=rHS$qĴFFfʚ#P2k e"iZCʚ#֐2k ?5GfMZC&͛5` pvT?'=|ʡ,4Ȯ hrاH/t">w #S*JF(0 k$e9X]Π5G+}",Hb\v 2*!a|*X!5h4I,>XQ Hb%HbG0JC5BB9s0Bj:띝#^1u(W[?yr K9mqXz(LVs}}k?Ҩ,Z.ΣI{z,঒yP<^686^Av\ Swe7gomRӌna)>Elc=tV(jEٍK &=w,w\&|=싳0agKfB3u]TsA9pt8 _"Y8vu!^>?㾟ŸvB.7DW\I *7Mp:5xmWe}Qy t>szݶa{ES ǰ-= [ t݆u3`б8eJ8lۓ)Y);q׋µw1(#wzYȍtW B$LI$|s)8V|vZy!<5Ȯ܅1I _h13~$('3X<} Ujm2[OJ&{F`hP 1-zsxi9zˏi F:mXNx@}2^ Œ=k0XUk9^+=ׂyW[\`F[zw*AyXe$]9O)(Ic^= M@pja^p $Ji}SX I 7mJnAQ_${i$ULW1cȲ_~ eX,z+1!`,F;ϵPe֬hH M/ 2]a*-/Ѕ#lSMY$ˇeCGĞVZr_AWmt~X͍HmJЕuWFhWCIXꟙV-s_Ԟz֭2 MƁo]b;!,DneJDXEv7xcm޴CpҸެqP(($RL 4u;@ĶSQ{{Z4F&rdmN|XzcWQXcL{peː@wZߋ!'ٵ3@ 5O#.>A7k3,Ơjg> ̷=q[T4-:`"aUD97~iMWL UpT)vUE 3M xZ :,HoJJ3sy&[" ]h6hakiK1{jG!L+[U,Hn.GTG_>[ؘz~ ʺ MMϐQĕY(%TI :uIC5h̠+4#e1 IGqBKxw>P{I\9NK&Ұ8X_C[s !`PG-ki}dqI>x2t|P?t,'Yc@ fJ4ф"BEߤJbFݭraa4TF*xaԪ),vtaǪ W_,kI TDYidiN\aF81ժhc,G,Ѽ|"<ʊ80lZNlQDpLn{uOovo`NZendstream endobj 37883 0 obj <> endobj 37884 0 obj <> endobj 37885 0 obj <> stream q /X1 Do Q q endstream endobj 37886 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37887 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37888 0 obj <> stream HWiF_~q  `G ղhKBR[CGU9 z_Wϟ߽}k/^~h\_T01*Ml࿪"!ЪRݿUkj*U[w? ^~oVMC'U*2쫦V[G nf:I~j7]_( ,HtYȘC`C[R~ZMBRu f}'O)s S>ܧ}&ϘLp1>gs=ˬBK}`R Y=ŀ%b),bRK1d YjZ!KpRkR XBj),=KRK1d YjZKH-Ő%g5Bj),=KRK1` ,FH-Ő%g5Bj)Z!R Y=ŐS XBj),=KRK1d YjZKH-Ő%gBj),=KRK1` ,VH-Ő%gBj),!C ,VH-RK1dqZ!{KH-Ő%guBj),=KRK1` ,NH-Ő%guBj),!C ,NH-ŀ%bܳ:!C >R Y=ŀ%b),>o3~jӵi͆vh:[4}S6")_\ ۝/>Uߎ?lO bФi\S_Kq4-Ua 8\znҏcf?zUW2 aWcJa>VaоZ0=kWSΡoc珿NmSeT'BljNs F6$yq=jn E ˛==6p Tc0|`XBR"̤jҗq*x.xx7S{L~j?.`35]skbFs% ߹JEݏq(fAèX;?}zM<9S-n`K@ݏ-4& 8;EsZV?qNyb ه8 7b.\buIb7~`4nGA^/Ή _nϜa׬ǥ uI`eؽNOYmY!+XL Zi9A1XЊV,hL+Z JiVʴ2A+cZ1\ʙV.hT E1dq-K ZiiAK3-#he-VF{!Kbuo-VF{!Kbuo-VF{!Kbuo-VF{!Kbuoŀ%=Ő%hBS Y{+=Ő%hBS Y{+=Ő%hBS Y{+=Ő%hBS Y{+=Ő%hwBS Y\bbX;),AսbX;),AսbX;),AսbX;),AսbXBS Y\bbZyMر\] 0& 5Vp<0aLϻ/txھ,Al|j7Uz7'1,:H't} Pf_Tv֡mlv7&ΔKl]vXV׭zoR0[8NZ^k˙] O}Y+ \ݳAKWmx=[{'Vj~Q}SOUUCSz,Of^{@7ms꙰iZSiwB8cꇥtfj{Xo}|~Xrmۈ޿bRМ4)-R@hj,Q(Ckt޹|GY::~8J٭.qiR\#/͛8[0|&ji,hzc1|b;l)~/n3KsnUUH7. y Iť{ŒtM)$#gty?KɇX©O=(aPi:DMֳ3ңJ$ Dk¤N!<M\ sdZXvqvPBO/;~Ӌ͜ ϨAK`9r+L2+\rB *RJ*,XL*Y>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37890 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37891 0 obj <> endobj 37892 0 obj <> endobj 37893 0 obj <> endobj 37894 0 obj <> endobj 37895 0 obj <> endobj 37896 0 obj <> stream q /X1 Do Q q endstream endobj 37897 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37898 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37899 0 obj <> stream HWo"ΦB..Z FZL)Q!8{gHgFi$$޼}K[r/>M^_T~//vo3&F cCmHZ*_Uݔ5J5epQmj\,UZ-nTrTi&{ҴC}].jߕUsGO.}W_ofqQXJ>)*6oIMmh.\FoAq86p7~ 0 r&(& PASN992ŐŇ,!+XԻ<ŀe7{[e2Vpo{'w̽;>},Xp3>a}ܧO)s S>g}&Ϙ\p3eV &0Bj),bRK1dqCwO1` ,FH-Ő%g5Bj),!C,FH-ŀ%bܳ!CR Y{Z#bܳ!VH-ŐS XBj),b),!C ,VH-ŀ%bܳZ!C R Y{Z+bܳZ!Z!KpRkR Y{Z+b {KH-ŐS Y=ŀ%bܳ:!C R Y{Z'bܳ:!Z!KpRR Y{Z'bRK1d YjZ!KpRRlBj),bRK1dqCwy;ߣ&x. Z@P:a$B`vS7j9{b9W/>?aC: yxzǙ:PREa. 7u.gϰ^e<[_HYؑREE/T ?Ȍ4ެʏamת~{V0bxSra_pWg-r+ ODIQ'q/Jwn:*2saWrہg_~UV?o֫rL})qbg8gv;Ѯ]oտB'c3ס~Uomy-GᄀcM 8cGDc[M~cG7ү.Z [-g[0ԛEA pH;u1CQ ˂N ˂N\BYyY9eR Z)ieVƴrA+gZS-q-!kQ XZLK ZiA0-#he-˴ercZ3XЊV"h7BS XBS Y{#=Ő%h7BS Y{+=Őŵ(,),AbX[),AbX[),AbX[),AbX[),AbZC }O1d ZC }O1d ZC }O1d Z{NYLK{!Kb}6vʢZCעn=-ߠk;PMHduh~cVk,IO>n|{jߖ[+w=tMU9tZ2Q~;R3z , }WU]YoO5a«Yrim󛟻|躦۟ݯ(y]t=qL9إ0fngpZhw=G=z<ݡVSѱ4nPep 7|>Hu:\o 00PޱKbwR\:Fƞ1QTٶnᕙF3}v:KUO^T7GQ|379~t\KcٯZ|&s$ LBwe r1ɡv{÷/7?V7Jc6endstream endobj 37900 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37901 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37902 0 obj <> endobj 37903 0 obj <> endobj 37904 0 obj <> endobj 37905 0 obj <> endobj 37906 0 obj <> endobj 37907 0 obj <> endobj 37908 0 obj <> stream q /X1 Do Q q endstream endobj 37909 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37910 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37911 0 obj <> stream HnISZ$_hk,`p&Nwj`*E1T}_V˽ɡP7kԩƉ022" (w1 EwU~iYUQM'ZtFA Q")JDY6Esׄntޮ6MՏY+7.T2I퍫ʧyeAb7IB7TzQ'PzG:(`ǁF|Z3h7J EH:ĿAo*HCI'E,1aͻ. i2.̮5 Coa %2;z;B2!Ї }H#>"C }DŽ>fcB0 OЧ }JSdV3Z&X.J5p1ŚwQzybͻzZäkГ&XZyCORkbͻzZäkbR5bIj ZyCORkb \Lj] =IaR5bIj ZeR5XZyǚwQzI-ּ'Lj] =IeR5p1Św1$I-ּ'Lj.&X.2Św1$I-ŤkГZ&X.2Z8&X.J5p1ŚwQzybͻzZǤkГ:&XZyCORbͻzZǤkbR5bIjZyCORb \Lj] =IcR5bIjZAȤkE.&X.J5L NhEgKБQ"hOx|!09ϲnD ?MLo4R1oteΫnPsd4m WLwiM}`tSxXm-bU3hh l:(ŏb6fI$Y>F1N()Ƣ|'|:?iv~!&];:_]^^\狗Bmn1TPEYY?ΒA0-wZӒuy kvN<[Ptz^yqJ[wXL[WjL#Na##"EZx)d?;eYJKnѬK Ǥ n\a &-;88\0I]p;H2\/\ANl|ja4ܲ0{YC߭3q]T~#GC6U7lEhB}6P-sFZ} JbKfId1ݍ{6Yiuў<=jtI߭Ci*Ckyco-$` :] ^!Ϫ>-Zbu:<.״+/d8|6obkY]>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37913 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37914 0 obj <> endobj 37915 0 obj <> endobj 37916 0 obj <> endobj 37917 0 obj <> stream q /X1 Do Q q endstream endobj 37918 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37919 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37920 0 obj <> stream HWn}GH}0X A ZٔCRr>?Uӗ*qW ǧOS]}'7W?}V~NLQ_UnJU?äկQjpwtp{n^Yb?]/N7D S%8xuy.n0eg/d.txt{r~~߾;3ZO&!~;3ߛ#S~7ThVMŝ &q*iM(pN!#Q Y|:"ڍ),+L[ Swz{Ag꽠3AP L}> #SO'A}bꓠ>1YP,L}YfZ'+b),!CWO1dqZ!KPRkR YzZ+bRK1d YjZ!KPRkR XBj),A=KRK1d YjZKH-Ő%gBj),A=KRKR Y\=ŀ%b),bRK1d YjZ!KPRR XBj),A=KRK1d YjZKH-Ő%guBj),A=KRK1` ,NH-Ő%guBj)vZ!R Y\=ŐS XBj),A=KRK1d YjZKH-Ő%gBj),A=KRK1` ,^H-Ő%gBj),!C ,^H-ŎSRK1dqZ!*xR*lpٕR8OW{SFMyr>`:2ثqz}pi~;\|qz̃ߛ'8[utEzZCX>$ڎSF !SV#񔋖 UW#+3VvT}\}.T}q\}Dךؚ-gLXxASV3k }-+g^Xݛ5+oG׬y\نy\#UҚ Ue׬er۰5k}}-u9^N5)"AesExz?qtai'@g,L9?rkǻ>__K,[Op;xK)Xg{tx8ZcsY[KV_`wZ?vZ ?w({U<>Wn?\mtSVawןi!_/2m,;6*׏|^&7Gmū#cb$XZ06d a83Dg,X|)i,c&3:،[(YڎQa@㲞5{auoV` 7,Mflvaf}bf=ܰ45gaaY[D-Xodi{۶ { Hs/x˛~^ K˻auo76 |I;_?b"D-j]Zs)dt?f7g4 km ЈJp-@AP;i%Fب6V` Ͽam#]מGl}o{Xpqb$ JNx.EczfPm!m|Ͽ=&&a֙j\E uvJ63mk[E]}V(u~N/9˯&զm5I9V篎9KU s [rcP#.s0Pcib-^1گgKz~E{6W|?j+Z !8tbm=x$6bq Uou_6,9jbm FmςАۭ=dvU}d;u>p~5}ƵS+[5\Z`ppr~u/Vo-yIij}۽;yߞ k;w]Hg8sWڤ]Ywe׉ g]uڳЕ-{w _oS^!*+sζ/hԻuOW{KPF-wz}|z{o |.輪{~|ez80JuI2ֲ[<y2g%k{#eeCRe~}-XUzU k{'>>>d~ $pų#qXG ///0AOYz QnZ,=߰]=MmM%+ %)(()sNz#JRiBϢR!BYrݤTsIP< rQ6z{GBWX,cy:LxjBMnt|˛?.h}N)izjk/T{)s%K:^T{AsJ"מT{{;rD&מ֩ړ&՞\{BL0`fڇ9 Qgڇ Qδ&>̊bRKk/iPB kӬ wD4k,Siֆ{AD4k#HSiֆ Syֆt(gm wJLYEC=(_k{L }S S,|C15 QN/hN^(cP9g LQ>wyNQ~>؆۬Q~&)?!π1E*̓ s'( 3,X( 3sDQuSua(FaK)sJQ+5yn7U4 _7^SۦU QlNқ1T簯ÿt/׋)(X1|`5C}\ŜL?squ?=ŵߛK4K7Z8aBU5! hPܩpIYW '|AéxH /C7y`y=ʙ<ϱ;Ư~.M X?axϙxm7MEtN'Ngڽav&@Yc ~kN:&ͮ@)^qF_? @m  ZDJ88@{bm2:kbj)oeSQgEZkc0pbqJ|ǡT^=yp$bU8"Tn5HaeRP.edu7p[*sC"V@]VaƹpNc7 lB˯+Bb%Q,^\O ׯnӊ [Qnڵ6qdR_=!kPϐ<^OOuף7oW|qh>v}eK&ҠSz cz@4m(vp$/\pfcכbߍlndEu>2 g/i {ڦHQX ܪX1Cj's }"5 `Th4ㅾ8n#?O n#vvpϧɼ~L+dPZ/]"ߒ1 Qxb>Hib~K7ٛX;gpG{c88/u8}5?C_u7H$;5HHng;wikUv(zU)"xCkC4r;`#9 Y8Jɰa.0?_Essj3 f\UZ)zñТ:6wnЬ@CrApuGsxB#ϫ)BFqP!Fw ml.OB?BVNWPLW"!VJEY/_|PC+;p?&V7-⠸ lmb hEN+D}BcP3p6oA~uUXd 5? pKw{C7۸. \ rFt8&ɩd$J7_ß _ 6endstream endobj 37921 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37922 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37923 0 obj <> endobj 37924 0 obj <> stream q /X1 Do Q q endstream endobj 37925 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37926 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37927 0 obj <> stream HWmoܸ__‘AKr=$Ž "( Z[]'i㺿3%Sl 3!ⷲ?zŋ_\E`P,e 2Jk5,xW˱R]o*7Ob?If0I V,s9egD<,sɴxĿv0f=}qN3ӈσim>?n)`g3eceA!H$0Rc{le"q1) rmsmG96D%ιO޵J^^^^^^>!'`x}O >%ا`y3}>'`{ }/f9!ZvZ׆(kZ׆(kC޵PkCS TET+պ6@um"{j]jZ(B Q{OPkCS TEֵ!`Vum"{j]!j]| Pj]| Q>{(B Q{OPkCS$TEֵ!`Vum"{j]պ6D=JB Q{OPkZ׆(ZIֵ!`Vum@umٻ6@umٻ6D]պ6D=*B Q{OPkZ׆(ZEֵ!`Vum"TETպ6D=*B Pj]jZ׆(ZEֵPkC޵PkC޵!g_DEQ(?[b?IfQK5xF)KӂmAx%T9|bQ xJ»^{<\oکgXg<a Uٶ6x[y,=6`_U/pq6ɋHE$ȣwyg\k͗f_*l::g8,C_EzӁT| 俩@fq$R rnāIE;bPxEYuWEص ]{=uM;V:ػݱݚؙNiڛK={X[{>mw=œ;`>]xo*ܗ6 H+rs6kmw(|hvS{o]]5gm-fߦVwEq-2 ܧ(4*8/?~grZjyex<|n+)ӶޚE5VsW4sLMݾ890PPao9^a/o{ӽңtS.8kaWR$:hf ] !_ps۸A2x,mC]8 h`zٯjPܕ{7,vYZȟ\h&^Vehg#zM32"F>4锩p,B8%̕5nRހzafojlr$89XiXv0\tKZ%qKsUA aĭa22f4E{ӳRwl>생+1{2qS[3Tχ%,c5`z:ESd־M^j9;rB*(׼O7HH+h"2<5Q[yU%]A'zbU%jz7%d(d>%ȯ)PW 6.ȧ2/ %OJeK3 zul~.Õ/r8+h %B)}Y8ןНMf TJGx4uu;""\ >'Ã\YNp[w]ݛgheT^D=YtDeuZf=Ua}SS蛫XeE? :nxi) B $NO@*|sbsIƏj'sXK|b3u}G-4)~i܃5sgh@acz,ʏrVd>qj9mSe`(PS.cQw帇R9jȲ' c{>Tp]8wH p.x`lUs[Mm95wu()SuĶr|hȕk8kోpvQx`3]'_!Kғ}ud_:8uo#Y TuLZvv5kW_kWkW|]sZkWOkWOkak-oֵاֵڹ?e6 {E) և-X9E׵ 08b,Ih[|dK&EʢȇRFhU}xΓEO?VrE*,H\ʱF|;,9/K]IJyqR>RdnKHhM$w52$$VOQ,YCf%Ik˞dSpSl6wu +D0EOf6N{:W!ҩDE's-&sh ʳu_wj. o*Z,=4hv'O]V4Z&TɌYa~~@S{Zh})m8.hX8~EZ 9!tٮȜIKu]˰ |Y^˛%D2FFH,.%D̞hf 4Uс*&37GqBo-6YcvAqA}бȱAb^Lx V^Ap%#S5ȤF\`r$ج_H1{l5rQ!@4"ldf$؁Kc_j 6#cɔ*r>C,OX#3@QB乖1vsR'ERc~~xyO`ˣendstream endobj 37928 0 obj <>/P 1244 0 R/Type/Annot/A 37929 0 R/Subtype/Link/Rect[93.600502 259.269012 284.173004 278.949005]/Border[0 0 0]/H/N>> endobj 37929 0 obj <> endobj 37930 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37931 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37932 0 obj <> endobj 37933 0 obj <> endobj 37934 0 obj <> endobj 37935 0 obj <> endobj 37936 0 obj <> endobj 37937 0 obj <> endobj 37938 0 obj <> endobj 37939 0 obj <> endobj 37940 0 obj <> stream q /X1 Do Q q endstream endobj 37941 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37942 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37943 0 obj <> stream HWoοb?_䲗r^qvp`T"Uc;CR83"pz|-9\͛_/?r~LhJ)lVU6FcYIn\7unmJOFwb0JMR"T̃Znrbm9M*m}ӵxm|47q_|Y~|1J[<}v|f%z|LrpqKdt~-|K*l:y6I>%s*ѹe$!/G1`iYCXԻ<ŀe7{[e2Vpo{'w̽; =s{/s_ Kܗ})/ }W}%gBh)MZ!R Y=ŐS XBj),=KRK1d YjZKH-Ő%g5Bj),=KRK1` ,FH-Ő%g5Bj),!C,FH-ŶRK1dqZ!{KH-Ő%gBj),=KRK1` ,VH-Ő%gBj),!C ,VH-ŀ%bܳZ!C 6qBj),bRK1dqCwO1` ,NH-Ő%guBj),!C ,NH-ŀ%bܳ:!C R Y{Z'bܳ:!&^H-ŐS XBj),b*rw6\mwb4JMR'eY&i7vWY1_m]]#Sտn i Y5LlY THqLgGr|` ~̫̞͍t~sx~O+zި|12畯BVt?^HPf%;^1_9qK(z`p#zPfdX 3dh WPVUpVEY㬒iVɴVӪiUVELε(,E1lU-ʹ 2aZVвL Zi9A1-'h9-ϴV!h7BS GAսb8 ZPÖPbuo\bZfObuo6{{+=ŰX[)m uO1l-VV{a&hBS [/Aսbz ZPæJbuo6U\bZvIbuK{'=ŰX;) uO1lq-VN{a#hwBS AսbؼZPöDbu%\bZÆCbuD1%a24~lC>nn.3cgY2+MJ߷MTuV0/tH;F&o/ˏ(MzVplh)Ci~kS]ead/g3-pWqE]t4s߬cvzk*ճ %1@2],^f6%qOnPߞl}7jP#W+:Aw}G}7t^8z6rviͪO4=xwO8:f𼁦6Ý i0,~p0vq_M:n8eo0b` csi2:ٸnX~,<0yym)"c̘~`J¶tvFX:"ws͵dŇ,UjbOw;z!:+Y;ԍsp_pp<.rNî<)涭7lֶnZяsO;ޖ6u5U |qtl4zN7f?y2 <̗Rt%=elx ɜV/CnNXM]sxٳuH?IF,x]'5=zCB@ llWӤ8 'nlN<;efn޾VrwYΝk%U;qdxn:'PE hcA@~7c]C6M^3<]8d&DDzp:0_cx,T0rLV]0-3<Y!21dx?>pT^Ywq^:/gc;1mO3^.Cm 2fĤp|A,2_-[grF MM#|ؾtmƇ< uzDwFKXmý]V >erIyn7&Lt5n|=wa endstream endobj 37944 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37945 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37946 0 obj <> endobj 37947 0 obj <> endobj 37948 0 obj <> endobj 37949 0 obj <> stream q /X1 Do Q q endstream endobj 37950 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37951 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37952 0 obj <> stream H|fſxV?/~yTPV[K83ǙMx<)TVλui&q6V4Ycr繙w}_ϸv`J\>7pC?G66QDR| ުUYl`|}Sxx kDq-PZKiDٵ(ހF -HoEz [ށNw S>S>S>3>3>s>s>s>  =HEzҋ`h Z%s-P`jFL5dz L-׈0\# Skr-P`jFH/րQ ZkS5@z1L-׈0\ Zҋ5`jFH/ր>`jFLϵ@Q2=׈(0\# Skr(^LS˵@Q Z kDbj-Z L-׈Z0\# Skr-P`jFH/ւQ Z kȁQ2=kD\#JZr(^LS5@z1L-kDbjZҋu`j(0\# Sr(^LS˵@Q ZkDbjZL-׈(0\#JQ2N%f(RXUt2Cg*˼*чUWSoWm}S?vg|wxx\bUݶnGyg,I)Oթ>+.Wg?~|Tm;έyr3pԧSxݪƤq cW lښ?7@C}Zpj|xl.t}~x$ /fx,I)誮'$.:S(Bxd}N?ß}tJzWeix˼=" };\SRS>t=û aj? ͙x>w6q{f/̦{UkJ0qS=nxsS8(`<ss.kk̆G=|AT\nh. m^`sHs|=4~D+.Pxx-tlNo6˸SR8T}n7=܀4ei)[IBw5;vsvf46ISJJ(pgԣ Lu?ںBpp((倗^x9Tx+^ʄW2\x+^*W 偗^xye5^xie^x{D =׈^kD/{z5QKހs(%zo@F\#Jzq-P\# x[{D-=׈^kD/{ z5QKނs(%zoAF\# x;{%({D=׈^kD/{z5QKށs(%z@Fw\# x;{DS{%({%|V 7>; (g{qSij",&06öVo8a&+ƕz@谺8s UIM 'w}v<|'Oafְ3q{տ?~;tJV s~ʩ}8'At7nCxջJtVx⬶w;c?JIp_=Qܵ:b/ϙ$x.|SP/'r+^JW*2 xe+^ʁW. Ux//<)M{ߒ^xi᥁^xeڴ-)zϵi[R k޷=צoI /{M{ߒ^\%%@6}K{Y{M{ߒ^\%%@6}KJxsmڴ-)zϵi[R k޷=צoI /{M{ߒ^\%Ž=צoI /{M{ߒ^\%%@6}KJxsmڴ-)zϵi[R k޷=צoI /{M{ߒ^)=צoI /{M{ߜOߘq+Pƙ8 g~>k]w:˲<3~kTvCN])F]lϡ;fS_[ uIg: V‡vy%7Ƕ]7_7ayL'맦0zܬ?o'$ N:<[~jj;@WCrKV/jj3eX:wg4|'ypL|Gjhd4wx} )J|qI_\͡/oiU+ىnPAZQQx Pٓl'.K n88jHެgIkOJxU=趶`,nHuo"$KkIe|r X]3Eb |xֆ:"A GA&HYի O*if?VWRC?rQq1+_ .f-;IlPsW2W55f;2\6mM4K#qԳQ= V;58OY^WSVx)Ky=Ǩ~TT沆-R应'-4o T|D t% mtLՊ%_(ewW,XHP JhvqXU:S}!oF5[O;Kδe4/c;XUy:o;'}諝mre1cիn2q}IlJW0'9#D=kGɅfgXK}' %i@/.W*VdH@U0gڍ[p>YCCY^dcʼn";6!e,Fr Vǝ=)5p+ԫ)Àj t4quqz-$YQ1:Fe6fQ݃߼ 0{hendstream endobj 37953 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37954 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37955 0 obj <> endobj 37956 0 obj <> stream q /X1 Do Q q endstream endobj 37957 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37958 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37959 0 obj <> stream HWkoF_1b ɰi΃I8Ml1-`\zd[Gdrx9#ͼ>y$ON"b[zu3gǩ3]۬\Eִ&:~,}9,7]jMFOF踲XS-&ILiJ4yRjMNo7k3=ri2)bOq'oibڦnQQ]on}ىw&Yl?iܳ*Je{~ؙ&5ɼ<1&*};v|XFQJN9+Ę,1+,Zm^brSp{{^Wp>S>S>S>3>3>s>s>s KUg-(V{ Vb%,^b{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb{ZZ+1fVbȃJYڽĈZ+1ficv/1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+U@k%,^b{1K@k%,^6JYjm@k%,^6JYjm@k%,^6JYjm@k%,^6JYjm*JAk%,^b{1K/,IgUkETƺ2L'7*Y_iN2R~|s,us9ţ_N_[67m{ECr$·gz g.z3`Ɏ\HaMF~?98W/Di{6RKkeGlA/eEuoG#vS33>ݜ$bw͢}Y);5MIe$>$ٔvrD۬r:$G9]&YގklKÎC=]\%na>LJ2kn=clz_'?ŢWn'yG̎[6Y[6CS:}~v$.> MMuO|B;:/"v:{S QF,`jSgvny`ڙqћg{7U؝Y܋a2_q/flnh҃?zŽNݒzy߷(qr5s:ݭٶ7l\C90%uG9^Wfl j׊td@wC9oGuc|j&fӊwh3~EZ)1f J+R*hJ+ZʀVr+hJZ*VJU*hR%ZKbZ#ZViYeZNi9r@%,r@%,r@%,r@%,r@%,r@%,r@%,rA%,%1bKY@KރKY@KރKY@KރKY@KރKY@KރKY@KރKY@KރKY@KރKY@K>KYZKb}}}}}}}}} r/1fi- ^bZe\eHWqe/'ET 0='H;-w3ګ1EJ~QNʒ8) ɛ]f,gԙYܚE7d27+~<ңkYj .y6>e 0ǎ^&endstream endobj 37960 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37961 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37962 0 obj <> endobj 37963 0 obj <> stream q /X1 Do Q q endstream endobj 37964 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37965 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37966 0 obj <> stream HWmo8_2*$- nE7=l|(IQ(2+K^K,PlwE*r󐜇3WO?]v I˗\EFO2Eʉ(X")%K%;}"m(#5.M9Utz]]]]䱏^/e,"NR9IdnWۭnWwxAE_->/L fu΁3y"M ų tPwmX~S&"2Q V6b %{7+'S"b2fJ D*?14MQ!Fy,eȷTη*Bg3(|Ym{{g{g{g{{{{{{{{y>Ga }/E^!U^!fh}&j}A}6 6 6@!mTK6Bj}6Bj}A!RD Pj}A!RD͠j)Z(D͠j)ZfP@QoD Qo3oZfP!{fP!{(D͠jZfP@ QoZfP@ Qo3(}Zַ Qo3(}Zַ>P-CTַ>P-CT a!m#mmBT *d *dַ>P-GT a#mBT a#mT6@!mT6Bj}6Bj}A!rDm D͠B Pj}A}AU$f^/e,,ɨJ$R&[,P@ej8mK#Y*c]Vٮ]Sn׼lMG X5n_znw3\fȋ#n-_),V7;/?#'dnw:MD'[-^PÜ9)-.v=vH3r9Or՗^gOe,ʔnQOdk"dY(^$l,xH=lcvް%YΖm׮l6)1豹}Co'Yz3N@ES~ɅMS=|!wG&uGBMэCz+"l i!g>~-|oڶ~7OPog'~-Ywa0SnlxЁְ.*g[%=wv˝{7&D3\׺uy1ci6^Ez+p,h%Egp{.nϣw={"ШdBB[y̙ͧ\ug_Ӏ={X˪ہx܎[{\ɽ(QƹRN.3Lsmn uV{q^mʺ=B&BҹWO-4gpgv(G훫rgM ۫_?9.x" yi\r6疇n!:}ؖSrq?<]qlTv*.*E"%3:CDH^sG)g4kDچ-tH&<ɋb`ɕ{02){^HLj*sL`/h~[̗҄{# ko_q7M;fId4n4D%)M @-Rhn򘘫qJp̳jWG*պYŦ4;-!dq_'+9.a,&wui >_; r.ȧ돿~{ /IzBd"J(ҁI}xikaEXGSaq?Jm[kU]~3rs=zzkO=(չY$; з/_n~^~tMV͡ Y86ТYڒcږX},Yȸ/S%Jb>-sL{KWAF cu;Vȍ ڳIj+c>D3ͽƷ,' ҸsכmcJBN1:2kj%E.O aݰMW.>UvRJ8A2˧{e6D{?H8nݕ%i!qS41 (ƖkA"ۡ)q|+)3lcQtEz߉xCY,edz9io]c[S,,>r.lZhz)9nic,2m?}b^Y1@MfnG*1qN:>uhStIHIΈ4JWH+HWkW_W 2+SXA`ɲ=͒4Kj+VbŲeU,XN`9WJ+QT-Ƚr/5vʽKނK]r@.͒@.Rw Rc`;{ TȽX*^j,{r/5vʽKށK]r@.R RcfI\ Rc`{{ T=ȽX*^j,{r/5vʽKރK]rA.R Rc`' RcfI\ RcfP[ؽKf{Jh MMLB)u'ǧ,NA~;K .ժZGTa3c u ӄX?7鑲^j2Wc.;ޭ5fżY޽}Or{96~vC*b<}ynQ+d լ#Wl3UVd e]l&j98=;۪?f(2XoYP:Σ[?,}}9ߝEcIw2?[{eiIĤ-oUlVU}`'@ mM!΅;v|04{p:P{^~ ΢:=\&L{<[޿S5`e-endstream endobj 37967 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37968 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37969 0 obj <> endobj 37970 0 obj <> endobj 37971 0 obj <> endobj 37972 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37973 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37974 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37975 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37976 0 obj <> endobj 37977 0 obj <> endobj 37978 0 obj <> endobj 37979 0 obj <> endobj 37980 0 obj <> endobj 37981 0 obj <> stream q /X1 Do Q q endstream endobj 37982 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37983 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 37984 0 obj <> stream HWm_)}K"E" là%D[""pIj9;r8s8zvyf._^Q^:w$M"K+#lL<ӉURG6Jc$E#_S54_ݩ4z4;qi~Sⱏ^mCT"(E s<-ŦT0l"gܻoUbsly6N\]P_&4#(IqܝaC?E:QET,>[C*"*u( >Q跨S`d!*\%e">DYEK>@) + kkk  [ [ [ g ,`1쳀}ΰ9> <`_0싀}/%þ ؗ @-#Ũ>@1>DQ!{ZC>PbTK}bUjPjQ @Q-!aV1>@1>D1*Fԇ(}ZŨŨŰTRjZ;GQ-!*dO}bTK} SB(Fԇ(}ZͨŰTRRj5ZC>PfTK}bTK}bՌjQ @Q-Q-!aV3>D1jFw ZCTȞŨ>DPjQ @Q-!a0>@1>D1Fԇ(}ZèŨŰTkRj ZZC>PaTK}b5jYFԇ=Q-!*dO} ٗIYF3w6znb{d:Q$YV9z9?z/޴ UEůZtsۨ4o>l”sJU&Ov{ld׵lTZ_Z1a;WC Y֍Zv2.▷;q]1ׅi$pK t;!ϴ# o@ne+>.@30I&늡 tݮͽ_8ӅRy2 ݮx+^T'{pKM/U/N4 ;qDlؤԸ\ 7z[gU4ާ3:rnZ\7O'g49O?.aI>7NG&/"M >in{j7MvjLA=DeNe25-eLS!ql<D4Vs_K4tS)];(Lg^V02%=q}pgl9?Y lX ij8FT*WIaS!_I)@3FΛ\Wm5Rsºǥ!Ot [L`8a/_ETj8չI|ClxG8ǷXi5ퟟA7$n1&,_\r*sap "&]ϕ²\Ǯ%ko-TQmҩ sga w̗P5i|monӲ|:p7qI:SI$|`/zT\BBo'!Ș4^4ñiK|CxBS"j&2g!nlc\k/ /~nO_.szl٥y"j6pyR?҆@P9q H%7?2Ie*ćQ5 Mv཈kF&Nhf2;yRFBL`K'Ra'Vj :1̬XLŷTԷױP0v4V\{|,Mr[Ԡ} -tad˵?%Ir}f"״1FkML%Ku*D̟c^+kf9g]t aj$t b- ß dMINdMF%CCkם[Gw}bk!ޜ3&9= .Tف ak0e"̊Pi~@õ!OO*7xrȜK,Y%\ULxsf렢=v\ʖ6,Rqf9j|b4 &Cqrv8̆VIQg Z㗃]{lܽ̾'u0nk6AsK=w:hʓdb)M GRf$opIa ^eUIؔdM|sa $螖X <붯U|9`."GPHd 0]r5k44Oz='yoބN/BD;sZ>0# ͹́~פj72,y0B m~x'S\y [g* *4aZׇ%p7nκjRΎwQcYJW3Q5kD&M Gf;  vWe4LӘM3gK´q).sنJΏ&SP2xu1F}[тYjUN~1YPWMf1f'chR0yjBGq!\3.s:l$ߟɓ[u{ЁB,]vsKA Gj}U"3s/T~p<2G(kG,7}=CW n?cΜwA蔺L <%?ovmB+r=Hzi)b7h{ ? $O~ 0=Qendstream endobj 37985 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37986 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37987 0 obj <> endobj 37988 0 obj <> endobj 37989 0 obj <> endobj 37990 0 obj <> endobj 37991 0 obj <> endobj 37992 0 obj <> stream q /X1 Do Q q endstream endobj 37993 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 37994 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 37995 0 obj <> stream H4;0=+ %B0EBi:$@@YFgqy DG&Ŭa=Bk]vz_4uS$!1e6/3n'OA,endstream endobj 37996 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 37997 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 37998 0 obj <> endobj 37999 0 obj <> endobj 38000 0 obj <> endobj 38001 0 obj <> endobj 38002 0 obj <> stream q /X1 Do Q q endstream endobj 38003 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38004 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38005 0 obj <> stream HrFy9u*T;ZLR$(>v 3=&ǎP;B}O>%ԧPxVc@cHPkRz;ގE֎!Ew\+ 1k%Z;Z;q$\kǐ";kPkRzǵpCPVc@cHJµv )BZI֎E֎!媷c@cHRz;Z;q"\kǐ";UkPkRzǵpCPVc@cH*µv )BZE֎E֎!Ew\1kZ; 4Z;ގE֎!媷cHPkRzǵpCPVc@cHjµv )BZM֎E֎!Ew\ 1k5Z;Z;q&\kǐ";Մk*0kRz;Z;ގ!Oyg|өbMAD&d#\Ϧ_l\5"t\v/U|/$uh9=>G>2 #2eˬ:Dz,լ+IKSx$H:jp~{Oĺxa,2iCԋ_^Z/EGrLS 1bYe,yUV>ǚKguc66J9!0j@JUՙH&euiSq[IB.瞪 Řu 8Ę:l`TQ+6@{j,Nx:@O1Hjgnfeֳ2_>eaj>P`p,s_p!f{f0IjqX! 6%$XoQ~Caj·:;購{4"ikLk "z$ܖ9/rezÚ=…y-vBg`]?5䝒Ok=GVz?䟏Y6\gbrjQ\bMLNѲKq^]wrv*ctj?÷a.Ŧ,bM}JyYdbVQ7={%N~ճo,\r[ҧu]zVٿM gP"mSnEZSkC>0stJFE ^Jr0gy70@_ì .7Mxwx>a 2^kZ[yewbŞYj\} ł 0zendstream endobj 38006 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38007 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38008 0 obj <> stream q /X1 Do Q q endstream endobj 38009 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38010 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38011 0 obj <> stream HW]o۸}ׯӅ)bQ`m-@brVҴH-(RQppt>on}G/_67qB:̈85iE1$~x\*omS5my(mA]jݬ?2zYX$mlg&Y>DwߏǢޖB'۫w'|ǾhZeV T}D-İ3qQVDL6g$b/.80Sta>Ɔax"oCTo!ʳ!J(;!y(A{A{I{I{I{EW{EW{M{M{M{C7{C7`S}O i>#g`-->,'D Tm"Tm 6@m"j}jZ(B Q@PoC>P TEַ!`Vm"j}6D B Q@Po;DPoCT޷PoCT޷!*dEַ!`Vm"j}6DJB Q@PoZ߆(}ZIַ!`Vm"TET+ 6DJB)B Q!{(B Q!{߆oZ߆(}ZEַ!`Vm"TET6D*B Pj}jZ߆(}ZEַPoC>P"TETC 6D}6D}BYkUps^5G<^" vxp\cl>Dw|*z%}^o~753Zij[˔I Ԗ}1 *dvyYu#D$ PѶusq!80[+q,gz߾-0%*^oDMdqVD)Hd'B\,1TU@DJ Z̻SDLL < I9YӳӞplfϨ^*+[ٴ-.5M{UA6Ci^dk]̄n{ߗ$bپp;qt j^N(@sۂ4qhg]FNeZ l#x,s 31l/tx8!kDs+Z /q+8+f0gۿTq8pOHd4yY%2J>gt5tNe"? Hf ͞ kS*D8CJ3GCYoG Lvw틪Gr|n/XA+g%^_/r貎~-1oۮoA)ϗTwuGwBcͱ/G \ z{ZOiگ"D'M %c]/w+,WʬA0SSQa [=uC=bd<7<YخIC"[˷/qPP%\~6JCm>G]H횪j-01;;O+9WЯB%\Wu UH뽏2Hs% O+Jd,Qri +lӿ"2 ԯ[Axfs804C1Cײwںq 5PB]F|> 6X̌ |zAf٧+gkLd.zD!$f*|5FkF*Px nwy' K7os' 4F&v6\/3|xt>zIk.|2ݾyu7Ͷ3ƦkXrȀCI!7hifW JJ7h;%s93v=>8dI3XY{PHiUUaWi$ae%,˰,aU "aUY .9ea \aI’ KbXR&,Ͱ4ae0,CX9 +gX9a ^1c͹ɽbr5bX$=֜ak&Xs.c͹ɽfr5bX$=֜ak&Xs.Erc͹ɽfr5bX$=֜ak&Xs.Erc͹ɽar5,=֜a&Xs.Eroc͹ɽar5bX$=֜a&Xs.Eroc͹ɽar5bX$=֜aL\5p1ǚsQV%2N?47'{Ȫj:+?iM{Xsw@~ GgM7n4p(|d[N^⩂'=5|jPpL(CFfmKkدn~ꂳBk V 钹eT* Cvwh' ͉4ǮmꂵJmiKV#?6ͫW/_A,* 2c}8\߇UzA ɥy*߿z_}w.)+4䘾;s3A/@q\,˺nwRG+RzUTTB͈M{޵~]FŽ-͜f\v\ 8{y]V(_o]ӾUUaWi$ae%,˰,aU "aU.5vdX$Ò",Űai K3,MXa2 VΰrVNX"WLErc-^1Z[#ɽbrзEXLEXLEXLEXLEXLEXLEXLEXLEXL؅Y=B=B=B=B=B=B=B=B=B=B0+grз.brз[񍫝d(z;_7_:y!TnF>Wpʇc}R{\H#Yw5Mm 'cx*׏#s\ ]~&]|ekEea&Ee24Y}= /k7-/nٌͷױ>.wM7և]Ʉ)2X& eR QYi}ORC?-v{jђ}*Y˜E)uʲpBxkanw ~*.ӱ ,ex!{f å__XMw 29ׯ]JҺ vBn:7׽DZs`n./}޸zm.D1o{5̑ E877 x4l@- ך)<WxE'Чa3 C8g޾8=9_wendstream endobj 38012 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38013 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38014 0 obj <> endobj 38015 0 obj <> endobj 38016 0 obj <> endobj 38017 0 obj <> stream q /X1 Do Q q endstream endobj 38018 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38019 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38020 0 obj <> stream HWko_7Ys|lh7M;0HKqΐdL3ggϬm<9} ~zyGd6A_U;ZN'VeAQ֑QNߕEW})7eVKVZgEtZK***sUlrUMl`Y7X:ufϟ+M;/~bbI5NX+u1V+jR6 DPN@8&vD1d(,c8`Jn 7O1`Ye2Np{'w̽; =sO s>'}*OTp2>c3}g9s s>slf0FVZ!{!lj0CMbbܳR Y{6VZKZ!KpϦ SK1d Zaj),aj),=Z+L-Ő%gSk6rR Y=ŀ%L-ŐS Y=ŀ%L-Ő%gS넩lj00CMbܳuR XR Y{6NZ!KpϦ SK1` SK1d :aj),=Z'L-Ŷb),aj),b),aj),=Z/L-Ő%gS녩lj0CMbbܳR Y{6^ZKZ!KpϦ SK1d zaj)aj),bb),>W1wFϊ(2@P4S65/~?~mU ?쮭r,?_̮V'ڕ݉zvgʼn2sDXfuRЋm{=aXSUI>8Qb[^9^䦭jX7K"'׮T?l6z;^+s1L'  A;`}HB=cٗZ ??(=MurTK,0 X;O1RY)tN=k-6RU]Nu:=~0s*tÈ TO׃tw.߼}qv14&qK؋!׹%1ƒ'XŠz/|I{mCwdƔg__~e/D=yll>i?cѾ#/:W-b!Is:W]򤤙l+Uo7t4(!ڬauWÍ_`pv$MJ~~~w?n'26:W6*E:rO1dq-K=Őŵ!7~?+\:eTq=+3mUST۶T ʒ,lJ\UX \t岫L ֈcG*;ԟuUUw]vnYn[Uժ?x@xl*6+3Kt']u>҇jt}' < uYPɒwmՕwm۴ջrܶ򸙋/M*W\ф\gߵbHaPuY#b|=V+W'{\v\u\/]3^,f'7j޲ܱ!GpirYBnHM~ecϠd>@gMgTH^vmă5pd$tC[arU-USd+{QnaŢ#c r$Iz\26VeEѩIѮ]Wnw'᪏x-7}f߱*`c&`CKi'2.dBo:"aT{7ɬni86a- .}!!YJx.B-3RO4-KmzÐ4=2za}ջ [b ,͍,PMK@#![_ efg Rށԧb=L*LqANf Ψ06B8$)<h80HMKԱD `-)ߐ`<$vA)XFئ-['(*SR@j]Cfdpd#P9"iYTeE9\ U&8U!ltu T0趱endstream endobj 38021 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38022 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38023 0 obj <> endobj 38024 0 obj <> stream q /X1 Do Q q endstream endobj 38025 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38026 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38027 0 obj <> stream HWnH}W4f_Ef_xi άelCD9H~VQ$%Wb.dNNW.'L}"OTP2>e3A}gS s>L}>YfZ"+b),!CWO1dqZ!KPRkR YzZ+bRK1d YjZ!KPRkR XBj),A=KRK1d YjZKH-Ő%gBj),A=KRKUR Y\=ŀ%b),bRK1d YjZ!KPRR XBj),A=KRK1d YjZKH-Ő%guBj),A=KRK1` ,NH-Ő%guBj)Z!R Y\=ŐS XBj),A=KRK1d YjZKH-Ő%gBj),A=KRK1` ,^H-Ő%gBj),!C ,^H-VQ"b),!CWO1dqAៃ*z9NSFM;4 j>N_Kunnf|ޞ|9hc lzӯ''LZmq]7Y,$''O]&zPY.XzYly/7ͰY+Ё޺lYy@dz[;?N?X c;aEG[}+CK~ I[yOrg/ 4aa x)65q:˓dQGeXcd\ֲ ``¿oA޲o_a߫r[/7>\S{bIٶXcw~ξ'} 76ējU-vyߍ5`:̄q:줉k#ʀb'9Ae=>b\31~(E+QZ˫3qb麙qlk2F'? V;鮩%7:((VzߟF Eu+f訃a(w?複n9 "BI!|a>{oAxu9FpuF3{D1d9SQ݊`<+-t6͓ ug%/qI6` chOּzO|] A.*8Jn""4'lx g 9Is3lV*Tjed`)c2endstream endobj 38028 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38029 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38030 0 obj <> endobj 38031 0 obj <> endobj 38032 0 obj <> stream q /X1 Do Q q endstream endobj 38033 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38034 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38035 0 obj <> stream HWn8}WQ شH6$lIYm+ѥW|VM1.S,|.1?~x￿y6_ƋIrRfdJm0KX=]UǾڅ}ECflwp{ $>,mFops-T|mq&P+/oxA8eqQds(r1i50?D8zoqBL8&( r9)Gr1dù8Y,E\] XP/

'SSSSSO}JO=>gS3O}N=9>S_=r´.p!Wb"\bջ|.,µ.,BZAŐE\+׺׺kZCs \b"\b"{k] Yzϵpp!PVu1d= µ.p!Wb"\bջ|.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] Yzϵpp!PVu1d=Jµ. ZCŀEŐw1d] Xk] Yzϵ ZCsmBŀEŐE\u1d=&k] Xk] Yzϵ ZCsmBŀEŐE\u1d=&k] ZCŀEŐw1d VE,5mpE!K4-mFcn9O]اtvem:xYUv.m4 #+4ݳh~}kT\O3Fev6o dGZA1YgM*Gv55n5Y iBzlk.yR;=#h×j|5 V{=U=,x9=;)ԳW)QrQ{3mAS'Q`|#,4N̲8I.<[D<˘8bRX\On>f8J9(wHajlx(+̓SN] %KSlwT%@h% ٜdNg;)a0XD$ fJ62-~3 %yTwi{ 4eGC0=(TmnVۇi`U5z'us:#]E_紛%FP%sHR(݋ISBEWk[V}g+p7Lct4m.oGy|u5_̕RCӗe|׍Ed]4͗w6 4ՀMM͉4s!sx&^&LAPbF/"Apݢ { ^vo֔KLQ,hVnm`*`aXvmbj[MeOB!lYZqK j8̹*SUǞ&0tX׃S T,Qx稞2NX,~[tjN:IqEe QQ/2eUޢ13Ws0aD/"B%ZL7sEt<.$>/:3"w HStoBcD}(!A*LL=\Uq_C;bv6q XlMsO5x}GgZt?'h?y $BX~ﮗ#3=R*쵤m~ kr_C>Ǜ܄jFq"fJq8]CaϢQ(xBH8+@"=L(cl&m9y|ymvl[K q).zH}0Ro `9qC`W|݅Q6BeZV¯CLRY3)FÎyůT>yJ ?*A+ SdXI58-kJZ'(1\Zlxxi--K/4)2o6_>R6h5`r`(r.Q-5 9D(D-6XVev|]""endstream endobj 38036 0 obj <>/P 1381 0 R/Type/Annot/A 38159 0 R/Subtype/Link/Rect[93.5999985 567.229004 184.404007 586.908997]/Border[0 0 0]/H/N>> endobj 38037 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38038 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38039 0 obj <> endobj 38040 0 obj <> endobj 38041 0 obj <> endobj 38042 0 obj <> stream q /X1 Do Q q endstream endobj 38043 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38044 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38045 0 obj <> stream H|Wn}W4!6žblk# $C8-k9Kr,+A=U K!OxtNxO^߾HI+eD(U"Ku(ѹ bHQ.{mWU+%&[% 1Eb B?F^äJ"y}vudUna[Uf.l>𹊤Lw~pkD&Ql!1/ NY~@GJ< O?N#@8]`P1`d=!OGmGEK铧6@)+kkk' c0}°O<)>ا c13}ư<> c3se[e{hm(FԆ(=Q-!gOmSRjZjCSbTKmbTKmb{Uj Q {OQ-Q-!aV16D1=*F(FԆ(ZŨŰTR.Ќj Q>{jZjCϞ峧6@16D1=jFԆ(ZͨŨŰTRj5ZjZjCSfTKmb{Ռj Pj Q {OQ-!aV3]`R|(FԆ(=!gOmbTKmb{5j Q {OQ-Q-!a06D1=F(FԆ(ZèŰTkRRj ZjCSaTKm aTKmSR|Ԇ(FlYrB}`'ZGJpx޻8c EÛ_6Tn(ԯApm+ʡjƌCw(9eQ*Y?hƈTQ>*"I57=4J\`Q&CۉTzsAc.x:`u) ǡCS/l!Hmg0N"s x^uU=kl&}Z%):o9: ]{ؿ?ӑoݷ?z`myX_siRs9pr>Y7`]@[5-KddVe$Xwr#J9)~pHdz9žwۗH{1 7NaxŊILXUG=CW4: v=clElSW njz τ]ݖ_@'d= ::ī{:5ƚxHcp 4o¦ľs= ^'G]_8 & vXع pz>8^ 00'OE)v% Ld9x5>61P{oˍ[u ń{?dFRkGM~15m^;h1(jE72L⛧Qo:.|X'Y\:[N̋CS ~^؃zgka^baOrô-Hƹ"Ƈd*=M2h"CMtI3elصӖQV0ؗ]uځc Yॐfps&AB%y`4hpj%g5\$C1/i_t/3|C*s`.9yLOX,,hv1gx 8y[7RyVübZL%vƻz$^qW/wNPuovO`~4-iռ-h߉;Bz;ccwVjڍ^žJJ8k-׫NI1SRb0חMXWcSCi^(? \:|x,u!.PO4i al$|rmnJ͋Uj͌]eT0$({sL$q 3 ]e0.FR4Z҈OI}<;ziH[u{^f09(?4#z*g6/x1t{.Z hj@.l$l&0 5vk>p oE~b>:|60x>=VТqg{50o1gW㌳T Wk.k$2I2p3:a23dȲpS nN.d~g=ዝHu~@-ZqtWn6+rW(RBObRE ߺ([ ,;C"%DR$gy_d4N`h<+٥݅~ r <"p$N{9=E&5!6W &2Կ,"J]fy<4JFӴޱ*!~TڝXT6#M^V@LR%+Oݫsh\ χq$̎"wvП/e #d1ŕўGpHYb Z0"!z]DohQi׶ !ᡒ3qR\kP;OVx;.'t;ae!)i{j/t2ۤhl9?`nRn՛VAg| ~tks y&gg=`PF@?f3*N]Vn/ YNWS0Uh_E![%̯_t oz2=\]tv~6&3o[$o; Y2ɠ \Q~嶤.W2݆30GM 4"2ORcم[Q-,[63+8 :5}2Q QgxN "]nJ/.Ӈ{]7L!8n/9 S?g:.=L fBt e`GD}9{ Ԯˡ-EQEu%U<*e9֗/;&N9 toU")&|?ڋo=\$onUJz5gsx%&r+ؒoLlg ՜} O;)ɒlON(QmfY)ekWbWMs1v( %TBTbo6"Ĥb$K[{ls nhpK%]Y#Oօy%`T<78\ Y!=(גP@W>ͯ6X3e"z㙟0@JV̝ =35EǾPT|NAD+ 29}ԧ7 SpŞg$3y 92ųN)]DK7[Ebg`˚ވB'YGB%A5O֜ >B{a} :K[tz}9RIs~éf? mb痻`#0endstream endobj 38046 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38047 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38048 0 obj <> endobj 38049 0 obj <> endobj 38050 0 obj <> endobj 38051 0 obj <> endobj 38052 0 obj <> endobj 38053 0 obj <> endobj 38054 0 obj <> endobj 38055 0 obj <> endobj 38056 0 obj <> endobj 38057 0 obj <> endobj 38058 0 obj <> endobj 38059 0 obj <> endobj 38060 0 obj <> endobj 38061 0 obj <> endobj 38062 0 obj <> endobj 38063 0 obj <> endobj 38064 0 obj <> endobj 38065 0 obj <> stream q /X1 Do Q q endstream endobj 38066 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38067 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38068 0 obj <> stream HW]:}ϯj_zVC߱"+X $@(tgp;`4q҉]îOqթ]y[Nӛ_z8{şХ ~J͌S4}-kYqf[͋n]s:+vhn%z,/`˻C#@ Qy(!rTbC!P)w!r P`/3`/3`2`2`2`3`3`o2`o2`o2`o3`o3W*c_쫌#ػ#ػ''ghSۮjSr PjSr Q9(B QLPmjC>S$TE6!`VMm"gjSզ6D3JB QLPmjԆ(}ZI6!`VMmBMm٧6@Mm٧6DSզ6D3*B QLPmjԆ(}ZE6!`VMm"TETզ6D3*B PjSjԆ(}ZE6 M6!*gE6!*gOm"TET զ6D3jB PjSj5Ԇ(}ZM6PmjC>S&TET զ6@Mm"gՄjSj5Զ+ Ԇ}jԆ}jCTޗ{8 WYϊ +vKˬl+Msȥ̀\V#>vG?-*+0_nϮ+ͮih_aw7$"mv)a~.*_ x?`.TUlb0ߩ|.V0W@٘>m2ǹRU¤9pYzߛc,ªrĚ*` Q(W Ո ,zWbAIO0>.ҨoS?ח8lO`nԗRL|u\\g[sd{߳t5=q}T*e@դ:&DSeXm}</Aն;BI@PA4=mWl\ uf [{^;CPޞ*7޳*r<[(J)x|%j=`V{Bv?찋Uݦ<9\lVJKkmv ,kpocpʄQXqಯ]l̞v_U<g_y9*U^ 0vD`֩__:Qwѱ;lxVm}jYHѳMԅ zNX#]A0ji d+(gww=fu =eV{ÚCp7ݞҸ?JRϢ9s8KXc^q¨Bqp}a훤yc3{ihK'Ĉ1&梽TSAꓩdo ) !2ђ籕n2Vb݆ߺ,їI""J@ŪWOx>a#`Q(!}{jmPq#XjC45$"&98YRCb3Mxtܺ =zY;0œ,h~488㷿qmaÝ͇˰ rHpLlb6b\q.;W%L21&/ƻKPcL.VŚ~":҉#}TRML(~ \<CΔ+;  pJbe qVd<<Kg50/]ߠaww? S7<T[7"qPesd<]±&„Л{VWnMw[f]mtJm}#NQ^Y^rZ;-wgbO޽mM[N1sF)@#gXnN=fRx@vOs4O]EjՂUYyMiǟH ٲޅ/*T?R>v&LBb_oJglץTQ, :A0Z gw%㎝_CS1+cJ&̜%jDZI0)v7(rDJ,+ǖ-,JS,y_r95N% #< YGʆzxWu(K6F#Y:^vUOy`#-[ TDR?˴񹾬nbUTtn g&h5v2tf׵f/Ru{^}KQKu1v([2C\1 ,s"yOp/a:!H<=Ërn 10LHqPJyM V!5:ҐKvV,V鈐 Sp߸rIYspaK 60/ Yٞ?fwVמ˲}R$TW#"츊&MaI^IRWI]$ yI Rs4BY:9Xp?wc~u9G] դf?j %J%Lr؞Y#P=XfC.4)8f]|ۆk[opB1W,%p84꿒K@ :aFPOg`KN867H uFm)T\W6ksx* 3d\e5ݶMI`o -e徤GzQ ˧l>+WV/endstream endobj 38069 0 obj <> endobj 38070 0 obj <> endobj 38071 0 obj <> stream q /X1 Do Q q endstream endobj 38072 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38073 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38074 0 obj <> stream HWn8}WQlZHvlN2X"q(ݴ[.ޖ=-^ti:d<>$:awo4Wo^G LYIbsqSD:nj_uCutOCjnxHq s2-M}Jv.aYД0vynf$iWꧮj}ժn7: f-@ Ҝi„j-}jmao#NX|i|OxG% `пmT329e)=My@1 1`QCg QsD}y^"e^"e^"e@Q_KD}/g)bZk#4+TcB\c1 f!2ĵ>Y q qi>p-C\c\f!2ĵ>Y q qi>p-C\c\Xqĵ>YzZӬPiVǀ4 Q#1Bk} Xk}Lk9Z,D}Zǀ4 Q#1Bk} Xk}Lk9Z,D}ZH 1 f}LB>,ĵ>Yqi>p@\cB\c\+f! ĵ>,ĵ>Yqi>p@\cB\c\+f! ĵ>FZӬP qiV4+T_,E涍^m co#~(+IyoS2cnJ|UwPm;giX :͔߽rzݔd%gf y>Q);էf%IyPGCX2ڎn iS{4=pmz[ۯ`vn4 *MjD4 }=8!0}rd!jr;iٙt_Tz%ޡ~Ǻ,?zqE\[fwƂV!(AH&,I~=TlҜ6kf܅AJ5QX)?7in+@!.,N#4rKYQo|( AKg &pnvkTƅOD7$IKk!Ϛy}88.%ZC\]5Aŋk&o$cBJ]3?y,;@:xόU;isu{׻FƫC[7~H)$7QMC:JdK GdL= Y/ʶQ@c{< Ǧ?)Eo8["܋`E\, pN8 ST6?b: v6+ch =8}YrSಒ&Y?Yb$)Mp4/t(VE5.r{N-חKIE ,|(zr 9!_89xmBZڐ Իt{ccPP@<۶;|,d?04צ~wV9ګda@@W:>ꁌކAiʅ_Ng)Snx'HGtLtJК󴜼YnC4 ߟOs}Еk:-pF:!rş肦|nohl&sHRțOtxPX`ܥRpt/GksG9vrs vB 4 T @"4y||:ǯԷ-D;,zq K؜ _xtOE1_PS .t?h32?Wi VE9绁AN_eC!p䭕-9Ο +tDً w t*]_,,"BL#{O i@ömBfIP)T !w]?:LS9^hBj>/BI3{4? ߜ˙ wd"8-K2Fxa&d%^!khiieZ^PhS8)KBcn)uWz1UJ xr^`*ƧԨ5tmkwN◌I{vױ>DW>7V;o IP3|ݶOq%~*տ- Db,d9]f?cKՊ%L!UT蠘1gC(y.XܛompS(iY!dBjqW R/Q>&U[j&@D^}?lgf<7&^ S[jG#J׍B] VоVoI,)Ѩtsh6<F=.@O<(6RsK+E^/UK&yj! չߏؕ!Zt~JBuWͮ|3#d(|4ecg >ӝRCsS(nՋR;*:R;M`j$9$(vdYb,,* E*t1P2CG cf?ao:EoeMXDhyت{~i$V@['H>3K2:-71Cպ4M杻v<_@rFKCIno6rh.&^Q_0%qJ\Uܗq@&D:h&px"2npɌ?tj~Euv+QӮLn-^ bO^DIc_y}evGw#?Q5eUw9zjVx1WKKFf; _hfi,eؼܣQe¯4Ǯ\$K#.dC20`.-@daKf ]a&UMTZ ˶DG9u>r3d )(Q3rIQlVLĨ}Uzm׺jJBR:۽WIQ4^JM~53T"KD_׺m¦;O|,#lƺQj%<(0.6vp2Cn^Gnw 8]Ndǰ%e/yԛٲż@9UMw"PtsuH̕r*V<({<,2n h[U;/cᔦ$d} 2K.nDx *HA/,k,ikGU9xsW/>QJ#^W/88ϨgByiP/&endstream endobj 38075 0 obj <>/P 935 0 R/Type/Annot/A 38076 0 R/Subtype/Link/Rect[93.6003036 435.230011 298.140991 454.908997]/Border[0 0 0]/H/N>> endobj 38076 0 obj <> endobj 38077 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38078 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38079 0 obj <> stream q /X1 Do Q q endstream endobj 38080 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38081 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38082 0 obj <> stream HWk6_A`hė"A-6̠XTW3^Ro: :>$/﹤nKo޿%oxzT4!?DBKFT^@%9n?7uQ7y&ߓ&nȱ^Jv/I$Q]mhlw MiIN]Zei/nO&~'35{oX+N ns_a2?6i}}Q쳈-oNSGHܗ0y"4 ’>rx }&a KPxDڜ$!٘f(uYYa)u999;9;9;^8^8%^:%^:%^:CD}>BGQ9#D}䨏>FǎQ8DYJ!1rژfmL\6,ĵ6Yzǵ qiq-C\kcB\kcw\ژf!2ĵ6,ĵ6Yzǵ qiq-C\kcB\kcw\ژf!2ĵ6Vzqiƀ4Uoc媷1`!1B;kmLk9ZZ,DZ4 Q︖#1`!1B;kmLk9ZZ,DZ4 Q︖#kmL\6,ĵ6Yz,W qiq@\kcw\+ژf! ĵ6Yzǵq qiq@\kcw\+ژf! ĵ6YzǵqD\kc媷1`!1rۘf?IAhKλdwh`pxP! ÄJnӞ><ܧ]^W+a2I5C{Jtߩ@Z)nxI2<=ulQXPQ ,>*FTe*N$$ʦ }UWa Mfx22<+n䔶P_R{Z}]JUĴ=O^ 8ZGb @p;ZߺnG]x>#{ʳpwn`Izw21>yCHꇾQflF; Mkq:uQ-V ,Ri)?^ bKC9/Yx9nCR' cc; $ 2>3'Ht,ټUMFD4ki#M8YĚS|L#sϙeB wMzۮ,~R[2*SޝHw/mZe-99dK&8EMBOD׹ҝ/Zy3~ 5-dy{.gNJd~UCŒruD! 6(=Xq$FE}!z6ݙRս*դzab/ZLreuM *geÙ/."r6I0I}I3(^%>^\@ ^>*^T'+&M fZ_xN3abifc8 ֬Y$'^-(/,&¦j+P3ey2)f7DGzZȎz 24bzI|gPm̫PX3el [ЬERIвy@/4@(&MAKѵ=?ԓD!Zjtsax61(& :Ȑ=ZzNeJ3֎ЁPIMᣩRIR!u=Su.K9ॺf 1,?ثҁv5~#3 f/fw F.YYuYƄ#5-;? {wU1xs=&҅47K$ M]uL o 04;GiS^UM`4B|74f~(EG}<Җ,˱me1W3"'ˇV8zW/*7U7|6Xw./td<3L,vJ!?JΨtA⥭z5Zx1*/ E4F24٢a9*Eݻu6!)*•X 3 r TJ?]6 =幵Rˁ WJ+eKm< 8_ Uur\ ^Xse{9mo!9>9VuP8?:cn/7D0B- >z8ԕ#66 564#i8`Y* O`T|4oW;֏_.rVϾe\PrL7/`!h UF. FB<TAU3CF zӟ{rΥW L4}E]-)\MZ쪁\<[?])$+Bͻa[rOh endstream endobj 38083 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38084 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38085 0 obj <> endobj 38086 0 obj <> endobj 38087 0 obj <> endobj 38088 0 obj <> endobj 38089 0 obj <> endobj 38090 0 obj <> endobj 38091 0 obj <> endobj 38092 0 obj <> endobj 38093 0 obj <> endobj 38094 0 obj <> endobj 38095 0 obj <> endobj 38096 0 obj <> endobj 38097 0 obj <> endobj 38098 0 obj <> stream q /X1 Do Q q endstream endobj 38099 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38100 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38101 0 obj <> stream H|WioH_ћR&ɇl& Q`(m1HE,{:, RuHV>o/^<Ȇؖ`Ǚ3yԙ0mȚDӡQ]߬ofoӷ\UtZ g..Ҕi0*W64L.yt\ڌxgbz=KnIj{6aUg+561хwMT,v) %_Ee~,L%ԜRplIbҗ,1+,Zm^brSp{{^Wp>S>S>S>3>3>s>s>s KUg-(V{ Vb%,^b{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb{ZZ+1fVbȃJYڽĈZ+1ficv/1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+U@k%,^b{1K@k%,^6JYjm@k%,^6JYjm@k%,^6JYjm@k%,^6JYjm*JAk%,^b{1 7YV&[AJRZhVPZ)JV RLie@+SZ9ʕVrUBi@PZ%*V J%1fi-Ҳ@*-r@KށK0ȽĘTȽc1KiKY@KށK0`ȽĘTȽ1Kjy{1KkIrA%R Ah{{ T=ȽxDZ*^b<-{r/1>ʽ@KރK rA%c֒x`Z*^b<0-r/1}@K>K@K>K@K>K@K>K@K>K@K>KZKbZ#7ROA˸,`w*zQEUe5eTn Nqf~LF4ly3ͣM/o|Lc/ikӛ7g~=~BlKN.uywWZӡ]3נQ%a=\OFM;&csxtiv{smu^n$'ǩI4vHz]?j mebD86Gmf7 YvmY_fmݟ&m3 ?KO [Ƕk E53=$=rG벛}?z60.]͇.emnkFzxՍ`|݊qrxzI`2;?W%"ۯ'{xiRu6ѢO^'f'P%>&֫7ۈ߾yt- 2Yu~B>tߛ%]d4Wtzf]ӗaQ+@(qd6NiclpӷVIvanڡYz!'uͣrGUu٬!M{5立f=#j [^qz6w;fFeM;.6jayS)t|=:v/E N=[L~ Ҧ]߃鄝NXMnm.oږfX}}i껥Y/&޹ûF󖶛b\ϳųgIm$irAC!Z;j3J|^:pO ?19{nd!nf7z?Uǂ-;*C? ^dhfo,Ц7Кx!VKhs/I$(vCӍ]{GcV XJ+ J+ZJV2) heJ+ZʁV U(hJZ*V)\$,%1bYeZVi9唖Z*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ#ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘTȽĘ$F,{1 h{1 h{1 h{1 h{1 h{1 h{1 h{1 h{1 hܧ c֒@%,UtÏtXQEpƚ2*60iICG7 ͐4xˇ^揗$,unЙŴ/ʊuY ~Rv3lPϣ?ukOl9~lQwOW[16w4R)#?3}GQ*mwbG&p޺v# -L,A$ֿ_p4h';=?'>C}pF6Q'#$ Ԗ a* YmEd"ׂD5E⿂%0iH!9뮆mS8jh`161NV\ ֭L'1R_˫J`u4:+R#5M: !. Ώn*>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38103 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38104 0 obj <> stream q /X1 Do Q q endstream endobj 38105 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38106 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38107 0 obj <> stream HWko_1ȢU8c΃/l6جnR BL%ʥh{E{CFȊ>[!rڪGe;}շDTTL?Q2*S)9$8Ft1E0dz72Vpo{'w̽; s{ܧO)s S>g}&Ϙ\p3>gs}/s_ KܳFVh-ŐS XBk),b),C Vh-ŀ%bܳZC R Y{Z+bܳZZ!KpZkR Y{Z+b {Kh-ŐS Y=ŀ%bܳ:C R Y{Z'bܳ:Z!KpZR Y{Z'bZK1d YkZ!KpZRlyCwO1` {!R Y{Z/bܳzZ!KpZR Y{Z/bZK1d YkZ!KpZR XBk),=kZK1d YkZmTh-ŐS XBk),bK]W wtFo\[e|%(/Iz|9Pg*J5Fl=J+OK'U݆V^eՌnFm;3EnDtwf];6=pyM~yާΞzѰ6@D$陚8MhB[uOORMꛦg&% xpE7Hx5=1^/an&l?V/]w;f? xۃJ=yaL+/E?@>Mڻ/ :IQTfNc0{i$gJ-0au]?euwfv 3ma^zs/2VĦ:TDtC9zHia`)wH~d YL,=";!@LWa5?!p}S.v;blcp)XvGœhh8UKê/f\cYGnVG]Ҿ/+v :⍺/X\O2}pĸ3-䣚֡tDUIaxz$^*^PP0V^t8Oݎm³/wCq_iu9ioQHeu;w×ղE=jM[mGaͺ|Kx=M'onzxcCzONE+}rIÊbayC7nܯ_VsȣeOգU('RJŴ噖dβ8]]|?}ÖNg.nex۪n16Xoa&S} /r3:uX&8 Ys4~Bq˗]6mQW:P!i]((P4ﻒ^63|d}˞U_int}wwuqXOY  XډkO'᣽>V{?Wg>uﱜj?g;Z7n]nDqfymyM4ZMUV! X5 HQFbM5kXU*`Ub5jj<+33kEĊ++ y>CK$ZE',> }`Ix3O{%X} -"gh1g -"gh y>CK,ZEg,> }`Yx3{%X} -"gh1g -"gh y_>CK"ZE,}`Ex3/{%X} -"bϬ%Zj}kG֯ᡫKl{"MutrmѧGˣrz|,[?]v4M5tendstream endobj 38108 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38109 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38110 0 obj <> endobj 38111 0 obj <> endobj 38112 0 obj <> endobj 38113 0 obj <> endobj 38114 0 obj <> stream q /X1 Do Q q endstream endobj 38115 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38116 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38117 0 obj <> stream HmoF0pHhr^HCn~@+ӶvdQ e3͢hyxI\ח?ymY{VΔVmcJվ/~WEnZmTq~:n>oͮ?7k?x(.Gj)|IڪS]1M7_|l6ڕ}=_3ú?vq?x?;]ֶ6M\aEfzO)JSPkUxӔNş·-~+/wśEqXhUMj/Ů}_oO׽X=b$6t#Fn_FZo/nW?_}X+uWZ5OׯU5;W8⺀lhdYKh#N{5)7k꼚ŀ_zv{r8\?7:;8^ /f0v^?7Q'0wrxW>)YM\e #,,GXX a5jVKX-ZjV:`y%&.%6s&X5a҄ rI,{%6s^jI\"ZRn3H,{%6s^jI\eH,{%6s^jI\"ZRn3H,{%6s^jI\"ZRn3H,{%6sI%ZRn3H,{%6s^jI\"ZRn3H,{%6s^jI\"ZRn3H%Y^jI\"ZRn׷؝0FYJۡ|_oO׽X="a]Mh0ޕntVz9'Ζh3R x}(67>Z}~B7cⅺAXΖs៿"jB_oj9EfvlG_ !>.4*i?J]e #R^vQϯ^84(W]Ba[Ȗ8,'gd[+/̫ތ21V.rVX*XciK ,X*X%e]TEk>acE+bH`E b| 5ӚGXXi#b,V1{ZK=|U%|>*JӚGXXi#b,V1{ZK=|U%|>*|Ok>ac 5ӚGXXi#T=|U%|>*|Ok>ac 5ӚGXXi#b,V1{ZK=|U%|>*ӚGXXi磩(79$=rJ((|xTmQ5< i /¥U }52 ZECp:nXm!Qe0*_8kuvnw6O?È[ujև~4"&I^ax4HAhSTfJA /4/< MS5OmFV7:vMVê l}RnuyOy iqlf~ʋNq{f[ =Ykv;iSMެ+6cArAvη0z0ֽC,\vU:Mf^^~ҾW IS_]ĩfn*2pke{ӹ[rn4/_V~]_g7I]̭T޶Fum+aq@_=Tgu^7ߴu6Kf zƩjY_7ߴtշ7u:-݉<`gت 4ipVD޲n-;>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38119 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38120 0 obj <> endobj 38121 0 obj <> endobj 38122 0 obj <> endobj 38123 0 obj <> endobj 38124 0 obj <> endobj 38125 0 obj <> endobj 38126 0 obj <> endobj 38127 0 obj <> endobj 38128 0 obj <> endobj 38129 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38130 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38131 0 obj <> endobj 38132 0 obj <> endobj 38133 0 obj <> endobj 38134 0 obj <> endobj 38135 0 obj <> endobj 38136 0 obj <> endobj 38137 0 obj <> endobj 38138 0 obj <> endobj 38139 0 obj <> endobj 38140 0 obj <> stream q /X1 Do Q q endstream endobj 38141 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38142 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38143 0 obj <> stream HWk_1qCl.Erw3p@pAK\/=6zxc&%k]k'+TSS$(_<~_ߘ¼|쟙 M`bҙytff702k:].}}Ynݪov/^Ͳ5,&I&V];w>uԹn&ڟNv_wv5}F[792/RJ,+rۓN/ϝ30g\/dɗTR5ٻ,EI^$,Ĉef YwkyNwS=p{{^}PpG>Q}TKTKT+R+R+RkVkVpܫZPZ2Z+1fi#hĘKYڽĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhV{ Vb%,^b{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb,JYڽĈZ+1ficv/1bJYjm{Z+1bJYjm{Z+1bJYjm{Z+1bJYjm{Z+UAk%,^b{1 7wዲL@>a KiVZAiEVZQi@TZ%*V*UJi@VZ5ЪVZIi%+Ę$вJ-rJ-{r/6f)-{1 h;{ǰ1KiKY@KށK<`YJ ^bZ*^bi̒Z^bZqh{{T=ȽxZ*^b<-{r/1Qʽ(@KރKrA%R h{{X$,%1} @K>KGr@%ƣR |r@%@K>K߁}?-r/1~0Z*^b`$,%1~Z*>)` w|e3̮4 =)cxlMܭâ5C<>KzJҟ.n߼Kouݯ{u^[_MlPi 'GG;S>u(&}?M%IVu96W#ۼ0tdvu5yh<7pV6O2vҺ-$p%g6Vgu۟\Sfw7U^|߽̤=;l2!|KYZKb}}}}}}}}}Ĉr/1fiDM -=e3kfYõq4ëOmkhϫXEV.Ѳr٭?M;,UWy ;Z5::ra=w5Dbņ*/ 8[Ovٵ[3}j?{rحÂ-wOc㻐Wޜ-ʻ?~iǷ|go^eNٛ5[vyczyp?7_n|\9Yt3,>ϫsJtص{k)=@7Mnu>t#[o<2 [ʊH򤱯,qe|gt0ZcA\T+p-uzy9ia,\ip>^=1ܴ~qnxln;}8MNXݐɧvnǯnA?@Piݮ5m߹C_Ed3|?g9JF(Ɔ&D#uj }̓ɦD$G']~oKx {GjA|XSM P4mZ@zQlVa[Fd'w\"e٧.}pf6z ӥ:P!&F:pp.|9/b!"A!/{2E/(ö|ćsE QaU3'qVRE蒃2tVHW,-H9@ː'\0¿m| 6Y9ӻ֛xPBiFhXK>O_ v'7{$]hD_G,6M{A/HHTv꤬9,0$jT.O1Pʃ8UE'M>Gsl2 jVKsw#;57$k 2 =qt&ʂݯ((>/1C{k7[T[H9Af)!yQnt!LcJ^mhiouGS z ƺh;a{g̫(xC&q*OdQO~WGY;Ej%t0jVJ 0{G"uww*}XCH1RZ81E)=G"\ZwB؇E2h< J#0x bv<chu"}˧o NK(endstream endobj 38144 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38145 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38146 0 obj <> endobj 38147 0 obj <> endobj 38148 0 obj <> endobj 38149 0 obj <> endobj 38150 0 obj <> endobj 38151 0 obj <> endobj 38152 0 obj <> endobj 38153 0 obj <> endobj 38154 0 obj <> endobj 38155 0 obj <> endobj 38156 0 obj <> endobj 38157 0 obj <> endobj 38158 0 obj <> endobj 38159 0 obj <> endobj 38160 0 obj <> endobj 38161 0 obj <> endobj 38162 0 obj <> stream q /X1 Do Q q endstream endobj 38163 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38164 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38165 0 obj <> stream HW6B6Z$A&mM&:h$l+gɮ%^!)Y&ǻ`#|$ G7Czu۟4~o"&cX"xg"Q<>T_q:bqG7V۲P7UnxEo͜}1H$ic cyZ&<74yNc\%l}v 󬘽ݔ:\}(Nf)5qEp>Hg69:hR| Yt>,B!K,_;cx'@='@ ԋ@ ԋ@ ԋ@$@$@"ԫ@"ԫ@"ԫ@}F> p-'\c"k} Xk} Yp!P1`1drµ>,B}ZNǀEǐE\ k9Zk"Aǐ1`1d} YzZC>p \c"k} Xk} Yp!PV1`1d µ>,B}ZAǀEǐE\+kZk"Iǐ1`1d} YzZC>p$\c"k} Xk} Yp!PV1`1dJµ>,B}ZIǀEǐE\+ k%Zk"Eǐ1`1d} Yzhe¿IsDo|.cWj`xhdqxD3&<G c .rE_Zہ}zG:/Dbϳ6z2 H,l뱲Ϯo޶]Z~t}tekɬıu[n}"MR">ɄĒp.OBgոԣ)B͠Mv0L:"ɋTL틾n>{{"Qa}vQD}~pww®[k*^uf\qۗ`fNgwL ˦b-Spj7亁ŰOwWnga$.m 핋r[?,);hvC2"˒]iWGmv}qh$&pZV:p_\0.`:Q|1?+dl\\4"OUs_-@O2ϽQOK6ڰW菾i!屫Sof?>j*1#Sϡ611x9Ąm2n*/s&S.JD'@sQlc.3{MgvjwT)ӗ~Ϡz-]:G,Vrɳ4^\ ȓk;#6SZosͻ{%Gٶ$jogRj!/C@dpyPȳ.c*R 3E!1dO]=ߢ\n2}UljpR[ 1o~vr>6CIrĽ]l^ٮ5 z 7rǃ/}|{.~0 S~@Fڣuh0=D0kWřEh:kMHV09 cE腞ҿ\y3*t3cC!d{ ׫onܛRB> SȌ'9g'&{*U `%#v8{2C`=<M?T"O> sX)|F, HKSt_ZT 'DV$&"T-ba UX4<7MZFr2?P^η2SrL8j߻~SM[B~bknSgn-냟yP'|.p!gçy1r]SvQu(ݶq ޯУHDQnRشhݠvBD-t&SnS 9˙3mLH2r.vG :G>Ҿ('x*aڛv >=&ELFTTDWG4b!EZ(0B90L;3LO PabЕ,4#edߘCb bB=0 }J/0|Y_7uUTWI,grDyDEy*r(:[\R]{շ2tx|2Wn\m6DЛ+3٦(bSbT. a[U6#OlsHDm2Y,ґRw`5LEQ>15I{k~cO`Ɉ/Wz}1*8n$5~΅ ̥T ,u`alڔUyȊpj*0*)muv\pf_ddUS+{ x˙,lr{U;Ȯu @Zip[PvAǺfҺ/{DǕ$mqRܗZjUzr9SS0nٗ|kB>TtBw~3^psG}=Cu}Mf><:׀/gB ֜HYjK`}sHh>ֹ7jaDZz_ ~3hӁ֢|uJ:t9@E#0,Ch@L:$QLD BrHVH^I$G{-HYq+տ=2ǯn5R3_j3htpF|Uţ~._&엻~:0]8gV"6Y5/'? LD춲Ǥ@ rI|F_/)gU}usL`eˌŲRC8J0DT,_ )K<ќk  ΄,/;8/b<>Cw1Fjx*->b$ DM3?7(X^p #rFĒ@ 9tY{ĭ$,V,"FC:7{S*[1ː"?{pÂ6iQZ<*%bpL#5r5蚙A6EӃF®T!W+j"OJsEh .pѭjoYI}8P6sOF|L+cC%4;i}kOQPT2n q.5%Oybt Ȩ! /&mف$Z}J'endstream endobj 38166 0 obj <>/P 930 0 R/Type/Annot/A 38167 0 R/Subtype/Link/Rect[93.6001968 663.229004 244.535995 682.908997]/Border[0 0 0]/H/N>> endobj 38167 0 obj <> endobj 38168 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38169 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38170 0 obj <> endobj 38171 0 obj [600 600 600 600 600 600 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 600] endobj 38172 0 obj <> endobj 38173 0 obj <> endobj 38174 0 obj <> endobj 38175 0 obj <> endobj 38176 0 obj <> endobj 38177 0 obj <> endobj 38178 0 obj <> endobj 38179 0 obj <> endobj 38180 0 obj <> endobj 38181 0 obj <> endobj 38182 0 obj <> endobj 38183 0 obj <> endobj 38184 0 obj <> endobj 38185 0 obj <> endobj 38186 0 obj <> stream q /X1 Do Q q endstream endobj 38187 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38188 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38189 0 obj <> stream HWkNak T\r_|qqM` Cx+Hpåo~_վn|c}=[D (wQ$Ph,բf./>,;eiiog?Mj6\M+heۖunn<69k?Xr?N5"Jb=8~k8#YD?WDmTT46t?&6zr )G'(,ŀ5g Y^`QZs so{[e1Np{/̽{ =s S>ܧ}&ϘLp1>cs}/s_YgPZՑZK1dqZ!{Kh-Ő%g5Bk),=kZK1` Fh-Ő%g5Bk),CFh-ŀ%bܳCXYCwO1` {!R Y{Z+bܳZZ!KpZkR Y{Z+bZK1d YkZ!KpZkR XBk),=kZK1d YkZՑZK1dqZ!{Kh-Ő%guBk),=kZK1` Nh-Ő%guBk),C Nh-ŀ%bܳ:C XyCwO1` {!/(Jp]GbVet,ZѬw_]͝?ZΟ$Nbsuf\@fHJ^\]~CpbR@z\]-gMU]r^ ӧ˟L{,x{vvߗ;,B-qBso]{_sU>TYUUv^ϔ+Uv߫l s6חU~z`?gi,Mm\[7A6N1di9A1-'h9-ϴV*hL+R ZiVδrA+gZU0B*IŐŵ(,-hi-ʹeX{!Kb7B),A-{#bX{!Kb7B),A-{+bZ{!KbB),A -{+bX{!KbB),A -{+bX{!KbwB),E1` -{'bX{!KbwB),A -{'bX{!KbwB),A -{/bZ{!kqQ.<Пl.{.8/')j^x~R+e,/ 3iC[k-셞N&3dxw+Y|=SVs7a&ഉ OzxQH~b}c5k ocɌҜ^.p1Y?ΒYwվ \糲;l݀uܽ[ tQk8a$N2Q{n\_wae=<TЍ` FjƜW*7هW< =-,~e/ᩆAQ$68Rhq23SLTPҮ qϊ9GO7liˮA#ojs݃Uur^uǬfS5ìs.Ý(lz9sR9H2? [DW}ł=~ַC9Da?a049 ;r ]jyҡ#mUW}V^"?:4rimڔ9FUW0|9'~7GnPP4l`۵ q'ӀPaf=!Q|ir> l̺.`% …upCx {~`liڜ/R;cY=y0yy=0Y`i^,X!8FOIvy1gS@vqz ߬gbh f9$pS Ddzu=/1o ڵR=..6cPIu{FwV!X7jδwwꉑ5,MxDR\q'vў%II㻛 dendstream endobj 38190 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38191 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38192 0 obj <> endobj 38193 0 obj <> endobj 38194 0 obj <> stream q /X1 Do Q q endstream endobj 38195 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38196 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38197 0 obj <> stream HWێ8}WQ:l"J6Av&}ږ%$w#[%AX:9du? _0_zMO . L j)U 0X|,)Eה)_oUxZ~ա ׻A8t94!pB%q5I,Lfn%hW4euS1VeӰHd[=i`=Z)q; ~0p  K/}prq#c(,?ŀ%"EK鋧^y^y5^{5^{5^{ x xF}O>a'z˨z˨QzSF}O>cgQyydLKCR Yzq-Ő嫧|Z!QV1kZq-ŐŨ\R Yzϵq-ŀŸbb{Uk),FZŸbb\K1d1=*ƵCsb\KCR Yzq-Ő嫧|Z!QV3k5Zq-ŐŨ\R Yzϵq-ŀŸbb{Ռk),FZ͸bb\K1d1=jƵCsf\KC`R Yzq-Ő嫧|Z!Q0k Zq-ŐŨ\kR Yzϵq-ŀŸbb{5k),FZøbb\K1d1=ƵCsa\KC0|Z!WO1dpΙ0?!xkp/ u| n zdjD 46ެ߂P9Buۏ ~2XFI,b՛mayvt}j:- Hb8`hs8pSJDok&LkLۈOd4|\ mch.5}Ӽ6 qbXu ,the"2f|Sx8#&־$mI~GMSiqP|?f17|}w|1.VIys+kq9Ok>FJ|s8!SϬj "3XfA>~iAг\j8wLd} ,(btcRŽ#>=EՕ5֙ oq Pt Cnj62pz4 )"e:vq-O7sK hZY[ nSElf ryhHLX7 *M_Pȴ!A##AlǺ.t*;hmY=k/y{5vˉS祱-`3/FR tq67PV-M)IJb _n%rG4y:pzryhh`m-;i*?Ecom\9 ^?H0$=_-9l*5k?H+Ln7d܏&Zt4\WV?! ;s$|?<ջᷛCkh0[Xn H(r+e7pY _ 2n/Qa_5y3-1~=ڂ:Uy8RoϏ?>x63C̷_q[Q!짦Jm~3`)>2kޗIT8Z]ĉ /{5lp9Cg9۟ۨ\\ʮ/#Xm[qz%\c #lj9#?zy6?Mv-Mm9> A :>U;Uy\≥ߞIqo󰫎\C͸aYSa?}8ٌL(a)-He91;뉌9W*ة6DM] 1.҇¤Wvߏ05le ~BlQqčxXfp7UY*~asI#>'0 ]"j&جS>;` E9Oq#jzܶ=GpU"%X)(=,P06b[KMJ,mOJg8b^̋ !*&6弗Y%dx"1R(o]>NSJ X,!I b4aܩ8pIKxkċ]_UWJkm.UXyVra3i {A6-XC 'ø[4DQ1QT0[ 1F? {m_i+խ;+79/dPwk9x'u@FApC H,o!ԏ&AܓtߒE#|INLS~ZR$.$w*Y4p(Ƚkc+|!Ng~1u^J \#'s N͡ӹЦnQݼx=t|Kox')>aX- jh[\"CD 2Rq9,:AO7GP@rH3?+vA.ִ9`I~W,4D_k%j{=WfJ߹n]L=:9a'ߩ"\;*SŪt(( Ix0G ]Q^嗀_FR1W)2ϧ94[TLVե]N#dn^(q$ 9"J8@mCg:tz0~%aH7Rd#8 }ڛx0Ҙ&BOj mXW6M{s+;lQIT]%t11{H@gr1UtTRWuxT%^# fe=!-av߄+E{lR2~)1yU%an]PHm܉/ap4m&R;*šufKQlY#Sʚüt[t;Pʪjyh$ltRᲺޱꑬP*P1H .u:FNxJ:aY]~oa#]ݾBC5~'Oû)Nx3?Jy{.U;CU9gxpaG~{s6E&"qvB'~= =-l#޳)2]U*MADI6撇"̓,bHӉ_k۳yi\ExW{vE jT!d ڂ:5Kw-Jl+|d0`x|imB%5*+HROV y߰><ýAxe~d3.ŜEVUwR)) *50o4 gh֭L&ŧrKSeIiA1 77w~:|k] Ң~s`FF/cq̠\c\Ik kW8ӯ/|ųV].g|2mscF*lBHtՍٷÀgV?,|0͹rUq`Eġe0fCD!HA~9&v2' /jTTԔ!HB$>&=m X#7weqi!?h|Gy;ұ;1s$"\E%ьQjnu{ȠˑǞ:̩ŝS*Yw9Qea9B*O9{x-ǭ]`Re*iqXfj ݳFMj{-ӛ{ Թendstream endobj 38198 0 obj <>/P 609 0 R/Type/Annot/A 38201 0 R/Subtype/Link/Rect[93.6001968 663.229004 450.695007 682.908997]/Border[0 0 0]/H/N>> endobj 38199 0 obj <>/P 609 0 R/Type/Annot/A 38200 0 R/Subtype/Link/Rect[93.6003036 526.429016 182.807999 546.109009]/Border[0 0 0]/H/N>> endobj 38200 0 obj <> endobj 38201 0 obj <> endobj 38202 0 obj <> endobj 38203 0 obj <> endobj 38204 0 obj <> endobj 38205 0 obj <> endobj 38206 0 obj <> endobj 38207 0 obj <> endobj 38208 0 obj <> endobj 38209 0 obj <> endobj 38210 0 obj <> endobj 38211 0 obj <> endobj 38212 0 obj <> endobj 38213 0 obj <> endobj 38214 0 obj <> endobj 38215 0 obj <> stream q /X1 Do Q q endstream endobj 38216 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38217 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38218 0 obj <> stream HWn8}@`_#7I  fqY [5:O($"p>:$<g__,fo޼]-*B1(,Mdk,|,5UӖǢo=kk.q L3 8cc9.}qctm?UtvUQ.vPso e 64M$2n9 Ee_  U\3q_5?$d`xPqjAIeVGa?2 /1;څ  ]9Xz$C?s`ι/ŀ%S/S/ S/ S/ SSS S S SO}BO<)>ԧSSO}F<>BBYNŎ \bջ׺|.,_p!PVu1d= µ.,µ.,BZAŐE\+׺׺kZCs \b"\b"{k] YzϵpIŐw1`u1d] YzZCs$\b"{k] Xk] Yzϵp!PVu1`u1d=Jµ.,BZIŀEŐE\+ ׺k%Z;p!Wb"\bջ|.,µ.,BZEŐE\׺׺kZCs"\b"\b"{Uk] Yzϵpp!PVu1d=*µ.v 4ZCŀEŐw1dMdQ,W;U2vwG\(aIb|]qUEqͲbԇmyLo/eGBewOPEWӯnY8by0Qs7Phiy̐LS{]7!)t?0󾸜bjnq)l4UؗǢ;tm]?.t8K+v{d/[Htʗ a^D358nſj+UIZcMjwWp| "*o>mg88w|;NM;ZRܷy=Ty[ϳT{(NeO9Hd&Y5'(bsig~46h 15Y OuL\&.a|芩rP&RJE ~- /zogcS=L.|:yLB1<(^%=X[M>=oxVQe7rX:Zv7Ê;Ve59Mv֗g1Q,RBH$bo§BXƘΧdj`+d݅!vt7kCe{?UH_voNn1yǎ#8mG5vdyKٱ>ԑP$1Yx㽟Eya㉁qTMs jv}n!3^N" LYD`"ŶO.<|E.w ;Hy1t+l^.:I…!O}UtH+JY F$J)\B! Jc3kj/Gr'LhuQ&"ņm.[_ mDlWYy{96 C,Gutst35|9 ?Λ(5B1H hȱcwM˶EИU/:tbx +./Gq v_< =h\laͣYk$\c owR*{mga}f5ऩt54L8X؏)#n.nB Z%zz(|`G.kx @57;Zt6lJ_%%'d)ᾣ>nB2QPNս?)Sy?<2LI5Q|QaedIqTgl=&?S{b`j:1s^i!ML!v6o{X+ʍQ8;1wU`xQwl|4r@B%pJ]v( D"b{S,HD]K>]ѶG󗘔.$NIBX9SP\/ }{V $)0在|}H'n%ؚhf++-ɖGjE0v}ป&?셣_X jq6Mz Ei/*NpaPR bAV'1Z7{ Dˉ%&D B<ҟ^{Ad׬!UfT+w1gnN(D9 C_v KmVAZL)!@֟ 1Ţmg\TpI?LbQ^U/>NQ'lj-/N󨈚)9wQk6oGIM{'va؇Ykր+?nV݊ 'n]s>m/dMQU*/AntIȔn|`W4e--qjځVW^yWcQendstream endobj 38219 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38220 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38221 0 obj <> endobj 38222 0 obj <> endobj 38223 0 obj <> endobj 38224 0 obj <> endobj 38225 0 obj <> endobj 38226 0 obj <> endobj 38227 0 obj <> endobj 38228 0 obj <> endobj 38229 0 obj <> endobj 38230 0 obj <> endobj 38231 0 obj <> endobj 38232 0 obj <> endobj 38233 0 obj <> endobj 38234 0 obj <> endobj 38235 0 obj <> stream q /X1 Do Q q endstream endobj 38236 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38237 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38238 0 obj <> stream HWmܶ_ k:ئKj@ 6|F nJI{Y;=C>~(۞|}C(꫗GE,M"Y$$D"9iu3#J"F*e_=дQm%mݽ.z6AFaT8c!DP>wBPaaa/a/a/)> ا4`/2`/2`/2`!쳀}9><`#}/¾+ +}Y#T Q33ZgP@Q3(}Z Q3(}Z>P-GT>P-GT a#}BT a#}Tc$> >@!}}}BT aV }T+>@!}T+>Bj}>Bj}A! DPj}A! DϠjZwRDϠBPj}A}A}>BM>BM>@!}T"}T"}BT a6ET a6ET>Pm>Pm#T Q33JR)n~I #LjQ<%H)9Foz] ytFܯq}Ov֩yyN2<]ԖG:g7uy8|pm6 dTqyy_,/) 9Omԇ+h&I.# ,T&YȊ]oϽ&e7paG+&ْ>x:葻\BE dWM]^6]O磮 4O2q 0 Xl&D]6)R@.P&=2siܯ%HH ]-\V5 XsJog:2ӟǻFy(7J@_Mu4hjIt6NE&^Ȋ܏-viFy*:DfFRNJNtx*dс3M54fCFae^QS臘cbz}FʓBj ֏@;_SچY\U?7g=tpv聍u"-XGʔ-x%Y~63,yneħf2> |u]!j}:.O4K[L$h pMܹmr:]u(46C>sw%>xz4?]"[$(>lo1hKvP۶Z?C~@];r83+ J^)\W߈ˀ\-9JK}Z&I-f1*A7T.=7wH_z$ufp\vWOX!Iiyey۸?ɦw;W^@!_ͥ#P%역A7nï=[B s|TV9MRB9vՖ*QöxuXl5' `㼟$"/N#L0 NnЍÍ? +`-H;z  6-@ 4ZB-c8ʴ-{sҐ<8o/J+Vb%&pkǕgX#0xzb^M9oM>!#nä¿sc D 4_TsQi+?eG6=|,U |KR^YgZ la1 'IZqsjzhŚуy&c?Ds!th[=x^E-OZo P155 Oz}2aajYxWzt?]55}w3D'ӨľIU߽ў a x\ۖ qlBYvfA2ۨ&_L"0ZH =-AɵYr+`/p l9\uSw^e;%|3oHoZA|6XhܐR$McsdRlPC\{J/E]ޙ 3O$o?n$ӒIYd"R!+mLJ1>c$1~6+V=Tubj904] oe5K"zHG03uQ_@FK[r mjS#C͉(0EWLC+/#c抝2N}84oXs*}D4 uCkjfal=ҠL]Z0s$-5#a1ew\)Z,Vz`7U]sPᄑ-l05blxJULkE1W#mXa#.tv`k#kSdj\c̤#E&,ot\-ӗx)#0Ar90`ifɊ*4xi$׍!0W5%?jߪQ.F [/M?aFzOu/ ]鏇O||{_2WWendstream endobj 38239 0 obj <>/P 779 0 R/Type/Annot/A 38240 0 R/Subtype/Link/Rect[93.6003036 257.628998 230.136002 277.308014]/Border[0 0 0]/H/N>> endobj 38240 0 obj <> endobj 38241 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38242 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38243 0 obj <> endobj 38244 0 obj <> endobj 38245 0 obj <> endobj 38246 0 obj <> endobj 38247 0 obj <> endobj 38248 0 obj <> stream q /X1 Do Q q endstream endobj 38249 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38250 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38251 0 obj <> stream HkoFW Tȣ\xm8n , ld*EL%ҥh}Hcs0"˯*/O߀W^9b8U4Wh" (j׷qjz]]]BWGӷguM@ eI4㘐 u4J_=bUa`0TO}*ا>Sf }su6JKud,PܞfH Y=iZJg5Bki(RBki(Y{Z#fH Y{Z#fYkZ!%fYkZJg5BkiZ )4 Y=͐ZK@ Vh-%سZ4CJh-%سZ4 `Zk )4 `Zk,P=kZK3,P=kZK@ Vh-֑ZK@q{!%f4 RBki( Y{Z'fH Y{Z'fYkZ!%fYkZJguBkiZJguBki( :Bki(nO3,Pܞf܁ƟouEC e)Ib}m졯unGzvb=>WwuLJq.V.&:<ü ^BYŏO>~t Uz?Ʋij/q-F+=M[WcΕ۪T>T2;$?gZ9[gF=j,ff%7=,h6f } ~a*Or\Uxē Cͻe9|Yl%|@:5*w?]ݗW8h2e+fa2l|~El0k{ӳ N96U Y\NpywITCJj5u:xO^VuSޔhЖië;tMw6f1P7׏rGuJ5Mgk۰ae8S7-eXFមe%~CE/J~;b6ɔGŭvqR?il Pm?'W(X:T>7߭,^uy}B8uW/{?gV&`3_VB -M⨪[8]v5~R Οv x+Z^*lfMUC5h Miw W76N3U<|]/3x/p}6zzXOvE3_Wʷѷl6YabF=X0_PJ *r^cwHc/έřQv5|lV}T[U -NZaBN>G?A_endstream endobj 38252 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38253 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38254 0 obj <> endobj 38255 0 obj <> endobj 38256 0 obj <> endobj 38257 0 obj <> endobj 38258 0 obj <> endobj 38259 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38260 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38261 0 obj <> stream q /X1 Do Q q endstream endobj 38262 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38263 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38264 0 obj <> stream HWko8_—(iQHR7uy V3)QH+3HE\GWt'۷'NzT4&0d~$y2yG]g.3;-W&/&_;:3a띤QJO"O#iݎrkdĂs T6,/ VM3Dh#sY<0O|g^eBYxIVKBP)Rea",[;xC3G=C3G=GsG=GsG=GsG@ G@ G}!>tԇQ/Q/Q!#G}>rLjQ#cG}O ,ELkcژbm XkmL\6XzZS,DZ Q︖!1`!1B;ekmLkZZS,DZ Q︖!1`!1B;ekmLkZ+<UocB\kc媷1rژb!rĵ6Xzǵq q)q-G\kcw\ژb!rĵ6Xzǵq q)q-G\kcw\X ĵ6XzZS,W)ƀ QV 1B;km XkmLkZS,DZƀ QV 1B;km XkmLkZS,DZ /D\kc媷1`!1rۘbaQm)#R1b]D Ii. $Rz|_c_8R2 Fr[[bФKI ZepbffYYLwXsW5$H@+b\,j!n᭧) " *xU߼fFttu~^I"F(̌s.+i nIn.8 X&`O2{#i ME q-!kv ) tΏEɤ BѰoGL1-BH1I1Ȅk989#.:M鋅G>RZh V0w|p1w}aT l_U aúUaMU6 OiVkٻ}#p;Hēj-ȥ汑mLAz88٥TSTx ;ukv闫rۣm,2S!aeh2 4>Mg9W'L,03A F<pJ'2SˤI=kt6OL^E8&|f{"ͽr9c:rZ\>J~s0\K^U⍵uWB WAL M/QȬS);AEQ^EҦC=R/1l[tpm3Y%fgӋW_+4jH ڥ~JU/W$\& b"A1IL3JW7頒JB:A%xmP OIzx gח7W؝QNj_ aUKvOEkn3`'̵pu|V]*/7i-N< uVݫ$$VKJ?v3Dw{{5ܝܼ4f][=)݁1ms 1uzrUuKLd i䦺k'-շOPO 4Ee^+4eԏ~ l0SS.5cCv#ӡ  [j,qTyQ)e4u_q3EDOl]\ ˭קaiP ѨJ$H@+Z\PyHg$b]d=XlAdY5"eԲ> ]KDgH%X{HHI*z&$[Gj(ι?;4m:L&Ҟd{&E *KOۧ>@'G|)G{M\Zߑ>֙#tg+~*X&wr>1s8LB{lhJӦ(唗5x0 5nj` Lۜ,XZu$f1f]w(ڱ<>tJsFe,@L1Mxmnz6[Kqn6eg*T P+߇ƿ!@PZh$ XF#;a'.C})IR! 4Ʌ rg4Ye#C#+""7G|jU4?Z6ᘈ7bzbv\Ūc[c{vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km Tendstream endobj 38270 0 obj <> endobj 38271 0 obj <> endobj 38272 0 obj <> endobj 38273 0 obj <> endobj 38274 0 obj <> endobj 38275 0 obj <> endobj 38276 0 obj <> endobj 38277 0 obj <> endobj 38278 0 obj <> endobj 38279 0 obj <> endobj 38280 0 obj <> endobj 38281 0 obj <> endobj 38282 0 obj <> endobj 38283 0 obj <> endobj 38284 0 obj <> endobj 38285 0 obj <> stream q /X1 Do Q q endstream endobj 38286 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38287 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38288 0 obj <> stream HW۸B+D 8ۤƾ怤(h^+kK>Iޭ! XypWUO?=||\ycY (%H)$KT.i"Z<|/:Tuqm]Q],"SexXG݂& QĢqw˙:Nl8aqqEjyW*6 -v%g#2O89?|M FGp aH;cba fYEy7aЏ)%lA3 $j{ۢ*oEH:+8,K0"v_4jom Iރ\Ưڭۉánhoѭ"# …0Є 6ANhhޏv.O F%F9 "FQ y΋ozkSrli=63'Œ­?_3Ai*B͜b)P"ywsmEֽjѺ?O}ek݆ʋr5tmKWTA|jG{Uv棭t YO?3ʪCW ,h(v-L,Nq!'%IHL bIf$MJ68Ɔ겁}[fOxtˤjN2H!I7͡l|GMB5sAG6.se& REam 5>Ii <_S$1'l {9;j[Ugy7I#*Sęل2E˭# wU}ͥq:>4d7V[S[MSjJ@>ͽ}RsRw6`}j զ:<7K7c8ﰄLpY%!Do.tҹQ}V*a)tu,Ig@ WlvZ5\z׽'7sT{Qǎ2+0be/M5]trmøbǺ,D ,UmWOe*׽j&zVO'qUL L 0߉s<5sQ2;跙iiCE1.3|.|_#u((Zu8䲝XUn9Uȱbm1ojHNk16n (@J'X[KhDI0\hߣܹgPdci,U7TuuWix;f,含iÎ^|:rqǕ-ccnkw'Uwߪ)16GN!Yo6 {Un{u>vZzjp r6)v;wc:0t|uQϮ3M,]uꅡowW%8#]gZOXi=rk7}LM>-1Ƃ70e f%<U~ JY6lL-A"<ՋTT9T4T^RoC})f\pWYߠl%.ⷫǥMV)k;Abx؉i }fNܠT$0rO8&Lex:ݘNoK˃l._Ćep,?  |qaڷ ҖSq4`qk=nF{*~o"3K)  OD'l/F< M l'b6sޑԽvxxȬ,0;SQcz_ endstream endobj 38289 0 obj <>/P 605 0 R/Type/Annot/A 38294 0 R/Subtype/Link/Rect[130.078995 539.020996 381.118011 673.916016]/Border[0 0 0]/H/N>> endobj 38290 0 obj <>/P 605 0 R/Type/Annot/A 38293 0 R/Subtype/Link/Rect[93.5998993 434.627991 199.356003 454.308014]/Border[0 0 0]/H/N>> endobj 38291 0 obj <>/P 605 0 R/Type/Annot/A 38292 0 R/Subtype/Link/Rect[93.6000977 250.628006 291.118988 270.308014]/Border[0 0 0]/H/N>> endobj 38292 0 obj <> endobj 38293 0 obj <> endobj 38294 0 obj <> endobj 38295 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38296 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38297 0 obj <> endobj 38298 0 obj <> endobj 38299 0 obj <> endobj 38300 0 obj <> endobj 38301 0 obj <> stream q /X1 Do Q q endstream endobj 38302 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38303 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38304 0 obj <> stream H|WkoF_1uTc΃I)ѭLL$ҥ(;"}H[zĔΜ93s%>kZ/U?$;2^*ɝNR"SUQ"JQ,gmy[˺)WE۔sՔgV]xb.2jLh,dRǓӌMxE{W7_&'OgKѮǟ&o,Og7mCLڱO'Q S:_~NXOu)V* .68* ΢PN@8&vD1d(,c8`Jn 7O1`Ye2Np{'w̽; =sO s>'}*OTp2>c3}g9s s>sF(-VZK1dqZ!{Kh-Ő%gBk),=kZK1` Vh-Ő%gBk),C Vh-ŀ%bܳZC *rBk),bZK1dqCwO1` Nh-Ő%guBk),C Nh-ŀ%bܳ:C R Y{Z'bܳ:[E^h-ŐS XBk),b),C ^h-ŀ%bܳzC R Y{Z/bܳzZ!KpZR Y{Z/b(ZK1dqZ!C^o|DǓUFM;.TiPUt>::[, 5Y}uRWU1o˺:ДEO7;2:J%Ɠ0ptVcN3;j ;p;dvȉf_Lxi(&U#[guԫլߵ׳6U9 pWDk]4E3_5 oFd0\oڛvb3Z4cUv_mI֝+ac; =ܴxHlf0n6<"cy ǟe;s7Ӱ7l^aR=8osmΌBr^y7_Ax'.-a_ҌLLGk|[w02W8$ ٺtkĴ ,ΐf#5x Zw93,$FAv:H?n?^ݩݰR- V-b iyA3-/hyZ JiVʴRA+eZ1LʘV.hL+rŐŵ(,#he-ôeX{!KbB),A -{+bX{!KbB),A -{'bZ{!KbwB),A -{'bX{!KbwB),A -{'bX{!KbB),E1` -{/bX{!KbB),A -{/bX{!KbB),A -D=Őŵ(,!C :ໟ;/΃e8,rsYͦ OOBgU^ <і񋦩jy|")ZyPibQVz#ؼ{,$}]O_ۢTYj^WU1o/mMG?UfpXbU 2#sYTpTX:qyQoRF/C/:,.c>0nzصmi={~=knrYow80:5yٸ.Jb~;mWp@?COӱz=7:K6e {q6yko 9;. <{d"dB|/ VnSo5þ]- V80VCq׷矤w,p,>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38306 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38307 0 obj <> endobj 38308 0 obj <> endobj 38309 0 obj <> endobj 38310 0 obj <> endobj 38311 0 obj <> stream q /X1 Do Q q endstream endobj 38312 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38313 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38314 0 obj <> stream HWێ8}W}4el@:@2(JD"HLb1$?f[y]mܙ..ylWhHb0#9!&IYF!`mY^hgY Bҁٷ>Գ3E3uhчܚgu"6vwYI*3ጼH_[rP!. >D9y=g2 e8YfYa9^^%^%^%^^^5^5^5^D}OI>EԧQSD}Y>CgQsD}Yv@\c1`!1 e} Xk}̲kZ,D}Zǀ, QV 1Bk} Xk}̲kZ,D}Zǀ, QV 1Bk}lIĵ>fYzZPYVǀ, QV"1Bk} Xk}̲k%Z,D}Zǀ, QV"1Bk} Xk}̲k%Z,D}ZvB\c1`!1 e} Xk}̲kZ,D}Zǀ, QV!1BUk} Xk}̲kZ,D}Zǀ, QV!1BUk}liĵ>fYzZPYV>y+ϨE|:ᇋ&$IrEǍ_SgTKOr?/t؂唍{ 1ؚ)ۆ,ݮدls7)Uuϐ4͘?roHQx?wfݗ}^'w! !r2r&cSϷղV[Cpۛ~d-/οm7Tnx1dv/E|(;_7h9ɶ'|+l4n|q>+y?f"q=tF}>EӘU?4Ic)(@׃DqEK2  1]i1s*R1lsaCUe屍v{g?ox}׮NAn6f4fI ^Lg_Ǣ5w5,q.<4 NÉC$\4es%@2bp!$H996֦_/`}z{+K*Cf=3{y R?>=/xgTkwyf ڍ6 Y_ZtrxwtdSp&mt3y悜GoSgL 6̹WmNw+e 6?eioQX2Oݎ1+]Vu.gr~Ĉմèj^+մa@0ܘϤl,y-g#Vת܈j_q*sA7>Jތwn.?+KsU&5M<^Ӑq-MSwhۧE+QNH+J2, b(ylJpd:s/)՝֦O8y>xl'7ƛn6 fwԾjֿ֧ ɴKUiłd[W,͞]уH>y8GdYY+r1[]^vՓȌS+\p9M3>9l.}r-|k&h(^׽5v0 )5 ڿ%Ε>R\nޙ)MulvrYj۶^CO[:uV"CVM@eKg)4!$Te;5߆f~ H10J'Z{;G6:u?O_L(c4_u1c1Aǰ6hYԭ@iFw*6n, GC!]58+ldfwAvrXO 9h&p4cGӮiσ5}rZE g41Z l͡`pcejz܄=cV" OU[J=Rս5&V4}H{b030{IʢKw1(NQ!23^ ':;9@۬)2Hq =I@9?ΰT԰ٽdxhVLAEz뫝lLq/O:Ekc[v&g p N\\‹)1HCLpOSE\k^VF#230DIXSat[l{oܮX9 \a/Ξs7F6 P Φ`FG=u^<m#<&ۻVa%sJ`@<QH>s1evK,y9+JJXB=n&9!jx*+q_Kb6W@w\A36?MR#t38E{y>}onXYE4꒣ə nFbl\>΁?qÇi!J^Q1=]S,!P|U3Yb20C)Fl8q23֞6YbYN1WCC gt!.Pkңh̚DˬڝD"Lcw}=ƥI/ahO}i|p*r]ܿ'E\~/my7ٛ9Ny#Ps)#I11؃{1?-=} 0 endstream endobj 38315 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38316 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38317 0 obj <> endobj 38318 0 obj <> endobj 38319 0 obj <> endobj 38320 0 obj <> endobj 38321 0 obj <> endobj 38322 0 obj <> endobj 38323 0 obj <> stream q /X1 Do Q q endstream endobj 38324 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38325 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38326 0 obj <> stream H[o+HzyȥE^EPeQK ߻(Y)Foki?o=4̆&C`bʙEt*+Mfdgot=[/| |fyv[gn66;k3ִYMJL"ƴ<͆ze&O\,s8y׾u?]+h+6<_~Dz*ʔ{|_YYحi:[™OƖg"}_w2YU"ʆ_YOE6KQz$ᱥW&Ko'5rY]BcW.Z^jr SHTz{ރ^ WHT>Q }T#HU T TUUUoToT'>jf-Z-3VjF.0RcN/5vR#Z WSJ] ZVjS+5vjjZ WSJ\`j.^MS+5vjjZ Lҫu`j.^MS+eJ]:Vj.^jS+5vjj=Z WSJ\`j.^MS+5vjj=Z Lҫ`j.^MS+5r@z5Lҫ`jZKJ]:إK\`j.^MmS+5vjjZ Lҫ `j.^MmS+5r@z5Lҫ `jF.0RcH6@z5LԖYS+5vR#ZKtT)鿣ek,ckW4›vks_ݺjؼm[{˟^;)MZ E0ULEu}ȿb׽f3\.&ߜHeyr,,߲,b_v{6p.OGR]nÒ_Vݮ-֛n&)y w"/h&O|Y٣ɻL5|qeƅr| f1ؙu"~tƛ|cg~htczۚN,U[-bәMX72Ӿ[ ?NzwMnji^~3cd, U~l|nW گw)GDkyƣgn>ш*勖nW`>jyÉ#/5v%RXA`Ŋ+VT *ŪRjŪVjQXI`%rfI]%5rYe*,XTX^j,{z/5vKށK]z@.RwRc`{{KF.{ T=X^j,{z/5vKރK]zA.RRc`{{ TإYR#X^j,z/5v}K>K]z@.RRc`{ TX^j, ^jҬT𖾱?m^zCOlYb]&:K7w}Gx- eXunb\Q-:q/*Wn5n0.n^=ǖe0k2#PN?+M?]nҎƖhOܬ 3_O|n Oplyʸ 6uD,8omƼf1љoU?zw >5~sۯo̴{0 l8Mն>ћm-L2ԍwyGD_N _>xW^lKݬo7v;OWkѽy<*~7 tqW;uweem642t||Ýzlfժ1Otr. # "gǫ|^ܽ^߽۬W9 -}Z,OD/,OmY:?:iJ/n{; >:l?O7تH}_x_OU^[NYմ3slBQӨ娥0TxWZ3}Ob7TaJ%"uKZE:]p~gbD@Wumf|'ɲP\8_l*_t vuzWǽȥƮ\+(VXbEUVX`UUVX5`ՊVX `5+)V$Y,KF. XV,`YrKށK]z@.RwRc`;{ TX^j,{z/5viz/5vKރK]zA.RRc`{{ T=X^j,{z/5v}4KjK>K]z@.RRc`{ TX^j,z/5v}jq|$40VN_d`&æ??vpvƜs$cw5ر;ʱ;pe_gWd`8MvYjōyVuΎ/Z`1cP 2 4 O%RLz(͟o4W|BvM!M0ij$ؿzdp[dY(ԚeQD.I.l5B[ָ.T GѠRTys29 |OBT]QEgR0C p< 4lkuSJ)|5ERet+‚8< R8i34r EǧA qCwINMP})è# . /9W%%|`,oa +d7j`"T׎1|ŮSz`A{zO<;{')p$5N '˽BW2 endstream endobj 38327 0 obj <>/P 1403 0 R/Type/Annot/A 38328 0 R/Subtype/Link/Rect[93.6007004 467.32901 206.975998 487.007996]/Border[0 0 0]/H/N>> endobj 38328 0 obj <> endobj 38329 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38330 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38331 0 obj <> endobj 38332 0 obj <> stream q /X1 Do Q q endstream endobj 38333 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38334 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38335 0 obj <> stream Hko۸W|sxݠ@fvۦ'5 $EJ–nן+9!_iܒ󳷗^<{ew@EH5O&T<IbJF4AD>d$8I׋m-,Emm-Ig/?0 σ9焒CahaLD7LdLng6+rr }yq&Z/cZ^Ŝ.|3ʓR']¨m{~F- _ۏY@8dƉ:@K.-F܁옡P3D([;x;C3G=C3G=GsG=GsG=GsG@ G@ GDKGDKGDKG}1>v'Q G}O Q QQQx"c!cr11C혡\v (ĵvPzǵ q3q-C\kǀB\k w\1C!2ĵv (ĵvPzǵ q3q-C\kǀB\k w\1C!2ĵvlpĵvPz;Z;f(W3ގ֎ Q︖#cB;kPk혡k9Z;f(DZ֎֎ Q︖#cB;kPk혡k9Z;f(DZ֎m֎UoǀB\k 媷cr11C! ĵvPzǵq q3q@\k w\+11C! ĵvPzǵq q3q@\k w\+ڱM 1CPk혡\vPzj&x>sN(?*Bc',ߞ̿LXX rVUCZ(EG͖E^mˢ$g{i*T]bec }y ذ: c~wsYu炎O 784[xϔ79Z@;כR-w̚* 'x  4M˲(}dȷR5.:y +gB :.kp|DxL6+rR`NWP]ʒ~W\'PS}T;WUd9y N$m[,auV?na IuIMS6^6,x xcgmH(9ej1Տ|orw!1 # 9-mBq\o-2TPA-HpOS'N9;riI{|J*x2q%mIdeXyzJs٤%dwܑYB9|fIn +ww{nr[|j/jU+yKKn%X8;:|rw i:Ui[xWQ|]WbNҡO2ל31-=7 rm*qmRxEKD٥bw!JzNpq (Oty?M0m=>l3.=i:{mӃi6;0Rp@ c%O2wDbWc]т7ԂwҺ˫sOCl1{D.֋r鈈ٻnKUMVe[kQ%Ìf[M`w?ߞf?O*f@eXJEoZ"NYqЂ6X,x5^#$endstream endobj 38336 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38337 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38338 0 obj <> endobj 38339 0 obj <> endobj 38340 0 obj <> endobj 38341 0 obj <> endobj 38342 0 obj <> endobj 38343 0 obj <> endobj 38344 0 obj <> endobj 38345 0 obj <> endobj 38346 0 obj <> endobj 38347 0 obj <> endobj 38348 0 obj <> endobj 38349 0 obj <> endobj 38350 0 obj <> endobj 38351 0 obj <> endobj 38352 0 obj <> stream q /X1 Do Q q endstream endobj 38353 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38354 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38355 0 obj <> stream HWm6_'h7IDZl4bk%o(R4M h|8g8O__?yRϢW 7 B&`y&-XWEX.f]ߪg}wuut[etl ,2 `}4],?09q>OfUi|sfaVL\\϶}_uՀ~R=lH&Ok`b?l"#Dh8-s|Eo#1Ƅ0<,*\yB> s<$}{{{{{W{W{{{{Y>#g`s} y `_  >,'D}H> cbEϢB(BgQ@P-Y>P T}"T}ET+bE B(BgQ@P-Y>P T}"T}ET+bE Bط$Z쳨=P-YT,*d}"T}ET+ bEJB(BgQ@P-Y>P$T}"T}ET+ bEJB(BgQ@P-Y>P$T}H> cbEϢB(BgQ@P-Y>P"T}"T}ETbE*B(BgQ@P-Y>P"T}"T}ETbE*Bط4Z쳨=P-YT,*docb)}t]/qIƲ̰>zs(xY|sfajZ$H]:_ ˤnn:JUdy|ܳ["ʵ{ ޽êse=o~[ung=jHrK=W |y~Ov jΨ=D@Hiwm{ՖMq9d<3`7䴭wo:mv描/o~Ǜ+鸹bO|=fN~ҤIT;eSs9I}Lg\aF%ix~rـvPXevm `6iw+}U9{ ;<+gKvfe#vBU>?ѕhOORrPfJ&Zujϩ|8MOT'38MC䢘8Cp.iES$d) 9Բ<ͦKUҦrjzB`J"Vۦzv7vƚDP 3pIE1N{eH ֡LJU<֗)?vCn<"K j`Jl7DESjV+j6&)@p_횪XR#n㹸4 3Ԉ8O@*d4=v&;\,xc[v_yiLfX2pMRKo:f3A޻f`\˅{wDԾ0dvѳw*loh'DyW>"9dCΔ9jش5SpsX.6OG>|@e1_=~@/z[~H]/h tJ7T~r=`[W!sF- ٨jXPIrHᕒ{a[v xëmg.Y|z\(mCdBXwwz\$ǂQ!ʳ5arUeg\>|ר^we,*+u e(gUMՕx!^?zN'ﵧ(W_ua"SAEZLǻy5tޣl+5ח{qj>Su}ߕр!qAJNr&^wpBC (|ũbe"%m@O =ö=]}=R +T$&+Se^@"hCCPcAC!HK ‡QsD3hlC[(3-hCU$i>^`.@ 6ҙbkq? ˏCμV6z=Z6t9=x.pBt9az|Af8΁ZzgA3 Z|LYW-%(yJ:3H匨<$.Sp_ 9 Kre1IlqȐa.q$$79 .#\i\]l&՗-r)qw~+6T9;^5=0@`W%V-zX-q<c$(R|vړe'z+!$ ޝi[At= Leu xGpfO޲{b: !|gVwGŗ:# {_ttef"1cUY8|j1,$GȈk&J%C!hI-j i4*+=U lAZĀR; (m!($fF^ӶpGngR7v3*Ti |0' QH \S’0e&=%є&8C0 aG$:>/P 1103 0 R/Type/Annot/A 38357 0 R/Subtype/Link/Rect[93.6001968 663.229004 222.108002 682.908997]/Border[0 0 0]/H/N>> endobj 38357 0 obj <> endobj 38358 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38359 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38360 0 obj <> stream q /X1 Do Q q endstream endobj 38361 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38362 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38363 0 obj <> stream HWkH_QۣN(-BKVF(8fjͣ۾"霜:u\>'ɝzpgJǏ<{*\VXU.˭jWMJjT2wͧnkMݷBM2}֪.y2K3*f$M *DMUJ6IjK;}<ܘfl[ޛh9[ݢ:5y`s>mv~_xS Hv2Ez~3킴%:z"y"qUu+VKWd6:MN&! 9qv1b8YHÈn4ϱȲ-po{;Nw=p{{>s>s>s KKK++>A&#tϱ{KXdrXh{Z Z˱{Z Z1bcZ1bcEk-h-" cEk-h-Lj܋ZZmZ1bI,ZK{Eh-Lj܋:Z u,Z u#p/Z@k9Y#p/Z@k9F,^ցr,@k9F,^ցrXh&#tϱ{KXdrXh{ZZ˱{ZZ1bcZ1bcEk=h-" cEk=h-Lj܋zZmcĒ9Y#t1bI! !xMdLg3p$8eVΜmwijլez,)}9Q$~,q~!LjKhy兖Z^h@+Z9ʅV UBh@Z%*V*UJhVZkY-8F,ű2@-в@ - D-=LjD-=LjD-=LjD-=LjD-=LjD-=LjD-=LjD=Lj%8Y #w #w #w #w #w #w #w #w # #XdsX@KރsX@KރsX@KރsX@KރsX@KރsX@KރsX@KރsX@KރsX@K>" cĒZ! !?/'d:3*p+2:C8\hPeȱEʹv]*]wq-8bJ-0<ЙV z2 M̯5yЌW_j3dKiYir&m'Uߞ^O ݙvMwz5.tΔ}W HvoA|lzC?,יt5`_,΍fyix̆x [p6^u륺z٩M\]vOcuQOhp` -@ hB+Z*V! UhBZЪV%*U @+p!q`pZFheZVhY%roA96G,rϱ8b -{ Khsl08XB cqZ  #`p`p=%@96G,rϱ8b -{ Khsl08XB cqZ  #`p=ŵ<=%@96G,rϱ8b -{ Khsl08XB cqZ  #`p=%@96G,sl08XB cq830 DZA9]fUOv/ku1M'c ef8aW7cD]?K*_Z֫f[//'o]N&:Sf:N-]=qzud{8Kys?<|MR,Zϯoͺni뙺)/ Ԡt ( :e koཝy)=G1z5};]Bnm.3G $ו|i锉Fm$?z醱aF;u xO\W'!dUU^L7uAcي a(\}_x0\#+hihI6,>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38365 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38366 0 obj <> stream q /X1 Do Q q endstream endobj 38367 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38368 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38369 0 obj <> stream HWr|WLy*ґ/ʃrQ$$ˋ3$^Ǒ-Sn4SOL~~ճg_~͌&*TNV6Y.2*Yͺvmks.OﭺelRNUg1mbTe^z7nݨ ܒ)t;l\ܬy=9/p1~Wn\^Y͞Կ~ʜZ\>7C*6$ug1pN8&w1b8XHÈ{7FXbY ½p{'; ½p >}}} ܗ} ܗ} ܗ}W}W}p{YJ˱ufAk9F,cZ1bI#tϱ{Z Z1bcZ1bcEk-h- cEk-h-Lj܋ZZ%h-Lj܋ZZ [gcĒ9X#t1bIK,Z u#p/Z@k9X#p/Z@k9F,^ցr,@k9F,^ցrXhXbrXh{ZZ˱uAk9F,cZ1bI#tϱ{ZZ1bcZ1bcEk=h- cEk=h-Lj܋zZ%h-Lj܋zZ [gcĒ9X#t1bZFQ@5+@ - @+*V! UhBZЪV%*U Њ@+r-K-Kjq5eZFhYeZ"cwڐ%@9F,%roA9v7 YB cZ"cw֐%@9F,%roA9v7: Y\ˁsXRc4-{r1wȽ 2@Kށs%r@9F# w h;{D=hZ"c4V-{r1+Lj%8F h{{(D==hZ"cD==!h{{; w%rA9F@Kރs̥Lj%8F@K>Gc*O8_glRVUg@P ^QQ:WWF=]^5Ӄq}KNҴf?=|W\neQf*GgW!7la;-7U˞-7їr1jhByvK&O&7]vMF=1^eײ+?p^*7S6t~_}HC;yɋƱ'TbvsYn.ԣ 8_Y}~1Oj?-Wޝ3OjxӂJ/ۇ=?Đ'n;q8~矟Aj6?\ 9cuueƜA1D~GkӯcS'BߓorU~y\Y[B!:|դϠ9WhI5-(燻q6't75}2 gnn%z>9FXB-/sXRcr1bIc8czX^g|ʨWݧFfOks:z<=en =1m;]uWZL/ZikUQv;.NU/pAUgY3ꚅnn8:tkyrtҜ;dvx&M7rza8}m.妻9[|Ӡ+OGq{L8ֺ4m'vQ1%vysIش&}Gv߸}6pLuR/Wͷk_]ǂǮ;_m3[ӗ:n.T=YslsfZmzV8$ύtm.,O7e !s3F_KX٬8CQxSdi jFg7\v1@5%*ҷv J ќRZ]=gbA)ygXzE?[U)+^?ۧ0C9ŎDžةw)PW4:H3$ݲ:Q~`<γ4[䡴nmOar4{R>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38371 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38372 0 obj <> endobj 38373 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38374 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38375 0 obj <> endobj 38376 0 obj <> stream q /X1 Do Q q endstream endobj 38377 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38378 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38379 0 obj <> stream HWnG|iHbǀ(kq0H#Z^539haXJ=UM?y&5ϟp'qѺOMV{Sf̛73MRs836ћnlNfwx,O,Ar4pqfpT4Ij*S) &EI}\i]UK[̠68M+ﻱ=?@vv8yUϦp:f٨i`oa[֥i|H3tֵ?%zɸԜ\K$UȭH)-uTp'U&9TҠHcNbrNƬ wy^Wp>A}T#p ϔ ϔ ϔϕϕ///// Wu$Vb%F,Z1K{ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZMZ+1fi#hĘKYڽĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkh&I{ Vb%,^b{Z+1fVb{Z+1fVb{Z+1fVb{Z+1fVb${ Vb%,UUEҿ$9$Ggaj jҖ@/ts'Io?6(y.lRlZh4^gVYz5n N oo'lyB^+mQeu>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>Ĉr/1fi.UlEoǃ{C&t7-}~׆݊y W/NLҟm9ARh M{Ǧ=m+BkT{VХ%+ K\AnR&tp`޼9}')0qmYP:}aSz#Ma\j d]7=1<3CfGYp]W739M|0 XRˏUi_>,J[>re[,-M)6S/_}S uyCwe]!\v?Cnݾ!ezt`g&׊踻 zWԳLhl󸏞0! j[t'-o.`Ul:)mF hӇ <h~w}71~o.C^\NO~|1/O^54hӪ6\zo|m;1Qz9\RӖIs`({fVLlޙ+cL^p]_={=cNq;b씇`R:MŏK0:7?^OG(珦|XoB+buA_6[z[Jpz, w۝9fmgVBŧ׬첆BXuXx_,E+l;OQºNBJA{ s:wі=j]딙-誰wZd6*Hd\muYyLv.O ڲ/_h}8&I>z[uZ4aOI/OvN >endstream endobj 38380 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38381 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38382 0 obj <> endobj 38383 0 obj <> endobj 38384 0 obj <> stream q /X1 Do Q q endstream endobj 38385 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38386 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38387 0 obj <> stream HWM8Wp1{$9$ `09tbmem9+m,["I`$+c^_EӱW~}7&I1WfsSŲTsXS&:1b誧~o]5Ւ5UrG"[ϚIX'61kLlKgeWk6UVdlB ]'bL*u_= 3%aEʅs OFϋa\ȿ$+vdR_a$؊%N\YXI8M clq1)t m m2F6DYr2&*b*b :b :b :bo&bo&bo 6bo 6bo 6bӈ}JO#>g,b쳈}N#9>;;}YI6E6!*fE6!*fm"TETՆ6D#*B PjCjІ(}ZE6PmhC>R"TETՆ6@ m"GUjCjжK4І}hІ}hCT>PmhC>R&TET Ն6@ m"GՄjCj5(B QHPmhC>R&TE6!`V m"GՄjC.1jCb PjCb Q1(B QHPmhC>R!TE6!` m"G5jCՆ6D#B QHPmhІ(}ZC6!` m mه6@ mه6Dw&sK,du"OY:%k6uc釢Z|H+-l4/Rj$Osu] Pqd~P]WMϦZuWu~=Wu3]f7G6fk.rIĽh=C[zw }m y\>7 o$sHem}/]qqquu8fvh2-KVVl[_;n冡3WEWc2hǃ>|Gêd/]v|Oϒ9O5'ms_ }fЭf6P1,)) ،gYr(L1~&{~,L a\MNz0AGkk쫈 UDhcThǨx1-Ɓ4zû:sȝ/ѣ @8׷aj}}zͩ61񋋿}rP|Yl˥SVx{/9QBʜ~~ko-|)޸,۪~Z(pv%\(`=[-4TXܐ݄)}4}UН #Ag(Ƥ'$)CV4ŮvbÑs XOKA}WSz%~XO z/A5`s_F1#5Vwr8㎙;VpqmmrM.x$pҹrc _7j qf]a1Zew({M# /)y7岀,~0|P*\%Ӱt~IA)h.1me'^8HjR|L3Ԑ^]c5 .]x>[dB~37Ǫ-o057fOp/x}? UBpӫZ(kpXԏSSY,..jn)%r)|2\0פaU߶'%7vPu5p 6"F/ug@SM'|}àP>OT'պ'2ڰ.8r/%EhegMa%Om%"񲋿]S`;K@hSU/U^]/y=./гd'vW`M$~7mT+p}6] XhuSLTG"fޖ,^u>.AΊǖUF;QӐ޷My V8Yzgୱz<~vr9ǀzT/M/8QdQ(.w 6>shD>2]J! _ QGqh+)}CUQoi3UQ:b+Mּz|ukkLJp^Y/Xbń;A|?L!-2b@JߥjbFĚ又e#A)B˿Aiƞ N0ݲn]P!P3c\OmV+F spq,"A(xgcB Y=qjd7ߓOl|q=ɳsFƱ#bEn ,1?hdz|1:SK ]NprZS?!)ռ\y Eޕ,}=c1].Vţ[M-u<I0o- y2 Q }ke>͞A@q%'~(nD(j< (FX$GFJ(Z`I-?⤱QC(_,Tdum^4^Y>W[|a J˜FT|vH4)İ6 Y͔~2$gRqWE}^oVa\P"iB)k]MH'<bg~t>1pxa:(Mr`bMfd):"+ Uj2qf$x (zk4 )P_tݬ@#k̠Vvķ䡕 x9H`5" @QnķOg?O5S`R pYˊuՐ:`H,#A7W⊹́/rx&8'8( z2y|XIx!GPW7gߓendstream endobj 38388 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38389 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38390 0 obj <> endobj 38391 0 obj <> endobj 38392 0 obj <> endobj 38393 0 obj <> endobj 38394 0 obj <> endobj 38395 0 obj <> endobj 38396 0 obj <> endobj 38397 0 obj <> endobj 38398 0 obj <> stream q /X1 Do Q q endstream endobj 38399 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38400 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38401 0 obj <> stream HWkۺ_A_ņ+hMnrަ1p?$A]J.3$KxE5=>C WΚ~}ywHDH8RH BvVbu]M/YSW~ ޮ`m"!KY s8Lz|]})+vJpe(M[lt*J|X63?Ha| RbR:*/%rl2.O޵J^^^^^^>"G`yc}챏 >&`x}O >%{h]>j]| Pj]| Q>{(B Q{OPkCS$TEֵ!`Vum"{j]պ6D=JB Q{OPkZ׆(ZIֵ!`Vum@umٻ6@umٻ6D]պ6D=*B Q{OPkZ׆(ZEֵ!`Vum"TETպ6D=*B Pj]jZ׆(ZEֵMֵ!gEֵ!gwm"TET պ6D=jB Pj]j5Z׆(ZMֵPkCS&TET պ6@um"{Մj]j5Z׶ Z׆(kZ׆(kC>ij¿0oZPL6ao!S(Jzַ' GQ('uk.MB1:|]mUޕu.^Dڮn.D*(?6,w8Zo=oJE⛒f jS8}?q}-g# e`Ҳꊍ` H1h1N#rdܔJj95zJ'\^}^g6q̓2>ñ;/q(Ϸ}mVmv`~`TY%+(F-<4۳,ocr˗ˤ0.]RV)۔5}Hm@,oVX~5Mg\Srud>rK!Z&G K!|R@o'vP縫 I!ͳ=< 27Pn-5pk`DC?: g1C>{31cpn݁DXK NR.0KDC*nhoQ#i?nm.M7Vp;rmکm.YU@+:^؆n܄N9a}Bir(I|R9J-)0rH % *7eu,(T,^ OL?eK\XqV&2lQїjƱvx+_!5-fUϩG*9 {/eTk5Oa(ȹ뢨nZ2^#3շvSp*YvY?M \on_6/7~#HvϠ?kiq1>]8Gj}W'R6O?Vs]H!t }Sv _H?Jt֙=1tj(d&5Vx)L2&=R=Olcc'wx( }{t姧wb*9w\m.I /6q|x*玣_vϛ͛Aîc^@S̈kP"js!,S'd.OuG>*:@xլ~0Tfe~v2QXtN:) lFMIJ}/J*{OVaq:±!levp(lDŽ8B{ ./}CeWݐ̜(Cqϯ^OBlO:PRZq2t`Ic*2R?n,]s`.gNub YJweK7+H\Js{aP.:< +Q?2%þA-r%w7S( N( f- ӵ%1O5IH(z/2.[W)?gJ= >‚"{$ p{[l~qFMdDjp) _7}먗UQd"s͈L9U1X`#mu/`dTQҹ b#n>ʅNvz/Tr"H dS1!W: eYkj}v3*~01"D$ ~9[ fl.0n~t }  toa"uB[I+|c+`֦Nٷ؎4WeK\\ݑ6ņu fqliKK mBALu=M-R57؎é~CAu>/P 630 0 R/Type/Annot/A 38403 0 R/Subtype/Link/Rect[93.6006012 600.828979 210.949005 620.508972]/Border[0 0 0]/H/N>> endobj 38403 0 obj <> endobj 38404 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38405 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38406 0 obj <> endobj 38407 0 obj <> endobj 38408 0 obj <> endobj 38409 0 obj <> endobj 38410 0 obj <> endobj 38411 0 obj <> endobj 38412 0 obj <> endobj 38413 0 obj <> endobj 38414 0 obj <> stream q /X1 Do Q q endstream endobj 38415 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38416 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38417 0 obj <> stream HWmoF_e@$N"X*6t;Waѳ33;{e^]v;o]).E`J+4_)8/Yqz\zכ+7?oB|QL] gikJ sܳŦҬ._;c Ľ_6@CJ~0o+ٚARbLMXcB\eԆ<\j9*!9(I{I{EW{EW{EW{M{M{C7{C7{C7{K{K{Gw{Gw{Gw{O{O@@4+ѦM! զ6DSզ6DSr PjSj%Ԇ(}ZI6PmjC>S$TET+ զ6@Mm"gjSj%(B QLPmjC>S$T6"TOm"TOm٧6@Mm"gUjSj(B QLPmjC>S"TE6!`VMm"gUjSզ6D3*B QLPmjPmjCT>PmjCT>!*gE6!`VMm"gՄjSզ6D3jB QLPmjԆ(}ZM6!`VMm"TET զ6D3jBmSB Q9(B Q9Ԇ}(Cq?WZ/ +|gLPZf7llbAJĔ^r q7V nbxW7U>ť4|/?q.k m؛^-^/mt6<`fTAfOU NNy(~a7ۻ!iXPe* 'a.T>bngkn@"78ͫB8xegǂxnힳjln_7m:NUCJsj/I Tu?+|%i/D^⇤ =VOltJaC\rp\ᄡ8BM8ʾ`vڟj~qi8)^{nݬYUST-[={MJ;Iq^W O魶ͺt}>BSi}s[=9jGIJA2Q<xc,p#H.&20%CN0NV }f婾os:Hm1LOVЖ N< _ 9폶p4u4ps ,JAC<{Εe"V\3K .>3CNPxOˑ͡1^gls(]_}a>V0#Zpres0A_K܄2՗}.C%Xs 43kA8 M+u7R%z 3x@>u?>ȳWpMOJ9|;ۮh=h;i1 nΔ c`SCkH%РȢ_1JA>NIW7A9Y\35qsWq۩j<̪ĺ飓Vq,~SkcиyVS!~?K/cA>{] er\w5%/-%;.ŸMx(BU4ߪ5u6uTӄUe7"%#<@{U୙4&p78wXA>Hlxm@<~o Y`՛t/Tlj:Ӯa4M[tj s~>jႩ&S2nkp)c?6?u[ PXJӈ9NhWBBs;{"3Fi`aժ@A #K7 aZL1.x-"Fl p^3 d=5S}t.7 %y߽36pU ޵?JJ+qyxE1z?pWq68~}e;3k og9;\6:)l\*Ƌ'<€V}b+>Yrw(aGLZ n1> ;w_n鈎Cc0vpgN G VhTJ$e:r]B7;[*ASLTq*k׿´ˇק2Ar]Jv^pwTw:R"Ilv1& >[O )]KE(a$Oǂl;Jӱmu₪L);21PZQݪ,Jn?)p,kqSIJ _gUM.Q\QYF?bZ neX2 3:U鐗:w{KL^R2%-:"_kiUǷ?R:^2N$)'L kH1޽}U:_y2BaC%#Ё0yl &܍s6wkL)~yFi ̲ZyngK륍,[R~Lh^zigb4Jf{C0#L>L_%uy}-\R<\>L_G,H/SRNYRcdV6\0ÂP֧ct!L-c 6f1 "6#eo*l!;L H>g`9v}% uBi9+ƉLY=QRȺ,/&Me~Byp9OC6)~mNMi8r~.\iK% dV#\>?_w 1 B]wmr 8<6鴈Dt0 ef|.5? ab|]ǫ7 5iMmAq<[}vh/rsS=5AǺfϨ].Ćl4|/h:xM X9hjn]£, $h+a6"sCZ՗cSYoY0ؼ;u(4Sd097zzqɱ)ӌ g[^34D%t$RFO ΢d6DDkJFi":YL2$%'YcJɕIg1ZA-;pI-&wZo8j{hn\ӏ$DO)L\A2`z:ghp0s (; Y`>&|tbirlTv.G<'v0kRSzzN̒EC%.9(LcrB DƉn|21 P Չӧiz_zCΪ]Bh7nzLO= SSSzI޲v"$13c!~`kra"PN58^ؗ><5KS/Ss:~R)coF oe8~WL2B6nb,$P!v7*yt8ÉNk!dPh;JJGO3Iő&>"й+S"]8B85xF[qs4DOC^v/9*ڝ>&tU8pgnlt+ts`0F'x@Cipnq/Mqv:7ۡ'-^P"GHLg6JNƘs&P'ĘB4kok#VC6FD3zAr<%j\~fe=>9 otbLj;(sC/f oX ǜ>"(Cs?n]ЎϸU\Ӝ 04&94<`iZ^7tM &gARy^YHe]"fz݃ {yMmd3u_?cޝH]8xMnbnfFq9^Ԉ0H,{rĝEI+ئً{q/n{7NzkIګn}/Ul6@endstream endobj 38418 0 obj <>/P 2920 0 R/Type/Annot/A 38761 0 R/Subtype/Link/Rect[226 670 238 678]/Border[0 0 0]/H/N>> endobj 38419 0 obj <>/P 2920 0 R/Type/Annot/A 38759 0 R/Subtype/Link/Rect[250 640 267 649]/Border[0 0 0]/H/N>> endobj 38420 0 obj <>/P 2920 0 R/Type/Annot/A 38757 0 R/Subtype/Link/Rect[267 640 279 648]/Border[0 0 0]/H/N>> endobj 38421 0 obj <>/P 2920 0 R/Type/Annot/A 38755 0 R/Subtype/Link/Rect[215 630 223 638]/Border[0 0 0]/H/N>> endobj 38422 0 obj <>/P 2920 0 R/Type/Annot/A 38753 0 R/Subtype/Link/Rect[200 620 208 628]/Border[0 0 0]/H/N>> endobj 38423 0 obj <>/P 2920 0 R/Type/Annot/A 38751 0 R/Subtype/Link/Rect[235 600 252 609]/Border[0 0 0]/H/N>> endobj 38424 0 obj <>/P 2920 0 R/Type/Annot/A 38749 0 R/Subtype/Link/Rect[252 600 264 608]/Border[0 0 0]/H/N>> endobj 38425 0 obj <>/P 2920 0 R/Type/Annot/A 38747 0 R/Subtype/Link/Rect[203 590 219 599]/Border[0 0 0]/H/N>> endobj 38426 0 obj <>/P 2920 0 R/Type/Annot/A 38745 0 R/Subtype/Link/Rect[220 590 232 598]/Border[0 0 0]/H/N>> endobj 38427 0 obj <>/P 2920 0 R/Type/Annot/A 38743 0 R/Subtype/Link/Rect[221 580 233 588]/Border[0 0 0]/H/N>> endobj 38428 0 obj <>/P 2920 0 R/Type/Annot/A 38741 0 R/Subtype/Link/Rect[202 570 216 578]/Border[0 0 0]/H/N>> endobj 38429 0 obj <>/P 2920 0 R/Type/Annot/A 38739 0 R/Subtype/Link/Rect[218 570 232 578]/Border[0 0 0]/H/N>> endobj 38430 0 obj <>/P 2920 0 R/Type/Annot/A 38737 0 R/Subtype/Link/Rect[234 570 250 579]/Border[0 0 0]/H/N>> endobj 38431 0 obj <>/P 2920 0 R/Type/Annot/A 38735 0 R/Subtype/Link/Rect[251 570 265 578]/Border[0 0 0]/H/N>> endobj 38432 0 obj <>/P 2920 0 R/Type/Annot/A 38733 0 R/Subtype/Link/Rect[267 570 284 579]/Border[0 0 0]/H/N>> endobj 38433 0 obj <>/P 2920 0 R/Type/Annot/A 38731 0 R/Subtype/Link/Rect[284 570 298 578]/Border[0 0 0]/H/N>> endobj 38434 0 obj <>/P 2920 0 R/Type/Annot/A 38729 0 R/Subtype/Link/Rect[151 560 165 568]/Border[0 0 0]/H/N>> endobj 38435 0 obj <>/P 2920 0 R/Type/Annot/A 38727 0 R/Subtype/Link/Rect[167 560 181 568]/Border[0 0 0]/H/N>> endobj 38436 0 obj <>/P 2920 0 R/Type/Annot/A 38725 0 R/Subtype/Link/Rect[183 560 199 569]/Border[0 0 0]/H/N>> endobj 38437 0 obj <>/P 2920 0 R/Type/Annot/A 38723 0 R/Subtype/Link/Rect[200 560 212 568]/Border[0 0 0]/H/N>> endobj 38438 0 obj <>/P 2920 0 R/Type/Annot/A 38721 0 R/Subtype/Link/Rect[189 550 201 558]/Border[0 0 0]/H/N>> endobj 38439 0 obj <>/P 2920 0 R/Type/Annot/A 38719 0 R/Subtype/Link/Rect[225 540 241 549]/Border[0 0 0]/H/N>> endobj 38440 0 obj <>/P 2920 0 R/Type/Annot/A 38717 0 R/Subtype/Link/Rect[242 540 254 548]/Border[0 0 0]/H/N>> endobj 38441 0 obj <>/P 2920 0 R/Type/Annot/A 38715 0 R/Subtype/Link/Rect[230 530 244 538]/Border[0 0 0]/H/N>> endobj 38442 0 obj <>/P 2920 0 R/Type/Annot/A 38713 0 R/Subtype/Link/Rect[246 530 260 538]/Border[0 0 0]/H/N>> endobj 38443 0 obj <>/P 2920 0 R/Type/Annot/A 38711 0 R/Subtype/Link/Rect[262 530 276 538]/Border[0 0 0]/H/N>> endobj 38444 0 obj <>/P 2920 0 R/Type/Annot/A 38709 0 R/Subtype/Link/Rect[278 530 292 538]/Border[0 0 0]/H/N>> endobj 38445 0 obj <>/P 2920 0 R/Type/Annot/A 38707 0 R/Subtype/Link/Rect[294 530 306 538]/Border[0 0 0]/H/N>> endobj 38446 0 obj <>/P 2920 0 R/Type/Annot/A 38706 0 R/Subtype/Link/Rect[189 520 206 529]/Border[0 0 0]/H/N>> endobj 38447 0 obj <>/P 2920 0 R/Type/Annot/A 38705 0 R/Subtype/Link/Rect[207 520 219 528]/Border[0 0 0]/H/N>> endobj 38448 0 obj <>/P 2920 0 R/Type/Annot/A 38704 0 R/Subtype/Link/Rect[172 500 189 509]/Border[0 0 0]/H/N>> endobj 38449 0 obj <>/P 2920 0 R/Type/Annot/A 38703 0 R/Subtype/Link/Rect[189 500 203 508]/Border[0 0 0]/H/N>> endobj 38450 0 obj <>/P 2920 0 R/Type/Annot/A 38702 0 R/Subtype/Link/Rect[205 500 217 508]/Border[0 0 0]/H/N>> endobj 38451 0 obj <>/P 2920 0 R/Type/Annot/A 38701 0 R/Subtype/Link/Rect[176 490 186 498]/Border[0 0 0]/H/N>> endobj 38452 0 obj <>/P 2920 0 R/Type/Annot/A 44508 0 R/Subtype/Link/Rect[188 490 202 498]/Border[0 0 0]/H/N>> endobj 38453 0 obj <>/P 2920 0 R/Type/Annot/A 44786 0 R/Subtype/Link/Rect[204 490 218 498]/Border[0 0 0]/H/N>> endobj 38454 0 obj <>/P 2920 0 R/Type/Annot/A 44117 0 R/Subtype/Link/Rect[220 490 234 498]/Border[0 0 0]/H/N>> endobj 38455 0 obj <>/P 2920 0 R/Type/Annot/A 44179 0 R/Subtype/Link/Rect[236 490 250 498]/Border[0 0 0]/H/N>> endobj 38456 0 obj <>/P 2920 0 R/Type/Annot/A 43007 0 R/Subtype/Link/Rect[252 490 268 499]/Border[0 0 0]/H/N>> endobj 38457 0 obj <>/P 2920 0 R/Type/Annot/A 43881 0 R/Subtype/Link/Rect[269 490 283 498]/Border[0 0 0]/H/N>> endobj 38458 0 obj <>/P 2920 0 R/Type/Annot/A 43613 0 R/Subtype/Link/Rect[285 490 299 498]/Border[0 0 0]/H/N>> endobj 38459 0 obj <>/P 2920 0 R/Type/Annot/A 43912 0 R/Subtype/Link/Rect[151 480 167 489]/Border[0 0 0]/H/N>> endobj 38460 0 obj <>/P 2920 0 R/Type/Annot/A 43862 0 R/Subtype/Link/Rect[168 480 182 488]/Border[0 0 0]/H/N>> endobj 38461 0 obj <>/P 2920 0 R/Type/Annot/A 44376 0 R/Subtype/Link/Rect[184 480 198 488]/Border[0 0 0]/H/N>> endobj 38462 0 obj <>/P 2920 0 R/Type/Annot/A 43887 0 R/Subtype/Link/Rect[200 480 214 488]/Border[0 0 0]/H/N>> endobj 38463 0 obj <>/P 2920 0 R/Type/Annot/A 42763 0 R/Subtype/Link/Rect[216 480 232 489]/Border[0 0 0]/H/N>> endobj 38464 0 obj <>/P 2920 0 R/Type/Annot/A 44386 0 R/Subtype/Link/Rect[233 480 247 488]/Border[0 0 0]/H/N>> endobj 38465 0 obj <>/P 2920 0 R/Type/Annot/A 44236 0 R/Subtype/Link/Rect[249 480 263 488]/Border[0 0 0]/H/N>> endobj 38466 0 obj <>/P 2920 0 R/Type/Annot/A 44087 0 R/Subtype/Link/Rect[265 480 279 488]/Border[0 0 0]/H/N>> endobj 38467 0 obj <>/P 2920 0 R/Type/Annot/A 42779 0 R/Subtype/Link/Rect[281 480 295 488]/Border[0 0 0]/H/N>> endobj 38468 0 obj <>/P 2920 0 R/Type/Annot/A 44246 0 R/Subtype/Link/Rect[297 480 311 488]/Border[0 0 0]/H/N>> endobj 38469 0 obj <>/P 2920 0 R/Type/Annot/A 44092 0 R/Subtype/Link/Rect[151 470 167 479]/Border[0 0 0]/H/N>> endobj 38470 0 obj <>/P 2920 0 R/Type/Annot/A 43430 0 R/Subtype/Link/Rect[168 470 182 478]/Border[0 0 0]/H/N>> endobj 38471 0 obj <>/P 2920 0 R/Type/Annot/A 42038 0 R/Subtype/Link/Rect[184 470 198 478]/Border[0 0 0]/H/N>> endobj 38472 0 obj <>/P 2920 0 R/Type/Annot/A 43720 0 R/Subtype/Link/Rect[200 470 214 478]/Border[0 0 0]/H/N>> endobj 38473 0 obj <>/P 2920 0 R/Type/Annot/A 43694 0 R/Subtype/Link/Rect[216 470 230 478]/Border[0 0 0]/H/N>> endobj 38474 0 obj <>/P 2920 0 R/Type/Annot/A 44035 0 R/Subtype/Link/Rect[232 470 246 478]/Border[0 0 0]/H/N>> endobj 38475 0 obj <>/P 2920 0 R/Type/Annot/A 43172 0 R/Subtype/Link/Rect[248 470 262 478]/Border[0 0 0]/H/N>> endobj 38476 0 obj <>/P 2920 0 R/Type/Annot/A 43833 0 R/Subtype/Link/Rect[264 470 278 478]/Border[0 0 0]/H/N>> endobj 38477 0 obj <>/P 2920 0 R/Type/Annot/A 42948 0 R/Subtype/Link/Rect[280 470 294 478]/Border[0 0 0]/H/N>> endobj 38478 0 obj <>/P 2920 0 R/Type/Annot/A 43344 0 R/Subtype/Link/Rect[296 470 310 478]/Border[0 0 0]/H/N>> endobj 38479 0 obj <>/P 2920 0 R/Type/Annot/A 43852 0 R/Subtype/Link/Rect[151 460 165 468]/Border[0 0 0]/H/N>> endobj 38480 0 obj <>/P 2920 0 R/Type/Annot/A 43810 0 R/Subtype/Link/Rect[167 460 181 468]/Border[0 0 0]/H/N>> endobj 38481 0 obj <>/P 2920 0 R/Type/Annot/A 43779 0 R/Subtype/Link/Rect[183 460 199 469]/Border[0 0 0]/H/N>> endobj 38482 0 obj <>/P 2920 0 R/Type/Annot/A 43742 0 R/Subtype/Link/Rect[200 460 214 468]/Border[0 0 0]/H/N>> endobj 38483 0 obj <>/P 2920 0 R/Type/Annot/A 43703 0 R/Subtype/Link/Rect[216 460 230 468]/Border[0 0 0]/H/N>> endobj 38484 0 obj <>/P 2920 0 R/Type/Annot/A 43671 0 R/Subtype/Link/Rect[232 460 244 468]/Border[0 0 0]/H/N>> endobj 38485 0 obj <>/P 2920 0 R/Type/Annot/A 43169 0 R/Subtype/Link/Rect[215 450 227 458]/Border[0 0 0]/H/N>> endobj 38486 0 obj <>/P 2920 0 R/Type/Annot/A 43452 0 R/Subtype/Link/Rect[213 440 227 448]/Border[0 0 0]/H/N>> endobj 38487 0 obj <>/P 2920 0 R/Type/Annot/A 38897 0 R/Subtype/Link/Rect[229 440 243 448]/Border[0 0 0]/H/N>> endobj 38488 0 obj <>/P 2920 0 R/Type/Annot/A 43520 0 R/Subtype/Link/Rect[245 440 257 448]/Border[0 0 0]/H/N>> endobj 38489 0 obj <>/P 2920 0 R/Type/Annot/A 42996 0 R/Subtype/Link/Rect[176 420 193 429]/Border[0 0 0]/H/N>> endobj 38490 0 obj <>/P 2920 0 R/Type/Annot/A 43275 0 R/Subtype/Link/Rect[194 420 208 428]/Border[0 0 0]/H/N>> endobj 38491 0 obj <>/P 2920 0 R/Type/Annot/A 43415 0 R/Subtype/Link/Rect[210 420 224 428]/Border[0 0 0]/H/N>> endobj 38492 0 obj <>/P 2920 0 R/Type/Annot/A 43366 0 R/Subtype/Link/Rect[226 420 238 428]/Border[0 0 0]/H/N>> endobj 38493 0 obj <>/P 2920 0 R/Type/Annot/A 41341 0 R/Subtype/Link/Rect[185 410 199 418]/Border[0 0 0]/H/N>> endobj 38494 0 obj <>/P 2920 0 R/Type/Annot/A 43276 0 R/Subtype/Link/Rect[201 410 213 418]/Border[0 0 0]/H/N>> endobj 38495 0 obj <>/P 2920 0 R/Type/Annot/A 43235 0 R/Subtype/Link/Rect[173 400 183 408]/Border[0 0 0]/H/N>> endobj 38496 0 obj <>/P 2920 0 R/Type/Annot/A 42876 0 R/Subtype/Link/Rect[185 400 197 408]/Border[0 0 0]/H/N>> endobj 38497 0 obj <>/P 2920 0 R/Type/Annot/A 41451 0 R/Subtype/Link/Rect[169 390 182 398]/Border[0 0 0]/H/N>> endobj 38498 0 obj <>/P 2920 0 R/Type/Annot/A 41959 0 R/Subtype/Link/Rect[184 390 198 398]/Border[0 0 0]/H/N>> endobj 38499 0 obj <>/P 2920 0 R/Type/Annot/A 42435 0 R/Subtype/Link/Rect[200 390 214 398]/Border[0 0 0]/H/N>> endobj 38500 0 obj <>/P 2920 0 R/Type/Annot/A 43030 0 R/Subtype/Link/Rect[216 390 230 398]/Border[0 0 0]/H/N>> endobj 38501 0 obj <>/P 2920 0 R/Type/Annot/A 41428 0 R/Subtype/Link/Rect[232 390 246 398]/Border[0 0 0]/H/N>> endobj 38502 0 obj <>/P 2920 0 R/Type/Annot/A 42486 0 R/Subtype/Link/Rect[248 390 262 398]/Border[0 0 0]/H/N>> endobj 38503 0 obj <>/P 2920 0 R/Type/Annot/A 42929 0 R/Subtype/Link/Rect[264 390 278 398]/Border[0 0 0]/H/N>> endobj 38504 0 obj <>/P 2920 0 R/Type/Annot/A 41635 0 R/Subtype/Link/Rect[280 390 294 398]/Border[0 0 0]/H/N>> endobj 38505 0 obj <>/P 2920 0 R/Type/Annot/A 42861 0 R/Subtype/Link/Rect[296 390 310 398]/Border[0 0 0]/H/N>> endobj 38506 0 obj <>/P 2920 0 R/Type/Annot/A 42834 0 R/Subtype/Link/Rect[151 380 165 388]/Border[0 0 0]/H/N>> endobj 38507 0 obj <>/P 2920 0 R/Type/Annot/A 38895 0 R/Subtype/Link/Rect[167 380 181 388]/Border[0 0 0]/H/N>> endobj 38508 0 obj <>/P 2920 0 R/Type/Annot/A 38888 0 R/Subtype/Link/Rect[183 380 197 388]/Border[0 0 0]/H/N>> endobj 38509 0 obj <>/P 2920 0 R/Type/Annot/A 42173 0 R/Subtype/Link/Rect[199 380 211 388]/Border[0 0 0]/H/N>> endobj 38510 0 obj <>/P 2920 0 R/Type/Annot/A 42680 0 R/Subtype/Link/Rect[300 370 308 378]/Border[0 0 0]/H/N>> endobj 38511 0 obj <>/P 2920 0 R/Type/Annot/A 41665 0 R/Subtype/Link/Rect[173 360 183 368]/Border[0 0 0]/H/N>> endobj 38512 0 obj <>/P 2920 0 R/Type/Annot/A 38883 0 R/Subtype/Link/Rect[185 360 195 368]/Border[0 0 0]/H/N>> endobj 38513 0 obj <>/P 2920 0 R/Type/Annot/A 42569 0 R/Subtype/Link/Rect[197 360 213 369]/Border[0 0 0]/H/N>> endobj 38514 0 obj <>/P 2920 0 R/Type/Annot/A 38896 0 R/Subtype/Link/Rect[214 360 227 368]/Border[0 0 0]/H/N>> endobj 38515 0 obj <>/P 2920 0 R/Type/Annot/A 42096 0 R/Subtype/Link/Rect[229 360 241 368]/Border[0 0 0]/H/N>> endobj 38516 0 obj <>/P 2920 0 R/Type/Annot/A 41865 0 R/Subtype/Link/Rect[179 350 193 358]/Border[0 0 0]/H/N>> endobj 38517 0 obj <>/P 2920 0 R/Type/Annot/A 42403 0 R/Subtype/Link/Rect[195 350 207 358]/Border[0 0 0]/H/N>> endobj 38518 0 obj <>/P 2920 0 R/Type/Annot/A 39523 0 R/Subtype/Link/Rect[188 340 202 348]/Border[0 0 0]/H/N>> endobj 38519 0 obj <>/P 2920 0 R/Type/Annot/A 41935 0 R/Subtype/Link/Rect[204 340 218 348]/Border[0 0 0]/H/N>> endobj 38520 0 obj <>/P 2920 0 R/Type/Annot/A 41652 0 R/Subtype/Link/Rect[220 340 237 349]/Border[0 0 0]/H/N>> endobj 38521 0 obj <>/P 2920 0 R/Type/Annot/A 38904 0 R/Subtype/Link/Rect[238 340 249 348]/Border[0 0 0]/H/N>> endobj 38522 0 obj <>/P 2920 0 R/Type/Annot/A 39524 0 R/Subtype/Link/Rect[200 330 208 338]/Border[0 0 0]/H/N>> endobj 38523 0 obj <>/P 2920 0 R/Type/Annot/A 41507 0 R/Subtype/Link/Rect[212 320 226 328]/Border[0 0 0]/H/N>> endobj 38524 0 obj <>/P 2920 0 R/Type/Annot/A 41684 0 R/Subtype/Link/Rect[228 320 242 328]/Border[0 0 0]/H/N>> endobj 38525 0 obj <>/P 2920 0 R/Type/Annot/A 38905 0 R/Subtype/Link/Rect[244 320 256 328]/Border[0 0 0]/H/N>> endobj 38526 0 obj <>/P 2920 0 R/Type/Annot/A 40753 0 R/Subtype/Link/Rect[183 310 195 318]/Border[0 0 0]/H/N>> endobj 38527 0 obj <>/P 2920 0 R/Type/Annot/A 42001 0 R/Subtype/Link/Rect[183 300 195 308]/Border[0 0 0]/H/N>> endobj 38528 0 obj <>/P 2920 0 R/Type/Annot/A 41962 0 R/Subtype/Link/Rect[183 290 195 298]/Border[0 0 0]/H/N>> endobj 38529 0 obj <>/P 2920 0 R/Type/Annot/A 41272 0 R/Subtype/Link/Rect[183 280 195 288]/Border[0 0 0]/H/N>> endobj 38530 0 obj <>/P 2920 0 R/Type/Annot/A 38898 0 R/Subtype/Link/Rect[192 270 206 278]/Border[0 0 0]/H/N>> endobj 38531 0 obj <>/P 2920 0 R/Type/Annot/A 38890 0 R/Subtype/Link/Rect[208 270 225 279]/Border[0 0 0]/H/N>> endobj 38532 0 obj <>/P 2920 0 R/Type/Annot/A 38881 0 R/Subtype/Link/Rect[225 270 239 278]/Border[0 0 0]/H/N>> endobj 38533 0 obj <>/P 2920 0 R/Type/Annot/A 38877 0 R/Subtype/Link/Rect[241 270 253 278]/Border[0 0 0]/H/N>> endobj 38534 0 obj <>/P 2920 0 R/Type/Annot/A 41688 0 R/Subtype/Link/Rect[192 260 206 268]/Border[0 0 0]/H/N>> endobj 38535 0 obj <>/P 2920 0 R/Type/Annot/A 41429 0 R/Subtype/Link/Rect[208 260 220 268]/Border[0 0 0]/H/N>> endobj 38536 0 obj <>/P 2920 0 R/Type/Annot/A 38886 0 R/Subtype/Link/Rect[192 250 202 258]/Border[0 0 0]/H/N>> endobj 38537 0 obj <>/P 2920 0 R/Type/Annot/A 41561 0 R/Subtype/Link/Rect[204 250 214 258]/Border[0 0 0]/H/N>> endobj 38538 0 obj <>/P 2920 0 R/Type/Annot/A 38875 0 R/Subtype/Link/Rect[216 250 226 258]/Border[0 0 0]/H/N>> endobj 38539 0 obj <>/P 2920 0 R/Type/Annot/A 38899 0 R/Subtype/Link/Rect[228 250 238 258]/Border[0 0 0]/H/N>> endobj 38540 0 obj <>/P 2920 0 R/Type/Annot/A 38892 0 R/Subtype/Link/Rect[240 250 250 258]/Border[0 0 0]/H/N>> endobj 38541 0 obj <>/P 2920 0 R/Type/Annot/A 38885 0 R/Subtype/Link/Rect[252 250 266 258]/Border[0 0 0]/H/N>> endobj 38542 0 obj <>/P 2920 0 R/Type/Annot/A 40696 0 R/Subtype/Link/Rect[268 250 282 258]/Border[0 0 0]/H/N>> endobj 38543 0 obj <>/P 2920 0 R/Type/Annot/A 38874 0 R/Subtype/Link/Rect[284 250 298 258]/Border[0 0 0]/H/N>> endobj 38544 0 obj <>/P 2920 0 R/Type/Annot/A 38902 0 R/Subtype/Link/Rect[151 240 165 248]/Border[0 0 0]/H/N>> endobj 38545 0 obj <>/P 2920 0 R/Type/Annot/A 41263 0 R/Subtype/Link/Rect[167 240 181 248]/Border[0 0 0]/H/N>> endobj 38546 0 obj <>/P 2920 0 R/Type/Annot/A 38887 0 R/Subtype/Link/Rect[183 240 197 248]/Border[0 0 0]/H/N>> endobj 38547 0 obj <>/P 2920 0 R/Type/Annot/A 38880 0 R/Subtype/Link/Rect[199 240 213 248]/Border[0 0 0]/H/N>> endobj 38548 0 obj <>/P 2920 0 R/Type/Annot/A 38876 0 R/Subtype/Link/Rect[215 240 229 248]/Border[0 0 0]/H/N>> endobj 38549 0 obj <>/P 2920 0 R/Type/Annot/A 41131 0 R/Subtype/Link/Rect[231 240 245 248]/Border[0 0 0]/H/N>> endobj 38550 0 obj <>/P 2920 0 R/Type/Annot/A 41100 0 R/Subtype/Link/Rect[247 240 263 249]/Border[0 0 0]/H/N>> endobj 38551 0 obj <>/P 2920 0 R/Type/Annot/A 38891 0 R/Subtype/Link/Rect[264 240 278 248]/Border[0 0 0]/H/N>> endobj 38552 0 obj <>/P 2920 0 R/Type/Annot/A 38884 0 R/Subtype/Link/Rect[280 240 294 248]/Border[0 0 0]/H/N>> endobj 38553 0 obj <>/P 2920 0 R/Type/Annot/A 40712 0 R/Subtype/Link/Rect[296 240 308 248]/Border[0 0 0]/H/N>> endobj 38554 0 obj <>/P 2920 0 R/Type/Annot/A 38926 0 R/Subtype/Link/Rect[189 230 197 238]/Border[0 0 0]/H/N>> endobj 38555 0 obj <>/P 2920 0 R/Type/Annot/A 38903 0 R/Subtype/Link/Rect[221 220 238 229]/Border[0 0 0]/H/N>> endobj 38556 0 obj <>/P 2920 0 R/Type/Annot/A 38893 0 R/Subtype/Link/Rect[239 220 253 228]/Border[0 0 0]/H/N>> endobj 38557 0 obj <>/P 2920 0 R/Type/Annot/A 38889 0 R/Subtype/Link/Rect[255 220 269 228]/Border[0 0 0]/H/N>> endobj 38558 0 obj <>/P 2920 0 R/Type/Annot/A 38882 0 R/Subtype/Link/Rect[271 220 285 228]/Border[0 0 0]/H/N>> endobj 38559 0 obj <>/P 2920 0 R/Type/Annot/A 38878 0 R/Subtype/Link/Rect[287 220 301 228]/Border[0 0 0]/H/N>> endobj 38560 0 obj <>/P 2920 0 R/Type/Annot/A 38872 0 R/Subtype/Link/Rect[151 210 165 218]/Border[0 0 0]/H/N>> endobj 38561 0 obj <>/P 2920 0 R/Type/Annot/A 38870 0 R/Subtype/Link/Rect[167 210 181 218]/Border[0 0 0]/H/N>> endobj 38562 0 obj <>/P 2920 0 R/Type/Annot/A 38894 0 R/Subtype/Link/Rect[183 210 195 218]/Border[0 0 0]/H/N>> endobj 38563 0 obj <>/P 2920 0 R/Type/Annot/A 38867 0 R/Subtype/Link/Rect[188 200 202 208]/Border[0 0 0]/H/N>> endobj 38564 0 obj <>/P 2920 0 R/Type/Annot/A 38865 0 R/Subtype/Link/Rect[204 200 218 208]/Border[0 0 0]/H/N>> endobj 38565 0 obj <>/P 2920 0 R/Type/Annot/A 38879 0 R/Subtype/Link/Rect[220 200 234 208]/Border[0 0 0]/H/N>> endobj 38566 0 obj <>/P 2920 0 R/Type/Annot/A 38873 0 R/Subtype/Link/Rect[236 200 250 208]/Border[0 0 0]/H/N>> endobj 38567 0 obj <>/P 2920 0 R/Type/Annot/A 38871 0 R/Subtype/Link/Rect[252 200 269 209]/Border[0 0 0]/H/N>> endobj 38568 0 obj <>/P 2920 0 R/Type/Annot/A 38869 0 R/Subtype/Link/Rect[270 200 284 208]/Border[0 0 0]/H/N>> endobj 38569 0 obj <>/P 2920 0 R/Type/Annot/A 38868 0 R/Subtype/Link/Rect[286 200 298 208]/Border[0 0 0]/H/N>> endobj 38570 0 obj <>/P 2920 0 R/Type/Annot/A 38866 0 R/Subtype/Link/Rect[202 190 216 198]/Border[0 0 0]/H/N>> endobj 38571 0 obj <>/P 2920 0 R/Type/Annot/A 38864 0 R/Subtype/Link/Rect[218 190 230 198]/Border[0 0 0]/H/N>> endobj 38572 0 obj <>/P 2920 0 R/Type/Annot/A 38863 0 R/Subtype/Link/Rect[216 180 230 188]/Border[0 0 0]/H/N>> endobj 38573 0 obj <>/P 2920 0 R/Type/Annot/A 38862 0 R/Subtype/Link/Rect[232 180 244 188]/Border[0 0 0]/H/N>> endobj 38574 0 obj <>/P 2920 0 R/Type/Annot/A 38861 0 R/Subtype/Link/Rect[207 170 221 178]/Border[0 0 0]/H/N>> endobj 38575 0 obj <>/P 2920 0 R/Type/Annot/A 38860 0 R/Subtype/Link/Rect[223 170 235 178]/Border[0 0 0]/H/N>> endobj 38576 0 obj <>/P 2920 0 R/Type/Annot/A 38859 0 R/Subtype/Link/Rect[192 160 206 168]/Border[0 0 0]/H/N>> endobj 38577 0 obj <>/P 2920 0 R/Type/Annot/A 38858 0 R/Subtype/Link/Rect[208 160 222 168]/Border[0 0 0]/H/N>> endobj 38578 0 obj <>/P 2920 0 R/Type/Annot/A 38857 0 R/Subtype/Link/Rect[224 160 238 168]/Border[0 0 0]/H/N>> endobj 38579 0 obj <>/P 2920 0 R/Type/Annot/A 38856 0 R/Subtype/Link/Rect[240 160 252 168]/Border[0 0 0]/H/N>> endobj 38580 0 obj <>/P 2920 0 R/Type/Annot/A 38855 0 R/Subtype/Link/Rect[193 150 207 158]/Border[0 0 0]/H/N>> endobj 38581 0 obj <>/P 2920 0 R/Type/Annot/A 38854 0 R/Subtype/Link/Rect[209 150 221 158]/Border[0 0 0]/H/N>> endobj 38582 0 obj <>/P 2920 0 R/Type/Annot/A 38853 0 R/Subtype/Link/Rect[391 670 405 678]/Border[0 0 0]/H/N>> endobj 38583 0 obj <>/P 2920 0 R/Type/Annot/A 38852 0 R/Subtype/Link/Rect[407 670 419 678]/Border[0 0 0]/H/N>> endobj 38584 0 obj <>/P 2920 0 R/Type/Annot/A 38851 0 R/Subtype/Link/Rect[391 660 405 668]/Border[0 0 0]/H/N>> endobj 38585 0 obj <>/P 2920 0 R/Type/Annot/A 38850 0 R/Subtype/Link/Rect[407 660 419 668]/Border[0 0 0]/H/N>> endobj 38586 0 obj <>/P 2920 0 R/Type/Annot/A 38849 0 R/Subtype/Link/Rect[391 650 405 658]/Border[0 0 0]/H/N>> endobj 38587 0 obj <>/P 2920 0 R/Type/Annot/A 38848 0 R/Subtype/Link/Rect[407 650 419 658]/Border[0 0 0]/H/N>> endobj 38588 0 obj <>/P 2920 0 R/Type/Annot/A 38847 0 R/Subtype/Link/Rect[391 640 405 648]/Border[0 0 0]/H/N>> endobj 38589 0 obj <>/P 2920 0 R/Type/Annot/A 38846 0 R/Subtype/Link/Rect[407 640 421 648]/Border[0 0 0]/H/N>> endobj 38590 0 obj <>/P 2920 0 R/Type/Annot/A 38845 0 R/Subtype/Link/Rect[423 640 439 649]/Border[0 0 0]/H/N>> endobj 38591 0 obj <>/P 2920 0 R/Type/Annot/A 38844 0 R/Subtype/Link/Rect[440 640 452 648]/Border[0 0 0]/H/N>> endobj 38592 0 obj <>/P 2920 0 R/Type/Annot/A 38843 0 R/Subtype/Link/Rect[386 630 398 638]/Border[0 0 0]/H/N>> endobj 38593 0 obj <>/P 2920 0 R/Type/Annot/A 38842 0 R/Subtype/Link/Rect[400 620 414 628]/Border[0 0 0]/H/N>> endobj 38594 0 obj <>/P 2920 0 R/Type/Annot/A 38841 0 R/Subtype/Link/Rect[416 620 430 628]/Border[0 0 0]/H/N>> endobj 38595 0 obj <>/P 2920 0 R/Type/Annot/A 38840 0 R/Subtype/Link/Rect[432 620 446 628]/Border[0 0 0]/H/N>> endobj 38596 0 obj <>/P 2920 0 R/Type/Annot/A 38839 0 R/Subtype/Link/Rect[448 620 465 629]/Border[0 0 0]/H/N>> endobj 38597 0 obj <>/P 2920 0 R/Type/Annot/A 38838 0 R/Subtype/Link/Rect[465 620 477 628]/Border[0 0 0]/H/N>> endobj 38598 0 obj <>/P 2920 0 R/Type/Annot/A 38837 0 R/Subtype/Link/Rect[405 610 421 619]/Border[0 0 0]/H/N>> endobj 38599 0 obj <>/P 2920 0 R/Type/Annot/A 38836 0 R/Subtype/Link/Rect[422 610 434 618]/Border[0 0 0]/H/N>> endobj 38600 0 obj <>/P 2920 0 R/Type/Annot/A 38835 0 R/Subtype/Link/Rect[397 600 411 608]/Border[0 0 0]/H/N>> endobj 38601 0 obj <>/P 2920 0 R/Type/Annot/A 38834 0 R/Subtype/Link/Rect[413 600 425 608]/Border[0 0 0]/H/N>> endobj 38602 0 obj <>/P 2920 0 R/Type/Annot/A 38833 0 R/Subtype/Link/Rect[378 580 386 588]/Border[0 0 0]/H/N>> endobj 38603 0 obj <>/P 2920 0 R/Type/Annot/A 38832 0 R/Subtype/Link/Rect[405 570 419 578]/Border[0 0 0]/H/N>> endobj 38604 0 obj <>/P 2920 0 R/Type/Annot/A 38831 0 R/Subtype/Link/Rect[421 570 433 578]/Border[0 0 0]/H/N>> endobj 38605 0 obj <>/P 2920 0 R/Type/Annot/A 38830 0 R/Subtype/Link/Rect[410 560 424 568]/Border[0 0 0]/H/N>> endobj 38606 0 obj <>/P 2920 0 R/Type/Annot/A 38829 0 R/Subtype/Link/Rect[426 560 440 568]/Border[0 0 0]/H/N>> endobj 38607 0 obj <>/P 2920 0 R/Type/Annot/A 38828 0 R/Subtype/Link/Rect[442 560 456 568]/Border[0 0 0]/H/N>> endobj 38608 0 obj <>/P 2920 0 R/Type/Annot/A 38827 0 R/Subtype/Link/Rect[458 560 474 569]/Border[0 0 0]/H/N>> endobj 38609 0 obj <>/P 2920 0 R/Type/Annot/A 38826 0 R/Subtype/Link/Rect[475 560 487 568]/Border[0 0 0]/H/N>> endobj 38610 0 obj <>/P 2920 0 R/Type/Annot/A 38825 0 R/Subtype/Link/Rect[397 550 409 558]/Border[0 0 0]/H/N>> endobj 38611 0 obj <>/P 2920 0 R/Type/Annot/A 38824 0 R/Subtype/Link/Rect[400 540 412 548]/Border[0 0 0]/H/N>> endobj 38612 0 obj <>/P 2920 0 R/Type/Annot/A 38823 0 R/Subtype/Link/Rect[413 530 421 538]/Border[0 0 0]/H/N>> endobj 38613 0 obj <>/P 2920 0 R/Type/Annot/A 38822 0 R/Subtype/Link/Rect[387 520 399 528]/Border[0 0 0]/H/N>> endobj 38614 0 obj <>/P 2920 0 R/Type/Annot/A 38821 0 R/Subtype/Link/Rect[401 510 415 518]/Border[0 0 0]/H/N>> endobj 38615 0 obj <>/P 2920 0 R/Type/Annot/A 38820 0 R/Subtype/Link/Rect[417 510 429 518]/Border[0 0 0]/H/N>> endobj 38616 0 obj <>/P 2920 0 R/Type/Annot/A 38819 0 R/Subtype/Link/Rect[402 500 411 509]/Border[0 0 0]/H/N>> endobj 38617 0 obj <>/P 2920 0 R/Type/Annot/A 38818 0 R/Subtype/Link/Rect[411 500 417 508]/Border[0 0 0]/H/N>> endobj 38618 0 obj <>/P 2920 0 R/Type/Annot/A 38817 0 R/Subtype/Link/Rect[419 500 425 508]/Border[0 0 0]/H/N>> endobj 38619 0 obj <>/P 2920 0 R/Type/Annot/A 38816 0 R/Subtype/Link/Rect[427 500 437 508]/Border[0 0 0]/H/N>> endobj 38620 0 obj <>/P 2920 0 R/Type/Annot/A 38815 0 R/Subtype/Link/Rect[439 500 449 508]/Border[0 0 0]/H/N>> endobj 38621 0 obj <>/P 2920 0 R/Type/Annot/A 38814 0 R/Subtype/Link/Rect[451 500 461 508]/Border[0 0 0]/H/N>> endobj 38622 0 obj <>/P 2920 0 R/Type/Annot/A 38813 0 R/Subtype/Link/Rect[463 500 473 508]/Border[0 0 0]/H/N>> endobj 38623 0 obj <>/P 2920 0 R/Type/Annot/A 38812 0 R/Subtype/Link/Rect[475 500 485 508]/Border[0 0 0]/H/N>> endobj 38624 0 obj <>/P 2920 0 R/Type/Annot/A 38811 0 R/Subtype/Link/Rect[487 500 501 508]/Border[0 0 0]/H/N>> endobj 38625 0 obj <>/P 2920 0 R/Type/Annot/A 38810 0 R/Subtype/Link/Rect[359 490 375 499]/Border[0 0 0]/H/N>> endobj 38626 0 obj <>/P 2920 0 R/Type/Annot/A 38809 0 R/Subtype/Link/Rect[375 490 389 498]/Border[0 0 0]/H/N>> endobj 38627 0 obj <>/P 2920 0 R/Type/Annot/A 38808 0 R/Subtype/Link/Rect[391 490 405 498]/Border[0 0 0]/H/N>> endobj 38628 0 obj <>/P 2920 0 R/Type/Annot/A 38807 0 R/Subtype/Link/Rect[407 490 421 498]/Border[0 0 0]/H/N>> endobj 38629 0 obj <>/P 2920 0 R/Type/Annot/A 38806 0 R/Subtype/Link/Rect[423 490 437 498]/Border[0 0 0]/H/N>> endobj 38630 0 obj <>/P 2920 0 R/Type/Annot/A 38805 0 R/Subtype/Link/Rect[439 490 456 499]/Border[0 0 0]/H/N>> endobj 38631 0 obj <>/P 2920 0 R/Type/Annot/A 38804 0 R/Subtype/Link/Rect[456 490 470 498]/Border[0 0 0]/H/N>> endobj 38632 0 obj <>/P 2920 0 R/Type/Annot/A 38803 0 R/Subtype/Link/Rect[472 490 486 498]/Border[0 0 0]/H/N>> endobj 38633 0 obj <>/P 2920 0 R/Type/Annot/A 38802 0 R/Subtype/Link/Rect[488 490 502 498]/Border[0 0 0]/H/N>> endobj 38634 0 obj <>/P 2920 0 R/Type/Annot/A 38801 0 R/Subtype/Link/Rect[504 490 518 498]/Border[0 0 0]/H/N>> endobj 38635 0 obj <>/P 2920 0 R/Type/Annot/A 38800 0 R/Subtype/Link/Rect[359 480 373 488]/Border[0 0 0]/H/N>> endobj 38636 0 obj <>/P 2920 0 R/Type/Annot/A 38799 0 R/Subtype/Link/Rect[375 480 389 488]/Border[0 0 0]/H/N>> endobj 38637 0 obj <>/P 2920 0 R/Type/Annot/A 38798 0 R/Subtype/Link/Rect[391 480 405 488]/Border[0 0 0]/H/N>> endobj 38638 0 obj <>/P 2920 0 R/Type/Annot/A 38797 0 R/Subtype/Link/Rect[407 480 419 488]/Border[0 0 0]/H/N>> endobj 38639 0 obj <>/P 2920 0 R/Type/Annot/A 38796 0 R/Subtype/Link/Rect[367 470 375 478]/Border[0 0 0]/H/N>> endobj 38640 0 obj <>/P 2920 0 R/Type/Annot/A 38795 0 R/Subtype/Link/Rect[398 460 415 469]/Border[0 0 0]/H/N>> endobj 38641 0 obj <>/P 2920 0 R/Type/Annot/A 38794 0 R/Subtype/Link/Rect[415 460 429 468]/Border[0 0 0]/H/N>> endobj 38642 0 obj <>/P 2920 0 R/Type/Annot/A 38793 0 R/Subtype/Link/Rect[431 460 445 468]/Border[0 0 0]/H/N>> endobj 38643 0 obj <>/P 2920 0 R/Type/Annot/A 38792 0 R/Subtype/Link/Rect[447 460 459 468]/Border[0 0 0]/H/N>> endobj 38644 0 obj <>/P 2920 0 R/Type/Annot/A 38791 0 R/Subtype/Link/Rect[410 450 422 458]/Border[0 0 0]/H/N>> endobj 38645 0 obj <>/P 2920 0 R/Type/Annot/A 38790 0 R/Subtype/Link/Rect[372 412 388 421]/Border[0 0 0]/H/N>> endobj 38646 0 obj <>/P 2920 0 R/Type/Annot/A 38789 0 R/Subtype/Link/Rect[389 412 401 420]/Border[0 0 0]/H/N>> endobj 38647 0 obj <>/P 2920 0 R/Type/Annot/A 38788 0 R/Subtype/Link/Rect[378 402 395 411]/Border[0 0 0]/H/N>> endobj 38648 0 obj <>/P 2920 0 R/Type/Annot/A 38787 0 R/Subtype/Link/Rect[395 402 407 410]/Border[0 0 0]/H/N>> endobj 38649 0 obj <>/P 2920 0 R/Type/Annot/A 38786 0 R/Subtype/Link/Rect[397 392 413 401]/Border[0 0 0]/H/N>> endobj 38650 0 obj <>/P 2920 0 R/Type/Annot/A 38785 0 R/Subtype/Link/Rect[414 392 426 400]/Border[0 0 0]/H/N>> endobj 38651 0 obj <>/P 2920 0 R/Type/Annot/A 38784 0 R/Subtype/Link/Rect[400 382 417 391]/Border[0 0 0]/H/N>> endobj 38652 0 obj <>/P 2920 0 R/Type/Annot/A 38783 0 R/Subtype/Link/Rect[418 382 430 390]/Border[0 0 0]/H/N>> endobj 38653 0 obj <>/P 2920 0 R/Type/Annot/A 38782 0 R/Subtype/Link/Rect[419 372 433 380]/Border[0 0 0]/H/N>> endobj 38654 0 obj <>/P 2920 0 R/Type/Annot/A 38781 0 R/Subtype/Link/Rect[435 372 449 380]/Border[0 0 0]/H/N>> endobj 38655 0 obj <>/P 2920 0 R/Type/Annot/A 38780 0 R/Subtype/Link/Rect[451 372 465 380]/Border[0 0 0]/H/N>> endobj 38656 0 obj <>/P 2920 0 R/Type/Annot/A 38779 0 R/Subtype/Link/Rect[467 372 481 380]/Border[0 0 0]/H/N>> endobj 38657 0 obj <>/P 2920 0 R/Type/Annot/A 38778 0 R/Subtype/Link/Rect[483 372 497 380]/Border[0 0 0]/H/N>> endobj 38658 0 obj <>/P 2920 0 R/Type/Annot/A 38777 0 R/Subtype/Link/Rect[499 372 513 380]/Border[0 0 0]/H/N>> endobj 38659 0 obj <>/P 2920 0 R/Type/Annot/A 38776 0 R/Subtype/Link/Rect[359 362 373 370]/Border[0 0 0]/H/N>> endobj 38660 0 obj <>/P 2920 0 R/Type/Annot/A 38775 0 R/Subtype/Link/Rect[375 362 389 370]/Border[0 0 0]/H/N>> endobj 38661 0 obj <>/P 2920 0 R/Type/Annot/A 38774 0 R/Subtype/Link/Rect[391 362 405 370]/Border[0 0 0]/H/N>> endobj 38662 0 obj <>/P 2920 0 R/Type/Annot/A 38773 0 R/Subtype/Link/Rect[407 362 423 371]/Border[0 0 0]/H/N>> endobj 38663 0 obj <>/P 2920 0 R/Type/Annot/A 38772 0 R/Subtype/Link/Rect[424 362 436 370]/Border[0 0 0]/H/N>> endobj 38664 0 obj <>/P 2920 0 R/Type/Annot/A 38771 0 R/Subtype/Link/Rect[397 352 409 360]/Border[0 0 0]/H/N>> endobj 38665 0 obj <>/P 2920 0 R/Type/Annot/A 38770 0 R/Subtype/Link/Rect[382 342 396 350]/Border[0 0 0]/H/N>> endobj 38666 0 obj <>/P 2920 0 R/Type/Annot/A 38769 0 R/Subtype/Link/Rect[398 342 410 350]/Border[0 0 0]/H/N>> endobj 38667 0 obj <>/P 2920 0 R/Type/Annot/A 38768 0 R/Subtype/Link/Rect[408 332 416 340]/Border[0 0 0]/H/N>> endobj 38668 0 obj <>/P 2920 0 R/Type/Annot/A 38767 0 R/Subtype/Link/Rect[396 322 408 330]/Border[0 0 0]/H/N>> endobj 38669 0 obj <>/P 2920 0 R/Type/Annot/A 38766 0 R/Subtype/Link/Rect[405 312 417 320]/Border[0 0 0]/H/N>> endobj 38670 0 obj <>/P 2920 0 R/Type/Annot/A 38765 0 R/Subtype/Link/Rect[389 292 401 300]/Border[0 0 0]/H/N>> endobj 38671 0 obj <>/P 2920 0 R/Type/Annot/A 38764 0 R/Subtype/Link/Rect[399 282 411 290]/Border[0 0 0]/H/N>> endobj 38672 0 obj <>/P 2920 0 R/Type/Annot/A 38763 0 R/Subtype/Link/Rect[387 272 404 281]/Border[0 0 0]/H/N>> endobj 38673 0 obj <>/P 2920 0 R/Type/Annot/A 38762 0 R/Subtype/Link/Rect[405 272 417 280]/Border[0 0 0]/H/N>> endobj 38674 0 obj <>/P 2920 0 R/Type/Annot/A 38760 0 R/Subtype/Link/Rect[443 262 451 270]/Border[0 0 0]/H/N>> endobj 38675 0 obj <>/P 2920 0 R/Type/Annot/A 38758 0 R/Subtype/Link/Rect[399 252 416 261]/Border[0 0 0]/H/N>> endobj 38676 0 obj <>/P 2920 0 R/Type/Annot/A 38756 0 R/Subtype/Link/Rect[416 252 428 260]/Border[0 0 0]/H/N>> endobj 38677 0 obj <>/P 2920 0 R/Type/Annot/A 38754 0 R/Subtype/Link/Rect[434 242 446 250]/Border[0 0 0]/H/N>> endobj 38678 0 obj <>/P 2920 0 R/Type/Annot/A 38752 0 R/Subtype/Link/Rect[397 232 413 241]/Border[0 0 0]/H/N>> endobj 38679 0 obj <>/P 2920 0 R/Type/Annot/A 38750 0 R/Subtype/Link/Rect[414 232 426 240]/Border[0 0 0]/H/N>> endobj 38680 0 obj <>/P 2920 0 R/Type/Annot/A 38748 0 R/Subtype/Link/Rect[425 222 437 230]/Border[0 0 0]/H/N>> endobj 38681 0 obj <>/P 2920 0 R/Type/Annot/A 38746 0 R/Subtype/Link/Rect[410 212 427 221]/Border[0 0 0]/H/N>> endobj 38682 0 obj <>/P 2920 0 R/Type/Annot/A 38744 0 R/Subtype/Link/Rect[428 212 440 220]/Border[0 0 0]/H/N>> endobj 38683 0 obj <>/P 2920 0 R/Type/Annot/A 38742 0 R/Subtype/Link/Rect[399 202 416 211]/Border[0 0 0]/H/N>> endobj 38684 0 obj <>/P 2920 0 R/Type/Annot/A 38740 0 R/Subtype/Link/Rect[416 202 428 210]/Border[0 0 0]/H/N>> endobj 38685 0 obj <>/P 2920 0 R/Type/Annot/A 38738 0 R/Subtype/Link/Rect[395 192 412 201]/Border[0 0 0]/H/N>> endobj 38686 0 obj <>/P 2920 0 R/Type/Annot/A 38736 0 R/Subtype/Link/Rect[413 192 425 200]/Border[0 0 0]/H/N>> endobj 38687 0 obj <>/P 2920 0 R/Type/Annot/A 38734 0 R/Subtype/Link/Rect[419 182 431 190]/Border[0 0 0]/H/N>> endobj 38688 0 obj <>/P 2920 0 R/Type/Annot/A 38732 0 R/Subtype/Link/Rect[378 172 392 180]/Border[0 0 0]/H/N>> endobj 38689 0 obj <>/P 2920 0 R/Type/Annot/A 38730 0 R/Subtype/Link/Rect[394 172 406 180]/Border[0 0 0]/H/N>> endobj 38690 0 obj <>/P 2920 0 R/Type/Annot/A 38728 0 R/Subtype/Link/Rect[429 162 445 171]/Border[0 0 0]/H/N>> endobj 38691 0 obj <>/P 2920 0 R/Type/Annot/A 38726 0 R/Subtype/Link/Rect[446 162 458 170]/Border[0 0 0]/H/N>> endobj 38692 0 obj <>/P 2920 0 R/Type/Annot/A 38724 0 R/Subtype/Link/Rect[396 152 410 160]/Border[0 0 0]/H/N>> endobj 38693 0 obj <>/P 2920 0 R/Type/Annot/A 38722 0 R/Subtype/Link/Rect[412 152 426 160]/Border[0 0 0]/H/N>> endobj 38694 0 obj <>/P 2920 0 R/Type/Annot/A 38720 0 R/Subtype/Link/Rect[428 152 442 160]/Border[0 0 0]/H/N>> endobj 38695 0 obj <>/P 2920 0 R/Type/Annot/A 38718 0 R/Subtype/Link/Rect[444 152 458 160]/Border[0 0 0]/H/N>> endobj 38696 0 obj <>/P 2920 0 R/Type/Annot/A 38716 0 R/Subtype/Link/Rect[460 152 472 160]/Border[0 0 0]/H/N>> endobj 38697 0 obj <>/P 2920 0 R/Type/Annot/A 38714 0 R/Subtype/Link/Rect[500 588 510 597]/Border[0 0 0]/H/N>> endobj 38698 0 obj <>/P 2920 0 R/Type/Annot/A 38712 0 R/Subtype/Link/Rect[359 578 376 587]/Border[0 0 0]/H/N>> endobj 38699 0 obj <>/P 2920 0 R/Type/Annot/A 38710 0 R/Subtype/Link/Rect[371 330 386 339]/Border[0 0 0]/H/N>> endobj 38700 0 obj <>/P 2920 0 R/Type/Annot/A 38708 0 R/Subtype/Link/Rect[388 330 407 339]/Border[0 0 0]/H/N>> endobj 38701 0 obj <> endobj 38702 0 obj <> endobj 38703 0 obj <> endobj 38704 0 obj <> endobj 38705 0 obj <> endobj 38706 0 obj <> endobj 38707 0 obj <> endobj 38708 0 obj <> endobj 38709 0 obj <> endobj 38710 0 obj <> endobj 38711 0 obj <> endobj 38712 0 obj <> endobj 38713 0 obj <> endobj 38714 0 obj <> endobj 38715 0 obj <> endobj 38716 0 obj <> endobj 38717 0 obj <> endobj 38718 0 obj <> endobj 38719 0 obj <> endobj 38720 0 obj <> endobj 38721 0 obj <> endobj 38722 0 obj <> endobj 38723 0 obj <> endobj 38724 0 obj <> endobj 38725 0 obj <> endobj 38726 0 obj <> endobj 38727 0 obj <> endobj 38728 0 obj <> endobj 38729 0 obj <> endobj 38730 0 obj <> endobj 38731 0 obj <> endobj 38732 0 obj <> endobj 38733 0 obj <> endobj 38734 0 obj <> endobj 38735 0 obj <> endobj 38736 0 obj <> endobj 38737 0 obj <> endobj 38738 0 obj <> endobj 38739 0 obj <> endobj 38740 0 obj <> endobj 38741 0 obj <> endobj 38742 0 obj <> endobj 38743 0 obj <> endobj 38744 0 obj <> endobj 38745 0 obj <> endobj 38746 0 obj <> endobj 38747 0 obj <> endobj 38748 0 obj <> endobj 38749 0 obj <> endobj 38750 0 obj <> endobj 38751 0 obj <> endobj 38752 0 obj <> endobj 38753 0 obj <> endobj 38754 0 obj <> endobj 38755 0 obj <> endobj 38756 0 obj <> endobj 38757 0 obj <> endobj 38758 0 obj <> endobj 38759 0 obj <> endobj 38760 0 obj <> endobj 38761 0 obj <> endobj 38762 0 obj <> endobj 38763 0 obj <> endobj 38764 0 obj <> endobj 38765 0 obj <> endobj 38766 0 obj <> endobj 38767 0 obj <> endobj 38768 0 obj <> endobj 38769 0 obj <> endobj 38770 0 obj <> endobj 38771 0 obj <> endobj 38772 0 obj <> endobj 38773 0 obj <> endobj 38774 0 obj <> endobj 38775 0 obj <> endobj 38776 0 obj <> endobj 38777 0 obj <> endobj 38778 0 obj <> endobj 38779 0 obj <> endobj 38780 0 obj <> endobj 38781 0 obj <> endobj 38782 0 obj <> endobj 38783 0 obj <> endobj 38784 0 obj <> endobj 38785 0 obj <> endobj 38786 0 obj <> endobj 38787 0 obj <> endobj 38788 0 obj <> endobj 38789 0 obj <> endobj 38790 0 obj <> endobj 38791 0 obj <> endobj 38792 0 obj <> endobj 38793 0 obj <> endobj 38794 0 obj <> endobj 38795 0 obj <> endobj 38796 0 obj <> endobj 38797 0 obj <> endobj 38798 0 obj <> endobj 38799 0 obj <> endobj 38800 0 obj <> endobj 38801 0 obj <> endobj 38802 0 obj <> endobj 38803 0 obj <> endobj 38804 0 obj <> endobj 38805 0 obj <> endobj 38806 0 obj <> endobj 38807 0 obj <> endobj 38808 0 obj <> endobj 38809 0 obj <> endobj 38810 0 obj <> endobj 38811 0 obj <> endobj 38812 0 obj <> endobj 38813 0 obj <> endobj 38814 0 obj <> endobj 38815 0 obj <> endobj 38816 0 obj <> endobj 38817 0 obj <> endobj 38818 0 obj <> endobj 38819 0 obj <> endobj 38820 0 obj <> endobj 38821 0 obj <> endobj 38822 0 obj <> endobj 38823 0 obj <> endobj 38824 0 obj <> endobj 38825 0 obj <> endobj 38826 0 obj <> endobj 38827 0 obj <> endobj 38828 0 obj <> endobj 38829 0 obj <> endobj 38830 0 obj <> endobj 38831 0 obj <> endobj 38832 0 obj <> endobj 38833 0 obj <> endobj 38834 0 obj <> endobj 38835 0 obj <> endobj 38836 0 obj <> endobj 38837 0 obj <> endobj 38838 0 obj <> endobj 38839 0 obj <> endobj 38840 0 obj <> endobj 38841 0 obj <> endobj 38842 0 obj <> endobj 38843 0 obj <> endobj 38844 0 obj <> endobj 38845 0 obj <> endobj 38846 0 obj <> endobj 38847 0 obj <> endobj 38848 0 obj <> endobj 38849 0 obj <> endobj 38850 0 obj <> endobj 38851 0 obj <> endobj 38852 0 obj <> endobj 38853 0 obj <> endobj 38854 0 obj <> endobj 38855 0 obj <> endobj 38856 0 obj <> endobj 38857 0 obj <> endobj 38858 0 obj <> endobj 38859 0 obj <> endobj 38860 0 obj <> endobj 38861 0 obj <> endobj 38862 0 obj <> endobj 38863 0 obj <> endobj 38864 0 obj <> endobj 38865 0 obj <> endobj 38866 0 obj <> endobj 38867 0 obj <> endobj 38868 0 obj <> endobj 38869 0 obj <> endobj 38870 0 obj <> endobj 38871 0 obj <> endobj 38872 0 obj <> endobj 38873 0 obj <> endobj 38874 0 obj <> endobj 38875 0 obj <> endobj 38876 0 obj <> endobj 38877 0 obj <> endobj 38878 0 obj <> endobj 38879 0 obj <> endobj 38880 0 obj <> endobj 38881 0 obj <> endobj 38882 0 obj <> endobj 38883 0 obj <> endobj 38884 0 obj <> endobj 38885 0 obj <> endobj 38886 0 obj <> endobj 38887 0 obj <> endobj 38888 0 obj <> endobj 38889 0 obj <> endobj 38890 0 obj <> endobj 38891 0 obj <> endobj 38892 0 obj <> endobj 38893 0 obj <> endobj 38894 0 obj <> endobj 38895 0 obj <> endobj 38896 0 obj <> endobj 38897 0 obj <> endobj 38898 0 obj <> endobj 38899 0 obj <> endobj 38900 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38901 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38902 0 obj <> endobj 38903 0 obj <> endobj 38904 0 obj <> endobj 38905 0 obj <> endobj 38906 0 obj <> endobj 38907 0 obj <> stream q /X1 Do Q q endstream endobj 38908 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38909 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38910 0 obj <> stream HWioF_ꢀ4'4-"Q6H-AYAc<>,?-%ѧؔřgAfC?Y[xҟdzT>eBSJ6 BI/2?ѻL%ԜRpLIbI,,1+,m^be{[*wʽr{{+} ܧ} ܧ} ܧ}g}g}}}}}} ܗ} ܫPZ-" Z+1fi ,Z1K{hĘܫZZ1 W ,Z1 WcpZkAk%XcpZkAk%,^ւJ,@k%,^ւJYj"rcv/{1KX`JYj{ZZ+{ZZ+1fVbZ+1fVbUkh VbUkhĘܫ:Z-"Z+1fi ,Z1K{hĘܫzZ1 W ,Z1 WcpZAk%XcpZAk%,^փJ,@k%,^փJYj"JAk%,^bZ+1ficpOR8nee珐!+V XJ-- 2J-,R ;֎YJ ^bZ*^bc1KiKY@KނKp:f)-{1 h[{N,@%,%1>-{r/1>-{r/1>-{r/1>-{r/1>-{r/1>-{r/1>|-{r/1>|-{r/1>V-{r/1>Vh-1KkI @KރK @KރK@KރK@KރK?ʽ-{r/1|Z*^bT=Ƚh{{֒hܧ e\$d=D!CYTn ㌲`m_%q.gz\OqzQ 8 vt57r6Mkze;?k܌c/e >NwŸ^Fd/~r..vsĖf=V ex"Ou;6{ǫۖΦz9^TOO͆5V3zћgs6f9 dǦpeԮCȨqjy5h&؅I |]͛ ,w/Wl*tqs[f9gTظHۉ]/n4aw$O8gpw{؄|xև;}DMhQ;vh#]1"'v\q~N/x۳jM{o>/7/',endstream endobj 38911 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38912 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38913 0 obj <> endobj 38914 0 obj <> stream q /X1 Do Q q endstream endobj 38915 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38916 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38917 0 obj <> stream HWmoܸ_A ز" W4]4=*^i$mEJ+(E>3O?|Eb/_]TD4'&H"y29O#Xo̰>ybr;s4_εR4*AP.wJ} P a< a<a=a=a=a/<a/< >'c }O=)>gc!3}<a/=a/=9>{Okֵi޵ Qk(k(kZצQ{O Qk(Zֵ Qk(ZֵiS-CTֵiS-CT4 a節!umBT4 a節!umTպ*j]F]պ6ٻ6ٻ6@!umTպ6B{j]պ6B{j]F!=rD Pj]F!=rDMj9Z(DMj9ZצQ{OQkֵi޵ Qk(k(kZצQ{OQk(Zֵ Qk(ZֵiS@TֵiS@T4 aV umBT4 aV umT+պ*Hպ6ٻ6@!umwmϣ<pY/~]@(%iE\W&'gTᣲN5UY{N>-ހs5b vd_eY~e^˗j5i^x*")ݻm;;-b}zs] (4‘AB('eWnj= paIî_]Qq7.i8JPQ29(>mvY0.:3*w]o &%y ƥh bOIڢR{bf*[U[E>뵓e$ %i;ӈ1Y,KxE2CS?w},aưAaeg#&pwRFnDbOrUVT۵ewMv d=uڎە*9sviOFnJiÝ*M{,IS>x@$OX˕]Z;1ZV\}lhjO8 ٨wՍzJG)$GTYĥL΄妪|@}S]gn39'-0x%#gs^tc&mߟj1vR~)̊mewna_ _T"Ji9:7= WIG44h+wnWC%Hpx\"hgy:'`f,0^s%2qŃ'Ej^!:(ܮْЗY\}*ug33y^< (? j~_*;P3`)X-Wߞe:m([6wd]J.0OcMȡxz=ل*bU[w]"O$rè}j;U74=޵Bߌ-?0$9)#sXr-3`Rv"?9 ĉґ*R:/}}EΦO'/p"28\ߪvOîy2|ڲ*Ec~؛usuգoT{Q"4q/2f|[LG7ŜZvk˭ Նۯ^ *<}o~_S@TNKܸuhrxѹ#{،zS^0OsEZPOΒ -x5L?%cĥWنG6)غle;?Py-̞7wZ{rJe7Mf1OmAQ +ɟ1xexTלt[%hv,j;Ȍ:݇`7%ko0s;&"xM)ny&h 68EFF/ P %)gnC1&a&Kx.75 Wɘp kN(a{cI/o/8Yn.qVm~ܖw3W,ᙗW9,#$el5Uo WpY+5ZݫZ5ہ`x {Ezaz.nF8f(ɲ8Nl")8yrdv Y^i (A@y 3kM@41$;>@*|y6<92ue{Igއfx*PLB<^f(b7ѲXnR \SąT!W666[%*Q*#&es< {}73[eDhf|`G9l4:4n8f$Ap_ȃ@mѡFmF vSWQY _s{ܥ>[# UĬ֮,㺂*i#YG7 Wvtuw MHoM.:K hPBRPrʪ+1;bؼ& jO\RaFƢk{t0UI"q}5,ڥ"8mVRo;$P\i1t8,a[/9$KOl xIW3օmN ]P|uhR>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38919 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38920 0 obj <> endobj 38921 0 obj <> endobj 38922 0 obj <> endobj 38923 0 obj <> endobj 38924 0 obj <> endobj 38925 0 obj <> endobj 38926 0 obj <> endobj 38927 0 obj <> endobj 38928 0 obj <> endobj 38929 0 obj <> endobj 38930 0 obj <> endobj 38931 0 obj <> endobj 38932 0 obj <> endobj 38933 0 obj <> stream q /X1 Do Q q endstream endobj 38934 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38935 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38936 0 obj <> stream HWoF~l/hTVn:J0`g}g)dfa]:^|wua7WV$Er%,łE\}D 튠.?*S壼j+u[zu&_"Dzb?xVWm+.hYnD(ZV4Q sU6Np3^ ҩHШF=?[k S:\ǪySj' FpHD4244݁^euY]>&h#SRzAq 68퍳qu7ן]x`1(!M'-Ͻbc!+eaemK 7.xc63vQ>2ON)g/ݧ8lV&Y701E]p(?cy~ܕβ.S&”$3־7I(|P˘,6edgM7+5[f6"6[NK~'y88f!b[sݝ验DjN%y3R;ǬIz1ZM~*D0fIŃ ED.pɢ(!!DG$3'&__>5skeC ;AZt//> dZRYQ:e( GɑO:O5 ANf.΂Zچ-] #:!Csv7RF]MGnώ[YNu{U͝FmhKZ.tdբB*+C[VBE]쁄Ϊksƒ6:?ܛ<@#:Qȍ\\< MoGֹSo23mLN#k^顙<wv,i.~;Ylbz-J9vcoԇYTů) sLҹ(B1p``̙r$!)ts {V[#8'CǪuKJYo_X^Cx&L>8׻L9iſ K߻wDoV.$rZ==d&[[| a7Acl@1LآY$L0'ⲩs8eS{m:0O7մYF>/}Z;`N$8>gKplQrQdc^?azb6;GmT>tGuMi> :Nf qǗ;< o>r']^QSTkŭcS90,:<0eI KbXSq%A9b0OGP#g.B0ǐ4 Y,p4 eQR)-p+lNîM0yp|KtWM1Yrwg?k Z*>ܽ\{ iCqX13N/}vD$t;AYdۜ+'_圽obBg(N!Թo#l|Υ=,C4^ue~ K4hE,f{<8N]dE} xw OQxLRi:489fOKw?i4rn8w>E bMp$(=ضiq +!v |IȤk/]޾ZV 0d8endstream endobj 38937 0 obj <>/P 1541 0 R/Type/Annot/A 43535 0 R/Subtype/Link/Rect[130.078995 539.020996 364.972992 673.916016]/Border[0 0 0]/H/N>> endobj 38938 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38939 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38940 0 obj <> endobj 38941 0 obj <> endobj 38942 0 obj <> stream q /X1 Do Q q endstream endobj 38943 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38944 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38945 0 obj <> stream HWmoԸ_S \űJt,E* $I¿>S d<~|>>}V ӗ?'W[ Eb#$ђƂTYRDD$:}&YSRKAnlA8Y_G:a mGWleAN XBx^W'OGLZ+7Y]m=lCMۢS"Jb) w_#c "T{y |?{F$RST2& `]F696XÙ H>Xaw>,C9V|휇} XQ/Q/Q/Q/Q/ Q Q1>Lj8P#@F@F@}O > '$Po&Po&Po6Pog9bZGq9Vǀ+Tc1`!1Bk}̱kZZs,D}Z QV 1`!1Bk}̱kZZs,D}Z QV }$c} Xk}̱B>XzZs,D}Z QV"1`!1Bk}̱k%ZZs,D}Z QV"1`!1Bk}̱k%ZG q9Vǀ+Tc1`!1BUk}̱kZZs,D}Z QV!1`!1BUk}̱kZZs,D}Z QV!}#1 c}̱^t YPDzZ>:[GkANבiaCdDǖdihB*.\qw^_1QX"v xnȫKB5rVy&L+Uc(.0+e^ Ը j7R.%mMcM7w0,NY&/ r-yxB9rXQ,fRɀ%9`e܊}۫7:22R10Vw 7r5kfEkHy}$pgpre!cLb<"؂c9ٗ"t˶]8}j9m<5 -]A@S;߲~5A3~32:ےpU'f?*rW_]vu6 d+ilKWo.+#ޔU+8-ba'Ab <~Ŋ& Jgݖ_tUdCcf{;)u6m (D>j8;C.T<ѐqmnŦ?r!*rƝ3%ĢEWX7pv*17uyI!v5e66c^nD Հ @4TngCJ8wu==qpƠVio b8mu HhKq̳C ᏻ+.rB:[pig)}C6j>blXhAcC6,Į!.]ca6Dt7v9dJ$6/pe ,2i= vِP^6m@X"h{i顇B  SQ(;#ɉw浥S엧٧FyFyE>2Z %XZa #aޖj3-j7+W##ՠ/gDq{Y@K52`Zj0wVe^5m4}RẢR y(>A>~ާ@ny ye՚"pV XaVXauVXaXa 5VhXfeiM\tMưj 7,X&^k,{r5qɽךރkM\erA&.2 Z`{{ LȽeYZcȽX&^k,r5q}ך>kM\er@&.2 Z`{ LȽX&r5qYr5q=kM\erO Z`ȽX&r5q=kM\erO Z`ȽX&r5q} r5qYr5qYVt1FJ|cwsl=Cn:cL}ūiy8mz4dMlݒ}a q=ViZg\W?gns߷i{']eK:'jh(+Ug-VMTS&t)C㰪e\_׫kЇOﯾTWPgs*endstream endobj 38946 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38947 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38948 0 obj <> endobj 38949 0 obj <> endobj 38950 0 obj <> endobj 38951 0 obj <> endobj 38952 0 obj <> endobj 38953 0 obj [0] endobj 38954 0 obj <>/ProcSet[/PDF/ImageB]/ExtGState<>>>/Subtype/Form/Filter/FlateDecode/BBox[250.625 179.761002 274.625 154.800995]/Matrix[1 0 0 1 0 0]>> stream H*w6PH/22ֳS 42ѳ4qML ̌L -M MM, Ls=s \ :Zendstream endobj 38955 0 obj <> endobj 38956 0 obj <> stream AdobedC   hd    157st "$2Aa!#%&'()*34689:BCDEFGHIJQRSTUVWXYZbcdefghijqruvwxyz?_􉌈+eѲI"]$+eѲI"]$+eѲI"]$+e$H". Pi|`h[`X#"1 h,+jʀun/f~Y_V$gI}[3(gQ%l8q E Y kL|!uiCȠ"1Yj,Z(FYQ)Lg8:L5P4j[GNdžjtP-$*yHPUU@T.H"D@#GiDɌxu,O,BV%6gऽB[<Xٟ+w'> ,b@q~P{ld8y.eV mwY`LE:_=7^kc)a  °^QEd s[倵@.'a"۸R_`C@)/vPP;w K(y%<›'|=!rpIkRbg0ƣU\Dc,"L_$H"D$@endstream endobj 38957 0 obj [/ICCBased 38958 0 R] endobj 38958 0 obj <> stream HV{PS?w$7\&. tk!@ .hZW붺]kG]wW:Fc묮uU;nD;|{s.B~vGu\}f jFӮb[͌&ǗƎۨ&MNSBXB\_BǮ=egN x1G-Bow3zcGIOIgj+_[ktpBg*Sy:ELFJYz%B dW ynӣ( ϲͪxw{g' &p:D io-~uBgXw4afK̈wG:ݺ/<ӭ u932TId!M/pFWkF]͍WvVwVN6@gәUtwE<4խZޕִJYw9K+N"1KO޺ <ރj]MfP穳 "b`F] w-n/rf7ʗ⯟a F* 浏=Hytz'3zc1b3i^Z&vUU7$TUS 6W}zR1b W^Sq8:H&Q?q_3Z^38FvuD{xGU!V~ڶWzbk'ylib8Q%ֈ1q$<@($qp+ q8dB~#Uew.x,ck-aeq^YPZ\Nw}\:P d8FA !Ȓ9FO$wbe=+߇ƿ!@PZh$ XF#;a'.C})IR! 4Ʌ rg4Ye#C#+""7G|jU4?Z6ᘈ7bzbv\Ūc[c{vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km Tendstream endobj 38959 0 obj <> endobj 38960 0 obj <> stream q /X1 Do Q q endstream endobj 38961 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38962 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38963 0 obj <> stream HWksJ_1["CU$ 66U@{l)Hrr~{Nu+>LOǴ߾b>{ձR V<, $+Ϯ<2uZgXe1u-Xyof]U; Yx&7$r:&dE:95]QdΊOSWwX)Er}|ԦBDذOKؐs }M?gK%*2xI4KI\N8W c.1` fYڅpc XP/P/PPPPP>pQG}H!>tGQ#G}D1>vDŽQG}Bw<+blIµ,W=ƀEcǘe1,µ,BZIcEw\+ b Xk1fYzǵp-,PVb̲k%ZYq$\1`ŘeJµ,BZIcOŘe1,µ,W=,U1`Ře*µ,BZEc"\1";Uk1fYzǵp-ƀEcEw\b̲kZp-,PVŘe*µxp-,U1`Ře1fYzp-,PVŘejµZYq&\1";Մk1,µ,BZMcEw\ b Xk1fYzǵp-,PV b̲\ZYcOx$bͽùL~ao26`ΥC c2qKmc8رNV|QgEΦ"T&[e.H2yFC 𹆎 SR](T})zu')]^ ߘE}-nvM|-."kv]ܱ;Úfa[kÖir=UEfb]b8  U7QU\I}zj&5 %Vq|H.*<xvw;b!ْADv {hcA#H)C!A!_צz\S 6iM8LKCT^!Esߗ8dod !BAK>7̫W5+Vlc*2,YgÚ+İb:ßd3/M]`Pr9iXZ6ɳ-rXdI("uއڑZڰ4_cJvVlYaEcܥ).6R Ca.SP0C|'C#_'Wf$(lQ0O:ONT5WPKG0D)alu Y۳YC֟_M7`wIжn!zt.ҼvsoҪ2˞ei`SKP/kwyP}o7o":ڶ%Ѭt`ƣ51JǣE5uT(&gݕ:D86%zf+~VC9nؙV(nr#D0lfl'|w>FkHF1;/6I<0e(NEp HkI&W ׾JFP!mPk!tUYirz^M$WZY3M(.otHv,o_vpA1>\7?;rrz.o`Fߤ7mM /EemwlUk6g< TL/e5Y1U4YL;oPKT61˷sCe(mW-^"_l?ۦMn ]͂͠7lI?nS jvggGώ@@3x*rƓ~:tT)ʧJQ{޽~ JpdUGb4_dk>[c{G{9;;z`dow١M`.3,A:̲[ *ge^;7mb/]Kȣ'ZE|<9%`vATnҦ ,ү]V_C;ƚ˶ sNjU0_[S-z&D?avه3%SjXV;x-i<0%G)JQ|_>y0%(}-+.bHm:[t/z{Q+bXeЋ凇:)R!*`|t =bKˆ#P:dR X=2b+ X$c Y06"=2dcU<^0ڹi0m_B?T1<;gzݶa{E= d^ 0`] ܇IhbJ-9v7J&EZ"c 7 擐E #/0FPf2pU/(^&,S]{sx+ + YxRYZps=cW]E_iof@< ]WP/oG8QfIn7]hA%/6P>NR%ܲR.^.R .{gQ RO ڃwY1mBCd]q`h# \4c8d8@Sdhyڵ rLJ99f?뵞s*Q8-@Pr' I Uh՗r_|m@ .sx"iEŠ,qz4|^8 ! ̓,6B5ImꎵX[#l㷣Ɯ"h}Sb<t(ԞC"["OUZ=Liq}T'UKtG1B irFP [6YaM=Ƀو>.Hp|ceն8C").JNlx$2IZi,m~'ev3 ڒ%]z?rһ[V~6WB0JTlݫ2F^k㷚 ;wuIQn"t3%(CF]4މY4/3o+]uoTu#-VH*7IEVF^})Q8.ZTi dК`F `L9P21_#/6'xYF#8ogmwLo}dus}u rFwJ0/]{r;vW2T)X#qΑݽ>TS/AȨ9 Nѣ⯉@\44v)^=2jYYXluz)5o_ cendstream endobj 38964 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38965 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38966 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38967 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38968 0 obj <> endobj 38969 0 obj <> endobj 38970 0 obj <> endobj 38971 0 obj <> endobj 38972 0 obj <> stream q /X1 Do Q q endstream endobj 38973 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38974 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38975 0 obj <> stream HWmo8_*$r CZZVN!)Y&'=zH>33W3L짟~{V~}by)XU\ 6wv qֲLw?Cihwlh_> 4fݖcf`f`MV5vFf5 = [^J6ݼ*CTWc)3:Ƙc" /dmJmQ TE6!`Vm"'jc6D B QDPml2I6!*eE6!*em"TEOT+ 6DJB Pjcj%؆(}ZI6PmlC>Q$TEOT+ 6@m"'jcj%ePmlCT>PmlCT>!*eE6!`Vm"'Ujc6D*B QDPml؆(}ZE6!`Vm"TEOT6D*B4؆}l؆}lCT 6q} 1^ȕaeiض7inlx|~.X6E!lqY66,؞`ןEs]s<ۡn׻ca~?6O0y]gˢc* BOĽU^ ~{Jmh1v)T3L'Lax T!ri+OC9<<EW<*p{"*/ #}kJ7o:/WhLIu^^̹٫!d~ԝS|Ԍ *k~8ӱݵxXۏvhc C֏9//6%]\7ov> AnjI6wËGt2E\j!|E{MyTeyshWI0+m0Pu @ S>[s!>Ynd_GFʹ bhAd PYM:H)s-jKA;!e'"_Gxï۹+.އzOWK:RkaUF =0w:ZGhU%[mrsy}=EjY͸my G(|:!`Q2.N޿4ΨKљ^3UfH҇*=r=y5"I+k&KrS}ك!rltJk',vXGE ,wdzH%n.A&Ο|ץEލRBkŷ2ݤvO h \&4Ra^xGw^RRDWSHIwy'hy\Q%4qK]9dE0JGK%p =V3YIXCaִQry P- }ˁ|σHM9B.,^2zi**Zfo*P)!Z术_˻wciuޠ<;5߄zX֘9OnW<%岤}j5MX9VkE]-݃WW nk(Z[v ReCi\n6>0NIݷjy7݈KfbQ7<\$I]A?+լۙމF\$ˇc'@88-pnDѲk msk@kצ8^p_ ?_J CZ&!\.HYw,v|^n*(OpU<1zAP?$rgurʮ,9 ̜Pmo ͐l}BQ^tq\4\CʁAc5,oa&E۝jS`x7"S(%j<!Imtzrp;zhm~MO158rEhC@q-";jpbV%P*B[Ry"Ƴ!qi>Վ c@Īwe0%KUpLJ#wF5"aOU~_ >uQbi8ta`7[o7naJtXӱc` P,.E''۩B`Ptէ6 9b9d1J44 9T`ܕ<3Mf"+Ghޤ[eqHL8RVs_ǿL+WJtrt"ųNVGʔ3=J>muRX>[]/2;˽>|{HF: @A )qXs@sާ(LRh6qP7̎oKq y NWZ h6Ű,јW*(4e,WPpY,fmkҿf\qhw0zds=uؙ1H2~I ؿ ;_Wְ|#^8!/h$CY m96i,66,[/noSqn ؏]G6дTJ\_9x){Z;iX|OeIdk`dxv Yc9C3*/vi+!.UF2G v'7s>׺EZ;ueQ8jDdnƬ#ې!b II%% US$9G1rKC q~joX&K} {tH%h AE.kk|[5QYw<[LseMq<_?l>;T됩pvc_29Ɠ<]wcpI ύS3>#en3_|G@O S0V"@6Zj%c(MP1(^p6M 5x: =pLj6c"c'[ NW27T<-,Uy]Jq˚03gIT(f#8Wi x6*Ka/y<wG$LUy>ZUq"Ab(J.[b3N`x>/P 945 0 R/Type/Annot/A 38977 0 R/Subtype/Link/Rect[93.5986023 243.628998 250.953995 263.308014]/Border[0 0 0]/H/N>> endobj 38977 0 obj <> endobj 38978 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38979 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38980 0 obj <> endobj 38981 0 obj <> endobj 38982 0 obj <> endobj 38983 0 obj <> endobj 38984 0 obj <> endobj 38985 0 obj <> endobj 38986 0 obj <> endobj 38987 0 obj <> stream HdN#G=ObusK\`f 2̂OJ>nw7hSާN/}z|:N˷~,_Wf;grus3]~~1/_OW׿uriߧt{;~~xy>ί?|>c?>^i>7`/a_v۫xf/Nڟ9!ol<4<2:6#ofofofofollFyK*[Uvd^9r$Gy> stream q /X1 Do Q q endstream endobj 38989 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38990 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38991 0 obj <> stream HWk6_~3G7ФLEcXd"c%N^-idD\wH^$!_m߈I $*4$KUuiDu56]KV\%1+\}\~kv;q_V$Rq]?i-]JREqg<ԟQBD6HPN Kȯ0g| R`$CTdG9E)<KD@1 1`1 g,P#@} 1"4+TcB\c1 f!rĵ>Yq qi>p-G\c\f!rĵ>Yq qi>p-G\c\!k}LB>,ĵ>YzӬP qi>p@\c\+f! ĵ>Yq qi>p@\c\+f! ĵ>Yq"4+TcB\c1 f!Jĵ>Yq qi>pD\c\+f!Jĵ>Yq qi>pD\c\+!Rk}LB>,ĵ>YzӬP}A$fuެFۨ0hJRSAև(gVӦ&ߕSMw߭֟}!tݽF%|rl6#9/ۮ7Hܭ٣r4>$ZMEνrt>oWW$0˯c[oy@9Mb;^T@E+kfe8af3a$؟ب_1ECu/.O"xE~{nڡCy5yt==#hƱx~5yH͊,?)w-WIܵYOyJY Go5$< AJ G4Y4V>D#^ 6:h<Ƥݚ|58cy+X rG´ze]I zRAc&VDAJOYNᎸΈ4pBE e!^ ~.4IXyflʽ>V){:m7oxy|8Œn0A˦y9l0st?ϋI.TFăj*e@TҙUG9atEAViI'{ M+FhFHKg",$BzzQr^f3ge|c/durP/͕fst`nXEY$jɯO`?/î{lFZUB0nfV2rh2s6`N`}9Ї+iNlWŤb7}7יWKgrxu{=WUkg{L2|{-5뀧p奼Iz"Ӌ e~jΘ*`lI}Ppb?\?7|[`?[{5qye;wxӝ\{FYن#~ 2oDKF'XNٴs*v~cېfsˆw ^5\O?`fI =oL Ofb쳭1ztyIeǮk% O2 {*K\G_lBarC@7.pI}&b0iPV{i)g 6O8.7%9s1[8t9]Ce;c 5[.}4LtzLʶ:ۗ|Xvi2eby*8{aMEꊪˋf٦5ez>۹-?9`ؕWێ6}߯0oE7(܀ v@Y%ÒIO)p.24-Xm\Ͳ$z|`6GBSBg|o$ Y:,*6vܗ+[)WmR{yh?:[[ks4vOmvF6o71քJ0i畵TS{{m^OU`紃sVSۊך?Wb?1mK/>pL$J1.+/i rCW.<{r.pI-h% _`o=7UMG?ۓNQ`J$4ň_GN f,oj[P[0(R. BM6ikYL[ ;AP;]T1ORrKb8iZ^* ?2\N;4CCG>p9zZs g513gik8SwĔ尝rV<dŏ*f](NG)4PbVp"͋$͊djf$-XnzU"DL2R+8(S&A%ot@='S]D 'jWܶAvp,;յ1T&BMs( " f:Pl˜TY@"ՔL 2bpeW3DU aTPNGH^tm0]j Yz8&R)1ўtdEe@HI>=0.4Cꯜ.5b>p6]c;>cmfנdkR&@6p쩹 ɻ9g@kQGo܊ V kY ZC&lr )205Gˀ BrF}ߑTIZ"ZBU:=nt΃7= SܲIui[鹱|K|;8 p?&̻}./To2ԑ]yRew[WPgx[P{pj׸msB R>J=[?/AŒp ȰJF8{7wQ%4å#.p+e҈+e҈+c+c+g+g``dʈdJ%1!*>@ KD\dd%H P%{{C^2>D1\%{C^2>D1\%{C^2>D1\{CTE}btO}b"+Fԇ(+ҽbtO}b"+Fԇ(+ҽbtO}b"+Fԇ(+ҽbtO}b"+Fԇ(+ҽbtO}b"kFԇpE׌Q W{pE׌Q W{pE׌Q W{pE׌Q W{pEOSb.{CTU&hSL؟Ϛl iQm:d.;~G&H¶$` ``\˴g\<9awidW]uhV <_Wq^$ùJrO\x:-3W"Sɚxlx e/Sshd;۷O^x)E<`oW)Aendstream endobj 38992 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 38993 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 38994 0 obj <> stream q /X1 Do Q q endstream endobj 38995 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 38996 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 38997 0 obj <> stream HWkolVp ؛DڦάĕM`|98f-׷5\UB"0)53^V2gUm$4٪c%؜Ul;|l7'WKfRdM>TpX;ME00!M-:x|Aͤ`GLi T-_Lpv ~gVeki.e\ϰ`RL1!2PjCT.JeT]|j$ˌ$ˌ"ث"ث"ث&댽&댽!؛!؛!؛%ی%ی#ػ#ػ#ػ''} ؇} ghS۲jSr PjSr Q9(B QLPmjC>S$TE6!`VMm"gjSզ6D3JB QLPmjԆ(}ZI6!`VMmJMm٧6@Mm٧6DSզ6D3*B QLPmjԆ(}ZE6!`VMm"TETզ6D3*B PjSjԆ(}ZE6-+M6!*gE6!*gOm"TET զ6D3jB PjSj5Ԇ(}ZM6PmjC>S&TET զ6@Mm"gՄjSj5Զ Ԇ}jԆ}jCT>!8wϧefRLl3!Cmu`\VO>6y~5 b7S#?_|cW7 ^uCwD*W+]:wl袻WZ3k>7(eWs?\p~gb(yaÜ C0T jC C0QgVC|}d0Mz4̞͆AOق%f:K&OɚډZ~(ɏW\GGBv)3j;xRJtz]:]0 06\=DȎ^=>NnoW?hK]vHZ8yg`3c2XϠs3 vfB10_x\zOM,|BKV2sv!4:UɏR06à m`ii/Y٬Q-rxj"tRgS~`%׃mmkfD$\häDߵI/,eˬ:Cvm#abhƐ!g7Dk'?%5Yڃ?ozla+W?_?nf˘A(k_v=88LVeRprY:]ڽI xV55;57Mءn t >&'ZhkhTk´>6OmNa8ن2m^oKÎiPԪ5M(\TR گv7?vx k֥%5 "!;ᦘ#[SFlEZ9T$qIh-f/5˗/pႸ?Wbt7߽. 2"V N:toߕy3A̛=xi<9[q;Û9xqފP*ǔG;up7y:˝Y4Msx͕ )ޤ;_צvJoRMn73(Og/8dM>+'k0ů]uUƁCyt 7 ~ 7CҠG4"H<84|Fͬ >pʶWLRЬsqlg&Y+ϔ99iȞܠ, m4HoKJUm &%.dn!oqB\Zr>pT:)!ΑzR1P^P˞c\Ԁg.k!twVp|'ǧ.?7}fiJ{4{Y0v/j!2ṝ/QGCQߟlMe ]/qs4J&ԢEj.E'W_"M8Jy-kx\ζ3sA?No'wQ"Bd<ρs\XVEӔ>S9oP9]..:: T,-ݏh3@YI4G2Nܠk~t8{?Lǥ$@dq:ps#T1GX= <2V;qB^md'N/%q1ȁ|Onbw7ǛwST^13"8 z6d:viM+@{PsOzqл ,f8aqmc [׀-+%h}̺EG>|" s2?"9n/k^/"]wfZpR;C(ü:rT48ɻ)lU{!&0|:@G`) or;R*ءY8;xZ\Z%i6leڰQڵMe? 5oɩc')i2TiUrT,g$&h2PiM[.;=I+L.ʆ23l(> 0*Q&u PnzU`PCՇ⨆sPA!խ5& O3]U%*Kbk3QE=;9SQ[j'N wڟٌh׮6A$`;Gʱ>acs ; !Uݛ-qGWK3x;VA9Ae]?w?O9tZ=F_Iy <Բ?+iIэf {N"}t}1:M̞Kg߫A4UrXm^H.4B~rxVB&[T#fIQe4t4b]LYDip7w/)VBԣvrU@~W Ubu:`6sc˧w C'7LL3mL!=M'[\]uve8c S1J,LuTW'Z4OJHX8|t/. A~ԤOuӊDMm\#(V*G*'Yiڒ4Y' M",{J:E܇~RTsP2Oȹ_X}x9j4(I)ڹlf66zB+>, ֗ۻ܃gy/ۦU~ؖn߽z\6N륜or4Xe!0ŷeQ] IWI'lg^ɱؒ YV7g/`-endstream endobj 38998 0 obj <>/P 2636 0 R/Type/Annot/A 43976 0 R/Subtype/Link/Rect[222 670 236 677]/Border[0 0 0]/H/N>> endobj 38999 0 obj <>/P 2636 0 R/Type/Annot/A 44794 0 R/Subtype/Link/Rect[238 670 252 677]/Border[0 0 0]/H/N>> endobj 39000 0 obj <>/P 2636 0 R/Type/Annot/A 43460 0 R/Subtype/Link/Rect[254 670 266 677]/Border[0 0 0]/H/N>> endobj 39001 0 obj <>/P 2636 0 R/Type/Annot/A 39332 0 R/Subtype/Link/Rect[190 660 202 667]/Border[0 0 0]/H/N>> endobj 39002 0 obj <>/P 2636 0 R/Type/Annot/A 43385 0 R/Subtype/Link/Rect[222 650 236 657]/Border[0 0 0]/H/N>> endobj 39003 0 obj <>/P 2636 0 R/Type/Annot/A 39325 0 R/Subtype/Link/Rect[238 650 252 657]/Border[0 0 0]/H/N>> endobj 39004 0 obj <>/P 2636 0 R/Type/Annot/A 39322 0 R/Subtype/Link/Rect[254 650 266 657]/Border[0 0 0]/H/N>> endobj 39005 0 obj <>/P 2636 0 R/Type/Annot/A 43259 0 R/Subtype/Link/Rect[190 640 202 647]/Border[0 0 0]/H/N>> endobj 39006 0 obj <>/P 2636 0 R/Type/Annot/A 39304 0 R/Subtype/Link/Rect[222 630 236 637]/Border[0 0 0]/H/N>> endobj 39007 0 obj <>/P 2636 0 R/Type/Annot/A 39294 0 R/Subtype/Link/Rect[238 630 252 637]/Border[0 0 0]/H/N>> endobj 39008 0 obj <>/P 2636 0 R/Type/Annot/A 43601 0 R/Subtype/Link/Rect[254 630 266 637]/Border[0 0 0]/H/N>> endobj 39009 0 obj <>/P 2636 0 R/Type/Annot/A 43109 0 R/Subtype/Link/Rect[190 620 202 627]/Border[0 0 0]/H/N>> endobj 39010 0 obj <>/P 2636 0 R/Type/Annot/A 44360 0 R/Subtype/Link/Rect[222 610 236 617]/Border[0 0 0]/H/N>> endobj 39011 0 obj <>/P 2636 0 R/Type/Annot/A 43922 0 R/Subtype/Link/Rect[238 610 252 617]/Border[0 0 0]/H/N>> endobj 39012 0 obj <>/P 2636 0 R/Type/Annot/A 44699 0 R/Subtype/Link/Rect[254 610 266 617]/Border[0 0 0]/H/N>> endobj 39013 0 obj <>/P 2636 0 R/Type/Annot/A 43417 0 R/Subtype/Link/Rect[190 600 202 607]/Border[0 0 0]/H/N>> endobj 39014 0 obj <>/P 2636 0 R/Type/Annot/A 43802 0 R/Subtype/Link/Rect[208 590 218 597]/Border[0 0 0]/H/N>> endobj 39015 0 obj <>/P 2636 0 R/Type/Annot/A 39315 0 R/Subtype/Link/Rect[220 590 236 598]/Border[0 0 0]/H/N>> endobj 39016 0 obj <>/P 2636 0 R/Type/Annot/A 42851 0 R/Subtype/Link/Rect[237 590 251 597]/Border[0 0 0]/H/N>> endobj 39017 0 obj <>/P 2636 0 R/Type/Annot/A 43234 0 R/Subtype/Link/Rect[253 590 265 597]/Border[0 0 0]/H/N>> endobj 39018 0 obj <>/P 2636 0 R/Type/Annot/A 42765 0 R/Subtype/Link/Rect[207 580 220 588]/Border[0 0 0]/H/N>> endobj 39019 0 obj <>/P 2636 0 R/Type/Annot/A 39342 0 R/Subtype/Link/Rect[221 580 229 587]/Border[0 0 0]/H/N>> endobj 39020 0 obj <>/P 2636 0 R/Type/Annot/A 39336 0 R/Subtype/Link/Rect[255 570 265 577]/Border[0 0 0]/H/N>> endobj 39021 0 obj <>/P 2636 0 R/Type/Annot/A 42669 0 R/Subtype/Link/Rect[267 570 275 577]/Border[0 0 0]/H/N>> endobj 39022 0 obj <>/P 2636 0 R/Type/Annot/A 42619 0 R/Subtype/Link/Rect[207 560 220 568]/Border[0 0 0]/H/N>> endobj 39023 0 obj <>/P 2636 0 R/Type/Annot/A 39326 0 R/Subtype/Link/Rect[221 560 229 567]/Border[0 0 0]/H/N>> endobj 39024 0 obj <>/P 2636 0 R/Type/Annot/A 42559 0 R/Subtype/Link/Rect[207 550 220 558]/Border[0 0 0]/H/N>> endobj 39025 0 obj <>/P 2636 0 R/Type/Annot/A 44583 0 R/Subtype/Link/Rect[221 550 229 557]/Border[0 0 0]/H/N>> endobj 39026 0 obj <>/P 2636 0 R/Type/Annot/A 42476 0 R/Subtype/Link/Rect[193 540 199 547]/Border[0 0 0]/H/N>> endobj 39027 0 obj <>/P 2636 0 R/Type/Annot/A 43266 0 R/Subtype/Link/Rect[201 540 215 547]/Border[0 0 0]/H/N>> endobj 39028 0 obj <>/P 2636 0 R/Type/Annot/A 44058 0 R/Subtype/Link/Rect[217 540 233 548]/Border[0 0 0]/H/N>> endobj 39029 0 obj <>/P 2636 0 R/Type/Annot/A 44025 0 R/Subtype/Link/Rect[234 540 248 547]/Border[0 0 0]/H/N>> endobj 39030 0 obj <>/P 2636 0 R/Type/Annot/A 43144 0 R/Subtype/Link/Rect[250 540 264 547]/Border[0 0 0]/H/N>> endobj 39031 0 obj <>/P 2636 0 R/Type/Annot/A 39330 0 R/Subtype/Link/Rect[266 540 280 547]/Border[0 0 0]/H/N>> endobj 39032 0 obj <>/P 2636 0 R/Type/Annot/A 43889 0 R/Subtype/Link/Rect[282 540 296 547]/Border[0 0 0]/H/N>> endobj 39033 0 obj <>/P 2636 0 R/Type/Annot/A 42611 0 R/Subtype/Link/Rect[151 530 165 537]/Border[0 0 0]/H/N>> endobj 39034 0 obj <>/P 2636 0 R/Type/Annot/A 39312 0 R/Subtype/Link/Rect[167 530 181 537]/Border[0 0 0]/H/N>> endobj 39035 0 obj <>/P 2636 0 R/Type/Annot/A 43369 0 R/Subtype/Link/Rect[183 530 195 537]/Border[0 0 0]/H/N>> endobj 39036 0 obj <>/P 2636 0 R/Type/Annot/A 39292 0 R/Subtype/Link/Rect[190 520 202 527]/Border[0 0 0]/H/N>> endobj 39037 0 obj <>/P 2636 0 R/Type/Annot/A 39282 0 R/Subtype/Link/Rect[167 510 179 517]/Border[0 0 0]/H/N>> endobj 39038 0 obj <>/P 2636 0 R/Type/Annot/A 39337 0 R/Subtype/Link/Rect[212 500 222 507]/Border[0 0 0]/H/N>> endobj 39039 0 obj <>/P 2636 0 R/Type/Annot/A 41952 0 R/Subtype/Link/Rect[224 500 234 507]/Border[0 0 0]/H/N>> endobj 39040 0 obj <>/P 2636 0 R/Type/Annot/A 39329 0 R/Subtype/Link/Rect[236 500 246 507]/Border[0 0 0]/H/N>> endobj 39041 0 obj <>/P 2636 0 R/Type/Annot/A 41868 0 R/Subtype/Link/Rect[248 500 260 507]/Border[0 0 0]/H/N>> endobj 39042 0 obj <>/P 2636 0 R/Type/Annot/A 39319 0 R/Subtype/Link/Rect[193 490 209 498]/Border[0 0 0]/H/N>> endobj 39043 0 obj <>/P 2636 0 R/Type/Annot/A 43005 0 R/Subtype/Link/Rect[210 490 224 497]/Border[0 0 0]/H/N>> endobj 39044 0 obj <>/P 2636 0 R/Type/Annot/A 39299 0 R/Subtype/Link/Rect[226 490 240 497]/Border[0 0 0]/H/N>> endobj 39045 0 obj <>/P 2636 0 R/Type/Annot/A 39288 0 R/Subtype/Link/Rect[242 490 256 497]/Border[0 0 0]/H/N>> endobj 39046 0 obj <>/P 2636 0 R/Type/Annot/A 39339 0 R/Subtype/Link/Rect[258 490 272 497]/Border[0 0 0]/H/N>> endobj 39047 0 obj <>/P 2636 0 R/Type/Annot/A 39334 0 R/Subtype/Link/Rect[274 490 288 497]/Border[0 0 0]/H/N>> endobj 39048 0 obj <>/P 2636 0 R/Type/Annot/A 42424 0 R/Subtype/Link/Rect[290 490 304 497]/Border[0 0 0]/H/N>> endobj 39049 0 obj <>/P 2636 0 R/Type/Annot/A 43966 0 R/Subtype/Link/Rect[151 480 165 487]/Border[0 0 0]/H/N>> endobj 39050 0 obj <>/P 2636 0 R/Type/Annot/A 42360 0 R/Subtype/Link/Rect[167 480 179 487]/Border[0 0 0]/H/N>> endobj 39051 0 obj <>/P 2636 0 R/Type/Annot/A 44625 0 R/Subtype/Link/Rect[190 470 202 477]/Border[0 0 0]/H/N>> endobj 39052 0 obj <>/P 2636 0 R/Type/Annot/A 44203 0 R/Subtype/Link/Rect[194 460 207 468]/Border[0 0 0]/H/N>> endobj 39053 0 obj <>/P 2636 0 R/Type/Annot/A 39343 0 R/Subtype/Link/Rect[207 460 221 467]/Border[0 0 0]/H/N>> endobj 39054 0 obj <>/P 2636 0 R/Type/Annot/A 42581 0 R/Subtype/Link/Rect[223 460 235 467]/Border[0 0 0]/H/N>> endobj 39055 0 obj <>/P 2636 0 R/Type/Annot/A 39335 0 R/Subtype/Link/Rect[193 450 203 457]/Border[0 0 0]/H/N>> endobj 39056 0 obj <>/P 2636 0 R/Type/Annot/A 42870 0 R/Subtype/Link/Rect[205 450 221 458]/Border[0 0 0]/H/N>> endobj 39057 0 obj <>/P 2636 0 R/Type/Annot/A 39327 0 R/Subtype/Link/Rect[222 450 236 457]/Border[0 0 0]/H/N>> endobj 39058 0 obj <>/P 2636 0 R/Type/Annot/A 42789 0 R/Subtype/Link/Rect[238 450 254 458]/Border[0 0 0]/H/N>> endobj 39059 0 obj <>/P 2636 0 R/Type/Annot/A 39313 0 R/Subtype/Link/Rect[255 450 269 457]/Border[0 0 0]/H/N>> endobj 39060 0 obj <>/P 2636 0 R/Type/Annot/A 39302 0 R/Subtype/Link/Rect[271 450 285 457]/Border[0 0 0]/H/N>> endobj 39061 0 obj <>/P 2636 0 R/Type/Annot/A 41430 0 R/Subtype/Link/Rect[287 450 301 457]/Border[0 0 0]/H/N>> endobj 39062 0 obj <>/P 2636 0 R/Type/Annot/A 41832 0 R/Subtype/Link/Rect[151 440 165 447]/Border[0 0 0]/H/N>> endobj 39063 0 obj <>/P 2636 0 R/Type/Annot/A 42199 0 R/Subtype/Link/Rect[167 440 181 447]/Border[0 0 0]/H/N>> endobj 39064 0 obj <>/P 2636 0 R/Type/Annot/A 43680 0 R/Subtype/Link/Rect[183 440 197 447]/Border[0 0 0]/H/N>> endobj 39065 0 obj <>/P 2636 0 R/Type/Annot/A 44694 0 R/Subtype/Link/Rect[199 440 211 447]/Border[0 0 0]/H/N>> endobj 39066 0 obj <>/P 2636 0 R/Type/Annot/A 43178 0 R/Subtype/Link/Rect[190 430 202 437]/Border[0 0 0]/H/N>> endobj 39067 0 obj <>/P 2636 0 R/Type/Annot/A 42772 0 R/Subtype/Link/Rect[198 420 212 427]/Border[0 0 0]/H/N>> endobj 39068 0 obj <>/P 2636 0 R/Type/Annot/A 43107 0 R/Subtype/Link/Rect[214 420 228 427]/Border[0 0 0]/H/N>> endobj 39069 0 obj <>/P 2636 0 R/Type/Annot/A 39284 0 R/Subtype/Link/Rect[230 420 244 427]/Border[0 0 0]/H/N>> endobj 39070 0 obj <>/P 2636 0 R/Type/Annot/A 39480 0 R/Subtype/Link/Rect[246 420 258 427]/Border[0 0 0]/H/N>> endobj 39071 0 obj <>/P 2636 0 R/Type/Annot/A 39479 0 R/Subtype/Link/Rect[212 410 226 417]/Border[0 0 0]/H/N>> endobj 39072 0 obj <>/P 2636 0 R/Type/Annot/A 39478 0 R/Subtype/Link/Rect[228 410 240 417]/Border[0 0 0]/H/N>> endobj 39073 0 obj <>/P 2636 0 R/Type/Annot/A 39477 0 R/Subtype/Link/Rect[203 400 217 407]/Border[0 0 0]/H/N>> endobj 39074 0 obj <>/P 2636 0 R/Type/Annot/A 39476 0 R/Subtype/Link/Rect[219 400 231 407]/Border[0 0 0]/H/N>> endobj 39075 0 obj <>/P 2636 0 R/Type/Annot/A 39475 0 R/Subtype/Link/Rect[231 380 243 387]/Border[0 0 0]/H/N>> endobj 39076 0 obj <>/P 2636 0 R/Type/Annot/A 39474 0 R/Subtype/Link/Rect[217 370 229 377]/Border[0 0 0]/H/N>> endobj 39077 0 obj <>/P 2636 0 R/Type/Annot/A 39473 0 R/Subtype/Link/Rect[217 360 229 367]/Border[0 0 0]/H/N>> endobj 39078 0 obj <>/P 2636 0 R/Type/Annot/A 39472 0 R/Subtype/Link/Rect[217 350 229 357]/Border[0 0 0]/H/N>> endobj 39079 0 obj <>/P 2636 0 R/Type/Annot/A 39471 0 R/Subtype/Link/Rect[222 340 234 347]/Border[0 0 0]/H/N>> endobj 39080 0 obj <>/P 2636 0 R/Type/Annot/A 39470 0 R/Subtype/Link/Rect[222 330 234 338]/Border[0 0 0]/H/N>> endobj 39081 0 obj <>/P 2636 0 R/Type/Annot/A 39469 0 R/Subtype/Link/Rect[207 320 219 328]/Border[0 0 0]/H/N>> endobj 39082 0 obj <>/P 2636 0 R/Type/Annot/A 39468 0 R/Subtype/Link/Rect[207 310 219 318]/Border[0 0 0]/H/N>> endobj 39083 0 obj <>/P 2636 0 R/Type/Annot/A 39467 0 R/Subtype/Link/Rect[190 300 202 308]/Border[0 0 0]/H/N>> endobj 39084 0 obj <>/P 2636 0 R/Type/Annot/A 39466 0 R/Subtype/Link/Rect[207 290 224 298]/Border[0 0 0]/H/N>> endobj 39085 0 obj <>/P 2636 0 R/Type/Annot/A 39465 0 R/Subtype/Link/Rect[225 290 239 298]/Border[0 0 0]/H/N>> endobj 39086 0 obj <>/P 2636 0 R/Type/Annot/A 39464 0 R/Subtype/Link/Rect[241 290 257 298]/Border[0 0 0]/H/N>> endobj 39087 0 obj <>/P 2636 0 R/Type/Annot/A 39463 0 R/Subtype/Link/Rect[258 290 270 298]/Border[0 0 0]/H/N>> endobj 39088 0 obj <>/P 2636 0 R/Type/Annot/A 39462 0 R/Subtype/Link/Rect[190 280 202 288]/Border[0 0 0]/H/N>> endobj 39089 0 obj <>/P 2636 0 R/Type/Annot/A 39461 0 R/Subtype/Link/Rect[207 270 224 278]/Border[0 0 0]/H/N>> endobj 39090 0 obj <>/P 2636 0 R/Type/Annot/A 39460 0 R/Subtype/Link/Rect[225 270 239 278]/Border[0 0 0]/H/N>> endobj 39091 0 obj <>/P 2636 0 R/Type/Annot/A 39459 0 R/Subtype/Link/Rect[241 270 255 278]/Border[0 0 0]/H/N>> endobj 39092 0 obj <>/P 2636 0 R/Type/Annot/A 39458 0 R/Subtype/Link/Rect[257 270 271 278]/Border[0 0 0]/H/N>> endobj 39093 0 obj <>/P 2636 0 R/Type/Annot/A 39457 0 R/Subtype/Link/Rect[273 270 287 278]/Border[0 0 0]/H/N>> endobj 39094 0 obj <>/P 2636 0 R/Type/Annot/A 39456 0 R/Subtype/Link/Rect[289 270 301 278]/Border[0 0 0]/H/N>> endobj 39095 0 obj <>/P 2636 0 R/Type/Annot/A 39455 0 R/Subtype/Link/Rect[190 260 204 268]/Border[0 0 0]/H/N>> endobj 39096 0 obj <>/P 2636 0 R/Type/Annot/A 39454 0 R/Subtype/Link/Rect[206 260 218 268]/Border[0 0 0]/H/N>> endobj 39097 0 obj <>/P 2636 0 R/Type/Annot/A 39453 0 R/Subtype/Link/Rect[217 250 231 258]/Border[0 0 0]/H/N>> endobj 39098 0 obj <>/P 2636 0 R/Type/Annot/A 39452 0 R/Subtype/Link/Rect[233 250 247 258]/Border[0 0 0]/H/N>> endobj 39099 0 obj <>/P 2636 0 R/Type/Annot/A 39451 0 R/Subtype/Link/Rect[249 250 261 258]/Border[0 0 0]/H/N>> endobj 39100 0 obj <>/P 2636 0 R/Type/Annot/A 39450 0 R/Subtype/Link/Rect[190 240 202 248]/Border[0 0 0]/H/N>> endobj 39101 0 obj <>/P 2636 0 R/Type/Annot/A 39449 0 R/Subtype/Link/Rect[226 230 243 238]/Border[0 0 0]/H/N>> endobj 39102 0 obj <>/P 2636 0 R/Type/Annot/A 39448 0 R/Subtype/Link/Rect[244 230 258 238]/Border[0 0 0]/H/N>> endobj 39103 0 obj <>/P 2636 0 R/Type/Annot/A 39447 0 R/Subtype/Link/Rect[260 230 272 238]/Border[0 0 0]/H/N>> endobj 39104 0 obj <>/P 2636 0 R/Type/Annot/A 39446 0 R/Subtype/Link/Rect[190 220 202 228]/Border[0 0 0]/H/N>> endobj 39105 0 obj <>/P 2636 0 R/Type/Annot/A 39445 0 R/Subtype/Link/Rect[236 210 250 218]/Border[0 0 0]/H/N>> endobj 39106 0 obj <>/P 2636 0 R/Type/Annot/A 39444 0 R/Subtype/Link/Rect[252 210 266 218]/Border[0 0 0]/H/N>> endobj 39107 0 obj <>/P 2636 0 R/Type/Annot/A 39443 0 R/Subtype/Link/Rect[268 210 280 218]/Border[0 0 0]/H/N>> endobj 39108 0 obj <>/P 2636 0 R/Type/Annot/A 39442 0 R/Subtype/Link/Rect[190 200 202 208]/Border[0 0 0]/H/N>> endobj 39109 0 obj <>/P 2636 0 R/Type/Annot/A 39441 0 R/Subtype/Link/Rect[217 190 231 198]/Border[0 0 0]/H/N>> endobj 39110 0 obj <>/P 2636 0 R/Type/Annot/A 39440 0 R/Subtype/Link/Rect[233 190 245 198]/Border[0 0 0]/H/N>> endobj 39111 0 obj <>/P 2636 0 R/Type/Annot/A 39439 0 R/Subtype/Link/Rect[190 180 202 188]/Border[0 0 0]/H/N>> endobj 39112 0 obj <>/P 2636 0 R/Type/Annot/A 39438 0 R/Subtype/Link/Rect[205 170 222 178]/Border[0 0 0]/H/N>> endobj 39113 0 obj <>/P 2636 0 R/Type/Annot/A 39437 0 R/Subtype/Link/Rect[223 170 237 178]/Border[0 0 0]/H/N>> endobj 39114 0 obj <>/P 2636 0 R/Type/Annot/A 39436 0 R/Subtype/Link/Rect[239 170 255 178]/Border[0 0 0]/H/N>> endobj 39115 0 obj <>/P 2636 0 R/Type/Annot/A 39435 0 R/Subtype/Link/Rect[256 170 268 178]/Border[0 0 0]/H/N>> endobj 39116 0 obj <>/P 2636 0 R/Type/Annot/A 39434 0 R/Subtype/Link/Rect[231 160 245 168]/Border[0 0 0]/H/N>> endobj 39117 0 obj <>/P 2636 0 R/Type/Annot/A 39433 0 R/Subtype/Link/Rect[247 160 261 168]/Border[0 0 0]/H/N>> endobj 39118 0 obj <>/P 2636 0 R/Type/Annot/A 39432 0 R/Subtype/Link/Rect[263 160 275 168]/Border[0 0 0]/H/N>> endobj 39119 0 obj <>/P 2636 0 R/Type/Annot/A 39431 0 R/Subtype/Link/Rect[190 150 202 158]/Border[0 0 0]/H/N>> endobj 39120 0 obj <>/P 2636 0 R/Type/Annot/A 39430 0 R/Subtype/Link/Rect[406 670 420 677]/Border[0 0 0]/H/N>> endobj 39121 0 obj <>/P 2636 0 R/Type/Annot/A 39429 0 R/Subtype/Link/Rect[422 670 436 677]/Border[0 0 0]/H/N>> endobj 39122 0 obj <>/P 2636 0 R/Type/Annot/A 39428 0 R/Subtype/Link/Rect[438 670 450 677]/Border[0 0 0]/H/N>> endobj 39123 0 obj <>/P 2636 0 R/Type/Annot/A 39427 0 R/Subtype/Link/Rect[401 660 413 668]/Border[0 0 0]/H/N>> endobj 39124 0 obj <>/P 2636 0 R/Type/Annot/A 39426 0 R/Subtype/Link/Rect[414 660 422 667]/Border[0 0 0]/H/N>> endobj 39125 0 obj <>/P 2636 0 R/Type/Annot/A 39425 0 R/Subtype/Link/Rect[377 650 387 657]/Border[0 0 0]/H/N>> endobj 39126 0 obj <>/P 2636 0 R/Type/Annot/A 39424 0 R/Subtype/Link/Rect[389 650 402 658]/Border[0 0 0]/H/N>> endobj 39127 0 obj <>/P 2636 0 R/Type/Annot/A 39423 0 R/Subtype/Link/Rect[402 650 412 657]/Border[0 0 0]/H/N>> endobj 39128 0 obj <>/P 2636 0 R/Type/Annot/A 39422 0 R/Subtype/Link/Rect[414 650 424 657]/Border[0 0 0]/H/N>> endobj 39129 0 obj <>/P 2636 0 R/Type/Annot/A 39421 0 R/Subtype/Link/Rect[426 650 436 657]/Border[0 0 0]/H/N>> endobj 39130 0 obj <>/P 2636 0 R/Type/Annot/A 39420 0 R/Subtype/Link/Rect[438 650 452 657]/Border[0 0 0]/H/N>> endobj 39131 0 obj <>/P 2636 0 R/Type/Annot/A 39419 0 R/Subtype/Link/Rect[454 650 466 657]/Border[0 0 0]/H/N>> endobj 39132 0 obj <>/P 2636 0 R/Type/Annot/A 39418 0 R/Subtype/Link/Rect[434 640 446 647]/Border[0 0 0]/H/N>> endobj 39133 0 obj <>/P 2636 0 R/Type/Annot/A 39417 0 R/Subtype/Link/Rect[398 630 410 637]/Border[0 0 0]/H/N>> endobj 39134 0 obj <>/P 2636 0 R/Type/Annot/A 39416 0 R/Subtype/Link/Rect[439 620 456 628]/Border[0 0 0]/H/N>> endobj 39135 0 obj <>/P 2636 0 R/Type/Annot/A 39415 0 R/Subtype/Link/Rect[456 620 470 627]/Border[0 0 0]/H/N>> endobj 39136 0 obj <>/P 2636 0 R/Type/Annot/A 39414 0 R/Subtype/Link/Rect[472 620 486 627]/Border[0 0 0]/H/N>> endobj 39137 0 obj <>/P 2636 0 R/Type/Annot/A 39413 0 R/Subtype/Link/Rect[488 620 502 627]/Border[0 0 0]/H/N>> endobj 39138 0 obj <>/P 2636 0 R/Type/Annot/A 39412 0 R/Subtype/Link/Rect[504 620 518 627]/Border[0 0 0]/H/N>> endobj 39139 0 obj <>/P 2636 0 R/Type/Annot/A 39411 0 R/Subtype/Link/Rect[359 610 373 617]/Border[0 0 0]/H/N>> endobj 39140 0 obj <>/P 2636 0 R/Type/Annot/A 39410 0 R/Subtype/Link/Rect[375 610 387 617]/Border[0 0 0]/H/N>> endobj 39141 0 obj <>/P 2636 0 R/Type/Annot/A 39409 0 R/Subtype/Link/Rect[398 600 410 607]/Border[0 0 0]/H/N>> endobj 39142 0 obj <>/P 2636 0 R/Type/Annot/A 39408 0 R/Subtype/Link/Rect[423 590 435 597]/Border[0 0 0]/H/N>> endobj 39143 0 obj <>/P 2636 0 R/Type/Annot/A 39407 0 R/Subtype/Link/Rect[449 580 461 587]/Border[0 0 0]/H/N>> endobj 39144 0 obj <>/P 2636 0 R/Type/Annot/A 39406 0 R/Subtype/Link/Rect[449 570 465 578]/Border[0 0 0]/H/N>> endobj 39145 0 obj <>/P 2636 0 R/Type/Annot/A 39405 0 R/Subtype/Link/Rect[466 570 480 577]/Border[0 0 0]/H/N>> endobj 39146 0 obj <>/P 2636 0 R/Type/Annot/A 39404 0 R/Subtype/Link/Rect[482 570 496 577]/Border[0 0 0]/H/N>> endobj 39147 0 obj <>/P 2636 0 R/Type/Annot/A 39403 0 R/Subtype/Link/Rect[498 570 512 577]/Border[0 0 0]/H/N>> endobj 39148 0 obj <>/P 2636 0 R/Type/Annot/A 39402 0 R/Subtype/Link/Rect[359 560 373 567]/Border[0 0 0]/H/N>> endobj 39149 0 obj <>/P 2636 0 R/Type/Annot/A 39401 0 R/Subtype/Link/Rect[375 560 387 567]/Border[0 0 0]/H/N>> endobj 39150 0 obj <>/P 2636 0 R/Type/Annot/A 39400 0 R/Subtype/Link/Rect[398 550 410 557]/Border[0 0 0]/H/N>> endobj 39151 0 obj <>/P 2636 0 R/Type/Annot/A 39399 0 R/Subtype/Link/Rect[492 540 504 547]/Border[0 0 0]/H/N>> endobj 39152 0 obj <>/P 2636 0 R/Type/Annot/A 39398 0 R/Subtype/Link/Rect[444 530 461 538]/Border[0 0 0]/H/N>> endobj 39153 0 obj <>/P 2636 0 R/Type/Annot/A 39397 0 R/Subtype/Link/Rect[461 530 475 537]/Border[0 0 0]/H/N>> endobj 39154 0 obj <>/P 2636 0 R/Type/Annot/A 39396 0 R/Subtype/Link/Rect[477 530 491 537]/Border[0 0 0]/H/N>> endobj 39155 0 obj <>/P 2636 0 R/Type/Annot/A 39395 0 R/Subtype/Link/Rect[493 530 507 537]/Border[0 0 0]/H/N>> endobj 39156 0 obj <>/P 2636 0 R/Type/Annot/A 39394 0 R/Subtype/Link/Rect[359 520 373 527]/Border[0 0 0]/H/N>> endobj 39157 0 obj <>/P 2636 0 R/Type/Annot/A 39393 0 R/Subtype/Link/Rect[375 520 387 527]/Border[0 0 0]/H/N>> endobj 39158 0 obj <>/P 2636 0 R/Type/Annot/A 39392 0 R/Subtype/Link/Rect[439 510 453 517]/Border[0 0 0]/H/N>> endobj 39159 0 obj <>/P 2636 0 R/Type/Annot/A 39391 0 R/Subtype/Link/Rect[455 510 467 517]/Border[0 0 0]/H/N>> endobj 39160 0 obj <>/P 2636 0 R/Type/Annot/A 39390 0 R/Subtype/Link/Rect[398 500 410 507]/Border[0 0 0]/H/N>> endobj 39161 0 obj <>/P 2636 0 R/Type/Annot/A 39389 0 R/Subtype/Link/Rect[444 490 452 497]/Border[0 0 0]/H/N>> endobj 39162 0 obj <>/P 2636 0 R/Type/Annot/A 39388 0 R/Subtype/Link/Rect[414 480 424 487]/Border[0 0 0]/H/N>> endobj 39163 0 obj <>/P 2636 0 R/Type/Annot/A 39387 0 R/Subtype/Link/Rect[426 480 439 488]/Border[0 0 0]/H/N>> endobj 39164 0 obj <>/P 2636 0 R/Type/Annot/A 39386 0 R/Subtype/Link/Rect[439 480 449 487]/Border[0 0 0]/H/N>> endobj 39165 0 obj <>/P 2636 0 R/Type/Annot/A 39385 0 R/Subtype/Link/Rect[451 480 463 487]/Border[0 0 0]/H/N>> endobj 39166 0 obj <>/P 2636 0 R/Type/Annot/A 39384 0 R/Subtype/Link/Rect[487 470 499 477]/Border[0 0 0]/H/N>> endobj 39167 0 obj <>/P 2636 0 R/Type/Annot/A 39383 0 R/Subtype/Link/Rect[401 460 413 467]/Border[0 0 0]/H/N>> endobj 39168 0 obj <>/P 2636 0 R/Type/Annot/A 39382 0 R/Subtype/Link/Rect[401 450 407 457]/Border[0 0 0]/H/N>> endobj 39169 0 obj <>/P 2636 0 R/Type/Annot/A 39381 0 R/Subtype/Link/Rect[409 450 419 457]/Border[0 0 0]/H/N>> endobj 39170 0 obj <>/P 2636 0 R/Type/Annot/A 39380 0 R/Subtype/Link/Rect[421 450 431 457]/Border[0 0 0]/H/N>> endobj 39171 0 obj <>/P 2636 0 R/Type/Annot/A 39379 0 R/Subtype/Link/Rect[433 450 443 457]/Border[0 0 0]/H/N>> endobj 39172 0 obj <>/P 2636 0 R/Type/Annot/A 39378 0 R/Subtype/Link/Rect[445 450 457 458]/Border[0 0 0]/H/N>> endobj 39173 0 obj <>/P 2636 0 R/Type/Annot/A 39377 0 R/Subtype/Link/Rect[458 450 468 457]/Border[0 0 0]/H/N>> endobj 39174 0 obj <>/P 2636 0 R/Type/Annot/A 39376 0 R/Subtype/Link/Rect[470 450 484 457]/Border[0 0 0]/H/N>> endobj 39175 0 obj <>/P 2636 0 R/Type/Annot/A 39375 0 R/Subtype/Link/Rect[486 450 500 457]/Border[0 0 0]/H/N>> endobj 39176 0 obj <>/P 2636 0 R/Type/Annot/A 39374 0 R/Subtype/Link/Rect[502 450 516 457]/Border[0 0 0]/H/N>> endobj 39177 0 obj <>/P 2636 0 R/Type/Annot/A 39373 0 R/Subtype/Link/Rect[359 440 373 447]/Border[0 0 0]/H/N>> endobj 39178 0 obj <>/P 2636 0 R/Type/Annot/A 39372 0 R/Subtype/Link/Rect[375 440 389 447]/Border[0 0 0]/H/N>> endobj 39179 0 obj <>/P 2636 0 R/Type/Annot/A 39371 0 R/Subtype/Link/Rect[391 440 405 447]/Border[0 0 0]/H/N>> endobj 39180 0 obj <>/P 2636 0 R/Type/Annot/A 39370 0 R/Subtype/Link/Rect[407 440 421 447]/Border[0 0 0]/H/N>> endobj 39181 0 obj <>/P 2636 0 R/Type/Annot/A 39369 0 R/Subtype/Link/Rect[423 440 437 447]/Border[0 0 0]/H/N>> endobj 39182 0 obj <>/P 2636 0 R/Type/Annot/A 39368 0 R/Subtype/Link/Rect[439 440 456 448]/Border[0 0 0]/H/N>> endobj 39183 0 obj <>/P 2636 0 R/Type/Annot/A 39367 0 R/Subtype/Link/Rect[457 440 471 447]/Border[0 0 0]/H/N>> endobj 39184 0 obj <>/P 2636 0 R/Type/Annot/A 39366 0 R/Subtype/Link/Rect[473 440 487 447]/Border[0 0 0]/H/N>> endobj 39185 0 obj <>/P 2636 0 R/Type/Annot/A 39365 0 R/Subtype/Link/Rect[489 440 503 447]/Border[0 0 0]/H/N>> endobj 39186 0 obj <>/P 2636 0 R/Type/Annot/A 39364 0 R/Subtype/Link/Rect[505 440 519 447]/Border[0 0 0]/H/N>> endobj 39187 0 obj <>/P 2636 0 R/Type/Annot/A 39363 0 R/Subtype/Link/Rect[359 430 373 437]/Border[0 0 0]/H/N>> endobj 39188 0 obj <>/P 2636 0 R/Type/Annot/A 39362 0 R/Subtype/Link/Rect[375 430 392 438]/Border[0 0 0]/H/N>> endobj 39189 0 obj <>/P 2636 0 R/Type/Annot/A 39361 0 R/Subtype/Link/Rect[393 430 407 437]/Border[0 0 0]/H/N>> endobj 39190 0 obj <>/P 2636 0 R/Type/Annot/A 39360 0 R/Subtype/Link/Rect[409 430 423 437]/Border[0 0 0]/H/N>> endobj 39191 0 obj <>/P 2636 0 R/Type/Annot/A 39359 0 R/Subtype/Link/Rect[425 430 441 438]/Border[0 0 0]/H/N>> endobj 39192 0 obj <>/P 2636 0 R/Type/Annot/A 39358 0 R/Subtype/Link/Rect[442 430 456 437]/Border[0 0 0]/H/N>> endobj 39193 0 obj <>/P 2636 0 R/Type/Annot/A 39357 0 R/Subtype/Link/Rect[458 430 472 437]/Border[0 0 0]/H/N>> endobj 39194 0 obj <>/P 2636 0 R/Type/Annot/A 39356 0 R/Subtype/Link/Rect[474 430 488 437]/Border[0 0 0]/H/N>> endobj 39195 0 obj <>/P 2636 0 R/Type/Annot/A 39355 0 R/Subtype/Link/Rect[490 430 504 437]/Border[0 0 0]/H/N>> endobj 39196 0 obj <>/P 2636 0 R/Type/Annot/A 39354 0 R/Subtype/Link/Rect[359 420 373 427]/Border[0 0 0]/H/N>> endobj 39197 0 obj <>/P 2636 0 R/Type/Annot/A 39353 0 R/Subtype/Link/Rect[375 420 392 428]/Border[0 0 0]/H/N>> endobj 39198 0 obj <>/P 2636 0 R/Type/Annot/A 39352 0 R/Subtype/Link/Rect[393 420 407 427]/Border[0 0 0]/H/N>> endobj 39199 0 obj <>/P 2636 0 R/Type/Annot/A 39351 0 R/Subtype/Link/Rect[409 420 423 427]/Border[0 0 0]/H/N>> endobj 39200 0 obj <>/P 2636 0 R/Type/Annot/A 39350 0 R/Subtype/Link/Rect[425 420 441 428]/Border[0 0 0]/H/N>> endobj 39201 0 obj <>/P 2636 0 R/Type/Annot/A 39349 0 R/Subtype/Link/Rect[442 420 456 427]/Border[0 0 0]/H/N>> endobj 39202 0 obj <>/P 2636 0 R/Type/Annot/A 39348 0 R/Subtype/Link/Rect[458 420 472 427]/Border[0 0 0]/H/N>> endobj 39203 0 obj <>/P 2636 0 R/Type/Annot/A 39346 0 R/Subtype/Link/Rect[474 420 488 427]/Border[0 0 0]/H/N>> endobj 39204 0 obj <>/P 2636 0 R/Type/Annot/A 39345 0 R/Subtype/Link/Rect[359 410 376 418]/Border[0 0 0]/H/N>> endobj 39205 0 obj <>/P 2636 0 R/Type/Annot/A 39344 0 R/Subtype/Link/Rect[377 410 391 417]/Border[0 0 0]/H/N>> endobj 39206 0 obj <>/P 2636 0 R/Type/Annot/A 39341 0 R/Subtype/Link/Rect[393 410 409 418]/Border[0 0 0]/H/N>> endobj 39207 0 obj <>/P 2636 0 R/Type/Annot/A 39338 0 R/Subtype/Link/Rect[410 410 424 417]/Border[0 0 0]/H/N>> endobj 39208 0 obj <>/P 2636 0 R/Type/Annot/A 39333 0 R/Subtype/Link/Rect[426 410 443 418]/Border[0 0 0]/H/N>> endobj 39209 0 obj <>/P 2636 0 R/Type/Annot/A 39331 0 R/Subtype/Link/Rect[443 410 457 417]/Border[0 0 0]/H/N>> endobj 39210 0 obj <>/P 2636 0 R/Type/Annot/A 39328 0 R/Subtype/Link/Rect[459 410 476 418]/Border[0 0 0]/H/N>> endobj 39211 0 obj <>/P 2636 0 R/Type/Annot/A 39324 0 R/Subtype/Link/Rect[477 410 491 417]/Border[0 0 0]/H/N>> endobj 39212 0 obj <>/P 2636 0 R/Type/Annot/A 39320 0 R/Subtype/Link/Rect[493 410 507 417]/Border[0 0 0]/H/N>> endobj 39213 0 obj <>/P 2636 0 R/Type/Annot/A 39311 0 R/Subtype/Link/Rect[359 400 373 407]/Border[0 0 0]/H/N>> endobj 39214 0 obj <>/P 2636 0 R/Type/Annot/A 39305 0 R/Subtype/Link/Rect[375 400 392 408]/Border[0 0 0]/H/N>> endobj 39215 0 obj <>/P 2636 0 R/Type/Annot/A 39296 0 R/Subtype/Link/Rect[393 400 407 407]/Border[0 0 0]/H/N>> endobj 39216 0 obj <>/P 2636 0 R/Type/Annot/A 39286 0 R/Subtype/Link/Rect[409 400 423 407]/Border[0 0 0]/H/N>> endobj 39217 0 obj <>/P 2636 0 R/Type/Annot/A 39323 0 R/Subtype/Link/Rect[425 400 439 407]/Border[0 0 0]/H/N>> endobj 39218 0 obj <>/P 2636 0 R/Type/Annot/A 39314 0 R/Subtype/Link/Rect[441 400 453 407]/Border[0 0 0]/H/N>> endobj 39219 0 obj <>/P 2636 0 R/Type/Annot/A 39306 0 R/Subtype/Link/Rect[398 390 406 397]/Border[0 0 0]/H/N>> endobj 39220 0 obj <>/P 2636 0 R/Type/Annot/A 39297 0 R/Subtype/Link/Rect[415 380 421 387]/Border[0 0 0]/H/N>> endobj 39221 0 obj <>/P 2636 0 R/Type/Annot/A 39287 0 R/Subtype/Link/Rect[423 380 429 387]/Border[0 0 0]/H/N>> endobj 39222 0 obj <>/P 2636 0 R/Type/Annot/A 39321 0 R/Subtype/Link/Rect[431 380 448 388]/Border[0 0 0]/H/N>> endobj 39223 0 obj <>/P 2636 0 R/Type/Annot/A 39310 0 R/Subtype/Link/Rect[448 380 462 387]/Border[0 0 0]/H/N>> endobj 39224 0 obj <>/P 2636 0 R/Type/Annot/A 39303 0 R/Subtype/Link/Rect[464 380 478 387]/Border[0 0 0]/H/N>> endobj 39225 0 obj <>/P 2636 0 R/Type/Annot/A 44713 0 R/Subtype/Link/Rect[480 380 494 387]/Border[0 0 0]/H/N>> endobj 39226 0 obj <>/P 2636 0 R/Type/Annot/A 44511 0 R/Subtype/Link/Rect[496 380 510 387]/Border[0 0 0]/H/N>> endobj 39227 0 obj <>/P 2636 0 R/Type/Annot/A 39317 0 R/Subtype/Link/Rect[359 370 371 377]/Border[0 0 0]/H/N>> endobj 39228 0 obj <>/P 2636 0 R/Type/Annot/A 44626 0 R/Subtype/Link/Rect[398 360 410 367]/Border[0 0 0]/H/N>> endobj 39229 0 obj <>/P 2636 0 R/Type/Annot/A 39298 0 R/Subtype/Link/Rect[415 350 429 357]/Border[0 0 0]/H/N>> endobj 39230 0 obj <>/P 2636 0 R/Type/Annot/A 39289 0 R/Subtype/Link/Rect[431 350 443 357]/Border[0 0 0]/H/N>> endobj 39231 0 obj <>/P 2636 0 R/Type/Annot/A 44506 0 R/Subtype/Link/Rect[398 340 410 347]/Border[0 0 0]/H/N>> endobj 39232 0 obj <>/P 2636 0 R/Type/Annot/A 44806 0 R/Subtype/Link/Rect[406 330 416 338]/Border[0 0 0]/H/N>> endobj 39233 0 obj <>/P 2636 0 R/Type/Annot/A 39300 0 R/Subtype/Link/Rect[418 330 428 337]/Border[0 0 0]/H/N>> endobj 39234 0 obj <>/P 2636 0 R/Type/Annot/A 39290 0 R/Subtype/Link/Rect[430 330 447 338]/Border[0 0 0]/H/N>> endobj 39235 0 obj <>/P 2636 0 R/Type/Annot/A 39283 0 R/Subtype/Link/Rect[448 330 462 337]/Border[0 0 0]/H/N>> endobj 39236 0 obj <>/P 2636 0 R/Type/Annot/A 44332 0 R/Subtype/Link/Rect[464 330 480 338]/Border[0 0 0]/H/N>> endobj 39237 0 obj <>/P 2636 0 R/Type/Annot/A 39301 0 R/Subtype/Link/Rect[481 330 495 338]/Border[0 0 0]/H/N>> endobj 39238 0 obj <>/P 2636 0 R/Type/Annot/A 39291 0 R/Subtype/Link/Rect[497 330 509 338]/Border[0 0 0]/H/N>> endobj 39239 0 obj <>/P 2636 0 R/Type/Annot/A 39318 0 R/Subtype/Link/Rect[463 320 475 328]/Border[0 0 0]/H/N>> endobj 39240 0 obj <>/P 2636 0 R/Type/Annot/A 39308 0 R/Subtype/Link/Rect[406 310 416 318]/Border[0 0 0]/H/N>> endobj 39241 0 obj <>/P 2636 0 R/Type/Annot/A 44298 0 R/Subtype/Link/Rect[418 310 434 318]/Border[0 0 0]/H/N>> endobj 39242 0 obj <>/P 2636 0 R/Type/Annot/A 44714 0 R/Subtype/Link/Rect[435 310 449 318]/Border[0 0 0]/H/N>> endobj 39243 0 obj <>/P 2636 0 R/Type/Annot/A 39281 0 R/Subtype/Link/Rect[451 310 465 318]/Border[0 0 0]/H/N>> endobj 39244 0 obj <>/P 2636 0 R/Type/Annot/A 39307 0 R/Subtype/Link/Rect[467 310 479 318]/Border[0 0 0]/H/N>> endobj 39245 0 obj <>/P 2636 0 R/Type/Annot/A 44300 0 R/Subtype/Link/Rect[397 300 409 308]/Border[0 0 0]/H/N>> endobj 39246 0 obj <>/P 2636 0 R/Type/Annot/A 39285 0 R/Subtype/Link/Rect[417 290 434 298]/Border[0 0 0]/H/N>> endobj 39247 0 obj <>/P 2636 0 R/Type/Annot/A 44075 0 R/Subtype/Link/Rect[435 290 447 298]/Border[0 0 0]/H/N>> endobj 39248 0 obj <>/P 2636 0 R/Type/Annot/A 43877 0 R/Subtype/Link/Rect[420 280 437 288]/Border[0 0 0]/H/N>> endobj 39249 0 obj <>/P 2636 0 R/Type/Annot/A 43841 0 R/Subtype/Link/Rect[437 280 451 288]/Border[0 0 0]/H/N>> endobj 39250 0 obj <>/P 2636 0 R/Type/Annot/A 44110 0 R/Subtype/Link/Rect[453 280 467 288]/Border[0 0 0]/H/N>> endobj 39251 0 obj <>/P 2636 0 R/Type/Annot/A 43774 0 R/Subtype/Link/Rect[469 280 483 288]/Border[0 0 0]/H/N>> endobj 39252 0 obj <>/P 2636 0 R/Type/Annot/A 43876 0 R/Subtype/Link/Rect[485 280 497 288]/Border[0 0 0]/H/N>> endobj 39253 0 obj <>/P 2636 0 R/Type/Annot/A 43698 0 R/Subtype/Link/Rect[398 270 410 278]/Border[0 0 0]/H/N>> endobj 39254 0 obj <>/P 2636 0 R/Type/Annot/A 44096 0 R/Subtype/Link/Rect[439 260 453 268]/Border[0 0 0]/H/N>> endobj 39255 0 obj <>/P 2636 0 R/Type/Annot/A 43910 0 R/Subtype/Link/Rect[455 260 467 268]/Border[0 0 0]/H/N>> endobj 39256 0 obj <>/P 2636 0 R/Type/Annot/A 39316 0 R/Subtype/Link/Rect[398 250 410 258]/Border[0 0 0]/H/N>> endobj 39257 0 obj <>/P 2636 0 R/Type/Annot/A 44674 0 R/Subtype/Link/Rect[412 240 429 248]/Border[0 0 0]/H/N>> endobj 39258 0 obj <>/P 2636 0 R/Type/Annot/A 39293 0 R/Subtype/Link/Rect[430 240 444 248]/Border[0 0 0]/H/N>> endobj 39259 0 obj <>/P 2636 0 R/Type/Annot/A 44166 0 R/Subtype/Link/Rect[446 240 460 248]/Border[0 0 0]/H/N>> endobj 39260 0 obj <>/P 2636 0 R/Type/Annot/A 44118 0 R/Subtype/Link/Rect[462 240 474 248]/Border[0 0 0]/H/N>> endobj 39261 0 obj <>/P 2636 0 R/Type/Annot/A 43524 0 R/Subtype/Link/Rect[415 230 432 238]/Border[0 0 0]/H/N>> endobj 39262 0 obj <>/P 2636 0 R/Type/Annot/A 39309 0 R/Subtype/Link/Rect[432 230 446 238]/Border[0 0 0]/H/N>> endobj 39263 0 obj <>/P 2636 0 R/Type/Annot/A 43585 0 R/Subtype/Link/Rect[448 230 462 238]/Border[0 0 0]/H/N>> endobj 39264 0 obj <>/P 2636 0 R/Type/Annot/A 44623 0 R/Subtype/Link/Rect[464 230 476 238]/Border[0 0 0]/H/N>> endobj 39265 0 obj <>/P 2636 0 R/Type/Annot/A 39340 0 R/Subtype/Link/Rect[398 220 410 228]/Border[0 0 0]/H/N>> endobj 39266 0 obj <>/P 2636 0 R/Type/Annot/A 39295 0 R/Subtype/Link/Rect[430 210 444 218]/Border[0 0 0]/H/N>> endobj 39267 0 obj <>/P 2636 0 R/Type/Annot/A 43831 0 R/Subtype/Link/Rect[446 210 460 218]/Border[0 0 0]/H/N>> endobj 39268 0 obj <>/P 2636 0 R/Type/Annot/A 43519 0 R/Subtype/Link/Rect[462 210 474 218]/Border[0 0 0]/H/N>> endobj 39269 0 obj <>/P 2636 0 R/Type/Annot/A 43467 0 R/Subtype/Link/Rect[398 200 410 208]/Border[0 0 0]/H/N>> endobj 39270 0 obj <>/P 2636 0 R/Type/Annot/A 43699 0 R/Subtype/Link/Rect[406 190 420 198]/Border[0 0 0]/H/N>> endobj 39271 0 obj <>/P 2636 0 R/Type/Annot/A 44161 0 R/Subtype/Link/Rect[422 190 436 198]/Border[0 0 0]/H/N>> endobj 39272 0 obj <>/P 2636 0 R/Type/Annot/A 43605 0 R/Subtype/Link/Rect[438 190 450 198]/Border[0 0 0]/H/N>> endobj 39273 0 obj <>/P 2636 0 R/Type/Annot/A 44564 0 R/Subtype/Link/Rect[391 180 399 188]/Border[0 0 0]/H/N>> endobj 39274 0 obj <>/P 2636 0 R/Type/Annot/A 42984 0 R/Subtype/Link/Rect[454 170 464 178]/Border[0 0 0]/H/N>> endobj 39275 0 obj <>/P 2636 0 R/Type/Annot/A 44571 0 R/Subtype/Link/Rect[466 170 476 178]/Border[0 0 0]/H/N>> endobj 39276 0 obj <>/P 2636 0 R/Type/Annot/A 39347 0 R/Subtype/Link/Rect[478 170 486 178]/Border[0 0 0]/H/N>> endobj 39277 0 obj <>/P 2636 0 R/Type/Annot/A 44233 0 R/Subtype/Link/Rect[457 160 468 168]/Border[0 0 0]/H/N>> endobj 39278 0 obj <>/P 2636 0 R/Type/Annot/A 44177 0 R/Subtype/Link/Rect[388 150 402 158]/Border[0 0 0]/H/N>> endobj 39279 0 obj <>/P 2636 0 R/Type/Annot/A 42918 0 R/Subtype/Link/Rect[404 150 416 158]/Border[0 0 0]/H/N>> endobj 39280 0 obj <>/P 2636 0 R/Type/Annot/A 42635 0 R/Subtype/Link/Rect[171 388 188 397]/Border[0 0 0]/H/N>> endobj 39281 0 obj <> endobj 39282 0 obj <> endobj 39283 0 obj <> endobj 39284 0 obj <> endobj 39285 0 obj <> endobj 39286 0 obj <> endobj 39287 0 obj <> endobj 39288 0 obj <> endobj 39289 0 obj <> endobj 39290 0 obj <> endobj 39291 0 obj <> endobj 39292 0 obj <> endobj 39293 0 obj <> endobj 39294 0 obj <> endobj 39295 0 obj <> endobj 39296 0 obj <> endobj 39297 0 obj <> endobj 39298 0 obj <> endobj 39299 0 obj <> endobj 39300 0 obj <> endobj 39301 0 obj <> endobj 39302 0 obj <> endobj 39303 0 obj <> endobj 39304 0 obj <> endobj 39305 0 obj <> endobj 39306 0 obj <> endobj 39307 0 obj <> endobj 39308 0 obj <> endobj 39309 0 obj <> endobj 39310 0 obj <> endobj 39311 0 obj <> endobj 39312 0 obj <> endobj 39313 0 obj <> endobj 39314 0 obj <> endobj 39315 0 obj <> endobj 39316 0 obj <> endobj 39317 0 obj <> endobj 39318 0 obj <> endobj 39319 0 obj <> endobj 39320 0 obj <> endobj 39321 0 obj <> endobj 39322 0 obj <> endobj 39323 0 obj <> endobj 39324 0 obj <> endobj 39325 0 obj <> endobj 39326 0 obj <> endobj 39327 0 obj <> endobj 39328 0 obj <> endobj 39329 0 obj <> endobj 39330 0 obj <> endobj 39331 0 obj <> endobj 39332 0 obj <> endobj 39333 0 obj <> endobj 39334 0 obj <> endobj 39335 0 obj <> endobj 39336 0 obj <> endobj 39337 0 obj <> endobj 39338 0 obj <> endobj 39339 0 obj <> endobj 39340 0 obj <> endobj 39341 0 obj <> endobj 39342 0 obj <> endobj 39343 0 obj <> endobj 39344 0 obj <> endobj 39345 0 obj <> endobj 39346 0 obj <> endobj 39347 0 obj <> endobj 39348 0 obj <> endobj 39349 0 obj <> endobj 39350 0 obj <> endobj 39351 0 obj <> endobj 39352 0 obj <> endobj 39353 0 obj <> endobj 39354 0 obj <> endobj 39355 0 obj <> endobj 39356 0 obj <> endobj 39357 0 obj <> endobj 39358 0 obj <> endobj 39359 0 obj <> endobj 39360 0 obj <> endobj 39361 0 obj <> endobj 39362 0 obj <> endobj 39363 0 obj <> endobj 39364 0 obj <> endobj 39365 0 obj <> endobj 39366 0 obj <> endobj 39367 0 obj <> endobj 39368 0 obj <> endobj 39369 0 obj <> endobj 39370 0 obj <> endobj 39371 0 obj <> endobj 39372 0 obj <> endobj 39373 0 obj <> endobj 39374 0 obj <> endobj 39375 0 obj <> endobj 39376 0 obj <> endobj 39377 0 obj <> endobj 39378 0 obj <> endobj 39379 0 obj <> endobj 39380 0 obj <> endobj 39381 0 obj <> endobj 39382 0 obj <> endobj 39383 0 obj <> endobj 39384 0 obj <> endobj 39385 0 obj <> endobj 39386 0 obj <> endobj 39387 0 obj <> endobj 39388 0 obj <> endobj 39389 0 obj <> endobj 39390 0 obj <> endobj 39391 0 obj <> endobj 39392 0 obj <> endobj 39393 0 obj <> endobj 39394 0 obj <> endobj 39395 0 obj <> endobj 39396 0 obj <> endobj 39397 0 obj <> endobj 39398 0 obj <> endobj 39399 0 obj <> endobj 39400 0 obj <> endobj 39401 0 obj <> endobj 39402 0 obj <> endobj 39403 0 obj <> endobj 39404 0 obj <> endobj 39405 0 obj <> endobj 39406 0 obj <> endobj 39407 0 obj <> endobj 39408 0 obj <> endobj 39409 0 obj <> endobj 39410 0 obj <> endobj 39411 0 obj <> endobj 39412 0 obj <> endobj 39413 0 obj <> endobj 39414 0 obj <> endobj 39415 0 obj <> endobj 39416 0 obj <> endobj 39417 0 obj <> endobj 39418 0 obj <> endobj 39419 0 obj <> endobj 39420 0 obj <> endobj 39421 0 obj <> endobj 39422 0 obj <> endobj 39423 0 obj <> endobj 39424 0 obj <> endobj 39425 0 obj <> endobj 39426 0 obj <> endobj 39427 0 obj <> endobj 39428 0 obj <> endobj 39429 0 obj <> endobj 39430 0 obj <> endobj 39431 0 obj <> endobj 39432 0 obj <> endobj 39433 0 obj <> endobj 39434 0 obj <> endobj 39435 0 obj <> endobj 39436 0 obj <> endobj 39437 0 obj <> endobj 39438 0 obj <> endobj 39439 0 obj <> endobj 39440 0 obj <> endobj 39441 0 obj <> endobj 39442 0 obj <> endobj 39443 0 obj <> endobj 39444 0 obj <> endobj 39445 0 obj <> endobj 39446 0 obj <> endobj 39447 0 obj <> endobj 39448 0 obj <> endobj 39449 0 obj <> endobj 39450 0 obj <> endobj 39451 0 obj <> endobj 39452 0 obj <> endobj 39453 0 obj <> endobj 39454 0 obj <> endobj 39455 0 obj <> endobj 39456 0 obj <> endobj 39457 0 obj <> endobj 39458 0 obj <> endobj 39459 0 obj <> endobj 39460 0 obj <> endobj 39461 0 obj <> endobj 39462 0 obj <> endobj 39463 0 obj <> endobj 39464 0 obj <> endobj 39465 0 obj <> endobj 39466 0 obj <> endobj 39467 0 obj <> endobj 39468 0 obj <> endobj 39469 0 obj <> endobj 39470 0 obj <> endobj 39471 0 obj <> endobj 39472 0 obj <> endobj 39473 0 obj <> endobj 39474 0 obj <> endobj 39475 0 obj <> endobj 39476 0 obj <> endobj 39477 0 obj <> endobj 39478 0 obj <> endobj 39479 0 obj <> endobj 39480 0 obj <> endobj 39481 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 39482 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 39483 0 obj <> endobj 39484 0 obj <> endobj 39485 0 obj <> endobj 39486 0 obj <> endobj 39487 0 obj <> endobj 39488 0 obj <> endobj 39489 0 obj <> endobj 39490 0 obj <> endobj 39491 0 obj <> endobj 39492 0 obj <> stream q /X1 Do Q q endstream endobj 39493 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 39494 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 39495 0 obj <> stream HWko6_퇅\8cC&uд, Q:#9&NKItĢ^>oeۓ/޽|E/^>FLRV%Q)'Y*H%!b"ſOekjZ.\qE/VŊ >*`$KrG^USg\%1K(ޯBǕ\L\=K6TfF^d4)3WHs䉰H[r>!"\A$7}Td `]E9E)<KD@1 1`1<̰31`qD=sD= D D DKD KD +D +D +D ԧ4P"@}> g,P#@} 1# +TcB\c1 a!rĵ>fXq q>p-G\c\a!rĵ>fXq q>p-G\c\>k}̰B>,ĵ>fXz3P q>p@\c\+a! ĵ>fXq q>p@\c\+a! ĵ>fXq# +TcB\c1 a!Jĵ>fXq q>pD\c\+a!Jĵ>fXq q>pD\c\+>Rk}̰B>,ĵ>fXz3P}A$zXE+v+#(g MI~2rL^wo޶k%xT1XTV6*9MMkÂXmdeMدզKIL4ilml=cyܬuO>P2i"47/ՉRLr^"6OzpP wr9>߄df 设\4Xd'γ)83.rI (|(+ 3{+{ݺ6SHh>[z}n 7^UST}N]Pɸȣ \, O3XYYFt\ǐq&FUUuPzs~<l*HّfkxZ0caLPa=obH{og7g9Iz{zj|woacnoLWMw!#±$ѡӝxd%kčA_eN[bKo/pngYw71՟&f<ǹ%Ow8c4>):[k/V(1|=i vKhl4_6W=0Ci"೘iK!cjm cRÖe.0 X6k֋bgn>e'S2ER?>r4/,<7=~Qly}R8:c~Nݑ#F晴Y+3RGBŃ/?=F=%hcSy <\aBd$":'AwZ"Fav&)z5j`Y1yu~L"Q6pæZMT1X7RF>C zS+@πzq MmlV Ar#DR/(e.x IB(bF-vfq3q.~Xn{V+\VwCsLĈ g ``'\@Y/e~yR~ܠ_Y |~4P Dc)4I=oroliynݬftWkM}+Uf>a Rp'$#+hǙA ݛ;m#U%Oâ|*ejSeŬVR֎HRm٘elr# QE&ԓb&fH5E,]r0e3չw)LG֯ݴMr(/Kaog㦁eON돾쑑ÅW?:ņ|lYO/*K*gL$V2{?ep0yaGXԖ@Z>G+^{Jw m~,xZ l/5pDrnܗ $0O>V;ëy˝[@^gZWDvmcٺ嫯յ`OYt *wOj7j1 BȢ䞶yR*`W0HG@k>Js"I[fCq)JY1rޤFK3dh#_GB`|w综e7wwo907닠">gfuu*~5Pv'Njhendstream endobj 39496 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 39497 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 39498 0 obj <> endobj 39499 0 obj <> stream q /X1 Do Q q endstream endobj 39500 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 39501 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 39502 0 obj <> stream H4;0=+ %B0EBi:$@@YFgqy DG&Ŭa=Bk]vz_4uS$!1e6/3n'OA,endstream endobj 39503 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 39504 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 39505 0 obj <> endobj 39506 0 obj <> endobj 39507 0 obj <> endobj 39508 0 obj <> endobj 39509 0 obj <> endobj 39510 0 obj <> endobj 39511 0 obj <> endobj 39512 0 obj <> endobj 39513 0 obj <> stream q /X1 Do Q q endstream endobj 39514 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 39515 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 39516 0 obj <> stream HWaoNa )irwIwI֥N8yHte+$ z)E{cbY̒<U&zEr ^Vuu7ͪ}ǓW 9ؙM͠3﯌t-=#I >fz: IYU{jtUltvS.Fr0X<3"tqVcV:6(Z_IуE :ӉyeYѷrϜώ?YM|+~tg~=>?]ZK 6jInAOce zO^>pw_-%>SF)MK=&YY'q SU \UY_U˻#3ZLNM;}q)]O뀭/ZBFD9 N8/'팃MU=$4?=;3wGS(f\љ [?9~ys\P 5N.3 13+#blĜ>iO_eCڡY跔ͪ4;zmg?ѡAU0EjxE=)jY0E!l763yk=!v*P[G1ls4w㓣`z~G3~;9yҦc?6[c/]=kBqynzv3|qrߜ?6q6϶ ބ^=o7y(ӛvON?=9=zSBΪPgMWaKsEhwjFglո)'Oh7*GG>ݓַv45Wo'#kfl~LdVwqYN %cis} }y>in;tbf~dX⩓֬wbץMcT/ ]Ohѭvn{R_d¯WX_{}y֦vZ]56Il+f:UNHlwŕcy5>%򛧫)yjg&tЍ JmjokS˵ed@_I7'={solLӤ}AZbKiy啖Z^i%@+QZ JV RTie@+SZʔVhVhVr\jQcKbZ#V bXiYeZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ#ȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘT=ȽĘ$F,{1 h{{1 h{{1 h{{1 h{{1 h{{1 h{{1 h{{1 h{{1 h' c֒@%,y~A=Ӡ:"C!=67ήTsbXѻDjwuYg_fYW3[0 'zӪendstream endobj 39517 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 39518 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 39519 0 obj <> endobj 39520 0 obj <> endobj 39521 0 obj <> endobj 39522 0 obj <> endobj 39523 0 obj <> endobj 39524 0 obj <> endobj 39525 0 obj <> endobj 39526 0 obj <> endobj 39527 0 obj <> endobj 39528 0 obj <> stream q /X1 Do Q q endstream endobj 39529 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 39530 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 39531 0 obj <> stream HWmH_њ՝j14 gƐ8Nnud<5BR]]v2>vٳ/2__&$ڥ:hMsܦިN$SWVJN?֫^ܬ6]w]P]93jJ_XUuI QSYur>9fӪ㳉Rmwqalad\iW&-׷mӁ}Yo]AWU=bĦFP:S:JSRV: X%gI$'0ά qXr;E֒0by޵9Y7½po{+[ ½p{'{ ½ppp_p_p_p_p_p ^tVrlZKXdrX=Lj%s,@k9F,^րrXhXdrXh{ZZ˱{ZZ1bcZ1bcEk h-։{Eh-Lj%sX=" cEk-h-Lj܋ZZEh-Lj܋ZZ ,Z #p/ZkAk9Y#p/ZkAk9F,^ւrl8ZKXdrX=Lj%s,@k9F,^ցrXhXdrXh{ZZ˱{ZZ1bcZ1bcEkh-։{Eh-Lj%sX@:|!ں2 N` -r@ -@ hB+Z*V! UhBZ @+2hXZZhiZFh%ro@9v,r1b-{rϱ6f -{ h{1KhsX@Kހs8:Y\˂sXRc4-{ r1wȽ 2@Kނs%roA9F#  h[{D-=hZ"c4V-{ r1+Lj%8Fw h;{(D=hZ"ctZ"ctZ"ct|Z"ct|Z"ct0Z"ct0Z#Ƚi,rN^TiU9Uu >UCGUdK.VZondZ}tW?ݤ?>z[f (L妻XϷfŦzީG]7q$ч}ujEOն].ls+[״ђ2/5\2_tfQQżU_i˟*i+u=o۪Gh8=&ͥetpӲO?Vn6UTw0i!;HE]ONMw2>YB1?֧ WF,'cj[C;ƥsŻ~c{X_SD4lK&{X}j6e e65b &?>}`_W괄Қ6.tnOg]JӚ6vAo?< Ǽ65lCZCcqz=oڦej뮎6_8RgVl:@ |^DP{]?|p6]=|(ZsgZ٫*Ms+r@ -@ -ʁV.r hBZ*V)JU @+p-I-Kjq,4BK-- 2B-{r1b-{r1b-{r1b-{r1b-{r1b-{r1b-{r1b-{ r1bI-E=LjD-=LjD-=LjD-=LjD-=LjD-=LjD-=LjD-=LjD-=LjD=Lj%8Y #w #w #w #w #w #w #w #w # #XdsXR+!7/aEV)ˤRܔ0?nn|I៖YiuiQz? |M]n馺lvۏOҨjweS?~dY[m7a2,8Ef8M;owq(:[9\𦿖%]^w"z[^4m-3;*;emS#~{2c>-L3'MlrV̎Ԗcɫh}@B: #3j#;B`Y%`ǒ{e$®p3 6͕ gQ#zM.jF`25eoŮٴ,3nIu]pBjrF| lb]u˽!g&}(mn`(Q|wËkrG?wCSo#tCrtY|kw~ûej&URS:޿EZ{|VN0+z)Eyر +PU*5qBONf[ ^~aU׍ B&[ 歊f<&JĉM֐n !r̆~tRXc6&%@GgWs7|!cp[$MQú>7/)FktfMK \8+ﶊKSq(i//ox{ѩ87nX[tthDЋx05y0LȎ]9#*F\!I@# x|c,~̕* V)a*f ߀endstream endobj 39532 0 obj <>/P 894 0 R/Type/Annot/A 39533 0 R/Subtype/Link/Rect[93.6004028 257.72699 258.937012 277.407013]/Border[0 0 0]/H/N>> endobj 39533 0 obj <> endobj 39534 0 obj <> stream q /X1 Do Q q endstream endobj 39535 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 39536 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 39537 0 obj <> stream HWko8_22C`m'3l@RRRf+R׳(RQLJ=şšc?|կ,b/53DXC|fu@7f}5;T﷒=Up_%l$b9aLF[탻\wUSGȸX|YȌR+ZВGCP\/V@Όqi^uSWbgc|l6eSmqpEzF \4<{{dG&"F/۰ W 1eyz ]Nsr#"\ Y~8>,Wx$KO$KO"+O"+O"+O&kO&kO}L=1>DŽSO}BO<)>ԧSSO}F<>S= ´.$ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d=Jµ.,BZIŀEŐE\+ ׺k%ZZCs$\b"{k]l(µ.,_p!Wbջ׺kZCs"\b"\b"{Uk] Yzϵpp!PVu1d=*µ.,µ.,BZEŐE\׺>Єk] YzZCŐw1`u1d=jµ.,BZMŀEŐE\ ׺k5ZZCs&\b"{Մk] Xk] Yzϵp!PVu}u1d] Xk] YzC>ykYsޭ*`@D=%IV.-{y`7BBdat(Egbk_V@ dc잋]тJ31iZhԥmn;*,]cqM/}ؽ Ȝ'QWq3ʹ"9ƅHvۼ6}Yk-8 <8/]?rU}o}wj s!p#:e(HYDP%wHS߫Guk:I%k=[,Eg姰$j.Pt&^q6yt/ƺ9gsS={Qj`ִX<]t"fU;ghm//4˶5S~j8x-pI6G3>N ,-tPt0Ua/NH4N6v/x#dJ,J)|_B//h3 Î$!lIPbo8އD>w3;p2s35zî2ݮCd- QÕ%Q듈~7)x ϒ/`396%uKo%\G!л!}x[CxXڗG/k=>ΆsGޕKnꮨꖡCZn)GEr} fG-2PBhvOSXy,F?asYĿWf4 )Y]FuS+(ꏝ*Cce(_aGlu'9m <v.jS)6lHJKGwۍ3v^{PӴa6ia&SO0)x:Dƞ0 .,b1qþj_dU#5t —5|=Ngzv-Ov lƭOSIϥm۫`{Sti>P<ی=;dStdUu٢ng=y6vxlvhYDw3x[oCL-|{w0_ؗb =Ofr e\s,EtR͗,xyri_yÒΫ ~3t92HKv'͒\ysu˅_"+|F]]QKHvɊz>+Ý" 5ƬjiQlE<~7;`'vf5 VOmG8|17 ?N/C6M tu<#rS<G+H]8lB^F{)v Ihፉ9 Z4?`6(wExl\:`Bl{ի]&~KQ'|ٱ^kHӫ{!u-SFE#F/ht#q tse(؎V\B$H~7/DMœhQqGZ٣E+n? " Mڛ((7F\2/ͤa]F\k&DN.u_,/еēi)J?`p} _vݎ%ibFb& X'}= m>މOQ>ō EoC}g1 ~_Z𪖳[wkmEv&bѾJA&A\'A_BUcӸ*-XX6Mw%3ECwdێFJus;9iXKش*g7nѬ 6alm:`gK\{<^0s4NQ)U(\Q S%ԯԻw U_չBnUr/+2j=F3D;D2;'˼$A]<[U$3a1gD? ;%eqR|BW?}? 3endstream endobj 39538 0 obj <>/P 1368 0 R/Type/Annot/A 41859 0 R/Subtype/Link/Rect[93.6003036 525.22998 246.287994 544.909973]/Border[0 0 0]/H/N>> endobj 39539 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 39540 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 39541 0 obj <> endobj 39542 0 obj <> endobj 39543 0 obj <> endobj 39544 0 obj <> endobj 39545 0 obj <> endobj 39546 0 obj <> endobj 39547 0 obj <> endobj 39548 0 obj <> endobj 39549 0 obj <> endobj 39550 0 obj <> stream q /X1 Do Q q endstream endobj 39551 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 39552 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 39553 0 obj <> stream HWo`O{Eh{9n`d&fOW}/EpHqfx9N<|觟~af9' 悠RМ4wzao~SC;SӨ4%~~?a0`R ^ =v ov+ ~+g<祰feJ?lsa`lĀxs~(K}-1rQpdLz]C5h0XNٓU*Ss/4'cHAxlh@(9ZaqRɝ-(3eiae!"R4z:hX}}xLWnu Z 8Aow.WĸDpS"zsG㹞tV|=q3 ~l3m`T+ܺӊ #KlmxujM9!Z b"Gu٣iN#v[먰2ʨZM x*dOULrZb}8۳H4vL}ҽ{i釛 Pus_N#2Ѩ 0=q ։8ҝI[P#<|*pӚ/{:,ׄCʭbS)CĹze'!CB$(6R[P1+ws?q+lš#0vw?=8!%|7`Ⱥ5jUnwQr.f#W1#y _Un@.x*8dccۮy%RCXqcGHk;a4+C+?&YwwZ^Y܂v);= ؜}T{eQa4"taa- ˤɜfibΘ +rXpo)EK %7pi_3Rf8M_BmD@~@{G&wfYkCc\`#3ڜ9K+ KFI%^[\8DY+U mM{ro/Yb cni$sMe^!?2[N3`u l鬉ԭ|vs97Ln[ /ٛVgB/(HD.fpo5C2&V)&_wp5͉=@hq2:-mЦiY^B?5o]60/csi"H^12 Գ tN)\ݶ,p|j$vbBaI^< 1uA\,zL@ٲ70vyp~닗ٓ e%Ou۪H7'(ԗ@$Α DPJXT EG\7(`FL`QkY5JbRAQ0sі^ŷ}La _|I'|oe#\Gb:I]nZs$2(Gxc ۣPbrL:kE`pzeJEw:㾬WwWfTI~͜iQY\´|%*l%EH[CMcRw8˼ uIB}"79"Tt9*#}_WrB]6°Ym #)kt $u6)܊,"2վQ\*:^cuSRm4uudo ]j*_ߞ[!NKY  X]d6m|'W"Mޯ-b8Lw]EI4\qC\U!BaQXHR2m!0tɻhsþB<(~ĝ&]oLUqѿ`xMm<_{X#^C&b_JhEI>=>}y+x`endstream endobj 39554 0 obj <>/P 943 0 R/Type/Annot/A 39559 0 R/Subtype/Link/Rect[130.078995 539.020996 221.744995 673.916016]/Border[0 0 0]/H/N>> endobj 39555 0 obj <>/P 943 0 R/Type/Annot/A 39558 0 R/Subtype/Link/Rect[93.5999985 439.428009 199.356003 459.108002]/Border[0 0 0]/H/N>> endobj 39556 0 obj <>/P 943 0 R/Type/Annot/A 39557 0 R/Subtype/Link/Rect[93.6001968 264.227997 230.951996 283.90799]/Border[0 0 0]/H/N>> endobj 39557 0 obj <> endobj 39558 0 obj <> endobj 39559 0 obj <> endobj 39560 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 39561 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 39562 0 obj <> endobj 39563 0 obj <> endobj 39564 0 obj <> stream q /X1 Do Q q endstream endobj 39565 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 39566 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 39567 0 obj <> stream HWm6_^`ހ%+CŇHBkk,6fHJp!y~~m|MW"4U KfbL\LI~MH49SռOдf]:4Oe0&VRnIJ+Lmi즦қW2㛌 ~y~k.Vt~Lۏp=Li)S7/Zو@? g‚vB~JS*x3xOyOJLfضIU\NǤBLc#@ Qt PBĨ@܅ɇ6@IK+++kkg,b쳈}F"9>Ҭ DD mه6@ mه6DCՆ6D#JB QHPmhІ(}ZI6!`V m"TET+ Ն6D#JB PjCj%І(}ZI6"Tm"Tmه6@ m"GUjCj(B QHPmhC>R"TE6!`V m"GUjCՆ6D#*B QHPmhkM6!*fE6!*fm"TET Ն6D#jB PjCj5І(}ZM6PmhC>R&TET Ն6@ m"GՄjCj5&І}hІ}hCT̾bUUÿUw&VRno߯懣ɢ00O0ih&?A箇~1Ng]jλ<܈rcFf8L4GVx mmvg*:1Z̃6tKdyAq+Y+`ZjA73="UyԟOF!]v+# Մ)0#/SNyx+Ż pd+rs'B:SZ_B_^A*p>Tם{30[2Y̓>tӘ6]^l`Յ%x?*0:|@( ^ Ck)$`VqoԊ(sZBN  YPT9(d|V1itN6OL'ӅyrY Bݼd/Xu[vlϧۗHe臗#*8bglg&` qYH{ &BU\r_׭t~ƥ6/ZUr'7+ԯlRM[Ll|˪gHU >^0|˿]ݳ=z? wW<*y2üT~ r1]J&~^Rˀ9BY F긔Ρ|[:.$~oomcÏf2լxwWs]up${S ^&%UZ^g09bə&h[ewapM6j콬^7fJ Wo/#<,a~QtꟚ$IJ>:f6wj vg.O{&۟tz Jx^{[ϵa VC.aҹ KyK>;yDZWtdC igãX4kR:|Ú mC:k(LN=ƻY=8 k h' @+5 J|3Q67G+/LhxWO9B(\{ᇓ6tL;+ o\&cAJrVp8V<NRws)-!SvUzux-=[*q (D rhvݦ@ZZ[z-w%wo8DQH!f;/ h ^Fܡ'1h7\ J XW-.EY!c TOPE\q^vW7myA! ڮ鯫< 9ZG^L7rևQjLhR);͹g8yNxGE zVZqWd!"H @KCT-U+Azsb%!R’HEn Lz}B~n7̡EtW;If "&Mξ>.&Y\$ڏHUH+Ʈ6NjkAPN1R^At7gEiۜT?S\y }-eDGp'/3o ܃bT"56 xޔ%p$}ɯ3C a6.M-;92KV}h$,PlXF GʿVp^|zڄPAͲM8JF/A՞~"RM)uIۆEXW R\*E<~)~/_J{>%Z_ER$pJ1<=mnꞄB|]pzS\eǓzMl4DulW*rP%=ٙOnXȴ9 +y:z}93ZFȇWC7wOUi۵fdrSj~ Mz`g7=8_tTj!;wӇ?"!6DQ:yݦ߭kxZdT(-AQeonB3nX-)u/oښގp2MF 9Qe,v^2@ g޺9A2?чnnV9caȚ +1` );ĺI }yNV;, kuKo>3/D2h k4jITpТmCib>|6PZbߎm ϩ"M:tdW xh&=Og] 9'= BX0X)/\mD>/P 627 0 R/Type/Annot/A 39569 0 R/Subtype/Link/Rect[93.6008987 294.428986 255.156006 314.108002]/Border[0 0 0]/H/N>> endobj 39569 0 obj <> endobj 39570 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 39571 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 39572 0 obj <> endobj 39573 0 obj <> endobj 39574 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 39575 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 39576 0 obj <> stream q /X1 Do Q q endstream endobj 39577 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 39578 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 39579 0 obj <> stream HWnH}W (t/@`L63Gb Zm&x%yVQlJ.сDNW͎~}w7o.޽-W]Sjf*dΪHU]!XÊzQz,ݦMSYmq1+gbnI8 L[S*g͖~:}kz5ܖg~Vp@Η B`O] +ĜeX`RN9!2R!+Ob"g% J O1`IBKB+B+B+BkBkBBBB[B[B;B;B;B{B{BB}B}YA6Ŗ$\bէצr)\}pm!PVM1d3Jµ),µ),B}ZI6ŐE\+ צצk%C>s$\b"\b"gkS Y̵pm- E6ŐO1`M1dS YC>s"\b"gUkS XkS Y̵pm!PVM1`M1d3*µ),B}ZE6ŀE6ŐE\צk[pm!+Wb"\bէr),µ),B}ZM6ŐE\ צצk5C>s&\b"\b"gՄkS Y̵pmpm!PVM1d3jµ), CV>ŀE6ŐO1dCBЌÿeq1+g3E=2Yಘ\W0!yPGd^mwj7eg߳Og1KXQ6}iӥIbd)$ItLaK.&1K-iDF/»,dJ/aB ֱ_wiF/Hse^{}fyIhj~?eJ{9={e8<5OS4Sy1e̘2)ÔC{*Au5~9~~\ݰy2JKa!B;=&OS=:,(%3*GJo-\:B$|iq i`Qv)`~%JoqSV?=WjTn-(#1ڿ|_?3=j2ݯe~Ev^fVvqWo;Ze* =Ry.b#Ea}jutR1vte"ն^U@ȿ>fQ\~b >YugݦZF $Zkhʍ]%*QY;|X(eucFk6Ǚ6fqrWXmFs%t_pت?7lS ,U`MrBU|(Al2>ow?v99;}(}uw-#ENݻOl\g3\gurm}jK$v9. {W֮Eg'9'ZLlNjx]398 Fns}`M}l^իZ럻_u4݀ Ν'SH8AiT )&rڥH ue !\VR2GרR*I0>ʃ< L` Hpy+`ߟq?ŗʀiSr|ScmZ5l}_z6BWza#od5+:AՏHnKMypC7VJ̑hX~@*DU%/ҵ||ܭS%n]auvlЍ{3*wJ8"{cgۇz.8BPp#g]RcP,*b=iei)}?$m/Bh?,"m0bXoXO ~(u"ajnv}?O!nI2B7+h>2jUY۰c^Ve>  2Q_kt'?9|ծ a^UwU KpXC/0~!QA9zęExud ߓR'[Թ>};4KL-Z%|Z//5. w?sˏ*3xzU]u6Å*9n/̑ \=75GyiTb^]>444Yp}\rϱ;CV[xXr/g}c=up߇x`Wf(MBTP\QPX?As۾ P1u8 H>VՊ*[?4VWێG}W#ȲX"Z{e7p KXyA:NxiT)g!fU.d)7Tv~JL9& LloaɃ5F{fmR̔xLr\Zj5w9^2XXxW*┰є.iH%4wMES(]əkGQuYek@sȪm[w/!_xď5~B5^`S})Kbh5Y-Ϗa9Sa qfaۑGSFQ1u&U%:#BRZijѮ/Bnt99^>LF"tn.8b_I߲;%zX֋E)]rN8)YrwsB4t6+uND2biv|̵hYjy5D==]G4yx-h.^dw /r j`w"ߚI|[H !@9ur. s9:B#.=S,F ,ZϷ,8._kq0ZԳo=Ty^Nyn{Iga?|/rRI3*ƓJҚg^:%?',\CHgmiV`6{_:gvO:fp Be"6<ϲppPI$;Zϟ{a tƀʠiP`^ދk{0Y^5nk6*2~/ޡ@̃vnkj>+|wUɤ҅h ܛURDba>[(jfPD0hТK=-VbE(kSn/{F7ذ,/zwV0[S.e;<:^%}T9!0?4g\2l;M߭W:Zۢf@Gfſc!jFCYcd L<<+2?i\㩓N_m tŶ){$iä'g[j80ai*EFz eNh`o# xPKU)2Fh˹\4竦:K9_y "lJ_QeBe~*:޼%DRm5)$}սUӝv|{*1ե4 ^G<_ͰX]{gn>kA Iuf)cia,z+'{Qa U?נhjR+C0}M0Yjܱdp4}{nn)bEB Tu]S|%1ð2m1fYrTKuqx<Ƴ| A^%+Dlm-\|$VGq- 7.O񵻈y[b221*!?Bh\ww&` qendstream endobj 39580 0 obj <>/P 2352 0 R/Type/Annot/A 40048 0 R/Subtype/Link/Rect[193 670 205 678]/Border[0 0 0]/H/N>> endobj 39581 0 obj <>/P 2352 0 R/Type/Annot/A 40046 0 R/Subtype/Link/Rect[197 660 209 668]/Border[0 0 0]/H/N>> endobj 39582 0 obj <>/P 2352 0 R/Type/Annot/A 40044 0 R/Subtype/Link/Rect[188 650 200 658]/Border[0 0 0]/H/N>> endobj 39583 0 obj <>/P 2352 0 R/Type/Annot/A 40042 0 R/Subtype/Link/Rect[193 640 205 648]/Border[0 0 0]/H/N>> endobj 39584 0 obj <>/P 2352 0 R/Type/Annot/A 40040 0 R/Subtype/Link/Rect[188 630 200 638]/Border[0 0 0]/H/N>> endobj 39585 0 obj <>/P 2352 0 R/Type/Annot/A 40038 0 R/Subtype/Link/Rect[197 620 209 628]/Border[0 0 0]/H/N>> endobj 39586 0 obj <>/P 2352 0 R/Type/Annot/A 40036 0 R/Subtype/Link/Rect[193 610 205 618]/Border[0 0 0]/H/N>> endobj 39587 0 obj <>/P 2352 0 R/Type/Annot/A 40034 0 R/Subtype/Link/Rect[183 600 195 608]/Border[0 0 0]/H/N>> endobj 39588 0 obj <>/P 2352 0 R/Type/Annot/A 40032 0 R/Subtype/Link/Rect[197 590 209 598]/Border[0 0 0]/H/N>> endobj 39589 0 obj <>/P 2352 0 R/Type/Annot/A 40030 0 R/Subtype/Link/Rect[188 580 200 588]/Border[0 0 0]/H/N>> endobj 39590 0 obj <>/P 2352 0 R/Type/Annot/A 40028 0 R/Subtype/Link/Rect[183 570 195 578]/Border[0 0 0]/H/N>> endobj 39591 0 obj <>/P 2352 0 R/Type/Annot/A 40026 0 R/Subtype/Link/Rect[193 560 205 568]/Border[0 0 0]/H/N>> endobj 39592 0 obj <>/P 2352 0 R/Type/Annot/A 40024 0 R/Subtype/Link/Rect[208 550 218 558]/Border[0 0 0]/H/N>> endobj 39593 0 obj <>/P 2352 0 R/Type/Annot/A 40022 0 R/Subtype/Link/Rect[220 550 230 558]/Border[0 0 0]/H/N>> endobj 39594 0 obj <>/P 2352 0 R/Type/Annot/A 40020 0 R/Subtype/Link/Rect[232 550 246 558]/Border[0 0 0]/H/N>> endobj 39595 0 obj <>/P 2352 0 R/Type/Annot/A 40019 0 R/Subtype/Link/Rect[248 550 261 558]/Border[0 0 0]/H/N>> endobj 39596 0 obj <>/P 2352 0 R/Type/Annot/A 40018 0 R/Subtype/Link/Rect[263 550 277 558]/Border[0 0 0]/H/N>> endobj 39597 0 obj <>/P 2352 0 R/Type/Annot/A 40017 0 R/Subtype/Link/Rect[279 550 293 558]/Border[0 0 0]/H/N>> endobj 39598 0 obj <>/P 2352 0 R/Type/Annot/A 40016 0 R/Subtype/Link/Rect[295 550 307 558]/Border[0 0 0]/H/N>> endobj 39599 0 obj <>/P 2352 0 R/Type/Annot/A 40015 0 R/Subtype/Link/Rect[230 540 244 548]/Border[0 0 0]/H/N>> endobj 39600 0 obj <>/P 2352 0 R/Type/Annot/A 40014 0 R/Subtype/Link/Rect[246 540 260 548]/Border[0 0 0]/H/N>> endobj 39601 0 obj <>/P 2352 0 R/Type/Annot/A 40013 0 R/Subtype/Link/Rect[262 540 276 548]/Border[0 0 0]/H/N>> endobj 39602 0 obj <>/P 2352 0 R/Type/Annot/A 40012 0 R/Subtype/Link/Rect[278 540 292 548]/Border[0 0 0]/H/N>> endobj 39603 0 obj <>/P 2352 0 R/Type/Annot/A 40011 0 R/Subtype/Link/Rect[151 530 168 539]/Border[0 0 0]/H/N>> endobj 39604 0 obj <>/P 2352 0 R/Type/Annot/A 40010 0 R/Subtype/Link/Rect[168 530 182 538]/Border[0 0 0]/H/N>> endobj 39605 0 obj <>/P 2352 0 R/Type/Annot/A 40009 0 R/Subtype/Link/Rect[184 530 198 538]/Border[0 0 0]/H/N>> endobj 39606 0 obj <>/P 2352 0 R/Type/Annot/A 40008 0 R/Subtype/Link/Rect[200 530 214 538]/Border[0 0 0]/H/N>> endobj 39607 0 obj <>/P 2352 0 R/Type/Annot/A 40007 0 R/Subtype/Link/Rect[216 530 230 538]/Border[0 0 0]/H/N>> endobj 39608 0 obj <>/P 2352 0 R/Type/Annot/A 40006 0 R/Subtype/Link/Rect[232 530 246 538]/Border[0 0 0]/H/N>> endobj 39609 0 obj <>/P 2352 0 R/Type/Annot/A 40005 0 R/Subtype/Link/Rect[248 530 260 538]/Border[0 0 0]/H/N>> endobj 39610 0 obj <>/P 2352 0 R/Type/Annot/A 40004 0 R/Subtype/Link/Rect[207 520 219 528]/Border[0 0 0]/H/N>> endobj 39611 0 obj <>/P 2352 0 R/Type/Annot/A 40003 0 R/Subtype/Link/Rect[182 510 194 518]/Border[0 0 0]/H/N>> endobj 39612 0 obj <>/P 2352 0 R/Type/Annot/A 40002 0 R/Subtype/Link/Rect[195 500 212 509]/Border[0 0 0]/H/N>> endobj 39613 0 obj <>/P 2352 0 R/Type/Annot/A 40001 0 R/Subtype/Link/Rect[213 500 225 508]/Border[0 0 0]/H/N>> endobj 39614 0 obj <>/P 2352 0 R/Type/Annot/A 40000 0 R/Subtype/Link/Rect[163 490 180 499]/Border[0 0 0]/H/N>> endobj 39615 0 obj <>/P 2352 0 R/Type/Annot/A 39999 0 R/Subtype/Link/Rect[180 490 192 498]/Border[0 0 0]/H/N>> endobj 39616 0 obj <>/P 2352 0 R/Type/Annot/A 39998 0 R/Subtype/Link/Rect[207 480 219 488]/Border[0 0 0]/H/N>> endobj 39617 0 obj <>/P 2352 0 R/Type/Annot/A 39997 0 R/Subtype/Link/Rect[189 470 199 478]/Border[0 0 0]/H/N>> endobj 39618 0 obj <>/P 2352 0 R/Type/Annot/A 39996 0 R/Subtype/Link/Rect[201 470 213 478]/Border[0 0 0]/H/N>> endobj 39619 0 obj <>/P 2352 0 R/Type/Annot/A 39995 0 R/Subtype/Link/Rect[203 460 215 468]/Border[0 0 0]/H/N>> endobj 39620 0 obj <>/P 2352 0 R/Type/Annot/A 39994 0 R/Subtype/Link/Rect[212 450 224 458]/Border[0 0 0]/H/N>> endobj 39621 0 obj <>/P 2352 0 R/Type/Annot/A 39993 0 R/Subtype/Link/Rect[160 440 172 448]/Border[0 0 0]/H/N>> endobj 39622 0 obj <>/P 2352 0 R/Type/Annot/A 39992 0 R/Subtype/Link/Rect[219 430 236 439]/Border[0 0 0]/H/N>> endobj 39623 0 obj <>/P 2352 0 R/Type/Annot/A 39991 0 R/Subtype/Link/Rect[236 430 248 438]/Border[0 0 0]/H/N>> endobj 39624 0 obj <>/P 2352 0 R/Type/Annot/A 39990 0 R/Subtype/Link/Rect[227 410 244 419]/Border[0 0 0]/H/N>> endobj 39625 0 obj <>/P 2352 0 R/Type/Annot/A 39989 0 R/Subtype/Link/Rect[244 410 256 418]/Border[0 0 0]/H/N>> endobj 39626 0 obj <>/P 2352 0 R/Type/Annot/A 39988 0 R/Subtype/Link/Rect[212 400 226 408]/Border[0 0 0]/H/N>> endobj 39627 0 obj <>/P 2352 0 R/Type/Annot/A 39987 0 R/Subtype/Link/Rect[228 400 240 408]/Border[0 0 0]/H/N>> endobj 39628 0 obj <>/P 2352 0 R/Type/Annot/A 39986 0 R/Subtype/Link/Rect[188 390 202 398]/Border[0 0 0]/H/N>> endobj 39629 0 obj <>/P 2352 0 R/Type/Annot/A 39985 0 R/Subtype/Link/Rect[204 390 218 398]/Border[0 0 0]/H/N>> endobj 39630 0 obj <>/P 2352 0 R/Type/Annot/A 39984 0 R/Subtype/Link/Rect[220 390 234 398]/Border[0 0 0]/H/N>> endobj 39631 0 obj <>/P 2352 0 R/Type/Annot/A 39983 0 R/Subtype/Link/Rect[236 390 252 399]/Border[0 0 0]/H/N>> endobj 39632 0 obj <>/P 2352 0 R/Type/Annot/A 39982 0 R/Subtype/Link/Rect[253 390 267 398]/Border[0 0 0]/H/N>> endobj 39633 0 obj <>/P 2352 0 R/Type/Annot/A 39981 0 R/Subtype/Link/Rect[269 390 286 399]/Border[0 0 0]/H/N>> endobj 39634 0 obj <>/P 2352 0 R/Type/Annot/A 39980 0 R/Subtype/Link/Rect[286 390 300 398]/Border[0 0 0]/H/N>> endobj 39635 0 obj <>/P 2352 0 R/Type/Annot/A 39979 0 R/Subtype/Link/Rect[151 380 168 389]/Border[0 0 0]/H/N>> endobj 39636 0 obj <>/P 2352 0 R/Type/Annot/A 39978 0 R/Subtype/Link/Rect[168 380 182 388]/Border[0 0 0]/H/N>> endobj 39637 0 obj <>/P 2352 0 R/Type/Annot/A 39977 0 R/Subtype/Link/Rect[184 380 196 388]/Border[0 0 0]/H/N>> endobj 39638 0 obj <>/P 2352 0 R/Type/Annot/A 39976 0 R/Subtype/Link/Rect[190 370 202 378]/Border[0 0 0]/H/N>> endobj 39639 0 obj <>/P 2352 0 R/Type/Annot/A 39975 0 R/Subtype/Link/Rect[218 360 230 368]/Border[0 0 0]/H/N>> endobj 39640 0 obj <>/P 2352 0 R/Type/Annot/A 39974 0 R/Subtype/Link/Rect[213 350 225 358]/Border[0 0 0]/H/N>> endobj 39641 0 obj <>/P 2352 0 R/Type/Annot/A 39973 0 R/Subtype/Link/Rect[234 340 246 348]/Border[0 0 0]/H/N>> endobj 39642 0 obj <>/P 2352 0 R/Type/Annot/A 39972 0 R/Subtype/Link/Rect[194 330 204 338]/Border[0 0 0]/H/N>> endobj 39643 0 obj <>/P 2352 0 R/Type/Annot/A 39971 0 R/Subtype/Link/Rect[206 330 222 339]/Border[0 0 0]/H/N>> endobj 39644 0 obj <>/P 2352 0 R/Type/Annot/A 39970 0 R/Subtype/Link/Rect[223 330 235 338]/Border[0 0 0]/H/N>> endobj 39645 0 obj <>/P 2352 0 R/Type/Annot/A 39969 0 R/Subtype/Link/Rect[179 320 193 329]/Border[0 0 0]/H/N>> endobj 39646 0 obj <>/P 2352 0 R/Type/Annot/A 39968 0 R/Subtype/Link/Rect[195 320 207 329]/Border[0 0 0]/H/N>> endobj 39647 0 obj <>/P 2352 0 R/Type/Annot/A 39967 0 R/Subtype/Link/Rect[189 310 199 319]/Border[0 0 0]/H/N>> endobj 39648 0 obj <>/P 2352 0 R/Type/Annot/A 39966 0 R/Subtype/Link/Rect[201 310 211 319]/Border[0 0 0]/H/N>> endobj 39649 0 obj <>/P 2352 0 R/Type/Annot/A 39965 0 R/Subtype/Link/Rect[213 310 227 319]/Border[0 0 0]/H/N>> endobj 39650 0 obj <>/P 2352 0 R/Type/Annot/A 39964 0 R/Subtype/Link/Rect[229 310 242 319]/Border[0 0 0]/H/N>> endobj 39651 0 obj <>/P 2352 0 R/Type/Annot/A 39963 0 R/Subtype/Link/Rect[244 310 258 319]/Border[0 0 0]/H/N>> endobj 39652 0 obj <>/P 2352 0 R/Type/Annot/A 39962 0 R/Subtype/Link/Rect[260 310 272 319]/Border[0 0 0]/H/N>> endobj 39653 0 obj <>/P 2352 0 R/Type/Annot/A 39961 0 R/Subtype/Link/Rect[165 300 179 309]/Border[0 0 0]/H/N>> endobj 39654 0 obj <>/P 2352 0 R/Type/Annot/A 39960 0 R/Subtype/Link/Rect[181 300 193 309]/Border[0 0 0]/H/N>> endobj 39655 0 obj <>/P 2352 0 R/Type/Annot/A 39959 0 R/Subtype/Link/Rect[181 290 185 299]/Border[0 0 0]/H/N>> endobj 39656 0 obj <>/P 2352 0 R/Type/Annot/A 39958 0 R/Subtype/Link/Rect[180 280 186 289]/Border[0 0 0]/H/N>> endobj 39657 0 obj <>/P 2352 0 R/Type/Annot/A 39957 0 R/Subtype/Link/Rect[188 280 198 289]/Border[0 0 0]/H/N>> endobj 39658 0 obj <>/P 2352 0 R/Type/Annot/A 39956 0 R/Subtype/Link/Rect[200 280 210 289]/Border[0 0 0]/H/N>> endobj 39659 0 obj <>/P 2352 0 R/Type/Annot/A 39955 0 R/Subtype/Link/Rect[212 280 226 289]/Border[0 0 0]/H/N>> endobj 39660 0 obj <>/P 2352 0 R/Type/Annot/A 39954 0 R/Subtype/Link/Rect[228 280 242 289]/Border[0 0 0]/H/N>> endobj 39661 0 obj <>/P 2352 0 R/Type/Annot/A 39953 0 R/Subtype/Link/Rect[244 280 258 289]/Border[0 0 0]/H/N>> endobj 39662 0 obj <>/P 2352 0 R/Type/Annot/A 39952 0 R/Subtype/Link/Rect[260 280 274 289]/Border[0 0 0]/H/N>> endobj 39663 0 obj <>/P 2352 0 R/Type/Annot/A 39951 0 R/Subtype/Link/Rect[276 280 290 289]/Border[0 0 0]/H/N>> endobj 39664 0 obj <>/P 2352 0 R/Type/Annot/A 39950 0 R/Subtype/Link/Rect[292 280 306 289]/Border[0 0 0]/H/N>> endobj 39665 0 obj <>/P 2352 0 R/Type/Annot/A 39949 0 R/Subtype/Link/Rect[151 270 165 279]/Border[0 0 0]/H/N>> endobj 39666 0 obj <>/P 2352 0 R/Type/Annot/A 39948 0 R/Subtype/Link/Rect[167 270 181 279]/Border[0 0 0]/H/N>> endobj 39667 0 obj <>/P 2352 0 R/Type/Annot/A 39947 0 R/Subtype/Link/Rect[183 270 197 279]/Border[0 0 0]/H/N>> endobj 39668 0 obj <>/P 2352 0 R/Type/Annot/A 39946 0 R/Subtype/Link/Rect[199 270 213 279]/Border[0 0 0]/H/N>> endobj 39669 0 obj <>/P 2352 0 R/Type/Annot/A 39945 0 R/Subtype/Link/Rect[215 270 229 279]/Border[0 0 0]/H/N>> endobj 39670 0 obj <>/P 2352 0 R/Type/Annot/A 39944 0 R/Subtype/Link/Rect[231 270 243 279]/Border[0 0 0]/H/N>> endobj 39671 0 obj <>/P 2352 0 R/Type/Annot/A 39943 0 R/Subtype/Link/Rect[202 260 210 269]/Border[0 0 0]/H/N>> endobj 39672 0 obj <>/P 2352 0 R/Type/Annot/A 39942 0 R/Subtype/Link/Rect[211 260 217 269]/Border[0 0 0]/H/N>> endobj 39673 0 obj <>/P 2352 0 R/Type/Annot/A 39941 0 R/Subtype/Link/Rect[219 260 229 269]/Border[0 0 0]/H/N>> endobj 39674 0 obj <>/P 2352 0 R/Type/Annot/A 39940 0 R/Subtype/Link/Rect[231 260 241 269]/Border[0 0 0]/H/N>> endobj 39675 0 obj <>/P 2352 0 R/Type/Annot/A 39939 0 R/Subtype/Link/Rect[243 260 253 269]/Border[0 0 0]/H/N>> endobj 39676 0 obj <>/P 2352 0 R/Type/Annot/A 39938 0 R/Subtype/Link/Rect[255 260 269 269]/Border[0 0 0]/H/N>> endobj 39677 0 obj <>/P 2352 0 R/Type/Annot/A 39937 0 R/Subtype/Link/Rect[271 260 285 269]/Border[0 0 0]/H/N>> endobj 39678 0 obj <>/P 2352 0 R/Type/Annot/A 39935 0 R/Subtype/Link/Rect[287 260 301 269]/Border[0 0 0]/H/N>> endobj 39679 0 obj <>/P 2352 0 R/Type/Annot/A 39934 0 R/Subtype/Link/Rect[151 250 165 259]/Border[0 0 0]/H/N>> endobj 39680 0 obj <>/P 2352 0 R/Type/Annot/A 39933 0 R/Subtype/Link/Rect[167 250 179 259]/Border[0 0 0]/H/N>> endobj 39681 0 obj <>/P 2352 0 R/Type/Annot/A 39932 0 R/Subtype/Link/Rect[176 240 184 249]/Border[0 0 0]/H/N>> endobj 39682 0 obj <>/P 2352 0 R/Type/Annot/A 39930 0 R/Subtype/Link/Rect[196 230 210 239]/Border[0 0 0]/H/N>> endobj 39683 0 obj <>/P 2352 0 R/Type/Annot/A 39929 0 R/Subtype/Link/Rect[212 230 226 239]/Border[0 0 0]/H/N>> endobj 39684 0 obj <>/P 2352 0 R/Type/Annot/A 39928 0 R/Subtype/Link/Rect[228 230 242 239]/Border[0 0 0]/H/N>> endobj 39685 0 obj <>/P 2352 0 R/Type/Annot/A 39927 0 R/Subtype/Link/Rect[244 230 258 239]/Border[0 0 0]/H/N>> endobj 39686 0 obj <>/P 2352 0 R/Type/Annot/A 39925 0 R/Subtype/Link/Rect[260 230 274 239]/Border[0 0 0]/H/N>> endobj 39687 0 obj <>/P 2352 0 R/Type/Annot/A 39923 0 R/Subtype/Link/Rect[276 230 290 239]/Border[0 0 0]/H/N>> endobj 39688 0 obj <>/P 2352 0 R/Type/Annot/A 39922 0 R/Subtype/Link/Rect[292 230 304 239]/Border[0 0 0]/H/N>> endobj 39689 0 obj <>/P 2352 0 R/Type/Annot/A 39920 0 R/Subtype/Link/Rect[197 220 211 229]/Border[0 0 0]/H/N>> endobj 39690 0 obj <>/P 2352 0 R/Type/Annot/A 39917 0 R/Subtype/Link/Rect[213 220 227 229]/Border[0 0 0]/H/N>> endobj 39691 0 obj <>/P 2352 0 R/Type/Annot/A 39912 0 R/Subtype/Link/Rect[229 220 243 229]/Border[0 0 0]/H/N>> endobj 39692 0 obj <>/P 2352 0 R/Type/Annot/A 39910 0 R/Subtype/Link/Rect[245 220 262 229]/Border[0 0 0]/H/N>> endobj 39693 0 obj <>/P 2352 0 R/Type/Annot/A 39907 0 R/Subtype/Link/Rect[263 220 275 229]/Border[0 0 0]/H/N>> endobj 39694 0 obj <>/P 2352 0 R/Type/Annot/A 39903 0 R/Subtype/Link/Rect[183 210 195 219]/Border[0 0 0]/H/N>> endobj 39695 0 obj <>/P 2352 0 R/Type/Annot/A 39899 0 R/Subtype/Link/Rect[183 200 195 209]/Border[0 0 0]/H/N>> endobj 39696 0 obj <>/P 2352 0 R/Type/Annot/A 39896 0 R/Subtype/Link/Rect[267 190 277 199]/Border[0 0 0]/H/N>> endobj 39697 0 obj <>/P 2352 0 R/Type/Annot/A 39895 0 R/Subtype/Link/Rect[279 190 289 199]/Border[0 0 0]/H/N>> endobj 39698 0 obj <>/P 2352 0 R/Type/Annot/A 39891 0 R/Subtype/Link/Rect[291 190 304 199]/Border[0 0 0]/H/N>> endobj 39699 0 obj <>/P 2352 0 R/Type/Annot/A 39888 0 R/Subtype/Link/Rect[151 180 165 189]/Border[0 0 0]/H/N>> endobj 39700 0 obj <>/P 2352 0 R/Type/Annot/A 39886 0 R/Subtype/Link/Rect[167 180 181 189]/Border[0 0 0]/H/N>> endobj 39701 0 obj <>/P 2352 0 R/Type/Annot/A 39879 0 R/Subtype/Link/Rect[183 180 197 189]/Border[0 0 0]/H/N>> endobj 39702 0 obj <>/P 2352 0 R/Type/Annot/A 39875 0 R/Subtype/Link/Rect[199 180 213 189]/Border[0 0 0]/H/N>> endobj 39703 0 obj <>/P 2352 0 R/Type/Annot/A 39873 0 R/Subtype/Link/Rect[215 180 229 189]/Border[0 0 0]/H/N>> endobj 39704 0 obj <>/P 2352 0 R/Type/Annot/A 39869 0 R/Subtype/Link/Rect[231 180 248 189]/Border[0 0 0]/H/N>> endobj 39705 0 obj <>/P 2352 0 R/Type/Annot/A 39867 0 R/Subtype/Link/Rect[248 180 262 189]/Border[0 0 0]/H/N>> endobj 39706 0 obj <>/P 2352 0 R/Type/Annot/A 39862 0 R/Subtype/Link/Rect[264 180 278 189]/Border[0 0 0]/H/N>> endobj 39707 0 obj <>/P 2352 0 R/Type/Annot/A 39859 0 R/Subtype/Link/Rect[280 180 294 189]/Border[0 0 0]/H/N>> endobj 39708 0 obj <>/P 2352 0 R/Type/Annot/A 39853 0 R/Subtype/Link/Rect[296 180 310 189]/Border[0 0 0]/H/N>> endobj 39709 0 obj <>/P 2352 0 R/Type/Annot/A 39850 0 R/Subtype/Link/Rect[151 170 168 179]/Border[0 0 0]/H/N>> endobj 39710 0 obj <>/P 2352 0 R/Type/Annot/A 39921 0 R/Subtype/Link/Rect[168 170 182 179]/Border[0 0 0]/H/N>> endobj 39711 0 obj <>/P 2352 0 R/Type/Annot/A 39918 0 R/Subtype/Link/Rect[184 170 198 179]/Border[0 0 0]/H/N>> endobj 39712 0 obj <>/P 2352 0 R/Type/Annot/A 44757 0 R/Subtype/Link/Rect[200 170 217 179]/Border[0 0 0]/H/N>> endobj 39713 0 obj <>/P 2352 0 R/Type/Annot/A 44711 0 R/Subtype/Link/Rect[217 170 231 179]/Border[0 0 0]/H/N>> endobj 39714 0 obj <>/P 2352 0 R/Type/Annot/A 40064 0 R/Subtype/Link/Rect[233 170 247 179]/Border[0 0 0]/H/N>> endobj 39715 0 obj <>/P 2352 0 R/Type/Annot/A 39902 0 R/Subtype/Link/Rect[249 170 266 179]/Border[0 0 0]/H/N>> endobj 39716 0 obj <>/P 2352 0 R/Type/Annot/A 39898 0 R/Subtype/Link/Rect[267 170 281 179]/Border[0 0 0]/H/N>> endobj 39717 0 obj <>/P 2352 0 R/Type/Annot/A 44585 0 R/Subtype/Link/Rect[283 170 297 179]/Border[0 0 0]/H/N>> endobj 39718 0 obj <>/P 2352 0 R/Type/Annot/A 39894 0 R/Subtype/Link/Rect[299 170 311 179]/Border[0 0 0]/H/N>> endobj 39719 0 obj <>/P 2352 0 R/Type/Annot/A 39890 0 R/Subtype/Link/Rect[220 160 232 169]/Border[0 0 0]/H/N>> endobj 39720 0 obj <>/P 2352 0 R/Type/Annot/A 44487 0 R/Subtype/Link/Rect[255 160 263 169]/Border[0 0 0]/H/N>> endobj 39721 0 obj <>/P 2352 0 R/Type/Annot/A 39885 0 R/Subtype/Link/Rect[220 150 232 159]/Border[0 0 0]/H/N>> endobj 39722 0 obj <>/P 2352 0 R/Type/Annot/A 39878 0 R/Subtype/Link/Rect[255 150 263 159]/Border[0 0 0]/H/N>> endobj 39723 0 obj <>/P 2352 0 R/Type/Annot/A 39874 0 R/Subtype/Link/Rect[358 670 372 678]/Border[0 0 0]/H/N>> endobj 39724 0 obj <>/P 2352 0 R/Type/Annot/A 44341 0 R/Subtype/Link/Rect[401 660 415 668]/Border[0 0 0]/H/N>> endobj 39725 0 obj <>/P 2352 0 R/Type/Annot/A 39868 0 R/Subtype/Link/Rect[417 660 433 669]/Border[0 0 0]/H/N>> endobj 39726 0 obj <>/P 2352 0 R/Type/Annot/A 39865 0 R/Subtype/Link/Rect[434 660 448 668]/Border[0 0 0]/H/N>> endobj 39727 0 obj <>/P 2352 0 R/Type/Annot/A 44232 0 R/Subtype/Link/Rect[450 660 462 668]/Border[0 0 0]/H/N>> endobj 39728 0 obj <>/P 2352 0 R/Type/Annot/A 39856 0 R/Subtype/Link/Rect[440 650 452 658]/Border[0 0 0]/H/N>> endobj 39729 0 obj <>/P 2352 0 R/Type/Annot/A 39851 0 R/Subtype/Link/Rect[386 640 398 648]/Border[0 0 0]/H/N>> endobj 39730 0 obj <>/P 2352 0 R/Type/Annot/A 44116 0 R/Subtype/Link/Rect[415 630 431 639]/Border[0 0 0]/H/N>> endobj 39731 0 obj <>/P 2352 0 R/Type/Annot/A 39916 0 R/Subtype/Link/Rect[432 630 446 638]/Border[0 0 0]/H/N>> endobj 39732 0 obj <>/P 2352 0 R/Type/Annot/A 39911 0 R/Subtype/Link/Rect[448 630 465 639]/Border[0 0 0]/H/N>> endobj 39733 0 obj <>/P 2352 0 R/Type/Annot/A 39909 0 R/Subtype/Link/Rect[465 630 479 638]/Border[0 0 0]/H/N>> endobj 39734 0 obj <>/P 2352 0 R/Type/Annot/A 39905 0 R/Subtype/Link/Rect[481 630 493 638]/Border[0 0 0]/H/N>> endobj 39735 0 obj <>/P 2352 0 R/Type/Annot/A 39900 0 R/Subtype/Link/Rect[398 620 410 628]/Border[0 0 0]/H/N>> endobj 39736 0 obj <>/P 2352 0 R/Type/Annot/A 43909 0 R/Subtype/Link/Rect[386 610 394 618]/Border[0 0 0]/H/N>> endobj 39737 0 obj <>/P 2352 0 R/Type/Annot/A 44591 0 R/Subtype/Link/Rect[428 600 444 609]/Border[0 0 0]/H/N>> endobj 39738 0 obj <>/P 2352 0 R/Type/Annot/A 39892 0 R/Subtype/Link/Rect[445 600 459 608]/Border[0 0 0]/H/N>> endobj 39739 0 obj <>/P 2352 0 R/Type/Annot/A 43800 0 R/Subtype/Link/Rect[461 600 475 608]/Border[0 0 0]/H/N>> endobj 39740 0 obj <>/P 2352 0 R/Type/Annot/A 39887 0 R/Subtype/Link/Rect[477 600 491 608]/Border[0 0 0]/H/N>> endobj 39741 0 obj <>/P 2352 0 R/Type/Annot/A 39882 0 R/Subtype/Link/Rect[493 600 507 608]/Border[0 0 0]/H/N>> endobj 39742 0 obj <>/P 2352 0 R/Type/Annot/A 39876 0 R/Subtype/Link/Rect[359 590 373 598]/Border[0 0 0]/H/N>> endobj 39743 0 obj <>/P 2352 0 R/Type/Annot/A 44368 0 R/Subtype/Link/Rect[375 590 389 598]/Border[0 0 0]/H/N>> endobj 39744 0 obj <>/P 2352 0 R/Type/Annot/A 39870 0 R/Subtype/Link/Rect[391 590 405 598]/Border[0 0 0]/H/N>> endobj 39745 0 obj <>/P 2352 0 R/Type/Annot/A 44299 0 R/Subtype/Link/Rect[407 590 419 598]/Border[0 0 0]/H/N>> endobj 39746 0 obj <>/P 2352 0 R/Type/Annot/A 43530 0 R/Subtype/Link/Rect[405 580 415 588]/Border[0 0 0]/H/N>> endobj 39747 0 obj <>/P 2352 0 R/Type/Annot/A 39858 0 R/Subtype/Link/Rect[417 580 431 588]/Border[0 0 0]/H/N>> endobj 39748 0 obj <>/P 2352 0 R/Type/Annot/A 39852 0 R/Subtype/Link/Rect[433 580 447 588]/Border[0 0 0]/H/N>> endobj 39749 0 obj <>/P 2352 0 R/Type/Annot/A 44158 0 R/Subtype/Link/Rect[449 580 461 588]/Border[0 0 0]/H/N>> endobj 39750 0 obj <>/P 2352 0 R/Type/Annot/A 39914 0 R/Subtype/Link/Rect[444 570 458 578]/Border[0 0 0]/H/N>> endobj 39751 0 obj <>/P 2352 0 R/Type/Annot/A 44085 0 R/Subtype/Link/Rect[460 570 474 578]/Border[0 0 0]/H/N>> endobj 39752 0 obj <>/P 2352 0 R/Type/Annot/A 44041 0 R/Subtype/Link/Rect[476 570 488 578]/Border[0 0 0]/H/N>> endobj 39753 0 obj <>/P 2352 0 R/Type/Annot/A 39904 0 R/Subtype/Link/Rect[398 560 410 568]/Border[0 0 0]/H/N>> endobj 39754 0 obj <>/P 2352 0 R/Type/Annot/A 43971 0 R/Subtype/Link/Rect[425 550 437 558]/Border[0 0 0]/H/N>> endobj 39755 0 obj <>/P 2352 0 R/Type/Annot/A 39897 0 R/Subtype/Link/Rect[425 540 437 548]/Border[0 0 0]/H/N>> endobj 39756 0 obj <>/P 2352 0 R/Type/Annot/A 39936 0 R/Subtype/Link/Rect[425 530 437 538]/Border[0 0 0]/H/N>> endobj 39757 0 obj <>/P 2352 0 R/Type/Annot/A 43854 0 R/Subtype/Link/Rect[396 520 413 529]/Border[0 0 0]/H/N>> endobj 39758 0 obj <>/P 2352 0 R/Type/Annot/A 44513 0 R/Subtype/Link/Rect[414 520 428 528]/Border[0 0 0]/H/N>> endobj 39759 0 obj <>/P 2352 0 R/Type/Annot/A 39884 0 R/Subtype/Link/Rect[430 520 444 528]/Border[0 0 0]/H/N>> endobj 39760 0 obj <>/P 2352 0 R/Type/Annot/A 44436 0 R/Subtype/Link/Rect[446 520 460 528]/Border[0 0 0]/H/N>> endobj 39761 0 obj <>/P 2352 0 R/Type/Annot/A 43704 0 R/Subtype/Link/Rect[462 520 476 528]/Border[0 0 0]/H/N>> endobj 39762 0 obj <>/P 2352 0 R/Type/Annot/A 39871 0 R/Subtype/Link/Rect[478 520 492 528]/Border[0 0 0]/H/N>> endobj 39763 0 obj <>/P 2352 0 R/Type/Annot/A 43619 0 R/Subtype/Link/Rect[494 520 508 528]/Border[0 0 0]/H/N>> endobj 39764 0 obj <>/P 2352 0 R/Type/Annot/A 39863 0 R/Subtype/Link/Rect[359 510 373 518]/Border[0 0 0]/H/N>> endobj 39765 0 obj <>/P 2352 0 R/Type/Annot/A 39861 0 R/Subtype/Link/Rect[375 510 389 518]/Border[0 0 0]/H/N>> endobj 39766 0 obj <>/P 2352 0 R/Type/Annot/A 39854 0 R/Subtype/Link/Rect[391 510 403 518]/Border[0 0 0]/H/N>> endobj 39767 0 obj <>/P 2352 0 R/Type/Annot/A 39919 0 R/Subtype/Link/Rect[392 500 406 508]/Border[0 0 0]/H/N>> endobj 39768 0 obj <>/P 2352 0 R/Type/Annot/A 39913 0 R/Subtype/Link/Rect[408 500 420 508]/Border[0 0 0]/H/N>> endobj 39769 0 obj <>/P 2352 0 R/Type/Annot/A 43399 0 R/Subtype/Link/Rect[397 490 409 498]/Border[0 0 0]/H/N>> endobj 39770 0 obj <>/P 2352 0 R/Type/Annot/A 39906 0 R/Subtype/Link/Rect[367 442 380 451]/Border[0 0 0]/H/N>> endobj 39771 0 obj <>/P 2352 0 R/Type/Annot/A 39901 0 R/Subtype/Link/Rect[381 442 391 450]/Border[0 0 0]/H/N>> endobj 39772 0 obj <>/P 2352 0 R/Type/Annot/A 43994 0 R/Subtype/Link/Rect[393 442 407 450]/Border[0 0 0]/H/N>> endobj 39773 0 obj <>/P 2352 0 R/Type/Annot/A 42515 0 R/Subtype/Link/Rect[409 442 421 450]/Border[0 0 0]/H/N>> endobj 39774 0 obj <>/P 2352 0 R/Type/Annot/A 44593 0 R/Subtype/Link/Rect[368 432 374 440]/Border[0 0 0]/H/N>> endobj 39775 0 obj <>/P 2352 0 R/Type/Annot/A 42426 0 R/Subtype/Link/Rect[376 432 386 440]/Border[0 0 0]/H/N>> endobj 39776 0 obj <>/P 2352 0 R/Type/Annot/A 43838 0 R/Subtype/Link/Rect[388 432 402 440]/Border[0 0 0]/H/N>> endobj 39777 0 obj <>/P 2352 0 R/Type/Annot/A 39880 0 R/Subtype/Link/Rect[404 432 418 440]/Border[0 0 0]/H/N>> endobj 39778 0 obj <>/P 2352 0 R/Type/Annot/A 40061 0 R/Subtype/Link/Rect[420 432 434 440]/Border[0 0 0]/H/N>> endobj 39779 0 obj <>/P 2352 0 R/Type/Annot/A 43718 0 R/Subtype/Link/Rect[436 432 448 440]/Border[0 0 0]/H/N>> endobj 39780 0 obj <>/P 2352 0 R/Type/Annot/A 42239 0 R/Subtype/Link/Rect[392 422 402 430]/Border[0 0 0]/H/N>> endobj 39781 0 obj <>/P 2352 0 R/Type/Annot/A 39864 0 R/Subtype/Link/Rect[404 422 412 430]/Border[0 0 0]/H/N>> endobj 39782 0 obj <>/P 2352 0 R/Type/Annot/A 42869 0 R/Subtype/Link/Rect[375 402 383 410]/Border[0 0 0]/H/N>> endobj 39783 0 obj <>/P 2352 0 R/Type/Annot/A 39855 0 R/Subtype/Link/Rect[371 392 379 400]/Border[0 0 0]/H/N>> endobj 39784 0 obj <>/P 2352 0 R/Type/Annot/A 42067 0 R/Subtype/Link/Rect[493 382 501 390]/Border[0 0 0]/H/N>> endobj 39785 0 obj <>/P 2352 0 R/Type/Annot/A 44841 0 R/Subtype/Link/Rect[392 372 402 380]/Border[0 0 0]/H/N>> endobj 39786 0 obj <>/P 2352 0 R/Type/Annot/A 42726 0 R/Subtype/Link/Rect[404 372 414 380]/Border[0 0 0]/H/N>> endobj 39787 0 obj <>/P 2352 0 R/Type/Annot/A 41951 0 R/Subtype/Link/Rect[416 372 426 380]/Border[0 0 0]/H/N>> endobj 39788 0 obj <>/P 2352 0 R/Type/Annot/A 43362 0 R/Subtype/Link/Rect[428 372 442 380]/Border[0 0 0]/H/N>> endobj 39789 0 obj <>/P 2352 0 R/Type/Annot/A 44678 0 R/Subtype/Link/Rect[444 372 458 380]/Border[0 0 0]/H/N>> endobj 39790 0 obj <>/P 2352 0 R/Type/Annot/A 41811 0 R/Subtype/Link/Rect[460 372 476 381]/Border[0 0 0]/H/N>> endobj 39791 0 obj <>/P 2352 0 R/Type/Annot/A 42542 0 R/Subtype/Link/Rect[477 372 491 380]/Border[0 0 0]/H/N>> endobj 39792 0 obj <>/P 2352 0 R/Type/Annot/A 43884 0 R/Subtype/Link/Rect[493 372 507 380]/Border[0 0 0]/H/N>> endobj 39793 0 obj <>/P 2352 0 R/Type/Annot/A 39883 0 R/Subtype/Link/Rect[359 362 371 370]/Border[0 0 0]/H/N>> endobj 39794 0 obj <>/P 2352 0 R/Type/Annot/A 39877 0 R/Subtype/Link/Rect[405 352 422 361]/Border[0 0 0]/H/N>> endobj 39795 0 obj <>/P 2352 0 R/Type/Annot/A 42375 0 R/Subtype/Link/Rect[422 352 436 360]/Border[0 0 0]/H/N>> endobj 39796 0 obj <>/P 2352 0 R/Type/Annot/A 39926 0 R/Subtype/Link/Rect[438 352 452 360]/Border[0 0 0]/H/N>> endobj 39797 0 obj <>/P 2352 0 R/Type/Annot/A 39866 0 R/Subtype/Link/Rect[454 352 468 360]/Border[0 0 0]/H/N>> endobj 39798 0 obj <>/P 2352 0 R/Type/Annot/A 41463 0 R/Subtype/Link/Rect[470 352 484 360]/Border[0 0 0]/H/N>> endobj 39799 0 obj <>/P 2352 0 R/Type/Annot/A 39857 0 R/Subtype/Link/Rect[486 352 498 360]/Border[0 0 0]/H/N>> endobj 39800 0 obj <>/P 2352 0 R/Type/Annot/A 39915 0 R/Subtype/Link/Rect[398 342 410 350]/Border[0 0 0]/H/N>> endobj 39801 0 obj <>/P 2352 0 R/Type/Annot/A 43527 0 R/Subtype/Link/Rect[406 332 418 340]/Border[0 0 0]/H/N>> endobj 39802 0 obj <>/P 2352 0 R/Type/Annot/A 39908 0 R/Subtype/Link/Rect[449 322 465 331]/Border[0 0 0]/H/N>> endobj 39803 0 obj <>/P 2352 0 R/Type/Annot/A 41278 0 R/Subtype/Link/Rect[466 322 478 331]/Border[0 0 0]/H/N>> endobj 39804 0 obj <>/P 2352 0 R/Type/Annot/A 42710 0 R/Subtype/Link/Rect[390 312 404 321]/Border[0 0 0]/H/N>> endobj 39805 0 obj <>/P 2352 0 R/Type/Annot/A 44038 0 R/Subtype/Link/Rect[406 312 418 321]/Border[0 0 0]/H/N>> endobj 39806 0 obj <>/P 2352 0 R/Type/Annot/A 39893 0 R/Subtype/Link/Rect[391 302 403 311]/Border[0 0 0]/H/N>> endobj 39807 0 obj <>/P 2352 0 R/Type/Annot/A 39889 0 R/Subtype/Link/Rect[392 292 402 301]/Border[0 0 0]/H/N>> endobj 39808 0 obj <>/P 2352 0 R/Type/Annot/A 39931 0 R/Subtype/Link/Rect[404 292 418 301]/Border[0 0 0]/H/N>> endobj 39809 0 obj <>/P 2352 0 R/Type/Annot/A 39881 0 R/Subtype/Link/Rect[420 292 434 301]/Border[0 0 0]/H/N>> endobj 39810 0 obj <>/P 2352 0 R/Type/Annot/A 40053 0 R/Subtype/Link/Rect[436 292 450 301]/Border[0 0 0]/H/N>> endobj 39811 0 obj <>/P 2352 0 R/Type/Annot/A 39872 0 R/Subtype/Link/Rect[452 292 466 301]/Border[0 0 0]/H/N>> endobj 39812 0 obj <>/P 2352 0 R/Type/Annot/A 39924 0 R/Subtype/Link/Rect[468 292 484 301]/Border[0 0 0]/H/N>> endobj 39813 0 obj <>/P 2352 0 R/Type/Annot/A 42999 0 R/Subtype/Link/Rect[485 292 499 301]/Border[0 0 0]/H/N>> endobj 39814 0 obj <>/P 2352 0 R/Type/Annot/A 39860 0 R/Subtype/Link/Rect[501 292 515 301]/Border[0 0 0]/H/N>> endobj 39815 0 obj <>/P 2352 0 R/Type/Annot/A 40074 0 R/Subtype/Link/Rect[359 282 371 291]/Border[0 0 0]/H/N>> endobj 39816 0 obj <>/P 2352 0 R/Type/Annot/A 40071 0 R/Subtype/Link/Rect[415 272 427 281]/Border[0 0 0]/H/N>> endobj 39817 0 obj <>/P 2352 0 R/Type/Annot/A 40070 0 R/Subtype/Link/Rect[410 262 424 271]/Border[0 0 0]/H/N>> endobj 39818 0 obj <>/P 2352 0 R/Type/Annot/A 40069 0 R/Subtype/Link/Rect[426 262 438 271]/Border[0 0 0]/H/N>> endobj 39819 0 obj <>/P 2352 0 R/Type/Annot/A 40068 0 R/Subtype/Link/Rect[410 252 422 261]/Border[0 0 0]/H/N>> endobj 39820 0 obj <>/P 2352 0 R/Type/Annot/A 40067 0 R/Subtype/Link/Rect[415 242 429 251]/Border[0 0 0]/H/N>> endobj 39821 0 obj <>/P 2352 0 R/Type/Annot/A 40066 0 R/Subtype/Link/Rect[431 242 443 251]/Border[0 0 0]/H/N>> endobj 39822 0 obj <>/P 2352 0 R/Type/Annot/A 40065 0 R/Subtype/Link/Rect[421 232 435 241]/Border[0 0 0]/H/N>> endobj 39823 0 obj <>/P 2352 0 R/Type/Annot/A 40063 0 R/Subtype/Link/Rect[437 232 451 241]/Border[0 0 0]/H/N>> endobj 39824 0 obj <>/P 2352 0 R/Type/Annot/A 40062 0 R/Subtype/Link/Rect[453 232 467 241]/Border[0 0 0]/H/N>> endobj 39825 0 obj <>/P 2352 0 R/Type/Annot/A 40060 0 R/Subtype/Link/Rect[469 232 481 241]/Border[0 0 0]/H/N>> endobj 39826 0 obj <>/P 2352 0 R/Type/Annot/A 40059 0 R/Subtype/Link/Rect[387 222 393 231]/Border[0 0 0]/H/N>> endobj 39827 0 obj <>/P 2352 0 R/Type/Annot/A 40058 0 R/Subtype/Link/Rect[395 222 405 231]/Border[0 0 0]/H/N>> endobj 39828 0 obj <>/P 2352 0 R/Type/Annot/A 40057 0 R/Subtype/Link/Rect[407 222 419 231]/Border[0 0 0]/H/N>> endobj 39829 0 obj <>/P 2352 0 R/Type/Annot/A 40056 0 R/Subtype/Link/Rect[425 212 439 221]/Border[0 0 0]/H/N>> endobj 39830 0 obj <>/P 2352 0 R/Type/Annot/A 40055 0 R/Subtype/Link/Rect[441 212 455 221]/Border[0 0 0]/H/N>> endobj 39831 0 obj <>/P 2352 0 R/Type/Annot/A 40054 0 R/Subtype/Link/Rect[457 212 469 221]/Border[0 0 0]/H/N>> endobj 39832 0 obj <>/P 2352 0 R/Type/Annot/A 40052 0 R/Subtype/Link/Rect[399 202 411 211]/Border[0 0 0]/H/N>> endobj 39833 0 obj <>/P 2352 0 R/Type/Annot/A 40051 0 R/Subtype/Link/Rect[425 192 439 201]/Border[0 0 0]/H/N>> endobj 39834 0 obj <>/P 2352 0 R/Type/Annot/A 40050 0 R/Subtype/Link/Rect[441 192 453 201]/Border[0 0 0]/H/N>> endobj 39835 0 obj <>/P 2352 0 R/Type/Annot/A 40049 0 R/Subtype/Link/Rect[387 182 399 191]/Border[0 0 0]/H/N>> endobj 39836 0 obj <>/P 2352 0 R/Type/Annot/A 40047 0 R/Subtype/Link/Rect[425 172 439 181]/Border[0 0 0]/H/N>> endobj 39837 0 obj <>/P 2352 0 R/Type/Annot/A 40045 0 R/Subtype/Link/Rect[441 172 453 181]/Border[0 0 0]/H/N>> endobj 39838 0 obj <>/P 2352 0 R/Type/Annot/A 40043 0 R/Subtype/Link/Rect[425 162 439 171]/Border[0 0 0]/H/N>> endobj 39839 0 obj <>/P 2352 0 R/Type/Annot/A 40041 0 R/Subtype/Link/Rect[441 162 453 171]/Border[0 0 0]/H/N>> endobj 39840 0 obj <>/P 2352 0 R/Type/Annot/A 40039 0 R/Subtype/Link/Rect[379 152 387 161]/Border[0 0 0]/H/N>> endobj 39841 0 obj <>/P 2352 0 R/Type/Annot/A 40037 0 R/Subtype/Link/Rect[376 668 390 677]/Border[0 0 0]/H/N>> endobj 39842 0 obj <>/P 2352 0 R/Type/Annot/A 40035 0 R/Subtype/Link/Rect[173 548 186 557]/Border[0 0 0]/H/N>> endobj 39843 0 obj <>/P 2352 0 R/Type/Annot/A 40033 0 R/Subtype/Link/Rect[188 548 207 557]/Border[0 0 0]/H/N>> endobj 39844 0 obj <>/P 2352 0 R/Type/Annot/A 40031 0 R/Subtype/Link/Rect[380 518 394 527]/Border[0 0 0]/H/N>> endobj 39845 0 obj <>/P 2352 0 R/Type/Annot/A 40029 0 R/Subtype/Link/Rect[373 450 385 459]/Border[0 0 0]/H/N>> endobj 39846 0 obj <>/P 2352 0 R/Type/Annot/A 40027 0 R/Subtype/Link/Rect[389 450 404 459]/Border[0 0 0]/H/N>> endobj 39847 0 obj <>/P 2352 0 R/Type/Annot/A 40025 0 R/Subtype/Link/Rect[169 308 188 317]/Border[0 0 0]/H/N>> endobj 39848 0 obj <>/P 2352 0 R/Type/Annot/A 40023 0 R/Subtype/Link/Rect[237 158 253 167]/Border[0 0 0]/H/N>> endobj 39849 0 obj <>/P 2352 0 R/Type/Annot/A 40021 0 R/Subtype/Link/Rect[237 148 253 157]/Border[0 0 0]/H/N>> endobj 39850 0 obj <> endobj 39851 0 obj <> endobj 39852 0 obj <> endobj 39853 0 obj <> endobj 39854 0 obj <> endobj 39855 0 obj <> endobj 39856 0 obj <> endobj 39857 0 obj <> endobj 39858 0 obj <> endobj 39859 0 obj <> endobj 39860 0 obj <> endobj 39861 0 obj <> endobj 39862 0 obj <> endobj 39863 0 obj <> endobj 39864 0 obj <> endobj 39865 0 obj <> endobj 39866 0 obj <> endobj 39867 0 obj <> endobj 39868 0 obj <> endobj 39869 0 obj <> endobj 39870 0 obj <> endobj 39871 0 obj <> endobj 39872 0 obj <> endobj 39873 0 obj <> endobj 39874 0 obj <> endobj 39875 0 obj <> endobj 39876 0 obj <> endobj 39877 0 obj <> endobj 39878 0 obj <> endobj 39879 0 obj <> endobj 39880 0 obj <> endobj 39881 0 obj <> endobj 39882 0 obj <> endobj 39883 0 obj <> endobj 39884 0 obj <> endobj 39885 0 obj <> endobj 39886 0 obj <> endobj 39887 0 obj <> endobj 39888 0 obj <> endobj 39889 0 obj <> endobj 39890 0 obj <> endobj 39891 0 obj <> endobj 39892 0 obj <> endobj 39893 0 obj <> endobj 39894 0 obj <> endobj 39895 0 obj <> endobj 39896 0 obj <> endobj 39897 0 obj <> endobj 39898 0 obj <> endobj 39899 0 obj <> endobj 39900 0 obj <> endobj 39901 0 obj <> endobj 39902 0 obj <> endobj 39903 0 obj <> endobj 39904 0 obj <> endobj 39905 0 obj <> endobj 39906 0 obj <> endobj 39907 0 obj <> endobj 39908 0 obj <> endobj 39909 0 obj <> endobj 39910 0 obj <> endobj 39911 0 obj <> endobj 39912 0 obj <> endobj 39913 0 obj <> endobj 39914 0 obj <> endobj 39915 0 obj <> endobj 39916 0 obj <> endobj 39917 0 obj <> endobj 39918 0 obj <> endobj 39919 0 obj <> endobj 39920 0 obj <> endobj 39921 0 obj <> endobj 39922 0 obj <> endobj 39923 0 obj <> endobj 39924 0 obj <> endobj 39925 0 obj <> endobj 39926 0 obj <> endobj 39927 0 obj <> endobj 39928 0 obj <> endobj 39929 0 obj <> endobj 39930 0 obj <> endobj 39931 0 obj <> endobj 39932 0 obj <> endobj 39933 0 obj <> endobj 39934 0 obj <> endobj 39935 0 obj <> endobj 39936 0 obj <> endobj 39937 0 obj <> endobj 39938 0 obj <> endobj 39939 0 obj <> endobj 39940 0 obj <> endobj 39941 0 obj <> endobj 39942 0 obj <> endobj 39943 0 obj <> endobj 39944 0 obj <> endobj 39945 0 obj <> endobj 39946 0 obj <> endobj 39947 0 obj <> endobj 39948 0 obj <> endobj 39949 0 obj <> endobj 39950 0 obj <> endobj 39951 0 obj <> endobj 39952 0 obj <> endobj 39953 0 obj <> endobj 39954 0 obj <> endobj 39955 0 obj <> endobj 39956 0 obj <> endobj 39957 0 obj <> endobj 39958 0 obj <> endobj 39959 0 obj <> endobj 39960 0 obj <> endobj 39961 0 obj <> endobj 39962 0 obj <> endobj 39963 0 obj <> endobj 39964 0 obj <> endobj 39965 0 obj <> endobj 39966 0 obj <> endobj 39967 0 obj <> endobj 39968 0 obj <> endobj 39969 0 obj <> endobj 39970 0 obj <> endobj 39971 0 obj <> endobj 39972 0 obj <> endobj 39973 0 obj <> endobj 39974 0 obj <> endobj 39975 0 obj <> endobj 39976 0 obj <> endobj 39977 0 obj <> endobj 39978 0 obj <> endobj 39979 0 obj <> endobj 39980 0 obj <> endobj 39981 0 obj <> endobj 39982 0 obj <> endobj 39983 0 obj <> endobj 39984 0 obj <> endobj 39985 0 obj <> endobj 39986 0 obj <> endobj 39987 0 obj <> endobj 39988 0 obj <> endobj 39989 0 obj <> endobj 39990 0 obj <> endobj 39991 0 obj <> endobj 39992 0 obj <> endobj 39993 0 obj <> endobj 39994 0 obj <> endobj 39995 0 obj <> endobj 39996 0 obj <> endobj 39997 0 obj <> endobj 39998 0 obj <> endobj 39999 0 obj <> endobj 40000 0 obj <> endobj 40001 0 obj <> endobj 40002 0 obj <> endobj 40003 0 obj <> endobj 40004 0 obj <> endobj 40005 0 obj <> endobj 40006 0 obj <> endobj 40007 0 obj <> endobj 40008 0 obj <> endobj 40009 0 obj <> endobj 40010 0 obj <> endobj 40011 0 obj <> endobj 40012 0 obj <> endobj 40013 0 obj <> endobj 40014 0 obj <> endobj 40015 0 obj <> endobj 40016 0 obj <> endobj 40017 0 obj <> endobj 40018 0 obj <> endobj 40019 0 obj <> endobj 40020 0 obj <> endobj 40021 0 obj <> endobj 40022 0 obj <> endobj 40023 0 obj <> endobj 40024 0 obj <> endobj 40025 0 obj <> endobj 40026 0 obj <> endobj 40027 0 obj <> endobj 40028 0 obj <> endobj 40029 0 obj <> endobj 40030 0 obj <> endobj 40031 0 obj <> endobj 40032 0 obj <> endobj 40033 0 obj <> endobj 40034 0 obj <> endobj 40035 0 obj <> endobj 40036 0 obj <> endobj 40037 0 obj <> endobj 40038 0 obj <> endobj 40039 0 obj <> endobj 40040 0 obj <> endobj 40041 0 obj <> endobj 40042 0 obj <> endobj 40043 0 obj <> endobj 40044 0 obj <> endobj 40045 0 obj <> endobj 40046 0 obj <> endobj 40047 0 obj <> endobj 40048 0 obj <> endobj 40049 0 obj <> endobj 40050 0 obj <> endobj 40051 0 obj <> endobj 40052 0 obj <> endobj 40053 0 obj <> endobj 40054 0 obj <> endobj 40055 0 obj <> endobj 40056 0 obj <> endobj 40057 0 obj <> endobj 40058 0 obj <> endobj 40059 0 obj <> endobj 40060 0 obj <> endobj 40061 0 obj <> endobj 40062 0 obj <> endobj 40063 0 obj <> endobj 40064 0 obj <> endobj 40065 0 obj <> endobj 40066 0 obj <> endobj 40067 0 obj <> endobj 40068 0 obj <> endobj 40069 0 obj <> endobj 40070 0 obj <> endobj 40071 0 obj <> endobj 40072 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 40073 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 40074 0 obj <> endobj 40075 0 obj <> endobj 40076 0 obj <> stream q /X1 Do Q q endstream endobj 40077 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 40078 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 40079 0 obj <> stream HWko_1|"Gۗ 1N0]JM.\o =RnaqX[SvpߗAxq՛*V? QR(rRDN}CmXUpKՔCz5ݾna_վ^UɨDB8W63^4%EæSW Bڷlzظ<|Pj8J[hUÃ3_- DZUw >|FI#@(E&(SNF($,! ,=IyK 5s7{a0Vpo{+̽; sO)s S>g}&ϘLp1>gs}/,ZRK1dqZ!{KH-Ő%gBj),=KRK1` ,ZH-Ő%gBj),!CV ,ZH-ŀ%bܳj!CV X!CwO1` {!R Y{Z#bܳ!Z!KpRkR Y{Z#bRK1d YjZ!KpRkR XBj),=KRK1d YjZRK1dqZ!{KH-Ő%gBj),=KRK1` ,VH-Ő%gBj),!C ,VH-ŀ%bܳZ!C X8!CwO1` {!/(Ys/WjeTVwA *t4#Vmw6܆wRo7T? úkwzb՗.TPw Ja#RGLQTwA[7]_vn/$"7 n;/)`󑷯~{^%TFFHG!W8?wUM}'t‚0(鍌i ިUGr"1v>!XL ZiYA2-'h9-ǴRA+eZ2LʘV&heL+r Z9*iVAt̵(,E1`%V´A+aZZLK ZPC^ uO1d ZPC^ uO1d ZPC^ uO1d ZPCuO1dq-Vbuol-VF{UbuoY-VF{iTbuoF-VF{9Sbuo3-VF{ Rbuo Őŵ(gCAսbx6X[)>AսbxX[)9AսbxX[)'5AսbxRX[)g0AսbxZCע-VNO!,\i"8'*guC?\]˒^E&Ջn鮆j۲Qݮڪv=ݶGd+>9И/4qiV9j:C0LnVw7ν;[+nshVʰێ5JY@H:reԮ6.pvЩCWC/|u}.QM4ݸ㜗s[B~~}sZngw֜/UK֋82P0$ͣ Wq -}b4`ko~]N~ cg(7r. >g Rm-q|–:Gݲ{5)n.ָA }i_gnXw$<; nLxތaK֟=+otͦ.}þy=5 _aQ׳>d Xn=4]etĝFfיRPvӶ7~FQz;~0a}0t-L>{qЧy5u8vcm累S9`;>[A+0o-,2He4M8[V~[pԭW!?>9Y+5{tnV̥yqӖ㞶q{諹yn~SG:6`$;K5q{x7֝YVF){J3MqzD <='Qqh%}y$)숆1@۶ WQRA"Ek`f[u:-b)yTHZ hG}]@?k~©3_ [`r4G4g MQ_V /$:mUE) Zc!Lit05.*| )}em`x>z*:!1DŽ5[%qh9op!b=\z'enORJ1O8࡟@*)Ќ^v&U_iƺ}^i2>/[ϥ-,U2 <[̜Rs{sՕP%beA „/FOβZޞl *J@vs &O.̱͞x=L"3*="yBSIt\h'_xO끥Xto,|kK}]>ԗ4M%qp׶;I?LAc{N\?yc [ !if_oO[ӸHD(TB ثK&ΐ2Yx+) n="DyH`@ c|CG< =odv_&@Ue9MaA~ԣv.6Be46b.2JBnf^yr+Ejv=zX;Դyذ\5g2gi,__REBөC{Q.Y |7M'Am U.]8- 95? Lv)2ygByf/7(AsE5Kd\UipX?>/P 1399 0 R/Type/Annot/A 40081 0 R/Subtype/Link/Rect[93.6001968 193.528 244.535995 213.207993]/Border[0 0 0]/H/N>> endobj 40081 0 obj <> endobj 40082 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 40083 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 40084 0 obj <> endobj 40085 0 obj <> endobj 40086 0 obj <> endobj 40087 0 obj <> endobj 40088 0 obj [549 549 549 612 500] endobj 40089 0 obj <> stream x]j0EY`Y[ BPR^A~-,/)i ]ř;>&ޣ&3F0dӕJL}`mI8n %>Ȳr-M:u%ҭ!|.gJڽᵟbݷ6m{rU|n6"G}YI{K5M$Jϊ3R0JQ+Y$jx $qn2 Ixf4ks;G1%ȼux{s!7(|endstream endobj 40090 0 obj <> stream xtTǿ3$6p H\b$ HwBA(ZKhJ P1k)]1PJဢ GJTҦh-RMzN9=53w1YdYR{5 /uW 3דImwh#411-d뢂ܖ֥uw;\ w%=uqt][#-[m)|Lm%MxSAQ$<" p|O8?u@"Ɂi«gŶ]rI8^;uvs՗ՇG~.LĠTxdɲ`B2y" ϙ`~;S's̿1{Y|F8˚>b3bb~|y1<|A.rhw~ j[,<|Q_:5a櫜+,bd`K^/{7P^{Z4(eed"ɦ- /߆ߏxɺ /rQ@3Ȗ2W'ո>RJ wpD_7mQXE;IUY4Z;Vai" ķPM6QD]amO~:ɼ#:h ˼W߆%mq{jXWn,"ڦȣs[0j"ܴE¼\999y nLš",`bĜɜWj:! i̯320'2_ϖZ~'<9԰|s9y- )kXdV0˙eRTPL L?[(Hf4Kˊr3H΁Mwvn"y8cKCj{0Ge23W%z )ĶH'@1=6ŲL衏A+-nf 3t1LoMޣHcJ~iަyydm4Q:SWm_Ɂd$Y8Cޝ+z]<;qJ1Om>]瘜7HkFB4̤.)e؈2Uֈ-J27cOV;ъrsj&2ᡷ\9ANsIl2.Ҭ=b/]-U~䘋ZqFop Y >qL'ćr:E8jN.s^z"݋e$H>՟C)cdœDYM+ʜ\OjYb=p2.j!3V [[si'9kF8yC^ȝ\'P=.!54s:֚0*cS;p<="6#bգE͋Ɖ>\쳪TfqWӮUQ@aE>OTMno ^+T"u†׌D͡Qy9hJ(İuj8#L3П6tu~Z4V(DzDf_lnKngW6**"("_=Q?=u:'7v}-)1n)ggh0RlDq8ԅ;#4eSe J)⋪h{7xmW GzH_fJ?pp"T=P ("z;u$ p!0@A!۫ 9vMyFt=uGl4"lA!h5@O~Y#ÂȒM$cfYs 32` ) 9yG)fiv6;HkS"<#Em1P̹5v$2pbʇ,aiɞէ˪J }Oɬ*g40R}S5jgZ15vb{﯏ 9fpGp`nt+ˤt(JϬ*Eq鴪^zy*C6چaJ*KImYV9Zf6Y$1azz{^g9J%lQW:K-2tRC ,900%?Du-DZopuQmE2F&S?׮$HINrc.TH>Tt KDPbOSP[ڝPĂX7E*FQfK&\:=mjA.WRu}٠aIL`L{ n$UMvԤU!ZGIJʚȄZz%"#3#sj="Aq)P1fHd#RF-H+/ Th;I%qa9,9$<(.0ޟ;zRj0PvKh]\ד/{TґP6J} ҦQ\YV0i)y{d)(,T0@;喻Hs{"l'TȔmK,luRׇԇEwͪ-aѝsLendstream endobj 40091 0 obj <> endobj 40092 0 obj <> endobj 40093 0 obj <> endobj 40094 0 obj <> endobj 40095 0 obj <> endobj 40096 0 obj <> endobj 40097 0 obj <> endobj 40098 0 obj <> endobj 40099 0 obj <> stream q /X1 Do Q q endstream endobj 40100 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 40101 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 40102 0 obj <> stream HWێ8}W:l^ur L`"JlGۓߢH]L;c<,a?mO~ëw #ϟ|*;BJ ĒjA2#F#N*]*y_=}VoUtF.z7 l a$#I!]ݔE_55Y?`Yy?T0>Wʢiכl 2񔦩HD>81R?Ly.SrfC}@,6D8#`~adKLThenL,d3|̰| X,3,|휇} XQ/Q/Q/Q/Q/ Q QQQQ1>Lj8P @}O > ԧ4P"@}>,GLcH 1 a}̰B>,ĵ>fXq>p@\cB\c\+a! ĵ>,ĵ>fXq>p@\cB\c\+a! ĵ>v$Z3P qV +TcB\c\+a!Jĵ>,ĵ>fXq>pD\cB\c\+a!Jĵ>,ĵ>fXq>pD\cH!1 a}̰B>,ĵ>fX q>pB\cB\c\a!*ĵ>,ĵ>fX q>pB\cB\c\a!*ĵ>v4Z3P qV +T,ao1,Mt_dsq6cAUF8#C:Dј11nWM_˺<<4m啽h_6XDUCXnfna4mu_^3E^zdSfw:ߖfc%2Ⱥ]a};jcdvܝae;Unfn#b=oĄ~23cyȊMd ==>$Pͧ da}ђ!{Es0Na*߫~B}T H9ږ8q'".DZ 9(!h,EGDx{)"JJ85/7r&anct r!/Њf\?og4{1 LMljWۧNB} ->*s ̒uց-ouWvљ[*uJbtLJ]+ْz}a>FTzrN(r)yLDߴ ji$z>VGh8G.m)wvPoCi6y!;wkIp-~k6\}-_ RQt,TQH)k}[ Ew7ݶGC*g3FFb/E,i ģpF-`k[Ƕ.O&ݝd =|29hMfv1RJPf s3exZݾ+mݿ?ULq*]ɘ0wn~0+ A+hԒ J$/g<$K^'iuq@N7׭L|Fcc?@|8hU&gsUCKVƖ@ZnzRC/y9E%O:' c `d<5nto6 fK4&J =`bjj=<'> =Ybeg Q`$jquK}?vsWǺ7Z~kr#c{ LBdw*y ZS&% |zyV3_C@I9KrYmH4 `S{p5| -oO77砛8~쮴2,r-T6/`A({IRd#&g's"z<0j~}͋~ux_IF$Nx?^c盄N )AtD@AwhC\(R r.\a w9їt.$ns-<{Wm$)|ŝ bD/$QPߠ& l Oȹ ]s2q2߷^Y:M"҄h1\)^-=A>"K[ $X-Vq<K=Dyᴻjv믫ǀ tkzrZh% ~=%d9f-K?o_UA-̅"KQ{`C_e~ mlVpoզ˛$ (5 %Sn Թ,!\bFOrM!C2Jx^ d⼬t^ %Xfܯ@\;O}R2{Nswrxq|[% ƾɛ݅}}[EIdP8#z'j 9l85P/ ӌfMmaBuVr^O\[[sXÞ/ i 6^kGHEOIPLT9۩ֿ8_{+ RN^uJ ~]4#[]Dy8j/'HLPjni {UV 3^*Hy{ ul\P ="/|\Oq1=W |=,Ml,UT ^˜JU*5wHij; qIe*v3̫:N=nƈ5=hҏ.~\L dȷW'Zat6ϛ;ģzS9]]Yw "\RK1\piK.piU2\%*pU WE*"\5U a 2 I Ԇ(ʕU0\*p K.p F Q ѽ`tp F Q ѽ`tp F Q ѽ`tp F Q ѽdtERݧ6D1\D}jCEt/ݧ6D1\D}jCEt/ݧ6D1\D}jCEt/ݧ6D1\D}jCEt/ݧ6D1\D}jCJmbtp+F Q ѽbtp+F Q ѽbtp+F Q ѽbtp+F Q ѽbtpkF Q+}jC21F2=B'|/ev* c=^eHWV)|"MͷM?S2,~Yot 6}iy > 3W̨Yy'}yg.h>||_Rendstream endobj 40103 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 40104 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 40105 0 obj <> endobj 40106 0 obj <> endobj 40107 0 obj <> endobj 40108 0 obj <> endobj 40109 0 obj <> endobj 40110 0 obj <> endobj 40111 0 obj <>/Type/XObject/Height 32/Name/X>> stream H!! Dѩ(1pbx΅’p.$+)z߾d@h^WerY$wX{?qΕc#;ӽtbWZ)sendstream endobj 40112 0 obj <> endobj 40113 0 obj <> endobj 40114 0 obj <> endobj 40115 0 obj <> stream q /X1 Do Q q endstream endobj 40116 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 40117 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 40118 0 obj <> stream HWn6}WQlY 0Y$<؃@ݚQKޖچ~DRR.CNU8?tǻ_$| 2K3晊SkI m56Ǿ͡6<6/2|v#7OA $af'E9Qȫ &Rm&bqBrPzGCUmxu#$|m뼻UrAW/c}pQLn)w{M?*[(7K]*e '2?sL)1%Dy CJE|J.O%c/cccccc2S}ʰO=)>g c13}ΰ=9> c_0 }/<%þؗ {O-ɨ峧>@1>DQ>{ZCSdTK}b{jPjQ {OQ-!aV2>@1>D1=JFԇ(ZɨŨŰT+Rj%Z;Q-!gO}bTK}S|(Fԇ(ZŨŰTRRjZCSbTK}bTK}b{UjQ {OQ-Q-!aV1>D1=*Fw4ZCϞŨ峧>DPjQ {OQ-!aV3>@1>D1=jFԇ(ZͨŨŰTRj5ZZCSfTK}b{ՌjjQ>{ZCϞ/,u+s{>lۍS"<"#4,+!UkFdY4CU_d0^`OhMm~]m$VtF;Ke_>1hZ.3!צ{vdFre] צ? =pafj;¹pREo\M7mKjgRn_a 'KbMiن>z}Y A)\Bp=5xSkvg@3XӼp;rSCjO)cd#D EN2IrfF5{|ez<;E  TeΡNUuыlX#boR1_,.nl%SJn1xVRM]1ue挺3  07ї!Mp״NFsv}/]]5UH^b[&CNVc~l޴KzI4B؊5H2N+TLާh䰹bv<.cͧ* ^Тlv>rV=UgĊVN5-mQ]=8stftO~>LT+=7nZ{w5~4h+$_fj,k5Vdx0Vq)V ~KN-(,n7W+}~*?lYY|]UWx;6eb>Bn41նp%s_Һ8/שKdd>'iKr6Je۪m: XW.ݡ5rO^y&*bH?=櫷fqgn>$X@`ދ-:QqecٯBzӡ91Pa _+bR c7l}W+B\-d{ÀPܵ?n&/~,5=@ԞŔ!q0)!Hr4{\K{׶4SJjXTRɼ.޶m0 2 pNHkE."efW1P a}/{ҫ8LJDHzc"(_> ,N_wÇx[/SDva|mn8}Us_q]ywh}'[H~SoʏpC~acw/( 4Anp7(M!v9늪d~D`FR?_UtOr=tJn4躞aY5[fd)=ށFH̑z~v#;NU4fXoO7 "+&ܼ Ri=,\NUߛ/.uMnC3#c [?{~ĄeЉt~?˭oE&هćw.//SMQS-CBk״uoV /hѳ7ftXz诛eFм.er+ *J* *j,J׼KF 2+, XZ4`k{y`k{y`k{y`k{y`k{y`k{y`k{y`{ydq\ \.7 \.7 \.7 \.7 \.7 \.7 \.7 \.7 \. \.@]%roA]%roA]%roA]%roA]%roA]%roA]%roA]%roA]%rsͻ$kwIVumcG:tun0Owajq$'0ΒP껍P*Mgc5Zov4V&г[p4Kʲ*z&5&[nZk7XϳD+:$=n68"OXRZɪUXr~+LAMufSM&IuFVu<ܯBTߞ͝LR#{WLJ?ͦ˪nSUfatiԪkuXt?╤ 5S,S+j6/=Lٸ#d)gqj2tZ+\5p ,+X`倕 VX`UVX`U V X`UU VX`ՀU V X5gM-5Zn 2+, XZ4`k{rc`sͅ k.%X \s. -7v =\hK@Bˍ]e@Bˍ]r5Zn,{rc`sͅ k.%X \s. -7v =\hK@Bˍ]r5Zn, r5Zn,{rc`sͅ k.%X \s. -7v =\hK@Bˍ]r5Zn,{rcg \s.wIQ=x363uu;zVKÔI^=Jʟ(2NRhÃ7Ø 1YBFefڱ\~/tjVendstream endobj 40119 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 40120 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 40121 0 obj <> endobj 40122 0 obj <> endobj 40123 0 obj <> stream q /X1 Do Q q endstream endobj 40124 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 40125 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 40126 0 obj <> stream HWk8ί#%uh?DkUV"B(*([Q)pl??n7! ՛Mb?KBX0<,T)lVapQPPۺ *>x n+ i9 B<̡0%Y=f}52Ӊ9MQgׇ̢4ne~n"(m@M~#,| ) ?}  2f:"=y>ȅ}Np(4ŀEr0N/ŀSSSSS O}O<Q/<Q/<Q/<Q/=Q/=)>ԧS"SO}<>S#=RĴ.v Z,_ qi4WbB\b\׺f!=2ĵ.,ĵ.Yzϵ qis-C\bB\b\׺f!=2ĵ.,ĵ.Yzϵ qis-C\bǀ#u1ջ׺f]L|.,ĵ.Yzϵqis-G\bB\b\׺f!=rĵ.,ĵ.Yzϵqis-G\bB\b\׺f!=rĵ.v ĵ.YzZ,_iŀ4 Q6A\b\ u1`!u1B{M׺f!=&k] Xk]Lkĵ.Yzϵ ZZ,DqismŎ@\bw1`!u1ջf8$$XWvK]FHYP$$MmmDL٧N!+u3>q>Gՠ hTSYhP Xuol߃-]f2 VIqOM s؅f3s,B=śošc QnT< '<ŠyjE^VU䆬ȢH"ϱj΃67SCy0EsV_r~1j&bJ>vĢy4SWt+1dpګ$E^^U?0'Yܬ)9wJog{OqdD-,sS.3kfuY_bL\LӚ'\.\OcwmqGRh#y ]\|QXc܄O 6YtnHsö Mxe@Up.m^Zqx"v9І\95>VѠ$U'1Qs)禑^b'>quauVac%m/8K4oTfZ֎C e2|a.L$otqͦ3̛վ)jx#F鹯>ga,ٮB鮨a"ljwnJ}npcZF//+[{:3ZY@lٓL,H gYU;'LRAǥ0.X4~+F/ǝsp^ڎac5V|9Q+22 fÛÛ3ڑN,[VyU?(3|:Z%2{?2<OE:TbK/ZKv7\/ܠ)ͧ>pyXN4,n S^ $sI:s:3 #ڋ2r^Wj^uXǍ5BϷVM]DoKu?e6`S~Ԩ)Yo-xRwcSk5.*;V]8"̅ƽV+;v\KvL/oʢ^ dZ2cvKfS?8KH뼟Pޙ<ڪ]q샪, qEw-> =,JHsЍ܉~:hz!*z41+P-YgZzOj>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 40128 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 40129 0 obj <> endobj 40130 0 obj <> endobj 40131 0 obj <> endobj 40132 0 obj <> endobj 40133 0 obj <> stream q /X1 Do Q q endstream endobj 40134 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 40135 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 40136 0 obj <> stream HW]6}ׯ / GnчiEƋ>$E[5,fLD=RUodW?Nͅe̔FN`mD%jh֯}7z5Wv%RL60I,0&+I*L~h&0TꑛqVkv[:%R8F,ջԺ(,zW= u~)usdOLdWXg{> Kʹ40nV 'kB96LECV<]K`2+.D,>Ā% 2R/ 2R*R*R*R :R :Ro&Ro&Ro&RH}N#"R_H}I/#%[B[B}YA6$\bȊՇ׆b!X}pm!PV 1d#Jµ!,µ!,B}ZI6ĐE\+ ׆׆k%C>r$\b"\b"GkC YȵpmE6Đ1` 1dC YC>r"\b"GUkC XkC Yȵpm!PV 1` 1d#*µ!,B}ZE6ĀE6ĐE\׆k;$pm!+Vb"\bȊՇb!,µ!,B}ZM6ĐE\ ׆׆k5C>r&\b"\b"GՄkC Yȵpmpm!PV 1d#jµ!vH CV>ĀE6Đ1d-jEs}H^ەK3VDd,-[龹]݈Ho[7˰Z\W}ޟ~\W2\)ŕ-Ӿ6WϴR DqbW'ENܧCkQp39]MNizEp#YN8E`5[*_Oy΂ḰVS:OF g}ͺr˸oJ}}:tm}4Lsq1K<_oqy0Р3<pU?(V\sle6UM{=M[ʇJf-ƂR2}մ|+<qi<|ٍ7=xfJ_޹N a BMå:%'mw4ioc9jYo(`H|G'u&t9gR" ֕~h )5r^sP{—v2 k^s:%|-DD' eE7)j)2:vwpyR'? z7z`AEe*`L\tM1`r'q90n_01eDS<4DyI1 e4 1U@㹔K버OORƮy׋1bj1(3kFg>[uPXx{ MP9p|n>$ N%Pr:+\?̈U C#bV-X~3V2BؠX]^k߮W7}yFa=>?QZZ܆}@H򛥇RR/*$!BO/;bFho8糞TkO=yZ0z۽?yk^%sdM" ӦlѧwnGđ۠pxL1TwY)ZZ23$"c(XYlFxR7>+cI yj{ $Z ͶzD+=KI4# W[[,nrv 9&6Șɒ8D͢=j}3^wE]L8`¹olIӥq1KmX٥NY R̮/ Ekx_9T]H XILYfኘ HIXѫ'Ps qɪQ,X ȑ0TK]IxH8 Nΐ, 5g0z켢PQ/U7LwMWsRʅvJ˃~kmcF(=1đ6vP`v?x_{؀=l{N_Q"Dbx{hl3 VK容2S{U¤i[CV WO#{ STr1Qyr'qrKK/#\<1 x.L!*: vPCROrO@ljendstream endobj 40137 0 obj <>/P 625 0 R/Type/Annot/A 40138 0 R/Subtype/Link/Rect[93.6004028 603.229004 189.744995 622.908997]/Border[0 0 0]/H/N>> endobj 40138 0 obj <> endobj 40139 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 40140 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 40141 0 obj <> stream q /X1 Do Q q endstream endobj 40142 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 40143 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 40144 0 obj <> stream HWk۸__4ń#>v@lI"q X[8CM^OȊ:s.yHsu}[=L~}5O?|*#a2E\,9t;钌<$${w~կ]?{= mC6='crܭgAYmdDs2jnV_,M^)yϳo~}+KA˒_mI>*` 2?=lDPNeW%>edM% s8s%sTaH!fXr!,bVVBC XQ#Q#Q/"Q/"Q/"Q/#Q/#9>Ā6 +Vb1`! 1BGkC̰k93,D}Z6 Q# 1`! 1BGkC̰k93,D}Z6 Q# }"׆aC XkC̰b!fX3,D}Z6 QV 1`! 1BGkC̰k3,D}Z6 QV 1`! 1BGkC̰k'qmV>Ā6 +Vb1`! 1BGkC̰k%3,D}Z6 QV" 1`! 1BGkC̰k%3,D}Z6 QV" }# 1ÊՇ׆aC̰b*$࿳aO^JFVjax(A RɇtEYzo>&/2UdՐS+8G90] 7/IJAѧnܰ,Ճn>K'sA&NA2w!ۮѠ(ic<ɍu~ο{OSBL"'MU{F( *TeIㅀB;ifhޭQqfOa\TULY*Rꤴ9’,eƪںsjUJN /G^[}aם'#3WJǡթgЅpK6~ڦu=zlt]=\"XVE̱,r 3Wl4SG !3sQX!iY*65%e:[kz7~4 uA?-7PWplO:Y| xY/ ~vM7J@x 87Us$6돤맭 }=p6Y _V m%" f Lv#[V3XF-^־==kperPbYDHsh% ^Z~n7BL{ ^7:ߍO8yJxyEC?\%ϩ4[qZ v6gߓ\0@˼͖WYvR+Is$ $PLArM Gmۉ!?»W5l5Nե"EE*/eFڣE}P _ZE*ϨVgY@Fl$˗+5 "jEʓ|P_"u7hRaO\L9A$- Pl5l-C_ɖY]_MjN?/ۮ֚8~\۟Qpȅd3el?O6U?m$/4aMD39=5k Z2/% D2 ʢge #PENh /d&eYmieޝ_DI|h )3 0毁=3S%Iet  LAoȿqWC*lV2u2W=]DT"bpݍa>?}"ඎ$aA_ T?!Ea]>IbVx3J1= omZQmQ?ʫmGrWҠ  EؕP=h0);qzSlUr!ԩ8U/fi @7? U񽝄N]Ӡ`x$I靷{&=ϊjv )x/d5GLa/"!̒/l-6DazR@( #A#VTb98w]*4VÏ 3jŶ{:cC$?hqǁ`,5,xDjIY{TҍxmVW]֊τ`ZQD9XRļAZUplTmCu7+2/"}ꋔk >-|).=֣Ԓ׋(NcR}&@*E0N'G=SA﹓}Kdt B7Z?*z4ܗOB  ;OۣE%ҍb3bttDTb9CO eK0A k{o#jùJv,C팘s}T/U䡘JwX֗A;6@qhU*l(Apן:Lp)˭>ٱ,p2ƫJ"jhkǖƂI<SܠB,b]Wbo}z$l+宭R֢)Ewo XOA&DWȆ@*HUp&}с5]z2pq0ۉކRTc =kJ9%1OK04ل y+u).A/CS0*ӄi",_-rcWAiql8)>H)͙i#8`@¨|"$˟-O-endstream endobj 40145 0 obj <>/P 1250 0 R/Type/Annot/A 40146 0 R/Subtype/Link/Rect[93.6001968 663.229004 209.207993 682.908997]/Border[0 0 0]/H/N>> endobj 40146 0 obj <> endobj 40147 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 40148 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 40149 0 obj <> stream q /X1 Do Q q endstream endobj 40150 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 40151 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 40152 0 obj <> stream HWko_e@K 8NP%Q+y;C;ٙsfgOo&{-7oϒS1R+*5mJ8{H6_Lvz̗n3<9u$6y3NN^1Ɵ p |2=/^fKM&5|5˿#r8N8S.ӯJ%g }K2eSiwdaX$,dFpBp PBĨ(CBBC$^F%^F^E^E^E5^G5^G D D D-F-FEEE=G=G3}f!жL$І}hІ}hCT>PmhC>R$TET+ Ն6@ m"GjCj%(B QHPmhC>R$TE6!`V m"GjC2QjCb PjCb Q1(B QHPmhC>R"TE6!`V m"GUjCՆ6D#*B QHPmhІ(}ZE6!`V mD mه6@ mه6DCՆ6D#jB QHPmhІ(}ZM6!`V m"TET Ն6D#jB PjCj5І(}ZM6-C6!*fE6!*f,4?89l)3!2Lzzw94SW+>>=zg'H{^ɟwdjwu/uy1DWT3kKN)c?pp k=MvW;]mzsJ*L*Ǜ!>L< wJ3+RckwD4P_9ޔL;jg\7}oכls"|/†Svx8Z؛- obq흯WU@!Y`8bwb>3\}֫"|:{~wRSokgʃᇛmvEt&]E ax?Wqk"ocXI"]"0 nDH!HT92 CW]>Z"7>C-WVޚ{{@a=DzAs?9TM7nD{]JfS+_|&[$s_w}|ZY۫+#]\ .3(+Tok 1+V)& k:Z$@}&:vWGQ[V@9+z.h$q3e#+U>"8Z YkTɐ/WK3WS듇|ѭQ7D3c3Yɲ.cW){05c/Zܶ}ݽo]vUվKt|ت; |lpu}u58֐_du+3 g*.LxXj~W_o{=jy%+U>#цGG#u̗Df~:YMEѪF@ry⊎TcfopVӪ#vkYMM -z#EpTRIFL3\A39x@ͺyTT܍l9^DRwaLQcwΥBd[8R G6YvgEU AR4nU⊮p2u~-SW-l8sƀk'辍cq_F5lO LYh .mPt ¸pEDqj6Nހ{ c=5{7vx1tBy10u M=c̙{n2;ƿ@Ak])"<۝' SG+  Zu^ϸo୫jn(>Y䦳u[{WT+sZ7z8hۧcj-o`FZ򢔸TC D4g#5=m滼2H..#ipűțH=ߴvE]U`4::?V)= +, 2(H0k,{Ր4 ?%jTwEt[f9rY -=Q-9;l B{8p$2h-16%~OÔ#2(RY#ekRoUjcA׮tix+)ZB]y W*6FIM@]ϠS@꺋z:iqqI^yU,<ͷҒܑ iZF B F!:vD`3NNBq^F}o jȜt1lQ+moɊ]Mp7Ads"|oev{ro6oWnljwLKeUVrЋvV9C[;)Kz>+߿ǒ?em0x|\l|` ?ҫm#+TQɜ"U(q"@Ty@q Bk̸J_,ٳ/3{v%)f+exF;20(4 4dw~>[PCogZaqkᡕa$ӣ0֩2&Z*tSowlhjI? kyv>g=/,^u΀vi]3?PX&~O%U*ҐR\,eUx|*nj(Ф5=YwX`(nZƕnpt03vykMWAns,9]d,:]G/Obvq&ÛӣϹP6%:Y Qe %7Q~L*g HGx#f<˝{CͽVƣC2]ȮM>:=ST?1r= h}1LCc kmDu92Ȑ 0$ZECd}fiP:qDn*M l6u^sA0 5n(7u í<4߱?E}@8S2=y볷o>6 ƃ{3B_{BRF0dޝs:Yǣ@%-lh-GGd EX&p!\$_.?.cdjd^7'z[EPc2K=sG'~afn?~|z%=Z\Mxt ڟbCWyIgK\ Ui%"EU吪sGUnG1.&y#/nN`SU i'a4}]}GOdH(e俳A!T4nNj*փCBl-E%(Q8 l8q)&|j[Rmsl U6@&jݙG8z=q&/&/ޏ^+uPendstream endobj 40153 0 obj <>/P 2081 0 R/Type/Annot/A 40549 0 R/Subtype/Link/Rect[216 670 230 678]/Border[0 0 0]/H/N>> endobj 40154 0 obj <>/P 2081 0 R/Type/Annot/A 40546 0 R/Subtype/Link/Rect[232 670 246 678]/Border[0 0 0]/H/N>> endobj 40155 0 obj <>/P 2081 0 R/Type/Annot/A 40544 0 R/Subtype/Link/Rect[248 670 260 678]/Border[0 0 0]/H/N>> endobj 40156 0 obj <>/P 2081 0 R/Type/Annot/A 40540 0 R/Subtype/Link/Rect[190 660 202 668]/Border[0 0 0]/H/N>> endobj 40157 0 obj <>/P 2081 0 R/Type/Annot/A 40535 0 R/Subtype/Link/Rect[244 650 261 659]/Border[0 0 0]/H/N>> endobj 40158 0 obj <>/P 2081 0 R/Type/Annot/A 40530 0 R/Subtype/Link/Rect[261 650 273 658]/Border[0 0 0]/H/N>> endobj 40159 0 obj <>/P 2081 0 R/Type/Annot/A 40526 0 R/Subtype/Link/Rect[190 640 204 648]/Border[0 0 0]/H/N>> endobj 40160 0 obj <>/P 2081 0 R/Type/Annot/A 40523 0 R/Subtype/Link/Rect[206 640 218 648]/Border[0 0 0]/H/N>> endobj 40161 0 obj <>/P 2081 0 R/Type/Annot/A 40518 0 R/Subtype/Link/Rect[219 630 231 638]/Border[0 0 0]/H/N>> endobj 40162 0 obj <>/P 2081 0 R/Type/Annot/A 40513 0 R/Subtype/Link/Rect[296 620 304 628]/Border[0 0 0]/H/N>> endobj 40163 0 obj <>/P 2081 0 R/Type/Annot/A 40509 0 R/Subtype/Link/Rect[197 610 209 618]/Border[0 0 0]/H/N>> endobj 40164 0 obj <>/P 2081 0 R/Type/Annot/A 40505 0 R/Subtype/Link/Rect[202 600 219 609]/Border[0 0 0]/H/N>> endobj 40165 0 obj <>/P 2081 0 R/Type/Annot/A 40501 0 R/Subtype/Link/Rect[219 600 233 608]/Border[0 0 0]/H/N>> endobj 40166 0 obj <>/P 2081 0 R/Type/Annot/A 40497 0 R/Subtype/Link/Rect[235 600 252 609]/Border[0 0 0]/H/N>> endobj 40167 0 obj <>/P 2081 0 R/Type/Annot/A 40493 0 R/Subtype/Link/Rect[253 600 267 608]/Border[0 0 0]/H/N>> endobj 40168 0 obj <>/P 2081 0 R/Type/Annot/A 40491 0 R/Subtype/Link/Rect[269 600 283 608]/Border[0 0 0]/H/N>> endobj 40169 0 obj <>/P 2081 0 R/Type/Annot/A 40487 0 R/Subtype/Link/Rect[285 600 299 608]/Border[0 0 0]/H/N>> endobj 40170 0 obj <>/P 2081 0 R/Type/Annot/A 40485 0 R/Subtype/Link/Rect[151 590 168 599]/Border[0 0 0]/H/N>> endobj 40171 0 obj <>/P 2081 0 R/Type/Annot/A 40481 0 R/Subtype/Link/Rect[168 590 182 598]/Border[0 0 0]/H/N>> endobj 40172 0 obj <>/P 2081 0 R/Type/Annot/A 40478 0 R/Subtype/Link/Rect[184 590 198 598]/Border[0 0 0]/H/N>> endobj 40173 0 obj <>/P 2081 0 R/Type/Annot/A 40474 0 R/Subtype/Link/Rect[200 590 212 598]/Border[0 0 0]/H/N>> endobj 40174 0 obj <>/P 2081 0 R/Type/Annot/A 40470 0 R/Subtype/Link/Rect[207 580 221 588]/Border[0 0 0]/H/N>> endobj 40175 0 obj <>/P 2081 0 R/Type/Annot/A 40467 0 R/Subtype/Link/Rect[223 580 240 589]/Border[0 0 0]/H/N>> endobj 40176 0 obj <>/P 2081 0 R/Type/Annot/A 40464 0 R/Subtype/Link/Rect[240 580 254 588]/Border[0 0 0]/H/N>> endobj 40177 0 obj <>/P 2081 0 R/Type/Annot/A 40461 0 R/Subtype/Link/Rect[256 580 268 588]/Border[0 0 0]/H/N>> endobj 40178 0 obj <>/P 2081 0 R/Type/Annot/A 40457 0 R/Subtype/Link/Rect[197 570 209 578]/Border[0 0 0]/H/N>> endobj 40179 0 obj <>/P 2081 0 R/Type/Annot/A 40454 0 R/Subtype/Link/Rect[207 560 219 568]/Border[0 0 0]/H/N>> endobj 40180 0 obj <>/P 2081 0 R/Type/Annot/A 40452 0 R/Subtype/Link/Rect[193 550 209 559]/Border[0 0 0]/H/N>> endobj 40181 0 obj <>/P 2081 0 R/Type/Annot/A 40448 0 R/Subtype/Link/Rect[210 550 224 558]/Border[0 0 0]/H/N>> endobj 40182 0 obj <>/P 2081 0 R/Type/Annot/A 40444 0 R/Subtype/Link/Rect[226 550 238 558]/Border[0 0 0]/H/N>> endobj 40183 0 obj <>/P 2081 0 R/Type/Annot/A 40441 0 R/Subtype/Link/Rect[202 540 216 548]/Border[0 0 0]/H/N>> endobj 40184 0 obj <>/P 2081 0 R/Type/Annot/A 40438 0 R/Subtype/Link/Rect[218 540 232 548]/Border[0 0 0]/H/N>> endobj 40185 0 obj <>/P 2081 0 R/Type/Annot/A 40435 0 R/Subtype/Link/Rect[234 540 248 548]/Border[0 0 0]/H/N>> endobj 40186 0 obj <>/P 2081 0 R/Type/Annot/A 40433 0 R/Subtype/Link/Rect[250 540 264 548]/Border[0 0 0]/H/N>> endobj 40187 0 obj <>/P 2081 0 R/Type/Annot/A 40431 0 R/Subtype/Link/Rect[266 540 280 548]/Border[0 0 0]/H/N>> endobj 40188 0 obj <>/P 2081 0 R/Type/Annot/A 40428 0 R/Subtype/Link/Rect[282 540 296 548]/Border[0 0 0]/H/N>> endobj 40189 0 obj <>/P 2081 0 R/Type/Annot/A 40426 0 R/Subtype/Link/Rect[151 530 168 539]/Border[0 0 0]/H/N>> endobj 40190 0 obj <>/P 2081 0 R/Type/Annot/A 40422 0 R/Subtype/Link/Rect[168 530 182 538]/Border[0 0 0]/H/N>> endobj 40191 0 obj <>/P 2081 0 R/Type/Annot/A 40547 0 R/Subtype/Link/Rect[184 530 196 538]/Border[0 0 0]/H/N>> endobj 40192 0 obj <>/P 2081 0 R/Type/Annot/A 40591 0 R/Subtype/Link/Rect[212 520 226 528]/Border[0 0 0]/H/N>> endobj 40193 0 obj <>/P 2081 0 R/Type/Annot/A 40539 0 R/Subtype/Link/Rect[228 520 240 528]/Border[0 0 0]/H/N>> endobj 40194 0 obj <>/P 2081 0 R/Type/Annot/A 40534 0 R/Subtype/Link/Rect[198 510 210 518]/Border[0 0 0]/H/N>> endobj 40195 0 obj <>/P 2081 0 R/Type/Annot/A 40529 0 R/Subtype/Link/Rect[172 500 186 508]/Border[0 0 0]/H/N>> endobj 40196 0 obj <>/P 2081 0 R/Type/Annot/A 40525 0 R/Subtype/Link/Rect[188 500 200 508]/Border[0 0 0]/H/N>> endobj 40197 0 obj <>/P 2081 0 R/Type/Annot/A 40522 0 R/Subtype/Link/Rect[197 490 209 498]/Border[0 0 0]/H/N>> endobj 40198 0 obj <>/P 2081 0 R/Type/Annot/A 40517 0 R/Subtype/Link/Rect[226 480 240 488]/Border[0 0 0]/H/N>> endobj 40199 0 obj <>/P 2081 0 R/Type/Annot/A 40512 0 R/Subtype/Link/Rect[242 480 256 488]/Border[0 0 0]/H/N>> endobj 40200 0 obj <>/P 2081 0 R/Type/Annot/A 40508 0 R/Subtype/Link/Rect[258 480 272 488]/Border[0 0 0]/H/N>> endobj 40201 0 obj <>/P 2081 0 R/Type/Annot/A 40504 0 R/Subtype/Link/Rect[274 480 288 488]/Border[0 0 0]/H/N>> endobj 40202 0 obj <>/P 2081 0 R/Type/Annot/A 40499 0 R/Subtype/Link/Rect[290 480 302 488]/Border[0 0 0]/H/N>> endobj 40203 0 obj <>/P 2081 0 R/Type/Annot/A 40495 0 R/Subtype/Link/Rect[236 470 248 478]/Border[0 0 0]/H/N>> endobj 40204 0 obj <>/P 2081 0 R/Type/Annot/A 40492 0 R/Subtype/Link/Rect[236 460 248 468]/Border[0 0 0]/H/N>> endobj 40205 0 obj <>/P 2081 0 R/Type/Annot/A 40490 0 R/Subtype/Link/Rect[216 450 233 459]/Border[0 0 0]/H/N>> endobj 40206 0 obj <>/P 2081 0 R/Type/Annot/A 40486 0 R/Subtype/Link/Rect[234 450 246 458]/Border[0 0 0]/H/N>> endobj 40207 0 obj <>/P 2081 0 R/Type/Annot/A 40483 0 R/Subtype/Link/Rect[190 440 202 448]/Border[0 0 0]/H/N>> endobj 40208 0 obj <>/P 2081 0 R/Type/Annot/A 40479 0 R/Subtype/Link/Rect[194 430 208 438]/Border[0 0 0]/H/N>> endobj 40209 0 obj <>/P 2081 0 R/Type/Annot/A 40476 0 R/Subtype/Link/Rect[210 430 227 439]/Border[0 0 0]/H/N>> endobj 40210 0 obj <>/P 2081 0 R/Type/Annot/A 40472 0 R/Subtype/Link/Rect[227 430 239 438]/Border[0 0 0]/H/N>> endobj 40211 0 obj <>/P 2081 0 R/Type/Annot/A 40468 0 R/Subtype/Link/Rect[212 420 226 428]/Border[0 0 0]/H/N>> endobj 40212 0 obj <>/P 2081 0 R/Type/Annot/A 40465 0 R/Subtype/Link/Rect[228 420 242 428]/Border[0 0 0]/H/N>> endobj 40213 0 obj <>/P 2081 0 R/Type/Annot/A 40462 0 R/Subtype/Link/Rect[244 420 258 428]/Border[0 0 0]/H/N>> endobj 40214 0 obj <>/P 2081 0 R/Type/Annot/A 40458 0 R/Subtype/Link/Rect[260 420 276 429]/Border[0 0 0]/H/N>> endobj 40215 0 obj <>/P 2081 0 R/Type/Annot/A 40455 0 R/Subtype/Link/Rect[277 420 289 428]/Border[0 0 0]/H/N>> endobj 40216 0 obj <>/P 2081 0 R/Type/Annot/A 40453 0 R/Subtype/Link/Rect[190 410 202 418]/Border[0 0 0]/H/N>> endobj 40217 0 obj <>/P 2081 0 R/Type/Annot/A 40449 0 R/Subtype/Link/Rect[212 400 228 409]/Border[0 0 0]/H/N>> endobj 40218 0 obj <>/P 2081 0 R/Type/Annot/A 40445 0 R/Subtype/Link/Rect[229 400 243 408]/Border[0 0 0]/H/N>> endobj 40219 0 obj <>/P 2081 0 R/Type/Annot/A 40442 0 R/Subtype/Link/Rect[245 400 257 408]/Border[0 0 0]/H/N>> endobj 40220 0 obj <>/P 2081 0 R/Type/Annot/A 40439 0 R/Subtype/Link/Rect[190 390 202 398]/Border[0 0 0]/H/N>> endobj 40221 0 obj <>/P 2081 0 R/Type/Annot/A 40437 0 R/Subtype/Link/Rect[196 380 204 388]/Border[0 0 0]/H/N>> endobj 40222 0 obj <>/P 2081 0 R/Type/Annot/A 40434 0 R/Subtype/Link/Rect[236 370 252 379]/Border[0 0 0]/H/N>> endobj 40223 0 obj <>/P 2081 0 R/Type/Annot/A 40432 0 R/Subtype/Link/Rect[253 370 265 378]/Border[0 0 0]/H/N>> endobj 40224 0 obj <>/P 2081 0 R/Type/Annot/A 40551 0 R/Subtype/Link/Rect[202 360 219 369]/Border[0 0 0]/H/N>> endobj 40225 0 obj <>/P 2081 0 R/Type/Annot/A 40425 0 R/Subtype/Link/Rect[219 360 231 368]/Border[0 0 0]/H/N>> endobj 40226 0 obj <>/P 2081 0 R/Type/Annot/A 40421 0 R/Subtype/Link/Rect[255 350 272 359]/Border[0 0 0]/H/N>> endobj 40227 0 obj <>/P 2081 0 R/Type/Annot/A 40543 0 R/Subtype/Link/Rect[272 350 284 358]/Border[0 0 0]/H/N>> endobj 40228 0 obj <>/P 2081 0 R/Type/Annot/A 40538 0 R/Subtype/Link/Rect[207 340 223 349]/Border[0 0 0]/H/N>> endobj 40229 0 obj <>/P 2081 0 R/Type/Annot/A 40533 0 R/Subtype/Link/Rect[224 340 238 348]/Border[0 0 0]/H/N>> endobj 40230 0 obj <>/P 2081 0 R/Type/Annot/A 40528 0 R/Subtype/Link/Rect[240 340 254 348]/Border[0 0 0]/H/N>> endobj 40231 0 obj <>/P 2081 0 R/Type/Annot/A 44671 0 R/Subtype/Link/Rect[256 340 268 348]/Border[0 0 0]/H/N>> endobj 40232 0 obj <>/P 2081 0 R/Type/Annot/A 40521 0 R/Subtype/Link/Rect[190 330 202 339]/Border[0 0 0]/H/N>> endobj 40233 0 obj <>/P 2081 0 R/Type/Annot/A 40516 0 R/Subtype/Link/Rect[216 320 230 329]/Border[0 0 0]/H/N>> endobj 40234 0 obj <>/P 2081 0 R/Type/Annot/A 40511 0 R/Subtype/Link/Rect[232 320 246 329]/Border[0 0 0]/H/N>> endobj 40235 0 obj <>/P 2081 0 R/Type/Annot/A 40507 0 R/Subtype/Link/Rect[248 320 265 329]/Border[0 0 0]/H/N>> endobj 40236 0 obj <>/P 2081 0 R/Type/Annot/A 40503 0 R/Subtype/Link/Rect[266 320 278 329]/Border[0 0 0]/H/N>> endobj 40237 0 obj <>/P 2081 0 R/Type/Annot/A 40498 0 R/Subtype/Link/Rect[190 310 202 319]/Border[0 0 0]/H/N>> endobj 40238 0 obj <>/P 2081 0 R/Type/Annot/A 40494 0 R/Subtype/Link/Rect[221 300 235 309]/Border[0 0 0]/H/N>> endobj 40239 0 obj <>/P 2081 0 R/Type/Annot/A 43028 0 R/Subtype/Link/Rect[237 300 251 309]/Border[0 0 0]/H/N>> endobj 40240 0 obj <>/P 2081 0 R/Type/Annot/A 40488 0 R/Subtype/Link/Rect[253 300 267 309]/Border[0 0 0]/H/N>> endobj 40241 0 obj <>/P 2081 0 R/Type/Annot/A 40484 0 R/Subtype/Link/Rect[269 300 281 309]/Border[0 0 0]/H/N>> endobj 40242 0 obj <>/P 2081 0 R/Type/Annot/A 40480 0 R/Subtype/Link/Rect[190 290 202 299]/Border[0 0 0]/H/N>> endobj 40243 0 obj <>/P 2081 0 R/Type/Annot/A 40477 0 R/Subtype/Link/Rect[212 280 228 289]/Border[0 0 0]/H/N>> endobj 40244 0 obj <>/P 2081 0 R/Type/Annot/A 40473 0 R/Subtype/Link/Rect[229 280 243 289]/Border[0 0 0]/H/N>> endobj 40245 0 obj <>/P 2081 0 R/Type/Annot/A 40469 0 R/Subtype/Link/Rect[245 280 259 289]/Border[0 0 0]/H/N>> endobj 40246 0 obj <>/P 2081 0 R/Type/Annot/A 40466 0 R/Subtype/Link/Rect[261 280 273 289]/Border[0 0 0]/H/N>> endobj 40247 0 obj <>/P 2081 0 R/Type/Annot/A 40463 0 R/Subtype/Link/Rect[190 270 202 279]/Border[0 0 0]/H/N>> endobj 40248 0 obj <>/P 2081 0 R/Type/Annot/A 40459 0 R/Subtype/Link/Rect[217 260 229 269]/Border[0 0 0]/H/N>> endobj 40249 0 obj <>/P 2081 0 R/Type/Annot/A 40456 0 R/Subtype/Link/Rect[221 250 235 259]/Border[0 0 0]/H/N>> endobj 40250 0 obj <>/P 2081 0 R/Type/Annot/A 43967 0 R/Subtype/Link/Rect[237 250 249 259]/Border[0 0 0]/H/N>> endobj 40251 0 obj <>/P 2081 0 R/Type/Annot/A 40450 0 R/Subtype/Link/Rect[150 240 160 249]/Border[0 0 0]/H/N>> endobj 40252 0 obj <>/P 2081 0 R/Type/Annot/A 40446 0 R/Subtype/Link/Rect[162 240 174 249]/Border[0 0 0]/H/N>> endobj 40253 0 obj <>/P 2081 0 R/Type/Annot/A 40443 0 R/Subtype/Link/Rect[192 230 206 239]/Border[0 0 0]/H/N>> endobj 40254 0 obj <>/P 2081 0 R/Type/Annot/A 40557 0 R/Subtype/Link/Rect[208 230 222 239]/Border[0 0 0]/H/N>> endobj 40255 0 obj <>/P 2081 0 R/Type/Annot/A 40436 0 R/Subtype/Link/Rect[224 230 241 239]/Border[0 0 0]/H/N>> endobj 40256 0 obj <>/P 2081 0 R/Type/Annot/A 40553 0 R/Subtype/Link/Rect[242 230 256 239]/Border[0 0 0]/H/N>> endobj 40257 0 obj <>/P 2081 0 R/Type/Annot/A 40430 0 R/Subtype/Link/Rect[258 230 272 239]/Border[0 0 0]/H/N>> endobj 40258 0 obj <>/P 2081 0 R/Type/Annot/A 40427 0 R/Subtype/Link/Rect[274 230 290 239]/Border[0 0 0]/H/N>> endobj 40259 0 obj <>/P 2081 0 R/Type/Annot/A 40424 0 R/Subtype/Link/Rect[291 230 305 239]/Border[0 0 0]/H/N>> endobj 40260 0 obj <>/P 2081 0 R/Type/Annot/A 40542 0 R/Subtype/Link/Rect[151 220 165 229]/Border[0 0 0]/H/N>> endobj 40261 0 obj <>/P 2081 0 R/Type/Annot/A 42222 0 R/Subtype/Link/Rect[167 220 184 229]/Border[0 0 0]/H/N>> endobj 40262 0 obj <>/P 2081 0 R/Type/Annot/A 43514 0 R/Subtype/Link/Rect[184 220 198 229]/Border[0 0 0]/H/N>> endobj 40263 0 obj <>/P 2081 0 R/Type/Annot/A 43465 0 R/Subtype/Link/Rect[200 220 217 229]/Border[0 0 0]/H/N>> endobj 40264 0 obj <>/P 2081 0 R/Type/Annot/A 44691 0 R/Subtype/Link/Rect[218 220 232 229]/Border[0 0 0]/H/N>> endobj 40265 0 obj <>/P 2081 0 R/Type/Annot/A 40520 0 R/Subtype/Link/Rect[234 220 250 229]/Border[0 0 0]/H/N>> endobj 40266 0 obj <>/P 2081 0 R/Type/Annot/A 40514 0 R/Subtype/Link/Rect[251 220 265 229]/Border[0 0 0]/H/N>> endobj 40267 0 obj <>/P 2081 0 R/Type/Annot/A 40579 0 R/Subtype/Link/Rect[267 220 279 229]/Border[0 0 0]/H/N>> endobj 40268 0 obj <>/P 2081 0 R/Type/Annot/A 43260 0 R/Subtype/Link/Rect[190 210 202 219]/Border[0 0 0]/H/N>> endobj 40269 0 obj <>/P 2081 0 R/Type/Annot/A 40500 0 R/Subtype/Link/Rect[197 200 209 209]/Border[0 0 0]/H/N>> endobj 40270 0 obj <>/P 2081 0 R/Type/Annot/A 40496 0 R/Subtype/Link/Rect[180 190 184 199]/Border[0 0 0]/H/N>> endobj 40271 0 obj <>/P 2081 0 R/Type/Annot/A 43141 0 R/Subtype/Link/Rect[240 180 257 189]/Border[0 0 0]/H/N>> endobj 40272 0 obj <>/P 2081 0 R/Type/Annot/A 40489 0 R/Subtype/Link/Rect[258 180 270 189]/Border[0 0 0]/H/N>> endobj 40273 0 obj <>/P 2081 0 R/Type/Annot/A 41687 0 R/Subtype/Link/Rect[190 170 202 179]/Border[0 0 0]/H/N>> endobj 40274 0 obj <>/P 2081 0 R/Type/Annot/A 40482 0 R/Subtype/Link/Rect[212 160 226 169]/Border[0 0 0]/H/N>> endobj 40275 0 obj <>/P 2081 0 R/Type/Annot/A 42983 0 R/Subtype/Link/Rect[228 160 242 169]/Border[0 0 0]/H/N>> endobj 40276 0 obj <>/P 2081 0 R/Type/Annot/A 40475 0 R/Subtype/Link/Rect[244 160 256 169]/Border[0 0 0]/H/N>> endobj 40277 0 obj <>/P 2081 0 R/Type/Annot/A 40471 0 R/Subtype/Link/Rect[395 670 409 678]/Border[0 0 0]/H/N>> endobj 40278 0 obj <>/P 2081 0 R/Type/Annot/A 40566 0 R/Subtype/Link/Rect[411 670 423 678]/Border[0 0 0]/H/N>> endobj 40279 0 obj <>/P 2081 0 R/Type/Annot/A 42844 0 R/Subtype/Link/Rect[507 660 515 668]/Border[0 0 0]/H/N>> endobj 40280 0 obj <>/P 2081 0 R/Type/Annot/A 40460 0 R/Subtype/Link/Rect[414 620 428 628]/Border[0 0 0]/H/N>> endobj 40281 0 obj <>/P 2081 0 R/Type/Annot/A 42757 0 R/Subtype/Link/Rect[430 620 444 628]/Border[0 0 0]/H/N>> endobj 40282 0 obj <>/P 2081 0 R/Type/Annot/A 42723 0 R/Subtype/Link/Rect[446 620 460 628]/Border[0 0 0]/H/N>> endobj 40283 0 obj <>/P 2081 0 R/Type/Annot/A 40451 0 R/Subtype/Link/Rect[462 620 474 628]/Border[0 0 0]/H/N>> endobj 40284 0 obj <>/P 2081 0 R/Type/Annot/A 40447 0 R/Subtype/Link/Rect[399 610 405 618]/Border[0 0 0]/H/N>> endobj 40285 0 obj <>/P 2081 0 R/Type/Annot/A 43883 0 R/Subtype/Link/Rect[407 610 416 619]/Border[0 0 0]/H/N>> endobj 40286 0 obj <>/P 2081 0 R/Type/Annot/A 40440 0 R/Subtype/Link/Rect[417 610 427 618]/Border[0 0 0]/H/N>> endobj 40287 0 obj <>/P 2081 0 R/Type/Annot/A 40554 0 R/Subtype/Link/Rect[429 610 443 618]/Border[0 0 0]/H/N>> endobj 40288 0 obj <>/P 2081 0 R/Type/Annot/A 40626 0 R/Subtype/Link/Rect[445 610 459 618]/Border[0 0 0]/H/N>> endobj 40289 0 obj <>/P 2081 0 R/Type/Annot/A 40429 0 R/Subtype/Link/Rect[461 610 477 619]/Border[0 0 0]/H/N>> endobj 40290 0 obj <>/P 2081 0 R/Type/Annot/A 42397 0 R/Subtype/Link/Rect[478 610 492 618]/Border[0 0 0]/H/N>> endobj 40291 0 obj <>/P 2081 0 R/Type/Annot/A 40423 0 R/Subtype/Link/Rect[494 610 508 618]/Border[0 0 0]/H/N>> endobj 40292 0 obj <>/P 2081 0 R/Type/Annot/A 40537 0 R/Subtype/Link/Rect[359 600 373 608]/Border[0 0 0]/H/N>> endobj 40293 0 obj <>/P 2081 0 R/Type/Annot/A 40532 0 R/Subtype/Link/Rect[375 600 392 609]/Border[0 0 0]/H/N>> endobj 40294 0 obj <>/P 2081 0 R/Type/Annot/A 40672 0 R/Subtype/Link/Rect[392 600 404 608]/Border[0 0 0]/H/N>> endobj 40295 0 obj <>/P 2081 0 R/Type/Annot/A 40671 0 R/Subtype/Link/Rect[412 590 421 599]/Border[0 0 0]/H/N>> endobj 40296 0 obj <>/P 2081 0 R/Type/Annot/A 40670 0 R/Subtype/Link/Rect[422 590 426 598]/Border[0 0 0]/H/N>> endobj 40297 0 obj <>/P 2081 0 R/Type/Annot/A 40669 0 R/Subtype/Link/Rect[394 580 406 588]/Border[0 0 0]/H/N>> endobj 40298 0 obj <>/P 2081 0 R/Type/Annot/A 40668 0 R/Subtype/Link/Rect[410 570 420 578]/Border[0 0 0]/H/N>> endobj 40299 0 obj <>/P 2081 0 R/Type/Annot/A 40667 0 R/Subtype/Link/Rect[422 570 432 578]/Border[0 0 0]/H/N>> endobj 40300 0 obj <>/P 2081 0 R/Type/Annot/A 40666 0 R/Subtype/Link/Rect[434 570 444 578]/Border[0 0 0]/H/N>> endobj 40301 0 obj <>/P 2081 0 R/Type/Annot/A 40665 0 R/Subtype/Link/Rect[446 570 456 578]/Border[0 0 0]/H/N>> endobj 40302 0 obj <>/P 2081 0 R/Type/Annot/A 40664 0 R/Subtype/Link/Rect[458 570 470 578]/Border[0 0 0]/H/N>> endobj 40303 0 obj <>/P 2081 0 R/Type/Annot/A 40663 0 R/Subtype/Link/Rect[437 560 449 568]/Border[0 0 0]/H/N>> endobj 40304 0 obj <>/P 2081 0 R/Type/Annot/A 40662 0 R/Subtype/Link/Rect[394 550 406 558]/Border[0 0 0]/H/N>> endobj 40305 0 obj <>/P 2081 0 R/Type/Annot/A 40661 0 R/Subtype/Link/Rect[386 540 400 548]/Border[0 0 0]/H/N>> endobj 40306 0 obj <>/P 2081 0 R/Type/Annot/A 40660 0 R/Subtype/Link/Rect[402 540 414 548]/Border[0 0 0]/H/N>> endobj 40307 0 obj <>/P 2081 0 R/Type/Annot/A 40659 0 R/Subtype/Link/Rect[433 530 443 538]/Border[0 0 0]/H/N>> endobj 40308 0 obj <>/P 2081 0 R/Type/Annot/A 40658 0 R/Subtype/Link/Rect[445 530 457 538]/Border[0 0 0]/H/N>> endobj 40309 0 obj <>/P 2081 0 R/Type/Annot/A 40657 0 R/Subtype/Link/Rect[410 520 422 528]/Border[0 0 0]/H/N>> endobj 40310 0 obj <>/P 2081 0 R/Type/Annot/A 40656 0 R/Subtype/Link/Rect[418 510 426 518]/Border[0 0 0]/H/N>> endobj 40311 0 obj <>/P 2081 0 R/Type/Annot/A 40655 0 R/Subtype/Link/Rect[455 500 467 508]/Border[0 0 0]/H/N>> endobj 40312 0 obj <>/P 2081 0 R/Type/Annot/A 40654 0 R/Subtype/Link/Rect[391 490 405 498]/Border[0 0 0]/H/N>> endobj 40313 0 obj <>/P 2081 0 R/Type/Annot/A 40653 0 R/Subtype/Link/Rect[407 490 419 498]/Border[0 0 0]/H/N>> endobj 40314 0 obj <>/P 2081 0 R/Type/Annot/A 40652 0 R/Subtype/Link/Rect[409 480 423 488]/Border[0 0 0]/H/N>> endobj 40315 0 obj <>/P 2081 0 R/Type/Annot/A 40651 0 R/Subtype/Link/Rect[425 480 441 489]/Border[0 0 0]/H/N>> endobj 40316 0 obj <>/P 2081 0 R/Type/Annot/A 40650 0 R/Subtype/Link/Rect[442 480 454 488]/Border[0 0 0]/H/N>> endobj 40317 0 obj <>/P 2081 0 R/Type/Annot/A 40649 0 R/Subtype/Link/Rect[433 470 445 478]/Border[0 0 0]/H/N>> endobj 40318 0 obj <>/P 2081 0 R/Type/Annot/A 40648 0 R/Subtype/Link/Rect[403 460 417 468]/Border[0 0 0]/H/N>> endobj 40319 0 obj <>/P 2081 0 R/Type/Annot/A 40647 0 R/Subtype/Link/Rect[419 460 433 468]/Border[0 0 0]/H/N>> endobj 40320 0 obj <>/P 2081 0 R/Type/Annot/A 40646 0 R/Subtype/Link/Rect[435 460 449 468]/Border[0 0 0]/H/N>> endobj 40321 0 obj <>/P 2081 0 R/Type/Annot/A 40645 0 R/Subtype/Link/Rect[451 460 465 468]/Border[0 0 0]/H/N>> endobj 40322 0 obj <>/P 2081 0 R/Type/Annot/A 40644 0 R/Subtype/Link/Rect[467 460 484 469]/Border[0 0 0]/H/N>> endobj 40323 0 obj <>/P 2081 0 R/Type/Annot/A 40643 0 R/Subtype/Link/Rect[484 460 498 468]/Border[0 0 0]/H/N>> endobj 40324 0 obj <>/P 2081 0 R/Type/Annot/A 40642 0 R/Subtype/Link/Rect[500 460 512 468]/Border[0 0 0]/H/N>> endobj 40325 0 obj <>/P 2081 0 R/Type/Annot/A 40641 0 R/Subtype/Link/Rect[387 450 401 458]/Border[0 0 0]/H/N>> endobj 40326 0 obj <>/P 2081 0 R/Type/Annot/A 40640 0 R/Subtype/Link/Rect[403 450 415 458]/Border[0 0 0]/H/N>> endobj 40327 0 obj <>/P 2081 0 R/Type/Annot/A 40639 0 R/Subtype/Link/Rect[392 440 406 448]/Border[0 0 0]/H/N>> endobj 40328 0 obj <>/P 2081 0 R/Type/Annot/A 40638 0 R/Subtype/Link/Rect[408 440 420 448]/Border[0 0 0]/H/N>> endobj 40329 0 obj <>/P 2081 0 R/Type/Annot/A 40637 0 R/Subtype/Link/Rect[425 430 437 438]/Border[0 0 0]/H/N>> endobj 40330 0 obj <>/P 2081 0 R/Type/Annot/A 40636 0 R/Subtype/Link/Rect[405 420 418 429]/Border[0 0 0]/H/N>> endobj 40331 0 obj <>/P 2081 0 R/Type/Annot/A 40635 0 R/Subtype/Link/Rect[418 420 428 428]/Border[0 0 0]/H/N>> endobj 40332 0 obj <>/P 2081 0 R/Type/Annot/A 40634 0 R/Subtype/Link/Rect[430 420 440 428]/Border[0 0 0]/H/N>> endobj 40333 0 obj <>/P 2081 0 R/Type/Annot/A 40633 0 R/Subtype/Link/Rect[442 420 456 428]/Border[0 0 0]/H/N>> endobj 40334 0 obj <>/P 2081 0 R/Type/Annot/A 40632 0 R/Subtype/Link/Rect[458 420 472 428]/Border[0 0 0]/H/N>> endobj 40335 0 obj <>/P 2081 0 R/Type/Annot/A 40631 0 R/Subtype/Link/Rect[474 420 488 428]/Border[0 0 0]/H/N>> endobj 40336 0 obj <>/P 2081 0 R/Type/Annot/A 40630 0 R/Subtype/Link/Rect[490 420 504 428]/Border[0 0 0]/H/N>> endobj 40337 0 obj <>/P 2081 0 R/Type/Annot/A 40629 0 R/Subtype/Link/Rect[359 410 373 418]/Border[0 0 0]/H/N>> endobj 40338 0 obj <>/P 2081 0 R/Type/Annot/A 40628 0 R/Subtype/Link/Rect[375 410 389 418]/Border[0 0 0]/H/N>> endobj 40339 0 obj <>/P 2081 0 R/Type/Annot/A 40627 0 R/Subtype/Link/Rect[391 410 403 418]/Border[0 0 0]/H/N>> endobj 40340 0 obj <>/P 2081 0 R/Type/Annot/A 40625 0 R/Subtype/Link/Rect[398 400 410 408]/Border[0 0 0]/H/N>> endobj 40341 0 obj <>/P 2081 0 R/Type/Annot/A 40624 0 R/Subtype/Link/Rect[425 390 437 399]/Border[0 0 0]/H/N>> endobj 40342 0 obj <>/P 2081 0 R/Type/Annot/A 40623 0 R/Subtype/Link/Rect[438 390 448 398]/Border[0 0 0]/H/N>> endobj 40343 0 obj <>/P 2081 0 R/Type/Annot/A 40622 0 R/Subtype/Link/Rect[450 390 460 398]/Border[0 0 0]/H/N>> endobj 40344 0 obj <>/P 2081 0 R/Type/Annot/A 40621 0 R/Subtype/Link/Rect[462 390 472 398]/Border[0 0 0]/H/N>> endobj 40345 0 obj <>/P 2081 0 R/Type/Annot/A 40620 0 R/Subtype/Link/Rect[474 390 482 398]/Border[0 0 0]/H/N>> endobj 40346 0 obj <>/P 2081 0 R/Type/Annot/A 40619 0 R/Subtype/Link/Rect[415 380 425 388]/Border[0 0 0]/H/N>> endobj 40347 0 obj <>/P 2081 0 R/Type/Annot/A 40618 0 R/Subtype/Link/Rect[427 380 437 388]/Border[0 0 0]/H/N>> endobj 40348 0 obj <>/P 2081 0 R/Type/Annot/A 40617 0 R/Subtype/Link/Rect[439 380 453 388]/Border[0 0 0]/H/N>> endobj 40349 0 obj <>/P 2081 0 R/Type/Annot/A 40616 0 R/Subtype/Link/Rect[455 380 469 388]/Border[0 0 0]/H/N>> endobj 40350 0 obj <>/P 2081 0 R/Type/Annot/A 40615 0 R/Subtype/Link/Rect[471 380 484 388]/Border[0 0 0]/H/N>> endobj 40351 0 obj <>/P 2081 0 R/Type/Annot/A 40614 0 R/Subtype/Link/Rect[486 380 503 389]/Border[0 0 0]/H/N>> endobj 40352 0 obj <>/P 2081 0 R/Type/Annot/A 40613 0 R/Subtype/Link/Rect[503 380 517 388]/Border[0 0 0]/H/N>> endobj 40353 0 obj <>/P 2081 0 R/Type/Annot/A 40612 0 R/Subtype/Link/Rect[359 370 373 378]/Border[0 0 0]/H/N>> endobj 40354 0 obj <>/P 2081 0 R/Type/Annot/A 40611 0 R/Subtype/Link/Rect[375 370 392 379]/Border[0 0 0]/H/N>> endobj 40355 0 obj <>/P 2081 0 R/Type/Annot/A 40610 0 R/Subtype/Link/Rect[392 370 406 378]/Border[0 0 0]/H/N>> endobj 40356 0 obj <>/P 2081 0 R/Type/Annot/A 40609 0 R/Subtype/Link/Rect[408 370 422 378]/Border[0 0 0]/H/N>> endobj 40357 0 obj <>/P 2081 0 R/Type/Annot/A 40608 0 R/Subtype/Link/Rect[424 370 438 378]/Border[0 0 0]/H/N>> endobj 40358 0 obj <>/P 2081 0 R/Type/Annot/A 40607 0 R/Subtype/Link/Rect[440 370 452 378]/Border[0 0 0]/H/N>> endobj 40359 0 obj <>/P 2081 0 R/Type/Annot/A 40606 0 R/Subtype/Link/Rect[396 360 410 368]/Border[0 0 0]/H/N>> endobj 40360 0 obj <>/P 2081 0 R/Type/Annot/A 40605 0 R/Subtype/Link/Rect[412 360 428 369]/Border[0 0 0]/H/N>> endobj 40361 0 obj <>/P 2081 0 R/Type/Annot/A 40604 0 R/Subtype/Link/Rect[429 360 441 368]/Border[0 0 0]/H/N>> endobj 40362 0 obj <>/P 2081 0 R/Type/Annot/A 40603 0 R/Subtype/Link/Rect[396 350 412 359]/Border[0 0 0]/H/N>> endobj 40363 0 obj <>/P 2081 0 R/Type/Annot/A 40602 0 R/Subtype/Link/Rect[413 350 427 358]/Border[0 0 0]/H/N>> endobj 40364 0 obj <>/P 2081 0 R/Type/Annot/A 40601 0 R/Subtype/Link/Rect[429 350 443 358]/Border[0 0 0]/H/N>> endobj 40365 0 obj <>/P 2081 0 R/Type/Annot/A 40600 0 R/Subtype/Link/Rect[445 350 457 358]/Border[0 0 0]/H/N>> endobj 40366 0 obj <>/P 2081 0 R/Type/Annot/A 40599 0 R/Subtype/Link/Rect[403 340 413 348]/Border[0 0 0]/H/N>> endobj 40367 0 obj <>/P 2081 0 R/Type/Annot/A 40598 0 R/Subtype/Link/Rect[415 340 425 348]/Border[0 0 0]/H/N>> endobj 40368 0 obj <>/P 2081 0 R/Type/Annot/A 40597 0 R/Subtype/Link/Rect[427 340 437 348]/Border[0 0 0]/H/N>> endobj 40369 0 obj <>/P 2081 0 R/Type/Annot/A 40596 0 R/Subtype/Link/Rect[439 340 449 348]/Border[0 0 0]/H/N>> endobj 40370 0 obj <>/P 2081 0 R/Type/Annot/A 40595 0 R/Subtype/Link/Rect[451 340 464 349]/Border[0 0 0]/H/N>> endobj 40371 0 obj <>/P 2081 0 R/Type/Annot/A 40594 0 R/Subtype/Link/Rect[465 340 475 348]/Border[0 0 0]/H/N>> endobj 40372 0 obj <>/P 2081 0 R/Type/Annot/A 40593 0 R/Subtype/Link/Rect[477 340 487 348]/Border[0 0 0]/H/N>> endobj 40373 0 obj <>/P 2081 0 R/Type/Annot/A 40592 0 R/Subtype/Link/Rect[489 340 502 348]/Border[0 0 0]/H/N>> endobj 40374 0 obj <>/P 2081 0 R/Type/Annot/A 40590 0 R/Subtype/Link/Rect[504 340 518 348]/Border[0 0 0]/H/N>> endobj 40375 0 obj <>/P 2081 0 R/Type/Annot/A 40589 0 R/Subtype/Link/Rect[359 330 373 338]/Border[0 0 0]/H/N>> endobj 40376 0 obj <>/P 2081 0 R/Type/Annot/A 40587 0 R/Subtype/Link/Rect[375 330 389 338]/Border[0 0 0]/H/N>> endobj 40377 0 obj <>/P 2081 0 R/Type/Annot/A 40586 0 R/Subtype/Link/Rect[391 330 405 338]/Border[0 0 0]/H/N>> endobj 40378 0 obj <>/P 2081 0 R/Type/Annot/A 40585 0 R/Subtype/Link/Rect[407 330 421 339]/Border[0 0 0]/H/N>> endobj 40379 0 obj <>/P 2081 0 R/Type/Annot/A 40584 0 R/Subtype/Link/Rect[423 330 437 338]/Border[0 0 0]/H/N>> endobj 40380 0 obj <>/P 2081 0 R/Type/Annot/A 40583 0 R/Subtype/Link/Rect[439 330 453 338]/Border[0 0 0]/H/N>> endobj 40381 0 obj <>/P 2081 0 R/Type/Annot/A 40582 0 R/Subtype/Link/Rect[455 330 469 339]/Border[0 0 0]/H/N>> endobj 40382 0 obj <>/P 2081 0 R/Type/Annot/A 40581 0 R/Subtype/Link/Rect[471 330 483 338]/Border[0 0 0]/H/N>> endobj 40383 0 obj <>/P 2081 0 R/Type/Annot/A 40580 0 R/Subtype/Link/Rect[434 320 446 329]/Border[0 0 0]/H/N>> endobj 40384 0 obj <>/P 2081 0 R/Type/Annot/A 40578 0 R/Subtype/Link/Rect[458 310 470 319]/Border[0 0 0]/H/N>> endobj 40385 0 obj <>/P 2081 0 R/Type/Annot/A 40577 0 R/Subtype/Link/Rect[468 300 478 309]/Border[0 0 0]/H/N>> endobj 40386 0 obj <>/P 2081 0 R/Type/Annot/A 40576 0 R/Subtype/Link/Rect[480 300 494 309]/Border[0 0 0]/H/N>> endobj 40387 0 obj <>/P 2081 0 R/Type/Annot/A 40575 0 R/Subtype/Link/Rect[496 300 509 309]/Border[0 0 0]/H/N>> endobj 40388 0 obj <>/P 2081 0 R/Type/Annot/A 40574 0 R/Subtype/Link/Rect[359 290 371 299]/Border[0 0 0]/H/N>> endobj 40389 0 obj <>/P 2081 0 R/Type/Annot/A 40573 0 R/Subtype/Link/Rect[379 280 385 289]/Border[0 0 0]/H/N>> endobj 40390 0 obj <>/P 2081 0 R/Type/Annot/A 40572 0 R/Subtype/Link/Rect[387 280 397 289]/Border[0 0 0]/H/N>> endobj 40391 0 obj <>/P 2081 0 R/Type/Annot/A 40571 0 R/Subtype/Link/Rect[399 280 413 289]/Border[0 0 0]/H/N>> endobj 40392 0 obj <>/P 2081 0 R/Type/Annot/A 40570 0 R/Subtype/Link/Rect[415 280 429 289]/Border[0 0 0]/H/N>> endobj 40393 0 obj <>/P 2081 0 R/Type/Annot/A 40569 0 R/Subtype/Link/Rect[431 280 445 289]/Border[0 0 0]/H/N>> endobj 40394 0 obj <>/P 2081 0 R/Type/Annot/A 40568 0 R/Subtype/Link/Rect[447 280 459 289]/Border[0 0 0]/H/N>> endobj 40395 0 obj <>/P 2081 0 R/Type/Annot/A 40567 0 R/Subtype/Link/Rect[413 270 427 279]/Border[0 0 0]/H/N>> endobj 40396 0 obj <>/P 2081 0 R/Type/Annot/A 40565 0 R/Subtype/Link/Rect[429 270 443 279]/Border[0 0 0]/H/N>> endobj 40397 0 obj <>/P 2081 0 R/Type/Annot/A 40564 0 R/Subtype/Link/Rect[445 270 459 279]/Border[0 0 0]/H/N>> endobj 40398 0 obj <>/P 2081 0 R/Type/Annot/A 40563 0 R/Subtype/Link/Rect[461 270 475 279]/Border[0 0 0]/H/N>> endobj 40399 0 obj <>/P 2081 0 R/Type/Annot/A 40562 0 R/Subtype/Link/Rect[477 270 489 279]/Border[0 0 0]/H/N>> endobj 40400 0 obj <>/P 2081 0 R/Type/Annot/A 40561 0 R/Subtype/Link/Rect[416 260 432 269]/Border[0 0 0]/H/N>> endobj 40401 0 obj <>/P 2081 0 R/Type/Annot/A 40560 0 R/Subtype/Link/Rect[433 260 445 269]/Border[0 0 0]/H/N>> endobj 40402 0 obj <>/P 2081 0 R/Type/Annot/A 40559 0 R/Subtype/Link/Rect[392 250 402 259]/Border[0 0 0]/H/N>> endobj 40403 0 obj <>/P 2081 0 R/Type/Annot/A 40558 0 R/Subtype/Link/Rect[404 250 414 259]/Border[0 0 0]/H/N>> endobj 40404 0 obj <>/P 2081 0 R/Type/Annot/A 40556 0 R/Subtype/Link/Rect[416 250 433 259]/Border[0 0 0]/H/N>> endobj 40405 0 obj <>/P 2081 0 R/Type/Annot/A 40555 0 R/Subtype/Link/Rect[433 250 447 259]/Border[0 0 0]/H/N>> endobj 40406 0 obj <>/P 2081 0 R/Type/Annot/A 40588 0 R/Subtype/Link/Rect[449 250 463 259]/Border[0 0 0]/H/N>> endobj 40407 0 obj <>/P 2081 0 R/Type/Annot/A 40552 0 R/Subtype/Link/Rect[465 250 477 259]/Border[0 0 0]/H/N>> endobj 40408 0 obj <>/P 2081 0 R/Type/Annot/A 40550 0 R/Subtype/Link/Rect[401 240 415 249]/Border[0 0 0]/H/N>> endobj 40409 0 obj <>/P 2081 0 R/Type/Annot/A 40548 0 R/Subtype/Link/Rect[417 240 433 249]/Border[0 0 0]/H/N>> endobj 40410 0 obj <>/P 2081 0 R/Type/Annot/A 40545 0 R/Subtype/Link/Rect[434 240 446 249]/Border[0 0 0]/H/N>> endobj 40411 0 obj <>/P 2081 0 R/Type/Annot/A 40541 0 R/Subtype/Link/Rect[386 202 398 211]/Border[0 0 0]/H/N>> endobj 40412 0 obj <>/P 2081 0 R/Type/Annot/A 40536 0 R/Subtype/Link/Rect[396 192 408 201]/Border[0 0 0]/H/N>> endobj 40413 0 obj <>/P 2081 0 R/Type/Annot/A 40531 0 R/Subtype/Link/Rect[410 182 422 191]/Border[0 0 0]/H/N>> endobj 40414 0 obj <>/P 2081 0 R/Type/Annot/A 40527 0 R/Subtype/Link/Rect[401 172 413 181]/Border[0 0 0]/H/N>> endobj 40415 0 obj <>/P 2081 0 R/Type/Annot/A 40524 0 R/Subtype/Link/Rect[396 162 408 171]/Border[0 0 0]/H/N>> endobj 40416 0 obj <>/P 2081 0 R/Type/Annot/A 40519 0 R/Subtype/Link/Rect[396 152 408 161]/Border[0 0 0]/H/N>> endobj 40417 0 obj <>/P 2081 0 R/Type/Annot/A 40515 0 R/Subtype/Link/Rect[371 648 383 657]/Border[0 0 0]/H/N>> endobj 40418 0 obj <>/P 2081 0 R/Type/Annot/A 40510 0 R/Subtype/Link/Rect[387 648 402 657]/Border[0 0 0]/H/N>> endobj 40419 0 obj <>/P 2081 0 R/Type/Annot/A 40506 0 R/Subtype/Link/Rect[403 638 416 647]/Border[0 0 0]/H/N>> endobj 40420 0 obj <>/P 2081 0 R/Type/Annot/A 40502 0 R/Subtype/Link/Rect[418 638 433 647]/Border[0 0 0]/H/N>> endobj 40421 0 obj <> endobj 40422 0 obj <> endobj 40423 0 obj <> endobj 40424 0 obj <> endobj 40425 0 obj <> endobj 40426 0 obj <> endobj 40427 0 obj <> endobj 40428 0 obj <> endobj 40429 0 obj <> endobj 40430 0 obj <> endobj 40431 0 obj <> endobj 40432 0 obj <> endobj 40433 0 obj <> endobj 40434 0 obj <> endobj 40435 0 obj <> endobj 40436 0 obj <> endobj 40437 0 obj <> endobj 40438 0 obj <> endobj 40439 0 obj <> endobj 40440 0 obj <> endobj 40441 0 obj <> endobj 40442 0 obj <> endobj 40443 0 obj <> endobj 40444 0 obj <> endobj 40445 0 obj <> endobj 40446 0 obj <> endobj 40447 0 obj <> endobj 40448 0 obj <> endobj 40449 0 obj <> endobj 40450 0 obj <> endobj 40451 0 obj <> endobj 40452 0 obj <> endobj 40453 0 obj <> endobj 40454 0 obj <> endobj 40455 0 obj <> endobj 40456 0 obj <> endobj 40457 0 obj <> endobj 40458 0 obj <> endobj 40459 0 obj <> endobj 40460 0 obj <> endobj 40461 0 obj <> endobj 40462 0 obj <> endobj 40463 0 obj <> endobj 40464 0 obj <> endobj 40465 0 obj <> endobj 40466 0 obj <> endobj 40467 0 obj <> endobj 40468 0 obj <> endobj 40469 0 obj <> endobj 40470 0 obj <> endobj 40471 0 obj <> endobj 40472 0 obj <> endobj 40473 0 obj <> endobj 40474 0 obj <> endobj 40475 0 obj <> endobj 40476 0 obj <> endobj 40477 0 obj <> endobj 40478 0 obj <> endobj 40479 0 obj <> endobj 40480 0 obj <> endobj 40481 0 obj <> endobj 40482 0 obj <> endobj 40483 0 obj <> endobj 40484 0 obj <> endobj 40485 0 obj <> endobj 40486 0 obj <> endobj 40487 0 obj <> endobj 40488 0 obj <> endobj 40489 0 obj <> endobj 40490 0 obj <> endobj 40491 0 obj <> endobj 40492 0 obj <> endobj 40493 0 obj <> endobj 40494 0 obj <> endobj 40495 0 obj <> endobj 40496 0 obj <> endobj 40497 0 obj <> endobj 40498 0 obj <> endobj 40499 0 obj <> endobj 40500 0 obj <> endobj 40501 0 obj <> endobj 40502 0 obj <> endobj 40503 0 obj <> endobj 40504 0 obj <> endobj 40505 0 obj <> endobj 40506 0 obj <> endobj 40507 0 obj <> endobj 40508 0 obj <> endobj 40509 0 obj <> endobj 40510 0 obj <> endobj 40511 0 obj <> endobj 40512 0 obj <> endobj 40513 0 obj <> endobj 40514 0 obj <> endobj 40515 0 obj <> endobj 40516 0 obj <> endobj 40517 0 obj <> endobj 40518 0 obj <> endobj 40519 0 obj <> endobj 40520 0 obj <> endobj 40521 0 obj <> endobj 40522 0 obj <> endobj 40523 0 obj <> endobj 40524 0 obj <> endobj 40525 0 obj <> endobj 40526 0 obj <> endobj 40527 0 obj <> endobj 40528 0 obj <> endobj 40529 0 obj <> endobj 40530 0 obj <> endobj 40531 0 obj <> endobj 40532 0 obj <> endobj 40533 0 obj <> endobj 40534 0 obj <> endobj 40535 0 obj <> endobj 40536 0 obj <> endobj 40537 0 obj <> endobj 40538 0 obj <> endobj 40539 0 obj <> endobj 40540 0 obj <> endobj 40541 0 obj <> endobj 40542 0 obj <> endobj 40543 0 obj <> endobj 40544 0 obj <> endobj 40545 0 obj <> endobj 40546 0 obj <> endobj 40547 0 obj <> endobj 40548 0 obj <> endobj 40549 0 obj <> endobj 40550 0 obj <> endobj 40551 0 obj <> endobj 40552 0 obj <> endobj 40553 0 obj <> endobj 40554 0 obj <> endobj 40555 0 obj <> endobj 40556 0 obj <> endobj 40557 0 obj <> endobj 40558 0 obj <> endobj 40559 0 obj <> endobj 40560 0 obj <> endobj 40561 0 obj <> endobj 40562 0 obj <> endobj 40563 0 obj <> endobj 40564 0 obj <> endobj 40565 0 obj <> endobj 40566 0 obj <> endobj 40567 0 obj <> endobj 40568 0 obj <> endobj 40569 0 obj <> endobj 40570 0 obj <> endobj 40571 0 obj <> endobj 40572 0 obj <> endobj 40573 0 obj <> endobj 40574 0 obj <> endobj 40575 0 obj <> endobj 40576 0 obj <> endobj 40577 0 obj <> endobj 40578 0 obj <> endobj 40579 0 obj <> endobj 40580 0 obj <> endobj 40581 0 obj <> endobj 40582 0 obj <> endobj 40583 0 obj <> endobj 40584 0 obj <> endobj 40585 0 obj <> endobj 40586 0 obj <> endobj 40587 0 obj <> endobj 40588 0 obj <> endobj 40589 0 obj <> endobj 40590 0 obj <> endobj 40591 0 obj <> endobj 40592 0 obj <> endobj 40593 0 obj <> endobj 40594 0 obj <> endobj 40595 0 obj <> endobj 40596 0 obj <> endobj 40597 0 obj <> endobj 40598 0 obj <> endobj 40599 0 obj <> endobj 40600 0 obj <> endobj 40601 0 obj <> endobj 40602 0 obj <> endobj 40603 0 obj <> endobj 40604 0 obj <> endobj 40605 0 obj <> endobj 40606 0 obj <> endobj 40607 0 obj <> endobj 40608 0 obj <> endobj 40609 0 obj <> endobj 40610 0 obj <> endobj 40611 0 obj <> endobj 40612 0 obj <> endobj 40613 0 obj <> endobj 40614 0 obj <> endobj 40615 0 obj <> endobj 40616 0 obj <> endobj 40617 0 obj <> endobj 40618 0 obj <> endobj 40619 0 obj <> endobj 40620 0 obj <> endobj 40621 0 obj <> endobj 40622 0 obj <> endobj 40623 0 obj <> endobj 40624 0 obj <> endobj 40625 0 obj <> endobj 40626 0 obj <> endobj 40627 0 obj <> endobj 40628 0 obj <> endobj 40629 0 obj <> endobj 40630 0 obj <> endobj 40631 0 obj <> endobj 40632 0 obj <> endobj 40633 0 obj <> endobj 40634 0 obj <> endobj 40635 0 obj <> endobj 40636 0 obj <> endobj 40637 0 obj <> endobj 40638 0 obj <> endobj 40639 0 obj <> endobj 40640 0 obj <> endobj 40641 0 obj <> endobj 40642 0 obj <> endobj 40643 0 obj <> endobj 40644 0 obj <> endobj 40645 0 obj <> endobj 40646 0 obj <> endobj 40647 0 obj <> endobj 40648 0 obj <> endobj 40649 0 obj <> endobj 40650 0 obj <> endobj 40651 0 obj <> endobj 40652 0 obj <> endobj 40653 0 obj <> endobj 40654 0 obj <> endobj 40655 0 obj <> endobj 40656 0 obj <> endobj 40657 0 obj <> endobj 40658 0 obj <> endobj 40659 0 obj <> endobj 40660 0 obj <> endobj 40661 0 obj <> endobj 40662 0 obj <> endobj 40663 0 obj <> endobj 40664 0 obj <> endobj 40665 0 obj <> endobj 40666 0 obj <> endobj 40667 0 obj <> endobj 40668 0 obj <> endobj 40669 0 obj <> endobj 40670 0 obj <> endobj 40671 0 obj <> endobj 40672 0 obj <> endobj 40673 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 40674 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 40675 0 obj <> endobj 40676 0 obj <> endobj 40677 0 obj <> endobj 40678 0 obj <> endobj 40679 0 obj <> endobj 40680 0 obj <> endobj 40681 0 obj <> endobj 40682 0 obj <> endobj 40683 0 obj <> endobj 40684 0 obj <> endobj 40685 0 obj <> endobj 40686 0 obj <> endobj 40687 0 obj <> endobj 40688 0 obj <> stream q /X1 Do Q q endstream endobj 40689 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 40690 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 40691 0 obj <> stream HWko8_0C fٶƻ@R ձ-4Ϳ{E=hA:><"/U]O_{f?|*_&Js-Y!Ҳ,ik} O4dUWm;۵*mHer˻ YjR12r,)Ζ_z/_ʮӳ gw>/ت,m:W=2 (vLm"HSA541`".1 MsLᙌH!x1+P; ԋH ԋH$H$H$H"ԫH"ԫH}N#9>r \b"\b"GkC Yȵpmpm!PV 1d# µ!,µ!,B}ZA6ĐE\+׆.kC YCV>Đ1` 1d#Jµ!,B}ZI6ĀE6ĐE\+ ׆k%C>r$\b"GkC XkC Yȵpm!PV ]׆b!,µ!X}!+Vb"\b"GUkC Yȵpmpm!PV 1d#*µ!,µ!,B}ZE6ĐE\׆׆kC>r"\b$'\bȊՇ׆b!XafkverȔ˻"crꞠS"-Jy\/~م(xykTeL+9G K}к~L*N:+ɲR`GPLݦ\kJ&X~WͶj{ïE^[_uM^QSJYi{8W /fz l|Uߟo2./φP k_^X\>pj3V0=MNHYz z ,Ӱr/o~N)΅T޲E];Ѯqڡܹgq2χs)U͞]~ܻ_w{>5X;wn5{k׮5iX0t>3咉!]z[!YOYT_.Մ}Z3Iq=i DΈLg<=rB^5;ÐϳJ=DoR>޽ۆi^u=p+ի($}g߾v~/uŽ+:w'^A|;soXX V/Y1⮛4D3GrZ!,~nA.Z7OvUm'u>#qYz"RȊYݜ-A$K.4*n Ds>QUZ2bG?Z|ؽkA ޮШhd;vb>IZmqn3{ ĥ/#֯DM=C zzz(c[4kZN})(p%z|' t.`s஭2W)osʌxVaع [yd 7r֝ "ryj)8{.+\rN\yTcUw)Q oCՂ84/26M~Ck.24VmRSbi耪&OFjG!aHUhe?j/PS>>H8@Yح{r<}`0 _h^ooDXMQfӸ!S\ə{V|RѣS/kZ]VD۳9CeИ?ET2 \=hf3o~Fz* -⫶>tS#=JsVf|ε' :dBn3-oSȳK/D[HX*ᦑÝsd)hq<-,1gD4Gvh\LԓKU.j {!VWT.r8g*=uuS^^щ% #7?[@=IbT*l_6=[,B'ȁQ ֠~P\ Nn߽uGLO~NͩJh@0G0!k@ˁ?9rZp6M7ϙ#sΓaRH3.EH?o{&JH?қo_QdˠD|ՈA=מLUx)uwo[2.NX#n])kD&(5LywTy*݊ PRy5OVXYRS1:@\w:Ck%qҲB&Ov*&%7xtRfvNŎ(+d%sݶue"xƢ&Kzyl> ^`Eg;?l~F6LK764S=/0I'Cf~7+y-0 GWX/Nfs }$7 +S6^@pC jo[>m\ZnZ3n_<<^4r+@33j@3/M~W%Vf9K3㐰|]rӱE̗_f5Xݏ2tAuMbG*cK##h1ӖX&(hv秸9,`*x$B?AЋp2AՍA&\YowA*EI?,25OӇ=0l *\א,C;"vTT`e7c; G ĆsIVHd 8gN ,(YyΫt M 6eʼn񪢤 ;_&.irZA]^ɒAwɓחAƒrciR>+e[ݾm Κ7<\SNDA`H*)gD?I&+Ѵ|E^Ύ ǍZIg7-ܝ"DG#TfXߡx[g@[pHrzm:8.6j֞ {!d_7~fl (ƽ|l 辇^#ϥmD@Lعevj?=y0 I.A2,)_V0[k0W1p(P/.mm/i/.QP>lVAJ2?^) Y T0E&ػ(g?¯Fcuc04ʆ/3sf::EPӂ]Z%' ԗ;D=HAm ,藯Tb`B_LsŬ(8]AA,eT3&%Edr[DY $'L }фNumWb0c,\ﭼpZ=,O ?N;D ciƪpKҷtR ߡN YfWqYbێ\ĉv,adfK^և7!nLendstream endobj 40692 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 40693 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 40694 0 obj <> endobj 40695 0 obj [250 0 0 0 500 889 778 0 333 333 389 606 250 333 250 296 500 500 500 500 500 500 500 500 500 500 250 250 606 606 606 500 0 722 611 667 778 611 556 722 778 333 333 667 556 944 778 778 611 778 667 556 611 778 722 944 722 667 667 333 0 333 0 500 0 444 463 407 500 389 278 500 500 278 278 444 278 778 556 444 500 463 389 389 333 556 500 722 500 500 444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 1000 0 0 0 278 0 0 0 0 0 0 0 0 528 545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333] endobj 40696 0 obj <> endobj 40697 0 obj <> stream q /X1 Do Q q endstream endobj 40698 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 40699 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 40700 0 obj <> stream Hmo)HƏ`V*v{VeHfY`63`ȌV݁뻸jЯ?^ ~͵CGBO9y>E@ %4gXL0}q6dyxۢ(>^4}5e;b"hg}]Ar?R5n&*k~#bOn)B@ 0O`!G3 o?W?ͦ,w<= Z8# +ɩ |1gwVrꢧ(Xp!Uq/GU٪--*_ J`FTŚAj ē4RwVY]v9͐𠧦 Z΀7z1|zw{Ӣ P]fW)+"c0_]xB ;éJ!m~L\Lz|eXڷ> KXˊuVdx.Q15ƋcVi|E8GY.]h'|lπ9p \^. 쩊,f9` <<8|,|d)f}}2%[^ j ^r8Uhq.XMwԋ_@ϥ EPx=CfO7K>~dMvs'ΒKrz.XmW&soUL,Q ɹd~G *[js{DX'unf9,gD,_.r"mC&+9}əmaOW\52?icbW>Rv 0rDZXjl˙tBuOmPw0y"6hd \;p &-xҧ^'C]W䰯Uˆ:6x=0& )W_2ȚiA&݃)_7* n҈7qŰj q쾤a/^<>sZ/s} <bg%s[D;ەCgPKnѩ}ޢcǹ.1DE NRzDO9SguFf4Pb`sXEKuS^c'zxyy(lEMYG!Gg=Y4#ǥ+4nM$A@pi$?tVzn@N#3\D@6E㘆PJwD'%1r"X&*PI,/J.AFcZa2K=HX )qstHx+;e)љa|eȁcdɭnQHG=hC!-pL zgMXZӭ6f&?x۝AF=B5iYm,PM`иߧT$SrbUz "m;y.؇==Y/b?Cdd(XX(#jR%g ݦD'K9Lt0A(eVXp&vF(.rXڍ~R o[ۄ&]tǽdzm]@XRZd߈hnѲ>K7x2/J_{$L$O2.M! I>4H;-|?ny8A,7EA,\R2yRE} 7`R1>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 40702 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 40703 0 obj <> stream q /X1 Do Q q endstream endobj 40704 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 40705 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 40706 0 obj <> stream H[oF+d+r/INV+0X*iݠ3h[$E`9c>>>>S>S>3>3l$kur\>=%kF.kR5r ^jZKRr ]BjF.KR5r ^jZKH-%{BjF.KR5t z/ZH-%{BjVFH-s ]BjF.k鹆.!\#@z/FH-%k!\#@r\Z#k!\CZKRkr\Z#ku`r\>=%kF.kR5r ^jZKRkr ]BjF.KR5r ^jZKH-%{BjF.KR5t z/VH-%{BjVNH-s ]BjF.k3es^Od: 2zD:S1I L`T6x?vIM}Zl47pڋ&C7a_l, cSmEJClpy|a8/]'v*<>E}g:R<*68_;̔Bݯf aj˿^wћӓl dSLJe6Ew:fcK}MtT 969Sm[A[ 8/Oϑ$J+4Wםc\7jac^A3] e_>J:mh+֎ ?^$Q*\Xe'8,B\:8ݺ<}[h{4zղgV8U]& 諼YTvbqY(~ϓuUl hMEY}r/j!UR]N61qfqڃ6*ѻ>;^#>9B%ϐ{D%^ڽmKfeF衧A`1[Df%AGة{ZةͪT0lDkmh;V<1~5Jqx?H@o W1ض]i X{bY6b6:{gv?6:?6.!Tk&ޖ(EԸ!-nPwQ-BߕӸϹkxx =gƲ*&@ E^CB^_ZZ^7_wu{|^Vew#{MpReow\ͻjOjA-/.{-}ӥHv{W1 ĩl}̷~EuWB;QD : ޮ˃%QC%Mg OmE-endstream endobj 40707 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 40708 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 40709 0 obj <> endobj 40710 0 obj <> endobj 40711 0 obj <> endobj 40712 0 obj <> endobj 40713 0 obj <> endobj 40714 0 obj <> stream q /X1 Do Q q endstream endobj 40715 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 40716 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 40717 0 obj <> stream HWko_q )i_HN6@E[XД^=z:g\A,{4g8!/?y_Mb^xIgdClKC?]0i̙KiKY@KށKug@%,r@%v"ϒZ^bZrA%/@KރK_+ʽV-{r/1~aZ*^bT=ȽUh{{R M>R M֒xTȽxTȽxcTȽxcTȽx TȽx TȽx3 TȽx3 TȽx TȽx$,%1-侌˲ &~gѫ*:*kQ&OǙ2jM1#[$Ijr5Mo/_wr2qd{9Y<08ypmbK2/r=lƓyc>痃~= 3Um. ؛,=wi\:+?ͣh2ܬi:8b (a45)-}lV^Z^.ff J:in|yoՎI݉|BW)5O./tjl3jiʽ+>Jfdws(Hu|&$w&Whi*ý!Gz "= e[n&feChWЖ+r7n!k8`u;0r>H ى-=Lf9麙5^{?;/' þyܬݠ0~io8?t-N:='2:v30j(?ip;DjҖk; 7o?V}nZ(_A#C^nnyBvjlKYZKb}}}}}}}}} r/1fi- ^bZSaί踲XS x$-Ӣ\k-bVǜ+m\X?vv=mfjz轿"G*1窇vdC{!)h)lcl L)73~a6Tٸc ؒ 茋ϼ뮸"Sy#u6lXϰXP $,nHo\ϠD0!J*6T.)v?^5x5/lRZ$}i#8`ik֫I$7hP=!]&\eeIKg}sJfynaw:yZQH(x{/H6GrNXժhW}бpUw ԜmcZs̅'bPm~3NuqwmDloI{5#??*E՗W#N,b{(xpu'ER$d[}Tu֗P:i&%ήe2PpQ\8G?Q\}Nu=2StY*"WmWjb%Qmj]+m]3Д!xX& b!ddBb/C&_ C6T:e8B뚂O&3q< @ʪ#At^t" )vt<a2C4&E@-$}DȡmlX=-, ҥTVbDaګ/#./WGJ>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 40719 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 40720 0 obj <> endobj 40721 0 obj <> endobj 40722 0 obj <> endobj 40723 0 obj <> endobj 40724 0 obj <> endobj 40725 0 obj <> endobj 40726 0 obj <> endobj 40727 0 obj <> stream q /X1 Do Q q endstream endobj 40728 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 40729 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 40730 0 obj <> stream HWko6>MSĴHMEhb-)R.y(IX{%1u <$ﹼ%o:ח?zB7o޽]2bqx"Y(K֘VB`_!'>MQ))V?\KЮlVQ26+ L3 c4ئ\ocgqpljł':2ZdhMSqu>A&<:*ͧ*'JqNL'[ip ˕Nπzc}v8"TŐObg9bjbz驗zWzWzWz婏>"GP{cB}쩏 >!'PxSB}O >%ԧPy3B}ׄzׄzϳ0+IŐw1`u1d] YzZCs$\b"{k] Xk] Yzϵp!PVu1`u1d=Jµ.,BZIŀEŐE\+ ׺k%Z+Wp!Wb"\bջ|.,µ.,BZEŐE\׺׺kZCs"\b"\b"{Uk] Yzϵpp!PVu1d=*µ.V"µ.,_p!Wbջ׺k#µ.,Bڈpp!P6"\b"{׺׺k#µ.,Bڈpp!P6"\b"{׺X ׺|.,µ.,_!W:b!]4fuH&X{~ K6&!/ cY͏ HS*9כO08L$k9*?0t` 9H l٢_050G#tXYƳDyEeevYUOE~<>muEwcc3Mծ,VF7OzݰQԝȅ/a$l؇= qbd5UWL|W~~3}xlay(feC%̡Gf_blcg\{ֶl;zBH׮,%\'r>>1mbsZ/> G_<6.>s{2˫MB? vE-O{Hx=wى u/l( 'H~|㝧0z >~2la}WiZ!~p`]XbiOvz6sWÅrIUi_O-٭TOv1{]'<͠QCixAU9Wt)qiM1=(r= de⦿09@]@O_t{Zڷ_!08U$[-#&& 5X.W JYSL5(%2.L-Ev&&}0N8K4!Y߹Pπ_3|.A_%X賍]p/3`ȻBT7^ѭ`Q6}gZza}~E^ ,K~Tzz^[?v~Öb{R(O#<,%z`|FB$ڥFvwBFsn5 яsPI ֠;9콑4%NX-͍6T<.59L pN@>-6ŎU~II^ܕ P8J%Ǚ٫0EOX&r 21IQe"jƥKef{u阀3Dc;gQlic4֎I?UVTܞB[fk.J$O,d=[n_hĮ#iN<;QNJ. e]SnjlVwBE؏_: OXV(M!"U0k ktH~;s/&&s};6hvGZQٯOydA*?r<" "Ek]Jѷ:~񣸳 /Oqb{ @S#[Fb$IEd< CPh ]O =7cnW7+~}cz|m)Em\jf[ y*`'.8=.Ƞ"a="+MK8a% L X*]bra4ntET2*OdDn;mL jЉz/7JS-,"8w&Rs ap$i||r)|YEy1 NAkCw7cN) *-ؙyxdIJs4  P4էYJN\jEW9zK&4 Im2i ^Lݪj;|""5K#t {ٿ^v-rȸB+.FӁ >>=<ß0uiendstream endobj 40731 0 obj <>/P 938 0 R/Type/Annot/A 40732 0 R/Subtype/Link/Rect[93.6001968 663.229004 184.404007 682.908997]/Border[0 0 0]/H/N>> endobj 40732 0 obj <> endobj 40733 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 40734 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 40735 0 obj <> endobj 40736 0 obj <> endobj 40737 0 obj <> endobj 40738 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 40739 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 40740 0 obj <> endobj 40741 0 obj <> endobj 40742 0 obj <> endobj 40743 0 obj <> endobj 40744 0 obj <> endobj 40745 0 obj <> endobj 40746 0 obj <> stream q /X1 Do Q q endstream endobj 40747 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 40748 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 40749 0 obj <> stream HW]oܶ}ׯ 8%@чiE-`JWҦwFV9Nu<3R7ͯoR㏯zqp.d g2тlk=D,=Cžݩnp+v_> Gw͎)gCd`f`L5mVCݵi+"@ǡlj9Jv$59PFֆ#E…76*'pqNʬm[=F,iZ#4?dDOٯ0g{n?l"#Dh)-D&cd1!xʀc 1`q< Y`9^^%^%^%^^^5^5^5^3B}Y>'PsB}/E zC7zC< X µ>Pp!+Tc kZC>p \c"\c"k} Ypp!PV1d µ>,µ>,B}ZAǐE\+XIµ>Pp!+Tc k%ZC>p$\c"\c"k} Ypp!PV1dJµ>,µ>,B}ZIǐE\+ X)µ>Pp!+Tc kZC>p"\c"\c"Uk} Ypp!PV1d*µ>,µ>,B}ZEǐE\Xiµ>Pp!+TcȢ˲ޯ͓<-84]۪k2khY^5t~:m(U$2'Neu}^t"4FE]&|dϪYҮ ,K3di2]m?g/a?gq].JsJ2puR|" 0iIe"x"Ô ˄#fdQ8%;( !_;b0 t~qPDqq!"9Jat`^a1RiҘ+@qV/ɓb})΢؎ a4&t0^b ssHJ|Kxsq zM.kr K \ϖ ( ,lH/n.2\qi3Ѳ{(޴H  (i\4V9>JmuЅ꣠kı˷+6ܫm3e8φ5!IJnY3a 0ǖ5!k(|˚5JaqoW':UL6$6+}$͔>uR2mc&8{CKzIh|h. {e惛;ukqd>n. X\xhW:S'{{_mu޽kԵ){ž}Mh:+Sb5|KC2_T^O2I랾kt6`t)х ojŇ4y>`vkfw:5d)c= ϥX ±1;+LXD۶۩Q05KٛhQEd(e\'eh ~6ga'܇HQ+V)")̳?v>uon`l)aXu=I{www@"lu+^iשX`TmM W9jLGK%!TZS}uQC}_(/rf[X/HUަbx|&ǣ ОqG\Ͽ쩵Gv}+zKŕ(lfiM TsWlú7bUNsP>حPwM84BQg_K\ Mp+dƽǴ2UqY$\X;czH66rة;)?__nvԞ"2Ш_p‘r^<ɅY(k6m1퇓 p=Y(jM2~=27a}Wr%<A§`"itLc!H센|/XF,fPptpn]:*"TE`׆:pmo<4e g#Gy4G#{ j}"s؞qƸ˲ O){"I)2{I&P3TŰP6W-aBBp< _Y=)QY8qXe,(++X~毩0;6:2`tF 4)up#9:yfr &lĎ .B?ڷlAcޕ^\F;LCe hWJ7$ iRLQH>e۪\pr@S<\MkBt%yn-t6s@2;~ <ߵ됁r7G[OwRřSf.)c$ p\QR1e2Kmx}Ytyuyj8˧3!6iwBw_V"2 W3>߮OAgcendstream endobj 40750 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 40751 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 40752 0 obj <> endobj 40753 0 obj <> endobj 40754 0 obj <> endobj 40755 0 obj <> endobj 40756 0 obj <> endobj 40757 0 obj <> endobj 40758 0 obj <> stream q /X1 Do Q q endstream endobj 40759 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 40760 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 40761 0 obj <> stream HWko__d$X`bX bD[G4{.%$#+[(}yV>ᇷ~cVf?㇛?n,p2SVgFBX+koeMvS[w&;67oO7oo޲/2cJƸ+t*]sW̟VKA^ AJZ^ vPg7|wn7}ӵnO}_쫯ގO+1ܷg!tλ,JaMvBSQy^DRqb,5mڼ㠠j-汞W%/ cLL)ql~V,X%[M:R ԪݮlwþT_OݽT|\1oMW*VoGc}ip/1(0h2~\=T㪚 ŝq5NFQeI,\Y`ۓ{ +L (F&iT!4OS#zڢt:Z0*pP.˒2WU@mnOC0iz?}n|`7, NJRص>%TGDAO+}yBfrsP !v]xhS Yp゗x0a}0n|sԗ+#YJT)Ӻp2_Ws \Oq'xǷ0>|0OP\E$;A9t@m6#D=̘eGٞzߏUٜ텾\?L gYZ"Ӫ~@}"DZ$BH 8GBn!~e%"ڷrr*MOepj;pΤND O}.Dj\ 9.8 904#ͷ>>|ohB0TY8OsD 1ө|}:54 +zcu{/䪜_ gUSRP4L"Ӂۮi1=w1\eJn^]N+ a5 cw[oN]C_l?oxy}=n=T״+SX0)2}Ja,Y0PٽE.G`0GͰrHHCP#oFWk$wZ) ,>U\+B,VBOOO: @K'-ˡaT]eՊyx lᅵ(a(o֙ekƹ*$(` L2%'z V ku;a@RjpGUrX\1$f3M\ㆢbji=38p\D*D\!~bN01OZP=/"e!CS,#i>mԡD&4}^ B/20wCW/ cNG\ĵQށ+&bޑGR*Xʞ  AX8_.E%532X~8]@T3#1n-= qJ)lr=|rl %)308R%NK:AE]=H}d!ٯj^."k^wnu0gwo.9:o`Q[huJӫx L%O8`GL测]t\erG>"!4?/yq^#II[D/{rr~ɢ-Fu+7T_d3{L0Z `X̘`$}(X&i LB;#jReDS] .<I|2P*O:mctO$"|ӵjKYZg]]{QS;/T(yϑE8n[=2wbKQ/w_;E2/e2`(Д AA}@k2Hǵ Ḯ(lƬ?`s3JxJb6cPSOOs~DJ0g** Jy>6I e u%1sQW9 Qz 6֊8DIMp6VHD8>lI]]!:x$I/y!Aؠ}.`V)fH8r0햦Ht ru T07Mendstream endobj 40762 0 obj <>/P 1812 0 R/Type/Annot/A 40989 0 R/Subtype/Link/Rect[130.078995 539.020996 197.787003 565.062988]/Border[0 0 0]/H/N>> endobj 40763 0 obj <>/P 1812 0 R/Type/Annot/A 40987 0 R/Subtype/Link/Rect[129 327 156 336]/Border[0 0 0]/H/N>> endobj 40764 0 obj <>/P 1812 0 R/Type/Annot/A 40985 0 R/Subtype/Link/Rect[160 327 172 336]/Border[0 0 0]/H/N>> endobj 40765 0 obj <>/P 1812 0 R/Type/Annot/A 40982 0 R/Subtype/Link/Rect[129 317 158 326]/Border[0 0 0]/H/N>> endobj 40766 0 obj <>/P 1812 0 R/Type/Annot/A 40979 0 R/Subtype/Link/Rect[181 317 189 326]/Border[0 0 0]/H/N>> endobj 40767 0 obj <>/P 1812 0 R/Type/Annot/A 40975 0 R/Subtype/Link/Rect[129 307 156 316]/Border[0 0 0]/H/N>> endobj 40768 0 obj <>/P 1812 0 R/Type/Annot/A 40972 0 R/Subtype/Link/Rect[160 307 172 316]/Border[0 0 0]/H/N>> endobj 40769 0 obj <>/P 1812 0 R/Type/Annot/A 40970 0 R/Subtype/Link/Rect[129 297 156 306]/Border[0 0 0]/H/N>> endobj 40770 0 obj <>/P 1812 0 R/Type/Annot/A 40968 0 R/Subtype/Link/Rect[160 297 170 306]/Border[0 0 0]/H/N>> endobj 40771 0 obj <>/P 1812 0 R/Type/Annot/A 40966 0 R/Subtype/Link/Rect[172 297 182 306]/Border[0 0 0]/H/N>> endobj 40772 0 obj <>/P 1812 0 R/Type/Annot/A 40964 0 R/Subtype/Link/Rect[184 297 194 306]/Border[0 0 0]/H/N>> endobj 40773 0 obj <>/P 1812 0 R/Type/Annot/A 40963 0 R/Subtype/Link/Rect[196 297 210 306]/Border[0 0 0]/H/N>> endobj 40774 0 obj <>/P 1812 0 R/Type/Annot/A 40960 0 R/Subtype/Link/Rect[212 297 229 306]/Border[0 0 0]/H/N>> endobj 40775 0 obj <>/P 1812 0 R/Type/Annot/A 40958 0 R/Subtype/Link/Rect[230 297 244 306]/Border[0 0 0]/H/N>> endobj 40776 0 obj <>/P 1812 0 R/Type/Annot/A 40956 0 R/Subtype/Link/Rect[246 297 260 306]/Border[0 0 0]/H/N>> endobj 40777 0 obj <>/P 1812 0 R/Type/Annot/A 40954 0 R/Subtype/Link/Rect[262 297 276 306]/Border[0 0 0]/H/N>> endobj 40778 0 obj <>/P 1812 0 R/Type/Annot/A 40951 0 R/Subtype/Link/Rect[278 297 292 306]/Border[0 0 0]/H/N>> endobj 40779 0 obj <>/P 1812 0 R/Type/Annot/A 40948 0 R/Subtype/Link/Rect[294 297 308 306]/Border[0 0 0]/H/N>> endobj 40780 0 obj <>/P 1812 0 R/Type/Annot/A 40946 0 R/Subtype/Link/Rect[151 287 165 296]/Border[0 0 0]/H/N>> endobj 40781 0 obj <>/P 1812 0 R/Type/Annot/A 40944 0 R/Subtype/Link/Rect[167 287 181 296]/Border[0 0 0]/H/N>> endobj 40782 0 obj <>/P 1812 0 R/Type/Annot/A 40942 0 R/Subtype/Link/Rect[183 287 197 296]/Border[0 0 0]/H/N>> endobj 40783 0 obj <>/P 1812 0 R/Type/Annot/A 40940 0 R/Subtype/Link/Rect[199 287 213 296]/Border[0 0 0]/H/N>> endobj 40784 0 obj <>/P 1812 0 R/Type/Annot/A 40937 0 R/Subtype/Link/Rect[215 287 229 296]/Border[0 0 0]/H/N>> endobj 40785 0 obj <>/P 1812 0 R/Type/Annot/A 40935 0 R/Subtype/Link/Rect[231 287 243 296]/Border[0 0 0]/H/N>> endobj 40786 0 obj <>/P 1812 0 R/Type/Annot/A 40932 0 R/Subtype/Link/Rect[129 277 156 286]/Border[0 0 0]/H/N>> endobj 40787 0 obj <>/P 1812 0 R/Type/Annot/A 40930 0 R/Subtype/Link/Rect[179 277 192 286]/Border[0 0 0]/H/N>> endobj 40788 0 obj <>/P 1812 0 R/Type/Annot/A 40927 0 R/Subtype/Link/Rect[192 277 202 286]/Border[0 0 0]/H/N>> endobj 40789 0 obj <>/P 1812 0 R/Type/Annot/A 40926 0 R/Subtype/Link/Rect[204 277 214 286]/Border[0 0 0]/H/N>> endobj 40790 0 obj <>/P 1812 0 R/Type/Annot/A 40923 0 R/Subtype/Link/Rect[216 277 226 286]/Border[0 0 0]/H/N>> endobj 40791 0 obj <>/P 1812 0 R/Type/Annot/A 40920 0 R/Subtype/Link/Rect[228 277 242 286]/Border[0 0 0]/H/N>> endobj 40792 0 obj <>/P 1812 0 R/Type/Annot/A 41016 0 R/Subtype/Link/Rect[244 277 258 286]/Border[0 0 0]/H/N>> endobj 40793 0 obj <>/P 1812 0 R/Type/Annot/A 41015 0 R/Subtype/Link/Rect[260 277 274 286]/Border[0 0 0]/H/N>> endobj 40794 0 obj <>/P 1812 0 R/Type/Annot/A 44768 0 R/Subtype/Link/Rect[276 277 290 286]/Border[0 0 0]/H/N>> endobj 40795 0 obj <>/P 1812 0 R/Type/Annot/A 41012 0 R/Subtype/Link/Rect[292 277 306 286]/Border[0 0 0]/H/N>> endobj 40796 0 obj <>/P 1812 0 R/Type/Annot/A 44697 0 R/Subtype/Link/Rect[151 267 165 276]/Border[0 0 0]/H/N>> endobj 40797 0 obj <>/P 1812 0 R/Type/Annot/A 41008 0 R/Subtype/Link/Rect[167 267 181 276]/Border[0 0 0]/H/N>> endobj 40798 0 obj <>/P 1812 0 R/Type/Annot/A 41007 0 R/Subtype/Link/Rect[183 267 197 276]/Border[0 0 0]/H/N>> endobj 40799 0 obj <>/P 1812 0 R/Type/Annot/A 44589 0 R/Subtype/Link/Rect[199 267 213 276]/Border[0 0 0]/H/N>> endobj 40800 0 obj <>/P 1812 0 R/Type/Annot/A 41003 0 R/Subtype/Link/Rect[215 267 229 276]/Border[0 0 0]/H/N>> endobj 40801 0 obj <>/P 1812 0 R/Type/Annot/A 41001 0 R/Subtype/Link/Rect[231 267 245 276]/Border[0 0 0]/H/N>> endobj 40802 0 obj <>/P 1812 0 R/Type/Annot/A 40999 0 R/Subtype/Link/Rect[247 267 261 276]/Border[0 0 0]/H/N>> endobj 40803 0 obj <>/P 1812 0 R/Type/Annot/A 40996 0 R/Subtype/Link/Rect[263 267 275 276]/Border[0 0 0]/H/N>> endobj 40804 0 obj <>/P 1812 0 R/Type/Annot/A 44413 0 R/Subtype/Link/Rect[183 257 193 266]/Border[0 0 0]/H/N>> endobj 40805 0 obj <>/P 1812 0 R/Type/Annot/A 40992 0 R/Subtype/Link/Rect[195 257 203 266]/Border[0 0 0]/H/N>> endobj 40806 0 obj <>/P 1812 0 R/Type/Annot/A 40990 0 R/Subtype/Link/Rect[186 247 196 256]/Border[0 0 0]/H/N>> endobj 40807 0 obj <>/P 1812 0 R/Type/Annot/A 40988 0 R/Subtype/Link/Rect[198 247 210 256]/Border[0 0 0]/H/N>> endobj 40808 0 obj <>/P 1812 0 R/Type/Annot/A 40986 0 R/Subtype/Link/Rect[129 237 156 246]/Border[0 0 0]/H/N>> endobj 40809 0 obj <>/P 1812 0 R/Type/Annot/A 40983 0 R/Subtype/Link/Rect[198 237 208 246]/Border[0 0 0]/H/N>> endobj 40810 0 obj <>/P 1812 0 R/Type/Annot/A 40980 0 R/Subtype/Link/Rect[210 237 220 246]/Border[0 0 0]/H/N>> endobj 40811 0 obj <>/P 1812 0 R/Type/Annot/A 40977 0 R/Subtype/Link/Rect[222 237 232 246]/Border[0 0 0]/H/N>> endobj 40812 0 obj <>/P 1812 0 R/Type/Annot/A 40974 0 R/Subtype/Link/Rect[234 237 248 246]/Border[0 0 0]/H/N>> endobj 40813 0 obj <>/P 1812 0 R/Type/Annot/A 40971 0 R/Subtype/Link/Rect[250 237 264 246]/Border[0 0 0]/H/N>> endobj 40814 0 obj <>/P 1812 0 R/Type/Annot/A 44057 0 R/Subtype/Link/Rect[266 237 280 246]/Border[0 0 0]/H/N>> endobj 40815 0 obj <>/P 1812 0 R/Type/Annot/A 40967 0 R/Subtype/Link/Rect[282 237 296 246]/Border[0 0 0]/H/N>> endobj 40816 0 obj <>/P 1812 0 R/Type/Annot/A 40965 0 R/Subtype/Link/Rect[151 227 165 236]/Border[0 0 0]/H/N>> endobj 40817 0 obj <>/P 1812 0 R/Type/Annot/A 43960 0 R/Subtype/Link/Rect[167 227 181 236]/Border[0 0 0]/H/N>> endobj 40818 0 obj <>/P 1812 0 R/Type/Annot/A 40961 0 R/Subtype/Link/Rect[183 227 197 236]/Border[0 0 0]/H/N>> endobj 40819 0 obj <>/P 1812 0 R/Type/Annot/A 40959 0 R/Subtype/Link/Rect[199 227 213 236]/Border[0 0 0]/H/N>> endobj 40820 0 obj <>/P 1812 0 R/Type/Annot/A 40957 0 R/Subtype/Link/Rect[215 227 229 236]/Border[0 0 0]/H/N>> endobj 40821 0 obj <>/P 1812 0 R/Type/Annot/A 40955 0 R/Subtype/Link/Rect[231 227 245 236]/Border[0 0 0]/H/N>> endobj 40822 0 obj <>/P 1812 0 R/Type/Annot/A 40952 0 R/Subtype/Link/Rect[247 227 259 236]/Border[0 0 0]/H/N>> endobj 40823 0 obj <>/P 1812 0 R/Type/Annot/A 40949 0 R/Subtype/Link/Rect[188 189 200 198]/Border[0 0 0]/H/N>> endobj 40824 0 obj <>/P 1812 0 R/Type/Annot/A 40947 0 R/Subtype/Link/Rect[192 179 206 188]/Border[0 0 0]/H/N>> endobj 40825 0 obj <>/P 1812 0 R/Type/Annot/A 41017 0 R/Subtype/Link/Rect[208 179 222 188]/Border[0 0 0]/H/N>> endobj 40826 0 obj <>/P 1812 0 R/Type/Annot/A 40941 0 R/Subtype/Link/Rect[224 179 238 188]/Border[0 0 0]/H/N>> endobj 40827 0 obj <>/P 1812 0 R/Type/Annot/A 40939 0 R/Subtype/Link/Rect[240 179 254 188]/Border[0 0 0]/H/N>> endobj 40828 0 obj <>/P 1812 0 R/Type/Annot/A 43534 0 R/Subtype/Link/Rect[256 179 270 188]/Border[0 0 0]/H/N>> endobj 40829 0 obj <>/P 1812 0 R/Type/Annot/A 40934 0 R/Subtype/Link/Rect[272 179 286 188]/Border[0 0 0]/H/N>> endobj 40830 0 obj <>/P 1812 0 R/Type/Annot/A 40931 0 R/Subtype/Link/Rect[151 169 167 178]/Border[0 0 0]/H/N>> endobj 40831 0 obj <>/P 1812 0 R/Type/Annot/A 40929 0 R/Subtype/Link/Rect[168 169 182 178]/Border[0 0 0]/H/N>> endobj 40832 0 obj <>/P 1812 0 R/Type/Annot/A 43390 0 R/Subtype/Link/Rect[184 169 198 178]/Border[0 0 0]/H/N>> endobj 40833 0 obj <>/P 1812 0 R/Type/Annot/A 40924 0 R/Subtype/Link/Rect[200 169 217 178]/Border[0 0 0]/H/N>> endobj 40834 0 obj <>/P 1812 0 R/Type/Annot/A 40921 0 R/Subtype/Link/Rect[217 169 231 178]/Border[0 0 0]/H/N>> endobj 40835 0 obj <>/P 1812 0 R/Type/Annot/A 40918 0 R/Subtype/Link/Rect[233 169 247 178]/Border[0 0 0]/H/N>> endobj 40836 0 obj <>/P 1812 0 R/Type/Annot/A 44832 0 R/Subtype/Link/Rect[249 169 263 178]/Border[0 0 0]/H/N>> endobj 40837 0 obj <>/P 1812 0 R/Type/Annot/A 41014 0 R/Subtype/Link/Rect[265 169 277 178]/Border[0 0 0]/H/N>> endobj 40838 0 obj <>/P 1812 0 R/Type/Annot/A 41011 0 R/Subtype/Link/Rect[189 159 206 168]/Border[0 0 0]/H/N>> endobj 40839 0 obj <>/P 1812 0 R/Type/Annot/A 41010 0 R/Subtype/Link/Rect[207 159 219 168]/Border[0 0 0]/H/N>> endobj 40840 0 obj <>/P 1812 0 R/Type/Annot/A 43088 0 R/Subtype/Link/Rect[202 149 208 158]/Border[0 0 0]/H/N>> endobj 40841 0 obj <>/P 1812 0 R/Type/Annot/A 41005 0 R/Subtype/Link/Rect[210 149 216 158]/Border[0 0 0]/H/N>> endobj 40842 0 obj <>/P 1812 0 R/Type/Annot/A 42990 0 R/Subtype/Link/Rect[218 149 228 158]/Border[0 0 0]/H/N>> endobj 40843 0 obj <>/P 1812 0 R/Type/Annot/A 42959 0 R/Subtype/Link/Rect[230 149 240 158]/Border[0 0 0]/H/N>> endobj 40844 0 obj <>/P 1812 0 R/Type/Annot/A 44531 0 R/Subtype/Link/Rect[242 149 252 158]/Border[0 0 0]/H/N>> endobj 40845 0 obj <>/P 1812 0 R/Type/Annot/A 40997 0 R/Subtype/Link/Rect[254 149 268 158]/Border[0 0 0]/H/N>> endobj 40846 0 obj <>/P 1812 0 R/Type/Annot/A 40994 0 R/Subtype/Link/Rect[270 149 287 158]/Border[0 0 0]/H/N>> endobj 40847 0 obj <>/P 1812 0 R/Type/Annot/A 42818 0 R/Subtype/Link/Rect[288 149 302 158]/Border[0 0 0]/H/N>> endobj 40848 0 obj <>/P 1812 0 R/Type/Annot/A 42770 0 R/Subtype/Link/Rect[151 139 165 148]/Border[0 0 0]/H/N>> endobj 40849 0 obj <>/P 1812 0 R/Type/Annot/A 42743 0 R/Subtype/Link/Rect[167 139 181 148]/Border[0 0 0]/H/N>> endobj 40850 0 obj <>/P 1812 0 R/Type/Annot/A 42701 0 R/Subtype/Link/Rect[183 139 194 148]/Border[0 0 0]/H/N>> endobj 40851 0 obj <>/P 1812 0 R/Type/Annot/A 42673 0 R/Subtype/Link/Rect[405 357 419 366]/Border[0 0 0]/H/N>> endobj 40852 0 obj <>/P 1812 0 R/Type/Annot/A 42631 0 R/Subtype/Link/Rect[421 357 435 366]/Border[0 0 0]/H/N>> endobj 40853 0 obj <>/P 1812 0 R/Type/Annot/A 40976 0 R/Subtype/Link/Rect[437 357 451 366]/Border[0 0 0]/H/N>> endobj 40854 0 obj <>/P 1812 0 R/Type/Annot/A 40973 0 R/Subtype/Link/Rect[453 357 469 366]/Border[0 0 0]/H/N>> endobj 40855 0 obj <>/P 1812 0 R/Type/Annot/A 42528 0 R/Subtype/Link/Rect[470 357 484 366]/Border[0 0 0]/H/N>> endobj 40856 0 obj <>/P 1812 0 R/Type/Annot/A 40969 0 R/Subtype/Link/Rect[486 357 500 366]/Border[0 0 0]/H/N>> endobj 40857 0 obj <>/P 1812 0 R/Type/Annot/A 41018 0 R/Subtype/Link/Rect[502 357 516 366]/Border[0 0 0]/H/N>> endobj 40858 0 obj <>/P 1812 0 R/Type/Annot/A 42392 0 R/Subtype/Link/Rect[359 347 373 356]/Border[0 0 0]/H/N>> endobj 40859 0 obj <>/P 1812 0 R/Type/Annot/A 40962 0 R/Subtype/Link/Rect[375 347 391 356]/Border[0 0 0]/H/N>> endobj 40860 0 obj <>/P 1812 0 R/Type/Annot/A 42337 0 R/Subtype/Link/Rect[392 347 406 356]/Border[0 0 0]/H/N>> endobj 40861 0 obj <>/P 1812 0 R/Type/Annot/A 43911 0 R/Subtype/Link/Rect[408 347 422 356]/Border[0 0 0]/H/N>> endobj 40862 0 obj <>/P 1812 0 R/Type/Annot/A 42245 0 R/Subtype/Link/Rect[424 347 436 356]/Border[0 0 0]/H/N>> endobj 40863 0 obj <>/P 1812 0 R/Type/Annot/A 40953 0 R/Subtype/Link/Rect[397 337 409 346]/Border[0 0 0]/H/N>> endobj 40864 0 obj <>/P 1812 0 R/Type/Annot/A 40950 0 R/Subtype/Link/Rect[405 327 421 336]/Border[0 0 0]/H/N>> endobj 40865 0 obj <>/P 1812 0 R/Type/Annot/A 42124 0 R/Subtype/Link/Rect[422 327 436 336]/Border[0 0 0]/H/N>> endobj 40866 0 obj <>/P 1812 0 R/Type/Annot/A 40945 0 R/Subtype/Link/Rect[438 327 452 336]/Border[0 0 0]/H/N>> endobj 40867 0 obj <>/P 1812 0 R/Type/Annot/A 40943 0 R/Subtype/Link/Rect[454 327 468 336]/Border[0 0 0]/H/N>> endobj 40868 0 obj <>/P 1812 0 R/Type/Annot/A 43634 0 R/Subtype/Link/Rect[470 327 484 336]/Border[0 0 0]/H/N>> endobj 40869 0 obj <>/P 1812 0 R/Type/Annot/A 40938 0 R/Subtype/Link/Rect[486 327 498 336]/Border[0 0 0]/H/N>> endobj 40870 0 obj <>/P 1812 0 R/Type/Annot/A 40936 0 R/Subtype/Link/Rect[397 317 409 326]/Border[0 0 0]/H/N>> endobj 40871 0 obj <>/P 1812 0 R/Type/Annot/A 40933 0 R/Subtype/Link/Rect[383 307 391 316]/Border[0 0 0]/H/N>> endobj 40872 0 obj <>/P 1812 0 R/Type/Annot/A 41835 0 R/Subtype/Link/Rect[372 287 389 296]/Border[0 0 0]/H/N>> endobj 40873 0 obj <>/P 1812 0 R/Type/Annot/A 40928 0 R/Subtype/Link/Rect[389 287 401 296]/Border[0 0 0]/H/N>> endobj 40874 0 obj <>/P 1812 0 R/Type/Annot/A 40925 0 R/Subtype/Link/Rect[380 277 397 286]/Border[0 0 0]/H/N>> endobj 40875 0 obj <>/P 1812 0 R/Type/Annot/A 40922 0 R/Subtype/Link/Rect[397 277 409 286]/Border[0 0 0]/H/N>> endobj 40876 0 obj <>/P 1812 0 R/Type/Annot/A 40919 0 R/Subtype/Link/Rect[395 267 407 276]/Border[0 0 0]/H/N>> endobj 40877 0 obj <>/P 1812 0 R/Type/Annot/A 41013 0 R/Subtype/Link/Rect[397 257 411 266]/Border[0 0 0]/H/N>> endobj 40878 0 obj <>/P 1812 0 R/Type/Annot/A 41555 0 R/Subtype/Link/Rect[413 257 425 266]/Border[0 0 0]/H/N>> endobj 40879 0 obj <>/P 1812 0 R/Type/Annot/A 41009 0 R/Subtype/Link/Rect[411 247 423 256]/Border[0 0 0]/H/N>> endobj 40880 0 obj <>/P 1812 0 R/Type/Annot/A 41006 0 R/Subtype/Link/Rect[406 237 420 246]/Border[0 0 0]/H/N>> endobj 40881 0 obj <>/P 1812 0 R/Type/Annot/A 41004 0 R/Subtype/Link/Rect[422 237 434 246]/Border[0 0 0]/H/N>> endobj 40882 0 obj <>/P 1812 0 R/Type/Annot/A 41002 0 R/Subtype/Link/Rect[400 227 414 236]/Border[0 0 0]/H/N>> endobj 40883 0 obj <>/P 1812 0 R/Type/Annot/A 41000 0 R/Subtype/Link/Rect[416 227 433 236]/Border[0 0 0]/H/N>> endobj 40884 0 obj <>/P 1812 0 R/Type/Annot/A 40998 0 R/Subtype/Link/Rect[434 227 446 236]/Border[0 0 0]/H/N>> endobj 40885 0 obj <>/P 1812 0 R/Type/Annot/A 40995 0 R/Subtype/Link/Rect[377 217 389 226]/Border[0 0 0]/H/N>> endobj 40886 0 obj <>/P 1812 0 R/Type/Annot/A 40993 0 R/Subtype/Link/Rect[410 207 424 216]/Border[0 0 0]/H/N>> endobj 40887 0 obj <>/P 1812 0 R/Type/Annot/A 40991 0 R/Subtype/Link/Rect[426 207 440 216]/Border[0 0 0]/H/N>> endobj 40888 0 obj <>/P 1812 0 R/Type/Annot/A 42855 0 R/Subtype/Link/Rect[442 207 456 216]/Border[0 0 0]/H/N>> endobj 40889 0 obj <>/P 1812 0 R/Type/Annot/A 41019 0 R/Subtype/Link/Rect[458 207 470 216]/Border[0 0 0]/H/N>> endobj 40890 0 obj <>/P 1812 0 R/Type/Annot/A 40984 0 R/Subtype/Link/Rect[397 197 409 206]/Border[0 0 0]/H/N>> endobj 40891 0 obj <>/P 1812 0 R/Type/Annot/A 40981 0 R/Subtype/Link/Rect[424 187 438 196]/Border[0 0 0]/H/N>> endobj 40892 0 obj <>/P 1812 0 R/Type/Annot/A 40978 0 R/Subtype/Link/Rect[440 187 452 196]/Border[0 0 0]/H/N>> endobj 40893 0 obj <>/P 1812 0 R/Type/Annot/A 41044 0 R/Subtype/Link/Rect[397 177 409 186]/Border[0 0 0]/H/N>> endobj 40894 0 obj <>/P 1812 0 R/Type/Annot/A 41043 0 R/Subtype/Link/Rect[408 167 425 176]/Border[0 0 0]/H/N>> endobj 40895 0 obj <>/P 1812 0 R/Type/Annot/A 41042 0 R/Subtype/Link/Rect[425 167 437 176]/Border[0 0 0]/H/N>> endobj 40896 0 obj <>/P 1812 0 R/Type/Annot/A 41041 0 R/Subtype/Link/Rect[416 157 433 166]/Border[0 0 0]/H/N>> endobj 40897 0 obj <>/P 1812 0 R/Type/Annot/A 41040 0 R/Subtype/Link/Rect[434 157 448 166]/Border[0 0 0]/H/N>> endobj 40898 0 obj <>/P 1812 0 R/Type/Annot/A 41039 0 R/Subtype/Link/Rect[450 157 464 166]/Border[0 0 0]/H/N>> endobj 40899 0 obj <>/P 1812 0 R/Type/Annot/A 41038 0 R/Subtype/Link/Rect[466 157 480 166]/Border[0 0 0]/H/N>> endobj 40900 0 obj <>/P 1812 0 R/Type/Annot/A 41037 0 R/Subtype/Link/Rect[482 157 496 166]/Border[0 0 0]/H/N>> endobj 40901 0 obj <>/P 1812 0 R/Type/Annot/A 41036 0 R/Subtype/Link/Rect[498 157 512 166]/Border[0 0 0]/H/N>> endobj 40902 0 obj <>/P 1812 0 R/Type/Annot/A 41035 0 R/Subtype/Link/Rect[359 147 373 156]/Border[0 0 0]/H/N>> endobj 40903 0 obj <>/P 1812 0 R/Type/Annot/A 41034 0 R/Subtype/Link/Rect[375 147 389 156]/Border[0 0 0]/H/N>> endobj 40904 0 obj <>/P 1812 0 R/Type/Annot/A 41033 0 R/Subtype/Link/Rect[391 147 405 156]/Border[0 0 0]/H/N>> endobj 40905 0 obj <>/P 1812 0 R/Type/Annot/A 41032 0 R/Subtype/Link/Rect[407 147 421 156]/Border[0 0 0]/H/N>> endobj 40906 0 obj <>/P 1812 0 R/Type/Annot/A 41031 0 R/Subtype/Link/Rect[423 147 437 156]/Border[0 0 0]/H/N>> endobj 40907 0 obj <>/P 1812 0 R/Type/Annot/A 41030 0 R/Subtype/Link/Rect[439 147 455 156]/Border[0 0 0]/H/N>> endobj 40908 0 obj <>/P 1812 0 R/Type/Annot/A 41029 0 R/Subtype/Link/Rect[456 147 470 156]/Border[0 0 0]/H/N>> endobj 40909 0 obj <>/P 1812 0 R/Type/Annot/A 41028 0 R/Subtype/Link/Rect[472 147 486 156]/Border[0 0 0]/H/N>> endobj 40910 0 obj <>/P 1812 0 R/Type/Annot/A 41027 0 R/Subtype/Link/Rect[488 147 502 156]/Border[0 0 0]/H/N>> endobj 40911 0 obj <>/P 1812 0 R/Type/Annot/A 41026 0 R/Subtype/Link/Rect[504 147 516 156]/Border[0 0 0]/H/N>> endobj 40912 0 obj <>/P 1812 0 R/Type/Annot/A 41025 0 R/Subtype/Link/Rect[163 316 180 324]/Border[0 0 0]/H/N>> endobj 40913 0 obj <>/P 1812 0 R/Type/Annot/A 41024 0 R/Subtype/Link/Rect[161 276 178 284]/Border[0 0 0]/H/N>> endobj 40914 0 obj <>/P 1812 0 R/Type/Annot/A 41023 0 R/Subtype/Link/Rect[165 256 181 264]/Border[0 0 0]/H/N>> endobj 40915 0 obj <>/P 1812 0 R/Type/Annot/A 41022 0 R/Subtype/Link/Rect[180 236 197 244]/Border[0 0 0]/H/N>> endobj 40916 0 obj <>/P 1812 0 R/Type/Annot/A 41021 0 R/Subtype/Link/Rect[167 246 184 254]/Border[0 0 0]/H/N>> endobj 40917 0 obj <>/P 1812 0 R/Type/Annot/A 41020 0 R/Subtype/Link/Rect[161 236 178 244]/Border[0 0 0]/H/N>> endobj 40918 0 obj <> endobj 40919 0 obj <> endobj 40920 0 obj <> endobj 40921 0 obj <> endobj 40922 0 obj <> endobj 40923 0 obj <> endobj 40924 0 obj <> endobj 40925 0 obj <> endobj 40926 0 obj <> endobj 40927 0 obj <> endobj 40928 0 obj <> endobj 40929 0 obj <> endobj 40930 0 obj <> endobj 40931 0 obj <> endobj 40932 0 obj <> endobj 40933 0 obj <> endobj 40934 0 obj <> endobj 40935 0 obj <> endobj 40936 0 obj <> endobj 40937 0 obj <> endobj 40938 0 obj <> endobj 40939 0 obj <> endobj 40940 0 obj <> endobj 40941 0 obj <> endobj 40942 0 obj <> endobj 40943 0 obj <> endobj 40944 0 obj <> endobj 40945 0 obj <> endobj 40946 0 obj <> endobj 40947 0 obj <> endobj 40948 0 obj <> endobj 40949 0 obj <> endobj 40950 0 obj <> endobj 40951 0 obj <> endobj 40952 0 obj <> endobj 40953 0 obj <> endobj 40954 0 obj <> endobj 40955 0 obj <> endobj 40956 0 obj <> endobj 40957 0 obj <> endobj 40958 0 obj <> endobj 40959 0 obj <> endobj 40960 0 obj <> endobj 40961 0 obj <> endobj 40962 0 obj <> endobj 40963 0 obj <> endobj 40964 0 obj <> endobj 40965 0 obj <> endobj 40966 0 obj <> endobj 40967 0 obj <> endobj 40968 0 obj <> endobj 40969 0 obj <> endobj 40970 0 obj <> endobj 40971 0 obj <> endobj 40972 0 obj <> endobj 40973 0 obj <> endobj 40974 0 obj <> endobj 40975 0 obj <> endobj 40976 0 obj <> endobj 40977 0 obj <> endobj 40978 0 obj <> endobj 40979 0 obj <> endobj 40980 0 obj <> endobj 40981 0 obj <> endobj 40982 0 obj <> endobj 40983 0 obj <> endobj 40984 0 obj <> endobj 40985 0 obj <> endobj 40986 0 obj <> endobj 40987 0 obj <> endobj 40988 0 obj <> endobj 40989 0 obj <> endobj 40990 0 obj <> endobj 40991 0 obj <> endobj 40992 0 obj <> endobj 40993 0 obj <> endobj 40994 0 obj <> endobj 40995 0 obj <> endobj 40996 0 obj <> endobj 40997 0 obj <> endobj 40998 0 obj <> endobj 40999 0 obj <> endobj 41000 0 obj <> endobj 41001 0 obj <> endobj 41002 0 obj <> endobj 41003 0 obj <> endobj 41004 0 obj <> endobj 41005 0 obj <> endobj 41006 0 obj <> endobj 41007 0 obj <> endobj 41008 0 obj <> endobj 41009 0 obj <> endobj 41010 0 obj <> endobj 41011 0 obj <> endobj 41012 0 obj <> endobj 41013 0 obj <> endobj 41014 0 obj <> endobj 41015 0 obj <> endobj 41016 0 obj <> endobj 41017 0 obj <> endobj 41018 0 obj <> endobj 41019 0 obj <> endobj 41020 0 obj <> endobj 41021 0 obj <> endobj 41022 0 obj <> endobj 41023 0 obj <> endobj 41024 0 obj <> endobj 41025 0 obj <> endobj 41026 0 obj <> endobj 41027 0 obj <> endobj 41028 0 obj <> endobj 41029 0 obj <> endobj 41030 0 obj <> endobj 41031 0 obj <> endobj 41032 0 obj <> endobj 41033 0 obj <> endobj 41034 0 obj <> endobj 41035 0 obj <> endobj 41036 0 obj <> endobj 41037 0 obj <> endobj 41038 0 obj <> endobj 41039 0 obj <> endobj 41040 0 obj <> endobj 41041 0 obj <> endobj 41042 0 obj <> endobj 41043 0 obj <> endobj 41044 0 obj <> endobj 41045 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41046 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41047 0 obj <> endobj 41048 0 obj <> endobj 41049 0 obj <>/Type/XObject/Height 93/Name/X>> stream H?Kqߝ&EYFSEY"D VCJA4FCN[B- QFi[p)i=}KMCjkgQ}x֠~w+v[4rגp7+ sށŨYvm/p)@WLOKp~c%8 UTuug`#0#0#0#0Hc)>HmC;@/gX &^873p!|1p;ly̲K( ~^;Mm"}8 )J/&SLVe؊ӓ(S7ۏ, - n+]nnh3>ʰh}ɬ2Ѡb/)dendstream endobj 41050 0 obj <> endobj 41051 0 obj <> endobj 41052 0 obj <> endobj 41053 0 obj <> endobj 41054 0 obj <> endobj 41055 0 obj <> endobj 41056 0 obj <> stream q /X1 Do Q q endstream endobj 41057 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41058 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41059 0 obj <> stream Hn_G^D*0ɶH-;.@vQ(6k֖TIF~+R^/R y&3HbuIEVwC9T_}shhڒZ fuUJ2bEA3)FS9.o6_j ڢQU3HR2O =ϳSMB"ivP5u0"^M9 "ЄȤD %-贠N'ĴVȚQ( k,. L5A8e}98auKӡxԯ7kdٛ,yA%g<6zLԎ?@ƚ{9Q;XY*<7]ٶ%ܔ pAKUA ri@hלk&?myH~ R]u4ߗ.&\.mlr4CBco[> 4&v7:9PퟯBTpljswR'$j'~tEz y:B}:ԓ&gSk:H#\^C):VCezr{l fxZp/[pZ@șQZ5x%Iʨ,R4͟^=%oa%# 4S7&i,kټwd\pbs4tc!uJ=fShƌ|szŹ\j> 𹪷~p @u3 n[rpWϞ6X1!Kd[ 4mt(#ɮ'1 qF^;(ﯮۼ~{y^4/ s[E4)9ȹ4j]XQqܠ:&n>|SS2K/{/m{Lv9P G@lɯY}`QIr^i֮+e3h#9JFf1c+[dY~|\Mr/;讦L e3ܞq, m``0sa7u$K@aut~k&Qv9^-X0F]]ZYjiB'~t-^`OY #O.x4h9zĢ|wvճ6vXNJY|vw cdG'lOMSZ@ZG 0<TYU\ q 9µkYZvU3^Gڄ;+K"Xkf뒊Q%e>nbwb 4s`IzpRU~<j8 ۛMTi) XDUηמ"27 7 Jn~|$xH2Qt :A/z;%_sTAr+0]p@ƁB1j+ pqiR&ku1of Zwıqiտ Tpendstream endobj 41060 0 obj <>/P 1055 0 R/Type/Annot/A 41065 0 R/Subtype/Link/Rect[130.078995 539.020996 359.764008 673.916016]/Border[0 0 0]/H/N>> endobj 41061 0 obj <>/P 1055 0 R/Type/Annot/A 41064 0 R/Subtype/Link/Rect[93.5999985 428.627991 199.356003 448.308014]/Border[0 0 0]/H/N>> endobj 41062 0 obj <>/P 1055 0 R/Type/Annot/A 41063 0 R/Subtype/Link/Rect[93.6006012 260.627991 270.312012 280.308014]/Border[0 0 0]/H/N>> endobj 41063 0 obj <> endobj 41064 0 obj <> endobj 41065 0 obj <> endobj 41066 0 obj <> stream q /X1 Do Q q endstream endobj 41067 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41068 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41069 0 obj <> stream Hێ8tgR`M v@.qi۝}-JDUU'{ ##,^}sᄏ_R|^74ʶmZoZũoމC#]N4׿Kp<ۊӮwպ^ߌPb}t0Od}~^vǃz\[mZ-UWj뭘8ڨ Ԃ5qp$.e:[%L%5<{'zވMg|$cz.,ۦs(!FIC KǀRR((PXRT<׌zMF! Qoz˨De[1QwzG{F'=QD}`>2#QQ1gcZ7q-%1XzKUc@1űD1k5ZKV31Xĵq-%QO\Pkq,QzZ͸Ũ'Ռkq (Ƶ8(F=qf\cbjƵ8o ZKUc@1űDQ8(ǀb\cbƵ8(F=qa\c@1űD1k ZK01Xĵq-%QO\kPkq,QzZøŨ'5kqlXƵ8(ǀb\cq,QT=ŸŨ'kq,QzZ˸ǀb\cbZƵ8(F=qe\c@1űD1k-ZK21Xĵq-%QO\kؾqkq,QT=ŸEX U}j\oF(mPk}~q;܉J~sɯO}~ٜ>T]hZ뭚{^e|mjpɝo?eȧe|O~W O0zM>jiiw֟ &VT jZIDyjcOߝ˷ew$.=&e >ϗY `~AL2=(.{%ѭ ]7QUMkT \yn@zI ũ8#+Q82F-7[3ʂ3\KFCOvBRAB| d uᵎ'',ҘґRL@(5R/h_⾤$} TF"*,gp'rGJaEJ914l %r)IrUk҆ƊR4h-#h-TQFΒVT xVPL\}9Cre -("ߘcynjaEEBM1QӚ-5Ur.Tɹ*yYSFb *~⫊:yte GHTXHu*^Mq !T ԴoOԴ/UΉ*IEEW9fJ;W9fhәYQ;S֓rR.)/IDT,ԳpCr`?4 0Ь"~rՌO"eryj}5Lo'6ɞ-FIhn2f~aG٥q̡Q=SRF. s6c_׋*]cu.7$zzFCiHCWw3\sQ6[eM_y8^6[?!,J 6mtX˳:<'`U7cNb%RҔ[TEmlIiL-qA孳uAe+UTު}mA㡦$53U%%1=XQa9u_SRh(\ ,\2Ԕ҄GEYP2 ,g.kJ\-%VE2lAr}үd$]ȚR*%LuI)L@gu]P:LɎP!⾂}mP)LT:AT:>sSSe+*jZlAEL'sJT˚ʥEILTUEY<:S2TL ֥MEJ}hrҿʾWSen9u_SPӾ=Q޾B@T9'j'i_l)h_圛)IFOgfEu*LYO2z:gJ`$y?_ T9-o]dЧ Br|Ao_A=]߼ (5I0

%Z78)dg`{Xw0W~j;P? !F-"p8iwxJd:spCyz>R6w>P6^B-onUn~?p6x% 3sǿm |ϯ޴#H6lO٢%z-Ė[~ÇDRVЋ59g&wwz5́o|I/W>Nbuj8ep|7I⭑OѤW6xCƪȲދtHH/z<*17F!X*>RQ0z/m;?HJ+ :\Ykwu\|BR&)À&Œņhtsf~M?6跉դxt(2\W _+yߎCiOԽrZ}^"ܦ*OeTu"P\{?w|پYF^E-M!0uLݤXm<*-ʲϿlZ^e2q"xˌгz3?꟣GpȷĆ|X,,踦-?0Y#7Jƨ (5ф՞7En(̒$LĺhoQ70$6IHEepw?R(6q0ĝ8S?;P[\z*廆TT2%ٸ/r U+ UҀRT?Gu⮄7y0=(&s\F|EE/ 8^ƹy:*&U¢/e2-a ^Ĵ)γ3hBVek}ph?SJz*_F7#hΕ`{O ð]([@ZE6p൞eIмB{b& $ܤ;{k  $ kL88BJ i\O|%;Ge]'"( ;'Q  `͘aEJxJUz,|aC%XɦB(zQkQ1Jϖaz }|x@2}9qK/ ǘbf aː f"=ݺ;Ov=7q(;NP_?E( ӒUE?idU\~6 f0QQ@әN/q\j@SʴM2f&B?yۃ9|r jzUĨID bfV;u|}@G^+xOQ \I󮾁RiF3Cr^(p`=u,²>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41071 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41072 0 obj <> endobj 41073 0 obj <> endobj 41074 0 obj <> endobj 41075 0 obj <> endobj 41076 0 obj <> endobj 41077 0 obj <> stream q /X1 Do Q q endstream endobj 41078 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41079 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41080 0 obj <> stream HWko۸_2|,Hnb{[*l+MI=iE*zt8<3䙡.M7/bϣ"& cXe$O]Qmem7 tG]uu{ej,ӌOS~*uD 3ChW/4Q.y<](W>&1aT fPr P(fP A 6@q=s=   K K + + + '$` 쓀}O)> ا4`!쳀}9>@ o;FQo3oZfP!{fP!{(D͠j9ZfP@QoZfP@Qo3(}Zַ Qo3(}Zַ>P-GTַ>P-GT a#mH mmBT *d *dַ>P@T aV mBT aV mT+6@!mT+6Bj}6Bj}A! DID͠B Pj}A}A}6Bj}A!JD Pj}A!JD͠j%Z(D͠j%ZfP@QoZfP@Qo3(}Zַ#ַT޷ Qo3o3}N<1=[Gkv+b#FG8Ix}>{\˪;vn}sejZPMk筮܄3uknr 7TMY_F)AM[7:]sP TDUsnt7cV`|_7n 46]t )W-*H`N|n Vٹ%޿x0<ʺr8T6dq,ܚOQݾaGʅ rr! ;<TNxNlBvJ!XJ0Ib6I5aWa8.Q3Bi7؉0n|X8 }(0&&`ٸaU<(+rfyOWo>*LTCYL#WHĂkU{  IH>addi>+C=Z4Xre8Ib[&2yV1MSy۴PnI払" P:@=F/+׹l{[O. 0FTɞgd';8~VĒ|J ͹ YjWB4v=#]lnT߻P^smWT];bY6~h$/ %3m-F^a$DNpi̺b v頍\$IgASWWpy`<%5,"dF2T FeD|Ns.sQf}q=j%9g7zei[񳩔#ew,wfMWAWU W:_D W_:+̓4IFd9dY&]?~|n?Ɣ2n+H2X(=^؆u2guq@=Ӽ՛3l .'h[L@* P? {QK<".d[[n{s R9|~6]9R9:oj;Է$2|wwƖ, sJãj}f}ހ}d>AEu!olb 7;{kH28Y&HIޕm׷mPvҜjF7AB~'U#ܼ~1DMi|񋣤4%v/֚>~W.k|6r~߼Ib\o\BPoI<] 7X?k74pCl%G}{z)s4khܓ]sc:gCw3^E;2q^޼]4O/"@t f1Uwߎqs*#|@oeE3iB., K)jl}>l\l5;b,Expi˔'\Ҹցwsq&U6+$uޅhv ,mH^"M gFVHIIXEannW03b\|vNw/zňùA~nғa+z aOd*qeBߡrY9&7x3ڭolXfz̬iKi䝁ݬ.NI ̞3 [F}\Bkqި!aY5H+~63x6crK=1t-m!yD/4gXna~l֭̚3 c2.07Æ_܁\$C%4'Z88LG[.+.|n>K+%qa8? NY4\Հ/4f[96..٩iEL(=Փ6AU j?HKsm^͎kTzBJB|JVY{df}-:hlH4xiW#<@3bzY5zYGKu0 K͘殡^j3-kϝ{Nd(d{[QTo g. EoOI&E#*<|Al YM>S'sy1X+i!ivx/Z} g;L6a}(VZMj7G%!>AG te#&g)XJudRQM>h3!|2(SpL BKxܗsg2 fL o7PZ~519K)=Ry[RuW){eIR&<7̻X":-:( fcD Šo #7<(/ . ,VY]^axh!dbƯ1>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41082 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41083 0 obj <> endobj 41084 0 obj <> stream q /X1 Do Q q endstream endobj 41085 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41086 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41087 0 obj <> stream H|Wko8_O H0Ŧκk[ )$RFRf^>d˗A!yxy%u.޿Y/߾LYU)ҜE.R^G(#7qtYv]7o_V<utf뻨E+3.2^d7cӵ✫,X|];pY?⹫a{Ywz۱6 v8][x"bGtY.D㗘e{.8DreGUqUT)̩BN8, c.1`1fX`a팅1,NzNzAzAzAzIzIzEWzEWzEWPsB}/E P_KB}/ e"WPx>k1fXzp- +T1 c Xk1fXp- Pb̰k9Z>p-'\1`Řarµ3,B}ZNc"\1"k1fXp- \1 c Xk1fXzVc"\1"k1fXp-ƀEcE\+b̰kZp- PVŘa µZ>p \1"k1$ZVc"\1 c̰BZ>p$\1"k1,µ3,B}ZIcE\+ b Xk1fXp- PVb̰k%Z>p$\}b̰BZVcҪdf]5,^E,8_y^}tt8y9(RY#NoFO|c7gݷ{}@~n?'Jvcӵl03ǧ~DqGMJ z>O1gSΒv㩷ZҌ۾~i& .kSix\ EU yLɧߖ_ܒ.eZk$T1.ۮvۮC}CQ,LJ*> 9LڝGfJ6=8gM{P9>攃joGf# +2_Q q 0O$ώ5X_f~]ϥi.*7si\KVy5[;a@E!f$7W`#ѻC\u,OB)0>_==C9mo?C; IJ:.[NK"tmPmGz[PǷ}n mRoݳXP)yGH>7[e~F_*,_m4]-`r-&z ^")JΨYnr ݹ3o^tT^Ǖ6 0T TwmAMkmjF_a_\,K-9DTS{aP_=Kǁ?xûn|42tlx:Rq) ).]me[cEuC08g,ޭ~EVdOd(G!kp;ڻl\|΍W+΁\gƛbenR#Wfך[X0CVIj˲ k3̇ы8R  ?.T'T<-XŃƏ?{^`F%|j2q I΄#-I@so# / 2Jkg"F j5iI/ FWQ.irK,19 釜~)[ϑvU$O]Y$zCq})=#&4 1La^xfzi:.|9&ZU3ڊm-_CVl26UM-US)y>]P*MaFєHp⡬ l|V%3/[Og(3<1KM<o_|yiW_O ןø)o 1^q'YMP0}́U_rKhV>1k 1/oÝ1ʊCX?e/7ﮤjTk~"MfMm'c$lg㔂k.;CCNاZEGۖRf7w3;ڋŌQs=ܜrS9W;{ض]§ikx ȪfPJ9OZB4DWXc30*FMFcW{^IHYq0A8z4LD}|,I 8 gzM 7ztѵDQT Ԩ$[j:!}F/b{ۊlٌ)-">/P 429 0 R/Type/Annot/A 41091 0 R/Subtype/Link/Rect[93.6001968 591.229004 309.647003 610.908997]/Border[0 0 0]/H/N>> endobj 41089 0 obj <>/P 429 0 R/Type/Annot/A 41090 0 R/Subtype/Link/Rect[129.600006 316.82901 324.372009 336.507996]/Border[0 0 0]/H/N>> endobj 41090 0 obj <> endobj 41091 0 obj <> endobj 41092 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41093 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41094 0 obj <> endobj 41095 0 obj <> endobj 41096 0 obj <> endobj 41097 0 obj <> endobj 41098 0 obj <> endobj 41099 0 obj <> endobj 41100 0 obj <> endobj 41101 0 obj <> endobj 41102 0 obj <> endobj 41103 0 obj <> endobj 41104 0 obj <> stream q /X1 Do Q q endstream endobj 41105 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41106 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41107 0 obj <> stream HWm۸__ŞV|k\K5ࠕe[-$y_d`Cj !gftϢȫWw$7FFT4'?D*d)%#]4QBv%5~P?UoCjtut]YGwk 'QA$YJn_ L,aɘϫz|Y}q"i2[\G Xa#3LhB>B| rLB1ʳG1y= Mxmm4Dy6NiH޷!Y!Y#y#y#y^ E^ E^"e^"e^"e>Eاa3}Y>Cg{W{Was}Yַ#ַiT޷ QoӨoӨoZߦQ@ Qo(}Zַ Qo(}Zַi>P-CTַi>P-CT4 a!mBT4 a!mTc6 6@!mmmBT4 a#mT6@!mT6Bj}6Bj}F!rD Pj}F!rDMj9ZvZߦQ!{(DMBMB Pj}F! DMjZ(DMjZߦQ@QoZߦQ@Qo(}Zַ Qo(}Zַi>P@TێDT4*dַiT޷iT><$iyެ5EJۈ&ey4}^4Su՞=֍nc}(:t,v쫛/x>V3>lÍ"nO(qqs(YXUpp}1' + iMfݜMy[-D[{1`T`ٝo;]¼hZyLc }>ihn!Ճh7/K !lRT%rBu@O| bzm GT\ .?v8;$顺1\P=ܸe\=ܛwfh i&KM_48yzH5"[!x 5I*'Ѥ/iSoGTlλ꺶J[$taUֆ7Ѫ\9ޔܦʲqpۨ#֗Qe)ME^Y7H`,p"}eH&%kq,1M 7rd#u]8R>s5qIŝ r`?A,=PaaL"8sS%|t؊>YTݷ]f(F`!!^SoJL&P%j(ȎΖY._ >Cع.Xu7T{^2ExQOC5fMByr$ecEυH+9oCt:ԥdHz]2]؞w!{bXVv62)%h$wۃisߛ0?γ[ăr-ObHN<3P3+!=Ns=./f"NZ,jM>Le͌;z<؉8m~EjyZ,a[5~AcbǶ,c MuG0!E yZXşL=lR<ު )(zYBy/^{psy;f.L.9B0/$#staкd"\']྽rnے3;­J ,n)M@衲hk =`D)_]S$g'4t 6R sIi>upHQ湢sƄ,rn^̧"T6p棣2sF•dad*pV4mc0VMzލ7(٫7>re ,$3t$U>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41109 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41110 0 obj <> stream q /X1 Do Q q endstream endobj 41111 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41112 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41113 0 obj <> stream Ho/$`vvw8q F {O~6W.6-η_f/vәxp(pu3O6|KߙscmzRW/UړГ6LZ^Nke-&H\:^kHzI '=$>>@HGHI#I!}Kҷ%[HߑHw$}{=ICD'HHzYKVkʑ՚0ֲLą&.L"S5q0LE:2Z.2ZISjM\$=L#S"S5q0LE:2Z.2ZISjM\$=L#SUjM\^kEVkZZv՚HzZOVk"aj=ZeZdj&.֓Zv՚HzZOVk"aj=ZeZdj&.֓ڪ dj&.L"S5qaz k-jM\$=Lm S5q0LֲLE2ZISj-jM\$=Lm S5q0LֲLE2ZISjmUE2ZZv՚0Eқ'65GPKdW".`  ++VVKX-ZjV:`'Xa%r &.diM5²eޑkm\JH&.‚;{kXEX{Gzq*]"ך zH6NK<ą,ɺCX{Oz5Yw zI& aA=d!,'ך(Z^k|ޓkM‚{{ZAX{Oz5Y+5q!Kk0>kM‚{*@X@z5Y zH&Z|‚{;aA񝰠^k`NX@z5y0Gą,#7aA#}SJ4Uͬfv['5mLu3[U.׋Ǜz\;=qx[gj\_O>o7SbuM?vN?/W3W.4drk@{_> zr=Yn/'MN36o^E\ݛػ:!L(g/M>yӯ`bg|zn?'/L1Yl_\O;1m<^M_jkޞ{4wxb^_Y9:oynr ^q+VV HXX"ZjV :`u'X=aJ+iytimK,aY`Y²r zH6n XZ7,{`Mt^k&XEzq,]"ڸ .Z7,{`Mt^k&XEzq,]"ڸ .`kmKH6n XZ7,{`Ҭ@zq,]"ڸ .`kmKH6n XZ7,{`Mt^k&XEzq,]"ڸ .͊Z7,{7AW y{Dӛbq}~yLUS7ٕ1rB>OO~Ud10{w՝O<3_3jrvܜmӋrwzi{xLR||z?| M-y#µcq> { u R+!϶=Ϳ}˧Θ{ڦt/-?՘R4sM~gpz^{y>fBu ^Q7Z>\O~=6vmۖe*<9n ܺ[uw,թ;j?Yw#q;dq~멺S:;m=x.]۸Knf4wCσz}9ov&t};nB:R\ \ȤDPu/hKM// Λa4>4gFԄ>t%j)d6Kj%=eS}i#,4_qw> W. P2Y~{Rs ?CuI'雴M iQiE [Ui/^RZ_KӬB*]?/>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41115 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41116 0 obj <> endobj 41117 0 obj <> endobj 41118 0 obj <> endobj 41119 0 obj <> endobj 41120 0 obj <> endobj 41121 0 obj <> endobj 41122 0 obj <> endobj 41123 0 obj <> endobj 41124 0 obj <> endobj 41125 0 obj <> endobj 41126 0 obj <> endobj 41127 0 obj <> endobj 41128 0 obj <> endobj 41129 0 obj <> endobj 41130 0 obj <> endobj 41131 0 obj <> endobj 41132 0 obj <> stream q /X1 Do Q q endstream endobj 41133 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41134 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41135 0 obj <> stream HWm6_!h]&wAۤ(RM$[Բ|Έd^lL oՇ1}Wo^yW7)/T+ dZ&<}Hxڦf[SkCNmr> *]2>1HԀϴ̫t%zl]zu#tq՗/3X*̈́ ٵ74M2"k]]7 Is:/^RȫUwH&;~41`.1a|H1&ƘsBB8Q Q@9ɇ6@ KKK++kkk"b_싈}I/#%ؗ2b_쫈}E"`o"`i m]"Ն6DCՆ6DCb PjCjІ(}ZA6PmhC>R TET+Ն6@ m"GjCj(B QHPmhC>R TںD mه6@ mه6DCՆ6D#JB QHPmhІ(}ZI6!`V m"TET+ Ն6D#JB PjCj%І(}ZI6u"Tm"Tmه6@ m"GUjCj(B QHPmhC>R"TE6!`V m"GUjCՆ6D#*B QHPmhM6!*fE6!*f7 ]rJnWLyOx> Ê(Ll\OH!xԌ?KY{.3 'R|]ӫUnPoi|=r7?ϰƍ`æyjM~՗/qtiimnu;'8Kh;? +ux[l-EΠqf"~qkR3 9;hUXYbv(Zk+uz .Xn 9;cMUJVB,}֍pXW`%8@,ōJ,$}q7?dkx]gEɊ"3}$Vf5p7[dQ,C/n=]_HQdύ]i B˄C_Vp?.g#$Oj&_ǪdrYiFVM0u Y0m,U]gCC크/ʣ7w;x>#XCAW j0SZpū p*(Za9$ _g}G=k}g$TgƉM}r%N7^ZTI3)ļtKYeN n݂=,t |p܎un9\6)0$7> S yXhĄƖ3v*s<KT*63 >~bZe9nz;>m3sm88W8}~ f:s>}hF7/KW^hamiv]H" 8zcpUf>7uSj<ʅqFMXߏBT䋓7 ,P6p0t{k`,07z:ͩdĔ3ȯn+j#.v!$QiiOs#>FBs:S=60 1Fd^2#OF6U=݅('t.X [,ʕsʥx(A18+?nyJWղĤ^RۮYԵ A̬7vMli6S9]sv6]K`yY'=v`ǬÐ2|v΅WEJW8Y^<rwcs^X$"nmmh]寮G[Yq/T tqf0mT>7VrYBKr'y#.>ЧK?%AYEs6IdgzFz2+*OݤfefПv0\$a=3{4#i~ _k5RtsWunTYXB&Wb5<BU(& |[{3j^DqN (2Gɸ503.]mLKeJΧ+J|ǟ5 !G;GLbD§̲~U%>[bQ,gȜ ܬfJ gxx/1<,2_b?wvͤ^BLwץ}FRF:I{_ٺ{2p/l/0<l2kv5t_ C[o@ ҝN|K ;f392pB?ܹݭG_ f~c/1 %Bҥ?} f[Q.CI>?Hpe6P)ر9I|Z40Ҹtij[xPRdeu)juۆgeٲ {h׭źrR`C08rl, 'Q-VHȏ+HccM"hhE0N03 =id0h@|Z ;"j=onM{#.}u}+Fotˁ/cשPa>cOE}PHdIy2;oҀ(o@f(#gC?;n&v}֚QUa8{.K&/`#.?1@q?J0o,,6B55~Y1aGݐA6Pa}L%#w90yfEu\!G1u߱H\r]/ BRs{ugBX2KrCʦi~ǹ@'UVPggN6~Q9'oW2UְKubn Ū HvL[3X?Gh&Dh;u#ߌEprg/@`tW8DTt(Z!` 7]l56x[άKUեʼ}"J/96VӪlW2з-Lu=i{fD-pkiaӔ1O3<ȭ TrEoJ7U\G;ܟ1̣'/`j /}%(yy0Ytes!&Ɍ[ }MzV/'DDT}WҺΞ_-=`,4MI (zn*e& bv)>'1{6eRτC눒0@*cBTi0(~)]BIguh-jU_ @A =̍B ~3IxLVcf Kq#S਌̨zTP}zM\uG05T(rݳogh9a7u=~m]0@/2LG_[ѿ|lܙw߾]13=$ 2Ez߽s)1욬AJP5NDk+iF%7"đ =r'4"6YChְ^s1oҮido2A!ŭ[4W+2endstream endobj 41136 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41137 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41138 0 obj <> endobj 41139 0 obj <> endobj 41140 0 obj <> endobj 41141 0 obj <> endobj 41142 0 obj <> endobj 41143 0 obj [250 278 371 500 0 840 778 0 333 333 0 606 250 333 250 606 500 500 500 500 500 500 500 500 500 500 250 250 606 606 606 444 747 778 611 709 774 611 556 763 832 337 333 726 611 946 831 786 604 786 668 525 613 778 722 1000 667 667 667 333 606 333 0 500 0 500 553 444 611 479 333 556 582 291 234 556 291 883 582 546 601 560 395 424 326 603 565 834 516 556 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 479 0 0 0 0 0 0 287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 606 0 0 747 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 1000 0 0 278 278 0 0 0 0 0 0 0 0 605 608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333] endobj 41144 0 obj <> stream xzwxW!+5zB`c:6Pl{mI:\ޛ 6cB'H JBn(=cg{9G{G Fxq79w}G{|콹ofۣ" 'c&VO2&x4='<|&[LbOSrbXAL'v+= b/1G",ل1O%y5!6fb>aJ,  '0'ۈO b XJ q #0!xb81HII ARb1xB"F^jMxk#‡xF#뉱1$DD A,$^0a-|k7g/#[ޥGVۨѳFidet?v,16xqh(ZBL曤cI?v&:M|0)lғI?H$R{ɋ'M.2sʆZLuZ9ir{}8Ùf?ͳ:2ojf7zΌ9)s.[FB/ h<+4̎ R2 T @@B3jZ5u@sN诊a2 g@LDN!" M31DC< I{ۇPD~?ӪA>MHhI΢afǤ Ir/QљV1$p J5BWQ7\|<8TwXڭ+RO֢ Q4=i2@!6ZށT)pыԊRM_;]-i2'Bڧ)ֲn41c:< ia9ph4̝L46mN.+嬲{3 hoJQػA($XwPa)A zAܐmiɩ6׵]I:t>-i0ǣߡ#L ed9m}W+V7|5 Y 5Bh׽tc In̹D!{X ouD­;4B4F?Sx]bľ> lCDtWN><~ნHs8ևwa+RtPx[R\D?1]b##$ ߃.GF4IǗ6UL44|벅 Z9݇):ٟ[EG c s*@!"s Zha” 녩7*ӡ``0?62_ QAR>^ BX )g7ažxmȐhca>W":C)(@u{su_y W @8ˀ*Lb::>5j(/EѡHՃ1-("Aۃxh0 ˶t# pO,w GpxjR)#lYvt'1,{g']Q"6VRr7g U7X9 .67fm<7p/osp7)dro S-yG *72@E;᰾KϻpAU#\W5p3xD]bCwqq)GR] wH͕*~;A J&KppG`?r*#Q#2ϨDJ!q LJ:RV۠RQ OT OUr<) Q{vPIW_gA_b,A)OlxT؈ R`K1H?m u9(y(`kiZpo.ȓ 3ਘ0x`f"=ZSa> @KWx*Kfj M!BإMUCzhZ4*4yyihԯ=k Ouiv$POe4@!jӾ%nS")`N6o葴F1Π.?՘h69@J|X&Zf  /^7QHa '6Sp j]rNT.DX- `f=/WfA3НQf`d ZB;{N苼/Yc<JN"CQ-24 h&qmcLq@3V^fr | lp.ʼnAz/%CۥWA`?C5<2%U*2R)hn{;8 +5y;L؂RCUgC -O-ZJ(@(G |2# k@pfݜY_y[b,X~5ÐBUt#B|1md7zr2L"@z'gUJc"}질}UVFZ[#֓1J Vm3^LIYh`Gz5lqIgNANs4U}ŦcLGSwriрԜ@ILpm! *E CRf[[o9/fq҇+_A% O,˫gÉ虠CXz\ɅT\P}5+DThzr9>SˇWrAnщ2k4Y8>(",tχw.㪟qm:jI頛H8 tXyɊN]Z`~ǜ fD=vw.͟<%K?o;рTGdzV1 a|eYyv9TXpջ9 AjPjfbc=4ci/1hZHEd3 I+VJtQ 6`@)^.KL#aq]><-WD̈JMgzX|zFcr#'$˻̻=9Z~8=nU4GxI\H]9/A{ 0@EZqچuلIrtyczxjd4|%זpu\Ornagnh@)U҃Z,@i'ku/(aJWDYx4! x 5^GtPsLiX6J^nj99CQP,Wd2r[tLvN&=< %*8f]-Vkܩ֪S+pAXFBzYW-/Ѡ#5hk{Cw:m>,Єg;:IqmlscpGPkںB i;Fʊy|76Uq^']WؾL Ċ^98SH~o:޿:Q~Pq/C~x2 { iyyDzi9Д5TesE2 amMt5Yr§!5>ߐ*:f]K..H[i`@_7 Q\ Dũ!7TpItp(ՔuvarMbO}/֌[ |A@lA/ ` XYi}޻SvCd*N߭Sg&bUR?z_mp`x8N_E -ʒ8nlfN2l`'?J^@JcTRlo,?uXg?Ac>( xL)P[$s`YZWSp:8Qg, `N,A};,r-+ZzM)28;9 # nԖ)3$De4oVAukyhEp @Mb/ ڟrD6LBeR\ s!hӣ2\ÃweeOz @#CB&IoHHfVIRBwk%ΕqtCzUr=vD;,Gj:] S8sH T2jqAAtX?WSy™?޸ W65[$j,(O{=mv;܎[C( +jXkT\O,08|nlY%&9YJx*lj+i@";B;:.1?C*i޻w/I;,i(8hmS_ ][d+*+z bJB8?*{/Ұ-z镵tp7!l*_igG ݘ,oD-\g>mc!f"pK|Pph SVS!uFsQޑ:pzxǚ"+%uᙑZ=b#(DEE^"?&Mс"4q,'qrsqsOCG%p3짽}}}+}U~X^0hK7Z7u 8B |7%: A\J˚c)g7܁gHORIE-N٣qT0,3C0b=ŮZ'qX xw(y 5a+vi/ʬz\g۶vܰKc\\(ol1C"3 |n-=kvlq ׋;:;K}f??#J8Vh@p FER'bYLBV]}]..=[0"a PfqզWQʎ UD%Dm^bd&UZ̀"5e94JD^Z-6T.5ot< k%h˻7$c3&7mosEʋ x9Qhu#AZ(rJV iEѠLTcB $e}yEz\=! ~h?;k♬"K t (eTjQ:1>3ثpݫWT%Å#Jc"6[pE?}k@<p)~Kx{1*qil/UR]]TT]R-3C/Ⴏy{ >u2 .ctM,1E.뒹O;0%E ʜn@=?, **ݓsGOFՙN^)(Xq m]dqIV'yuG|va1?!afIZ~C<5I;Sdv$1r*&=| ЧIYl]-8!03_ZRYօ  W>!mM^8uGmxKrUz'|l@;_ bP,T /c: .HM"x0'|˫ҧV_YSuNZ+Mƛ@@A<Kr ֨3W2)ZPB tq ;0 U%h'CO ܍ sJDwP{GNR iѓ>6ZX[U%?Т5-=t߸ea=6o`Pk0գa BB%d: ;5S  ;, P+zАUzŃ8\5GYXfn8-0GBSLԅ-5j7{kΟ@1<}<3EP*o: v 1š7ܛa`$ jBw(@/|Sý l?]7^XM Ńu g >vci_yXUdZssbĭ_|Qق; _ÞR/5>v MWaܤ3R&ebnxMAnQQ[g Aus2p`CcgPCA`MW‘Kܐхi:Mjrp%箔t W{CQ8ʵU*^Brg}E c;稣d%MuIOޣC@uXRWam(IH 1ihXNhAG?XS%{qz/3| ް[Wɲ.ѱ +lƊ.%*LЏUF{ܣ47>.f@wrŃ[߄V}iV&L.ѵakk8M9WH! ̢dr=AWueVCێy2rCs ٘7_gǫN?*v(q|Gȃ~x~] N/L1O|JEM`X6xB?ۍ2:MU@%c\vv) 5wh47ǏMBr$Zwa`0lsr[L ahTtrչ;+.HD,S*&$}^|#.Aٗk>.+9I{JQ{c/?dž<>%TwNi*?!O ҫn%@Ahyb@c3z=TM2l'K`3"I|i+ƞ{adE_m\F2_zx8\ g=ڈiu#CkSzsoKpW0/#E:~7r}{(FOhTXMp\[gg0>ZR;C w1D%6&~drYX burD!jʙ ga7Ed<:68PN¤D15A9rPM 9iFvBFu9[MesM31]M]j`]Ƀ Ѓ4nMI5A}y+?1az#[pwui頀) PۃAc5Fqq+01| .?`c#}{sź]bԘ>TG[%4T]V >ܱz/i@4oxGK&p~j}k~]!] ӭ33'/Twd9r(֖shv ;clU`pu +m6ژlpCLnvI RM)P*T(5:E5л<"0 )2l-ɖϜI5὇#Gz5kw'endstream endobj 41145 0 obj <> endobj 41146 0 obj <> endobj 41147 0 obj <> endobj 41148 0 obj <> endobj 41149 0 obj <> endobj 41150 0 obj <> stream q /X1 Do Q q endstream endobj 41151 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41152 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41153 0 obj <> stream HWkoV_q7 , x|\!iHEˢ AȴV,I =Gl1Aly4w8wFY7o3ywo&66+ΔOsg&\'ִ&YlCyv ]2],~ՙ>y]'~ƚ*tDIӔYem2sE18”f];>gUf~lf=r z7硙.mf1-U|$#OL9^mi?~H|̭nΜ̥I/RNVm I~Mb.9Qs+Ę/'1bYYcVXһڼĈ{;)ʽr{>(}}}}}} ܗ} ܗ} ܗ}W}W}r{Y J+m@k%,^b{1K@k%,^ցJYj@k%,^ցJYj@k%,^ցJYj@k%,^ցJYj6cv/1bJYڽĘKXcpZAk%,^փJXcpZAk%,^փJXcpZAk%,^փJXcpZAk%,^փJlZ1K@k%,^b%F,Z1 W cpZ@k%F,Z1 W cpZ@k%F,Z1 W cpZ@k%F,Z1 W cpZ@k%MrZ1K@k%,^bͭt|(b6Rd"bERZhVPZ9ʕVrUBi@PZ%*V JUJiU@RZhEVZ.Zc֒k@*- r@)-TȽ)KiKY@KށK~ ȽĘTȽ)KiKY@KށK~txZ*^b<-{r/1dʽ2@KރKGrA%# R h{{T=ȽxZ*^bR wr@%Ə@K>Ḱ}?k-1KkI}rc0{rM^ɢJH0cJcmr>g[mn.3?U^\|tmu# }f.ٵpJJ^:kwüC2,Ǒq>lYy^C/K./M׷mf0}{[nz<]7yi~rKnSgJ;/ˏߥKϧ㊲J A@~X7=\R4+[refO7h^4GчJV&ϳϺfv3{1NaW&Wseɲrs֛Y[)ۯw}491ާ=_jI/_si~\}~Zzf7Γ|Z~|3|?dFWemZ| (yg1[8ˣhdn7*>}d65_bd-glE?!ss;>vsux'pP(Eik횜9IO8|~ˮ7X4;Qoi{831rʫORx2xiEr|2-NkFϐqú@[sgTwuEOfslz!O+ ҭUv|0ޢ ϗejה{~ӗ=>Aj{ǧ]cV,VPZh\i@+WZ*V URi@TZЪV*VTZhE2%1fi--,вJ-Rw cRw cRw cRw cRw cRw cRw cR c֒@%,rA%,rA%,rA%,rA%,rA%,rA%,rA%,rA%,r@%,%1bKY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>Ĉr/1fi4_ɢJ\фSUd뛮1U? V4n,H`WY,L~h{kL٭v{fnaL^C]Yfj 4:~og8>XChNo~fm>~8\嗦A~? u4_Mܯ=) 鈷Hs|j#ү'_ǛO}O7NcTlOlU(8uHwvqc{x:4.|mG7Ö kv_]6w{<܂P鍱v޶a Wp˧( TCm%bˉP[B%*h}"4L'9S9cHضEX8 WH /,ȅf8W DDهYTziC8Q2tȱ*,d%tP,Tuh5+1B'";V%^pCVgl TfWDn!csO#0-ZuAH Z;JgvnF0)S ^ 4򾂟3?fC[!d#Y UcTh(\AFtHS@aikۅJX3hUR$Q'Q4EgJʒI,mљ3ZJO5Y8>O_LM\dq8Ձ M@Y.i ھU^~;l} ,eJM_vs>XIm6 | oO@U90uHdG#:yHyLbԛ$Ê(m3zc`*Twnp&RDi\9۶kW ijww\P2^Ǧo&`"l:jݻM{6D륞\ëd[3\v#Yyi0|W PiGM̈́+}lx~ps/t_endstream endobj 41154 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41155 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41156 0 obj <> endobj 41157 0 obj <> endobj 41158 0 obj <> endobj 41159 0 obj <> endobj 41160 0 obj <> endobj 41161 0 obj <> endobj 41162 0 obj <> endobj 41163 0 obj <> endobj 41164 0 obj <> endobj 41165 0 obj <> endobj 41166 0 obj <> endobj 41167 0 obj <> endobj 41168 0 obj <> endobj 41169 0 obj <> endobj 41170 0 obj <> stream q /X1 Do Q q endstream endobj 41171 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41172 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41173 0 obj <> stream HWko__d Qė$fEnxbr[r^%fdH]>?CǾۻXʾW 7 B&`y&-ء͚(eg5nYʮ~n]{UwWPG7? |>.%M2Ζ )3@L[Zuu۰ŵibȕEH:z|ߕͺ<,_4lbSq&#u}׳f). ~f6y cG)U]57RY4Kx^Z"4=1`gSDï)[,"3`GFr H>p8!Ð PKE^E^e^e^e^U^U^u^u^u>#gPsB} y>'P_ B}7z70#Aǐ1`1d} YzZC>p \c"k} Xk} Yp!PV1`1d µ>,B}ZAǀEǐE\+kZGp!+Tc"\c B>,µ>,B}ZIǐE\+ k%ZC>p$\c"\c"k} Ypp!PV1dJµ>ZCVǀEǐ1d} Xk} Yp!PV1`1d*µ>,B}ZEǀEǐE\kZZC>p"\c"Uk}liµ>Pp!+Tc ՛X &>n78[n"84\$cYfr=O͂:,~]~DgfuT /r+񕖗ۊ-cOH$oѶ]uMUk|핶iNUw0n+YNy(H/.έƦ:$Bݵs/ݶl_y!U"xqx\;$OT'ˤBMQ> -g\fL%pwovm^CW;,U9xK)JeԇNZ|:u V2yrw.\eJQ.(WNM cЉ^W%uEǹ);z+?YMp!Wkvޖ۴]{>a?5'Yq]n$ Y*G7rS-xjV] bׅ[~S[ݧʶ#,/˭^Ojo~pqͣ=_T,ֶǗjUoh5#"cݢg[+Xa/qL2=J۩x/:O.$N8u `"P }RGՙ.IPw6=ó\OjNlk[{҉ ϵڷf2eAyzeWBNyg$s6.CP8n{рts@ &y,йk W5s"\ŕ{!tRn xr7cۗ]Mqa;wev?5u;+Oc}108햎 LkUԦ$IÇEz]UPh/Uu)ZD ;d:#9tʆRH zZsUqBi&2: &U+|Xm/dO`vݐ:w+W+ ;Feմ߀:r(QsB0Vw뽌~}'RO),9ޡˏ9G?so2^P}M1 #niQ? }ױY,4O1ǵO?7e|q2h>2`y,B5 :!\&\y H—ܽ_=[s} L7~eԐg}5Tݣ&2d G\%rz/y zo>,nl)~Ң+USr}y _ol >X&@VMtzU5Z$ba3j:WZFEw9A8]3C=IPÓܵ9/p>{⛗IZ$'4UrgE*)[Ӿϣbi܌i~gzJ7"QvaaeUx[j5iK)FM7[2f(S>te}X"Kd`2U̚VKeVo$jg=u0 )Za. vC}X,lZA*o?FЀ:+=݌4 {5\b=%\T/ƭei;)EH|zh)'ŠKuw| U]-Myfd>w (x&܍חqsؠq0MG R*G[]! 0iX"@P5%EZy* I M*ݚKtEReP`aK74ykގWieG+/4=5q{DZ_'QڙC, eZx'T̗=UV~9noUG*2Fu.TB`X|yl\H-@#*|$O8I(qd,')Loov6Ռ<ӎR?H!JG9>$Թ4K}u4^&@'r BS|˜RkR9܏A_u 9*H_? J-{>/P 621 0 R/Type/Annot/A 41175 0 R/Subtype/Link/Rect[93.5998001 226.358994 267.287994 246.039001]/Border[0 0 0]/H/N>> endobj 41175 0 obj <> endobj 41176 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41177 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41178 0 obj <> endobj 41179 0 obj <> endobj 41180 0 obj <> endobj 41181 0 obj <> endobj 41182 0 obj <> endobj 41183 0 obj <> endobj 41184 0 obj <> endobj 41185 0 obj <> endobj 41186 0 obj <> endobj 41187 0 obj <> endobj 41188 0 obj <> endobj 41189 0 obj <> endobj 41190 0 obj <> endobj 41191 0 obj <> endobj 41192 0 obj <> endobj 41193 0 obj <> endobj 41194 0 obj <> endobj 41195 0 obj <> endobj 41196 0 obj <> endobj 41197 0 obj <> endobj 41198 0 obj <> endobj 41199 0 obj <> endobj 41200 0 obj <> endobj 41201 0 obj <> endobj 41202 0 obj <> endobj 41203 0 obj <> stream q /X1 Do Q q endstream endobj 41204 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41205 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41206 0 obj <> stream HWko8_.#$( lb3:ZrR$rE*\璼|[WWiً?og"yƉdD:Je]3+ftr߷ыut_XL]4ֱ67 ψi_4ƑaM}VO]tist< e( YfYa) 999^^%^%^%^3D}Y>GQsD}WzWz׈z׈1UC\c1`!1 e} Xk}̲kZ,D}Zǀ, Q!1Bek} Xk}̲kZ,D}Zǀ, Q!1Bek}8ZP qYV,+TcB\c\e!rĵ>,ĵ>fYqY>p-G\cB\c\e!rĵ>,ĵ>fYqY>p-G\cU$e} Xk}̲B>fYzZ,D}Z, QV 1`!1Bk}̲kZZ,D}Z, QV 1`!1Bk}̲kZ",+TcB\c1 kq ^7Ub]x}ѴA&Ye:^Wѧw+vrִ#^f>6žtfߒ뿢')I5כxw>B%mzd!3SPt}zSTrᄐ~}]pFj0Ůa"T%7mṀ1u?]Tqn?.vØ JE9X0ozHIօ`rmRS)NĻ'z. B͓`ycz<3oeڮafi$SoW~⮁aї:iJNnά4&cG](Erq}NCMI9lݯ&/ySte})ۢ+k_I^#85`/;B羓w;<<[ŧrFUmYC(CRi;ЎC;e3f+ĉv=<>6 ٯ~{s^ oU&rE1j\^-J+W·[)qd8R@y<87<쇏= ʶMzwn7)$g.l̙_WfPhR=pxq>My[eGsqsZ6=-d1cY4v`wg 9ϏL-y8|Ja Ø;+:4ƕР'&%z&wu>\ ?lle#80 _4؅]#e{dCr'~kpՅvSp{2;5'խ7kjN\RzJU\L)2^c5I1@lViJ]ҾԁIPN? y-(D 1I:WOg,X?zE <|nҁǽTo{ ̚U zk|>T:.G, %>)GE %rd0TO!Qyi'i4YTLe񕞙@$eT"* \ebXoQ٫U2P)Jyg~пD}0𥟐FgcR~b,E _ |mvW2"À3.6b䈖c5AP ?ׂg<$4T9g 7r*v>/P 444 0 R/Type/Annot/A 41208 0 R/Subtype/Link/Rect[129.600998 260.829987 244.992996 280.51001]/Border[0 0 0]/H/N>> endobj 41208 0 obj <> endobj 41209 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41210 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41211 0 obj <> endobj 41212 0 obj <> endobj 41213 0 obj <> endobj 41214 0 obj <> stream q /X1 Do Q q endstream endobj 41215 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41216 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41217 0 obj <> stream HWn8}WpڀC7] @bg6A; ͶIm~"ui#uXS,^^=yɻw."&) %Q 'i"џbr1R}/]ӖrC2t}}XGk]F('1Ik4ȺV*?<1(pu}k@qbܮ:rxuTա.7Ͼ?Od*hyCDu{3e|n*HPN>o1#Q.,gYEyzdE7Q|Lbrb|A| Q͠3m{{{{{{{W{W{W{OI>A'aS}Oi>Cg as}f"ZVEQo3oZfP!{fP!{(D͠j9ZfP@QoZfP@Qo3(}Zַ Qo3(}Zַ>P-GTַ>P-GT a#mU$6 6@!mmmBT aV mT+6@!mT+6Bj}6Bj}A! D Pj}A! D͠jZVEQo3oZfP!{fP!{(D͠j%ZfP@QoZfP@Qo3(}Zַ Qo3(}Zַ>PDTַ>PDT aV"mU6 6@!mmio1Tчutf%adX[\b&LɲeN %VlneK)]o4Q4O4qj*>Ƥ4;Z\r[h|>]j簂^ƸݑmӒCGJ ?np9̷swѣNC.<ͦ)y&SC4z\JI LMu]3tCURMݎ QW^oJYCc [4< n<6MU?<Y{B+[~H K:dAhy,?]#AΥl\d~0 7?ob؉̊\TNYγP|_1C]ánǟ77}+)UhZ/~IJաӧRE9ܽƙA}Nf"g R.Ƕ~ P.Ԙkf) `M 4k*f.2f3롞(r^b$kL˸U]}wZ2TjžƉ8piya8G˲xydigfwGM+qIlܯ~~>.o <M$p~ =)TCp,>$Y!]9cx%L>/ʡ}]ґPeX':UsO=P\Nם U.䞏 L0 sCٍ9׵l"Az.8JA8 ZhdA&ӸK^̴c< :9Sm-شW -if7:vQ]l…$WOec{Jh3u9[Q[oӦ.<d88,ȹxsrX| ūn 5²՛|mnx}5{X‡195y(CiM{Ja(׋-f nC>ذ _;j&WmX=OLT~z@w3nW_u qjʁu1MY)}ӻ4p<[*tpOV 8+6S`#YEycFٟ́I X-?t}۹1bS G N.W L3*;of{o/d0*{6}uk:%3M{q*`+Y+`2v2EVg"8"44Q.nND%+pyG+=A§4ׯy(BnOL\0a<Z+M1lZ_5t51y eI=y@XLs!0煯%ho!Q=yjԇGн׮lhM!Rl3q*\¤_\?ηC2;w<ٖ&&^`juAR0^!Aվ-7 .[xFo)D#*'0hY[HOeUQ#2dL#Y۴4z%猅%@ѕ$C铕m7͞Ud= OQOiqxO6$D%P,j?_Bf8=.x'⮸dT֌ ˸t1 c;5HfKӃn)!I1ͅPRuׂ:H[f]"R 3@T, *q91J x>Y'"wuB_ (uӦ4qi; zDSxV4 nכb'~ HOo%zU8El'H<gj^{kSC]7r~0w5gӊ@4l.b=a4,)𙛴azG=pzyy?2qm7]e9}Ye LԬo."r(Y fXE;7dexɩn\n8jyffukNռclNPI3CYR}D W©=ڔ󔠢bjZTz͙8hݴS3?CO|R"5z\9#=F 2fOLv7IA8.4timvT)հ?JFC)BQa=|mSqB ziCꏯ~r)TIJQd&5>4rx$'/T9Rt(3>,@=Om1TE:a+t0v@3Emz;*:o>: @8K/ξmg3TC*H)6?B_VPL0\͕E1!2 qL Nғ<,>MK3_6s=_kNhxT3yR4SȂEӍj&@OVOK ZmNIu87<;/GO|'#+ â`zm+ofg 0:tendstream endobj 41218 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41219 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41220 0 obj <> stream q /X1 Do Q q endstream endobj 41221 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41222 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41223 0 obj <> stream HWێ8}Wp//p7C.;sAMKޯߢ.6Y,wSaNxKu˗?yRo?0 /5JsɊ\LMÚ$ew`5K?}vuUr+&jX$eiV]u۰ z~+iR͎aJ-3ɋ3ͰȌ!:KscNxgn\ >H쑉3}٧)۰Ĩ fJK=$ cb211 HU66@ ͡2 6@IK+++kkg,b쳈}F"9>e&rEaQƇ#"ViQwlBgj48o!mqyޟr#u”iHrBES_e,8Z"<ឆD66r5.!$J 43:i\A\Cl8BA\ڵNYA갬Ty .oU-_jwViОp/R\ܟwa7Ħe&y)" `!)ucw úTB((a ]2!74>ihvAe"! l.ޙKY>z8; 9_Rr ILk w;l*^>,˓z˻R {( 햍Wٷj`;:f8L$4=H(m=UL?[(s|:JsQ"Xm RJ/ (3YCzU3~q8v Rǫj.nBk(ϹYibt9\/=O7"Bs|.G ɵIb31[4$r[\h[4.Grs@:~/6ij` Z6ێj0ꫲq>vԈ;3x^)Ly*uk-"x=YU *x`s9ltUnlX/p Xj3F毦uPT QnZvpoR9In^B{'܁]|冪Q?ܚfmBl7CƧnFlQ2O$ju ',[|˽,ȋK -}@ZC5 oekuLD:"s8Fl3?C ^±Pg,xrzt[B 50PDGd9!E5~I{qW5՞C{ ?w Q?24Uy,b BGtZdci^ {DMv_jaliɵk3umȇR0wcrCxpMñXv,0GqԊ S k߼œZf6h\IU@f((pߝǛ|C:N Ly|n zh!vpax\u ޶q zQ Z% X,(Zl C(d8Yq ?$RK3jT bm*٧XǵAXDn~C+YS~kFJ^.O!7kI>EA;Ƴm53z0f냇 : $_jSVA040VRšNaYfoݚߺ.WV^ ~% e$O2J2;σ܇Ypx~m2w߰6V*,O~hJ,9_=Wl5J @n\`.Xکf;j2a@vx~,DqÙ8ե=Z>j28դrj|yjFis\ϓmHeP\8w\5Bu9 `~_GF/sn,aC8*l]+7`yv d,&Rda譵o_|0ndlv(m;@N& 3^zr /;׈ȁCVs0Y8JO̱pkivTe~_N f\by53o+ʌ{8| p%# ]`y%X.M ROD-3ݐOnx-{H&.??{Uy c"\-_zVEJ VX ʡ6M+-B}àgs(@<`e9AdU4u,lpWly^U. "r }NEE? iٌ4eL Nף^vma;P#sљi)-HlݴW]e=^v? 2 $k9֞ T[h\zDn愶!}{y endstream endobj 41224 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41225 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41226 0 obj <> stream q /X1 Do Q q endstream endobj 41227 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41228 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41229 0 obj <> stream HWk8.&o."\  tmJrf[?{bHvQԋ_U%WW86Ό3F5!CD}Tt-{x]oڅ?^-bVuaDyASIh%|񭧹K6i'ާٿCP7wjܤ]Żc_8ͩMy߅f좳f%0v>;zP:Q7N}bpR.>F>9ptbbQ XZs ,]knb2{a2Vpo{+̽; s S>ܧ}*OLp1>cs}9s_ ̽{ YfZ"#b),!CwO1dqZ!KpRkR Y{Z#bRK1d YjZ!KpRkR XBj),=KRK1d YjZKH-Ő%g5Bj),=KRK]dR Y=ŀ%b),bRK1d YjZ!KpRkR XBj),=KRK1d YjZKH-Ő%gBj),=KRK1` ,VH-Ő%gBj)Z!R Y=ŐS XBj),=KRK1d YjZKH-Ő%guBj),=KRK1` ,NH-Ő%guBj),!C ,NH-vQ*b),!CwO1dq>;rZD )H'=8SYb}-6A͟;?+WfYhxhòZ?`m@{aɒI{o1'38tzMmhdnlmrU;8\ԣ4 t5bwþZ]I/MX1]OSLي80kz䒘&g%AGG~j]:Yg>;P=Z'24?:i]az@cz\.f'vfvvl݆p?|CZq&v֝){pp5Їe89xp/g͡->3+8mXG5徭¾S`yUk_K]{;eo*wxd&..Yͣj5./~z]UnmS?VXׂ,u3&~Qq/ =a.޶ +(ɚ/u血nqPDD"C{gHlLsgdZl6 6KZsh:+sӺ9XO)Tni/MTu?ݛ3N!z( =ɬ.4IKHe;OXzpQv*B-xNg7PfnKhyDFi)i]d!ܷ~jGCYwM/XM~H63l9?Rwjcy ,X+X9c`B`U JU2V%*ƪVXX5eٌ.΢2ea,+,cYroS ] ˽rO5t ,{+jX,V=%X{K`[!TCbwB.΢S ] ˽rO5t ,{'jX,N=%X{K`;!TCbwB.rS ] 8jrO5t ,{/jX,^=%X{K`{!TCbB.rS ] ˽rO5t ,\=YT{j]׵^.e~cuʨMFgyT@ 4×\̼}^?LSzm:ߙja~keA8bd,-;0Me߿[0̗7׮MސЍbT[ΖK N} _<ϕ-AЀ7fgC:a̖}7ކCa7>(0bN'@Nݢkxo/nB{|-ˀә VrV8_ 9eӟ0avyнܪsan.>_Ü[V1\n`ϖ]Űݫa?@?}Pד q^7*>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41231 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41232 0 obj <> endobj 41233 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41234 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41235 0 obj <> endobj 41236 0 obj <> endobj 41237 0 obj <> endobj 41238 0 obj <> endobj 41239 0 obj <> endobj 41240 0 obj <> endobj 41241 0 obj <> stream q /X1 Do Q q endstream endobj 41242 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41243 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41244 0 obj <> stream HtWkoܶ_O 8(Gn4N 6)V˵Hߡ(i%r ^s83]t/nݐ͵$e)\04$ 9i콀BGQ9cD}쨏>FǎQ8D}O>E;eim8Z,W qi4UocB\kcw\ژf!rĵ6,ĵ6Yzǵqiq-G\kcB\kcw\ژf!rĵ6,ĵ6Yzǵqiq-G\kc'ژfm XkmL\6YzZ,DZ4 QV 1`!1B;kmLkZZ,DZ4 QV 1`!1B;kmLkZ<4UocB\kc媷1rژf!Jĵ6Yzǵq qiqD\kcw\+ژf!Jĵ6Yzǵq qiqD\kcw\+X先kmL\6,ĵ6Yz,W}J4$f^yWkbK 0҈Dq@֕௟9{ڛ֯S8O}BC֏mI^Wbw5HkȄ)ՏI6yV-ds^`]ݐNz_BPuÚYq|qX\>..^^^h xlyGMGqLTSF]_[thmu݌neXY_K rTW֜3x}_DLȿ8Qt~(7AeI|Ǹh 2b4qpBTKQ˳nSkÄEނ?X"R]S`ag~j~̉+tҴ>dzA9 ƒxӈr4[,ԡ~lR 9Lؿ-R8VzO[7mR}ѳ1f,~]+e9[H ~C遥9>Z00q#?;O &"h2稀f׏4+T-&M5VbDq}b4<@]b˚D4B9嚋AMRqZ}WPβ<'ouE|kV;ov9NnN$ra9r!p>cA¨xƛ;Ӻ6?d `y(F *sjjhl}ež5z2/&4h-4=uX{6Nމgi ڙH $ۇyY7th|#4TFh]T({KEO! FnAJe %~ԫt=, $Ji:WmK뺪"WSc0[z? B֔g‡ SIE|a轛 4w!!@Uw)HR˞8M_H󅾘:ibIHAdig!EK YkJVB?՗3n7}ۨ~!wwm,/J؏q07b)@6Vi/^HTa^qc &1L)Grb=?OFVCaaZz&|Ac8\ eOE 7 $~t, ޯvc3<ñӛ];h $S>3̼4΋&Өإ_D&S7Rm %DIS&Mc"{Q"jK?t!){% pޛ7/KZo/ T(._IzTX,*[`P0h/U@d].Xa~t kQ< }b4k+We+lGL*@yKc+Jy"խ,_SMDDZ[vZ;ΤL{.dqf٠"gH߁2Xto)av(zyQ[Lhјhq-t&у_PM5+=ş51+ΨrAZ.u0+WNRO8@z|q20bk+$(t۠K!n(77!ʈR`9||>6} j*ߪ, ]nT}|nOߤB:!1^]Y DeڅKP#\JJ {!mS\0:>[hR -J} Pv}a<8weحKcș~! lc bEwF)y}%>/P 1653 0 R/Type/Annot/A 41246 0 R/Subtype/Link/Rect[362.513 638.429016 479.713013 650.413025]/Border[0 0 0]/H/N>> endobj 41246 0 obj <> endobj 41247 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41248 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41249 0 obj <> endobj 41250 0 obj <> endobj 41251 0 obj <> endobj 41252 0 obj <> endobj 41253 0 obj <> endobj 41254 0 obj <> endobj 41255 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41256 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41257 0 obj <> endobj 41258 0 obj <> endobj 41259 0 obj <> endobj 41260 0 obj <> endobj 41261 0 obj <> endobj 41262 0 obj <> endobj 41263 0 obj <> endobj 41264 0 obj <> endobj 41265 0 obj <> endobj 41266 0 obj <> stream q /X1 Do Q q endstream endobj 41267 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41268 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41269 0 obj <> stream HWێ8}WQ tMyHf1HA^Cw0m9VƖ:-du&dLUuw.w#׷K%LRV?DAsNt.⤫&ȗ$wNP޵;|铷n!)IF RDglId~:5qEٌf_vQE6;2㔢 t~D]arC fCzܼ*KUo{0P X> UQ#W3a} 3'I!r{N }e8%IBLc2BEBQ͢ 3m{{{{{{{W{W{W{y>G{{{{7{7a_D }Y66YT> Qmh}h}hfQHQmh(}Z6 Qmh(}Z6Y>R-GT6Y>R-GT, a# mBT, a# mTՆs"Ն6ه6@! mmmBT, aV mT+Ն6@! mT+Ն6BGjCՆ6BGjCE!# D PjCE!# D͢jvN$fQ1(D͢b͢b PjCE!#JD͢j%(D͢j%fQHQmhfQHQmh(}Z6 Qmh(}Z6Y>RDTΉBT,*f6YT>YT̾EQH$w$l F;5yA6!m;rc}qzn>o>6#i-ClRRcd8n~nI<9]G0CYV̻շKxQ€/C~1tV{|T80Rni8Vng5vΆZvg/(O'?)g&Kqp \P\#a]ex nwQ!Ydfգ`T*r}՞tsFo2ЇɩV6e6c,]S Te)m91̩8.+r[%ئ܂|%z*|;9g9挍ju$ rzw>Qp5QjէⴱP!ԇi.p؅O׽\o' C,^⢥<ec2xme4_ų4jťA ɠX[_5_9sEҷ3yLK(CdT = ضۡj'3II ) "`+D3;8naa3B_m~tqɇK궹 ]US5Ә϶+gz]\EsD~sg۶ mOm[q|vۖӋ7|r\X E^r} K AEzy7cfָ., k.J}qsnwk5^9"_˗>q?R5¦$1j Dgw2"2\00qA_޶ >\eT!ө|i2~sޕy9}MƸ5/eUcY؟s/HO|Svܻ۵y$MlGi2PLEԞO]Hm-=S\7_\5~w?`fT\S- s8:_ﻯ #P0Bkw@ۑ+a.-`o4L`s!F,WWzPfV{;a3lfAˎaf:WŲ_uՇ 8m3ydЭ)Ջ9( ;f@Yn W3H~"J4ٌŋ:l=ؒnCM>0R;μ FԀ~Bn6M4Fuq2Ɩ[mA)~7kN'~#WFBV^p ;LL p2g|3W1J_9:z[՗ThQòml_dkkK[SdXGn{fVc2z)%Z;^ +' ]֧[Jh()ĤMt['4""kM!\{gFq=)~GMk7x~l!Tu΀ ڿp{Oh_iOshbrL0\fPc}EEyW]o6}_RE,6nURVv#a# ɠtI=6&}웶2Ug禯/gTS  @~te)~8K#rE Na‘ԓ1"I;qfدO}ol oqۘw]JS6ڟuoBی/L8cRAG#'T:ƛkgB`M޼7:@rPdLsáB`׉ibs P3I^; Qa$.<61@ѝѩm ~ajCXfCcĺu|.p &/w_ NH 435{\'1ߜ(e4͟;{K눕i2)Y^b~-@+9JJMʁ{ߵlDlz䴸4QI>sFQG̏_j$5{ f`R*Om?} iǻr8}z/( wÎw^Sd0y2Pg.h+c4tR$ͼKg؂4T /X>m v]0 wOPy,YC%`yd VSaثiޯp9ZԅBs0N~%56}DSr\B_nK)u$O ݼtE7S4; &Nūz>o=>ᰱ?mf=a}wwOMww/1$Hϋ/PqaQEV̩" h8 0^$,om)EU*;# Zs Ǖ}>Ufc׷ھ>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41271 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41272 0 obj <> endobj 41273 0 obj <> endobj 41274 0 obj <> endobj 41275 0 obj <> endobj 41276 0 obj <> endobj 41277 0 obj <> endobj 41278 0 obj <> endobj 41279 0 obj <> endobj 41280 0 obj <> endobj 41281 0 obj <> endobj 41282 0 obj <> endobj 41283 0 obj <> endobj 41284 0 obj <> endobj 41285 0 obj <> endobj 41286 0 obj <> endobj 41287 0 obj <> endobj 41288 0 obj <> endobj 41289 0 obj <> endobj 41290 0 obj <> stream q /X1 Do Q q endstream endobj 41291 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41292 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41293 0 obj <> stream HWێ8}@`_do l 6<@melGonrTuS,-{_X޽>+ _I%Kbōdu|ae@c?X)ob"} Sܭ۵C2֏'š,R>_Ç|UVoBq?ĵZRpƙavNF\vNFbYk' B]@>P\&" V?"gU1VR=6YC`>:)smG96Dr'% c/ cccc c cocococc}L= >'c}JO=)>[[YAֵIֵ!gEֵ!gwm"TET+ պ6D=JB Pj]j%Z׆(ZIֵPkCS$TET+ պ6@um"{j]j%Zv Z׆(kZ׆(kC޵PkCS"TETպ6@um"{Uj]jZ(B Q{OPkCS"TEֵ!`Vum"{Uj])Єj]| Pj]| Q>{(B Q{OPkCS&TEֵ!`Vum"{Մj]պ6D=jB Q{OPkZ׆(ZMֵ!`Vumumٻ6@umٻ6D-jpw Z!`M#+zD!GHcǖOKVoaD R0vaX=c͎F${jmXս7%.qᠱeV.1%M EZGbdyfiē΢@>{ʊr]C(9L#MqD4@)n k !jPrI ~ᜆUӂP-.(&u9LzǪioe5oQ]6D۟o0Uit7#q2<zX:cSudQ36j&3c~:nv2]Ml):8" Dynm?R(S!t 3#S?:z%0K%6k~T4@"yS;iLW*P)wJjCYrZ|ܳcg΀6g8W xc*>Vcr.gpWC-nn lJtӟ|C!»czYg>|xG'ar]ꔧ:ϟ;Jb!GcrwnNlsh Ì M>Lz9%%f%C`cm,=u .[x)n3>K]-j*9TC*)Jfq)4VZ=mh ށ?Q5nu0x.wf5sż4v@NQWJt댿S@/ \le& g;F(vAQ9r( 2w+Ol:yx7Pػa*Ě-]w_=%bAc_5:Z}|;>#|IHMH2u wqUp@DzAA?U5FKQtlB MM>ff@8!J@P2;Ȼiӎ%Sj,HRQ R?Sz8s'xA /ETU"Xm<~e08yxjE?e8bTf`xE_K|1x]r"7V6{t M!e#E e.٤ᅲaGۯ9>q, .M^K(a0VWfeM3Prm zϯчT)RE PYvbSdHJDi.3{o آEQ`8ՓXwF5nCSZ72.ͻHҎ q[g?A(<Մy(y\ EeXeT49VI` фƺVY5S1K&R;BtN,e ~@'@.[1jo ΠM﷡dNo(:Ym!&﷧WˈUALxkz "bsD 6?:_f rdϹ:_D?T]&,eQMfMXr.hV\t^ %H,ܳʉt!rfx9QߜPʽc= 'γ\ZϱDeG9tu}($[StaN̓`\}MOa_wVd}g<YTF{C_?+f-nkQ YYم)q4&Lw<"PmwokCVHO2_UXI1˸аHA[;㤇0zyȣ- ]x2>2E^ƥ}fCd۫_0m7OZN4?yG k8=}gz$f[+0z'"Q6ǭrvK\[܈ 4>nPn8X9A$0pRJwsϴ>mWh2n*oH$F !QR:t~qpR#'J`-Q$rJ?_-l_ڮݘ}uBLXfh0(=hb qk ШK48@ˆ\n+g /ѺP;,~OZX3>& Ȕ&}L^HZl$0,\+6yDOkP>nr}x3CF'f3 BJ o"'MP9 #>&eb2-&Ǫ;hqcz74 D{?t;=R̙E$ӧbJt)gQ#Po |Ya=݄bݔ%T'.LgZa/'mG֨ܯiR^Ȁq7M̋",5գ[!QgZDuZAqa|r/]XEwP]QDnLn1`I+8XtyKTר NW!a#<*..| )ݺI <_DRht@b"hq*|B, <~{헻`endstream endobj 41294 0 obj <>/P 916 0 R/Type/Annot/A 41295 0 R/Subtype/Link/Rect[93.5998993 458.428986 222.934998 478.109009]/Border[0 0 0]/H/N>> endobj 41295 0 obj <> endobj 41296 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41297 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41298 0 obj <> endobj 41299 0 obj <> endobj 41300 0 obj <> endobj 41301 0 obj <> endobj 41302 0 obj <> endobj 41303 0 obj <> stream q /X1 Do Q q endstream endobj 41304 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41305 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41306 0 obj <> stream HWko6.`?20(vm4M63AHB˶R4+izHME:!yxy%y.k:Oo^]3~U@HXũLX&>*!`̺)˺)vy[/k&؈?lsX3˴J"3c}BO<`o<`o<`o<)>اco co gaZ7 $Z7(Z7(CލpCs$\E\+ ׺1@uc"{kk%Z7(µn Q{ϵpCs$\E֍!`Vuc"{k.Pk|n Pk|n Q>{7(µn Q{ϵpCs"\E֍!`Vuc"{Uk׺1D=*µn Q{ϵpZ7(ZE֍!`Vuc@ucٻ1@ucٻ1D׺1D=jµn Q{ϵpZ7(ZM֍!`Vuc"\E\ ׺1D=jµn Pkk5Z7(ZM֍킘pCލpCލ!go#kf5&؈?lsQf| D~V0$9=aWgqhYTgh fۿx}9nl5]juD `7e}ZE(lj͗>727nOk?>o[?](ţml&9M]bĢh㙕aޖϳ;t\J)_ /qj a!Šicp֩<"/o܎("xCɘWYtQ" f=uϬ>t(}ST]¹-~a#9yCǚKe4; r2^ॄs8B~wf`4El%=]]`x124>#ډp-ePT?z6 4H>Kdz򼢥[3_V]F !}U1={Y,&qb,k\oj,xpDHn0Fxs(/.|֋Qbb _u; {ߝv?}oC{X>j[WPRo1n˾Sڡ6_UpRd[þ(L*_kԚG)hwAoXrZCA:L`L]ް뗸Wuuu}'0s{~DӅ^ @ d6󡄕+vYey[^QGЗwQ",B~vCBU9d޳סSTx(B|McxAq`1 ]mƋDu34zwjr8)L޶9ʄGQ2J_ջ;RTZ .8$4U\DH(PB ,=O-kXǀ,[pI@ '(@5tet>TU`0%S:qb+G 39jBA(]XuGSKs 1T.f-QDe,f(( lz[d^Ye ޯHҖ(K"2&gj<`.OpyG x,D!'fڸ꫐cx>-Pޡ wNENrm)RnW{saOD]_;KpDbk^b-+I X2J>Qy-6? gGe?߯=\\pa[ݎnlW94˻?1К.H`O'O٨9.bH*GZ{yfQs)$[iߵqk Iu]E :دҭXF<8m zϯQ8#7%֑\q(; "=$vΛD=e1&Q9-%Ğ>6&UE|cޖqY)ۙ70lĈZNdKOV)M JtRLD\/ 9R;9r 1 Oaj&ToDHQL'wW $A8>ĸfHhO`͋$ALH=#oQ'"]D+GuEjJ,CIqAyV/MZZ @AomϽ%|) h76;Jܧ]h6+sOz&~42pѧjӂ/a.g Gvu;crB|o`BP O:Mմ< >2fTq4yЭf͗k_5dCӏFWw2 lQfò|i M03f Sߩ%ItǓ-,BuRG`M42@ѵ~aӯngK9K'T1?m(C.Kψ'>+HSVVOc>Ȥc]T. p̓CP& B 9(Rt!{VA@REڧ(М8?ǣ*G"JPsj7 N&ۯY  9`lێyL]oz6]ƼO~rv`N,0Yxy1f۠U¼1ҐƵq\57Pa<|B%$3&U> w5uUנJ7̓ m2QY\A(l\ wmY! $g&m .;/MZyWB5BgêÎ0,idDmZe2? `PM'UWP?N ^/,՛}sxD*xRs'7PUvbZʄi&IY1)wgSv4/M @;aPC'Oٿh?Lj*RxV I$؆8UY=ۈ`(s'lD³>9l#(GdjQeGT&y<~qbէ/uendstream endobj 41307 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41308 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41309 0 obj <> endobj 41310 0 obj <> endobj 41311 0 obj <> endobj 41312 0 obj <> endobj 41313 0 obj <> endobj 41314 0 obj <> stream q /X1 Do Q q endstream endobj 41315 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41316 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41317 0 obj <> stream HW]۶}ׯ}FD Cޢz{CZ^+זm)Y"Ǜ"؈9V!}/!ҷo>3qB,iKEzidc&M^f|cwnNv87uzn?}c&tO ,&50gZde=%6m=4]޽:h}~RvMU 9778WS34VבZY2c5G$c|Mn)L)_`!%Kwibd΄+1bL1g26D˅6@q4 sm{{{{{W{W{{{{ y>'`_D }/Eľ$ؗ`_F D >,'DN Tm"Tmه6@ m"GjCj(B QHPmhC>R TE6!`V m"GjCՆ6D# B QHPmh;%PmhCT>PmhCT>!*fE6!`V m"GjCՆ6D#JB QHPmhІ(}ZI6!`V m"TET+ Ն6D#JB(B Q1(B Q1І}hІ(}ZE6!`V m"TETՆ6D#*B PjCjІ(}ZE6PmhC>R"TETՆS Ն6DCՆ6DCbcTE>%-C<vpaXIf{+xlC"i84xhP_饄e.5_lg?KvCVm;̐`(M?]/cyaU Ge*X.3;oGv pY;^nl[g.lm'fߛ0FbFW,c+vB@ >0֡n(Ji32 UVqb6hO+.̦4*9Upyevݹ[^Rx^z//*DKgLO.@MlCrx4Ojt8jǞ! BҍN.%&^JV@u{o77L/''hg8˕R_üdEfr];:{l1~kz @93,}yэxnkfڽ~Z.BKpwW\w0N * f}m"YJ`$;Tbڰc3%+2 \סKB0Yr-0$Fu@NK\:%wg075"C|MNyU.)])^{gG[ҧGtR~!G*&W3}ǹ2Y,)Mq==R /\3=gSHmO2:}2^5R2OaTeP.wo`-:v#lYc@My e8X崤2?m!J㾐% PȀZ /r!Oz投Yt%z9Y tC ,KHУ-3vIzu s;= dU iqޮJP̊ѥDZéCWu|ݵzBG%|MuXSF n!*Ju s$R^AW/L» P e2:jnjUzJ@2zegpduo?Kr5\d5W.E:a:}>VC͆yOfPԘlv=I5yr^+gL 9[mnٌO ; l&յ:RwB4-w 6~wm_ip\m4#l3^?0&6ٕ]]_ɕh~s>j/2T MASMn&_,0~pCWPr_qwUu|V덱 B_]s;_ qb9̊n_sQKܕZV9쫴g%y~~ eH|NqLa>%`s,_>WMbV˅n)IWZ- V Ӊa{=y2[ww* ׾Lʹ\u{ZN✓T-+ Muwzn@$R b'uS(f/j/%N?XVzgХL3ߡt3tW됮W'ߚ37os^5@_!pC6,Ţ=ǖZv"em %p87#'O0fB1NS 񉯻†'UX#֫i]F lRUG݁_mMj(ُ[G@"G/~ 4ĵ|d  c!ΖӄDRA:'MT7?eY 9T"ÿG4a7;T."(|9@m[Q>y'fVrylu(?lAXxh]WՌ%"zfDpfj; U Q3jwQ]T:}#}h "bU;}U Ҷv-w3ii2f!RdiFqH8b%QK`7rJ.9v;27OMl{{83Z[{"FHn=:">Ư=L&\1Voڏ2'IsI+oKV8<8VC͏cW DHuξ]HwǗb^}5O{ykK[~/Q)cӭioeY9v*VGs1۶[u\&u1l{ #% T>y,JFàƽnypu6zHh_2&4'~($ϻ( D=ncg֥ <.pykʱN=R>>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41319 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41320 0 obj <> endobj 41321 0 obj <> endobj 41322 0 obj <> endobj 41323 0 obj <> endobj 41324 0 obj <> endobj 41325 0 obj <> endobj 41326 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41327 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41328 0 obj <> stream q /X1 Do Q q endstream endobj 41329 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41330 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41331 0 obj <> stream HWko۸_*Cb4qSXަ0Eq+K^IN[\~zX9S\!y33< XޟT' b{tqnڌ , JbiX%YE"H'sF>0N`ać9ky$X'8<#GmMi} ~b'*ʣk=1OlSy} e=papoZ f 'X>wLfD'+wGԘb|+jq $J_NR$FP*wJu P a4 a4a5a5a5a/4a/46{[co#mw4ػ{Wc"]w5{{Oc#}4KѪժ6٫6@!UmWmWmBT$ a!UmTժ6@!UmTժ6BkejUժ6BkejUD!52D PjUD!52DMjZն28Z&Q:{(DMtMt PjUD!5rDMj9Z(DMj9Z&Q{MQjZ&Q{MQj(ZV Qj(ZVI^S-GTV@T$JgVI^I^ Qj(ZVI^S@TVI^S@T$ aV UmBT$ aV UmT+ժ6@!UmT+ժ6BkjUʰժ6٫6@!UmWmMg2I@P<ԪI2>OI9O6Y/4|X$xyqXi D&a_yO|1mK}<;<קW' "5-߷Un./Mg5lG\.$6L"/gUihMM?q8 4/@5¬U/&qܼnUݡnwVU=]떢´ v踁Sc5z= f]Z0\]`hCv;jwrCv2.L*ϧ2,DǢ NlQ3A{؞ߑ 06Ysb9<;۰zB= z?>P˲Wmr:k~w'ƣve !v oT0y{tv}j!cc\sy{|;7gss)snZ:v L@R+Wؚ fszG -?;z#ԕY#6ks5(QfO2* Q:Hu&PfE(UZ9/*^4MS:D)M@B-ɟvv1o)՝j-rzPٝv;9l m乸>Dp "-ߑ3u?O8[V/$&a]U,*WaӯTL>>o8jZT#F >8< = cIY=ƅ:zI'n(.˸$aEB"[MP@o)mvc_ep?^̮woq@yY:)ºq_8& Gdz aTT9IIy$+0F)ɖD^pK|6iz?󿸻)p^U1-PS;9rzƲ lf IS mLuzs;~Ø;ЕѮ#q֞ϓ-Ww4` >~;:bz7̦x뾫ԫ(֐?cLIUU$Ѥu>$P>.w["){8Q)K(scX&Q[nҰ.kYB5qڥVUuM'Ιkz>nX/urpCxEHׇ %Gj[tmHhSO$SC7eIa .h73<4/.q_p|uj-#x@4ӉI JpN`{Ax*hZg/T w>GbEqwy2Ӭb\C&Sۅa/*?;96h\ܿ[{8b~,H-&_J9jVf?*~0'd9IsF|*s(TOeN\Fj9qttlq`֗B9&PS?V{<<1@i8V %@M mVCh9Qjwе7Sf&e w/5b2Sjيib"Ʃk]<胲3Ҝ8ԡ#.:u&@tx0Ni{e̡N,6`MTC!T̆P0&蕶[tOy>Ŧ:;HH.+ TDӼ䧼5e4.Oj&[wVUەmFed3ZOtށ?zazo=w0qTtfL k/ X ?}_]JSJ@oGֻc, tա B&T> M $sXV|شY ~گe"zu$6Ŭn#!׮U3Ep]zde Ѹ :Y,a"#b!(GghO1endstream endobj 41332 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41333 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41334 0 obj <> endobj 41335 0 obj <> endobj 41336 0 obj <> endobj 41337 0 obj <> endobj 41338 0 obj <> endobj 41339 0 obj <> endobj 41340 0 obj <> endobj 41341 0 obj <> endobj 41342 0 obj <> endobj 41343 0 obj <> endobj 41344 0 obj <> endobj 41345 0 obj <> endobj 41346 0 obj <> endobj 41347 0 obj <> stream q /X1 Do Q q endstream endobj 41348 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41349 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41350 0 obj <> stream HW]oܸ}GM?$],xElSS,4V2#M%(Fz8^\R,ڞo7! DRASM&TfD_H%1JIE]W5m7}[_oyzIJA$OYXd6Ē2IӉw6c_5uGVLfgl?Lt8L%Heՙ! yp0#SN¤jPdӳj4!'r5![iQ&!Ns|HKC8iYV8+MCYDX4 999^^%^%^%^3D}Y>GQsD}WzWz׈z׈)bZG qYVǀ,+Tc1`!1Bek}̲kZZ,D}Z, Q!1`!1Bek}̲kZZ,D}Z, Q!}e} Xk}̲B>fYzZ,D}Z, Q#1`!1Bk}̲k9ZZ,D}Z, Q#1`!1Bk}̲k9ZGqYVǀ,+Tc1`!1Bk}̲kZZ,D}Z, QV 1`!1Bk}̲kZZ,D}Z, QV }$e} Xk}̲B>fYzMւ$YzIJQ 8sVoSL)i.djz CJU<~xѮT|t̪M[}lvOQ#Cq&hz6T|YYrNE;mL3F`3}`1aà°ypgsn:wUf9> # hy3h;chNuCkXC$;[Ԍ/ͤux)cۍ//nlج8Vu0t.#ڍpRP>IWdJ-W.#h\뭣#sMSeyeф\S<1r9\#E[`vwsI%9M"/ "rŮljT1[f]~r%9ͦ2\me r6L7xM\۔FhVN*Ncniб k yM]o5K s6?4;-e_%RzX[%ܐ #1U.b:Zr6"aQԘ l3f![cOꫦȹM$CMҜ1gzc5乩P}D~Tñ.c ޯ6D 0.eC=ӄR K]<⯙Ƿv[=r]*;pk.WTK*J`-`C]sWᠵ7}=E?61+y??֥r]RI$YJv5Y=3?~<J`7[l lؾ@iP/Y(uXXڐaYgOQ ):b*{3:q2Ն?ӡ.ymέp*rW.9e4T~t^/T3cWX~m04?Ly/ |y%`Vu+WpFte[m@׷f wrz -yKԟؒӖiy%[؎/.  > B bO > |>ϽElZsqXS(-SYX/V4,_ش\7tUHP8ݿllYFͼ>9LjRQW9 2sqsiJY2rꓲ4Z-Yn- Ny-J@N![+%SVrP^)R폌zju@ˑ΍XNZ=s,q/LC#bIÎ W+oV0ካ(`j.Leq4U gA%bTcj)C!]hqjWj@}W@WJ,䡤)چRDPke KH}d.M䱽sٙ3g@ъ|DaZsQ+& ~H2~4.߯*G0%xdfWpfDz;"cĤ%O&@fY1qMq. Qb.A6JI֋̼/CuU4ӏ@gQ9x]K ?NSR+A"^hW3!<JBxoDբ#*c4oI=qZ,<]  ,"ڎ7gT6"|mm z|.sU/=܅z0T`ʚJc[ X;$OyYUTvrQ6љg:KxĴH˙3 Fᷢjvy^4!JٻMT{Vboz96s(tᓌ>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41352 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41353 0 obj <> endobj 41354 0 obj <> endobj 41355 0 obj <> endobj 41356 0 obj <> endobj 41357 0 obj [278 0 0 0 0 0 0 0 0 0 0 0 278 333 278 278 556 556 556 556 556 556 556 556 556 556 333 0 0 0 0 611 0 722 722 722 722 667 611 778 722 278 556 722 611 833 722 778 667 778 722 667 611 722 667 944 667 0 0 0 0 0 0 0 0 556 611 556 611 556 333 611 611 278 278 556 278 889 611 611 611 611 389 556 333 611 556 778 556 556 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 556 1000 0 0 0 0 0 0 0 0 0 0 0 0 611] endobj 41358 0 obj <> stream x| tTU9w95 UJR ܄!CD 2A@E DT[PTDmC1J!ЍSHHcQQT;B^뭿*=w:|,^tc31''7-IU M״ Vw!>8eq V3yCs\جʢY(Sg[|SnO;zqj_7馞17kv ߰8VveE=:'B!z2GN!D>eH% [ƕ~Gl:vVׂܱ a-8O)S$Dqc-SIfw`PPV."]G*ziRmyLWZUYI@VTH}IwP \GqjD;uTIk9eRyqvV'N*q7Ro8\@G:Qo/ڞGb[j'ʊ=qWi.=V,Ckhn~w't4\H!uJj?uke{#‡Y~%PQ}cgZHag+ u? ?'yV'|MFVjMNzVk`NJL:Mk23]_bNbׄ@:x%G ϐ'l9SNr :΢3 :N :NGtݟ*̊%++$ ڶc/ᨎ#WNj)"C+O2lMjpI}FwRe_6+pKw]zzbUs1T jle}@`@Oo6}+ۗ+O*j:<E&V5Qi 5U]U3\j_UnV]׫hHHheVvvqDGl~+n IBI"(cV㺿Cwg)Y"-6TOB%$E>$*d+~)=̗4o R)*')!_v/~GRA*SM~V|7-ME>&F0!T:Π 39 +@&dyN#!IDQt9 +׏kVpk|Av tI>ԑf|gɍVrn@4t<^Gv"=FOГKp\Z{mb~^p >|b)Q.QPwv M%$ 8M̶);A:9@_9h, KKh:Υt#8I˽t/9B\j[f{O|.? VH& BQxXLqG|[xVJZs{N/oU^4{@_DRrRbqg1ND(ɩ m 7 顚\V5aGe;5s&Lgu;St&JIinN*h?T tc}Oe>ޥmjm3A\̪ @UЖYmU9C^ D!Fvv2i+Ψj*ڽ!lV4}ʄ`>7NBq=֡ܜmqwB5)u|S};ڰeCe_x~^ܪZ{v.mhSsvnUYi-jp[vz'cLhǞ"&Ь99]S|Uv2ëxJn [!rsY90%VmUlX($ h%짹M/xgH;SŴaM+49zOK8: P;͆q垦=R;2_2vtq4Y,Mը f%nQ9.l֖z] gG'a0 wҕq-P0Ay0[L` i,K|"p[I$_"/K^!yp]!. &p[I$_"!H•8BU๒Ixp,aWa$A@S@[ĉ1"EYw\v'ـ 8ތsɣ؞{d ځ(Pm'+@oGyDV=W,8^s lЮ '}78?d xE$p6\PM¸I@L,$Xŏ v cH/ƍ h- -?Z+SII'aNO&9aY@O 1j-ƨ7B`VJ +!oq3@<\X,㸻cwV$b*=5:yRwnXMz0԰WZA,-  x6"8'kIYY[$է=D$[he?O} ]4KU+(0y{b')<DZ+W eq[㮎- ⤕`YʓtA3x&v%jo+i8:ůqz B#B[ny{;BQ#;L"xʋt ]gw Hk^ } hH+ůbT snrRaH_b.+v8+*;^txivqR iIz\z#)nSlfqŸ5 [2~]gxog'j]PP@-l__{5="\0٬ >[GֱiI'*]uM DZ|3Q$ŝJr93=L&n/ Lv`ĸ:q,=Eڷ罭E.jdrDaOShG!DV+Mr<v^HRg&mI6FHVooa8!9Π8mASr[ݮL5HWۃgr0Tҭgl)uOAB"!NY xY*ʲA:~D\NRkcٺE׍J^oG4ueM%^XQV9fDeyf3fs=ݘB :N)q'o:nL, J9-Mʫ2Mk]7OX  }t]g']w#lF{hBv[T?b*d+e tdb5W,MuS9{!^yuL/M̾a} 9oqV^7iBM#_YW?N7{"?_܆g&)US|IhL^#owȢhj^eY ޤ7h6&]d$ 9"v7e6 o=}rcdTR7RvH qqqTX`! mT߮~ vJ]OK7hɏ -ܢ轚NBQ\mvaw;ɾ-Nd5AJVⰛ o)=HZG~DEN@{P_4r1憒Ơ4L1+%0kk2gI&3yi럣&UU~Ghh^p&`+{S=AͧN$9iFGL1O'9s'9lS2$ &  OXS R)+S֥lMiO9r&ENɫ‘'j_X][ BH )4=&iV[λyLk'oկnoxk3qt-5~nQ(reԟn^K6%Х:9s"OL̂l2Bmk+ wDM긟;3E#Z8YA^tDifN4WYtl>Fk2G4#|2MqSŢKO(==N#JئcSqW% BP{pLH.(\t "y&~Iܒ38AKr2YRϡ̟6mƅ]G}U67Oi⤩S'MlZZ }G{o--}mj7sf5i",{fJQrU !-6`N8OVIĂDneĭ퉇$J9??+l v_:>v/p٬2ǺJ%G(%PwDGCTw>^pDCݰ{"~]8gϨgn14~c?_PFoX_ןJiLem1aƆpn -ˤ_NQ̐ z$="] oAKiY{o;)-A $?qO"B;D&*Y^lByZN˟x 7/|i)ׇi4aw5ZYۅT zd$II 6,&Brrp0-3HOL}xos8LTV?wX+eqz;.Z疦~@qňAV<"SѰa(5,Mji3^(vH}!IeINǏ"o0Q4 Neq#&6$$"b `4H|P1xM7.dF#"^M-]Z[VZL1Dp@¾v@}kృ?PrJVZKKePѠOAL)O[:S815LeE3U1? fZF &l1>DΛ_juq,J$+3fuV3ZecZ؛k,RʵE- /]eQ-0f $ [  ,3s@̂N4-]ulMZH.Lj Ye0:;(Wk6莾.|kVKuլ <>9=.V2'Ws uI3%td|5uQx'౺;Q t:r*vɲ/W 7x"Ht\'0dGpt8J$F9ꢋ*?c>2!Odq={u¤w]6Q͉,F}![10P.SYæ:ra-&7gx3g! bKӜ^v+1<s'r %nީcP&a7.Vr ,uR y]k0vDSq`lp9e8czjV]v a,/-Fsj,DqS.c`NdNOdN/\:>uT[X.ԕKsHm)ѶeL ^'t?EAyl>Ӗo$/_[8g:"Zddb#Eas9{:m#3ZDK=rL6gEx3*̣{8K4~FQ/:-|Pc) X)!|7 p$S9NM:l+ *鸰3!Fl|>YC$" 簶g6!pWFyAi>%@lF|;QC˕B6D<ѵDG/YW&%7{&k;^؟⤽_*^e#GǟP'h)-}xt1j~{=tO?zob{3Žt tę,|V |Nޜf<@e! b=Yl?t矷QN}]#w'pUԑsnPFZio x/+?֙z?x=Ȉ+ > 6xSEsWi>AKC ?7r8ۗk-ysr{ {.RsTƼ :hapLlZKKcLa!LحeLu6+!-_B~rY\o-pG1f6?`TOe[S4f.wVMuw:;>'wI]|kL _uJVpaG:$ɅtIN Nft>q z EW"e,Mbpɒ|=iìS%s͜3X$~==d=Y7ߕ,Y=iYޜIH<|=D_ShͰG98fMq;}<;\c5әKp^p<|7GOs,fLܺQ佟y?$D4(})Mc#X4#:x^+Qj5(0B[1ܿBL˟WZ0 <&c|hso (M*J1Z6jsk]֏#Ǧ?[m.̚Ƌ^;ND! "FYgX8="I:d73zLKB"^_/ɿ)&&}$Y%pR<)q46-gJ3mFƕ޸ 9wڌFe89Ed&z` 던LZ cV[8D^DB;ؽ/~N^y_-}+Zm %%n=Ix VbGPX68z67UQԣwU}=w$?' &_x*􇾤ٺ:nH ]Nni.}A6:avqq-xN%1rFN(5lbf|c0j6z@씣@AO$YQ4򲞧 o^Hz#M|:t,a0K\ښc ˲UDillaC&EnULXZ| lWS{jF"#wP"LFfSF 5T0dB_6 yyYl`LIp YcN_G-P58WMzzjz 3,9a `P̶.̈-T4":҂ㆿJ{yT)H' pŘS2arsVAWw}7'&oae`C[mNV> q!7e]uU%4%ɇޜIg̲sa v J>`Měj@htR9lS6G=ѓu!+j)ٵ&4'yH>KXT^$mYrdCoUvFEώ{aqGg1~땪M.5sgo2,w:_wy8IHzWHM.d}ޔoLIQ;@ky4"v Z9(U chw!l`My.Xм01=3i0.GyCT A}*qMVϝx⽘jP%ݮ 6 ]XtS& $wU I9 >Mo T]xDϞ&XXiEٌB`)|Q-VewӃ, NbIl(r'Ҵ ٬d Y^yիV+#uIM'i8y~"_|7y}lP4ajB2Wkw7|xqUG c74j1J Xuׇ-?2k,;ȯpMh}$_'gLjjvl5T؏~\ߜt{o8K|O|a Po}bxP+ksibmKGL-ȗR93ceJ 1+vZ xGB(ۧe&sߝ@bӑcttqUrv( Q9 s/Hr`A^>m?aoxG~ԫE~sh_Wڊ-Ci?p>V׈/AeJȅ:,S[]:a0ᗃ{d2@#蠍| vmZUҀ V!ƫI[xz&~tpКA*PW4bhR'S|(eA)xuhIh)LeY3eFʵC NД!ZKgϑM벲i/́3G>[‡"̃ҡpC/8!qx^[czNH|>J|4zi?[IX-lO ;Sx ٭otA"b;ym #“`V 7taL̛g mGcK}Zg Svp&_^*XOG^EhJZ%Siiw=q3ͼꉗǣ>:iKa76, ڷY~2T\,#@;}]+V4)G{c]o>E'>N,WͰM3*%}\j@ITkљ="/E {eުeZ5$aRvWhg)@e,o _|mTK.YDjsՓԖ*y˵P[Z}Cz[u0;A`gD;dx͒3,wCQ}=qo )*Cev)NHi䒍>C=x讗uƨ{ra~Id+yb){dW@xZ3V, S8p1lpg^kHm;}XKJ1_2#! `kE+)b"lUP!1YVt:[Qz5z!h47 3V+5Gx]RJd\ق˗c cNNHrզ\6͗g"Iq6ۛw٨km#ߋSj^p jو6I:+:cFO.o #P7aèsA/N[ʫ\G( rdC` j_vIrkNߔc{.$d2E 0餖Fق:a =PM[CʒD6^T%j6F۵+e9Uiz!@E>Xìv&u# a;r.F1PCMB|!Zl3[ri `KV͞cOd=u)U>*ο,T\8 9L$320 1<&&"l-SXjJ酪.gDN45o;2p=LKye!3`/UH EBP% 3L M³彆[w _vS x1lG~o҇k F*H"V1hxj0`XIL7O,G=V ZdW5Hk}e}ji iC?Y#~G[hÞ:b7x<Z튾GZ M') † H6$%6s0 2K@ṷƍNoҙhdίӅm N$zr~k\삌,f f (W:ouIfgkOx.ct .JH2Ȋb1jelMk) 92.6ؕ5tWaU[^JˣqmIXtzzK,boJi5kBVo?'տ"YBo{Pؤ0g^ObW*=1Luz%&6LA,)0]'*bip!#\q\(~݌I|(aœ$%46{g\(,?'(òE.~%HI?~]0I[(# F)"T?@]8MNIK.ِK4,6v2+XIX,'>)Ezm, lpB ̀A-JOOڪŷ m_S^5*݄ѱ|n/է;yNUwu`\\-Pߍ2 f8CI-{(NƐd1L' >pCX>T[WQ[=2ynKӛr+ϝTT @ LA @+A@[A}àOAgXgYAPH5VցA@A0FA @+A@[A}àOAg`Dd@ 4ZZ Z j} : j-Dri@zNzn]v=ھާWoz^u^uq^^u zzz{+zՇWWUUU׆@^5X#zU٫>W6r|Ug/zձp'7OUޫ>WW}fzgUW}n.UG߼B> {ЫW^^%7c,ˏh\^?OYendstream endobj 41359 0 obj <> stream q /X5 Do Q q endstream endobj 41360 0 obj <>/ExtGState<>/Properties<>/ColorSpace<>/XObject<>>> endobj 41361 0 obj <> stream Q q 1 0 0 1 50.580000 43.020000 cm /X4 Do Q endstream endobj 41362 0 obj <> stream HW[o\~?/Φ#/v R- 7(ʖҦZe ~3CJm/A{fHp.4:)cRRN9^tF])=DG_W~.~_]v9W׻۫.^tQ;vuv> &w/T]׍׋mEnc߭JCfY auF=9+~ϴsuowqGuyM1bbůoWkffHf?KF'+A=cDpTnx;%3[vjيK^)ڪ^=_,WEW n䷪"Sc#ߪ/)}rmӹ|X8hG+D>1̫^Ww{ك1 i"? Tek09E6+_zƘQ*8%ÿw+ . SxygɻwdƺJXɑ\LteZ jٻii<vf#of#;UMWSazltL)XJ7*5׺W~NmF2I;=␀qh6 :O= i4j,\.O:yec\h2K&8xjYKG 6f6@s[Xwu ;\řrp?ZF]0fH6#{*q [l3i:}3o?vSw1:cp?}Ϙvfl,s?=M5 =.`%]|wճCSN >{pR+Pmn DxSpt-F!CPK F}$xbi3`Sx#8o2^g4 l! "Q}O-xAhee4-e9!*ˎZk}UNS'~Pk"Si8tSOquBPp~ɟ\]RG"ʬpjMfݹxxu%Sቩ% ?h`Cڋ6SUWY%zKmwUٷ҃ڀhW=ۋ I"|WՁ<ʬ~D EPTD~Nmb#"f9}wӶ L:M D$W[̱ͯOɹ40 iOG=sB`& (FޞQ ?ԟG)k?!:#p-egPqԊdOj0$pg̸ \ݬy:Йyʮ0a˖1  iqI ~1ݿ@< V"49V%='˫uD e]m}+Kq6x&R!,^a DsrF ݔ%RsI1@GIHAQD7-Xic0" wPGfQFi򦥑(6U VzL\&7M)mgkA8K9qKj@Zɀv{i='rue^s R303)M~#ae l-K\:'x1c9)|FH* xË|hLsv K:*Ff0}VEz5Q@e-o";MYmqmIstBӢdž'k?'[8*kѕR"M !-KZ.'ʪs}#pB ֣}/S%F$'ȇ01M3Μtӄ9"֫m7+*m*Y‚f,  i^{Ȭ{ċѕȈ8'NJU1ѣ 9NPZpR1MOGR H;FWq:&֤;YG? cx/&yEYu$t#.yƤ\=-Wk[[݄ b48x){n/"iOV>yJ֑;eX(hBX+w@4jFc(M(+f`5ep*c R*1GN\j-NjZHQPE*HZ&'}f\5375߈j!RebR)3$>$ԥjId.#L$ZJ_#5Qəo\|ȹi&BէOI2ovLbuAu.d(R$G*&EݽNY P^KqX5lRZLϖ`% czWu O$Iv-΍ 'x\xJzZ,(qT 5",I1딵M^QfFX%@[MIv-n!ذFS(ZWEVQUipܲGe1.( bL&,I/58#"`a/ +"嚡82 Ly1.5=Fp2xIZb OIZtAhi&|-7zW~ toenqZ\5.[qָ k\WppV-.E 52stBӴ4+p^Ei[t5: 3fXc3|k_J9O_}ȪIqO b@Ē_zОIM'E4CSR)+6 X&*ehS1 c()1d |QO讁-r%ނ  V4qMU%Mf Ԩ_4Y}xCAc YartwuE!Z2Yq_cYcP{썞yGOCixSu>)#O->!;DcfSWCNeCm66σQhz 9X!KpZ#n/6h4a)ŒSyM)\iڔ\c#W9ʤZ ڐzSOz_9 F:JT(H< =eF] '^EWҋ~.v0:)e]>)h1lR" OS|1I{25#NQ8f{n1}}~Xӟ R3OL Bi|`+ l1^tMcr-Ǿqy'~q;#_%m1ϔo~>r[{y6V'x컃3kƚYd\]wnuOX&sfzW=πqB M%D־P;* I(ee 4>ҁ7R(b +?Vֻ" rZR hkޭs;j~We dAʆ r8h7rYH5@QWkY" ="`& 0^vRbbct,})e ];V1mҕtO,~@2vԬ~dXԱUj\2]+3"j MHץqpe-MgLxI5eVY_ L )ĔV)zNJԶ4Mtcrl!.va>kZZTojXǑEit!V&Ny}$pvZ++HҼB)5kp\! ʷ)ewPmӖEWKico4`2*j`h'n-yaP ){ _y4LNe.*& λCSeMV!ywMN/)N!/{ygvq6ao|1.nS[oE9M` uw1$[ovui|-[$-2 -[L.DҮfqf1mf1_bޭay}]V1oVқaPqHU6֑q//ReS# ((]OX DC(|A )ސ2pK/"8zfQ2A3F%k=k6yl謝:(ݟtuQYCiYWQV7;$R dͲu;1'1a /aQ(.ɶ1)bWܸ)#̯XAnuҍvrMn7ŝnEӭtWn}g[WQ&.\P gzZݩN5yAtZP~jeZl3oz͍IӍhҭ+ܠM]l;Nqz-t+;.|_|N1:,Ԥ ֵ+ٔHxFub<ʑm6XHDHbj2Pm# ȒkY!(^ E* o¦AȌsV8b(zx`x‹+UMuno/F5-.hK4z@讪sqU覱WK]9g@^ϛ =- o}|n%@]>I"ΉywaL))idw:,C j4A|LցTQ/P ؘbM5Hx潍G()>Jefm@q,cLXHSn)jTO1Eel!Bȟ ~s>.*T>K6[U/kx M.v)BVcJ$U,*? c)  U*˱qF!F=8rե򎠰}-PLEqwy~(BCC,Z_)2: ZIdC y/"U䯽໪{_XtɶxdARmX,dU' 5P_M߆]|:,/o~,Y4kNhefjoy+*ǑXQ)M^^7-9d9S´[,\m|rNJ) ˚6'z| $U+ {U%+;嚥V|ƒB+J!6}qkQ* 9لb&XV[v#L2b,^2|_q_w;V?>^qqwx9q>^ζmp{xŽ_qWqzR;$ZrBnBEFI/}n|pV;[X:l,̚:.p/Ug?obNqϲӚ͍~|5m|`S Fyp</{6WUui:+a{uػ!dz}L nϝ?]nQ~T]Q%^Cݟpq[4΅a>1txN. ܯprG]:Wɞ[kAV悫.3wgK(9u* [*⦮V'=sC . uL?h kqx>=*8]sT2(j!m*DFvU5tP82%*Nט2?.k11,RR):$Cڡ+ ĝai*e!ڌmM6j/:,0U0Ovբ'Y_YS}hQּ03ɡh4 l&B]C;R:Q4c+ }dyk57dLA#l7#1x|7<ev>p~iV@fip*U?7,b{2_j=~mQ}aSA6Yp'cYu{# (f,fYx, %q; WfOO' W?)n*-BJF,\,c=0-r37Yf_qR &|ҶCNsl>A-Y9u+/*XL>¬kÑ jenMl{h'37wd0}8::{'mWgZ3m_U.e-%ZLdѯ\G)"ÿ;Ev%J5]t_mv1-+L]hc3 zT~aw׼Q?TUYaVz%AqNCf";lЁNȆwaEAy 9[>S׵) 4Wr28cBV1oohbb9MeCԑos@T-ϗ_~%: ?ZƳ. mpPVM$O0%Jj`+zœx˜ᶦ1@ҩD%ظ.{Y"2DAEYRT!0]_$e ƖHi- hD~(/Kc?.gه#-^Y5NR_"Hє(X4Vmy烝 =Ӂgr^iiT=8;"XSI?m6ks#>ڈ k$wϪN"ZqO.U957Pb5Py#$k§G愷4nYfK,䔢Ϻ׷`4fVKKV-:C OJ3 ,@+Eo؄zRUd Kԗ5K 3i@|d9;aSdF-(-EP!CS"DsS)ᆳϪWK=XKqH"upb8;YOL06\k0s'ld eJ瓎-MH)oT|񒅑[P/{?(pm(aIK0 &VҟVarۈƫ%Wu$&\{1^XbW'3q$ujAXd'*d3wj;I}l=Y&},edY$HV'Vrl(6A1IͱX'Nd x,7M2iddY;XփevuЬTZE?~󅼾^???3`Kԩayd龪t{B} 2w f"5{Qf!~y0|F3.*k\<{rpVZ FP I #!=^:,}mUcdGNjhsPmNo5̮mC(džQxlA+V((f >Q%vꉪ}!uw5QmT)E]J ō/U"y3"kt@҅up<5M+~^xQ,~M9qW0"(6ۍzЦ&ޫ8m ]~j _$d;I{[Z5i8ͅfoq-YZ8\Zgrhc)i{VT,s[?w<:3FilBگuܵ- 2LRa] B8DP>5e-.i5LTzwdDU %YɃ3 ܍=.S$ĬV2Z^^vVbdOV3P1Z%LhniJD2b"j7-Py &en)_S#-AE:KF8NL&[kvyJ"` EJ) M͔ ʦY P)NP6Fђ|k): dO OR^"%ֲυlu` gVL  YRU֛npޙ֧z8;r"w<^Hiɪy74;{Uo:$ z~ ~")"66._>":z*#W4$E* cʠ D9x]P>(N6E"tI7Bv`(),4a{RzhfRܐ^Z= Bw:3B-7T IT*Ax={,r./8\&mb,vaP gvAA&D-9>ofV!Co^\92TSN0+ Hೌ J9n;lA>%K>7#|A ?|pAg`K> >ȿ=Mdz:"+"oIy#C$nj4V^S"Öڃ d`hE7QɏP(Ǎ? .w +:-r0PnCkAG;Z$(/3 DVk6upyT| ,T0f‡x " ݁;-Oj qIN?2S"uFSK< D]2cY pN5.ȟ1\7րCI/":]]$ZSX2Tt@F['rQ>pG_Oנ#tZJ(a|]{O,T[V(>gW=+GYyruWκ.9Yx<ݎw&G%T^2-SY.t56}u9eq5°P4a>3CzH9bZS_\4-\5ʫȌN&uRoO3{JœVm(rIA aD緍X>c|<{Xe H?jcCZ,S[X Z%n*˅-B6Z8 rIB- fOq:-t ;⺶!MQנRƋ*CT+_Q?_׋NM₩~t@EN@(PKP|o-~k T=ߙz=.p)z'l"/V-Ȝ/B!BJ6 'uP7s G=fֵN}]o%AHKLYswJdJ&6' Р!eAGIKO}}z :*C5@ZVADQL=E{1D9ӳ?Aư9>~Dn稜aUxR2V"h87&*Tv*49:bv &c0Tf5Yx2BV^eAC΀*Ns0,7XA3g&*y:2??"9yd؝D^j йW 3, &žfV^1>l>+MדbXDoCq}?]5֞N_ͦK4[[os3@ϳA']UFWl䛋f.c@'NN!Q8u3 u=efyBhsI{)3an`o&,xL,|<~t?$~Gui#=.9Tm; DԅГ 1lFW3W*B=9>z:P=yo2/6网S/xtÁ@599ǵdg|p"ڻI ߘ6uxJd=V}8C4S:%kCe0(.ߚ,mqbY .˟R oncg*⸲vZh RlZ/7;_ #kD_EzԴQwC:SYsg riczq:EejG5"&qvbl6mypn*#F gg),6( b连er8vػcU:|Y]?kxXPl߷QCX`zO[5 X~.bF[A4J9qaU1Qw I*,9:8H=ՊDU'o.1gSy2Ew{aŇ~}.{E &4;֢SKm50u幫2g5`cz3M[arR je3RhtPR'[t}n<>&ZqyYvB#ӵXa␹qjlv'ugeO{mm}x)DSXIL̻d2497+kZKg:J]}#ξMFոjA+z2_2 yx@VbYtO;ؓhʛROIkJ6 ^4I2ߥb{Rh_MF{џl,ec?8N62lO2KFhNYKXF6+7z6xt LϚO&#?KNr TO)'ҳ%*7*d.0oF- RI5k%K2ԲniTbO afP9#ˌ;멶#Zsy4l¹x+^x^Ωmֶ=z@T,S4 MCjRi3GPWo`ldu2Uճ97*]orzh+~TW$l7@(vmq[q5`ZaE?, yq(}Gfh:7r0䘚FEwX:ue^a 8 dzB+jL֡ Ah1fWE{m|u 0z:]Xs{ur/ L]ԸJ֙a.9O%$D2 };K{wU}(k| -[ߐ]lފXBpyxOgrKFeZcm^ y02b {f,@C`de!%\g+pJWGH\߹ѼBԕzV:!RB~#a?TBIH2TnỶ-zާ-Q$p/F ի4>T[;O;_eB/WOzSuT&2.ٛpNSmZ\[RJ=U8E/R[ra~޾x.ջ79ToTo}z`u;K#MJ'[!,:Bn0@,Uĥ GNυf6o /JslP0/5vcߏ9vs9v9v>rk9c7.I]:lPδ{X^l>f*!T ثRH'gIG 02EQ?76-"*zjnj"E뫿 E!8aq@ڨQ ͽjZ<]Gf/X]NPB5+5UE_ⵔ${c & AN6e0sjh+ZJGc2> f/XjI)"7+yѶ\,юIwN?T~>&(G }3-AtpV)-b7r^9B. )_Ufzt*R:X5d՟,E: Tx=sӞ-^81~1'ЄuTnB{vc? 7 21W:5)= c(~v n[IK:7/RInxQUhit=4s\pp]) /33]ɝKwW f'3`H2|pP=,qt=Tc^,uv4`zpwm)2׍Kq*0\a&+{1w"ыy ƃ1!dFeK{ x4 <ܟ݄tN|qlGg`ȹ ٻ8H{چdO$}6\ƽulEsE|D'h6e=7L˪GC=gk@W?6H:[cdog,iS<ϣ`q42rhe .tԟpW3Jlk~S_sdoj\2(+ASl e:]|^kDu66Gs n1Z Ͱwߒ>ta]?×^#:Ǔe3QyP@Б|9t#@|j#CWۺ_T[{(+Շ ;™28Fy3M 3_D[󴯖)PZPp` ScS]5䉀h>JTmMC\+3k(6gPy#n01^ FV'ԍ88E;w=ņFˤ_FٮYc )pZhB=n䱕%pM -Y*R6P=:1^-8pߧ%Qf As),>d )*h@ٯ3(Qϻ^dB5Eusc:gvlŽPw#ՙ$`G㷹Szz@Mۗ6VrDQN؝6oPINzQrN;7Nt"EwR؝xQŋvŃI -wh]c ,[-""gQwõ& 2eaR`@> WfDhe!ؿ1( f%/s[^| [|oϘ**;F|}"Cg܇ϋ{SA`7".pv{8 Ln[KȞVt#sysO堈b?hF7Jq bbv#ux`UL,x^ƭK'5$k̠oXu5 N3^|ΖlsU4U6Mf 8xPI*utdM30Bos5x ܫ2bi1vhZD3yCX -[%/GTgL}`Z83s> }{V{v'=Z=~t??S.::JzCjnіQ4I:bh_d{jmO2h&֐y5MbX y¾*wL<ͷS q/}骜+ZVn xp+Nˈ´ŁMw1WўdU?\T=tuIqU(+2>^vر ƚjF5Y H_(Ʃz_iΉoX0#+G3K4W$;8% qZژXtU=>s.؏ kEH}v&8 ~6H.K]ӊӛS UzwO-|^ĿU"(GQpBt O(fG (xȑ&\dNom{Ukv \E|WMbQ=k=6i!0DUsmtDlH 6ޕЮCڪT $YVqyIEz1d\ @:Lw덋+.F-8"ұp#7wvlL(dC̴Ը8M'j J6v; ]ص=W& 5.'4y77U nN;$_%TR ?X_K폧1r 7/0ԫk5ޑI]Tdbd\+`6fi=T 9K(mn'uI\b\@ӣd0[lF}ĥSU.(jWjc*]3ZU&05ہ e43A ӗslqJe`QDQ(Y*o8]nZxHхz~øg7 x[tT7iřX omБ8X&56Vܤ|Yy6H'"TP(Owڲ'i[-3I E {ahaN[;y중>U^2!ٵg.ScYa1!2L=AXyIU w ;R SjζcGBZ˯7u_gmHRج9[ JX6n^ܳr9=a9)#O7JŢkͣ d;$ ́)}y(Fy7w_#:Vc2W5S&'flX븇7Ƹd,CZ/ i#*m >ۺƼ+:~q %I,DrU"t^J$ss a3gT= hgԂrNV=WC @𝷴oqX'<Ԓ jJZ6˓wmPǜ <}}Y _SzB5IT)KuFNF}k Mן~W/<DŽfsz_)_zzirJ"!(ǁ~O]kNe\3Zrʍ~N H 3=Oo LkkwFD53!@hI/BDRiBP:zI6?w!dM.&k,6Ϡ0T@P?>0μ]iRjXM^ܵDˉB T6˳@ZwpcQB/A)W&WwKގt;頎kdHDVR%fFVq/J{ .2WR{f/|08G=*~c𒬋v{ x Z` ZPk7*ϋ|Ӯ\h]۫\GaZgP:9kW$_5H—^Rb<dGU.c=r FO&-Ktht.[?[>/cUެX8RK!;!$An'v$)V[@=Si͉EȭPH2d6Zk!/l6M؅ԑ (_7eYxٕr*DyJSM;\ĩ=ߟdSnNm_e@tZ/0os<^F_EP3]l#쒜f9Z}ؔ2(5jEr+S:8bEOA !jL&B&~ycR@M Tq9DtױBB,yRmy^Й͓|TaqgGFOڅ6}Ʃ+θCS ?2jM_㩿SixO=GG ԿDDS`Z/T,bFm:BJU+b U6nnwpnε ~Mz pa!Hul]wf{V8]sbG -Y09X[}8z>7^@`i&pҊt>=vkޙ0^UBS4^7[+B WCrcp 1;ҮD&kgcP^W.gyԃngp8gBALgD%\>{Y!߈_gLz\ڝfґ v+z1 DeRQhfKU1>/Z[YIT*HMӐsP|$jn`9~A6;_ǏT EnCggB :\06%|䫬G8*JO|E LڏYOHĨd寢HlBXojRc5oPvIJ; }I~>B lM4/)?p ~j,ʁœDQ/UN@Ѹ3םΙ̰6ͭV dO+C1֫Ŋ`koڋ:;4#S ĕyY7ܐpVyHszޮA"APm ,už.>=\vHC6F)PKdHbUx@=8\gh}4-5c6=' [S[% cf-E|6Tsϡ8u?,dI9WSکŚ#76Stz)'mc9dl5\x}}h,Olɞ|c!|AC[w6 4{Z|Ro59ߤ}n`/61Bzy'NT[vQwaj3L;cbA8-ݐ0,ƍSX E*r_r::zqs!bE{XÄss[𑾺;ɻ,YdM>~Q36[||:ѱBX2YQ}WTz4ؾ}ٷzD̀WDF=?x0l'"2nY//=V ^ 0uʈڴ^L-0x @bdzX4#a~>!ꑼ٠GUBlQN Lu@K*b QH/<̓Kzi_ހd8J >ꝫ| ⳩B橫jc 쟈=0;)gcEgpw6\]`l1f#vaK bټ%NҀ@z=+gǷw*tr!@_68Ԥ*š:QɱK[T/PMZ?D03LS ؄I*nV ?c&qɶzH/5/*YY>3rRe5c-u>J 2ejsP++Қx vYAڜ4QL XU6RsypAо| LIfiCc {'Mp.3} &I,6 Ş SWTe$T&bs P%ʊPp|Dt颼AA@McODM"NΞB1J]R>-)ep!n`SsK/25 Dy a;NE-hluatP6Qf͋9LG["bZ`evl{ɚq2۠a'ǿ4?NcR,gO03"u9q޹_N} ( -O!H"^g;[BD$Ztf?s  W;KLfdo qJrrY.NR5j3N{ʯgԗ!QAR9.Mk 0'G !;&A8=bٜk(\%3wQ5o|#eLjQʳ}h)_5%*e]dXތ녯C^kBy75tr?4@p'U;aD~)Q$Y,sL O]'OL6({3]f7Fn\K٘iv"P6pU-x#ED- ]@ d8{>请=9;;)=vLKnR51gjOm1ú*_vpE HU*imOJ{m!\ClO9[D7 KN!hd͝^JojiI\[q]bA,S\,2tǥ~{&N/iWQ0YL.+eAnC>&?+ثh02 @ 8<F"|?&o*R є26*h8LY\g=s_jv7\j.d6p}0(a:2DH]uVMb7Y&x/Pc02uCp^ZW$m(K 40rjL51LJKCjۖסCm|__Nshy٨2|/ y$֣jbgQ:wEg8^:`\v&plpn͒4aRM&/}4Cߛf i.9q+g9ns.:s*gM}&,|@o ¬}DK Bzz"oq6DXHz"n{hPu@ Q/*#X-Ǖ@b֐@U!ebsh 1s61I+jEIonAxAo\R>-8FdnGU3wcpoI@*)tR`PKc tJlJĦR5A)ED9C7w~z*_I`kvާ(LKUkZECr;vђF&VwJfGX&54MkgY6;!oYZqECw$CAc!z$32yIġʿ2g瘌"?E8;"uKY_ ͂qAX-"t&D5ߵ\5](`8*ia C.9 Az A? H5A Dk  !W!d !$5'_(rdgԙ(tQaCnnO5U}=(sJÕ%x`^h, ߕZ7S -}E>S}hpzVآS+Fj*-Ti## CEd {h]o!q"ꢌh<&59)ʕuÇῐUUxDJM<S#BԶEq?$Fæ捏Sgv7}?htWѲˮ= )Z:O | !K= fl6= Tƾ쥏H"c% iAw_oMNFVJg>ȟ\\Yn{SN[XBs$o;q]?Ѳ$y 8ohMywu964XWɆ& c bYeb*RzwI e"[6M <Y,?\c.] ھ{ĩ*75pz WbJI?Ou\?ZWֱgX:/cY<[6eZhGdJJя$V*:QfSUu}HG%? A9ҤD# 9ú.ێA&+4N0*ȫ%*6kI},)0X~8, \) ֥Q5SVh7CW Z5 53B5w;h 4JJ"EVТU(E.GJ7!nD$&~Χ=D[[2o$m%)encFNU%G \vaT ̴p+օR:YFW_a~) j"KcsR!VEz؉endŜʧ-AMՍg&uDxp#^TpT HWCM'~"W N/pKI`W5%`pDeiQ6vYp,dKѫ{`*"(yE5=CI5񦧷b_os(I IU![G@<"]~s-6x^R7+QH% ĸ DĔ* PݠL6( 7[Q,+y)F] lI~w?-jt+ -fjX%_S(׾>Wendstream endobj 41363 0 obj <> endobj 41364 0 obj <> endobj 41365 0 obj <> endobj 41366 0 obj <> endobj 41367 0 obj <> endobj 41368 0 obj <> endobj 41369 0 obj <> endobj 41370 0 obj <<>> endobj 41371 0 obj <> endobj 41372 0 obj [/Separation/Black/DeviceCMYK 41381 0 R] endobj 41373 0 obj [/Separation/All/DeviceGray 41380 0 R] endobj 41374 0 obj <> stream JFIFoAdobedC     $''''$25552;;;;;;;;;; o"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?TI$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I][f>)oFK~W6[ѳߕ&l<4gI+??M-_yioFK~W6[ѳߕ&l<4gI+??M-_yioFK~W6[ѳԩ5vl<4gI+??M-_yioFK~W6[ѳߕ&l<4gI+??M-_yioFK~W6[ѳl"m0NXPJDitx߬?f:/O1Ce4>갟{$VGf.fyޕǴÚ0|Z__gK}4Q[cX ]-1~Fb[wO־A?agn4?Ӵ4xa$2s1Sr]z.=GI$I$I$AwX񺥕69EZmY>WKr}a,uޗY_뿽/,z_Yeۮ']O?enX+w9>W]?[;72c[c+rݬxkqI9:*d]enV[i 9xV8#Pc_GA[JX}hv.S\/ IsA0Ds WfGEsMI{O\& ?#V7NşV.>/W<1w\8qg|N_> f*f?GּWzEN`mlP_c0e{кֽ{9(jdPcHWVf뢺ݑwtr{^}WGUv.=#gu[(f'% w5\XmUG=o"es©8r[Ks{0^D[Ş Qt$:n1MUT^-T~5 zpu>Κa:;Mg]" wAg]ȫ&:YF;z~rf;`O- [SpvkC#QHVPs?_h '踜f'ןCC$8h LY𭪯I1GctgUwZk` bߑ)D7' WzoI5ct,Y iiꍓV@~NG@q^øU摨g tYVAfK^ݞ ?RϬ52^M!e OԱ7~7״1t>*~.-Jf'PT0nsTsrƮ_}MMpդ7*_N/ n=|2Rn-`q'_ο_K{lu,!#,}W)x[~$IjLw[kîic<T m Jwy#AX=+sqK i> r>}SLsf'}PG_Q{tvwG|-zTֶ'`{&%Hԕ0{'8KO3]Uc#NLYL9UfCA#SuŬVrm<*6++϶&[]<}W]uv=H }S]׸lTJ\|N>Em 4A? fK]C !t+=llvÌa7љSlIЏTp0j4~$򫷠tv\/n+9>;fɨӐ[kWtKEc4vt `HyO<}OH}_!q?s)a4I-X`R?|@I${Kp +_em1솒O}gSWb% %qC#4H'hN6Kki1ș,oo"7K{[qyȥ=<RF)k#?絿_E/oo"7K{[qyȥ=<RF)k#?絿_E/wo"7K{]qyȭzY}15#IDz [dlOYP{OvUQ%>W2l+fO:cA ƦV^w ~a.&Vu4}5++O78ې21bJM-2nWݯɹp;-oQjxi ˤλ]]moc,ޙsH IBmvu_̐`hT7l_Ԯg2 ePawoBიGq(-q:fq\W8`dӈJ` {O.l6oܼQe2@{abq5][b4jem%/She.^C(ޣņupSgc]N6ݏX㤟O[g2=\7,/]+5Y`m׏o M MUw9" ;"/ҵyє4]p^G?_dd)UXttxq,fxuz[pEWhCWNk/vSfI] i]WK@st` ֞79dߚuNCptުC 7ԥ9>67շ3 S{m.3%o+d>:+'~Almzg{3}vMlk+h C[Pkk[A67MA >FwJc]1i%_Ạы2C 6@I$\J>ՕV0vk 줙Oz$$'orCCVqF>N@v߲"'vmUIvSퟔ-ŗmmꕹuN$]&ew'&_ w%LK-1܅fe [Rv;ek8;`x8]6+.\ |+`|›*4x ?pNnM FQd`{ ,w.Ǧk)k\6Dm{_M.֖XW?rg]hTAc<=JxW;U@:v]:y# EO?J\6 ~d

]Sk{kpt!u]bƻet:6wV:7O*ŮVQ\mAUmM9`am8a}>C]? [{(~ Ͳh zy=Gq(mnͯϴ OUqǪ{YCY)EX}1GqY'p#U^_lóM6YCnװĻS8;#(nok~gNqm׶(s_YCĎBcfu;K(f96XC #˙YNua;[ʱr]kwcY/tFj\ǤEle{G0 cSŮq˫i~ѐ!s $Ay˶#_B\]*Ѱ "O o2fOyWF혀;OY/ÿ'i i%7J`iбOS_i6E;(e kH ÿ -?7:9sVs!Ăl;_V0[1.OnX: uoUkY}dmk4~ܪCOM%|ݳ@yrrDEu\ػD9ol_ԮnV !ǗΣg&My5Sv<"SLT]Fܞo- sCo;8T[m r;2OYƹX>Ke ͷQ/Ǿ~Ůcv%wTb6h.$ަoھ}9Q0Kn0;׮ʈ&#D5yʦ]T'NU{񫡘emtJ7Qv7Q=D08X prjsxYKlmX-,|m#bޫ~^mn5- 91.~fVE2m$4 {'cil~V8 %o$,=<˞K&JP#k_JJKiɉkwGi wSRiV5u!3(^=G?uO[[#H AtZDiS 8MnC,LvQٞ2 ӲIz)cmkyC}۠O~tԚ,$Xd\,`k't?DJJt?Wc?Ps8w%y~78X[`zЪt`A[J}(]MY5Lj-<~h|h3tq+5+ite,RZX_dmA~m41!h $VpQ-۶xwd?%:szVol1.">:r|}On,W)x[~"$y0j6+A OWypT@ԕȳ78MN9>*oؿ\IN$I$oGG mp[_z]W菂KF>LJE~5GRI$XV+ꣷZ Tſ=ޞ;R16kg{o{t{O6n}2C9̀i?1ZZe5Z]bƻd`()/AwgPivKL348R6 uuF1 Ίfcs !'x}]+%zxmߣt -ݻy%Κك}7d%th |zs>5l$25mw+X˶#_BYS[omlB$®⋍^o<7i$I$ȑ)dUiקJ~ gP]ZgK alH{m7Z1d5#{*魬 nf.e,v X|K BL5+NI '" W-xٸD$켧126ܙY52׵H{ y,v'Y'f%yY h'YNךX\`G }#OҿG~wYgn;O#I$/7%8J,]ʺ1gɝ$*y3ks+oѣpGW2 (f6#thkW?G򅸳su_Uʁ E^WƆI$I$>G1>?נD-%r,> R 'T0}v$I$I$2I$X~qVv?\ r޹vCiz~Pno^>!y*6qA&UZzXI$I$L -%/Y~jPs?_}B{p&a8}v$I$I*]S,b8#;̿.+vExۭ;XIȳb_f.KڜX!gOYgպVSs.hkCpUn` 8!juoc`сT?Jhnp%/ۗy^/^>8dO]*;<hJzk6R:I$I$HvW]Sg3%o+`J{x'uK_{l_ԮI$I$PQS[.} fK+{sOaOZM{ѱsX>탻Rг_:,7kC 7 zm;.cKx&Cnvxi$I$I$K?#}M]gK k#BRݭ$$̒IQ1maA>iSUȭe'Bw@g׹ŃS?l9Z]bƻrI$I$7XWlIY[ϣnM(xhEc;v۷YMo>_7~{;~?h}p?6Gi~~w'|Gw_aoo<缭o/?h}4lXݸgOu]:?zKG- E^v82Sx2J~(g$'̒x2J~(g$'̒x2J~(g$'̒x2^/gy~sWbԕȳ7ײqmdqendstream endobj 41375 0 obj <> stream JFIFoAdobedC     $''''$25552;;;;;;;;;; o"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?TI$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I`}q_ svXNƼ0k2Z\=Qg&=Qg&=Qg&=Qg&=Qg&=Qg&Syiʋ?4tɳoS㖃y6jmo&߯0h"f8ׇQwkA?ߧ0h.7x438?eXj.Y>?[trm"ppn };1 3?M-_yioFK~W6[ѳߕ&l<4gI+??M-_yioFK~W6[ѳߕ&l<4gI+??M-_yioFRY=csѧ_^=K}Gn=stI$I$I$A?FI$^{:??{xүf\,-htѝuj  sƢ shΝckCˣ]<59C\={`t32muXt:fLnsMnX蝥3kql:2!FDjzf3n+zo@f3MՊ=Z|HXAC\< %PKΑDPEڪ H'AGXO$Vڪ2X5yۉ3|Ḣ,i?c=<.=\w=>I#x#GHk) :kD6<zq2n&f}tݡf ̀dg?,nVtAs$p}R7eqH?dtrH-WVi}.2OCMx{htyOG¦ze"}VƮUnÃ}C?.z߬.O'οT}*Nܡ]]rKOꍝ5ZzPo][wmҽ3-?Wݟfo;v69x~P?swtZ2v2`D%VާӨn53"SJΧӪn 53%F<*_0vhmVz/;@|'1r oj4ݷEI$I$I/1$Iy㩒I$'ВdNdg_+z?s?CI$,<{#X~v_*~KaHs}=@%<{sp:ϴהZAӽ4*Y=6qq}OvMDuL{u%b֛&S}`Xbz->7h2I$_[Ӻ M~c}:Y@Y?aFMVbm!̓ż.D t?3dI%pVF[ ^7 {~څ?Q~a}Zfmˡ lnt֯Sgc[OH!inө/c}SəOWY]5kysZNAr~u|~C_6Cѹ#qM/?+ceKE=$\UzJ?/ <w|>_?:eyYZQ^\O}SߴWePC`0%,Zq˿qgqI IrBk}e4tg Ͳ-"C+h:;-~ON{+yo{,;A鿵M}OR߲wy(_wΟfN-vc`F ǂSoAUoe,%-8|JǷ*z`0}4\nF*Q]GU]Jc%$@&8KoGÕ~UZg["2I$vnXGO즽F)*zc gUOIl;'bqnӎI2vu ]ly,58HQ5ꃣ݌o?nvx}GagܴQ񏺖:ڃ漏qq%` LzRs[·9{lvߢ=IXfKsrk653d[nSzM#߲KguS^gů\d=cS-ZY>T6j5Y7whAU{;"McA?FI$^{:={y7K uL"t"YX{u rG# SZ}=#`'9OJ[E;g}Oy~S[["t?g'}=c#'4es m|WoWJ}{ 164\k. JV z62-םOG0=/ UO4uMx]^6.qpZ=B?\ų$T2>k&'W.zCNGPpO \|gQfޮqU6c-T^<`l[`ۻ~^^M{^3[et~}`uCuވ5Pt02w@ٝ>,lPC(n`h-JεzNFmȳ{Cqt49%s_+z?s?CI$=ko nL U2݂Zchѳ1܇e uF:>6pĥ2 ,*WOm$C^eT}w_,,n #ikMkapY%c;%ETqwJkUc뉧" y |Zo [LMndֵ `#$I/=?Ã=ؼq/$)Om!3AqSyNiykZ3Pf!I1xv B"dL$k"G*+g_+z?s?CI$,ܪ2EUJGA1a۹v7n1xLޡ< ֹqh|֖G `}OBOl <GD0<5L +1JB5K^c{@B9%bݦ7DR2N iN~pGy¼ : _|b2I$?8?݋ɺvM8ylɾ\V mf ntΞ%mMmhi~u`躦=`wg>Os*uc,>s~"_fE/Mm- ͬm |;M.s=B?h4:KIvgt[U`.^\fIKszsr./cL}#$%mٽ77 0\ 5vn:GYn/ 48 ~EgAy㓷pn3-ծ u6]UeF75:{J%;"ّ'sh[p7 g7F L%T0 o:=yU袃 .s%[ "=NcߓcZYK;ZR]_}uOOɹ[UOykK\?WHc?W W҉4D2/tzc?ot ?e(2gV_ZQNK\Ɨh|U쿭7dY]Ŭ hL~\e]Ćh]?E5ZШ-(6>>J/Ck%/p]߮5P' ?h(?MIGICztW*mˠ9u֎ī$KO'v/I:djjso-вDj3[[u 'I.:j66> xA=]X5W{_X/^:s}ѩpKvq$%u4q% {y %/UWj[_?UaiQCBkY,S `!`Ljx+sW`M]7\˾,jN܇ϤV%K@ fQcni\!5'k>)]Pt {Dx]N8* dhлoCRI$Oa^8tQLxV\ѦᨈZMiJDi}:\Gҍ[\QtVkXCM<K:ޜL6.nvu[U5`4pd=㺱[֝`*wy%C-GَMs#S {*vQξk+!Gu/UWj[_?Vݻ9WX= Unm"N*:M- ux-=e4ko決 +_Kkۨ +ROV2"jxZZ:}K'欿so|o5>NݤI=Y899YcKF6#z+467`F׆?hE ~j~.jI$^{:={xtJL8|i#VZ]fX2[phǸ5=g[Cm=5Tez{ ]k {%Fcvt>nn(e q扝T[:mu= BbtwӓSɺ=;KǦu05\rm5kBpYvS?5nI/=?Ã=ؼu$F4jcO}81 ·X='GY_M@ nQEnfCm5hkD`b״9icZL H-2ڭ4U;A$A+?6e{T:۪ hv->ы]2 0$A첬s@Pē+S_+?.cw{r6 m-'P!@`KsyzRj{ik=Oo 7RWkП]ykCA.<iTsStp4U}41s0;\Do-hK-kk COL4rF6?DO6MU~~ӯ< Y*wFԒI%pM!-h#_V) ƒd`k煳ҳ+eNmb㦜qZxd{y+Š4 @Upp.cZH畞S}?=SX`w.-sa2%A%oU]n%H&.k c]0VQnڅɂ&'OhU}<5tA[}ouG"BC;# lKk#2> jGT(у2ieD L/5M}7F#k:8q@.L8ˇ`;~yC~e@ ev_W֑fm<nNk^9qtrua|2)Xև;=HX7kZrSnekaw%P:Yja{ ҺƐc@C|f+mʳ- xsD7۠lY[ 7Ѡ 9Vev>;]]$$UoR^)$A܀2JWFI%pk@8Fʭ{mo>zK-wq. Y1]Os,cC3[=2M!,h6j4oj>,m #ilOeۈd@gcԐ ˓NK˞vx9p(Y\MrqkvndVPKnkN 3,٫0xdӏU[`$ö huy"Dt@Yt8j4UH(nZR[_}u; ]PsDƁfocY^Enh$ Lz}/lyq2@>8swcdrhis8Ekf>$y rF&Xtlh}sn+rikwƿ%Ƕ.s ȫN25Z\]4̼/ݐVjskv@*d۞ڋ5No)kl4 hV n1,>KJ(mk^#E?$Iy㣔z+{\{.cxcCuiiӏG5opqkHc> utCͭ }ykAZq[5փepacg 5F2bU1NCwR,5&VK 긲Ө<7SYnw0F|Պ˰}akik׺0r_UaLphV]unKi-_= qD;n:P9V`%' @c~j hD%LTAS!W}aYph #ü(.ct1@>'*Tm̱k/4!=ص9qlE{H#Xz]JV3:4~;Ac66y=j׸ݮ  /e{c;.Xc=e3+~ȧ=ФI/=Ã=ؼy-7ksFɏiy00ɪyF˳(9W;<8fbK[[7m38*yGZpҲtx«j5 5>ka}JͣB*L77NxىO'!'۲m+g(O`Ur3oj ž,ۣ\lO[,w[C'G6.h ̸[0V"Z#Q:SdI +x9 !O >ȇ>RI$Oa^:4V{ocD=xR:iq#Cqiǹ<}ʵyk`m6;wo)&k48%9n EDcF\ut Yn ˋ@ɟ1H@uE3*6}=R}4jP`]*+k_+z?"[ۗ}Sg53sJMxLs=<$ 0A̝F-z`=BO7:u-?4z;7Ij-wkMYXbq4Yas4ϛqoiraS Dw@#,?L;A  q 1Su|5p#[WsXcF}$I/=Ã=ؼu80|ԛvϡ>efHTK9j} i\{+ O⁓dzXd|>c=_k~Ǎ`h{x!RLlKoGÕ~UZ\+w{r{z+؈:͍͇ܥ>/aYkZsT0 &k'JsZU^ 932N\_su k$@ȸdY+f9Lksmrji;AXeӍm76NOa*?=tw;B{qZHI $2>3WCqg!WD}$I/>q=ؼwkܖx x{ <)4ܦyw3q'C$n{%&\ ?^{7ɶmwCܖx-?r[]~-[zA L)SMN{XW1s_T~.LZ~H [epcE!pI$\~{SX,B?}R7}Q?zCu3˼z]TYs~c:'ޑPsx;OH˼?wzTi!w9ǃS&O#*8QފΥԹ9WwNi[:ɻzmUm0;f$|b'uMoDvvL6woӈV>YٮӺvvU;{wwl707sCNʣc쿥Cn"|>OrʾAoR,Dz[]nl{䰏ʓ?eOHfgw~#f.nGĭ/}<~1=I$LN=v}x$l?}Dzޟ11҄6}߱αw>v;5?h/>}Ӎә#^%Y'~ų7O/1endstream endobj 41376 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41377 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-39.4199982 -52.7400017 642.419983 781.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41378 0 obj <> stream JFIFHAdobedC     $''''$25552;;;;;;;;;; H"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?TIqC ;`y7?Yrtr_f?s(G%oܣܗ7?Yrtr_f?s(G%oܣܟG?L߹G?HϬ߹G?8Yrtr7Yrtr?_e?'_}e?YQnZT~ue6M~mpG4  M5}Q/[q҉}o_Kk~_h[E߾(-DoƷJ%5}Q/[q҉}o_Kk~_h[E߾(-DoƷJ%5}Q/[q҉}o_O,.{ĀO!qX:?P_Eaո2W=ޗKUB?oЏգJAYyV坦X*_Ծ]p #{iT_F^5Tgt m8t#TT_OWGI/}+)%/=_$eڣ$쾕Tҿj_WSmQK_Jz?I~_OWGI/}+)%/=_$eڣ$쾕T䓎CHdUre!Հ=źG 6A ~ 'wP?ɤzn|0gI/B??3&n|GgM7]ZI$ȚVSj. 3 ^zoׄ?9zoD$O^h\Or>%HPOvmO9pKtPuErlׅPǀ̫o($4xh) ϏST tI$ < Jɤ) $:EgA:#cDd):ƴI8H3{J_ (J`w -0SBPj{XD5ͭpO]VZa%H'_AõOnst5yI oŽs5CQ[IU;)c `Ȟʘ9SߕK_>ݕK_>ߓK^#K_>ߕK_>ߕK_>ߕK_>sK.i~wI &NJI$V?{E_x}>zxz^?/AޗN)w >#O/zpFz}\',q yޙy&H?މ[Y1޶S;I$I$I$%:h @%:fO(JJ3 `cr9f8?CB嘵hNU.&?gBu BP% BP% BP'h[N根Ls."ݛrnwxBI*]PM,+3j[Rڟj[%/M-6ږԶ-mFleW iE/#BH(X>ʃdEyL;X*DٝRT KXQ$΅Ax::U~Aq ytQF> | Xg?_jH'WtEm Ʌr]P.2LDU/?$8J(J3yVQ.X=1ŏQ^Z^J5a?t+i$Ԅ-A[eKM8 Biƒ#I6DzbТZmKj[Rږ\A5V̿T0#[)5K*%AUy#` ʖIT@3"|U?4EVB(J(J2v; ׀@)lwvd].J][ĎGc t &|Z MR(J(J(I^>!j~w:I$IUjoH1")I& 8#!6R-АHj[a1hLZj[QqG E JAG- IwpaE1CvW ii*P< e6ߏU Tv @JP% BP% BP GI젒IBH$& &HRs#>*MuQ!cOdbư.)(KSmКmDgh[ӾPi\c $$L4 t"53 JD{jW h2[O[H$I1ZG!-J hI(I 'Df DI (1~Ei1'7r%DF(J(J(H5;[ӨYA$JI%_,KUᲈ$$D}SN<|Th%;/' F0;%"<KSBhS~}F*nunӃVT'Mb%4=ga1ѪDIH @Vj_ h6yHDv?o͏RB|hɤvNH;L:M BP% B B_@"ФP% BP&)5kuP=&'XM$AU5R:@Q.RS`J[%> .hn< T7( .nr{;FOyJPd8)Ahi1ieڢB3>RB{$% BP% BPP$# B:d;xLBm (J(JJQe%-m mKh_endstream endobj 41379 0 obj <> stream JFIFdAdobedC     $''''$25552;;;;;;;;;; d"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?TI$I$I$I$'I$I$I$I$I2tI$I$I$I$'I$I$I$I$I2tI$I$I$I$'I$I$I$I$I2tI$I$I$I$'I$I$I$I$I2tI$I$I$I$'I$I$I$I$I2tI$I$I$I$'I$I$I$I$I2Ŀ3q}cX oOa}LX78Sr`[21k7 hY#ktΟV YhvXĴnl.p??7?b̫']`*. Bg.{ZƓ t_S/pBQ@1)p 7Vn[^4I$yWלK:psZ.}z[0-ofU~԰CB;<?lyøs,~sH^+dtNRu,dx>ϤG}Cc-衘ݦNǁu,<=n*˃P?Rٝ+ 5v XXn[FFKl@Wέof;2~FƼLƠ/Bb7"$It.ьX,~qu9Jx9uu:Ϣ׸4+vWgYe5usp5}JΤZEÏ/B8 FS57߃]@2{1H  x EI$.C:$t^W;K+ . }T-"YW4GLo?v7nGHqi ?g;bǺj}D7mrA:W%kee"I<c~6m{LarvɼZ+$E$I֟uWtAaӡh}&x}x8ԭcv%sx}{3l(8xEBp~Mkx%]+9GUѷ֯qWwoDI$/*^p:Kq^Pa|AM:H"!f`tunv.C`Qky_Uze971-<N;#"/f~t-kq_:}Npȿ"/vӃJzt[xO/AGõv1FDDI2ߕMX2;A{!ͩw D)R0zWCh~Οֵ h L$'_zӫ)c}͉K~zyv>EtݴBT]M c@ h<ww=oDI$/1:fIp# s[^O湺5⺈yAķ3%j+}VˉĪiׂ!nLu7fY(Ze63ɫDK'ܺ0uy<6ʲ*qcpٕ:WV asOZ]v?Q$L`W:AKdzޣvO=שz?X\*s-/7Lyf[ok"S]!Lw80._\fPUMNkit@^ BA ~^Q{[v90sAbY]<7txcG$eօcS?`yuTd`^:T7A]=!b}PWPksVƓ O1mUos|Q& ^iLh%E]~?zȈI&\Gm}"}WH𘔻& L . Wa7"$Ir2i~kCt]&tLR%1)M tI {&O‹kv8""I$xkr2*m#0%(Mp&H%qv8""I$p]7bt}V.y5l!) FHL웝|S4ML]?Q$Lқt!4N" xptG$e;:絑Dqwf@ˋbA.i#Xܭ03{˹y5;6Ȟ.1|p:i"uEV {"!7vhaDP$ ۔.k41ԑ0l> @:4=oIdĘC~wȈI&\-϶Daq h}os,98?q.:}s 6X[(@ii0 hcOM1iH%_qٶ;(2[ 'MnqLG'5ݤs~nv>h8A>Hǁ]?Q$LîDj4hSm<ƉuK3kv8""I$qc=Ӟy& Ɖ L>v8WFDDI2b5LLyM h$RC(R3kv8""I$q7_M Wc7"$I~59AӸorz1šReCkA$SdS_{w6f&5ٸUvݽvv$k5ݎcvo],\v \ k2~<;@sP!Đ?&}awo'Itѭ ?H֖OJqSy=傹H%|Jr,:azGscR]?zȈI&\!:ZZI$$DMƟa ݄_ >C#Qev7TC5:YѰ߻kC4T}W9K]CDC [p͌uh`;;ƩC^Ll[|&XN?L> _I$.IyHl/O_p?)~<l/O_p?)~<l/O_p?) yLz. S5%$I2Ka$Zxyc1cv7<VboI&V$eUlCFOtgLf'Y;ãs ܧPY`-N?{cLflFRVG:I$WN:I$I$e`pI!(O BhJhJ(J:I$ $I$I$L8 I$I'I2xLI'ȣ$d# OI$]I-L8NI&PI$I$I$S$Lendstream endobj 41380 0 obj <> stream h~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!   endstream endobj 41381 0 obj <> stream hˮl۶ɶm۶m۶];1 nCІ1 o1l0m&_3Ll0LmӚf0l0m[,n KZҖ,o+ZVլn kZֱo6ln [ֶlo;vn{:qG:юq':NqӜ g:q.q\ Wծq\7nqwqz< OzӞ</z^׼ oz>| _׾|?~endstream endobj 41382 0 obj <> endobj 41383 0 obj <> stream hބV PWf{P ɴMkWP"#k[FkQʁ@X<%r+ AXYc%io|}=1U[st$6I/.^jodb.&!4">2kW!D69!QjjNԅpqqY#i%%xOa$ – (‰ p$1  Hb!A@b.J2b&L\!)rA&d)Lɲ'͐ɾKN-J nzAÊllmm:&p;cn7?=J;ڿTtO,wBP=oƞhkr UG~ ApѩF:`ZGɩTg[.`ʎ/,<#[޳#!a2n^ͦgJpWKP~AQZ7Zڙk)Z)7+zr)>JpU(Q8*(dq.>x-M+_U,j y]s*fl3BT?DHA42(O՛$0 d+Z@ڞ 9#Ld6\e24 GPؘwqXndYֺғ(D(~꣔ީ4sfd&c KհCX>oʚȲwyWt'{m5ե#0vGeX=WM[ݢgk$J8(09f1D~,>A d3O?DMØvCA.@NׁB ^B3ҿ|?Wu}' x:KϡR-.*ڵz"-(fA+ֆzhʁtAHC2l=Oz\v U#.r맳h? + Yks9_v W?4%CяE ġ̰j#ٌa (XhnLMŸ:F$G%.UAF,p’$P 09;+ɯ.la/;c66i}IJH7O N1%j$XV9 ^e)p`f4YiNEnXԉ*jI7Tk'$)+/gыHTZ8!¬NEU\jZK (*gxh >;aIJ^b=ߑR`K&4Y& zΐa[g,l% €']wW.3^a!ЈLb9h:(O#w:;-+isV4,x`xs^#?&<^:Gfl~v顸Z֊/H:]'7sX4e<Գvi'?(;TQjC%KKsJMQIHR`% qF2"whxw']:RCFZ*bD0\팓7Q<&ZJ\6&8CYJ2KghXP/rt{,T8cNERߨvX#%kMø~T鉓[kw D]W5YTo<G#˶.)ȁRznf,@ɩG@YUͭ3 ٮƒJrpTørCY_?$Aᰫ66Ɯ6-mZ}^Ge,d"Sx}R03`3뫒bN׿ZU/fDy!? Eu)(G*]H?٠ (4NjFQ%zNWhbϟ),c~7LsK0#Ēux@43 FHmDaƟ/_*ǪirgBCLMp:k4?xw2x4D^b+0W=S\Z]H?9*.ӽF.^ zF@2(NձEDv''rɻCِmy'vrdgJ;mVx3jy#մ}+g3>^ۧi1wX%[YxtkKKm#;#7` f8L?}SݮMƵ*e&Ý;߃S=)hQUKt}e犎M. c"FeD7E;3$~%2~{? w dWW]jn7,~uq0inơwo7l!N?yU]3܅^t~\YGǿ{}^0Cʪ4qęY Rڔ[[jzQBո,(t^ڱ~TQ+SO4C =e+Ƚf,e wocc*~O(ZUGTGUSYHECU%-K!`x,? endstream endobj 41384 0 obj <> endobj 41385 0 obj <> stream hpTǿM"?@ ۬@~ 6! ,$jEd!$Ajl[igձqZG@"3-`)evVGQ{]?i'ysϽ=m`€z]Q23ޒ%DcϭffDH%lAWz{ItGz` {¡wu|>Qc'^dݛ Y |w cӬv;7͡`mU@a`\7o~ >S#Sq;aqc81fC[B3R /_a^ѹ0?u'⸱oSjp Xva^d\8ŵ3P5TlC?!к `ܸr 4[b++eJF6n,^9 137f5Bqb]! VqtyxAwZ Wqǡlj9M78E9+6qmuǛ[nlGZݞ`V,/|ΠϮe2t8XbapdB`Rp'Ԉ1ׯz=nzlYmmα41ё4\%&0S$\%P$oA1ƱFt`)vZRUҶc,"/#H,!repUF n ,_@<er3fFt́AYo~8هٲO$>9e@x2,>S,xop"EL$ct9фohۨ_USe7Y*y~}Z]5$w1})Ѳȝ,}~ rA=_;(>)?(?*1W;3*NƎ-Tnc[}긵!?w_K켛4gxYb,KݥΜ [i;U<:?`w9+/<9,RyÎ>;:U霒LSϷ;vO Bj+nC|-,!J%*e`6Qs$ ʑֶ::;BCюnHrM$rPh]aQ[ulF;m!ֿnJ5K="le F)mK{G0ui4i&Ԃ^ۦGb(y\=lmb[7mYNmkT={_ʟnʶC#B]r}~mQ=TbƉꚚ-V˧Ipc:<\M$mZ?ٍPS]Uyblc[* [r/eendstream endobj 41386 0 obj <> endobj 41387 0 obj <> stream h{{tŝnUѼZҌF#ifzYeYe˖%c˶Ǝm o6kY6%!d'YI֛첲&,؄,,YB\ݯGc&n򧮩鮮WnJqD$'V{!k~PҲ (w5M;?q B{i=m/0!=܍ 6D#|۽-^"}۷3#d[^ۻI9\'oܶwf~?K؋WwcLb#Dя#1')vzWV]FAA?GND7~z$o/<*~I 2HF0XZD&V~b#ilX'ҿ 1GV&N+yЦdrxvIz->MhQN6N);N$W%woqPϏbt>yLN)X83=X;Ήip4p'ƒ'ԆGWNX9ɇ&N>2&OO,S8~pF}65`Q[:"vL8~RGO8s%,XUE~x_UPdEF?W֦ɩaTn_;Cva:TYŷTN^" 'cL"~%"YvĹ]hxPN @hv !@&H^xL7_i266y2!P8i6'#L#"T؂1km>І]x(d~GJ鿓F[Wyw^h¹GPw3Eln:'qa4yQؒS"uh Xpn ,gYs&=N_"Q :B|Uj8K{ YgfnW+H Z[!?s'ffk{ǿ6U9㥅|{@_?*L3ۈ8#q +8G.p `&-se)8_W(rA+ydui~,G5?41 g>B$&IuM{8 t7ʂx/}GI/}d^n }2^ t)CCj uS z:S篠7I>g2xyµFevϋ@ G}؋vьS'p>DҼO`@ٱ#\[a<]ȴO?\^?3pǟVkS58ǧ5}l#GRU'u\ L3UFR]O/ը#Gh!!!OgI #Z<>;GM㤆 n~@r l@ldsM{d߄6yÇ{y>'J~@A!hyN~!W>b1WE-3 0"Z(bՃ㷁Q EגMQ苎N5xoEشނ~ N[9\ -&6ROBȂ,o!_^s^ .{Rie"Ywe s9["ZFE!܃MM|H(?G@ȃSs 0e=x}]q^2i%<@'3 OS>ƚ7M(["9p-=[(e/bO(u2+eIϗ) %Jo~ Eo~op믿A_(uT@L|M: c$i `&!"N0p `:`$wa+0*}4v6;M}4"vw` zEJD$/u|ʙiNF?ɦӘX{8`9WyV3Gqq9P?M*GU&X&^>crӐ9,()t(>QO[h'.e|0PK;۴jKamV/|q\.Gh2y9DbLWZ6m`f;7S+q5m?\T(g/6epEPR`\mIOdS惉ֆqc}RaŦȈyD]vqUuqsMmvv6%Ȋ% O 0zn0JF6+, ^u4'_`{^ !i3D F=GGpIãqx48<Ghsfp4rf meVmeVmeVmeVmeVme錘l衛(Y :Ʊ< j'af2PQD 7lkhO+" }'9e+9ŵoqH;/xoXcĎ6yy^xЖۮi H)6սuVS`1i^}R=?o?/m$HrO#d3g5y6:g9,q2kմ╽M}ul~q.+?*_}65r /.GKrK|cgcCnUG4׶}]eLoh:гঋU=a> > ;!0|Ca> !0T5Y3Ƴ(qϫHU86'7(<ьB+6wBW267i&{$;e#Y~5u9/WW#9#y8V"! ;u;a4쐆ҰCvHi! ;a4\fSu `u.VX] : `u,^vVafTq1ⵊ(M`֤2H/2H/2H/2H/2H/Nzyot@Hs }ρ9>@HSIonxf̩~ nss,6qU|`(8m7`Պw]CF%!F}dwb%FΣͨ<[gR}ҢrZE-d]$*qZJ㿒I애⫅`@n[vr &ruZ3:RX45 ش:Jow aM7s,{G,2?4eY˿C_&@mW3U$BEHȺ<7M)n B)n B)=pS|0.T:!fZҿt$3-l1n í9pU3ܞ+&do5Phm#-ta%%E5JۓFj*DeZ?7ϕ662l- '@Jɦ@*A,:{yձB;`b | x;e~|͠|PREߟIV/_=iCz +mr҈ }sdU٭C\tNE'Ylvc-.:|q$>IXU3m .]-y*L$S}h 'p,#=σyp<a<8xσypK@Mf8_ J峙hcTXt]૫mLXbX[v,[Dmht{͂$^1+6*gb~CuOx1 E /O~L> 8\%賤Y>Kg ,A%}ϒ#?`kk"]«WN]u \u \u \u \u \p ]ǞTEtzE@J > |/R8"WKͫzWULiQ<-Q9_MO/<1Wb~Qmmp _>g}߆\Jli,?m&ΰ1=6e 'c䚗t_sc3\%7=!:cwt=ڐyɯm*zeUV!u}D-d8j6 8"ߖՔ6 0O ?a' ៰0󼵒4`\tڳ>=^|pOw]>w.僻|p]>/vvEe9ʟjݎ6?Mi]]ÎtcoCຉ{WHM?7ԆMu9oሑZT"cfVwEռGQ`,&nQu=4FF~Y40 nc&zE:FԖM[$2 MB&AРIh$4hRנIh$נIPP}&H>9X$aTⲃj*:CPo!ɜV#=]O^]L1;BNaS)bv 1;BN!fBNE]Y&2[K5OI݈}0?/n3<`]!՞+LdۢX>-\aNaODWf=t0Nxtؙq]ٶ=\@,+ Қ;vwc7r.,/}.XxbAwdp`LߠNs:i,凐*>S#4jn4>BeQs1pZ}~Rtb))P+j@RV JZ)ڞ:grW?bm:Uf`'p8 |I_K^݃^o?\$B037>`ZLi}0>ݴ>֧-.\w89~9^t9Lį -lqAjQG-4{N70b7wQ_J. -1=Pe Y[@B 9ȉ G"Tao 8>c:CIK"V 4AߔϑV$I$L$L$L$L$L$3õ[<_4`&h aF&h aFt0A#L\#hf^Uy0y%LPhj+`GzA{!I#zD7K > |ȉړ!SZ,^Y: xNu56 +F|XUj6޺ /&U®`(4z㙨7#)v%3A[6Pn _+%sj0|:ڙΰla;bU찊V*v*vXbFSUGXQ ^EW&:S- 8轳 E]nǀ+ƨY8 @QD7ljޠm:c X繜wTxe fr6"ݹ4]uJd8 {(Z~- !Ȟ,=>;V[cSt=RM^`Tm3s9︃u뒏E%zx;#mmdôA /6V=w 5ynZYU_2mR9d6M>ݹl~s[EpO?.6p™kͽ} )@cllv? i]ojV R9(wPQ-R9| =䯽=!B 0i`8!ֻ}dv!eQJ$!XaT#\|#ǎ!D Y14Ɲ>DHjB~n-;)"c+[Վl̿w.ŻxO /;oEi0?Or#BJ'!bs )[ېe]C+W]3v| drLM_y%h!rCu$iĚz{LbŽ|"YXY&R$ȹגXm#o~9쫚/ė wWZ+Ej`&eV64Z[, ie MZـZلǴ2rl۫x(ypC7o;0ڷȁ]%]]&/KwLrC3{&Goܾ}ђtdmg;f`U;v$ݸNAz[{$9f8V_.72go8yp߾_4UdgP3>b U$])zXU^ف-Lꃸn1IFqevI ǧίށoW_?pdqCڊzv}f-{j 6aOChy~rY~$Zcǽ'p>"7;f˽ >rßf5n~pz_PrŤ9ck_$"N]|{gaB?V]e ^eendstream endobj 41388 0 obj <> stream q /X1 Do Q q endstream endobj 41389 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41390 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41391 0 obj <> stream Hn7)x)]lŽƦ1 AnHޑo!J:0ɿWo~y?⧗ÿeG_[iqAO;1\c_?/wa~8nq7\p5F(1},"E AF1el)Fro/|N^L' p#/?_}cNK=vRj$,^Z)/kĐd?C ]`?:$D% p,St9J)JXCaJQ8fk^35Qo7zCF!-QozǨwDc;1QzOF} >QȨD}dG>1Qij1-͸2EPkq,ST=e1Xĵq-eQO\Pkq,SzZ͸2Ũ'Ռkq (Ƶ8)F=qf\cbjƵ8ZV3űL1k5Z; q-e1XzUc@1űL1k Z01Xĵq-eQO\kPkq,SzZø2Ũ'5kq (Ƶ8)F=qa\cbƵ8v,ZUc@1űLQ8)ǀb\cbZƵ8)F=qe\c@1űL1k-Z21Xĵq-eQO\kPkq,SzZ˸2Ũ'kq08Ƶ8)ǀb\cq,SMz9*- oVvZgKSJVHzs^Lդ[qK8sqfaxr`j4 6mw3ݷW'֟7xw/j !Lַڿd}解x׍rܨT6Q>Qg-pv[ئkT}X GϋPpKf]([ke9B%JTT4"*IIdD S +P*Rʖ]k(ZJ%LB9OD)o0=T0 e;4"vT}ߖJP}yJRk U=0$U PQiDE)U*RJb*ILYzR (Cr!6S2Q*K T$Pr(HrRޣܛ i!TT8_C%EdHvJvJGvCViCS|ړF[cH-QVwXk-"=r|wgCyڙ J4w&8=iSDjBՎPkwT UOҘR T=r=0UO̎'kKӷ)P$)z+z{h)I&rh"$ͧ -m4z8E4jwv{\j7TuBOQ}-UQ US+4TU;LKIMڭvjw)U;mGՎR~'j=zJܯIGS$ P))Ok=YUOҔ'~CYGvh=4d֛HKIC뭦;ToH <ݡzj(hͭ4qz l#_o #qz;m)Ertކ{Jܯ7뎪7𖒔r37_ eCδ~tTbi)E40IBpGha}>jryp"48Ϯ?~y>oLYgRŋ:6m|'G&'@m{G%y;Y$z,2o;`9f1 Qߟf7^ 9)9+XWGyFî&"RiTh{1>:`Y&Ren[u*wy;RZ#=F_~?_w~|]RK Xm*uڲi\mzkmANC\[pʛ5W[p )~y6-ݨ`\F!cFK!S3~rp(3ՉL:Oj|4V]M |ZeC^6Xehi"$Kd5V|l"1?'.ϣkosm 뚳3&0Qh >s]9ٷTh??N/1}%4هIt//lg}?xX˛|vP~jOe2Sh9:Ol]p{Fe6%W^ aC ^z\}3~jz2Qy<v; K_WЩRXe/mMׄp&@AP2_7>L={qu`xԍ|{}6yZuZ˗[:*@ +&2SȔf؝h="_`ɿ/r!I\%`lcbG޷}[wFWjc vSw7o W|~]m'omoXLr22jmr9U_[%ؾZ",Vy0GL/sݻ٣AQx47n{~LV#>:vnfzAX-o}?I E<i_iq.zY@/$ ͲTdngac2Ds,܃R-$Nw^rlqmɂPEᆬm\by_HםJͯc1Ea/BZex;`< ;aX#a K( |CL(5'r(℀utYwn@YYEeBҗ;c%#^ݾJ ]*se%, A[&,',dʭ rJb y}Ѣ'iG-r"r7Î`,~)rp#69}1` -xh $gR 2xRo73N]|z%hH[=:s>xRt%7}T;:GU ERE %t4*CD""3q5Fn}5 LI:oEjO7^@mM iB3|D*VbvnyMcpKBsC?rP(DrX?9%9^M&2ns|V2x3\Io뗚o:, U@SԟM}T7}Uы9vdNan(K0~iGj[*H2g<1 Yrx+I]4up3Mk]jz4LAoi϶A;p<4Q`n -w&Yܷ2pgt诧 RY + A?YBL*w ` ~]GGCO3Sk3 $E+n\d?\`QK%_NFp8YT4Uvy8t5? pjb0o YR'Ek? }_cdjWuys ih Wa^qij*ZTCT!պf㪩Xz"u^"sc MYt,xbBµuG芿֝" 4mkw$2ݡm:o"Xp([_(C";֎ V<]SI۬&QW^Tye=ԘAu2ѝ{}z lW>]ulM+Gӻ؂݉:Vk—R[գs:?[iE4xp1Kiqpj RB5\_ g!2hcYe^CQi2F?׏ApLR P\ߗe%Z/DXefU%lRz"]%%~@JAJʩE@Eŋtƽ;}*Xr.MT#e{٬_|"}( _\ Qtȓ2˧EjD (JҬnN"]>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41393 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41394 0 obj <> endobj 41395 0 obj <> endobj 41396 0 obj <> endobj 41397 0 obj <> stream q /X1 Do Q q endstream endobj 41398 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41399 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41400 0 obj <> stream HWmoF_}g}ˢqus4 aQɴTTJ%YLCIJr3y7ŋRΓ *^eӹUEtfUW'6I]bTz16b5z5356ɫ*T*$ē*5UZ&#q!LG޻hǜpr՛?Y::_nzsVo'E$;S|t>pAf2`T/$r-~NAT).?F%fQ'-sb,I8'HN`:A8YHÈn4ϱȲ-po{;Nw=p{{>3>3>3>s>s KK>A2#tϱ{KXdrXh{Z Z˱{Z Z1bcZ1bcEk-h-" cEk-h-Lj܋ZZ-Z1bI,ZK{Eh-Lj܋:Z u,Z u#p/Z@k9Y#p/Z@k9F,^ցr,@k9F,^ցrXh2#tϱ{KXdrXh{ZZ˱{ZZ1bcZ1bcEk=h-" cEk=h-Lj܋zZ- cĒ9Y#t1bIAJ'Ζɫ*TUFUI{8~sAUdte\/q)r͵dc}FQ5պrKմ$)9fZC.L)cBZ"c4-{r1|Lj%8F3 @bٿ0đf zG7:k=?э#!f0mzR.ɂׅ+4O;5~n4=Ml/?&rGg<Ls.ޟݷTd\/E}QBn#80Ӧ}^57Wc@ͼN3ʼnrnn+6J]lEQ/UW+3u~WcB|ե}u][v5:*~]u'W~O=؟;8hUo7y73Y׳ZOvO[˺ݪgN`'h]z&ղlM;gt<QOt3/GYiQUYVaeƏ?) R*F|wbU^~4 :d B&[Bך/N;|aph=/OJ!o9#2*9qI1=\ZHc(tgp5uo0X7Q.$BT$WiP7{y֌P4`/K&M&G{2}}y~kD5(6}18f};v׋g\|_*d Y.8m<QRúQ=pcp/^."ZpE?K@E,L됃J2uxʉr:>r4,hw|ul=!]*^4RQ1Чl姗r"9 i[':Rh86d_noq[i0N嬂̢yW("=lү~H ]m Dd/)t\ViH3.MwHj;lFD.xE@+~OtGHJ9SVvoM ;khM3lP9$IVb%~7߭cTy/2[P9nUuy(FME @)䌥 k v_Giۯʩj.;P^ת1Q|i%)njwi1 8k،?LH.a޿?Ѳ_2D&ok"TId%YZWh`C}p^7xx\niSo:+B sHS$4)8b1"Q2uiJiX!Wru51v\ߎ(4tfgEMsUÍ dD-@NS IQ5q>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41402 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41403 0 obj <> endobj 41404 0 obj <> endobj 41405 0 obj <> endobj 41406 0 obj <> endobj 41407 0 obj <> endobj 41408 0 obj <> endobj 41409 0 obj <> endobj 41410 0 obj <> endobj 41411 0 obj <> endobj 41412 0 obj <> endobj 41413 0 obj <> endobj 41414 0 obj <> endobj 41415 0 obj <> endobj 41416 0 obj <> endobj 41417 0 obj <> endobj 41418 0 obj <> endobj 41419 0 obj <> endobj 41420 0 obj <> endobj 41421 0 obj <> endobj 41422 0 obj <> endobj 41423 0 obj <> endobj 41424 0 obj <> endobj 41425 0 obj <> endobj 41426 0 obj <> endobj 41427 0 obj <> endobj 41428 0 obj <> endobj 41429 0 obj <> endobj 41430 0 obj <> endobj 41431 0 obj <> endobj 41432 0 obj <> endobj 41433 0 obj <> endobj 41434 0 obj <> endobj 41435 0 obj <> endobj 41436 0 obj <> endobj 41437 0 obj <> endobj 41438 0 obj <> endobj 41439 0 obj <> endobj 41440 0 obj <> endobj 41441 0 obj <> stream q /X1 Do Q q endstream endobj 41442 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41443 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41444 0 obj <> stream HWnH|W4f4phM2Ʊ\&Y FlJCRsX,XRuuY?S/^v ԯz}iT_TX?2*gUy*w~]V\)7Eה ՔZUgznVKa@*M6ĥ4S6w?jQ, O/ٻ=֏cs_]ьtze Sv F=*R& ύ'ڻҐrRI G(,ŀ5g Y޵),#7̽ -so{;c1>dC}܇s #>},Xp3>a}ܧOZ(-6ZK1dqZ!{Kh-Ő%g5Bk),=kZK1` Fh-Ő%g5Bk),CFh-ŀ%bܳCƳBk),bZK1dqCwO1` Vh-Ő%gBk),C Vh-ŀ%bܳZC R Y{Z+bܳZxNh-ŐS XBk),b),C Nh-ŀ%bܳ:C R Y{Z'bܳ:Z!KpZR Y{Z'b/ZK1dqZ!Oԩ UgQZe+/ |86SuqA0Z_'&"_ϻz `/j~{U70|_%Ig|G%.o:ЬW@UA3+zx_TEq#\^\fgqt5*gPa__0F?V&yբOWQ`z U37\$^`6=1?Qaj})f~ogz%9?FvXL*N6489^xɴ*_޻TV3kNb PyUwEz!0t~ 7^ngbyN=*] mjjNl/Ő ,-ǴV(hL+B ZӊiłV̴bA+fZ0DJV*hL+ReE1dq-K ZiiAK3-#he-{#bX{!Kb7B),A-{#bX{!Kb7B),A ŀ%bX{!KbB),A -{+bX{!KbB),A -{+bX{!kQ XB),A -{'bX{!KbwB),A -{'bX{!KbwB),A>rO1dq-K=ŐŵR?MS7<*3=7 V^É26~Rvx*M#|Y̊?Ց9 vjU7*_8N-jY﨩 kGp;MiLm_e۵>c]/#>IfܢiE96*3iyӿ<;n)=/w&W2?ЉJڄ$gSNi_G;fNoXlo{@]4>NE;N}zW\ y_xNOiYOX[)g÷acrqx̂N>?4&" 0)*igSGѧK&_1&xzqxtLa6{b^a_q,ccP;Ú`Y`n>Cγl8EЊuO ~4' ÄpkE_ }Acv>]_ _5adn־щ˛(817]̚pgڶ.ň}ICm‹-P\&ۦ!'8=&[K!|χk8^P~残 nh=k{pv4V)GY?\\f?yBaNlj)́ n_;bxJ3Ga]t?nKdSBo.q0͊F~LH-Bb8|4Pmvj7%\FGC{%'7?<6~%>4jqa|~:TB=S !(!"顈b emVZZXڮ_ڥff틗?>RnԼLo&Pv_MYujo&p]z@&7+H)j}4?m[$$eW@Vk2th5v%|hF9 ݘ˳pxd0 / Aӥ-\&Q 1#t1tavO9nnn_my|MPN;XAz0Cnܧ ea7`bd99ofǣx5{YqfOw"zka_n+e'`) p(2&.9P1r05)SwyBtIx0pTD;Oehw g[ (+ԆPGH)Ücz_6 ڏ6҉2jvWI k>P,[筰J<|݇IP5t{A&a4qX"tsc4< +< U~(hFCT- 2a\3\W!p U \%*qUWŸ*b\U3Z)Wr.C1@)K1.%p)ƕ \.L=!Jb.L=!Jb.L=!Jb.L=!Jbׂi Q%%p1kA4(^ 1D \LZ=!Jbׂi QӽtOc{Ct.{-%p1A4(EctOc{Cto.{#%p1A4(1D \LF=!Jb7i QӽtOcsA4(EctOc\uR׵=Y6aj=n)~v|%cx%%ܶüOv|n(݄iitR-H>q5OCDM4ng;udVe/*Sendstream endobj 41445 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41446 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41447 0 obj <> endobj 41448 0 obj [600 0 600 0 600 600 600 0 0 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 0 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 600 600 600 0 0 600 0 600 600 600 600 0 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600] endobj 41449 0 obj <> stream x|{|TսZ{ye&G晙<2I2L&-)-GCNӸ_rKW_ێ GW]tڴj嚵qZux:w EL$r=QH QUX/}SjT]ؤͬ0ʭr.eYQe VWa̮Sf興hGnѹSy5V6ff(Y?; \Y\%tiFtr9j,ҩt .ڦDSdmGDm$҈6#"/t"@y/{DC6kϣw|Be>7#Ƕ,x"w7 D9N2cO,A[mO WN6V$;ˍ7@" ۜud6F9F~+/[HZkFHAMEj{RCS} \s"J\Y.> Uz #lSZXY$'T'ؽ Vx?+QWV#"|>m`m"9Ο3vcP$TF9 V6E1Sbe!7 \,]Ԁh+mGD\Eˇxȁhp="/=/ n]gR{3y(&OO %ɣ ָay"0{@v.yk2j#|yχgyQcX"κplFX?y/g"!rxNr;9HnMӶ`5-|4+6^D;mJw*x.xf@A|蹁5&湑@M޳\$9v]{|-א9+d5ǣ|Wd),ɥ,w,~ /m,żQ 9Nd>Qs4L@ay ޥjAM^a!}:*H Ib>foI#deQm<-罅?oA&^,>Fi Gd&}l~8飷Ox["/<"|/ rpDyD%ZC^Fnɯ%BENȈp55kr5tG|l N1؟ҬO BPx." t>r?HU( ;L{@5Mt,U!QUt(}?p+|t x?7V(z'o{i'@q6q8>&!1\-" A72n NGEJJjEl^lgp2&L9bs{8K*4W}!zٚXm7"$JDVI!8yɓs{iWT''7x:uj|ɩXT?)w#Sg>E<^4Ξ7?kz# i/n/#EZp݊ݸr݄H} HAb}!)H1\;l2)U?땕rc?%p]4 ͋oCt0(/Gbk[gҍH 0w~PǕ0e\Wd݁@W倢NB=$p?%Q#i[ ~G3ՂY0 dաDryqEF/oFo +/#qP$J)46pL'.H7=~ M4L]3wNe~z{b@\+Z$IsV^muc{FTY2FeQ6 ʘ<hxppt#LJ.PNPZ3(eːC׍tLQJWPW96ʠd[y7~olOlwO[^s}׬EvUJF}7փA?^>~.לzGI@ݧm߈SrLDS*Z/V_hQvXols5dbhCM̻49ӉC31iM5C#C@Q (ʱ4 C2qV5M+`HW*G\em[ pPyU67dc ́=+y]zivmj 5tz9fO5^p-9>Szd-_:~|G"gj4)ΓT(uΔ&KJ)?ِML#jCsv|kGefҌ ]B[:im z6A_VQbuR^Ǻ#B&|j5}ꎉÇ/eB7J]rqW)p,}PV9=C&GeDU$A>JmkJe򻷩JߠW䮩QV+t=ⲕUhtb5`¨Mi4GuUZMJkPqOQV+,YBHP[Ĵc MnA,ypa\Rh8z5AAdq18 b0gbi w;b:-sH^~$Qj "]"i.4-9}W+jlRTޢaW5!| Z$3HZ4itJלVN@]Uj0 6%tBJL:$=I@㵵X}M$vӉ6im,(11KWƚKrN4ktX @{|$6Z>l5]KW,3fϾ ۇq6ɦxc}P#33噁 5G&'z0D&餃pC@:е~)LdnW6 Ѐl % Æ 08Jlj@,xoxF>)JG]>Uy|]JS[RY/49R"f>gѠ0!*uF99:  R\%^ Za :۶H/>,# 8@erC[b/ާW͑dsOSud=l%in2oWխp2 Ԁ]\V$Z-Eq=~«N TTKV!@ !A)j!)hR%u4hLbSG8)#Clü(񠏝=l51~I7ܫCT xٶָZpxO&0awy Zux>g|o2LDړ;ͥ=n_:5o0SoCFݮ6X葿.XY <.#:xX_$A[(H@j5*h}DŽY5 q$ICDcq(0vlJd4"@RRBekVӓt{f,^:<)O5b#?߾a{spD¥SLɳ&3 ͽn. 2*heҴLvp&EB\-Z2O^L/$vDi1"6Gbsh2逫P-K\IsѰL Ce^eW, W7rqhd aɤ2NFODB*rtU'*sEe]Uи@+/{SuNm5ݦ5jȻh4jX̛Ls5lwmG{7J8aOj!wڱ}t"j x\Z~,jn݀-BCPl  >qb UR2PNC*|>ٵ"ɟ'썹V_nIIo.nnwJ5֚>f._qV4:J:8SJ͜HԠ_kYΝ_s:IgWiSJ a2>Q _P*;ϽTޘמ]pKtś6,§z:$3%O}"9 ;Yd :_h zustKt*il.V!Qm48B (c g9' 2T:H[α,t]7>S|S}>vE%:s)5 ^eeHjEJ(#,[N}'[}Z>窫̻ l-3{Uk=tC-;.s]GKM[r9Ӗqk+T@/$Wj E>U+Π洝_u~FIA19#U0kTK%M p"Z;Dw3OTn)U]1gUB8[loȯ'KB$vPK7MY(˂ |K!ƪ g D eM*ovA2ĜO0& (3|Éaha2#(֎8Kek|(/=wŊsr tCI|Z7mɫw}P`9ͲB1Tlk:l {N(WTuM5tMX/REE'W@Sr&PA' w*j\kuh]| \AdIgj7éTX%Y)dcl6OR{,py \L:oa1j p)BgTb6LlTmˊSND-FѮ^yyGږd8+ Q"W jtp UGϏKC>)p\[m)@qV Du_/0Œ! :e)i 830 qlUp̿λ T!k sUh&/X?3cѦ”)ec@,uCvs۾":mRWk9ް |kɠCUeʈ2;G>K FNrk+&n&f d[{9>*Nj!LN DU_fQ>i}|_C<3[@]˷n& OO[B&+N q"*%1A0UAqsMcևmVIb.Um? v*P2-aA6,SY{oT|L:-D)D uW/ݺ푭2_NL@}S>oj`k/ ݉ӅF/;س`a]yB ZN1|Oՠi<Z q"iIS ̳őq&0 !sb(˻l?6bTByg,C{)BUc+aCks쎃<$'vG&zݩ"vI}GEXZd.  ,ZUڋ{R Ǥ#q^]mBvhpbow-m4.1NSSDkOv_O-c\ߓk A.-{`q& pϒgm];W-(h\^֟˵j,oЪЪ̅^{饷b*Y꼎j ᢜn!f7H3FŪOӕhKxlmZzI*wVB--5g;Zj3ujρ=)#M 6xp"مAFS⮁X(T8x|p 4gWƱt-^$#cq)L{*<˘BO|jk?i-3LeF>>3[#=Z)I2< Ţ3x `p٦53=F,*eBQ}¬XIk t!,5,Yd?%WƜd~)UhNS+5Trjr P@eքMji"9kM+LJ8zMbT1X .up60hlf!kh+eL&_Sba]< #j}mC)VF̐EINe.!%=nEuD(,Ec:XG: :XD4>^F Æa.sB%3*dpHWl-+2!mŗq"]lߚJm-.HHg5l/=y49 ܟ4 Dȶ&Er>讓M/$%sewLeȆRo #LJ6 }`sfz^ghԂ]T?WsJ k NLzvh+$RxIdEMi>2f=`$(,`= pK߹+^9#}/?{{׬x5}t}w nyhׂ̩DޥHii3ICEK&tX =)QNS Pm^co2)-Yi;ꤪJBJ^`&oJ'L$ vrq=5cS,å\ |׀mʓiǨ!g¬L!?֚Pq76 dBFMӆoݴТd@7Xmg-XЪm&iS+z|l@w@w >!t!?ICR)?0Jq ]cӢI-cY?BVH/;=+^#Z@ǣxh <= QbrvBo+Z&^?,DQEf8Z&. \ljct]ᶘXX)$ ^o }kؠ=+&-\)?Gch v&jRn[hه}M/Mޛۼpym!6M9kQFhyO;l#bni}g Խ Pٸ]چ_\FE"vy{ j Uu;hD`8Xmd ^5 .y9q]~*æq/frV%>=umuLi'K$S FSߠEzۄlc'.3C]w1)dϊ*Ė=@mew"kTdlH=E٠~D2B.W[% 9r㽅tvl#ȣ95ɟLc"_o$C?dܖy"tu=31uefm/]A,^'J$$l5Ьl4=uV]/6֒uU-ўӨ>4X?x+_3B_żљb&S%EO^*uSRX[aSP{\^' VkVϜLؖe҇-rF&:56:~ mlFhĬzu,b' qqlpRr7{^I`8h w[A3:.Di0WZJCjx3fQ_{nb>uS"t0d p-V6J#8_oeJNJϬVK3+FŸ.Vw\1VP$?|.P$4(N-l&TMi~>lj[HvZkҤ&FE&F>cƀGp0c\eK#!~l9 ԹShVn̥Ʉa<ѷW7{o &Ao~,ꚹ#vݻ~=7‹?N@z-ty#u؃N;xO&n}[:N%kI*0Hp3&/upa6Q=neE/{ۓz9վ:[f9\w{&R^Xd"cl_;7 "FNaG!:}@JH-9rk?)_36Bl(ﲊΫsclcr V:zʫ6dË |N,?좋|wG^Az>ODAt{߃4G :Q U$RDq}q;' 0$!20c9Ta&Q+(6%?sgZGbsofX3Tl4ref ْ4!8*jAg/,sZGlG v(lu}2f@׉َS˷ٶ6ڰ/D83Iq!\ Jo8bfQKA"BIp6q5TK4&#q: d+6kP)ͱM*(~r3<'G#Ϝ< L־bY"ڷkQ^-.aR)Y*eXzrįByڣIj8WAA9 B=Բ7X;v+eKsB{?9m-;0)qN4* ch3)}ܾby,֋S |@֖&!l<]֨G5P}$Z{$TN|uHڟ&<5kY ihqYP,AeHʅ==3N= *  ޜ/HՎ<ɧ]y;`a0Ӟ`//~[4=Z 91DjBG_`s^c>~sZkj%=|hE6qNjSU4'kn@c=-=!9?]u=3f_| m9w>rGo_.+Y(.ݰD~t}leƤ/gz-f/ϕBe{av; PLU*WQ,Q\{y~&󁯷sUɍ²u?uӨ@c;G?voȟG'< g$4T FٮGԱA FƤ-Aݪp]$ ViL&g@E2ғa\`:+Zɉ3ԭ(8:; ty/*muR?/r[~yfl^,^,k`nJZ̓z05o;;W_}=l!|z7_-ECVfwrY-S48/ =j IYȍ3<- eMg^yڙ7xYuKLOxޗRӰܵ,vzqG{e%p> ɇ'dOk"j%zVz΃&F@)?DhCx knG.s~ !@3Qz>C~)HG 98F' \ 0s~S;2.X`L>lqPѦV2OeֶBЪO|sylw&YbpkS%3H;%yKw6ѷG(-lXTjc8v{*oWJnO7d3OHJfzz mܳbFq؆ >ܧbMC%(i`qpAm㧏˜oTk(Ϙo1_1Y= >`{ϵ7޷8ݝ0d6C,ȱm|Ű> Xx,ؾxfގHcvԔf^nLRii|U7UMdXzFO_ D>f1M&:2 Ibiz1|)0 +.rUidoT"a:∹͆!**REdCU2lykQ.չVjv#rdh)TR p~ʝFP%j XO%-^Җ/tK<~ 7z'[Bs,olK% "L$ұ-["1'Ǚ2oW dF)⃿%I~Z4_8>O6jJ]r(Z&@*Y [,uG /_NF˘`CvܐknzW-Nq(!8jkHj :)z*]N|؈QLT5aE8c^3C]r~+|8Ŏ:}_ޛHǂ3:u/Mz<5p:'0#Ե\Mv+1- ¾N rpP٨%b xZTcG_f#,.]={BVc V, 56俨UɭRPcXkQ[UH4R'7,|7pƊ7x;g~{lj՜՝_("jIHVSUun8|uf6<`8 7u8}8Nr"_\@ϙ3Nϼ7?ܳr՗-:ҽ%<|ZBچii?0qIB2#HHs E.mH;# #%$3R)ԋ4i ZBچii?0q! Ɍ@J#"AZf!@Bڏ4t?P"!Hi^9HK"݌t6HCH)>U@zLw\?{Wf1σ<΢ǾϢƎ矌~jxPcq̸:~{:ҏza\8Y'ww11'L5SէOW>Y?g\QDLYs玫W?h\}`\E:/W_:l\q 2YկWr\qyW_3v\}ݸ5WkWcݸgׅ]^=endstream endobj 41450 0 obj <> endobj 41451 0 obj <> endobj 41452 0 obj <> endobj 41453 0 obj <> stream q /X1 Do Q q endstream endobj 41454 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41455 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41456 0 obj <> stream HnG)ҾH ȅ#H`Eo_^vaw⧷V}^myQShUT=UYm/nw7w6_y7?>owۇO~;8͑OTfҳYV=(կ'ޫ8;\O% Te g av JPp*j712VPoz'wL; SzA}`ꃠ>0AP(L}G> SOgA}f고>3EP_"g5kdJq4P4V)*PBXjP4V)A=Z+T-%T-UJPϪ UKcԳBPBXjP4V)A=Z+T-%T-UJPϪ UKcԳB~rBXzJZWOci (jiRzVNZUƀ*%gU넪J Y:ji (jiRzVNZUƀ*%gU넪J Y:jil?yjiR\=%T-UJq4P4V)A=Z/T-UJPϪ UKc@ UKcԳBXjP4P4V)A=Z/T-UJPϪ UKc@ UKcԳBXjP4P4V)ƀ*XI!&QxK)^iO6Ƽsʨ͇)/lqYE_ff?xݼ}P˛ˏͧfҳYVaVחh&Uw.Σ9Aݟ/9owM1? ۭ̿{8{n3<2z#f gGzwUwwWԟg>&o풦ĦϏ䔟V|Uvؐ|5ُmcaLu|~r<&9~kr,J)f_1zBc Ʒc R93*DdH%81AS*GF UT!N@cN@s20D̜W UȬH(,{P0K3@\M\ 8΍T!蘫-V߁J*¨=לZ**QQp襑:8NB(cLԔ*QB(_9uea~Y̅ʆQ8w#_rbȔ*QQdTԯ_9,E,SWKb:mNәe:r{0W|Br,tα,t.WU罥Tb~`(2qE] +YWgKdˎe!|4P~O*!YgYu&~X9Q*3`$YxT!~y"{eJ%>h SqG]3w5Yj T_qH vÞ|/; ' D)ڴS&n qMeOijN; '؁IN9Pi@aZ(Z몣 k>PXgHgGG2PLy ڦ 0G6_ &UѸY탲=~QLl?[9;d 0,[AQ^Z]hg-|pq,M_f9ֆa*j=?MXP۫ʭ͜g\Y._/]twٱCqk`}afSARo 8t׏W {R/pPiFʞHX5sk*Tò ޟ"!Oȼt磹K|հn> p{?S@sx!zݿ~8!O;h{8  Opq 9|,|wd ]Jb1(^BIS:6aN{RtIeZ0sDPGi*3, G43F]ąhI!*0TS !8Y"2־g(xN,ńfpl8?"6AWʞ5Q1>37)_zǐ,#&|?Kt՝k/yV,.%69]UYLƓ,2fRBi7(9iqg2,ӌs37SY}^;NO/תVV>7].#~Dz7A [EA8 WlgN6D>`To>@2ArUhJN#9F"BF(<"׎@2~gqoC~x߾|GO2[endstream endobj 41457 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41458 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41459 0 obj <> endobj 41460 0 obj <> endobj 41461 0 obj <> endobj 41462 0 obj <> endobj 41463 0 obj <> endobj 41464 0 obj <> endobj 41465 0 obj <> endobj 41466 0 obj <> endobj 41467 0 obj <> endobj 41468 0 obj <> endobj 41469 0 obj <> endobj 41470 0 obj <> endobj 41471 0 obj <> endobj 41472 0 obj <> endobj 41473 0 obj <> stream q /X1 Do Q q endstream endobj 41474 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41475 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41476 0 obj <> stream HWio8.`?ʀ-K9vIf0Zv++}"n5YEXX|<tG9L_?yBo߿Eq 1Kreu^̻S6T?w}u+P{n9{+zYV[IBVb,٪[YMu߱+>#V7}'ٚMod+h s(@q=ws=w p p pac}BO >q'aS}JO>sga3}N9>wa_Fhm_qBQ.{(BQ.{ۇ(Zۇ(ZN!`猪}"TkEwT >DrBPjmj9Zۇ(ZNPCQ-'TkEwT ھjm\Pjm\Q.{(BQ{GPCQ TkE!`V}";jm>D BQ{GPZۇ(ZA!`V}}r>@}r>Dm>DƄjmjcBPjmjcBQ{G1Z(BQ{G1Zۇ(ژPZۇ(ژPCQmL^B!eoE!eo/(b¿YەwZqXAҴ`ֻy ]\-?%8(K7kjl83BC3 u[vr({ediWNQFu3 0m{&ZVv&XuSf^.a3[c1o^=QEcxHټ1Kn=f/_aԕ|+ٍ2'!{xJ򸘗؍zB^Y|d`5@;|һdw}gV/oI-Q9IflU8<_POЂE-ӇE3vSx~av[KBH^t'vN=}?LOcRID %EaTƪk +h9TFEd1p9ꢀ+<wngC qBDMAx5XpyQpw~OJY-kPgq?Z9/zMjKӖlnld Jx`͆NjYxC7I3/Q=n%^(YmveWIVO5Q1^)Q_`:xz}j%@t)1_4ES?wNy2*6T&9AK>Q9v5ֈzgpqE lA9 . 4:؏p'^XѫKvrdTJU!"qʲɲβE'o zYb+&&Lsr4H1@:gTM"([o%fZZXߔD'<;SyqF['PhBE:QUo?In1.fLJv!N jʦQ౽SIxUޗS]p(SYaLJ" qQ :khK@f^]iou\}M(1O←*9MjP۲qq58W˼Kݬ8ET0:wsYhfQTײ^t5si~BE*!{|uӒcЉ*P?괄K.i-f1"Jf.RKz ߢQJCǰP,N4~}ZMnjW$$ /,n[- rMLPxiZIl>dbAh)|.Z\|VWDT5`]"խLr,@הGs8?\pU1,J=ߕg"NDj*["r30y eՄ=ʣy{LЙ [s\kKKt]>t>U#/L]܀8?c>S-nėfaFUa#MӋb; HPKº.4YfޮɩRQ::S :`_UhK>xSy/')3Eǽl1>N=ʵ*D9]Z|~աi4J#ίj(TZPZzۆa=}슢͡HvC/F؈ #)J)zB$ER"?}+xq2 7ۍvgc)TA0b!AGZS -S+B4,= isHܡ YW:2JP ߵR;YnJQ!`CGM?l", 7 8Hv韫2{ InLeր+P&"IC\|$&.J+*T.t @F-(>u0yS4<I0;ptavCpGr?2pI :aE{IDNϊTƹᩔрt9IH/\J J:ҳՉv4 )wBuZBNmI0Q2I) E2.fWPT˸u&V_oqlC'ύ;ȹn/4eJ{_`57 f;؜t De5 K/xA;e}tH%%غ(dP ( 4K&U p`kں2&^)>W7/8endstream endobj 41477 0 obj <>/P 437 0 R/Type/Annot/A 41486 0 R/Subtype/Link/Rect[129.600006 663.229004 198.179993 682.908997]/Border[0 0 0]/H/N>> endobj 41478 0 obj <>/P 437 0 R/Type/Annot/A 41485 0 R/Subtype/Link/Rect[129.600006 507.229004 228.324005 526.908997]/Border[0 0 0]/H/N>> endobj 41479 0 obj <>/P 437 0 R/Type/Annot/A 41484 0 R/Subtype/Link/Rect[129.600006 375.229004 206.315994 394.908997]/Border[0 0 0]/H/N>> endobj 41480 0 obj <>/P 437 0 R/Type/Annot/A 41483 0 R/Subtype/Link/Rect[129.600006 219.227997 289.667999 238.908005]/Border[0 0 0]/H/N>> endobj 41481 0 obj <>/P 437 0 R/Type/Annot/A 41482 0 R/Subtype/Link/Rect[145.919998 427.311005 463.751007 442.290985]/Border[0 0 0]/H/N>> endobj 41482 0 obj <> endobj 41483 0 obj <> endobj 41484 0 obj <> endobj 41485 0 obj <> endobj 41486 0 obj <> endobj 41487 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41488 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41489 0 obj <> endobj 41490 0 obj <> endobj 41491 0 obj <> endobj 41492 0 obj <> endobj 41493 0 obj <> endobj 41494 0 obj <> endobj 41495 0 obj <> endobj 41496 0 obj <> stream q /X1 Do Q q endstream endobj 41497 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41498 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41499 0 obj <> stream HWko_1$.ǸVu-Xk%Wvn޹"#A9s8{;-[σo޿Uz7v*86ɍ*rdF-j.ҪQs=͟dluljDwWFݭU4QZU+4UF_z6:>3Yd_{YRWq{e7Ro7Z,C Y':M^^TQ5i9 ~ĨJcP|MՍi`]E>/9qtjcĒq,,+,]kice{#½po{+; w}g}g}g}}}}}} ܗ} ܗ½p{Y J˱id@k9F,cZ1bI#tϱ{ZZ1bcZ1bcEk h- cEk h-Lj܋Zh-Lj܋Z 5FcĒ9X#t1bI ,Z #p/ZkAk9X#p/ZkAk9F,^ւr,@k9F,^ւrXhX`rXh{Z Z˱i@k9F,cZ1bI#tϱ{ZZ1bcZ1bcEkh- cEkh-Lj܋:Zh-Lj܋:Z uFh-Lj%s,@k9F,cwܧ N<` -r@ heB+ZʁV.r hBZ*V)JU -@s-J-Kjq5ZZheZ"cݰvZ #7 ưCȽX7`=LjD =Ǻŵ,=Lj%8F qh[{ D-=hZ"c4-{ r1QȽ @Kނs%roA9Fc BjqXRc40-{r1Ƚ@KށsF%r@9F/@Kށs^Ƚ-{r1z}Z"cbD=\jqXRc D3{xJ?iUVm7\Oj}̕i7_{!9gdtRQVcǕI'La„}mHn&O$w;XLF`[&i-GCverwMnk;p%ύɪGFӳ9nɣG٣I3|6XWjl-c|h`I|> ?Wtss=_Б ITUEˋSut3?LY{v;_NGѩZ e6); zrnt t}Rwן~>#'Mtڤiڢ[7܊CxPgYpYe= ^_ٺvlM7ف{Y_խzXVUեG72Mz&=O䮷&>,x}#gbos|X6vH.NOfݻUb>NpgG0$m/OOժ]h}a2Mʞx+/g-o쮽~l/YI< {|v7<^OVO~SܗOd-v N6ς=_œ#?W?,/~s;u9W?K4="zO^[k'l'ng0>-<CtV/ڇGl4OO+삞=K쑟uo;/~CkG#D@F,={Fs>i~njsg-=,/₉of;E z;SywsXZNh9V2Lh@+Z9ʅV UBh@Z%*Z^hy幖ILj%8XhiZheȽȽȽȽȽȽȽȽ cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cĒZ ,{ h;{ h;{ h;{ h;{ h;{ h;{ h;{ h;{ hg #X`sXR'{yニU4QZU^ʫ,&\%aTy1$| 0z+ D'U:jeCݗb1fUYLoz֞ΗQKJB<^v:gJ~?%"oϬ|ٱ\Q8]fއvkfKZUf2~]Ë.b'߆7a[9_Yfh«mq+xRiZ Bɐd"Y'pngnϲN.e \?!IF?< }"T8IYCEdroU)EP/ٝ*K2tEkk5H^r#M4oV$ os%1pb^N٤T5}\IIt}ԟOHݞxr!)>⥉:V/5M)j^o~ԹSj%JLUN3gkׇK|HS+ze~xU=EL0 zV.)ȋq#Qٜ뾳?,aNuk̅ {?Yoʺ157Kp|-pADKh:*I3"PAFbe.y\p|4 :ȹG* Ld39e,~&Wv;1R H2L.:4VႈՄǹhhxxFm nN(HLeg }L1YFKZN(KkǏZŤ M pP*~o(5Uaä9 <5Yr;S>7 \t\Ȍ+l[}t2ĵSH{_O)8f52σO"'C}N<љ2TV8z&@`DÑór-r(^ȜS@d0%_ `Mm4@}:Sdbxb>1vcn5iqBSC}hC qB,<-#.1 ?@G?pqRË/zU 4ePt3, @e3njްc"f9^xzф{h%. ,01w1]fYJյmêpo?Xj"(tEN~jxR"H,b-qhz 7aVOڬ6/6wO<_Diendstream endobj 41500 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41501 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41502 0 obj <> endobj 41503 0 obj <> endobj 41504 0 obj <> endobj 41505 0 obj <> endobj 41506 0 obj <> endobj 41507 0 obj <> endobj 41508 0 obj <> endobj 41509 0 obj <> endobj 41510 0 obj <> stream q /X1 Do Q q endstream endobj 41511 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41512 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41513 0 obj <> stream HWmo8.?a7Q:,E..ʒWr˿^-rrXCrŧ>~x~wC"W7_璨DИ 8MAD#9 .>";/*:ߛcIKNMp .VAY=)LHS&QBV az!*!Tw "Z@PN~pޓGdC &u0,ȵY?kc>ʱYBP.w| Pa=a=a/<a/<a/<a/=a/= a< a< a<1>cccc }O<)>ا{O kQk(kZfQ>{fQ>{(D͢j9ZfQ{OQkZfQ{OQk(Zֵ Qk(ZֵYS-GTֵYS-GT, a節#um@ umwmBT,g,gֵYS@T, aV umBT, aV umT+պ6@!umT+պ6B{j]պ6B{j]E!= DmHD͢| Pj]E]E]պ6B{j]E!=JD Pj]E!=JD͢j%Z(D͢j%ZfQ{OQkZfQ{OQk(ZֵֵY޵ Qk(k(}J4$'}p .VAY=i 4&jgg2'IxC۳W*d&@PltM0IJuySJ:Yv$19?VM~5(v,MX[JyDs*Y nXE4dšRgBaw]w]0IuNry#8<r۽.ڌ()4MxRpæ vzRh#aHYWQ{@g[,44d|Z^% `9*lEy@&TU9?mWkU NZtۢ_nmQ)ݹ5͂(3'3er&UIΏwS;#]dGc%2{g㨐GlWO  e]ٱ6c^ c?1kL|mf n^6]H6F6!DN(#dɛ<2 XLU09Vbi a~. m"\ć X#A6E (Sf̦F?T%sv^(&[҄mHBp#B.{uVd_r\N:NE BSh[1'ST`|DCh:D@MTJػ0{pi)=Uut7%yBc،i1W˛SeӒ> Ԓ p6fyTOxt)i|c,Bi=HqXT*bĢOP_6 7YcW#3 7xqL;AOp h6u0N>z-}f_կK;"o~n̆%-[BrmMP>Cn@~)?L5uѴF' LH'TFY韖}.÷_u2B#(~R\Np єKlY%BRub1s 0h*)YsD5|C^JNq>/]RO7cٷ0bTB٢G]n+&U,'4v˺_1rś[->#=KMo4΃`SHUjb0 m5x]hQ@eW?ڶX{+V8ӓ'!%.ףj:Y*קPڔul0SJ~]~x\䒤5X#ףpqD5 6q€ؘT&$NdACal9/C_ͼ(؅t 2 JM]B%n}huUҌ`(o86ߨRt=Ta\vZYVvq+~5(-gL``Ho^`S l$oTPAhK.֬+4k]g e,9ª.6NT2 XLB 8M%[}}6yQT^6MA˦]׹4Pա*亻 @oQG݉.&@An.i0DYmWMo8WT@D ݢfa6'fbdHr/ItdZ Ù7ɽ> Va:g& pꞆeG Eֹ7nvog +48"2VlaFyMY?uHE}%hHEr=$r6W`.w3){#{,OEȽElUj=$[uʍU?7kE ; CV@ʯM.Vg8s Li ,0uc-V"h.OPu*?F~sjN f47o4(!v{Kg^4ͩ;fQl sgvћ.H$HRU۝\(,$QJX1:F"\|;c%W$ . r6ܬhBǛg\\GͿ| -Н1xDt ~3)zR:9DE!EXiFJrFu7<{3I~gP$l`^NDrN=K MTZAǺ(Ej Щ4d۳JeY-N J(di}5UMQRIrqc $`U=/!4b>!ἷqA,ulBM0L"1v\>vjV{0\DY$ ȥ}n`njVę91ϴ " Sh sŹ,AZmM1Gjey(`R:jH 3UPk!cacT˹ff}qsw}r0endstream endobj 41514 0 obj <>/P 1650 0 R/Type/Annot/A 41515 0 R/Subtype/Link/Rect[180 321.428009 446.001007 333.411987]/Border[0 0 0]/H/N>> endobj 41515 0 obj <> endobj 41516 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41517 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41518 0 obj <> endobj 41519 0 obj <> endobj 41520 0 obj <> stream q /X1 Do Q q endstream endobj 41521 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41522 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41523 0 obj <> stream HW]oV|'RмB<$MQч(02e+T R2s&(jRs3?<~˫6yWџ - t3gǩ3*lE֬Mtq]ՋvPjfTn4ut3w,g6ILiJ4yR&8P-u5ӧ.M&~}$cr]-t9J̖Ҹp{$޾X#Nfcҁ,Xo6fdM3vuD|561g)1&*}G@}TrJ)&^$,Ĉef Y)`Ij#r{{+ʽr>()p*)p*)p*p)p)9p+9p+9p+p_(p_(%p_*%p:kAi%hĘKXcv/1fi#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 Wu#hĘܫ:Z1 WuDVb%F,Z1K{ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZmZ+1fi#hĘKYڽĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkh6Q Z+1fi#hĘKY}eLB.7Yt19cl٤R83YV&8b̔;]W}M?ޞ9!ܙb{kZl}dGbfo&qR:3[A̺2N˲0YH{YcO]MDC;[l/*^&aj\4um_u,qb{;n:Y?OwFl\nZL*?slդZCR>~}VzG?>%Mm{Ӯ7kW]7 9"?[t{HWwW?4'{|:CYp6'q$C{JgM࣠'WjzJ 櫉He.=V0BzcV XJ+ J+ZJV2) heJ+ZʁV U(hJZ*V)\$,%1bYeZVi9唖Z*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ#ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘTȽĘ$F,{1 h{1 h{1 h{1 h{1 h{1 h{1 h{1 h{1 hܧ c֒@K>?q,){B7ИjIFɏ>VŗC3')OBcr O LrH<4͙kVO _M M\ju}j|̧`,V}ؙ4hRIM?>u!I:{ϺP,%2+oجl''suswOoҍ)"N]ZĭfWՋvP1MDqqǑlpyI寯YYhVC'T=_j>ņC KUaO҅毼|:>I,? iʥWi߻D{BΧsV XJ+ J+ZJV2) heJ+ZʁV U(hJZ*V)N9KbÔ;f)- Ҳ@*-r@KށKlr,r/aȽĆ)wRZ 1KiKlr,r/aȽĆ)w̒Z^bÔ;f)-{ S@%6Lc0YJ ^bÔ;f)-{ S@%6Lc0YJ ^bÔ;f)-{ S%ȽĆ)wRZ 1KiKlr,r/aȽĆ)wRZ 1KiKlr,r/aȽĆ)wRZ 1Kj 1KiKlrY{ʵ718G3CJgaWUNmy7Zqru.uF*.L3mw0-&ݬvcK7~$ 0~XECl}߱z{X.z.vBNͬM墬Klۄ߸_&w-O-f.f/†ѣLn\޿olQ,8?6>NWdɈ?ozSrnP= Ik_nC[(M=ݬk tjڿ\Iy8~Y, 5&^~mP$E˞k3E!Xtmԑ [;ˏW6H^G:$8I&t2́*hS+eiBa obG M:'/7?SeviSm6ߓߪ\\O-uY SƖڄ=Y@>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41525 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41526 0 obj <> endobj 41527 0 obj <> endobj 41528 0 obj <> endobj 41529 0 obj <> endobj 41530 0 obj <> endobj 41531 0 obj <> stream q /X1 Do Q q endstream endobj 41532 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41533 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41534 0 obj <> stream H|Wko8_2(| ЦnlkKIN{H=L,TGsyyh_ܽ Y믯\<B8aX-u‡U\<}T4eV>tmpɐ AX9, b1% 6ӾD}WWBhhW<A@S_t(e?woߧU"s7ũ/[ȷۀ|xc|o9,|o,܇A.Xhe<yzMkp&=!ŀŹr0dijbzzᩗz驗z驗zWzWzׄzׄzׄzO>!'PzSB}O >#gPysB} g9aZ;p!Wb"\bջ|.,µ.,BZAŐE\+׺׺kZCs \b"\b"{k] Yzϵpp!PVu1d= µ.v $ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d=Jµ.,BZIŀEŐE\+ ׺k%ZZCs$\b"{k](µ.,_p!Wbջ׺kZCs"\b"\b"{Uk] Yzϵpp!PVu1d=*µ.,µ.,BZEŐE\׺1Єk] YzZCŐ^ȿpQ+7BP/;Y#U y0 ĐՀj?e͓ug;+{b0&[0o\Nz噄hDUy -;F0;ujtީw*Đ$y X$%|0 {{!D yz0ʹ(5 YԱo(ȁ_W/by%Sʧ򊶗RQ8H^Z(N48ILgՄmܸ؊^OFIk!kBuT>݁<ѿ)mEbb?qu5E*]/ V(7B@ϬhN2}O^NUaQ: 6ݑm,ePb;79ưj2*jXab}Y wjKN5۸ȋ۲nLrhGCw]:P:c^7%jnK"ڸJ~*J&TOD;K- ǰ8єKi 4iWxiR/_pޏZBgO<;E~uܣ\ȓj󵢬w" czdW:{]X&"б3=]nX#F*Q CC]P\m#Bb!dOGܴ'-cI2rb$^@׉uep>nU$fF)6|ʬئiJ@,weF68`$1F]%^ԄM0pkPڬҖ¢L[mfEDkz||ʡ,QL>~&ngK!D!6ŏ~Sy-ʹ0iKʨI#=݀cvU -*J9p`nXzj2+፿~-g|7\hBtgXL@ kp`K_2I~߿?|8AiPkeu7v] A *GZsֳ ۖөL}jL5^Wvq"OtrUȅp:).PIUTHT+6v%<'BpKᕖDTNDp QFڦbΙF)62D.W^FEkrʔ֊IˀW0D  w$>v>/P 426 0 R/Type/Annot/A 41536 0 R/Subtype/Link/Rect[129.602005 219.227997 192.973999 238.908005]/Border[0 0 0]/H/N>> endobj 41536 0 obj <> endobj 41537 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41538 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41539 0 obj <> endobj 41540 0 obj <> stream q /X1 Do Q q endstream endobj 41541 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41542 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41543 0 obj <> stream HmkGϧ2܍B^1! GFk{m[)}*kT~W\9>ᄏO?)O* E3{-7⸛)')>LJtq=⸟Ue^[#XO "E AFӊSͪq]yAvjyy>i}wp#W>;9%g/vەJYe̴x'3kPRJ??~❘vaJaMNa&Q&!FIC }P,SvxJ35Q7zCF! Qoz˨Dc;1QzO{F'>QD}dG>2#QOzYŘf\cq (Ƶ8)2EPkq,SzZ͸2Ũ'Ռkq (Ƶ8)F=qf\cbjƵ8ZV3űL1k5Zq-eQO\Xĵq-&ø2EPkq,ST=e1Xĵq-eQO\kPkq,SzZø2Ũ'5kq (Ƶ8)F=qa\cbƵ8Z0űL1k Z;Lq-e1XzUc@1űL1k-Z21Xĵq-eQO\kPkq,SzZ˸2Ũ'kq (Ƶ8)F=qe\cbZƵ8vZUc@1űLQ8)nB^8#? 8 攒~tV(B4;~V,~SG9yne/c_/zG{Beig,ǧG!k?|=`mgG՛ޜ{o}FK=R}' Rù??I:g'UAbSJSJ oBD :M(1e%j@)'1,CLyE)o )CTpRSQS*]$ 4g(/ RR*0TeEJSQ j'TQ(m"2B@UP0`*R ("SMBTPQP x;,ޡPa3HQ/SyO%JAARʽ1ޘro$7*L{DŔ QW$;BEJs<}HR'IsLT u:QVZCv>T$;dFڑ[;~(e r)c)%1U@~Z)zJSvJv;vݰjg}GJav$Qu): Tj:N>U'*S@iD6Rm"u(MT=U0RSUUS TurGUT9EU+@ S2bU*HI4m8PvTU+rOiJQT&UNO):vhZY;v߁]4!pT0R{MU'R$m龭%hRG@rߦmr`HQuR)rߦ΁iO)JوѦR2R*LI:w6 %)Ow~etTSPT!azL׋zk)(MAފ0]}ww/OeZv͗mʊH.Eg/z| Zx(foSe3a>Y f\ܵoR]?y(++ՅJ/`.V8="ʟo `Zdʯϕ,#:~-UzXVjW \VJ·G򿕳-[D i2 o7v_reubw_^x:-?HPKz|޲_Í%2uᒸX75Ѫ5RC|g+v߀+իXKV&#m):]< 0ZU` qZCmFR={o2$G"87wz2߮_!tNxDN~nLܭ4s}hVuo:>5k uIׄiH9uXOq|c/u`ZC3?U| b/+71~?[M[sRt[tEE̗jtp]O;ұ/҅Uko7ԑciu%i%K&A'lSi޿ Zj3=2*C8jFNIܸ14^82Eڈ]X24EQ0@<>$EĒIVT2_̾عSv(D\.5L%C+Ms˔"`G%/ӳ ۳f0nO}W wkv"*=:͝j(e2ag&Nb^NMI!m=AE6,4̇>UGڝN.7\K@21*PuְlhO}:?{Oendstream endobj 41544 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41545 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41546 0 obj <> endobj 41547 0 obj <> stream q /X1 Do Q q endstream endobj 41548 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41549 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41550 0 obj <> stream HWkoF_1(B14Hl5] Z%TT/}!^ɣ3gfdu+??{Wዟ)+U"ܿڊ 62" s_|(wgK~Ymm],D]x/X5Eꝧ%[/qE")"?֛P:ҔyfWŪ68{ftƳuvaHiƿKH-B{'k/KL(un$KI('AB0XJQ€0,])jc׌{Mƽ! qo{˸Ľe[>`}q!>$C}HGq1#>f}̸q tV1Lk1,cŴc1,cŴcbܓj㞴V3Řc1i-ƀŸ'Lk1XLk1,=ifZ1`1Ik5Z9ZqOZb X{Zʹc[0{9Z{9ZqOZkb X{ZôcŴcbܓ㞴0Řc1i-ƀŸ'5Lk1XLk1,=iaZ1`1Ik Zm=˴c1XLk1,c1XLk1,=ieZ1`1Ik-Z9ZqOZkb X{Z˴cŴcbܓZ㞴2Řc1i-ƀŸ'Lk1u1bZ1`Qu$I'wzij魗"-cF4"zf>)VeϮ^WLϪُg駣@a`}iov>?y]m/~|0dt2,[.'kn2 }ݍ>_"]#/t@'oYM%]]e+%PNmH}x9Z#s]]-ux?Teg)?}mۃ}}ucb;SwE{V⧟xw_5./e%СLݴ -; [qXdպhDY iQ,+_gm%i(걉S]#ɟLu]INCS,bWvsl2_sx7?p$ټzc&dZcer>IlZ1>&%_nUGӊܐĵ6 pc X "ZѲD2ZhV@F+ Z! VhED+b"3Z1ъh%VBF+ZڧZ˜c)FK-h)-M4Erc Xɽfr1`1Z$=ƀhk&Erc Xɽfr1`1Z$=ƀh&˜c1-{cbH {"7L1,F0-{cbH {"7L1,F0-{cZs,&Eroc Xɽer1`1Z$=ƀh[&Eroc Xɽer1`1Z$=ƀh[&Er0=ƀE$//;Oյ֋;8TF ; X\(_jo0Ni0q\R)9m͌jݛgVⶪE&Vƽ}"}z j{iq_n|P avmܘj`}Yڽw:ۊ9>F{ K`7\yI{Aӽonr\`*hbsQ{/ݵbl[DTas:QFoz2k^Eʊ1Ǿ7:։8>˘4j,exbl>!18!^8Oۢ\v]"|:;: :G?Y J,˰샬;!b#Cwqw?~sG3gwUf7Ŧh{&oy^7eU>ի}ۦiY;;o^]/.?qk{twnN\9;5g|hnnq&Ūtiv6y=m~6ymE>hEsӇ묭E_ccD/(%p*0w']c UCyB0ƅYir9Yx2 #;膬nw]oE17&iYgS4mխQ7\EU!W0X T|s+ZOun gl_1*qIPӜijy3~A$qp&e`&Ff"bBX =skv8e9n-fEY :x9IlW "qQvs/ROrLpF$3_HAxC>$wy/6u~/G;7jz"}=l`)J&hLeIdE#jWZ'ǛNtcNq6w<>hAW軫O:SS!,׮?%gi7> ptj7%>c2#vQOZJ \`i%h n\$dl& d9V>n0el/4Gd(kzw0(H:˪zzQf$aͨKr/o4|`lve8:JVx1PM0nNxsq#cDxvq<4C/ZЕɰ._EQDendstream endobj 41551 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41552 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41553 0 obj <> endobj 41554 0 obj <> endobj 41555 0 obj <> endobj 41556 0 obj <> endobj 41557 0 obj <> endobj 41558 0 obj <> endobj 41559 0 obj <> endobj 41560 0 obj <> endobj 41561 0 obj <> endobj 41562 0 obj <> endobj 41563 0 obj <> endobj 41564 0 obj <> endobj 41565 0 obj <> endobj 41566 0 obj <> endobj 41567 0 obj <> endobj 41568 0 obj <> stream q /X1 Do Q q endstream endobj 41569 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41570 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41571 0 obj <> stream HW]o6}ׯCd}-.@f}HBg$W{)R! Gԙ#0,e?W /JL2ɺ(eEc=5u쇦lDo Wv}T )X1YlFz;5}ǮnD\$Շͯ YURǛptYZYz7Xu3n7ODU9}?|ưV]r4O5WeRDi =-͛H&=1 '*'"Hi6 T!8<ǐc#gPsB} y P_ B}/ e$ԗP_+B}YNH1d} Xk} YzCVǀEǐE\+kZZC>p \c"k} Xk} Yp!PV1`1d µ>,B}ZAH1d} Xk} YzCVǀEǐE\+ k%ZZC>p$\c"k} Xk} Yp!PV1`1dJµ>,B}ZIH1d} Xk} YzCVǀEǐE\kZZC>p"\c"Uk} Xk} Yp!PV1`1d*µ>,B}ZE(#\c B>P}TUX VmDdm#\TIb6z7iOm[m+^ƺYmM踽頷(KY{Rwnzf[>l~]}$Qף>q{t{n&v eji@@ep6o? MBDfEoɵ%Ola402IZj?{9TUr_6orY$o}^ "O\yZrr,`n Q~660Gcl]}hi 0S"( >kks]M/^/[#eRgX78 V7,O$LVЌVYT5myryKe;kٍ,J/ "L4ٷC8["S? ϶]6pn42>=nSkh?IEYi {wI#f?5% }lZX!Hu=3yk_4SgfVEF5ǥJ=,,#q2Ua+V[֎9/os HKiuۛbJrs}(5 m~feƃç';qU<#lU&hY+j@{S+E v2@yW<*?*Ѝncb_H=8gzu%?I6{=v9WHՆ^XۆwxYwiYh*H0ͫ,&մ8{6JQ^a*kT4ULQ0} *\?ƫem+|tG΋raolk"ami+﷚MÓԦ&٬"pR*]U"&Bp=lƟВ~Ϙ+̯As%& -J_˦ X/:iuZ t]JJ|{v%Rk%hq!+^N8'Zׇ\n=º<*n8п HX8&Tr?<2{ٝ3l&v֙Nn\ ZNg ;.WRLK;bw[PC6`X7zX;FO5Vd)/ꭖMh<5|k)ZuaNBE*%F#Vr}\$} Ί=<$D]Rk+cU[CĬ_CXM%r6Pbε]͌'r1"LW vz*{ar `dNg;fppnxy!+{OTsȢk9 Uങ N+Ax;o|: e@,. qX[ ^β,Sg1>LhۼwJmqzLt .BVC}"c yvQFvc5aϭv0㵚Z|?BY鄜 (b(<}WXa S+R1~hlڛM*U>^r?4`aϩn\3YwYg6Vn*) -42 mͲzG%_)4s8U$94"^qf{{wfo4&&/M_ ǧ=xg?9ؠi` l~t9*7O1(JH?}{受v/ 0aendstream endobj 41572 0 obj <>/P 1044 0 R/Type/Annot/A 41573 0 R/Subtype/Link/Rect[93.6003036 433.628998 239.759995 453.30899]/Border[0 0 0]/H/N>> endobj 41573 0 obj <> endobj 41574 0 obj <> endobj 41575 0 obj <> endobj 41576 0 obj <> endobj 41577 0 obj <> endobj 41578 0 obj <> stream q /X1 Do Q q endstream endobj 41579 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41580 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41581 0 obj <> stream HWmo8_A(,^S z^ Ѣpm9q6~YYp~|8g+t83ٿ5zWwz$6JJ~jDVyfT>E Q3Q;>]>,ټnX5Fu U24*Q4($*U4Uaaau.-ix_|Ynŭ:4ڻ_GOu}fhkY&s)ߍV4D'[YnzݣLw{~T_jdNp\<(e9䔌F8F,9+I$aJ{Oic{-k^ 7½po{#[ } ܧ} ܧ} ܧ}g}g}}}}}} ܗ} ܋&cĒ9X#t1bIs,Z ՠ#p/ZAk9X#p/ZAk9F,^Vṟ@k9F,^VrXhcrXh{Z Z˱y`@k9F,cZ1bI#t1{ZZ1bcZ1bcEk h- cEk h-Lj܋Z9h-Lj܋Z 5cĒ9X#t1bIs,Z #p/ZkAk9X#p/ZkAk9F,^ւṟ@k9F,^ւrXhcrXh{Z Z˱yrX= cĒ9F,^}WBYVƏxUв@ - JV*R heB+ZʁV.r hBZ*V)JUr-K-Kjq.k@+Z JZZhi%rA9uYB cZ"ckX%@9F,%rA9`uYB cZ"cSŵ =Lj%8F%ro@9F%ro@9F%ro@9F%ro@9FW%ro@9FW%ro@9F%ro@9F%ro@9F %ro@9F 1bI-хh[{хh[{Uh[{Uh[{!h[{!h[{h[{h[{h[{\jqXRctZ")}eiUx*WUUM >T{U̓/akuسE3Y'qܟrtxXvmAxYun.OTg'T|tXm鍛>fhn4&:Xzb`bSD~b&εay;o[w DMi4Dxhܪ'OW:A9_޹g#4~Pn7c]4Ao;5>9>S N0%#7-򨈋bG.vk(إc$A}rxSjR]ί]=M$Y Eش^q@-7NKofolɣ׵7eÃ]Z]v'b4?xc~,~}ҵ;mۤg3ޘY8'>_SYfIy;g[oGĽvSt##å0wR`)1//EBѩwPcn},v˲{>7Y<'[ݧ866%˵:L<?UGqjiBs.&N1^-q@_شS&-FN+WVRߡHiIJj{pwǙo}$%AkX&}gV]nqhZ]I;=\'&̻2%.t;=.(JL4D4zF3pNCb-`>RzAʜ>QU sĢy8["M% $>5.XWQN,P<@2ByQzFK R7'!jFmlgx ]g,1 j+z`:cUx_Փ*ו2/Yb [)EW٪Xo@@M0S0kۏpҪX,+,2?RRPpM;5Mmeo~&j@#q@bȬ{ߥ)"Da&Jjx/ n5&MHɀ/ .d(0;ìoqq"얧_v4os}w+i|oo$FRXYQ'h0kÝ'@@_COx&3BACSs7Cbh!,yiHs1nAI#'R KsX-֥Db?myQ~w:[%jYC*j˯Rx;9ME fA_%<4r YB e]5,԰IsVJ0. CW>Ǧy2ai> q2@]6:xfjӄqd(AEivKAK(Yt2ϺՓ6y|(ƹoQxLD3$SER@PY :*$ViKRa`?2: dja >p>6pHSG/ 0t ,Rk>$SߚQH_(DB"a) \倡pnKH2%4 ܤ_:ᔇd cP_VNSˠff4*;}:iT@&dA<=$E<Ɋv w]Ap<}RSW9"}00+ .r)BH[FRe>]_&Wc ^י$WU!hzn|%0G3j.{]O4dߣ?O@P'Z]>N|*9""Y199b¹]ȭy[.Ar)8Z}]Ol'pI8 m-襡`FjʍG;ї$g~mL FfxcެDBv:j:8áTp}f7)l(1 9*i6rVW ˩I}ޔm_ Y,#/ww[q}Ԯ/%}D!]ԅRgCs>ŕ5GVvĀ<M5)]hF@ K a$wp$ ҂y0Fڿ̈>/P 1528 0 R/Type/Annot/A 41583 0 R/Subtype/Link/Rect[396.09201 191.718994 519.603027 206.699005]/Border[0 0 0]/H/N>> endobj 41583 0 obj <> endobj 41584 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41585 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41586 0 obj <> endobj 41587 0 obj <> endobj 41588 0 obj <> stream q /X1 Do Q q endstream endobj 41589 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41590 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41591 0 obj <> stream H|Wko۸_2*CtwmS4^E!L֒4 II69)FCqŻ~xsu*|ugdĊr$Rdtjw,~*X\WrUoVCWmZ\~˃~qZ\`u(8( 8V"rU9x} |{!XIe-%m/h 6{Uf?ϫ?eG!'PxB}O >%ԧPy3B}>'P{ B}/gaZp!Wb"\bջ|.,µ.,BZNŐE\ ׺׺k9ZCs-'\b"\b"{k] Yzϵpp!P﹖u1d=rµ.V/ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d= µ.,BZAŀEŐE\+׺kZZCs \b"{k]^Hµ.,_p!Wbջ׺k%ZCs$\b"\b"{k] Yzϵpp!PVu1d=Jµ.,µ.,BZIŐE\+ ׺XH׺|.,µ.,_!W_DEQ '^\XS( ҴVc#,_2!x^ˡj~WW].jYe-%mo1@lt]V`֭^aEŦ@U21ͯv Z,mZAv[pؕ'eJ)nG6|W<`3˽%> V*ͱk0j]Lfik%C;)f~T G wOrc[`>,($ܶzz8@UN_î=\~!S?}ZAiE|_##Ö6e3E L?!;i/vJ8bC\}=Uc6`(@+k B}WuP5//H$i n[=, /զ<ʩ%2X,s-38 e#8n` (Kc/KdVO.4iU 8|&EIed'x&r^Γ "fpxjH" >7+t G=_Xo?҃6q6n}.wdSN*ǔI9@fO#4Fso,/ +M{dџR},מBvaߙ#,ܼt$Jl#}k}I3 jW=5nxlU骵 P(ьZa$='O<[D $*ޠ4LT*lFM%݆?=uFDO0"2#eoRBz3,txD.B)aYrz*/N 9,NE@ص;u*gaC=yg$F28[9i*ҶF(XaV8^3'.kѝa;deG NU>[ vEj 8j# V_R*ov̚38KKt܍  9u]ɉ2Fdpg ܜ}_'Y" ^^t Z#`j@z em?A"'nlqKir[cd"M''=4isf3~җ~ś'$w5:ukū"\v[_G\٘h?9kczJX3ltya6an3ED4xwnOFCh -K8>Sh˴Z:ey^c9V(Ժ/ed,J%LФ#~f?3Rf'S5OǦuߎ%)yL8aRppr eR 3/ kdU`JmcԌz}۲Z0B*ˢ,E f WU@ٲa=L}\}ZengN\9˙{8Yx2?[sNnUeL_o3qU%u4\eR cR,2ZQZߍq @;ہ{(6w'yιݞ]Gfl21*CԧAv.LB@UEp |܊%z44h;_L0ztꯔ(YK]{ .=T;T\fvȎ>\]7㷿_/}~ã|Eqd**xUހI#e@jv##W8Lφ$<Ɩ# O 67l;xO) =ZCQǦMpfX@n6pK)ξgGsyw Ywge"z6U&Q,5yG-)RdP w 9 n5Iܞ}3CqfI*Tpz-a#ę m$ p=X~2-#n=p`AdeD Fp{ p>ذ{t=]RCmxRAEFv̀[f/<̯YP)}b(fAλXpbrUbƒՃ*ą6"\Пp7-؏5x$[;آ22oxiB[̽kIPI0yK; fiP$EnHZ~~x˧7l/qZ pendstream endobj 41592 0 obj <>/P 440 0 R/Type/Annot/A 41595 0 R/Subtype/Link/Rect[93.6001968 663.229004 414.755005 682.908997]/Border[0 0 0]/H/N>> endobj 41593 0 obj <>/P 440 0 R/Type/Annot/A 41594 0 R/Subtype/Link/Rect[93.6000977 423.229004 164.940002 442.908997]/Border[0 0 0]/H/N>> endobj 41594 0 obj <> endobj 41595 0 obj <> endobj 41596 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41597 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41598 0 obj <> endobj 41599 0 obj <> endobj 41600 0 obj <> endobj 41601 0 obj <> endobj 41602 0 obj <> endobj 41603 0 obj <> endobj 41604 0 obj <> endobj 41605 0 obj <> endobj 41606 0 obj <> endobj 41607 0 obj <> endobj 41608 0 obj <> stream q /X1 Do Q q endstream endobj 41609 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41610 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41611 0 obj <> stream HWmo8_ *ހhvq5"`l&V+K$Ǜ3"%Kp|H3!嗻?}-L_}ۻgdr3晈Sv:6A>,?VCߵuU=t6g>Mpa"d)(a$, 7 Eq>x wcޅ7oxD4e.<:p&G A=>"9dI?ߒpbIW:)}L`X"!*%P.w|P`=`=`/<`/<`/<`/=`/=)>اcS}F<>cs}N=c_K}I4ѺC պ>D]պ>D]|Pj]j9Zׇ(ZNPCS-'TET պ>@u}"{j]j9Z(BQ{OPCS-'T Tw}"Tw}ٻ>@u}"{j]jZ(BQ{OPCS TE!`Vu}"{j]պ>D= BQ{OP;PCPC!gE!`Vu}"{j]պ>D=JBQ{OPZׇ(ZI!`Vu}"TET+ պ>D=JBj]|Pj]|Q>2.R [Cvm6,d)`8 7 zͿfAzb6oވ,ڶjv19y폪y6UۘFtmd&4f)w9Ԓ8in'UkŊrm s"Kf22/Tٵ{ګqM:Bc؃$:hvCNS (ЧYUUT/cB*8o8ƃ| UWύ]Lf*K3ۑvD&Ș%1~ȳI,]!;oZOc_haGc,ټ@ȥy|pGb^/M>!!cw=ʹ-q1W+KECe~0Ctiksb\;D3gPF^[\j&ch6ڣ4:/:JD)xC<2X9d^L'5&-}>0TNC=M0>e Py(.DO[HwUMŊĘ[;MhNym'6_ls{WMkC͡ZZ7,3@0A OFHdY :qBF GhT5J ~㾪lI`(s144n/}})Na`ܫc9p=S4Nrnn(  K[̴ݚ!rXcfVyv4s:uOQ`hL܁lEeSɔ4K-]ELmHs=]jBd~va}lMA<1luwL@Ƽ湉׎4[>#\EՌ-֤/yp^ 㭏aˢCoj \XُYI9`o&jpbUPjpQ,WHOhPż,X1hNIت#|fWߝ<\+zs1.ۉ7s,M$UH2_q;CT^3}n~@L@94s|x| NbytB1TsRuz$2"mOqĄS3SQZM{zە'8e~S]_K6ѯ̋nBJeazԅTqRĨK=J>fDz\2-0:޲"QtUD盽m˖ⵇ6`{ݻc] WCNmba{wΆ"fY4g`q! *wh,(V(z7,޷ޮ '\d+ Q=߱fuЖ,<31Xm zϯ16DxmZm{0%q²P|p$lOypЇ y,$KS̰ ]差/_HsR 00{:].p߈wYѱ½cYE6U" ! Rj0R2*Im{BL#Iy)L۩#z.8OX/(GQzZ|sޞ/Km][f5' }7Jdw;`׬V,gb9ojV {,BA^@_w4"" s;:]Z#lq1Z#b G4 +4!B#cHidsFBFP##1Hȕ£$@DP,`elg%+`e l+۱d UCJhzXw{(FbI-7^&O8AOhÁ'Rنe67tZ;:B~Nj\5Ew\SdlA; E\S.yQi:F !"2.Q!dsQ!$DBư2"bTfY݄ "42aFF\=i$Dhd 52 #Ȳ/HFBFX#!5""5F c HFBFX#!5""5F c.9U [1+ =-ʯ؛%0hݠ-z "ݟȷ|LϝztvMA/_Q-_X|m}JKϡ/4׻iL~k+]X-hdDx Wh}o#Luzλ)Ow )~Z>Ra8 /qy~w0zx)&/s vs$QQ6gF};}ZŃI}ycƘ@zzCEIcy5CX__% ]ҀE]qăq=ʹ2شy}:O\%?o "kyendstream endobj 41612 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41613 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41614 0 obj <> endobj 41615 0 obj <> endobj 41616 0 obj <> endobj 41617 0 obj <> endobj 41618 0 obj <> endobj 41619 0 obj <> endobj 41620 0 obj <> endobj 41621 0 obj <> endobj 41622 0 obj <> endobj 41623 0 obj <> stream q /X1 Do Q q endstream endobj 41624 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41625 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41626 0 obj <> stream HW]o}篘Z4I6 M"Vv`m3HE{IY:[13g !ŋm~wX^ tqg6JJy2CA*\|*7E_}+_7eV+VK2XZ9L\堩8Sm-_47i#=.6Z[&Yxvy8DZǨfĠ62jt>_{u9Vk686 .SN992Őŧ,! ,]knb2{a2Vpo{+̽; s{{g}'O)s S>ܧ}&ϘLp1>gs=JKm`R Y=ŀ%b),bZK1d YkZ!KpZkR XBk),=kZK1d YkZKh-Ő%g5Bk),=kZK1` Fh-Ő%g5Bk) Z!R Y=ŐS XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` Vh-Ő%gBk),C Vh-ŶZK1dqZ!{Kh-Ő%guBk),=kZK1` Nh-Ő%guBk),C Nh-ŀ%bܳ:C 6Bk),bZK1dqCwGy;ÿ6x .KZ@PQ4Zn۔u.ת{Օ^w׋ /K#E9~yv}[Ru_qX{|?/>/S 5oz8Oa辞Fo({򁤺]g? >Mau/])esZG02 WͮUEޔ-LY|+c[~]wM-p EG 6lK7 nMiQ<V}쿃œz!MY6}sҀ$dռ/߽}3b/k*O͘ضMFmk۲>D.6  nwz_z.a8CMW6$WacdM)6E5.S8 %~Fk o.W]}m͇K; ir3478ʏU pmOo-\bw˓oh8mYO 7^Wc-+qƳPu6UN[xbцM'm]`(8n|>yOU>{Ҟ3VjWV@I9||ȓSڲߵ~xXk_2a+2A^0&sP[7CaH1di9A1-'h9-ϴV"h%L+ Z)JieVƴ2A+cZ3\ʩŐŵ(,-hi-ʹeX{!Kb7B),A-{#bX{!Kb7B),A-{+bZ{!KbB),A -{+bX{!KbB),A -{+bX{!KbwB),E1` -{'bX{!KbwB),A -{'bX{!KbwB),A -{/bZ{!kQnEt _- ^g,<&8~U o90GeYtbf>ݔ>nmYETf.b$IHfՇ04ı CwZ[}m.>/ $;U˕:(N> NϙC52׬if<ٷUDY8m͙s}U%I̯a=<=Y"$q¼ (Ѝ?=&l:5M.+c!&4*ի޻']ÃpP>[i gFt6NzdzGVq:oET78u%:T@zC&Wgݑ?'^k_&1S.3ܩ3|\Ty=oM0?g{|Vl,1v 33yt6lg QgIq2pS)bMͽp=Oqv(k*S);D#5ueEO$WO0VD9 Ci ` Ӥ՗U#!;`DT$gocFQLLJ\pOWӛ% Pɞq6ߎ_re-\\LG DJmEz^ߕi@MsvN2fk" `X|u\ X3ܫnq'qk9c̲~e|g|VC24x@^ܳqG%hJUmTsH PEɣA=H)Okspqflں?vړ1XC\opJ}gTo_cendstream endobj 41627 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41628 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41629 0 obj <> stream q /X1 Do Q q endstream endobj 41630 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41631 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41632 0 obj <> stream HW]oܶ}ׯУ|P!mhʚUJە6}gDIΦQ!qH?!;QV*M]iD"7?6s&M~zhݮ;6{?mzl>OoӤ*<%,"*gZ2Mצ7ﴓY)mzZ33oo6q+X[g]̅jB7jSbN_S%__KzIiR\hd}R+.TbS&Q PJ(bCcPR1yjf눽f눽a؛a؛a؛eۈeۈcػcػcػ}ΰ#9> "b_0싈}/"%þؗ 2b_1쫈}Ű4R>ьj Q1{jZjCT̞6@16D1#jFԆ(}ZͨŨŰTRj5ZjZjC>RfTKmbGՌj Pj Q HQ-!aV3}bRb(FԆ=!*fOmbTKmbG5j Q HQ-Q-!a06D1#F(FԆ(}ZèŰTkRRj ZjC>RaTKm26D Pj Q1{jCT̞ŨŰTkRj-ZjZjC>ReTKmbGj Pj Q HQ-!a26@16D1#ZFԆ(}Z˨cTKmSRbԆ}%>yI6Ot(9t%4ϫtOSoӛwZf/ݫ76$RBtMӵB=d_$(dNŏ6EigD^|KsZ\݋Ji˝RnZiE`[vM^Uf&Twx#צ`}LW!W# ™̘kQSw  Z#Y dqXR,UqdѰ~.g5~{{8=.a; pHirօ>fg>rkJnpkƊyAQ!q6cqm*2˕teq|NHUg؋쇗zg~á;ӄ}B4 y~S* WBV[f|[vN􍪾gp^}xn W]LN;~g?ȍqqạ%h 7h=7 lD&ei5`0O{iR͸B\q,L|ƥ}0M?O'PNx8E:ԔTJ7b C=Df* ӮMqmK9K\Tֹ(:c'PD=sxEvu~iiL8<ߦX!|KsĽq^l&aV7޲aRWMI;;V5Om=.|nyȢ6OodzYU좔90%TKb2^Z圄.(9W--aϿ_=B8+E]\ i+ai69fRX%SU(!*)jFAg K?S7YӡzM_3ow%R >[yYH/jӺ_NƨB`62ShgfKFᥭ~^S4 *ۅ-BF3$9$ byKļ*M-E=kMZHl]{"v(.s7_HZy4|ௌ-PK<\bERrC6/cP_t~6L P)珕0hLnzFcK95O> /X xߖ6/x"6]KԊq 0^;o l|\_`z| ;v`b9FSH`^iH_=){G*6BvvJķi!4un+NZʑgr*T ar(dkV-,?yeچz¸ t޴s ̖ M>Z/"bf+ =t͡PMצ!OŬK] !iaf<qn0]&ތُB_<Pr}8nrߎ1wƊw\n@'/ԫOmntgYbz/WF;@iA*iʀb_vfe.E Kyfl%݆egP3N8Z@yַskד%%9 jz=:O I]eY:։(D*Awsnv}[?Us\00-ɔEgr2Ta!}U2ab?]j?dhP9{ƿwU"LDҮTz&KP<>:areP2 WΤ bV6mA1i.+rDͅ"mŇ gQH#6Pwj`28]xPhƞDnݖ }@ ":J_v}%,eypB9s>ƀl@^*0ĞG2M ym6>LtV@C_iE" |c ;8s eΉM3+֔zQ6nA(G3#}OXoZ)YyY(_dӴ‘D郁WEd,"EU(v&gn*5 63b?UjhW] "a>Ĕg՚f+ی^d90.V0IH7תޯhd|z&Nz7סġއjؤXpKZA nSڬ+>"pHb5H}֭<](@G5-mq'N8QrRf$ͼЙO宯,Q 16~6B͞KĮ*ہG֙5h1#~߿GyeݮP(>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41634 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41635 0 obj <> endobj 41636 0 obj <> endobj 41637 0 obj <> endobj 41638 0 obj <> endobj 41639 0 obj <> stream q /X1 Do Q q endstream endobj 41640 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41641 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41642 0 obj <> stream HWێF}W4}þ q "Ìap$ mP'AUHdUɻ #ffoE۩۟U~ϯ"5N%RFQm|Tu@JW]UWͮi}ٵFUpQ:ZVi PO8:D1d(,9`J57O1`a0Vpo{+̽[ sO s>'}*OTp2>c3}g9s s =s,Z-RK1dqZ!{KH-Ő%g5Bj),=KRK1` ,FH-Ő%g5Bj),!C,FH-ŀ%bܳ!C>Bj),bRK1dqCwO1` ,VH-Ő%gBj),!C ,VH-ŀ%bܳZ!C R Y{Z+bܳZ!NH-ŐS XBj),b),!C ,NH-ŀ%bܳ:!C R Y{Z'bܳ:!Z!KpRR Y{Z'b RK1dqZ!{yr^*wJ*Ȫ>]UJKoO?Wuw_f%]DGF,?>MM]j~Y]P5Y?^q{ 7ԓ /O 'au o,/rcZ0DJV*hL+R ZiVδrA+gZ^L ZjkQ Y\bز ZiiAK3-#he-VF{[%i uO1d ZP;7KbX)vn3,%=Ő%h7BS@.YT uO1dq-a'hBS >Aսb ZPvNbuo6j{+=ŰQX[)- uO1l-VV{as%hBS +E1dq-a$hwBS &Aսb ZPÆHbu:{'=ŰX;)M uO1lb-VN{a{"hwBS E1dq-a!hO~{??{8Wpn!N/-#ca (bu[yt妫{UM[ASTCy_5H{b~辿9&$Jrs+S5]S҇ᱬQsި1&n9c[,awl3zӰCnkƟiVi%Ҍs:r6].;K]-xBVuWS-6ܫ˳Hitq *kׇZqP&{-j ׀IM*rTj7*#* 7\1&bc268z>(nd\6mN[ݸոeUCvu ߟu;]NMO[ KxjJ(78{8-)a/L0f&1?塨;([[˧ixݕiD>>- ONNz0}zR%9RsvC%ynJr^GfdPQO7]J X'a / jY]Iȇ+ U93>Y@!j8?͏NuRx5G)[akP={gws°tN_ i_d+?rYᥛB{opڻ~[T6p?f.K.8\IL |K^ap2\iV1 gŀ]s; VUq+#(əi:]TϼMni@S=^W,;Fx,9dC%li)x} O{<<#/Xk6c]3O3u{ͬ;:>[ľmi ?D6)x#et}شu F1dyŴ嘖Ji%V´RA+eZ2Leӛ6E}~ňnHM|`[(*XRR%DF@RU{=wΙ(傕V.X`UV!X%`UVYf$Y>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41644 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41645 0 obj <> endobj 41646 0 obj <> endobj 41647 0 obj <> endobj 41648 0 obj <> endobj 41649 0 obj <> endobj 41650 0 obj <> endobj 41651 0 obj <> endobj 41652 0 obj <> endobj 41653 0 obj <> endobj 41654 0 obj <> endobj 41655 0 obj <> endobj 41656 0 obj <> endobj 41657 0 obj <> endobj 41658 0 obj <> endobj 41659 0 obj <> endobj 41660 0 obj <> endobj 41661 0 obj <> endobj 41662 0 obj <> endobj 41663 0 obj <> endobj 41664 0 obj <> endobj 41665 0 obj <> endobj 41666 0 obj <> endobj 41667 0 obj <> stream q /X1 Do Q q endstream endobj 41668 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41669 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41670 0 obj <> stream HWmF_B"OHD b}N,Z 3]N߯yٱtJtO~ɯ_PZ=}T*.˭*rMZL5<]5u;S6ra&yV'\YeTH8V*tU>hf۶#tjM>ԯޅՑ^C['YszϛYpc AɖΑu3#U|_YU~JW*\tIUR#`\$UJr*1 Lj%Xd#Y #V,ice{+[ w½p{'{ }p >9p 9p p_p_p_%p_ %p_ p_ p/:k@i9J,h-Lj%s,@k9F,cĒ9Y#p/ZkAk9F,^ւr,@k9F,^ւrXhXdrXh{Z Z˱{Z Z1bcārX=" cĒ9F,cZ1bcEkh-" cEkh-Lj܋:ZEh-Lj܋:Z u,Z u#p/Z@k9J]~}n۾meNΉl8!}7@g^3uI_]j36K:iƴ:n|1ԵKbCt>#>Т^4\Ig0֎g\n?sNVolfELʲ`L\ 1Dyh۽vOH7Gg]Yr\Cb\ ;ƫMWp$Rda+ǪC=TۮT$RlÁ|v7OThTxj7QR|jȏGVuфI.umje#x׵:I /'yCۘL Ado&Nḯldb~86#p Q{:yhG,qaiT-})]D?yiн 4n?5=?E;cRDrhW; :/ J)F JT\<Y9L;X\Gh9? &OӂBgFt6w?/uo2赌Rrp.Bo+Ç.)0_*1tzwke%Qv!)@O"t 1JzѬlu4(GyЖʘO̲Ct/@?! ҔU_,REXa[ ~BXʞm?kMP\s\f-f:עY/B$BݻYލ9]u.dXn|"U-ɀ\q й4"$o!%?WgC}lP593g,lOg!'U+¡T߆ccһZU6Z `$]\Mm?S4, +E94ʹ֊YJdL ~DEzx}FGou 篟O!lendstream endobj 41671 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41672 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41673 0 obj <> endobj 41674 0 obj <> stream q /X1 Do Q q endstream endobj 41675 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41676 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41677 0 obj <> stream HWmo__d%z4-R>L{uYI[I}gHJ%gPg ןab?pX~?A"d.YZ(,Dr6w1{ ְjWM͋zi4458{MpI,aǠ 1+Y >Yl!W Q>[&DT|Gvq8|wpe/xȤXwIdm4I, a1pB[?" >/1{`A)'. İ ~ Ŕ>t0I,%ا`z3}>'`{s}/Ǿ `_zKلkkNֵ!gEֵ!gwm"TET պ6D=rB Pj]j9Z׆(ZNֵPkCS-'TET պ6@um"{j]j9ZPkC޵PkC޵!gEֵ!`Vum"{j]պ6D= B Q{OPkZ׆(ZAֵ!`Vum"TET+պ6D= B $Z׆(kZ׆(kC޵PkCS$TET+ պ6@um"{j]j%Z(B Q{OPkCS$TEֵ!`Vum"{j][j]| Pj]| Q>2*R[ 6כ g <I,JipTzn.6_!]8HipUL3h EReLϣ;O]||ZE腎7FMn_uvPثO/^KsmF GfTtqqnbM7]bEiWq'lQ<|r8zo;8!8G 36vLLpܝt>w݅ ˨x1{;=ݽ)K7+~`pW8^iW8J.^Uv}?.Qr?]-L\19"lqZQay&$rTHfq?T;pA w88uMdfڞR8HS̍`KZRxՄ'/inA7qZqDG-E}Vü/ݼ?X)"}ܫm{)iN[e˞øv|!0>~~<ʄ6%<4\e߫gQ b)0F̆\X`/uJap KEe &'(8^B. vQD"KVlЂF2ucj_gfƳ9%6((o\c:f7V4G~4{׿: {5jvU[#8 <&R8S*Oϭ&;b ~W6=5P'b 8ɉfv;oݳVP4^( ALݕRZYf6\WΡGzY:voM;H-}A2?}몣硢VՈd7"ZjBU~+\Wƭm4bH采:{7sŶ8[VO}pKoS3e'8kalWB/gA59х} K7rWUHPhXs0P7zvg%鵟DR` j& \yV9[kU[s;X?"YX 0c6թjqMVHꃈȫpño>$*gVGkxUf*<=@/ PN>X&~T<#nFja2CNAp0S\c3@Յ tVҖо8_X Q +%*@Y]eD躓L+N5DFeS1UPAǸ$#pt5 c:h.v-[;gǶ2A6* J];6P}yK]XJsuVD]Ʊ" &K ҄|oGDj3r_H`oT1U4WxߨA6yf݀K$}4Yȑ0Ǻ_hF3Ҫ}]'l,>/P 774 0 R/Type/Annot/A 41679 0 R/Subtype/Link/Rect[93.6003036 370.028992 223.632996 389.709015]/Border[0 0 0]/H/N>> endobj 41679 0 obj <> endobj 41680 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41681 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41682 0 obj <> endobj 41683 0 obj <> endobj 41684 0 obj <> endobj 41685 0 obj <> endobj 41686 0 obj <> endobj 41687 0 obj <> endobj 41688 0 obj <> endobj 41689 0 obj <> endobj 41690 0 obj <> endobj 41691 0 obj <> endobj 41692 0 obj <> stream q /X1 Do Q q endstream endobj 41693 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41694 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41695 0 obj <> stream HWێF}W9yqb,cH IT$}oTx]NjNwӬOs￿/"ᇗ_%&LL.SUiU\&CR K4mw}n_ԭS*Y"ejh8Huaϴ*tOzCz"cՇ՛,y>mj))r鈓*yG7Z`J &L;<)4UQ(&+qg3 z)eE; I>&M(s`6>°K&Za1aX!"T|lXL b7+&[3(* ^.r(ATlUCUyeȚۿֻ˹ܺOnBJ ncf yǀ걵$180svNWuvyٍc3ᲿoOn< ux2gsQO_AVfkH<660kܰH?=> Xw-_O/C@[ؙ?/}KL٠U F "lPpӤ4wf7G`jEz<#rӾG υ̵ٌ۶ۺ,\J@hc-cZ傢+WN6@\f9xD5>&ɍƗxR4Y5;UWqr&.Ni(ݼRK!T)QcC\)FY&4 X϶J,ץtME/];7wnj3KoqV1ֱouw_d=:|u`f9(0bC+ =`Ki]yOxa;ZW-g $*Q%*еT&,n`KA4am-B\hF͙h8Ԧ\Yװ@/,sĨ`Y 2C7šUE=?TT7*%!q =d.P?06|.{DܷS uۚK޶m⦶ӳU¤vBkaJ"i#Gs<:Wл1c/?{F6Vb˺(v!ۜ37 n{|\;ۡSg ѺYU{~VJð;\!$p9+Ŷ֗>u6p%TRxs9_zS^MЇWĻvpcWw?y\Ou\ P?izflra1r YhmHZs!,x s9/{1YA>DfB.P %v۹Yt+|aJڭG=Ono~Blx"ҾЮEa3gp0ǃDB|gssVML_\B'ZJXCXJ$9[?i*?Fé|ɘO"EUK"`ve-r^ZC_ON?F59 E@Y wަ^:5q45>mRS=mُ^c2w!j|t6RKq õ{lӞק8@ ym|; ¶}X@yV;xFR2!`vm+HXuUu{{w۞Th4Hz@C SόfCf W`94di7a\LB%W{=<Cq%hj :D[eC#=$ntn<|} I*dS+JZfY`6$|A OP"'޺fGbǢ֔{淭+e<Z`~Pa"ۓlX j B7╙E;+mbeӀKmG2Y s;a΁hHޠ«\ҳt&ߋin8q1 d<]_GJ|g .f AB+媳"0tsI\7kj"8劥 Oj=DϺFճ; ~wfu\֭λzMЌnzIİ3P8ށtOEp/M.HOMHO#!F6( y9s8h6T@3sB9/!#N|b8 E2_() sPàZmy˼Ȑ NCg f0|!ИFS7 9/O?T *hon~vQ(|_Us{t!Y'Ґ,|Dr30@V "È2B5R~'Jx8"SlWOohEYtqgV^k'~bu0t*j nkn^Zly׳xZx\-%<<< I&BMzX?^\Ζ|)L SXB3`Nq 7*T ))J+|3qŃ+ʦ {D[ ʔ/%ȢgȣSjpsu}}s? 4 @nqG_ϟ.XCTo0)Q'Wek?+eYZXJY[W ^HIc-C)zY˽'VZۡJb?# >VapApϯ0p2ChRáU͟*'CzɥU/tnn>6endstream endobj 41696 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41697 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41698 0 obj <> endobj 41699 0 obj <> endobj 41700 0 obj <> endobj 41701 0 obj <> stream q /X1 Do Q q endstream endobj 41702 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41703 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41704 0 obj <> stream HWm۸.A+Ib.A\up@7A]_Ro&Ǿ+DCr宋_퇟4~ѿ#71+T 2dZĻ*=Fi񸎣TToMxWG7Dn͂1@469<-E'wղm|J4L]}]2bNY=x]}PN#4c1p_-G?/q >Lǘ0wK|5WqddH 6O .2ǘc< Oem 6@q<4sm{{{{{W{W{{{{Y>#g`s} y `_  >,'DۚHm 6@m 6D}6D B Q@PoZ߆(}ZAַ!`Vm"TET+6D B Pj}jZ߆(}ZAַ5$Tm"Tm 6@m"j}j%Z(B Q@PoC>P$TEַ!`Vm"j}6DJB Q@Pok"Eַ!*dEַ!*dm"TET6D*B Pj}jZ߆(}ZEַPoC>P"TET6@m"Uj}jZDPoCT޷PoCT޷!*do1F) MtnyXGRj/1O->dYe&^4Q{}DäY*FTłyg\0^ G^*9Ve JɡW2t]?€WwZWzx뿾)YtДtd"5#ӤEʲtl[>l*G$\ALu\ \NC@FJ9iqynm:w4OJ/R?۵l#$De<6n89J8SrI츀zƹrYrꋔٶZ_,MØweOozJAԙ}"B2PjwMټX(ߟU,r>f2fלTVU6n{Q*8r0g t GL$6BM3Wa mS}W5{)Pg`SoK^ERݷ{&/~.벫V. c=eUޖxUa5K== k{daRES, ֆ]*Jx \M\,С31A\E%ՌI>}|e)z#>@㏮$>._I#+9HB(n0sטF%ev/ϕٲh[ .?\z#.vJpdFwn+"fJbP;gM7&nhCSmznTe8T*onyQ)gMʰ^ab O+`߱1֧?+cd *O4[34D&t tq=U1.\+՟kg[vGv:<ٮrǂP1YTAPo~l]{l }Cyڦe:gmi`@|>X.lgbBau 0-Wo^KH̢BڔYrrvc@on*'FQn`GY2Dz}+~Ҝm'?㦧Ks}V ~xxih7>{mǞ2޿N|`|ܝ!h{sYѝPPD.g(>oA{vżǽ-m ӫSR't(,=W x?4M]:R.6!'H;x߃A%1|vorq.CBPS~Hs}bDw?P3]O뒦K9i/D,*MzmgIloÀvhbv|r1Ad7~OKK{{I?.25@S{oLQYH`8r/?=&"#/1E<+38A*I'Q(37me!4ПBzes  V_Y""GYRhLhDpY#r@ q0e'w~C8NH+ 8π kxDDa,J HS153d: WF'"c=c'%Oy7IyF.|W[k||tAŐ˩HrTh<rco'r Z!In޼X\_B,2rYf9 GV3z!ʕ GIpGo>+&EC\pɷoifCP&dpì6V|䵑htJG)uKy%_媾d6^՘ȈڄRfeØi̎'ei2‘b̎+:>KIQ.3Dr1E1y@gΦ$_/^5i ¶7bp< ٳg>B1 `6"S7T;=HTԇw@X7,',!8J͐kO\PvF#jy_k;U4q"pS|Hݗ_kwSlw \ʃ}vMNPs}tbaAsLBuNC`% N2܋~%PwI28|[MtHA-  ^,IǶj:'~G&U?(/14kޮoLy86{='mGS_4Xx& /8/vjJHo/_; oB$VJ⇴J1nnˮrˍd.$ˣ!xg| 6:~v :4ANǑ"m,ujN4!ufC6tR(A 0hF |̑08Ǯp0Q4K<'YNeRޜ|WͿ|[%BA<&` p,.G,b{22񳈡;eycA #}y Ok5ڊ1gZ +YwԿ%6Lv$iC ḻE?ҪԬPf%WR52BnBuy\tՁ9PT [i SPikB6 nXp *hPP5߲ůVmMn 8)tv5\^{vc0:uLjF껣OtBA뗿o䉘!b<(@߲[AH˒E1sp \ \%/vR taP[/ $F)xqY > )s+5ѕzʓeaPO!wd8I*{PTEWȚXtn)~:Q9cFLO+ .q8WFXr.Lӄ[K`u$h| 9LbHo.I/hZ^>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41706 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41707 0 obj <> endobj 41708 0 obj <> endobj 41709 0 obj <> endobj 41710 0 obj <> endobj 41711 0 obj <> stream q /X1 Do Q q endstream endobj 41712 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41713 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41714 0 obj <> stream H_ܶ) 20q{YńkN3Z{Ťk(k@1Z$I-Ÿ'LjZ%qORb-Q{Zͤk@1Z$I-Ÿ'LjZ%qORb-Q{Zͤk0Z{Ťk(k@1Z$I-Ÿ'5LjZ%qORkb-Q{Zäk@1Z$I-Ÿ'5LjZ%qORkb-Q{Zäk2Z{Ťk(k@1Z$I-Ÿ'LjZ%qORkb-Q{Zˤk@1Z$I-Ÿ'LjZ%qORkb-Q{Zˤk1Z{Ťk(rVa+-4ywt7g+|^^ 6w"L@Ƃ䅋Vli|}A^lij< fip<'M'{5Pe2Npw?ݯ-^O13Gq;ӟ_ Ub}vxkVFV{gM0ܦvWWۄ| KY{ՕY{_7*gd99a2}>j.0˶2nO*<܍?+W=Y^4M=sLBM`+O((ewSc 6Q+NjjQnybA6 ͙rm-><~]W 7ƻ"JrnheCrO/{(=LK,P,L/5*?*OFԾ*^NqC2V+ZЃՂVZ˫U,zM/-)v^V~{V~cPvBufji15ixJCB܏>7, ck0Ԧ)[eM[=]{zzyQy~a^ ԑΏvS;7 *^q.W~CZi?3pf|;\$O55mԀok}XgeT M j>CG)7cvnx@U>k_V\^srOV\mޢ<\W+_7+Mm#Wyϊ6[o} |%ϗgz @C@ydf ݇3ثh>ŷ?p.?|ݦ]TPg@bX g8@)cUɏ@;5uWf@JXB%ej*`PY ̊חC\O`4gp ϗ &d9#s/Ϛ2FK[b{Yz)VR>3xq>Kmȷ?OxzՄY 2kEəXS52,g@Ur.<ӳܶf-*>Z>IE;,"qV}{.ZDf侞+X> w*rj(riPnVCcDS ^ }ՀኲPR鞴`j(15$` 1,C R%-EjB€(D)GH)2RYSv]Pr f*(DPR* A +OHhЊ6ѓmDZWp,;ɺ/r*,Z=;RwUK-լz-r-BN0%77ԽؽsԽؽ Խu}9VT9 kJbv=JE^y^i~\GKJK[MK)ސ*޶\4ܷ7Es}s5{&ZJ[*ꮰPuXQei )TWh(H%Pe^Qewo)ZzR4]W0SSS` ''T9YJ+)rrⷔ򘪷K'ZR Qa]|SzCjrZS=E-4ʍ#+N/ÅjV-::>}&֬Yc֨ iWEe;Qjk{?濩\1Fڙywt?$>ӭ 7w?tC0 JNeK =*_PfNFN~xm|<:kK1I @)P`(466ln=ٲƳH<$CA8bΉ=%4qnCBI.|w4~!A׋֐IhBoiVVSv3*~EEnx> gkX'ÆI#d뒓|Ϋ"JvgoFh Ɖz|4 ា^0ΤTHE%EQ~@Gsnd+3 ~~입'WISdN&/eQ\ T*f޻~ytG9ϋT!74@Q*Jĸ|ðV`jY)5}^h+Yi+b0b4r/9K*\"I1&$p_oD=g̃p.FE>rBE2䌭tO(tJGΨTtJ] }[),ޑ Czl)I8U_]5La fu)n%? C,}{hŕ'٠βA0 #\V`ƀG x LhGhb3W^72E+'BWW>;[K/@[Pru$u@Y]=7P`FWzq 'tY tmJ!"tE5wrg8W+K}=k:(W47ʭ_JJIb4{ myhVe6@j 6ذue=5&x?&)% }IHnW J[t n~/-C]>BORJP0+96^twc=CeDz:7vaA&PKbbwO|fUU/f0Y;z~lja ~UeLINz#=Jr8I٢J{`D/⭄GU(wBenP\X5]hN r,KM|߿z8안YǟȃH#Hb=`T-PAN;]guiɢ V;:kPƽYr]b@GCu3 AE)YdTR~)%W^b&4P==B ?S^|Q͍Q7a+oaQPѾ*R%W]}(h%KsPFE)#aBAp(iqǼ*Eo>}ݛ̇endstream endobj 41715 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41716 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41717 0 obj <> endobj 41718 0 obj <> stream q /X1 Do Q q endstream endobj 41719 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41720 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41721 0 obj <> stream HWm6_2phqIsE(M(D|_C$r)3<͟E7~_ #?#( /љ i"1rqR毪)z6mWKoWf?Kv#9'IYF6~}_#BXm>m]Jsz^ueW5ڿf eyNbf5z#hzHRA gwޑOH˄ CeytehQ}LbrÙ @͠|8Q͠4sm{{{{{W{W{{{{OI>A'aS}Oi>Cg as}f9"ZvZfP!{(D͠B͠B Pj}A! D͠jZ(D͠jZfP@QoZfP@Qo3(}Zַ Qo3(}Zַ>P@TDT *dַT޷T޷ Qo3(}Zַ>PDTַ>PDT aV"mBT aV"mT+6@!mT+6Bj}!Rj}A}6 6 6@!mT6BUj}6BUj}A!*D Pj}A!*D͠jZ(D͠jZfP@ Qo;DQo3oZfP!{fP!yay^m-, '}h9MHd{n y =G\wnX}B?T޷n4np,b4(e\|K]T|ھ*d[J4ZL\ ׈y$Ss@mYܞGA:qWu!;`_qwicFs}4=UPWndlFzZCXu{/3+s8푀{R}u!p]WTn[GX99|pWFwgeg67yIB͊89zAjIfm{Oqv"8>Yߝ;RBdX$J,HTRPS2\Jt;>}5\rEu*+@ W2*gjR}qvmk(2 h7@ğH?;iK^d#8ލ ;4;H{})x5p$7 _P9tfP ՜\Cdvt75,^pw>@J& ?M]|幔Թ TܴY)t?m5TqcI ΍nQI\ #u79nr Q5^* 8ْRg  عex[=w4v?t/F\9$!!%f93܇YNC'f"3\ȱtOswt93*S`QXvKT(xJ/K!2@-po꾷h s=/;8UGwYWY}4hɀ $ ؤ]3Mhܙo6<^K[;SH4_h>^&J XQZYB7v$r}^ʲtqR,78Rq0O%9ES:rfG]vfߎFJW+zgGN0*"FbfcCLg?M-ө3S\W|Dą^+8tozxf:sMv:Tj5OqUGAY1cn\0tizy c=OkأTqP9!<|j%oj_ᱪd&&o& RTjlc;O/H@ ovu,xGҖ平 LGuPZ9.|t ]rxȎXv5ϠMfRHK+_p_/+_\O |P箮w.Dj*Jw֪?ղ D #+%$z d(t#tlԖ KʍgȡDڒo7֐΋Ù3mEPnW YIuVLGb0 :N2|xA˦Bd*k-"Lw:=ӣ@37WuSuV h4tb'5K"VYm߿=%an#O 7IxGp^G,~ra!/"Yee\' _PⲾs d#hHQ@MY`2(hEԪ _N+$26 X5[Hq]Y~5BdHSoU͠l" pMu>˜W)4aV:⠢;ΰ%O@Vx*@Γ1YPXKPIUDW$rP4P3קSp7b|a~4n@Ѵ㾽:3ʽ¢ L pfJ,N>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41723 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41724 0 obj <> stream q /X1 Do Q q endstream endobj 41725 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41726 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41727 0 obj <> stream HWk۶_A~G+$ EMA"+kQdrA=9$ W凞=}zW,fϞx27*b:Q"XH v( bvpVCY}u_lPPPWojÿH[` H 3q6Sx]}6lD81_}޼g*i:M ,VT 3!'`xS}O >%ا`y3}7{7{OkPkC޵PkC޵!gEֵ!`Vum"{j]պ6D= B Q{OPkZ׆(ZAֵ!`Vum"TET+պ6D= BmHB Q>{(B Q>{׆(kZ׆(ZIֵ!`Vum"TET+ պ6D=JB Pj]j%Z׆(ZIֵPkCS$TET+ պ}պ6D]պ6D]| Pj]jZ׆(ZEֵPkCS"TETպ6@um"{Uj]jZ(B Q{OPkCS"T&Twm"TwmٛX ->x 68|`Q’İ>yq|Gv\nzNyE)4;!i qaS#qNtYjK\DEPfE|h'acyMWmSĀN-dy3JH%&P)}VOr;]yDǨ(|X։.M':~6ƪAsܗ؍GDk=3iT8o<إP%eX{в)Tx_6}>kg@uu{h-a(deƊ=:ے==6Uo3@Fqʱ5=6>.EIUWme+U6 [B0 F2:]E)W%Enr9ȥ.d%OlvcI$3()x9Hud 8|r L,+k%Q_c\N_22`;7G^T} < R^iYPNuI\e8ֵD Htnkb"J9Pߏ[a ۋ {E`{bSɬ)!ݶhORnlބG{F]6G1'Gv0M01%%N4|2H# 'jsJ%qj(mlcwC+vto#LKJ Y@?^yơ}K?AvWd筋_m?Ï0rX#kYm۹¯e*_SbW{[%{;W$1_Ç,Xdp^}/', ]0-᧰y䘩2a mUM?FM" 7V͛c%l 4 `x'rS~50!Ծ8by=p%Q6qtBijVVA*qw}a_&a/\[A!D{hS0={YU*~Zj;g8IƔ˽CP,ze Z{Do3nŷsCfƱkX켎 هnœ0 ㊔ᐫȦ3`])4"n!A0OK݌2EjaK>ԻN+0)6 1a,`9_0O8u%v*` ~Y ηeaGj &UE'nw(4Jo(жV]7tp D8zpQP88;{P세o= ¢1;dža)x-7nDMnnO cxJzPOV A7 UYx뇡uX%aip~gqCNءE)EV!Xi5ʡ0p7|DT:+|L>BWe l^.O0~*uZ}^Yy^,9ݯ/+,YGgu-zD0*ф#EGvp47D!pF:^[.,ZoM[]KöŔb4<ӡ^ͺXiU+][kCm-*Z׾=r1*VT+v2p@MzZ%,I!VŔQUP+rBŮPoA0Gцͩ)Lo 4 w׶p;FOKs`AӐ@+w Ѿ9lEsaIL1pyQrO75㾝v^k2BՂ|'kDڭGp<76yM6ףQG=n+Ke\Vಌ+rƕ \9*qWJd\U2JW%pU \q9Q.q.jC6@)K1.%p)ƥ.͸tS.{-%p1kAԆ(^ 6D \LZ=!Jbׂ QӽtOm{jC6@ 6D \LF=!Jb7 QӽtOm{jCtoS.{#%p1AԆ(6D \LV=!sQS.{+%p1[AԆ( 6D \LV=!Jb QӽtOm{jCtoS.\=!sQS8Ks֗!T??nMǏSw ޷}7]}Af|Fn`ȁPWfY }/ȔJ89w*ſ?$=czCM>%yi. fH3zܜOwO?$yBd=V*xC;ol~O6 0mendstream endobj 41728 0 obj <>/P 926 0 R/Type/Annot/A 41729 0 R/Subtype/Link/Rect[93.6001968 663.229004 450.432007 682.908997]/Border[0 0 0]/H/N>> endobj 41729 0 obj <> endobj 41730 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41731 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41732 0 obj <> endobj 41733 0 obj <> endobj 41734 0 obj <> endobj 41735 0 obj <> endobj 41736 0 obj <> endobj 41737 0 obj <> endobj 41738 0 obj <> endobj 41739 0 obj <> endobj 41740 0 obj <> endobj 41741 0 obj <> endobj 41742 0 obj <> endobj 41743 0 obj <> endobj 41744 0 obj <> endobj 41745 0 obj <> endobj 41746 0 obj <> endobj 41747 0 obj <> stream q /X1 Do Q q endstream endobj 41748 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41749 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41750 0 obj <> stream HWk8_) +qViGÀkHP$E:ؗ~ $9u|ﹹ>s.ٛHD?e-`\9IbA' K "#9 cY7/C 'ubgAY_)$HJRIHu"Z,d1M?'\EE۬Z1nCxw^0e\>#DS)]vlL-uQ֎J ayߟçlIrq#mE& `\r9IGr1ӹYfY aŻ8{9{^x^x^x%^z%^z^y^y^ycD}쩏>A'QxD}׈z׈zO>E{ei]8Z,_ qY,WbB\b\׺e!=rĵ.,ĵ.fYzϵqYs-G\bB\b\׺e!=rĵ.,ĵ.fYzϵqYs-G\bE ׺e] Xk]̲|.fYzZ,DZ, QV u1`!u1B{k]̲kZZ,DZ, QV u1`!u1B{k]̲kZ+,WbB\bw1ջ׺e!=Jĵ.fYzϵq qYsD\b\+׺׺e!=Jĵ.fYzϵq qYsD\b\+׺X(ĵ.fYzZ,_Ym%$i*If"x$špN9UJEQ__eLlCh̋Wd(+/O?7fi8K9 |{Aޯ( /˔FiLb5 2< 4ZU)D,1V K"xZჍHom͢NXxeMPZ Wxc?r#I˦16MV)k{nκ,ڗސ=C8l!ȥd%X悂ܘR 0ZFH)ڐm^-jӦ9U+6O@|yx0%1e;Rد2NaS!MW!7k^^ID$J!+צ|x0 6f#^#+kveVRd%t0eCNe[eݩ˃Q_],i-*fȟ#-ZO2eMvՆ/CXy:jU݃$0]ǬZ#U6)hq#PU%VŪΪ)mݘPPztT4SS`r2jXu:]T+uJTKOHNecow> ;yҏ-dHkHd4f߽7X|G65Q[#>.9]D8'E;~;e& ԇS1U _k2 5fhյK|UPR*dtLeL~Qce]Ʀ ^wloP|^ >}|rL{gr` u”.Z!ݽ/y-ATvi 4Gs)ѬS~xx50դcZK~$h!EdrXkޚd:[ӀحI\/Y2pV܂5 s95cϰ-}rxVoYȯO! S?aǒ#>)ڏКl(7{Jmgm08 tjXzʄ }9 -mgCSNcfkfG*'.+ o[8hᪿ9T_ l4 &0{"ddOaX#2qiXX,lU*r;jtFEjΕwnݓ|۶\--Cs͒X·mWOyy] w$+g6$̶uy]֦!,=qtݵorvXݿvEsE6(~#1\34qF5_gg777Vs]AzϲVc)` B%ẟpX Kc!zNVHԲf)4zFG 2\.klض嶿BDDv.7Z֬iD*d2q7,lri dM2 n)6-CR`M=K0\!ⴶX.HΠbgۧĦsnVTVS]evbpg~@jS"б[v[ӳ/oQSuP/_:K $_M̷S=îgM" qR?U DtTZ)4m"@ZY dה8o!QAI̐C̛7 $d9γny.86an.HQ`@7YMo&Mn@LOG\W$)$Jr6yFnC8m#cZ&T+в.iwm3cgZI`4pB 3@frc}ͨnlCʼPBevo lm'^ ρ[ݘ8֭L~hP16ār$DvCݝvFDzwKyb,WWs6E wG?8ڸY_Ł&֟닔faB,#46{@gdD5#VZ*ȤK1pzB[i$]Иßw| dIYbPӾkk *'IK\7obOEY ([k 3. O'_"J1#4 $|hA e]9 I.D]W]TC*0\ƒ-3 ,4e_Ҏ)(ԣZ#Qr$_if(^)4:{`>Ղ9P8 HL-RKVO4P!Qe= ϘO5aXcšJQQdjL'E:v=4mQ4R œ jTטSJ#TF#tjƮ}>뱳`G"AL+Wn\wrn\'Ro;޻Gd&S _+V<k@߯Rw[mVeTet!_?ed;WdIXۼ޼!*pbozqU+WaC]pc+<#ьFA_T- Xc>/P 423 0 R/Type/Annot/A 41754 0 R/Subtype/Link/Rect[129.602005 381.631012 347.016998 401.309998]/Border[0 0 0]/H/N>> endobj 41752 0 obj <>/P 423 0 R/Type/Annot/A 41753 0 R/Subtype/Link/Rect[132.931 426.513 324.763 441.493011]/Border[0 0 0]/H/N>> endobj 41753 0 obj <> endobj 41754 0 obj <> endobj 41755 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41756 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41757 0 obj <> stream q /X1 Do Q q endstream endobj 41758 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41759 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41760 0 obj <> stream HWko_q py|u6^7H6nm.! mf*% CuFH JۨW>E꧟r'2^BWItjU:X5ѿ"udTfVmگryZumt̪uJsaQUTĪPETYrM\O/=ӌMy&gYOoզ馟C?6IAk=6rڪ;eb1K^}K.6 BqNYt S0 qXt ,c$aJ{7FX`Y ½p{'; ½ppppppppppp_p_cȂrX= cĒ9F,cZ1bcEk-h- cEk-h-Lj܋ZZh-Lj܋ZZ  ,Z #p/ZkAk96h-Lj%s,@k9F,cĒ9X#p/Z@k9F,^ցr,@k9F,^ցrXhX`rXh{ZZ˱{ZZ1bcȃrX= cĒ9F,cZ1bcEk=h- cEk=h-Lj܋zZh-Lj܋zZ  ,Z #p/ZAk96ZKX`rX=Lj%( z)ʨ*2qTiy49VWfZ~ \s8؂>oo;e>UeP͎ݘXit'ikkd}[77^vsU›{ (ެ'=vlokbW;ڜIWMݞ;l?˜\?u{fsRQ9՝aNm2|/w #VXB-/=) mDͺ\UǓEs7x`9C,g=OU]])W'/V*M#k<ݎJwN*'lY8JDǣRub_.6(l0rUG?N >>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41762 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41763 0 obj <> stream q /X1 Do Q q endstream endobj 41764 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41765 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41766 0 obj <> stream HWmoܸ__dR S m{@Zk+]9+m!]i8s8?C>3^ZzOoފT|K$M"KWFdNr%lL]KlTGR4"{k]fSf)vMt]z].R,VQ %)lZ&z_˾iBei,Ӥga--- }/EdؗahV2MRB(FԆ=!*dOmbTKmbUj Q @Q-Q-!aV16D1*F(FԆ(}ZŨŰTRRjZjC>PbTKmH36D Pj Q!{jCTȞŨŰTRj5ZjZjC>PfTKmbՌj Pj Q @Q-!aV36@16D1jFԆ(}Zͨ6aTKm SRBԆ=Q-!a06D1F(FԆ(}ZèŰTkRRj ZjC>PaTKmbTKmb5j Q @Q-mQ-!*dOmbTKm SBeR)7.7EtX(!b "ϊD&l]-^tZ'/(DtͶ&~ln{D_.m6_G:܃GN) Kqp1i"S5w:o' *'Xd{mdR%iɹ_\$a12 NT!j5wz$EI 7ǯAd~ `ogpY2lb-dtO'59T!ʳ qڭu)rgH;~Y"֐8D$Wx},գ>)&a*\qzZI+vEX j3‹2x!\kӉ˾Zk߾s6ɼu<e!qCR@38w t]!"MRY4@!jqvx)%pն(G߉fI` .v{MĪa~HI^Φ=?&ZIi!4*~OeT ,x 'ׂ~R1Ң:sOА%aRG\0P'n,S^%˺ķ[1B,AboC0. g3 2T񴌇PaC@Fף?_ܜj@9UQW(GǮ]],ns? ¡,7+X0֖ 2CUXUa c_Uap=| r;J*vFǯf{NZK<=ri9Pf`>w=83jd*)LR8<7>,5`n@/m 4C'Ei#|?34}bgӶ0'4'A: NhrK(=I0CaU30>)V-gO*C;PձQǫn~{=]ƻF19hklzCz Cf!NDTgv[)T~bC5|5-ۺdz(ECS2h-F#UdA+ucRLaKUdn!bO\.j/~vW;l®*/KlLO_^ BOB.saꚥ3*|xI'zoʱv\@:|Wo!r"s'nAz8H* Ys9= NoØCH2[_\/kXc Vj(Y͝+׊)K>sK1ҟ?( d7|_~~^>$wiUF(hc7Q"m˂d#]]Hde oh 3dSwsv˱5K^^8 L&9edCi:OozxPms Ȋba-vDmrGJc.1"%7oNin -(ANJDpmu˽r)D\kfRSKvFKoIUgO4Rϓ.= vo+Pm9J/Grpgqo49P gpjg9+@Md2Xc\n xKhG^ ~6Kf:g(|nu| X cv!Fٰ`(*Hl6iKv>.Q@i7cT`\!N#ŘMs@,U3UpO[nO +d39`n`]FIuS㈒ieM =:M]sg'Ǫ4,zV9w.,:ۇpXi=Uыo¥Ur~ hD?J g^?'OxѴU+i|/.Wm8rAOP5ZDN/* uk$q8f)fQncl\5moHaݷWWendstream endobj 41767 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41768 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41769 0 obj <> stream q /X1 Do Q q endstream endobj 41770 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41771 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41772 0 obj <> stream HWmoF_p:p( ߚ&䒴8lPdڢcJ*E=﷏$JE`W3\i۩||'/_:=.҅SInԨ,QbT[V V7V &]z[uSum=SmL~6f*I/Ҫ ?I UxMŹ* ̭9)o4;iD睅MY3?F<3I|9Tuӯm|u ӕ'e)OOCFF+y.bu¦Ip&(p|s )GV8F,9w w%r@9F@Kށs^́ȽK-Kjq^}r_DEQ8Y*IYjUy;oQҤ 43m8<=(sˣH.{2f0䆟]y[MTTellU*jEWIyy&쑫#75j+Vwt?.-g_lo#Zq~s }Q=mY_y1$'Ez[smx88|:moOI?wpcIfM=8]wf֍11-9OmYou,mp~W-NU_թEOUGNO̠(:gͧ-Hֳթz:^!m5PVJixTlu751^F?nu8^~f}#3s' g1-.Muo>} ڮwOǽ}D}~]귟sA==5i{X;˨1?JvjǤtREjw0=n[zS5b7tumą?tz9)]ȍy6*m#R'۪SSwh>nhO$JEQ`s(b٦khw!䓇2Qws ydg9 +(^4+f4\pAz{ZL?RcP"#fܯz!2h6X7+p*nHeASpb)3xwYOخ|O&Ho" n "w yKpge}0;G"߯/N~4u4uNI$]KJ2(5ź+,ņMp iЫS #BbE,P95TH!C -Llq|\mTP+1`.5.4%$"way[&^qP?Am)+4uR/YU?V7.:ZmB3vW?01 )ln09c:& `jcd|ÌT]W*%)`à2 z;)H`[X^+¯N|O ܔ Q/SDJ @鿐+ޓ/ܲ]FJ͸0a N:#}\wh{ˠV/`AdT9ut`Tv4^օ\06W?/)Ka I`>65ۺõ`vߑ@RL*ʆ߶ 4؃; gnQUވ]PBhĚlTvW_H)A/B.ۍB H+x @/g=''GOcb׻o߿_C;endstream endobj 41773 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41774 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41775 0 obj <> endobj 41776 0 obj <> endobj 41777 0 obj <> stream q /X1 Do Q q endstream endobj 41778 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41779 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41780 0 obj <> stream HWm6_2oz9 \6HѠ[Z`WVbK{mHEc!Ț?>3C޼㏯߾ E䊧eF~gMHEP޴;;ɞ6݊?%lH VO%9 u۰+i8biK$aqݱyP7Xl\nUgvT6vۈ#g`s} y `hVmHm 6@m 6D}6DJB Q@PoZ߆(}ZIַ!`Vm"TET+ 6DJB Pj}j%Z߆(}ZIַ#Eַ!*dEַ!*dm"TET6D*B Pj}jZ߆(}ZEַPoC>P"TET6@m"Uj}jZv4Z߆oZ߆oCT޷PoC>P&TET 6@m"Մj}j5Z(B Q@PoC>P&TEַ!`Vm"Մj}12j}B Pj}B Q!EYFۭdm#f(OYl{*χjXJxRHݱeۖm^A)ͧ/QuU_U*<: oco. P $ %zD1*\],aﳋ ~ZEe_󸲃],1~N:בbZge3ba=VlO0LӜyӜ\M>MMCj&_PqɓiL͓4wwƦ)` `yV|uo?~(Q5&2nIR(cxn3!=ڙuUAM¥ҁ6?#'4<-7D;|bu0/_>DSL_ Ŧ]{(1#|%!W.' ?]`WEH̬|a>VhFBiɜm} }ęb=oÃY7ۗ>%flcs*x4@lKwGcjbx+D+͉VQh icy`~&cI:)4mr6,Kpaх\8&hףp`ʰ8Ds]D 9gեR `Tϩ?vMvf[ejzۆa轿 ˒, =À޶KҸ4E-qP)QUHwPcJl4231>X;tG*LՍ}I,,k%3gCoʂ=~S yƛOnZd ?1G8RD`b^Z®E|D7\"9Tn8icVʼn@͠a6,`!וƦMΠTR9ch'YwLGpUW@!<v)&1i}&@ Cr KbJ2Q 4)PXo8ޯގL:1|e' u+5 `Acw f]4f>!уVϸ9ZEQZYڐX,mRRtD_qBgvArdK+ZW O/ÌJ#PFXa0,Jg"11xK}:h)#/lUchypjY83uѹnQəϫCwzsJ:N,<㜫FagؔJڻT`MV\KԃF_ Gv=0 tTr;; G1۠fAut&\;cS.x=Sé$péT38' ƴZƢ%(Ц߭[O Ckh8?R] %BiXԧ[􃗲>l͏oW? 0m endstream endobj 41781 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41782 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41783 0 obj <> endobj 41784 0 obj <> endobj 41785 0 obj <> endobj 41786 0 obj <> endobj 41787 0 obj <> endobj 41788 0 obj <> endobj 41789 0 obj <> endobj 41790 0 obj <> endobj 41791 0 obj <> endobj 41792 0 obj <> endobj 41793 0 obj <> endobj 41794 0 obj <> endobj 41795 0 obj <> endobj 41796 0 obj <> endobj 41797 0 obj <> stream q /X1 Do Q q endstream endobj 41798 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41799 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41800 0 obj <> stream HWF_GV tD\"E]Fʇv=`NakyUS㯿"7߿IJ_eb[4SqԪ6S$:S5XToS5>_U4DovNc#ƌsQĻS(+vL4IeSy#֩S[~~H}5 k/y۵c~ӕ_TY ,d=c`MsIc Є?zTşb)!?O{,U>O7@9K9.8‘B$!+b2d YaQR),ŨWzŨWzׁͨzׁͨzׁͨzè7zè7z˨z˨z˨Q3F}y>gQ F}/E1]1Jƴ;Eq-ŐR Yz!+TO1`1kZ!QV1R Yq-ŐŨ\R Xk),F}ZŸbbUk),ƵC>pb\K1d1*Ƶ;Eq-ŐR Yz!+TO1`1k5Z!QV3R Yq-ŐŨ\R Xk),F}Z͸bbՌk),ƵC>pf\K1d1jƵ;Eq-ŐR Yz!+TO1`1k Z!Q0R Yq-ŐŨ\kR Xk),F}Zøbb5k),ƵC>pa\K1d1Ƶ;Eq-ŐR Yz!+TR眉[5.M,c$ńigw!5@;~Cx~ӪY*Y&UcMy.W~nx|U 5:ӛir3l*܃=ѠNa1K65g2L75հ籣Sba`~)b!,RWYv \* _!1,M9n-}4UVpUhŬ+L}#UW6wx8`qZAM Kp>ތH2 \GL"O bߵcYxO}|Sp۸D|ItakbE͚ O 1'<L^P/?VzjFz#CS;>04n'uv^_E wzk{)W$V6i1;Qf`Rيeap8)ݕ,B`rwM􏦞huy,kj\6ʹd[Be=UodkI50h &ksٗcu B1K#{m! )W}.O d5+Th 뛗9Tv&0uDٟS9 sn?tUv^\EeByYWxf>%,|ee@7vsc;( 2N@@J0|,sNU".E%s;͐inR&A,%ߡdWs5O=lηNU靺7ИT52pji}XdҐXj鱄56īNB>? Pe) P^9֎ 5M9 |FFT#J ,n[pc {xn& !@`ɽPZ[}52[GBo T~,cHwհNX/͠؛ig8!iMa+ǥE2vt𷋴}$ٶO{#W<{!~42`,-J,6l)SCf?$=f:[y P_Xs,O_\yK]F;DWkp2EA590->վtn3ۮ1pM4#+kU1HيC٣ۏUWc\6麏.b>6 4a!ew})2 $^vʲR]lhj{*eA1&Sߪq kt8&s0pqM0M\~}|AE1/O)h6CW"׊_ L2|UHN+/r[&K!Oq㒧sz׋4M~[*_*C+_Ȩj@L*$ys;:R|_ wfiyl+xR xVdjCC^pTsE(/QL:nںmr`.JgJX\i%8`y[$C6x>M-qnǫB|>כ?Tuʫ5U?ɡ[Ht曹_gk&dxrmk^5@Ge")Qzb XMCrQl9jK$Ǜ>~)$Ezs 9$g͉nM8<5\ ;b7E,b"<:A/eQe0/1zEO5ͮ3(G_:+cˤIމ.zVny =.;zpFؾnJT!w>luu|o.Jinn+nY >2VFW*f(zyS'7k/cs՟tnwmS{nFz{,qo@zdڴQoYY 3jdɗBPqut2 A U>+D,I B~VvsIˇᲈNQ "e=֟/x]!h"QP/]6BE{EP/iH~%ꌣ$i*c:TN1NyӒeϗNW5qw%$xrm#emCӑY(bϚ&ADϵQ;C 6mj_Y%C4 NVUPY9+֌3阴S6];:H]K_%@B6qC䦅Wi 2R|"%UV6kJsNY $PVuV|A ri!eYKn< j`67fs퐱檮 2PyѨ'X圭NJr'BP}a0@7O8S(BoƉϽdsd[ipMt,\ZrSXMtһe E-߿|cBendstream endobj 41801 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41802 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41803 0 obj <> endobj 41804 0 obj <> stream q /X1 Do Q q endstream endobj 41805 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41806 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41807 0 obj <> stream HWko:_~Tz(mӢ._CR-4]I((RS3CrpxEY/OūW߾IH+eD V"u)QfwBqI [V,Wf_|ee?W^ϽӹBڳ$VXS$a*[7irG a1#}̰1>v' a0}°O)>uا aoaof%#ZjzQ-!eOmbTKmrS\(FԆ(ZŨŰwTRRjZjCQbTKmbTKmb;Uj Q {GQ-Q-!aV16D1*FԶ4ZjC˞Ũ岧6D Pj Q {GQ-!aV36@16D1jFԆ(ZͨŨŰwTRj5ZjZjCQfTKmb;ՌjmFԆ(=Q-!eOmrSRj ZjCQaTKmbTKmb;5j Q {GQ-Q-!a06D1F(FԆ(ZèŰwTkR֋R\(FԆ(=!eok! [;ύbdؘ ql|.f󟈌(R8i({l/*I|)@IP.rB|w31ԘHD)dTߕ7ݭ*MԑBM&:t(3Dk UQ{P[`Bt4&8D!—* }XP*H@J'StLf[I=:pm$%kHNFw0g8aՒXWfp&osYx%L*7plIhm%D&! *uK~/7>.(rQ)B FdR㹼Qgn-i%zU t[v :d/\IY<_sM%P±Dž,kGaa҄]u#\b Z.f_֐D0_\abTVȱoo?tߚԾwW|xvʇpa7n9wggP\'ߚٗC({]z}u]Ջ~}>scUV|':eV,WqX c"MM96[*8p8n27+4!+Mqp;M^ ڦEVUiWjYY^iK +XA8bKy4m*͂ai<  Ք9]u4Kђ6c:sUf$9>Mc52tvmƪ@b@C s_u&:b?yg+{!ǣoWhI튶5{HgڌN+ =hJo*n?t4u`u}zώsᒚon._9}?'YVSG>Ss і3Gh05㉓lsRULvP#{p8e{OLZON7KSLm7xd1ÅMB5#ѶoBִtF;mH]fUY6bf=~=+ЭqQweSpt=w%QO4=^" d/;vw>G\9N MxhSg|QGqX@2Ds]֋ܜ6[аK ]9-۰:(7BIp9 Ⱥ` xUNm~~B9n%xwNl{ El`i&8Is9lrN{ƫm+z̡3,ɲÀ0zYaKd%%"9(MBE QfU&T+%n&bFٍ&7R D$~g~L;I߱~l0p|pÁ`gV͓?}q!8sAlZ{eoQ I@`5.ds"VD[[ :p^`UJX!GfLRQur?o7{/?x)$n9zU;8NvW8P}wy'B"N)CBEQȪ39,7cܞf3MUU삟s28K"9z?||'#'endstream endobj 41808 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41809 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41810 0 obj <> endobj 41811 0 obj <> endobj 41812 0 obj <> stream q /X1 Do Q q endstream endobj 41813 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41814 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41815 0 obj <> stream HWnH}'Џt o8mcmZj[L$RCQf[EY]3I'X}Ou#~s~{˓&QX$ADm?EΓʛ=VU]mSsQJmg3t&?k! I(23Eb8 Of_ZӤ䉊B/m'f&Ac24އȸey!s@{!C4}էP,8P<8LseXy^QNr2‘vHCbe YâڥtS XQQQQQQoQo>rGQ1#G}̨1>v'Q0G}¨O)>uԧQ13G}ƨw<+Rl)ƵCbb\K1d),W=ŀŸbb;Uk),FZŸbb\K1d1*ƵCqb\K1`1kZ!QV1R Yzǵq-ŐŨw\RliƵCbb\K1d),W=ŀŸbb;Ռk),FZ͸bb\K1d1jƵCqf\K1`1k5Z!QV3R Yzǵq-ŐŨw\RlƵCbb\K1d),W=ŀŸbb;5k),FZøbb\K1d1ƵCqa\K1`1k Z!Q0R Yzǵq-ŐŨw\kRlEk),W=ŀŸbrS Y,Ȳ̈ ޳w:bvɰA,8ϖd38HubQm0V2 6Iͮ>4{5F*P#=y/$Qҁ{u\څh*QnaEވͷhVVUu_wbm72^jUHᓣ(dǃt-Eb!$J݆+(q$5aU~}.T8M.cō]ߊNr*c.VߧR1%n Lt`&mN%bB[x51M ȶWlP'S*Pʖ1IX 10%Dq[Q*< dvC6 7\dGc4 C2鉂cy^Ve0/J`dY9rpM؏ Gi<\a*~ ,d:?@q"?]O!$ $Uȸß ?o X|E K*N6MQ}"ʊ?1AgKtLl󦗂{a2{mmun&/zhl]i'7qʥ}h\vG |f7vs}7l]+iMb@mB b aN ?ɗAwO rd$Lt4 th2'KȓD!0o|Is %Q1e9&)q*#oUI`9j7]-fXG)5 ӱT uGeVeơ!n$Ėkl+!ٿt#L 3 v sk@i wX Sݏ>o}n[u"aMǢݮmaY*!VrŃ:p-$Kdz0mɺ`) : <.I-vLfǎL HCtAL Lwmu|wqʐ%Tm[{P4BKnm/f G@҄D9t+T)]p@0wBW—Pwl8InLDvdir9,PrgϞ?pˋ e1_oiv# ee60}Lxdxtˡߌ,4(31' 0F¡cϫw= v>:,ըZ_L8]U_BTpCh׃f]wBf9!(0LDG'ބO!\S}ٛp>ppOl*\3>p"p(޼pqǻكkG6vcE{(..wk9.wTYr|E>–|C{koRP xS 5?Nߟ]^^||p KSil{o1cMҒ[QVI;)!eh$JFpE0]MZMݶ ~DzD`P2IǬBwL7#?W5y9pkCoA2B 0 p²{Z$H~3m5D0m"mSn;L-Se&v;y,Kt:dfB`2Ɖwj36['/pv~B6jغbe#!>-pLׁI q @FSzlik<ǺEOy8 {%.eU'!J%m¶RfW~=o8G.Zg<~fX`ZTgST@zCK؁v&ؾAJ֞(]6ҤN S.ʸ[pМ9湃T{l~J|W$!/gmi3^?Pwdv!Dű۟ۮ}l;{$~]؝ Rh*?%}+2͌/6jas ͠ڿFWuny1:!s4G֘I㞖t~RB~.5HW nZN<|C7cc5Ygb!Bg(IO+lsP-iTA~ڧnO#So䫫o} Uc:SY]U_FD-:|>Q2 hicU"Q j QP:TvK!P;84@ jmOjj2u&#CvjɌ@#\IA*.vI^* 8(e-"$bdxȉJC󦮕 80\ UQ s (*2U>~9Q^PaY IqY0ٌdY gOC&Nי&廤QI%`TNgǟ˧ Fo{q+T'F1nB3mFN6~sZc~Uѵ+[`Oendstream endobj 41816 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41817 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41818 0 obj <> stream q /X1 Do Q q endstream endobj 41819 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41820 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41821 0 obj <> stream HWnH}WiAq} 3 vfv8DjI*^oY]"pX<:}]X_{oݼ pxBI.Y*,,a_ xs S G˜fa X,iVBv} O O$KO$KO$KO"+O"+O}BO< >'SSO}JO=>gS3O}N=9>S_=r´;p-4W1`Řf1Yzp-4PVŘf= µZis \1"{k1,µ,BZAcE\+b Xk1Yzϵp-4PV!k1Yzp-4W1c Xk1Yzϵp-4PVbLk%Zis$\1`Řf=Jµ,BZIc"\1"{k1Yzϵp-"\1c Xk1Yzic"\1"{Uk1Yzϵp-ƀEcE\bLkZp-4PVŘf=*µZis"\1"{Uk1vµ,_=ƀEcǘf V c7 ׇ R<,j`pQ4L",c$d"\]AFwRnhlP1erG7u/ێUo,4,e&hOLV F<%Y3Z3}tpsaJf]PtA&YiUb/AҤ(f5R &|u5ԃ۫}!tOWPz:BX 5W9TSvӋъr"a2L&-$Ϣpѽ}x0z!GxwzߣE4Ou#:3ci8K09="%0pkFI =m5:6?~htiC}Pn([br/ϕͣ9əb$=˨itϲB[Su4/BbG2[/;Lm2')剳fY0m#"ɡiK R=K\Wں'nM_:ZlܖVH4n^v<2%ώU?cSjg-'{pwo+6%j%K.2M `wU͖xxs?)pW0Qu^ а5r;mƮ{y +Uӛ ՜%;mwS%6Ǹ$ѥ_\BQAd q_ m>i+:ljn:*|P3Mk tm鬇i/oE <=9]Mj#b>?*S("b=ބg3-6*<+-p-Gͦnbt85>dPŗqlk6KwL"MڧT1}ӒKSpՅ>.4Cftm2V;zڟ.pO{>>shoxש@.!\+gwu2Z!hm`NRM V) p? i]( .t`|Y"b\73mFKFKF166 fqv6[ Jlt<%%ܸVN "i3.ōo|;@dronWJ!wa|f낶~n{}yuy[^k*{ɵiwXSmάי{ c߬Ǧk7wF%C@eR]uhnF=at{J%&@ ' 1rkLތfU<ol9[ۯA4QyAóբZ}VW)wlao7ssQ9#"mD?«m[Wѝ("%ҷ6i:srzɶәӑlzSY(>A&$z Y2QƏSE.l=cr$$9f>zja\Pkc_ 31oXAEA/'Ok !HPjluWz*r!}[?re]!M$4N^%1[KVIrh R6AKi5ڷVh@sv YS@:eFk.AJٽv5 _]b4w+E5lk!kjI~KwQfAa^=;BS٥H$c:` M>w/O+e3uH3/n%O䁜"p/ P@Q&LI@#G+#tmܕϻ}us]W k:3[i(HPlImu_Pv̶ \f8KPIj7oj8yEDz9R+VD(g%|,?ERݲ=W(oGݖIEgy(YKK?Ùq|8T/!w} Z-i 1PqkE z ؞'sn}{i&X9{*3ŇQsewZ;jy{b~sP=m_ URE]MU^7$>jbqm,T8=s~ҽM.}k͛sS5N+ܵ 6f7HnH.Tfȅ@ n7VInC~.!a8Ӝ w;BW:}?y5=#\.5Mnh]6vmYS ~L}Kɇz@07, Ovl:}qF-VWp~{ZɧkWȢ(ɽrl6i,>V: I(|y_y4z(cv+2E_+IG;K\:k,!_ BGR W.rf;Tz.o06rQV ϋSlqDKp̓ b闔 y,#aQ.2JWYuQRAb󜨋q7 _dTL{6s8OZAzXʏ(UA~~'H(& 8%.$AQxJdC'=.xb\l;^0{nܿW?^#endstream endobj 41822 0 obj <>/P 432 0 R/Type/Annot/A 41829 0 R/Subtype/Link/Rect[129.600006 663.229004 208.307999 682.908997]/Border[0 0 0]/H/N>> endobj 41823 0 obj <>/P 432 0 R/Type/Annot/A 41828 0 R/Subtype/Link/Rect[129.600998 279.229004 216.973007 298.90799]/Border[0 0 0]/H/N>> endobj 41824 0 obj <>/P 432 0 R/Type/Annot/A 41827 0 R/Subtype/Link/Rect[182.666 158.128006 286.130005 170.112]/Border[0 0 0]/H/N>> endobj 41825 0 obj <>/P 432 0 R/Type/Annot/A 41826 0 R/Subtype/Link/Rect[375.091003 148.128006 483.355011 160.112]/Border[0 0 0]/H/N>> endobj 41826 0 obj <> endobj 41827 0 obj <> endobj 41828 0 obj <> endobj 41829 0 obj <> endobj 41830 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41831 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41832 0 obj <> endobj 41833 0 obj <> endobj 41834 0 obj <> endobj 41835 0 obj <> endobj 41836 0 obj <> endobj 41837 0 obj <> endobj 41838 0 obj <> endobj 41839 0 obj <> endobj 41840 0 obj <> endobj 41841 0 obj <> stream q /X1 Do Q q endstream endobj 41842 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41843 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41844 0 obj <> stream HWo^ Yqe4HC Ch%4(w(E{kqIϛrg$lөǏ'<Bg/gόצR֫.* U&VY.3ZM~mg]{<__76\mlUYMjsQEVErU*i2^fgͼk+5~hC>ߦ\,/ן.:PgE>/ta޴zuuJuڙp $#zCu'2יV}Q&W$[u1W U6$<2pϪ9Tcr'H#\ced1Xwcy%po{+; w½p{/{ }p }!}!ܗ})ܗ})ܗ})G> }W}܋PZ-3 Z1bIK,ZK{%h-Lj܋ZZ K,Z #p/ZkAk9X#p/ZkAk9F,^ւr,@k9F,^ւrXh2s#tϱ{KXbrXh{ZZ˱{ZZ1bcZ1bcEkh- cEkh-Lj܋:Z-3Z1bIK,ZK{%h-Lj܋zZ K,Z #p/ZAk9X#p/ZAk9F,^փr,@k9F,^փrXh2 #tϱ{ W_T:(*"`U%<߲}: $on}oYwq텚ox:VU̗VG ~lMМJכ#yM!mv}[a$˓^'C|۶m7x5{u_mt鉺mCoeAMkMsʣ[U0X|8;fCv[ϓO/K(Rb;ׇzӑYAݡej6٪o^ٯ5=ia<ҏ7{dȭ.u|ʤoߑWpoGkWilW^ Z:+O_s$Lo3_9ryaEYgI;5JMțcy,偖ZhyVZhUBh@Z%*V JVZhEUJhU@Z6Z#XbeZFhYeZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cĒZK,{ h;{ h;{ h;{ h;{ h;{ h;{ h;{ h;{ h{{Kjq,@9F,%rA9F,%rA9F,%rA9F,%rA9F,%rA9F,%rA9F,%rA9F,%rA9F,%r@9F,űVmo:+,ਬ7:^ҁ+_FE]У? 96ӱ2v0YWێani׷~ihtj.#fKTz_E Q_y8Ql껛r. %n}p_'kk6&6g}Afy ۔ F?rjKmݢfթ߿;뜍SƔ|6hnbERf׷͟:7-IR^iSɓ=]84+Ab5|:+u,̙4F}N]+kl3j[Q4DҏoJ˞a{E"!/ @ $R6RԂ]l9]}9?j=9gtT0٣P8Wڮ.^9 )c0[V'xds4! WɍK%U v Q> #*rc.Ϧyr# sMC VvZD16>z(;g WqdGnP>iE,2aTL+-cZYZ7Zv72xz<%}WͫK%ٛ>=KC n3ND ho@75)pNۨ $Т#&/L8w5c1ZAsAthSyA F`D A &hAXE y"UHsJ?iL`aPl^Ws`ժendstream endobj 41845 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41846 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41847 0 obj <> endobj 41848 0 obj <> stream q /X1 Do Q q endstream endobj 41849 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41850 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41851 0 obj <> stream HkoHϯJLs=[Ԇ,QĶFhEPR6u\3I&TT>gįޛQ'Oz'ϤO?닿ET$|5Nܪ,Y❜ -?DVRNQS}-y]M˦ƲD"972Dx- pt.x9Z,E>6^wid-~Z%-9_^5|_V"vWT!BCx \XeLc3b1}Ns>'>0 SZMaZHQ{Ŵg8PLkq)ƞ0Y{Zôg@1Y{ZôgbIk ZŴgbIk ZE'5LkqZE'5Lkq)ƞ0TX8PLkq)jHQ{ŴgbIk-ZE'LkqZE'Lkq)ƞ2PLkq)ƞ2Y{Z˴g@1Y{Z˴gbIk-ZMcZHQ{Ŵg8PLkq)ƞ1Y{ZǴg@1Y{ZǴgbIkZŴgbIkZE'uLkqZE'uLkq)ƞ1Tx8PLkq)jHQBNjTWLd1a $*72ʹte_)ev-Y >tE~rV?,l(gC8.M)JQ.kFer,]dʯFT뷯^ -0}Z_ɟovNUں,׃&Xj">xv`^Ne{u\ճxmU \j7osv_6jpl]|ag<-9^p-rJ.z}KM5xF݃8)Nj'T=by]5p SZ7vrީwꂢ_`mTNACf >dNYװ=ll06tp0|i|:i | T~3plݵVޝ(bȦF%Y畆F{Wd-S+KN7Y؝+J -7o[jL;w/&᾽ [{9ܷOt3plݵMBzi'xd!]ǽǭkZ>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41853 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41854 0 obj <> endobj 41855 0 obj <> endobj 41856 0 obj <> endobj 41857 0 obj <> endobj 41858 0 obj <> endobj 41859 0 obj <> endobj 41860 0 obj <> endobj 41861 0 obj <> endobj 41862 0 obj <> endobj 41863 0 obj <> endobj 41864 0 obj <> endobj 41865 0 obj <> endobj 41866 0 obj <> endobj 41867 0 obj <> endobj 41868 0 obj <> endobj 41869 0 obj <> stream q /X1 Do Q q endstream endobj 41870 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41871 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41872 0 obj <> stream HmoWG:/4t7 4m"Ѷr%z\Q/{ cu|!uĹ0/WU_~y?v*8FՕ-Q.RdZ-UvG ?7f\wv9WevQ7u]QZY*.ծc7^]4̍./j~{~;ǸMsͻfQN#*tYYY:_ ~¨JHWWKPYUa|$ POU1 {ѥ&K.ǵZF.\<2<עˀF7 -HoEz [ނVw HDz{ރ^ ++kkkHDҋ`h ZKZtdzKZt@z1L-ҋ5`j]`jF.^LS5rbj ZEZ Skr\ Zkk0\#H/ր:`jF.kkF.kkZ0\#H/ւZt@z1L-ҋ`j]`jF.^LS5rbj-ZEZ Skr\ Z ḱdzEZKdzEZ Sr\ Zkk:0\#H/ցZt@z1L-ҋu`j]`jF.^LS5rbjZ3k]`jF.kw7*U[7QM\ ,'X`yUV%X`UUV-X5`ՂV#X `5+VY,KF5҂K ,#XD =ΛK@F.7\;oæ.Kހs k,{zϵi, z5rIhXk,{ z5mdKނs(%zoAF[\`[{D-=h[Xk,KFw\ `;{VD=h+XkXkXkXkXk`Xk`.Y\#dqKރއ"TKu]VZY *>|(v]6e_>ܾflD3qz.j֫ݰjبS>|Plm_6Ey^>5ua^h7ǿ?EC▩:s{Bn\vڛcJ0gV}d/=$&o?߽P~P慢Գxz?[w?gO C 3\mќ!z^ZpΫlOh%N/.0cٛʁ1 Sg仟M7lW3"Z:%og~H厨?Ǖy5^JݠKSd}ںN?ܢu?H.|:,+L_K·M8DSM~Ǒ㘸UIb #ЯIUkCC GįWN|ɦ+#$<<\\- BKI'g=h/ aZG 02&HP-&:'m5p_;xJOΟ2zpN"0_ڸޟq|ϐGP}k %X`9r ,/X`UUV%X5`ՂUV-X `5V#X` eJ$kѥK ,-X`7\#`{ D =Xk,{z5rKހs\%zoAF.Zts\%zoAF.\#`[{ D-=Xk,{ z5rKނs\%z@F.Zts\%z@F.w\#`;{ D=Xk,{z5rKށs\%zAF.Zts\χau]QZי?ʫrxwoWWuɚr<~o3kvfvl[- 1N?[,}rӏxu&tR*_nq86;ptd X{(_x_")nn{y5m _"3]*/8c[ƕ7ߖ7UMW"d΀e6E. wz]:- k;@?:_4cć„xixIאz2qav3,<ˡwŤ:}1ެVw_^|ΡV]3sR 3m?[vfآj8~+x}wx_ Kn+-ze4?# T")R.RHb.l iy^b3ÇDRU;9o^Y#d/s)[*%bKx<`ZOGpyO;? (tP8#TۛQ12˷_I fJ.kV^zv89mqqET$Of yW=Sm^E*[kC՞>ɧɫ:lO6"#k",ɧ\章!lv4PFQr`C5Sn!7P4|a@Q2N HPmA/a&Ej~-͚ ˪r\B͋m2ޟ1kxS Τ^/T&؄:xP[1$" ?,~-$ z^Wɔ.0~6J pn{SʌBd/mɤuy<УJx۫3jx1ZJw4cwj \21j69K 'mf_ɦkB4e|oXTAυi #NWP5vPLBS xf8S6WoQ$+eEVw;ip,m LF{ʵJ#䭢2R77zq}μ[(姾/G ?!w4etazwvDEDBa  Yd@@C}!vAȪŷ%:'6@새9aJISrLLK:*"䚟3~HH\kVƅ=HQa'Ղۊ؀)^=W, e8oڲ ik(}y6,} {?֐ aƐ8>dNTwݗaNS DLQyr05ۚ%Wwq⭻{TsηC@BNv^.IF_?~~LJ*Tendstream endobj 41873 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41874 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41875 0 obj <> stream q /X1 Do Q q endstream endobj 41876 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41877 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41878 0 obj <> stream HWn8}WYH l`݋ EM+x~r-eY"p]>:!@^$"^~&o@EH33AbÄ4aH&>$TzVmWjʂtep#>x . #lo D$#IHm\oT1mC.^8ڰ]|~XEa3| {5.,L$3 ]Wǿ~\bq,w 1E  xB#; ~>ّ Ib(Q ,v1 rcscG91˝RC3=C3=Gs=Gs=Gs@ @ }=1>c }O<)>اc"SDKDK}<,EL!ucwcB\4g4g֍is-C\4 a﹖!ucB\4 a﹖!uc\׺1@!uc\׺1B{ek׺1B{ekݘF!=2ĵn8Z7Q>{7(ĵnL|nL|n PkݘF!=rĵnLk9Z7(ĵnLk9Z7Q{ϵqZ7Q{ϵq(Z֍ q(Z֍is-G\@ ucwcB\4g4g֍is@\4 aV ucB\4 aV uc\+׺1@!uc\+׺1B{k׺1B{kݘF!= ĵnbĵnL|n PkݘFݘFa/CIF"F4* ,$E[J7Ò0*CK8#:~;aEz뫷?pDȥ<'~"^6Wmwe@ 8 L%K7^oq%s]^YS8̄vŚ&&wJ[vGinM^Wrؔxy,Ve LNŢI]٪i0IRvp^c;/Ǧn 7*0EP.{VDtR:TUK s&_!wBB8\X!,ᱰg){C(ᶰ7¦ t'[key\'3u [un;]j7yV BQl\0&N*Uw;".# 9h9f8bA@9WEg2yЁrɛFmEx2pq&1=7e]+5ɿt6jh4QLmwO^Wj!Q@l^U疋LL'ML#dܞj|RSͱy0F"!}tBh&{Ei R5Y>#W)¦*|Ff׋ FO ɲ3RD;N>Ȧq^%;n@ $<9dV YhTq3-v;$zN6}OU<<7_7A>wVmc u_QJ I“fW#HY8hZ?` 6?nzK\8(ya:]]]IDn0%_0)}_IHKEn&,>UA625qe pl<8+Ͻ[eb3E~9)䁊oB"#'^݄^MhP ڻ0shV,z:=]VQ4($K^n%D5y6' ^ivhIZK;+󀨢ZJK8XqZF7d%\m%42_BK1PӶd32Z~N?;펱pͤ{p! t%Fۉ+ ~YuSM>*\ cNz^Bl؊äv34Qףa6 ::jxE`h$KPQs'^{iKcp['G;lɎTkJڙ1E`ƙ2 B$36(-)bF "?5GPOBZ(zdvr°\8=NUSpd[у\ IJ EkD2["8ek'3@)^)Y@ _U#r|i-G`Bb&VQm=ftaFWW066+:4D9f4 rL2Bp}¦Q_0M4}:}q ɿJR<.h $ 5|ntDgQϪjM"B Ƴ6U6b,N3x< R X4!]+:egZ"',N x/1S~ڲoޤ[ʄPw $ZM/ *eo 4vM?FxݘA\D:@G6=2V$Xqkh>~ßчY1endstream endobj 41879 0 obj <> endobj 41880 0 obj <> endobj 41881 0 obj <> endobj 41882 0 obj <> endobj 41883 0 obj <> endobj 41884 0 obj <> stream q /X1 Do Q q endstream endobj 41885 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41886 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41887 0 obj <> stream HWk6_AtBć $m/a<2gF-KRE^'"\𒇼Ϻ٫WWKoxe2*璩R$9gE.Y?X!Xâzlwݶ뛝f}]aޮUQ IY*iV&t-[*4ş!p%qMba8 {nO8R8:f,NzNzAzAzAzIzIzEWzEWzEWPsB}/E P_KB}/ e"WPx6#Lc1d} Xk} YzCVǀEǐE\ k9ZZC>p-'\c"k} Xk} Yp!P1`1drµ>,B}ZNv \c B>Pp!PV1d µ>,µ>,B}ZAǐE\+kZC>p \c"\c"k} Yp"Iǐ1`1d} YzZC>p$\c"k} Xk} Yp!PV1`1dJµ>,B}ZIǀEǐE\+ k%ZEp!+Tc"\c BURUd)w֬wUtZ)=X J$9vQI/V̌Wgԡy^z(ȪcOGa#^IZqYtK* ljq(Ȋ'EOWUAvXk1ĤRVų ,`%K^ |"eM,X|XI6Tа[ið}IyeLU~_9S^.r5[2V橘X71kںmj`?}1c@jebX2f2M&Ǐfi b #4)OQq (7< tMGg6u~ <\o6%/T"r؂Y?SFY~}qnS<2q$. }>e "AzvӖ:vѬ7ܥ2mv.vbma\o.!ΏlӿOh< 3թrG8hI?4JDzi`~lJHf&x(ԛ?lR/ 1'ZJNuIЗn^Ug;O0?Y7ǺHeVkac= 8vv@=ڛ  /RczB^=dj*08s%kFyƥ8R*Jo/&PxK^o ym&M4ұ6ROhz{+׳"F(s*1dNm `=~ًI-25"pJaU#S,GjmwzK@[C 4ͭ(%'YK.wg(KUbS|@2 &/5zثzM݊|I(k PBTee3 ;h{B= ssX)_sM %F0|kEae)*Paj:#CYd>ĺ?? :jb%qLE2J/Ih"! gIԵH]4p`ɨ%psd~z $-Vjbʘ5#2YƠ](g/bAaΒ T~ u*Zm88mڋ'墷${9KDe(C!D% rlrMe)u@i[d6!9g@KxUL![nns8 F^jHeW:L'{Och !C.f;);ǟfmO/z5E0O 5jFden>-}!h OȉW;0H|?J6uRDb`lZhZ#s^b)^$a- NxL=!݉tԥљf3 10nM.w6_M+:aJ/cNS>)?7{Ui pMC+Rix 1<$X#0G$24;T#_7¿wh㟢=Ե!N_j[GUYw߾~ i'endstream endobj 41888 0 obj <>/P 909 0 R/Type/Annot/A 41889 0 R/Subtype/Link/Rect[93.6001968 663.229004 258.936005 682.908997]/Border[0 0 0]/H/N>> endobj 41889 0 obj <> endobj 41890 0 obj <> endobj 41891 0 obj <> endobj 41892 0 obj <> stream q /X1 Do Q q endstream endobj 41893 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41894 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41895 0 obj <> stream HWn }ﯨ /#*ս@lbF<@Ȇ1Z6ECmYɻb=!밊zWzZ(ׯIk`DF_bS(q_hQjqWvWî弸Vh1+,D bRE1_3ksS6^~odb|=T4^^m7ŧ># VGfojൗ*aְi^(y҈B++$'?)q+d4⨈uʉaU|(che3!*_u"6DyEk6@[[[;;{{{}}ؗ 2c_2ˌ}ɰ/3a3a3a2aiV3uaRr(FԆ=!*gOmbTKmbg5j Q LQ-Q-!a06D13F(FԆ(}ZèŰTkRRj ZjC>SaTKm26D Pj Q9{jCTΞŨŰTkRj-ZjZjC>SeTKmbgj Pj Q LQ-!a26@16D13ZFԆ(}Z˨օcTKmSRrԆ=Q-!a16D13:F(FԆ(}ZǨŰTRRjZjC>ScTKmbTKmbguj Q LQ- Ϩ6@16D Q9$SJN(oz.^΋ -wV BHb.fPۋWz6JMje6}>6|q(777zٷsI2(<\֘YYo}nX ttLaeڞX6)^:YFo&JF;'W%3qsRexShY+|{kvQ.6^׫&?;l.Lyc _l*|~0V<-ޘz>)|#H|f!c][[mKiz D]P]v.UEm'T}W.I?6((=;nzUf:Ka=Yt (>ۗLcVdgHڐ4dm͘cX ۲ i\b(郓ʟ`׳˷%D5DIS@%VX|㚪ݺ8^a6_ qf̳-ۻV6mXmB[}kv}˴ې;h$&~V8&=ܷB/{_z)meۋ a8<3Xaɩ^*tRL|_7KюXVz0+{֦mM}lf>ǧa;}uW_gR'^gzm6/mI{z45?CV3K=!~` :b-W<.+sӌ炰t۠Į}|# E澫T * l@4%4'@eR&C'jӶ3a‰GBP?Q_'?vK,؉i@N0,|baߛ+0z7@S?5§Vp]{$׺ n_8+怎%2A?;9A%ld5ܲ k{0և;d%8CoDr6 wdkÏ%3ܟ?sΒ$=ef,\b)ap&"Y|C[%~';46!MKcKxLt΂ >SeXO^{.GyY ⑘HjXB \H0zH@di awfb}МGw:՘sҌz`CS0SԘ3D0kn91X=}ƍ@=UeMh{§{˸2v.`?:VC$3V:N TS?ԘI1$<uRc9[c1&U`Ӯ\5Ok7n%e=tYA"ytܝ+`]/Su۞7k:zTh;ӕ]ӓʄ*c`o@}23Ce7#yFJRgZ*\5GVK+r}tV0 z;>9\G4z9_i.uYZc%>ma4$q{ײ `C Efzv0ղ8::D[y^ܲ{zdGcT7I=c;SLlv+մ}5ͮd|A<'Ϩ*^B}0<$LD?h0^ dZKQ +LDGc,e<83m)/3rK.*JݯP'(RO9(C[_zB`B |I_@w9|uё˃#'G>HM!Ц)g!.cLQ@ _Q;pB-Xb͵.izt`C*݀Z=\.&MBD,σ# ;-s(I!)~ p- `w9#ARvؐ*k +)h)Ю>WKP!iCk@?*D<IjbFb3YbJʏю:OE۝qY9s?(R}!$ݾ591ODz@BF pQjl4 ;<:`"?1wWW4VBuѻ=t&y(jg janNIe2"oO~uw?eW^:F%%)g˙TA/&4bAbul>|lƏ%f/tAS>GIgZ9j=gAȔ)~6SWgky ^vU]v|i>6Uù \uM{:dCv撓 GܞN_}nX'$pl%>R_ͭŊ ?>qy_gl.j搶|ٸvYkܴJvc=o_F-hTjѦ{Y"s/XMM8\NDXTmo<-mUu~pF9@ N.836tIOD@$49.xd-8en}-oendstream endobj 41896 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41897 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41898 0 obj <> endobj 41899 0 obj <> endobj 41900 0 obj <> endobj 41901 0 obj <> endobj 41902 0 obj <> endobj 41903 0 obj <> endobj 41904 0 obj <> endobj 41905 0 obj <> endobj 41906 0 obj <> endobj 41907 0 obj <> endobj 41908 0 obj <> stream q /X1 Do Q q endstream endobj 41909 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41910 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41911 0 obj <> stream HW]۶}ׯУHH(ФE@v@kkJlkg$ҢqRgfx8r?/yo~[ W.Ue])fdylCO(okknnSt*ެ۵(KQ ҕ|5z_ܭ~{~n[yZz{aU2%"ۧyh, giefydL ،v _낃wMQ(&s)x ޕwx- *& x]p&Ÿ*6D˥6@  J Om{{W{W{W{{{7{7{7{Uƾ"W`_gk} umm]3 Bm_HB Q9(B Q9Ԇ}jԆ(}ZI6!`VMm"TET+ զ6D3JB PjSj%Ԇ(}ZI6PmjC>S$TET+ զ}զ6DSզ6DSr PjSjԆ(}ZE6PmjC>S"TETզ6@Mm"gUjSj(B QLPmjC>S"T&TOm"TOm٧6@Mm"gՄjSj5(B QLPmjC>S&TE6!`VMm"gՄjSզ6D3jB QLPmjPmjCT>PmjCT>!*gsN}f]ܮGYrX>GTV+n5<5CyZjՅ9ѡ]s4 O7®&m`>ElT-ЁͪǛ883m q~6O~_vaᇰn{lN}\v\#ۇ~ڡE:d (ì;Xx8c8TmqivSWi@K4n* LռLS ]]l@wڌPph vs=2TeëPYj䫮g:tzHnǫ422^lLJkY_ Lq:gڔ~d3N IVKG‹{%DKݏNT|90}de|vXX.} ։9X%ZVA6GV;ͬuDlWӁִ *J+/JF^.K~OwGo٦IyY@4;}il1ZeG4QPg4u%] i)JcNdgXIwT']7j?&/epd!nC1 s,֯<% ZppJ'ʉy"[ʚT}3a0n?gxW ]x:wc֥f Fl>5i B-4>>zs46g Z\%MGR fS2Q7_9z Кң: bU8X x*^p᩠!A}C^eE4\xJJ"֩:C>!'#ZO$*#Phhk:w]p=㵋_o$4?ӦHr8uSZrnFi5l52g KļJ85[DʅJˬa2z/:vv[; 4F6ZQd:Tps۹d$ On7ݮךd>-ss{k VA4$-!"XA.j~堈XT.76xjOC P i3^5=n0>GϽzY,`/ ,Gii~EJ8vӓi(||<| vUVCsD!$Z=by:zn_On= D(:T\oLPEn3ɒלw-Y5*C䷞Ӛ^{ZH 5n;6<ɷ`WQ,|ګ 7Yr/blq%k"D=6,=u+,oh+ #nAtVi`6|SWR,rm2aWqM9|&duo'1ya$M TC]? Te2jҞ{ۉ߶bD٥mӷn@<"5ۍևXDƤ?؋DŽ[6]}kl!g*8?>m ++r9KR#R 5:^iN0Z#]1J$r&LX檂$.gyڶA-(=Uy*%JbE&rq-yfoWb5ܺH;~&}H{<}AlbsD6%i0ym$)c=3.8j* p[-pX!$L1l,y$ pAU WDﮐua e5pOr#{ho=Tf(JBe;Դ٣&{:O ŸgY>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41913 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41914 0 obj <> stream q /X1 Do Q q endstream endobj 41915 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41916 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41917 0 obj <> stream HWmo6_Ah(עCp@ٕc+imo59C;~|8g8=o:կ~Eŋ߿ "cI%KbōdMeUO`% (yWCݔǢkk7}jj+>(&&`e,5Yl{ 7Ů+m.Bsy}}k-x~lDm[VzC/0Q̣,&df9aD\iD?KD~>ÿ},T̥Ԏ KC& d>&C)momG!E 6@IK+++kkcc}BO< >'cS}JO=>g{O-I,gm"Tm6cbE=JBfQ{OP-P-YS$TmET+ bbE=JBfQ{OP-P-YS$TmET+ b1Pj͢|(BfQ>{l(=P-YS"TmETbbE=*BfQ{OP-P-YS"TmETbbE=*BfQ{OP-M,gm"Tm6cbE=jBfQ{OP-P-YS&TmET bbE=jBfQ{OP-P-YS&TmET b10j͢|(BfQ>{l(}Ƴ,,W[A17z; BfwuӍF@Kh~AE00vctP7>:\Ju3m Sg]^`#.ש2?|eijΫu|rl.&t@€[Y}WEo_XWA$ t]suldŞ,]cۼaO&fID%ko9 '␯6nYbwN Eą:/g`و4e-M94jݻ3",+y.,oh9§c.2]'"x*\!7N PBlE P|2x ]x_qG-s47q (ÁTTO] Tް~X%o|-Dˍfe9,hPCS4X/]QѕB 7K3S_-d蝧9I=Y<\%&.KlTm3jZE;z!$b b/ϵ& A$}Vø>KUS*=;6/XޱCCYM}8e {Oo cIҞ L2'W>5<^ۍ`Pm>MWO¡ ^# .?ʻb$o*ؙ,{K<Ϧ\[@JZn6{f 5+#8ɣۭF :h_"Gɳuoo~'Ԭe&vEU0LnNծ+~-8Pr ^b}l¢?%",0mmqFX cY8=@{4km/E `mAC0Nv7h!?{BY=RΟ>fD,]#_CNmT/rm3{J7C>թ܅wYReuS?y}ff?rqrFmA`1̦S1N"iɼ3#{kj,[^Ϣ#LPsD}$a˼ ܭ `=Ky#ݾJ]KO*eYrQfE&.Un:Ͳ\H{>t)<0:WtKZMҘǶs\h.d G0jdx5Tȶ3-Nr?Vr  o|!uOZ3)YAXKXr%Dԁ>ԙRšmӗo6^\ͨiu袾c5 ׎Է*$ j!M]e>3cc»sߗb8o :K@ Ǻ޵O7Xٲ_qLti8*a֧~Cu:JMe4)ۆ|{VnYn١7Qg.O!V3d/_[񲅍dԹrYY}ur_#4U/K%c3f&i ތN&vq6Y1о|egÏi}J7C}Vp9B9ۤ!T8j.ZԔ11`.3×.vD(IAlDϹ`9NCK鮚az߯ѓ:w<+`AZeNKI2hӤI^ߋq{nRq LPg,d~1ƒ>i`6, !Ίc5efn#b 6pAD'.`pmSYӓ\ݸ?`\U;X}zhՀ>{tWti Rr]? ݃`л)6ʮ.-vLdr'0MrnMi`y/endstream endobj 41918 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41919 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41920 0 obj <> endobj 41921 0 obj <> endobj 41922 0 obj <> stream q /X1 Do Q q endstream endobj 41923 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41924 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41925 0 obj <> stream HWm6_!H|H-мAZ9`7Ė,9pfDʖɱs'9y˿/^,/_$NʹM_Rmd^,dEwi.i&jh/um6mI.+һ>yH.LyX%ԦLKf&ˡ,39gaBSB䆫idVOTLngvԚ9ejOd.ǔ}^gmXYBLwȱN&VclLFЇ8\1*!J;1(A{A{I{I{I{EW{EW{M{M{M`_D }/ eľ$ؗ`_F D D-F->,'D6 T}"T}ه>@ }"GjCj(BQHPmC>R TE6!`V }"GjCՆ>D# BQHPm$PmCT>PmCT>!*fE6!`V }"GjCՆ>D#JBQHPmЇ(}ZI6!`V }"TET+ Ն>D#JBo(BQ1(BQ1Ї}Ї(}ZE6!`V }"TETՆ>D#*BPjCjЇ(}ZE6PmC>R"TETՆM Ն>DCՆ>DCb6֪$)OxEZ6]lM/r 3dݶ8G=zP㿿5wa"R)FVŧ [漜ɹ|RF.u;w];Fb0,ׇ)Df}{b>\X.]KYW]"uLn}B[. j?ɪ~vPx;t`^|`+;<8~BfYu SvsG\Ÿtm5TCoնܴۤ?\<#f&w9x͇~՟ Mvsk,Κ\ i]6j?޼༕`,q 1G%04F㤑z#|$KBGY=>O}K<8 Zd8%Z/C}vr<~Y3]~S' W Ų̱E{}콁MYhY=E O 5`~М`o0:_'>-}_WU oz0wXCG=S`**4,:ç7r&m3mxGl*נ{HO]W"5Xkپon Sg|2d*p9"Υ092XW&}w7g;c_†Թ)Lty nimOp%.4ٖЙ(?R)sf:oxe 5j{oO<7n}m:U߼ZqO}VT^8 I cLtpG:-Oy/o+O {?xh| _.z?EiKA}'͚k˩nu*44}Ѝg_* G .АΥyPÃ1Ӎ .$.pH{Q߷`ۺ|􃁕Y`a-V"}  sfGEFyQwYhZ8k~<7xj}FvӵRtIј8 fWbaqM=Vg Y i+Fq446"+Ւe|Q^5=n@ίewmUzj=QH à#/EUXO2N54q^xk6*l#&?pghtRO-cafH.#aJAXCGԝU9&bRkjo.,#7@j$$貒qTZ06͐@FOqŦ<k3iߠٶ*/mڔ>kB+}uXmIo™Z%v@7VOm58q1םFL!q"0JSl;Ƶ0>܅˛ڣ-ra͍%sh68XyUyxo߬%DH'l'aaӒ)]>7?c&1~^_K`j5RFt {t!$5NiM4g{ANB.z94N)H")TܤWevʊ\v8cP[ܼ;FUZđsj'E-޶x\sys}[ 6H÷0.AtZmW@\̓_mZjvwQ]߂a_endstream endobj 41926 0 obj <>/P 761 0 R/Type/Annot/A 41927 0 R/Subtype/Link/Rect[93.6003036 510.329987 222.408005 530.01001]/Border[0 0 0]/H/N>> endobj 41927 0 obj <> endobj 41928 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41929 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41930 0 obj <> endobj 41931 0 obj <> endobj 41932 0 obj <> endobj 41933 0 obj <> endobj 41934 0 obj <> endobj 41935 0 obj <> endobj 41936 0 obj <> stream q /X1 Do Q q endstream endobj 41937 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41938 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41939 0 obj <> stream HWmFί#+Y]SD9[ɞ\NZ[6sjUt$Tw/E"?3OߝSUuwoXV}}XGlv_(TTa_&&fjtŷ}BҔ4U,VLBl Sg+>_"L!W0Seɕ>y1, }r}bEY>D)esg%o a a/a/a/a/ a/ aaaac}L >q'a}JO)>uga2BqBQ.{(BQ.{ۇ(Zۇ(ZN!`猪}"TkEwT >DrBPjmj9Zۇ(ZNPCQ-'TkEwT ھ'>Dm>Dm\PjmjZۇ(ZAPCQ TkEwT+>@}";jmjZ(BQ{GPCQ TkN$Tk岷}"Tk岷}r>@}";jmj%Z(BQ{GPCQ$TkE!`V}";jm>DJBQ{GP;yPCPC!eYI?8yown}:ᑉ08w'1`2ݛ$Uw_v(wFY(t _v_2L"wou4McC(Q!#R~GTj3z9V1ǗX;7Te=9,D?z* e~&tyV٣Ps:i C  c>w z];e }z)K[wT|12]a cuKqf<|0/]' =mU=em۪vMVۍ8&$_~9SOຮ-n{"+c[Ynܞк2&R*r?xIuj=dsҽLg&sܿ՛>oFf:cDdfhj jz`ega M6MDr .P$TtkMpWe|"-4UgT'0ph^[CeUn eaaD VH@{2G/L},KS(9f:k6Ll'Pwiljw2(~p_eѐEKciMO3B325kFIf0te 5[lb>7.&jn u|1uVs? y_weY7hk迼VY*^Ƽʡҋc|aơ'm(gahbZ2*E}w fZoUSCͱrsQɗk`xF;Geۅ[7 y-å-n. vG7 ߷FaEYײJW!z-KJGhP(bIoKӼ9XiK!k.xXY*3^qKBi`L$Zx;u0qv.<2 PB* e l g @FMr dĉ,5ICkϣLuC\P6W܈їPMҫq+tTDc.M[ze&V Ir Crf8oTP,QȱGGcVWR)Ci\ciDD gqnym>VOM YFta'eض>M4'0UViHRv֪>[^.]3ivYSxrҶWmXo_Bђ8Nx'GptC/C&i|NR3J0]!"R \ctOmo! <2q8t NFƂ* CJF˕626QUIԉjQ+̵V:t1V8,VM;| A溂EGjFQq+[; ,4`x=8EWtV?Dr|Ez1+ Z_’=#oJ P &X(.}gcPs֍jn"I&JNM˫$|C' HxFΙ,Gy`"gRO)dO`403sOa$6_6k5|ybPՄg( R33$&`TJ8 l*Yڅ1LQ.l/sƘh{ˢńMx+o AEkT.8G` )`S,jZDHkf[XVTs)HY/Vܖ2Su9z=ҹZ͊ԙKKN7^sj[fekΝZ lˈt^W VKW_О[m P =Ʀ(u4Gej/?]]}`2ntendstream endobj 41940 0 obj <>/P 1087 0 R/Type/Annot/A 41941 0 R/Subtype/Link/Rect[93.6001968 663.229004 223.139999 682.908997]/Border[0 0 0]/H/N>> endobj 41941 0 obj <> endobj 41942 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41943 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41944 0 obj <> endobj 41945 0 obj <> endobj 41946 0 obj <> endobj 41947 0 obj <> endobj 41948 0 obj <> endobj 41949 0 obj <> endobj 41950 0 obj <> endobj 41951 0 obj <> endobj 41952 0 obj <> endobj 41953 0 obj <> endobj 41954 0 obj <> endobj 41955 0 obj <> endobj 41956 0 obj <> endobj 41957 0 obj <> endobj 41958 0 obj <> endobj 41959 0 obj <> endobj 41960 0 obj <> endobj 41961 0 obj <> endobj 41962 0 obj <> endobj 41963 0 obj <> stream q /X1 Do Q q endstream endobj 41964 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41965 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41966 0 obj <> stream HWn9}` c6} L.3H,`FGnZq﷊ݭ%)a*"ŋTVo^ )~ūeSU pI3-̤NMW)H.>ԋm/׋YM\q|&SucӻE(E s\bL&gc.UjrWb+΍γbzl۽S2ZI40GbR-=,oG)nER,&~.2eR:)cLI0JDm6@) QAQJ Pa#a#ao"ao"ao"ao#ao#a"a"a">g ,b3}ΰ#9> "b_0싈}ɰ/#%>ҬbDKmD36D Pj Q1{jCT̞ŨŰTRj5ZjZjC>RfTKmbGՌj Pj Q HQ-!aV36@16D1#jFԆ(}ZͨږaTKmSRbԆ=Q-!a06D1#F(FԆ(}ZèŰTkRRj ZjC>RaTKmbTKmbG5j Q HQ--˨6@16D Q1{jZjC>ReTKmbGj Pj Q HQ-!a26@16D1#ZFԆ(}Z˨ŨŰTkRj-Zj[&Q-!*fOmbTKmS׉"heZ` g4N)wIᭅPKagŠ2,fu6}@!ܥBfד3t 0]qNm{,i&2Rn[xF @mz ͜%]ஔal`ErTIOOg޽}pxIztyD`hYN,+`7^~P]ԍ%Ljr[//L-tBlwKL BovۍLs}e.\jQm1Č|ŶYև@r# k2 A|ϴt}so3yAPehY(QTgt. MXZ2Wpx&`p)t}_ΆqjpŨ"0=̰ >]v=;<uodM}x@b{8%z0RP=Nj(M6@]eZR8.1Mp%88*(z r:ܝ!әgQKȢh865nTAy"@]M0*Χz,8C+GdPEN2FLtBj;-'Hph NFnplñՏco;B?hnVJtXA߄ AX_Xz鈠 z.;n!#2]A I!z';D9_zNIGצ`(ب+IS ˒P {3mjZ*ݹPY5bDj@j}UF_jIYE?O+sJJ#LNnv[?-.bkwxW{T~~zo˘L,3~]R0 g}>Rʮp3tPfpkvEj#pzQS=7ƒ7ZjmM;dVoO3V{s ?g~1^(ᄒgT#gLlj;  Qja3nͫAwB=JC iWaq"L ޜÊl ƥ.Jy.jxitvI>;{8$~jpY5 MvTSEzD%uBNsa Q@54E4xE]lW1!Ht_uߟ:Dq2Y8Q\>_~SѬ[z0>~rWNӯnӥjv0 p0r+1EHR/oBi Cc]ܺ25*O׮7&# qrAV Uj x"&-gD(p1G"mujAr" Eb-Shm6JC*^;0zzmF ;72accRU&Ci|bF}-]9Ϊb;XKBŒ(;x eL9}Uc Xƕj8-CL cWGE\T3(8螚1R,'NGjri!]y^fdUwj_}prԐ"|oN>J}ecTnNM:{wE/._]=}1j!c|ge}I>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41968 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41969 0 obj <> endobj 41970 0 obj <> endobj 41971 0 obj <> endobj 41972 0 obj <> endobj 41973 0 obj <> endobj 41974 0 obj <> endobj 41975 0 obj <> endobj 41976 0 obj <> endobj 41977 0 obj <> endobj 41978 0 obj <> endobj 41979 0 obj <> endobj 41980 0 obj <> stream q /X1 Do Q q endstream endobj 41981 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41982 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41983 0 obj <> stream HWmoܸ_Z*&4EQAheRJZ;_ߡ^V9YC<Yۇrᅤ$׷ PSLR8aaX-u@‡e\YTY_>iSѷeep]v\WphpBBjX3L B_(1qMSpI4)"}8lJy*<$cQ9Af #?Dc9$ [/$اc"SB+B+FkF{h])`j]A]պ6ٻ6ٻ6@!umTպ6B{ej]պ6B{ej]A!=2D Pj]A!=2D͠jZ(D͠jZfP{O Qk;Qk3(kZfP>{fP>{(D͠j9ZfP{OQkZfP{OQk3(Zֵ Qk3(ZֵS-GTֵS-GT a節#um@ umwmBT g gֵS@T aV umBT aV umT+պ6@!umT+պ6B{j]պ6B{j]A!= DHD͠| Pj]A]Au!0?o~BJ3|h'ap nw/p*ze ѯ<ʴ(Ș( 1&m+QWOE]M~\hcMxꋪ.æ3n3~Y\8]m<8h;2sz՚YA DezsX;!ؖOeU< jA,va~pQUU)H [&z;LچT!cAl.Sy9ϋ3fP)8{%V?[ ,Vem wlg_,E&R*SmwY7G)SQOEO8iUSqǙ6! ڠT6f,P@/cZ :ұZ͋ Ixw1)@ Vb;[S0PlVY;*7,p;YW=}Cbj/뇰˾*0]6}:s܊$uH2S 2Y]f8ZJ wVHDz~GA|YFys:A10Qs) ʹJ,yW޸RPa{;4EWC(4jFn(؁)Cr,6)8QlvcV?i 򵴰c1^Z1<= I&*jF&F(J'a:XuUTdE SlFÃ{Z!)㖃mC9Ir>ȅ$* ,s!p4Z2&pzqr¡2ʗHf$I" IR@0%"1ڒ"/$yu'߳x|>> y OLKp8*e^;٘di ̣l">jǢ(t$z>ѩ[3eTZe2~04\ `l=jcCdP%Sh 4#r?旾dl&l< W]臦E2N;zaC PFYSE]PgU yCCpi$ˀ4O[3zK(jl:s 4 e"26sAIcQ l.HA/u' ھ2%k{h-JD.xUS1k/6[Gymѻ6%wI9Z EQP*IY H9=yDμM}Lwǃg0R{Llʁ^nSqre 7ݳqhx(لoxJY7zS4mP␫&h;D8L(ߘ*05ră8>.xc!I"6=yβi}F>|߯無[*+[֕UYo6- k!'8LO7N u.mBKXb),FMZ}c80Guh`9ɫJeJʙݸv 6"v1]=L^ Y|նzn솑jZfQ6(3p}vʮOݺL^̒z rBOit_tk|+,'.͓9OǞ@:1XN켶Ey<)Z+sZ*V;mچt#~vpe(;bilr6AmgPeT!&SA@;UeᷩYqܠsW+> XJ7xpl@6;`Bύ ?j.ݒv~V_R)n ^b 烤)cm~bhb2$NIq،a_[slK質WC\ &Lۥh%)Y]*Ӊ~x"g?zY Oe]_XBJP)?+Ke"bc (agm~Xs.bL͕D1X{E:>cp5#tԕF)SЍVeLG Kz8M`ugAםCN'>p~rImV-c}ؕN6mimq%zNl&Yq&ҵʥ@#8[4Z|R'Y&->H<&dž9Xp fa1P}.ps7MQԑ6[f uE$CE}> fii ۪-$I)Ij@S,fen~u۫߂endstream endobj 41984 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41985 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41986 0 obj <> endobj 41987 0 obj <> endobj 41988 0 obj <> stream q /X1 Do Q q endstream endobj 41989 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 41990 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 41991 0 obj <> stream HWmo_@PFBsHn.p񥇤\ڨH;0hyHI5.IA,jγ/yӱ/_ի?]\E0+әDFZ>*׀+yW~/.mݔkkO}m|ɯ%l adi.La\舏C7x.txbxT]|wUT/n}W4C O2M?W;ρg ,J(̝s<J^^^^^^^^^>!'`xS}O >%ا`y3}7{7{O-A,gc"Tc1E= B8fQ{OP-P-YS TcET+E= B8fQ{OP-P-YS TcET+.jq̢|8(B8fQ>{(=P-YS$TcET+ E=JB8fQ{OP-P-YS$TcET+ E=JB8fQ{OP-E,gc"Tc1E=*B8fQ{OP-P-YS"TcETE=*B8fQ{OP-P-YS"TcET.Єjq̢|8(B8fQ>{(1o_+r<\1;|`$1l .[< W/wAI)Zt*ƪ|W,֬M-w6oX zʪ+M*h (.ysY)Zm{ 7+RDisv+Ixy*R\w}m~ᾎ|8H ,!Eg2MzVڜxKu1:IHbt/ESqesb}dN^j;;;1xHK3;/Oad4Ox zbr֏"d0Z#%Sv˚¢kl_ /'WgOG ?_NVT +WnN9N?QFIZ.OHxm?Ed"FSȳ/φsjMě%Hڑ=*,oaBH3365;) ǎq)ʯ8E=N0vMDs+E'h(&Ch\Z!,pןزui!D$PbuEI@``]uyYAضAm6v[ߗWv%eRlMskvk*@r@_, Yum{nӳ̒ Ή* '@|[mђ&RNQ]17Mph$$pp@@C(גdIآmu8؇:]Z,3ɚ-BZGzL9Ó*&~uGYt5JÔA0[q~"lP_*"FLj \S[撓`- u?@'gρqb6io9~P̃=0kUIG6Mp~m"Ѹ~ZF*shݰn-Pt6U9򓜯FIwi)W]JXq;lSSݰˀWvr_ik-ȧ힊4R4Gtj>fQ sbeez΄ eS>w>ݧ;Tr@O𧳲O 71kx?0F!js$ H JnmSGo(P- tcG8WGjLd:kv5w$ߡN ^qh(4 kC}>?`nuWgTg\K&U) &˳n˕/ lIKG`;<UzjTz[{P J6sGڍrjOyMM f(Cl[!̓'8C6p?rUX%M2#"29׈N H& w48s)Z8}}tQp#9թ@3jq6G!3|uS `R~:eKTXkHQ!؋jS`J\[Ӈn}ȇϻx6|/ߪ~ d4"A~\n}_du )XQ)x M'Y9q%g+T>Gک-EWG!8Iendstream endobj 41992 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 41993 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 41994 0 obj <> endobj 41995 0 obj <> endobj 41996 0 obj <> endobj 41997 0 obj <> endobj 41998 0 obj <> endobj 41999 0 obj <> endobj 42000 0 obj <> endobj 42001 0 obj <> endobj 42002 0 obj <> endobj 42003 0 obj <> endobj 42004 0 obj [250 0 0 0 0 0 0 0 0 0 0 0 0 0 250 0 500 500 500 500 500 500 500 500 500 500 250 0 0 0 0 0 0 778 667 722 833 0 556 0 0 389 0 0 0 0 833 0 0 0 0 611 667 778 0 0 667 0 0 0 0 0 0 0 0 500 611 0 611 500 389 556 611 333 0 611 333 889 611 556 0 0 389 444 333 611 556 833 500 556] endobj 42005 0 obj <> stream xXw|W!̀,3H ,`J n6^elIw4-K"v=!B4ɒ)ȹ+&v7?#9s\5x%U[V1s__BhTkˣ#j7>^ +~l#S1S?n?v35H$3qVOW /04u#?DQkA)-2tN#Gva~3\ƍEt0q)SMuYQDjDm&SSm4j;fPNj9ZAޢ~KVSoSku ?L#N>&?ӋY,áٙ: LB0M?|R/D4qbNR5֪U)Z.R# de|%*&O%jԑź*ԠuлQ9T7 (Ivkp$gz55Z!mp4vDhC$GCk)#yFtH{!>/P){ 4oݍ"Q: mZ]8)4Z]9 ڟ22C_2d+9PQ+^47;='CEh$0./o6+aU\DәPĂ>N'`7h7!`FAҊ4^g4[T#i; i}ΤR`Lr1Vno0U4 =)L7_P#7vߟ&7|#*T;k H& `N% S -^l`Ln.mtrQ,W`id{L3a&/ VrdGa $xJu> ƃC=nnn xLy_| Y ?ӕ^֕xv\"C #O_W: ޵~Vtf~dXֆUE^e[ORvV^ŝj3;}yB<$`6v ݷH[3;'D0&؇ۘ@U tZWcaQ[ׯ=BO1vm9exvNTW>,/m ^?`j20>ϫwoj4M[kD,Aq(+99O%PRóR5s}%H@0BtuZtE ^49'9H`(O·kH.atgۥ0Q]$K@A=8L|벗7>FsuZ` @RVtGv]G9D7Fw,S-vIE֛Qp U{h!n4H:YB!ma֎pEuI4O8ܛs qowM"8 ZNwMI-'xDq$w/29YY4y/SB_iX)?DdL<$D$W $Bzx\ $Bpr>LނOḦ3rԨ-"(rߙ. J #CؚD?-R5驧=i7Z뜃GPab#^C`hA(<:;@x>EsgvG0 :=zHiDaHzMulq\h6LN> S[+EФo3$UIJYuVRwɋn IJCSurm—-M}J<4}i?p;0X|HZTPZj ,b*)[1瓀* 4EmΒ286#0+F+K:{Fgs ͐ d%b^wEݾw &cΤD"YxJ*^$G%`®YZ.K\f)9 ^rOQC"ʐssaGl7v\,Sxg5e\H\>jA{I'} # ,}>LNĨP5!Sj]Ag3h٤a:דqqQƚ 'FeF(6xni)F6Mf_xygWA}!؟p5Yi:K5Ϧ'lKXdNgSg5d :s ^`-/Gh6Afsht!6S7xM˩#*1[yGI3z`Nt1SpZn ي^I2I3 KȈ*t_2 vxo_soH{ot ` ,b(ߪ9i>"p9|$ (IFe&f9d1.7W<|7DZfa\a8בvPK 䎁 Ko9[I'kTp:%H2Lgfk=Sn,B--=}H'0MKic]k e,^0o3/|MAW҉9r(ݞ504(5m 2yf:Y9B^D nxU"w?j0Dizf-] L?z# hJ$։+p>~8EXj/^?^y᪳C:/X+}o)! k{*?t< bwjm:ru~iQd@C<):H؃T{B ^ LBR+ܿƮe\<;]XCܦrF)?&3KYo=1H2t}v* 폙K'. ڼ>ןwT=l#"n2+y?njVSxp1TAonN_ _ Sa 8ӌkQ(mk^dI&TZj- .2<1Mi#0c6T4:Wad3(RlR҂+@fL*đ_ z}uOfngX ( V~\&_0.HJA֢TơjDߐOLHF!};&GUvh*76E{={W.]DEYFuL矜"è0)K :(p9Р+K*1j dmQDْ6iC|W+C)ˊljd!%ձʄľU]H$ +a!R'96XQ~06|04'endstream endobj 42006 0 obj <> endobj 42007 0 obj <> endobj 42008 0 obj <> stream q /X1 Do Q q endstream endobj 42009 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42010 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42011 0 obj <> stream HW]o8}ׯ/"U/}Abj`br-e%A%ӗ (R]=n߾Oa{cQԡU0KUldU&H@u\^ʡ^}hmW7aW׿|}_k E EX@aDBH4!M,le$6z._pJci$1(3| C9)G$#Q Yp>`2 jO1`IFKF+F+F+FkFkFFFFԧS2SO}ƨ<>gS3sO}Ψ=zϳ1-Ŏd\K1d),ƵCbS Xk),FZɸbb{k),ƵCsd\K1d1=JƵZ!QV2k%Zq-ŐŨ\+R Yzϵq-Ŏb\K1d),ƵCbS Xk),FZŸbb{Uk),ƵCsb\K1d1=*ƵZ!QV1kZq-ŐŨ\R Yzϵq-Ŏf\K1d),ƵCbS Xk),FZ͸bb{Ռk),ƵCsf\K1d1=jƵZ!QV3k5Zq-ŐŨ\R Yzϵq-Ŏa\K1d),ƵCbqQ:LnupP] EiZc}f[v @ބ9Uq.7# =nOHetTz~V_1RiY7ecs}S=us|}&0?CuRE:Ocaܹ V4+os"UMhff_vf:-Q_ }l"oƾnYM{1ŕu)VJf7j /˥}TWqE4K fc8G/U5}^ Z@Lei 9޿ClTP&PV~z>ʑ@b*VnVYNOO}p%zNٞ:](; Ik,sg -h8L'U7;ۤ!N_ #sM*.6uw*>DEéf>ΝUȮ혬y+IkyKCٚO=dF#Ѿl~΅H_Tk (ijo"`ɒ|}ҹ٩[؁bvm~O Qo|~>ՇmUMai#OB;_75aB`=/\Bhc&PwCM_OB aҜu2G1C31oa[6 y @np\7}^6sNB%[b]H`CrwHfl%s"olf^ ]#|h{8%|z|jXr5~ܥҪSMu_5rG)J0eWIid{y F]O.| 3_ bR+ NEke#3=-Ke._.N(S!S=TݮƋ;x.A+zW+ɡ4;}eg5PA)^L;Fk[sqׅ57%/1 |\"O(ESCہ679*rvWO2ɡa#sxXwN6^NWF=S'9 5<Ӵ r鼽VUJHŝyjʛvzN0܁h9!=ZO fKz臦9;_Zԯ>\n}΃NbӌA!0oT(hB 1v_sYi i6ДWXeФїI | T9>8YaeѡS4CW;"$b=L54:*x\毾6G]-,d| P}VxEO3*e.vG'N@X$IȅsBSgAXdI"B OZKlJ<՜#If`ڊ7ri٤pł&! $4KpAdb䀩w@;[ TȔ !>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42013 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42014 0 obj <> endobj 42015 0 obj <> endobj 42016 0 obj <> endobj 42017 0 obj <> stream q /X1 Do Q q endstream endobj 42018 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42019 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42020 0 obj <> stream H}oF uV9ȋ0(80xe3D.o,ifl>ܝYgFoNU~Q{`6OU:[NGV5eZ T0:/gŪRճ媩ƪV]<*i$T* Sσa>fl͆88.yPç6 gSj&V0ڡqٶe CPax7j`F9Ƀ&Ff=M VPWPMTXA }E8ƄATCOG5ѐf7PVHoYz+,; KBz{!g#!}GBK c>,}"OXDH>aS!}ҧBτK Yi6еTCPBR )jHTJZ!%g]kRBzֵVZ%t-ՐҳBR )!=Z+t-ՀjH YZkuj@ ]K5kеTCJHϺ ]KyR<=ՀjHTCPBR )!=Z't-ՐҳuBR (kujH Y:kеTCJHϺ ]K5kеTJZ!%g]넮RBzֵNZ/t-ՐеTCR<=ՀjH Yzkuj@ ]K5kеTCJHϺ ]K5RBzֵ^Z!%g]녮PBR )!=Z/t-ՐҳBRmDBR )j@ ]K5xz!g:2Bor<^(ϭ2*Y(xVI-t[\NgU3eL[MŠ/P-__ 3^ LSTgI4TԸX\8TuRO&C);ƹ, $o6у㡙a`֖'sPԲhJX~W9RX4!.Xm(EpGGusQTRo.-nR)ǫChzz?^7m K688>pp[Wi"/ >fjhWUӦf1or3푰~Vyt4ۃ=2"iu_q[T8nexݿԬ+f3U/E7ºyxjdwsSxlnݚnfr^|Uϟקo.O|4UZC;`eBfLZu UFX✑f0U q3KtǮ6XRtfQU1fCeU(Uʤ2ZfHǛp^gV wzc s]0,{ZG[>BDZV9d],VU1?fU99]k\10'|r^{yy7ʷgw7+ צxm)^X.b'͢J9eݤpv=MQb>63:;xB=߽Z<X86ߞۦC6pV0;8r8مjHeż噗<yEWļb+f^3DJW"x%+R ^)yeWFlȽPF2^yY2/+xBS )սjH ^PTCJbuoR{+=ՐX[ uO5/VN{!ŽPTCJbuR{'=ՐX; uO5/VN{!%xwBS )սjH ^PTCJbuR܋j@ uO5/V^{!%xBS )սjH ^PTCJbuR{/=ՐX{ uO5/VPTC{Q (te?o/"F*OFƩWpt;\]42N|Q2 G;tFWIQZ6CqٶOt 5:,+aǏ|xgd0~w䠟&ȹ 7񪂤ݴU ^պi XΦE70`+G:3jfݢ.wvV b7]VVkCiI"mRl_9(?b1aVMt5SV ]߬sO]<.[~~=1:lc& Vn6Itu#bF<%>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42022 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42023 0 obj <> endobj 42024 0 obj <> endobj 42025 0 obj <> stream q /X1 Do Q q endstream endobj 42026 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42027 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42028 0 obj <> stream HWko۸_ *K`@_]qCS$$;#LE:>$94ƿv7q7#&SV?*EEx|_qeC&n>C=6OuOMSOMtg? ѫMtax}T$Y\Yo(QEy>9qxBLP< (_~!zUk﮾nd!ҢKێLM췛(鱋{n[XHy,z,Q%+8+FUqQ|Nr*2| Yt>,B!K,_;cx'@='@ ԋ@ ԋ@ ԋ@$@$@"ԫ@"ԫ@"ԫ@}N9>"P_@}A/% ԗ2P_@}E<Xqµ>Pp!+Tc k9ZC>p-'\c"\c"k} Ypp!P1drµ>,µ>,B}ZNǐE\ X µ>Pp!+Tc kZC>p \c"\c"k} Ypp!PV1d µ>,µ>,B}ZAǐE\+XIµ>Pp!+Tc k%ZC>p$\c"\c"k} Ypp!PV1dJµ>,µ>,B}ZIǐE\+ X)µ>Pp!+Tc WiUU2ߪmWfþśeK8ϫxF_^W/[59XH`^_}ݼ17\ȹ4駛_m"բ4['vĢis2`Ȁ?' "&vri\6 (r]u7e*EI!iB_/?~޾츜Ls طBzg[t_>Jl#WŊsŠ>5fKdnӏ&0 v!ҼZbw?̳6%v6`sB隖2GN4S0ce9F@ŏLb\~.pcՋ7 s^ ~l7&AȺA&]3Q'1@ǦGY~@54tݴؼ)-8EIZ>,=,UVE%TTkSVWeW;yлy+'Yy҄K̜C/S̙ZڂD*%EN92>[|Q:/-P\\Փ/ҬԢ宾 ~웹)(3 ?<"|E](^GǠ'TJ"~IQ͔Ra Tw v?nߪH[vVxe&+YCa:'bRP¡R94]-Mg8hvm@j{G^'6fw:_9FAzf͹M P%l1c8ag&] Nm tm9 K~*iZ@3}Be3ZXUA)ݶq о)+K>[i{ABTXYZV{4$r.Μ߮q&AWO)Wϙ- 9D̋ ~WM\28/WȤr=Q3_Vʴ>Iy\uZR)J ôeX45[B jYk #?tɈEzl {{i/GUYU"m5= ( Zz+4Y!P[ha,&67pf![97<w*ܟf"0` Tg ċp$@{~6oФ]ʳ+Uqp54b'"B?v)ui]W`Zz!=}-}g罙Mǽ#ax+4BQ=v[0Fٓ(Mޤs?mK2%+bӵ|pj;_bzER2oQ{;U-vUQ{`F1/ό}ʞN nXA@sXXy ~55‰VZJ/ x'82!f,`(y<6(ՅGDQk x"-i^vMz`T,w~V~O"Bv~ߟ(zNgs:uSg̓&!`II(LU7;x ѻ  `"(P:41׳/#,"y- Gx:#8bk0*toMe3pǪ>r? {&KMNIy=?cӢAajݏ7"6[e^kZ>dzb2T׶qj,Cz=ƭY99G vފ=b||͋;w x09Z): AyIx/;/v.ZLRPt~J`cb_/L أ+Q5#)ɣ>2VgWEVz'Qoxk<;c:oR| |if|ǿ\W :=QSAWsj[K,oV+pKS9nEblmЪْz`QMB,OF΃n!c y, 8P$>k!):L\٦httsx~Ho/)zu.vB2 K+`=[KRRbVӈZ +ԣ0zeQ9`>[0:=Vz=C%fyQ4jD ;~q21Cav>RØKzut&J'2A 2A3c;iP-K@Us4Jk~0}B>] ]t&ռ&_m A7Hqg| 6 #ɪ8e[b/m١\^آiG#]inKoK;Mu,Ri>j (Hzv?o0S'?OUk$6N/ ;?:vk>H%=  ^ tjK__endstream endobj 42029 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42030 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42031 0 obj <> endobj 42032 0 obj <> stream q /X1 Do Q q endstream endobj 42033 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42034 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42035 0 obj <> stream HW]sH}ׯ偒WS SUGN4RBjk+ؾEN>}QVzK~z4M*ΜNJc2SA*^.Z6˦VeVsVs48OV5]9L\堩(SU4Lhnfl͆!|ԥ rhP*=`yL99c"HCb2X`Qp[ -sw{;c3^pXp3>fc}'O s S>ܧ}*OLp1>cs}{Y#b {Kh-ŐS Y=ŀ%bܳZC R Y{Z+bܳZZ!KpZkR Y{Z+bZK1d YkZ!KpZkRl8CwO1` {!R Y{Z'bܳ:Z!KpZR Y{Z'bZK1d YkZ!KpZR XBk),=kZK1d YkZ/b),CwO1dqZ!KpZR Y{Z/bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%gBk),=kZKU {Kh-ŐS Y}<*?;UbLF5]HPpV%iZYUWżz>{?=RiKx芯eUlh6LڪVg*s jm߶rlf{qZд0Mxм61?ꦿ~>_//WEFɱϢ(KD7َ6ceQ&ݴ|p_O٪ [5.VyC*g[TբilD[&i֣a`y:9~](.Ueו$n}a++:x)qh]ևpٕjX°kI4_Wͤdh @mˮTkTbv12~Y\iѕZ)ۑz۷F ku"k+iΏD~_Md@g*,|trQ'#hyN߀+$8m=\p,fE@{=[ɱ cY՟zn4Wm~c؝a?UӹNdJ&A7a[d4Uk7U7N5ai7:6ۺ3&t"7fG׹2p $t˾EU/ʶSqW ˢ,9w%\|TflP殸 >][0;Y4&q.|P>$)wU],q?m[o6c>i^,jmymF]q3)PU%T' oo65m$NEv- 4I}x`Mys!jClxҬs><2`87UQ_-a껣vh)^y],ȼÉuӯgÑ񷛖χ#ڛĕ&J6oҳZ\| ןyl*)+́0 ,V9BCd T2wIbdP 5EɹhngldV:D,#P$43FQJ̀4jhagbbn@ih, ,MLDËC`j@ Բb$A̜c#STjQ.@D2X¤*a! g obOybfIA&g` *]C\} Nendstream endobj 42036 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42037 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42038 0 obj <> endobj 42039 0 obj <> endobj 42040 0 obj <> endobj 42041 0 obj <> endobj 42042 0 obj <> endobj 42043 0 obj <> endobj 42044 0 obj <> stream q /X1 Do Q q endstream endobj 42045 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42046 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42047 0 obj <> stream HWko8_ 2zE)3@SRVɿ{ERɛtE*q._ad/_^~zs%իoDRӒB1]H gk&uQ,g{Coơ].?\ v^We~,e]TB' +Y 1YGf=}.^.TY%[,ycݎ7YdXPnc~Ld,AzAzIzIzIzEWzEWzMׁzMׁzMׁP3B} y>'P B}/E$ԗPx6%LcH1d} Xk} YzCVǀEǐE\+kZZC>p \c"k} Xk} Yp!PV1`1d µ>,B}ZA$\c B>Pp!PV1dJµ>,µ>,B}ZIǐE\+ k%ZC>p$\c"\c"k} Yp#Eǐ1`1d} YzZC>p"\c"Uk} Xk} Yp!PV1`1d*µ>,B}ZEǀEǐE\kZGp!+Tc"\c B%/R-}.d)4pg,JV}?~ܲc۾;ظmX=\T2o9؉;[/$w5TIxVh97hf}ۍƞ}3 KNͪ5;l$92T2'4ci&±>[T5\?k_%lsӦGvBY\owlp p\H\xE B,)ۮƕ`+-8 _7ת=̱Ly-́=mJi 6Sv6a> /FiWf8% k 0Jũ)hjڭ!'yqSk7$=tGo@Y<>3SJvO>$Z6?L6W|*^mb97\k1N+N G'8sB/@/J 㗇cݎ|ʻCT5 y:Q[`g6mkoa1)FA4tX3&jeV*=}MBv?MX]饛b-7U[ٟ*lB`]K?rĹPsB4mρ"g1ԴjL_=/R܀H }AUlh+ 5yЉC3 cNaYᄐ*5XC^^N 0dHendstream endobj 42048 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42049 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42050 0 obj <> endobj 42051 0 obj <> endobj 42052 0 obj <> stream q /X1 Do Q q endstream endobj 42053 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42054 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42055 0 obj <> stream HW]oF}篘}YŚOrfS!n4M Vc%p%9\S{EK:>s y{z˟~PZ]\02I֫]U[Ԯ V?jYh0juv\W٢ۮgSgo[iSn\[eT{[VIU(>vZStiMN>odB4IxЛv;M$Eܱhm&R-teHtpUhKVU>juʆ#.}$Ic$KnDZ2FFXܻ1<2Vp{;N=p>A}kk#pG>IOآ#tϱ{KXfrXh{Z Z˱{Z Z1bcZ1bcEk-h-2 cEk-h-Lj܋ZZ- Z1bI,ZK{eh-Lj܋:Z u,Z u#p/Z@k9Y#p/Z@k9F,^ցr,@k9F,^ցrXhآ#tϱ{KXfrXh{ZZ˱{ZZ1bcZ1bcEk=h-2 cEk=h-Lj܋zZ-Z1bI,ZK{@#"`%Zhy偖ZhVZ5ЪV jFh5@ZhEVZ h%VZVK-Kjq5eZFhYeZ"ca%@9F,%roA9vÎYB cZ"c%@9F,%roA9vY\ˁsXRc4-{r1wȽ 2@Kށs%r@9F# w h;{D=hZ"c4V-{r1+Lj%8F h{{(D==hZ"cD==!h{{; w%rA9F@Kރs̥Lj%8F@K>ܧ*Fou[QFE *?WCyT(>jurjw'۷cȆ1ɣ˜[^Nn>lgZenWkjnrS.V}fӞkEn?뛿ٺۨFy7j˓U}f;X>TO/W4}<q>eH$A<__<=_> [Yw @gmk6V۪}:utMJ&[&OG&ol̃krٽuw<FOwͼ[>ݮtP:^dm\e3vvZ,dnU1MurZl]83Ҕ"G+0D +JGK/$ B# l9;U~A~"e^Hgaΰ"%-Y,JۡӦ\(vYm{Rv*e)[{ ¼m:`Dq\a.=PSݼ"Yu)05*hp^nv%3]U^Q~0Lb0$4:nަvfrQ,2)Dn.#}7/oVg3B\.85 99`ۅ9H5_ݨ'ܔ+DC8 [ rv^]Nb˜V_sq՝+FiA.V;y A:̂n5JlNõU85 dlʾw $She*"KzݷrjZ&ЍKYZ>Z7߾|/Nbendstream endobj 42056 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42057 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42058 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42059 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42060 0 obj <> endobj 42061 0 obj <> endobj 42062 0 obj <> endobj 42063 0 obj <> endobj 42064 0 obj <> endobj 42065 0 obj <> endobj 42066 0 obj <> endobj 42067 0 obj <> endobj 42068 0 obj <> endobj 42069 0 obj <> endobj 42070 0 obj <> endobj 42071 0 obj <> endobj 42072 0 obj <> endobj 42073 0 obj <> stream q /X1 Do Q q endstream endobj 42074 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42075 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42076 0 obj <> stream HW]۸}ׯ h$RG$ٴq3B#cm,+^eN":>\R,}{󇻏,d޽Ë c&3$$g~eg/b5nQb_ԇnuƾ.Y_{?s2OW߽^Di~ 'OY{yH.0g\ڜ' C1dl XQ, Y`ڣoczzzzzᨏ >&ǎzIzIzIP8B}O >%ԧP:3B}>'Px6"Lkc \6,µ6,W!Uoc"\kc";km Yzǵpp!P︖1drµ6,µ6,BZNƐEw\ k9ZCq-'\kc'\6,µ6,W!Uoc"\kc";km Yzǵpp!PV1d µ6,µ6,BZAƐEw\+kZCq \kc1dm Xkm YzCƀEƐEw\1dƄkm Xkm Yzǵ1ZCqmLƀEƐEw\1dƄkm Xkm Yzǵ1ZCqmLO1dm Xkm YzC>QS ^aicǭYdu>oE*EO<\̠h(K3p\j:O 91278M2fXp]?͆i?/ P^Ն0<ɂ5]!!^:o2EQ4\^weDϳ̄SݖB񭞂; u|͌*G_-soBЛe6+/lM&Vo?~Cˏc 8/l1|wt [oFk'2 q֗\J'۫ϰe+ILmy!G5?aFS,O@y7is7gR|{k<,ޗ,7㒕Cc=Kt_Od/#14 FT Ǥn׋=8w^.:i2.맫Xd<y/w%Q=:ΤH,vW̄'٬lȠI&[ؠu OYK=.qvIa X.U SFGj-+tZx|rVQ7'F' ܼL)w^9Y9O)}ixѩ9oԺ?@'%+";"(?|Ad"ȿOwQ@2&S: kt@H[4anq=3k$Q@$804ywa & `"+կBe9+>}wLM_lB61b9#[\Ts ;S6oTw7/r[wu`W$1Y<2/n연7բ "0$|UY (fjsjhfKmN)hti%;TZ\F<-T9ΘG-g"_-l7TsT.iosߪQ%pSW{fh(X*ÊIsx 1 ogMu#04> xu?~?jztQ^_ci>0c'% Q޶YTGl֡^WK*˩H>/P 1234 0 R/Type/Annot/A 42078 0 R/Subtype/Link/Rect[129.600006 663.229004 270.864014 682.908997]/Border[0 0 0]/H/N>> endobj 42078 0 obj <> endobj 42079 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42080 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42081 0 obj <> endobj 42082 0 obj <> endobj 42083 0 obj <> endobj 42084 0 obj <> endobj 42085 0 obj <> stream q /X1 Do Q q endstream endobj 42086 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42087 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42088 0 obj <> stream HWiH_bTl#fafAjЅrwEZ|kX!pdd8ϲӧ<??yWd6A_U;ZN'V5UNmXEF*~SˮR=߭wM^k]=+|ʨ6 0I 8W&]۪6gWWGNp)}.kCp&w9SLcggWŧEŀ"c]l~^X2+u>VKjR& F!9pLbQ Xp,nb{[e1Np{'w̽{ =s>'}"OTp2>e3}gs s>}>YgPZm"+b),CwO1dqZ!KpZkR Y{Z+bZK1d YkZ!KpZkR XBk),=kZK1d YkZKh-Ő%gBk),=kZKMR Y=ŀ%b),bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%guBk),=kZK1` Nh-Ő%guBk)Z!R Y=ŐS XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` ^h-Ő%gBk),C ^h-6Q"b),CwO1dqAb=+|ʨ6z8XU,{t4bU1ʫū(&8'z68n֭9\VMu] &Y?TzuU|:w}j\q{P}qKp9K<3oa19:04'_QRr3f gŪ?!N!lTR%Iӛ`Ҹ\9t5ϰ|M>?ҋ_x`!7/ yw6ɥ|.%cVO3 nEC(|8w9R 6.v}cl$.ʭXv6jS.+v5]tn>g+)z>Emo)>q:mvqզvӁUVG\u}NAp:OƺDg98UabU}tH9i j w7a5]{ĻwUI=kx!q/Fz{7}2V,=f `x֢GUXb}0qdzUIlz1g]]0?-z15܃Pz)w$R/42Ig10]SnFqҩkh 'Y kmљM鵱pC׎{njsҶd;bU6(\\ӁQڗ1k^Nxn;|ZQkDz.J5Cl~.9]7[ ]woS.زKfE q귇Uqj_m8ȢOb󲢦Dl<&^Eնk`"`s44=M ٴ1΍&#2f[釐\nf"J=U1/:WpC4jv>{CG`/[ߕGVu[e}evӘ+hwN6 \zϷv .ܘ4 h"Eڬ2RĘ8S4c(_ML{tiB+mh7|()"CtȳskOOѝȘN4DG:R3/:)Н[|ep/MJjyCqNi9ҋ1 &]U{5 Z.ŲeUr+W *P5`k Xk*TJŪR *2+͒4KjJ+UR2eʽKހK]ro@.R7 Rc`{ T ȽX*^j, ^j, ^j, ^j, ^j, ^j, ^j, ^j, ^j, ^j, ^j,{ r/5vir/5vʽKނK]roA.R Rc`[{ T-ȽX*^j,{ r/5v}r/5vir/5viVT,sROMwg2.)O$5ϣUeIz_}Z~ߢs;:ꭋ}״Swy\ф{Է|mjELQÕQ4+1ZlJo8nҴ 5]S3#Ɋc,)˺M+3g_&jD\)߮,W*Oւ욇e}(ܿnjn`p__un'7_f2--C;9JrLⲒߊu8Wm7C;Ε~{?"N|йoms꦳s5};E\緗o8p5(Z{5`79?8~q|ꯖƽ8N-??9s$b~rH򬺽]x^Mt/ɧ&\&8<:/e[zkwxL#On siDwbo?}` 8endstream endobj 42089 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42090 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42091 0 obj <> endobj 42092 0 obj <> endobj 42093 0 obj <> endobj 42094 0 obj <> endobj 42095 0 obj <> endobj 42096 0 obj <> endobj 42097 0 obj <> endobj 42098 0 obj <> endobj 42099 0 obj <> endobj 42100 0 obj <> endobj 42101 0 obj <> stream q /X1 Do Q q endstream endobj 42102 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42103 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42104 0 obj <> stream HWk_1uBZr|5?q q[2 ZL(qCR^;=#E=sJsӧo_Iٳ?~&S*JJb#"F*}WTyW~)^Uݔkʕj{m|.'Zl & U2TI.0{_ޫ™q?._rUt]N,|/AMO>W;Xԫi [P>| Z@)LsdP,s21c$!OG1`YCV$wcy -sow{;c1^p{/}$Hp1>bc}ǂO s>'}*OTp2>c3=JK]`R Y=ŀ%b),bZK1d YkZ!KpZkR XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` Vh-Ő%gBk) Z!R Y=ŐS XBk),=kZK1d YkZKh-Ő%guBk),=kZK1` Nh-Ő%guBk),C Nh-vZK1dqZ!{Kh-Ő%gBk),=kZK1` ^h-Ő%gBk),C ^h-ŀ%bܳzC .R Y=ŀ%b),>Yyg]|.'Zl8|1KgNqì+]+5_u\]wW47gml c{R(7fe;|ykU|JΤX{JXlu3bZ]Wb=-pY92^Ɲ<%Q5Vx o7,lm$gVEJ4sxx;:Bǎh4=M8/}tN6lx΋]=!o]Ѡvyk| |Qpׯ >/@[mY﯇aj8 tg] wiþԉ|v0rد'/#97(WLpNj{]1>]?W78#n$dz`e7HvwEI;:; p2Wm.^ x{zzzt6&$O٣sX#^MÆ8Nj11x?3^BxyMCC^z"l^S3>N|>Su ],?s:VQ __}U l f~\nlܙ3~a$q};>Ut3k|/Jɻjl=PU;#_&.&su~۶wt. Rˮ̫|س}U eFMeՃ @zl_ )L`1-/hy-ϴ"A+bZ1XЊV,hL+Z JiVʴ2A+cZQ-r-!kQ XF2LZiYA2-+h[!CroS Y˽rO1d Z,V=Ő%h[!CroS Y˽rO1d Z,N=Őŵ(,!CrS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1d Z,N=Ő%h;!CrS Y\brO1d Z,^=Ő%h{!CrS Y˽rO1d Z,^=Ő%h{!CrS Y˽rO1d Z,{!kQ XB),iUgZn8Ƒ6#[y*VPj\@Tְ]ob_aO4qNaOw:.uGHr'VFͳVFMӪ+u7q1:>ˁ&b[tm Lg>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42106 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42107 0 obj <> endobj 42108 0 obj <> endobj 42109 0 obj <> endobj 42110 0 obj <> endobj 42111 0 obj <> stream q /X1 Do Q q endstream endobj 42112 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42113 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42114 0 obj <> stream HW]۸}ׯ>Fb@3M m Pd%D_v+"L0f$y(T'ilJ*P=vvU*IWw?3wypoP?Ld0&IuJ([?F0(2FL(!{Jw\bOַLFwX?γIN]qTg4ٿAC.ӳay!4"@<|ȆC&a(:Ȓ3`|2r29qbObg9fIjbbzgzzzzzzᩗz驗z驗z驏>FǞQxD}O>EԧQz3D}g)bZ4WbB\bw1ջ׺f!=2ĵ.Yzϵ q qis-C\b\׺׺f!=2ĵ.Yzϵ q qis-C\b\׺Xpĵ.YzZ,_iŀ4 Q﹖#u1B{k] Xk]Lk9Z,DZŀ4 Q﹖#u1B{k] Xk]Lk9Z,DZ@ u1ջ׺f]L|.,ĵ.Yzϵqis@\bB\b\+׺f!= ĵ.,ĵ.Yzϵqis@\bB\b\+׺f!= ĵ.Vqiŀ4Wb,ߢY<7A(8<(˜qF:xXqlْaȡ[tn&UCZmk1lyIN@٧1;Ju#N"CɳtfhFچj6ڐAuu{UO.Ϲf e,`?Yp2 93+8\YPtKCRv~睡s;WM5T6#B1?F:U*؈hn8wIY+gp`"+/wPE!Ŷ+dǬ>OƋot sOזq5ڧj a O `#:3=5IN?CL>.,EiƷsKn2cxF2&"Ca& z`x"\5(JRgylGBt5e3yߛNXE-x 0f|9hyzl1lky6YrpWOַ[=i|Ly2>;߫}546|I{u/!C|]`] v0=>>9`}UgW2OpixWzl[IKawj(9GIe1ʤX٫G0Wq[ث㸐U,(tσ zVN] &dHk  S*ܗ;U+류nԳڷyQ7Od4;==G#菇C |LDabsuq= -jS mgQ-) q.:9VdI#/xovbAv\B{gBnQ6ܝ}ݨP3dbEWPZ+Hi)+?CWγˮ*wh1:js}YpطT*UͫmSt8L:G4a$W ۈ,^v DH'A^O(՗{YÓ$\Ru.FHzPL$KLK?G+"1[ux)c>EEP4vJ~"J~b|6`_4A]Qc)#K^4q6ƀMsPMM:mx?GE?o.iΪ_h$^W߻{5̨p6{͇8^,>jdqRJŔ vP{$唛ʹfO1Xڽ Ǿ+{ 1qvy)C0x:pJ7v`ZNx?T4Nd?9QXXN,Ed Kh4`To%\ɰ ,dxR򂞏8]G&rԀvx/)xNZ!|M_9lgMTHj۶=BGl ִ4Ӻv큒 SԈ5×P4]`~bu\O/>a86\"Kj]o&+K0Ai_ZYh'ylɞ,<АWaR&GKmJ-)LEfM[7(FY[[)3.l 3B%-%>dGlњ_Y*Q||0,?qET}`+rlUf5Y Q5Nׁk/'I=ؙeeeanjbg+&1Q`[>}&cvҕ+pڡy2dDgeДD>Q`s|S3fGolaX⋦]moZ,-O/ h:bɝ/>BH**S#Uts/*zXz,:嗿8+VuJ/{oleO4=扮m,0]pbmsl^kdY'2wREhzv:?Wܨr;~l \b˝ᩪXYXN^^z ; ~~;.T/QkU`鉔ogٵ>į2{ETA|pY̶^U/riɤ@o I9o2) H^#Dhr[<;+v8<v:\іU6;nۗΠQI!SRPIH{,a)H0tVB+lY6fqCch' |54fcc* sH$jyLWZ!AJH=5̵zVȨ's!t@'Rrl2E9'>nr܄ONL>PLcq{]V~WD*5 ǯMT`J$VDT6~ș!^r;ÔOT:"ck7QQaHYFi:dCs+8 F(Ijv2,/X$r' YT2%2e25Zۂ4UTlѥHE5eh"B9)l{rj"FۏCms Kb chZ3)Z>Tsks,+3AK{Tmˌ1Ha8kڗwm=f GW*Y(m3%QxrQ-+k%mcU}N{;䌖D׋Bpt"3鎏w}Nܽ+vefdBT2w9 mY8M5ުHvq*R=W+G:`)~lƸ ,QzߺbYo6{v-!V'cA%Jvq8{Т}B ~lZ?zW孲zozO%R%Gv56̺Гvcrqfasrn\k&}ҹkm͎×NWɦsC¦ݷ`>~ݯw 0ܵ||endstream endobj 42115 0 obj <>/P 1379 0 R/Type/Annot/A 42120 0 R/Subtype/Link/Rect[93.6003036 540.330017 328.824005 560.01001]/Border[0 0 0]/H/N>> endobj 42116 0 obj <>/P 1379 0 R/Type/Annot/A 42119 0 R/Subtype/Link/Rect[222.850998 187.828995 455.252014 199.813004]/Border[0 0 0]/H/N>> endobj 42117 0 obj <>/P 1379 0 R/Type/Annot/A 42118 0 R/Subtype/Link/Rect[215.214996 179.744003 385.484985 186.5]/Border[0 0 0]/H/N>> endobj 42118 0 obj <> endobj 42119 0 obj <> endobj 42120 0 obj <> endobj 42121 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42122 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42123 0 obj <> endobj 42124 0 obj <> endobj 42125 0 obj <> endobj 42126 0 obj <> endobj 42127 0 obj <> endobj 42128 0 obj <> endobj 42129 0 obj <> endobj 42130 0 obj <> endobj 42131 0 obj <> endobj 42132 0 obj <> endobj 42133 0 obj <> stream q /X1 Do Q q endstream endobj 42134 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42135 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42136 0 obj <> stream HWk_1͇ Y΋ÉM`uܠQ$-[Gzzݴ0gs/~n;?_Գg*~+&*4NV`ն-EF-Tqv9۫r]nxUvqq16V5)R^RIbը(یinH36hs)6z1 ߩnѽ?|>_f/źk']O?ek?*/O?g|/ SR?gJU\mUC",~-R$9qLcĒq,,+n4ϱ̲-po{;Nw=p{{>A}pG>Q}p܋PZ Z1bI,ZK{eh-Lj܋ZZ ,Z #p/ZkAk9Y#p/ZkAk9F,^ւr,@k9F,^ւrXhتp#tϱ{KXfrXh{ZZ˱{ZZ1bcZ1bcEkh-2 cEkh-Lj܋:Z Z1bI,ZK{eh-Lj܋zZ ,Z #p/ZAk9Y#p/ZAk9F,^փr,@k9F,^փrXhت#tϱ{ Ww*?uT^` -@ @+hBZЊ@+ jV#J@+q-[I-Kjq5eZFhYeZ"camZ # ;aCȽy=LjD-=ΣӐŵ=Lj%8Fw qh;{ D=hZ"c4-{r1QȽ @Kށs%r@9Fcw BjqXRc40-{r1Ƚ@KރsF%rA9F|%rA9F|%rA9Fw%rA9Fw%rA9Fs%rA9Fs1bI-іhSJ^Uu*(7ETZ!|>j*ޔjت*/dx&;"7̸1 }n\MfݪnZ.vܜv:_5:/XtϵQ37"yk֧5/*Н9r,RLo|~75)?/u78Ơ}[Ny'#y*:K~G̵֢͉>swvƼ7~bwݧh<Ƙ/a-s\kq3dg}n9?YS]toߤ-nn&j`c2uy^իwpr'ͻmMo滁;WE t=q6t{LFO.h[<ˢ3). ^z]+t;өGGrOut3ub whyّjr-P.oY.˝tݩ>^ Сg$ok\ӣcR onzj>mn<)qtBhӳ c;lϹ;䢮?UH\^\cSy*sl؇?}r,zI.#k6g@N&sH8b58nVb®M=%vƽ{P=u࢛_rN%L@\^M׳v&r_ɬ6ݮ;ᕁ6*n꼪ݬ8Wkc?حW{f.᝸ۿr-;=p3dxM&'XǼ=fғ/>9\ͧ~YRgcoȷLNo!]d|Xq~#yɇA>"cJ%sXRcr1bISJ~?͛bl2j|S :l7yv4u,'Vo oG4|~8i [ou4\;..w :RV .ܔ4\4Ϭc~So>A8S`W}?bmng:Z)88|;MgU/e( {~TY|h{hiO"@uL3LB'wfyf"$,nP!w $Vl o?O]멕ӯ3` endstream endobj 42137 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42138 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42139 0 obj <> endobj 42140 0 obj <> endobj 42141 0 obj <> endobj 42142 0 obj <> endobj 42143 0 obj <> endobj 42144 0 obj <> stream q /X1 Do Q q endstream endobj 42145 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42146 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42147 0 obj <> stream HW]oF}/9_$g!ihF@`$b*Q^7~%).]'gpU[~Yݻ?HMT֫P8YgNUjT'F*ڔmX}mvz[zur'Er0NK"$UQETyZ6:Ҍ ڜxg<+fC[_CIG&E_I :H8. &N[L~>_RRItI'&@9s"1ŐoG1`YCVXԻ1<ŀe{;c1Np{/̽{>sgs s>}.ϙBp_0`>2Qp:kRlXCwO1` {!R Y{Z+bܳZZ!KpZkR Y{Z+bZK1d YkZ!KpZkR XBk),=kZK1d YkZm'b),CwO1dqZ!KpZR Y{Z'bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%guBk),=kZKmR Y=ŀ%b),bZK1d YkZ!KpZR XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` ^h-Ő%gBk)MZ!R Y=ŐGc*."^,2jqĞ3B;&f9*P߶znFhSQ7:=f{x6Lh K%'ܥX,yH :KzStLo]0b^lSF?ն<5tՂt':D:Rϳ?oN}fSԪM1#64Dvm:HW6wVc YL32{Ww#춪Jn8HXSabT5!o aWzE=y-~8> t?k1x9~0? Їצc~I%L3pPyy(6b RuJrXWj~,{ZAp1ra1͋]_ % Z Ysml&2mմ{>3nxk綎^08?>,.oܳ7 4s&{~EA9pg|CveqDVvwdC,0( 6z^ρW";[@y5=,~LTޯaDGroe20f 0=ܞ#>9=|>e#~;W_u/Z֙s*SW4¬߇rmw{dv|l'&vM< βP2ks 3b2gZYf'q޴B8a&B8ݧ*)mVD`_ 5Bs&~]"°* w8G=A/)5qFv,}큺Y÷3|hl6UF_[ˈ"O;-llhO6&\fe;>Uב p#W™p&=,߳c j?Y._nm˶R?3i@LkǀaAz,nE/]`xBZL˟`hHO.?mwxYo6׆H xu7Qm7O@0dEŴ噖< V`ZA L+2 ZiVδ A`ZU0(hEHlʵ(,E1`A0-#he-˴roS Y˽rO1d Z,V=Ő%h[!CroS Y˽rO1d Z,V=Ő%h;!CעS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1dq-K=Ő%h{!CrS Y˽rO1d Z,^=Ő%h{!CrS Y˽rO1d Z,^=Ő%h!CעS Y\+>G~1:;ĞFbpS?J3\J۟i0dڳmdzjXkLW+cᴂaon_S W$~ވ gz_t/C2T}pmTv9ot۲nnf7s䟃V9l}nprs3?U E7{e2Ja Ơ1>IBHąa),ju Ѕ7mX]_=2 D,Nޗ|b0:lRsC\DD0``s~,%]8Yl6>Ægoy*0ڜeaΞRэ.@Ul%YAOt_MHkD ,&)usCu MM{\3#˶2~RH4:PБ:n l|9!>cSnnmSpXxpUj=re51HGjI1~0qƏ^endstream endobj 42148 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42149 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42150 0 obj <> endobj 42151 0 obj <> endobj 42152 0 obj <> endobj 42153 0 obj <> stream q /X1 Do Q q endstream endobj 42154 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42155 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42156 0 obj <> stream HWko:.`?ڀ/I,..Mnmovv $Ņj+~]IIQփ;.E*i|8<3/de~;_}*#*B10,e+_lD!`?uVn+M^ŒEpa.C] `-D0>Yl &".~4(9Fqlz!t4vSNVnz_|[7?WogHD1y "Bތ8<C C^' >o[8F)>7IFu0v1#\\8Q Q@9ɻ6@ KKK++kkkcc}BO< >'cS}JO=`o<`ium@umٻ6@umٻ6D]պ6D= B Q{OPkZ׆(ZAֵ!`Vum"TET+պ6D= B Pj]jZ׆(ZAֵmIֵ!gEֵ!gwm"TET+ պ6D=JB Pj]j%Z׆(ZIֵPkCS$TET+ պ6@um"{j]j%Z׶ Z׆(kZ׆(kC޵PkCS"TETպ6@um"{Uj]jZ(B Q{OPkCS"TEֵ!`Vum"{Uj]&Єj]| Pj]| Q>{cu .]2;<0aذ&Tu]et#BŒ ziP$1aIV&ٺٷuQ=prnirH ӤgsM}#vyy?jK(Rcp@h_!" c;oxq4;FWK0PAڙ]-4&e2)02K1Id<*ZPVͪ5'nѾՏ-f͒Z>߿oߜ%Nɚ!OUt *!e |嬛aH#+kGwV R(g:<,VOJ *:n!%D:8SV#:3j{sC؏wo lj'#,n'*bX&?.DEvFzfr*3ηm; ФQ7!-88`)Mܣ@&B*Q0Xӆ}$ @ڷvO8wq*7-iȹI^ keO$Cp&=|aj.%؜Ն U1㡪t -iF<'@yYY!Wd|MP*gem+;|ޗTR@JmZl͹/]9j?mm|u,=ڴUl#?M]_lX^P` S6phߕu~64E^>n>_=Rj|/;)c[lԔԈUJ.|%#-q{+dڹ҇Aע`vj"]W0CR !#@c7wpfLEպoH!V8Q^=k+P 6kmXQȕ6c>jn0ҡ:Ó$Tlhwi1'ps2y[w/>QY޴ )/\0 nsqe$1ڶkM6+ _ fR#% 4M '0UnJ2ChfX'ܨƢFQ R@4t^a*K]Y kaHדk%1G Vz9{uQyu!ny%`IyH#WN!U Y <8qq$A:6r6Nx8͡svDfL_F70.\mFf]TECwƮ)ga5"'aGfja;aώ:ڙ=3y{A6~#\ȶN?bjĤkW39_vasy^>AF8:vBjlf싥Pf 2(m zϯQ(ڞA Pdad:+ _r(Qѓ27μyS])9zu ͮL+1WiMVYAwÆC _Nm]FQrM]΁34]N̔<(P@~ƶy>YNK0!1{d$8Q!Sbԯ*H{;=}BzY\3Wx[So'jubc .Q!û:yT%|4-h9{jDՌ H|v>3ռiCq|# HaC lyI>M!  <|UrC? GKV  Ok5~ ytj]럓,-uQHr|$rW=&NkO jszvmut!H@kunJLt;,\gqݴUpNx/9ӾWQ ]dFKX,\X8 -DA2 _1弘QG L2cɏ};MP$96Qj:9fj$?rNJ\/pw D-4vx>y*to5|L" $^3Km>q0n^ɦ7ABe2- mǥ*0:pjf!BCd3#iLF`7:Qk>+"OYG'RAYc7[?46PeF?Ml`8T $4߮43&w(DT#6S((5ZJ߲LTmG0шR@*aDjV $Ej=H%W^ѧ8 D֩Y1HL0]fqeP,Ÿ01R {w\}Uޟ\oU[m{_G^l2wF>>Oj>^1孃w endstream endobj 42157 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42158 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42159 0 obj <> endobj 42160 0 obj <> endobj 42161 0 obj <> endobj 42162 0 obj <> endobj 42163 0 obj <> endobj 42164 0 obj <> endobj 42165 0 obj <> stream q /X1 Do Q q endstream endobj 42166 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42167 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42168 0 obj <> stream HWێ8}WQ=HM`: mvNP[tĒ:ܞb}DɖrO0>}:,C?_-/~&pB1(,Mdۛ߬ b9b̮'ݵ6Z}\z+.x W^2V 1Yc4تB'W/M-i\O+z)t|xyۮzwR8~-{d`}Lu 5`GchcwbV I$4 g<]6ȵ}Npx,=!bg94rsw1` B BKBKBKB+B+BkBkBkB'SO}JO=)>ԧS3O}F<9>zϳ0Ձ \bջ׺|.,_p!PVu1d= µ.,µ.,BZAŐE\+׺׺kZCs \b"\b"{k] YzϵpՁ$\bջ׺|.,_p!PVu1d=Jµ.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] YzϵpՁ"\bջ׺|.,_p!PVu1d=*µ.,µ.,BZEŐE\׺׺kZCs"\b"\b"{Uk] YzϵpՁ&\bջ׺|.,_}yX ͚:x W+8[m%iIuϺv(}$W/:Ktݠ]v{vR8;5>ޝ:és'QL1Kg?]T6X?~%)Bd#BkQ$F9TM/D|vj6-hꋁ}Tk0)veؗ,HpMWtaO)k0\8 SLuhCugf)VQݝ-8+~lx`‡ \}ez3(0a4QyVk6"{ Ct$i|2ijnl"#vkdДF|[5wӏgͺBQEE(⹘P얊HMIQU?Lmf,sauXG!$J1# Bz䱞2#þ]xy>s'T."bSK[$.bV?Z,QR-{Q`_Ximc#0sxgk%.wGQcE$49'8Uap8' ơ' bQUV4DhÝg ^y;\0j{nN=Σ=U3uˎcs֩.2ы=Sy %M17mK֬6!^ь_-m3#4nh*tnJPd%kz$dH$KExβ~~.=I {ڻ+)ۺ9CaE(jbźQ&Xػ<2<&=`[u Gqs]s۸\O!npZDM_j 4~ Fx*"֡);a,Cn_wc>&>mQw(D@Į7Ei@oa?~p+B F+j3H)J}k,v^Cwny'3Cp{IlTY R&zw(8go̓^?9O@"룊A\Cow xj*ЬO9nky2x$ӌa [^$2?6ذwzA;d{S,i[&i+t1,h"YmMgƿfb<4M\d/Ts(\1J쾏c5c%$,A 2( /^Y+wTXf>L u 9Sr@@xG)x<ӧ||A:J;=wAb` طtU5$ܙPG+:֚Swxi6i]/»+WMo6Pы8!JiҴMܓ Wi$I\ 9|y{EVߴo 1Vb´;l=o+k(#s6Xa .<ϴƂPF4%χuT=Ex2ךfhϖN-px е9R0z)BS{c,%> X @ Dȏ4Q Jd?E`~^sBomMlUTl#Pw Tm|l!]ג21\CפN^Jă |~! **'5;+vG* OvEճ!hH' /ٌLV&^9?U1?IVQ\ApBpCĚSR<+Y۞ bO+-P|<==C1c?׷+ГTfyoO9=oV&nWZF~wjzoUQI{q>[Pe:,PxXi#*q59Vs7>0޻{bؼ 0i{w7^[vdmus؜I8SۡT IW ^rQayItlT(\$g:bJ/CL[x0We4י6  @V f(E4oH1Edb2SE9tڰ 2^Y]2W6`U뷟}8=[VTsLW.ϐ`))+$ޛv\W䙐H!I}ÞH*[Rn. Uy]o!f^}AR7H,QVyxArQBZBxfQ$sd3=(-EJw8K%h̯EOivj{ BL3==PUufoݭC4QYE¤6c :8l6w%q,nwnWwVMoF$dRϯ߼y^YPy>ogsc 5L/t-el/7-mвAˡя#I\E1)TJaܸ޺Żdn'fY _=fAR9}zePFFP&1Īv SfPSPœi)~2WY bC {Cȴ`@64R>@Eh$#97"*FYu}q6i`6^؜&ޭeAFyHX)x3ar2Iɏ=[Gr_rt)Й~:r6D%"~Lp)d h 5'e!m"?1<=/2zh(C5'u0_V$lfendstream endobj 42169 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42170 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42171 0 obj <> endobj 42172 0 obj <> endobj 42173 0 obj <> endobj 42174 0 obj <> stream q /X1 Do Q q endstream endobj 42175 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42176 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42177 0 obj <> stream HWo6/_Iȇ\Z+IEHS޸-hv8\[s7;݋_B/fVqFUͽQ&MY.3*ozYfPe6}m|Mgw]d5ݤPISUEPUv:,vu_LB>dFnf 5,Ӷ}m̰t_>u3_e{m6/ռ=^mtooFN&>KebtcvNfY4\F}UPH3}N?\e-sI*>dZrjх$ELjd1,<`qZK#po{#[ ½p{'; ½p{/ܗ})ܗ})W}%W}%W}%>} } ܋`h9 ZEt1bXdI,cS˱0,^LS1bXdbj ZEp/րr,{1L-" SkrX`j9YZc܋5`j9,ZEt1bXdI,cS˱Z0,^LS1bXdbj-ZEp/ւr,{1L-" SkrX`j9YZ c܋`j9ZEt1bXdI,cS˱:0,^LS1bXdbjZEp/ցr,{1L-" SrX`j9YZc܋u`j9˦UZ.zOPuNϣfle=oԃm_=8}tGw!te |ٞEo.jQtXCJ>:7O;ݣG.d c7 яov$y5hMۛ>n/ͺ},]SrF3xItďlIfqVkXVm"uAyjfU͆l?U}=;k\iԘ_Xڻ!g_1-~8yGbrбv_^?V7w@Eҹvs~mJŖE?hxIuH]pgNpO޾}:l۫a}C~*Zo;@,*ЛkoC&zK7sݴgDLfN|g >/kЮ|:nʻvsz^5~OJoi?q#Web)n#HyEOGSo#;&ɼ=Kv6![w/8Q |d G9?HzX0{OՑ$ӺdYbev4-뵯Z+I=PVTo8^ zM" "e`L˶F?'DrB"9!2"Z=} h:Պ5,j1ݸbrHRmdDr(pO@[|Nd}b`i.-;F+էM0"ˢ2 +,jLzt&M&@EJ?( )7CięמZX/r"If~=ЀX"[uBXe}v- Y @s1$-@A b~DJM|+j> ЧY-\j}2N6Dӎ362epe+aDsL aa``:`9Jw7(Kk|&zK҈G'JHl^3H֞WPҗ6`y["$b)5qQX&mjgj3\Vzd @Pi?|'ݩGendstream endobj 42178 0 obj <>/P 768 0 R/Type/Annot/A 42179 0 R/Subtype/Link/Rect[93.6004028 235.186996 339.40799 254.867004]/Border[0 0 0]/H/N>> endobj 42179 0 obj <> endobj 42180 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42181 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42182 0 obj <> stream q /X1 Do Q q endstream endobj 42183 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42184 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42185 0 obj <> stream HWێ8}Wpdo0 ``<@mJl#Jd, :>$uO? K?~qB1]$,dL5Q^"j쫡n}3tuut^:_/q~J$e%+aL[Xl:5 CI)rSnL߳+mny/D/=%/x?`;h,qRЄ9@<~d"ؙޱOSeQ)Dh'-y GR22 | X,C&XvC>,AzAzIzIzIzEWzEWzMׁzMׁzMׁP3B} y>'P B}/E$ԗPxC$B>,µ>P!+Tc"\c"k} Ypp!PV1d µ>,µ>,B}ZAǐE\+kZC>p \cH1d} Xk} YzCVǀEǐE\+ k%ZZC>p$\c"k} Xk} Yp!PV1`1dJµ>,B}ZI"\c B>Pp!PV1d*µ>,µ>,B}ZEǐE\kZC>p"\c"\c"Uk} Yp"Mǐ1`1d} Y2)R-Czݯ8[?G$-[oOG<"d,J>D⏆^IQ]zL2_ϕ+mq/ &_X?e pRhPlQ5n]~6M{z v>$C;knݺLJ^bz\D0]XO Ej9q<ןWDOk䫵}SY7C K_>nh8Vͯ%=J^>MMaU%|n~oSvkJ] <x[˩*(5ܴdbV-G? 3zcljkܰsi@jO{[ q'ᅗGԖP&g7+iq< "Q\=HS(&@~YEpJ*)ϼOB dHr8\fohjjj6gPd׋YNM˗}@E^.%O{spũvΙbLnCئjm%?ks n~T0H  [vأj% uh!09&#@~n~Ó(ku˘df*]KjBy@mI9Ƥ\ >vwkU9-UCTqS?E5f}\+.ONt/AA]7eUsWOl=$0"8I?s\݌HE"dW ks̡9pƈC\M0%KJl9ۿ. rg+7x$UM Ԋt o@} dcw] 'EaoJ?e?ܞIdtr5lJNݱm+\qv}t4Kws|\'NWbuO7t̸—$O9LS PXńp1!F)\_fݴé7,3BQc|]KT)\.Y]t N‹A`a9zX!To2Z\HaCKs<<1e[k4hmayv>0Fi+jPrZW:mܳq2Bzۛ.`\~fJD3ô74KxizݾK$]$\jUZdytJKغ &^3(ն )Qee6!1Ԑ@Pu,HR=[+ɡ}V9X|ђ`V4fQsŐ4uѸ g43jFl*a}8<4?EoKoX,oO1 RI)ѓG~̻'Q 0>ږ͓dDg Ole&Vӡ|sfVCz\=zIp7oRCI7Wa@*ooFp-zVXE-|(ڇk5R{Dd‰P@T-Ϟ(H뚆Q~_<6wz3䂦B:ULf&E_+Kxe/y'ۙjl5b1ӜPh j5S_jbnVkD\~zf~1BPooQe49v5 H짜6Qyu#},Jjeʹ'W;)0a=Y1'q,f |0DaLRz|Y_{UvWhMUO曒  fꀞ>Lp㏫  p1M8NXyIIO.9hcQtP5|!"K:5c/'a[{\>~S2,Od=ڿDg߽?QP/MxY2. ;Y7Gy1~s- R^$jI <{X@$ HhD#PIh19ǂ@} n sX.LG|d!Y*ur  @͍d+YD 2LUV {n 7Gd62sל*E4Qes A;UWA4cTZCdl]LŐ$JAj d7endstream endobj 42186 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42187 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42188 0 obj <> endobj 42189 0 obj <> endobj 42190 0 obj <> stream q /X1 Do Q q endstream endobj 42191 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42192 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42193 0 obj <> stream HWm۸_!_EMzMzw Z Z--94Cxs!gj<} g]y'/_]E_#/bP%KEiw&wDI|񸎣f[7snۮޙ_E|G/ȘMT@$.bY]qumnɊ ]|^=PLk~_Meno}{a3e&,)|^)/_(a܁j%LcĿA/msQ!S&4DJrlaFQ11D l0l yH%"`/"`/ 2`/ 2`/ 2`*`*` :` :` :`Ӏ}JO> g,`쳀}N9>"`_rBضZl=P-YT,*dm"TmET+bE B(BfQ@P-Y>P Tm"TmET+bE B(BfQ@P-Y>P TmH6 cbE͢B(BfQ@P-Y>P$Tm"TmET+ bEJB(BfQ@P-Y>P$Tm"TmET+ bEJBضZl=P-YT,*dm"TmETbE*B(BfQ@P-Y>P"Tm"TmETbE*B(BfQ@P-Y>P"TmH6 cbE͢B+B 7V:\E^ ?diEEW\,xel*~;C Ly,U9 ]}{L?~ҹYSܠf+D&Ys#d25lSw^p}hw~_z_o^寯. ֪Ft?52t¾p^P'e>E$Uu7ph%.IClc^|AǑv[7g:ǧzo͘-I+l[E+pXb'7)"(lrc% 'm!nOcqpp='-d_:;ѧ>]mω{x84cy|0p6SowzΝp<7ݭb86e=kX"O{ j\1foEz{D5+mƌrhwu{ӕ2xrQpj՘9)𴗮L uir@!V-c2| I'G[SZ~@b|AlSd3G<[!`WG(48tzCLEj@I0c&j3mlڷp΍;Us!WBfsT.`\C7㹲}L>0*ǟSG:; bӭ]QD.ߵo>I=eG׸:9E|(vuE) e*K7W p̦ӛ<֘frtdw~?a 6G vk))b="ʆZw?UnF%P8sCٕpb:5W S#Htɒĸ5.vUv[In;x[bۻwԓ^F2zeqeBQQsW%pC=dtΚeYmbj:~2IV7C3wiMdun=2泌u{q/]Q 0e:Vmlǣ2g 4e[clg]2ەʙ.r/Sh**̡Kcs),E4Е81^5m0_cA`ɒ%4 tž] jR;n#eɖ)#Eŀ=#RU<4C a/?fYx_w9Uf3RcНƸ$=?m3N"ݾ8몎!ɢNη̵t= x1Gx MY*T@ tb/,w`8}90PEG9ݘǣ(NۑHlO1~<ǥfNDAI9hHT-njѺXL"'MFM§8cPV%_3H_*q ΈUhwy 9c &2\E]\L9 N? KpdQ2"eTAW3 ]a& E-Ht.utvc1ABEr]jw޲~S9 Hgܷ!N2b3[Zۈ˾6Uvǩ,@ᙄ ƙ+ bxۤ9M1շendstream endobj 42194 0 obj <>/P 1036 0 R/Type/Annot/A 42195 0 R/Subtype/Link/Rect[93.6001968 663.229004 220.955994 682.908997]/Border[0 0 0]/H/N>> endobj 42195 0 obj <> endobj 42196 0 obj <> endobj 42197 0 obj <> endobj 42198 0 obj <> endobj 42199 0 obj <> endobj 42200 0 obj <> endobj 42201 0 obj <> stream q /X1 Do Q q endstream endobj 42202 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42203 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42204 0 obj <> stream HWkoܶ_2K(8i6.@rJv%_I%r6h!yș3GW_߼#)ǷﮣET$$/D<3HFzI(%% Ga }/EDؗah"}Lj!}}BT4*d4*di>P-CT4 a!}BT4 a!}T>@!}T>Bej}>Bej}F!2DqDOBPj}F}F}>Bj}F!rDPj}F!rDOj9Z(DOj9ZߧQ@QZߧQ@Q(}Z#iT QӨӨZߧQ@Q(}Z Q(}Zi>P@Ti>P@T4 aV }BT4 aV }T+c$> >@!}}/,I῅YjCpBfIQp M d$J9F=b5J=TV&H TX5F^m6n̓l7]=,z& go~ޤIZ2o3VjJf?xø+3&i"b90t0CP5[kjtaTGk0XWjT ƶYUo$Wk6<W2jHJHw_ Wl tvK!<_lzM{TḮ?jEяj̦[Wʙ)d]{ \gRep3{`lOn,\ /d4_w#rc6a<ϗsפsߠ<{BA|dVKpD咠z[X!&~ 95㞀ZTo+xO!NaKLL`a|ExbW MXU_U9 I,V+hf Hrd1ԑS2ã bYѕqoGH\VH h2㛝!WSZ.'&g<%3_|`\nd2уesL[S)sf@܎?IYL1X3r ,o|D)Kʌ-&[W2BK()ӡ(31MQ;Ld~‚>E:/E=HS֟/fcu qiMT0~78\;9k&4?:F;1Np[ڰYt,jX6_*tM ⟛'Wx!3^qAP.'Mi"]qj}0Oa몝-@h`{gu1ӱe5 W7:U¬_@sH_WQ&o~0q7u׹4X+Io8_`e00s&1i;3fy êꨬeY͇_ y Bgà\t=$}n0-t`.;;쏓JLVPPr2! ٶ5S7ڷKTOgmnyс߰RH>RR+^%+ xM(_N꣩k3O{rL@̏%kgjܶݿbT\ޜrUvS'ڢ$ΈDjE* P$'6@ht{Mo{Ka ۣ*UxM\.*dêmwiYFpF'Zj[8+VkL/db }],O4UŮ.¥q&I'b )zZqQb*w NAhWQH)uwT2el!T4du@Fhq}>府sZ) Z$>S5b9UfADBDV99OwL] ÈV0,qDDdٙb/Ҿ>-dbnX|$@hP `GJ+L97*C4?o9Gd^A W\\H _Apג;Z+@R#˭de邳9){>.$#N!B˸3LNUFO5yDUQ*1tU{ED-h3sk'HХ(c~vT߮ӇA# KˠKȹtS54 /Mނp l7kVĀh>2Oe yOo %3Xt;TЖ"W^rޖ2pRmMHw6 & kv:К®0(ᦌrOt]5NT![`[/آ4/VV@kk=r,C00y<Pn@&Pr2rnP,Dv-O*c[@M[8ii3Z͖61WH9$q?bFLGvo`eb}>L&M0%d ͋$ԍs.4rMSI[Y&+z&س޴hAW6ADȟ_Y yauN;EcᲽ:0*wx5ZyF  ґzUֻ;)~/QcP0;Zfj;gKΉH:?0I2;ӑ~waQSI (dJzn BEvՋa7Vhk_/Th -U' (m삒ּMM=)"Y2DO >;ƙ9uIT'1]fcbUyp2®mqetJjMEd&͞dz. ĂZjL<ֿE\ϤiewD[04bAdo3TŒfzek #<ӨJi /@tJ($< ])H]itOzcI-*MQ 2c+rk/i)LfZVN'._OUm‰z.v[hoZO vaty|@D뼏 O"Q/pX2wBqm̴ճݙc Pmó2=ҍv>eWT"v0ےR][n`4'12A`qL~>WG7'_8*8ʏ$ws*٫vvU6&<]j2W<7%c6wGǧz5 |A2fẅF\ړ@ha@: dfu=7_Pu2-KYd% 0bL 57TLu\waLB03-m㞄l=TY] L/2K?KF0.,TUj(؀&,fCn)8։M[ h;\FF^m ׳sZdž]! +3?\ 6:<{\ mLć7x۱kXr(XDWO^%>ba{7P@c ԂaJ)񚩄d*c[,!נwW4p B@[5{SPedtĕ =~V4B;䦹sla{+0sV83+y3xۂX3]D e [M3~x|?~Û?Gendstream endobj 42205 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42206 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42207 0 obj <> stream q /X1 Do Q q endstream endobj 42208 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42209 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42210 0 obj <> stream HWks۸_Ԍ/>t3MnF;;%bV$e}/"+w tp<嗼n۷7W>We璨TИ$TqRy )Hp_I_U.JŊEpWN2\{AYn HF2$QJe2Mi+m,p~ݗ>Q8fzՂ42Wy+&C^`~J/<}&#&A&b[Y2v S.'9aH.fXp.,|BXv|.,zzzzzzzWzWzWQ{cD}O>A'QxSD}O>Cg Qy!u2k]̰|.,ĵ.fXz3,_ qs-G\b\׺׺a!=rĵ.fXzϵq qs-G\b\׺׺a!=rĵ.fXzϵq@\bw1`!u1ջa] Xk]̰kZ3,DZŀ QV u1B{k] Xk]̰kZ3,DZŀ QV u1B{k] $Z3,_ q WbB\b\+׺a!=Jĵ.,ĵ.fXzϵqsD\bB\b\+׺a!=Jĵ.,ĵ.fXzϵqsD\be׺a] Xk]̰|.fXfY&I&U_Kv/#MYa<1, GGQ tކed~nR^/XӀlۦul/>Z//?øK6VHE W:n'*,8.4UJ3N kd:~me-, .\rF3<'\rI3Haq6QKt,A}CaÈ˭nFw=V*ֺYš-ѸpFf F^1gJ$CPh1K1^lכ_b߯zeƶ?T=#vá`D4}6R,Ҍ$;Q:/K]g"\f̦ Tt|c]UL< o?槚;cn:+]ylPޕ-;P2hݱvK}ƭL %oRFLtR$gŌh"#xtN2WBs&1ldC~yϿb)xDtI*/+ 8' =V .siB%Ai {a 4ێ G)UpP*pLx Sѕ WxJP$^RA=׿!TyNc }A XU׺Pz.:;tzvWmi<ȁdu9qrim>KǦA5IrlUpAPOEɑZUW"Q*p#&2oO]R~@_⳶_>tH^yp8אVL]朏e1YsFi~T5lJꆇVϠ߇~&5}2})ap5]~ĺFEݗ.  ik o_g=#08-Sl:kLfURyT65O9@3*tnSphvYՃQu0v^3WHR] $-w*xWikAjvfiYz";wuQnYCؐ;xndUf^%oI4r2dbӑ6=\w!wy06?4bGI2mgK ht `;z7IծUO8$endstream endobj 42211 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42212 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42213 0 obj <> endobj 42214 0 obj <> endobj 42215 0 obj <> endobj 42216 0 obj <> endobj 42217 0 obj <> endobj 42218 0 obj <> endobj 42219 0 obj <> endobj 42220 0 obj <> endobj 42221 0 obj <> endobj 42222 0 obj <> endobj 42223 0 obj <> endobj 42224 0 obj <> endobj 42225 0 obj <> endobj 42226 0 obj <> endobj 42227 0 obj <> stream q /X1 Do Q q endstream endobj 42228 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42229 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42230 0 obj <> stream HWkoV_q7@TP/ A)j] L'J-ɕ=GD򜱻Cx!5s[˷Liūٯ Mw3u̺~6ˬ43k&^o翵/WW|nYϳSg>olMǢvOW7kHvӛwR/WN-XV-K{m\ͪ'YY9[|̭yOJ_;Si.L|UHJeß,*;R9IplIbIXjKzVp{;^W=p>A}T#pG++kkk>IO"scv/1bJYڽĘKXcpZ@k%,^ցJXcpZ@k%,^ցJXcpZ@k%,^ցJXcpZ@k%,^ցJlyZ1K@k%,^b%F,Z1 WcpZAk%F,Z1 WcpZAk%F,Z1 WcpZAk%F,Z1 WcpZAk%hĘKXcv/1fi#hĘܫZ1 W #hĘܫZ1 W #hĘܫZ1 W #hĘܫZ1 W [dVb%F,Z1K{skBEUrO> %2(V,VPZhVTZhEUJiU@RZ5ЪV jFi5@QZ h%VZZc֒_րUZhY倖SZh;{u!KiKY@KށK YJ ^bZ*^bkRZ cRw NC c֒_wʽ_wʽ_dʽ_dʽ_Qʽ_Qʽ_>ʽ_>ʽ_+ʽ_+Ę$r@%r@%Wr@%Wr@%Ƈ|r@%Ƈ|r@%wr@%wr@%sr@%s%1fi-hGT)O"{1Ɠ5L.':b*yd})Tfą̗OwYI4?"v;|>ŕpzmʼnllW|]̶z=_nt7CSG<_ u|JO`̿l)n6Kf[ VCg~/Ua]]nzw^<吼ܧ(]Nԓhing>USMp~T(jrMJG꼄Wv}1Q:zgO[4PIu0~||fWv=~YX}|vz斻a|K=s׾hk*in4zWYv"fWͮ >tFs/g짦p2 hCS}^O7߿lUyZZב³o\߳Do{kAu\ nW/8yiո:xr?Tz.Glbq߿zӉy||n-®m o;fm =zvJkoߥtd4ܸk̑\Zqa1bGZ-zl~=V;L Y-7ٮ~(Cᘇt`HޟyPd@B_m3`]P?J-;'#v7fk޾2F?O:s>^k:<[_Xmv]}O(\s 6wDI̲6},bm_\̗L{rFy>#w9LJSѰi;#W{Nz[Fy[riz=ެx2[beE[4\b F>`aocV,VPZhVTZhEUJiU@RZ5ЪV jFi5@QZ h%VZZc֒,вJ-rJ-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1fi- ^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ#ȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘT#ȽĘ$F,{1Kk"gG:d=sƚefwGyCk5G ٪ΧޕB?OJN=afz^nT9Ѹf8f=(W97wƓ0TtK |LpCz73@fۢv$Dcb]PpЗ#Vpd|u«dm:*+H$EY6ڢ@^DjdR0-! w1=?U..?2Zp*O&ա`ogy,ϣ*ȽwE}i=r؞o@VmjNݠ.w;fdʇ3h*z_^!H ,־AM~"Zd)QWWּ];Aċ;.&q|ve% BXSc'v`mߎqТ^h?h 3K-M]gmq㫌|/#_KF5ec]zdmY< MͳNtbpZb-_/,QcӀ'J3=9u|rApY1K\ea{,^c"Xb!2Z'e}+A Y|۾@otͪHk'.T`1yûwuMŝ;$w;L~a&lCyD{ jEpuD@I|\qxpUHB>i8Vtm.N Yi:rE$}sZ+]m!>\$g`5o훴_90I`Rw^r:6~qG55E#3K3B*6$iTs^HY![S9LO%?E߽q}IHnc*I'zl  XQJR.mGE *\Tب|7MfQjqe%>A` WBc V˾E]Il4q&Acm!ϭbZ_( ,UAIPЍ9sc0yFMX7pE#Qc\&Z?Sendstream endobj 42231 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42232 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42233 0 obj <> endobj 42234 0 obj <> endobj 42235 0 obj <> endobj 42236 0 obj <> endobj 42237 0 obj <> endobj 42238 0 obj <> endobj 42239 0 obj <> endobj 42240 0 obj <> endobj 42241 0 obj <> endobj 42242 0 obj <> endobj 42243 0 obj <> endobj 42244 0 obj <> endobj 42245 0 obj <> endobj 42246 0 obj <> endobj 42247 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42248 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42249 0 obj <> endobj 42250 0 obj <> endobj 42251 0 obj <> endobj 42252 0 obj <> endobj 42253 0 obj <> endobj 42254 0 obj <> endobj 42255 0 obj <> endobj 42256 0 obj <> endobj 42257 0 obj <> endobj 42258 0 obj <> stream q /X1 Do Q q endstream endobj 42259 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42260 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42261 0 obj <> stream Hn7)x9b&   F=38z-6vU5YI寋?Vdz_z)/_t鴓: ㄏV#`78tN]1lW_ËpqMw#>zB]`%HS*{x3ϛ^\=3^-켕._yVǫ1Zɠ~NI=2[g_VwH {-޾WVti*査.{%D,p,St8JkJX2#QOD'F=fLc0űLQ8ZUcq (Ƶ8)F=qa\cbƵ8Z0űL1k Zq-eQO\kXĵq-Ÿ2Ũ'5kq,SzZøve\cq (Ƶ8)2EPkq,SzZ˸2Ũ'kq (Ƶ8)F=qe\cbZƵ8Z2űL1k-Zq-eQO\kXĵq-:Ǹ2EPkq,ST=e1Xĵq-eQO\Pkq,SzZǸ2Ũ'ukq (Ƶ8)F=qc\cb:Ƶ8Z1űL1kZuq-e1Xzw*#NQ'RrB_׻^?by1VzEZ*'nn֫氿Z~Kէ$yBׇ!3.;%N?ni.RDk1o( JWv"pAХ Z:O٤(`)M cWV:kWjtvbn;Sc'_XF<hRxLٍHN1WvxC9o(`M=zmջD#*Kp%bHW"AiTDPU"hC*JP">QpTԈr'SV[\Ƙ S.#^kH)_ִOJ RцQ5Tt c*iJZV*(Txeign6٫orŧ2%9erdK]ڞj]t)kSi.dr#$Rnwk冪N+[nȱ,pYsSIGo/7w cA /ð/vss\~}'ߊXgǬǐ- kpc>C09>%q plf=,{96x,?U/lxZî/^ϒ>><7e\?/WM أ*?^=졕mJ{HB6Vk|l}0`썣00kձ!2%;!O%$ΐ Mơ}Pݬm"UYxp#V<-z?-FHIG=L݆V:7gjCb[(bAlb`M2 ZebCr:8˫b O[#(&t+4FTrXmO[lC-%* ?Ե«"K+h͵J[꼌4Jw}w\CLIʍrj_Ef"^xkQv@9Kh:܄~=O jZmmUo|' £ s\kΥUf7kGuǽGA($HiFTTLy vLH.;ʠl.WJF *7y< LD~8O@;΢VV|a9^'[a^XTd͑FEJGfîoMna%z*ƒoiyU˔lrVvaP~ u!'1&py=^i0܄Gv\NjY#R}K.a`;/aL>6pa(4ƥ)9WN)2k {<}QMϒ#تSpVEO^k=~toendstream endobj 42262 0 obj <>/P 410 0 R/Type/Annot/A 42263 0 R/Subtype/Link/Rect[93.6015015 186.431 184.406998 206.110992]/Border[0 0 0]/H/N>> endobj 42263 0 obj <> endobj 42264 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42265 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42266 0 obj <> stream q /X1 Do Q q endstream endobj 42267 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42268 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42269 0 obj <> stream HWmo6_ 2|(i( n0x@mv00mk%Wt~"be7D_߽_E$zƘgqd EZ|v UOUˡzV˶n꠆*ZfѮ_,68f$," q9,c4 ;kMxX$Np >}X}n^ Rv7m~ذ,ÜVenXjܳ@YGu 8]:f͆\(3(f <Ϭ)B9gh 63,r<#Ԗj&>t.ϳFOvJzioV QVRJK3]a4)t4JYO5ϕ]ot}"x<{1P΢M]EKˣfr M qh `S>1CXUb/ۋrW̮[ݶߜ(QYvU{g) wʞ#?orρKObS8&F4:I߉._Z'Y2{eub Yޖ]QPOrL D)0;V}q2cwUS0~k'Bw !p: `%b8+{cD9W-X҄R/БTi-^I 8K!g!htd"ƨ4uƈ Y*.SV|OfbbХQ]"9 O8j2r>ЦBDchc v4c!n(+s>[j, 7,ulP<`k*N-_Cq(KtZh=endstream endobj 42270 0 obj <>/P 416 0 R/Type/Annot/A 42277 0 R/Subtype/Link/Rect[130.078995 498.917999 443.096985 673.916016]/Border[0 0 0]/H/N>> endobj 42271 0 obj <>/P 416 0 R/Type/Annot/A 42276 0 R/Subtype/Link/Rect[93.5999985 416.627991 199.356003 436.308014]/Border[0 0 0]/H/N>> endobj 42272 0 obj <>/P 416 0 R/Type/Annot/A 42275 0 R/Subtype/Link/Rect[93.5999985 236.628006 254.710999 256.308014]/Border[0 0 0]/H/N>> endobj 42273 0 obj <>/P 416 0 R/Type/Annot/A 42274 0 R/Subtype/Link/Rect[129.600006 200.628006 202.307999 220.307999]/Border[0 0 0]/H/N>> endobj 42274 0 obj <> endobj 42275 0 obj <> endobj 42276 0 obj <> endobj 42277 0 obj <> endobj 42278 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42279 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42280 0 obj <> stream q /X1 Do Q q endstream endobj 42281 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42282 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42283 0 obj <> stream HW]o}G*HVIr @\8hF@`$fjQ.I޴,?$rv8-G9oyݲ/\{/oFp biU.*:domޖߊ7c].w.nכhI1kTdlsbזNJ)+bpy#+EӔu1< ι/ή6_Hpفvkb3)X+gςYt•D?Kgc,ƸF ͣp()Cy%P!yl"ث"ث&뀽&뀽&뀽!؛!؛%ۀ%ۀ%ۀ}BO > ا4`Ӏ}JO> g,`.`f%!Zl;DP-yTE<*dm6@6"UjͣjZlZl(}ZE<`V6@6"UjͣjZlZl(}ZE<`VŶC bG PjͣBQ!{lZl(}ZM<`V6@6"Մjͣj5ZlZl(}ZM<`V6@6"Մjͣj5Zl;DP-yTE<*dm6@6"5jͣj ZlZl(}ZC<`6@6"5jͣj ZlZl(}ZC<`ŶCd bG PjͣBQ!{ǝs 7yכh(& X;3|Hx’ı!@DsVϠLW)8xf|G`TqIN'/F͸ty5NCɲWEB"Ou~Jо>|$6rt{nOG\W;p;6ٔ\%gq')Xi;yby]TE]%lD'n[cк#|;K֫,ߵO(;&)ޗ+C'͸a6El˫P~*Gj}6="A':'̯pdMJ6*>>og2c|2r[<-k1&,9Ii>Xv`:8p…`^JBfŕLp!33QJx 3`H*IR(a+^4t[F{9ܴ\ JqRԧUc}jU? Mmix(Y a };/9CǵGH&. GAO )tn?r_JO\q.?2@S`)8neO{Ye*9!{7}ZV \&S&ؐ:LsԕHq4;eeP&uJK'?ѩN9J FG6~}"x_돿4@x(^?S *'KFttG3Fʁ?cԾlO F{l[6Ri鵙 t,ƞ,?N\:=Tr}:ՙ9ߋ!INpUmQWX/M8zxwDHxIlѸSCYm >VY-ppoY5L7/HS nQÛa&UxT7o8O{*A񉀗?m'G)+z~W./v\ Saν? &|gͥ6s ;_bg$L}sݥP6WVK]{@cfk']jH zIw|zB.4kNTNFݏzc20]R[9wǺ)|4,{Vin1n}7y3<^ [/f\_L&Ӝw#/лO\ڦc ㉍Wq80L^4NBpN7x _`bYbiDL׉h(j 8e(!|`L@J}͗@xR'07 1YDNoEYwuu+n B}c_hCv+&zMWW]endstream endobj 42284 0 obj <>/P 1231 0 R/Type/Annot/A 42285 0 R/Subtype/Link/Rect[129.600006 663.229004 274.872009 682.908997]/Border[0 0 0]/H/N>> endobj 42285 0 obj <> endobj 42286 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42287 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42288 0 obj <> endobj 42289 0 obj <> stream q /X1 Do Q q endstream endobj 42290 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42291 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42292 0 obj <> stream HWYoF~ׯG p܋Ghp4m" VɵņJRR;{)0`ήfw8޼tswo,$Gr$2҄aAQP゠ -Z^tuW@}+Ejq""h`1 4 JD9Z5oXU0UaUXQkJ*pN|uɶP%ZY^^ ,5@9 go:CjC)Ps6(X:i6hcOKu$D6gS,+W9,V<=Oy& 8u9t >7o N2ん}ٙVi'SP숐g)`ȧ@jQ*mq,NTԻRYY&Nkŗ$1Iu2q7$C75caQgumt5F( pO v`ZL Zqƍ3QV՚vhV 1t10K:Vv [FW*\/_f^1ߞos,ЧI.C"ĘO39؉f5͚0LNRO.BA/Qe>^.vldް֑ ] xG* REb یL2@Y^]U()߳Ige3VQN`e{A Ah>Ѱ+6n!|֝-0ܥ.F:ZP 3]H qp\/(*eӕ [>=ͥ"ąv[w-zc{~ىP`δ.:4;+:( `\S]< Mɶv6K/1"\1nW6ie >g DXJ7tvXQ9 WfH(a-$` qyLp&N~"Z#$c\nLt"Ėdaf'Z+ǻsendstream endobj 42293 0 obj <>/P 1082 0 R/Type/Annot/A 42297 0 R/Subtype/Link/Rect[130.078995 539.020996 306.118988 673.916016]/Border[0 0 0]/H/N>> endobj 42294 0 obj <>/P 1082 0 R/Type/Annot/A 42296 0 R/Subtype/Link/Rect[93.5999985 428.627991 199.356003 448.308014]/Border[0 0 0]/H/N>> endobj 42295 0 obj <>/P 1082 0 R/Type/Annot/A 44484 0 R/Subtype/Link/Rect[93.6001968 308.627991 224.591995 328.308014]/Border[0 0 0]/H/N>> endobj 42296 0 obj <> endobj 42297 0 obj <> endobj 42298 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42299 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42300 0 obj <> endobj 42301 0 obj <> endobj 42302 0 obj <> endobj 42303 0 obj <> endobj 42304 0 obj <> stream q /X1 Do Q q endstream endobj 42305 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42306 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42307 0 obj <> stream H[o+\ #΍AIsvb}pC蘉..$̖DI{91ʚokIQ\|rxmJ^ªp:X5_jsfTf>ٴߛ|յfӵSյťUyksmQM%*&*JՋjtL7jِS`.?\}/ǿ)nUyfX͚-"a9`rmt^EU?՛D}>j mC"}]d2{D1&K^ǵ2FF\<12<ג˂V HDz;ށN =HE>A }  KKK++#HEҋ5`h,ZKZrdzKZr@z1L-ҋ`j\`jF.^LS5rbj-Z%Z Skr\ Z kkZ0\#H/ւ"s`jF.kkF.kk:0\#H/ցZr@z1L-ҋu`j\`jF.^LS5rbjZ%Z Sr\ Zk̃dz%ZKdz%Z Sr\ Zkkz0\#H/փZr@z1L-ҋ`j\`jF.^LS5rbj=Z-k鹖\`jF.k风1zNƵʨ&3VO_PEUFm6sżQZmnK:\~ ]n.趙̚#}~=\{Ce)uP8?P K<`y+VXA *BJ*R*J"`E95rIh,#X`YeKނs]z5rq k,{ zϵ8t =XkDžp,z5rIh,{z5ZKށs3w\ D=h,{z5ZKށsV*w\ D=hY,{z5Z$k,Xk-8%zAF `{{Xk-%%zAFK `{{ѺXknH%Y\ED׍Ơ+UOUq K^j5ia,rܨ^C~M;Y?aX]6JyUm1z ^RҦOu}o:[M;o=WXj"}CUCo*9۬Qk6'ˠdysO8}~/6O?}(>M-W{m.THLٯF&Wgr}_Ę2 \{|NVof3QsNOW˛߆ݵ6p<߽{t;On7KRKOzwOO~{^5לx~{5fnid=4ڔn [ڛw}_>x&~pDx>}IX-;Efߢ>kF~]oC5EXS(фb韷y顙?ެ6/5kk]uro)2N:G~շ ]{RM7~UՏQK hZ3ள~yiekO ڲpk]jxR.`#ʾ}865afmwfQ3ݬ7p7ˎ6_8HA]b4ef֖G3$%l'P6q$>fpu[w-rz{=G;VLAZWMV*BNi&M*S׮; CĚUŬj+kҺOғ˵feA>^z80{ 3Qf|Z) 7B+ .*kB^I5ø4ILD  L.|MPg9,,}Zzd(h@Ic#Kɋ$d);L[}tdg=( 8*2fuT0 JZD1$N9zsk7e}۪ԘR@E10b^Gtj,RLXV 8&der+h뾯8Yfֺmu>BHNRJadEbdvFP9 jP#VUm-7LZU%oԝ%yWbxgϛj0AaJQaYHmySpNg^@i-SBqxCM18%H# 6DqSwF; 齩 xQڞj<XRGWy|=mZUy|rhl#*]4~'bIJ~AJ|Vh,R^v/WlfBYpOO?+dEJHbp3!dֺ!+3OHV'4PWlV0ݡrB1=o 1ʋYl6@hD0ۘ`y92ջ⨔mN>| iendstream endobj 42308 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42309 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42310 0 obj <> endobj 42311 0 obj <> stream q /X1 Do Q q endstream endobj 42312 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42313 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42314 0 obj <> stream HWێ8}WQ 8j&۹m3ٴYMw+ĒӓߢH]L':*S,^Q_~"_y<Ǣ`iNcTqeCD*CWZjf]Gx *V3Yhm_M|,!YJ7qD{&ݏ3643թF-<͔R@_#3ﶆXJ㧘d37xG))+̷wBBPaOaO a a aaaa/a/a/9><`/2`/2`/2`_ 싀}/ a ah }uD> >@!}}}BT a"}TK>@!}TK>Bj}>Bj}A!RDPj}A!RDϠj)ZWG Q3ZgP!{gP!{(DϠjZgP@ QZgP@ Q3(}Z Q3(}Z>P-CT>P-CT a!}u> >@!}}}BT a#}T>@!}T>Bj}>Bj}A!rDPj}A!rDϠj9ZWGQ3ZgP!{gP!{*xut&YL>zzl@Pqx]G低Q%Wo fPscCIuvz_#Uی]v{:5]1q 7ٕG;n|:\44dw{OZd"eQLuB)9!x#bRɨJ֏U7p\tP<Yt:@K4mo T}/q-D< kshFd*B'!8- <ͳ$îHvÊ~7iIW5[ϧg>-&v87v&lv{FEä=V4b63Y_VwӀXWMn]s`a`3ģ̭zHZ{v#Be»d1D۲>NCa)ew?;Ip=陚9{zqL IPVaqd۞;k>A7~QPf r"DZK3FOS%_.xZ(Vc*.\2sBўi>¦߆` ږh'3ӂoJFG&Քq;:;x)Mg4왳áLFFN>?b$KI1ۣ'~_QT@_}^(@N΋ `J jC[԰+kk1 f Y0 )e|(T%>:Uc9KrB%j"wr8U-d XkәN]*yM@P%eGhۻNOB.o+)P琑.Xy*2 )y?4MG\Wq =rvvƤÊ]|@LF_pq3Z4(KOy#=o/‡-^}x)St. {^J~'KEa1iB;~l㿌WK6W萃XEqm9@-R`"Jm9}?rHJe;sDgy|cYAKe/4zBV׺(Db'܋s%\[= &|rPH$`/AjOìs`AUwu$pghrT_jsf{W͎*C7anq`3< 893 7jzQ(u?.Rǿgo7axO1YR=.Gdf^kw&w hOߩ5z]eq",,KяF&Hu dM~Hi!F4q2+IsU7Em?͑RѲkuUQ/%ABXKoq>EJo .a3ÛI+\rQpY7f`5Zv"4R;AvB2S^R r] Z9=88ChK:qiJ?3{0HM{)@+{8L~3412fTfk'%r -MmJ.e>3y ?(oF7cݼljL#DH"zҿ?N7ՑQU^6݂N)*Kgykb{AhKM9f&zo# pǶo̕AW>t yN-&@Y.jՀu谼4kznt.0&ko0e9OFy>YӏSFI\8Mtd!5XC3'yO @/{4{%L碯K.FM,)b7ZY aV@R)qy) g[*ky]j dzdw1XcCEǗO_?knVendstream endobj 42315 0 obj <>/P 919 0 R/Type/Annot/A 42316 0 R/Subtype/Link/Rect[93.6003036 479.630005 230.136002 499.30899]/Border[0 0 0]/H/N>> endobj 42316 0 obj <> endobj 42317 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42318 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42319 0 obj <> endobj 42320 0 obj <> endobj 42321 0 obj <> endobj 42322 0 obj <> endobj 42323 0 obj <> endobj 42324 0 obj <> endobj 42325 0 obj <> endobj 42326 0 obj <> endobj 42327 0 obj <> stream q /X1 Do Q q endstream endobj 42328 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42329 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42330 0 obj <> stream HW]o8}ׯ>8@S`i)RlD - Vlz3^%:C\rc?t _ R38,MTl$Vџ8G,ZGu^m){m E1(I8YcgXET[GӖvcKVLYAHc|DPDxlWuS.ŕ4|rws8NUľY]utu"0$vL6Rd&8{r;r<*<Gp| Yt>,!B!,_x$@$@"ԫ@"ԫ@"ԫ@&@&@!ԛ@!ԛ@!ԛ@}BO > ԧ4P@}JO> g,P@}N<+*k} YzZCVǐ1`1dJµ>,B}ZIǀEǐE\+ k%ZZC>p$\c"k} Xk} Yp!PVUB>,µ>P!+Tc"\c"Uk} Ypp!PV1d*µ>,µ>,B}ZEǐE\kZC>p"\cH1d} Xk} YzCVǀEǐE\ k5ZZC>p&\c"Մk} Xk} Yp!PV1`1djµ>,B}ZMV!\c B>P}yt.B|L1q’$g*zo+nQf{!z-WwSv_fY J\">&).cpqK71-9۪r皋r-Na=wXwZ+ 88I;jrVYվBEvmu4U_=32^w/:mضTܞ`ެP>[Jwq#k9niH[O|{qcnvt1vU:{t'ݶpg.]e#hNZf2Δ7E5s=UIl=' 0]aᢠvk;:)oM|lkµ~ {,e_̂ i7մctWs@\A?i d*'丕]S޾V澭f[7f󪩶`}TÍ:mKf8II+989k<y?:q*pHn3%ƑsfѠ\KC68cآ3a%\K!@(Xg"JiD^C8IHR HU7 eىt.0 @I2bggKpכ4KF+y@HIg+$@J"iJ:#b3;săO*IV.Yğ@3^~ ғ ,!d eO%;5&<ՕrkdϮ VmkۦK`}75\?5! 39n^ߩnoۂ 8CH4qn?8"{=\n>6k1-ۺ;z.}?.8vxĂkVtW[l8t8)iv[@eW.Gj`1+f=jC$qqYT.JrBm4TRˁ_pS P%$jw0*" sH>B} XR,NXk0#y;&~]`o9iC\Z,O>)BA$ui6nf>)[c ߇\giN<yȗ~ 5[ x %Pz Xs 7Im Rb3842pIDÔ<A^}X$H,EAoؕn/+ä$p;{9 (G3~"VOljHG4N)ݳÁZ\H4Qp &3^5q@_D)_nQYn A"KeR{0 [N{3ofޘ:XT}ayV&&~gEB0o-X!Ge,#Ӕ*&AɹBV2Ty|"|5A+EftSۢ!R &01%94|dJd$W=H c!S:% b,j#鹣E_O E4rjG+"|<6u /{K>K N'̦ȐOdx1!@h0 E@3`턳j4Iτ`ncՆ<3(3ݺ,ɽ:_YCNu9!Z;)]s%dT5\.L_}:B@hWg+z]}1`Xp0_8p0^PBϑDd~)sߎ X EWq?D KVje_<%c 6$=ƺ [l/`]ԁ AxmpN7'ןN'%RPendstream endobj 42331 0 obj <>/P 1376 0 R/Type/Annot/A 42332 0 R/Subtype/Link/Rect[93.6003036 368.778992 262.188995 388.459015]/Border[0 0 0]/H/N>> endobj 42332 0 obj <> endobj 42333 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42334 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42335 0 obj <> endobj 42336 0 obj <> endobj 42337 0 obj <> endobj 42338 0 obj <> endobj 42339 0 obj <> endobj 42340 0 obj <> endobj 42341 0 obj <> endobj 42342 0 obj <> endobj 42343 0 obj <> stream q /X1 Do Q q endstream endobj 42344 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42345 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42346 0 obj <> stream H{o秸ȶu(_duw[mZFXͬ%[wFds4?^y'3ϟON^1Wo^Glmi &-|9g>Nif%:1䴾KzujEݵͥihә34LGg^E%]$1)i0Et>:/f4g.MF6Gg7U;~~/4X{IX[iMoQB*;/t?E>v櫱9!g9HDb))"*pEe*=cLRcev ])pR#J@z{ޫ*J@>)H)H)HHH9H9H9HH_H_%H_%Hfւ"r`j.^jS+5vRcN/5r@z5Lҫu`jF.0RcHց@z5LVj:0RcHցJ] ZVj:0R[DLإK\`j.^jF.0RcHփ@z5LVjz0RcHփJ] ZVjz0R#Z WSJ] ZVj(tz LإK]:Vj0RcH6J] Vj0R#Z WSJ] VjS+5vjjZ WSJm`j.^jS+5vRcHo:~eeZ. +VPRJ+U 2+Sr+W *PJ*,hإYR`YŲeS,X^jK@.RwR{8 ]z/5vkR,{ TNCdy{KRR`{{AT= X^j|D,{z/5>>KރKzA RRcfI]%5>0}K>Kz@GRR|RR|RRwRRwRRsRRs͒4Kj X)}eLBx^Mt5ӫ Ǚ21E4Y^nyRmxYC|}o͏`}M}QwY|<;3do|1}'".'/߿vv.XٟO:_/yeyo>󹰟,I WAW<]ٛuݚ擯mDJӭE_T^mu? V$q1XNyf,ns3ʼ0k|KۇmpP%ޱlegc`J ~ؙeqaHW3sr5+Xk+oӻ=+FO Ltx-~Zr5=jW ;ӭl|rdvwmع6#hACՂGq6F4*Һ.1U,(v0/4^Ѣو6ʰnoWѣ9gc_߿6w!P=nۏ@v$Cª}S@(]Q=G,؅8$?k>~]w?Ѱݦ&A[D/U-ڑE!sPu}#wY0O8zHGkQ/V:o=MG2ޫ1ٹo:)[^Ua}R)!7&qo =Dq˿;nMȲ~ۿj/5vXb VX)`VX`eVX9`UVX`UVX%`͒4Kj䲀eU,XN`;{ TX^j,{z/5vKށK]z@.RRcfI\Rc`{{ T=X^j,{z/5vKރK]zA.RRc`{KF.{ TX^j,z/5v}K>K]z@.RRc`{ TS{KF.{Kʸ,˰{^_M~ƚUTl8b*qygvw.Ssik:4?/sbD$|2_oW%hziKZgRust 遯jfmzmVWf^uu".\Y네c[c[b.oۃQ}Y.?sfxj+eCς}\)_">3ؓ>I0Ƨˮ}Zvo_@͗zw>Bt]}A |8ljm?2r8SV<.^x"O[$ݡ.mu~aGwF~#C%0W7Rnzp }b>&Ll}F/ -idQ..ny'MSv+YUU.d,öJҕpNUR@#U5m?#m!PVRRt'%4Q6puLi$[!+ IʁKk f.43I,a$Od=5>ui5X=WCXN[2"`ZX! }JnF$IUחL( ebOhxgi\PWծ9Et'62=cDHkD@5 w]X,Ddž\|6'6pot9>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42348 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42349 0 obj <> endobj 42350 0 obj <> endobj 42351 0 obj <> endobj 42352 0 obj <> stream q /X1 Do Q q endstream endobj 42353 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42354 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42355 0 obj <> stream HWko6_3-/=&i)Yt8(XHd;{Hi$N\Qgy/yțg}wXľͻB1_(SƂ% `m b7Ǽ/ͱi˪r2`.x n6/8 D,cɒ(e*PlZh㧈X8FR|VA,c!ȴ|Npx$=!bg94rsw1` B BKBKBKB+B+BkBkBkBDŽScO}BO< >'SSO}JO=>gzϳ0U \bջ׺|.,_p!PVu1d= µ.,µ.,BZAŐE\+׺׺kZCs \b"\b"{k] YzϵpU$\bջ׺|.,_p!PVu1d=Jµ.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] YzϵpU"\bջ׺|.,_p!PVu1d=*µ.,µ.,BZEŐE\׺׺kZCs"\b"\b"{Uk] YzϵpU&\bջ׺|.,_}fYXfm7dm\da8c*?۾ljIڷkʾ~(?P۵}+lc{lbg_F^ R6UUخ7窣f-JW>ɢP'*;OMix|gt7b}qQ=QCYAIs*]:SuH0M'"[mALY.: TuNd2LF޶`ct\릾eحI~/:nۖi^r &iQtT0m ?nag-Bw\q4&Q +ǖ0Gigyz,9S= 8 w0;Ĭvʶ&1`ٌ)ٚ'KRuLa Nh{7 3~Ǣhuk۸Cqe^v`^ y`GhEɺ+5si_dġu!0VXHs+6;ǖ YCWb";8 .C_u ޠlSQ0҅L7'OtfC],wL~{bejo}*a{B1-o ~aM*M 0magnWe+yv5q?ƚ2/ڝDrRNlY;W3 LT St*ؖsyhs,ӱ*|lm3@W<f]])1"9)lX|~.V֌fţUntz*{mK8E،ܼ6Lņ5>8|yQ2GZR*9Cכ]eJ8ܲp9ӶtJe:tJ-8IY*lږlk?! h80`FSXYqmMOXlovsKZwusjMW7݅mg;SXHVa^BN#8a[άv[[ 9)/X-h9~/2χ{.3-{e 6pӽ~-l|·5J)B4<N^j%lTl)wˌ:d33? J2veʔJx4 {~ @|\&v:JFIV ` ؕz6I`f -a;c)@soax:(6^EZvyj\us&6// ׺栈׽P c湫_QG9((* f2,HOF\ж|CkeF$%0s$c(x ^x `D^x \Ȅy><9_11ϖiN7&lpe6W rAPWB%(* RLtPϑS:DB\#t}#w9*I[BL-'Yj7Xl։7@9j5%YxDŽgiμ(i'y O= ʴFp ϡ KI+>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42357 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42358 0 obj <> endobj 42359 0 obj <> endobj 42360 0 obj <> endobj 42361 0 obj <> endobj 42362 0 obj <> endobj 42363 0 obj <> endobj 42364 0 obj <> endobj 42365 0 obj <> stream q /X1 Do Q q endstream endobj 42366 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42367 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42368 0 obj <> stream HWko6_2KݢiƨNP(GɌ4;W^5ŢH:>${./os~ݛ,f?x.wUsLF`i"#-:SYł͡調]shtd*A67dmvA,g98cc\]m>4q#>Lܜ?WBCS~6]{aW2JS1Μm6A S`<~ d$31{ >_㇘mY$3=yCkXz$C?s`ι/ŀ%S/S/ S/ S/ SSS S S SO}BO<)>ԧSSO}F<>S=r´.v ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d= µ.,BZAŀEŐE\+׺kZZCs \b"{k]Hµ.,_p!Wbջ׺k%ZCs$\b"\b"{k] Yzϵpp!PVu1d=Jµ.,µ.,BZIŐE\+ ׺1Pk] YzZCŐw1`u1d=*µ.,BZEŀEŐE\׺kZZCs"\b"{Uk] Xk] Yzϵp!PVuc ׺|.,µ.,_!WGy+fy n7͆g].(aI1x ?~ z%2>7ֶ˦_6W6.JD)i Sq|Z2|gLanolkuLLsU?EA8|s:@xy lSE7%#!|^Wý4QmgN8egθ,<5U=}7 w^[Q8PXP*yNZqWWd^띯T=sIvCGq6ScnۍqiO?],D=3\ `5g[y06ngU:եuwⰮ.l^ڏic3{iؑ]mTjP@Qr"Jey6_u2*j+e."ܫ)8A|X^ F)!&`|?PF:USzw奄7`{a꽔IYnqhH,r zk[_/Nu6/S$-18jaSLtȶ!`c??6Cj,+U_ A~}w4d8!0bNKWc*31 (RUo1|o?9Nk81LXބMCvge\t(:-Vmyi[eUݾK7 H/yp (\zz D21 \&;VdEۯmguuM8W:Sv{c20QءvuP%_*XH"cUfYwco:{SwRLܯVM/_lR? p! puhREy*<}O'K#xkkr(ٻ/0OBߥ ׾2LBMIC&IOLXx@2 .5{_;#Ḽ?~B7+HFLKք,|.8&drǧs58D(2cnϿh87*"r:=l0SWJ W.eTjP4,[sXV|f7oH(h]~m l4qxzыewlq2ώ3Em[G\x╆ig;jkζe*i?c1kՆ1؟^4k ;@/7=7hx\Eה͡dju([BkugfZ{ uZdj\%Ԭ_*v/, ~rKj ~, ;\:U2ojSEM5 i9+ZSnOexZͽs"C9$2 #q^*R m6Wez|h$peSwx_teN!OV%ȍ6TtgpUM ИVWV#krfm)NCUcX{S&W\~mєSzC)JnQe})(\m `aˑz$|PD yNоiuXOil@`ӋL@eC`d1EYV(ԍ#%\VVꢋfKIl@dpo7a;3sNcb(,".<:0mG쎶v/n1zQ\|}Br K[CnЂ`OH&7[FE`i(yOÚDuybb㌬+2D2G!PT,h)WLthQ5.32o) 2z^RV = )-tg#ը~k#f&˥=1}2rY=MDsr f&zT"zMkKL3s~5Bv.zrWu2_`)oHq&#L47A"Mwzwt8..FևOwπX/2 Yxši;sʞMeg#ۻ"=HHiK]u=|x>v(߮|EPѼ4 ¼D:"oyTE?/j]s@+`õ@T^qSE q3:yQMbrt`4 %??pޜW@#sm< Di[d*RTc(6Ϲ ݿ<%2"f Y*S҇(@N-#<y4vP)*3 2x#9shGrhB- n l*yYN%.KIh{rzs N%X^ E_˹3 B(G7L%ro1LaqM/f]#<;Lc+8J9%X{gyvwotpl\94z{ljV"r$ӺTsz#3+"],i*6֫]SUd.$(5jqB]Wmuzendstream endobj 42369 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42370 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42371 0 obj <> endobj 42372 0 obj <> endobj 42373 0 obj <> endobj 42374 0 obj <> endobj 42375 0 obj <> endobj 42376 0 obj <> endobj 42377 0 obj <> endobj 42378 0 obj <> endobj 42379 0 obj <> endobj 42380 0 obj <> endobj 42381 0 obj <> endobj 42382 0 obj <> endobj 42383 0 obj <> endobj 42384 0 obj <> stream q /X1 Do Q q endstream endobj 42385 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42386 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42387 0 obj <> stream Ho_bT847 ,85dffI+WdcgsxyG_&y)?~s3!OL}^:S>άf"+UfMkɺmvYljffoϜ^7acϝ-Rd1MUԦgg].ֹ~je+if{ ./ssLqxuyL/bh~lgbQ(nHȨɊnL9-63wHw\,2wHEͿY,KQz$᱅W&K/'5rY]BcW.Z^jr SHTz{ރ^ WHT>Q }T#HU/U/U T T TUU'>jf-Z3VjF.0RcN/5vR#Z WSJ] ZVjS+5vjjZ WSJ\`j.^MS+5vjjZ Lҫu`j.^MS+yJ]:Vj.^jS+5vjj=Z WSJ\`j.^MS+5vjj=Z Lҫ`j.^MS+5r@z5Lҫ`j6ZKJ]:إK\`j.^MmS+5vjjZ Lҫ `j.^MmS+5r@z5Lҫ `jF.0RcH6@z5LYS+5vR#ZK@zsghC(TtVÞm"r%RXA`Ŋ+VTJ*T *ŪRjŪVXI`%rfI]%5ެU, XV`9rz@vYw)X^j۰}bK]z@vw)X^j[}dy{KRR`{{FT=x#X^jE,{z/5ޢo>KރK7zA RRmfI]%50}oK>Kz@[RR|RR|RRwRRwRRsRRs͒4Kj X>)` yk,uCoyiʘr=0v<.9aП'q1v':|v|rUMO!y{N_yܚvOKf uBpHGn5=~K]z@.RRc`{ TX^j,z/5v}4Kj4+1uOzYd=ƚ272mY|+_nvulf]ȝ>uM m fi˖JGhf|^K^>nf53_߲l6"m@F/&=nFendstream endobj 42388 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42389 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42390 0 obj <> endobj 42391 0 obj <> endobj 42392 0 obj <> endobj 42393 0 obj <> endobj 42394 0 obj <> endobj 42395 0 obj <> endobj 42396 0 obj <> endobj 42397 0 obj <> endobj 42398 0 obj <> endobj 42399 0 obj <> endobj 42400 0 obj <> endobj 42401 0 obj <> stream H\n0 yCi%V?ZF@xٸ!A~Q>۟q<u:{Q׍w, ^Vvk۪WaĶuLGt8aOϮBEoahU?}煎ηcaM^jQGsزttތӒbS:+1c;C_Y bzrz|} *KXǴG#If̴' Zx͜ {=q*R>e}0aC R Xփ ̒<[-Nx\;p ;pFowýf؛of؛PCH?foo!6ϛ'x|ƾ5E~եendstream endobj 42402 0 obj <> stream HWml[W~ϵ}Ďk__ڎ{mǎIti~eVڴ,]ӏe kYnIheT !U&鏭k;-jJ^ h'!~?}CSd#'pM^7I)̓SC,ж'zK88~&Ψ0GA2HY> "^j%6:PE(@Q:P\ E3[Al[AlV[Al^`b'f43aGT0ډkEU Ad1m&KU$,s\N~%eQ;t vcR_Շ-J*g_dì>ZF,mXnl"ͻ=Z&|qjWڽC kTW$Li\N1յ$; lE3RbrGUju C\*޺)| \=VL;Ʀt````0$/rLъrpw%sZ2EM@ZFg*-@#녭mM¸hdu87ۍ4 ;3'4hzsk% 0Q! \?|hS*qztЩ 7Wzigz%Iƒ-Ƕ蟋G<Ц8>;gWq=duYDp-Qt݁Rwt49 pq&ux.9oIy]he'ؗGv=WSkthfkUM+a_;v2S| zU,u2ITXO7w bGg\M+9Ȗ1?/Xy2PMp[ap1 0PpT0 p IZl48d󔼿=i"|\&<\bd]/%֦6-?RRǶo9p=:@O*$ )ƒ`Wܮ_X]|ܛNkQ5|`GDF@0 L248}BB{nym)F*V Uo U$ > 7}wpܳT8ZLe/ e/~ˀ_69BFy3iwW-[ :._hїޑM\{vJ&fZ}| mUFVo~x~gƞ_b'8nIݺM(6mvEQ"H<BڧJ<.m%bEMzaxקٯ*ѝrRnhE)r%U3Я'8kEߢh#C8->?7ۄk D@|M,jB5|M%*P{^`@`kX;vk9`P;0DmCԆ!ja0a0uq!?~6[>ޙ|I@+~+tApc9td mlȶlȶlȶlb6y[- u$j:iGu|!_G"_GQ.p,EAZW[Zc4$\[3GзnY%ꣳۃo/^컫답b'ߔZYiW+bW_\:~~j؅59ΤLN6\!lÛe} ˥bM${,/OW9=bX'0t`3[~ L p?e2*PT*PT UE(@Q({k&HAYɦ0&l]xW]b'K5iM/y/]Ws8B(qI^:rsm|hp˦eݍzdJ̧4~upuJiv;:!%eHFL *@ WKx,O* `"*b"*b—&:/:Rx>G|t#9@S<$MIQ@ETT@ETT@EH(OR4P¾|g֊|:U)ew-s96'J^Ϭc{d [llqulllyڒ[IK-_RgzR,tӹgMKf.6ܢܨʋ%+Rf2W4 3StHňL-yј7Y:-C\ lm1ieus,=I^Fx:⦖rJNJ_Kw>-u6b^QqIWrCqmwV lZbSh{+<qƬFsXGx8p6 l lB:;j')]>-Bq 5Tb_qRdgӇA>Y# , De dig3Ѯ~?Ko, G}%n=i'6Yػfү"< d]>b6!oAģoV"ęq+8c;c;c;c;xilbW$"3ׯ`el9Mf,I40kTLXfN9 ,y66a3\?y਋+{>dV w!i$@4|&B@]AΈKkuԶj˴Z[9haq:\jq,)E͟L0i2{ow߾} c<>I10(D&`"&q`*+0300o2\YXJT5XZԡ˰/|+ЀX?_o+*B YÆUqnrvszs|]/ yHr @7A%P Nzؠ7z\ZiQzGz R_AJy5ޥD[yVܗvġoPyTZF86i|[K7QNgsN{?(u: έ/m5f-ǝ;r9n+u Zv Su2i'wl蘐'2_BJ#?+#?E`,$Pai$ƒfPLRRQX=TcC?S.!{>N"_\Hg??Iޚ;hMY[CZB=93˶5<ȃȵFQJs]kk}V~*edߪEm}2>M_5f9~lkd&N8lpnWaBo[nޠ8H\>J}z}A[>'c[gm} Mg3d; :yϜCzf{7p;ʸԱoQ1趔msZۘ}WqҏI;y:F0yVEJt^hߘ`|0GZٚ}{>7ιQݗ2WiOID_ 9&}E7<:Gn:NYfɯgDSLUsg$J,"t>IYtÈ鳲:0UDSM|IGZLa^:7CñT uG211ZiFSo)krwȴc=O磾.zuk\2o 1"xEC]=D.Eϐ#w k[.Fȇ9|/_ 㳗DBD QAv6v6V^Vv>DIZ3w.1} 3Yfog}C·2&qz iɚOF;9x5=BWY۵u |ggb眇9fb15P_Mp9-pF𯾦J=goT_qٹu'{C롣e%Ƿu |b|+il3(9(YPxK#Gvӝiycc1iX9Sp!?Aonch]a9OjEA޸yOpp|7r><˜xvD,Ko"_1w M Q61O,|}kDBLym ,TD~(endstream endobj 42403 0 obj <> endobj 42404 0 obj <> endobj 42405 0 obj <> endobj 42406 0 obj <> endobj 42407 0 obj <> endobj 42408 0 obj <> endobj 42409 0 obj <> stream q /X1 Do Q q endstream endobj 42410 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42411 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42412 0 obj <> stream HWmo8_2(^^ ]14Eڴֲ|loFd)T!<}t짟n~{ ?z:oUs t&D41b 8+Yp]ݼwuSVkk[mj,g8[n,g98c*&a\O ¦wRFǰ^ekuŧ>W~ٚL"a8gav1 rmݹ6@q4rswm{{᱗{鱗{鱗{W{W{{{{O>!'`zS}O >#g`ys} f9!ZVPkC޵PkC޵!gEֵ!`Vum"{j]պ6D= B Q{OPkZ׆(ZAֵ!`Vum"TET+պ6D= B $Z׆(kZ׆(kC޵PkCS$TET+ պ6@um"{j]j%Z(B Q{OPkCS$TEֵ!`Vum"{j][(B Q>{(B Q>{׆(kZ׆(ZEֵ!`Vum"TETպ6D=*B Pj]jZ׆(ZEֵPkCS"TETպ*Єj]| Pj]| Q><\͆*x nd-7A֛3)Q’Ul)WnX~ HfBlr3|Nak*;;,Y֦Ƕ31Tf]Y[k|("/iŧ)4c+5_ݾwڞĤH5uX}JelR\ڬ-fձi< !rkhYWvt_nM;#\ʓ0 MDEg3~f׍Dcw86Yx*'i>+td^au\Xob/8 ΫNQ8=4¯$ &=ܗ#HX{)2+[gI!N"8tt@uŹ@0{4# o0R$aavܯEԫd0$rr V]-j?VŸ5'NixrY45;Np82'x \g#SFCOs)<9XP }bWaW/Vŷ0 v~; LIB # '&,Q5EY'|]6u3FV0WYr^pP'9[Wl!m01yݚKYfS0$-x GHְU}ܭ]ukmTT@&ݔu7Ƕi >4%lX_xlۘ{1T zNncΊ崒HaqYM ÅPɕ="Mۚw9_;Dt;hu{)R 7 2+s7~-Q9+(51!x亿7z3Oy ~{j؎^6=l0B]l9qpOIdDҘB?۸:M]b7 gAn"0Q etF@nsnO]F o35dAMnY-dr8nl'tѷaWI 䩅SEF]ovFA@R)nZ,'TBݡJ)*]/ ٻ͡_?&v_t'}`QJ!&ϥ"2_aHJH#XPAFiŋu4UvQLCE X7cveJAD`li9r7'o~endstream endobj 42413 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42414 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42415 0 obj <> endobj 42416 0 obj <> endobj 42417 0 obj <> stream q /X1 Do Q q endstream endobj 42418 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42419 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42420 0 obj <> stream H|WmoF_ ]84yqIc<(0\ZK1Is﷏d󌃾3ݣӋW}Փ'^^su`WsrIΒ9'HN`[At,%aŽk-s, po{V-po{;N=p{{ KKK++>A"1#tϱ{KXdrXh{ZZ˱{ZZ1bcZ1bcEk h-" cEk h-Lj܋Z- Z1bI,ZK{Eh-Lj܋ZZ ,Z #p/ZkAk9Y#p/ZkAk9F,^ւr,@k9F,^ւrXh"q#tϱ{KXdrXh{ZZ˱{ZZ1bcZ1bcEkh-" cEkh-Lj܋:Z-Z1bI,ZK{U E U[l.N` -r@ -@ hBZ*V)JU hUBZ @+2@K -2@Kހsl=LjD =džk>KhsX@Kހsl`=LjD =dž>kY{Kjq;@Kނs;@Kނs.2@Kނs.2@Kނs(@Kނs(@Kނs.@Kނs.@Kނs@KނsRcĒZ w  w w w C>w C>w ;w ;w 9w  D=}BNѯENZ+Y6OY <^$R[yuȸQu./ 54puf?BN@;rȷ?/>3a\K||vUDonMŢ9{ߑL<\ѿwo^z^<Y? f7gp͌FSu=՛ӓong"#j:fcO/juQU붬_fq.p)z&Wfzޏ~^#n f<8=JO.G]6]W[77bu5ILoͲ?[iox,N/k|~>\VNnhSUEm7/@k?AB}(~hGa Za}g/ߜroxs7dBrK6= #Im,xyګun7.vm%c1sny<m~iR3{<:qr6#6WI ݭ"alG}|O{X^Uvj\au۶7r5ofZwTy>qdR]gn~ۯA0u×;3̴=`W.ͳ|/sfvvټ[c}oR^mgzMʹ)Ez٩cSwSWƁT@a\u1:gl*ݣ[^R m20N͟(̘N6vN#pL+&_Q5=9l9 J>Vj,.mogqzgh`(nftc=өb7B @R}53)J8bT AaPA8C:IyR(}Nm^ fFDDqhFpFݟwE'Ҕ!2_n  4jڏT_W[.O D76A@63vV*"n{k\g,JXmmы'-$"0ڙ6R(mZ\nx{ Mp41‰ Eg0&5/ Rǩ\M rb2v6sjRrAB :@Yr}eTȨ>Sfἄ楉 _ȄV@dV2%e7en&ёj yZk=&,6jq`W81FEqRp_Ղ] ܿvPI g@r0[2{ny)\lB0Pm,A'`Og}ɮ#-z(3r'o7_3ovi`?*v>1 2I ,ɼ0htKcw,c )N3:8ӭyRWcEIcp92$l"]5Ft 3 t!nRy·V%h] Y_-!ܕEd̄d偳#[c{2m8i>xw-2%BwP=WxQR 22 n[KFgT&F\F񪍹Fr!K#|>~A+,c:ol},ͼ7D{Q$E4NUZ p+R+̬cCQpEQlɈͩ[ X$8St!gD̫6+c@4>Y_~ \[endstream endobj 42421 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42422 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42423 0 obj <> endobj 42424 0 obj <> endobj 42425 0 obj <> endobj 42426 0 obj <> endobj 42427 0 obj <> stream q /X1 Do Q q endstream endobj 42428 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42429 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42430 0 obj <> stream HWnH}Wt_yd l'-3I-I9|VQjR8˧ӗ?c/_^x-իo EITIG*45y_V \'d]񘿩7uSyK7"^lqP0&yep;ɗ]QWl~% Pο,~0؛.VYs7iQjf ǟ/\1#xhtEPoLp ?/X( ~A6M<C_΍Je]$K$K"+"+"+&k&k!!!}D<>cc}L= >'cS}J<+Ӻ2k|n Pk|n Q>{7(µn Q{ϵpCs$\E֍!`Vuc"{k׺1D=Jµn Q{ϵpZ7(ZI֍!`Vuce׺1D׺1D|n PkkZ7(ZE֍pCs"\E\׺1@uc"{UkkZ7(µn Q{ϵpCs"\@ucٻ1@ucٻ1D׺1D=jµn Q{ϵpZ7(ZM֍!`Vuc"\E\ ׺1D=jµn Pkk5Z7(ZM֍!\wc"\wc"<=bnQFij ^/[1A҇&$,2)[f:-1aia|;7oJ>wQȖ/߇Lit9&~aWMɚ=$ #4Fg*!?\PLтQ sxlC."{*?  ovۮ+Ľ[<=~t!r3<:g L*S}mt+d: yŒ YE…M}6W[.srP9Xa3cfLAp[yv/{"?OW2$ #xdg*"PY Wۺ:D̫BLbn`Ja3/V;-B3 .k5Kh5 6A/ &mϗ%'C]2 `RdzՏyNJ1"+#/0 L-}B<cl_-Xߕ͋ɻ*kX͛VP`SEw~OCS=+Aw\%C[ԉnhJCG)zT3TEGR'zn N|]7Ew|V9EUi/ kIkxhyr}' ~W-#*lOv6ヨ6bp0SEn\VWZd뺫'9匥 ls@-mP-y5ZXO !eYak/Kmʚ´M\X4T=u\y;pj{smd=IQ]]_й^.0"5}€XU{.?i:LNFilef^,ȡ% 穅˪s i*ZiF)s)8;p:vM|zꩳv0O)D8OޞL<=h=zOts<~kӞz`8ST6JݑX2bStO|M 8הԋ5EbzfwA][_t[BV?y[Pi4X|y+x-҄c+QW_O^4Z!O0 ֟6+N.Dѳ"^C|}f^/"4' " .nwO^bW~ -q?iwmt'|zSz^<'פo^#X\2eݢM'-`sY'?XN#&P\cDQ<`(NJGcyldJ4Mued^MmS K59s!\~ȸgiV{ahcoz?pCgBa9e0o3tQiF<]+>+~i_ੳrgs~y_vSce2yA#,pS*8Ɇ9*5,}kጷn nz6#n2LgtndJ)ZLlJL/(a%GWEsS U KunSW/#u./_)@1 k4#㶉Hin܆>jgUڝrhw:m(k-ǻ} ($" |ǵ8BdbޭĂ(( PDyԴLZhl1ɁNw'*gJC(R̘rL#McDSk{&{~0zun׷2WnP|6l*V5S*jy}P[3(^V0W7ʏǘY[ӦŨMŌ3쮇@ivhQ?2קW]rC_Xo\Lޗ㞤)h)a8RWg8G½aҭv%}SkZ&BBEcY|F- gLDR+&,Xv5;,!@JY/,Qjvq4A`>mݴd 5l5]y}e8>>>h"М NdL=",JWsJ,PKʱiiD(5by{qN]H-OWu9~{ +22Xqe&4K9_2X $J{[~X=oF&H iw z ;}~ǹ^,=[]jeQ96$q9,̏SRfA%VհR:&L$ͪ$ڠ[cIM}+;oE01e}rBG`c.ʮ@EӯJOJe>G"{q\n*Xl'&LSכ iV̇z>+ͪuM/JtII~"|,FKHT>EJJ($p/X-_n >^^|zez@0xBgj.!$v֭^ʫ6JW$tEydcb蛿"GIP8|De3%YH̿)vK(Uҽl(8$u8:l9V<}cTQz\EaO_)(T(^FĀ` hb3A"kjd{Q` P]׀TƘ,ꐾm0л~'H$(v1= gТԽq3 Rw]9ŀJ<SkC ?SIlQ'v@me@h@[կ40f_͊褠6k<Ĺڟ?if﹎WWЖCٽ^Z&Ty-nӧi2WEj+*~syu,Xd=C`b5Kܢ*K u(p-g2蚚K5]bVD$=jIDIcz4p펧oX=VKaߗPv"]w[rq>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42432 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42433 0 obj <> endobj 42434 0 obj <> endobj 42435 0 obj <> endobj 42436 0 obj <> endobj 42437 0 obj <> endobj 42438 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42439 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42440 0 obj <> endobj 42441 0 obj <> stream q /X1 Do Q q endstream endobj 42442 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42443 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42444 0 obj <> stream HWێ8}WQE7`0If'H.6j%$U2Y,JCSUzw3LO?=q_FLY\y%҂e!Ҝǃ(F,n?Lw?C{Tn⡍}1z싈YE5,u\ÜqU='fj.^=DXHyy^E^E^E^e^e>'`s}/E `_K}/ e"W`_k} f!Zw8Z߇Z߇CTPC>P-'TET >@}"j}j9Z(BQ@PC>P-'TE!`}"j}1j}BPj}BQ!{(BQ@PC>P TE!`V}"j}>D BQ@PZ߇(}ZA!`V}H} >@} >D}>DJBQ@PZ߇(}ZI!`V}"TET+ >DJBPj}j%Z߇(}ZIPCTPCT!*d_u]8 ssެ5"bw˴qQ='懲WLd75/[}^ܟ TefK6~TY MX)fQx* V^?(_Վw) Y%ԱyqX.FUvJm$Yՠce`yp\1K3Vy2O^n1/lNjyl1w54{3^9K b&x 'wcZ&8= .Pez v ׅRzN.ϰL9M3)t?궧&wWk^&/A]#&FQ;[ rRC< Tԁڦ^bAH }2r9]r/|zU&P`8>> O:|!̬/8s[9wS{tHmVF?(IО&ÊUF;_ Wai8< (?A603ݹ]#r/2VL$rRd4~ڻw#&bBK)l" td\`н!Ĝn>[u qeN0QmniWڣتtdƍ7f #dۚk\l9sN+LIU&H%D`z|0o 1js]v2vw;H8wRr3SH>`W\Vf^Vq]BmHe2Zs<;̵fcz9ȫ4zerP2E |zKX7t㱝ݨ6ny/0NXzuC !E e˫4FXKhܐq-,ʰX.ʲH~3Ih,vq?L9fxypUl hp[:]ne_4-~p\No2z,#Yad4y@ґHYjV{1σ7oa{9:/S&Kka.+Ve5;ŘM`? .MQn^þN*%p>Ȫҙȫ9저9"թuf {XZs[!P}*7U&V [~@pB8UYM-SzaYVH[qGЇB%ޔ|FTQW% >$ʣ팍A-דdz.)myFnbZMH| oދߧH);8=EY,vCcHbxwϬ0zXav؟v>ڜVszopu-[o4Ds43u7aB=]H7D5mÍCav/ŷN5 _0BY|tpsRԨs j+3.V>`,@}ݽ.T[y}*,Gd2TP5[(u5[J5 >Z(qG E}/z(BP+BQ BQ BP+BQ{>g5VV >gU[XeZYeZXeZXeZYe29ɶ,e$RPG+8SU _f?\ '<^J#R;%v,z|Tt6+HdhѶVfs@֟ F" dNsTWbPe Qh*Z(JqZ}kђ F*Pb4Gu(f2 EYQŌUf(ŽY]l->g5VV%Uf(.+i QXel!BQ{Z}j2X}ڪDxH|2yh XP6p#3C?iw-@'Q>ﶺS8]"[_jbaRuLD]Mgߤ6&5ҊSTw̢}i-t;6i,N V|̝yJ!/[ٲYbZՌߠEN]#FawOXJuuyjA50}<<<9ow~ϓP[Dgq2c>8a]M]){׏e8Ѩ.l{z[ ^;Oa\C:XLFm4|KMLB܅3IW6*'B =C,.1D48şaژRŰALB_z*]CiiϨ?-㜼~zwɅ0&a|7?z:Sm[Womر gmWxYr FՊ2?8q?~$6ֺgM%?X\?K~(Ypjk<{ؔZA”C[l᲋rDч'22]5xsq??sZ8'_9Ї/~]-k+endstream endobj 42445 0 obj <>/P 1228 0 R/Type/Annot/A 42448 0 R/Subtype/Link/Rect[93.5999985 536.028992 195.492004 555.708984]/Border[0 0 0]/H/N>> endobj 42446 0 obj <>/P 1228 0 R/Type/Annot/A 42447 0 R/Subtype/Link/Rect[129.600006 426.82901 256.079987 446.509003]/Border[0 0 0]/H/N>> endobj 42447 0 obj <> endobj 42448 0 obj <> endobj 42449 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42450 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42451 0 obj <> endobj 42452 0 obj <> endobj 42453 0 obj <> endobj 42454 0 obj <> endobj 42455 0 obj <> endobj 42456 0 obj <> endobj 42457 0 obj <> stream q /X1 Do Q q endstream endobj 42458 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42459 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42460 0 obj <> stream HWnH|W4/rȶ6 b Yf ,+˙>9aSSwZ+_LhSinTEV3z\>/Wy^ͦj5K?\TyҪ8$SAT<lPgzFk!;„=7^Ϊh,[i\>)`|:t#[TUzCԨߕԧ#|ԓJSRVy𜌓9'HN`YA8E֒0by޵9Y7½po{+[ ½p{'{ ½ppp_p_p_p_p_p ^tVrlZKXdrX=Lj%s,@k9F,^րrXhXdrXh{ZZ˱{ZZ1bcZ1bcEk h-{Eh-Lj%sX=" cEk-h-Lj܋ZZEh-Lj܋ZZ ,Z #p/ZkAk9Y#p/ZkAk9F,^ւrl8ZKXdrX=Lj%s,@k9F,^ցrXhXdrXh{ZZ˱{ZZ1bcZ1bcEkh-{Eh-Lj%sX] {ǿ~0}~='#YvhZjߩEK=]OjX׫YիrޝU?!WEcH7t;wCj5^MֳB-k\;hǖi15:W0w{W?g:>y\cHmcrσQYZMzr?-7ƌ;njt8d$3OR;V.8$zZ&i-Wlto ΂ 3]Jogx\Ƿ?¦ec<.s+sk5G;yUuPbZ?<ܦ1Nxf 6O73 GYқ=g78@|eeuّKmKle$3nap{f/z&MV4Ȅ6ihbbxp7gE\#6hTfRӎYь]` :( QqU>ͶVfiN Y],UdngtWY2.n;)G荢$0b?im'h*N(zw=VĞ_f!߬Yg}lЯA2FGy;MYi3ItNNxiMl0݆ҡ^ktx@;f sع{@m]j5'c9:wm}nT!$׈8Kδ/0.C@1Oh3Ws贼Rb ʽ#!gs)L FQW ͺmS) wm\H\Jv7B3N8 {|.@4eG8bHT$տU4wDDy!1p3̑E A`ZrW۰ۘ~&'Q`EĿSSj9:V(atJ^]~iHUb ^Ƴ׻Ʊ/T^QHhy fUX8T{pO (P$}X`@hK/;!yχV񊯵 XClo Đ'C[7OʏU,X) x1]A{e]*>n_8 }i8DPh`SXZ`S71ˋb tdG}6]A[jV% +R=\0^dO4(vR뭤295A X@,68Yqrs5+שendstream endobj 42461 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42462 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42463 0 obj <> endobj 42464 0 obj <> endobj 42465 0 obj <> endobj 42466 0 obj <> endobj 42467 0 obj <> endobj 42468 0 obj <> endobj 42469 0 obj <> endobj 42470 0 obj <> stream q /X1 Do Q q endstream endobj 42471 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42472 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42473 0 obj <> stream HWێF}Wӂ22\ Ď؀Ś@f #fH,IYk,߷XUuxtU۫~/*V/_u@H FQYjĨC@Z򻪯ͮiz:Q] K(mPCbU4U!\W嗁fGUŅQZI"}Qz/=nv_Z]$^X}*ߝ2eyb~{Nt7e$v='}"ODp0>eS}gs 3>}.ϙBp_0լbUK1dqPCwO1dqPCUbܳ5BR XBR Y{VFZ!KpϪUK1` UK1d Yj),=Z#T-ŀ%T-Ő%gUkjPVZ!{!jPCUbbܳBR Y{VVZKZ!KpϪ UK1d YZj),j),=Z+T-Ő%gUk>pBR Y=ŀ%T-ŐS Y=ŀ%T-Ő%gU넪jPPCUbܳuBR XBR Y{VNZ!KpϪ UK1` UK1d Y:j),=Z'T-A"T-ŐS XBR Y=ŐQQN,ҪHPQ,*A7 _USvVWqxb|w = Ay^75\(ԋk.A㿋J-|Yo U_v^բCf\&>`|?~3)@o^M^&8b:mt^w0j-̪WM[ׇj@Tu=L8 R„&)?(Q[U#\6="y(oK~ń!߄͡`huAnN~oU?5غp;7 pԳ^(:{\^Ɂ& Mf;͏b9fFvV:f84[>ϫ~jZCߏ-v]A/x۞r1i[I'c@a[<9!H$^b>T6$ fjLֱ' UNշn~{ɐeJ?w|#ͶSB精VlmM _Tӄ\yFppX|qwss޳z\s3mMBtkV;v~۫@ѳjqe]tzMUwÔ:Vs{O7`'d84q}w1wwOq,MF'p= so~"bHW9~ǡU5ӵo+{:G@lg&g߰Y VmBwRITQe*C2,og9#m`'~j=[<3MpCܐ>Xh*2"%%wfo˴YY>r`4o =iF|S90:vN_8pc-ˀ\6EFiQ 'YY&7E{- [iا_2ovѰô\}"[W`/{܄Mo9Fs ;_wwCluU_zW6m";?aݜQ'1Qepܪ{ߏ69?Uӛ8 D>E؎E K) mrIIڢJVc'13{)K*w}TSSkKCJzVp5Dd[dq2F`A6\I&KAq{^Úhڰ24ZD\1h4j@@{ {3\HG M)|pq y'#;0vVc[`D48QR[+^܅9ghU[pƑ4L8NŒyb,"oI0-`^j3Ӌrs1?߳V>~m4 x8L7w{ hN˽ WefhoUh}V#}}K%%+uG:0Bd_xLUbv$ax\Fr]Lx>vLJ/|:yCǎ͟tٞtճ`.5{#GJuUFoj#4hAlgW_Zbob0xRT7~R,_底#> PIꙜU"5tV*vZ- XŵՅb6dtUZn'q A\p'0 l a^T%5Q@ѠM0>|=d`P;ycP J;fB)>u]FIY]&d%7  ? Aendstream endobj 42474 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42475 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42476 0 obj <> endobj 42477 0 obj <> stream q /X1 Do Q q endstream endobj 42478 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42479 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42480 0 obj <> stream HWێ|WtB _{I 2 YӖȉ Ӈgsj6 úfg?_ߩT|ɿ)U|^eܪ"w:jW'T&1QfuhկMka׬ծI?fEe>ZeTu *U5UUmt_,?ToⲊryΎ0pF]Wk4׹f"z\=}97,?wJ҈c|_o8mQTeoRIrmz&e16ۤ8qLcĒXd#Y #VXܻ1<"Vp{;N=p τ τ τυυ///>A/R/{YJ˱mbAk9F,cZ1bI#tϱ{Z Z1bcZ1bcEk-h-" cEk-h-Lj܋ZZEh-Lj܋ZZ &cĒ9Y#t1bI,Z u#p/Z@k9Y#p/Z@k9F,^ցr,@k9F,^ցrXhXdrXh{ZZ˱mAk9F,cZ1bI#tϱ{ZZ1bcZ1bcEk=h-" cEk=h-Lj܋zZEh-Lj܋zZ &h-Lj%s,@k9F,cQŁt!t'0Dz*Khy兖Z^he@+ZʄVr\h@Z*VZAhV JUkTjqXRc4-# 2B-+, {֦,r1b-{ rϱ1lZ # {,r1b-{ rϱiZcĒZqh;{ѸD=hZ"c4-{r1QȽ(@Kށs%r@9Fw h;{X!8F,1Ƚ @KރsF%rA9F |%rA9F@Kރs߁Ƚ=-{r1z0Z"c`.8F,1zZ"}˲*>ɫ*YTUFUI9T|׹ʳRQ6iכZ=Yy}?_WA~ Ti=vGvմٷZ5-mUV~?m>4/7|EHuC9Vْꅺv_r4NWXTGSn1nrV=YΟѪZ+v,׺MHy9lUwOusROsƫgϹNδ:ghsU/9LSxry$'gelfvA]ﺭ뮽ύ6Bx pي}ʇBۑnLXlWztx:y{մAjue"יt~I~޻`WfW6KߴPoէ[߉<~'N]{u?c-F^]xs1~V2m}qUÖ͆v綿( w{ .bC9rN#avxt:2owx;uJ 5jl\mf9񧡺jwuM_.8_%}rϟ~GxAfc*bR Hg{י/ot7#a6Y=]匾tiLn]t:(ʏۉQ1~윳&_w-4 VXM5FQv1<ԇ*I{| 1gfsznzJZhy偖ZʄV2\h@+Z*V VZhURh@Z6Z#XdeZFhYeZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cĒZ,{ h;{ h;{ h;{ h;{ h;{ h;{ h;{ h;{ h{{Kjq,@9F,%rA9F,%rA9F,%rA9F,%rA9F,%rA9F,%rA9F,%rA9F,%rA9F,%rsXRcr1bIReaU,*)$pP lHhCss=";,LuJSZ/iv?.鶟8&ޫOjcQ?R.NMPhA<> 1جk?z3SSսw_:Sֽ-8Y6K?+nw4 WK0R? FUU7=R޺6$Vl;~m`=Ǣ+bCPSI\[dS!֜Eۃ4͆ccGAJkQc3^ sϯh{gQT`EA 6)H(W@g$DŽ/e7bQ$vPB;w)T N(UJf؏:_@P߄#Zf߶'?yZώL@q*6YZ>~!Uϔʽ_GOA6J16[i 7n<<4N=.mX2q: aZá6^Eb C"5$@mq,a{TCQ8K %+eF|A(`Q[{~wOҳIc [7B^ېvn, YމLwqK#,X7IWcu+#P̚D 9ώ 8˧W.HmkT:&0Yʋ>7U} -T8odS>O6pW0?. OSv\dH856܋(WKN](zy-vu‚5؉g p蜗R a2;[g1'l A3N} `?`OW^h{\.Y=b~eUJVendstream endobj 42481 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42482 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42483 0 obj <> endobj 42484 0 obj <> endobj 42485 0 obj <> endobj 42486 0 obj <> endobj 42487 0 obj <> endobj 42488 0 obj <> endobj 42489 0 obj <> endobj 42490 0 obj <> endobj 42491 0 obj <> endobj 42492 0 obj <> endobj 42493 0 obj <> endobj 42494 0 obj <> endobj 42495 0 obj <> endobj 42496 0 obj <> endobj 42497 0 obj <> endobj 42498 0 obj <> endobj 42499 0 obj <> endobj 42500 0 obj <> stream q /X1 Do Q q endstream endobj 42501 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42502 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42503 0 obj <> stream HWko_q}ՍdMذhQ+02+$/E.{$9EȞ̝;f{~ZyˋMj/_#[>ɝ)rdδMWR)feEy۶uӵiW|E/謶WXSDmTi4:Kf=OieyzY-i'3{4~\uwMm]m}ߜtCᓢp#=Kݳ_QJsKęGcS~o\y2NK\GU1QIN9+Ę,1+,Zm^brSp{{^Wp>3>3>3>s>s KK+Ug-(֑{ Vb%,^b{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb{ZZ+1fVbȃJYڽĈZ+1ficv/1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+1bJYj{ZZ+u@k%,^b{1K@k%,^6JYjm@k%,^6JYjm@k%,^6JYjm@k%,^6JYjm:@k%,^b{1 7yև r"bU J+2) heJ+ZʁV U(hJZ*V*U) hUR˥ZKbZa hYeUZh9倖ʽ0MYJ ^bZ*^b6e)-{1 h;{ ֔@%,r@%6NS c֒;@KރKrA%ƃ R Ah{{T=ȽxDZ*^b<|-{r/1>ʽ@KރK %1fi-TȽx`Z*^b< -r/1}}}߁}߁}́}̵Ę$GnrWIUUgrƚ&C'$7yV%t=^GϜ=.M'IeR dȂ[Ш0-}g]m:yikwf%ʗI:lՁ_?v 43n~=C&ҌyO.vu=՘L.Y%n*{ݺnfq=t$,Oء I6P;,+|RyJ\K_t2M1;<57OnŸ>jw7T;ldGyw7VĔ5R(Uk;B{]>,ٳwഷͯяߠ(yRw6 tpR˼&Y.Zt FxX7?\nGZK|ǿ<\^r|Bϒ;R/iU0Y߳l:fnuîR ,ewbpue=O'wnlgy|Pm WֻIu̾i/xXc}[\NΘupBO"IvrQ mi-M/Kz M ٨NtUT;b?7gP;]gn hZ:㨧?A~N*N^h75/cMǁGrGտ-d0e>{jlQ18S7fx/iX{.M|eG4JOfJ:#<ՙܿ$_Z~~_C nRL[ʍ/ڦ[nx]xu|~/*nMn n׀P^er=6N0{J;m=wģ#d1/mNWov@ǾPcꚡg틌9pwgQ~cct{<,`i>~Ϳzj~EI3=>a!Gx*RZhVPZʔV2\i@+WZ*V URi@TZЪV*R%1fi--,вJ-Rw cRw cRw cRw cRw cRw cRw cR c֒@%,rA%,rA%,rA%,rA%,rA%,rA%,rA%,rA%,r@%,%1bKY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>Ĉr/1fiGp8?aEk>W4DhyϽK?єq? Vbe\6vlo_À,23?э׋Nt]1YAyCx  Dڵl zCՕzH.@{gyFC}zL(Z]B2E)<{q<`ӅfQr++]ܰʪRQ;lGG=T{J5 kk P30jhm\l&GV2xXGH(d4b=RZA &32֒aj$%GHh$!r#8YX \T4LMċj ìeۺ-SK0tU;طjhbh܆,f$s;'H4mMcG3˞)K8/暆`oV&q;F/Yx]%:Q|yewO? [\%Ţr~eVE pwWPW.fmlm@rТ|eby[+ } y>+1ɢh"J;XDŷ]t>"oܧL;R`2!ijMD|00,0pX+tfy\K?.xIBe_5c#Lk~CV('& VڳƳ9@ ftv%}$ojVI(_΋2Y'Q8#ʸjCUuU ?[pR2 MZBpMC;Ak+jՉ#"#n*TD2Uo ^k5L6&}&H&Cd|iJRZO,ElЉM熮͇n>E7*endstream endobj 42504 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42505 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42506 0 obj <> stream q /X1 Do Q q endstream endobj 42507 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42508 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42509 0 obj <> stream HWkoF_1 Xc$@>`,6${/)RWn"|t̙9U^]~OJ7ot'2>1AWi̪ܧ}*OTp2>c3}9s s}!/ }ܳFVh-ŐS XBk),b),C Vh-ŀ%bܳZC R Y{Z+bܳZZ!KpZkR Y{Z+b {Kh-ŐS Y=ŀ%bܳ:C R Y{Z'bܳ:Z!KpZR Y{Z'bZK1d YkZ!KpZRlyCwO1` {!R Y{Z/bܳzZ!KpZR Y{Z/bZK1d YkZ!KpZR XBk),=kZK1d YkZmTh-ŐS XBk),bCBJmv]-GZGFw8|L, jn-K/e[w7mjϻCq0E<ݖ[-8eXR]U徹x'XOz;lP?iwYxt{"dag _Oc81;-1Vy}pIicٔO}19HLہprt:SRk,up k26Ig[=/WmU?@Kܷ=mUW[Y{gNgNV2$8׻YaQi_ _le !4 dݜ&Mi_l/am1^.'n.aBL&NQ/M~ev {yNh; &¥u6܀ 3ERtp.$`&8^=X,4(T'~N~6΄Ӑ8]O)&~P1Ol$-ͤa~1NUfy:R'ifR3M򬘲þn8pܘ,pa[w[l!^O$>92ʾ5d!LfX{ۺ NXuVM_wrv` 7?3.haf-YJ?lº1">ԍu.7Ll ׻nO. ٬pȬ=?ē0kHNX7Xangg7e]2,2R;Nߊ"!#  {:y =sя&gwww|}=[٫ OέsJU:°RAK'2k0ߞىgג ~ŀ<1 ;r10K۩(oPsրL­~:"S͵dr3W,H aN6)B<(L[}Þ9Nn7Q/jWRӼCfjӵ;'qiX`<؁^RD{|j^>c=[u^>OϮK'WsOKman{y)4zG^/o"XN{OH\ΐ.Y)+d(+3\ʙV!hL \bZ 2aZVвL Zi9A1-'h9-ϴV*hL+R Z,V=9!h[!{!KbB),A ŀ%bX{!KbwB),A -{'bX{u(ŴS Y˽rO1d Z,N=Ő%h{!CעS Y˽rO1d Z,^=Ő%h{!CrS Y˽rO1d Z,^=Ő%h{!CrS Y}*bZ{!k8CO t.ի]W EGl3CtH,Sc,X^KSnU}U q7#f$׺0[xEV:ej2 Hgz|Y{ݝj HuGuS=%;»)'ZS^IOq{ VfOVۺ1 ݋mݦjMyYjY^֍?eD>bKӜ{{݊"@GA R*X!dA ;wNwofiWwue}߼̿ -8& _ߏ0W/f]švyE%0YlZ䒬Urݪ;nUl[#FUV!VJ*XY6[J`EbEJ+X`ʂ+kX` >cf*Z$vk=fEObJ[J13-bcf*[Tҷ%voK3SI"=fE,{L%}XbJ13-de{L%}XbJ13-bcf*[Tҷ%voK3SI"=fE,{L%}XbJ{L%}XbJ[dZjc9vZnw|ۍ}޼kvzZ{p>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42511 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42512 0 obj <> endobj 42513 0 obj <> endobj 42514 0 obj <> endobj 42515 0 obj <> endobj 42516 0 obj <> endobj 42517 0 obj <> stream q /X1 Do Q q endstream endobj 42518 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42519 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42520 0 obj <> stream HtWioܶ_E{EfZN6h7(gF\FyHsI},_?~zz$8caB4aaL^xG.bb]_5b쫽WλۑOa(wdX5h=zqvLjQ#cG}O >qԧQ"SG}O>sgQ#sG}w7L)l`%ûS5GڐA"rQJ,1qH"'f,i4^LaxttEPhv(j͓oP ٶ:CEDx|M%7M2n Mkm[į7g)kd=JMS_/f8C3Դz s&Xh'T:xgxp>;ݨijlu<ո?UBwHeg!OsyP+Vr9}2)7J< 1B]n{ٟL* LFBԙ܅þԹ$U;u_NL0't%Ba|sa)TnJO9Hc|_ ͓:ʖb_IrarC0yiduP$jSYycbhkZL ') |"(DCҕZa˹,FgꋌΦ_Ej^z|W\v4[̍ɏB@rC t陫D 2LL!02҈{>Cj&,]u{1 PCi;m_2,[:_RvPF+i>ږbo:G ۃr-wPWfdƋl"[g3޿$EYVr\* !Qv;4rCTЋae.v 7q9=EmuP9SյII:4Z7B_-CK7W]9`4ujƗdje50`tU<;ED*y)Sz` 6{TQ*K:͹չJSAl*74y@zb괅IDSMw&j\*_독Գ3X_.hv^|nZ-RQ4RLPkU^!mf.ȶ_W,OrRQ,EV=/SP v,5M򭄿 4axqW@8do.Wb8̪֡9/COE"5T. Fy?:H"KFPQpIClfwE l4Bj1M`y䣛18 >Z%tpO|[NfY^F %%hhvXm{8xwuySxs:,8)/7An}> Z<:KnĹ*|*GBbsl1AN i6o\?*1ey Y #sIB޽Y}objSvM5Ltrz'frٛ#?v wv]V>T 'e;*BZ{P|'`

X{:bT^(/7ӄr>`GcCU^S}& )BEwD,OP9mTYFQ-2 Ğ'JQ17VW@!0ɭCu[R3 I'z 3%>. OHwB\<}bj܈E?勷#]p |( kv `rS4ll )avnxOZBqi6z˻jE@DLcVYl;TեX̢a^1ry3FܬW^󥺢NMB6D.vikRIfj(*%6}}iؔP` DâIi_kR85a&+Z) z|!3vs7+Q&Llc?6&i *dY*$Wf3Zg$jSd nIJ뭶ׇGiNm' ]b'ٷ$bHԦ.МVsf9&soxΐLug@A+yzzK'85TmÐ:O|?W +ގ/5 8D n"Xs/v:!W?w-PcX RE3fꀙrAhi}}~~fB@s)4d) L![yY ce w 8oJ{:an|n/|6ޔWk,Ƀ(4iW*  oXJoҥ[_OxM5).vF_ŷҮ655.nX9ED[u&-aZN^`KrC˄EgJ, ~hY4(VW4Za'f_oʇ¹ՃPu+,WZ7:Qi/XB&"E%ߖُ7-X\5K n_p);4Q8cڌy2׵ 7Fkֲ+Fy^_3o;H =O/7z*q+h84lgI Q7 pN %Êi:?RԹMIEu<%Nϰ^oF^YĘ Ac0\=OY}fendstream endobj 42521 0 obj <>/P 418 0 R/Type/Annot/A 42524 0 R/Subtype/Link/Rect[129.602005 241.229004 237.001007 260.90799]/Border[0 0 0]/H/N>> endobj 42522 0 obj <>/P 418 0 R/Type/Annot/A 42523 0 R/Subtype/Link/Rect[286.098999 409.729004 446.498993 421.713013]/Border[0 0 0]/H/N>> endobj 42523 0 obj <> endobj 42524 0 obj <> endobj 42525 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42526 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42527 0 obj <> endobj 42528 0 obj <> endobj 42529 0 obj <> endobj 42530 0 obj <> endobj 42531 0 obj <> endobj 42532 0 obj <> endobj 42533 0 obj <> endobj 42534 0 obj <> endobj 42535 0 obj <> stream q /X1 Do Q q endstream endobj 42536 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42537 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42538 0 obj <> stream HWko_e.7$hV $A@K+($w/QC;)3sfﳪr"ť'/S+#DqPz ĭ'E.?6kܖU^ئWʽWJw_bR$HaMX"Lk 30B_/o m7\k?q]olOQZzlS^yW^@s Ku|^޵`d!ݎ%"6D r%OmR {W { { { {7 {7 {>d؇a:#}䰏>fa;c}O>a'a:SYɈ O16D Pj Q.{jC˞ŨŰwTRjZjZjCQbTKmb;Uj Pj Q {GQ-!aV16@16D1*FԆ(ZŨ O36D Pj Q.{jC˞ŨŰwTRj5ZjZjCQfTKmb;Ռj Pj Q {GQ-!aV36@16D1jFԆ(Zͨ 06D Pj Q.{jC˞ŨŰwTkRj ZjZjCQaTKmb;5j Pj Q {GQ-!a06@16D1FԆ(Zè /dTKmrSR\Ԇ(}ijD&U=_zK)OR~$(hJqLiXUg2Yج!Uvߏr68qMnwOEWyy{0dM^Ӧ:|3eir$VX̐ȰVs5d0ƵE~{׈}VMv;]y]e.jluq! ]f-@r&Ƥ# XgB)' :?.rIȷYտ'r >|u+.ʽݑ? ו<5 |:P24ǠnZ(AE@GntyPmZ8'_ֶ^U)iY)nuӐ0+­vvC ގ6e ^_Ϟ0pg{x YBM\ "_J=k.*pEvnet)F#c1!Qrpp0PHHF!>l2_mfkK]ٿ 9V4?ǽp}evkXqOA`<lv,wܕ6R% Rb'FfJI_+e;uɟ 9 #O·b(}ִԆy:.y]=.[Ѕ#J:(2S? TS. Yu]\ty}xa}1ΘbO;#0!@XTͭO  ct}~IV]YSnW*ېG 0dn3;cH5VծXkE ChhPWo-_k@ErSio?L=6rwY.d1bcdclvQM$EM )0u=X>P8a$XN)/_̐B\|:aF*>Rd/\ę-nj9^ccKEvK6Z0KvnGik_?9|*ni%hP"![dc;"IQ (8:NSʤ (udn5'9_z:eI"ǚ2TN|dK .G'h,YVGrH\̌;v'#;ek78>k|(h"d@44(f_risRg6Ӫg]L&h]琄{kD[jok=.]mϱKy4LħcȨGjG&X{dbgF'fVsS+/\NB_V]LFwד ˛d6ؔ~΁V Pp"\o~k|!O՜KM):pId`U-zPefGY~oO5jbP[nTɟ_[=~pk+W/0{胭?Us?ZfpC:õ_K#\,|^|YP5{Tl9wބ(i2^ٸqjLiP#@ow RoF!L3ZCbmk.YAd8W onƕ؈&&3Xsfi*'yone4θE al_3؁p^*#^k$l4׸L%H>ؤ|^6myO?Sh7L$-ϴenrh$xj32A2rikTN޴h$1J~p< ^"[*0h5$oLrDh0)3]9x\Le#ʅG+QA*R1mY%bj@ R$mf&h&) _Sr=TKo Q֕qƄI0dE$ā %B{J>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42540 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42541 0 obj <> endobj 42542 0 obj <> endobj 42543 0 obj <> endobj 42544 0 obj <> endobj 42545 0 obj <> endobj 42546 0 obj <> endobj 42547 0 obj <> endobj 42548 0 obj <> endobj 42549 0 obj <> endobj 42550 0 obj <> endobj 42551 0 obj <> endobj 42552 0 obj <> endobj 42553 0 obj <> stream q /X1 Do Q q endstream endobj 42554 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42555 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42556 0 obj <> stream HkoHWNrڐM6U\mbqALRəS@Z!;g9'iǽHxtY?7PV&FDȈPC]oaHiS~.eU2=kXYԙ,Hq )Xb@6N:"oj]ʎJf/X[Y8e؎uJ0~ȧjQ˛9b5c3lM2)~sy`/$`%J8 5!Vi%\ '=)(i<՜˟jRw͹BEٕᩆ.k^3ڣ7 CoC>C>#>#>c>c>c>>>S>SˬbBKyR͹|zI-՜˧sTCZ9CV3s1^j5ZI-՜RR͹z/I-Ťj{Lj\ ZͤjbRK5bj&Ts.KfRKy`R͹|zI-՜˧sTCZ9C0s1^j ZI-՜RkR͹z/I-Ťj{5Lj\ ZäjbRK5b&Ts.KaRKy`R͹|zI-՜˧sTCZ9C2s1^j-ZI-՜RkR͹z/I-Ťj{Lj\ ZˤjbRK5bZ&Ts.KeRKy2sTCZ9OO5S6y,S RD吮}*GRAg簛} %"ٰ\5TWy\ f3Far5{*!HW߾]N/U3I3PcY&-$}tM)`r^tq߾}۪aU,o Uk9:Z̎G*n[Vp`qȕq=7 ܼpVSL-so qO$ln50mR+礳e5/J .`>=/˦B Mld׳Gmʝ>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42558 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42559 0 obj <> endobj 42560 0 obj <> endobj 42561 0 obj <> endobj 42562 0 obj <> endobj 42563 0 obj <> endobj 42564 0 obj <> endobj 42565 0 obj <> endobj 42566 0 obj <> endobj 42567 0 obj <> endobj 42568 0 obj <> endobj 42569 0 obj <> endobj 42570 0 obj <> endobj 42571 0 obj <> endobj 42572 0 obj <> endobj 42573 0 obj <> endobj 42574 0 obj <> endobj 42575 0 obj <> stream q /X1 Do Q q endstream endobj 42576 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42577 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42578 0 obj <> stream HWoFŞCsHnh>P$H^CqõD%9|AzGY"!m(Lfgr}y%.r|Yٯfcfd_r5¬f|\g&Ğ9c*K4IiIi1y>?m/6>v̝-=9X.vu8{$M]wRϗm'B,–6γIV#s3_8DJ\,pʆ,#:;R9IplIbIXjKzVp{;^W=p>A}T#pG++kkk>IOfg}-6WJc#G#s۷o^zwd޽{w>ЛHFj@wuI[޴W݋?gW'kS~([7 4mv7ʱ''f:aӼ{/j9? [n \,w1ا'^.rrBvvW`ۻS"]vnN;cV,VPZhVTZhEUJiU@RZ5ЪV jFi5@QZ h%VZZc֒,вJ-rJ-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1f-{r/1fi- ^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ#ȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘTȽĘT#ȽĘ$F,{1Kk"%:v['m֟M=sƚUfvjRK-blUS/B|ˢLjZi "j{R*j>ƴ4(b5[tͧ9}Y=)f;[86'ʋ!GQt B=z9l/[y[ܻNEGDTkTK xﳛтJuj.r#S촪r^%m@\$ܦ@E=4=(6(U$G"Y`pd͛n#&n;P!Y[_od+k3\Pt|[[C k,Me'Pi˰Dz!S/60);bzf6ExqPQf>I+GC>N2$I4Ў [H* ܁ va$:P6L}^'c9u0 D`& *a8՜VGk<8VT>sh VJSm\q=%LX<c0F'-5£)JLr I hf+3Xީc] VT F!i\ ϻ'‡C9f8".QaOo߁V41`UG&-ln~/endstream endobj 42579 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42580 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42581 0 obj <> endobj 42582 0 obj <> endobj 42583 0 obj <> endobj 42584 0 obj <> endobj 42585 0 obj <> endobj 42586 0 obj <> endobj 42587 0 obj <> endobj 42588 0 obj <> endobj 42589 0 obj <> endobj 42590 0 obj <> endobj 42591 0 obj <> endobj 42592 0 obj <> endobj 42593 0 obj <> endobj 42594 0 obj <> endobj 42595 0 obj <> endobj 42596 0 obj <> stream q /X1 Do Q q endstream endobj 42597 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42598 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42599 0 obj <> stream HWko۸_("),h^t4{b3ZZJwFdy8HEuNޞ^DH,Ra gJ䙎;}(HZD'G{ڬ]ݮ^]RbF\~VBmT$(E c<)|]Ϯ좫8:V&,VGTʸPfo_mg]ٵ}/Mf,C)Kt>@1<X؛HJ|2oa/J PHRsPNrJ‘HCV8ŀ%e" âڥ S XQQQQQ)> ԧ4Po&Po&Po&P1@}ƨ9>pb\K1d1*ƵDq-ŐR Yz!+TO1`1k5Z!QV3R Yq-ŐŨ\R Xk),F}Z͸bbՌk),ƵC>pf\K1d1jƵD)Z!+TO1`1BCVbb\K1d1צk),F}ڔq-ŀŸbbMR Y)Zq-ŐŨ\2kSƵZ!Q6e\K1d1צk) Z!+TO1`1BCV˲LE&&z5NRo#8<*LdY)h6?<ld= )I@rӸ,ޏCfBXYLzVmMݶuGǪ6nw$Yv*8/8ƬE>2 } (URRxh)NkNVν;&6;רD*r>y-*a/-XdmjzK?$)LOY7v(GyČܗ?_y>V,~٢l<-MU/u]:UqnJ/qÄvG8 .R*Ud-߲W d%]{ .53ldɀ%ryF 븺>_\rz<ú*5tJS)`Rߥ4'gMZ@\O,9?S1o tLom 5Gr/}M\\ȁ y"fU)u snʶCmFO29oVĆқ5W!k@3V8#t?4k2W!B}8}YPCwr3X cHa놻B Ps)bN5XndPr+laQPw)3; x `=UcW5ۃ녝&^j2M.pc{]x0EG$djֆ0f?4T:)Fjӫ|Ȳ8t =xTm3PڿjzE=ucuw0Mn*I#"gyҘbz*ڮ{$me{x,OU$Ä/0εo@hW_n+4o}4zqn~SA ?v3` @V.cqY_fk0 x:'4P>Mn_5&?jed[2v@sˆ _Ur:.nئC_hۥ@ғN:Llredoi u\B>ZZs_ZAYַ[V j n`lĄ^Huj$|p>_|= ϐ|:ݏ3-ud]/Є{c / בFhj 1lI~aOA6b@EH.xyMH3ɔLIE~ߺ%>`~Zx hy2J }(J"FӃ1v0L_lķEvW#g5fFSg&<ʋ L7 .Ĺ妜 :5( ^;^-8>U#.ƦL8`KQDax5|v CUvu+T~CXͯ<~j7EEF>ݮ\F idCm.ov 2醑>咎%8zY@S\];&U>ٜ5qe[+ vC86pM1NQE<=gj1U/R W:s5\϶ (Uˠ+mR&e}ő_z Juj_y¥rލz\Ɗ,ΒZ;b%%:6, %aӴ:I諵92d<@S0pb6ce (8&D"d"d`'1v ,)gN8? l86](3_I#6gmߪvobl Z amڍ4ȏ VgڌSuǍgd 󦷿[G;u0EBþ^NT#ߛD_ܱ] =nFe˧P G gvuݢ۩.A: e# 'it90;z=JlL ѧPMWDR9]i/ujs&NtRN.Ff~\޸oWnyWS'endstream endobj 42600 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42601 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42602 0 obj <> endobj 42603 0 obj <> endobj 42604 0 obj <> endobj 42605 0 obj <> endobj 42606 0 obj <> endobj 42607 0 obj <> endobj 42608 0 obj <> endobj 42609 0 obj <> endobj 42610 0 obj <> endobj 42611 0 obj <> endobj 42612 0 obj <> endobj 42613 0 obj <> stream q /X1 Do Q q endstream endobj 42614 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42615 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42616 0 obj <> stream HksFW~ɀ,ڋnӤ36)d2T[) WMӤg%dbWywk̫>ہ' Oe D*~Í'?W3*y]T>Up.Sw $K/&>$`Mҵ׉o0b=_4 RBHsh\wuSo&"=ye}esO @/  `a?k/72$v YmG5t)Y*`(]J<ՐR{W{׌{׌{׌{7{7{>`q8C}>bGq9#}丏>fǎq8ƽYɄjkO1\TCI-,座\TCI-,ŸwRRR{'I-ՐbRK5K1*&TIbRK5RR{'I-,ŸwRR )&TIbRK5K1*&T[{I-,座RLjf)=,座RLjf)ƽZͤjb;LjZYqV3Nj5Z!Ťjb;Ljf)ƽZͤjH1Nj5ZYqV33Ljf)=ՐbRK5Kf)=ՐbRK5K1&TIaRK5RR{'I-,ŸwRkR )&TIaRK5K1&TCI-,ŸwRkRR{'I-^jrS )&Tjr'"I>{5[{OS ҥHҵu/BH3x:AbeήI0ugrC6vɷ!rX$%juߦ/N6H*n|ۼV7H=m6OPuEu]:9w~~O?wu^r;~T3*yUmJxWB:=IkIK?C5g]ܢ.'Ë\=~\GFD{zӧ6s>WX yBbqmfEsn}М=q|\u׎)k?4ᡵEvR>Ɂ}Tnw3}3T"m*0{8d8.|rJ8]Hh̟dO}.R9<\+~ 8?ZQ}6\Pow$m[7VC!sgCipDe%^osrSd85ZWogt ݩoѶlu61&&2psEn\o3_p|b|5_t??M}neYZ{=/'/ڃnesd~j̞Kߘ/Li-:ZN߹Lq$v 6Bi fېo`:u}s1/{c=w6=#*!n۷f'#)CMf2E390/ -8x?CZendstream endobj 42617 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42618 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42619 0 obj <> endobj 42620 0 obj <> endobj 42621 0 obj <> endobj 42622 0 obj <> stream q /X1 Do Q q endstream endobj 42623 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42624 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42625 0 obj <> stream HWێ|W4$v} k/by pf /9bTEV{}R㏯޼NMWYtnU;Yom/QJou5uo7MoWj&[吼Z$dQ IUTMaYmUWmW>ʹܵf5^Ԯi5]W\̸j5yHҀ|\mN^TdԇVIrmt$U}ReSIN8&u1bq,,+,ice{+[ w½p{'{ }g}g}g}}}}}} ܗ} ܗ}W}܋PZm Z1bI ,ZK{h-Lj܋ZZ  ,Z #p/ZkAk9X#p/ZkAk9F,^ւr,@k9F,^ւrXh&q#tϱ{KX`rXh{ZZ˱{ZZ1bcZ1bcEkh- cEkh-Lj܋:ZmZ1bI ,ZK{h-Lj܋zZ  ,Z #p/ZAk9X#p/ZAk9F,^փr,@k9F,^փrXh&@k9F,cZ1bI#pUHJq>B! VXB-/Ƚ@Kށs 1bI-D==h`Z"c4 -{r1Ƚ-{r1zZ"cD==h{{ы9 s1bI-+7@+]UWitI^-baQ*\Y~bnWuԻco\-rw:DDo= 8rv׵+V#ǙVh7|a)ttx O}XҰBKl|{:~9{2?îq?ՓzRRe(A夦nv\?MfY˳/RS^w/d>>lcTuǽ]mUOh__KӯtgjU/_/p;a)ԕɋӎǞ~,[6X㗮9 gp~pB?l,j]]o%^-5ͳ82xa/PiۺǍmqM=ɯO.4auG \n+o=q.[gN0w] ˚`ᯇDvf3d5b^Boz_fvhtnîiM&.isZx>NszLrzpDxcY'Y#vc+ѣJ͇/U҇a2HC2V?Ms:~l::km}7'n~z:>mzT"N7ݦ?"|majp^ aW|^ O[QU?aR7W u^=jNdLƫ`Q+ȡќV;#aFtN }vWd˹L(9BM5*"]74˒6݋{o#e=T+BIBM"4'WLMWuߌ1pb!Ub㔛W8]^9f6/^L{918\m'ƍ Y٭E1`kۀ`e!1vıf2L7 s/pendstream endobj 42626 0 obj <>/P 594 0 R/Type/Annot/A 42627 0 R/Subtype/Link/Rect[93.5998001 258.826996 250.824005 278.506989]/Border[0 0 0]/H/N>> endobj 42627 0 obj <> endobj 42628 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42629 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42630 0 obj <> endobj 42631 0 obj <> endobj 42632 0 obj <> endobj 42633 0 obj <> endobj 42634 0 obj <> endobj 42635 0 obj <> endobj 42636 0 obj <> endobj 42637 0 obj <> endobj 42638 0 obj <> stream q /X1 Do Q q endstream endobj 42639 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42640 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42641 0 obj <> stream HWm_EH}Kj[8]XŝuGW$}g&rv3;3{ϼnųgW/_ (+U* iGF:-"]PJ"mxU<m]nD]WokYp?P") E*RSa"Cp.6mYvJ%ҭ?f S-LjMʊu 64sͪ>|?a}~t]2ta$ρ`7Ywso#x*4;q1[&LaC >RG1I FQp(|!1(])<J3^300022111>bGayc}챏>fax}O>e{UhhFԆ(=Q-!gOmSRj5ZjCSfTKmbTKmb{Ռj Q {OQ-Q-!aV36D1=jF(FԆ(ZͨŰTR!0j Q>{jZjCϞ峧6@16D1=FԆ(ZèŨŰTkRj ZjZjCSaTKmb{5j Pj Q {OQ-!a0C`R|(FԆ(=!gOmbTKmb{j Q {OQ-Q-!a26D1=ZF(FԆ(Z˨ŰTkRRj-ZjCSeTKm16D Pj Q>{jC>iẐ,3Bl/ HDQ*CpRb4ۢmcnW1DUzvɏ[q=_: WE}(~0hۺDf4VI(ӌS[43U t2L6Bҥ=Hi&i<(ZyQsuaצ,Z\kE\b(TM[iӞ~W&:. aa>Vhw:nڲ:6?\oaϭϾj7wEC..ZFqhfNi=BDp Ѱ!BXi\% hNX*vgl{_=n[/s93C-w_q{?K^izǷ]ChMI6ϛa57phVS=uxϱe xP6(-._fp>st\D)!tn0 qޑ\.O),Jdm B2.p26=apOF6Z4ֆ3^rstB\/=$fb/ ˟*ļC^.f =$.sVŰjq_%p{,+jF(]uo9*H6VHe^Rh)OEz_ݝWg N TTCi0'jU}$,HA^,{_M:݆q 5ݨwX<a/u6.H[ 7ݬvŦ/<(H('n>eޭ <8]z,wb,uٗT VqY٫?~9Px<6P2QŶ tuZ} 7 Iᅢ3D:Z \@绡ð{OéTtFmCٶV:d+]GMNn~+>@ʠEØwru[EҐ W<^g .gaX<%9=,s1ISǘn塃}&p4\\:SMΡ"!$vODwS瓌n>fyD~ۼ>orj~$Ujܔn }oQ۲y]Ss_loteSn⑓YnhѷM?7XJlﺂ'uF-l1>S'5885gZZ"ZG;SJd]J:h 3F+ri(s޽u|2TOZ &2T@~!=](V~p v<#(/as0*rgc66\j%uF jhx6n~t QW>I-`،M@\K~}ϐCbM )^s9sR4$}C,z1I cK~X) >p-KᚙIZd!9w/7V0 ?'%<СV:'5设o uDJ\6٧\yY75t[8 +@6ͯ_RAk_5ӺЌp ]}Uv] Xי^i߈T詼]٤+SnJgb[kk孝xV%j=BwheYgpS!%@TÂsM$R+CkF wFh5x 3,uu V1gZB=l7_C2!WSUL `ʂ˖Hd%L`bΟT7c4oƞΌ.;h@A&xR:>mQ|ݑ" [ՄJkbaY+15m[}DELH'*%ɓ[t0L>+`weA׍-&4du|dwñQaՄ"&+~2e;j8!6~QVd }^3NZi_oǩH4 ,bɦt3ad cM=oʭi!/yL@u\,΢/ 4C˂C2rKue~c.ɲ`6OEo .ZBIݷ?~}ZrBYӨwW[<2qW (RjS>,6DN<XuˮRPLxzY_ ʩtqSbdwŃ"7R<+޾-Q9vS+z|;OfLexJwѮM"Q2n U3,}nPUD*$ʫrv )z,!LP噾^)hx[ХAѾb"̄m۝2k\&b/+>78nk I'r*OI-%>t\E$tޫ%y >7up:Mdq]c*$_xkpJAHE;ЊBMdUÒIwg [`8.8 Dtsfە~> 5_(Dwg]{Rԝwc\"`Æ"q~R|) U¦Fte7N )FejA Ũsw>^"bh0 lpwxTXUA{z{:j`ٌF~Q5ozeh=ڙyknJx^#&t#<[7]("@\sUڒ'61C0E-AJ9 PcEY@DLӫ{$WVcu}cJԃe\VH%mu>|>'j;endstream endobj 42642 0 obj <>/P 1342 0 R/Type/Annot/A 42645 0 R/Subtype/Link/Rect[93.6001968 663.229004 366.011993 682.908997]/Border[0 0 0]/H/N>> endobj 42643 0 obj <>/P 1342 0 R/Type/Annot/A 42644 0 R/Subtype/Link/Rect[93.6013031 191.979004 262.130005 211.658997]/Border[0 0 0]/H/N>> endobj 42644 0 obj <> endobj 42645 0 obj <> endobj 42646 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42647 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42648 0 obj <> endobj 42649 0 obj <> endobj 42650 0 obj <> endobj 42651 0 obj <> endobj 42652 0 obj <> endobj 42653 0 obj <> stream q /X1 Do Q q endstream endobj 42654 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42655 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42656 0 obj <> stream HWko_>ɇ8i4&, 4 El%PӢ=WL\$ g g~?Fo.^>Sz鳋{] ʦQeaܨIInf*}h~\-MT7KF/>uJɨWFiUOɔW>h2TH1fi> .~97jxnlcn߷Mm}7[M7\Ҧei"] mO1z~^'YXNN_$65ҙz~ ^O3uoA8w's8:1b8XZKÈ4ϱ2 po{ [Vp{;>s>s>s KKK++^"1#tϱ{KX`rXh{ZZ˱{ZZ1bcZ1bcEk h- cEk h-Lj܋Z- Z1bI ,ZK{h-Lj܋ZZ  ,Z #p/ZkAk9X#p/ZkAk9F,^ւr,@k9F,^ւrXh"q#tϱ{KX`rXh{ZZ˱{ZZ1bcZ1bcEkh- cEkh-Lj܋:Z-cĒ9X#t1b g N<` -r@ hB+Z*V! UhBZЪV%*U -@s-I-Kjq5ZZheZ"ca%@9F,%ro@9vÎYB cZ"c%@9F,%ro@9vY\˂sXRc4-{ r1wȽ 2@Kނs%roA9F#  h[{D-=hZ"c4V-{ r1+Lj%8Fw h;{(D=hZ"cZ"cZ"c}Z"c}Z"c1Z"c1Z#m}rSSY/:,u2kT*rQ"4N5<&G+NvUZ9@f2 1wY5څo5zN]-oWU-~kI|j2ϛN-v~M&V_ke9=nC;}wyL]V}w?NpaqwCy yޭ_䩴iu5.pgcr:l?lݫ?=Vo54STaG74>]<)DݗqO+d1jK'"mI/Pnnxfj r:jw3dz94mmyDmԃ:PE'BsB+IyIE'ŮR.:Q}g|Y6?ğ?tڶCm/§ /-Y|WJm6ޅ1ypqLЫYLZK ?oH,SngGdwoD>A6LRF7yG갽M__gr}.6INuPz ʦ."}[3tݙZv 4iyPYlTN̮naj}ҌG!{wH3qc>:gP>? ap]X_/1­*AߗCw&E/_?>1#muF-M/oF~;S߿{:<3nV=9{tIN=Vm ^/?Oa{hkny~va^}Nv;#,倖Zh9\h@+Z*V URh@ZЪV*偖Zhye21bI-ZZhiZFh%ro@9F,%ro@9F,%ro@9F,%ro@9F,%ro@9F,%ro@9F,%ro@9F,%roA9F,űȽȽȽȽȽȽȽȽȽ cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"9=Lj%8X # #n?:*i[y~S@W\Zml}^BdaxXUri>LDN7Τw)Йc\/- cKOXws0݌0ȥa bCo|7Gt7{7fy]æ lh}W߬kpз/aNuJCcU ۆ_}Rϙݰ~}h<*m|>82E9E=EFt-DbԜ<ə7dӾۍطST 9gt:>c Q=|VE:M[ Xt=ùwvn).-葃ށ SqJ"gK7^kj5_b i& ۿR{CAw,cdE5#bUg ξ,Q>x3vJ9GLة俾1%8H/gNZ!D+SĤ+|9fXrž!=Og11rIRV$+0>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42658 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42659 0 obj <> endobj 42660 0 obj <> endobj 42661 0 obj <> endobj 42662 0 obj <> endobj 42663 0 obj <> stream q /X1 Do Q q endstream endobj 42664 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42665 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42666 0 obj <> stream HWn8}WQزxe70If p@me[RNS%RjN8Ydb؋^߼a1{՛"3_(3%`]5A*\(P}+_r-[&/qyrp0'Km.-C6J8 Vqlǂ\&0Sa[y2 .&1@ Q;(}cC&P.w} P`/<`/<`/=`/=`/=`<`<`=`=`= >'cS}JO=)>gc3}N=9,'D@umٻ6@umٻ6D]պ6D= B Q{OPkZ׆(ZAֵ!`Vum"TET+պ6D= B Pj]jZ׆(ZAֵՁ$Twm"Twmٻ6@um"{j]j%Z(B Q{OPkCS$TEֵ!`Vum"{j]պ6D=JB Q{OPkEֵ!gEֵ!gwm"TETպ6D=*B Pj]jZ׆(ZEֵPkCS"TETպ6@um"{Uj]jZVPkC޵PkC޵!gGy+ÿEw[6C <%I6unʋW@n|`ʣLke:3ZHDi]plC6J<$e*.x;k&䷲OmJۻ7oy1pҩt{(2H-P73R*Fq QjW0_*4ߋgZn6XPcZXC^rsm0ibJYdbF9_nM?tYxGs,gRi{ؗ`p-p~fOE) ȝcqPʟcE<3t(#ӱx snj!U&ɉF_Y<OK8n\jA"fN%x<>lQTZvsnꎂ~ۛ_[`y(ϲ>uCҧU«fM'2JD,QaY䩊DzB݅v܍fqx{c:f 5cFֵ/oJ{}BP0ɇԷP֬.0APc^-XYIʒǐyc=¿ 0JlL54ӹUrk'Ӱ=vs-KK~mn9A,AK"cWSY8S$=Qs8%'vE%O>#y9>Qg6m OjϦ^t?@rm1am]<]홳XBN⩞򣈒\u7ǐ4uB(NT|1wkFa$3?nUx ٵ`Z~>CcܕXtHDMH7wv%}2@r9Qyq%t uiZ84 l%Hؾ,fB~~+u޲L:"qƜqԸiW ^p9H;C_Xuմk#zc\; ~q}*0ǀISs~Q9WC\PKm].>Ϥ=-eE dp ;H"N:2a f[8|[/ɻ8Űj X=bAxMA&89ӾrimJ$|.cW V~ FL7m6=?bNtg^ja:s{y[.<' S SϚ7Cg饯дxpV')eOS4W޴Ǣ+Y}jRR:ŮvvA:K:L(;6@/BY 8^T%^ԁyЊu9̵tٍ3=UƉ|i߇CCPܒiI0߮1ȲiCЀTt6-b`I,pM!dҴhw Հ.c$Hy`@3?#5e`ιendstream endobj 42667 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42668 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42669 0 obj <> endobj 42670 0 obj <> endobj 42671 0 obj <> endobj 42672 0 obj <> endobj 42673 0 obj <> endobj 42674 0 obj <> endobj 42675 0 obj <> endobj 42676 0 obj <> endobj 42677 0 obj <> endobj 42678 0 obj <> endobj 42679 0 obj <> endobj 42680 0 obj <> endobj 42681 0 obj <> endobj 42682 0 obj <> endobj 42683 0 obj <> endobj 42684 0 obj <> endobj 42685 0 obj <> endobj 42686 0 obj <> endobj 42687 0 obj <> endobj 42688 0 obj <> endobj 42689 0 obj <> endobj 42690 0 obj <> endobj 42691 0 obj <> endobj 42692 0 obj <> endobj 42693 0 obj <> endobj 42694 0 obj <> endobj 42695 0 obj <> stream q /X1 Do Q q endstream endobj 42696 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42697 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42698 0 obj <> stream HmWG-soE v40f-&"uyI^i3Ù9wE}FiW/yJWYܪ"wifU.cbTc}i«7mNMr[>~k~ʨCR ZU{Bj&kﶿ [Sn^Lo>/ŋ? o}}Qޯ% mS3~w-<ܷKV߃_V{T.OmemX mRe8Sh EG5" n 7O52Vpo{'w̽; s{gs 3>}.ϙBp_0` }ܗ/%s_ +ܳ!Tk+jZEZ{%jܳZ!T PBj)=KRKH YjZ%jܳZ!T PBj)=KRKH YjZRKHqTJH-"S-R=ՀRKH YjZEJpRR (!T Z,NH-ՀRKH YjZEJpRR (!T Z,NH- Z{%j)j@ Z,^H-"%gBjZEJpRR-R{Z/j@ Z,^H-"%gBjZEJpRR-R{Z/jm Z{%j)M4^:̽rV}JJM^n)I9ȥrڧ.Un{mMxlv9uw_nd^T͌N[8}G?<*m~HtjN̨O*zػڇ?z@Vh40 Z&M Co<Ů~jƕ\`Wk9_.ȲiОgU'R)~pvw `~-evjuIkDLk?*WzVWgڂ.VY|^+[fuԛLAK8 QR;J?/U;X+\)mf-DxUam赎Ki.Ѹ8{P/I6VXBw$j:,2[M(?5UyBr>}  *꾴=BUu_} q$s>7TfmE9Ms4pFQ w{ *˹{Ԁ*tΨ3T+B>TApWkIRNB9fk2*NA%sRBcT)x]#Tjj@cNVTUr ߺT TIrhKVf wZ›6&fAaVoIjNYYêr)KcZQX*_Ps?UvEaE^PXWV%5wEI4YSǓiEkV[Qs-)ǓuA黦4u'[$(L̒2-(L2´( Kj+ +̂*4(| *,"/(kR O'Œ2NLkjSnEi4黦4Ȼvq6scgi7COK> 1ާkI͝+6fE?3P?uż)nsȹ/Q3z=|+vb?iS.C/ =a y w/`sm>aEȃ.OAݽfS?cyp}zK/.3hl5Ə&2E} g_[4dwo:Öfwvb{pz&ƇpP 񇍝BU!nŭ*Y|PpC_pڏΟwls1'{|l>.S rqz?6}hՇgl7h=^Aw8⤕.x۵7&պX k;M'Evv4cLNeT.>Tubp1mjh^旒&ʉ{6vu"!kT:UOuW3pH {L=^zGeXP2+|8bc}9If%](đθ0~-lP@LC/!as)sC1_dqs{٫^{$@ y8cۦHVov-A-| | ǬWy_ߏ&F]0 'vtw!x?]m8-#gWJwyՕYtSԭEJFIY 9q>43fLm,cvThM[۲b?F_ (A;wUrm/6UaaKR3)kx)$QIi7D M!-)iEĆ2\c!&Đ˦2uC𬹘"Po?VUPlY%7>lo~n 0!`endstream endobj 42699 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42700 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42701 0 obj <> endobj 42702 0 obj <> endobj 42703 0 obj <> endobj 42704 0 obj <> stream q /X1 Do Q q endstream endobj 42705 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42706 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42707 0 obj <> stream HWَܸ}W!jZ-nZ2 `lcVdkH*s)R*80ں:uH._E?~z7$&?? F҄G^6S@IEU]WjW%?yWaOℒ1a$>Igd!D[e23CKU3E{ћkQ[3U ʹSqնB1`Y60_1r%4&| rDLB?qMrrr;sbbg9fIjbbzgzzzzzzᩗz驗z驗zO>A'QzSD}O>Cg QysD}g)bZk4WbB\bw1ջ׺f!=2ĵ.Yzϵ q qis-C\b\׺׺f!=2ĵ.Yzϵ q qis-C\b\׺Xpĵ.YzZ,_iŀ4 Q﹖#u1B{k] Xk]Lk9Z,DZŀ4 Q﹖#u1B{k] Xk]Lk9Z,DZŚ@ u1ջ׺f]L|.,ĵ.Yzϵqis@\bB\b\+׺f!= ĵ.,ĵ.Yzϵqis@\bB\b\+׺f!= ĵ.qiŀ4Wbϣ<*,>xӿd h<,$97ݑ\)\Պj fa͎E]X<=nלQjڡș'Ijź]S>HLsXjp g <,cDf\ y57hvZ >>W1 uE?.q!̽"7 Jŕ'5ͦE}d;~Glx6.DlFp"!:U/tQ@P8+m UnZpf9n?+3ϦSZ ꫪuր]L1lN}K96a!7LB R Umj4Ϗ'7|?.5qiѽ4aNZ,n_W߽39jNn>M)H3 ܈wuVpkOnGa%)(wrX&P/+wHMXAڌ\ ;hmRr ͜kl4MS;Da5õ2^mqQݿ} mZ94icG̓  Z_o ,Fw,"C;7u[YS$BP$W<_x7a[LGq8N8K9 ]u5Le 7k1f$hdeYÏȽ7vm98@ՒӁJh@q3Wr=ݔȱ7ovB ø:D83:4Ȃp-0mq ֙QHO~;:c 2-JsgL&!{ʎw ,4A}[}݅'dL< T>ۋۓoO<*#}Fuѣ9nNG˝qd㢽9ljC$ ;>Ą2̴ 9*(f8AUeF%3Vd2eCCcߐ }K\&(c#eJ.bpֱfs}mmgfQz c=W2]ML}><Ex]Ik*`6_B6hT;ҊZ?Byr'g&Kl]_CC2MOanxʷv ]]G[IVbx]֧ۡbk,- n-fs8F wF\V$KR+XE.SE=&`rYqtI6ƍK>Ұlz |DXStkX8x̣{j{)Ӹ ܽ!EokwBmJ'گ^6þTt )i0oX M,b.$L;j:8c/ft | 1cpԧɑR[NdXP]6Ld-+籼PǕ!r}2^I4I)&He1ԗؙ1#~bSWYù+gIbN&Y`WOio{ʖ$|wm;Z3Ϸ= \=lEBl^44,N #}TwتJvZZno>'ɋE{i.Y'eq=F*@K,MNgḒX+~*dџ92NI!=+qx<1 ,I'aV n|QŒlG}b#n P5aAQ1KWV"H!'V; YdYL=C*6to0l k,a!|A -X)I|9Hxtr4ŹV%ep7L *7ɼ;bC("V3If =Vb5rڦ\`gfle\Q;I#cǾW E}ITCi&%| 4OW<^h\Z _/ .`^Xendstream endobj 42708 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42709 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42710 0 obj <> endobj 42711 0 obj <> endobj 42712 0 obj <> endobj 42713 0 obj <> endobj 42714 0 obj <> stream q /X1 Do Q q endstream endobj 42715 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42716 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42717 0 obj <> stream HWko6_ (llt6@(M%H=v8{.9WmO~ȏ?~sqEyAHK &:"F#Nj]we_?f״^m]~例^5"'뻨I)HcdbVoK`3S7R$,}zw/uXWe9{_oc[ׇQ>S$ 'y;3#2"qYn΀]t)BNq8 +ǀy0JPK E^ E^"e^"e^"e^!U^!U>A'QD}Oi>Eԧ Q3D}Y>GQ D}/g9bZGqVǀ +Tc1`!1Bk}̰kZZ3,D}Z QV 1`!1Bk}̰kZZ3,D}Z QV }$a} Xk}̰B>fXzZ3,D}Z QV"1`!1Bk}̰k%ZZ3,D}Z QV"1`!1Bk}̰k%ZG qVǀ +Tc1`!1BUk}̰kZZ3,D}Z QV!1`!1BUk}̰kZZ3,D}Z QV!} 1 a}̰B-Bj^GWkENwgGSYOz~wj[{ݺsk0R_usp;Yk>uޏs6W߭x骟0K2;i4T.֮ ӥ{mFJ K:-yd}4pwHPL][%KT%Lo 7lzؕA.кZףņ0*SuET!hixS- Ll6犇3CPUlD#da\Sۑr4ô!z`{:Zdv6I;+bݮӝ˿΅5ŰNY LINS&N*h.t|n!&]Ayh]^mOMZ8JT״8. <[b9ƆT-؄r/\[qԇ;8CP8D gNH& D$ =0M%@(R?7f p˅TP}7hhht_j7ȿq;D^*%:gɬR R@&Gy4Cl:A JQƉjpq!LߺN駊f*݌' 7o:'tj |yO&[}{ مm٥B$ԏiߦW3o~Tz9J=mgJ.. LHڍW^[˕-F߷ׇ^? D4ᳲ9t' 29?vq _(2V[,nwȋ{=\*(˒i 8ڗb,@\"ŜuwJ)C|3~ #]]&ſo^C!7m^rB^t,i\;mA{ۋG lM2DsHKzgcH(~tPbuٝ;1 LX]ԐtN/QJm]mOzp'SGeW`Oy? AnPCQT|Ү =9Z86W^@zPd4gѤ{}XԠd!uQ d} f[kư=fFpt8 vu5\+1ߊ.ݓ}dlluVm},w,߮ﯣodendstream endobj 42718 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42719 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42720 0 obj <> endobj 42721 0 obj <> endobj 42722 0 obj <> endobj 42723 0 obj <> endobj 42724 0 obj <> endobj 42725 0 obj <> endobj 42726 0 obj <> endobj 42727 0 obj <> endobj 42728 0 obj <> endobj 42729 0 obj <> stream q /X1 Do Q q endstream endobj 42730 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42731 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42732 0 obj <> stream HW]H}{$ܮOW <Ќ îP+vC|$i@Zߺqұ=EZéSsN[/_zj_vN*8壭QM7jeQOV3U'b5_gnMzV|gԧM-[}iVM$J*eMQ}ng:{b|]]jL:wY{{wxԛv{u" vlסudѤk[ԕޑE^VF}SVgzVתH6Tg:H9'INb][At,%aŽk-s, po{V-po{;N=p{{>A}#pG>IOآ0#tϱ{KXfrXh{ZZ˱{ZZ1bcZ1bcEk h-2 cEk h-Lj܋Z- Z1bI,ZK{eh-Lj܋ZZ ,Z #p/ZkAk9Y#p/ZkAk9F,^ւr,@k9F,^ւrXhآp#tϱ{KXfrXh{ZZ˱{ZZ1bcZ1bcEkh-2 cEkh-Lj܋:Z- Z1bI,ZK{Mi!jFHtKh9儖ZNhy兖Z^hVZAh5@Z jVZQhEVZIh%Lj%8F5ZZheZ"cژ%@9F,%ro@9vؾ.l0ԘPY{[## L,fŪ9Cϯ+7Y>}+Xכ7ȀU}4rq_W/ʿ[:y)GfuG[/e@Z]m'9ZM>煣x0iH-?zT7Ю=ꠝ|zǁpyR;2|efae|Ӂᣫfiᘻ7"AM^сyCέGp = qnC}X{ot>-'^d=!ʮMSy[*T>MϛHwo@.i&*[WWZNQfw=mϵ`xbWc?.~{dlmdyݼl_˟Ъ9NS#!Uj!`|+;lCٮ"6Z~CKd0=LoɆ* "?>w3gR_á?N#:9-hCOUFElnXy2]ưEMd/_ӟ .mf6|\lc5>\ӟ f֨c=w 3b?c]=x/ïm^ލ8mޟͬ/ݮXav#V,倖Zh9偖ZhyVZhFh5@ZhEVZ h%VZZ#XfiZZheZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cĒZ,{ h[{ h[{ h[{ h[{ h[{ h[{ h[{ h[{ h;{Kjq,@9F,%r@9F,%r@9F,%r@9F,%r@9F,%r@9F,%r@9F,%r@9F,%r@9F,%rA9F,űVRJ/fy[(ڛB*Zә[uCS~LwG'uU'C畁F#4vǑTncx@>YT1fS~M}>ӱVdحfVfL6{ejz="GRC<[`m[Pn vj;Ml\13#rҐR? 6xU}>OYgim&G0:ʲopLdyhXhYr~aN6mBJ#S4 `׼𯘘QNx2A%7j=3%u3Hw(Rb^gBDh=cr昢d)"`kdwǥ%)BEfgff'}bvXg̮Fk!\~k!a%BCre n0 r׮s+}T #'& *cbaiMeC&y%umgJHSX4n]R:f8JA;u%YZ Vf3}.z :~F1HNM]F1Z+U@IB^ QR:Mqi:kTɑ(cQTx)9cEܫۀ*X2Lم)wI)pD:38txXU>78Q9m 2Mã@yXRp|Ў}97Vn3VS;e[AbvfUڦuJͰ&`nuQAQ>/w 0t"endstream endobj 42733 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42734 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42735 0 obj <> endobj 42736 0 obj <> endobj 42737 0 obj <> endobj 42738 0 obj <> endobj 42739 0 obj <> endobj 42740 0 obj <> endobj 42741 0 obj <> endobj 42742 0 obj <> endobj 42743 0 obj <> endobj 42744 0 obj <> endobj 42745 0 obj <> endobj 42746 0 obj <> endobj 42747 0 obj <> endobj 42748 0 obj <> endobj 42749 0 obj <> endobj 42750 0 obj <> endobj 42751 0 obj <> stream q /X1 Do Q q endstream endobj 42752 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42753 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42754 0 obj <> stream HWkoܸ_2`C'&mA3p@=ʎHFC^'iZ!yxsy}u/\y__qpP,+e V2;RqְMM[fMt*^ϒq4L24Ɋd6ݦ.D7Voge"}c}pdU&V|qlnX}1JԹ,͓[ yVQ (2纅EDGSeRay"2)-F8vчHg>Gqx*!+ǀy0dey(ǀ%"P/"P/ 2P/ 2P/ 2P*P*P@}F> ,B}ZAǀEǐE\+kZZC>p \c"k} Xk} Yp!PV6k} YzZCVǐ1`1dJµ>,B}ZIǀEǐE\+ k%ZZC>p$\c"k} Xk} Yp!PV6Rk} YzZCVǐ1`1d*µ>,B}ZEǀEǐE\kZZC>p"\c"Uk} Xk} Yp!PV6B>,µ>P!+Tb)[4mb]g8[G<58!b"),Vb_.x/YWy8.3-z+o7&Tsw՚!WeKY*o:C3@WjErBl Y.'}-+D`)3}YWkm{{}^ћO80f'T)z zHU…>߼?_.LJ-riv9N]u!5 M #ggpY۸4;Ruv[hoM{lKn Tԧr,{<4XwsU^q=&&,IB/ط ݓHR՚-b4\tORu-(LPq*kט" STņS\ >Ofsm1*tz_f'f}wxnQ: ncx`~i"uájty8ZJ75dv^՜Ky"IJD?!&+UxU0k#~GrXj;/:og/^ ӝ 00֭mW#O۽}.'ZmZ!}ʮFRGSS&tζh،pG-r•2feW(<K].fP}T[8>pkt"5xagk69%yqW4B;gXt9/KR}+p/` *_(aM6\jzi=.ԌcNEup+Գhѻ ӑ11-uzѡwIR+Ig[t(IS6!/I)^C6N? "6?CIy| }&EW?]6 0Nendstream endobj 42755 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42756 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42757 0 obj <> endobj 42758 0 obj <> endobj 42759 0 obj <> endobj 42760 0 obj <> endobj 42761 0 obj <> endobj 42762 0 obj <> endobj 42763 0 obj <> endobj 42764 0 obj <> endobj 42765 0 obj <> endobj 42766 0 obj <> endobj 42767 0 obj <> endobj 42768 0 obj <> endobj 42769 0 obj <> endobj 42770 0 obj <> endobj 42771 0 obj <> endobj 42772 0 obj <> endobj 42773 0 obj <> endobj 42774 0 obj <> endobj 42775 0 obj <> endobj 42776 0 obj <> endobj 42777 0 obj <> endobj 42778 0 obj <> endobj 42779 0 obj <> endobj 42780 0 obj <> endobj 42781 0 obj <> endobj 42782 0 obj <> endobj 42783 0 obj <> stream q /X1 Do Q q endstream endobj 42784 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42785 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42786 0 obj <> stream HWm6_Z D(Ф4w!dBjm%nsd!؈?<$?jK~z˫Lh&\KJ1+*fdky|ͳͺ?Wvn~.]ݼrg7sE>8Sq,vWBTL]}=Uew:?6^YxU}+xܳᖉiVj5{=8X=bz.67b2egSI+?7+ 6sc\q#J@Q;l) <(]<Je^e^U^U^U^u^uMMMmm¾$ؗ `_&K}U¾"W {Gw {GO4+b&jͣR(BQ){l=P-y>Q$TmEOT+ bbGJBQDP-P-y>Q$TmEOT+ bbGJBQDP-m2E<*em"Tm6JcbG*BQDP-P-y>Q"TmEOTbbG*BQDP-P-y>Q"TmEOTb&ӄjͣR(BQ){l=P-y>Q&TmEOT bbGjBQDP-P-y>Q&TmEOT bbGjBQDP-m2C<*em"Tm6J;9p^γM"?dvxͭu|}*^̯ᦘ\r ;ͨ}꾁INͮޏŪ 5_ŷchZWAUEW\g2+Q x] w4_ٔ~b~k~qxU`4w8Ϊpt%%8"WbP\aj\S1{?[vHY(7(+`cnt*~qJ{as`kLJn͞ߏ?(iew~uA=i0nsEv("voi&6wJ;>`oqTwhtz}3ac6Doy*EnhVB3s۷ˮ^}Jlv"f<J.H(U 5*+F%$=ؘ{''ԅcom"Ҕ"D)J+ I:\3Zyuf)q&YNN<AY (%_s]ؒ9u?p}QdRCՎV>02qlw1/8d(nuNhuI)FcklCe Ok|NtFwW5UU1!آ>q}ch˦OeA0.s#B3-n9@^P?,ulYxvhAl08mDA1>|ߙލ}3ԬkθCCPCx0Tj(ECY7y^W,P# 9|B3.wfȬFjZ1Rc@2'vE=`0J(Kjڼh1Se,o@ǡ atlyLqv;{s*ANŧqTY/'zEZ%4 E|KMh!%Q>iª_tlq x!­^f} t8k}86DQbGXNxG<&"( ;ggq, V:q1j*)Gs*4_*+y!b9Ǥ^K  %RtG)ա}],KA Q]|Rdm)rH ) 2ŸDϟ4'[w:!F[ILhZ" `cQ1j{yʐ!U?Yi֯fåDR%4Mt(5np\J-`\O L >}:臢9L5$"u=ͥ V6cNm}lٜpeHqCqL.*1 u;{cq$/H2a2:q=}MgIi2TS!bt=-ל~p)Q~'.mn;'50F *h(o_\}TZ^'ba哈ts$rax+)LsnLJqz.pXbyw\(%rm(# Lk@"Wqj:bP9eQ+&i!@Cwbf-X%ae&Qkhz|5 c;E^@H=Ќ6 9Om΄@cE6fu1 \$Lk`"7:8eڪd·`EzY[hnchLЍhdaL.=LrEi}aBzޛ)$b{kB -$7D pyDyށQp̈́̇t<҂ ;wO7wrǧWۈendstream endobj 42787 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42788 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42789 0 obj <> endobj 42790 0 obj <> stream q /X1 Do Q q endstream endobj 42791 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42792 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42793 0 obj <> stream HWmo6_Z*6@ ݡp m٫j]'M͐z%gw1ɇ3 G/.2^~"#:R3S,Uf$7ɿ6!eoͦ>foooپM]CJ+Q1&YfaMVU]\O=ϸe!M&UJ]7lJ^sz7 {(*$Nlk2ɾ0{ cW8cUy& ,Kv-M{bM1U m m"F6Dr"&% 2b/ 2b*b*b*b :b :bo&bo&bo&b}N#"b_싈}I/#%[[}YA6u$Tm"Tmه6@ m"GjCj%(B QHPmhC>R$TE6!`V m"GjCՆ6D#JB QHPmhE6!*fE6!*fm"TETՆ6D#*B PjCjІ(}ZE6PmhC>R"TETՆ6@ m"GUjCj%PmhCT>PmhCT>!*fE6!`V m"GՄjCՆ6D#jB QHPmhІ(}ZM6!`V m"TET Ն6D#jBK І}hІ}hCTfZ8 oMWfUxe9s˪.J/C.~X2/~3V]f|z7lTt[yzxlnk %3@_?_#(fNil,8:e>:u7ܰͦXA]m6G^ ϳ\r[.`K!n[no~Xv,\R6m*@bN_)YwE|JÂ,>G;6CЧ> =(,i{l7~x\7~9?a䷁At`^bi?CZ]`܂inNgs!l~3,c&&_$iOm"ԚshfIbJnܲV6>C4<7v 줳ԙ/u6֋yp1y?,P8ViiB.8*[k=8?zsnMsEC@3-|f|9*(Μ]?qƻ04Hئ91qIP; >Ϲ{gޓgyYu][ו" /6\[SoڿBw ZG3^>*01]ïTm=u!%UL\[G'þzWg 3b:n2ݡPNcu(;ez]a{V?ƕN0zKsD)Mu[*Tߩv'c+ wqu;A}lO'XJۇΗ$Fi+@E!FUZfS{B'Aɉ}L;4y t65B yr/㋞ё~P(bln 2Ѐݺ8p<]TvbCUrqW#_kň?P޶"K1: N-x@xf>Q\AC9?vqWjЋWm,T+_JZ LYuQżx9H\ʢKnn $)@gBU M pfZ3iI߯ZNQHדs?,c2^{deoAYczL %0@؈uw(ti:W \WP@G,) -ZU,r5Ma)4$9{MUׂ^6&J1/:)τFBî50{@k>`p}ɦǖ[cU\!uݠ?]vN->!v yqqB urvz9+rRBA3R"Փ)%h3JrusB pgdyo+A$4d0/W(O >>Yd|$T@uЧt0DE]$z8qɍe&gXh*G=Z]ŋ-]JU e{sRB,'/5Ľl,_"*g '/56zVv"6o>Vu;bUCU<}jK $rQt&RƗ(Z (wvTt6K7v% XFQ]ܵ UL ,n|f,sTcV0ECsL;1=1xT)Y:p*t/¹ 2-{ɼwf_j8ģ3d^TJ sQ2^m@}@"7z,[ @m@,dTR{x)ɖ7/%3ù9C[~zfuTUsҍS۶s-uUNAX `t$eE[(Jf4V>r8cxӫGx-Y,] I- |ۂ>fK~r/YŝL*|;9>uӞ)NL|=m_Z})JNe˦vBLqKWveScf_ߺ^7+lA 8ރJř*kܭ|KM^&,G 1۠on>4'/o:]f)6B"lΣ.!r,)'o~jA^sC0h>d*?ޒ6fow9E{N9]߸,a`)ck`kF{A6$bXb⳸6ܻVJDw3)<πEߗ. fSRj`f?\Lbԏ޿NJ3 >6B3%IG{/4;U2ZteUr3h8"(Vl+&-3E#l eUk!̂ ^E(8wpt{(bֿo9Z2o$, Rn %ROv]&1Ϯodt++7*Frtc 6/6HaflA"rxE؆;yaKh<ܗWQ<YDzY"9欠C̴|0t1 UD3;8qfצIC]@*#5#@Ifs-aI3y)zqbTN53%W>W݃jx=ޑh4.A~uAhr1\)*?_ 0Lendstream endobj 42794 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42795 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42796 0 obj <> endobj 42797 0 obj <> endobj 42798 0 obj <> endobj 42799 0 obj <> endobj 42800 0 obj <> stream q /X1 Do Q q endstream endobj 42801 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42802 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42803 0 obj <> stream H[+N>Hv|Kn DP$ S]&$e(߻.#i0<>..MW?κ|ׯ^|ՆhRlMYYg͜iMvS ztvn6gon$w83jInjS)LVjެn_y뢫%U]ra.IS&FǷY|0.7AF3odu(OWBXf?guLZ0. SzwR#9M (9^jDyޫ*}J@>*}J@'> O*}*}*} җ*} җ*} җ*}W*}W*} *} ҫu`h|m?e>T~ |uN)G:rЮol>lgKw?;:~zCY^M&~~%>6pƓ KgYƞcxsHymVf~.]ewstb4ܝψ}FT6}vTܸ's6)RgC4yM67.z:ֻVOVUϷhou~7[6~m7[vG{Lw@~pT|\"X-:f O̜9UΜF_K)z@RRc x{1TԘ^^jL/z/5}SKjDK)zARRc xG{1T#Ԙ^^jL/z/5}SK>K)z@ƔQRcJ{ն=_'gV0.6DOc~]ϗEc{xM0lgO:](uլ]OG)Z:71[gvngYOOW)F{,d])z}Ϥӑ<佣+mb慥{xC&|en6ݿr:6_^b;ǭ{짣G!RNQxC >m#-++eߘ]]¯NZJY`ގhO/د%z;[Utuz077mX"t<}tu].]::}z)^;txδ?PxŃ+~pu)9POnh(cOOkᏣ|v]dm9_uC _8|ZZ3KEE{|?t.ڷ9`}>4o_7S:/zWiQn0517M,Ѕӵ&qA>-~/4$u|Nz6-0\ڋsrBvn6U{;::*|S5W^QyEW^Iy%W UByT^%*W*UJyV^5𪥗ϵԘ^R#/r/S=g\N;".VՎWRg~XGp;~4nl*=<lqu4nf endstream endobj 42804 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42805 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42806 0 obj <> endobj 42807 0 obj <> endobj 42808 0 obj <> endobj 42809 0 obj <> endobj 42810 0 obj <> stream q /X1 Do Q q endstream endobj 42811 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42812 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42813 0 obj <> stream HWk۸_A_bzCbضhMIPly-Jr_KQ2Ͻ<|Kyӱ/~,b^M{ 4_Y)H&ǒ5EUAJ8]xS<]SXS?| ^oU1@'3@NF۞Cʺb2BUm>oCVÔ0\lP:YqK+.L;P9#M1Y sH[~ޫ=ݽGBXtƘθY]~1lb{1>wgCdW&"3 g#gQ 1d2<&]C`b1> G˜ea XB,YVLv!|$KO$KO"+O"+O"+O&kO&kO}L=1>DŽSO}BO<)>ԧSSO}F<>BBYAc@Ře1,µ,_=,W1`Ře=Jµ,BZIc"\1"{k1fYzϵp-ƀEcE\+ b̲k%Zp-,PVŘe=Jµ;p-,W1`Ře1fYzp-,PVŘe=*µZYs"\1"{Uk1,µ,BZEcE\b Xk1fYzϵp-,PV9Єk1fYzp-,W1c Xk1fYzϵp-,PVb̲k5ZYs&\1`Ře=jµ,BZMc"\1"{Մk1fYzϵp-ALcb̲|,_"hmp*&xd$zC{]M`FU\uy-ʱS̬R.|jo'ط3dž - J/@^LSxS1F-W;:׷ rlȶW$i?{+{LQaq([~SjWt!$L╨c!B<)qa},:}=w-Lf$M$3?Iq% x;aIes+Hb̿;,^pD~w"%Tlr3O0oଙ7݈<9N&XtX$&ыw%5Vzhl&tg+|h4L:\߮‹XOyws߼t),y{Xx-cADTײ}?ڽ~)tus s@r!5x_-=-z~f@k\`E)QxًۡŝͶnw#-1z.UǃI `x'`%N8nVp났X ɕ8sJeaTJ{?,eiPݑoFuCy ܴ3V,F'\A=Ke?k<fpLZ͡o.Yds$]D&9hN=E:Ϯk/nWVɫ[pd:Ziφ\@7 tFru162ұz>k9 ~bjMOe;]{yʶ+@%I3h[ VW >־ 3^)HTOi`Qqо >Þco yPXI=,d##qu ݥݸu_ˤq# w ƹ #B\2- > (eh{=.j{e#It#iU/+~u`f?qO)Mϩ{}chI)jgĘ~f x@q ?Wj!KFPr*D?]]#}wBBp[KzO\ɖ.?}hduje5/!E^*c6tm;ru.L t97A ԸLiڧ4_~zf GusZ]f8O;phRO~x9|f3NƳxq.n>'͇A~B`oyœǂX_QNtϱ7sWxن$gx^]}y(T3nB5Vlw5W}R'&Sn VCfE?@3LmeWB[VmՀb9Z(˺o-#$hq%e4ĠnوW||7]̟OX*1iv.3#P ͆>^BsYa mғayǹx\nG[K'_Kn#ۄ͝MC?N󪠢Xsc9v2{d5ќ3ްt6ºDk+b9r),XbU*V XbUU)VXbՀU+V Xb +HkإYR#WXbU(,XT ȽX*^j,{r/5vʽKހK]ro@.R7 Rc`[{KF.{ T-ȽX*^j,{ r/5vʽKނK]roA.R Rc`[{ TȽإYR#ȽX*^j,{r/5vʽKށK]r@.Rw Rc`;{ TȽX*^j, ^jҬ@3>I oyDn|Y7pi[N}3pnclwٷ}⤭Ew/rsz6bzZp~LMΊs?lǯ'Ս65Yߑy=<7q}ƷNժizؽAT^oڞ4v&7yqeuciٚp),Xby+V XbU*VXbUU)V XbՀU+VXdjZ,[K *B `2ro@VR,{Ų ^jl.Z,[K@VR,{Ų ^jl.ɲ Re+u)ȽbJ]r/XRbK-ԥX Re+u)ȽbJ]r/XRbK-ԥX Re+u)ȽbJ]@VR,{Ų ^jl.Z,[K@VR,{Ų ^jl.Z,[K@VR,{Ų$˃K-ԥX Rekzl_UwrM=S7pQݝcX>(+FIݿ.&oQVsMu捻ز6wC+Ϳ !ׄ"endstream endobj 42814 0 obj <>/P 591 0 R/Type/Annot/A 42815 0 R/Subtype/Link/Rect[93.6009979 552.830017 364.03299 572.51001]/Border[0 0 0]/H/N>> endobj 42815 0 obj <> endobj 42816 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42817 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42818 0 obj <> endobj 42819 0 obj <> endobj 42820 0 obj <> stream q /X1 Do Q q endstream endobj 42821 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42822 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42823 0 obj <> stream HWkoF_164lMŖ|Ch[E9UaH$9sQ2qcv/1bJYڽĘKXcpZ@k%,^ցJXcpZ@k%,^ցJXcpZ@k%,^ցJXcpZ@k%,^ցJlxZ1K@k%,^b%F,Z1 WcpZAk%F,Z1 WcpZAk%F,Z1 WcpZAk%F,Z1 WcpZAk%LhĘKXcv/1fi#hĘܫZ1 W #hĘܫZ1 W #hĘܫZ1 W #hĘܫZ1 W [&hĘKXcv/1fЅte=0BȠXVZAiV UBi@TZ%*V*UJi@VZ5ЪVZQiE˵Ę$Ɨ5eZVi9唖Z*^bژ@%,r@%vYJ ^bZ*^b ֘@%,r@%v:YR˃KYZKb|Z*^b|Z*^b|Z*^b|Z*^b|EZ*^b|EZ*^b|Z*^b|Z*^b|Z*^b|Zc֒_}_}_}_}}}߁}߁}́}̵Ę$Gnr_,LN?eIΚk$ NYi"f,w#<=vy%ɡΪdrMd0/7/`C&G94C\Weĭus⦯?yW3}.LYtC2Gw4a| ~Ϗv]`D̝F붿{խ.W CV nu+SNQ^_} GѻfNm~g{/&? {gq UvsDkf$=m7w1˜E$C >sS{㈛^^<=79,-\V 9灣t+12=z1 -ڬ_wmfb(nؿ5<6NcCMMTlݬBI{l6)Vͪ_6Ŧ7+svEw3u7ENB̪9yvmo>=cc ج谑Ic[ipuQKqLY>]_=o;i ?/Eۙ Gn?o鯻a{4@EȊMY}"7ȚIɏ*/*#ؐKΜ^=ſ/&c͛~ EY{r"f/?^h5^M@$>dn0dv9'}? bpbZwжlw*O:_%3{>IYVZAiV UBi@TZ%*V*UJi@VZ5ЪVZQiE˵Ę$F, Ҳ@*-r@KށKY@KށKY@KށKY@KށKY@KށKY@KށKY@KށKY@KރKYZKbʽʽʽʽʽʽʽʽ}Ĉr/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-r/1f-^bZ#ȽĘbc +֟7Yc/J(opȋ,}#-»|ͅ.1YisminF붿{Vu8Uef]mݬ_:h.6/M;?|W/4iߺ'wv]VIN I@GN-;3S%=zbcz{}1&y"#z3U2Ҭ ==$ì{^w2@rra\㫲ȈQIl^O"wc+:ʾqd֊ĄLЫ &rp9? hv}PU!(O#hBsߘCʺ2^Z/.$UM8@Ķ Ū<i.Kd|)uH#B/X<&楥8k3e)YȴR 9jPIL? =a"QN- uEtu5/'pAH]p)bGGQ}ꕹ9 ص4G.QJk1i|06R>,{;72YJܷ?ҶQEEЁ*0)!ߒ3F]?~1~v>x* K(V[Nev”I݋vc=fww~87Cϻkdum{|k$HE+@f<1ih9ςinc qFvP&X!vAY4|RrT; XֵFfVXNnY > Y0XU e,M&!4BG<ƧWZ%ᖸ5Jh}Qj6H5zInJ>hR0^`iXױ(18)rq#F¤kdŧ94 ˮ䛤R"PɍU)8X5ˆܫ}h Z˶1r&xuQvv3Y !Uϛq;Ku5X-{㥀q>s˅K#n2Zf/ 5~S0Df[2͙/yVC܌d5Q{}\##yjætcY<8~^-b>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42825 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42826 0 obj <> endobj 42827 0 obj <> endobj 42828 0 obj <> stream q /X1 Do Q q endstream endobj 42829 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42830 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42831 0 obj <> stream H|W]J}WȬ?C>n6t}Dc`3[E7whpP.1?~|߼{7*e BLZĽ#?E<y5]_fm? ћMt_e>*aq 1߽%}|ZȲ,S&Wwiq0je)'*wMEm>D2sY'/,Q)Th m2!*)CNq8ǐ.cPp!PV1d µ>,µ>,B}ZAǐE\+kZC>p \c"\c"k} Yp$\c B>Pp!PV1dJµ>,µ>,B}ZIǐE\+ k%ZC>p$\c"\c"k} Yp"\c B>Pp!PV1d*µ>,µ>,B}ZEǐE\kZC>p"\c"\c"Uk} Yp&\c B>P}ebVmDU<#7ۘ?fq񦍒BwN'ʁ >^,Uv9tξ_T 3I0^4+ِnKl!2ػ$sB漛ۛF|Y/p )p@s+W~qOEȖŗM5Vn&fWR ùO1n`տa|in:OZKL5/ۿ.0CKc:FHW;hcɡ젲?Amv^ Wl0 gi`I7mtCB<*tܓ׫TOU}L}Х qNdR#$bڭzF/e4|QzM :"cOAhNHlO'wk_ϩ|ym~sXsl܁ ]y*ejUn eyYGWxrroYn<%%tw>Y_}e:TgɱsWg2<ӺYxpNzݸr燜uZ)-+$Sy(1&Jd~dzq.g^6GAbaoJZ5pzqe3 |f>ю@a\d#|lD8>WŵDW`܌匇+z l`W0yjs2dQ8q`]d.|1nHq!fsmĥB!U "b "b &b &b VFʂX+ bD< VA*XbD2UJ?`a,CVǀʼnX<ʼnX<%XgZ(_u!(lݕIZL_ZJCFԲcAۆ}x澘puF:R;̘]{SKy2c t)^fL.ˌ)Хw{1x/3@eƔQ{1x/3@eR{̘]{SKy2c t)=^fL.ˌ)Х{1x/3ẗˌ)Х{1x/3@>eR̘]SKy2c t)^fL.}ˌ)Хπ2cJwɌ(̘]C3՟$v@7?Om۱6yʌseF<|ڔ/gEh Oljrxw]7tN1t(,#V}HdSfWL瓽s]m>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42833 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42834 0 obj <> endobj 42835 0 obj <> endobj 42836 0 obj <> stream q /X1 Do Q q endstream endobj 42837 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42838 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42839 0 obj <> stream HWkoH_1 ph΋$ qr{ Z@>AHD(4E-Śa55}|W/^r˗\$JKu¿)_47mGI2uhըz57jk~,ԮI4M^ϒlV dRUTEV:TMg_;iTvu7Mό&msYž^M??ҢiN67h65a,ɂ#b :I 3KX{u)SKT6O:YIuRJ.sN%9 Lj%X`i-Y #,]kice{#½po{+; w½p{/{ 9p 9p p_p_p_%p_ %p_ p_ p/jV:1j9F,ccĒ9F,ccEP#p/րX`{QT-Lj܋5j9Xj9F,^TU1bj ZZ Uk@rXZcĂ{ZK{Z UkArXZ ccEZP#p/ւX`{QT-Lj܋j9Xj9F,^TU1bj-ZcĒ9Xj9F,cĒ9Xj9F,^TU1bjZZ U@rXZccE:P#p/ցX`{QT-Lj܋uj9N C> ; ; 9 9 #7 #0 D=0 D= D= D= D= D=h D=h D= D=*8F,1:-{r_UU9Nn,9ʹjvTG NWiXߚbuXvJ^Ng_46KD&-zJχzrش^fWC[/)mL=/uZZjw^ݛ.lg2{珯͞\} 0[⸻̧ˮCz}w?^Y ͒˸!$a.D/?twǯw|sԞ )Ų퇭omצ\5%K.70e63w>?Ipwyo6$d?pn_f1t7B7Z5KgDzu(OG,~Ns3l'uF{ȴ(R=?LB>mb[-?O+5޷|jNlhLS8in>NQe~>]߮9Kusۿn|dh3}\Ϋ:{U֨}׷k5̃jOU+DsV--SoJ]KZOh[qبQTԓKMP&f2t<+ھÚM/ tZ8'n_dg;@}'O^E?ҟ/&3ӥ#ׅɪdn:fzRmuty*tUV)X`UUV%X`yujcb[M]K ,-X`2e ,+X`9rV.X9`UȽZlKހs-%ro@j7 \muZlK@j,{Ŷ k.ZlK@j,{Ŷ k.ZlK@j,rϵVS`s-%X \m5u =b[M]rϵVS`s-%X \m5u =b[M]rϵVS`s-Y9=b[M]rϵVǮ۪5Z rEYm3T6Gymup/,UT)O]~]SJ]}Vݦ[o_yw_?G=_62endstream endobj 42840 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42841 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42842 0 obj <> endobj 42843 0 obj <> endobj 42844 0 obj <> endobj 42845 0 obj <> endobj 42846 0 obj <> endobj 42847 0 obj <> endobj 42848 0 obj <> endobj 42849 0 obj <> endobj 42850 0 obj <> endobj 42851 0 obj <> endobj 42852 0 obj <> endobj 42853 0 obj <> endobj 42854 0 obj <> endobj 42855 0 obj <> endobj 42856 0 obj <> endobj 42857 0 obj <> endobj 42858 0 obj <> endobj 42859 0 obj <> endobj 42860 0 obj <> endobj 42861 0 obj <> endobj 42862 0 obj <> endobj 42863 0 obj <> endobj 42864 0 obj <> endobj 42865 0 obj <> endobj 42866 0 obj <> endobj 42867 0 obj <> endobj 42868 0 obj <> endobj 42869 0 obj <> endobj 42870 0 obj <> endobj 42871 0 obj <> endobj 42872 0 obj <> endobj 42873 0 obj <> endobj 42874 0 obj <> endobj 42875 0 obj <> endobj 42876 0 obj <> endobj 42877 0 obj <> endobj 42878 0 obj <> endobj 42879 0 obj <> stream q /X1 Do Q q endstream endobj 42880 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42881 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42882 0 obj <> stream HWksX_q7UCL>> n|X`YY&=tj)bOէuoՍzW*R/^|u7.ԹSqfĨ4alT]*mUb>jrEXepQ 8LTr(SE_[=iz˻]bg&zjeQdnX1nYݻX굆^cs&QJG{?Gj&N"#`| srGGV8F,9cd1X1`qZK,F-po{ [Nwc>c>c>>>S>S>S>3>3>s>s^tVrlZKgrX=Lj%s̳@k9F,^րrXhgrXh{ZZ1{ZZ1bcZ1bcEk h-{yh-Lj%sX=< cEk-h-Lj܋ZZyh-Lj܋ZZ ,Z #p/ZkAk9Y#p/ZkAk9F,^ւrl8ZKgrX=Lj%s̳@k9F,^ցrXhgrXh{ZZ1{ZZ1bcZ1bcEkh-A Z1bI,ZK<ܩwu^@+ ʿՅF%iZ5Xz>5zPg&uao؛y&e=܉ þz\}~ΟZ7.F)Ͳ~PORf*q&tyhuE~ΩzjF͗T]yF#&mV~V΋~Y &wm?:_څFj/:j(NIx-CW]T0:{LhWщsjj]g|iՏfZjYjlԨ}{"N=Lz{DT:;(56ENO~xi~&6X]6{D=Ku*"M2ljNoF`yv5,ռu"_qnK~yWLo%ğGQV*C3+[5 V3GD`70OݞҍUzӳYs?u}{;UU9/S/:Z[mqIM(S:MFM9VebbtK\Aђaߩ{Cg{a!1b%rB-'b hB+ZJV"R hB+ZʀV&r h\˧I8F,1@K - 2@-D =LjD =LjD =LjD =LjD =LjD =LjD =LjD-=Lj%8Y # # # # # # # # #w #gsX@KށsX@KށsX@KށsX@KށsX@KށsX@KށsX@KށsX@KށsX@K>< cĒZy_Ap>7m@ A^Ls3U./,@Ge,9>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42884 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42885 0 obj <> endobj 42886 0 obj <> endobj 42887 0 obj <> endobj 42888 0 obj <> stream q /X1 Do Q q endstream endobj 42889 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42890 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42891 0 obj <> stream HWmo_0p]6ɇ H.w-jEL-)]#&Loj-U.|we&{dʨf4VQŤ*]f]W[- :矚OdBQ2|ݺnۃլIwl!0Z'DR}d0;RzH.sUߔꧤ%?i5SYteaCR5.XUDɉc$KNDZ2FFXܻ1<Vp{;N=p>A}KK+++kk#p܋PZ-2 Z1bIK,ZK{%h-Lj܋ZZ K,Z #p/ZkAk9X#p/ZkAk9F,^ւr,@k9F,^ւrXh"s#tϱ{KXbrXh{ZZ˱{ZZ1bcZ1bcEkh- cEkh-Lj܋:Z-2Z1bIK,ZK{%h-Lj܋zZ K,Z #p/ZAk9X#p/ZAk9F,^փr,@k9F,^փrXh" #tϱ{ WT?(˨TDz%Ƚ]>Ƚ]+Ƚ]+Lj%8F%rA9F%rA9FW%rA9FW%rA9F|%rA9F|%rA9Fw%rA9Fw%rA9Fs%rA9Fs1bI-ёhX"{dMcQ<{J'TeEz,D/:''rȌ[˜_vnU_rۮU֋[-|Zr=PnՅ a`ϵUny?~g\-t*IЁ\۪z=.-a&s4E臧q#nzĵ>qFknU?Кa;Z}Dq6-Ogd}rtJ7?]15^Ջ_>~Lk"m5ӷm'!?9їRԢlw>kg*}r:o[՛t¥n<6U.ڈ׼x9nn)$י4VS;Pݙ>Ve?C/wlxL>xu>COPOiӗvMq™almgj 0>Cŭ~@|mOn2FUV}Y}V6Tevq]]ΗɹGͪ,'Ά.g4zb^=.gj5μ>h^{jOBuF.MU#v6uY&rubߝ#GSCFoϏkg?л.|^4TܴO&]`-=6cn"ޛErQA4k:S_`\^2^تDҀr<@sMǓ&ɍɷsSN0BM赓E ;PBe]C! aesΦPKTVydV/޵[|PoVGśE.K\Ee4Y*'UUB+ 0A93"j]G7qֵP֬‘:gDwL'ՏȃZoD vJ]?ɘX\L=fIx@ g.`Cn ![7r5#^ g3y~gN. _Dܐ^n$^zC`8T cyFJX(cF5*;%/RE8hxz3mܲP!o-M"7 CTf8zO+qE䱺>sY]@l'uZuUK`f So'R?ĄwzT&z9o'nc&JkšOxpwavM'WL"y/@ɗo/|y<`>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42893 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42894 0 obj <> endobj 42895 0 obj <> endobj 42896 0 obj <> endobj 42897 0 obj <> endobj 42898 0 obj <> endobj 42899 0 obj <> stream q /X1 Do Q q endstream endobj 42900 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42901 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42902 0 obj <> stream HWmo8_2_.ib(n"Pm%Qϒ|Iߌ(p3<ſ]'޾{w._ "#L62V"JP(Ep]Wql]Yݮ\]\v}\.etD$wA")0*v[IQ6\\}_~:@uJMW+v823L3MweSg˟==gbXљֈ^!X1~Wl@K%E?`=kd:La*ȒadQ PQ䣈 QAQQ䓧6@)+kkk[[[ c3c}°O< >' c2S}ʰO=>g {O#ZjŨ峧6@16D Q>{jZjCSbTKmb{Uj Pj Q {OQ-!aV16@16D1=*FԆ(ZŨŨŰTRjZjͨ峧6@16D Q>{jZjCSfTKmb{Ռj Pj Q {OQ-!aV36@16D1=jFԆ(ZͨŨŰTRj5Zjè峧6@16D Q>{jZjCSaTKmb{5j Pj Q {OQ-!a06@16D1=FԆ(ZèŨŰTkRj Zj˨峧6@16D Q>LfYfDM*\VH,(MEgbY_C!ިt.ieW64w O02Ag'u8n}'c ہc=Q>mwy7}~43y0SbǙH'EjQ.!AJ>‹b=춙mݏMve{.efBL wxʫ8~Y˛%z,AⰧW e'G>ۛ\~}8&Y6f=Dd#4:> ul@jo]t|1&aŷs{bɇw/2 \.z|x Fj${$cذ bh%A1( G4tzI& +z}[4_8=Tۉxg; iGoѹ^i;Xp1Qx"we%^TSY+a>kXJEڕJj~@{1? 8UNPg)ݯ+dvk5nVTnNr;I)RzX :2p VDeH%mG:lZxGʆ}X$UpI&(6ԓ?T̵]tZ&ш2]u{WD"w]p5>.\;ǎwlxK1gRKF'5Ӟ6B|d5qW|Q8 OͶB;CNQA0t~;".#*a<m3 ۏzo1eD3b mqOՒԷϰf謽 =ہ#k^t}۔mn_ҵ FeUnr]/*PX vY;l Kg2$ioMAө g??dž!tEힱ[c<snu9N>޸2WUOr u!'yJ)dL'2C5BJU([A̫tРd7dD'iApiS-5 oۦ^ksoêwfm9«z [~$P2 {&}bk6-^1&nl2se}Wpu|?5<Ny﫢&yq㡓8!\en(9ܕ 3Ctt1&ZiVYhVx{|wK0Hȃ?{&:׾c9s#[?8ҕxIi}C\ /CvPbҿנV]\hpA#zhV`Xm7$uo;'^u "0WG2KrۙKr㍠Gexs%\7W̕rkm{~ŒТ@\V<ԴPH )cM,%պޙ98~0̧?9'V@ XYZ0-#XXF `YbYr ',OVZbk-Xc[{RK{+,{RK{',Yl 1K-", 1K-", 1K-", 1K-", 1K-"bf%,{RK{/,{RK{/,{RK{/,{RK{/,o0-=fŬP|=1ftv_}Gfw4/6ޣMb~o{u,N v>ܩnaxƫմKSrvSkuuq圎SzSmNϫm=Ttc6eV}xOzwzJ۸2 qo5x|*jռ~Ç~BA&z@}~,]m=Kr{[aͭs#V'Xz VO XXAs,E,#XXF `YbYr ',OVZbk-XcwO"{yoS{+,fy-b 1˻lKxY=eX{)[cwO"{S%,E,=fy-b 1˻l! 1˻lKxY=eX{)[cwO"{S%,E,=fy-b 1˻lKxY=e Y{s18|9+qİWkϷ_7_oCuYuSNqgOoan9^r۳iʣ˾y\pd7?ڴ]Lqj? |W OY;oL.24C_ fmj5V7jSkeek@{oϾ.Ok痏/^'lFJendstream endobj 42903 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42904 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42905 0 obj <> stream q /X1 Do Q q endstream endobj 42906 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42907 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42908 0 obj <> stream HW]oH|,sh?,؊fp DJ .߯, &U!E۩WN?]X߁v FQYjĨ >:mUӫr]tշY7m)Z N/>u ΂әJ*0I򠩲8WMMf_{ӴI"]Eij5ya8|?P389b7r-@ql쮸DQOBmt01r}ȨGc~X-Umg#`| |B9s<2Őŧ,!+XԻ<ŀe7{[e2Vpo{'w̽;>'}"ODp0>eS}gs 3>}.ϙ{/̽ܳjFh-ŐS XBk),b),CFh-ŀ%bܳCR Y{Z#bܳZ!KpZkR Y{Z#b {Kh-ŐS Y=ŀ%bܳZC R Y{Z+bܳZZ!KpZkR Y{Z+bZK1d YkZ!KpZkRl8CwO1` {!R Y{Z'bܳ:Z!KpZR Y{Z'bZK1d YkZ!KpZR XBk),=kZK1d YkZmDh-ŐS XBk),b}w*GMvfFi5[~ (m|4#f n2J/'/,oڇy0gt1ёQxSqZ|\E]-u?V:"а<쫥z~<׻_'oήof' |x>O^r媕+'jDJrX]78D(5I[R?o  ֶ][mC8|B= dpU<Բޞ_:$*-n,\U K|~.hdoX~oΦԏxsS.r*IJuRe{j[vm-|]+yPx?9!7ƒWoQt:'$)o[hj^baC'ew-!yl܆5 >'xfmjtm8߆,#ݓG˜zT w? n~H1dyŴ嘖Ji%V´RA+eZ2LʘV&heL+r Z9gZ^T\bZ4҂fZF2LZ,F=Ő%h!CroS Y˽rO1d Z,F=Ő%h!CroS Y˽rO1dq-K=Ő%h[!CroS Y˽rO1d Z,V=Ő%h[!CroS Y˽rO1d Z,V=Ő%h;!CעS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1d Z,N=Ő%h;!CrS Y}"bZ{!k{SvU~=+m$!΢4wC[*Ȩ~Ph36-l~݈]v=uȚ|zjwSEs'+UeQnZU[N𡮫ve>/@&=Mŝpy؋gr8٩z]Shɔ2C,0skypZu依h(;|ǨA2~>U(g~mpVt ~X]X-˺Vwh?;}PjwGqnQm.<aD݈:爩MdL7tq{e-i,,'}aH~ 8^%y(%)(q~<:\=ԋӘUQXwG#Ѱlۺyև:ʓؖ0]<;ԏ&9;~z~60}2ӴZ( o΀/S2:Ñ6I-v<;ĪzY-( N=]? œqDaNG.S[bCcfimIXX?w bn:>s&UhT݉pXj{a3{G7;;]36 a!C`G_9xLY;lpxɈώ (ÖՕߪazb7Ag6][[ gu_-3$lOSQFrt0㵲C7i2ٍ/*6íOjh}7qlGwçmoNs7cC^f5ݶa xW胡H|뜦@6@!VlXv}&) kyrv9[1.xGc.fw N&'tQCD@DDxIji%bF)>Su<>,PPbWעc3eįoyρ-nsȇQ@B}h˼U<3s}f>.gJdDO xlSUC*Jzjo]Kң׀ƕnyjx}ޜnO>eLK"'Ljdɑu: ږ©PW\6F#kA$&16auM5l)\X ɽgVV.q 08 =gi== .ku_ۜAF:B GX?MhPJ fo7eX}L4{=C9 ůUydi6 ]Aqvr9r0|׀82=M4܊r8shȕH# ɝ<JD$1WB^߻m[>/P 1070 0 R/Type/Annot/A 42910 0 R/Subtype/Link/Rect[93.6004028 221.908005 255.804993 241.587997]/Border[0 0 0]/H/N>> endobj 42910 0 obj <> endobj 42911 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42912 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42913 0 obj <> endobj 42914 0 obj <> endobj 42915 0 obj <> endobj 42916 0 obj <> endobj 42917 0 obj <> endobj 42918 0 obj <> endobj 42919 0 obj <> endobj 42920 0 obj <> endobj 42921 0 obj <> endobj 42922 0 obj <> endobj 42923 0 obj <> endobj 42924 0 obj <> endobj 42925 0 obj <> endobj 42926 0 obj <> endobj 42927 0 obj <> endobj 42928 0 obj <> endobj 42929 0 obj <> endobj 42930 0 obj <> endobj 42931 0 obj <> endobj 42932 0 obj <> endobj 42933 0 obj <> endobj 42934 0 obj <> endobj 42935 0 obj <> stream q /X1 Do Q q endstream endobj 42936 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42937 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42938 0 obj <> stream H|Wkoܶ_2CEHE-wgDJ%Ekx<" ~ waw?1S!2L g<3%ԧPy3B} >'P{ B}/^ꕧ^=2´.p!Wb"\bջ|.,µ.,BZNŐE\ ׺׺k9ZCs-'\b"\b"{k] Yzϵpp!P﹖u1d=rµ.p!Wb"\bջ|.,µ.,BZAŐE\+׺׺kZCs \b"\b"{k] Yzϵpp!PVu1d= µ.p!Wb"\bջ|.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] Yzϵpp!PVu1d=Jµ.)ZCŀEŐw1dUaVao7fCnuDYMG,f,zYt2bUsp ϋl6T?e?uNbpSQy{8,9ya &c"9p9˱nw9Lo6ƱbE=[mS]Ʊ2ǽv{Ȝ8͙Zw6K}xЍnrZUvß64)a Hipx_Z_Cԣй=5I'f0v64o!% rVo']IIR8WksaTY-60P>غ+3*pBٶMY3aΎ>u۱KbQΒ/jA6׏hG(x414>l˻lڴ%$|_noW*0;$5Rs.Qàa,?4e[2NPbi7 ii}V\cכ@*UTl.<8QgCTG5ϮKll.V*a2p\moAVa"NL/L;O"UxC ,b*Qg#>Geky=w7ik䵳Hf>/ ½창, r0ZXJ*lOV &ԁaMP-xl+t:VyXU.4'zL s(351 v*$\#hrbvȫVSx_}y@GU4MϦsߏ*ڵ+4tg=\W]v[(M@[nL܌v5,Io~]F;56ՕrF /~d: DF8in+x [=ZT,tûVp'Y*.zM` at'OtAW0++]յCG(NfS`{tx; ,|"}NWM q%3^-;*Gt?_q5R"_$,lΆЀ jꖿ'EHȌ qDc}ٿ+Y'Hgw)Ղ F,4ߦ mRʒ2ar\|r1toױ6'o{!:t2=?ʺ)|)Q R @e|=xrIӉ.}7{NRѵvD1=Ì\{UEiR {G,5hҲ^\Jfs(K3b=_ͧv;3~\Vo4V!C{Eo(W ,.$+i&֚LyN'~ܗ ο,6 şN5hoo:v|ՊeE@twpf܉6-߂`r^|<6)Yn(B(O9l ߽+:k_,Sެ5LXQ|ѕh=zҤHlF_Jx %֕ ~k z|<'7.SF`PJyvN}hWMݽ%`mBH6ZY8sE޺vJ OQS%#?1<Ѡ!!}K}8ݡqWt<~cte=͋Jw[DqgN:> 8LV(ܗdKP^ x/6SE99Q.Xuk`sPeEOh꫓}'<ŔЧk9fGLO6vendstream endobj 42939 0 obj <>/P 407 0 R/Type/Annot/A 42940 0 R/Subtype/Link/Rect[93.6001968 663.229004 347.123993 682.908997]/Border[0 0 0]/H/N>> endobj 42940 0 obj <> endobj 42941 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42942 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42943 0 obj <> endobj 42944 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42945 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42946 0 obj <> endobj 42947 0 obj <> endobj 42948 0 obj <> endobj 42949 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42950 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42951 0 obj <> endobj 42952 0 obj <> endobj 42953 0 obj <> stream q /X1 Do Q q endstream endobj 42954 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42955 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42956 0 obj <> stream H}o秘ARwH spU\+0H;Ym"K9Z6#KR!B('0 ud+2V Fn^^OmH-yQorXn+ȿQKz/V{P][~S7@qo芲j?i0\4Q \a ߪ{y\A~]c|h+pơV~ߏ5v f7z?t qM.k| ?_hXRlFUcCq{_`ph/1t KE@~'fCx}[ Ipy) f)kư+ > =fnBX.Nhݍщ?x'JV#l,`߹v-9q= !|Jc[]hB& $N%].֓j{VE^ͫl8REy X\N-8QG| Vq7`446a#?JXcUԽX]JCr>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42958 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42959 0 obj <> endobj 42960 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42961 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42962 0 obj <> endobj 42963 0 obj <> stream q /X1 Do Q q endstream endobj 42964 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42965 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42966 0 obj <> stream HWmoH_BZir _zV: AWHhv$fgq~%c?ONfRTWWY׫gϦ^R^F_"bU86Ό3FuUQ5Qn"jMOŬV/E˪h̨U4J:aDy僦ʓBhR1M4;e\7˰בzP:Qu)QW*6M>G":|9^r< Lj%X`i-Y #V Xܻ<F7-po{ [VwpOOO τ τυυυ//{{cȀrX= cĒ9F,cZ1bcEk h- cEk h-Lj܋Zh-Lj܋Z 5 ,Z 5#p/Zk@k9,h-Lj%s,@k9F,cĒ9X#p/ZkAk9F,^ւr,@k9F,^ւrXhX`rXh{Z Z˱{Z Z1bcȁrX= cĒ9F,cZ1bcEkh- cEkh-Lj܋:Zh-Lj܋:Z u ,Z u#p/Z@k9RZKX`rX=Ljܫ.2lںD:%rB-'R hB+ZʀV&r hBZ*V!T8G|B<&I&|*p+|OD.qpUsgߕo+]RLuռԢVuת[ɣ<=wl;0kTTAnSWj6koQ>epX~泛<7fp+sw'/=~Gs^!ף)&)Ea7}~ >͞vaW^8}U_U|q6.ó nfckz~ K y#og݈n=ToN^hVl?kf )Qh\=`F&[NF,ِuW55˗G,><}18<<>1|b~T?nx ?N.&]WͺU&=: ?\g/5JusE{sy|ixc`d_H(v"ilM ÙFoHG"=:qXZNh9V RThe@+ZʄVr\h@Z*Z^hy幖ILj%8XhiZheȽȽȽȽȽȽȽȽ cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cĒZ ,{ h;{ h;{ h;{ h;{ h;{ h;{ h;{ h;{ hܧ #X`sXR{9ᅥ2*H*|lpY> ׽dM*0򶢫Ŵ,8nW~3 1|r}m=%M&Wm|ۺY7w|ǜm>:*L6dl[f Y|ĽZ<^ľ~vnmrirH4glQGnt'v8z2:릫]Lﺺn@X-c~v8˵va~>:VOEh @Ќ5.fسKb[dJD"B6@ah]u~'wnP͹nȋ`Yc~^yo~T~iUKNKLT=&b7eQ{0VRuN.zPcodvspi LHafЧk K&֙3frZ_7U}z`G1LVڜ]pPw^HSsi~i ̞&U"Եg6MQz} ꪪtip:e @G6# ~8k} (l}~%&ʻ~(G&FZ [BzS:?Squ]~{]7aݵEn1E.ځB|Y$ eGBu+Wn =Õ8aXF2텽FQB{:~l=?A{[au:Sm=+"$)bM %Տ[~DJ%J.s3Cװ=(Nԯ^TWuwup`nkuJPFrA&;:f(TW.*! f5`a%j5@\ȏvkwZڭRo.p >6ᷯPbG`_Vs+2s9BPƣt_- gꕫ%Nze2B<ˡ,0~%,G$j{f!w9[;IM`l+i̱MwP* 27~p'/{"G6\g?3KV6Vk)z[y?e¼*QX~AugJ6c$,>0=mڂ$ن-|oR8%NڕY*j9Q1ots\!ӎ*cd<^W Ip_ud%SC@0_nz#!SOW^KETQĖ5Aq9/cc]:$FPq\e+5HEsJXS<]*OUx :Ʈ 8Om@TʡwE`|?KY{%xr+D1$`Hi`5FK‹]hi$pj#=lq%:f{\K3 T;P>mͽ#ڧ f/ؓUPۗ uV@m_lQѬ{zsv:fST$UR 9? b-_uBhB}@3%w_~f+ԣ$Uj~;44Cy-hN{ *|?$W흨 /%M!ehJ,EX y3.mS݆!ߥ*.LI@ڒbtR`V"hl Ƶ+ g7GM< ]e 9|~ F7t鸉"?>{+`¤.-1ƶr;Mz09`²'0&=~x endstream endobj 42967 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42968 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42969 0 obj <> endobj 42970 0 obj <> endobj 42971 0 obj <> endobj 42972 0 obj <> endobj 42973 0 obj <> stream q /X1 Do Q q endstream endobj 42974 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 42975 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 42976 0 obj <> stream HWko_'iu/.ܧ}*OTp2>c3}9s s}!/{/̽ܳj!FFH-ŐS XBj),b),!C,FH-ŀ%bܳ!CR Y{Z#bܳ!Z!KpRkR Y{Z#b {KH-ŐS Y=ŀ%bܳZ!C R Y{Z+bܳZ!Z!KpRkR Y{Z+bRK1d YjZ!KpRkRl9!CwO1` {!R Y{Z'bܳ:!Z!KpRR Y{Z'bRK1d YjZ!KpRR XBj),=KRK1d YjZmTH-ŐS XBj),b}w*nW2X.jy%q+G2,Obhl-JfV}Pf]Uڅz]w볿8]踀q9aܮz{ZmJqpW~jwo}yb5yjB&LX<5}z$|BOc7?zPZ஦%(+TS*f{?V2t(g)+w3\ʙV!hL -ϴ婖IŐŵ(,-hi-ʹe ӲeZVвL Zi9A1TJV*hL+X)ݨuO1F-VF{a)h7BS LE1dq-a)hBS ;HAսb ZPPbuov}{+=ŰX[) uO1-VV{a&hBS ;5E1dq-a&hwBS {0Aսb] ZPJbuM{'=ŰoX;) uO1-VN{a#hwBS {E1dq-a#hO_\(*l\xS۠^:ŏcelc(ٰϋWjtfX #20|ySD,|f *lnG0@ .gJ푡:;>YiG"39?W!Eٷ5mV_j_?jSޜ#9Ty{7fX<,uB uǛ0]8z2<afIcބ+9խK0pvnR}lj5 5؏A?p s?Ip)hߵ<)^G'qLـ8C9㯢ON IN4'%yۆ_! WDR:t(.L,@2XHAF'e5s $٦[o]볓_ QlnDb5ǒf]Cvr$)_sپg_N\ю5RU3#]dl@*t@KSrBGFG`:Q=vݙZ'Kȼ2O df_+ۋO:: 3~p2PY$8z0 7jn""7iʨ!Lsz9k1$Lr_gDQjƻ/ \ℋ|tr^o5]/V 1 6a w !FV=a&O!I[ LƩ`q[݀X./'՞ 1TZGOӛMZ }?r!{1vzMKDp<63`ٗ<,G CZUwЉԛ"'M\Id6݉U`$"0hB{]2"U0D} &4Ky2*j0ifÎ21[5~"謢p⭷::WAO3=ULLL( 狯|CPF1E$T Y +2̖z$ mnA^n>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 42978 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 42979 0 obj <> endobj 42980 0 obj <> endobj 42981 0 obj <> endobj 42982 0 obj <> endobj 42983 0 obj <> endobj 42984 0 obj <> endobj 42985 0 obj <> endobj 42986 0 obj <> endobj 42987 0 obj <> endobj 42988 0 obj <> endobj 42989 0 obj <> endobj 42990 0 obj <> endobj 42991 0 obj <> endobj 42992 0 obj <> endobj 42993 0 obj <> endobj 42994 0 obj <> endobj 42995 0 obj <> endobj 42996 0 obj <> endobj 42997 0 obj <> endobj 42998 0 obj <> endobj 42999 0 obj <> endobj 43000 0 obj <> endobj 43001 0 obj <> endobj 43002 0 obj <> endobj 43003 0 obj <> endobj 43004 0 obj <> endobj 43005 0 obj <> endobj 43006 0 obj <> endobj 43007 0 obj <> endobj 43008 0 obj <> endobj 43009 0 obj <> endobj 43010 0 obj <> endobj 43011 0 obj <> endobj 43012 0 obj <> endobj 43013 0 obj <> stream q /X1 Do Q q endstream endobj 43014 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43015 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43016 0 obj <> stream HWko_1q`H#΃ #Fh˕xHJ>#>$wn8-kƜm^ԛ7o߿ &WzgN'VӱUmW5An*\z(}[ʾ֪_邷biZerH*MFZ8X6ܜfĺw~SsGalU8(tak;-r>*6' =eDu8mwe" T_"QAmcЉ2<up1䜓#Q Yu1E0dz72Vpo{'w̽; s{ǂ1s c>'}"OTp2>eS}gs s>ܳ!VH-ŐS XBj),b),!C ,VH-ŀ%bܳZ!C R Y{Z+bܳZ!Z!KpRkR Y{Z+b {KH-ŐS Y=ŀ%bܳ:!C R Y{Z'bܳ:!Z!KpRR Y{Z'bRK1d YjZ!KpRRlx!CwO1` {!R Y{Z/bܳz!Z!KpRR Y{Z/bRK1d YjZ!KpRR XBj),=KRK1d YjZXH-ŐS XBj),bsWwro|uʨ68SpLщJRwux٨ŹMmxf>Zf_,3UgWTYr3,]~;t^rwW RE; 1r|k⣭pьڧ>7\5l%#'%sLJaYzZ0tsw>>T^M7th6վ.a'8[nߺ}]vk^-fjs"Xa&Quj| )гON DmPMM9$mYgxH&=D؏u?tO%t4Q;L|άħG97(,) ,;j,b1[ȹ-Yhր~ZvapPmNuծWU*qH{3g:d^,.YjGabVUgPouF}\=z3 1A%7 Wظcǭ>gnCV.3 G)զjረoZPAi4K/g)+U2Uuj]uQ}b}U]6ŮT/.$Ae6NEWztZřu}{ @/m8z1*387Y@Ez#cEs`n5hCrp|Zk+U㴇!4}s9S ~[V=\jk^X*ܱdGg:jVHSE{>_V alu>1*ؼ_sa]ڲ' 1}<7׭ZB嵲ՙf vm_; k՜^ڶ}ܜcUo1'3)Fm o?TRݵXh?NpoNK# P} F"Z4~>7cT9+7gyV=Z5&8xa"8Nljƻm垶׳UYBF%lfҥM&S6,:Euw*tӋ}ʒ{Ipk#u1@?Чqʒ+gӰ?Fg>\~?U! |E^Je{3Ƅ&fݭBRP)W!o2ofZe@-Z{2wʗ2Kp%lM'8M vRr f0rYޓq"tOΟLz!dzҐY<U/u@u'Ũ;+8$|1+DLf(^{I d}r ޒT'PuĆ&^; fڠ ot%Ug N'*D>%<PO$iP+&ͦxvY),~1;i`JXDN :DH;"Hnhsw=W,&endstream endobj 43017 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43018 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43019 0 obj <> endobj 43020 0 obj <> endobj 43021 0 obj <> stream q /X1 Do Q q endstream endobj 43022 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43023 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43024 0 obj <> stream HWnG|C0eԷv%AdXqH$e'Y9R9dET]]SEv_sݛ/.~yc߿z:OM^,B{m_MXs8Ӛ_jo47Ͷ]7m06қ]j\Lݕ7L&65iVfNާbn:3yszw^ns[UgEszY6)r[dZw/[UNXӂLBW>wk&Clů.G*L\rjͩ٠HcNbrNƬwy^Wp>A}T#pϕϕϕ///// Wu['Vb%F,Z1K{ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZ VbUk=hĘܫzZZ+1fi#hĘKYڽĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhI{ Vb%,^b{Z+1fVb{Z+1fVb{Z+1fVb{Z+1fVb${ Vb%,|5t!P._"bՀ"ЊJ+r+hJZ*VJU*hJZҪVjU+hR[%1fi-e h9倖SZhy偖ʽ6f)-{1 h{{acʽ5f)-{1 h{{Nc c֒_w}_w}_d}_d}_Q}_Q}_>}_>}_+}_+Ę$rA%rA%WrA%WrA%Ƈ|rA%Ƈ|rA%wrA%wrA%srA%s%1fi-h uVu4 .ɫir1::{|V"3ZLhmlw%ta1ASb$X96Ղ~Yݾ]>5??5۶7۫ңsNcg䴽>'Wx)Kcg ̞Esn4.>̏HX櫿v_flJXEWvt4/pXh1f{ӯ+yasNi괈ܵMϷ4+0:*4> g,}7M76L!i۵vjl.+iqܞfleiǟ?Mj2;Pu=̚w>܂Bl7W?]^Ҕ}MƖY>_4cP>T6YvX#dՈ}hnT,6]GOtf-Gj6>>cUdn0su-,iYrz6eqzIOk~p}a c.ގl!҃H\ f5{N˻E_a8<׵XM?}WcV/v9iӈt7IhmA=go#$;7T>z!a1o R>aPx U~<Kb̪KiEVZQi@+WZ9ʕV UBi@TZ%*V*UJi@VZ5ЪZKbZ#ZNi9唖Z^iyrA%,rA%,rA%,rA%,rA%,rA%,rA%,r@%,%1bKY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KY@K>KYZKb}}}}}}}}}r/1fi- ^bZuVutX5M.g׉; U"]^΂;:S8\LfQ*_w.Gj<YL ߬dY(mOAE5t-p⪔n7y\9v/Ef_6X }!m?0f%2}9p|R#e.T^q_nmOvbM~??-݃ʳ]]sޝޭ6ߎ͵" 7< )ǽ{l hd Ahɿ~8EpR,sPCb6_Y?<|>-ᗃ=MmwX=fRBH}Q/JU`7G* 悓2^K5ZeY_E^ʽqZuw?]%VdIx `YAO&OIDx_lTCoFvW[a#Ert@ nwY8s;Xe^Tݻے"ЭCGʄJJR$KoB=${ΗKdֻž6l äԖיD"7wNN#97T|*y+bf$xc@e.:t]@œ;LNQesQ@|9?F@XBU6:u[56wg]n0.Y" ި)*7#XBYRNg.Y-YEʺ_~8HTh a\ƾ\CkߞjFYTfMעބ")J|-=+,/uߐ'e^1F" {ϨQYܾcOËb/z wvl]ؒ%/7;jÆw;OsSw(.LoN۲ 5Ǜeֳ10#$>?|/}_ nendstream endobj 43025 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43026 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43027 0 obj <> endobj 43028 0 obj <> endobj 43029 0 obj <> endobj 43030 0 obj <> endobj 43031 0 obj <> endobj 43032 0 obj <> endobj 43033 0 obj <> stream q /X1 Do Q q endstream endobj 43034 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43035 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43036 0 obj <> stream HoHƿX!Te} CNjQK| 2ӚK^AoǩcgfR :4< #ٻSwWX~ōPx|^C1Aj"&s΂aOJ=)EÚw)E]Hc\]) 5 &ׄ0zBozK-Co cw #w>b#B1 }Lc>& CO}Ч>eIfZ-ͤkX.&X(=ּI-Гj&XCORbͻb \ =IfR5p1$I-ּI-Гj&XCORbͻb \ =IfR5p1$I-֖aR5pQzyZc \kŤkbIj Z'5Lj]Lj.0zZäkŤkbIj Z'5Lj]Lj.0zZäk2(=ּI-E.J5bR5p1$I-ГZ&X.&XCORkb \ =IeR5bR5p1$I-ГZ&X.&XCORkb \ =IeReb \kŤkXOeV2x,SBl[|iP-Qlp:y}BBtn(xKAֵI<FM!?I&GbEՈcDm͢(ӑ%ƿ_嫘4i #Mbذ3%/Q m[UՔuRJQbuh 1//p.ۭ9a]ɤss1MGr1_cXS;xSE]onnu{[--}qU.fbE;PgelCݿ(y]\NGٱ4{ >{+Џ%]+] g la#qWS]38:8:Pc骭jbO?bmU֛NC%QzSNnCbE>oZl^2TAiطFھ/:#6JBoxz߳Ruá߳qեhV.m;t"펠9H0nXxW((Os߉w)=$NFi6(V{/zp}DV4 MlOH^E]qF⦩Ʈ)o2lS꺁.fY ѷ`Ӫoc<;׳5 n';Pu 8fr5<_;v 9uapyoc}w}X籶Q߼<:Fߨ3{ X o\,n.cUctv}pmwațXn$IˍdX:uҪȤ+kAsJe"#UW[s{=A*]٬lU/k=͂7'"O^Rendstream endobj 43037 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43038 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43039 0 obj <> stream q /X1 Do Q q endstream endobj 43040 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43041 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43042 0 obj <> stream HW]o۸}ׯbm7iQ(6S\K7~gHJIq!Gsë~`ro,g W+ӕ BfZI>]o g-Kc6>nۭ`"ZqxHjX$g5aNV[lTQ\']zǻ+ֿdO9^|Y|UYe'u8"3n=r {L#9{v%g+ԲȄy ۤ. &ucL`x.#PhCT\h1*!J;1(A{A{I{I{I{EW{EW{M{M{M`_D }/ eľ$ؗ`_F+}Uľ&`i mD mه6@ mه6DCՆ6D# B QHPmhІ(}ZA6!`V m"TET+Ն6D# B PjCjІ(}ZA6mI6!*fE6!*fm"TET+ Ն6D#JB PjCj%І(}ZI6PmhC>R$TET+ Ն6@ m"GjCj%жMІ}hІ}hCT>PmhC>R"TETՆ6@ m"GUjCj(B QHPmhC>R"TE6!`V m"GUjC6фjCb PjCb Q1:Z "Z,$l7VkG-E.ū,E5_Wyld''^LT96IJ`%ZuV8}l6g;9?Ty&\N.''쐫\w̶gɰm3+6;j.x>=>n`Ă=56&U+Ϊ1B٘ݪ>"Ok9%M<]>tQtvC_hf_?ͲۭFt&[2%FˑEWE.q|u6v sgݵOf7ֆ9+bv Q\@p HPin14.!,&9/gfn ~tmIs V/7T—"S3f2ُFil*cvv.Ls $sgL'8$MTLjϭ8vtVZ#e)E5_w 9U8F\Tgn(ӔbD]1]՞ jn6;ְRximU6dݞd9zs"@I±U34lx~4.+s&Bv_KT"+=ɀt^,CP+uԕsKX+?aJnizU0eEse:?s^>w[w*L,#l 'ޕ/x{*Asjn77J[Eڑ%uYBݶ&L-#LhjEړ %g ~Bo6~ȋ#=\xv،y ( N9췲澚a=ba7*=r0Ë1Wȴ8sy8C^HU+M e0I2eDX.\ԸxUh+şp=/B̡m&I@!+O*=_l0>}`d?<j'WlRK׻gga_ `VĂՇu3, bbd8xb 3XmEǵ /hl~J_SΠ6q߿lr)g:&9 <C_v WŸOwEQIK7컭ރy%ʿPpʎW8665%i&&ϸr>%\}j3L- wUg.֚-^jBMEVM]X z>^y(V+sawimikr.tejMzTf<'g7޴oX S3/<`N{9lUnr]fr64~ppߏS dh$l0bζ6kD&f3I/_ͺ<7,ӄm·dyxގ35󙫠p5~BMƱ?q\{h. PN$Ҭ^nj] .Epе3qƫ7m +|Ev?{%!*mJ=T 8 a;Q}ٵ׋537x ^$NLCD()Jm*2r.Gf MlM'`;Q6 $sxSuùyKwЙ4K{_I3ajvRq F@mS7,_k 7s*~*Rqa TZy-"1$=HPg6In48{pFۛ`ۜ 4?s''LbD 0jt&,=N 64L)Sht1 Oٿ8&JΖH; 7T)))n/UvXL,`'d0$.fDžOu /B$u8r|c$U4=ǥq_}g%Ե-^A=J a+}z-2[:hOF34%fIbL8fY\;! ?؅";cq^==?~y~!N`,ަfv&fH/S!Fb'S3Ij,8X3yL5dPBc%P־Lcg CŨlCSL]+2ӊ.BL24 Wp!&.%~9 ᗋB.|N,O]"\ȤRîJyߊe3SQ+.D&s,G)481}}~:/Ah]`h潵1!v Njuf?l;Mzzm.8V;$³<GJgk1؃Tx 3K}M*U<ȞNH8;=ҳ>V]26{AiӏUQi]r^ *Z'vWFvj=h!eH~A6Ôa&F#4g+!G ^]6 |{eNdž"IE?q֝7_o7Bendstream endobj 43043 0 obj <>/P 405 0 R/Type/Annot/A 43044 0 R/Subtype/Link/Rect[93.6001968 663.229004 202.248001 682.908997]/Border[0 0 0]/H/N>> endobj 43044 0 obj <> endobj 43045 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43046 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43047 0 obj <> endobj 43048 0 obj <> endobj 43049 0 obj <> stream q /X1 Do Q q endstream endobj 43050 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43051 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43052 0 obj <> stream HWn8}žB"AI26Ľ'nV[onvv0ȴ|p<$O+x釗o^ )?eg8qS%TV}.H(~*7E[}/_6f_mv_ľ>SXFOW-L"r-IO:ed/Ϊ4_.vm?|;DzC'GyI j kxX[H&ފ/REt+ f&:r$R$!+bJE0dYE'I(bRzWz׌z׌z׌z7z7zzzzOi>eԧQ3F}Y>gQ>l˜bH1BZ!+TO1d),ƵC>pb\K1d1*ƵZ!QV1kZq-ŐŨ\R Yq-ŀŸbbUk),F}ZŸbH3BZ!+TO1d),ƵC>pf\K1d1jƵZ!QV3k5Zq-ŐŨ\R Yq-ŀŸbbՌk),F}Z͸b0BZ!+TO1d),ƵC>pa\K1d1ƵZ!Q0k Zq-ŐŨ\kR Yq-ŀŸbb5k),F}Zøb2BZ!+TO1d]3BjXFOK#kÏq*ԉ6Z$2N2-e&yCu7mqc>rS/7H"|\8y$Ͷy^U.1Pl\E_CT:L#qf?|-Ÿ,VZenpb{iVk1-t]nNs V- IO ]zgzJbk~Z-U]=aCq/O꺨:Y0JtjbW/V\4h Z40ѡ-wNWsl6n!!>\"10L>Qիͺz)s "lT Vx1y|JxC1\7s|SuFϣNW$g<; ڊCV$2:bM4 0sm)mb)%P2iAxsT[vN|oRO&z zׇߝ3ed63o?G13%}"M-;3NpI.#{LI: %K ۗ}k``DD"u(vGY>hF6jhO%V-n/BSHNi%7Wnvp:< &jxj@.#W4CTbl6]nH%7O%<%@`SI'P}uI*G̬fVb46TTj;ۀ퐟Zm9n 8| yجڜ?0&={Zt}2U!;kgXWiqv6ԡnE Wq˄;)ibB9׃uyXro ~á،~/67r"ӶrKϦ|-$SICEk5y?|sν'EQ]cvVO45p{]V:EYi rt g?/?tv|I{d3@kHW jM[v=44yAݛ(K$ǦP:^ |ߎO}Bb}Y+ۊR o.0ka, *7#?P wpG s ]5tNY#Ic8K/uy6 Xw&6B{_}]Fٿ.Ɍ4d_7w5i/ȥM1<N!^_&s~PjDilm2 .6XvP~X>~O*68q$t{v誄-m;#U>CrL tX?Mcͣ\zCjL [iIl7͘5f۔]S#<2N f'mL2pZp&هՐvfL:7d oPLIM(]O3?X.=lwoڥ=:eZҮMJJ`iWxX#_p4#&h5u][=}٫'2NP&c?EeUld=Ƿ.ꫲ:h 뫡ۥlΓn߬hW TJIqo.1Z*tnƦvx0P*M&sx؇-ϲk H@Op`NT߽=2鯛vOo}:. ͣ3eJ i cyۆ_ёAį1(2v(:tH6bHv>~ILt;uz@lڽ7 qF[z7 vvC+2WGRlS!3o8ix_RW:BbԎ-hcj97SmA1tE}2Q: lu -[)z3b )$&!dfږU-vO,58ɝR̠2OKw :~\r檅yB+UvA6<4{Rj%)>/P 892 0 R/Type/Annot/A 43054 0 R/Subtype/Link/Rect[93.6001968 663.229004 266.135986 682.908997]/Border[0 0 0]/H/N>> endobj 43054 0 obj <> endobj 43055 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43056 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43057 0 obj <> endobj 43058 0 obj <> stream q /X1 Do Q q endstream endobj 43059 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43060 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43061 0 obj <> stream HW]oܸ}ׯ`ph~J6CH4A<@ȶ+iR4yǛ"pD9<"!//>mO?xkȋ/_qEyF6&ZM#'.>]VuٷUA*R.z.6$ln a$#IRfȦ˲fOΞ bCϛ3W FtW~[n#H%OPl-y1@-cz5|ԯ<;%Wْ( zb>(KW.2syd@1 1`q<̲4s1` D DKD KD KD +D +D kDkDkD'$P @}O)> ԧ4Po&Po&P!@}<X ĵ>fYzZPYVǀ, QV 1Bk} Xk}̲kZ,D}Zǀ, QV 1Bk} Xk}̲kZ,D}ZH"1 e}̲B>,ĵ>fYqY>pD\cB\c\+e!Jĵ>,ĵ>fYqY>pD\cB\c\+e!Jĵ>VG qYVǀ,+Tc1`!1BUk}̲kZZ,D}Z, QV!1`!1BUk}̲kZZ,D}Z, QV!:҈k}̲B>,ĵ>fYzP}F,SEbQ X Il(6ԜmYy\d C^Q.y*(nS ƀթ4_}7F/҅1 5(I!W3aX|rڽT};=&nW!CZv[Ynsͤ짳ϛk_(m9ȗh&h5R:w(xZYj/fJS 3|{T%~B0^9ǜHBBjb]we7L7O}߹m~naʏDSӦ:yڵs/MYF|r' !Pwěҏ8hw@2oʼ?_(S5\Sl\۩|̍G՚Fkfj`($:5_'Y[= vYuk)z/ Ԥl1nsj.rS}rz;r>?i!mh"Y[m -2ZG؜3`4Y,xFHWR-]]d Z-u~|,.xۃ-(5Gh؇!YX}{:o:#׃Ak30% 0ǰBs1Ϡ1/ۺq?O7תmOڸhkQ/dz'\. s8.{{a?> A!A6N(MSl.OHDêxJaWAJp ^dߦ 225E  `CF,#ϫ٠31>qߟR>ЛEqrBfPW{@ط'o˓󥸤i:2f:* 4a[Eu=3 B>Kƽ(t񩬂}?UْIJ OMmߺPۖu}U_r'uyCEO(ڱ9~D¹?[N : 6m&?n.G*{c",zWQk*XޔAzK*h}r\۳xߖrAkeƨث`뗆/?$>%=RnQliu? iA IZz۲ϫַzCyn)l-gtqqz5ksp 9fܢjbʱFb74ӥbsWծh mu὚^B;JLWqz}fo+ng0=ou'SPU ry 4&a@ֱ.Cl<.#y[5,]Mkp;yER zÓpl3/`RvXñ&xH,K8$Хjdh&† k %?,M1 *k~W!򂼿$ld&lv0*LBɤ`ʬ'KcB7IV*2jlI "V4 Dd5)D0 ዐX~&sQk 96Tp!xd] Jrȟgǔɒ$Zz}@*SC-]H.BdI#}?$Rc`hHϐy~$8Y: w)OBz9{Vۮp%vFWdLj8=܈TKk*ҟTQ[q&ҞVQ(_fڰ̵i NU \,+\HٱоƤ:XA}qliԀ3F? ;4M4+|k=Wg 3kB-) jfBCuSߵ̺0߾!^grҳ)GaOS=V]m:mR 8ޞnG=`58ƨኔ{ZFKTIbn~;ۓZ{555}1* )щf?\ۯTh-1|FI%UyʌZKvjxsx6X*<94X+FRObjBɝRU^D)IC8 ^jR0eUnAe,D}ib]Iy :A1A^b.h%UO֫ P,^FHw&6"XҌgޛE#~PyEӴ)6U63^3UxH~S:Itt㫴f ҿVNY ׁH mF{C1jXt=s3qPa~IQf_l i?cȊa _#],rU􍨟pˣO,j@dO ]ݗ?bendstream endobj 43062 0 obj <>/P 756 0 R/Type/Annot/A 43065 0 R/Subtype/Link/Rect[93.6001968 663.229004 300.286987 682.908997]/Border[0 0 0]/H/N>> endobj 43063 0 obj <>/P 756 0 R/Type/Annot/A 43064 0 R/Subtype/Link/Rect[93.6006012 224.669998 227.617004 244.350006]/Border[0 0 0]/H/N>> endobj 43064 0 obj <> endobj 43065 0 obj <> endobj 43066 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43067 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43068 0 obj <> endobj 43069 0 obj <> stream q /X1 Do Q q endstream endobj 43070 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43071 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43072 0 obj <> stream HWkSJ_1MU"׭[%@ foA*%(ײXIgZJ3=sG_&~PN;L,"7 s8),J#q"_XeRRfN!vcCFG'$D$w$Ν QsM4=5YbIsNG5஠^]TtA)'OsvR K}-!>GR!-2Ĵ&;qiĀ4Vobe71`!51B[kMLk9ZZ,DZ4 Qo#51`!51B[kMLk9ZZ,DZ4 Qo#5kMLl&,ĵ&Yz,[ qir@\kb\+ךךf!- ĵ&Yz˵q qir@\kb\+ךךf!- ĵ&Yz˵qD\kbe71`!51Ͳ՛fM XkMLk%Z,DZĀ4 QoV"51B[kM XkMLk%Z,DZĀ4 QoV"51B[kM,w<ĵ&YzZ,[imJY# fEnEP5͝sa$~t5R!Ĺ3yLlկG5]ҹ. xCgp&gJΊ3udLng.c,Kؘk+xzqyE0yT =%4YUFAgcQy^K{<<~練˃Xa QyAK{< >\ڧo/`Y]| ۛi#H`r~$ݤ`=n65'ml6:0'35F.{Z_o4u@Lsy@2 ##sp]V~бO w,[WYE\+,C.0$r"`t>fUyhBkH9gR.P4[ӆN5~&i˿$C2_jY95p6D ݠxVKsJ}]1çҦ2A^΅ _fҨ_w gJΊ=TEeI%\գt}V6zjj7F$YEVU<,OIU// tr1X2]mKj "܋Zt/6Ɉ}AGx  C/IhC R!PQֺwƒۓ|4fJ`}wΝ4XYHǾލ9`sBp1a'68jp V {3Q"=~7 YB@1b*>&4==`nֈ62N5h Ez,e8,Nau22eBM*Hkj7^1{ H$O\#i\'_pƾsFWm~v4t(+788 *2mV,jZkh:\Ra<)qz6^i7>~vz_]jA}y< Y\%iѐuVlq"YF֎!L+k;㢞ܧ`,TG( /?v}ZMo >w:6[WYce/(ՠn7|ZOi-`@0endstream endobj 43073 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43074 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43075 0 obj <> endobj 43076 0 obj <> endobj 43077 0 obj <> endobj 43078 0 obj <> stream q /X1 Do Q q endstream endobj 43079 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43080 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43081 0 obj <> stream HWο@*8~|8;mz 2F1(Y|6%œv Gpvi'^v7W/Rg?]E#4N&QyfoԶު6JmU˪k>Wz۬nն._\uegFiUDIUP4U\E٤s6>n6b.<6>m/_E#{ΛtiCxşQ 3+؎MW:UoԻZ(,1(g29ptjbQ XZs57O1`a0Vpo{+̽[ s{{g3>c3}9s s}!/ }ܳj[EFh-ŐS XBk),b),CFh-ŀ%bܳCR Y{Z#bܳZ!KpZkR Y{Z#b {Kh-ŐS Y=ŀ%bܳZC R Y{Z+bܳZZ!KpZkR Y{Z+bZK1d YkZ!KpZkRl9CwO1` {!R Y{Z'bܳ:Z!KpZR Y{Z'bZK1d YkZ!KpZR XBk),=kZK1d YkZ"/b),CwO1dq! !8¿*zVFeVMҹI ibUyۤH .q*!z⦻bwr=0'œ+}7ͲU?(--܈K]>j. WِK8P4>=>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43083 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43084 0 obj <> endobj 43085 0 obj <> endobj 43086 0 obj <> endobj 43087 0 obj <> endobj 43088 0 obj <> endobj 43089 0 obj <> endobj 43090 0 obj <> endobj 43091 0 obj <> endobj 43092 0 obj <> endobj 43093 0 obj <> endobj 43094 0 obj <> endobj 43095 0 obj <> endobj 43096 0 obj <> endobj 43097 0 obj <> endobj 43098 0 obj <> endobj 43099 0 obj <> endobj 43100 0 obj <> endobj 43101 0 obj <> endobj 43102 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43103 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43104 0 obj <> endobj 43105 0 obj <> endobj 43106 0 obj <> endobj 43107 0 obj <> endobj 43108 0 obj <> endobj 43109 0 obj <> endobj 43110 0 obj <> endobj 43111 0 obj <> endobj 43112 0 obj <> endobj 43113 0 obj <> endobj 43114 0 obj <> endobj 43115 0 obj <> stream xԽwU?>sιu^^wo^"⊴E"**F+*"Ă4h,qјHWԘhdcI63s`~̜93s=qeJr-Y/]Lq Zp@[B;_dY^3\%Bܞ_Xj'6=5rW Nڋ.YPn7C/Ϳ.lQeK/Yts\{/lQ?ABQ;I4* 1"1adkRގ>߼\C?I_uKK<ҧ~ Jޟ3JN{|JP ټµXHD|8y r3yyi҅zr/:^_ d!jrUAS.I=Ay93[YO[OBx.XY>K=,xy?VLB^.:pU\v6 }3gLHH yϵTCr?wj̓HU&S K~y.pRRDή `{^;VMɿh?XY$3odZ-ߐc-"kQOr S$pMBoyY$_o~wR+|Ju#=XY$_N䟑f䟒5aO,^' Oxc#^#+'yױH-w~ҎҜ [MAP[#: 5k~"y geJ^u,a餇QyL$_ZD"y܊><_LԱ9X%ɡ9\~ qs8&jD߰߰<Ϳhg4ÿc߰<&"HGI>O7?|7C$OyɣNy.G&1~+/+A~,V d3qoقM}w3.Cw;8N\$3%$޷qde`s|=d=VMq܀:Er=o"xd-AZw,+{O\NVᅵ߱H<_F."eE +u/ e \HF,Nw#.$B> y,odeB,OH n%hYMđKV~}!Dj[ɽTK? d'}+oxx_^rZQ/݋xEfQi?9Ht1}cf8xd=&w;Qw!l7"$NB'1#ԍ8BdA_qQ/:ػ odpCФ6"'#?~FٟBOV n| vҪN_髀B!lˠ SkF-d#p]#="lNN7 ԽB+xU~Hq#a /|x?]\!<[:"])}_P 0[I>Š!U6*ԩ!J:+= YgetB:VAZzy|4BC~&I r=dIB? A #d$hc݌9L!gLYХ&9_<鿮;'/kI&])$JTPܨخxW٢MSQOSZӠ_>=ZQSq}EΩqI}AsCp8&YVzq^&tǻΣKTG x:={}= .4- (rY4]}_(ISԧi9z^r5GU0,+TQH@IBH^׏h\,{/*_]L20_A/R7) tnGEv=ƣf&Gszb}]CmnUJaZ 巖չdIYK'AaeԨ3ƌ@gUY0^|^fLz_$pWJݤרE ]EG>s4qmmjhjD.v_\ows}bttt1wʓ{Wg řLR IgVU )ϳ$L´1ΊI/ kl9kڙSƍS1It)Wj!rly͝^)"ƞѶ{ (fP0si`: ^ lJX{jץ{ޓW$l v?GH]mWM(nz  QUIQ=:0-tJz< =ZI^HaRܞʭCzR)~ +5mΧkR#Rb74R]Ӝv%ҩohD&&k0?O>.Tmg *s\i}Ib,(c9䋄 dh&Mx/w|^R{}͆H&:lƘg[-Aݤd2MպfSzM4>ܨNL|ݲ↝DY)tI(+B0Fn _Ъy!RECwC ]S]Ƭe>uaVK:@} >#&F}Xן'+G!bOSؖxJY8iΜI3& Ja>1O]tǵؾv/PؾkwP]gw>SsTYpL}._%SNO-eͫVm"NXu++B"${ j>>n ڽq<: ŐFtjsi\r$5I1iI:/>X_o0+ 46Pb#tkyTKP5j NW͜9+fZ'~VWݻ8oN9JޢaG!Z_WSE>n4*JlRIj7vd{)Fj0U'y?hST,y[:l,(Ad+\IH^)YF9dLL(P,-pFOeS=J"^xUzI]r JUY1RW(Mw *ɨ-V#j4(ZŽ1 :Ig:q jT:VTY Q~XlIV ~I%XkB&hbРѩ.ouoIjw^h+LfsFv rr MMTP4T $Bjpu.@/HC L G2"#L8L~^`TfS^=?Jk/oytut||8SB  $Xf4~)C=!ѮІ5<0չepL'WT[`{EehVa?<3H؝Hf:#}7 k; xגu%|KkMF{k*C륇[{w+wvw+vKOvDϪU>~NzNfjs1:UD*::NjG{01Pgztq]9wmh$␛*dY@=}m?bEXY/H~55) sy/&lMbr&ap@ФMlHN4(FJBi}&kא .@ H.+.LsĪ~}r+\5ih^eOibĤjT&QC.]B;f IZ(G*3\#Z2|,K/PjϮ1H$~(OO>}[t; @S1tM'RE5Y60mw=l҄|0bhG{nNQ_ .nU <]rO^|  AaK׍/dT3?}YO}d-=jVQtc nJN형i_x4Y28:l {b-~NT [ÝNazPXh_^#VozqgبTBfЩA'j<ߋp^9Ή0򄏉q~yk.p?|NRO>x[˯|1c'9xd؇y aTEoB:,u=UT#t[u[+%tȳ ^%Z*Cn]>*ҧg0H/ɪL"7ё8J7pYP zi!t,p(Hr@VXz^mJlu(J<>"I7,Β;+"NS؝uOz**ivpF 6&6ȶ6צϲ?s   v{]5SgVJU\rDUAJ;_~\Z-ArjT1h@+]|ɺ/ZzKnaɒ4oѢ|.3. Ͽn-_pڅZ^mꎥrɇx~!Fy,H/+I4`x=OmxG|B]!U8܎llBRRJ--mm]Z+@T_e)9>Ç;Lw.$pp n`pf_6$'4\4~ggϗOw ⌚+nXE 1,j1D$f:V4h'5nI=kVꜾpFXMVPE| % yi卂#J8N |&!Sx^#?FiPmISqfFcqhwj|ܞS , !#Ӕ\nȕC\LKչxY_v1WzD0m?}kRJ֏Ԇ>&X#$TeXig%59!59+U3@TF'G `=}e >8z=w<%+d`-.aomAvgj.\ f?dy]w )LN-aVC6,?T;7l+U~Y~)GkEˀ|WUYV I^5qsT'e MDa $n-Yۛ zECOž+B?e5jU&gc]{s@BMbѺځ"W?ɀ?=oA0$Dbr*اbuLE9i2Q^sqO<8D;Rny1n7:Il{|Y>d.=^W1jD0I7>O+} Di`jT3Tݡ^1KI)jMZf&/P\@\-VN8}\_UȘ1f%12cCU8:{€_cJj,00#+ifmn[߾&YL$D>ǎQ]0kZʋ7{%s̚;ռΟ Gw(+y>JN f'${q+>>)iUI;?{[lqϵb1ߌ\/]GU &+~TkL4ց. 0sipBC{R6tRZZխBϪ&AԺuJbz 8v8WTBJ*||1zE`|z"=Xƶh<Ϝ.E/l>q]  /w_x¸[S5t05 -*'YefnߌyUO_0f§jx82N9V_)Í=)U3TPH)O /b٫'=*G]aӬWK p#e i< c3f =J,T S9S8T@` oN %07EB%g#FLJGBP8JN|B(P#1 Gh@,"eXJ. h'ˈMxlRչ5s>x~nþ!XHDLM=BMLQ|l$?MŪsX'i7 fE4$,߶ 2n|[Yt:k֬LQecQ٭3YޭJL!1TѼ;X@G] ^aK1P*Op+J4 ` _M̄Bu6L3lF!$)#<87jK41aYh3fo{ q#TMMFӅ`G3$jcIT)god*Tm>VUC5spY}e9.٠`Kla.<^Q#z#7@a>aŌG4hKđ6+[+,uVsVިQ*IRcN]D5p#ʗRcYUA~ߠ5~쥗K4_ ~b]'tOw۰jP0MkbXdjTT\Z#.QrX  (2CxCņ4e!7hEۅ`ĜTA>p}9BP3z!}ds+WX9&a+*i=! o87xdtQg.KG(5Ej#t5߬cen=6;ݷȶػطvrߍutS^vTn2`'X}ң騯L&ߒ_u C,S4 SyR*O132kOEz?\v̶+rȦ'ګto?ܳc{OP@tYF.p:Ѵ?j\{vf䁏>@D U"i6s/FUFm5#4iaDfcC6vZӖV #5jC#JRLT6ݐY]v&jaa@1DHЅQ:K 2ϒ65,]7Uf ReS R( \^Bk eMoܺtR-P$Qli;W7jkׂMYb$|Ѣ\6$AoC!oz+v ?SJ4<~m_;-c[׻~zw&alQZLD:JZj_U|a/'_I9Eƅ Z:VV֯l^XcYe\g`Fߍ֥5 y@<-NWk(lL$mJ*i3qo$yTFL /.LT3#{8t)~lƜ( $#x*)VePwu?Yp7?ƫ& P&$z^['kmpss.1=m3sϘzs˛^^KOH WΟ4hu~%y9pA+'6VQ?1tB|pr"4K88 18uVZW.siLD=ٔ^wH՛=PJGp:W1x.k2RÓ8$Lc5f>0-u *)ߋAK:(9̴z7OO0fZ$~Gd;%R:Qh'}8oO /4Dܘɤǀȁd"k L1HFU]\]{3.EfӠjk  m"6^Rd|I>* LbO\NP8Ru:y?i$8 ls봉 q 1Xx!DVS%B4ќvWy YJ4Z@B?0!ʆ>8l+R磶 Ƨܨ"Z\|__MKp"*9ػJ#dApY4/@M:DGC6dpjQewM",V1@L;Ew Žo5='i(bt |U&8}zp&}ݦn3Q L@%XȊDNkammNrB]7,jxچ8l$z .Pe`!y&gl[9| HEz>l#ğcYDLw!֦>5j^]!=hUA=]7җph /d,?imTd Nf d|.)&O9,|Jj4, /_0GñqÂv)Zi*{ yS)?"Ǿ Gq'qNގ8P(M*V{,ӣ{K;n5 ;A]Q\w̭PaV{Ѻ/h^6`_aߏVzbX| # Δ>Z Tf̽1e1_8裺@*y?=^x_≅?'e|7V0ME%ƈM`q /S[^;|38bH<\Bax Ai(*![,O8#!ը҈ _@t3&q?|?9W)6(qkG3vbm*ʼRد59n |8w|,bW}"Te"li`1wm}u p晛h|+>||XI>`ctƽ1au>i0V\ܙNg,\:D&W`uaTb?[%N9J짷\vE+Qπ2;YEgApQgKq~ |H:8\kD_/`q{?;%=˘ G6cp_ LǚB/@R\Dl#oЎ|Ȍnb›sjOleO?؅QW.`?t,X9so{ۆnupݘ ?aT9$@0ՆQU2dMq:- [3g2BhΨ8⒊UI6n[/*^g' Jv u㫱iT@I`)QgDۆ- Sw,ȁq㨉FZD!NyLB1_ W@9 =U]f%.U _[ĭt2~2ޞN%.痟GK31y,F >8hޟp{q3A .Y'/։n^SЭb8+SKRG>(zebY + E|(A g쌨f5RBLC`,ĵ[9!'vcVzW ޞoi[>@v;B:8p8Jxbiws km? >8̯E(.S2*Kέt8.LaOij. /nѰMwOt{K$ ͢>ڵOTߺ*3ar&nޱzq6k8` =L^k\t̮N*#`Sv}-rs25f̫L'a̲Ђ^,Fi5@ •[ ~!dv`\laV ݻ#p/@e.E@uEkc%1bA*cfi,`nA xqx"^w,&ͿLcwL헞);cz26PD<=$\JǛ"3^bFq>! c 1Qh#Jc֡#!n(谑} yKt>'﷙ †Dx؞_7/uɫ !fxCko=0zi ٠)X!fQ} 09j2pFt|"N6VPDىq@Mc R`D*+I :V\+VC+{ OTx>M(A?L C^0f.zB0aAHBp0d(fV4Aj-8 W}cND2[8lI߂k*YR%azj$`Uw??/wm%%5.5_  @ šzF}vrZT(*},=y61P "ډq!;7p=wN58pbq ~5t _Xά3I=d/uJ}%>PUe%ؠ1#0)O/chVH֎XF&pt85?I^pomذw-y$A0e W3#yoj73Q@YϢe%8 s̈́ik$qAy@~xz\-mH~79LA/b(f{c2<)9 3>` x38kĂ),T#tY;gSn}JX1|Ijcܾ( Q%1h"F_ɧށ'c&ʇK c̷Y+A$ q×ץ Y`S-F|1 g&@b;~$vR.SV̏%ܴ;+Pazq׉y e>EOҧ Avŗ` NbdɎx9W̼1X#TvhbhK#^Ag: [p.g+v=r=`sr#xu7 [о ^`(=<~8Wz9_ X]FSBTy>DK؉H یcA gFq"iXEO81k6sށvuJp滨{x'a6 , AA;Yȸv"xmʘ/[E&[6ȝ% N)w31H&^}*㐷@ؗ[Z9f-#" c g<-[(2r %V`)nfU-xtm-(X @K@% J:b]!"~R+@(#nW&PrIc:=Ti AFX0:m"IIE1ZLՁǯH#I;ѹH'x$rQ, 6ΰNFlh ɄE*2^k~mb&~5d#pBs.+o)_/ V!RR];HCN[SCJx#Bjc Th(J!lծs8y`8_ywH05×f/Y|{ @EH2Z`:b7f0z%Y@9NE9jа\q K1K7Spʴbgc M[u |:^R fPx*+σJpU?"9s@GŚI3M' L]LpBA8UОS}<;g.걒E_jՐQ^2?ekB>gĭH$3Jب(jn,8 k0%^̫ )0.̞saPlYT+ۊdII"iD@6\fK8 J"3 L S{c,r*m%78N)-{q-!FyѦW&#45Np[]n:7b9wק3K׮,uJP(!TUPuMЂ YP%PP5P -RYP%PP5P -*$Ȃ<("(2*:h&hQA$AAA ATA A4A SA$AAA ATA A4A   Jt~ߴZ³Ьc:ti||LS(~AiXNT/EArM!&>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43117 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43118 0 obj <> endobj 43119 0 obj <> endobj 43120 0 obj <> endobj 43121 0 obj <> endobj 43122 0 obj <> endobj 43123 0 obj <> endobj 43124 0 obj <> stream q /X1 Do Q q endstream endobj 43125 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43126 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43127 0 obj <> stream H{o秘H!%1y1hi DE Xizx))nQw、$Xtx8s9۬ݚ/>o~zؐh &|Z8S>͝ifd:1z16?źmmmߜ$o&^8c*tDӔYe&|oʌO]l'l(B񀏾5׫b39sn2{md$R1n}Sgg2hοg$(ur ,oI%5c3 1/'5ՔИ%[K(;ށN W=HUz{>A }Ps>Ws>Ws>W P PKTKTKT+R+R#HUҫ`hLZ1K(0RcJS:ԈS+5@z5LԘ:0R# LԘ:0Rc WSJ(0Rc WSJ)^MS+5J)^MS+5@z5LԖS+5tzVjLRcJQ`jHփS ZVjDS ZVjLjj=ZVjLjj=Z1ҫ`jFZ1ҫ`jHփ2 `jƔN/5J)^jLR# LԘ0Rc WSJ(0Rc WSJ)^MmS+5J)^MmS+5@z5LԈS+5@z5LԘ0R[&9Z1K(0RcJS:}Lcd߃efM3L,LfA/Ŵ0Ed5Sgb}14UO,mׇ77m;h}Ζ{Y޵5RzT iYFO~q\U&{1nM^PaxKr8T.E`Rt2MG }Z܎|BۑgEA;4Ro3 NK[JwSP+ +^ʁW U(xʫ^*W*U) xU+"eKjLi/eU^xY倗S^x;{1TԘ^^jL/{z/5SKށK)z@RRcJ{I({1T=Ԙ^^jL/{z/5SKރK)zARRc x{{1TԘ^R# ^jL/z/5}xR ^jL/z/R^Rc x{ݟZSK>K<:Wz/5 Ts}Ҝ{΋YLዴ j]dvӛ><_n95ux)TrdwO>.yZ=Gٶ,j;ipY6:{jֻ;t̙9jo; sѧ!.ҥa,gj:yItb+.sf;Z>VtS??域>|y ]/M]|*r\^l2v{ p{>7M{yV j@Qz<#]ZYѷ?|F쭸^=﬽`C>7꿕܃ͩ1#3gQn`pzt[nB+MeIfI(WP^x\y+W^*W URyT^W*WT^xE2%5Ԉ*/ r)/TԘ^^jL/{z/5SKށK)z@RwRc x{{1FԘ^^jL/{z/5SKރK)zARRc x{{1T=Ԙ^^jLi/z/5}SK>KtWN0+|L%ui+H qYFKK|qxv)rnJy6ݜ'^S1 u.wIz}E~\ yy1ś?A1fOJ2nCXa8p1z-1،}Bo-f#3;SWDeifJ쥩ʦޞf?.)3'~V][Q\mY*zRK]ޱP팆/\so7Y)J',:ٿ3eeendstream endobj 43128 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43129 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43130 0 obj <> endobj 43131 0 obj <> endobj 43132 0 obj <> endobj 43133 0 obj <> endobj 43134 0 obj <> stream q /X1 Do Q q endstream endobj 43135 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43136 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43137 0 obj <> stream HW]oH|쓼9_l\ Ar8lx؇(hHCQf߯dC*kfſʮW?t囟U?kd6֫9X&N*M5QVQ.~e_U/u՛VE]SF(*W9h4T>>TnuĆxfbm٧- ,t3iz:֫mlnϊ>.ur/ɄX{ͩmVK{t/f0O8lR*"8|.6#W&VAU?JEK gtQ('眜pLbⷣ,!+,nb{[e1Np{'w̽{ =s}`}'O)s S>ܧ}&ϘLp1>gs=JKMdR Y=ŀ%b),bZK1d YkZ!KpZkR XBk),=kZK1d YkZKh-Ő%gBk),=kZK1` Vh-Ő%gBk)Z!R Y=ŐS XBk),=kZK1d YkZKh-Ő%guBk),=kZK1` Nh-Ő%guBk),C Nh-6ZK1dqZ!{Kh-Ő%gBk),=kZK1` ^h-Ő%gBk),C ^h-ŀ%bܳzC & Bk),bZK1dqCw<Ͻb(0ʨb#AD%i*6ϳhY_oϽ:{lۗ]ӳO[:; Y/|(V={&ՙJ ]uSp'6 koE_]mjԏl`amySng? 3vSapt\f>s@4OOF>ywWuVڊCxs\cL|{'z i۲`S$sr˺WH&&;8HH2so*ͽ*Tˮ*H9ًe뿲CRD4AʀmV7 ~\ʠcE.շjS͹jWc2z  1z󟉇>`M[ uW-Mu:`V7얬8 I뭇‘Յe}>NU '%^ݫ<2O<(\`1-/hy-ϴVJi%V´RA+eZ2LʘV&heL+r Z9ղ1עŀe-ôe,Ӳ˽rO1d Z,V=Ő%h[!CroS Y˽rO1d Z,V=Ő%h[!CrS Y\brO1d Z,N=Ő%h;!CrS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1d Z,^=Őŵ(,!CrS Y˽rO1d Z,^=Ő%h{!CrS Y˽rO1d Z,^=Ő%h{!CrS Y\brO1dq\y?./EtQ^U,l3xU+(N]z*ebmc|an:zv2v]v9k/Q0S x4n"Ue1NX>/qT<15W#[/yhH,VI$a\}V=C^L6kW]#Wզm}WՁT6m]uo}n꯻v<v_WMuWu;4O {vRL4f!9q6L(\/oop}]6WV=V@ɭfaM݃4LgTmy8atU?ڂ/ʮ./գkarE쾳~pzjݷUjV˪nVqPe/m7{aT\Mu.z?y:3W>>:\//wKrPF6xLBuuǘ,d'ֱSjR#x|&4Λ3o:7Ç]}W&vr1'bhO{\_o K[ׯze |9H~Ɔ ? ;}KuSO'_ʫdGn9@FJ-1@$s,qNK|_qQZ&ɥYTs*Vz5QdU]Qk\gџtAKVĝJu8Vv@i6c#ZOA9/HK(R=c4.͋KYi$^Nˆ bp F00㘭dq@/03SrL_1 @,uגW0QYGt_롖}P ZE0Vzv2T۶Uk~9,8#kAt6F[Yh.^)ʄ VMt mp~Q+tP>,&~[N|k wpBJA7+"![ UF,5jsʠJ@>hDL}FylOF[&K6ϸyq(]qhT! 4O%JgֻZcZ7%iP :X-+tJ!!$؃a.׋5"QgwӹGa?ieh+9CA)+YlT:ce?ؽM} G-1݇;tpa5+meoåֲӠ"!zMeQXdzE<O ·[\qR~Ȧ b ⭣Yvq'(5 i~؎JeW(l\b$M?JQ "Y xK#os s kt ZMf*VyxΔ:wn8vq1]B,gܰ:8;0:+W|:/l`:do[U:0LͻL|cp^mTq4}1ڃ2/w"8g3h) VDS6"'ib*ot-o~ eD O~X8NHû bʃa>0NZ3{~!N dH$hq?>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43139 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43140 0 obj <> endobj 43141 0 obj <> endobj 43142 0 obj <> endobj 43143 0 obj <> endobj 43144 0 obj <> endobj 43145 0 obj <> endobj 43146 0 obj <> endobj 43147 0 obj <> stream q /X1 Do Q q endstream endobj 43148 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43149 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43150 0 obj <> stream H|WioH_~>xa&N&HL@ԶPFdUSAJ\^hoM\M\1~3}kV E"4Uej &/͞ҴC=>NnjזMUӧ&&m3 n|__}۽(=(-ʭTljɯ뵯9*.Y#d :zT:Ra _)RK6 M :QU'@yL99䄣#HC_bҚX`QZs so{[e1NpXp3>fc}'O s S>ܧ}*OLp1>cs}{Y-b{KH-ŐS Y=ŀ%bܳ!CR Y{Z#bܳ!Z!KpRkR Y{Z#bRK1d YjZ!KpRkRlX!CwO1` {!R Y{Z+bܳZ!Z!KpRkR Y{Z+bRK1d YjZ!KpRkR XBj),=KRK1d YjZ'b),!CwO1dqZ!KpRR Y{Z'bRK1d YjZ!KpRR XBj),=KRK1d YjZKH-Ő%guBj),=KRKU {KH-ŐS Y}yT?G*x1 .g*fw:.:pnj >Nf^Mfnlⷻү}M_ۑ٬>^EQU#hfoa &ן, j~:"fU GskwȶV$N{.6m6($, `u?k.ٶ#'Y٘\.zWUdQ'If uT cN'3Ma.;ܯ|qH7Vn9"Q4>Nߢ&M=&nO7ߏh궫VSUe}߃߬ʺ.۟І&9,=mܗ.ꩿϣ0jZ5~B@V[i&{]Z5Q KqetyF}hˏpWa?Da]B֔ ˮ#=͸һ}phMSrtgt+t[PVՍY+ E?9;m닛=uVa;b> 5 CP[[Z̆Y|01h&cvwǻCb?UQ-幣.u׉dxzg]3g%0b:c~[G:,='aFG{74n>;^bMQ=?fMC2vw_㘺.6d1,Sأ =yY.'|NP9m[lVvxm:l6KʺlL:K_mW niXr> I6sT6tίueӤDM>̆=.G~zZ~StZ3M8:1௤>1 h֜zT5 ZI|N\BYyY9eR Z)ieVƴrA+gZS-q-!kQ XZLK ZiA0-#he-˴ercZ3XЊV"h7BS XBS Y{#=Ő%h7BS Y{+=Őŵ(,),AbX[),AbX[),AbX[),AbX[),AbZC }O1d ZC }O1d ZC }O1d ZC }O1d ZC>bZCCxw#f_̎^9?@I޽LV֋jI > S~)ݢn4# 793ead)Ǧ991 u3JSLoÔHx#G7Idx=k%J#eUہhȦqhFL#a].o\ kҴ؆ّMuiօKϻ;xUmz~ݻTflC뢺E6͛o~]vȳ#X4]ҽ )ki>9э4*m|zUff2j^ Ljxdwj>OY{Of՟\/۫W®$IT=S&Ġ EQϭnE:rp~ZE [c/Oq}>4:{a: Ow ;_gC1"|MJF`bbw-*x+MwvvvئC-r/)ryO#>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43152 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43153 0 obj <> endobj 43154 0 obj <> stream q /X1 Do Q q endstream endobj 43155 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43156 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43157 0 obj <> stream HmoWLQxy#9`ACM9 +M{%EٺIrΕ4gm;s~~˷Li^xpѺl诏&5VUɛm[Ӭ,Lqv9/7vjlٛKonwŴ883.Rl2yltU\b6'>WZwaX36y.z[fs'd<`bm_ܮg˽ezwNS,CLlzZP+"XoW g(͍)rOT6|\>edf`\$5FsS P2s:Ԉ W=HU>A }P#HUG>IO }RHT T TUUUoToT g>jfZ VjLR# LԘƔN/5J)^MS+5@z5LԈS+5@z5LԘz0R# LԘz0Rc WSJ(0Rc WSJ)^MS+UJ)^jDS:ԘFZ1ҫ `jH6Q`jH6S VjDS VjLjjZVjLjjZ1ҫ `j*"Z1K(0RcJS:ԈS+5@z5LԘF0R# LԘF0Rc WSJ(0Rc WSJ)^MmS+5J)^MmS+5@z5LVES+5tzVjLRcJ6MI^l>zt^@?[f*O[oɩo&nxXlWuɇ;2:E?lj6-ng77;~We78l?-{Ggzk9/ֵn_lnl/oONS'itlٿ\ ہ#fB?|m[Q4}궳k^&MpoyM yՀv!p|ÓR=V׻kCU1ϋۻPbs1TpI@b]*UZyu!c3{۵f~%˗}=wWSeRyW1.#?cT+*J+)W*U)xʫ^jW( +K/_j/1F^Ny9唗^^yyzARRc x{{1T=Ԙ^^jL/{z/5SK>K)%5@RRc x{1TԘ^^jL/z/5}SK>K)z@RRcJ{I({1T#Ԙ^^jL/z/5}SK>K)zARRc xG{1TԘ^R# ^jLili^/ma~SP9K3"H{ or\Sasd?7̲gzOL f؊=Bp\H&zr~?in\ܴźݙ_.߾1WS7}^ov.^y?;z{ztu ]WW}Y\M9N&߾{>Ihcjg[w  ڮw11;ڤO`oOy覴ymw]_MN3(\=~~s*ͩO:{bzӢ3>Z36J14x24U4a$(MWm5zU Mc!jӾmjHmF*źUssEWG9^2(^^lksxmy$(bjjrY5e } ^`}l:e͝mӾ̴n>G,j/5.ޖG{=C㑾#[bGݨWԘʀR^xEWT^ x%啀WR^W*UZyV^ jW啁WV^xeK%5Ԉr)/+/T=Ԙ^^jL/{z/5SKރK)zARRc x{1FԘ^^jL/z/5}SK>K)z@RRc x{1TԘ^^jLi/z/5}SK>K)zARRc xG{1T#Ԙ^^jL/z/5}SKjDK)m9?_ҏiq6uqf:/^nh3B{D[_mmWсձJB - l!VbQ[&vߑ%_$'O3řl}/jCOht qF7jNfG?0b8'yYrc!ֱ@PzMmf +ܢ2tgۊ`~Cg"V4FXRF˚a8X@JYm;&Il>9 HQ,s}өSj3UtR R]$KԸ>uu>:QZ1ɋ vɡa trN*?GJ=7vkT2I|\UC2R{dH2"1D:<&M'/?@-,CHE@z51B⎉]{o-*U*#޶URH1չ Scrk]9Jޫ3%wʗ&r1S."ҠOLw^5:;79Tso3Rf,ŕ7:}H}7)mQ*i('ci]zi%×c%n.OEMDzc`|Q txx -endstream endobj 43158 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43159 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43160 0 obj <> endobj 43161 0 obj <> endobj 43162 0 obj <> endobj 43163 0 obj <> endobj 43164 0 obj <> endobj 43165 0 obj <> endobj 43166 0 obj <> endobj 43167 0 obj <> endobj 43168 0 obj <> endobj 43169 0 obj <> endobj 43170 0 obj <> endobj 43171 0 obj <> endobj 43172 0 obj <> endobj 43173 0 obj <> endobj 43174 0 obj <> endobj 43175 0 obj <> endobj 43176 0 obj <> endobj 43177 0 obj <> endobj 43178 0 obj <> endobj 43179 0 obj <> endobj 43180 0 obj <> endobj 43181 0 obj <> endobj 43182 0 obj <> endobj 43183 0 obj <> endobj 43184 0 obj <> endobj 43185 0 obj <> endobj 43186 0 obj <> endobj 43187 0 obj <> endobj 43188 0 obj <> endobj 43189 0 obj <> stream q /X1 Do Q q endstream endobj 43190 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43191 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43192 0 obj <> stream HWm6_2Պ/z 6+ ]+gI$IY&'wgyO0?t0 7ɘ!2L g<3<T 9`aRjj7VMCSCܾ[Y} JX$ ˰9<)mDl(yb<>GzGiݿjoQ͗e̋2;:Nj0c e$1GضnyxY~J_$܅A)0oR`e~e8Aǔ%6D˹6@1Rrg' c c/c/c/c/ c/ cS}JO=)>gc3}N=9>c_ }A/<%ؗ{OkkNֵ!gEֵ!gwm"TET պ6D=rB Pj]j9Z׆(ZNֵPkCS-'TET պ6@um"{j]j9ZPkC޵PkC޵!gEֵ!`Vum"{j]պ6D= B Q{OPkZ׆(ZAֵ!`Vum"TET+պ6D= B $Z׆(kZ׆(kC޵PkCS$TET+ պ6@um"{j]j%Z(B Q{OPkCS$TEֵ!`Vum"{j][j]| Pj]| Q>2.R [u6x n[pd6CS8 m9?ժnpó"z|~XYV9<".cD޽g)݅/q%< 77\Q5Sϩ2aÊy }tƣ!23Fq%1K\qgO#d"Jӄe{)7idQSy2KtI}uO;Ғ^}"␔fosU94_Ϫ'ήPu2Tm>=j4[L z?%.Z#DQj_)ī%UҬoW-!_M(g6z|k'9 w1"Q?_v#CR;p s ͸'/MKǪC9[1,a/x6n|DeH"@@[}hBص-g8Dݶ}")q83\ΡYd7Shm:{t袅Iޱlz4dAE$+ rσV?+b;ӹjOQ*{Z*P*r"[Y3'q"UGNɠSw]A"nOZG7Yxޝá+e }ʓrNtߟzF/KO$LhPua6LM1=BvLODLSu]KR@oޏؕuEDqۑ}a'ۙ>]Yt(4n@+S\8na>> 2F xKr A%WCo3<.Ror!6o(k^0]?>/P 402 0 R/Type/Annot/A 43194 0 R/Subtype/Link/Rect[93.5995026 526.429016 172.283005 546.109009]/Border[0 0 0]/H/N>> endobj 43194 0 obj <> endobj 43195 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43196 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43197 0 obj <> endobj 43198 0 obj <> endobj 43199 0 obj <> stream q /X1 Do Q q endstream endobj 43200 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43201 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43202 0 obj <> stream H{o秘h lj^|LjÏڎ1h`Wz}8u\w}Gtt3s)ŻfW_y'? <^ty3PU:isKeIiUV"CD*"n~>5 ^~-7_G ؐpUKϱv,E׏rxtU L薋vykcпtM5uvF0sf,e:빺ݭ+饦m+wY5v{*8fsjw0E~t}zy%S|>{-RY5 o|3/iz=T?To}z:QfU;X.fݷ.<.\(G7rѷ(2?Xu(ygPuq\L7ůpJgzH-2|>7~SzKyq6׳phٓ??[Oz3eEheF,u:Ky͕ceB=4}4]=ͳٛ?TY'| #4ݜf鑱gKu P5R|mܑ^^kE-]=WC>n.պYC./O K6+bt4Rӷ;\&,+mƭ,=fӬݏFMfeJo<߻8Cx;;x[-y_? N%@06sa[if;ޭq՟`,g~w) dE>ap- }`~V2+_ۜ9I\Uˠ9? r\,X^r+\ *BJ*R*J` 8j$ke,#X`Y\#`[{ D-=Xk,{ z5rKނs\%z@F.Zts\%z@F.w\#`;{ D=Xk,{z5rKށs\%zAF.Zts\%zAF.\#`{{ D==Xk,{z5rKރs\%zs\ŵ$+d!|ᅪ/O63osxW?=d2::>wFR\Xl!z]o7m|>6rN?M-lYMnbtenΰvn68ptyc'Av~ԗT mWr蜓Q[9Trl,&Sf}^m7=՗_X38غFLYEdN#@tv<tt':Պbi1 @grj- gu^ zbF d딆38t4ZEHFphK$`aEQ,.RkS4/|t32^g>ig&1J([S,뽂tJrn`9ba~N0{"P%L s@$eďyFI;W5srƴ΃_M#!x˻ga^"bҭƜEs&-hpn*1ʺt&)Sۜl@(yI=3S7VlOhFR7QǼ;gWy`}`keCU\P sΟG:Si8cqG@xi|2Y<Ѭ.,(W4 Rtϸ{<0\Q$!cvUI/< c񞁧4}YZT%=&mb;I[(*SʲmYv={M<3C](*Sމp͍FVb D*y;չM68<'M_aK3b@P97oyݎaa_>J`܆[ kם(3s+Оuҩқ︌lnr?Pۅo!)z6oe6XͪtǦtک-N>^|_فZ_endstream endobj 43203 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43204 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43205 0 obj <> endobj 43206 0 obj <> stream q /X1 Do Q q endstream endobj 43207 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43208 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43209 0 obj <> stream HWiܸ_ _4#^:66 f-J̿OHuKdc_z<^cOo޿իoDE\1^P.$Dgi&WFi-qGw͡;t}s4cqDw?~!z6gxJ$˸><-1JLo6L0qqɟBInol>\ezj6T'oi4(C% D)0#D4 /iRfLh'-=FerOQ}LbJS||8QQ@9>@  K K K + + kkkg,`쳀}N9><`_싀}A/% ؗ@;FPCTPCT!*dE!`V}"j}>D BQ@PZ߇(}ZA!`V}"TET+>D BIBQ!{(BQ!{߇Z߇(}ZI!`V}"TET+ >DJBPj}j%Z߇(}ZIPC>P$TET+ c>D}>D}BPj}jZ߇(}ZEPC>P"TET>@}"Uj}jZ(BQ@PC>P"T&T}"T} ٗ,Koa&ld.*- LLƛciyk-ۿÕdpSDӎq6a} YYԺS5hlOPe1o8<|Q2 , ь~H[7t=3ᡴB'iҵ57_61Ee(E&JOB 䙐.,sk,QorP ;>*:Rie~߼2Zuw2GAaL=vu}5uw4Hm،9q?pkͪZqysVPj]m.\H;{].nb.$ēd[gtp|j}~} `M.rLSd  לXe!%wA.9K⫀5nwƱ\"2K&;"!'?ᲄjq9U`A3] &fz bp>]9>ڶЫzaކ04DE IM\γT/v"Bkۍ{qv;#Dl %ROLO &O$gQ\2M8#1k}b7dwnZ(Ns)F/3967l`OLT, Y*\,|cqR* ?uW3\]S~KEl/b:W*r KeJ`jeR Pw( ^.' h;-Zi s{Od=W žB3vM»ܞ)b Oڱ9` y9Кw 0O-ԇmzь_8(wv'cؙaJkKǓ:0SLgfԁ_e[Rh54ۮiYx.bN4Rၷde-)Lo<ێ~P ː(xRd"/žںt빛i| [h /35bz'xE@)aZ\P8/o܈i@UD)+&+3xT[XV;K\Y:.yS`zs旤EqeGݎ*@'f.à'V퓽-aNg`LlLҭ4촋~mKx%վxʬ^e&/SxeHҗtta*k~ [sp6h=8ClQRrXx>ߴ/}T[P'T Y:D4"F'ŏN y( 98A8R{5׃?Ē%x_,)G, v$~,4C58Cd˺=t0":_c 6Gxw zݠ5(12 =N{}3 67ioM'Ʉ]C=!K$z?&jJEU!WwYr! ޟ+!mҘa] pr'Tv֦RoՊK'NzlRmYxB%xQ./jLׇ㥲EpHbdWͮ>cj~(,DŒK}\,9ݡ1\s* K-ZK[?{S'R\OVͰfBMbFmL%D0ϐ*o[`'7BϿoWf,/Ǐ+S#Vz);gyM蔹\id tTʹk"G{ݽ,G D%,~U<Yn_S B8C\[V$ ++)c[탮|Wxs k^fY"dB˗MJS #jO<ԕ! |d- 1-i ZD,nbjIDD"k.0b&,^CYׯ#J Ţ0QK3&yVϳjj(UD)ileOю#nBM,{\yWF5жPqreDTW;fy \2'6 [X+;^dX] $!`o}u8;^x]\Ks~+_ Yhendstream endobj 43210 0 obj <>/P 585 0 R/Type/Annot/A 43211 0 R/Subtype/Link/Rect[93.6013031 490.569 246.300995 510.248993]/Border[0 0 0]/H/N>> endobj 43211 0 obj <> endobj 43212 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43213 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43214 0 obj <> stream q /X1 Do Q q endstream endobj 43215 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43216 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43217 0 obj <> stream HW]o}ׯ eC,OVyb2"_\c3 G(,>ŀ5g Yڵ),#7L -Soz;AcꝠ1>c3A}g9S sL}!/BP_0dKA}{Ag꽠eV X!CWO1` z!R YzZ#bԳ!Z!KPRkR YzZ#bRK1d YjZ!KPRkR XBj),A=KRK1d YjZuRK1dqZ!zKH-Ő%gBj),A=KRK1` ,VH-Ő%gBj),!C ,VH-ŀ%bԳZ!C X9!CWO1` z!R YzZ'bԳ:!Z!KPRR YzZ'bRK1d YjZ!KPRR XBj),A=KRK1d YjZuQ&b),!CWO1dq>;g}E;QZD:]pxh\W.s3qסUk{u^.W>DiR^Iuk.4$&{Z||m~J𾟇%`M?/A`rl_1u8MPiIa ;f ~?Wiͧfl_z޸(mP=mm=Iv.-sOcmKa!KLK4Ƚ |וMp}X}LqVd_ja`Z|q훧>YDyraonN]lC[M #ح:ia|kLIxƧ>gϝxϠ.ΝXo/庄_(TO3;ywr8,Fm[z˶44taOWnE<ڽ:Ip&$p+"W;D&MROpӄCeڥ1DpNى_jnp%jC 깅!;lcթaxaoq; g=쎧qFGN9K8zm}9"XtQⳋ4ng!0dyj9cP˱ZP+c2VjBʅZ9U VjV)*YRUZ^Y-/Iy-!עPKZZY-#2j1CPZF=Ő%b7),|O1d {!K|oS YB-{+b(,CP ZV=Ő%b),|O1d {!K|oS YB-{+bj1[CP x-K=Ő%bw),|O1d {!K|S YB-{'bj1;CP ZN=Ő%bS Yŀ%b|w5 7w_D~%?TBw \;F}W=; pIw^'0{g誶OQ^M@WXZc{6U/r$pvC#AT&vg^h{Jwim׋In^ܚ 8#[OVvg~S3'os¡ Wl3eWwn>Qy'Z3}c3=KKHU3ZD%DG;D9XGA K]r@.R Rc`{ TȽX*^j,UȽX*^j,r/5v}K>K]rA.R Rc`G{ T#ȽX* ȽإYR.{K-qo=M[0dfIz?imc4nCmWZ>sߕv74G#}^w9f4^YdsaTUJY[_nW753'*nJendstream endobj 43218 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43219 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43220 0 obj <> endobj 43221 0 obj <> endobj 43222 0 obj <> stream q /X1 Do Q q endstream endobj 43223 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43224 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43225 0 obj <> stream H[oW4BZح\  A, DCICΩr6uo^>Li޼yeEh6ڛf34w33S{r\]]87w883-R~$iLWnq39{3Rk;/匿[?.XMˇm?[.6g/$a*k;'~eV8^CZWJ{3?)W٩lu^f$<Ti&!ք·ZCJiBUٝZ˔'=$>>@HGHI+I_A }Mא&kHߐ oH7$}[-IBD'HHzYGVk“՚P^k"S50քZZ Ez2Zdj)2Zdj&ISj-Sdj&ISjM(֓ZjM(֓՚P$=L'SyjM(LL՚P^kBazeLք"ajZ E2ZZ E2Z dj)2Z dj&ISj-Sdj&ISjM(6ڼdj&ZjM(L502EVkB0Lք"aj#ZeLք"aj#Z EF2ZZ EF2Zdj)2Zdj&ISjm^Tdj&ZjM(L5Hz䥨"u*_bT#4DjW^-j%^-x%+|^Z & r列/OkM. zH&|Z;{xAbN^kr1'^@z5r/} ך\KkB2M^kr&^Hz5&/}$ך\>kM. zI&`Z-G{ՖxA#J^kriE/ ^Z(Wɦ)/Iq>8H{ΠJ6?̋fMg^oMcߜMNy >~{ormvl ƖnuglfsuFJ#u@[YbTm9M)^G|f{7Dlz{98}0#=mh0V3.<9Ǹ:ᥭSpjqّǜv:-_?Oo)橈٭:],&2ؘ&~^ql<W xWyfڼz|oBm q`%>誡%IYuxͿp2|+WW#e/>rL&"ՀWCjW ^-j+^x%KҚP襵L9/^xy˃W ^ WH"xUīxUU/'ZH&{{ E^kB/} ךP襵LkM(ZxAք"^@z5>kM(ZxAք"^@z5>kM(Z ){ E^kB/}$ךP zI&G{ E^kB/}$ךP zI&G{ EքB/e^kBW)_Iq>qqfr[;5>]mvݙ˼ȽXN9/9ϧ)?Ё fߴxz>si7yvf6_=tnOrag&O8r~|oo*oV0~%Dubwpķі.?#.6֥E_~ݘ,$j}+A9^IT#4DjW^-j%^-x%+1a%S列/Gxy/^x +W$^"U *UWM^kJ2^kJ2^kJ2^kJrLimXIxkmXIxkmXIxkmXIxkmXIxkmXIxkmXIxkmXIxkmXIxkmXIƔZV1^ZV1^ZV1^ZV1^ZV1^ZV1^ZV1^ZV1^ZV1^ZV1*{ +ɘ/{ +1W>;֖ݏ-79?想E"q9:ch^1'[g*=ɶO?nW&랸&]kLr1Wwuzr˻W]BOgWw+eLP`f"d69\l&r["ȡnf",{m&r["ȡnf",{m&r["ȡnYV$ȡnf",{m&r["ȡnf",{m&r["ȡnf"eY=ٽDu Xd69\-{w ﲯa.ܦq_< T\Աp8]]6qTe\n2gOw͏cΕys]< 0wFendstream endobj 43226 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43227 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43228 0 obj <> endobj 43229 0 obj <> endobj 43230 0 obj <> endobj 43231 0 obj <> endobj 43232 0 obj <> endobj 43233 0 obj <> endobj 43234 0 obj <> endobj 43235 0 obj <> endobj 43236 0 obj <> endobj 43237 0 obj <> endobj 43238 0 obj <> endobj 43239 0 obj <> stream q /X1 Do Q q endstream endobj 43240 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43241 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43242 0 obj <> stream HWm6.E{HhҢhE Ŧ7Jmg~͈- ǛHE>3pgH>:~{O_xӫ近4,c2-t8tjU|tћD|ɸg]ןݫv:>ѳ_nU|E/Wѳ|cQ ID\%ČsQī}hcnVY¤pov]|T<+WC7V.VYh)0ϫH@LKS?RĿAOu7qT,U]tbS:Qt()C!2(]ʐ<J1U^1U^3u^3u^3u0M0M2m2m2m>cgas}y>ga_ }/edhm)FԆ=Q-!*dOm SRjZjC>PbTKmbTKmbUj Q @Q-Q-!aV16D1*F(FԆ(}ZŨŰTR>Ҍj Q!{jZjCTȞ6@16D1jFԆ(}ZͨŨŰTRj5ZjZjC>PfTKmbՌj Pj Q @Q-!aV3}dRB(FԆ=!*dOmbTKmb5j Q @Q-Q-!a06D1F(FԆ(}ZèŰTkRRj ZjC>PaTKm26D Pj Q!{jCTȾL˲4f>zV:j / RYeeGo)R)㛧J䶾oͻ\*U<[w7OZ7>SRūu,wCӼqCfI3l0wnZ%l~_n{є.Rh-q#2! _bsMO>$PγNE" i%@LWge/}1ljeAxHse/72ʤ*g+ဠݍNTˏuUWՖ#.MzmOͺۦ?nj|T*n58 EWZȃ+I v\ikj8 `0u(|3 *aM=,ez?~?@Y:mhzוL =`K'$WHwwJOrMq2KT/~w/ fz^b*-̒*"e`frhA7g̋,˼Xz=ejS -q9a넇пV)l3}MZDJK"oWj曕*cf匇CA-.6IK+6.0tן~257XVJ~%Ĺ,%I,B't㿾},".ǁc{$=ei-wEw3 &4ط6lX9LM7ǒ#zF-x|*~~0lxS$'o-\;$_A%.b-\bxY,w6#+C]PS9*8Gx?x\d}XpU1zI̼|l*%"k}] 7&O4S3Z0nFh_6P)H*J Ic9ɮU#jk&`{MY^oz?u.sEVB||S@h\FBFI^5^4Zh5fs\ye,.Nb_Np-gO ,42waX*h nt9KxݪaW+70ڳǡЬx:K !YKW8]-~2˷VPȬ\m~:ٶ.Uue~8X"K (4tKĝ(cQ>l|e(u߫aiGu; eE(a;g)~/| ڏ?WǺsim ɬ]Ԅv'=qBLAn(fCEY#Aey]whM1C`P;wM?+LeK <ަqOkWM6ЋRx(hz R`mQ -c%g>CJ͞4̛èNY b¬ldW}6 vGUhvaCڙ jcE-y7g:8;`w:XH E dyQtSzٗ5C+-}uj>* WA)P߻alN[g#U|-d!N~yy"j$㳃ST?b|'Y!RyO1C<{ ~=:6 wz1er-混ЕMYޚU&AN!@"ΒX5pҡ̽WW]%pHnPIoK4uP)-܍ns{nr(W ibG?RzvXUz3/ݤ @WW]g*m%.rϞvo8afV&Nmw;Loj̗h|1ҽ4^ZS1=^Yd7xlOK-/c>yR@H͒bcb΀0FF̏,w9H!S7y4tnK͹>ùL%G9*Izȉ%|H Ѓʺ\'pL+:g^zydXn[L 0~)QlC8ه%ЪPӣHܯt7 * C;^M{;!W nU -̄\h|UNk/{uΦئ }=y.WH&97>/P 889 0 R/Type/Annot/A 43244 0 R/Subtype/Link/Rect[93.6001968 663.229004 197.628006 682.908997]/Border[0 0 0]/H/N>> endobj 43244 0 obj <> endobj 43245 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43246 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43247 0 obj <> endobj 43248 0 obj <> endobj 43249 0 obj <> stream q /X1 Do Q q endstream endobj 43250 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43251 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43252 0 obj <> stream HWێ8}W tye1`I;\xIhd9Ė=_U")d;YC)N: ??<?LDRP,i)fdzh]OH4}쪡o^Mny+O:]2zeZœi΋tOޭ6]zu# __'ֆ)%gv8L#Wx<2P ϘBĽZ'z(&ӇT73M*cL>)3.y&Ĕ1 0 m"F6Dr"&% 2b/ 2b*b*b*b :b :bo&bo&bo&b쳈}F"9>R$TET+ Ն}Ն6DCՆ6DCb PjCjІ(}ZE6PmhC>R"TETՆ6@ m"GUjCj(B QHPmhC>R"T&Tm"Tmه6@ m"GՄjCj5(B QHPmhC>R&TE6!`V m"GՄjCՆ6D#jB QHPmh'PmhCT>PmhCT>!*f_,uߢYv->Tm"h5P c  ~~:,%N\0p#4@w+&9ju] ۔ ! a$S% 2j6U{cx@xoho~ӸNwa!R2]6u ~.&(°nbCt\ XIdtY<{Zs2v?Q1;.+,Ysf˵bkRpJP4K8we+ri 8&d!d de){W;޻h@?)\ԠY &6QV!WtٺmC5lbˌ(E`=Ly9O636|2O:չgCk؄KԪ%Lz&Pօ4ZnU^dKwl#(9Pr^Ҫ,5lI}u#%_/sR͘0՜9(7Fv|pjB&,^[w-`[jNףœ'RRj5ʌ 1x+/аPfӱ͸-5OF'= ʘ3bwź>Ё)0uAVӰw#:urRM^ziY>&CW?/l6bg6Y|WE9 Ǫ*(*jy3AO?>OPLyCAk:.54E*B|RG߲vVYTԝ;'F:ɗqwOry"Tendstream endobj 43253 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43254 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43255 0 obj <> endobj 43256 0 obj <> endobj 43257 0 obj <> endobj 43258 0 obj <> endobj 43259 0 obj <> endobj 43260 0 obj <> endobj 43261 0 obj <> endobj 43262 0 obj <> endobj 43263 0 obj <> endobj 43264 0 obj <> endobj 43265 0 obj <> endobj 43266 0 obj <> endobj 43267 0 obj <> endobj 43268 0 obj <> endobj 43269 0 obj <> stream q /X1 Do Q q endstream endobj 43270 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43271 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43272 0 obj <> stream HWn8}Wph,^t!0\vf;qhe[V%oH݊`8*>$)b]yO?]yyJ$_z/&VʈqD8U\E(w.e_^\7Uw\G\+qE/V~VBmdaDXaO'6u(.44ŧ$Eg~]5=[6*&~赒4ڙ Emr ]%ұB& ~?%b/"XL & 8DבM)džK82b  YCVʰv)Cbԫ@bԫ@f@f@f@aԛ@aԛ@}ʨO)> ԧ4P1@}ƨ9>pb\K&Ҍk)P=ŀŸb S Yzq-ŐŨ\R Yq-ŀŸbbՌk),F}Z͸bb\K1d1jƵC>pf\K1`1k5Z!QV3XƵCVbb\K1d)P=ŀŸbb5k),F}Zøbb\K1d1ƵC>pa\K1`1k Z!Q0R Yq-ŐŨ\kRRƵCVbb\K1d)PF$o6nb{dau,bDt._+?d,Mܼ=VLM{~};ܶg|!MǻW|UMyoFISjwb4εm4-b9c_o]5*|,IKϲW"׮[Aou?[n,QbS2,,>F9,MnoZUq %SjSwcpKlʃr`U#TߎOmC] MU43t뫦{6:NcwKU煹I&nh-TGfc'r}ܴW`R8Ԟ{zxM%Pb*c -_ø5 $mᰜ[n*ʶqb#6 vms*N&pY3é6,8Qy܍K?qzq6.c&d;dFBֳGj̇<2N0SɳeQM?禄5" D%5" ΌY&dV4'Y Ŋ5!K֘)fֈ,F]^4Mhuk:(JH}Hun2v9XT(CQ[a cJB0( "jz?vJOӬә,#lUL‘Uԣ |;З2>'3COv>b4ȓP[u>°i;l*Xrm ?%MYwu;4Ơ?)#/\[ݪɍP6e4VtSLswH獖2 0@|]ǡ^ո>ثEw,rw'T9ONN7Aݩq_Æ(RczCeIrfƣ"UKY犪\0ԹF<(.C면+:Ŗa0,$k'V$~qi^+q#^4e^rae7n4mU4bd殞HP$r5S7U.xO zv5moJ}jo8}_NBUTN ֐*΅޽c޹t#l桯_m_ߒ5܆6Ir_"]ne҆\χ@\\2AN1 xv[<}im ^iwEJ!)9PȡJeQ$r즥wfW瞴y~#owfFe'#d+7`en&ۮYCu˷u3`բˌ7d}7D/+̡U]6b3_JTUq2NЕHN7_K[scg!!>k$-x[*t5#o|tQLEdl۞MwWo[-Hqlmʊ΄Mz4i#) Nou_Y>r'/i, `Oˤ@ ͧӢ5[yzh!r~'s|ND4Inn>O2~Qf9]n=/j7 9KYDE>/`RyzGlf|B{26[XFk:?v cm=!{.zoZ/|nx.^G_>~}ʟ^t? }Hq1~{Ŀ<iZ$dVc&'*tznINjafU+3eOBOoqYLvԐL2|JG?$dlN;꺄Nb*Ki9唖ZNi@+UZ)JV2Li@+WZ9ʕV UBi@TZ%*KbZ#VDieZ^bZ^bZ^bZ^bZ^bZ^bZ^bZ^bZ#Ę-Ę-Ę-Ę-Ę-Ę-Ę-Ę-ĘĘ$F,{1 h);{1 h);{1 h);{1 h);{1 h);{1 h);{1 h);{1 h);{1 h)ߧc֒%,UrB4XGuٌ*(+KoZjVo. >vs֟@u;lpuYoizzmOLa[J)܋幽|uvO:Yendstream endobj 43273 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43274 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43275 0 obj <> endobj 43276 0 obj <> endobj 43277 0 obj <> endobj 43278 0 obj <> endobj 43279 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43280 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43281 0 obj <> endobj 43282 0 obj <> endobj 43283 0 obj <> endobj 43284 0 obj <> endobj 43285 0 obj <> endobj 43286 0 obj <> endobj 43287 0 obj <> stream q /X1 Do Q q endstream endobj 43288 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43289 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43290 0 obj <> stream HWkV_q?j&݇^I6U0찁P[ Rl e#if=~>l:}n7e۫|uuL_> >EPoT(5*KmVU.ЪVjQCuZzYm=Sm\ݨ.x: .'zjV۠CbUk,dvg=iDz{^͝:$qXv_\vzM_g'/.Q#ړvKްO؏%_FF=*WGK}*(l 9}.";ApN!9 Lj%q̳,+,]kice{#½po{+; w}'}'}'} ܧ} ܧ}g}g}g}}}}܋jPZ-Z1bI,ZK{yh-Lj܋Z 5,Z 5#p/Zk@k9Y#p/Zk@k9F,^րr̳@k9F,^րrXh2#t1{KgrXh{Z Z1{Z Z1bcZ1bcEk-h-< cEk-h-Lj܋ZZ-Z1bI,ZK{yh-Lj܋:Z u,Z u#p/Z@k9Y#p/Z@k9F,^ցr̳@k9F,^ցrXh2H@k9F,cZ1bI#p?nG񖪭;AH'X` -r@ h%B+ZJV*R heB+ZʁV.r hBZ2@K -2@Kހsl8=LjD =džc)KhsX@Kހsl8`=LjD =dž)kY{Kjq;@Kނs;@Kނs2@Kނs2@Kނs(@Kނs(@Kނs@Kނs@Kނs@KނsRcĒZw w w w M>w M>w ;w ;w 9w h D"*©9:[O'dV۠GJ"ף&]m8ޚi~q/KqOg\Qv{utyW_0ҋz3OM_k?ד'^[4Q|m٪:X^?`ca;֑=pqse̐Qvկ.F8JAIr7ݛ~X{O> u?mUl7g$Y|6.?pǰjTWU7ڍ{2USuTݽ:uۮ-2[өn]>6|^[\Lu_mlֳm#ߺWߜ+0ٰ,?raXPl|SDģ%a_Am0{3, |v|oW~qtzQwBK*h}J3|Xwt$ڡ=Eߊv+GWesT"(?7+gn΃3NںN#VXB-'rB+ZJV"R hB+ZʀV&r hBZ*VL,8F,1@K - 2@-D =LjD =LjD =LjD =LjD =LjD =LjD =LjD-=Lj%8Y # # # # # # # # #w #gsX@KށsX@KށsX@KށsX@KށsX@KށsX@KށsX@KށsX@KށsX@K>< cĒZ?f?|rVi5 f+`?ccau7쾥 p& n$^H"3IaÈ|!x>K~]iH= >y;MqY1&;UE_^,ǫ ;\_gvgQiaL)aW~@ *b p7tRID4ލI(CS!E"PVt+c'Jom4jDr&Nƿ[uL1 1Ncc7 UÇjq1EF.ԃzd$Ik`R[Sem͓GS|`_7u|٥E 18#-&!a)-\n8t7q&!8H}m;ryl1ʱڤt02H-<#'.Zt<.414ՉwkjMZ9q6YpK%j%FA{3F&*Wd FjyVw#LյQEH Fi2[Ae Dqe۪~ujhF/Ip94b/zm.ly!C'e3*X饉oG绡M`5+[Xc lw0cȶřL $p Fz?~-x/z-Yendstream endobj 43291 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43292 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43293 0 obj <> endobj 43294 0 obj <> stream q /X1 Do Q q endstream endobj 43295 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43296 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43297 0 obj <> stream HtWm8ί##%n`^V+mSn"E{UNJC{I: vEфq]O_v޿ yo޽ DD2uX"4QL˰3 x ͩm{j6CWaW2|7`P Ix9 S:=r&{-5?,X$Lt{0P}Q*) 1|Zpp. H߂Ĉe {(&k(x}< O7S>&w0+O%r|.OJ^^^^>&`{5^{5^{5^{}O>%ا`zS}>#g`{sYAՁ$Tw}"Tw}ٻ>@u}"{j]j%Z(BQ{OPCS$TE!`Vu}"{j]պ>D=JBQ{OPE!gE!gw}"TETպ>D=*BPj]jZׇ(ZEPCS"TETպ>@u}"{Uj]jZW1Zׇ(Zׇ(CPCSmL!`6&TE!`6&TETu}"TETu}"{ պ>@u}"{ պ>D=Ƅj]_hBQ>{(BQ>{ׇ(}SX&)8sTf^ 뫶kdEi?ٚj8Zs8twYtMg]EYeC'sp@x#k)ȉN\;t6P܎)˦_0bH{Sѹk;*Ӻ1gWA`WP G+y4Rv4)+oKm\ũLBЫ+H.Xu tXBRk퉕B3.t=ӱ_M;۶QMK s x:sG<"=0~0dj*j1M3Y>qj+kچ`Ke9㹳03+R Gz;Weq:M`PtVÖL975{k]k,c~q3as.#ꡒg4T4Vx>I^ 3gj@y`YE3&cZjU?wLh-qt;.lb m1&k*d2}{ũ|A}Y }u0!F 64\q` dD.Z5p ,ܸhdgR?UTih\cnϋoI%0+kbh|֣zxln5FnpM\Q8cQ{m|/Cg .-DmB$SMwX-dUX:! A_X0]*͆/tf z:R2؛L`zs.(-eVdEYA;JRiɭg wӥ}5P\<'kT {8IZOT+Sqf|=]k[{Ѷf^wC{dYlJoc\+[9gzs!ybmЍ8`RLqQá>8YVk4־ڏKhY̓|dBk߂Ɇ|#AL—c iFϤEm}^L$> -98Vh=Wk7KUC5fqgAϹ1jk<:?c{Œ>gQ.m Wi (@uC/[E/)Z. 7z ΐ)Μ쓩G:X/J+Ce:4|-ba|˷n嘱4[71h(zG}d Rf+tK tLuOcD]8_4wm@CG#ߊ?/g/_WۄO,;߿6鹫+gsqnr9.]4 #VfM{DUlJ74)NކFˏٜ`mry!v~`ɶ_473Ĕpp~ [?=55>}:aL3Yw5}l&״f]1A?X^ٻz0 q݂+lRpEaU[}b04OMIx.;#*I^RՖzFF<MkY۝axx4} TG 5oi(9n$&SwEQgyn-xrه슮Uw{e*T6WzR,XN`9ŪVjjQjUZS:Wzɲf4KHe(,XbYR*R*R*R*R*R*R*ReU%k5V}|/k, ^XX𽬱 +{Yc`)W*ReU|_K5V5Vi ^XX^XX^XX^XX^XX^XX^XX^XX^XX5𽬱JdT*ꋾo'Cؿ}2>k{Un*^~\fy)ao$d-fL=ceS,XNjZjFZjV:Nz^3UZLBJ `2eU, X^bJU|/k1 *RbZLBJe-&TXPR,{YI(UIV|/k1 *RbZLBJe-&TXPR,{YI(U)$ ^bJU|/k1 *Rd9{YI(U)$ ^bJU|/k1 *RbZLBJe-&TXPR,{YI(U)$$RbZLBS瓐˅(rGQ)ʊAYq|\f*qRuo䤒ͫl[d@?+cf|8f3oޟ?Ƥ7:tu~zFoϻz{#Vh&_rkT]v؂/ 'b>[]6`,Zf+?4e|3Di<]I%<{VgO 1Dendstream endobj 43298 0 obj <>/P 400 0 R/Type/Annot/A 43299 0 R/Subtype/Link/Rect[260.144989 647.729004 425.345001 659.713013]/Border[0 0 0]/H/N>> endobj 43299 0 obj <> endobj 43300 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43301 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43302 0 obj <> endobj 43303 0 obj <> endobj 43304 0 obj <> endobj 43305 0 obj <> stream q /X1 Do Q q endstream endobj 43306 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43307 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43308 0 obj <> stream HWko8_ *|J0M-@R [IԱ%%7l7lE:>"{./>ogyHD T,UlWFW8Xt\]}[" )sDG&8& ~c_9[(Wi" ->7Q̀ut!'8c 1` < Y`څ$^%^^^^5^5^   SB}O i>#gP3B}zz y>'i}lIµ>Pp!+Tc k%ZC>p$\c"\c"k} Ypp!PV1dJµ>,µ>,B}ZIǐE\+ &Rk} YzZCVǐ1`1d*µ>,B}ZEǀEǐE\kZZC>p"\c"Uk} Xk} Yp!PVM B>,µ>P!+Tc"\c"Մk} Ypp!PV1djµ>,µ>,B}ZMǐE\ k5ZC>p&\c1d} Xk} YzCV>O<׌ÿrYDg f-"{BI4gM/ʓ7`.d@6ɳl>UVNu$Z\wzUMN^ Nn[tkle\uc.jĊnhMU]9RC7a0wL>@~0'r\{,>6U!qۧ^ R,j =zKcrKvV\L&WXHQV=< T Pp>#H. mPSqLź)w.v[պ]pce^W}ߞǛ G(yױN+ouh𸱸^lns;:xBۦmuyJ0nrTq8ܕnafՎ VPkvtxlX'W"{R qq_D(+qy4voiGC*wÛ$ɘ`Z`R8I! X\O! ,OD$OLSo<z@h Pĥ% W%=,A pԥ9 Ɵ,\b&c/_6bׯ?v캾ԥVU>o-ªpShaīS{SM2117͉=nB2Wm^_,~XWa\!x:;ڧ+7_e jH+,y?>4.֠=dJY|ơp TkYCϸdPefu Q..>3):pgٮK̢.÷[si!!;2qy!I^f25AǯG )#(mYֽڪ`V%pn)4uQ*)t 7L{b wg3\ 7M IpљaD~:y_?~q ܩp+sJG3:OW .f*r^LC?V<ӕܧdٔ PE.lNN^㋚7?}/chuN*ŗx-Wg?|+1wdk,^Hk[T EUhƵ;r'2v8㳶%a3 }683 & ]G*׉VN^]\|=xS,9xҕpz|(♌esXmUFYs."w/C~D/RJ5"ǥ%]0#K fNRx (x {}( _碇a[㨋6.(ѶMOeQ)0* );4Kz:Ml4<S<\yGoce`o(@(滊L"3 Hrbal/ij>ޚRqIk8-Ubl)vyiwP +ui;%/iGP PɔOR3gˋѳ|ҁthFV`x6!bvbbTw TwaQ 'jo Ѭ[p@ O'5KYM![t(Ht<$V*K2ɥ/.f[vnS8 F&HA( (}`7rl\2R ̣k|bPSk;!}j#~0$RdHTsn,Lĭ~TmZ8M. a4Ԍ cDuGTZfPZ{M5qZY]hGt0BMWoz:AٿВ=-#:hJ|czbfivͰC:9t%fv'y;nP/9P]b_l~2aۻϷ?߱!1ES-wb6BR1$k8 ;wSWDeRFac)^aKժ=t,k_VᗓƧP*<'l3{@maDoΥ?&-۵]߫1YxԆ*1:` SH=y0ZJ4XSM!N / To_3bV ΫՁݳqsF?+ ZȺxnn):@4/L୿= huϕ=\ǘa::la NvMD;xVWCsw9ZMm(qkaW`L^.Q{TY%KӂDI+GKT&"8Kr}Qendstream endobj 43309 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43310 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43311 0 obj <> stream q /X1 Do Q q endstream endobj 43312 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43313 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43314 0 obj <> stream HW]۸}`O_ 4_Mh؇LhlNĒg%y'{)Qty'mLD^CR7*xq_ް|+ \T,UHָo^%JnEW^\ה;֔?H]ڮnbmWIeb,ٶZ}\pg]^).# |㧄ʪK?qae ؘcG$*"a̳0,!b<,]X<ƀ% 2R/ 2R*R*R*R :R :Ro&Ro&Ro&RH}JO#>g,RH}N#9>[B[B}YAcJŘg1,µX=<+V1`Řg#Jµ,B}ZIc"\1"Gk1Yȵp-ƀEcE\+ b̳k%Zp-r"\1"GUk1,µ,B}ZEcE\b Xk1Yȵp-r&\1`Řg#jµ,B}ZMc"\1"GՄk1Yȵp-ƪ!\1ϊc Xk1YzyVrkf 5wvu&X{V񔥩ej\WOL1QH;cVeQLul hI/2l1lcRu%>*Dm%u).b탐Dz;fwp(ȒS;~H%CdH ?3sSpI&uC)/ [ۻ^P|Xi.wE޴]KuX3ȾOYwzSP4/@Q)Ew-%&_c?T,niuMD$"s$etR |m۫D#Aens)R﬋fGjXތ.]i2.ߚRPl1b).zAL`ٜj5Ϥ%IfxƼ'Vg8pb1N \e'*a󱯓auqNUѕx| * 5< `f6_ קjܮU*c\Te'} 2w"ciIDz)S|<89E|r-sSe %Ր4_sq/~4֟lSADڹ<dv "<4B#[M5paǙQg '΋` ,Ě"9 ,Xnb4|2d1efo֏nxxWvT,ǢJ<иúv.ܕ]K%?.{o:Ppzda2)PֽC||͇|R=!] k 6J$sw+ᴄ, OȻ0O귔LϭkB7teSF7E7scZ(KPv٬ઑSX7jҜeeTyuˡތ9S[<Pv:{ &>@RcۛPFGYp+. uQy\`z=້z?X]z(9GHgߧ% w5ܙ gK R?h%;C&>|O'ޜM՜Xv!<*PqlR֡1$˷)cy<^S1Xs>[nk0́ڀ|L羐jqsư207%|v/S۹*UPb1{S3ǃ`sK>"=?<!N?WK6W @Nm9A@ Z[b[%g5=p4:UOKӁ'N0wr&<f[JӅ4TN-4 #NZM N]LTW"̤cPM]f8_rF5Š#Lj*mA8hm.@R܌<8KPcs=ua`Fz 3k 63A/=Ʒ$lg9m&34dD߭8< -}<59|&myKؒi2zj:Lu@p;/njp |yX֥ \]i{Owoi=C]o1$pYJ]RDENB4#:-b~wQZl%2I830ykVK^.!&<:,},PF)_eݴusg2ZÏ=siBcޛ Gbj% ` ($Sܼaܸ u+-Dz9Իa5C,LF-Em/:+nRiȜÉȝ iluiq-gG!]C$AQ:0ٯ$q.0{N좆h^a: B[0;Cr`DJAkY$)zJ}Gzp$-0a4i"Ҵ`&wQ!;90M{=0V݋;:O1B*ut񘝋 M5 Z(zz-c]d! F;T;x^*ڜezS(1_%- ) v-5pfQWJ8ʹ e Nˇ"RyJ>͛J~T$lh}Xi'y>UB+UVTibCܵchNT_'qRaP\>u.3.,XK5Ǜ)=*NJLg!=s.k1~#3߭2JLdB  &157hԘ.l@(cEmly}~N#V"FMCh ?Ne@ !5W`zLOe;QY`ꅢy{ujW~}/u3[!dR~oݿ5b6j.>OTJ*N1 `Mt*z4%m#*8,?Ҏ~4*msvղk`D2Uv|}TO[<_*uuJ7'#LO Ʋ(L9oqYOؒl纭N͛Q< o{((!, YSi S{kAF`bԼM=mC՘ }hhIhТ*n uWs agPh!LAXRrYJ2mX-xsܴ%tY'/f,Ds6Dߗ _fHh3ݿzϯ~ۼOqendstream endobj 43315 0 obj <>/P 583 0 R/Type/Annot/A 43316 0 R/Subtype/Link/Rect[93.6001968 663.229004 364.032013 682.908997]/Border[0 0 0]/H/N>> endobj 43316 0 obj <> endobj 43317 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43318 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43319 0 obj <> endobj 43320 0 obj <> endobj 43321 0 obj <> endobj 43322 0 obj <> endobj 43323 0 obj <> endobj 43324 0 obj <> endobj 43325 0 obj <> endobj 43326 0 obj <> stream q /X1 Do Q q endstream endobj 43327 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43328 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43329 0 obj <> stream HWko_1ph΋$@Mb;0V%F޹hj=NĢϜ9#l{2믯~{hJ)_47mjjdjhըcYͷ~omݷJMr¨uZ$ }mVۤ dRUTEV6]ԫLgOa.R_Y׬/}l 90pN;}OK;W銷6qgy:{Hu .QߕAkA]~ԍJ*mRI.sN%9 Lj%X`i-Y #,]kice{#½po{+; w½p{/{ 9p 9p p_p_p_%p_ %p_ p_ p/:Ai9M h-Lj%s,@k9F,cĒ9X#p/Zk@k9F,^րr,@k9F,^րrXhX`rXh{ZZ˱{ZZ1bcĂrX= cĒ9F,cZ1bcEk-h- cEk-h-Lj܋ZZh-Lj܋ZZ  ,Z #p/ZkAk9Mh-Lj%s,@k9F,cĒ9X#p/Z@k9F,^ցr,@k9F,^ցrXhX`rXh{ZZ˱{ZZ1bcărX= cĒ9F,Jr* N.W"9_,jqlKe\yr_ݦV0L̮Ouiκf[n]_^;~nwu/L7l =9]%a!j"dOF ZNh9儖Z^hyVr\h@Z*V JURhU@ZЪɤLj%8XhiZheȽȽȽȽȽȽȽȽ cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cĒZ!h;{ D=h<Z"c4-{r1<Ƚ @KށsFJ%r@9F#%w ah;{Ѱ(8F,1Ƚ?qqRY:o?7V?-O4t_Ua+ѬiQL;%h"Qzy5*Eʿ{"͎u}{ė1qY6 o>|14L f'_Mݪ_zU8㢰]=;Jl?h)S,]-{N@iy_t{SК-|?β"pNׂ]ōkw7ͭWIͭ=pIOpSm&\fP[mx:>R4~'qu7Ѻŗ@_M_ (bLOl>>Ӝ/YsZ=#anɲ@ʑz9{oYk纜7nͦp _ҼRg*fk>YNjUspذCkәV[m NVEjM}-^o>OC3vcǃ>7pz׫ 붝>jtp[nvkuX60a3<[ktwJ{:Q=rc{up'dhTe<$9{|T+#zIW_w%b4+tZn" /_|~66+c'J7G ٛ~23?wExqSwnӢ tK8%WsPZr= ?Mda>LܛO$^nqp&?.w%AGon.V98xLWcMN]&!nC fPQBq1J*:`KzX^Yߢd$K(iȢ4CPG)Mԛa!8㉦9_R9 ޢ4!иA nPb孔͋/:.c?Zj P?W byٱ_H pDiX{pb.p/XDrW29//W\p#IQџ1 }TH`fB5ijIJ)D`sn{a{; ŪZ6ftk뫢+}8 T9B |K;7Y9 U?qg}3:T-D0u(hCHDMJoa vl˧a [ٵ>ME(zh9T97.:pfJF*S`T"ukH!l%CZsHKSm@ZA*h^s)B&ʯyf:Ki CAU*Qb%^J5Q -J Ji$n &3(ǖOzJkVdъ_?(_w/ YG ҧ | Op c!nycc 46Ybp15[Dy(& +eh.">&y[n2g}T!ʘjEt$q܉">Q\vaA# [ Voob8V֛NZ6~oH/:GLŋieTE]Kw2 ;?<4ep0敼&#݊ulm7Mk~)?uIZ`dpA>ؐY"JF#@V#Vk%׸Vz5$Vo}WZKK׋}mR${> ͉L&ɱ-FwXֳ[Xbs`Sq>tCd^ mNR@'SUh@vV'+q[~e6 =$*E@]H9΋JsAI$*^X}^"JbPHtwPٶR]t! f{x/=f3N^iu24PUe.6*``#h~wm7q#=s9{a؜sATbW"@L셤Y`G͞Xj? Wz](Pj2%bEh]hpS,OA \BlI.r6C Yi>>Ff6Oӟd|fO~Mn˗8ã㍙0gp+Qx߿y7߼O -vNendstream endobj 43330 0 obj <>/P 904 0 R/Type/Annot/A 43331 0 R/Subtype/Link/Rect[93.6006012 355.088013 365.088989 374.768005]/Border[0 0 0]/H/N>> endobj 43331 0 obj <> endobj 43332 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43333 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43334 0 obj <> stream q /X1 Do Q q endstream endobj 43335 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43336 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43337 0 obj <> stream HWێ8}WQ $j0`sAŴg2@ m+%$J$,g*/HG~_yp_X(,KekjrǾX_?=W~cP@,s9]uײ"C.#uy~+QD*3>|wϊGʋ5^P?w]hB^H4q̗*-0MG|c)`gc D ߳ceA!H$){A>D\8QQ rsw}{{᱗{鱗{鱗{W{W{O>!'`xS}O >#g`y3} >'`_x YNA!gE!gw}"TET+պ>D= BPj]jZׇ(ZAPCS TET+պ>@u}"{j]jZw$Zׇ(Zׇ(CPCS$TET+ պ>@u}"{j]j%Z(BQ{OPCS$TE!`Vu}"{j]!Pj]|Pj]|Q>{(BQ{OPCS"TE!`Vu}"{Uj]պ>D=*BQ{OPZׇ(ZE!`Vu} !Tw}"Tw}QQ¬Mp 1xGq!ئb<ᢈR^\ vI)3>,[V6CN|\j#bA[]h]`yqر'׏lܗ#k;VVcٱ kO!DYu$]8s=ٻ7RDw/87z`]|3/1L2lK}ZcC~/[5-`shrz'A8 Sas"9Fۍ ҳVq$/pdq8}|GyY +cr,1*JFhiv7;fx׎Y,l'nۏU!B]v I5ǮoF'kzb|?*sO|=ߖ}$ǻPzIƒ{Wbgawmazky&J4K3^-獉IJVYf̏#%@mQo%joބ2E~iTjaMF[5/Þ`Z2|)joxǍyoQW5j:#l. PG'=a ]_P8&7f1bja93L|zQ{XeMĿ& 'm= ^N8 skN{#o1`uӜ<Ϗ7 59%m\&(?s?`CXPIM ̀yISJ#f[;[tWf.J(*,;(*[$/LSܡ5[]W  eF܌O8[G2[-9ʊcVe@ymm̏4%k0|e~Ei N:e0%MPY[6C 8KoAV'̼§XW㴒J.@Gv9. *T@%1-q |Q[&i6bbGrRm9SY bj=|%kRߒ9gtE}JOTx0*/%!;9k ԟ_H}t_>+3aԲX|=_K*]^}5- S͆{{Mf/bs~缠hHO#hLSd:CՍɻyp쇗_8om|8u8=v:^F,Ն9$ũ9eg#o}sSQDorru2z E5豖 Y 2zyd>nwTpz}\oOESX4 ŖJFPFipAMgѣK,( S *WQNGA9g9aE}RQI Ok@j*-ס8͘蠅V'}`2r* L{4WB{<8LU]BU SNKAT[IU}T0 T5ZjRդ8*0UUAfvBUtLUB!($Q(@ I*p)I90 BU>RKߞB9ErQ\jG-P(-ed COi="RJFOާTQfD*&}w-E/'4ގSRJR1 EYQ} ESSEUU*SQT|-6UڎPT{0Uk(-%E]3f.QRJݷK7u2\UrWFGi(r+=TuH-D>VPzJ1U(r ENQWwP`{J3()-ȥړ(ct{(t(t)ô77B4`Pz__ޭf~pĶ`GeT07aeF- ,68˩3JY?z:5BY1'h*:r]b:A0i7> Y6>9 n g_ƈ<`3{endstream endobj 43338 0 obj <>/P 1063 0 R/Type/Annot/A 43339 0 R/Subtype/Link/Rect[93.6003036 578.030029 212.580002 597.710022]/Border[0 0 0]/H/N>> endobj 43339 0 obj <> endobj 43340 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43341 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43342 0 obj <> endobj 43343 0 obj <> endobj 43344 0 obj <> endobj 43345 0 obj <> endobj 43346 0 obj <> endobj 43347 0 obj <> endobj 43348 0 obj <> endobj 43349 0 obj <> endobj 43350 0 obj <> endobj 43351 0 obj <> endobj 43352 0 obj <> stream q /X1 Do Q q endstream endobj 43353 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43354 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43355 0 obj <> stream HWko8_A`8T_z4ċb"ӱfe)#「duѢhDG=m^,bo޼{p_Ne 2Ԃ& bg% .MWsTM[nMߖk2X{8[ &X2%QʖvqcljvJhE}Y~ؓU$(N'biϖ~I(l8q^ΫncA:CAi3\-PdLb s Co0 2BHQm%G@v9Gr1dӹ8Y,M\] XP/

DŽSO}BO< >ԧSSO}F<,'Lb@u1d] Xk] YzCŀEŐE\+׺kZZCs \b"{k] Xk] Yzϵp!PVu1`u1d= µ.,BZAŶ$\bջ׺|.,_p!PVu1d=Jµ.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] YzϵpmEŐw1`u1d] YzZCs"\b"{Uk] Xk] Yzϵp!PVu1`u1d=*µ.,BZEŀEŐE\׺kZp!Wb"\bջ|Yeb5mn\,d-A:)kJ8p.nW;{E~clclξVeכm}T>ڳ/A(lYi.)0bma :H E"܎튍m坣L^}y.t]8ϫtWBg8ul=+ÊMEoZ֙;gy;IIƐ M}HӐsg+v] ޵A-7ezW<ÃEJ7)fVTQX5н}/-X1brh{![){u`c`ըy`,ߞGG0n$Ş,p9"p[ ࢶg ф'Ӗj| }5cnQNhOnliOԇfWǗì|T'ؑzlOCUU:],Z< +oZ{0Fa*\YZ8* YE߰|bC55T6О!d!Ԟt<6te65M, uQpG QK*ڔ+?q%1=ViȢ:ͫGi6U;d9i9˟qL~bcLng<OaV#m`!6Smh?~Or7Zk7\L+:g-0P#%Q%6NP*1'uEb<16!NfLsv2"W;9 ]po̤wyUP4E1'V!Onv4Sm:/+DłG?%(aZ]rul|s aȺ6JO:gcFʷm @TYs !DmSH'8[[Mء\lG?b3X?^+<*INNlAߤ*$ p$ocӚ[y?!6oe1)sT2843” =*SUQ2v}o?^^OWWOKp4Dsr>4S_?}nVJݝt w9v1ԷJ`/ *%ᶻe 3~;m\}P:N3u{~۽ŦuH)dI .?앎ݸdUb;R6mǟgE֩!o~j1;mgjhT;Tطad|/ї[˜дE+b /8f[->*_6麼- fP2k'ɿk0Fau,ؙRKa$1Ս}v̴>ΫC}"LM}ߛWn6+5DRuwQ([آkJ1=!)uѕFg8lىMeI$q链.9[ݓ{OS~yMкԾ_ :Wu=8 Gry>Cm#ZZ1mڌWtUѺ^yIRUBCMI03g2Z7s ,ns0^#0pɆēIXrɯC,6kOiz.LysGƾr4 aIxN4n~z7{rc@˨8!JYB - T1nd nc~|4* L !PH= )o4sس֦1vBisQ@.FqU&Y\i1Vwx妧W^/4l$;B N­70 C@0|w'Q6=Gpӥ:oA$xA gq G g`aY˘TOv̸\x+HgۏrΡiNQQHljsLz6t! ԅJ(:^N\mB\[d-:G3HꞰN?Nhdn_U߯*)@2>O9͹l-Mm&BabJD"Uݺ(kt24܀#Qv,vX!!-,V 7W;>[H HPQLrV?, Ī`R 嗿^~1endstream endobj 43356 0 obj <>/P 1039 0 R/Type/Annot/A 43357 0 R/Subtype/Link/Rect[93.6004028 312.730011 253.645004 332.410004]/Border[0 0 0]/H/N>> endobj 43357 0 obj <> endobj 43358 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43359 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43360 0 obj <> endobj 43361 0 obj <> endobj 43362 0 obj <> endobj 43363 0 obj <> endobj 43364 0 obj <> endobj 43365 0 obj <> endobj 43366 0 obj <> endobj 43367 0 obj <> endobj 43368 0 obj <> endobj 43369 0 obj <> endobj 43370 0 obj <> endobj 43371 0 obj <> endobj 43372 0 obj <> endobj 43373 0 obj <> endobj 43374 0 obj <> endobj 43375 0 obj <> endobj 43376 0 obj <> endobj 43377 0 obj <> endobj 43378 0 obj <> stream q /X1 Do Q q endstream endobj 43379 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43380 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43381 0 obj <> stream HmoFW#c9v 4/:hAE"QRKL):;W/xS,T#ιͬ￿zE^?L;co\U*o~ͷY2m{7_]ׯ7Яyή~zg.{dW1ΛeE<11 yťeaWfgM[^~t?P;cT~4nɹxӧmٷw!ݜp\CPa{$ңٟ~>7^9vlH]:iO>B~.UʍNzvi Gv}bnvnZY̻r濧~_ܼg_7׿\7?|oӬ:w}K bVFd壭:}Te׏~gh6TU:\bg+GxS277'|>3۴O'']}aC7Q{4;wSa^6YyzM0tϨ>>"p ,'X`y VX`UU V X`ՀU V X`E+r)%k,%,-X`2eKހs\%zo@F.7\#`{ D =Xk,{z5r$kz5rKނs\%zoAF.\#`[{ D-=Xk,{ z5r$kz5rKށs\%z@F.w\#`;{ D=Xk,{z5r$kz5rIVT1Fwx&ju,3a`> tp͚pnJvwjޮoiSu+?=m=J,<OQ?aػ1mg4l8&oVgjo+ud&L7Cwm VJɩ_fz񮥳-dݘ|]*vp8X_ZN.BbަMVn؞[M7vhmght*j#UfHGr(vCtC7JemkiLJ&u5^߉t|jMe9FHU8un. cjLݟvP?VxzqimH=.(f/,J_@J_lE% cIñMOq5RpZni K_w=9Lm:Xt]`?:JGoJ+ f>L͋fW\Mm>+LP3vN ~rN-짻ae1?qW1԰^~Zlo-P`E5u;_RK%"َy^~ҿ8 |>:xр%?XܚcVCow3(!!Xpizܞ gIQ, -M?Yz%,[YB&gb9:,/T 2"dINù-ćup?#J^2iXe]%a: /}|#\D7._)!bo躲`žLO)* F \PeLBXzƇEIRW*i y{h<~AŶP tCaݤMLfёaLӶ\USv]BDJ7{zh,iߧV?N=&=w%#oqQ!I lEomY6PXS2BFK1Y]я gZlx#  D'?|mCmWM}qУw;?1@oUfృPjPYjANr"uFoN$#}5}(eb_zs"ꚋ 4QWjUuݪe#>8E3bo#XaTW蝨A"dUf" ?uÝOhs8B J0GX8MI3z N'F0)s+ )RKZ'ZlW4Y\xIfUٺr?}KnrHSYgBX2TSGJKYd),F7 $62"ˋO~z>7$וֹŕb dYhzfb7ؙ23%{d%'y´oƬARjt@J)|XById@SLd>m5N)^q%%v|K/Ɲ&tV%Kl2f.^Wd 0fVyb8aB瑝$dXt9$`14bfH]A$z>.pn %r!{@+Qr#&) _̃*6Ig[y܉|c[N-TrڶZDcyXMz xҰK3':0D&4YBV~J7=٣ /e't!$ X-_qAjz uagX` +'TOc e*EI JEh7|C(h̀dIWuA`DE:ۛ"6x?~ӗ58endstream endobj 43382 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43383 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43384 0 obj <> endobj 43385 0 obj <> endobj 43386 0 obj <> endobj 43387 0 obj <> endobj 43388 0 obj <> endobj 43389 0 obj <> endobj 43390 0 obj <> endobj 43391 0 obj <> stream q /X1 Do Q q endstream endobj 43392 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43393 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43394 0 obj <> stream HWmo8_2|ۡ(Ф"{mh\B[-$9i7$K"G;ÙC>oYݒׯ>ܽ#ys&w)"a"i$HI RwRlN \}-MۺI]W6:Z$d,!CE9 6¾A.^^VOO~*ŷ*N8f[]s߮F1<,} τ3(_olHʈ<A !HCp&=k3(?k>ʱT\]^x^x%^z%^z%^z^y^yC}>D؇ay#}䱏>Fa{}O>Eاai#um@ umwmBT g gֵS@T aV umBT aV umT+պ6@!umT+պ6B{j]պ6B{j]A!= DHD͠| Pj]A]A]պ6B{j]A!=JD Pj]A!=JD͠j%Z(D͠j%ZfP{OQkZfP{OQk3(Zֵֵ޵ Qk3(k3(kZfP{O Qk3(Zֵ Qk3(ZֵSBTֵSBT aV!umBT aV!umTպC"umwmBT g g4Mao2:Zdpf"}jrh>c4caz/DHcm_ǵp) LdBVoo$F0Hdfg3/$Ґ&ЭIU)۟qؕ`U@^e:26Ûg{;.2_d=tvZ$_r4](yVce>܉prW4uM֝FEb>hcMTT0s|<UGl}=4>ЋWKgTEuMO]m9y sk716?%yCd?.q Aęxf,euV!MK틑'rcW3Ow 7?^G3+ʞ i߂k:\J$6Gca+^0 ]W|/)7'F7ͫ 8kUVtfQZ)<+mMTl!f>wRB7Y6>˪F: :MwL>b_Ay,qpLp|&eVW>zW5/֐kasXoc5w}8\IƢ`&T(( ՌhOW-&0aCĦ:8ps} mC5Pϝf3n>XS vpSc}2R2N[F f88\MrL+* gRsNR*bғl  sCڹb*^xL2Oyc(|ŋGB b`uۻF,m4Shp[ 1/zV?]a9ggʲ{Z9cj?r?x■RnƢНI1/]-QJ?Pu(RוWc^>z< , o?oНA^@lÿ@'t5]ac3h~g ߺַZ_Ӑ5k캮چwRA&QV]a FK%\r3h&9MRV>/k|&ӘۻeJ3f$|Lz~&ӹj hmc@s_Im.`#H$U$Hmh^ +K>K{E˩49p>ޓ]y#쉍F v =}gf+SI4D)p)->LJ,ahg3J6(u)v44Nē~7p~0Zf^fk\Is_w0*x!,qMYD/-HRpV&>OauV2OHk" A]K8%k&Zhuw=wjLoN/Sls2 7 spP=t2| |B*HS͌n蟕͚õ7;'3֖yv۩(]Ǽ@nY}6!&}=7i̙ s \Vnv<:]c~T`KVfnȥN9Q\kkA>Te+w/re^fkfssĄ75x#])~9+'5PvP.++/$tÁ@M]4rP 4͆Ӳ v˰`u# >AdU,``7gEZ,p2ܼe8Ra j &Jd|oZOY/.&bx\g#*ԳZenО Ш#6iwF cl*yfe[feaE(ϓ%홦]4D|+2fv-q%s6^4I:/M.>IkӛGB& 4SLvWEcﺒ>Տp3ySl`6ytpw1JWETNyتƯ \&{\z:Ց90T1뭌U""7锥J73>wAendstream endobj 43395 0 obj <>/P 399 0 R/Type/Annot/A 43396 0 R/Subtype/Link/Rect[93.5998001 276.928986 237.623001 296.609009]/Border[0 0 0]/H/N>> endobj 43396 0 obj <> endobj 43397 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43398 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43399 0 obj <> endobj 43400 0 obj <> endobj 43401 0 obj <> endobj 43402 0 obj <> endobj 43403 0 obj <> stream q /X1 Do Q q endstream endobj 43404 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43405 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43406 0 obj <> stream HWێ8}WQ tؼ tv 0`>d@mӱ[d~DJ"T>,^N{ O?=]~1+2BLyX*D_#q9VCbc'3t6׏2Go7F|Q7Ax\%Čs^ěS)4Lyxya`J,Џy0 B딳b'yۦ|5g.el"^DL5RLƗX7 >ğ>xGʘL!/=EerQ2ĔFp||QQ) }{{W{W{W{{{O i>%ا`3}Y>'`s}/E `_K}YA"I!*dE!*d}"TET+ >DJBPj}j%Z߇(}ZIPC>P$TET+ >@}"j}j%ZwZ߇Z߇CTPC>P"TET>@}"Uj}jZ(BQ@PC>P"TE!`V}"Uj})҄j}BPj}BQ!{(BQ@PC>P&TE!`V}"Մj}>DjBQ@PZ߇(}ZM!`V}(%T}"T} ٗ,Ks0&z؈/:fጫ{Suހ*L yq{9Lu? p9GDd Ѝt fp5L6ud*+8_80AFB}:o)K=eyyl_mMo q(GKsɴf2fKqQr0 bF?pR \$ƯNYr@q[$v(Vo{:˥+z"BBAE4 W慭NXS@^h|O}5|&l~i,rUފV;myhsx:2"Ϲdf||'s*qicT$/̻pzbX)iW'g-N cy3RF|?\fo1ba(Z^OlYUE!@ZO8!sǡ /"D|\(aLxhx@ɠ}X&`!Cᮍ$ȯ \ZTKēO"="nKb@_ pƸ_͸Ǯ|nmkoir|66,\\I>n>/:ʾPNάp/0T"P0Z ӯv x3Ϧq'`J-[T5lo{>C|0hH=Mp:]v 'nv8LVI;e*&s4M,#mO}덋Nc]W]r+&~pkI^m-3@Ǻ(0]Etoϱ3vs(Ql+}feJ%"(FAłKuv~w-xX4E vUQzt5u[!̈I]dG!P^h|( Y;.KBqoF/oJ~bSoB#sje3jL߇3\)3Mcb,)lUkPFm2NG[dR w#Nӵ}c ,PWdv3-@3o}Ĺ$|9X!G\; H4 @X ,'8}{vg=qpN8^8$!J"8m*W &UHJ2n쳬fT‹ մ?E lM8>ء9?gjlוKkQR]c 9s~ay1@#˒@RGm*f}ܩ;? vj֤m8ϐjBUhX[Z&*e6A*K{ Zڰ;kpjBzھ{QbƐʒCQQs?M_aO-"3hQ]bs7*|aQd&9~l foAU DT4H%-1Bx|WqǓ+Iz_t3jYO,<Ά 2v{H`URb@{$L\9q|QkT<%tk}wDJ![޿e<ɾ gP%KsS6x3ڼ_yb>!EETD8 Jʷ/\q)IU`кسxFq)U&scX[څJfG&Yz,#i.u$-+P}7Xz, r0hCO(QSF7Uhh[푇& ,6}1"+*0p1P)P?U:4Ԝ2Ⴭin|ޓ,m#\^EYe\iQ0uwUWۼlQuq.sm}1xb"d[υo? <+F$77IXsZ3/4Y5eVtY)sYˢ\XmHr]:Th[7Rm[D.@wdU|6ʉ\*n[ƌej-e#yZ ZSIQU52#qrYŦU6$EUW| cݖaz]0qjьU{WȠT5鼊aNEq$U2<,ϖdJ;XA2owgv8a/uӱHZn`΢6-%B0,#Yc}kܯQ׿d:={2{kM֋Nצ@"n\LuiݮUh(3z1R౳`cHE סc&4v3O9?lV-m 3b:;yɁVcECfjEot:zK. Qُ-V*\wq'#Lwh%M>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43408 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43409 0 obj <> stream q /X1 Do Q q endstream endobj 43410 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43411 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43412 0 obj <> stream HWis_1]q9pVV\$e3˅/I(h9t t,jofV=~?R^ &S*JJb#"6AnJ+Vy[~)^V.E[ UOﭺi|n>9e:&T* S5_csGc6=r\lNroEiˊE vwf6kqUdx4zb C)pڪ{eB3 ުˏZ s)~,}EqNF8&tD1dQ Xp ,nb{[e1Np{'w̽{ =s #>G}$Xp3>f}'O s S>ܧ}&ϘLp2kRlX!CwO1` {!R Y{Z+bܳZ!Z!KpRkR Y{Z+bRK1d YjZ!KpRkR XBj),=KRK1d YjZ'b),!CwO1dqZ!KpRR Y{Z'bRK1d YjZ!KpRR XBj),=KRK1d YjZKH-Ő%guBj),=KRKuR Y=ŀ%b),bRK1d YjZ!KpRR XBj),=KRK1d YjZKH-Ő%gBj),=KRK1` ,^H-Ő%gBj)"!CwO1` {!te^gpX/|nQ Uک:w:|12ڪ8B x9)7lq@:^>|RE6o3 ^s{l$s0Nv_֖뢹+KQ,٩ju5)yJ\~jcN,s_ þbw5/3_NefpbοWEUm]Yx`^EYcQןnf@Uݙj:N#uk,M[n3>_HnW0c] o޽N.חW(pbS ^σPս n4Ώ)L`1-/hy-ϴ"A+bZ1XЊV,hL+Z JiVʴ2A+cZQ-r-!kQ XF2LZiYA2-+hBS Y{+=Ő%hBS Y{+=Ő%hBS Y{+=Ő%hBS Y{'=Őŵ(,),AbX;),AbX;),AbX;),AbX;),AbZC }O1d ZC }O1d ZC }O1d ZC }O1d ZC>bZCte~L'|n>9e:H;8UG::sYօ|*O2_ݪPjnE3FE 7r ,ڲ`,aoH e7d).' 54,WD-Ïk Lź4mƤ}SN:_wM`Ul|'85<4)<xr08tv VK_kwu_#{jUݗۢZͲo~0kp7x ~_JG:IFVjqon` XP_TުO(Vy@r.^Cه63 ?OL7}N[V5ΚE:x4!)fDY@^O7,Kޱdl0ܚ?p>y <_,9mOaщk},' loXtZKְ}ѕrӪZNlvi؂u)xp`v[훺T%ʆz~_a-#I IN7VÓ\4r28]׼67U _@^))QbYv0.Y9/EFq^Mx;91>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43414 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43415 0 obj <> endobj 43416 0 obj <> endobj 43417 0 obj <> endobj 43418 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43419 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43420 0 obj <> endobj 43421 0 obj <> endobj 43422 0 obj <> endobj 43423 0 obj <> stream q /X1 Do Q q endstream endobj 43424 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43425 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43426 0 obj <> stream HWkoF_1h8c΋)M<`Q02e3$W{/E)ԽM9s8sp}O?yJ??},#2^B_UȝNRU*ZEUtz^5eW^VݦMꪍNөdQET *T*Kr5]F ~21ؠ͞!VeӪCg4]7]|>t &IϦQ:HΗ /#U&Qo`/1Q**\m$eTdG@]DEs 1c$!G1`YCVXԻ1<ŀe{;c1Np{/̽{>sܧO)s 3>g}&Ϙ\p3>g }{Y#b {KH-ŐS Y=ŀ%bܳZ!C R Y{Z+bܳZ!Z!KpRkR Y{Z+bRK1d YjZ!KpRkRl9!CwO1` {!R Y{Z'bܳ:!Z!KpRR Y{Z'bRK1d YjZ!KpRR XBj),=KRK1d YjZ-#/b),!CwO1dqZ!KpRR Y{Z/bRK1d YjZ!KpRR XBj),=KRK1d YjZKH-Ő%gBj),=KRKeR Y=ŀ%b),EQxQsN)$= өJBMчryTjx欙|~3>1ժl&/0&d=_lW^v'KՁЪCxZ5Z^Vn]W{ہtSu=-ذb> mս4ƘK\}mBz)vKbz?Que-A)zu/׻Y\.w̓`\>VڵZ]Mݗlڮa۲%=U_x&Z~pqv ozh~Wn2_/o纩oت6% ޞ nš1XC} .nhlKllsKt5.s:U.9fYoK5e{D,#5#S'[>ufGVi#T36TwϹ7ZAvՓ9|uTz+TD( Mn{Ssl\o$1]$Cnu?uo;.$d&lRhK0uVt fⓐf.<0K> fz>a7ڟȨԶq#r.n\ai6v1lr2xf*]^oܝM`c֮X76Q@p;wNx4bcy VZĐwǨSju.lMW,'KQ|, 4cJvx;\m!BzO/jhUAVBhJjt‘!vZ]Mg!~2o.t8;6 Oo!Np.vv7}">]g_puO1dq-K{!k<GM8?n'Ŏ_jv718ռ^Vf[@p3Ȳ.SyR_MwB8x69Q.WÕp۲I?8/[d$0L|Q_G=v|i퇭W]oa}]l"- u{0*]6y9&G/'j ?N!:GnO격6q{$ sm`jyݵU75H,D2xjaDTg{~P~cu_&/aL(eP)œON}?=\$h':/9 /&X.Eś\?˝.U=L";vgl{۶8>¯ TI"!Cnh@D-,([:ݟG#(c/oV嚙]Мr`S:&qzR|}Z9ڦ=,=L%ˉRљ!J%nH7kX9 _(:pW%)9X7#WxyZҞfe-iFxZ1{Z1{Z xZ xZ)zZ)zZyZQ-ZԆ^`%-iIFKzZ Ԇ^ǽd6b<%=q/ -{pOmhyK{jC/F^2Sz1Zע6b6b<=q -{pOmhy+{jC/F^1Sz1ZЋW Ԇ^ǽb6b<5=EmpOmhyk{jC/F^3Sz1ZЋ Ԇ^ǽf6b<5=q -{pOmhy{jC/_,t?7ZtΜ.sB=?ū?){Iu(۲uC&1RO%f:T HD[LQ?H'{$¾³y|llmmuY[DSCZf6)%-gxTS>h|W{q> E!\%4~&uJ'v`t)D]7ǷinMJc߆Ё4Q&L(NIsE-֛( KB)pB%t,0%pn^Efn?,9炷KwQe S'8 `yt4(i$qi&^!Zhu 6xA) V˛z .4J'cut-jH+ UAfSy9%i[7"t2e&R~ w(t&:z{|mdi}~ۛ~ UR~{]ԃӄ m&{:*x)g6&NړAn#M4NɮmF'6#^mUbUh; *8:$&p N(-R'3ܸL5 ŵ[_V` n5#F:cwC &Xb[ԛKaYBfARcuy% N0(jh$Av'nWkuYU-/*.KPH-2~\,Z,A95_EMO[Z%bңpTP\ݢ 8e\JCnp+Ѱb5T :U3h#Uu |1ow;\nW8pIMSMGxFύ.:rӍ+t( Sj6U/"%PѤoCLI%p=֦<yuy4Q=].lS[Ezhv`Q0 UV. $*&؁W 91?(lSC27f3p%%u'ya"()+P43LG`,WvΊ1׵7փѺeZ N}u\Wb8?b9>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43428 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43429 0 obj <> endobj 43430 0 obj <> endobj 43431 0 obj <> endobj 43432 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43433 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43434 0 obj <> endobj 43435 0 obj <> endobj 43436 0 obj <> endobj 43437 0 obj <> endobj 43438 0 obj <> endobj 43439 0 obj <> stream q /X1 Do Q q endstream endobj 43440 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43441 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43442 0 obj <> stream HWn8}W زx  &ؙ]; PԴ[]z%oD) VuH)nY#޼"ϯ߾ p_X0,Md k=U,zoF}U na^=*g Ys4ؾ v\]O(Eq]`wq{FݘB>Xe5`OG7`D\&a(gQwAG>D\8QQ1rsw}{{᱗{鱗{鱗{W{W{屏 >&`{}O>%ا`zS}>#g`{sYN5 Tw}"Tw}ٻ>@u}"{j]jZ(BQ{OPCS TE!`Vu}"{j]պ>D= BQ{OPkI!gE!gw}"TET+ պ>D=JBPj]j%Zׇ(ZIPCS$TET+ պ>@u}"{j]j%ZPCPC!gE!`Vu}"{Uj]պ>D=*BQ{OPZׇ(ZE!`Vu}"TETպ>D=*B bBQ>{(BQ>{ׇ(}yX,lv} \ K`?8 hl; _\8XeE]?#> xۗ̂'"q]}tQYྛfv`yJ ncX][?6xxÅQv_}+c .6]7O ɂq y̅=nУ)cR#b֦˱錜IjEptl-x\“(LOqs8\c_};N&;(淍1K=IhTzZ|2(xEӥPaZ@*1nib*ZEdbFkw2i}2ЯMvjiL"靊#ņt,XHvuY*Tt0|Y[0 Y+ú$6l0dj4kM#B)btKSOܖ3kq  Xtӵ/&O,ڤY( nTnUCp%Y;q:}6/64nVN_0tbN14?zit66?6Ql(*Kej}ژjR{^w!*”C\f _Žp8L;t^vMVq?Nnthuob.|Ƨ9]Q g˖D\nv $U RڡM] `M1mآţA ,Xeל4M 8vA'g m5ܫͱ8Wv 2>}&,fhF0w9 ߢawx"v+%P?T(Jck$DS`weyR-ֽ1Lg4ׄƗ\/̳X=.հƁf"N]G|^ܰTIhLܷCE,Ѣ50UL]SV 88OYqn $?( ySMdztIa{tCvN+d_ƫ7R߯ؾIWX*QNzUʽ]^]6Z`/˿7 O=g8p˒$tnx5 иO,8_c_v8^1Fjb_ޝ=+H=yX~eӱW_N}u%T67T#tfFGJrq뛲1ь#$&%u<&W -lbn)$GaLC(/] @= svV̭*6v>/P 396 0 R/Type/Annot/A 43444 0 R/Subtype/Link/Rect[93.6015015 429.229004 216.709 448.908997]/Border[0 0 0]/H/N>> endobj 43444 0 obj <> endobj 43445 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43446 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43447 0 obj <> endobj 43448 0 obj <> endobj 43449 0 obj <> endobj 43450 0 obj <> endobj 43451 0 obj <> endobj 43452 0 obj <> endobj 43453 0 obj <> endobj 43454 0 obj <> endobj 43455 0 obj <> endobj 43456 0 obj <> endobj 43457 0 obj <> endobj 43458 0 obj <> endobj 43459 0 obj <> endobj 43460 0 obj <> endobj 43461 0 obj <> endobj 43462 0 obj <> endobj 43463 0 obj <> endobj 43464 0 obj <> endobj 43465 0 obj <> endobj 43466 0 obj <> endobj 43467 0 obj <> endobj 43468 0 obj <> endobj 43469 0 obj <> stream q /X1 Do Q q endstream endobj 43470 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43471 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43472 0 obj <> stream Hooϧu+fvH7]5TmC!"^y;U9N֝y4y/eChRlM]YͲ(Ugn's{^狶[ϧf=/~zզx9*FgFE)M6t/ovڵ_}m׷>>S);|\B_onl5USsWDL? z5~*6_+z k}ifȡ>OE{uI2Y3Y0 SFsS P2s:Ԉ W=HU>A }P#HUG>IO }RHT T TUUUoToT g>jVjƒJ)^jDJ)^jLR# VjLjVjLjVjDJ)^փJ)^փJ(Z1ҫzZ1ҫzZV+5@zZV+5@zZV+EjƔN/5jƔN/5tzV+5@zV+5@zV+5jHVjHVjFXԘjXԘjXԈS ZmS Zmڢ`RcJQ`RcJS:ԈS ZmS ZmQ`Rc W`Rc W`R# VjLjVjLjVjDJ)^6J)^6JmQ$Z1K(Z1K)|1tSTz*{U鞲ur,:jV^5WFyeW^YzR{I)%5^Ny9唗^^yyW^AyW^QyEW^Iy%WT=x{{mRRzA7 KjLi/RR[z@Ƈ|z@Ƈ|z@wz@wz@sz@sz@Gnz@Gn%50 T#0 T# T# T# T# T#h T#h T# T#ЪƔG}6MI~.l4rƙe eKOȌz;kfڏ''֒v}\]J[Mfӭ\V{llC=;_vfrj>驙l}-]Sϫ 1MiCܬa)x0]-7~͓ e(˛UVz)56Ͷیnvzw>ntƑ&)~wu<^`̯\W!?#NvMoMmjwGu|w_Úhf7O_L+L6>iXteL{ԕM};[QUMOGҍd}SmsG/opx*KԘ6mz5ekWY<nҗ_Mk^_l~d9>"{O,j ~epACS\t@dC)19#2B dNIl/^1`ATH6ƻ"8gxb2_.Eۡy&GgmG?3|Yq6T:5cCL߮G:UFwzh2-wa?=7%lنy@kV|Z*we.Ipe}OJz}L>\MYv9J< G'wx5t$yz(]yO;0STT5U+xʫ^jW2+,|ƔQx9倗S^xy偗W^xWP^xEWT^ x%啀WR^RR# ^jL/{z/5SK>K)%5@RRc x{1TԘ^^jL/z/5}SK>K)z@RRcJ{I({1T#Ԙ^^jL/z/5}SK>K)zARRc xG{1TԘ^R# ^jLilsqֽ/G]xhvrC@ .#߉N_m׭9󹘯 xt[/{78_C ZnZNc5'v~ܯޜ2?bendstream endobj 43473 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43474 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43475 0 obj <> endobj 43476 0 obj <> endobj 43477 0 obj <> endobj 43478 0 obj <> endobj 43479 0 obj <> endobj 43480 0 obj <> stream q /X1 Do Q q endstream endobj 43481 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43482 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43483 0 obj <> stream HWn8}žͫ.AmL$ ;ڭL[(DV{CyXS$/~͚<~kȋ/_ *`.$o.ʇUr_tM .~ ^EʿJI $0&XL}p.+rLhYٗCD:j,R2g*%*0;h92I-$ i4#Pq ʸK TL989f!= M =bl=9T3F$H RBH,6>Ha\v1I g6smG96ιO޵J ^ ^"^"^"^!^!^#^#^#>D؇az#}䱏>BGa{c}O>A{h]>j]A]պ6ٻ6ٻ6@!umT+պ6B{j]պ6B{j]A!= D Pj]A!= D͠jZ(D͠jZfP{OQkQk3(kZfP>{fP>{(D͠j%ZfP{OQkZfP{OQk3(Zֵ Qk3(ZֵSDTֵSDT aV"um@!umwmBT g gֵSBT aV!umBT aV!umTպ6@!umTպ6B{Uj]պ6B{Uj]A!=*DmhD͠| Pj]A]A$" ͺ>x)* '&`4%IsYށ4$atnҗg9P8dbn ȌgHj}юpMUْgUf۪U~eֶg_w0OM#eLDX=|"?KƊ (sG^Rn=kZEh)h=M6߉BΎ'tD9c-=ՇZ4w| t8u^heۖuՒ|[VlVarnav\܋{d")[M55g2ԉхϧKN 9xLǏGpo&E+7GUL;;+wŚq7`vW(ֶնShg2nW|Uww#3,[1XTlD>Gdi8 5.usRPSơc\uZ̶?Gg!RRq>hno>U/BrPͨ#T?+ZY5#ra} Pdtܬ/^(1TLhlwȺ>9e]P > Yhj!fl6eEqwx-$CF2:+)b3}H)BꍅVnAh܌M6HM0zLR4N{_e>L|Tdүo_t$/Ay4r +mD>?44ӦXIN86FMDZŘP-1JP'ss VÖ@;pNv ë |1\mKJZ]nX8(߿UZ^|;*~kݡ+>VXM$GcI>+$w RUC3T-1s\ewO\M<$4R1+Z0S,gA$[l¼A3۷vm_94ޘ}.7#f;:MvuxYX졬mIؽKG6['zioV+ w 21J u_~ǫW_}z"ΐ-0l@xжE_g2l+qޕE<@ME.Bn3j.b>wʙjx b8g308v )vY3{_fg*5C:fqn*)b*yzL b^UVfnF{Êv0nU(H07/n҉Ow^W,4-f;%r +o^%$'l^$<¾WrMUYίWח)6)%Pj-OCr7ؠt''d .lQO1τfnqf}tx>p Gp+q|o74INFhz~PH<`ϭC'8*~7 PNL9)M P~SR9FQ,yb*gId>s͊yXWC;\ 'x#>M_9zal}p<τ& b k϶4Qm/P3]cxLOHvUj A?U D ?YlC_mQ [IOb؀mm7$Sd#)>μQ:#Sh^SP|Z(jOelEKӿ^ eRdJܹ` z 1?sdEa`5mƧN1@;6m6眭Fs:Oy5u?ôteiftS *2eE`^úW 9' |ORiK n<ӹTOçb_6AO/*k+'j_ 5`xc]t`}ԸgǙz܌\SߑSHkv6uz.,Iv`dPT+0sQ )'NjDG1:vnIZɒھ톏}lh+$Ll ݼ:K* w ݠ!'Pv+;R^E7$z tҋr?p/l'|NT?Sul_u7~,?ؕMG'_ h,s-䆝Kr8_atͶ js[kVnCd-VpwxTxN7?f's\{%HCÞiz`5)y*Λ@t@b1r?<5m@&uglXfj3~eǧ292JY@8"=K)}UC'C>ȡ>MSRPj>,tˮoL26/pS-v5&pg2wѼ3S9CgXtY,MGl]y)$iSo&CД,5Lj{#긭M |0a(b"y(9s")i]q"ݻ*a3k8$J߹Y3*0I+Rzȡ=%0o! gvwi6oo/j(g(=Zb^Y!")@iO/QѡB_pjr3&vcƼIX!-Rns&0Qm y>׻7߸LzX>v^܌U{Q* .0]xiǫR ޻Nu>:F y3ll{òox(ot(/qJ0IkZ^Zf;.,(efT0o^KJ!XJ? sP(O-eswǭQpE <+Uv:Bʐ͇WHG?&^R2-yfHg̝Q,Ԉɇf$j$8~+W+;{])~WQdw!Ple.q%Wq%WqWqWqeWqeWqWqWqWqW21B\<Tĥ.qiKG\ZtHZ=JtHZ=JtHZ=JtHF=*1HF=JtoHF=JtoHF=JtoHF=JtoHV=*1HV=JtoHV=JtoHV=JtoHV=JtoH{#Tc@ 1B\: 4 6]^:ڝEy>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43485 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43486 0 obj <> endobj 43487 0 obj <> endobj 43488 0 obj <> endobj 43489 0 obj <> stream q /X1 Do Q q endstream endobj 43490 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43491 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43492 0 obj <> stream HWmS۸_s1׻;;%{ﴝqDpױ؁v>KlKOq; 9GHM-ɯ %vv>5mZ&MV̠deX$!ɭH2y<ͷZ$&8y3gdUgqZ F,>P$I6>N".<#G̡}9| 5A`*J/0wـ͇l& `ԋK0o n2L,JCK_-%1́/?F Ԙr(rb˩,Kg)d9KnYyC3=C3=Gs=Gs=Gsͽ56;{Gs ͽw4.ܻ{Ws!=ͽ4{_s#}}4^ˬVCRbW1`!U1ݫdU XHjULZjZ,ĽZVŀV$ q!U1BkeHjU XHjULZjZ,ĽZVŀV$ q!U1BkeHjUlmp$*&Y{Z,ݽI^ŀV$ q#U1BkHjU XHjULZj9Z,ĽZVŀV$ q#U1BkHjU XHjULZj9Z,ĽZVֆV$KwbBRbW1ݫԪd!HjULZjm$*,$*&Y{-6Z,ĽZI II^KV$ qFRbBRbRk#U1BkԪpԪdU XHjULt*&Y &~z8 Z0bhÇ%pmLGq~fhiD;0ﹻxQQG]4(5^'].ѱM'KQ^QU ŠwODV6@[i;mC$k4METG÷@8^9id+{-=fOVr9>Ԫ{'ҹKUQ,/\[iڃ+R>*ɷd'У-yu"e1^HHx؂loiLLR C-4Fu+"q[~Uܴ\jE&gžDgޤb I`nɷeQkfޞl+Omp!4-)"JdT* (1ʖ)LtCOQ,MsR>ъ-QCt2?]gofW0Y"dɋVsͣ2<6(إeOv/¯Į ޾ ]r3H?t9I}MMVy ۅDۨ([Ce혚HVFa:^Os+4M+ml@ۧ"djch%C%) h?@zVgl$nD`߃}̃mq6QQ+hn?Jsj@5uW.` 0V˧\O5tdv.BX4VB Ǘǟ<gw}8Z&!\ګzRTd/_ւuz~;|܋Eeˢ}U9S^h3Eo tsa|z5ml^Ljon@{rn0c T7ף}t:8Tjy /==;=t3WԷ1Yiׁsr|r' 6Zo.|a+.aʗB zƆ^ w5n$ ?ik ~Z]?+ 8;qu!Sj4nFe}Ub>&0I&Eql*:2S̮&WdOQ ocIXFUwgc]M/m>ꒋKwz *ʮ"?pڸxavL>Nzg1r I &NwE.6"N`pcU>ީދ#w݌y^z8LWT%YV|<>D#_rl 7;ݸ`W\v?!Msy~@ܘ" nݫ|_!Jj(Ox9sMS_Gxȶ7(vRu'vAR8{?6@mԗiyōHᵮ/X[P%@.Oή_/#_oR7Z|]Af'͋ T&#;5=cI,* A S.Cp,]Uk.(d%>1j,i%t* g=Cs~LU*)RY`"ȪG؈b`"D7 "LJ]fziQ!0Hq$X`24BQyi%8bm4=) X/ht:s*p!endstream endobj 43493 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43494 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43495 0 obj <> endobj 43496 0 obj <> stream q /X1 Do Q q endstream endobj 43497 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43498 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43499 0 obj <> stream HW]F| /`|c ?qr1 ]à%JD$ʊuIn &U[Sv4Y:~E͛ih_TV$7mu&JKFE۪|ߵaTMG^EПjyxH򠩊T]ݦm+NO3e ?N'd*Tji^psN"3T~Dx]`ʿE61t)U+y'&. F#QO8:D1dQ XZs ,]knb2{a2Vpo{+̽; s 3>g}&Ϙ\p3>g }/s_ Kܗ̽{ YfZ"#b),!CwO1dqZ!KpRkR Y{Z#bRK1d YjZ!KpRkR XBj),=KRK1d YjZKH-Ő%g5Bj),=KRK]dR Y=ŀ%b),bRK1d YjZ!KpRkR XBj),=KRK1d YjZKH-Ő%gBj),=KRK1` ,VH-Ő%gBj)Z!R Y=ŐS XBj),=KRK1d YjZKH-Ő%guBj),=KRK1` ,NH-Ő%guBj),!C ,NH-vQ&b),!CwO1dq>;.z Z]VݦmoftOT(oiU?oZ)tt`OA.ӽnXׇ ;b&ܼLN̈́^WH~&. ԉ 1> <wOJZgFxn@:Wx2I3_LW0}g2Z4>tр.aX[R[2rLNp& M2OWإlhkxgLgFweVmO mt`嶮B L( /\^d/k_BK3M*,L=U^:5mߴ婗S'+-g~2d!,u>M/-rꜞMwsy\$_:n@xڧ)(2f=Du ݺz0i|xܯnYYn04 lai{G|O(u~e+,J`4z6sNqL?:J.a[.UA ؤ´OGHcB$c7ak_B6Gko=~do9vUoO0Udm@6M?IaM ^UIon/I6R{i2nlxp8'?7t ^-.LmY9፫lNt6^ vMxwNXѭ"ʙ|WwLk]ِzWgqv[YN6;EbDn0^̖2WtZf+-V6It`c&^CK~鹿qơnx.aJiȰJ[6g=b1 5;DVV8CnMR~pzEgʭc3_n $&zNywZgJ;{]5G캏OY?q?w{3o=g /pOɃcVYA*ΗpR gÑ7JݶdhUCmÞ2y, |&!6[~{o q̯Ӎ&[gZL鵖:xh)1NJu\cX1|R-tv_>Kx|Ƞu3$`i9A1-'h9 ZiVδrA+gZU0B*V)hLJ-ϴ婖IŐŵ(,-hi-ʹeX),AսbX),AսbX),AսbX),AսbZPC uO1d ZPC uO1d ZPC uO1d ZPC uO1d ZPC uO1dq-K{!Kbu-VN{!Kbuwٶ6nDQ!]YHd]BӖ[X[F3d?99:Ȋ=B =B =B =B =B =B -=BKx-wtX8Z{M&~h7òQѫ ;O<:7h7{*OyCOťZ.x?rݦ:SYd=K/+zWכKBדzZOT[|Ϯު͟[V?}VTca]-_qlL]U`2e,+X`UVX`U V X`9r VX`UUqe-EW-J+R+ 3{EW-Yt5,{EW-Yt5,{EW-Yt5,{EW-y] ghKy] ghKy] ghKy] ghKy] gh =Ϣі`,m =Ϣі`,m =Ϣі`,m =Ϣі`,m =Ϣі`,mqYt5,{EW;o}Q l )- k}RWp(gWFO}hƋ|ݲSyVhW;7~fYpi8C[OQ% >||PUS~IY*{o4⩙~~"ץ\woG&ӟ3L>7pdzC$-ϔg.lܡkY:~s /ӭ{_Mnwۨei%ܖͮMvJ=@uZ}wד~zendstream endobj 43500 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43501 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43502 0 obj <> endobj 43503 0 obj <> stream q /X1 Do Q q endstream endobj 43504 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43505 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43506 0 obj <> stream HWoFEphɽn.A}6b*Q6}O$ =32]/O/ޞLz,#.Aş)_47mjV͓L=$Z5*9}_Ok}.fVf&9}sc*y]%7JjxL*RUd`\v\}lOwm42N,Fj_ u{zw&NHq\ iAI,z"s4&Qߔe|/;s* 6O:YI$=`$sN8:1bq,,4ϱ2 po{ [Vp{;^=pυυ/////>cĀrX=" cĒ9F,cZ1bcEk h-" cEk h-Lj܋ZEh-Lj܋Z 5,Z 5#p/Zk@k96K,h-Lj%s,@k9F,cĒ9Y#p/ZkAk9F,^ւr,@k9F,^ւrXhXdrXh{Z Z˱{Z Z1bcārX=" cĒ9F,cZ1bcEkh-" cEkh-Lj܋:ZEh-Lj܋:Z u,Z u#p/Z@k96KkY{Kjq%roA9F Ah[{ D-=hDZ"c4-{ r1>Ƚ @Kނs %roA9Fch`Z"c40-{r1Ƚ@Kށs^Ƚ-{r1z}Z"cD=h;{ыh{gYJN(I\>yT5K?5i\N/ʴN u \bMZ%_0IlnjVwS]gשQyyw_/>.;Q&[T w-LGE;Nպng|nE;{_乞ѹEHMvK~>:9dYQErK^ $ _k۷km 66dDLeO /jgG70Z땾P/+uPF*en{g=|u2Du{^bYN.9@){$kV!449*ް} @+l2mט9XdmSzh,rF0F&H.L u~rm 3q )fFL-#ab)Rg 02 )i})O'ZlM `Wnxms8 CyqD2C߼xu1hFkq>h䰳+wflyɵ=CrS H@nϤm1aTѱyk#ԗ%)Xk饋D&xQ)̶zPk>N y܃Uځi7?`LdhﮐXLTw 8 I?@}N mb&xH<'X|m1 H g;kV۵63]mzaa 9ȍTf{c69cZ0?,iv}>D#5٩M/:cL262}Xؒbڒݵk8RV&lє A0X.P2ѣzM%!݁GkY8Λ>y'7^kwyδUM5nզ1S˂!ċaF3r-)gfF[jRq5xs&)@|A۴xEDkrGG:Cn.~C&ͽc{ۈ44"Y{ZٹI0ݿ]̳OAݭOq+_PQpPǥ v0AUmbpwLi"1(Yho8jFDWp=KS9- s:8ݡ]s1hNJwիi#endstream endobj 43507 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43508 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43509 0 obj <> endobj 43510 0 obj <> endobj 43511 0 obj <> endobj 43512 0 obj <> endobj 43513 0 obj <> endobj 43514 0 obj <> endobj 43515 0 obj <> endobj 43516 0 obj <> endobj 43517 0 obj <> endobj 43518 0 obj <> endobj 43519 0 obj <> endobj 43520 0 obj <> endobj 43521 0 obj <> endobj 43522 0 obj <> endobj 43523 0 obj <> endobj 43524 0 obj <> endobj 43525 0 obj <> endobj 43526 0 obj <> endobj 43527 0 obj <> endobj 43528 0 obj <> endobj 43529 0 obj <> endobj 43530 0 obj <> endobj 43531 0 obj <> endobj 43532 0 obj <> endobj 43533 0 obj <> endobj 43534 0 obj <> endobj 43535 0 obj <> endobj 43536 0 obj <> endobj 43537 0 obj <> stream q /X1 Do Q q endstream endobj 43538 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43539 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43540 0 obj <> stream HWmo8_ *^mh.I(kYYK7!)ECr!u[~t(~O?gB'#S$QhWmgi4Qn~7мԷݦ5m=Ekf7|S?{7ŃD4_J$ʨ><-y;M^Ϳ[> i1>lzCD02)s5RnQ}tF4vm^}\%y.n3t c&sDFH'>FwhJ%@ivVgfeV)CNI8"Ub YCaXTxK2e^2e^1U^1U^1U^3u^3u0M0M0M>cgQsF}y>gQ_ F}/edi)$Z!+TO1`1BCVbb\K1d1JƵC>pd\K1`1k%Z!QV2R Yq-ŐŨ\+R Xk),F}Zɸbbk)Z!+TO1`1BCVbb\K1d1*ƵC>pb\K1`1kZ!QV1R Yq-ŐŨ\R Xk),F}ZŸbbUk)4Z!+TO1`1BCVbb\K1d1jƵC>pf\K1`1k5Z!QV3R Yq-ŐŨ\R Xk),F}Z͸bbՌk) Z!+TO1`1BCVLʲQ NE;{7ŃD4_DjqxY&Yee4ogbw5~ʓBr$u546z_q[>R/:1> +o'cT&n1 oKmDDEt:+RSz)IV?Bݼpw% 2~5C=EdvSar+&*Ms=IiN׏js+r9= úvAQV(rn{j.{йg\/+>:뭏<=H_M?4ۧk\_󺣹+@ҤySvFW086{kdNcNѪEݰƭ+(4SbJYu;&NdˉRm=Z)q]<"+ii˸sKٝq';-̯ڸ˅ iŜŔyw\.ىx?0Y]5CB m#(85rXYrBgCg%]lFRA/?=|׋{fYq&5kɭDyVRb<7[+ʝlPd=Oű UFj'5W1I&x6ruq) _Hq&MRQ0>jRK}RE)G5gZ:9plq1$["Uʫ>G)sBǟOL,J%Ȥ:p|~xW&LKC2綻(B--l6>\TPh. /XH%X~/J6qUՌ6qfctVN6Mhw1d\ JTxջڏZnֹfs{l"~P&(uܙpYwpګ:~vClᕞzFAVfנvϖ6m0 eQØv|/`YK{v3VOwHDwC NĪ:qb hRxz:V4g;TXWjw,n ajA>~/#Zn~=߄7agVaNT 8(5pe6p=s>6K[dpJ\."I :}CK")q`m|d 7<ú{ˇ.$7=Ank~n|ܿC^ӴuquH`4u/G *5q=f\Hddt]:\Ǯ{q=1ޠ|>\L.~v߭ zrvX7uXc?Uv 2W &.p9G=Y£%nYV}5Ѥ6m)K׌eH. uҌհZ."E96H~o'iYw+{Bif1n71_\c7/t5@57+beg9#3";oO2ͧw2#r'Q6XPC\8k<=kyl:<,+i I1c"йn ~>Tp OחoU͊6qȱYI0Nc[?{_,#̯ |'cp]=?ۛv͸ #6#/ W:><=2/KC'hSVSi٩8/ն D+TE.\AZh06ln}"&O994 ߃B*e|!c&Fl/SήIw]h[5L m%Wp嫷/)"xk*}Yi)Y:q<-R9.wg"l2Ad 5AJz$Smu&yivp7\9i@J|B1%SuKY$#aȁFR&$;yrѸO]m"m&6`tPlVf MaUYTÉʵ+elLSiRoٞ=F1 B62"&,h*4Mˠ)K::TYZIƌᖦ4ct#>b;`3Α==v,BH2<𓐓T߅UM"JK01ZʹY|͋YNU.cѪʃf5D%w&40&m4BʒR gfOjڀ%_qvw (ͺoR{Uh` O]W&$~$̔x*SDyF)Oo3.'x&+/(*s1\wA9~۹1&|eh}Z1E ̗#TN:G 4aԱqq|cJ~#(jz.W~ytOgA!IVHw8Z /3`<8Q 3сB&%y)z=֌޿ΥN-+@,qg3NJ<)mF$$ţ H8ZUAL3e|XkXx7>!Z@ sYZg\ζ"l0' Fu`h(2B "o r^&$hbJ$%H`2Ds3T)*B9%Z·JYRKS7KQOpPO,1ξcV|di*=-6A!ң`2uOKxD Ⱦ C"#:6^fb1t<_z}=΀ׯ}3xw! 6f!>> endobj 43544 0 obj <> endobj 43545 0 obj <> endobj 43546 0 obj <> endobj 43547 0 obj <> endobj 43548 0 obj <> endobj 43549 0 obj <> endobj 43550 0 obj <> endobj 43551 0 obj <> endobj 43552 0 obj <> endobj 43553 0 obj <> endobj 43554 0 obj <> endobj 43555 0 obj <> stream q /X1 Do Q q endstream endobj 43556 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43557 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43558 0 obj <> stream HWm6_ъ/ziܺw`i[lm%9͈V"GNz(Sp!ﲪa?t,`?sO+ #H`Ŏ^vg9.ɿeQVA7UfU]lW{VHj$`)KaN [ s SS{܇u;fE.KG>ktuizp y08˕<X+O3_!g5)`2E 4 KC@: ۆ(7m.ʲ!*$P6w] P`/`/`/`/`/``!>t؇aC}D>rac}L >q'aS}Jw4 ڶ'6Dm6Dm\ PjmjZۆ(ZAֶPmCQ TkEwT+6@m";jmjZ(B Q{GPmCQ Tk$Tk岷m"Tk岷mr6@m";jmj%Z(B Q{GPmCQ$TkEֶ!`Vm";jm6DJB Q{GPm;xPmC޶PmC޶!eoEֶ!`Vm";Ujm6D*B Q{GPmZۆ(ZEֶ!`Vm"TkEwT6D*Bjm\ Pjm\ Q.OT ʻ\8[m=v(J-ޖ!+o^slMRt/hR1 kVcV}vbyFoXV 7RC _s|)Mqo©ؾa!O9xOI~ત෧[4)~ 1r~zs}/͆^C)mW19SW"iͬӲe@š9:myӰG3t$g@>ga/(L,$  ?T:Ÿ9رD:SlQIеI|q G.uS]$Ӻ9UV!R)>P'~ &~,?qmˣ1d%￙V{;J5飮FoT&{Iad$kv+tUn>kanߏy }yGEye0x4͌ Jd+?>.a)yu 3%4l&IÕ8uq+ͅv@"? CHرAAT N W"%ο.7z~zLF}UHvM9z U"6 }!P|p[}h g̶ aKύ*,*oA%c{~(d7nn- ([MHoO06>;w+E y| ȅpC e7\2pK&~G%znjINj9ec7q77 !1k~]Uu]}'+i>ȏXiH-?;#avJ]GY9v90hua7mNE3sTE9bt.2SgecvY?6`izrc*pywpۓq}6_wa1LJ2wxWu~[|c%b uiSO v@sAO& ֞4:GK$n;g'اJ“+Mt\?0:2N}9}d\%skv*.wYݍ"z{~݂k$8֢/Xޙ!j0ZVP"ÿ!rVX{}d]_tU`4#}CSe:a.1\sI=a<ƳkmqA(^C&p#sضƭ4_YghQo7k\C^ M& E{v'hۇ9@\oFn7Sߦhs;l'~~/(xGy=rkc W慕s({,eC>B?P*pIϿC5 arYRAYJ4jq9atY"K>Y|Z`|]9ΗspպEOP&x(=)Η^s&{Oevg8U8!_y3?*aS8" qJ?x EU[.7Bঝ9ԞFMRV" P9t֏[COA8rW'lv{5\R!W+endstream endobj 43559 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43560 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43561 0 obj <> endobj 43562 0 obj <> stream q /X1 Do Q q endstream endobj 43563 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43564 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43565 0 obj <> stream HWn}WtQ :]z"fa89T8}Z]< /{JOWש]"x/Z(\.3qEi/z!BJ,.QnCu_mvj[Jomof˛EHrNΖ?ZÔvqWѯզl+dTjuatddvt+W=skTn]ʹS"/lw0BIW)"7I#3.tf,>/rG1y FI Qr(B!1(]<J3u^3u0M0M0M2m2m1]1]1]>a'aS}Oi>eاa3}y>gUhmЌj Q!{jZjCTȞ6@16D1jFԆ(}ZͨŨŰTRj5ZjZjC>PfTKmbՌj Pj Q @Q-!aV306D Pj Q!{jCTȞŨŰTkRj ZjZjC>PaTKmb5j Pj Q @Q-!a06@16D1FԆ(}Zèڶ ˨6@16D Q!{jZjC>PeTKmbj Pj Q @Q-!a26@16D1ZFԆ(}Z˨ŨŰTkRj-Zj.ZjCTȞŨ6D8s+$7rixfM$rl*O7C-C&9d n0X \U':S}$AYdi>S\Ԇp9Cc8]:=֫Cc.һ6.:t>؈W6vbuĵ&*s;N(#Tl\6M8j]Էm ժl:&Z_vw]}1&YHw7_ @O ؔ1³,ZQLmї"wx)ЃG1dA0cuVK2ހz$!ʢ}u]vwMڵDb_;nD-V~\U7U} NJ6͡5LDXubar?zƀ1T,ñ]$]h"|_"&y<_})) 56N3.UȐH;iy1 nwr0tBaWSM64dϢ)Kl/g~WDn6MZPU#* >PPTf,K:Ќb ,oiKLRNQ6AuPM4WQ:2%B㩵to[=$QnJG>yhwC*N$t\<ܵ(h |FGXqmʡnf۷|gّPku01x{3[v:N#,F@9EG]7*ͱlmS J5 1涞aU)k +ќwjƫݱ7}D .w_wպeWR^poby*>JL!%$Q)GUoC.o`<ƍ' f,twK.+fIldF`#UQhh)O`Wm;CDyXZۄ§ <&OFP-cklZ1Ynҩ?iT$&joࡱ\re߬; kX59/$H4zsSCis{i am' 4ڭ+ȟ0m4$T)av99Ĺb{1Bc<8&Sy[ #LhࠨAwc฽ZȤYlt'5hK9Kʜ ([i-==>.8{#L6 [< -ss^tu[nA[h/q52Qo'!TN1f:?gUXC'uAnCly 1AaBErR7x:Y>[Gabu['En1'"xEt/ D>DN/}ȕmb>SlqeQЭ{mF et:d8tP5|3B$Nueȝ,2tH8kڊZ'ӺoQi}:y8ծ8 D{"%Ů%ջ{Ug9!8$?*i$ܹ30eC\ !-ɏp3L/V384RO@o$jKBU!xFXN ө 鯠7]se>/QuS TܯkNl sxDTߢD dق,PYV, ZL1%Lsn52XXu+MH -bDO 1߶ ߪ#|fIb(C]Tё9bAʧ&H(`D䨓MwXΑ㙍O^ (j- ooU|޷].Dg*Quv('LՀnM73u^ܠ޻7mBH2Ƙ PF$/zŌ/m8.|ϫuVهU0!o'Ҭ&4.M(JX!F?4J4OmH_m/x6Kl P 8`>x쀁|b2vbT4SBo@H @8dVV͆bj ?ܩs o/_ESu~úo'eSs;~~P g?G2UHa֘[/kwxchbcc$+W|M(F<{ ddHwĖYD 0UD2uЂ*>(Ah"\;o?dpCsP!B3,T_Ŀ*bwC 9>i[UR<#ԐR13^`eIqt=L<>/P 579 0 R/Type/Annot/A 43567 0 R/Subtype/Link/Rect[93.6001968 663.229004 407.231995 682.908997]/Border[0 0 0]/H/N>> endobj 43567 0 obj <> endobj 43568 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43569 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43570 0 obj <> stream q /X1 Do Q q endstream endobj 43571 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43572 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43573 0 obj <> stream HWێ6}WQ5yx8@AܻyF͞ݒ:ٯ*4Y ƘCS,Vcw޿߾ yBI.TY*DۀO0]ʱS׍ :.?E!(`as]D*Mov'q|}ޕHX[i D,YAw=\2&XG}=*,N[FE\" #fn6s c>K aP4 LrlȮCP$.1Lz ׇ(9(}CTB\]^x^x%^z%^z%^z^y^y}O>!'`zS}>#g`ys} Ǿ `iu}M պ>D]պ>D]|Pj]jZׇ(ZAPCS TET+պ>@u}"{j]jZ(BQ{OPCS T@u}ٻ>@u}ٻ>D]պ>D=JBQ{OPZׇ(ZI!`Vu}"TET+ պ>D=JBPj]j%Zׇ(ZI5"Tw}"Tw}ٻ>@u}"{Uj]jZ(BQ{OPCS"TE!`Vu}"{Uj]պ>D=*BQ{OPkPCPC!g_EQY5]pۉ|Nnh a >F\2yeit g ~p ?, ĪLk4L͙ˡNccgjZvJKtGnG빴e;`e5];O͆ 8+ˮcy>(ӈ7,fwUmPJ3ܞ`I4L#NXx&VXG=Xss;j×"cBʸHs5OYV4V)p^/ݳJ.tj5$,nnvb|;̕q³de~,Gïn'VعX8) ܒ0]t_N*R#KS_^ tAZjc%Ax2=Y֪pHP[C.UK=[tѷƾ 0&<6EtsI!DfFu !Z[cwfe:~5~.yy99LNcۗyDz:뾩 6T0a?$ϗ+9190Xwq"M4W<pkh|&1kaOj9}gL)|\S5VĐH`Ѵ%DOvˀ;6z<ymD mBb{3g`3Ƨq|=x>*/1ƾ:'%h4\sZe,{P _3)ۆʔf l*L04!0L}x Vo&cXv>|9.XټZ$+f9֑U3P(mW2i  `:ދPxˢ)&QMgH(o蕒i8%8dLwd#bLsgSz'lェ*c~aæe,TkuV >méTϝ>]uMc(vT6?a^eO)L2S-?ө49K8tev%lg W\e_V@٠߿3Ck8quXIv4~Ci[c i(EE<"PAW.eu{KOJJCk,iw3TyzZ“X-W2A t8Sە|HT0vv?[3R Y!SNAWz7 /O/>h&Fwܹ!=Ņ}l T@ kglu+fq Qvryٺ9c0 ȈUSg?JcOq &2|Q0#*@Q4&Oj oC{`sBGZaAn7;HT44w\xHT[@m_-Pp`!RE{jx6Yt_iso^|%_t;Oe"en%4BCk C0?ƾp v-h[^&E-f#HIX_P7ׯRI 4mAC;Q5yԷ>-)fp"Ʉ@8Fn)E²c|N{OBt3m7P=A?\NvYΊH-`}ЦY_/}Tckp>7woUۘrmMOz޵ In8<lFvJ"KyИf=itj_W&yt92́4"`F;rT}#/Ѳ\,`+9khM0o&«pij< ~xNlN;淽Uohul xSZ8:v. 7O;,䢁Z"|`{DL&9B>qiP:xd[Qꇁ~I\5{^4|5칧:o%JMaFtdMˈݙ}|-*C ,VRNlnGa%IMDlbL2&BVeH1(@<mZu=tbۆZLB03Iķ *;aCJ$u1= Iw,dN[X)/ݨMْ/Sݏ .KUh88]!Gfҿz>_Ssɤz=G;΃7Feus@̫?4<%n .0c?>/P 1059 0 R/Type/Annot/A 43575 0 R/Subtype/Link/Rect[93.6001968 663.229004 210.276001 682.908997]/Border[0 0 0]/H/N>> endobj 43575 0 obj <> endobj 43576 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43577 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43578 0 obj <> endobj 43579 0 obj <> endobj 43580 0 obj <> endobj 43581 0 obj <> endobj 43582 0 obj <> endobj 43583 0 obj <> endobj 43584 0 obj <> endobj 43585 0 obj <> endobj 43586 0 obj <> endobj 43587 0 obj <> endobj 43588 0 obj <> endobj 43589 0 obj <> endobj 43590 0 obj <> endobj 43591 0 obj <> endobj 43592 0 obj <> endobj 43593 0 obj <> stream q /X1 Do Q q endstream endobj 43594 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43595 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43596 0 obj <> stream HWko۸_MR/.nōIQ(Ms!)K&)F!琜3]QvC/> Y믯\\żPa8a8aWM‡u\ڗCjmW7aWE!AAXXf,ׇ&jpJ$,Z}^~"sgծ|΂8K&)Yĩ4*׫W$I|ƴqۦG$rƬ(# B߮!<נ9@Er~Û,܆A!X$0yı"q1) g>D\8QQ rsw}{{᱗{鱗{鱗{W{W{O>!'`xS}O >#g`y3} >'`_x YNA!gE!gw}"TET+պ>D= BPj]jZׇ(ZAPCS TET+պ>@u}"{j]jZw$Zׇ(Zׇ(CPCS$TET+ պ>@u}"{j]j%Z(BQ{OPCS$TE!`Vu}"{j]!Pj]|Pj]|Q>{(BQ{OPCS"TE!`Vu}"{Uj]պ>D=*BQ{OPZׇ(ZE!`Vu} !Tw}"Tw}qQ*doanup_d}Ã"N4-!89[j)8|}jի$jJ?~jgvRîV׿8U73~05EIj(%deZYq*i-LAD,7ˏ5f*1׆>[mf,g>{I,T!:n6! Opw.BC 5G2;r 9) uZc'A/b\-eAykRx\[8K0 t "'23&<_f9M y>O6*;].ol9)X'2[zF('Oۺxg3O Y 01n  ]K6Gj>u0ki豣Fh{w>bo˭s*0V7[V0< 0݌ c8?θ9`ntnqguϮVs 7SR_4I.T kV2Kv1f?DDam]ˍ>][oЍL@sh]ӝAM{`C/+DԋU@A]x, 86ͬq~qƒZm]u 3""D#"A7p:)Yb9CšRX |4ӂi1S a5Vf'>{оSh@{hiXM_\P<wxu\_e)PdSْނiI[Y[S8<\CļNhU7v@nUqBѤ-Ҝ&0yg@c@r8wYnܬ,id'>ߵz$rLy@T,e?}wEy HNyey |^k3f Nu0'q!QGg+d\u]Ӟ/OОޟ ɀZE)0W T'31?錅f4 q_P& cyj˽ 4~pWˮ6 ߯2S`PEf1+%q5&عiGXvXYICBnT.J;(a)R=.v\8 ]sHqXڻpŻ??mVO6GTYZ( iEK};" `9 xy'p%;Ay&1}( `\H#5HIU$LƮX* 'ANeO|>N B;y*HabwS9. i:{WAMs|D$M1%EEs=ڹjƌ'lfeu>WtBP"i&(K$НzzogXn/rͽ׷Kۉԛ= =gwDYr1A">)CmF\Nq=3L{"2E ܢOo8U/ʐTKAeAw"AujgdXj8a6\ߊ-nCv#KMjk<7$edGpW(#p$rG3 "Ņ`jR&PJةb#bX8Hѕ_ն-r97F% 9Y'&Ⱥ*mLf3Tu/V.YPso1sS&Km[ܼ>6E1&R?B eXw"zW ҄ogq92n'C'>yF܏|J4Q" R=!CGf )iK1,cD+13κT'fȭOE7ƿǿ5NA`62EQMիطX# g _uU2QYm:#B1 -eT`OLȬc]~AѨrVU_@\08=&2&w׸;7!`0aH<2gOуX=%d61YlNӮbXQrH!-8e`U8Xq) QjJ5jbl0 rfF |Vm¨~A29fn."wc#p hJS=w珱Ym^̱nd%<S.JՎ{{UEU_vtU*JG؃kcjz497Ɯm]aۭ>nP`23j[W?u0VD܄co/_z}gM&endstream endobj 43597 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43598 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43599 0 obj <> endobj 43600 0 obj <> endobj 43601 0 obj <> endobj 43602 0 obj <> endobj 43603 0 obj <> endobj 43604 0 obj <> endobj 43605 0 obj <> endobj 43606 0 obj <> endobj 43607 0 obj <> endobj 43608 0 obj <> endobj 43609 0 obj <> endobj 43610 0 obj <> endobj 43611 0 obj <> endobj 43612 0 obj <> endobj 43613 0 obj <> endobj 43614 0 obj <> endobj 43615 0 obj <> endobj 43616 0 obj <> endobj 43617 0 obj <> endobj 43618 0 obj <> endobj 43619 0 obj <> endobj 43620 0 obj <> stream q /X1 Do Q q endstream endobj 43621 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43622 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43623 0 obj <> stream HWkoܶ_2K(p67h$]ګt%9l;#R%m8f9G9廪_~|uƿGe BLy&qo?6Jۈu]7j̫ucƾ}]~-!z.wyJpe\šq>%f?]_<:Mf<{UZ1QLt,WKR'7ݿG1iVoO_G̘@MTgStǔ!0<ȷ!*tylyH޷JE^E^e^e^e^U^U^u^u^u>#g`s} y>'`_ }/ e$h}[ B Q!{(B Q!{߆oZ߆(}ZAַ!`Vm"TET+6D B Pj}jZ߆(}ZAַPoC>P TET+&j}B Pj}B Q!{(B Q@PoC>P$TEַ!`Vm"j}6DJB Q@PoZ߆(}ZIַ!`VmM6D}6D}B Pj}jZ߆(}ZEַPoC>P"TET6@m"Uj}jZ(B Q@PoC>P"TۚHm 6@m 6DKVS.D X'3^|ٽ٠y.Xu9HMS Cj](m](m׷2yK(UIy4/P+:3cCcԃ}vxץJv)7+;hŇyjtmV9z)Q &᪳?l@9g_zu٠s.W 2en]]aerR(ƋTK`ܸF 2 M˺tR1-݇),n%FߪpqE'x+,I1&mǛ϶4U6)Hq;/ܖ`<,S+PXK蜁7n:Z)r>m,<_}2 :\O|0}uro3mWmZ[=Y[6Ui?^_KĐ!H!EZ,p[vtz6'Q6Dacv<+X&l~J7u+([Ч~9;3T<_}-ߧSh7ɱ=-4b;X뛪;usw2iIj_`IwnM?J7.f6D {"9+Fή$&i#m f)]*L$y,GK\|<%r~j]@WIG}Ғb քx&#9߀wMembJ)D2u|vJ)bq;sԆZT7㴳0TW q~iaU^pָ/ƿN㱻=bpɶϘ,X8/3ݺ}}3D 711?|D3X66:4?q- w%Fb ]5t[x2xIuw7U&,Vٿ9 ?p>2i]q;7sftk_*8~#1T `fC~ܟN?ǣii d脠/H>5MLv'@ˎDZu<,&XZvY l`|ʂEm&LY \xɁN՘gTGWߥ>)ԄKst~Nuˊy=h^~^r='H$巫z^RlD'T~mX';V9uˊ|nI -4p>v_q~8Ÿpe]c[ >Jkl]A6Lو`B1 qs2p90/W8ǣO*J!9Sy)6 2fp wJ5)+QS.yZ}j18J5<  @gMP]Ob%t9_%'Jv0rh\R?@ui:C{COhȤZU`ўF?]q{x.7"w * >rq|q'6XKЛ:?U ?X+⡃mQ m] hӴ>$ʶ]X~C"uG g8K iwڣΆn̍ALf = 8]yX8 Mlj $n-@a.h4`Snjѹ{ҳC-y7=U˩6@?m%A`MdJ,#Vj4:=E>R8c?l1HgFN:X̻ j"#BQG!dpϦSoHzDZ9$~$xe(xNd3TؤHp0 <ņ`ҮM(D/=$pm8!Sz 794 [ljm'Kޒ.PDa"k5sHfƃS!Ci^c^fwVяiUOr޶ctL@)Fy(ѥ38 PLNQ K+b41>dzF!1ƌqO[#)\dO-| &q]Mt ̿$ 9 K9lt}Ș>ӂ%3,._DaȽiLcHY,x:40*Ӡøpg7:zg'PzLĜ@o/_q¥$Gb>MRW[So]L uQp gb;.M)r.w5sX)%Mv|LB 8⟇J#S=ʯ/*VzKWXy6S=3r+\y`ig*`VlN#${,|aIy0*55ĪH'0"D+2zJ~Uqcª<;fqbUQ[%wIW_'nx\yϯ3q!DgLCH_# ypO ut6¨Q*w訠]X~>|E;X9^(/qX:'g$Gpd3 >/d`uhFS&Zs,b'8/4SZW0 3w{uLF3;%\Nм=q:BE,y$-3AR;5U:a /d Pk_WƱ,9%>Bђm35a~q^60 :œCcu]Wk>:.P<2^cWr߮~!&AdJ}<)۫C}biK9Al)FPMv' D!'n;+ uL]ÜK G[Sb(76$mJ N;IfuuDg @ 9}Rx-xJ0#aS̃Vh Eh2Y(nM9q>/P 1207 0 R/Type/Annot/A 43625 0 R/Subtype/Link/Rect[93.6001968 663.229004 244.979996 682.908997]/Border[0 0 0]/H/N>> endobj 43625 0 obj <> endobj 43626 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43627 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43628 0 obj <> endobj 43629 0 obj <> endobj 43630 0 obj <> endobj 43631 0 obj <> endobj 43632 0 obj <> endobj 43633 0 obj <> endobj 43634 0 obj <> endobj 43635 0 obj <> endobj 43636 0 obj <> endobj 43637 0 obj <> stream q /X1 Do Q q endstream endobj 43638 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43639 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43640 0 obj <> stream HWkO_ی~ZIMHx B'=as("5UuO>EeM9ɟ:?AI&p1{M,:NN'gEV>4&ej0PYB$t8qH$<&HI|; ޺YmNk:b%|!q){U>D:=F#!^Pj@g8e86;r&[bIQB$;P{K3Cfm,ibqlntBmrEP:w16@1=33=3s=7s=7s=7 0 0ػ{`"]w 3{{`#} >7` DKDu궽626@!m em emBT ao!m 7T6@!m 7T6Beju6BejuB! 2D PjuB! 2DMjZݶ8ZݦP&{(DMLML PjuB! rDMj9Z(DMj9ZݦP{CQnZݦP{CQnS(ZV QnS(ZV)P-GT@TdV)^)^ QnS(ZV)P@TV)P@T aoV mBT aoV m 7T+6@!m 7T+6Bjur626@!m em yow(f, %RM~֫: ;N19> +IVuu}JWs>fz?DKn:7:~ܐǮm6Ei5ڰOtxB;W2jၠ ԣ"65;BgwEN|} {Xm–_'U\ d"l4;Gzy:ˬ(E ټ2݆*SbEIY2ᮏeGU'{GYV4\SlR?҇?߄?i¨o1[P;ѿC%M0s:68Fw rsTu`[`UK'|3MH6e|sBlص?sYEg>/=yN<$yRFu2U*;$'lKv)xٿ$.9 l{^ ;>ۛfdi G3e)Ae> }CP*QH* 8k$ |z4Dઓ`U &'Y<&3Üi$T)tyÃu܊(;<-gnMH`^P '`} 0pXC!]ۍCI15M/cioO1<Ke e0X5NvnGyD:߬TպkBj(۝g՞v޺ ?4gC }P!M۵r58bN0h]HZ/&01`4zKgzS,jg\=n[0ŝ}V*r5j}GK.֐-JvޭA̫~ч8Xay615IDžBL.zcL5mQ0` &g/.'z2Ǎ|9:Q]A&{Oo?x;x}qN_rUGlX59ǫX5_ ΩgȰ'6WQ2wCoڭgZ f3cO@-zi70QmiQ<5x&ӻUQk )=o~zЗCĦLDIo*#qQv"hDe&%6{ j0D=wFY_.\N6}.!7JYcGJװUc40F_ǃ v , ;c`2WvAo8$lɳx?`x&Ҷ!=v.+]J-%ep²÷ 2& [-Hw`vvFh{ !K`y|F_'&EJ싳vN_TWwENI iWA`gr;e"5ܠvX޹`S.w@ѧ@G%0#5:dGfTߚ !!d7Wl!؟^@=O,Ӎ8a\>,B]fOKaq4gӱ}l[צA6f :Uijw~zaB @Sof/LR&D &_} fߕ=iGS.٥EF+Urau+O aGoQ]1dox4嬂jrb kOL-@浦D/t4B? 4b (: q2SV`wM19Zy pAJs2eB  a/=HGqkFx")^Qx[YO1Dۅ??By:~TNKc,ew b 0` %&\GJdYNYOJR1gԕ'T? c"z}bKs[})l<8c{T̷%LU!!bjî@e@&Y;@-dKVU-u2}z^W endstream endobj 43641 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43642 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43643 0 obj <> endobj 43644 0 obj <> stream q /X1 Do Q q endstream endobj 43645 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43646 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43647 0 obj <> stream HWmoܸ.@ȅ#o.A\qȻTIZ_J]wѐpx﮿e){_"n/ӅL2L&Z(eg5~rwj-Mt_$ls$e`}gF]l05^IjlsB'|T萮Rn_e.^ W?^|޼gWL\ǡ,#MBHtq&>`ό޳OScY"4N |# M12ǘc< Oem m<`}A/ }YNַ#Aַ!*dEַ!*dm"TET+6D B Pj}jZ߆(}ZAַPoC>P TET+6@m"j}jZ߶$Z߆oZ߆oCT޷PoC>P$TET+ 6@m"j}j%Z(B Q@PoC>P$TEַ!`Vm"j}>Rj}B Pj}B Q!{(B Q@PoC>P"TEַ!`Vm"Uj}6D*B Q@PoZ߆(}ZEַ!`VmHm 6@m 6DMbQ,vDWE16wOG;Еm.s{h=E?t7OUÝD͖-d"aG_tI=Tn x99.L z|m}#eV<S\T|}g,FÌ0&Bρ(נ(iɣ<'}NAzy"Fhj~p\U M Vڦ3$d\#X?;3Ǐ?'ܽS[PvXߝO2*i~RIy"^9CrQ"at. } ll*\U;X:rb$S mh{dNj<4X8WKxlCE|NYq  bCWo˦y7X5l@hyܖ{;b2-H}{FUsiTuHK?T{z1!cUT.tNծzo3$R$`=H( B7KIƏS]5Qr]%\r4?O/ekM3cWML2=.+d:%Ll϶)?9*v!yx D}eg؟n1zJ5q 2/Z;3/f T Ǯu ,ڥ\ƌQE&6*kn\ 1%ú'AəK8vo;9Ko;\%*q{&ث,'Ŵ`wvX`a%z Th8 -OWis˾s{.&s\lʗix& m*8(͒d/V g? fi/C_:^ÙJϾsSX0'-#o2|(SL\[QRtrZ|cmK{ͦŒ`l4ˡ|%o=6.3b6gncNp~UW\z*ϖ5& 7+%V(+Z%Vxy(kW.šrElx ЫiHiиU8+5^_p%;P TJڻy\d`|#[ܭTvuyT7'ch5o˺ wE"[H(hS.6JbeYV  S=W͈4zy*T;ܖTCm8dvTgDqoǘuL8n"AF폸>p}*cED>T܆NMi8Q@M(\m;58ǎ}uPI!Tes))W+&fFvkpJ٭)Vkk.ۙ`L(JpaW;h:=0NXu&pΩO%(}wcrI+Ŷo`u`M4bj0uqSs:* \u(|ʱ@]\xч)49GbȩQ(~- lnt|o\.J0Sp_ '\Kڍpw*x.DpG^q,=a"AZc&UT[R?L-ԗbw[S5wٵqQ>bIn"Ӭ53EK & b9v!λv4љg$ѻ&actJUh+V V@^zbkX` k$(X#`EbEJ+!+wfbf #,O,/Xcf-"3k yYK{/ZE{=f, 1`^xYY3k y 1`3k y 1`3k y 1`3k y 1`3k yYY3k yYK ZE=f,>1`Ax{̬%X}cf-"3k y 10-=fbVj-Q{L?6?h3}a8ye;iž]oן. {r]~ GN6䧽qg+gݬ?~5rpyw~qM@tcgOD{/aC;BqyGVyI6̯__5w˗oo866.vLS+.'=mv/N<]-V [E?xgQsr* nn~g>՛GݜV-b  VO^zb 5kX`k$VH(XXI`%dͣYzuXN`9byE{=fe-b 1+CnKxYzuX{Ы[cV^"2W 1+CnKxYzuX{Ы[cV^"2W%Ǭ E,=fe-b 1+CnKxYzu YAxYzuX{Ы[cV^"2W%Ǭ E,=fe-b 1+CnKxYzuX{Ы[W%Ǭ ַ8,81ȟ}'_~m>i;X^|uOfjWo[ah!֌zڰtm#W۵]x)?ӓ?' 0sEendstream endobj 43648 0 obj <>/P 1357 0 R/Type/Annot/A 43649 0 R/Subtype/Link/Rect[93.5995026 588.828979 260.243011 608.508972]/Border[0 0 0]/H/N>> endobj 43649 0 obj <> endobj 43650 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43651 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43652 0 obj <> endobj 43653 0 obj <> endobj 43654 0 obj <> stream q /X1 Do Q q endstream endobj 43655 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43656 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43657 0 obj <> stream HWm6_^`$PCC=z@Z[%w͈$Fr4~z݇,c?䯄 t)\"T'.sYÒׇjlCjz<5;vj_> <$oÖ)gۧĀf`NVd%۶ͧz76}mx}~Ԕ7_*Ғf>U&gYēsLa kšg 6R>sT f /۳<&J|) Sbt11 mR TE6!`V m"GjCՆ6D# B QHPmhkI6!*fE6!*fm"TET+ Ն6D#JB PjCj%І(}ZI6PmhC>R$TET+ Ն6@ m"GjCj%&PmhCT>PmhCT>!*fE6!`V m"GUjCՆ6D#*B QHPmhІ(}ZE6!`V m"TETՆ6D#*BM4І}hІ}hCTޤ26y?%llÃ"Ua6={#鎗z<2{|`ݗմI"~zWnhlEB jQ?%(KU;!t*$_vQT;8NqzWi5QC]L\Su8{w),J)vVKoUxhk(R P*KyPE*XikA:b"`Gq ɳz/M_J>L/(Z^8SmQ+5HVSdo:,-ˀWE\qKK(҂~A\e$1  Q7\q{2[!&v|.Sn°7$ B/'U6]56}Mt;J:d4SY8{Rכ'TB3fp>\ѵ?cuӮ3weZPik[ܰK990\>t0Ͽ>׎>MsKoPA$RII *F1{a~y^5L:hd^ͷf0 ~2"T MIm*̈́gp`xWЏO7%REpAT!9z#Cg»8'V}$dPuQ̧[ÁRO,3|ŘƐmm"-JA\9 ܣ_s2ԫ͓Zh[U8tZ@!s2LuRuS i<Ʃ'!'ֹ5%]}bx&W`w~W? 'nfsW4,Oǯ+=z<ڊyiv/vx]0Ŋ<0{bD$K83=84%Gy#x>f9W heUޓ8Ӿ韦D݌qg (7/J*P)( jh"L˗G: ^_]>i<{:V |q/=bL)AkW+ߪSS=[u"bfe 7Po{Zcd^a"'g&]32jo\>आ7܉Rmv[MNg؊ 6f ZP𾶛]\R\?>Ʋu6 9(HF7LW(]8дPSjF*7t(\\Ra7C0d9OE_j4 |Ṻ[|9JDRIH8Y`42*wQ[wDVp;DB5Sqж%4jMvpv%J247ȋ߹)\rs]lbSp wbAiu5%.q46|A[ס[aS-2КKp"2ϵLǪ8Ui- lv*Ua#ї<-gcս/ntdzAU>Kݹ5<.͊ŭ_b%Kn(WL͞2]}/[;hcOX=[Fԗvnjp]!bȱVl&x6n{~[6)*fsH-н(-Ò"%RLpi-4\l6:6EL^f uqC_q(L@|vQ7۲lTb@c;M9|g^7δzbkB~Fwe/8qon,G#%L7!Kt޺2õ9t0EFLE}*!U3(&ȥY↵_1k2;qt=mԌgW۵Q_xBB "R;4l(A;^M}ٷ$a#5S~`'VSA8!0uq]m1pfqgc)āftfr )QP&/VCaIujb3 /4*] А.{P>Gw-nA=>Pf쌵E1/ mKqܯGM3,lk[ >8ɜML45~i]%(ӭ OBhPpaz4HpLfT 0X<.éXb:\͞H)_<X IW^JӒTO;ŕ5Ca\_]W_]`%ʥ,1N@_;.9r*Q6'A%{&O!] tm%E;h/RRRT֞_"?BЦQ͉]OGpi0l*0@;.+&Ch" lv.[k>s1L;ŵ䖴x0 vً Hbb;0SXb?VCRIiETx* raLT6}LQ(TI|Xc\9UwK'mv^^23bS5:׸)M3hL .0$?&Ϊ>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43659 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43660 0 obj <> endobj 43661 0 obj <> endobj 43662 0 obj <> endobj 43663 0 obj <> stream q /X1 Do Q q endstream endobj 43664 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43665 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43666 0 obj <> stream HW]oܶ}ׯУ 82?%(ZN6Jw%w%gP>u8fC͟qH揻ߧ$w? 9)D* %K& I6ir_滹ݱ9In>|bSn 4<&!N5LK!WWo#L(9q-l\3ﳮ6}^cdw];n>.xr*ZT"Uσ9AR/' 𜥧7%6M4/r&Qv<$<3O!F`((YT\h1*YDP!wJc P a" a"a#a#a#a/"a/"a/#a/#a/#¾"b_"ˈ}/#%¾++kk}Y66YT> Qmh}h}hfQH Qmh(}Z6 Qmh(}Z6Y>R-CT6Y>R-CT, a! mBT, a! mTՆCՆ6ه6@! mmmBT, a# mTՆ6@! mTՆ6BGjCՆ6BGjCE!#rD PjCE!#rD͢j9vHfQ1(D͢b͢b PjCE!# D͢j(D͢jfQHQmhfQHQmh(}Z6 Qmh(}Z6Y>R@TDT,*f6YT>YT^Zkևvl_"1dyN7>LzN E[Cݵfh=l977UϦxOW_7W繒lզ/N6@{iw fk_ l
2'Tӻj3\mcT䤠` kqBv N(Vyu sx?Ʌ84&H$'likɁ"O7uzTpwr|PqL]E -yZ* J.&ۦ.0^!x;7kae5~fn]&_]_Pr&$%[6QW}ڰ3 x|\T$ܵZ]>MNID^0)MLNs&@P\.Cs@ett81"@nv^ﻧ1ό1] O]?ՄeqtwZNja甮FZG} H8'L kAHN &ffJIx? Jn^| N! /Cj1S;>*q1) ) sO6Ŷ9/YThiYA!tv5 "LOX:Zq53M_*}mdjKXQf:g_;I󳱖Ӯk^Lu{ݣ]{`gs^N˵d?_z ڿ^ܝY<^,| ʽ8{͞sWz$sHNCإ|~i!Bf)5=sl/fP\Nur-sS| ٓJ'i*Z 3,@fmw<@~uOV}4Dj>bp_Ҷ㭤P7"~$ :2vl:b͓깩㣃"'R~rp!:f'[/iȼy# C*K7__]窦"gj#`͖&VJ;'O=Iծ9o%L<@vH({+7L.~?COciWzpf XtW/{ht\|EpoJNT(X=f,t Hocӆa8F& vk V7[{M)n^BΣ54 h\xܛO | `BRJrk7]9n[邾z'P_/Wxݬ{`0:U%DDfC&W9T;,ޏa3 N".F,BР/!ktw*'+X;{Ae\Po:+O Wבf$/\. q]u<fSk?t>4}6=yaƫQ篠KQl wUSUڮԇFYVA"*M}1`ff pj[]Z;anPMRnN u|Xeߗ v&ҴKzZugLu檋k pcn d4(SQl|i(5Snwf=@<)Γн5 S-?`ODz9emۼ5vW MF(U}u#4ʼn./ Z*DL; G<0c[ۖՋQ}s6QZ=97c'( ܶ9PXghL)SH1j}TiOT* 7Q.1jY}x +%-$|DفbV(O(Uc.LĊ{ PC (%f{a[~j^ɭgҾA, i%+K.YxD. G`洑232PY}J옱MXuά,R c:"Ϊ#ً*V#RH|=#k%#uJ&3;yE1vDp:T*M۞ Wgy CK|<}Jo+^6e(nLxN2&Y~7cUhD*~2*:`""jtO s_(D-:}ETг^umĵ K]KT)rX3QN#htS8B ^J;21ɦ|~GF%><ҼP;Saew,%ZEZҷuRĉ)|{!SI|yɜk;a}>r:Re>h5+pٕ`d R-M3{{fƿ>ԡQ!١/_)g]*u%mKފ<}o](m[l8P@%Qs^qЪ 2tC|݇5JԴk'9W=7p? 0-.j lqgeBӻݬ(l7aw@_CKՔ+08f4Xw@r0nVB乃ًؒY Y纭ҽZеVs5O 57BoL ` T'B/ ץ]@}p㡻d`TtÝN[БJ?blw覾l^ނ1 tڌ1CnHLƣ(W+gѮO#Z|`endstream endobj 43667 0 obj <>/P 746 0 R/Type/Annot/A 43668 0 R/Subtype/Link/Rect[93.5995026 543.229004 307.487 562.908997]/Border[0 0 0]/H/N>> endobj 43668 0 obj <> endobj 43669 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43670 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43671 0 obj <> endobj 43672 0 obj <> stream q /X1 Do Q q endstream endobj 43673 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43674 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43675 0 obj <> stream HWn8}WQl7yH2;H մ[vKv[%R-5Y GdaXHYc/!d᯿>+*E &Sf:o,| xXw}豯D86!7A f,7M9Xwmxu#qO',X\$j(usߕ}Yi$(gLXEj X1{אp_Y BHEvfwA3\\8Q Q rswm{{᱗{鱗{鱗{W{W{O>!'`xS}O >#g`y3} >'`_x YNֵ5 Twm"Twmٻ6@um"{j]jZ(B Q{OPkCS TEֵ!`Vum"{j]պ6D= B Q{OPkkIֵ!gEֵ!gwm"TET+ պ6D=JB Pj]j%Z׆(ZIֵPkCS$TET+ պ6@um"{j]j%ZPkC޵PkC޵!gEֵ!`Vum"{Uj]պ6D=*B Q{OPkZ׆(ZEֵ!`Vum"TETպ6D=*B B Q>{(B Q>{׆(}EBVͪ m &Bn&;|a >GѸӶ5an> wgb= Lq<{ٖAn!YlU ~Hs~*x$xߗճf,8O_~Wq0LYTpU]Mg.y8)i0\$_v{qTF|| Mf4W?9Ili;fJ ṉ'нEsurig\&78LScdDJ|qN9 >V 4vD 3)c)е ]97[llolmӨ "qiNDQ7`T)N p,q\/ݳⰄE&3۵ ZvN3LI*]fLUSښ^q8ە/6q-Il4y[< l>*T&Uy.ϕ98URH8PɆ1O8+N_@îoyP[%\8L!Haunhpiu'0Ħ36[xT.q?19Spoh@c+/NKe̗.=(60&=f *ә`FZGNOn%r!*y]D +s/Nvk8UpFopTY}3g oSy uQٲ9e垠oNl $芫rV^ ;wx `_%!LrB-u56dxWnw`2݈0A7< CgDta0284-(2'0>knb tw8YxEg3RkY^.J-`rEgz|l/w Rr4Nh9Ww.Yu1}\_>ƤQG.+dvQhvdf& yӍsh@|2zY8N%k>l!]zj0T&#O8L“k?L jg#D KV%3'VgўԀ _#"sY~<]̴@>;πv4wKQ\s)7 @ !(JDT-D`!" PI*pSVcTubZP?{=ρte)P<hk`f:4 1!hg^+8'Jx2V,3IJOeF2KL[3NkٙTl &Z{J[Zx˷q +[K|6Z3ph:O*˽fhapQPzY{S$G;OW%%\O ծ] R DH(*P8)g۷x#T(FA&6Np%!He4m!qWsVܔOmg0 0O(a0Hq"1︂BW[Bzq`fL2ݶ{SuFKЯ訖%^:ْev tV%⣳{=C] i֛'"N$r-PNjt=OTbWMOdJ@8}IqhnɔԜAԼ. OϷLHk񄮣"S=ÔFS F•۹YY"E(3Mhx L"NT_`Ep&F+09meBcHLKx7"[iB v[KB¼-'Hki(fCk& -r(|1C@dURIUĽԁ4∜4͊Ь+l'WNn?*Pӎ R'aP=yXJ[DnZzN։s&5.~m-A ^,4}Ǜj7 bfpH/<9y Xtxn kkk Jd kCR$egz8۪% !ҕې&*Ayx% "MYA#o͟x~rvdk\ITRbw>ڶ-Of0h'EA{)Ř>鎃B;BQP+KT˅NIq|R@z(w&Rh(qP-BWvR,#+?NI=b?02 &Άwvv:!j?.q@+gXO_%DwPġ 0m$HT ݨcXqUTT?vzO 6Lhz8Xui.÷.Zzz1,n|ŊE^R|ҡ'b,8dtP эFeF57|bz{L?1r`*@UӤuwA/kۏ܄o@saG*4 0oSPD!_WykA$VYDɯ[ uP]D7oʛXo7")P3hB&:)BC l5+O;0fMd)w$)\:G" jSDyVܫDH[~㡙Agp6|Pvhh5ւvyu?Nu%9f_]ܨ\^M㿈j[ birHLv(=Z:KBEh|ل $Ufp׌ҵfy?8]uaؾw+Gd#BNKmp Ͽ~|߷o/#0endstream endobj 43676 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43677 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43678 0 obj <> endobj 43679 0 obj <> endobj 43680 0 obj <> endobj 43681 0 obj <> endobj 43682 0 obj <> endobj 43683 0 obj <> endobj 43684 0 obj <> endobj 43685 0 obj <> stream q /X1 Do Q q endstream endobj 43686 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43687 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43688 0 obj <> stream HW]o۸}ׯ,?EX,ͶE[ȉ[JJ %49bѵtrs"\b"\b"gUkS Y̵pmm M6ŐO1`M1dS YC>s&\b"gՄkS XkS Y̵pm!PVM1`M1d3jµ),B}ZM6ŀE6ŐE\ צk5pm!+Wb"\bէr),µ),B}ZC6ŐE\kצצk C>s!\b"\b"g5kS Y̵pmpm!PM1d3µ)),CV>ŀE6ŐO1d=&q)^΋b͗yҳ]w}ӲU3).>A8<b%PMF-WmX9kUB lеYmiZm׏j3olȩ?n3E5uێA~?.|Y\UX]}5/WWvѯ`ACn;plo'53Pon{~r{`_i ڳ_n[|`.e&<_qS ɇTr##Tq˼=t ˠWRi:0 /X@VbVU%dmNZf^U+Lg5W&舦'{lܵ6L'Kͅ/uLԫZbBC?#Ҩ(c1k,ʨ:sewLxs9 eF3ln4wT>)Nc|p:Ч> aaNcQNQҙcYZFWژKW[ҝ9YH?Zc>KWkw~j-!!%~NBFLr-8n|b2S OAN&DU$ XP5gǵ"2Zql(+eK@y$pq ,|H0-JFVpo1M+ wghPܲM^߅eI [+XeߗCi(-Np2, Ebiwۛ/HSx3 >Fwuv p9 >K  q3 gYĚ"gh)BUw w'08R$4H˔` phMnz`Zcѻu@Jl\Ր(woYa}e< DP$F6/ :T1 ?X{F*Ȁ,eZwV@C]6q"4l-$BG8 p6IB#0B`WsHO>&$+,~jv^j[4]ތ_-Xn,I>oGwo5}X6P&DN&>,d& ^ܷ BSɗOp8{܌PnFsKk;v>p쉤l9ѓG2.YRB}# EE!WP 4 k9܇d4O|#'p0xϸ ϕ3h6͆=h G$z.hWqDDvDZ,NYoQRyݤz}Zt8;\wYPr u_cȡGT wf)TDnwq!ǻ c@bxxzj0w?{T'Yy* G=N8pHupJ1<|؇Y&lOh ao0pdZ4Z^}I{ZfU02xuo;S3A-&;21p46"/IW&.Neh9]$!Áks=3> 6YOH&Z& K Va+g0%>ovM7>e·ιxn}"K]QD=/)mU tLjdѰi; 2%qWIyÙsZB9rޚ]J.Z\ɒ}uF,s`I+Q.b*$aFKirq\>U‚4 (hÊ$l"0 Q4T9 /0'e4Oڲ;|r~xrG:_ W%wFZiu\E.KСIBR3ćfi_o4ugZ^ÄJ8 vȀdCmw;hGi_1ъ'eQrN|M GiD`09z>7\NڸߏjÁF~|jދz#p nxR;xm7fu.9mt~Jg']?`qyvPhjc$S9& 6v RQL%ȘFpUW@yD\\,Pѓ:\4Z)S(2 ?Gu V{:ItNo8v ߣl }y,,}ͻsNpčHOQDӊy+®m:" D.֛̕1~U+EwZl}K%ksb6fJǍ^Pr}'R}ͻ<5,]-ߚsV!UIdLXW.F-󣍂BwVV.!77}"daS (JF!`teTSzLJ|elëU]Ǥ{Pq>} @uζ~nQD^ab͂^aB>3faqyI>@ӑ/[CΤ]{n?jeqB>9)Ȩ5YEj;4*2jl Sp:e8'.@ ikez kp: 0K`X&Q2V_r{=q+3EDsV$=:4 ײh6WcTiU|`<֢٥RTdnes:[$o;O7?~v (2qendstream endobj 43689 0 obj <>/P 1624 0 R/Type/Annot/A 43690 0 R/Subtype/Link/Rect[157.783005 216.229996 424.674011 227.716995]/Border[0 0 0]/H/N>> endobj 43690 0 obj <> endobj 43691 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43692 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43693 0 obj <> endobj 43694 0 obj <> endobj 43695 0 obj <> endobj 43696 0 obj <> endobj 43697 0 obj <> endobj 43698 0 obj <> endobj 43699 0 obj <> endobj 43700 0 obj <> endobj 43701 0 obj <> endobj 43702 0 obj <> endobj 43703 0 obj <> endobj 43704 0 obj <> endobj 43705 0 obj <> endobj 43706 0 obj <> stream q /X1 Do Q q endstream endobj 43707 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43708 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43709 0 obj <> stream HW[o8}ׯ$xхb^v-⫁>ErV4EE*j|<o)o޽e1o\E\3_(2JR%k} 8Yp)z5ݡUá.١n(ط>x nWd6Eb9Yl B.a\$qwuSF$qXi>\}Y_8JsUԬVo~ν,*CU>?|_{d:c4Xz l3(9l> *!P;>yl $K$K$K"+"+}BO< >'cS}JO=>gc3}N=9>kkYNv Tm6@6cA Pj͠jZl3(ZAE `V6"{j Pj͠jZl3(ZAE `V6"{jmHBfP>{lZl3(=E `V6"{j Pj͠j%Zl3(ZIE `V6"{j Pj͠j%Zl3(ZIv"Tm6@6cA Pj͠jZl3(ZEE `V6"{Uj Pj͠jZl3(ZEE `V6"{Ujm$j͠|(BfP>{l3(֊*]q<_4l BT ̒:VW WI>fjv@pZ<l[=Qs**8 r'c$| ̦:pA1=}ea=U_zTFZ@#,aWV}_Y Yʴ0{U5UyUq;; $D3[XDxF τ;}~"` efk2nVZ$><)6Byodb$2RNTDRša.N떚VIF*̋Q4EKKE:\Uq`E?&MS+ݾkv`dFv&zIGp]rV6`(gG|6Sm<9_ss(({CEOeaeڝ_uјH5F_]O LChw+or( r^P.STLxllSc 4~? m c[ug"7淉.]&(R.j8ڞͱi#;En}0%M&,%8~)M&*u<(hI|@(O6ϺkXg[Uk;W]Yo]p*:QXe6raY}iuF^&(Weq+\ 4{̉2U~RՄ­u *|'th>`8M=$p2L iu@Y|&Ӿp(ei$ʸ9us0T{Hf6 }9UEs,62%9lmgtnN-wl+pwҰTQH.VnKK4 .'B1ެ/F؁n8@X8t}@PN/HS8KW`<o9WR*gAjKb A찚|vK]QpI83[Ii%P?*`h !>UHTe[!x`Ui$XBOK'/Ze )%N uq\IJ#Kw,v)h̡Pqr~;}7l?_qYq Y_ SG"t>^ͧކ3;#Y&c_Svkצӝ7-ohTz4ӗae/NPೳ, ?>.NNq QDcQHEPd@!r,D\bDHCr8o._/X6Hj o U)l: AC—-֠dKRcؚNRoG4LwX;OX9Sc,g (YsYp٨D&F1\t{io>r#7-5Q*Y2AyR WTރ!0!Sjp[Q]ŜՇ^'伾'l:oHCDݫ] (KyyE4qEs0/ă%.&+Ń-,&yimo$uQ3HGr" 6Ι%ЭǑS5R̮SB3$Xi> EG(SW OU4u62ęr2$dwdDSn"Z^^KbuG !4j10 *ag'!zB䜩sT.giMB`X+JvA!uT`R>..A>Fy㙱g]GRGQ_hS6]on>O6pmx̴2i|渵:DJ҉Ʃn~OTKڜݻWnz؝[<`?=V&pHړYf8Xo|a$>ӗWټKxKO=m5Z e4KVe9`I<7Ak-an׋>N7tEē] \1Z.mX&[Gb3NlxS Ym{. /hS|~{lT5e#F(RaM5n~WڛE<3ήUvvWǸ.<|m*J]%N*LqNLUE3ptJN MS2w.`34yB eweN'2MAZW@et ~@qP3WH$^táE&3W|xz_yjB endstream endobj 43710 0 obj <>/P 570 0 R/Type/Annot/A 43711 0 R/Subtype/Link/Rect[93.5992966 422.428986 220.966995 442.109009]/Border[0 0 0]/H/N>> endobj 43711 0 obj <> endobj 43712 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43713 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43714 0 obj <> endobj 43715 0 obj <> endobj 43716 0 obj <> endobj 43717 0 obj <> endobj 43718 0 obj <> endobj 43719 0 obj <> endobj 43720 0 obj <> endobj 43721 0 obj <> endobj 43722 0 obj <> endobj 43723 0 obj <> endobj 43724 0 obj <> stream q /X1 Do Q q endstream endobj 43725 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43726 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43727 0 obj <> stream HtWi_q@2<@u6lob"Q::f)ʓE(jF|#X]]쮒س,<>&1/_u{dClKC]0i̙v| K;s91+>]JIۨG&䔚S M"IYz:ZRޭ%F,;NW=p{{>A}PS>US>US>U3>S3>Ss>Ws>Ws>W P PKTK^uւJl9Z1K@k%,^b%F,Z1 WucpZ@k%F,Z1 WucpZ@k%F,Z1 WucpZ@k%F,Z1 WucpZ@k%ʽ>ʽ+ʽ+Ę$r@%r@%Gr@%Gr@%@K>K}?-r/1~|Z*^b`TȽ\kIYZKb TS2.2]]nWU4*kQy"z3eLcm4s[ngFElGJEwK\E[S&@\XEO_N5|zupI[+|P؅/8 Uշ/8OKYZKb}}}}}}}}} r/1fi- ^bZe\e8=?WU4gQÅq t)c[σDFp'?׋Ynu0vj~kx[-tK:|ԍ&L{\0n!t7bO3iY8ǯӸn37 -%^0*S! g:ejHn /[}0ݞrwhVuk[s0>5nGk@?qJ?rjs{ڣbS^89/70܅wGQ7Ydq(zrY2ލ3tqyє`Jz`)uxODn5]?Ӭ)(>AtbHJ{Gxȩ|E\al3");M7( I]6mM:uLd*1P:FI..4$@?ۙ"jr(*C6 (lK!"Qg׎IʠP~UJy[vnՎ ܻSլP"ͮ]tv>`&Hv7eW7T[$&]jy3}岬}tB`8죒y!@q)++`—6XaY;~ %[e#eхkB75natA@7\i^Vj+K5ش⾵~Tk1Ro|Ԍ;R9W.ͥs[emӫ0niTOEUFN5loS u6Wxbyp_ˬ֞4&6ѕ*)X̺jǵ ؗvH)Y]0U,'.uaUH|T> mf"0fxxƙ(G};]_KMP^Ko$ڣ}vg2G,C_aaVe|k:3}ճ8]'(HC0px09M0]%a|X `i8]X %"+J#>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43729 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43730 0 obj <> endobj 43731 0 obj <> endobj 43732 0 obj <> stream q /X1 Do Q q endstream endobj 43733 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43734 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43735 0 obj <> stream HWko6_~ -$ lhm.vP3Xh4n^ԋE*!yxsyyW~m_y{| T&Bq0M8,l) 0wq̻򱸮uSVEה)nX l-4ġ qn6)v]YK&f$|~\QI1)O%_ק,yߟa =X-q(Q|11~w,>4a8܇ aF3cp(rQ#fӹ(YYa)Żyy9{9{9{^x^x%^z%^z%^zD}O>EԧQzSD}>CgzWz%eYt6~oMMşevWFyj'?._v;4EueBtf{" \sټ+I(pLtGO;lǢ*NBv5`PD4`Qqvt4&\thaT;t8N[oy3]TeML҅k6Y]"V܂&/ӡ˘RΤ%?qaf77o_|,$qt3s4-h]mDX]B'{"^x,1KO|l tOk]8~azwQI HHxhٳ>e)*Lt1B<1s== KvE54sYMmOU/x{ h-쪼l^J{碰]݂3E2_4ۼ$Fh5$DJK]M!6mvp |S@ >#l2*QR:VQ$\$\EJPձJ)N]Z}\.4ӾI t5,2)i)+n9혶C80ӷpZ"s` 132 hI{QOD>[@t{Y^$]tXgi=''/3}YtMiF2x&:m۫pC"JlG5lܐgb\dw,͢9z0E<]Bq QSN1 Wx}x~{~g:Uɺl/IuҿE_\9B(0MlD^ G, أ&|8doaZ䑉.EA%MXo^t!O7CcZ e :}'#X5')cӧ1ma{aÎ=P"D\eB I}ͬq%˟qRژ¬rn7 H|GԏC{(L 9@о<:u1$\K1^%CZ+4Y\@Xx ϋ[szĦfPmnW<7936_AEpϋeɆ^ۼG6z'#lR T.Ci>knWU[9xF4xI*n5 BtaMĢev\`RJflj ] `:]a#ضP<y|!^ܜՂprxW%=ݎ-݁-[ߙ6YY65ƅ^K,E)}ELiYʠbJ. )y19)\(]%iHY4W?~LQĠY1pa2~MQ2`[^r7!߯zKJWգD l2NoQ^tk!krOqendstream endobj 43736 0 obj <>/P 1355 0 R/Type/Annot/A 43737 0 R/Subtype/Link/Rect[93.5998993 555.229004 267.371002 574.908997]/Border[0 0 0]/H/N>> endobj 43737 0 obj <> endobj 43738 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43739 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43740 0 obj <> endobj 43741 0 obj <> endobj 43742 0 obj <> endobj 43743 0 obj <> stream q /X1 Do Q q endstream endobj 43744 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43745 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43746 0 obj <> stream HW]۶}ׯp>.>$mECZU-m-9;#R<^QLJ!9g8>⧟~˛DTVWFRES%.c"E+?ݾoMǶ6Czo- &D%*SY)6kƶ+eUڻϛm#{R}oǻWncʴZPߞiak4An,i~6XoNx2H_9[T:O*}!,T1"D1dQ XR,!2,]X<ŀ*R*R:R:R:Ro&Ro&Ro6Ro6Ro6R3H}Ψ#"R_0H}ɨ/#%W*R_1#Jƴ;$q-ŐR Yz!+VO1`1kZ!QV1R Yȵq-ŐŨ\R Xk),F}ZŸbbGUk),ƵC>rb\K1d1#*Ƶ;$q-ŐR Yz!+VO1`1k5Z!QV3R Yȵq-ŐŨ\R Xk),F}Z͸bbGՌk),ƵC>rf\K1d1#jƵ;$q-ŐR Yz!+VO1`1k Z!Q0R Yȵq-ŐŨ\kR Xk),F}ZøbbG5k),ƵC>ra\K1d1#Ƶ;$q-ŐR Yz!+V_UUE9$7F~B.ل>J<|\ cWq Jգܱ6?Ʌܱsvux'U߸axy~M j۹L^i0^w?~o;xiǧ8znb<^lo-,!KHs')ʵ^me6- )/}=@WE{篷rn;̜>4lq_zR *ˤFiUzM rvZdբ~\3oΪoųrQ0 u1/w7 ۴afcCm3g{sM2Wp4&4CCtͦ)t7>n<}TvP&5'HEmJH@Ah,gY#߆}˅F:ں9c ]$E^{)8Wg}R[ȷ N,C/.%apS}; ToLfŪdB@Ԫ\/qz4oQ^n$ϡrw}!χУ~ػ_ [0D V>I!9).>M?(Zх m 5nw.8ܿZMo6XsPI^“ek2_{r<6^Gj :uF46꺮ɜ&/SYX-pKO"/b:|[`U nիr 0Ȅpzn\L嘫Ȝ*j{sJezuI+1h]bҏamtQ~E ȯ%$ eN[s%>\# *U:_j0_ֳ,՝ ?nB=NT*p^ppLw!o]XD = 5PA7szG;S%TEFRh%re \JTv-~fnJz&dv{{*˜H(bqΌhóm7>|(ˢ")}0OQbʊpҀXuM҄8P_.h kz?ް510Kee?TrK/~G}f4ءQ͔I2rm3@3m{"M?E˦cREړ4,-Hr`pr ̈́Vd(=mg%< LqNޏC聳Q6#mݍ!xvR*a0–fHdC~x.3P假dLN]ӝɟU(@? /t͙$>WA۷ #A|8з5?)e62u1, T/oܠ[1^ R;* B,J*e +=j޳Y !qa2,rN{xn Cݭ/>ٵi$XVsS>r̞=|pϋll;7WJvwK-"GcnFX JJˉkm24Ӷa9<\'fQ Q"b6?TD [ʤ")P8e\X4NCynzֻowb"ч]6dS++N)'YUcBbBFb*9~muU^z.ʴRz6n6_rKs܍~3jZ Ca0tr{cat^v@lЯlQEHڳ-՟Y2X,9j/HJAұ1/{n-|8N)= `vP=3wPU9w n̥cgwIͭ;!P,ynWA[!Dkyԃ 7`6+z2 Q@Y͑3+TsΙC38N~GKZGQ$%1dFG:C]cYL4-wX{R}C=T2EJ&Yhd*"GJT ZKgRRC`iB͠cnN[$b&VůC^p8:ɫwo1Ӝ_3IdPBc0>n}RL6SU5ױmMݼ9u ;x6G:}!bsX?bҜήI+DBUQ{ǯ!_͜HiӇ,Ә7Z7Z!MROx#h_(oMr#*x]gC ;<Fr=lp8h Oi  7!mCVU3Q3/ FX=m3A%d>6ʃIGo,rVR@-BL3]:ݯq2-Glj25 ERVE^hJ98oȰE<\rxX#"r#VDiv"*Y16PS-^Y8tg4fuU%Bіk⅜"V=0P "J{3q<]z^{B,Ug=yRj9ٝ"1Om}~s 7-G|YQruh 3E sZ٤ ZjgdSR_xb?V R A1Uܛnwm0$5sZɒZ/~O>O?&endstream endobj 43747 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43748 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43749 0 obj <> endobj 43750 0 obj <> endobj 43751 0 obj <> endobj 43752 0 obj <> endobj 43753 0 obj <> endobj 43754 0 obj <> endobj 43755 0 obj <> endobj 43756 0 obj <> endobj 43757 0 obj <> stream q /X1 Do Q q endstream endobj 43758 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43759 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43760 0 obj <> stream HmoFW @6yl 6 @ P$:fjD7uw,{E>x^dݩg^~rWɿ2Ui*jFU M/Hr%ѪUnҵ7˻庝7ݺuriԗMr'$>l+|TU^<{:\wrn8HYO{ciA%b93̨oJmQWs5Sef9O| we xx kD(%4 @Z\ Ho@z#[ފ"H@z';މH_H_H_%H_%H_H_H_H_5H_5H_"Ejд\'t-׈(е\#JQ2=kDk Zҋ5k(е\# ]k@r(^t]˵@Q ZkDk Z t-׈Eе\# ]k@rmXе\#JZ@r(kD\ ZҋkFH/ւZ@r(^t]5@zѵt-kDk-Zҋk(е\# ]kAr(^t]˵y@r(k]5dz%s-PkFH/ցQ Zk]5@zѵt-׈E:е\ ZҋukFH/ցZ@r(^t]5@zѵt-IkD\ Z%s(g{ot'c*7ηzg*K$r4% "+mV둮dڅr}Ir4 6j.he:YPIlDnlO㰋ޮ:M&ѲԻoKy '!$4DΚȋ;]mX}Wc֯)Ki2?lwߨɚ匧_d"|Qs무݃5"w>?<ܟ7:+VG=_!Teq$̀-ֱňt\G.t]]Sra|jÓg l=6=8b]U;o;1gIrY]ar߽~Fge¯̳ aK/ǴLD:UF/u|| #ԅ6b8UO/L/W2!pnsn;}lU|*;_x/&p vuTuwów2~<2|?LoҺ2m]l.Iz.ъ:~rB1tji9-b㜦mfC%jwwi}e,v1ɖ>=, .YBq7 ErB--ڑe5ۨu' UBarBu&<}xiY Sf͍r!ùh*46 ypwB譐umKNMq}S_%%9F|b淧>_8$,9a er1z:qw&V|P63R>~$^u?b0`pz@73!α#m%F"b^df1q)|<*【^q\>ImrG莃5=j'n$,xh,y)ܚ߼>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43762 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43763 0 obj <> endobj 43764 0 obj <> endobj 43765 0 obj <> endobj 43766 0 obj <> endobj 43767 0 obj <> stream q /X1 Do Q q endstream endobj 43768 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43769 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43770 0 obj <> stream HWm۶_NH;Ɨqnvb/%ꎉD^DL_@`69X=XTs;tXO͖{MrlOJ$e%+'ӂmJt&b}XoгyV^?VOynZbDw$?#MdL{>KJqiQZpH' 1e)HU m m"F6Dr"&% 2b/ 2b*b*b*b :b :bo&bo&bo&b쳈}F"9>R$TET+ ՆcՆ6DCՆ6DCb PjCjІ(}ZE6PmhC>R"TETՆ6@ m"GUjCj(B QHPmhC>R"Tڎ&Tm"Tmه6@ m"GՄjCj5(B QHPmhC>R&TE6!`V m"GՄjCՆ6D#jB QHPmh;&PmhCT>PmhCT>!*f_,5K7o6f#`}R:o?\1Yiˮf/桭zKW%OUYM{fkq 6Yn%r-9H,-eCW#n(]ص=;.[${ql1FV#>! (a.Y&!()KUBpޯ=^rI8n p_ٳfIyCyKteI~X4)'?o+BŊi-Uw60'd:=DH,ՙdr5%ͪQC xGeNqT NdgC65[bU8xXrZƒ.:4\%2 BRWUۼ8V 9b}:t_ѷ94<MVA_zD_{螐@þo.4̏Ы aPNܧzs k;f]Z(.|\$1-M8?=֭ ZmM'Xtf~^(ȫEJ՜_(9/̒RY}؍GszS /1j'(zz&̇U[ۻg}BUWո :ni|}U{FRgD;ϠQ4t.(\i;Ԇ9 xEk mov]=Е@ 59Tm!\ΗNyO^^Wh?03% /R釨.Pc0g]=ɠ|"r-y*|``lCK#Ft[hT4̂FWMaA6x&æ zimu8;hrV%HӠ&-SFAR_{caUcFA..… pm}?f1 l+-Nh׼1LC~~z )Zjn0>Uge>iΖrr,KTrW8R%4 ͵3K)=ALJo ntY qJsv}U?He|jx,/ ]v9("E ׊?%4Sj,Oa/J 1#>jޡ6/uùŸn`mS]|fa=X}ejQɥ=7OH׻ۦ бO!ԟm z_IIt,ݶNY ܭPYXV!bOJ8Cμfi].tTJf_8f~j (y]݉ 7,ց-6ӡ l`_.G߮1=a qρ"q"J #N_Q/cL.$onڵ=e Fӥ{Hj;{:c`S-c9?dP%Q jU>.Touc퓁ν|;\:xtO%$_僑v ڿ :=}ik{`7w r&V4Vz@5nFhN/NWV*_p-Dt0hz~m^ڇ:.]V[OOE,G`t;tIV<7|ZoTJE5 t(ӏK Z0ͥk-% /|G/k-E3~IƖ'2 "b^EbD̓?Od7*Tay de&j2d#g$v$㬱8idH|q^\ ]:A\mb,r/O]<" P*)Y5!i%!:J1&)Dqrчf 򅊇='lj,<Q9]n*Ey4yi^A,Z,TiD PT+GΨs:馷\9OܔpD4b4+8oqzF[s7Qᖆ2/?P/.lz?j#+Ǎ\ 8˙CC;dԠST>w }e.Ap Γ^G:J ؼT 0ـ5*R .po`AR8oD}G4yV֫襴P?~~k4.2/ê![ldGdSsE?Ne)Ԝn ߐ5jqS'e gO[\m RȀKcȼx6LOݎYZUW&Z]qSfJg .lιsYv˛g ѹ=]y@YmNj5 Gp_'F*^endstream endobj 43771 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43772 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43773 0 obj <> endobj 43774 0 obj <> endobj 43775 0 obj <> endobj 43776 0 obj <> endobj 43777 0 obj <> endobj 43778 0 obj <> endobj 43779 0 obj <> endobj 43780 0 obj <> endobj 43781 0 obj <> endobj 43782 0 obj <> stream q /X1 Do Q q endstream endobj 43783 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43784 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43785 0 obj <> stream HWmOI>IvB/җ)v(  B^{glv/TLjfzpO~OlHm4W>-) ,䃙'JdpRߌVfr:6i2ԙ0 3 /HL44MUf8Kzx5]M˳8|@ΦE[~z?m1C[zzW˯k5v.Hl^z8L2Bh?%>u拱yG2s13D_.'߳$&9Mb.9Qs+Ę/'1bYYcVXһڼĈ{;)ʽr{>(}}}}}} ܗ} ܗ} ܗ}W}W}r{Y J+Y@k%,^b{1K@k%,^ցJYj@k%,^ցJYj@k%,^ցJYj@k%,^ցJYj,cv/1bJYڽĘKXcpZAk%,^փJXcpZAk%,^փJXcpZAk%,^փJXcpZAk%,^փJlZ1K@k%,^b%F,Z1 W cpZ@k%F,Z1 W cpZ@k%F,Z1 W cpZ@k%F,Z1 W cpZ@k%6KrZ1K@k%,^bC拢YC>t+ @+(ʁVr+hJZ*VJU* hUJZҊ@+*r֒Ҳ@*-r@KށKl{X범ȽĘTȽĶǰ.KiKY@KށKl{겔ȽĘTȽĶG.Kjy{1KkI;@KރK;@KރK2@KރK2@KރK(@KރK(@KރK@KރK@KރK@KރKZKbZR R R R |r@%/@K>K_߁}-r/1~1Z*^bb$,%1~Z*9}Lcd,y=Lá5 / )|p~7nz?$JKIq9n뗀4Swl4C\Ʋ*yYI}9旷"z6˲9RlF> <=8_ Yng<,W}f+I>А5xY\ѲY=[,<2Ozfyͫc3rihѪn̙'y(mZ#|[66ߟ~9?OyNOەy:7}m~/˚1^ֳz3ϳԷÿO=%q.[l4% \ kӪlj7ߟh./'ݩۢCMwxq?_Z6PÃtrjxk3i0F g)\Z؍K[x91{fq[ӊ &rk_|89S_L,TzZKsܡTyٵNJߞuv󇓣!^_`^|Mzؘ̏Vj"lo'ow5/f&䞯f=<,/hes;C.n jv#m@Lo^|xu4Ev]1M6 Ouƃڝ6%ԶkCkQc#MSoa%$z7,kl׳X/47Ne{5rHSfLi͓??3N6v]4;j{O=s=3&o?^iw{;$e?n6٫Ŋ~Sw ,Ѓ{sgYoGo8z|J;@׋RoYGd@>f5;K[iChr|=tv+4Oegt4Ӥendstream endobj 43786 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43787 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43788 0 obj <> endobj 43789 0 obj <> endobj 43790 0 obj <> stream q /X1 Do Q q endstream endobj 43791 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43792 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43793 0 obj <> stream HWko8_ *Kf23Xl2E!L${-A「u(RLJ\^8wO?}?C߀ɘ2TSf&#l$|XX?MUtwXems epg>Mpa_ESa$ԡ>,MD˛ͷ&4UFcPV oqDEJ(O4s3@m`чCq̺b^/  k b, S% aEs$9~@g+ >ZsaH.,8c>1_깧깧^ꅧ^ꅧ^ꅧ^ꥧ^ꥧ^ꕧ^ꕧ^ꕧ>%ԧPz3B}>#gP{sB}ׄzׄzϳ0'\bջ׺|.,_p!P﹖u1d=rµ.,µ.,BZNŐE\ ׺׺k9ZCs-'\b"\b"{k] YzϵpՁ \bջ׺|.,_p!PVu1d= µ.,µ.,BZAŐE\+׺׺kZCs \b"\b"{k] YzϵpՁ$\bջ׺|.,_p!PVu1d=Jµ.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] YzϵpՁ"\bջ׺|.,_2Lߢnþʐ%=uiMO|e /G(UG{$]hU%)gq:sU:Ddڕ!0 K,%JLK=oe3mtn={w]',_ǓȄʆ$Fa1,Mz˹u> (4zkζ||kgZ[2, `dv`~M(mե36ʰ~q421)c'&XFSDW#l&s(ڵ oa2~EEߋr'Bm>yqd"[NYQu|14Wq)1o_N5gb1;&s}Ë>bVLYĴcl"޴sy>c+nՁ E #~^hCU6ccrR-u6y]@]T8|fFN rj4hS\XʯܖOdnܾ:T/;t@4ϴp1-Zऀ(e$܃YFe5Ď&ZfѦMu<DDxc` :/f(vwi>2앇%oq;콱~.j1 TD{ &~esl&)to$r.%f2|ծrL5RcUf"^Ţl1^vo||@jW۝or!H'O$$^vyR>L>ǐ̡gFfnM>6m yX`ZUCtXNҰja\uO|tPd+ƣO㐽)" eƇQ$Ź^y M65~ϷL,>KYU5U<@/_džr /ƟFROfAR'al_X;QH|t}E,os?CPB2c368m |8HQ氇((h^ kI%' 9HZ,zҐ9o}+=G^ڕ"uWl1 tqbDu3On1Kc__Ocf; Shnw쎫b.9X %#tn|#rd]fLcT9eoYBX!_ЃD{^ yxx<}@#GK?D77(iY2)ܹӪT]UC':S?4j:P!': 0ДsIfE(0C.kH**rC\v_\_Wmi(Uh梭68jrrn_Зq[=[-ݟL.$r&3v^iQ%Q&aٜ2jP+J=M#PwWgCo\}yc^ć_feiVz͝&ך'ʮ 2ʰ& Q;R|?@ȏy`{~xܶoZ6X~e9 -bvxO+x&5d(ݢ^S+`@/;߈E}sHʸ@ |_7U=BcU#žb:\QKz%=Pz\sR;6d73 ҵf٭j Z i8ǎUV sY"R`x6QSh7OM:ڛXUUmY皇ClH8 6vCI9uQ;Euawh2 D n*ʦi X4G5Pt ?eH9Iuh]Ԑɶypvu%I=|x1H6SPBi#}+Fn6yj;PXDtoVRvFFeJSB1M>/P 576 0 R/Type/Annot/A 43795 0 R/Subtype/Link/Rect[93.5995026 538.429016 191.626999 558.109009]/Border[0 0 0]/H/N>> endobj 43795 0 obj <> endobj 43796 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43797 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43798 0 obj <> endobj 43799 0 obj <> endobj 43800 0 obj <> endobj 43801 0 obj <> endobj 43802 0 obj <> endobj 43803 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43804 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43805 0 obj <> endobj 43806 0 obj <> endobj 43807 0 obj <> endobj 43808 0 obj <> endobj 43809 0 obj <> endobj 43810 0 obj <> endobj 43811 0 obj <> endobj 43812 0 obj <> endobj 43813 0 obj <> stream q /X1 Do Q q endstream endobj 43814 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43815 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43816 0 obj <> stream HWm۸__E_^ @ d@+k쥿9NFpײɋ~#I˗w?~LKf䙠)'}c~io*79yMtaad,EI 63o6 LZ&ME&SfM@ Cܷͱ<nΫ\<}yYa?m.ӳjaџ#A9y",!|-(Oa6RpG*1*(|F6@1EاaS}Y>Cgas}y@a_^>,CDڈ#mmBT4*d4*dַi>P-GT4 a#mBT4 a#mT6@!mT6Bj}6Bj}F!rDZߦQ!{(DMBMB Pj}F! DMjZ(DMjZߦQ@QoZߦQ@Qo(}Zַ Qo(}Zַi>P@TH"mmBT4*d4*dַi>PDT4 aV"mBT4 aV"mT+6@!mT+6Bj}6Bj}F!JDRDMB Pj}F}FUJIŰjMta$adXb`\ьd"6;Mw$7ϹTlO +⺪֙A}=9(RT&44Ij\oo6 I,؅[3zKa3kEePν㼯m3崓1'I`47dsk i^(5A>QZPcs|ۮ.u;ݠXڗ}YMw+w\ *o^6|Bd_ݟL-y ذɉApnj7D;<-,l% M0\ݙ4y6;դ9)DƩ>SEiF~+eP3rǯ: orAk[A&h7 #: z4`2]6f 4b<>kg Ş\N޺t@ iYYp^}w~1Nf8fCXakNt[ȍR/:8+Dk( W)>p^'va@=,G3X._߽OKg$_R)g!+}4LFNND\0Ѩy01g&" #ؤA{9o`ȖKu}+2S3E6dg>B?}9֫s$-ܐ(Sб%v^0R?1Vq4V,jrSu Q1᮫J tPTdy^-J.w5%1}5s&' . @ #dΗT)]KF7!k!]ڥLL] 2 hհphywٲлo_"h*p3Ie7Sܵgx)4y99EuJ*8 9v}S~"3 `8u~}hy~#oPvi^S`k5Ctb|/y>؊ t'.R+[ Mg>eP32䢱T}J@ql;ӆuկϦ2?h(i80 {fzh,{7N+63[ϯ"wS7W:{YV|h8Rcv k[cmvAp* d%Bz/\]g_)ߎwՀeFqy8W8QHFΟcu8C{av]8S]o?A֘{hR؟_/]S"W{g/o*v QokGwq +rݖ"% 0_QњI/yqٲv#0\N{Bwf?Y߳afX&f ؕѕstQ TZh5u)^lE֎C}O9hl}&{OJ&w6O3͡.CZNʢ2o RoQfhV"T~OouYt@2juv4Qy6JYm4Dn}jvyF/#\AFj|d`7XuzѢÃo Hz]VhQGn_݊G\X\L)dre#K]w£Dӆ}N @6u#Wa"iF(ACC8nl&9GJwizX3z`ۣܛ>%v]DYfƿMlD^xU:1R,ʼ(9 3ci݂ >gڅLkWL 0+.ӺUňr^+gImG(v)1HkW&JCkʱ DiݸC!J g3r I5j&VS\)73rlPxhk >H)4U_ L"T9ӊgg|[ 4\b:^o/F}y/^оx 1$<=0up[T'xsg3`~P%Aj ʁ?ǰ=}? Iendstream endobj 43817 0 obj <>/P 1353 0 R/Type/Annot/A 43818 0 R/Subtype/Link/Rect[93.5995026 515.229004 256.28299 534.908997]/Border[0 0 0]/H/N>> endobj 43818 0 obj <> endobj 43819 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43820 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43821 0 obj <> endobj 43822 0 obj <> stream q /X1 Do Q q endstream endobj 43823 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43824 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43825 0 obj <> stream HWko8_ *K]t:z0 EL֖24~tE*<乼?_z+/*;*B1]ɬ,d/&9M8kXro̓ݾþY}\A>yJ.W`n0c2jBMҸy6&efDe?=x)t^uayvW"W d+^Wwv\g1s_4!ezw x"[s6,1Ȅq Ĕ'6rL12"B XǬC&Xvc!,AzAzIzIzIzEWzEWzMבzMבzMבP_D B}/ e$ԗP_F+B}UM#r´!KCV>ĀE6Đ1dC XkC Yȵpm!PV 1` 1d# µ!,B}ZA6ĀE6ĐE\+׆kC>r \b"GkClHµ!X}pm!+VbȊՇ׆k%C>r$\b"\b"GkC Yȵpmpm!PV 1d#Jµ!,µ!,B}ZI6ĐE\+ ׆.QkC YCV>Đ1` 1d#*µ!,B}ZE6ĀE6ĐE\׆kC>r"\b"GUkC XkC Yȵpm!PV ] ׆b!,µ!X}!+Vo2cb9]j\8[$W >S%c%g};4PGz îQ%MpJ/14M7vpga}z;wS?QJφe[ ؚ+=!s!YVφgi2%fj0ݒz1nI`csp]}n'ݽm'Um>1Y* P+ش F1G6zzY{{8MƫBy=n* O(pW@ue#G[ N̵7Y)RTPҟfH 86)̖pV) ӣu5{KaSE =y!33[<[d 5l;ٹ ZPy,?u!?;ݍ LUմ`1QM( t..SD"+<$(}AV(X{}njn{5%H׮Ǎ{I),̸XT5ha̴>]`uU4  |?Mnj0P^nvt4G_IbU+xA W_Ն*QK PoL\yҘL?4=|"OS|>x` r9t§_9dghŚ{_[%xCMwlj:Riܺ'~Mi,a"ȝ>8(a'xiN8Z-L4a@ 7:֮ KI+Qd) ݌3W>ըd*$z v!N(JU깴xϾ(MB*_Dg%^=z]Q7gaEao~i bgiiGYJ2Y|@Ҙks8a $9x-ի,ɑJM~#moNt kݞ'Gn9f}/O˱5ȏK?jr#?3c *{>@VMׯrDҳTt)Da u;0cAS'V"|^@QWy3z f4?pxG].Y&8V,(q.'~rQ<)ۉ]OP;;e;PrNe! Էq bs{. : X ы_rKt,~oOpPиs !^*~J>G]cL,Y6 MO.6Wy98 nm^J*SK*l/TgIwi>eioX=Qe,aOeڼ/>j+.EY2<:\N")|adY|/,Bյ7;$' >4zzT>`,ad,wO͸J%X q$9#1A0=WHmқH]zdד(mzyĭ{>E? "ɱO3]1ҩsqa* 'zslU<*9MoFWYl/'.AoVxj{ ?>>/P 743 0 R/Type/Annot/A 43827 0 R/Subtype/Link/Rect[93.6004028 555.22998 222.408005 574.909973]/Border[0 0 0]/H/N>> endobj 43827 0 obj <> endobj 43828 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43829 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43830 0 obj <> endobj 43831 0 obj <> endobj 43832 0 obj <> endobj 43833 0 obj <> endobj 43834 0 obj <> endobj 43835 0 obj <> endobj 43836 0 obj <> endobj 43837 0 obj <> endobj 43838 0 obj <> endobj 43839 0 obj <> endobj 43840 0 obj <> endobj 43841 0 obj <> endobj 43842 0 obj <> endobj 43843 0 obj <> endobj 43844 0 obj <> stream q /X1 Do Q q endstream endobj 43845 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43846 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43847 0 obj <> stream HWn8}}h,$q1 lf/A eV<-uz[ER&gCSU?yS?7 1e d<3(cEim967}]=*7? mteEca4ֱ><-.]|qUaiŧ{h LL-7CT/0R$_?t'lyViZ/F$vHx|YS?đYE:?&萣=KE@1d Y,E|팅} XPPP/P/P/P/P/PPP> g,P@}N9>"P_@&@&ei}lqµ>Pp!+Tc k9ZC>p-'\c"\c"k} Ypp!P1drµ>,µ>,B}ZNǐE\ .k} YzZCVǐ1`1d µ>,B}ZAǀEǐE\+kZZC>p \c"k} Xk} Yp!PV]$ B>,µ>P!+Tc"\c"k} Ypp!PV1dJµ>,µ>,B}ZIǐE\+ k%ZC>p$\cH1d} Xk} YzCV^'ZkoV6޲"f1bN8tEs_\ez`Ŧa}W_O6至|es{~Y&@U+V6H=BV$zQX~k'+7rn5Ε?{׺껇!L$_u]ZY8܏gg"ʮBl2>q\W_s 143v,/.[ 's7g6q*PW.RAX m݄Agr:МL.tJ[a O:[vqngnpg\ѲŞl{^:`]`c0"l=Xmή$|@9&LeW|o9 &"2d 鏇}7$| -0M.hZ<ͧ v(eyVud:ta75O+%|2]WAc߶q81$ [fc*f^ nrIʷ5K$ 5Zah z .sќx p.2x4OW2LiGfUج=u6+K;\ ^;C;|ySwMIUtq lq\8n6R--]`o-=ԏݛ5qn, \D &yr᝝tmc;t-DݝI ܛϛWeuhlܗ`j6CppqLR?\ix}qS޹Zk.x˨ QμZ sh|\Ja~?JbWKo0HacJ)J"UJ.dfHytccfi/ˬ=?o`y6}Wyx{4!tHnSio7GC#?saPlBH9~b/6obD{!"L'Nk\#az"kԻ"O#IY@(vn) [Jg{ lSROQjn ކ"Dفe0NFŘEZhY=w!/O(>#<RAq "r1*<6pд6q06|+dQo0]R$RE'h4zw*&o~&ZMz~?|dvpeu#?e_[_!Zmm!Pۅ\bn/2##ȚQC?:@6$޴>/P 897 0 R/Type/Annot/A 43849 0 R/Subtype/Link/Rect[93.6003036 198.828995 251.735992 218.509003]/Border[0 0 0]/H/N>> endobj 43849 0 obj <> endobj 43850 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43851 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43852 0 obj <> endobj 43853 0 obj <> endobj 43854 0 obj <> endobj 43855 0 obj <> endobj 43856 0 obj <> endobj 43857 0 obj <> endobj 43858 0 obj <> endobj 43859 0 obj <> endobj 43860 0 obj <> endobj 43861 0 obj <> endobj 43862 0 obj <> endobj 43863 0 obj <> endobj 43864 0 obj <> endobj 43865 0 obj <> stream q /X1 Do Q q endstream endobj 43866 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43867 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43868 0 obj <> stream HWmoܸ_ WA&w=\z`eWJ>I>CQڥ#;pIgȇyf^?0޼yûHD \%dY#YWEcMm$X͢վ?wC5tuutGn&܈ls0 g+`LmUu۰ ix sg6`%DI5w*Ox* NnzPsڏZz(SB*KM1)RdLp+~߳OXT4F}"[Ǩ0SaW,*%DB62 s"$m{{W{W{W{{{7{7{7{O i>%ا`3}Y>'` }/f!Zl;DP-YTE,*dm6@6"j͢j%ZlZl(}ZI,`V6@6"j͢j%ZlZl(}ZI,`VŶCbE Pj͢BfQ!{lZl(}ZE,`V6@6"Uj͢jZlZl(}ZE,`V6@6"Uj͢jZl;DP-YTE,*dm6@6"Մj͢j5ZlZl(}ZM,`V6@6"Մj͢j5ZlZl(}ZM,`VŶCdbE Pj͢BfQ!")B3?DfmnN/g/f`]i/M> ş*vg"rXv_oپn}ڼ_gj8/3=ʨZ&B9> WI~gpSq-᚛U\Jr. ]BL\ 3KLKQK^74z߲NJ Zoۯ :)3jwl1mvuWm{Å1%]kp )ssz_6 )2~Pq XY0=6e@5"Z(/pgvf)y]| B;.8./aG1CN]TyV?T*Vz>o`Ys}NͮJ*|3r]p$p*$MR|m{88Y[Fwrڂ8}MB #+=M~*Z/d5,X>΢i!J+ejvL᢯ogu,]4ֶuN3H56SۑPj5(#craU=֏gnG:ǵr3&bv1}\?sJfu;<4c9Gͧ[fUC%woyHv&~PⶁG$J@(pd;R;L02B-ϷV)gev SE .UL/]F@<%]9|_<8=HaDt> BfX L=O&CQ 9F2Kˡ pdpLmWSCHe!a5V=1Mx h}&38W{sOxn}5Ʒw-^qԆ+RYE*mwRUUUՑa"!  3cqy!~{O;dnR3i@082 #JN <Z/#^~Oo~~x:)3[Ǩ^5G|r=rDʭ[mҖJ]Si|6Y0BCJĴxGFȞ$fkĩ-N$ KY*JG[F^E .P`ݨbxm hSyK|THD I|˹&ch䢭U Ѣ~Me.`,0)%8۽Al}7B& O2 (\xɐ0_8I%:ѓ q&M"n= G-8*21>ڤki|zɲ;R'tLQ_ uq{4\TרʶVO_GJ' P͛OeQIdt=k K%ǚOC"M*@p JvhvtÄ9fZ or`p [."VK1qA9U/~ۦ;7"80W¼HD Q:z(U|jX }nl_=rs :M_%KMil||O_?/ z-̷WOr w%up9yGsA*ٕվNL%¥MbxBτKY}+.gVl"Hb]g4ZwlyiՏ\= !_jAjI2[Hg*zjU4>|yڲƥ>0ʕ{BW$f$̋4 #qjm$ Ll4C_>ޱPh\6tcph?6tr)ɔ G(tI.uASsO?KKH)bmF仠nSmkUx$1.vd4MC%6ón tW lڎv., y!7@P!B0iL0dw'$Rqhus8VG&Se bn|ry50d:_dLsI(ƈtPn!ն]88ݸ\ ) &% &N.(0ޢU[^ӝ6ջzasik6=1>4ןoGXB"Xx"B$`+uרibFYےƲ҄|o(Yxwrn5nZhǧ6w 0BW2tendstream endobj 43869 0 obj <>/P 574 0 R/Type/Annot/A 43870 0 R/Subtype/Link/Rect[93.6003036 480.329987 358.332001 500.009003]/Border[0 0 0]/H/N>> endobj 43870 0 obj <> endobj 43871 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43872 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43873 0 obj <> endobj 43874 0 obj <> endobj 43875 0 obj <> endobj 43876 0 obj <> endobj 43877 0 obj <> endobj 43878 0 obj <> endobj 43879 0 obj <> endobj 43880 0 obj <> endobj 43881 0 obj <> endobj 43882 0 obj <> endobj 43883 0 obj <> endobj 43884 0 obj <> endobj 43885 0 obj <> endobj 43886 0 obj <> endobj 43887 0 obj <> endobj 43888 0 obj <> endobj 43889 0 obj <> endobj 43890 0 obj <> stream q /X1 Do Q q endstream endobj 43891 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43892 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43893 0 obj <> stream HWk8_i:?F#, megY5@RIR@y7FLݜ>]ܼ߮|N|o*<?$2 i ?PR_E⦩-sҖՋ=#ιN~bI`$$>I$[w_}% |^x1}Rn&h[]?]pAi:;ޏl=l ?R@f#3{En?8 =@O~,k'V@$09I E21ɲ31`Qj Lejobbzfgzfznznznzaza>@QXCD}h>BGQY#D}d>FǖQXDYj!51ɲ՛ךdMLl&,ĵ&&Yz˵ qIr-C\kbB\kb\ךd!-2ĵ&,ĵ&&Yz˵ qIr-C\kbB\kb\ךd!-2ĵ&V;qIĀ$Vobe71`!51B[kMLk9ZZ,DZ$ Qo#51`!51B[kMLk9ZZ,DZ$ Qo#5kMLl&,ĵ&&Yz,[ qIr@\kb\+ךךd!- ĵ&&Yz˵q qIr@\kb\+ךךd!- ĵ&&Yz˵qN$VobB\kbe71ɲ'^$"k:uҔJ ?%^H0!i{~.,r{tpԋBMSPeo߃QNM_7ݽ|bdݺ;rq r_M^ǿ*kelͱ*>}QeO:w1}.M)9cAfչCӒ>eC4v=r1/H[Efv _ojoˬm> d<6-T ٞZ ɼOaO7w؋xLǖ{Î 9p@t?PomG\DVSc NpOn+ S*LEjg?~~ p gfaq ƻ[ ̃AC*O|l^->]tᄐy?H1YMό%;ze! =}~(WO6"`F?(g8qφ-=ڶ|WK0CRAöU/UU\bm ɒ^7xuaysn8/N\"D0 @ĚL?VםpQ&+eYlG[&oc?i~)`EDvpJnD2d$K>r1y5 沪.*`p9.l׷6$2tՔ&+5BӍ@NTloqҥxrZ&-J1[X=yJӉ4r 39X/]PiNhtOAy];!M2%/(dW^eɩM.=2I40ԗr.ޞZ l'F:rQcO%K!ɗ5/S䲧d]uI$ vqYhmum)G"b=FrBMg>xl uo [dQwHwzpV-kix `״n=L x+cU/j3zxHj8m%@9Mq+k= '֬K(gw`]Swξ7Hgꬑ^k ;3[Aռ>t6Jв&̌ lRS} [ %+5Ca}^KѠ!^`WC3kV.+aVU!(M k^3-i󶘷,>ib؅&wW-k[ǭ^|U# 7 g`tA텎 -T [ɌTiVA/F/}w( 4=OLJ?uzendstream endobj 43894 0 obj <>/P 1351 0 R/Type/Annot/A 43895 0 R/Subtype/Link/Rect[93.6004028 371.628998 223.740005 391.30899]/Border[0 0 0]/H/N>> endobj 43895 0 obj <> endobj 43896 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43897 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43898 0 obj <> endobj 43899 0 obj <> endobj 43900 0 obj <> stream q /X1 Do Q q endstream endobj 43901 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43902 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43903 0 obj <> stream HWmo8_ ($ lE{Ƌj+ZJrܯQRҢ=zp8G}Hŏ?|IH'e-t)g:JUVT|Et{-kulU}[E[G׿)nVJ~PBC H*p0BvQl2u<&M[=_j}\qql6xz.ܽ-4Vŷ塯Vunv@*Jbz%҉OB7XgFܿOFDNg0QZs|aFwB#Dm Q QĆ(ˠ(w)C(ŰW{ŰW{Ͱ{Ͱ{Ͱ{ð7{ð7{˰{˰{˰a3}y>ga }/E1]1JFԶZjCTȞŨ6D Pj Q @Q-!aV16@16D1*FԆ(}ZŨŨŰTRjZjZjC>PbTKmbUjmiFԆ=Q-!*dOm SRj5ZjC>PfTKmbTKmbՌj Q @Q-Q-!aV36D1jF(FԆ(}ZͨŰTR.2j Q!{jZjCTȞ6@16D1FԆ(}ZèŨŰTkRj ZjZjC>PaTKmb5j Pj Q @Q-!a0]dRB(FԆ=!*d)=w*^JHzG$Y&Zv}zlr#~/>]Lo.ޯ+or]U}y?l.NKq>ܽZŕ?"0S# /Lag]TKZ~ОL!RTY|ʸl/d½Y}Ǿf\5v; vbSb Bo^8Ѿ9aםeeI kmљ[f0X=4-@9AZ2QKZ$qTbRIjNvmX24%X ukRJ"'^Cuk8ֺc;ʪl g-)KL%RKuT m_ŧ Z*3B ,ԅ.ӄl w3CByxIX .I5| 2^nZNF%Zᾟ@|HHe1PAs*r)g#x jH]n@_d~o`dlT onlb#>^\CA]}uw@g+#w'u_۰$-wJ7/6" WM!Nl[%SR)?NYN2E.4;vHzvy/~>Nq+z2H(- ٔܯ-~qvmjl84E56C4 frߏƾLa)O2k ]7\ ekBq@:YH2{kz\fcrLîjyP>Kox'|NpWe~lup$e_k 0,P%6$*~^9\B*֏j&C pQsK /f;3 q4\}&x쾺]s 8Ɯ>T|VZ$b֑ldPdӽCC[j`w0UQtTp`}g%Nu>v]5-,k[ϣ_2O?]C"K*)Yd?l<5i5b+T֖kt%t  <U]5m +#v۝?g.շ Ơ8uWu^gC `s8lp?Ec։qYr7Z |q6՘)L2Wr@[F)JcfW_8 sGD;8(M=sB8dJ40ǂh&Ova[BNqt?nZmZfovtx;Y=^joGoʫq+|T $m6.9!HvRHZ"%ɤ ͛DB@ochB%|Lb C2]o vney%C&D>lNA㲙pcfrZ\ik8O~I3D ^;&ᖌ%y м1Q %u/}Ҕ5(NS5XrËBq rfYAv7%b%\H x S1 c%T|b u$T"%UUƚC2- s)r@vs@/Ta-,a/Uc7zH9*BM)gEhm7?^kG}ӱكĴ)k,Ҏ!0/Dol# Raf%>r,Y+q)yX>-@4g KBTZݵ^9WY2(":6Ώ˘=F1 l+̊@H? F`VuԄijʫ=x@16q4lG2>o*tx#TيݐD]j>3<N/, 5EKr* b4q_۩^׌֒ӆ|^^P;7~2g,s+ᠷE 2*|؝^LWR':Y `gNJ,Z Zp.= $-v`<S,(gJk &vz~ẖwy 2lھ}$EPV;+1<^eNˇr>dC;x/^w$H}x2M2}#\y`c{R' ’4|Puonʲ+l?ʮ*=SٯBk,|؞;;h4a`DcMP7?n'- iendstream endobj 43904 0 obj <>/P 1051 0 R/Type/Annot/A 43905 0 R/Subtype/Link/Rect[93.6010971 465.30899 184.404999 484.989014]/Border[0 0 0]/H/N>> endobj 43905 0 obj <> endobj 43906 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43907 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43908 0 obj <> endobj 43909 0 obj <> endobj 43910 0 obj <> endobj 43911 0 obj <> endobj 43912 0 obj <> endobj 43913 0 obj <> endobj 43914 0 obj <> stream q /X1 Do Q q endstream endobj 43915 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43916 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43917 0 obj <> stream HWk_1<0sClQ܈n_n>$-\)T oZo~Qz/څ+8g6LJFjD1ЪTߊ]ޖzWʪhJ{2]?j < )ŀ5g Yڵ),#7L -Soz;AcꝠ1>fcA}ǂO S>ԧL}*OTP2>c3A}{Ag꽠eV X!CWO1` z!R YzZ#bԳ!Z!KPRkR YzZ#bRK1d YjZ!KPRkR XBj),A=KRK1d YjZURK1dqZ!zKH-Ő%gBj),A=KRK1` ,VH-Ő%gBj),!C ,VH-ŀ%bԳZ!C X8!CWO1` z!R YzZ'bԳ:!Z!KPRR YzZ'bRK1d YjZ!KPRR XBj),A=KRK1d YjZUA,b),!CWO1dq>; -(@G ?ކJUo:?,QhL-WB6 3}}1 ˙О)r::6v>̐uf :/?M'<-k1D(A6-}3?nt(#~Nʥi"& +Jc3X%}[6jNj$|\0l\g^c^qXx{~))i\uށb` 3B^8,6SIݒe~-P+׮3Hնڲw N2< 74K798E"o_X9șen3VX?>\M&Lɨ+X%d-?[6hC@E '݉੄Pϟ= .1vm:OmwM_5e+7'y堖cuzh.^v;\9 pQp xޏx8=l6rߗ.~p?+݄4 LJ*{\/n̈́y,svy3x.nUfn|?m9:%ZE6-YSCf`ЙPLilPyu,l,?r|5b{țVLT;sTo&]>[C׋7!\<ڢ0q[K34 uqALu'WݺN۟πӑ'NSw;sS u2aEp (q>/P 391 0 R/Type/Annot/A 43919 0 R/Subtype/Link/Rect[93.6006012 197.427002 279.852997 217.106995]/Border[0 0 0]/H/N>> endobj 43919 0 obj <> endobj 43920 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43921 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43922 0 obj <> endobj 43923 0 obj <> stream q /X1 Do Q q endstream endobj 43924 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43925 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43926 0 obj <> stream Ht[o ?@$υ7$d 0@1+hH+QNҢ{,,.mYzIO?ߑ - }u3gǩ3:iE4&Qoy6ݮY]~>z;fsk먤$4%y<)|L>˾Z3}dRaqliqLB 88M8);2n%n|561gJ.%̯ۨM!*Sɔ)c 1/'5ՔИJ%[K(;ށN W=HUz{>A }PS>US>US>U3>S3>Ss>Ws>Ws>W P PKTK^ͬC+mJ)^jDS:ԘFZ1ҫu`jHցQ`jHցS ZVjDS ZVjLjjZVjLjjZ1ҫu`j\)!2( +(JWR* xe+^ʁWr+xʫ^*WJUJ/h/1Ƈ5e^Vy9唗^^jOkJyK)z@t Ԙ^^jOkJyK)z@ttSKj|^^j|^^j|^^j|^^j|D^^j|D^^j|^^j|^^j|^^j|^RcJ{I K>K K>KK>KK>K}?/z/5~|^^jTx{SKj TS2.2xFol>ƚ:*G|,-c3F6rsXYpggș4mo/]Hݦ}vӏQB|iN+^7yq+ʻ]sfI"z.)8\SzVC)vSMT?ʬ2g]J;\ 2 lv1yb KKWL_ {칩}ft]kjEx͂6|͇fj]~qEƞ W 7(^4ّ#z1yv[]mŢ}t=Yu»7aOWMAYd)h>YLS$zsGKiy}SaݐMxu6˩dq!c>~ylV^ǰ8p?>|ܻErdۭwPޟ[/^|t5  ι>ߚ~1`E`&]ӀnuaAw8iƻ4ˮ@5uѱE?lV/ o5cXqk_Їڻ 粍0QPF t1{cDyHkq^lŻ9U;ǧ` {|R9)wCjLR^xWP^)JW RLye+S^9ʕWrUByP^%*W J%5Ԉ*/ r)/TԘ^^jL/{z/5SKށK)z@RwRc x{{1FԘ^^jL/{z/5SKރK)zARRc x{{1T=Ԙ^^jLi/z/5}SK>K)z@RRc x{1TԘ^^jL/z/5} z/5ԈSګ˲ KzX;fsk@\lj-'_e?/rb]6zջoaSn=+y_iբu'W߱z.ky# $!4OOC6yMm1v5t`;sS(Gx* xVݡ/+nkڈڜC>CgGW&<(v^g;H%u3_4Lz|ѴaGm˃ڭFvC=o6˪;-NbӞ>DTb*y!~'ncN갗.zYzlL-ݴÐj7o$ް0g_iV]oޥ?۸ +ԛ \M.ݠhz -:Vז I4Ç,$ƙἿx۷ܾ6X‹.LU_d]z?>'G" p" E$׾fb@7_\],0Sf};Ιt!"+5ɳ(m<(29li!}؃`V8"E<'7j-!I pC8.鴝ozL |ĉ± uFW[(đ.HBƱV\_V(Doo dJMczg[91#T2n&4 VI,$hA#k!.>tNOkopdJMJ%IV"ͫcH {!]i9A򑂝pޒ %yk͞5sUjqQlL)%NV$7*r$MeӝFƥ's1MM2F@ߨQe}豏G%^ne8> f OQƂ 6BA$z5]%^_.&X4Xa&[7f`NXeCGD)ιн֦STL^.a,I0h0cK(MaҢ}rE -#E $F=9 fb%Ǟ)cpjk8ےϻׅ% '`D2z!]H)xzMԧS8z'D!e@[\! a/>, RyZ!3\VƳiL ǁ:mfTǁQD_%@PʓQ x:ña 0:zn1>mnf Ifv+aL ,PELJq!5]nmc&qx{λ&s6LBlCgsnGD*$JI#+DC DHDCӅǵ, *9.ȿy`v`v0Nq3@VJJ ȑ]~8*5qePe3?vC ߯fqL0 g/>ߓߟ(^ZW(&/Mޛ;w|p%^޸^t>׍Ͱ/UEb:gAE;fO `}wGSfbRM(,*:l9.(뼣[S$"Z!ifM - ׮&yjãTZG?m:DbLՁ!>[_Ͱ#Nj^@g lKE_~f6"axoϣ~}"F=zGE}pLV~՗ Sw~͞r/,(lh/G6NAr>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43928 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43929 0 obj <> endobj 43930 0 obj <> endobj 43931 0 obj <> stream q /X1 Do Q q endstream endobj 43932 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43933 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43934 0 obj <> stream HWoX+Rĸ~_i h 2IR Zq{ + 'c]ӧozn oGϟee66kTϣ3.gȬMvKl1],Y^×'\&;l34Y&D*j̲AiC4bnI1o+swUY]Wnyy}$➴-X a99|̍yKD_ sfE*jeI$Ic Hc>Ĉef YwkyNwS=p{{^}PpG>Q}TKTKT+R+R+RkVkVpܫZPZ2Z+1fi#hĘKYڽĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhĈZ+1fVbUkhf{ Vb%,^b{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb{ZZ+1fVb,JYڽĈZ+1ficv/1bJYjm{Z+1bJYjm{Z+1bJYjm{Z+1bJYjm{Z+YAk%,^b{1KOyJ):eGMv4XӜg|^Lej4kO$[^27s}|a︝yEz?*rrq2v,3bNy׮鈶u+۵/uss֭&c?>4ㆬцOܘdsJ_m/a KcV,VPZhVTZhEURi@TZЪV*UZi@VZ h%VZZc֒@*- r@)-TȽv>KiKY@KށKl7ȽĘTȽv#>KiKY@KށKl7\x Z*^b<-{r/1ʽz@KރK8rA%CR  h{{xT=ȽxZ*^bKGr@%ƣ֒x(Z*vIaqP:?{G;cߏܪ[϶.ѼO6CΰgXbzᙫn 8`W?75zǟ'ks`~|z8嵉yn-oѤ6v=4[G*ڡI6ĭǷecWj=>. ঝӞ48NnFLJ*/w}@ nvF6-xyyoY{v`!OaﮖxGo'f6OMvnȭn a%>z(Qso@vxu]ҽz'V 3ݲ37tji~~a/b^yy%nI Oz򽳦WˣY7-nBAjIs0χK2xU-ʳVǽ˞|=Z iyG)8'ۿ?߼ΆZ;{)j}wG"w[1w6/Un94ސ~FӠ}'[k,r7 ~d#0}7z,Ѓٔa x:zw1i/.wmzhlsl<<懏6K~-;o?hۜGD5Hl.qCIo;vn+6%}=~Y`) @+(Ҋ@+*hJZҪV*U)hJZJ@+)r֒ĈeUZhY倖SZh;{1 h;{1 h;{1 h;{1 h;{1 h;{1 h;{1 h{{1KkIX cR cR cR cR cR cR cR cR cR c֒@%,r@%,r@%,r@%,r@%,r@%,r@%,r@%,r@%,rA%,%1bKYZ+)p:J/GMvS5Ls6<#N5k^#*/VU!Ouk;oqnnCʴ[FxZ.&vy;w}a 0k7endstream endobj 43935 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43936 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43937 0 obj <> endobj 43938 0 obj <> endobj 43939 0 obj <> stream q /X1 Do Q q endstream endobj 43940 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43941 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43942 0 obj <> stream HWrF|WL J`6d]q6JP$PCYwA9-V*"iМ_=ߪ\xWɟv*4NfQea3oT$.mU_rh?5mnoU&3vZJzI QSyMVy?i{n6]{7n<}hfx~o7YYc$gW'yܞLכxt~~?ߨru`(WIByߒ9'HN`[Av,%aŽk-s, po{V-po{;N=p{{ KKK++>A&1#tϱ{KXdrXh{ZZ˱{ZZ1bcZ1bcEk h-" cEk h-Lj܋Zm Z1bI,ZK{Eh-Lj܋ZZ ,Z #p/ZkAk9Y#p/ZkAk9F,^ւr,@k9F,^ւrXh&q#tϱ{KXdrXh{ZZ˱{ZZ1bcZ1bcEkh-" cEkh-Lj܋:ZmZ1bI,ZK{@:CQ|jNqtKh9儖ZNhy兖Z^h@Z*V JURhU@ZЪVZAhɥLj%8FBK-- 2B-{rϱvZ #7 ;a,r1b-{rϱuZ #7 ;N,eA9F,1wȽ;@Kނs%roA9F  h[{шD-=hZ"c4|-{ r1+ȽRcĒZh;{D=hZ"c4 -{r1:-{r1:-{r1:-{r1:-{r1:-{r1:K-Kjq@Kރ܇,T}$/䢮Ҫ^%a$x UQ&yjy_/o8UYy$k"W̸e47_Yިs5vv6;55\5ڮԮv7ݪe;,܆h|Ƒ~{ Z]5mߨSݪg*{zXV!̀Sf~Ǒ }]~mεvmv\q==a/:y)iLmUMfݛKV_G s.}ޑp~ȂY5`' w9qقrt^rL(ݱxs>Gw={ KS\|#j]ikُW!(bV}r7'[ۭYP*? ikoxwx/jMWfl0=DPJ=>O>X[dḇ˧[VХ}{ϔ5v k?3c-:Yh=r'y3cfNNh%}tn;4[yuSVTM[yA]1/:zg<àaO #LjKh9儖ZNhy兖Z^h@Z*V JURhU@ZЪVZAhɥLj%8YhiZheȽȽȽȽȽȽȽȽ" cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cĒZ,{ h;{ h;{ h;{ h;{ h;{ h;{ h;{ h;{ h{{Kjq,@9F,ǯN.j)UGy?gio_-tQv7,F)4~o9(]̓nx~kf8"SS{C"]}m7G6.pstqF}3Լur6#z"\.VeVcNWr9Sf{zCxҸnky=? w {:QXwj?>n*qseJ&y&I7z[?ƫQ'E1Xa=T}RT9lxipiOǞ|R,RTAuތwaBd1Ynn]B(/5/-8OG6ro7;z%6?$iLj$`z"FV3U'{Xp7Qxϋ-}7! 8 ZJ ⃊eqPY۝Sma7P΋Lspޥ/Ka< Вզ3Y8l֧t?Q][?4}Fse{@+HCogF 7`P !櫕Nu6@pAD[eFoIqZ԰X׆Bهh~7~Ϧ.N\ܝBKCfdvhJoYDIsv7 ع^Ces.\s4x#]wpI`Pߵ mfFhhhqɉJs/ 8ɣ IU>Ci_YiZoPeK,6g_nǃآ}hUrN%O9V.vX¸ooe:v,^.!Z8v+PbD9"%\;αF3yHnrLʪt-N y kLl]*PX>Z jO2#+b+s]Y'ËV ~^}{f+-%ղp³j@robdۣe꾻;5B7^jx~XxVuI? 7,?(.} LFU"l4Y [k tr8ڪH` &d7ˠ~xY$+fܺ < qUWO\]'K'(Q<]8mW e9`H_%%kOAc0[\rd=ԪOl5x,u7#M~'۟R2Pn{<Ϙ-Ej~"bH t r">h~Kz}+W ` 40_QUcdV}߿|_J endstream endobj 43943 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43944 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43945 0 obj <> endobj 43946 0 obj <> endobj 43947 0 obj <> endobj 43948 0 obj <> endobj 43949 0 obj <> endobj 43950 0 obj <> endobj 43951 0 obj <> stream q /X1 Do Q q endstream endobj 43952 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43953 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43954 0 obj <> stream HWێF}Ws7^ F 06FFJ̬~O5/K6va,>]}{~}Hď?~&;&8U"KulDxEtPs=]}ވ~)zO%X$b,R7//aRXNO:W&َuwy'q[Am,7.\L2D:J`O9ұ/B&Ws""*t+8INǨ. cTXSD Fp:!ʳ2(!ybثbثf뀽f뀽f뀽a؛a؛eۀeۀeۀ}ʰO)> g ,`1쳀}ư9> <`_0싀}4+c6B}Pj}BP!{ZF(}ZŨַaV1m@1mbUj}jZZF(}ZŨַaV1m@1mbUj}jZv4ZFoQo#T޷*dۀbTŰT6B1jF (FP @Qo#>PfTۀbTŰT6B1jF (FP @Qo#>PfTێaTm@1m 6B}Pj}j ZF(}ZèַŨַa0mb5j}Pj}j ZF(}ZèַŨַa0mb5j}1j}B (FP!{F}EaD^GwkRwL?Rq*ҴctZ듸y%t72_Ue_MrE\bSU &]KNH%gm,C}g\X+}Oۦ/f"qIP9C3:rul^>N_z3>3c[7LJ-H`B]IN[Uz#n&t $FCS{3:9B&ib&j߾ _5I*lcnߟꇧH8.œc*0ʠ:3e~;vK<,F[=TC5/[c 8R~*bnOiPPeIql"m!6"KaAlR /tB.Pn,bL.Xn8Q\f^h}cYJ"kQ>wk&)U=NXk)DŽֺC|H##-$*͇,.bƨF%S,5M^'T2ؘ{y 5mnSuTlj[~tqM Nǩ9ZN,s+lAlq}eՐlm5zrh_rMpV^B= #jmbDAn,*"|&'muThU6O{Ь}]uC#:.RPtuȬZwh[Ӫ^<)MP[A>OO^s[ œz9.e1@w%8 (9Ŗ@ߞ#A\s2.h,z}kJ-O|sH؜s ,>eUnI\WpsU82pu}SˢDI} BWLyAo_ *s.WU7bȎg{'ZVn{u;s,S7^&;q\xA\"QtP.e7ænM&wWs \S_[m撚( oO_lB;W DC*n_Dt{V(vкki tK Cz"?[w,f5- ry enRElVf8%nK8+ \)YZC:<]$G[,dTm-fhif83iQ\·弄:"ޯKlڮ&⧪V)Fm"ָ[lӉDRcsG ^ UTt_6m6խ8t`۶1P~_վ|A!3x䁾RPDg*80tqMAzDC>"g2/(+rH=uV-aOlp:h@@&_ <9Q!e׃z|)H1nV{ -}}D߷":Ht#5Jv9]:kRߪ5XCn Ў2ٷa#J.@,oxWr+!?,ST# @qm:1YrΏq_d ⷛ=Ti9.:'6(MCU؈&yl3>ܖJL@M$=bwAI4'أ"RDVfH.@֚)`YɧT1,(ݣ68.i ޿-p{0Up~~ zM{jf{y8$y 02]^lbQ_|Gq? =ZR4$'MB*BsbI~,-[@Y^ނ;QQh㗯*Uw:Q !97rn~Wk GؖZ;-GY嗍@"' Ч[O0M*Mo:p燰 9pȤuo`j,s`lA?'EK>4`Ҙn뤇0O DCKeh#ⓈNB_hgB.fS/mCj7rG03B@ޝH&`)A޲ErP"YoVA,!|XB>؊[_y0ds K|ZӃ ˡv[*ccB\uWژ"J0HAB"6wz yJ u,%͉"th7H JAZCTMuL|E&ux6D((?'g\qg],lɋK(<&ȖJ۰u B#T)?ZfNͫ mَ6PfY?.]Ƅ7Ʌ!^`e8,gM0RP7>^/IR*N?z由i at>$7[9;#\_s'D) %{Km+I0w0/ſS}iLiqbq˪XrrbZ5*I]$R0KֲIc(T3BV(\oJ]( d'QY.0@Q2~s7efav`ïG:=޴XL~ꄩb' ϗYGN+owxfAڠo/ Oendstream endobj 43955 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43956 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43957 0 obj <> endobj 43958 0 obj <> endobj 43959 0 obj <> endobj 43960 0 obj <> endobj 43961 0 obj <> endobj 43962 0 obj <> endobj 43963 0 obj <> endobj 43964 0 obj <> endobj 43965 0 obj <> endobj 43966 0 obj <> endobj 43967 0 obj <> endobj 43968 0 obj <> endobj 43969 0 obj <> endobj 43970 0 obj <> endobj 43971 0 obj <> endobj 43972 0 obj <> endobj 43973 0 obj <> endobj 43974 0 obj <> endobj 43975 0 obj <> endobj 43976 0 obj <> endobj 43977 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43978 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43979 0 obj <> endobj 43980 0 obj <> stream q /X1 Do Q q endstream endobj 43981 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43982 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43983 0 obj <> stream HWmo6_AlZ|KQ";4 .U\I77#Q9E*!?e7Y~ϯ?#(_jfrSɲTq#Yg?X%1bP=]Uۡ_IG6F|TLCT5YlSGw;aW7$\$W6oOh-R|o*"[g]+(k6&@`45HqɞHo'}H؎EJ4R㷎le8D"F$*6D|Q Q@܅6@I K + + + kk   ا4`Ӏ}F> g,`}N@o#Iַ!*dEַ!*dm"TET+ 6DJB Pj}j%Z߆(}ZIַPoC>P$TET+ 6@m"j}j%ZVGPoCT޷PoCT޷!*dEַ!`Vm"Uj}6D*B Q@PoZ߆(}ZEַ!`Vm"TET6D*B4Z߆oZ߆oCT޷PoC>P&TET 6@m"Մj}j5Z(B Q@PoC>P&TEַ!`Vm"Մj}[B Q!{(B Q!{߆},mDQ16HF;|S]aW7cwa6J͖-f)O)扱WOQFDpKq^^r]; vRi3[7#& 8;ȄܫʁOMpe<zNxVj=ohpq& K]#]+P lyJ_B-<`þ=>Y⚅G&Yyz4ȏrB,v kyLY:fgw3 uùM>;?mN zJpM:y¶WZR/clF'и wﱕ&ㅆp1~]ypv]|_Bv}9ol;dmܠm_P47t:%kx-aS h9GԆzD2s:AP6mh,r%.mfDԶū: +_?'ej*M޻x !܏iPp% c eIRL!y/꧃lA*FX7OMw9TmE7\LDۡgqgpA8 g/ШV*c+xdU{L74E\nkH kŭwTQItfsZu#)xw .2< 7~{˘{",Jau [x6Si\5n}F˶12ƆmA/$c > ԪbV# ͏WIeif8ݝSWO9pp`Y[OӁCdp*[ ĆX# <=bw`B|ByKr3!jD?^!2a K$ElIu)Zá};cL8wε)`Ǧڗ v/jݐV3pff2^;n@_#R c8CUU]T "Uovhzxƞ̼7F Ptں%|Ϣ!&؆h e]WlUv"wcmx@,,4i]sHׂYAE5sh5Lqľ=]:ӟwo} s闣9*Z6{ʵ=$LY&q:׈FgkWTv6H֜WSI34ǡݿMidwZK0e?mkrt2Nf)Q" `e;]J4b1 xlULք"/д?s*i^6-H- U,{ ^h9·{Y3~nfѶ@1JZȑg{=D, ^a$L ߇1p%(uXYZI#01Io dHn؎7do ZUGz9HfgBcY\Y**׊q,K " i7fI/x64C@+4# 8IW{^ľ*gxggbt5,,Cù "bh%4<=?<}y|z+<"endstream endobj 43984 0 obj <>/P 1049 0 R/Type/Annot/A 43985 0 R/Subtype/Link/Rect[93.6015015 196.828995 226.970001 216.509003]/Border[0 0 0]/H/N>> endobj 43985 0 obj <> endobj 43986 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43987 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43988 0 obj <> stream q /X1 Do Q q endstream endobj 43989 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43990 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43991 0 obj <> stream HWkX_qH`|_~h>5ѶѮPHģӛ8VTALnݲ]•y㵘ܭڛF&I~QfM.W>U{Jͦz2vrIK}l{4mc.t*:]An?wɣ lͦ?guUgwFMnh俻AR{W&nlA:R} >CO+ah=M'|=gU%rB-'} $ozG=\3RgMv/svuF[)N1 X2ę8_DK鳴?g^M~,&›J .g~o;ҺL~<.mpYd.6ǃŦ;W>3~uӛ^{{V6Ϲ[>x{?C2ֆ x;뵼Ycg-EΙWAO~xyT0#ݮBec##Y*dVifrjq3 ]Ϳ͇ϛM:#Ÿof֛-krCgu5iOlf&> ww뛵5ۯ=V}5~ꅑ' 0m8Splw fOC!w۶oޢ(-9]A:yܤ2'ǕYv~9?W'ODC*ޅj;VQR.{Sz*lDoNSߵ_ͻ]Ķ{ȏl8g cZz㶁ݿBZ)R!iShrѮYag}?>KRRj ə)8dzy3m _*14v`R 8=1y5:0]'X J_''TEn++72sgv-4G'KEx"¸+S|^`EY,R64 [Mc$ɣ$]u¡ 6giZ@HHv=.rLehn쨟(f4s}nxX黠GuT{Jl`OѼ! Ah. Y~&Mbw\ϷF>H\KR %Y fK;-YM(VD~v,"{Z+mLuU /e_wUR8/;K(Q1@/]hgY/GH.IL{gYPȵ4wͪF ösl2npr/3K*^3Y)/ݸV ";9DdH<̀5rНj܆;?85e覾< ̆e&nI$䥉k"ƩW ^QCܟGq+G-]b8r8|')*񡚰r[T8BϪ (&<]]+_tjB7t;#(.ޥ~b-aZg}A^fwԂ/k.S n+XeRG%bUŅ̲]+Ebk~ *h뇾b_ ҉he R0v'!ͺ4>Dkׯ0n@xSNJr"*) NmMuP wlƁzGb4 0A8\ďZ/'а [I]ie[ʙ9fu)͐N\6N-s rrO5V u!?,ALtXkĝ(PY&HX=@pGIM'k4\^?aEPA9!ʶ)(ٗ;c>ʱ|k肱cyǭh+05zDFhuR*uU/eRMLI,/Ih3?)J!O2?5G-Y&AnD IA"%pL56vMk,#)|n1/[KZ"X V"Q=g=mhFQgT" ҆w$gqi\$:-Ӧ G gJ) WZ9&ďzwÓPS8ďYɰY8S3JHigNPL2,,*b/>3dԕ`24a^r>R7^O4ⱷJ3zg |ucABixgT%  T69صf1(`!vܓby~߾F ]44r^IyN0{>B % asD-BSS88r.ѵy^ O@eY -}L&Jo~o8aDg)ΗaR|Vwؖa*/"uʑ;)~yȸ6Td$;|}mjQVQhZ~lc/7W?(Ʋn+ 27endstream endobj 43992 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 43993 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 43994 0 obj <> endobj 43995 0 obj <> stream q /X1 Do Q q endstream endobj 43996 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 43997 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 43998 0 obj <> stream HWko:_6(|z`/.pEmR$nIQ(,wF&GqP#ΜKZ?N>]3'_$ ӱCɢPZ*fٓ'Xμl\U*_*N>HNB|SLK%%,5Ycx0cDŒuԾg,2*wj͏泋A(9}Eܠ-<Kw~//&8 tGvG%*y/kKI\LbaW!}.!J(.y(I{I{EW{EW{EW`8}{{{ >$؇`9#}䰏>&`;}Of!Z۷$Zۇ(Zۇ(CPCQ$TkEwT+ >@}";jmj%Z(BQ{GPCQ$TkE!`V}";jmSjm\Pjm\Q.{(BQ{GPCQ"TkE!`V}";Ujm>D*BQ{GPZۇ(ZE!`V}/ Tk岷}"Tk岷}r>@}"; >Djm>DjmjBPjmjBQ{GZ(BQ{GZۇ(ڀPxPCPC!eIÿx dLqÏ0Lbͮ.?]*6@qg-]VrG!=t\'km(ldڟzt͈n.Xh]|ͲdzOy|Nƺ1m\UϏC^d1Ң3죎/l|WH_S݁cx>,X_v?@t~xC `TR1aD!(P]e`EjmlTrBgR7/lucvTX4`(t8xq Tpr%&r^<u#v29l՜ hee3]?w)1w *: jlkbWǚjOk~–KFQ>},fC~<% Z-.:9$ I- 3_;WsEI5+] Voќ+!FwY[csnD\G;A@ TyIhUvet- Z d9Y UsX&SPpǝ᠌ ئce+[Z2zXa-u`_}.pk }hl?rୗBC!?IITyMYLI"/_#_e5rRhjra(C/]<=T)0*I]~[җ8J1̜8uC_A?ԡƧ@/00@q=_twYeI ̻+SVdUsv4nϲ"}X摛-SيCW{dja&C/vv.!Ho,xpl ӟ((ci)˸/b4P%cd-6pok3 Mk›l 'sMKd/LV`aK &c=+ʺ5Ln?3^-@_ ⱻA6C(TM$Rw%֞4g#joNum=+aiq@SU3vpq͓QbCɇ:lDZoOr5p{K̠d\(UDߟݏ >F4vWt6=g=2&~Y QI| \FRjjZJ^2=4ǩ` "֐=E RCP=JiA2=W>@ ;{7ˤMݸLEq,u>8W9 d!ҠF'i_iA' {1#VV=YJJT 8]o , Pu`ѷAcGT?L 7ßrdKI3âs(rL 5l9"}O(jxb$!+Ggy&e@SLK-c,?+lDzݡOU~ "{FY|{\{Xyj :\Zup^ %? T܋ ̉ҘcgXX,D77&q,YLl3\є.%^IdѼl,]4F { c~68;n+b<4]ԾOCXRڗa#&I> G1(KZ?f{+f`,eB`2AG MMIt@}q*(A@qQJ!fS-E/1V . {Oq]?w."xyҍ>V}@2<^}K#ʺ~]oyZ(wHA{O>` lzqilaV/ Ncu l Յ;Nfsm_VO,?~#>w7JIK(sSu# p6 n el߮o(EWY'RCxjዱLT_PTpѢ e2 .='B2u _FėNkD4 =͜7Y"OFف[ďǺuشî<{z /I<,4'lE` `?3!! M P6BWr{#<\tqC'Q +Dwv{}MdF7۫W`9[>endstream endobj 43999 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44000 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44001 0 obj <> endobj 44002 0 obj <> endobj 44003 0 obj <> endobj 44004 0 obj <> stream q /X1 Do Q q endstream endobj 44005 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44006 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44007 0 obj <> stream HWko6_2`K-z] Y(c:KzwE:sHK\^{O>|Hb>>TD4#&T/1ٓ I$+tTcIИ{$3,:> K",W;xC3O=C3O=GsO=GsO=GsO@ O@ ODKODKODKO}O< >ԧS"SO}O= Q< Q<>gzϳ1C\bw1`!u1ջa] Xk]̰kZ3,DZŀ Q﹖!u1B{ek] Xk]̰kZ3,DZŀ Q﹖!u1B{ek]8Z3,_ q WbB\b\׺a!=rĵ.,ĵ.fXzϵqs-G\bB\b\׺a!=rĵ.,ĵ.fXzϵqs-G\bu ׺a] Xk]̰|.fXzZ3,DZ QV u1`!u1B{k]̰kZZ3,DZ QV u1`!u1B{k]̰kZ WbB\bw1gQeߪY]p_dwh<,JHddWOc[krsGc'}y{뺳_E[?N Ua[OdsG ޝdpF7abQ4x5ĖmUozo=F "ycDÔ/]8SbQ)"W~NH4QM6} Rc{^ȫjưmtCZ0bVҝƋ@,*y[EPdl h矟;3eѧbOtC(9NAJ$]OLÁ]x OHc8wT1/(baG VuzjY ]TKW}seovߋ*(fcԷW5Ye[{T [A3][hKIFc{nECl"Vêkod Ÿu\4OyZommrE:Gq,37/㞼#0)tޝ%`8"-t7s|gnݞuI" g?`J6)apјe0+,iJ[~C&Kq6>˶}"T"n_:fЅ9/vK<'+_;]9t·;ϬiגKU1ks5vdUeGʆ<SaQ 0(W*;n<*|n2h']p%ʦ.{Lq/l6H#L pȋeo?IyS w,| /kKhOFHGM/q@r"%N&(7kh+67iٖX0p}$憜f>3'cP@ff?VK94xֶ1ǩ-nI+e7eit2sҌ/\8pf& \O8rP4R^GoqXW0F*B3Y)/ɘn40 WKl:l|i]NO_s?1ն/ xEijHJ^qC.HBLL Ӗ0M~C) o^rՙ$;c>ۼ lƐ<mgq2cW"#;&V&t٘ot; e%ϥ~] :tǥn2G}dJCA<^+ĪFq8\0]?m׍-^4dk,+61s3~EHSIEQ AOID=o5_K] c՗x515118db4[O(:#tvrIH2 3i>-CsR6sV[,><~n$|<ɰpP$= 5w\r@V4 <-XS'4(iXpWBTǹvJBvAeWZӳEPc]{9o6;j=[1u\Rw|*1_Og}._^F{;J|q,ߧoGگ MqePH3uJ]X8TpR%t=*|mZS:a%] {~ ?«m+rtaYe=CI<o;;(9gOdJ(a^bv&4 l%Za fgq& z "cj,".U~جUT3e,rGܡTR)Hi5938EZTTÝ?:J7rrUdZ3 7TKtt5 jf7ARRe&P, eHTl, >! 9!9{"LѮ/ݷN0 g9$c~vS"/l8ʭ$G!߮ˆKXX1nK2YU=]`ET>&3eFƆ;,w$ N_%LG+]J@IM8>Pah>޺މuó$6^2S؅)jd}tז}O#džp4]"ly;zV]NdO4I;;Dw)\`{=W7 XuhkpDj<#"q Xg1h5 %VETnW*4:PaPcPOW,j>Bׅ8CJ?goGr60ZL5*LpRvܚx`$&6h)  ePqbʔ%PՉ -wxCẁzFL2&+yup6iv̥:CGE2G\jyG/D\I9yBOWߗj(KOZWLLOW،aRZE>QSP8JXi:TTg/}'EFIɍ$ m`hݥfq$.FfU56V l7bKrR+CٗN|FLKZAz/%L] + ׮?GL+ 7%>387&`BF,leI1!5D+KHz׎6 "Bmne2ۤ3b*)MZ2,WUc;d=NP}ٸCxSZ'0wjܰ~ڗ9tn6^"xj]Xi/@2gpJUcā7+M2c㪼s/Ǣ4P/0 q9 Br6ǹ_%u,)֍*\yge?pBɽS3UҘX:յc⃁qa힄Xb0<)+xiKN(4AZ$#Ƃ!-ǬED*Y}5Vhz!"ICIE2<ryЯ% Wi/yTQX;MNz S8Qw邟eʎY:'qhakJZԠq5 im(E Ch';Ou 97zm }Bl6i|&|qIZD4]7hNlj 6ќ'6H}ݧ 0$, endstream endobj 44008 0 obj <>/P 740 0 R/Type/Annot/A 44009 0 R/Subtype/Link/Rect[93.6000977 518.429016 222.936005 538.109009]/Border[0 0 0]/H/N>> endobj 44009 0 obj <> endobj 44010 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44011 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44012 0 obj <> endobj 44013 0 obj <> endobj 44014 0 obj <> endobj 44015 0 obj <> endobj 44016 0 obj <> endobj 44017 0 obj <> endobj 44018 0 obj <> endobj 44019 0 obj <> stream q /X1 Do Q q endstream endobj 44020 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44021 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44022 0 obj <> stream HWko۸_ 2|I6]hEchBX]=|%9nC%rɓÙ!E6o7޼S_}cćsJq$H&+s߻i?eon2|7w[»Ygb%@L?_޷.[vy]WxH_}_|8%@LC]@aǼGLr)aЀqv.< f&'>'}}B$o% (;/ mNrèpH6Yn:c.4+DXv\6,zzzzzzQ:CD}>BGQ9cD}쨏>FǎzWzWQ8DYJ#1rژfmL\6,ĵ6Yzǵqiq-G\kcB\kcw\ژf!rĵ6,ĵ6Yzǵqiq-G\kcB\kcw\ژf!rĵ6Vzqiƀ4Uoc媷1`!1B;kmLkZZ,DZ4 QV 1`!1B;kmLkZZ,DZ4 QV ғkmL\6,ĵ6Yz,W qiqD\kcw\+ژf!Jĵ6Yzǵq qiqD\kcw\+ژf!Jĵ6Yzǵq^4UocB\kc媷1r'$ISo\w`?S=|xȏbK[p\>E^ȫ۾Ϛ,\? &CY~9'!,QJ5ss+vTQvl5dλMߐ{KzHɧ#WyE| {baMZPI`քTHRHD$|U vu]oNîN)LnJ8x6S^7CoxIǾ&ɫWքs&ľ{nF=Xmu z2{a/ļBfP'BLfս,}MWiw`f s"+˫k,iDbZ^^cI,DxW2ŕz '&/ !U֘6ԡ6yePL!51~K!i=9[.kP`sˆbW'CBq5Nw(LJ Ő` >㟿 ;x 4ڧ, W`q0C<$QjNI$cqT7̾5:E "JF:D>VLwݲl0Fצ)%|3'V&"J7HiE G=x k '0 ;?Q:hQ퍦pmv`ro (U6ۀӳq8Үwy>BIBf\R[Mp8 _0&B2PmV.\؋-&J˳a/4yicئk࣐v'՚b c]u g/fDFDY#2zsŢ9kD,;>~pu7K Ҫ#</"9|]ت'k/a~ RpM3n :?I;}YCnN|lk?e/?LDDLUj!|ٶ3,ʾ)VDZ}1`J=LDZu<<_2Pw8\DMr&Az6'\~}tHr:6~qPLW8ۄm&eiVk0[ Z[+&0K7h2d0:`2AĸELwd9y?"N'[dZ0 ^y1tA,U"S塔o+$4AH8_|s~Wh*_jX}е4fCۢ(@?Oyf%Y/gQ&//JZM1UEQ8D}ś};vHtU86lG(1}v <RcXъDfPBIS7~0!p3ܝZb{|Q{]V\BӲhoShb3?yZ fuBƑS!]]Dhw0N͢턬Bys&5e;s=v)$&X~EEK%7^:_)VpIT_V?͢G=&1!3r^tUo]/>O Gendstream endobj 44023 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44024 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44025 0 obj <> endobj 44026 0 obj <> stream q /X1 Do Q q endstream endobj 44027 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44028 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44029 0 obj <> stream H|mW R ]eo>vYe,e]DK$c#yht¹l۩'O<{\i/O?K֫rYaUY,j$MĨJ6ns>s>  KKK++HDҋ5`hN,ZKZtdzKZt@z1L-ҋ`j]`jF.^LS5rbj-ZEZ Skr\ Z kkZ0\#H/ւ:q`jF.kkF.kk:0\#H/ցZt@z1L-ҋu`j]`jF.^LS5rbjZEZ Sr\ ZkădzEZKdzEZ Sr\ Zkkz0\#H/փZt@z1L-ҋ`j]`jF.^LS5rbj=ZL-%s-r\2=ҫ*^HQArDz %X`yV.X9`UV!X`UV)X%`UV%X`U+VYVK%Y\`2e, Xk%X\#`[{ac`s\%zoAv`]z5r4vq$kt,{z5]dKށs.2%z@FWw\+ `;{D=Xkt,{z5VH%Y\ `{{хD==*Xkt,{z5z,{z5z,{z5z|,{z5z|,{z5z0,{z5z0,KF܀%zއ, :kI8qquiTNާ!WKcN~|_ʓ gXKКPmf uպwjfOjj" :[uYfRpUO)8[ӏQ4>~l:m7Nݻm{Sگ꾍cCİeN1ZnFܻ?}3dpwnեQF5m7ov)LFB:^F?{׿=__EmMN!kN+"|XnC+JU󙦫x5%rqBt_^6jovfVԇ 9?fy>zE8}vN7g738])7Μu Y5gteq!by\6EV֦#wcOݡ]f!8[),N5HQe~|Y~`1_oǯi:A+UfM=>ph4l`P#YpYzc6Bׯ= ;r|bUyi!ԓk 2 $0C}ݳمLSPF-ߴu}yg~27HP?۶44ߨ)b?dpiΏ~EK>6O'C`p)>㑚~5>xL~x2GF\ ,/X9`傕V.X`UV!X%`UV)X`UUV%X` edq\ŵ2e, XV,`[{ D-=Xk,{ z5rKނs\%zoAF.w\#dq-@F.w\#`;{ D=Xk,{z5rKށs\%z@F.\#dq-@F.\#`{{ D==Xk,{z5rKރs\%zAF.AF.Zts\?<۟ƇurU[U|y|/J߇x2ENՇwFttm Jˊ1Ӫxt-8|念-V~2^ͼ[g͢-.^;mݨ(<)]ma1vb4.E}i櫩sEof{x.#:]]lfu?!N!2V6noL*q M qD}!Ai[YtEnzN*R,j^K)bŦ< hidHN F$AVV'/ioO9s=I,ccUazq;+{8L햾e=pWE" Bg >C%)j |-g oUT>d8-0/ǧ]KI !-رNPsc%*Om:P⽞>M鬿v3Q}GȸAزpЪ:S3:.y7,N_27qsw-7͉]ehBlץ"K oAuyR΃9cFs ݝҞ@n~k^lRQ{$bm9yq jk˘yEcU?fj#  ]!:M!2^^SËjl Aj֑7,9s^'fŷ:M# \\]HO$,+IQlSk j+A,+;փ6;`V5>JES0iґͪjx: n'.'T; %a䕇,ǥB dD#x92(=Mƴdqvpz::f]VՔ5dzW8AWӘ)hT"qɄ$(":4=9|퉽\5(3cf|́w!ΐu^:$~ |~ʀϖB$g}\az !ۓ` {/x$jjc-}n}`ZLh㦷ApZTMz=ZbK;w\} 2}\($9ah*7h^$pRGј5-yroX) a$$%ep&j\1g<<# etܔOFRFf؄@˾U:ڧ罟c0tTpU²؛ 7"# `-8hnG{kwv `bQQA'jS5ܛȩ'Nj凜dixqv )q<*hȰ3S?8aN- J z<4&cӭ'I;Ģ47+sDu]@Ab z52Dח5fn}o39j_*R%25ٰvO/A"oDd)f<0uuUmKKLq¶bdiouMR, Xp7nnh妿/sOL/ $sendstream endobj 44030 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44031 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44032 0 obj <> endobj 44033 0 obj <> endobj 44034 0 obj <> endobj 44035 0 obj <> endobj 44036 0 obj <> endobj 44037 0 obj <> endobj 44038 0 obj <> endobj 44039 0 obj <> endobj 44040 0 obj <> endobj 44041 0 obj <> endobj 44042 0 obj <> endobj 44043 0 obj <> endobj 44044 0 obj <> endobj 44045 0 obj <> endobj 44046 0 obj <> endobj 44047 0 obj <> endobj 44048 0 obj <> endobj 44049 0 obj <> stream q /X1 Do Q q endstream endobj 44050 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44051 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44052 0 obj <> stream HW۸BEF+6$K8Akɒf;%wSYQoGrސgq//?y6NW^}10_.c$Dx|(_&J㻈U]~*뢫oں=T;TPE?~1z.W쫈Y &6g<^r9q`Ah1R< śvo5k)LjhOao:?!s1K7>ƛ82"K>w3>GFa 9qX*,+cb,d!̲ c XPPP/P/P/P/P/PPP> g,P :P :P :P@}NPoPx.k1fYzp-,+T1 c Xk1fYp-,Pb̲k9ZY>p-'\1`Řerµ,B}ZNc"\1"k1fYp-v \1 c Xk1fYzYVc"\1"k1fYp-ƀEcE\+b̲kZp-,PVŘe µZY>p \1"k1$ZYVc"\1 c̲BZY>p$\1"k1,µ,B}ZIcE\+ b Xk1fYp-,PVb̲k%ZY>p$\]b̲BZYVc71F)]z]WxuIgWjYZ8,Y(7ܵGKy+ooc)˦o/(B8eѕ o}?N.t/kqT%q\O;]{;˽\^$=)p+:&֔ DO?4=U7ex1+\$,OY6_z9׋4H\yDT^)-M]mP:#jm@lc;ug4%-ɂ~S%d#YU Kd2wvD& wˆĤG,ⴜ9!E }+1gp٪?.Eht=2)Ö/Jaܳǚb *98:/ c}#`W,eհ C ة,y+cU/#*a"nr^_FPl0;ff}U޹öZoQlG:qor_6$lH~Ee מϡFgxwFL% J.~/o\#=SV/895dP{O )J>M\Z4?f\5-5T/j<]_=2hUsV˹pT6r0v澾?K o,??IqᯗDZ[;f$ڦ|T\2T].oL-nۃk\ .C2Lb-Moj)I 08b8S?-(EȺ}pW}]N!3 u"%ӤږgLmqWaKɻc- ط5[۾F@t쪵{ߴ]5 PqHqZ5PRx(ƾ.O6''ywSvj]tU;5Ǒ5S*q5rVw~eBu{9vx^^ 8nz3Y۳v ގtt+͔F:̗(;j඘kؼHw>_n$ـ7U7RaA1Ԇ,aRSUT_P9-ն D+[lTui>4MHӦ ! ] %Cٿ^lR0@ ə3gB]Ǵxq30JdR9!]*{pj]@a;gGNB͍Nnlo;ؽ:6E{4Sx:uDD*vE ?hAF=Zu/欠/N=#gu .YL\iX]!\Q)AtfRd /0+xv ľ4(u54D kp,˺wKSh0R#DZqjZ;mRM]ŝXtOXnW5 5yml:ʕ5N@ׄTs_8pm%2c# &%Rs2IC_6ňD<'C[z׃_Ixl_jf<ÅO0 .갹8"4g<]m̐ߺЃ.!$wC=EۮO^Bfxj=cJj"7UMaZٕR㒦iP.(;hLYΚ ף` ɠ?GWqc 3f&kF 5%9!xתy[gJ 0L 권0ndإhE$9i2Lt&lhYi:360ѕ 5]^u%Yp-v9Jawzx]$r˿(^K/Z/(()eZ9$gbƒ"(ݎ"w#9wӇwoXm͔BBdsY S?tǪ~EÅH{2E*UNAoG:kL$ n\XgR癒g(ǒTStCtGW\quz)vɈs>ѱTHɾ80`rwNr'Ft͑2{Rs_x)~$ [\・* }C’WS@W&И0c|< _BhMS{0-^-䩰Ɓ>Ia9E2"]h%Xfu jS/(LYNL5|Tt>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44054 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44055 0 obj <> endobj 44056 0 obj <> endobj 44057 0 obj <> endobj 44058 0 obj <> endobj 44059 0 obj <> stream q /X1 Do Q q endstream endobj 44060 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44061 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44062 0 obj <> stream HWmo6_2$EKRe= ) y*ݕ|͈Қ"g3Cru?ᄏ݇,g W7 Jf`e!3-XoX>aͿ';t}sclY$7?}~Hn C26wIrf1YWlsLje5" S|z#t~|F{?~}ScOWo~>D)^?lf@am?%2x~J_gXbd Ĕ+!bL126DӅ6@օ(MBC^D^D%^F%^F%^F^E^E5^G5^G5^G }/Eľ$ؗ`_FK}Uľ"W{C7{C4 цc"Ն6DCՆ6DCb PjCjІ(}ZA6PmhC>R TET+Ն6@ m"GjCj(B QHPmhC>R Tڎ$Tm"Tmه6@ m"GjCj%(B QHPmhC>R$TE6!`V m"GjCՆ6D#JB QHPmh;&PmhCT>PmhCT>!*fE6!`V m"GUjCՆ6D#*B QHPmhІ(}ZE6!`V m"TETՆ6D#*BhB Q1(B Q1ІɌ1nMr.ygy6[wh VmI[wkY^0ϦgnǮz0CKYisťWq9 xr^C 6k0 ((|i]"+ Ac=;]\duJm+pZTW ma# 0A"t>QV7G y]n5/K104/ H." 1%uޕKH^|݂TZWGRzU=p4Ttab3untFWdΟmw:Ϟݸ^g 9^\\rvZf]",{xzJ՜Ӡjp=8iA,:\Rȿ$0.ܧjל3p5'4\x7aTg"4\MUNX*]:hLAZ\n_;^NJWծkno8ZPq_sC\nAC}h/T?r1Vh}e|SR+b9h*VFŪ`a<9,)2 癞.RڇYg+t: ._dz/D&GR$a7u)%OwAgϛZeb};Myy'-u؂6/u>]7?8qvܔV韶o8;9K>ݹꚇ((J3\O>H(Ռn ֵf]:sk\N o@״x}iuޮy]{ZK f\vdpFη1 8@Ν?8bݷ@6E"N9i=0> H+:5}P!!kJm?d[jOi_<Pۮ}B uSAD+=\ЇuH&i-X;-Y'|sb{q4o88a zϯH-KH{HJT]n|$9av3x潔dϋ"5\l$ҷZI.: <wB 1EiP^M6!f܋V.9\"%1C8c3ǙLcPթ 0{jip"D6,R{3=wmSnܺ^8vi$QPVfgԐn# \n)C*H$BϋRa/>!lA4!'RP'ۦ1NGn \cyMK0&zvGXSel%t;QYӜR d>xʤ#HW+҅a}L |.t_l&j)Y(#/Q0lN!j|.oOvhC~SYUuwD ϸfdCrs[>TR9dD4QB{ H3d:RV)a;ҭ6_b_ޭHI&x;UpTB1\h毞৪[OTf )#]$ӻ0b`3Ӡ3B)dkC9ԝaNWu]>)+e(55|%]T\$\S:?X"@jLmM"ޟvš붉{*˛? ]Ʃendstream endobj 44063 0 obj <>/P 388 0 R/Type/Annot/A 44064 0 R/Subtype/Link/Rect[93.5999985 462.82901 232.931 482.509003]/Border[0 0 0]/H/N>> endobj 44064 0 obj <> endobj 44065 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44066 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44067 0 obj <> endobj 44068 0 obj <> endobj 44069 0 obj <> stream q /X1 Do Q q endstream endobj 44070 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44071 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44072 0 obj <> stream HWko8_(Kvfv(TN{IɲtytD7͇7޲o\H{ 2BHQjU%3 >Ɯd#0fY~8s0 k1` B BKBKBKB+B+BkBkBkBDŽScO}BO< >'SSO}JO=>gzϳ0-ƪ@Ře1,µ,_=,W1`Ře= µ,BZAc"\1"{k1fYzϵp-ƀEcE\+b̲kZp-,PVŘe= µIcb̲|,_=ƀEcE\+ b̲k%Zp-,PVŘe=JµZYs$\1"{k1,µ,BZIcE\+ b ZYc"\1c̲|ZYs"\1"{Uk1,µ,BZEcE\b Xk1fYzϵp-,PVb̲kZYs"\*Єk1fYzp-,W1gaeEߤfɿr_8ز Vצ-6eW*]to4;S[)Ҵ_2+Х>38lȻܱL E嚝*Z.LqDy(dOANљM?ק1 3Yqd{č//.Fr-c+*ǿJ$$8 yr"&/١Uzgݰ;5x0'v^oП݆{FHtTT ['jqJSYr@B1ˆ8jj PPG[-֦mr2e0R!Jv d͙|)u M˲XgUQyDNroIJXخ5ݵM(Ђ`$Zgz~G*d~4cng)zh5aU<ɫgl7agH1I?,pբ( a۝M*o_ȳXA6nv״ ^H0{F"$ϺlZsYY¶?1wK;d/v=ɡ?)Q`tqiUN2wpK'9Wpu%a s/w6eXMRQUہ3.//q@mn:kʢ*YW)3N^tv瓫&@ـ]^(Nt0G=m\ěGqj.N!!ۈd$29&6jDBXdB5b*Pxpl [2Α`P"nݚpS" ,cr&B'!~~Ɍ$8Q\Eظd^LCOy;p2> mOS> ɼfvaY /Ǖ U"Tid*ZawAD4o5̥5~f:lO^؞w(OHl/y9:D#SR}6w:@JX P|pW9Y%-7$)qrI, Ět՟s ) 4-ڹ3wB<h8R&!MǺzkMf $8fX{Ѯpj>K ^:lͨԾf,V ^>={JnH٠zƒr;`CHg s1l*_uႋ'TSolzfӎkQaC%k-f]gk.D;fWP2} hpffL's,TJ = ?Rpjld VeU{qYWW2:kUZjqpEH5RMZA6/ʾ5 LWwi$]Pk PiPl7a] /HB'?԰vo*!d DuJᘌb9l ǁ;D"ƕtSۙk?{:,\2]}TLc=q4 U7]g?nUj5]^V}2"*4n9""GZ;<ىU\^ T蝬W֜ފ҉t0J҇ⲛ9r1A 0IC&{l "# 2S kj?4)&~y7"S!G8$jnY%FBY KѪE '|/x1sŀ4ovD HNȤlj6LjdDrpO9 mcyhaȤeJoh0 Tag!Pjg4.nD+̑΂9(84>8ͽĆN]] D#_ ѷ<'W98dl`Co|A]X 0aL`Vendstream endobj 44073 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44074 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44075 0 obj <> endobj 44076 0 obj <> endobj 44077 0 obj <> endobj 44078 0 obj <> stream q /X1 Do Q q endstream endobj 44079 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44080 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44081 0 obj <> stream HW]o}篘a!f!t`S]}Ch[>4、hG 0,هgΜ3"]vyj?|._2K^}4ElMU[xӵ?.Md󿷛eoztlgl޸KoiD&DklY,@ 4 ymǼNj!z~.W[_䳋>4oun{!rp](\n̜4YN3_mi;~̂7r~ߚr2Y  5oT,4' ˃"IYz:9 ޝ%F,{^}Pp>Q}T P P PKTKT+R+R+RkVkVpܫ:PZm3Z+1fi#hĘKYڽĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hĶY{ Vb%,^b{Z+1fVb{Z+1fVb{Z+1fVb{Z+1fVb,JYڽĈZ+1ficv/1bJYjm{Z+1bJYjm{Z+1bJYjm{Z+1bJYjm{Z+mVJYڽĈZ+1ficvlJ)~>jny8Ls`zSV f7m(9E@x[v- ymW^n [k݋҉Ig}mŌf4ߙkC~%o-gߙ|qv$Yy[28[Muyyq-/&Ag;s~ܭ6mw¬w6Zyk/0-MuR/^{[_r(Wj10BFn鬛{Wӹ*Bts55*%}V49XΟMU$*8U{>e:m=ySK@)=Āwy[+FgXŐe5s/]=0zpCZi]?td9Rm jsBļc.׻} en 6&dpgAφ}hJ~mȿ[.y͒?plzq*rF'FсG?e(w];li|@ܷ:Ec1<{_'>q{E=Z?~܌>gϘU1;q&襓|lm3tS~k/Mx:PBhKƏmXKq<_ riO-y8ܷfxv1sC8ztЖ2]nWrj*8ќ>#dM IY5DC!6 ԛ&˭H;!FhpOdt!!|)1f%RZhEVTZ*V URi@TZЪV*UZi@VZ h%VZ>Zc֒rJ->>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44083 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44084 0 obj <> endobj 44085 0 obj <> endobj 44086 0 obj <> endobj 44087 0 obj <> endobj 44088 0 obj <> endobj 44089 0 obj <> endobj 44090 0 obj <> endobj 44091 0 obj <> endobj 44092 0 obj <> endobj 44093 0 obj <> endobj 44094 0 obj <> endobj 44095 0 obj <> endobj 44096 0 obj <> endobj 44097 0 obj <> stream q /X1 Do Q q endstream endobj 44098 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44099 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44100 0 obj <> stream HWmoF_tѬo$!i4EdfjQ:QoIF"j<;;w/_*Է߾uxmJ[BtiUU:we͌jUvKs?oWз շ_ff\[el4IISUEf, 1sA!^v&nKfx\ܷgor|H!ϲ"MOC*-MUSV}XEWjpQ*p9Qr" Lj%Xb#Y #V,ice{+[ w½p{'{ }p >%p_ %p_ p_ p_ p_ 5p_ 5p_ }Eg (-V{%h-Lj%sX= cEk-h-Lj܋ZZ%h-Lj܋ZZ K,Z #p/ZkAk9X#p/ZkAk9F,^ւrl9ZKXbrX=Lj%s,@k9F,^ցrXhXbrXh{ZZ˱{ZZ1bcZ1bcEkh-V{%h-Lj%sX= cEk=h-Lj܋zZ%h-Lj܋zZ K,Z #p/ZAk9X#p/ZAk9F,^փrlZKXbrX=LjܫG._e,TDz%4CߩQwQC׵m7mnz޽SN5}j]}OSmݑZ=ky~z޿]TyB8pËyή9;Ūbm.7*no.P{f Q+#&+}Wv1n.*qWHtE85e}>&<垦s~s7ۭZ/wofx\%3Xų 8q)3NIthuxna1^9X- DFGZf?T_mF՗4;l=c QWEk' t$̵>[S'Ц'mo31m:Lz";ӑ^idw }ȍgw*]Mc͘ 8t1q%zz]ņw帙Mhmso+to3h.f7`|M s8;[S9GNQ#V,偖ZhyVZhURh@ZЪV*UZh@ZhEVZZ#XbeZFhYeZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cĒZK,{ h;{ h;{ h;{ h;{ h;{ h;{ h;{ h;{ h{{Kjq,@9F,%rA9F,%rA9F,%rA9F,%rA9F,%rA9F,%rA9F,%rA9F,%rA9F,%r@9F,űV1h?=Yv93N5[ffwWeLSVUR?U"p2d]C7̈IEzlstm {q-vWtñ>omyx3?>&ݢn>np₌b]/ݲ]ӫ(vt:C>w3ӮnoWz)~X6a].]RZICeK5[ɌAc󙙼|q )Y1s9INkz}vfެҮK橲T8 d%>/ ]D{nzs*;m[Ƥ-Ip>fjciӟEh[꿌Wn0+r! (rl( CAی#T INҿ"'7o(nۥI]:T3/8י&c(j~ƿkL)ݺ[3P e Dej  nW;E!L\;km'59ka/pܖWBTo[uφr%rڹd՘vרE!l` vW vZN=|S$TvCms!kGQa~NFO0&Z7Fa@<alHyP`ik>5-iTvsQRC\SB$ZCEU6MArtSyh٬ZdT&(ͣsEvn, itfjҏ75PXpV{U4EB5p7vy@ɽZtvN魝cyE.B٧n~Nd e1%[{c`LQZ& /mzn|w >Nڢٓv2ky8lm`$ F9s@Mp r/E.00c9 E>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44102 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44103 0 obj <> endobj 44104 0 obj <> endobj 44105 0 obj <> endobj 44106 0 obj <> endobj 44107 0 obj <> endobj 44108 0 obj <> endobj 44109 0 obj <> endobj 44110 0 obj <> endobj 44111 0 obj <> endobj 44112 0 obj <> endobj 44113 0 obj <> endobj 44114 0 obj <> endobj 44115 0 obj <> endobj 44116 0 obj <> endobj 44117 0 obj <> endobj 44118 0 obj <> endobj 44119 0 obj <> endobj 44120 0 obj <> endobj 44121 0 obj <> endobj 44122 0 obj <> stream q /X1 Do Q q endstream endobj 44123 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44124 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44125 0 obj <> stream HWn8}Wp/CKHl`$` [m+#q~$[";Yӧ)~ڞ}{ǟY޽{ R<2 TX$\ BD`ys)-6-_{jI.00H 3'K”fuoUt +85uߥZ)s0ھ>UӾ TØGnu"_A(2禂 H. B ͗mY`d̅U`Pׁ.pPz$C?+|!K,W{] XP/

DŽSO}BO< >ԧSSO!O!{ӺXµ.,_p!Wbջ׺kZCs \b"\b"{k] Yzϵpp!PVu1d= µ.,µ.,BZAŐE\+׺XHµ.,_p!Wbջ׺k%ZCs$\b"\b"{k] Yzϵpp!PVu1d=Jµ.,µ.,BZIŐE\+ ׺X(µ.,_p!Wbջ׺kZCs"\b"\b"{Uk] Yzϵpp!PVu1d=*µ.,µ.,BZEŐE\׺Xhµ.,_p!WbnQ, ޯut'Yֻ cdž`u+XZxXp@؎D" ~xDhiE; ;JA2 rXSn+leKh9(\yHQ˾۰8CWV m;zc 8"4bgY=5b3"S)nn ϋ03%e4}>g>vx:5ڬwМ^Бt\8Zڎq+1&*+a9̺˞'h[d_gYQfvpA{v:99$9x!BlE`ۛqY? U`<jVy{{qi_}77[gҊDS(b+.x*lavUlPF`(x(kjs0ڜNҰsu1endstream endobj 44126 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44127 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44128 0 obj <> endobj 44129 0 obj <> endobj 44130 0 obj <> endobj 44131 0 obj <> endobj 44132 0 obj <> stream q /X1 Do Q q endstream endobj 44133 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44134 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44135 0 obj <> stream HWko6_2|( 4ɦhmY QH"ѐw҅a:>$/﹤]Gw-a_}/_.$3I G| ]sIM/MǺ5ޒc^!yI6$l&a$%IrVMܧv RNͯ WqNيnUWL[ S>3l>Oԥ 5eeY.Ie~n[Xω|%`+Ȏ$̨0+MhICNsʀÙH!fYt!,cVYFXvc!,zzzzzWzWzבzבzב QE3D}y>GQG D}/EDԗQy# 6kC̲b!,ĵ!fYX} qmY>r@\b\+׆׆e!# ĵ!fYȵqm qmY>r@\b\+׆׆e!# ĵ!fYȵqmD\b1`! 1ˊՇeC XkC̲k%,D}Z6Ā6, QV" 1BGkC XkC̲k%,D}Z6Ā6, QV" 1BGkCMX} qmYV>,+VbB\b\׆e!#*ĵ!,ĵ!fYȵ qmY>rB\bB\b\׆e!#*ĵ!,ĵ!fYȵ qmY>rB\bm׆eC XkC̲b!fYeUs&7݆SلÃf$JitrsEn58׺uCcVRGIjp nd%RR!sWXRp?\Te;蛇q7{ser19 Ts"ըѦvC(u\F3cU7{';2JUH%-!CCE:i̮x>VsE-_2PrLO0ՁWumNϽK47N qJ(: ǵK2c29l{jj$eyӮyRwQ5m?Q)$`w_ʈ"]m-m7\柺L"55y <,#V[,݀ bFӮea6|7[jҸ%ӮPm/.Abtkv{ Sb<=p sM -=`4Dzn%,WjdZK\Oa<i;dTpҗdC[vGvEs;ue:Wڌ MKRZQ¥U)Vrhэן޵S3PM((Sw}z5,bS70KOkxǓū.׫ӻpo+p`pyGR5y ;ׯ%2\4fHpO+ḩX2Vc8\ +Q)!^}5po, 0kzwJg2k{f=a[&.vZYpV%\/1)2`*Gj2'fI \Q.[}mc]qܝV^n[rZNw^3^g*͢7K EBmrE3m+c.4V;dž̾5/>iv%zA^|̋ wpdWÂon"R7n!P>PW]TjnQ vn{OtI::pUJnYRSXR|3fĔ|Lٜμs:1>|L܍^9 m+r 4׏'RjJ=xJ 5겋jP7gribvE{}iɃ oӳZef+UI#ʦhl5s"/UOqD%նѧDn }_=ŵe.ƅSf|j݂lB7u׀۶tH8tW'݃?ZY`>^&dl3d靰,1~UnYq^j 2S~4p["C;=T܄~kc5i:73MA&ݓZ( z}` ҂ =/ꔾQ u*ǒҍ]7 vc9d^L5!HƎgxp/_nycXi'NF^[r/p6SHqԳ(8>/7FZpwVi|k$wђ@*CSDJE@<^]J[ & \|coL% cmAr)9_= s[:>*“ 0kQ[wγxן(I\F7G5x|[>^; Yń~|(RG#&y"ym[o3 pj`wgM?;cS)„78p;NlZHɎ""f)(8 X_H+#έyZ2XXN i\0̛D,-d;M*ʸr9O diL3* 6BZ:Vg<RZ`ݳqSQj>P aDxPkz(y1Bp;L[guy8Rdqֹl\[ 26 zֵɜ]q&of 쇚{`!/vˍ>22J_)<ɧ$gOU&Eop]~ep(Tw+^<@ œA]$ 0Lq ?ׅ/$3' ` mz-QK.hU?*endstream endobj 44136 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44137 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44138 0 obj <> endobj 44139 0 obj <> endobj 44140 0 obj <> endobj 44141 0 obj <> stream q /X1 Do Q q endstream endobj 44142 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44143 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44144 0 obj <> stream H[oGẈQߧ{N@ȔMC/$[=bWW$4fcϙ]Sg.~￿?~|=gni?}S0͸]w?z܌ſ7_7z\pof0Z +ތz\] .4&XsUWÙ|yli'}~fS21owƫw՛G3i#o:pݺ~R)~pZ 4e?~dƿG_&>oƷa 񰎊!MfmH3gck/k@iS)/P\ֽx^MM m m m ] ] } } }>C>C~ϝYP?wgAܩةةOԩOgдv;ky-Sz^JZ^T2ի5L 껮5BZ]ky (ky-Skе)A}׵FZ^JZ^˔Z#t-eJPu׀2%]kw]k ]kPBZz^=%t-eJPu2% ]k@ ]kw]kL 껮BPBZ]Zky-Skее)A}׵VZ^˔Z+t-NZ^T׀2իLy (ky-Skе)A}׵NZ^JZ^˔Z't-eJPu׀2% ]kw]넮5L 껮uBZ]:kyvBZzе^=eJz3tz2nQGTv ߥ)F^VJWC\Cd<)7ng_.:v_W뇇qwzVoV}Lڂ fsg_#_(1RFݤʆFLiK.+Mt< 79O> 0]Sf!?05EiN`f1:IJ O‘Fjr ט&LJJ4kC*ܬ[Nwd/zS S +yápyvp鄇|aٙ3ˣγ Q)3ٹ41مNsvӜx4q2ҳ$lIppɻ,[e&hpKƇχ3J,S'm >9l?aQt_zD[DNg}wwa=Cx;gp-[<N!8Ovwxt vr9Rӎ+F;oCߡh" 2OS^!Mxzssw}m.V+> KR=JB Uz_)R}zR=bzO)R}jFX= U'T񾡊[)zO}C Uo/7TRW_'T񾡊')^ :Ls0 d>f_ƿDzr0:ri_.Nr@ }YO]Uy.@<2Z/!b6ҖC9)¥RMX~dA8n yڇ̴_,fbaҴ_Mfcp˯]x3xM:hkxS\xZ5b4p0hm4hF0gH0p|cP|Pdvh( &xt(9Rj, jbxd,S"XL"b$hXc" XdI,F/Eq)%!7XÃyO3 Jm Whl[h..G:R`)uӯi;׋CϜzVS_{)MēO 8 ħ Drī6+S7s\M~бBIa1^I[7a~ 0da/` &!|1H=q&<-N|&a##5&J@H}@Pe-S ;+ 2 |4#T pKaڀO нW7΁gu, `,' x4@330_EY.+L&sCg % r&mQJ Bce%//s ;Àwu8ݝQ[0,k/U>xrqhD@);}=FuM:ǐ! i~]Ay!X TX'5eVMG]Wzአ8)Udp.IB(E8~IT D^8hHKFv8ǦP (5w=rʆN*AT^$&5Vnsb_?VLΧh5%b;4EN Ba m2CM(0}}W}6L3ߚׄm%+b[USz iIqi`aS8 5U2唼xK?w"j0,ϳ$MWݴQňɽ;\'G{bhSaDPc*1a emyؾʈ/Ǔ>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44146 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44147 0 obj <> endobj 44148 0 obj <> endobj 44149 0 obj <> endobj 44150 0 obj <> endobj 44151 0 obj <> endobj 44152 0 obj <> stream q /X1 Do Q q endstream endobj 44153 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44154 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44155 0 obj <> stream HW6F+$EI@}bk%lwF,yf"%q8G__߿u{4 rI ¤NcWL=&jUfWuJ7Z=Wa7*WMaLy!*J-śfշAݽ.[:w\6_,ǻԚr SUCR_+EZ裡 âZ{uYfsu?.,خjL >¿_wZě""eėW.yxG9sЮݮY~߅6lqԧ88m3hnDRU<(n6eWJV0}sFMi/2.-,),0F @ehB{I)B{$3Os7_o`|Cg7]10s B9_iORK 88mWbƆ*^>N 2w|Cd+ƺϫiS;I\l4+VG^YyhCXc!zC r8xۡ~s)  kW"{CCȥ{n(  dJ_VI{3(Ӽo;lxf&m3t< :$πqyü6tKڇ-+úrǰ\î9ˊo>uf]\8t?7B }ޡm3T0MuUͰװ]zF:,=7uj*݋jږӄG9}8Ai0vƳoPl!J#V/']ޖ!p>]=EEZiEAJ-Wjƶzb*a:!qA PЉwcnwn7M N/?S y•=i~۲ $iYZ0j9h= x`7wi{-0v΍r p^ (;sU}O@Fϔp^j07}xzC~B:K/jWUyYkj:vU}l5N 2VEy ߴBx՗¡_I85K˻Sw1Sa\ >y*@wѡmp󲄏q~CAÝ.~cMhؽ U,$as:^C=rtvOj07%D7>oFXgq8,S|,x3!^;.YO[2[BWJ3m~ 6qG:(t㽁uPK% \ U.bl2>OKߵK\fV;Ӯ] ~O£:XOλuܑTnw'k?5 /{_ia&^%0?j }35`>`+@(r<]5%K+-\hR·vg}NG=+ǷX.yoM~__kGVE,a q χc'V=ZB76 >ɍBv! , ,eXrB,b9!c !VbB*X%U JbU,V%ĪX,/,byKg<ŐcQ X+gr!Vbi!fսbbBS YB,VZ{!K^ uO1d Xk),!{-=Ő%buXPCE1` uO1d X),!{#=Ő%buoXPCսbb7BS YB,VF{!KuO1d X[),bbbBS YB,VV{!K uO1d X[),!{+=Ő%bu'e0 Et &k9ajDel+nN4<=={)VfMS}͚,Z-S͚ZfMQߛ5MJ/wU$DT/6*ȹY>]ng)r&m Gg '=&~Q'X\Zg{Q}[_IFߎM2z$hx~[ cr^ ~ Yodʒ] MIMSBf= n6} tEuݳ<H;kX#͑tR׳mZHg0dWvykR2]Ey$=BԓrTS,wJi9[(FDzN9p,x pMt_9 5[);: `endstream endobj 44156 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44157 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44158 0 obj <> endobj 44159 0 obj <> endobj 44160 0 obj <> endobj 44161 0 obj <> endobj 44162 0 obj <> endobj 44163 0 obj <> endobj 44164 0 obj <> endobj 44165 0 obj <> endobj 44166 0 obj <> endobj 44167 0 obj <> stream q /X1 Do Q q endstream endobj 44168 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44169 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44170 0 obj <> stream HWoF^T~]]&FR'=\xQ`2e(%'o({dvސ;Cr1kw^Y꧟^|'.^SYiܨ"IfT[G&J]REWs}Ym޵˹j{ы*:QZUȇ!MUч}=-7<7Yd՛l汝Te9K{j!KDdԒ*J'?pWMt?oԇUybsXE#q8:1bq ,%a{ZX`7½po{+[ w½pppppp_p_p_p_p_p{/{^tVrlZKX`rX=Lj%s,@k9F,^րrXhX`rXh{ZZ˱{ZZ1bcZ1bcEk h-֑{h-Lj%sX= cEk-h-Lj܋ZZh-Lj܋ZZ  ,Z #p/ZkAk9X#p/ZkAk9F,^ւrl9ZKX`rX=Lj%s,@k9F,^ցrXhX`rXh{ZZ˱{ZZ1bcZ1bcEkh-QZ1bI ,ZK{Eiyӎ;AC,XB-'rB+ZʀV&r hBZ*V!JU hB-/<\ˤRcĒZBK-- 2B-{rϱvZ #7 a,r1b-{rϱuZ #7 N,eA9F,1:-{ r1:-{ r1:-{ r1:-{ r1:-{ r1:-{ r1:|-{ r1:|-{ r1:V-{ r1:VH-Kjq @Kށs @Kށs@Kށs@Kށs>Ƚ}-{r1|Z"cD=h;{чhg >;?Gы*:**|'3Q:[&ϵIcs] \F-LRSQ3eޞ|֨}f{lgQVMn~?lFjKnwO%gz&gK^ӥfӛn?i'#L/t6)!'&z@i.ssL.f33^HtdH8zuz#;Ň/]|L=vmz" z,MMڗ_{ M:PW2: <7., <\8lqja`1\j< "ܱOn0OspklH=DX\ Cɜ,/RMOXFӍ9fF~\9n6ޅ_ZZ_lu,zR.zngkzloՠ19ܕrn?o~۸5!ƍ8`E< v' -oNclz9ó~m=ސゼO\Ko;0 g.kr}Gkc%rB-'2 heB+ZʁV. UhBZ*V) cĒZ>޻~5|JUS^`΋xjMѺ?U&sg|,w8 /$wΜ\<6rA%m=kCltn~_okvD~@o˩c;VV&\0jشd|IX}>_lx@^;c;P%7' eYWUBx|LYZK}7&UXǘFhoؾL-t~9g Zڞ*)\r %Ύ, S &(BEV(.DpS(?[U0U$TCn FekaiJE/ޤEtFO,6Z&$Λη]iumg}1vN;k]&vRᱤIّHkP%l+sB6(%e i TRA֎t_;7zh{-%[{;@W8v>l>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44172 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44173 0 obj <> endobj 44174 0 obj <> endobj 44175 0 obj <> endobj 44176 0 obj <> endobj 44177 0 obj <> endobj 44178 0 obj <> endobj 44179 0 obj <> endobj 44180 0 obj <> endobj 44181 0 obj <> endobj 44182 0 obj <> endobj 44183 0 obj <> endobj 44184 0 obj <> endobj 44185 0 obj <> endobj 44186 0 obj <> endobj 44187 0 obj <> endobj 44188 0 obj <> stream q /X1 Do Q q endstream endobj 44189 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44190 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44191 0 obj <> stream HWmoܸ__EU @y; ʮ+$9n}[gȇC>3?m^x1^|D.0k*[2Չ`*<<}|:}[X[%Rs&Ϸ7$$1sLl{L7W宯]\*+6vzqfNNcyZB'lQidx֢?31²0.p)jEʍֳE r)1C&2=wGp!\&c۳+ ?VCr81.8BG lx9l1 <(]ʘ<JU^U^u^u^uMMmmm>%ا`F3}Y>#g`Gs}w{wH-E<*fm"Tm6cbG#*BQHP-P-y>R"TmETbbG#*BQHP-P-y>R"TmETb1фjͣb(BQ1{l=P-y>R&TmET bbG#jBQHP-P-y>R&TmET bbG#jBQHP-C<*fm"Tm6cbG#BQHP-P-y>R!TmETkbbG#BQHP-P-y>R!TmETkb1jͣb(BQ1{l󨘽9[ w6yi&&b>xԱ1loKvqtwe{oMG;sk)5MU4hnBZ7.uxYwdwWUyN1>U; ¹MutnA?DH帅`F_<B}״}ުY| LzWM}>9yM{{:ms؏돫 -U oƟ "<8:3-V qRn\8Ŷ;F@*7$*. )][6 !DĄ\)m> jvUJr?%\XPŖrL<5'x5p>>>M_w)uW8!;wtnq3M[/hTpqqg7op_Lkzi)b(PV8|gN}WU)[i:V˺ 9{`Tl#svڵClXe9O3rV;4G8d?1Ưc~Te&Cp؅7i pP\ջd/~_5w,\<({ak ñmѲ4M234źaP7xoh3RgV>. CyZ#ffP\x"&UpbH_ \/pF~[,CCkPШкLThN m'4D=Ys`;UW!}STv{?i y"Zr38WhȝsViǾ<}9 oHԱCC8=?Zplj:H"^^P _|+i5H!WL YXS+96]m˙C諺aQh}Q@}(V6'N6UЧY<*Ʀ& ήYs|8:Ȥ]L_) cT!a*M2εo"wESq:f8 2z.sJ3;owHe\п 9I-ƕA) P f>4*T ,iUMgŸpR.=N xPp gaOINTF| {|ɜ[6)e!|8_ԍ,|00RHBt4@ ?r"2Y=!0H0 t6,8*GV_sg6) rzhXEt |)=_Uy($&.1#]]L6Ю|JhVOKʮ2cMNSsDa 5;D+.QW !lcj}s_$K0YNFêS_[a/}Ϳ:BSG 0 D]aƾp]BVC8]mh4ezyF吡=g4<9d: 6ႅr]; g;9wZcp!ЉMq.2 }w}HFkOex W*65n&? ՘u@Q)R3 I{nK)R- /U9D =RO?WYV\20Wq%Nw&*W{E&'RKK4d@ЗD%_&kn@IPyCC+RjɏPSX;?YLUт&~xt%Bw"2-mºi01ha),;<}]o,1-A}DBYY-Z7 p8;jnX@qn_{7* Jtbgq!9^]#}'-1feY_ZC XOr*nu/>}l oNKPipccP|z (My_h ?iti[126S+CQgX SZW%&CpT'WD~?,’"$' *q:`tB?r'i pU`ρ 5f㐒.dsO \,)OV 58."o'*vʹT4j+˟6>6}ڷ났s3/T}fʜ3d4)d1~j\DY kM>X#D4)&v^ 5"Dr{ o}ax|}}Uڲ4T/8>y0. S*üqib MN2Rg7 ]p(d"2YwE0hBytӥ9zC&R K2iT8976ZWn.a4=Gcm’iM%2-sb 'drIȎ>v{b/]iְUhUQڊt:n>ڜЀ{ iRih,6h 8׉)۰n3SZ) RM# ~Ciw=Zk7y/{3#t:uj+!'/lMx6 zv&`]UUYmW XGq7Ƹb z "@2*wzq@y5^~B@LMv=,JL4 L~f+ua ceykY G;=|ԑ܂S }>ubt KfX2Ԉ5 ®wtkbxӠ› pՏ endstream endobj 44192 0 obj <>/P 568 0 R/Type/Annot/A 44193 0 R/Subtype/Link/Rect[93.6000977 483.230011 329.088013 502.910004]/Border[0 0 0]/H/N>> endobj 44193 0 obj <> endobj 44194 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44195 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44196 0 obj <> endobj 44197 0 obj <> stream q /X1 Do Q q endstream endobj 44198 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44199 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44200 0 obj <> stream HWkܶ_`W+>`$pPEwCpw厤){Di$zsy璼[ o޼|o_z+*B$Q*X(3O bpVX '=]UJU=}p%lhH34ɲ8g:LGҸH"^7NrB""ə6lKlw+8|J6_?.a*QK˧@A 1d-kxހޏ#{K,2D 9ց61tr#t.,}!+!Xv}.,AzAzIzIzIzEWzEWPxB}O>%ԧPz3B}>#gP{sB}ׄzׄzϳ0Ձ \bջ׺|.,_p!PVu1d= µ.,µ.,BZAŐE\+׺׺kZCs \b"\b"{k] YzϵpՁ$\bջ׺|.,_p!PVu1d=Jµ.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] YzϵpՁ"\bջ׺|.,_p!PVu1d=*µ.,µ.,BZEŐE\׺׺kZCs"\b"\b"{Uk] YzϵpABŐw1`u1d] Yzi걬n+!G8gpMRfpd<򏿼yOIPE<4 Ԧng~hʡN)烙t ,@7_?S+Ǫ)g6 )CUf~LC -+Jhg+ұ8Jؾds HjNF?$,DB38d/y'E2C՗g3nnaia$4%Nm{V5ax*I1鷱kv+⹘#ö y$b/}[VਆqLVxUKU60pp<^bw4q2 ,y3{n58<9A7a( K]ƒ޾Y`V|i2<ù y 2LTl ey.2iV2؇)yXzgsGL.kgLQ>Q 6!knW5qzߋiw3/4h :?߅ V:Ol@-ްQb=Uqxըm%k]2aMC-VSy cVD.an˖ѻ4UvE8dzNkitx}۽su0|EKWz3= L Va"%N:Ege+unE4~mKO]k>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44202 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44203 0 obj <> endobj 44204 0 obj <> endobj 44205 0 obj <> stream q /X1 Do Q q endstream endobj 44206 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44207 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44208 0 obj <> stream HW]o۸}ׯ $%bmM7mƋ") VږW;(&GvEjt|HRs٧^_~9p~_߼=LK2ANDPI]DeDgy.ռE)N$:02y4 M4I8#Et7)Z)WeTLG15') -Ԭo97Pd,\ݨ^|n^9]( U@IMP{$('?'w_b2# z3\D:M!G{ccb,dya)kg,czzzzzzzWzWzWzOI>A'QSD}Oi>Cg Q5^5>,CLc#1 a}̰B>,ĵ>fXq>p-G\cB\c\a!rĵ>,ĵ>fXq>p-G\cB\c\a!rĵ>Z3P qV +TcB\c\+a! ĵ>,ĵ>fXq>p@\cB\c\+a! ĵ>,ĵ>fXq>p@\cH"1 a}̰B>,ĵ>fXq>pD\cB\c\+a!Jĵ>,ĵ>fXq>pD\cB\c\+a!Jĵ>Z3P qV +TZ9tDg #L#0<4!IdޝPWpuFٖ~?a!.SNJl:ITߪIR(BS7RJl6UUIeV4Ӻ\jpjKQͅ6(M&8uMYM!_sūJv0e&`!:T_e׌M]uR9J)+´;i2`**$wuV+1h̝* /BUQn(lvI&(4u"[G!:PGe!ٲԙԑJiQ6'h,E_N Uք{ [瘠>W̾<(TrԿ~ZjJ/Jl+Y^m!.(x.!CCl%ukkyL>,hrk]4l"iJ0qDp!6n6QySxŁe sZ(`c.`rǻOUZ>kiҟm3䛦q>^soj,Pt;bۦ2 Y;Ug þXd{?B:u A[%p0(L}&(Vq3eiS[|/ %3;X(H|B~BeU^Wx@'.|d[m35ݶɑC58A>"Ph !a)9E8eN[!0qjؕpbi4bLV~+nTM?psmOދ0`^[gAw&zUҬ gYc3e/䍍I~jhb1˵.[#3)R38 HHͦH:H8@ Im'&8cxsrYY|\5Y -~O ÜFQXs3:%+N +g,XP>"Mɢ ]mEAЪJͩ 6'xLBon3 U/z#0 :z8XWya~8ǿS.^Nv0N;dN(3&Ld3_ue6"7Ŭ@4ɋ9yB fXSYZcR] " ѨAI:zn/ZG*BJ`I60W-$0GWLmGR`czwA1&2k Iz݀[_Xo{rݭt.3BNp[@vt$lPARE1ϊL'x.d@-DKIKS]+|:k٩/(Ek Wpe?| w+7XHF/ڬF</H0pTR8\٤ |36#$8d҆B)*$1 ?&׏ǀD ٔZM!>EQ”M1iVPhm9|DlbďL]֘h@t3ukad Xۣ}eǶ|*=%|j3TIKM8܅H9s<ٴR!MH񌼦MA4vB"ݢ=?WڢdM55_ooݿz̠9!{B㨋HAţ-Kfe|^o>d #Ssb:}Cg ~a~hCNu80QăKt(ifzur Bod9X\YQR"oˋ? 0ecendstream endobj 44209 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44210 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44211 0 obj <> endobj 44212 0 obj <> endobj 44213 0 obj <> endobj 44214 0 obj <> stream q /X1 Do Q q endstream endobj 44215 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44216 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44217 0 obj <> stream HWko6_9C(qi4)l'(d m+c*i(D^Ou<乼=/7~$7?xzLRK&Fđ!'Kj/ #Qe)T9i o{; & HJRABvGׁ$$"&֝û暇{zUϪ}.W 1?yjM6Ayk{ a$}K@KEDy~V^һ.'8,4˝ƀCg,LBekgoczzzzzᨗz騗z>DԇQ:#D}䨏>FǎQ;cD}O>A'Q:SDY*#1rژfmL\6,ĵ6Yzǵqiq-G\kcB\kcw\ژf!rĵ6,ĵ6Yzǵqiq-G\kcB\kcw\ژf!rĵ6Vyqiƀ4Uoc媷1`!1B;kmLkZZ,DZ4 QV 1`!1B;kmLkZZ,DZ4 QV ʓkmL\6,ĵ6Yz,W qiqD\kcw\+ژf!Jĵ6Yzǵq qiqD\kcw\+ژf!Jĵ6YzǵqU^4UocB\kc媷1rէ4MSIhfmwwI=x'>ShDʻoJ͵ûL;u:pl'՚}\>VǬ4/QM_KfųN}WD7_vmѠ??@$ӉqY/U[0 "Q4rӟ4JM;ʪCƷ,ht}Vij2,'p8flԇcm=<[Q5BшK>nq; #{͚ҐGc=`7.xlxkKvꋻra?a8DzBYt&*7N<`4`rȳ^AO0uqۃXݸOyWvb<ݎ%$<T!ɯ풀<]HC!6cx:(HI]$9tz\ߞge%:Y>a KsvjwDg^CStЎܐYT]¯\g0 <4<5rfșNcx"IU'UM(X~H]&9ПNCAYDjLģ2L]t&;VLw#tj7k 2a4NB(cB u2,juTod \HPDdH!Gkdx}Kd1^Y[p9kyi+oGRXs5;8F,88P7fy$s7ɧn?GWES3)xA1T,w>}sͤhy3fA7ͯǮyEw3EVUSy0 ړi"*'p/e9: jyߴ90}ҒWh ${Gsfs+"1kMu(fy`"!;KB?X]2`ɬFc݃"i7k kzˍ0T)3#'hO89N3.@(OD/*8ך7T\$TDߎhQ% !Y~ 5 G0f+q3>q;03|BSP!,.kE+uJSW$ Zՙ+{X#<˰|Rtb"Z/q f82ZH=ZRd5٭#}r`4|lǡ#uC%-2cw;jc,ˆkyb,bg1>E39P >r 醯@2~9{n%.85? UXT(WE!^=k(tb .7! Ԕ)m*y߫Yq `bxJ*jS ~ g@g9s s1E8(| uߟx§HlsWMpڹp z9LcYN G2PʞH՘gC,(ZU9g& EHJ3sPvqYM#BN%|,;wxE{j^6T sPp's P}r s_P<9y6'A8ߑ_U[]/ LS.Kj;򡁽&P a*m{#Cd0v5СCjp5r#QڿC ={ݐȏZ!ߌP^aF n1iͽ#\w ^-7:wOm2mI5\R9hRu2syEka~$]`?'7a .#sڹ3I(R(_I= ._@("BR>'S}*#> Te:OU5zX_ ʢ%Rѹ@UR*l<9T40%'d]au9,ƳN X|,Kɦ0R˜_?#YzTM:A\>8`fcXoRϢlts{;h> Нt4ÕV1:kc{ۮޟV %Fendstream endobj 44218 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44219 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44220 0 obj <> endobj 44221 0 obj <> endobj 44222 0 obj <> endobj 44223 0 obj <> endobj 44224 0 obj <> stream q /X1 Do Q q endstream endobj 44225 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44226 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44227 0 obj <> stream HWێ8}WyѭU  ]Cw(+%-Oo~IYAGTuH֩*=>ի_'Bo~z0\U,E897{%|NiI[sm톜9|Iެ5(#]RJ*R%YTrb`r c\el­g~+ǟӦޒ=W4}wyan4XQ`}}hj2N(PҘ9qg(ޑlIR< ~XIBLcè@Mbw PŨQ Aɇ6@q=s= KK+++R-GT6i>R-GT4 a# mD mmBT4*f4*f6i>R@T4 aV mBT4 aV mT+Ն6@! mT+Ն6BGjCՆ6BGjCF!# DHDMb PjCFCFCՆ6BGjCF!#JD PjCF!#JDMj%(DMj%ЦQHQmhЦQHQmh(}Z66iT> QmhӨ}hӨ}UU% psLެFֻ~YNrUfIۆ: sSoK\n vSgnSW=a>O^ beڜj\}XC &3d;ZYgO;.gn8\f qé2\ьS P2e?S6P>|&FD1hHTv[3\ohw?#ٜE&9#=\[yЌe'x& 6sƨ ɒb 6 mʭ@=˂NfT0?Ѯ*gN} ?{aA\,WKw8 nu/r>71M)EVr11½ ޮ'7q?ˉV\5tw6Cwa9psh{6: %f9,F?~)dޏIb7 2aJOַ2Ұo 6pvvns98ç v ]h7Hr!rcGJBkoAϊR*M=4h76CW 5uA%gcoU^r.[L,C6VLWkL(³qmCr(y vȐY Tѻ/ S;6OL\o9G"@3,̟U7$2\'aLoحnh7~Іz74{GSENsPMkKґ]CloeUݎm{9 q}/L?]7@TϡqS̟|[:9OKQSfbLD$YQ;Mlm@E=Z-Gxh^;;IA-<1S"ʇL¦U / SBJ/+7y,+x<'rZVˌ! zle&(!27A)ۑ|"PEʲ.ܛ-0vYOBOuNvȌNa8N2ŸfDiu%cp ܴ9#%}ɴgf4_?ޒpB`DMn@2 e@՞b$ y?Rl$h?@2A|+4M ȦdKdw?Hg"P -IJbjμVe 4Dg:ѶwpK%^ II@̍زovJ9tBzqWdT-  0} ^n3r1fxn7݈iz~קSlJ  9hS|olӤCML^,ShD éLs7Ns3jM2G5ZZ(YY!|6&?8b**Sl>$K4z 9UAuK\P¡+xnX*>x[hؙ9̉Ecs܋-[L<](9Ki‰7 &06enw3ࢅ 0R7' ěa5%7jj ޞV*V)oiMp)|u/}a[ EFAgM)OAy**~>rT .G,Q:5mԋQx/ؽLhOjuLP #m6h k$˓ɂ}w <)>ۡyZ(EzywЏ5BC/3-Vx%|npn޴#9]m Wd7)e)EtY6 -m!ERt!Er94 ucK"6>4bUO+?ƇX^0(cHAWgU^Xf:׉zM},=eTQyɅKYⓕ|. WmBq!zj}8B'KZ &5]-0:O0]x.g9Y1*Q4p` ҡCyG5qȝ#F); Z@<)AYQcM/EEGN)BJ |KgGTN˓&lcN=9-k~O[f&2:OOD1":a[Jfqb I87n[ ^/UyNzr֞]䎅D#dUh nfUmn"smUԒc}w ,7\,O8<󥕛x]Zn۞}wF+osqc4>$^8 AO4 v!\ē&-Zy}  $KH" ,{ s R=xXpR]ͬsHQ|KgTٖ4<{Η;PL#Y6$7nXXS-=QR_5==˱?n(Qѩpn RKrjiLvusj+Z*li3U |J;k[CR.I\ 5evaSo/C;J5G7ڨUQ7ef6W(ك"U`#yqi|y G>=()5Ueͱ~e{Nt/yO{ ޫMbΚ̕ϽYΐspRorO>˫?^O]endstream endobj 44228 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44229 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44230 0 obj <> endobj 44231 0 obj <> endobj 44232 0 obj <> endobj 44233 0 obj <> endobj 44234 0 obj <> endobj 44235 0 obj <> endobj 44236 0 obj <> endobj 44237 0 obj <> stream q /X1 Do Q q endstream endobj 44238 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44239 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44240 0 obj <> stream H|{oXVq|~dBC2#Ѭ(jumgUtWt8){Ǥ'o5y"b[I g䙏Sg*4Qbn#kj|f^USGgnqt2WX3J$1)i0y4*w4}uil7Ov>h)mܚ_\ndyYmm?ݖr&dZ/qv>G mK69]ycgMJޙO_smgK 9|OE2R{J᱉W&Ko'5rY]BcW \2:@z;ީ*JAz>*} ҧ*} ҧ*} ҧ*}g*}g*}*}*}*}*}*} җ*} ҫ`h6ZKJ]:إK\`j.^MS+5vjjZ Lҫu`j.^MS+5r@z5Lҫu`jF.0RcHց@z5LS+5vR#ZKtz Lҫ`j.^MS+5r@z5Lҫ`jF.0RcHփ@z5LVjz0RcHփ< `j.^jS+5vRcN/5r@z5Lҫ `jF.0RcH6@z5LVj0RcH6J] Vj0RG)ZKJ]:إӗqY$ktG'c{5&K>+dYih4LSݛgKރKizA0RRfI]%5>Z}K>KMz@Ƈ&RR`{qTX^j|,z/5>}a4Kj,TS0ۓG\1\ yL}sI;/8,Oo?<I2̇vӸab=EǙ]0AahLʵ<֘Cy՛2Z,̬^mj]KҤ6^O+[+̤d~ĬoCkW]Cu흙Ԝ>^߱^1CRIck}*Kt>dhTg26pǓf6],`aBAыW 6:}u嫋3g<^hYz(O=o4FI".wILh ,/{H 'hr>?@"vDLtߵ};mgO$F/C.^e.G&s,j+?6.^.F.cL'k&s ndv{^v@7ϐ[ Cu  .D)C4Oa ᷏>zm=X4zqw_>\7 ?>Vͻ/=QLz'G39.OvGһ[K٘..l>B+gZN?և=O?RcW \+(VX)`VX`eVX9`劕VX`UVX%`UV)Y.,KF. XV,`YrKށK]z@.RwRc`;{ TX^j,{z/5viz/5vKރK]zA.RRc`{{ T=X^j,{z/5v}4KjK>K]z@.RRc`{ TX^j,z/5v߶qj[ `AĘ?r,׏ĖaO$"")jLk5kLk5eLk5Օ$I|Hh?nW_Pg[Q;0?KW60r84}S߀;x @>{`!<Կ#K&a5$ VRڃ!Fӕ4~w]y]޼s Ii[jcEhGs~f (#~ё\ L9O"?+7NBE^ WG='i]$}N G_>=,:'_ rm:oލ>GR0wy9'K)~c,ck ADXС?y!{lN0Tp~zO$Rx≋x*$C ]}*E4-D9K(ikmP7M*ݲԛ+Xo0DklWξ-:ܪ+=O].'8끙BB.]A#^"NE޴$65QAQҪАB؉v}H5 =MbBВ=Qe$lH ̫]xxA-{5viH8o덙7yJC{Bgqi$Eh-Ee%fh9oX]4ϥZEh]v2AK'^ԭ ǑD{,4nHd!Аe.;f "g 'q#M;S(* Oc fe?,0a .l j&BqCءj *Ф8v|A];Xup-`v|Y` endstream endobj 44241 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44242 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44243 0 obj <> endobj 44244 0 obj <> endobj 44245 0 obj <> endobj 44246 0 obj <> endobj 44247 0 obj <> endobj 44248 0 obj <> endobj 44249 0 obj <> endobj 44250 0 obj <> endobj 44251 0 obj <> endobj 44252 0 obj <> endobj 44253 0 obj <> endobj 44254 0 obj <> endobj 44255 0 obj <> endobj 44256 0 obj <> endobj 44257 0 obj <> endobj 44258 0 obj <> endobj 44259 0 obj <> endobj 44260 0 obj <> endobj 44261 0 obj <> endobj 44262 0 obj <> endobj 44263 0 obj <> endobj 44264 0 obj <> stream q /X1 Do Q q endstream endobj 44265 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44266 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44267 0 obj <> stream HWێ|W4 $ þ" adіwoJ2\&hTivgzrϲekSz* `ծ~V}̨Neous>϶۴]P.'Yv=32jv]:w-T:2lM>DMn-JS$Q z]^o&/uW+I/Ow٫q]kźvqG9.}QMC. &h/O^̲\r.6@?dN[9F?\-UVBu򊮛.`ՁsjɩN8F,"b`qH, [Vwp{;^p>A/B/B/R/R/RJJZ{1 -6S1bI,0#t1bI,0#p/ւ{1L-" L-Lj܋`j9F,^LS˱S1bbj-Z Skr,rXZ cZ0dL-Lj%s,rX=Lj%s,rXZc:0,0#p/ց{1L-" L-Lj܋u`j9F,^LS˱S1bbjZ Srly0#tϱS1bI#tϱS1bbj=Z Sr,rXZcz0,0#p/փ{1L-" L-Lj܋`j9F,^LS˱MrX=" L-Lj%sX}*/^.6Yv=9e63KtVM6yK_ه5<'[;bLfVMrrj5#_m?Ǘ{M^ev(lFe[Z֞LT:գmǗ2wX5jOvu<-zz⋯Vӻj㎷na붽W۝2AŶ_6áQsB*+/YM7D1f`{Ye™St 2TC,偖ZhyVZhUBh@Z%*V JUJhU@Z5ЪV jes1bI-EZFheZVhY%roA9F,%roA9F,%roA9F,%roA9F,%roA9F,%roA9F,%roA9F,%r@9F,űȽȽKMYB cZ"ccMYB cZ"cceMYB cZ"ccMY\˃sXRcT ȽH%rA9Fh{{Q5Z"cTȽ>%rA9Fuh{{QZ"cTԀȽ51bI-QZ";EԽ#ܼ~~XQs#n vzDCtG~:6M'r>ksb?y;mU(n|oɣC߽yT=V9ۡR!X]sڽG?rc[:Mm _]qm|emq^;HIVlW}U'~Z擜2>sˏ?3r4/Y5` -@ @+hBZ*V)JU hUBZЪV-jUssdqll)KheZFhYeZ"ccLYB ccLYB ccLYB ccLYB ccLYB ccLYB ccLY\ˁsll)Khsll)Khsll)Khsll)Khsll)Khsll)Khsll)Khsll)Khsll)Khsll)ky{M3e -{M3e -{M3e -{M3e -{M3e -{M3e -{M3e -{M3e -{M3e -{M3eqrϱi,rϱi^4;wWR&vvʳUա5j\N/aGpE}.8֣l2jZe/yI.9n&onwSSMwfO^=og.L~)CլO *9wWWku烱./t.VnUsPg#vJ&~|?jzߞE:mŢ}l3"Jq=[6ynXa?x?/[un{'/LvqJϿmYTͧ[7 <'&ɺ猷Xz.>;\A.Ww.OOo?Dd\Vڝ^WƟ1yN>O1ZS9K'{OG:.W6Ⴋ}8~7㢛7>Jg 5'{6/yqH,E]%y}x;U Dt6(ȱm9EߒzJ7$%8+9ogK6XiXo C:]Y7CD}ߞd>=:crC4!8r(@9{+lKa9Szu4y`mSUP]ʹ<̧p>M| i^1]Ov[q"Ϥ,4U,J;̀mn2WmXW$UW2؊MIo{|({zo[_qo*;}]ٶ!,qVh`DM0b0ɗ'h܍BVK5gܩo36>WoӠ500Z\C: d;i2{H/槐2^H[HwHޙ1gI ;"G"fccIK$Y„#g=l3%=yV}{:~Vƹkt(x-5"U3A}Ժ'i]=ؾgiZpܭ9,{X, ؒftUMo6z0{JQi/:CC;ZY^xJ  ]󣢮_nT0i>] sP}킗cDWo5sO(a!nv Mc^Hw= ʻk,yQ/TGɶ zF "RAkz~hOue~wOP!Bn$1 #WUv'W}bg9o2qE[d ίȒ>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44269 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44270 0 obj <> stream q /X1 Do Q q endstream endobj 44271 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44272 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44273 0 obj <> stream HWmo8_6(|DbKhELmem%P/4Eј=C>$ >ه7?s  d*N$Kv.m#ξE,:E]>j]ʍw쏅dyV1$YfaLhd!'`S}O i>%ا`3}{@-m"I<*dm"Tm6 cbGJBQ@P-P-y>P$TmET+ bbGJBQ@P-P-y>P$TmET+ b&RjͣB(BQ!{l=P-y>P"TmETbbG*BQ@P-P-y>P"TmETbbG*BQ@P-m"M<*dm"Tm6 cbGjBQ@P-P-y>P&TmET bbGjBQ@P-P-y>P&TmET b&2jͣB(BQ!{l󨐽q7h.7y`~q’IJ|.>yVXZqqpXE&\Qʗle@G}]/nbq2\d3ozrXvE׸-u+_W}R?]tc.1m2i8yt۱rܶ[++|(vŲv=[[vX?9X [ otEz!S' #멓\zWjc%@On$f('7\jP9)v|_fXmj΀g@ ϝh 3n/_?^%3KeO"2Lܯlu3US ~]iF\ ZmMG ebxQ?A,}}ϭU DNAŒxcB1^秜2ё5iک@1ƩzT/cd'buY}|N쁔FIқc1jnR=ڒdAVO\.|R Pfuuh}pG^T yqQ^:c|`a/#<}.: A7:7GB⪋kVo#}X}10M3 Lׯt*qqH%;*mnۃV#CؘD40Oo{%bߋ=Vi: SP yO<) ԌvHjȬT0&3#ã<E&+ 7݇Ai?41 -8ĭWm7ta6/׉/kݲl>}5e4weC_~Խ}u0R37~_N@E' 3 7 g!8<}kP}_ͳܾknkiCz#NiGW̥BVR!YLF:x!+S[sXuOjlw> ۺwg/]Agi=s榔`߭zXbQ25;adzp1~zp-bdrJO{_84-DWc E]ӵAaG%: Z7ti#Ƿ۠HR{ wxL%k-%Ųv;:Rݧ µBIF#"MH`:dU`bW۪sv}rPMA/cb<Bs̵<-sYն\”sT+w

fg&IOx~U(^E@66@,G4Y$%9)39hTΥ]VCI 4~2ch2Hh+XJ ^.}vXS +gDYŽ\x;.n.ӣ$IzmHK+8: Us|^PF-V̳)׭ܠ?|ĭ^cJZOucSKP2ty:~Əo&>ET;Gztn[lpO] 0@Th mh1PiFә "=LmA[")huȩb))hΟ8gǀBE ?vvi]= gwiJHK3-.}dgQ,g&F%Iu0FP+ݪ2ku hJ~@`15!{O.Q*2 f0]0 :f8jߑ{Hy^d:.A%۲葩e~_ffћ"@_b)e=l=yY@'F_=,"Z&E֫$`0y*EWjR5b}xk=-gDAˋ,4<#39EٸL[u3|ݙq-fT 3j~h܌ tf[֣ ! 0\I [{%zщ;͛z{xmSM%Ib MgB@TeYfv }VrQ&VjLU gЈ vmaK:VN6[" 5Oӵ/3J>ZK{ <_8$D'AUj~q?ek^^[̴endstream endobj 44274 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44275 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44276 0 obj <> stream q /X1 Do Q q endstream endobj 44277 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44278 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44279 0 obj <> stream HWێ8}W tԼJ"v03 & >tbӱ2Ա~VIde]G"OyW:O7o_~8/_$_Sa/53J3LFKꄳω`Kn޻CU܋МNՆ[>ur %2 1Y >&w[骦fWϤ+aR{qf"k)Ҭ#u/OW/{eSS UKgš\`W9„MT*#0_ ٖ%Ve4<&6mbMȱ1UD 1dÅY,CBBC XP/#P/#P"P"P"P#P#Po"Po"Po">g,RH}N#9>"R_H%H%GiCHµ!X}pm!+VbȊՇ׆k%C>r$\b"\b"GkC Yȵpmpm!PV 1d#Jµ!,µ!,B}ZI6ĐE\+ ׆1QkC YCV>Đ1` 1d#*µ!,B}ZE6ĀE6ĐE\׆kC>r"\b"GUkC XkC Yȵpm!PV c ׆b!,µ!X}!+Vb"\b"GՄkC Yȵpmpm!PV 1d#jµ!,µ!,B}ZM6ĐE\ ׆׆k5C>r&\b 1dC XkC YCVަZ8[47:Y{[{B4cYfܭ>=u+Q8ׇf FJhGtqf1Yj_MsZIx*-z\mR-CO X&Or(\w*sy*ιQig39 aavږut것ؾ9lQ@0I ;sˮڔ[YO[y9Ss/CA .s)ȌȊTgV~=EJ<;׵8槦C\&W}B4c~;#hTvT i݆p9_ظ?uPnz}9.sz-I/3o_?^^bZZ ,j7X*3Nէ3{{0'롈E[3lz0r{GK.9.\"9]xc`_hՍ.R(44.Kdjw1))&\B&qq UC\K!Hphj(bi>-PB;"Ygޑet:B-32,-NqZLчq" ƈB/3im.d?d}̈́M-dWԍ}TŔNOPX1~d&< gK+װ٨up7z \o9+We?8yYpӘԷ~4~ߜ73XaU]0lT,!ElNUAAA|00-;#LH XPܖ6e%F^Fdie2EE癗i$e|ʽIF%ȏz")u$S#0e1p c ie.@sUHN,ȑ`\Q,qIiQ&%V&N+,ah[5ù~3"c`/=opmx 4ԧi& ٳc[mOd"/ A0X"J/RK k+s %*ewF6lE'-}" -xN覘=Wã ,殅|~W6\?x?Kbvme00LWcT ֦A.p@ΞyyKr mRxQaN5"XXIy&}PW ~}$`Q Tơ7% P_9T:pX3-?͉Ğg@16@{Wy }P= =BЀ%@hߛ0>C2 |Jds^Aږ)!BZinM"b 4M&H+by4/.aN)d_)I܎[$/e`! 3$%}x"-TMNXn{&Iq23c=,ɒ`gYI%E:Qێ2}; ~.x㊟"13hȮgq<5`Td ǥaJ9 QW24UcgYtz19I{ ?nv: xTuGnw7T^ݪ]Fa˙Z/MQJHR0IY8,&aF,2wd| uUc]Uu՛s`oUp.;F@URVڻjߕoݮtcWzsdUO!,Ĝ3bXJu*Ѧ/K =B\o>,E)RIRIIYLL"JH_QӘs2fan"CK=:ޢqIS9Lw1Ș5qQ-ϒ ˙g떵Z3k e=Rֿ2Gѳ%1F a\b0VxhP(R(ҷkAdJsvU~Tuw:\ b]j:ňѦO5^Ӥn6FD4ERbT bұM br,SS22C2GșMD`]kWed7#4޾È1>Z\d犫9-3WK(x|wy"@C@nq^;:}qհ&Q;W2Ϥӫ0a̬W9b8efia| {'Hci;_sMj>af }ԒMN&}}U:TǷc0JyYhBE) ys^է %d~ʮJ Sɐw:ji5)Tf3OhO]bwh^ȤF7y f̋kt#,\ O_ThA x>f˧vw 0:|}8endstream endobj 44280 0 obj <>/P 1198 0 R/Type/Annot/A 44281 0 R/Subtype/Link/Rect[93.6007004 220.429993 223.080994 240.110001]/Border[0 0 0]/H/N>> endobj 44281 0 obj <> endobj 44282 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44283 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44284 0 obj <> endobj 44285 0 obj <> endobj 44286 0 obj <> endobj 44287 0 obj <> endobj 44288 0 obj <> endobj 44289 0 obj <> stream q /X1 Do Q q endstream endobj 44290 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44291 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44292 0 obj <> stream HWێ8}WQE`L& 0=;:@X-y$9II&+bEEb~xaσ&cV0-D0DSa$ǀu<[ǶOjmk~ga! 7I KInNcVۡnpu$" Qԩ8'q"p 4b)xiD6`!K Kc$l ݞ`ρyx Y~oI ($~OA:(SSDx ׆(:(|cCTJ\]8{9{^x^x^x%^z%^zS}O >%ا`y3} >'`{ }/Ǿ$ؗ`iumumٻ6@umٻ6D]պ6D=rB Q{OPkZ׆(ZNֵ!`節um"TET պ6D=rB Pj]j9Z׆(ZNֵAֵ!gEֵ!gwm"TET+պ6D= B Pj]jZ׆(ZAֵPkCS TET+պ6@um"{j]jZv $Z׆(kZ׆(kC޵PkCS$TET+ պ6@um"{j]j%Z(B Q{OPkCS$TEֵ!`Vum"{j])H պ6D]պ6D]|e\ hnOM𐅛=XG3|JgaE n]w7r*+gaK7J5So}ߴ;em;}0T{Iqjz'荑ШǨVS2Sjm }'x uVǾ /_Ȅ<27\T1'Q}: UC6: l-Bh{Su&lHq ЉGePq3뒜yy]40Ʌ>${8cbzr$z2}{5Ô&r:fwPo!C;o܎ ܜ@R޸btW@"7nO Y{"af1ӟ_KliUE?k=DAOgf՟q8C\dp3NYQN΀*̎7+!cPlr5-*$ yw7.UB2'=>L4HdXS.nDI$odX\{ZB]J>/hZŵ> l s8clE X̗#Ws8Ō1_p9$w-! JL[cq39U.BU%l.D; ꟬}vGfEc@V9Pg(uޭb]pnyȝA4OqV2TXiX7.^–Ӎ#l 6"R=N`1Me-PL_֫+Y>$ {0#Ė IMYU$[V[b}zRE|'^~Z`VzBҁX.&$4ҁ(bA}ҁ)ᦥf[X\80MEŢGK4hE zT=p@4>FxqGyg+p-[3r^>ux`t]*L%Zv,gR'enzalmױ{O =/ z#EuE+~#ԒLUf_8 1ϳ鞈,b::|M*~'7 u %UgáHf Ÿ |s3CGH&K4v|xa:=~1a_ߏ=o0L=;8,E`l#RV \Zx9=Vw(, ΍yrW7%qDETv=ʶܰYvsXm%͛>䅀wn<1if\NMp#0X7YmGUEmYZƢŚS>G}T.N%;DĊ䇍5isw"SvHdnML5(W\np|˝W_Cl\.]DkYTTL品TB&+ T<\UTHt>xKG ֌哦pٓ"P Y9:Mq\Rj\bT7o_!*>fLD(o*0'Ltjm#6TFYA% ^Pic8V,K2 %3gTxP8Z-99WmhUּWGCm,F F4YPVs~AY B(q=:ǵࢠ$W]#*G=ZpG(Pk;!BE @Q5BQ<[ՂJA)(VUE9e**J8:9N?GE20ҌR˜ ex EEtU8-BUzpQzaTe_ejXo1 &1 gv Rb=$Ff=Ob=Щ(˚:)^cC(/sfy'+u(detCi-R0T[FcZ1J svs5ǣU,q%hYrlFd9^&2RQXNP(#$exBPl.ky s'hvAbtw\ YJ 5ڑͷ<ҨFі|\e?*1c7bG&:Ɣ ̏#{u+õ^Պ+M vd8 6NPzRZNBrJ׮rU"$a9ejGꢭ3S Y M=.uN{3>q|3)my*7w ?ó26֞QǕdn4K~OVX؞w @ 1<͝w *r/yw|#hw{ځ:f8qqڑR6a{Q A,{>v`GmdE4Fme2NWjwXjXmnU4Gpw#3endstream endobj 44293 0 obj <>/P 560 0 R/Type/Annot/A 44294 0 R/Subtype/Link/Rect[93.6001968 663.229004 206.304001 682.908997]/Border[0 0 0]/H/N>> endobj 44294 0 obj <> endobj 44295 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44296 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44297 0 obj <> endobj 44298 0 obj <> endobj 44299 0 obj <> endobj 44300 0 obj <> endobj 44301 0 obj <> endobj 44302 0 obj <> endobj 44303 0 obj <> endobj 44304 0 obj <> endobj 44305 0 obj <> stream q /X1 Do Q q endstream endobj 44306 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44307 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44308 0 obj <> stream HWk6_}^%@; '!jwd˒֎?zh{s0֢jJ"%M>/U?Kd6Wit* NV5UuU])k~om5J5ut{2\N $Q*@SeI*~_zS &~adT-w7ceݜ?OsoȟJM(QMO- i)_A3QWumSIrn";6H)pLbQ Xp ,nb{[e1Np{'w̽{ =s S>ܧ}*O }>g}&ϘLp1>gs}/,F-ŶRK1dqZ!{KH-Ő%gBj),=KRK1` ,VH-Ő%gBj),!C ,VH-ŀ%bܳZ!C 6rBj),bRK1dqCwO1` ,NH-Ő%guBj),!C ,NH-ŀ%bܳ:!C R Y{Z'bܳ:!F^H-ŐS XBj),b),!C ,^H-ŀ%bܳz!C R Y{Z/bܳz!Z!KpRR Y{Z/b(RK1dqZ!BEUf6z.SF-osTFWr]EZ襁*Ň#Z'j=mWmv~;77Uw{\;63ms;4 U5Fr̮Vgr6|iƏպlJPkZxWo?jwwݺ~ۺ@oN +5N|b9J(4dősS~I:J.1by)Tib6}; ltZv[ˍs\iatԦ*A8\\.vM~D& XӐN$:uGNxO͋."0afN9v(XW! !?6d$&{-vz7YǹF1^)[dk3w\:\~j1[ f e Nu| Қݵi;G7le10ӟ?T2 H˦qS 2p6&fb~'t gx$gPN0}!, m"31.A 7d\M8擔?l'hu ¦6Uo](VDV4d]xL6o)Ͻo9%7Oێu3K%ӌ\xBIXp-D^;hnԔvu|u٪~u*؇:=Ps6yӫ?aC_9O0u; Zǚ0Ѐ3X]k 4w[2u3~ix 5=y ^Yum _Z'FczmbGr'XVո [Xd3 3`yZx37itdX8Fx89%ELkWK{S+I"cC lzv8

GMhU;8e6InO'NG~5N [\nGCa:!~}[URvwztx4u|sPP@7]/Գg?޾]uP=-,8h>ڲ Y($hgÌ=؞f{ecK7y||ttuu$j'! !m4K% RLM*χXA ;pd$tOͻPǝ ,2>cW[0Į2& ʉ~L8&!\U bBƲWG`EZґ&te-iBDZEZEZ9GZ9GZUDZUDZ%UFZ%UZZ!X+İ%D%-iIBKFZЊ|/ ߇}!Њ|/ ߇}!Њ|/ ߇}!Њ|/ ߇}!+ 1,{ }aKhEWC ^B+"|bXZòЊ|߇V{E>İ%"+!e/^1,{ }akbòЊ| ߇V{M>İ%"k!e/^1,{ }aKhEׄC ^B+&|bXZ5òЊ| ߇V!+ 1,{ }uMYys~#D$E"dF3L_*L?vRAR3 ^PprHXI$[QcJJ*B,T~ڀLvC6Ƈr`b) _+xc%ICBQ"W,tTTn=Nt N_Dh} 'Z8n=2¨UƵyPo/GyjnV1 Ga,ic/P\/lsǞgqhTxTvA҉l[~P3 j?c 7#a)p;ƙ*L6:93j= Ь,Y1?/)P3>|>A؆)|6D| Wz\An'~Nәrc<d9f-輒*-s ff_T_:{< ?(׃VN㑱6D88Jb\r\ۋĎG6oÝo?Warf:gnoOs߉&e"rlF<q3tAB^ٵop?2JJ[^w44e\R >WǗtv.[hT0xux+H7Ս;rWr+Iendstream endobj 44309 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44310 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44311 0 obj <> stream q /X1 Do Q q endstream endobj 44312 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44313 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44314 0 obj <> stream HWmH_ѧ9AvݕEOҀF3M˞o?yq8rtvkOozr/O?˾dkUz* `UdQ,WיQ ongM-ͺ[TN_YugO6VU_e1MbTe^zOΚzѮc5:|_d.m'g]wR>ݪ:͚ԳvlȂ[yMA \ i9[~9mWer&)}N_󏹚,Bې>Y,GMv9Qr" Lj%Xb#Y #V,ice{+[ w½p{'{ }p >p_p_%p_ %p_ %p_ p_ p_ }Eg (-ǖ{%h-Lj%sX= cEk-h-Lj܋ZZ%h-Lj܋ZZ K,Z #p/ZkAk9X#p/ZkAk9F,^ւrl9ZKXbrX=Lj%s,@k9F,^ցrXhXbrXh{ZZ˱{ZZ1bcZ1bcEkh-ǖ{%h-Lj%sX= cEk=h-Lj܋zZ%h-Lj܋zZ K,Z #p/ZAk9X#p/ZAk9F,^փrlZKXbrX=Ljܫ*H?E̷T"`EZhy偖ZhVZ*V URh@ZЪV*VZhEes1bI-a heZhYeȽ6f -{ h[{acȽ5f -{ h[{Ncr #wȽwȽdȽdȽQȽQȽ>Ƚ>Ƚ+Ƚ+Lj%8F%rA9F%rA9FG%rA9FG%rA9F|%rA9F|%rA9Fw%rA9Fw%rA9Fs%rA9Fs1bI-іhc^l=Ӻ6ʨ*[J;x]"DG|+uxp.Or-w߿[ ~25Y;߼{kt4bfM?Rn)'q0W/#>ի؈7FFe}^=p{FNkLK5gy\zC{|qt4xů;'/,f3bvfeyڬpXZ^hyVZAhV UBh@Z%*V*UJhEVZk\jqXRceZheZh[{ h[{ h[{ h[{ h[{ h[{ h[{ h;{Kjq,@9F,%r@9F,%r@9F,%r@9F,%r@9F,%r@9F,%r@9F,%r@9F,%r@9F,%rA9F,űȽȽȽȽȽȽȽȽ} cĒZQvoLuvZ 2ʫ=0`wsN('ͷWE95+ظIi]1IuZ|3N_5MW&I{M;ix uwRMf뻎ݸ veb2o>8WmwbIngl_fu5!*WT[2p3]lM߶bu66vhF>\ӻX7޻ޗ:mF7ҧSjiX0ܛ2MRǜn0J!׶HL'ꊍLr,} as6շݳ &U{~^n/u?b?>M,E`ѯѽJepl~tjq>@"H =H  ڢmz~$G2I@Гp^f{Β@,lVqѿ1e"N&b4qRցi/<{ȜyIZa9ƊBbBҪRՍ)cXѫTG"Ѹ >9“#$ \o8S21U1ˁrNFLE`i&ۚ4'(APw(`"Sg6l4F5ߋfe'0inrR :a?~y&$Ecu}%w<(9'V2=Kuj%t {+ mٴv1K<뮳Mܚ^^%ޠ.[,">qVh NLJ&>kw'x)& rfY2_g1بi߲ڥ{黕?qA/)7YYc%Kݜ1 ]ixVںV|p07",}A"@lti,C^lyAzoYw*fn8M#0/33~ X},Or?i $ \F~yxVv6C-Ѽ+ dӍCF;z>ȓ7ޟ:W]s5ۅ}v/Nd+7`k豩,<=CLH׆<~55z{ZRb)p_*9 *hZ<^+1g*W00]p0PzA md C"r{Iu$#au,Nr欉|`(]<HF" o;>LY\<<4UQQ/GeI=S!g}Tٱ8<3N\ɭnYZQ>I1vvbPШşa1`7|/Ù؎fe27s &;_-ً~Rw005+I'rv)H`0У~fpB\ ~K 4KvBu}& ذVbfxM{K<- xgtt>[&҆ 0EM]*2z8 ,>Sam'#۩;nش>lNx9yQtQDr< bX*ex!]xc^Hee\gikF{i F־0NDg| ~r"4&:<­G݈vHY1 7'VGb_?endstream endobj 44315 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44316 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44317 0 obj <> stream q /X1 Do Q q endstream endobj 44318 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44319 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44320 0 obj <> stream H[o ?$4υ$ &t>DAHD=g:e{bKYZ[ֹmͳg?x2=!OLQt*}V8kmĚ$lҼݮ4]]\֙}b\NoH&Hk3$d逅1f]{cyEWnfy3_[?{[2}y=-< Қ=MrqS3g/Oy>7KD_f MN&LLͽƔ^NjDY)1UJfVQw*JAz{ޫ*}J@ } } }җ }җ }W }W }W } } }G>W3kJm80RcJQ`jƔN/5tzVjLjjZ1ҫu`jFZ1ҫu`jHցQ`jHցS ZVjDS ZVjLjjZmVjLR# LԘƔN/5J)^MS+5@z5LԈS+5@z5LԘz0R# LԘz0Rc WSJ(0Rc WSJ)^MS+MJ)^jDS:ԘFZ1ҫ `jH6Q`jH6S VjDS VjLjjZVjLjjZ1ҫ `jI 0RcJQ`jƔN/5t߃Mb\NX3]%6?}VfI_盛u3~"~.2bV3.^7ff7u]AiÓ۫Mgn st65/ *,>\;t}~ XmE:=Xs>sӾtYګoauwnz:l\.rxq~|X\p~@q5+}%*pUfғ/[`oXͶO9q3zJH $te/}^o})ИR^xWP^*W URyT^W*UZyV^xEW^.^RcJ{I( */rKށK)z@RwRc x;{1TԘ^^jL/{z/5SKjDK)zARRc x{{1T=Ԙ^^jL/{z/5SKރK)z@ƔQRc x{1T61@RR;oǔSK>K|pS ^jL/z/tLI^jLi/1x98xl<{zy8x أ|z|NovڜNKIO4y?7.v2.w|tioWv{s O^̏wc[]7̾_vlx Uu?ʊ`3oK.g@eV䟣 [٨jO;)O/mm}8nk\nWEN+޴u&2^s, w1M]?yU֮,[=KN_{joM_kqF!ukv?Ⱀ߻l:fGج]cg_ytc3ެַ/|G =ׅ>{I7&g&=}{+[C:".WWO.]i49!!_nKcTe>)I7ݲ]qսqW{[eՀ~{ :z >OgnY͝=*m^Γϩ}^>6|9==wK.cz j6jz¹hG_V*i>BNw/,4_~<|Q̝z=w#UW;OގT5U1 + U(xʫ^*W*U) xUʫ^W"+(\ƔQxYeU^x9倗SKށK)z@RwRc x;{1TԘ^^jL/{z/5ԈSKރK)zARRc x{{1T=Ԙ^^jL/{z/5SK>K)%5@RRc x{1TԘ^^jL/z/5}SK>K)z@R/@ƔQRcJ{,_Oir9fJ\WT6  a%RK:Ȗ.L[Bl8!"ē={`7 O Dž[2j`(\MlkK=FBBgBK=\0B+e̿Skee x%ρ5Ss7FƮ7h;<ӫAlGXwW wܰ } 2a_ֻqF d0H}b0L#3.Tq1%.фz Y[jIÖZOK*oEH\ڮ_/P\XRO"`~\ļ&Ptki 9\ K6Q_64R yS؀(&l9V`v) WR<[ zsLm'xĨh/ RzD8py]?D̡746ma)s+ F _i^>?p KsbOu@-53SG5L.)+>]nVRA {**O(;9vk<Ɔ'(xO^z0 kGa|a#39|ZEL1D}+PUUJy%RᢆJgהPt/|ʁJ0U <2m'Gо땆R63rDEJ} QƅtstPz ngQPzTy=gc$L:of|Oc* Ha:σe%^ԙwv&`jwE1w[o Sz韽對[=>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44322 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44323 0 obj <> endobj 44324 0 obj <> endobj 44325 0 obj <> endobj 44326 0 obj <> endobj 44327 0 obj <> endobj 44328 0 obj <> endobj 44329 0 obj <> endobj 44330 0 obj <> endobj 44331 0 obj <> endobj 44332 0 obj <> endobj 44333 0 obj <> endobj 44334 0 obj <> endobj 44335 0 obj <> stream q /X1 Do Q q endstream endobj 44336 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44337 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44338 0 obj <> stream HmoIeR/fb5v4KvȠmV!SMRl[_<}E뒡}4ElMU[x?2eLoݼߺj/u&{dƙKh$TymEv>Mjiƿ"ܺ|yC .uUuX:jz1n=Bly.g;RFW袻#ۛMkM˛~sX/(r|G;k2q:]Щʂָܼ#s)73PZ_S^E{*}J_J_J_J_J_J_J_J_J_J_J@'^ͬC+EJ)^jDS:ԘFZ1ҫ`jHփQ`jHփS ZVjDS ZVjLjj=ZVjLjj=Z1ҫ`jZ1K(0RcJS:ԈS+5@z5LԘ0R# LԘ0Rc WSJ(0Rc WSJ)^MmS+5J)^MmS+5@z5LYS+5tzVjLRcJQ`jH6S VjDS VjLjj#ZVjLjj#Z1ҫ`jFZ1ҫ`jH6"+J)^jDS:ԘM)EG/Y6g/8li2f~۱݁8u'fit_li? ûrf-j_nzys*h}D5A(PÙ.qӿxmql}>Z]=f۫nzδ˽6wwgF)jMc|QsKM35GkB /FgWq/v,y>OLuκ.Ւofuv^9"N^utkӚad:Pa" H!Bp٤T+**W U(xʫ^W*U)xʫ^J+)SKjD9唗^Nyy啗^^jL/{z/5SKރK)zARRc x{{1TԘ^R# ^jL/z/5}SK>K)z@RRc x{1TԘ^^jL/z/5ԈSK>K)zARRc xG{1T#Ԙ^^jL/z/5}SKSKjåMS@ijElp{ofy^t߂^$xmeE)ٶ~j]<mˋv^LFt1\9E.>|@tU\~\rO zwM@F<E/'#N848~719[?#%\h;vӫvwy﷯ߟ}KKgʨb&|v>}|׷ޝ'O g>Uy[Ȏ/]Эp2z$ Ɇ[S<涸g(=19 @g[Ru̶_tts}`[G[.!Jl}@<1 }/_={?1)c~Zw0qtCVjERAvCՈKcM敭F.Wh| KW{:1~&_:>Y +xt>?(VhL%@)+*xʫ^*WJU* xUʫ^WjU+J+I/k/1F^Ny9唗^^yyzARRc x{{1T=Ԙ^^jL/{z/5SK>K)%5@RRc x{1TԘ^^jL/z/5}SK>K)z@RRcJ{I({1T#Ԙ^^jL/z/5}SK>K)zARRc xG{1T {1FԘ^ɦ/gMvڸ`id ׆,џE) f"qFny3,bqIw:wǫG9].p4rNWK0H%XU{CU atw"731,̣ϩ!Y_&uxfYoJ<$=0#oIٵJ'>R9j5:J$I2=0hI+Ec=nj $`+N47Z9r_ zIIn2 /vW qL"|b|@joE@9hڞT/YwCfΰm-1E],2 Tn{d+͂#Azr@WF=OٝuV?(AHQ?-υUa\KT^pݻ늗z%⼈`)E ;ԪN:5ñWpEIex;hAwnw1HU}Z943fn+ŗ?n,ټ ːSRE6_k'G\iM9hFq{GpzU? ddeH슪 Ng׬ qendstream endobj 44339 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44340 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44341 0 obj <> endobj 44342 0 obj <> endobj 44343 0 obj <> endobj 44344 0 obj <> endobj 44345 0 obj <> endobj 44346 0 obj <> endobj 44347 0 obj <> endobj 44348 0 obj <> endobj 44349 0 obj <> stream q /X1 Do Q q endstream endobj 44350 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44351 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44352 0 obj <> stream HWܶEgJbk4p#A@ @*ٕ.Z_Pp\0΢>O8ׯo}[&W_L.aE8nX"F빧d+-BSxw[x9Rg}g+̤```,sG8CgbK9q cN1`IY`aR1,EWzEWzM׉zM׉zM׉zC7zC7zKzKzKP'sB}/E P_$KB}/ e]J´;dp-<+U1`Řg1Yzp-q"\1"'Uk1,µ,B}ZEcEO\b Xk1Yĵp-q&\1`Řgjµ,B}ZMc"\1"'Մk1Yĵp-!\1Jc Xk1YzyVc"\1"'5k1Yĵp-ƀEcEO\kb̳k Zp-q!\1"'5k1v,ZyVc"\1Jc̳R; oѬٛmvj&!b?l]Rش}shھ;Exqâw<¦eCiق\J.ad"ӼpiWMaOհC3kbbcM xyuI"^]~>m~sߪ>M/]lW.CS۾~oix%MƜ=G'[x,H޼}|"N5,oe͒?Ʈ a!8r<~O칆(uq 2KcgBKcۜO4Zpl롹c@0l_'J;Q߇hbrz庞~E K|ً^"ʟkUmJ(..?1!a#[Fh-ZEe.A q~ؼhp>vn~1Ԓ0'wa6̤6PBIe0n߅g8F>eeQc!|#zV= rx ׋)\B,-Xq+q/4I K^ekB=R9{rҬ:lLı lbϬdfݟgB8Wp DepB<6TK. >*uY_vAEbi`-1g/.k` qbuj rEb 6^'&CF#ή>QE*t[`7'SJ"\eNnzא\6! :﫡PߧᡚR+ƺY^Ub IGh~ |0S׏IIҗ1SZb}]Ʌv)f_{e&MuܷMLXY@3[|եy,><7Qy@kW}b.o,PݤϦ>uh;X ޜwB+IGv!p?B'H\r`! ru v> Kš+!oasQhZTmЉU ZwIO8?:袍|?׸_Qrkź_u ,/P:Cx% o7qS3g?WKoFW.Adz*!0 ʢl"d~;CMNv;oӸ_zT8$Drۿ9N79OLę+A<=KYp9̄=mTdܡk޹_/ͭj.W -suzmg;"awr$nn\R"Rׂ.;VӀ>r^}l Ud5zFޞ<IM:Hv<1G4S%Q˞y8cM۷v3N:/"5~#P=yQX6?}|eCǗ" g\^`Wٰ^.\x_БV* <ب O8@//'(|'^Dx 6`]vs}6oQoaג-b+`qh*r;=m~Dk%pۍeHI Ǡmp ;4\fғJnc2؜`v8_z7N?N_7̉wn}BqШ0K&qȚkB+CBP_ "֥](uGԌLH>%eHDÿZWPF$"ھ9v6śz}u7qNP-ƒW'תE´=,<{9 }mSsqPR's(,ϫ+k?:,3OU;6DweFrSM)Rֱf9dZu7jp^|̗U&˼$ 4[ ,`\r]x, #t|Bhxl%T}cb6eanlzXkP!H'q02?*4<hx%q *IQJy>¡#K<](5.,:p$3duV# ӕf@6օD,cTtOI9ː_z'Ql{ MzH_TB_{݃LP৺euw"Ur lU2aty:/Ut'*Y#r`=ߚLOOڴ{+-}U⇇#V 3ّ݇\Z;ne! g.0hLo>s\R:Rq8uE׼v2EVTJ<M|yT~Pnd(=_ ۛmځJJZ]3 A:u{04].O$#=xx&W5G7|^uv~xI@D,oj\NwY5U9:KT\ eQ*bĄ}`1l}[.R@D2)Մ.97wW7_ P(endstream endobj 44353 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44354 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44355 0 obj <> endobj 44356 0 obj <> endobj 44357 0 obj <> endobj 44358 0 obj <> endobj 44359 0 obj <> endobj 44360 0 obj <> endobj 44361 0 obj <> endobj 44362 0 obj <> stream q /X1 Do Q q endstream endobj 44363 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44364 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44365 0 obj <> stream HWko_inQn&Uv`0b*)I")8EǙ=-ח_=D_Y ,TJV+=Ξ= ޘuEbcںY]xoo%{nw xRt؇aC}D>rac}L >q'aS}Jw4+bƓjϢ\(BgQ.{(=P-YQ$T}EwT+ bbEJBgQ{GP-P-YQ$T}EwT+ bbEJBgQ{GP-mrcbE*BgQ{GP-P-YQ"T}EwTbbE*BgQ{GP-P-YQ"T}EwTbӄjϢ\(BgQ.{(=P-YQ&T}EwT bbEjBgQ{GP-P-YQ&T}EwT bbEjBgQ{GP-mP-YE,e}O4M57;]G[~c4~H`rI7緗ǰpY[n{h$*J1Irɲr0֭ˬ5KU@|_:kvpp~l\E# hzcۘeoLٛ\tVG,8):<0NOlZ-QL(x1~D Ri7|RG,%@@(R ]x-0Y[}$|/mӻ^VE;僽_Yv:ցhT%$ L1U1i-nr"gplN~JV,0]Z9DW@7M/ ՄcS0èn)rlmۍeʼe7[9Y r~ת`4x #pXUP .l]N4O<=J] l5o$ F+?GWָv[hPD𹫅v֚ݩ?[R{⥀:;Gr_ovdÊ!Չ *aо[/`UoU{kfHw(U1Ǫ#.%VcY%Y<ї})7Wgv7m0:nC@7?kͮ>@i=ӿ~#+H##M 2ƜM `;wtÝ\.ࠑ}G~0OU[5a@Kq~;apSı<h+k+(íڔPzD; FDգ_ί1P̮Y, QÃyp<&'dNSJ MI D=ZxZ,5yS|XэVM|7kiMp!'84Gnis趇g _uoooz,0=[w p/Eh4UMDzNSU&vFw'6Xډhbx\ZٟWw?O~ϟǜ<V|;sSj\';b_ӚriN<ɶ]C eڡ*rgc̾Mݓ:C۷%;W l9~h`>D2-8h4-| َ/mQ "DEw.n?ykG-z~ZMoY]#qEwI w\AR(jzƁ轿GHylt v͢ fXr})[)+{ș9odab#1vsGK%׉ι)95;pN&V&&_Y\N)s\ϯ?}`wm*6j]Ze6E,h%lc&Pd (%1J3 *ƶ=D^aXlh3 szQ +=D=$ez~^55iR?ROg'li;aĽUͲ`wh:J9qTJFK'xڝ%„Q& (VԬ7Un0KhS9mɚKlѪ[Gu 7i"RKuP{I!|.5!:f>W5v+ c׽=#!߮[لn!P2⮑YW JY Pl ;|WOQ y9;0xjTfm -$u5#/l{އWrxivۘd/=D&k J9$rT;f\8*TM=esѸ\0pl6/7s̫Bv'J#b{>_NTT@ /[޲m3gYthLXyF *0'~h9a,R.Gs HKƂ#{G4x(|l(ӡJFMK8)$⇲hN}4*SNgf&_K))@Ǜ%@FKYĿ8W^JCod,drKdz b"'uG{>endstream endobj 44366 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44367 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44368 0 obj <> endobj 44369 0 obj <> endobj 44370 0 obj <> stream q /X1 Do Q q endstream endobj 44371 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44372 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44373 0 obj <> stream HW]o:}ׯ $ ?E {q4-hEEPl&QWYYn6PdE93Eד?xuPo^ELXN.DrS(N:}%MDCHIϦ*j+kwtet ':X0rX0'4#:&a͸7Sg3@$bvduں7Eا{{{ a3}y>Geh}[qD͢B Pj}E}E}6Bj}E!rD Pj}E!rD͢j9Z(D͢j9ZfQ@QoZfQ@Qo(}ZַՑ@T,*dַYT޷YT޷ Qo(}ZַY>P@TַY>P@T, aV mBT, aV mT+6@!mT+6Bj}[ID͢B Pj}E}E}6Bj}E!JD Pj}E!JD͢j%Z(D͢j%ZfQ@QoZfQ@Qo(}ZַՑBT,*dַYT޷YT>O<¿EwSGoŚ}}`YI.Hd]G7= ٙxzlbs+ڑE7ܑ;s^=M_ q?ّͶ,zScq,o/޴?fn}.imi9H%rK YBbV<)eӨzy^~w/@~d6ٞ-eU[C 1mGӬI]t1>P3w6諾)ϣ~7J9S4n~ʙO2KNMӟ$!r l(L$\Ӣ39.- HJYoaN Iyؔv}ꡘJD䁪wpP<;eд9EΓv60l*ڳ~. 7 F9o%z4Q'W&ÜMMQ3fb@(݆Iv/$obft7Μ3Nuw&ef8in \$uI(du ňg"0>~wɗyp\p \L\N? FTޕMQ\Dy~޽ s3PtCd h+=o. ^jsW`+Hs= p>Y'a0.@,3c#X#cb Y2V\1R_ xG&Cٗ '{8ԟ1e*s)5fƻt4˱mZVm04\et?Yxn+p0ȏ( &i/Ųp+N?uL(f]*rL-5Ct\9Mp{)-SWtՁLטEsrPPovήٕ t@gqήo훪uma]ZZ[\&wzW0X`Ê2,_Vq_&t7V.*͸,y+\B <TqVdTf߼ޞh>m6Br{mz}{ɠT=8o7 &UƹBy!uE(Hɶ.ozM[hr軰sy>eFB5A![9Q SIUw=NvtB ՋEg,\U{%*g}E^2)r^D6;XC7t;3}_l!} i,)g\,54QSa6{hZ{r].j 9/Rd|^,&A=wxlH(vÌ~}`& lsn<6=4e1D <#mP0M:.rMzUVֺ!L%NԩPaPBObcyUlXAgB):vzuaY]8y\>xuOJO :0\ҏt÷Z:HϘ l*rhܢF8lb*TX.Wg~}3RO{zpu|ްzh:7xsmaQ$wF :=`/΢X^Vdgs*!V#!,E25l*O|36ĖWu{ߗo!&ݫo_{9Spendstream endobj 44374 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44375 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44376 0 obj <> endobj 44377 0 obj <> endobj 44378 0 obj <> stream q /X1 Do Q q endstream endobj 44379 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44380 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44381 0 obj <> stream HWko6_cŇ^@QI"i,v2=Hr%{IECGُ?\}xm?ீɈ!e"Jy"Jxثa!`aWTrԛuƾ¾~a^="B",0p;yIrKb,ĺǻO+ĻaT}Z=_|޿,xƗozۆi [50_9dq$}8BO8&( p "q9)Gr1dù0u.,W;cx'sO='sO O O O$KO$KO}BO< >'SSO}JO=>gS3O}N=9>S_=2´.p!Wb"\bջ|.,µ.,BZNŐE\ ׺׺k9ZCs-'\b"\b"{k] Yzϵpp!P﹖u1d=rµ.p!Wb"\bջ|.,µ.,BZAŐE\+׺׺kZCs \b"\b"{k] Yzϵpp!PVu1d= µ.p!Wb"\bջ|.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] Yzϵpp!PVu1d=Jµ. ZCŀEŐw1dꋨ( oVMz\pCL0l‹Wݽz(ϧ> Gu:<{޽L-/DIJ݃/_"QlXP0yvSj.^ep5o FQmy1(HݹoիP-4b4 i}Wƣ ^_5Az9=Nz?vcg]fݒ*>NfXRȂv X/9TfEL|z7̣"q2ͪcJ,+x?z"S¤CYO|p΢&΍r*Fʗr!+"l;KX>>44<]D 0F/èm l;Kyz8,ꩾWz@fçd Cڸ_CB& ,*bp7QDET#Š,C"j҉6dv?{re£aLrKO.;<}T֧4 յTBKfz6ED,a&p|;kOa χcw-#m>z1[9Dq~ 6bݨ\mXXv6r('$32NtA5% 5XBi>s]7k[Y6LOf Ϝe(nOl+Q]nZ wlh;<||0Ɩm_T`9;^nŅmYw XО^"`$52H:MXl1p Ś?Lfvt]+LQ716E.\xNU<1]ٰFRD]v38(ТV1l lV}838.x,tDjui-N#|8LRaT9]ehiԹ%D ̌ż{@\D329u~6椵g텹1na!Lw5K/88',-`Ru龕ֽاvy,1t1s$ _=$}nHO#b][c -XF/lM}mj'dzC(ޟbx_H;*&7%9 ^ͽ}IL^p;,=s;N=nEVLUGLNm1 j|:QGy&W~XPHbY-@*ߴdQ,5YUD HD9\/^gxǁ s,(=3n'kD}qfs(a*EsFT’h8r܁ov+Ī0 Pl.ZsM0˭}WPFw~L`2ANavg.>S\7L8&@\OV\Vㄭ{4^+&>?r,unC̋yr\z i9|O}G1Ǒ"R@3f3 w~\^,0SDRHyg>pP_`6ce)uFaf+tQ$v:㩮ϦXZҎ2b[Xn, q-W5l#ux0_B<Ep.^ Lش!Q)~32σk "]v%B6/`&JƓ4ݵb"@‹"" !aP^^~=LřL&=ڤp M,ϕ,DL'AxhqZrn10чaEdh|a0s_օ`v剫 oq}ANEu>@LwFSAavPO2?O=ڵdwk̓4+B,fiP">Z{,Kehsgg*Xu (h鍷3LݖĐEW/iH={`ϰ A-UO- AeehBwNWO7TwZhQ/H38v?ɝ%ͱcoA̠9裻dVZ{,tܬ 0w6q/퇙$t{[q~iQ|N$EE3[wNz6X1ZMSs}lͥ ҕ0X}qK;,ճ+& _ޅ _58+%]b+z(@R=a Tx23Rg>VQcMKiMKLlz\\͂Jb̀T']X7m3~}-W|bal?")U~=a$JqHC$1s`M9nc)Lrh4e/c4z۶NwM)2tm6Y KC?K<?X@zvl9LHa])mx0-7pV\4hܯxłsɶD¤Dc[HsJ:vSaHTP^PP/ñAύcbRʄ(tMpsRsWgeT>Jv(?\RĂ@,+@Z+ɜZ(qTZQ@?V9,4IMEY:.c\a[!%vk9)saJ1DʙYL a>/P 383 0 R/Type/Annot/A 44383 0 R/Subtype/Link/Rect[93.6006012 493.82901 254.315994 513.508972]/Border[0 0 0]/H/N>> endobj 44383 0 obj <> endobj 44384 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44385 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44386 0 obj <> endobj 44387 0 obj <> endobj 44388 0 obj <> endobj 44389 0 obj <> stream q /X1 Do Q q endstream endobj 44390 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44391 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44392 0 obj <> stream HW]۶}ׯ}]$nH[4-͍f3dKqQYQ3!؋o}wo}Dr\dea2'6SD#W}7_nFՏtJ^Wk%IpALQJɇM׊խ22}W0_?psf$E&sg߯4=7XɴxJ!'w)"qȴH!q°O'R1`4OGmR*F,ܕS4^G5^G D D Ds}y2m2m2mľ`a_DK}/eľdؗa_E+}w {w H-ͨ6@16D Q1{jZjC>RfTKmbGՌj Pj Q HQ-!aV36@16D1#jFԆ(}ZͨŨŰTRj5Zj;$Q-!*fOmbTKmSb(FԆ(}ZèŰTkRRj ZjC>RaTKmbTKmbG5j Q HQ-Q-!a06D1#FvHrFԆ=Q-!*fOmSRjsFԆ(}ڜQ-Q-!a6gTKmbGRRjsFԆ(}ڜQ-Q-!a6gTKmbGR!j Q1{jZjCT̞ws.͆CzZPb_d( 'և$2Zv3Cw<",;xj7}ӵA}4 r[H 9MI<WJ?ĦnfxuE-Z,֋mG|?!Ncm 6<^ KlVn3\TVRc{ HҮoo{VtDKA8RVMTղ!eZc'3@ !OC|ԝޗð6x6i`\$q:dtYk0_ bUU#T͘Fhs YúkJ`vK'˅)e@`Oa8%Uvu3zmxv͘`fݿZt+hEo3욥JZZ\/|)kUfjJ^f\™99XJ*neO]%gݘ80'7  q8!'w}Nv&՛2V:f/q8 r\$R=~#|^EL%a+s=||5Iv B|PKU(H/P5 1+r'V ފ2xys\JvH;Nm;x<^ɭbYPZ,ܜSB.jJ:|bڋt]KЌޭ2zPH^ևo4p0\}Χ-V{ ^t76&^>s̆dA@7a8k8EKg.վEY@o΋Ȕ)pDCqzSɴ>P]Νƒۨl䚽UYQA/-_o]4O"٫6:B幋vլ m\ KXxn[o˕PUaHm4Ǒ6}ZډiWT{B2&LiCxfϨBVљk?^^^ YQd\@ms-WDfpWBGSCұ/M5zJTuמ0F۰j4u!~hqK;o$V?ZQҵ{lTw %@RŋӅṎHڌDg%h86St#i CG/ |pT]4%ȄU)K qbi`5?h 4Uc|[K(VNER܅x ,\>݉ϙחK9n LF{4TƗr2qˡ[ۧO 'YY*~P*>~WFMdm nd r)JfR 3ܲkN3|OdA}Wj5Q\9'^o6&$DaDSP L'J|U87mM]EݦENϤwep5ӵLf;NN?>P\fѳG܀];Y;"<jI4f_E8ц&4s;\-5ksc'L|r'z[ \bEd=4*p bvoҞLy#FS/>>G6 j:g{*SbƵʠІjQ^(Pn-1ioHݠM;0Gv83^x_rRw$5u }x^HRS jr`w*^JpTxQ Gx/rnSm?;v<nSn [ض~46)tDbAǶbTb zoHJvݷK"1ewE#y%C8\qU/f :1 t1_IQwmT5uڪP1@Ԛc‚j*.{>/P 734 0 R/Type/Annot/A 44394 0 R/Subtype/Link/Rect[93.6001968 663.229004 215.735992 682.908997]/Border[0 0 0]/H/N>> endobj 44394 0 obj <> endobj 44395 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44396 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44397 0 obj <> endobj 44398 0 obj <> endobj 44399 0 obj <> endobj 44400 0 obj <> endobj 44401 0 obj <> endobj 44402 0 obj <> endobj 44403 0 obj <> endobj 44404 0 obj <> stream q /X1 Do Q q endstream endobj 44405 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44406 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44407 0 obj <> stream HoſxHH۸`8A$S$*Z DLZ)we{;:OZoٳӏ޽6_%JlHme.X4w}6:ubMkͲ޷ߛWfۮm.y9KNgkfWIEd2y"+lL|pٷ1bjG|^˝>ɫvl_gO6{`m3v>%00WO363io9I*.QV*G2TQ2f*+HjLFSP2:Ԉr SHTz{ރ^ WHT>Q }T#HUUU/T/T/T/U/U T W3kJm80RcJQ`jƔN/5tzVjLjjZ1ҫu`jFZ1ҫu`jHցQ`jHցS ZVjDS ZVjLjjZVjLR# LԘƔN/5J)^MS+5@z5LԈS+5@z5LԘz0R# LԘz0Rc WSJ(0Rc WSJ)^MS+UJ)^jDS:ԘFZ1ҫ `jH6Q`jH6S VjDS VjLjjZVjLjjZ1ҫ `jJ"Z1K(0RcJS:}VULF=8t6sƚUbNʧVzuloKYJ?J3iU|^y/|J&P#t>٬V>kvuyِݯR/N. KKz"G5؈ӓq'Eoǽ7k˗nլzx|Ҝn,KMs+vwcz!NwA2<"uVfKϪɾ]5]lw@hn#r3g:}Z:lqśxX??6[g;buh?FGXx1r]@e_cvƾ>qh>iḧ.ɰݸ|,?a_q6Kt8Mu_g^tvz= Ə&?\  -247qjWw{^m6WRG@w`rmjP S0*ݽiE!n'{*/F|$Odivݝ]LͺxteEzQPO>dѢeZXNηEpmC9e8XN-2u6 َ_/;ie,|Z J P+ +"+^ʁW U(xʫ^*W*U) xUeKjLi/eU^xY倗S^x;{1TԘ^^jL/{z/5SKށK)z@RRcJ{I({1T=Ԙ^^jL/{z/5SKރK)zARRc x{{1TԘ^R# ^jL/z/5}SK>K)z@RRc x{1TԘ^^jL/z/5ԈSګJ+~zكɪ?Ga/z<,=4~xʲcM0^nWX NuEjmwa$VuYϣM4?Ʌ,힏]znM%ܖ3Wx*=Y\LJ˻/>|xr4S!g¥ 1l.&O!{yfjY{jmS@[,GI#8R< HI ppPjCJ-غ=_}C[w y(`CJ y RJR%O[5h= ."2V&QR0>(c %Q4:Zmӄ{y>PRS$"]5jR$X%A!-'S$]+(JOlշmM܉_sSW;xQ;J^-qOn^Lҿ&l*jH |Y JE/C"zYrJ3\Q0h1>bQmh6Dd,I@2/< r%b9uCDYK)N?⢮"B;2I쥪z'׬je,hvߦ)A>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44409 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44410 0 obj <> endobj 44411 0 obj <> endobj 44412 0 obj <> endobj 44413 0 obj <> endobj 44414 0 obj <> endobj 44415 0 obj <> endobj 44416 0 obj <> endobj 44417 0 obj <> endobj 44418 0 obj <> endobj 44419 0 obj <> endobj 44420 0 obj <> endobj 44421 0 obj <> endobj 44422 0 obj <> endobj 44423 0 obj <> endobj 44424 0 obj <> endobj 44425 0 obj <> stream q /X1 Do Q q endstream endobj 44426 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44427 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44428 0 obj <> stream HWko8_!`8SEm]L<I1Pl9VkKKN~/zA"\\璺oyWo.o޽ML$H/x3AOU)m>&,jWsݵz_z[>vɛerdMrE :]SMtO],@3 49.r$rIxx_..f[).D(6V=B 勷NSQ:F׿ %Rj &_Cz4)DF~hn'.M rSFED 1Ê 1`1̰ 31`qD=sD= D D DKDKD+D+D+Dg,R!HFHFHFH}#9>"R_ #2Ĵ!O83X} qmV> +VbB\b\׆a!#rĵ!,ĵ!fXȵqm>r-G\bB\b\׆a!#rĵ!,ĵ!fXȵqm>r-G\bD 1ÊՇ׆aC̰b!,ĵ!fXȵqm>r@\bB\b\+׆a!# ĵ!,ĵ!fXȵqm>r@\bB\b\+׆a!# ĵ!O$3X} qmV> +VbB\b\+׆a!#Jĵ!,ĵ!fXȵqm>rD\bB\b\+׆a!#Jĵ!,ĵ!fXȵqm>rD\bD! 1ÊՇ׆aC̰b)B~f>yLtI8</HfY.ݢ9Czq(_ԝo0?oOo Uk7#ٰ$c g].XV}{Ay\S8CRoUyЀ(5|:пjM?-pX͐!L* [i7v7qW"HNO=|2S p)F(ec.#=%g!ce7ZǮ./zHEaʷꫦ]/o"3(ԏ|EW-gnx깲DCtt1DXtv_řM7æ얣>Tiݬ;p÷0 * S)KW>.b^F<7kD۰yjWv]:)? x+[`7\*^WP?r)sKf/]ݖO7N,4ޔmXK8'PDMvw` |S僨l,ȉ;l3C? dŬ;+v fȧ6c^ntu#WZN> %ZZ>;Lf`p1 (DΌ3!wʳY𒻇Ac\vǪޅ3ϧᔪRL<Ia|fȧ\n{9[tvq2_Zs-˾\{MuZomSvkFiXWD s^0nq4,λX%ҒbqSLq^)(ܢg'8 TR8(r` 5v ]܋_DX tF T0<; CQمE-T˃.2Z77G5h{~P wwNu=26w x].M׌A31?j68e<˱P0r[/i7Ƈ6Ԁ4m'EhJ(վ}Υ(9%JHlVƮY5_Ni+ ={vkX[$Ɠ>tҽ18Jɶ|링^2߀uG_;/qt?^ٙuZ4f dB-V'(\aF FR޶@RG]͌,3l&tٍp$PdacLEck, 2uPN\ߛyYmߝ&.lu1$qiI\FW]8}_}Ko/ivGFR2D(V{m6$'lsm_{lm=>*0;W촇+IOS4 htm(vX)45.*r@DAe@%A'?^Tg(3fĒr6x ؐ?i[S$ lFU8k6+oY+UhNYA$Nq\~U픾6JS0d=:Dy nXVB#cusP3kTK0 :i htUo[}{68$nkwge~(EN_TtNEW/ܫHϽt^[5疨^\+h|\N/ϷI zkHmC<URdڌ ))S俥EdU((эSG #֐2ݍ)( ׻ Ω1FԵͩXS7M49L㻠N~Joz^/H2s5(2"̲ę2)2 MK8y{:.M._,=<)&]3~mkX.(v绿?xy Q _hmutR@r:U&Aâo67guW.endstream endobj 44429 0 obj <>/P 564 0 R/Type/Annot/A 44430 0 R/Subtype/Link/Rect[93.6006012 483.229004 477.64801 502.908997]/Border[0 0 0]/H/N>> endobj 44430 0 obj <> endobj 44431 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44432 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44433 0 obj <> endobj 44434 0 obj <> endobj 44435 0 obj <> endobj 44436 0 obj <> endobj 44437 0 obj <> stream q /X1 Do Q q endstream endobj 44438 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44439 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44440 0 obj <> stream HWkoN~g֋vYg6}TY~6nfi.d9e'?~4Ϣ+ +|.X6r"D11ŐŇ,!+,nb{[e1Np{'w̽{ =s}` }/%s_ Kܗ}%Jp_1Qp(g5Bh)ȬZ!R Y=ŐS XBj),=KRK1d YjZKH-Ő%gBj),=KRK1` ,VH-Ő%gBj),!C ,VH-RK1dqZ!{KH-Ő%guBj),=KRK1` ,NH-Ő%guBj),!C ,NH-ŀ%bܳ:!C "Bj),bRK1dqCwO1` ,^H-Ő%gBj),!C ,^H-ŀ%bܳz!C R Y{Z/bܳz![dAH-ŐS XBj),b1\G"{5ήW|<ˌpxOyQ|>^ųRMj9Wcn47ͤ~=}Nj}i. 1)AGL*hfoަS?v^}ژ̛Ȭҕ]+2d9o6Sz>9YqfC: 5Ehz ӔiKE7;ZEeN堏[]J9! ,ͦͷ|ӷT+ D^vɼLi^-zC;yOL4۾I35(]g:?JGKg¨:ҽhԣT:=tէCv"qdBn赜fH/Us0z -͒sn^Ǽė%|O5BX5yd>'r߇O{z{3$,i+hZξ۴~,]xRƖE-hM_oX`=MZ .kuLAX2ƅs5y*4(h!ծ88%_uP⼬TtОʯ(a9XC=k}D-׷w)YFH8Ԙ6V"qN'S޷]1-и]uv.!" n`v.p|J_w0迺}g'W~0@+py0~{tt2b޾ppT̿p$VsWָK=uJ"k9=kB KNBdN">Hj#ͺ %9[.TGhW߉?ݍʛ4Ң^yj?MjuGxOX[lfy}菟4ZmK3G#ܠ"HIi6={Uh1 O\kK("p'MMMq:74{*|X(]j.xh=v moo޿?[(y0k8TEu,yig.MӦ+.[_xj\0`*8`Mi܏ 36yNߒdHOfWk hKSO+ERߤStxI4-l"~f̃F5߶]:r<S7o`tퟓEj"\QOϻj^]J`z˭@({E.F_WBbߓ? [eӟ?KNo Vkw%=mL? ,m'c~(_1icwgk}h-&&ICb5Z0Fm.½p73{jPU~rrz~|sz2g>0wԅ&a*Y iN@WOi0{\M χ5Gݓ{c/uDǤX)mɈ*LM5k]  _ӳoKWgX7W_6 ]}h',?1`26`OxoY* RXA`J+UR+S 2+WrŊ+VT *,,KF. XV,`YrʽKށK]r@.Rw Rc`;{ TȽX*^j,{r/5vir/5vʽKރK]rA.R Rc`{{ T=ȽX*^j,{r/5v}4KjK>K]r@.R Rc`{ TȽX*^j,r/5v}K>4Kj4HZm+5Z={5Q#25i.KC2۞㛫iilLϛnkxps]i&#nZ K=T |g>IryAKbz5Z e6]ʵ͵6cQi`\yendstream endobj 44441 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44442 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44443 0 obj <> endobj 44444 0 obj <> endobj 44445 0 obj <> endobj 44446 0 obj <> endobj 44447 0 obj <> stream q /X1 Do Q q endstream endobj 44448 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44449 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44450 0 obj <> stream HWnH}W4/ 7^!`Eef  ߷MJduUu/>NחoD,՛_4%DGV}|u@J.7EW}/_7f_mn_ľ .}V ^-B:I,rÚ"3WrUM-ϕCilultY=oC_,,>܇HƱ6oeGv.БB= S\}ŝrDJqm3&br6D PR(bCeP>yjb+b+fkfkfkaae[e[e[}°O< >ا c2S}ʰO=>g c3s}ΰ4+R6Pj Q>{jZjCϞ峧6@16D1=*FԆ(ZŨŨŰTRjZjZjCSbTKmb{Uj Pj Q {OQ-!aV1mR|(FԆ(=!gOmbTKmb{Ռj Q {OQ-Q-!aV36D1=jF(FԆ(ZͨŰTRRj5ZjCSfTKm06D Pj Q>{jCϞŨŰTkRj ZjZjCSaTKmb{5j Pj Q {OQ-!a06@16D1=FԆ(ZèڶeTKmSR|Ԇ(}ynD Mmj\,RH\ DH6nXu-{v4JDb5CVuy'ڇfMJ*nXs݋[e'8-b/~,aGm4,Գyb-U8!\˵VqJd  ua;_WF2Sñw-YɴP'm9U=wMf̜ov1c>KX8鬫,RF K9zGJ{1\eVeQa0vz*TOr'XcdVinLpZ7Dy 1MV. pge5nOK9ɫ٥|K5Zz~uEEݹQ_mn?z bL#)D2bt00pδ0uM8_1d Ȁokgƽ@T4qԇjp\{+Vo8lF[ס،oϙE@4ݵS夛'̤m?Q<@oa [`Fb,[pG9l:w_N`AJq6Ek7lf n֓G"r(G6mcfޙ SݙGhO4tٳYd扶=6險úm`alf]llttn"At ӻU4 D+88G{H=rvMiA{xvܖS&gv޼yl3kq~ITcl}+|P4E,ґ}<ۦ5UKG/-@Z;~as'4r^ aY}%[:M-x~,TY՟Zy87С22)R$P$ ) Vͤd"!H7.t9݊3~Đ:Nt]3eY ml% "5JB-gH je@B>}0^i b cَ׵>UEIMmݪ #dd:WU6n ɊKAH)z#^S/Z}Pi[r#tG@:?8'o|w'LTS#]e FzgR[V] .WZrL00AV^7#Hө;ԵDcXo~?{]|ܒ/!!nE%/0ɤ_/!LOW0Z)Z=Cf4yLD3W1#Kɸʪuޅv yal;'??},u'z@Ftj2W+dySVfXvlQ iywZnVۖR>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44452 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44453 0 obj <> endobj 44454 0 obj <> endobj 44455 0 obj <> stream q /X1 Do Q q endstream endobj 44456 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44457 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44458 0 obj <> stream HnFE<Pse:/JrSiP؁T@]N6P:XuaIJ7k.to&u#~i0:9;Rxq|z(*'໶"JMk&XR|(D0瓦T.ʼ`J8 kD6 D ') zN~q]L(T-wݻMQ-LGTy>mͯ/y>60t#Me$FmeHP*'q<~NKXWPR` kq^[8:qd?%;< \G% p)z;P橈RTg@i^{kbo{C coa %>b#b1nj}Lc>& cO}'>eSb2)w#'ULiqVi-,ozjlI-:_6u1]S7#4ra=h51+|q #~T,^b/ЦR{yv>eTԬ}[;c%Ia,Bَwl/=r6-h ?REiEݱ`4z3qBŮKU+^TP .~=: mys_2_=?ǻ1.LZh^r2Wӵ5!Ku_~fSih.~ GdƏ})LًUl}֓zh1F.<<x64Ax;y_MefNC`?+|<ˆp{,-o"A8h G;{Vxunua i8 JP׫ZJ+g9@i;촥6Ϸ^?VtnDLqz(0~;~*]k+W@^'o "l6hx4G덅/<,Vv;:>U9zfxq쩆Ƕe{o2kxH?9,w?3G %N 푸;yؙg78O&ODY`Ql916; 99*sr˷'G)U+xȁ7ᱼo=̂$E 0-endstream endobj 44459 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44460 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44461 0 obj <> endobj 44462 0 obj <> endobj 44463 0 obj <> stream q /X1 Do Q q endstream endobj 44464 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44465 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44466 0 obj <> stream HWko8_ (K`0@vƻ[)8jmk)M3~CɛXCf?_~xw%ٯxy7*5bY!XYL o>:c?M3ua3m;%wW"X$lq0IjVØ+&ӫv9uC΅SɳO73Wi<uׯuo8:DsĐ1` 1d# µ!,B}ZA6ĀE6ĐE\+׆kC>r \b"GkC XkC Yȵpm!PV m" ׆b!,µ!X}!+Vb"\b"GkC Yȵpmpm!PV 1d#Jµ!,µ!,B}ZI6ĐE\+ ׆׆k%C>r$\bD 1dC XkC YCV>ĀE6ĐE\׆kC>r"\b"GUkC XkC Yȵpm!PV 1` 1d#*µ!,B}ZE6Ķ&\bȊՇ׆b!X}uXmb\,qIxn`x2+XQlMҫv_!J#cGl9ezaZ]̵aƩΌamnmDZY{mgo꜌haoJD5rRp{ 'nW=T΂Q`QmuZyeXe[Ým<> n 8o{kknm0hm"+ӻ5fEPӡo]> Θ] C.1:t ܿ+3ӬQRd2Ǽ5VIc.T*Ӳ22;ʥ,aMWSA3ٖY9!wtqbI&y.K;a]Mڢgwdg%.L76 6F> я~b _o,۩cYO0+ l_]]}.Af9uNV{Nnq~cu{^KYlP)Zs2ݠs@ a2s/n{GQ3n #.~P%vd.u2q3d ZgLnGbeᇄwCuGp2W91(<>^-`HnX ,R'Z.OOT/uiUhȏK?Dس WٿY/^2Ytӷ]AXԻfb`YU6@3V"\CpV;8Zf9΋n{N:3evs_\dyQe^dRrx-ƿ9kff]_aZ8ٟH̅+~@ψ〜7tXфRԎP vsf_ea.qr UsP:K218/T~yrj._gUqM=?ARb$P܊(!PBT#I1&קrI{i$JY?̧tKLՖxv)>f5D@eTsO4ԉ>'8c N`JKV:ey%"`9%<`y%t0GY7DxdQP#(*h Xl{\UNP ֠ʟ..0y-oUԫиs}0'4MW{,4V^ڍv NJj%ݯ`]3caNp`+*khyGܴYM؈are6P¾=s/[v2q5VePWCmy#6m{|Ke'뗶"?s׆Vmr#t?v*-=Z斅]x0_Guw[?f;{lItۜL;aY09lp] Teh.^sșrgUrRc~ǵ$^Rp8;{"R֙p,ev<=߬ Ы:} ㄄W|љd֛A&vݴAPO aI`;|9u 8]t?P(kYygF`ll6;iIJ0b ˂]k jh V=k7vpLHdN&rQXq -UEJފڦm6M t/]%Ò뤿,(c8yXQG!/uBtPB FJ wy}#wo>$rO:@nj;#2!͜HoB,=j݁?Q3N67Dž~<M-.5ӧlH4rGWʼ "\4iGNQMO c\S\JGޙ*tiQ0@}'@Öheݜ;ȗ.^dV/_ v:BکDK=o9=Uq>}\ ٙcwe@Zd${;PߙlFřT_c$V純8\;(v.u+\ZOA%G$ \7@/ysGۼZ?*eBԁQ|Ix_Sͫ}.,!I^U|<6'>5=?k? c /~.#y/1DϵkV{;4'ٕx2Jysp>k;pՐ $VR}SsM06LG?5PD$;A fc? ׆u{MWf9B?uoX|e\ɒ^#|f> R ]h0q>Z@Azgr;8@Ή/< l$}VyJ_2}ZZ.T> .YH+NPԂO~Cq߷f}G[ϊW"ns^s)"#ن73mmwܺ@]GyhNjhPTKd)nZiGU뽷JhT!=(=Ԑ*6Lknn|3AO/cs<k5eE&4%J+&,DhEB¬lGBwo^ r4rW"T~|#1{ ڇ%)ep?WKX2qq$(en*<XTٶzi'*X[5ø8{_.jF=>Mpu?{y~2K"P^%8|q9$ _(5Rs.4\ߓ$>tǿ?p.e`jFPWhAV[,{us_-ox/D6i(}A("yZEw{4(|'Q$ V~JSR$e$\"z6gMjOF?9FZ7MRRI.}j aWBم2!T{C-(Mn1OFiAּt^[.¬({@B*V ULhP쓘jll.꿞R)'9>l98-L L*Yr:ncVei6sSz>97<}‚endstream endobj 44467 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44468 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44469 0 obj <> endobj 44470 0 obj <> endobj 44471 0 obj <> stream q /X1 Do Q q endstream endobj 44472 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44473 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44474 0 obj <> stream HWkۺ_bK\In/6hڠH@kkJdɕu3"09^yh8:&gx8/E7rǐW1C_02NE2NDؕ?&`s* ^PںC9t6>MpeS", 3!7#L]¸Hb>tIBQ->y'}hൈz,ia_ Obo'L{ cCϰS wa4 4>A]8!p&=C>!*!P.w}P`/<`/<`/=`/=`/=`<`< >'c}JO=)>gc3}F<`=`=9>{O;PCPC!gE!`Vu}"{j]պ>D= BQ{OPZׇ(ZA!`Vu}"TET+պ>D= BHBQ>{(BQ>{ׇ(Zׇ(ZI!`Vu}"TET+ պ>D=JBPj]j%Zׇ(ZIPCS$TET+ պCպ>D]պ>D]|Pj]jZׇ(ZEPCS"TETպ>@u}"{Uj]jZ(BQ{OPCS"TAB!gE!g9ov臮8eNdt|1i66Xa$|^Ì/]q0%eZ[Om7m2\Cz^KB4E\p <]9l<BA,U5fޕ1_ʮO$0?0 l;0|&I-m gN@؉^)͖m = _cϽ4k],=H{,l^^E=3(UT صnttj[?!= ]Ǯz8R jc%8URfGR)b!ݞRyV LzbZڷٱM+4(ܶ&Xu֡3(װVpaNЭHH51I}.ۃyaPխ1~V2nt$k;e,Eb8o`p.abq+sޤ91LsGuqj{j }I|!jcuW[4t&KDYa"%0Y`P?{cz- JMS>e/IɠY~t8bIL+.'K4>`9B'-_ SLTL@і,,'Y,[ao ñ.pSix9X=WJ{TJa_ K0W-\ڕ~7n{~V}=ښ?G}A4_n8Gvvp~ Y8+LOGD֎YMoO ,yX<xBiKLm~c~šuT$O8ݘlSo=8y8e3e59Dʠ]eO<z4lļAfnzPf/44ɼ*|!w,f܍1+ݸ<|f~8$7㑉%U_1e7Q~j .[s_U,yMSsʢ=x^^4Om]gLTd~8u / #Zvۆ]_!BH|T"hA`1Y.l)weR!AZ|U/ٚf}5Lz5S[/֥?kӭiaܮx~ł_A(1s/~4bbO}]o yk %d*DI/bp8T){- ʍе T1P!K8\?<4ă%((vs&A Q˗u`)HRA%(9gZeAͬ_qR7H9mߛ})$̔iCTidTwWGMw G6Z7/@+Ӽ@1͏CKi_y94}Q-ϦP2/)og{MBcTO<^gPs; a= d)מA1ڣFH6W(NvјN@hi0=b oS'%lZcčP`8D>Z; =\CSh5ډ3ƑI]6wTZX# SzhWc0<mXj5x; (LIbw߿%?~mendstream endobj 44475 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44476 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44477 0 obj <> stream q /X1 Do Q q endstream endobj 44478 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44479 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44480 0 obj <> stream HWߏ۸~_A/6hER6Cr᮸nhZ,m%9NHPGɏC~ݿ~$_HB޼yӻ?Mc* R" g#>6JsDIMUS7k>+ynO?sBI$!HIA~AUcݵddCY\l?i$+&f/4] ʧUOP?e35tMH$YLR! Q^k91#B ~%D"ɳ ))t{dr4чH #C04iT8!i@P>wJCP a aaaa)> ا4`/"`/"`/"`!쳀}9><`#}/¾K K}Y"iT QӨӨZߧQ@ Q(}Z Q(}Zi>P-CTi>P-CT4 a!}BT4 a!}TS> >@!}}}BT4 a#}T>@!}T>Bj}>Bj}F!rDPj}F!rDOj9ZwRDOBPj}F}F}>BM>BM>@!}T"}T"}BT4 a6ET4 a6ETi>Pmi>Pm"iT QӨӨ)I¬N}t9dhbP&d$Stq$WLn6QYbUjX:C cQ=YGi~nfO=uxO b,KVVcݵ: ;AYt$&b;N}/O/zfADn ӌv<rPθKuf&C9k(O9 zTe3}VLlE0xovWplmLI$u',aש4I0e$3n2 }@TޣjR (S;O/Ǻ::9yt=l+?MxF l[wi ;b0 [tko<-Vߺe4趒yeS{62IP瑴Hk+8;41NZ{P0okibWVl^U?Y|]$s]3n 8lzn)1>l>ʝ=Mb|XhRbφ&M)i?0R5D8{?ˊuxiodDHAn ~y|=r"W#Y{i뙙qꏳ ؠ)_9O4vY-qu$:<"My&GE'hլwN>cGToՓ|zGPȄBS P]HΔ,Bpaɓ%OEﻖ:Kﻢїp%OMh~3HSfMKoԝ[M,):Ⱦu^a~X'H a'3Xrj5:gi\xqXеy@{SU׽ԏćZpT-jS׍+Kx6Da{~Lwgg7; U " !M6&1{f9/,oyf/eNFvfG;Kg+YNZIECݤDƭZ+,X)`VX`eVXmj+VڊVX9`+(V Y.,qKdFbŊ+V,XN`)^f,ˌ[w{q x/3ne-R;̸X{Kye-͒2`)̸Xx/3n>ˌ[O2`)̸Xx/3n>ˌ[O2`)=^f,Q x/3ne-R{̸X{Ky2`)=^f,ˌ[{q x/3n>ˌ[%3je- 6c%_p&6Ÿ6jc4 չd:|\ߎLs0_}gQOe&++E<44fJGQz?:հ]DgNr2h137f;stCo)6X>YBddX>Ά|(^w.~Wv;&b g[= &+"_]71УM%ڴ?uy+ niL_ܦˍcCt:6y:qTlaVS}n!Y$$ b)[AIy ɘva³S' zZBCIzO3LGMYٴ^|a}ou8X̧ޛUܙOm\7 z,)]+VYz PuE{yh5endstream endobj 44481 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44482 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44483 0 obj <> endobj 44484 0 obj <> endobj 44485 0 obj <> endobj 44486 0 obj <> endobj 44487 0 obj <> endobj 44488 0 obj <> stream q /X1 Do Q q endstream endobj 44489 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44490 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44491 0 obj <> stream Ht[oH+]@J6K$L&HY,VmztJT2bVQmV`0rta>bכ/W_~y?%C?}4ElMU[xk?&uLgjw_v׭~-ͮ~zj} ƙ*Kt$i6:4.n13_3[?7iaBYZWUbح-FH-{7GFW袻w-k;lqA.(r|ѱM]u]}7r;an\,Hyͯ,Ua}R!=I{<(إ/'5r9]BcW\2s:Az{ޫ*}J@G>*}*}*}*} җ*} җ*}W*}W*}W*} *} *}J@z5 ֙S+5vR#ZKtz Lҫ`j.^MS+5r@z5Lҫ`jF.0RcHփ@z5LVjz0RcHփ: `j.^jS+5vRcN/5r@z5Lҫ `jF.0RcH6@z5LVj0RcH6J] Vj0R[gLإK\`j.^jF.0RcH6@z5LVjF0RcH6J] VjF0R#Z WSJ] VjS+5vR#ZK@zЁAYhu!N!2*W.Ŋ+VT *PJ*T *ŪRjŪVXI`%fI]%5>S,XN<`yzApX ^j,{z/cԥXRc`{{=.KރK4uIV4Kj|,z/5>}dK>K2z@GRR# `{TX^j|,z/5>VhإYR`G{T#(X^j|,z/5~,z/5~,z/5~|,z/5~|,z/5~0,z/5~0,KƏ܀z_'R&]WMv48\eh0oKSfmek,y2on=zba76K]z@.RRc`G{KF.{ T#X^j,z/5v}K>K]zA.RRc`G{ T {KF.{KR<>?WMv޸/Щ*H>#5<]PrٟW*zj'^/V+:k4^SQqbj;kbŧnvmt~gH:ft5[:y,V䆃 ݑq`yOM13z}kOoڿEӻǗ=*qy76qxncn!F(KJ?1koE.unC]՜\_ow;qti:bW5|.υ9cjnqx=7bI3M|~拜6z-եcfm?\jZmq;?MwH3qD [6J=_X"}gjz܄}G*e-W{hwJ &qE0°I}$6!ٞlgޛw}q:ڠ)_/ҁMf.ȱFK[Q/8 тh8H1#}h'!()Q@Bɘi[C]wwȡVt~e(Jq95.ԨbeTRc%i_7W*2R5SW\)?0z3"gKn={ЋQݽd4GiN=`l"2Ș:Ǎ,dŴۛ=z,eNpb? I;.FI o{.m8 `w۶u!}sZ-s 4z'߿Oaǯ(<} c#^ coIUq;<1u۾Ky+.KVɊUr+VįfiX.i腴1C!0$<\@}@s իyy-e)sdзL]GaV5\cSЙfVHWWO֞*PQ$P_6oc4쭙~7Tgoy31uAD(eVH@;'@hv"P#d8Tώ+аAUтJ MP!ؾ3x'Kendstream endobj 44492 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44493 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44494 0 obj <> endobj 44495 0 obj <> endobj 44496 0 obj <> endobj 44497 0 obj <> endobj 44498 0 obj <> endobj 44499 0 obj <> endobj 44500 0 obj <> endobj 44501 0 obj <> endobj 44502 0 obj <> endobj 44503 0 obj <> endobj 44504 0 obj <> endobj 44505 0 obj <> endobj 44506 0 obj <> endobj 44507 0 obj <> endobj 44508 0 obj <> endobj 44509 0 obj <> endobj 44510 0 obj <> endobj 44511 0 obj <> endobj 44512 0 obj <> endobj 44513 0 obj <> endobj 44514 0 obj <> endobj 44515 0 obj <> endobj 44516 0 obj <> endobj 44517 0 obj <> endobj 44518 0 obj <> stream q /X1 Do Q q endstream endobj 44519 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44520 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44521 0 obj <> stream HWn8}Wadyb v,6 r[lKU$%uNU}X<$TU'O/~?Й/53rɊ\eF}|`}C"X˒7zj6oݰofڷ[oK0&o6F%`E8X>YK钛}ڡgW6/`Ŋ~2NM7Z<:W<`-gZj q 9 ł1uLXv0De=3g|%P]R']>LbL`W(!*^.JeT]|h$ˈ$ˈ"ث"ث"ث&눽&눽!؛!؛!؛}N#9>"b_싈}A/"%ؗ2b_쫈}E4+ц.jCb PjCb Q1(B QHPmhC>R$TE6!`V m"GjCՆ6D#JB QHPmhІ(}ZI6!`V m]Ն6DCՆ6DCb PjCjІ(}ZE6PmhC>R"TETՆ6@ m"GUjCj(B QHPmhC>R"TںD mه6@ mه6DCՆ6D#jB QHPmhІ(}ZM6!`V m"TET Ն6D#jB PjCj5І(}ZM6u!Tm"TmWYUUqw4vɛMrI&>YY*2-BVYb.I?Jm\l>'<@nf[Ɔ]\<;?m>޵ Qiؿ8SO Y۱R=9ڂ֙.p_Ʃ.a"3duQI3WwK`!m_h(TWf!s#YU| avqg#}8Q7l8_o6>:ZEvfE[z/J`N.^~]\Brv躺svSƵ{ͳ1ԓ-o8_P7cc55h38,͊msׅ?W s;=ɿmaqwu_]b~ӡ~j\p_K_OoR0mRg+W]RJ]f'5w;W ,FoNY ɳ҆waEQqX Y}fkcѮ6 >Hm᰽zAay\K;Rwb<=j乜ن[mh^y%(OﭽJ|j[#,P=*|/rF'~zWOE4_ za_a8g |8Ϛs ϱ f0Jν(@iZ,(3iV8wG"bv*JJD|\M~A&+L,m>L| ՛yw MPVv+@pa]̏Ͱ E b@{2B(ri\|-'h{7/w|LCeY,̺gsˌ=ӟgEY-D{~?OLju۳t!(F(6|iԌm! P1 z\d:G3kjJq{r}늿+%||Vg<'b:so rᰫ]{|vU6bfw gkWiǡ 5O .8!shıWWnO1.dDpܸ]/L(ܟ=zOP#$=q!L z]}m8S4#UZԀ7aGi@- x3 MvY#}8L&HdLi4 8B<ޤ0Xɡ!3UeK2ьݔ 9LarFΫ`X'p)`H/ٓj}ٵvڽؐAr/ " j=; lu.%pif}Re\XX0 k. U&isz_9CbՋsV) ߓ\UTTJJ`auz  vP@tá+hQRrOFU׍m K~4666wnGB! f`v^O:u[APY5AK:09"Qd}{rA>#YfKT ; 54}ڭYP % \Ok [g īZ* zE%qWa>^\ʢykq uݗ*L6ɇNqn{y\}yhjyf~Yo7+cyz{|qMGƅig,j~2Ԡ]]]nw7v{O)"Ob(]Z/_'F~>MC(,TZr A W׫"ě=h`q@QAm{aw۽,7=LW<,Y~҅yA۾fYV eXvz6Otzݯcځc 6O>ӫrV$6P5=^6x] r-7GbM$΃qv?$^n]#Z%f Ps))"`Y;F7mtڂ$Y`C>8)vNJs68.F>O%Mg+X͘ݣn*xU&Gm=[PZǞp_5",OLWCrfl\G-qղ߮>Ͽ;K^endstream endobj 44522 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44523 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44524 0 obj <> stream q /X1 Do Q q endstream endobj 44525 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44526 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44527 0 obj <> stream HWmoF_O2`/|Y\Qqw8 '(h+Qqo$rfdԓgg3{b۩_U~ǛxmWItjU:X-U12RMU˛vnJm[wчet4XerHTYe-~~~.ouqexqsuHչo܎dNNbomwU.z!n.$S}biŀ"\ͿFN[L~0gu5V* .6Hq: DQH('pN ;Fx:"ES XVPoz+L; Sz{AgA}'O S S>ԧL}&ϘLP1>csA}A=LK:k),b\K1dqCWO1` ̵Vp-Ő%gk),C ̵Vp-ŀ%b3ZC R YzZ+b3Z#'b),CWO1dqZ!KP\R YzZ'b\K1d kZ!KP\R Xk),A=s\K1d kZKp-Ő%guk),A=s\K:k),b\K1dqCWO1` ̵^p-Ő%gk),C ̵^p-ŀ%b3zC R YzZ/b3zDp-ŐS Xk),b!xß몎>,)=cNUE[ϴ$:Ñ|*z߬mԪlqdT(q\52?o[Y×W VJr 1% 1䱙٩RfUUb[rSŶ38 dש*[!#}YqǹoϽ`,ǪkXn/.?O"Y44s;@mAA|KaମD^€\bkM95aSc٭N NgY}P<>O2i(1OP8Q+7:s !yN3JвFX:| ѠfgJ}sjL>9@/򱝒?-88.]lׇsiS> ?vxޗua^uP1ș*3f:e7fc!eǣSú<%DW0-v[C~?w4.N1>qL/_v?Fks?)`Qpg}zJ*OH#3 4z>,_ʳhkt-V,__k׵Cs#^4s28@!`{4f:m_Y/8^VHcM<k_lvgg >'𞵰BҙCm(USt%*`yn`C?ն?V|ȳ6nƍYܷtx; /+1'>]~ތ? `0ڟ!j?zzܫcKαĿa ?n<nL7n,rg,t˙Y29&<nvf:tQKl ;3d-7\,҈@ X3=o!B9S/Y} &]&1&4.EP%r:sR\(86y{56}4Ĭd;֠H )å*n=X\,Mѡ ܍2hFZžk뢫0녁»Ši;nT l]X8>y56ZH;N;Ǵ[㼄ΩC'1(kcb;.Ù=/ v_E%yFX4|&^{OKkzṪ#^TbJ•udxl[`E0dbeBʄX r+b,Vb+ecb(,#2,b ,eXrB,b9!c˳X^YDXսbbBS YB,VV{!K uO1d X;),bbbwBS YB,VN{!K uO1d X;),!{'=Ő%buXPCսbbBji|J8QY|RP+CRJH"Ɓ^ol֓Səsfg/c2c"|oEpu|/ߛ1D\ f QWC |oEpu|/ߛ1D\ f QWC |oEpu|? |o2c"|oxEjp=hBTF `-/·iXmex6T*l*vdpcdH]Ebq)|Zpe^r E 5`J!UTEQ*^<X̰R?ܪ D^U4`>L5ZXޑڶ՟o_mR\+9CQ=0HbF嵐Z)/Q4h!-+L0@_ Ck>AS˶RUl*\вzjY8U2+"3И*$]*!ZJ6T̄G\xP A~@2I3FfóO:.UZ/i|j|>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44529 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44530 0 obj <> endobj 44531 0 obj <> endobj 44532 0 obj <> endobj 44533 0 obj <> stream q /X1 Do Q q endstream endobj 44534 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44535 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44536 0 obj <> stream HWmo6_2( ( 4ihepB^%OzYr|8gFyU~f)7?qB,23뢔G,wsy=5lhw7z>*#)+Y 9Ylwbqf@ĹN?}xz-4!*#P>wCP`/`/`/`/`/``> g,`쳀&뀽&}N9><`_싀}A/% ؗ@;EPCTPCT!*dE!`V}"j}>D BQ@PZ߇(}ZA!`V}"TET+>D BIBQ!{(BQ!{߇Z߇(}ZI!`V}"TET+ >DJBPj}j%Z߇(}ZIPC>P$TET+ S>D}>D}BPj}jZ߇(}ZEPC>P"TET>@}"Uj}jZ(BQ@PC>P"TNQF!*dE!*d/,KƬOQcDIa<)yR*˲ Jk7$ĹYGv9O4ȗֆ{mx&\gmS&v*02; z e&`x7!2!o>b_痐WB;.c6ޘr ify67^kX&X2wLIdk9y"`],kDH ˦d9 bnp%sr5`G @Eovg}TWR2I۝̆+^yjfm *@ BbA .xv\p3VV=<ۺھ.(rܜUvIs&seq ^'rcphw\vbD[D66ܗ;b04~qQe*%!ɮSSOVZ&Y.C2HR}/?4zwZ En#e5RMͰQ|{-edEŝqᅥņEC! 8qe` k?&⩷ϳaHh-J( yrtHu6\pq<~dp3ˉ .s #q7 }"UM_-B¼ݝ7{S nט K1~7B5\^̓/WWRƻCl_f7xfPm5ԪLjrm]duJ !t">w V~Qq(*ҽLk*y;QOF՝M7sU6A8@qeߒtVu<P3 ڰ-رOO(@txln#HoNsyAj[]o  x TҜ-Nd/~n>~r߫cC5tJ9.muXun',mQ\P"E3RmVX \-4J\$;T JJw1ӑRĿv> ,&{7%䄒PGRh}_=Z[&ܙ<,)dtx쟌adZ6ǧ޿d~Ɣr3?itHn3=Ǿ>:WMs0g3 #i>66qV`P 9ie~ۗ l .L>8 ICuKcмE-zX)9aZ, :WDWAG溍ݕW<"̔NדtgJ7=IXk Gx|i_J/,9JCD$[?,;1D#ǡQ걶ttvDf-o֠9S sC0F}X)G2-Tch[~\U*GTɠۜKWF!@ө {t%U#Su!n@yѻZj>RT_HY!Vg~01U *hC(Eu'N3T:BSgDYHcC-DtW9pҕ=cg50UyߪR, *EiJ)35wmM6MeA@xj+?]]A*>5v1UY-4GD0ཹn/_O+Uэ$ !s&^K^|0K16hMA<9bu]2`>w53I9xؗ 1 B\Dzy M(~ @mִ/-)l? 0]endstream endobj 44537 0 obj <>/P 380 0 R/Type/Annot/A 44538 0 R/Subtype/Link/Rect[93.6001968 289.628998 194.147995 309.30899]/Border[0 0 0]/H/N>> endobj 44538 0 obj <> endobj 44539 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44540 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44541 0 obj <> endobj 44542 0 obj <> endobj 44543 0 obj <> stream q /X1 Do Q q endstream endobj 44544 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44545 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44546 0 obj <> stream HW]o6}ׯ/¥/ILj`dH~/EI#]gQK^\^-{Y^xew$4f&S<,M7yVF1+Xt1߮{~Ymm]Y]D\IvD/R|VL&0H,'K-wB}&b-k,ˆ?_/-;ExqYm}i@bnEjj d%Cv Xb8wt).#1{s ްO1eU :3E6*slȱ#b0Xp! ae.D(czzWzWzWzׄzׄz7z7z7zOI>!'PSB}O i>#gP--> L]$ ḇBZ9Vcḇk%Z9>p$\1`ŘcJµs,B}ZIc"\1"k1Xp-ƀEcE\+ ḇk%Z"EcḇBsP=ƀEcE\ḇkZp-PVŘc*µZ9>p"\1"Uk1,µs,B}ZEcE\bliµsP=ƀEcǘc1,µs,B}ZMcE\ b Xk1Xp-PVḇk5Z9>p&\1`Řcjµs,B}ZMcŘc1,µsP=+ToV4׻2X.%l'0x%&-w⧢\o9{wj_-b\d"e}n?Cn|q Xf>LS.=WRbGvtiir ,KT R6"*Rilο9u_#\%Bqv_39Ldf~%YUͪ;8?|Z≮ ;Oz>HH[8$/|؄>c#NX3&Ltb.0@.bL 4a#u9r%`A׋;\mE ۼljnnA(I\Yn;>՚TgЃB{8G?N0{!| ] ~ œ ;yRrY5^N55t1 |MutU8;~dBK͌ur Cы|~ހ vэ[~SmjVAa(iYXtrW:1=X4Iq.jH%;t~8}s8Of]ߜx3j:#r1'sQ>ߋj?@cݏ~͔4mn5G7%$O0a*#<^β~`zf]O#^je6/[*xa6@AGb~/r%̴o-q)hLtJUYf$1ytG H4v2GZC?_5xVNG9yY993'sWH׻w' r:A*_T*<`L>Y)`7$= ZS8h[pz6MO Ij~ԧ+?9=&^.1=͕ & hjs֞Ia@ўt&.B̄$Ɇa2CDUB~u LgWGFPʒl=1L.j UA p4-Y'Oڣ&!|޽vH <\o}bT Vu,M:Z[{tq1O\n 6G"DxGX>- W8Хzs W3#n~E4JS BDPݮp 嵿լnͪv%Ht=.z ;J6A ;ọl06aX#jC\(|+'ߎB[  .32kǁ394\uqT7 TBXyL50g>gi&X{T^4%B:Կ[($wyHQWd%3P 819B cb`27I>/z6$$plE'`J=<2jhOcCEھs2<wknYqShtܴݪ-{s: *cy0iФ9c@+m@ S xQ|*˂(.̢8\g&&eޛ/p#+;W;2PqbǠ@LZ+9VL!]h\4ӳ#}K QîoW^zk{;5/eS-f7Ú ~-t;ENd$ ĞnYGCWt 1i 紽侟?xuy`Y`&GPG7heL/N+)FOqFI:ܨh5ߺ*s"nПZo*d%tI!+V 5oВ:-yT,FQҒAQLTUZp,1@7KDo|Vj={ p]Fqo,UQ!qEumld,["1{?4Ses\’_D*sզ0i ]ܯ뙮Z1 SzM⯈%b{AƩ,:J 54׵B;X{Z/C"eicOq@pv&YcyY#'.L{ M7] > |iP@-& 毰iƣ}940n~kPd-7>A!J;AYj]_?Q.0.[ v*lJ0i;wKSuc^ 5o)Iq_.6*->>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44548 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44549 0 obj <> endobj 44550 0 obj [549] endobj 44551 0 obj <> stream x{tTǿ3w7!6)WE F6)c@4@HBD"R4Q,Mib)+P\ɡ,xTK-EZ"hHﮜ#ǻf~;sK"Q7ku\?RBO =-*:,ZY3vIQ_;&G֋!1X߰tEBψJh?cy+-y ʑiMK"s&UX~\8Di|.",vW|{qsRغ^,8;w厔NVQ݌t\3{w~؝z*QFH"kʊ%^2C~H~@^"M^$'/"#IKC'A#.5Y88Kg(ʜ0> d״1u.ޕk}o-{G2vu2YKZthQY^Xlcv>*J#6jUBck1XI r9z߄%(M =~4r裏fck[p#Y٧\@֒9d%r6yfImfe0Er&y79Ε\AI_ S$~3>md L|+9,&'"By9,"o& 1FbFS. ?Cy*QG#&w#w]/+ʹ/r|OoݏEOђMW,\2j9&I ٝrA y dIF3[W~.>]ddُL%SHJDž-ܣDcj>[vtfrsE 9crvRwlTM>Hkl1Lăzwg UvMhSX/މnߍCrC>ӃгqD:- ZgcftL=YVݡP0ًPWx&$)muR+:z1g*[p;]ا}n'+lC1BgQ[+ϣ[ط8SBӎ|#W7´i FsTW\SQdڝfuzdN1Uubz>Ь/J^l;d>8YU'N%ڜ$3vP*~١v~47KNw9ΫKw\@r$.Rݙ22V]k4FAqt5]aH ?*ce*.97LnJ̕s9OMSJ[:7$a ,JCњ7-wEYU_K͜*q C15W<1 /_&uUs"V52)8j[#RBp '͎#]$5"#ܛAZ .KPz4T+|`( Ίp3 D"qRxk5gJ#?1ACՎ9=E[[}rI=Ϋ WICv ҸV`|֐ H;^;Ri ::W< 1}# d)F]fW] V)vhBx_;Y@ =Msw'{K#rCHCnp`lp6J3H:s= QS,h&*+զކE6=ZmmYw<Bv'{(WꖽpIQW6T/^d#:endstream endobj 44552 0 obj <> stream q /X1 Do Q q endstream endobj 44553 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44554 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44555 0 obj <> stream HtWmo_Z a&JD&"iq`dVW|\}o% yp7 O?=|}|~Jpϟ7lGD&$+4CM:46$?uM?uU'=tUtoo>o7[{d0?*HDOMZ|r '|g3~ sZ4fzIR}8}l#)*9x.cKZvH;_Os? ^ !(K9TmΚ;#aImc}`a6^Hd"Dn$2.]6G}E蒙$') ^~oN'!=G?t/`=VAuՔeIvᛏH,|\K[ QAp1Zțz iwF;:pd2`QЩblxfI:T5dt2*g8KZ!Iu:u~ Kr>e<}S]^zx~pTFT09oқ$j7eq(~0cwvl <T|G<QW9;cy,U}qeK1zӻ8ny=<4UHܿU5cg,tIΊ,Bңo& 2L"s{-n9SФX0 (a{Z9fY(s]kq`cќ GuLzH}N"'b)f> .D}J c[IEe`fQ0kҔぽ񚂫fHd}i*܆.lmPǶ Ozc"~fq +0.Q1շnv! |ka|tyVVF &]ʬ* Θٸ2J~8+OU܌9>Ls<NT- ܴad8{5c< l{/!_N&lHK1"p2CgVVfHpbaWUw^2xSvzPU݇ՈF/[o;]OIgXG<fHpzp7 \ O ZyԻKmC$F`,tY pZudP[,wO##Wd)/bq,%BFVS?1s׮5 |/SnH],]6:ek Q.fl*x\hُVߥ Vd`Gܹ)l7_>nl/ʦ'endstream endobj 44556 0 obj <>/P 731 0 R/Type/Annot/A 44561 0 R/Subtype/Link/Rect[130.078995 539.020996 318.097992 673.916016]/Border[0 0 0]/H/N>> endobj 44557 0 obj <>/P 731 0 R/Type/Annot/A 44560 0 R/Subtype/Link/Rect[93.6001968 428.627991 199.356003 448.308014]/Border[0 0 0]/H/N>> endobj 44558 0 obj <>/P 731 0 R/Type/Annot/A 44559 0 R/Subtype/Link/Rect[93.600502 296.627991 239.891998 316.308014]/Border[0 0 0]/H/N>> endobj 44559 0 obj <> endobj 44560 0 obj <> endobj 44561 0 obj <> endobj 44562 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44563 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44564 0 obj <> endobj 44565 0 obj <> endobj 44566 0 obj <> endobj 44567 0 obj <> endobj 44568 0 obj <> endobj 44569 0 obj <> endobj 44570 0 obj <> endobj 44571 0 obj <> endobj 44572 0 obj <> endobj 44573 0 obj <> endobj 44574 0 obj <> stream q /X1 Do Q q endstream endobj 44575 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44576 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44577 0 obj <> stream HWێ|W4j1/45:5@ag$NHjb="Q9Tجj(Nzu↑X~׷"oJrFe2Tp]TuSʮ֪no7z?.0I򠩲8W]Z/_{=iDz݆7ضjš,÷cW6O!gҺW~ bAt\~ ldԳұXmTmgg6 |B9s<2Őŧ,!+XԻ<ŀe7{[e2Vpo{'w̽;>'}"ODp0>eS}gs 3>}.ϙ{/̽ܳjFh-ŐS XBk),b),CFh-ŀ%bܳCR Y{Z#bܳZ!KpZkR Y{Z#b {Kh-ŐS Y=ŀ%bܳZC R Y{Z+bܳZZ!KpZkR Y{Z+bZK1d YkZ!KpZkRl8CwO1` {!R Y{Z'bܳ:Z!KpZR Y{Z'bZK1d YkZ!KpZR XBk),=kZK1d YkZDh-ŐS XBk),b}w*?.x UZ-8Qԫ. Ͷ*xa._'R3Oo[VidYh|zӷh4t7i>4]~\RI_Һn7|܆jx)uS})78SqCOGIjZ9M"'?eqPs0>jp=a[ g\֟LWMXp+ZGd5#bŋpA#6miġ-ۋY!IeuG5,isk6|},|.Ǔ~Ox=LxZ~/'$fYG Ԍ?\x&Fi֡lh]U(ʹ>x v=4dذǐu$c i=aA`:S7#c`@}20U#cN=+F73d1EV.# ,wuǻ(o!D_wC.סI c›~4=`?ڰSIn6:!euե;F)l?+3HgpN j1{]Xr@ 3p2 \aWhl5QbGRTA^v[n.Ԥ'!rـj"1&ҧmcu>hN^qYAE4,6XNQ*\^nfOdz>E9 4:TNdFI:(8߶ʚSL,-!e){r0Z-}&֘a֝!R Y^`1-'h9-ǴA+aZ0TJV*hL+2 ZiVδ噖<21עŀ-ʹ 2˽rO1d Z,F=Ő%h!CroS Y˽rO1d Z,F=Ő%h!CroS Y\brO1d Z,V=Ő%h[!CroS Y˽rO1d Z,V=Ő%h[!CroS Y˽rO1d Z,N=Őŵ(,!CrS Y˽rO1d Z,N=Ő%h;!CrS Y˽rO1d Z,N=Ő%h;!Crŀ%bZ_ ] }v ?,goo~ o ^eo~=lCqj1zxݿ Z$FVb{ad#sqa_Fr6χmWtZ_w0r6DYÛ06F LtdV 7;WVûtd1}/{F9G߃ҫKAUýF%|Q% {tq`Sv۲|4!-~JWNi՝ZCVW긎 >~$se&ʕMOZM=M^ ,2=-0g ?l%zU-^hXLD5JUQ?] S$ʏS=\izaِp_~Ժ8? I,V$ciUKfC껻a cQjeG'MG46y}PO C ,?«qWS-h9DM vf%-'(fx|'dP aLe.pY&\ Wp Wp c\.pU WpU Wp Wp WMTrQR.jdd%.p)K%\JtSD=!JtSD=!JtSD=!JtSD=!*6@16D1\5{jCÕ^36D1\5{jCÕ^36D1\5{jCÕ^36D1\5{jCÕ^36D1\ {jCTEmbtOmbFԆ(+ѽatOmbFԆ(+ѽatOmbFԆ(+ѽatOmbFԆ(+ѽatOmb[FԆrxZ&%4?~XɿT&Umpd !Sr>L4*'VEnL{O[a|76c4(Wd¸2f14¬Rbj a84:O!U%ʪK|{i`Jtyڷ!qڜf=plmo;Y!R= qguva+^ni |R,8+J|gc V>z ePh_uC]^^@ANz}> 8L Y 4 BhkBQ̒ )A U7B{+Lj&ҕ( M8s٘b qn3`xk]X*)RGA%-ê^}BZ CO#[*̄`K`9/]/y P.~St t.| bi/=LCwֻg,E]ERAmRmfHIF.}߽}`]NOK66`9[Ni ۜuM,2]K Q (+`HcjL 5E[&%Aԋ!,]{Tz+5k5nzʼnt:Ee]#H@⽻,<*wBvdc5euj_2MMce1?imaCi&w8W.Dm<Cw_?/7_f8ߛzJpyW]FR*\. ZSukQ8Nk xhS;|k1w^>@X0.r/jR\R ;S(<8A G^tU[iUaa}Qq%%%IJa}MHpTPpEqᩅa1R(im~R45N.UڛnL iDZ=Kߴ:v(1m㗟~`endstream endobj 44578 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44579 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44580 0 obj <> endobj 44581 0 obj <> endobj 44582 0 obj <> endobj 44583 0 obj <> endobj 44584 0 obj <> endobj 44585 0 obj <> endobj 44586 0 obj <> endobj 44587 0 obj <> endobj 44588 0 obj <> endobj 44589 0 obj <> endobj 44590 0 obj <> endobj 44591 0 obj <> endobj 44592 0 obj <> endobj 44593 0 obj <> endobj 44594 0 obj <> stream q /X1 Do Q q endstream endobj 44595 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44596 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44597 0 obj <> stream HWko۸_ (C,H۴^lR4Z@R,\[I[^[nvċ \hMrg<8O?]?HTT1+u2. 24xec$6?5ϳѼힻMlM;7mtVƏMw~*U\q^FIaI})K;Ҭq=B橘z vJ wfٮfə̳k]*-Kg}f :`H2ΗCR"/,^QT0pfwUFUN9UȩGd* Q Ya8KE0d j"O1`IF KF +F +F +F kFkFpd\K1d1JƵ[Fq-ŐR Yz!+TO1`1kZ!QV1R Yq-ŐŨ\R Xk),F}ZŸbbUk),ƵC>pb\K1d1*Ƶ[Fq-ŐR Yz!+TO1`1k5Z!QV3R Yq-ŐŨ\R Xk),F}Z͸bbՌk),ƵC>pf\K1d1jƵ[F9Z!+TO1`1BCVJq|Zb~".*Qr[ߣ,J, 5#\:ʑuvQ'Ssŋ-3Bg}tm?w۳͉0IǮ?6yl47ڟ M9JnI9Vʼ{\7 u+Yw$FjV)/mϾY-)"KUjgk'ߺieZO^ru36kcTf ֹجͬoJzwz8N 5Nn>\]y}2xpq5{>u^kmG1k̞]k=nlvEJY=a؈=ۭB6:"w'a8ЈXx>F#2"pXJ4c$^ZܫK"bmK62F}Sۧ}=ClrvUz}OGτeZHY}+`cGtlj`/3C& 4/$`8 jc^; 8:\Cr8]'d6UҀt.Ds cv~5D& ;١l-R$|OSg?Q._6 e߇>i&=>qֳ?(cácci`yiFaU4#ȕOlSdHH=}k*MXܤ94,T{ElueR(?]s?ᠾ6l%r\}=u?|rXc)}C4.c3Jzb;t 3g#vqt|d҃~H,!N`n|0-z.ᾘ)b rbJ7׎i[%{]2ovu“c8"~i]SH+{?JWiEq+k|*MKIuLjHBBgМ϶GAI-!$l5ڴG<<DE r2M/G,Vk7AT+d7&gW4zُn"yܔPe: D!o.% ib鹧fkPwW /Y{$nU 0#z_*1dH`u{3\dkj7Dܣ({⌇m;b^b'g dQ',K/x ƒDOpKDOFO;n@d,g-G, u8!9GV[]\fft t(zg.Z.E4vrv[1_t u7| ? A ƇxhW5.+KGvI7Fʲ$ @V,ye mAuH&)2dsR4GkT Kbh(o8a2xuWN6E]SV,P9Q'r=*hVe`^=^; eFnxQN& ['^b4Lh@Zώ鳴{ouDMa}{/4]sVxT 8ʘQG܂R}_Ə͙*cS]&FE zAJcoe +e$`{9D+ŀdQ }]#9T 䪛}_g2K[baE9 7u81 (za @v@:45zo$ vEjְ, .rd)\{Ci0H×%2N"' V:4sN) {:ВX9-& *OJ͉A_Q",,_4aa4MXVo.DM& _D1Nش@WM{>S}w 0T[endstream endobj 44598 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44599 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44600 0 obj <> endobj 44601 0 obj <> stream q /X1 Do Q q endstream endobj 44602 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44603 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44604 0 obj <> stream HWko_1uyP$m8,Z4 D<{)J=I Ñ|rrfxݘOLb?yvп.4Йlԙu,\G&Tuu=1:t&zYF^9cM9 $1)HdInE+[?Yv{߻\zܘc&f}դݟ_uCz<]J+MMժ'rZ9Z;ZSx^F 9bs)"llb.>kCb&*0v)$9.";eTShN!86$1f$F,k5K`JKzVp{;^W=p>AOTOTOTC~ ϔ ϔ ϔϕϕ/W[DVb%F,Z1K{ VbUkhĘܫ:Z VbUkhĘܫ:Z VbUkhĘܫ:Z VbUkhĘܫ:Z-"Z+1fi#hĘKYڽĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hĈZ+1fVbUk=hQ{ Vb%,^b{Z+1fVb{Z+1fVb{Z+1fVb{Z+1fVb({ Vb%,|6cpX$[&G14K`*Kie@+SZʔVr\i@PZ*KĘ$eZVi9唖ZNiy啖Z^iVZAi@+UZ)Rw cRw ?ȽĘTȽ,A%,%1>0-{r/1>0-{r/1> -{r/1> -{r/1-{r/1-{r/1޾-{r/1޾-{r/1ޘ-{r/1ޘk-1KkI@K>K@K>K7@K>K7@K>K@K>K@K>K7@K>K7@K>K@K>KZKbZM+ROA(`9:YD/hPXS΢bK0 " 2"^Nwʜo_~TǙ?Mz=J|ZIZ5궹1Ȏ\ڹ,_+^3'fq /Nvol7틋cN]tsſ.M2%yP #Y>l^6:!ͱ,rtHvߏY;"P*'4ɱ?Ux3iiȃqs$ilw8ƨͣyjqznl^_mnFV߫ɨEhҴ[jMI&kN_>Gi3G!W;;GΝK:½V>2l }W>G6cߛܻx'.[Bgb'"$4Kqtcո3| ]/hBb-3}ILf'f]te;bu6X7=[s75%{^gw6;oLȻtcY/ =Ll W[ѪtskEG`!J\d w nu#2ON;v몙|I4Oy#5;z/>A?*Φqr̚o*I-v)]{oFϫu{-tFN5kbl/pd(6ٳ l"5z^RXm}66F!}14K`*Kie@+SZʔVr\i@PZ*KĘ$F, Ҳ@*-r@)-@+ @+(hJ+Z*^bZ*^bZ*^bZ*^bZ*^bZ#ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘTȽĘ$F,{1 h{1 h{1 h{1 h{1 h{1 h{1 h{1 h{1 hܧ c֒@%,EʢW,AihlYpNN9t^Mn]A&cujTflUuk4Wl׼%?8n 0&F+endstream endobj 44605 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44606 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44607 0 obj <> stream q /X1 Do Q q endstream endobj 44608 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44609 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44610 0 obj <> stream HW]o7}_GX}H P`٠PeVֲl;$Z7iPktt]_>+tJ8>p>ٺ{wqyeŗe\w^=/zܔM~f[mM_W7mvTbSl/v1BBh{8xT}dEJH=k7_YЩR@Bq7k)(v;];x 0)-Ѽz\ZFj=&Nibi1@?k᥍"h)b<;j|SJ?^b:)iq IBް&*5HT%j}g(W=r^{$ZzFΰ7ТBѶ%4ϩ8cShA]ܬ/`=;<eāp:ƨ4l$bսpK:ç?,}Oޡ~p<9qqϞ`"xxQNT[IQpUnFK-1m{t6'BJCWX(,4\pqqyh\H,>,3bž%mȲ1+-e oYWK1\6tG uIz?Q̖ut֕Lǒ/msj<%=ߑ &jD e>}#A0ǑBGJ0ѯu1R_r|AXҢ*8Mgv/iZv:TfQO}!TSy*68LA\Z7L& tO\ςj2volr9*/%!(oSgb-N D|-HtR9>dq$a$Uؤ=]iԋsB.*7X1XVGדLxs3]jO ҕv^Y)xnHs` ݒ(:O)U;c)3/An SҾ8A{a$=|^ܞ 8PDQ h l~:CuSKVgu\IpBIgp<}9)v6Ki1}8-ZJK=ҢҚoYJcR -e+ NKʊpڐ}Na1;^lC'=kBYYӌtapƱf4 ubf4^YEoX*ѩ&ѻ*%ڣLdL$L$]g"dH7HQVHՙS&,2a8ڕƒlXGVYكX0 ˖<}ĝ#.2nϒc&ύLƗLX5NVYɿ:1Tvcy&g>FrU#mʘI[9rԸIM$uB^5%*VLaY4mg W, zF35KUΣ0@:R&KtAѭנCnpT{py\?PBs/娒kj}0Ի5LC mmVGO\v[d:;\461F-\jf^b/i <Z \SVtP9+JAjmX|E m-%Q4Tۙ%H8fw3F6 `DS *w @+acnD)'%dJP5F93 /4xg2ah\=%@@Hxӥ]y72hlIxx/Â_Owt*M`BB#ꊪ6!^ p'ꇶ+n_zOm]y^ڪĺej r. x%25fE 7-%⇅edE1~ϭws"m/lc dgO⠍/qlu-Ʉ[rFQEײWѕ/?V3mOMGeW cTHh}eS ŘپO0ޛbP&^]0=M[KT]S@|ll3Vz*b%-@4<?Ec 3]Y] isOV62o&кV.]5ߪX[A_nJ̎/誶OMatRzZYX}I8& с\\CY4$Ng+IGY4G\Y .C@w8^guRNu]lcfdI@WQ1dOөg*8Pʍ80=MC܀fVV,EWƦImc:u`KFkT&PC$?L$#o}>'H7BZ63o!|&.fGm0[*oH~EcPU } k C' iw>y 1몢*OD*^*YWi~ٱsH {]w(ڛQ5ڞWA[ܭ nm02eӞGW1]1_ݖZJCt^ҚuBGTe?łQ[vWҴ9;R;5q\{C̛rq,߷[D`ʆReYHWz}U&ܹ0I뛡IOK}*Cv~B0sd3mWңٔKM}-\N#&&}95qM,2q`*IlgÃɀOT"scW4av4˹MD[.A@u^~Vbĥ*KlXbgn{;ZzzLRAF+䙀4h8]ixg7HN5WI7#mS}vLr}gRw8v$iR%riFV&OMfڮ]BA!p/٬*(W>}\oKQ~uF廇7ޛo\rendstream endobj 44611 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44612 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44613 0 obj <> stream q /X1 Do Q q endstream endobj 44614 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44615 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44616 0 obj <> stream HW]oܸ}ׯ`i~Jd!"i-I(3rtFrG8Nb\űcϞ]K&/^;K043ͭb2Չ`*\VRcu(ce*FOmb\o$&&3c\89$oӛrUM.]߼F{n(ti\ì"R9ť6/67'MVKbL F ^۱+ # COnoC9>H#R!+.Ā%e 0dYj2bRzWzׄzׄzׄz7z7zzzzY>#gPGsB} y]]}#J´!vHCV>ĀE6Đ1dC XkC Yȵpm!PV 1` 1d#*µ!,B}ZE6ĀE6ĐE\׆kC>r"\b"GUkChµ!X}pm!+VbȊՇ׆k5C>r&\b"\b"GՄkC Yȵpmpm!PV 1d#jµ!,µ!,B}ZM6ĐE\ ׆!1kC YCV>Đ1` 1d#µ!,B}ZC6ĀE6ĐE\k׆k C>r!\b"G5kC XkC Yȵpm!P Cb ׆b!,µ!X}!etyD0-^&IMmw jʱ|HͷD(Rq͌j[ٗb*[I=wzn[P UzR:W,3y/oG05N6-7/ŕTO_o9s\ JǪ]z64฀&s(.Sg<"~Je\fF7_˲jS>Ô8i19eJ2r\+ȈČK*B%nq(Va8eE塸kҥz&r٥v)^#1kON+۲bvWM}U~VAMѲ'AD41}Вu޴Cvn)c7 PY4/[ M58 6(#40Z J"!Ȭie}cs}SF]y!$۶9}S8mL#%>~X/ն۸ D^EE]Eta @1"Z.3$EQ$Y!g8g0ڿ#tF"*4E*6,Z^T} ~",-? 1Rmf$8j=;{q}-={%>&& ks6ƼF5!AIrXZ՚NN8}}:S&qp1'.LX(Y.Z->9a&71'7 wi`ͅ^h9DQUyY7 bYYzoatL*`P1@%G+BYqe3 :!&k@R]eTeOfz.px? 0^Yc]]C%^b;{A3`nZW 0FbB3ǔ)^l;K%ARʃG&Y U6V 4; Ғa&5|yT;-2fCS-]M k Ȯi Iyc_Jh>$٦ء[z)N5f֋ej~+T7qرCgOi2> a$#\K&]~*Pr굺2rTl齗ǤIL_ӣz- s|c&p4 M(Fpg6 {XGg©K8q]Nt|lq_{cqAC{qloVz1q"bK^V-aZaAmq b֗ a8lhfY;V-rJT}_7&DO?fSPI/4qBOKsfK6f1-wꇒ.C̟^=^NX bhZtrQ݄N>ͺOͷ: i=6 ,xk8d #|%sW'@Gc$Pbs0)(+@+sVto i%w1L}aY܎//"7R^LRu{U/ю|\W^jV'$8t}fW˪Zb:/~rI_W>o\AbUPy\wycٟ?D,endstream endobj 44617 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44618 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44619 0 obj <> endobj 44620 0 obj <> endobj 44621 0 obj <> stream H\n0 yCi%V?ZF@xٸ!A~Q>۟q<u:{Q׍w, ^Vvk۪WaĶuLGt8aOϮBEoahU?}煎ηcaM^jQGsزttތӒbS:+1c;C_Y bzrz|} *KXǴG#If̴' Zx͜ {=q*R>e}0aC R Xփ ̒<[-Nx\;p ;pFowýf؛of؛PCH?foo!6ϛ'x|ƾ5E~եendstream endobj 44622 0 obj <> endobj 44623 0 obj <> endobj 44624 0 obj <> endobj 44625 0 obj <> endobj 44626 0 obj <> endobj 44627 0 obj <> stream q /X1 Do Q q endstream endobj 44628 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44629 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44630 0 obj <> stream H|k>j W|HmW`72m+%W!(Y{0`yq|Wѷ>(6PAh?Ԝ,R)'E|M64*oj>4UӖ'ӷeYt6?l7O[hox,e$RmO>lr)bd bJ!T}Oa:zs^-L-ĦHkiZ%4ďoؖ^9lX2KȂ1sL M(,Tc?PI1>QReSW^z3Y)<Ӄ $nΦvnqs-w5,oޡhJ̔y(Xv.ZS3 Ck.'`zyZpwOF |.5}G^UMߩ1peɜm!WRE, Ə62Ġ^,͘K~Av9jy( E4IcA>@Z[eZ;/k5Yڙ$TtQ}S\zet6ۙhW3Ye=@v:A׷蚷e\Mہ+vuhBL-P^P㏨ewT`SRWo~[[}[K?0|r"w$,=dEsgMwz:7]WV[svr Ϡ(q:.Z ><(bTsoۗݜ~c I*{ž:v,Vo.1{rzHh DwH)  JJ~~7!m֢K2PTE'k+FE4W"4$LΦ v5^AM.$3?6e9y-Asʈ;|Oh7ؒx!F㢁9|Ͼ@ӻ)Ql.lСBQWwYAs5糣LdIO"uCz΃{j~Xi|G5  %澯,ӐDcޙ>/SuR`Y>;Y:}M^gGy0}3`h=1+1WPc>{ g Tkk ƨc6 Vr0NxNX\LpӀ;| ^FIFeWOۨ9Mɵ\+acMc@ r5O)F4NV(Ycw:aβhЪ*($܎8*pvZ h9/vYeE^G,Bޟ^)ߪ 2Q@ G &2$,KlNO0eϦȫÂIlP="Z,I$i:']<.ѢCgNX Kr6qSSWͱkT^QH$P=#}&P>ׇ'[_K#AsޏXZoS==B`x*jbi1Ƒ}l?)|A]3!\?,TyTc9ڢfc<\K܅LJK!]h(PWwln +s`~ʙeƴQX%蛊sXl}b^0=nkK|!.riՌ(蛓*)V WǮ5i1vմ0fIYH;> .Q7u_$Ӛ/=4eA@#6pnZ?E1C59]x#SHt2h(Px9!*{0߽5':,s͠1m^'5u͟0%IU}s^)?VӡYe `ĖЃ8ˇͯ Jgendstream endobj 44631 0 obj <>/P 378 0 R/Type/Annot/A 44636 0 R/Subtype/Link/Rect[131.121002 539.020996 408.201996 673.916016]/Border[0 0 0]/H/N>> endobj 44632 0 obj <>/P 378 0 R/Type/Annot/A 44635 0 R/Subtype/Link/Rect[93.6000977 416.627991 199.356003 436.308014]/Border[0 0 0]/H/N>> endobj 44633 0 obj <>/P 378 0 R/Type/Annot/A 44634 0 R/Subtype/Link/Rect[93.5998001 236.628006 235.259003 256.308014]/Border[0 0 0]/H/N>> endobj 44634 0 obj <> endobj 44635 0 obj <> endobj 44636 0 obj <> endobj 44637 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44638 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44639 0 obj <> endobj 44640 0 obj <> stream q /X1 Do Q q endstream endobj 44641 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44642 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44643 0 obj <> stream HWm6_2J|Hh"ŵW4.z-$fߌH29vz6 Gm}o%߿E*Yj"Hi2`Gm#IH*ZVz*6eV?~CxZܯ?yF$Id"1<금9ϖ/L\RX:~m6z7+]TOx4fX=Lv_<qwE>|?>7GǏ xI3, ?%6Z@|I4> _8 | 1ä@QtP=MCP```/`/`/`/`/```> g,`}N9>kk }ٔ;.8Z߇Z߇CTPC>P-'TET >@}"j}j9Z(BQ@PC>P-'TE!`}"j}q!>D}>D}BPj}jZ߇(}ZAPC>P TET+>@}"j}jZ(BQ@PC>P T I!*dE!*d}"TET+ >DJBPj}j%Z߇(}ZIPC>P$TET+ >@}"j}j%Zw\(BQ!{(BQ!{߇a%ofn7jţ4Zup#eQhu\w_i'ni Lt# =9K/Nx8%XUGW& |__ufˣOlϪ>}v>˯Ի2qMяQpܗC&ynj¸$,1jZK]rQo!^dmQ76ry1,Kx6M71UD.1۲?5a2jMôa|@$͔ukXE_5t}џ:ٍil<++s4͆MK6qVG<^_@Kv2h fbR0XTY(rTi]1 لYǂi뛊L0t:Qۢk\Q lN㩏vV;G];fIS]U$xlή)d*6N-S!g`9M1LDŦ?^܂_鼊dWq;t33GA!V&4'(jY\֮iUSq$f5Snݏ/WvZXT~ј`!?jjH9J^$e2aH0yU7O(j,a&Mt,Aٰ?>ǥ5k l>$.n2xZTu VT XΫJ7iBK &!Q}BgBÉƛiO*jZ6kK[_ϰ Q = Aog i_\ I9^\92W77XgXMph>hQ`2lqح<Ԫ]%>6]yx?-ѝ57;p،]NrM:=0tA6#ITÝ-"d gfS!lJ%I3X ]ǿw+1?3Z'_myGfl]UfrMߎS7ؖRu<0Ynve5 ?~+jkn3:(ؙ{Pӡl\DOS22~+!w }vPWp5VOg^0!!8T@ec\pw?jGµBXe̙CK!W,Na%*?cq(I&fX͵∭ ﰵ>SI _:|_z٩ꪯCߡGJJeu@Zh7w*O>V2Wqrclt=?Éo=M(=A!xl3R{T!7+LL :X0%M\j')zO9 +.GLCֹ[i{LӟH>6~[mmӶe4f8zLj!!W[vFvۥ8и!BWe?em+s}GĽ-< j2l YE=g{_D C.I<\/>hh4HџwyTWO x<τ1EϯÓN?]/3v/e:pOվ~-;/puf6}O'|nvΧpg򗾶il^^b.L!Yw<Ǫqo4ޖ?a{]e[\`.W']sM^V:k"[]dn)E V:Ngst1X"EE Vd3XIf1eYƳbu1Jg,bnQg,bnjtV3sj`i{f{fn=3X=3,ӽIޤ{to}{f{fnE,힙[v v̭ZgKgKgVh`ij{f{fnu=3X=3z,,힙[ޤ{to} =3X=3v v̭JgKgKgV33s+i`ij{f{fn=3X=3:,,힙[v v-toҽe7 =3X=3v v voqw6m\zegʺ ˟(mSIy[hׇMV'߅Х| f2BX_(?Dǭ-5,O3Hǭ> ) GqM\??[-_"loeÍ!1̋Y˽u:ŸJӅmntri9Me3߲q:߶å-~.6M,.o.A_wXkܫ7Blpd\tǷ˵5]֒aMQ,bzE nt1,"YİFE Va 2$,YY`:Jg,bXt"YİE Vw_%],],],],VL&[{-ӽquaaaaaaaaatoҽe7>,],VX,,],],],],VX,,],L&[{33 33}G.0^OCendstream endobj 44644 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44645 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44646 0 obj <> endobj 44647 0 obj <> endobj 44648 0 obj <> endobj 44649 0 obj <> endobj 44650 0 obj <> endobj 44651 0 obj <> endobj 44652 0 obj <> endobj 44653 0 obj <> endobj 44654 0 obj <> endobj 44655 0 obj <> endobj 44656 0 obj <> stream HV{PS?w$7\&. tk!@ .hZW붺]kG]wW:Fc묮uU;nD;|{s.B~vGu\}f jFӮb[͌&ǗƎۨ&MNSBXB\_BǮ=egN x1G-Bow3zcGIOIgj+_[ktpBg*Sy:ELFJYz%B dW ynӣ( ϲͪxw{g' &p:D io-~uBgXw4afK̈wG:ݺ/<ӭ u932TId!M/pFWkF]͍WvVwVN6@gәUtwE<4խZޕִJYw9K+N"1KO޺ <ރj]MfP穳 "b`F] w-n/rf7ʗ⯟a F* 浏=Hytz'3zc1b3i^Z&vUU7$TUS 6W}zR1b W^Sq8:H&Q?q_3Z^38FvuD{xGU!V~ڶWzbk'ylib8Q%ֈ1q$<@($qp+ q8dB~#Uew.x,ck-aeq^YPZ\Nw}\:P d8FA !Ȓ9FO$wbe=+߇ƿ!@PZh$ XF#;a'.C})IR! 4Ʌ rg4Ye#C#+""7G|jU4?Z6ᘈ7bzbv\Ūc[c{vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km Tendstream endobj 44657 0 obj <> endobj 44658 0 obj <> endobj 44659 0 obj <> endobj 44660 0 obj <> stream q /X1 Do Q q endstream endobj 44661 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44662 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44663 0 obj <> stream H[+:ȋ/45{8 1 ё(Hx俧IH甀).u(վW^|zgׯ6-1^֫t:ȝάɿT!1Qmv77 oz7fnYe> qT*R7ɗz7V]Y:36Ǹp׹<צ(Kgպo.:?eHrSo 7O:tWKN_퐾;.`Y#?͓)x\lY}8mգ2mǿ՗Z$\,:%7I(΄u9 gdcL5v\1bQxvcdxEʂV HDz;ށN =HE D D DEE/D/D/D/E/E>bf Zm kD\Z%s(kS5@z1L-׈Z0\Zҋ`jFH/ւZr(^LS5@z1L-"kDbj-Zҋ`jIZ%s-R`jFL5dzE L-׈:0\# Sr-R`jFH/ցQ ZkS5@z1L-׈:0\Zҋu`jFH/ց&`jFLϵHQ2=׈)0\# Sr(^LS˵HQ ZkDbj=ZE L-׈z0\# Sr-R`jFH/փQ Zk$S5dzE L-׈FLt49y$o|ʨ}bAcU5$_fU^bmfS_}N,^lWjtNM 0./E)\-so1Ws<ޏjj`Quxz,dBӅlLyꞨ!0ASO,HJ; 64d'1#QX]!}~{ٽ`3NG3h2 46K?}X'xPftAxM3wJ ,|u`dR!-8lϧϙR[n|yݟYvz977C;m|-O[tnuA2?L*=/C-͚KpK 6]EFi)۝nbܡjߍi<.cjwf׋MU5)g_\حds1Vj] n?1~yx>JoHBߐ\#*Jxy兗^^xe+^ʄWr\x^*W JURxW^{Tzq(ŵHe^FxYe^kD/{ z5QKނs(%zoAF\# x[{D=׈^\=׈^kD/{z5QKށs(%z@Fw\# x;{D=׈^kDI/E kD/{z5QKރs(%zAF\# x{{D==׈^kD/ kDI/E kDI㣞~OFqx(s.և%=32Mg桭zzxt`+sŕ兕4-񩣯f~6Kz`=÷jŧ^QXcM|vh2p|j)}PkV]uط$=VaUvաՋg|G}iujs5;^))lŶ]v<>^Nk {u7ktO?({w{v*.Ui;Y*lmK+պXKs,ȴ?]J]åMbowFh{n+Ӟ.m4_igb$#ˈw4b$X)xQ|=7G]kQԇ'h9>h(PW z!Ź֛=r\EҒd+%P#|9e1>mP_.To(FzXɃW0@Z?FN3J{70T#$02" =lf -d3Y(%d;dYV1?;v]!&%,cD]FOs{vk.9s)kI$ 0upϷ2(Enuz &IDkhiV!i%iʃ.AԷm=4&(@m:UTFJ&>&km̐<>d>Ŧ׺=Citn&*9M+m P$"&/mKoϺ&M>:]v4OqX"b=ky&r;!ChNmwW8I02KHQ y\Y;F`gSgE W@2Xp'UwV}A73< Pʽ[yb| b4tVW E˜,b7[1l(X(%ˍ~iu0.V D汐_4Z$,%9:,1j2B?<^d0֗LvcBVXʜcBj[k|̀joiqS`ĊQ Wt܅L~L%o-9@7-q(ITF=vx/)te;#Su<|+XVѐX z}M<|x.c"`n"%$8xk%072+bAM 6}/~S)!oLm CIdn#…$! +psOiLX'j6#Fךx>d<++<+`l8]31(T:bL\* <y9,(jH:g1"*b`{]5\HsULp"\gR,ƣ2K( BDK=huW+$$..R OG0–o|~s~ӽ>CӇ)ģn>B.];b$t"Ro}FTX[pI`GZ{RN O6SW2TҘxfv=,2䑤lN]VP"-&0r![!e-ELkU\PEH,or c0!X, JEQh~*y׷w`6'iYBe[k=\]!Ji'FLgx>_m=?7 0Pendstream endobj 44664 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44665 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44666 0 obj <> endobj 44667 0 obj <> endobj 44668 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44669 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44670 0 obj <> endobj 44671 0 obj <> endobj 44672 0 obj <> endobj 44673 0 obj <> endobj 44674 0 obj <> endobj 44675 0 obj <> endobj 44676 0 obj <> endobj 44677 0 obj <> endobj 44678 0 obj <> endobj 44679 0 obj <> endobj 44680 0 obj <> endobj 44681 0 obj <> endobj 44682 0 obj <> stream q /X1 Do Q q endstream endobj 44683 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44684 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44685 0 obj <> stream HWm6_A j $k-Z Lճ%g7CRL@l4=>Co#ww?a)o?#^1_(2+rdt+뢔=F,E]hz< ;=Ut%l*$e &+Ғӓgvu#4z;CU*n[?98};m W? uN$KDIy^+YD*Jnӳڿd"3){YT<KK|8s|Lb*S||8QQs}{{{{{W{W{Y>#g`s} y `_ }/ e$ؗ`_+}YN#A!*dE!*d}"TET+>D BPj}jZ߇(}ZAPC>P TET+>@}"j}jZ߷$Z߇Z߇CTPC>P$TET+ >@}"j}j%Z(BQ@PC>P$TE!`V}"j}>Rj}BPj}BQ!{(BQ@PC>P"TE!`V}"Uj}>D*BQ@PZ߇(}ZE!`V}(#T}"T} WIUUoa6*]qD7iSxKrb}(0JxP .SXx2M*G*d%3}KuySm9ՇKTeS~? և+^Ͷ\m7^_ؿbD\sVX,xDGا<Jn2png`vܚoW+'p'yq٧E (W(·]S[&KENKFz3ꃿB:qSef˄$-129Ax}1WCfj7Om%kU:M;<\5g¸]Š[ذǘ9o.g"o _#d"4f7q7&2nG\z~"s3z`u_љ/ ai\=p)6 d\ū\Dz,r=K^B_h izŲRXfoаGS4noJaɌvVo3MBnܸG :q9..JaKB$d%Є~J2>tz^l~zgVVkɶZ?Dgk2 P)AYGI`4n_wf2CmoҚL0q{=YSn^_,Q"߽-L+syM,'+6Q9(R U B@G*öW8JpwN ԄUY? Q-KUR63( $UZOh):N;(aӵyp-U{9usPXi?{tv*i5^3֜>J^@'J8a~*!יRgѐ+X)#/G<#i20N4}ٚ9J8"h|lxpdNIQ,FĻY,jMy g+vz +Yg)O,]׏na`C;tM6@ d4z-kxzϡQj5~c|2ɪsq+]ּ+ilUZ-4W7M+BNk<-F8 w9)e9пn/'m]/m4%SMP_{ݹ@~Pv9*[j~tچL3[yY Fm 4m9ZkQjcRog~} O?;..ϛ~W̊Ttmh SE֟eV *rT<)U Na7/Pgޑ Pfpr>mp6joI҉xQ3GcgnY3vGxvUfʊBUT& )[)Y*8ΐm/FE"e5iOG} z_z 3P֡5ye\%]_L哝/ aޔQ^32V@-z77n3 6ʰ gT8R W2Gz1pKh)l+G!!4DTQr^S(F8᧟VO=?)؁E'vjx T WKFWKhdY+e8R"y/ !f`47U?a`N[]]>}ZwuHDV?dI`Zn未ѰZ6E.q2 !$RPgp[F3Oah' wUkGõjXJHf-1%GzG pTt>0Pctz)ES+qnN r>\$:*9 I$_C+0S;ܜ _R|?zCb\G1bxIu_]%x165R+/nH*#q]bf˨ ~G;޹*o>_w'.F194$b51:JvpOIcǜq)-c1V5}R!?ʦwNA(j1t(ӴqlB&E?*C&iN SV +uy…>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44687 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44688 0 obj <> endobj 44689 0 obj <> endobj 44690 0 obj <> endobj 44691 0 obj <> endobj 44692 0 obj <> endobj 44693 0 obj <> endobj 44694 0 obj <> endobj 44695 0 obj <> endobj 44696 0 obj <> endobj 44697 0 obj <> endobj 44698 0 obj <> endobj 44699 0 obj <> endobj 44700 0 obj <> endobj 44701 0 obj <> endobj 44702 0 obj <> endobj 44703 0 obj <> endobj 44704 0 obj <> endobj 44705 0 obj <> endobj 44706 0 obj <> endobj 44707 0 obj <> endobj 44708 0 obj <> endobj 44709 0 obj <> endobj 44710 0 obj <> endobj 44711 0 obj <> endobj 44712 0 obj <> endobj 44713 0 obj <> endobj 44714 0 obj <> endobj 44715 0 obj <> endobj 44716 0 obj <> stream q /X1 Do Q q endstream endobj 44717 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44718 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44719 0 obj <> stream HWko8_A`8@/=vm[/:@RMje#HbEC<$/zuͯ,a_]gU b:q*XX ֙ k=FU,lr~wmv ]b]]챏.%&gMT +X},r-̯G:qc>cS=z)Ewr?㱉ɬk؞/\`" x>Gv5ak2ܖ΀: 9E)'2 a̲0,C,K,P<ƀ%"P/"P/ 2P/ 2P/ 2P*P*P :P :P :P@}JO> g,P@}N9>"P_r´Ep-,+T1`Ře1fYzp-,PVŘe µZY>p \1"k1,µ,B}ZAcE\+b Xk1fYp-,PV.k1fYzp-,+T1 c Xk1fYp-,PVb̲k%ZY>p$\1`ŘeJµ,B}ZIc"\1"k1fYp-v"\1 c Xk1fYzYVc"\1"Uk1fYp-ƀEcE\b̲kZp-,PVŘe*µZY>p"\1"Uk14ZYVc"\1 c̲BE\b UW2^oqD<q(,M Ew7u߲E84kC٬a[S=i;WwW<_+0U`oRyi}rhw*8STkq]Iz g' ;;n?Z~e'u>^f:OI oG{B#4krh6߂O#!A;0k\1P_$[;7E %K]Ȧ؇RL6"izlG&qlJ6 ]~f.ǖqiju| v1VcLPo.lGtrԭY8g;=ijX$=655szj]iLjjLYVҪF،'1O<=t?9nw{Xd0Y_]$0\ubmֹԻP".3?yh[TslT9HxM6S%}Tq*& n˅>U.C#eáυ&/]+!ʼܛUu/e꒹UsFmz +⢷9!Q^'Hy5 6mbwJ%Xg/GK37ŵRDž\1=K<kgGp :۸w,Af+3h{)}XAbɧ}Xmٰn/X5lm6X60|}:nW50f>;bb0 KNU}Xwo_[aۓӝ_j=X5 J/\zc{ncfШ/h/L|b*V)d1x8& U#h~VM.h_‰a)T6 b:lz` 0vbMYsJ)yJ&._6'ռ3Ԭbns鬚OOƕ+{si]5vI?WT'J(|q5 ,; vL9m5N ܽ~5],-3]5Ʒ Vq4&\ǙS~>~x0]cò`ۋSOZ]DO2mue.t;V~j8Ug, ڴ;g j9Q>l壁d~}Օ{,ϛ?s?XvL35Z/ʮqoiM3='Oav OMŸy:,ž/h$<}L2R鉸 %Xfp=qNg;$ 6Cؤ*G] Vm |_ᐋ:ƒlNB` C2;qC{&>_eIٜ\z_ܪRS Կ&BȌ-L=J- '{)-26B86snzꏓ!1DAhk9уeXC )o*W'7 Dѿ;)^&!uXS9"lW&4do+ib ek<^?hRd S8O ]6;KU.;?,*W]j D{bsΚ0obljb27ESX]bt*xN?>/P 882 0 R/Type/Annot/A 44721 0 R/Subtype/Link/Rect[93.6007996 557.629028 300.287994 577.309021]/Border[0 0 0]/H/N>> endobj 44721 0 obj <> endobj 44722 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44723 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44724 0 obj <> endobj 44725 0 obj <> stream q /X1 Do Q q endstream endobj 44726 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44727 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44728 0 obj <> stream HtW]s۶}4c:vjd:4I)%);%@Y֓q8:=m ᯿\| //&#V?a(a(a pPU~VmvzNWa;|-?"dbHasYm0ŏ(`Q\Hv v| ._ԪT8?I<)Lt6ԃnua'*_B7 ]_2 F<۠up)|NpX,ԧSSO}F<>gSsO}N=zϳ0mNŐw1`u1d] YzZCs-'\b"{k] Xk] Yzϵp!P﹖u1`u1d=rµ.,BZNŀEŐE\ ׺k9Zp!Wb"\bջ|.,µ.,BZAŐE\+׺׺kZCs \b"\b"{k] Yzϵpp!PVu1d= µ. $ZCŀEŐw1d] Xk] Yzϵp!PVu1`u1d=Jµ.,BZIŀEŐE\+ ׺k%ZZCs$\b"{k]l$k] YzZCŐ/(dÿl! # BDiE_gWsvΒKj~}q w{;/sJSu~\uTZКvor)n;K(mú}V'&wOOm7Qe`U4¨qL&x*) ګhV\6eƙO(d5Ս8Vwŏ vH9bW-z2mh"ݟؠ1WG{aCZ9 $3uSTyRRLRrY\8;#ɭ,2 UlZN"Gg'bO1_Td: wAM?Q ^u:1uٖ2mn5ƬC!v 2,y,fэ)2PN@V",ő@8z+dc`CM6`ZT7MǮÇkmszHIcJS,ɼ"XR'V_+{Z%i$K(OԓjBh E,p\sYʇjc_fmsuj44G6Ff1wIyST7;/͉oцpښj5+s7c'ag|cHjL *S16jOsX46K8&է/Y ~j#-⶞}xj؜N/PPI۾$*aGI S,5!rW5- lX{Z#(]`7h(ʖ`u~pHIhHμy깗 o:OZzn=OSxQY#Mw49j6Z~["K &v;;NdU˙;2hճEҭEq;uX@wMNES"õ(<%cݻm@=ƋYpV5ӦY쫃f u ~&+pu ({j 5i cXбdMXIӓb=x%Q(u6~T= ;;HBȠEДvp#$\gR ZJ6ca*ocĜl² 6̂q(ô#;S?8xR(shp>n#cqV;,sh"2ح.+/\jwٝOëRv?/!i2 ejYdk\'q`ŷ5F8Έ(ԯʴbfмlu*u=%{V׵6}(g̭ ?9 pRmesW;oL}2 ҵ~[C5%c0NUBpi{w>ϥkGE"5oi"y)%3 ]Oa[鴑[ʠ,gMmY5Q&k~DlhTr^"5sk{AFd vFfQE!qMs +-,yh:btDͥd _v4eCECLQU$/kǛ nN{i$1B OW_!Xendstream endobj 44729 0 obj <>/P 374 0 R/Type/Annot/A 44730 0 R/Subtype/Link/Rect[333.601013 254.210007 519.599976 271.890015]/Border[0 0 0]/H/N>> endobj 44730 0 obj <> endobj 44731 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44732 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44733 0 obj <> endobj 44734 0 obj <> stream q /X1 Do Q q endstream endobj 44735 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44736 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44737 0 obj <> stream HW]o}H฿lj%.,.W7 d&NbvlgǞ n&V='N|ӱ_~9}sv_8 aPLg2JKi6EA̮J/yWgͺٔUm۔o 28]/q $adie\bՕMN i{RYdb[UdZ·q8{R_.8=i|*o1707wv9f,02MgY&`9H,?ƀŹBeis^x^x%^z%^z%^z^y^y5^{5^{5^{B}O>%ԧPzSB}>#gzC7zC< b ZYc"\1c̲|ZYs \1"{k1,µ,BZAcE\+b Xk1fYzϵp-,PVb̲kZYs \*k1fYzp-,W1c Xk1fYzϵp-,PVb̲k%ZYs$\1`Ře=Jµ,BZIc"\1"{k1fYzϵp-ƪ@Ře1,µ,_=,W1`Ře=*µ,BZEc"\1"{Uk1fYzϵp-ƀEcE\b̲kZp-,PVŘe=*µMcb̲|,_1uUϗU&JXu7en7'< M^m}Ylث)캼+Zm[fnv6v'CƥAMNHȘۜN,S!"5gFy;>=#0oΗ_-Sq),뫲.Ip&Y )Q"X ':{%&Rqq/ջvR#2MepϖTZ&Y.fyd"1 $ڤQZ.ώOh: ,b7ߞ Y~7(ZA|3Z%pgW(iB= 8ZE{x䙝[xݧzX\v_||4?6~㱩&^\7*c1]4|puVQtf[e|ĭ2˟UG6҈;a?sL㏥"R^G*cRzVyԤ&RqxRnp,WG_}:mI`h*Q{2 #Έ9LcAYdpP^ xЈ*cк*n[VBs263dhy̓`%{"XA!OӸj{WUxlͰ\Id#ak!8+n1"B#f)+m1˲]m۶lj\Ų .k}W|3xWUs7,.Y[^$Š@0#9' o'O4 ۪7}!Cȕ ~k]^_=Ϣ+*`:AV%,wJܩ'|K{vEe׬}0wnl놩Ia~Km0mEsቝ3۲ vMآU4nMVEWph*nNRK|wcE<:s-|1@OqV7-~"X-wNB쨥;ZO&i ?ν4rY_`7]qċ-Vy`VUY]1a=PЇ۶Ob;˶9<y&aJyGC>[w7-eJ"6͐l8Alr 2^q OhZ@G `Lbْ26Y-qiaoLᲙ)~@9 UlbdQ:aY#;Z-;] VYX%5>@ޢz 7Js5o&MI4^)ŎM8q{%A*WݏUvI "< Wmk=UBQv[B_UQ5{cW~P!XGRчl ? 5mR_@?[#5ŌͰ)60E'/8\#Zv"/`*%8(3 +У ޚ04]$Tc],p5\X_Z[ ʴr5י+P ZWendstream endobj 44738 0 obj <>/P 726 0 R/Type/Annot/A 44739 0 R/Subtype/Link/Rect[93.6003036 307.348999 184.404999 327.028992]/Border[0 0 0]/H/N>> endobj 44739 0 obj <> endobj 44740 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44741 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44742 0 obj <> endobj 44743 0 obj <> endobj 44744 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44745 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44746 0 obj <> endobj 44747 0 obj <> endobj 44748 0 obj <> endobj 44749 0 obj <> endobj 44750 0 obj <> endobj 44751 0 obj <> stream q /X1 Do Q q endstream endobj 44752 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44753 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44754 0 obj <> stream HWmo6_Mox( 4N"uz9 y-JJn^E㇜G<3/ձO/,/it)LjK-rV:y6I~NdKww=um.V&T*C Hi搬2[o 4iȜJ7t rqBvBf&|XڧKe뫷OТ(̾~د6IKw{?&Zk*g))K\( g%W6qr\q#3(8ŀ%e",âڥS XQ"Q"Q#Q#Q#Qo"Qo"Qo#Qo#Qo#9>rb\K1`1kZ!QV1R Yȵq-ŐŨ\R Xk),F}ZŸbbGUk)vH4Z!+VO1`1bCVbb\K1d1#jƵC>rf\K1`1k5Z!QV3R Yȵq-ŐŨ\R Xk),F}Z͸bbGՌk)vH Z!+VO1`1bCVbb\K1d1#ƵC>ra\K1`1k Z!Q0R Yȵq-ŐŨ\kR Xk),F}ZøbbG5k)vH,Z!+VO1`1bCV I3o1j#өL7e&26y.uԺX5O ),o_ZqwWǺ>a}x>Vj.& &SJQ89iYH- ^@(g76+̼[>Yؐj_iʉ<`-Ŧy.r7چg>o7D.JYxKVYFARV?vG@g(%tYʉv<+,mZvON8 8g;-bbaE^Yb3RtX@0IH P̥sQk<;>r9%d槁Ø7Q̼0vǹCȵ7n}!MRׯf׸ݷ>ߵ -fHx?cx𩇣'ۺԇݲyNv >QsŁ-YS!&6^O'ukP}p =U^ Vd-=% 0O1Mbsdb UTS\XA/>6Áav OGZfNjx=T\ kOwm9 ϛ1F~?t'm ^r~Kf<&FMukt>JK Nf ݒ`Tq͛7髷uci֔TA]N瓠^=3Z,֙^#x[IXSf`Y;R$#\<_9]$^ ^dVCs\2BNTB%EVM38CC?n\lӻnƩPmm1 ݰ$ NDFJ{ծ #6#m 0VMfgv_/s}ѻ^jf|Q91 \ &˽P*SF2>lpU搰wllzpY>TO!А8n*I4z8IDq%&374Kx;!|Nwwi}n?q3U/(to.3r1?VMzUU2U 0x:rW¨~]znQI/b>Ty 6TyUޏàR f\+ Ylم_Yׯyu+ ȰE ]W\7}'Nxwΐ#$絃 S~7E}C7ޔ*_Ȧ6BiG-!j)Ex>+DC]l^Nu}^w ɫ_oq÷3@pRuJ[(p!yrrpہ߰:XKFq TVZ,< 蒢!F 2OXϖzOհ$(Ӡmq:ԘL]b#=Sz_}/g)\&w۶}bdfRZ.K\,-.gv*Dž; c5 cłXQuU, tV,n@˃Bẅ́iC^ WMo8WA⧄=E[n 졽(Mqr(x$μyF<3rK,D}B-pkkRn̰DhqlR<äzaU8;d3LPuE˜_j_DgU*~I ( l^ _}<-0i|wS,1 ӻs]x-toQOC `>>g䰕DsЯ'?7z"vK/^mlG҃\؜3?wUmɦ! Tⶋ992|H12Tʏ%*Jtw/^6-¿Xd@eKebf^'RO+\L͈{p~ oǫy@bS*U3C*)# 'YեRsxCzWoOEfr>"AS4G>|h Hxm\Lff>f:HwXȑ7iM^/;yina{c(&F+l6X|xwax)\oZlxf(KY򑂴h4Ľ:2ˡPkqfذ;vͫBp8d+kjk:?BϨcMQی/5̴7|߯Au6phlXβn彴K/.MOwuH JbG0N8-VU'!sWh@$ux]׾ϫgw ^Ѿ({0*(m] ]*VX!W[\KMay#:gZ>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44756 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44757 0 obj <> endobj 44758 0 obj <> stream q /X1 Do Q q endstream endobj 44759 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44760 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44761 0 obj <> stream HWߏ8~Gf1<$KNɝvt3QDh&͆nz:64PV]|.*+o]zo߰|ீ'/2TFJS} 8YpG}z6W.٩nKI26:b٦d9|.st>9_m<H`sy$3}[T[Fo4/#l^U'iǾZNS\E<'^&#n!C@2 a- rFB83}녡 \aLcr@fP P(d3(E0w}(A{A{I{I{I`x}W{W{W{O >%ا{M{M{M`y3} >'{hmBfP>{lZl3(=E `V6"{j Pj͠jZl3(ZAE `V6"{j Pj͠jZl3(ZA$Tm6@6cA Pj͠j%Zl3(ZIE `V6"{j Pj͠j%Zl3(ZIE `V6"{jm$j͠|(BfP>{l3(=P-SmB `6!Tm"TmET6"{MbbA=&j͠jB(BfP{O Zl3(ڄP-E gm"Tm6Q lXWvIg ww(eiDmAOS(J.Yٞ*R%Ag"fxi ے!y$y b}*85b!W?~ppR9Ǘ~Zb pc(8lSX-eQ|Z02dm} Cߙy:T}uC eT{x؝ x߇oju>U`_|,0lG|a>v3:w rpGݹ܍nqnmR؆eѣ'ztڦsZlb&/'Q㙗B |`y5S A7k=+:\4l[l+we %V>"Gُ}l:n~v>_5M`R=NBFM銓Y0n9-oP`M~SUY%9݉0qʌ˅,?ݏ-\ B AfiڝJ!O܏QO"B(NT'\AYMЖ<7tA;v<`;NOvxhD^Փ0/ ~"EtiN%ptMa*.EHZHsOj*# XD QWW#Mji62\Fq°,QlW}ys@sӖ_;f`sW{ַ Ϊ-;`0Ҵ7dr_{k\ PE)3,U粚fC5t,^>x'0ϻD x(w(-TXnC/Yw2V\1 v[7Ug`ogspBο`pX.y ІhՍk1L6\Qn:psg¥:@p '5b}{ۀees8`_=׆{\:3=ݵ~ 5Jxc*RB.|R%Z)U6œH?0 4v2z|r?.sy:7ï]]q5 0GP̵&>mχ-7;Q%P2Hެs=:\TT/|^\κ1}N\di3֏P(p>y[Chҿ͙]RicmD;L< ]D&Xz9PM/3^-=0_2/a*>($_+cf'1Qib4JhRm;}4dIM4+Y>T4Ao$GQzvX<̹ܽx5hrA[HND. ^V)+BZ['`-쨶w POiiifZaeb_@Zo= 1:+)41DTy'͊+gttkC)bT0v#yKB4O MP4c4A0,7@@m+o E&G&ZjmxUve[n>)Pw /*Xěp#.H7P@#E\ }k!ңN$r֌bXaj-MI W}۲ʲ]-0&{hPXUTjL]?'~@N_l<$̶,Y2XC}_epG%fV·Ŷ5BcMl-h`C)l^I#S$<<[i#BysSoaSýX4 ޓ@5Fa8Y<D-[>8N04פӟV巾l;t =:YXj͊,Bmm8t&ӗϏyN€~~ ,|atϥܡJF9睊SqOJ>t@=`0(0\گy+) ܩpIG_%N#)[2CTBBfqW+k^,Y2x&A[Q*Scpٮ8b1/R`0!,@T2Jn(ږ团d`-b).|u+^5|u >`l6 0eM]endstream endobj 44762 0 obj <>/P 558 0 R/Type/Annot/A 44763 0 R/Subtype/Link/Rect[93.6020966 387.928986 217.992996 407.609009]/Border[0 0 0]/H/N>> endobj 44763 0 obj <> endobj 44764 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44765 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44766 0 obj <> endobj 44767 0 obj <> endobj 44768 0 obj <> endobj 44769 0 obj <> endobj 44770 0 obj <> stream q /X1 Do Q q endstream endobj 44771 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44772 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44773 0 obj <> stream HWk۶_2Պ/=@>Z]) LgZ%gΐ-(ѳ!m}~qDLYÿ\ƪi"AG>O8K vz:M|hyi^5(bQN+X3.2^wQRll`ƸJٌ{Hqj~W7\e4f8Դ6BdO7׋9Cfo/(FM-p,=~ś8Drd%~*. >BLaX&oCTηϝo'=' ؋ ؋ ؋$ˀ$ˀ"ث"ث"ث}N9>"`_싀}A/% ؗ2`_쫀}E4.j}B Pj}B Q!{(B Q@PoC>P-'TEַ!`m"j}6DrB Q@PoZ߆(}ZNַ!`m]$6D}6D}B Pj}jZ߆(}ZAַPoC>P TET+6@m"j}jZ(B Q@PoC>P TۺHm 6@m 6D}6DJB Q@PoZ߆(}ZIַ!`Vm"TET+ 6DJB Pj}j%Z߆(}ZIַu"Tm"Tm WiUU2Űvf1ۈe x9]Lo۝^?}9M| oR@҂O PjO <U ~m=XJnt<1.^/#P6>4y*\in.DfCr2s{Gв/zc &8ɟ_d7^qp*<- y0 ʒA|ΙgYԣcX܌S=gv߇m0qZ[݀i MfTyGL pЄX.SVDfC2*,GZ0p#K8x!jZ&6z'UܣnjPz3ip Տwu{~~nN2Np,'U+'u3͸A-ɄT9޽,ތǾ |#]fp&a_OOד&(jdRo'<{L?jٴ64WURi@̖.̲5VAQOx,[R\ ϣ7edy UYF]Xmk Ok戠+i1/&,YZ΍ӂ/'$^P*<a^YH+3.np}6|6~m>gd}2pvʹ5̖v Vrչ¶@S JzBbSeVfkA.7`tkFՌ\Γݸ FC/`< &dbx6]y("M3@8l՜t銫,Pe؅ohTn8>0D eb1 sRB ;<|5t=+gnl>b>&=ŸX>gzNiU^LxUS(r`= { 2ǩ%]zyyq)-Oy X䳐e*yB&0:f!$ԾZ_L- VC}F>|!>~/&w OǶ=7kQfX/4ô6J'O6Xu]Ujj%U`?VnlW?B`yrs#M l֠t> 3 r ;Eτ0gyUl؟:"` g2#-=w㈾Bap Ԕ"o%݃md2ovoM}`}bq!ݼ\#.U!R5%(x{;˥Ri{uez1p l7K1GhAEmoj~a ] JrxP&4̴,|x-ϗ]zǗuP cicdJ ??24[tRXTWA=_x`o޻mgRV5kLT TgW"N ^$ydof9SdrKcj$ʕ:х/oUQ0> Ujf HĀ4WY8"^l2+_<|2 ˢot(0_~BPbӖPK:apćrvվJu# koܯ77'Š'T7kΞ>:tƨ0YQ PKM;RxGcDG Ѕƈ;Bv{J`<)2^Oh֑ :s9F&LJ$-\)R󈯬\hQa:3 +D? 틓7/:1KsW8ŧpuxy\W#"#VQ.&2dv8tx0MPF"ձ]mpb$D+I`*:,q!ymxIa MaY8 #>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44775 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44776 0 obj <> stream q /X1 Do Q q endstream endobj 44777 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44778 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44779 0 obj <> stream HWi8_2Vҵ 9fͦbӶ2:z,;[`tD>?E"y<ß~ݛ?π!/T2NE2NDxoa O.Փ~ݩjTmSz'Cy ",0cyiNoU׆HXē8_}޼Jq"MxN+Gf y=FҘ3vQ&&`1Hw~ d,琳އY BH'oPwA`Ns Lz$?ƀŹBa% k1` B BKBKBKB+B+B'SO}BO<)>ԧS3O}F<>SsO}A/<,'L&k1fXzp- W1c Xk1fXzϵp- PVb̰kZs \1`Řa= µ3,BZAc"\1"{k1fXzϵp-ƚ@Řa1,µ3,_= W1`Řa=Jµ3,BZIc"\1"{k1fXzϵp-ƀEcE\+ b̰k%Zp- PVŘa=JµkEcb̰|3,_=ƀEcE\b̰kZp- PVŘa=*µZs"\1"{Uk1,µ3,BZEcE\b µ3,_=ƀEcǘaꋸ( 2(n&lD>lS8 Ӵ7MpV6Wප=>o/ZEcu<ڰۇtߗ׀ ܆sK'q- )Xav͖09VL">,]˥ nǜ۞cK_#Vjke,Y"ǁXB,OĪuoxo.8e *sWTE~[wTϗjWPH9wkڶy2msأ>?k^+ݞ^+Ic $ 7f" R0SIn:\Ƞ]c3k΢?~3;,h%^(?DkG}/X 5KuX6lzfx24'v,D ;z{sX$K7*9[{m؟ʪ.CO+Gp\q5eպJm=m7~g,o\P}X}wjJ}v:,eLYrR0aHR1Xh_%rX{i+vI$E602 X'<$Y:!q&Y2i6L $sʥ*9?[`H JkݏBV:]W~2&yVθ7XJRI=:"_T> m>;9t| SX*5EhJ/8*jrmdϺ?t`mUeܦa8\ƀ.`95» ݋KYZN|v7%udJi,ޞFf_˙&39CS wކqU"9 >ywfE8v?wta8)Y%ӕZ cĠhfcmѕ8[s!g8f6c&\:>4߻NIlt2I Ek3(Ɉ,=_=6%q{1Tӱ (B4[=R)H# E# J*f**C"O엎O-ƇPʏ~v_jl{}g2kn?|2ulk@R29yhgQ˰cp-&EUL 4OQXYהbuaMŠ[ cLu`1Akzߏ[s=p  <R{L]PWVQZ sj;!NkQh%4;zE/@̨&+AS=\Vg`81z1 =69j Ay*y|HLٵ2Bݫ7d o"Ncb^ :DT?qJ[.䋭i_Uyz6YC #:3i؆kRLC}`S"'q0X`Coo-Zq?QS'QHqf-4Q4&=H ,ۮ77}$%Du H`Sz\0_H~'˦= )r>hqܩӏ0yi2?ֺhD."]K8Knv%"Kgv$\2 r4^12 cK }i @2e1@QYY0KYx81`~(:T7wu̜UcYA/ԥTx@XLuϋ3g?k 1Mnޥ1хiU2Ư ނ+ OD-9N5-deˮ,^dgǪѮd.M1;q ""YXN4xmtq埃.dhň m𥉇%6 )蔕*‚Sg˜V@2A/ӟ@Y~Ғ7ǹqNU4etϚ5<_Vj'+3wJӰ&/ (\㻛_N)endstream endobj 44780 0 obj <>/P 1191 0 R/Type/Annot/A 44781 0 R/Subtype/Link/Rect[93.6007004 318.830994 201.625 338.510986]/Border[0 0 0]/H/N>> endobj 44781 0 obj <> endobj 44782 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44783 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44784 0 obj <> endobj 44785 0 obj <> endobj 44786 0 obj <> endobj 44787 0 obj <> endobj 44788 0 obj <> endobj 44789 0 obj <> endobj 44790 0 obj <> endobj 44791 0 obj <> endobj 44792 0 obj <> endobj 44793 0 obj <> endobj 44794 0 obj <> endobj 44795 0 obj <> endobj 44796 0 obj <> stream q /X1 Do Q q endstream endobj 44797 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44798 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44799 0 obj <> stream H|Wkk_$y\XXn̰8LkUh2d\>TuJ?aO_?~1*U)ҜE.RAG]/8>S?~hz&]tcŻ稂E+3.2Ƀn;T|}YRՌOpnY5Mf* .),OYeڢR8vQ26[$R,~ߗ,~J)W0SVUŅ=D1U< D} }b,Dy>D)sg,$ <` <`/"`/"`/"`/ 2`/ 2`*`*`*`}N"`_싀}I/% W*`_2BqBQ!{(BQ!{߇Z߇(}ZN!`}"TET >DrBPj}j9Z߇(}ZNPC>P-'TET c$>D}>D}BPj}jZ߇(}ZAPC>P TET+>@}"j}jZ(BQ@PC>P T$T}"T} >@}"j}j%Z(BQ@PC>P$TE!`V}"j}>DJBQ@P;FPCTPCT!*d_UU89Fwc#?<<*IWq%p}%Rhx3`i)y\7QJ '&o;3nP=JV-멹4*6xYEQUbVX"Bm ހ Lη0klIy%<?iaeQpYŽ­&]/<IcsU IXxrsWTperv60kVPv0+SzM<ݓ]_hֱnm^zNm$i>z"2[ UǼo?H.`vS|V|3u& ܤ{R MHܓ}>dޭN&X.DEjHʤHe*l=;:g'`+6d(h(弄7˥xEIe":*rV|AI"L@ۚBȲe_U:TfbYTGw)UdP$XWm;2ZPDlKSN_%sQ7yqa33Ȕ]6|S$w+|ʕk2KnC;_O6Wݙ2Bx#jU,1՚~~4IF{Zi^fS?njKujv:O:e>CEL%3h@T${Wù;ɖyfxy8@X\Mw\JG,7JPb^H~LScyJL:d,YV Gh@=}qN"Qɥ9HlKPY A,#4lZoܽ3AX4ma }B"--sHk Urs@M Uޕ(wL22-fc 'TbfP2e0Z{7S?g{  @+ZM?d/\[zg}25ʸx0!_3B =ۧEBxԟ {z;cj,0v˔Y},;YR_*`)E~[mڗ>F2Ujs\q Lb\gk>͟G׹_^4q}ǹ}g|^8•mPTKm+у9RVsV3Y0!<؜iZC-R'DN6ʹlZ{)?\12^5=n@_J]LkR+VmCO-M}1a.=̼ }Cj P%: >) +6>{RFhކPw]1Vcw"$'xȖ=ٸ|99_C>J =T p rπdN5Eֳ?md1{T23Z T aTJ$+JTHssZ}E;kp`ˤtɐ̅89#A0Q {B FlfK^Dt~f[b°DEzcT@/rK&#f6UKD 7l$`Yܲ8iHBUTsfc*5L۲n_}+,qF}4߻Il_-~d˾WIpuOc(NU8@ C̒аV<Tl!v,).]k9L|/Q2_R?aqLO]e!窎/aVY"%{y{~z}b.Bsv}n>/P 1489 0 R/Type/Annot/A 44801 0 R/Subtype/Link/Rect[93.6008987 286.82901 206.712997 306.507996]/Border[0 0 0]/H/N>> endobj 44801 0 obj <> endobj 44802 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44803 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44804 0 obj <> endobj 44805 0 obj <> endobj 44806 0 obj <> endobj 44807 0 obj <> endobj 44808 0 obj <> stream q /X1 Do Q q endstream endobj 44809 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44810 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44811 0 obj <> stream HWoFEX$)8n\₃L ,ɕh'E%zo\ hvvv9#i?Lydd槟^9I~OlHm4W>-) ,䳙'NiMrtCs],Y-۩YO\ur\ gHd&H*SϒsaX]>ͺ<;އ%vyFWŴYt._wʦOY3}'7ۧ~8}fްܦa;rv5y^݆(2OX9/|$؟xzv73;1o} ,۪l~'*`Lf|o1wYgnjV[_]ZT&];50+-nyqn5Lo&KdvޙeZ/x4J2S/+jǫny?%Lãh/.@ ysin݌K"^ǃ?zdh^LtiesiiˋC;-Cbi]cm7B۴W$ M(eaoy,>Y]&/KպaޏҊԫ]iA;jmGo vKzj7mD(ii{UU8̼2+{eZ3{]l@ n5R[x>sb6> ?>=lSsO TO1PIZW]:7< zt}LZkJ|3 Yi1o}Cc^b̊ J+r+hJZ*VJU*hJZҪV"ЊJ+(\$,%1bYeZVi9唖Z*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ*^bZ#ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘT=ȽĘTȽĘ$F,{1 h{1 h{1 h{1 h{1 h{1 h{1 h{1 h{1 h c֒@%,EGC񖾱^8cM}Tk P,-K{}l Q>˜1t\m5hf_L\Z,TabH'NR6[hͤ5|xyr@O7'eՑiodҵyYNŲo?r9kNBar{ߘ+f2љOfM:<ʳlo4rx *gS=|ut6/N~x9}X.uvN]o,j~M+ZL2ߛ UoL-/OmNNN !uendstream endobj 44812 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44813 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44814 0 obj <> stream q /X1 Do Q q endstream endobj 44815 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44816 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44817 0 obj <> stream HWkoܺ_O6D7$ M e\IvߡH=v8v A,!ߗm~ϓ7X~嫓W 7 t!L<}Em7ImzWmfm>좋^gMd`&4y`]oV?DWr]Bqߌ/#z~z^u?z;G֩Lx*mm?]Ei\H&d'PsB}/E zC7zCjE]$Ře1,j1fYzYVc"cEVU1"U+ŘeꃪDb̲A j1,j1fYjQ,B}PZZY>ZAT-,PT cHU1 c XDb̲BP=ƀET-,PT$cEVU1`U1"U+ŘeꃪDb XDb̲AJj1fYj%QQ,B}PZY>ZIT-v"cŘe1fYzZY>ZET-,PT"c"cEVU1"UŘeꃪUDb̲A*j1,j1fYjQ,B}PZ"MT-,+T1`U1 c̲B&1(¿z\Eǫ`6OF&2VK|vծc [ei\u=/+vz[Uwubo hJhe_m vߚ-z۝a4Qqk6"-q~D)",1Pf$P3*`E|%DR(1Q/f:ee iE4mӉ1uyі;.{S4`k"+9`V7jtfbݔm\njwukƽrr4xKUrUb]`@X㵖ʭu^k}ZkʒL 2)4篵ghv"  L4;34ؓk0k#;~<Lz<|r?C4 I͟&UI#QshVȨ0U̚ifM{b+~W̚̚ĚW̚fqb`i~̚r?٘Yՙ]œZ9BK'jjmy`?1/mr1})̓U&T1. H̼M{6E.ebL6!dS6-<ݦQX5Ɉlҕ,]ario& 1&a )ϖ~yBrx YSdؘnn߿,B/qV?Y-lf VG+3e/e*f}*)^L^쿏 1&a )~uB>u[ii>VM85Y5rjrҪ<[XO*@UUY2r5mh?7us隹cͥqиGT>ˎθq  $CV24Ɨbȹ"-q`P5[RUoGH>`]hʏrSusVwnlm#^7I7z}ke( .$c};vC]_yP&N2q_TmWw{zӴtmY/նIX4 '+"2MX);7(v{;C*=ӧX~~) /wޟO :1B/d\= c*%);gy){;D(;(P򦬷m!k^7mԠ/SAn%G/4@js;7t^@6jmO[\ؼݝ ^ͭ$AvCH= ы}Iﮪooھ^o]aXu}^7tO ,2: Ypz>Y|^O6ɖpiplj7Tf gb$5m0(ME[v£rq]^Tfܬw-I,w7Wߜs/'Z۶=Gib$go'3LU^tE"="e9.@ :n\ȄlsE{GG!1LC!Z+̻_ĉZJj ^;F$Et(yH`nU1-\cmy`DMiVj7 >k v5v.Ω`:$T!ON#}p%>+pc0 laONYueB.u9LIAB56&c={ڰx)jFkS=PF5jBGw0 <~rZ t&ך)'~š[;ؘ277j6[Et3k[h֚T?| yǩtWC$Gs@ܻ$t/ԩV}}+6/P) /ɼ4d৙^t<]5JR2=#T 1Ğ)V~!M`V΄Ћ:9Jj:9ޭmQ<ȱFqP ǩkW=#NOƧ`LP(:O|u6 2u.##3 EHiϨH`-=[B~h92z/V-W0nMIxjc5bXFCp͟+W<=$* DWa1_g :yV0`geOPuyY|٥z[UGM2iL"=V5(շe.3[qw &IK/{flWlި~,0p^W- ~ NLn4G޷J#ajirnʋ爠KCSC Pc7Q~fI2Q%Ǘ<}0Zendstream endobj 44818 0 obj <> endobj 44819 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44820 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44821 0 obj <> endobj 44822 0 obj [606 0 0 250 0 0 0 0 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 667 0 778 0 0 0 0 0 0 0 0 0 0 0 0 0 0 556] endobj 44823 0 obj <> stream x]oLuA{J'``K A]d/&D2 fh  Q\OPX3 X`,:w|aFMo''yD(BD"Q|vFFVzKtPi<.=Y %{a>^'ϡlf4fE& 䊾@*obY<;RbSLyd % :&.N{>-Xl #FWf׷+&ع178!z1w; 4K CS\OumPOA0OvVN w'PZ.7|>JlZ 2-2a*ӜJ1U;SYhq 3+*s/4P^xu@t*>U q ?q74}j5o`lx3 r+kEsP@]r;ٔ!]Ĥ6YLڸyʮK{:kX7~9 Ȱ >!N|BaI2Lʶ3e8 ?q88ɾ,tNq)p=ξ-f3ѾɿSPa+l(!@,0zֆbK ǽ%!H};IZ$7KwdX" Zendstream endobj 44824 0 obj <> endobj 44825 0 obj <> endobj 44826 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44827 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44828 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44829 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44830 0 obj <> endobj 44831 0 obj <> endobj 44832 0 obj <> endobj 44833 0 obj <> endobj 44834 0 obj <> endobj 44835 0 obj <> stream q /X1 Do Q q endstream endobj 44836 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44837 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44838 0 obj <> stream HyoFh )i1_Y&3]2 lJCѓO%W`Qf=[}O*Qޝ]GEګq*-lg6N_iժf^ |9_V}xc*:+RU9|HSIEt;i]vj|bd؎/-8j궚oy?V}UMZ;Е$j~\~.( *znFt~ 6_¿.QSy& NIAG<|/Xq(y9JkI1P<2<e@z#ވ"HoAz+;މw"} ҧ"} ҧ"} ҧ"}g"}g"}"}"}"}"}"HAz1 -S5dz L-׈FLϵ@Q ZkDbj Z L-׈0\# Skr-P`jFH/րQ ZkS5@z1L-׈0\[DL-׈(0\#JQ2=kDbj-Zҋ`j(0\# Skr(^LS˵@Q Z kDbj-Z L-׈Z0\# Skrm90\#JZr(kD\ Zҋu`jFH/ցZr(^LS5@z1L-kDbjZҋu`j(0\# Sr(^LS˵EQ2=kD\#Jީ$98YQZH'k9xg*˼*j4o{kv>kf˞$窬8B75ʨ,]u;jVuvj|dTۣvzXU=4j+` U;~n k5_.ư;]`S?+,f /)^$ 'X9!DuM'rs.ޓ]ϛ@Il2펗ӄJFEI[q8ki~$]=,o?.FOFyY۪nVͰ?ʌ>nzLKu ̙ɲXMMeO?ˌb.˰^z ^H8Be:1)4V\#Jx9儗^Nx+^)JW2Lx+^9ʅW UBxy兗^{Dzq(ŵ@iॅ^Zxe^kD/{z5QKހs(%zo@F7\# x{D-=׈^\ =׈^kD/{ z5QKނs(%zoAF\# x[{D-=׈^kDI/ kD/{z5QKށs(%z@Fw\# x;{D=׈^k1ŽR{%FS%z&n~Ig~)[i^UOMxZ7ah8#l-؜vDH3&v:aE{ycRjAmӅ핡fxz=b,.^N/!nw)LmQln&ßMyqOzV%r4.vaxs;LFVCVTڕꖃ67Us5muj2~-i&EO5y V͞^v߫\\pr2|#tbXq٫T35./}~h=wZ]Nu5CPaF}w [;Js¿\dٴ۵u}绰2U?V}U) Ӝ"y&tOG.[1| r~rƗl&vCNXm D顊G&@NxX,sy5O,"e<|Ƨ}2n P=30{ d>Axҳq2t8͌9Q/_F,*MZrݽY2wz>P=0Ә%cvӍBx1#PU7ϖVcIKL2]⑈u#FM^hi=VZ6`J$~zw?nW)%*u~ޜ'5P^H(VSkoơ]LR LFy.P ?ddb ?3NiVpb, :K|(xzojDXԢIDX㴞`^Ydlny!"U",:*1-hl}I.,^1Db~0 (sDUU#d]>Ӡ{\f_um:{Տ S2;@kK?qxIrXt2+!Bd_uo1d1) <4'Y I~v\szqE&*^y2sT{7ڸ'/ WI.LhwvrRp_=8!/Q7x> )>TR*aO:}`YusUy^m% 9thcYyI _\F:%.HD:u`as8u/vix ~wzЧR ~Mz0TT2vMf_CeuT鬒փdow_$*a5,J,neYx9`>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44840 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44841 0 obj <> endobj 44842 0 obj <> endobj 44843 0 obj <> endobj 44844 0 obj <> endobj 44845 0 obj <> stream q /X1 Do Q q endstream endobj 44846 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 44847 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 44848 0 obj <> stream HWkoܶ.~zE>$) mQE 8A kX;CJ9m,!q_ab?x,b/^|*3_Y)H&ǒ U;낈}Yp[Sz7P4%>]p$lw$b9aLF۵mxSSwJQݻ#Y:N7uS{eD WTv%[FiPqwD\,[O=10~؞Ja(gh ]Nsr#"\ Y~8>,Wx$KO$KO"+O"+O"+O&kO&kO}L=1>DŽSO}BO<)>ԧSSO}F<>S= ´.p!Wb"\bջ|.,µ.,BZIŐE\+ ׺׺k%ZCs$\b"\b"{k] Yzϵpp!PVu1d=Jµ.p!Wb"\bջ|.,µ.,BZEŐE\׺׺kZCs"\b"\b"{Uk] Yzϵpp!PVu1d=*µ.p!Wb"\bջ|.,µ.,BZMŐE\ ׺׺k5ZCs&\b"\b"{Մk] Yzϵpp!PVu1d=jµ.1ZCŀEŐw1dsfjmr\v "+7x',IrkPs.4 Muq.8qQE.dy"" Aw}SDΘX́7j;rD'mXU/o^ÔE4yrc" ,8nj4N̋]iqZhlqX?Z7=|NlߙYGˬޱ願Xa BùY'-LV}x,ؿH6VMqs8m[do*Yؽx*7u+/Jb}O4 <1287pB꾃%wNqmRg27fsy>ynwr8B02vOޝʪZpWb_+'k1j:URYw,̒$5ϧ'k#Pil}3s=а!U /vUQwN&`>)|@ToMˉX/X*iVmϻ-c<صLgu᜴A_U~ӍP 5|WCp&ˁ,t,AN_c#d;zWViq'#ͧm1}2KcF/=j:a7f'cذ)qԝ+ʿ4OT&s8WpG}D0},F'eBS!lZL(\%SM8\7ٲO- W(MlX+DQ(̢-]$0eKv2=f醭d6_Û? ziF=,1m:6}v,m% P-?m:43̶p~|{lFͽ|h瑍UY kϝLir :3\!i$Vc? y_і}5#v5\+EZ80$OHzAqw'S::!wnjVnw#ě/4.h1Wb9Hx/]l'H)`CRK͚oqiVR"_*M1M\lQVHU] /X؀.T8PεY+g'"]݌C]_db)4VB2D&WUNp pPNB-𷪄RřTZwV fHڗ۾){:#:Y&ՕlފP§G|d-W/ںC;-5uUutv k?7v<^ҭ^ni.agּC'^-gGNd 71Ed@c5OpWT,ӂ,|B/ ܳKqVd hfG1 LdOD $O,C]>(fcṯr淺xĴ_=l2u4lPO9ԡj=90*Jmؚ^04%Tݣ<m CV%0}J] iv-² o"e9)DCp8Μa?LtAqvVl(hg9Τm 34eE=9R3M f)I%E6 l%˅s0xpnRp{j=Fϲ R̽\ߌ;s咖,ek&.۪HpEPn$fb"E*oׯT v (ϴtsV`loVγ W v+N!]&84 qN&E,ojl꺘eALSk_F߅r$L:Oq$'9O$hh!}7"sr,n[뇦./LB;gq&u3S'=Յ\0ɹ, B0`j}u@sefhcuá5>:֒OZT D6A hʳ+ʼn6J ޛ%jQZt_WA"acN%g-=b~Cqfmjh_/݉]t.6C/#] Zj [CTd=5xŻ_߾#z֕endstream endobj 44849 0 obj <>/P 556 0 R/Type/Annot/A 44850 0 R/Subtype/Link/Rect[93.6001968 663.229004 181.080002 682.908997]/Border[0 0 0]/H/N>> endobj 44850 0 obj <> endobj 44851 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 44852 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 44853 0 obj <> endobj 44854 0 obj <> endobj 44855 0 obj <> endobj 44856 0 obj <> endobj 44857 0 obj <> endobj 44858 0 obj <> endobj 44859 0 obj <> stream  http://www.codemantra.com The process that creates this PDF constitutes a trade secret of codeMantra, LLC and is protected by the copyright laws of the United States 2013-09-01T03:17:48-06:00 2013-05-09T16:42:06-06:00 2013-09-01T03:17:48-06:00 Quite Imposing 1.5d (EN) uuid:69ad153e-9415-42af-89e9-e564eb821cb6 uuid:343861ae-b990-11e2-a674-109add4446cd application/pdf Advanced Programming in the UNIX&#174; Environment W. Richard Stevens Stephen A. Rago PDFKit.NET 4.0.12.0 1.6 endstream endobj 44860 0 obj <>/Pa12 46017 0 R/A5<>/Pa10 46018 0 R/Pa13 46019 0 R/A3 46020 0 R/A6<>/Pa1+1<>/A7<>/Pa0+1<>>> endobj 44861 0 obj <> endobj 44862 0 obj <

> endobj 44863 0 obj <

> endobj 44864 0 obj <> endobj 44865 0 obj <> endobj 44866 0 obj <> endobj 44867 0 obj <> endobj 44868 0 obj <> endobj 44869 0 obj <> endobj 44870 0 obj <> endobj 44871 0 obj <> endobj 44872 0 obj <> endobj 44873 0 obj <> endobj 44874 0 obj <> endobj 44875 0 obj <> endobj 44876 0 obj <> endobj 44877 0 obj <> endobj 44878 0 obj <> endobj 44879 0 obj <> endobj 44880 0 obj <> endobj 44881 0 obj <> endobj 44882 0 obj <> endobj 44883 0 obj <> endobj 44884 0 obj <> endobj 44885 0 obj <> endobj 44886 0 obj <> endobj 44887 0 obj <> endobj 44888 0 obj <> endobj 44889 0 obj <> endobj 44890 0 obj <> endobj 44891 0 obj <> endobj 44892 0 obj <> endobj 44893 0 obj <> endobj 44894 0 obj <> endobj 44895 0 obj <> endobj 44896 0 obj <

> endobj 44897 0 obj <

> endobj 44898 0 obj <

> endobj 44899 0 obj <

> endobj 44900 0 obj <

> endobj 44901 0 obj <

> endobj 44902 0 obj <

> endobj 44903 0 obj <

> endobj 44904 0 obj <

> endobj 44905 0 obj <

> endobj 44906 0 obj <

> endobj 44907 0 obj <

> endobj 44908 0 obj <

> endobj 44909 0 obj <

> endobj 44910 0 obj <

> endobj 44911 0 obj <

> endobj 44912 0 obj <

> endobj 44913 0 obj <

> endobj 44914 0 obj <

> endobj 44915 0 obj <

> endobj 44916 0 obj <

> endobj 44917 0 obj <

> endobj 44918 0 obj <

> endobj 44919 0 obj <

> endobj 44920 0 obj <

> endobj 44921 0 obj <

> endobj 44922 0 obj <

> endobj 44923 0 obj <

> endobj 44924 0 obj <

> endobj 44925 0 obj <

> endobj 44926 0 obj <

> endobj 44927 0 obj <

> endobj 44928 0 obj <

> endobj 44929 0 obj <

> endobj 44930 0 obj <

> endobj 44931 0 obj <

> endobj 44932 0 obj <

> endobj 44933 0 obj <

> endobj 44934 0 obj <

> endobj 44935 0 obj <

> endobj 44936 0 obj <

> endobj 44937 0 obj <

> endobj 44938 0 obj <

> endobj 44939 0 obj <

> endobj 44940 0 obj <

> endobj 44941 0 obj <

> endobj 44942 0 obj <

> endobj 44943 0 obj <

> endobj 44944 0 obj <

> endobj 44945 0 obj <

> endobj 44946 0 obj <

> endobj 44947 0 obj <

> endobj 44948 0 obj <

> endobj 44949 0 obj <

> endobj 44950 0 obj <

> endobj 44951 0 obj <

> endobj 44952 0 obj <

> endobj 44953 0 obj <

> endobj 44954 0 obj <

> endobj 44955 0 obj <

> endobj 44956 0 obj <

> endobj 44957 0 obj <

> endobj 44958 0 obj <

> endobj 44959 0 obj <

> endobj 44960 0 obj <

> endobj 44961 0 obj <

> endobj 44962 0 obj <

> endobj 44963 0 obj <

> endobj 44964 0 obj <

> endobj 44965 0 obj <

> endobj 44966 0 obj <

> endobj 44967 0 obj <

> endobj 44968 0 obj <

> endobj 44969 0 obj <

> endobj 44970 0 obj <

> endobj 44971 0 obj <

> endobj 44972 0 obj <

> endobj 44973 0 obj <

> endobj 44974 0 obj <

> endobj 44975 0 obj <

> endobj 44976 0 obj <

> endobj 44977 0 obj <

> endobj 44978 0 obj <

> endobj 44979 0 obj <

> endobj 44980 0 obj <

> endobj 44981 0 obj <

> endobj 44982 0 obj <

> endobj 44983 0 obj <

> endobj 44984 0 obj <

> endobj 44985 0 obj <

> endobj 44986 0 obj <

> endobj 44987 0 obj <

> endobj 44988 0 obj <

> endobj 44989 0 obj <

> endobj 44990 0 obj <

> endobj 44991 0 obj <

> endobj 44992 0 obj <

> endobj 44993 0 obj <

> endobj 44994 0 obj <

> endobj 44995 0 obj <

> endobj 44996 0 obj <

> endobj 44997 0 obj <

> endobj 44998 0 obj <

> endobj 44999 0 obj <

> endobj 45000 0 obj <

> endobj 45001 0 obj <

> endobj 45002 0 obj <

> endobj 45003 0 obj <

> endobj 45004 0 obj <

> endobj 45005 0 obj <

> endobj 45006 0 obj <

> endobj 45007 0 obj <

> endobj 45008 0 obj <

> endobj 45009 0 obj <

> endobj 45010 0 obj <

> endobj 45011 0 obj <

> endobj 45012 0 obj <

> endobj 45013 0 obj <

> endobj 45014 0 obj <

> endobj 45015 0 obj <

> endobj 45016 0 obj <

> endobj 45017 0 obj <

> endobj 45018 0 obj <

> endobj 45019 0 obj <

> endobj 45020 0 obj <

> endobj 45021 0 obj <

> endobj 45022 0 obj <

> endobj 45023 0 obj <

> endobj 45024 0 obj <

> endobj 45025 0 obj <

> endobj 45026 0 obj <

> endobj 45027 0 obj <

> endobj 45028 0 obj <

> endobj 45029 0 obj <

> endobj 45030 0 obj <

> endobj 45031 0 obj <

> endobj 45032 0 obj <

> endobj 45033 0 obj <

> endobj 45034 0 obj <

> endobj 45035 0 obj <

> endobj 45036 0 obj <

> endobj 45037 0 obj <

> endobj 45038 0 obj <

> endobj 45039 0 obj <

> endobj 45040 0 obj <

> endobj 45041 0 obj <

> endobj 45042 0 obj <

> endobj 45043 0 obj <

> endobj 45044 0 obj <

> endobj 45045 0 obj <

> endobj 45046 0 obj <

> endobj 45047 0 obj <

> endobj 45048 0 obj <

> endobj 45049 0 obj <

> endobj 45050 0 obj <

> endobj 45051 0 obj <

> endobj 45052 0 obj <

> endobj 45053 0 obj <

> endobj 45054 0 obj <

> endobj 45055 0 obj <

> endobj 45056 0 obj <

> endobj 45057 0 obj <

> endobj 45058 0 obj <

> endobj 45059 0 obj <

> endobj 45060 0 obj <

> endobj 45061 0 obj <

> endobj 45062 0 obj <

> endobj 45063 0 obj <

> endobj 45064 0 obj <

> endobj 45065 0 obj <

> endobj 45066 0 obj <

> endobj 45067 0 obj <

> endobj 45068 0 obj <

> endobj 45069 0 obj <

> endobj 45070 0 obj <

> endobj 45071 0 obj <

> endobj 45072 0 obj <

> endobj 45073 0 obj <

> endobj 45074 0 obj <

> endobj 45075 0 obj <

> endobj 45076 0 obj <

> endobj 45077 0 obj <

> endobj 45078 0 obj <

> endobj 45079 0 obj <

> endobj 45080 0 obj <

> endobj 45081 0 obj <

> endobj 45082 0 obj <

> endobj 45083 0 obj <

> endobj 45084 0 obj <

> endobj 45085 0 obj <

> endobj 45086 0 obj <

> endobj 45087 0 obj <

> endobj 45088 0 obj <

> endobj 45089 0 obj <

> endobj 45090 0 obj <

> endobj 45091 0 obj <

> endobj 45092 0 obj <

> endobj 45093 0 obj <

> endobj 45094 0 obj <

> endobj 45095 0 obj <

> endobj 45096 0 obj <

> endobj 45097 0 obj <

> endobj 45098 0 obj <

> endobj 45099 0 obj <

> endobj 45100 0 obj <

> endobj 45101 0 obj <

> endobj 45102 0 obj <

> endobj 45103 0 obj <

> endobj 45104 0 obj <

> endobj 45105 0 obj <

> endobj 45106 0 obj <

> endobj 45107 0 obj <

> endobj 45108 0 obj <

> endobj 45109 0 obj <

> endobj 45110 0 obj <

> endobj 45111 0 obj <

> endobj 45112 0 obj <

> endobj 45113 0 obj <

> endobj 45114 0 obj <

> endobj 45115 0 obj <

> endobj 45116 0 obj <

> endobj 45117 0 obj <

> endobj 45118 0 obj <

> endobj 45119 0 obj <

> endobj 45120 0 obj <

> endobj 45121 0 obj <

> endobj 45122 0 obj <

> endobj 45123 0 obj <

> endobj 45124 0 obj <

> endobj 45125 0 obj <

> endobj 45126 0 obj <

> endobj 45127 0 obj <

> endobj 45128 0 obj <

> endobj 45129 0 obj <

> endobj 45130 0 obj <

> endobj 45131 0 obj <

> endobj 45132 0 obj <

> endobj 45133 0 obj <

> endobj 45134 0 obj <

> endobj 45135 0 obj <

> endobj 45136 0 obj <

> endobj 45137 0 obj <

> endobj 45138 0 obj <

> endobj 45139 0 obj <

> endobj 45140 0 obj <

> endobj 45141 0 obj <

> endobj 45142 0 obj <

> endobj 45143 0 obj <

> endobj 45144 0 obj <

> endobj 45145 0 obj <

> endobj 45146 0 obj <

> endobj 45147 0 obj <

> endobj 45148 0 obj <

> endobj 45149 0 obj <

> endobj 45150 0 obj <

> endobj 45151 0 obj <

> endobj 45152 0 obj <

> endobj 45153 0 obj <

> endobj 45154 0 obj <

> endobj 45155 0 obj <

> endobj 45156 0 obj <

> endobj 45157 0 obj <

> endobj 45158 0 obj <

> endobj 45159 0 obj <

> endobj 45160 0 obj <

> endobj 45161 0 obj <

> endobj 45162 0 obj <

> endobj 45163 0 obj <

> endobj 45164 0 obj <

> endobj 45165 0 obj <

> endobj 45166 0 obj <

> endobj 45167 0 obj <

> endobj 45168 0 obj <

> endobj 45169 0 obj <

> endobj 45170 0 obj <

> endobj 45171 0 obj <

> endobj 45172 0 obj <

> endobj 45173 0 obj <

> endobj 45174 0 obj <

> endobj 45175 0 obj <

> endobj 45176 0 obj <

> endobj 45177 0 obj <

> endobj 45178 0 obj <

> endobj 45179 0 obj <

> endobj 45180 0 obj <

> endobj 45181 0 obj <

> endobj 45182 0 obj <

> endobj 45183 0 obj <

> endobj 45184 0 obj <

> endobj 45185 0 obj <

> endobj 45186 0 obj <

> endobj 45187 0 obj <

> endobj 45188 0 obj <

> endobj 45189 0 obj <

> endobj 45190 0 obj <

> endobj 45191 0 obj <

> endobj 45192 0 obj <

> endobj 45193 0 obj <

> endobj 45194 0 obj <

> endobj 45195 0 obj <

> endobj 45196 0 obj <

> endobj 45197 0 obj <

> endobj 45198 0 obj <

> endobj 45199 0 obj <

> endobj 45200 0 obj <

> endobj 45201 0 obj <

> endobj 45202 0 obj <

> endobj 45203 0 obj <

> endobj 45204 0 obj <

> endobj 45205 0 obj <

> endobj 45206 0 obj <

> endobj 45207 0 obj <

> endobj 45208 0 obj <

> endobj 45209 0 obj <

> endobj 45210 0 obj <

> endobj 45211 0 obj <

> endobj 45212 0 obj <

> endobj 45213 0 obj <

> endobj 45214 0 obj <

> endobj 45215 0 obj <

> endobj 45216 0 obj <

> endobj 45217 0 obj <

> endobj 45218 0 obj <

> endobj 45219 0 obj <

> endobj 45220 0 obj <

> endobj 45221 0 obj <

> endobj 45222 0 obj <

> endobj 45223 0 obj <

> endobj 45224 0 obj <

> endobj 45225 0 obj <

> endobj 45226 0 obj <

> endobj 45227 0 obj <

> endobj 45228 0 obj <

> endobj 45229 0 obj <

> endobj 45230 0 obj <

> endobj 45231 0 obj <

> endobj 45232 0 obj <

> endobj 45233 0 obj <

> endobj 45234 0 obj <

> endobj 45235 0 obj <

> endobj 45236 0 obj <

> endobj 45237 0 obj <

> endobj 45238 0 obj <

> endobj 45239 0 obj <

> endobj 45240 0 obj <

> endobj 45241 0 obj <

> endobj 45242 0 obj <

> endobj 45243 0 obj <

> endobj 45244 0 obj <

> endobj 45245 0 obj <

> endobj 45246 0 obj <

> endobj 45247 0 obj <

> endobj 45248 0 obj <

> endobj 45249 0 obj <

> endobj 45250 0 obj <

> endobj 45251 0 obj <

> endobj 45252 0 obj <

> endobj 45253 0 obj <

> endobj 45254 0 obj <

> endobj 45255 0 obj <

> endobj 45256 0 obj <

> endobj 45257 0 obj <

> endobj 45258 0 obj <

> endobj 45259 0 obj <

> endobj 45260 0 obj <

> endobj 45261 0 obj <

> endobj 45262 0 obj <

> endobj 45263 0 obj <

> endobj 45264 0 obj <

> endobj 45265 0 obj <

> endobj 45266 0 obj <

> endobj 45267 0 obj <

> endobj 45268 0 obj <

> endobj 45269 0 obj <

> endobj 45270 0 obj <

> endobj 45271 0 obj <

> endobj 45272 0 obj <

> endobj 45273 0 obj <

> endobj 45274 0 obj <

> endobj 45275 0 obj <

> endobj 45276 0 obj <

> endobj 45277 0 obj <

> endobj 45278 0 obj <

> endobj 45279 0 obj <

> endobj 45280 0 obj <

> endobj 45281 0 obj <

> endobj 45282 0 obj <

> endobj 45283 0 obj <

> endobj 45284 0 obj <

> endobj 45285 0 obj <

> endobj 45286 0 obj <

> endobj 45287 0 obj <

> endobj 45288 0 obj <

> endobj 45289 0 obj <

> endobj 45290 0 obj <

> endobj 45291 0 obj <

> endobj 45292 0 obj <

> endobj 45293 0 obj <

> endobj 45294 0 obj <

> endobj 45295 0 obj <

> endobj 45296 0 obj <

> endobj 45297 0 obj <

> endobj 45298 0 obj <

> endobj 45299 0 obj <

> endobj 45300 0 obj <

> endobj 45301 0 obj <

> endobj 45302 0 obj <

> endobj 45303 0 obj <

> endobj 45304 0 obj <

> endobj 45305 0 obj <

> endobj 45306 0 obj <

> endobj 45307 0 obj <

> endobj 45308 0 obj <

> endobj 45309 0 obj <

> endobj 45310 0 obj <

> endobj 45311 0 obj <

> endobj 45312 0 obj <

> endobj 45313 0 obj <

> endobj 45314 0 obj <

> endobj 45315 0 obj <

> endobj 45316 0 obj <

> endobj 45317 0 obj <

> endobj 45318 0 obj <

> endobj 45319 0 obj <

> endobj 45320 0 obj <

> endobj 45321 0 obj <

> endobj 45322 0 obj <

> endobj 45323 0 obj <

> endobj 45324 0 obj <

> endobj 45325 0 obj <

> endobj 45326 0 obj <

> endobj 45327 0 obj <

> endobj 45328 0 obj <

> endobj 45329 0 obj <

> endobj 45330 0 obj <

> endobj 45331 0 obj <

> endobj 45332 0 obj <

> endobj 45333 0 obj <

> endobj 45334 0 obj <

> endobj 45335 0 obj <

> endobj 45336 0 obj <

> endobj 45337 0 obj <

> endobj 45338 0 obj <

> endobj 45339 0 obj <

> endobj 45340 0 obj <

> endobj 45341 0 obj <

> endobj 45342 0 obj <

> endobj 45343 0 obj <

> endobj 45344 0 obj <

> endobj 45345 0 obj <

> endobj 45346 0 obj <

> endobj 45347 0 obj <

> endobj 45348 0 obj <

> endobj 45349 0 obj <

> endobj 45350 0 obj <

> endobj 45351 0 obj <

> endobj 45352 0 obj <

> endobj 45353 0 obj <

> endobj 45354 0 obj <

> endobj 45355 0 obj <

> endobj 45356 0 obj <

> endobj 45357 0 obj <

> endobj 45358 0 obj <

> endobj 45359 0 obj <

> endobj 45360 0 obj <

> endobj 45361 0 obj <

> endobj 45362 0 obj <

> endobj 45363 0 obj <

> endobj 45364 0 obj <

> endobj 45365 0 obj <

> endobj 45366 0 obj <

> endobj 45367 0 obj <

> endobj 45368 0 obj <

> endobj 45369 0 obj <

> endobj 45370 0 obj <

> endobj 45371 0 obj <

> endobj 45372 0 obj <

> endobj 45373 0 obj <

> endobj 45374 0 obj <

> endobj 45375 0 obj <

> endobj 45376 0 obj <

> endobj 45377 0 obj <

> endobj 45378 0 obj <

> endobj 45379 0 obj <

> endobj 45380 0 obj <

> endobj 45381 0 obj <

> endobj 45382 0 obj <

> endobj 45383 0 obj <

> endobj 45384 0 obj <

> endobj 45385 0 obj <

> endobj 45386 0 obj <

> endobj 45387 0 obj <

> endobj 45388 0 obj <

> endobj 45389 0 obj <

> endobj 45390 0 obj <

> endobj 45391 0 obj <

> endobj 45392 0 obj <

> endobj 45393 0 obj <

> endobj 45394 0 obj <

> endobj 45395 0 obj <

> endobj 45396 0 obj <

> endobj 45397 0 obj <

> endobj 45398 0 obj <

> endobj 45399 0 obj <

> endobj 45400 0 obj <

> endobj 45401 0 obj <

> endobj 45402 0 obj <

> endobj 45403 0 obj <

> endobj 45404 0 obj <

> endobj 45405 0 obj <

> endobj 45406 0 obj <

> endobj 45407 0 obj <

> endobj 45408 0 obj <

> endobj 45409 0 obj <

> endobj 45410 0 obj <

> endobj 45411 0 obj <

> endobj 45412 0 obj <

> endobj 45413 0 obj <

> endobj 45414 0 obj <

> endobj 45415 0 obj <

> endobj 45416 0 obj <

> endobj 45417 0 obj <

> endobj 45418 0 obj <

> endobj 45419 0 obj <

> endobj 45420 0 obj <

> endobj 45421 0 obj <

> endobj 45422 0 obj <

> endobj 45423 0 obj <

> endobj 45424 0 obj <

> endobj 45425 0 obj <

> endobj 45426 0 obj <

> endobj 45427 0 obj <

> endobj 45428 0 obj <

> endobj 45429 0 obj <

> endobj 45430 0 obj <

> endobj 45431 0 obj <

> endobj 45432 0 obj <

> endobj 45433 0 obj <

> endobj 45434 0 obj <

> endobj 45435 0 obj <

> endobj 45436 0 obj <

> endobj 45437 0 obj <

> endobj 45438 0 obj <

> endobj 45439 0 obj <

> endobj 45440 0 obj <

> endobj 45441 0 obj <

> endobj 45442 0 obj <

> endobj 45443 0 obj <

> endobj 45444 0 obj <

> endobj 45445 0 obj <

> endobj 45446 0 obj <

> endobj 45447 0 obj <

> endobj 45448 0 obj <

> endobj 45449 0 obj <

> endobj 45450 0 obj <

> endobj 45451 0 obj <

> endobj 45452 0 obj <

> endobj 45453 0 obj <

> endobj 45454 0 obj <

> endobj 45455 0 obj <

> endobj 45456 0 obj <

> endobj 45457 0 obj <

> endobj 45458 0 obj <

> endobj 45459 0 obj <

> endobj 45460 0 obj <

> endobj 45461 0 obj <

> endobj 45462 0 obj <

> endobj 45463 0 obj <

> endobj 45464 0 obj <

> endobj 45465 0 obj <

> endobj 45466 0 obj <

> endobj 45467 0 obj <

> endobj 45468 0 obj <

> endobj 45469 0 obj <

> endobj 45470 0 obj <

> endobj 45471 0 obj <

> endobj 45472 0 obj <

> endobj 45473 0 obj <

> endobj 45474 0 obj <

> endobj 45475 0 obj <

> endobj 45476 0 obj <

> endobj 45477 0 obj <

> endobj 45478 0 obj <

> endobj 45479 0 obj <

> endobj 45480 0 obj <

> endobj 45481 0 obj <

> endobj 45482 0 obj <

> endobj 45483 0 obj <

> endobj 45484 0 obj <

> endobj 45485 0 obj <

> endobj 45486 0 obj <

> endobj 45487 0 obj <

> endobj 45488 0 obj <

> endobj 45489 0 obj <

> endobj 45490 0 obj <

> endobj 45491 0 obj <

> endobj 45492 0 obj <

> endobj 45493 0 obj <

> endobj 45494 0 obj <

> endobj 45495 0 obj <

> endobj 45496 0 obj <

> endobj 45497 0 obj <

> endobj 45498 0 obj <

> endobj 45499 0 obj <

> endobj 45500 0 obj <

> endobj 45501 0 obj <

> endobj 45502 0 obj <

> endobj 45503 0 obj <

> endobj 45504 0 obj <

> endobj 45505 0 obj <

> endobj 45506 0 obj <

> endobj 45507 0 obj <

> endobj 45508 0 obj <

> endobj 45509 0 obj <

> endobj 45510 0 obj <

> endobj 45511 0 obj <

> endobj 45512 0 obj <

> endobj 45513 0 obj <

> endobj 45514 0 obj <

> endobj 45515 0 obj <

> endobj 45516 0 obj <

> endobj 45517 0 obj <

> endobj 45518 0 obj <

> endobj 45519 0 obj <

> endobj 45520 0 obj <

> endobj 45521 0 obj <

> endobj 45522 0 obj <

> endobj 45523 0 obj <

> endobj 45524 0 obj <

> endobj 45525 0 obj <

> endobj 45526 0 obj <

> endobj 45527 0 obj <

> endobj 45528 0 obj <

> endobj 45529 0 obj <

> endobj 45530 0 obj <

> endobj 45531 0 obj <

> endobj 45532 0 obj <

> endobj 45533 0 obj <

> endobj 45534 0 obj <

> endobj 45535 0 obj <

> endobj 45536 0 obj <

> endobj 45537 0 obj <

> endobj 45538 0 obj <

> endobj 45539 0 obj <

> endobj 45540 0 obj <

> endobj 45541 0 obj <

> endobj 45542 0 obj <

> endobj 45543 0 obj <

> endobj 45544 0 obj <

> endobj 45545 0 obj <

> endobj 45546 0 obj <

> endobj 45547 0 obj <

> endobj 45548 0 obj <

> endobj 45549 0 obj <

> endobj 45550 0 obj <

> endobj 45551 0 obj <

> endobj 45552 0 obj <

> endobj 45553 0 obj <

> endobj 45554 0 obj <

> endobj 45555 0 obj <

> endobj 45556 0 obj <

> endobj 45557 0 obj <

> endobj 45558 0 obj <

> endobj 45559 0 obj <

> endobj 45560 0 obj <

> endobj 45561 0 obj <

> endobj 45562 0 obj <

> endobj 45563 0 obj <

> endobj 45564 0 obj <

> endobj 45565 0 obj <

> endobj 45566 0 obj <

> endobj 45567 0 obj <

> endobj 45568 0 obj <

> endobj 45569 0 obj <

> endobj 45570 0 obj <

> endobj 45571 0 obj <

> endobj 45572 0 obj <

> endobj 45573 0 obj <

> endobj 45574 0 obj <

> endobj 45575 0 obj <

> endobj 45576 0 obj <

> endobj 45577 0 obj <

> endobj 45578 0 obj <

> endobj 45579 0 obj <

> endobj 45580 0 obj <

> endobj 45581 0 obj <

> endobj 45582 0 obj <

> endobj 45583 0 obj <

> endobj 45584 0 obj <

> endobj 45585 0 obj <

> endobj 45586 0 obj <

> endobj 45587 0 obj <

> endobj 45588 0 obj <

> endobj 45589 0 obj <

> endobj 45590 0 obj <

> endobj 45591 0 obj <

> endobj 45592 0 obj <

> endobj 45593 0 obj <

> endobj 45594 0 obj <

> endobj 45595 0 obj <

> endobj 45596 0 obj <

> endobj 45597 0 obj <

> endobj 45598 0 obj <

> endobj 45599 0 obj <

> endobj 45600 0 obj <

> endobj 45601 0 obj <

> endobj 45602 0 obj <

> endobj 45603 0 obj <

> endobj 45604 0 obj <

> endobj 45605 0 obj <

> endobj 45606 0 obj <

> endobj 45607 0 obj <

> endobj 45608 0 obj <

> endobj 45609 0 obj <

> endobj 45610 0 obj <

> endobj 45611 0 obj <

> endobj 45612 0 obj <

> endobj 45613 0 obj <

> endobj 45614 0 obj <

> endobj 45615 0 obj <

> endobj 45616 0 obj <

> endobj 45617 0 obj <

> endobj 45618 0 obj <

> endobj 45619 0 obj <

> endobj 45620 0 obj <

> endobj 45621 0 obj <

> endobj 45622 0 obj <

> endobj 45623 0 obj <

> endobj 45624 0 obj <

> endobj 45625 0 obj <

> endobj 45626 0 obj <

> endobj 45627 0 obj <

> endobj 45628 0 obj <

> endobj 45629 0 obj <

> endobj 45630 0 obj <

> endobj 45631 0 obj <

> endobj 45632 0 obj <

> endobj 45633 0 obj <

> endobj 45634 0 obj <

> endobj 45635 0 obj <

> endobj 45636 0 obj <

> endobj 45637 0 obj <

> endobj 45638 0 obj <

> endobj 45639 0 obj <

> endobj 45640 0 obj <

> endobj 45641 0 obj <

> endobj 45642 0 obj <

> endobj 45643 0 obj <

> endobj 45644 0 obj <

> endobj 45645 0 obj <

> endobj 45646 0 obj <

> endobj 45647 0 obj <

> endobj 45648 0 obj <

> endobj 45649 0 obj <

> endobj 45650 0 obj <

> endobj 45651 0 obj <

> endobj 45652 0 obj <

> endobj 45653 0 obj <

> endobj 45654 0 obj <

> endobj 45655 0 obj <

> endobj 45656 0 obj <

> endobj 45657 0 obj <

> endobj 45658 0 obj <

> endobj 45659 0 obj <

> endobj 45660 0 obj <

> endobj 45661 0 obj <

> endobj 45662 0 obj <

> endobj 45663 0 obj <

> endobj 45664 0 obj <

> endobj 45665 0 obj <

> endobj 45666 0 obj <

> endobj 45667 0 obj <

> endobj 45668 0 obj <

> endobj 45669 0 obj <

> endobj 45670 0 obj <

> endobj 45671 0 obj <

> endobj 45672 0 obj <

> endobj 45673 0 obj <

> endobj 45674 0 obj <

> endobj 45675 0 obj <

> endobj 45676 0 obj <

> endobj 45677 0 obj <

> endobj 45678 0 obj <

> endobj 45679 0 obj <

> endobj 45680 0 obj <

> endobj 45681 0 obj <

> endobj 45682 0 obj <

> endobj 45683 0 obj <

> endobj 45684 0 obj <

> endobj 45685 0 obj <

> endobj 45686 0 obj <

> endobj 45687 0 obj <

> endobj 45688 0 obj <

> endobj 45689 0 obj <

> endobj 45690 0 obj <

> endobj 45691 0 obj <

> endobj 45692 0 obj <

> endobj 45693 0 obj <

> endobj 45694 0 obj <

> endobj 45695 0 obj <

> endobj 45696 0 obj <

> endobj 45697 0 obj <

> endobj 45698 0 obj <

> endobj 45699 0 obj <

> endobj 45700 0 obj <

> endobj 45701 0 obj <

> endobj 45702 0 obj <

> endobj 45703 0 obj <

> endobj 45704 0 obj <

> endobj 45705 0 obj <

> endobj 45706 0 obj <

> endobj 45707 0 obj <

> endobj 45708 0 obj <

> endobj 45709 0 obj <

> endobj 45710 0 obj <

> endobj 45711 0 obj <

> endobj 45712 0 obj <

> endobj 45713 0 obj <

> endobj 45714 0 obj <

> endobj 45715 0 obj <

> endobj 45716 0 obj <

> endobj 45717 0 obj <

> endobj 45718 0 obj <

> endobj 45719 0 obj <

> endobj 45720 0 obj <

> endobj 45721 0 obj <

> endobj 45722 0 obj <

> endobj 45723 0 obj <

> endobj 45724 0 obj <

> endobj 45725 0 obj <

> endobj 45726 0 obj <

> endobj 45727 0 obj <

> endobj 45728 0 obj <

> endobj 45729 0 obj <

> endobj 45730 0 obj <

> endobj 45731 0 obj <

> endobj 45732 0 obj <

> endobj 45733 0 obj <

> endobj 45734 0 obj <

> endobj 45735 0 obj <

> endobj 45736 0 obj <

> endobj 45737 0 obj <

> endobj 45738 0 obj <

> endobj 45739 0 obj <

> endobj 45740 0 obj <

> endobj 45741 0 obj <

> endobj 45742 0 obj <

> endobj 45743 0 obj <

> endobj 45744 0 obj <

> endobj 45745 0 obj <

> endobj 45746 0 obj <

> endobj 45747 0 obj <

> endobj 45748 0 obj <

> endobj 45749 0 obj <

> endobj 45750 0 obj <

> endobj 45751 0 obj <

> endobj 45752 0 obj <

> endobj 45753 0 obj <

> endobj 45754 0 obj <

> endobj 45755 0 obj <

> endobj 45756 0 obj <

> endobj 45757 0 obj <

> endobj 45758 0 obj <

> endobj 45759 0 obj <

> endobj 45760 0 obj <

> endobj 45761 0 obj <

> endobj 45762 0 obj <

> endobj 45763 0 obj <

> endobj 45764 0 obj <

> endobj 45765 0 obj <

> endobj 45766 0 obj <

> endobj 45767 0 obj <

> endobj 45768 0 obj <

> endobj 45769 0 obj <

> endobj 45770 0 obj <

> endobj 45771 0 obj <

> endobj 45772 0 obj <

> endobj 45773 0 obj <

> endobj 45774 0 obj <

> endobj 45775 0 obj <

> endobj 45776 0 obj <

> endobj 45777 0 obj <

> endobj 45778 0 obj <

> endobj 45779 0 obj <

> endobj 45780 0 obj <

> endobj 45781 0 obj <

> endobj 45782 0 obj <

> endobj 45783 0 obj <

> endobj 45784 0 obj <

> endobj 45785 0 obj <

> endobj 45786 0 obj <

> endobj 45787 0 obj <

> endobj 45788 0 obj <

> endobj 45789 0 obj <

> endobj 45790 0 obj <

> endobj 45791 0 obj <

> endobj 45792 0 obj <

> endobj 45793 0 obj <

> endobj 45794 0 obj <

> endobj 45795 0 obj <

> endobj 45796 0 obj <

> endobj 45797 0 obj <

> endobj 45798 0 obj <

> endobj 45799 0 obj <

> endobj 45800 0 obj <

> endobj 45801 0 obj <

> endobj 45802 0 obj <

> endobj 45803 0 obj <

> endobj 45804 0 obj <

> endobj 45805 0 obj <

> endobj 45806 0 obj <

> endobj 45807 0 obj <

> endobj 45808 0 obj <

> endobj 45809 0 obj <

> endobj 45810 0 obj <

> endobj 45811 0 obj <

> endobj 45812 0 obj <

> endobj 45813 0 obj <

> endobj 45814 0 obj <

> endobj 45815 0 obj <

> endobj 45816 0 obj <

> endobj 45817 0 obj <

> endobj 45818 0 obj <

> endobj 45819 0 obj <

> endobj 45820 0 obj <

> endobj 45821 0 obj <

> endobj 45822 0 obj <

> endobj 45823 0 obj <

> endobj 45824 0 obj <

> endobj 45825 0 obj <

> endobj 45826 0 obj <

> endobj 45827 0 obj <

> endobj 45828 0 obj <

> endobj 45829 0 obj <

> endobj 45830 0 obj <

> endobj 45831 0 obj <

> endobj 45832 0 obj <

> endobj 45833 0 obj <

> endobj 45834 0 obj <

> endobj 45835 0 obj <

> endobj 45836 0 obj <

> endobj 45837 0 obj <

> endobj 45838 0 obj <

> endobj 45839 0 obj <

> endobj 45840 0 obj <

> endobj 45841 0 obj <

> endobj 45842 0 obj <

> endobj 45843 0 obj <

> endobj 45844 0 obj <

> endobj 45845 0 obj <

> endobj 45846 0 obj <

> endobj 45847 0 obj <

> endobj 45848 0 obj <

> endobj 45849 0 obj <

> endobj 45850 0 obj <

> endobj 45851 0 obj <

> endobj 45852 0 obj <

> endobj 45853 0 obj <

> endobj 45854 0 obj <

> endobj 45855 0 obj <

> endobj 45856 0 obj <

> endobj 45857 0 obj <

> endobj 45858 0 obj <

> endobj 45859 0 obj <

> endobj 45860 0 obj <

> endobj 45861 0 obj <

> endobj 45862 0 obj <

> endobj 45863 0 obj <

> endobj 45864 0 obj <

> endobj 45865 0 obj <

> endobj 45866 0 obj <

> endobj 45867 0 obj <

> endobj 45868 0 obj <

> endobj 45869 0 obj <

> endobj 45870 0 obj <

> endobj 45871 0 obj <

> endobj 45872 0 obj <

> endobj 45873 0 obj <

> endobj 45874 0 obj <

> endobj 45875 0 obj <

> endobj 45876 0 obj <

> endobj 45877 0 obj <

> endobj 45878 0 obj <

> endobj 45879 0 obj <

> endobj 45880 0 obj <

> endobj 45881 0 obj <

> endobj 45882 0 obj <

> endobj 45883 0 obj <

> endobj 45884 0 obj <

> endobj 45885 0 obj <

> endobj 45886 0 obj <

> endobj 45887 0 obj <

> endobj 45888 0 obj <

> endobj 45889 0 obj <

> endobj 45890 0 obj <

> endobj 45891 0 obj <

> endobj 45892 0 obj <

> endobj 45893 0 obj <

> endobj 45894 0 obj <

> endobj 45895 0 obj <

> endobj 45896 0 obj <

> endobj 45897 0 obj <

> endobj 45898 0 obj <

> endobj 45899 0 obj <

> endobj 45900 0 obj <

> endobj 45901 0 obj <

> endobj 45902 0 obj <

> endobj 45903 0 obj <

> endobj 45904 0 obj <

> endobj 45905 0 obj <

> endobj 45906 0 obj <

> endobj 45907 0 obj <

> endobj 45908 0 obj <

> endobj 45909 0 obj <

> endobj 45910 0 obj <

> endobj 45911 0 obj <

> endobj 45912 0 obj <

> endobj 45913 0 obj <

> endobj 45914 0 obj <

> endobj 45915 0 obj <

> endobj 45916 0 obj <
> endobj 45917 0 obj <

> endobj 45918 0 obj <

> endobj 45919 0 obj <

> endobj 45920 0 obj <

> endobj 45921 0 obj <

> endobj 45922 0 obj <

> endobj 45923 0 obj </Pg 7 0 R/S/Span/K 24/P 45922 0 R>> endobj 45924 0 obj <

> endobj 45925 0 obj <

> endobj 45926 0 obj </Pg 7 0 R/S/Span/K 31/P 45924 0 R>> endobj 45927 0 obj <

> endobj 45928 0 obj <

> endobj 45929 0 obj <

> endobj 45930 0 obj <

> endobj 45931 0 obj </Pg 8 0 R/S/Span/K 45/P 45929 0 R>> endobj 45932 0 obj <

> endobj 45933 0 obj <

> endobj 45934 0 obj <

> endobj 45935 0 obj </Pg 8 0 R/S/Span/K 55/P 45933 0 R>> endobj 45936 0 obj <

> endobj 45937 0 obj <

> endobj 45938 0 obj <

> endobj 45939 0 obj <

> endobj 45940 0 obj <> endobj 45941 0 obj </Pg 9 0 R/S/Span/K 70/P 45940 0 R>> endobj 45942 0 obj <> endobj 45943 0 obj <> endobj 45944 0 obj <

> endobj 45945 0 obj <

> endobj 45946 0 obj <

> endobj 45947 0 obj <
> endobj 45948 0 obj <
> endobj 45949 0 obj <
> endobj 45950 0 obj <> endobj 45951 0 obj <> endobj 45952 0 obj <

> endobj 45953 0 obj <

> endobj 45954 0 obj <> endobj 45955 0 obj <> endobj 45956 0 obj <> endobj 45957 0 obj <

> endobj 45958 0 obj <> endobj 45959 0 obj <> endobj 45960 0 obj <

> endobj 45961 0 obj <

> endobj 45962 0 obj <> endobj 45963 0 obj <> endobj 45964 0 obj <> endobj 45965 0 obj <> endobj 45966 0 obj <> endobj 45967 0 obj <> endobj 45968 0 obj <> endobj 45969 0 obj <> endobj 45970 0 obj <

> endobj 45971 0 obj <

> endobj 45972 0 obj <

> endobj 45973 0 obj <

> endobj 45974 0 obj <

> endobj 45975 0 obj <

> endobj 45976 0 obj <

> endobj 45977 0 obj <

> endobj 45978 0 obj <> endobj 45979 0 obj <> endobj 45980 0 obj </Pg 13335 0 R/S/Span/K 21/P 45976 0 R>> endobj 45981 0 obj </Pg 13335 0 R/S/Span/K 23/P 45976 0 R>> endobj 45982 0 obj <> endobj 45983 0 obj <> endobj 45984 0 obj <

> endobj 45985 0 obj </K 14/Pg 13335 0 R>> endobj 45986 0 obj <

> endobj 45987 0 obj <

> endobj 45988 0 obj <

> endobj 45989 0 obj <

> endobj 45990 0 obj <

> endobj 45991 0 obj <

> endobj 45992 0 obj <

> endobj 45993 0 obj <

> endobj 45994 0 obj </K 8/Pg 13335 0 R>> endobj 45995 0 obj <

> endobj 45996 0 obj <> endobj 45997 0 obj <

> endobj 45998 0 obj <

> endobj 45999 0 obj <

> endobj 46000 0 obj <> endobj 46001 0 obj <

> endobj 46002 0 obj <

> endobj 46003 0 obj </K 28/Pg 13335 0 R>> endobj 46004 0 obj <

> endobj 46005 0 obj <

> endobj 46006 0 obj <

> endobj 46007 0 obj </K 32/Pg 13335 0 R>> endobj 46008 0 obj <

> endobj 46009 0 obj <> endobj 46010 0 obj <> endobj 46011 0 obj <> endobj 46012 0 obj <> endobj 46013 0 obj <> endobj 46014 0 obj <> endobj 46015 0 obj <> endobj 46016 0 obj <> endobj 46017 0 obj <> endobj 46018 0 obj <> endobj 46019 0 obj <> endobj 46020 0 obj <> endobj 46021 0 obj <> endobj 46022 0 obj <> endobj 46023 0 obj <> endobj 46024 0 obj <> endobj 46025 0 obj <> endobj 46026 0 obj <> endobj 46027 0 obj <> endobj 46028 0 obj <> endobj 46029 0 obj <> endobj 46030 0 obj <> endobj 46031 0 obj <> endobj 46032 0 obj <> endobj 46033 0 obj <> endobj 46034 0 obj <> endobj 46035 0 obj <> endobj 46036 0 obj <> endobj 46037 0 obj <> endobj 46038 0 obj <> endobj 46039 0 obj <> endobj 46040 0 obj <> endobj 46041 0 obj <> endobj 46042 0 obj <> endobj 46043 0 obj <> endobj 46044 0 obj <> endobj 46045 0 obj <> endobj 46046 0 obj <> endobj 46047 0 obj <> endobj 46048 0 obj <> endobj 46049 0 obj <> endobj 46050 0 obj <> endobj 46051 0 obj <> endobj 46052 0 obj <> endobj 46053 0 obj <> endobj 46054 0 obj <> endobj 46055 0 obj <> endobj 46056 0 obj <> endobj 46057 0 obj <> endobj 46058 0 obj <> endobj 46059 0 obj <> endobj 46060 0 obj <> endobj 46061 0 obj <
> endobj 46062 0 obj <
> endobj 46063 0 obj <
> endobj 46064 0 obj <> endobj 46065 0 obj <> endobj 46066 0 obj <> endobj 46067 0 obj <> endobj 46068 0 obj <> endobj 46069 0 obj <> endobj 46070 0 obj <> endobj 46071 0 obj <> endobj 46072 0 obj <> endobj 46073 0 obj <> endobj 46074 0 obj <> endobj 46075 0 obj <> endobj 46076 0 obj <> endobj 46077 0 obj <> endobj 46078 0 obj <> endobj 46079 0 obj <> endobj 46080 0 obj <> endobj 46081 0 obj <> endobj 46082 0 obj <> endobj 46083 0 obj <> endobj 46084 0 obj <> endobj 46085 0 obj <> endobj 46086 0 obj <> endobj 46087 0 obj <> endobj 46088 0 obj <> endobj 46089 0 obj <> endobj 46090 0 obj <> endobj 46091 0 obj <> endobj 46092 0 obj <> endobj 46093 0 obj <> endobj 46094 0 obj <> endobj 46095 0 obj <> endobj 46096 0 obj <> endobj 46097 0 obj <> endobj 46098 0 obj <> endobj 46099 0 obj <> endobj 46100 0 obj <> endobj 46101 0 obj <> endobj 46102 0 obj <> endobj 46103 0 obj <> endobj 46104 0 obj <> endobj 46105 0 obj <> endobj 46106 0 obj <> endobj 46107 0 obj <> endobj 46108 0 obj <> endobj 46109 0 obj <> endobj 46110 0 obj <> endobj 46111 0 obj <> endobj 46112 0 obj <> endobj 46113 0 obj <> endobj 46114 0 obj <> endobj 46115 0 obj <> endobj 46116 0 obj <> endobj 46117 0 obj <> endobj 46118 0 obj <> endobj 46119 0 obj <> endobj 46120 0 obj <> endobj 46121 0 obj <> endobj 46122 0 obj <> endobj 46123 0 obj <> endobj 46124 0 obj <> endobj 46125 0 obj <> endobj 46126 0 obj <> endobj 46127 0 obj <> endobj 46128 0 obj <> endobj 46129 0 obj <> endobj 46130 0 obj <> endobj 46131 0 obj <> endobj 46132 0 obj <> endobj 46133 0 obj <> endobj 46134 0 obj <> endobj 46135 0 obj <> endobj 46136 0 obj <> endobj 46137 0 obj <> endobj 46138 0 obj <> endobj 46139 0 obj <> endobj 46140 0 obj <> endobj 46141 0 obj <> endobj 46142 0 obj <> endobj 46143 0 obj <> endobj 46144 0 obj <> endobj 46145 0 obj <> endobj 46146 0 obj <> endobj 46147 0 obj <> endobj 46148 0 obj <> endobj 46149 0 obj <> endobj 46150 0 obj <> endobj 46151 0 obj <> endobj 46152 0 obj <> endobj 46153 0 obj <> endobj 46154 0 obj <> endobj 46155 0 obj <> endobj 46156 0 obj <> endobj 46157 0 obj <> endobj 46158 0 obj <> endobj 46159 0 obj <> endobj 46160 0 obj <> endobj 46161 0 obj <> endobj 46162 0 obj <> endobj 46163 0 obj <> endobj 46164 0 obj <> endobj 46165 0 obj <> endobj 46166 0 obj <> endobj 46167 0 obj <> endobj 46168 0 obj <> endobj 46169 0 obj <> endobj 46170 0 obj <> endobj 46171 0 obj <> endobj 46172 0 obj <> endobj 46173 0 obj <> endobj 46174 0 obj <> endobj 46175 0 obj <> endobj 46176 0 obj <> endobj 46177 0 obj <> endobj 46178 0 obj <> endobj 46179 0 obj <> endobj 46180 0 obj <> endobj 46181 0 obj <> endobj 46182 0 obj <> endobj 46183 0 obj <> endobj 46184 0 obj <> endobj 46185 0 obj <> endobj 46186 0 obj <> endobj 46187 0 obj <> endobj 46188 0 obj <> endobj 46189 0 obj <> endobj 46190 0 obj <> endobj 46191 0 obj <> endobj 46192 0 obj <> endobj 46193 0 obj <> endobj 46194 0 obj <> endobj 46195 0 obj <> endobj 46196 0 obj <> endobj 46197 0 obj <> endobj 46198 0 obj <> endobj 46199 0 obj <> endobj 46200 0 obj <> endobj 46201 0 obj <> endobj 46202 0 obj <> endobj 46203 0 obj <> endobj 46204 0 obj <> endobj 46205 0 obj <> endobj 46206 0 obj <> endobj 46207 0 obj <> endobj 46208 0 obj <> endobj 46209 0 obj <> endobj 46210 0 obj <> endobj 46211 0 obj <> endobj 46212 0 obj <> endobj 46213 0 obj <> endobj 46214 0 obj <> endobj 46215 0 obj <> endobj 46216 0 obj <> endobj 46217 0 obj <> endobj 46218 0 obj <> endobj 46219 0 obj <> endobj 46220 0 obj <> endobj 46221 0 obj <> endobj 46222 0 obj <> endobj 46223 0 obj <> endobj 46224 0 obj <> endobj 46225 0 obj <> endobj 46226 0 obj <> endobj 46227 0 obj <> endobj 46228 0 obj <> endobj 46229 0 obj <> endobj 46230 0 obj <> endobj 46231 0 obj <> endobj 46232 0 obj <> endobj 46233 0 obj <> endobj 46234 0 obj <> endobj 46235 0 obj <> endobj 46236 0 obj <> endobj 46237 0 obj <> endobj 46238 0 obj <> endobj 46239 0 obj <> endobj 46240 0 obj <> endobj 46241 0 obj <> endobj 46242 0 obj <> endobj 46243 0 obj <> endobj 46244 0 obj <> endobj 46245 0 obj <> endobj 46246 0 obj <> endobj 46247 0 obj <> endobj 46248 0 obj <> endobj 46249 0 obj <> endobj 46250 0 obj <> endobj 46251 0 obj <> endobj 46252 0 obj <> endobj 46253 0 obj <> endobj 46254 0 obj <> endobj 46255 0 obj <> endobj 46256 0 obj <> endobj 46257 0 obj <> endobj 46258 0 obj <> endobj 46259 0 obj <> endobj 46260 0 obj <> endobj 46261 0 obj <> endobj 46262 0 obj <> endobj 46263 0 obj <> endobj 46264 0 obj <> endobj 46265 0 obj <> endobj 46266 0 obj <> endobj 46267 0 obj <> endobj 46268 0 obj <> endobj 46269 0 obj <> endobj 46270 0 obj <> endobj 46271 0 obj <> endobj 46272 0 obj <> endobj 46273 0 obj <> endobj 46274 0 obj <> endobj 46275 0 obj <> endobj 46276 0 obj <> endobj 46277 0 obj <> endobj 46278 0 obj <> endobj 46279 0 obj <> endobj 46280 0 obj <> endobj 46281 0 obj <> endobj 46282 0 obj <> endobj 46283 0 obj <> endobj 46284 0 obj <> endobj 46285 0 obj <> endobj 46286 0 obj <> endobj 46287 0 obj <> endobj 46288 0 obj <> endobj 46289 0 obj <> endobj 46290 0 obj <> endobj 46291 0 obj <> endobj 46292 0 obj <> endobj 46293 0 obj <> endobj 46294 0 obj <> endobj 46295 0 obj <> endobj 46296 0 obj <> endobj 46297 0 obj <> endobj 46298 0 obj <> endobj 46299 0 obj <> endobj 46300 0 obj <> endobj 46301 0 obj <> endobj 46302 0 obj <> endobj 46303 0 obj <> endobj 46304 0 obj <> endobj 46305 0 obj <> endobj 46306 0 obj <> endobj 46307 0 obj <> endobj 46308 0 obj <> endobj 46309 0 obj <> endobj 46310 0 obj <> endobj 46311 0 obj <> endobj 46312 0 obj <> endobj 46313 0 obj <> endobj 46314 0 obj <> endobj 46315 0 obj <> endobj 46316 0 obj <> endobj 46317 0 obj <> endobj 46318 0 obj <> endobj 46319 0 obj <> endobj 46320 0 obj <> endobj 46321 0 obj <> endobj 46322 0 obj <> endobj 46323 0 obj <> endobj 46324 0 obj <> endobj 46325 0 obj <> endobj 46326 0 obj <> endobj 46327 0 obj <> endobj 46328 0 obj <> endobj 46329 0 obj <> endobj 46330 0 obj <> endobj 46331 0 obj <> endobj 46332 0 obj <> endobj 46333 0 obj <> endobj 46334 0 obj <> endobj 46335 0 obj <> endobj 46336 0 obj <> endobj 46337 0 obj <> endobj 46338 0 obj <> endobj 46339 0 obj <> endobj 46340 0 obj <> endobj 46341 0 obj <> endobj 46342 0 obj <> endobj 46343 0 obj <> endobj 46344 0 obj <> endobj 46345 0 obj <> endobj 46346 0 obj <> endobj 46347 0 obj <> endobj 46348 0 obj <> endobj 46349 0 obj <> endobj 46350 0 obj <> endobj 46351 0 obj <> endobj 46352 0 obj <> endobj 46353 0 obj <> endobj 46354 0 obj <> endobj 46355 0 obj <> endobj 46356 0 obj <> endobj 46357 0 obj <> endobj 46358 0 obj <> endobj 46359 0 obj <> endobj 46360 0 obj <> endobj 46361 0 obj <> endobj 46362 0 obj <> endobj 46363 0 obj <> endobj 46364 0 obj <> endobj 46365 0 obj <> endobj 46366 0 obj <> endobj 46367 0 obj <> endobj 46368 0 obj <> endobj 46369 0 obj <> endobj 46370 0 obj <> endobj 46371 0 obj <> endobj 46372 0 obj <> endobj 46373 0 obj <> endobj 46374 0 obj <> endobj 46375 0 obj <> endobj 46376 0 obj <> endobj 46377 0 obj <> endobj 46378 0 obj <> endobj 46379 0 obj <> endobj 46380 0 obj <> endobj 46381 0 obj <> endobj 46382 0 obj <> endobj 46383 0 obj <> endobj 46384 0 obj <> endobj 46385 0 obj <> endobj 46386 0 obj <> endobj 46387 0 obj <> endobj 46388 0 obj <> endobj 46389 0 obj <> endobj 46390 0 obj <> endobj 46391 0 obj <> endobj 46392 0 obj <> endobj 46393 0 obj <> endobj 46394 0 obj <> endobj 46395 0 obj <> endobj 46396 0 obj <> endobj 46397 0 obj <> endobj 46398 0 obj <> endobj 46399 0 obj <> endobj 46400 0 obj <> endobj 46401 0 obj <> endobj 46402 0 obj <> endobj 46403 0 obj <> endobj 46404 0 obj <> endobj 46405 0 obj <> endobj 46406 0 obj <> endobj 46407 0 obj <> endobj 46408 0 obj <> endobj 46409 0 obj <> endobj 46410 0 obj <> endobj 46411 0 obj <> endobj 46412 0 obj <> endobj 46413 0 obj <> endobj 46414 0 obj <> endobj 46415 0 obj <> endobj 46416 0 obj <> endobj 46417 0 obj <> endobj 46418 0 obj <> endobj 46419 0 obj <> endobj 46420 0 obj <> endobj 46421 0 obj <> endobj 46422 0 obj <> endobj 46423 0 obj <> endobj 46424 0 obj <> endobj 46425 0 obj <> endobj 46426 0 obj <> endobj 46427 0 obj <> endobj 46428 0 obj <> endobj 46429 0 obj <> endobj 46430 0 obj <> endobj 46431 0 obj <> endobj 46432 0 obj <> endobj 46433 0 obj <> endobj 46434 0 obj <> endobj 46435 0 obj <> endobj 46436 0 obj <> endobj 46437 0 obj <> endobj 46438 0 obj <> endobj 46439 0 obj <> endobj 46440 0 obj <> endobj 46441 0 obj <> endobj 46442 0 obj <> endobj 46443 0 obj <> endobj 46444 0 obj <> endobj 46445 0 obj <> endobj 46446 0 obj <> endobj 46447 0 obj <> endobj 46448 0 obj <> endobj 46449 0 obj <> endobj 46450 0 obj <> endobj 46451 0 obj <> endobj 46452 0 obj <> endobj 46453 0 obj <> endobj 46454 0 obj <> endobj 46455 0 obj <> endobj 46456 0 obj <> endobj 46457 0 obj <> endobj 46458 0 obj <> endobj 46459 0 obj <> endobj 46460 0 obj <> endobj 46461 0 obj <> endobj 46462 0 obj <> endobj 46463 0 obj <> endobj 46464 0 obj <> endobj 46465 0 obj <> endobj 46466 0 obj <> endobj 46467 0 obj <> endobj 46468 0 obj <> endobj 46469 0 obj <> endobj 46470 0 obj <> endobj 46471 0 obj <> endobj 46472 0 obj <> endobj 46473 0 obj <> endobj 46474 0 obj <> endobj 46475 0 obj <> endobj 46476 0 obj <> endobj 46477 0 obj <> endobj 46478 0 obj <> endobj 46479 0 obj <> endobj 46480 0 obj <> endobj 46481 0 obj <> endobj 46482 0 obj <> endobj 46483 0 obj <> endobj 46484 0 obj <> endobj 46485 0 obj <> endobj 46486 0 obj <> endobj 46487 0 obj <> endobj 46488 0 obj <> endobj 46489 0 obj <> endobj 46490 0 obj <> endobj 46491 0 obj <> endobj 46492 0 obj <> endobj 46493 0 obj <> endobj 46494 0 obj <> endobj 46495 0 obj <> endobj 46496 0 obj <> endobj 46497 0 obj <> endobj 46498 0 obj <> endobj 46499 0 obj <> endobj 46500 0 obj <> endobj 46501 0 obj <> endobj 46502 0 obj <> endobj 46503 0 obj <> endobj 46504 0 obj <> endobj 46505 0 obj <> endobj 46506 0 obj <> endobj 46507 0 obj <> endobj 46508 0 obj <> endobj 46509 0 obj <> endobj 46510 0 obj <> endobj 46511 0 obj <> endobj 46512 0 obj <> endobj 46513 0 obj <> endobj 46514 0 obj <> endobj 46515 0 obj <> endobj 46516 0 obj <> endobj 46517 0 obj <> endobj 46518 0 obj <> endobj 46519 0 obj <> endobj 46520 0 obj <> endobj 46521 0 obj <> endobj 46522 0 obj <> endobj 46523 0 obj <> endobj 46524 0 obj <> endobj 46525 0 obj <> endobj 46526 0 obj <> endobj 46527 0 obj <> endobj 46528 0 obj <> endobj 46529 0 obj <> endobj 46530 0 obj <> endobj 46531 0 obj <> endobj 46532 0 obj <> endobj 46533 0 obj <> endobj 46534 0 obj <> endobj 46535 0 obj <> endobj 46536 0 obj <> endobj 46537 0 obj <> endobj 46538 0 obj <> endobj 46539 0 obj <> endobj 46540 0 obj <> endobj 46541 0 obj <> endobj 46542 0 obj <> endobj 46543 0 obj <> endobj 46544 0 obj <> endobj 46545 0 obj <> endobj 46546 0 obj <> endobj 46547 0 obj <> endobj 46548 0 obj <> endobj 46549 0 obj <> endobj 46550 0 obj <> endobj 46551 0 obj <> endobj 46552 0 obj <> endobj 46553 0 obj <> endobj 46554 0 obj <> endobj 46555 0 obj <> endobj 46556 0 obj <> endobj 46557 0 obj <> endobj 46558 0 obj <> endobj 46559 0 obj <> endobj 46560 0 obj <> endobj 46561 0 obj <> endobj 46562 0 obj <> endobj 46563 0 obj <> endobj 46564 0 obj <> endobj 46565 0 obj <> endobj 46566 0 obj <> endobj 46567 0 obj <> endobj 46568 0 obj <> endobj 46569 0 obj <> endobj 46570 0 obj <> endobj 46571 0 obj <> endobj 46572 0 obj <> endobj 46573 0 obj <> endobj 46574 0 obj <> endobj 46575 0 obj <> endobj 46576 0 obj <> endobj 46577 0 obj <> endobj 46578 0 obj <> endobj 46579 0 obj <> endobj 46580 0 obj <> endobj 46581 0 obj <> endobj 46582 0 obj <> endobj 46583 0 obj <> endobj 46584 0 obj <> endobj 46585 0 obj <> endobj 46586 0 obj <> endobj 46587 0 obj <> endobj 46588 0 obj <> endobj 46589 0 obj <> endobj 46590 0 obj <> endobj 46591 0 obj <> endobj 46592 0 obj <> endobj 46593 0 obj <> endobj 46594 0 obj <> endobj 46595 0 obj <> endobj 46596 0 obj <> endobj 46597 0 obj <> endobj 46598 0 obj <> endobj 46599 0 obj <> endobj 46600 0 obj <> endobj 46601 0 obj <> endobj 46602 0 obj <> endobj 46603 0 obj <> endobj 46604 0 obj <> endobj 46605 0 obj <> endobj 46606 0 obj <> endobj 46607 0 obj <> endobj 46608 0 obj <> endobj 46609 0 obj <> endobj 46610 0 obj <> endobj 46611 0 obj <> endobj 46612 0 obj <> endobj 46613 0 obj <> endobj 46614 0 obj <> endobj 46615 0 obj <> endobj 46616 0 obj <> endobj 46617 0 obj <> endobj 46618 0 obj <> endobj 46619 0 obj <> endobj 46620 0 obj <> endobj 46621 0 obj <> endobj 46622 0 obj <> endobj 46623 0 obj <> endobj 46624 0 obj <> endobj 46625 0 obj <> endobj 46626 0 obj <> endobj 46627 0 obj <> endobj 46628 0 obj <> endobj 46629 0 obj <> endobj 46630 0 obj <> endobj 46631 0 obj <> endobj 46632 0 obj <> endobj 46633 0 obj <> endobj 46634 0 obj <> endobj 46635 0 obj <> endobj 46636 0 obj <> endobj 46637 0 obj <> endobj 46638 0 obj <> endobj 46639 0 obj <> endobj 46640 0 obj <> endobj 46641 0 obj <> endobj 46642 0 obj <> endobj 46643 0 obj <> endobj 46644 0 obj <> endobj 46645 0 obj <> endobj 46646 0 obj <> endobj 46647 0 obj <> endobj 46648 0 obj <> endobj 46649 0 obj <> endobj 46650 0 obj <> endobj 46651 0 obj <> endobj 46652 0 obj <> endobj 46653 0 obj <> endobj 46654 0 obj <> endobj 46655 0 obj <> endobj 46656 0 obj <> endobj 46657 0 obj <> endobj 46658 0 obj <> endobj 46659 0 obj <> endobj 46660 0 obj <> endobj 46661 0 obj <> endobj 46662 0 obj <> endobj 46663 0 obj <> endobj 46664 0 obj <> endobj 46665 0 obj <> endobj 46666 0 obj <> endobj 46667 0 obj <> endobj 46668 0 obj <> endobj 46669 0 obj <> endobj 46670 0 obj <> endobj 46671 0 obj <> endobj 46672 0 obj <> endobj 46673 0 obj <> endobj 46674 0 obj <> endobj 46675 0 obj <> endobj 46676 0 obj <> endobj 46677 0 obj <> endobj 46678 0 obj <> endobj 46679 0 obj <> endobj 46680 0 obj <> endobj 46681 0 obj <> endobj 46682 0 obj <> endobj 46683 0 obj <> endobj 46684 0 obj <> endobj 46685 0 obj <> endobj 46686 0 obj <> endobj 46687 0 obj <> endobj 46688 0 obj <> endobj 46689 0 obj <> endobj 46690 0 obj <> endobj 46691 0 obj <> endobj 46692 0 obj <> endobj 46693 0 obj <> endobj 46694 0 obj <> endobj 46695 0 obj <> endobj 46696 0 obj <> endobj 46697 0 obj <> endobj 46698 0 obj <> endobj 46699 0 obj <> endobj 46700 0 obj <> endobj 46701 0 obj <> endobj 46702 0 obj <> endobj 46703 0 obj <> endobj 46704 0 obj <> endobj 46705 0 obj <> endobj 46706 0 obj <> endobj 46707 0 obj <> endobj 46708 0 obj <> endobj 46709 0 obj <> endobj 46710 0 obj <> endobj 46711 0 obj <> endobj 46712 0 obj <> endobj 46713 0 obj <> endobj 46714 0 obj <> endobj 46715 0 obj <> endobj 46716 0 obj <> endobj 46717 0 obj <> endobj 46718 0 obj <> endobj 46719 0 obj <> endobj 46720 0 obj <> endobj 46721 0 obj <> endobj 46722 0 obj <> endobj 46723 0 obj <> endobj 46724 0 obj <> endobj 46725 0 obj <> endobj 46726 0 obj <> endobj 46727 0 obj <> endobj 46728 0 obj <> endobj 46729 0 obj <> endobj 46730 0 obj <> endobj 46731 0 obj <> endobj 46732 0 obj <> endobj 46733 0 obj <> endobj 46734 0 obj <> endobj 46735 0 obj <> endobj 46736 0 obj <> endobj 46737 0 obj <> endobj 46738 0 obj <> endobj 46739 0 obj <> endobj 46740 0 obj <> endobj 46741 0 obj <> endobj 46742 0 obj <> endobj 46743 0 obj <> endobj xref 0 46744 0000000000 65536 f 0000000017 00000 n 0000000238 00000 n 0000000460 00000 n 0000000910 00000 n 0000009807 00000 n 0000009977 00000 n 0000010236 00000 n 0000010495 00000 n 0000010754 00000 n 0000011013 00000 n 0000011273 00000 n 0000011533 00000 n 0000011777 00000 n 0000012037 00000 n 0000012281 00000 n 0000012321 00000 n 0000012361 00000 n 0000012401 00000 n 0000012441 00000 n 0000012481 00000 n 0000012521 00000 n 0000012561 00000 n 0000012601 00000 n 0000012641 00000 n 0000012681 00000 n 0000012721 00000 n 0000012761 00000 n 0000012801 00000 n 0000012841 00000 n 0000012881 00000 n 0000012921 00000 n 0000012961 00000 n 0000013001 00000 n 0000013041 00000 n 0000013477 00000 n 0000013517 00000 n 0000013557 00000 n 0000013597 00000 n 0000013637 00000 n 0000013677 00000 n 0000013717 00000 n 0000013757 00000 n 0000013797 00000 n 0000013837 00000 n 0000013877 00000 n 0000013917 00000 n 0000013957 00000 n 0000013997 00000 n 0000014037 00000 n 0000014077 00000 n 0000014117 00000 n 0000014157 00000 n 0000014197 00000 n 0000014237 00000 n 0000014277 00000 n 0000014317 00000 n 0000014357 00000 n 0000014397 00000 n 0000014437 00000 n 0000014477 00000 n 0000014517 00000 n 0000014557 00000 n 0000014597 00000 n 0000014637 00000 n 0000014677 00000 n 0000014717 00000 n 0000014757 00000 n 0000014797 00000 n 0000014837 00000 n 0000014877 00000 n 0000014917 00000 n 0000014957 00000 n 0000014997 00000 n 0000015037 00000 n 0000015077 00000 n 0000015723 00000 n 0000015763 00000 n 0000015803 00000 n 0000015843 00000 n 0000015883 00000 n 0000015923 00000 n 0000015963 00000 n 0000016003 00000 n 0000016043 00000 n 0000016083 00000 n 0000016123 00000 n 0000016163 00000 n 0000016203 00000 n 0000016243 00000 n 0000016283 00000 n 0000016323 00000 n 0000016363 00000 n 0000016403 00000 n 0000016443 00000 n 0000016483 00000 n 0000016523 00000 n 0000016563 00000 n 0000016603 00000 n 0000016643 00000 n 0000016683 00000 n 0000016724 00000 n 0000016765 00000 n 0000016806 00000 n 0000016847 00000 n 0000016888 00000 n 0000016929 00000 n 0000016970 00000 n 0000017011 00000 n 0000017052 00000 n 0000017093 00000 n 0000017134 00000 n 0000017175 00000 n 0000017782 00000 n 0000017823 00000 n 0000017864 00000 n 0000017905 00000 n 0000017946 00000 n 0000017987 00000 n 0000018028 00000 n 0000018069 00000 n 0000018110 00000 n 0000018151 00000 n 0000018192 00000 n 0000018233 00000 n 0000018274 00000 n 0000018315 00000 n 0000018356 00000 n 0000018397 00000 n 0000018438 00000 n 0000018479 00000 n 0000018520 00000 n 0000018561 00000 n 0000018602 00000 n 0000018643 00000 n 0000018684 00000 n 0000018725 00000 n 0000018766 00000 n 0000018807 00000 n 0000018848 00000 n 0000018889 00000 n 0000018930 00000 n 0000018971 00000 n 0000019012 00000 n 0000019053 00000 n 0000019094 00000 n 0000019135 00000 n 0000019176 00000 n 0000019217 00000 n 0000019258 00000 n 0000019299 00000 n 0000019340 00000 n 0000019967 00000 n 0000020008 00000 n 0000020049 00000 n 0000020090 00000 n 0000020131 00000 n 0000020172 00000 n 0000020213 00000 n 0000020254 00000 n 0000020295 00000 n 0000020336 00000 n 0000020377 00000 n 0000020418 00000 n 0000020459 00000 n 0000020500 00000 n 0000020541 00000 n 0000020582 00000 n 0000020623 00000 n 0000020664 00000 n 0000020705 00000 n 0000020746 00000 n 0000020787 00000 n 0000020828 00000 n 0000020869 00000 n 0000020910 00000 n 0000020951 00000 n 0000020992 00000 n 0000021033 00000 n 0000021074 00000 n 0000021115 00000 n 0000021156 00000 n 0000021197 00000 n 0000021238 00000 n 0000021279 00000 n 0000021320 00000 n 0000021361 00000 n 0000021402 00000 n 0000021443 00000 n 0000021484 00000 n 0000021525 00000 n 0000022152 00000 n 0000022193 00000 n 0000022234 00000 n 0000022275 00000 n 0000022316 00000 n 0000022357 00000 n 0000022398 00000 n 0000022439 00000 n 0000022480 00000 n 0000022521 00000 n 0000022562 00000 n 0000022603 00000 n 0000022644 00000 n 0000022685 00000 n 0000022726 00000 n 0000022767 00000 n 0000022808 00000 n 0000022849 00000 n 0000022890 00000 n 0000022931 00000 n 0000022972 00000 n 0000023013 00000 n 0000023054 00000 n 0000023095 00000 n 0000023136 00000 n 0000023177 00000 n 0000023218 00000 n 0000023259 00000 n 0000023300 00000 n 0000023341 00000 n 0000023382 00000 n 0000023423 00000 n 0000023464 00000 n 0000023506 00000 n 0000023548 00000 n 0000023590 00000 n 0000023632 00000 n 0000023674 00000 n 0000023716 00000 n 0000024343 00000 n 0000024385 00000 n 0000024427 00000 n 0000024469 00000 n 0000024511 00000 n 0000024553 00000 n 0000024595 00000 n 0000024637 00000 n 0000024679 00000 n 0000024721 00000 n 0000024763 00000 n 0000024805 00000 n 0000024847 00000 n 0000024889 00000 n 0000024931 00000 n 0000024973 00000 n 0000025015 00000 n 0000025057 00000 n 0000025099 00000 n 0000025141 00000 n 0000025183 00000 n 0000025225 00000 n 0000025267 00000 n 0000025309 00000 n 0000025351 00000 n 0000025393 00000 n 0000025435 00000 n 0000025477 00000 n 0000025519 00000 n 0000025561 00000 n 0000025603 00000 n 0000025645 00000 n 0000025687 00000 n 0000025729 00000 n 0000025771 00000 n 0000025813 00000 n 0000025855 00000 n 0000025897 00000 n 0000025939 00000 n 0000026567 00000 n 0000026609 00000 n 0000026651 00000 n 0000026693 00000 n 0000026735 00000 n 0000026777 00000 n 0000026819 00000 n 0000026861 00000 n 0000026903 00000 n 0000026945 00000 n 0000026987 00000 n 0000027029 00000 n 0000027071 00000 n 0000027113 00000 n 0000027155 00000 n 0000027197 00000 n 0000027239 00000 n 0000027281 00000 n 0000027323 00000 n 0000027365 00000 n 0000027407 00000 n 0000027449 00000 n 0000027491 00000 n 0000027533 00000 n 0000027575 00000 n 0000027617 00000 n 0000027659 00000 n 0000027701 00000 n 0000027743 00000 n 0000027785 00000 n 0000027827 00000 n 0000027869 00000 n 0000027911 00000 n 0000027953 00000 n 0000027995 00000 n 0000028037 00000 n 0000028079 00000 n 0000028121 00000 n 0000028163 00000 n 0000028791 00000 n 0000028833 00000 n 0000028875 00000 n 0000028917 00000 n 0000028959 00000 n 0000029001 00000 n 0000029043 00000 n 0000029085 00000 n 0000029127 00000 n 0000029169 00000 n 0000029211 00000 n 0000029253 00000 n 0000029295 00000 n 0000029337 00000 n 0000029379 00000 n 0000029421 00000 n 0000029463 00000 n 0000029505 00000 n 0000029547 00000 n 0000029589 00000 n 0000029631 00000 n 0000029673 00000 n 0000029715 00000 n 0000029757 00000 n 0000029799 00000 n 0000029841 00000 n 0000029883 00000 n 0000029925 00000 n 0000029967 00000 n 0000030009 00000 n 0000030051 00000 n 0000030093 00000 n 0000030135 00000 n 0000030177 00000 n 0000030219 00000 n 0000030261 00000 n 0000030303 00000 n 0000030345 00000 n 0000030387 00000 n 0000031015 00000 n 0000031057 00000 n 0000031099 00000 n 0000031141 00000 n 0000031183 00000 n 0000031225 00000 n 0000031267 00000 n 0000031309 00000 n 0000031351 00000 n 0000031393 00000 n 0000031731 00000 n 0000031771 00000 n 0000032029 00000 n 0000032269 00000 n 0000032309 00000 n 0000032577 00000 n 0000032817 00000 n 0000033075 00000 n 0000033298 00000 n 0000033338 00000 n 0000033596 00000 n 0000033836 00000 n 0000034114 00000 n 0000034337 00000 n 0000034377 00000 n 0000034635 00000 n 0000034875 00000 n 0000035115 00000 n 0000035373 00000 n 0000035413 00000 n 0000035453 00000 n 0000035493 00000 n 0000035771 00000 n 0000035811 00000 n 0000036069 00000 n 0000036309 00000 n 0000036349 00000 n 0000036607 00000 n 0000036847 00000 n 0000037087 00000 n 0000037327 00000 n 0000037367 00000 n 0000037625 00000 n 0000037865 00000 n 0000037905 00000 n 0000038163 00000 n 0000038403 00000 n 0000038643 00000 n 0000038883 00000 n 0000038923 00000 n 0000039181 00000 n 0000039421 00000 n 0000039461 00000 n 0000039719 00000 n 0000039977 00000 n 0000040017 00000 n 0000040275 00000 n 0000040515 00000 n 0000040555 00000 n 0000040813 00000 n 0000040853 00000 n 0000041111 00000 n 0000041351 00000 n 0000041391 00000 n 0000041649 00000 n 0000041889 00000 n 0000041929 00000 n 0000041969 00000 n 0000042009 00000 n 0000042049 00000 n 0000042337 00000 n 0000042377 00000 n 0000042645 00000 n 0000042885 00000 n 0000043125 00000 n 0000043365 00000 n 0000043405 00000 n 0000043673 00000 n 0000043913 00000 n 0000043953 00000 n 0000044211 00000 n 0000044251 00000 n 0000044291 00000 n 0000044559 00000 n 0000044599 00000 n 0000044639 00000 n 0000044927 00000 n 0000044967 00000 n 0000045007 00000 n 0000045047 00000 n 0000045087 00000 n 0000045385 00000 n 0000045425 00000 n 0000045465 00000 n 0000045733 00000 n 0000045773 00000 n 0000046031 00000 n 0000046071 00000 n 0000046329 00000 n 0000046569 00000 n 0000046809 00000 n 0000046849 00000 n 0000047107 00000 n 0000047147 00000 n 0000047405 00000 n 0000047645 00000 n 0000047885 00000 n 0000048125 00000 n 0000048365 00000 n 0000048605 00000 n 0000048845 00000 n 0000048885 00000 n 0000049143 00000 n 0000049383 00000 n 0000049623 00000 n 0000049863 00000 n 0000049903 00000 n 0000050161 00000 n 0000050401 00000 n 0000050641 00000 n 0000050881 00000 n 0000050921 00000 n 0000051179 00000 n 0000051219 00000 n 0000051259 00000 n 0000051527 00000 n 0000051767 00000 n 0000051807 00000 n 0000052065 00000 n 0000052105 00000 n 0000052145 00000 n 0000052185 00000 n 0000052463 00000 n 0000052503 00000 n 0000052761 00000 n 0000053001 00000 n 0000053241 00000 n 0000053481 00000 n 0000053521 00000 n 0000053561 00000 n 0000053601 00000 n 0000053879 00000 n 0000054119 00000 n 0000054359 00000 n 0000054599 00000 n 0000054839 00000 n 0000054879 00000 n 0000055137 00000 n 0000055177 00000 n 0000055217 00000 n 0000055485 00000 n 0000055726 00000 n 0000055766 00000 n 0000056025 00000 n 0000056266 00000 n 0000056507 00000 n 0000056547 00000 n 0000056806 00000 n 0000057047 00000 n 0000057087 00000 n 0000057346 00000 n 0000057587 00000 n 0000057627 00000 n 0000057886 00000 n 0000057926 00000 n 0000058185 00000 n 0000058426 00000 n 0000058667 00000 n 0000058908 00000 n 0000059149 00000 n 0000059190 00000 n 0000059449 00000 n 0000059490 00000 n 0000059749 00000 n 0000059990 00000 n 0000060031 00000 n 0000060290 00000 n 0000060531 00000 n 0000060754 00000 n 0000060795 00000 n 0000060836 00000 n 0000060877 00000 n 0000061156 00000 n 0000061397 00000 n 0000061438 00000 n 0000061697 00000 n 0000061938 00000 n 0000062179 00000 n 0000062220 00000 n 0000062479 00000 n 0000062520 00000 n 0000062779 00000 n 0000063020 00000 n 0000063061 00000 n 0000063320 00000 n 0000063361 00000 n 0000063620 00000 n 0000063861 00000 n 0000063902 00000 n 0000064161 00000 n 0000064402 00000 n 0000064443 00000 n 0000064702 00000 n 0000064943 00000 n 0000064984 00000 n 0000065243 00000 n 0000065284 00000 n 0000065543 00000 n 0000065784 00000 n 0000065825 00000 n 0000066084 00000 n 0000066125 00000 n 0000066384 00000 n 0000066425 00000 n 0000066684 00000 n 0000066925 00000 n 0000067166 00000 n 0000067207 00000 n 0000067466 00000 n 0000067707 00000 n 0000067948 00000 n 0000067989 00000 n 0000068248 00000 n 0000068289 00000 n 0000068548 00000 n 0000068789 00000 n 0000069030 00000 n 0000069071 00000 n 0000069330 00000 n 0000069371 00000 n 0000069630 00000 n 0000069871 00000 n 0000069912 00000 n 0000070171 00000 n 0000070412 00000 n 0000070653 00000 n 0000070694 00000 n 0000070953 00000 n 0000070994 00000 n 0000071253 00000 n 0000071494 00000 n 0000071735 00000 n 0000071976 00000 n 0000072217 00000 n 0000072258 00000 n 0000072517 00000 n 0000072758 00000 n 0000072799 00000 n 0000073058 00000 n 0000073299 00000 n 0000073540 00000 n 0000073581 00000 n 0000073622 00000 n 0000073891 00000 n 0000074132 00000 n 0000074373 00000 n 0000074414 00000 n 0000074455 00000 n 0000074496 00000 n 0000074775 00000 n 0000075016 00000 n 0000075057 00000 n 0000075098 00000 n 0000075367 00000 n 0000075608 00000 n 0000075849 00000 n 0000075890 00000 n 0000076149 00000 n 0000076390 00000 n 0000076431 00000 n 0000076690 00000 n 0000076931 00000 n 0000076972 00000 n 0000077231 00000 n 0000077272 00000 n 0000077531 00000 n 0000077772 00000 n 0000078013 00000 n 0000078054 00000 n 0000078313 00000 n 0000078354 00000 n 0000078613 00000 n 0000078854 00000 n 0000078895 00000 n 0000079154 00000 n 0000079395 00000 n 0000079636 00000 n 0000079877 00000 n 0000080118 00000 n 0000080159 00000 n 0000080418 00000 n 0000080659 00000 n 0000080900 00000 n 0000080941 00000 n 0000081200 00000 n 0000081441 00000 n 0000081682 00000 n 0000081923 00000 n 0000081964 00000 n 0000082223 00000 n 0000082464 00000 n 0000082705 00000 n 0000082746 00000 n 0000083005 00000 n 0000083046 00000 n 0000083325 00000 n 0000083548 00000 n 0000083589 00000 n 0000083630 00000 n 0000083671 00000 n 0000083950 00000 n 0000084191 00000 n 0000084432 00000 n 0000084673 00000 n 0000084714 00000 n 0000084973 00000 n 0000085014 00000 n 0000085273 00000 n 0000085314 00000 n 0000085573 00000 n 0000085614 00000 n 0000085873 00000 n 0000085914 00000 n 0000086173 00000 n 0000086214 00000 n 0000086473 00000 n 0000086514 00000 n 0000086773 00000 n 0000087014 00000 n 0000087055 00000 n 0000087314 00000 n 0000087555 00000 n 0000087796 00000 n 0000088037 00000 n 0000088278 00000 n 0000088519 00000 n 0000088760 00000 n 0000088801 00000 n 0000089060 00000 n 0000089101 00000 n 0000089142 00000 n 0000089183 00000 n 0000089462 00000 n 0000089503 00000 n 0000089762 00000 n 0000090003 00000 n 0000090244 00000 n 0000090485 00000 n 0000090726 00000 n 0000090767 00000 n 0000090808 00000 n 0000091077 00000 n 0000091118 00000 n 0000091377 00000 n 0000091618 00000 n 0000091659 00000 n 0000091918 00000 n 0000091959 00000 n 0000092218 00000 n 0000092459 00000 n 0000092700 00000 n 0000092741 00000 n 0000093000 00000 n 0000093241 00000 n 0000093482 00000 n 0000093523 00000 n 0000093782 00000 n 0000094023 00000 n 0000094264 00000 n 0000094505 00000 n 0000094746 00000 n 0000094987 00000 n 0000095228 00000 n 0000095269 00000 n 0000095528 00000 n 0000095769 00000 n 0000096010 00000 n 0000096251 00000 n 0000096492 00000 n 0000096533 00000 n 0000096792 00000 n 0000097033 00000 n 0000097074 00000 n 0000097115 00000 n 0000097156 00000 n 0000097435 00000 n 0000097676 00000 n 0000097717 00000 n 0000097976 00000 n 0000098217 00000 n 0000098458 00000 n 0000098699 00000 n 0000098940 00000 n 0000098981 00000 n 0000099240 00000 n 0000099481 00000 n 0000099522 00000 n 0000099781 00000 n 0000100022 00000 n 0000100063 00000 n 0000100322 00000 n 0000100563 00000 n 0000100804 00000 n 0000101045 00000 n 0000101286 00000 n 0000101527 00000 n 0000101568 00000 n 0000101827 00000 n 0000101868 00000 n 0000101909 00000 n 0000102178 00000 n 0000102419 00000 n 0000102660 00000 n 0000102901 00000 n 0000102942 00000 n 0000103201 00000 n 0000103442 00000 n 0000103683 00000 n 0000103924 00000 n 0000104165 00000 n 0000104406 00000 n 0000104447 00000 n 0000104706 00000 n 0000104947 00000 n 0000105188 00000 n 0000105429 00000 n 0000105670 00000 n 0000105711 00000 n 0000105970 00000 n 0000106211 00000 n 0000106470 00000 n 0000106711 00000 n 0000106752 00000 n 0000107011 00000 n 0000107252 00000 n 0000107493 00000 n 0000107734 00000 n 0000107975 00000 n 0000108016 00000 n 0000108275 00000 n 0000108516 00000 n 0000108757 00000 n 0000108998 00000 n 0000109239 00000 n 0000109480 00000 n 0000109521 00000 n 0000109780 00000 n 0000109821 00000 n 0000110080 00000 n 0000110321 00000 n 0000110562 00000 n 0000110803 00000 n 0000110844 00000 n 0000111103 00000 n 0000111344 00000 n 0000111385 00000 n 0000111644 00000 n 0000111885 00000 n 0000112108 00000 n 0000112149 00000 n 0000112190 00000 n 0000112231 00000 n 0000112510 00000 n 0000112751 00000 n 0000112992 00000 n 0000113233 00000 n 0000113474 00000 n 0000113515 00000 n 0000113774 00000 n 0000114015 00000 n 0000114256 00000 n 0000114297 00000 n 0000114556 00000 n 0000114797 00000 n 0000114838 00000 n 0000115097 00000 n 0000115138 00000 n 0000115397 00000 n 0000115638 00000 n 0000115679 00000 n 0000115938 00000 n 0000115979 00000 n 0000116238 00000 n 0000116479 00000 n 0000116720 00000 n 0000116961 00000 n 0000117002 00000 n 0000117261 00000 n 0000117502 00000 n 0000117743 00000 n 0000117984 00000 n 0000118025 00000 n 0000118284 00000 n 0000118525 00000 n 0000118766 00000 n 0000118807 00000 n 0000119066 00000 n 0000119307 00000 n 0000119348 00000 n 0000119607 00000 n 0000119648 00000 n 0000119689 00000 n 0000119730 00000 n 0000120009 00000 n 0000120250 00000 n 0000120491 00000 n 0000120732 00000 n 0000120973 00000 n 0000121214 00000 n 0000121455 00000 n 0000121696 00000 n 0000121937 00000 n 0000122178 00000 n 0000122219 00000 n 0000122478 00000 n 0000122719 00000 n 0000122960 00000 n 0000123001 00000 n 0000123260 00000 n 0000123301 00000 n 0000123560 00000 n 0000123801 00000 n 0000124042 00000 n 0000124083 00000 n 0000124342 00000 n 0000124583 00000 n 0000124624 00000 n 0000124883 00000 n 0000125124 00000 n 0000125365 00000 n 0000125406 00000 n 0000125665 00000 n 0000125706 00000 n 0000125965 00000 n 0000126206 00000 n 0000126247 00000 n 0000126506 00000 n 0000126747 00000 n 0000126988 00000 n 0000127229 00000 n 0000127470 00000 n 0000127711 00000 n 0000127752 00000 n 0000128011 00000 n 0000128252 00000 n 0000128293 00000 n 0000128552 00000 n 0000128593 00000 n 0000128852 00000 n 0000129093 00000 n 0000129134 00000 n 0000129393 00000 n 0000129634 00000 n 0000129875 00000 n 0000130116 00000 n 0000130357 00000 n 0000130598 00000 n 0000130639 00000 n 0000130898 00000 n 0000131139 00000 n 0000131380 00000 n 0000131621 00000 n 0000131662 00000 n 0000131921 00000 n 0000132162 00000 n 0000132403 00000 n 0000132644 00000 n 0000132885 00000 n 0000133126 00000 n 0000133167 00000 n 0000133426 00000 n 0000133667 00000 n 0000133708 00000 n 0000133967 00000 n 0000134208 00000 n 0000134449 00000 n 0000134690 00000 n 0000134931 00000 n 0000135172 00000 n 0000135213 00000 n 0000135472 00000 n 0000135713 00000 n 0000135954 00000 n 0000135995 00000 n 0000136254 00000 n 0000136295 00000 n 0000136554 00000 n 0000136795 00000 n 0000136836 00000 n 0000137095 00000 n 0000137336 00000 n 0000137377 00000 n 0000137636 00000 n 0000137877 00000 n 0000137918 00000 n 0000137959 00000 n 0000138000 00000 n 0000138279 00000 n 0000138320 00000 n 0000138579 00000 n 0000138620 00000 n 0000138879 00000 n 0000139120 00000 n 0000139361 00000 n 0000139402 00000 n 0000139661 00000 n 0000139902 00000 n 0000140143 00000 n 0000140384 00000 n 0000140625 00000 n 0000140866 00000 n 0000141107 00000 n 0000141348 00000 n 0000141589 00000 n 0000141630 00000 n 0000141889 00000 n 0000142130 00000 n 0000142171 00000 n 0000142430 00000 n 0000142671 00000 n 0000142912 00000 n 0000142953 00000 n 0000143212 00000 n 0000143453 00000 n 0000143694 00000 n 0000143935 00000 n 0000144176 00000 n 0000144217 00000 n 0000144476 00000 n 0000144717 00000 n 0000144758 00000 n 0000145017 00000 n 0000145258 00000 n 0000145499 00000 n 0000145740 00000 n 0000145781 00000 n 0000145822 00000 n 0000146091 00000 n 0000146332 00000 n 0000146573 00000 n 0000146814 00000 n 0000146855 00000 n 0000147114 00000 n 0000147155 00000 n 0000147414 00000 n 0000147655 00000 n 0000147896 00000 n 0000148137 00000 n 0000148178 00000 n 0000148437 00000 n 0000148678 00000 n 0000148901 00000 n 0000148942 00000 n 0000148983 00000 n 0000149025 00000 n 0000149305 00000 n 0000149347 00000 n 0000149607 00000 n 0000149849 00000 n 0000150091 00000 n 0000150333 00000 n 0000150375 00000 n 0000150417 00000 n 0000150687 00000 n 0000150929 00000 n 0000151171 00000 n 0000151413 00000 n 0000151655 00000 n 0000151897 00000 n 0000152139 00000 n 0000152381 00000 n 0000152623 00000 n 0000152665 00000 n 0000152925 00000 n 0000152967 00000 n 0000153227 00000 n 0000153269 00000 n 0000153529 00000 n 0000153571 00000 n 0000153831 00000 n 0000154073 00000 n 0000154315 00000 n 0000154557 00000 n 0000154599 00000 n 0000154859 00000 n 0000155101 00000 n 0000155343 00000 n 0000155585 00000 n 0000155827 00000 n 0000155869 00000 n 0000156129 00000 n 0000156371 00000 n 0000156413 00000 n 0000156673 00000 n 0000156915 00000 n 0000157157 00000 n 0000157399 00000 n 0000157441 00000 n 0000157701 00000 n 0000157943 00000 n 0000158185 00000 n 0000158427 00000 n 0000158469 00000 n 0000158729 00000 n 0000158771 00000 n 0000159031 00000 n 0000159073 00000 n 0000159115 00000 n 0000159157 00000 n 0000159437 00000 n 0000159679 00000 n 0000159921 00000 n 0000159963 00000 n 0000160223 00000 n 0000160465 00000 n 0000160707 00000 n 0000160749 00000 n 0000161009 00000 n 0000161251 00000 n 0000161493 00000 n 0000161735 00000 n 0000161777 00000 n 0000162037 00000 n 0000162079 00000 n 0000162339 00000 n 0000162581 00000 n 0000162823 00000 n 0000163065 00000 n 0000163307 00000 n 0000163349 00000 n 0000163609 00000 n 0000163651 00000 n 0000163911 00000 n 0000163953 00000 n 0000163995 00000 n 0000164037 00000 n 0000164317 00000 n 0000164559 00000 n 0000164801 00000 n 0000165043 00000 n 0000165085 00000 n 0000165345 00000 n 0000165587 00000 n 0000165829 00000 n 0000166071 00000 n 0000166313 00000 n 0000166555 00000 n 0000166797 00000 n 0000167039 00000 n 0000167281 00000 n 0000167523 00000 n 0000167765 00000 n 0000168007 00000 n 0000168249 00000 n 0000168491 00000 n 0000168733 00000 n 0000168775 00000 n 0000169035 00000 n 0000169277 00000 n 0000169319 00000 n 0000169579 00000 n 0000169821 00000 n 0000170063 00000 n 0000170305 00000 n 0000170347 00000 n 0000170607 00000 n 0000170849 00000 n 0000171091 00000 n 0000171133 00000 n 0000171393 00000 n 0000171435 00000 n 0000171477 00000 n 0000171747 00000 n 0000171789 00000 n 0000172049 00000 n 0000172291 00000 n 0000172533 00000 n 0000172775 00000 n 0000173017 00000 n 0000173259 00000 n 0000173501 00000 n 0000173743 00000 n 0000173985 00000 n 0000174227 00000 n 0000174269 00000 n 0000174529 00000 n 0000174771 00000 n 0000174813 00000 n 0000175073 00000 n 0000175315 00000 n 0000175357 00000 n 0000175617 00000 n 0000175859 00000 n 0000176101 00000 n 0000176343 00000 n 0000176585 00000 n 0000176827 00000 n 0000176869 00000 n 0000177129 00000 n 0000177371 00000 n 0000177413 00000 n 0000177455 00000 n 0000177725 00000 n 0000177767 00000 n 0000178027 00000 n 0000178269 00000 n 0000178511 00000 n 0000178753 00000 n 0000178995 00000 n 0000179237 00000 n 0000179479 00000 n 0000179521 00000 n 0000179781 00000 n 0000180023 00000 n 0000180265 00000 n 0000180507 00000 n 0000180749 00000 n 0000180991 00000 n 0000181233 00000 n 0000181275 00000 n 0000181535 00000 n 0000181777 00000 n 0000182019 00000 n 0000182261 00000 n 0000182303 00000 n 0000182563 00000 n 0000182805 00000 n 0000183047 00000 n 0000183289 00000 n 0000183331 00000 n 0000183373 00000 n 0000183643 00000 n 0000183885 00000 n 0000183927 00000 n 0000184187 00000 n 0000184229 00000 n 0000184271 00000 n 0000184541 00000 n 0000184783 00000 n 0000184825 00000 n 0000185085 00000 n 0000185327 00000 n 0000185569 00000 n 0000185811 00000 n 0000185853 00000 n 0000186113 00000 n 0000186355 00000 n 0000186597 00000 n 0000186839 00000 n 0000187081 00000 n 0000187323 00000 n 0000187365 00000 n 0000187625 00000 n 0000187867 00000 n 0000188109 00000 n 0000188351 00000 n 0000188593 00000 n 0000188835 00000 n 0000189077 00000 n 0000189319 00000 n 0000189361 00000 n 0000189621 00000 n 0000189863 00000 n 0000190105 00000 n 0000190347 00000 n 0000190589 00000 n 0000190831 00000 n 0000190873 00000 n 0000191133 00000 n 0000191375 00000 n 0000191417 00000 n 0000191677 00000 n 0000191919 00000 n 0000191961 00000 n 0000192003 00000 n 0000192273 00000 n 0000192315 00000 n 0000192575 00000 n 0000192817 00000 n 0000193059 00000 n 0000193101 00000 n 0000193143 00000 n 0000193413 00000 n 0000193655 00000 n 0000193697 00000 n 0000193957 00000 n 0000194199 00000 n 0000194241 00000 n 0000194501 00000 n 0000194743 00000 n 0000194985 00000 n 0000195227 00000 n 0000195469 00000 n 0000195711 00000 n 0000195953 00000 n 0000195995 00000 n 0000196255 00000 n 0000196297 00000 n 0000196557 00000 n 0000196799 00000 n 0000197041 00000 n 0000197283 00000 n 0000197525 00000 n 0000197567 00000 n 0000197827 00000 n 0000198069 00000 n 0000198311 00000 n 0000198553 00000 n 0000198795 00000 n 0000199037 00000 n 0000199279 00000 n 0000199521 00000 n 0000199763 00000 n 0000200005 00000 n 0000200247 00000 n 0000200489 00000 n 0000200731 00000 n 0000200773 00000 n 0000201033 00000 n 0000201275 00000 n 0000201517 00000 n 0000201559 00000 n 0000201819 00000 n 0000201861 00000 n 0000202121 00000 n 0000202163 00000 n 0000202423 00000 n 0000202465 00000 n 0000202507 00000 n 0000202549 00000 n 0000202829 00000 n 0000203071 00000 n 0000203313 00000 n 0000203555 00000 n 0000203797 00000 n 0000203839 00000 n 0000204099 00000 n 0000204141 00000 n 0000204401 00000 n 0000204643 00000 n 0000204885 00000 n 0000205127 00000 n 0000205369 00000 n 0000205611 00000 n 0000205853 00000 n 0000205895 00000 n 0000206155 00000 n 0000206397 00000 n 0000206639 00000 n 0000206881 00000 n 0000207123 00000 n 0000207365 00000 n 0000207607 00000 n 0000207849 00000 n 0000208091 00000 n 0000208333 00000 n 0000208575 00000 n 0000208617 00000 n 0000208877 00000 n 0000209119 00000 n 0000209361 00000 n 0000209603 00000 n 0000209845 00000 n 0000210087 00000 n 0000210129 00000 n 0000210389 00000 n 0000210631 00000 n 0000210873 00000 n 0000211115 00000 n 0000211357 00000 n 0000211599 00000 n 0000211841 00000 n 0000212083 00000 n 0000212325 00000 n 0000212567 00000 n 0000212609 00000 n 0000212869 00000 n 0000213111 00000 n 0000213153 00000 n 0000213195 00000 n 0000213237 00000 n 0000213517 00000 n 0000213759 00000 n 0000214001 00000 n 0000214243 00000 n 0000214485 00000 n 0000214727 00000 n 0000214969 00000 n 0000215011 00000 n 0000215271 00000 n 0000215513 00000 n 0000215755 00000 n 0000215997 00000 n 0000216239 00000 n 0000216281 00000 n 0000216323 00000 n 0000216593 00000 n 0000216835 00000 n 0000217077 00000 n 0000217319 00000 n 0000217561 00000 n 0000217803 00000 n 0000218045 00000 n 0000218287 00000 n 0000218329 00000 n 0000218589 00000 n 0000218631 00000 n 0000218891 00000 n 0000218933 00000 n 0000219193 00000 n 0000219235 00000 n 0000219495 00000 n 0000219737 00000 n 0000219979 00000 n 0000220221 00000 n 0000220463 00000 n 0000220705 00000 n 0000220747 00000 n 0000221007 00000 n 0000221249 00000 n 0000221491 00000 n 0000221533 00000 n 0000221793 00000 n 0000222035 00000 n 0000222277 00000 n 0000222519 00000 n 0000222761 00000 n 0000223003 00000 n 0000223245 00000 n 0000223287 00000 n 0000223547 00000 n 0000223789 00000 n 0000223831 00000 n 0000224111 00000 n 0000224153 00000 n 0000224413 00000 n 0000224637 00000 n 0000224679 00000 n 0000224721 00000 n 0000224763 00000 n 0000225043 00000 n 0000225285 00000 n 0000225527 00000 n 0000225769 00000 n 0000226011 00000 n 0000226253 00000 n 0000226495 00000 n 0000226537 00000 n 0000226797 00000 n 0000227039 00000 n 0000227281 00000 n 0000227523 00000 n 0000227565 00000 n 0000227825 00000 n 0000228067 00000 n 0000228309 00000 n 0000228351 00000 n 0000228611 00000 n 0000228853 00000 n 0000229095 00000 n 0000229337 00000 n 0000229379 00000 n 0000229639 00000 n 0000229881 00000 n 0000230123 00000 n 0000230365 00000 n 0000230607 00000 n 0000230849 00000 n 0000231091 00000 n 0000231133 00000 n 0000231393 00000 n 0000231435 00000 n 0000231695 00000 n 0000231937 00000 n 0000231979 00000 n 0000232021 00000 n 0000232063 00000 n 0000232343 00000 n 0000232385 00000 n 0000232655 00000 n 0000232897 00000 n 0000232939 00000 n 0000233199 00000 n 0000233441 00000 n 0000233683 00000 n 0000233925 00000 n 0000233967 00000 n 0000234227 00000 n 0000234469 00000 n 0000234511 00000 n 0000234771 00000 n 0000234813 00000 n 0000234855 00000 n 0000235125 00000 n 0000235367 00000 n 0000235609 00000 n 0000235851 00000 n 0000236093 00000 n 0000236335 00000 n 0000236577 00000 n 0000236819 00000 n 0000237061 00000 n 0000237303 00000 n 0000237545 00000 n 0000237787 00000 n 0000238029 00000 n 0000238271 00000 n 0000238513 00000 n 0000238755 00000 n 0000238997 00000 n 0000239239 00000 n 0000239481 00000 n 0000239723 00000 n 0000239965 00000 n 0000240207 00000 n 0000240449 00000 n 0000240691 00000 n 0000240933 00000 n 0000241175 00000 n 0000241417 00000 n 0000241659 00000 n 0000241701 00000 n 0000241961 00000 n 0000242203 00000 n 0000242445 00000 n 0000242687 00000 n 0000242929 00000 n 0000242971 00000 n 0000243231 00000 n 0000243473 00000 n 0000243697 00000 n 0000243739 00000 n 0000243781 00000 n 0000243823 00000 n 0000244103 00000 n 0000244373 00000 n 0000244615 00000 n 0000244657 00000 n 0000244917 00000 n 0000244959 00000 n 0000245219 00000 n 0000245461 00000 n 0000245503 00000 n 0000245763 00000 n 0000246005 00000 n 0000246247 00000 n 0000246489 00000 n 0000246731 00000 n 0000246973 00000 n 0000247215 00000 n 0000247457 00000 n 0000247699 00000 n 0000247941 00000 n 0000248183 00000 n 0000248425 00000 n 0000248667 00000 n 0000248909 00000 n 0000249151 00000 n 0000249393 00000 n 0000249635 00000 n 0000249877 00000 n 0000250119 00000 n 0000250361 00000 n 0000250603 00000 n 0000250845 00000 n 0000251087 00000 n 0000251329 00000 n 0000251571 00000 n 0000251813 00000 n 0000252055 00000 n 0000252297 00000 n 0000252539 00000 n 0000252781 00000 n 0000253023 00000 n 0000253265 00000 n 0000253507 00000 n 0000253749 00000 n 0000253991 00000 n 0000254233 00000 n 0000254475 00000 n 0000254717 00000 n 0000254959 00000 n 0000255219 00000 n 0000255461 00000 n 0000255703 00000 n 0000255945 00000 n 0000256187 00000 n 0000256429 00000 n 0000256671 00000 n 0000256913 00000 n 0000257155 00000 n 0000257197 00000 n 0000257457 00000 n 0000257681 00000 n 0000257723 00000 n 0000257983 00000 n 0000258225 00000 n 0000258467 00000 n 0000258709 00000 n 0000258951 00000 n 0000259193 00000 n 0000259435 00000 n 0000259677 00000 n 0000259919 00000 n 0000260161 00000 n 0000260403 00000 n 0000260645 00000 n 0000260887 00000 n 0000261129 00000 n 0000261371 00000 n 0000261613 00000 n 0000261855 00000 n 0000262097 00000 n 0000262339 00000 n 0000262581 00000 n 0000262823 00000 n 0000263065 00000 n 0000263307 00000 n 0000263549 00000 n 0000263791 00000 n 0000264033 00000 n 0000264275 00000 n 0000264517 00000 n 0000264759 00000 n 0000265001 00000 n 0000265243 00000 n 0000265485 00000 n 0000265727 00000 n 0000265969 00000 n 0000266211 00000 n 0000266453 00000 n 0000266695 00000 n 0000266937 00000 n 0000267179 00000 n 0000267421 00000 n 0000267663 00000 n 0000267905 00000 n 0000268147 00000 n 0000268389 00000 n 0000268631 00000 n 0000268873 00000 n 0000269115 00000 n 0000269357 00000 n 0000269599 00000 n 0000269823 00000 n 0000269865 00000 n 0000269907 00000 n 0000270177 00000 n 0000270419 00000 n 0000270661 00000 n 0000270703 00000 n 0000270963 00000 n 0000271205 00000 n 0000271447 00000 n 0000271689 00000 n 0000271931 00000 n 0000272173 00000 n 0000272415 00000 n 0000272457 00000 n 0000272717 00000 n 0000272959 00000 n 0000273201 00000 n 0000273443 00000 n 0000273685 00000 n 0000273927 00000 n 0000274169 00000 n 0000274411 00000 n 0000274653 00000 n 0000274895 00000 n 0000275137 00000 n 0000275379 00000 n 0000275621 00000 n 0000275863 00000 n 0000276105 00000 n 0000276347 00000 n 0000276589 00000 n 0000276831 00000 n 0000277073 00000 n 0000277333 00000 n 0000277575 00000 n 0000277817 00000 n 0000278059 00000 n 0000278301 00000 n 0000278543 00000 n 0000278785 00000 n 0000279027 00000 n 0000279269 00000 n 0000279511 00000 n 0000279753 00000 n 0000279995 00000 n 0000280237 00000 n 0000280479 00000 n 0000280721 00000 n 0000280963 00000 n 0000281205 00000 n 0000281447 00000 n 0000281689 00000 n 0000281931 00000 n 0000282173 00000 n 0000282415 00000 n 0000282639 00000 n 0000282681 00000 n 0000282941 00000 n 0000283183 00000 n 0000283443 00000 n 0000283743 00000 n 0000283985 00000 n 0000284245 00000 n 0000284487 00000 n 0000284711 00000 n 0000284753 00000 n 0000284796 00000 n 0000284839 00000 n 0000284882 00000 n 0000284925 00000 n 0000284968 00000 n 0000285012 00000 n 0000285055 00000 n 0000285098 00000 n 0000285141 00000 n 0000285184 00000 n 0000285227 00000 n 0000285270 00000 n 0000285313 00000 n 0000285356 00000 n 0000285399 00000 n 0000285442 00000 n 0000285485 00000 n 0000285529 00000 n 0000285573 00000 n 0000285617 00000 n 0000285661 00000 n 0000285705 00000 n 0000285749 00000 n 0000285792 00000 n 0000285835 00000 n 0000285878 00000 n 0000285921 00000 n 0000285964 00000 n 0000286007 00000 n 0000286050 00000 n 0000286093 00000 n 0000286136 00000 n 0000286179 00000 n 0000286222 00000 n 0000286265 00000 n 0000286308 00000 n 0000286352 00000 n 0000286396 00000 n 0000286440 00000 n 0000286484 00000 n 0000286528 00000 n 0000286571 00000 n 0000286614 00000 n 0000286657 00000 n 0000286701 00000 n 0000286744 00000 n 0000286787 00000 n 0000286830 00000 n 0000286873 00000 n 0000286916 00000 n 0000286959 00000 n 0000287002 00000 n 0000287045 00000 n 0000287088 00000 n 0000287131 00000 n 0000287175 00000 n 0000287219 00000 n 0000287263 00000 n 0000287307 00000 n 0000287351 00000 n 0000287395 00000 n 0000287438 00000 n 0000287481 00000 n 0000287524 00000 n 0000287567 00000 n 0000287610 00000 n 0000287653 00000 n 0000287696 00000 n 0000287739 00000 n 0000287782 00000 n 0000287825 00000 n 0000287868 00000 n 0000287911 00000 n 0000287955 00000 n 0000287999 00000 n 0000288042 00000 n 0000288085 00000 n 0000288128 00000 n 0000288171 00000 n 0000288214 00000 n 0000288257 00000 n 0000288300 00000 n 0000288343 00000 n 0000288386 00000 n 0000288429 00000 n 0000288472 00000 n 0000288516 00000 n 0000288560 00000 n 0000288603 00000 n 0000288646 00000 n 0000288690 00000 n 0000288734 00000 n 0000288778 00000 n 0000288822 00000 n 0000288866 00000 n 0000288910 00000 n 0000288954 00000 n 0000288998 00000 n 0000289042 00000 n 0000289086 00000 n 0000289130 00000 n 0000289173 00000 n 0000289216 00000 n 0000289259 00000 n 0000289302 00000 n 0000289345 00000 n 0000289389 00000 n 0000289432 00000 n 0000289475 00000 n 0000289518 00000 n 0000289561 00000 n 0000289604 00000 n 0000289647 00000 n 0000289690 00000 n 0000289733 00000 n 0000289776 00000 n 0000289819 00000 n 0000289862 00000 n 0000289905 00000 n 0000289948 00000 n 0000289991 00000 n 0000290034 00000 n 0000290077 00000 n 0000290121 00000 n 0000290165 00000 n 0000290209 00000 n 0000290253 00000 n 0000290297 00000 n 0000290341 00000 n 0000290385 00000 n 0000290429 00000 n 0000290473 00000 n 0000290517 00000 n 0000290561 00000 n 0000290605 00000 n 0000290649 00000 n 0000290693 00000 n 0000290737 00000 n 0000290781 00000 n 0000290825 00000 n 0000290869 00000 n 0000290913 00000 n 0000290957 00000 n 0000291001 00000 n 0000291045 00000 n 0000291089 00000 n 0000291133 00000 n 0000291177 00000 n 0000291221 00000 n 0000291264 00000 n 0000291307 00000 n 0000291350 00000 n 0000291393 00000 n 0000291436 00000 n 0000291479 00000 n 0000293289 00000 n 0000293333 00000 n 0000293377 00000 n 0000293421 00000 n 0000293465 00000 n 0000293509 00000 n 0000293553 00000 n 0000293597 00000 n 0000293641 00000 n 0000293685 00000 n 0000293728 00000 n 0000293771 00000 n 0000293815 00000 n 0000293859 00000 n 0000293903 00000 n 0000293947 00000 n 0000293991 00000 n 0000294035 00000 n 0000294079 00000 n 0000294123 00000 n 0000294167 00000 n 0000294211 00000 n 0000294255 00000 n 0000294299 00000 n 0000294343 00000 n 0000294387 00000 n 0000294431 00000 n 0000294475 00000 n 0000294518 00000 n 0000294561 00000 n 0000294604 00000 n 0000294648 00000 n 0000294692 00000 n 0000294736 00000 n 0000294780 00000 n 0000294824 00000 n 0000294868 00000 n 0000294912 00000 n 0000294956 00000 n 0000295000 00000 n 0000295044 00000 n 0000295088 00000 n 0000295131 00000 n 0000295174 00000 n 0000295218 00000 n 0000295262 00000 n 0000295306 00000 n 0000295350 00000 n 0000295394 00000 n 0000295438 00000 n 0000295482 00000 n 0000295526 00000 n 0000295570 00000 n 0000295614 00000 n 0000295658 00000 n 0000295702 00000 n 0000295746 00000 n 0000295790 00000 n 0000295834 00000 n 0000295877 00000 n 0000295921 00000 n 0000295965 00000 n 0000296009 00000 n 0000296053 00000 n 0000296097 00000 n 0000296141 00000 n 0000296185 00000 n 0000296229 00000 n 0000296273 00000 n 0000296316 00000 n 0000296360 00000 n 0000296404 00000 n 0000296448 00000 n 0000296492 00000 n 0000296536 00000 n 0000296580 00000 n 0000296624 00000 n 0000296668 00000 n 0000296712 00000 n 0000296756 00000 n 0000296800 00000 n 0000296843 00000 n 0000296887 00000 n 0000296931 00000 n 0000296975 00000 n 0000297019 00000 n 0000297062 00000 n 0000297106 00000 n 0000297150 00000 n 0000297194 00000 n 0000297238 00000 n 0000297282 00000 n 0000297326 00000 n 0000297370 00000 n 0000297414 00000 n 0000297458 00000 n 0000297502 00000 n 0000297546 00000 n 0000297590 00000 n 0000297633 00000 n 0000297676 00000 n 0000297719 00000 n 0000297762 00000 n 0000297805 00000 n 0000297848 00000 n 0000297891 00000 n 0000297934 00000 n 0000297977 00000 n 0000298020 00000 n 0000298063 00000 n 0000298106 00000 n 0000298149 00000 n 0000298192 00000 n 0000298236 00000 n 0000298280 00000 n 0000298324 00000 n 0000298367 00000 n 0000298410 00000 n 0000298453 00000 n 0000298497 00000 n 0000298541 00000 n 0000298585 00000 n 0000298629 00000 n 0000298673 00000 n 0000298717 00000 n 0000298761 00000 n 0000298805 00000 n 0000298848 00000 n 0000298892 00000 n 0000298936 00000 n 0000298980 00000 n 0000299024 00000 n 0000299067 00000 n 0000299110 00000 n 0000299153 00000 n 0000299196 00000 n 0000299239 00000 n 0000299283 00000 n 0000299327 00000 n 0000299371 00000 n 0000299415 00000 n 0000299459 00000 n 0000299503 00000 n 0000299546 00000 n 0000299589 00000 n 0000299633 00000 n 0000299676 00000 n 0000299719 00000 n 0000299762 00000 n 0000299805 00000 n 0000299848 00000 n 0000299891 00000 n 0000299935 00000 n 0000299978 00000 n 0000300022 00000 n 0000300065 00000 n 0000300109 00000 n 0000300152 00000 n 0000300195 00000 n 0000300238 00000 n 0000300281 00000 n 0000300324 00000 n 0000300368 00000 n 0000300412 00000 n 0000300456 00000 n 0000300500 00000 n 0000300543 00000 n 0000300587 00000 n 0000300631 00000 n 0000300675 00000 n 0000300719 00000 n 0000300763 00000 n 0000300807 00000 n 0000300850 00000 n 0000300894 00000 n 0000300937 00000 n 0000300981 00000 n 0000301024 00000 n 0000301067 00000 n 0000301110 00000 n 0000301153 00000 n 0000301196 00000 n 0000301239 00000 n 0000301282 00000 n 0000301325 00000 n 0000301368 00000 n 0000301412 00000 n 0000301456 00000 n 0000301499 00000 n 0000301542 00000 n 0000301585 00000 n 0000301628 00000 n 0000301671 00000 n 0000301714 00000 n 0000301757 00000 n 0000301800 00000 n 0000301843 00000 n 0000301886 00000 n 0000301929 00000 n 0000301972 00000 n 0000302015 00000 n 0000302058 00000 n 0000302101 00000 n 0000302144 00000 n 0000302187 00000 n 0000302230 00000 n 0000302274 00000 n 0000302318 00000 n 0000302362 00000 n 0000302406 00000 n 0000302450 00000 n 0000302494 00000 n 0000302538 00000 n 0000302582 00000 n 0000302625 00000 n 0000302668 00000 n 0000302711 00000 n 0000302754 00000 n 0000302797 00000 n 0000302840 00000 n 0000302883 00000 n 0000302926 00000 n 0000302969 00000 n 0000303012 00000 n 0000303055 00000 n 0000303099 00000 n 0000303143 00000 n 0000303187 00000 n 0000303231 00000 n 0000303275 00000 n 0000303319 00000 n 0000303362 00000 n 0000303405 00000 n 0000303448 00000 n 0000303491 00000 n 0000303534 00000 n 0000303577 00000 n 0000303620 00000 n 0000303663 00000 n 0000303706 00000 n 0000303749 00000 n 0000303793 00000 n 0000303837 00000 n 0000303880 00000 n 0000303923 00000 n 0000303966 00000 n 0000304009 00000 n 0000304052 00000 n 0000304095 00000 n 0000304138 00000 n 0000304181 00000 n 0000304224 00000 n 0000304267 00000 n 0000304310 00000 n 0000304354 00000 n 0000304398 00000 n 0000304441 00000 n 0000304484 00000 n 0000304527 00000 n 0000304571 00000 n 0000304615 00000 n 0000304659 00000 n 0000304703 00000 n 0000304747 00000 n 0000304791 00000 n 0000304834 00000 n 0000304877 00000 n 0000304920 00000 n 0000304963 00000 n 0000307893 00000 n 0000307937 00000 n 0000307981 00000 n 0000308025 00000 n 0000308069 00000 n 0000308113 00000 n 0000308157 00000 n 0000308201 00000 n 0000308245 00000 n 0000308289 00000 n 0000308333 00000 n 0000308377 00000 n 0000308421 00000 n 0000308464 00000 n 0000308507 00000 n 0000308550 00000 n 0000308593 00000 n 0000308636 00000 n 0000308680 00000 n 0000308724 00000 n 0000308767 00000 n 0000308810 00000 n 0000308853 00000 n 0000308896 00000 n 0000308939 00000 n 0000308982 00000 n 0000309025 00000 n 0000309068 00000 n 0000309111 00000 n 0000309154 00000 n 0000309198 00000 n 0000309242 00000 n 0000309286 00000 n 0000309330 00000 n 0000309374 00000 n 0000309417 00000 n 0000309460 00000 n 0000309504 00000 n 0000309547 00000 n 0000309590 00000 n 0000309633 00000 n 0000309676 00000 n 0000309720 00000 n 0000309764 00000 n 0000309808 00000 n 0000309852 00000 n 0000309896 00000 n 0000309940 00000 n 0000309984 00000 n 0000310027 00000 n 0000310071 00000 n 0000310115 00000 n 0000310159 00000 n 0000310203 00000 n 0000310247 00000 n 0000310291 00000 n 0000310335 00000 n 0000310379 00000 n 0000310423 00000 n 0000310467 00000 n 0000310510 00000 n 0000310553 00000 n 0000310596 00000 n 0000310639 00000 n 0000310682 00000 n 0000310725 00000 n 0000310769 00000 n 0000310813 00000 n 0000310856 00000 n 0000310899 00000 n 0000310942 00000 n 0000310985 00000 n 0000311029 00000 n 0000311073 00000 n 0000311116 00000 n 0000311159 00000 n 0000311202 00000 n 0000311245 00000 n 0000311288 00000 n 0000311331 00000 n 0000311374 00000 n 0000311417 00000 n 0000311460 00000 n 0000311503 00000 n 0000311546 00000 n 0000311589 00000 n 0000311633 00000 n 0000311677 00000 n 0000311721 00000 n 0000311765 00000 n 0000311809 00000 n 0000311853 00000 n 0000311896 00000 n 0000311939 00000 n 0000311982 00000 n 0000312025 00000 n 0000312068 00000 n 0000312111 00000 n 0000312154 00000 n 0000312197 00000 n 0000312240 00000 n 0000312284 00000 n 0000312327 00000 n 0000312371 00000 n 0000312415 00000 n 0000312459 00000 n 0000312503 00000 n 0000312547 00000 n 0000312591 00000 n 0000312635 00000 n 0000312679 00000 n 0000312723 00000 n 0000312767 00000 n 0000312811 00000 n 0000312855 00000 n 0000312899 00000 n 0000312943 00000 n 0000312986 00000 n 0000313029 00000 n 0000313072 00000 n 0000313115 00000 n 0000313158 00000 n 0000313201 00000 n 0000313244 00000 n 0000313287 00000 n 0000313330 00000 n 0000313373 00000 n 0000313416 00000 n 0000313460 00000 n 0000313504 00000 n 0000313548 00000 n 0000313592 00000 n 0000313636 00000 n 0000313680 00000 n 0000313724 00000 n 0000313768 00000 n 0000313812 00000 n 0000313856 00000 n 0000313900 00000 n 0000313944 00000 n 0000313987 00000 n 0000314030 00000 n 0000314073 00000 n 0000314116 00000 n 0000314159 00000 n 0000314203 00000 n 0000314247 00000 n 0000314291 00000 n 0000314335 00000 n 0000314379 00000 n 0000314422 00000 n 0000314466 00000 n 0000314510 00000 n 0000314554 00000 n 0000314598 00000 n 0000314642 00000 n 0000314686 00000 n 0000314729 00000 n 0000314772 00000 n 0000314815 00000 n 0000314858 00000 n 0000314901 00000 n 0000314944 00000 n 0000314987 00000 n 0000315031 00000 n 0000315075 00000 n 0000315119 00000 n 0000315162 00000 n 0000315205 00000 n 0000315248 00000 n 0000315291 00000 n 0000315335 00000 n 0000315379 00000 n 0000315423 00000 n 0000315467 00000 n 0000315510 00000 n 0000315553 00000 n 0000315596 00000 n 0000315640 00000 n 0000315684 00000 n 0000315728 00000 n 0000315772 00000 n 0000315816 00000 n 0000315860 00000 n 0000315904 00000 n 0000315948 00000 n 0000315992 00000 n 0000316036 00000 n 0000316080 00000 n 0000316124 00000 n 0000316168 00000 n 0000316211 00000 n 0000316254 00000 n 0000316297 00000 n 0000316341 00000 n 0000316384 00000 n 0000316427 00000 n 0000316470 00000 n 0000316513 00000 n 0000316556 00000 n 0000316600 00000 n 0000316643 00000 n 0000316686 00000 n 0000316729 00000 n 0000316772 00000 n 0000316815 00000 n 0000316858 00000 n 0000316901 00000 n 0000316944 00000 n 0000316987 00000 n 0000317030 00000 n 0000317073 00000 n 0000317116 00000 n 0000317159 00000 n 0000317202 00000 n 0000317245 00000 n 0000317288 00000 n 0000317331 00000 n 0000317375 00000 n 0000317419 00000 n 0000317463 00000 n 0000317506 00000 n 0000317550 00000 n 0000317594 00000 n 0000317638 00000 n 0000317682 00000 n 0000317726 00000 n 0000317769 00000 n 0000317812 00000 n 0000317855 00000 n 0000317898 00000 n 0000317941 00000 n 0000317984 00000 n 0000318028 00000 n 0000318072 00000 n 0000318116 00000 n 0000318160 00000 n 0000318204 00000 n 0000318248 00000 n 0000318292 00000 n 0000318336 00000 n 0000318380 00000 n 0000318424 00000 n 0000318468 00000 n 0000318512 00000 n 0000318556 00000 n 0000318600 00000 n 0000318643 00000 n 0000318686 00000 n 0000318729 00000 n 0000318773 00000 n 0000318817 00000 n 0000318861 00000 n 0000318905 00000 n 0000318949 00000 n 0000318993 00000 n 0000319036 00000 n 0000319080 00000 n 0000319124 00000 n 0000319168 00000 n 0000319212 00000 n 0000319255 00000 n 0000319298 00000 n 0000319341 00000 n 0000319384 00000 n 0000319427 00000 n 0000319470 00000 n 0000319513 00000 n 0000319556 00000 n 0000319599 00000 n 0000319642 00000 n 0000322592 00000 n 0000322635 00000 n 0000322679 00000 n 0000322723 00000 n 0000322767 00000 n 0000322810 00000 n 0000322854 00000 n 0000322898 00000 n 0000322942 00000 n 0000322985 00000 n 0000323029 00000 n 0000323073 00000 n 0000323117 00000 n 0000323160 00000 n 0000323204 00000 n 0000323248 00000 n 0000323292 00000 n 0000323335 00000 n 0000323378 00000 n 0000323421 00000 n 0000323465 00000 n 0000323508 00000 n 0000323551 00000 n 0000323594 00000 n 0000323637 00000 n 0000323680 00000 n 0000323723 00000 n 0000323766 00000 n 0000323809 00000 n 0000323852 00000 n 0000323895 00000 n 0000323938 00000 n 0000323981 00000 n 0000324024 00000 n 0000324067 00000 n 0000324110 00000 n 0000324153 00000 n 0000324197 00000 n 0000324241 00000 n 0000324284 00000 n 0000324328 00000 n 0000324371 00000 n 0000324414 00000 n 0000324457 00000 n 0000324500 00000 n 0000324543 00000 n 0000324586 00000 n 0000324629 00000 n 0000324672 00000 n 0000324715 00000 n 0000324759 00000 n 0000324803 00000 n 0000324847 00000 n 0000324891 00000 n 0000324934 00000 n 0000324977 00000 n 0000325020 00000 n 0000325064 00000 n 0000325107 00000 n 0000325150 00000 n 0000325193 00000 n 0000325236 00000 n 0000325279 00000 n 0000325322 00000 n 0000325365 00000 n 0000325408 00000 n 0000325452 00000 n 0000325496 00000 n 0000325540 00000 n 0000325583 00000 n 0000325626 00000 n 0000325670 00000 n 0000325714 00000 n 0000325758 00000 n 0000325802 00000 n 0000325846 00000 n 0000325890 00000 n 0000325934 00000 n 0000325977 00000 n 0000326020 00000 n 0000326063 00000 n 0000326106 00000 n 0000326149 00000 n 0000326192 00000 n 0000326235 00000 n 0000326278 00000 n 0000326321 00000 n 0000326365 00000 n 0000326409 00000 n 0000326453 00000 n 0000326497 00000 n 0000326541 00000 n 0000326585 00000 n 0000326629 00000 n 0000326673 00000 n 0000326717 00000 n 0000326761 00000 n 0000326805 00000 n 0000326849 00000 n 0000326893 00000 n 0000326937 00000 n 0000326981 00000 n 0000327025 00000 n 0000327069 00000 n 0000327113 00000 n 0000327157 00000 n 0000327201 00000 n 0000327245 00000 n 0000327289 00000 n 0000327333 00000 n 0000327377 00000 n 0000327421 00000 n 0000327465 00000 n 0000327509 00000 n 0000327553 00000 n 0000327597 00000 n 0000327641 00000 n 0000327685 00000 n 0000327729 00000 n 0000327773 00000 n 0000327817 00000 n 0000327861 00000 n 0000327905 00000 n 0000327948 00000 n 0000327992 00000 n 0000328036 00000 n 0000328079 00000 n 0000328122 00000 n 0000328165 00000 n 0000328208 00000 n 0000328251 00000 n 0000328294 00000 n 0000328337 00000 n 0000328380 00000 n 0000328423 00000 n 0000328466 00000 n 0000328509 00000 n 0000328552 00000 n 0000328595 00000 n 0000328638 00000 n 0000328681 00000 n 0000328724 00000 n 0000328768 00000 n 0000328812 00000 n 0000328855 00000 n 0000328898 00000 n 0000328941 00000 n 0000328984 00000 n 0000329027 00000 n 0000329071 00000 n 0000329115 00000 n 0000329159 00000 n 0000329203 00000 n 0000329246 00000 n 0000329289 00000 n 0000329332 00000 n 0000329375 00000 n 0000329418 00000 n 0000329462 00000 n 0000329506 00000 n 0000329550 00000 n 0000329593 00000 n 0000329637 00000 n 0000329680 00000 n 0000329723 00000 n 0000329766 00000 n 0000329809 00000 n 0000329852 00000 n 0000329895 00000 n 0000329938 00000 n 0000329981 00000 n 0000330024 00000 n 0000330067 00000 n 0000330110 00000 n 0000330153 00000 n 0000330196 00000 n 0000330239 00000 n 0000330282 00000 n 0000330325 00000 n 0000330368 00000 n 0000330412 00000 n 0000330456 00000 n 0000330500 00000 n 0000330544 00000 n 0000330588 00000 n 0000330632 00000 n 0000330676 00000 n 0000330720 00000 n 0000330764 00000 n 0000330808 00000 n 0000330852 00000 n 0000330896 00000 n 0000330940 00000 n 0000330984 00000 n 0000331028 00000 n 0000331072 00000 n 0000331116 00000 n 0000331160 00000 n 0000331204 00000 n 0000331248 00000 n 0000331292 00000 n 0000331336 00000 n 0000331380 00000 n 0000331424 00000 n 0000331468 00000 n 0000331512 00000 n 0000331556 00000 n 0000331600 00000 n 0000331644 00000 n 0000331688 00000 n 0000331732 00000 n 0000331776 00000 n 0000331820 00000 n 0000331864 00000 n 0000331908 00000 n 0000331952 00000 n 0000331996 00000 n 0000332040 00000 n 0000332084 00000 n 0000332128 00000 n 0000332172 00000 n 0000332216 00000 n 0000332259 00000 n 0000332302 00000 n 0000332345 00000 n 0000332388 00000 n 0000332431 00000 n 0000332475 00000 n 0000332519 00000 n 0000332563 00000 n 0000332607 00000 n 0000332650 00000 n 0000332694 00000 n 0000332738 00000 n 0000332782 00000 n 0000332825 00000 n 0000332868 00000 n 0000332911 00000 n 0000332954 00000 n 0000332998 00000 n 0000333042 00000 n 0000333086 00000 n 0000333130 00000 n 0000333173 00000 n 0000333217 00000 n 0000333261 00000 n 0000333305 00000 n 0000333349 00000 n 0000333392 00000 n 0000333436 00000 n 0000333480 00000 n 0000333524 00000 n 0000333568 00000 n 0000333612 00000 n 0000333656 00000 n 0000333700 00000 n 0000333744 00000 n 0000333788 00000 n 0000333832 00000 n 0000333876 00000 n 0000333920 00000 n 0000333964 00000 n 0000334008 00000 n 0000334052 00000 n 0000334096 00000 n 0000334140 00000 n 0000334184 00000 n 0000334228 00000 n 0000334272 00000 n 0000334316 00000 n 0000334360 00000 n 0000334404 00000 n 0000334448 00000 n 0000334492 00000 n 0000334536 00000 n 0000334580 00000 n 0000334623 00000 n 0000334666 00000 n 0000334709 00000 n 0000334752 00000 n 0000334795 00000 n 0000334839 00000 n 0000334883 00000 n 0000334926 00000 n 0000338006 00000 n 0000338049 00000 n 0000338093 00000 n 0000338137 00000 n 0000338180 00000 n 0000338223 00000 n 0000338267 00000 n 0000338311 00000 n 0000338354 00000 n 0000338397 00000 n 0000338440 00000 n 0000338483 00000 n 0000338527 00000 n 0000338571 00000 n 0000338615 00000 n 0000338659 00000 n 0000338703 00000 n 0000338747 00000 n 0000338791 00000 n 0000338835 00000 n 0000338879 00000 n 0000338923 00000 n 0000338967 00000 n 0000339011 00000 n 0000339055 00000 n 0000339099 00000 n 0000339143 00000 n 0000339187 00000 n 0000339231 00000 n 0000339275 00000 n 0000339319 00000 n 0000339362 00000 n 0000339405 00000 n 0000339448 00000 n 0000339491 00000 n 0000339534 00000 n 0000339577 00000 n 0000339620 00000 n 0000339663 00000 n 0000339706 00000 n 0000339749 00000 n 0000339792 00000 n 0000339835 00000 n 0000339878 00000 n 0000339921 00000 n 0000339964 00000 n 0000340007 00000 n 0000340050 00000 n 0000340093 00000 n 0000340136 00000 n 0000340179 00000 n 0000340223 00000 n 0000340267 00000 n 0000340311 00000 n 0000340355 00000 n 0000340399 00000 n 0000340443 00000 n 0000340487 00000 n 0000340531 00000 n 0000340575 00000 n 0000340619 00000 n 0000340663 00000 n 0000340707 00000 n 0000340751 00000 n 0000340795 00000 n 0000340839 00000 n 0000340883 00000 n 0000340927 00000 n 0000340971 00000 n 0000341015 00000 n 0000341059 00000 n 0000341103 00000 n 0000341147 00000 n 0000341191 00000 n 0000341235 00000 n 0000341279 00000 n 0000341322 00000 n 0000341366 00000 n 0000341409 00000 n 0000341453 00000 n 0000341496 00000 n 0000341539 00000 n 0000341582 00000 n 0000341625 00000 n 0000341668 00000 n 0000341711 00000 n 0000341754 00000 n 0000341797 00000 n 0000341841 00000 n 0000341885 00000 n 0000341929 00000 n 0000341973 00000 n 0000342017 00000 n 0000342060 00000 n 0000342103 00000 n 0000342146 00000 n 0000342189 00000 n 0000342232 00000 n 0000342275 00000 n 0000342318 00000 n 0000342362 00000 n 0000342405 00000 n 0000342448 00000 n 0000342492 00000 n 0000342536 00000 n 0000342579 00000 n 0000342623 00000 n 0000342667 00000 n 0000342711 00000 n 0000342755 00000 n 0000342799 00000 n 0000342843 00000 n 0000342887 00000 n 0000342931 00000 n 0000342975 00000 n 0000343019 00000 n 0000343063 00000 n 0000343107 00000 n 0000343151 00000 n 0000343194 00000 n 0000343237 00000 n 0000343280 00000 n 0000343323 00000 n 0000343366 00000 n 0000343409 00000 n 0000343452 00000 n 0000343495 00000 n 0000343538 00000 n 0000343581 00000 n 0000343624 00000 n 0000343667 00000 n 0000343711 00000 n 0000343755 00000 n 0000343799 00000 n 0000343843 00000 n 0000343887 00000 n 0000343931 00000 n 0000343974 00000 n 0000344017 00000 n 0000344060 00000 n 0000344103 00000 n 0000344146 00000 n 0000344189 00000 n 0000344232 00000 n 0000344275 00000 n 0000344319 00000 n 0000344362 00000 n 0000344405 00000 n 0000344449 00000 n 0000344493 00000 n 0000344537 00000 n 0000344581 00000 n 0000344625 00000 n 0000344669 00000 n 0000344713 00000 n 0000344757 00000 n 0000344801 00000 n 0000344845 00000 n 0000344889 00000 n 0000344932 00000 n 0000344975 00000 n 0000345018 00000 n 0000345062 00000 n 0000345105 00000 n 0000345149 00000 n 0000345193 00000 n 0000345237 00000 n 0000345281 00000 n 0000345325 00000 n 0000345369 00000 n 0000345413 00000 n 0000345457 00000 n 0000345501 00000 n 0000345545 00000 n 0000345589 00000 n 0000345632 00000 n 0000345676 00000 n 0000345720 00000 n 0000345764 00000 n 0000345808 00000 n 0000345852 00000 n 0000345896 00000 n 0000345940 00000 n 0000345984 00000 n 0000346028 00000 n 0000346071 00000 n 0000346115 00000 n 0000346159 00000 n 0000346203 00000 n 0000346247 00000 n 0000346291 00000 n 0000346335 00000 n 0000346379 00000 n 0000346423 00000 n 0000346466 00000 n 0000346509 00000 n 0000346553 00000 n 0000346597 00000 n 0000346641 00000 n 0000346684 00000 n 0000346727 00000 n 0000346770 00000 n 0000346813 00000 n 0000346856 00000 n 0000346899 00000 n 0000346942 00000 n 0000346985 00000 n 0000347028 00000 n 0000347071 00000 n 0000347114 00000 n 0000347157 00000 n 0000347200 00000 n 0000347243 00000 n 0000347286 00000 n 0000347329 00000 n 0000347372 00000 n 0000347415 00000 n 0000347458 00000 n 0000347501 00000 n 0000347544 00000 n 0000347587 00000 n 0000347631 00000 n 0000347674 00000 n 0000347718 00000 n 0000347762 00000 n 0000347806 00000 n 0000347850 00000 n 0000347893 00000 n 0000347937 00000 n 0000347981 00000 n 0000348025 00000 n 0000348069 00000 n 0000348113 00000 n 0000348157 00000 n 0000348201 00000 n 0000348245 00000 n 0000348289 00000 n 0000348333 00000 n 0000348377 00000 n 0000348421 00000 n 0000348465 00000 n 0000348509 00000 n 0000348553 00000 n 0000348597 00000 n 0000348641 00000 n 0000348685 00000 n 0000348729 00000 n 0000348773 00000 n 0000348816 00000 n 0000348860 00000 n 0000348903 00000 n 0000348946 00000 n 0000348990 00000 n 0000349033 00000 n 0000349076 00000 n 0000349120 00000 n 0000349164 00000 n 0000349207 00000 n 0000349251 00000 n 0000349295 00000 n 0000349339 00000 n 0000349383 00000 n 0000349427 00000 n 0000349471 00000 n 0000349515 00000 n 0000349559 00000 n 0000349603 00000 n 0000349647 00000 n 0000349691 00000 n 0000349735 00000 n 0000349779 00000 n 0000349823 00000 n 0000349867 00000 n 0000349910 00000 n 0000349953 00000 n 0000349996 00000 n 0000350039 00000 n 0000350082 00000 n 0000350126 00000 n 0000350170 00000 n 0000350213 00000 n 0000350256 00000 n 0000350299 00000 n 0000350342 00000 n 0000353422 00000 n 0000353465 00000 n 0000353509 00000 n 0000353553 00000 n 0000353597 00000 n 0000353641 00000 n 0000353685 00000 n 0000353729 00000 n 0000353773 00000 n 0000353817 00000 n 0000353861 00000 n 0000353905 00000 n 0000353949 00000 n 0000353993 00000 n 0000354037 00000 n 0000354081 00000 n 0000354125 00000 n 0000354169 00000 n 0000354213 00000 n 0000354257 00000 n 0000354301 00000 n 0000354345 00000 n 0000354389 00000 n 0000354433 00000 n 0000354477 00000 n 0000354521 00000 n 0000354565 00000 n 0000354609 00000 n 0000354653 00000 n 0000354697 00000 n 0000354741 00000 n 0000354785 00000 n 0000354829 00000 n 0000354873 00000 n 0000354917 00000 n 0000354961 00000 n 0000355005 00000 n 0000355049 00000 n 0000355093 00000 n 0000355137 00000 n 0000355181 00000 n 0000355225 00000 n 0000355269 00000 n 0000355313 00000 n 0000355357 00000 n 0000355401 00000 n 0000355445 00000 n 0000355489 00000 n 0000355533 00000 n 0000355577 00000 n 0000355621 00000 n 0000355665 00000 n 0000355709 00000 n 0000355753 00000 n 0000355797 00000 n 0000355841 00000 n 0000355885 00000 n 0000355929 00000 n 0000355973 00000 n 0000356017 00000 n 0000356061 00000 n 0000356105 00000 n 0000356149 00000 n 0000356193 00000 n 0000356237 00000 n 0000356281 00000 n 0000356325 00000 n 0000356369 00000 n 0000356413 00000 n 0000356457 00000 n 0000356501 00000 n 0000356545 00000 n 0000356589 00000 n 0000356633 00000 n 0000356677 00000 n 0000356721 00000 n 0000356765 00000 n 0000356809 00000 n 0000356853 00000 n 0000356897 00000 n 0000356941 00000 n 0000356985 00000 n 0000357029 00000 n 0000357073 00000 n 0000357117 00000 n 0000357161 00000 n 0000357205 00000 n 0000357249 00000 n 0000357293 00000 n 0000357337 00000 n 0000357381 00000 n 0000357425 00000 n 0000357469 00000 n 0000357513 00000 n 0000357557 00000 n 0000357601 00000 n 0000357645 00000 n 0000357689 00000 n 0000357733 00000 n 0000357777 00000 n 0000357821 00000 n 0000357865 00000 n 0000357909 00000 n 0000357953 00000 n 0000357997 00000 n 0000358041 00000 n 0000358085 00000 n 0000358129 00000 n 0000358173 00000 n 0000358217 00000 n 0000358261 00000 n 0000358305 00000 n 0000358349 00000 n 0000358393 00000 n 0000358437 00000 n 0000358481 00000 n 0000358525 00000 n 0000358569 00000 n 0000358613 00000 n 0000358657 00000 n 0000358701 00000 n 0000358745 00000 n 0000358789 00000 n 0000358833 00000 n 0000358877 00000 n 0000358921 00000 n 0000358965 00000 n 0000359009 00000 n 0000359053 00000 n 0000359097 00000 n 0000359141 00000 n 0000359185 00000 n 0000359229 00000 n 0000359273 00000 n 0000359317 00000 n 0000359361 00000 n 0000359405 00000 n 0000359449 00000 n 0000359493 00000 n 0000359537 00000 n 0000359581 00000 n 0000359625 00000 n 0000359669 00000 n 0000359713 00000 n 0000359757 00000 n 0000359801 00000 n 0000359845 00000 n 0000359889 00000 n 0000359933 00000 n 0000359977 00000 n 0000360021 00000 n 0000360065 00000 n 0000360109 00000 n 0000360153 00000 n 0000360197 00000 n 0000360241 00000 n 0000360285 00000 n 0000360329 00000 n 0000360373 00000 n 0000360417 00000 n 0000360461 00000 n 0000360505 00000 n 0000360549 00000 n 0000360593 00000 n 0000360637 00000 n 0000360681 00000 n 0000360725 00000 n 0000360769 00000 n 0000360813 00000 n 0000360857 00000 n 0000360901 00000 n 0000360945 00000 n 0000360989 00000 n 0000361033 00000 n 0000361077 00000 n 0000361121 00000 n 0000361165 00000 n 0000361209 00000 n 0000361253 00000 n 0000361297 00000 n 0000361341 00000 n 0000361385 00000 n 0000361429 00000 n 0000361473 00000 n 0000361517 00000 n 0000361561 00000 n 0000361605 00000 n 0000361649 00000 n 0000361693 00000 n 0000361737 00000 n 0000361781 00000 n 0000361825 00000 n 0000361869 00000 n 0000361913 00000 n 0000361957 00000 n 0000362001 00000 n 0000362045 00000 n 0000362089 00000 n 0000362133 00000 n 0000362177 00000 n 0000362221 00000 n 0000362265 00000 n 0000362309 00000 n 0000362353 00000 n 0000362397 00000 n 0000362441 00000 n 0000362484 00000 n 0000362527 00000 n 0000362570 00000 n 0000362613 00000 n 0000362657 00000 n 0000362701 00000 n 0000362745 00000 n 0000362788 00000 n 0000362831 00000 n 0000362875 00000 n 0000362918 00000 n 0000362961 00000 n 0000363004 00000 n 0000363047 00000 n 0000363090 00000 n 0000363133 00000 n 0000363177 00000 n 0000363221 00000 n 0000363265 00000 n 0000363309 00000 n 0000363353 00000 n 0000363397 00000 n 0000363440 00000 n 0000363483 00000 n 0000363526 00000 n 0000363570 00000 n 0000363613 00000 n 0000363656 00000 n 0000363699 00000 n 0000363742 00000 n 0000363785 00000 n 0000363828 00000 n 0000363871 00000 n 0000363914 00000 n 0000363958 00000 n 0000364002 00000 n 0000364045 00000 n 0000364088 00000 n 0000364131 00000 n 0000364174 00000 n 0000364218 00000 n 0000364262 00000 n 0000364305 00000 n 0000364348 00000 n 0000364392 00000 n 0000364435 00000 n 0000364479 00000 n 0000364523 00000 n 0000364567 00000 n 0000364610 00000 n 0000364653 00000 n 0000364696 00000 n 0000364739 00000 n 0000364783 00000 n 0000364826 00000 n 0000364870 00000 n 0000364913 00000 n 0000364957 00000 n 0000365000 00000 n 0000365043 00000 n 0000365086 00000 n 0000365129 00000 n 0000365172 00000 n 0000365215 00000 n 0000365258 00000 n 0000365302 00000 n 0000365346 00000 n 0000365390 00000 n 0000365433 00000 n 0000365477 00000 n 0000365521 00000 n 0000365564 00000 n 0000365608 00000 n 0000365651 00000 n 0000365694 00000 n 0000365737 00000 n 0000365781 00000 n 0000365825 00000 n 0000365868 00000 n 0000365911 00000 n 0000365954 00000 n 0000365997 00000 n 0000366040 00000 n 0000366083 00000 n 0000369223 00000 n 0000369266 00000 n 0000369309 00000 n 0000369352 00000 n 0000369395 00000 n 0000369438 00000 n 0000369481 00000 n 0000369524 00000 n 0000369567 00000 n 0000369610 00000 n 0000369653 00000 n 0000369696 00000 n 0000369739 00000 n 0000369782 00000 n 0000369825 00000 n 0000369868 00000 n 0000369911 00000 n 0000369954 00000 n 0000369997 00000 n 0000370040 00000 n 0000370083 00000 n 0000370126 00000 n 0000370169 00000 n 0000370212 00000 n 0000370256 00000 n 0000370299 00000 n 0000370342 00000 n 0000370385 00000 n 0000370428 00000 n 0000370471 00000 n 0000370514 00000 n 0000370557 00000 n 0000370600 00000 n 0000370643 00000 n 0000370686 00000 n 0000370729 00000 n 0000370772 00000 n 0000370815 00000 n 0000370858 00000 n 0000370901 00000 n 0000370944 00000 n 0000370987 00000 n 0000371030 00000 n 0000371073 00000 n 0000371116 00000 n 0000371159 00000 n 0000371203 00000 n 0000371246 00000 n 0000371289 00000 n 0000371332 00000 n 0000371375 00000 n 0000371418 00000 n 0000371462 00000 n 0000371506 00000 n 0000371549 00000 n 0000371592 00000 n 0000371635 00000 n 0000371679 00000 n 0000371723 00000 n 0000371767 00000 n 0000371811 00000 n 0000371855 00000 n 0000371899 00000 n 0000371942 00000 n 0000371986 00000 n 0000372030 00000 n 0000372074 00000 n 0000372118 00000 n 0000372161 00000 n 0000372205 00000 n 0000372248 00000 n 0000372291 00000 n 0000372334 00000 n 0000372378 00000 n 0000372422 00000 n 0000372465 00000 n 0000372509 00000 n 0000372553 00000 n 0000372597 00000 n 0000372641 00000 n 0000372685 00000 n 0000372728 00000 n 0000372771 00000 n 0000372815 00000 n 0000372858 00000 n 0000372901 00000 n 0000372944 00000 n 0000372987 00000 n 0000373030 00000 n 0000373073 00000 n 0000373116 00000 n 0000373159 00000 n 0000373202 00000 n 0000373245 00000 n 0000373288 00000 n 0000373332 00000 n 0000373376 00000 n 0000373420 00000 n 0000373464 00000 n 0000373508 00000 n 0000373552 00000 n 0000373596 00000 n 0000373640 00000 n 0000373683 00000 n 0000373726 00000 n 0000373769 00000 n 0000373812 00000 n 0000373855 00000 n 0000373898 00000 n 0000373941 00000 n 0000373985 00000 n 0000374029 00000 n 0000374073 00000 n 0000374117 00000 n 0000374161 00000 n 0000374205 00000 n 0000374249 00000 n 0000374293 00000 n 0000374337 00000 n 0000374381 00000 n 0000374425 00000 n 0000374469 00000 n 0000374513 00000 n 0000374557 00000 n 0000374600 00000 n 0000374644 00000 n 0000374687 00000 n 0000374730 00000 n 0000374774 00000 n 0000374818 00000 n 0000374862 00000 n 0000374906 00000 n 0000374949 00000 n 0000374992 00000 n 0000375036 00000 n 0000375080 00000 n 0000375124 00000 n 0000375168 00000 n 0000375212 00000 n 0000375256 00000 n 0000375300 00000 n 0000375344 00000 n 0000375388 00000 n 0000375432 00000 n 0000375476 00000 n 0000375520 00000 n 0000375564 00000 n 0000375608 00000 n 0000375651 00000 n 0000375695 00000 n 0000375738 00000 n 0000375781 00000 n 0000375824 00000 n 0000375867 00000 n 0000375911 00000 n 0000375954 00000 n 0000375997 00000 n 0000376040 00000 n 0000376084 00000 n 0000376128 00000 n 0000376172 00000 n 0000376216 00000 n 0000376260 00000 n 0000376304 00000 n 0000376348 00000 n 0000376392 00000 n 0000376435 00000 n 0000376479 00000 n 0000376523 00000 n 0000376567 00000 n 0000376611 00000 n 0000376655 00000 n 0000376699 00000 n 0000376743 00000 n 0000376787 00000 n 0000376831 00000 n 0000376875 00000 n 0000376919 00000 n 0000376963 00000 n 0000377007 00000 n 0000377051 00000 n 0000377095 00000 n 0000377139 00000 n 0000377183 00000 n 0000377227 00000 n 0000377271 00000 n 0000377315 00000 n 0000377358 00000 n 0000377401 00000 n 0000377444 00000 n 0000377488 00000 n 0000377532 00000 n 0000377575 00000 n 0000377618 00000 n 0000377662 00000 n 0000377706 00000 n 0000377750 00000 n 0000377793 00000 n 0000377836 00000 n 0000377879 00000 n 0000377922 00000 n 0000377965 00000 n 0000378008 00000 n 0000378051 00000 n 0000378094 00000 n 0000378137 00000 n 0000378180 00000 n 0000378223 00000 n 0000378266 00000 n 0000378310 00000 n 0000378354 00000 n 0000378397 00000 n 0000378440 00000 n 0000378483 00000 n 0000378526 00000 n 0000378569 00000 n 0000378612 00000 n 0000378655 00000 n 0000378698 00000 n 0000378741 00000 n 0000378784 00000 n 0000378827 00000 n 0000378870 00000 n 0000378913 00000 n 0000378956 00000 n 0000378999 00000 n 0000379042 00000 n 0000379085 00000 n 0000379128 00000 n 0000379172 00000 n 0000379216 00000 n 0000379260 00000 n 0000379304 00000 n 0000379348 00000 n 0000379392 00000 n 0000379436 00000 n 0000379480 00000 n 0000379524 00000 n 0000379568 00000 n 0000379611 00000 n 0000379654 00000 n 0000379697 00000 n 0000379740 00000 n 0000379784 00000 n 0000379828 00000 n 0000379872 00000 n 0000379916 00000 n 0000379960 00000 n 0000380004 00000 n 0000380048 00000 n 0000380092 00000 n 0000380135 00000 n 0000380178 00000 n 0000380221 00000 n 0000380264 00000 n 0000380307 00000 n 0000380350 00000 n 0000380393 00000 n 0000380436 00000 n 0000380479 00000 n 0000380523 00000 n 0000380567 00000 n 0000380611 00000 n 0000380655 00000 n 0000380699 00000 n 0000380743 00000 n 0000380787 00000 n 0000380831 00000 n 0000380875 00000 n 0000380919 00000 n 0000380962 00000 n 0000381005 00000 n 0000381048 00000 n 0000381091 00000 n 0000381134 00000 n 0000381178 00000 n 0000381222 00000 n 0000381266 00000 n 0000381310 00000 n 0000381354 00000 n 0000381398 00000 n 0000381442 00000 n 0000381485 00000 n 0000381528 00000 n 0000381572 00000 n 0000381616 00000 n 0000381660 00000 n 0000381704 00000 n 0000381747 00000 n 0000381790 00000 n 0000381834 00000 n 0000381878 00000 n 0000381922 00000 n 0000381965 00000 n 0000382009 00000 n 0000382053 00000 n 0000382097 00000 n 0000382140 00000 n 0000382183 00000 n 0000382227 00000 n 0000382271 00000 n 0000382314 00000 n 0000382358 00000 n 0000382402 00000 n 0000382446 00000 n 0000382490 00000 n 0000382534 00000 n 0000382578 00000 n 0000382622 00000 n 0000382666 00000 n 0000382710 00000 n 0000382753 00000 n 0000382796 00000 n 0000382840 00000 n 0000382884 00000 n 0000382927 00000 n 0000382971 00000 n 0000383015 00000 n 0000383059 00000 n 0000383102 00000 n 0000383145 00000 n 0000383189 00000 n 0000383233 00000 n 0000383276 00000 n 0000383319 00000 n 0000383362 00000 n 0000383405 00000 n 0000383449 00000 n 0000383493 00000 n 0000383537 00000 n 0000383580 00000 n 0000383623 00000 n 0000383667 00000 n 0000383711 00000 n 0000383754 00000 n 0000383798 00000 n 0000383841 00000 n 0000387451 00000 n 0000387495 00000 n 0000387539 00000 n 0000387583 00000 n 0000387627 00000 n 0000387670 00000 n 0000387713 00000 n 0000387756 00000 n 0000387799 00000 n 0000387842 00000 n 0000387885 00000 n 0000387929 00000 n 0000387973 00000 n 0000388017 00000 n 0000388061 00000 n 0000388104 00000 n 0000388147 00000 n 0000388190 00000 n 0000388233 00000 n 0000388276 00000 n 0000388319 00000 n 0000388362 00000 n 0000388405 00000 n 0000388448 00000 n 0000388491 00000 n 0000388534 00000 n 0000388577 00000 n 0000388620 00000 n 0000388663 00000 n 0000388706 00000 n 0000388749 00000 n 0000388792 00000 n 0000388835 00000 n 0000388878 00000 n 0000388921 00000 n 0000388964 00000 n 0000389007 00000 n 0000389050 00000 n 0000389093 00000 n 0000389137 00000 n 0000389180 00000 n 0000389223 00000 n 0000389266 00000 n 0000389309 00000 n 0000389352 00000 n 0000389396 00000 n 0000389439 00000 n 0000389482 00000 n 0000389526 00000 n 0000389570 00000 n 0000389614 00000 n 0000389657 00000 n 0000389700 00000 n 0000389743 00000 n 0000389786 00000 n 0000389829 00000 n 0000389872 00000 n 0000389915 00000 n 0000389958 00000 n 0000390001 00000 n 0000390044 00000 n 0000390087 00000 n 0000390130 00000 n 0000390173 00000 n 0000390216 00000 n 0000390260 00000 n 0000390303 00000 n 0000390346 00000 n 0000390389 00000 n 0000390432 00000 n 0000390475 00000 n 0000390518 00000 n 0000390561 00000 n 0000390604 00000 n 0000390647 00000 n 0000390691 00000 n 0000390734 00000 n 0000390777 00000 n 0000390821 00000 n 0000390864 00000 n 0000390907 00000 n 0000390950 00000 n 0000390993 00000 n 0000391036 00000 n 0000391079 00000 n 0000391123 00000 n 0000391167 00000 n 0000391211 00000 n 0000391255 00000 n 0000391299 00000 n 0000391343 00000 n 0000391387 00000 n 0000391431 00000 n 0000391475 00000 n 0000391519 00000 n 0000391563 00000 n 0000391607 00000 n 0000391651 00000 n 0000391695 00000 n 0000391739 00000 n 0000391783 00000 n 0000391827 00000 n 0000391871 00000 n 0000391915 00000 n 0000391959 00000 n 0000392003 00000 n 0000392047 00000 n 0000392091 00000 n 0000392135 00000 n 0000392179 00000 n 0000392222 00000 n 0000392266 00000 n 0000392310 00000 n 0000392353 00000 n 0000392396 00000 n 0000392439 00000 n 0000392482 00000 n 0000392525 00000 n 0000392568 00000 n 0000392612 00000 n 0000392655 00000 n 0000392699 00000 n 0000392743 00000 n 0000392787 00000 n 0000392831 00000 n 0000392875 00000 n 0000392919 00000 n 0000392963 00000 n 0000393007 00000 n 0000393051 00000 n 0000393095 00000 n 0000393139 00000 n 0000393182 00000 n 0000393226 00000 n 0000393270 00000 n 0000393314 00000 n 0000393358 00000 n 0000393402 00000 n 0000393446 00000 n 0000393490 00000 n 0000393534 00000 n 0000393578 00000 n 0000393622 00000 n 0000393666 00000 n 0000393709 00000 n 0000393752 00000 n 0000393795 00000 n 0000393838 00000 n 0000393881 00000 n 0000393924 00000 n 0000393967 00000 n 0000394010 00000 n 0000394053 00000 n 0000394096 00000 n 0000394139 00000 n 0000394182 00000 n 0000394225 00000 n 0000394268 00000 n 0000394311 00000 n 0000394354 00000 n 0000394397 00000 n 0000394440 00000 n 0000394483 00000 n 0000394526 00000 n 0000394569 00000 n 0000394612 00000 n 0000394655 00000 n 0000394698 00000 n 0000394741 00000 n 0000394784 00000 n 0000394827 00000 n 0000394870 00000 n 0000394913 00000 n 0000394956 00000 n 0000394999 00000 n 0000395042 00000 n 0000395086 00000 n 0000395130 00000 n 0000395174 00000 n 0000395218 00000 n 0000395262 00000 n 0000395306 00000 n 0000395350 00000 n 0000395394 00000 n 0000395438 00000 n 0000395482 00000 n 0000395526 00000 n 0000395570 00000 n 0000395614 00000 n 0000395658 00000 n 0000395702 00000 n 0000395746 00000 n 0000395790 00000 n 0000395834 00000 n 0000395878 00000 n 0000395922 00000 n 0000395966 00000 n 0000396010 00000 n 0000396054 00000 n 0000396098 00000 n 0000396142 00000 n 0000396186 00000 n 0000396230 00000 n 0000396274 00000 n 0000396318 00000 n 0000396362 00000 n 0000396406 00000 n 0000396450 00000 n 0000396494 00000 n 0000396538 00000 n 0000396582 00000 n 0000396625 00000 n 0000396668 00000 n 0000396711 00000 n 0000396754 00000 n 0000396797 00000 n 0000396841 00000 n 0000396885 00000 n 0000396928 00000 n 0000396972 00000 n 0000397016 00000 n 0000397059 00000 n 0000397102 00000 n 0000397146 00000 n 0000397189 00000 n 0000397233 00000 n 0000397277 00000 n 0000397321 00000 n 0000397365 00000 n 0000397409 00000 n 0000397453 00000 n 0000397497 00000 n 0000397541 00000 n 0000397585 00000 n 0000397628 00000 n 0000397672 00000 n 0000397716 00000 n 0000397760 00000 n 0000397803 00000 n 0000397847 00000 n 0000397890 00000 n 0000397933 00000 n 0000397976 00000 n 0000398019 00000 n 0000398062 00000 n 0000398105 00000 n 0000398148 00000 n 0000398191 00000 n 0000398235 00000 n 0000398278 00000 n 0000398321 00000 n 0000398364 00000 n 0000398407 00000 n 0000398450 00000 n 0000398493 00000 n 0000398536 00000 n 0000398579 00000 n 0000398622 00000 n 0000398665 00000 n 0000398708 00000 n 0000398751 00000 n 0000398794 00000 n 0000398837 00000 n 0000398881 00000 n 0000398925 00000 n 0000398969 00000 n 0000399012 00000 n 0000399055 00000 n 0000399098 00000 n 0000399141 00000 n 0000399184 00000 n 0000399227 00000 n 0000399270 00000 n 0000399313 00000 n 0000399356 00000 n 0000399399 00000 n 0000399442 00000 n 0000399486 00000 n 0000399530 00000 n 0000399573 00000 n 0000399617 00000 n 0000399661 00000 n 0000399704 00000 n 0000399747 00000 n 0000399790 00000 n 0000399834 00000 n 0000399878 00000 n 0000399922 00000 n 0000399965 00000 n 0000400009 00000 n 0000400053 00000 n 0000400097 00000 n 0000400140 00000 n 0000400183 00000 n 0000400226 00000 n 0000400269 00000 n 0000400312 00000 n 0000400355 00000 n 0000400398 00000 n 0000400441 00000 n 0000400484 00000 n 0000400527 00000 n 0000400570 00000 n 0000400613 00000 n 0000400656 00000 n 0000400699 00000 n 0000400742 00000 n 0000400785 00000 n 0000400828 00000 n 0000400871 00000 n 0000400914 00000 n 0000400957 00000 n 0000401000 00000 n 0000401043 00000 n 0000401086 00000 n 0000401129 00000 n 0000401172 00000 n 0000401215 00000 n 0000401258 00000 n 0000401301 00000 n 0000401344 00000 n 0000401387 00000 n 0000401430 00000 n 0000401473 00000 n 0000401516 00000 n 0000401559 00000 n 0000401602 00000 n 0000401645 00000 n 0000401688 00000 n 0000405218 00000 n 0000405261 00000 n 0000405304 00000 n 0000405348 00000 n 0000405392 00000 n 0000405436 00000 n 0000405480 00000 n 0000405524 00000 n 0000405568 00000 n 0000405612 00000 n 0000405656 00000 n 0000405700 00000 n 0000405744 00000 n 0000405788 00000 n 0000405832 00000 n 0000405876 00000 n 0000405920 00000 n 0000405964 00000 n 0000406008 00000 n 0000406052 00000 n 0000406096 00000 n 0000406140 00000 n 0000406184 00000 n 0000406228 00000 n 0000406272 00000 n 0000406316 00000 n 0000406360 00000 n 0000406403 00000 n 0000406446 00000 n 0000406489 00000 n 0000406532 00000 n 0000406575 00000 n 0000406618 00000 n 0000406661 00000 n 0000406704 00000 n 0000406747 00000 n 0000406790 00000 n 0000406833 00000 n 0000406876 00000 n 0000406919 00000 n 0000406963 00000 n 0000407007 00000 n 0000407051 00000 n 0000407095 00000 n 0000407139 00000 n 0000407183 00000 n 0000407227 00000 n 0000407271 00000 n 0000407314 00000 n 0000407357 00000 n 0000407400 00000 n 0000407443 00000 n 0000407486 00000 n 0000407529 00000 n 0000407572 00000 n 0000407615 00000 n 0000407658 00000 n 0000407701 00000 n 0000407744 00000 n 0000407787 00000 n 0000407830 00000 n 0000407873 00000 n 0000407916 00000 n 0000407959 00000 n 0000408002 00000 n 0000408046 00000 n 0000408090 00000 n 0000408133 00000 n 0000408176 00000 n 0000408219 00000 n 0000408262 00000 n 0000408305 00000 n 0000408348 00000 n 0000408391 00000 n 0000408434 00000 n 0000408477 00000 n 0000408521 00000 n 0000408564 00000 n 0000408607 00000 n 0000408650 00000 n 0000408693 00000 n 0000408737 00000 n 0000408781 00000 n 0000408824 00000 n 0000408868 00000 n 0000408912 00000 n 0000408955 00000 n 0000408998 00000 n 0000409041 00000 n 0000409084 00000 n 0000409127 00000 n 0000409170 00000 n 0000409213 00000 n 0000409256 00000 n 0000409299 00000 n 0000409343 00000 n 0000409386 00000 n 0000409429 00000 n 0000409472 00000 n 0000409515 00000 n 0000409558 00000 n 0000409601 00000 n 0000409644 00000 n 0000409687 00000 n 0000409730 00000 n 0000409773 00000 n 0000409816 00000 n 0000409859 00000 n 0000409902 00000 n 0000409945 00000 n 0000409988 00000 n 0000410032 00000 n 0000410076 00000 n 0000410120 00000 n 0000410163 00000 n 0000410206 00000 n 0000410249 00000 n 0000410292 00000 n 0000410335 00000 n 0000410378 00000 n 0000410421 00000 n 0000410464 00000 n 0000410507 00000 n 0000410550 00000 n 0000410593 00000 n 0000410636 00000 n 0000410679 00000 n 0000410722 00000 n 0000410765 00000 n 0000410808 00000 n 0000410851 00000 n 0000410894 00000 n 0000410937 00000 n 0000410980 00000 n 0000411023 00000 n 0000411066 00000 n 0000411109 00000 n 0000411153 00000 n 0000411197 00000 n 0000411241 00000 n 0000411285 00000 n 0000411329 00000 n 0000411373 00000 n 0000411417 00000 n 0000411461 00000 n 0000411505 00000 n 0000411549 00000 n 0000411593 00000 n 0000411637 00000 n 0000411680 00000 n 0000411723 00000 n 0000411767 00000 n 0000411811 00000 n 0000411855 00000 n 0000411899 00000 n 0000411943 00000 n 0000411986 00000 n 0000412029 00000 n 0000412072 00000 n 0000412115 00000 n 0000412158 00000 n 0000412202 00000 n 0000412246 00000 n 0000412290 00000 n 0000412333 00000 n 0000412376 00000 n 0000412419 00000 n 0000412463 00000 n 0000412506 00000 n 0000412550 00000 n 0000412594 00000 n 0000412638 00000 n 0000412682 00000 n 0000412725 00000 n 0000412768 00000 n 0000412811 00000 n 0000412855 00000 n 0000412898 00000 n 0000412941 00000 n 0000412984 00000 n 0000413027 00000 n 0000413070 00000 n 0000413113 00000 n 0000413157 00000 n 0000413201 00000 n 0000413245 00000 n 0000413288 00000 n 0000413331 00000 n 0000413374 00000 n 0000413417 00000 n 0000413461 00000 n 0000413504 00000 n 0000413547 00000 n 0000413590 00000 n 0000413633 00000 n 0000413676 00000 n 0000413720 00000 n 0000413764 00000 n 0000413807 00000 n 0000413850 00000 n 0000413893 00000 n 0000413936 00000 n 0000413980 00000 n 0000414023 00000 n 0000414066 00000 n 0000414109 00000 n 0000414152 00000 n 0000414195 00000 n 0000414238 00000 n 0000414281 00000 n 0000414324 00000 n 0000414367 00000 n 0000414411 00000 n 0000414455 00000 n 0000414499 00000 n 0000414543 00000 n 0000414586 00000 n 0000414629 00000 n 0000414672 00000 n 0000414715 00000 n 0000414758 00000 n 0000414801 00000 n 0000414844 00000 n 0000414887 00000 n 0000414930 00000 n 0000414973 00000 n 0000415016 00000 n 0000415059 00000 n 0000415103 00000 n 0000415147 00000 n 0000415191 00000 n 0000415235 00000 n 0000415279 00000 n 0000415323 00000 n 0000415367 00000 n 0000415411 00000 n 0000415455 00000 n 0000415499 00000 n 0000415543 00000 n 0000415587 00000 n 0000415631 00000 n 0000415675 00000 n 0000415719 00000 n 0000415763 00000 n 0000415807 00000 n 0000415851 00000 n 0000415894 00000 n 0000415937 00000 n 0000415980 00000 n 0000416023 00000 n 0000416066 00000 n 0000416109 00000 n 0000416152 00000 n 0000416196 00000 n 0000416240 00000 n 0000416284 00000 n 0000416327 00000 n 0000416370 00000 n 0000416413 00000 n 0000416456 00000 n 0000416499 00000 n 0000416542 00000 n 0000416586 00000 n 0000416630 00000 n 0000416674 00000 n 0000416718 00000 n 0000416762 00000 n 0000416806 00000 n 0000416850 00000 n 0000416894 00000 n 0000416938 00000 n 0000416982 00000 n 0000417026 00000 n 0000417070 00000 n 0000417113 00000 n 0000417156 00000 n 0000417199 00000 n 0000417243 00000 n 0000417287 00000 n 0000417330 00000 n 0000417373 00000 n 0000417416 00000 n 0000417459 00000 n 0000417503 00000 n 0000417547 00000 n 0000417591 00000 n 0000417635 00000 n 0000417679 00000 n 0000417723 00000 n 0000417767 00000 n 0000417811 00000 n 0000417855 00000 n 0000417898 00000 n 0000417942 00000 n 0000417986 00000 n 0000418030 00000 n 0000418074 00000 n 0000418118 00000 n 0000418162 00000 n 0000418206 00000 n 0000418250 00000 n 0000418294 00000 n 0000418338 00000 n 0000418382 00000 n 0000418426 00000 n 0000418470 00000 n 0000418514 00000 n 0000418558 00000 n 0000418602 00000 n 0000418646 00000 n 0000418690 00000 n 0000418734 00000 n 0000418778 00000 n 0000418822 00000 n 0000418866 00000 n 0000418910 00000 n 0000418953 00000 n 0000418996 00000 n 0000419040 00000 n 0000419083 00000 n 0000419127 00000 n 0000419171 00000 n 0000419215 00000 n 0000419259 00000 n 0000419303 00000 n 0000419347 00000 n 0000419391 00000 n 0000419434 00000 n 0000419477 00000 n 0000419520 00000 n 0000419563 00000 n 0000419606 00000 n 0000419650 00000 n 0000419694 00000 n 0000419738 00000 n 0000419781 00000 n 0000419824 00000 n 0000419867 00000 n 0000419910 00000 n 0000419953 00000 n 0000419996 00000 n 0000420039 00000 n 0000420082 00000 n 0000420125 00000 n 0000420169 00000 n 0000420213 00000 n 0000420257 00000 n 0000420300 00000 n 0000420343 00000 n 0000420386 00000 n 0000420429 00000 n 0000420472 00000 n 0000420515 00000 n 0000420559 00000 n 0000420603 00000 n 0000420647 00000 n 0000420691 00000 n 0000420735 00000 n 0000420779 00000 n 0000420822 00000 n 0000420865 00000 n 0000420908 00000 n 0000420951 00000 n 0000420994 00000 n 0000421037 00000 n 0000421080 00000 n 0000421124 00000 n 0000421168 00000 n 0000421212 00000 n 0000421256 00000 n 0000421300 00000 n 0000421344 00000 n 0000421388 00000 n 0000421432 00000 n 0000421476 00000 n 0000421519 00000 n 0000425519 00000 n 0000425562 00000 n 0000425605 00000 n 0000425648 00000 n 0000425691 00000 n 0000425734 00000 n 0000425778 00000 n 0000425821 00000 n 0000425864 00000 n 0000425907 00000 n 0000425951 00000 n 0000425995 00000 n 0000426038 00000 n 0000426081 00000 n 0000426125 00000 n 0000426168 00000 n 0000426212 00000 n 0000426256 00000 n 0000426299 00000 n 0000426342 00000 n 0000426386 00000 n 0000426430 00000 n 0000426473 00000 n 0000426516 00000 n 0000426560 00000 n 0000426603 00000 n 0000426646 00000 n 0000426689 00000 n 0000426732 00000 n 0000426775 00000 n 0000426818 00000 n 0000426861 00000 n 0000426904 00000 n 0000426947 00000 n 0000426990 00000 n 0000427033 00000 n 0000427076 00000 n 0000427120 00000 n 0000427164 00000 n 0000427208 00000 n 0000427252 00000 n 0000427296 00000 n 0000427340 00000 n 0000427384 00000 n 0000427428 00000 n 0000427472 00000 n 0000427516 00000 n 0000427560 00000 n 0000427604 00000 n 0000427648 00000 n 0000427692 00000 n 0000427736 00000 n 0000427780 00000 n 0000427823 00000 n 0000427867 00000 n 0000427911 00000 n 0000427954 00000 n 0000427998 00000 n 0000428042 00000 n 0000428086 00000 n 0000428129 00000 n 0000428172 00000 n 0000428215 00000 n 0000428258 00000 n 0000428301 00000 n 0000428344 00000 n 0000428387 00000 n 0000428430 00000 n 0000428473 00000 n 0000428517 00000 n 0000428561 00000 n 0000428605 00000 n 0000428649 00000 n 0000428692 00000 n 0000428735 00000 n 0000428778 00000 n 0000428821 00000 n 0000428864 00000 n 0000428907 00000 n 0000428950 00000 n 0000428993 00000 n 0000429036 00000 n 0000429079 00000 n 0000429122 00000 n 0000429165 00000 n 0000429208 00000 n 0000429251 00000 n 0000429294 00000 n 0000429337 00000 n 0000429380 00000 n 0000429423 00000 n 0000429466 00000 n 0000429509 00000 n 0000429553 00000 n 0000429596 00000 n 0000429639 00000 n 0000429682 00000 n 0000429725 00000 n 0000429768 00000 n 0000429811 00000 n 0000429854 00000 n 0000429897 00000 n 0000429941 00000 n 0000429985 00000 n 0000430029 00000 n 0000430073 00000 n 0000430117 00000 n 0000430160 00000 n 0000430203 00000 n 0000430246 00000 n 0000430289 00000 n 0000430332 00000 n 0000430375 00000 n 0000430418 00000 n 0000430461 00000 n 0000430504 00000 n 0000430547 00000 n 0000430590 00000 n 0000430634 00000 n 0000430677 00000 n 0000430720 00000 n 0000430763 00000 n 0000430806 00000 n 0000430849 00000 n 0000430892 00000 n 0000430935 00000 n 0000430978 00000 n 0000431021 00000 n 0000431064 00000 n 0000431107 00000 n 0000431150 00000 n 0000431193 00000 n 0000431236 00000 n 0000431280 00000 n 0000431324 00000 n 0000431368 00000 n 0000431412 00000 n 0000431456 00000 n 0000431500 00000 n 0000431544 00000 n 0000431588 00000 n 0000431632 00000 n 0000431676 00000 n 0000431720 00000 n 0000431764 00000 n 0000431808 00000 n 0000431851 00000 n 0000431894 00000 n 0000431937 00000 n 0000431980 00000 n 0000432023 00000 n 0000432066 00000 n 0000432109 00000 n 0000432152 00000 n 0000432195 00000 n 0000432239 00000 n 0000432282 00000 n 0000432325 00000 n 0000432368 00000 n 0000432411 00000 n 0000432454 00000 n 0000432497 00000 n 0000432540 00000 n 0000432583 00000 n 0000432626 00000 n 0000432669 00000 n 0000432712 00000 n 0000432755 00000 n 0000432798 00000 n 0000432841 00000 n 0000432884 00000 n 0000432927 00000 n 0000432970 00000 n 0000433013 00000 n 0000433056 00000 n 0000433100 00000 n 0000433144 00000 n 0000433188 00000 n 0000433231 00000 n 0000433274 00000 n 0000433318 00000 n 0000433362 00000 n 0000433405 00000 n 0000433448 00000 n 0000433491 00000 n 0000433534 00000 n 0000433577 00000 n 0000433620 00000 n 0000433663 00000 n 0000433706 00000 n 0000433749 00000 n 0000433792 00000 n 0000433836 00000 n 0000433880 00000 n 0000433924 00000 n 0000433968 00000 n 0000434012 00000 n 0000434055 00000 n 0000434098 00000 n 0000434141 00000 n 0000434185 00000 n 0000434228 00000 n 0000434271 00000 n 0000434315 00000 n 0000434359 00000 n 0000434403 00000 n 0000434447 00000 n 0000434491 00000 n 0000434535 00000 n 0000434579 00000 n 0000434623 00000 n 0000434667 00000 n 0000434711 00000 n 0000434755 00000 n 0000434798 00000 n 0000434841 00000 n 0000434885 00000 n 0000434928 00000 n 0000434971 00000 n 0000435015 00000 n 0000435058 00000 n 0000435102 00000 n 0000435145 00000 n 0000435188 00000 n 0000435231 00000 n 0000435274 00000 n 0000435317 00000 n 0000435360 00000 n 0000435403 00000 n 0000435446 00000 n 0000435489 00000 n 0000435532 00000 n 0000435576 00000 n 0000435620 00000 n 0000435664 00000 n 0000435708 00000 n 0000435752 00000 n 0000435796 00000 n 0000435840 00000 n 0000435883 00000 n 0000435926 00000 n 0000435969 00000 n 0000436012 00000 n 0000436055 00000 n 0000436098 00000 n 0000436141 00000 n 0000436184 00000 n 0000436227 00000 n 0000436270 00000 n 0000436313 00000 n 0000436356 00000 n 0000436399 00000 n 0000436443 00000 n 0000436487 00000 n 0000436531 00000 n 0000436575 00000 n 0000436619 00000 n 0000436663 00000 n 0000436707 00000 n 0000436751 00000 n 0000436794 00000 n 0000436837 00000 n 0000436881 00000 n 0000436924 00000 n 0000436967 00000 n 0000437010 00000 n 0000437053 00000 n 0000437096 00000 n 0000437139 00000 n 0000437182 00000 n 0000437225 00000 n 0000437268 00000 n 0000437311 00000 n 0000437354 00000 n 0000437397 00000 n 0000437440 00000 n 0000437483 00000 n 0000437526 00000 n 0000437569 00000 n 0000437612 00000 n 0000437655 00000 n 0000437698 00000 n 0000437741 00000 n 0000437784 00000 n 0000437827 00000 n 0000437870 00000 n 0000437913 00000 n 0000437956 00000 n 0000437999 00000 n 0000438042 00000 n 0000438085 00000 n 0000438128 00000 n 0000438171 00000 n 0000438214 00000 n 0000438257 00000 n 0000438300 00000 n 0000438343 00000 n 0000438386 00000 n 0000438429 00000 n 0000438472 00000 n 0000438515 00000 n 0000438559 00000 n 0000438603 00000 n 0000438647 00000 n 0000438691 00000 n 0000438735 00000 n 0000438779 00000 n 0000438823 00000 n 0000438867 00000 n 0000438911 00000 n 0000438955 00000 n 0000438999 00000 n 0000439043 00000 n 0000439087 00000 n 0000439131 00000 n 0000439175 00000 n 0000439219 00000 n 0000439263 00000 n 0000439307 00000 n 0000439351 00000 n 0000439395 00000 n 0000439439 00000 n 0000439483 00000 n 0000439527 00000 n 0000439571 00000 n 0000439615 00000 n 0000439659 00000 n 0000439703 00000 n 0000439747 00000 n 0000439791 00000 n 0000439835 00000 n 0000439879 00000 n 0000439923 00000 n 0000439967 00000 n 0000440011 00000 n 0000440055 00000 n 0000440099 00000 n 0000440143 00000 n 0000440187 00000 n 0000440231 00000 n 0000440275 00000 n 0000440319 00000 n 0000440363 00000 n 0000440407 00000 n 0000440451 00000 n 0000440495 00000 n 0000440539 00000 n 0000440583 00000 n 0000440627 00000 n 0000440671 00000 n 0000440715 00000 n 0000440758 00000 n 0000440801 00000 n 0000440844 00000 n 0000440887 00000 n 0000440931 00000 n 0000440975 00000 n 0000441018 00000 n 0000441061 00000 n 0000441104 00000 n 0000441147 00000 n 0000441190 00000 n 0000441233 00000 n 0000441276 00000 n 0000441319 00000 n 0000441363 00000 n 0000441407 00000 n 0000441451 00000 n 0000441494 00000 n 0000445424 00000 n 0000445467 00000 n 0000445510 00000 n 0000445553 00000 n 0000445596 00000 n 0000445639 00000 n 0000445682 00000 n 0000445725 00000 n 0000445768 00000 n 0000445811 00000 n 0000445854 00000 n 0000445897 00000 n 0000445941 00000 n 0000445984 00000 n 0000446027 00000 n 0000446070 00000 n 0000446113 00000 n 0000446156 00000 n 0000446200 00000 n 0000446243 00000 n 0000446286 00000 n 0000446329 00000 n 0000446372 00000 n 0000446415 00000 n 0000446458 00000 n 0000446501 00000 n 0000446544 00000 n 0000446587 00000 n 0000446631 00000 n 0000446675 00000 n 0000446719 00000 n 0000446763 00000 n 0000446807 00000 n 0000446851 00000 n 0000446895 00000 n 0000446939 00000 n 0000446983 00000 n 0000447027 00000 n 0000447071 00000 n 0000447114 00000 n 0000447158 00000 n 0000447202 00000 n 0000447246 00000 n 0000447290 00000 n 0000447334 00000 n 0000447378 00000 n 0000447422 00000 n 0000447466 00000 n 0000447510 00000 n 0000447553 00000 n 0000447596 00000 n 0000447639 00000 n 0000447682 00000 n 0000447725 00000 n 0000447769 00000 n 0000447812 00000 n 0000447855 00000 n 0000447898 00000 n 0000447941 00000 n 0000447984 00000 n 0000448027 00000 n 0000448070 00000 n 0000448113 00000 n 0000448156 00000 n 0000448199 00000 n 0000448242 00000 n 0000448286 00000 n 0000448330 00000 n 0000448374 00000 n 0000448418 00000 n 0000448462 00000 n 0000448506 00000 n 0000448550 00000 n 0000448594 00000 n 0000448638 00000 n 0000448682 00000 n 0000448725 00000 n 0000448769 00000 n 0000448813 00000 n 0000448857 00000 n 0000448900 00000 n 0000448943 00000 n 0000448986 00000 n 0000449029 00000 n 0000449072 00000 n 0000449115 00000 n 0000449158 00000 n 0000449201 00000 n 0000449244 00000 n 0000449287 00000 n 0000449330 00000 n 0000449373 00000 n 0000449416 00000 n 0000449459 00000 n 0000449502 00000 n 0000449545 00000 n 0000449588 00000 n 0000449631 00000 n 0000449674 00000 n 0000449717 00000 n 0000449760 00000 n 0000449803 00000 n 0000449846 00000 n 0000449889 00000 n 0000449932 00000 n 0000449975 00000 n 0000450018 00000 n 0000450061 00000 n 0000450104 00000 n 0000450147 00000 n 0000450190 00000 n 0000450233 00000 n 0000450276 00000 n 0000450319 00000 n 0000450362 00000 n 0000450405 00000 n 0000450448 00000 n 0000450491 00000 n 0000450534 00000 n 0000450577 00000 n 0000450620 00000 n 0000450663 00000 n 0000450706 00000 n 0000450749 00000 n 0000450792 00000 n 0000450835 00000 n 0000450878 00000 n 0000450921 00000 n 0000450964 00000 n 0000451007 00000 n 0000451050 00000 n 0000451093 00000 n 0000451136 00000 n 0000451179 00000 n 0000451222 00000 n 0000451265 00000 n 0000451308 00000 n 0000451351 00000 n 0000451394 00000 n 0000451437 00000 n 0000451480 00000 n 0000451523 00000 n 0000451566 00000 n 0000451609 00000 n 0000451652 00000 n 0000451695 00000 n 0000451738 00000 n 0000451781 00000 n 0000451824 00000 n 0000451867 00000 n 0000451910 00000 n 0000451953 00000 n 0000451996 00000 n 0000452039 00000 n 0000452082 00000 n 0000452126 00000 n 0000452170 00000 n 0000452214 00000 n 0000452258 00000 n 0000452302 00000 n 0000452346 00000 n 0000452390 00000 n 0000452434 00000 n 0000452478 00000 n 0000452522 00000 n 0000452566 00000 n 0000452610 00000 n 0000452654 00000 n 0000452698 00000 n 0000452742 00000 n 0000452786 00000 n 0000452830 00000 n 0000452874 00000 n 0000452918 00000 n 0000452962 00000 n 0000453006 00000 n 0000453050 00000 n 0000453094 00000 n 0000453138 00000 n 0000453182 00000 n 0000453226 00000 n 0000453270 00000 n 0000453314 00000 n 0000453358 00000 n 0000453402 00000 n 0000453446 00000 n 0000453490 00000 n 0000453534 00000 n 0000453578 00000 n 0000453622 00000 n 0000453666 00000 n 0000453710 00000 n 0000453754 00000 n 0000453798 00000 n 0000453842 00000 n 0000453886 00000 n 0000453930 00000 n 0000453974 00000 n 0000454018 00000 n 0000454062 00000 n 0000454106 00000 n 0000454150 00000 n 0000454194 00000 n 0000454238 00000 n 0000454281 00000 n 0000454324 00000 n 0000454367 00000 n 0000454411 00000 n 0000454454 00000 n 0000454498 00000 n 0000454541 00000 n 0000454585 00000 n 0000454628 00000 n 0000454671 00000 n 0000454714 00000 n 0000454757 00000 n 0000454800 00000 n 0000454843 00000 n 0000454887 00000 n 0000454930 00000 n 0000454973 00000 n 0000455016 00000 n 0000455059 00000 n 0000455103 00000 n 0000455146 00000 n 0000455189 00000 n 0000455232 00000 n 0000455275 00000 n 0000455319 00000 n 0000455363 00000 n 0000455407 00000 n 0000455450 00000 n 0000455493 00000 n 0000455536 00000 n 0000455579 00000 n 0000455623 00000 n 0000455667 00000 n 0000455711 00000 n 0000455755 00000 n 0000455799 00000 n 0000455842 00000 n 0000455886 00000 n 0000455930 00000 n 0000455974 00000 n 0000456018 00000 n 0000456062 00000 n 0000456106 00000 n 0000456150 00000 n 0000456193 00000 n 0000456237 00000 n 0000456281 00000 n 0000456325 00000 n 0000456369 00000 n 0000456413 00000 n 0000456456 00000 n 0000456499 00000 n 0000456543 00000 n 0000456587 00000 n 0000456631 00000 n 0000456675 00000 n 0000456719 00000 n 0000456762 00000 n 0000456805 00000 n 0000456848 00000 n 0000456891 00000 n 0000456935 00000 n 0000456978 00000 n 0000457021 00000 n 0000457064 00000 n 0000457107 00000 n 0000457150 00000 n 0000457193 00000 n 0000457237 00000 n 0000457281 00000 n 0000457325 00000 n 0000457369 00000 n 0000457413 00000 n 0000457457 00000 n 0000457501 00000 n 0000457545 00000 n 0000457589 00000 n 0000457633 00000 n 0000457677 00000 n 0000457721 00000 n 0000457765 00000 n 0000457808 00000 n 0000457851 00000 n 0000457894 00000 n 0000457937 00000 n 0000457981 00000 n 0000458024 00000 n 0000458067 00000 n 0000458110 00000 n 0000458153 00000 n 0000458196 00000 n 0000458239 00000 n 0000458282 00000 n 0000458326 00000 n 0000458370 00000 n 0000458414 00000 n 0000458458 00000 n 0000458502 00000 n 0000458546 00000 n 0000458590 00000 n 0000458633 00000 n 0000458676 00000 n 0000458719 00000 n 0000458763 00000 n 0000458806 00000 n 0000458849 00000 n 0000458892 00000 n 0000458936 00000 n 0000458979 00000 n 0000459023 00000 n 0000459067 00000 n 0000459111 00000 n 0000459155 00000 n 0000459199 00000 n 0000459242 00000 n 0000459285 00000 n 0000459328 00000 n 0000459372 00000 n 0000459416 00000 n 0000459460 00000 n 0000459503 00000 n 0000459547 00000 n 0000459591 00000 n 0000459635 00000 n 0000459678 00000 n 0000459721 00000 n 0000459764 00000 n 0000459807 00000 n 0000459850 00000 n 0000459893 00000 n 0000459937 00000 n 0000459981 00000 n 0000460025 00000 n 0000460069 00000 n 0000460113 00000 n 0000460156 00000 n 0000460199 00000 n 0000460243 00000 n 0000460287 00000 n 0000460331 00000 n 0000460375 00000 n 0000460419 00000 n 0000460463 00000 n 0000460507 00000 n 0000460551 00000 n 0000460594 00000 n 0000460638 00000 n 0000460681 00000 n 0000460724 00000 n 0000460767 00000 n 0000460811 00000 n 0000460855 00000 n 0000460898 00000 n 0000460941 00000 n 0000460984 00000 n 0000461028 00000 n 0000461071 00000 n 0000461114 00000 n 0000461157 00000 n 0000461200 00000 n 0000461244 00000 n 0000461288 00000 n 0000461331 00000 n 0000461375 00000 n 0000461419 00000 n 0000461463 00000 n 0000461507 00000 n 0000461551 00000 n 0000461595 00000 n 0000461639 00000 n 0000461683 00000 n 0000461726 00000 n 0000461769 00000 n 0000461812 00000 n 0000461855 00000 n 0000465885 00000 n 0000465929 00000 n 0000465973 00000 n 0000466017 00000 n 0000466061 00000 n 0000466105 00000 n 0000466149 00000 n 0000466193 00000 n 0000466236 00000 n 0000466279 00000 n 0000466322 00000 n 0000466366 00000 n 0000466410 00000 n 0000466454 00000 n 0000466497 00000 n 0000466540 00000 n 0000466583 00000 n 0000466626 00000 n 0000466670 00000 n 0000466714 00000 n 0000466758 00000 n 0000466801 00000 n 0000466844 00000 n 0000466888 00000 n 0000466932 00000 n 0000466976 00000 n 0000467020 00000 n 0000467064 00000 n 0000467108 00000 n 0000467152 00000 n 0000467196 00000 n 0000467240 00000 n 0000467284 00000 n 0000467328 00000 n 0000467372 00000 n 0000467416 00000 n 0000467460 00000 n 0000467504 00000 n 0000467548 00000 n 0000467592 00000 n 0000467636 00000 n 0000467680 00000 n 0000467724 00000 n 0000467767 00000 n 0000467810 00000 n 0000467853 00000 n 0000467896 00000 n 0000467939 00000 n 0000467983 00000 n 0000468027 00000 n 0000468071 00000 n 0000468115 00000 n 0000468158 00000 n 0000468201 00000 n 0000468244 00000 n 0000468287 00000 n 0000468330 00000 n 0000468374 00000 n 0000468418 00000 n 0000468462 00000 n 0000468505 00000 n 0000468549 00000 n 0000468593 00000 n 0000468637 00000 n 0000468681 00000 n 0000468724 00000 n 0000468768 00000 n 0000468812 00000 n 0000468856 00000 n 0000468900 00000 n 0000468943 00000 n 0000468986 00000 n 0000469029 00000 n 0000469072 00000 n 0000469115 00000 n 0000469159 00000 n 0000469203 00000 n 0000469247 00000 n 0000469290 00000 n 0000469333 00000 n 0000469377 00000 n 0000469421 00000 n 0000469465 00000 n 0000469508 00000 n 0000469551 00000 n 0000469594 00000 n 0000469637 00000 n 0000469680 00000 n 0000469723 00000 n 0000469767 00000 n 0000469811 00000 n 0000469855 00000 n 0000469899 00000 n 0000469943 00000 n 0000469987 00000 n 0000470031 00000 n 0000470075 00000 n 0000470118 00000 n 0000470162 00000 n 0000470206 00000 n 0000470249 00000 n 0000470292 00000 n 0000470335 00000 n 0000470378 00000 n 0000470422 00000 n 0000470466 00000 n 0000470509 00000 n 0000470552 00000 n 0000470595 00000 n 0000470638 00000 n 0000470681 00000 n 0000470724 00000 n 0000470767 00000 n 0000470811 00000 n 0000470855 00000 n 0000470898 00000 n 0000470941 00000 n 0000470985 00000 n 0000471029 00000 n 0000471072 00000 n 0000471116 00000 n 0000471160 00000 n 0000471203 00000 n 0000471247 00000 n 0000471291 00000 n 0000471334 00000 n 0000471378 00000 n 0000471422 00000 n 0000471465 00000 n 0000471508 00000 n 0000471551 00000 n 0000471595 00000 n 0000471639 00000 n 0000471683 00000 n 0000471727 00000 n 0000471771 00000 n 0000471815 00000 n 0000471859 00000 n 0000471903 00000 n 0000471947 00000 n 0000471990 00000 n 0000472033 00000 n 0000472076 00000 n 0000472119 00000 n 0000472163 00000 n 0000472207 00000 n 0000472251 00000 n 0000472295 00000 n 0000472339 00000 n 0000472382 00000 n 0000472426 00000 n 0000472469 00000 n 0000472512 00000 n 0000472556 00000 n 0000472600 00000 n 0000472644 00000 n 0000472688 00000 n 0000472732 00000 n 0000472775 00000 n 0000472819 00000 n 0000472863 00000 n 0000472907 00000 n 0000472951 00000 n 0000472995 00000 n 0000473039 00000 n 0000473083 00000 n 0000473127 00000 n 0000473171 00000 n 0000473215 00000 n 0000473259 00000 n 0000473303 00000 n 0000473347 00000 n 0000473391 00000 n 0000473435 00000 n 0000473479 00000 n 0000473523 00000 n 0000473567 00000 n 0000473611 00000 n 0000473655 00000 n 0000473699 00000 n 0000473743 00000 n 0000473787 00000 n 0000473831 00000 n 0000473875 00000 n 0000473919 00000 n 0000473963 00000 n 0000474007 00000 n 0000474051 00000 n 0000474095 00000 n 0000474139 00000 n 0000474183 00000 n 0000474227 00000 n 0000474271 00000 n 0000474314 00000 n 0000474357 00000 n 0000474401 00000 n 0000474445 00000 n 0000474489 00000 n 0000474533 00000 n 0000474576 00000 n 0000474620 00000 n 0000474664 00000 n 0000474707 00000 n 0000474750 00000 n 0000474793 00000 n 0000474836 00000 n 0000474879 00000 n 0000474922 00000 n 0000474966 00000 n 0000475009 00000 n 0000475052 00000 n 0000475095 00000 n 0000475138 00000 n 0000475181 00000 n 0000475224 00000 n 0000475267 00000 n 0000475310 00000 n 0000475353 00000 n 0000475396 00000 n 0000475440 00000 n 0000475484 00000 n 0000475528 00000 n 0000475571 00000 n 0000475614 00000 n 0000475657 00000 n 0000475700 00000 n 0000475744 00000 n 0000475788 00000 n 0000475831 00000 n 0000475875 00000 n 0000475919 00000 n 0000475963 00000 n 0000476007 00000 n 0000476051 00000 n 0000476095 00000 n 0000476139 00000 n 0000476183 00000 n 0000476226 00000 n 0000476269 00000 n 0000476313 00000 n 0000476357 00000 n 0000476401 00000 n 0000476445 00000 n 0000476489 00000 n 0000476533 00000 n 0000476577 00000 n 0000476621 00000 n 0000476665 00000 n 0000476709 00000 n 0000476753 00000 n 0000476797 00000 n 0000476840 00000 n 0000476883 00000 n 0000476927 00000 n 0000476971 00000 n 0000479761 00000 n 0000479804 00000 n 0000479847 00000 n 0000479890 00000 n 0000479933 00000 n 0000479976 00000 n 0000480019 00000 n 0000480062 00000 n 0000480105 00000 n 0000480149 00000 n 0000480193 00000 n 0000480237 00000 n 0000480281 00000 n 0000480324 00000 n 0000480367 00000 n 0000480411 00000 n 0000480455 00000 n 0000480498 00000 n 0000480541 00000 n 0000480584 00000 n 0000480627 00000 n 0000480670 00000 n 0000480714 00000 n 0000480758 00000 n 0000480802 00000 n 0000480846 00000 n 0000480889 00000 n 0000480933 00000 n 0000480977 00000 n 0000481020 00000 n 0000481063 00000 n 0000481106 00000 n 0000481149 00000 n 0000481192 00000 n 0000481236 00000 n 0000481280 00000 n 0000481324 00000 n 0000481368 00000 n 0000481411 00000 n 0000481454 00000 n 0000481497 00000 n 0000481540 00000 n 0000481583 00000 n 0000481627 00000 n 0000481670 00000 n 0000481714 00000 n 0000481758 00000 n 0000481802 00000 n 0000481846 00000 n 0000481890 00000 n 0000481934 00000 n 0000481978 00000 n 0000482022 00000 n 0000482066 00000 n 0000482110 00000 n 0000482154 00000 n 0000482198 00000 n 0000482241 00000 n 0000482284 00000 n 0000482327 00000 n 0000482371 00000 n 0000482415 00000 n 0000482458 00000 n 0000482502 00000 n 0000482546 00000 n 0000482590 00000 n 0000482633 00000 n 0000482676 00000 n 0000482719 00000 n 0000482763 00000 n 0000482806 00000 n 0000482849 00000 n 0000482892 00000 n 0000482935 00000 n 0000482979 00000 n 0000483023 00000 n 0000483066 00000 n 0000483109 00000 n 0000483152 00000 n 0000483195 00000 n 0000483238 00000 n 0000483282 00000 n 0000483325 00000 n 0000483368 00000 n 0000483411 00000 n 0000483454 00000 n 0000483497 00000 n 0000483540 00000 n 0000483583 00000 n 0000483626 00000 n 0000483669 00000 n 0000483713 00000 n 0000483757 00000 n 0000483801 00000 n 0000483845 00000 n 0000483889 00000 n 0000483933 00000 n 0000483977 00000 n 0000484021 00000 n 0000484065 00000 n 0000484109 00000 n 0000484153 00000 n 0000484196 00000 n 0000484239 00000 n 0000484283 00000 n 0000484327 00000 n 0000484371 00000 n 0000484414 00000 n 0000484457 00000 n 0000484500 00000 n 0000484543 00000 n 0000484587 00000 n 0000484630 00000 n 0000484674 00000 n 0000484717 00000 n 0000484760 00000 n 0000484804 00000 n 0000484847 00000 n 0000484891 00000 n 0000484935 00000 n 0000484978 00000 n 0000485021 00000 n 0000485064 00000 n 0000485107 00000 n 0000485150 00000 n 0000485194 00000 n 0000485238 00000 n 0000485282 00000 n 0000485325 00000 n 0000485368 00000 n 0000485411 00000 n 0000485454 00000 n 0000485498 00000 n 0000485542 00000 n 0000485585 00000 n 0000485628 00000 n 0000485671 00000 n 0000485714 00000 n 0000485757 00000 n 0000485800 00000 n 0000485843 00000 n 0000485886 00000 n 0000485929 00000 n 0000485972 00000 n 0000486015 00000 n 0000486058 00000 n 0000486101 00000 n 0000486144 00000 n 0000486187 00000 n 0000486230 00000 n 0000486273 00000 n 0000486317 00000 n 0000486361 00000 n 0000486404 00000 n 0000486447 00000 n 0000486490 00000 n 0000486533 00000 n 0000486576 00000 n 0000486619 00000 n 0000486662 00000 n 0000486705 00000 n 0000486748 00000 n 0000486792 00000 n 0000486835 00000 n 0000486878 00000 n 0000486921 00000 n 0000486964 00000 n 0000487007 00000 n 0000487050 00000 n 0000487093 00000 n 0000487136 00000 n 0000487179 00000 n 0000487222 00000 n 0000487265 00000 n 0000487308 00000 n 0000487351 00000 n 0000487394 00000 n 0000487437 00000 n 0000487481 00000 n 0000487525 00000 n 0000487568 00000 n 0000487612 00000 n 0000487656 00000 n 0000487700 00000 n 0000487744 00000 n 0000487788 00000 n 0000487832 00000 n 0000487876 00000 n 0000487920 00000 n 0000487963 00000 n 0000488006 00000 n 0000488049 00000 n 0000488092 00000 n 0000488135 00000 n 0000488178 00000 n 0000488221 00000 n 0000488265 00000 n 0000488309 00000 n 0000488352 00000 n 0000488395 00000 n 0000488438 00000 n 0000488481 00000 n 0000488524 00000 n 0000488568 00000 n 0000488611 00000 n 0000488655 00000 n 0000488698 00000 n 0000488741 00000 n 0000488784 00000 n 0000488827 00000 n 0000488870 00000 n 0000488913 00000 n 0000488956 00000 n 0000488999 00000 n 0000489042 00000 n 0000489085 00000 n 0000489128 00000 n 0000489171 00000 n 0000489214 00000 n 0000489257 00000 n 0000489300 00000 n 0000489343 00000 n 0000489387 00000 n 0000489430 00000 n 0000489473 00000 n 0000489516 00000 n 0000489559 00000 n 0000489602 00000 n 0000489646 00000 n 0000489690 00000 n 0000489734 00000 n 0000489778 00000 n 0000489822 00000 n 0000489866 00000 n 0000489909 00000 n 0000489952 00000 n 0000489995 00000 n 0000490038 00000 n 0000490081 00000 n 0000490124 00000 n 0000492764 00000 n 0000492807 00000 n 0000492851 00000 n 0000492894 00000 n 0000492938 00000 n 0000492982 00000 n 0000493026 00000 n 0000493070 00000 n 0000493114 00000 n 0000493158 00000 n 0000493202 00000 n 0000493246 00000 n 0000493290 00000 n 0000493334 00000 n 0000493378 00000 n 0000493422 00000 n 0000493465 00000 n 0000493509 00000 n 0000493553 00000 n 0000493597 00000 n 0000493640 00000 n 0000493684 00000 n 0000493728 00000 n 0000493772 00000 n 0000493816 00000 n 0000493860 00000 n 0000493904 00000 n 0000493948 00000 n 0000493992 00000 n 0000494036 00000 n 0000494080 00000 n 0000494124 00000 n 0000494167 00000 n 0000494211 00000 n 0000494255 00000 n 0000494299 00000 n 0000494343 00000 n 0000494387 00000 n 0000494431 00000 n 0000494475 00000 n 0000494519 00000 n 0000494563 00000 n 0000494606 00000 n 0000494649 00000 n 0000494693 00000 n 0000494736 00000 n 0000494779 00000 n 0000494822 00000 n 0000494866 00000 n 0000494910 00000 n 0000494954 00000 n 0000494998 00000 n 0000495042 00000 n 0000495086 00000 n 0000495130 00000 n 0000495174 00000 n 0000495218 00000 n 0000495262 00000 n 0000495305 00000 n 0000495349 00000 n 0000495393 00000 n 0000495437 00000 n 0000495481 00000 n 0000495525 00000 n 0000495569 00000 n 0000495613 00000 n 0000495657 00000 n 0000495701 00000 n 0000495745 00000 n 0000495788 00000 n 0000495831 00000 n 0000495874 00000 n 0000495917 00000 n 0000495960 00000 n 0000496003 00000 n 0000496046 00000 n 0000496089 00000 n 0000496133 00000 n 0000496177 00000 n 0000496220 00000 n 0000496263 00000 n 0000496306 00000 n 0000496350 00000 n 0000496394 00000 n 0000496437 00000 n 0000496480 00000 n 0000496524 00000 n 0000496568 00000 n 0000496612 00000 n 0000496656 00000 n 0000496700 00000 n 0000496743 00000 n 0000496786 00000 n 0000496830 00000 n 0000496874 00000 n 0000496918 00000 n 0000496962 00000 n 0000497006 00000 n 0000497050 00000 n 0000497094 00000 n 0000497138 00000 n 0000497182 00000 n 0000497226 00000 n 0000497270 00000 n 0000497313 00000 n 0000497356 00000 n 0000497399 00000 n 0000497442 00000 n 0000497485 00000 n 0000497528 00000 n 0000497571 00000 n 0000497614 00000 n 0000497657 00000 n 0000497700 00000 n 0000497743 00000 n 0000497786 00000 n 0000497829 00000 n 0000497872 00000 n 0000497915 00000 n 0000497958 00000 n 0000498002 00000 n 0000498046 00000 n 0000498090 00000 n 0000498134 00000 n 0000498178 00000 n 0000498221 00000 n 0000498264 00000 n 0000498307 00000 n 0000498350 00000 n 0000498394 00000 n 0000498438 00000 n 0000498482 00000 n 0000498526 00000 n 0000498570 00000 n 0000498614 00000 n 0000498658 00000 n 0000498702 00000 n 0000498746 00000 n 0000498790 00000 n 0000498834 00000 n 0000498878 00000 n 0000498922 00000 n 0000498966 00000 n 0000499010 00000 n 0000499054 00000 n 0000499098 00000 n 0000499142 00000 n 0000499185 00000 n 0000499229 00000 n 0000499273 00000 n 0000499316 00000 n 0000499359 00000 n 0000499402 00000 n 0000499445 00000 n 0000499488 00000 n 0000499531 00000 n 0000499574 00000 n 0000499617 00000 n 0000499660 00000 n 0000499703 00000 n 0000499746 00000 n 0000499789 00000 n 0000499832 00000 n 0000499875 00000 n 0000499918 00000 n 0000499961 00000 n 0000500005 00000 n 0000500049 00000 n 0000500093 00000 n 0000500137 00000 n 0000500180 00000 n 0000500223 00000 n 0000500267 00000 n 0000500311 00000 n 0000500355 00000 n 0000500399 00000 n 0000500443 00000 n 0000500487 00000 n 0000500531 00000 n 0000500574 00000 n 0000500617 00000 n 0000500660 00000 n 0000500703 00000 n 0000500746 00000 n 0000500789 00000 n 0000500832 00000 n 0000500875 00000 n 0000500918 00000 n 0000500961 00000 n 0000501004 00000 n 0000501048 00000 n 0000501091 00000 n 0000501134 00000 n 0000501177 00000 n 0000501220 00000 n 0000501264 00000 n 0000501308 00000 n 0000501352 00000 n 0000501396 00000 n 0000501439 00000 n 0000501483 00000 n 0000501527 00000 n 0000501571 00000 n 0000501615 00000 n 0000501658 00000 n 0000501701 00000 n 0000501744 00000 n 0000501787 00000 n 0000501830 00000 n 0000501874 00000 n 0000501918 00000 n 0000501962 00000 n 0000502006 00000 n 0000502050 00000 n 0000502094 00000 n 0000502138 00000 n 0000502182 00000 n 0000502226 00000 n 0000502269 00000 n 0000502312 00000 n 0000502355 00000 n 0000504805 00000 n 0000504849 00000 n 0000504893 00000 n 0000504936 00000 n 0000504979 00000 n 0000505022 00000 n 0000505066 00000 n 0000505109 00000 n 0000505152 00000 n 0000505195 00000 n 0000505238 00000 n 0000505281 00000 n 0000505324 00000 n 0000505367 00000 n 0000505410 00000 n 0000505453 00000 n 0000505497 00000 n 0000505541 00000 n 0000505585 00000 n 0000505629 00000 n 0000505673 00000 n 0000505717 00000 n 0000505761 00000 n 0000505805 00000 n 0000505849 00000 n 0000505893 00000 n 0000505937 00000 n 0000505981 00000 n 0000506025 00000 n 0000506069 00000 n 0000506113 00000 n 0000506157 00000 n 0000506201 00000 n 0000506245 00000 n 0000506288 00000 n 0000506331 00000 n 0000506374 00000 n 0000506417 00000 n 0000506460 00000 n 0000506503 00000 n 0000506546 00000 n 0000506589 00000 n 0000506632 00000 n 0000506675 00000 n 0000506718 00000 n 0000506762 00000 n 0000506806 00000 n 0000506850 00000 n 0000506894 00000 n 0000506938 00000 n 0000506982 00000 n 0000507026 00000 n 0000507070 00000 n 0000507114 00000 n 0000507158 00000 n 0000507202 00000 n 0000507246 00000 n 0000507290 00000 n 0000507333 00000 n 0000507376 00000 n 0000507419 00000 n 0000507463 00000 n 0000507507 00000 n 0000507551 00000 n 0000507595 00000 n 0000507639 00000 n 0000507683 00000 n 0000507727 00000 n 0000507771 00000 n 0000507815 00000 n 0000507859 00000 n 0000507903 00000 n 0000507947 00000 n 0000507991 00000 n 0000508035 00000 n 0000508079 00000 n 0000508123 00000 n 0000508167 00000 n 0000508211 00000 n 0000508255 00000 n 0000508299 00000 n 0000508343 00000 n 0000508387 00000 n 0000508431 00000 n 0000508475 00000 n 0000508519 00000 n 0000508563 00000 n 0000508607 00000 n 0000508651 00000 n 0000508695 00000 n 0000508739 00000 n 0000508783 00000 n 0000508827 00000 n 0000508871 00000 n 0000508915 00000 n 0000508959 00000 n 0000509003 00000 n 0000509047 00000 n 0000509091 00000 n 0000509135 00000 n 0000509179 00000 n 0000509223 00000 n 0000509267 00000 n 0000509311 00000 n 0000509355 00000 n 0000509399 00000 n 0000509443 00000 n 0000509487 00000 n 0000509531 00000 n 0000509575 00000 n 0000509619 00000 n 0000509663 00000 n 0000509707 00000 n 0000509751 00000 n 0000509795 00000 n 0000509839 00000 n 0000509883 00000 n 0000509927 00000 n 0000509971 00000 n 0000510015 00000 n 0000510059 00000 n 0000510103 00000 n 0000510147 00000 n 0000510191 00000 n 0000510235 00000 n 0000510279 00000 n 0000510323 00000 n 0000510367 00000 n 0000510411 00000 n 0000510455 00000 n 0000510498 00000 n 0000510542 00000 n 0000510586 00000 n 0000510630 00000 n 0000510674 00000 n 0000510718 00000 n 0000510762 00000 n 0000510806 00000 n 0000510850 00000 n 0000510894 00000 n 0000510938 00000 n 0000510982 00000 n 0000511026 00000 n 0000511070 00000 n 0000511114 00000 n 0000511158 00000 n 0000511202 00000 n 0000511246 00000 n 0000511290 00000 n 0000511334 00000 n 0000511377 00000 n 0000511420 00000 n 0000511464 00000 n 0000511507 00000 n 0000511550 00000 n 0000511593 00000 n 0000511637 00000 n 0000511680 00000 n 0000511724 00000 n 0000511768 00000 n 0000511812 00000 n 0000511856 00000 n 0000511900 00000 n 0000511944 00000 n 0000511988 00000 n 0000512032 00000 n 0000512076 00000 n 0000512120 00000 n 0000512164 00000 n 0000512208 00000 n 0000512252 00000 n 0000512296 00000 n 0000512340 00000 n 0000512384 00000 n 0000512428 00000 n 0000512472 00000 n 0000512516 00000 n 0000512560 00000 n 0000512604 00000 n 0000512648 00000 n 0000512692 00000 n 0000512736 00000 n 0000512780 00000 n 0000512824 00000 n 0000512868 00000 n 0000512911 00000 n 0000512954 00000 n 0000512997 00000 n 0000513040 00000 n 0000513083 00000 n 0000513126 00000 n 0000513169 00000 n 0000513212 00000 n 0000513255 00000 n 0000513298 00000 n 0000513341 00000 n 0000513384 00000 n 0000513427 00000 n 0000513470 00000 n 0000513513 00000 n 0000513557 00000 n 0000513601 00000 n 0000513644 00000 n 0000513687 00000 n 0000513731 00000 n 0000513775 00000 n 0000513819 00000 n 0000513863 00000 n 0000513907 00000 n 0000513950 00000 n 0000513994 00000 n 0000514037 00000 n 0000514080 00000 n 0000514124 00000 n 0000514167 00000 n 0000514210 00000 n 0000514253 00000 n 0000514296 00000 n 0000514339 00000 n 0000514382 00000 n 0000514425 00000 n 0000514468 00000 n 0000514511 00000 n 0000514554 00000 n 0000514597 00000 n 0000514641 00000 n 0000514685 00000 n 0000514728 00000 n 0000514771 00000 n 0000514814 00000 n 0000514857 00000 n 0000514900 00000 n 0000514943 00000 n 0000514986 00000 n 0000515029 00000 n 0000515073 00000 n 0000515117 00000 n 0000515161 00000 n 0000515205 00000 n 0000515249 00000 n 0000515293 00000 n 0000515337 00000 n 0000515381 00000 n 0000515425 00000 n 0000515469 00000 n 0000515513 00000 n 0000515557 00000 n 0000515600 00000 n 0000515643 00000 n 0000515686 00000 n 0000515729 00000 n 0000515772 00000 n 0000515815 00000 n 0000515858 00000 n 0000515901 00000 n 0000515944 00000 n 0000515987 00000 n 0000516030 00000 n 0000516073 00000 n 0000516116 00000 n 0000516159 00000 n 0000516202 00000 n 0000516245 00000 n 0000516289 00000 n 0000516333 00000 n 0000516377 00000 n 0000516421 00000 n 0000516465 00000 n 0000516509 00000 n 0000516553 00000 n 0000516597 00000 n 0000516640 00000 n 0000516683 00000 n 0000516726 00000 n 0000516769 00000 n 0000516812 00000 n 0000516856 00000 n 0000516900 00000 n 0000516944 00000 n 0000516988 00000 n 0000517032 00000 n 0000517076 00000 n 0000517120 00000 n 0000517164 00000 n 0000517208 00000 n 0000517252 00000 n 0000517295 00000 n 0000517339 00000 n 0000517382 00000 n 0000517426 00000 n 0000517470 00000 n 0000517513 00000 n 0000517556 00000 n 0000517599 00000 n 0000517643 00000 n 0000517687 00000 n 0000517731 00000 n 0000517775 00000 n 0000517818 00000 n 0000517861 00000 n 0000517904 00000 n 0000517947 00000 n 0000517990 00000 n 0000518033 00000 n 0000518076 00000 n 0000518120 00000 n 0000518164 00000 n 0000518208 00000 n 0000518252 00000 n 0000518296 00000 n 0000518340 00000 n 0000518384 00000 n 0000518428 00000 n 0000518472 00000 n 0000518516 00000 n 0000518559 00000 n 0000518603 00000 n 0000518647 00000 n 0000518690 00000 n 0000518733 00000 n 0000518776 00000 n 0000518819 00000 n 0000522279 00000 n 0000522323 00000 n 0000522366 00000 n 0000522409 00000 n 0000522452 00000 n 0000522495 00000 n 0000522538 00000 n 0000522581 00000 n 0000522624 00000 n 0000522667 00000 n 0000522710 00000 n 0000522754 00000 n 0000522797 00000 n 0000522840 00000 n 0000522883 00000 n 0000522926 00000 n 0000522969 00000 n 0000523012 00000 n 0000523055 00000 n 0000523098 00000 n 0000523141 00000 n 0000523184 00000 n 0000523227 00000 n 0000523270 00000 n 0000523313 00000 n 0000523357 00000 n 0000523400 00000 n 0000523443 00000 n 0000523486 00000 n 0000523530 00000 n 0000523574 00000 n 0000523618 00000 n 0000523661 00000 n 0000523704 00000 n 0000523748 00000 n 0000523792 00000 n 0000523835 00000 n 0000523879 00000 n 0000523923 00000 n 0000523966 00000 n 0000524010 00000 n 0000524054 00000 n 0000524097 00000 n 0000524141 00000 n 0000524185 00000 n 0000524229 00000 n 0000524273 00000 n 0000524317 00000 n 0000524361 00000 n 0000524404 00000 n 0000524447 00000 n 0000524490 00000 n 0000524533 00000 n 0000524577 00000 n 0000524621 00000 n 0000524665 00000 n 0000524708 00000 n 0000524751 00000 n 0000524794 00000 n 0000524837 00000 n 0000524880 00000 n 0000524923 00000 n 0000524966 00000 n 0000525009 00000 n 0000525052 00000 n 0000525095 00000 n 0000525138 00000 n 0000525181 00000 n 0000525224 00000 n 0000525267 00000 n 0000525310 00000 n 0000525353 00000 n 0000525396 00000 n 0000525439 00000 n 0000525482 00000 n 0000525525 00000 n 0000525568 00000 n 0000525611 00000 n 0000525654 00000 n 0000525698 00000 n 0000525742 00000 n 0000525785 00000 n 0000525828 00000 n 0000525871 00000 n 0000525914 00000 n 0000525957 00000 n 0000526000 00000 n 0000526043 00000 n 0000526086 00000 n 0000526129 00000 n 0000526172 00000 n 0000526215 00000 n 0000526258 00000 n 0000526301 00000 n 0000526344 00000 n 0000526387 00000 n 0000526430 00000 n 0000526473 00000 n 0000526516 00000 n 0000526559 00000 n 0000526602 00000 n 0000526645 00000 n 0000526688 00000 n 0000526731 00000 n 0000526774 00000 n 0000526817 00000 n 0000526860 00000 n 0000526903 00000 n 0000526947 00000 n 0000526991 00000 n 0000527034 00000 n 0000527077 00000 n 0000527120 00000 n 0000527163 00000 n 0000527206 00000 n 0000527249 00000 n 0000527292 00000 n 0000527336 00000 n 0000527379 00000 n 0000527422 00000 n 0000527465 00000 n 0000527508 00000 n 0000527552 00000 n 0000527595 00000 n 0000527638 00000 n 0000527681 00000 n 0000527724 00000 n 0000527767 00000 n 0000527810 00000 n 0000527853 00000 n 0000527896 00000 n 0000527939 00000 n 0000527982 00000 n 0000528025 00000 n 0000528068 00000 n 0000528111 00000 n 0000528154 00000 n 0000528197 00000 n 0000528240 00000 n 0000528283 00000 n 0000528326 00000 n 0000528369 00000 n 0000528412 00000 n 0000528455 00000 n 0000528498 00000 n 0000528541 00000 n 0000528584 00000 n 0000528627 00000 n 0000528670 00000 n 0000528713 00000 n 0000528756 00000 n 0000528799 00000 n 0000528842 00000 n 0000528885 00000 n 0000528928 00000 n 0000528971 00000 n 0000529014 00000 n 0000529057 00000 n 0000529100 00000 n 0000529143 00000 n 0000529186 00000 n 0000529229 00000 n 0000529272 00000 n 0000529315 00000 n 0000529358 00000 n 0000529401 00000 n 0000529444 00000 n 0000529487 00000 n 0000529530 00000 n 0000529573 00000 n 0000529616 00000 n 0000529659 00000 n 0000529702 00000 n 0000529745 00000 n 0000529788 00000 n 0000529831 00000 n 0000529874 00000 n 0000529917 00000 n 0000529960 00000 n 0000530003 00000 n 0000530046 00000 n 0000530089 00000 n 0000530132 00000 n 0000530175 00000 n 0000530218 00000 n 0000530261 00000 n 0000530304 00000 n 0000530347 00000 n 0000530390 00000 n 0000530433 00000 n 0000530476 00000 n 0000530519 00000 n 0000530562 00000 n 0000530605 00000 n 0000530648 00000 n 0000530691 00000 n 0000530734 00000 n 0000530777 00000 n 0000530820 00000 n 0000530863 00000 n 0000530906 00000 n 0000530949 00000 n 0000530992 00000 n 0000531035 00000 n 0000531078 00000 n 0000531121 00000 n 0000531164 00000 n 0000531207 00000 n 0000531250 00000 n 0000531293 00000 n 0000531336 00000 n 0000531379 00000 n 0000531422 00000 n 0000531465 00000 n 0000531508 00000 n 0000531551 00000 n 0000531595 00000 n 0000531639 00000 n 0000531683 00000 n 0000531727 00000 n 0000531771 00000 n 0000531815 00000 n 0000531859 00000 n 0000531903 00000 n 0000531947 00000 n 0000531991 00000 n 0000532035 00000 n 0000532079 00000 n 0000532123 00000 n 0000532167 00000 n 0000532211 00000 n 0000532255 00000 n 0000532299 00000 n 0000532343 00000 n 0000532387 00000 n 0000532431 00000 n 0000532475 00000 n 0000532519 00000 n 0000532563 00000 n 0000532607 00000 n 0000532651 00000 n 0000532695 00000 n 0000532739 00000 n 0000532783 00000 n 0000532827 00000 n 0000532871 00000 n 0000532915 00000 n 0000532959 00000 n 0000533003 00000 n 0000533047 00000 n 0000533091 00000 n 0000533135 00000 n 0000533179 00000 n 0000533223 00000 n 0000533267 00000 n 0000533311 00000 n 0000533355 00000 n 0000533399 00000 n 0000533443 00000 n 0000533487 00000 n 0000533531 00000 n 0000533575 00000 n 0000533619 00000 n 0000533663 00000 n 0000533707 00000 n 0000533751 00000 n 0000533795 00000 n 0000533839 00000 n 0000533883 00000 n 0000533927 00000 n 0000533971 00000 n 0000534015 00000 n 0000534059 00000 n 0000534103 00000 n 0000534147 00000 n 0000534191 00000 n 0000534235 00000 n 0000534278 00000 n 0000534322 00000 n 0000534366 00000 n 0000534410 00000 n 0000534454 00000 n 0000534498 00000 n 0000534542 00000 n 0000534585 00000 n 0000534629 00000 n 0000534673 00000 n 0000534717 00000 n 0000534761 00000 n 0000534805 00000 n 0000534849 00000 n 0000534893 00000 n 0000534937 00000 n 0000534981 00000 n 0000535025 00000 n 0000535069 00000 n 0000535113 00000 n 0000535156 00000 n 0000535199 00000 n 0000535242 00000 n 0000535286 00000 n 0000535330 00000 n 0000535373 00000 n 0000535417 00000 n 0000535460 00000 n 0000535503 00000 n 0000535546 00000 n 0000535589 00000 n 0000535632 00000 n 0000535675 00000 n 0000535718 00000 n 0000535762 00000 n 0000535806 00000 n 0000535850 00000 n 0000535893 00000 n 0000535937 00000 n 0000535981 00000 n 0000536025 00000 n 0000536069 00000 n 0000536113 00000 n 0000536157 00000 n 0000536201 00000 n 0000536245 00000 n 0000536289 00000 n 0000536333 00000 n 0000536377 00000 n 0000536421 00000 n 0000536464 00000 n 0000536507 00000 n 0000536550 00000 n 0000536593 00000 n 0000536636 00000 n 0000540196 00000 n 0000540240 00000 n 0000540284 00000 n 0000540328 00000 n 0000540372 00000 n 0000540416 00000 n 0000540459 00000 n 0000540502 00000 n 0000540545 00000 n 0000540588 00000 n 0000540632 00000 n 0000540676 00000 n 0000540720 00000 n 0000540764 00000 n 0000540808 00000 n 0000540852 00000 n 0000540896 00000 n 0000540940 00000 n 0000540984 00000 n 0000541028 00000 n 0000541072 00000 n 0000541116 00000 n 0000541160 00000 n 0000541204 00000 n 0000541248 00000 n 0000541292 00000 n 0000541336 00000 n 0000541380 00000 n 0000541424 00000 n 0000541468 00000 n 0000541512 00000 n 0000541556 00000 n 0000541600 00000 n 0000541644 00000 n 0000541688 00000 n 0000541732 00000 n 0000541776 00000 n 0000541820 00000 n 0000541864 00000 n 0000541908 00000 n 0000541952 00000 n 0000541996 00000 n 0000542040 00000 n 0000542083 00000 n 0000542126 00000 n 0000542169 00000 n 0000542212 00000 n 0000542255 00000 n 0000542298 00000 n 0000542341 00000 n 0000542384 00000 n 0000542427 00000 n 0000542470 00000 n 0000542513 00000 n 0000542556 00000 n 0000542600 00000 n 0000542644 00000 n 0000542687 00000 n 0000542730 00000 n 0000542773 00000 n 0000542816 00000 n 0000542859 00000 n 0000542902 00000 n 0000542945 00000 n 0000542988 00000 n 0000543031 00000 n 0000543074 00000 n 0000543117 00000 n 0000543160 00000 n 0000543204 00000 n 0000543248 00000 n 0000543292 00000 n 0000543336 00000 n 0000543380 00000 n 0000543424 00000 n 0000543468 00000 n 0000543511 00000 n 0000543554 00000 n 0000543597 00000 n 0000543640 00000 n 0000543683 00000 n 0000543726 00000 n 0000543769 00000 n 0000543813 00000 n 0000543857 00000 n 0000543901 00000 n 0000543945 00000 n 0000543989 00000 n 0000544033 00000 n 0000544077 00000 n 0000544121 00000 n 0000544165 00000 n 0000544209 00000 n 0000544253 00000 n 0000544297 00000 n 0000544341 00000 n 0000544385 00000 n 0000544428 00000 n 0000544471 00000 n 0000544514 00000 n 0000544558 00000 n 0000544602 00000 n 0000544646 00000 n 0000544690 00000 n 0000544734 00000 n 0000544778 00000 n 0000544822 00000 n 0000544866 00000 n 0000544910 00000 n 0000544954 00000 n 0000544998 00000 n 0000545042 00000 n 0000545086 00000 n 0000545130 00000 n 0000545174 00000 n 0000545218 00000 n 0000545262 00000 n 0000545306 00000 n 0000545350 00000 n 0000545394 00000 n 0000545438 00000 n 0000545482 00000 n 0000545526 00000 n 0000545570 00000 n 0000545614 00000 n 0000545658 00000 n 0000545702 00000 n 0000545746 00000 n 0000545790 00000 n 0000545834 00000 n 0000545877 00000 n 0000545920 00000 n 0000545963 00000 n 0000546006 00000 n 0000546049 00000 n 0000546092 00000 n 0000546135 00000 n 0000546178 00000 n 0000546221 00000 n 0000546264 00000 n 0000546307 00000 n 0000546350 00000 n 0000546393 00000 n 0000546436 00000 n 0000546479 00000 n 0000546522 00000 n 0000546565 00000 n 0000546609 00000 n 0000546652 00000 n 0000546695 00000 n 0000546738 00000 n 0000546781 00000 n 0000546824 00000 n 0000546867 00000 n 0000546911 00000 n 0000546955 00000 n 0000546998 00000 n 0000547042 00000 n 0000547086 00000 n 0000547130 00000 n 0000547174 00000 n 0000547218 00000 n 0000547262 00000 n 0000547306 00000 n 0000547350 00000 n 0000547394 00000 n 0000547438 00000 n 0000547482 00000 n 0000547526 00000 n 0000547570 00000 n 0000547614 00000 n 0000547658 00000 n 0000547702 00000 n 0000547745 00000 n 0000547788 00000 n 0000547831 00000 n 0000547874 00000 n 0000547917 00000 n 0000547960 00000 n 0000548003 00000 n 0000548046 00000 n 0000548089 00000 n 0000548132 00000 n 0000548175 00000 n 0000548218 00000 n 0000548261 00000 n 0000548304 00000 n 0000548348 00000 n 0000548392 00000 n 0000548435 00000 n 0000548478 00000 n 0000548521 00000 n 0000548564 00000 n 0000548607 00000 n 0000548650 00000 n 0000548693 00000 n 0000548736 00000 n 0000548779 00000 n 0000548822 00000 n 0000548865 00000 n 0000548908 00000 n 0000548952 00000 n 0000548996 00000 n 0000549040 00000 n 0000549084 00000 n 0000549128 00000 n 0000549172 00000 n 0000549216 00000 n 0000549260 00000 n 0000549304 00000 n 0000549348 00000 n 0000549392 00000 n 0000549436 00000 n 0000549480 00000 n 0000549524 00000 n 0000549568 00000 n 0000549611 00000 n 0000549654 00000 n 0000549697 00000 n 0000549740 00000 n 0000549783 00000 n 0000549826 00000 n 0000549869 00000 n 0000549912 00000 n 0000549956 00000 n 0000550000 00000 n 0000550043 00000 n 0000550086 00000 n 0000550129 00000 n 0000550172 00000 n 0000550215 00000 n 0000550258 00000 n 0000550301 00000 n 0000550344 00000 n 0000550387 00000 n 0000550430 00000 n 0000550473 00000 n 0000550516 00000 n 0000550559 00000 n 0000550602 00000 n 0000550645 00000 n 0000550688 00000 n 0000550731 00000 n 0000550774 00000 n 0000550817 00000 n 0000550860 00000 n 0000550903 00000 n 0000550946 00000 n 0000550989 00000 n 0000551032 00000 n 0000551075 00000 n 0000551118 00000 n 0000551161 00000 n 0000551204 00000 n 0000551247 00000 n 0000551290 00000 n 0000551333 00000 n 0000551376 00000 n 0000551419 00000 n 0000551462 00000 n 0000551505 00000 n 0000551548 00000 n 0000551591 00000 n 0000551634 00000 n 0000551677 00000 n 0000551720 00000 n 0000551763 00000 n 0000551806 00000 n 0000551849 00000 n 0000551892 00000 n 0000551935 00000 n 0000551978 00000 n 0000552021 00000 n 0000552064 00000 n 0000552107 00000 n 0000552150 00000 n 0000552193 00000 n 0000552236 00000 n 0000552279 00000 n 0000552322 00000 n 0000552365 00000 n 0000552408 00000 n 0000552451 00000 n 0000552494 00000 n 0000552537 00000 n 0000552580 00000 n 0000552623 00000 n 0000552666 00000 n 0000552709 00000 n 0000552752 00000 n 0000552795 00000 n 0000552838 00000 n 0000552881 00000 n 0000552924 00000 n 0000552967 00000 n 0000553010 00000 n 0000553053 00000 n 0000553096 00000 n 0000553139 00000 n 0000553182 00000 n 0000553225 00000 n 0000553269 00000 n 0000553313 00000 n 0000553357 00000 n 0000553401 00000 n 0000553445 00000 n 0000553489 00000 n 0000553533 00000 n 0000553577 00000 n 0000553621 00000 n 0000553665 00000 n 0000553709 00000 n 0000553753 00000 n 0000553797 00000 n 0000553841 00000 n 0000553885 00000 n 0000553929 00000 n 0000553973 00000 n 0000554017 00000 n 0000554061 00000 n 0000554105 00000 n 0000554149 00000 n 0000554193 00000 n 0000554237 00000 n 0000554281 00000 n 0000554325 00000 n 0000554369 00000 n 0000554413 00000 n 0000554457 00000 n 0000554501 00000 n 0000554545 00000 n 0000554589 00000 n 0000554633 00000 n 0000554677 00000 n 0000554721 00000 n 0000554765 00000 n 0000554809 00000 n 0000554853 00000 n 0000554897 00000 n 0000554941 00000 n 0000554985 00000 n 0000555029 00000 n 0000555072 00000 n 0000555115 00000 n 0000555158 00000 n 0000555201 00000 n 0000555244 00000 n 0000558954 00000 n 0000558997 00000 n 0000559041 00000 n 0000559085 00000 n 0000559128 00000 n 0000559171 00000 n 0000559214 00000 n 0000559257 00000 n 0000559300 00000 n 0000559343 00000 n 0000559386 00000 n 0000559429 00000 n 0000559472 00000 n 0000559515 00000 n 0000559558 00000 n 0000559601 00000 n 0000559644 00000 n 0000559687 00000 n 0000559730 00000 n 0000559773 00000 n 0000559816 00000 n 0000559859 00000 n 0000559902 00000 n 0000559945 00000 n 0000559988 00000 n 0000560031 00000 n 0000560075 00000 n 0000560119 00000 n 0000560163 00000 n 0000560207 00000 n 0000560251 00000 n 0000560295 00000 n 0000560339 00000 n 0000560383 00000 n 0000560427 00000 n 0000560471 00000 n 0000560515 00000 n 0000560559 00000 n 0000560603 00000 n 0000560647 00000 n 0000560691 00000 n 0000560735 00000 n 0000560778 00000 n 0000560821 00000 n 0000560864 00000 n 0000560907 00000 n 0000560951 00000 n 0000560995 00000 n 0000561038 00000 n 0000561081 00000 n 0000561124 00000 n 0000561168 00000 n 0000561212 00000 n 0000561256 00000 n 0000561299 00000 n 0000561342 00000 n 0000561385 00000 n 0000561428 00000 n 0000561471 00000 n 0000561514 00000 n 0000561557 00000 n 0000561600 00000 n 0000561643 00000 n 0000561686 00000 n 0000561729 00000 n 0000561772 00000 n 0000561815 00000 n 0000561858 00000 n 0000561901 00000 n 0000561944 00000 n 0000561987 00000 n 0000562031 00000 n 0000562075 00000 n 0000562119 00000 n 0000562163 00000 n 0000562207 00000 n 0000562251 00000 n 0000562295 00000 n 0000562339 00000 n 0000562383 00000 n 0000562427 00000 n 0000562471 00000 n 0000562515 00000 n 0000562559 00000 n 0000562603 00000 n 0000562647 00000 n 0000562691 00000 n 0000562735 00000 n 0000562779 00000 n 0000562823 00000 n 0000562867 00000 n 0000562911 00000 n 0000562955 00000 n 0000562999 00000 n 0000563043 00000 n 0000563086 00000 n 0000563130 00000 n 0000563173 00000 n 0000563217 00000 n 0000563261 00000 n 0000563305 00000 n 0000563349 00000 n 0000563393 00000 n 0000563437 00000 n 0000563481 00000 n 0000563525 00000 n 0000563569 00000 n 0000563613 00000 n 0000563657 00000 n 0000563701 00000 n 0000563745 00000 n 0000563789 00000 n 0000563832 00000 n 0000563875 00000 n 0000563918 00000 n 0000563961 00000 n 0000564005 00000 n 0000564048 00000 n 0000564091 00000 n 0000564134 00000 n 0000564177 00000 n 0000564221 00000 n 0000564264 00000 n 0000564307 00000 n 0000564350 00000 n 0000564394 00000 n 0000564437 00000 n 0000564480 00000 n 0000564524 00000 n 0000564567 00000 n 0000564610 00000 n 0000564653 00000 n 0000564697 00000 n 0000564740 00000 n 0000564783 00000 n 0000564826 00000 n 0000564869 00000 n 0000564912 00000 n 0000564955 00000 n 0000564998 00000 n 0000565042 00000 n 0000565086 00000 n 0000565129 00000 n 0000565173 00000 n 0000565217 00000 n 0000565261 00000 n 0000565304 00000 n 0000565348 00000 n 0000565392 00000 n 0000565436 00000 n 0000565479 00000 n 0000565522 00000 n 0000565565 00000 n 0000565608 00000 n 0000565651 00000 n 0000565695 00000 n 0000565739 00000 n 0000565783 00000 n 0000565827 00000 n 0000565871 00000 n 0000565914 00000 n 0000565957 00000 n 0000566001 00000 n 0000566045 00000 n 0000566089 00000 n 0000566133 00000 n 0000566177 00000 n 0000566221 00000 n 0000566265 00000 n 0000566309 00000 n 0000566353 00000 n 0000566397 00000 n 0000566440 00000 n 0000566484 00000 n 0000566528 00000 n 0000566572 00000 n 0000566616 00000 n 0000566660 00000 n 0000566704 00000 n 0000566747 00000 n 0000566790 00000 n 0000566833 00000 n 0000566876 00000 n 0000566920 00000 n 0000566964 00000 n 0000567007 00000 n 0000567050 00000 n 0000567093 00000 n 0000567136 00000 n 0000567179 00000 n 0000567222 00000 n 0000567265 00000 n 0000567308 00000 n 0000567351 00000 n 0000567394 00000 n 0000567438 00000 n 0000567482 00000 n 0000567525 00000 n 0000567568 00000 n 0000567611 00000 n 0000567654 00000 n 0000567697 00000 n 0000567741 00000 n 0000567784 00000 n 0000567827 00000 n 0000567870 00000 n 0000567914 00000 n 0000567957 00000 n 0000568000 00000 n 0000568043 00000 n 0000568086 00000 n 0000568129 00000 n 0000568173 00000 n 0000568217 00000 n 0000568261 00000 n 0000568305 00000 n 0000568349 00000 n 0000568392 00000 n 0000568436 00000 n 0000568480 00000 n 0000568524 00000 n 0000568567 00000 n 0000568610 00000 n 0000568653 00000 n 0000568696 00000 n 0000568740 00000 n 0000568784 00000 n 0000568827 00000 n 0000568871 00000 n 0000568915 00000 n 0000568958 00000 n 0000569001 00000 n 0000569045 00000 n 0000569088 00000 n 0000569131 00000 n 0000569174 00000 n 0000569217 00000 n 0000569261 00000 n 0000569304 00000 n 0000569347 00000 n 0000569390 00000 n 0000569433 00000 n 0000569477 00000 n 0000569521 00000 n 0000569565 00000 n 0000569609 00000 n 0000569653 00000 n 0000569697 00000 n 0000569741 00000 n 0000569785 00000 n 0000569829 00000 n 0000569873 00000 n 0000569917 00000 n 0000569961 00000 n 0000570004 00000 n 0000570047 00000 n 0000570090 00000 n 0000570133 00000 n 0000570176 00000 n 0000570220 00000 n 0000570264 00000 n 0000570308 00000 n 0000570352 00000 n 0000570396 00000 n 0000570440 00000 n 0000570484 00000 n 0000570528 00000 n 0000570572 00000 n 0000570615 00000 n 0000570658 00000 n 0000570702 00000 n 0000570746 00000 n 0000570790 00000 n 0000570834 00000 n 0000570877 00000 n 0000570921 00000 n 0000570964 00000 n 0000571007 00000 n 0000571050 00000 n 0000571094 00000 n 0000571138 00000 n 0000571182 00000 n 0000571226 00000 n 0000571270 00000 n 0000571314 00000 n 0000571358 00000 n 0000571402 00000 n 0000571445 00000 n 0000571489 00000 n 0000571533 00000 n 0000571577 00000 n 0000571621 00000 n 0000571665 00000 n 0000571709 00000 n 0000571753 00000 n 0000571797 00000 n 0000571841 00000 n 0000571885 00000 n 0000571929 00000 n 0000571972 00000 n 0000572015 00000 n 0000572058 00000 n 0000572101 00000 n 0000572144 00000 n 0000572187 00000 n 0000572230 00000 n 0000572273 00000 n 0000575583 00000 n 0000575627 00000 n 0000575671 00000 n 0000575715 00000 n 0000575759 00000 n 0000575803 00000 n 0000575847 00000 n 0000575891 00000 n 0000575935 00000 n 0000575979 00000 n 0000576023 00000 n 0000576067 00000 n 0000576111 00000 n 0000576155 00000 n 0000576199 00000 n 0000576243 00000 n 0000576287 00000 n 0000576331 00000 n 0000576375 00000 n 0000576419 00000 n 0000576463 00000 n 0000576507 00000 n 0000576551 00000 n 0000576595 00000 n 0000576639 00000 n 0000576683 00000 n 0000576727 00000 n 0000576771 00000 n 0000576815 00000 n 0000576859 00000 n 0000576903 00000 n 0000576947 00000 n 0000576991 00000 n 0000577035 00000 n 0000577079 00000 n 0000577123 00000 n 0000577167 00000 n 0000577211 00000 n 0000577255 00000 n 0000577299 00000 n 0000577343 00000 n 0000577387 00000 n 0000577431 00000 n 0000577475 00000 n 0000577518 00000 n 0000577562 00000 n 0000577606 00000 n 0000577650 00000 n 0000577694 00000 n 0000577738 00000 n 0000577782 00000 n 0000577826 00000 n 0000577870 00000 n 0000577914 00000 n 0000577958 00000 n 0000578002 00000 n 0000578046 00000 n 0000578090 00000 n 0000578134 00000 n 0000578178 00000 n 0000578222 00000 n 0000578266 00000 n 0000578310 00000 n 0000578354 00000 n 0000578398 00000 n 0000578442 00000 n 0000578485 00000 n 0000578528 00000 n 0000578571 00000 n 0000578614 00000 n 0000578657 00000 n 0000578701 00000 n 0000578744 00000 n 0000578787 00000 n 0000578830 00000 n 0000578873 00000 n 0000578916 00000 n 0000578959 00000 n 0000579002 00000 n 0000579045 00000 n 0000579088 00000 n 0000579132 00000 n 0000579176 00000 n 0000579220 00000 n 0000579264 00000 n 0000579308 00000 n 0000579352 00000 n 0000579395 00000 n 0000579438 00000 n 0000579482 00000 n 0000579526 00000 n 0000579569 00000 n 0000579613 00000 n 0000579656 00000 n 0000579699 00000 n 0000579743 00000 n 0000579786 00000 n 0000579829 00000 n 0000579873 00000 n 0000579917 00000 n 0000579960 00000 n 0000580003 00000 n 0000580046 00000 n 0000580090 00000 n 0000580134 00000 n 0000580177 00000 n 0000580220 00000 n 0000580263 00000 n 0000580307 00000 n 0000580350 00000 n 0000580394 00000 n 0000580437 00000 n 0000580480 00000 n 0000580524 00000 n 0000580567 00000 n 0000580610 00000 n 0000580653 00000 n 0000580696 00000 n 0000580740 00000 n 0000580784 00000 n 0000580828 00000 n 0000580871 00000 n 0000580914 00000 n 0000580957 00000 n 0000581000 00000 n 0000581043 00000 n 0000581086 00000 n 0000581129 00000 n 0000581172 00000 n 0000581215 00000 n 0000581258 00000 n 0000581301 00000 n 0000581344 00000 n 0000581388 00000 n 0000581432 00000 n 0000581476 00000 n 0000581519 00000 n 0000581562 00000 n 0000581606 00000 n 0000581650 00000 n 0000581694 00000 n 0000581738 00000 n 0000581782 00000 n 0000581826 00000 n 0000581870 00000 n 0000581914 00000 n 0000581957 00000 n 0000582001 00000 n 0000582045 00000 n 0000582089 00000 n 0000582132 00000 n 0000582175 00000 n 0000582219 00000 n 0000582262 00000 n 0000582305 00000 n 0000582348 00000 n 0000582391 00000 n 0000582434 00000 n 0000582477 00000 n 0000582520 00000 n 0000582563 00000 n 0000582606 00000 n 0000582650 00000 n 0000582694 00000 n 0000582738 00000 n 0000582782 00000 n 0000582826 00000 n 0000582869 00000 n 0000582913 00000 n 0000582957 00000 n 0000583001 00000 n 0000583045 00000 n 0000583089 00000 n 0000583133 00000 n 0000583177 00000 n 0000583220 00000 n 0000583263 00000 n 0000583306 00000 n 0000583349 00000 n 0000583392 00000 n 0000583435 00000 n 0000583479 00000 n 0000583523 00000 n 0000583567 00000 n 0000583611 00000 n 0000583655 00000 n 0000583699 00000 n 0000583743 00000 n 0000583787 00000 n 0000583831 00000 n 0000583875 00000 n 0000583918 00000 n 0000583961 00000 n 0000584004 00000 n 0000584047 00000 n 0000584090 00000 n 0000584133 00000 n 0000584176 00000 n 0000584219 00000 n 0000584262 00000 n 0000584305 00000 n 0000584348 00000 n 0000584391 00000 n 0000584434 00000 n 0000584477 00000 n 0000584520 00000 n 0000584564 00000 n 0000584608 00000 n 0000584651 00000 n 0000584694 00000 n 0000587035 00000 n 0000587078 00000 n 0000587122 00000 n 0000587166 00000 n 0000587209 00000 n 0000587252 00000 n 0000587295 00000 n 0000587338 00000 n 0000587381 00000 n 0000587424 00000 n 0000587467 00000 n 0000587511 00000 n 0000587555 00000 n 0000587599 00000 n 0000587643 00000 n 0000587687 00000 n 0000587731 00000 n 0000587775 00000 n 0000587819 00000 n 0000587863 00000 n 0000587907 00000 n 0000587951 00000 n 0000587995 00000 n 0000588039 00000 n 0000588083 00000 n 0000588127 00000 n 0000588171 00000 n 0000588214 00000 n 0000588257 00000 n 0000588300 00000 n 0000588343 00000 n 0000588386 00000 n 0000588430 00000 n 0000588473 00000 n 0000588516 00000 n 0000588559 00000 n 0000588603 00000 n 0000588647 00000 n 0000588691 00000 n 0000588734 00000 n 0000588778 00000 n 0000588822 00000 n 0000588866 00000 n 0000588909 00000 n 0000588952 00000 n 0000588995 00000 n 0000589038 00000 n 0000589081 00000 n 0000589125 00000 n 0000589169 00000 n 0000589213 00000 n 0000589257 00000 n 0000589300 00000 n 0000589343 00000 n 0000589386 00000 n 0000589430 00000 n 0000589474 00000 n 0000589518 00000 n 0000589561 00000 n 0000589604 00000 n 0000589648 00000 n 0000589692 00000 n 0000589736 00000 n 0000589780 00000 n 0000589824 00000 n 0000589868 00000 n 0000589912 00000 n 0000589956 00000 n 0000590000 00000 n 0000590043 00000 n 0000590086 00000 n 0000590129 00000 n 0000590173 00000 n 0000590217 00000 n 0000590261 00000 n 0000590305 00000 n 0000590349 00000 n 0000590393 00000 n 0000590436 00000 n 0000590479 00000 n 0000590522 00000 n 0000590565 00000 n 0000590608 00000 n 0000590652 00000 n 0000590696 00000 n 0000590740 00000 n 0000590784 00000 n 0000590828 00000 n 0000590872 00000 n 0000590916 00000 n 0000590960 00000 n 0000591004 00000 n 0000591047 00000 n 0000591090 00000 n 0000591133 00000 n 0000591176 00000 n 0000591219 00000 n 0000591262 00000 n 0000591305 00000 n 0000591348 00000 n 0000591391 00000 n 0000591434 00000 n 0000591477 00000 n 0000591520 00000 n 0000591563 00000 n 0000591606 00000 n 0000591649 00000 n 0000591692 00000 n 0000591735 00000 n 0000591778 00000 n 0000591821 00000 n 0000591864 00000 n 0000591907 00000 n 0000591950 00000 n 0000591993 00000 n 0000592036 00000 n 0000592079 00000 n 0000592122 00000 n 0000592165 00000 n 0000592209 00000 n 0000592253 00000 n 0000592297 00000 n 0000592341 00000 n 0000592385 00000 n 0000592429 00000 n 0000592473 00000 n 0000592517 00000 n 0000592561 00000 n 0000592605 00000 n 0000592649 00000 n 0000592693 00000 n 0000592737 00000 n 0000592781 00000 n 0000592825 00000 n 0000592869 00000 n 0000592913 00000 n 0000592957 00000 n 0000593001 00000 n 0000593045 00000 n 0000593089 00000 n 0000593133 00000 n 0000593177 00000 n 0000593221 00000 n 0000593265 00000 n 0000593309 00000 n 0000593353 00000 n 0000593397 00000 n 0000593441 00000 n 0000593485 00000 n 0000593529 00000 n 0000593573 00000 n 0000593617 00000 n 0000593661 00000 n 0000593705 00000 n 0000593749 00000 n 0000593793 00000 n 0000593837 00000 n 0000593881 00000 n 0000593925 00000 n 0000593969 00000 n 0000594013 00000 n 0000594056 00000 n 0000594099 00000 n 0000594142 00000 n 0000594186 00000 n 0000594229 00000 n 0000594272 00000 n 0000594315 00000 n 0000594359 00000 n 0000594402 00000 n 0000594446 00000 n 0000594490 00000 n 0000594534 00000 n 0000594577 00000 n 0000594620 00000 n 0000594663 00000 n 0000594706 00000 n 0000594749 00000 n 0000594792 00000 n 0000594835 00000 n 0000594878 00000 n 0000594922 00000 n 0000594966 00000 n 0000595010 00000 n 0000595054 00000 n 0000595097 00000 n 0000595141 00000 n 0000595185 00000 n 0000595229 00000 n 0000595273 00000 n 0000595317 00000 n 0000595361 00000 n 0000595405 00000 n 0000595449 00000 n 0000595492 00000 n 0000595535 00000 n 0000595578 00000 n 0000595621 00000 n 0000595664 00000 n 0000595707 00000 n 0000595750 00000 n 0000595794 00000 n 0000595838 00000 n 0000595882 00000 n 0000595926 00000 n 0000595970 00000 n 0000596014 00000 n 0000596057 00000 n 0000596101 00000 n 0000596144 00000 n 0000596187 00000 n 0000596230 00000 n 0000596274 00000 n 0000596318 00000 n 0000596361 00000 n 0000596404 00000 n 0000596447 00000 n 0000596491 00000 n 0000596535 00000 n 0000596579 00000 n 0000596623 00000 n 0000596667 00000 n 0000596711 00000 n 0000596755 00000 n 0000596799 00000 n 0000596842 00000 n 0000596885 00000 n 0000596928 00000 n 0000596972 00000 n 0000597016 00000 n 0000597060 00000 n 0000597103 00000 n 0000597146 00000 n 0000597189 00000 n 0000597232 00000 n 0000597275 00000 n 0000597318 00000 n 0000597362 00000 n 0000597406 00000 n 0000597450 00000 n 0000597494 00000 n 0000597538 00000 n 0000597582 00000 n 0000597626 00000 n 0000597669 00000 n 0000597712 00000 n 0000597755 00000 n 0000597798 00000 n 0000597841 00000 n 0000597885 00000 n 0000597929 00000 n 0000597973 00000 n 0000598017 00000 n 0000598061 00000 n 0000598105 00000 n 0000598149 00000 n 0000598193 00000 n 0000598237 00000 n 0000598281 00000 n 0000598325 00000 n 0000598369 00000 n 0000598413 00000 n 0000598457 00000 n 0000598500 00000 n 0000598543 00000 n 0000598586 00000 n 0000598630 00000 n 0000598674 00000 n 0000598717 00000 n 0000598760 00000 n 0000598803 00000 n 0000598846 00000 n 0000598889 00000 n 0000598932 00000 n 0000598975 00000 n 0000599018 00000 n 0000599061 00000 n 0000599104 00000 n 0000599147 00000 n 0000599190 00000 n 0000599234 00000 n 0000599278 00000 n 0000599321 00000 n 0000599364 00000 n 0000599407 00000 n 0000599450 00000 n 0000599493 00000 n 0000599536 00000 n 0000599579 00000 n 0000599622 00000 n 0000599666 00000 n 0000599710 00000 n 0000599754 00000 n 0000599798 00000 n 0000599842 00000 n 0000599886 00000 n 0000599929 00000 n 0000599973 00000 n 0000600017 00000 n 0000600061 00000 n 0000600104 00000 n 0000600147 00000 n 0000600190 00000 n 0000600233 00000 n 0000600276 00000 n 0000600319 00000 n 0000600362 00000 n 0000600405 00000 n 0000600449 00000 n 0000600493 00000 n 0000600537 00000 n 0000600581 00000 n 0000600624 00000 n 0000600668 00000 n 0000600711 00000 n 0000600755 00000 n 0000600799 00000 n 0000600843 00000 n 0000600886 00000 n 0000600929 00000 n 0000600972 00000 n 0000601015 00000 n 0000601058 00000 n 0000601101 00000 n 0000601144 00000 n 0000601188 00000 n 0000601232 00000 n 0000601276 00000 n 0000601320 00000 n 0000601364 00000 n 0000601407 00000 n 0000601450 00000 n 0000601493 00000 n 0000601536 00000 n 0000601579 00000 n 0000601622 00000 n 0000601665 00000 n 0000601708 00000 n 0000601751 00000 n 0000601794 00000 n 0000601837 00000 n 0000601880 00000 n 0000601923 00000 n 0000601967 00000 n 0000602011 00000 n 0000602055 00000 n 0000602099 00000 n 0000602143 00000 n 0000602187 00000 n 0000602231 00000 n 0000602275 00000 n 0000602319 00000 n 0000602363 00000 n 0000602407 00000 n 0000602451 00000 n 0000602495 00000 n 0000602538 00000 n 0000602581 00000 n 0000602624 00000 n 0000602667 00000 n 0000602710 00000 n 0000606561 00000 n 0000606605 00000 n 0000606649 00000 n 0000606693 00000 n 0000606736 00000 n 0000606779 00000 n 0000606823 00000 n 0000606866 00000 n 0000606909 00000 n 0000606952 00000 n 0000606996 00000 n 0000607040 00000 n 0000607084 00000 n 0000607127 00000 n 0000607170 00000 n 0000607213 00000 n 0000607256 00000 n 0000607299 00000 n 0000607342 00000 n 0000607385 00000 n 0000607429 00000 n 0000607472 00000 n 0000607515 00000 n 0000607558 00000 n 0000607601 00000 n 0000607644 00000 n 0000607687 00000 n 0000607730 00000 n 0000607773 00000 n 0000607816 00000 n 0000607859 00000 n 0000607902 00000 n 0000607945 00000 n 0000607989 00000 n 0000608033 00000 n 0000608076 00000 n 0000608119 00000 n 0000608162 00000 n 0000608205 00000 n 0000608248 00000 n 0000608291 00000 n 0000608334 00000 n 0000608377 00000 n 0000608420 00000 n 0000608463 00000 n 0000608506 00000 n 0000608549 00000 n 0000608592 00000 n 0000608636 00000 n 0000608680 00000 n 0000608723 00000 n 0000608766 00000 n 0000608809 00000 n 0000608852 00000 n 0000608895 00000 n 0000608938 00000 n 0000608981 00000 n 0000609025 00000 n 0000609068 00000 n 0000609111 00000 n 0000609154 00000 n 0000609197 00000 n 0000609240 00000 n 0000609283 00000 n 0000609326 00000 n 0000609369 00000 n 0000609412 00000 n 0000609455 00000 n 0000609499 00000 n 0000609543 00000 n 0000609586 00000 n 0000609629 00000 n 0000609672 00000 n 0000609715 00000 n 0000609758 00000 n 0000609801 00000 n 0000609844 00000 n 0000609887 00000 n 0000609931 00000 n 0000609974 00000 n 0000610017 00000 n 0000610060 00000 n 0000610103 00000 n 0000610146 00000 n 0000610189 00000 n 0000610232 00000 n 0000610275 00000 n 0000610318 00000 n 0000610361 00000 n 0000610404 00000 n 0000610447 00000 n 0000610490 00000 n 0000610534 00000 n 0000610578 00000 n 0000610622 00000 n 0000610666 00000 n 0000610710 00000 n 0000610754 00000 n 0000610797 00000 n 0000610840 00000 n 0000610883 00000 n 0000610926 00000 n 0000610969 00000 n 0000611012 00000 n 0000611055 00000 n 0000611098 00000 n 0000611141 00000 n 0000611185 00000 n 0000611229 00000 n 0000611272 00000 n 0000611315 00000 n 0000611358 00000 n 0000611402 00000 n 0000611446 00000 n 0000611490 00000 n 0000611534 00000 n 0000611578 00000 n 0000611622 00000 n 0000611666 00000 n 0000611710 00000 n 0000611754 00000 n 0000611797 00000 n 0000611840 00000 n 0000611883 00000 n 0000611926 00000 n 0000611969 00000 n 0000612012 00000 n 0000612055 00000 n 0000612098 00000 n 0000612141 00000 n 0000612184 00000 n 0000612227 00000 n 0000612270 00000 n 0000612313 00000 n 0000612356 00000 n 0000612399 00000 n 0000612442 00000 n 0000612485 00000 n 0000612528 00000 n 0000612571 00000 n 0000612614 00000 n 0000612658 00000 n 0000612702 00000 n 0000612746 00000 n 0000612789 00000 n 0000612832 00000 n 0000612875 00000 n 0000612918 00000 n 0000612961 00000 n 0000613004 00000 n 0000613047 00000 n 0000613090 00000 n 0000613134 00000 n 0000613178 00000 n 0000613222 00000 n 0000613265 00000 n 0000613308 00000 n 0000613351 00000 n 0000613394 00000 n 0000613437 00000 n 0000613480 00000 n 0000613523 00000 n 0000613566 00000 n 0000613610 00000 n 0000613654 00000 n 0000613697 00000 n 0000613740 00000 n 0000613783 00000 n 0000613827 00000 n 0000613871 00000 n 0000613915 00000 n 0000613959 00000 n 0000614003 00000 n 0000614047 00000 n 0000614091 00000 n 0000614135 00000 n 0000614179 00000 n 0000614223 00000 n 0000614267 00000 n 0000614310 00000 n 0000614353 00000 n 0000614396 00000 n 0000614440 00000 n 0000614484 00000 n 0000614528 00000 n 0000614572 00000 n 0000614616 00000 n 0000614660 00000 n 0000614704 00000 n 0000614748 00000 n 0000614792 00000 n 0000614836 00000 n 0000614880 00000 n 0000614924 00000 n 0000614968 00000 n 0000615012 00000 n 0000615055 00000 n 0000615099 00000 n 0000615142 00000 n 0000615185 00000 n 0000615228 00000 n 0000615272 00000 n 0000615315 00000 n 0000615358 00000 n 0000615401 00000 n 0000615444 00000 n 0000615487 00000 n 0000615530 00000 n 0000615574 00000 n 0000615618 00000 n 0000615662 00000 n 0000615706 00000 n 0000615750 00000 n 0000615794 00000 n 0000615838 00000 n 0000615882 00000 n 0000615926 00000 n 0000615970 00000 n 0000616014 00000 n 0000616058 00000 n 0000616102 00000 n 0000616146 00000 n 0000616190 00000 n 0000616234 00000 n 0000616278 00000 n 0000616322 00000 n 0000616366 00000 n 0000616410 00000 n 0000616454 00000 n 0000616498 00000 n 0000616542 00000 n 0000616586 00000 n 0000616630 00000 n 0000616674 00000 n 0000616718 00000 n 0000616762 00000 n 0000616806 00000 n 0000616850 00000 n 0000616894 00000 n 0000616938 00000 n 0000616982 00000 n 0000617026 00000 n 0000617070 00000 n 0000617114 00000 n 0000617158 00000 n 0000617201 00000 n 0000617245 00000 n 0000617289 00000 n 0000617333 00000 n 0000617377 00000 n 0000617421 00000 n 0000617465 00000 n 0000617509 00000 n 0000617553 00000 n 0000617597 00000 n 0000617641 00000 n 0000617685 00000 n 0000617729 00000 n 0000617772 00000 n 0000617816 00000 n 0000617860 00000 n 0000617904 00000 n 0000617948 00000 n 0000617992 00000 n 0000618036 00000 n 0000618080 00000 n 0000618124 00000 n 0000618168 00000 n 0000618211 00000 n 0000618254 00000 n 0000618297 00000 n 0000618340 00000 n 0000618384 00000 n 0000618428 00000 n 0000618472 00000 n 0000618516 00000 n 0000618560 00000 n 0000618604 00000 n 0000618648 00000 n 0000618692 00000 n 0000618736 00000 n 0000618780 00000 n 0000618824 00000 n 0000618868 00000 n 0000618912 00000 n 0000618956 00000 n 0000619000 00000 n 0000619044 00000 n 0000619088 00000 n 0000619132 00000 n 0000619176 00000 n 0000619219 00000 n 0000619262 00000 n 0000619305 00000 n 0000619348 00000 n 0000619392 00000 n 0000619436 00000 n 0000619480 00000 n 0000619524 00000 n 0000619567 00000 n 0000619610 00000 n 0000619653 00000 n 0000619696 00000 n 0000619739 00000 n 0000619782 00000 n 0000619825 00000 n 0000619868 00000 n 0000619911 00000 n 0000619954 00000 n 0000619997 00000 n 0000620040 00000 n 0000620083 00000 n 0000620126 00000 n 0000620169 00000 n 0000620212 00000 n 0000620256 00000 n 0000620300 00000 n 0000620344 00000 n 0000620388 00000 n 0000620432 00000 n 0000620476 00000 n 0000620520 00000 n 0000620563 00000 n 0000620606 00000 n 0000620649 00000 n 0000620693 00000 n 0000620737 00000 n 0000620780 00000 n 0000620823 00000 n 0000620866 00000 n 0000620910 00000 n 0000620953 00000 n 0000620996 00000 n 0000621039 00000 n 0000621082 00000 n 0000621125 00000 n 0000621168 00000 n 0000624779 00000 n 0000624822 00000 n 0000624865 00000 n 0000624908 00000 n 0000624951 00000 n 0000624994 00000 n 0000625037 00000 n 0000625080 00000 n 0000625123 00000 n 0000625166 00000 n 0000625209 00000 n 0000625252 00000 n 0000625295 00000 n 0000625338 00000 n 0000625381 00000 n 0000625424 00000 n 0000625467 00000 n 0000625510 00000 n 0000625553 00000 n 0000625596 00000 n 0000625639 00000 n 0000625682 00000 n 0000625726 00000 n 0000625770 00000 n 0000625813 00000 n 0000625856 00000 n 0000625899 00000 n 0000625942 00000 n 0000625985 00000 n 0000626028 00000 n 0000626071 00000 n 0000626114 00000 n 0000626157 00000 n 0000626201 00000 n 0000626244 00000 n 0000626287 00000 n 0000626330 00000 n 0000626373 00000 n 0000626416 00000 n 0000626459 00000 n 0000626502 00000 n 0000626545 00000 n 0000626588 00000 n 0000626631 00000 n 0000626674 00000 n 0000626717 00000 n 0000626761 00000 n 0000626804 00000 n 0000626847 00000 n 0000626890 00000 n 0000626933 00000 n 0000626976 00000 n 0000627019 00000 n 0000627063 00000 n 0000627107 00000 n 0000627151 00000 n 0000627195 00000 n 0000627238 00000 n 0000627281 00000 n 0000627325 00000 n 0000627369 00000 n 0000627412 00000 n 0000627455 00000 n 0000627498 00000 n 0000627541 00000 n 0000627584 00000 n 0000627627 00000 n 0000627670 00000 n 0000627713 00000 n 0000627756 00000 n 0000627799 00000 n 0000627842 00000 n 0000627885 00000 n 0000627928 00000 n 0000627971 00000 n 0000628014 00000 n 0000628057 00000 n 0000628100 00000 n 0000628143 00000 n 0000628186 00000 n 0000628229 00000 n 0000628272 00000 n 0000628315 00000 n 0000628358 00000 n 0000628401 00000 n 0000628444 00000 n 0000628487 00000 n 0000628530 00000 n 0000628573 00000 n 0000628617 00000 n 0000628661 00000 n 0000628704 00000 n 0000628747 00000 n 0000628790 00000 n 0000628833 00000 n 0000628876 00000 n 0000628919 00000 n 0000628962 00000 n 0000629005 00000 n 0000629048 00000 n 0000629091 00000 n 0000629134 00000 n 0000629177 00000 n 0000629221 00000 n 0000629264 00000 n 0000629308 00000 n 0000629351 00000 n 0000629394 00000 n 0000629437 00000 n 0000629480 00000 n 0000629523 00000 n 0000629566 00000 n 0000629610 00000 n 0000629653 00000 n 0000629696 00000 n 0000629739 00000 n 0000629782 00000 n 0000629825 00000 n 0000629868 00000 n 0000629911 00000 n 0000629955 00000 n 0000629998 00000 n 0000630041 00000 n 0000630084 00000 n 0000630127 00000 n 0000630170 00000 n 0000630213 00000 n 0000630256 00000 n 0000630299 00000 n 0000630342 00000 n 0000630385 00000 n 0000630429 00000 n 0000630472 00000 n 0000630515 00000 n 0000630558 00000 n 0000630601 00000 n 0000630644 00000 n 0000630687 00000 n 0000630730 00000 n 0000630773 00000 n 0000630816 00000 n 0000630859 00000 n 0000630902 00000 n 0000630945 00000 n 0000630988 00000 n 0000631032 00000 n 0000631076 00000 n 0000631119 00000 n 0000631162 00000 n 0000631205 00000 n 0000632946 00000 n 0000632989 00000 n 0000633033 00000 n 0000633077 00000 n 0000633120 00000 n 0000633164 00000 n 0000633208 00000 n 0000633252 00000 n 0000633296 00000 n 0000633339 00000 n 0000633382 00000 n 0000633426 00000 n 0000633469 00000 n 0000633512 00000 n 0000633555 00000 n 0000633598 00000 n 0000633641 00000 n 0000633684 00000 n 0000633727 00000 n 0000633771 00000 n 0000633814 00000 n 0000633857 00000 n 0000633901 00000 n 0000633945 00000 n 0000633989 00000 n 0000634033 00000 n 0000634077 00000 n 0000634121 00000 n 0000634165 00000 n 0000634209 00000 n 0000634253 00000 n 0000634297 00000 n 0000634341 00000 n 0000634385 00000 n 0000634429 00000 n 0000634473 00000 n 0000634517 00000 n 0000634561 00000 n 0000634605 00000 n 0000634649 00000 n 0000634693 00000 n 0000634737 00000 n 0000634781 00000 n 0000634825 00000 n 0000634869 00000 n 0000634913 00000 n 0000634956 00000 n 0000634999 00000 n 0000635042 00000 n 0000635085 00000 n 0000635128 00000 n 0000635171 00000 n 0000635214 00000 n 0000635257 00000 n 0000635300 00000 n 0000635343 00000 n 0000635386 00000 n 0000635429 00000 n 0000635472 00000 n 0000635515 00000 n 0000635558 00000 n 0000635601 00000 n 0000635644 00000 n 0000635687 00000 n 0000635731 00000 n 0000635775 00000 n 0000635819 00000 n 0000635863 00000 n 0000635906 00000 n 0000635950 00000 n 0000635994 00000 n 0000636038 00000 n 0000636082 00000 n 0000636126 00000 n 0000636170 00000 n 0000636214 00000 n 0000636258 00000 n 0000636302 00000 n 0000636346 00000 n 0000636390 00000 n 0000636434 00000 n 0000636478 00000 n 0000636522 00000 n 0000636566 00000 n 0000636610 00000 n 0000636653 00000 n 0000636696 00000 n 0000636739 00000 n 0000636782 00000 n 0000636826 00000 n 0000636870 00000 n 0000636913 00000 n 0000636956 00000 n 0000636999 00000 n 0000637042 00000 n 0000637086 00000 n 0000637129 00000 n 0000637172 00000 n 0000637215 00000 n 0000637258 00000 n 0000637301 00000 n 0000637344 00000 n 0000637387 00000 n 0000637430 00000 n 0000637473 00000 n 0000637516 00000 n 0000637559 00000 n 0000637602 00000 n 0000637645 00000 n 0000637688 00000 n 0000637731 00000 n 0000637774 00000 n 0000637817 00000 n 0000637860 00000 n 0000637903 00000 n 0000637946 00000 n 0000637989 00000 n 0000638032 00000 n 0000638075 00000 n 0000638119 00000 n 0000638162 00000 n 0000638205 00000 n 0000638248 00000 n 0000638291 00000 n 0000638334 00000 n 0000638377 00000 n 0000638420 00000 n 0000638463 00000 n 0000638506 00000 n 0000638549 00000 n 0000638592 00000 n 0000638635 00000 n 0000638678 00000 n 0000638721 00000 n 0000638764 00000 n 0000638807 00000 n 0000638850 00000 n 0000638893 00000 n 0000638936 00000 n 0000638979 00000 n 0000639022 00000 n 0000639065 00000 n 0000639108 00000 n 0000639151 00000 n 0000639194 00000 n 0000639237 00000 n 0000639280 00000 n 0000639324 00000 n 0000639367 00000 n 0000639410 00000 n 0000639453 00000 n 0000639496 00000 n 0000639539 00000 n 0000639582 00000 n 0000639625 00000 n 0000639668 00000 n 0000639711 00000 n 0000639754 00000 n 0000639798 00000 n 0000639842 00000 n 0000639886 00000 n 0000639930 00000 n 0000639974 00000 n 0000640018 00000 n 0000640062 00000 n 0000640106 00000 n 0000640149 00000 n 0000640192 00000 n 0000640235 00000 n 0000640278 00000 n 0000640322 00000 n 0000640365 00000 n 0000640408 00000 n 0000640452 00000 n 0000640495 00000 n 0000640538 00000 n 0000640581 00000 n 0000640624 00000 n 0000640668 00000 n 0000640712 00000 n 0000640756 00000 n 0000640799 00000 n 0000640842 00000 n 0000640885 00000 n 0000640929 00000 n 0000640973 00000 n 0000641017 00000 n 0000641061 00000 n 0000641105 00000 n 0000641149 00000 n 0000641192 00000 n 0000641235 00000 n 0000641279 00000 n 0000641323 00000 n 0000641367 00000 n 0000641411 00000 n 0000641455 00000 n 0000641499 00000 n 0000641543 00000 n 0000641587 00000 n 0000641631 00000 n 0000641675 00000 n 0000641719 00000 n 0000641763 00000 n 0000641807 00000 n 0000641851 00000 n 0000641895 00000 n 0000641939 00000 n 0000641982 00000 n 0000642025 00000 n 0000642068 00000 n 0000642111 00000 n 0000642154 00000 n 0000642198 00000 n 0000642242 00000 n 0000642286 00000 n 0000642330 00000 n 0000642374 00000 n 0000642418 00000 n 0000642462 00000 n 0000642505 00000 n 0000642549 00000 n 0000642593 00000 n 0000642637 00000 n 0000642681 00000 n 0000642725 00000 n 0000642769 00000 n 0000642813 00000 n 0000642857 00000 n 0000642901 00000 n 0000642945 00000 n 0000642988 00000 n 0000643031 00000 n 0000643075 00000 n 0000643118 00000 n 0000643161 00000 n 0000643204 00000 n 0000643248 00000 n 0000643291 00000 n 0000643335 00000 n 0000643379 00000 n 0000643422 00000 n 0000643466 00000 n 0000643510 00000 n 0000643554 00000 n 0000643598 00000 n 0000643642 00000 n 0000643686 00000 n 0000643730 00000 n 0000643774 00000 n 0000643818 00000 n 0000643862 00000 n 0000643906 00000 n 0000643950 00000 n 0000643994 00000 n 0000644038 00000 n 0000644082 00000 n 0000644126 00000 n 0000644170 00000 n 0000644214 00000 n 0000644258 00000 n 0000644302 00000 n 0000644346 00000 n 0000644390 00000 n 0000644434 00000 n 0000644478 00000 n 0000644521 00000 n 0000647432 00000 n 0000647476 00000 n 0000647520 00000 n 0000647564 00000 n 0000647608 00000 n 0000647652 00000 n 0000647696 00000 n 0000647740 00000 n 0000647784 00000 n 0000647828 00000 n 0000647872 00000 n 0000647916 00000 n 0000647960 00000 n 0000648004 00000 n 0000648048 00000 n 0000648092 00000 n 0000648135 00000 n 0000648178 00000 n 0000648221 00000 n 0000648264 00000 n 0000648307 00000 n 0000648350 00000 n 0000648393 00000 n 0000648436 00000 n 0000648479 00000 n 0000648522 00000 n 0000648565 00000 n 0000648608 00000 n 0000648651 00000 n 0000648694 00000 n 0000648738 00000 n 0000648782 00000 n 0000648826 00000 n 0000648869 00000 n 0000648913 00000 n 0000648957 00000 n 0000649001 00000 n 0000649044 00000 n 0000649087 00000 n 0000649131 00000 n 0000649174 00000 n 0000649217 00000 n 0000649261 00000 n 0000649305 00000 n 0000649348 00000 n 0000649391 00000 n 0000649434 00000 n 0000649478 00000 n 0000649521 00000 n 0000649565 00000 n 0000649609 00000 n 0000649653 00000 n 0000649697 00000 n 0000649741 00000 n 0000649785 00000 n 0000649829 00000 n 0000649873 00000 n 0000649917 00000 n 0000649961 00000 n 0000650005 00000 n 0000650049 00000 n 0000650093 00000 n 0000650136 00000 n 0000650179 00000 n 0000650222 00000 n 0000650266 00000 n 0000650309 00000 n 0000650352 00000 n 0000650396 00000 n 0000650439 00000 n 0000650482 00000 n 0000650526 00000 n 0000650570 00000 n 0000650613 00000 n 0000650656 00000 n 0000650699 00000 n 0000650743 00000 n 0000650787 00000 n 0000650830 00000 n 0000650873 00000 n 0000650917 00000 n 0000650961 00000 n 0000651005 00000 n 0000651048 00000 n 0000651091 00000 n 0000651134 00000 n 0000651178 00000 n 0000651222 00000 n 0000651266 00000 n 0000651309 00000 n 0000651352 00000 n 0000651396 00000 n 0000651440 00000 n 0000651484 00000 n 0000651528 00000 n 0000651571 00000 n 0000651614 00000 n 0000651657 00000 n 0000651701 00000 n 0000651745 00000 n 0000651789 00000 n 0000651833 00000 n 0000651877 00000 n 0000651921 00000 n 0000651964 00000 n 0000652007 00000 n 0000652050 00000 n 0000652093 00000 n 0000652136 00000 n 0000652179 00000 n 0000652222 00000 n 0000652265 00000 n 0000652309 00000 n 0000652353 00000 n 0000652397 00000 n 0000652441 00000 n 0000652485 00000 n 0000652529 00000 n 0000652573 00000 n 0000652617 00000 n 0000652661 00000 n 0000652704 00000 n 0000652748 00000 n 0000652792 00000 n 0000652836 00000 n 0000652880 00000 n 0000652923 00000 n 0000652966 00000 n 0000653010 00000 n 0000653053 00000 n 0000653096 00000 n 0000653139 00000 n 0000653182 00000 n 0000653225 00000 n 0000653268 00000 n 0000653311 00000 n 0000653354 00000 n 0000653397 00000 n 0000653440 00000 n 0000653484 00000 n 0000653528 00000 n 0000653572 00000 n 0000653615 00000 n 0000653659 00000 n 0000653703 00000 n 0000653747 00000 n 0000653790 00000 n 0000653833 00000 n 0000653876 00000 n 0000653919 00000 n 0000653962 00000 n 0000654005 00000 n 0000654049 00000 n 0000654093 00000 n 0000654136 00000 n 0000654180 00000 n 0000654224 00000 n 0000654268 00000 n 0000654312 00000 n 0000654356 00000 n 0000654400 00000 n 0000654444 00000 n 0000654488 00000 n 0000654532 00000 n 0000654576 00000 n 0000654620 00000 n 0000654664 00000 n 0000654708 00000 n 0000654752 00000 n 0000654796 00000 n 0000654840 00000 n 0000654884 00000 n 0000654928 00000 n 0000654972 00000 n 0000655016 00000 n 0000657007 00000 n 0000657051 00000 n 0000657095 00000 n 0000657139 00000 n 0000657183 00000 n 0000657227 00000 n 0000657271 00000 n 0000657315 00000 n 0000657359 00000 n 0000657403 00000 n 0000657447 00000 n 0000657491 00000 n 0000657535 00000 n 0000657579 00000 n 0000657623 00000 n 0000657667 00000 n 0000657711 00000 n 0000657755 00000 n 0000657799 00000 n 0000657843 00000 n 0000657887 00000 n 0000657931 00000 n 0000657975 00000 n 0000658019 00000 n 0000658062 00000 n 0000658105 00000 n 0000658148 00000 n 0000658191 00000 n 0000658234 00000 n 0000658278 00000 n 0000658322 00000 n 0000658365 00000 n 0000658408 00000 n 0000658451 00000 n 0000658494 00000 n 0000658538 00000 n 0000658582 00000 n 0000658626 00000 n 0000658670 00000 n 0000658713 00000 n 0000658756 00000 n 0000658799 00000 n 0000658842 00000 n 0000658885 00000 n 0000658928 00000 n 0000658972 00000 n 0000659016 00000 n 0000659060 00000 n 0000659104 00000 n 0000659148 00000 n 0000659192 00000 n 0000659235 00000 n 0000659278 00000 n 0000659321 00000 n 0000659364 00000 n 0000659407 00000 n 0000659450 00000 n 0000659493 00000 n 0000659536 00000 n 0000659579 00000 n 0000659623 00000 n 0000659667 00000 n 0000659711 00000 n 0000659755 00000 n 0000659799 00000 n 0000659843 00000 n 0000659887 00000 n 0000659931 00000 n 0000659975 00000 n 0000660019 00000 n 0000660063 00000 n 0000660107 00000 n 0000660151 00000 n 0000660195 00000 n 0000660239 00000 n 0000660282 00000 n 0000660326 00000 n 0000660370 00000 n 0000660414 00000 n 0000660458 00000 n 0000660502 00000 n 0000660546 00000 n 0000660590 00000 n 0000660634 00000 n 0000660677 00000 n 0000660720 00000 n 0000660763 00000 n 0000660806 00000 n 0000660849 00000 n 0000660892 00000 n 0000660936 00000 n 0000660980 00000 n 0000661024 00000 n 0000661068 00000 n 0000661112 00000 n 0000661156 00000 n 0000661200 00000 n 0000661244 00000 n 0000661287 00000 n 0000661330 00000 n 0000661373 00000 n 0000661416 00000 n 0000661459 00000 n 0000661502 00000 n 0000661545 00000 n 0000661588 00000 n 0000661631 00000 n 0000661674 00000 n 0000661717 00000 n 0000661760 00000 n 0000661803 00000 n 0000661846 00000 n 0000661889 00000 n 0000661932 00000 n 0000661976 00000 n 0000662020 00000 n 0000662064 00000 n 0000662108 00000 n 0000662152 00000 n 0000662196 00000 n 0000662240 00000 n 0000662284 00000 n 0000662328 00000 n 0000662372 00000 n 0000662416 00000 n 0000662460 00000 n 0000662504 00000 n 0000662548 00000 n 0000662591 00000 n 0000662635 00000 n 0000662679 00000 n 0000662723 00000 n 0000662767 00000 n 0000662811 00000 n 0000662855 00000 n 0000662899 00000 n 0000662943 00000 n 0000662987 00000 n 0000663031 00000 n 0000663074 00000 n 0000663118 00000 n 0000663162 00000 n 0000663205 00000 n 0000663249 00000 n 0000663293 00000 n 0000663337 00000 n 0000663381 00000 n 0000663425 00000 n 0000663469 00000 n 0000663513 00000 n 0000663557 00000 n 0000663601 00000 n 0000663645 00000 n 0000663689 00000 n 0000663733 00000 n 0000663776 00000 n 0000663819 00000 n 0000663862 00000 n 0000663905 00000 n 0000663948 00000 n 0000663991 00000 n 0000664034 00000 n 0000664077 00000 n 0000664120 00000 n 0000664164 00000 n 0000664207 00000 n 0000664250 00000 n 0000664293 00000 n 0000664337 00000 n 0000664380 00000 n 0000664423 00000 n 0000664467 00000 n 0000664510 00000 n 0000664553 00000 n 0000664596 00000 n 0000664639 00000 n 0000664682 00000 n 0000664725 00000 n 0000664768 00000 n 0000664811 00000 n 0000664854 00000 n 0000664897 00000 n 0000664941 00000 n 0000664984 00000 n 0000665027 00000 n 0000665070 00000 n 0000665113 00000 n 0000665157 00000 n 0000665200 00000 n 0000665243 00000 n 0000665286 00000 n 0000665330 00000 n 0000665373 00000 n 0000665417 00000 n 0000665461 00000 n 0000665505 00000 n 0000665549 00000 n 0000665593 00000 n 0000665637 00000 n 0000665681 00000 n 0000665725 00000 n 0000665769 00000 n 0000665813 00000 n 0000665857 00000 n 0000665901 00000 n 0000665944 00000 n 0000665987 00000 n 0000668298 00000 n 0000668341 00000 n 0000668384 00000 n 0000668427 00000 n 0000668470 00000 n 0000668513 00000 n 0000668556 00000 n 0000668599 00000 n 0000668642 00000 n 0000668686 00000 n 0000668730 00000 n 0000668773 00000 n 0000668816 00000 n 0000668859 00000 n 0000668902 00000 n 0000668945 00000 n 0000668988 00000 n 0000669031 00000 n 0000669074 00000 n 0000669117 00000 n 0000669161 00000 n 0000669205 00000 n 0000669249 00000 n 0000669293 00000 n 0000669337 00000 n 0000669381 00000 n 0000669425 00000 n 0000669469 00000 n 0000669513 00000 n 0000669557 00000 n 0000669601 00000 n 0000669645 00000 n 0000669689 00000 n 0000669733 00000 n 0000669777 00000 n 0000669820 00000 n 0000669864 00000 n 0000669908 00000 n 0000669952 00000 n 0000669996 00000 n 0000670039 00000 n 0000670083 00000 n 0000670127 00000 n 0000670171 00000 n 0000670215 00000 n 0000670259 00000 n 0000670303 00000 n 0000670347 00000 n 0000670391 00000 n 0000670435 00000 n 0000670479 00000 n 0000670523 00000 n 0000670567 00000 n 0000670611 00000 n 0000670655 00000 n 0000670699 00000 n 0000670743 00000 n 0000670787 00000 n 0000670831 00000 n 0000670875 00000 n 0000670919 00000 n 0000670963 00000 n 0000671007 00000 n 0000671051 00000 n 0000671095 00000 n 0000671139 00000 n 0000671183 00000 n 0000671227 00000 n 0000671271 00000 n 0000671315 00000 n 0000671358 00000 n 0000671402 00000 n 0000671445 00000 n 0000671488 00000 n 0000671531 00000 n 0000671574 00000 n 0000671617 00000 n 0000671661 00000 n 0000671705 00000 n 0000671748 00000 n 0000671791 00000 n 0000671834 00000 n 0000671878 00000 n 0000671922 00000 n 0000671966 00000 n 0000672009 00000 n 0000672053 00000 n 0000672097 00000 n 0000672141 00000 n 0000672185 00000 n 0000672229 00000 n 0000672273 00000 n 0000672317 00000 n 0000672361 00000 n 0000672404 00000 n 0000672447 00000 n 0000672490 00000 n 0000672534 00000 n 0000672578 00000 n 0000672622 00000 n 0000672665 00000 n 0000672709 00000 n 0000672752 00000 n 0000672795 00000 n 0000672839 00000 n 0000672883 00000 n 0000672926 00000 n 0000672970 00000 n 0000673014 00000 n 0000673058 00000 n 0000673102 00000 n 0000673145 00000 n 0000673188 00000 n 0000673231 00000 n 0000673274 00000 n 0000673317 00000 n 0000673360 00000 n 0000673404 00000 n 0000673448 00000 n 0000673492 00000 n 0000673536 00000 n 0000673579 00000 n 0000673622 00000 n 0000673665 00000 n 0000673708 00000 n 0000673751 00000 n 0000673794 00000 n 0000673837 00000 n 0000673880 00000 n 0000673924 00000 n 0000673968 00000 n 0000674012 00000 n 0000674056 00000 n 0000674100 00000 n 0000674144 00000 n 0000674187 00000 n 0000674230 00000 n 0000674273 00000 n 0000674317 00000 n 0000674361 00000 n 0000674405 00000 n 0000674448 00000 n 0000674491 00000 n 0000674534 00000 n 0000674578 00000 n 0000674621 00000 n 0000674664 00000 n 0000674707 00000 n 0000674750 00000 n 0000674793 00000 n 0000674837 00000 n 0000674881 00000 n 0000674925 00000 n 0000674969 00000 n 0000675013 00000 n 0000675057 00000 n 0000675101 00000 n 0000675145 00000 n 0000675188 00000 n 0000675231 00000 n 0000675274 00000 n 0000675317 00000 n 0000675360 00000 n 0000675403 00000 n 0000675446 00000 n 0000675489 00000 n 0000675532 00000 n 0000675575 00000 n 0000675618 00000 n 0000675661 00000 n 0000675704 00000 n 0000675747 00000 n 0000675790 00000 n 0000675833 00000 n 0000675876 00000 n 0000675919 00000 n 0000675962 00000 n 0000676005 00000 n 0000676048 00000 n 0000676091 00000 n 0000676134 00000 n 0000676177 00000 n 0000676220 00000 n 0000676263 00000 n 0000676306 00000 n 0000676349 00000 n 0000676392 00000 n 0000676435 00000 n 0000676479 00000 n 0000676523 00000 n 0000676567 00000 n 0000676611 00000 n 0000676655 00000 n 0000676699 00000 n 0000676743 00000 n 0000676787 00000 n 0000676831 00000 n 0000676875 00000 n 0000676919 00000 n 0000676963 00000 n 0000677007 00000 n 0000677051 00000 n 0000677095 00000 n 0000677139 00000 n 0000677183 00000 n 0000677227 00000 n 0000677271 00000 n 0000677315 00000 n 0000677359 00000 n 0000677403 00000 n 0000677447 00000 n 0000677491 00000 n 0000677535 00000 n 0000677579 00000 n 0000677623 00000 n 0000677667 00000 n 0000677711 00000 n 0000677755 00000 n 0000677799 00000 n 0000677843 00000 n 0000677887 00000 n 0000677931 00000 n 0000677975 00000 n 0000678019 00000 n 0000678063 00000 n 0000678107 00000 n 0000678151 00000 n 0000678195 00000 n 0000678239 00000 n 0000678283 00000 n 0000678327 00000 n 0000678371 00000 n 0000678415 00000 n 0000678459 00000 n 0000678503 00000 n 0000678547 00000 n 0000678591 00000 n 0000678635 00000 n 0000678679 00000 n 0000678723 00000 n 0000678767 00000 n 0000678811 00000 n 0000678855 00000 n 0000678899 00000 n 0000678943 00000 n 0000678987 00000 n 0000679031 00000 n 0000679075 00000 n 0000679119 00000 n 0000679162 00000 n 0000679206 00000 n 0000679250 00000 n 0000679293 00000 n 0000679336 00000 n 0000679379 00000 n 0000679422 00000 n 0000679466 00000 n 0000679510 00000 n 0000679554 00000 n 0000679598 00000 n 0000679641 00000 n 0000679685 00000 n 0000679729 00000 n 0000679773 00000 n 0000679817 00000 n 0000679860 00000 n 0000679903 00000 n 0000679946 00000 n 0000679989 00000 n 0000680032 00000 n 0000680075 00000 n 0000680118 00000 n 0000680161 00000 n 0000680205 00000 n 0000680248 00000 n 0000680291 00000 n 0000680334 00000 n 0000680377 00000 n 0000680421 00000 n 0000680464 00000 n 0000680508 00000 n 0000680552 00000 n 0000680596 00000 n 0000680640 00000 n 0000680684 00000 n 0000680728 00000 n 0000680772 00000 n 0000680816 00000 n 0000680860 00000 n 0000680904 00000 n 0000680948 00000 n 0000680992 00000 n 0000681036 00000 n 0000681080 00000 n 0000681124 00000 n 0000681168 00000 n 0000681212 00000 n 0000681255 00000 n 0000681298 00000 n 0000681341 00000 n 0000681385 00000 n 0000681429 00000 n 0000681473 00000 n 0000681517 00000 n 0000681561 00000 n 0000681605 00000 n 0000681649 00000 n 0000681693 00000 n 0000681737 00000 n 0000681781 00000 n 0000681825 00000 n 0000681869 00000 n 0000681913 00000 n 0000681957 00000 n 0000682001 00000 n 0000682045 00000 n 0000682088 00000 n 0000682131 00000 n 0000682174 00000 n 0000682217 00000 n 0000682260 00000 n 0000682303 00000 n 0000682346 00000 n 0000682389 00000 n 0000682432 00000 n 0000682476 00000 n 0000682519 00000 n 0000682562 00000 n 0000682605 00000 n 0000682648 00000 n 0000682691 00000 n 0000682734 00000 n 0000682777 00000 n 0000682820 00000 n 0000682863 00000 n 0000682906 00000 n 0000682949 00000 n 0000682992 00000 n 0000683035 00000 n 0000683078 00000 n 0000683121 00000 n 0000683164 00000 n 0000683207 00000 n 0000683250 00000 n 0000683293 00000 n 0000683337 00000 n 0000683381 00000 n 0000683424 00000 n 0000683467 00000 n 0000683510 00000 n 0000683553 00000 n 0000683596 00000 n 0000683640 00000 n 0000683684 00000 n 0000683728 00000 n 0000683772 00000 n 0000683816 00000 n 0000683860 00000 n 0000683904 00000 n 0000683948 00000 n 0000683991 00000 n 0000684035 00000 n 0000684079 00000 n 0000684123 00000 n 0000684167 00000 n 0000684211 00000 n 0000684254 00000 n 0000684297 00000 n 0000688218 00000 n 0000688262 00000 n 0000688305 00000 n 0000688349 00000 n 0000688393 00000 n 0000688437 00000 n 0000688481 00000 n 0000688525 00000 n 0000688569 00000 n 0000688613 00000 n 0000688657 00000 n 0000688701 00000 n 0000688745 00000 n 0000688789 00000 n 0000688833 00000 n 0000688877 00000 n 0000688921 00000 n 0000688965 00000 n 0000689008 00000 n 0000689052 00000 n 0000689096 00000 n 0000689140 00000 n 0000689184 00000 n 0000689228 00000 n 0000689271 00000 n 0000689315 00000 n 0000689359 00000 n 0000689403 00000 n 0000689447 00000 n 0000689491 00000 n 0000689535 00000 n 0000689579 00000 n 0000689623 00000 n 0000689667 00000 n 0000689710 00000 n 0000689753 00000 n 0000689796 00000 n 0000689839 00000 n 0000689882 00000 n 0000689925 00000 n 0000689968 00000 n 0000690011 00000 n 0000690054 00000 n 0000690097 00000 n 0000690140 00000 n 0000690183 00000 n 0000690226 00000 n 0000690269 00000 n 0000690312 00000 n 0000690355 00000 n 0000690398 00000 n 0000690441 00000 n 0000690484 00000 n 0000690527 00000 n 0000690571 00000 n 0000690614 00000 n 0000690657 00000 n 0000690701 00000 n 0000690744 00000 n 0000690787 00000 n 0000690830 00000 n 0000690873 00000 n 0000690917 00000 n 0000690960 00000 n 0000691004 00000 n 0000691048 00000 n 0000691092 00000 n 0000691136 00000 n 0000691179 00000 n 0000691222 00000 n 0000691265 00000 n 0000691308 00000 n 0000691352 00000 n 0000691395 00000 n 0000691438 00000 n 0000691481 00000 n 0000691524 00000 n 0000691568 00000 n 0000691611 00000 n 0000691655 00000 n 0000691699 00000 n 0000691743 00000 n 0000691787 00000 n 0000691831 00000 n 0000691875 00000 n 0000691919 00000 n 0000691963 00000 n 0000692007 00000 n 0000692051 00000 n 0000692095 00000 n 0000692138 00000 n 0000692181 00000 n 0000692224 00000 n 0000692267 00000 n 0000692310 00000 n 0000692353 00000 n 0000692396 00000 n 0000692439 00000 n 0000692482 00000 n 0000692525 00000 n 0000692568 00000 n 0000692611 00000 n 0000692655 00000 n 0000692699 00000 n 0000692742 00000 n 0000692785 00000 n 0000692828 00000 n 0000692871 00000 n 0000692914 00000 n 0000692957 00000 n 0000693000 00000 n 0000693043 00000 n 0000693086 00000 n 0000693129 00000 n 0000693172 00000 n 0000693215 00000 n 0000693258 00000 n 0000693301 00000 n 0000693344 00000 n 0000693387 00000 n 0000693430 00000 n 0000693473 00000 n 0000693516 00000 n 0000693559 00000 n 0000693602 00000 n 0000693646 00000 n 0000693690 00000 n 0000693734 00000 n 0000693778 00000 n 0000693822 00000 n 0000693866 00000 n 0000693910 00000 n 0000693954 00000 n 0000693998 00000 n 0000694042 00000 n 0000694086 00000 n 0000694130 00000 n 0000694174 00000 n 0000694218 00000 n 0000694262 00000 n 0000694305 00000 n 0000694348 00000 n 0000694391 00000 n 0000694435 00000 n 0000694478 00000 n 0000694521 00000 n 0000694564 00000 n 0000694608 00000 n 0000694651 00000 n 0000694694 00000 n 0000694737 00000 n 0000694780 00000 n 0000694823 00000 n 0000694866 00000 n 0000694909 00000 n 0000694952 00000 n 0000694995 00000 n 0000695039 00000 n 0000695083 00000 n 0000695127 00000 n 0000695171 00000 n 0000695214 00000 n 0000695258 00000 n 0000695301 00000 n 0000695344 00000 n 0000695388 00000 n 0000695432 00000 n 0000695475 00000 n 0000695518 00000 n 0000695561 00000 n 0000695604 00000 n 0000695647 00000 n 0000695690 00000 n 0000695733 00000 n 0000695776 00000 n 0000695819 00000 n 0000695862 00000 n 0000695905 00000 n 0000695948 00000 n 0000695991 00000 n 0000696035 00000 n 0000696078 00000 n 0000696121 00000 n 0000696164 00000 n 0000696207 00000 n 0000696250 00000 n 0000696293 00000 n 0000696336 00000 n 0000696379 00000 n 0000696423 00000 n 0000696467 00000 n 0000696510 00000 n 0000696553 00000 n 0000696596 00000 n 0000696639 00000 n 0000696682 00000 n 0000696725 00000 n 0000696768 00000 n 0000696811 00000 n 0000696854 00000 n 0000696897 00000 n 0000696940 00000 n 0000696983 00000 n 0000697026 00000 n 0000697069 00000 n 0000697112 00000 n 0000697155 00000 n 0000697198 00000 n 0000697241 00000 n 0000697285 00000 n 0000697329 00000 n 0000697373 00000 n 0000697417 00000 n 0000697461 00000 n 0000697505 00000 n 0000697549 00000 n 0000697593 00000 n 0000697637 00000 n 0000697680 00000 n 0000697723 00000 n 0000697766 00000 n 0000697809 00000 n 0000697852 00000 n 0000697895 00000 n 0000697938 00000 n 0000697981 00000 n 0000698025 00000 n 0000698069 00000 n 0000698112 00000 n 0000698155 00000 n 0000698198 00000 n 0000698241 00000 n 0000698284 00000 n 0000698327 00000 n 0000698370 00000 n 0000698413 00000 n 0000698456 00000 n 0000698499 00000 n 0000698543 00000 n 0000698586 00000 n 0000698630 00000 n 0000698674 00000 n 0000698717 00000 n 0000698761 00000 n 0000698805 00000 n 0000698849 00000 n 0000698893 00000 n 0000698937 00000 n 0000698980 00000 n 0000699023 00000 n 0000699066 00000 n 0000699109 00000 n 0000699153 00000 n 0000699197 00000 n 0000699241 00000 n 0000699284 00000 n 0000699327 00000 n 0000699370 00000 n 0000699413 00000 n 0000699456 00000 n 0000699499 00000 n 0000699543 00000 n 0000699587 00000 n 0000699631 00000 n 0000699675 00000 n 0000699719 00000 n 0000699763 00000 n 0000699806 00000 n 0000699849 00000 n 0000699892 00000 n 0000699935 00000 n 0000699979 00000 n 0000700023 00000 n 0000700066 00000 n 0000700109 00000 n 0000700152 00000 n 0000700195 00000 n 0000700238 00000 n 0000700281 00000 n 0000700324 00000 n 0000700367 00000 n 0000700410 00000 n 0000703471 00000 n 0000703514 00000 n 0000703557 00000 n 0000703600 00000 n 0000703643 00000 n 0000703686 00000 n 0000703730 00000 n 0000703774 00000 n 0000703817 00000 n 0000703860 00000 n 0000703903 00000 n 0000703946 00000 n 0000703990 00000 n 0000704033 00000 n 0000704076 00000 n 0000704119 00000 n 0000704162 00000 n 0000704205 00000 n 0000704248 00000 n 0000704291 00000 n 0000704334 00000 n 0000704377 00000 n 0000704421 00000 n 0000704464 00000 n 0000704507 00000 n 0000704550 00000 n 0000704593 00000 n 0000704637 00000 n 0000704681 00000 n 0000704725 00000 n 0000704769 00000 n 0000704813 00000 n 0000704857 00000 n 0000704901 00000 n 0000704944 00000 n 0000704987 00000 n 0000705030 00000 n 0000705074 00000 n 0000705117 00000 n 0000705160 00000 n 0000705203 00000 n 0000705246 00000 n 0000705289 00000 n 0000705333 00000 n 0000705377 00000 n 0000705420 00000 n 0000705463 00000 n 0000705506 00000 n 0000705549 00000 n 0000705592 00000 n 0000705635 00000 n 0000705678 00000 n 0000705721 00000 n 0000705764 00000 n 0000705807 00000 n 0000705850 00000 n 0000705893 00000 n 0000705936 00000 n 0000705979 00000 n 0000706022 00000 n 0000706065 00000 n 0000706108 00000 n 0000706151 00000 n 0000706195 00000 n 0000706239 00000 n 0000706283 00000 n 0000706327 00000 n 0000706370 00000 n 0000706413 00000 n 0000706456 00000 n 0000706500 00000 n 0000706544 00000 n 0000706587 00000 n 0000706630 00000 n 0000706673 00000 n 0000706716 00000 n 0000706759 00000 n 0000706802 00000 n 0000706846 00000 n 0000706890 00000 n 0000706934 00000 n 0000706978 00000 n 0000707022 00000 n 0000707066 00000 n 0000707110 00000 n 0000707153 00000 n 0000707197 00000 n 0000707241 00000 n 0000707285 00000 n 0000707329 00000 n 0000707372 00000 n 0000707415 00000 n 0000707458 00000 n 0000707501 00000 n 0000707544 00000 n 0000707587 00000 n 0000707631 00000 n 0000707674 00000 n 0000707718 00000 n 0000707761 00000 n 0000707805 00000 n 0000707848 00000 n 0000707891 00000 n 0000707934 00000 n 0000707978 00000 n 0000708022 00000 n 0000708066 00000 n 0000708110 00000 n 0000708154 00000 n 0000708198 00000 n 0000708242 00000 n 0000708286 00000 n 0000708329 00000 n 0000708372 00000 n 0000708415 00000 n 0000708458 00000 n 0000708501 00000 n 0000708544 00000 n 0000708587 00000 n 0000708630 00000 n 0000708673 00000 n 0000708716 00000 n 0000708759 00000 n 0000708802 00000 n 0000708845 00000 n 0000708889 00000 n 0000708933 00000 n 0000708977 00000 n 0000709021 00000 n 0000709065 00000 n 0000709108 00000 n 0000709151 00000 n 0000709194 00000 n 0000709238 00000 n 0000709282 00000 n 0000709326 00000 n 0000709369 00000 n 0000709412 00000 n 0000709455 00000 n 0000709498 00000 n 0000709541 00000 n 0000709584 00000 n 0000709627 00000 n 0000709670 00000 n 0000709713 00000 n 0000709756 00000 n 0000709799 00000 n 0000709842 00000 n 0000709885 00000 n 0000709928 00000 n 0000709971 00000 n 0000710014 00000 n 0000710057 00000 n 0000710100 00000 n 0000710143 00000 n 0000710187 00000 n 0000710231 00000 n 0000710274 00000 n 0000710317 00000 n 0000710360 00000 n 0000710404 00000 n 0000710448 00000 n 0000710492 00000 n 0000710536 00000 n 0000710579 00000 n 0000710622 00000 n 0000710666 00000 n 0000710709 00000 n 0000710752 00000 n 0000710795 00000 n 0000710839 00000 n 0000710883 00000 n 0000710927 00000 n 0000710971 00000 n 0000711015 00000 n 0000711059 00000 n 0000711102 00000 n 0000711145 00000 n 0000711188 00000 n 0000711232 00000 n 0000711276 00000 n 0000711320 00000 n 0000711364 00000 n 0000711408 00000 n 0000711452 00000 n 0000711496 00000 n 0000711540 00000 n 0000711584 00000 n 0000711628 00000 n 0000711672 00000 n 0000711716 00000 n 0000711760 00000 n 0000711804 00000 n 0000711848 00000 n 0000711892 00000 n 0000711936 00000 n 0000711979 00000 n 0000712022 00000 n 0000712065 00000 n 0000712108 00000 n 0000712151 00000 n 0000712195 00000 n 0000712239 00000 n 0000712283 00000 n 0000712327 00000 n 0000712371 00000 n 0000712415 00000 n 0000712459 00000 n 0000712503 00000 n 0000712547 00000 n 0000712591 00000 n 0000712635 00000 n 0000712679 00000 n 0000712723 00000 n 0000712767 00000 n 0000712811 00000 n 0000712855 00000 n 0000712899 00000 n 0000712943 00000 n 0000712987 00000 n 0000713031 00000 n 0000713075 00000 n 0000715536 00000 n 0000715580 00000 n 0000715624 00000 n 0000715668 00000 n 0000715712 00000 n 0000715756 00000 n 0000715800 00000 n 0000715844 00000 n 0000715888 00000 n 0000715932 00000 n 0000715976 00000 n 0000716020 00000 n 0000716064 00000 n 0000716108 00000 n 0000716152 00000 n 0000716196 00000 n 0000716239 00000 n 0000716283 00000 n 0000716327 00000 n 0000716371 00000 n 0000716415 00000 n 0000716459 00000 n 0000716503 00000 n 0000716547 00000 n 0000716590 00000 n 0000716634 00000 n 0000716678 00000 n 0000716722 00000 n 0000716766 00000 n 0000716810 00000 n 0000716854 00000 n 0000716898 00000 n 0000716942 00000 n 0000716986 00000 n 0000717030 00000 n 0000717074 00000 n 0000717118 00000 n 0000717162 00000 n 0000717206 00000 n 0000717250 00000 n 0000717294 00000 n 0000717338 00000 n 0000717382 00000 n 0000717426 00000 n 0000717470 00000 n 0000717514 00000 n 0000717558 00000 n 0000717602 00000 n 0000717646 00000 n 0000717690 00000 n 0000717733 00000 n 0000717776 00000 n 0000717820 00000 n 0000717864 00000 n 0000717908 00000 n 0000717952 00000 n 0000717996 00000 n 0000718040 00000 n 0000718084 00000 n 0000718128 00000 n 0000718172 00000 n 0000718216 00000 n 0000718259 00000 n 0000718303 00000 n 0000718347 00000 n 0000718391 00000 n 0000718435 00000 n 0000718479 00000 n 0000718523 00000 n 0000718567 00000 n 0000718611 00000 n 0000718655 00000 n 0000718699 00000 n 0000718743 00000 n 0000718787 00000 n 0000718831 00000 n 0000718875 00000 n 0000718919 00000 n 0000718963 00000 n 0000719007 00000 n 0000719051 00000 n 0000719095 00000 n 0000719139 00000 n 0000719183 00000 n 0000719226 00000 n 0000719269 00000 n 0000719313 00000 n 0000719357 00000 n 0000719401 00000 n 0000719445 00000 n 0000719489 00000 n 0000719533 00000 n 0000719576 00000 n 0000719620 00000 n 0000719664 00000 n 0000719708 00000 n 0000719752 00000 n 0000719796 00000 n 0000719840 00000 n 0000719884 00000 n 0000719928 00000 n 0000719972 00000 n 0000720016 00000 n 0000720060 00000 n 0000720104 00000 n 0000720148 00000 n 0000720192 00000 n 0000720236 00000 n 0000720280 00000 n 0000720324 00000 n 0000720368 00000 n 0000720412 00000 n 0000720456 00000 n 0000720500 00000 n 0000720544 00000 n 0000720588 00000 n 0000720632 00000 n 0000720676 00000 n 0000720720 00000 n 0000720764 00000 n 0000720808 00000 n 0000720851 00000 n 0000720895 00000 n 0000720939 00000 n 0000720983 00000 n 0000721027 00000 n 0000721071 00000 n 0000721115 00000 n 0000721159 00000 n 0000721203 00000 n 0000721246 00000 n 0000721290 00000 n 0000721334 00000 n 0000721378 00000 n 0000721422 00000 n 0000721466 00000 n 0000721510 00000 n 0000721554 00000 n 0000721598 00000 n 0000721642 00000 n 0000721686 00000 n 0000721730 00000 n 0000721774 00000 n 0000721818 00000 n 0000721862 00000 n 0000721906 00000 n 0000721950 00000 n 0000721994 00000 n 0000722038 00000 n 0000722082 00000 n 0000722126 00000 n 0000722170 00000 n 0000722214 00000 n 0000722258 00000 n 0000722302 00000 n 0000722346 00000 n 0000722390 00000 n 0000722434 00000 n 0000722478 00000 n 0000722522 00000 n 0000722566 00000 n 0000722609 00000 n 0000722652 00000 n 0000722695 00000 n 0000722738 00000 n 0000722781 00000 n 0000722824 00000 n 0000722868 00000 n 0000722912 00000 n 0000722955 00000 n 0000722998 00000 n 0000723041 00000 n 0000723084 00000 n 0000723128 00000 n 0000723172 00000 n 0000723216 00000 n 0000723260 00000 n 0000723304 00000 n 0000723348 00000 n 0000723392 00000 n 0000723435 00000 n 0000723478 00000 n 0000723521 00000 n 0000723564 00000 n 0000723608 00000 n 0000723652 00000 n 0000723696 00000 n 0000723740 00000 n 0000723784 00000 n 0000723827 00000 n 0000723870 00000 n 0000723913 00000 n 0000723957 00000 n 0000724001 00000 n 0000724045 00000 n 0000724089 00000 n 0000724133 00000 n 0000724176 00000 n 0000724219 00000 n 0000724262 00000 n 0000724305 00000 n 0000724348 00000 n 0000724391 00000 n 0000724434 00000 n 0000724478 00000 n 0000724522 00000 n 0000724565 00000 n 0000724609 00000 n 0000724653 00000 n 0000724697 00000 n 0000724741 00000 n 0000724785 00000 n 0000724828 00000 n 0000724871 00000 n 0000724914 00000 n 0000724957 00000 n 0000725001 00000 n 0000725044 00000 n 0000725087 00000 n 0000725130 00000 n 0000725173 00000 n 0000725216 00000 n 0000725260 00000 n 0000725304 00000 n 0000725348 00000 n 0000725392 00000 n 0000725436 00000 n 0000725479 00000 n 0000725522 00000 n 0000725565 00000 n 0000725608 00000 n 0000725651 00000 n 0000725695 00000 n 0000725738 00000 n 0000725781 00000 n 0000725824 00000 n 0000725868 00000 n 0000725912 00000 n 0000725955 00000 n 0000725998 00000 n 0000726041 00000 n 0000726084 00000 n 0000726127 00000 n 0000726170 00000 n 0000726213 00000 n 0000726256 00000 n 0000726299 00000 n 0000726342 00000 n 0000726385 00000 n 0000726428 00000 n 0000726472 00000 n 0000726516 00000 n 0000726560 00000 n 0000726603 00000 n 0000726646 00000 n 0000726689 00000 n 0000726732 00000 n 0000726775 00000 n 0000726819 00000 n 0000726863 00000 n 0000726907 00000 n 0000726950 00000 n 0000726993 00000 n 0000727036 00000 n 0000727079 00000 n 0000727122 00000 n 0000727165 00000 n 0000727208 00000 n 0000727251 00000 n 0000727294 00000 n 0000727337 00000 n 0000727380 00000 n 0000727423 00000 n 0000727466 00000 n 0000727509 00000 n 0000727552 00000 n 0000727595 00000 n 0000727638 00000 n 0000727681 00000 n 0000727725 00000 n 0000727768 00000 n 0000727811 00000 n 0000730872 00000 n 0000730916 00000 n 0000730960 00000 n 0000731004 00000 n 0000731048 00000 n 0000731092 00000 n 0000731136 00000 n 0000731180 00000 n 0000731223 00000 n 0000731266 00000 n 0000731309 00000 n 0000731352 00000 n 0000731395 00000 n 0000731439 00000 n 0000731483 00000 n 0000731527 00000 n 0000731570 00000 n 0000731613 00000 n 0000731657 00000 n 0000731701 00000 n 0000731744 00000 n 0000731787 00000 n 0000731830 00000 n 0000731873 00000 n 0000731916 00000 n 0000731959 00000 n 0000732002 00000 n 0000732045 00000 n 0000732088 00000 n 0000732131 00000 n 0000732175 00000 n 0000732219 00000 n 0000732263 00000 n 0000732306 00000 n 0000732349 00000 n 0000732392 00000 n 0000732435 00000 n 0000732478 00000 n 0000732521 00000 n 0000732565 00000 n 0000732609 00000 n 0000732653 00000 n 0000732697 00000 n 0000732741 00000 n 0000732784 00000 n 0000732827 00000 n 0000732871 00000 n 0000732915 00000 n 0000732959 00000 n 0000733003 00000 n 0000733046 00000 n 0000733089 00000 n 0000733132 00000 n 0000733175 00000 n 0000733218 00000 n 0000733261 00000 n 0000733304 00000 n 0000733347 00000 n 0000733390 00000 n 0000733434 00000 n 0000733477 00000 n 0000733520 00000 n 0000733563 00000 n 0000733606 00000 n 0000733649 00000 n 0000733692 00000 n 0000733735 00000 n 0000733778 00000 n 0000733821 00000 n 0000733864 00000 n 0000733907 00000 n 0000733950 00000 n 0000733993 00000 n 0000734036 00000 n 0000734079 00000 n 0000734122 00000 n 0000734165 00000 n 0000734208 00000 n 0000734252 00000 n 0000734296 00000 n 0000734340 00000 n 0000734384 00000 n 0000734428 00000 n 0000734471 00000 n 0000734514 00000 n 0000734557 00000 n 0000734600 00000 n 0000734643 00000 n 0000734686 00000 n 0000734730 00000 n 0000734774 00000 n 0000734818 00000 n 0000734862 00000 n 0000734905 00000 n 0000734948 00000 n 0000734991 00000 n 0000735034 00000 n 0000735077 00000 n 0000735120 00000 n 0000735164 00000 n 0000735208 00000 n 0000735252 00000 n 0000735295 00000 n 0000735338 00000 n 0000735381 00000 n 0000735424 00000 n 0000735467 00000 n 0000735510 00000 n 0000735554 00000 n 0000735597 00000 n 0000735641 00000 n 0000735685 00000 n 0000735729 00000 n 0000735772 00000 n 0000735815 00000 n 0000735859 00000 n 0000735904 00000 n 0000735949 00000 n 0000735994 00000 n 0000736039 00000 n 0000736084 00000 n 0000736129 00000 n 0000736173 00000 n 0000736217 00000 n 0000736261 00000 n 0000736305 00000 n 0000736349 00000 n 0000736394 00000 n 0000736438 00000 n 0000736482 00000 n 0000736526 00000 n 0000736570 00000 n 0000736614 00000 n 0000736658 00000 n 0000736702 00000 n 0000736746 00000 n 0000736791 00000 n 0000736836 00000 n 0000736880 00000 n 0000736924 00000 n 0000736969 00000 n 0000737014 00000 n 0000737059 00000 n 0000737104 00000 n 0000737149 00000 n 0000737194 00000 n 0000737239 00000 n 0000737284 00000 n 0000737329 00000 n 0000737374 00000 n 0000737419 00000 n 0000737464 00000 n 0000737509 00000 n 0000737554 00000 n 0000737599 00000 n 0000737644 00000 n 0000737689 00000 n 0000737734 00000 n 0000737779 00000 n 0000737824 00000 n 0000737869 00000 n 0000737914 00000 n 0000737959 00000 n 0000738004 00000 n 0000738048 00000 n 0000738092 00000 n 0000738136 00000 n 0000738181 00000 n 0000738226 00000 n 0000738271 00000 n 0000738316 00000 n 0000738361 00000 n 0000738406 00000 n 0000738451 00000 n 0000738495 00000 n 0000738539 00000 n 0000738583 00000 n 0000738627 00000 n 0000738671 00000 n 0000738715 00000 n 0000738759 00000 n 0000738803 00000 n 0000738847 00000 n 0000738891 00000 n 0000738936 00000 n 0000738980 00000 n 0000739024 00000 n 0000739068 00000 n 0000739112 00000 n 0000739156 00000 n 0000739200 00000 n 0000739244 00000 n 0000739288 00000 n 0000739332 00000 n 0000739376 00000 n 0000739420 00000 n 0000739464 00000 n 0000739508 00000 n 0000739552 00000 n 0000739597 00000 n 0000739641 00000 n 0000739685 00000 n 0000739729 00000 n 0000739773 00000 n 0000739817 00000 n 0000739861 00000 n 0000739905 00000 n 0000739949 00000 n 0000739993 00000 n 0000740037 00000 n 0000740081 00000 n 0000740125 00000 n 0000740169 00000 n 0000740213 00000 n 0000740258 00000 n 0000740303 00000 n 0000740348 00000 n 0000740393 00000 n 0000740438 00000 n 0000740483 00000 n 0000740528 00000 n 0000740573 00000 n 0000740618 00000 n 0000740662 00000 n 0000740706 00000 n 0000740750 00000 n 0000740794 00000 n 0000740838 00000 n 0000740882 00000 n 0000740926 00000 n 0000740970 00000 n 0000741014 00000 n 0000741059 00000 n 0000741104 00000 n 0000741149 00000 n 0000741194 00000 n 0000741239 00000 n 0000741283 00000 n 0000741327 00000 n 0000741371 00000 n 0000741415 00000 n 0000741459 00000 n 0000741503 00000 n 0000741547 00000 n 0000741591 00000 n 0000741635 00000 n 0000741679 00000 n 0000741724 00000 n 0000741769 00000 n 0000741814 00000 n 0000741859 00000 n 0000741904 00000 n 0000741949 00000 n 0000741993 00000 n 0000742037 00000 n 0000742081 00000 n 0000742125 00000 n 0000742169 00000 n 0000742213 00000 n 0000742257 00000 n 0000742301 00000 n 0000742345 00000 n 0000742389 00000 n 0000742433 00000 n 0000742477 00000 n 0000742521 00000 n 0000742565 00000 n 0000742609 00000 n 0000742653 00000 n 0000742697 00000 n 0000742741 00000 n 0000742785 00000 n 0000742830 00000 n 0000745802 00000 n 0000745846 00000 n 0000745890 00000 n 0000745934 00000 n 0000745978 00000 n 0000746022 00000 n 0000746066 00000 n 0000746111 00000 n 0000746155 00000 n 0000746199 00000 n 0000746243 00000 n 0000746287 00000 n 0000746331 00000 n 0000746375 00000 n 0000746419 00000 n 0000746464 00000 n 0000746509 00000 n 0000746554 00000 n 0000746599 00000 n 0000746644 00000 n 0000746688 00000 n 0000746732 00000 n 0000746776 00000 n 0000746821 00000 n 0000746866 00000 n 0000746910 00000 n 0000746954 00000 n 0000746998 00000 n 0000747042 00000 n 0000747086 00000 n 0000747130 00000 n 0000747174 00000 n 0000747218 00000 n 0000747262 00000 n 0000747306 00000 n 0000747350 00000 n 0000747394 00000 n 0000747438 00000 n 0000747482 00000 n 0000747527 00000 n 0000747572 00000 n 0000747617 00000 n 0000747662 00000 n 0000747707 00000 n 0000747752 00000 n 0000747796 00000 n 0000747840 00000 n 0000747884 00000 n 0000747928 00000 n 0000747972 00000 n 0000748016 00000 n 0000748060 00000 n 0000748104 00000 n 0000748148 00000 n 0000748192 00000 n 0000748236 00000 n 0000748280 00000 n 0000748324 00000 n 0000748368 00000 n 0000748412 00000 n 0000748456 00000 n 0000748501 00000 n 0000748545 00000 n 0000748589 00000 n 0000748633 00000 n 0000748677 00000 n 0000748721 00000 n 0000748765 00000 n 0000748809 00000 n 0000748853 00000 n 0000748897 00000 n 0000748942 00000 n 0000748986 00000 n 0000749030 00000 n 0000749074 00000 n 0000749118 00000 n 0000749162 00000 n 0000749206 00000 n 0000749250 00000 n 0000749294 00000 n 0000749338 00000 n 0000749382 00000 n 0000749426 00000 n 0000749470 00000 n 0000749515 00000 n 0000749560 00000 n 0000749605 00000 n 0000749650 00000 n 0000749695 00000 n 0000749740 00000 n 0000749785 00000 n 0000749830 00000 n 0000749874 00000 n 0000749918 00000 n 0000749962 00000 n 0000750006 00000 n 0000750050 00000 n 0000750094 00000 n 0000750138 00000 n 0000750182 00000 n 0000750226 00000 n 0000750270 00000 n 0000750314 00000 n 0000750358 00000 n 0000750402 00000 n 0000750446 00000 n 0000750490 00000 n 0000750535 00000 n 0000750580 00000 n 0000750625 00000 n 0000750670 00000 n 0000750715 00000 n 0000750760 00000 n 0000750804 00000 n 0000750848 00000 n 0000750892 00000 n 0000750937 00000 n 0000750982 00000 n 0000751026 00000 n 0000751070 00000 n 0000751114 00000 n 0000751158 00000 n 0000751202 00000 n 0000751246 00000 n 0000751290 00000 n 0000751334 00000 n 0000751378 00000 n 0000751422 00000 n 0000751466 00000 n 0000751510 00000 n 0000751555 00000 n 0000751599 00000 n 0000751643 00000 n 0000751687 00000 n 0000751731 00000 n 0000751776 00000 n 0000751821 00000 n 0000751866 00000 n 0000751911 00000 n 0000751956 00000 n 0000752001 00000 n 0000752046 00000 n 0000752090 00000 n 0000752134 00000 n 0000752178 00000 n 0000752222 00000 n 0000752266 00000 n 0000752310 00000 n 0000752355 00000 n 0000752400 00000 n 0000752444 00000 n 0000752488 00000 n 0000752532 00000 n 0000752576 00000 n 0000752620 00000 n 0000752664 00000 n 0000752708 00000 n 0000752753 00000 n 0000752798 00000 n 0000752842 00000 n 0000752886 00000 n 0000752930 00000 n 0000752974 00000 n 0000753018 00000 n 0000753062 00000 n 0000753106 00000 n 0000753151 00000 n 0000753195 00000 n 0000753239 00000 n 0000753283 00000 n 0000753327 00000 n 0000753371 00000 n 0000753415 00000 n 0000753459 00000 n 0000753503 00000 n 0000753547 00000 n 0000753591 00000 n 0000753635 00000 n 0000753679 00000 n 0000753723 00000 n 0000753767 00000 n 0000753811 00000 n 0000753855 00000 n 0000753899 00000 n 0000753944 00000 n 0000753989 00000 n 0000754034 00000 n 0000754079 00000 n 0000754124 00000 n 0000754169 00000 n 0000754214 00000 n 0000754259 00000 n 0000754304 00000 n 0000754349 00000 n 0000754394 00000 n 0000754439 00000 n 0000754484 00000 n 0000754528 00000 n 0000754572 00000 n 0000754616 00000 n 0000754661 00000 n 0000754706 00000 n 0000754751 00000 n 0000754796 00000 n 0000754840 00000 n 0000754884 00000 n 0000754928 00000 n 0000754972 00000 n 0000755016 00000 n 0000755060 00000 n 0000755104 00000 n 0000755148 00000 n 0000755193 00000 n 0000755237 00000 n 0000755281 00000 n 0000755325 00000 n 0000755369 00000 n 0000755413 00000 n 0000755457 00000 n 0000755501 00000 n 0000755545 00000 n 0000755589 00000 n 0000755633 00000 n 0000755677 00000 n 0000755721 00000 n 0000755765 00000 n 0000755809 00000 n 0000755854 00000 n 0000755898 00000 n 0000755942 00000 n 0000755986 00000 n 0000756030 00000 n 0000756074 00000 n 0000756118 00000 n 0000756162 00000 n 0000756206 00000 n 0000756250 00000 n 0000756294 00000 n 0000756338 00000 n 0000756382 00000 n 0000756426 00000 n 0000756470 00000 n 0000756514 00000 n 0000756558 00000 n 0000756602 00000 n 0000756646 00000 n 0000756690 00000 n 0000756734 00000 n 0000756778 00000 n 0000756822 00000 n 0000756866 00000 n 0000756910 00000 n 0000756954 00000 n 0000756998 00000 n 0000757042 00000 n 0000757086 00000 n 0000757130 00000 n 0000757175 00000 n 0000757220 00000 n 0000757265 00000 n 0000757310 00000 n 0000757355 00000 n 0000757399 00000 n 0000757443 00000 n 0000757487 00000 n 0000757531 00000 n 0000757575 00000 n 0000757619 00000 n 0000757664 00000 n 0000757709 00000 n 0000757753 00000 n 0000757797 00000 n 0000757841 00000 n 0000757885 00000 n 0000757929 00000 n 0000757973 00000 n 0000758017 00000 n 0000758061 00000 n 0000758105 00000 n 0000758149 00000 n 0000758193 00000 n 0000758238 00000 n 0000758283 00000 n 0000758328 00000 n 0000758373 00000 n 0000758417 00000 n 0000758461 00000 n 0000758505 00000 n 0000758549 00000 n 0000758593 00000 n 0000758637 00000 n 0000758681 00000 n 0000758725 00000 n 0000758770 00000 n 0000758814 00000 n 0000758858 00000 n 0000758902 00000 n 0000758946 00000 n 0000758990 00000 n 0000759034 00000 n 0000759078 00000 n 0000759122 00000 n 0000759166 00000 n 0000759210 00000 n 0000759254 00000 n 0000759298 00000 n 0000759343 00000 n 0000759388 00000 n 0000759433 00000 n 0000759477 00000 n 0000759521 00000 n 0000759565 00000 n 0000759609 00000 n 0000759653 00000 n 0000759697 00000 n 0000759741 00000 n 0000759785 00000 n 0000759829 00000 n 0000759874 00000 n 0000759919 00000 n 0000759964 00000 n 0000760009 00000 n 0000760054 00000 n 0000760099 00000 n 0000760144 00000 n 0000760189 00000 n 0000760234 00000 n 0000760278 00000 n 0000760322 00000 n 0000760367 00000 n 0000760412 00000 n 0000760457 00000 n 0000760501 00000 n 0000760545 00000 n 0000760589 00000 n 0000760633 00000 n 0000760677 00000 n 0000760721 00000 n 0000760765 00000 n 0000760809 00000 n 0000760853 00000 n 0000760897 00000 n 0000760941 00000 n 0000760985 00000 n 0000761029 00000 n 0000761074 00000 n 0000761119 00000 n 0000761164 00000 n 0000761209 00000 n 0000761253 00000 n 0000761297 00000 n 0000761341 00000 n 0000761385 00000 n 0000761429 00000 n 0000761473 00000 n 0000761517 00000 n 0000761561 00000 n 0000761605 00000 n 0000761649 00000 n 0000761693 00000 n 0000761737 00000 n 0000761781 00000 n 0000761825 00000 n 0000761869 00000 n 0000761913 00000 n 0000761957 00000 n 0000762001 00000 n 0000762045 00000 n 0000762089 00000 n 0000762133 00000 n 0000762177 00000 n 0000762221 00000 n 0000762265 00000 n 0000762309 00000 n 0000762354 00000 n 0000762399 00000 n 0000762444 00000 n 0000762489 00000 n 0000762534 00000 n 0000762579 00000 n 0000762624 00000 n 0000762668 00000 n 0000762712 00000 n 0000762756 00000 n 0000762800 00000 n 0000762844 00000 n 0000762888 00000 n 0000762932 00000 n 0000762976 00000 n 0000763020 00000 n 0000763064 00000 n 0000763109 00000 n 0000763153 00000 n 0000763197 00000 n 0000763241 00000 n 0000763285 00000 n 0000763329 00000 n 0000763373 00000 n 0000763417 00000 n 0000763461 00000 n 0000763505 00000 n 0000763549 00000 n 0000763593 00000 n 0000763637 00000 n 0000763681 00000 n 0000763725 00000 n 0000763769 00000 n 0000763813 00000 n 0000763858 00000 n 0000763903 00000 n 0000763948 00000 n 0000768300 00000 n 0000768344 00000 n 0000768388 00000 n 0000768432 00000 n 0000768476 00000 n 0000768520 00000 n 0000768564 00000 n 0000768608 00000 n 0000768652 00000 n 0000768696 00000 n 0000768740 00000 n 0000768784 00000 n 0000768828 00000 n 0000768873 00000 n 0000768918 00000 n 0000768963 00000 n 0000769008 00000 n 0000769052 00000 n 0000769096 00000 n 0000769140 00000 n 0000769184 00000 n 0000769228 00000 n 0000769272 00000 n 0000769316 00000 n 0000769360 00000 n 0000769405 00000 n 0000769449 00000 n 0000769493 00000 n 0000769537 00000 n 0000769581 00000 n 0000769625 00000 n 0000769670 00000 n 0000769714 00000 n 0000769758 00000 n 0000769802 00000 n 0000769846 00000 n 0000769890 00000 n 0000769934 00000 n 0000769978 00000 n 0000770023 00000 n 0000770068 00000 n 0000770113 00000 n 0000770158 00000 n 0000770203 00000 n 0000770248 00000 n 0000770293 00000 n 0000770338 00000 n 0000770383 00000 n 0000770427 00000 n 0000770471 00000 n 0000770515 00000 n 0000770560 00000 n 0000770604 00000 n 0000770648 00000 n 0000770692 00000 n 0000770736 00000 n 0000770780 00000 n 0000770824 00000 n 0000770868 00000 n 0000770912 00000 n 0000770956 00000 n 0000771000 00000 n 0000771044 00000 n 0000771089 00000 n 0000771134 00000 n 0000771179 00000 n 0000771224 00000 n 0000771268 00000 n 0000771312 00000 n 0000771356 00000 n 0000771400 00000 n 0000771444 00000 n 0000771488 00000 n 0000771532 00000 n 0000771576 00000 n 0000771620 00000 n 0000771664 00000 n 0000771708 00000 n 0000771752 00000 n 0000771796 00000 n 0000771840 00000 n 0000771885 00000 n 0000771929 00000 n 0000771973 00000 n 0000772017 00000 n 0000772062 00000 n 0000772106 00000 n 0000772150 00000 n 0000772194 00000 n 0000772238 00000 n 0000772282 00000 n 0000772327 00000 n 0000772372 00000 n 0000772417 00000 n 0000772461 00000 n 0000772505 00000 n 0000772549 00000 n 0000772593 00000 n 0000772637 00000 n 0000772681 00000 n 0000772725 00000 n 0000772769 00000 n 0000772813 00000 n 0000772857 00000 n 0000772902 00000 n 0000772946 00000 n 0000772990 00000 n 0000773034 00000 n 0000773078 00000 n 0000773122 00000 n 0000773166 00000 n 0000773210 00000 n 0000773254 00000 n 0000773299 00000 n 0000773344 00000 n 0000773389 00000 n 0000773434 00000 n 0000773479 00000 n 0000773524 00000 n 0000773569 00000 n 0000773614 00000 n 0000773659 00000 n 0000773703 00000 n 0000773747 00000 n 0000773791 00000 n 0000773835 00000 n 0000773879 00000 n 0000773924 00000 n 0000773969 00000 n 0000774014 00000 n 0000774059 00000 n 0000774104 00000 n 0000774149 00000 n 0000774193 00000 n 0000774237 00000 n 0000774281 00000 n 0000774325 00000 n 0000774369 00000 n 0000774413 00000 n 0000774457 00000 n 0000774502 00000 n 0000774546 00000 n 0000774590 00000 n 0000774634 00000 n 0000774678 00000 n 0000774722 00000 n 0000774767 00000 n 0000774812 00000 n 0000774857 00000 n 0000774902 00000 n 0000774947 00000 n 0000774991 00000 n 0000775035 00000 n 0000775079 00000 n 0000775123 00000 n 0000775167 00000 n 0000775211 00000 n 0000775256 00000 n 0000775301 00000 n 0000775345 00000 n 0000775389 00000 n 0000775433 00000 n 0000775477 00000 n 0000775521 00000 n 0000775566 00000 n 0000775611 00000 n 0000775655 00000 n 0000775699 00000 n 0000775743 00000 n 0000775787 00000 n 0000775831 00000 n 0000775875 00000 n 0000775920 00000 n 0000775965 00000 n 0000776010 00000 n 0000776054 00000 n 0000776099 00000 n 0000776143 00000 n 0000776188 00000 n 0000776232 00000 n 0000776277 00000 n 0000776322 00000 n 0000776366 00000 n 0000776410 00000 n 0000776454 00000 n 0000776498 00000 n 0000776542 00000 n 0000776586 00000 n 0000776631 00000 n 0000776675 00000 n 0000776719 00000 n 0000776763 00000 n 0000776808 00000 n 0000776852 00000 n 0000776896 00000 n 0000776941 00000 n 0000776986 00000 n 0000777030 00000 n 0000777074 00000 n 0000777118 00000 n 0000777163 00000 n 0000777207 00000 n 0000777251 00000 n 0000777295 00000 n 0000777340 00000 n 0000777384 00000 n 0000777428 00000 n 0000777473 00000 n 0000777517 00000 n 0000777561 00000 n 0000777605 00000 n 0000777649 00000 n 0000777693 00000 n 0000777737 00000 n 0000777781 00000 n 0000777825 00000 n 0000777869 00000 n 0000777913 00000 n 0000777957 00000 n 0000778001 00000 n 0000778045 00000 n 0000778089 00000 n 0000778133 00000 n 0000778177 00000 n 0000778221 00000 n 0000778265 00000 n 0000778309 00000 n 0000778353 00000 n 0000778397 00000 n 0000778441 00000 n 0000778485 00000 n 0000778529 00000 n 0000778574 00000 n 0000778619 00000 n 0000778664 00000 n 0000778708 00000 n 0000778752 00000 n 0000778796 00000 n 0000778841 00000 n 0000778886 00000 n 0000778930 00000 n 0000778974 00000 n 0000779018 00000 n 0000779063 00000 n 0000779107 00000 n 0000779151 00000 n 0000779195 00000 n 0000779239 00000 n 0000779284 00000 n 0000779328 00000 n 0000779372 00000 n 0000779416 00000 n 0000779460 00000 n 0000779504 00000 n 0000779548 00000 n 0000779592 00000 n 0000779636 00000 n 0000779680 00000 n 0000779725 00000 n 0000779770 00000 n 0000779815 00000 n 0000779859 00000 n 0000779903 00000 n 0000779947 00000 n 0000779991 00000 n 0000780035 00000 n 0000780079 00000 n 0000780123 00000 n 0000780167 00000 n 0000780211 00000 n 0000780255 00000 n 0000780299 00000 n 0000780343 00000 n 0000780387 00000 n 0000780431 00000 n 0000780475 00000 n 0000780519 00000 n 0000780563 00000 n 0000780607 00000 n 0000780651 00000 n 0000780695 00000 n 0000780740 00000 n 0000780785 00000 n 0000780830 00000 n 0000780875 00000 n 0000780920 00000 n 0000780965 00000 n 0000781010 00000 n 0000781055 00000 n 0000781100 00000 n 0000781145 00000 n 0000781190 00000 n 0000781235 00000 n 0000781279 00000 n 0000781323 00000 n 0000781368 00000 n 0000781412 00000 n 0000781457 00000 n 0000781502 00000 n 0000781547 00000 n 0000781592 00000 n 0000781637 00000 n 0000781681 00000 n 0000781726 00000 n 0000781770 00000 n 0000781814 00000 n 0000781859 00000 n 0000781904 00000 n 0000781948 00000 n 0000781993 00000 n 0000782038 00000 n 0000782083 00000 n 0000782128 00000 n 0000782173 00000 n 0000782218 00000 n 0000782263 00000 n 0000782308 00000 n 0000782353 00000 n 0000782398 00000 n 0000782443 00000 n 0000782488 00000 n 0000782533 00000 n 0000782578 00000 n 0000782623 00000 n 0000782668 00000 n 0000782713 00000 n 0000782758 00000 n 0000782803 00000 n 0000782848 00000 n 0000782893 00000 n 0000782938 00000 n 0000782982 00000 n 0000783027 00000 n 0000783072 00000 n 0000783117 00000 n 0000783162 00000 n 0000783207 00000 n 0000783252 00000 n 0000783297 00000 n 0000783342 00000 n 0000783387 00000 n 0000783432 00000 n 0000783477 00000 n 0000783522 00000 n 0000783567 00000 n 0000783612 00000 n 0000783657 00000 n 0000783702 00000 n 0000783746 00000 n 0000787478 00000 n 0000787523 00000 n 0000787568 00000 n 0000787613 00000 n 0000787657 00000 n 0000787702 00000 n 0000787747 00000 n 0000787792 00000 n 0000787837 00000 n 0000787882 00000 n 0000787927 00000 n 0000787971 00000 n 0000788015 00000 n 0000788060 00000 n 0000788105 00000 n 0000788150 00000 n 0000788195 00000 n 0000788240 00000 n 0000788285 00000 n 0000788330 00000 n 0000788375 00000 n 0000788420 00000 n 0000788465 00000 n 0000788510 00000 n 0000788555 00000 n 0000788599 00000 n 0000788643 00000 n 0000788688 00000 n 0000788733 00000 n 0000788778 00000 n 0000788823 00000 n 0000788868 00000 n 0000788913 00000 n 0000788958 00000 n 0000789003 00000 n 0000789048 00000 n 0000789093 00000 n 0000789138 00000 n 0000789183 00000 n 0000789228 00000 n 0000789273 00000 n 0000789318 00000 n 0000789363 00000 n 0000789408 00000 n 0000789453 00000 n 0000789498 00000 n 0000789543 00000 n 0000789588 00000 n 0000789633 00000 n 0000789678 00000 n 0000789723 00000 n 0000789768 00000 n 0000789812 00000 n 0000789857 00000 n 0000789902 00000 n 0000789947 00000 n 0000789992 00000 n 0000790037 00000 n 0000790082 00000 n 0000790127 00000 n 0000790172 00000 n 0000790217 00000 n 0000790262 00000 n 0000790307 00000 n 0000790352 00000 n 0000790397 00000 n 0000790442 00000 n 0000790487 00000 n 0000790532 00000 n 0000790577 00000 n 0000790622 00000 n 0000790666 00000 n 0000790710 00000 n 0000790754 00000 n 0000790798 00000 n 0000790842 00000 n 0000790886 00000 n 0000790930 00000 n 0000790974 00000 n 0000791018 00000 n 0000791062 00000 n 0000791106 00000 n 0000791150 00000 n 0000791194 00000 n 0000791238 00000 n 0000791282 00000 n 0000791326 00000 n 0000791370 00000 n 0000791414 00000 n 0000791458 00000 n 0000791502 00000 n 0000791546 00000 n 0000791590 00000 n 0000791634 00000 n 0000791678 00000 n 0000791722 00000 n 0000791766 00000 n 0000791810 00000 n 0000791854 00000 n 0000791898 00000 n 0000791942 00000 n 0000791986 00000 n 0000792030 00000 n 0000792074 00000 n 0000792118 00000 n 0000792162 00000 n 0000792206 00000 n 0000792250 00000 n 0000792294 00000 n 0000792338 00000 n 0000792382 00000 n 0000792426 00000 n 0000792470 00000 n 0000792514 00000 n 0000792558 00000 n 0000792602 00000 n 0000792646 00000 n 0000792690 00000 n 0000792734 00000 n 0000792778 00000 n 0000792822 00000 n 0000792866 00000 n 0000792910 00000 n 0000792954 00000 n 0000792998 00000 n 0000793042 00000 n 0000793086 00000 n 0000793130 00000 n 0000793174 00000 n 0000793218 00000 n 0000793262 00000 n 0000793306 00000 n 0000793350 00000 n 0000793394 00000 n 0000793438 00000 n 0000793482 00000 n 0000793526 00000 n 0000793570 00000 n 0000793614 00000 n 0000793658 00000 n 0000793702 00000 n 0000793747 00000 n 0000793792 00000 n 0000793837 00000 n 0000793882 00000 n 0000793927 00000 n 0000793972 00000 n 0000794017 00000 n 0000794062 00000 n 0000794107 00000 n 0000794152 00000 n 0000794197 00000 n 0000794242 00000 n 0000794287 00000 n 0000794332 00000 n 0000794377 00000 n 0000794422 00000 n 0000794467 00000 n 0000794512 00000 n 0000794557 00000 n 0000794602 00000 n 0000794647 00000 n 0000794692 00000 n 0000794737 00000 n 0000794782 00000 n 0000794827 00000 n 0000794872 00000 n 0000794917 00000 n 0000794962 00000 n 0000795007 00000 n 0000795052 00000 n 0000795097 00000 n 0000795142 00000 n 0000795187 00000 n 0000795232 00000 n 0000795277 00000 n 0000795322 00000 n 0000795367 00000 n 0000795412 00000 n 0000795457 00000 n 0000795502 00000 n 0000795547 00000 n 0000795592 00000 n 0000795637 00000 n 0000795682 00000 n 0000795727 00000 n 0000795772 00000 n 0000795817 00000 n 0000795862 00000 n 0000795907 00000 n 0000795952 00000 n 0000795997 00000 n 0000796042 00000 n 0000796087 00000 n 0000796132 00000 n 0000796177 00000 n 0000796222 00000 n 0000796267 00000 n 0000796312 00000 n 0000796357 00000 n 0000796402 00000 n 0000796447 00000 n 0000796492 00000 n 0000796537 00000 n 0000796582 00000 n 0000796627 00000 n 0000796672 00000 n 0000796717 00000 n 0000796762 00000 n 0000796806 00000 n 0000796850 00000 n 0000796894 00000 n 0000796939 00000 n 0000796983 00000 n 0000797027 00000 n 0000797071 00000 n 0000797115 00000 n 0000797160 00000 n 0000797205 00000 n 0000797249 00000 n 0000797294 00000 n 0000797339 00000 n 0000797384 00000 n 0000797429 00000 n 0000797474 00000 n 0000797519 00000 n 0000797564 00000 n 0000797609 00000 n 0000797654 00000 n 0000797699 00000 n 0000797744 00000 n 0000797789 00000 n 0000797834 00000 n 0000797879 00000 n 0000797924 00000 n 0000797969 00000 n 0000798014 00000 n 0000798059 00000 n 0000798104 00000 n 0000798149 00000 n 0000798194 00000 n 0000798239 00000 n 0000798284 00000 n 0000798329 00000 n 0000798373 00000 n 0000798418 00000 n 0000798462 00000 n 0000798507 00000 n 0000798552 00000 n 0000798596 00000 n 0000798641 00000 n 0000798686 00000 n 0000798731 00000 n 0000798776 00000 n 0000798820 00000 n 0000798864 00000 n 0000798909 00000 n 0000798953 00000 n 0000798997 00000 n 0000799041 00000 n 0000799085 00000 n 0000799129 00000 n 0000799173 00000 n 0000799217 00000 n 0000799261 00000 n 0000799306 00000 n 0000799351 00000 n 0000799395 00000 n 0000799439 00000 n 0000799484 00000 n 0000799529 00000 n 0000799574 00000 n 0000799618 00000 n 0000799662 00000 n 0000799706 00000 n 0000799750 00000 n 0000799794 00000 n 0000799838 00000 n 0000799882 00000 n 0000799926 00000 n 0000799970 00000 n 0000800014 00000 n 0000800059 00000 n 0000800104 00000 n 0000800149 00000 n 0000800193 00000 n 0000800237 00000 n 0000800281 00000 n 0000800325 00000 n 0000800369 00000 n 0000800413 00000 n 0000800457 00000 n 0000800501 00000 n 0000800545 00000 n 0000800589 00000 n 0000800633 00000 n 0000800677 00000 n 0000800722 00000 n 0000800766 00000 n 0000800810 00000 n 0000800854 00000 n 0000800898 00000 n 0000800943 00000 n 0000800988 00000 n 0000801033 00000 n 0000801078 00000 n 0000801123 00000 n 0000801168 00000 n 0000801212 00000 n 0000801256 00000 n 0000801300 00000 n 0000801344 00000 n 0000801388 00000 n 0000801432 00000 n 0000801476 00000 n 0000801520 00000 n 0000801564 00000 n 0000801608 00000 n 0000801652 00000 n 0000801696 00000 n 0000801740 00000 n 0000801784 00000 n 0000801828 00000 n 0000801872 00000 n 0000801916 00000 n 0000801960 00000 n 0000802004 00000 n 0000802049 00000 n 0000802094 00000 n 0000802139 00000 n 0000802184 00000 n 0000802229 00000 n 0000802274 00000 n 0000802319 00000 n 0000802364 00000 n 0000802409 00000 n 0000802454 00000 n 0000802499 00000 n 0000802543 00000 n 0000802587 00000 n 0000802631 00000 n 0000802675 00000 n 0000802719 00000 n 0000802763 00000 n 0000802807 00000 n 0000802851 00000 n 0000802895 00000 n 0000802939 00000 n 0000802983 00000 n 0000803028 00000 n 0000803073 00000 n 0000803118 00000 n 0000803163 00000 n 0000803208 00000 n 0000803253 00000 n 0000803298 00000 n 0000803343 00000 n 0000803388 00000 n 0000803433 00000 n 0000803478 00000 n 0000803523 00000 n 0000803568 00000 n 0000803612 00000 n 0000803657 00000 n 0000803702 00000 n 0000803747 00000 n 0000803792 00000 n 0000803837 00000 n 0000803881 00000 n 0000803925 00000 n 0000803969 00000 n 0000804014 00000 n 0000804059 00000 n 0000804103 00000 n 0000804148 00000 n 0000804192 00000 n 0000804236 00000 n 0000804281 00000 n 0000804325 00000 n 0000804370 00000 n 0000804415 00000 n 0000804460 00000 n 0000804504 00000 n 0000804548 00000 n 0000804593 00000 n 0000804638 00000 n 0000804683 00000 n 0000804728 00000 n 0000804773 00000 n 0000804818 00000 n 0000804862 00000 n 0000804906 00000 n 0000804950 00000 n 0000804994 00000 n 0000805038 00000 n 0000805083 00000 n 0000805128 00000 n 0000805173 00000 n 0000805217 00000 n 0000805261 00000 n 0000805305 00000 n 0000805349 00000 n 0000805393 00000 n 0000805437 00000 n 0000805481 00000 n 0000805526 00000 n 0000805571 00000 n 0000805616 00000 n 0000805661 00000 n 0000805706 00000 n 0000805751 00000 n 0000805796 00000 n 0000805841 00000 n 0000805886 00000 n 0000805931 00000 n 0000805976 00000 n 0000806021 00000 n 0000806066 00000 n 0000806111 00000 n 0000806156 00000 n 0000806201 00000 n 0000806246 00000 n 0000806290 00000 n 0000806335 00000 n 0000806379 00000 n 0000806423 00000 n 0000806467 00000 n 0000806511 00000 n 0000806555 00000 n 0000806599 00000 n 0000806643 00000 n 0000806687 00000 n 0000806731 00000 n 0000806776 00000 n 0000806821 00000 n 0000806866 00000 n 0000806910 00000 n 0000806954 00000 n 0000806998 00000 n 0000807042 00000 n 0000807086 00000 n 0000811738 00000 n 0000811782 00000 n 0000811826 00000 n 0000811871 00000 n 0000811915 00000 n 0000811959 00000 n 0000812003 00000 n 0000812047 00000 n 0000812091 00000 n 0000812135 00000 n 0000812180 00000 n 0000812225 00000 n 0000812270 00000 n 0000812314 00000 n 0000812358 00000 n 0000812402 00000 n 0000812446 00000 n 0000812490 00000 n 0000812534 00000 n 0000812578 00000 n 0000812623 00000 n 0000812668 00000 n 0000812713 00000 n 0000812758 00000 n 0000812803 00000 n 0000812848 00000 n 0000812893 00000 n 0000812938 00000 n 0000812983 00000 n 0000813028 00000 n 0000813073 00000 n 0000813118 00000 n 0000813163 00000 n 0000813208 00000 n 0000813253 00000 n 0000813297 00000 n 0000813341 00000 n 0000813386 00000 n 0000813431 00000 n 0000813476 00000 n 0000813521 00000 n 0000813566 00000 n 0000813611 00000 n 0000813655 00000 n 0000813699 00000 n 0000813743 00000 n 0000813787 00000 n 0000813831 00000 n 0000813876 00000 n 0000813921 00000 n 0000813966 00000 n 0000814011 00000 n 0000814056 00000 n 0000814101 00000 n 0000814146 00000 n 0000814191 00000 n 0000814235 00000 n 0000814279 00000 n 0000814324 00000 n 0000814369 00000 n 0000814414 00000 n 0000814459 00000 n 0000814503 00000 n 0000814547 00000 n 0000814591 00000 n 0000814635 00000 n 0000814679 00000 n 0000814723 00000 n 0000814767 00000 n 0000814812 00000 n 0000814857 00000 n 0000814902 00000 n 0000814947 00000 n 0000814992 00000 n 0000815037 00000 n 0000815082 00000 n 0000815127 00000 n 0000815172 00000 n 0000815217 00000 n 0000815262 00000 n 0000815307 00000 n 0000815352 00000 n 0000815397 00000 n 0000815441 00000 n 0000815485 00000 n 0000815530 00000 n 0000815575 00000 n 0000815620 00000 n 0000815665 00000 n 0000815710 00000 n 0000815755 00000 n 0000815800 00000 n 0000815845 00000 n 0000815889 00000 n 0000815933 00000 n 0000815978 00000 n 0000816023 00000 n 0000816067 00000 n 0000816111 00000 n 0000816155 00000 n 0000816199 00000 n 0000816244 00000 n 0000816289 00000 n 0000816334 00000 n 0000816379 00000 n 0000816424 00000 n 0000816469 00000 n 0000816514 00000 n 0000816559 00000 n 0000816604 00000 n 0000816649 00000 n 0000816694 00000 n 0000816739 00000 n 0000816784 00000 n 0000816829 00000 n 0000816874 00000 n 0000816919 00000 n 0000816964 00000 n 0000817009 00000 n 0000817054 00000 n 0000817099 00000 n 0000817144 00000 n 0000817189 00000 n 0000817234 00000 n 0000817279 00000 n 0000817323 00000 n 0000817368 00000 n 0000817413 00000 n 0000817457 00000 n 0000817501 00000 n 0000817545 00000 n 0000817589 00000 n 0000817633 00000 n 0000817678 00000 n 0000817723 00000 n 0000817767 00000 n 0000817811 00000 n 0000817855 00000 n 0000817899 00000 n 0000817944 00000 n 0000817988 00000 n 0000818033 00000 n 0000818077 00000 n 0000818121 00000 n 0000818166 00000 n 0000818211 00000 n 0000818256 00000 n 0000818301 00000 n 0000818346 00000 n 0000818391 00000 n 0000818436 00000 n 0000818481 00000 n 0000818525 00000 n 0000818569 00000 n 0000818613 00000 n 0000818658 00000 n 0000818702 00000 n 0000818747 00000 n 0000818792 00000 n 0000818837 00000 n 0000818882 00000 n 0000818927 00000 n 0000818971 00000 n 0000819016 00000 n 0000819061 00000 n 0000819106 00000 n 0000819151 00000 n 0000819196 00000 n 0000819240 00000 n 0000819285 00000 n 0000819330 00000 n 0000819374 00000 n 0000819418 00000 n 0000819462 00000 n 0000819507 00000 n 0000819552 00000 n 0000819597 00000 n 0000819642 00000 n 0000819687 00000 n 0000819731 00000 n 0000819775 00000 n 0000819819 00000 n 0000819864 00000 n 0000819909 00000 n 0000819953 00000 n 0000819997 00000 n 0000820041 00000 n 0000820085 00000 n 0000820129 00000 n 0000820173 00000 n 0000820217 00000 n 0000820261 00000 n 0000820305 00000 n 0000820349 00000 n 0000820393 00000 n 0000820437 00000 n 0000820481 00000 n 0000820525 00000 n 0000820569 00000 n 0000820613 00000 n 0000820657 00000 n 0000820701 00000 n 0000820745 00000 n 0000820789 00000 n 0000820833 00000 n 0000820877 00000 n 0000820921 00000 n 0000820965 00000 n 0000821009 00000 n 0000821053 00000 n 0000821097 00000 n 0000821141 00000 n 0000821185 00000 n 0000821229 00000 n 0000821273 00000 n 0000821317 00000 n 0000821361 00000 n 0000821405 00000 n 0000821449 00000 n 0000821493 00000 n 0000821537 00000 n 0000821581 00000 n 0000821625 00000 n 0000821669 00000 n 0000821713 00000 n 0000821757 00000 n 0000821801 00000 n 0000821845 00000 n 0000821889 00000 n 0000821933 00000 n 0000821977 00000 n 0000822021 00000 n 0000822065 00000 n 0000822109 00000 n 0000822153 00000 n 0000822197 00000 n 0000822241 00000 n 0000822285 00000 n 0000822329 00000 n 0000822373 00000 n 0000822417 00000 n 0000822461 00000 n 0000822505 00000 n 0000822549 00000 n 0000822593 00000 n 0000822637 00000 n 0000822681 00000 n 0000822725 00000 n 0000822769 00000 n 0000822813 00000 n 0000822858 00000 n 0000822903 00000 n 0000822948 00000 n 0000822993 00000 n 0000823038 00000 n 0000823083 00000 n 0000823128 00000 n 0000823173 00000 n 0000823218 00000 n 0000823263 00000 n 0000823308 00000 n 0000823353 00000 n 0000823398 00000 n 0000823443 00000 n 0000823488 00000 n 0000823533 00000 n 0000823578 00000 n 0000823623 00000 n 0000823668 00000 n 0000823713 00000 n 0000823758 00000 n 0000823803 00000 n 0000823848 00000 n 0000823893 00000 n 0000823938 00000 n 0000823983 00000 n 0000824028 00000 n 0000824073 00000 n 0000824118 00000 n 0000824163 00000 n 0000824208 00000 n 0000824253 00000 n 0000824298 00000 n 0000824343 00000 n 0000824388 00000 n 0000824433 00000 n 0000824478 00000 n 0000824523 00000 n 0000824568 00000 n 0000824613 00000 n 0000824658 00000 n 0000824703 00000 n 0000824748 00000 n 0000824793 00000 n 0000824838 00000 n 0000824882 00000 n 0000824926 00000 n 0000824970 00000 n 0000825014 00000 n 0000825058 00000 n 0000825102 00000 n 0000825146 00000 n 0000825190 00000 n 0000825234 00000 n 0000825278 00000 n 0000825322 00000 n 0000825366 00000 n 0000825410 00000 n 0000825454 00000 n 0000825498 00000 n 0000825542 00000 n 0000825586 00000 n 0000825630 00000 n 0000825675 00000 n 0000825720 00000 n 0000825765 00000 n 0000825810 00000 n 0000825855 00000 n 0000825900 00000 n 0000825945 00000 n 0000825990 00000 n 0000826034 00000 n 0000826078 00000 n 0000826123 00000 n 0000826167 00000 n 0000826211 00000 n 0000826255 00000 n 0000826299 00000 n 0000826343 00000 n 0000826387 00000 n 0000826431 00000 n 0000826476 00000 n 0000826521 00000 n 0000826565 00000 n 0000826609 00000 n 0000826653 00000 n 0000826697 00000 n 0000826741 00000 n 0000826785 00000 n 0000826829 00000 n 0000826873 00000 n 0000826917 00000 n 0000826961 00000 n 0000827005 00000 n 0000827050 00000 n 0000827095 00000 n 0000827140 00000 n 0000827185 00000 n 0000827230 00000 n 0000827274 00000 n 0000827318 00000 n 0000827362 00000 n 0000827406 00000 n 0000827450 00000 n 0000827494 00000 n 0000827538 00000 n 0000827582 00000 n 0000827626 00000 n 0000827670 00000 n 0000827714 00000 n 0000827758 00000 n 0000827802 00000 n 0000827846 00000 n 0000827890 00000 n 0000827934 00000 n 0000827978 00000 n 0000828022 00000 n 0000828066 00000 n 0000828110 00000 n 0000828154 00000 n 0000828198 00000 n 0000828242 00000 n 0000828286 00000 n 0000828331 00000 n 0000828376 00000 n 0000828421 00000 n 0000828466 00000 n 0000828511 00000 n 0000828556 00000 n 0000828601 00000 n 0000828646 00000 n 0000828691 00000 n 0000828736 00000 n 0000828780 00000 n 0000828825 00000 n 0000828870 00000 n 0000828914 00000 n 0000828958 00000 n 0000829002 00000 n 0000829046 00000 n 0000829090 00000 n 0000829134 00000 n 0000829178 00000 n 0000829222 00000 n 0000829266 00000 n 0000829310 00000 n 0000829354 00000 n 0000829398 00000 n 0000829442 00000 n 0000829486 00000 n 0000829530 00000 n 0000829574 00000 n 0000829618 00000 n 0000829662 00000 n 0000829706 00000 n 0000829750 00000 n 0000829794 00000 n 0000834106 00000 n 0000834150 00000 n 0000834194 00000 n 0000834238 00000 n 0000834282 00000 n 0000834326 00000 n 0000834370 00000 n 0000834414 00000 n 0000834458 00000 n 0000834502 00000 n 0000834546 00000 n 0000834590 00000 n 0000834634 00000 n 0000834678 00000 n 0000834723 00000 n 0000834768 00000 n 0000834812 00000 n 0000834856 00000 n 0000834900 00000 n 0000834945 00000 n 0000834989 00000 n 0000835033 00000 n 0000835077 00000 n 0000835121 00000 n 0000835166 00000 n 0000835210 00000 n 0000835254 00000 n 0000835298 00000 n 0000835342 00000 n 0000835386 00000 n 0000835430 00000 n 0000835474 00000 n 0000835518 00000 n 0000835562 00000 n 0000835606 00000 n 0000835651 00000 n 0000835695 00000 n 0000835739 00000 n 0000835783 00000 n 0000835827 00000 n 0000835871 00000 n 0000835915 00000 n 0000835959 00000 n 0000836003 00000 n 0000836047 00000 n 0000836091 00000 n 0000836135 00000 n 0000836179 00000 n 0000836223 00000 n 0000836267 00000 n 0000836311 00000 n 0000836355 00000 n 0000836399 00000 n 0000836443 00000 n 0000836487 00000 n 0000836531 00000 n 0000836575 00000 n 0000836619 00000 n 0000836663 00000 n 0000836707 00000 n 0000836751 00000 n 0000836795 00000 n 0000836839 00000 n 0000836884 00000 n 0000836929 00000 n 0000836974 00000 n 0000837019 00000 n 0000837064 00000 n 0000837109 00000 n 0000837154 00000 n 0000837199 00000 n 0000837244 00000 n 0000837289 00000 n 0000837334 00000 n 0000837379 00000 n 0000837424 00000 n 0000837468 00000 n 0000837512 00000 n 0000837557 00000 n 0000837602 00000 n 0000837646 00000 n 0000837690 00000 n 0000837734 00000 n 0000837779 00000 n 0000837823 00000 n 0000837868 00000 n 0000837913 00000 n 0000837958 00000 n 0000838003 00000 n 0000838048 00000 n 0000838093 00000 n 0000838138 00000 n 0000838183 00000 n 0000838228 00000 n 0000838273 00000 n 0000838318 00000 n 0000838363 00000 n 0000838408 00000 n 0000838453 00000 n 0000838498 00000 n 0000838543 00000 n 0000838588 00000 n 0000838633 00000 n 0000838678 00000 n 0000838723 00000 n 0000838767 00000 n 0000838811 00000 n 0000838855 00000 n 0000838899 00000 n 0000838943 00000 n 0000838987 00000 n 0000839031 00000 n 0000839075 00000 n 0000839119 00000 n 0000839164 00000 n 0000839209 00000 n 0000839254 00000 n 0000839299 00000 n 0000839343 00000 n 0000839388 00000 n 0000839432 00000 n 0000839476 00000 n 0000839520 00000 n 0000839564 00000 n 0000839609 00000 n 0000839653 00000 n 0000839697 00000 n 0000839741 00000 n 0000839785 00000 n 0000839829 00000 n 0000839873 00000 n 0000839917 00000 n 0000839961 00000 n 0000840005 00000 n 0000840049 00000 n 0000840093 00000 n 0000840137 00000 n 0000840181 00000 n 0000840225 00000 n 0000840270 00000 n 0000840314 00000 n 0000840358 00000 n 0000840402 00000 n 0000840446 00000 n 0000840490 00000 n 0000840534 00000 n 0000840579 00000 n 0000840624 00000 n 0000840669 00000 n 0000840713 00000 n 0000840757 00000 n 0000840801 00000 n 0000840845 00000 n 0000840889 00000 n 0000840933 00000 n 0000840977 00000 n 0000841021 00000 n 0000841065 00000 n 0000841109 00000 n 0000841153 00000 n 0000841197 00000 n 0000841241 00000 n 0000841285 00000 n 0000841330 00000 n 0000841375 00000 n 0000841420 00000 n 0000841465 00000 n 0000841510 00000 n 0000841554 00000 n 0000841598 00000 n 0000841642 00000 n 0000841686 00000 n 0000841730 00000 n 0000841774 00000 n 0000841818 00000 n 0000841862 00000 n 0000841906 00000 n 0000841951 00000 n 0000841996 00000 n 0000842041 00000 n 0000842086 00000 n 0000842131 00000 n 0000842176 00000 n 0000842221 00000 n 0000842266 00000 n 0000842311 00000 n 0000842356 00000 n 0000842401 00000 n 0000842446 00000 n 0000842491 00000 n 0000842535 00000 n 0000842580 00000 n 0000842624 00000 n 0000842668 00000 n 0000842712 00000 n 0000842756 00000 n 0000842800 00000 n 0000842845 00000 n 0000842890 00000 n 0000842935 00000 n 0000842979 00000 n 0000843023 00000 n 0000843068 00000 n 0000843112 00000 n 0000843156 00000 n 0000843200 00000 n 0000843245 00000 n 0000843290 00000 n 0000843335 00000 n 0000843380 00000 n 0000843425 00000 n 0000843470 00000 n 0000843515 00000 n 0000843560 00000 n 0000843605 00000 n 0000843649 00000 n 0000843693 00000 n 0000843737 00000 n 0000843782 00000 n 0000843827 00000 n 0000843871 00000 n 0000843915 00000 n 0000843959 00000 n 0000844004 00000 n 0000844049 00000 n 0000844094 00000 n 0000844139 00000 n 0000844184 00000 n 0000844228 00000 n 0000844272 00000 n 0000844317 00000 n 0000844362 00000 n 0000844407 00000 n 0000844451 00000 n 0000844495 00000 n 0000844539 00000 n 0000844584 00000 n 0000844629 00000 n 0000844674 00000 n 0000844719 00000 n 0000844763 00000 n 0000844808 00000 n 0000844853 00000 n 0000844898 00000 n 0000844943 00000 n 0000844988 00000 n 0000845033 00000 n 0000845078 00000 n 0000845123 00000 n 0000845168 00000 n 0000845213 00000 n 0000845258 00000 n 0000845303 00000 n 0000845348 00000 n 0000845393 00000 n 0000845438 00000 n 0000845482 00000 n 0000845526 00000 n 0000845570 00000 n 0000845615 00000 n 0000845660 00000 n 0000845704 00000 n 0000845748 00000 n 0000845792 00000 n 0000845837 00000 n 0000845882 00000 n 0000845926 00000 n 0000845971 00000 n 0000846016 00000 n 0000846061 00000 n 0000846106 00000 n 0000846150 00000 n 0000846195 00000 n 0000846240 00000 n 0000846285 00000 n 0000846330 00000 n 0000846375 00000 n 0000846420 00000 n 0000846465 00000 n 0000846510 00000 n 0000846555 00000 n 0000846600 00000 n 0000846645 00000 n 0000846690 00000 n 0000846735 00000 n 0000846780 00000 n 0000846824 00000 n 0000846868 00000 n 0000849990 00000 n 0000850034 00000 n 0000850078 00000 n 0000850123 00000 n 0000850168 00000 n 0000850213 00000 n 0000850258 00000 n 0000850303 00000 n 0000850347 00000 n 0000850391 00000 n 0000850436 00000 n 0000850481 00000 n 0000850526 00000 n 0000850571 00000 n 0000850616 00000 n 0000850661 00000 n 0000850706 00000 n 0000850751 00000 n 0000850796 00000 n 0000850841 00000 n 0000850886 00000 n 0000850931 00000 n 0000850976 00000 n 0000851021 00000 n 0000851066 00000 n 0000851111 00000 n 0000851155 00000 n 0000851199 00000 n 0000851243 00000 n 0000851287 00000 n 0000851331 00000 n 0000851375 00000 n 0000851420 00000 n 0000851465 00000 n 0000851509 00000 n 0000851554 00000 n 0000851599 00000 n 0000851643 00000 n 0000851687 00000 n 0000851731 00000 n 0000851775 00000 n 0000851820 00000 n 0000851865 00000 n 0000851910 00000 n 0000851955 00000 n 0000852000 00000 n 0000852045 00000 n 0000852090 00000 n 0000852134 00000 n 0000852179 00000 n 0000852223 00000 n 0000852267 00000 n 0000852311 00000 n 0000852355 00000 n 0000852399 00000 n 0000852444 00000 n 0000852489 00000 n 0000852534 00000 n 0000852579 00000 n 0000852624 00000 n 0000852669 00000 n 0000852714 00000 n 0000852758 00000 n 0000852803 00000 n 0000852847 00000 n 0000852891 00000 n 0000852935 00000 n 0000852980 00000 n 0000853025 00000 n 0000853070 00000 n 0000853115 00000 n 0000853160 00000 n 0000853205 00000 n 0000853250 00000 n 0000853294 00000 n 0000853339 00000 n 0000853383 00000 n 0000853427 00000 n 0000853472 00000 n 0000853517 00000 n 0000853562 00000 n 0000853607 00000 n 0000853651 00000 n 0000853695 00000 n 0000853740 00000 n 0000853785 00000 n 0000853830 00000 n 0000853875 00000 n 0000853920 00000 n 0000853965 00000 n 0000854009 00000 n 0000854053 00000 n 0000854097 00000 n 0000854141 00000 n 0000854185 00000 n 0000854230 00000 n 0000854275 00000 n 0000854320 00000 n 0000854365 00000 n 0000854410 00000 n 0000854455 00000 n 0000854500 00000 n 0000854544 00000 n 0000854588 00000 n 0000854632 00000 n 0000854676 00000 n 0000854720 00000 n 0000854764 00000 n 0000854808 00000 n 0000854852 00000 n 0000854896 00000 n 0000854940 00000 n 0000854984 00000 n 0000855028 00000 n 0000855072 00000 n 0000855116 00000 n 0000855160 00000 n 0000855204 00000 n 0000855248 00000 n 0000855293 00000 n 0000855338 00000 n 0000855383 00000 n 0000855428 00000 n 0000855473 00000 n 0000855518 00000 n 0000855563 00000 n 0000855608 00000 n 0000855653 00000 n 0000855698 00000 n 0000855743 00000 n 0000855788 00000 n 0000855833 00000 n 0000855878 00000 n 0000855923 00000 n 0000855968 00000 n 0000856013 00000 n 0000856058 00000 n 0000856103 00000 n 0000856148 00000 n 0000856193 00000 n 0000856238 00000 n 0000856283 00000 n 0000856327 00000 n 0000856371 00000 n 0000856416 00000 n 0000856461 00000 n 0000856506 00000 n 0000856551 00000 n 0000856596 00000 n 0000856641 00000 n 0000856686 00000 n 0000856731 00000 n 0000856776 00000 n 0000856821 00000 n 0000856866 00000 n 0000856911 00000 n 0000856956 00000 n 0000857001 00000 n 0000857046 00000 n 0000857091 00000 n 0000857135 00000 n 0000857180 00000 n 0000857225 00000 n 0000857270 00000 n 0000857314 00000 n 0000857358 00000 n 0000857403 00000 n 0000857448 00000 n 0000857493 00000 n 0000857538 00000 n 0000857583 00000 n 0000857628 00000 n 0000857672 00000 n 0000857716 00000 n 0000857761 00000 n 0000857806 00000 n 0000857851 00000 n 0000857896 00000 n 0000857941 00000 n 0000857986 00000 n 0000858030 00000 n 0000858074 00000 n 0000858119 00000 n 0000858164 00000 n 0000858209 00000 n 0000858254 00000 n 0000858299 00000 n 0000858344 00000 n 0000858389 00000 n 0000858434 00000 n 0000858479 00000 n 0000858524 00000 n 0000858569 00000 n 0000858614 00000 n 0000858659 00000 n 0000858704 00000 n 0000858749 00000 n 0000858794 00000 n 0000858839 00000 n 0000858884 00000 n 0000858929 00000 n 0000858974 00000 n 0000859019 00000 n 0000859063 00000 n 0000859107 00000 n 0000859152 00000 n 0000859196 00000 n 0000859240 00000 n 0000859284 00000 n 0000859328 00000 n 0000859372 00000 n 0000859417 00000 n 0000859462 00000 n 0000859507 00000 n 0000859552 00000 n 0000859597 00000 n 0000859642 00000 n 0000859686 00000 n 0000859730 00000 n 0000859774 00000 n 0000859818 00000 n 0000859862 00000 n 0000859907 00000 n 0000859952 00000 n 0000859997 00000 n 0000860041 00000 n 0000860085 00000 n 0000860130 00000 n 0000860175 00000 n 0000860219 00000 n 0000860263 00000 n 0000860308 00000 n 0000860353 00000 n 0000860398 00000 n 0000860443 00000 n 0000860487 00000 n 0000860531 00000 n 0000860575 00000 n 0000860619 00000 n 0000860664 00000 n 0000860709 00000 n 0000860754 00000 n 0000860799 00000 n 0000860844 00000 n 0000860888 00000 n 0000860932 00000 n 0000860976 00000 n 0000861020 00000 n 0000861064 00000 n 0000861108 00000 n 0000861152 00000 n 0000861196 00000 n 0000861240 00000 n 0000861284 00000 n 0000861328 00000 n 0000861372 00000 n 0000861416 00000 n 0000861460 00000 n 0000861504 00000 n 0000861548 00000 n 0000861592 00000 n 0000861636 00000 n 0000861680 00000 n 0000861724 00000 n 0000861768 00000 n 0000861812 00000 n 0000861856 00000 n 0000861900 00000 n 0000861944 00000 n 0000861989 00000 n 0000862034 00000 n 0000862079 00000 n 0000862124 00000 n 0000862169 00000 n 0000862214 00000 n 0000862258 00000 n 0000862302 00000 n 0000862346 00000 n 0000862390 00000 n 0000862434 00000 n 0000862478 00000 n 0000862523 00000 n 0000862568 00000 n 0000862613 00000 n 0000862658 00000 n 0000862702 00000 n 0000862746 00000 n 0000862790 00000 n 0000862835 00000 n 0000862880 00000 n 0000862924 00000 n 0000862968 00000 n 0000863012 00000 n 0000863056 00000 n 0000863100 00000 n 0000863144 00000 n 0000863188 00000 n 0000863232 00000 n 0000863276 00000 n 0000863321 00000 n 0000863365 00000 n 0000863409 00000 n 0000863453 00000 n 0000863497 00000 n 0000863541 00000 n 0000863586 00000 n 0000863630 00000 n 0000863674 00000 n 0000863718 00000 n 0000863762 00000 n 0000863806 00000 n 0000863850 00000 n 0000863894 00000 n 0000863938 00000 n 0000863982 00000 n 0000864026 00000 n 0000864070 00000 n 0000864115 00000 n 0000864160 00000 n 0000864205 00000 n 0000864250 00000 n 0000864294 00000 n 0000864338 00000 n 0000864382 00000 n 0000864426 00000 n 0000864470 00000 n 0000864514 00000 n 0000864559 00000 n 0000864603 00000 n 0000864647 00000 n 0000864691 00000 n 0000864736 00000 n 0000864781 00000 n 0000864826 00000 n 0000864871 00000 n 0000864916 00000 n 0000864961 00000 n 0000865006 00000 n 0000865051 00000 n 0000865096 00000 n 0000865140 00000 n 0000868792 00000 n 0000868837 00000 n 0000868881 00000 n 0000868926 00000 n 0000868970 00000 n 0000869014 00000 n 0000869059 00000 n 0000869104 00000 n 0000869149 00000 n 0000869194 00000 n 0000869239 00000 n 0000869284 00000 n 0000869329 00000 n 0000869374 00000 n 0000869419 00000 n 0000869464 00000 n 0000869509 00000 n 0000869554 00000 n 0000869599 00000 n 0000869643 00000 n 0000869687 00000 n 0000869732 00000 n 0000869777 00000 n 0000869822 00000 n 0000869867 00000 n 0000869912 00000 n 0000869957 00000 n 0000870002 00000 n 0000870047 00000 n 0000870092 00000 n 0000870136 00000 n 0000870180 00000 n 0000870224 00000 n 0000870269 00000 n 0000870313 00000 n 0000870357 00000 n 0000870401 00000 n 0000870445 00000 n 0000870490 00000 n 0000870534 00000 n 0000870578 00000 n 0000870622 00000 n 0000870666 00000 n 0000870710 00000 n 0000870754 00000 n 0000870799 00000 n 0000870843 00000 n 0000870887 00000 n 0000870931 00000 n 0000870975 00000 n 0000871019 00000 n 0000871064 00000 n 0000871108 00000 n 0000871153 00000 n 0000871198 00000 n 0000871242 00000 n 0000871287 00000 n 0000871332 00000 n 0000871376 00000 n 0000871420 00000 n 0000871465 00000 n 0000871510 00000 n 0000871555 00000 n 0000871600 00000 n 0000871645 00000 n 0000871690 00000 n 0000871735 00000 n 0000871780 00000 n 0000871825 00000 n 0000871870 00000 n 0000871915 00000 n 0000871959 00000 n 0000872004 00000 n 0000872048 00000 n 0000872092 00000 n 0000872136 00000 n 0000872181 00000 n 0000872225 00000 n 0000872269 00000 n 0000872313 00000 n 0000872357 00000 n 0000872401 00000 n 0000872445 00000 n 0000872490 00000 n 0000872535 00000 n 0000872580 00000 n 0000872624 00000 n 0000872669 00000 n 0000872714 00000 n 0000872759 00000 n 0000872804 00000 n 0000872849 00000 n 0000872894 00000 n 0000872939 00000 n 0000872984 00000 n 0000873028 00000 n 0000873072 00000 n 0000873116 00000 n 0000873161 00000 n 0000873206 00000 n 0000873251 00000 n 0000873296 00000 n 0000873341 00000 n 0000873386 00000 n 0000873431 00000 n 0000873475 00000 n 0000873519 00000 n 0000873563 00000 n 0000873608 00000 n 0000873653 00000 n 0000873698 00000 n 0000873743 00000 n 0000873788 00000 n 0000873833 00000 n 0000873878 00000 n 0000873923 00000 n 0000873968 00000 n 0000874013 00000 n 0000874058 00000 n 0000874103 00000 n 0000874148 00000 n 0000874193 00000 n 0000874238 00000 n 0000874283 00000 n 0000874328 00000 n 0000874373 00000 n 0000874417 00000 n 0000874461 00000 n 0000874505 00000 n 0000874549 00000 n 0000874593 00000 n 0000874638 00000 n 0000874682 00000 n 0000874726 00000 n 0000874770 00000 n 0000874815 00000 n 0000874859 00000 n 0000874903 00000 n 0000874947 00000 n 0000874991 00000 n 0000875035 00000 n 0000875079 00000 n 0000875123 00000 n 0000875168 00000 n 0000875213 00000 n 0000875257 00000 n 0000875301 00000 n 0000875345 00000 n 0000875389 00000 n 0000875433 00000 n 0000875477 00000 n 0000875521 00000 n 0000875566 00000 n 0000875611 00000 n 0000875655 00000 n 0000875699 00000 n 0000875743 00000 n 0000875787 00000 n 0000875831 00000 n 0000875875 00000 n 0000875919 00000 n 0000875963 00000 n 0000876007 00000 n 0000876051 00000 n 0000876096 00000 n 0000876141 00000 n 0000876185 00000 n 0000876229 00000 n 0000876273 00000 n 0000876317 00000 n 0000876361 00000 n 0000876405 00000 n 0000876449 00000 n 0000876493 00000 n 0000876537 00000 n 0000876581 00000 n 0000876625 00000 n 0000876669 00000 n 0000876713 00000 n 0000876757 00000 n 0000876801 00000 n 0000876846 00000 n 0000876890 00000 n 0000876935 00000 n 0000876979 00000 n 0000877023 00000 n 0000877067 00000 n 0000877111 00000 n 0000877155 00000 n 0000877199 00000 n 0000877244 00000 n 0000877289 00000 n 0000877334 00000 n 0000877379 00000 n 0000877423 00000 n 0000877467 00000 n 0000877512 00000 n 0000877557 00000 n 0000877602 00000 n 0000877646 00000 n 0000877690 00000 n 0000877734 00000 n 0000877778 00000 n 0000880050 00000 n 0000880094 00000 n 0000880138 00000 n 0000880182 00000 n 0000880226 00000 n 0000880270 00000 n 0000880314 00000 n 0000880358 00000 n 0000880402 00000 n 0000880446 00000 n 0000880490 00000 n 0000880534 00000 n 0000880579 00000 n 0000880624 00000 n 0000880669 00000 n 0000880714 00000 n 0000880759 00000 n 0000880804 00000 n 0000880849 00000 n 0000880894 00000 n 0000880939 00000 n 0000880984 00000 n 0000881029 00000 n 0000881074 00000 n 0000881119 00000 n 0000881164 00000 n 0000881208 00000 n 0000881252 00000 n 0000881296 00000 n 0000881340 00000 n 0000881385 00000 n 0000881429 00000 n 0000881474 00000 n 0000881519 00000 n 0000881564 00000 n 0000881609 00000 n 0000881654 00000 n 0000881699 00000 n 0000881744 00000 n 0000881789 00000 n 0000881834 00000 n 0000881879 00000 n 0000881924 00000 n 0000881969 00000 n 0000882014 00000 n 0000882059 00000 n 0000882104 00000 n 0000882148 00000 n 0000882193 00000 n 0000882238 00000 n 0000882282 00000 n 0000882326 00000 n 0000882370 00000 n 0000882415 00000 n 0000882459 00000 n 0000882503 00000 n 0000882548 00000 n 0000882593 00000 n 0000882638 00000 n 0000882683 00000 n 0000882728 00000 n 0000882772 00000 n 0000882817 00000 n 0000882862 00000 n 0000882907 00000 n 0000882952 00000 n 0000882997 00000 n 0000883042 00000 n 0000883087 00000 n 0000883132 00000 n 0000883177 00000 n 0000883221 00000 n 0000883265 00000 n 0000883309 00000 n 0000883353 00000 n 0000883397 00000 n 0000883441 00000 n 0000883485 00000 n 0000883529 00000 n 0000883573 00000 n 0000883617 00000 n 0000883661 00000 n 0000883705 00000 n 0000883749 00000 n 0000883793 00000 n 0000883837 00000 n 0000883881 00000 n 0000883925 00000 n 0000883969 00000 n 0000884013 00000 n 0000884057 00000 n 0000884101 00000 n 0000884145 00000 n 0000884189 00000 n 0000884234 00000 n 0000884279 00000 n 0000884324 00000 n 0000884369 00000 n 0000884414 00000 n 0000884459 00000 n 0000884504 00000 n 0000884549 00000 n 0000884594 00000 n 0000884639 00000 n 0000884683 00000 n 0000884727 00000 n 0000884771 00000 n 0000884815 00000 n 0000884859 00000 n 0000884903 00000 n 0000884947 00000 n 0000884991 00000 n 0000885035 00000 n 0000885079 00000 n 0000885123 00000 n 0000885167 00000 n 0000885211 00000 n 0000885255 00000 n 0000885299 00000 n 0000885343 00000 n 0000885387 00000 n 0000885431 00000 n 0000885475 00000 n 0000885520 00000 n 0000885565 00000 n 0000885609 00000 n 0000885654 00000 n 0000885699 00000 n 0000885743 00000 n 0000885787 00000 n 0000885831 00000 n 0000885875 00000 n 0000885919 00000 n 0000885963 00000 n 0000886008 00000 n 0000886052 00000 n 0000886096 00000 n 0000886140 00000 n 0000886184 00000 n 0000886229 00000 n 0000886274 00000 n 0000886318 00000 n 0000886362 00000 n 0000886406 00000 n 0000886450 00000 n 0000886494 00000 n 0000886538 00000 n 0000886582 00000 n 0000886627 00000 n 0000886672 00000 n 0000886716 00000 n 0000886760 00000 n 0000886804 00000 n 0000886848 00000 n 0000886892 00000 n 0000886937 00000 n 0000886982 00000 n 0000887027 00000 n 0000887071 00000 n 0000887115 00000 n 0000887159 00000 n 0000887203 00000 n 0000887247 00000 n 0000887291 00000 n 0000887335 00000 n 0000887380 00000 n 0000887424 00000 n 0000887469 00000 n 0000887514 00000 n 0000887559 00000 n 0000887604 00000 n 0000887649 00000 n 0000887694 00000 n 0000887739 00000 n 0000887784 00000 n 0000887828 00000 n 0000887872 00000 n 0000887916 00000 n 0000887960 00000 n 0000888004 00000 n 0000888048 00000 n 0000888092 00000 n 0000888136 00000 n 0000888180 00000 n 0000888224 00000 n 0000888268 00000 n 0000888312 00000 n 0000888356 00000 n 0000888400 00000 n 0000888444 00000 n 0000888488 00000 n 0000888532 00000 n 0000888576 00000 n 0000888621 00000 n 0000888666 00000 n 0000888711 00000 n 0000888756 00000 n 0000888800 00000 n 0000888845 00000 n 0000888889 00000 n 0000888934 00000 n 0000888979 00000 n 0000889024 00000 n 0000889069 00000 n 0000889114 00000 n 0000889159 00000 n 0000889204 00000 n 0000889249 00000 n 0000889294 00000 n 0000889338 00000 n 0000889382 00000 n 0000889426 00000 n 0000889470 00000 n 0000889515 00000 n 0000889560 00000 n 0000889604 00000 n 0000889649 00000 n 0000889693 00000 n 0000889737 00000 n 0000889781 00000 n 0000889826 00000 n 0000889870 00000 n 0000889915 00000 n 0000889960 00000 n 0000890005 00000 n 0000890050 00000 n 0000890095 00000 n 0000890140 00000 n 0000890185 00000 n 0000890230 00000 n 0000890274 00000 n 0000890319 00000 n 0000890364 00000 n 0000890409 00000 n 0000890454 00000 n 0000890499 00000 n 0000890543 00000 n 0000890587 00000 n 0000890631 00000 n 0000890675 00000 n 0000890719 00000 n 0000890764 00000 n 0000890809 00000 n 0000890854 00000 n 0000890898 00000 n 0000890942 00000 n 0000890986 00000 n 0000891030 00000 n 0000891075 00000 n 0000891120 00000 n 0000891165 00000 n 0000891209 00000 n 0000891253 00000 n 0000891297 00000 n 0000891341 00000 n 0000891385 00000 n 0000891430 00000 n 0000891474 00000 n 0000891519 00000 n 0000891564 00000 n 0000891609 00000 n 0000891653 00000 n 0000891697 00000 n 0000891741 00000 n 0000891786 00000 n 0000891830 00000 n 0000891874 00000 n 0000891919 00000 n 0000891963 00000 n 0000892007 00000 n 0000892051 00000 n 0000892096 00000 n 0000895058 00000 n 0000895103 00000 n 0000895148 00000 n 0000895193 00000 n 0000895238 00000 n 0000895283 00000 n 0000895328 00000 n 0000895373 00000 n 0000895418 00000 n 0000895463 00000 n 0000895508 00000 n 0000895553 00000 n 0000895598 00000 n 0000895643 00000 n 0000895688 00000 n 0000895733 00000 n 0000895778 00000 n 0000895823 00000 n 0000895867 00000 n 0000895911 00000 n 0000895955 00000 n 0000895999 00000 n 0000896043 00000 n 0000896087 00000 n 0000896131 00000 n 0000896175 00000 n 0000896219 00000 n 0000896263 00000 n 0000896307 00000 n 0000896351 00000 n 0000896395 00000 n 0000896439 00000 n 0000896483 00000 n 0000896527 00000 n 0000896571 00000 n 0000896615 00000 n 0000896659 00000 n 0000896703 00000 n 0000896747 00000 n 0000896791 00000 n 0000896836 00000 n 0000896881 00000 n 0000896926 00000 n 0000896971 00000 n 0000897016 00000 n 0000897061 00000 n 0000897105 00000 n 0000897149 00000 n 0000897193 00000 n 0000897237 00000 n 0000897281 00000 n 0000897325 00000 n 0000897369 00000 n 0000897414 00000 n 0000897459 00000 n 0000897504 00000 n 0000897549 00000 n 0000897594 00000 n 0000897639 00000 n 0000897683 00000 n 0000897728 00000 n 0000897772 00000 n 0000897816 00000 n 0000897860 00000 n 0000897905 00000 n 0000897949 00000 n 0000897993 00000 n 0000898037 00000 n 0000898081 00000 n 0000898126 00000 n 0000898171 00000 n 0000898216 00000 n 0000898261 00000 n 0000898306 00000 n 0000898351 00000 n 0000898395 00000 n 0000898440 00000 n 0000898484 00000 n 0000898528 00000 n 0000898572 00000 n 0000898616 00000 n 0000898660 00000 n 0000898704 00000 n 0000898748 00000 n 0000898792 00000 n 0000898836 00000 n 0000898880 00000 n 0000898924 00000 n 0000898968 00000 n 0000899012 00000 n 0000899056 00000 n 0000899100 00000 n 0000899144 00000 n 0000899188 00000 n 0000899232 00000 n 0000899276 00000 n 0000899321 00000 n 0000899366 00000 n 0000899411 00000 n 0000899456 00000 n 0000899501 00000 n 0000899546 00000 n 0000899591 00000 n 0000899636 00000 n 0000899681 00000 n 0000899726 00000 n 0000899771 00000 n 0000899815 00000 n 0000899860 00000 n 0000899904 00000 n 0000899948 00000 n 0000899992 00000 n 0000900036 00000 n 0000900080 00000 n 0000900124 00000 n 0000900168 00000 n 0000900212 00000 n 0000900257 00000 n 0000900302 00000 n 0000900347 00000 n 0000900392 00000 n 0000900437 00000 n 0000900481 00000 n 0000900525 00000 n 0000900570 00000 n 0000900614 00000 n 0000900659 00000 n 0000900703 00000 n 0000900747 00000 n 0000900792 00000 n 0000900837 00000 n 0000900882 00000 n 0000900927 00000 n 0000900972 00000 n 0000901017 00000 n 0000901062 00000 n 0000901107 00000 n 0000901152 00000 n 0000901196 00000 n 0000901240 00000 n 0000901284 00000 n 0000901328 00000 n 0000901373 00000 n 0000901417 00000 n 0000901461 00000 n 0000901505 00000 n 0000901549 00000 n 0000901593 00000 n 0000901637 00000 n 0000901681 00000 n 0000901725 00000 n 0000901769 00000 n 0000901814 00000 n 0000901859 00000 n 0000901903 00000 n 0000901947 00000 n 0000901992 00000 n 0000902037 00000 n 0000902082 00000 n 0000902127 00000 n 0000902172 00000 n 0000902217 00000 n 0000902261 00000 n 0000902306 00000 n 0000902351 00000 n 0000902396 00000 n 0000902441 00000 n 0000902486 00000 n 0000902531 00000 n 0000902576 00000 n 0000902621 00000 n 0000902665 00000 n 0000902710 00000 n 0000902754 00000 n 0000902798 00000 n 0000902842 00000 n 0000902886 00000 n 0000902930 00000 n 0000902974 00000 n 0000903019 00000 n 0000903063 00000 n 0000903108 00000 n 0000903153 00000 n 0000903198 00000 n 0000903243 00000 n 0000903287 00000 n 0000903332 00000 n 0000903376 00000 n 0000903421 00000 n 0000903466 00000 n 0000903510 00000 n 0000903554 00000 n 0000903598 00000 n 0000903643 00000 n 0000903687 00000 n 0000903731 00000 n 0000903775 00000 n 0000903819 00000 n 0000903863 00000 n 0000903907 00000 n 0000903951 00000 n 0000903995 00000 n 0000904039 00000 n 0000904083 00000 n 0000904127 00000 n 0000904171 00000 n 0000904215 00000 n 0000904259 00000 n 0000904303 00000 n 0000904347 00000 n 0000904391 00000 n 0000904435 00000 n 0000904479 00000 n 0000904523 00000 n 0000904567 00000 n 0000904611 00000 n 0000904655 00000 n 0000904699 00000 n 0000904743 00000 n 0000904787 00000 n 0000904831 00000 n 0000904875 00000 n 0000904919 00000 n 0000904963 00000 n 0000905007 00000 n 0000905051 00000 n 0000905095 00000 n 0000905140 00000 n 0000905185 00000 n 0000905230 00000 n 0000905275 00000 n 0000905320 00000 n 0000905365 00000 n 0000905410 00000 n 0000905455 00000 n 0000905500 00000 n 0000905545 00000 n 0000905590 00000 n 0000905635 00000 n 0000905680 00000 n 0000905725 00000 n 0000905770 00000 n 0000905815 00000 n 0000905860 00000 n 0000905905 00000 n 0000905950 00000 n 0000905995 00000 n 0000906040 00000 n 0000906085 00000 n 0000906130 00000 n 0000906175 00000 n 0000906220 00000 n 0000906265 00000 n 0000906310 00000 n 0000906355 00000 n 0000906400 00000 n 0000906445 00000 n 0000906490 00000 n 0000906535 00000 n 0000906580 00000 n 0000906625 00000 n 0000906670 00000 n 0000906715 00000 n 0000906760 00000 n 0000906805 00000 n 0000906850 00000 n 0000906895 00000 n 0000906940 00000 n 0000906985 00000 n 0000907030 00000 n 0000907075 00000 n 0000907120 00000 n 0000907165 00000 n 0000907210 00000 n 0000907255 00000 n 0000907300 00000 n 0000907345 00000 n 0000907389 00000 n 0000907434 00000 n 0000907479 00000 n 0000907524 00000 n 0000907569 00000 n 0000907614 00000 n 0000907659 00000 n 0000907704 00000 n 0000907749 00000 n 0000907794 00000 n 0000907839 00000 n 0000907884 00000 n 0000907929 00000 n 0000907974 00000 n 0000908019 00000 n 0000908064 00000 n 0000908109 00000 n 0000908154 00000 n 0000908199 00000 n 0000908244 00000 n 0000908288 00000 n 0000908332 00000 n 0000908376 00000 n 0000908421 00000 n 0000908466 00000 n 0000908511 00000 n 0000908556 00000 n 0000908601 00000 n 0000908646 00000 n 0000908691 00000 n 0000908736 00000 n 0000908781 00000 n 0000908826 00000 n 0000908871 00000 n 0000908916 00000 n 0000908961 00000 n 0000909006 00000 n 0000909051 00000 n 0000909096 00000 n 0000909141 00000 n 0000909185 00000 n 0000909229 00000 n 0000909273 00000 n 0000909317 00000 n 0000909361 00000 n 0000912823 00000 n 0000912868 00000 n 0000912913 00000 n 0000912958 00000 n 0000913003 00000 n 0000913048 00000 n 0000913093 00000 n 0000913138 00000 n 0000913183 00000 n 0000913228 00000 n 0000913273 00000 n 0000913318 00000 n 0000913362 00000 n 0000913406 00000 n 0000913450 00000 n 0000913494 00000 n 0000913538 00000 n 0000913582 00000 n 0000913626 00000 n 0000913670 00000 n 0000913715 00000 n 0000913760 00000 n 0000913804 00000 n 0000913848 00000 n 0000913893 00000 n 0000913937 00000 n 0000913982 00000 n 0000914027 00000 n 0000914071 00000 n 0000914115 00000 n 0000914159 00000 n 0000914204 00000 n 0000914248 00000 n 0000914292 00000 n 0000914336 00000 n 0000914380 00000 n 0000914424 00000 n 0000914468 00000 n 0000914512 00000 n 0000914556 00000 n 0000914600 00000 n 0000914644 00000 n 0000914688 00000 n 0000914732 00000 n 0000914776 00000 n 0000914820 00000 n 0000914864 00000 n 0000914908 00000 n 0000914952 00000 n 0000914996 00000 n 0000915040 00000 n 0000915084 00000 n 0000915129 00000 n 0000915173 00000 n 0000915217 00000 n 0000915261 00000 n 0000915305 00000 n 0000915349 00000 n 0000915393 00000 n 0000915437 00000 n 0000915481 00000 n 0000915525 00000 n 0000915569 00000 n 0000915613 00000 n 0000915657 00000 n 0000915701 00000 n 0000915745 00000 n 0000915789 00000 n 0000915833 00000 n 0000915877 00000 n 0000915921 00000 n 0000915965 00000 n 0000916009 00000 n 0000916053 00000 n 0000916097 00000 n 0000916141 00000 n 0000916185 00000 n 0000916229 00000 n 0000916273 00000 n 0000916317 00000 n 0000916361 00000 n 0000916405 00000 n 0000916449 00000 n 0000916493 00000 n 0000916537 00000 n 0000916581 00000 n 0000916625 00000 n 0000916669 00000 n 0000916713 00000 n 0000916757 00000 n 0000916801 00000 n 0000916845 00000 n 0000916890 00000 n 0000916935 00000 n 0000916980 00000 n 0000917025 00000 n 0000917070 00000 n 0000917115 00000 n 0000917160 00000 n 0000917205 00000 n 0000917250 00000 n 0000917295 00000 n 0000917340 00000 n 0000917385 00000 n 0000917430 00000 n 0000917475 00000 n 0000917520 00000 n 0000917565 00000 n 0000917610 00000 n 0000917655 00000 n 0000917700 00000 n 0000917745 00000 n 0000917790 00000 n 0000917835 00000 n 0000917880 00000 n 0000917925 00000 n 0000917970 00000 n 0000918015 00000 n 0000918060 00000 n 0000918105 00000 n 0000918150 00000 n 0000918195 00000 n 0000918240 00000 n 0000918285 00000 n 0000918330 00000 n 0000918375 00000 n 0000918420 00000 n 0000918464 00000 n 0000918508 00000 n 0000918552 00000 n 0000918596 00000 n 0000918640 00000 n 0000918684 00000 n 0000918729 00000 n 0000918773 00000 n 0000918817 00000 n 0000918861 00000 n 0000920473 00000 n 0000920698 00000 n 0000920923 00000 n 0000921148 00000 n 0000921373 00000 n 0000921598 00000 n 0000921910 00000 n 0000921952 00000 n 0000921995 00000 n 0000922038 00000 n 0000922081 00000 n 0000922124 00000 n 0000922167 00000 n 0000922210 00000 n 0000922253 00000 n 0000922296 00000 n 0000922339 00000 n 0000922382 00000 n 0000922425 00000 n 0000922468 00000 n 0000922511 00000 n 0000922554 00000 n 0000922597 00000 n 0000922640 00000 n 0000922683 00000 n 0000922726 00000 n 0000922769 00000 n 0000922812 00000 n 0000922855 00000 n 0000922898 00000 n 0000922941 00000 n 0000922984 00000 n 0000923027 00000 n 0000923070 00000 n 0000923113 00000 n 0000923156 00000 n 0000923199 00000 n 0000923242 00000 n 0000923285 00000 n 0000923328 00000 n 0000923371 00000 n 0000923414 00000 n 0000923457 00000 n 0000923500 00000 n 0000923543 00000 n 0000923586 00000 n 0000923629 00000 n 0000923672 00000 n 0000923715 00000 n 0000923758 00000 n 0000923801 00000 n 0000923844 00000 n 0000923887 00000 n 0000923930 00000 n 0000923973 00000 n 0000924016 00000 n 0000924059 00000 n 0000924102 00000 n 0000924145 00000 n 0000924188 00000 n 0000924231 00000 n 0000924274 00000 n 0000924317 00000 n 0000924360 00000 n 0000924403 00000 n 0000924446 00000 n 0000924489 00000 n 0000924532 00000 n 0000924575 00000 n 0000924618 00000 n 0000924661 00000 n 0000924704 00000 n 0000924747 00000 n 0000924790 00000 n 0000924833 00000 n 0000924876 00000 n 0000924919 00000 n 0000924962 00000 n 0000925005 00000 n 0000925048 00000 n 0000925091 00000 n 0000925134 00000 n 0000925177 00000 n 0000925220 00000 n 0000925263 00000 n 0000925306 00000 n 0000925349 00000 n 0000925392 00000 n 0000925435 00000 n 0000925478 00000 n 0000925521 00000 n 0000925564 00000 n 0000925607 00000 n 0000925650 00000 n 0000925693 00000 n 0000925736 00000 n 0000925779 00000 n 0000925822 00000 n 0000925865 00000 n 0000925908 00000 n 0000925951 00000 n 0000925994 00000 n 0000926037 00000 n 0000926080 00000 n 0000926123 00000 n 0000926166 00000 n 0000926209 00000 n 0000926252 00000 n 0000926295 00000 n 0000926338 00000 n 0000926381 00000 n 0000926424 00000 n 0000926467 00000 n 0000926510 00000 n 0000926553 00000 n 0000926596 00000 n 0000926639 00000 n 0000926682 00000 n 0000926725 00000 n 0000926768 00000 n 0000926811 00000 n 0000926854 00000 n 0000926897 00000 n 0000926940 00000 n 0000926983 00000 n 0000927026 00000 n 0000927069 00000 n 0000927112 00000 n 0000927155 00000 n 0000927198 00000 n 0000927241 00000 n 0000927284 00000 n 0000927327 00000 n 0000927370 00000 n 0000927413 00000 n 0000927456 00000 n 0000927499 00000 n 0000927542 00000 n 0000927585 00000 n 0000927628 00000 n 0000927671 00000 n 0000927714 00000 n 0000927757 00000 n 0000927800 00000 n 0000927843 00000 n 0000927886 00000 n 0000927929 00000 n 0000927972 00000 n 0000928015 00000 n 0000928058 00000 n 0000928101 00000 n 0000928144 00000 n 0000928187 00000 n 0000928230 00000 n 0000928273 00000 n 0000928316 00000 n 0000928359 00000 n 0000928402 00000 n 0000928445 00000 n 0000928488 00000 n 0000928531 00000 n 0000928574 00000 n 0000928617 00000 n 0000928660 00000 n 0000928703 00000 n 0000928746 00000 n 0000928789 00000 n 0000928832 00000 n 0000928875 00000 n 0000928918 00000 n 0000928961 00000 n 0000929004 00000 n 0000929047 00000 n 0000929090 00000 n 0000929133 00000 n 0000929176 00000 n 0000929219 00000 n 0000929262 00000 n 0000929305 00000 n 0000929348 00000 n 0000929391 00000 n 0000929434 00000 n 0000929477 00000 n 0000929520 00000 n 0000929563 00000 n 0000929606 00000 n 0000929649 00000 n 0000929692 00000 n 0000929735 00000 n 0000929778 00000 n 0000929821 00000 n 0000929864 00000 n 0000929907 00000 n 0000929950 00000 n 0000929993 00000 n 0000930036 00000 n 0000930079 00000 n 0000930122 00000 n 0000930165 00000 n 0000930208 00000 n 0000930251 00000 n 0000930294 00000 n 0000930337 00000 n 0000930380 00000 n 0000930423 00000 n 0000930466 00000 n 0000930509 00000 n 0000930552 00000 n 0000930595 00000 n 0000930638 00000 n 0000930681 00000 n 0000930725 00000 n 0000930769 00000 n 0000930813 00000 n 0000930857 00000 n 0000930901 00000 n 0000930945 00000 n 0000930989 00000 n 0000931033 00000 n 0000931077 00000 n 0000931121 00000 n 0000931165 00000 n 0000931209 00000 n 0000931253 00000 n 0000931297 00000 n 0000931341 00000 n 0000931385 00000 n 0000931429 00000 n 0000931473 00000 n 0000931517 00000 n 0000931561 00000 n 0000931605 00000 n 0000931649 00000 n 0000931693 00000 n 0000931737 00000 n 0000931781 00000 n 0000931825 00000 n 0000931869 00000 n 0000931913 00000 n 0000931957 00000 n 0000932001 00000 n 0000932045 00000 n 0000932089 00000 n 0000932133 00000 n 0000932177 00000 n 0000932221 00000 n 0000932265 00000 n 0000932309 00000 n 0000932353 00000 n 0000932397 00000 n 0000932441 00000 n 0000932485 00000 n 0000932529 00000 n 0000932573 00000 n 0000932617 00000 n 0000932661 00000 n 0000932705 00000 n 0000932749 00000 n 0000932793 00000 n 0000932837 00000 n 0000932881 00000 n 0000932925 00000 n 0000932969 00000 n 0000933013 00000 n 0000933057 00000 n 0000933101 00000 n 0000933145 00000 n 0000933189 00000 n 0000933233 00000 n 0000933277 00000 n 0000933321 00000 n 0000933365 00000 n 0000933409 00000 n 0000933453 00000 n 0000933497 00000 n 0000933541 00000 n 0000933585 00000 n 0000933629 00000 n 0000933673 00000 n 0000933717 00000 n 0000933761 00000 n 0000933805 00000 n 0000933849 00000 n 0000933893 00000 n 0000933937 00000 n 0000933981 00000 n 0000934025 00000 n 0000934069 00000 n 0000934113 00000 n 0000934157 00000 n 0000934201 00000 n 0000934245 00000 n 0000934289 00000 n 0000934333 00000 n 0000934377 00000 n 0000934421 00000 n 0000934465 00000 n 0000934509 00000 n 0000934553 00000 n 0000934597 00000 n 0000934641 00000 n 0000934685 00000 n 0000934729 00000 n 0000934773 00000 n 0000934817 00000 n 0000934861 00000 n 0000934905 00000 n 0000934949 00000 n 0000934993 00000 n 0000935037 00000 n 0000935081 00000 n 0000935125 00000 n 0000935169 00000 n 0000935213 00000 n 0000935257 00000 n 0000935301 00000 n 0000935345 00000 n 0000935389 00000 n 0000935433 00000 n 0000935477 00000 n 0000935521 00000 n 0000935565 00000 n 0000935609 00000 n 0000935653 00000 n 0000935697 00000 n 0000935741 00000 n 0000935785 00000 n 0000935829 00000 n 0000935873 00000 n 0000935917 00000 n 0000935961 00000 n 0000936005 00000 n 0000936049 00000 n 0000936093 00000 n 0000936137 00000 n 0000936181 00000 n 0000936225 00000 n 0000936269 00000 n 0000936313 00000 n 0000936357 00000 n 0000936401 00000 n 0000936445 00000 n 0000936489 00000 n 0000936533 00000 n 0000936577 00000 n 0000936621 00000 n 0000936665 00000 n 0000936709 00000 n 0000936753 00000 n 0000936797 00000 n 0000936841 00000 n 0000936885 00000 n 0000936929 00000 n 0000936973 00000 n 0000937017 00000 n 0000937061 00000 n 0000937105 00000 n 0000937149 00000 n 0000937193 00000 n 0000937238 00000 n 0000937283 00000 n 0000937328 00000 n 0000937373 00000 n 0000937418 00000 n 0000937463 00000 n 0000937508 00000 n 0000937540 00000 n 0000937608 00000 n 0000937828 00000 n 0000937927 00000 n 0000941828 00000 n 0000941896 00000 n 0000942175 00000 n 0000942274 00000 n 0000944210 00000 n 0000944377 00000 n 0000944544 00000 n 0000944711 00000 n 0000944779 00000 n 0000944999 00000 n 0000945098 00000 n 0000947485 00000 n 0000947553 00000 n 0000947773 00000 n 0000947872 00000 n 0000950439 00000 n 0000950507 00000 n 0000950741 00000 n 0000950840 00000 n 0000955350 00000 n 0000955418 00000 n 0000955695 00000 n 0000955794 00000 n 0000959709 00000 n 0000959875 00000 n 0000959943 00000 n 0000960163 00000 n 0000960262 00000 n 0000963394 00000 n 0000963533 00000 n 0000963672 00000 n 0000963811 00000 n 0000963950 00000 n 0000964089 00000 n 0000964228 00000 n 0000964367 00000 n 0000964506 00000 n 0000964645 00000 n 0000964784 00000 n 0000964923 00000 n 0000965062 00000 n 0000965201 00000 n 0000965340 00000 n 0000965479 00000 n 0000965618 00000 n 0000965757 00000 n 0000965896 00000 n 0000966035 00000 n 0000966174 00000 n 0000966313 00000 n 0000966452 00000 n 0000966591 00000 n 0000966730 00000 n 0000966869 00000 n 0000967008 00000 n 0000967147 00000 n 0000967286 00000 n 0000967425 00000 n 0000967564 00000 n 0000967703 00000 n 0000967842 00000 n 0000967981 00000 n 0000968120 00000 n 0000968259 00000 n 0000968398 00000 n 0000968537 00000 n 0000968676 00000 n 0000968815 00000 n 0000968954 00000 n 0000969093 00000 n 0000969232 00000 n 0000969371 00000 n 0000969510 00000 n 0000969649 00000 n 0000969788 00000 n 0000969927 00000 n 0000970066 00000 n 0000970205 00000 n 0000970344 00000 n 0000970483 00000 n 0000970622 00000 n 0000970761 00000 n 0000970900 00000 n 0000971039 00000 n 0000971178 00000 n 0000971317 00000 n 0000971456 00000 n 0000971595 00000 n 0000971734 00000 n 0000971873 00000 n 0000972012 00000 n 0000972151 00000 n 0000972290 00000 n 0000972429 00000 n 0000972568 00000 n 0000972707 00000 n 0000972846 00000 n 0000972985 00000 n 0000973124 00000 n 0000973263 00000 n 0000973402 00000 n 0000973541 00000 n 0000973680 00000 n 0000973819 00000 n 0000973958 00000 n 0000974097 00000 n 0000974236 00000 n 0000974375 00000 n 0000974514 00000 n 0000974653 00000 n 0000974792 00000 n 0000974931 00000 n 0000975070 00000 n 0000975209 00000 n 0000975348 00000 n 0000975487 00000 n 0000975626 00000 n 0000975765 00000 n 0000975904 00000 n 0000976043 00000 n 0000976182 00000 n 0000976321 00000 n 0000976460 00000 n 0000976599 00000 n 0000976738 00000 n 0000976877 00000 n 0000977016 00000 n 0000977155 00000 n 0000977294 00000 n 0000977433 00000 n 0000977572 00000 n 0000977711 00000 n 0000977850 00000 n 0000977989 00000 n 0000978128 00000 n 0000978267 00000 n 0000978406 00000 n 0000978545 00000 n 0000978684 00000 n 0000978823 00000 n 0000978962 00000 n 0000979101 00000 n 0000979240 00000 n 0000979379 00000 n 0000979518 00000 n 0000979657 00000 n 0000979796 00000 n 0000979935 00000 n 0000980074 00000 n 0000980213 00000 n 0000980352 00000 n 0000980491 00000 n 0000980630 00000 n 0000980769 00000 n 0000980908 00000 n 0000981047 00000 n 0000981186 00000 n 0000981325 00000 n 0000981464 00000 n 0000981603 00000 n 0000981742 00000 n 0000981881 00000 n 0000982020 00000 n 0000982159 00000 n 0000982298 00000 n 0000982437 00000 n 0000982576 00000 n 0000982715 00000 n 0000982854 00000 n 0000982993 00000 n 0000983132 00000 n 0000983271 00000 n 0000983410 00000 n 0000983549 00000 n 0000983688 00000 n 0000983827 00000 n 0000983966 00000 n 0000984105 00000 n 0000984244 00000 n 0000984383 00000 n 0000984522 00000 n 0000984661 00000 n 0000984800 00000 n 0000984939 00000 n 0000985078 00000 n 0000985217 00000 n 0000985356 00000 n 0000985495 00000 n 0000985634 00000 n 0000985773 00000 n 0000985912 00000 n 0000986051 00000 n 0000986190 00000 n 0000986329 00000 n 0000986468 00000 n 0000986607 00000 n 0000986746 00000 n 0000986885 00000 n 0000987024 00000 n 0000987163 00000 n 0000987302 00000 n 0000987441 00000 n 0000987580 00000 n 0000987719 00000 n 0000987858 00000 n 0000987997 00000 n 0000988136 00000 n 0000988275 00000 n 0000988414 00000 n 0000988553 00000 n 0000988692 00000 n 0000988831 00000 n 0000988970 00000 n 0000989109 00000 n 0000989248 00000 n 0000989387 00000 n 0000989526 00000 n 0000989665 00000 n 0000989804 00000 n 0000989943 00000 n 0000990082 00000 n 0000990221 00000 n 0000990360 00000 n 0000990499 00000 n 0000990638 00000 n 0000990777 00000 n 0000990916 00000 n 0000991055 00000 n 0000991194 00000 n 0000991333 00000 n 0000991472 00000 n 0000991611 00000 n 0000991750 00000 n 0000991889 00000 n 0000992028 00000 n 0000992071 00000 n 0000992114 00000 n 0000992157 00000 n 0000992200 00000 n 0000992268 00000 n 0000992517 00000 n 0000992616 00000 n 0000996930 00000 n 0000996998 00000 n 0000997247 00000 n 0000997346 00000 n 0001001217 00000 n 0001001285 00000 n 0001001505 00000 n 0001001604 00000 n 0001005281 00000 n 0001005349 00000 n 0001005642 00000 n 0001005741 00000 n 0001008011 00000 n 0001008177 00000 n 0001008343 00000 n 0001008509 00000 n 0001008675 00000 n 0001008841 00000 n 0001009007 00000 n 0001009173 00000 n 0001009339 00000 n 0001009505 00000 n 0001009671 00000 n 0001009837 00000 n 0001010003 00000 n 0001010168 00000 n 0001010332 00000 n 0001010497 00000 n 0001010662 00000 n 0001010827 00000 n 0001010993 00000 n 0001011159 00000 n 0001011325 00000 n 0001011491 00000 n 0001011656 00000 n 0001011822 00000 n 0001011987 00000 n 0001012153 00000 n 0001012319 00000 n 0001012485 00000 n 0001012648 00000 n 0001012814 00000 n 0001012980 00000 n 0001013146 00000 n 0001013312 00000 n 0001013478 00000 n 0001013644 00000 n 0001013810 00000 n 0001013976 00000 n 0001014141 00000 n 0001014307 00000 n 0001014349 00000 n 0001014391 00000 n 0001014433 00000 n 0001014475 00000 n 0001014518 00000 n 0001014586 00000 n 0001014806 00000 n 0001014905 00000 n 0001019145 00000 n 0001019318 00000 n 0001019492 00000 n 0001019662 00000 n 0001019993 00000 n 0001020415 00000 n 0001020447 00000 n 0001020617 00000 n 0001020663 00000 n 0001020731 00000 n 0001020951 00000 n 0001021050 00000 n 0001023308 00000 n 0001023639 00000 n 0001024061 00000 n 0001024129 00000 n 0001024364 00000 n 0001024463 00000 n 0001028157 00000 n 0001028332 00000 n 0001028663 00000 n 0001029085 00000 n 0001029127 00000 n 0001029195 00000 n 0001030080 00000 n 0001030178 00000 n 0001046930 00000 n 0001046994 00000 n 0001047062 00000 n 0001047296 00000 n 0001047395 00000 n 0001051787 00000 n 0001051949 00000 n 0001052280 00000 n 0001052702 00000 n 0001052770 00000 n 0001052990 00000 n 0001053089 00000 n 0001054773 00000 n 0001055104 00000 n 0001055526 00000 n 0001055594 00000 n 0001055814 00000 n 0001055913 00000 n 0001060076 00000 n 0001060407 00000 n 0001060829 00000 n 0001060897 00000 n 0001061117 00000 n 0001061216 00000 n 0001065045 00000 n 0001065376 00000 n 0001065798 00000 n 0001065903 00000 n 0001065971 00000 n 0001066219 00000 n 0001066318 00000 n 0001067366 00000 n 0001067530 00000 n 0001067695 00000 n 0001067859 00000 n 0001068023 00000 n 0001068188 00000 n 0001068352 00000 n 0001068516 00000 n 0001068680 00000 n 0001068845 00000 n 0001069010 00000 n 0001069175 00000 n 0001069339 00000 n 0001069504 00000 n 0001069669 00000 n 0001069834 00000 n 0001069999 00000 n 0001070164 00000 n 0001070329 00000 n 0001070494 00000 n 0001070535 00000 n 0001070603 00000 n 0001070866 00000 n 0001070965 00000 n 0001073143 00000 n 0001073318 00000 n 0001073649 00000 n 0001074071 00000 n 0001074139 00000 n 0001074388 00000 n 0001074487 00000 n 0001078404 00000 n 0001078571 00000 n 0001078738 00000 n 0001078915 00000 n 0001079246 00000 n 0001079668 00000 n 0001079736 00000 n 0001079985 00000 n 0001080084 00000 n 0001083888 00000 n 0001084219 00000 n 0001084641 00000 n 0001084709 00000 n 0001084943 00000 n 0001085042 00000 n 0001087880 00000 n 0001088046 00000 n 0001088212 00000 n 0001088543 00000 n 0001088965 00000 n 0001089033 00000 n 0001089267 00000 n 0001089366 00000 n 0001094878 00000 n 0001095209 00000 n 0001095631 00000 n 0001095699 00000 n 0001095962 00000 n 0001096061 00000 n 0001100070 00000 n 0001100401 00000 n 0001100823 00000 n 0001100891 00000 n 0001101125 00000 n 0001101224 00000 n 0001104953 00000 n 0001105120 00000 n 0001105451 00000 n 0001105873 00000 n 0001105941 00000 n 0001106190 00000 n 0001106289 00000 n 0001110951 00000 n 0001111117 00000 n 0001111448 00000 n 0001111870 00000 n 0001111938 00000 n 0001112186 00000 n 0001112285 00000 n 0001116100 00000 n 0001116266 00000 n 0001116597 00000 n 0001117019 00000 n 0001117087 00000 n 0001117453 00000 n 0001117521 00000 n 0001118616 00000 n 0001119813 00000 n 0001120881 00000 n 0001122078 00000 n 0001123063 00000 n 0001124333 00000 n 0001125622 00000 n 0001126902 00000 n 0001126970 00000 n 0001127233 00000 n 0001127332 00000 n 0001131939 00000 n 0001132102 00000 n 0001132170 00000 n 0001132419 00000 n 0001132518 00000 n 0001134481 00000 n 0001134549 00000 n 0001134798 00000 n 0001134897 00000 n 0001139103 00000 n 0001139171 00000 n 0001139406 00000 n 0001139505 00000 n 0001143228 00000 n 0001143296 00000 n 0001143516 00000 n 0001143615 00000 n 0001146372 00000 n 0001146415 00000 n 0001146458 00000 n 0001146526 00000 n 0001146746 00000 n 0001146845 00000 n 0001149976 00000 n 0001150115 00000 n 0001150254 00000 n 0001150393 00000 n 0001150532 00000 n 0001150671 00000 n 0001150810 00000 n 0001150949 00000 n 0001151088 00000 n 0001151227 00000 n 0001151366 00000 n 0001151505 00000 n 0001151644 00000 n 0001151783 00000 n 0001151922 00000 n 0001152061 00000 n 0001152200 00000 n 0001152339 00000 n 0001152478 00000 n 0001152617 00000 n 0001152756 00000 n 0001152895 00000 n 0001153034 00000 n 0001153173 00000 n 0001153312 00000 n 0001153451 00000 n 0001153590 00000 n 0001153729 00000 n 0001153868 00000 n 0001154007 00000 n 0001154146 00000 n 0001154285 00000 n 0001154424 00000 n 0001154563 00000 n 0001154702 00000 n 0001154841 00000 n 0001154980 00000 n 0001155119 00000 n 0001155258 00000 n 0001155397 00000 n 0001155536 00000 n 0001155675 00000 n 0001155814 00000 n 0001155953 00000 n 0001156092 00000 n 0001156231 00000 n 0001156370 00000 n 0001156509 00000 n 0001156648 00000 n 0001156787 00000 n 0001156926 00000 n 0001157065 00000 n 0001157204 00000 n 0001157343 00000 n 0001157482 00000 n 0001157621 00000 n 0001157760 00000 n 0001157899 00000 n 0001158038 00000 n 0001158177 00000 n 0001158316 00000 n 0001158455 00000 n 0001158594 00000 n 0001158733 00000 n 0001158872 00000 n 0001159011 00000 n 0001159150 00000 n 0001159289 00000 n 0001159428 00000 n 0001159567 00000 n 0001159706 00000 n 0001159845 00000 n 0001159984 00000 n 0001160123 00000 n 0001160262 00000 n 0001160401 00000 n 0001160540 00000 n 0001160679 00000 n 0001160818 00000 n 0001160957 00000 n 0001161096 00000 n 0001161235 00000 n 0001161374 00000 n 0001161513 00000 n 0001161652 00000 n 0001161791 00000 n 0001161930 00000 n 0001162069 00000 n 0001162208 00000 n 0001162347 00000 n 0001162486 00000 n 0001162625 00000 n 0001162764 00000 n 0001162903 00000 n 0001163042 00000 n 0001163181 00000 n 0001163320 00000 n 0001163459 00000 n 0001163598 00000 n 0001163737 00000 n 0001163876 00000 n 0001164015 00000 n 0001164154 00000 n 0001164293 00000 n 0001164432 00000 n 0001164571 00000 n 0001164710 00000 n 0001164849 00000 n 0001164988 00000 n 0001165127 00000 n 0001165266 00000 n 0001165405 00000 n 0001165544 00000 n 0001165683 00000 n 0001165822 00000 n 0001165961 00000 n 0001166100 00000 n 0001166239 00000 n 0001166378 00000 n 0001166517 00000 n 0001166656 00000 n 0001166795 00000 n 0001166934 00000 n 0001167073 00000 n 0001167212 00000 n 0001167351 00000 n 0001167490 00000 n 0001167629 00000 n 0001167768 00000 n 0001167907 00000 n 0001168046 00000 n 0001168185 00000 n 0001168324 00000 n 0001168463 00000 n 0001168602 00000 n 0001168741 00000 n 0001168880 00000 n 0001169019 00000 n 0001169158 00000 n 0001169297 00000 n 0001169436 00000 n 0001169575 00000 n 0001169714 00000 n 0001169853 00000 n 0001169992 00000 n 0001170131 00000 n 0001170270 00000 n 0001170409 00000 n 0001170548 00000 n 0001170687 00000 n 0001170826 00000 n 0001170965 00000 n 0001171104 00000 n 0001171243 00000 n 0001171382 00000 n 0001171521 00000 n 0001171660 00000 n 0001171799 00000 n 0001171938 00000 n 0001172077 00000 n 0001172216 00000 n 0001172355 00000 n 0001172494 00000 n 0001172633 00000 n 0001172772 00000 n 0001172911 00000 n 0001173050 00000 n 0001173189 00000 n 0001173328 00000 n 0001173467 00000 n 0001173606 00000 n 0001173745 00000 n 0001173884 00000 n 0001174023 00000 n 0001174162 00000 n 0001174493 00000 n 0001174915 00000 n 0001174958 00000 n 0001175001 00000 n 0001175069 00000 n 0001175332 00000 n 0001175431 00000 n 0001179488 00000 n 0001179655 00000 n 0001179986 00000 n 0001180408 00000 n 0001180451 00000 n 0001180519 00000 n 0001180768 00000 n 0001180867 00000 n 0001184871 00000 n 0001185202 00000 n 0001185624 00000 n 0001185692 00000 n 0001185941 00000 n 0001186040 00000 n 0001189850 00000 n 0001190016 00000 n 0001190347 00000 n 0001190769 00000 n 0001190837 00000 n 0001191057 00000 n 0001191156 00000 n 0001194434 00000 n 0001194765 00000 n 0001195187 00000 n 0001195230 00000 n 0001195273 00000 n 0001195341 00000 n 0001195561 00000 n 0001195660 00000 n 0001199374 00000 n 0001199705 00000 n 0001200127 00000 n 0001200195 00000 n 0001200430 00000 n 0001200529 00000 n 0001204660 00000 n 0001204991 00000 n 0001205413 00000 n 0001205456 00000 n 0001205524 00000 n 0001205759 00000 n 0001205858 00000 n 0001209171 00000 n 0001209502 00000 n 0001209924 00000 n 0001209967 00000 n 0001210010 00000 n 0001210078 00000 n 0001210327 00000 n 0001210426 00000 n 0001213130 00000 n 0001213297 00000 n 0001213365 00000 n 0001213600 00000 n 0001213699 00000 n 0001217521 00000 n 0001217564 00000 n 0001217607 00000 n 0001217675 00000 n 0001217938 00000 n 0001218037 00000 n 0001221248 00000 n 0001221413 00000 n 0001221744 00000 n 0001222166 00000 n 0001222208 00000 n 0001222251 00000 n 0001222319 00000 n 0001222582 00000 n 0001222681 00000 n 0001226706 00000 n 0001227037 00000 n 0001227459 00000 n 0001227502 00000 n 0001227570 00000 n 0001227833 00000 n 0001227932 00000 n 0001230490 00000 n 0001230821 00000 n 0001231243 00000 n 0001231311 00000 n 0001231545 00000 n 0001231644 00000 n 0001235480 00000 n 0001235646 00000 n 0001235977 00000 n 0001236399 00000 n 0001236442 00000 n 0001236485 00000 n 0001236553 00000 n 0001236802 00000 n 0001236901 00000 n 0001240765 00000 n 0001240932 00000 n 0001241000 00000 n 0001241220 00000 n 0001241319 00000 n 0001242980 00000 n 0001243311 00000 n 0001243733 00000 n 0001243801 00000 n 0001244065 00000 n 0001244164 00000 n 0001245877 00000 n 0001246044 00000 n 0001246211 00000 n 0001246378 00000 n 0001246560 00000 n 0001246742 00000 n 0001247073 00000 n 0001247495 00000 n 0001247563 00000 n 0001247811 00000 n 0001247910 00000 n 0001251673 00000 n 0001251840 00000 n 0001252171 00000 n 0001252593 00000 n 0001252661 00000 n 0001252911 00000 n 0001253010 00000 n 0001255080 00000 n 0001255244 00000 n 0001255411 00000 n 0001255742 00000 n 0001256164 00000 n 0001256232 00000 n 0001256452 00000 n 0001256551 00000 n 0001260309 00000 n 0001260640 00000 n 0001261062 00000 n 0001261105 00000 n 0001261148 00000 n 0001261216 00000 n 0001261436 00000 n 0001261535 00000 n 0001265183 00000 n 0001265514 00000 n 0001265936 00000 n 0001265979 00000 n 0001266047 00000 n 0001266296 00000 n 0001266395 00000 n 0001270721 00000 n 0001270886 00000 n 0001271217 00000 n 0001271639 00000 n 0001271682 00000 n 0001271750 00000 n 0001271970 00000 n 0001272069 00000 n 0001276175 00000 n 0001276506 00000 n 0001276928 00000 n 0001276996 00000 n 0001277259 00000 n 0001277358 00000 n 0001281357 00000 n 0001281523 00000 n 0001281854 00000 n 0001282276 00000 n 0001282344 00000 n 0001282579 00000 n 0001282678 00000 n 0001286075 00000 n 0001286118 00000 n 0001286186 00000 n 0001286421 00000 n 0001286520 00000 n 0001291280 00000 n 0001291611 00000 n 0001292033 00000 n 0001292101 00000 n 0001292321 00000 n 0001292420 00000 n 0001296649 00000 n 0001296980 00000 n 0001297402 00000 n 0001297445 00000 n 0001297513 00000 n 0001297761 00000 n 0001297860 00000 n 0001301512 00000 n 0001301675 00000 n 0001302006 00000 n 0001302428 00000 n 0001302471 00000 n 0001302539 00000 n 0001302788 00000 n 0001302887 00000 n 0001307370 00000 n 0001307701 00000 n 0001308123 00000 n 0001308166 00000 n 0001308234 00000 n 0001308497 00000 n 0001308596 00000 n 0001311316 00000 n 0001311647 00000 n 0001312069 00000 n 0001312137 00000 n 0001312386 00000 n 0001312485 00000 n 0001316358 00000 n 0001316525 00000 n 0001316856 00000 n 0001317278 00000 n 0001317321 00000 n 0001317389 00000 n 0001317579 00000 n 0001317678 00000 n 0001317896 00000 n 0001318283 00000 n 0001318614 00000 n 0001319036 00000 n 0001319078 00000 n 0001319155 00000 n 0001319223 00000 n 0001319443 00000 n 0001319542 00000 n 0001323102 00000 n 0001323241 00000 n 0001323380 00000 n 0001323519 00000 n 0001323658 00000 n 0001323797 00000 n 0001323936 00000 n 0001324075 00000 n 0001324214 00000 n 0001324353 00000 n 0001324492 00000 n 0001324631 00000 n 0001324770 00000 n 0001324909 00000 n 0001325048 00000 n 0001325187 00000 n 0001325326 00000 n 0001325465 00000 n 0001325604 00000 n 0001325743 00000 n 0001325882 00000 n 0001326021 00000 n 0001326160 00000 n 0001326299 00000 n 0001326438 00000 n 0001326577 00000 n 0001326716 00000 n 0001326855 00000 n 0001326994 00000 n 0001327133 00000 n 0001327272 00000 n 0001327411 00000 n 0001327550 00000 n 0001327689 00000 n 0001327828 00000 n 0001327967 00000 n 0001328106 00000 n 0001328245 00000 n 0001328384 00000 n 0001328523 00000 n 0001328662 00000 n 0001328801 00000 n 0001328940 00000 n 0001329079 00000 n 0001329218 00000 n 0001329357 00000 n 0001329496 00000 n 0001329635 00000 n 0001329774 00000 n 0001329913 00000 n 0001330052 00000 n 0001330191 00000 n 0001330330 00000 n 0001330469 00000 n 0001330608 00000 n 0001330747 00000 n 0001330886 00000 n 0001331025 00000 n 0001331164 00000 n 0001331303 00000 n 0001331442 00000 n 0001331581 00000 n 0001331720 00000 n 0001331859 00000 n 0001331998 00000 n 0001332137 00000 n 0001332276 00000 n 0001332415 00000 n 0001332554 00000 n 0001332693 00000 n 0001332832 00000 n 0001332971 00000 n 0001333110 00000 n 0001333249 00000 n 0001333388 00000 n 0001333527 00000 n 0001333666 00000 n 0001333805 00000 n 0001333944 00000 n 0001334083 00000 n 0001334222 00000 n 0001334361 00000 n 0001334500 00000 n 0001334639 00000 n 0001334778 00000 n 0001334917 00000 n 0001335056 00000 n 0001335195 00000 n 0001335334 00000 n 0001335473 00000 n 0001335612 00000 n 0001335751 00000 n 0001335890 00000 n 0001336029 00000 n 0001336168 00000 n 0001336307 00000 n 0001336446 00000 n 0001336585 00000 n 0001336724 00000 n 0001336863 00000 n 0001337002 00000 n 0001337141 00000 n 0001337280 00000 n 0001337419 00000 n 0001337558 00000 n 0001337697 00000 n 0001337836 00000 n 0001337975 00000 n 0001338114 00000 n 0001338253 00000 n 0001338392 00000 n 0001338531 00000 n 0001338670 00000 n 0001338809 00000 n 0001338948 00000 n 0001339087 00000 n 0001339226 00000 n 0001339365 00000 n 0001339504 00000 n 0001339643 00000 n 0001339782 00000 n 0001339921 00000 n 0001340060 00000 n 0001340199 00000 n 0001340338 00000 n 0001340477 00000 n 0001340616 00000 n 0001340755 00000 n 0001340894 00000 n 0001341033 00000 n 0001341172 00000 n 0001341311 00000 n 0001341450 00000 n 0001341589 00000 n 0001341728 00000 n 0001341867 00000 n 0001342006 00000 n 0001342145 00000 n 0001342284 00000 n 0001342423 00000 n 0001342562 00000 n 0001342701 00000 n 0001342840 00000 n 0001342979 00000 n 0001343118 00000 n 0001343257 00000 n 0001343396 00000 n 0001343535 00000 n 0001343674 00000 n 0001343813 00000 n 0001343856 00000 n 0001343899 00000 n 0001343942 00000 n 0001343985 00000 n 0001344028 00000 n 0001344071 00000 n 0001344114 00000 n 0001344445 00000 n 0001344867 00000 n 0001344935 00000 n 0001345184 00000 n 0001345283 00000 n 0001348569 00000 n 0001348900 00000 n 0001349322 00000 n 0001349390 00000 n 0001349625 00000 n 0001349724 00000 n 0001353824 00000 n 0001354155 00000 n 0001354577 00000 n 0001354620 00000 n 0001354663 00000 n 0001354731 00000 n 0001354965 00000 n 0001355064 00000 n 0001359557 00000 n 0001359888 00000 n 0001360310 00000 n 0001360378 00000 n 0001360642 00000 n 0001360741 00000 n 0001363081 00000 n 0001363248 00000 n 0001363415 00000 n 0001363746 00000 n 0001364168 00000 n 0001364211 00000 n 0001364254 00000 n 0001364297 00000 n 0001364340 00000 n 0001364408 00000 n 0001364642 00000 n 0001364741 00000 n 0001368209 00000 n 0001368375 00000 n 0001368706 00000 n 0001369128 00000 n 0001369196 00000 n 0001369416 00000 n 0001369515 00000 n 0001373465 00000 n 0001373796 00000 n 0001374218 00000 n 0001374261 00000 n 0001374329 00000 n 0001374593 00000 n 0001374692 00000 n 0001376443 00000 n 0001376606 00000 n 0001376772 00000 n 0001376831 00000 n 0001377162 00000 n 0001377584 00000 n 0001377652 00000 n 0001377887 00000 n 0001377986 00000 n 0001382604 00000 n 0001382935 00000 n 0001383357 00000 n 0001383425 00000 n 0001383659 00000 n 0001383758 00000 n 0001387353 00000 n 0001387520 00000 n 0001387687 00000 n 0001388018 00000 n 0001388440 00000 n 0001388508 00000 n 0001388743 00000 n 0001388842 00000 n 0001391274 00000 n 0001391414 00000 n 0001391554 00000 n 0001391694 00000 n 0001391834 00000 n 0001391974 00000 n 0001392114 00000 n 0001392254 00000 n 0001392394 00000 n 0001392534 00000 n 0001392674 00000 n 0001392814 00000 n 0001392954 00000 n 0001393094 00000 n 0001393234 00000 n 0001393374 00000 n 0001393514 00000 n 0001393654 00000 n 0001393794 00000 n 0001393934 00000 n 0001394074 00000 n 0001394214 00000 n 0001394354 00000 n 0001394494 00000 n 0001394634 00000 n 0001394774 00000 n 0001394914 00000 n 0001395054 00000 n 0001395194 00000 n 0001395334 00000 n 0001395474 00000 n 0001395614 00000 n 0001395754 00000 n 0001395894 00000 n 0001396034 00000 n 0001396174 00000 n 0001396314 00000 n 0001396454 00000 n 0001396594 00000 n 0001396734 00000 n 0001396874 00000 n 0001397014 00000 n 0001397154 00000 n 0001397294 00000 n 0001397434 00000 n 0001397574 00000 n 0001397714 00000 n 0001397854 00000 n 0001397994 00000 n 0001398134 00000 n 0001398274 00000 n 0001398414 00000 n 0001398554 00000 n 0001398694 00000 n 0001398834 00000 n 0001398974 00000 n 0001399114 00000 n 0001399254 00000 n 0001399394 00000 n 0001399534 00000 n 0001399674 00000 n 0001399814 00000 n 0001399954 00000 n 0001400094 00000 n 0001400234 00000 n 0001400374 00000 n 0001400514 00000 n 0001400654 00000 n 0001400794 00000 n 0001400934 00000 n 0001401074 00000 n 0001401214 00000 n 0001401354 00000 n 0001401494 00000 n 0001401634 00000 n 0001401774 00000 n 0001401914 00000 n 0001402054 00000 n 0001402194 00000 n 0001402334 00000 n 0001402474 00000 n 0001402614 00000 n 0001402754 00000 n 0001402894 00000 n 0001403034 00000 n 0001403174 00000 n 0001403314 00000 n 0001403454 00000 n 0001403594 00000 n 0001403734 00000 n 0001403874 00000 n 0001404014 00000 n 0001404154 00000 n 0001404294 00000 n 0001404434 00000 n 0001404574 00000 n 0001404714 00000 n 0001404854 00000 n 0001404994 00000 n 0001405134 00000 n 0001405274 00000 n 0001405414 00000 n 0001405554 00000 n 0001405694 00000 n 0001405834 00000 n 0001405974 00000 n 0001406114 00000 n 0001406254 00000 n 0001406394 00000 n 0001406534 00000 n 0001406674 00000 n 0001406814 00000 n 0001406954 00000 n 0001407094 00000 n 0001407234 00000 n 0001407374 00000 n 0001407514 00000 n 0001407654 00000 n 0001407794 00000 n 0001407934 00000 n 0001408074 00000 n 0001408214 00000 n 0001408354 00000 n 0001408494 00000 n 0001408634 00000 n 0001408774 00000 n 0001408914 00000 n 0001409054 00000 n 0001409194 00000 n 0001409334 00000 n 0001409474 00000 n 0001409614 00000 n 0001409754 00000 n 0001409894 00000 n 0001410034 00000 n 0001410174 00000 n 0001410314 00000 n 0001410358 00000 n 0001410402 00000 n 0001410446 00000 n 0001410490 00000 n 0001410534 00000 n 0001410578 00000 n 0001410622 00000 n 0001410666 00000 n 0001410710 00000 n 0001410754 00000 n 0001410798 00000 n 0001410842 00000 n 0001410886 00000 n 0001410929 00000 n 0001410973 00000 n 0001411016 00000 n 0001411084 00000 n 0001411334 00000 n 0001411433 00000 n 0001413104 00000 n 0001413271 00000 n 0001413438 00000 n 0001413605 00000 n 0001413936 00000 n 0001414358 00000 n 0001414401 00000 n 0001414469 00000 n 0001414732 00000 n 0001414831 00000 n 0001418814 00000 n 0001418981 00000 n 0001419312 00000 n 0001419734 00000 n 0001419802 00000 n 0001420022 00000 n 0001420121 00000 n 0001424120 00000 n 0001424451 00000 n 0001424873 00000 n 0001424915 00000 n 0001424983 00000 n 0001425203 00000 n 0001425302 00000 n 0001427954 00000 n 0001428285 00000 n 0001428707 00000 n 0001428751 00000 n 0001428819 00000 n 0001429054 00000 n 0001429153 00000 n 0001432440 00000 n 0001432771 00000 n 0001433193 00000 n 0001433261 00000 n 0001433524 00000 n 0001433623 00000 n 0001436436 00000 n 0001436767 00000 n 0001437189 00000 n 0001437257 00000 n 0001437491 00000 n 0001437590 00000 n 0001441896 00000 n 0001442063 00000 n 0001442394 00000 n 0001442816 00000 n 0001442859 00000 n 0001442927 00000 n 0001443176 00000 n 0001443275 00000 n 0001446524 00000 n 0001446855 00000 n 0001447277 00000 n 0001447345 00000 n 0001447579 00000 n 0001447678 00000 n 0001451224 00000 n 0001451555 00000 n 0001451977 00000 n 0001452020 00000 n 0001452063 00000 n 0001452106 00000 n 0001452150 00000 n 0001452218 00000 n 0001452438 00000 n 0001452537 00000 n 0001456480 00000 n 0001456811 00000 n 0001457233 00000 n 0001457301 00000 n 0001457535 00000 n 0001457634 00000 n 0001461228 00000 n 0001461559 00000 n 0001461981 00000 n 0001462049 00000 n 0001462270 00000 n 0001462369 00000 n 0001464403 00000 n 0001464734 00000 n 0001465156 00000 n 0001465199 00000 n 0001465267 00000 n 0001465502 00000 n 0001465601 00000 n 0001470383 00000 n 0001470522 00000 n 0001470661 00000 n 0001470800 00000 n 0001470939 00000 n 0001471078 00000 n 0001471217 00000 n 0001471356 00000 n 0001471495 00000 n 0001471634 00000 n 0001471773 00000 n 0001471912 00000 n 0001472051 00000 n 0001472190 00000 n 0001472329 00000 n 0001472468 00000 n 0001472607 00000 n 0001472746 00000 n 0001472885 00000 n 0001473024 00000 n 0001473163 00000 n 0001473302 00000 n 0001473441 00000 n 0001473580 00000 n 0001473719 00000 n 0001473858 00000 n 0001473997 00000 n 0001474136 00000 n 0001474275 00000 n 0001474414 00000 n 0001474553 00000 n 0001474692 00000 n 0001474831 00000 n 0001474970 00000 n 0001475109 00000 n 0001475248 00000 n 0001475387 00000 n 0001475526 00000 n 0001475665 00000 n 0001475804 00000 n 0001475943 00000 n 0001476082 00000 n 0001476221 00000 n 0001476360 00000 n 0001476499 00000 n 0001476638 00000 n 0001476777 00000 n 0001476916 00000 n 0001477055 00000 n 0001477194 00000 n 0001477333 00000 n 0001477472 00000 n 0001477611 00000 n 0001477750 00000 n 0001477889 00000 n 0001478028 00000 n 0001478167 00000 n 0001478306 00000 n 0001478445 00000 n 0001478584 00000 n 0001478723 00000 n 0001478862 00000 n 0001479001 00000 n 0001479140 00000 n 0001479279 00000 n 0001479418 00000 n 0001479557 00000 n 0001479696 00000 n 0001479835 00000 n 0001479974 00000 n 0001480113 00000 n 0001480252 00000 n 0001480391 00000 n 0001480530 00000 n 0001480669 00000 n 0001480808 00000 n 0001480947 00000 n 0001481086 00000 n 0001481225 00000 n 0001481364 00000 n 0001481503 00000 n 0001481642 00000 n 0001481781 00000 n 0001481920 00000 n 0001482059 00000 n 0001482198 00000 n 0001482337 00000 n 0001482476 00000 n 0001482615 00000 n 0001482754 00000 n 0001482893 00000 n 0001483032 00000 n 0001483171 00000 n 0001483310 00000 n 0001483449 00000 n 0001483588 00000 n 0001483727 00000 n 0001483866 00000 n 0001484005 00000 n 0001484144 00000 n 0001484283 00000 n 0001484422 00000 n 0001484561 00000 n 0001484700 00000 n 0001484839 00000 n 0001484978 00000 n 0001485117 00000 n 0001485256 00000 n 0001485395 00000 n 0001485534 00000 n 0001485673 00000 n 0001485812 00000 n 0001485951 00000 n 0001486090 00000 n 0001486229 00000 n 0001486368 00000 n 0001486507 00000 n 0001486646 00000 n 0001486785 00000 n 0001486924 00000 n 0001487063 00000 n 0001487202 00000 n 0001487341 00000 n 0001487480 00000 n 0001487619 00000 n 0001487758 00000 n 0001487897 00000 n 0001488036 00000 n 0001488175 00000 n 0001488314 00000 n 0001488453 00000 n 0001488592 00000 n 0001488731 00000 n 0001488870 00000 n 0001489009 00000 n 0001489148 00000 n 0001489287 00000 n 0001489426 00000 n 0001489565 00000 n 0001489704 00000 n 0001489843 00000 n 0001489982 00000 n 0001490121 00000 n 0001490260 00000 n 0001490399 00000 n 0001490538 00000 n 0001490677 00000 n 0001490816 00000 n 0001490955 00000 n 0001491094 00000 n 0001491233 00000 n 0001491372 00000 n 0001491511 00000 n 0001491650 00000 n 0001491789 00000 n 0001491928 00000 n 0001492067 00000 n 0001492206 00000 n 0001492345 00000 n 0001492484 00000 n 0001492623 00000 n 0001492762 00000 n 0001492901 00000 n 0001493040 00000 n 0001493179 00000 n 0001493318 00000 n 0001493457 00000 n 0001493596 00000 n 0001493735 00000 n 0001493874 00000 n 0001494013 00000 n 0001494152 00000 n 0001494291 00000 n 0001494430 00000 n 0001494569 00000 n 0001494708 00000 n 0001494847 00000 n 0001494986 00000 n 0001495125 00000 n 0001495264 00000 n 0001495403 00000 n 0001495542 00000 n 0001495681 00000 n 0001495820 00000 n 0001495959 00000 n 0001496098 00000 n 0001496237 00000 n 0001496376 00000 n 0001496515 00000 n 0001496654 00000 n 0001496793 00000 n 0001496932 00000 n 0001497071 00000 n 0001497210 00000 n 0001497349 00000 n 0001497488 00000 n 0001497627 00000 n 0001497766 00000 n 0001497905 00000 n 0001498044 00000 n 0001498183 00000 n 0001498322 00000 n 0001498461 00000 n 0001498600 00000 n 0001498739 00000 n 0001498878 00000 n 0001499017 00000 n 0001499156 00000 n 0001499295 00000 n 0001499434 00000 n 0001499573 00000 n 0001499712 00000 n 0001499851 00000 n 0001499990 00000 n 0001500129 00000 n 0001500268 00000 n 0001500407 00000 n 0001500546 00000 n 0001500685 00000 n 0001500824 00000 n 0001500963 00000 n 0001501102 00000 n 0001501241 00000 n 0001501380 00000 n 0001501519 00000 n 0001501658 00000 n 0001501797 00000 n 0001501936 00000 n 0001502075 00000 n 0001502214 00000 n 0001502353 00000 n 0001502492 00000 n 0001502631 00000 n 0001502770 00000 n 0001502909 00000 n 0001503048 00000 n 0001503187 00000 n 0001503326 00000 n 0001503465 00000 n 0001503604 00000 n 0001503743 00000 n 0001503882 00000 n 0001504021 00000 n 0001504160 00000 n 0001504299 00000 n 0001504438 00000 n 0001504577 00000 n 0001504716 00000 n 0001504855 00000 n 0001504994 00000 n 0001505133 00000 n 0001505272 00000 n 0001505411 00000 n 0001505550 00000 n 0001505689 00000 n 0001505828 00000 n 0001505967 00000 n 0001506106 00000 n 0001506245 00000 n 0001506384 00000 n 0001506523 00000 n 0001506662 00000 n 0001506801 00000 n 0001506940 00000 n 0001507079 00000 n 0001507218 00000 n 0001507357 00000 n 0001507496 00000 n 0001507635 00000 n 0001507774 00000 n 0001507913 00000 n 0001508052 00000 n 0001508191 00000 n 0001508330 00000 n 0001508469 00000 n 0001508608 00000 n 0001508747 00000 n 0001508886 00000 n 0001509025 00000 n 0001509164 00000 n 0001509303 00000 n 0001509442 00000 n 0001509581 00000 n 0001509720 00000 n 0001509859 00000 n 0001509998 00000 n 0001510137 00000 n 0001510276 00000 n 0001510415 00000 n 0001510554 00000 n 0001510693 00000 n 0001510832 00000 n 0001510971 00000 n 0001511110 00000 n 0001511249 00000 n 0001511388 00000 n 0001511527 00000 n 0001511666 00000 n 0001511805 00000 n 0001511944 00000 n 0001512083 00000 n 0001512222 00000 n 0001512361 00000 n 0001512500 00000 n 0001512639 00000 n 0001512778 00000 n 0001512917 00000 n 0001513056 00000 n 0001513195 00000 n 0001513334 00000 n 0001513473 00000 n 0001513612 00000 n 0001513751 00000 n 0001513890 00000 n 0001514029 00000 n 0001514168 00000 n 0001514307 00000 n 0001514446 00000 n 0001514585 00000 n 0001514724 00000 n 0001514863 00000 n 0001515002 00000 n 0001515141 00000 n 0001515280 00000 n 0001515419 00000 n 0001515558 00000 n 0001515697 00000 n 0001515836 00000 n 0001515975 00000 n 0001516114 00000 n 0001516253 00000 n 0001516392 00000 n 0001516531 00000 n 0001516670 00000 n 0001516809 00000 n 0001516948 00000 n 0001517087 00000 n 0001517130 00000 n 0001517173 00000 n 0001517216 00000 n 0001517259 00000 n 0001517302 00000 n 0001517345 00000 n 0001517388 00000 n 0001517431 00000 n 0001517474 00000 n 0001517517 00000 n 0001517560 00000 n 0001517603 00000 n 0001517646 00000 n 0001517689 00000 n 0001517732 00000 n 0001517775 00000 n 0001517818 00000 n 0001517861 00000 n 0001517904 00000 n 0001517947 00000 n 0001517990 00000 n 0001518033 00000 n 0001518076 00000 n 0001518119 00000 n 0001518162 00000 n 0001518205 00000 n 0001518248 00000 n 0001518291 00000 n 0001518622 00000 n 0001519044 00000 n 0001519087 00000 n 0001519130 00000 n 0001519173 00000 n 0001519216 00000 n 0001519284 00000 n 0001519533 00000 n 0001519632 00000 n 0001524075 00000 n 0001524242 00000 n 0001524573 00000 n 0001524995 00000 n 0001525063 00000 n 0001525326 00000 n 0001525425 00000 n 0001529165 00000 n 0001529496 00000 n 0001529918 00000 n 0001529962 00000 n 0001530005 00000 n 0001530048 00000 n 0001530091 00000 n 0001530159 00000 n 0001530393 00000 n 0001530492 00000 n 0001534340 00000 n 0001534671 00000 n 0001535093 00000 n 0001535161 00000 n 0001535381 00000 n 0001535480 00000 n 0001538812 00000 n 0001539143 00000 n 0001539565 00000 n 0001539608 00000 n 0001539676 00000 n 0001539910 00000 n 0001540009 00000 n 0001543907 00000 n 0001544073 00000 n 0001544404 00000 n 0001544826 00000 n 0001544869 00000 n 0001544937 00000 n 0001545186 00000 n 0001545285 00000 n 0001548685 00000 n 0001548848 00000 n 0001549179 00000 n 0001549601 00000 n 0001549669 00000 n 0001549889 00000 n 0001549988 00000 n 0001551640 00000 n 0001551971 00000 n 0001552393 00000 n 0001552437 00000 n 0001552505 00000 n 0001552754 00000 n 0001552853 00000 n 0001556812 00000 n 0001556974 00000 n 0001557305 00000 n 0001557727 00000 n 0001557771 00000 n 0001557814 00000 n 0001557857 00000 n 0001557925 00000 n 0001558145 00000 n 0001558244 00000 n 0001562895 00000 n 0001563226 00000 n 0001563648 00000 n 0001563716 00000 n 0001563993 00000 n 0001564092 00000 n 0001568478 00000 n 0001568644 00000 n 0001568975 00000 n 0001569397 00000 n 0001569465 00000 n 0001569728 00000 n 0001569827 00000 n 0001572441 00000 n 0001572772 00000 n 0001573194 00000 n 0001573238 00000 n 0001573281 00000 n 0001573324 00000 n 0001573367 00000 n 0001573435 00000 n 0001573669 00000 n 0001573768 00000 n 0001577754 00000 n 0001577921 00000 n 0001578252 00000 n 0001578674 00000 n 0001578717 00000 n 0001578785 00000 n 0001579005 00000 n 0001579104 00000 n 0001583357 00000 n 0001583688 00000 n 0001584110 00000 n 0001584178 00000 n 0001584412 00000 n 0001584511 00000 n 0001587664 00000 n 0001587995 00000 n 0001588417 00000 n 0001588460 00000 n 0001588528 00000 n 0001588776 00000 n 0001588875 00000 n 0001591245 00000 n 0001591411 00000 n 0001591577 00000 n 0001591743 00000 n 0001591909 00000 n 0001592075 00000 n 0001592241 00000 n 0001592407 00000 n 0001592573 00000 n 0001592739 00000 n 0001592905 00000 n 0001593071 00000 n 0001593236 00000 n 0001593401 00000 n 0001593566 00000 n 0001593731 00000 n 0001593896 00000 n 0001594062 00000 n 0001594228 00000 n 0001594391 00000 n 0001594557 00000 n 0001594723 00000 n 0001594889 00000 n 0001595055 00000 n 0001595221 00000 n 0001595387 00000 n 0001595553 00000 n 0001595718 00000 n 0001595884 00000 n 0001596050 00000 n 0001596216 00000 n 0001596382 00000 n 0001596548 00000 n 0001596714 00000 n 0001596880 00000 n 0001597046 00000 n 0001597212 00000 n 0001597378 00000 n 0001597544 00000 n 0001597586 00000 n 0001597628 00000 n 0001597670 00000 n 0001597712 00000 n 0001597754 00000 n 0001597796 00000 n 0001597838 00000 n 0001597880 00000 n 0001597923 00000 n 0001597991 00000 n 0001598227 00000 n 0001598326 00000 n 0001600852 00000 n 0001601018 00000 n 0001601349 00000 n 0001601771 00000 n 0001601814 00000 n 0001601858 00000 n 0001601901 00000 n 0001601969 00000 n 0001602175 00000 n 0001602274 00000 n 0001606440 00000 n 0001606771 00000 n 0001607193 00000 n 0001607236 00000 n 0001607279 00000 n 0001607347 00000 n 0001607581 00000 n 0001607680 00000 n 0001612037 00000 n 0001612368 00000 n 0001612790 00000 n 0001612858 00000 n 0001613092 00000 n 0001613191 00000 n 0001616267 00000 n 0001616433 00000 n 0001616764 00000 n 0001617186 00000 n 0001617230 00000 n 0001617273 00000 n 0001617315 00000 n 0001617358 00000 n 0001617401 00000 n 0001617469 00000 n 0001617689 00000 n 0001617788 00000 n 0001619522 00000 n 0001619853 00000 n 0001620275 00000 n 0001620343 00000 n 0001620563 00000 n 0001620662 00000 n 0001622903 00000 n 0001623234 00000 n 0001623656 00000 n 0001623699 00000 n 0001623767 00000 n 0001624016 00000 n 0001624115 00000 n 0001627989 00000 n 0001628031 00000 n 0001628099 00000 n 0001628347 00000 n 0001628446 00000 n 0001630843 00000 n 0001631174 00000 n 0001631596 00000 n 0001631664 00000 n 0001631899 00000 n 0001631998 00000 n 0001636539 00000 n 0001636870 00000 n 0001637292 00000 n 0001637360 00000 n 0001637623 00000 n 0001637722 00000 n 0001641602 00000 n 0001641768 00000 n 0001641934 00000 n 0001641976 00000 n 0001642018 00000 n 0001642349 00000 n 0001642771 00000 n 0001642839 00000 n 0001643116 00000 n 0001643215 00000 n 0001647509 00000 n 0001647674 00000 n 0001647742 00000 n 0001647962 00000 n 0001648061 00000 n 0001651784 00000 n 0001652115 00000 n 0001652537 00000 n 0001652580 00000 n 0001652648 00000 n 0001652882 00000 n 0001652981 00000 n 0001657094 00000 n 0001657260 00000 n 0001657591 00000 n 0001658013 00000 n 0001658056 00000 n 0001658124 00000 n 0001658401 00000 n 0001658500 00000 n 0001662660 00000 n 0001662991 00000 n 0001663413 00000 n 0001663455 00000 n 0001663498 00000 n 0001663566 00000 n 0001663829 00000 n 0001663928 00000 n 0001666395 00000 n 0001666726 00000 n 0001667148 00000 n 0001667216 00000 n 0001667436 00000 n 0001667535 00000 n 0001671188 00000 n 0001671519 00000 n 0001671941 00000 n 0001672009 00000 n 0001672243 00000 n 0001672342 00000 n 0001676029 00000 n 0001676360 00000 n 0001676782 00000 n 0001676825 00000 n 0001676868 00000 n 0001676936 00000 n 0001677185 00000 n 0001677284 00000 n 0001681942 00000 n 0001682109 00000 n 0001682440 00000 n 0001682862 00000 n 0001682930 00000 n 0001683164 00000 n 0001683263 00000 n 0001684579 00000 n 0001684745 00000 n 0001684911 00000 n 0001685077 00000 n 0001685243 00000 n 0001685409 00000 n 0001685575 00000 n 0001685741 00000 n 0001685907 00000 n 0001686073 00000 n 0001686115 00000 n 0001686157 00000 n 0001686199 00000 n 0001686241 00000 n 0001686413 00000 n 0001686744 00000 n 0001687166 00000 n 0001687396 00000 n 0001687936 00000 n 0001702729 00000 n 0001702797 00000 n 0001703017 00000 n 0001703116 00000 n 0001706667 00000 n 0001706998 00000 n 0001707420 00000 n 0001707488 00000 n 0001707722 00000 n 0001707821 00000 n 0001712680 00000 n 0001712848 00000 n 0001713179 00000 n 0001713601 00000 n 0001713644 00000 n 0001713687 00000 n 0001713755 00000 n 0001713990 00000 n 0001714089 00000 n 0001718239 00000 n 0001718378 00000 n 0001718517 00000 n 0001718656 00000 n 0001718795 00000 n 0001718934 00000 n 0001719073 00000 n 0001719212 00000 n 0001719351 00000 n 0001719490 00000 n 0001719629 00000 n 0001719768 00000 n 0001719907 00000 n 0001720046 00000 n 0001720185 00000 n 0001720324 00000 n 0001720463 00000 n 0001720602 00000 n 0001720741 00000 n 0001720880 00000 n 0001721019 00000 n 0001721158 00000 n 0001721297 00000 n 0001721436 00000 n 0001721575 00000 n 0001721714 00000 n 0001721853 00000 n 0001721992 00000 n 0001722131 00000 n 0001722270 00000 n 0001722409 00000 n 0001722548 00000 n 0001722687 00000 n 0001722826 00000 n 0001722965 00000 n 0001723104 00000 n 0001723243 00000 n 0001723382 00000 n 0001723521 00000 n 0001723660 00000 n 0001723799 00000 n 0001723938 00000 n 0001724077 00000 n 0001724216 00000 n 0001724355 00000 n 0001724494 00000 n 0001724633 00000 n 0001724772 00000 n 0001724911 00000 n 0001725050 00000 n 0001725189 00000 n 0001725328 00000 n 0001725467 00000 n 0001725606 00000 n 0001725745 00000 n 0001725884 00000 n 0001726023 00000 n 0001726162 00000 n 0001726301 00000 n 0001726440 00000 n 0001726579 00000 n 0001726718 00000 n 0001726857 00000 n 0001726996 00000 n 0001727135 00000 n 0001727274 00000 n 0001727413 00000 n 0001727552 00000 n 0001727691 00000 n 0001727830 00000 n 0001727969 00000 n 0001728108 00000 n 0001728247 00000 n 0001728386 00000 n 0001728525 00000 n 0001728664 00000 n 0001728803 00000 n 0001728942 00000 n 0001729081 00000 n 0001729220 00000 n 0001729359 00000 n 0001729498 00000 n 0001729637 00000 n 0001729776 00000 n 0001729915 00000 n 0001730054 00000 n 0001730193 00000 n 0001730332 00000 n 0001730471 00000 n 0001730610 00000 n 0001730749 00000 n 0001730888 00000 n 0001731027 00000 n 0001731166 00000 n 0001731305 00000 n 0001731444 00000 n 0001731583 00000 n 0001731722 00000 n 0001731861 00000 n 0001732000 00000 n 0001732139 00000 n 0001732278 00000 n 0001732417 00000 n 0001732556 00000 n 0001732695 00000 n 0001732834 00000 n 0001732973 00000 n 0001733112 00000 n 0001733251 00000 n 0001733390 00000 n 0001733529 00000 n 0001733668 00000 n 0001733807 00000 n 0001733946 00000 n 0001734085 00000 n 0001734224 00000 n 0001734363 00000 n 0001734502 00000 n 0001734641 00000 n 0001734780 00000 n 0001734919 00000 n 0001735058 00000 n 0001735197 00000 n 0001735336 00000 n 0001735475 00000 n 0001735614 00000 n 0001735753 00000 n 0001735892 00000 n 0001736031 00000 n 0001736170 00000 n 0001736309 00000 n 0001736448 00000 n 0001736587 00000 n 0001736726 00000 n 0001736865 00000 n 0001737004 00000 n 0001737143 00000 n 0001737282 00000 n 0001737421 00000 n 0001737560 00000 n 0001737699 00000 n 0001737838 00000 n 0001737977 00000 n 0001738116 00000 n 0001738255 00000 n 0001738394 00000 n 0001738533 00000 n 0001738672 00000 n 0001738811 00000 n 0001738950 00000 n 0001739089 00000 n 0001739228 00000 n 0001739367 00000 n 0001739506 00000 n 0001739645 00000 n 0001739784 00000 n 0001739923 00000 n 0001740062 00000 n 0001740201 00000 n 0001740340 00000 n 0001740479 00000 n 0001740618 00000 n 0001740757 00000 n 0001740896 00000 n 0001741035 00000 n 0001741174 00000 n 0001741313 00000 n 0001741452 00000 n 0001741591 00000 n 0001741730 00000 n 0001741869 00000 n 0001742008 00000 n 0001742147 00000 n 0001742286 00000 n 0001742425 00000 n 0001742564 00000 n 0001742703 00000 n 0001742842 00000 n 0001742981 00000 n 0001743120 00000 n 0001743259 00000 n 0001743398 00000 n 0001743537 00000 n 0001743676 00000 n 0001743815 00000 n 0001743954 00000 n 0001744093 00000 n 0001744232 00000 n 0001744371 00000 n 0001744510 00000 n 0001744649 00000 n 0001744788 00000 n 0001744927 00000 n 0001745066 00000 n 0001745205 00000 n 0001745344 00000 n 0001745483 00000 n 0001745622 00000 n 0001745761 00000 n 0001745900 00000 n 0001746039 00000 n 0001746178 00000 n 0001746317 00000 n 0001746456 00000 n 0001746595 00000 n 0001746734 00000 n 0001746873 00000 n 0001747012 00000 n 0001747151 00000 n 0001747290 00000 n 0001747333 00000 n 0001747376 00000 n 0001747419 00000 n 0001747462 00000 n 0001747505 00000 n 0001747548 00000 n 0001747591 00000 n 0001747634 00000 n 0001747677 00000 n 0001747720 00000 n 0001747763 00000 n 0001747806 00000 n 0001747849 00000 n 0001747892 00000 n 0001747935 00000 n 0001747978 00000 n 0001748021 00000 n 0001748064 00000 n 0001748107 00000 n 0001748150 00000 n 0001748193 00000 n 0001748236 00000 n 0001748279 00000 n 0001748322 00000 n 0001748365 00000 n 0001748408 00000 n 0001748451 00000 n 0001748494 00000 n 0001748537 00000 n 0001748580 00000 n 0001748623 00000 n 0001748666 00000 n 0001748709 00000 n 0001748752 00000 n 0001748795 00000 n 0001748838 00000 n 0001748881 00000 n 0001748924 00000 n 0001748967 00000 n 0001749010 00000 n 0001749053 00000 n 0001749096 00000 n 0001749139 00000 n 0001749182 00000 n 0001749225 00000 n 0001749268 00000 n 0001749311 00000 n 0001749354 00000 n 0001749397 00000 n 0001749440 00000 n 0001749483 00000 n 0001749526 00000 n 0001749569 00000 n 0001749612 00000 n 0001749655 00000 n 0001749698 00000 n 0001750029 00000 n 0001750451 00000 n 0001750494 00000 n 0001750562 00000 n 0001750782 00000 n 0001750881 00000 n 0001752951 00000 n 0001753282 00000 n 0001753704 00000 n 0001753772 00000 n 0001753992 00000 n 0001754091 00000 n 0001758400 00000 n 0001758731 00000 n 0001759153 00000 n 0001759221 00000 n 0001759455 00000 n 0001759554 00000 n 0001763511 00000 n 0001763677 00000 n 0001764008 00000 n 0001764430 00000 n 0001764473 00000 n 0001764516 00000 n 0001764559 00000 n 0001764602 00000 n 0001764645 00000 n 0001764688 00000 n 0001764731 00000 n 0001764774 00000 n 0001764842 00000 n 0001765076 00000 n 0001765175 00000 n 0001769407 00000 n 0001769738 00000 n 0001770160 00000 n 0001770204 00000 n 0001770247 00000 n 0001770291 00000 n 0001770359 00000 n 0001770579 00000 n 0001770678 00000 n 0001773051 00000 n 0001773382 00000 n 0001773804 00000 n 0001773847 00000 n 0001773915 00000 n 0001774163 00000 n 0001774262 00000 n 0001777033 00000 n 0001777364 00000 n 0001777786 00000 n 0001777854 00000 n 0001778103 00000 n 0001778202 00000 n 0001782131 00000 n 0001782297 00000 n 0001782339 00000 n 0001782670 00000 n 0001783092 00000 n 0001783135 00000 n 0001783203 00000 n 0001783423 00000 n 0001783522 00000 n 0001785304 00000 n 0001785635 00000 n 0001786057 00000 n 0001786101 00000 n 0001786144 00000 n 0001786185 00000 n 0001786227 00000 n 0001786295 00000 n 0001786544 00000 n 0001786643 00000 n 0001790833 00000 n 0001791164 00000 n 0001791586 00000 n 0001791629 00000 n 0001791697 00000 n 0001791960 00000 n 0001792059 00000 n 0001794550 00000 n 0001794881 00000 n 0001795303 00000 n 0001795371 00000 n 0001795634 00000 n 0001795733 00000 n 0001799973 00000 n 0001800304 00000 n 0001800726 00000 n 0001800769 00000 n 0001800812 00000 n 0001800880 00000 n 0001801114 00000 n 0001801213 00000 n 0001804716 00000 n 0001804883 00000 n 0001805214 00000 n 0001805636 00000 n 0001805704 00000 n 0001805924 00000 n 0001806023 00000 n 0001808764 00000 n 0001809095 00000 n 0001809517 00000 n 0001809560 00000 n 0001809798 00000 n 0001810090 00000 n 0001813210 00000 n 0001813252 00000 n 0001813320 00000 n 0001813540 00000 n 0001813639 00000 n 0001816367 00000 n 0001816698 00000 n 0001817120 00000 n 0001817163 00000 n 0001817206 00000 n 0001817274 00000 n 0001817494 00000 n 0001817593 00000 n 0001819230 00000 n 0001819561 00000 n 0001819983 00000 n 0001820051 00000 n 0001820271 00000 n 0001820370 00000 n 0001824652 00000 n 0001824791 00000 n 0001824930 00000 n 0001825069 00000 n 0001825208 00000 n 0001825347 00000 n 0001825486 00000 n 0001825625 00000 n 0001825764 00000 n 0001825903 00000 n 0001826042 00000 n 0001826181 00000 n 0001826320 00000 n 0001826459 00000 n 0001826598 00000 n 0001826737 00000 n 0001826876 00000 n 0001827015 00000 n 0001827154 00000 n 0001827293 00000 n 0001827432 00000 n 0001827571 00000 n 0001827710 00000 n 0001827849 00000 n 0001827988 00000 n 0001828127 00000 n 0001828266 00000 n 0001828405 00000 n 0001828544 00000 n 0001828683 00000 n 0001828822 00000 n 0001828961 00000 n 0001829100 00000 n 0001829239 00000 n 0001829378 00000 n 0001829517 00000 n 0001829656 00000 n 0001829795 00000 n 0001829934 00000 n 0001830073 00000 n 0001830212 00000 n 0001830351 00000 n 0001830490 00000 n 0001830629 00000 n 0001830768 00000 n 0001830907 00000 n 0001831046 00000 n 0001831185 00000 n 0001831324 00000 n 0001831463 00000 n 0001831602 00000 n 0001831741 00000 n 0001831880 00000 n 0001832019 00000 n 0001832158 00000 n 0001832297 00000 n 0001832436 00000 n 0001832575 00000 n 0001832714 00000 n 0001832853 00000 n 0001832992 00000 n 0001833131 00000 n 0001833270 00000 n 0001833409 00000 n 0001833548 00000 n 0001833687 00000 n 0001833826 00000 n 0001833965 00000 n 0001834104 00000 n 0001834243 00000 n 0001834382 00000 n 0001834521 00000 n 0001834660 00000 n 0001834799 00000 n 0001834938 00000 n 0001835077 00000 n 0001835216 00000 n 0001835355 00000 n 0001835494 00000 n 0001835633 00000 n 0001835772 00000 n 0001835911 00000 n 0001836050 00000 n 0001836189 00000 n 0001836328 00000 n 0001836467 00000 n 0001836606 00000 n 0001836745 00000 n 0001836884 00000 n 0001837023 00000 n 0001837162 00000 n 0001837301 00000 n 0001837440 00000 n 0001837579 00000 n 0001837718 00000 n 0001837857 00000 n 0001837996 00000 n 0001838135 00000 n 0001838274 00000 n 0001838413 00000 n 0001838552 00000 n 0001838691 00000 n 0001838830 00000 n 0001838969 00000 n 0001839108 00000 n 0001839247 00000 n 0001839386 00000 n 0001839525 00000 n 0001839664 00000 n 0001839803 00000 n 0001839942 00000 n 0001840081 00000 n 0001840220 00000 n 0001840359 00000 n 0001840498 00000 n 0001840637 00000 n 0001840776 00000 n 0001840915 00000 n 0001841054 00000 n 0001841193 00000 n 0001841332 00000 n 0001841471 00000 n 0001841610 00000 n 0001841749 00000 n 0001841888 00000 n 0001842027 00000 n 0001842166 00000 n 0001842305 00000 n 0001842444 00000 n 0001842583 00000 n 0001842722 00000 n 0001842861 00000 n 0001843000 00000 n 0001843139 00000 n 0001843278 00000 n 0001843417 00000 n 0001843556 00000 n 0001843695 00000 n 0001843834 00000 n 0001843973 00000 n 0001844112 00000 n 0001844251 00000 n 0001844390 00000 n 0001844529 00000 n 0001844668 00000 n 0001844807 00000 n 0001844946 00000 n 0001845085 00000 n 0001845224 00000 n 0001845363 00000 n 0001845502 00000 n 0001845641 00000 n 0001845780 00000 n 0001845919 00000 n 0001846058 00000 n 0001846197 00000 n 0001846336 00000 n 0001846475 00000 n 0001846614 00000 n 0001846753 00000 n 0001846892 00000 n 0001847031 00000 n 0001847170 00000 n 0001847309 00000 n 0001847448 00000 n 0001847587 00000 n 0001847726 00000 n 0001847865 00000 n 0001848004 00000 n 0001848143 00000 n 0001848282 00000 n 0001848421 00000 n 0001848560 00000 n 0001848699 00000 n 0001848838 00000 n 0001848977 00000 n 0001849116 00000 n 0001849255 00000 n 0001849394 00000 n 0001849533 00000 n 0001849672 00000 n 0001849811 00000 n 0001849950 00000 n 0001850089 00000 n 0001850228 00000 n 0001850367 00000 n 0001850506 00000 n 0001850645 00000 n 0001850784 00000 n 0001850923 00000 n 0001851062 00000 n 0001851201 00000 n 0001851340 00000 n 0001851479 00000 n 0001851618 00000 n 0001851757 00000 n 0001851896 00000 n 0001852035 00000 n 0001852174 00000 n 0001852313 00000 n 0001852452 00000 n 0001852591 00000 n 0001852730 00000 n 0001852869 00000 n 0001853008 00000 n 0001853147 00000 n 0001853286 00000 n 0001853425 00000 n 0001853564 00000 n 0001853703 00000 n 0001853842 00000 n 0001853981 00000 n 0001854120 00000 n 0001854259 00000 n 0001854398 00000 n 0001854537 00000 n 0001854676 00000 n 0001854815 00000 n 0001854954 00000 n 0001855093 00000 n 0001855232 00000 n 0001855371 00000 n 0001855510 00000 n 0001855649 00000 n 0001855788 00000 n 0001855927 00000 n 0001856066 00000 n 0001856205 00000 n 0001856344 00000 n 0001856483 00000 n 0001856622 00000 n 0001856761 00000 n 0001856900 00000 n 0001857039 00000 n 0001857178 00000 n 0001857317 00000 n 0001857456 00000 n 0001857595 00000 n 0001857734 00000 n 0001857873 00000 n 0001858012 00000 n 0001858151 00000 n 0001858290 00000 n 0001858429 00000 n 0001858568 00000 n 0001858707 00000 n 0001858846 00000 n 0001858985 00000 n 0001859124 00000 n 0001859263 00000 n 0001859402 00000 n 0001859541 00000 n 0001859680 00000 n 0001859819 00000 n 0001859958 00000 n 0001860097 00000 n 0001860236 00000 n 0001860375 00000 n 0001860514 00000 n 0001860653 00000 n 0001860792 00000 n 0001860931 00000 n 0001861070 00000 n 0001861209 00000 n 0001861348 00000 n 0001861487 00000 n 0001861626 00000 n 0001861765 00000 n 0001861904 00000 n 0001862043 00000 n 0001862182 00000 n 0001862321 00000 n 0001862460 00000 n 0001862599 00000 n 0001862738 00000 n 0001862877 00000 n 0001863016 00000 n 0001863155 00000 n 0001863294 00000 n 0001863433 00000 n 0001863572 00000 n 0001863711 00000 n 0001863850 00000 n 0001863989 00000 n 0001864128 00000 n 0001864267 00000 n 0001864406 00000 n 0001864545 00000 n 0001864684 00000 n 0001864823 00000 n 0001864962 00000 n 0001865101 00000 n 0001865240 00000 n 0001865379 00000 n 0001865518 00000 n 0001865657 00000 n 0001865796 00000 n 0001865935 00000 n 0001866074 00000 n 0001866213 00000 n 0001866352 00000 n 0001866491 00000 n 0001866630 00000 n 0001866769 00000 n 0001866908 00000 n 0001867047 00000 n 0001867186 00000 n 0001867517 00000 n 0001867939 00000 n 0001868007 00000 n 0001868256 00000 n 0001868355 00000 n 0001871706 00000 n 0001871774 00000 n 0001872023 00000 n 0001872122 00000 n 0001876877 00000 n 0001876920 00000 n 0001876961 00000 n 0001877004 00000 n 0001877047 00000 n 0001877090 00000 n 0001877133 00000 n 0001877201 00000 n 0001877421 00000 n 0001877520 00000 n 0001880136 00000 n 0001880467 00000 n 0001880889 00000 n 0001880957 00000 n 0001881220 00000 n 0001881319 00000 n 0001885922 00000 n 0001886088 00000 n 0001886419 00000 n 0001886841 00000 n 0001886909 00000 n 0001887158 00000 n 0001887257 00000 n 0001891025 00000 n 0001891356 00000 n 0001891778 00000 n 0001891821 00000 n 0001891863 00000 n 0001891931 00000 n 0001892151 00000 n 0001892250 00000 n 0001895477 00000 n 0001895518 00000 n 0001895561 00000 n 0001895629 00000 n 0001895863 00000 n 0001895962 00000 n 0001900632 00000 n 0001900799 00000 n 0001901130 00000 n 0001901552 00000 n 0001901595 00000 n 0001901638 00000 n 0001901681 00000 n 0001901749 00000 n 0001901983 00000 n 0001902082 00000 n 0001906580 00000 n 0001906911 00000 n 0001907333 00000 n 0001907401 00000 n 0001907650 00000 n 0001907749 00000 n 0001912768 00000 n 0001913099 00000 n 0001913521 00000 n 0001913564 00000 n 0001913605 00000 n 0001913673 00000 n 0001913922 00000 n 0001914021 00000 n 0001918390 00000 n 0001918721 00000 n 0001919143 00000 n 0001919186 00000 n 0001919229 00000 n 0001919272 00000 n 0001919340 00000 n 0001919574 00000 n 0001919673 00000 n 0001923122 00000 n 0001923289 00000 n 0001923620 00000 n 0001924042 00000 n 0001924085 00000 n 0001924128 00000 n 0001924196 00000 n 0001924430 00000 n 0001924529 00000 n 0001927556 00000 n 0001927887 00000 n 0001928309 00000 n 0001928377 00000 n 0001928626 00000 n 0001928725 00000 n 0001931874 00000 n 0001932205 00000 n 0001932627 00000 n 0001932695 00000 n 0001932945 00000 n 0001933044 00000 n 0001935339 00000 n 0001935505 00000 n 0001935836 00000 n 0001936258 00000 n 0001936299 00000 n 0001936342 00000 n 0001936410 00000 n 0001936630 00000 n 0001936729 00000 n 0001940075 00000 n 0001940406 00000 n 0001940828 00000 n 0001940871 00000 n 0001940914 00000 n 0001940982 00000 n 0001941231 00000 n 0001941330 00000 n 0001945691 00000 n 0001945857 00000 n 0001946188 00000 n 0001946610 00000 n 0001946653 00000 n 0001946721 00000 n 0001946970 00000 n 0001947069 00000 n 0001951014 00000 n 0001951345 00000 n 0001951767 00000 n 0001951810 00000 n 0001951878 00000 n 0001952127 00000 n 0001952226 00000 n 0001956379 00000 n 0001956710 00000 n 0001957132 00000 n 0001957173 00000 n 0001957216 00000 n 0001957259 00000 n 0001957327 00000 n 0001957604 00000 n 0001957703 00000 n 0001961886 00000 n 0001962051 00000 n 0001962382 00000 n 0001962804 00000 n 0001962847 00000 n 0001962915 00000 n 0001963164 00000 n 0001963263 00000 n 0001967050 00000 n 0001967217 00000 n 0001967548 00000 n 0001967970 00000 n 0001968013 00000 n 0001968081 00000 n 0001968316 00000 n 0001968415 00000 n 0001971673 00000 n 0001972004 00000 n 0001972426 00000 n 0001972494 00000 n 0001972684 00000 n 0001972783 00000 n 0001973001 00000 n 0001973332 00000 n 0001973754 00000 n 0001973797 00000 n 0001973838 00000 n 0001973881 00000 n 0001973949 00000 n 0001974169 00000 n 0001974268 00000 n 0001977407 00000 n 0001977738 00000 n 0001978160 00000 n 0001978203 00000 n 0001978246 00000 n 0001978314 00000 n 0001978534 00000 n 0001978633 00000 n 0001981866 00000 n 0001982197 00000 n 0001982619 00000 n 0001982662 00000 n 0001982705 00000 n 0001982773 00000 n 0001983022 00000 n 0001983121 00000 n 0001986952 00000 n 0001987119 00000 n 0001987450 00000 n 0001987872 00000 n 0001987915 00000 n 0001987958 00000 n 0001988001 00000 n 0001988044 00000 n 0001988112 00000 n 0001988361 00000 n 0001988460 00000 n 0001992797 00000 n 0001992963 00000 n 0001993294 00000 n 0001993716 00000 n 0001993759 00000 n 0001993827 00000 n 0001994062 00000 n 0001994161 00000 n 0001998577 00000 n 0001998908 00000 n 0001999330 00000 n 0001999398 00000 n 0001999633 00000 n 0001999732 00000 n 0002004386 00000 n 0002004717 00000 n 0002005139 00000 n 0002005182 00000 n 0002005225 00000 n 0002005268 00000 n 0002005336 00000 n 0002005585 00000 n 0002005684 00000 n 0002009466 00000 n 0002009629 00000 n 0002009792 00000 n 0002009958 00000 n 0002010289 00000 n 0002010711 00000 n 0002010779 00000 n 0002011056 00000 n 0002011155 00000 n 0002015095 00000 n 0002015257 00000 n 0002015588 00000 n 0002016010 00000 n 0002016078 00000 n 0002016326 00000 n 0002016425 00000 n 0002020765 00000 n 0002021096 00000 n 0002021518 00000 n 0002021561 00000 n 0002021604 00000 n 0002021647 00000 n 0002021690 00000 n 0002021733 00000 n 0002021801 00000 n 0002022021 00000 n 0002022120 00000 n 0002025681 00000 n 0002026012 00000 n 0002026434 00000 n 0002026477 00000 n 0002026520 00000 n 0002026588 00000 n 0002026808 00000 n 0002026907 00000 n 0002031735 00000 n 0002032066 00000 n 0002032488 00000 n 0002032556 00000 n 0002032804 00000 n 0002032903 00000 n 0002037162 00000 n 0002037493 00000 n 0002037915 00000 n 0002037983 00000 n 0002038276 00000 n 0002038375 00000 n 0002039962 00000 n 0002040126 00000 n 0002040457 00000 n 0002040879 00000 n 0002040922 00000 n 0002040990 00000 n 0002041224 00000 n 0002041323 00000 n 0002045958 00000 n 0002046125 00000 n 0002046456 00000 n 0002046878 00000 n 0002046921 00000 n 0002046989 00000 n 0002047209 00000 n 0002047308 00000 n 0002051451 00000 n 0002051618 00000 n 0002051784 00000 n 0002052115 00000 n 0002052537 00000 n 0002052580 00000 n 0002052623 00000 n 0002052691 00000 n 0002052926 00000 n 0002053025 00000 n 0002057280 00000 n 0002057611 00000 n 0002058033 00000 n 0002058076 00000 n 0002058144 00000 n 0002058407 00000 n 0002058506 00000 n 0002062336 00000 n 0002062667 00000 n 0002063089 00000 n 0002063157 00000 n 0002063405 00000 n 0002063504 00000 n 0002067507 00000 n 0002067673 00000 n 0002068004 00000 n 0002068426 00000 n 0002068469 00000 n 0002068512 00000 n 0002068555 00000 n 0002068623 00000 n 0002068843 00000 n 0002068942 00000 n 0002073186 00000 n 0002073517 00000 n 0002073939 00000 n 0002073982 00000 n 0002074025 00000 n 0002074093 00000 n 0002074327 00000 n 0002074426 00000 n 0002078570 00000 n 0002078737 00000 n 0002078904 00000 n 0002079235 00000 n 0002079657 00000 n 0002079725 00000 n 0002079945 00000 n 0002080044 00000 n 0002081788 00000 n 0002082119 00000 n 0002082541 00000 n 0002082584 00000 n 0002082652 00000 n 0002082929 00000 n 0002083028 00000 n 0002086455 00000 n 0002086621 00000 n 0002086952 00000 n 0002087374 00000 n 0002087705 00000 n 0002088127 00000 n 0002088170 00000 n 0002088213 00000 n 0002088256 00000 n 0002088324 00000 n 0002088574 00000 n 0002088673 00000 n 0002090585 00000 n 0002090752 00000 n 0002090919 00000 n 0002091086 00000 n 0002091417 00000 n 0002091839 00000 n 0002091882 00000 n 0002091950 00000 n 0002092170 00000 n 0002092269 00000 n 0002095360 00000 n 0002095691 00000 n 0002096113 00000 n 0002096156 00000 n 0002096224 00000 n 0002096474 00000 n 0002096573 00000 n 0002098872 00000 n 0002099038 00000 n 0002099369 00000 n 0002099791 00000 n 0002099859 00000 n 0002100093 00000 n 0002100192 00000 n 0002103781 00000 n 0002104112 00000 n 0002104534 00000 n 0002104577 00000 n 0002104620 00000 n 0002104663 00000 n 0002104731 00000 n 0002104966 00000 n 0002105065 00000 n 0002108915 00000 n 0002109246 00000 n 0002109668 00000 n 0002109711 00000 n 0002109779 00000 n 0002109999 00000 n 0002110098 00000 n 0002111680 00000 n 0002112011 00000 n 0002112433 00000 n 0002112476 00000 n 0002112544 00000 n 0002112793 00000 n 0002112892 00000 n 0002117517 00000 n 0002117684 00000 n 0002118015 00000 n 0002118437 00000 n 0002118480 00000 n 0002118523 00000 n 0002118591 00000 n 0002118781 00000 n 0002118880 00000 n 0002119098 00000 n 0002119429 00000 n 0002119851 00000 n 0002119894 00000 n 0002119937 00000 n 0002120005 00000 n 0002120195 00000 n 0002120294 00000 n 0002120512 00000 n 0002120843 00000 n 0002121265 00000 n 0002121308 00000 n 0002121376 00000 n 0002121625 00000 n 0002121724 00000 n 0002125361 00000 n 0002125692 00000 n 0002126114 00000 n 0002126182 00000 n 0002126431 00000 n 0002126530 00000 n 0002130218 00000 n 0002130549 00000 n 0002130971 00000 n 0002131039 00000 n 0002131273 00000 n 0002131372 00000 n 0002135041 00000 n 0002135372 00000 n 0002135794 00000 n 0002135837 00000 n 0002135880 00000 n 0002135923 00000 n 0002135966 00000 n 0002136009 00000 n 0002136077 00000 n 0002136297 00000 n 0002136396 00000 n 0002140651 00000 n 0002140982 00000 n 0002141404 00000 n 0002141472 00000 n 0002141721 00000 n 0002141820 00000 n 0002146703 00000 n 0002146866 00000 n 0002147197 00000 n 0002147619 00000 n 0002147662 00000 n 0002147730 00000 n 0002147950 00000 n 0002148049 00000 n 0002150226 00000 n 0002150557 00000 n 0002150979 00000 n 0002151047 00000 n 0002151296 00000 n 0002151395 00000 n 0002155940 00000 n 0002156271 00000 n 0002156693 00000 n 0002156736 00000 n 0002156804 00000 n 0002157038 00000 n 0002157137 00000 n 0002160686 00000 n 0002161017 00000 n 0002161439 00000 n 0002161482 00000 n 0002161525 00000 n 0002161568 00000 n 0002161636 00000 n 0002161871 00000 n 0002161970 00000 n 0002165895 00000 n 0002166226 00000 n 0002166648 00000 n 0002166716 00000 n 0002166951 00000 n 0002167050 00000 n 0002171368 00000 n 0002171699 00000 n 0002172121 00000 n 0002172189 00000 n 0002172452 00000 n 0002172551 00000 n 0002176462 00000 n 0002176627 00000 n 0002176958 00000 n 0002177380 00000 n 0002177423 00000 n 0002177491 00000 n 0002177726 00000 n 0002177825 00000 n 0002183050 00000 n 0002183093 00000 n 0002183136 00000 n 0002183204 00000 n 0002183424 00000 n 0002183523 00000 n 0002187827 00000 n 0002188158 00000 n 0002188580 00000 n 0002188623 00000 n 0002188691 00000 n 0002188911 00000 n 0002189010 00000 n 0002191739 00000 n 0002192070 00000 n 0002192492 00000 n 0002192535 00000 n 0002192577 00000 n 0002192620 00000 n 0002192662 00000 n 0002192705 00000 n 0002192773 00000 n 0002193022 00000 n 0002193121 00000 n 0002196835 00000 n 0002197002 00000 n 0002197333 00000 n 0002197755 00000 n 0002197823 00000 n 0002198086 00000 n 0002198185 00000 n 0002201408 00000 n 0002201739 00000 n 0002202161 00000 n 0002202229 00000 n 0002202464 00000 n 0002202563 00000 n 0002206514 00000 n 0002206654 00000 n 0002206794 00000 n 0002206934 00000 n 0002207074 00000 n 0002207214 00000 n 0002207354 00000 n 0002207494 00000 n 0002207634 00000 n 0002207774 00000 n 0002207914 00000 n 0002208054 00000 n 0002208194 00000 n 0002208334 00000 n 0002208474 00000 n 0002208614 00000 n 0002208754 00000 n 0002208894 00000 n 0002209034 00000 n 0002209174 00000 n 0002209314 00000 n 0002209454 00000 n 0002209594 00000 n 0002209734 00000 n 0002209874 00000 n 0002210014 00000 n 0002210154 00000 n 0002210294 00000 n 0002210434 00000 n 0002210574 00000 n 0002210714 00000 n 0002210854 00000 n 0002210994 00000 n 0002211134 00000 n 0002211274 00000 n 0002211414 00000 n 0002211554 00000 n 0002211694 00000 n 0002211834 00000 n 0002211974 00000 n 0002212114 00000 n 0002212254 00000 n 0002212394 00000 n 0002212534 00000 n 0002212674 00000 n 0002212814 00000 n 0002212954 00000 n 0002213094 00000 n 0002213234 00000 n 0002213374 00000 n 0002213514 00000 n 0002213654 00000 n 0002213794 00000 n 0002213934 00000 n 0002214074 00000 n 0002214214 00000 n 0002214354 00000 n 0002214494 00000 n 0002214634 00000 n 0002214774 00000 n 0002214914 00000 n 0002215054 00000 n 0002215194 00000 n 0002215334 00000 n 0002215474 00000 n 0002215614 00000 n 0002215754 00000 n 0002215894 00000 n 0002216034 00000 n 0002216174 00000 n 0002216314 00000 n 0002216454 00000 n 0002216594 00000 n 0002216734 00000 n 0002216874 00000 n 0002217014 00000 n 0002217154 00000 n 0002217294 00000 n 0002217434 00000 n 0002217574 00000 n 0002217714 00000 n 0002217854 00000 n 0002217994 00000 n 0002218134 00000 n 0002218274 00000 n 0002218414 00000 n 0002218554 00000 n 0002218694 00000 n 0002218834 00000 n 0002218974 00000 n 0002219114 00000 n 0002219254 00000 n 0002219394 00000 n 0002219534 00000 n 0002219674 00000 n 0002219814 00000 n 0002219954 00000 n 0002220094 00000 n 0002220234 00000 n 0002220374 00000 n 0002220514 00000 n 0002220654 00000 n 0002220794 00000 n 0002220934 00000 n 0002221074 00000 n 0002221214 00000 n 0002221354 00000 n 0002221494 00000 n 0002221634 00000 n 0002221774 00000 n 0002221914 00000 n 0002222054 00000 n 0002222194 00000 n 0002222334 00000 n 0002222474 00000 n 0002222614 00000 n 0002222754 00000 n 0002222894 00000 n 0002223034 00000 n 0002223174 00000 n 0002223314 00000 n 0002223454 00000 n 0002223594 00000 n 0002223734 00000 n 0002223874 00000 n 0002224014 00000 n 0002224154 00000 n 0002224294 00000 n 0002224434 00000 n 0002224574 00000 n 0002224714 00000 n 0002224854 00000 n 0002224994 00000 n 0002225134 00000 n 0002225274 00000 n 0002225414 00000 n 0002225554 00000 n 0002225694 00000 n 0002225834 00000 n 0002225974 00000 n 0002226114 00000 n 0002226254 00000 n 0002226394 00000 n 0002226534 00000 n 0002226674 00000 n 0002226814 00000 n 0002226954 00000 n 0002227094 00000 n 0002227234 00000 n 0002227374 00000 n 0002227514 00000 n 0002227654 00000 n 0002227794 00000 n 0002227934 00000 n 0002228074 00000 n 0002228214 00000 n 0002228354 00000 n 0002228494 00000 n 0002228634 00000 n 0002228774 00000 n 0002228914 00000 n 0002229054 00000 n 0002229194 00000 n 0002229334 00000 n 0002229474 00000 n 0002229614 00000 n 0002229754 00000 n 0002229894 00000 n 0002230034 00000 n 0002230174 00000 n 0002230314 00000 n 0002230454 00000 n 0002230594 00000 n 0002230734 00000 n 0002230874 00000 n 0002231014 00000 n 0002231154 00000 n 0002231294 00000 n 0002231434 00000 n 0002231574 00000 n 0002231714 00000 n 0002231854 00000 n 0002231994 00000 n 0002232134 00000 n 0002232274 00000 n 0002232414 00000 n 0002232554 00000 n 0002232694 00000 n 0002232834 00000 n 0002232974 00000 n 0002233114 00000 n 0002233254 00000 n 0002233394 00000 n 0002233534 00000 n 0002233674 00000 n 0002233814 00000 n 0002233954 00000 n 0002234094 00000 n 0002234234 00000 n 0002234374 00000 n 0002234514 00000 n 0002234654 00000 n 0002234794 00000 n 0002234934 00000 n 0002235074 00000 n 0002235214 00000 n 0002235354 00000 n 0002235494 00000 n 0002235634 00000 n 0002235774 00000 n 0002235914 00000 n 0002236054 00000 n 0002236194 00000 n 0002236334 00000 n 0002236474 00000 n 0002236614 00000 n 0002236754 00000 n 0002236894 00000 n 0002237034 00000 n 0002237174 00000 n 0002237314 00000 n 0002237454 00000 n 0002237594 00000 n 0002237734 00000 n 0002237874 00000 n 0002238014 00000 n 0002238154 00000 n 0002238294 00000 n 0002238434 00000 n 0002238574 00000 n 0002238714 00000 n 0002238854 00000 n 0002238994 00000 n 0002239134 00000 n 0002239274 00000 n 0002239414 00000 n 0002239554 00000 n 0002239694 00000 n 0002239834 00000 n 0002239974 00000 n 0002240114 00000 n 0002240254 00000 n 0002240394 00000 n 0002240534 00000 n 0002240674 00000 n 0002240814 00000 n 0002240954 00000 n 0002241094 00000 n 0002241234 00000 n 0002241374 00000 n 0002241514 00000 n 0002241654 00000 n 0002241794 00000 n 0002241934 00000 n 0002242074 00000 n 0002242214 00000 n 0002242354 00000 n 0002242494 00000 n 0002242634 00000 n 0002242774 00000 n 0002242914 00000 n 0002243054 00000 n 0002243194 00000 n 0002243334 00000 n 0002243474 00000 n 0002243614 00000 n 0002243754 00000 n 0002243894 00000 n 0002244034 00000 n 0002244174 00000 n 0002244314 00000 n 0002244454 00000 n 0002244594 00000 n 0002244638 00000 n 0002244682 00000 n 0002244725 00000 n 0002244769 00000 n 0002244812 00000 n 0002244856 00000 n 0002244900 00000 n 0002244943 00000 n 0002244987 00000 n 0002245031 00000 n 0002245074 00000 n 0002245118 00000 n 0002245161 00000 n 0002245205 00000 n 0002245248 00000 n 0002245292 00000 n 0002245335 00000 n 0002245379 00000 n 0002245422 00000 n 0002245466 00000 n 0002245510 00000 n 0002245553 00000 n 0002245597 00000 n 0002245640 00000 n 0002245684 00000 n 0002245728 00000 n 0002245772 00000 n 0002245815 00000 n 0002245859 00000 n 0002245903 00000 n 0002245947 00000 n 0002245991 00000 n 0002246035 00000 n 0002246079 00000 n 0002246123 00000 n 0002246167 00000 n 0002246211 00000 n 0002246255 00000 n 0002246586 00000 n 0002247008 00000 n 0002247052 00000 n 0002247095 00000 n 0002247138 00000 n 0002247206 00000 n 0002247441 00000 n 0002247540 00000 n 0002251181 00000 n 0002251512 00000 n 0002251934 00000 n 0002251978 00000 n 0002252046 00000 n 0002252266 00000 n 0002252365 00000 n 0002256416 00000 n 0002256747 00000 n 0002257169 00000 n 0002257212 00000 n 0002257255 00000 n 0002257323 00000 n 0002257557 00000 n 0002257656 00000 n 0002260721 00000 n 0002261052 00000 n 0002261474 00000 n 0002261805 00000 n 0002262227 00000 n 0002262270 00000 n 0002262313 00000 n 0002262356 00000 n 0002262399 00000 n 0002262467 00000 n 0002262687 00000 n 0002262786 00000 n 0002266064 00000 n 0002266395 00000 n 0002266817 00000 n 0002266861 00000 n 0002266929 00000 n 0002267149 00000 n 0002267248 00000 n 0002268822 00000 n 0002269153 00000 n 0002269575 00000 n 0002269643 00000 n 0002269892 00000 n 0002269991 00000 n 0002274782 00000 n 0002275113 00000 n 0002275535 00000 n 0002275578 00000 n 0002275646 00000 n 0002275895 00000 n 0002275994 00000 n 0002279295 00000 n 0002279461 00000 n 0002279504 00000 n 0002279572 00000 n 0002279849 00000 n 0002279948 00000 n 0002284275 00000 n 0002284440 00000 n 0002284771 00000 n 0002285193 00000 n 0002285236 00000 n 0002285304 00000 n 0002285524 00000 n 0002285623 00000 n 0002288104 00000 n 0002288435 00000 n 0002288857 00000 n 0002288901 00000 n 0002288944 00000 n 0002288987 00000 n 0002289055 00000 n 0002289289 00000 n 0002289388 00000 n 0002293039 00000 n 0002293205 00000 n 0002293536 00000 n 0002293958 00000 n 0002294001 00000 n 0002294044 00000 n 0002294112 00000 n 0002294346 00000 n 0002294445 00000 n 0002297796 00000 n 0002297963 00000 n 0002298294 00000 n 0002298716 00000 n 0002298759 00000 n 0002298803 00000 n 0002298871 00000 n 0002299120 00000 n 0002299219 00000 n 0002301126 00000 n 0002301457 00000 n 0002301879 00000 n 0002301947 00000 n 0002302181 00000 n 0002302280 00000 n 0002305682 00000 n 0002306013 00000 n 0002306435 00000 n 0002306503 00000 n 0002306723 00000 n 0002306822 00000 n 0002309619 00000 n 0002309950 00000 n 0002310372 00000 n 0002310415 00000 n 0002310483 00000 n 0002310732 00000 n 0002310831 00000 n 0002315977 00000 n 0002316308 00000 n 0002316730 00000 n 0002316773 00000 n 0002316816 00000 n 0002316860 00000 n 0002316928 00000 n 0002317177 00000 n 0002317276 00000 n 0002320916 00000 n 0002321079 00000 n 0002321410 00000 n 0002321832 00000 n 0002321875 00000 n 0002321943 00000 n 0002322206 00000 n 0002322305 00000 n 0002326421 00000 n 0002326585 00000 n 0002326627 00000 n 0002326958 00000 n 0002327380 00000 n 0002327448 00000 n 0002327697 00000 n 0002327796 00000 n 0002330823 00000 n 0002330990 00000 n 0002331033 00000 n 0002331364 00000 n 0002331786 00000 n 0002331854 00000 n 0002332103 00000 n 0002332202 00000 n 0002335676 00000 n 0002335842 00000 n 0002336173 00000 n 0002336595 00000 n 0002336638 00000 n 0002336681 00000 n 0002336749 00000 n 0002336969 00000 n 0002337068 00000 n 0002341439 00000 n 0002341770 00000 n 0002342192 00000 n 0002342235 00000 n 0002342278 00000 n 0002342346 00000 n 0002342595 00000 n 0002342694 00000 n 0002347090 00000 n 0002347421 00000 n 0002347843 00000 n 0002347911 00000 n 0002348160 00000 n 0002348259 00000 n 0002351746 00000 n 0002351912 00000 n 0002352243 00000 n 0002352665 00000 n 0002352708 00000 n 0002352751 00000 n 0002352819 00000 n 0002353009 00000 n 0002353108 00000 n 0002353326 00000 n 0002353369 00000 n 0002353437 00000 n 0002353686 00000 n 0002353785 00000 n 0002357770 00000 n 0002358101 00000 n 0002358523 00000 n 0002358567 00000 n 0002358610 00000 n 0002358678 00000 n 0002358927 00000 n 0002359026 00000 n 0002363045 00000 n 0002363376 00000 n 0002363798 00000 n 0002363841 00000 n 0002363909 00000 n 0002364158 00000 n 0002364257 00000 n 0002368182 00000 n 0002368349 00000 n 0002368680 00000 n 0002369102 00000 n 0002369145 00000 n 0002369188 00000 n 0002369256 00000 n 0002369476 00000 n 0002369575 00000 n 0002371486 00000 n 0002371817 00000 n 0002372239 00000 n 0002372282 00000 n 0002372326 00000 n 0002372369 00000 n 0002372411 00000 n 0002372454 00000 n 0002372498 00000 n 0002372566 00000 n 0002372786 00000 n 0002372885 00000 n 0002374801 00000 n 0002375132 00000 n 0002375554 00000 n 0002375622 00000 n 0002375885 00000 n 0002375984 00000 n 0002379465 00000 n 0002379796 00000 n 0002380218 00000 n 0002380261 00000 n 0002380304 00000 n 0002380347 00000 n 0002380415 00000 n 0002380650 00000 n 0002380749 00000 n 0002384695 00000 n 0002385026 00000 n 0002385448 00000 n 0002385516 00000 n 0002385736 00000 n 0002385835 00000 n 0002387622 00000 n 0002387953 00000 n 0002388375 00000 n 0002388419 00000 n 0002388462 00000 n 0002388505 00000 n 0002388573 00000 n 0002388793 00000 n 0002388892 00000 n 0002392189 00000 n 0002392520 00000 n 0002392942 00000 n 0002392985 00000 n 0002393028 00000 n 0002393096 00000 n 0002393316 00000 n 0002393415 00000 n 0002395423 00000 n 0002395754 00000 n 0002396176 00000 n 0002396219 00000 n 0002396287 00000 n 0002396521 00000 n 0002396620 00000 n 0002400691 00000 n 0002401022 00000 n 0002401444 00000 n 0002401512 00000 n 0002401760 00000 n 0002401859 00000 n 0002405354 00000 n 0002405685 00000 n 0002406107 00000 n 0002406150 00000 n 0002406193 00000 n 0002406237 00000 n 0002406280 00000 n 0002406348 00000 n 0002406597 00000 n 0002406696 00000 n 0002411389 00000 n 0002411556 00000 n 0002411887 00000 n 0002412309 00000 n 0002412352 00000 n 0002412394 00000 n 0002412437 00000 n 0002412505 00000 n 0002412725 00000 n 0002412824 00000 n 0002414640 00000 n 0002414971 00000 n 0002415393 00000 n 0002415436 00000 n 0002415479 00000 n 0002415547 00000 n 0002415795 00000 n 0002415894 00000 n 0002418534 00000 n 0002418700 00000 n 0002418866 00000 n 0002419032 00000 n 0002419198 00000 n 0002419364 00000 n 0002419530 00000 n 0002419696 00000 n 0002419862 00000 n 0002420028 00000 n 0002420194 00000 n 0002420360 00000 n 0002420526 00000 n 0002420691 00000 n 0002420857 00000 n 0002421023 00000 n 0002421189 00000 n 0002421355 00000 n 0002421521 00000 n 0002421687 00000 n 0002421853 00000 n 0002422019 00000 n 0002422185 00000 n 0002422351 00000 n 0002422516 00000 n 0002422682 00000 n 0002422845 00000 n 0002423011 00000 n 0002423177 00000 n 0002423343 00000 n 0002423509 00000 n 0002423675 00000 n 0002423841 00000 n 0002424007 00000 n 0002424173 00000 n 0002424339 00000 n 0002424505 00000 n 0002424671 00000 n 0002424837 00000 n 0002424879 00000 n 0002424921 00000 n 0002424963 00000 n 0002425005 00000 n 0002425047 00000 n 0002425089 00000 n 0002425131 00000 n 0002425173 00000 n 0002425215 00000 n 0002425257 00000 n 0002425299 00000 n 0002425341 00000 n 0002425383 00000 n 0002425425 00000 n 0002425467 00000 n 0002425509 00000 n 0002425551 00000 n 0002425593 00000 n 0002425635 00000 n 0002425677 00000 n 0002425719 00000 n 0002425761 00000 n 0002425803 00000 n 0002425845 00000 n 0002426176 00000 n 0002426598 00000 n 0002426640 00000 n 0002426683 00000 n 0002426751 00000 n 0002427014 00000 n 0002427113 00000 n 0002431011 00000 n 0002431176 00000 n 0002431218 00000 n 0002431549 00000 n 0002431971 00000 n 0002432039 00000 n 0002432273 00000 n 0002432372 00000 n 0002434870 00000 n 0002435036 00000 n 0002435202 00000 n 0002435368 00000 n 0002435534 00000 n 0002435700 00000 n 0002435866 00000 n 0002436032 00000 n 0002436198 00000 n 0002436364 00000 n 0002436530 00000 n 0002436696 00000 n 0002436862 00000 n 0002437027 00000 n 0002437193 00000 n 0002437359 00000 n 0002437525 00000 n 0002437691 00000 n 0002437852 00000 n 0002438018 00000 n 0002438183 00000 n 0002438349 00000 n 0002438515 00000 n 0002438681 00000 n 0002438847 00000 n 0002439013 00000 n 0002439179 00000 n 0002439345 00000 n 0002439510 00000 n 0002439676 00000 n 0002439842 00000 n 0002440008 00000 n 0002440174 00000 n 0002440339 00000 n 0002440505 00000 n 0002440667 00000 n 0002440833 00000 n 0002440999 00000 n 0002441165 00000 n 0002441207 00000 n 0002441249 00000 n 0002441291 00000 n 0002441333 00000 n 0002441375 00000 n 0002441417 00000 n 0002441459 00000 n 0002441502 00000 n 0002441545 00000 n 0002441613 00000 n 0002441833 00000 n 0002441932 00000 n 0002445030 00000 n 0002445361 00000 n 0002445783 00000 n 0002445826 00000 n 0002445869 00000 n 0002445912 00000 n 0002445955 00000 n 0002446023 00000 n 0002446286 00000 n 0002446385 00000 n 0002451117 00000 n 0002451283 00000 n 0002451614 00000 n 0002452036 00000 n 0002452079 00000 n 0002452122 00000 n 0002452190 00000 n 0002452454 00000 n 0002452553 00000 n 0002454331 00000 n 0002454497 00000 n 0002454664 00000 n 0002454995 00000 n 0002455417 00000 n 0002455460 00000 n 0002455791 00000 n 0002456213 00000 n 0002456256 00000 n 0002456324 00000 n 0002456572 00000 n 0002456671 00000 n 0002459958 00000 n 0002460289 00000 n 0002460711 00000 n 0002460754 00000 n 0002460798 00000 n 0002460866 00000 n 0002461086 00000 n 0002461185 00000 n 0002465137 00000 n 0002465468 00000 n 0002465890 00000 n 0002465958 00000 n 0002466178 00000 n 0002466277 00000 n 0002468073 00000 n 0002468404 00000 n 0002468826 00000 n 0002468869 00000 n 0002468912 00000 n 0002468955 00000 n 0002468999 00000 n 0002469042 00000 n 0002469085 00000 n 0002469153 00000 n 0002469401 00000 n 0002469500 00000 n 0002473751 00000 n 0002474082 00000 n 0002474504 00000 n 0002474835 00000 n 0002475257 00000 n 0002475300 00000 n 0002475368 00000 n 0002475588 00000 n 0002475687 00000 n 0002478712 00000 n 0002479043 00000 n 0002479465 00000 n 0002479508 00000 n 0002479551 00000 n 0002479619 00000 n 0002479839 00000 n 0002479938 00000 n 0002485004 00000 n 0002485335 00000 n 0002485757 00000 n 0002485800 00000 n 0002485843 00000 n 0002485887 00000 n 0002485930 00000 n 0002485998 00000 n 0002486188 00000 n 0002486287 00000 n 0002486505 00000 n 0002486836 00000 n 0002487258 00000 n 0002487301 00000 n 0002487632 00000 n 0002488054 00000 n 0002488097 00000 n 0002488428 00000 n 0002488850 00000 n 0002488918 00000 n 0002489138 00000 n 0002489237 00000 n 0002493197 00000 n 0002493528 00000 n 0002493950 00000 n 0002493993 00000 n 0002494036 00000 n 0002494080 00000 n 0002494123 00000 n 0002494191 00000 n 0002494425 00000 n 0002494524 00000 n 0002498088 00000 n 0002498419 00000 n 0002498841 00000 n 0002498909 00000 n 0002499157 00000 n 0002499256 00000 n 0002501723 00000 n 0002501889 00000 n 0002502055 00000 n 0002502221 00000 n 0002502387 00000 n 0002502553 00000 n 0002502719 00000 n 0002502885 00000 n 0002503051 00000 n 0002503217 00000 n 0002503383 00000 n 0002503549 00000 n 0002503715 00000 n 0002503881 00000 n 0002504047 00000 n 0002504212 00000 n 0002504378 00000 n 0002504544 00000 n 0002504710 00000 n 0002504876 00000 n 0002505042 00000 n 0002505207 00000 n 0002505372 00000 n 0002505537 00000 n 0002505702 00000 n 0002505868 00000 n 0002506034 00000 n 0002506200 00000 n 0002506366 00000 n 0002506531 00000 n 0002506697 00000 n 0002506863 00000 n 0002507029 00000 n 0002507195 00000 n 0002507361 00000 n 0002507527 00000 n 0002507693 00000 n 0002507859 00000 n 0002508025 00000 n 0002508356 00000 n 0002508778 00000 n 0002508821 00000 n 0002508863 00000 n 0002508931 00000 n 0002509165 00000 n 0002509264 00000 n 0002512678 00000 n 0002512844 00000 n 0002512886 00000 n 0002513217 00000 n 0002513639 00000 n 0002513707 00000 n 0002513956 00000 n 0002514055 00000 n 0002518491 00000 n 0002518822 00000 n 0002519244 00000 n 0002519287 00000 n 0002519331 00000 n 0002519374 00000 n 0002519418 00000 n 0002519486 00000 n 0002519721 00000 n 0002519820 00000 n 0002523794 00000 n 0002524125 00000 n 0002524547 00000 n 0002524590 00000 n 0002524633 00000 n 0002524701 00000 n 0002524964 00000 n 0002525063 00000 n 0002526351 00000 n 0002526682 00000 n 0002527104 00000 n 0002527147 00000 n 0002527190 00000 n 0002527258 00000 n 0002527478 00000 n 0002527577 00000 n 0002531408 00000 n 0002531739 00000 n 0002532161 00000 n 0002532492 00000 n 0002532914 00000 n 0002532958 00000 n 0002533001 00000 n 0002533069 00000 n 0002533318 00000 n 0002533417 00000 n 0002537169 00000 n 0002537336 00000 n 0002537667 00000 n 0002538089 00000 n 0002538132 00000 n 0002538175 00000 n 0002538243 00000 n 0002538492 00000 n 0002538591 00000 n 0002542643 00000 n 0002542974 00000 n 0002543396 00000 n 0002543439 00000 n 0002543482 00000 n 0002543525 00000 n 0002543569 00000 n 0002543612 00000 n 0002543654 00000 n 0002543697 00000 n 0002543741 00000 n 0002543784 00000 n 0002543827 00000 n 0002543869 00000 n 0002543937 00000 n 0002544200 00000 n 0002544299 00000 n 0002546722 00000 n 0002547053 00000 n 0002547475 00000 n 0002547543 00000 n 0002547763 00000 n 0002547862 00000 n 0002551953 00000 n 0002552284 00000 n 0002552706 00000 n 0002552749 00000 n 0002552817 00000 n 0002553037 00000 n 0002553136 00000 n 0002556826 00000 n 0002557157 00000 n 0002557579 00000 n 0002557622 00000 n 0002557665 00000 n 0002557709 00000 n 0002557777 00000 n 0002558012 00000 n 0002558111 00000 n 0002562150 00000 n 0002562481 00000 n 0002562903 00000 n 0002563234 00000 n 0002563656 00000 n 0002563699 00000 n 0002563767 00000 n 0002564002 00000 n 0002564101 00000 n 0002567657 00000 n 0002567988 00000 n 0002568410 00000 n 0002568453 00000 n 0002568496 00000 n 0002568540 00000 n 0002568583 00000 n 0002568627 00000 n 0002568670 00000 n 0002568713 00000 n 0002568781 00000 n 0002569016 00000 n 0002569115 00000 n 0002573513 00000 n 0002573844 00000 n 0002574266 00000 n 0002574334 00000 n 0002574554 00000 n 0002574653 00000 n 0002578725 00000 n 0002579056 00000 n 0002579478 00000 n 0002579546 00000 n 0002579795 00000 n 0002579894 00000 n 0002581936 00000 n 0002582267 00000 n 0002582689 00000 n 0002582732 00000 n 0002582800 00000 n 0002583020 00000 n 0002583119 00000 n 0002587173 00000 n 0002587504 00000 n 0002587926 00000 n 0002587969 00000 n 0002588013 00000 n 0002588056 00000 n 0002588124 00000 n 0002588387 00000 n 0002588486 00000 n 0002593054 00000 n 0002593385 00000 n 0002593807 00000 n 0002593850 00000 n 0002593918 00000 n 0002594153 00000 n 0002594252 00000 n 0002598568 00000 n 0002598899 00000 n 0002599321 00000 n 0002599364 00000 n 0002599407 00000 n 0002599450 00000 n 0002599493 00000 n 0002599537 00000 n 0002599580 00000 n 0002599623 00000 n 0002599666 00000 n 0002599709 00000 n 0002599777 00000 n 0002600026 00000 n 0002600125 00000 n 0002604800 00000 n 0002604963 00000 n 0002605294 00000 n 0002605716 00000 n 0002605784 00000 n 0002606004 00000 n 0002606103 00000 n 0002609929 00000 n 0002610260 00000 n 0002610682 00000 n 0002610725 00000 n 0002610793 00000 n 0002611071 00000 n 0002611170 00000 n 0002613722 00000 n 0002613888 00000 n 0002614054 00000 n 0002614220 00000 n 0002614386 00000 n 0002614552 00000 n 0002614718 00000 n 0002614884 00000 n 0002615050 00000 n 0002615216 00000 n 0002615382 00000 n 0002615548 00000 n 0002615714 00000 n 0002615880 00000 n 0002616046 00000 n 0002616212 00000 n 0002616378 00000 n 0002616544 00000 n 0002616710 00000 n 0002616876 00000 n 0002617042 00000 n 0002617208 00000 n 0002617374 00000 n 0002617540 00000 n 0002617705 00000 n 0002617871 00000 n 0002618037 00000 n 0002618203 00000 n 0002618369 00000 n 0002618535 00000 n 0002618701 00000 n 0002618867 00000 n 0002619033 00000 n 0002619199 00000 n 0002619365 00000 n 0002619530 00000 n 0002619696 00000 n 0002619862 00000 n 0002620028 00000 n 0002620070 00000 n 0002620112 00000 n 0002620154 00000 n 0002620196 00000 n 0002620238 00000 n 0002620280 00000 n 0002620322 00000 n 0002620364 00000 n 0002620406 00000 n 0002620448 00000 n 0002620490 00000 n 0002620532 00000 n 0002620574 00000 n 0002620616 00000 n 0002620658 00000 n 0002620700 00000 n 0002620742 00000 n 0002620784 00000 n 0002620826 00000 n 0002620868 00000 n 0002620910 00000 n 0002620952 00000 n 0002620994 00000 n 0002621036 00000 n 0002621078 00000 n 0002621409 00000 n 0002621831 00000 n 0002621899 00000 n 0002622206 00000 n 0002622305 00000 n 0002624284 00000 n 0002624450 00000 n 0002624616 00000 n 0002624782 00000 n 0002624824 00000 n 0002624866 00000 n 0002624908 00000 n 0002625239 00000 n 0002625661 00000 n 0002625704 00000 n 0002625747 00000 n 0002625790 00000 n 0002625834 00000 n 0002625877 00000 n 0002626208 00000 n 0002626630 00000 n 0002626673 00000 n 0002626716 00000 n 0002626759 00000 n 0002626803 00000 n 0002626871 00000 n 0002627106 00000 n 0002627205 00000 n 0002631112 00000 n 0002631443 00000 n 0002631865 00000 n 0002631908 00000 n 0002632214 00000 n 0002632607 00000 n 0002633100 00000 n 0002633514 00000 n 0002633625 00000 n 0002633738 00000 n 0002633879 00000 n 0002653361 00000 n 0002681366 00000 n 0002681408 00000 n 0002681478 00000 n 0003001517 00000 n 0003001921 00000 n 0003002215 00000 n 0003315152 00000 n 0003315424 00000 n 0003315764 00000 n 0003315807 00000 n 0003315875 00000 n 0003316095 00000 n 0003316194 00000 n 0003320194 00000 n 0003320525 00000 n 0003320947 00000 n 0003320990 00000 n 0003321033 00000 n 0003321077 00000 n 0003321120 00000 n 0003321188 00000 n 0003321422 00000 n 0003321521 00000 n 0003324210 00000 n 0003324541 00000 n 0003324963 00000 n 0003325006 00000 n 0003325049 00000 n 0003325117 00000 n 0003325351 00000 n 0003325450 00000 n 0003329130 00000 n 0003329297 00000 n 0003329628 00000 n 0003330050 00000 n 0003330118 00000 n 0003330381 00000 n 0003330480 00000 n 0003334884 00000 n 0003335050 00000 n 0003335092 00000 n 0003335423 00000 n 0003335845 00000 n 0003335913 00000 n 0003336133 00000 n 0003336232 00000 n 0003340688 00000 n 0003341019 00000 n 0003341441 00000 n 0003341509 00000 n 0003341729 00000 n 0003341828 00000 n 0003344964 00000 n 0003345295 00000 n 0003345717 00000 n 0003345760 00000 n 0003345803 00000 n 0003345846 00000 n 0003345889 00000 n 0003345957 00000 n 0003346268 00000 n 0003346367 00000 n 0003349067 00000 n 0003349233 00000 n 0003349399 00000 n 0003349565 00000 n 0003349731 00000 n 0003349897 00000 n 0003350063 00000 n 0003350229 00000 n 0003350395 00000 n 0003350561 00000 n 0003350727 00000 n 0003350893 00000 n 0003351059 00000 n 0003351225 00000 n 0003351391 00000 n 0003351557 00000 n 0003351723 00000 n 0003351888 00000 n 0003352054 00000 n 0003352220 00000 n 0003352386 00000 n 0003352552 00000 n 0003352718 00000 n 0003352884 00000 n 0003353050 00000 n 0003353216 00000 n 0003353382 00000 n 0003353548 00000 n 0003353714 00000 n 0003353880 00000 n 0003354046 00000 n 0003354212 00000 n 0003354378 00000 n 0003354544 00000 n 0003354710 00000 n 0003354876 00000 n 0003355042 00000 n 0003355083 00000 n 0003355124 00000 n 0003355455 00000 n 0003355877 00000 n 0003355920 00000 n 0003355963 00000 n 0003356031 00000 n 0003356294 00000 n 0003356393 00000 n 0003358635 00000 n 0003358966 00000 n 0003359388 00000 n 0003359431 00000 n 0003359474 00000 n 0003359542 00000 n 0003359762 00000 n 0003359861 00000 n 0003361612 00000 n 0003361943 00000 n 0003362365 00000 n 0003362408 00000 n 0003362451 00000 n 0003362495 00000 n 0003362538 00000 n 0003362581 00000 n 0003362649 00000 n 0003362884 00000 n 0003362983 00000 n 0003365783 00000 n 0003365851 00000 n 0003366100 00000 n 0003366199 00000 n 0003369905 00000 n 0003370072 00000 n 0003370239 00000 n 0003370570 00000 n 0003370992 00000 n 0003371060 00000 n 0003371280 00000 n 0003371379 00000 n 0003375293 00000 n 0003375624 00000 n 0003376046 00000 n 0003376089 00000 n 0003376157 00000 n 0003376377 00000 n 0003376476 00000 n 0003377743 00000 n 0003378074 00000 n 0003378496 00000 n 0003378539 00000 n 0003378607 00000 n 0003378827 00000 n 0003378926 00000 n 0003383335 00000 n 0003383666 00000 n 0003384088 00000 n 0003384131 00000 n 0003384174 00000 n 0003384218 00000 n 0003384261 00000 n 0003384304 00000 n 0003384347 00000 n 0003384415 00000 n 0003384693 00000 n 0003384792 00000 n 0003387138 00000 n 0003387299 00000 n 0003387464 00000 n 0003387628 00000 n 0003387793 00000 n 0003387958 00000 n 0003388123 00000 n 0003388288 00000 n 0003388453 00000 n 0003388617 00000 n 0003388782 00000 n 0003388947 00000 n 0003389112 00000 n 0003389276 00000 n 0003389440 00000 n 0003389604 00000 n 0003389768 00000 n 0003389931 00000 n 0003390095 00000 n 0003390259 00000 n 0003390423 00000 n 0003390587 00000 n 0003390751 00000 n 0003390915 00000 n 0003391079 00000 n 0003391243 00000 n 0003391408 00000 n 0003391573 00000 n 0003391738 00000 n 0003391903 00000 n 0003392068 00000 n 0003392233 00000 n 0003392398 00000 n 0003392563 00000 n 0003392728 00000 n 0003392892 00000 n 0003393057 00000 n 0003393218 00000 n 0003393383 00000 n 0003393548 00000 n 0003393713 00000 n 0003393754 00000 n 0003394085 00000 n 0003394507 00000 n 0003394838 00000 n 0003395260 00000 n 0003395303 00000 n 0003395371 00000 n 0003395634 00000 n 0003395733 00000 n 0003397881 00000 n 0003398212 00000 n 0003398634 00000 n 0003398702 00000 n 0003398922 00000 n 0003399021 00000 n 0003402725 00000 n 0003403056 00000 n 0003403478 00000 n 0003403521 00000 n 0003403589 00000 n 0003403837 00000 n 0003403936 00000 n 0003406983 00000 n 0003407314 00000 n 0003407736 00000 n 0003407780 00000 n 0003407823 00000 n 0003407866 00000 n 0003407934 00000 n 0003408169 00000 n 0003408268 00000 n 0003412577 00000 n 0003412908 00000 n 0003413330 00000 n 0003413398 00000 n 0003413618 00000 n 0003413717 00000 n 0003417520 00000 n 0003417851 00000 n 0003418273 00000 n 0003418316 00000 n 0003418359 00000 n 0003418402 00000 n 0003418445 00000 n 0003418488 00000 n 0003418556 00000 n 0003418791 00000 n 0003418890 00000 n 0003423442 00000 n 0003423485 00000 n 0003423528 00000 n 0003423596 00000 n 0003423845 00000 n 0003423944 00000 n 0003427822 00000 n 0003427988 00000 n 0003428030 00000 n 0003428361 00000 n 0003428783 00000 n 0003428826 00000 n 0003428869 00000 n 0003428937 00000 n 0003429186 00000 n 0003429285 00000 n 0003433016 00000 n 0003433059 00000 n 0003433127 00000 n 0003433347 00000 n 0003433446 00000 n 0003437579 00000 n 0003437910 00000 n 0003438332 00000 n 0003438375 00000 n 0003438443 00000 n 0003438706 00000 n 0003438805 00000 n 0003441128 00000 n 0003441459 00000 n 0003441881 00000 n 0003441924 00000 n 0003441968 00000 n 0003442036 00000 n 0003442285 00000 n 0003442384 00000 n 0003445586 00000 n 0003445917 00000 n 0003446339 00000 n 0003446382 00000 n 0003446425 00000 n 0003446493 00000 n 0003446713 00000 n 0003446812 00000 n 0003451686 00000 n 0003452017 00000 n 0003452439 00000 n 0003452507 00000 n 0003452756 00000 n 0003452855 00000 n 0003456919 00000 n 0003457250 00000 n 0003457672 00000 n 0003457715 00000 n 0003457758 00000 n 0003457800 00000 n 0003457843 00000 n 0003457886 00000 n 0003457929 00000 n 0003457972 00000 n 0003458016 00000 n 0003458059 00000 n 0003458102 00000 n 0003458145 00000 n 0003458188 00000 n 0003458230 00000 n 0003458273 00000 n 0003458341 00000 n 0003458561 00000 n 0003458660 00000 n 0003462684 00000 n 0003463015 00000 n 0003463437 00000 n 0003463480 00000 n 0003463548 00000 n 0003465083 00000 n 0003465182 00000 n 0003502740 00000 n 0003503256 00000 n 0003504014 00000 n 0003504557 00000 n 0003505305 00000 n 0003505430 00000 n 0003505553 00000 n 0003505677 00000 n 0003505799 00000 n 0003505824 00000 n 0003505940 00000 n 0003520559 00000 n 0003520890 00000 n 0003521667 00000 n 0003522089 00000 n 0003522455 00000 n 0003522691 00000 n 0003523091 00000 n 0003526613 00000 n 0003526926 00000 n 0003527105 00000 n 0003527492 00000 n 0003529559 00000 n 0003529865 00000 n 0003530039 00000 n 0003530425 00000 n 0003532552 00000 n 0003532817 00000 n 0003532936 00000 n 0003533294 00000 n 0003534736 00000 n 0003534779 00000 n 0003534823 00000 n 0003534891 00000 n 0003535154 00000 n 0003535253 00000 n 0003537678 00000 n 0003538009 00000 n 0003538431 00000 n 0003538474 00000 n 0003538517 00000 n 0003538585 00000 n 0003538862 00000 n 0003538961 00000 n 0003542780 00000 n 0003542944 00000 n 0003542987 00000 n 0003543318 00000 n 0003543740 00000 n 0003543808 00000 n 0003544043 00000 n 0003544142 00000 n 0003548029 00000 n 0003548360 00000 n 0003548782 00000 n 0003548825 00000 n 0003548868 00000 n 0003548911 00000 n 0003548954 00000 n 0003549022 00000 n 0003549242 00000 n 0003549341 00000 n 0003552444 00000 n 0003552775 00000 n 0003553197 00000 n 0003553240 00000 n 0003553283 00000 n 0003553326 00000 n 0003553369 00000 n 0003553437 00000 n 0003553716 00000 n 0003553815 00000 n 0003556142 00000 n 0003556308 00000 n 0003556473 00000 n 0003556639 00000 n 0003556681 00000 n 0003556723 00000 n 0003556765 00000 n 0003557096 00000 n 0003557518 00000 n 0003557561 00000 n 0003557603 00000 n 0003557671 00000 n 0003557905 00000 n 0003558004 00000 n 0003560974 00000 n 0003561305 00000 n 0003561727 00000 n 0003561770 00000 n 0003561814 00000 n 0003561857 00000 n 0003561900 00000 n 0003561968 00000 n 0003562231 00000 n 0003562330 00000 n 0003566579 00000 n 0003566910 00000 n 0003567332 00000 n 0003567375 00000 n 0003567418 00000 n 0003567460 00000 n 0003567528 00000 n 0003567777 00000 n 0003567876 00000 n 0003571078 00000 n 0003571245 00000 n 0003571576 00000 n 0003571998 00000 n 0003572041 00000 n 0003572109 00000 n 0003572329 00000 n 0003572428 00000 n 0003576133 00000 n 0003576464 00000 n 0003576886 00000 n 0003576954 00000 n 0003577174 00000 n 0003577273 00000 n 0003579605 00000 n 0003579936 00000 n 0003580358 00000 n 0003580401 00000 n 0003580445 00000 n 0003580486 00000 n 0003580529 00000 n 0003580572 00000 n 0003580903 00000 n 0003581325 00000 n 0003581368 00000 n 0003581411 00000 n 0003581479 00000 n 0003582624 00000 n 0003582723 00000 n 0003582942 00000 n 0003583273 00000 n 0003583695 00000 n 0003583738 00000 n 0003583780 00000 n 0003583822 00000 n 0003583865 00000 n 0003583909 00000 n 0003583952 00000 n 0003583995 00000 n 0003584063 00000 n 0003584326 00000 n 0003584425 00000 n 0003588398 00000 n 0003588729 00000 n 0003589151 00000 n 0003589194 00000 n 0003589237 00000 n 0003589279 00000 n 0003589322 00000 n 0003589390 00000 n 0003589624 00000 n 0003589723 00000 n 0003593553 00000 n 0003593884 00000 n 0003594306 00000 n 0003594374 00000 n 0003594637 00000 n 0003594736 00000 n 0003597264 00000 n 0003597595 00000 n 0003598017 00000 n 0003598085 00000 n 0003598334 00000 n 0003598433 00000 n 0003603425 00000 n 0003603592 00000 n 0003603923 00000 n 0003604345 00000 n 0003604388 00000 n 0003604431 00000 n 0003604474 00000 n 0003604542 00000 n 0003604791 00000 n 0003604890 00000 n 0003608021 00000 n 0003608089 00000 n 0003608366 00000 n 0003608465 00000 n 0003612653 00000 n 0003612817 00000 n 0003612860 00000 n 0003613191 00000 n 0003613613 00000 n 0003613656 00000 n 0003613699 00000 n 0003613767 00000 n 0003613987 00000 n 0003614086 00000 n 0003618751 00000 n 0003619082 00000 n 0003619504 00000 n 0003619547 00000 n 0003619590 00000 n 0003619633 00000 n 0003619701 00000 n 0003619936 00000 n 0003620035 00000 n 0003620270 00000 n 0003621476 00000 n 0003621807 00000 n 0003622229 00000 n 0003622297 00000 n 0003622517 00000 n 0003622616 00000 n 0003626477 00000 n 0003626808 00000 n 0003627230 00000 n 0003627298 00000 n 0003627547 00000 n 0003627646 00000 n 0003630432 00000 n 0003630598 00000 n 0003630929 00000 n 0003631351 00000 n 0003631394 00000 n 0003631437 00000 n 0003631479 00000 n 0003631522 00000 n 0003631590 00000 n 0003631824 00000 n 0003631923 00000 n 0003635001 00000 n 0003635332 00000 n 0003635754 00000 n 0003635822 00000 n 0003636042 00000 n 0003636141 00000 n 0003638694 00000 n 0003639025 00000 n 0003639447 00000 n 0003639490 00000 n 0003639533 00000 n 0003639601 00000 n 0003639864 00000 n 0003639963 00000 n 0003642396 00000 n 0003642727 00000 n 0003643149 00000 n 0003643192 00000 n 0003643260 00000 n 0003643847 00000 n 0003643946 00000 n 0003667769 00000 n 0003668272 00000 n 0003668625 00000 n 0003669013 00000 n 0003670065 00000 n 0003671095 00000 n 0003671517 00000 n 0003672657 00000 n 0003673675 00000 n 0003674006 00000 n 0003674372 00000 n 0003677557 00000 n 0003677600 00000 n 0003677642 00000 n 0003677710 00000 n 0003677930 00000 n 0003678029 00000 n 0003682211 00000 n 0003682254 00000 n 0003682298 00000 n 0003682341 00000 n 0003682409 00000 n 0003682793 00000 n 0003682892 00000 n 0003687132 00000 n 0003687175 00000 n 0003688379 00000 n 0003689585 00000 n 0003689916 00000 n 0003690338 00000 n 0003690370 00000 n 0003690477 00000 n 0003690520 00000 n 0003690588 00000 n 0003690836 00000 n 0003690935 00000 n 0003694458 00000 n 0003694789 00000 n 0003695211 00000 n 0003695279 00000 n 0003695513 00000 n 0003695612 00000 n 0003699668 00000 n 0003699834 00000 n 0003699876 00000 n 0003699919 00000 n 0003699961 00000 n 0003700004 00000 n 0003700072 00000 n 0003700365 00000 n 0003700464 00000 n 0003702768 00000 n 0003702934 00000 n 0003703100 00000 n 0003703265 00000 n 0003703596 00000 n 0003704018 00000 n 0003704061 00000 n 0003704105 00000 n 0003704173 00000 n 0003704393 00000 n 0003704492 00000 n 0003706589 00000 n 0003706920 00000 n 0003707342 00000 n 0003707385 00000 n 0003707453 00000 n 0003707701 00000 n 0003707800 00000 n 0003712021 00000 n 0003712352 00000 n 0003712774 00000 n 0003712817 00000 n 0003712885 00000 n 0003713148 00000 n 0003713247 00000 n 0003715399 00000 n 0003715730 00000 n 0003716152 00000 n 0003716195 00000 n 0003716237 00000 n 0003716305 00000 n 0003716525 00000 n 0003716624 00000 n 0003717943 00000 n 0003718274 00000 n 0003718696 00000 n 0003718739 00000 n 0003718782 00000 n 0003718825 00000 n 0003718868 00000 n 0003718911 00000 n 0003718979 00000 n 0003719199 00000 n 0003719298 00000 n 0003723351 00000 n 0003723682 00000 n 0003724104 00000 n 0003724147 00000 n 0003724215 00000 n 0003724464 00000 n 0003724563 00000 n 0003728639 00000 n 0003728970 00000 n 0003729392 00000 n 0003729435 00000 n 0003729478 00000 n 0003729521 00000 n 0003729564 00000 n 0003729632 00000 n 0003729866 00000 n 0003729965 00000 n 0003733277 00000 n 0003733443 00000 n 0003733774 00000 n 0003734196 00000 n 0003734264 00000 n 0003734498 00000 n 0003734597 00000 n 0003738410 00000 n 0003738577 00000 n 0003738620 00000 n 0003738663 00000 n 0003738731 00000 n 0003738951 00000 n 0003739050 00000 n 0003742161 00000 n 0003742492 00000 n 0003742914 00000 n 0003742957 00000 n 0003743000 00000 n 0003743068 00000 n 0003743303 00000 n 0003743402 00000 n 0003746947 00000 n 0003747278 00000 n 0003747700 00000 n 0003747768 00000 n 0003748031 00000 n 0003748130 00000 n 0003750665 00000 n 0003750996 00000 n 0003751418 00000 n 0003751461 00000 n 0003751504 00000 n 0003751546 00000 n 0003751589 00000 n 0003751633 00000 n 0003751676 00000 n 0003751744 00000 n 0003751964 00000 n 0003752063 00000 n 0003755209 00000 n 0003755540 00000 n 0003755962 00000 n 0003756005 00000 n 0003756073 00000 n 0003756293 00000 n 0003756392 00000 n 0003759849 00000 n 0003760180 00000 n 0003760602 00000 n 0003760670 00000 n 0003760919 00000 n 0003761018 00000 n 0003765016 00000 n 0003765347 00000 n 0003765769 00000 n 0003765837 00000 n 0003766893 00000 n 0003766992 00000 n 0003773020 00000 n 0003773079 00000 n 0003773426 00000 n 0003774124 00000 n 0003774302 00000 n 0003774771 00000 n 0003774951 00000 n 0003777010 00000 n 0003777341 00000 n 0003794211 00000 n 0003794633 00000 n 0003794887 00000 n 0003795281 00000 n 0003795595 00000 n 0003795914 00000 n 0003796439 00000 n 0003796834 00000 n 0003800481 00000 n 0003800747 00000 n 0003807776 00000 n 0003808208 00000 n 0003808276 00000 n 0003808496 00000 n 0003808595 00000 n 0003812724 00000 n 0003813055 00000 n 0003813477 00000 n 0003813520 00000 n 0003813564 00000 n 0003813605 00000 n 0003813648 00000 n 0003813691 00000 n 0003813734 00000 n 0003813777 00000 n 0003815537 00000 n 0003816858 00000 n 0003833069 00000 n 0003833137 00000 n 0003833372 00000 n 0003833471 00000 n 0003836815 00000 n 0003837146 00000 n 0003837568 00000 n 0003837611 00000 n 0003837654 00000 n 0003837698 00000 n 0003837741 00000 n 0003837809 00000 n 0003838029 00000 n 0003838128 00000 n 0003841197 00000 n 0003841528 00000 n 0003841950 00000 n 0003841993 00000 n 0003842061 00000 n 0003842324 00000 n 0003842423 00000 n 0003844653 00000 n 0003844984 00000 n 0003845406 00000 n 0003845449 00000 n 0003845492 00000 n 0003845560 00000 n 0003846644 00000 n 0003846743 00000 n 0003864362 00000 n 0003864427 00000 n 0003864573 00000 n 0003864773 00000 n 0003865179 00000 n 0003865629 00000 n 0003866047 00000 n 0003866378 00000 n 0003866800 00000 n 0003866913 00000 n 0003867024 00000 n 0003867135 00000 n 0003868888 00000 n 0003869357 00000 n 0003882313 00000 n 0003882596 00000 n 0003883076 00000 n 0003892648 00000 n 0003892968 00000 n 0003893381 00000 n 0003895193 00000 n 0003895506 00000 n 0003895812 00000 n 0003896224 00000 n 0003896748 00000 n 0003896780 00000 n 0003897256 00000 n 0003897534 00000 n 0003897607 00000 n 0003902223 00000 n 0003902305 00000 n 0003902373 00000 n 0003902621 00000 n 0003902720 00000 n 0003906696 00000 n 0003906862 00000 n 0003907193 00000 n 0003907615 00000 n 0003907658 00000 n 0003907700 00000 n 0003907743 00000 n 0003907811 00000 n 0003908088 00000 n 0003908187 00000 n 0003911990 00000 n 0003912156 00000 n 0003912198 00000 n 0003912529 00000 n 0003912951 00000 n 0003912994 00000 n 0003913062 00000 n 0003913252 00000 n 0003913351 00000 n 0003913569 00000 n 0003913900 00000 n 0003914322 00000 n 0003914365 00000 n 0003914407 00000 n 0003914450 00000 n 0003914518 00000 n 0003914781 00000 n 0003914880 00000 n 0003918552 00000 n 0003918883 00000 n 0003919305 00000 n 0003919348 00000 n 0003919392 00000 n 0003919460 00000 n 0003919723 00000 n 0003919822 00000 n 0003922245 00000 n 0003922576 00000 n 0003922998 00000 n 0003923041 00000 n 0003923109 00000 n 0003923329 00000 n 0003923428 00000 n 0003926944 00000 n 0003927275 00000 n 0003927697 00000 n 0003927740 00000 n 0003927783 00000 n 0003927826 00000 n 0003927894 00000 n 0003928157 00000 n 0003928256 00000 n 0003930636 00000 n 0003930967 00000 n 0003931389 00000 n 0003931720 00000 n 0003932142 00000 n 0003932186 00000 n 0003932254 00000 n 0003932488 00000 n 0003932587 00000 n 0003936209 00000 n 0003936540 00000 n 0003936962 00000 n 0003937005 00000 n 0003937048 00000 n 0003937116 00000 n 0003937336 00000 n 0003937435 00000 n 0003941301 00000 n 0003941632 00000 n 0003942054 00000 n 0003942098 00000 n 0003942141 00000 n 0003942182 00000 n 0003942250 00000 n 0003942484 00000 n 0003942583 00000 n 0003946858 00000 n 0003947024 00000 n 0003947066 00000 n 0003947397 00000 n 0003947819 00000 n 0003947887 00000 n 0003948164 00000 n 0003948263 00000 n 0003952705 00000 n 0003952871 00000 n 0003952913 00000 n 0003953244 00000 n 0003953666 00000 n 0003953709 00000 n 0003953752 00000 n 0003953795 00000 n 0003953863 00000 n 0003954083 00000 n 0003954182 00000 n 0003958736 00000 n 0003958875 00000 n 0003959014 00000 n 0003959153 00000 n 0003959292 00000 n 0003959431 00000 n 0003959570 00000 n 0003959709 00000 n 0003959848 00000 n 0003959987 00000 n 0003960126 00000 n 0003960265 00000 n 0003960404 00000 n 0003960543 00000 n 0003960682 00000 n 0003960821 00000 n 0003960960 00000 n 0003961099 00000 n 0003961238 00000 n 0003961377 00000 n 0003961516 00000 n 0003961655 00000 n 0003961794 00000 n 0003961933 00000 n 0003962072 00000 n 0003962211 00000 n 0003962350 00000 n 0003962489 00000 n 0003962628 00000 n 0003962767 00000 n 0003962906 00000 n 0003963045 00000 n 0003963184 00000 n 0003963323 00000 n 0003963462 00000 n 0003963601 00000 n 0003963740 00000 n 0003963879 00000 n 0003964018 00000 n 0003964157 00000 n 0003964296 00000 n 0003964435 00000 n 0003964574 00000 n 0003964713 00000 n 0003964852 00000 n 0003964991 00000 n 0003965130 00000 n 0003965269 00000 n 0003965408 00000 n 0003965547 00000 n 0003965686 00000 n 0003965825 00000 n 0003965964 00000 n 0003966103 00000 n 0003966242 00000 n 0003966381 00000 n 0003966520 00000 n 0003966659 00000 n 0003966798 00000 n 0003966937 00000 n 0003967076 00000 n 0003967215 00000 n 0003967354 00000 n 0003967493 00000 n 0003967632 00000 n 0003967771 00000 n 0003967910 00000 n 0003968049 00000 n 0003968188 00000 n 0003968327 00000 n 0003968466 00000 n 0003968605 00000 n 0003968744 00000 n 0003968883 00000 n 0003969022 00000 n 0003969161 00000 n 0003969300 00000 n 0003969439 00000 n 0003969578 00000 n 0003969717 00000 n 0003969856 00000 n 0003969995 00000 n 0003970134 00000 n 0003970273 00000 n 0003970412 00000 n 0003970551 00000 n 0003970690 00000 n 0003970829 00000 n 0003970968 00000 n 0003971107 00000 n 0003971246 00000 n 0003971385 00000 n 0003971524 00000 n 0003971663 00000 n 0003971802 00000 n 0003971941 00000 n 0003972080 00000 n 0003972219 00000 n 0003972358 00000 n 0003972497 00000 n 0003972636 00000 n 0003972775 00000 n 0003972914 00000 n 0003973053 00000 n 0003973192 00000 n 0003973331 00000 n 0003973470 00000 n 0003973609 00000 n 0003973748 00000 n 0003973887 00000 n 0003974026 00000 n 0003974165 00000 n 0003974304 00000 n 0003974443 00000 n 0003974582 00000 n 0003974721 00000 n 0003974860 00000 n 0003974999 00000 n 0003975138 00000 n 0003975277 00000 n 0003975416 00000 n 0003975555 00000 n 0003975694 00000 n 0003975833 00000 n 0003975972 00000 n 0003976111 00000 n 0003976250 00000 n 0003976389 00000 n 0003976528 00000 n 0003976667 00000 n 0003976806 00000 n 0003976945 00000 n 0003977084 00000 n 0003977223 00000 n 0003977362 00000 n 0003977501 00000 n 0003977640 00000 n 0003977779 00000 n 0003977918 00000 n 0003978057 00000 n 0003978196 00000 n 0003978335 00000 n 0003978474 00000 n 0003978613 00000 n 0003978752 00000 n 0003978891 00000 n 0003979030 00000 n 0003979169 00000 n 0003979308 00000 n 0003979447 00000 n 0003979586 00000 n 0003979725 00000 n 0003979864 00000 n 0003980003 00000 n 0003980142 00000 n 0003980281 00000 n 0003980420 00000 n 0003980559 00000 n 0003980698 00000 n 0003980837 00000 n 0003980976 00000 n 0003981115 00000 n 0003981254 00000 n 0003981393 00000 n 0003981532 00000 n 0003981671 00000 n 0003981810 00000 n 0003981949 00000 n 0003982088 00000 n 0003982227 00000 n 0003982366 00000 n 0003982505 00000 n 0003982644 00000 n 0003982783 00000 n 0003982922 00000 n 0003983061 00000 n 0003983200 00000 n 0003983339 00000 n 0003983478 00000 n 0003983617 00000 n 0003983756 00000 n 0003983895 00000 n 0003984034 00000 n 0003984173 00000 n 0003984312 00000 n 0003984451 00000 n 0003984590 00000 n 0003984729 00000 n 0003984868 00000 n 0003985007 00000 n 0003985146 00000 n 0003985285 00000 n 0003985424 00000 n 0003985563 00000 n 0003985702 00000 n 0003985841 00000 n 0003985980 00000 n 0003986119 00000 n 0003986258 00000 n 0003986397 00000 n 0003986536 00000 n 0003986675 00000 n 0003986814 00000 n 0003986953 00000 n 0003987092 00000 n 0003987231 00000 n 0003987370 00000 n 0003987509 00000 n 0003987648 00000 n 0003987787 00000 n 0003987926 00000 n 0003988065 00000 n 0003988204 00000 n 0003988343 00000 n 0003988482 00000 n 0003988621 00000 n 0003988760 00000 n 0003988899 00000 n 0003989038 00000 n 0003989177 00000 n 0003989316 00000 n 0003989455 00000 n 0003989594 00000 n 0003989733 00000 n 0003989872 00000 n 0003990011 00000 n 0003990150 00000 n 0003990289 00000 n 0003990428 00000 n 0003990567 00000 n 0003990706 00000 n 0003990845 00000 n 0003990984 00000 n 0003991123 00000 n 0003991262 00000 n 0003991401 00000 n 0003991540 00000 n 0003991679 00000 n 0003991818 00000 n 0003991957 00000 n 0003992096 00000 n 0003992235 00000 n 0003992374 00000 n 0003992513 00000 n 0003992652 00000 n 0003992791 00000 n 0003992930 00000 n 0003993069 00000 n 0003993208 00000 n 0003993347 00000 n 0003993486 00000 n 0003993625 00000 n 0003993764 00000 n 0003993903 00000 n 0003994042 00000 n 0003994181 00000 n 0003994320 00000 n 0003994459 00000 n 0003994598 00000 n 0003994737 00000 n 0003994876 00000 n 0003995015 00000 n 0003995154 00000 n 0003995293 00000 n 0003995432 00000 n 0003995571 00000 n 0003995710 00000 n 0003995849 00000 n 0003995988 00000 n 0003996127 00000 n 0003996266 00000 n 0003996405 00000 n 0003996544 00000 n 0003996683 00000 n 0003996822 00000 n 0003996961 00000 n 0003997100 00000 n 0003997239 00000 n 0003997378 00000 n 0003997517 00000 n 0003997656 00000 n 0003997795 00000 n 0003997934 00000 n 0003998073 00000 n 0003998212 00000 n 0003998351 00000 n 0003998490 00000 n 0003998629 00000 n 0003998768 00000 n 0003998907 00000 n 0003999046 00000 n 0003999185 00000 n 0003999324 00000 n 0003999463 00000 n 0003999602 00000 n 0003999741 00000 n 0003999880 00000 n 0004000019 00000 n 0004000158 00000 n 0004000297 00000 n 0004000436 00000 n 0004000575 00000 n 0004000714 00000 n 0004000853 00000 n 0004000992 00000 n 0004001131 00000 n 0004001270 00000 n 0004001409 00000 n 0004001548 00000 n 0004001687 00000 n 0004001826 00000 n 0004001965 00000 n 0004002104 00000 n 0004002243 00000 n 0004002382 00000 n 0004002521 00000 n 0004002660 00000 n 0004002799 00000 n 0004002938 00000 n 0004003077 00000 n 0004003216 00000 n 0004003355 00000 n 0004003494 00000 n 0004003633 00000 n 0004003772 00000 n 0004003911 00000 n 0004004050 00000 n 0004004189 00000 n 0004004328 00000 n 0004004371 00000 n 0004004414 00000 n 0004004457 00000 n 0004004500 00000 n 0004004543 00000 n 0004004586 00000 n 0004004629 00000 n 0004004672 00000 n 0004004715 00000 n 0004004758 00000 n 0004004801 00000 n 0004004844 00000 n 0004004887 00000 n 0004004930 00000 n 0004004973 00000 n 0004005016 00000 n 0004005059 00000 n 0004005102 00000 n 0004005145 00000 n 0004005188 00000 n 0004005231 00000 n 0004005274 00000 n 0004005317 00000 n 0004005360 00000 n 0004005403 00000 n 0004005446 00000 n 0004005489 00000 n 0004005532 00000 n 0004005575 00000 n 0004005618 00000 n 0004005661 00000 n 0004005704 00000 n 0004005747 00000 n 0004005790 00000 n 0004005833 00000 n 0004005876 00000 n 0004005919 00000 n 0004005962 00000 n 0004006005 00000 n 0004006048 00000 n 0004006091 00000 n 0004006134 00000 n 0004006177 00000 n 0004006220 00000 n 0004006263 00000 n 0004006306 00000 n 0004006349 00000 n 0004006392 00000 n 0004006435 00000 n 0004006478 00000 n 0004006521 00000 n 0004006564 00000 n 0004006607 00000 n 0004006650 00000 n 0004006693 00000 n 0004006736 00000 n 0004006779 00000 n 0004006822 00000 n 0004006865 00000 n 0004006908 00000 n 0004006951 00000 n 0004006994 00000 n 0004007037 00000 n 0004007080 00000 n 0004007123 00000 n 0004007166 00000 n 0004007209 00000 n 0004007252 00000 n 0004007295 00000 n 0004007338 00000 n 0004007381 00000 n 0004007424 00000 n 0004007467 00000 n 0004007510 00000 n 0004007553 00000 n 0004007596 00000 n 0004007639 00000 n 0004007682 00000 n 0004007725 00000 n 0004007768 00000 n 0004007811 00000 n 0004007854 00000 n 0004007897 00000 n 0004007940 00000 n 0004007983 00000 n 0004008026 00000 n 0004008069 00000 n 0004008112 00000 n 0004008155 00000 n 0004008198 00000 n 0004008241 00000 n 0004008284 00000 n 0004008327 00000 n 0004008370 00000 n 0004008413 00000 n 0004008456 00000 n 0004008499 00000 n 0004008542 00000 n 0004008585 00000 n 0004008628 00000 n 0004008671 00000 n 0004008714 00000 n 0004008757 00000 n 0004008800 00000 n 0004008843 00000 n 0004008886 00000 n 0004008929 00000 n 0004008972 00000 n 0004009015 00000 n 0004009058 00000 n 0004009101 00000 n 0004009144 00000 n 0004009187 00000 n 0004009230 00000 n 0004009273 00000 n 0004009316 00000 n 0004009359 00000 n 0004009402 00000 n 0004009445 00000 n 0004009488 00000 n 0004009531 00000 n 0004009574 00000 n 0004009617 00000 n 0004009660 00000 n 0004009703 00000 n 0004009746 00000 n 0004009789 00000 n 0004009832 00000 n 0004009875 00000 n 0004009918 00000 n 0004009961 00000 n 0004010004 00000 n 0004010047 00000 n 0004010090 00000 n 0004010133 00000 n 0004010176 00000 n 0004010219 00000 n 0004010262 00000 n 0004010305 00000 n 0004010348 00000 n 0004010391 00000 n 0004010434 00000 n 0004010477 00000 n 0004010520 00000 n 0004010563 00000 n 0004010606 00000 n 0004010649 00000 n 0004010692 00000 n 0004010735 00000 n 0004010778 00000 n 0004010821 00000 n 0004010864 00000 n 0004010907 00000 n 0004010950 00000 n 0004010993 00000 n 0004011036 00000 n 0004011079 00000 n 0004011122 00000 n 0004011165 00000 n 0004011208 00000 n 0004011251 00000 n 0004011294 00000 n 0004011337 00000 n 0004011380 00000 n 0004011423 00000 n 0004011466 00000 n 0004011509 00000 n 0004011552 00000 n 0004011595 00000 n 0004011638 00000 n 0004011681 00000 n 0004011724 00000 n 0004011767 00000 n 0004011810 00000 n 0004011853 00000 n 0004011896 00000 n 0004011939 00000 n 0004011982 00000 n 0004012025 00000 n 0004012068 00000 n 0004012111 00000 n 0004012154 00000 n 0004012197 00000 n 0004012528 00000 n 0004012950 00000 n 0004012993 00000 n 0004013061 00000 n 0004013296 00000 n 0004013395 00000 n 0004017154 00000 n 0004017485 00000 n 0004017907 00000 n 0004017950 00000 n 0004017994 00000 n 0004018037 00000 n 0004018105 00000 n 0004018325 00000 n 0004018424 00000 n 0004021490 00000 n 0004021821 00000 n 0004022243 00000 n 0004022286 00000 n 0004022354 00000 n 0004022588 00000 n 0004022687 00000 n 0004026377 00000 n 0004026542 00000 n 0004026610 00000 n 0004026859 00000 n 0004026958 00000 n 0004030883 00000 n 0004031214 00000 n 0004031636 00000 n 0004031704 00000 n 0004031967 00000 n 0004032066 00000 n 0004034609 00000 n 0004034940 00000 n 0004035362 00000 n 0004035405 00000 n 0004035448 00000 n 0004035516 00000 n 0004035736 00000 n 0004035835 00000 n 0004039979 00000 n 0004040310 00000 n 0004040732 00000 n 0004040776 00000 n 0004040818 00000 n 0004040861 00000 n 0004040904 00000 n 0004041235 00000 n 0004041657 00000 n 0004041700 00000 n 0004041768 00000 n 0004042003 00000 n 0004042102 00000 n 0004046349 00000 n 0004046489 00000 n 0004046629 00000 n 0004046769 00000 n 0004046909 00000 n 0004047049 00000 n 0004047189 00000 n 0004047329 00000 n 0004047469 00000 n 0004047609 00000 n 0004047749 00000 n 0004047889 00000 n 0004048029 00000 n 0004048169 00000 n 0004048309 00000 n 0004048449 00000 n 0004048589 00000 n 0004048729 00000 n 0004048869 00000 n 0004049009 00000 n 0004049149 00000 n 0004049289 00000 n 0004049429 00000 n 0004049569 00000 n 0004049709 00000 n 0004049849 00000 n 0004049989 00000 n 0004050129 00000 n 0004050269 00000 n 0004050409 00000 n 0004050549 00000 n 0004050689 00000 n 0004050829 00000 n 0004050969 00000 n 0004051109 00000 n 0004051249 00000 n 0004051389 00000 n 0004051529 00000 n 0004051669 00000 n 0004051809 00000 n 0004051949 00000 n 0004052089 00000 n 0004052229 00000 n 0004052369 00000 n 0004052509 00000 n 0004052649 00000 n 0004052789 00000 n 0004052929 00000 n 0004053069 00000 n 0004053209 00000 n 0004053349 00000 n 0004053489 00000 n 0004053629 00000 n 0004053769 00000 n 0004053909 00000 n 0004054049 00000 n 0004054189 00000 n 0004054329 00000 n 0004054469 00000 n 0004054609 00000 n 0004054749 00000 n 0004054889 00000 n 0004055029 00000 n 0004055169 00000 n 0004055309 00000 n 0004055449 00000 n 0004055589 00000 n 0004055729 00000 n 0004055869 00000 n 0004056009 00000 n 0004056149 00000 n 0004056289 00000 n 0004056429 00000 n 0004056569 00000 n 0004056709 00000 n 0004056849 00000 n 0004056989 00000 n 0004057129 00000 n 0004057269 00000 n 0004057409 00000 n 0004057549 00000 n 0004057689 00000 n 0004057829 00000 n 0004057969 00000 n 0004058109 00000 n 0004058249 00000 n 0004058389 00000 n 0004058529 00000 n 0004058669 00000 n 0004058809 00000 n 0004058949 00000 n 0004059089 00000 n 0004059229 00000 n 0004059369 00000 n 0004059509 00000 n 0004059649 00000 n 0004059789 00000 n 0004059929 00000 n 0004060069 00000 n 0004060209 00000 n 0004060349 00000 n 0004060489 00000 n 0004060629 00000 n 0004060769 00000 n 0004060909 00000 n 0004061049 00000 n 0004061189 00000 n 0004061329 00000 n 0004061469 00000 n 0004061609 00000 n 0004061749 00000 n 0004061889 00000 n 0004062029 00000 n 0004062169 00000 n 0004062309 00000 n 0004062449 00000 n 0004062589 00000 n 0004062729 00000 n 0004062869 00000 n 0004063009 00000 n 0004063149 00000 n 0004063289 00000 n 0004063429 00000 n 0004063569 00000 n 0004063709 00000 n 0004063849 00000 n 0004063989 00000 n 0004064129 00000 n 0004064269 00000 n 0004064409 00000 n 0004064549 00000 n 0004064689 00000 n 0004064829 00000 n 0004064969 00000 n 0004065109 00000 n 0004065249 00000 n 0004065389 00000 n 0004065529 00000 n 0004065669 00000 n 0004065809 00000 n 0004065949 00000 n 0004066089 00000 n 0004066229 00000 n 0004066369 00000 n 0004066509 00000 n 0004066649 00000 n 0004066789 00000 n 0004066929 00000 n 0004067069 00000 n 0004067209 00000 n 0004067349 00000 n 0004067489 00000 n 0004067629 00000 n 0004067769 00000 n 0004067909 00000 n 0004068049 00000 n 0004068189 00000 n 0004068329 00000 n 0004068469 00000 n 0004068609 00000 n 0004068749 00000 n 0004068889 00000 n 0004069029 00000 n 0004069169 00000 n 0004069309 00000 n 0004069449 00000 n 0004069589 00000 n 0004069729 00000 n 0004069869 00000 n 0004070009 00000 n 0004070149 00000 n 0004070289 00000 n 0004070429 00000 n 0004070569 00000 n 0004070709 00000 n 0004070849 00000 n 0004070989 00000 n 0004071129 00000 n 0004071269 00000 n 0004071409 00000 n 0004071549 00000 n 0004071689 00000 n 0004071829 00000 n 0004071969 00000 n 0004072109 00000 n 0004072249 00000 n 0004072389 00000 n 0004072529 00000 n 0004072669 00000 n 0004072809 00000 n 0004072949 00000 n 0004073089 00000 n 0004073229 00000 n 0004073369 00000 n 0004073509 00000 n 0004073649 00000 n 0004073789 00000 n 0004073929 00000 n 0004074069 00000 n 0004074209 00000 n 0004074349 00000 n 0004074489 00000 n 0004074629 00000 n 0004074769 00000 n 0004074909 00000 n 0004075049 00000 n 0004075189 00000 n 0004075329 00000 n 0004075469 00000 n 0004075609 00000 n 0004075749 00000 n 0004075889 00000 n 0004076029 00000 n 0004076169 00000 n 0004076309 00000 n 0004076449 00000 n 0004076589 00000 n 0004076729 00000 n 0004076869 00000 n 0004077009 00000 n 0004077149 00000 n 0004077289 00000 n 0004077429 00000 n 0004077569 00000 n 0004077709 00000 n 0004077849 00000 n 0004077989 00000 n 0004078129 00000 n 0004078269 00000 n 0004078409 00000 n 0004078549 00000 n 0004078689 00000 n 0004078829 00000 n 0004078969 00000 n 0004079109 00000 n 0004079249 00000 n 0004079389 00000 n 0004079529 00000 n 0004079669 00000 n 0004079809 00000 n 0004079949 00000 n 0004080089 00000 n 0004080229 00000 n 0004080369 00000 n 0004080509 00000 n 0004080649 00000 n 0004080789 00000 n 0004080929 00000 n 0004081069 00000 n 0004081209 00000 n 0004081349 00000 n 0004081489 00000 n 0004081629 00000 n 0004081769 00000 n 0004081909 00000 n 0004082049 00000 n 0004082189 00000 n 0004082329 00000 n 0004082469 00000 n 0004082609 00000 n 0004082749 00000 n 0004082889 00000 n 0004083029 00000 n 0004083169 00000 n 0004083309 00000 n 0004083449 00000 n 0004083589 00000 n 0004083729 00000 n 0004083869 00000 n 0004084009 00000 n 0004084149 00000 n 0004084289 00000 n 0004084429 00000 n 0004084569 00000 n 0004084709 00000 n 0004084849 00000 n 0004084989 00000 n 0004085129 00000 n 0004085269 00000 n 0004085409 00000 n 0004085549 00000 n 0004085689 00000 n 0004085829 00000 n 0004085969 00000 n 0004086109 00000 n 0004086249 00000 n 0004086389 00000 n 0004086529 00000 n 0004086669 00000 n 0004086809 00000 n 0004086949 00000 n 0004087089 00000 n 0004087229 00000 n 0004087369 00000 n 0004087509 00000 n 0004087649 00000 n 0004087789 00000 n 0004087929 00000 n 0004088069 00000 n 0004088209 00000 n 0004088349 00000 n 0004088489 00000 n 0004088629 00000 n 0004088769 00000 n 0004088909 00000 n 0004089049 00000 n 0004089189 00000 n 0004089329 00000 n 0004089469 00000 n 0004089609 00000 n 0004089749 00000 n 0004089889 00000 n 0004090029 00000 n 0004090169 00000 n 0004090309 00000 n 0004090449 00000 n 0004090589 00000 n 0004090729 00000 n 0004090869 00000 n 0004091009 00000 n 0004091149 00000 n 0004091289 00000 n 0004091333 00000 n 0004091377 00000 n 0004091421 00000 n 0004091465 00000 n 0004091509 00000 n 0004091553 00000 n 0004091597 00000 n 0004091641 00000 n 0004091685 00000 n 0004091729 00000 n 0004091773 00000 n 0004091817 00000 n 0004091861 00000 n 0004091905 00000 n 0004091949 00000 n 0004091993 00000 n 0004092037 00000 n 0004092081 00000 n 0004092125 00000 n 0004092169 00000 n 0004092213 00000 n 0004092257 00000 n 0004092301 00000 n 0004092345 00000 n 0004092389 00000 n 0004092433 00000 n 0004092477 00000 n 0004092521 00000 n 0004092565 00000 n 0004092609 00000 n 0004092653 00000 n 0004092697 00000 n 0004092741 00000 n 0004092785 00000 n 0004092829 00000 n 0004092873 00000 n 0004092917 00000 n 0004092961 00000 n 0004093005 00000 n 0004093049 00000 n 0004093093 00000 n 0004093137 00000 n 0004093181 00000 n 0004093225 00000 n 0004093269 00000 n 0004093313 00000 n 0004093357 00000 n 0004093401 00000 n 0004093445 00000 n 0004093489 00000 n 0004093533 00000 n 0004093577 00000 n 0004093621 00000 n 0004093665 00000 n 0004093709 00000 n 0004093753 00000 n 0004093797 00000 n 0004093841 00000 n 0004093885 00000 n 0004093929 00000 n 0004093973 00000 n 0004094017 00000 n 0004094061 00000 n 0004094105 00000 n 0004094149 00000 n 0004094193 00000 n 0004094237 00000 n 0004094281 00000 n 0004094325 00000 n 0004094369 00000 n 0004094413 00000 n 0004094457 00000 n 0004094501 00000 n 0004094545 00000 n 0004094589 00000 n 0004094633 00000 n 0004094964 00000 n 0004095386 00000 n 0004095429 00000 n 0004095472 00000 n 0004095514 00000 n 0004095557 00000 n 0004095601 00000 n 0004095644 00000 n 0004095687 00000 n 0004095755 00000 n 0004095975 00000 n 0004096074 00000 n 0004098974 00000 n 0004099305 00000 n 0004099727 00000 n 0004099768 00000 n 0004099811 00000 n 0004099855 00000 n 0004099923 00000 n 0004100172 00000 n 0004100271 00000 n 0004103996 00000 n 0004104162 00000 n 0004104493 00000 n 0004104915 00000 n 0004104983 00000 n 0004105246 00000 n 0004105345 00000 n 0004107757 00000 n 0004108088 00000 n 0004108510 00000 n 0004108553 00000 n 0004108595 00000 n 0004108638 00000 n 0004108682 00000 n 0004108750 00000 n 0004108984 00000 n 0004109083 00000 n 0004113081 00000 n 0004113412 00000 n 0004113834 00000 n 0004113877 00000 n 0004113920 00000 n 0004113963 00000 n 0004114005 00000 n 0004114073 00000 n 0004114293 00000 n 0004114392 00000 n 0004118370 00000 n 0004118701 00000 n 0004119123 00000 n 0004119164 00000 n 0004119232 00000 n 0004119452 00000 n 0004119551 00000 n 0004123636 00000 n 0004123776 00000 n 0004123916 00000 n 0004124056 00000 n 0004124196 00000 n 0004124336 00000 n 0004124476 00000 n 0004124616 00000 n 0004124756 00000 n 0004124896 00000 n 0004125036 00000 n 0004125176 00000 n 0004125316 00000 n 0004125456 00000 n 0004125596 00000 n 0004125736 00000 n 0004125876 00000 n 0004126016 00000 n 0004126156 00000 n 0004126296 00000 n 0004126436 00000 n 0004126576 00000 n 0004126716 00000 n 0004126856 00000 n 0004126996 00000 n 0004127136 00000 n 0004127276 00000 n 0004127416 00000 n 0004127556 00000 n 0004127696 00000 n 0004127836 00000 n 0004127976 00000 n 0004128116 00000 n 0004128256 00000 n 0004128396 00000 n 0004128536 00000 n 0004128676 00000 n 0004128816 00000 n 0004128956 00000 n 0004129096 00000 n 0004129236 00000 n 0004129376 00000 n 0004129516 00000 n 0004129656 00000 n 0004129796 00000 n 0004129936 00000 n 0004130076 00000 n 0004130216 00000 n 0004130356 00000 n 0004130496 00000 n 0004130636 00000 n 0004130776 00000 n 0004130916 00000 n 0004131056 00000 n 0004131196 00000 n 0004131336 00000 n 0004131476 00000 n 0004131616 00000 n 0004131756 00000 n 0004131896 00000 n 0004132036 00000 n 0004132176 00000 n 0004132316 00000 n 0004132456 00000 n 0004132596 00000 n 0004132736 00000 n 0004132876 00000 n 0004133016 00000 n 0004133156 00000 n 0004133296 00000 n 0004133436 00000 n 0004133576 00000 n 0004133716 00000 n 0004133856 00000 n 0004133996 00000 n 0004134136 00000 n 0004134276 00000 n 0004134416 00000 n 0004134556 00000 n 0004134696 00000 n 0004134836 00000 n 0004134976 00000 n 0004135116 00000 n 0004135256 00000 n 0004135396 00000 n 0004135536 00000 n 0004135676 00000 n 0004135816 00000 n 0004135956 00000 n 0004136096 00000 n 0004136236 00000 n 0004136376 00000 n 0004136516 00000 n 0004136656 00000 n 0004136796 00000 n 0004136936 00000 n 0004137076 00000 n 0004137216 00000 n 0004137356 00000 n 0004137496 00000 n 0004137636 00000 n 0004137776 00000 n 0004137916 00000 n 0004138056 00000 n 0004138196 00000 n 0004138336 00000 n 0004138476 00000 n 0004138616 00000 n 0004138756 00000 n 0004138896 00000 n 0004139036 00000 n 0004139176 00000 n 0004139316 00000 n 0004139456 00000 n 0004139596 00000 n 0004139736 00000 n 0004139876 00000 n 0004140016 00000 n 0004140156 00000 n 0004140296 00000 n 0004140436 00000 n 0004140576 00000 n 0004140716 00000 n 0004140856 00000 n 0004140996 00000 n 0004141136 00000 n 0004141276 00000 n 0004141416 00000 n 0004141556 00000 n 0004141696 00000 n 0004141836 00000 n 0004141976 00000 n 0004142116 00000 n 0004142256 00000 n 0004142396 00000 n 0004142536 00000 n 0004142676 00000 n 0004142816 00000 n 0004142956 00000 n 0004143096 00000 n 0004143236 00000 n 0004143376 00000 n 0004143516 00000 n 0004143656 00000 n 0004143796 00000 n 0004143936 00000 n 0004144076 00000 n 0004144216 00000 n 0004144356 00000 n 0004144496 00000 n 0004144636 00000 n 0004144776 00000 n 0004144916 00000 n 0004145056 00000 n 0004145196 00000 n 0004145336 00000 n 0004145476 00000 n 0004145616 00000 n 0004145756 00000 n 0004145896 00000 n 0004146036 00000 n 0004146176 00000 n 0004146316 00000 n 0004146456 00000 n 0004146596 00000 n 0004146736 00000 n 0004146876 00000 n 0004147016 00000 n 0004147156 00000 n 0004147296 00000 n 0004147436 00000 n 0004147576 00000 n 0004147716 00000 n 0004147856 00000 n 0004147996 00000 n 0004148136 00000 n 0004148276 00000 n 0004148416 00000 n 0004148556 00000 n 0004148696 00000 n 0004148836 00000 n 0004148976 00000 n 0004149116 00000 n 0004149256 00000 n 0004149396 00000 n 0004149536 00000 n 0004149676 00000 n 0004149816 00000 n 0004149956 00000 n 0004150096 00000 n 0004150236 00000 n 0004150376 00000 n 0004150516 00000 n 0004150656 00000 n 0004150796 00000 n 0004150936 00000 n 0004151076 00000 n 0004151216 00000 n 0004151356 00000 n 0004151496 00000 n 0004151636 00000 n 0004151776 00000 n 0004151916 00000 n 0004152056 00000 n 0004152196 00000 n 0004152336 00000 n 0004152476 00000 n 0004152616 00000 n 0004152756 00000 n 0004152896 00000 n 0004153036 00000 n 0004153176 00000 n 0004153316 00000 n 0004153456 00000 n 0004153596 00000 n 0004153736 00000 n 0004153876 00000 n 0004154016 00000 n 0004154156 00000 n 0004154296 00000 n 0004154436 00000 n 0004154576 00000 n 0004154716 00000 n 0004154856 00000 n 0004154996 00000 n 0004155136 00000 n 0004155276 00000 n 0004155416 00000 n 0004155556 00000 n 0004155696 00000 n 0004155836 00000 n 0004155976 00000 n 0004156116 00000 n 0004156256 00000 n 0004156396 00000 n 0004156536 00000 n 0004156676 00000 n 0004156816 00000 n 0004156956 00000 n 0004157096 00000 n 0004157236 00000 n 0004157376 00000 n 0004157516 00000 n 0004157656 00000 n 0004157796 00000 n 0004157936 00000 n 0004158076 00000 n 0004158216 00000 n 0004158356 00000 n 0004158496 00000 n 0004158636 00000 n 0004158776 00000 n 0004158916 00000 n 0004159056 00000 n 0004159196 00000 n 0004159336 00000 n 0004159476 00000 n 0004159616 00000 n 0004159756 00000 n 0004159896 00000 n 0004160036 00000 n 0004160176 00000 n 0004160316 00000 n 0004160456 00000 n 0004160596 00000 n 0004160736 00000 n 0004160876 00000 n 0004161016 00000 n 0004161156 00000 n 0004161296 00000 n 0004161436 00000 n 0004161576 00000 n 0004161620 00000 n 0004161664 00000 n 0004161708 00000 n 0004161752 00000 n 0004161796 00000 n 0004161840 00000 n 0004161884 00000 n 0004161928 00000 n 0004161972 00000 n 0004162016 00000 n 0004162060 00000 n 0004162104 00000 n 0004162148 00000 n 0004162192 00000 n 0004162236 00000 n 0004162280 00000 n 0004162324 00000 n 0004162368 00000 n 0004162412 00000 n 0004162456 00000 n 0004162500 00000 n 0004162544 00000 n 0004162588 00000 n 0004162632 00000 n 0004162676 00000 n 0004162720 00000 n 0004162764 00000 n 0004162808 00000 n 0004162852 00000 n 0004162896 00000 n 0004162940 00000 n 0004162984 00000 n 0004163028 00000 n 0004163072 00000 n 0004163116 00000 n 0004163160 00000 n 0004163204 00000 n 0004163248 00000 n 0004163292 00000 n 0004163336 00000 n 0004163380 00000 n 0004163424 00000 n 0004163468 00000 n 0004163512 00000 n 0004163556 00000 n 0004163600 00000 n 0004163644 00000 n 0004163688 00000 n 0004163732 00000 n 0004163776 00000 n 0004163820 00000 n 0004163864 00000 n 0004163908 00000 n 0004163952 00000 n 0004163996 00000 n 0004164040 00000 n 0004164084 00000 n 0004164128 00000 n 0004164172 00000 n 0004164216 00000 n 0004164260 00000 n 0004164304 00000 n 0004164348 00000 n 0004164392 00000 n 0004164436 00000 n 0004164480 00000 n 0004164524 00000 n 0004164568 00000 n 0004164612 00000 n 0004164656 00000 n 0004164700 00000 n 0004164744 00000 n 0004164788 00000 n 0004164832 00000 n 0004164876 00000 n 0004164920 00000 n 0004164964 00000 n 0004165008 00000 n 0004165052 00000 n 0004165096 00000 n 0004165140 00000 n 0004165184 00000 n 0004165228 00000 n 0004165272 00000 n 0004165316 00000 n 0004165360 00000 n 0004165404 00000 n 0004165448 00000 n 0004165492 00000 n 0004165536 00000 n 0004165580 00000 n 0004165624 00000 n 0004165668 00000 n 0004165712 00000 n 0004165756 00000 n 0004165800 00000 n 0004165844 00000 n 0004165888 00000 n 0004165932 00000 n 0004165976 00000 n 0004166020 00000 n 0004166064 00000 n 0004166108 00000 n 0004166152 00000 n 0004166196 00000 n 0004166240 00000 n 0004166284 00000 n 0004166328 00000 n 0004166372 00000 n 0004166416 00000 n 0004166460 00000 n 0004166504 00000 n 0004166548 00000 n 0004166592 00000 n 0004166636 00000 n 0004166680 00000 n 0004166724 00000 n 0004166768 00000 n 0004166812 00000 n 0004166856 00000 n 0004166900 00000 n 0004167231 00000 n 0004167653 00000 n 0004167697 00000 n 0004167740 00000 n 0004167782 00000 n 0004167826 00000 n 0004167869 00000 n 0004167912 00000 n 0004167956 00000 n 0004167999 00000 n 0004168042 00000 n 0004168086 00000 n 0004168129 00000 n 0004168197 00000 n 0004168474 00000 n 0004168573 00000 n 0004172283 00000 n 0004172449 00000 n 0004172491 00000 n 0004172822 00000 n 0004173244 00000 n 0004173287 00000 n 0004173330 00000 n 0004173372 00000 n 0004173440 00000 n 0004173660 00000 n 0004173759 00000 n 0004177693 00000 n 0004177832 00000 n 0004177971 00000 n 0004178110 00000 n 0004178249 00000 n 0004178388 00000 n 0004178527 00000 n 0004178666 00000 n 0004178805 00000 n 0004178944 00000 n 0004179083 00000 n 0004179222 00000 n 0004179361 00000 n 0004179500 00000 n 0004179639 00000 n 0004179778 00000 n 0004179917 00000 n 0004180056 00000 n 0004180195 00000 n 0004180334 00000 n 0004180473 00000 n 0004180612 00000 n 0004180751 00000 n 0004180890 00000 n 0004181029 00000 n 0004181168 00000 n 0004181307 00000 n 0004181446 00000 n 0004181585 00000 n 0004181724 00000 n 0004181863 00000 n 0004182002 00000 n 0004182141 00000 n 0004182280 00000 n 0004182419 00000 n 0004182558 00000 n 0004182697 00000 n 0004182836 00000 n 0004182975 00000 n 0004183114 00000 n 0004183253 00000 n 0004183392 00000 n 0004183531 00000 n 0004183670 00000 n 0004183809 00000 n 0004183948 00000 n 0004184087 00000 n 0004184226 00000 n 0004184365 00000 n 0004184504 00000 n 0004184643 00000 n 0004184782 00000 n 0004184921 00000 n 0004185060 00000 n 0004185199 00000 n 0004185338 00000 n 0004185477 00000 n 0004185616 00000 n 0004185755 00000 n 0004185894 00000 n 0004186033 00000 n 0004186172 00000 n 0004186311 00000 n 0004186450 00000 n 0004186589 00000 n 0004186728 00000 n 0004186867 00000 n 0004187006 00000 n 0004187145 00000 n 0004187284 00000 n 0004187423 00000 n 0004187562 00000 n 0004187701 00000 n 0004187840 00000 n 0004187979 00000 n 0004188118 00000 n 0004188257 00000 n 0004188396 00000 n 0004188535 00000 n 0004188674 00000 n 0004188813 00000 n 0004188952 00000 n 0004189091 00000 n 0004189230 00000 n 0004189369 00000 n 0004189508 00000 n 0004189647 00000 n 0004189786 00000 n 0004189925 00000 n 0004190064 00000 n 0004190203 00000 n 0004190342 00000 n 0004190481 00000 n 0004190620 00000 n 0004190759 00000 n 0004190898 00000 n 0004191037 00000 n 0004191176 00000 n 0004191315 00000 n 0004191454 00000 n 0004191593 00000 n 0004191732 00000 n 0004191871 00000 n 0004192010 00000 n 0004192149 00000 n 0004192288 00000 n 0004192427 00000 n 0004192566 00000 n 0004192705 00000 n 0004192844 00000 n 0004192983 00000 n 0004193122 00000 n 0004193261 00000 n 0004193400 00000 n 0004193539 00000 n 0004193678 00000 n 0004193817 00000 n 0004193956 00000 n 0004194095 00000 n 0004194234 00000 n 0004194373 00000 n 0004194512 00000 n 0004194651 00000 n 0004194790 00000 n 0004194929 00000 n 0004195068 00000 n 0004195207 00000 n 0004195346 00000 n 0004195485 00000 n 0004195624 00000 n 0004195763 00000 n 0004195902 00000 n 0004196041 00000 n 0004196180 00000 n 0004196319 00000 n 0004196458 00000 n 0004196597 00000 n 0004196736 00000 n 0004196875 00000 n 0004197014 00000 n 0004197153 00000 n 0004197292 00000 n 0004197431 00000 n 0004197570 00000 n 0004197709 00000 n 0004197848 00000 n 0004197987 00000 n 0004198126 00000 n 0004198265 00000 n 0004198404 00000 n 0004198543 00000 n 0004198682 00000 n 0004198821 00000 n 0004198960 00000 n 0004199099 00000 n 0004199238 00000 n 0004199377 00000 n 0004199516 00000 n 0004199655 00000 n 0004199794 00000 n 0004199933 00000 n 0004200072 00000 n 0004200211 00000 n 0004200350 00000 n 0004200489 00000 n 0004200628 00000 n 0004200767 00000 n 0004200906 00000 n 0004201045 00000 n 0004201184 00000 n 0004201323 00000 n 0004201462 00000 n 0004201601 00000 n 0004201740 00000 n 0004201879 00000 n 0004202018 00000 n 0004202157 00000 n 0004202296 00000 n 0004202435 00000 n 0004202574 00000 n 0004202713 00000 n 0004202852 00000 n 0004202991 00000 n 0004203130 00000 n 0004203269 00000 n 0004203408 00000 n 0004203547 00000 n 0004203686 00000 n 0004203825 00000 n 0004203964 00000 n 0004204103 00000 n 0004204242 00000 n 0004204381 00000 n 0004204520 00000 n 0004204659 00000 n 0004204798 00000 n 0004204937 00000 n 0004205076 00000 n 0004205215 00000 n 0004205354 00000 n 0004205493 00000 n 0004205632 00000 n 0004205771 00000 n 0004205910 00000 n 0004206049 00000 n 0004206188 00000 n 0004206327 00000 n 0004206466 00000 n 0004206605 00000 n 0004206744 00000 n 0004206883 00000 n 0004207022 00000 n 0004207161 00000 n 0004207300 00000 n 0004207439 00000 n 0004207578 00000 n 0004207717 00000 n 0004207856 00000 n 0004207995 00000 n 0004208134 00000 n 0004208273 00000 n 0004208412 00000 n 0004208551 00000 n 0004208690 00000 n 0004208829 00000 n 0004208968 00000 n 0004209107 00000 n 0004209246 00000 n 0004209385 00000 n 0004209524 00000 n 0004209663 00000 n 0004209802 00000 n 0004209941 00000 n 0004210080 00000 n 0004210219 00000 n 0004210358 00000 n 0004210497 00000 n 0004210636 00000 n 0004210775 00000 n 0004210914 00000 n 0004211053 00000 n 0004211192 00000 n 0004211331 00000 n 0004211470 00000 n 0004211609 00000 n 0004211748 00000 n 0004211887 00000 n 0004212026 00000 n 0004212165 00000 n 0004212304 00000 n 0004212443 00000 n 0004212582 00000 n 0004212721 00000 n 0004212860 00000 n 0004212999 00000 n 0004213138 00000 n 0004213277 00000 n 0004213416 00000 n 0004213555 00000 n 0004213694 00000 n 0004213833 00000 n 0004213972 00000 n 0004214111 00000 n 0004214250 00000 n 0004214389 00000 n 0004214528 00000 n 0004214667 00000 n 0004214806 00000 n 0004214945 00000 n 0004215084 00000 n 0004215223 00000 n 0004215362 00000 n 0004215501 00000 n 0004215640 00000 n 0004215779 00000 n 0004215918 00000 n 0004216057 00000 n 0004216196 00000 n 0004216335 00000 n 0004216474 00000 n 0004216613 00000 n 0004216752 00000 n 0004216891 00000 n 0004217030 00000 n 0004217169 00000 n 0004217308 00000 n 0004217447 00000 n 0004217586 00000 n 0004217725 00000 n 0004217864 00000 n 0004217907 00000 n 0004217950 00000 n 0004217993 00000 n 0004218036 00000 n 0004218079 00000 n 0004218122 00000 n 0004218165 00000 n 0004218208 00000 n 0004218251 00000 n 0004218294 00000 n 0004218337 00000 n 0004218380 00000 n 0004218423 00000 n 0004218466 00000 n 0004218509 00000 n 0004218552 00000 n 0004218595 00000 n 0004218638 00000 n 0004218681 00000 n 0004218724 00000 n 0004218767 00000 n 0004218810 00000 n 0004218853 00000 n 0004218896 00000 n 0004218939 00000 n 0004218982 00000 n 0004219025 00000 n 0004219068 00000 n 0004219111 00000 n 0004219154 00000 n 0004219197 00000 n 0004219240 00000 n 0004219283 00000 n 0004219326 00000 n 0004219369 00000 n 0004219412 00000 n 0004219455 00000 n 0004219498 00000 n 0004219541 00000 n 0004219584 00000 n 0004219627 00000 n 0004219670 00000 n 0004219713 00000 n 0004219756 00000 n 0004219799 00000 n 0004219842 00000 n 0004219885 00000 n 0004219928 00000 n 0004219971 00000 n 0004220014 00000 n 0004220057 00000 n 0004220100 00000 n 0004220143 00000 n 0004220186 00000 n 0004220229 00000 n 0004220272 00000 n 0004220315 00000 n 0004220358 00000 n 0004220401 00000 n 0004220444 00000 n 0004220487 00000 n 0004220530 00000 n 0004220573 00000 n 0004220616 00000 n 0004220659 00000 n 0004220702 00000 n 0004220745 00000 n 0004220788 00000 n 0004220831 00000 n 0004220874 00000 n 0004220917 00000 n 0004220960 00000 n 0004221003 00000 n 0004221046 00000 n 0004221089 00000 n 0004221132 00000 n 0004221175 00000 n 0004221218 00000 n 0004221261 00000 n 0004221304 00000 n 0004221347 00000 n 0004221390 00000 n 0004221433 00000 n 0004221476 00000 n 0004221519 00000 n 0004221562 00000 n 0004221605 00000 n 0004221648 00000 n 0004221691 00000 n 0004221734 00000 n 0004221777 00000 n 0004221820 00000 n 0004221863 00000 n 0004221906 00000 n 0004221949 00000 n 0004221992 00000 n 0004222035 00000 n 0004222078 00000 n 0004222121 00000 n 0004222164 00000 n 0004222207 00000 n 0004222250 00000 n 0004222293 00000 n 0004222336 00000 n 0004222379 00000 n 0004222422 00000 n 0004222465 00000 n 0004222508 00000 n 0004222551 00000 n 0004222594 00000 n 0004222637 00000 n 0004222680 00000 n 0004222723 00000 n 0004222766 00000 n 0004222809 00000 n 0004222852 00000 n 0004222895 00000 n 0004222938 00000 n 0004222981 00000 n 0004223024 00000 n 0004223067 00000 n 0004223110 00000 n 0004223153 00000 n 0004223196 00000 n 0004223239 00000 n 0004223282 00000 n 0004223325 00000 n 0004223368 00000 n 0004223411 00000 n 0004223454 00000 n 0004223497 00000 n 0004223540 00000 n 0004223583 00000 n 0004223626 00000 n 0004223669 00000 n 0004223712 00000 n 0004223755 00000 n 0004223798 00000 n 0004223841 00000 n 0004223884 00000 n 0004223927 00000 n 0004223970 00000 n 0004224301 00000 n 0004224723 00000 n 0004224766 00000 n 0004224809 00000 n 0004224852 00000 n 0004224895 00000 n 0004224938 00000 n 0004225006 00000 n 0004225255 00000 n 0004225354 00000 n 0004227388 00000 n 0004227719 00000 n 0004228141 00000 n 0004228185 00000 n 0004228228 00000 n 0004228967 00000 n 0004229010 00000 n 0004231236 00000 n 0004231304 00000 n 0004231552 00000 n 0004231651 00000 n 0004235469 00000 n 0004235635 00000 n 0004235677 00000 n 0004236008 00000 n 0004236430 00000 n 0004236472 00000 n 0004236540 00000 n 0004236760 00000 n 0004236859 00000 n 0004241693 00000 n 0004242024 00000 n 0004242446 00000 n 0004242514 00000 n 0004242749 00000 n 0004242848 00000 n 0004247033 00000 n 0004247173 00000 n 0004247313 00000 n 0004247453 00000 n 0004247593 00000 n 0004247733 00000 n 0004247873 00000 n 0004248013 00000 n 0004248153 00000 n 0004248293 00000 n 0004248433 00000 n 0004248573 00000 n 0004248713 00000 n 0004248853 00000 n 0004248993 00000 n 0004249133 00000 n 0004249273 00000 n 0004249413 00000 n 0004249553 00000 n 0004249693 00000 n 0004249833 00000 n 0004249973 00000 n 0004250113 00000 n 0004250253 00000 n 0004250393 00000 n 0004250533 00000 n 0004250673 00000 n 0004250813 00000 n 0004250953 00000 n 0004251093 00000 n 0004251233 00000 n 0004251373 00000 n 0004251513 00000 n 0004251653 00000 n 0004251793 00000 n 0004251933 00000 n 0004252073 00000 n 0004252213 00000 n 0004252353 00000 n 0004252493 00000 n 0004252633 00000 n 0004252773 00000 n 0004252913 00000 n 0004253053 00000 n 0004253193 00000 n 0004253333 00000 n 0004253473 00000 n 0004253613 00000 n 0004253753 00000 n 0004253893 00000 n 0004254033 00000 n 0004254173 00000 n 0004254313 00000 n 0004254453 00000 n 0004254593 00000 n 0004254733 00000 n 0004254873 00000 n 0004255013 00000 n 0004255153 00000 n 0004255293 00000 n 0004255433 00000 n 0004255573 00000 n 0004255713 00000 n 0004255853 00000 n 0004255993 00000 n 0004256133 00000 n 0004256273 00000 n 0004256413 00000 n 0004256553 00000 n 0004256693 00000 n 0004256833 00000 n 0004256973 00000 n 0004257113 00000 n 0004257253 00000 n 0004257393 00000 n 0004257533 00000 n 0004257673 00000 n 0004257813 00000 n 0004257953 00000 n 0004258093 00000 n 0004258233 00000 n 0004258373 00000 n 0004258513 00000 n 0004258653 00000 n 0004258793 00000 n 0004258933 00000 n 0004259073 00000 n 0004259213 00000 n 0004259353 00000 n 0004259493 00000 n 0004259633 00000 n 0004259773 00000 n 0004259913 00000 n 0004260053 00000 n 0004260193 00000 n 0004260333 00000 n 0004260473 00000 n 0004260613 00000 n 0004260753 00000 n 0004260893 00000 n 0004261033 00000 n 0004261173 00000 n 0004261313 00000 n 0004261453 00000 n 0004261593 00000 n 0004261733 00000 n 0004261873 00000 n 0004262013 00000 n 0004262153 00000 n 0004262293 00000 n 0004262433 00000 n 0004262573 00000 n 0004262713 00000 n 0004262853 00000 n 0004262993 00000 n 0004263133 00000 n 0004263273 00000 n 0004263413 00000 n 0004263553 00000 n 0004263693 00000 n 0004263833 00000 n 0004263973 00000 n 0004264113 00000 n 0004264253 00000 n 0004264393 00000 n 0004264533 00000 n 0004264673 00000 n 0004264813 00000 n 0004264953 00000 n 0004265093 00000 n 0004265233 00000 n 0004265373 00000 n 0004265513 00000 n 0004265653 00000 n 0004265793 00000 n 0004265933 00000 n 0004266073 00000 n 0004266213 00000 n 0004266353 00000 n 0004266493 00000 n 0004266633 00000 n 0004266773 00000 n 0004266913 00000 n 0004267053 00000 n 0004267193 00000 n 0004267333 00000 n 0004267473 00000 n 0004267613 00000 n 0004267753 00000 n 0004267893 00000 n 0004268033 00000 n 0004268173 00000 n 0004268313 00000 n 0004268453 00000 n 0004268593 00000 n 0004268733 00000 n 0004268873 00000 n 0004269013 00000 n 0004269153 00000 n 0004269293 00000 n 0004269433 00000 n 0004269573 00000 n 0004269713 00000 n 0004269853 00000 n 0004269993 00000 n 0004270133 00000 n 0004270273 00000 n 0004270413 00000 n 0004270553 00000 n 0004270693 00000 n 0004270833 00000 n 0004270973 00000 n 0004271113 00000 n 0004271253 00000 n 0004271393 00000 n 0004271533 00000 n 0004271673 00000 n 0004271813 00000 n 0004271953 00000 n 0004272093 00000 n 0004272233 00000 n 0004272373 00000 n 0004272513 00000 n 0004272653 00000 n 0004272793 00000 n 0004272933 00000 n 0004273073 00000 n 0004273213 00000 n 0004273353 00000 n 0004273493 00000 n 0004273633 00000 n 0004273773 00000 n 0004273913 00000 n 0004274053 00000 n 0004274193 00000 n 0004274333 00000 n 0004274473 00000 n 0004274613 00000 n 0004274753 00000 n 0004274893 00000 n 0004275033 00000 n 0004275173 00000 n 0004275313 00000 n 0004275357 00000 n 0004275401 00000 n 0004275445 00000 n 0004275489 00000 n 0004275533 00000 n 0004275577 00000 n 0004275621 00000 n 0004275665 00000 n 0004275709 00000 n 0004275753 00000 n 0004275797 00000 n 0004275841 00000 n 0004275885 00000 n 0004275929 00000 n 0004275973 00000 n 0004276017 00000 n 0004276061 00000 n 0004276105 00000 n 0004276149 00000 n 0004276193 00000 n 0004276237 00000 n 0004276281 00000 n 0004276325 00000 n 0004276369 00000 n 0004276413 00000 n 0004276457 00000 n 0004276501 00000 n 0004276545 00000 n 0004276589 00000 n 0004276633 00000 n 0004276677 00000 n 0004276721 00000 n 0004276765 00000 n 0004276809 00000 n 0004276853 00000 n 0004276897 00000 n 0004276941 00000 n 0004276985 00000 n 0004277029 00000 n 0004277073 00000 n 0004277117 00000 n 0004277161 00000 n 0004277205 00000 n 0004277249 00000 n 0004277293 00000 n 0004277337 00000 n 0004277381 00000 n 0004277425 00000 n 0004277469 00000 n 0004277513 00000 n 0004277557 00000 n 0004277601 00000 n 0004277645 00000 n 0004277689 00000 n 0004277733 00000 n 0004277777 00000 n 0004277821 00000 n 0004277865 00000 n 0004277909 00000 n 0004277953 00000 n 0004277997 00000 n 0004278041 00000 n 0004278085 00000 n 0004278129 00000 n 0004278173 00000 n 0004278217 00000 n 0004278261 00000 n 0004278305 00000 n 0004278349 00000 n 0004278393 00000 n 0004278437 00000 n 0004278481 00000 n 0004278525 00000 n 0004278569 00000 n 0004278613 00000 n 0004278657 00000 n 0004278701 00000 n 0004278745 00000 n 0004278789 00000 n 0004278833 00000 n 0004278877 00000 n 0004278921 00000 n 0004278965 00000 n 0004279009 00000 n 0004279053 00000 n 0004279097 00000 n 0004279141 00000 n 0004279185 00000 n 0004279229 00000 n 0004279273 00000 n 0004279317 00000 n 0004279361 00000 n 0004279405 00000 n 0004279449 00000 n 0004279493 00000 n 0004279537 00000 n 0004279581 00000 n 0004279625 00000 n 0004279669 00000 n 0004280000 00000 n 0004280422 00000 n 0004280466 00000 n 0004280534 00000 n 0004280768 00000 n 0004280867 00000 n 0004284716 00000 n 0004285047 00000 n 0004285469 00000 n 0004285800 00000 n 0004286222 00000 n 0004286265 00000 n 0004286333 00000 n 0004286596 00000 n 0004286695 00000 n 0004289166 00000 n 0004289209 00000 n 0004289253 00000 n 0004289296 00000 n 0004289340 00000 n 0004289383 00000 n 0004289426 00000 n 0004292645 00000 n 0004292686 00000 n 0004292729 00000 n 0004292770 00000 n 0004292813 00000 n 0004292881 00000 n 0004293158 00000 n 0004293257 00000 n 0004297560 00000 n 0004297891 00000 n 0004298313 00000 n 0004298382 00000 n 0004300342 00000 n 0004300442 00000 n 0004317319 00000 n 0004317384 00000 n 0004317822 00000 n 0004318018 00000 n 0004318349 00000 n 0004318521 00000 n 0004319432 00000 n 0004321820 00000 n 0004322242 00000 n 0004322853 00000 n 0004324645 00000 n 0004325274 00000 n 0004333702 00000 n 0004334822 00000 n 0004349255 00000 n 0004364068 00000 n 0004365914 00000 n 0004367061 00000 n 0004367348 00000 n 0004367646 00000 n 0004370938 00000 n 0004370981 00000 n 0004371024 00000 n 0004371092 00000 n 0004371341 00000 n 0004371440 00000 n 0004375685 00000 n 0004376016 00000 n 0004376438 00000 n 0004376482 00000 n 0004376525 00000 n 0004376593 00000 n 0004376828 00000 n 0004376927 00000 n 0004380968 00000 n 0004381299 00000 n 0004381721 00000 n 0004381764 00000 n 0004381807 00000 n 0004381851 00000 n 0004381919 00000 n 0004382153 00000 n 0004382252 00000 n 0004387399 00000 n 0004387442 00000 n 0004387486 00000 n 0004387529 00000 n 0004387572 00000 n 0004387615 00000 n 0004387683 00000 n 0004387932 00000 n 0004388031 00000 n 0004391897 00000 n 0004392228 00000 n 0004392650 00000 n 0004392693 00000 n 0004392761 00000 n 0004392981 00000 n 0004393080 00000 n 0004398333 00000 n 0004398664 00000 n 0004399086 00000 n 0004399128 00000 n 0004399171 00000 n 0004399239 00000 n 0004399459 00000 n 0004399558 00000 n 0004404207 00000 n 0004404538 00000 n 0004404960 00000 n 0004405003 00000 n 0004405334 00000 n 0004405756 00000 n 0004405800 00000 n 0004405843 00000 n 0004405886 00000 n 0004405954 00000 n 0004406174 00000 n 0004406273 00000 n 0004410871 00000 n 0004411011 00000 n 0004411151 00000 n 0004411291 00000 n 0004411431 00000 n 0004411571 00000 n 0004411711 00000 n 0004411851 00000 n 0004411991 00000 n 0004412131 00000 n 0004412271 00000 n 0004412411 00000 n 0004412551 00000 n 0004412691 00000 n 0004412831 00000 n 0004412971 00000 n 0004413111 00000 n 0004413251 00000 n 0004413391 00000 n 0004413531 00000 n 0004413671 00000 n 0004413811 00000 n 0004413951 00000 n 0004414091 00000 n 0004414231 00000 n 0004414371 00000 n 0004414511 00000 n 0004414651 00000 n 0004414791 00000 n 0004414931 00000 n 0004415071 00000 n 0004415211 00000 n 0004415351 00000 n 0004415491 00000 n 0004415631 00000 n 0004415771 00000 n 0004415911 00000 n 0004416051 00000 n 0004416191 00000 n 0004416331 00000 n 0004416471 00000 n 0004416611 00000 n 0004416751 00000 n 0004416891 00000 n 0004417031 00000 n 0004417171 00000 n 0004417311 00000 n 0004417451 00000 n 0004417591 00000 n 0004417731 00000 n 0004417871 00000 n 0004418011 00000 n 0004418151 00000 n 0004418291 00000 n 0004418431 00000 n 0004418571 00000 n 0004418711 00000 n 0004418851 00000 n 0004418991 00000 n 0004419131 00000 n 0004419271 00000 n 0004419411 00000 n 0004419551 00000 n 0004419691 00000 n 0004419831 00000 n 0004419971 00000 n 0004420111 00000 n 0004420251 00000 n 0004420391 00000 n 0004420531 00000 n 0004420671 00000 n 0004420811 00000 n 0004420951 00000 n 0004421091 00000 n 0004421231 00000 n 0004421371 00000 n 0004421511 00000 n 0004421651 00000 n 0004421791 00000 n 0004421931 00000 n 0004422071 00000 n 0004422211 00000 n 0004422351 00000 n 0004422491 00000 n 0004422631 00000 n 0004422771 00000 n 0004422911 00000 n 0004423051 00000 n 0004423191 00000 n 0004423331 00000 n 0004423471 00000 n 0004423611 00000 n 0004423751 00000 n 0004423891 00000 n 0004424031 00000 n 0004424171 00000 n 0004424311 00000 n 0004424451 00000 n 0004424591 00000 n 0004424731 00000 n 0004424871 00000 n 0004425011 00000 n 0004425151 00000 n 0004425291 00000 n 0004425431 00000 n 0004425571 00000 n 0004425711 00000 n 0004425851 00000 n 0004425991 00000 n 0004426131 00000 n 0004426271 00000 n 0004426411 00000 n 0004426551 00000 n 0004426691 00000 n 0004426831 00000 n 0004426971 00000 n 0004427111 00000 n 0004427251 00000 n 0004427391 00000 n 0004427531 00000 n 0004427671 00000 n 0004427811 00000 n 0004427951 00000 n 0004428091 00000 n 0004428231 00000 n 0004428371 00000 n 0004428511 00000 n 0004428651 00000 n 0004428791 00000 n 0004428931 00000 n 0004429071 00000 n 0004429211 00000 n 0004429351 00000 n 0004429491 00000 n 0004429631 00000 n 0004429771 00000 n 0004429911 00000 n 0004430051 00000 n 0004430191 00000 n 0004430331 00000 n 0004430471 00000 n 0004430611 00000 n 0004430751 00000 n 0004430891 00000 n 0004431031 00000 n 0004431171 00000 n 0004431311 00000 n 0004431451 00000 n 0004431591 00000 n 0004431731 00000 n 0004431871 00000 n 0004432011 00000 n 0004432151 00000 n 0004432291 00000 n 0004432431 00000 n 0004432571 00000 n 0004432711 00000 n 0004432851 00000 n 0004432991 00000 n 0004433131 00000 n 0004433271 00000 n 0004433411 00000 n 0004433551 00000 n 0004433691 00000 n 0004433831 00000 n 0004433971 00000 n 0004434111 00000 n 0004434251 00000 n 0004434391 00000 n 0004434531 00000 n 0004434671 00000 n 0004434811 00000 n 0004434951 00000 n 0004435091 00000 n 0004435231 00000 n 0004435371 00000 n 0004435511 00000 n 0004435651 00000 n 0004435791 00000 n 0004435931 00000 n 0004436071 00000 n 0004436211 00000 n 0004436351 00000 n 0004436491 00000 n 0004436631 00000 n 0004436771 00000 n 0004436911 00000 n 0004437051 00000 n 0004437191 00000 n 0004437331 00000 n 0004437471 00000 n 0004437611 00000 n 0004437751 00000 n 0004437891 00000 n 0004438031 00000 n 0004438171 00000 n 0004438311 00000 n 0004438451 00000 n 0004438591 00000 n 0004438731 00000 n 0004438871 00000 n 0004439011 00000 n 0004439151 00000 n 0004439291 00000 n 0004439431 00000 n 0004439571 00000 n 0004439711 00000 n 0004439851 00000 n 0004439991 00000 n 0004440131 00000 n 0004440271 00000 n 0004440411 00000 n 0004440551 00000 n 0004440691 00000 n 0004440831 00000 n 0004440971 00000 n 0004441111 00000 n 0004441251 00000 n 0004441391 00000 n 0004441531 00000 n 0004441671 00000 n 0004441811 00000 n 0004441951 00000 n 0004442091 00000 n 0004442231 00000 n 0004442371 00000 n 0004442511 00000 n 0004442651 00000 n 0004442791 00000 n 0004442931 00000 n 0004443071 00000 n 0004443211 00000 n 0004443351 00000 n 0004443491 00000 n 0004443631 00000 n 0004443771 00000 n 0004443911 00000 n 0004444051 00000 n 0004444191 00000 n 0004444331 00000 n 0004444471 00000 n 0004444611 00000 n 0004444751 00000 n 0004444891 00000 n 0004445031 00000 n 0004445171 00000 n 0004445311 00000 n 0004445451 00000 n 0004445591 00000 n 0004445731 00000 n 0004445871 00000 n 0004446011 00000 n 0004446151 00000 n 0004446291 00000 n 0004446431 00000 n 0004446571 00000 n 0004446711 00000 n 0004446851 00000 n 0004446991 00000 n 0004447131 00000 n 0004447271 00000 n 0004447411 00000 n 0004447551 00000 n 0004447691 00000 n 0004447831 00000 n 0004447971 00000 n 0004448111 00000 n 0004448251 00000 n 0004448391 00000 n 0004448531 00000 n 0004448671 00000 n 0004448811 00000 n 0004448951 00000 n 0004449091 00000 n 0004449231 00000 n 0004449371 00000 n 0004449511 00000 n 0004449651 00000 n 0004449791 00000 n 0004449931 00000 n 0004450071 00000 n 0004450211 00000 n 0004450351 00000 n 0004450491 00000 n 0004450631 00000 n 0004450771 00000 n 0004450911 00000 n 0004451051 00000 n 0004451191 00000 n 0004451331 00000 n 0004451471 00000 n 0004451611 00000 n 0004451751 00000 n 0004451891 00000 n 0004452031 00000 n 0004452171 00000 n 0004452311 00000 n 0004452451 00000 n 0004452591 00000 n 0004452731 00000 n 0004452871 00000 n 0004453011 00000 n 0004453151 00000 n 0004453291 00000 n 0004453431 00000 n 0004453571 00000 n 0004453711 00000 n 0004453851 00000 n 0004453991 00000 n 0004454131 00000 n 0004454271 00000 n 0004454411 00000 n 0004454551 00000 n 0004454691 00000 n 0004454831 00000 n 0004454971 00000 n 0004455111 00000 n 0004455251 00000 n 0004455391 00000 n 0004455531 00000 n 0004455671 00000 n 0004455811 00000 n 0004455951 00000 n 0004456091 00000 n 0004456231 00000 n 0004456371 00000 n 0004456511 00000 n 0004456651 00000 n 0004456791 00000 n 0004456931 00000 n 0004457071 00000 n 0004457211 00000 n 0004457351 00000 n 0004457491 00000 n 0004457631 00000 n 0004457771 00000 n 0004457911 00000 n 0004458051 00000 n 0004458191 00000 n 0004458331 00000 n 0004458471 00000 n 0004458515 00000 n 0004458559 00000 n 0004458603 00000 n 0004458647 00000 n 0004458691 00000 n 0004458735 00000 n 0004458779 00000 n 0004458823 00000 n 0004458867 00000 n 0004458911 00000 n 0004458955 00000 n 0004458999 00000 n 0004459043 00000 n 0004459087 00000 n 0004459131 00000 n 0004459175 00000 n 0004459219 00000 n 0004459263 00000 n 0004459307 00000 n 0004459351 00000 n 0004459395 00000 n 0004459439 00000 n 0004459483 00000 n 0004459527 00000 n 0004459571 00000 n 0004459615 00000 n 0004459659 00000 n 0004459703 00000 n 0004459747 00000 n 0004459791 00000 n 0004459835 00000 n 0004459879 00000 n 0004459923 00000 n 0004459967 00000 n 0004460011 00000 n 0004460055 00000 n 0004460099 00000 n 0004460143 00000 n 0004460187 00000 n 0004460231 00000 n 0004460275 00000 n 0004460319 00000 n 0004460363 00000 n 0004460407 00000 n 0004460451 00000 n 0004460495 00000 n 0004460539 00000 n 0004460583 00000 n 0004460627 00000 n 0004460671 00000 n 0004460715 00000 n 0004460759 00000 n 0004460803 00000 n 0004460847 00000 n 0004460891 00000 n 0004460935 00000 n 0004460979 00000 n 0004461023 00000 n 0004461067 00000 n 0004461111 00000 n 0004461155 00000 n 0004461199 00000 n 0004461243 00000 n 0004461287 00000 n 0004461331 00000 n 0004461375 00000 n 0004461419 00000 n 0004461463 00000 n 0004461507 00000 n 0004461551 00000 n 0004461595 00000 n 0004461639 00000 n 0004461683 00000 n 0004461727 00000 n 0004461771 00000 n 0004461815 00000 n 0004461859 00000 n 0004461903 00000 n 0004461947 00000 n 0004461991 00000 n 0004462035 00000 n 0004462079 00000 n 0004462123 00000 n 0004462167 00000 n 0004462211 00000 n 0004462255 00000 n 0004462299 00000 n 0004462343 00000 n 0004462387 00000 n 0004462431 00000 n 0004462475 00000 n 0004462519 00000 n 0004462563 00000 n 0004462607 00000 n 0004462651 00000 n 0004462695 00000 n 0004462739 00000 n 0004462783 00000 n 0004462827 00000 n 0004462871 00000 n 0004462915 00000 n 0004462959 00000 n 0004463003 00000 n 0004463047 00000 n 0004463091 00000 n 0004463135 00000 n 0004463179 00000 n 0004463223 00000 n 0004463267 00000 n 0004463311 00000 n 0004463355 00000 n 0004463399 00000 n 0004463443 00000 n 0004463487 00000 n 0004463531 00000 n 0004463575 00000 n 0004463619 00000 n 0004463663 00000 n 0004463707 00000 n 0004463751 00000 n 0004463795 00000 n 0004463839 00000 n 0004463883 00000 n 0004463927 00000 n 0004463971 00000 n 0004464015 00000 n 0004464059 00000 n 0004464103 00000 n 0004464147 00000 n 0004464191 00000 n 0004464235 00000 n 0004464279 00000 n 0004464323 00000 n 0004464367 00000 n 0004464411 00000 n 0004464455 00000 n 0004464499 00000 n 0004464543 00000 n 0004464587 00000 n 0004464631 00000 n 0004464675 00000 n 0004464719 00000 n 0004464763 00000 n 0004464807 00000 n 0004464851 00000 n 0004464895 00000 n 0004464939 00000 n 0004464983 00000 n 0004465027 00000 n 0004465071 00000 n 0004465115 00000 n 0004465159 00000 n 0004465203 00000 n 0004465247 00000 n 0004465291 00000 n 0004465335 00000 n 0004465379 00000 n 0004465423 00000 n 0004465467 00000 n 0004465511 00000 n 0004465555 00000 n 0004465599 00000 n 0004465643 00000 n 0004465687 00000 n 0004465731 00000 n 0004465775 00000 n 0004465819 00000 n 0004465863 00000 n 0004465907 00000 n 0004465951 00000 n 0004465995 00000 n 0004466039 00000 n 0004466083 00000 n 0004466127 00000 n 0004466171 00000 n 0004466215 00000 n 0004466259 00000 n 0004466303 00000 n 0004466347 00000 n 0004466391 00000 n 0004466722 00000 n 0004467144 00000 n 0004467188 00000 n 0004467231 00000 n 0004467274 00000 n 0004467317 00000 n 0004467359 00000 n 0004467402 00000 n 0004467445 00000 n 0004467488 00000 n 0004467556 00000 n 0004467805 00000 n 0004467904 00000 n 0004469665 00000 n 0004469996 00000 n 0004470418 00000 n 0004470486 00000 n 0004470735 00000 n 0004470834 00000 n 0004474580 00000 n 0004474746 00000 n 0004474788 00000 n 0004475119 00000 n 0004475541 00000 n 0004475584 00000 n 0004475652 00000 n 0004475915 00000 n 0004476014 00000 n 0004479774 00000 n 0004479940 00000 n 0004479982 00000 n 0004480313 00000 n 0004480735 00000 n 0004481066 00000 n 0004481488 00000 n 0004481532 00000 n 0004481576 00000 n 0004481619 00000 n 0004481662 00000 n 0004481705 00000 n 0004481748 00000 n 0004481791 00000 n 0004481834 00000 n 0004481902 00000 n 0004482165 00000 n 0004482264 00000 n 0004486077 00000 n 0004486408 00000 n 0004486830 00000 n 0004486873 00000 n 0004486941 00000 n 0004487209 00000 n 0004487308 00000 n 0004487683 00000 n 0004487883 00000 n 0004489089 00000 n 0004490291 00000 n 0004490622 00000 n 0004491044 00000 n 0004492365 00000 n 0004494173 00000 n 0004495494 00000 n 0004508274 00000 n 0004508580 00000 n 0004508622 00000 n 0004508690 00000 n 0004508939 00000 n 0004509038 00000 n 0004511833 00000 n 0004512164 00000 n 0004512586 00000 n 0004512654 00000 n 0004512874 00000 n 0004512973 00000 n 0004516816 00000 n 0004517147 00000 n 0004517569 00000 n 0004517612 00000 n 0004517656 00000 n 0004517699 00000 n 0004517767 00000 n 0004518001 00000 n 0004518100 00000 n 0004520496 00000 n 0004520539 00000 n 0004520583 00000 n 0004520626 00000 n 0004520669 00000 n 0004520713 00000 n 0004520781 00000 n 0004521015 00000 n 0004521114 00000 n 0004525029 00000 n 0004525196 00000 n 0004525527 00000 n 0004525949 00000 n 0004525992 00000 n 0004526035 00000 n 0004526103 00000 n 0004526338 00000 n 0004526437 00000 n 0004530804 00000 n 0004530944 00000 n 0004531084 00000 n 0004531224 00000 n 0004531364 00000 n 0004531504 00000 n 0004531644 00000 n 0004531784 00000 n 0004531924 00000 n 0004532064 00000 n 0004532204 00000 n 0004532344 00000 n 0004532484 00000 n 0004532624 00000 n 0004532764 00000 n 0004532904 00000 n 0004533044 00000 n 0004533184 00000 n 0004533324 00000 n 0004533464 00000 n 0004533604 00000 n 0004533744 00000 n 0004533884 00000 n 0004534024 00000 n 0004534164 00000 n 0004534304 00000 n 0004534444 00000 n 0004534584 00000 n 0004534724 00000 n 0004534864 00000 n 0004535004 00000 n 0004535144 00000 n 0004535284 00000 n 0004535424 00000 n 0004535564 00000 n 0004535704 00000 n 0004535844 00000 n 0004535984 00000 n 0004536124 00000 n 0004536264 00000 n 0004536404 00000 n 0004536544 00000 n 0004536684 00000 n 0004536824 00000 n 0004536964 00000 n 0004537104 00000 n 0004537244 00000 n 0004537384 00000 n 0004537524 00000 n 0004537664 00000 n 0004537804 00000 n 0004537944 00000 n 0004538084 00000 n 0004538224 00000 n 0004538364 00000 n 0004538504 00000 n 0004538644 00000 n 0004538784 00000 n 0004538924 00000 n 0004539064 00000 n 0004539204 00000 n 0004539344 00000 n 0004539484 00000 n 0004539624 00000 n 0004539764 00000 n 0004539904 00000 n 0004540044 00000 n 0004540184 00000 n 0004540324 00000 n 0004540464 00000 n 0004540604 00000 n 0004540744 00000 n 0004540884 00000 n 0004541024 00000 n 0004541164 00000 n 0004541304 00000 n 0004541444 00000 n 0004541584 00000 n 0004541724 00000 n 0004541864 00000 n 0004542004 00000 n 0004542144 00000 n 0004542284 00000 n 0004542424 00000 n 0004542564 00000 n 0004542704 00000 n 0004542844 00000 n 0004542984 00000 n 0004543124 00000 n 0004543264 00000 n 0004543404 00000 n 0004543544 00000 n 0004543684 00000 n 0004543824 00000 n 0004543964 00000 n 0004544104 00000 n 0004544244 00000 n 0004544384 00000 n 0004544524 00000 n 0004544664 00000 n 0004544804 00000 n 0004544944 00000 n 0004545084 00000 n 0004545224 00000 n 0004545364 00000 n 0004545504 00000 n 0004545644 00000 n 0004545784 00000 n 0004545924 00000 n 0004546064 00000 n 0004546204 00000 n 0004546344 00000 n 0004546484 00000 n 0004546624 00000 n 0004546764 00000 n 0004546904 00000 n 0004547044 00000 n 0004547184 00000 n 0004547324 00000 n 0004547464 00000 n 0004547604 00000 n 0004547744 00000 n 0004547884 00000 n 0004548024 00000 n 0004548164 00000 n 0004548304 00000 n 0004548444 00000 n 0004548584 00000 n 0004548724 00000 n 0004548864 00000 n 0004549004 00000 n 0004549144 00000 n 0004549284 00000 n 0004549424 00000 n 0004549564 00000 n 0004549704 00000 n 0004549844 00000 n 0004549984 00000 n 0004550124 00000 n 0004550264 00000 n 0004550404 00000 n 0004550544 00000 n 0004550684 00000 n 0004550824 00000 n 0004550964 00000 n 0004551104 00000 n 0004551244 00000 n 0004551384 00000 n 0004551524 00000 n 0004551664 00000 n 0004551804 00000 n 0004551944 00000 n 0004552084 00000 n 0004552224 00000 n 0004552364 00000 n 0004552504 00000 n 0004552644 00000 n 0004552784 00000 n 0004552924 00000 n 0004553064 00000 n 0004553204 00000 n 0004553344 00000 n 0004553484 00000 n 0004553624 00000 n 0004553764 00000 n 0004553904 00000 n 0004554044 00000 n 0004554184 00000 n 0004554324 00000 n 0004554464 00000 n 0004554604 00000 n 0004554744 00000 n 0004554884 00000 n 0004555024 00000 n 0004555164 00000 n 0004555304 00000 n 0004555444 00000 n 0004555584 00000 n 0004555724 00000 n 0004555864 00000 n 0004556004 00000 n 0004556144 00000 n 0004556284 00000 n 0004556424 00000 n 0004556564 00000 n 0004556704 00000 n 0004556844 00000 n 0004556984 00000 n 0004557124 00000 n 0004557264 00000 n 0004557404 00000 n 0004557544 00000 n 0004557684 00000 n 0004557824 00000 n 0004557964 00000 n 0004558104 00000 n 0004558244 00000 n 0004558384 00000 n 0004558524 00000 n 0004558664 00000 n 0004558804 00000 n 0004558944 00000 n 0004559084 00000 n 0004559224 00000 n 0004559364 00000 n 0004559504 00000 n 0004559644 00000 n 0004559784 00000 n 0004559924 00000 n 0004560064 00000 n 0004560204 00000 n 0004560344 00000 n 0004560484 00000 n 0004560624 00000 n 0004560764 00000 n 0004560904 00000 n 0004561044 00000 n 0004561184 00000 n 0004561324 00000 n 0004561464 00000 n 0004561604 00000 n 0004561744 00000 n 0004561884 00000 n 0004562024 00000 n 0004562164 00000 n 0004562304 00000 n 0004562444 00000 n 0004562584 00000 n 0004562724 00000 n 0004562864 00000 n 0004563004 00000 n 0004563144 00000 n 0004563284 00000 n 0004563424 00000 n 0004563564 00000 n 0004563704 00000 n 0004563844 00000 n 0004563984 00000 n 0004564124 00000 n 0004564264 00000 n 0004564404 00000 n 0004564544 00000 n 0004564684 00000 n 0004564824 00000 n 0004564964 00000 n 0004565104 00000 n 0004565244 00000 n 0004565384 00000 n 0004565524 00000 n 0004565664 00000 n 0004565804 00000 n 0004565944 00000 n 0004566084 00000 n 0004566224 00000 n 0004566364 00000 n 0004566504 00000 n 0004566644 00000 n 0004566784 00000 n 0004566924 00000 n 0004567064 00000 n 0004567204 00000 n 0004567344 00000 n 0004567484 00000 n 0004567624 00000 n 0004567764 00000 n 0004567904 00000 n 0004568044 00000 n 0004568184 00000 n 0004568324 00000 n 0004568464 00000 n 0004568604 00000 n 0004568744 00000 n 0004568884 00000 n 0004569024 00000 n 0004569164 00000 n 0004569304 00000 n 0004569444 00000 n 0004569584 00000 n 0004569724 00000 n 0004569864 00000 n 0004570004 00000 n 0004570144 00000 n 0004570284 00000 n 0004570424 00000 n 0004570564 00000 n 0004570704 00000 n 0004570844 00000 n 0004570984 00000 n 0004571028 00000 n 0004571072 00000 n 0004571116 00000 n 0004571160 00000 n 0004571204 00000 n 0004571248 00000 n 0004571292 00000 n 0004571336 00000 n 0004571380 00000 n 0004571424 00000 n 0004571468 00000 n 0004571512 00000 n 0004571556 00000 n 0004571600 00000 n 0004571644 00000 n 0004571688 00000 n 0004571732 00000 n 0004571776 00000 n 0004571820 00000 n 0004571864 00000 n 0004571908 00000 n 0004571952 00000 n 0004571996 00000 n 0004572040 00000 n 0004572084 00000 n 0004572128 00000 n 0004572172 00000 n 0004572216 00000 n 0004572260 00000 n 0004572304 00000 n 0004572348 00000 n 0004572392 00000 n 0004572436 00000 n 0004572480 00000 n 0004572524 00000 n 0004572568 00000 n 0004572612 00000 n 0004572656 00000 n 0004572700 00000 n 0004572744 00000 n 0004572788 00000 n 0004572832 00000 n 0004572876 00000 n 0004572920 00000 n 0004572964 00000 n 0004573008 00000 n 0004573052 00000 n 0004573096 00000 n 0004573140 00000 n 0004573184 00000 n 0004573228 00000 n 0004573272 00000 n 0004573316 00000 n 0004573360 00000 n 0004573404 00000 n 0004573448 00000 n 0004573492 00000 n 0004573536 00000 n 0004573580 00000 n 0004573624 00000 n 0004573668 00000 n 0004573712 00000 n 0004573756 00000 n 0004573800 00000 n 0004573844 00000 n 0004573888 00000 n 0004573932 00000 n 0004573976 00000 n 0004574020 00000 n 0004574064 00000 n 0004574108 00000 n 0004574152 00000 n 0004574196 00000 n 0004574240 00000 n 0004574284 00000 n 0004574328 00000 n 0004574372 00000 n 0004574416 00000 n 0004574460 00000 n 0004574504 00000 n 0004574548 00000 n 0004574592 00000 n 0004574636 00000 n 0004574680 00000 n 0004574724 00000 n 0004574768 00000 n 0004574812 00000 n 0004574856 00000 n 0004574900 00000 n 0004574944 00000 n 0004574988 00000 n 0004575032 00000 n 0004575076 00000 n 0004575120 00000 n 0004575164 00000 n 0004575208 00000 n 0004575252 00000 n 0004575296 00000 n 0004575340 00000 n 0004575384 00000 n 0004575428 00000 n 0004575472 00000 n 0004575516 00000 n 0004575560 00000 n 0004575604 00000 n 0004575648 00000 n 0004575692 00000 n 0004575736 00000 n 0004575780 00000 n 0004575824 00000 n 0004575868 00000 n 0004575912 00000 n 0004575956 00000 n 0004576000 00000 n 0004576044 00000 n 0004576088 00000 n 0004576132 00000 n 0004576176 00000 n 0004576220 00000 n 0004576264 00000 n 0004576308 00000 n 0004576352 00000 n 0004576396 00000 n 0004576440 00000 n 0004576484 00000 n 0004576528 00000 n 0004576572 00000 n 0004576616 00000 n 0004576660 00000 n 0004576704 00000 n 0004576748 00000 n 0004576792 00000 n 0004576836 00000 n 0004576880 00000 n 0004576924 00000 n 0004576968 00000 n 0004577012 00000 n 0004577056 00000 n 0004577100 00000 n 0004577144 00000 n 0004577188 00000 n 0004577232 00000 n 0004577276 00000 n 0004577320 00000 n 0004577364 00000 n 0004577408 00000 n 0004577452 00000 n 0004577496 00000 n 0004577540 00000 n 0004577584 00000 n 0004577628 00000 n 0004577672 00000 n 0004577716 00000 n 0004577760 00000 n 0004577804 00000 n 0004577848 00000 n 0004577892 00000 n 0004577936 00000 n 0004577980 00000 n 0004578024 00000 n 0004578068 00000 n 0004578112 00000 n 0004578156 00000 n 0004578200 00000 n 0004578244 00000 n 0004578288 00000 n 0004578332 00000 n 0004578376 00000 n 0004578420 00000 n 0004578464 00000 n 0004578508 00000 n 0004578552 00000 n 0004578596 00000 n 0004578640 00000 n 0004578684 00000 n 0004578728 00000 n 0004578772 00000 n 0004578816 00000 n 0004578860 00000 n 0004578904 00000 n 0004578948 00000 n 0004578992 00000 n 0004579036 00000 n 0004579080 00000 n 0004579124 00000 n 0004579168 00000 n 0004579212 00000 n 0004579256 00000 n 0004579300 00000 n 0004579344 00000 n 0004579388 00000 n 0004579432 00000 n 0004579476 00000 n 0004579520 00000 n 0004579564 00000 n 0004579608 00000 n 0004579652 00000 n 0004579696 00000 n 0004579740 00000 n 0004579784 00000 n 0004579828 00000 n 0004579872 00000 n 0004579916 00000 n 0004579960 00000 n 0004580004 00000 n 0004580048 00000 n 0004580092 00000 n 0004580136 00000 n 0004580180 00000 n 0004580224 00000 n 0004580268 00000 n 0004580312 00000 n 0004580356 00000 n 0004580400 00000 n 0004580444 00000 n 0004580488 00000 n 0004580532 00000 n 0004580576 00000 n 0004580620 00000 n 0004580664 00000 n 0004580708 00000 n 0004580752 00000 n 0004580796 00000 n 0004580840 00000 n 0004580884 00000 n 0004581215 00000 n 0004581637 00000 n 0004581681 00000 n 0004581749 00000 n 0004582012 00000 n 0004582111 00000 n 0004584498 00000 n 0004584829 00000 n 0004585251 00000 n 0004585294 00000 n 0004585338 00000 n 0004585380 00000 n 0004585423 00000 n 0004585491 00000 n 0004585711 00000 n 0004585810 00000 n 0004589893 00000 n 0004590224 00000 n 0004590646 00000 n 0004590689 00000 n 0004590733 00000 n 0004590775 00000 n 0004590843 00000 n 0004591092 00000 n 0004591191 00000 n 0004593025 00000 n 0004593356 00000 n 0004593778 00000 n 0004593821 00000 n 0004593864 00000 n 0004593932 00000 n 0004594181 00000 n 0004594280 00000 n 0004597960 00000 n 0004598291 00000 n 0004598713 00000 n 0004599044 00000 n 0004599466 00000 n 0004599509 00000 n 0004599577 00000 n 0004599840 00000 n 0004599939 00000 n 0004603950 00000 n 0004604281 00000 n 0004604703 00000 n 0004604746 00000 n 0004604789 00000 n 0004604832 00000 n 0004604875 00000 n 0004604943 00000 n 0004605211 00000 n 0004605310 00000 n 0004606574 00000 n 0004607772 00000 n 0004608103 00000 n 0004608525 00000 n 0004608612 00000 n 0004609943 00000 n 0004609985 00000 n 0004610053 00000 n 0004610301 00000 n 0004610400 00000 n 0004613318 00000 n 0004613485 00000 n 0004613528 00000 n 0004613859 00000 n 0004614281 00000 n 0004614324 00000 n 0004614368 00000 n 0004614436 00000 n 0004614656 00000 n 0004614755 00000 n 0004618494 00000 n 0004618825 00000 n 0004619247 00000 n 0004619290 00000 n 0004619333 00000 n 0004619376 00000 n 0004619419 00000 n 0004619463 00000 n 0004619506 00000 n 0004619550 00000 n 0004619593 00000 n 0004619636 00000 n 0004619704 00000 n 0004619939 00000 n 0004620038 00000 n 0004624422 00000 n 0004624562 00000 n 0004624702 00000 n 0004624842 00000 n 0004624982 00000 n 0004625122 00000 n 0004625262 00000 n 0004625402 00000 n 0004625542 00000 n 0004625682 00000 n 0004625822 00000 n 0004625962 00000 n 0004626102 00000 n 0004626242 00000 n 0004626382 00000 n 0004626522 00000 n 0004626662 00000 n 0004626802 00000 n 0004626942 00000 n 0004627082 00000 n 0004627222 00000 n 0004627362 00000 n 0004627502 00000 n 0004627642 00000 n 0004627782 00000 n 0004627922 00000 n 0004628062 00000 n 0004628202 00000 n 0004628342 00000 n 0004628482 00000 n 0004628622 00000 n 0004628762 00000 n 0004628902 00000 n 0004629042 00000 n 0004629182 00000 n 0004629322 00000 n 0004629462 00000 n 0004629602 00000 n 0004629742 00000 n 0004629882 00000 n 0004630022 00000 n 0004630162 00000 n 0004630302 00000 n 0004630442 00000 n 0004630582 00000 n 0004630722 00000 n 0004630862 00000 n 0004631002 00000 n 0004631142 00000 n 0004631282 00000 n 0004631422 00000 n 0004631562 00000 n 0004631702 00000 n 0004631842 00000 n 0004631982 00000 n 0004632122 00000 n 0004632262 00000 n 0004632402 00000 n 0004632542 00000 n 0004632682 00000 n 0004632822 00000 n 0004632962 00000 n 0004633102 00000 n 0004633242 00000 n 0004633382 00000 n 0004633522 00000 n 0004633662 00000 n 0004633802 00000 n 0004633942 00000 n 0004634082 00000 n 0004634222 00000 n 0004634362 00000 n 0004634502 00000 n 0004634642 00000 n 0004634782 00000 n 0004634922 00000 n 0004635062 00000 n 0004635202 00000 n 0004635342 00000 n 0004635482 00000 n 0004635622 00000 n 0004635762 00000 n 0004635902 00000 n 0004636042 00000 n 0004636182 00000 n 0004636322 00000 n 0004636462 00000 n 0004636602 00000 n 0004636742 00000 n 0004636882 00000 n 0004637022 00000 n 0004637162 00000 n 0004637302 00000 n 0004637442 00000 n 0004637582 00000 n 0004637722 00000 n 0004637862 00000 n 0004638002 00000 n 0004638142 00000 n 0004638282 00000 n 0004638422 00000 n 0004638562 00000 n 0004638702 00000 n 0004638842 00000 n 0004638982 00000 n 0004639122 00000 n 0004639262 00000 n 0004639402 00000 n 0004639542 00000 n 0004639682 00000 n 0004639822 00000 n 0004639962 00000 n 0004640102 00000 n 0004640242 00000 n 0004640382 00000 n 0004640522 00000 n 0004640662 00000 n 0004640802 00000 n 0004640942 00000 n 0004641082 00000 n 0004641222 00000 n 0004641362 00000 n 0004641502 00000 n 0004641642 00000 n 0004641782 00000 n 0004641922 00000 n 0004642062 00000 n 0004642202 00000 n 0004642342 00000 n 0004642482 00000 n 0004642622 00000 n 0004642762 00000 n 0004642902 00000 n 0004643042 00000 n 0004643182 00000 n 0004643322 00000 n 0004643462 00000 n 0004643602 00000 n 0004643742 00000 n 0004643882 00000 n 0004644022 00000 n 0004644162 00000 n 0004644302 00000 n 0004644442 00000 n 0004644582 00000 n 0004644722 00000 n 0004644862 00000 n 0004645002 00000 n 0004645142 00000 n 0004645282 00000 n 0004645422 00000 n 0004645562 00000 n 0004645702 00000 n 0004645842 00000 n 0004645982 00000 n 0004646122 00000 n 0004646262 00000 n 0004646402 00000 n 0004646542 00000 n 0004646682 00000 n 0004646822 00000 n 0004646962 00000 n 0004647102 00000 n 0004647242 00000 n 0004647382 00000 n 0004647522 00000 n 0004647662 00000 n 0004647802 00000 n 0004647942 00000 n 0004648082 00000 n 0004648222 00000 n 0004648362 00000 n 0004648502 00000 n 0004648642 00000 n 0004648782 00000 n 0004648922 00000 n 0004649062 00000 n 0004649202 00000 n 0004649342 00000 n 0004649482 00000 n 0004649622 00000 n 0004649762 00000 n 0004649902 00000 n 0004650042 00000 n 0004650182 00000 n 0004650322 00000 n 0004650462 00000 n 0004650602 00000 n 0004650742 00000 n 0004650882 00000 n 0004651022 00000 n 0004651162 00000 n 0004651302 00000 n 0004651442 00000 n 0004651582 00000 n 0004651722 00000 n 0004651862 00000 n 0004652002 00000 n 0004652142 00000 n 0004652282 00000 n 0004652422 00000 n 0004652562 00000 n 0004652702 00000 n 0004652842 00000 n 0004652982 00000 n 0004653122 00000 n 0004653262 00000 n 0004653402 00000 n 0004653542 00000 n 0004653682 00000 n 0004653822 00000 n 0004653962 00000 n 0004654102 00000 n 0004654242 00000 n 0004654382 00000 n 0004654522 00000 n 0004654662 00000 n 0004654802 00000 n 0004654942 00000 n 0004655082 00000 n 0004655222 00000 n 0004655362 00000 n 0004655502 00000 n 0004655642 00000 n 0004655782 00000 n 0004655922 00000 n 0004656062 00000 n 0004656202 00000 n 0004656342 00000 n 0004656482 00000 n 0004656622 00000 n 0004656762 00000 n 0004656902 00000 n 0004657042 00000 n 0004657182 00000 n 0004657322 00000 n 0004657462 00000 n 0004657602 00000 n 0004657742 00000 n 0004657882 00000 n 0004658022 00000 n 0004658162 00000 n 0004658302 00000 n 0004658442 00000 n 0004658582 00000 n 0004658722 00000 n 0004658862 00000 n 0004659002 00000 n 0004659142 00000 n 0004659282 00000 n 0004659422 00000 n 0004659562 00000 n 0004659702 00000 n 0004659842 00000 n 0004659982 00000 n 0004660122 00000 n 0004660262 00000 n 0004660402 00000 n 0004660542 00000 n 0004660682 00000 n 0004660822 00000 n 0004660962 00000 n 0004661102 00000 n 0004661242 00000 n 0004661382 00000 n 0004661522 00000 n 0004661662 00000 n 0004661802 00000 n 0004661942 00000 n 0004662082 00000 n 0004662222 00000 n 0004662362 00000 n 0004662502 00000 n 0004662642 00000 n 0004662782 00000 n 0004662922 00000 n 0004663062 00000 n 0004663202 00000 n 0004663342 00000 n 0004663482 00000 n 0004663622 00000 n 0004663762 00000 n 0004663902 00000 n 0004664042 00000 n 0004664182 00000 n 0004664322 00000 n 0004664462 00000 n 0004664602 00000 n 0004664742 00000 n 0004664882 00000 n 0004665022 00000 n 0004665162 00000 n 0004665302 00000 n 0004665442 00000 n 0004665582 00000 n 0004665722 00000 n 0004665862 00000 n 0004666002 00000 n 0004666142 00000 n 0004666282 00000 n 0004666422 00000 n 0004666562 00000 n 0004666702 00000 n 0004666842 00000 n 0004666982 00000 n 0004667122 00000 n 0004667262 00000 n 0004667402 00000 n 0004667542 00000 n 0004667682 00000 n 0004667822 00000 n 0004667962 00000 n 0004668102 00000 n 0004668242 00000 n 0004668382 00000 n 0004668522 00000 n 0004668662 00000 n 0004668802 00000 n 0004668942 00000 n 0004669082 00000 n 0004669222 00000 n 0004669362 00000 n 0004669502 00000 n 0004669642 00000 n 0004669782 00000 n 0004669922 00000 n 0004670062 00000 n 0004670202 00000 n 0004670342 00000 n 0004670482 00000 n 0004670622 00000 n 0004670762 00000 n 0004670902 00000 n 0004671042 00000 n 0004671182 00000 n 0004671322 00000 n 0004671462 00000 n 0004671602 00000 n 0004671742 00000 n 0004671882 00000 n 0004672022 00000 n 0004672162 00000 n 0004672302 00000 n 0004672442 00000 n 0004672582 00000 n 0004672722 00000 n 0004672862 00000 n 0004673002 00000 n 0004673142 00000 n 0004673282 00000 n 0004673422 00000 n 0004673562 00000 n 0004673702 00000 n 0004673842 00000 n 0004673982 00000 n 0004674122 00000 n 0004674262 00000 n 0004674402 00000 n 0004674542 00000 n 0004674682 00000 n 0004674822 00000 n 0004674962 00000 n 0004675102 00000 n 0004675242 00000 n 0004675382 00000 n 0004675522 00000 n 0004675662 00000 n 0004675802 00000 n 0004675942 00000 n 0004676082 00000 n 0004676222 00000 n 0004676362 00000 n 0004676502 00000 n 0004676642 00000 n 0004676782 00000 n 0004676922 00000 n 0004677062 00000 n 0004677202 00000 n 0004677342 00000 n 0004677482 00000 n 0004677622 00000 n 0004677762 00000 n 0004677902 00000 n 0004678042 00000 n 0004678182 00000 n 0004678322 00000 n 0004678462 00000 n 0004678602 00000 n 0004678742 00000 n 0004678882 00000 n 0004679022 00000 n 0004679162 00000 n 0004679302 00000 n 0004679442 00000 n 0004679582 00000 n 0004679722 00000 n 0004679862 00000 n 0004680002 00000 n 0004680142 00000 n 0004680282 00000 n 0004680422 00000 n 0004680562 00000 n 0004680702 00000 n 0004680842 00000 n 0004680982 00000 n 0004681122 00000 n 0004681262 00000 n 0004681306 00000 n 0004681350 00000 n 0004681394 00000 n 0004681438 00000 n 0004681482 00000 n 0004681526 00000 n 0004681570 00000 n 0004681614 00000 n 0004681658 00000 n 0004681702 00000 n 0004681746 00000 n 0004681790 00000 n 0004681834 00000 n 0004681878 00000 n 0004681922 00000 n 0004681966 00000 n 0004682010 00000 n 0004682054 00000 n 0004682098 00000 n 0004682142 00000 n 0004682186 00000 n 0004682230 00000 n 0004682274 00000 n 0004682318 00000 n 0004682362 00000 n 0004682406 00000 n 0004682450 00000 n 0004682494 00000 n 0004682538 00000 n 0004682582 00000 n 0004682626 00000 n 0004682670 00000 n 0004682714 00000 n 0004682758 00000 n 0004682802 00000 n 0004682846 00000 n 0004682890 00000 n 0004682934 00000 n 0004682978 00000 n 0004683022 00000 n 0004683066 00000 n 0004683110 00000 n 0004683154 00000 n 0004683198 00000 n 0004683242 00000 n 0004683286 00000 n 0004683330 00000 n 0004683374 00000 n 0004683418 00000 n 0004683462 00000 n 0004683506 00000 n 0004683550 00000 n 0004683594 00000 n 0004683638 00000 n 0004683682 00000 n 0004683726 00000 n 0004683770 00000 n 0004683814 00000 n 0004683858 00000 n 0004683902 00000 n 0004683946 00000 n 0004683990 00000 n 0004684034 00000 n 0004684078 00000 n 0004684122 00000 n 0004684166 00000 n 0004684210 00000 n 0004684254 00000 n 0004684298 00000 n 0004684342 00000 n 0004684386 00000 n 0004684430 00000 n 0004684474 00000 n 0004684518 00000 n 0004684562 00000 n 0004684606 00000 n 0004684650 00000 n 0004684694 00000 n 0004684738 00000 n 0004684782 00000 n 0004684826 00000 n 0004684870 00000 n 0004684914 00000 n 0004684958 00000 n 0004685002 00000 n 0004685046 00000 n 0004685090 00000 n 0004685134 00000 n 0004685178 00000 n 0004685222 00000 n 0004685266 00000 n 0004685310 00000 n 0004685354 00000 n 0004685398 00000 n 0004685442 00000 n 0004685486 00000 n 0004685530 00000 n 0004685574 00000 n 0004685618 00000 n 0004685662 00000 n 0004685706 00000 n 0004685750 00000 n 0004685794 00000 n 0004685838 00000 n 0004685882 00000 n 0004685926 00000 n 0004685970 00000 n 0004686014 00000 n 0004686058 00000 n 0004686102 00000 n 0004686146 00000 n 0004686190 00000 n 0004686234 00000 n 0004686278 00000 n 0004686322 00000 n 0004686366 00000 n 0004686410 00000 n 0004686454 00000 n 0004686498 00000 n 0004686542 00000 n 0004686586 00000 n 0004686630 00000 n 0004686674 00000 n 0004686718 00000 n 0004686762 00000 n 0004686806 00000 n 0004686850 00000 n 0004686894 00000 n 0004686938 00000 n 0004686982 00000 n 0004687026 00000 n 0004687070 00000 n 0004687114 00000 n 0004687158 00000 n 0004687202 00000 n 0004687246 00000 n 0004687290 00000 n 0004687334 00000 n 0004687378 00000 n 0004687422 00000 n 0004687466 00000 n 0004687510 00000 n 0004687554 00000 n 0004687598 00000 n 0004687642 00000 n 0004687686 00000 n 0004687730 00000 n 0004687774 00000 n 0004687818 00000 n 0004687862 00000 n 0004687906 00000 n 0004687950 00000 n 0004687994 00000 n 0004688038 00000 n 0004688082 00000 n 0004688126 00000 n 0004688170 00000 n 0004688214 00000 n 0004688258 00000 n 0004688302 00000 n 0004688346 00000 n 0004688390 00000 n 0004688434 00000 n 0004688478 00000 n 0004688522 00000 n 0004688566 00000 n 0004688610 00000 n 0004688654 00000 n 0004688698 00000 n 0004688742 00000 n 0004688786 00000 n 0004688830 00000 n 0004688874 00000 n 0004688918 00000 n 0004688962 00000 n 0004689006 00000 n 0004689050 00000 n 0004689094 00000 n 0004689138 00000 n 0004689182 00000 n 0004689226 00000 n 0004689270 00000 n 0004689314 00000 n 0004689358 00000 n 0004689402 00000 n 0004689446 00000 n 0004689490 00000 n 0004689534 00000 n 0004689578 00000 n 0004689622 00000 n 0004689666 00000 n 0004689710 00000 n 0004689754 00000 n 0004689798 00000 n 0004689842 00000 n 0004689886 00000 n 0004689930 00000 n 0004689974 00000 n 0004690018 00000 n 0004690062 00000 n 0004690106 00000 n 0004690150 00000 n 0004690194 00000 n 0004690238 00000 n 0004690282 00000 n 0004690326 00000 n 0004690370 00000 n 0004690414 00000 n 0004690458 00000 n 0004690502 00000 n 0004690546 00000 n 0004690590 00000 n 0004690634 00000 n 0004690678 00000 n 0004690722 00000 n 0004690766 00000 n 0004690810 00000 n 0004690854 00000 n 0004690898 00000 n 0004690942 00000 n 0004690986 00000 n 0004691030 00000 n 0004691074 00000 n 0004691118 00000 n 0004691162 00000 n 0004691206 00000 n 0004691250 00000 n 0004691294 00000 n 0004691338 00000 n 0004691382 00000 n 0004691426 00000 n 0004691470 00000 n 0004691514 00000 n 0004691558 00000 n 0004691602 00000 n 0004691646 00000 n 0004691690 00000 n 0004691734 00000 n 0004691778 00000 n 0004691822 00000 n 0004691866 00000 n 0004691910 00000 n 0004691954 00000 n 0004691998 00000 n 0004692042 00000 n 0004692086 00000 n 0004692130 00000 n 0004692174 00000 n 0004692218 00000 n 0004692262 00000 n 0004692306 00000 n 0004692350 00000 n 0004692394 00000 n 0004692438 00000 n 0004692482 00000 n 0004692526 00000 n 0004692570 00000 n 0004692614 00000 n 0004692658 00000 n 0004692702 00000 n 0004692746 00000 n 0004692790 00000 n 0004692834 00000 n 0004692878 00000 n 0004692922 00000 n 0004692966 00000 n 0004693010 00000 n 0004693054 00000 n 0004693098 00000 n 0004693142 00000 n 0004693186 00000 n 0004693230 00000 n 0004693274 00000 n 0004693318 00000 n 0004693362 00000 n 0004693406 00000 n 0004693450 00000 n 0004693494 00000 n 0004693825 00000 n 0004694247 00000 n 0004694291 00000 n 0004694334 00000 n 0004694378 00000 n 0004694421 00000 n 0004694465 00000 n 0004694508 00000 n 0004694551 00000 n 0004694619 00000 n 0004694868 00000 n 0004694967 00000 n 0004698830 00000 n 0004699161 00000 n 0004699583 00000 n 0004699626 00000 n 0004699694 00000 n 0004699943 00000 n 0004700042 00000 n 0004701983 00000 n 0004702314 00000 n 0004702736 00000 n 0004702779 00000 n 0004702822 00000 n 0004702865 00000 n 0004702908 00000 n 0004702976 00000 n 0004703239 00000 n 0004703338 00000 n 0004707544 00000 n 0004707710 00000 n 0004708041 00000 n 0004708463 00000 n 0004708531 00000 n 0004708780 00000 n 0004708879 00000 n 0004713757 00000 n 0004714088 00000 n 0004714510 00000 n 0004714553 00000 n 0004714595 00000 n 0004714639 00000 n 0004714681 00000 n 0004714724 00000 n 0004714792 00000 n 0004715012 00000 n 0004715111 00000 n 0004718704 00000 n 0004719035 00000 n 0004719457 00000 n 0004719525 00000 n 0004719745 00000 n 0004719844 00000 n 0004723641 00000 n 0004723972 00000 n 0004724394 00000 n 0004724437 00000 n 0004724505 00000 n 0004724739 00000 n 0004724838 00000 n 0004729209 00000 n 0004729540 00000 n 0004729962 00000 n 0004730005 00000 n 0004730048 00000 n 0004730116 00000 n 0004730445 00000 n 0004730544 00000 n 0004732547 00000 n 0004733760 00000 n 0004734182 00000 n 0004734330 00000 n 0004734661 00000 n 0004736483 00000 n 0004737806 00000 n 0004750784 00000 n 0004750852 00000 n 0004751101 00000 n 0004751200 00000 n 0004754968 00000 n 0004755130 00000 n 0004755296 00000 n 0004755338 00000 n 0004755380 00000 n 0004755711 00000 n 0004756133 00000 n 0004756176 00000 n 0004756220 00000 n 0004756263 00000 n 0004756306 00000 n 0004756349 00000 n 0004756392 00000 n 0004756435 00000 n 0004756478 00000 n 0004756546 00000 n 0004756766 00000 n 0004756865 00000 n 0004762074 00000 n 0004762214 00000 n 0004762354 00000 n 0004762494 00000 n 0004762634 00000 n 0004762774 00000 n 0004762914 00000 n 0004763054 00000 n 0004763194 00000 n 0004763334 00000 n 0004763474 00000 n 0004763614 00000 n 0004763754 00000 n 0004763894 00000 n 0004764034 00000 n 0004764174 00000 n 0004764314 00000 n 0004764454 00000 n 0004764594 00000 n 0004764734 00000 n 0004764874 00000 n 0004765014 00000 n 0004765154 00000 n 0004765294 00000 n 0004765434 00000 n 0004765574 00000 n 0004765714 00000 n 0004765854 00000 n 0004765994 00000 n 0004766134 00000 n 0004766274 00000 n 0004766414 00000 n 0004766554 00000 n 0004766694 00000 n 0004766834 00000 n 0004766974 00000 n 0004767114 00000 n 0004767254 00000 n 0004767394 00000 n 0004767534 00000 n 0004767674 00000 n 0004767814 00000 n 0004767954 00000 n 0004768094 00000 n 0004768234 00000 n 0004768374 00000 n 0004768514 00000 n 0004768654 00000 n 0004768794 00000 n 0004768934 00000 n 0004769074 00000 n 0004769214 00000 n 0004769354 00000 n 0004769494 00000 n 0004769634 00000 n 0004769774 00000 n 0004769914 00000 n 0004770054 00000 n 0004770194 00000 n 0004770334 00000 n 0004770474 00000 n 0004770614 00000 n 0004770754 00000 n 0004770894 00000 n 0004771034 00000 n 0004771174 00000 n 0004771314 00000 n 0004771454 00000 n 0004771594 00000 n 0004771734 00000 n 0004771874 00000 n 0004772014 00000 n 0004772154 00000 n 0004772294 00000 n 0004772434 00000 n 0004772574 00000 n 0004772714 00000 n 0004772854 00000 n 0004772994 00000 n 0004773134 00000 n 0004773274 00000 n 0004773414 00000 n 0004773554 00000 n 0004773694 00000 n 0004773834 00000 n 0004773974 00000 n 0004774114 00000 n 0004774254 00000 n 0004774394 00000 n 0004774534 00000 n 0004774674 00000 n 0004774814 00000 n 0004774954 00000 n 0004775094 00000 n 0004775234 00000 n 0004775374 00000 n 0004775514 00000 n 0004775654 00000 n 0004775794 00000 n 0004775934 00000 n 0004776074 00000 n 0004776214 00000 n 0004776354 00000 n 0004776494 00000 n 0004776634 00000 n 0004776774 00000 n 0004776914 00000 n 0004777054 00000 n 0004777194 00000 n 0004777334 00000 n 0004777474 00000 n 0004777614 00000 n 0004777754 00000 n 0004777894 00000 n 0004778034 00000 n 0004778174 00000 n 0004778314 00000 n 0004778454 00000 n 0004778594 00000 n 0004778734 00000 n 0004778874 00000 n 0004779014 00000 n 0004779154 00000 n 0004779294 00000 n 0004779434 00000 n 0004779574 00000 n 0004779714 00000 n 0004779854 00000 n 0004779994 00000 n 0004780134 00000 n 0004780274 00000 n 0004780414 00000 n 0004780554 00000 n 0004780694 00000 n 0004780834 00000 n 0004780974 00000 n 0004781114 00000 n 0004781254 00000 n 0004781394 00000 n 0004781534 00000 n 0004781674 00000 n 0004781814 00000 n 0004781954 00000 n 0004782094 00000 n 0004782234 00000 n 0004782374 00000 n 0004782514 00000 n 0004782654 00000 n 0004782794 00000 n 0004782934 00000 n 0004783074 00000 n 0004783214 00000 n 0004783354 00000 n 0004783494 00000 n 0004783634 00000 n 0004783774 00000 n 0004783914 00000 n 0004784054 00000 n 0004784194 00000 n 0004784334 00000 n 0004784474 00000 n 0004784614 00000 n 0004784754 00000 n 0004784894 00000 n 0004785034 00000 n 0004785174 00000 n 0004785314 00000 n 0004785454 00000 n 0004785594 00000 n 0004785734 00000 n 0004785874 00000 n 0004786014 00000 n 0004786154 00000 n 0004786294 00000 n 0004786434 00000 n 0004786574 00000 n 0004786714 00000 n 0004786854 00000 n 0004786994 00000 n 0004787134 00000 n 0004787274 00000 n 0004787414 00000 n 0004787554 00000 n 0004787694 00000 n 0004787834 00000 n 0004787974 00000 n 0004788114 00000 n 0004788254 00000 n 0004788394 00000 n 0004788534 00000 n 0004788674 00000 n 0004788814 00000 n 0004788954 00000 n 0004789094 00000 n 0004789234 00000 n 0004789374 00000 n 0004789514 00000 n 0004789654 00000 n 0004789794 00000 n 0004789934 00000 n 0004790074 00000 n 0004790214 00000 n 0004790354 00000 n 0004790494 00000 n 0004790634 00000 n 0004790774 00000 n 0004790914 00000 n 0004791054 00000 n 0004791194 00000 n 0004791334 00000 n 0004791474 00000 n 0004791614 00000 n 0004791754 00000 n 0004791894 00000 n 0004792034 00000 n 0004792174 00000 n 0004792314 00000 n 0004792454 00000 n 0004792594 00000 n 0004792734 00000 n 0004792874 00000 n 0004793014 00000 n 0004793154 00000 n 0004793294 00000 n 0004793434 00000 n 0004793574 00000 n 0004793714 00000 n 0004793854 00000 n 0004793994 00000 n 0004794134 00000 n 0004794274 00000 n 0004794414 00000 n 0004794554 00000 n 0004794694 00000 n 0004794834 00000 n 0004794974 00000 n 0004795114 00000 n 0004795254 00000 n 0004795394 00000 n 0004795534 00000 n 0004795674 00000 n 0004795814 00000 n 0004795954 00000 n 0004796094 00000 n 0004796234 00000 n 0004796374 00000 n 0004796514 00000 n 0004796654 00000 n 0004796794 00000 n 0004796934 00000 n 0004797074 00000 n 0004797214 00000 n 0004797354 00000 n 0004797494 00000 n 0004797634 00000 n 0004797774 00000 n 0004797914 00000 n 0004798054 00000 n 0004798194 00000 n 0004798334 00000 n 0004798474 00000 n 0004798614 00000 n 0004798754 00000 n 0004798894 00000 n 0004799034 00000 n 0004799174 00000 n 0004799314 00000 n 0004799454 00000 n 0004799594 00000 n 0004799734 00000 n 0004799874 00000 n 0004800014 00000 n 0004800154 00000 n 0004800294 00000 n 0004800434 00000 n 0004800574 00000 n 0004800714 00000 n 0004800854 00000 n 0004800994 00000 n 0004801134 00000 n 0004801274 00000 n 0004801414 00000 n 0004801554 00000 n 0004801694 00000 n 0004801834 00000 n 0004801974 00000 n 0004802114 00000 n 0004802254 00000 n 0004802394 00000 n 0004802534 00000 n 0004802674 00000 n 0004802814 00000 n 0004802954 00000 n 0004803094 00000 n 0004803234 00000 n 0004803374 00000 n 0004803514 00000 n 0004803654 00000 n 0004803794 00000 n 0004803934 00000 n 0004804074 00000 n 0004804214 00000 n 0004804354 00000 n 0004804494 00000 n 0004804634 00000 n 0004804774 00000 n 0004804914 00000 n 0004805054 00000 n 0004805194 00000 n 0004805334 00000 n 0004805474 00000 n 0004805614 00000 n 0004805754 00000 n 0004805894 00000 n 0004806034 00000 n 0004806174 00000 n 0004806314 00000 n 0004806454 00000 n 0004806594 00000 n 0004806734 00000 n 0004806874 00000 n 0004807014 00000 n 0004807154 00000 n 0004807294 00000 n 0004807434 00000 n 0004807574 00000 n 0004807714 00000 n 0004807854 00000 n 0004807994 00000 n 0004808134 00000 n 0004808274 00000 n 0004808414 00000 n 0004808554 00000 n 0004808694 00000 n 0004808834 00000 n 0004808974 00000 n 0004809114 00000 n 0004809254 00000 n 0004809394 00000 n 0004809534 00000 n 0004809674 00000 n 0004809814 00000 n 0004809954 00000 n 0004810094 00000 n 0004810234 00000 n 0004810374 00000 n 0004810514 00000 n 0004810654 00000 n 0004810794 00000 n 0004810934 00000 n 0004811074 00000 n 0004811214 00000 n 0004811354 00000 n 0004811494 00000 n 0004811634 00000 n 0004811774 00000 n 0004811914 00000 n 0004812054 00000 n 0004812194 00000 n 0004812334 00000 n 0004812474 00000 n 0004812614 00000 n 0004812754 00000 n 0004812894 00000 n 0004813034 00000 n 0004813174 00000 n 0004813314 00000 n 0004813454 00000 n 0004813594 00000 n 0004813734 00000 n 0004813874 00000 n 0004814014 00000 n 0004814154 00000 n 0004814294 00000 n 0004814434 00000 n 0004814574 00000 n 0004814714 00000 n 0004814854 00000 n 0004814994 00000 n 0004815134 00000 n 0004815274 00000 n 0004815414 00000 n 0004815554 00000 n 0004815694 00000 n 0004815834 00000 n 0004815974 00000 n 0004816114 00000 n 0004816254 00000 n 0004816394 00000 n 0004816534 00000 n 0004816674 00000 n 0004816814 00000 n 0004816954 00000 n 0004817094 00000 n 0004817234 00000 n 0004817374 00000 n 0004817514 00000 n 0004817654 00000 n 0004817794 00000 n 0004817934 00000 n 0004818074 00000 n 0004818214 00000 n 0004818354 00000 n 0004818494 00000 n 0004818634 00000 n 0004818774 00000 n 0004818914 00000 n 0004819054 00000 n 0004819194 00000 n 0004819334 00000 n 0004819474 00000 n 0004819614 00000 n 0004819754 00000 n 0004819894 00000 n 0004820034 00000 n 0004820174 00000 n 0004820314 00000 n 0004820454 00000 n 0004820594 00000 n 0004820734 00000 n 0004820874 00000 n 0004821014 00000 n 0004821154 00000 n 0004821294 00000 n 0004821434 00000 n 0004821574 00000 n 0004821714 00000 n 0004821854 00000 n 0004821994 00000 n 0004822134 00000 n 0004822274 00000 n 0004822414 00000 n 0004822554 00000 n 0004822694 00000 n 0004822834 00000 n 0004822974 00000 n 0004823114 00000 n 0004823254 00000 n 0004823394 00000 n 0004823534 00000 n 0004823674 00000 n 0004823718 00000 n 0004823762 00000 n 0004823806 00000 n 0004823850 00000 n 0004823894 00000 n 0004823938 00000 n 0004823982 00000 n 0004824026 00000 n 0004824070 00000 n 0004824114 00000 n 0004824158 00000 n 0004824202 00000 n 0004824246 00000 n 0004824290 00000 n 0004824334 00000 n 0004824378 00000 n 0004824422 00000 n 0004824466 00000 n 0004824510 00000 n 0004824554 00000 n 0004824598 00000 n 0004824642 00000 n 0004824686 00000 n 0004824730 00000 n 0004824774 00000 n 0004824818 00000 n 0004824862 00000 n 0004824906 00000 n 0004824950 00000 n 0004824994 00000 n 0004825038 00000 n 0004825082 00000 n 0004825126 00000 n 0004825170 00000 n 0004825214 00000 n 0004825258 00000 n 0004825302 00000 n 0004825346 00000 n 0004825390 00000 n 0004825434 00000 n 0004825478 00000 n 0004825522 00000 n 0004825566 00000 n 0004825610 00000 n 0004825654 00000 n 0004825698 00000 n 0004825742 00000 n 0004825786 00000 n 0004825830 00000 n 0004825874 00000 n 0004825918 00000 n 0004825962 00000 n 0004826006 00000 n 0004826050 00000 n 0004826094 00000 n 0004826138 00000 n 0004826182 00000 n 0004826226 00000 n 0004826270 00000 n 0004826314 00000 n 0004826358 00000 n 0004826402 00000 n 0004826446 00000 n 0004826490 00000 n 0004826534 00000 n 0004826578 00000 n 0004826622 00000 n 0004826666 00000 n 0004826710 00000 n 0004826754 00000 n 0004826798 00000 n 0004826842 00000 n 0004826886 00000 n 0004826930 00000 n 0004826974 00000 n 0004827018 00000 n 0004827062 00000 n 0004827106 00000 n 0004827150 00000 n 0004827194 00000 n 0004827238 00000 n 0004827282 00000 n 0004827326 00000 n 0004827370 00000 n 0004827414 00000 n 0004827458 00000 n 0004827502 00000 n 0004827546 00000 n 0004827590 00000 n 0004827634 00000 n 0004827678 00000 n 0004827722 00000 n 0004827766 00000 n 0004827810 00000 n 0004827854 00000 n 0004827898 00000 n 0004827942 00000 n 0004827986 00000 n 0004828030 00000 n 0004828074 00000 n 0004828118 00000 n 0004828162 00000 n 0004828206 00000 n 0004828250 00000 n 0004828294 00000 n 0004828338 00000 n 0004828382 00000 n 0004828426 00000 n 0004828470 00000 n 0004828514 00000 n 0004828558 00000 n 0004828602 00000 n 0004828646 00000 n 0004828690 00000 n 0004828734 00000 n 0004828778 00000 n 0004828822 00000 n 0004828866 00000 n 0004828910 00000 n 0004828954 00000 n 0004828998 00000 n 0004829042 00000 n 0004829086 00000 n 0004829130 00000 n 0004829174 00000 n 0004829218 00000 n 0004829262 00000 n 0004829306 00000 n 0004829350 00000 n 0004829394 00000 n 0004829438 00000 n 0004829482 00000 n 0004829526 00000 n 0004829570 00000 n 0004829614 00000 n 0004829658 00000 n 0004829702 00000 n 0004829746 00000 n 0004829790 00000 n 0004829834 00000 n 0004829878 00000 n 0004829922 00000 n 0004829966 00000 n 0004830010 00000 n 0004830054 00000 n 0004830098 00000 n 0004830142 00000 n 0004830186 00000 n 0004830230 00000 n 0004830274 00000 n 0004830318 00000 n 0004830362 00000 n 0004830406 00000 n 0004830450 00000 n 0004830494 00000 n 0004830538 00000 n 0004830582 00000 n 0004830626 00000 n 0004830670 00000 n 0004830714 00000 n 0004830758 00000 n 0004830802 00000 n 0004830846 00000 n 0004830890 00000 n 0004830934 00000 n 0004830978 00000 n 0004831022 00000 n 0004831066 00000 n 0004831110 00000 n 0004831154 00000 n 0004831198 00000 n 0004831242 00000 n 0004831286 00000 n 0004831330 00000 n 0004831374 00000 n 0004831418 00000 n 0004831462 00000 n 0004831506 00000 n 0004831550 00000 n 0004831594 00000 n 0004831638 00000 n 0004831682 00000 n 0004831726 00000 n 0004831770 00000 n 0004831814 00000 n 0004831858 00000 n 0004831902 00000 n 0004831946 00000 n 0004831990 00000 n 0004832034 00000 n 0004832078 00000 n 0004832122 00000 n 0004832166 00000 n 0004832210 00000 n 0004832254 00000 n 0004832298 00000 n 0004832342 00000 n 0004832386 00000 n 0004832430 00000 n 0004832474 00000 n 0004832518 00000 n 0004832562 00000 n 0004832606 00000 n 0004832650 00000 n 0004832694 00000 n 0004832738 00000 n 0004832782 00000 n 0004832826 00000 n 0004832870 00000 n 0004832914 00000 n 0004832958 00000 n 0004833002 00000 n 0004833046 00000 n 0004833090 00000 n 0004833134 00000 n 0004833178 00000 n 0004833222 00000 n 0004833266 00000 n 0004833310 00000 n 0004833354 00000 n 0004833398 00000 n 0004833442 00000 n 0004833486 00000 n 0004833530 00000 n 0004833574 00000 n 0004833618 00000 n 0004833662 00000 n 0004833706 00000 n 0004833750 00000 n 0004833794 00000 n 0004833838 00000 n 0004833882 00000 n 0004833926 00000 n 0004833970 00000 n 0004834014 00000 n 0004834058 00000 n 0004834102 00000 n 0004834146 00000 n 0004834190 00000 n 0004834234 00000 n 0004834278 00000 n 0004834322 00000 n 0004834366 00000 n 0004834410 00000 n 0004834454 00000 n 0004834498 00000 n 0004834542 00000 n 0004834586 00000 n 0004834630 00000 n 0004834674 00000 n 0004834718 00000 n 0004834762 00000 n 0004834806 00000 n 0004834850 00000 n 0004834894 00000 n 0004834938 00000 n 0004834982 00000 n 0004835026 00000 n 0004835070 00000 n 0004835114 00000 n 0004835158 00000 n 0004835202 00000 n 0004835246 00000 n 0004835290 00000 n 0004835334 00000 n 0004835378 00000 n 0004835422 00000 n 0004835466 00000 n 0004835510 00000 n 0004835554 00000 n 0004835598 00000 n 0004835642 00000 n 0004835686 00000 n 0004835730 00000 n 0004835774 00000 n 0004835818 00000 n 0004835862 00000 n 0004835906 00000 n 0004835950 00000 n 0004835994 00000 n 0004836038 00000 n 0004836082 00000 n 0004836126 00000 n 0004836170 00000 n 0004836214 00000 n 0004836258 00000 n 0004836302 00000 n 0004836346 00000 n 0004836390 00000 n 0004836434 00000 n 0004836478 00000 n 0004836522 00000 n 0004836566 00000 n 0004836610 00000 n 0004836654 00000 n 0004836698 00000 n 0004836742 00000 n 0004836786 00000 n 0004836830 00000 n 0004836874 00000 n 0004836918 00000 n 0004836962 00000 n 0004837006 00000 n 0004837050 00000 n 0004837094 00000 n 0004837138 00000 n 0004837182 00000 n 0004837226 00000 n 0004837270 00000 n 0004837314 00000 n 0004837358 00000 n 0004837402 00000 n 0004837446 00000 n 0004837490 00000 n 0004837534 00000 n 0004837578 00000 n 0004837622 00000 n 0004837666 00000 n 0004837710 00000 n 0004837754 00000 n 0004837798 00000 n 0004837842 00000 n 0004837886 00000 n 0004837930 00000 n 0004837974 00000 n 0004838018 00000 n 0004838062 00000 n 0004838106 00000 n 0004838150 00000 n 0004838194 00000 n 0004838238 00000 n 0004838282 00000 n 0004838613 00000 n 0004839035 00000 n 0004839079 00000 n 0004839123 00000 n 0004839165 00000 n 0004839209 00000 n 0004839252 00000 n 0004839296 00000 n 0004839340 00000 n 0004839384 00000 n 0004839425 00000 n 0004839468 00000 n 0004839511 00000 n 0004839555 00000 n 0004839623 00000 n 0004839886 00000 n 0004839985 00000 n 0004843561 00000 n 0004843724 00000 n 0004843766 00000 n 0004844097 00000 n 0004844519 00000 n 0004844587 00000 n 0004844836 00000 n 0004844935 00000 n 0004846896 00000 n 0004847227 00000 n 0004847649 00000 n 0004847691 00000 n 0004847735 00000 n 0004847778 00000 n 0004847821 00000 n 0004847889 00000 n 0004848124 00000 n 0004848223 00000 n 0004852542 00000 n 0004852873 00000 n 0004853295 00000 n 0004853338 00000 n 0004853381 00000 n 0004853423 00000 n 0004853465 00000 n 0004853736 00000 n 0004854153 00000 n 0004854221 00000 n 0004854441 00000 n 0004854540 00000 n 0004857356 00000 n 0004857687 00000 n 0004858109 00000 n 0004858153 00000 n 0004858196 00000 n 0004858264 00000 n 0004858513 00000 n 0004858612 00000 n 0004863112 00000 n 0004863278 00000 n 0004863320 00000 n 0004863651 00000 n 0004864073 00000 n 0004864141 00000 n 0004864361 00000 n 0004864460 00000 n 0004866544 00000 n 0004866875 00000 n 0004867297 00000 n 0004867341 00000 n 0004867409 00000 n 0004867629 00000 n 0004867728 00000 n 0004871978 00000 n 0004872309 00000 n 0004872731 00000 n 0004872774 00000 n 0004872859 00000 n 0004872902 00000 n 0004872945 00000 n 0004872989 00000 n 0004873057 00000 n 0004873277 00000 n 0004873376 00000 n 0004878007 00000 n 0004878338 00000 n 0004878760 00000 n 0004878804 00000 n 0004878872 00000 n 0004879107 00000 n 0004879206 00000 n 0004883591 00000 n 0004883731 00000 n 0004883871 00000 n 0004884011 00000 n 0004884151 00000 n 0004884291 00000 n 0004884431 00000 n 0004884571 00000 n 0004884711 00000 n 0004884851 00000 n 0004884991 00000 n 0004885131 00000 n 0004885271 00000 n 0004885411 00000 n 0004885551 00000 n 0004885691 00000 n 0004885831 00000 n 0004885971 00000 n 0004886111 00000 n 0004886251 00000 n 0004886391 00000 n 0004886531 00000 n 0004886671 00000 n 0004886811 00000 n 0004886951 00000 n 0004887091 00000 n 0004887231 00000 n 0004887371 00000 n 0004887511 00000 n 0004887651 00000 n 0004887791 00000 n 0004887931 00000 n 0004888071 00000 n 0004888211 00000 n 0004888351 00000 n 0004888491 00000 n 0004888631 00000 n 0004888771 00000 n 0004888911 00000 n 0004889051 00000 n 0004889191 00000 n 0004889331 00000 n 0004889471 00000 n 0004889611 00000 n 0004889751 00000 n 0004889891 00000 n 0004890031 00000 n 0004890171 00000 n 0004890311 00000 n 0004890451 00000 n 0004890591 00000 n 0004890731 00000 n 0004890871 00000 n 0004891011 00000 n 0004891151 00000 n 0004891291 00000 n 0004891431 00000 n 0004891571 00000 n 0004891711 00000 n 0004891851 00000 n 0004891991 00000 n 0004892131 00000 n 0004892271 00000 n 0004892411 00000 n 0004892551 00000 n 0004892691 00000 n 0004892831 00000 n 0004892971 00000 n 0004893111 00000 n 0004893251 00000 n 0004893391 00000 n 0004893531 00000 n 0004893671 00000 n 0004893811 00000 n 0004893951 00000 n 0004894091 00000 n 0004894231 00000 n 0004894371 00000 n 0004894511 00000 n 0004894651 00000 n 0004894791 00000 n 0004894931 00000 n 0004895071 00000 n 0004895211 00000 n 0004895351 00000 n 0004895491 00000 n 0004895631 00000 n 0004895771 00000 n 0004895911 00000 n 0004896051 00000 n 0004896191 00000 n 0004896331 00000 n 0004896471 00000 n 0004896611 00000 n 0004896751 00000 n 0004896891 00000 n 0004897031 00000 n 0004897171 00000 n 0004897311 00000 n 0004897451 00000 n 0004897591 00000 n 0004897731 00000 n 0004897871 00000 n 0004898011 00000 n 0004898151 00000 n 0004898291 00000 n 0004898431 00000 n 0004898571 00000 n 0004898711 00000 n 0004898851 00000 n 0004898991 00000 n 0004899131 00000 n 0004899271 00000 n 0004899411 00000 n 0004899551 00000 n 0004899691 00000 n 0004899831 00000 n 0004899971 00000 n 0004900111 00000 n 0004900251 00000 n 0004900391 00000 n 0004900531 00000 n 0004900671 00000 n 0004900811 00000 n 0004900951 00000 n 0004901091 00000 n 0004901231 00000 n 0004901371 00000 n 0004901511 00000 n 0004901651 00000 n 0004901791 00000 n 0004901931 00000 n 0004902071 00000 n 0004902211 00000 n 0004902351 00000 n 0004902491 00000 n 0004902631 00000 n 0004902771 00000 n 0004902911 00000 n 0004903051 00000 n 0004903191 00000 n 0004903331 00000 n 0004903471 00000 n 0004903611 00000 n 0004903751 00000 n 0004903891 00000 n 0004904031 00000 n 0004904171 00000 n 0004904311 00000 n 0004904451 00000 n 0004904591 00000 n 0004904731 00000 n 0004904871 00000 n 0004905011 00000 n 0004905151 00000 n 0004905291 00000 n 0004905431 00000 n 0004905571 00000 n 0004905711 00000 n 0004905851 00000 n 0004905991 00000 n 0004906131 00000 n 0004906271 00000 n 0004906411 00000 n 0004906551 00000 n 0004906691 00000 n 0004906831 00000 n 0004906971 00000 n 0004907111 00000 n 0004907251 00000 n 0004907391 00000 n 0004907531 00000 n 0004907671 00000 n 0004907811 00000 n 0004907951 00000 n 0004908091 00000 n 0004908231 00000 n 0004908371 00000 n 0004908511 00000 n 0004908651 00000 n 0004908791 00000 n 0004908931 00000 n 0004909071 00000 n 0004909211 00000 n 0004909351 00000 n 0004909491 00000 n 0004909631 00000 n 0004909771 00000 n 0004909911 00000 n 0004910051 00000 n 0004910191 00000 n 0004910331 00000 n 0004910471 00000 n 0004910611 00000 n 0004910751 00000 n 0004910891 00000 n 0004911031 00000 n 0004911171 00000 n 0004911311 00000 n 0004911451 00000 n 0004911591 00000 n 0004911731 00000 n 0004911871 00000 n 0004912011 00000 n 0004912151 00000 n 0004912291 00000 n 0004912431 00000 n 0004912571 00000 n 0004912711 00000 n 0004912851 00000 n 0004912991 00000 n 0004913131 00000 n 0004913271 00000 n 0004913411 00000 n 0004913551 00000 n 0004913691 00000 n 0004913831 00000 n 0004913971 00000 n 0004914111 00000 n 0004914251 00000 n 0004914391 00000 n 0004914531 00000 n 0004914671 00000 n 0004914811 00000 n 0004914951 00000 n 0004915091 00000 n 0004915231 00000 n 0004915371 00000 n 0004915511 00000 n 0004915651 00000 n 0004915791 00000 n 0004915931 00000 n 0004916071 00000 n 0004916211 00000 n 0004916351 00000 n 0004916491 00000 n 0004916631 00000 n 0004916771 00000 n 0004916911 00000 n 0004917051 00000 n 0004917191 00000 n 0004917331 00000 n 0004917471 00000 n 0004917611 00000 n 0004917751 00000 n 0004917891 00000 n 0004918031 00000 n 0004918171 00000 n 0004918311 00000 n 0004918451 00000 n 0004918591 00000 n 0004918731 00000 n 0004918871 00000 n 0004919011 00000 n 0004919151 00000 n 0004919291 00000 n 0004919431 00000 n 0004919571 00000 n 0004919711 00000 n 0004919851 00000 n 0004919991 00000 n 0004920131 00000 n 0004920271 00000 n 0004920411 00000 n 0004920551 00000 n 0004920691 00000 n 0004920831 00000 n 0004920971 00000 n 0004921111 00000 n 0004921251 00000 n 0004921391 00000 n 0004921531 00000 n 0004921671 00000 n 0004921811 00000 n 0004921951 00000 n 0004922091 00000 n 0004922231 00000 n 0004922371 00000 n 0004922511 00000 n 0004922651 00000 n 0004922791 00000 n 0004922931 00000 n 0004923071 00000 n 0004923211 00000 n 0004923351 00000 n 0004923491 00000 n 0004923631 00000 n 0004923771 00000 n 0004923911 00000 n 0004924051 00000 n 0004924191 00000 n 0004924331 00000 n 0004924471 00000 n 0004924611 00000 n 0004924751 00000 n 0004924891 00000 n 0004925031 00000 n 0004925171 00000 n 0004925311 00000 n 0004925451 00000 n 0004925591 00000 n 0004925731 00000 n 0004925871 00000 n 0004926011 00000 n 0004926151 00000 n 0004926291 00000 n 0004926431 00000 n 0004926571 00000 n 0004926711 00000 n 0004926851 00000 n 0004926991 00000 n 0004927131 00000 n 0004927271 00000 n 0004927411 00000 n 0004927551 00000 n 0004927691 00000 n 0004927831 00000 n 0004927971 00000 n 0004928111 00000 n 0004928251 00000 n 0004928391 00000 n 0004928531 00000 n 0004928671 00000 n 0004928811 00000 n 0004928951 00000 n 0004929091 00000 n 0004929231 00000 n 0004929371 00000 n 0004929511 00000 n 0004929651 00000 n 0004929791 00000 n 0004929931 00000 n 0004930071 00000 n 0004930211 00000 n 0004930351 00000 n 0004930491 00000 n 0004930631 00000 n 0004930771 00000 n 0004930911 00000 n 0004931051 00000 n 0004931191 00000 n 0004931331 00000 n 0004931471 00000 n 0004931611 00000 n 0004931751 00000 n 0004931891 00000 n 0004932031 00000 n 0004932171 00000 n 0004932311 00000 n 0004932355 00000 n 0004932399 00000 n 0004932443 00000 n 0004932487 00000 n 0004932531 00000 n 0004932575 00000 n 0004932619 00000 n 0004932663 00000 n 0004932707 00000 n 0004932751 00000 n 0004932795 00000 n 0004932839 00000 n 0004932883 00000 n 0004932927 00000 n 0004932971 00000 n 0004933015 00000 n 0004933059 00000 n 0004933103 00000 n 0004933147 00000 n 0004933191 00000 n 0004933235 00000 n 0004933279 00000 n 0004933323 00000 n 0004933367 00000 n 0004933411 00000 n 0004933455 00000 n 0004933499 00000 n 0004933543 00000 n 0004933587 00000 n 0004933631 00000 n 0004933675 00000 n 0004933719 00000 n 0004933763 00000 n 0004933807 00000 n 0004933851 00000 n 0004933895 00000 n 0004933939 00000 n 0004933983 00000 n 0004934027 00000 n 0004934071 00000 n 0004934115 00000 n 0004934159 00000 n 0004934203 00000 n 0004934247 00000 n 0004934291 00000 n 0004934335 00000 n 0004934379 00000 n 0004934423 00000 n 0004934467 00000 n 0004934511 00000 n 0004934555 00000 n 0004934599 00000 n 0004934643 00000 n 0004934687 00000 n 0004934731 00000 n 0004934775 00000 n 0004934819 00000 n 0004934863 00000 n 0004934907 00000 n 0004934951 00000 n 0004934995 00000 n 0004935039 00000 n 0004935083 00000 n 0004935127 00000 n 0004935171 00000 n 0004935215 00000 n 0004935259 00000 n 0004935303 00000 n 0004935347 00000 n 0004935391 00000 n 0004935435 00000 n 0004935479 00000 n 0004935523 00000 n 0004935567 00000 n 0004935611 00000 n 0004935655 00000 n 0004935699 00000 n 0004935743 00000 n 0004935787 00000 n 0004935831 00000 n 0004935875 00000 n 0004935919 00000 n 0004935963 00000 n 0004936007 00000 n 0004936051 00000 n 0004936095 00000 n 0004936139 00000 n 0004936183 00000 n 0004936227 00000 n 0004936271 00000 n 0004936315 00000 n 0004936359 00000 n 0004936403 00000 n 0004936447 00000 n 0004936491 00000 n 0004936535 00000 n 0004936579 00000 n 0004936623 00000 n 0004936667 00000 n 0004936711 00000 n 0004936755 00000 n 0004936799 00000 n 0004936843 00000 n 0004936887 00000 n 0004936931 00000 n 0004936975 00000 n 0004937019 00000 n 0004937063 00000 n 0004937107 00000 n 0004937151 00000 n 0004937195 00000 n 0004937239 00000 n 0004937283 00000 n 0004937327 00000 n 0004937371 00000 n 0004937415 00000 n 0004937459 00000 n 0004937503 00000 n 0004937547 00000 n 0004937591 00000 n 0004937635 00000 n 0004937679 00000 n 0004937723 00000 n 0004937767 00000 n 0004937811 00000 n 0004937855 00000 n 0004937899 00000 n 0004937943 00000 n 0004937987 00000 n 0004938031 00000 n 0004938075 00000 n 0004938119 00000 n 0004938163 00000 n 0004938207 00000 n 0004938251 00000 n 0004938295 00000 n 0004938339 00000 n 0004938383 00000 n 0004938427 00000 n 0004938471 00000 n 0004938515 00000 n 0004938559 00000 n 0004938603 00000 n 0004938647 00000 n 0004938691 00000 n 0004938735 00000 n 0004938779 00000 n 0004938823 00000 n 0004938867 00000 n 0004938911 00000 n 0004938955 00000 n 0004938999 00000 n 0004939043 00000 n 0004939087 00000 n 0004939131 00000 n 0004939175 00000 n 0004939219 00000 n 0004939263 00000 n 0004939307 00000 n 0004939351 00000 n 0004939395 00000 n 0004939439 00000 n 0004939483 00000 n 0004939527 00000 n 0004939571 00000 n 0004939615 00000 n 0004939659 00000 n 0004939703 00000 n 0004939747 00000 n 0004939791 00000 n 0004939835 00000 n 0004939879 00000 n 0004939923 00000 n 0004939967 00000 n 0004940011 00000 n 0004940055 00000 n 0004940099 00000 n 0004940143 00000 n 0004940187 00000 n 0004940231 00000 n 0004940275 00000 n 0004940319 00000 n 0004940363 00000 n 0004940407 00000 n 0004940451 00000 n 0004940495 00000 n 0004940539 00000 n 0004940583 00000 n 0004940627 00000 n 0004940671 00000 n 0004940715 00000 n 0004940759 00000 n 0004940803 00000 n 0004940847 00000 n 0004940891 00000 n 0004940935 00000 n 0004940979 00000 n 0004941023 00000 n 0004941067 00000 n 0004941111 00000 n 0004941155 00000 n 0004941199 00000 n 0004941243 00000 n 0004941287 00000 n 0004941331 00000 n 0004941375 00000 n 0004941419 00000 n 0004941463 00000 n 0004941507 00000 n 0004941551 00000 n 0004941595 00000 n 0004941639 00000 n 0004941683 00000 n 0004941727 00000 n 0004941771 00000 n 0004941815 00000 n 0004941859 00000 n 0004941903 00000 n 0004941947 00000 n 0004941991 00000 n 0004942035 00000 n 0004942079 00000 n 0004942123 00000 n 0004942167 00000 n 0004942211 00000 n 0004942255 00000 n 0004942299 00000 n 0004942343 00000 n 0004942387 00000 n 0004942431 00000 n 0004942475 00000 n 0004942519 00000 n 0004942850 00000 n 0004943272 00000 n 0004943316 00000 n 0004943360 00000 n 0004943404 00000 n 0004943448 00000 n 0004943516 00000 n 0004943736 00000 n 0004943835 00000 n 0004947903 00000 n 0004948234 00000 n 0004948656 00000 n 0004948700 00000 n 0004948743 00000 n 0004948786 00000 n 0004948830 00000 n 0004948873 00000 n 0004948916 00000 n 0004948960 00000 n 0004949003 00000 n 0004949047 00000 n 0004949090 00000 n 0004949158 00000 n 0004949435 00000 n 0004949534 00000 n 0004953589 00000 n 0004953754 00000 n 0004953796 00000 n 0004954127 00000 n 0004954549 00000 n 0004954592 00000 n 0004954636 00000 n 0004954679 00000 n 0004954721 00000 n 0004954764 00000 n 0004954808 00000 n 0004954851 00000 n 0004954893 00000 n 0004955089 00000 n 0004955527 00000 n 0004955977 00000 n 0004956400 00000 n 0004956731 00000 n 0004957037 00000 n 0004957338 00000 n 0004958616 00000 n 0004960561 00000 n 0004962434 00000 n 0004996207 00000 n 0004997388 00000 n 0004997505 00000 n 0004997622 00000 n 0004997695 00000 n 0004997768 00000 n 0004997792 00000 n 0004998120 00000 n 0004998200 00000 n 0004999679 00000 n 0004999721 00000 n 0005002785 00000 n 0005003368 00000 n 0005003959 00000 n 0005004439 00000 n 0005004737 00000 n 0005004780 00000 n 0005004848 00000 n 0005005068 00000 n 0005005167 00000 n 0005008944 00000 n 0005009275 00000 n 0005009697 00000 n 0005009765 00000 n 0005009985 00000 n 0005010084 00000 n 0005011752 00000 n 0005012083 00000 n 0005012505 00000 n 0005012548 00000 n 0005012592 00000 n 0005012660 00000 n 0005012894 00000 n 0005012993 00000 n 0005017415 00000 n 0005017581 00000 n 0005017623 00000 n 0005017954 00000 n 0005018376 00000 n 0005018420 00000 n 0005018463 00000 n 0005018506 00000 n 0005018574 00000 n 0005018823 00000 n 0005018922 00000 n 0005022414 00000 n 0005022579 00000 n 0005022621 00000 n 0005022952 00000 n 0005023374 00000 n 0005023417 00000 n 0005023459 00000 n 0005023503 00000 n 0005023547 00000 n 0005023589 00000 n 0005023657 00000 n 0005023906 00000 n 0005024005 00000 n 0005028654 00000 n 0005028821 00000 n 0005028864 00000 n 0005029195 00000 n 0005029617 00000 n 0005029660 00000 n 0005029704 00000 n 0005029747 00000 n 0005029790 00000 n 0005029834 00000 n 0005029877 00000 n 0005029921 00000 n 0005029989 00000 n 0005030209 00000 n 0005030308 00000 n 0005034902 00000 n 0005035042 00000 n 0005035182 00000 n 0005035322 00000 n 0005035462 00000 n 0005035602 00000 n 0005035742 00000 n 0005035882 00000 n 0005036022 00000 n 0005036162 00000 n 0005036302 00000 n 0005036442 00000 n 0005036582 00000 n 0005036722 00000 n 0005036862 00000 n 0005037002 00000 n 0005037142 00000 n 0005037282 00000 n 0005037422 00000 n 0005037562 00000 n 0005037702 00000 n 0005037842 00000 n 0005037982 00000 n 0005038122 00000 n 0005038262 00000 n 0005038402 00000 n 0005038542 00000 n 0005038682 00000 n 0005038822 00000 n 0005038962 00000 n 0005039102 00000 n 0005039242 00000 n 0005039382 00000 n 0005039522 00000 n 0005039662 00000 n 0005039802 00000 n 0005039942 00000 n 0005040082 00000 n 0005040222 00000 n 0005040362 00000 n 0005040502 00000 n 0005040642 00000 n 0005040782 00000 n 0005040922 00000 n 0005041062 00000 n 0005041202 00000 n 0005041342 00000 n 0005041482 00000 n 0005041622 00000 n 0005041762 00000 n 0005041902 00000 n 0005042042 00000 n 0005042182 00000 n 0005042322 00000 n 0005042462 00000 n 0005042602 00000 n 0005042742 00000 n 0005042882 00000 n 0005043022 00000 n 0005043162 00000 n 0005043302 00000 n 0005043442 00000 n 0005043582 00000 n 0005043722 00000 n 0005043862 00000 n 0005044002 00000 n 0005044142 00000 n 0005044282 00000 n 0005044422 00000 n 0005044562 00000 n 0005044702 00000 n 0005044842 00000 n 0005044982 00000 n 0005045122 00000 n 0005045262 00000 n 0005045402 00000 n 0005045542 00000 n 0005045682 00000 n 0005045822 00000 n 0005045962 00000 n 0005046102 00000 n 0005046242 00000 n 0005046382 00000 n 0005046522 00000 n 0005046662 00000 n 0005046802 00000 n 0005046942 00000 n 0005047082 00000 n 0005047222 00000 n 0005047362 00000 n 0005047502 00000 n 0005047642 00000 n 0005047782 00000 n 0005047922 00000 n 0005048062 00000 n 0005048202 00000 n 0005048342 00000 n 0005048482 00000 n 0005048622 00000 n 0005048762 00000 n 0005048902 00000 n 0005049042 00000 n 0005049182 00000 n 0005049322 00000 n 0005049462 00000 n 0005049602 00000 n 0005049742 00000 n 0005049882 00000 n 0005050022 00000 n 0005050162 00000 n 0005050302 00000 n 0005050442 00000 n 0005050582 00000 n 0005050722 00000 n 0005050862 00000 n 0005051002 00000 n 0005051142 00000 n 0005051282 00000 n 0005051422 00000 n 0005051562 00000 n 0005051702 00000 n 0005051842 00000 n 0005051982 00000 n 0005052122 00000 n 0005052262 00000 n 0005052402 00000 n 0005052542 00000 n 0005052682 00000 n 0005052822 00000 n 0005052962 00000 n 0005053102 00000 n 0005053242 00000 n 0005053382 00000 n 0005053522 00000 n 0005053662 00000 n 0005053802 00000 n 0005053942 00000 n 0005054082 00000 n 0005054222 00000 n 0005054362 00000 n 0005054502 00000 n 0005054642 00000 n 0005054782 00000 n 0005054922 00000 n 0005055062 00000 n 0005055202 00000 n 0005055342 00000 n 0005055482 00000 n 0005055622 00000 n 0005055762 00000 n 0005055902 00000 n 0005056042 00000 n 0005056182 00000 n 0005056322 00000 n 0005056462 00000 n 0005056602 00000 n 0005056742 00000 n 0005056882 00000 n 0005057022 00000 n 0005057162 00000 n 0005057302 00000 n 0005057442 00000 n 0005057582 00000 n 0005057722 00000 n 0005057862 00000 n 0005058002 00000 n 0005058142 00000 n 0005058282 00000 n 0005058422 00000 n 0005058562 00000 n 0005058702 00000 n 0005058842 00000 n 0005058982 00000 n 0005059122 00000 n 0005059262 00000 n 0005059402 00000 n 0005059542 00000 n 0005059682 00000 n 0005059822 00000 n 0005059962 00000 n 0005060102 00000 n 0005060242 00000 n 0005060382 00000 n 0005060522 00000 n 0005060662 00000 n 0005060802 00000 n 0005060942 00000 n 0005061082 00000 n 0005061222 00000 n 0005061362 00000 n 0005061502 00000 n 0005061642 00000 n 0005061782 00000 n 0005061922 00000 n 0005062062 00000 n 0005062202 00000 n 0005062342 00000 n 0005062482 00000 n 0005062622 00000 n 0005062762 00000 n 0005062902 00000 n 0005063042 00000 n 0005063182 00000 n 0005063322 00000 n 0005063462 00000 n 0005063602 00000 n 0005063742 00000 n 0005063882 00000 n 0005064022 00000 n 0005064162 00000 n 0005064302 00000 n 0005064442 00000 n 0005064582 00000 n 0005064722 00000 n 0005064862 00000 n 0005065002 00000 n 0005065142 00000 n 0005065282 00000 n 0005065422 00000 n 0005065562 00000 n 0005065702 00000 n 0005065842 00000 n 0005065982 00000 n 0005066122 00000 n 0005066262 00000 n 0005066402 00000 n 0005066542 00000 n 0005066682 00000 n 0005066822 00000 n 0005066962 00000 n 0005067102 00000 n 0005067242 00000 n 0005067382 00000 n 0005067522 00000 n 0005067662 00000 n 0005067802 00000 n 0005067942 00000 n 0005068082 00000 n 0005068222 00000 n 0005068362 00000 n 0005068502 00000 n 0005068642 00000 n 0005068782 00000 n 0005068922 00000 n 0005069062 00000 n 0005069202 00000 n 0005069342 00000 n 0005069482 00000 n 0005069622 00000 n 0005069762 00000 n 0005069902 00000 n 0005070042 00000 n 0005070182 00000 n 0005070322 00000 n 0005070462 00000 n 0005070602 00000 n 0005070742 00000 n 0005070882 00000 n 0005071022 00000 n 0005071162 00000 n 0005071302 00000 n 0005071442 00000 n 0005071582 00000 n 0005071722 00000 n 0005071862 00000 n 0005072002 00000 n 0005072142 00000 n 0005072282 00000 n 0005072422 00000 n 0005072562 00000 n 0005072702 00000 n 0005072842 00000 n 0005072982 00000 n 0005073122 00000 n 0005073262 00000 n 0005073402 00000 n 0005073542 00000 n 0005073682 00000 n 0005073822 00000 n 0005073962 00000 n 0005074102 00000 n 0005074242 00000 n 0005074382 00000 n 0005074522 00000 n 0005074662 00000 n 0005074802 00000 n 0005074942 00000 n 0005075082 00000 n 0005075222 00000 n 0005075362 00000 n 0005075502 00000 n 0005075642 00000 n 0005075782 00000 n 0005075922 00000 n 0005076062 00000 n 0005076202 00000 n 0005076342 00000 n 0005076482 00000 n 0005076622 00000 n 0005076762 00000 n 0005076902 00000 n 0005077042 00000 n 0005077182 00000 n 0005077322 00000 n 0005077462 00000 n 0005077602 00000 n 0005077742 00000 n 0005077882 00000 n 0005078022 00000 n 0005078162 00000 n 0005078302 00000 n 0005078442 00000 n 0005078582 00000 n 0005078722 00000 n 0005078862 00000 n 0005079002 00000 n 0005079142 00000 n 0005079282 00000 n 0005079422 00000 n 0005079562 00000 n 0005079702 00000 n 0005079842 00000 n 0005079982 00000 n 0005080122 00000 n 0005080262 00000 n 0005080402 00000 n 0005080542 00000 n 0005080682 00000 n 0005080822 00000 n 0005080962 00000 n 0005081102 00000 n 0005081242 00000 n 0005081382 00000 n 0005081522 00000 n 0005081662 00000 n 0005081802 00000 n 0005081942 00000 n 0005082082 00000 n 0005082222 00000 n 0005082362 00000 n 0005082502 00000 n 0005082642 00000 n 0005082782 00000 n 0005082922 00000 n 0005083062 00000 n 0005083202 00000 n 0005083342 00000 n 0005083482 00000 n 0005083622 00000 n 0005083762 00000 n 0005083902 00000 n 0005084042 00000 n 0005084182 00000 n 0005084322 00000 n 0005084462 00000 n 0005084602 00000 n 0005084742 00000 n 0005084882 00000 n 0005085022 00000 n 0005085162 00000 n 0005085302 00000 n 0005085442 00000 n 0005085582 00000 n 0005085722 00000 n 0005085862 00000 n 0005086002 00000 n 0005086142 00000 n 0005086282 00000 n 0005086422 00000 n 0005086562 00000 n 0005086702 00000 n 0005086842 00000 n 0005086982 00000 n 0005087122 00000 n 0005087262 00000 n 0005087402 00000 n 0005087542 00000 n 0005087682 00000 n 0005087822 00000 n 0005087962 00000 n 0005088102 00000 n 0005088242 00000 n 0005088382 00000 n 0005088522 00000 n 0005088662 00000 n 0005088802 00000 n 0005088942 00000 n 0005089082 00000 n 0005089222 00000 n 0005089362 00000 n 0005089502 00000 n 0005089642 00000 n 0005089782 00000 n 0005089922 00000 n 0005090062 00000 n 0005090202 00000 n 0005090342 00000 n 0005090482 00000 n 0005090622 00000 n 0005090762 00000 n 0005090902 00000 n 0005091042 00000 n 0005091182 00000 n 0005091322 00000 n 0005091462 00000 n 0005091602 00000 n 0005091742 00000 n 0005091882 00000 n 0005092022 00000 n 0005092162 00000 n 0005092302 00000 n 0005092346 00000 n 0005092390 00000 n 0005092434 00000 n 0005092478 00000 n 0005092522 00000 n 0005092566 00000 n 0005092610 00000 n 0005092654 00000 n 0005092698 00000 n 0005092742 00000 n 0005092786 00000 n 0005092830 00000 n 0005092874 00000 n 0005092918 00000 n 0005092962 00000 n 0005093006 00000 n 0005093050 00000 n 0005093094 00000 n 0005093138 00000 n 0005093182 00000 n 0005093226 00000 n 0005093270 00000 n 0005093314 00000 n 0005093358 00000 n 0005093402 00000 n 0005093446 00000 n 0005093490 00000 n 0005093534 00000 n 0005093578 00000 n 0005093622 00000 n 0005093666 00000 n 0005093710 00000 n 0005093754 00000 n 0005093798 00000 n 0005093842 00000 n 0005093886 00000 n 0005093930 00000 n 0005093974 00000 n 0005094018 00000 n 0005094062 00000 n 0005094106 00000 n 0005094150 00000 n 0005094194 00000 n 0005094238 00000 n 0005094282 00000 n 0005094326 00000 n 0005094370 00000 n 0005094414 00000 n 0005094458 00000 n 0005094502 00000 n 0005094546 00000 n 0005094590 00000 n 0005094634 00000 n 0005094678 00000 n 0005094722 00000 n 0005094766 00000 n 0005094810 00000 n 0005094854 00000 n 0005094898 00000 n 0005094942 00000 n 0005094986 00000 n 0005095030 00000 n 0005095074 00000 n 0005095118 00000 n 0005095162 00000 n 0005095206 00000 n 0005095250 00000 n 0005095294 00000 n 0005095338 00000 n 0005095382 00000 n 0005095426 00000 n 0005095470 00000 n 0005095514 00000 n 0005095558 00000 n 0005095602 00000 n 0005095646 00000 n 0005095690 00000 n 0005095734 00000 n 0005095778 00000 n 0005095822 00000 n 0005095866 00000 n 0005095910 00000 n 0005095954 00000 n 0005095998 00000 n 0005096042 00000 n 0005096086 00000 n 0005096130 00000 n 0005096174 00000 n 0005096218 00000 n 0005096262 00000 n 0005096306 00000 n 0005096350 00000 n 0005096394 00000 n 0005096438 00000 n 0005096482 00000 n 0005096526 00000 n 0005096570 00000 n 0005096614 00000 n 0005096658 00000 n 0005096702 00000 n 0005096746 00000 n 0005096790 00000 n 0005096834 00000 n 0005096878 00000 n 0005096922 00000 n 0005096966 00000 n 0005097010 00000 n 0005097054 00000 n 0005097098 00000 n 0005097142 00000 n 0005097186 00000 n 0005097230 00000 n 0005097274 00000 n 0005097318 00000 n 0005097362 00000 n 0005097406 00000 n 0005097450 00000 n 0005097494 00000 n 0005097538 00000 n 0005097582 00000 n 0005097626 00000 n 0005097670 00000 n 0005097714 00000 n 0005097758 00000 n 0005097802 00000 n 0005097846 00000 n 0005097890 00000 n 0005097934 00000 n 0005097978 00000 n 0005098022 00000 n 0005098066 00000 n 0005098110 00000 n 0005098154 00000 n 0005098198 00000 n 0005098242 00000 n 0005098286 00000 n 0005098330 00000 n 0005098374 00000 n 0005098418 00000 n 0005098462 00000 n 0005098506 00000 n 0005098550 00000 n 0005098594 00000 n 0005098638 00000 n 0005098682 00000 n 0005098726 00000 n 0005098770 00000 n 0005098814 00000 n 0005098858 00000 n 0005098902 00000 n 0005098946 00000 n 0005098990 00000 n 0005099034 00000 n 0005099078 00000 n 0005099122 00000 n 0005099166 00000 n 0005099210 00000 n 0005099254 00000 n 0005099298 00000 n 0005099342 00000 n 0005099386 00000 n 0005099430 00000 n 0005099474 00000 n 0005099518 00000 n 0005099562 00000 n 0005099606 00000 n 0005099650 00000 n 0005099694 00000 n 0005099738 00000 n 0005099782 00000 n 0005099826 00000 n 0005099870 00000 n 0005099914 00000 n 0005099958 00000 n 0005100002 00000 n 0005100046 00000 n 0005100090 00000 n 0005100134 00000 n 0005100178 00000 n 0005100222 00000 n 0005100266 00000 n 0005100310 00000 n 0005100354 00000 n 0005100398 00000 n 0005100442 00000 n 0005100486 00000 n 0005100530 00000 n 0005100574 00000 n 0005100618 00000 n 0005100662 00000 n 0005100706 00000 n 0005100750 00000 n 0005100794 00000 n 0005100838 00000 n 0005100882 00000 n 0005100926 00000 n 0005100970 00000 n 0005101014 00000 n 0005101058 00000 n 0005101102 00000 n 0005101146 00000 n 0005101190 00000 n 0005101234 00000 n 0005101278 00000 n 0005101322 00000 n 0005101366 00000 n 0005101410 00000 n 0005101454 00000 n 0005101498 00000 n 0005101542 00000 n 0005101586 00000 n 0005101630 00000 n 0005101674 00000 n 0005101718 00000 n 0005101762 00000 n 0005101806 00000 n 0005101850 00000 n 0005101894 00000 n 0005101938 00000 n 0005101982 00000 n 0005102026 00000 n 0005102070 00000 n 0005102114 00000 n 0005102158 00000 n 0005102202 00000 n 0005102246 00000 n 0005102290 00000 n 0005102334 00000 n 0005102378 00000 n 0005102422 00000 n 0005102466 00000 n 0005102510 00000 n 0005102554 00000 n 0005102598 00000 n 0005102642 00000 n 0005102686 00000 n 0005102730 00000 n 0005102774 00000 n 0005102818 00000 n 0005102862 00000 n 0005102906 00000 n 0005102950 00000 n 0005102994 00000 n 0005103038 00000 n 0005103082 00000 n 0005103126 00000 n 0005103170 00000 n 0005103214 00000 n 0005103258 00000 n 0005103302 00000 n 0005103346 00000 n 0005103390 00000 n 0005103434 00000 n 0005103478 00000 n 0005103522 00000 n 0005103566 00000 n 0005103610 00000 n 0005103654 00000 n 0005103698 00000 n 0005103742 00000 n 0005103786 00000 n 0005103830 00000 n 0005103874 00000 n 0005103918 00000 n 0005103962 00000 n 0005104006 00000 n 0005104050 00000 n 0005104094 00000 n 0005104138 00000 n 0005104182 00000 n 0005104226 00000 n 0005104270 00000 n 0005104314 00000 n 0005104358 00000 n 0005104402 00000 n 0005104446 00000 n 0005104490 00000 n 0005104534 00000 n 0005104578 00000 n 0005104622 00000 n 0005104666 00000 n 0005104710 00000 n 0005104754 00000 n 0005104798 00000 n 0005104842 00000 n 0005104886 00000 n 0005104930 00000 n 0005104974 00000 n 0005105018 00000 n 0005105062 00000 n 0005105106 00000 n 0005105150 00000 n 0005105194 00000 n 0005105238 00000 n 0005105282 00000 n 0005105326 00000 n 0005105370 00000 n 0005105414 00000 n 0005105458 00000 n 0005105502 00000 n 0005105546 00000 n 0005105590 00000 n 0005105634 00000 n 0005105678 00000 n 0005105722 00000 n 0005105766 00000 n 0005105810 00000 n 0005105854 00000 n 0005105898 00000 n 0005105942 00000 n 0005105986 00000 n 0005106030 00000 n 0005106074 00000 n 0005106118 00000 n 0005106162 00000 n 0005106206 00000 n 0005106250 00000 n 0005106294 00000 n 0005106338 00000 n 0005106382 00000 n 0005106426 00000 n 0005106470 00000 n 0005106514 00000 n 0005106558 00000 n 0005106602 00000 n 0005106646 00000 n 0005106690 00000 n 0005106734 00000 n 0005106778 00000 n 0005106822 00000 n 0005106866 00000 n 0005106910 00000 n 0005106954 00000 n 0005106998 00000 n 0005107042 00000 n 0005107086 00000 n 0005107130 00000 n 0005107174 00000 n 0005107218 00000 n 0005107262 00000 n 0005107306 00000 n 0005107350 00000 n 0005107394 00000 n 0005107438 00000 n 0005107482 00000 n 0005107526 00000 n 0005107570 00000 n 0005107614 00000 n 0005107658 00000 n 0005107702 00000 n 0005107746 00000 n 0005107790 00000 n 0005107834 00000 n 0005107878 00000 n 0005107922 00000 n 0005107966 00000 n 0005108010 00000 n 0005108054 00000 n 0005108098 00000 n 0005108429 00000 n 0005108851 00000 n 0005108895 00000 n 0005108939 00000 n 0005108982 00000 n 0005109025 00000 n 0005109068 00000 n 0005109136 00000 n 0005109371 00000 n 0005109470 00000 n 0005114050 00000 n 0005114381 00000 n 0005114803 00000 n 0005114846 00000 n 0005114890 00000 n 0005114934 00000 n 0005114977 00000 n 0005115020 00000 n 0005115063 00000 n 0005115107 00000 n 0005115151 00000 n 0005115219 00000 n 0005115439 00000 n 0005115538 00000 n 0005119003 00000 n 0005119334 00000 n 0005119756 00000 n 0005119824 00000 n 0005119950 00000 n 0005120018 00000 n 0005120127 00000 n 0005231813 00000 n 0005232228 00000 n 0005232530 00000 n 0005232598 00000 n 0005232847 00000 n 0005232946 00000 n 0005234856 00000 n 0005235187 00000 n 0005235609 00000 n 0005235653 00000 n 0005235696 00000 n 0005235739 00000 n 0005235783 00000 n 0005235827 00000 n 0005235895 00000 n 0005236172 00000 n 0005236271 00000 n 0005240258 00000 n 0005240424 00000 n 0005240590 00000 n 0005240632 00000 n 0005240674 00000 n 0005241005 00000 n 0005241427 00000 n 0005241470 00000 n 0005241514 00000 n 0005241582 00000 n 0005241845 00000 n 0005241944 00000 n 0005246142 00000 n 0005246304 00000 n 0005246346 00000 n 0005246677 00000 n 0005247099 00000 n 0005247143 00000 n 0005247186 00000 n 0005247230 00000 n 0005247273 00000 n 0005247341 00000 n 0005247590 00000 n 0005247689 00000 n 0005251464 00000 n 0005251795 00000 n 0005252217 00000 n 0005252285 00000 n 0005252505 00000 n 0005252604 00000 n 0005255279 00000 n 0005255610 00000 n 0005256032 00000 n 0005256076 00000 n 0005256120 00000 n 0005256164 00000 n 0005256208 00000 n 0005256251 00000 n 0005256295 00000 n 0005256338 00000 n 0005256382 00000 n 0005256426 00000 n 0005256469 00000 n 0005256512 00000 n 0005256556 00000 n 0005256598 00000 n 0005256641 00000 n 0005256709 00000 n 0005256972 00000 n 0005257071 00000 n 0005260947 00000 n 0005261113 00000 n 0005261155 00000 n 0005261486 00000 n 0005261908 00000 n 0005261952 00000 n 0005262020 00000 n 0005262255 00000 n 0005262354 00000 n 0005265579 00000 n 0005265910 00000 n 0005266332 00000 n 0005266375 00000 n 0005266443 00000 n 0005266692 00000 n 0005266791 00000 n 0005268657 00000 n 0005268988 00000 n 0005269410 00000 n 0005269454 00000 n 0005269496 00000 n 0005269539 00000 n 0005269582 00000 n 0005269625 00000 n 0005269669 00000 n 0005269713 00000 n 0005269756 00000 n 0005269799 00000 n 0005269842 00000 n 0005269910 00000 n 0005270187 00000 n 0005270286 00000 n 0005274327 00000 n 0005274493 00000 n 0005274535 00000 n 0005274866 00000 n 0005275288 00000 n 0005275330 00000 n 0005275373 00000 n 0005275417 00000 n 0005275461 00000 n 0005275529 00000 n 0005275778 00000 n 0005275877 00000 n 0005280082 00000 n 0005280248 00000 n 0005280290 00000 n 0005280621 00000 n 0005281043 00000 n 0005281086 00000 n 0005281154 00000 n 0005281431 00000 n 0005281530 00000 n 0005285906 00000 n 0005286070 00000 n 0005286113 00000 n 0005286444 00000 n 0005286866 00000 n 0005286909 00000 n 0005286953 00000 n 0005286996 00000 n 0005287039 00000 n 0005287082 00000 n 0005287125 00000 n 0005287456 00000 n 0005287878 00000 n 0005287921 00000 n 0005287964 00000 n 0005288008 00000 n 0005288051 00000 n 0005288382 00000 n 0005288804 00000 n 0005288872 00000 n 0005289107 00000 n 0005289206 00000 n 0005293295 00000 n 0005293434 00000 n 0005293573 00000 n 0005293712 00000 n 0005293851 00000 n 0005293990 00000 n 0005294129 00000 n 0005294268 00000 n 0005294407 00000 n 0005294546 00000 n 0005294685 00000 n 0005294824 00000 n 0005294963 00000 n 0005295102 00000 n 0005295241 00000 n 0005295380 00000 n 0005295519 00000 n 0005295658 00000 n 0005295797 00000 n 0005295936 00000 n 0005296075 00000 n 0005296214 00000 n 0005296353 00000 n 0005296492 00000 n 0005296631 00000 n 0005296770 00000 n 0005296909 00000 n 0005297048 00000 n 0005297187 00000 n 0005297326 00000 n 0005297465 00000 n 0005297604 00000 n 0005297743 00000 n 0005297882 00000 n 0005298021 00000 n 0005298160 00000 n 0005298299 00000 n 0005298438 00000 n 0005298577 00000 n 0005298716 00000 n 0005298855 00000 n 0005298994 00000 n 0005299133 00000 n 0005299272 00000 n 0005299411 00000 n 0005299550 00000 n 0005299689 00000 n 0005299828 00000 n 0005299967 00000 n 0005300106 00000 n 0005300245 00000 n 0005300384 00000 n 0005300523 00000 n 0005300662 00000 n 0005300801 00000 n 0005300940 00000 n 0005301079 00000 n 0005301218 00000 n 0005301357 00000 n 0005301496 00000 n 0005301635 00000 n 0005301774 00000 n 0005301913 00000 n 0005302052 00000 n 0005302191 00000 n 0005302330 00000 n 0005302469 00000 n 0005302608 00000 n 0005302747 00000 n 0005302886 00000 n 0005303025 00000 n 0005303164 00000 n 0005303303 00000 n 0005303442 00000 n 0005303581 00000 n 0005303720 00000 n 0005303859 00000 n 0005303998 00000 n 0005304137 00000 n 0005304276 00000 n 0005304415 00000 n 0005304554 00000 n 0005304693 00000 n 0005304832 00000 n 0005304971 00000 n 0005305110 00000 n 0005305249 00000 n 0005305388 00000 n 0005305527 00000 n 0005305666 00000 n 0005305805 00000 n 0005305944 00000 n 0005306083 00000 n 0005306222 00000 n 0005306361 00000 n 0005306500 00000 n 0005306639 00000 n 0005306778 00000 n 0005306917 00000 n 0005307056 00000 n 0005307195 00000 n 0005307334 00000 n 0005307473 00000 n 0005307612 00000 n 0005307751 00000 n 0005307890 00000 n 0005308029 00000 n 0005308168 00000 n 0005308307 00000 n 0005308446 00000 n 0005308585 00000 n 0005308724 00000 n 0005308863 00000 n 0005309002 00000 n 0005309141 00000 n 0005309280 00000 n 0005309419 00000 n 0005309558 00000 n 0005309697 00000 n 0005309836 00000 n 0005309975 00000 n 0005310114 00000 n 0005310253 00000 n 0005310392 00000 n 0005310531 00000 n 0005310670 00000 n 0005310809 00000 n 0005310948 00000 n 0005311087 00000 n 0005311226 00000 n 0005311365 00000 n 0005311504 00000 n 0005311643 00000 n 0005311782 00000 n 0005311921 00000 n 0005312060 00000 n 0005312199 00000 n 0005312338 00000 n 0005312477 00000 n 0005312616 00000 n 0005312755 00000 n 0005312894 00000 n 0005313033 00000 n 0005313172 00000 n 0005313311 00000 n 0005313450 00000 n 0005313589 00000 n 0005313728 00000 n 0005313867 00000 n 0005314006 00000 n 0005314145 00000 n 0005314284 00000 n 0005314423 00000 n 0005314562 00000 n 0005314701 00000 n 0005314840 00000 n 0005314979 00000 n 0005315118 00000 n 0005315257 00000 n 0005315396 00000 n 0005315535 00000 n 0005315674 00000 n 0005315813 00000 n 0005315952 00000 n 0005316091 00000 n 0005316230 00000 n 0005316369 00000 n 0005316508 00000 n 0005316647 00000 n 0005316786 00000 n 0005316925 00000 n 0005317064 00000 n 0005317203 00000 n 0005317342 00000 n 0005317481 00000 n 0005317620 00000 n 0005317759 00000 n 0005317898 00000 n 0005318037 00000 n 0005318176 00000 n 0005318315 00000 n 0005318454 00000 n 0005318593 00000 n 0005318732 00000 n 0005318871 00000 n 0005319010 00000 n 0005319149 00000 n 0005319288 00000 n 0005319427 00000 n 0005319566 00000 n 0005319705 00000 n 0005319844 00000 n 0005319983 00000 n 0005320122 00000 n 0005320261 00000 n 0005320400 00000 n 0005320539 00000 n 0005320678 00000 n 0005320817 00000 n 0005320956 00000 n 0005321095 00000 n 0005321234 00000 n 0005321373 00000 n 0005321512 00000 n 0005321651 00000 n 0005321790 00000 n 0005321929 00000 n 0005322068 00000 n 0005322207 00000 n 0005322346 00000 n 0005322485 00000 n 0005322624 00000 n 0005322763 00000 n 0005322902 00000 n 0005323041 00000 n 0005323180 00000 n 0005323319 00000 n 0005323458 00000 n 0005323597 00000 n 0005323736 00000 n 0005323875 00000 n 0005324014 00000 n 0005324153 00000 n 0005324292 00000 n 0005324431 00000 n 0005324570 00000 n 0005324709 00000 n 0005324848 00000 n 0005324987 00000 n 0005325126 00000 n 0005325265 00000 n 0005325404 00000 n 0005325543 00000 n 0005325682 00000 n 0005325821 00000 n 0005325960 00000 n 0005326099 00000 n 0005326238 00000 n 0005326377 00000 n 0005326516 00000 n 0005326655 00000 n 0005326794 00000 n 0005326933 00000 n 0005327072 00000 n 0005327211 00000 n 0005327350 00000 n 0005327489 00000 n 0005327628 00000 n 0005327767 00000 n 0005327906 00000 n 0005328045 00000 n 0005328184 00000 n 0005328323 00000 n 0005328462 00000 n 0005328601 00000 n 0005328740 00000 n 0005328879 00000 n 0005329018 00000 n 0005329157 00000 n 0005329296 00000 n 0005329435 00000 n 0005329574 00000 n 0005329713 00000 n 0005329852 00000 n 0005329991 00000 n 0005330130 00000 n 0005330269 00000 n 0005330408 00000 n 0005330547 00000 n 0005330686 00000 n 0005330825 00000 n 0005330964 00000 n 0005331103 00000 n 0005331242 00000 n 0005331381 00000 n 0005331520 00000 n 0005331659 00000 n 0005331798 00000 n 0005331937 00000 n 0005332076 00000 n 0005332215 00000 n 0005332354 00000 n 0005332397 00000 n 0005332440 00000 n 0005332483 00000 n 0005332526 00000 n 0005332569 00000 n 0005332612 00000 n 0005332655 00000 n 0005332698 00000 n 0005332741 00000 n 0005332784 00000 n 0005332827 00000 n 0005332870 00000 n 0005332913 00000 n 0005332956 00000 n 0005332999 00000 n 0005333042 00000 n 0005333085 00000 n 0005333128 00000 n 0005333171 00000 n 0005333214 00000 n 0005333257 00000 n 0005333300 00000 n 0005333343 00000 n 0005333386 00000 n 0005333429 00000 n 0005333472 00000 n 0005333515 00000 n 0005333558 00000 n 0005333601 00000 n 0005333644 00000 n 0005333687 00000 n 0005333730 00000 n 0005333773 00000 n 0005333816 00000 n 0005333859 00000 n 0005333902 00000 n 0005333945 00000 n 0005333988 00000 n 0005334031 00000 n 0005334074 00000 n 0005334117 00000 n 0005334160 00000 n 0005334203 00000 n 0005334246 00000 n 0005334289 00000 n 0005334332 00000 n 0005334375 00000 n 0005334418 00000 n 0005334461 00000 n 0005334504 00000 n 0005334547 00000 n 0005334590 00000 n 0005334633 00000 n 0005334676 00000 n 0005334719 00000 n 0005334762 00000 n 0005334805 00000 n 0005334848 00000 n 0005334891 00000 n 0005334934 00000 n 0005334977 00000 n 0005335020 00000 n 0005335063 00000 n 0005335106 00000 n 0005335149 00000 n 0005335192 00000 n 0005335235 00000 n 0005335278 00000 n 0005335321 00000 n 0005335364 00000 n 0005335407 00000 n 0005335450 00000 n 0005335493 00000 n 0005335536 00000 n 0005335579 00000 n 0005335622 00000 n 0005335665 00000 n 0005335708 00000 n 0005335751 00000 n 0005335794 00000 n 0005335837 00000 n 0005335880 00000 n 0005335923 00000 n 0005335966 00000 n 0005336009 00000 n 0005336052 00000 n 0005336095 00000 n 0005336138 00000 n 0005336181 00000 n 0005336224 00000 n 0005336267 00000 n 0005336310 00000 n 0005336353 00000 n 0005336396 00000 n 0005336439 00000 n 0005336482 00000 n 0005336525 00000 n 0005336568 00000 n 0005336611 00000 n 0005336654 00000 n 0005336697 00000 n 0005336740 00000 n 0005336783 00000 n 0005336826 00000 n 0005336869 00000 n 0005336912 00000 n 0005336955 00000 n 0005336998 00000 n 0005337041 00000 n 0005337084 00000 n 0005337127 00000 n 0005337170 00000 n 0005337213 00000 n 0005337256 00000 n 0005337299 00000 n 0005337342 00000 n 0005337385 00000 n 0005337428 00000 n 0005337471 00000 n 0005337514 00000 n 0005337557 00000 n 0005337600 00000 n 0005337643 00000 n 0005337686 00000 n 0005337729 00000 n 0005337772 00000 n 0005337815 00000 n 0005337858 00000 n 0005337901 00000 n 0005337944 00000 n 0005337987 00000 n 0005338030 00000 n 0005338073 00000 n 0005338116 00000 n 0005338159 00000 n 0005338202 00000 n 0005338245 00000 n 0005338288 00000 n 0005338331 00000 n 0005338374 00000 n 0005338417 00000 n 0005338460 00000 n 0005338503 00000 n 0005338546 00000 n 0005338589 00000 n 0005338632 00000 n 0005338675 00000 n 0005338718 00000 n 0005338761 00000 n 0005338804 00000 n 0005338847 00000 n 0005338890 00000 n 0005338933 00000 n 0005338976 00000 n 0005339019 00000 n 0005339062 00000 n 0005339105 00000 n 0005339148 00000 n 0005339191 00000 n 0005339234 00000 n 0005339277 00000 n 0005339320 00000 n 0005339363 00000 n 0005339406 00000 n 0005339449 00000 n 0005339492 00000 n 0005339535 00000 n 0005339578 00000 n 0005339621 00000 n 0005339664 00000 n 0005339707 00000 n 0005339750 00000 n 0005339793 00000 n 0005339836 00000 n 0005339879 00000 n 0005339922 00000 n 0005339965 00000 n 0005340008 00000 n 0005340051 00000 n 0005340094 00000 n 0005340137 00000 n 0005340180 00000 n 0005340223 00000 n 0005340266 00000 n 0005340309 00000 n 0005340352 00000 n 0005340395 00000 n 0005340438 00000 n 0005340481 00000 n 0005340524 00000 n 0005340567 00000 n 0005340610 00000 n 0005340653 00000 n 0005340696 00000 n 0005340739 00000 n 0005340782 00000 n 0005340825 00000 n 0005340868 00000 n 0005340911 00000 n 0005340954 00000 n 0005340997 00000 n 0005341040 00000 n 0005341083 00000 n 0005341126 00000 n 0005341169 00000 n 0005341212 00000 n 0005341255 00000 n 0005341298 00000 n 0005341341 00000 n 0005341384 00000 n 0005341427 00000 n 0005341470 00000 n 0005341513 00000 n 0005341556 00000 n 0005341599 00000 n 0005341642 00000 n 0005341685 00000 n 0005341728 00000 n 0005341771 00000 n 0005341814 00000 n 0005342145 00000 n 0005342567 00000 n 0005342610 00000 n 0005342653 00000 n 0005342695 00000 n 0005342738 00000 n 0005342781 00000 n 0005342824 00000 n 0005342868 00000 n 0005342936 00000 n 0005343156 00000 n 0005343255 00000 n 0005346720 00000 n 0005346763 00000 n 0005346807 00000 n 0005346850 00000 n 0005346894 00000 n 0005346937 00000 n 0005347005 00000 n 0005347268 00000 n 0005347367 00000 n 0005351216 00000 n 0005351382 00000 n 0005351424 00000 n 0005351755 00000 n 0005352177 00000 n 0005352220 00000 n 0005352262 00000 n 0005352306 00000 n 0005352349 00000 n 0005352393 00000 n 0005352437 00000 n 0005352505 00000 n 0005352739 00000 n 0005352838 00000 n 0005355965 00000 n 0005356296 00000 n 0005356718 00000 n 0005356761 00000 n 0005356829 00000 n 0005357063 00000 n 0005357162 00000 n 0005361818 00000 n 0005362149 00000 n 0005362571 00000 n 0005362614 00000 n 0005362682 00000 n 0005362931 00000 n 0005363030 00000 n 0005367109 00000 n 0005367440 00000 n 0005367862 00000 n 0005367905 00000 n 0005367948 00000 n 0005367991 00000 n 0005368035 00000 n 0005368078 00000 n 0005368122 00000 n 0005368190 00000 n 0005368410 00000 n 0005368509 00000 n 0005372627 00000 n 0005372766 00000 n 0005372905 00000 n 0005373044 00000 n 0005373183 00000 n 0005373322 00000 n 0005373461 00000 n 0005373600 00000 n 0005373739 00000 n 0005373878 00000 n 0005374017 00000 n 0005374156 00000 n 0005374295 00000 n 0005374434 00000 n 0005374573 00000 n 0005374712 00000 n 0005374851 00000 n 0005374990 00000 n 0005375129 00000 n 0005375268 00000 n 0005375407 00000 n 0005375546 00000 n 0005375685 00000 n 0005375824 00000 n 0005375963 00000 n 0005376102 00000 n 0005376241 00000 n 0005376380 00000 n 0005376519 00000 n 0005376658 00000 n 0005376797 00000 n 0005376936 00000 n 0005377075 00000 n 0005377214 00000 n 0005377353 00000 n 0005377492 00000 n 0005377631 00000 n 0005377770 00000 n 0005377909 00000 n 0005378048 00000 n 0005378187 00000 n 0005378326 00000 n 0005378465 00000 n 0005378604 00000 n 0005378743 00000 n 0005378882 00000 n 0005379021 00000 n 0005379160 00000 n 0005379299 00000 n 0005379438 00000 n 0005379577 00000 n 0005379716 00000 n 0005379855 00000 n 0005379994 00000 n 0005380133 00000 n 0005380272 00000 n 0005380411 00000 n 0005380550 00000 n 0005380689 00000 n 0005380828 00000 n 0005380967 00000 n 0005381106 00000 n 0005381245 00000 n 0005381384 00000 n 0005381523 00000 n 0005381662 00000 n 0005381801 00000 n 0005381940 00000 n 0005382079 00000 n 0005382218 00000 n 0005382357 00000 n 0005382496 00000 n 0005382635 00000 n 0005382774 00000 n 0005382913 00000 n 0005383052 00000 n 0005383191 00000 n 0005383330 00000 n 0005383469 00000 n 0005383608 00000 n 0005383747 00000 n 0005383886 00000 n 0005384025 00000 n 0005384164 00000 n 0005384303 00000 n 0005384442 00000 n 0005384581 00000 n 0005384720 00000 n 0005384859 00000 n 0005384998 00000 n 0005385137 00000 n 0005385276 00000 n 0005385415 00000 n 0005385554 00000 n 0005385693 00000 n 0005385832 00000 n 0005385971 00000 n 0005386110 00000 n 0005386249 00000 n 0005386388 00000 n 0005386527 00000 n 0005386666 00000 n 0005386805 00000 n 0005386944 00000 n 0005387083 00000 n 0005387222 00000 n 0005387361 00000 n 0005387500 00000 n 0005387639 00000 n 0005387778 00000 n 0005387917 00000 n 0005388056 00000 n 0005388195 00000 n 0005388334 00000 n 0005388473 00000 n 0005388612 00000 n 0005388751 00000 n 0005388890 00000 n 0005389029 00000 n 0005389168 00000 n 0005389307 00000 n 0005389446 00000 n 0005389585 00000 n 0005389724 00000 n 0005389863 00000 n 0005390002 00000 n 0005390141 00000 n 0005390280 00000 n 0005390419 00000 n 0005390558 00000 n 0005390697 00000 n 0005390836 00000 n 0005390975 00000 n 0005391114 00000 n 0005391253 00000 n 0005391392 00000 n 0005391531 00000 n 0005391670 00000 n 0005391809 00000 n 0005391948 00000 n 0005392087 00000 n 0005392226 00000 n 0005392365 00000 n 0005392504 00000 n 0005392643 00000 n 0005392782 00000 n 0005392921 00000 n 0005393060 00000 n 0005393199 00000 n 0005393338 00000 n 0005393477 00000 n 0005393616 00000 n 0005393755 00000 n 0005393894 00000 n 0005394033 00000 n 0005394172 00000 n 0005394311 00000 n 0005394450 00000 n 0005394589 00000 n 0005394728 00000 n 0005394867 00000 n 0005395006 00000 n 0005395145 00000 n 0005395284 00000 n 0005395423 00000 n 0005395562 00000 n 0005395701 00000 n 0005395840 00000 n 0005395979 00000 n 0005396118 00000 n 0005396257 00000 n 0005396396 00000 n 0005396535 00000 n 0005396674 00000 n 0005396813 00000 n 0005396952 00000 n 0005397091 00000 n 0005397230 00000 n 0005397369 00000 n 0005397508 00000 n 0005397647 00000 n 0005397786 00000 n 0005397925 00000 n 0005398064 00000 n 0005398203 00000 n 0005398342 00000 n 0005398481 00000 n 0005398620 00000 n 0005398759 00000 n 0005398898 00000 n 0005399037 00000 n 0005399176 00000 n 0005399315 00000 n 0005399454 00000 n 0005399593 00000 n 0005399732 00000 n 0005399871 00000 n 0005400010 00000 n 0005400149 00000 n 0005400288 00000 n 0005400427 00000 n 0005400566 00000 n 0005400705 00000 n 0005400844 00000 n 0005400983 00000 n 0005401122 00000 n 0005401261 00000 n 0005401400 00000 n 0005401539 00000 n 0005401678 00000 n 0005401817 00000 n 0005401956 00000 n 0005402095 00000 n 0005402234 00000 n 0005402373 00000 n 0005402512 00000 n 0005402651 00000 n 0005402790 00000 n 0005402929 00000 n 0005403068 00000 n 0005403207 00000 n 0005403346 00000 n 0005403389 00000 n 0005403432 00000 n 0005403475 00000 n 0005403518 00000 n 0005403561 00000 n 0005403604 00000 n 0005403647 00000 n 0005403690 00000 n 0005403733 00000 n 0005403776 00000 n 0005403819 00000 n 0005403862 00000 n 0005403905 00000 n 0005403948 00000 n 0005403991 00000 n 0005404034 00000 n 0005404077 00000 n 0005404120 00000 n 0005404163 00000 n 0005404206 00000 n 0005404249 00000 n 0005404292 00000 n 0005404335 00000 n 0005404378 00000 n 0005404421 00000 n 0005404464 00000 n 0005404507 00000 n 0005404550 00000 n 0005404593 00000 n 0005404636 00000 n 0005404679 00000 n 0005404722 00000 n 0005404765 00000 n 0005404808 00000 n 0005404851 00000 n 0005404894 00000 n 0005404937 00000 n 0005404980 00000 n 0005405023 00000 n 0005405066 00000 n 0005405109 00000 n 0005405152 00000 n 0005405195 00000 n 0005405238 00000 n 0005405281 00000 n 0005405324 00000 n 0005405367 00000 n 0005405410 00000 n 0005405453 00000 n 0005405496 00000 n 0005405539 00000 n 0005405582 00000 n 0005405625 00000 n 0005405668 00000 n 0005405711 00000 n 0005405754 00000 n 0005405797 00000 n 0005405840 00000 n 0005405883 00000 n 0005405926 00000 n 0005405969 00000 n 0005406012 00000 n 0005406055 00000 n 0005406098 00000 n 0005406141 00000 n 0005406184 00000 n 0005406227 00000 n 0005406270 00000 n 0005406313 00000 n 0005406356 00000 n 0005406399 00000 n 0005406442 00000 n 0005406485 00000 n 0005406528 00000 n 0005406571 00000 n 0005406614 00000 n 0005406657 00000 n 0005406700 00000 n 0005406743 00000 n 0005406786 00000 n 0005406829 00000 n 0005406872 00000 n 0005406915 00000 n 0005406958 00000 n 0005407001 00000 n 0005407044 00000 n 0005407087 00000 n 0005407130 00000 n 0005407173 00000 n 0005407216 00000 n 0005407259 00000 n 0005407302 00000 n 0005407345 00000 n 0005407388 00000 n 0005407431 00000 n 0005407474 00000 n 0005407517 00000 n 0005407560 00000 n 0005407603 00000 n 0005407646 00000 n 0005407689 00000 n 0005407732 00000 n 0005407775 00000 n 0005407818 00000 n 0005407861 00000 n 0005407904 00000 n 0005407947 00000 n 0005407990 00000 n 0005408033 00000 n 0005408076 00000 n 0005408119 00000 n 0005408162 00000 n 0005408205 00000 n 0005408248 00000 n 0005408291 00000 n 0005408334 00000 n 0005408377 00000 n 0005408420 00000 n 0005408463 00000 n 0005408506 00000 n 0005408549 00000 n 0005408592 00000 n 0005408635 00000 n 0005408678 00000 n 0005408721 00000 n 0005408764 00000 n 0005408807 00000 n 0005408850 00000 n 0005408893 00000 n 0005408936 00000 n 0005408979 00000 n 0005409022 00000 n 0005409065 00000 n 0005409108 00000 n 0005409151 00000 n 0005409194 00000 n 0005409237 00000 n 0005409280 00000 n 0005409323 00000 n 0005409366 00000 n 0005409409 00000 n 0005409452 00000 n 0005409495 00000 n 0005409538 00000 n 0005409581 00000 n 0005409624 00000 n 0005409667 00000 n 0005409710 00000 n 0005409753 00000 n 0005409796 00000 n 0005409839 00000 n 0005409882 00000 n 0005409925 00000 n 0005409968 00000 n 0005410011 00000 n 0005410054 00000 n 0005410097 00000 n 0005410140 00000 n 0005410183 00000 n 0005410226 00000 n 0005410269 00000 n 0005410312 00000 n 0005410355 00000 n 0005410398 00000 n 0005410441 00000 n 0005410484 00000 n 0005410527 00000 n 0005410570 00000 n 0005410613 00000 n 0005410656 00000 n 0005410699 00000 n 0005410742 00000 n 0005410785 00000 n 0005410828 00000 n 0005410871 00000 n 0005410914 00000 n 0005410957 00000 n 0005411000 00000 n 0005411043 00000 n 0005411086 00000 n 0005411129 00000 n 0005411172 00000 n 0005411215 00000 n 0005411546 00000 n 0005411968 00000 n 0005412011 00000 n 0005412055 00000 n 0005412098 00000 n 0005412141 00000 n 0005412184 00000 n 0005412227 00000 n 0005412270 00000 n 0005412313 00000 n 0005412373 00000 n 0005412416 00000 n 0005412459 00000 n 0005412503 00000 n 0005412547 00000 n 0005412589 00000 n 0005412657 00000 n 0005412906 00000 n 0005413005 00000 n 0005416788 00000 n 0005417119 00000 n 0005417541 00000 n 0005417584 00000 n 0005417628 00000 n 0005417696 00000 n 0005417959 00000 n 0005418058 00000 n 0005421863 00000 n 0005422027 00000 n 0005422070 00000 n 0005422401 00000 n 0005422823 00000 n 0005422867 00000 n 0005422935 00000 n 0005423184 00000 n 0005423283 00000 n 0005427851 00000 n 0005428016 00000 n 0005428058 00000 n 0005428389 00000 n 0005428811 00000 n 0005428854 00000 n 0005428897 00000 n 0005428965 00000 n 0005429228 00000 n 0005429327 00000 n 0005433068 00000 n 0005433233 00000 n 0005433275 00000 n 0005433606 00000 n 0005434028 00000 n 0005434071 00000 n 0005434115 00000 n 0005434158 00000 n 0005434226 00000 n 0005434475 00000 n 0005434574 00000 n 0005438336 00000 n 0005438667 00000 n 0005439089 00000 n 0005439133 00000 n 0005439176 00000 n 0005439220 00000 n 0005439288 00000 n 0005439537 00000 n 0005439636 00000 n 0005442221 00000 n 0005442552 00000 n 0005442974 00000 n 0005443017 00000 n 0005443061 00000 n 0005443129 00000 n 0005443364 00000 n 0005443463 00000 n 0005447938 00000 n 0005448077 00000 n 0005448216 00000 n 0005448355 00000 n 0005448494 00000 n 0005448633 00000 n 0005448772 00000 n 0005448911 00000 n 0005449050 00000 n 0005449189 00000 n 0005449328 00000 n 0005449467 00000 n 0005449606 00000 n 0005449745 00000 n 0005449884 00000 n 0005450023 00000 n 0005450162 00000 n 0005450301 00000 n 0005450440 00000 n 0005450579 00000 n 0005450718 00000 n 0005450857 00000 n 0005450996 00000 n 0005451135 00000 n 0005451274 00000 n 0005451413 00000 n 0005451552 00000 n 0005451691 00000 n 0005451830 00000 n 0005451969 00000 n 0005452108 00000 n 0005452247 00000 n 0005452386 00000 n 0005452525 00000 n 0005452664 00000 n 0005452803 00000 n 0005452942 00000 n 0005453081 00000 n 0005453220 00000 n 0005453359 00000 n 0005453498 00000 n 0005453637 00000 n 0005453776 00000 n 0005453915 00000 n 0005454054 00000 n 0005454193 00000 n 0005454332 00000 n 0005454471 00000 n 0005454610 00000 n 0005454749 00000 n 0005454888 00000 n 0005455027 00000 n 0005455166 00000 n 0005455305 00000 n 0005455444 00000 n 0005455583 00000 n 0005455722 00000 n 0005455861 00000 n 0005456000 00000 n 0005456139 00000 n 0005456278 00000 n 0005456417 00000 n 0005456556 00000 n 0005456695 00000 n 0005456834 00000 n 0005456973 00000 n 0005457112 00000 n 0005457251 00000 n 0005457390 00000 n 0005457529 00000 n 0005457668 00000 n 0005457807 00000 n 0005457946 00000 n 0005458085 00000 n 0005458224 00000 n 0005458363 00000 n 0005458502 00000 n 0005458641 00000 n 0005458780 00000 n 0005458919 00000 n 0005459058 00000 n 0005459197 00000 n 0005459336 00000 n 0005459475 00000 n 0005459614 00000 n 0005459753 00000 n 0005459892 00000 n 0005460031 00000 n 0005460170 00000 n 0005460309 00000 n 0005460448 00000 n 0005460587 00000 n 0005460726 00000 n 0005460865 00000 n 0005461004 00000 n 0005461143 00000 n 0005461282 00000 n 0005461421 00000 n 0005461560 00000 n 0005461699 00000 n 0005461838 00000 n 0005461977 00000 n 0005462116 00000 n 0005462255 00000 n 0005462394 00000 n 0005462533 00000 n 0005462672 00000 n 0005462811 00000 n 0005462950 00000 n 0005463089 00000 n 0005463228 00000 n 0005463367 00000 n 0005463506 00000 n 0005463645 00000 n 0005463784 00000 n 0005463923 00000 n 0005464062 00000 n 0005464201 00000 n 0005464340 00000 n 0005464479 00000 n 0005464618 00000 n 0005464757 00000 n 0005464896 00000 n 0005465035 00000 n 0005465174 00000 n 0005465313 00000 n 0005465452 00000 n 0005465591 00000 n 0005465730 00000 n 0005465869 00000 n 0005466008 00000 n 0005466147 00000 n 0005466286 00000 n 0005466425 00000 n 0005466564 00000 n 0005466703 00000 n 0005466842 00000 n 0005466981 00000 n 0005467120 00000 n 0005467259 00000 n 0005467398 00000 n 0005467537 00000 n 0005467676 00000 n 0005467815 00000 n 0005467954 00000 n 0005468093 00000 n 0005468232 00000 n 0005468371 00000 n 0005468510 00000 n 0005468649 00000 n 0005468788 00000 n 0005468927 00000 n 0005469066 00000 n 0005469205 00000 n 0005469344 00000 n 0005469483 00000 n 0005469622 00000 n 0005469761 00000 n 0005469900 00000 n 0005470039 00000 n 0005470178 00000 n 0005470317 00000 n 0005470456 00000 n 0005470595 00000 n 0005470734 00000 n 0005470873 00000 n 0005471012 00000 n 0005471151 00000 n 0005471290 00000 n 0005471429 00000 n 0005471568 00000 n 0005471707 00000 n 0005471846 00000 n 0005471985 00000 n 0005472124 00000 n 0005472263 00000 n 0005472402 00000 n 0005472541 00000 n 0005472680 00000 n 0005472819 00000 n 0005472958 00000 n 0005473097 00000 n 0005473236 00000 n 0005473375 00000 n 0005473514 00000 n 0005473653 00000 n 0005473792 00000 n 0005473931 00000 n 0005474070 00000 n 0005474209 00000 n 0005474348 00000 n 0005474487 00000 n 0005474626 00000 n 0005474765 00000 n 0005474904 00000 n 0005475043 00000 n 0005475182 00000 n 0005475321 00000 n 0005475460 00000 n 0005475599 00000 n 0005475738 00000 n 0005475877 00000 n 0005476016 00000 n 0005476155 00000 n 0005476294 00000 n 0005476433 00000 n 0005476572 00000 n 0005476711 00000 n 0005476850 00000 n 0005476989 00000 n 0005477128 00000 n 0005477267 00000 n 0005477406 00000 n 0005477545 00000 n 0005477684 00000 n 0005477823 00000 n 0005477962 00000 n 0005478101 00000 n 0005478240 00000 n 0005478379 00000 n 0005478518 00000 n 0005478657 00000 n 0005478796 00000 n 0005478935 00000 n 0005479074 00000 n 0005479213 00000 n 0005479352 00000 n 0005479491 00000 n 0005479630 00000 n 0005479769 00000 n 0005479908 00000 n 0005480047 00000 n 0005480186 00000 n 0005480325 00000 n 0005480464 00000 n 0005480603 00000 n 0005480742 00000 n 0005480881 00000 n 0005481020 00000 n 0005481159 00000 n 0005481298 00000 n 0005481437 00000 n 0005481576 00000 n 0005481715 00000 n 0005481854 00000 n 0005481993 00000 n 0005482132 00000 n 0005482271 00000 n 0005482410 00000 n 0005482549 00000 n 0005482688 00000 n 0005482827 00000 n 0005482966 00000 n 0005483105 00000 n 0005483244 00000 n 0005483383 00000 n 0005483522 00000 n 0005483661 00000 n 0005483800 00000 n 0005483939 00000 n 0005484078 00000 n 0005484217 00000 n 0005484356 00000 n 0005484495 00000 n 0005484634 00000 n 0005484773 00000 n 0005484912 00000 n 0005485051 00000 n 0005485190 00000 n 0005485329 00000 n 0005485468 00000 n 0005485607 00000 n 0005485746 00000 n 0005485885 00000 n 0005486024 00000 n 0005486163 00000 n 0005486302 00000 n 0005486441 00000 n 0005486580 00000 n 0005486719 00000 n 0005486858 00000 n 0005486997 00000 n 0005487040 00000 n 0005487083 00000 n 0005487126 00000 n 0005487169 00000 n 0005487212 00000 n 0005487255 00000 n 0005487298 00000 n 0005487341 00000 n 0005487384 00000 n 0005487427 00000 n 0005487470 00000 n 0005487513 00000 n 0005487556 00000 n 0005487599 00000 n 0005487642 00000 n 0005487685 00000 n 0005487728 00000 n 0005487771 00000 n 0005487814 00000 n 0005487857 00000 n 0005487900 00000 n 0005487943 00000 n 0005487986 00000 n 0005488029 00000 n 0005488072 00000 n 0005488115 00000 n 0005488158 00000 n 0005488201 00000 n 0005488244 00000 n 0005488287 00000 n 0005488330 00000 n 0005488373 00000 n 0005488416 00000 n 0005488459 00000 n 0005488502 00000 n 0005488545 00000 n 0005488588 00000 n 0005488631 00000 n 0005488674 00000 n 0005488717 00000 n 0005488760 00000 n 0005488803 00000 n 0005488846 00000 n 0005488889 00000 n 0005488932 00000 n 0005488975 00000 n 0005489018 00000 n 0005489061 00000 n 0005489104 00000 n 0005489147 00000 n 0005489190 00000 n 0005489233 00000 n 0005489276 00000 n 0005489319 00000 n 0005489362 00000 n 0005489405 00000 n 0005489448 00000 n 0005489491 00000 n 0005489534 00000 n 0005489577 00000 n 0005489620 00000 n 0005489663 00000 n 0005489706 00000 n 0005489749 00000 n 0005489792 00000 n 0005489835 00000 n 0005489878 00000 n 0005489921 00000 n 0005489964 00000 n 0005490007 00000 n 0005490050 00000 n 0005490093 00000 n 0005490136 00000 n 0005490179 00000 n 0005490222 00000 n 0005490265 00000 n 0005490308 00000 n 0005490351 00000 n 0005490394 00000 n 0005490437 00000 n 0005490480 00000 n 0005490523 00000 n 0005490566 00000 n 0005490609 00000 n 0005490652 00000 n 0005490695 00000 n 0005490738 00000 n 0005490781 00000 n 0005490824 00000 n 0005490867 00000 n 0005490910 00000 n 0005490953 00000 n 0005490996 00000 n 0005491039 00000 n 0005491082 00000 n 0005491125 00000 n 0005491168 00000 n 0005491211 00000 n 0005491254 00000 n 0005491297 00000 n 0005491340 00000 n 0005491383 00000 n 0005491426 00000 n 0005491469 00000 n 0005491512 00000 n 0005491555 00000 n 0005491598 00000 n 0005491641 00000 n 0005491684 00000 n 0005491727 00000 n 0005491770 00000 n 0005491813 00000 n 0005491856 00000 n 0005491899 00000 n 0005491942 00000 n 0005491985 00000 n 0005492028 00000 n 0005492071 00000 n 0005492114 00000 n 0005492157 00000 n 0005492200 00000 n 0005492243 00000 n 0005492286 00000 n 0005492329 00000 n 0005492372 00000 n 0005492415 00000 n 0005492458 00000 n 0005492501 00000 n 0005492544 00000 n 0005492587 00000 n 0005492630 00000 n 0005492673 00000 n 0005492716 00000 n 0005492759 00000 n 0005492802 00000 n 0005492845 00000 n 0005492888 00000 n 0005492931 00000 n 0005492974 00000 n 0005493017 00000 n 0005493060 00000 n 0005493103 00000 n 0005493146 00000 n 0005493189 00000 n 0005493232 00000 n 0005493275 00000 n 0005493318 00000 n 0005493361 00000 n 0005493404 00000 n 0005493447 00000 n 0005493490 00000 n 0005493533 00000 n 0005493576 00000 n 0005493619 00000 n 0005493662 00000 n 0005493705 00000 n 0005493748 00000 n 0005493791 00000 n 0005493834 00000 n 0005493877 00000 n 0005493920 00000 n 0005493963 00000 n 0005494006 00000 n 0005494049 00000 n 0005494092 00000 n 0005494135 00000 n 0005494178 00000 n 0005494221 00000 n 0005494264 00000 n 0005494307 00000 n 0005494350 00000 n 0005494393 00000 n 0005494436 00000 n 0005494479 00000 n 0005494522 00000 n 0005494565 00000 n 0005494608 00000 n 0005494651 00000 n 0005494694 00000 n 0005494737 00000 n 0005494780 00000 n 0005494823 00000 n 0005494866 00000 n 0005494909 00000 n 0005494952 00000 n 0005494995 00000 n 0005495038 00000 n 0005495081 00000 n 0005495124 00000 n 0005495167 00000 n 0005495210 00000 n 0005495253 00000 n 0005495296 00000 n 0005495339 00000 n 0005495382 00000 n 0005495425 00000 n 0005495468 00000 n 0005495511 00000 n 0005495554 00000 n 0005495597 00000 n 0005495640 00000 n 0005495683 00000 n 0005495726 00000 n 0005495769 00000 n 0005495812 00000 n 0005495855 00000 n 0005495898 00000 n 0005495941 00000 n 0005495984 00000 n 0005496027 00000 n 0005496070 00000 n 0005496113 00000 n 0005496156 00000 n 0005496199 00000 n 0005496242 00000 n 0005496285 00000 n 0005496328 00000 n 0005496371 00000 n 0005496414 00000 n 0005496457 00000 n 0005496500 00000 n 0005496543 00000 n 0005496586 00000 n 0005496629 00000 n 0005496672 00000 n 0005496715 00000 n 0005496758 00000 n 0005496801 00000 n 0005496844 00000 n 0005496887 00000 n 0005496930 00000 n 0005496973 00000 n 0005497016 00000 n 0005497059 00000 n 0005497102 00000 n 0005497145 00000 n 0005497188 00000 n 0005497231 00000 n 0005497274 00000 n 0005497317 00000 n 0005497360 00000 n 0005497403 00000 n 0005497446 00000 n 0005497489 00000 n 0005497532 00000 n 0005497575 00000 n 0005497618 00000 n 0005497661 00000 n 0005497704 00000 n 0005497747 00000 n 0005497790 00000 n 0005497833 00000 n 0005497876 00000 n 0005497919 00000 n 0005497962 00000 n 0005498005 00000 n 0005498048 00000 n 0005498091 00000 n 0005498134 00000 n 0005498177 00000 n 0005498220 00000 n 0005498263 00000 n 0005498306 00000 n 0005498349 00000 n 0005498392 00000 n 0005498723 00000 n 0005499145 00000 n 0005499188 00000 n 0005499231 00000 n 0005499299 00000 n 0005499548 00000 n 0005499647 00000 n 0005504420 00000 n 0005504585 00000 n 0005504627 00000 n 0005504958 00000 n 0005505380 00000 n 0005505423 00000 n 0005505466 00000 n 0005505509 00000 n 0005505552 00000 n 0005505596 00000 n 0005505661 00000 n 0005505704 00000 n 0005505748 00000 n 0005505792 00000 n 0005505836 00000 n 0005505879 00000 n 0005505922 00000 n 0005505966 00000 n 0005506010 00000 n 0005506078 00000 n 0005506327 00000 n 0005506426 00000 n 0005510244 00000 n 0005510409 00000 n 0005510451 00000 n 0005510782 00000 n 0005511204 00000 n 0005511272 00000 n 0005511506 00000 n 0005511605 00000 n 0005515066 00000 n 0005515232 00000 n 0005515275 00000 n 0005515606 00000 n 0005516028 00000 n 0005516071 00000 n 0005516114 00000 n 0005516182 00000 n 0005516402 00000 n 0005516501 00000 n 0005518131 00000 n 0005518462 00000 n 0005518884 00000 n 0005518927 00000 n 0005518971 00000 n 0005519014 00000 n 0005519057 00000 n 0005519100 00000 n 0005519144 00000 n 0005519187 00000 n 0005519255 00000 n 0005519517 00000 n 0005519616 00000 n 0005523486 00000 n 0005523817 00000 n 0005524239 00000 n 0005524283 00000 n 0005524325 00000 n 0005524369 00000 n 0005524412 00000 n 0005524455 00000 n 0005524498 00000 n 0005524541 00000 n 0005524585 00000 n 0005524629 00000 n 0005524672 00000 n 0005524740 00000 n 0005524974 00000 n 0005525073 00000 n 0005529169 00000 n 0005529500 00000 n 0005529922 00000 n 0005529966 00000 n 0005530010 00000 n 0005530053 00000 n 0005530097 00000 n 0005530165 00000 n 0005530385 00000 n 0005530484 00000 n 0005534969 00000 n 0005535300 00000 n 0005535722 00000 n 0005535765 00000 n 0005535833 00000 n 0005536053 00000 n 0005536152 00000 n 0005540504 00000 n 0005540643 00000 n 0005540782 00000 n 0005540921 00000 n 0005541060 00000 n 0005541199 00000 n 0005541338 00000 n 0005541477 00000 n 0005541616 00000 n 0005541755 00000 n 0005541894 00000 n 0005542033 00000 n 0005542172 00000 n 0005542311 00000 n 0005542450 00000 n 0005542589 00000 n 0005542728 00000 n 0005542867 00000 n 0005543006 00000 n 0005543145 00000 n 0005543284 00000 n 0005543423 00000 n 0005543562 00000 n 0005543701 00000 n 0005543840 00000 n 0005543979 00000 n 0005544118 00000 n 0005544257 00000 n 0005544396 00000 n 0005544535 00000 n 0005544674 00000 n 0005544813 00000 n 0005544952 00000 n 0005545091 00000 n 0005545230 00000 n 0005545369 00000 n 0005545508 00000 n 0005545647 00000 n 0005545786 00000 n 0005545925 00000 n 0005546064 00000 n 0005546203 00000 n 0005546342 00000 n 0005546481 00000 n 0005546620 00000 n 0005546759 00000 n 0005546898 00000 n 0005547037 00000 n 0005547176 00000 n 0005547315 00000 n 0005547454 00000 n 0005547593 00000 n 0005547732 00000 n 0005547871 00000 n 0005548010 00000 n 0005548149 00000 n 0005548288 00000 n 0005548427 00000 n 0005548566 00000 n 0005548705 00000 n 0005548844 00000 n 0005548983 00000 n 0005549122 00000 n 0005549261 00000 n 0005549400 00000 n 0005549539 00000 n 0005549678 00000 n 0005549817 00000 n 0005549956 00000 n 0005550095 00000 n 0005550234 00000 n 0005550373 00000 n 0005550512 00000 n 0005550651 00000 n 0005550790 00000 n 0005550929 00000 n 0005551068 00000 n 0005551207 00000 n 0005551346 00000 n 0005551485 00000 n 0005551624 00000 n 0005551763 00000 n 0005551902 00000 n 0005552041 00000 n 0005552180 00000 n 0005552319 00000 n 0005552458 00000 n 0005552597 00000 n 0005552736 00000 n 0005552875 00000 n 0005553014 00000 n 0005553153 00000 n 0005553292 00000 n 0005553431 00000 n 0005553570 00000 n 0005553709 00000 n 0005553848 00000 n 0005553987 00000 n 0005554126 00000 n 0005554265 00000 n 0005554404 00000 n 0005554543 00000 n 0005554682 00000 n 0005554821 00000 n 0005554960 00000 n 0005555099 00000 n 0005555238 00000 n 0005555377 00000 n 0005555516 00000 n 0005555655 00000 n 0005555794 00000 n 0005555933 00000 n 0005556072 00000 n 0005556211 00000 n 0005556350 00000 n 0005556489 00000 n 0005556628 00000 n 0005556767 00000 n 0005556906 00000 n 0005557045 00000 n 0005557184 00000 n 0005557323 00000 n 0005557462 00000 n 0005557601 00000 n 0005557740 00000 n 0005557879 00000 n 0005558018 00000 n 0005558157 00000 n 0005558296 00000 n 0005558435 00000 n 0005558574 00000 n 0005558713 00000 n 0005558852 00000 n 0005558991 00000 n 0005559130 00000 n 0005559269 00000 n 0005559408 00000 n 0005559547 00000 n 0005559686 00000 n 0005559825 00000 n 0005559964 00000 n 0005560103 00000 n 0005560242 00000 n 0005560381 00000 n 0005560520 00000 n 0005560659 00000 n 0005560798 00000 n 0005560937 00000 n 0005561076 00000 n 0005561215 00000 n 0005561354 00000 n 0005561493 00000 n 0005561632 00000 n 0005561771 00000 n 0005561910 00000 n 0005562049 00000 n 0005562188 00000 n 0005562327 00000 n 0005562466 00000 n 0005562605 00000 n 0005562744 00000 n 0005562883 00000 n 0005563022 00000 n 0005563161 00000 n 0005563300 00000 n 0005563439 00000 n 0005563578 00000 n 0005563717 00000 n 0005563856 00000 n 0005563995 00000 n 0005564134 00000 n 0005564273 00000 n 0005564412 00000 n 0005564551 00000 n 0005564690 00000 n 0005564829 00000 n 0005564968 00000 n 0005565107 00000 n 0005565246 00000 n 0005565385 00000 n 0005565524 00000 n 0005565663 00000 n 0005565802 00000 n 0005565941 00000 n 0005566080 00000 n 0005566219 00000 n 0005566358 00000 n 0005566497 00000 n 0005566636 00000 n 0005566775 00000 n 0005566914 00000 n 0005567053 00000 n 0005567192 00000 n 0005567331 00000 n 0005567470 00000 n 0005567609 00000 n 0005567748 00000 n 0005567887 00000 n 0005568026 00000 n 0005568165 00000 n 0005568304 00000 n 0005568443 00000 n 0005568582 00000 n 0005568721 00000 n 0005568860 00000 n 0005568999 00000 n 0005569138 00000 n 0005569277 00000 n 0005569416 00000 n 0005569555 00000 n 0005569694 00000 n 0005569833 00000 n 0005569972 00000 n 0005570111 00000 n 0005570250 00000 n 0005570389 00000 n 0005570528 00000 n 0005570667 00000 n 0005570806 00000 n 0005570945 00000 n 0005571084 00000 n 0005571223 00000 n 0005571362 00000 n 0005571501 00000 n 0005571640 00000 n 0005571779 00000 n 0005571918 00000 n 0005572057 00000 n 0005572196 00000 n 0005572335 00000 n 0005572474 00000 n 0005572613 00000 n 0005572752 00000 n 0005572891 00000 n 0005573030 00000 n 0005573169 00000 n 0005573308 00000 n 0005573447 00000 n 0005573586 00000 n 0005573725 00000 n 0005573864 00000 n 0005574003 00000 n 0005574142 00000 n 0005574281 00000 n 0005574420 00000 n 0005574559 00000 n 0005574698 00000 n 0005574837 00000 n 0005574976 00000 n 0005575115 00000 n 0005575254 00000 n 0005575393 00000 n 0005575532 00000 n 0005575671 00000 n 0005575810 00000 n 0005575949 00000 n 0005576088 00000 n 0005576227 00000 n 0005576366 00000 n 0005576505 00000 n 0005576644 00000 n 0005576783 00000 n 0005576922 00000 n 0005577061 00000 n 0005577200 00000 n 0005577339 00000 n 0005577478 00000 n 0005577617 00000 n 0005577756 00000 n 0005577895 00000 n 0005578034 00000 n 0005578173 00000 n 0005578312 00000 n 0005578451 00000 n 0005578590 00000 n 0005578729 00000 n 0005578868 00000 n 0005579007 00000 n 0005579146 00000 n 0005579285 00000 n 0005579424 00000 n 0005579563 00000 n 0005579702 00000 n 0005579841 00000 n 0005579980 00000 n 0005580119 00000 n 0005580258 00000 n 0005580397 00000 n 0005580536 00000 n 0005580675 00000 n 0005580814 00000 n 0005580953 00000 n 0005581092 00000 n 0005581231 00000 n 0005581370 00000 n 0005581509 00000 n 0005581648 00000 n 0005581787 00000 n 0005581926 00000 n 0005582065 00000 n 0005582204 00000 n 0005582343 00000 n 0005582482 00000 n 0005582621 00000 n 0005582760 00000 n 0005582899 00000 n 0005583038 00000 n 0005583177 00000 n 0005583316 00000 n 0005583455 00000 n 0005583594 00000 n 0005583733 00000 n 0005583872 00000 n 0005584011 00000 n 0005584150 00000 n 0005584289 00000 n 0005584428 00000 n 0005584567 00000 n 0005584706 00000 n 0005584845 00000 n 0005584984 00000 n 0005585123 00000 n 0005585262 00000 n 0005585401 00000 n 0005585540 00000 n 0005585679 00000 n 0005585818 00000 n 0005585957 00000 n 0005586096 00000 n 0005586235 00000 n 0005586374 00000 n 0005586513 00000 n 0005586652 00000 n 0005586791 00000 n 0005586930 00000 n 0005587069 00000 n 0005587208 00000 n 0005587347 00000 n 0005587486 00000 n 0005587625 00000 n 0005587764 00000 n 0005587903 00000 n 0005588042 00000 n 0005588181 00000 n 0005588320 00000 n 0005588459 00000 n 0005588598 00000 n 0005588737 00000 n 0005588876 00000 n 0005589015 00000 n 0005589154 00000 n 0005589293 00000 n 0005589432 00000 n 0005589571 00000 n 0005589710 00000 n 0005589849 00000 n 0005589988 00000 n 0005590127 00000 n 0005590266 00000 n 0005590405 00000 n 0005590544 00000 n 0005590683 00000 n 0005590822 00000 n 0005590961 00000 n 0005591100 00000 n 0005591239 00000 n 0005591378 00000 n 0005591517 00000 n 0005591560 00000 n 0005591603 00000 n 0005591646 00000 n 0005591689 00000 n 0005591732 00000 n 0005591775 00000 n 0005591818 00000 n 0005591861 00000 n 0005591904 00000 n 0005591947 00000 n 0005591990 00000 n 0005592033 00000 n 0005592076 00000 n 0005592119 00000 n 0005592162 00000 n 0005592205 00000 n 0005592248 00000 n 0005592291 00000 n 0005592334 00000 n 0005592377 00000 n 0005592420 00000 n 0005592463 00000 n 0005592506 00000 n 0005592549 00000 n 0005592592 00000 n 0005592635 00000 n 0005592678 00000 n 0005592721 00000 n 0005592764 00000 n 0005592807 00000 n 0005592850 00000 n 0005592893 00000 n 0005592936 00000 n 0005592979 00000 n 0005593022 00000 n 0005593065 00000 n 0005593108 00000 n 0005593151 00000 n 0005593194 00000 n 0005593237 00000 n 0005593280 00000 n 0005593323 00000 n 0005593366 00000 n 0005593409 00000 n 0005593452 00000 n 0005593495 00000 n 0005593538 00000 n 0005593581 00000 n 0005593624 00000 n 0005593667 00000 n 0005593710 00000 n 0005593753 00000 n 0005593796 00000 n 0005593839 00000 n 0005593882 00000 n 0005593925 00000 n 0005593968 00000 n 0005594011 00000 n 0005594054 00000 n 0005594097 00000 n 0005594140 00000 n 0005594183 00000 n 0005594226 00000 n 0005594269 00000 n 0005594312 00000 n 0005594355 00000 n 0005594398 00000 n 0005594441 00000 n 0005594484 00000 n 0005594527 00000 n 0005594570 00000 n 0005594613 00000 n 0005594656 00000 n 0005594699 00000 n 0005594742 00000 n 0005594785 00000 n 0005594828 00000 n 0005594871 00000 n 0005594914 00000 n 0005594957 00000 n 0005595000 00000 n 0005595043 00000 n 0005595086 00000 n 0005595129 00000 n 0005595172 00000 n 0005595215 00000 n 0005595258 00000 n 0005595301 00000 n 0005595344 00000 n 0005595387 00000 n 0005595430 00000 n 0005595473 00000 n 0005595516 00000 n 0005595559 00000 n 0005595602 00000 n 0005595645 00000 n 0005595688 00000 n 0005595731 00000 n 0005595774 00000 n 0005595817 00000 n 0005595860 00000 n 0005595903 00000 n 0005595946 00000 n 0005595989 00000 n 0005596032 00000 n 0005596075 00000 n 0005596118 00000 n 0005596161 00000 n 0005596204 00000 n 0005596247 00000 n 0005596290 00000 n 0005596333 00000 n 0005596376 00000 n 0005596419 00000 n 0005596462 00000 n 0005596505 00000 n 0005596548 00000 n 0005596591 00000 n 0005596634 00000 n 0005596677 00000 n 0005596720 00000 n 0005596763 00000 n 0005596806 00000 n 0005596849 00000 n 0005596892 00000 n 0005596935 00000 n 0005596978 00000 n 0005597021 00000 n 0005597064 00000 n 0005597107 00000 n 0005597150 00000 n 0005597193 00000 n 0005597236 00000 n 0005597279 00000 n 0005597322 00000 n 0005597365 00000 n 0005597408 00000 n 0005597451 00000 n 0005597494 00000 n 0005597537 00000 n 0005597580 00000 n 0005597623 00000 n 0005597666 00000 n 0005597709 00000 n 0005597752 00000 n 0005597795 00000 n 0005597838 00000 n 0005597881 00000 n 0005597924 00000 n 0005597967 00000 n 0005598010 00000 n 0005598053 00000 n 0005598096 00000 n 0005598139 00000 n 0005598182 00000 n 0005598225 00000 n 0005598268 00000 n 0005598311 00000 n 0005598354 00000 n 0005598397 00000 n 0005598440 00000 n 0005598483 00000 n 0005598526 00000 n 0005598569 00000 n 0005598612 00000 n 0005598655 00000 n 0005598698 00000 n 0005598741 00000 n 0005598784 00000 n 0005598827 00000 n 0005598870 00000 n 0005598913 00000 n 0005598956 00000 n 0005598999 00000 n 0005599042 00000 n 0005599085 00000 n 0005599128 00000 n 0005599171 00000 n 0005599214 00000 n 0005599257 00000 n 0005599300 00000 n 0005599343 00000 n 0005599386 00000 n 0005599429 00000 n 0005599472 00000 n 0005599515 00000 n 0005599558 00000 n 0005599601 00000 n 0005599644 00000 n 0005599687 00000 n 0005599730 00000 n 0005599773 00000 n 0005599816 00000 n 0005599859 00000 n 0005599902 00000 n 0005599945 00000 n 0005599988 00000 n 0005600031 00000 n 0005600074 00000 n 0005600117 00000 n 0005600160 00000 n 0005600203 00000 n 0005600246 00000 n 0005600289 00000 n 0005600332 00000 n 0005600375 00000 n 0005600418 00000 n 0005600461 00000 n 0005600504 00000 n 0005600547 00000 n 0005600590 00000 n 0005600633 00000 n 0005600676 00000 n 0005600719 00000 n 0005600762 00000 n 0005600805 00000 n 0005600848 00000 n 0005600891 00000 n 0005600934 00000 n 0005600977 00000 n 0005601020 00000 n 0005601063 00000 n 0005601106 00000 n 0005601149 00000 n 0005601192 00000 n 0005601235 00000 n 0005601278 00000 n 0005601321 00000 n 0005601364 00000 n 0005601407 00000 n 0005601450 00000 n 0005601493 00000 n 0005601536 00000 n 0005601579 00000 n 0005601622 00000 n 0005601665 00000 n 0005601708 00000 n 0005601751 00000 n 0005601794 00000 n 0005601837 00000 n 0005601880 00000 n 0005601923 00000 n 0005601966 00000 n 0005602009 00000 n 0005602052 00000 n 0005602095 00000 n 0005602138 00000 n 0005602181 00000 n 0005602224 00000 n 0005602267 00000 n 0005602310 00000 n 0005602353 00000 n 0005602396 00000 n 0005602439 00000 n 0005602482 00000 n 0005602525 00000 n 0005602568 00000 n 0005602611 00000 n 0005602654 00000 n 0005602697 00000 n 0005602740 00000 n 0005602783 00000 n 0005602826 00000 n 0005602869 00000 n 0005602912 00000 n 0005602955 00000 n 0005602998 00000 n 0005603041 00000 n 0005603084 00000 n 0005603127 00000 n 0005603170 00000 n 0005603213 00000 n 0005603256 00000 n 0005603299 00000 n 0005603342 00000 n 0005603385 00000 n 0005603428 00000 n 0005603471 00000 n 0005603514 00000 n 0005603557 00000 n 0005603600 00000 n 0005603643 00000 n 0005603686 00000 n 0005603729 00000 n 0005603772 00000 n 0005603815 00000 n 0005603858 00000 n 0005603901 00000 n 0005603944 00000 n 0005603987 00000 n 0005604030 00000 n 0005604073 00000 n 0005604116 00000 n 0005604159 00000 n 0005604202 00000 n 0005604245 00000 n 0005604288 00000 n 0005604331 00000 n 0005604374 00000 n 0005604417 00000 n 0005604460 00000 n 0005604503 00000 n 0005604546 00000 n 0005604589 00000 n 0005604632 00000 n 0005604675 00000 n 0005604718 00000 n 0005604761 00000 n 0005604804 00000 n 0005604847 00000 n 0005604890 00000 n 0005604933 00000 n 0005604976 00000 n 0005605019 00000 n 0005605062 00000 n 0005605105 00000 n 0005605148 00000 n 0005605191 00000 n 0005605234 00000 n 0005605277 00000 n 0005605320 00000 n 0005605363 00000 n 0005605406 00000 n 0005605449 00000 n 0005605492 00000 n 0005605535 00000 n 0005605578 00000 n 0005605621 00000 n 0005605664 00000 n 0005605707 00000 n 0005605750 00000 n 0005605793 00000 n 0005605836 00000 n 0005605879 00000 n 0005606210 00000 n 0005606632 00000 n 0005606675 00000 n 0005606718 00000 n 0005606761 00000 n 0005606804 00000 n 0005606848 00000 n 0005606891 00000 n 0005606934 00000 n 0005606976 00000 n 0005607018 00000 n 0005607061 00000 n 0005607103 00000 n 0005607146 00000 n 0005607190 00000 n 0005607233 00000 n 0005607276 00000 n 0005607319 00000 n 0005607387 00000 n 0005607636 00000 n 0005607735 00000 n 0005610638 00000 n 0005610969 00000 n 0005611391 00000 n 0005611434 00000 n 0005611478 00000 n 0005611521 00000 n 0005611564 00000 n 0005611607 00000 n 0005611650 00000 n 0005611694 00000 n 0005611762 00000 n 0005612011 00000 n 0005612110 00000 n 0005616050 00000 n 0005616381 00000 n 0005616803 00000 n 0005616871 00000 n 0005617120 00000 n 0005617219 00000 n 0005621265 00000 n 0005621596 00000 n 0005622018 00000 n 0005622060 00000 n 0005622104 00000 n 0005622435 00000 n 0005622857 00000 n 0005622925 00000 n 0005623145 00000 n 0005623244 00000 n 0005627259 00000 n 0005627590 00000 n 0005628012 00000 n 0005628080 00000 n 0005628343 00000 n 0005628442 00000 n 0005633043 00000 n 0005633374 00000 n 0005633796 00000 n 0005633840 00000 n 0005633883 00000 n 0005633926 00000 n 0005633969 00000 n 0005634037 00000 n 0005634257 00000 n 0005634356 00000 n 0005636038 00000 n 0005636369 00000 n 0005636791 00000 n 0005636834 00000 n 0005636878 00000 n 0005636921 00000 n 0005636965 00000 n 0005637008 00000 n 0005637052 00000 n 0005637120 00000 n 0005637369 00000 n 0005637468 00000 n 0005641750 00000 n 0005642081 00000 n 0005642503 00000 n 0005642546 00000 n 0005642589 00000 n 0005642632 00000 n 0005642674 00000 n 0005642717 00000 n 0005642759 00000 n 0005642803 00000 n 0005642847 00000 n 0005642915 00000 n 0005643135 00000 n 0005643234 00000 n 0005647012 00000 n 0005647343 00000 n 0005647765 00000 n 0005647808 00000 n 0005647851 00000 n 0005647919 00000 n 0005648139 00000 n 0005648238 00000 n 0005651108 00000 n 0005651439 00000 n 0005651861 00000 n 0005651904 00000 n 0005651972 00000 n 0005652221 00000 n 0005652320 00000 n 0005656036 00000 n 0005656367 00000 n 0005656789 00000 n 0005656833 00000 n 0005656876 00000 n 0005656919 00000 n 0005656962 00000 n 0005657006 00000 n 0005657050 00000 n 0005657094 00000 n 0005657137 00000 n 0005657181 00000 n 0005657249 00000 n 0005657469 00000 n 0005657568 00000 n 0005661395 00000 n 0005661726 00000 n 0005662148 00000 n 0005662190 00000 n 0005662233 00000 n 0005662301 00000 n 0005662521 00000 n 0005662620 00000 n 0005664690 00000 n 0005665021 00000 n 0005665443 00000 n 0005665487 00000 n 0005665818 00000 n 0005666240 00000 n 0005666283 00000 n 0005666326 00000 n 0005666394 00000 n 0005666614 00000 n 0005666713 00000 n 0005668580 00000 n 0005668911 00000 n 0005669333 00000 n 0005669401 00000 n 0005669678 00000 n 0005669777 00000 n 0005673779 00000 n 0005673945 00000 n 0005674111 00000 n 0005674277 00000 n 0005674319 00000 n 0005674361 00000 n 0005674403 00000 n 0005674734 00000 n 0005675156 00000 n 0005675200 00000 n 0005675243 00000 n 0005675286 00000 n 0005675330 00000 n 0005675373 00000 n 0005675416 00000 n 0005675747 00000 n 0005676169 00000 n 0005676212 00000 n 0005676255 00000 n 0005676299 00000 n 0005676341 00000 n 0005676385 00000 n 0005676428 00000 n 0005676472 00000 n 0005676516 00000 n 0005676558 00000 n 0005676601 00000 n 0005676644 00000 n 0005676688 00000 n 0005676732 00000 n 0005676775 00000 n 0005676819 00000 n 0005676862 00000 n 0005676906 00000 n 0005676949 00000 n 0005676992 00000 n 0005677035 00000 n 0005677079 00000 n 0005677122 00000 n 0005677190 00000 n 0005677410 00000 n 0005677509 00000 n 0005679646 00000 n 0005679977 00000 n 0005680399 00000 n 0005680443 00000 n 0005680511 00000 n 0005680760 00000 n 0005680859 00000 n 0005685561 00000 n 0005685727 00000 n 0005685769 00000 n 0005686100 00000 n 0005686522 00000 n 0005686590 00000 n 0005686854 00000 n 0005686953 00000 n 0005688999 00000 n 0005689165 00000 n 0005689331 00000 n 0005689497 00000 n 0005689539 00000 n 0005689581 00000 n 0005689623 00000 n 0005689954 00000 n 0005690376 00000 n 0005690444 00000 n 0005690664 00000 n 0005690763 00000 n 0005693800 00000 n 0005694131 00000 n 0005694553 00000 n 0005694597 00000 n 0005694641 00000 n 0005694684 00000 n 0005694727 00000 n 0005694770 00000 n 0005694814 00000 n 0005694857 00000 n 0005694901 00000 n 0005694969 00000 n 0005695204 00000 n 0005695303 00000 n 0005699527 00000 n 0005699666 00000 n 0005699805 00000 n 0005699944 00000 n 0005700083 00000 n 0005700222 00000 n 0005700361 00000 n 0005700500 00000 n 0005700639 00000 n 0005700778 00000 n 0005700917 00000 n 0005701056 00000 n 0005701195 00000 n 0005701334 00000 n 0005701473 00000 n 0005701612 00000 n 0005701751 00000 n 0005701890 00000 n 0005702029 00000 n 0005702168 00000 n 0005702307 00000 n 0005702446 00000 n 0005702585 00000 n 0005702724 00000 n 0005702863 00000 n 0005703002 00000 n 0005703141 00000 n 0005703280 00000 n 0005703419 00000 n 0005703558 00000 n 0005703697 00000 n 0005703836 00000 n 0005703975 00000 n 0005704114 00000 n 0005704253 00000 n 0005704392 00000 n 0005704531 00000 n 0005704670 00000 n 0005704809 00000 n 0005704948 00000 n 0005705087 00000 n 0005705226 00000 n 0005705365 00000 n 0005705504 00000 n 0005705643 00000 n 0005705782 00000 n 0005705921 00000 n 0005706060 00000 n 0005706199 00000 n 0005706338 00000 n 0005706477 00000 n 0005706616 00000 n 0005706755 00000 n 0005706894 00000 n 0005707033 00000 n 0005707172 00000 n 0005707311 00000 n 0005707450 00000 n 0005707589 00000 n 0005707728 00000 n 0005707867 00000 n 0005708006 00000 n 0005708145 00000 n 0005708284 00000 n 0005708423 00000 n 0005708562 00000 n 0005708701 00000 n 0005708840 00000 n 0005708979 00000 n 0005709118 00000 n 0005709257 00000 n 0005709396 00000 n 0005709535 00000 n 0005709674 00000 n 0005709813 00000 n 0005709952 00000 n 0005710091 00000 n 0005710230 00000 n 0005710369 00000 n 0005710508 00000 n 0005710647 00000 n 0005710786 00000 n 0005710925 00000 n 0005711064 00000 n 0005711203 00000 n 0005711342 00000 n 0005711481 00000 n 0005711620 00000 n 0005711759 00000 n 0005711898 00000 n 0005712037 00000 n 0005712176 00000 n 0005712315 00000 n 0005712454 00000 n 0005712593 00000 n 0005712732 00000 n 0005712871 00000 n 0005713010 00000 n 0005713149 00000 n 0005713288 00000 n 0005713427 00000 n 0005713566 00000 n 0005713705 00000 n 0005713844 00000 n 0005713983 00000 n 0005714122 00000 n 0005714261 00000 n 0005714400 00000 n 0005714539 00000 n 0005714678 00000 n 0005714817 00000 n 0005714956 00000 n 0005715095 00000 n 0005715234 00000 n 0005715373 00000 n 0005715512 00000 n 0005715651 00000 n 0005715790 00000 n 0005715929 00000 n 0005716068 00000 n 0005716207 00000 n 0005716346 00000 n 0005716485 00000 n 0005716624 00000 n 0005716763 00000 n 0005716902 00000 n 0005717041 00000 n 0005717180 00000 n 0005717319 00000 n 0005717458 00000 n 0005717597 00000 n 0005717736 00000 n 0005717875 00000 n 0005718014 00000 n 0005718153 00000 n 0005718292 00000 n 0005718431 00000 n 0005718570 00000 n 0005718709 00000 n 0005718848 00000 n 0005718987 00000 n 0005719126 00000 n 0005719265 00000 n 0005719404 00000 n 0005719543 00000 n 0005719682 00000 n 0005719821 00000 n 0005719960 00000 n 0005720099 00000 n 0005720238 00000 n 0005720377 00000 n 0005720516 00000 n 0005720655 00000 n 0005720794 00000 n 0005720933 00000 n 0005721072 00000 n 0005721211 00000 n 0005721350 00000 n 0005721489 00000 n 0005721628 00000 n 0005721767 00000 n 0005721906 00000 n 0005722045 00000 n 0005722184 00000 n 0005722323 00000 n 0005722462 00000 n 0005722601 00000 n 0005722740 00000 n 0005722879 00000 n 0005723018 00000 n 0005723157 00000 n 0005723296 00000 n 0005723435 00000 n 0005723574 00000 n 0005723713 00000 n 0005723852 00000 n 0005723991 00000 n 0005724130 00000 n 0005724269 00000 n 0005724408 00000 n 0005724547 00000 n 0005724686 00000 n 0005724825 00000 n 0005724964 00000 n 0005725103 00000 n 0005725242 00000 n 0005725381 00000 n 0005725520 00000 n 0005725659 00000 n 0005725798 00000 n 0005725937 00000 n 0005726076 00000 n 0005726215 00000 n 0005726354 00000 n 0005726493 00000 n 0005726632 00000 n 0005726771 00000 n 0005726910 00000 n 0005727049 00000 n 0005727188 00000 n 0005727327 00000 n 0005727466 00000 n 0005727605 00000 n 0005727744 00000 n 0005727883 00000 n 0005728022 00000 n 0005728161 00000 n 0005728300 00000 n 0005728439 00000 n 0005728578 00000 n 0005728717 00000 n 0005728856 00000 n 0005728995 00000 n 0005729134 00000 n 0005729273 00000 n 0005729412 00000 n 0005729551 00000 n 0005729690 00000 n 0005729829 00000 n 0005729968 00000 n 0005730107 00000 n 0005730246 00000 n 0005730385 00000 n 0005730524 00000 n 0005730663 00000 n 0005730802 00000 n 0005730941 00000 n 0005731080 00000 n 0005731219 00000 n 0005731358 00000 n 0005731497 00000 n 0005731636 00000 n 0005731775 00000 n 0005731914 00000 n 0005732053 00000 n 0005732192 00000 n 0005732331 00000 n 0005732470 00000 n 0005732609 00000 n 0005732748 00000 n 0005732887 00000 n 0005733026 00000 n 0005733165 00000 n 0005733304 00000 n 0005733443 00000 n 0005733582 00000 n 0005733721 00000 n 0005733860 00000 n 0005733999 00000 n 0005734138 00000 n 0005734277 00000 n 0005734416 00000 n 0005734555 00000 n 0005734694 00000 n 0005734833 00000 n 0005734972 00000 n 0005735111 00000 n 0005735250 00000 n 0005735389 00000 n 0005735528 00000 n 0005735667 00000 n 0005735806 00000 n 0005735945 00000 n 0005736084 00000 n 0005736223 00000 n 0005736362 00000 n 0005736501 00000 n 0005736544 00000 n 0005736587 00000 n 0005736630 00000 n 0005736673 00000 n 0005736716 00000 n 0005736759 00000 n 0005736802 00000 n 0005736845 00000 n 0005736888 00000 n 0005736931 00000 n 0005736974 00000 n 0005737017 00000 n 0005737060 00000 n 0005737103 00000 n 0005737146 00000 n 0005737189 00000 n 0005737232 00000 n 0005737275 00000 n 0005737318 00000 n 0005737361 00000 n 0005737404 00000 n 0005737447 00000 n 0005737490 00000 n 0005737533 00000 n 0005737576 00000 n 0005737619 00000 n 0005737662 00000 n 0005737705 00000 n 0005737748 00000 n 0005737791 00000 n 0005737834 00000 n 0005737877 00000 n 0005737920 00000 n 0005737963 00000 n 0005738006 00000 n 0005738049 00000 n 0005738092 00000 n 0005738135 00000 n 0005738178 00000 n 0005738221 00000 n 0005738264 00000 n 0005738307 00000 n 0005738350 00000 n 0005738393 00000 n 0005738436 00000 n 0005738479 00000 n 0005738522 00000 n 0005738565 00000 n 0005738608 00000 n 0005738651 00000 n 0005738694 00000 n 0005738737 00000 n 0005738780 00000 n 0005738823 00000 n 0005738866 00000 n 0005738909 00000 n 0005738952 00000 n 0005738995 00000 n 0005739038 00000 n 0005739081 00000 n 0005739124 00000 n 0005739167 00000 n 0005739210 00000 n 0005739253 00000 n 0005739296 00000 n 0005739339 00000 n 0005739382 00000 n 0005739425 00000 n 0005739468 00000 n 0005739511 00000 n 0005739554 00000 n 0005739597 00000 n 0005739640 00000 n 0005739683 00000 n 0005739726 00000 n 0005739769 00000 n 0005739812 00000 n 0005739855 00000 n 0005739898 00000 n 0005739941 00000 n 0005739984 00000 n 0005740027 00000 n 0005740070 00000 n 0005740113 00000 n 0005740156 00000 n 0005740199 00000 n 0005740242 00000 n 0005740285 00000 n 0005740328 00000 n 0005740371 00000 n 0005740414 00000 n 0005740457 00000 n 0005740500 00000 n 0005740543 00000 n 0005740586 00000 n 0005740629 00000 n 0005740672 00000 n 0005740715 00000 n 0005740758 00000 n 0005740801 00000 n 0005740844 00000 n 0005740887 00000 n 0005740930 00000 n 0005740973 00000 n 0005741016 00000 n 0005741059 00000 n 0005741102 00000 n 0005741145 00000 n 0005741188 00000 n 0005741231 00000 n 0005741274 00000 n 0005741317 00000 n 0005741360 00000 n 0005741403 00000 n 0005741446 00000 n 0005741489 00000 n 0005741532 00000 n 0005741575 00000 n 0005741618 00000 n 0005741661 00000 n 0005741704 00000 n 0005741747 00000 n 0005741790 00000 n 0005741833 00000 n 0005741876 00000 n 0005741919 00000 n 0005741962 00000 n 0005742005 00000 n 0005742048 00000 n 0005742091 00000 n 0005742134 00000 n 0005742177 00000 n 0005742220 00000 n 0005742263 00000 n 0005742306 00000 n 0005742349 00000 n 0005742392 00000 n 0005742435 00000 n 0005742478 00000 n 0005742521 00000 n 0005742564 00000 n 0005742607 00000 n 0005742650 00000 n 0005742693 00000 n 0005742736 00000 n 0005742779 00000 n 0005742822 00000 n 0005742865 00000 n 0005742908 00000 n 0005742951 00000 n 0005742994 00000 n 0005743037 00000 n 0005743080 00000 n 0005743123 00000 n 0005743166 00000 n 0005743209 00000 n 0005743252 00000 n 0005743295 00000 n 0005743338 00000 n 0005743381 00000 n 0005743424 00000 n 0005743467 00000 n 0005743510 00000 n 0005743553 00000 n 0005743596 00000 n 0005743639 00000 n 0005743682 00000 n 0005743725 00000 n 0005743768 00000 n 0005743811 00000 n 0005743854 00000 n 0005743897 00000 n 0005743940 00000 n 0005743983 00000 n 0005744026 00000 n 0005744069 00000 n 0005744112 00000 n 0005744155 00000 n 0005744198 00000 n 0005744241 00000 n 0005744284 00000 n 0005744327 00000 n 0005744370 00000 n 0005744413 00000 n 0005744456 00000 n 0005744499 00000 n 0005744542 00000 n 0005744585 00000 n 0005744628 00000 n 0005744671 00000 n 0005744714 00000 n 0005744757 00000 n 0005744800 00000 n 0005744843 00000 n 0005744886 00000 n 0005744929 00000 n 0005744972 00000 n 0005745015 00000 n 0005745058 00000 n 0005745101 00000 n 0005745144 00000 n 0005745187 00000 n 0005745230 00000 n 0005745273 00000 n 0005745316 00000 n 0005745359 00000 n 0005745402 00000 n 0005745445 00000 n 0005745488 00000 n 0005745531 00000 n 0005745574 00000 n 0005745617 00000 n 0005745660 00000 n 0005745991 00000 n 0005746413 00000 n 0005746456 00000 n 0005746499 00000 n 0005746542 00000 n 0005746585 00000 n 0005746628 00000 n 0005746671 00000 n 0005746714 00000 n 0005746757 00000 n 0005746800 00000 n 0005746842 00000 n 0005746885 00000 n 0005746953 00000 n 0005747202 00000 n 0005747301 00000 n 0005752296 00000 n 0005752627 00000 n 0005753049 00000 n 0005753092 00000 n 0005753136 00000 n 0005753178 00000 n 0005753221 00000 n 0005753289 00000 n 0005753552 00000 n 0005753651 00000 n 0005758255 00000 n 0005758422 00000 n 0005758465 00000 n 0005758509 00000 n 0005758552 00000 n 0005758596 00000 n 0005758639 00000 n 0005758683 00000 n 0005758726 00000 n 0005758768 00000 n 0005758811 00000 n 0005758853 00000 n 0005758921 00000 n 0005759111 00000 n 0005759210 00000 n 0005759428 00000 n 0005759759 00000 n 0005760181 00000 n 0005760225 00000 n 0005760269 00000 n 0005760313 00000 n 0005760381 00000 n 0005760615 00000 n 0005760714 00000 n 0005765608 00000 n 0005765773 00000 n 0005765815 00000 n 0005766146 00000 n 0005766568 00000 n 0005766612 00000 n 0005766680 00000 n 0005766957 00000 n 0005767056 00000 n 0005770970 00000 n 0005771301 00000 n 0005771723 00000 n 0005771791 00000 n 0005772040 00000 n 0005772139 00000 n 0005775665 00000 n 0005775996 00000 n 0005776418 00000 n 0005776461 00000 n 0005776504 00000 n 0005776548 00000 n 0005776616 00000 n 0005776865 00000 n 0005776964 00000 n 0005780305 00000 n 0005780636 00000 n 0005781058 00000 n 0005781102 00000 n 0005781145 00000 n 0005781189 00000 n 0005781233 00000 n 0005781301 00000 n 0005781521 00000 n 0005781620 00000 n 0005785113 00000 n 0005785444 00000 n 0005785866 00000 n 0005785910 00000 n 0005785953 00000 n 0005785997 00000 n 0005786039 00000 n 0005786082 00000 n 0005786126 00000 n 0005786194 00000 n 0005786429 00000 n 0005786528 00000 n 0005791142 00000 n 0005791473 00000 n 0005791895 00000 n 0005791939 00000 n 0005791983 00000 n 0005792027 00000 n 0005792071 00000 n 0005792115 00000 n 0005792158 00000 n 0005792201 00000 n 0005792244 00000 n 0005792312 00000 n 0005792561 00000 n 0005792660 00000 n 0005797873 00000 n 0005798204 00000 n 0005798626 00000 n 0005798669 00000 n 0005798711 00000 n 0005798754 00000 n 0005798797 00000 n 0005798841 00000 n 0005798885 00000 n 0005798953 00000 n 0005799201 00000 n 0005799300 00000 n 0005803751 00000 n 0005804082 00000 n 0005804504 00000 n 0005804572 00000 n 0005804792 00000 n 0005804891 00000 n 0005807627 00000 n 0005807958 00000 n 0005808380 00000 n 0005808424 00000 n 0005808492 00000 n 0005808755 00000 n 0005808854 00000 n 0005810903 00000 n 0005811234 00000 n 0005811656 00000 n 0005811700 00000 n 0005811744 00000 n 0005811812 00000 n 0005812076 00000 n 0005812175 00000 n 0005814063 00000 n 0005814230 00000 n 0005814397 00000 n 0005814564 00000 n 0005814607 00000 n 0005814650 00000 n 0005814693 00000 n 0005815024 00000 n 0005815446 00000 n 0005815489 00000 n 0005815532 00000 n 0005815575 00000 n 0005815619 00000 n 0005815662 00000 n 0005815705 00000 n 0005815749 00000 n 0005815791 00000 n 0005815835 00000 n 0005815878 00000 n 0005815946 00000 n 0005816195 00000 n 0005816294 00000 n 0005820537 00000 n 0005820868 00000 n 0005821290 00000 n 0005821333 00000 n 0005821401 00000 n 0005821636 00000 n 0005821735 00000 n 0005825812 00000 n 0005826143 00000 n 0005826565 00000 n 0005826633 00000 n 0005826882 00000 n 0005826981 00000 n 0005830306 00000 n 0005830472 00000 n 0005830638 00000 n 0005830804 00000 n 0005830873 00000 n 0005830931 00000 n 0005830973 00000 n 0005831304 00000 n 0005831726 00000 n 0005831770 00000 n 0005831814 00000 n 0005831858 00000 n 0005831901 00000 n 0005831945 00000 n 0005831988 00000 n 0005832031 00000 n 0005832074 00000 n 0005832117 00000 n 0005832185 00000 n 0005832419 00000 n 0005832518 00000 n 0005836630 00000 n 0005836797 00000 n 0005836964 00000 n 0005837022 00000 n 0005837065 00000 n 0005837396 00000 n 0005837818 00000 n 0005837862 00000 n 0005837906 00000 n 0005839671 00000 n 0005840994 00000 n 0005863117 00000 n 0005863160 00000 n 0005863202 00000 n 0005863245 00000 n 0005863289 00000 n 0005863332 00000 n 0005863400 00000 n 0005863635 00000 n 0005863734 00000 n 0005868345 00000 n 0005868676 00000 n 0005869098 00000 n 0005869142 00000 n 0005869186 00000 n 0005869228 00000 n 0005869271 00000 n 0005869339 00000 n 0005869573 00000 n 0005869672 00000 n 0005872632 00000 n 0005872799 00000 n 0005873130 00000 n 0005873552 00000 n 0005873595 00000 n 0005873639 00000 n 0005873683 00000 n 0005876351 00000 n 0005876395 00000 n 0005876438 00000 n 0005876482 00000 n 0005876550 00000 n 0005876813 00000 n 0005876912 00000 n 0005879431 00000 n 0005879762 00000 n 0005880184 00000 n 0005880228 00000 n 0005880296 00000 n 0005880545 00000 n 0005880644 00000 n 0005884652 00000 n 0005884983 00000 n 0005885405 00000 n 0005885448 00000 n 0005885516 00000 n 0005885765 00000 n 0005885864 00000 n 0005889547 00000 n 0005889878 00000 n 0005890300 00000 n 0005890368 00000 n 0005890645 00000 n 0005890744 00000 n 0005894695 00000 n 0005894861 00000 n 0005894903 00000 n 0005895234 00000 n 0005895656 00000 n 0005895699 00000 n 0005895743 00000 n 0005895786 00000 n 0005895829 00000 n 0005895873 00000 n 0005895917 00000 n 0005895961 00000 n 0005896004 00000 n 0005896047 00000 n 0005896091 00000 n 0005896134 00000 n 0005896178 00000 n 0005896246 00000 n 0005896525 00000 n 0005896624 00000 n 0005898769 00000 n 0005898936 00000 n 0005899103 00000 n 0005899270 00000 n 0005899313 00000 n 0005899356 00000 n 0005899399 00000 n 0005899730 00000 n 0005900152 00000 n 0005900220 00000 n 0005900455 00000 n 0005900554 00000 n 0005905041 00000 n 0005905180 00000 n 0005905319 00000 n 0005905458 00000 n 0005905597 00000 n 0005905736 00000 n 0005905875 00000 n 0005906014 00000 n 0005906153 00000 n 0005906292 00000 n 0005906431 00000 n 0005906570 00000 n 0005906709 00000 n 0005906848 00000 n 0005906987 00000 n 0005907126 00000 n 0005907265 00000 n 0005907404 00000 n 0005907543 00000 n 0005907682 00000 n 0005907821 00000 n 0005907960 00000 n 0005908099 00000 n 0005908238 00000 n 0005908377 00000 n 0005908516 00000 n 0005908655 00000 n 0005908794 00000 n 0005908933 00000 n 0005909072 00000 n 0005909211 00000 n 0005909350 00000 n 0005909489 00000 n 0005909628 00000 n 0005909767 00000 n 0005909906 00000 n 0005910045 00000 n 0005910184 00000 n 0005910323 00000 n 0005910462 00000 n 0005910601 00000 n 0005910740 00000 n 0005910879 00000 n 0005911018 00000 n 0005911157 00000 n 0005911296 00000 n 0005911435 00000 n 0005911574 00000 n 0005911713 00000 n 0005911852 00000 n 0005911991 00000 n 0005912130 00000 n 0005912269 00000 n 0005912408 00000 n 0005912547 00000 n 0005912686 00000 n 0005912825 00000 n 0005912964 00000 n 0005913103 00000 n 0005913242 00000 n 0005913381 00000 n 0005913520 00000 n 0005913659 00000 n 0005913798 00000 n 0005913937 00000 n 0005914076 00000 n 0005914215 00000 n 0005914354 00000 n 0005914493 00000 n 0005914632 00000 n 0005914771 00000 n 0005914910 00000 n 0005915049 00000 n 0005915188 00000 n 0005915327 00000 n 0005915466 00000 n 0005915605 00000 n 0005915744 00000 n 0005915883 00000 n 0005916022 00000 n 0005916161 00000 n 0005916300 00000 n 0005916439 00000 n 0005916578 00000 n 0005916717 00000 n 0005916856 00000 n 0005916995 00000 n 0005917134 00000 n 0005917273 00000 n 0005917412 00000 n 0005917551 00000 n 0005917690 00000 n 0005917829 00000 n 0005917968 00000 n 0005918107 00000 n 0005918246 00000 n 0005918385 00000 n 0005918524 00000 n 0005918663 00000 n 0005918802 00000 n 0005918941 00000 n 0005919080 00000 n 0005919219 00000 n 0005919358 00000 n 0005919497 00000 n 0005919636 00000 n 0005919775 00000 n 0005919914 00000 n 0005920053 00000 n 0005920192 00000 n 0005920331 00000 n 0005920470 00000 n 0005920609 00000 n 0005920748 00000 n 0005920887 00000 n 0005921026 00000 n 0005921165 00000 n 0005921304 00000 n 0005921443 00000 n 0005921582 00000 n 0005921721 00000 n 0005921860 00000 n 0005921999 00000 n 0005922138 00000 n 0005922277 00000 n 0005922416 00000 n 0005922555 00000 n 0005922694 00000 n 0005922833 00000 n 0005922972 00000 n 0005923111 00000 n 0005923250 00000 n 0005923389 00000 n 0005923528 00000 n 0005923667 00000 n 0005923806 00000 n 0005923945 00000 n 0005924084 00000 n 0005924223 00000 n 0005924362 00000 n 0005924501 00000 n 0005924640 00000 n 0005924779 00000 n 0005924918 00000 n 0005925057 00000 n 0005925196 00000 n 0005925335 00000 n 0005925474 00000 n 0005925613 00000 n 0005925752 00000 n 0005925891 00000 n 0005926030 00000 n 0005926169 00000 n 0005926308 00000 n 0005926447 00000 n 0005926586 00000 n 0005926725 00000 n 0005926864 00000 n 0005927003 00000 n 0005927142 00000 n 0005927281 00000 n 0005927420 00000 n 0005927559 00000 n 0005927698 00000 n 0005927837 00000 n 0005927976 00000 n 0005928115 00000 n 0005928254 00000 n 0005928393 00000 n 0005928532 00000 n 0005928671 00000 n 0005928810 00000 n 0005928949 00000 n 0005929088 00000 n 0005929227 00000 n 0005929366 00000 n 0005929505 00000 n 0005929644 00000 n 0005929783 00000 n 0005929922 00000 n 0005930061 00000 n 0005930200 00000 n 0005930339 00000 n 0005930478 00000 n 0005930617 00000 n 0005930756 00000 n 0005930895 00000 n 0005931034 00000 n 0005931173 00000 n 0005931312 00000 n 0005931451 00000 n 0005931590 00000 n 0005931729 00000 n 0005931868 00000 n 0005932007 00000 n 0005932146 00000 n 0005932285 00000 n 0005932424 00000 n 0005932563 00000 n 0005932702 00000 n 0005932841 00000 n 0005932980 00000 n 0005933119 00000 n 0005933258 00000 n 0005933397 00000 n 0005933536 00000 n 0005933675 00000 n 0005933814 00000 n 0005933953 00000 n 0005934092 00000 n 0005934231 00000 n 0005934370 00000 n 0005934509 00000 n 0005934648 00000 n 0005934787 00000 n 0005934926 00000 n 0005935065 00000 n 0005935204 00000 n 0005935343 00000 n 0005935482 00000 n 0005935621 00000 n 0005935760 00000 n 0005935899 00000 n 0005936038 00000 n 0005936177 00000 n 0005936316 00000 n 0005936455 00000 n 0005936594 00000 n 0005936733 00000 n 0005936872 00000 n 0005937011 00000 n 0005937150 00000 n 0005937289 00000 n 0005937428 00000 n 0005937567 00000 n 0005937706 00000 n 0005937845 00000 n 0005937984 00000 n 0005938123 00000 n 0005938262 00000 n 0005938401 00000 n 0005938540 00000 n 0005938679 00000 n 0005938818 00000 n 0005938957 00000 n 0005939096 00000 n 0005939235 00000 n 0005939374 00000 n 0005939513 00000 n 0005939652 00000 n 0005939791 00000 n 0005939930 00000 n 0005940069 00000 n 0005940208 00000 n 0005940347 00000 n 0005940486 00000 n 0005940625 00000 n 0005940764 00000 n 0005940903 00000 n 0005941042 00000 n 0005941181 00000 n 0005941320 00000 n 0005941459 00000 n 0005941598 00000 n 0005941737 00000 n 0005941876 00000 n 0005942015 00000 n 0005942154 00000 n 0005942293 00000 n 0005942432 00000 n 0005942571 00000 n 0005942710 00000 n 0005942849 00000 n 0005942988 00000 n 0005943127 00000 n 0005943266 00000 n 0005943405 00000 n 0005943544 00000 n 0005943683 00000 n 0005943822 00000 n 0005943961 00000 n 0005944100 00000 n 0005944239 00000 n 0005944378 00000 n 0005944517 00000 n 0005944656 00000 n 0005944795 00000 n 0005944934 00000 n 0005945073 00000 n 0005945212 00000 n 0005945351 00000 n 0005945490 00000 n 0005945629 00000 n 0005945768 00000 n 0005945907 00000 n 0005946046 00000 n 0005946185 00000 n 0005946324 00000 n 0005946463 00000 n 0005946602 00000 n 0005946741 00000 n 0005946880 00000 n 0005947019 00000 n 0005947158 00000 n 0005947297 00000 n 0005947436 00000 n 0005947575 00000 n 0005947714 00000 n 0005947853 00000 n 0005947992 00000 n 0005948131 00000 n 0005948270 00000 n 0005948409 00000 n 0005948548 00000 n 0005948687 00000 n 0005948826 00000 n 0005948965 00000 n 0005949104 00000 n 0005949243 00000 n 0005949382 00000 n 0005949521 00000 n 0005949660 00000 n 0005949799 00000 n 0005949938 00000 n 0005950077 00000 n 0005950216 00000 n 0005950355 00000 n 0005950494 00000 n 0005950633 00000 n 0005950772 00000 n 0005950911 00000 n 0005951050 00000 n 0005951189 00000 n 0005951328 00000 n 0005951467 00000 n 0005951606 00000 n 0005951745 00000 n 0005951884 00000 n 0005952023 00000 n 0005952162 00000 n 0005952301 00000 n 0005952440 00000 n 0005952579 00000 n 0005952718 00000 n 0005952857 00000 n 0005952996 00000 n 0005953135 00000 n 0005953274 00000 n 0005953413 00000 n 0005953552 00000 n 0005953691 00000 n 0005953830 00000 n 0005953969 00000 n 0005954108 00000 n 0005954247 00000 n 0005954386 00000 n 0005954525 00000 n 0005954664 00000 n 0005954803 00000 n 0005954942 00000 n 0005955081 00000 n 0005955124 00000 n 0005955167 00000 n 0005955210 00000 n 0005955253 00000 n 0005955296 00000 n 0005955339 00000 n 0005955382 00000 n 0005955425 00000 n 0005955468 00000 n 0005955511 00000 n 0005955554 00000 n 0005955597 00000 n 0005955640 00000 n 0005955683 00000 n 0005955726 00000 n 0005955769 00000 n 0005955812 00000 n 0005955855 00000 n 0005955898 00000 n 0005955941 00000 n 0005955984 00000 n 0005956027 00000 n 0005956070 00000 n 0005956113 00000 n 0005956156 00000 n 0005956199 00000 n 0005956242 00000 n 0005956285 00000 n 0005956328 00000 n 0005956371 00000 n 0005956414 00000 n 0005956457 00000 n 0005956500 00000 n 0005956543 00000 n 0005956586 00000 n 0005956629 00000 n 0005956672 00000 n 0005956715 00000 n 0005956758 00000 n 0005956801 00000 n 0005956844 00000 n 0005956887 00000 n 0005956930 00000 n 0005956973 00000 n 0005957016 00000 n 0005957059 00000 n 0005957102 00000 n 0005957145 00000 n 0005957188 00000 n 0005957231 00000 n 0005957274 00000 n 0005957317 00000 n 0005957360 00000 n 0005957403 00000 n 0005957446 00000 n 0005957489 00000 n 0005957532 00000 n 0005957575 00000 n 0005957618 00000 n 0005957661 00000 n 0005957704 00000 n 0005957747 00000 n 0005957790 00000 n 0005957833 00000 n 0005957876 00000 n 0005957919 00000 n 0005957962 00000 n 0005958005 00000 n 0005958048 00000 n 0005958091 00000 n 0005958134 00000 n 0005958177 00000 n 0005958220 00000 n 0005958263 00000 n 0005958306 00000 n 0005958349 00000 n 0005958392 00000 n 0005958435 00000 n 0005958478 00000 n 0005958521 00000 n 0005958564 00000 n 0005958607 00000 n 0005958650 00000 n 0005958693 00000 n 0005958736 00000 n 0005958779 00000 n 0005958822 00000 n 0005958865 00000 n 0005958908 00000 n 0005958951 00000 n 0005958994 00000 n 0005959037 00000 n 0005959080 00000 n 0005959123 00000 n 0005959166 00000 n 0005959209 00000 n 0005959252 00000 n 0005959295 00000 n 0005959338 00000 n 0005959381 00000 n 0005959424 00000 n 0005959467 00000 n 0005959510 00000 n 0005959553 00000 n 0005959596 00000 n 0005959639 00000 n 0005959682 00000 n 0005959725 00000 n 0005959768 00000 n 0005959811 00000 n 0005959854 00000 n 0005959897 00000 n 0005959940 00000 n 0005959983 00000 n 0005960026 00000 n 0005960069 00000 n 0005960112 00000 n 0005960155 00000 n 0005960198 00000 n 0005960241 00000 n 0005960284 00000 n 0005960327 00000 n 0005960370 00000 n 0005960413 00000 n 0005960456 00000 n 0005960499 00000 n 0005960542 00000 n 0005960585 00000 n 0005960628 00000 n 0005960671 00000 n 0005960714 00000 n 0005960757 00000 n 0005960800 00000 n 0005960843 00000 n 0005960886 00000 n 0005960929 00000 n 0005960972 00000 n 0005961015 00000 n 0005961058 00000 n 0005961101 00000 n 0005961144 00000 n 0005961187 00000 n 0005961230 00000 n 0005961273 00000 n 0005961316 00000 n 0005961359 00000 n 0005961402 00000 n 0005961445 00000 n 0005961488 00000 n 0005961531 00000 n 0005961574 00000 n 0005961617 00000 n 0005961660 00000 n 0005961703 00000 n 0005961746 00000 n 0005961789 00000 n 0005961832 00000 n 0005961875 00000 n 0005961918 00000 n 0005961961 00000 n 0005962004 00000 n 0005962047 00000 n 0005962090 00000 n 0005962133 00000 n 0005962176 00000 n 0005962219 00000 n 0005962262 00000 n 0005962305 00000 n 0005962348 00000 n 0005962391 00000 n 0005962434 00000 n 0005962477 00000 n 0005962520 00000 n 0005962563 00000 n 0005962606 00000 n 0005962649 00000 n 0005962692 00000 n 0005962735 00000 n 0005962778 00000 n 0005962821 00000 n 0005962864 00000 n 0005962907 00000 n 0005962950 00000 n 0005962993 00000 n 0005963036 00000 n 0005963079 00000 n 0005963122 00000 n 0005963165 00000 n 0005963208 00000 n 0005963251 00000 n 0005963294 00000 n 0005963337 00000 n 0005963380 00000 n 0005963423 00000 n 0005963466 00000 n 0005963509 00000 n 0005963552 00000 n 0005963595 00000 n 0005963638 00000 n 0005963681 00000 n 0005963724 00000 n 0005963767 00000 n 0005963810 00000 n 0005963853 00000 n 0005963896 00000 n 0005963939 00000 n 0005963982 00000 n 0005964025 00000 n 0005964068 00000 n 0005964111 00000 n 0005964154 00000 n 0005964197 00000 n 0005964240 00000 n 0005964283 00000 n 0005964326 00000 n 0005964369 00000 n 0005964412 00000 n 0005964455 00000 n 0005964498 00000 n 0005964541 00000 n 0005964584 00000 n 0005964627 00000 n 0005964670 00000 n 0005964713 00000 n 0005964756 00000 n 0005964799 00000 n 0005964842 00000 n 0005964885 00000 n 0005964928 00000 n 0005964971 00000 n 0005965014 00000 n 0005965057 00000 n 0005965100 00000 n 0005965143 00000 n 0005965186 00000 n 0005965229 00000 n 0005965272 00000 n 0005965315 00000 n 0005965358 00000 n 0005965401 00000 n 0005965444 00000 n 0005965487 00000 n 0005965530 00000 n 0005965573 00000 n 0005965616 00000 n 0005965659 00000 n 0005965702 00000 n 0005965745 00000 n 0005965788 00000 n 0005965831 00000 n 0005965874 00000 n 0005965917 00000 n 0005965960 00000 n 0005966003 00000 n 0005966046 00000 n 0005966089 00000 n 0005966132 00000 n 0005966175 00000 n 0005966218 00000 n 0005966261 00000 n 0005966304 00000 n 0005966347 00000 n 0005966390 00000 n 0005966433 00000 n 0005966476 00000 n 0005966519 00000 n 0005966562 00000 n 0005966605 00000 n 0005966648 00000 n 0005966691 00000 n 0005966734 00000 n 0005966777 00000 n 0005966820 00000 n 0005966863 00000 n 0005966906 00000 n 0005966949 00000 n 0005966992 00000 n 0005967035 00000 n 0005967078 00000 n 0005967121 00000 n 0005967164 00000 n 0005967207 00000 n 0005967250 00000 n 0005967293 00000 n 0005967336 00000 n 0005967379 00000 n 0005967422 00000 n 0005967465 00000 n 0005967508 00000 n 0005967551 00000 n 0005967594 00000 n 0005967637 00000 n 0005967680 00000 n 0005967723 00000 n 0005967766 00000 n 0005967809 00000 n 0005967852 00000 n 0005967895 00000 n 0005967938 00000 n 0005967981 00000 n 0005968024 00000 n 0005968067 00000 n 0005968110 00000 n 0005968153 00000 n 0005968196 00000 n 0005968239 00000 n 0005968282 00000 n 0005968325 00000 n 0005968368 00000 n 0005968411 00000 n 0005968454 00000 n 0005968497 00000 n 0005968540 00000 n 0005968583 00000 n 0005968626 00000 n 0005968669 00000 n 0005968712 00000 n 0005968755 00000 n 0005968798 00000 n 0005968841 00000 n 0005968884 00000 n 0005968927 00000 n 0005968970 00000 n 0005969013 00000 n 0005969056 00000 n 0005969099 00000 n 0005969142 00000 n 0005969185 00000 n 0005969228 00000 n 0005969271 00000 n 0005969314 00000 n 0005969357 00000 n 0005969400 00000 n 0005969443 00000 n 0005969486 00000 n 0005969529 00000 n 0005969572 00000 n 0005969615 00000 n 0005969658 00000 n 0005969701 00000 n 0005969744 00000 n 0005969787 00000 n 0005969830 00000 n 0005969873 00000 n 0005969916 00000 n 0005969959 00000 n 0005970002 00000 n 0005970045 00000 n 0005970376 00000 n 0005970798 00000 n 0005970841 00000 n 0005970884 00000 n 0005970928 00000 n 0005970996 00000 n 0005971245 00000 n 0005971344 00000 n 0005975517 00000 n 0005975848 00000 n 0005976270 00000 n 0005976313 00000 n 0005976356 00000 n 0005976400 00000 n 0005976443 00000 n 0005976486 00000 n 0005976554 00000 n 0005976788 00000 n 0005976887 00000 n 0005980508 00000 n 0005980675 00000 n 0005980718 00000 n 0005981049 00000 n 0005981471 00000 n 0005981514 00000 n 0005981845 00000 n 0005982267 00000 n 0005982311 00000 n 0005982355 00000 n 0005982398 00000 n 0005982442 00000 n 0005982486 00000 n 0005982530 00000 n 0005982598 00000 n 0005982861 00000 n 0005982960 00000 n 0005984836 00000 n 0005985167 00000 n 0005985589 00000 n 0005985632 00000 n 0005985675 00000 n 0005985743 00000 n 0005985992 00000 n 0005986091 00000 n 0005989789 00000 n 0005990120 00000 n 0005990542 00000 n 0005990586 00000 n 0005992341 00000 n 0005992385 00000 n 0005992453 00000 n 0005992702 00000 n 0005992801 00000 n 0005995983 00000 n 0005996314 00000 n 0005996736 00000 n 0005996780 00000 n 0005996823 00000 n 0005996867 00000 n 0005996935 00000 n 0005997214 00000 n 0005997313 00000 n 0005999715 00000 n 0005999881 00000 n 0006000047 00000 n 0006000213 00000 n 0006000255 00000 n 0006000297 00000 n 0006000339 00000 n 0006000670 00000 n 0006001092 00000 n 0006001135 00000 n 0006001179 00000 n 0006001222 00000 n 0006001266 00000 n 0006001310 00000 n 0006001353 00000 n 0006001397 00000 n 0006001441 00000 n 0006001509 00000 n 0006001772 00000 n 0006001871 00000 n 0006005744 00000 n 0006006075 00000 n 0006006497 00000 n 0006006709 00000 n 0006021082 00000 n 0006021125 00000 n 0006021169 00000 n 0006021213 00000 n 0006021281 00000 n 0006021530 00000 n 0006021629 00000 n 0006025411 00000 n 0006025577 00000 n 0006025619 00000 n 0006025950 00000 n 0006026372 00000 n 0006026415 00000 n 0006026458 00000 n 0006026501 00000 n 0006026544 00000 n 0006026587 00000 n 0006029806 00000 n 0006029849 00000 n 0006029893 00000 n 0006029961 00000 n 0006030224 00000 n 0006030323 00000 n 0006034480 00000 n 0006034647 00000 n 0006034690 00000 n 0006035021 00000 n 0006035443 00000 n 0006035487 00000 n 0006035530 00000 n 0006035574 00000 n 0006035618 00000 n 0006035661 00000 n 0006035729 00000 n 0006035993 00000 n 0006036092 00000 n 0006038113 00000 n 0006038279 00000 n 0006038445 00000 n 0006038608 00000 n 0006038650 00000 n 0006038692 00000 n 0006038734 00000 n 0006039065 00000 n 0006039487 00000 n 0006039530 00000 n 0006039573 00000 n 0006039616 00000 n 0006039660 00000 n 0006039728 00000 n 0006039991 00000 n 0006040090 00000 n 0006042351 00000 n 0006042682 00000 n 0006043104 00000 n 0006043172 00000 n 0006043421 00000 n 0006043520 00000 n 0006047013 00000 n 0006047344 00000 n 0006047766 00000 n 0006047834 00000 n 0006048055 00000 n 0006048154 00000 n 0006051160 00000 n 0006051491 00000 n 0006051913 00000 n 0006051956 00000 n 0006052024 00000 n 0006052273 00000 n 0006052372 00000 n 0006055857 00000 n 0006056188 00000 n 0006056610 00000 n 0006056941 00000 n 0006057363 00000 n 0006057694 00000 n 0006058116 00000 n 0006058159 00000 n 0006058202 00000 n 0006058244 00000 n 0006058288 00000 n 0006058500 00000 n 0006058560 00000 n 0006058646 00000 n 0006058690 00000 n 0006058733 00000 n 0006058777 00000 n 0006058821 00000 n 0006059183 00000 n 0006059224 00000 n 0006059267 00000 n 0006059311 00000 n 0006059379 00000 n 0006059613 00000 n 0006059712 00000 n 0006062234 00000 n 0006062400 00000 n 0006062442 00000 n 0006062773 00000 n 0006063195 00000 n 0006063238 00000 n 0006063281 00000 n 0006063325 00000 n 0006063368 00000 n 0006063412 00000 n 0006063455 00000 n 0006063523 00000 n 0006063743 00000 n 0006063842 00000 n 0006067411 00000 n 0006067742 00000 n 0006068164 00000 n 0006068208 00000 n 0006068252 00000 n 0006068295 00000 n 0006068363 00000 n 0006068553 00000 n 0006068652 00000 n 0006068870 00000 n 0006069201 00000 n 0006069623 00000 n 0006069666 00000 n 0006069710 00000 n 0006069753 00000 n 0006069797 00000 n 0006069840 00000 n 0006069884 00000 n 0006069928 00000 n 0006069971 00000 n 0006070014 00000 n 0006070082 00000 n 0006070345 00000 n 0006070444 00000 n 0006072417 00000 n 0006072748 00000 n 0006073170 00000 n 0006073213 00000 n 0006073256 00000 n 0006073324 00000 n 0006073573 00000 n 0006073672 00000 n 0006078006 00000 n 0006078171 00000 n 0006078213 00000 n 0006078544 00000 n 0006078966 00000 n 0006079009 00000 n 0006079103 00000 n 0006079191 00000 n 0006079235 00000 n 0006079279 00000 n 0006079320 00000 n 0006079363 00000 n 0006079407 00000 n 0006079475 00000 n 0006079695 00000 n 0006079794 00000 n 0006083690 00000 n 0006084021 00000 n 0006084443 00000 n 0006084486 00000 n 0006084554 00000 n 0006084774 00000 n 0006084873 00000 n 0006088964 00000 n 0006089103 00000 n 0006089242 00000 n 0006089381 00000 n 0006089520 00000 n 0006089659 00000 n 0006089798 00000 n 0006089937 00000 n 0006090076 00000 n 0006090215 00000 n 0006090354 00000 n 0006090493 00000 n 0006090632 00000 n 0006090771 00000 n 0006090910 00000 n 0006091049 00000 n 0006091188 00000 n 0006091327 00000 n 0006091466 00000 n 0006091605 00000 n 0006091744 00000 n 0006091883 00000 n 0006092022 00000 n 0006092161 00000 n 0006092300 00000 n 0006092439 00000 n 0006092578 00000 n 0006092717 00000 n 0006092856 00000 n 0006092995 00000 n 0006093134 00000 n 0006093273 00000 n 0006093412 00000 n 0006093551 00000 n 0006093690 00000 n 0006093829 00000 n 0006093968 00000 n 0006094107 00000 n 0006094246 00000 n 0006094385 00000 n 0006094524 00000 n 0006094663 00000 n 0006094802 00000 n 0006094941 00000 n 0006095080 00000 n 0006095219 00000 n 0006095358 00000 n 0006095497 00000 n 0006095636 00000 n 0006095775 00000 n 0006095914 00000 n 0006096053 00000 n 0006096192 00000 n 0006096331 00000 n 0006096470 00000 n 0006096609 00000 n 0006096748 00000 n 0006096887 00000 n 0006097026 00000 n 0006097165 00000 n 0006097304 00000 n 0006097443 00000 n 0006097582 00000 n 0006097721 00000 n 0006097860 00000 n 0006097999 00000 n 0006098138 00000 n 0006098277 00000 n 0006098416 00000 n 0006098555 00000 n 0006098694 00000 n 0006098833 00000 n 0006098972 00000 n 0006099111 00000 n 0006099250 00000 n 0006099389 00000 n 0006099528 00000 n 0006099667 00000 n 0006099806 00000 n 0006099945 00000 n 0006100084 00000 n 0006100223 00000 n 0006100362 00000 n 0006100501 00000 n 0006100640 00000 n 0006100779 00000 n 0006100918 00000 n 0006101057 00000 n 0006101196 00000 n 0006101335 00000 n 0006101474 00000 n 0006101613 00000 n 0006101752 00000 n 0006101891 00000 n 0006102030 00000 n 0006102169 00000 n 0006102308 00000 n 0006102447 00000 n 0006102586 00000 n 0006102725 00000 n 0006102864 00000 n 0006103003 00000 n 0006103142 00000 n 0006103281 00000 n 0006103420 00000 n 0006103559 00000 n 0006103698 00000 n 0006103837 00000 n 0006103976 00000 n 0006104115 00000 n 0006104254 00000 n 0006104393 00000 n 0006104532 00000 n 0006104671 00000 n 0006104810 00000 n 0006104949 00000 n 0006105088 00000 n 0006105227 00000 n 0006105366 00000 n 0006105505 00000 n 0006105644 00000 n 0006105783 00000 n 0006105922 00000 n 0006106061 00000 n 0006106200 00000 n 0006106339 00000 n 0006106478 00000 n 0006106617 00000 n 0006106756 00000 n 0006106895 00000 n 0006107034 00000 n 0006107173 00000 n 0006107312 00000 n 0006107451 00000 n 0006107590 00000 n 0006107729 00000 n 0006107868 00000 n 0006108007 00000 n 0006108146 00000 n 0006108285 00000 n 0006108424 00000 n 0006108563 00000 n 0006108702 00000 n 0006108841 00000 n 0006108980 00000 n 0006109119 00000 n 0006109258 00000 n 0006109397 00000 n 0006109536 00000 n 0006109675 00000 n 0006109814 00000 n 0006109953 00000 n 0006110092 00000 n 0006110231 00000 n 0006110370 00000 n 0006110509 00000 n 0006110648 00000 n 0006110787 00000 n 0006110926 00000 n 0006111065 00000 n 0006111204 00000 n 0006111343 00000 n 0006111482 00000 n 0006111621 00000 n 0006111760 00000 n 0006111899 00000 n 0006112038 00000 n 0006112177 00000 n 0006112316 00000 n 0006112455 00000 n 0006112594 00000 n 0006112733 00000 n 0006112872 00000 n 0006113011 00000 n 0006113150 00000 n 0006113289 00000 n 0006113428 00000 n 0006113567 00000 n 0006113706 00000 n 0006113845 00000 n 0006113984 00000 n 0006114123 00000 n 0006114262 00000 n 0006114401 00000 n 0006114540 00000 n 0006114679 00000 n 0006114818 00000 n 0006114957 00000 n 0006115096 00000 n 0006115235 00000 n 0006115374 00000 n 0006115513 00000 n 0006115652 00000 n 0006115791 00000 n 0006115930 00000 n 0006116069 00000 n 0006116208 00000 n 0006116347 00000 n 0006116486 00000 n 0006116625 00000 n 0006116764 00000 n 0006116903 00000 n 0006117042 00000 n 0006117181 00000 n 0006117320 00000 n 0006117459 00000 n 0006117598 00000 n 0006117737 00000 n 0006117876 00000 n 0006118015 00000 n 0006118154 00000 n 0006118293 00000 n 0006118432 00000 n 0006118571 00000 n 0006118710 00000 n 0006118849 00000 n 0006118988 00000 n 0006119127 00000 n 0006119266 00000 n 0006119405 00000 n 0006119544 00000 n 0006119683 00000 n 0006119822 00000 n 0006119961 00000 n 0006120100 00000 n 0006120239 00000 n 0006120378 00000 n 0006120517 00000 n 0006120656 00000 n 0006120795 00000 n 0006120934 00000 n 0006121073 00000 n 0006121212 00000 n 0006121351 00000 n 0006121490 00000 n 0006121629 00000 n 0006121768 00000 n 0006121907 00000 n 0006122046 00000 n 0006122185 00000 n 0006122324 00000 n 0006122463 00000 n 0006122602 00000 n 0006122741 00000 n 0006122880 00000 n 0006123019 00000 n 0006123158 00000 n 0006123297 00000 n 0006123436 00000 n 0006123575 00000 n 0006123714 00000 n 0006123853 00000 n 0006123992 00000 n 0006124131 00000 n 0006124270 00000 n 0006124409 00000 n 0006124548 00000 n 0006124687 00000 n 0006124826 00000 n 0006124965 00000 n 0006125104 00000 n 0006125243 00000 n 0006125382 00000 n 0006125521 00000 n 0006125660 00000 n 0006125799 00000 n 0006125938 00000 n 0006126077 00000 n 0006126216 00000 n 0006126355 00000 n 0006126494 00000 n 0006126633 00000 n 0006126772 00000 n 0006126911 00000 n 0006127050 00000 n 0006127189 00000 n 0006127328 00000 n 0006127467 00000 n 0006127606 00000 n 0006127745 00000 n 0006127884 00000 n 0006128023 00000 n 0006128162 00000 n 0006128301 00000 n 0006128440 00000 n 0006128579 00000 n 0006128718 00000 n 0006128857 00000 n 0006128996 00000 n 0006129135 00000 n 0006129274 00000 n 0006129413 00000 n 0006129552 00000 n 0006129691 00000 n 0006129830 00000 n 0006129969 00000 n 0006130108 00000 n 0006130247 00000 n 0006130386 00000 n 0006130525 00000 n 0006130664 00000 n 0006130803 00000 n 0006130942 00000 n 0006131081 00000 n 0006131220 00000 n 0006131359 00000 n 0006131498 00000 n 0006131637 00000 n 0006131776 00000 n 0006131915 00000 n 0006132054 00000 n 0006132193 00000 n 0006132332 00000 n 0006132471 00000 n 0006132610 00000 n 0006132749 00000 n 0006132888 00000 n 0006133027 00000 n 0006133166 00000 n 0006133305 00000 n 0006133444 00000 n 0006133583 00000 n 0006133722 00000 n 0006133861 00000 n 0006134000 00000 n 0006134139 00000 n 0006134278 00000 n 0006134417 00000 n 0006134556 00000 n 0006134695 00000 n 0006134834 00000 n 0006134973 00000 n 0006135112 00000 n 0006135251 00000 n 0006135390 00000 n 0006135529 00000 n 0006135668 00000 n 0006135807 00000 n 0006135946 00000 n 0006136085 00000 n 0006136224 00000 n 0006136363 00000 n 0006136502 00000 n 0006136641 00000 n 0006136780 00000 n 0006136919 00000 n 0006137058 00000 n 0006137101 00000 n 0006137144 00000 n 0006137187 00000 n 0006137230 00000 n 0006137273 00000 n 0006137316 00000 n 0006137359 00000 n 0006137402 00000 n 0006137445 00000 n 0006137488 00000 n 0006137531 00000 n 0006137574 00000 n 0006137617 00000 n 0006137660 00000 n 0006137703 00000 n 0006137746 00000 n 0006137789 00000 n 0006137832 00000 n 0006137875 00000 n 0006137918 00000 n 0006137961 00000 n 0006138004 00000 n 0006138047 00000 n 0006138090 00000 n 0006138133 00000 n 0006138176 00000 n 0006138219 00000 n 0006138262 00000 n 0006138305 00000 n 0006138348 00000 n 0006138391 00000 n 0006138434 00000 n 0006138477 00000 n 0006138520 00000 n 0006138563 00000 n 0006138606 00000 n 0006138649 00000 n 0006138692 00000 n 0006138735 00000 n 0006138778 00000 n 0006138821 00000 n 0006138864 00000 n 0006138907 00000 n 0006138950 00000 n 0006138993 00000 n 0006139036 00000 n 0006139079 00000 n 0006139122 00000 n 0006139165 00000 n 0006139208 00000 n 0006139251 00000 n 0006139294 00000 n 0006139337 00000 n 0006139380 00000 n 0006139423 00000 n 0006139466 00000 n 0006139509 00000 n 0006139552 00000 n 0006139595 00000 n 0006139638 00000 n 0006139681 00000 n 0006139724 00000 n 0006139767 00000 n 0006139810 00000 n 0006139853 00000 n 0006139896 00000 n 0006139939 00000 n 0006139982 00000 n 0006140025 00000 n 0006140068 00000 n 0006140111 00000 n 0006140154 00000 n 0006140197 00000 n 0006140240 00000 n 0006140283 00000 n 0006140326 00000 n 0006140369 00000 n 0006140412 00000 n 0006140455 00000 n 0006140498 00000 n 0006140541 00000 n 0006140584 00000 n 0006140627 00000 n 0006140670 00000 n 0006140713 00000 n 0006140756 00000 n 0006140799 00000 n 0006140842 00000 n 0006140885 00000 n 0006140928 00000 n 0006140971 00000 n 0006141014 00000 n 0006141057 00000 n 0006141100 00000 n 0006141143 00000 n 0006141186 00000 n 0006141229 00000 n 0006141272 00000 n 0006141315 00000 n 0006141358 00000 n 0006141401 00000 n 0006141444 00000 n 0006141487 00000 n 0006141530 00000 n 0006141573 00000 n 0006141616 00000 n 0006141659 00000 n 0006141702 00000 n 0006141745 00000 n 0006141788 00000 n 0006141831 00000 n 0006141874 00000 n 0006141917 00000 n 0006141960 00000 n 0006142003 00000 n 0006142046 00000 n 0006142089 00000 n 0006142132 00000 n 0006142175 00000 n 0006142218 00000 n 0006142261 00000 n 0006142304 00000 n 0006142347 00000 n 0006142390 00000 n 0006142433 00000 n 0006142476 00000 n 0006142519 00000 n 0006142562 00000 n 0006142605 00000 n 0006142648 00000 n 0006142691 00000 n 0006142734 00000 n 0006142777 00000 n 0006142820 00000 n 0006142863 00000 n 0006142906 00000 n 0006142949 00000 n 0006142992 00000 n 0006143035 00000 n 0006143078 00000 n 0006143121 00000 n 0006143164 00000 n 0006143207 00000 n 0006143250 00000 n 0006143293 00000 n 0006143336 00000 n 0006143379 00000 n 0006143422 00000 n 0006143465 00000 n 0006143508 00000 n 0006143551 00000 n 0006143594 00000 n 0006143637 00000 n 0006143680 00000 n 0006143723 00000 n 0006143766 00000 n 0006143809 00000 n 0006143852 00000 n 0006143895 00000 n 0006143938 00000 n 0006143981 00000 n 0006144024 00000 n 0006144067 00000 n 0006144110 00000 n 0006144153 00000 n 0006144196 00000 n 0006144239 00000 n 0006144282 00000 n 0006144325 00000 n 0006144368 00000 n 0006144411 00000 n 0006144454 00000 n 0006144497 00000 n 0006144540 00000 n 0006144583 00000 n 0006144626 00000 n 0006144669 00000 n 0006144712 00000 n 0006144755 00000 n 0006144798 00000 n 0006144841 00000 n 0006144884 00000 n 0006144927 00000 n 0006144970 00000 n 0006145013 00000 n 0006145056 00000 n 0006145099 00000 n 0006145142 00000 n 0006145185 00000 n 0006145228 00000 n 0006145271 00000 n 0006145314 00000 n 0006145357 00000 n 0006145400 00000 n 0006145443 00000 n 0006145486 00000 n 0006145529 00000 n 0006145572 00000 n 0006145615 00000 n 0006145658 00000 n 0006145701 00000 n 0006145744 00000 n 0006145787 00000 n 0006145830 00000 n 0006145873 00000 n 0006145916 00000 n 0006145959 00000 n 0006146002 00000 n 0006146045 00000 n 0006146088 00000 n 0006146131 00000 n 0006146174 00000 n 0006146217 00000 n 0006146260 00000 n 0006146303 00000 n 0006146346 00000 n 0006146389 00000 n 0006146432 00000 n 0006146475 00000 n 0006146518 00000 n 0006146561 00000 n 0006146604 00000 n 0006146647 00000 n 0006146690 00000 n 0006146733 00000 n 0006146776 00000 n 0006146819 00000 n 0006146862 00000 n 0006146905 00000 n 0006146948 00000 n 0006146991 00000 n 0006147034 00000 n 0006147077 00000 n 0006147120 00000 n 0006147163 00000 n 0006147206 00000 n 0006147249 00000 n 0006147292 00000 n 0006147335 00000 n 0006147378 00000 n 0006147421 00000 n 0006147464 00000 n 0006147507 00000 n 0006147550 00000 n 0006147593 00000 n 0006147636 00000 n 0006147679 00000 n 0006147722 00000 n 0006147765 00000 n 0006147808 00000 n 0006147851 00000 n 0006147894 00000 n 0006147937 00000 n 0006147980 00000 n 0006148023 00000 n 0006148066 00000 n 0006148109 00000 n 0006148152 00000 n 0006148195 00000 n 0006148238 00000 n 0006148281 00000 n 0006148324 00000 n 0006148367 00000 n 0006148410 00000 n 0006148453 00000 n 0006148496 00000 n 0006148539 00000 n 0006148582 00000 n 0006148625 00000 n 0006148668 00000 n 0006148711 00000 n 0006148754 00000 n 0006148797 00000 n 0006148840 00000 n 0006148883 00000 n 0006148926 00000 n 0006148969 00000 n 0006149012 00000 n 0006149055 00000 n 0006149098 00000 n 0006149141 00000 n 0006149184 00000 n 0006149227 00000 n 0006149270 00000 n 0006149313 00000 n 0006149356 00000 n 0006149399 00000 n 0006149442 00000 n 0006149485 00000 n 0006149528 00000 n 0006149571 00000 n 0006149614 00000 n 0006149657 00000 n 0006149700 00000 n 0006149743 00000 n 0006149786 00000 n 0006149829 00000 n 0006149872 00000 n 0006149915 00000 n 0006149958 00000 n 0006150001 00000 n 0006150044 00000 n 0006150087 00000 n 0006150130 00000 n 0006150173 00000 n 0006150216 00000 n 0006150259 00000 n 0006150302 00000 n 0006150345 00000 n 0006150388 00000 n 0006150431 00000 n 0006150474 00000 n 0006150517 00000 n 0006150560 00000 n 0006150603 00000 n 0006150646 00000 n 0006150689 00000 n 0006150732 00000 n 0006150775 00000 n 0006150818 00000 n 0006150861 00000 n 0006150904 00000 n 0006150947 00000 n 0006150990 00000 n 0006151033 00000 n 0006151076 00000 n 0006151119 00000 n 0006151162 00000 n 0006151205 00000 n 0006151248 00000 n 0006151291 00000 n 0006151334 00000 n 0006151377 00000 n 0006151420 00000 n 0006151463 00000 n 0006151794 00000 n 0006152216 00000 n 0006152259 00000 n 0006152303 00000 n 0006152347 00000 n 0006152390 00000 n 0006152458 00000 n 0006152707 00000 n 0006152806 00000 n 0006156621 00000 n 0006156952 00000 n 0006157374 00000 n 0006157418 00000 n 0006157461 00000 n 0006157504 00000 n 0006157548 00000 n 0006157591 00000 n 0006157635 00000 n 0006157703 00000 n 0006157937 00000 n 0006158036 00000 n 0006161670 00000 n 0006161836 00000 n 0006161879 00000 n 0006162210 00000 n 0006162632 00000 n 0006162676 00000 n 0006162719 00000 n 0006162787 00000 n 0006163036 00000 n 0006163135 00000 n 0006166699 00000 n 0006166865 00000 n 0006166907 00000 n 0006167238 00000 n 0006167660 00000 n 0006167728 00000 n 0006168005 00000 n 0006168104 00000 n 0006172288 00000 n 0006172619 00000 n 0006173041 00000 n 0006173084 00000 n 0006173127 00000 n 0006173171 00000 n 0006173214 00000 n 0006173282 00000 n 0006173559 00000 n 0006173658 00000 n 0006177331 00000 n 0006177498 00000 n 0006177541 00000 n 0006177872 00000 n 0006178294 00000 n 0006178338 00000 n 0006178381 00000 n 0006178424 00000 n 0006178492 00000 n 0006178741 00000 n 0006178840 00000 n 0006181035 00000 n 0006181366 00000 n 0006181788 00000 n 0006181832 00000 n 0006181875 00000 n 0006181918 00000 n 0006181986 00000 n 0006182235 00000 n 0006182334 00000 n 0006185876 00000 n 0006186207 00000 n 0006186629 00000 n 0006186673 00000 n 0006186717 00000 n 0006186761 00000 n 0006186804 00000 n 0006186848 00000 n 0006186892 00000 n 0006186934 00000 n 0006186976 00000 n 0006187019 00000 n 0006187087 00000 n 0006187336 00000 n 0006187435 00000 n 0006191109 00000 n 0006191276 00000 n 0006191443 00000 n 0006191486 00000 n 0006191529 00000 n 0006191860 00000 n 0006192282 00000 n 0006192325 00000 n 0006192369 00000 n 0006192413 00000 n 0006192457 00000 n 0006192525 00000 n 0006192773 00000 n 0006192872 00000 n 0006195728 00000 n 0006196059 00000 n 0006196481 00000 n 0006196549 00000 n 0006196798 00000 n 0006196897 00000 n 0006200940 00000 n 0006201105 00000 n 0006201271 00000 n 0006201313 00000 n 0006201355 00000 n 0006201686 00000 n 0006202108 00000 n 0006202151 00000 n 0006202193 00000 n 0006202237 00000 n 0006202280 00000 n 0006202348 00000 n 0006202597 00000 n 0006202696 00000 n 0006206568 00000 n 0006206899 00000 n 0006207321 00000 n 0006207364 00000 n 0006207408 00000 n 0006207452 00000 n 0006207495 00000 n 0006207539 00000 n 0006207607 00000 n 0006207827 00000 n 0006207926 00000 n 0006212418 00000 n 0006212749 00000 n 0006213171 00000 n 0006213215 00000 n 0006213283 00000 n 0006213518 00000 n 0006213617 00000 n 0006218397 00000 n 0006218536 00000 n 0006218675 00000 n 0006218814 00000 n 0006218953 00000 n 0006219092 00000 n 0006219231 00000 n 0006219370 00000 n 0006219509 00000 n 0006219648 00000 n 0006219787 00000 n 0006219926 00000 n 0006220065 00000 n 0006220204 00000 n 0006220343 00000 n 0006220482 00000 n 0006220621 00000 n 0006220760 00000 n 0006220899 00000 n 0006221038 00000 n 0006221177 00000 n 0006221316 00000 n 0006221455 00000 n 0006221594 00000 n 0006221733 00000 n 0006221872 00000 n 0006222011 00000 n 0006222150 00000 n 0006222289 00000 n 0006222428 00000 n 0006222567 00000 n 0006222706 00000 n 0006222845 00000 n 0006222984 00000 n 0006223123 00000 n 0006223262 00000 n 0006223401 00000 n 0006223540 00000 n 0006223679 00000 n 0006223818 00000 n 0006223957 00000 n 0006224096 00000 n 0006224235 00000 n 0006224374 00000 n 0006224513 00000 n 0006224652 00000 n 0006224791 00000 n 0006224930 00000 n 0006225069 00000 n 0006225208 00000 n 0006225347 00000 n 0006225486 00000 n 0006225625 00000 n 0006225764 00000 n 0006225903 00000 n 0006226042 00000 n 0006226181 00000 n 0006226320 00000 n 0006226459 00000 n 0006226598 00000 n 0006226737 00000 n 0006226876 00000 n 0006227015 00000 n 0006227154 00000 n 0006227293 00000 n 0006227432 00000 n 0006227571 00000 n 0006227710 00000 n 0006227849 00000 n 0006227988 00000 n 0006228127 00000 n 0006228266 00000 n 0006228405 00000 n 0006228544 00000 n 0006228683 00000 n 0006228822 00000 n 0006228961 00000 n 0006229100 00000 n 0006229239 00000 n 0006229378 00000 n 0006229517 00000 n 0006229656 00000 n 0006229795 00000 n 0006229934 00000 n 0006230073 00000 n 0006230212 00000 n 0006230351 00000 n 0006230490 00000 n 0006230629 00000 n 0006230768 00000 n 0006230907 00000 n 0006231046 00000 n 0006231185 00000 n 0006231324 00000 n 0006231463 00000 n 0006231602 00000 n 0006231741 00000 n 0006231880 00000 n 0006232019 00000 n 0006232158 00000 n 0006232297 00000 n 0006232436 00000 n 0006232575 00000 n 0006232714 00000 n 0006232853 00000 n 0006232992 00000 n 0006233131 00000 n 0006233270 00000 n 0006233409 00000 n 0006233548 00000 n 0006233687 00000 n 0006233826 00000 n 0006233965 00000 n 0006234104 00000 n 0006234243 00000 n 0006234382 00000 n 0006234521 00000 n 0006234660 00000 n 0006234799 00000 n 0006234938 00000 n 0006235077 00000 n 0006235216 00000 n 0006235355 00000 n 0006235494 00000 n 0006235633 00000 n 0006235772 00000 n 0006235911 00000 n 0006236050 00000 n 0006236189 00000 n 0006236328 00000 n 0006236467 00000 n 0006236606 00000 n 0006236745 00000 n 0006236884 00000 n 0006237023 00000 n 0006237162 00000 n 0006237301 00000 n 0006237440 00000 n 0006237579 00000 n 0006237718 00000 n 0006237857 00000 n 0006237996 00000 n 0006238135 00000 n 0006238274 00000 n 0006238413 00000 n 0006238552 00000 n 0006238691 00000 n 0006238830 00000 n 0006238969 00000 n 0006239108 00000 n 0006239247 00000 n 0006239386 00000 n 0006239525 00000 n 0006239664 00000 n 0006239803 00000 n 0006239942 00000 n 0006240081 00000 n 0006240220 00000 n 0006240359 00000 n 0006240498 00000 n 0006240637 00000 n 0006240776 00000 n 0006240915 00000 n 0006241054 00000 n 0006241193 00000 n 0006241332 00000 n 0006241471 00000 n 0006241610 00000 n 0006241749 00000 n 0006241888 00000 n 0006242027 00000 n 0006242166 00000 n 0006242305 00000 n 0006242444 00000 n 0006242583 00000 n 0006242722 00000 n 0006242861 00000 n 0006243000 00000 n 0006243139 00000 n 0006243278 00000 n 0006243417 00000 n 0006243556 00000 n 0006243695 00000 n 0006243834 00000 n 0006243973 00000 n 0006244112 00000 n 0006244251 00000 n 0006244390 00000 n 0006244529 00000 n 0006244668 00000 n 0006244807 00000 n 0006244946 00000 n 0006245085 00000 n 0006245224 00000 n 0006245363 00000 n 0006245502 00000 n 0006245641 00000 n 0006245780 00000 n 0006245919 00000 n 0006246058 00000 n 0006246197 00000 n 0006246336 00000 n 0006246475 00000 n 0006246614 00000 n 0006246753 00000 n 0006246892 00000 n 0006247031 00000 n 0006247170 00000 n 0006247309 00000 n 0006247448 00000 n 0006247587 00000 n 0006247726 00000 n 0006247865 00000 n 0006248004 00000 n 0006248143 00000 n 0006248282 00000 n 0006248421 00000 n 0006248560 00000 n 0006248699 00000 n 0006248838 00000 n 0006248977 00000 n 0006249116 00000 n 0006249255 00000 n 0006249394 00000 n 0006249533 00000 n 0006249672 00000 n 0006249811 00000 n 0006249950 00000 n 0006250089 00000 n 0006250228 00000 n 0006250367 00000 n 0006250506 00000 n 0006250645 00000 n 0006250784 00000 n 0006250923 00000 n 0006251062 00000 n 0006251201 00000 n 0006251340 00000 n 0006251479 00000 n 0006251618 00000 n 0006251757 00000 n 0006251896 00000 n 0006252035 00000 n 0006252174 00000 n 0006252313 00000 n 0006252452 00000 n 0006252591 00000 n 0006252730 00000 n 0006252869 00000 n 0006253008 00000 n 0006253147 00000 n 0006253286 00000 n 0006253425 00000 n 0006253564 00000 n 0006253703 00000 n 0006253842 00000 n 0006253981 00000 n 0006254120 00000 n 0006254259 00000 n 0006254398 00000 n 0006254537 00000 n 0006254676 00000 n 0006254815 00000 n 0006254954 00000 n 0006255093 00000 n 0006255232 00000 n 0006255371 00000 n 0006255510 00000 n 0006255649 00000 n 0006255788 00000 n 0006255927 00000 n 0006256066 00000 n 0006256205 00000 n 0006256344 00000 n 0006256483 00000 n 0006256622 00000 n 0006256761 00000 n 0006256900 00000 n 0006257039 00000 n 0006257178 00000 n 0006257317 00000 n 0006257456 00000 n 0006257595 00000 n 0006257734 00000 n 0006257873 00000 n 0006258012 00000 n 0006258151 00000 n 0006258290 00000 n 0006258429 00000 n 0006258568 00000 n 0006258707 00000 n 0006258846 00000 n 0006258985 00000 n 0006259124 00000 n 0006259263 00000 n 0006259402 00000 n 0006259541 00000 n 0006259680 00000 n 0006259819 00000 n 0006259958 00000 n 0006260097 00000 n 0006260236 00000 n 0006260375 00000 n 0006260514 00000 n 0006260653 00000 n 0006260792 00000 n 0006260931 00000 n 0006261070 00000 n 0006261209 00000 n 0006261348 00000 n 0006261487 00000 n 0006261626 00000 n 0006261765 00000 n 0006261904 00000 n 0006262043 00000 n 0006262182 00000 n 0006262321 00000 n 0006262460 00000 n 0006262599 00000 n 0006262738 00000 n 0006262877 00000 n 0006263016 00000 n 0006263155 00000 n 0006263294 00000 n 0006263433 00000 n 0006263572 00000 n 0006263711 00000 n 0006263850 00000 n 0006263989 00000 n 0006264128 00000 n 0006264267 00000 n 0006264406 00000 n 0006264449 00000 n 0006264492 00000 n 0006264535 00000 n 0006264578 00000 n 0006264621 00000 n 0006264664 00000 n 0006264707 00000 n 0006264750 00000 n 0006264793 00000 n 0006264836 00000 n 0006264879 00000 n 0006264922 00000 n 0006264965 00000 n 0006265008 00000 n 0006265051 00000 n 0006265094 00000 n 0006265137 00000 n 0006265180 00000 n 0006265223 00000 n 0006265266 00000 n 0006265309 00000 n 0006265352 00000 n 0006265395 00000 n 0006265438 00000 n 0006265481 00000 n 0006265524 00000 n 0006265567 00000 n 0006265610 00000 n 0006265653 00000 n 0006265696 00000 n 0006265739 00000 n 0006265782 00000 n 0006265825 00000 n 0006265868 00000 n 0006265911 00000 n 0006265954 00000 n 0006265997 00000 n 0006266040 00000 n 0006266083 00000 n 0006266126 00000 n 0006266169 00000 n 0006266212 00000 n 0006266255 00000 n 0006266298 00000 n 0006266341 00000 n 0006266384 00000 n 0006266427 00000 n 0006266470 00000 n 0006266513 00000 n 0006266556 00000 n 0006266599 00000 n 0006266642 00000 n 0006266685 00000 n 0006266728 00000 n 0006266771 00000 n 0006266814 00000 n 0006266857 00000 n 0006266900 00000 n 0006266943 00000 n 0006266986 00000 n 0006267029 00000 n 0006267072 00000 n 0006267115 00000 n 0006267158 00000 n 0006267201 00000 n 0006267244 00000 n 0006267287 00000 n 0006267330 00000 n 0006267373 00000 n 0006267416 00000 n 0006267459 00000 n 0006267502 00000 n 0006267545 00000 n 0006267588 00000 n 0006267631 00000 n 0006267674 00000 n 0006267717 00000 n 0006267760 00000 n 0006267803 00000 n 0006267846 00000 n 0006267889 00000 n 0006267932 00000 n 0006267975 00000 n 0006268018 00000 n 0006268061 00000 n 0006268104 00000 n 0006268147 00000 n 0006268190 00000 n 0006268233 00000 n 0006268276 00000 n 0006268319 00000 n 0006268362 00000 n 0006268405 00000 n 0006268448 00000 n 0006268491 00000 n 0006268534 00000 n 0006268577 00000 n 0006268620 00000 n 0006268663 00000 n 0006268706 00000 n 0006268749 00000 n 0006268792 00000 n 0006268835 00000 n 0006268878 00000 n 0006268921 00000 n 0006268964 00000 n 0006269007 00000 n 0006269050 00000 n 0006269093 00000 n 0006269136 00000 n 0006269179 00000 n 0006269222 00000 n 0006269265 00000 n 0006269308 00000 n 0006269351 00000 n 0006269394 00000 n 0006269437 00000 n 0006269480 00000 n 0006269523 00000 n 0006269566 00000 n 0006269609 00000 n 0006269652 00000 n 0006269695 00000 n 0006269738 00000 n 0006269781 00000 n 0006269824 00000 n 0006269867 00000 n 0006269910 00000 n 0006269953 00000 n 0006269996 00000 n 0006270039 00000 n 0006270082 00000 n 0006270125 00000 n 0006270168 00000 n 0006270211 00000 n 0006270254 00000 n 0006270297 00000 n 0006270340 00000 n 0006270383 00000 n 0006270426 00000 n 0006270469 00000 n 0006270512 00000 n 0006270555 00000 n 0006270598 00000 n 0006270641 00000 n 0006270684 00000 n 0006270727 00000 n 0006270770 00000 n 0006270813 00000 n 0006270856 00000 n 0006270899 00000 n 0006270942 00000 n 0006270985 00000 n 0006271028 00000 n 0006271071 00000 n 0006271114 00000 n 0006271157 00000 n 0006271200 00000 n 0006271243 00000 n 0006271286 00000 n 0006271329 00000 n 0006271372 00000 n 0006271415 00000 n 0006271458 00000 n 0006271501 00000 n 0006271544 00000 n 0006271587 00000 n 0006271630 00000 n 0006271673 00000 n 0006271716 00000 n 0006271759 00000 n 0006271802 00000 n 0006271845 00000 n 0006271888 00000 n 0006271931 00000 n 0006271974 00000 n 0006272017 00000 n 0006272060 00000 n 0006272103 00000 n 0006272146 00000 n 0006272189 00000 n 0006272232 00000 n 0006272275 00000 n 0006272318 00000 n 0006272361 00000 n 0006272404 00000 n 0006272447 00000 n 0006272490 00000 n 0006272533 00000 n 0006272576 00000 n 0006272619 00000 n 0006272662 00000 n 0006272705 00000 n 0006272748 00000 n 0006272791 00000 n 0006272834 00000 n 0006272877 00000 n 0006272920 00000 n 0006272963 00000 n 0006273006 00000 n 0006273049 00000 n 0006273092 00000 n 0006273135 00000 n 0006273178 00000 n 0006273221 00000 n 0006273264 00000 n 0006273307 00000 n 0006273350 00000 n 0006273393 00000 n 0006273436 00000 n 0006273479 00000 n 0006273522 00000 n 0006273565 00000 n 0006273608 00000 n 0006273651 00000 n 0006273694 00000 n 0006273737 00000 n 0006273780 00000 n 0006273823 00000 n 0006273866 00000 n 0006273909 00000 n 0006273952 00000 n 0006273995 00000 n 0006274038 00000 n 0006274081 00000 n 0006274124 00000 n 0006274167 00000 n 0006274210 00000 n 0006274253 00000 n 0006274296 00000 n 0006274339 00000 n 0006274382 00000 n 0006274425 00000 n 0006274468 00000 n 0006274511 00000 n 0006274554 00000 n 0006274597 00000 n 0006274640 00000 n 0006274683 00000 n 0006274726 00000 n 0006274769 00000 n 0006274812 00000 n 0006274855 00000 n 0006274898 00000 n 0006274941 00000 n 0006274984 00000 n 0006275027 00000 n 0006275070 00000 n 0006275113 00000 n 0006275156 00000 n 0006275199 00000 n 0006275242 00000 n 0006275285 00000 n 0006275328 00000 n 0006275371 00000 n 0006275414 00000 n 0006275457 00000 n 0006275500 00000 n 0006275543 00000 n 0006275586 00000 n 0006275629 00000 n 0006275672 00000 n 0006275715 00000 n 0006275758 00000 n 0006275801 00000 n 0006275844 00000 n 0006275887 00000 n 0006275930 00000 n 0006275973 00000 n 0006276016 00000 n 0006276059 00000 n 0006276102 00000 n 0006276145 00000 n 0006276188 00000 n 0006276231 00000 n 0006276274 00000 n 0006276317 00000 n 0006276360 00000 n 0006276403 00000 n 0006276446 00000 n 0006276489 00000 n 0006276532 00000 n 0006276575 00000 n 0006276618 00000 n 0006276661 00000 n 0006276704 00000 n 0006276747 00000 n 0006276790 00000 n 0006276833 00000 n 0006276876 00000 n 0006276919 00000 n 0006276962 00000 n 0006277005 00000 n 0006277048 00000 n 0006277091 00000 n 0006277134 00000 n 0006277177 00000 n 0006277220 00000 n 0006277263 00000 n 0006277306 00000 n 0006277349 00000 n 0006277392 00000 n 0006277435 00000 n 0006277478 00000 n 0006277521 00000 n 0006277564 00000 n 0006277607 00000 n 0006277650 00000 n 0006277693 00000 n 0006277736 00000 n 0006277779 00000 n 0006277822 00000 n 0006277865 00000 n 0006277908 00000 n 0006277951 00000 n 0006277994 00000 n 0006278037 00000 n 0006278080 00000 n 0006278411 00000 n 0006278833 00000 n 0006278876 00000 n 0006278917 00000 n 0006278961 00000 n 0006279005 00000 n 0006279073 00000 n 0006279321 00000 n 0006279420 00000 n 0006282590 00000 n 0006282756 00000 n 0006282798 00000 n 0006283129 00000 n 0006283551 00000 n 0006283595 00000 n 0006283663 00000 n 0006283883 00000 n 0006283982 00000 n 0006285729 00000 n 0006286060 00000 n 0006286482 00000 n 0006286525 00000 n 0006286569 00000 n 0006286612 00000 n 0006286656 00000 n 0006286700 00000 n 0006286744 00000 n 0006286787 00000 n 0006286831 00000 n 0006286875 00000 n 0006286919 00000 n 0006286962 00000 n 0006287030 00000 n 0006287250 00000 n 0006287349 00000 n 0006289369 00000 n 0006289700 00000 n 0006290122 00000 n 0006290190 00000 n 0006290424 00000 n 0006290523 00000 n 0006294935 00000 n 0006295102 00000 n 0006295145 00000 n 0006295476 00000 n 0006295898 00000 n 0006295966 00000 n 0006296229 00000 n 0006296328 00000 n 0006298625 00000 n 0006298956 00000 n 0006299378 00000 n 0006299421 00000 n 0006299464 00000 n 0006299508 00000 n 0006299551 00000 n 0006299594 00000 n 0006299662 00000 n 0006299925 00000 n 0006300024 00000 n 0006303896 00000 n 0006304227 00000 n 0006304649 00000 n 0006304692 00000 n 0006304760 00000 n 0006305023 00000 n 0006305122 00000 n 0006308816 00000 n 0006308982 00000 n 0006309313 00000 n 0006309735 00000 n 0006309803 00000 n 0006310037 00000 n 0006310136 00000 n 0006313283 00000 n 0006313450 00000 n 0006313493 00000 n 0006313824 00000 n 0006314246 00000 n 0006314290 00000 n 0006314333 00000 n 0006314377 00000 n 0006314421 00000 n 0006314465 00000 n 0006314508 00000 n 0006314576 00000 n 0006314825 00000 n 0006314924 00000 n 0006319243 00000 n 0006319574 00000 n 0006319996 00000 n 0006320064 00000 n 0006320284 00000 n 0006320383 00000 n 0006325037 00000 n 0006325176 00000 n 0006325315 00000 n 0006325454 00000 n 0006325593 00000 n 0006325732 00000 n 0006325871 00000 n 0006326010 00000 n 0006326149 00000 n 0006326288 00000 n 0006326427 00000 n 0006326566 00000 n 0006326705 00000 n 0006326844 00000 n 0006326983 00000 n 0006327122 00000 n 0006327261 00000 n 0006327400 00000 n 0006327539 00000 n 0006327678 00000 n 0006327817 00000 n 0006327956 00000 n 0006328095 00000 n 0006328234 00000 n 0006328373 00000 n 0006328512 00000 n 0006328651 00000 n 0006328790 00000 n 0006328929 00000 n 0006329068 00000 n 0006329207 00000 n 0006329346 00000 n 0006329485 00000 n 0006329624 00000 n 0006329763 00000 n 0006329902 00000 n 0006330041 00000 n 0006330180 00000 n 0006330319 00000 n 0006330458 00000 n 0006330597 00000 n 0006330736 00000 n 0006330875 00000 n 0006331014 00000 n 0006331153 00000 n 0006331292 00000 n 0006331431 00000 n 0006331570 00000 n 0006331709 00000 n 0006331848 00000 n 0006331987 00000 n 0006332126 00000 n 0006332265 00000 n 0006332404 00000 n 0006332543 00000 n 0006332682 00000 n 0006332821 00000 n 0006332960 00000 n 0006333099 00000 n 0006333238 00000 n 0006333377 00000 n 0006333516 00000 n 0006333655 00000 n 0006333794 00000 n 0006333933 00000 n 0006334072 00000 n 0006334211 00000 n 0006334350 00000 n 0006334489 00000 n 0006334628 00000 n 0006334767 00000 n 0006334906 00000 n 0006335045 00000 n 0006335184 00000 n 0006335323 00000 n 0006335462 00000 n 0006335601 00000 n 0006335740 00000 n 0006335879 00000 n 0006336018 00000 n 0006336157 00000 n 0006336296 00000 n 0006336435 00000 n 0006336574 00000 n 0006336713 00000 n 0006336852 00000 n 0006336991 00000 n 0006337130 00000 n 0006337269 00000 n 0006337408 00000 n 0006337547 00000 n 0006337686 00000 n 0006337825 00000 n 0006337964 00000 n 0006338103 00000 n 0006338242 00000 n 0006338381 00000 n 0006338520 00000 n 0006338659 00000 n 0006338798 00000 n 0006338937 00000 n 0006339076 00000 n 0006339215 00000 n 0006339354 00000 n 0006339493 00000 n 0006339632 00000 n 0006339771 00000 n 0006339910 00000 n 0006340049 00000 n 0006340188 00000 n 0006340327 00000 n 0006340466 00000 n 0006340605 00000 n 0006340744 00000 n 0006340883 00000 n 0006341022 00000 n 0006341161 00000 n 0006341300 00000 n 0006341439 00000 n 0006341578 00000 n 0006341717 00000 n 0006341856 00000 n 0006341995 00000 n 0006342134 00000 n 0006342273 00000 n 0006342412 00000 n 0006342551 00000 n 0006342690 00000 n 0006342829 00000 n 0006342968 00000 n 0006343107 00000 n 0006343246 00000 n 0006343385 00000 n 0006343524 00000 n 0006343663 00000 n 0006343802 00000 n 0006343941 00000 n 0006344080 00000 n 0006344219 00000 n 0006344358 00000 n 0006344497 00000 n 0006344636 00000 n 0006344775 00000 n 0006344914 00000 n 0006345053 00000 n 0006345192 00000 n 0006345331 00000 n 0006345470 00000 n 0006345609 00000 n 0006345748 00000 n 0006345887 00000 n 0006346026 00000 n 0006346165 00000 n 0006346304 00000 n 0006346443 00000 n 0006346582 00000 n 0006346721 00000 n 0006346860 00000 n 0006346999 00000 n 0006347138 00000 n 0006347277 00000 n 0006347416 00000 n 0006347555 00000 n 0006347694 00000 n 0006347833 00000 n 0006347972 00000 n 0006348111 00000 n 0006348250 00000 n 0006348389 00000 n 0006348528 00000 n 0006348667 00000 n 0006348806 00000 n 0006348945 00000 n 0006349084 00000 n 0006349223 00000 n 0006349362 00000 n 0006349501 00000 n 0006349640 00000 n 0006349779 00000 n 0006349918 00000 n 0006350057 00000 n 0006350196 00000 n 0006350335 00000 n 0006350474 00000 n 0006350613 00000 n 0006350752 00000 n 0006350891 00000 n 0006351030 00000 n 0006351169 00000 n 0006351308 00000 n 0006351447 00000 n 0006351586 00000 n 0006351725 00000 n 0006351864 00000 n 0006352003 00000 n 0006352142 00000 n 0006352281 00000 n 0006352420 00000 n 0006352559 00000 n 0006352698 00000 n 0006352837 00000 n 0006352976 00000 n 0006353115 00000 n 0006353254 00000 n 0006353393 00000 n 0006353532 00000 n 0006353671 00000 n 0006353810 00000 n 0006353949 00000 n 0006354088 00000 n 0006354227 00000 n 0006354366 00000 n 0006354505 00000 n 0006354644 00000 n 0006354783 00000 n 0006354922 00000 n 0006355061 00000 n 0006355200 00000 n 0006355339 00000 n 0006355478 00000 n 0006355617 00000 n 0006355756 00000 n 0006355895 00000 n 0006356034 00000 n 0006356173 00000 n 0006356312 00000 n 0006356451 00000 n 0006356590 00000 n 0006356729 00000 n 0006356868 00000 n 0006357007 00000 n 0006357146 00000 n 0006357285 00000 n 0006357424 00000 n 0006357563 00000 n 0006357702 00000 n 0006357841 00000 n 0006357980 00000 n 0006358119 00000 n 0006358258 00000 n 0006358397 00000 n 0006358536 00000 n 0006358675 00000 n 0006358814 00000 n 0006358953 00000 n 0006359092 00000 n 0006359231 00000 n 0006359370 00000 n 0006359509 00000 n 0006359648 00000 n 0006359787 00000 n 0006359926 00000 n 0006360065 00000 n 0006360204 00000 n 0006360343 00000 n 0006360482 00000 n 0006360621 00000 n 0006360760 00000 n 0006360899 00000 n 0006361038 00000 n 0006361177 00000 n 0006361316 00000 n 0006361455 00000 n 0006361594 00000 n 0006361733 00000 n 0006361872 00000 n 0006362011 00000 n 0006362150 00000 n 0006362289 00000 n 0006362428 00000 n 0006362567 00000 n 0006362706 00000 n 0006362845 00000 n 0006362984 00000 n 0006363123 00000 n 0006363262 00000 n 0006363401 00000 n 0006363540 00000 n 0006363679 00000 n 0006363818 00000 n 0006363957 00000 n 0006364096 00000 n 0006364235 00000 n 0006364374 00000 n 0006364513 00000 n 0006364652 00000 n 0006364791 00000 n 0006364930 00000 n 0006365069 00000 n 0006365208 00000 n 0006365347 00000 n 0006365486 00000 n 0006365625 00000 n 0006365764 00000 n 0006365903 00000 n 0006366042 00000 n 0006366181 00000 n 0006366320 00000 n 0006366459 00000 n 0006366598 00000 n 0006366737 00000 n 0006366876 00000 n 0006367015 00000 n 0006367154 00000 n 0006367293 00000 n 0006367432 00000 n 0006367571 00000 n 0006367710 00000 n 0006367849 00000 n 0006367988 00000 n 0006368127 00000 n 0006368266 00000 n 0006368405 00000 n 0006368544 00000 n 0006368683 00000 n 0006368822 00000 n 0006368961 00000 n 0006369100 00000 n 0006369239 00000 n 0006369378 00000 n 0006369517 00000 n 0006369656 00000 n 0006369699 00000 n 0006369742 00000 n 0006369785 00000 n 0006369828 00000 n 0006369871 00000 n 0006369914 00000 n 0006369957 00000 n 0006370000 00000 n 0006370043 00000 n 0006370086 00000 n 0006370129 00000 n 0006370172 00000 n 0006370215 00000 n 0006370258 00000 n 0006370301 00000 n 0006370344 00000 n 0006370387 00000 n 0006370430 00000 n 0006370473 00000 n 0006370516 00000 n 0006370559 00000 n 0006370602 00000 n 0006370645 00000 n 0006370688 00000 n 0006370731 00000 n 0006370774 00000 n 0006370817 00000 n 0006370860 00000 n 0006370903 00000 n 0006370946 00000 n 0006370989 00000 n 0006371032 00000 n 0006371075 00000 n 0006371118 00000 n 0006371161 00000 n 0006371204 00000 n 0006371247 00000 n 0006371290 00000 n 0006371333 00000 n 0006371376 00000 n 0006371419 00000 n 0006371462 00000 n 0006371505 00000 n 0006371548 00000 n 0006371591 00000 n 0006371634 00000 n 0006371677 00000 n 0006371720 00000 n 0006371763 00000 n 0006371806 00000 n 0006371849 00000 n 0006371892 00000 n 0006371935 00000 n 0006371978 00000 n 0006372021 00000 n 0006372064 00000 n 0006372107 00000 n 0006372150 00000 n 0006372193 00000 n 0006372236 00000 n 0006372279 00000 n 0006372322 00000 n 0006372365 00000 n 0006372408 00000 n 0006372451 00000 n 0006372494 00000 n 0006372537 00000 n 0006372580 00000 n 0006372623 00000 n 0006372666 00000 n 0006372709 00000 n 0006372752 00000 n 0006372795 00000 n 0006372838 00000 n 0006372881 00000 n 0006372924 00000 n 0006372967 00000 n 0006373010 00000 n 0006373053 00000 n 0006373096 00000 n 0006373139 00000 n 0006373182 00000 n 0006373225 00000 n 0006373268 00000 n 0006373311 00000 n 0006373354 00000 n 0006373397 00000 n 0006373440 00000 n 0006373483 00000 n 0006373526 00000 n 0006373569 00000 n 0006373612 00000 n 0006373655 00000 n 0006373698 00000 n 0006373741 00000 n 0006373784 00000 n 0006373827 00000 n 0006373870 00000 n 0006373913 00000 n 0006373956 00000 n 0006373999 00000 n 0006374042 00000 n 0006374085 00000 n 0006374128 00000 n 0006374171 00000 n 0006374214 00000 n 0006374257 00000 n 0006374300 00000 n 0006374343 00000 n 0006374386 00000 n 0006374429 00000 n 0006374472 00000 n 0006374515 00000 n 0006374558 00000 n 0006374601 00000 n 0006374644 00000 n 0006374687 00000 n 0006374730 00000 n 0006374773 00000 n 0006374816 00000 n 0006374859 00000 n 0006374902 00000 n 0006374945 00000 n 0006374988 00000 n 0006375031 00000 n 0006375074 00000 n 0006375117 00000 n 0006375160 00000 n 0006375203 00000 n 0006375246 00000 n 0006375289 00000 n 0006375332 00000 n 0006375375 00000 n 0006375418 00000 n 0006375461 00000 n 0006375504 00000 n 0006375547 00000 n 0006375590 00000 n 0006375633 00000 n 0006375676 00000 n 0006375719 00000 n 0006375762 00000 n 0006375805 00000 n 0006375848 00000 n 0006375891 00000 n 0006375934 00000 n 0006375977 00000 n 0006376020 00000 n 0006376063 00000 n 0006376106 00000 n 0006376149 00000 n 0006376192 00000 n 0006376235 00000 n 0006376278 00000 n 0006376321 00000 n 0006376364 00000 n 0006376407 00000 n 0006376450 00000 n 0006376493 00000 n 0006376536 00000 n 0006376579 00000 n 0006376622 00000 n 0006376665 00000 n 0006376708 00000 n 0006376751 00000 n 0006376794 00000 n 0006376837 00000 n 0006376880 00000 n 0006376923 00000 n 0006376966 00000 n 0006377009 00000 n 0006377052 00000 n 0006377095 00000 n 0006377138 00000 n 0006377181 00000 n 0006377224 00000 n 0006377267 00000 n 0006377310 00000 n 0006377353 00000 n 0006377396 00000 n 0006377439 00000 n 0006377482 00000 n 0006377525 00000 n 0006377568 00000 n 0006377611 00000 n 0006377654 00000 n 0006377697 00000 n 0006377740 00000 n 0006377783 00000 n 0006377826 00000 n 0006377869 00000 n 0006377912 00000 n 0006377955 00000 n 0006377998 00000 n 0006378041 00000 n 0006378084 00000 n 0006378127 00000 n 0006378170 00000 n 0006378213 00000 n 0006378256 00000 n 0006378299 00000 n 0006378342 00000 n 0006378385 00000 n 0006378428 00000 n 0006378471 00000 n 0006378514 00000 n 0006378557 00000 n 0006378600 00000 n 0006378643 00000 n 0006378686 00000 n 0006378729 00000 n 0006378772 00000 n 0006378815 00000 n 0006378858 00000 n 0006378901 00000 n 0006378944 00000 n 0006378987 00000 n 0006379030 00000 n 0006379073 00000 n 0006379116 00000 n 0006379159 00000 n 0006379202 00000 n 0006379245 00000 n 0006379288 00000 n 0006379331 00000 n 0006379374 00000 n 0006379417 00000 n 0006379460 00000 n 0006379503 00000 n 0006379546 00000 n 0006379589 00000 n 0006379632 00000 n 0006379675 00000 n 0006379718 00000 n 0006379761 00000 n 0006379804 00000 n 0006379847 00000 n 0006379890 00000 n 0006379933 00000 n 0006379976 00000 n 0006380019 00000 n 0006380062 00000 n 0006380105 00000 n 0006380148 00000 n 0006380191 00000 n 0006380234 00000 n 0006380277 00000 n 0006380320 00000 n 0006380363 00000 n 0006380406 00000 n 0006380449 00000 n 0006380492 00000 n 0006380535 00000 n 0006380578 00000 n 0006380621 00000 n 0006380664 00000 n 0006380707 00000 n 0006380750 00000 n 0006380793 00000 n 0006380836 00000 n 0006380879 00000 n 0006380922 00000 n 0006380965 00000 n 0006381008 00000 n 0006381051 00000 n 0006381094 00000 n 0006381137 00000 n 0006381180 00000 n 0006381223 00000 n 0006381266 00000 n 0006381309 00000 n 0006381352 00000 n 0006381395 00000 n 0006381438 00000 n 0006381481 00000 n 0006381524 00000 n 0006381567 00000 n 0006381610 00000 n 0006381653 00000 n 0006381696 00000 n 0006381739 00000 n 0006381782 00000 n 0006381825 00000 n 0006381868 00000 n 0006381911 00000 n 0006381954 00000 n 0006381997 00000 n 0006382040 00000 n 0006382083 00000 n 0006382126 00000 n 0006382169 00000 n 0006382212 00000 n 0006382255 00000 n 0006382298 00000 n 0006382341 00000 n 0006382384 00000 n 0006382427 00000 n 0006382470 00000 n 0006382513 00000 n 0006382556 00000 n 0006382599 00000 n 0006382642 00000 n 0006382685 00000 n 0006382728 00000 n 0006382771 00000 n 0006382814 00000 n 0006382857 00000 n 0006382900 00000 n 0006382943 00000 n 0006382986 00000 n 0006383029 00000 n 0006383072 00000 n 0006383115 00000 n 0006383158 00000 n 0006383201 00000 n 0006383244 00000 n 0006383287 00000 n 0006383330 00000 n 0006383661 00000 n 0006384083 00000 n 0006384126 00000 n 0006384168 00000 n 0006384212 00000 n 0006384256 00000 n 0006384324 00000 n 0006384544 00000 n 0006384643 00000 n 0006386906 00000 n 0006387237 00000 n 0006387659 00000 n 0006387703 00000 n 0006387746 00000 n 0006387814 00000 n 0006388034 00000 n 0006388133 00000 n 0006389559 00000 n 0006389890 00000 n 0006390312 00000 n 0006390356 00000 n 0006390399 00000 n 0006390442 00000 n 0006390484 00000 n 0006390528 00000 n 0006390572 00000 n 0006390615 00000 n 0006390657 00000 n 0006390700 00000 n 0006391031 00000 n 0006391453 00000 n 0006391497 00000 n 0006391541 00000 n 0006391609 00000 n 0006391858 00000 n 0006391957 00000 n 0006395663 00000 n 0006395994 00000 n 0006396416 00000 n 0006396459 00000 n 0006396502 00000 n 0006396570 00000 n 0006396847 00000 n 0006396946 00000 n 0006401520 00000 n 0006401851 00000 n 0006402273 00000 n 0006402341 00000 n 0006402561 00000 n 0006402660 00000 n 0006406512 00000 n 0006406843 00000 n 0006407265 00000 n 0006407309 00000 n 0006407352 00000 n 0006407420 00000 n 0006407669 00000 n 0006407768 00000 n 0006412052 00000 n 0006412383 00000 n 0006412805 00000 n 0006412848 00000 n 0006412916 00000 n 0006413151 00000 n 0006413250 00000 n 0006415454 00000 n 0006415785 00000 n 0006416207 00000 n 0006416251 00000 n 0006416294 00000 n 0006416338 00000 n 0006416382 00000 n 0006416450 00000 n 0006416685 00000 n 0006416784 00000 n 0006420361 00000 n 0006420692 00000 n 0006421114 00000 n 0006421182 00000 n 0006421416 00000 n 0006421515 00000 n 0006426150 00000 n 0006426481 00000 n 0006426903 00000 n 0006426947 00000 n 0006427015 00000 n 0006427250 00000 n 0006427349 00000 n 0006431716 00000 n 0006431855 00000 n 0006431994 00000 n 0006432133 00000 n 0006432272 00000 n 0006432411 00000 n 0006432550 00000 n 0006432689 00000 n 0006432828 00000 n 0006432967 00000 n 0006433106 00000 n 0006433245 00000 n 0006433384 00000 n 0006433523 00000 n 0006433662 00000 n 0006433801 00000 n 0006433940 00000 n 0006434079 00000 n 0006434218 00000 n 0006434357 00000 n 0006434496 00000 n 0006434635 00000 n 0006434774 00000 n 0006434913 00000 n 0006435052 00000 n 0006435191 00000 n 0006435330 00000 n 0006435469 00000 n 0006435608 00000 n 0006435747 00000 n 0006435886 00000 n 0006436025 00000 n 0006436164 00000 n 0006436303 00000 n 0006436442 00000 n 0006436581 00000 n 0006436720 00000 n 0006436859 00000 n 0006436998 00000 n 0006437137 00000 n 0006437276 00000 n 0006437415 00000 n 0006437554 00000 n 0006437693 00000 n 0006437832 00000 n 0006437971 00000 n 0006438110 00000 n 0006438249 00000 n 0006438388 00000 n 0006438527 00000 n 0006438666 00000 n 0006438805 00000 n 0006438944 00000 n 0006439083 00000 n 0006439222 00000 n 0006439361 00000 n 0006439500 00000 n 0006439639 00000 n 0006439778 00000 n 0006439917 00000 n 0006440056 00000 n 0006440195 00000 n 0006440334 00000 n 0006440473 00000 n 0006440612 00000 n 0006440751 00000 n 0006440890 00000 n 0006441029 00000 n 0006441168 00000 n 0006441307 00000 n 0006441446 00000 n 0006441585 00000 n 0006441724 00000 n 0006441863 00000 n 0006442002 00000 n 0006442141 00000 n 0006442280 00000 n 0006442419 00000 n 0006442558 00000 n 0006442697 00000 n 0006442836 00000 n 0006442975 00000 n 0006443114 00000 n 0006443253 00000 n 0006443392 00000 n 0006443531 00000 n 0006443670 00000 n 0006443809 00000 n 0006443948 00000 n 0006444087 00000 n 0006444226 00000 n 0006444365 00000 n 0006444504 00000 n 0006444643 00000 n 0006444782 00000 n 0006444921 00000 n 0006445060 00000 n 0006445199 00000 n 0006445338 00000 n 0006445477 00000 n 0006445616 00000 n 0006445755 00000 n 0006445894 00000 n 0006446033 00000 n 0006446172 00000 n 0006446311 00000 n 0006446450 00000 n 0006446589 00000 n 0006446728 00000 n 0006446867 00000 n 0006447006 00000 n 0006447145 00000 n 0006447284 00000 n 0006447423 00000 n 0006447562 00000 n 0006447701 00000 n 0006447840 00000 n 0006447979 00000 n 0006448118 00000 n 0006448257 00000 n 0006448396 00000 n 0006448535 00000 n 0006448674 00000 n 0006448813 00000 n 0006448952 00000 n 0006449091 00000 n 0006449230 00000 n 0006449369 00000 n 0006449508 00000 n 0006449647 00000 n 0006449786 00000 n 0006449925 00000 n 0006450064 00000 n 0006450203 00000 n 0006450342 00000 n 0006450481 00000 n 0006450620 00000 n 0006450759 00000 n 0006450898 00000 n 0006451037 00000 n 0006451176 00000 n 0006451315 00000 n 0006451454 00000 n 0006451593 00000 n 0006451732 00000 n 0006451871 00000 n 0006452010 00000 n 0006452149 00000 n 0006452288 00000 n 0006452427 00000 n 0006452566 00000 n 0006452705 00000 n 0006452844 00000 n 0006452983 00000 n 0006453122 00000 n 0006453261 00000 n 0006453400 00000 n 0006453539 00000 n 0006453678 00000 n 0006453817 00000 n 0006453956 00000 n 0006454095 00000 n 0006454234 00000 n 0006454373 00000 n 0006454512 00000 n 0006454651 00000 n 0006454790 00000 n 0006454929 00000 n 0006455068 00000 n 0006455207 00000 n 0006455346 00000 n 0006455485 00000 n 0006455624 00000 n 0006455763 00000 n 0006455902 00000 n 0006456041 00000 n 0006456180 00000 n 0006456319 00000 n 0006456458 00000 n 0006456597 00000 n 0006456736 00000 n 0006456875 00000 n 0006457014 00000 n 0006457153 00000 n 0006457292 00000 n 0006457431 00000 n 0006457570 00000 n 0006457709 00000 n 0006457848 00000 n 0006457987 00000 n 0006458126 00000 n 0006458265 00000 n 0006458404 00000 n 0006458543 00000 n 0006458682 00000 n 0006458821 00000 n 0006458960 00000 n 0006459099 00000 n 0006459238 00000 n 0006459377 00000 n 0006459516 00000 n 0006459655 00000 n 0006459794 00000 n 0006459933 00000 n 0006460072 00000 n 0006460211 00000 n 0006460350 00000 n 0006460489 00000 n 0006460628 00000 n 0006460767 00000 n 0006460906 00000 n 0006461045 00000 n 0006461184 00000 n 0006461323 00000 n 0006461462 00000 n 0006461601 00000 n 0006461740 00000 n 0006461879 00000 n 0006462018 00000 n 0006462157 00000 n 0006462296 00000 n 0006462339 00000 n 0006462382 00000 n 0006462425 00000 n 0006462468 00000 n 0006462511 00000 n 0006462554 00000 n 0006462597 00000 n 0006462640 00000 n 0006462683 00000 n 0006462726 00000 n 0006462769 00000 n 0006462812 00000 n 0006462855 00000 n 0006462898 00000 n 0006462941 00000 n 0006462984 00000 n 0006463027 00000 n 0006463070 00000 n 0006463113 00000 n 0006463156 00000 n 0006463199 00000 n 0006463242 00000 n 0006463285 00000 n 0006463328 00000 n 0006463371 00000 n 0006463414 00000 n 0006463457 00000 n 0006463500 00000 n 0006463543 00000 n 0006463586 00000 n 0006463629 00000 n 0006463672 00000 n 0006463715 00000 n 0006463758 00000 n 0006463801 00000 n 0006463844 00000 n 0006463887 00000 n 0006463930 00000 n 0006463973 00000 n 0006464016 00000 n 0006464059 00000 n 0006464102 00000 n 0006464145 00000 n 0006464188 00000 n 0006464231 00000 n 0006464274 00000 n 0006464317 00000 n 0006464360 00000 n 0006464403 00000 n 0006464446 00000 n 0006464489 00000 n 0006464532 00000 n 0006464575 00000 n 0006464618 00000 n 0006464661 00000 n 0006464704 00000 n 0006464747 00000 n 0006464790 00000 n 0006464833 00000 n 0006464876 00000 n 0006464919 00000 n 0006464962 00000 n 0006465005 00000 n 0006465048 00000 n 0006465091 00000 n 0006465134 00000 n 0006465177 00000 n 0006465220 00000 n 0006465263 00000 n 0006465306 00000 n 0006465349 00000 n 0006465392 00000 n 0006465435 00000 n 0006465478 00000 n 0006465521 00000 n 0006465564 00000 n 0006465607 00000 n 0006465650 00000 n 0006465693 00000 n 0006465736 00000 n 0006465779 00000 n 0006465822 00000 n 0006465865 00000 n 0006465908 00000 n 0006465951 00000 n 0006465994 00000 n 0006466037 00000 n 0006466080 00000 n 0006466123 00000 n 0006466166 00000 n 0006466209 00000 n 0006466252 00000 n 0006466295 00000 n 0006466338 00000 n 0006466381 00000 n 0006466424 00000 n 0006466467 00000 n 0006466510 00000 n 0006466553 00000 n 0006466596 00000 n 0006466639 00000 n 0006466682 00000 n 0006466725 00000 n 0006466768 00000 n 0006466811 00000 n 0006466854 00000 n 0006466897 00000 n 0006466940 00000 n 0006466983 00000 n 0006467026 00000 n 0006467069 00000 n 0006467112 00000 n 0006467155 00000 n 0006467198 00000 n 0006467241 00000 n 0006467284 00000 n 0006467327 00000 n 0006467370 00000 n 0006467413 00000 n 0006467456 00000 n 0006467499 00000 n 0006467542 00000 n 0006467585 00000 n 0006467628 00000 n 0006467671 00000 n 0006467714 00000 n 0006467757 00000 n 0006467800 00000 n 0006467843 00000 n 0006467886 00000 n 0006467929 00000 n 0006467972 00000 n 0006468015 00000 n 0006468058 00000 n 0006468101 00000 n 0006468144 00000 n 0006468187 00000 n 0006468230 00000 n 0006468273 00000 n 0006468316 00000 n 0006468359 00000 n 0006468402 00000 n 0006468445 00000 n 0006468488 00000 n 0006468531 00000 n 0006468574 00000 n 0006468617 00000 n 0006468660 00000 n 0006468703 00000 n 0006468746 00000 n 0006468789 00000 n 0006468832 00000 n 0006468875 00000 n 0006468918 00000 n 0006468961 00000 n 0006469004 00000 n 0006469047 00000 n 0006469090 00000 n 0006469133 00000 n 0006469176 00000 n 0006469219 00000 n 0006469262 00000 n 0006469305 00000 n 0006469348 00000 n 0006469391 00000 n 0006469434 00000 n 0006469477 00000 n 0006469520 00000 n 0006469563 00000 n 0006469606 00000 n 0006469649 00000 n 0006469692 00000 n 0006469735 00000 n 0006469778 00000 n 0006469821 00000 n 0006469864 00000 n 0006469907 00000 n 0006469950 00000 n 0006469993 00000 n 0006470036 00000 n 0006470079 00000 n 0006470122 00000 n 0006470165 00000 n 0006470208 00000 n 0006470251 00000 n 0006470294 00000 n 0006470337 00000 n 0006470380 00000 n 0006470423 00000 n 0006470466 00000 n 0006470509 00000 n 0006470552 00000 n 0006470595 00000 n 0006470638 00000 n 0006470681 00000 n 0006470724 00000 n 0006470767 00000 n 0006470810 00000 n 0006470853 00000 n 0006470896 00000 n 0006470939 00000 n 0006470982 00000 n 0006471025 00000 n 0006471068 00000 n 0006471111 00000 n 0006471154 00000 n 0006471197 00000 n 0006471240 00000 n 0006471283 00000 n 0006471326 00000 n 0006471369 00000 n 0006471412 00000 n 0006471455 00000 n 0006471498 00000 n 0006471541 00000 n 0006471584 00000 n 0006471627 00000 n 0006471670 00000 n 0006471713 00000 n 0006472044 00000 n 0006472466 00000 n 0006472509 00000 n 0006472553 00000 n 0006472594 00000 n 0006472638 00000 n 0006472681 00000 n 0006472725 00000 n 0006472769 00000 n 0006472812 00000 n 0006472855 00000 n 0006472899 00000 n 0006472942 00000 n 0006473273 00000 n 0006473695 00000 n 0006473738 00000 n 0006473782 00000 n 0006473850 00000 n 0006474113 00000 n 0006474212 00000 n 0006477894 00000 n 0006478059 00000 n 0006478101 00000 n 0006478432 00000 n 0006478854 00000 n 0006478898 00000 n 0006478942 00000 n 0006478986 00000 n 0006479027 00000 n 0006479071 00000 n 0006479115 00000 n 0006479158 00000 n 0006479202 00000 n 0006479246 00000 n 0006479314 00000 n 0006479549 00000 n 0006479648 00000 n 0006484165 00000 n 0006484496 00000 n 0006484918 00000 n 0006484962 00000 n 0006485005 00000 n 0006485073 00000 n 0006485336 00000 n 0006485435 00000 n 0006487911 00000 n 0006488242 00000 n 0006488664 00000 n 0006488707 00000 n 0006488775 00000 n 0006488995 00000 n 0006489094 00000 n 0006492515 00000 n 0006492846 00000 n 0006493268 00000 n 0006493312 00000 n 0006493380 00000 n 0006493643 00000 n 0006493742 00000 n 0006497175 00000 n 0006497341 00000 n 0006497383 00000 n 0006497714 00000 n 0006498136 00000 n 0006498407 00000 n 0006498887 00000 n 0006501359 00000 n 0006501402 00000 n 0006501445 00000 n 0006501489 00000 n 0006501557 00000 n 0006501805 00000 n 0006501904 00000 n 0006506141 00000 n 0006506472 00000 n 0006506894 00000 n 0006506938 00000 n 0006507006 00000 n 0006507241 00000 n 0006507340 00000 n 0006511257 00000 n 0006511396 00000 n 0006511535 00000 n 0006511674 00000 n 0006511813 00000 n 0006511952 00000 n 0006512091 00000 n 0006512230 00000 n 0006512369 00000 n 0006512508 00000 n 0006512647 00000 n 0006512786 00000 n 0006512925 00000 n 0006513064 00000 n 0006513203 00000 n 0006513342 00000 n 0006513481 00000 n 0006513620 00000 n 0006513759 00000 n 0006513898 00000 n 0006514037 00000 n 0006514176 00000 n 0006514315 00000 n 0006514454 00000 n 0006514593 00000 n 0006514732 00000 n 0006514871 00000 n 0006515010 00000 n 0006515149 00000 n 0006515288 00000 n 0006515427 00000 n 0006515566 00000 n 0006515705 00000 n 0006515844 00000 n 0006515983 00000 n 0006516122 00000 n 0006516261 00000 n 0006516400 00000 n 0006516539 00000 n 0006516678 00000 n 0006516817 00000 n 0006516956 00000 n 0006517095 00000 n 0006517234 00000 n 0006517373 00000 n 0006517512 00000 n 0006517651 00000 n 0006517790 00000 n 0006517929 00000 n 0006518068 00000 n 0006518207 00000 n 0006518346 00000 n 0006518485 00000 n 0006518624 00000 n 0006518763 00000 n 0006518902 00000 n 0006519041 00000 n 0006519180 00000 n 0006519319 00000 n 0006519458 00000 n 0006519597 00000 n 0006519736 00000 n 0006519875 00000 n 0006520014 00000 n 0006520153 00000 n 0006520292 00000 n 0006520431 00000 n 0006520570 00000 n 0006520709 00000 n 0006520848 00000 n 0006520987 00000 n 0006521126 00000 n 0006521265 00000 n 0006521404 00000 n 0006521543 00000 n 0006521682 00000 n 0006521821 00000 n 0006521960 00000 n 0006522099 00000 n 0006522238 00000 n 0006522377 00000 n 0006522516 00000 n 0006522655 00000 n 0006522794 00000 n 0006522933 00000 n 0006523072 00000 n 0006523211 00000 n 0006523350 00000 n 0006523489 00000 n 0006523628 00000 n 0006523767 00000 n 0006523906 00000 n 0006524045 00000 n 0006524184 00000 n 0006524323 00000 n 0006524462 00000 n 0006524601 00000 n 0006524740 00000 n 0006524879 00000 n 0006525018 00000 n 0006525157 00000 n 0006525296 00000 n 0006525435 00000 n 0006525574 00000 n 0006525713 00000 n 0006525852 00000 n 0006525991 00000 n 0006526130 00000 n 0006526269 00000 n 0006526408 00000 n 0006526547 00000 n 0006526686 00000 n 0006526825 00000 n 0006526964 00000 n 0006527103 00000 n 0006527242 00000 n 0006527381 00000 n 0006527520 00000 n 0006527659 00000 n 0006527798 00000 n 0006527937 00000 n 0006528076 00000 n 0006528215 00000 n 0006528354 00000 n 0006528493 00000 n 0006528632 00000 n 0006528771 00000 n 0006528910 00000 n 0006529049 00000 n 0006529188 00000 n 0006529327 00000 n 0006529466 00000 n 0006529605 00000 n 0006529744 00000 n 0006529883 00000 n 0006530022 00000 n 0006530161 00000 n 0006530300 00000 n 0006530439 00000 n 0006530578 00000 n 0006530717 00000 n 0006530856 00000 n 0006530995 00000 n 0006531134 00000 n 0006531273 00000 n 0006531412 00000 n 0006531551 00000 n 0006531690 00000 n 0006531829 00000 n 0006531968 00000 n 0006532107 00000 n 0006532246 00000 n 0006532385 00000 n 0006532524 00000 n 0006532663 00000 n 0006532802 00000 n 0006532941 00000 n 0006533080 00000 n 0006533219 00000 n 0006533358 00000 n 0006533497 00000 n 0006533636 00000 n 0006533775 00000 n 0006533914 00000 n 0006534053 00000 n 0006534192 00000 n 0006534331 00000 n 0006534470 00000 n 0006534609 00000 n 0006534748 00000 n 0006534887 00000 n 0006535026 00000 n 0006535165 00000 n 0006535304 00000 n 0006535443 00000 n 0006535582 00000 n 0006535721 00000 n 0006535860 00000 n 0006535999 00000 n 0006536138 00000 n 0006536277 00000 n 0006536416 00000 n 0006536555 00000 n 0006536694 00000 n 0006536833 00000 n 0006536972 00000 n 0006537111 00000 n 0006537250 00000 n 0006537389 00000 n 0006537528 00000 n 0006537667 00000 n 0006537806 00000 n 0006537945 00000 n 0006538084 00000 n 0006538223 00000 n 0006538362 00000 n 0006538501 00000 n 0006538640 00000 n 0006538779 00000 n 0006538918 00000 n 0006539057 00000 n 0006539196 00000 n 0006539335 00000 n 0006539474 00000 n 0006539613 00000 n 0006539752 00000 n 0006539891 00000 n 0006540030 00000 n 0006540169 00000 n 0006540308 00000 n 0006540447 00000 n 0006540586 00000 n 0006540725 00000 n 0006540864 00000 n 0006541003 00000 n 0006541142 00000 n 0006541281 00000 n 0006541420 00000 n 0006541559 00000 n 0006541698 00000 n 0006541837 00000 n 0006541976 00000 n 0006542115 00000 n 0006542254 00000 n 0006542393 00000 n 0006542532 00000 n 0006542671 00000 n 0006542810 00000 n 0006542949 00000 n 0006543088 00000 n 0006543227 00000 n 0006543366 00000 n 0006543505 00000 n 0006543644 00000 n 0006543783 00000 n 0006543922 00000 n 0006544061 00000 n 0006544200 00000 n 0006544339 00000 n 0006544478 00000 n 0006544521 00000 n 0006544564 00000 n 0006544607 00000 n 0006544650 00000 n 0006544693 00000 n 0006544736 00000 n 0006544779 00000 n 0006544822 00000 n 0006544865 00000 n 0006544908 00000 n 0006544951 00000 n 0006544994 00000 n 0006545037 00000 n 0006545080 00000 n 0006545123 00000 n 0006545166 00000 n 0006545209 00000 n 0006545252 00000 n 0006545295 00000 n 0006545338 00000 n 0006545381 00000 n 0006545424 00000 n 0006545467 00000 n 0006545510 00000 n 0006545553 00000 n 0006545596 00000 n 0006545639 00000 n 0006545682 00000 n 0006545725 00000 n 0006545768 00000 n 0006545811 00000 n 0006545854 00000 n 0006545897 00000 n 0006545940 00000 n 0006545983 00000 n 0006546026 00000 n 0006546069 00000 n 0006546112 00000 n 0006546155 00000 n 0006546198 00000 n 0006546241 00000 n 0006546284 00000 n 0006546327 00000 n 0006546370 00000 n 0006546413 00000 n 0006546456 00000 n 0006546499 00000 n 0006546542 00000 n 0006546585 00000 n 0006546628 00000 n 0006546671 00000 n 0006546714 00000 n 0006546757 00000 n 0006546800 00000 n 0006546843 00000 n 0006546886 00000 n 0006546929 00000 n 0006546972 00000 n 0006547015 00000 n 0006547058 00000 n 0006547101 00000 n 0006547144 00000 n 0006547187 00000 n 0006547230 00000 n 0006547273 00000 n 0006547316 00000 n 0006547359 00000 n 0006547402 00000 n 0006547445 00000 n 0006547488 00000 n 0006547531 00000 n 0006547574 00000 n 0006547617 00000 n 0006547660 00000 n 0006547703 00000 n 0006547746 00000 n 0006547789 00000 n 0006547832 00000 n 0006547875 00000 n 0006547918 00000 n 0006547961 00000 n 0006548004 00000 n 0006548047 00000 n 0006548090 00000 n 0006548133 00000 n 0006548176 00000 n 0006548219 00000 n 0006548262 00000 n 0006548305 00000 n 0006548348 00000 n 0006548391 00000 n 0006548434 00000 n 0006548477 00000 n 0006548520 00000 n 0006548563 00000 n 0006548606 00000 n 0006548649 00000 n 0006548692 00000 n 0006548735 00000 n 0006548778 00000 n 0006548821 00000 n 0006548864 00000 n 0006548907 00000 n 0006548950 00000 n 0006548993 00000 n 0006549036 00000 n 0006549079 00000 n 0006549122 00000 n 0006549165 00000 n 0006549208 00000 n 0006549251 00000 n 0006549294 00000 n 0006549337 00000 n 0006549380 00000 n 0006549423 00000 n 0006549466 00000 n 0006549509 00000 n 0006549552 00000 n 0006549595 00000 n 0006549638 00000 n 0006549681 00000 n 0006549724 00000 n 0006549767 00000 n 0006549810 00000 n 0006549853 00000 n 0006549896 00000 n 0006549939 00000 n 0006549982 00000 n 0006550025 00000 n 0006550068 00000 n 0006550111 00000 n 0006550154 00000 n 0006550197 00000 n 0006550240 00000 n 0006550283 00000 n 0006550326 00000 n 0006550369 00000 n 0006550412 00000 n 0006550455 00000 n 0006550498 00000 n 0006550541 00000 n 0006550584 00000 n 0006550627 00000 n 0006550670 00000 n 0006550713 00000 n 0006550756 00000 n 0006550799 00000 n 0006550842 00000 n 0006550885 00000 n 0006550928 00000 n 0006550971 00000 n 0006551014 00000 n 0006551057 00000 n 0006551100 00000 n 0006551143 00000 n 0006551186 00000 n 0006551229 00000 n 0006551272 00000 n 0006551315 00000 n 0006551358 00000 n 0006551401 00000 n 0006551444 00000 n 0006551487 00000 n 0006551530 00000 n 0006551573 00000 n 0006551616 00000 n 0006551659 00000 n 0006551702 00000 n 0006551745 00000 n 0006551788 00000 n 0006551831 00000 n 0006551874 00000 n 0006551917 00000 n 0006551960 00000 n 0006552003 00000 n 0006552046 00000 n 0006552089 00000 n 0006552132 00000 n 0006552175 00000 n 0006552218 00000 n 0006552261 00000 n 0006552304 00000 n 0006552347 00000 n 0006552390 00000 n 0006552433 00000 n 0006552476 00000 n 0006552519 00000 n 0006552562 00000 n 0006552605 00000 n 0006552648 00000 n 0006552691 00000 n 0006552734 00000 n 0006552777 00000 n 0006552820 00000 n 0006552863 00000 n 0006552906 00000 n 0006552949 00000 n 0006552992 00000 n 0006553035 00000 n 0006553078 00000 n 0006553121 00000 n 0006553164 00000 n 0006553207 00000 n 0006553250 00000 n 0006553293 00000 n 0006553336 00000 n 0006553379 00000 n 0006553422 00000 n 0006553465 00000 n 0006553508 00000 n 0006553551 00000 n 0006553594 00000 n 0006553637 00000 n 0006553680 00000 n 0006553723 00000 n 0006553766 00000 n 0006553809 00000 n 0006553852 00000 n 0006553895 00000 n 0006553938 00000 n 0006553981 00000 n 0006554024 00000 n 0006554067 00000 n 0006554110 00000 n 0006554153 00000 n 0006554196 00000 n 0006554239 00000 n 0006554282 00000 n 0006554325 00000 n 0006554368 00000 n 0006554411 00000 n 0006554454 00000 n 0006554497 00000 n 0006554540 00000 n 0006554583 00000 n 0006554626 00000 n 0006554669 00000 n 0006555000 00000 n 0006555422 00000 n 0006555465 00000 n 0006555507 00000 n 0006555575 00000 n 0006555824 00000 n 0006555923 00000 n 0006559060 00000 n 0006559391 00000 n 0006559813 00000 n 0006559856 00000 n 0006559899 00000 n 0006559943 00000 n 0006559986 00000 n 0006560030 00000 n 0006560073 00000 n 0006560116 00000 n 0006560160 00000 n 0006560203 00000 n 0006560247 00000 n 0006560315 00000 n 0006560549 00000 n 0006560648 00000 n 0006563789 00000 n 0006564120 00000 n 0006564542 00000 n 0006564610 00000 n 0006564844 00000 n 0006564943 00000 n 0006568128 00000 n 0006568459 00000 n 0006568881 00000 n 0006568925 00000 n 0006568969 00000 n 0006569013 00000 n 0006569056 00000 n 0006569099 00000 n 0006569143 00000 n 0006569186 00000 n 0006569229 00000 n 0006569273 00000 n 0006569341 00000 n 0006569590 00000 n 0006569689 00000 n 0006572543 00000 n 0006572874 00000 n 0006573296 00000 n 0006573339 00000 n 0006573382 00000 n 0006573425 00000 n 0006573469 00000 n 0006573513 00000 n 0006573581 00000 n 0006573801 00000 n 0006573900 00000 n 0006577429 00000 n 0006577760 00000 n 0006578182 00000 n 0006578226 00000 n 0006578269 00000 n 0006578337 00000 n 0006578614 00000 n 0006578713 00000 n 0006582879 00000 n 0006583043 00000 n 0006583086 00000 n 0006583417 00000 n 0006583839 00000 n 0006583883 00000 n 0006583926 00000 n 0006583969 00000 n 0006584012 00000 n 0006584343 00000 n 0006584765 00000 n 0006584809 00000 n 0006584852 00000 n 0006584895 00000 n 0006584937 00000 n 0006585005 00000 n 0006585225 00000 n 0006585324 00000 n 0006588798 00000 n 0006588937 00000 n 0006589076 00000 n 0006589215 00000 n 0006589354 00000 n 0006589493 00000 n 0006589632 00000 n 0006589771 00000 n 0006589910 00000 n 0006590049 00000 n 0006590188 00000 n 0006590327 00000 n 0006590466 00000 n 0006590605 00000 n 0006590744 00000 n 0006590883 00000 n 0006591022 00000 n 0006591161 00000 n 0006591300 00000 n 0006591439 00000 n 0006591578 00000 n 0006591717 00000 n 0006591856 00000 n 0006591995 00000 n 0006592134 00000 n 0006592273 00000 n 0006592412 00000 n 0006592551 00000 n 0006592690 00000 n 0006592829 00000 n 0006592968 00000 n 0006593107 00000 n 0006593246 00000 n 0006593385 00000 n 0006593524 00000 n 0006593663 00000 n 0006593802 00000 n 0006593941 00000 n 0006594080 00000 n 0006594219 00000 n 0006594358 00000 n 0006594497 00000 n 0006594636 00000 n 0006594775 00000 n 0006594914 00000 n 0006595053 00000 n 0006595192 00000 n 0006595331 00000 n 0006595470 00000 n 0006595609 00000 n 0006595748 00000 n 0006595887 00000 n 0006596026 00000 n 0006596165 00000 n 0006596304 00000 n 0006596443 00000 n 0006596582 00000 n 0006596721 00000 n 0006596860 00000 n 0006596999 00000 n 0006597138 00000 n 0006597277 00000 n 0006597416 00000 n 0006597555 00000 n 0006597694 00000 n 0006597833 00000 n 0006597972 00000 n 0006598111 00000 n 0006598250 00000 n 0006598389 00000 n 0006598528 00000 n 0006598667 00000 n 0006598806 00000 n 0006598945 00000 n 0006599084 00000 n 0006599223 00000 n 0006599362 00000 n 0006599501 00000 n 0006599640 00000 n 0006599779 00000 n 0006599918 00000 n 0006600057 00000 n 0006600196 00000 n 0006600335 00000 n 0006600474 00000 n 0006600613 00000 n 0006600752 00000 n 0006600891 00000 n 0006601030 00000 n 0006601169 00000 n 0006601308 00000 n 0006601447 00000 n 0006601586 00000 n 0006601725 00000 n 0006601864 00000 n 0006602003 00000 n 0006602142 00000 n 0006602281 00000 n 0006602420 00000 n 0006602559 00000 n 0006602698 00000 n 0006602837 00000 n 0006602976 00000 n 0006603115 00000 n 0006603254 00000 n 0006603393 00000 n 0006603532 00000 n 0006603671 00000 n 0006603810 00000 n 0006603949 00000 n 0006604088 00000 n 0006604227 00000 n 0006604366 00000 n 0006604505 00000 n 0006604644 00000 n 0006604783 00000 n 0006604922 00000 n 0006605061 00000 n 0006605200 00000 n 0006605339 00000 n 0006605478 00000 n 0006605617 00000 n 0006605756 00000 n 0006605895 00000 n 0006606034 00000 n 0006606173 00000 n 0006606312 00000 n 0006606451 00000 n 0006606590 00000 n 0006606729 00000 n 0006606868 00000 n 0006607007 00000 n 0006607146 00000 n 0006607285 00000 n 0006607424 00000 n 0006607563 00000 n 0006607702 00000 n 0006607841 00000 n 0006607980 00000 n 0006608119 00000 n 0006608258 00000 n 0006608397 00000 n 0006608536 00000 n 0006608675 00000 n 0006608814 00000 n 0006608953 00000 n 0006609092 00000 n 0006609231 00000 n 0006609370 00000 n 0006609509 00000 n 0006609648 00000 n 0006609787 00000 n 0006609926 00000 n 0006610065 00000 n 0006610204 00000 n 0006610343 00000 n 0006610482 00000 n 0006610621 00000 n 0006610760 00000 n 0006610899 00000 n 0006611038 00000 n 0006611177 00000 n 0006611316 00000 n 0006611455 00000 n 0006611594 00000 n 0006611733 00000 n 0006611872 00000 n 0006612011 00000 n 0006612150 00000 n 0006612289 00000 n 0006612428 00000 n 0006612567 00000 n 0006612706 00000 n 0006612845 00000 n 0006612984 00000 n 0006613123 00000 n 0006613262 00000 n 0006613401 00000 n 0006613540 00000 n 0006613679 00000 n 0006613818 00000 n 0006613957 00000 n 0006614096 00000 n 0006614235 00000 n 0006614374 00000 n 0006614513 00000 n 0006614652 00000 n 0006614791 00000 n 0006614930 00000 n 0006615069 00000 n 0006615208 00000 n 0006615347 00000 n 0006615486 00000 n 0006615625 00000 n 0006615764 00000 n 0006615903 00000 n 0006616042 00000 n 0006616181 00000 n 0006616320 00000 n 0006616459 00000 n 0006616598 00000 n 0006616737 00000 n 0006616876 00000 n 0006617015 00000 n 0006617154 00000 n 0006617293 00000 n 0006617432 00000 n 0006617571 00000 n 0006617710 00000 n 0006617849 00000 n 0006617988 00000 n 0006618127 00000 n 0006618266 00000 n 0006618405 00000 n 0006618544 00000 n 0006618683 00000 n 0006618822 00000 n 0006618961 00000 n 0006619100 00000 n 0006619239 00000 n 0006619378 00000 n 0006619517 00000 n 0006619656 00000 n 0006619795 00000 n 0006619934 00000 n 0006620073 00000 n 0006620212 00000 n 0006620351 00000 n 0006620490 00000 n 0006620629 00000 n 0006620768 00000 n 0006620907 00000 n 0006621046 00000 n 0006621185 00000 n 0006621324 00000 n 0006621463 00000 n 0006621602 00000 n 0006621741 00000 n 0006621880 00000 n 0006622019 00000 n 0006622158 00000 n 0006622297 00000 n 0006622436 00000 n 0006622575 00000 n 0006622714 00000 n 0006622853 00000 n 0006622992 00000 n 0006623131 00000 n 0006623270 00000 n 0006623409 00000 n 0006623548 00000 n 0006623687 00000 n 0006623826 00000 n 0006623965 00000 n 0006624104 00000 n 0006624147 00000 n 0006624190 00000 n 0006624233 00000 n 0006624276 00000 n 0006624319 00000 n 0006624362 00000 n 0006624405 00000 n 0006624448 00000 n 0006624491 00000 n 0006624534 00000 n 0006624577 00000 n 0006624620 00000 n 0006624663 00000 n 0006624706 00000 n 0006624749 00000 n 0006624792 00000 n 0006624835 00000 n 0006624878 00000 n 0006624921 00000 n 0006624964 00000 n 0006625007 00000 n 0006625050 00000 n 0006625093 00000 n 0006625136 00000 n 0006625179 00000 n 0006625222 00000 n 0006625265 00000 n 0006625308 00000 n 0006625351 00000 n 0006625394 00000 n 0006625437 00000 n 0006625480 00000 n 0006625523 00000 n 0006625566 00000 n 0006625609 00000 n 0006625652 00000 n 0006625695 00000 n 0006625738 00000 n 0006625781 00000 n 0006625824 00000 n 0006625867 00000 n 0006625910 00000 n 0006625953 00000 n 0006625996 00000 n 0006626039 00000 n 0006626082 00000 n 0006626125 00000 n 0006626168 00000 n 0006626211 00000 n 0006626254 00000 n 0006626297 00000 n 0006626340 00000 n 0006626383 00000 n 0006626426 00000 n 0006626469 00000 n 0006626512 00000 n 0006626555 00000 n 0006626598 00000 n 0006626641 00000 n 0006626684 00000 n 0006626727 00000 n 0006626770 00000 n 0006626813 00000 n 0006626856 00000 n 0006626899 00000 n 0006626942 00000 n 0006626985 00000 n 0006627028 00000 n 0006627071 00000 n 0006627114 00000 n 0006627157 00000 n 0006627200 00000 n 0006627243 00000 n 0006627286 00000 n 0006627329 00000 n 0006627372 00000 n 0006627415 00000 n 0006627458 00000 n 0006627501 00000 n 0006627544 00000 n 0006627587 00000 n 0006627630 00000 n 0006627673 00000 n 0006627716 00000 n 0006627759 00000 n 0006627802 00000 n 0006627845 00000 n 0006627888 00000 n 0006627931 00000 n 0006627974 00000 n 0006628017 00000 n 0006628060 00000 n 0006628103 00000 n 0006628146 00000 n 0006628189 00000 n 0006628232 00000 n 0006628275 00000 n 0006628318 00000 n 0006628361 00000 n 0006628404 00000 n 0006628447 00000 n 0006628490 00000 n 0006628533 00000 n 0006628576 00000 n 0006628619 00000 n 0006628662 00000 n 0006628705 00000 n 0006628748 00000 n 0006628791 00000 n 0006628834 00000 n 0006628877 00000 n 0006628920 00000 n 0006628963 00000 n 0006629006 00000 n 0006629049 00000 n 0006629092 00000 n 0006629135 00000 n 0006629178 00000 n 0006629221 00000 n 0006629264 00000 n 0006629307 00000 n 0006629350 00000 n 0006629393 00000 n 0006629436 00000 n 0006629479 00000 n 0006629522 00000 n 0006629565 00000 n 0006629608 00000 n 0006629651 00000 n 0006629694 00000 n 0006629737 00000 n 0006629780 00000 n 0006629823 00000 n 0006629866 00000 n 0006629909 00000 n 0006629952 00000 n 0006629995 00000 n 0006630038 00000 n 0006630081 00000 n 0006630124 00000 n 0006630167 00000 n 0006630210 00000 n 0006630253 00000 n 0006630296 00000 n 0006630339 00000 n 0006630382 00000 n 0006630425 00000 n 0006630468 00000 n 0006630511 00000 n 0006630554 00000 n 0006630597 00000 n 0006630640 00000 n 0006630683 00000 n 0006630726 00000 n 0006630769 00000 n 0006630812 00000 n 0006630855 00000 n 0006630898 00000 n 0006630941 00000 n 0006630984 00000 n 0006631027 00000 n 0006631070 00000 n 0006631113 00000 n 0006631156 00000 n 0006631199 00000 n 0006631242 00000 n 0006631285 00000 n 0006631328 00000 n 0006631371 00000 n 0006631414 00000 n 0006631457 00000 n 0006631500 00000 n 0006631543 00000 n 0006631586 00000 n 0006631629 00000 n 0006631672 00000 n 0006631715 00000 n 0006631758 00000 n 0006631801 00000 n 0006631844 00000 n 0006631887 00000 n 0006631930 00000 n 0006631973 00000 n 0006632016 00000 n 0006632059 00000 n 0006632102 00000 n 0006632145 00000 n 0006632188 00000 n 0006632231 00000 n 0006632274 00000 n 0006632317 00000 n 0006632360 00000 n 0006632403 00000 n 0006632446 00000 n 0006632489 00000 n 0006632532 00000 n 0006632575 00000 n 0006632618 00000 n 0006632661 00000 n 0006632704 00000 n 0006632747 00000 n 0006632790 00000 n 0006632833 00000 n 0006632876 00000 n 0006632919 00000 n 0006632962 00000 n 0006633005 00000 n 0006633048 00000 n 0006633091 00000 n 0006633134 00000 n 0006633177 00000 n 0006633220 00000 n 0006633263 00000 n 0006633306 00000 n 0006633349 00000 n 0006633392 00000 n 0006633435 00000 n 0006633478 00000 n 0006633521 00000 n 0006633564 00000 n 0006633607 00000 n 0006633650 00000 n 0006633693 00000 n 0006633736 00000 n 0006633779 00000 n 0006633822 00000 n 0006633865 00000 n 0006633908 00000 n 0006633951 00000 n 0006633994 00000 n 0006634037 00000 n 0006634080 00000 n 0006634123 00000 n 0006634166 00000 n 0006634209 00000 n 0006634252 00000 n 0006634295 00000 n 0006634338 00000 n 0006634381 00000 n 0006634424 00000 n 0006634467 00000 n 0006634510 00000 n 0006634553 00000 n 0006634596 00000 n 0006634639 00000 n 0006634682 00000 n 0006634725 00000 n 0006634768 00000 n 0006634811 00000 n 0006634854 00000 n 0006634897 00000 n 0006634940 00000 n 0006634983 00000 n 0006635314 00000 n 0006635736 00000 n 0006635779 00000 n 0006635847 00000 n 0006636081 00000 n 0006636180 00000 n 0006638783 00000 n 0006639114 00000 n 0006639536 00000 n 0006639579 00000 n 0006639623 00000 n 0006639691 00000 n 0006639940 00000 n 0006640039 00000 n 0006643714 00000 n 0006644045 00000 n 0006644467 00000 n 0006644509 00000 n 0006644553 00000 n 0006644596 00000 n 0006644639 00000 n 0006644683 00000 n 0006644727 00000 n 0006644771 00000 n 0006644814 00000 n 0006644882 00000 n 0006645102 00000 n 0006645201 00000 n 0006649289 00000 n 0006649620 00000 n 0006650042 00000 n 0006650086 00000 n 0006650129 00000 n 0006650197 00000 n 0006650417 00000 n 0006650516 00000 n 0006652922 00000 n 0006653253 00000 n 0006653675 00000 n 0006653719 00000 n 0006653761 00000 n 0006653805 00000 n 0006653848 00000 n 0006653892 00000 n 0006654163 00000 n 0006654562 00000 n 0006656059 00000 n 0006656103 00000 n 0006656146 00000 n 0006656190 00000 n 0006656234 00000 n 0006656277 00000 n 0006656320 00000 n 0006656388 00000 n 0006656622 00000 n 0006656721 00000 n 0006659041 00000 n 0006659372 00000 n 0006659794 00000 n 0006659838 00000 n 0006659881 00000 n 0006659924 00000 n 0006659968 00000 n 0006660011 00000 n 0006660079 00000 n 0006660342 00000 n 0006660441 00000 n 0006662705 00000 n 0006663036 00000 n 0006663458 00000 n 0006663501 00000 n 0006663545 00000 n 0006663589 00000 n 0006663631 00000 n 0006663699 00000 n 0006663919 00000 n 0006664018 00000 n 0006665590 00000 n 0006665921 00000 n 0006666343 00000 n 0006666386 00000 n 0006666430 00000 n 0006666498 00000 n 0006666747 00000 n 0006666846 00000 n 0006670489 00000 n 0006670820 00000 n 0006671242 00000 n 0006671286 00000 n 0006671329 00000 n 0006671397 00000 n 0006671646 00000 n 0006671745 00000 n 0006676285 00000 n 0006676450 00000 n 0006676492 00000 n 0006676823 00000 n 0006677245 00000 n 0006677288 00000 n 0006677332 00000 n 0006677375 00000 n 0006677419 00000 n 0006677462 00000 n 0006677506 00000 n 0006677574 00000 n 0006677794 00000 n 0006677893 00000 n 0006681946 00000 n 0006682085 00000 n 0006682224 00000 n 0006682363 00000 n 0006682502 00000 n 0006682641 00000 n 0006682780 00000 n 0006682919 00000 n 0006683058 00000 n 0006683197 00000 n 0006683336 00000 n 0006683475 00000 n 0006683614 00000 n 0006683753 00000 n 0006683892 00000 n 0006684031 00000 n 0006684170 00000 n 0006684309 00000 n 0006684448 00000 n 0006684587 00000 n 0006684726 00000 n 0006684865 00000 n 0006685004 00000 n 0006685143 00000 n 0006685282 00000 n 0006685421 00000 n 0006685560 00000 n 0006685699 00000 n 0006685838 00000 n 0006685977 00000 n 0006686116 00000 n 0006686255 00000 n 0006686394 00000 n 0006686533 00000 n 0006686672 00000 n 0006686811 00000 n 0006686950 00000 n 0006687089 00000 n 0006687228 00000 n 0006687367 00000 n 0006687506 00000 n 0006687645 00000 n 0006687784 00000 n 0006687923 00000 n 0006688062 00000 n 0006688201 00000 n 0006688340 00000 n 0006688479 00000 n 0006688618 00000 n 0006688757 00000 n 0006688896 00000 n 0006689035 00000 n 0006689174 00000 n 0006689313 00000 n 0006689452 00000 n 0006689591 00000 n 0006689730 00000 n 0006689869 00000 n 0006690008 00000 n 0006690147 00000 n 0006690286 00000 n 0006690425 00000 n 0006690564 00000 n 0006690703 00000 n 0006690842 00000 n 0006690981 00000 n 0006691120 00000 n 0006691259 00000 n 0006691398 00000 n 0006691537 00000 n 0006691676 00000 n 0006691815 00000 n 0006691954 00000 n 0006692093 00000 n 0006692232 00000 n 0006692371 00000 n 0006692510 00000 n 0006692649 00000 n 0006692788 00000 n 0006692927 00000 n 0006693066 00000 n 0006693205 00000 n 0006693344 00000 n 0006693483 00000 n 0006693622 00000 n 0006693761 00000 n 0006693900 00000 n 0006694039 00000 n 0006694178 00000 n 0006694317 00000 n 0006694456 00000 n 0006694595 00000 n 0006694734 00000 n 0006694873 00000 n 0006695012 00000 n 0006695151 00000 n 0006695290 00000 n 0006695429 00000 n 0006695568 00000 n 0006695707 00000 n 0006695846 00000 n 0006695985 00000 n 0006696124 00000 n 0006696263 00000 n 0006696402 00000 n 0006696541 00000 n 0006696680 00000 n 0006696819 00000 n 0006696958 00000 n 0006697097 00000 n 0006697236 00000 n 0006697375 00000 n 0006697514 00000 n 0006697653 00000 n 0006697792 00000 n 0006697931 00000 n 0006698070 00000 n 0006698209 00000 n 0006698348 00000 n 0006698487 00000 n 0006698626 00000 n 0006698765 00000 n 0006698904 00000 n 0006699043 00000 n 0006699182 00000 n 0006699321 00000 n 0006699460 00000 n 0006699599 00000 n 0006699738 00000 n 0006699877 00000 n 0006700016 00000 n 0006700155 00000 n 0006700294 00000 n 0006700433 00000 n 0006700572 00000 n 0006700711 00000 n 0006700850 00000 n 0006700989 00000 n 0006701128 00000 n 0006701267 00000 n 0006701406 00000 n 0006701545 00000 n 0006701684 00000 n 0006701823 00000 n 0006701962 00000 n 0006702101 00000 n 0006702240 00000 n 0006702379 00000 n 0006702518 00000 n 0006702657 00000 n 0006702796 00000 n 0006702935 00000 n 0006703074 00000 n 0006703213 00000 n 0006703352 00000 n 0006703491 00000 n 0006703630 00000 n 0006703769 00000 n 0006703908 00000 n 0006704047 00000 n 0006704186 00000 n 0006704325 00000 n 0006704464 00000 n 0006704603 00000 n 0006704742 00000 n 0006704881 00000 n 0006705020 00000 n 0006705159 00000 n 0006705298 00000 n 0006705437 00000 n 0006705576 00000 n 0006705715 00000 n 0006705854 00000 n 0006705993 00000 n 0006706132 00000 n 0006706271 00000 n 0006706410 00000 n 0006706549 00000 n 0006706688 00000 n 0006706827 00000 n 0006706966 00000 n 0006707105 00000 n 0006707244 00000 n 0006707383 00000 n 0006707522 00000 n 0006707661 00000 n 0006707800 00000 n 0006707939 00000 n 0006708078 00000 n 0006708217 00000 n 0006708356 00000 n 0006708495 00000 n 0006708634 00000 n 0006708773 00000 n 0006708912 00000 n 0006709051 00000 n 0006709190 00000 n 0006709329 00000 n 0006709468 00000 n 0006709607 00000 n 0006709746 00000 n 0006709885 00000 n 0006710024 00000 n 0006710163 00000 n 0006710302 00000 n 0006710441 00000 n 0006710580 00000 n 0006710719 00000 n 0006710858 00000 n 0006710997 00000 n 0006711136 00000 n 0006711275 00000 n 0006711414 00000 n 0006711553 00000 n 0006711692 00000 n 0006711831 00000 n 0006711970 00000 n 0006712109 00000 n 0006712248 00000 n 0006712387 00000 n 0006712526 00000 n 0006712665 00000 n 0006712804 00000 n 0006712943 00000 n 0006713082 00000 n 0006713221 00000 n 0006713360 00000 n 0006713499 00000 n 0006713638 00000 n 0006713777 00000 n 0006713916 00000 n 0006714055 00000 n 0006714194 00000 n 0006714333 00000 n 0006714472 00000 n 0006714611 00000 n 0006714750 00000 n 0006714889 00000 n 0006715028 00000 n 0006715167 00000 n 0006715306 00000 n 0006715445 00000 n 0006715584 00000 n 0006715723 00000 n 0006715862 00000 n 0006716001 00000 n 0006716140 00000 n 0006716279 00000 n 0006716418 00000 n 0006716557 00000 n 0006716696 00000 n 0006716835 00000 n 0006716974 00000 n 0006717113 00000 n 0006717252 00000 n 0006717391 00000 n 0006717530 00000 n 0006717669 00000 n 0006717808 00000 n 0006717947 00000 n 0006718086 00000 n 0006718225 00000 n 0006718364 00000 n 0006718503 00000 n 0006718642 00000 n 0006718781 00000 n 0006718920 00000 n 0006719059 00000 n 0006719198 00000 n 0006719337 00000 n 0006719476 00000 n 0006719615 00000 n 0006719754 00000 n 0006719893 00000 n 0006720032 00000 n 0006720171 00000 n 0006720310 00000 n 0006720449 00000 n 0006720588 00000 n 0006720727 00000 n 0006720866 00000 n 0006721005 00000 n 0006721144 00000 n 0006721283 00000 n 0006721422 00000 n 0006721561 00000 n 0006721700 00000 n 0006721839 00000 n 0006721978 00000 n 0006722117 00000 n 0006722256 00000 n 0006722395 00000 n 0006722534 00000 n 0006722673 00000 n 0006722812 00000 n 0006722951 00000 n 0006723090 00000 n 0006723229 00000 n 0006723368 00000 n 0006723507 00000 n 0006723646 00000 n 0006723785 00000 n 0006723924 00000 n 0006724063 00000 n 0006724202 00000 n 0006724341 00000 n 0006724480 00000 n 0006724619 00000 n 0006724758 00000 n 0006724897 00000 n 0006725036 00000 n 0006725175 00000 n 0006725314 00000 n 0006725453 00000 n 0006725592 00000 n 0006725731 00000 n 0006725870 00000 n 0006726009 00000 n 0006726148 00000 n 0006726287 00000 n 0006726426 00000 n 0006726565 00000 n 0006726704 00000 n 0006726843 00000 n 0006726982 00000 n 0006727121 00000 n 0006727260 00000 n 0006727399 00000 n 0006727538 00000 n 0006727677 00000 n 0006727816 00000 n 0006727955 00000 n 0006728094 00000 n 0006728233 00000 n 0006728372 00000 n 0006728511 00000 n 0006728650 00000 n 0006728789 00000 n 0006728928 00000 n 0006729067 00000 n 0006729206 00000 n 0006729345 00000 n 0006729484 00000 n 0006729623 00000 n 0006729762 00000 n 0006729901 00000 n 0006730040 00000 n 0006730179 00000 n 0006730318 00000 n 0006730457 00000 n 0006730596 00000 n 0006730735 00000 n 0006730874 00000 n 0006731013 00000 n 0006731152 00000 n 0006731291 00000 n 0006731430 00000 n 0006731569 00000 n 0006731708 00000 n 0006731847 00000 n 0006731986 00000 n 0006732125 00000 n 0006732264 00000 n 0006732403 00000 n 0006732542 00000 n 0006732681 00000 n 0006732820 00000 n 0006732959 00000 n 0006733098 00000 n 0006733237 00000 n 0006733376 00000 n 0006733515 00000 n 0006733654 00000 n 0006733793 00000 n 0006733932 00000 n 0006734071 00000 n 0006734210 00000 n 0006734349 00000 n 0006734488 00000 n 0006734531 00000 n 0006734574 00000 n 0006734617 00000 n 0006734660 00000 n 0006734703 00000 n 0006734746 00000 n 0006734789 00000 n 0006734832 00000 n 0006734875 00000 n 0006734918 00000 n 0006734961 00000 n 0006735004 00000 n 0006735047 00000 n 0006735090 00000 n 0006735133 00000 n 0006735176 00000 n 0006735219 00000 n 0006735262 00000 n 0006735305 00000 n 0006735348 00000 n 0006735391 00000 n 0006735434 00000 n 0006735477 00000 n 0006735520 00000 n 0006735563 00000 n 0006735606 00000 n 0006735649 00000 n 0006735692 00000 n 0006735735 00000 n 0006735778 00000 n 0006735821 00000 n 0006735864 00000 n 0006735907 00000 n 0006735950 00000 n 0006735993 00000 n 0006736036 00000 n 0006736079 00000 n 0006736122 00000 n 0006736165 00000 n 0006736208 00000 n 0006736251 00000 n 0006736294 00000 n 0006736337 00000 n 0006736380 00000 n 0006736423 00000 n 0006736466 00000 n 0006736509 00000 n 0006736552 00000 n 0006736595 00000 n 0006736638 00000 n 0006736681 00000 n 0006736724 00000 n 0006736767 00000 n 0006736810 00000 n 0006736853 00000 n 0006736896 00000 n 0006736939 00000 n 0006736982 00000 n 0006737025 00000 n 0006737068 00000 n 0006737111 00000 n 0006737154 00000 n 0006737197 00000 n 0006737240 00000 n 0006737283 00000 n 0006737326 00000 n 0006737369 00000 n 0006737412 00000 n 0006737455 00000 n 0006737498 00000 n 0006737541 00000 n 0006737584 00000 n 0006737627 00000 n 0006737670 00000 n 0006737713 00000 n 0006737756 00000 n 0006737799 00000 n 0006737842 00000 n 0006737885 00000 n 0006737928 00000 n 0006737971 00000 n 0006738014 00000 n 0006738057 00000 n 0006738100 00000 n 0006738143 00000 n 0006738186 00000 n 0006738229 00000 n 0006738272 00000 n 0006738315 00000 n 0006738358 00000 n 0006738401 00000 n 0006738444 00000 n 0006738487 00000 n 0006738530 00000 n 0006738573 00000 n 0006738616 00000 n 0006738659 00000 n 0006738702 00000 n 0006738745 00000 n 0006738788 00000 n 0006738831 00000 n 0006738874 00000 n 0006738917 00000 n 0006738960 00000 n 0006739003 00000 n 0006739046 00000 n 0006739089 00000 n 0006739132 00000 n 0006739175 00000 n 0006739218 00000 n 0006739261 00000 n 0006739304 00000 n 0006739347 00000 n 0006739390 00000 n 0006739433 00000 n 0006739476 00000 n 0006739519 00000 n 0006739562 00000 n 0006739605 00000 n 0006739648 00000 n 0006739691 00000 n 0006739734 00000 n 0006739777 00000 n 0006739820 00000 n 0006739863 00000 n 0006739906 00000 n 0006739949 00000 n 0006739992 00000 n 0006740035 00000 n 0006740078 00000 n 0006740121 00000 n 0006740164 00000 n 0006740207 00000 n 0006740250 00000 n 0006740293 00000 n 0006740336 00000 n 0006740379 00000 n 0006740422 00000 n 0006740465 00000 n 0006740508 00000 n 0006740551 00000 n 0006740594 00000 n 0006740637 00000 n 0006740680 00000 n 0006740723 00000 n 0006740766 00000 n 0006740809 00000 n 0006740852 00000 n 0006740895 00000 n 0006740938 00000 n 0006740981 00000 n 0006741024 00000 n 0006741067 00000 n 0006741110 00000 n 0006741153 00000 n 0006741196 00000 n 0006741239 00000 n 0006741282 00000 n 0006741325 00000 n 0006741368 00000 n 0006741411 00000 n 0006741454 00000 n 0006741497 00000 n 0006741540 00000 n 0006741583 00000 n 0006741626 00000 n 0006741669 00000 n 0006741712 00000 n 0006741755 00000 n 0006741798 00000 n 0006741841 00000 n 0006741884 00000 n 0006741927 00000 n 0006741970 00000 n 0006742013 00000 n 0006742056 00000 n 0006742099 00000 n 0006742142 00000 n 0006742185 00000 n 0006742228 00000 n 0006742271 00000 n 0006742314 00000 n 0006742357 00000 n 0006742400 00000 n 0006742443 00000 n 0006742486 00000 n 0006742529 00000 n 0006742572 00000 n 0006742615 00000 n 0006742658 00000 n 0006742701 00000 n 0006742744 00000 n 0006742787 00000 n 0006742830 00000 n 0006742873 00000 n 0006742916 00000 n 0006742959 00000 n 0006743002 00000 n 0006743045 00000 n 0006743088 00000 n 0006743131 00000 n 0006743174 00000 n 0006743217 00000 n 0006743260 00000 n 0006743303 00000 n 0006743346 00000 n 0006743389 00000 n 0006743432 00000 n 0006743475 00000 n 0006743518 00000 n 0006743561 00000 n 0006743604 00000 n 0006743647 00000 n 0006743690 00000 n 0006743733 00000 n 0006743776 00000 n 0006743819 00000 n 0006743862 00000 n 0006743905 00000 n 0006743948 00000 n 0006743991 00000 n 0006744034 00000 n 0006744077 00000 n 0006744120 00000 n 0006744163 00000 n 0006744206 00000 n 0006744249 00000 n 0006744292 00000 n 0006744335 00000 n 0006744378 00000 n 0006744421 00000 n 0006744464 00000 n 0006744507 00000 n 0006744550 00000 n 0006744593 00000 n 0006744636 00000 n 0006744679 00000 n 0006744722 00000 n 0006744765 00000 n 0006744808 00000 n 0006744851 00000 n 0006744894 00000 n 0006744937 00000 n 0006744980 00000 n 0006745023 00000 n 0006745066 00000 n 0006745109 00000 n 0006745152 00000 n 0006745195 00000 n 0006745238 00000 n 0006745281 00000 n 0006745324 00000 n 0006745367 00000 n 0006745410 00000 n 0006745453 00000 n 0006745496 00000 n 0006745539 00000 n 0006745582 00000 n 0006745625 00000 n 0006745668 00000 n 0006745711 00000 n 0006745754 00000 n 0006745797 00000 n 0006745840 00000 n 0006745883 00000 n 0006745926 00000 n 0006745969 00000 n 0006746012 00000 n 0006746055 00000 n 0006746098 00000 n 0006746141 00000 n 0006746184 00000 n 0006746227 00000 n 0006746270 00000 n 0006746313 00000 n 0006746356 00000 n 0006746399 00000 n 0006746442 00000 n 0006746485 00000 n 0006746528 00000 n 0006746571 00000 n 0006746614 00000 n 0006746657 00000 n 0006746700 00000 n 0006746743 00000 n 0006746786 00000 n 0006746829 00000 n 0006746872 00000 n 0006746915 00000 n 0006746958 00000 n 0006747001 00000 n 0006747044 00000 n 0006747087 00000 n 0006747130 00000 n 0006747173 00000 n 0006747216 00000 n 0006747259 00000 n 0006747302 00000 n 0006747345 00000 n 0006747388 00000 n 0006747431 00000 n 0006747474 00000 n 0006747517 00000 n 0006747560 00000 n 0006747603 00000 n 0006747646 00000 n 0006747689 00000 n 0006747732 00000 n 0006747775 00000 n 0006747818 00000 n 0006747861 00000 n 0006747904 00000 n 0006747947 00000 n 0006747990 00000 n 0006748033 00000 n 0006748076 00000 n 0006748119 00000 n 0006748162 00000 n 0006748205 00000 n 0006748248 00000 n 0006748291 00000 n 0006748334 00000 n 0006748377 00000 n 0006748420 00000 n 0006748463 00000 n 0006748506 00000 n 0006748549 00000 n 0006748592 00000 n 0006748635 00000 n 0006748678 00000 n 0006748721 00000 n 0006748764 00000 n 0006748807 00000 n 0006748850 00000 n 0006748893 00000 n 0006748936 00000 n 0006748979 00000 n 0006749022 00000 n 0006749065 00000 n 0006749108 00000 n 0006749151 00000 n 0006749194 00000 n 0006749237 00000 n 0006749280 00000 n 0006749323 00000 n 0006749366 00000 n 0006749409 00000 n 0006749452 00000 n 0006749495 00000 n 0006749538 00000 n 0006749581 00000 n 0006749624 00000 n 0006749667 00000 n 0006749710 00000 n 0006749753 00000 n 0006749796 00000 n 0006749839 00000 n 0006749882 00000 n 0006749925 00000 n 0006749968 00000 n 0006750011 00000 n 0006750054 00000 n 0006750097 00000 n 0006750140 00000 n 0006750183 00000 n 0006750226 00000 n 0006750269 00000 n 0006750312 00000 n 0006750355 00000 n 0006750686 00000 n 0006751108 00000 n 0006751151 00000 n 0006751194 00000 n 0006751237 00000 n 0006751281 00000 n 0006751325 00000 n 0006751393 00000 n 0006751656 00000 n 0006751755 00000 n 0006756486 00000 n 0006756817 00000 n 0006757239 00000 n 0006757283 00000 n 0006757326 00000 n 0006757370 00000 n 0006757413 00000 n 0006757456 00000 n 0006757524 00000 n 0006757773 00000 n 0006757872 00000 n 0006762068 00000 n 0006762399 00000 n 0006762821 00000 n 0006762864 00000 n 0006762908 00000 n 0006762952 00000 n 0006762995 00000 n 0006763063 00000 n 0006763283 00000 n 0006763382 00000 n 0006767092 00000 n 0006767423 00000 n 0006767845 00000 n 0006767888 00000 n 0006767931 00000 n 0006767975 00000 n 0006768019 00000 n 0006768087 00000 n 0006768321 00000 n 0006768420 00000 n 0006771529 00000 n 0006771860 00000 n 0006772282 00000 n 0006772517 00000 n 0006772757 00000 n 0006774737 00000 n 0006774780 00000 n 0006774848 00000 n 0006775068 00000 n 0006775167 00000 n 0006777190 00000 n 0006777521 00000 n 0006777943 00000 n 0006777987 00000 n 0006778030 00000 n 0006778098 00000 n 0006778318 00000 n 0006778417 00000 n 0006782230 00000 n 0006782561 00000 n 0006782983 00000 n 0006783027 00000 n 0006783071 00000 n 0006783114 00000 n 0006783158 00000 n 0006783201 00000 n 0006783244 00000 n 0006783312 00000 n 0006783532 00000 n 0006783631 00000 n 0006788376 00000 n 0006788515 00000 n 0006788654 00000 n 0006788793 00000 n 0006788932 00000 n 0006789071 00000 n 0006789210 00000 n 0006789349 00000 n 0006789488 00000 n 0006789627 00000 n 0006789766 00000 n 0006789905 00000 n 0006790044 00000 n 0006790183 00000 n 0006790322 00000 n 0006790461 00000 n 0006790600 00000 n 0006790739 00000 n 0006790878 00000 n 0006791017 00000 n 0006791156 00000 n 0006791295 00000 n 0006791434 00000 n 0006791573 00000 n 0006791712 00000 n 0006791851 00000 n 0006791990 00000 n 0006792129 00000 n 0006792268 00000 n 0006792407 00000 n 0006792546 00000 n 0006792685 00000 n 0006792824 00000 n 0006792963 00000 n 0006793102 00000 n 0006793241 00000 n 0006793380 00000 n 0006793519 00000 n 0006793658 00000 n 0006793797 00000 n 0006793936 00000 n 0006794075 00000 n 0006794214 00000 n 0006794353 00000 n 0006794492 00000 n 0006794631 00000 n 0006794770 00000 n 0006794909 00000 n 0006795048 00000 n 0006795187 00000 n 0006795326 00000 n 0006795465 00000 n 0006795604 00000 n 0006795743 00000 n 0006795882 00000 n 0006796021 00000 n 0006796160 00000 n 0006796299 00000 n 0006796438 00000 n 0006796577 00000 n 0006796716 00000 n 0006796855 00000 n 0006796994 00000 n 0006797133 00000 n 0006797272 00000 n 0006797411 00000 n 0006797550 00000 n 0006797689 00000 n 0006797828 00000 n 0006797967 00000 n 0006798106 00000 n 0006798245 00000 n 0006798384 00000 n 0006798523 00000 n 0006798662 00000 n 0006798801 00000 n 0006798940 00000 n 0006799079 00000 n 0006799218 00000 n 0006799357 00000 n 0006799496 00000 n 0006799635 00000 n 0006799774 00000 n 0006799913 00000 n 0006800052 00000 n 0006800191 00000 n 0006800330 00000 n 0006800469 00000 n 0006800608 00000 n 0006800747 00000 n 0006800886 00000 n 0006801025 00000 n 0006801164 00000 n 0006801303 00000 n 0006801442 00000 n 0006801581 00000 n 0006801720 00000 n 0006801859 00000 n 0006801998 00000 n 0006802137 00000 n 0006802276 00000 n 0006802415 00000 n 0006802554 00000 n 0006802693 00000 n 0006802832 00000 n 0006802971 00000 n 0006803110 00000 n 0006803249 00000 n 0006803388 00000 n 0006803527 00000 n 0006803666 00000 n 0006803805 00000 n 0006803944 00000 n 0006804083 00000 n 0006804222 00000 n 0006804361 00000 n 0006804500 00000 n 0006804639 00000 n 0006804778 00000 n 0006804917 00000 n 0006805056 00000 n 0006805195 00000 n 0006805334 00000 n 0006805473 00000 n 0006805612 00000 n 0006805751 00000 n 0006805890 00000 n 0006806029 00000 n 0006806168 00000 n 0006806307 00000 n 0006806446 00000 n 0006806585 00000 n 0006806724 00000 n 0006806863 00000 n 0006807002 00000 n 0006807141 00000 n 0006807280 00000 n 0006807419 00000 n 0006807558 00000 n 0006807697 00000 n 0006807836 00000 n 0006807975 00000 n 0006808114 00000 n 0006808253 00000 n 0006808392 00000 n 0006808531 00000 n 0006808670 00000 n 0006808809 00000 n 0006808948 00000 n 0006809087 00000 n 0006809226 00000 n 0006809365 00000 n 0006809504 00000 n 0006809643 00000 n 0006809782 00000 n 0006809921 00000 n 0006810060 00000 n 0006810199 00000 n 0006810338 00000 n 0006810477 00000 n 0006810616 00000 n 0006810755 00000 n 0006810894 00000 n 0006811033 00000 n 0006811172 00000 n 0006811311 00000 n 0006811450 00000 n 0006811589 00000 n 0006811728 00000 n 0006811867 00000 n 0006812006 00000 n 0006812145 00000 n 0006812284 00000 n 0006812423 00000 n 0006812562 00000 n 0006812701 00000 n 0006812840 00000 n 0006812979 00000 n 0006813118 00000 n 0006813257 00000 n 0006813396 00000 n 0006813535 00000 n 0006813674 00000 n 0006813813 00000 n 0006813952 00000 n 0006814091 00000 n 0006814230 00000 n 0006814369 00000 n 0006814508 00000 n 0006814647 00000 n 0006814786 00000 n 0006814925 00000 n 0006815064 00000 n 0006815203 00000 n 0006815342 00000 n 0006815481 00000 n 0006815620 00000 n 0006815759 00000 n 0006815898 00000 n 0006816037 00000 n 0006816176 00000 n 0006816315 00000 n 0006816454 00000 n 0006816593 00000 n 0006816732 00000 n 0006816871 00000 n 0006817010 00000 n 0006817149 00000 n 0006817288 00000 n 0006817427 00000 n 0006817566 00000 n 0006817705 00000 n 0006817844 00000 n 0006817983 00000 n 0006818122 00000 n 0006818261 00000 n 0006818400 00000 n 0006818539 00000 n 0006818678 00000 n 0006818817 00000 n 0006818956 00000 n 0006819095 00000 n 0006819234 00000 n 0006819373 00000 n 0006819512 00000 n 0006819651 00000 n 0006819790 00000 n 0006819929 00000 n 0006820068 00000 n 0006820207 00000 n 0006820346 00000 n 0006820485 00000 n 0006820624 00000 n 0006820763 00000 n 0006820902 00000 n 0006821041 00000 n 0006821180 00000 n 0006821319 00000 n 0006821458 00000 n 0006821597 00000 n 0006821736 00000 n 0006821875 00000 n 0006822014 00000 n 0006822153 00000 n 0006822292 00000 n 0006822431 00000 n 0006822570 00000 n 0006822709 00000 n 0006822848 00000 n 0006822987 00000 n 0006823126 00000 n 0006823265 00000 n 0006823404 00000 n 0006823543 00000 n 0006823682 00000 n 0006823821 00000 n 0006823960 00000 n 0006824099 00000 n 0006824238 00000 n 0006824377 00000 n 0006824516 00000 n 0006824655 00000 n 0006824794 00000 n 0006824933 00000 n 0006825072 00000 n 0006825211 00000 n 0006825350 00000 n 0006825489 00000 n 0006825628 00000 n 0006825767 00000 n 0006825906 00000 n 0006826045 00000 n 0006826184 00000 n 0006826323 00000 n 0006826462 00000 n 0006826601 00000 n 0006826740 00000 n 0006826879 00000 n 0006827018 00000 n 0006827157 00000 n 0006827296 00000 n 0006827435 00000 n 0006827574 00000 n 0006827713 00000 n 0006827852 00000 n 0006827991 00000 n 0006828130 00000 n 0006828269 00000 n 0006828408 00000 n 0006828547 00000 n 0006828686 00000 n 0006828825 00000 n 0006828964 00000 n 0006829103 00000 n 0006829242 00000 n 0006829381 00000 n 0006829520 00000 n 0006829659 00000 n 0006829798 00000 n 0006829937 00000 n 0006830076 00000 n 0006830215 00000 n 0006830354 00000 n 0006830493 00000 n 0006830632 00000 n 0006830771 00000 n 0006830910 00000 n 0006831049 00000 n 0006831188 00000 n 0006831327 00000 n 0006831466 00000 n 0006831605 00000 n 0006831744 00000 n 0006831883 00000 n 0006832022 00000 n 0006832161 00000 n 0006832300 00000 n 0006832439 00000 n 0006832578 00000 n 0006832717 00000 n 0006832856 00000 n 0006832995 00000 n 0006833134 00000 n 0006833273 00000 n 0006833412 00000 n 0006833551 00000 n 0006833690 00000 n 0006833829 00000 n 0006833968 00000 n 0006834107 00000 n 0006834246 00000 n 0006834385 00000 n 0006834524 00000 n 0006834663 00000 n 0006834802 00000 n 0006834941 00000 n 0006835080 00000 n 0006835219 00000 n 0006835358 00000 n 0006835497 00000 n 0006835636 00000 n 0006835775 00000 n 0006835914 00000 n 0006836053 00000 n 0006836192 00000 n 0006836331 00000 n 0006836470 00000 n 0006836609 00000 n 0006836748 00000 n 0006836887 00000 n 0006837026 00000 n 0006837165 00000 n 0006837304 00000 n 0006837443 00000 n 0006837582 00000 n 0006837721 00000 n 0006837860 00000 n 0006837999 00000 n 0006838138 00000 n 0006838277 00000 n 0006838416 00000 n 0006838555 00000 n 0006838694 00000 n 0006838833 00000 n 0006838972 00000 n 0006839111 00000 n 0006839250 00000 n 0006839389 00000 n 0006839528 00000 n 0006839571 00000 n 0006839614 00000 n 0006839657 00000 n 0006839700 00000 n 0006839743 00000 n 0006839786 00000 n 0006839829 00000 n 0006839872 00000 n 0006839915 00000 n 0006839958 00000 n 0006840001 00000 n 0006840044 00000 n 0006840087 00000 n 0006840130 00000 n 0006840173 00000 n 0006840216 00000 n 0006840259 00000 n 0006840302 00000 n 0006840345 00000 n 0006840388 00000 n 0006840431 00000 n 0006840474 00000 n 0006840517 00000 n 0006840560 00000 n 0006840603 00000 n 0006840646 00000 n 0006840689 00000 n 0006840732 00000 n 0006840775 00000 n 0006840818 00000 n 0006840861 00000 n 0006840904 00000 n 0006840947 00000 n 0006840990 00000 n 0006841033 00000 n 0006841076 00000 n 0006841119 00000 n 0006841162 00000 n 0006841205 00000 n 0006841248 00000 n 0006841291 00000 n 0006841334 00000 n 0006841377 00000 n 0006841420 00000 n 0006841463 00000 n 0006841506 00000 n 0006841549 00000 n 0006841592 00000 n 0006841635 00000 n 0006841678 00000 n 0006841721 00000 n 0006841764 00000 n 0006841807 00000 n 0006841850 00000 n 0006841893 00000 n 0006841936 00000 n 0006841979 00000 n 0006842022 00000 n 0006842065 00000 n 0006842108 00000 n 0006842151 00000 n 0006842194 00000 n 0006842237 00000 n 0006842280 00000 n 0006842323 00000 n 0006842366 00000 n 0006842409 00000 n 0006842452 00000 n 0006842495 00000 n 0006842538 00000 n 0006842581 00000 n 0006842624 00000 n 0006842667 00000 n 0006842710 00000 n 0006842753 00000 n 0006842796 00000 n 0006842839 00000 n 0006842882 00000 n 0006842925 00000 n 0006842968 00000 n 0006843011 00000 n 0006843054 00000 n 0006843097 00000 n 0006843140 00000 n 0006843183 00000 n 0006843226 00000 n 0006843269 00000 n 0006843312 00000 n 0006843355 00000 n 0006843398 00000 n 0006843441 00000 n 0006843484 00000 n 0006843527 00000 n 0006843570 00000 n 0006843613 00000 n 0006843656 00000 n 0006843699 00000 n 0006843742 00000 n 0006843785 00000 n 0006843828 00000 n 0006843871 00000 n 0006843914 00000 n 0006843957 00000 n 0006844000 00000 n 0006844043 00000 n 0006844086 00000 n 0006844129 00000 n 0006844172 00000 n 0006844215 00000 n 0006844258 00000 n 0006844301 00000 n 0006844344 00000 n 0006844387 00000 n 0006844430 00000 n 0006844473 00000 n 0006844516 00000 n 0006844559 00000 n 0006844602 00000 n 0006844645 00000 n 0006844688 00000 n 0006844731 00000 n 0006844774 00000 n 0006844817 00000 n 0006844860 00000 n 0006844903 00000 n 0006844946 00000 n 0006844989 00000 n 0006845032 00000 n 0006845075 00000 n 0006845118 00000 n 0006845161 00000 n 0006845204 00000 n 0006845247 00000 n 0006845290 00000 n 0006845333 00000 n 0006845376 00000 n 0006845419 00000 n 0006845462 00000 n 0006845505 00000 n 0006845548 00000 n 0006845591 00000 n 0006845634 00000 n 0006845677 00000 n 0006845720 00000 n 0006845763 00000 n 0006845806 00000 n 0006845849 00000 n 0006845892 00000 n 0006845935 00000 n 0006845978 00000 n 0006846021 00000 n 0006846064 00000 n 0006846107 00000 n 0006846150 00000 n 0006846193 00000 n 0006846236 00000 n 0006846279 00000 n 0006846322 00000 n 0006846365 00000 n 0006846408 00000 n 0006846451 00000 n 0006846494 00000 n 0006846537 00000 n 0006846580 00000 n 0006846623 00000 n 0006846666 00000 n 0006846709 00000 n 0006846752 00000 n 0006846795 00000 n 0006846838 00000 n 0006846881 00000 n 0006846924 00000 n 0006846967 00000 n 0006847010 00000 n 0006847053 00000 n 0006847096 00000 n 0006847139 00000 n 0006847182 00000 n 0006847225 00000 n 0006847268 00000 n 0006847311 00000 n 0006847354 00000 n 0006847397 00000 n 0006847440 00000 n 0006847483 00000 n 0006847526 00000 n 0006847569 00000 n 0006847612 00000 n 0006847655 00000 n 0006847698 00000 n 0006847741 00000 n 0006847784 00000 n 0006847827 00000 n 0006847870 00000 n 0006847913 00000 n 0006847956 00000 n 0006847999 00000 n 0006848042 00000 n 0006848085 00000 n 0006848128 00000 n 0006848171 00000 n 0006848214 00000 n 0006848257 00000 n 0006848300 00000 n 0006848343 00000 n 0006848386 00000 n 0006848429 00000 n 0006848472 00000 n 0006848515 00000 n 0006848558 00000 n 0006848601 00000 n 0006848644 00000 n 0006848687 00000 n 0006848730 00000 n 0006848773 00000 n 0006848816 00000 n 0006848859 00000 n 0006848902 00000 n 0006848945 00000 n 0006848988 00000 n 0006849031 00000 n 0006849074 00000 n 0006849117 00000 n 0006849160 00000 n 0006849203 00000 n 0006849246 00000 n 0006849289 00000 n 0006849332 00000 n 0006849375 00000 n 0006849418 00000 n 0006849461 00000 n 0006849504 00000 n 0006849547 00000 n 0006849590 00000 n 0006849633 00000 n 0006849676 00000 n 0006849719 00000 n 0006849762 00000 n 0006849805 00000 n 0006849848 00000 n 0006849891 00000 n 0006849934 00000 n 0006849977 00000 n 0006850020 00000 n 0006850063 00000 n 0006850106 00000 n 0006850149 00000 n 0006850192 00000 n 0006850235 00000 n 0006850278 00000 n 0006850321 00000 n 0006850364 00000 n 0006850407 00000 n 0006850450 00000 n 0006850493 00000 n 0006850536 00000 n 0006850579 00000 n 0006850622 00000 n 0006850665 00000 n 0006850708 00000 n 0006850751 00000 n 0006850794 00000 n 0006850837 00000 n 0006850880 00000 n 0006850923 00000 n 0006850966 00000 n 0006851009 00000 n 0006851052 00000 n 0006851095 00000 n 0006851138 00000 n 0006851181 00000 n 0006851224 00000 n 0006851267 00000 n 0006851310 00000 n 0006851353 00000 n 0006851396 00000 n 0006851439 00000 n 0006851482 00000 n 0006851525 00000 n 0006851568 00000 n 0006851611 00000 n 0006851654 00000 n 0006851697 00000 n 0006851740 00000 n 0006851783 00000 n 0006851826 00000 n 0006851869 00000 n 0006851912 00000 n 0006851955 00000 n 0006851998 00000 n 0006852041 00000 n 0006852084 00000 n 0006852127 00000 n 0006852170 00000 n 0006852213 00000 n 0006852256 00000 n 0006852299 00000 n 0006852342 00000 n 0006852385 00000 n 0006852428 00000 n 0006852471 00000 n 0006852514 00000 n 0006852557 00000 n 0006852600 00000 n 0006852643 00000 n 0006852686 00000 n 0006852729 00000 n 0006852772 00000 n 0006852815 00000 n 0006852858 00000 n 0006852901 00000 n 0006852944 00000 n 0006852987 00000 n 0006853030 00000 n 0006853073 00000 n 0006853116 00000 n 0006853159 00000 n 0006853202 00000 n 0006853245 00000 n 0006853288 00000 n 0006853331 00000 n 0006853374 00000 n 0006853417 00000 n 0006853460 00000 n 0006853503 00000 n 0006853546 00000 n 0006853589 00000 n 0006853632 00000 n 0006853675 00000 n 0006853718 00000 n 0006853761 00000 n 0006853804 00000 n 0006853847 00000 n 0006853890 00000 n 0006853933 00000 n 0006853976 00000 n 0006854019 00000 n 0006854062 00000 n 0006854105 00000 n 0006854148 00000 n 0006854191 00000 n 0006854234 00000 n 0006854277 00000 n 0006854320 00000 n 0006854363 00000 n 0006854406 00000 n 0006854449 00000 n 0006854492 00000 n 0006854535 00000 n 0006854578 00000 n 0006854621 00000 n 0006854664 00000 n 0006854707 00000 n 0006854750 00000 n 0006854793 00000 n 0006854836 00000 n 0006854879 00000 n 0006854922 00000 n 0006854965 00000 n 0006855008 00000 n 0006855051 00000 n 0006855094 00000 n 0006855137 00000 n 0006855180 00000 n 0006855223 00000 n 0006855554 00000 n 0006855976 00000 n 0006856019 00000 n 0006856062 00000 n 0006856106 00000 n 0006856150 00000 n 0006856194 00000 n 0006856238 00000 n 0006856306 00000 n 0006856569 00000 n 0006856668 00000 n 0006858683 00000 n 0006859014 00000 n 0006859436 00000 n 0006859478 00000 n 0006859522 00000 n 0006859566 00000 n 0006859609 00000 n 0006859653 00000 n 0006859721 00000 n 0006859984 00000 n 0006860083 00000 n 0006864569 00000 n 0006864735 00000 n 0006864777 00000 n 0006865108 00000 n 0006865530 00000 n 0006865573 00000 n 0006865616 00000 n 0006865660 00000 n 0006865704 00000 n 0006865748 00000 n 0006865791 00000 n 0006865835 00000 n 0006865879 00000 n 0006865921 00000 n 0006865965 00000 n 0006866008 00000 n 0006866051 00000 n 0006866094 00000 n 0006866137 00000 n 0006866181 00000 n 0006866224 00000 n 0006866268 00000 n 0006866311 00000 n 0006866355 00000 n 0006866423 00000 n 0006866672 00000 n 0006866771 00000 n 0006870373 00000 n 0006870704 00000 n 0006871126 00000 n 0006871169 00000 n 0006871237 00000 n 0006871471 00000 n 0006871570 00000 n 0006875234 00000 n 0006875565 00000 n 0006875987 00000 n 0006876031 00000 n 0006876074 00000 n 0006876142 00000 n 0006876377 00000 n 0006876476 00000 n 0006879932 00000 n 0006880263 00000 n 0006880685 00000 n 0006880753 00000 n 0006881003 00000 n 0006881102 00000 n 0006885157 00000 n 0006885344 00000 n 0006885675 00000 n 0006886097 00000 n 0006886327 00000 n 0006886353 00000 n 0006886414 00000 n 0006886693 00000 n 0006896727 00000 n 0006897058 00000 n 0006897480 00000 n 0006897548 00000 n 0006897796 00000 n 0006897895 00000 n 0006901047 00000 n 0006901378 00000 n 0006901800 00000 n 0006901842 00000 n 0006901885 00000 n 0006901953 00000 n 0006902173 00000 n 0006902272 00000 n 0006906370 00000 n 0006906509 00000 n 0006906648 00000 n 0006906787 00000 n 0006906926 00000 n 0006907065 00000 n 0006907204 00000 n 0006907343 00000 n 0006907482 00000 n 0006907621 00000 n 0006907760 00000 n 0006907899 00000 n 0006908038 00000 n 0006908177 00000 n 0006908316 00000 n 0006908455 00000 n 0006908594 00000 n 0006908733 00000 n 0006908872 00000 n 0006909011 00000 n 0006909150 00000 n 0006909289 00000 n 0006909428 00000 n 0006909567 00000 n 0006909706 00000 n 0006909845 00000 n 0006909984 00000 n 0006910123 00000 n 0006910262 00000 n 0006910401 00000 n 0006910540 00000 n 0006910679 00000 n 0006910818 00000 n 0006910957 00000 n 0006911096 00000 n 0006911235 00000 n 0006911374 00000 n 0006911513 00000 n 0006911652 00000 n 0006911791 00000 n 0006911930 00000 n 0006912069 00000 n 0006912208 00000 n 0006912347 00000 n 0006912486 00000 n 0006912625 00000 n 0006912764 00000 n 0006912903 00000 n 0006913042 00000 n 0006913181 00000 n 0006913320 00000 n 0006913459 00000 n 0006913598 00000 n 0006913737 00000 n 0006913876 00000 n 0006914015 00000 n 0006914154 00000 n 0006914293 00000 n 0006914432 00000 n 0006914571 00000 n 0006914710 00000 n 0006914849 00000 n 0006914988 00000 n 0006915127 00000 n 0006915266 00000 n 0006915405 00000 n 0006915544 00000 n 0006915683 00000 n 0006915822 00000 n 0006915961 00000 n 0006916100 00000 n 0006916239 00000 n 0006916378 00000 n 0006916517 00000 n 0006916656 00000 n 0006916795 00000 n 0006916934 00000 n 0006917073 00000 n 0006917212 00000 n 0006917351 00000 n 0006917490 00000 n 0006917629 00000 n 0006917768 00000 n 0006917907 00000 n 0006918046 00000 n 0006918185 00000 n 0006918324 00000 n 0006918463 00000 n 0006918602 00000 n 0006918741 00000 n 0006918880 00000 n 0006919019 00000 n 0006919158 00000 n 0006919297 00000 n 0006919436 00000 n 0006919575 00000 n 0006919714 00000 n 0006919853 00000 n 0006919992 00000 n 0006920131 00000 n 0006920270 00000 n 0006920409 00000 n 0006920548 00000 n 0006920687 00000 n 0006920826 00000 n 0006920965 00000 n 0006921104 00000 n 0006921243 00000 n 0006921382 00000 n 0006921521 00000 n 0006921660 00000 n 0006921799 00000 n 0006921938 00000 n 0006922077 00000 n 0006922216 00000 n 0006922355 00000 n 0006922494 00000 n 0006922633 00000 n 0006922772 00000 n 0006922911 00000 n 0006923050 00000 n 0006923189 00000 n 0006923328 00000 n 0006923467 00000 n 0006923606 00000 n 0006923745 00000 n 0006923884 00000 n 0006924023 00000 n 0006924162 00000 n 0006924301 00000 n 0006924440 00000 n 0006924579 00000 n 0006924718 00000 n 0006924857 00000 n 0006924996 00000 n 0006925135 00000 n 0006925274 00000 n 0006925413 00000 n 0006925552 00000 n 0006925691 00000 n 0006925830 00000 n 0006925969 00000 n 0006926108 00000 n 0006926247 00000 n 0006926386 00000 n 0006926525 00000 n 0006926664 00000 n 0006926803 00000 n 0006926942 00000 n 0006927081 00000 n 0006927220 00000 n 0006927359 00000 n 0006927498 00000 n 0006927637 00000 n 0006927776 00000 n 0006927915 00000 n 0006928054 00000 n 0006928193 00000 n 0006928332 00000 n 0006928471 00000 n 0006928610 00000 n 0006928749 00000 n 0006928888 00000 n 0006929027 00000 n 0006929166 00000 n 0006929305 00000 n 0006929444 00000 n 0006929583 00000 n 0006929722 00000 n 0006929861 00000 n 0006930000 00000 n 0006930139 00000 n 0006930278 00000 n 0006930417 00000 n 0006930556 00000 n 0006930695 00000 n 0006930834 00000 n 0006930973 00000 n 0006931112 00000 n 0006931251 00000 n 0006931390 00000 n 0006931529 00000 n 0006931668 00000 n 0006931807 00000 n 0006931946 00000 n 0006932085 00000 n 0006932224 00000 n 0006932363 00000 n 0006932502 00000 n 0006932641 00000 n 0006932780 00000 n 0006932919 00000 n 0006933058 00000 n 0006933197 00000 n 0006933336 00000 n 0006933475 00000 n 0006933614 00000 n 0006933753 00000 n 0006933892 00000 n 0006934031 00000 n 0006934170 00000 n 0006934309 00000 n 0006934448 00000 n 0006934587 00000 n 0006934726 00000 n 0006934865 00000 n 0006935004 00000 n 0006935143 00000 n 0006935282 00000 n 0006935421 00000 n 0006935560 00000 n 0006935699 00000 n 0006935838 00000 n 0006935977 00000 n 0006936116 00000 n 0006936255 00000 n 0006936394 00000 n 0006936533 00000 n 0006936672 00000 n 0006936811 00000 n 0006936950 00000 n 0006937089 00000 n 0006937228 00000 n 0006937367 00000 n 0006937506 00000 n 0006937645 00000 n 0006937784 00000 n 0006937923 00000 n 0006938062 00000 n 0006938201 00000 n 0006938340 00000 n 0006938479 00000 n 0006938618 00000 n 0006938757 00000 n 0006938896 00000 n 0006939035 00000 n 0006939174 00000 n 0006939313 00000 n 0006939452 00000 n 0006939591 00000 n 0006939730 00000 n 0006939869 00000 n 0006940008 00000 n 0006940147 00000 n 0006940286 00000 n 0006940425 00000 n 0006940564 00000 n 0006940703 00000 n 0006940842 00000 n 0006940981 00000 n 0006941120 00000 n 0006941259 00000 n 0006941398 00000 n 0006941537 00000 n 0006941676 00000 n 0006941815 00000 n 0006941954 00000 n 0006942093 00000 n 0006942232 00000 n 0006942371 00000 n 0006942510 00000 n 0006942649 00000 n 0006942788 00000 n 0006942927 00000 n 0006943066 00000 n 0006943205 00000 n 0006943344 00000 n 0006943483 00000 n 0006943622 00000 n 0006943761 00000 n 0006943900 00000 n 0006944039 00000 n 0006944178 00000 n 0006944317 00000 n 0006944456 00000 n 0006944595 00000 n 0006944734 00000 n 0006944873 00000 n 0006945012 00000 n 0006945151 00000 n 0006945290 00000 n 0006945429 00000 n 0006945568 00000 n 0006945707 00000 n 0006945846 00000 n 0006945985 00000 n 0006946124 00000 n 0006946263 00000 n 0006946402 00000 n 0006946541 00000 n 0006946680 00000 n 0006946819 00000 n 0006946958 00000 n 0006947097 00000 n 0006947236 00000 n 0006947375 00000 n 0006947514 00000 n 0006947653 00000 n 0006947792 00000 n 0006947931 00000 n 0006948070 00000 n 0006948209 00000 n 0006948348 00000 n 0006948487 00000 n 0006948626 00000 n 0006948765 00000 n 0006948904 00000 n 0006949043 00000 n 0006949182 00000 n 0006949321 00000 n 0006949460 00000 n 0006949599 00000 n 0006949738 00000 n 0006949877 00000 n 0006950016 00000 n 0006950155 00000 n 0006950294 00000 n 0006950433 00000 n 0006950572 00000 n 0006950711 00000 n 0006950850 00000 n 0006950989 00000 n 0006951128 00000 n 0006951267 00000 n 0006951406 00000 n 0006951545 00000 n 0006951684 00000 n 0006951823 00000 n 0006951962 00000 n 0006952101 00000 n 0006952240 00000 n 0006952379 00000 n 0006952518 00000 n 0006952657 00000 n 0006952796 00000 n 0006952935 00000 n 0006953074 00000 n 0006953213 00000 n 0006953352 00000 n 0006953491 00000 n 0006953630 00000 n 0006953769 00000 n 0006953908 00000 n 0006954047 00000 n 0006954186 00000 n 0006954325 00000 n 0006954464 00000 n 0006954603 00000 n 0006954742 00000 n 0006954881 00000 n 0006955020 00000 n 0006955159 00000 n 0006955298 00000 n 0006955437 00000 n 0006955576 00000 n 0006955715 00000 n 0006955854 00000 n 0006955993 00000 n 0006956132 00000 n 0006956271 00000 n 0006956410 00000 n 0006956549 00000 n 0006956688 00000 n 0006956827 00000 n 0006956966 00000 n 0006957105 00000 n 0006957244 00000 n 0006957383 00000 n 0006957522 00000 n 0006957661 00000 n 0006957800 00000 n 0006957939 00000 n 0006958078 00000 n 0006958217 00000 n 0006958356 00000 n 0006958495 00000 n 0006958538 00000 n 0006958581 00000 n 0006958624 00000 n 0006958667 00000 n 0006958710 00000 n 0006958753 00000 n 0006958796 00000 n 0006958839 00000 n 0006958882 00000 n 0006958925 00000 n 0006958968 00000 n 0006959011 00000 n 0006959054 00000 n 0006959097 00000 n 0006959140 00000 n 0006959183 00000 n 0006959226 00000 n 0006959269 00000 n 0006959312 00000 n 0006959355 00000 n 0006959398 00000 n 0006959441 00000 n 0006959484 00000 n 0006959527 00000 n 0006959570 00000 n 0006959613 00000 n 0006959656 00000 n 0006959699 00000 n 0006959742 00000 n 0006959785 00000 n 0006959828 00000 n 0006959871 00000 n 0006959914 00000 n 0006959957 00000 n 0006960000 00000 n 0006960043 00000 n 0006960086 00000 n 0006960129 00000 n 0006960172 00000 n 0006960215 00000 n 0006960258 00000 n 0006960301 00000 n 0006960344 00000 n 0006960387 00000 n 0006960430 00000 n 0006960473 00000 n 0006960516 00000 n 0006960559 00000 n 0006960602 00000 n 0006960645 00000 n 0006960688 00000 n 0006960731 00000 n 0006960774 00000 n 0006960817 00000 n 0006960860 00000 n 0006960903 00000 n 0006960946 00000 n 0006960989 00000 n 0006961032 00000 n 0006961075 00000 n 0006961118 00000 n 0006961161 00000 n 0006961204 00000 n 0006961247 00000 n 0006961290 00000 n 0006961333 00000 n 0006961376 00000 n 0006961419 00000 n 0006961462 00000 n 0006961505 00000 n 0006961548 00000 n 0006961591 00000 n 0006961634 00000 n 0006961677 00000 n 0006961720 00000 n 0006961763 00000 n 0006961806 00000 n 0006961849 00000 n 0006961892 00000 n 0006961935 00000 n 0006961978 00000 n 0006962021 00000 n 0006962064 00000 n 0006962107 00000 n 0006962150 00000 n 0006962193 00000 n 0006962236 00000 n 0006962279 00000 n 0006962322 00000 n 0006962365 00000 n 0006962408 00000 n 0006962451 00000 n 0006962494 00000 n 0006962537 00000 n 0006962580 00000 n 0006962623 00000 n 0006962666 00000 n 0006962709 00000 n 0006962752 00000 n 0006962795 00000 n 0006962838 00000 n 0006962881 00000 n 0006962924 00000 n 0006962967 00000 n 0006963010 00000 n 0006963053 00000 n 0006963096 00000 n 0006963139 00000 n 0006963182 00000 n 0006963225 00000 n 0006963268 00000 n 0006963311 00000 n 0006963354 00000 n 0006963397 00000 n 0006963440 00000 n 0006963483 00000 n 0006963526 00000 n 0006963569 00000 n 0006963612 00000 n 0006963655 00000 n 0006963698 00000 n 0006963741 00000 n 0006963784 00000 n 0006963827 00000 n 0006963870 00000 n 0006963913 00000 n 0006963956 00000 n 0006963999 00000 n 0006964042 00000 n 0006964085 00000 n 0006964128 00000 n 0006964171 00000 n 0006964214 00000 n 0006964257 00000 n 0006964300 00000 n 0006964343 00000 n 0006964386 00000 n 0006964429 00000 n 0006964472 00000 n 0006964515 00000 n 0006964558 00000 n 0006964601 00000 n 0006964644 00000 n 0006964687 00000 n 0006964730 00000 n 0006964773 00000 n 0006964816 00000 n 0006964859 00000 n 0006964902 00000 n 0006964945 00000 n 0006964988 00000 n 0006965031 00000 n 0006965074 00000 n 0006965117 00000 n 0006965160 00000 n 0006965203 00000 n 0006965246 00000 n 0006965289 00000 n 0006965332 00000 n 0006965375 00000 n 0006965418 00000 n 0006965461 00000 n 0006965504 00000 n 0006965547 00000 n 0006965590 00000 n 0006965633 00000 n 0006965676 00000 n 0006965719 00000 n 0006965762 00000 n 0006965805 00000 n 0006965848 00000 n 0006965891 00000 n 0006965934 00000 n 0006965977 00000 n 0006966020 00000 n 0006966063 00000 n 0006966106 00000 n 0006966149 00000 n 0006966192 00000 n 0006966235 00000 n 0006966278 00000 n 0006966321 00000 n 0006966364 00000 n 0006966407 00000 n 0006966450 00000 n 0006966493 00000 n 0006966536 00000 n 0006966579 00000 n 0006966622 00000 n 0006966665 00000 n 0006966708 00000 n 0006966751 00000 n 0006966794 00000 n 0006966837 00000 n 0006966880 00000 n 0006966923 00000 n 0006966966 00000 n 0006967009 00000 n 0006967052 00000 n 0006967095 00000 n 0006967138 00000 n 0006967181 00000 n 0006967224 00000 n 0006967267 00000 n 0006967310 00000 n 0006967353 00000 n 0006967396 00000 n 0006967439 00000 n 0006967482 00000 n 0006967525 00000 n 0006967568 00000 n 0006967611 00000 n 0006967654 00000 n 0006967697 00000 n 0006967740 00000 n 0006967783 00000 n 0006967826 00000 n 0006967869 00000 n 0006967912 00000 n 0006967955 00000 n 0006967998 00000 n 0006968041 00000 n 0006968084 00000 n 0006968127 00000 n 0006968170 00000 n 0006968213 00000 n 0006968256 00000 n 0006968299 00000 n 0006968342 00000 n 0006968385 00000 n 0006968428 00000 n 0006968471 00000 n 0006968514 00000 n 0006968557 00000 n 0006968600 00000 n 0006968643 00000 n 0006968686 00000 n 0006968729 00000 n 0006968772 00000 n 0006968815 00000 n 0006968858 00000 n 0006968901 00000 n 0006968944 00000 n 0006968987 00000 n 0006969030 00000 n 0006969073 00000 n 0006969116 00000 n 0006969159 00000 n 0006969202 00000 n 0006969245 00000 n 0006969288 00000 n 0006969331 00000 n 0006969374 00000 n 0006969417 00000 n 0006969460 00000 n 0006969503 00000 n 0006969546 00000 n 0006969589 00000 n 0006969632 00000 n 0006969675 00000 n 0006969718 00000 n 0006969761 00000 n 0006969804 00000 n 0006969847 00000 n 0006969890 00000 n 0006969933 00000 n 0006969976 00000 n 0006970019 00000 n 0006970062 00000 n 0006970105 00000 n 0006970148 00000 n 0006970191 00000 n 0006970234 00000 n 0006970277 00000 n 0006970320 00000 n 0006970363 00000 n 0006970406 00000 n 0006970449 00000 n 0006970492 00000 n 0006970535 00000 n 0006970578 00000 n 0006970621 00000 n 0006970664 00000 n 0006970707 00000 n 0006970750 00000 n 0006970793 00000 n 0006970836 00000 n 0006970879 00000 n 0006970922 00000 n 0006970965 00000 n 0006971008 00000 n 0006971051 00000 n 0006971094 00000 n 0006971137 00000 n 0006971180 00000 n 0006971223 00000 n 0006971266 00000 n 0006971309 00000 n 0006971352 00000 n 0006971395 00000 n 0006971438 00000 n 0006971481 00000 n 0006971524 00000 n 0006971567 00000 n 0006971610 00000 n 0006971653 00000 n 0006971696 00000 n 0006971739 00000 n 0006971782 00000 n 0006971825 00000 n 0006971868 00000 n 0006971911 00000 n 0006971954 00000 n 0006971997 00000 n 0006972040 00000 n 0006972083 00000 n 0006972126 00000 n 0006972169 00000 n 0006972212 00000 n 0006972255 00000 n 0006972298 00000 n 0006972341 00000 n 0006972384 00000 n 0006972427 00000 n 0006972470 00000 n 0006972513 00000 n 0006972556 00000 n 0006972599 00000 n 0006972642 00000 n 0006972685 00000 n 0006972728 00000 n 0006972771 00000 n 0006972814 00000 n 0006972857 00000 n 0006972900 00000 n 0006972943 00000 n 0006972986 00000 n 0006973029 00000 n 0006973072 00000 n 0006973115 00000 n 0006973158 00000 n 0006973201 00000 n 0006973244 00000 n 0006973287 00000 n 0006973330 00000 n 0006973373 00000 n 0006973416 00000 n 0006973459 00000 n 0006973502 00000 n 0006973545 00000 n 0006973588 00000 n 0006973631 00000 n 0006973674 00000 n 0006973717 00000 n 0006973760 00000 n 0006973803 00000 n 0006973846 00000 n 0006973889 00000 n 0006973932 00000 n 0006973975 00000 n 0006974018 00000 n 0006974061 00000 n 0006974104 00000 n 0006974147 00000 n 0006974190 00000 n 0006974233 00000 n 0006974276 00000 n 0006974319 00000 n 0006974362 00000 n 0006974405 00000 n 0006974736 00000 n 0006975158 00000 n 0006975201 00000 n 0006975244 00000 n 0006975287 00000 n 0006975330 00000 n 0006975374 00000 n 0006975417 00000 n 0006975459 00000 n 0006975503 00000 n 0006975546 00000 n 0006975589 00000 n 0006975633 00000 n 0006975677 00000 n 0006975720 00000 n 0006975763 00000 n 0006975807 00000 n 0006975850 00000 n 0006975894 00000 n 0006975936 00000 n 0006975980 00000 n 0006976023 00000 n 0006976066 00000 n 0006976110 00000 n 0006976153 00000 n 0006976221 00000 n 0006976441 00000 n 0006976540 00000 n 0006978649 00000 n 0006978980 00000 n 0006979402 00000 n 0006979444 00000 n 0006979488 00000 n 0006979532 00000 n 0006979575 00000 n 0006979643 00000 n 0006979863 00000 n 0006979962 00000 n 0006982299 00000 n 0006982630 00000 n 0006983052 00000 n 0006983096 00000 n 0006983139 00000 n 0006983207 00000 n 0006983470 00000 n 0006983569 00000 n 0006987302 00000 n 0006987468 00000 n 0006987510 00000 n 0006987841 00000 n 0006988263 00000 n 0006988306 00000 n 0006988350 00000 n 0006988394 00000 n 0006988438 00000 n 0006988481 00000 n 0006988549 00000 n 0006988812 00000 n 0006988911 00000 n 0006992913 00000 n 0006993244 00000 n 0006993666 00000 n 0006993734 00000 n 0006993997 00000 n 0006994096 00000 n 0006998715 00000 n 0006998881 00000 n 0006998923 00000 n 0006999254 00000 n 0006999676 00000 n 0006999718 00000 n 0006999762 00000 n 0006999805 00000 n 0006999873 00000 n 0007000165 00000 n 0007000264 00000 n 0007004051 00000 n 0007004218 00000 n 0007004261 00000 n 0007004592 00000 n 0007005014 00000 n 0007005058 00000 n 0007005102 00000 n 0007005146 00000 n 0007005189 00000 n 0007005233 00000 n 0007005276 00000 n 0007005319 00000 n 0007005363 00000 n 0007005431 00000 n 0007005666 00000 n 0007005765 00000 n 0007010550 00000 n 0007010881 00000 n 0007011303 00000 n 0007011347 00000 n 0007011388 00000 n 0007011432 00000 n 0007011476 00000 n 0007011519 00000 n 0007011563 00000 n 0007011631 00000 n 0007011866 00000 n 0007011965 00000 n 0007015780 00000 n 0007016111 00000 n 0007016533 00000 n 0007016576 00000 n 0007016619 00000 n 0007016662 00000 n 0007016706 00000 n 0007016750 00000 n 0007016791 00000 n 0007016835 00000 n 0007016878 00000 n 0007016922 00000 n 0007016966 00000 n 0007017010 00000 n 0007017078 00000 n 0007017298 00000 n 0007017397 00000 n 0007020756 00000 n 0007021087 00000 n 0007021509 00000 n 0007021553 00000 n 0007021596 00000 n 0007021664 00000 n 0007021912 00000 n 0007022011 00000 n 0007025834 00000 n 0007026165 00000 n 0007026587 00000 n 0007026630 00000 n 0007026674 00000 n 0007026718 00000 n 0007026786 00000 n 0007027021 00000 n 0007027120 00000 n 0007030498 00000 n 0007030829 00000 n 0007031251 00000 n 0007031319 00000 n 0007031554 00000 n 0007031653 00000 n 0007035641 00000 n 0007035972 00000 n 0007036394 00000 n 0007036437 00000 n 0007036480 00000 n 0007036524 00000 n 0007036592 00000 n 0007036826 00000 n 0007036925 00000 n 0007040527 00000 n 0007040858 00000 n 0007041280 00000 n 0007041348 00000 n 0007041583 00000 n 0007041682 00000 n 0007046754 00000 n 0007047085 00000 n 0007047507 00000 n 0007047550 00000 n 0007047594 00000 n 0007047637 00000 n 0007047705 00000 n 0007047940 00000 n 0007048039 00000 n 0007052534 00000 n 0007052673 00000 n 0007052812 00000 n 0007052951 00000 n 0007053090 00000 n 0007053229 00000 n 0007053368 00000 n 0007053507 00000 n 0007053646 00000 n 0007053785 00000 n 0007053924 00000 n 0007054063 00000 n 0007054202 00000 n 0007054341 00000 n 0007054480 00000 n 0007054619 00000 n 0007054758 00000 n 0007054897 00000 n 0007055036 00000 n 0007055175 00000 n 0007055314 00000 n 0007055453 00000 n 0007055592 00000 n 0007055731 00000 n 0007055870 00000 n 0007056009 00000 n 0007056148 00000 n 0007056287 00000 n 0007056426 00000 n 0007056565 00000 n 0007056704 00000 n 0007056843 00000 n 0007056982 00000 n 0007057121 00000 n 0007057260 00000 n 0007057399 00000 n 0007057538 00000 n 0007057677 00000 n 0007057816 00000 n 0007057955 00000 n 0007058094 00000 n 0007058233 00000 n 0007058372 00000 n 0007058511 00000 n 0007058650 00000 n 0007058789 00000 n 0007058928 00000 n 0007059067 00000 n 0007059206 00000 n 0007059345 00000 n 0007059484 00000 n 0007059623 00000 n 0007059762 00000 n 0007059901 00000 n 0007060040 00000 n 0007060179 00000 n 0007060318 00000 n 0007060457 00000 n 0007060596 00000 n 0007060735 00000 n 0007060874 00000 n 0007061013 00000 n 0007061152 00000 n 0007061291 00000 n 0007061430 00000 n 0007061569 00000 n 0007061708 00000 n 0007061847 00000 n 0007061986 00000 n 0007062125 00000 n 0007062264 00000 n 0007062403 00000 n 0007062542 00000 n 0007062681 00000 n 0007062820 00000 n 0007062959 00000 n 0007063098 00000 n 0007063237 00000 n 0007063376 00000 n 0007063515 00000 n 0007063654 00000 n 0007063793 00000 n 0007063932 00000 n 0007064071 00000 n 0007064210 00000 n 0007064349 00000 n 0007064488 00000 n 0007064627 00000 n 0007064766 00000 n 0007064905 00000 n 0007065044 00000 n 0007065183 00000 n 0007065322 00000 n 0007065461 00000 n 0007065600 00000 n 0007065739 00000 n 0007065878 00000 n 0007066017 00000 n 0007066156 00000 n 0007066295 00000 n 0007066434 00000 n 0007066573 00000 n 0007066712 00000 n 0007066851 00000 n 0007066990 00000 n 0007067129 00000 n 0007067268 00000 n 0007067407 00000 n 0007067546 00000 n 0007067685 00000 n 0007067824 00000 n 0007067963 00000 n 0007068102 00000 n 0007068241 00000 n 0007068380 00000 n 0007068519 00000 n 0007068658 00000 n 0007068797 00000 n 0007068936 00000 n 0007069075 00000 n 0007069214 00000 n 0007069353 00000 n 0007069492 00000 n 0007069631 00000 n 0007069770 00000 n 0007069909 00000 n 0007070048 00000 n 0007070187 00000 n 0007070326 00000 n 0007070465 00000 n 0007070604 00000 n 0007070743 00000 n 0007070882 00000 n 0007071021 00000 n 0007071160 00000 n 0007071299 00000 n 0007071438 00000 n 0007071577 00000 n 0007071716 00000 n 0007071855 00000 n 0007071994 00000 n 0007072133 00000 n 0007072272 00000 n 0007072411 00000 n 0007072550 00000 n 0007072689 00000 n 0007072828 00000 n 0007072967 00000 n 0007073106 00000 n 0007073245 00000 n 0007073384 00000 n 0007073523 00000 n 0007073662 00000 n 0007073801 00000 n 0007073940 00000 n 0007074079 00000 n 0007074218 00000 n 0007074357 00000 n 0007074496 00000 n 0007074635 00000 n 0007074774 00000 n 0007074913 00000 n 0007075052 00000 n 0007075191 00000 n 0007075330 00000 n 0007075469 00000 n 0007075608 00000 n 0007075747 00000 n 0007075886 00000 n 0007076025 00000 n 0007076164 00000 n 0007076303 00000 n 0007076442 00000 n 0007076581 00000 n 0007076720 00000 n 0007076859 00000 n 0007076998 00000 n 0007077137 00000 n 0007077276 00000 n 0007077415 00000 n 0007077554 00000 n 0007077693 00000 n 0007077832 00000 n 0007077971 00000 n 0007078110 00000 n 0007078249 00000 n 0007078388 00000 n 0007078527 00000 n 0007078666 00000 n 0007078805 00000 n 0007078944 00000 n 0007079083 00000 n 0007079222 00000 n 0007079361 00000 n 0007079500 00000 n 0007079639 00000 n 0007079778 00000 n 0007079917 00000 n 0007080056 00000 n 0007080195 00000 n 0007080334 00000 n 0007080473 00000 n 0007080612 00000 n 0007080751 00000 n 0007080890 00000 n 0007081029 00000 n 0007081168 00000 n 0007081307 00000 n 0007081446 00000 n 0007081585 00000 n 0007081724 00000 n 0007081863 00000 n 0007082002 00000 n 0007082141 00000 n 0007082280 00000 n 0007082419 00000 n 0007082558 00000 n 0007082697 00000 n 0007082836 00000 n 0007082975 00000 n 0007083114 00000 n 0007083253 00000 n 0007083392 00000 n 0007083531 00000 n 0007083670 00000 n 0007083809 00000 n 0007083948 00000 n 0007084087 00000 n 0007084226 00000 n 0007084365 00000 n 0007084504 00000 n 0007084643 00000 n 0007084782 00000 n 0007084921 00000 n 0007085060 00000 n 0007085199 00000 n 0007085338 00000 n 0007085477 00000 n 0007085616 00000 n 0007085755 00000 n 0007085894 00000 n 0007086033 00000 n 0007086172 00000 n 0007086311 00000 n 0007086450 00000 n 0007086589 00000 n 0007086728 00000 n 0007086867 00000 n 0007087006 00000 n 0007087145 00000 n 0007087284 00000 n 0007087423 00000 n 0007087562 00000 n 0007087701 00000 n 0007087840 00000 n 0007087979 00000 n 0007088118 00000 n 0007088257 00000 n 0007088396 00000 n 0007088535 00000 n 0007088674 00000 n 0007088813 00000 n 0007088952 00000 n 0007089091 00000 n 0007089230 00000 n 0007089369 00000 n 0007089508 00000 n 0007089647 00000 n 0007089786 00000 n 0007089925 00000 n 0007090064 00000 n 0007090203 00000 n 0007090342 00000 n 0007090481 00000 n 0007090620 00000 n 0007090759 00000 n 0007090898 00000 n 0007091037 00000 n 0007091176 00000 n 0007091315 00000 n 0007091454 00000 n 0007091593 00000 n 0007091732 00000 n 0007091871 00000 n 0007092010 00000 n 0007092149 00000 n 0007092288 00000 n 0007092427 00000 n 0007092566 00000 n 0007092705 00000 n 0007092844 00000 n 0007092983 00000 n 0007093122 00000 n 0007093261 00000 n 0007093400 00000 n 0007093539 00000 n 0007093678 00000 n 0007093817 00000 n 0007093956 00000 n 0007094095 00000 n 0007094234 00000 n 0007094373 00000 n 0007094512 00000 n 0007094651 00000 n 0007094790 00000 n 0007094929 00000 n 0007095068 00000 n 0007095207 00000 n 0007095346 00000 n 0007095485 00000 n 0007095624 00000 n 0007095763 00000 n 0007095902 00000 n 0007096041 00000 n 0007096180 00000 n 0007096319 00000 n 0007096458 00000 n 0007096597 00000 n 0007096736 00000 n 0007096875 00000 n 0007097014 00000 n 0007097153 00000 n 0007097292 00000 n 0007097431 00000 n 0007097570 00000 n 0007097709 00000 n 0007097848 00000 n 0007097987 00000 n 0007098126 00000 n 0007098265 00000 n 0007098404 00000 n 0007098543 00000 n 0007098682 00000 n 0007098821 00000 n 0007098960 00000 n 0007099099 00000 n 0007099238 00000 n 0007099281 00000 n 0007099324 00000 n 0007099367 00000 n 0007099410 00000 n 0007099453 00000 n 0007099496 00000 n 0007099539 00000 n 0007099582 00000 n 0007099625 00000 n 0007099668 00000 n 0007099711 00000 n 0007099754 00000 n 0007099797 00000 n 0007099840 00000 n 0007099883 00000 n 0007099926 00000 n 0007099969 00000 n 0007100012 00000 n 0007100055 00000 n 0007100098 00000 n 0007100141 00000 n 0007100184 00000 n 0007100227 00000 n 0007100270 00000 n 0007100313 00000 n 0007100356 00000 n 0007100399 00000 n 0007100442 00000 n 0007100485 00000 n 0007100528 00000 n 0007100571 00000 n 0007100614 00000 n 0007100657 00000 n 0007100700 00000 n 0007100743 00000 n 0007100786 00000 n 0007100829 00000 n 0007100872 00000 n 0007100915 00000 n 0007100958 00000 n 0007101001 00000 n 0007101044 00000 n 0007101087 00000 n 0007101130 00000 n 0007101173 00000 n 0007101216 00000 n 0007101259 00000 n 0007101302 00000 n 0007101345 00000 n 0007101388 00000 n 0007101431 00000 n 0007101474 00000 n 0007101517 00000 n 0007101560 00000 n 0007101603 00000 n 0007101646 00000 n 0007101689 00000 n 0007101732 00000 n 0007101775 00000 n 0007101818 00000 n 0007101861 00000 n 0007101904 00000 n 0007101947 00000 n 0007101990 00000 n 0007102033 00000 n 0007102076 00000 n 0007102119 00000 n 0007102162 00000 n 0007102205 00000 n 0007102248 00000 n 0007102291 00000 n 0007102334 00000 n 0007102377 00000 n 0007102420 00000 n 0007102463 00000 n 0007102506 00000 n 0007102549 00000 n 0007102592 00000 n 0007102635 00000 n 0007102678 00000 n 0007102721 00000 n 0007102764 00000 n 0007102807 00000 n 0007102850 00000 n 0007102893 00000 n 0007102936 00000 n 0007102979 00000 n 0007103022 00000 n 0007103065 00000 n 0007103108 00000 n 0007103151 00000 n 0007103194 00000 n 0007103237 00000 n 0007103280 00000 n 0007103323 00000 n 0007103366 00000 n 0007103409 00000 n 0007103452 00000 n 0007103495 00000 n 0007103538 00000 n 0007103581 00000 n 0007103624 00000 n 0007103667 00000 n 0007103710 00000 n 0007103753 00000 n 0007103796 00000 n 0007103839 00000 n 0007103882 00000 n 0007103925 00000 n 0007103968 00000 n 0007104011 00000 n 0007104054 00000 n 0007104097 00000 n 0007104140 00000 n 0007104183 00000 n 0007104226 00000 n 0007104269 00000 n 0007104312 00000 n 0007104355 00000 n 0007104398 00000 n 0007104441 00000 n 0007104484 00000 n 0007104527 00000 n 0007104570 00000 n 0007104613 00000 n 0007104656 00000 n 0007104699 00000 n 0007104742 00000 n 0007104785 00000 n 0007104828 00000 n 0007104871 00000 n 0007104914 00000 n 0007104957 00000 n 0007105000 00000 n 0007105043 00000 n 0007105086 00000 n 0007105129 00000 n 0007105172 00000 n 0007105215 00000 n 0007105258 00000 n 0007105301 00000 n 0007105344 00000 n 0007105387 00000 n 0007105430 00000 n 0007105473 00000 n 0007105516 00000 n 0007105559 00000 n 0007105602 00000 n 0007105645 00000 n 0007105688 00000 n 0007105731 00000 n 0007105774 00000 n 0007105817 00000 n 0007105860 00000 n 0007105903 00000 n 0007105946 00000 n 0007105989 00000 n 0007106032 00000 n 0007106075 00000 n 0007106118 00000 n 0007106161 00000 n 0007106204 00000 n 0007106247 00000 n 0007106290 00000 n 0007106333 00000 n 0007106376 00000 n 0007106419 00000 n 0007106462 00000 n 0007106505 00000 n 0007106548 00000 n 0007106591 00000 n 0007106634 00000 n 0007106677 00000 n 0007106720 00000 n 0007106763 00000 n 0007106806 00000 n 0007106849 00000 n 0007106892 00000 n 0007106935 00000 n 0007106978 00000 n 0007107021 00000 n 0007107064 00000 n 0007107107 00000 n 0007107150 00000 n 0007107193 00000 n 0007107236 00000 n 0007107279 00000 n 0007107322 00000 n 0007107365 00000 n 0007107408 00000 n 0007107451 00000 n 0007107494 00000 n 0007107537 00000 n 0007107580 00000 n 0007107623 00000 n 0007107666 00000 n 0007107709 00000 n 0007107752 00000 n 0007107795 00000 n 0007107838 00000 n 0007107881 00000 n 0007107924 00000 n 0007107967 00000 n 0007108010 00000 n 0007108053 00000 n 0007108096 00000 n 0007108139 00000 n 0007108182 00000 n 0007108225 00000 n 0007108268 00000 n 0007108311 00000 n 0007108354 00000 n 0007108397 00000 n 0007108440 00000 n 0007108483 00000 n 0007108526 00000 n 0007108569 00000 n 0007108612 00000 n 0007108655 00000 n 0007108698 00000 n 0007108741 00000 n 0007108784 00000 n 0007108827 00000 n 0007108870 00000 n 0007108913 00000 n 0007108956 00000 n 0007108999 00000 n 0007109042 00000 n 0007109085 00000 n 0007109128 00000 n 0007109171 00000 n 0007109214 00000 n 0007109257 00000 n 0007109300 00000 n 0007109343 00000 n 0007109386 00000 n 0007109429 00000 n 0007109472 00000 n 0007109515 00000 n 0007109558 00000 n 0007109601 00000 n 0007109644 00000 n 0007109687 00000 n 0007109730 00000 n 0007109773 00000 n 0007109816 00000 n 0007109859 00000 n 0007109902 00000 n 0007109945 00000 n 0007109988 00000 n 0007110031 00000 n 0007110099 00000 n 0007110319 00000 n 0007110418 00000 n 0007113431 00000 n 0007113762 00000 n 0007114184 00000 n 0007114227 00000 n 0007114271 00000 n 0007114314 00000 n 0007114382 00000 n 0007114617 00000 n 0007114716 00000 n 0007117393 00000 n 0007117724 00000 n 0007118146 00000 n 0007118188 00000 n 0007118232 00000 n 0007118274 00000 n 0007118318 00000 n 0007118360 00000 n 0007118402 00000 n 0007118446 00000 n 0007118488 00000 n 0007118530 00000 n 0007118573 00000 n 0007118615 00000 n 0007118658 00000 n 0007118726 00000 n 0007118974 00000 n 0007119073 00000 n 0007123387 00000 n 0007123554 00000 n 0007123885 00000 n 0007124307 00000 n 0007124349 00000 n 0007124417 00000 n 0007124666 00000 n 0007124765 00000 n 0007129117 00000 n 0007129161 00000 n 0007129203 00000 n 0007129245 00000 n 0007129287 00000 n 0007129330 00000 n 0007129372 00000 n 0007129414 00000 n 0007129482 00000 n 0007129731 00000 n 0007129830 00000 n 0007134181 00000 n 0007134348 00000 n 0007134679 00000 n 0007135101 00000 n 0007135144 00000 n 0007135212 00000 n 0007135461 00000 n 0007135560 00000 n 0007139997 00000 n 0007140328 00000 n 0007140750 00000 n 0007140792 00000 n 0007140835 00000 n 0007140878 00000 n 0007140920 00000 n 0007140964 00000 n 0007141006 00000 n 0007141050 00000 n 0007141094 00000 n 0007141136 00000 n 0007141178 00000 n 0007141220 00000 n 0007141262 00000 n 0007141330 00000 n 0007141550 00000 n 0007141649 00000 n 0007145351 00000 n 0007145419 00000 n 0007145654 00000 n 0007145753 00000 n 0007149701 00000 n 0007150032 00000 n 0007150454 00000 n 0007150747 00000 n 0007150789 00000 n 0007150831 00000 n 0007150873 00000 n 0007150941 00000 n 0007151161 00000 n 0007151260 00000 n 0007155106 00000 n 0007155150 00000 n 0007155192 00000 n 0007155260 00000 n 0007155509 00000 n 0007155608 00000 n 0007160007 00000 n 0007160338 00000 n 0007160760 00000 n 0007160803 00000 n 0007160847 00000 n 0007160891 00000 n 0007160959 00000 n 0007161179 00000 n 0007161278 00000 n 0007163057 00000 n 0007163388 00000 n 0007163810 00000 n 0007163852 00000 n 0007163896 00000 n 0007163938 00000 n 0007163982 00000 n 0007164050 00000 n 0007164270 00000 n 0007164369 00000 n 0007168753 00000 n 0007169084 00000 n 0007169506 00000 n 0007169548 00000 n 0007169616 00000 n 0007169879 00000 n 0007169978 00000 n 0007172279 00000 n 0007172610 00000 n 0007173032 00000 n 0007173075 00000 n 0007173117 00000 n 0007173160 00000 n 0007173204 00000 n 0007173247 00000 n 0007173290 00000 n 0007173358 00000 n 0007173578 00000 n 0007173677 00000 n 0007177914 00000 n 0007178245 00000 n 0007178667 00000 n 0007178711 00000 n 0007178754 00000 n 0007178796 00000 n 0007178840 00000 n 0007178881 00000 n 0007178924 00000 n 0007178992 00000 n 0007179241 00000 n 0007179340 00000 n 0007183517 00000 n 0007183560 00000 n 0007183604 00000 n 0007183648 00000 n 0007183691 00000 n 0007183735 00000 n 0007185511 00000 n 0007185554 00000 n 0007185622 00000 n 0007185842 00000 n 0007185941 00000 n 0007189957 00000 n 0007190288 00000 n 0007190710 00000 n 0007190778 00000 n 0007191041 00000 n 0007191140 00000 n 0007193417 00000 n 0007193748 00000 n 0007194170 00000 n 0007194238 00000 n 0007194458 00000 n 0007194557 00000 n 0007198529 00000 n 0007198860 00000 n 0007199282 00000 n 0007199326 00000 n 0007199370 00000 n 0007199414 00000 n 0007199458 00000 n 0007199500 00000 n 0007199542 00000 n 0007199586 00000 n 0007199629 00000 n 0007199672 00000 n 0007199714 00000 n 0007199757 00000 n 0007199801 00000 n 0007199844 00000 n 0007199886 00000 n 0007199928 00000 n 0007199970 00000 n 0007200013 00000 n 0007200081 00000 n 0007200330 00000 n 0007200429 00000 n 0007203318 00000 n 0007203649 00000 n 0007204071 00000 n 0007204113 00000 n 0007204444 00000 n 0007204866 00000 n 0007204909 00000 n 0007204951 00000 n 0007204993 00000 n 0007205324 00000 n 0007205746 00000 n 0007205789 00000 n 0007205832 00000 n 0007205874 00000 n 0007205917 00000 n 0007205961 00000 n 0007206003 00000 n 0007206045 00000 n 0007206087 00000 n 0007206129 00000 n 0007206170 00000 n 0007206212 00000 n 0007206256 00000 n 0007206299 00000 n 0007206341 00000 n 0007206385 00000 n 0007206429 00000 n 0007206470 00000 n 0007206512 00000 n 0007206556 00000 n 0007206598 00000 n 0007206642 00000 n 0007206684 00000 n 0007206728 00000 n 0007206772 00000 n 0007206816 00000 n 0007206859 00000 n 0007206903 00000 n 0007206971 00000 n 0007207191 00000 n 0007207290 00000 n 0007212355 00000 n 0007212399 00000 n 0007212443 00000 n 0007212485 00000 n 0007212527 00000 n 0007212571 00000 n 0007212615 00000 n 0007212683 00000 n 0007212873 00000 n 0007212972 00000 n 0007213190 00000 n 0007213521 00000 n 0007213943 00000 n 0007213987 00000 n 0007214031 00000 n 0007214099 00000 n 0007214333 00000 n 0007214432 00000 n 0007217644 00000 n 0007217811 00000 n 0007217879 00000 n 0007218114 00000 n 0007218213 00000 n 0007222342 00000 n 0007222673 00000 n 0007223095 00000 n 0007223139 00000 n 0007223182 00000 n 0007223225 00000 n 0007223269 00000 n 0007223313 00000 n 0007223357 00000 n 0007223401 00000 n 0007223469 00000 n 0007223689 00000 n 0007223788 00000 n 0007227600 00000 n 0007227931 00000 n 0007228353 00000 n 0007228395 00000 n 0007228438 00000 n 0007228482 00000 n 0007228526 00000 n 0007228594 00000 n 0007228814 00000 n 0007228913 00000 n 0007230823 00000 n 0007231154 00000 n 0007231576 00000 n 0007231620 00000 n 0007231663 00000 n 0007231707 00000 n 0007231751 00000 n 0007231795 00000 n 0007231839 00000 n 0007231882 00000 n 0007231926 00000 n 0007231969 00000 n 0007232013 00000 n 0007232057 00000 n 0007232101 00000 n 0007232144 00000 n 0007232188 00000 n 0007232231 00000 n 0007232275 00000 n 0007232319 00000 n 0007232650 00000 n 0007233072 00000 n 0007233115 00000 n 0007233159 00000 n 0007233203 00000 n 0007233246 00000 n 0007233290 00000 n 0007233333 00000 n 0007233377 00000 n 0007233421 00000 n 0007233503 00000 n 0007233547 00000 n 0007233615 00000 n 0007233850 00000 n 0007233949 00000 n 0007238371 00000 n 0007238538 00000 n 0007238698 00000 n 0007238858 00000 n 0007239025 00000 n 0007239192 00000 n 0007239270 00000 n 0007239326 00000 n 0007239381 00000 n 0007239436 00000 n 0007239492 00000 n 0007239823 00000 n 0007240245 00000 n 0007240576 00000 n 0007240998 00000 n 0007241041 00000 n 0007241085 00000 n 0007241129 00000 n 0007241173 00000 n 0007241216 00000 n 0007241260 00000 n 0007241303 00000 n 0007241347 00000 n 0007241390 00000 n 0007241434 00000 n 0007241477 00000 n 0007241521 00000 n 0007241565 00000 n 0007241608 00000 n 0007241676 00000 n 0007241910 00000 n 0007242009 00000 n 0007245796 00000 n 0007245840 00000 n 0007245884 00000 n 0007245928 00000 n 0007246259 00000 n 0007246681 00000 n 0007246724 00000 n 0007246792 00000 n 0007247027 00000 n 0007247126 00000 n 0007251501 00000 n 0007251832 00000 n 0007252254 00000 n 0007252298 00000 n 0007252342 00000 n 0007252386 00000 n 0007252430 00000 n 0007252474 00000 n 0007252518 00000 n 0007252562 00000 n 0007252606 00000 n 0007252674 00000 n 0007252910 00000 n 0007253009 00000 n 0007255337 00000 n 0007255504 00000 n 0007255547 00000 n 0007255878 00000 n 0007256300 00000 n 0007256368 00000 n 0007256617 00000 n 0007256716 00000 n 0007260005 00000 n 0007260336 00000 n 0007260758 00000 n 0007260826 00000 n 0007261060 00000 n 0007261159 00000 n 0007265129 00000 n 0007265295 00000 n 0007265339 00000 n 0007265407 00000 n 0007265627 00000 n 0007265726 00000 n 0007269613 00000 n 0007269944 00000 n 0007270366 00000 n 0007270410 00000 n 0007270454 00000 n 0007270497 00000 n 0007270565 00000 n 0007270755 00000 n 0007270854 00000 n 0007271072 00000 n 0007271403 00000 n 0007271825 00000 n 0007271869 00000 n 0007272200 00000 n 0007272622 00000 n 0007272666 00000 n 0007272734 00000 n 0007272997 00000 n 0007273096 00000 n 0007277593 00000 n 0007277760 00000 n 0007277803 00000 n 0007278134 00000 n 0007278556 00000 n 0007278600 00000 n 0007278643 00000 n 0007278687 00000 n 0007278730 00000 n 0007278774 00000 n 0007278818 00000 n 0007278862 00000 n 0007278930 00000 n 0007279179 00000 n 0007279278 00000 n 0007283671 00000 n 0007283739 00000 n 0007284002 00000 n 0007284101 00000 n 0007287645 00000 n 0007287976 00000 n 0007288398 00000 n 0007288442 00000 n 0007288486 00000 n 0007288530 00000 n 0007288574 00000 n 0007288618 00000 n 0007288661 00000 n 0007288704 00000 n 0007289035 00000 n 0007289457 00000 n 0007289501 00000 n 0007289545 00000 n 0007289589 00000 n 0007289632 00000 n 0007289676 00000 n 0007289717 00000 n 0007289761 00000 n 0007289805 00000 n 0007289873 00000 n 0007290122 00000 n 0007290221 00000 n 0007294655 00000 n 0007294698 00000 n 0007294742 00000 n 0007294810 00000 n 0007295030 00000 n 0007295129 00000 n 0007298810 00000 n 0007299141 00000 n 0007299563 00000 n 0007299607 00000 n 0007299651 00000 n 0007299692 00000 n 0007299735 00000 n 0007299779 00000 n 0007299847 00000 n 0007300082 00000 n 0007300181 00000 n 0007303730 00000 n 0007304061 00000 n 0007304483 00000 n 0007304527 00000 n 0007304571 00000 n 0007304615 00000 n 0007304656 00000 n 0007304699 00000 n 0007304742 00000 n 0007304810 00000 n 0007305030 00000 n 0007305129 00000 n 0007306917 00000 n 0007307248 00000 n 0007307670 00000 n 0007307714 00000 n 0007307757 00000 n 0007307801 00000 n 0007307869 00000 n 0007308118 00000 n 0007308217 00000 n 0007313143 00000 n 0007313474 00000 n 0007313896 00000 n 0007313940 00000 n 0007314008 00000 n 0007314271 00000 n 0007314370 00000 n 0007317893 00000 n 0007318059 00000 n 0007318102 00000 n 0007318433 00000 n 0007318855 00000 n 0007318898 00000 n 0007318942 00000 n 0007318986 00000 n 0007319029 00000 n 0007319072 00000 n 0007319116 00000 n 0007319160 00000 n 0007319204 00000 n 0007319272 00000 n 0007319506 00000 n 0007319605 00000 n 0007322975 00000 n 0007323306 00000 n 0007323728 00000 n 0007323772 00000 n 0007323816 00000 n 0007323857 00000 n 0007323925 00000 n 0007324159 00000 n 0007324258 00000 n 0007328031 00000 n 0007328362 00000 n 0007328784 00000 n 0007328828 00000 n 0007328896 00000 n 0007329116 00000 n 0007329215 00000 n 0007331508 00000 n 0007331839 00000 n 0007332261 00000 n 0007332305 00000 n 0007332373 00000 n 0007332593 00000 n 0007332692 00000 n 0007336255 00000 n 0007336586 00000 n 0007337008 00000 n 0007337052 00000 n 0007337096 00000 n 0007337139 00000 n 0007337470 00000 n 0007337892 00000 n 0007338223 00000 n 0007338645 00000 n 0007338689 00000 n 0007338733 00000 n 0007338777 00000 n 0007338821 00000 n 0007338862 00000 n 0007338930 00000 n 0007339164 00000 n 0007339263 00000 n 0007342669 00000 n 0007343000 00000 n 0007343422 00000 n 0007343465 00000 n 0007343509 00000 n 0007343552 00000 n 0007343595 00000 n 0007343639 00000 n 0007343707 00000 n 0007343897 00000 n 0007343996 00000 n 0007344214 00000 n 0007344545 00000 n 0007344967 00000 n 0007345011 00000 n 0007345055 00000 n 0007345099 00000 n 0007345143 00000 n 0007345211 00000 n 0007345474 00000 n 0007345573 00000 n 0007348008 00000 n 0007348339 00000 n 0007348761 00000 n 0007348829 00000 n 0007349064 00000 n 0007349163 00000 n 0007353665 00000 n 0007353996 00000 n 0007354418 00000 n 0007354462 00000 n 0007354506 00000 n 0007354549 00000 n 0007354617 00000 n 0007354851 00000 n 0007354950 00000 n 0007357754 00000 n 0007358085 00000 n 0007358507 00000 n 0007358550 00000 n 0007358618 00000 n 0007358867 00000 n 0007358966 00000 n 0007361843 00000 n 0007362174 00000 n 0007362596 00000 n 0007362640 00000 n 0007362684 00000 n 0007362752 00000 n 0007362986 00000 n 0007363085 00000 n 0007366468 00000 n 0007366635 00000 n 0007366966 00000 n 0007367388 00000 n 0007367431 00000 n 0007367475 00000 n 0007367518 00000 n 0007367586 00000 n 0007367806 00000 n 0007367905 00000 n 0007371789 00000 n 0007372120 00000 n 0007372542 00000 n 0007372585 00000 n 0007372628 00000 n 0007372672 00000 n 0007372716 00000 n 0007372760 00000 n 0007372804 00000 n 0007372847 00000 n 0007372891 00000 n 0007372935 00000 n 0007372978 00000 n 0007373021 00000 n 0007373065 00000 n 0007373108 00000 n 0007373152 00000 n 0007373196 00000 n 0007373240 00000 n 0007373283 00000 n 0007373351 00000 n 0007373600 00000 n 0007373699 00000 n 0007378014 00000 n 0007378057 00000 n 0007378100 00000 n 0007378168 00000 n 0007378417 00000 n 0007378516 00000 n 0007382671 00000 n 0007382837 00000 n 0007382879 00000 n 0007383210 00000 n 0007383632 00000 n 0007383700 00000 n 0007383935 00000 n 0007384034 00000 n 0007387394 00000 n 0007387725 00000 n 0007388147 00000 n 0007388191 00000 n 0007388234 00000 n 0007388277 00000 n 0007388320 00000 n 0007388363 00000 n 0007388406 00000 n 0007388450 00000 n 0007388493 00000 n 0007388536 00000 n 0007388579 00000 n 0007388623 00000 n 0007388666 00000 n 0007388709 00000 n 0007388777 00000 n 0007388997 00000 n 0007389096 00000 n 0007392129 00000 n 0007392460 00000 n 0007392882 00000 n 0007392950 00000 n 0007393184 00000 n 0007393283 00000 n 0007396509 00000 n 0007396840 00000 n 0007397262 00000 n 0007397305 00000 n 0007397349 00000 n 0007397392 00000 n 0007397436 00000 n 0007397504 00000 n 0007397753 00000 n 0007397852 00000 n 0007401757 00000 n 0007402088 00000 n 0007402510 00000 n 0007402553 00000 n 0007402596 00000 n 0007402639 00000 n 0007402683 00000 n 0007402727 00000 n 0007402770 00000 n 0007402813 00000 n 0007402856 00000 n 0007402899 00000 n 0007403230 00000 n 0007403652 00000 n 0007403696 00000 n 0007403740 00000 n 0007403783 00000 n 0007403826 00000 n 0007403868 00000 n 0007403911 00000 n 0007403952 00000 n 0007403995 00000 n 0007404039 00000 n 0007404107 00000 n 0007404341 00000 n 0007404440 00000 n 0007407990 00000 n 0007408321 00000 n 0007408743 00000 n 0007408786 00000 n 0007408829 00000 n 0007408872 00000 n 0007408916 00000 n 0007408960 00000 n 0007409003 00000 n 0007409047 00000 n 0007409088 00000 n 0007409131 00000 n 0007409175 00000 n 0007409219 00000 n 0007409263 00000 n 0007409306 00000 n 0007409349 00000 n 0007409393 00000 n 0007409434 00000 n 0007409502 00000 n 0007409779 00000 n 0007409878 00000 n 0007413995 00000 n 0007414161 00000 n 0007414203 00000 n 0007414534 00000 n 0007414956 00000 n 0007415168 00000 n 0007415812 00000 n 0007415855 00000 n 0007415898 00000 n 0007415942 00000 n 0007415985 00000 n 0007416029 00000 n 0007416073 00000 n 0007416116 00000 n 0007416157 00000 n 0007416201 00000 n 0007416245 00000 n 0007416288 00000 n 0007416332 00000 n 0007416375 00000 n 0007416419 00000 n 0007416487 00000 n 0007416707 00000 n 0007416806 00000 n 0007420470 00000 n 0007420801 00000 n 0007421223 00000 n 0007421267 00000 n 0007421311 00000 n 0007421379 00000 n 0007421628 00000 n 0007421727 00000 n 0007426271 00000 n 0007426437 00000 n 0007426603 00000 n 0007426645 00000 n 0007426687 00000 n 0007426730 00000 n 0007426774 00000 n 0007426817 00000 n 0007426860 00000 n 0007426904 00000 n 0007426947 00000 n 0007426988 00000 n 0007427032 00000 n 0007427076 00000 n 0007427120 00000 n 0007427161 00000 n 0007427204 00000 n 0007427248 00000 n 0007427316 00000 n 0007427551 00000 n 0007427650 00000 n 0007431945 00000 n 0007432276 00000 n 0007432698 00000 n 0007432741 00000 n 0007432785 00000 n 0007432829 00000 n 0007432873 00000 n 0007432915 00000 n 0007432959 00000 n 0007433002 00000 n 0007433046 00000 n 0007433089 00000 n 0007433132 00000 n 0007433176 00000 n 0007433218 00000 n 0007433260 00000 n 0007433304 00000 n 0007433372 00000 n 0007433635 00000 n 0007433734 00000 n 0007437481 00000 n 0007437647 00000 n 0007437689 00000 n 0007438020 00000 n 0007438442 00000 n 0007438486 00000 n 0007438530 00000 n 0007438574 00000 n 0007438618 00000 n 0007438662 00000 n 0007438730 00000 n 0007438950 00000 n 0007439049 00000 n 0007440867 00000 n 0007441198 00000 n 0007441620 00000 n 0007441661 00000 n 0007441704 00000 n 0007441748 00000 n 0007441790 00000 n 0007441834 00000 n 0007442165 00000 n 0007442587 00000 n 0007442655 00000 n 0007442889 00000 n 0007442988 00000 n 0007446334 00000 n 0007446500 00000 n 0007446542 00000 n 0007446873 00000 n 0007447295 00000 n 0007450555 00000 n 0007450599 00000 n 0007450643 00000 n 0007450686 00000 n 0007450730 00000 n 0007450773 00000 n 0007450816 00000 n 0007450860 00000 n 0007450904 00000 n 0007450948 00000 n 0007450992 00000 n 0007451036 00000 n 0007451080 00000 n 0007451121 00000 n 0007451164 00000 n 0007451208 00000 n 0007451276 00000 n 0007451555 00000 n 0007451654 00000 n 0007453958 00000 n 0007454124 00000 n 0007454290 00000 n 0007454456 00000 n 0007454498 00000 n 0007454540 00000 n 0007454582 00000 n 0007454913 00000 n 0007455335 00000 n 0007455377 00000 n 0007455421 00000 n 0007455464 00000 n 0007455507 00000 n 0007455575 00000 n 0007455809 00000 n 0007455908 00000 n 0007458491 00000 n 0007458822 00000 n 0007459244 00000 n 0007459288 00000 n 0007459332 00000 n 0007459376 00000 n 0007459419 00000 n 0007459487 00000 n 0007459736 00000 n 0007459835 00000 n 0007463426 00000 n 0007463757 00000 n 0007464179 00000 n 0007464222 00000 n 0007464266 00000 n 0007464310 00000 n 0007464353 00000 n 0007464397 00000 n 0007464441 00000 n 0007464509 00000 n 0007464757 00000 n 0007464856 00000 n 0007468013 00000 n 0007468179 00000 n 0007468222 00000 n 0007468553 00000 n 0007468975 00000 n 0007469019 00000 n 0007469087 00000 n 0007469350 00000 n 0007469449 00000 n 0007471722 00000 n 0007472053 00000 n 0007472475 00000 n 0007472519 00000 n 0007472563 00000 n 0007472604 00000 n 0007472648 00000 n 0007472691 00000 n 0007472735 00000 n 0007472779 00000 n 0007472823 00000 n 0007472866 00000 n 0007472910 00000 n 0007472954 00000 n 0007472998 00000 n 0007473041 00000 n 0007473085 00000 n 0007473153 00000 n 0007473387 00000 n 0007473486 00000 n 0007477732 00000 n 0007477899 00000 n 0007477942 00000 n 0007478273 00000 n 0007478695 00000 n 0007478763 00000 n 0007478983 00000 n 0007479082 00000 n 0007481984 00000 n 0007482315 00000 n 0007482737 00000 n 0007482805 00000 n 0007483054 00000 n 0007483153 00000 n 0007486075 00000 n 0007486406 00000 n 0007486828 00000 n 0007486871 00000 n 0007487202 00000 n 0007487624 00000 n 0007487667 00000 n 0007487735 00000 n 0007487955 00000 n 0007488054 00000 n 0007490596 00000 n 0007490927 00000 n 0007491349 00000 n 0007491391 00000 n 0007491435 00000 n 0007491503 00000 n 0007491752 00000 n 0007491851 00000 n 0007495886 00000 n 0007496217 00000 n 0007496639 00000 n 0007496682 00000 n 0007496723 00000 n 0007496766 00000 n 0007496810 00000 n 0007496853 00000 n 0007496896 00000 n 0007496940 00000 n 0007496983 00000 n 0007497051 00000 n 0007497300 00000 n 0007497399 00000 n 0007501210 00000 n 0007501376 00000 n 0007501418 00000 n 0007501749 00000 n 0007502171 00000 n 0007502214 00000 n 0007502258 00000 n 0007502302 00000 n 0007502345 00000 n 0007502389 00000 n 0007502433 00000 n 0007502477 00000 n 0007502521 00000 n 0007502589 00000 n 0007502824 00000 n 0007502923 00000 n 0007507603 00000 n 0007507742 00000 n 0007507881 00000 n 0007508020 00000 n 0007508159 00000 n 0007508298 00000 n 0007508437 00000 n 0007508576 00000 n 0007508715 00000 n 0007508854 00000 n 0007508993 00000 n 0007509132 00000 n 0007509271 00000 n 0007509410 00000 n 0007509549 00000 n 0007509688 00000 n 0007509827 00000 n 0007509966 00000 n 0007510105 00000 n 0007510244 00000 n 0007510383 00000 n 0007510522 00000 n 0007510661 00000 n 0007510800 00000 n 0007510939 00000 n 0007511078 00000 n 0007511217 00000 n 0007511356 00000 n 0007511495 00000 n 0007511634 00000 n 0007511773 00000 n 0007511912 00000 n 0007512051 00000 n 0007512190 00000 n 0007512329 00000 n 0007512468 00000 n 0007512607 00000 n 0007512746 00000 n 0007512885 00000 n 0007513024 00000 n 0007513163 00000 n 0007513302 00000 n 0007513441 00000 n 0007513580 00000 n 0007513719 00000 n 0007513858 00000 n 0007513997 00000 n 0007514136 00000 n 0007514275 00000 n 0007514414 00000 n 0007514553 00000 n 0007514692 00000 n 0007514831 00000 n 0007514970 00000 n 0007515109 00000 n 0007515248 00000 n 0007515387 00000 n 0007515526 00000 n 0007515665 00000 n 0007515804 00000 n 0007515943 00000 n 0007516082 00000 n 0007516221 00000 n 0007516360 00000 n 0007516499 00000 n 0007516638 00000 n 0007516777 00000 n 0007516916 00000 n 0007517055 00000 n 0007517194 00000 n 0007517333 00000 n 0007517472 00000 n 0007517611 00000 n 0007517750 00000 n 0007517889 00000 n 0007518028 00000 n 0007518167 00000 n 0007518306 00000 n 0007518445 00000 n 0007518584 00000 n 0007518723 00000 n 0007518862 00000 n 0007519001 00000 n 0007519140 00000 n 0007519279 00000 n 0007519418 00000 n 0007519557 00000 n 0007519696 00000 n 0007519835 00000 n 0007519974 00000 n 0007520113 00000 n 0007520252 00000 n 0007520391 00000 n 0007520530 00000 n 0007520669 00000 n 0007520808 00000 n 0007520947 00000 n 0007521086 00000 n 0007521225 00000 n 0007521364 00000 n 0007521503 00000 n 0007521642 00000 n 0007521781 00000 n 0007521920 00000 n 0007522059 00000 n 0007522198 00000 n 0007522337 00000 n 0007522476 00000 n 0007522615 00000 n 0007522754 00000 n 0007522893 00000 n 0007523032 00000 n 0007523171 00000 n 0007523310 00000 n 0007523449 00000 n 0007523588 00000 n 0007523727 00000 n 0007523866 00000 n 0007524005 00000 n 0007524144 00000 n 0007524283 00000 n 0007524422 00000 n 0007524561 00000 n 0007524700 00000 n 0007524839 00000 n 0007524978 00000 n 0007525117 00000 n 0007525256 00000 n 0007525395 00000 n 0007525534 00000 n 0007525673 00000 n 0007525812 00000 n 0007525951 00000 n 0007526090 00000 n 0007526229 00000 n 0007526368 00000 n 0007526507 00000 n 0007526646 00000 n 0007526785 00000 n 0007526924 00000 n 0007527063 00000 n 0007527202 00000 n 0007527341 00000 n 0007527480 00000 n 0007527619 00000 n 0007527758 00000 n 0007527897 00000 n 0007528036 00000 n 0007528175 00000 n 0007528314 00000 n 0007528453 00000 n 0007528592 00000 n 0007528731 00000 n 0007528870 00000 n 0007529009 00000 n 0007529148 00000 n 0007529287 00000 n 0007529426 00000 n 0007529565 00000 n 0007529704 00000 n 0007529843 00000 n 0007529982 00000 n 0007530121 00000 n 0007530260 00000 n 0007530399 00000 n 0007530538 00000 n 0007530677 00000 n 0007530816 00000 n 0007530955 00000 n 0007531094 00000 n 0007531233 00000 n 0007531372 00000 n 0007531511 00000 n 0007531650 00000 n 0007531789 00000 n 0007531928 00000 n 0007532067 00000 n 0007532206 00000 n 0007532345 00000 n 0007532484 00000 n 0007532623 00000 n 0007532762 00000 n 0007532901 00000 n 0007533040 00000 n 0007533179 00000 n 0007533318 00000 n 0007533457 00000 n 0007533596 00000 n 0007533735 00000 n 0007533874 00000 n 0007534013 00000 n 0007534152 00000 n 0007534291 00000 n 0007534430 00000 n 0007534569 00000 n 0007534708 00000 n 0007534847 00000 n 0007534986 00000 n 0007535125 00000 n 0007535264 00000 n 0007535403 00000 n 0007535542 00000 n 0007535681 00000 n 0007535820 00000 n 0007535959 00000 n 0007536098 00000 n 0007536237 00000 n 0007536376 00000 n 0007536515 00000 n 0007536654 00000 n 0007536793 00000 n 0007536932 00000 n 0007537071 00000 n 0007537210 00000 n 0007537349 00000 n 0007537488 00000 n 0007537627 00000 n 0007537766 00000 n 0007537905 00000 n 0007538044 00000 n 0007538183 00000 n 0007538322 00000 n 0007538461 00000 n 0007538600 00000 n 0007538739 00000 n 0007538878 00000 n 0007539017 00000 n 0007539156 00000 n 0007539295 00000 n 0007539434 00000 n 0007539573 00000 n 0007539712 00000 n 0007539851 00000 n 0007539990 00000 n 0007540129 00000 n 0007540268 00000 n 0007540407 00000 n 0007540546 00000 n 0007540685 00000 n 0007540824 00000 n 0007540963 00000 n 0007541102 00000 n 0007541241 00000 n 0007541380 00000 n 0007541519 00000 n 0007541658 00000 n 0007541797 00000 n 0007541936 00000 n 0007542075 00000 n 0007542214 00000 n 0007542353 00000 n 0007542492 00000 n 0007542631 00000 n 0007542770 00000 n 0007542909 00000 n 0007543048 00000 n 0007543187 00000 n 0007543326 00000 n 0007543465 00000 n 0007543604 00000 n 0007543743 00000 n 0007543882 00000 n 0007544021 00000 n 0007544160 00000 n 0007544299 00000 n 0007544438 00000 n 0007544577 00000 n 0007544716 00000 n 0007544855 00000 n 0007544994 00000 n 0007545133 00000 n 0007545272 00000 n 0007545411 00000 n 0007545550 00000 n 0007545689 00000 n 0007545828 00000 n 0007545967 00000 n 0007546106 00000 n 0007546245 00000 n 0007546384 00000 n 0007546523 00000 n 0007546662 00000 n 0007546801 00000 n 0007546940 00000 n 0007546983 00000 n 0007547026 00000 n 0007547069 00000 n 0007547112 00000 n 0007547155 00000 n 0007547198 00000 n 0007547241 00000 n 0007547284 00000 n 0007547327 00000 n 0007547370 00000 n 0007547413 00000 n 0007547456 00000 n 0007547499 00000 n 0007547542 00000 n 0007547585 00000 n 0007547628 00000 n 0007547671 00000 n 0007547714 00000 n 0007547757 00000 n 0007547800 00000 n 0007547843 00000 n 0007547886 00000 n 0007547929 00000 n 0007547972 00000 n 0007548015 00000 n 0007548058 00000 n 0007548101 00000 n 0007548144 00000 n 0007548187 00000 n 0007548230 00000 n 0007548273 00000 n 0007548316 00000 n 0007548359 00000 n 0007548402 00000 n 0007548445 00000 n 0007548488 00000 n 0007548531 00000 n 0007548574 00000 n 0007548617 00000 n 0007548660 00000 n 0007548703 00000 n 0007548746 00000 n 0007548789 00000 n 0007548832 00000 n 0007548875 00000 n 0007548918 00000 n 0007548961 00000 n 0007549004 00000 n 0007549047 00000 n 0007549090 00000 n 0007549133 00000 n 0007549176 00000 n 0007549219 00000 n 0007549262 00000 n 0007549305 00000 n 0007549348 00000 n 0007549391 00000 n 0007549434 00000 n 0007549477 00000 n 0007549520 00000 n 0007549563 00000 n 0007549606 00000 n 0007549649 00000 n 0007549692 00000 n 0007549735 00000 n 0007549778 00000 n 0007549821 00000 n 0007549864 00000 n 0007549907 00000 n 0007549950 00000 n 0007549993 00000 n 0007550036 00000 n 0007550079 00000 n 0007550122 00000 n 0007550165 00000 n 0007550208 00000 n 0007550251 00000 n 0007550294 00000 n 0007550337 00000 n 0007550380 00000 n 0007550423 00000 n 0007550466 00000 n 0007550509 00000 n 0007550552 00000 n 0007550595 00000 n 0007550638 00000 n 0007550681 00000 n 0007550724 00000 n 0007550767 00000 n 0007550810 00000 n 0007550853 00000 n 0007550896 00000 n 0007550939 00000 n 0007550982 00000 n 0007551025 00000 n 0007551068 00000 n 0007551111 00000 n 0007551154 00000 n 0007551197 00000 n 0007551240 00000 n 0007551283 00000 n 0007551326 00000 n 0007551369 00000 n 0007551412 00000 n 0007551455 00000 n 0007551498 00000 n 0007551541 00000 n 0007551584 00000 n 0007551627 00000 n 0007551670 00000 n 0007551713 00000 n 0007551756 00000 n 0007551799 00000 n 0007551842 00000 n 0007551885 00000 n 0007551928 00000 n 0007551971 00000 n 0007552014 00000 n 0007552057 00000 n 0007552100 00000 n 0007552143 00000 n 0007552186 00000 n 0007552229 00000 n 0007552272 00000 n 0007552315 00000 n 0007552358 00000 n 0007552401 00000 n 0007552444 00000 n 0007552487 00000 n 0007552530 00000 n 0007552573 00000 n 0007552616 00000 n 0007552659 00000 n 0007552702 00000 n 0007552745 00000 n 0007552788 00000 n 0007552831 00000 n 0007552874 00000 n 0007552917 00000 n 0007552960 00000 n 0007553003 00000 n 0007553046 00000 n 0007553089 00000 n 0007553132 00000 n 0007553175 00000 n 0007553218 00000 n 0007553261 00000 n 0007553304 00000 n 0007553347 00000 n 0007553390 00000 n 0007553433 00000 n 0007553476 00000 n 0007553519 00000 n 0007553562 00000 n 0007553605 00000 n 0007553648 00000 n 0007553691 00000 n 0007553734 00000 n 0007553777 00000 n 0007553820 00000 n 0007553863 00000 n 0007553906 00000 n 0007553949 00000 n 0007553992 00000 n 0007554035 00000 n 0007554078 00000 n 0007554121 00000 n 0007554164 00000 n 0007554207 00000 n 0007554250 00000 n 0007554293 00000 n 0007554336 00000 n 0007554379 00000 n 0007554422 00000 n 0007554465 00000 n 0007554508 00000 n 0007554551 00000 n 0007554594 00000 n 0007554637 00000 n 0007554680 00000 n 0007554723 00000 n 0007554766 00000 n 0007554809 00000 n 0007554852 00000 n 0007554895 00000 n 0007554938 00000 n 0007554981 00000 n 0007555024 00000 n 0007555067 00000 n 0007555110 00000 n 0007555153 00000 n 0007555196 00000 n 0007555239 00000 n 0007555282 00000 n 0007555325 00000 n 0007555368 00000 n 0007555411 00000 n 0007555454 00000 n 0007555497 00000 n 0007555828 00000 n 0007556250 00000 n 0007556293 00000 n 0007556336 00000 n 0007556379 00000 n 0007556422 00000 n 0007556465 00000 n 0007556533 00000 n 0007556753 00000 n 0007556852 00000 n 0007558895 00000 n 0007559226 00000 n 0007559648 00000 n 0007559691 00000 n 0007559759 00000 n 0007560008 00000 n 0007560107 00000 n 0007563803 00000 n 0007564134 00000 n 0007564556 00000 n 0007564599 00000 n 0007564642 00000 n 0007564685 00000 n 0007564728 00000 n 0007564771 00000 n 0007564815 00000 n 0007564858 00000 n 0007564901 00000 n 0007564944 00000 n 0007564988 00000 n 0007565032 00000 n 0007565076 00000 n 0007565120 00000 n 0007565188 00000 n 0007565481 00000 n 0007565580 00000 n 0007567355 00000 n 0007567522 00000 n 0007567853 00000 n 0007568275 00000 n 0007568319 00000 n 0007568362 00000 n 0007568430 00000 n 0007568664 00000 n 0007568763 00000 n 0007572493 00000 n 0007572824 00000 n 0007573246 00000 n 0007573289 00000 n 0007573333 00000 n 0007573376 00000 n 0007573420 00000 n 0007573464 00000 n 0007573488 00000 n 0007573817 00000 n 0007573897 00000 n 0007575431 00000 n 0007575473 00000 n 0007578733 00000 n 0007578774 00000 n 0007578842 00000 n 0007579091 00000 n 0007579190 00000 n 0007582870 00000 n 0007583201 00000 n 0007583623 00000 n 0007583954 00000 n 0007584376 00000 n 0007584419 00000 n 0007584463 00000 n 0007584507 00000 n 0007584550 00000 n 0007584618 00000 n 0007584867 00000 n 0007584966 00000 n 0007589577 00000 n 0007589743 00000 n 0007589785 00000 n 0007590116 00000 n 0007590538 00000 n 0007590582 00000 n 0007590626 00000 n 0007590669 00000 n 0007590713 00000 n 0007590757 00000 n 0007590801 00000 n 0007590842 00000 n 0007592165 00000 n 0007592233 00000 n 0007592482 00000 n 0007592581 00000 n 0007597132 00000 n 0007597463 00000 n 0007597885 00000 n 0007597953 00000 n 0007598173 00000 n 0007598272 00000 n 0007602190 00000 n 0007602329 00000 n 0007602468 00000 n 0007602607 00000 n 0007602746 00000 n 0007602885 00000 n 0007603024 00000 n 0007603163 00000 n 0007603302 00000 n 0007603441 00000 n 0007603580 00000 n 0007603719 00000 n 0007603858 00000 n 0007603997 00000 n 0007604136 00000 n 0007604275 00000 n 0007604414 00000 n 0007604553 00000 n 0007604692 00000 n 0007604831 00000 n 0007604970 00000 n 0007605109 00000 n 0007605248 00000 n 0007605387 00000 n 0007605526 00000 n 0007605665 00000 n 0007605804 00000 n 0007605943 00000 n 0007606082 00000 n 0007606221 00000 n 0007606360 00000 n 0007606499 00000 n 0007606638 00000 n 0007606777 00000 n 0007606916 00000 n 0007607055 00000 n 0007607194 00000 n 0007607333 00000 n 0007607472 00000 n 0007607611 00000 n 0007607750 00000 n 0007607889 00000 n 0007608028 00000 n 0007608167 00000 n 0007608306 00000 n 0007608445 00000 n 0007608584 00000 n 0007608723 00000 n 0007608862 00000 n 0007609001 00000 n 0007609140 00000 n 0007609279 00000 n 0007609418 00000 n 0007609557 00000 n 0007609696 00000 n 0007609835 00000 n 0007609974 00000 n 0007610113 00000 n 0007610252 00000 n 0007610391 00000 n 0007610530 00000 n 0007610669 00000 n 0007610808 00000 n 0007610947 00000 n 0007611086 00000 n 0007611225 00000 n 0007611364 00000 n 0007611503 00000 n 0007611642 00000 n 0007611781 00000 n 0007611920 00000 n 0007612059 00000 n 0007612198 00000 n 0007612337 00000 n 0007612476 00000 n 0007612615 00000 n 0007612754 00000 n 0007612893 00000 n 0007613032 00000 n 0007613171 00000 n 0007613310 00000 n 0007613449 00000 n 0007613588 00000 n 0007613727 00000 n 0007613866 00000 n 0007614005 00000 n 0007614144 00000 n 0007614283 00000 n 0007614422 00000 n 0007614561 00000 n 0007614700 00000 n 0007614839 00000 n 0007614978 00000 n 0007615117 00000 n 0007615256 00000 n 0007615395 00000 n 0007615534 00000 n 0007615673 00000 n 0007615812 00000 n 0007615951 00000 n 0007616090 00000 n 0007616229 00000 n 0007616368 00000 n 0007616507 00000 n 0007616646 00000 n 0007616785 00000 n 0007616924 00000 n 0007617063 00000 n 0007617202 00000 n 0007617341 00000 n 0007617480 00000 n 0007617619 00000 n 0007617758 00000 n 0007617897 00000 n 0007618036 00000 n 0007618175 00000 n 0007618314 00000 n 0007618453 00000 n 0007618592 00000 n 0007618731 00000 n 0007618870 00000 n 0007619009 00000 n 0007619148 00000 n 0007619287 00000 n 0007619426 00000 n 0007619565 00000 n 0007619704 00000 n 0007619843 00000 n 0007619982 00000 n 0007620121 00000 n 0007620260 00000 n 0007620399 00000 n 0007620538 00000 n 0007620677 00000 n 0007620816 00000 n 0007620955 00000 n 0007621094 00000 n 0007621233 00000 n 0007621372 00000 n 0007621511 00000 n 0007621650 00000 n 0007621789 00000 n 0007621928 00000 n 0007622067 00000 n 0007622206 00000 n 0007622345 00000 n 0007622484 00000 n 0007622623 00000 n 0007622762 00000 n 0007622901 00000 n 0007623040 00000 n 0007623179 00000 n 0007623318 00000 n 0007623457 00000 n 0007623596 00000 n 0007623735 00000 n 0007623874 00000 n 0007624013 00000 n 0007624152 00000 n 0007624291 00000 n 0007624430 00000 n 0007624569 00000 n 0007624708 00000 n 0007624847 00000 n 0007624986 00000 n 0007625125 00000 n 0007625264 00000 n 0007625403 00000 n 0007625542 00000 n 0007625681 00000 n 0007625820 00000 n 0007625959 00000 n 0007626098 00000 n 0007626237 00000 n 0007626376 00000 n 0007626515 00000 n 0007626654 00000 n 0007626793 00000 n 0007626932 00000 n 0007627071 00000 n 0007627210 00000 n 0007627349 00000 n 0007627488 00000 n 0007627627 00000 n 0007627766 00000 n 0007627905 00000 n 0007628044 00000 n 0007628183 00000 n 0007628322 00000 n 0007628461 00000 n 0007628600 00000 n 0007628739 00000 n 0007628878 00000 n 0007629017 00000 n 0007629156 00000 n 0007629295 00000 n 0007629434 00000 n 0007629573 00000 n 0007629712 00000 n 0007629851 00000 n 0007629990 00000 n 0007630129 00000 n 0007630268 00000 n 0007630407 00000 n 0007630546 00000 n 0007630685 00000 n 0007630824 00000 n 0007630963 00000 n 0007631102 00000 n 0007631241 00000 n 0007631380 00000 n 0007631519 00000 n 0007631658 00000 n 0007631797 00000 n 0007631936 00000 n 0007632075 00000 n 0007632214 00000 n 0007632353 00000 n 0007632492 00000 n 0007632631 00000 n 0007632770 00000 n 0007632909 00000 n 0007633048 00000 n 0007633187 00000 n 0007633326 00000 n 0007633465 00000 n 0007633604 00000 n 0007633743 00000 n 0007633882 00000 n 0007634021 00000 n 0007634160 00000 n 0007634299 00000 n 0007634438 00000 n 0007634577 00000 n 0007634716 00000 n 0007634855 00000 n 0007634994 00000 n 0007635133 00000 n 0007635272 00000 n 0007635411 00000 n 0007635550 00000 n 0007635689 00000 n 0007635828 00000 n 0007635967 00000 n 0007636106 00000 n 0007636245 00000 n 0007636384 00000 n 0007636523 00000 n 0007636662 00000 n 0007636801 00000 n 0007636940 00000 n 0007637079 00000 n 0007637218 00000 n 0007637357 00000 n 0007637496 00000 n 0007637635 00000 n 0007637774 00000 n 0007637913 00000 n 0007638052 00000 n 0007638191 00000 n 0007638330 00000 n 0007638469 00000 n 0007638608 00000 n 0007638747 00000 n 0007638886 00000 n 0007639025 00000 n 0007639164 00000 n 0007639303 00000 n 0007639442 00000 n 0007639581 00000 n 0007639720 00000 n 0007639859 00000 n 0007639998 00000 n 0007640137 00000 n 0007640276 00000 n 0007640415 00000 n 0007640554 00000 n 0007640693 00000 n 0007640832 00000 n 0007640971 00000 n 0007641110 00000 n 0007641249 00000 n 0007641388 00000 n 0007641527 00000 n 0007641570 00000 n 0007641613 00000 n 0007641656 00000 n 0007641699 00000 n 0007641742 00000 n 0007641785 00000 n 0007641828 00000 n 0007641871 00000 n 0007641914 00000 n 0007641957 00000 n 0007642000 00000 n 0007642043 00000 n 0007642086 00000 n 0007642129 00000 n 0007642172 00000 n 0007642215 00000 n 0007642258 00000 n 0007642301 00000 n 0007642344 00000 n 0007642387 00000 n 0007642430 00000 n 0007642473 00000 n 0007642516 00000 n 0007642559 00000 n 0007642602 00000 n 0007642645 00000 n 0007642688 00000 n 0007642731 00000 n 0007642774 00000 n 0007642817 00000 n 0007642860 00000 n 0007642903 00000 n 0007642946 00000 n 0007642989 00000 n 0007643032 00000 n 0007643075 00000 n 0007643118 00000 n 0007643161 00000 n 0007643204 00000 n 0007643247 00000 n 0007643290 00000 n 0007643333 00000 n 0007643376 00000 n 0007643419 00000 n 0007643462 00000 n 0007643505 00000 n 0007643548 00000 n 0007643591 00000 n 0007643634 00000 n 0007643677 00000 n 0007643720 00000 n 0007643763 00000 n 0007643806 00000 n 0007643849 00000 n 0007643892 00000 n 0007643935 00000 n 0007643978 00000 n 0007644021 00000 n 0007644064 00000 n 0007644107 00000 n 0007644150 00000 n 0007644193 00000 n 0007644236 00000 n 0007644279 00000 n 0007644322 00000 n 0007644365 00000 n 0007644408 00000 n 0007644451 00000 n 0007644494 00000 n 0007644537 00000 n 0007644580 00000 n 0007644623 00000 n 0007644666 00000 n 0007644709 00000 n 0007644752 00000 n 0007644795 00000 n 0007644838 00000 n 0007644881 00000 n 0007644924 00000 n 0007644967 00000 n 0007645010 00000 n 0007645053 00000 n 0007645096 00000 n 0007645139 00000 n 0007645182 00000 n 0007645225 00000 n 0007645268 00000 n 0007645311 00000 n 0007645354 00000 n 0007645397 00000 n 0007645440 00000 n 0007645483 00000 n 0007645526 00000 n 0007645569 00000 n 0007645612 00000 n 0007645655 00000 n 0007645698 00000 n 0007645741 00000 n 0007645784 00000 n 0007645827 00000 n 0007645870 00000 n 0007645913 00000 n 0007645956 00000 n 0007645999 00000 n 0007646042 00000 n 0007646085 00000 n 0007646128 00000 n 0007646171 00000 n 0007646214 00000 n 0007646257 00000 n 0007646300 00000 n 0007646343 00000 n 0007646386 00000 n 0007646429 00000 n 0007646472 00000 n 0007646515 00000 n 0007646558 00000 n 0007646601 00000 n 0007646644 00000 n 0007646687 00000 n 0007646730 00000 n 0007646773 00000 n 0007646816 00000 n 0007646859 00000 n 0007646902 00000 n 0007646945 00000 n 0007646988 00000 n 0007647031 00000 n 0007647074 00000 n 0007647117 00000 n 0007647160 00000 n 0007647203 00000 n 0007647246 00000 n 0007647289 00000 n 0007647332 00000 n 0007647375 00000 n 0007647418 00000 n 0007647461 00000 n 0007647504 00000 n 0007647547 00000 n 0007647590 00000 n 0007647633 00000 n 0007647676 00000 n 0007647719 00000 n 0007647762 00000 n 0007647805 00000 n 0007647848 00000 n 0007647891 00000 n 0007647934 00000 n 0007647977 00000 n 0007648020 00000 n 0007648063 00000 n 0007648106 00000 n 0007648149 00000 n 0007648192 00000 n 0007648235 00000 n 0007648278 00000 n 0007648321 00000 n 0007648364 00000 n 0007648407 00000 n 0007648450 00000 n 0007648493 00000 n 0007648536 00000 n 0007648579 00000 n 0007648622 00000 n 0007648665 00000 n 0007648708 00000 n 0007648751 00000 n 0007648794 00000 n 0007648837 00000 n 0007648880 00000 n 0007648923 00000 n 0007648966 00000 n 0007649009 00000 n 0007649052 00000 n 0007649095 00000 n 0007649138 00000 n 0007649181 00000 n 0007649224 00000 n 0007649267 00000 n 0007649310 00000 n 0007649353 00000 n 0007649396 00000 n 0007649439 00000 n 0007649482 00000 n 0007649525 00000 n 0007649568 00000 n 0007649611 00000 n 0007649654 00000 n 0007649697 00000 n 0007649740 00000 n 0007649783 00000 n 0007649826 00000 n 0007649869 00000 n 0007649912 00000 n 0007649955 00000 n 0007649998 00000 n 0007650041 00000 n 0007650084 00000 n 0007650127 00000 n 0007650458 00000 n 0007650880 00000 n 0007650923 00000 n 0007650967 00000 n 0007651010 00000 n 0007651051 00000 n 0007651095 00000 n 0007651138 00000 n 0007651181 00000 n 0007651225 00000 n 0007651269 00000 n 0007651337 00000 n 0007651614 00000 n 0007651713 00000 n 0007655487 00000 n 0007655818 00000 n 0007656240 00000 n 0007656284 00000 n 0007656352 00000 n 0007656542 00000 n 0007656641 00000 n 0007656859 00000 n 0007657190 00000 n 0007657612 00000 n 0007657656 00000 n 0007657700 00000 n 0007657743 00000 n 0007657787 00000 n 0007657831 00000 n 0007657874 00000 n 0007657918 00000 n 0007657959 00000 n 0007658027 00000 n 0007658247 00000 n 0007658346 00000 n 0007660759 00000 n 0007661090 00000 n 0007661512 00000 n 0007661555 00000 n 0007661598 00000 n 0007661641 00000 n 0007661685 00000 n 0007661728 00000 n 0007661771 00000 n 0007661814 00000 n 0007661857 00000 n 0007661901 00000 n 0007661969 00000 n 0007662246 00000 n 0007662345 00000 n 0007665348 00000 n 0007665513 00000 n 0007665555 00000 n 0007665623 00000 n 0007665857 00000 n 0007665956 00000 n 0007670276 00000 n 0007670442 00000 n 0007670773 00000 n 0007671195 00000 n 0007671239 00000 n 0007671282 00000 n 0007671325 00000 n 0007671369 00000 n 0007671413 00000 n 0007671457 00000 n 0007671500 00000 n 0007671543 00000 n 0007671587 00000 n 0007671655 00000 n 0007671920 00000 n 0007672019 00000 n 0007674105 00000 n 0007674271 00000 n 0007674437 00000 n 0007674602 00000 n 0007674644 00000 n 0007674686 00000 n 0007674728 00000 n 0007675059 00000 n 0007675481 00000 n 0007675523 00000 n 0007675567 00000 n 0007675635 00000 n 0007675884 00000 n 0007675983 00000 n 0007680487 00000 n 0007680653 00000 n 0007680695 00000 n 0007681026 00000 n 0007681448 00000 n 0007681491 00000 n 0007681534 00000 n 0007681865 00000 n 0007682287 00000 n 0007682355 00000 n 0007682590 00000 n 0007682689 00000 n 0007686818 00000 n 0007686957 00000 n 0007687096 00000 n 0007687235 00000 n 0007687374 00000 n 0007687513 00000 n 0007687652 00000 n 0007687791 00000 n 0007687930 00000 n 0007688069 00000 n 0007688208 00000 n 0007688347 00000 n 0007688486 00000 n 0007688625 00000 n 0007688764 00000 n 0007688903 00000 n 0007689042 00000 n 0007689181 00000 n 0007689320 00000 n 0007689459 00000 n 0007689598 00000 n 0007689737 00000 n 0007689876 00000 n 0007690015 00000 n 0007690154 00000 n 0007690293 00000 n 0007690432 00000 n 0007690571 00000 n 0007690710 00000 n 0007690849 00000 n 0007690988 00000 n 0007691127 00000 n 0007691266 00000 n 0007691405 00000 n 0007691544 00000 n 0007691683 00000 n 0007691822 00000 n 0007691961 00000 n 0007692100 00000 n 0007692239 00000 n 0007692378 00000 n 0007692517 00000 n 0007692656 00000 n 0007692795 00000 n 0007692934 00000 n 0007693073 00000 n 0007693212 00000 n 0007693351 00000 n 0007693490 00000 n 0007693629 00000 n 0007693768 00000 n 0007693907 00000 n 0007694046 00000 n 0007694185 00000 n 0007694324 00000 n 0007694463 00000 n 0007694602 00000 n 0007694741 00000 n 0007694880 00000 n 0007695019 00000 n 0007695158 00000 n 0007695297 00000 n 0007695436 00000 n 0007695575 00000 n 0007695714 00000 n 0007695853 00000 n 0007695992 00000 n 0007696131 00000 n 0007696270 00000 n 0007696409 00000 n 0007696548 00000 n 0007696687 00000 n 0007696826 00000 n 0007696965 00000 n 0007697104 00000 n 0007697243 00000 n 0007697382 00000 n 0007697521 00000 n 0007697660 00000 n 0007697799 00000 n 0007697938 00000 n 0007698077 00000 n 0007698216 00000 n 0007698355 00000 n 0007698494 00000 n 0007698633 00000 n 0007698772 00000 n 0007698911 00000 n 0007699050 00000 n 0007699189 00000 n 0007699328 00000 n 0007699467 00000 n 0007699606 00000 n 0007699745 00000 n 0007699884 00000 n 0007700023 00000 n 0007700162 00000 n 0007700301 00000 n 0007700440 00000 n 0007700579 00000 n 0007700718 00000 n 0007700857 00000 n 0007700996 00000 n 0007701135 00000 n 0007701274 00000 n 0007701413 00000 n 0007701552 00000 n 0007701691 00000 n 0007701830 00000 n 0007701969 00000 n 0007702108 00000 n 0007702247 00000 n 0007702386 00000 n 0007702525 00000 n 0007702664 00000 n 0007702803 00000 n 0007702942 00000 n 0007703081 00000 n 0007703220 00000 n 0007703359 00000 n 0007703498 00000 n 0007703637 00000 n 0007703776 00000 n 0007703915 00000 n 0007704054 00000 n 0007704193 00000 n 0007704332 00000 n 0007704471 00000 n 0007704610 00000 n 0007704749 00000 n 0007704888 00000 n 0007705027 00000 n 0007705166 00000 n 0007705305 00000 n 0007705444 00000 n 0007705583 00000 n 0007705722 00000 n 0007705861 00000 n 0007706000 00000 n 0007706139 00000 n 0007706278 00000 n 0007706417 00000 n 0007706556 00000 n 0007706695 00000 n 0007706834 00000 n 0007706973 00000 n 0007707112 00000 n 0007707251 00000 n 0007707390 00000 n 0007707529 00000 n 0007707668 00000 n 0007707807 00000 n 0007707946 00000 n 0007708085 00000 n 0007708224 00000 n 0007708363 00000 n 0007708502 00000 n 0007708641 00000 n 0007708780 00000 n 0007708919 00000 n 0007709058 00000 n 0007709197 00000 n 0007709336 00000 n 0007709475 00000 n 0007709614 00000 n 0007709753 00000 n 0007709892 00000 n 0007710031 00000 n 0007710170 00000 n 0007710309 00000 n 0007710448 00000 n 0007710587 00000 n 0007710726 00000 n 0007710865 00000 n 0007711004 00000 n 0007711143 00000 n 0007711282 00000 n 0007711421 00000 n 0007711560 00000 n 0007711699 00000 n 0007711838 00000 n 0007711977 00000 n 0007712116 00000 n 0007712255 00000 n 0007712394 00000 n 0007712533 00000 n 0007712672 00000 n 0007712811 00000 n 0007712950 00000 n 0007713089 00000 n 0007713228 00000 n 0007713367 00000 n 0007713506 00000 n 0007713645 00000 n 0007713784 00000 n 0007713923 00000 n 0007714062 00000 n 0007714201 00000 n 0007714340 00000 n 0007714479 00000 n 0007714618 00000 n 0007714757 00000 n 0007714896 00000 n 0007715035 00000 n 0007715174 00000 n 0007715313 00000 n 0007715452 00000 n 0007715591 00000 n 0007715730 00000 n 0007715869 00000 n 0007716008 00000 n 0007716147 00000 n 0007716286 00000 n 0007716425 00000 n 0007716564 00000 n 0007716703 00000 n 0007716842 00000 n 0007716981 00000 n 0007717120 00000 n 0007717259 00000 n 0007717398 00000 n 0007717537 00000 n 0007717676 00000 n 0007717815 00000 n 0007717954 00000 n 0007718093 00000 n 0007718232 00000 n 0007718371 00000 n 0007718510 00000 n 0007718649 00000 n 0007718788 00000 n 0007718927 00000 n 0007719066 00000 n 0007719205 00000 n 0007719344 00000 n 0007719483 00000 n 0007719622 00000 n 0007719761 00000 n 0007719900 00000 n 0007720039 00000 n 0007720178 00000 n 0007720317 00000 n 0007720456 00000 n 0007720595 00000 n 0007720734 00000 n 0007720873 00000 n 0007721012 00000 n 0007721151 00000 n 0007721290 00000 n 0007721429 00000 n 0007721568 00000 n 0007721707 00000 n 0007721846 00000 n 0007721985 00000 n 0007722124 00000 n 0007722263 00000 n 0007722402 00000 n 0007722541 00000 n 0007722680 00000 n 0007722819 00000 n 0007722958 00000 n 0007723097 00000 n 0007723236 00000 n 0007723375 00000 n 0007723514 00000 n 0007723653 00000 n 0007723792 00000 n 0007723931 00000 n 0007724070 00000 n 0007724209 00000 n 0007724348 00000 n 0007724391 00000 n 0007724434 00000 n 0007724477 00000 n 0007724520 00000 n 0007724563 00000 n 0007724606 00000 n 0007724649 00000 n 0007724692 00000 n 0007724735 00000 n 0007724778 00000 n 0007724821 00000 n 0007724864 00000 n 0007724907 00000 n 0007724950 00000 n 0007724993 00000 n 0007725036 00000 n 0007725079 00000 n 0007725122 00000 n 0007725165 00000 n 0007725208 00000 n 0007725251 00000 n 0007725294 00000 n 0007725337 00000 n 0007725380 00000 n 0007725423 00000 n 0007725466 00000 n 0007725509 00000 n 0007725552 00000 n 0007725595 00000 n 0007725638 00000 n 0007725681 00000 n 0007725724 00000 n 0007725767 00000 n 0007725810 00000 n 0007725853 00000 n 0007725896 00000 n 0007725939 00000 n 0007725982 00000 n 0007726025 00000 n 0007726068 00000 n 0007726111 00000 n 0007726154 00000 n 0007726197 00000 n 0007726240 00000 n 0007726283 00000 n 0007726326 00000 n 0007726369 00000 n 0007726412 00000 n 0007726455 00000 n 0007726498 00000 n 0007726541 00000 n 0007726584 00000 n 0007726627 00000 n 0007726670 00000 n 0007726713 00000 n 0007726756 00000 n 0007726799 00000 n 0007726842 00000 n 0007726885 00000 n 0007726928 00000 n 0007726971 00000 n 0007727014 00000 n 0007727057 00000 n 0007727100 00000 n 0007727143 00000 n 0007727186 00000 n 0007727229 00000 n 0007727272 00000 n 0007727315 00000 n 0007727358 00000 n 0007727401 00000 n 0007727444 00000 n 0007727487 00000 n 0007727530 00000 n 0007727573 00000 n 0007727616 00000 n 0007727659 00000 n 0007727702 00000 n 0007727745 00000 n 0007727788 00000 n 0007727831 00000 n 0007727874 00000 n 0007727917 00000 n 0007727960 00000 n 0007728003 00000 n 0007728046 00000 n 0007728089 00000 n 0007728132 00000 n 0007728175 00000 n 0007728218 00000 n 0007728261 00000 n 0007728304 00000 n 0007728347 00000 n 0007728390 00000 n 0007728433 00000 n 0007728476 00000 n 0007728519 00000 n 0007728562 00000 n 0007728605 00000 n 0007728648 00000 n 0007728691 00000 n 0007728734 00000 n 0007728777 00000 n 0007728820 00000 n 0007728863 00000 n 0007728906 00000 n 0007728949 00000 n 0007728992 00000 n 0007729035 00000 n 0007729078 00000 n 0007729121 00000 n 0007729164 00000 n 0007729207 00000 n 0007729250 00000 n 0007729293 00000 n 0007729336 00000 n 0007729379 00000 n 0007729422 00000 n 0007729465 00000 n 0007729508 00000 n 0007729551 00000 n 0007729594 00000 n 0007729637 00000 n 0007729680 00000 n 0007729723 00000 n 0007729766 00000 n 0007729809 00000 n 0007729852 00000 n 0007729895 00000 n 0007729938 00000 n 0007729981 00000 n 0007730024 00000 n 0007730067 00000 n 0007730110 00000 n 0007730153 00000 n 0007730196 00000 n 0007730239 00000 n 0007730282 00000 n 0007730325 00000 n 0007730368 00000 n 0007730411 00000 n 0007730454 00000 n 0007730497 00000 n 0007730540 00000 n 0007730583 00000 n 0007730626 00000 n 0007730669 00000 n 0007730712 00000 n 0007730755 00000 n 0007730798 00000 n 0007730841 00000 n 0007730884 00000 n 0007730927 00000 n 0007730970 00000 n 0007731013 00000 n 0007731056 00000 n 0007731099 00000 n 0007731142 00000 n 0007731185 00000 n 0007731228 00000 n 0007731271 00000 n 0007731314 00000 n 0007731357 00000 n 0007731400 00000 n 0007731443 00000 n 0007731486 00000 n 0007731529 00000 n 0007731572 00000 n 0007731615 00000 n 0007731658 00000 n 0007731701 00000 n 0007731744 00000 n 0007731787 00000 n 0007731830 00000 n 0007731873 00000 n 0007731916 00000 n 0007731959 00000 n 0007732002 00000 n 0007732045 00000 n 0007732088 00000 n 0007732131 00000 n 0007732174 00000 n 0007732217 00000 n 0007732260 00000 n 0007732303 00000 n 0007732346 00000 n 0007732389 00000 n 0007732432 00000 n 0007732475 00000 n 0007732518 00000 n 0007732561 00000 n 0007732604 00000 n 0007732647 00000 n 0007732690 00000 n 0007732733 00000 n 0007732776 00000 n 0007732819 00000 n 0007732862 00000 n 0007732905 00000 n 0007732948 00000 n 0007732991 00000 n 0007733034 00000 n 0007733077 00000 n 0007733120 00000 n 0007733163 00000 n 0007733206 00000 n 0007733249 00000 n 0007733292 00000 n 0007733335 00000 n 0007733378 00000 n 0007733421 00000 n 0007733464 00000 n 0007733507 00000 n 0007733550 00000 n 0007733593 00000 n 0007733636 00000 n 0007733679 00000 n 0007733722 00000 n 0007733765 00000 n 0007733808 00000 n 0007733851 00000 n 0007733894 00000 n 0007734225 00000 n 0007734647 00000 n 0007734690 00000 n 0007734734 00000 n 0007734802 00000 n 0007735065 00000 n 0007735164 00000 n 0007739314 00000 n 0007739478 00000 n 0007739521 00000 n 0007739852 00000 n 0007740274 00000 n 0007740317 00000 n 0007740361 00000 n 0007740405 00000 n 0007740640 00000 n 0007740682 00000 n 0007741011 00000 n 0007743735 00000 n 0007743777 00000 n 0007743820 00000 n 0007743864 00000 n 0007743907 00000 n 0007743951 00000 n 0007743995 00000 n 0007744039 00000 n 0007744082 00000 n 0007744150 00000 n 0007744384 00000 n 0007744483 00000 n 0007749000 00000 n 0007749331 00000 n 0007749753 00000 n 0007749796 00000 n 0007749839 00000 n 0007749882 00000 n 0007749925 00000 n 0007749966 00000 n 0007750010 00000 n 0007750355 00000 n 0007750398 00000 n 0007750442 00000 n 0007750485 00000 n 0007750553 00000 n 0007750773 00000 n 0007750872 00000 n 0007755374 00000 n 0007755705 00000 n 0007756127 00000 n 0007756171 00000 n 0007756215 00000 n 0007756283 00000 n 0007756503 00000 n 0007756602 00000 n 0007759198 00000 n 0007759529 00000 n 0007759951 00000 n 0007759995 00000 n 0007760039 00000 n 0007760082 00000 n 0007760123 00000 n 0007760191 00000 n 0007760440 00000 n 0007760539 00000 n 0007763953 00000 n 0007764119 00000 n 0007764161 00000 n 0007764492 00000 n 0007764914 00000 n 0007764982 00000 n 0007765245 00000 n 0007765344 00000 n 0007769942 00000 n 0007770109 00000 n 0007770152 00000 n 0007770483 00000 n 0007770905 00000 n 0007770973 00000 n 0007771208 00000 n 0007771307 00000 n 0007775730 00000 n 0007775869 00000 n 0007776008 00000 n 0007776147 00000 n 0007776286 00000 n 0007776425 00000 n 0007776564 00000 n 0007776703 00000 n 0007776842 00000 n 0007776981 00000 n 0007777120 00000 n 0007777259 00000 n 0007777398 00000 n 0007777537 00000 n 0007777676 00000 n 0007777815 00000 n 0007777954 00000 n 0007778093 00000 n 0007778232 00000 n 0007778371 00000 n 0007778510 00000 n 0007778649 00000 n 0007778788 00000 n 0007778927 00000 n 0007779066 00000 n 0007779205 00000 n 0007779344 00000 n 0007779483 00000 n 0007779622 00000 n 0007779761 00000 n 0007779900 00000 n 0007780039 00000 n 0007780178 00000 n 0007780317 00000 n 0007780456 00000 n 0007780595 00000 n 0007780734 00000 n 0007780873 00000 n 0007781012 00000 n 0007781151 00000 n 0007781290 00000 n 0007781429 00000 n 0007781568 00000 n 0007781707 00000 n 0007781846 00000 n 0007781985 00000 n 0007782124 00000 n 0007782263 00000 n 0007782402 00000 n 0007782541 00000 n 0007782680 00000 n 0007782819 00000 n 0007782958 00000 n 0007783097 00000 n 0007783236 00000 n 0007783375 00000 n 0007783514 00000 n 0007783653 00000 n 0007783792 00000 n 0007783931 00000 n 0007784070 00000 n 0007784209 00000 n 0007784348 00000 n 0007784487 00000 n 0007784626 00000 n 0007784765 00000 n 0007784904 00000 n 0007785043 00000 n 0007785182 00000 n 0007785321 00000 n 0007785460 00000 n 0007785599 00000 n 0007785738 00000 n 0007785877 00000 n 0007786016 00000 n 0007786155 00000 n 0007786294 00000 n 0007786433 00000 n 0007786572 00000 n 0007786711 00000 n 0007786850 00000 n 0007786989 00000 n 0007787128 00000 n 0007787267 00000 n 0007787406 00000 n 0007787545 00000 n 0007787684 00000 n 0007787823 00000 n 0007787962 00000 n 0007788101 00000 n 0007788240 00000 n 0007788379 00000 n 0007788518 00000 n 0007788657 00000 n 0007788796 00000 n 0007788935 00000 n 0007789074 00000 n 0007789213 00000 n 0007789352 00000 n 0007789491 00000 n 0007789630 00000 n 0007789769 00000 n 0007789908 00000 n 0007790047 00000 n 0007790186 00000 n 0007790325 00000 n 0007790464 00000 n 0007790603 00000 n 0007790742 00000 n 0007790881 00000 n 0007791020 00000 n 0007791159 00000 n 0007791298 00000 n 0007791437 00000 n 0007791576 00000 n 0007791715 00000 n 0007791854 00000 n 0007791993 00000 n 0007792132 00000 n 0007792271 00000 n 0007792410 00000 n 0007792549 00000 n 0007792688 00000 n 0007792827 00000 n 0007792966 00000 n 0007793105 00000 n 0007793244 00000 n 0007793383 00000 n 0007793522 00000 n 0007793661 00000 n 0007793800 00000 n 0007793939 00000 n 0007794078 00000 n 0007794217 00000 n 0007794356 00000 n 0007794495 00000 n 0007794634 00000 n 0007794773 00000 n 0007794912 00000 n 0007795051 00000 n 0007795190 00000 n 0007795329 00000 n 0007795468 00000 n 0007795607 00000 n 0007795746 00000 n 0007795885 00000 n 0007796024 00000 n 0007796163 00000 n 0007796302 00000 n 0007796441 00000 n 0007796580 00000 n 0007796719 00000 n 0007796858 00000 n 0007796997 00000 n 0007797136 00000 n 0007797275 00000 n 0007797414 00000 n 0007797553 00000 n 0007797692 00000 n 0007797831 00000 n 0007797970 00000 n 0007798109 00000 n 0007798248 00000 n 0007798387 00000 n 0007798526 00000 n 0007798665 00000 n 0007798804 00000 n 0007798943 00000 n 0007799082 00000 n 0007799221 00000 n 0007799360 00000 n 0007799499 00000 n 0007799638 00000 n 0007799777 00000 n 0007799916 00000 n 0007800055 00000 n 0007800194 00000 n 0007800333 00000 n 0007800472 00000 n 0007800611 00000 n 0007800750 00000 n 0007800889 00000 n 0007801028 00000 n 0007801167 00000 n 0007801306 00000 n 0007801445 00000 n 0007801584 00000 n 0007801723 00000 n 0007801862 00000 n 0007802001 00000 n 0007802140 00000 n 0007802279 00000 n 0007802418 00000 n 0007802557 00000 n 0007802696 00000 n 0007802835 00000 n 0007802974 00000 n 0007803113 00000 n 0007803252 00000 n 0007803391 00000 n 0007803530 00000 n 0007803669 00000 n 0007803808 00000 n 0007803947 00000 n 0007804086 00000 n 0007804225 00000 n 0007804364 00000 n 0007804503 00000 n 0007804642 00000 n 0007804781 00000 n 0007804920 00000 n 0007805059 00000 n 0007805198 00000 n 0007805337 00000 n 0007805476 00000 n 0007805615 00000 n 0007805754 00000 n 0007805893 00000 n 0007806032 00000 n 0007806171 00000 n 0007806310 00000 n 0007806449 00000 n 0007806588 00000 n 0007806727 00000 n 0007806866 00000 n 0007807005 00000 n 0007807144 00000 n 0007807283 00000 n 0007807422 00000 n 0007807561 00000 n 0007807700 00000 n 0007807839 00000 n 0007807978 00000 n 0007808117 00000 n 0007808256 00000 n 0007808395 00000 n 0007808534 00000 n 0007808673 00000 n 0007808812 00000 n 0007808951 00000 n 0007809090 00000 n 0007809229 00000 n 0007809368 00000 n 0007809507 00000 n 0007809646 00000 n 0007809785 00000 n 0007809924 00000 n 0007810063 00000 n 0007810202 00000 n 0007810341 00000 n 0007810480 00000 n 0007810619 00000 n 0007810758 00000 n 0007810897 00000 n 0007811036 00000 n 0007811175 00000 n 0007811314 00000 n 0007811453 00000 n 0007811592 00000 n 0007811731 00000 n 0007811870 00000 n 0007812009 00000 n 0007812148 00000 n 0007812287 00000 n 0007812426 00000 n 0007812565 00000 n 0007812704 00000 n 0007812843 00000 n 0007812982 00000 n 0007813025 00000 n 0007813068 00000 n 0007813111 00000 n 0007813154 00000 n 0007813197 00000 n 0007813240 00000 n 0007813283 00000 n 0007813326 00000 n 0007813369 00000 n 0007813412 00000 n 0007813455 00000 n 0007813498 00000 n 0007813541 00000 n 0007813584 00000 n 0007813627 00000 n 0007813670 00000 n 0007813713 00000 n 0007813756 00000 n 0007813799 00000 n 0007813842 00000 n 0007813885 00000 n 0007813928 00000 n 0007813971 00000 n 0007814014 00000 n 0007814057 00000 n 0007814100 00000 n 0007814143 00000 n 0007814186 00000 n 0007814229 00000 n 0007814272 00000 n 0007814315 00000 n 0007814358 00000 n 0007814401 00000 n 0007814444 00000 n 0007814487 00000 n 0007814530 00000 n 0007814573 00000 n 0007814616 00000 n 0007814659 00000 n 0007814702 00000 n 0007814745 00000 n 0007814788 00000 n 0007814831 00000 n 0007814874 00000 n 0007814917 00000 n 0007814960 00000 n 0007815003 00000 n 0007815046 00000 n 0007815089 00000 n 0007815132 00000 n 0007815175 00000 n 0007815218 00000 n 0007815261 00000 n 0007815304 00000 n 0007815347 00000 n 0007815390 00000 n 0007815433 00000 n 0007815476 00000 n 0007815519 00000 n 0007815562 00000 n 0007815605 00000 n 0007815648 00000 n 0007815691 00000 n 0007815734 00000 n 0007815777 00000 n 0007815820 00000 n 0007815863 00000 n 0007815906 00000 n 0007815949 00000 n 0007815992 00000 n 0007816035 00000 n 0007816078 00000 n 0007816121 00000 n 0007816164 00000 n 0007816207 00000 n 0007816250 00000 n 0007816293 00000 n 0007816336 00000 n 0007816379 00000 n 0007816422 00000 n 0007816465 00000 n 0007816508 00000 n 0007816551 00000 n 0007816594 00000 n 0007816637 00000 n 0007816680 00000 n 0007816723 00000 n 0007816766 00000 n 0007816809 00000 n 0007816852 00000 n 0007816895 00000 n 0007816938 00000 n 0007816981 00000 n 0007817024 00000 n 0007817067 00000 n 0007817110 00000 n 0007817153 00000 n 0007817196 00000 n 0007817239 00000 n 0007817282 00000 n 0007817325 00000 n 0007817368 00000 n 0007817411 00000 n 0007817454 00000 n 0007817497 00000 n 0007817540 00000 n 0007817583 00000 n 0007817626 00000 n 0007817669 00000 n 0007817712 00000 n 0007817755 00000 n 0007817798 00000 n 0007817841 00000 n 0007817884 00000 n 0007817927 00000 n 0007817970 00000 n 0007818013 00000 n 0007818056 00000 n 0007818099 00000 n 0007818142 00000 n 0007818185 00000 n 0007818228 00000 n 0007818271 00000 n 0007818314 00000 n 0007818357 00000 n 0007818400 00000 n 0007818443 00000 n 0007818486 00000 n 0007818529 00000 n 0007818572 00000 n 0007818615 00000 n 0007818658 00000 n 0007818701 00000 n 0007818744 00000 n 0007818787 00000 n 0007818830 00000 n 0007818873 00000 n 0007818916 00000 n 0007818959 00000 n 0007819002 00000 n 0007819045 00000 n 0007819088 00000 n 0007819131 00000 n 0007819174 00000 n 0007819217 00000 n 0007819260 00000 n 0007819303 00000 n 0007819346 00000 n 0007819389 00000 n 0007819432 00000 n 0007819475 00000 n 0007819518 00000 n 0007819561 00000 n 0007819604 00000 n 0007819647 00000 n 0007819690 00000 n 0007819733 00000 n 0007819776 00000 n 0007819819 00000 n 0007819862 00000 n 0007819905 00000 n 0007819948 00000 n 0007819991 00000 n 0007820034 00000 n 0007820077 00000 n 0007820120 00000 n 0007820163 00000 n 0007820206 00000 n 0007820249 00000 n 0007820292 00000 n 0007820335 00000 n 0007820378 00000 n 0007820421 00000 n 0007820464 00000 n 0007820507 00000 n 0007820550 00000 n 0007820593 00000 n 0007820636 00000 n 0007820679 00000 n 0007820722 00000 n 0007820765 00000 n 0007820808 00000 n 0007820851 00000 n 0007820894 00000 n 0007820937 00000 n 0007820980 00000 n 0007821023 00000 n 0007821066 00000 n 0007821109 00000 n 0007821152 00000 n 0007821195 00000 n 0007821238 00000 n 0007821281 00000 n 0007821324 00000 n 0007821367 00000 n 0007821410 00000 n 0007821453 00000 n 0007821496 00000 n 0007821539 00000 n 0007821582 00000 n 0007821625 00000 n 0007821668 00000 n 0007821711 00000 n 0007821754 00000 n 0007821797 00000 n 0007821840 00000 n 0007821883 00000 n 0007821926 00000 n 0007821969 00000 n 0007822012 00000 n 0007822055 00000 n 0007822098 00000 n 0007822141 00000 n 0007822184 00000 n 0007822227 00000 n 0007822270 00000 n 0007822313 00000 n 0007822356 00000 n 0007822399 00000 n 0007822442 00000 n 0007822485 00000 n 0007822528 00000 n 0007822571 00000 n 0007822614 00000 n 0007822657 00000 n 0007822700 00000 n 0007822743 00000 n 0007822786 00000 n 0007822829 00000 n 0007822872 00000 n 0007822915 00000 n 0007822958 00000 n 0007823001 00000 n 0007823044 00000 n 0007823087 00000 n 0007823130 00000 n 0007823173 00000 n 0007823216 00000 n 0007823259 00000 n 0007823302 00000 n 0007823345 00000 n 0007823388 00000 n 0007823431 00000 n 0007823474 00000 n 0007823517 00000 n 0007823560 00000 n 0007823603 00000 n 0007823646 00000 n 0007823689 00000 n 0007823732 00000 n 0007823775 00000 n 0007823818 00000 n 0007824149 00000 n 0007824571 00000 n 0007824612 00000 n 0007824656 00000 n 0007824699 00000 n 0007824743 00000 n 0007824787 00000 n 0007824831 00000 n 0007824874 00000 n 0007824918 00000 n 0007824962 00000 n 0007825005 00000 n 0007825049 00000 n 0007825091 00000 n 0007825135 00000 n 0007825203 00000 n 0007825423 00000 n 0007825522 00000 n 0007830610 00000 n 0007830941 00000 n 0007831363 00000 n 0007831406 00000 n 0007832039 00000 n 0007832082 00000 n 0007832150 00000 n 0007832370 00000 n 0007832469 00000 n 0007836133 00000 n 0007836464 00000 n 0007836886 00000 n 0007836954 00000 n 0007837174 00000 n 0007837273 00000 n 0007839058 00000 n 0007839389 00000 n 0007839811 00000 n 0007839855 00000 n 0007839898 00000 n 0007839942 00000 n 0007839985 00000 n 0007840028 00000 n 0007840096 00000 n 0007840316 00000 n 0007840415 00000 n 0007843870 00000 n 0007844201 00000 n 0007844623 00000 n 0007844667 00000 n 0007844711 00000 n 0007844754 00000 n 0007844798 00000 n 0007844842 00000 n 0007844884 00000 n 0007844928 00000 n 0007844996 00000 n 0007845230 00000 n 0007845329 00000 n 0007849124 00000 n 0007849290 00000 n 0007849332 00000 n 0007849663 00000 n 0007850085 00000 n 0007850128 00000 n 0007850171 00000 n 0007850214 00000 n 0007850545 00000 n 0007850967 00000 n 0007851010 00000 n 0007851052 00000 n 0007851095 00000 n 0007851139 00000 n 0007851182 00000 n 0007851225 00000 n 0007851293 00000 n 0007851513 00000 n 0007851612 00000 n 0007856632 00000 n 0007856963 00000 n 0007857385 00000 n 0007857429 00000 n 0007857472 00000 n 0007857515 00000 n 0007857559 00000 n 0007857603 00000 n 0007857646 00000 n 0007857714 00000 n 0007857964 00000 n 0007858063 00000 n 0007860745 00000 n 0007860912 00000 n 0007861051 00000 n 0007861190 00000 n 0007861329 00000 n 0007861468 00000 n 0007861607 00000 n 0007861746 00000 n 0007861885 00000 n 0007862024 00000 n 0007862163 00000 n 0007862302 00000 n 0007862441 00000 n 0007862580 00000 n 0007862719 00000 n 0007862858 00000 n 0007862997 00000 n 0007863136 00000 n 0007863275 00000 n 0007863414 00000 n 0007863553 00000 n 0007863692 00000 n 0007863831 00000 n 0007863970 00000 n 0007864109 00000 n 0007864248 00000 n 0007864387 00000 n 0007864526 00000 n 0007864665 00000 n 0007864804 00000 n 0007864943 00000 n 0007865082 00000 n 0007865221 00000 n 0007865360 00000 n 0007865499 00000 n 0007865638 00000 n 0007865777 00000 n 0007865916 00000 n 0007866055 00000 n 0007866194 00000 n 0007866333 00000 n 0007866472 00000 n 0007866611 00000 n 0007866750 00000 n 0007866889 00000 n 0007867028 00000 n 0007867167 00000 n 0007867306 00000 n 0007867445 00000 n 0007867584 00000 n 0007867723 00000 n 0007867862 00000 n 0007868001 00000 n 0007868140 00000 n 0007868279 00000 n 0007868418 00000 n 0007868557 00000 n 0007868696 00000 n 0007868835 00000 n 0007868974 00000 n 0007869113 00000 n 0007869252 00000 n 0007869391 00000 n 0007869530 00000 n 0007869669 00000 n 0007869808 00000 n 0007869947 00000 n 0007870086 00000 n 0007870225 00000 n 0007870364 00000 n 0007870503 00000 n 0007870642 00000 n 0007870781 00000 n 0007870920 00000 n 0007871059 00000 n 0007871198 00000 n 0007871337 00000 n 0007871476 00000 n 0007871615 00000 n 0007871754 00000 n 0007871893 00000 n 0007872032 00000 n 0007872171 00000 n 0007872310 00000 n 0007872449 00000 n 0007872588 00000 n 0007872727 00000 n 0007872866 00000 n 0007873005 00000 n 0007873144 00000 n 0007873283 00000 n 0007873422 00000 n 0007873561 00000 n 0007873700 00000 n 0007873839 00000 n 0007873978 00000 n 0007874117 00000 n 0007874256 00000 n 0007874395 00000 n 0007874534 00000 n 0007874673 00000 n 0007874812 00000 n 0007874951 00000 n 0007875090 00000 n 0007875229 00000 n 0007875368 00000 n 0007875507 00000 n 0007875646 00000 n 0007875785 00000 n 0007875924 00000 n 0007876063 00000 n 0007876202 00000 n 0007876341 00000 n 0007876480 00000 n 0007876619 00000 n 0007876758 00000 n 0007876897 00000 n 0007877036 00000 n 0007877175 00000 n 0007877314 00000 n 0007877453 00000 n 0007877592 00000 n 0007877731 00000 n 0007877870 00000 n 0007878009 00000 n 0007878148 00000 n 0007878287 00000 n 0007878426 00000 n 0007878565 00000 n 0007878704 00000 n 0007878843 00000 n 0007878982 00000 n 0007879121 00000 n 0007879260 00000 n 0007879399 00000 n 0007879538 00000 n 0007879677 00000 n 0007879816 00000 n 0007879955 00000 n 0007880094 00000 n 0007880233 00000 n 0007880372 00000 n 0007880511 00000 n 0007880650 00000 n 0007880789 00000 n 0007880928 00000 n 0007881067 00000 n 0007881206 00000 n 0007881345 00000 n 0007881484 00000 n 0007881623 00000 n 0007881762 00000 n 0007881901 00000 n 0007882040 00000 n 0007882179 00000 n 0007882318 00000 n 0007882457 00000 n 0007882500 00000 n 0007882543 00000 n 0007882586 00000 n 0007882629 00000 n 0007882672 00000 n 0007882715 00000 n 0007882758 00000 n 0007882801 00000 n 0007882844 00000 n 0007882887 00000 n 0007882930 00000 n 0007882973 00000 n 0007883016 00000 n 0007883059 00000 n 0007883102 00000 n 0007883145 00000 n 0007883188 00000 n 0007883231 00000 n 0007883274 00000 n 0007883317 00000 n 0007883360 00000 n 0007883403 00000 n 0007883446 00000 n 0007883489 00000 n 0007883532 00000 n 0007883575 00000 n 0007883618 00000 n 0007883661 00000 n 0007883704 00000 n 0007883747 00000 n 0007883790 00000 n 0007883833 00000 n 0007883876 00000 n 0007883919 00000 n 0007883962 00000 n 0007884005 00000 n 0007884048 00000 n 0007884091 00000 n 0007884134 00000 n 0007884177 00000 n 0007884220 00000 n 0007884263 00000 n 0007884306 00000 n 0007884349 00000 n 0007884392 00000 n 0007884435 00000 n 0007884478 00000 n 0007884521 00000 n 0007884564 00000 n 0007884607 00000 n 0007884650 00000 n 0007884693 00000 n 0007884736 00000 n 0007884779 00000 n 0007884822 00000 n 0007884865 00000 n 0007884908 00000 n 0007884951 00000 n 0007884994 00000 n 0007885037 00000 n 0007885080 00000 n 0007885123 00000 n 0007885166 00000 n 0007885209 00000 n 0007885252 00000 n 0007885295 00000 n 0007885338 00000 n 0007885381 00000 n 0007885424 00000 n 0007885467 00000 n 0007885510 00000 n 0007885553 00000 n 0007885596 00000 n 0007885639 00000 n 0007885682 00000 n 0007885725 00000 n 0007885768 00000 n 0007885811 00000 n 0007885854 00000 n 0007885897 00000 n 0007885940 00000 n 0007885983 00000 n 0007886026 00000 n 0007886069 00000 n 0007886112 00000 n 0007886155 00000 n 0007886198 00000 n 0007886241 00000 n 0007886284 00000 n 0007886327 00000 n 0007886370 00000 n 0007886413 00000 n 0007886456 00000 n 0007886499 00000 n 0007886542 00000 n 0007886585 00000 n 0007886628 00000 n 0007886671 00000 n 0007886714 00000 n 0007886757 00000 n 0007886800 00000 n 0007886843 00000 n 0007886886 00000 n 0007886929 00000 n 0007886972 00000 n 0007887015 00000 n 0007887058 00000 n 0007887101 00000 n 0007887144 00000 n 0007887187 00000 n 0007887230 00000 n 0007887273 00000 n 0007887316 00000 n 0007887359 00000 n 0007887402 00000 n 0007887445 00000 n 0007887488 00000 n 0007887531 00000 n 0007887574 00000 n 0007887617 00000 n 0007887660 00000 n 0007887703 00000 n 0007887746 00000 n 0007887789 00000 n 0007887832 00000 n 0007887875 00000 n 0007887918 00000 n 0007888249 00000 n 0007888671 00000 n 0007888714 00000 n 0007888758 00000 n 0007889392 00000 n 0007889433 00000 n 0007889477 00000 n 0007889521 00000 n 0007889564 00000 n 0007889608 00000 n 0007889652 00000 n 0007889720 00000 n 0007889999 00000 n 0007890098 00000 n 0007892036 00000 n 0007892203 00000 n 0007892370 00000 n 0007892537 00000 n 0007892580 00000 n 0007892623 00000 n 0007892666 00000 n 0007892734 00000 n 0007892997 00000 n 0007893096 00000 n 0007897653 00000 n 0007897984 00000 n 0007898406 00000 n 0007898449 00000 n 0007898493 00000 n 0007898537 00000 n 0007898581 00000 n 0007898624 00000 n 0007898692 00000 n 0007898912 00000 n 0007899011 00000 n 0007902826 00000 n 0007903157 00000 n 0007903579 00000 n 0007903623 00000 n 0007903691 00000 n 0007903911 00000 n 0007904010 00000 n 0007908166 00000 n 0007908332 00000 n 0007908497 00000 n 0007908539 00000 n 0007908581 00000 n 0007908912 00000 n 0007909334 00000 n 0007909377 00000 n 0007909421 00000 n 0007909464 00000 n 0007909507 00000 n 0007909551 00000 n 0007909595 00000 n 0007909638 00000 n 0007909682 00000 n 0007909725 00000 n 0007909768 00000 n 0007909836 00000 n 0007910085 00000 n 0007910184 00000 n 0007914086 00000 n 0007914417 00000 n 0007914839 00000 n 0007914907 00000 n 0007915127 00000 n 0007915226 00000 n 0007919833 00000 n 0007920164 00000 n 0007920586 00000 n 0007920629 00000 n 0007920673 00000 n 0007920715 00000 n 0007920759 00000 n 0007920802 00000 n 0007920845 00000 n 0007920888 00000 n 0007920932 00000 n 0007920975 00000 n 0007921016 00000 n 0007921060 00000 n 0007921103 00000 n 0007921146 00000 n 0007921190 00000 n 0007921234 00000 n 0007921277 00000 n 0007921345 00000 n 0007921594 00000 n 0007921693 00000 n 0007925995 00000 n 0007926326 00000 n 0007926748 00000 n 0007926828 00000 n 0007926962 00000 n 0007927005 00000 n 0007927048 00000 n 0007927277 00000 n 0007927925 00000 n 0007937124 00000 n 0007937167 00000 n 0007937211 00000 n 0007937255 00000 n 0007937297 00000 n 0007937341 00000 n 0007937409 00000 n 0007937658 00000 n 0007937757 00000 n 0007941157 00000 n 0007941488 00000 n 0007941910 00000 n 0007941953 00000 n 0007941996 00000 n 0007942037 00000 n 0007942081 00000 n 0007942124 00000 n 0007942168 00000 n 0007942211 00000 n 0007942254 00000 n 0007942298 00000 n 0007942341 00000 n 0007942385 00000 n 0007942429 00000 n 0007942471 00000 n 0007942515 00000 n 0007942583 00000 n 0007942846 00000 n 0007942945 00000 n 0007947256 00000 n 0007947422 00000 n 0007947464 00000 n 0007947795 00000 n 0007948217 00000 n 0007948260 00000 n 0007948303 00000 n 0007948346 00000 n 0007948390 00000 n 0007948433 00000 n 0007948476 00000 n 0007948517 00000 n 0007948561 00000 n 0007948604 00000 n 0007948648 00000 n 0007948691 00000 n 0007948735 00000 n 0007948778 00000 n 0007948822 00000 n 0007948866 00000 n 0007948910 00000 n 0007948954 00000 n 0007948996 00000 n 0007949040 00000 n 0007949083 00000 n 0007949126 00000 n 0007949169 00000 n 0007949213 00000 n 0007949256 00000 n 0007949315 00000 n 0007949383 00000 n 0007949631 00000 n 0007949730 00000 n 0007953811 00000 n 0007953976 00000 n 0007954018 00000 n 0007954349 00000 n 0007954771 00000 n 0007954814 00000 n 0007954858 00000 n 0007954901 00000 n 0007954969 00000 n 0007955218 00000 n 0007955317 00000 n 0007959353 00000 n 0007959684 00000 n 0007960106 00000 n 0007960174 00000 n 0007960423 00000 n 0007960522 00000 n 0007964985 00000 n 0007965316 00000 n 0007965738 00000 n 0007965806 00000 n 0007966055 00000 n 0007966154 00000 n 0007969842 00000 n 0007970173 00000 n 0007970595 00000 n 0007970639 00000 n 0007970970 00000 n 0007971392 00000 n 0007971435 00000 n 0007971479 00000 n 0007971521 00000 n 0007971565 00000 n 0007971609 00000 n 0007971652 00000 n 0007971720 00000 n 0007971955 00000 n 0007972054 00000 n 0007976566 00000 n 0007976730 00000 n 0007976791 00000 n 0007977122 00000 n 0007977544 00000 n 0007977587 00000 n 0007977630 00000 n 0007977674 00000 n 0007977717 00000 n 0007977760 00000 n 0007977803 00000 n 0007978134 00000 n 0007978556 00000 n 0007978597 00000 n 0007978640 00000 n 0007978683 00000 n 0007978726 00000 n 0007978770 00000 n 0007978814 00000 n 0007978857 00000 n 0007978900 00000 n 0007978944 00000 n 0007979012 00000 n 0007979247 00000 n 0007979346 00000 n 0007983464 00000 n 0007983795 00000 n 0007984217 00000 n 0007984260 00000 n 0007984304 00000 n 0007984346 00000 n 0007984390 00000 n 0007984434 00000 n 0007984477 00000 n 0007984520 00000 n 0007984564 00000 n 0007984608 00000 n 0007984651 00000 n 0007984695 00000 n 0007984736 00000 n 0007984780 00000 n 0007984823 00000 n 0007984867 00000 n 0007984911 00000 n 0007984954 00000 n 0007984997 00000 n 0007985065 00000 n 0007985313 00000 n 0007985412 00000 n 0007989582 00000 n 0007989748 00000 n 0007989790 00000 n 0007990121 00000 n 0007990543 00000 n 0007990587 00000 n 0007990631 00000 n 0007990673 00000 n 0007990717 00000 n 0007990760 00000 n 0007990828 00000 n 0007991063 00000 n 0007991162 00000 n 0007995269 00000 n 0007995600 00000 n 0007996022 00000 n 0007996065 00000 n 0007996109 00000 n 0007996152 00000 n 0007996195 00000 n 0007996238 00000 n 0007996306 00000 n 0007996555 00000 n 0007996654 00000 n 0008000657 00000 n 0008000988 00000 n 0008001410 00000 n 0008001453 00000 n 0008001496 00000 n 0008001539 00000 n 0008001583 00000 n 0008001627 00000 n 0008001671 00000 n 0008002002 00000 n 0008002424 00000 n 0008002492 00000 n 0008002712 00000 n 0008002811 00000 n 0008006495 00000 n 0008006826 00000 n 0008007248 00000 n 0008007291 00000 n 0008007335 00000 n 0008007379 00000 n 0008007421 00000 n 0008007465 00000 n 0008007509 00000 n 0008007552 00000 n 0008007595 00000 n 0008007639 00000 n 0008007682 00000 n 0008007725 00000 n 0008007768 00000 n 0008007812 00000 n 0008007880 00000 n 0008008129 00000 n 0008008228 00000 n 0008011810 00000 n 0008012141 00000 n 0008012563 00000 n 0008012606 00000 n 0008012650 00000 n 0008012694 00000 n 0008012930 00000 n 0008013475 00000 n 0008027542 00000 n 0008027610 00000 n 0008028304 00000 n 0008028403 00000 n 0008065437 00000 n 0008065935 00000 n 0008066112 00000 n 0008066610 00000 n 0008066699 00000 n 0008066785 00000 n 0008066872 00000 n 0008066960 00000 n 0008066985 00000 n 0008067094 00000 n 0008067155 00000 n 0008067214 00000 n 0008079120 00000 n 0008091378 00000 n 0008091800 00000 n 0008092131 00000 n 0008096002 00000 n 0008100304 00000 n 0008100735 00000 n 0008101317 00000 n 0008101706 00000 n 0008104644 00000 n 0008104918 00000 n 0008107619 00000 n 0008107893 00000 n 0008117490 00000 n 0008117558 00000 n 0008117821 00000 n 0008117920 00000 n 0008122557 00000 n 0008122888 00000 n 0008123310 00000 n 0008123353 00000 n 0008123397 00000 n 0008123441 00000 n 0008123509 00000 n 0008123743 00000 n 0008123842 00000 n 0008127706 00000 n 0008128037 00000 n 0008128459 00000 n 0008128503 00000 n 0008128546 00000 n 0008128588 00000 n 0008128632 00000 n 0008128676 00000 n 0008128719 00000 n 0008128762 00000 n 0008128805 00000 n 0008128848 00000 n 0008128891 00000 n 0008128934 00000 n 0008128977 00000 n 0008129021 00000 n 0008129064 00000 n 0008129108 00000 n 0008129151 00000 n 0008129195 00000 n 0008129239 00000 n 0008129283 00000 n 0008129327 00000 n 0008129371 00000 n 0008129415 00000 n 0008129459 00000 n 0008129503 00000 n 0008129547 00000 n 0008129590 00000 n 0008129633 00000 n 0008129676 00000 n 0008129720 00000 n 0008129763 00000 n 0008129806 00000 n 0008129849 00000 n 0008129893 00000 n 0008129936 00000 n 0008129979 00000 n 0008130023 00000 n 0008130067 00000 n 0008130110 00000 n 0008130178 00000 n 0008130412 00000 n 0008130511 00000 n 0008134575 00000 n 0008134906 00000 n 0008135328 00000 n 0008135545 00000 n 0008136155 00000 n 0008152246 00000 n 0008152289 00000 n 0008152332 00000 n 0008152376 00000 n 0008152444 00000 n 0008152707 00000 n 0008152806 00000 n 0008157894 00000 n 0008158225 00000 n 0008158647 00000 n 0008158689 00000 n 0008158733 00000 n 0008158777 00000 n 0008158820 00000 n 0008158863 00000 n 0008158906 00000 n 0008158950 00000 n 0008158992 00000 n 0008159035 00000 n 0008159078 00000 n 0008159122 00000 n 0008159165 00000 n 0008159209 00000 n 0008159253 00000 n 0008159321 00000 n 0008159555 00000 n 0008159654 00000 n 0008162960 00000 n 0008163126 00000 n 0008163292 00000 n 0008163458 00000 n 0008163624 00000 n 0008163790 00000 n 0008163879 00000 n 0008163921 00000 n 0008163963 00000 n 0008164005 00000 n 0008164047 00000 n 0008164378 00000 n 0008164800 00000 n 0008164843 00000 n 0008164887 00000 n 0008164930 00000 n 0008164974 00000 n 0008165017 00000 n 0008165061 00000 n 0008165105 00000 n 0008165173 00000 n 0008165393 00000 n 0008165492 00000 n 0008169466 00000 n 0008169797 00000 n 0008170219 00000 n 0008170262 00000 n 0008170305 00000 n 0008170349 00000 n 0008170392 00000 n 0008170435 00000 n 0008170478 00000 n 0008170521 00000 n 0008170564 00000 n 0008170632 00000 n 0008170867 00000 n 0008170966 00000 n 0008175146 00000 n 0008175306 00000 n 0008175398 00000 n 0008175729 00000 n 0008176151 00000 n 0008176195 00000 n 0008176239 00000 n 0008176307 00000 n 0008176541 00000 n 0008176640 00000 n 0008180475 00000 n 0008180806 00000 n 0008181228 00000 n 0008181271 00000 n 0008181315 00000 n 0008181358 00000 n 0008181402 00000 n 0008181444 00000 n 0008181512 00000 n 0008181747 00000 n 0008181846 00000 n 0008186673 00000 n 0008186839 00000 n 0008186881 00000 n 0008187212 00000 n 0008187634 00000 n 0008187678 00000 n 0008187746 00000 n 0008187995 00000 n 0008188094 00000 n 0008193087 00000 n 0008193418 00000 n 0008193840 00000 n 0008193883 00000 n 0008193951 00000 n 0008194214 00000 n 0008194313 00000 n 0008197266 00000 n 0008197597 00000 n 0008198019 00000 n 0008198063 00000 n 0008198106 00000 n 0008198149 00000 n 0008198192 00000 n 0008198235 00000 n 0008198279 00000 n 0008198322 00000 n 0008198365 00000 n 0008198408 00000 n 0008198452 00000 n 0008198495 00000 n 0008198538 00000 n 0008198582 00000 n 0008198625 00000 n 0008198669 00000 n 0008198737 00000 n 0008199000 00000 n 0008199099 00000 n 0008203025 00000 n 0008203191 00000 n 0008203234 00000 n 0008203278 00000 n 0008203321 00000 n 0008203364 00000 n 0008203407 00000 n 0008203475 00000 n 0008203710 00000 n 0008203809 00000 n 0008208240 00000 n 0008208406 00000 n 0008208466 00000 n 0008208797 00000 n 0008209219 00000 n 0008209263 00000 n 0008209306 00000 n 0008209374 00000 n 0008209608 00000 n 0008209707 00000 n 0008214049 00000 n 0008214215 00000 n 0008214381 00000 n 0008214423 00000 n 0008214465 00000 n 0008214796 00000 n 0008215218 00000 n 0008215261 00000 n 0008215304 00000 n 0008215347 00000 n 0008215390 00000 n 0008215434 00000 n 0008215478 00000 n 0008215521 00000 n 0008215565 00000 n 0008215608 00000 n 0008215651 00000 n 0008215719 00000 n 0008215954 00000 n 0008216053 00000 n 0008220499 00000 n 0008220830 00000 n 0008221252 00000 n 0008221295 00000 n 0008221339 00000 n 0008221382 00000 n 0008221426 00000 n 0008221468 00000 n 0008221512 00000 n 0008221556 00000 n 0008221599 00000 n 0008221642 00000 n 0008221710 00000 n 0008221959 00000 n 0008222058 00000 n 0008225242 00000 n 0008225573 00000 n 0008225995 00000 n 0008226063 00000 n 0008226298 00000 n 0008226397 00000 n 0008230845 00000 n 0008231176 00000 n 0008231598 00000 n 0008231641 00000 n 0008231685 00000 n 0008231728 00000 n 0008231771 00000 n 0008231839 00000 n 0008232102 00000 n 0008232201 00000 n 0008235751 00000 n 0008236082 00000 n 0008236504 00000 n 0008236547 00000 n 0008236590 00000 n 0008236634 00000 n 0008236678 00000 n 0008236721 00000 n 0008236765 00000 n 0008236808 00000 n 0008236851 00000 n 0008236894 00000 n 0008236937 00000 n 0008236980 00000 n 0008237024 00000 n 0008237067 00000 n 0008237111 00000 n 0008237155 00000 n 0008237197 00000 n 0008237241 00000 n 0008237285 00000 n 0008237329 00000 n 0008237372 00000 n 0008237415 00000 n 0008237458 00000 n 0008237526 00000 n 0008237746 00000 n 0008237845 00000 n 0008241455 00000 n 0008241786 00000 n 0008242208 00000 n 0008242252 00000 n 0008242320 00000 n 0008242569 00000 n 0008242668 00000 n 0008246293 00000 n 0008246459 00000 n 0008246501 00000 n 0008246832 00000 n 0008247254 00000 n 0008247297 00000 n 0008247340 00000 n 0008247383 00000 n 0008247426 00000 n 0008247469 00000 n 0008247512 00000 n 0008247555 00000 n 0008247598 00000 n 0008247641 00000 n 0008247684 00000 n 0008247752 00000 n 0008247987 00000 n 0008248086 00000 n 0008252229 00000 n 0008252560 00000 n 0008252982 00000 n 0008253026 00000 n 0008253069 00000 n 0008253113 00000 n 0008253181 00000 n 0008253416 00000 n 0008253515 00000 n 0008258032 00000 n 0008258363 00000 n 0008258785 00000 n 0008258829 00000 n 0008258873 00000 n 0008258916 00000 n 0008258959 00000 n 0008259027 00000 n 0008259262 00000 n 0008259361 00000 n 0008264063 00000 n 0008264394 00000 n 0008264816 00000 n 0008264859 00000 n 0008264927 00000 n 0008265176 00000 n 0008265275 00000 n 0008269439 00000 n 0008269770 00000 n 0008270192 00000 n 0008270260 00000 n 0008270523 00000 n 0008270622 00000 n 0008274803 00000 n 0008274969 00000 n 0008275011 00000 n 0008275342 00000 n 0008275764 00000 n 0008275807 00000 n 0008275851 00000 n 0008275894 00000 n 0008275937 00000 n 0008275981 00000 n 0008276025 00000 n 0008276069 00000 n 0008276112 00000 n 0008276155 00000 n 0008276198 00000 n 0008276241 00000 n 0008276285 00000 n 0008276329 00000 n 0008276373 00000 n 0008276417 00000 n 0008276485 00000 n 0008276734 00000 n 0008276833 00000 n 0008280725 00000 n 0008280891 00000 n 0008281048 00000 n 0008281116 00000 n 0008281158 00000 n 0008281489 00000 n 0008281911 00000 n 0008281979 00000 n 0008282213 00000 n 0008282312 00000 n 0008284548 00000 n 0008284879 00000 n 0008285301 00000 n 0008285369 00000 n 0008285618 00000 n 0008285717 00000 n 0008289359 00000 n 0008289690 00000 n 0008290112 00000 n 0008290180 00000 n 0008290400 00000 n 0008290499 00000 n 0008294339 00000 n 0008294670 00000 n 0008295092 00000 n 0008295136 00000 n 0008295179 00000 n 0008295247 00000 n 0008295481 00000 n 0008295580 00000 n 0008299408 00000 n 0008299739 00000 n 0008300161 00000 n 0008300204 00000 n 0008300248 00000 n 0008300291 00000 n 0008300335 00000 n 0008300378 00000 n 0008300421 00000 n 0008300464 00000 n 0008300508 00000 n 0008300551 00000 n 0008300594 00000 n 0008300637 00000 n 0008300681 00000 n 0008300725 00000 n 0008300768 00000 n 0008300836 00000 n 0008301071 00000 n 0008301170 00000 n 0008305945 00000 n 0008306276 00000 n 0008306698 00000 n 0008306742 00000 n 0008306810 00000 n 0008307087 00000 n 0008307186 00000 n 0008310827 00000 n 0008311158 00000 n 0008311580 00000 n 0008311623 00000 n 0008311666 00000 n 0008311734 00000 n 0008311969 00000 n 0008312068 00000 n 0008315509 00000 n 0008315840 00000 n 0008316262 00000 n 0008316330 00000 n 0008316579 00000 n 0008316678 00000 n 0008321415 00000 n 0008321581 00000 n 0008321746 00000 n 0008321906 00000 n 0008322069 00000 n 0008322128 00000 n 0008322186 00000 n 0008322228 00000 n 0008322270 00000 n 0008322601 00000 n 0008323023 00000 n 0008323066 00000 n 0008323110 00000 n 0008323153 00000 n 0008323196 00000 n 0008323239 00000 n 0008323282 00000 n 0008323325 00000 n 0008323369 00000 n 0008323412 00000 n 0008323480 00000 n 0008323729 00000 n 0008323828 00000 n 0008326977 00000 n 0008327308 00000 n 0008327730 00000 n 0008327774 00000 n 0008327842 00000 n 0008328062 00000 n 0008328161 00000 n 0008329752 00000 n 0008330083 00000 n 0008330505 00000 n 0008330549 00000 n 0008330592 00000 n 0008330635 00000 n 0008330678 00000 n 0008330722 00000 n 0008330765 00000 n 0008330808 00000 n 0008330852 00000 n 0008330896 00000 n 0008330939 00000 n 0008330983 00000 n 0008331026 00000 n 0008331069 00000 n 0008331113 00000 n 0008331156 00000 n 0008331224 00000 n 0008331444 00000 n 0008331543 00000 n 0008335375 00000 n 0008335706 00000 n 0008336128 00000 n 0008336196 00000 n 0008336416 00000 n 0008336515 00000 n 0008340302 00000 n 0008340346 00000 n 0008340389 00000 n 0008340432 00000 n 0008340475 00000 n 0008340518 00000 n 0008340586 00000 n 0008340863 00000 n 0008340962 00000 n 0008344510 00000 n 0008344676 00000 n 0008344718 00000 n 0008344761 00000 n 0008344805 00000 n 0008344873 00000 n 0008345150 00000 n 0008345249 00000 n 0008349154 00000 n 0008349485 00000 n 0008349907 00000 n 0008349950 00000 n 0008349993 00000 n 0008350037 00000 n 0008350080 00000 n 0008350123 00000 n 0008350166 00000 n 0008350210 00000 n 0008350254 00000 n 0008350298 00000 n 0008350341 00000 n 0008350409 00000 n 0008350643 00000 n 0008350742 00000 n 0008354667 00000 n 0008354998 00000 n 0008355420 00000 n 0008355488 00000 n 0008355723 00000 n 0008355822 00000 n 0008358790 00000 n 0008359121 00000 n 0008359543 00000 n 0008359587 00000 n 0008359630 00000 n 0008359698 00000 n 0008359975 00000 n 0008360074 00000 n 0008363681 00000 n 0008363846 00000 n 0008363888 00000 n 0008364219 00000 n 0008364641 00000 n 0008364685 00000 n 0008364728 00000 n 0008364772 00000 n 0008364815 00000 n 0008364858 00000 n 0008364901 00000 n 0008364969 00000 n 0008365218 00000 n 0008365317 00000 n 0008369490 00000 n 0008369657 00000 n 0008369700 00000 n 0008370031 00000 n 0008370453 00000 n 0008370497 00000 n 0008370540 00000 n 0008370584 00000 n 0008370627 00000 n 0008370670 00000 n 0008370714 00000 n 0008370757 00000 n 0008370800 00000 n 0008370843 00000 n 0008370887 00000 n 0008370930 00000 n 0008370973 00000 n 0008371016 00000 n 0008371059 00000 n 0008371103 00000 n 0008371146 00000 n 0008371189 00000 n 0008371233 00000 n 0008371276 00000 n 0008371344 00000 n 0008371593 00000 n 0008371692 00000 n 0008374703 00000 n 0008375034 00000 n 0008375456 00000 n 0008375500 00000 n 0008375543 00000 n 0008375587 00000 n 0008375631 00000 n 0008375674 00000 n 0008375718 00000 n 0008375762 00000 n 0008375806 00000 n 0008375850 00000 n 0008375893 00000 n 0008375936 00000 n 0008376004 00000 n 0008376238 00000 n 0008376337 00000 n 0008380347 00000 n 0008380678 00000 n 0008381100 00000 n 0008381143 00000 n 0008381187 00000 n 0008381255 00000 n 0008381490 00000 n 0008381589 00000 n 0008384105 00000 n 0008384436 00000 n 0008384858 00000 n 0008384901 00000 n 0008384944 00000 n 0008384988 00000 n 0008385030 00000 n 0008385073 00000 n 0008385117 00000 n 0008385161 00000 n 0008385204 00000 n 0008385247 00000 n 0008385474 00000 n 0008385766 00000 n 0008390741 00000 n 0008390784 00000 n 0008390828 00000 n 0008390896 00000 n 0008391131 00000 n 0008391230 00000 n 0008395574 00000 n 0008395905 00000 n 0008396327 00000 n 0008396370 00000 n 0008396413 00000 n 0008396457 00000 n 0008396525 00000 n 0008396759 00000 n 0008396858 00000 n 0008399460 00000 n 0008399791 00000 n 0008400213 00000 n 0008400257 00000 n 0008400300 00000 n 0008400368 00000 n 0008400616 00000 n 0008400715 00000 n 0008405214 00000 n 0008405545 00000 n 0008405967 00000 n 0008406011 00000 n 0008406079 00000 n 0008406299 00000 n 0008406398 00000 n 0008409203 00000 n 0008409534 00000 n 0008409956 00000 n 0008409999 00000 n 0008410042 00000 n 0008410085 00000 n 0008410129 00000 n 0008410172 00000 n 0008410216 00000 n 0008410284 00000 n 0008410533 00000 n 0008410632 00000 n 0008414367 00000 n 0008414698 00000 n 0008415120 00000 n 0008415164 00000 n 0008415207 00000 n 0008415275 00000 n 0008415495 00000 n 0008415594 00000 n 0008419162 00000 n 0008419493 00000 n 0008419915 00000 n 0008420246 00000 n 0008420668 00000 n 0008420711 00000 n 0008420754 00000 n 0008420797 00000 n 0008420841 00000 n 0008420885 00000 n 0008420929 00000 n 0008420972 00000 n 0008421015 00000 n 0008421058 00000 n 0008421102 00000 n 0008421145 00000 n 0008421188 00000 n 0008421231 00000 n 0008421299 00000 n 0008421548 00000 n 0008421647 00000 n 0008425562 00000 n 0008425729 00000 n 0008425772 00000 n 0008426103 00000 n 0008426525 00000 n 0008426568 00000 n 0008426611 00000 n 0008426655 00000 n 0008426699 00000 n 0008426767 00000 n 0008427001 00000 n 0008427100 00000 n 0008430774 00000 n 0008431105 00000 n 0008431527 00000 n 0008431570 00000 n 0008431613 00000 n 0008431657 00000 n 0008431700 00000 n 0008431744 00000 n 0008431787 00000 n 0008431831 00000 n 0008431875 00000 n 0008431918 00000 n 0008431961 00000 n 0008432029 00000 n 0008432263 00000 n 0008432362 00000 n 0008435091 00000 n 0008435422 00000 n 0008435844 00000 n 0008435887 00000 n 0008435930 00000 n 0008435973 00000 n 0008436017 00000 n 0008436085 00000 n 0008436348 00000 n 0008436447 00000 n 0008440762 00000 n 0008440928 00000 n 0008441095 00000 n 0008441257 00000 n 0008441329 00000 n 0008441414 00000 n 0008441457 00000 n 0008441788 00000 n 0008442210 00000 n 0008442253 00000 n 0008442296 00000 n 0008442339 00000 n 0008442382 00000 n 0008442425 00000 n 0008442468 00000 n 0008442512 00000 n 0008442556 00000 n 0008442599 00000 n 0008442642 00000 n 0008442710 00000 n 0008442930 00000 n 0008443029 00000 n 0008446317 00000 n 0008446648 00000 n 0008447070 00000 n 0008447113 00000 n 0008447157 00000 n 0008447201 00000 n 0008447245 00000 n 0008447289 00000 n 0008447357 00000 n 0008447606 00000 n 0008447705 00000 n 0008450750 00000 n 0008451081 00000 n 0008451503 00000 n 0008451547 00000 n 0008451590 00000 n 0008451633 00000 n 0008451701 00000 n 0008451907 00000 n 0008452006 00000 n 0008456183 00000 n 0008456514 00000 n 0008456936 00000 n 0008456980 00000 n 0008457023 00000 n 0008457066 00000 n 0008457109 00000 n 0008457152 00000 n 0008457196 00000 n 0008457264 00000 n 0008457513 00000 n 0008457612 00000 n 0008461852 00000 n 0008462183 00000 n 0008462605 00000 n 0008462648 00000 n 0008462691 00000 n 0008462734 00000 n 0008462802 00000 n 0008463065 00000 n 0008463164 00000 n 0008466700 00000 n 0008466865 00000 n 0008466907 00000 n 0008467238 00000 n 0008467660 00000 n 0008467728 00000 n 0008467963 00000 n 0008468062 00000 n 0008471713 00000 n 0008472044 00000 n 0008472466 00000 n 0008472509 00000 n 0008472552 00000 n 0008472620 00000 n 0008472869 00000 n 0008472968 00000 n 0008476609 00000 n 0008476776 00000 n 0008476819 00000 n 0008476863 00000 n 0008476907 00000 n 0008476951 00000 n 0008476994 00000 n 0008477037 00000 n 0008477105 00000 n 0008477353 00000 n 0008477452 00000 n 0008482409 00000 n 0008482740 00000 n 0008483162 00000 n 0008483230 00000 n 0008483465 00000 n 0008483564 00000 n 0008486061 00000 n 0008486392 00000 n 0008486814 00000 n 0008486858 00000 n 0008486901 00000 n 0008486944 00000 n 0008486987 00000 n 0008487031 00000 n 0008487074 00000 n 0008487118 00000 n 0008487161 00000 n 0008487204 00000 n 0008487247 00000 n 0008487291 00000 n 0008487334 00000 n 0008487377 00000 n 0008487420 00000 n 0008487488 00000 n 0008487708 00000 n 0008487807 00000 n 0008491516 00000 n 0008491847 00000 n 0008492269 00000 n 0008492312 00000 n 0008492355 00000 n 0008492399 00000 n 0008492443 00000 n 0008492487 00000 n 0008492530 00000 n 0008492573 00000 n 0008492616 00000 n 0008492659 00000 n 0008492703 00000 n 0008492746 00000 n 0008492789 00000 n 0008492832 00000 n 0008492875 00000 n 0008493206 00000 n 0008493628 00000 n 0008493671 00000 n 0008493715 00000 n 0008493759 00000 n 0008493802 00000 n 0008493846 00000 n 0008493889 00000 n 0008493933 00000 n 0008493977 00000 n 0008494021 00000 n 0008494089 00000 n 0008494338 00000 n 0008494437 00000 n 0008498119 00000 n 0008498282 00000 n 0008498324 00000 n 0008498655 00000 n 0008499077 00000 n 0008499145 00000 n 0008499395 00000 n 0008499494 00000 n 0008501163 00000 n 0008501329 00000 n 0008501495 00000 n 0008501661 00000 n 0008501827 00000 n 0008501869 00000 n 0008501911 00000 n 0008501953 00000 n 0008501995 00000 n 0008502326 00000 n 0008502748 00000 n 0008502816 00000 n 0008503050 00000 n 0008503149 00000 n 0008505835 00000 n 0008506002 00000 n 0008506045 00000 n 0008506376 00000 n 0008506798 00000 n 0008506841 00000 n 0008506909 00000 n 0008507188 00000 n 0008507287 00000 n 0008509075 00000 n 0008509242 00000 n 0008509409 00000 n 0008509576 00000 n 0008509619 00000 n 0008509662 00000 n 0008509993 00000 n 0008510415 00000 n 0008510458 00000 n 0008510501 00000 n 0008510545 00000 n 0008510588 00000 n 0008510656 00000 n 0008510876 00000 n 0008510975 00000 n 0008514823 00000 n 0008515154 00000 n 0008515576 00000 n 0008515619 00000 n 0008515687 00000 n 0008515950 00000 n 0008516049 00000 n 0008520408 00000 n 0008520573 00000 n 0008520615 00000 n 0008520946 00000 n 0008521368 00000 n 0008521411 00000 n 0008521455 00000 n 0008521498 00000 n 0008521542 00000 n 0008521586 00000 n 0008521630 00000 n 0008521674 00000 n 0008521717 00000 n 0008521785 00000 n 0008522048 00000 n 0008522147 00000 n 0008525726 00000 n 0008525893 00000 n 0008525936 00000 n 0008526267 00000 n 0008526689 00000 n 0008526732 00000 n 0008526776 00000 n 0008526819 00000 n 0008526862 00000 n 0008526906 00000 n 0008526949 00000 n 0008526992 00000 n 0008527036 00000 n 0008527104 00000 n 0008527338 00000 n 0008527437 00000 n 0008530552 00000 n 0008530883 00000 n 0008531305 00000 n 0008531348 00000 n 0008531391 00000 n 0008531434 00000 n 0008531502 00000 n 0008531737 00000 n 0008531836 00000 n 0008535537 00000 n 0008535868 00000 n 0008536290 00000 n 0008536333 00000 n 0008536377 00000 n 0008536420 00000 n 0008536464 00000 n 0008536507 00000 n 0008536550 00000 n 0008536594 00000 n 0008536662 00000 n 0008536897 00000 n 0008536996 00000 n 0008541056 00000 n 0008541387 00000 n 0008541809 00000 n 0008541852 00000 n 0008541895 00000 n 0008541938 00000 n 0008541982 00000 n 0008542025 00000 n 0008542068 00000 n 0008542111 00000 n 0008542154 00000 n 0008542197 00000 n 0008542241 00000 n 0008542285 00000 n 0008542329 00000 n 0008542372 00000 n 0008542440 00000 n 0008542660 00000 n 0008542759 00000 n 0008545308 00000 n 0008545639 00000 n 0008546061 00000 n 0008546105 00000 n 0008546148 00000 n 0008546191 00000 n 0008546234 00000 n 0008546277 00000 n 0008546320 00000 n 0008546364 00000 n 0008546407 00000 n 0008546450 00000 n 0008546491 00000 n 0008546782 00000 n 0008547225 00000 n 0008555102 00000 n 0008555145 00000 n 0008555187 00000 n 0008555230 00000 n 0008555273 00000 n 0008555317 00000 n 0008555360 00000 n 0008555428 00000 n 0008555648 00000 n 0008555747 00000 n 0008559091 00000 n 0008559422 00000 n 0008559844 00000 n 0008559887 00000 n 0008559931 00000 n 0008559999 00000 n 0008560234 00000 n 0008560333 00000 n 0008564663 00000 n 0008564994 00000 n 0008565416 00000 n 0008565460 00000 n 0008565503 00000 n 0008565546 00000 n 0008565589 00000 n 0008565657 00000 n 0008565892 00000 n 0008565991 00000 n 0008570296 00000 n 0008570627 00000 n 0008571049 00000 n 0008571130 00000 n 0008571174 00000 n 0008571217 00000 n 0008571260 00000 n 0008571303 00000 n 0008571634 00000 n 0008572056 00000 n 0008572100 00000 n 0008572168 00000 n 0008572417 00000 n 0008572516 00000 n 0008576688 00000 n 0008576855 00000 n 0008577021 00000 n 0008577064 00000 n 0008577107 00000 n 0008577438 00000 n 0008577860 00000 n 0008577903 00000 n 0008577947 00000 n 0008577991 00000 n 0008578034 00000 n 0008578078 00000 n 0008578121 00000 n 0008578189 00000 n 0008578409 00000 n 0008578508 00000 n 0008582040 00000 n 0008582371 00000 n 0008582793 00000 n 0008582836 00000 n 0008582880 00000 n 0008582923 00000 n 0008582967 00000 n 0008583010 00000 n 0008583054 00000 n 0008583097 00000 n 0008583165 00000 n 0008583385 00000 n 0008583484 00000 n 0008587017 00000 n 0008587348 00000 n 0008587770 00000 n 0008587813 00000 n 0008587881 00000 n 0008588115 00000 n 0008588214 00000 n 0008591616 00000 n 0008591947 00000 n 0008592369 00000 n 0008592413 00000 n 0008592457 00000 n 0008592500 00000 n 0008592543 00000 n 0008592586 00000 n 0008592629 00000 n 0008592673 00000 n 0008592716 00000 n 0008592759 00000 n 0008592803 00000 n 0008592847 00000 n 0008592890 00000 n 0008592933 00000 n 0008592976 00000 n 0008593019 00000 n 0008593062 00000 n 0008593106 00000 n 0008593174 00000 n 0008593394 00000 n 0008593493 00000 n 0008597285 00000 n 0008597616 00000 n 0008598038 00000 n 0008598106 00000 n 0008598340 00000 n 0008598439 00000 n 0008601631 00000 n 0008601962 00000 n 0008602384 00000 n 0008602428 00000 n 0008602472 00000 n 0008602515 00000 n 0008602558 00000 n 0008602601 00000 n 0008602669 00000 n 0008602903 00000 n 0008603002 00000 n 0008607720 00000 n 0008607885 00000 n 0008608051 00000 n 0008608121 00000 n 0008608163 00000 n 0008608494 00000 n 0008608916 00000 n 0008608959 00000 n 0008609002 00000 n 0008609045 00000 n 0008609088 00000 n 0008609131 00000 n 0008609174 00000 n 0008609218 00000 n 0008609262 00000 n 0008609330 00000 n 0008609579 00000 n 0008609678 00000 n 0008613503 00000 n 0008613834 00000 n 0008614256 00000 n 0008614299 00000 n 0008614342 00000 n 0008614385 00000 n 0008614428 00000 n 0008614472 00000 n 0008614515 00000 n 0008614558 00000 n 0008614602 00000 n 0008614646 00000 n 0008614690 00000 n 0008614734 00000 n 0008614778 00000 n 0008614846 00000 n 0008615066 00000 n 0008615165 00000 n 0008616953 00000 n 0008617284 00000 n 0008617706 00000 n 0008617749 00000 n 0008617793 00000 n 0008617836 00000 n 0008617879 00000 n 0008617922 00000 n 0008617966 00000 n 0008618009 00000 n 0008618052 00000 n 0008618096 00000 n 0008618140 00000 n 0008618183 00000 n 0008618226 00000 n 0008618270 00000 n 0008618313 00000 n 0008618356 00000 n 0008618400 00000 n 0008618468 00000 n 0008618688 00000 n 0008618787 00000 n 0008622511 00000 n 0008622842 00000 n 0008623264 00000 n 0008623307 00000 n 0008623350 00000 n 0008623394 00000 n 0008623437 00000 n 0008623481 00000 n 0008623524 00000 n 0008623567 00000 n 0008623610 00000 n 0008623653 00000 n 0008623696 00000 n 0008623739 00000 n 0008623782 00000 n 0008623825 00000 n 0008623866 00000 n 0008623910 00000 n 0008623978 00000 n 0008624198 00000 n 0008624297 00000 n 0008628492 00000 n 0008628823 00000 n 0008629245 00000 n 0008629288 00000 n 0008629332 00000 n 0008629375 00000 n 0008629418 00000 n 0008629462 00000 n 0008629506 00000 n 0008629549 00000 n 0008629593 00000 n 0008629637 00000 n 0008629680 00000 n 0008629723 00000 n 0008629791 00000 n 0008630011 00000 n 0008630110 00000 n 0008631941 00000 n 0008632272 00000 n 0008632694 00000 n 0008632737 00000 n 0008632780 00000 n 0008632824 00000 n 0008632892 00000 n 0008633126 00000 n 0008633225 00000 n 0008637546 00000 n 0008637712 00000 n 0008637754 00000 n 0008638085 00000 n 0008638507 00000 n 0008638550 00000 n 0008638593 00000 n 0008638636 00000 n 0008638679 00000 n 0008638723 00000 n 0008638766 00000 n 0008638810 00000 n 0008638854 00000 n 0008638922 00000 n 0008639185 00000 n 0008639284 00000 n 0008643543 00000 n 0008643710 00000 n 0008643877 00000 n 0008643920 00000 n 0008643963 00000 n 0008644294 00000 n 0008644716 00000 n 0008644759 00000 n 0008644803 00000 n 0008644846 00000 n 0008644889 00000 n 0008644933 00000 n 0008645001 00000 n 0008645221 00000 n 0008645320 00000 n 0008648864 00000 n 0008649195 00000 n 0008649617 00000 n 0008649661 00000 n 0008649705 00000 n 0008649749 00000 n 0008649792 00000 n 0008649860 00000 n 0008650094 00000 n 0008650193 00000 n 0008654984 00000 n 0008655315 00000 n 0008655737 00000 n 0008655780 00000 n 0008655823 00000 n 0008655867 00000 n 0008655910 00000 n 0008655953 00000 n 0008655996 00000 n 0008656039 00000 n 0008656082 00000 n 0008656125 00000 n 0008656169 00000 n 0008656213 00000 n 0008656256 00000 n 0008656299 00000 n 0008656343 00000 n 0008656387 00000 n 0008656430 00000 n 0008656474 00000 n 0008656517 00000 n 0008656561 00000 n 0008656605 00000 n 0008656649 00000 n 0008656693 00000 n 0008656735 00000 n 0008656778 00000 n 0008656822 00000 n 0008656865 00000 n 0008656933 00000 n 0008657153 00000 n 0008657252 00000 n 0008660869 00000 n 0008661200 00000 n 0008661622 00000 n 0008661665 00000 n 0008661708 00000 n 0008661750 00000 n 0008661818 00000 n 0008662081 00000 n 0008662180 00000 n 0008666383 00000 n 0008666714 00000 n 0008667136 00000 n 0008667179 00000 n 0008667222 00000 n 0008667263 00000 n 0008667307 00000 n 0008667375 00000 n 0008667609 00000 n 0008667708 00000 n 0008669896 00000 n 0008670227 00000 n 0008670649 00000 n 0008670693 00000 n 0008670736 00000 n 0008670780 00000 n 0008670823 00000 n 0008670867 00000 n 0008670910 00000 n 0008670953 00000 n 0008670996 00000 n 0008671040 00000 n 0008671108 00000 n 0008671328 00000 n 0008671427 00000 n 0008675369 00000 n 0008675700 00000 n 0008676122 00000 n 0008676166 00000 n 0008676210 00000 n 0008676252 00000 n 0008676295 00000 n 0008676339 00000 n 0008676383 00000 n 0008676426 00000 n 0008676469 00000 n 0008676512 00000 n 0008676555 00000 n 0008676599 00000 n 0008676643 00000 n 0008676686 00000 n 0008676730 00000 n 0008676773 00000 n 0008676816 00000 n 0008676884 00000 n 0008677133 00000 n 0008677232 00000 n 0008680700 00000 n 0008681031 00000 n 0008681453 00000 n 0008681496 00000 n 0008681539 00000 n 0008681583 00000 n 0008681627 00000 n 0008681670 00000 n 0008681714 00000 n 0008681757 00000 n 0008681799 00000 n 0008681842 00000 n 0008681885 00000 n 0008681929 00000 n 0008681972 00000 n 0008682015 00000 n 0008682058 00000 n 0008682101 00000 n 0008682144 00000 n 0008682187 00000 n 0008682231 00000 n 0008682274 00000 n 0008682317 00000 n 0008682361 00000 n 0008682405 00000 n 0008682448 00000 n 0008682492 00000 n 0008682535 00000 n 0008682578 00000 n 0008682646 00000 n 0008682866 00000 n 0008682965 00000 n 0008686977 00000 n 0008687308 00000 n 0008687730 00000 n 0008687773 00000 n 0008687841 00000 n 0008688090 00000 n 0008688189 00000 n 0008692731 00000 n 0008693062 00000 n 0008693484 00000 n 0008693528 00000 n 0008693571 00000 n 0008693615 00000 n 0008693659 00000 n 0008693727 00000 n 0008693961 00000 n 0008694060 00000 n 0008697202 00000 n 0008697533 00000 n 0008697955 00000 n 0008697998 00000 n 0008698040 00000 n 0008698084 00000 n 0008698127 00000 n 0008698195 00000 n 0008698472 00000 n 0008698571 00000 n 0008702931 00000 n 0008703095 00000 n 0008703137 00000 n 0008703468 00000 n 0008703890 00000 n 0008703933 00000 n 0008703976 00000 n 0008704044 00000 n 0008704264 00000 n 0008704363 00000 n 0008708363 00000 n 0008708694 00000 n 0008709116 00000 n 0008709159 00000 n 0008709203 00000 n 0008709271 00000 n 0008709520 00000 n 0008709619 00000 n 0008712998 00000 n 0008713329 00000 n 0008713751 00000 n 0008713794 00000 n 0008713837 00000 n 0008713905 00000 n 0008714125 00000 n 0008714224 00000 n 0008718310 00000 n 0008718641 00000 n 0008719063 00000 n 0008719107 00000 n 0008719150 00000 n 0008719193 00000 n 0008719236 00000 n 0008719280 00000 n 0008719324 00000 n 0008719368 00000 n 0008719411 00000 n 0008719453 00000 n 0008719496 00000 n 0008719540 00000 n 0008719583 00000 n 0008719626 00000 n 0008719669 00000 n 0008719712 00000 n 0008719756 00000 n 0008719799 00000 n 0008719840 00000 n 0008719884 00000 n 0008719927 00000 n 0008719970 00000 n 0008720014 00000 n 0008720057 00000 n 0008720100 00000 n 0008720144 00000 n 0008720187 00000 n 0008720231 00000 n 0008720274 00000 n 0008720317 00000 n 0008720361 00000 n 0008720404 00000 n 0008720447 00000 n 0008720489 00000 n 0008720532 00000 n 0008720575 00000 n 0008720618 00000 n 0008720661 00000 n 0008720729 00000 n 0008720949 00000 n 0008721048 00000 n 0008723510 00000 n 0008723841 00000 n 0008724263 00000 n 0008724305 00000 n 0008724348 00000 n 0008724392 00000 n 0008724460 00000 n 0008724680 00000 n 0008724779 00000 n 0008728484 00000 n 0008728815 00000 n 0008729237 00000 n 0008729280 00000 n 0008729324 00000 n 0008729367 00000 n 0008729411 00000 n 0008729454 00000 n 0008729522 00000 n 0008729742 00000 n 0008729841 00000 n 0008733653 00000 n 0008733984 00000 n 0008734406 00000 n 0008734474 00000 n 0008734723 00000 n 0008734822 00000 n 0008738340 00000 n 0008738507 00000 n 0008738550 00000 n 0008738881 00000 n 0008739303 00000 n 0008739346 00000 n 0008739389 00000 n 0008739433 00000 n 0008739477 00000 n 0008739521 00000 n 0008739564 00000 n 0008739608 00000 n 0008739651 00000 n 0008739693 00000 n 0008739737 00000 n 0008739780 00000 n 0008739823 00000 n 0008739866 00000 n 0008739909 00000 n 0008739952 00000 n 0008739995 00000 n 0008740038 00000 n 0008740081 00000 n 0008740124 00000 n 0008740167 00000 n 0008740211 00000 n 0008740255 00000 n 0008740323 00000 n 0008740572 00000 n 0008740671 00000 n 0008745426 00000 n 0008745592 00000 n 0008745634 00000 n 0008745965 00000 n 0008746387 00000 n 0008746431 00000 n 0008746762 00000 n 0008747184 00000 n 0008747227 00000 n 0008747269 00000 n 0008747312 00000 n 0008747643 00000 n 0008748065 00000 n 0008748109 00000 n 0008748152 00000 n 0008748220 00000 n 0008748440 00000 n 0008748539 00000 n 0008750636 00000 n 0008750967 00000 n 0008751389 00000 n 0008751432 00000 n 0008751763 00000 n 0008752185 00000 n 0008752228 00000 n 0008752296 00000 n 0008752516 00000 n 0008752615 00000 n 0008756876 00000 n 0008757207 00000 n 0008757629 00000 n 0008757672 00000 n 0008757713 00000 n 0008757756 00000 n 0008757799 00000 n 0008757867 00000 n 0008758087 00000 n 0008758186 00000 n 0008761681 00000 n 0008762012 00000 n 0008762434 00000 n 0008762478 00000 n 0008762521 00000 n 0008762564 00000 n 0008762608 00000 n 0008762651 00000 n 0008762694 00000 n 0008762737 00000 n 0008762780 00000 n 0008762824 00000 n 0008762867 00000 n 0008762910 00000 n 0008762953 00000 n 0008762996 00000 n 0008763039 00000 n 0008763082 00000 n 0008763123 00000 n 0008763167 00000 n 0008763210 00000 n 0008763254 00000 n 0008763297 00000 n 0008763340 00000 n 0008763383 00000 n 0008763427 00000 n 0008763470 00000 n 0008763514 00000 n 0008763558 00000 n 0008763601 00000 n 0008763645 00000 n 0008763688 00000 n 0008763732 00000 n 0008763774 00000 n 0008763817 00000 n 0008763861 00000 n 0008763904 00000 n 0008763972 00000 n 0008764192 00000 n 0008764291 00000 n 0008767250 00000 n 0008767581 00000 n 0008768003 00000 n 0008768046 00000 n 0008768089 00000 n 0008768157 00000 n 0008768377 00000 n 0008768476 00000 n 0008772807 00000 n 0008773138 00000 n 0008773560 00000 n 0008773603 00000 n 0008773646 00000 n 0008773706 00000 n 0008773749 00000 n 0008773793 00000 n 0008773836 00000 n 0008773904 00000 n 0008774124 00000 n 0008774223 00000 n 0008775997 00000 n 0008776328 00000 n 0008776750 00000 n 0008776818 00000 n 0008777081 00000 n 0008777180 00000 n 0008780850 00000 n 0008781016 00000 n 0008781058 00000 n 0008781389 00000 n 0008781811 00000 n 0008781854 00000 n 0008781898 00000 n 0008781966 00000 n 0008782243 00000 n 0008782342 00000 n 0008785814 00000 n 0008785980 00000 n 0008786022 00000 n 0008786353 00000 n 0008786775 00000 n 0008786819 00000 n 0008786887 00000 n 0008787164 00000 n 0008787263 00000 n 0008791230 00000 n 0008791396 00000 n 0008791562 00000 n 0008791604 00000 n 0008791646 00000 n 0008791977 00000 n 0008792399 00000 n 0008792443 00000 n 0008792511 00000 n 0008792746 00000 n 0008792845 00000 n 0008796014 00000 n 0008796345 00000 n 0008796767 00000 n 0008796811 00000 n 0008796853 00000 n 0008796896 00000 n 0008796964 00000 n 0008797184 00000 n 0008797283 00000 n 0008799787 00000 n 0008800118 00000 n 0008800540 00000 n 0008800583 00000 n 0008800627 00000 n 0008800670 00000 n 0008800713 00000 n 0008800756 00000 n 0008800799 00000 n 0008800842 00000 n 0008800886 00000 n 0008800929 00000 n 0008800970 00000 n 0008801014 00000 n 0008801057 00000 n 0008801100 00000 n 0008801143 00000 n 0008801187 00000 n 0008801230 00000 n 0008801272 00000 n 0008801315 00000 n 0008801646 00000 n 0008802068 00000 n 0008802112 00000 n 0008802156 00000 n 0008802200 00000 n 0008802243 00000 n 0008802285 00000 n 0008802328 00000 n 0008802372 00000 n 0008802415 00000 n 0008802458 00000 n 0008802501 00000 n 0008802544 00000 n 0008823559 00000 n 0008823890 00000 n 0008824312 00000 n 0008824353 00000 n 0008824397 00000 n 0008824439 00000 n 0008824483 00000 n 0008824527 00000 n 0008824571 00000 n 0008824639 00000 n 0008824859 00000 n 0008824958 00000 n 0008828070 00000 n 0008828401 00000 n 0008828823 00000 n 0008828866 00000 n 0008828909 00000 n 0008828952 00000 n 0008828996 00000 n 0008829064 00000 n 0008829299 00000 n 0008829398 00000 n 0008833574 00000 n 0008833905 00000 n 0008834327 00000 n 0008834371 00000 n 0008834414 00000 n 0008834456 00000 n 0008834499 00000 n 0008834542 00000 n 0008834586 00000 n 0008834629 00000 n 0008834697 00000 n 0008834931 00000 n 0008835030 00000 n 0008837875 00000 n 0008838206 00000 n 0008838628 00000 n 0008838671 00000 n 0008838739 00000 n 0008838959 00000 n 0008839058 00000 n 0008842307 00000 n 0008842638 00000 n 0008843060 00000 n 0008843103 00000 n 0008843147 00000 n 0008843190 00000 n 0008843233 00000 n 0008843277 00000 n 0008843320 00000 n 0008843364 00000 n 0008843407 00000 n 0008843451 00000 n 0008843494 00000 n 0008843538 00000 n 0008843580 00000 n 0008843623 00000 n 0008843667 00000 n 0008843711 00000 n 0008843754 00000 n 0008843797 00000 n 0008843840 00000 n 0008843883 00000 n 0008843926 00000 n 0008843970 00000 n 0008844012 00000 n 0008844055 00000 n 0008844099 00000 n 0008844143 00000 n 0008844186 00000 n 0008844230 00000 n 0008844273 00000 n 0008844317 00000 n 0008844385 00000 n 0008844634 00000 n 0008844733 00000 n 0008848690 00000 n 0008848856 00000 n 0008848898 00000 n 0008849229 00000 n 0008849651 00000 n 0008849694 00000 n 0008849738 00000 n 0008849806 00000 n 0008850026 00000 n 0008850125 00000 n 0008854378 00000 n 0008854709 00000 n 0008855131 00000 n 0008855173 00000 n 0008855241 00000 n 0008855504 00000 n 0008855603 00000 n 0008859545 00000 n 0008859708 00000 n 0008859750 00000 n 0008860081 00000 n 0008860503 00000 n 0008860571 00000 n 0008860791 00000 n 0008860890 00000 n 0008864470 00000 n 0008864801 00000 n 0008865223 00000 n 0008865267 00000 n 0008865310 00000 n 0008865378 00000 n 0008865598 00000 n 0008865697 00000 n 0008869003 00000 n 0008869334 00000 n 0008869756 00000 n 0008869799 00000 n 0008869842 00000 n 0008869886 00000 n 0008869929 00000 n 0008869972 00000 n 0008870016 00000 n 0008870059 00000 n 0008870102 00000 n 0008870145 00000 n 0008870189 00000 n 0008870232 00000 n 0008870300 00000 n 0008870563 00000 n 0008870662 00000 n 0008874420 00000 n 0008874586 00000 n 0008874628 00000 n 0008874959 00000 n 0008875381 00000 n 0008875424 00000 n 0008875468 00000 n 0008875536 00000 n 0008875756 00000 n 0008875855 00000 n 0008879701 00000 n 0008880032 00000 n 0008880454 00000 n 0008880497 00000 n 0008880541 00000 n 0008880584 00000 n 0008880626 00000 n 0008880669 00000 n 0008880712 00000 n 0008880755 00000 n 0008880799 00000 n 0008880842 00000 n 0008880885 00000 n 0008880928 00000 n 0008880971 00000 n 0008881015 00000 n 0008881058 00000 n 0008881126 00000 n 0008881360 00000 n 0008881459 00000 n 0008885296 00000 n 0008885627 00000 n 0008886049 00000 n 0008886092 00000 n 0008886135 00000 n 0008886178 00000 n 0008886222 00000 n 0008886553 00000 n 0008886975 00000 n 0008887018 00000 n 0008887061 00000 n 0008887104 00000 n 0008887148 00000 n 0008887191 00000 n 0008887235 00000 n 0008887303 00000 n 0008887523 00000 n 0008887622 00000 n 0008890996 00000 n 0008891327 00000 n 0008891749 00000 n 0008891791 00000 n 0008891859 00000 n 0008892122 00000 n 0008892221 00000 n 0008896801 00000 n 0008896967 00000 n 0008897038 00000 n 0008897369 00000 n 0008897791 00000 n 0008897834 00000 n 0008897877 00000 n 0008897920 00000 n 0008897988 00000 n 0008898237 00000 n 0008898336 00000 n 0008902045 00000 n 0008902376 00000 n 0008902798 00000 n 0008902866 00000 n 0008903143 00000 n 0008903242 00000 n 0008908106 00000 n 0008908272 00000 n 0008908314 00000 n 0008908645 00000 n 0008909067 00000 n 0008909109 00000 n 0008909152 00000 n 0008909193 00000 n 0008909237 00000 n 0008909280 00000 n 0008909324 00000 n 0008909367 00000 n 0008909435 00000 n 0008909683 00000 n 0008909782 00000 n 0008914099 00000 n 0008914265 00000 n 0008914307 00000 n 0008914638 00000 n 0008915060 00000 n 0008915128 00000 n 0008915362 00000 n 0008915461 00000 n 0008919759 00000 n 0008919926 00000 n 0008919969 00000 n 0008920300 00000 n 0008920722 00000 n 0008920765 00000 n 0008920809 00000 n 0008920852 00000 n 0008920896 00000 n 0008920940 00000 n 0008920983 00000 n 0008921025 00000 n 0008921069 00000 n 0008921112 00000 n 0008921155 00000 n 0008921223 00000 n 0008921472 00000 n 0008921571 00000 n 0008925437 00000 n 0008925604 00000 n 0008925647 00000 n 0008925978 00000 n 0008926400 00000 n 0008926443 00000 n 0008926486 00000 n 0008926529 00000 n 0008926572 00000 n 0008926615 00000 n 0008926659 00000 n 0008926702 00000 n 0008926746 00000 n 0008926789 00000 n 0008926832 00000 n 0008926876 00000 n 0008926919 00000 n 0008926962 00000 n 0008927005 00000 n 0008927049 00000 n 0008927093 00000 n 0008927136 00000 n 0008927180 00000 n 0008927248 00000 n 0008927468 00000 n 0008927567 00000 n 0008931628 00000 n 0008931959 00000 n 0008932381 00000 n 0008932423 00000 n 0008932466 00000 n 0008932509 00000 n 0008932553 00000 n 0008932596 00000 n 0008932639 00000 n 0008932682 00000 n 0008932750 00000 n 0008932999 00000 n 0008933098 00000 n 0008937628 00000 n 0008937794 00000 n 0008937836 00000 n 0008938167 00000 n 0008938589 00000 n 0008938632 00000 n 0008938675 00000 n 0008938718 00000 n 0008938761 00000 n 0008938829 00000 n 0008939078 00000 n 0008939177 00000 n 0008943898 00000 n 0008944229 00000 n 0008944651 00000 n 0008944719 00000 n 0008944968 00000 n 0008945067 00000 n 0008947862 00000 n 0008948193 00000 n 0008948615 00000 n 0008948658 00000 n 0008948701 00000 n 0008948744 00000 n 0008949075 00000 n 0008949497 00000 n 0008949540 00000 n 0008949582 00000 n 0008949626 00000 n 0008949694 00000 n 0008949942 00000 n 0008950041 00000 n 0008954576 00000 n 0008954907 00000 n 0008955329 00000 n 0008955373 00000 n 0008955416 00000 n 0008955459 00000 n 0008955790 00000 n 0008956212 00000 n 0008956254 00000 n 0008956297 00000 n 0008956341 00000 n 0008956384 00000 n 0008956427 00000 n 0008956495 00000 n 0008956743 00000 n 0008956842 00000 n 0008961093 00000 n 0008961256 00000 n 0008961298 00000 n 0008961629 00000 n 0008962051 00000 n 0008962094 00000 n 0008962135 00000 n 0008962179 00000 n 0008962222 00000 n 0008962265 00000 n 0008962308 00000 n 0008962351 00000 n 0008962393 00000 n 0008962437 00000 n 0008962481 00000 n 0008962525 00000 n 0008962569 00000 n 0008962612 00000 n 0008962655 00000 n 0008962698 00000 n 0008962742 00000 n 0008962785 00000 n 0008962828 00000 n 0008962871 00000 n 0008962914 00000 n 0008962957 00000 n 0008963000 00000 n 0008963068 00000 n 0008963288 00000 n 0008963387 00000 n 0008965903 00000 n 0008966234 00000 n 0008966656 00000 n 0008966700 00000 n 0008966743 00000 n 0008966787 00000 n 0008966830 00000 n 0008966874 00000 n 0008966942 00000 n 0008967205 00000 n 0008967304 00000 n 0008971897 00000 n 0008972228 00000 n 0008972650 00000 n 0008972694 00000 n 0008972737 00000 n 0008972781 00000 n 0008972849 00000 n 0008973069 00000 n 0008973168 00000 n 0008976070 00000 n 0008976401 00000 n 0008976823 00000 n 0008976867 00000 n 0008976935 00000 n 0008977198 00000 n 0008977297 00000 n 0008981048 00000 n 0008981379 00000 n 0008981801 00000 n 0008981844 00000 n 0008981912 00000 n 0008982146 00000 n 0008982245 00000 n 0008986330 00000 n 0008986661 00000 n 0008987083 00000 n 0008987126 00000 n 0008987169 00000 n 0008987213 00000 n 0008987256 00000 n 0008987299 00000 n 0008987342 00000 n 0008987385 00000 n 0008987429 00000 n 0008987472 00000 n 0008987516 00000 n 0008987559 00000 n 0008987602 00000 n 0008987645 00000 n 0008987688 00000 n 0008987732 00000 n 0008987775 00000 n 0008987818 00000 n 0008987862 00000 n 0008987905 00000 n 0008987949 00000 n 0008987992 00000 n 0008988035 00000 n 0008988079 00000 n 0008988122 00000 n 0008988165 00000 n 0008988208 00000 n 0008988251 00000 n 0008988294 00000 n 0008988362 00000 n 0008988611 00000 n 0008988710 00000 n 0008992887 00000 n 0008993218 00000 n 0008993640 00000 n 0008993683 00000 n 0008993724 00000 n 0008993768 00000 n 0008993812 00000 n 0008993855 00000 n 0008993899 00000 n 0008993943 00000 n 0008993986 00000 n 0008994030 00000 n 0008994073 00000 n 0008994117 00000 n 0008994161 00000 n 0008994229 00000 n 0008994464 00000 n 0008994563 00000 n 0008997870 00000 n 0008998201 00000 n 0008998623 00000 n 0008998667 00000 n 0008998735 00000 n 0008999012 00000 n 0008999111 00000 n 0009002884 00000 n 0009003050 00000 n 0009003092 00000 n 0009003423 00000 n 0009003845 00000 n 0009003913 00000 n 0009004147 00000 n 0009004246 00000 n 0009008605 00000 n 0009008772 00000 n 0009008815 00000 n 0009009146 00000 n 0009009568 00000 n 0009009610 00000 n 0009009653 00000 n 0009009697 00000 n 0009009740 00000 n 0009009783 00000 n 0009009826 00000 n 0009009869 00000 n 0009009912 00000 n 0009009955 00000 n 0009009996 00000 n 0009010040 00000 n 0009010083 00000 n 0009010126 00000 n 0009010169 00000 n 0009010211 00000 n 0009010279 00000 n 0009010527 00000 n 0009010626 00000 n 0009014734 00000 n 0009015065 00000 n 0009015487 00000 n 0009015530 00000 n 0009015573 00000 n 0009015616 00000 n 0009015659 00000 n 0009015703 00000 n 0009015747 00000 n 0009015790 00000 n 0009015834 00000 n 0009015877 00000 n 0009015920 00000 n 0009015963 00000 n 0009016007 00000 n 0009016050 00000 n 0009016093 00000 n 0009016136 00000 n 0009016179 00000 n 0009016222 00000 n 0009016264 00000 n 0009016307 00000 n 0009016348 00000 n 0009016391 00000 n 0009016459 00000 n 0009016708 00000 n 0009016807 00000 n 0009021281 00000 n 0009021448 00000 n 0009021491 00000 n 0009021822 00000 n 0009022244 00000 n 0009022287 00000 n 0009022331 00000 n 0009022374 00000 n 0009022417 00000 n 0009022461 00000 n 0009022504 00000 n 0009022547 00000 n 0009022591 00000 n 0009022634 00000 n 0009022702 00000 n 0009022951 00000 n 0009023050 00000 n 0009026290 00000 n 0009026621 00000 n 0009027043 00000 n 0009027087 00000 n 0009027155 00000 n 0009027418 00000 n 0009027517 00000 n 0009031325 00000 n 0009031492 00000 n 0009031535 00000 n 0009031866 00000 n 0009032288 00000 n 0009032331 00000 n 0009032374 00000 n 0009032442 00000 n 0009032691 00000 n 0009032790 00000 n 0009036908 00000 n 0009037239 00000 n 0009037661 00000 n 0009037704 00000 n 0009037747 00000 n 0009037788 00000 n 0009037856 00000 n 0009038133 00000 n 0009038232 00000 n 0009042341 00000 n 0009042504 00000 n 0009042546 00000 n 0009042877 00000 n 0009043299 00000 n 0009043342 00000 n 0009043410 00000 n 0009043630 00000 n 0009043729 00000 n 0009048742 00000 n 0009049073 00000 n 0009049495 00000 n 0009049538 00000 n 0009049581 00000 n 0009049624 00000 n 0009049668 00000 n 0009049711 00000 n 0009049754 00000 n 0009049798 00000 n 0009049866 00000 n 0009050115 00000 n 0009050214 00000 n 0009054057 00000 n 0009054224 00000 n 0009054305 00000 n 0009054636 00000 n 0009055058 00000 n 0009055102 00000 n 0009055145 00000 n 0009055188 00000 n 0009055231 00000 n 0009055274 00000 n 0009055317 00000 n 0009055360 00000 n 0009055403 00000 n 0009055447 00000 n 0009055491 00000 n 0009055534 00000 n 0009055577 00000 n 0009055620 00000 n 0009055688 00000 n 0009055937 00000 n 0009056036 00000 n 0009060428 00000 n 0009060594 00000 n 0009060636 00000 n 0009060967 00000 n 0009061389 00000 n 0009061432 00000 n 0009061475 00000 n 0009061519 00000 n 0009061563 00000 n 0009061606 00000 n 0009061649 00000 n 0009061692 00000 n 0009061735 00000 n 0009061778 00000 n 0009061821 00000 n 0009061889 00000 n 0009062109 00000 n 0009062208 00000 n 0009066106 00000 n 0009066437 00000 n 0009066859 00000 n 0009066901 00000 n 0009066944 00000 n 0009067012 00000 n 0009067275 00000 n 0009067374 00000 n 0009070785 00000 n 0009070952 00000 n 0009070995 00000 n 0009071326 00000 n 0009071748 00000 n 0009071792 00000 n 0009071836 00000 n 0009071879 00000 n 0009071947 00000 n 0009072182 00000 n 0009072281 00000 n 0009077080 00000 n 0009077411 00000 n 0009077833 00000 n 0009077876 00000 n 0009077920 00000 n 0009077963 00000 n 0009078007 00000 n 0009078050 00000 n 0009078094 00000 n 0009078138 00000 n 0009078182 00000 n 0009078250 00000 n 0009078498 00000 n 0009078597 00000 n 0009081870 00000 n 0009082201 00000 n 0009082623 00000 n 0009082666 00000 n 0009082709 00000 n 0009082752 00000 n 0009082795 00000 n 0009082863 00000 n 0009083112 00000 n 0009083211 00000 n 0009087149 00000 n 0009087480 00000 n 0009087902 00000 n 0009087945 00000 n 0009087988 00000 n 0009088031 00000 n 0009088074 00000 n 0009088115 00000 n 0009088159 00000 n 0009088202 00000 n 0009088245 00000 n 0009088288 00000 n 0009088356 00000 n 0009088576 00000 n 0009088675 00000 n 0009091466 00000 n 0009091797 00000 n 0009092219 00000 n 0009092262 00000 n 0009092306 00000 n 0009092374 00000 n 0009092623 00000 n 0009092722 00000 n 0009096965 00000 n 0009097131 00000 n 0009097173 00000 n 0009097504 00000 n 0009097926 00000 n 0009097970 00000 n 0009098013 00000 n 0009098056 00000 n 0009098099 00000 n 0009098142 00000 n 0009098473 00000 n 0009098895 00000 n 0009098938 00000 n 0009098981 00000 n 0009099023 00000 n 0009099066 00000 n 0009099110 00000 n 0009099153 00000 n 0009099196 00000 n 0009099240 00000 n 0009099308 00000 n 0009099571 00000 n 0009099670 00000 n 0009103849 00000 n 0009104015 00000 n 0009104058 00000 n 0009104389 00000 n 0009104811 00000 n 0009104854 00000 n 0009104922 00000 n 0009105170 00000 n 0009105269 00000 n 0009109432 00000 n 0009109597 00000 n 0009109639 00000 n 0009109970 00000 n 0009110392 00000 n 0009110435 00000 n 0009110478 00000 n 0009110521 00000 n 0009110564 00000 n 0009110608 00000 n 0009110651 00000 n 0009110693 00000 n 0009110736 00000 n 0009110779 00000 n 0009110822 00000 n 0009110865 00000 n 0009110908 00000 n 0009110951 00000 n 0009110995 00000 n 0009111063 00000 n 0009111326 00000 n 0009111425 00000 n 0009115250 00000 n 0009115416 00000 n 0009115458 00000 n 0009115789 00000 n 0009116211 00000 n 0009116254 00000 n 0009116297 00000 n 0009116340 00000 n 0009116383 00000 n 0009116427 00000 n 0009116470 00000 n 0009116513 00000 n 0009116557 00000 n 0009116601 00000 n 0009116645 00000 n 0009116688 00000 n 0009116731 00000 n 0009116773 00000 n 0009116841 00000 n 0009117118 00000 n 0009117217 00000 n 0009121291 00000 n 0009121457 00000 n 0009121499 00000 n 0009121830 00000 n 0009122252 00000 n 0009122295 00000 n 0009122337 00000 n 0009122380 00000 n 0009122423 00000 n 0009122466 00000 n 0009122509 00000 n 0009122553 00000 n 0009122597 00000 n 0009122640 00000 n 0009122683 00000 n 0009122726 00000 n 0009122769 00000 n 0009122812 00000 n 0009122856 00000 n 0009122899 00000 n 0009122942 00000 n 0009122985 00000 n 0009123053 00000 n 0009123301 00000 n 0009123400 00000 n 0009126986 00000 n 0009127152 00000 n 0009127195 00000 n 0009127526 00000 n 0009127948 00000 n 0009127992 00000 n 0009128036 00000 n 0009128104 00000 n 0009128338 00000 n 0009128437 00000 n 0009132396 00000 n 0009132562 00000 n 0009132605 00000 n 0009132936 00000 n 0009133358 00000 n 0009133401 00000 n 0009133444 00000 n 0009133487 00000 n 0009133530 00000 n 0009133573 00000 n 0009133616 00000 n 0009133684 00000 n 0009133933 00000 n 0009134032 00000 n 0009138568 00000 n 0009138734 00000 n 0009138776 00000 n 0009139107 00000 n 0009139529 00000 n 0009139572 00000 n 0009139640 00000 n 0009139888 00000 n 0009139987 00000 n 0009144284 00000 n 0009144615 00000 n 0009145037 00000 n 0009145080 00000 n 0009145124 00000 n 0009145192 00000 n 0009145426 00000 n 0009145525 00000 n 0009148168 00000 n 0009148499 00000 n 0009148921 00000 n 0009148964 00000 n 0009149008 00000 n 0009149076 00000 n 0009149325 00000 n 0009149424 00000 n 0009153523 00000 n 0009153854 00000 n 0009154276 00000 n 0009154319 00000 n 0009154362 00000 n 0009154406 00000 n 0009154450 00000 n 0009154493 00000 n 0009154535 00000 n 0009154603 00000 n 0009154823 00000 n 0009154922 00000 n 0009159015 00000 n 0009159346 00000 n 0009159768 00000 n 0009159812 00000 n 0009159855 00000 n 0009159898 00000 n 0009159941 00000 n 0009159984 00000 n 0009160027 00000 n 0009160071 00000 n 0009160115 00000 n 0009160158 00000 n 0009160201 00000 n 0009160244 00000 n 0009160288 00000 n 0009160331 00000 n 0009160375 00000 n 0009160418 00000 n 0009160461 00000 n 0009160505 00000 n 0009160548 00000 n 0009160590 00000 n 0009160633 00000 n 0009160964 00000 n 0009161386 00000 n 0009161429 00000 n 0009161497 00000 n 0009161760 00000 n 0009161859 00000 n 0009165578 00000 n 0009165745 00000 n 0009165788 00000 n 0009166119 00000 n 0009166541 00000 n 0009166609 00000 n 0009166843 00000 n 0009166942 00000 n 0009171369 00000 n 0009171700 00000 n 0009172122 00000 n 0009172165 00000 n 0009172233 00000 n 0009172468 00000 n 0009172567 00000 n 0009176580 00000 n 0009176911 00000 n 0009177333 00000 n 0009177377 00000 n 0009177420 00000 n 0009177464 00000 n 0009177532 00000 n 0009177795 00000 n 0009177894 00000 n 0009182799 00000 n 0009182965 00000 n 0009183007 00000 n 0009183338 00000 n 0009183760 00000 n 0009183803 00000 n 0009183846 00000 n 0009183890 00000 n 0009183933 00000 n 0009183975 00000 n 0009184018 00000 n 0009184061 00000 n 0009184129 00000 n 0009184392 00000 n 0009184491 00000 n 0009187605 00000 n 0009187936 00000 n 0009188358 00000 n 0009188401 00000 n 0009188469 00000 n 0009188718 00000 n 0009188817 00000 n 0009193152 00000 n 0009193483 00000 n 0009193905 00000 n 0009193948 00000 n 0009193992 00000 n 0009194036 00000 n 0009194079 00000 n 0009194122 00000 n 0009194165 00000 n 0009194208 00000 n 0009194251 00000 n 0009194294 00000 n 0009194337 00000 n 0009194381 00000 n 0009194425 00000 n 0009194468 00000 n 0009194512 00000 n 0009194555 00000 n 0009194598 00000 n 0009194640 00000 n 0009194708 00000 n 0009194971 00000 n 0009195070 00000 n 0009199311 00000 n 0009199642 00000 n 0009200064 00000 n 0009200107 00000 n 0009200150 00000 n 0009200193 00000 n 0009200236 00000 n 0009200304 00000 n 0009200553 00000 n 0009200652 00000 n 0009204342 00000 n 0009204504 00000 n 0009204546 00000 n 0009204877 00000 n 0009205299 00000 n 0009205342 00000 n 0009205385 00000 n 0009205453 00000 n 0009205673 00000 n 0009205772 00000 n 0009209266 00000 n 0009209597 00000 n 0009210019 00000 n 0009210062 00000 n 0009210105 00000 n 0009210149 00000 n 0009210217 00000 n 0009210437 00000 n 0009210536 00000 n 0009212640 00000 n 0009212971 00000 n 0009213393 00000 n 0009213436 00000 n 0009213479 00000 n 0009213523 00000 n 0009213566 00000 n 0009213610 00000 n 0009213653 00000 n 0009213695 00000 n 0009213738 00000 n 0009213781 00000 n 0009213825 00000 n 0009213868 00000 n 0009213911 00000 n 0009213954 00000 n 0009214022 00000 n 0009214242 00000 n 0009214341 00000 n 0009217840 00000 n 0009218171 00000 n 0009218593 00000 n 0009218636 00000 n 0009218678 00000 n 0009218722 00000 n 0009218766 00000 n 0009218809 00000 n 0009218852 00000 n 0009218896 00000 n 0009218939 00000 n 0009218982 00000 n 0009219025 00000 n 0009219068 00000 n 0009219112 00000 n 0009219156 00000 n 0009219199 00000 n 0009219242 00000 n 0009219285 00000 n 0009219329 00000 n 0009219372 00000 n 0009219415 00000 n 0009219483 00000 n 0009219732 00000 n 0009219831 00000 n 0009223738 00000 n 0009224069 00000 n 0009224491 00000 n 0009224534 00000 n 0009224576 00000 n 0009224620 00000 n 0009224664 00000 n 0009224732 00000 n 0009224967 00000 n 0009225066 00000 n 0009229975 00000 n 0009230306 00000 n 0009230728 00000 n 0009230771 00000 n 0009230814 00000 n 0009230858 00000 n 0009230926 00000 n 0009231146 00000 n 0009231245 00000 n 0009236131 00000 n 0009236462 00000 n 0009236884 00000 n 0009236928 00000 n 0009236971 00000 n 0009237015 00000 n 0009237058 00000 n 0009237102 00000 n 0009237170 00000 n 0009237419 00000 n 0009237518 00000 n 0009240704 00000 n 0009241035 00000 n 0009241457 00000 n 0009241500 00000 n 0009241544 00000 n 0009241587 00000 n 0009241630 00000 n 0009241673 00000 n 0009241716 00000 n 0009241759 00000 n 0009241802 00000 n 0009241845 00000 n 0009241913 00000 n 0009242133 00000 n 0009242232 00000 n 0009245992 00000 n 0009246323 00000 n 0009246745 00000 n 0009246787 00000 n 0009246831 00000 n 0009246874 00000 n 0009246917 00000 n 0009246960 00000 n 0009247003 00000 n 0009247046 00000 n 0009247090 00000 n 0009247134 00000 n 0009247177 00000 n 0009247220 00000 n 0009247264 00000 n 0009247307 00000 n 0009247350 00000 n 0009247393 00000 n 0009247461 00000 n 0009247738 00000 n 0009247837 00000 n 0009252142 00000 n 0009252308 00000 n 0009252350 00000 n 0009252681 00000 n 0009253103 00000 n 0009253146 00000 n 0009253214 00000 n 0009253463 00000 n 0009253562 00000 n 0009257313 00000 n 0009257644 00000 n 0009258066 00000 n 0009258109 00000 n 0009258152 00000 n 0009258220 00000 n 0009258440 00000 n 0009258539 00000 n 0009262432 00000 n 0009262763 00000 n 0009263185 00000 n 0009263229 00000 n 0009263272 00000 n 0009263315 00000 n 0009263383 00000 n 0009263632 00000 n 0009263731 00000 n 0009266765 00000 n 0009267096 00000 n 0009267518 00000 n 0009267561 00000 n 0009267605 00000 n 0009267649 00000 n 0009267693 00000 n 0009267761 00000 n 0009267996 00000 n 0009268095 00000 n 0009272486 00000 n 0009272817 00000 n 0009273239 00000 n 0009273282 00000 n 0009273325 00000 n 0009273368 00000 n 0009273411 00000 n 0009273455 00000 n 0009273498 00000 n 0009273541 00000 n 0009273609 00000 n 0009273829 00000 n 0009273928 00000 n 0009277755 00000 n 0009278086 00000 n 0009278508 00000 n 0009278551 00000 n 0009278595 00000 n 0009278639 00000 n 0009278682 00000 n 0009278725 00000 n 0009278768 00000 n 0009278810 00000 n 0009278853 00000 n 0009278897 00000 n 0009278941 00000 n 0009278985 00000 n 0009279029 00000 n 0009279072 00000 n 0009279116 00000 n 0009279159 00000 n 0009279202 00000 n 0009279245 00000 n 0009279288 00000 n 0009279368 00000 n 0009279410 00000 n 0009279454 00000 n 0009279522 00000 n 0009279785 00000 n 0009279884 00000 n 0009283816 00000 n 0009284147 00000 n 0009284569 00000 n 0009284637 00000 n 0009284872 00000 n 0009284971 00000 n 0009289393 00000 n 0009289724 00000 n 0009290146 00000 n 0009290214 00000 n 0009290463 00000 n 0009290562 00000 n 0009295062 00000 n 0009295229 00000 n 0009295272 00000 n 0009295603 00000 n 0009296025 00000 n 0009296068 00000 n 0009296112 00000 n 0009296155 00000 n 0009296198 00000 n 0009296242 00000 n 0009296310 00000 n 0009296559 00000 n 0009296658 00000 n 0009301644 00000 n 0009301810 00000 n 0009301852 00000 n 0009302183 00000 n 0009302605 00000 n 0009302648 00000 n 0009302691 00000 n 0009302734 00000 n 0009302777 00000 n 0009302821 00000 n 0009302864 00000 n 0009302907 00000 n 0009302949 00000 n 0009303017 00000 n 0009303266 00000 n 0009303365 00000 n 0009307563 00000 n 0009307894 00000 n 0009308316 00000 n 0009308384 00000 n 0009308604 00000 n 0009308703 00000 n 0009312704 00000 n 0009313035 00000 n 0009313457 00000 n 0009313525 00000 n 0009313788 00000 n 0009313887 00000 n 0009317362 00000 n 0009317693 00000 n 0009318115 00000 n 0009318159 00000 n 0009318203 00000 n 0009318246 00000 n 0009318289 00000 n 0009318332 00000 n 0009318376 00000 n 0009318420 00000 n 0009318463 00000 n 0009318507 00000 n 0009318550 00000 n 0009318593 00000 n 0009318637 00000 n 0009318705 00000 n 0009318939 00000 n 0009319038 00000 n 0009322421 00000 n 0009322752 00000 n 0009323174 00000 n 0009323217 00000 n 0009323260 00000 n 0009323304 00000 n 0009323347 00000 n 0009323390 00000 n 0009323432 00000 n 0009323475 00000 n 0009323518 00000 n 0009323586 00000 n 0009323835 00000 n 0009323934 00000 n 0009328104 00000 n 0009328435 00000 n 0009328857 00000 n 0009328901 00000 n 0009328944 00000 n 0009328988 00000 n 0009329032 00000 n 0009329076 00000 n 0009329119 00000 n 0009329162 00000 n 0009329230 00000 n 0009329450 00000 n 0009329549 00000 n 0009333987 00000 n 0009334318 00000 n 0009334740 00000 n 0009334783 00000 n 0009334826 00000 n 0009334894 00000 n 0009335170 00000 n 0009335269 00000 n 0009339594 00000 n 0009339925 00000 n 0009340347 00000 n 0009340390 00000 n 0009340433 00000 n 0009340501 00000 n 0009340750 00000 n 0009340849 00000 n 0009345484 00000 n 0009345649 00000 n 0009345691 00000 n 0009346022 00000 n 0009346444 00000 n 0009346487 00000 n 0009346530 00000 n 0009346573 00000 n 0009346641 00000 n 0009346918 00000 n 0009347017 00000 n 0009351875 00000 n 0009352041 00000 n 0009352083 00000 n 0009352414 00000 n 0009352836 00000 n 0009352879 00000 n 0009352921 00000 n 0009352965 00000 n 0009353006 00000 n 0009353050 00000 n 0009353093 00000 n 0009353136 00000 n 0009353204 00000 n 0009353438 00000 n 0009353537 00000 n 0009357272 00000 n 0009357603 00000 n 0009358025 00000 n 0009358067 00000 n 0009358110 00000 n 0009358153 00000 n 0009358196 00000 n 0009358239 00000 n 0009358282 00000 n 0009358325 00000 n 0009358369 00000 n 0009358412 00000 n 0009358455 00000 n 0009358498 00000 n 0009358542 00000 n 0009358585 00000 n 0009358628 00000 n 0009358669 00000 n 0009358737 00000 n 0009359014 00000 n 0009359113 00000 n 0009363536 00000 n 0009363701 00000 n 0009363743 00000 n 0009364074 00000 n 0009364496 00000 n 0009364540 00000 n 0009364583 00000 n 0009364626 00000 n 0009364669 00000 n 0009364737 00000 n 0009364986 00000 n 0009365085 00000 n 0009368770 00000 n 0009369101 00000 n 0009369523 00000 n 0009369566 00000 n 0009369609 00000 n 0009369652 00000 n 0009369695 00000 n 0009369763 00000 n 0009369998 00000 n 0009370097 00000 n 0009373957 00000 n 0009374288 00000 n 0009374710 00000 n 0009374753 00000 n 0009374797 00000 n 0009374865 00000 n 0009375085 00000 n 0009375184 00000 n 0009376852 00000 n 0009377183 00000 n 0009377605 00000 n 0009377648 00000 n 0009377691 00000 n 0009377759 00000 n 0009378008 00000 n 0009378107 00000 n 0009382325 00000 n 0009382656 00000 n 0009383078 00000 n 0009383121 00000 n 0009383164 00000 n 0009383232 00000 n 0009383467 00000 n 0009383566 00000 n 0009386863 00000 n 0009387194 00000 n 0009387616 00000 n 0009387684 00000 n 0009387933 00000 n 0009388032 00000 n 0009391638 00000 n 0009391969 00000 n 0009392391 00000 n 0009392432 00000 n 0009392475 00000 n 0009392519 00000 n 0009392562 00000 n 0009392605 00000 n 0009392673 00000 n 0009392922 00000 n 0009393021 00000 n 0009396420 00000 n 0009396751 00000 n 0009397173 00000 n 0009397215 00000 n 0009397258 00000 n 0009397301 00000 n 0009397344 00000 n 0009397388 00000 n 0009397432 00000 n 0009397475 00000 n 0009397518 00000 n 0009397561 00000 n 0009397605 00000 n 0009397648 00000 n 0009397692 00000 n 0009397735 00000 n 0009397779 00000 n 0009397822 00000 n 0009397865 00000 n 0009397908 00000 n 0009397951 00000 n 0009397994 00000 n 0009398037 00000 n 0009398080 00000 n 0009398123 00000 n 0009398166 00000 n 0009398210 00000 n 0009398278 00000 n 0009398512 00000 n 0009398611 00000 n 0009403688 00000 n 0009404019 00000 n 0009404441 00000 n 0009404509 00000 n 0009404743 00000 n 0009404842 00000 n 0009408433 00000 n 0009408764 00000 n 0009409186 00000 n 0009409229 00000 n 0009409272 00000 n 0009409315 00000 n 0009409383 00000 n 0009409632 00000 n 0009409731 00000 n 0009413157 00000 n 0009413322 00000 n 0009413364 00000 n 0009413695 00000 n 0009414117 00000 n 0009414158 00000 n 0009414202 00000 n 0009414270 00000 n 0009414519 00000 n 0009414618 00000 n 0009419380 00000 n 0009419711 00000 n 0009420133 00000 n 0009420369 00000 n 0009420395 00000 n 0009422551 00000 n 0009422619 00000 n 0009422898 00000 n 0009422997 00000 n 0009425284 00000 n 0009425450 00000 n 0009425616 00000 n 0009425781 00000 n 0009425823 00000 n 0009425865 00000 n 0009425907 00000 n 0009426238 00000 n 0009426660 00000 n 0009426703 00000 n 0009426746 00000 n 0009426789 00000 n 0009426832 00000 n 0009426875 00000 n 0009426918 00000 n 0009426961 00000 n 0009427004 00000 n 0009427048 00000 n 0009427091 00000 n 0009427159 00000 n 0009427393 00000 n 0009427492 00000 n 0009431674 00000 n 0009432005 00000 n 0009432427 00000 n 0009432468 00000 n 0009432510 00000 n 0009432554 00000 n 0009432597 00000 n 0009432640 00000 n 0009432683 00000 n 0009432725 00000 n 0009432768 00000 n 0009432811 00000 n 0009432854 00000 n 0009432897 00000 n 0009432940 00000 n 0009432984 00000 n 0009433027 00000 n 0009433095 00000 n 0009433315 00000 n 0009433414 00000 n 0009437840 00000 n 0009438171 00000 n 0009438593 00000 n 0009438637 00000 n 0009438705 00000 n 0009438925 00000 n 0009439024 00000 n 0009441672 00000 n 0009442003 00000 n 0009442425 00000 n 0009442493 00000 n 0009442728 00000 n 0009442827 00000 n 0009447895 00000 n 0009448226 00000 n 0009448648 00000 n 0009448716 00000 n 0009448965 00000 n 0009449064 00000 n 0009452973 00000 n 0009453304 00000 n 0009453726 00000 n 0009453770 00000 n 0009453813 00000 n 0009454256 00000 n 0009454299 00000 n 0009454342 00000 n 0009454386 00000 n 0009454429 00000 n 0009454472 00000 n 0009454540 00000 n 0009454805 00000 n 0009454904 00000 n 0009457013 00000 n 0009457179 00000 n 0009457345 00000 n 0009457511 00000 n 0009457553 00000 n 0009457595 00000 n 0009457637 00000 n 0009457968 00000 n 0009458390 00000 n 0009458433 00000 n 0009458501 00000 n 0009458735 00000 n 0009458834 00000 n 0009462823 00000 n 0009463154 00000 n 0009463576 00000 n 0009463619 00000 n 0009463662 00000 n 0009463706 00000 n 0009463749 00000 n 0009463793 00000 n 0009463837 00000 n 0009463880 00000 n 0009463924 00000 n 0009463968 00000 n 0009464011 00000 n 0009467271 00000 n 0009467314 00000 n 0009467358 00000 n 0009467399 00000 n 0009467467 00000 n 0009467715 00000 n 0009467814 00000 n 0009472106 00000 n 0009472437 00000 n 0009472859 00000 n 0009472903 00000 n 0009472946 00000 n 0009473277 00000 n 0009473699 00000 n 0009473742 00000 n 0009473785 00000 n 0009473828 00000 n 0009473871 00000 n 0009473914 00000 n 0009473957 00000 n 0009474001 00000 n 0009474044 00000 n 0009474087 00000 n 0009474131 00000 n 0009474175 00000 n 0009474218 00000 n 0009474286 00000 n 0009474549 00000 n 0009474648 00000 n 0009478890 00000 n 0009479221 00000 n 0009479643 00000 n 0009479686 00000 n 0009479727 00000 n 0009479771 00000 n 0009479814 00000 n 0009479857 00000 n 0009479900 00000 n 0009479943 00000 n 0009479986 00000 n 0009480029 00000 n 0009480072 00000 n 0009480115 00000 n 0009480158 00000 n 0009480201 00000 n 0009480245 00000 n 0009480288 00000 n 0009480331 00000 n 0009480375 00000 n 0009480418 00000 n 0009480462 00000 n 0009480506 00000 n 0009480547 00000 n 0009480590 00000 n 0009480633 00000 n 0009480676 00000 n 0009480719 00000 n 0009480762 00000 n 0009480805 00000 n 0009480848 00000 n 0009480916 00000 n 0009481193 00000 n 0009481292 00000 n 0009485242 00000 n 0009485408 00000 n 0009485450 00000 n 0009485781 00000 n 0009486203 00000 n 0009486246 00000 n 0009486314 00000 n 0009486563 00000 n 0009486662 00000 n 0009490393 00000 n 0009490559 00000 n 0009490627 00000 n 0009490958 00000 n 0009491380 00000 n 0009491424 00000 n 0009491492 00000 n 0009491740 00000 n 0009491839 00000 n 0009494643 00000 n 0009494809 00000 n 0009494851 00000 n 0009495182 00000 n 0009495604 00000 n 0009495648 00000 n 0009495692 00000 n 0009496023 00000 n 0009496445 00000 n 0009496488 00000 n 0009496531 00000 n 0009496574 00000 n 0009496615 00000 n 0009496659 00000 n 0009496727 00000 n 0009496947 00000 n 0009497046 00000 n 0009501367 00000 n 0009501698 00000 n 0009502120 00000 n 0009502163 00000 n 0009502231 00000 n 0009502508 00000 n 0009502607 00000 n 0009506451 00000 n 0009506617 00000 n 0009506659 00000 n 0009506990 00000 n 0009507412 00000 n 0009507455 00000 n 0009507498 00000 n 0009507541 00000 n 0009507584 00000 n 0009507652 00000 n 0009507887 00000 n 0009507986 00000 n 0009512482 00000 n 0009512813 00000 n 0009513235 00000 n 0009513303 00000 n 0009513537 00000 n 0009513636 00000 n 0009517474 00000 n 0009517638 00000 n 0009517681 00000 n 0009518012 00000 n 0009518434 00000 n 0009518477 00000 n 0009518521 00000 n 0009518564 00000 n 0009518608 00000 n 0009518651 00000 n 0009518695 00000 n 0009518738 00000 n 0009518781 00000 n 0009518822 00000 n 0009518866 00000 n 0009518909 00000 n 0009518952 00000 n 0009519020 00000 n 0009519254 00000 n 0009519353 00000 n 0009522756 00000 n 0009522922 00000 n 0009522965 00000 n 0009523296 00000 n 0009523718 00000 n 0009523761 00000 n 0009523804 00000 n 0009523847 00000 n 0009523891 00000 n 0009523959 00000 n 0009524179 00000 n 0009524278 00000 n 0009526591 00000 n 0009526922 00000 n 0009527344 00000 n 0009527412 00000 n 0009527676 00000 n 0009527775 00000 n 0009531993 00000 n 0009532171 00000 n 0009532502 00000 n 0009532924 00000 n 0009533155 00000 n 0009533273 00000 n 0009534359 00000 n 0009534403 00000 n 0009534446 00000 n 0009534777 00000 n 0009535199 00000 n 0009535530 00000 n 0009535952 00000 n 0009535996 00000 n 0009536037 00000 n 0009536080 00000 n 0009536124 00000 n 0009536167 00000 n 0009536235 00000 n 0009536469 00000 n 0009536568 00000 n 0009540312 00000 n 0009540643 00000 n 0009541065 00000 n 0009541108 00000 n 0009541151 00000 n 0009541194 00000 n 0009541237 00000 n 0009541305 00000 n 0009541553 00000 n 0009541652 00000 n 0009545929 00000 n 0009546095 00000 n 0009546137 00000 n 0009546468 00000 n 0009546890 00000 n 0009546933 00000 n 0009547028 00000 n 0009547177 00000 n 0009547312 00000 n 0009547382 00000 n 0009547426 00000 n 0009549932 00000 n 0009550285 00000 n 0009550597 00000 n 0009550668 00000 n 0009550728 00000 n 0009551069 00000 n 0009553470 00000 n 0009553932 00000 n 0009554394 00000 n 0009554885 00000 n 0009555381 00000 n 0009555877 00000 n 0009556373 00000 n 0009556869 00000 n 0009557365 00000 n 0009557861 00000 n 0009558357 00000 n 0009558853 00000 n 0009559349 00000 n 0009559845 00000 n 0009560341 00000 n 0009560837 00000 n 0009561333 00000 n 0009561829 00000 n 0009562325 00000 n 0009562821 00000 n 0009563317 00000 n 0009563813 00000 n 0009564309 00000 n 0009564805 00000 n 0009565301 00000 n 0009565797 00000 n 0009566293 00000 n 0009566789 00000 n 0009567285 00000 n 0009567781 00000 n 0009569105 00000 n 0009569165 00000 n 0009569225 00000 n 0009569285 00000 n 0009569345 00000 n 0009569405 00000 n 0009569465 00000 n 0009569525 00000 n 0009569585 00000 n 0009569645 00000 n 0009569705 00000 n 0009569765 00000 n 0009569825 00000 n 0009569885 00000 n 0009569945 00000 n 0009570005 00000 n 0009570065 00000 n 0009570125 00000 n 0009570185 00000 n 0009570245 00000 n 0009570305 00000 n 0009570365 00000 n 0009570425 00000 n 0009570485 00000 n 0009570545 00000 n 0009570605 00000 n 0009570665 00000 n 0009570725 00000 n 0009570785 00000 n 0009570845 00000 n 0009570905 00000 n 0009570965 00000 n 0009571025 00000 n 0009571085 00000 n 0009571145 00000 n 0009571205 00000 n 0009571265 00000 n 0009571325 00000 n 0009571385 00000 n 0009571445 00000 n 0009571505 00000 n 0009571565 00000 n 0009571625 00000 n 0009571685 00000 n 0009571745 00000 n 0009571805 00000 n 0009571865 00000 n 0009571925 00000 n 0009571985 00000 n 0009572045 00000 n 0009572105 00000 n 0009572165 00000 n 0009572225 00000 n 0009572285 00000 n 0009572345 00000 n 0009572405 00000 n 0009572465 00000 n 0009572525 00000 n 0009572585 00000 n 0009572645 00000 n 0009572705 00000 n 0009572765 00000 n 0009572825 00000 n 0009572885 00000 n 0009572945 00000 n 0009573005 00000 n 0009573065 00000 n 0009573125 00000 n 0009573185 00000 n 0009573245 00000 n 0009573305 00000 n 0009573365 00000 n 0009573425 00000 n 0009573485 00000 n 0009573545 00000 n 0009573605 00000 n 0009573665 00000 n 0009573725 00000 n 0009573785 00000 n 0009573845 00000 n 0009573905 00000 n 0009573965 00000 n 0009574025 00000 n 0009574085 00000 n 0009574145 00000 n 0009574205 00000 n 0009574265 00000 n 0009574325 00000 n 0009574385 00000 n 0009574445 00000 n 0009574505 00000 n 0009574565 00000 n 0009574625 00000 n 0009574685 00000 n 0009574745 00000 n 0009574805 00000 n 0009574865 00000 n 0009574925 00000 n 0009574985 00000 n 0009575045 00000 n 0009575105 00000 n 0009575165 00000 n 0009575225 00000 n 0009575285 00000 n 0009575345 00000 n 0009575405 00000 n 0009575465 00000 n 0009575525 00000 n 0009575585 00000 n 0009575645 00000 n 0009575705 00000 n 0009575765 00000 n 0009575825 00000 n 0009575885 00000 n 0009575945 00000 n 0009576005 00000 n 0009576065 00000 n 0009576125 00000 n 0009576185 00000 n 0009576245 00000 n 0009576305 00000 n 0009576365 00000 n 0009576425 00000 n 0009576485 00000 n 0009576545 00000 n 0009576605 00000 n 0009576665 00000 n 0009576725 00000 n 0009576785 00000 n 0009576845 00000 n 0009576905 00000 n 0009576965 00000 n 0009577025 00000 n 0009577085 00000 n 0009577145 00000 n 0009577205 00000 n 0009577265 00000 n 0009577325 00000 n 0009577385 00000 n 0009577445 00000 n 0009577505 00000 n 0009577565 00000 n 0009577625 00000 n 0009577685 00000 n 0009577745 00000 n 0009577805 00000 n 0009577865 00000 n 0009577925 00000 n 0009577985 00000 n 0009578045 00000 n 0009578105 00000 n 0009578165 00000 n 0009578225 00000 n 0009578285 00000 n 0009578345 00000 n 0009578405 00000 n 0009578465 00000 n 0009578525 00000 n 0009578585 00000 n 0009578645 00000 n 0009578705 00000 n 0009578765 00000 n 0009578825 00000 n 0009578885 00000 n 0009578945 00000 n 0009579005 00000 n 0009579065 00000 n 0009579125 00000 n 0009579185 00000 n 0009579245 00000 n 0009579305 00000 n 0009579365 00000 n 0009579425 00000 n 0009579485 00000 n 0009579545 00000 n 0009579605 00000 n 0009579665 00000 n 0009579725 00000 n 0009579785 00000 n 0009579845 00000 n 0009579905 00000 n 0009579965 00000 n 0009580025 00000 n 0009580085 00000 n 0009580145 00000 n 0009580205 00000 n 0009580265 00000 n 0009580325 00000 n 0009580385 00000 n 0009580445 00000 n 0009580505 00000 n 0009580565 00000 n 0009580625 00000 n 0009580685 00000 n 0009580745 00000 n 0009580805 00000 n 0009580865 00000 n 0009580925 00000 n 0009580985 00000 n 0009581045 00000 n 0009581105 00000 n 0009581165 00000 n 0009581225 00000 n 0009581285 00000 n 0009581345 00000 n 0009581405 00000 n 0009581465 00000 n 0009581525 00000 n 0009581585 00000 n 0009581645 00000 n 0009581705 00000 n 0009581765 00000 n 0009581825 00000 n 0009581885 00000 n 0009581945 00000 n 0009582005 00000 n 0009582065 00000 n 0009582125 00000 n 0009582185 00000 n 0009582245 00000 n 0009582305 00000 n 0009582365 00000 n 0009582425 00000 n 0009582485 00000 n 0009582545 00000 n 0009582604 00000 n 0009582663 00000 n 0009582722 00000 n 0009582781 00000 n 0009582841 00000 n 0009582901 00000 n 0009582961 00000 n 0009583021 00000 n 0009583081 00000 n 0009583141 00000 n 0009583201 00000 n 0009583261 00000 n 0009583321 00000 n 0009583381 00000 n 0009583441 00000 n 0009583501 00000 n 0009583561 00000 n 0009583621 00000 n 0009583681 00000 n 0009583741 00000 n 0009583801 00000 n 0009583861 00000 n 0009583921 00000 n 0009583981 00000 n 0009584041 00000 n 0009584101 00000 n 0009584161 00000 n 0009584221 00000 n 0009584281 00000 n 0009584341 00000 n 0009584401 00000 n 0009584461 00000 n 0009584520 00000 n 0009584579 00000 n 0009584638 00000 n 0009584697 00000 n 0009584756 00000 n 0009584815 00000 n 0009584874 00000 n 0009584933 00000 n 0009584992 00000 n 0009585051 00000 n 0009585110 00000 n 0009585169 00000 n 0009585228 00000 n 0009585287 00000 n 0009585346 00000 n 0009585405 00000 n 0009585464 00000 n 0009585523 00000 n 0009585582 00000 n 0009585641 00000 n 0009585700 00000 n 0009585759 00000 n 0009585818 00000 n 0009585877 00000 n 0009585936 00000 n 0009585995 00000 n 0009586054 00000 n 0009586113 00000 n 0009586172 00000 n 0009586231 00000 n 0009586290 00000 n 0009586349 00000 n 0009586408 00000 n 0009586467 00000 n 0009586526 00000 n 0009586585 00000 n 0009586644 00000 n 0009586703 00000 n 0009586762 00000 n 0009586821 00000 n 0009586880 00000 n 0009586939 00000 n 0009586998 00000 n 0009587057 00000 n 0009587116 00000 n 0009587175 00000 n 0009587234 00000 n 0009587293 00000 n 0009587352 00000 n 0009587411 00000 n 0009587470 00000 n 0009587529 00000 n 0009587588 00000 n 0009587647 00000 n 0009587706 00000 n 0009587765 00000 n 0009587824 00000 n 0009587883 00000 n 0009587942 00000 n 0009588001 00000 n 0009588060 00000 n 0009588119 00000 n 0009588178 00000 n 0009588237 00000 n 0009588296 00000 n 0009588355 00000 n 0009588414 00000 n 0009588473 00000 n 0009588532 00000 n 0009588591 00000 n 0009588650 00000 n 0009588709 00000 n 0009588768 00000 n 0009588827 00000 n 0009588886 00000 n 0009588945 00000 n 0009589004 00000 n 0009589063 00000 n 0009589122 00000 n 0009589181 00000 n 0009589240 00000 n 0009589299 00000 n 0009589358 00000 n 0009589417 00000 n 0009589476 00000 n 0009589535 00000 n 0009589594 00000 n 0009589653 00000 n 0009589712 00000 n 0009589771 00000 n 0009589830 00000 n 0009589889 00000 n 0009589948 00000 n 0009590007 00000 n 0009590066 00000 n 0009590125 00000 n 0009590184 00000 n 0009590243 00000 n 0009590302 00000 n 0009590361 00000 n 0009590420 00000 n 0009590479 00000 n 0009590538 00000 n 0009590597 00000 n 0009590656 00000 n 0009590715 00000 n 0009590774 00000 n 0009590833 00000 n 0009590892 00000 n 0009590951 00000 n 0009591010 00000 n 0009591069 00000 n 0009591128 00000 n 0009591187 00000 n 0009591246 00000 n 0009591305 00000 n 0009591364 00000 n 0009591423 00000 n 0009591482 00000 n 0009591541 00000 n 0009591600 00000 n 0009591659 00000 n 0009591718 00000 n 0009591777 00000 n 0009591836 00000 n 0009591895 00000 n 0009591954 00000 n 0009592013 00000 n 0009592072 00000 n 0009592131 00000 n 0009592190 00000 n 0009592249 00000 n 0009592308 00000 n 0009592367 00000 n 0009592426 00000 n 0009592485 00000 n 0009592544 00000 n 0009592603 00000 n 0009592662 00000 n 0009592721 00000 n 0009592780 00000 n 0009592839 00000 n 0009592898 00000 n 0009592957 00000 n 0009593016 00000 n 0009593075 00000 n 0009593134 00000 n 0009593193 00000 n 0009593252 00000 n 0009593311 00000 n 0009593370 00000 n 0009593429 00000 n 0009593488 00000 n 0009593547 00000 n 0009593606 00000 n 0009593665 00000 n 0009593724 00000 n 0009593783 00000 n 0009593842 00000 n 0009593901 00000 n 0009593960 00000 n 0009594019 00000 n 0009594078 00000 n 0009594137 00000 n 0009594196 00000 n 0009594255 00000 n 0009594314 00000 n 0009594373 00000 n 0009594432 00000 n 0009594491 00000 n 0009594550 00000 n 0009594609 00000 n 0009594668 00000 n 0009594727 00000 n 0009594786 00000 n 0009594845 00000 n 0009594904 00000 n 0009594963 00000 n 0009595022 00000 n 0009595081 00000 n 0009595140 00000 n 0009595199 00000 n 0009595258 00000 n 0009595317 00000 n 0009595376 00000 n 0009595435 00000 n 0009595494 00000 n 0009595553 00000 n 0009595612 00000 n 0009595671 00000 n 0009595730 00000 n 0009595789 00000 n 0009595848 00000 n 0009595907 00000 n 0009595966 00000 n 0009596025 00000 n 0009596084 00000 n 0009596143 00000 n 0009596202 00000 n 0009596261 00000 n 0009596320 00000 n 0009596379 00000 n 0009596438 00000 n 0009596497 00000 n 0009596556 00000 n 0009596615 00000 n 0009596674 00000 n 0009596733 00000 n 0009596792 00000 n 0009596851 00000 n 0009596910 00000 n 0009596969 00000 n 0009597028 00000 n 0009597087 00000 n 0009597146 00000 n 0009597205 00000 n 0009597264 00000 n 0009597323 00000 n 0009597382 00000 n 0009597441 00000 n 0009597500 00000 n 0009597559 00000 n 0009597618 00000 n 0009597677 00000 n 0009597736 00000 n 0009597795 00000 n 0009597854 00000 n 0009597913 00000 n 0009597972 00000 n 0009598031 00000 n 0009598090 00000 n 0009598149 00000 n 0009598208 00000 n 0009598267 00000 n 0009598326 00000 n 0009598385 00000 n 0009598444 00000 n 0009598503 00000 n 0009598562 00000 n 0009598621 00000 n 0009598680 00000 n 0009598739 00000 n 0009598798 00000 n 0009598857 00000 n 0009598916 00000 n 0009598975 00000 n 0009599034 00000 n 0009599093 00000 n 0009599152 00000 n 0009599211 00000 n 0009599270 00000 n 0009599329 00000 n 0009599388 00000 n 0009599447 00000 n 0009599506 00000 n 0009599565 00000 n 0009609792 00000 n 0009609850 00000 n 0009609908 00000 n 0009609967 00000 n 0009610026 00000 n 0009610085 00000 n 0009610144 00000 n 0009610203 00000 n 0009610262 00000 n 0009610321 00000 n 0009610380 00000 n 0009610439 00000 n 0009610498 00000 n 0009610557 00000 n 0009610616 00000 n 0009610675 00000 n 0009610734 00000 n 0009610793 00000 n 0009610852 00000 n 0009610911 00000 n 0009610970 00000 n 0009611029 00000 n 0009611088 00000 n 0009611147 00000 n 0009611206 00000 n 0009611265 00000 n 0009611324 00000 n 0009611383 00000 n 0009611442 00000 n 0009611501 00000 n 0009611560 00000 n 0009611619 00000 n 0009611678 00000 n 0009611737 00000 n 0009611796 00000 n 0009611855 00000 n 0009611914 00000 n 0009611973 00000 n 0009612032 00000 n 0009612091 00000 n 0009612150 00000 n 0009612209 00000 n 0009612268 00000 n 0009612327 00000 n 0009612386 00000 n 0009612445 00000 n 0009612504 00000 n 0009612563 00000 n 0009612622 00000 n 0009612681 00000 n 0009612740 00000 n 0009612799 00000 n 0009612858 00000 n 0009612917 00000 n 0009612976 00000 n 0009613035 00000 n 0009613094 00000 n 0009613153 00000 n 0009613212 00000 n 0009613271 00000 n 0009613330 00000 n 0009613389 00000 n 0009613448 00000 n 0009613507 00000 n 0009613566 00000 n 0009613625 00000 n 0009613684 00000 n 0009613743 00000 n 0009613802 00000 n 0009613861 00000 n 0009613920 00000 n 0009613979 00000 n 0009614038 00000 n 0009614097 00000 n 0009614156 00000 n 0009614215 00000 n 0009614274 00000 n 0009614333 00000 n 0009614392 00000 n 0009614451 00000 n 0009614510 00000 n 0009614569 00000 n 0009614628 00000 n 0009614687 00000 n 0009614746 00000 n 0009614805 00000 n 0009614864 00000 n 0009614923 00000 n 0009614982 00000 n 0009615041 00000 n 0009615100 00000 n 0009615159 00000 n 0009615218 00000 n 0009615277 00000 n 0009615336 00000 n 0009615395 00000 n 0009615454 00000 n 0009615513 00000 n 0009615572 00000 n 0009615631 00000 n 0009615690 00000 n 0009615749 00000 n 0009615808 00000 n 0009615867 00000 n 0009615926 00000 n 0009615985 00000 n 0009616044 00000 n 0009616103 00000 n 0009616162 00000 n 0009616221 00000 n 0009616280 00000 n 0009616339 00000 n 0009616398 00000 n 0009616457 00000 n 0009616516 00000 n 0009616575 00000 n 0009616634 00000 n 0009616693 00000 n 0009616752 00000 n 0009616811 00000 n 0009616870 00000 n 0009616929 00000 n 0009616988 00000 n 0009617047 00000 n 0009617106 00000 n 0009617165 00000 n 0009617224 00000 n 0009617283 00000 n 0009617342 00000 n 0009617401 00000 n 0009617460 00000 n 0009617519 00000 n 0009617578 00000 n 0009617637 00000 n 0009617696 00000 n 0009617755 00000 n 0009617814 00000 n 0009617873 00000 n 0009617932 00000 n 0009617991 00000 n 0009618050 00000 n 0009618109 00000 n 0009618168 00000 n 0009618227 00000 n 0009618286 00000 n 0009618345 00000 n 0009618404 00000 n 0009618463 00000 n 0009618522 00000 n 0009618581 00000 n 0009618640 00000 n 0009618699 00000 n 0009618758 00000 n 0009618817 00000 n 0009618876 00000 n 0009618935 00000 n 0009618994 00000 n 0009619053 00000 n 0009619112 00000 n 0009619171 00000 n 0009619230 00000 n 0009619289 00000 n 0009619348 00000 n 0009619407 00000 n 0009619466 00000 n 0009619525 00000 n 0009619584 00000 n 0009619643 00000 n 0009619702 00000 n 0009619761 00000 n 0009619820 00000 n 0009619879 00000 n 0009619938 00000 n 0009619997 00000 n 0009620056 00000 n 0009620115 00000 n 0009620174 00000 n 0009620233 00000 n 0009620292 00000 n 0009620351 00000 n 0009620410 00000 n 0009620469 00000 n 0009620528 00000 n 0009620587 00000 n 0009620646 00000 n 0009620705 00000 n 0009620764 00000 n 0009620823 00000 n 0009620882 00000 n 0009620942 00000 n 0009621002 00000 n 0009621062 00000 n 0009621122 00000 n 0009621182 00000 n 0009621242 00000 n 0009621302 00000 n 0009621362 00000 n 0009621422 00000 n 0009621482 00000 n 0009621542 00000 n 0009621602 00000 n 0009621662 00000 n 0009621722 00000 n 0009621782 00000 n 0009621842 00000 n 0009621902 00000 n 0009621962 00000 n 0009622022 00000 n 0009622082 00000 n 0009622142 00000 n 0009622202 00000 n 0009622262 00000 n 0009622322 00000 n 0009622382 00000 n 0009622442 00000 n 0009622502 00000 n 0009622562 00000 n 0009622622 00000 n 0009622682 00000 n 0009622742 00000 n 0009622802 00000 n 0009622862 00000 n 0009622922 00000 n 0009622982 00000 n 0009623042 00000 n 0009623102 00000 n 0009623162 00000 n 0009623222 00000 n 0009623282 00000 n 0009623342 00000 n 0009623402 00000 n 0009623462 00000 n 0009623522 00000 n 0009623582 00000 n 0009623642 00000 n 0009623702 00000 n 0009623762 00000 n 0009623822 00000 n 0009623882 00000 n 0009623942 00000 n 0009624002 00000 n 0009624062 00000 n 0009624122 00000 n 0009624182 00000 n 0009624242 00000 n 0009624302 00000 n 0009624362 00000 n 0009624422 00000 n 0009624482 00000 n 0009624542 00000 n 0009624602 00000 n 0009624662 00000 n 0009624722 00000 n 0009624782 00000 n 0009624842 00000 n 0009624902 00000 n 0009624962 00000 n 0009625022 00000 n 0009625082 00000 n 0009625142 00000 n 0009625202 00000 n 0009625262 00000 n 0009625322 00000 n 0009625382 00000 n 0009625442 00000 n 0009625502 00000 n 0009625562 00000 n 0009625622 00000 n 0009625682 00000 n 0009625742 00000 n 0009625802 00000 n 0009625862 00000 n 0009625922 00000 n 0009625982 00000 n 0009626042 00000 n 0009626102 00000 n 0009626162 00000 n 0009626222 00000 n 0009626282 00000 n 0009626342 00000 n 0009626402 00000 n 0009626462 00000 n 0009626522 00000 n 0009626582 00000 n 0009626642 00000 n 0009626702 00000 n 0009626762 00000 n 0009626822 00000 n 0009626882 00000 n 0009626942 00000 n 0009627002 00000 n 0009627062 00000 n 0009627122 00000 n 0009627182 00000 n 0009627242 00000 n 0009627302 00000 n 0009627362 00000 n 0009627422 00000 n 0009627482 00000 n 0009627542 00000 n 0009627602 00000 n 0009627662 00000 n 0009627722 00000 n 0009627782 00000 n 0009627842 00000 n 0009627902 00000 n 0009627962 00000 n 0009628022 00000 n 0009628082 00000 n 0009628142 00000 n 0009628202 00000 n 0009628262 00000 n 0009628322 00000 n 0009628382 00000 n 0009628442 00000 n 0009628502 00000 n 0009628562 00000 n 0009628622 00000 n 0009628682 00000 n 0009628742 00000 n 0009628802 00000 n 0009628862 00000 n 0009628922 00000 n 0009628982 00000 n 0009629042 00000 n 0009629102 00000 n 0009629162 00000 n 0009629222 00000 n 0009629282 00000 n 0009629342 00000 n 0009629402 00000 n 0009629462 00000 n 0009629522 00000 n 0009629582 00000 n 0009629642 00000 n 0009629702 00000 n 0009629762 00000 n 0009629822 00000 n 0009629882 00000 n 0009629942 00000 n 0009630002 00000 n 0009630062 00000 n 0009630122 00000 n 0009630182 00000 n 0009630242 00000 n 0009630302 00000 n 0009630362 00000 n 0009630422 00000 n 0009630482 00000 n 0009630542 00000 n 0009630602 00000 n 0009630662 00000 n 0009630722 00000 n 0009630782 00000 n 0009630842 00000 n 0009630902 00000 n 0009630962 00000 n 0009631022 00000 n 0009631082 00000 n 0009631142 00000 n 0009631202 00000 n 0009631262 00000 n 0009631322 00000 n 0009631382 00000 n 0009631442 00000 n 0009631502 00000 n 0009631562 00000 n 0009631622 00000 n 0009631682 00000 n 0009631742 00000 n 0009631802 00000 n 0009631862 00000 n 0009631922 00000 n 0009631982 00000 n 0009632042 00000 n 0009632102 00000 n 0009632162 00000 n 0009632222 00000 n 0009632282 00000 n 0009632342 00000 n 0009632402 00000 n 0009632462 00000 n 0009632522 00000 n 0009632582 00000 n 0009632642 00000 n 0009632702 00000 n 0009632762 00000 n 0009632822 00000 n 0009632882 00000 n 0009632942 00000 n 0009633002 00000 n 0009633062 00000 n 0009633122 00000 n 0009633182 00000 n 0009633242 00000 n 0009633302 00000 n 0009633362 00000 n 0009633422 00000 n 0009633482 00000 n 0009633542 00000 n 0009633602 00000 n 0009633662 00000 n 0009633722 00000 n 0009633782 00000 n 0009633842 00000 n 0009633902 00000 n 0009633962 00000 n 0009634022 00000 n 0009634082 00000 n 0009634142 00000 n 0009634202 00000 n 0009634262 00000 n 0009634322 00000 n 0009634382 00000 n 0009634442 00000 n 0009634502 00000 n 0009634562 00000 n 0009634622 00000 n 0009634682 00000 n 0009634742 00000 n 0009634802 00000 n 0009634862 00000 n 0009634922 00000 n 0009634982 00000 n 0009635042 00000 n 0009635102 00000 n 0009635162 00000 n 0009635222 00000 n 0009635282 00000 n 0009635342 00000 n 0009635402 00000 n 0009635462 00000 n 0009635522 00000 n 0009635582 00000 n 0009635642 00000 n 0009635702 00000 n 0009635762 00000 n 0009635822 00000 n 0009635882 00000 n 0009635942 00000 n 0009636002 00000 n 0009636062 00000 n 0009636122 00000 n 0009636182 00000 n 0009636242 00000 n 0009636302 00000 n 0009636362 00000 n 0009636422 00000 n 0009636482 00000 n 0009636542 00000 n 0009636602 00000 n 0009636662 00000 n 0009636722 00000 n 0009636782 00000 n 0009636842 00000 n 0009636902 00000 n 0009636962 00000 n 0009637022 00000 n 0009637082 00000 n 0009637142 00000 n 0009637202 00000 n 0009637262 00000 n 0009637322 00000 n 0009637382 00000 n 0009637442 00000 n 0009637502 00000 n 0009637562 00000 n 0009637622 00000 n 0009637682 00000 n 0009637742 00000 n 0009637802 00000 n 0009637862 00000 n 0009637922 00000 n 0009637982 00000 n 0009638042 00000 n 0009638102 00000 n 0009638162 00000 n 0009638222 00000 n 0009638282 00000 n 0009638342 00000 n 0009638402 00000 n 0009638462 00000 n 0009638522 00000 n 0009638582 00000 n 0009638642 00000 n 0009638702 00000 n 0009638762 00000 n 0009638822 00000 n 0009638882 00000 n 0009638942 00000 n 0009639002 00000 n 0009639062 00000 n 0009639122 00000 n 0009639182 00000 n 0009639242 00000 n 0009639302 00000 n 0009639363 00000 n 0009639424 00000 n 0009639485 00000 n 0009639546 00000 n 0009639607 00000 n 0009639668 00000 n 0009639729 00000 n 0009639790 00000 n 0009639851 00000 n 0009639912 00000 n 0009639973 00000 n 0009640062 00000 n 0009640131 00000 n 0009640214 00000 n 0009640287 00000 n 0009640364 00000 n 0009640441 00000 n 0009640537 00000 n 0009640624 00000 n 0009640703 00000 n 0009640825 00000 n 0009640888 00000 n 0009640967 00000 n 0009641040 00000 n 0009641111 00000 n 0009641218 00000 n 0009641281 00000 n 0009641360 00000 n 0009641437 00000 n 0009641553 00000 n 0009641616 00000 n 0009641695 00000 n 0009641772 00000 n 0009641875 00000 n 0009641938 00000 n 0009642015 00000 n 0009642118 00000 n 0009642197 00000 n 0009642267 00000 n 0009642345 00000 n 0009642418 00000 n 0009642696 00000 n 0009642755 00000 n 0009642812 00000 n 0009642875 00000 n 0009642938 00000 n 0009642992 00000 n 0009643085 00000 n 0009643141 00000 n 0009643197 00000 n 0009643289 00000 n 0009643345 00000 n 0009643437 00000 n 0009643567 00000 n 0009643642 00000 n 0009643718 00000 n 0009643775 00000 n 0009643903 00000 n 0009643979 00000 n 0009644055 00000 n 0009644131 00000 n 0009644207 00000 n 0009644307 00000 n 0009644398 00000 n 0009644493 00000 n 0009644585 00000 n 0009644711 00000 n 0009644822 00000 n 0009644923 00000 n 0009645044 00000 n 0009645130 00000 n 0009645210 00000 n 0009645323 00000 n 0009645403 00000 n 0009645477 00000 n 0009645524 00000 n 0009645607 00000 n 0009645690 00000 n 0009645764 00000 n 0009645812 00000 n 0009645879 00000 n 0009645967 00000 n 0009646034 00000 n 0009646101 00000 n 0009646168 00000 n 0009646235 00000 n 0009646302 00000 n 0009646369 00000 n 0009646435 00000 n 0009646501 00000 n 0009646588 00000 n 0009646654 00000 n 0009646727 00000 n 0009646793 00000 n 0009646859 00000 n 0009646925 00000 n 0009646973 00000 n 0009647114 00000 n 0009647181 00000 n 0009647269 00000 n 0009647336 00000 n 0009647403 00000 n 0009647470 00000 n 0009647558 00000 n 0009647625 00000 n 0009647719 00000 n 0009647803 00000 n 0009647859 00000 n 0009647937 00000 n 0009647999 00000 n 0009648080 00000 n 0009648142 00000 n 0009648208 00000 n 0009648283 00000 n 0009648348 00000 n 0009648413 00000 n 0009648460 00000 n 0009648545 00000 n 0009648668 00000 n 0009648712 00000 n 0009648834 00000 n 0009648933 00000 n 0009648977 00000 n 0009649098 00000 n 0009649142 00000 n 0009649262 00000 n 0009649306 00000 n 0009649470 00000 n 0009649514 00000 n 0009649607 00000 n 0009649791 00000 n 0009649835 00000 n 0009649924 00000 n 0009649968 00000 n 0009650099 00000 n 0009650143 00000 n 0009650251 00000 n 0009650295 00000 n 0009650398 00000 n 0009650442 00000 n 0009650557 00000 n 0009650601 00000 n 0009650711 00000 n 0009650755 00000 n 0009650873 00000 n 0009650917 00000 n 0009651029 00000 n 0009651073 00000 n 0009651190 00000 n 0009651234 00000 n 0009651340 00000 n 0009651384 00000 n 0009651497 00000 n 0009651541 00000 n 0009651585 00000 n 0009651619 00000 n 0009651651 00000 n 0009651680 00000 n 0009651709 00000 n 0009651744 00000 n 0009651822 00000 n 0009651866 00000 n 0009651944 00000 n 0009652048 00000 n 0009652092 00000 n 0009652185 00000 n 0009652229 00000 n 0009652322 00000 n 0009652366 00000 n 0009652459 00000 n 0009652503 00000 n 0009652596 00000 n 0009652640 00000 n 0009652733 00000 n 0009652777 00000 n 0009652870 00000 n 0009652914 00000 n 0009653007 00000 n 0009653051 00000 n 0009653144 00000 n 0009653188 00000 n 0009653281 00000 n 0009653325 00000 n 0009653418 00000 n 0009653462 00000 n 0009653555 00000 n 0009653599 00000 n 0009653692 00000 n 0009653736 00000 n 0009653829 00000 n 0009653873 00000 n 0009653966 00000 n 0009654010 00000 n 0009654103 00000 n 0009654147 00000 n 0009654240 00000 n 0009654284 00000 n 0009654377 00000 n 0009654421 00000 n 0009654514 00000 n 0009654558 00000 n 0009654651 00000 n 0009654695 00000 n 0009654788 00000 n 0009654832 00000 n 0009654925 00000 n 0009654969 00000 n 0009655062 00000 n 0009655106 00000 n 0009655199 00000 n 0009655243 00000 n 0009655336 00000 n 0009655380 00000 n 0009655424 00000 n 0009655468 00000 n 0009655603 00000 n 0009655647 00000 n 0009655816 00000 n 0009655912 00000 n 0009655956 00000 n 0009656060 00000 n 0009656183 00000 n 0009656227 00000 n 0009656271 00000 n 0009656315 00000 n 0009656495 00000 n 0009656589 00000 n 0009656633 00000 n 0009656722 00000 n 0009656885 00000 n 0009656929 00000 n 0009657037 00000 n 0009657081 00000 n 0009657194 00000 n 0009657238 00000 n 0009657366 00000 n 0009657410 00000 n 0009657537 00000 n 0009657581 00000 n 0009657625 00000 n 0009657719 00000 n 0009657763 00000 n 0009657853 00000 n 0009658013 00000 n 0009658107 00000 n 0009658151 00000 n 0009658240 00000 n 0009658397 00000 n 0009658441 00000 n 0009658549 00000 n 0009658593 00000 n 0009658701 00000 n 0009658745 00000 n 0009658862 00000 n 0009658906 00000 n 0009659014 00000 n 0009659058 00000 n 0009659184 00000 n 0009659228 00000 n 0009659348 00000 n 0009659392 00000 n 0009659500 00000 n 0009659544 00000 n 0009659648 00000 n 0009659692 00000 n 0009659736 00000 n 0009659780 00000 n 0009659894 00000 n 0009659938 00000 n 0009660056 00000 n 0009660100 00000 n 0009660208 00000 n 0009660252 00000 n 0009660366 00000 n 0009660410 00000 n 0009660538 00000 n 0009660582 00000 n 0009660687 00000 n 0009660731 00000 n 0009660775 00000 n 0009660869 00000 n 0009660913 00000 n 0009661003 00000 n 0009661159 00000 n 0009661203 00000 n 0009661330 00000 n 0009661374 00000 n 0009661492 00000 n 0009661536 00000 n 0009661651 00000 n 0009661695 00000 n 0009661807 00000 n 0009661851 00000 n 0009661971 00000 n 0009662015 00000 n 0009662134 00000 n 0009662178 00000 n 0009662294 00000 n 0009662338 00000 n 0009662447 00000 n 0009662491 00000 n 0009662609 00000 n 0009662653 00000 n 0009662789 00000 n 0009662833 00000 n 0009662954 00000 n 0009662998 00000 n 0009663103 00000 n 0009663147 00000 n 0009663191 00000 n 0009663285 00000 n 0009663329 00000 n 0009663418 00000 n 0009663582 00000 n 0009663626 00000 n 0009663748 00000 n 0009663792 00000 n 0009663914 00000 n 0009663958 00000 n 0009664079 00000 n 0009664123 00000 n 0009664238 00000 n 0009664282 00000 n 0009664438 00000 n 0009664533 00000 n 0009664577 00000 n 0009664621 00000 n 0009664665 00000 n 0009664759 00000 n 0009664803 00000 n 0009664892 00000 n 0009665063 00000 n 0009665157 00000 n 0009665201 00000 n 0009665291 00000 n 0009665448 00000 n 0009665492 00000 n 0009665621 00000 n 0009665665 00000 n 0009665778 00000 n 0009665822 00000 n 0009665933 00000 n 0009665977 00000 n 0009666087 00000 n 0009666131 00000 n 0009666252 00000 n 0009666296 00000 n 0009666443 00000 n 0009666540 00000 n 0009666584 00000 n 0009666702 00000 n 0009666817 00000 n 0009666861 00000 n 0009666974 00000 n 0009667018 00000 n 0009667132 00000 n 0009667176 00000 n 0009667220 00000 n 0009667264 00000 n 0009667308 00000 n 0009667352 00000 n 0009667477 00000 n 0009667521 00000 n 0009667635 00000 n 0009667679 00000 n 0009667789 00000 n 0009667833 00000 n 0009667940 00000 n 0009667984 00000 n 0009668095 00000 n 0009668139 00000 n 0009668266 00000 n 0009668310 00000 n 0009668429 00000 n 0009668473 00000 n 0009668592 00000 n 0009668636 00000 n 0009668755 00000 n 0009668799 00000 n 0009668903 00000 n 0009668947 00000 n 0009669049 00000 n 0009669093 00000 n 0009669201 00000 n 0009669245 00000 n 0009669368 00000 n 0009669412 00000 n 0009669514 00000 n 0009669558 00000 n 0009669602 00000 n 0009669696 00000 n 0009669740 00000 n 0009669829 00000 n 0009669989 00000 n 0009670033 00000 n 0009670147 00000 n 0009670191 00000 n 0009670314 00000 n 0009670358 00000 n 0009670481 00000 n 0009670525 00000 n 0009670646 00000 n 0009670690 00000 n 0009670809 00000 n 0009670853 00000 n 0009670977 00000 n 0009671021 00000 n 0009671134 00000 n 0009671178 00000 n 0009671290 00000 n 0009671334 00000 n 0009671461 00000 n 0009671505 00000 n 0009671618 00000 n 0009671662 00000 n 0009671773 00000 n 0009671817 00000 n 0009671929 00000 n 0009671973 00000 n 0009672017 00000 n 0009672111 00000 n 0009672155 00000 n 0009672244 00000 n 0009672403 00000 n 0009672447 00000 n 0009672566 00000 n 0009672610 00000 n 0009672725 00000 n 0009672769 00000 n 0009672889 00000 n 0009672933 00000 n 0009673043 00000 n 0009673087 00000 n 0009673196 00000 n 0009673240 00000 n 0009673359 00000 n 0009673403 00000 n 0009673447 00000 n 0009673541 00000 n 0009673585 00000 n 0009673675 00000 n 0009673827 00000 n 0009673871 00000 n 0009673984 00000 n 0009674028 00000 n 0009674141 00000 n 0009674185 00000 n 0009674301 00000 n 0009674395 00000 n 0009674439 00000 n 0009674528 00000 n 0009674680 00000 n 0009674724 00000 n 0009674835 00000 n 0009674879 00000 n 0009674996 00000 n 0009675040 00000 n 0009675147 00000 n 0009675191 00000 n 0009675308 00000 n 0009675352 00000 n 0009675480 00000 n 0009675524 00000 n 0009675655 00000 n 0009675699 00000 n 0009675814 00000 n 0009675858 00000 n 0009675981 00000 n 0009676025 00000 n 0009676139 00000 n 0009676183 00000 n 0009676293 00000 n 0009676337 00000 n 0009676381 00000 n 0009676425 00000 n 0009676532 00000 n 0009676576 00000 n 0009676685 00000 n 0009676729 00000 n 0009676847 00000 n 0009676891 00000 n 0009677028 00000 n 0009677072 00000 n 0009677193 00000 n 0009677237 00000 n 0009677368 00000 n 0009677412 00000 n 0009677529 00000 n 0009677573 00000 n 0009677679 00000 n 0009677723 00000 n 0009677842 00000 n 0009677886 00000 n 0009678001 00000 n 0009678045 00000 n 0009678157 00000 n 0009678201 00000 n 0009678319 00000 n 0009678363 00000 n 0009678475 00000 n 0009678519 00000 n 0009678563 00000 n 0009678657 00000 n 0009678701 00000 n 0009678791 00000 n 0009678956 00000 n 0009679000 00000 n 0009679122 00000 n 0009679166 00000 n 0009679283 00000 n 0009679327 00000 n 0009679442 00000 n 0009679486 00000 n 0009679631 00000 n 0009679675 00000 n 0009679788 00000 n 0009679832 00000 n 0009679944 00000 n 0009679988 00000 n 0009680105 00000 n 0009680149 00000 n 0009680281 00000 n 0009680325 00000 n 0009680441 00000 n 0009680485 00000 n 0009680602 00000 n 0009680646 00000 n 0009680764 00000 n 0009680808 00000 n 0009680917 00000 n 0009680961 00000 n 0009681084 00000 n 0009681128 00000 n 0009681249 00000 n 0009681293 00000 n 0009681431 00000 n 0009681475 00000 n 0009681588 00000 n 0009681632 00000 n 0009681748 00000 n 0009681792 00000 n 0009681913 00000 n 0009681957 00000 n 0009682072 00000 n 0009682116 00000 n 0009682228 00000 n 0009682272 00000 n 0009682384 00000 n 0009682428 00000 n 0009682472 00000 n 0009682565 00000 n 0009682609 00000 n 0009682698 00000 n 0009682857 00000 n 0009682901 00000 n 0009683020 00000 n 0009683064 00000 n 0009683184 00000 n 0009683228 00000 n 0009683351 00000 n 0009683395 00000 n 0009683502 00000 n 0009683546 00000 n 0009683686 00000 n 0009683730 00000 n 0009683846 00000 n 0009683890 00000 n 0009683994 00000 n 0009684038 00000 n 0009684148 00000 n 0009684192 00000 n 0009684302 00000 n 0009684346 00000 n 0009684457 00000 n 0009684501 00000 n 0009684545 00000 n 0009684638 00000 n 0009684682 00000 n 0009684771 00000 n 0009684934 00000 n 0009684978 00000 n 0009685088 00000 n 0009685132 00000 n 0009685247 00000 n 0009685291 00000 n 0009685407 00000 n 0009685451 00000 n 0009685566 00000 n 0009685610 00000 n 0009685722 00000 n 0009685766 00000 n 0009685880 00000 n 0009685924 00000 n 0009686052 00000 n 0009686096 00000 n 0009686207 00000 n 0009686251 00000 n 0009686362 00000 n 0009686406 00000 n 0009686527 00000 n 0009686571 00000 n 0009686682 00000 n 0009686726 00000 n 0009686848 00000 n 0009686892 00000 n 0009687002 00000 n 0009687046 00000 n 0009687156 00000 n 0009687200 00000 n 0009687309 00000 n 0009687353 00000 n 0009687468 00000 n 0009687512 00000 n 0009687556 00000 n 0009687649 00000 n 0009687693 00000 n 0009687782 00000 n 0009687959 00000 n 0009688052 00000 n 0009688096 00000 n 0009688185 00000 n 0009688349 00000 n 0009688393 00000 n 0009688512 00000 n 0009688556 00000 n 0009688686 00000 n 0009688730 00000 n 0009688855 00000 n 0009688899 00000 n 0009689016 00000 n 0009689060 00000 n 0009689173 00000 n 0009689217 00000 n 0009689329 00000 n 0009689373 00000 n 0009689498 00000 n 0009689542 00000 n 0009689654 00000 n 0009689698 00000 n 0009689816 00000 n 0009689860 00000 n 0009689975 00000 n 0009690019 00000 n 0009690128 00000 n 0009690172 00000 n 0009690216 00000 n 0009690260 00000 n 0009690377 00000 n 0009690421 00000 n 0009690533 00000 n 0009690577 00000 n 0009690689 00000 n 0009690733 00000 n 0009690855 00000 n 0009690899 00000 n 0009691018 00000 n 0009691062 00000 n 0009691168 00000 n 0009691212 00000 n 0009691324 00000 n 0009691368 00000 n 0009691477 00000 n 0009691521 00000 n 0009691565 00000 n 0009691658 00000 n 0009691702 00000 n 0009691791 00000 n 0009691956 00000 n 0009692000 00000 n 0009692125 00000 n 0009692169 00000 n 0009692280 00000 n 0009692324 00000 n 0009692436 00000 n 0009692480 00000 n 0009692599 00000 n 0009692643 00000 n 0009692753 00000 n 0009692797 00000 n 0009692914 00000 n 0009692958 00000 n 0009693064 00000 n 0009693108 00000 n 0009693227 00000 n 0009693271 00000 n 0009693385 00000 n 0009693429 00000 n 0009693553 00000 n 0009693597 00000 n 0009693709 00000 n 0009693753 00000 n 0009693858 00000 n 0009693902 00000 n 0009694049 00000 n 0009694093 00000 n 0009694213 00000 n 0009694257 00000 n 0009694301 00000 n 0009694394 00000 n 0009694438 00000 n 0009694527 00000 n 0009694679 00000 n 0009694723 00000 n 0009694859 00000 n 0009694903 00000 n 0009695020 00000 n 0009695064 00000 n 0009695196 00000 n 0009695240 00000 n 0009695356 00000 n 0009695400 00000 n 0009695532 00000 n 0009695576 00000 n 0009695714 00000 n 0009695758 00000 n 0009695865 00000 n 0009695909 00000 n 0009696041 00000 n 0009696085 00000 n 0009696196 00000 n 0009696240 00000 n 0009696366 00000 n 0009696410 00000 n 0009696559 00000 n 0009696603 00000 n 0009696712 00000 n 0009696756 00000 n 0009696868 00000 n 0009696912 00000 n 0009697018 00000 n 0009697062 00000 n 0009697204 00000 n 0009697248 00000 n 0009697355 00000 n 0009697399 00000 n 0009697532 00000 n 0009697576 00000 n 0009697686 00000 n 0009697730 00000 n 0009697856 00000 n 0009697900 00000 n 0009698034 00000 n 0009698127 00000 n 0009698171 00000 n 0009698260 00000 n 0009698304 00000 n 0009698423 00000 n 0009698467 00000 n 0009698591 00000 n 0009698635 00000 n 0009698741 00000 n 0009698785 00000 n 0009698922 00000 n 0009698966 00000 n 0009699010 00000 n 0009699054 00000 n 0009699158 00000 n 0009699202 00000 n 0009699313 00000 n 0009699357 00000 n 0009699468 00000 n 0009699512 00000 n 0009699645 00000 n 0009699689 00000 n 0009699808 00000 n 0009699852 00000 n 0009699966 00000 n 0009700010 00000 n 0009700119 00000 n 0009700163 00000 n 0009700273 00000 n 0009700317 00000 n 0009700427 00000 n 0009700471 00000 n 0009700580 00000 n 0009700624 00000 n 0009700734 00000 n 0009700778 00000 n 0009700888 00000 n 0009700932 00000 n 0009701042 00000 n 0009701086 00000 n 0009701207 00000 n 0009701251 00000 n 0009701363 00000 n 0009701407 00000 n 0009701451 00000 n 0009701544 00000 n 0009701588 00000 n 0009701677 00000 n 0009701721 00000 n 0009701846 00000 n 0009701890 00000 n 0009702013 00000 n 0009702057 00000 n 0009702172 00000 n 0009702216 00000 n 0009702319 00000 n 0009702363 00000 n 0009702505 00000 n 0009702600 00000 n 0009702644 00000 n 0009702755 00000 n 0009702896 00000 n 0009702940 00000 n 0009703080 00000 n 0009703124 00000 n 0009703232 00000 n 0009703276 00000 n 0009703386 00000 n 0009703430 00000 n 0009703474 00000 n 0009703518 00000 n 0009703681 00000 n 0009703787 00000 n 0009703831 00000 n 0009703932 00000 n 0009704088 00000 n 0009704132 00000 n 0009704237 00000 n 0009704281 00000 n 0009704387 00000 n 0009704431 00000 n 0009704534 00000 n 0009704578 00000 n 0009704683 00000 n 0009704727 00000 n 0009704831 00000 n 0009704875 00000 n 0009704919 00000 n 0009705007 00000 n 0009705051 00000 n 0009705138 00000 n 0009705182 00000 n 0009705309 00000 n 0009705353 00000 n 0009705461 00000 n 0009705505 00000 n 0009705549 00000 n trailer <<20D01D95D6595E4FB76FC5DD628561C5>]>> startxref 9705593 %%EOF 2 0 obj <> endobj 3 0 obj <> endobj 5 0 obj <>>>/Rotate 0/Type/Page>> endobj 6 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text/ImageC]/XObject<>>>/Rotate 0/Type/Page>> endobj 7 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 0/Type/Page>> endobj 8 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1/Type/Page>> endobj 9 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 2/Type/Page>> endobj 10 0 obj <>/Font<>/ProcSet[/PDF/Text/ImageB]/XObject<>>>/Rotate 0/Type/Page>> endobj 11 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/Type/Page>> endobj 12 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/Type/Page>> endobj 13 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 3/Type/Page>> endobj 14 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/Type/Page>> endobj 34 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 4/Type/Page>> endobj 75 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 5/Type/Page>> endobj 112 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 6/Type/Page>> endobj 151 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 7/Type/Page>> endobj 190 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 8/Type/Page>> endobj 229 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 9/Type/Page>> endobj 268 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 10/Type/Page>> endobj 307 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 11/Type/Page>> endobj 346 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 12/Type/Page>> endobj 356 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 13/Type/Page>> endobj 358 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 14/Type/Page>> endobj 359 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 15/Type/Page>> endobj 361 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 16/Type/Page>> endobj 362 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 17/Type/Page>> endobj 363 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 18/Type/Page>> endobj 364 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/Type/Page>> endobj 366 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 20/Type/Page>> endobj 367 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 21/Type/Page>> endobj 368 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 22/Type/Page>> endobj 369 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/Type/Page>> endobj 371 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 24/Type/Page>> endobj 372 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 25/Type/Page>> endobj 373 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 26/Type/Page>> endobj 374 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 27/Type/Page>> endobj 378 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 28/Type/Page>> endobj 380 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 29/Type/Page>> endobj 381 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 30/Type/Page>> endobj 383 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 31/Type/Page>> endobj 384 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 32/Type/Page>> endobj 385 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 33/Type/Page>> endobj 386 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 34/Type/Page>> endobj 388 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 35/Type/Page>> endobj 389 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 36/Type/Page>> endobj 391 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 37/Type/Page>> endobj 392 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 38/Type/Page>> endobj 393 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 39/Type/Page>> endobj 394 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 40/Type/Page>> endobj 396 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 41/Type/Page>> endobj 397 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 42/Type/Page>> endobj 399 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 43/Type/Page>> endobj 400 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 44/Type/Page>> endobj 402 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 45/Type/Page>> endobj 403 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 46/Type/Page>> endobj 405 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 47/Type/Page>> endobj 407 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 48/Type/Page>> endobj 408 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 49/Type/Page>> endobj 410 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 50/Type/Page>> endobj 411 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 51/Type/Page>> endobj 416 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 52/Type/Page>> endobj 418 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 53/Type/Page>> endobj 419 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 54/Type/Page>> endobj 420 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 55/Type/Page>> endobj 421 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 56/Type/Page>> endobj 423 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 57/Type/Page>> endobj 424 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 58/Type/Page>> endobj 426 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 59/Type/Page>> endobj 429 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 60/Type/Page>> endobj 432 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 61/Type/Page>> endobj 437 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 62/Type/Page>> endobj 440 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 63/Type/Page>> endobj 442 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 64/Type/Page>> endobj 444 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 65/Type/Page>> endobj 445 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 66/Type/Page>> endobj 446 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 67/Type/Page>> endobj 448 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 68/Type/Page>> endobj 450 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 69/Type/Page>> endobj 451 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 70/Type/Page>> endobj 452 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 71/Type/Page>> endobj 453 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 72/Type/Page>> endobj 454 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 73/Type/Page>> endobj 455 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 74/Type/Page>> endobj 456 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 75/Type/Page>> endobj 458 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 76/Type/Page>> endobj 459 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 77/Type/Page>> endobj 460 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 78/Type/Page>> endobj 461 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 79/Type/Page>> endobj 463 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 80/Type/Page>> endobj 464 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 81/Type/Page>> endobj 465 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 82/Type/Page>> endobj 466 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 83/Type/Page>> endobj 468 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 84/Type/Page>> endobj 471 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 85/Type/Page>> endobj 472 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 86/Type/Page>> endobj 474 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 87/Type/Page>> endobj 478 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 88/Type/Page>> endobj 480 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 89/Type/Page>> endobj 481 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 90/Type/Page>> endobj 482 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 91/Type/Page>> endobj 483 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 92/Type/Page>> endobj 487 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 93/Type/Page>> endobj 488 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 94/Type/Page>> endobj 489 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 95/Type/Page>> endobj 490 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 96/Type/Page>> endobj 491 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 97/Type/Page>> endobj 493 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 98/Type/Page>> endobj 496 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 99/Type/Page>> endobj 497 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 100/Type/Page>> endobj 499 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 101/Type/Page>> endobj 500 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 102/Type/Page>> endobj 501 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 103/Type/Page>> endobj 503 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 104/Type/Page>> endobj 504 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 105/Type/Page>> endobj 506 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 106/Type/Page>> endobj 507 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 107/Type/Page>> endobj 509 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 108/Type/Page>> endobj 511 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 109/Type/Page>> endobj 512 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 110/Type/Page>> endobj 513 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 111/Type/Page>> endobj 514 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 112/Type/Page>> endobj 515 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 113/Type/Page>> endobj 517 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 114/Type/Page>> endobj 519 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 115/Type/Page>> endobj 520 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 116/Type/Page>> endobj 522 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 117/Type/Page>> endobj 523 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 118/Type/Page>> endobj 524 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/Type/Page>> endobj 528 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 120/Type/Page>> endobj 529 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 121/Type/Page>> endobj 531 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 122/Type/Page>> endobj 532 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 123/Type/Page>> endobj 533 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 124/Type/Page>> endobj 535 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 125/Type/Page>> endobj 537 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 126/Type/Page>> endobj 538 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 127/Type/Page>> endobj 540 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 128/Type/Page>> endobj 542 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 129/Type/Page>> endobj 543 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 130/Type/Page>> endobj 545 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 131/Type/Page>> endobj 546 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 132/Type/Page>> endobj 548 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 133/Type/Page>> endobj 549 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 134/Type/Page>> endobj 551 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 135/Type/Page>> endobj 553 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 136/Type/Page>> endobj 554 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 137/Type/Page>> endobj 556 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 138/Type/Page>> endobj 558 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 139/Type/Page>> endobj 560 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 140/Type/Page>> endobj 561 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 141/Type/Page>> endobj 562 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 142/Type/Page>> endobj 564 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 143/Type/Page>> endobj 565 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 144/Type/Page>> endobj 566 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 145/Type/Page>> endobj 568 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 146/Type/Page>> endobj 570 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 147/Type/Page>> endobj 571 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 148/Type/Page>> endobj 572 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 149/Type/Page>> endobj 574 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 150/Type/Page>> endobj 576 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 151/Type/Page>> endobj 577 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 152/Type/Page>> endobj 579 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 153/Type/Page>> endobj 580 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 154/Type/Page>> endobj 581 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 155/Type/Page>> endobj 583 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 156/Type/Page>> endobj 585 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 157/Type/Page>> endobj 586 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 158/Type/Page>> endobj 587 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 159/Type/Page>> endobj 588 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 160/Type/Page>> endobj 589 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 161/Type/Page>> endobj 591 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 162/Type/Page>> endobj 592 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 163/Type/Page>> endobj 594 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 164/Type/Page>> endobj 595 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 165/Type/Page>> endobj 596 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 166/Type/Page>> endobj 599 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 167/Type/Page>> endobj 600 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 168/Type/Page>> endobj 601 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 169/Type/Page>> endobj 605 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 170/Type/Page>> endobj 606 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 171/Type/Page>> endobj 609 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 172/Type/Page>> endobj 610 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 173/Type/Page>> endobj 611 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 174/Type/Page>> endobj 613 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 175/Type/Page>> endobj 614 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 176/Type/Page>> endobj 616 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 177/Type/Page>> endobj 617 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 178/Type/Page>> endobj 619 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 179/Type/Page>> endobj 621 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 180/Type/Page>> endobj 622 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 181/Type/Page>> endobj 623 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 182/Type/Page>> endobj 625 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 183/Type/Page>> endobj 627 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 184/Type/Page>> endobj 628 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 185/Type/Page>> endobj 630 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 186/Type/Page>> endobj 631 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 187/Type/Page>> endobj 632 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 188/Type/Page>> endobj 633 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 189/Type/Page>> endobj 634 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 190/Type/Page>> endobj 636 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 191/Type/Page>> endobj 637 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 192/Type/Page>> endobj 638 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 193/Type/Page>> endobj 640 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 194/Type/Page>> endobj 641 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 195/Type/Page>> endobj 642 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 196/Type/Page>> endobj 643 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 197/Type/Page>> endobj 645 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 198/Type/Page>> endobj 646 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 199/Type/Page>> endobj 647 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 200/Type/Page>> endobj 649 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 201/Type/Page>> endobj 651 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 202/Type/Page>> endobj 652 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/Type/Page>> endobj 656 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 204/Type/Page>> endobj 657 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 205/Type/Page>> endobj 658 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 206/Type/Page>> endobj 659 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 207/Type/Page>> endobj 661 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 208/Type/Page>> endobj 663 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 209/Type/Page>> endobj 665 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 210/Type/Page>> endobj 667 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 211/Type/Page>> endobj 669 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 212/Type/Page>> endobj 671 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 213/Type/Page>> endobj 673 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 214/Type/Page>> endobj 674 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 215/Type/Page>> endobj 676 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 216/Type/Page>> endobj 677 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 217/Type/Page>> endobj 678 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 218/Type/Page>> endobj 679 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 219/Type/Page>> endobj 680 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 220/Type/Page>> endobj 681 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 221/Type/Page>> endobj 682 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 222/Type/Page>> endobj 684 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 223/Type/Page>> endobj 688 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 224/Type/Page>> endobj 690 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 225/Type/Page>> endobj 691 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 226/Type/Page>> endobj 692 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 227/Type/Page>> endobj 693 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 228/Type/Page>> endobj 694 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 229/Type/Page>> endobj 697 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 230/Type/Page>> endobj 699 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 231/Type/Page>> endobj 700 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 232/Type/Page>> endobj 702 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 233/Type/Page>> endobj 704 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 234/Type/Page>> endobj 705 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 235/Type/Page>> endobj 706 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 236/Type/Page>> endobj 708 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 237/Type/Page>> endobj 709 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 238/Type/Page>> endobj 710 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 239/Type/Page>> endobj 712 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 240/Type/Page>> endobj 713 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 241/Type/Page>> endobj 714 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 242/Type/Page>> endobj 715 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 243/Type/Page>> endobj 716 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 244/Type/Page>> endobj 717 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 245/Type/Page>> endobj 718 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 246/Type/Page>> endobj 720 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 247/Type/Page>> endobj 721 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 248/Type/Page>> endobj 722 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 249/Type/Page>> endobj 723 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 250/Type/Page>> endobj 724 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 251/Type/Page>> endobj 726 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 252/Type/Page>> endobj 727 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 253/Type/Page>> endobj 731 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 254/Type/Page>> endobj 732 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 255/Type/Page>> endobj 734 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 256/Type/Page>> endobj 735 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 257/Type/Page>> endobj 736 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 258/Type/Page>> endobj 737 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 259/Type/Page>> endobj 738 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 260/Type/Page>> endobj 740 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 261/Type/Page>> endobj 741 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 262/Type/Page>> endobj 743 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 263/Type/Page>> endobj 744 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 264/Type/Page>> endobj 746 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 265/Type/Page>> endobj 747 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 266/Type/Page>> endobj 748 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 267/Type/Page>> endobj 749 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 268/Type/Page>> endobj 750 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 269/Type/Page>> endobj 751 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 270/Type/Page>> endobj 753 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 271/Type/Page>> endobj 756 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 272/Type/Page>> endobj 757 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 273/Type/Page>> endobj 758 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 274/Type/Page>> endobj 759 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 275/Type/Page>> endobj 761 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 276/Type/Page>> endobj 762 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 277/Type/Page>> endobj 763 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 278/Type/Page>> endobj 764 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 279/Type/Page>> endobj 765 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 280/Type/Page>> endobj 766 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 281/Type/Page>> endobj 768 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 282/Type/Page>> endobj 769 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 283/Type/Page>> endobj 770 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 284/Type/Page>> endobj 771 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 285/Type/Page>> endobj 772 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 286/Type/Page>> endobj 774 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 287/Type/Page>> endobj 775 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 288/Type/Page>> endobj 776 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 289/Type/Page>> endobj 777 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 290/Type/Page>> endobj 779 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 291/Type/Page>> endobj 780 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 292/Type/Page>> endobj 781 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 293/Type/Page>> endobj 782 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 294/Type/Page>> endobj 783 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 295/Type/Page>> endobj 785 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 296/Type/Page>> endobj 786 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 297/Type/Page>> endobj 787 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 298/Type/Page>> endobj 788 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 299/Type/Page>> endobj 789 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 300/Type/Page>> endobj 790 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 301/Type/Page>> endobj 792 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 302/Type/Page>> endobj 794 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 303/Type/Page>> endobj 795 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 304/Type/Page>> endobj 796 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 305/Type/Page>> endobj 797 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 306/Type/Page>> endobj 799 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 307/Type/Page>> endobj 800 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 308/Type/Page>> endobj 802 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 309/Type/Page>> endobj 803 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 310/Type/Page>> endobj 804 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/Type/Page>> endobj 808 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 312/Type/Page>> endobj 809 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 313/Type/Page>> endobj 810 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 314/Type/Page>> endobj 811 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 315/Type/Page>> endobj 812 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 316/Type/Page>> endobj 814 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 317/Type/Page>> endobj 815 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 318/Type/Page>> endobj 816 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 319/Type/Page>> endobj 818 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 320/Type/Page>> endobj 819 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 321/Type/Page>> endobj 821 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 322/Type/Page>> endobj 823 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 323/Type/Page>> endobj 824 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 324/Type/Page>> endobj 826 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 325/Type/Page>> endobj 828 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 326/Type/Page>> endobj 829 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 327/Type/Page>> endobj 830 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 328/Type/Page>> endobj 831 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 329/Type/Page>> endobj 833 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 330/Type/Page>> endobj 834 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 331/Type/Page>> endobj 835 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 332/Type/Page>> endobj 836 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 333/Type/Page>> endobj 838 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 334/Type/Page>> endobj 839 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 335/Type/Page>> endobj 840 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 336/Type/Page>> endobj 842 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 337/Type/Page>> endobj 843 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 338/Type/Page>> endobj 845 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 339/Type/Page>> endobj 849 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 340/Type/Page>> endobj 850 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 341/Type/Page>> endobj 851 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 342/Type/Page>> endobj 852 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 343/Type/Page>> endobj 853 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 344/Type/Page>> endobj 854 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 345/Type/Page>> endobj 855 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 346/Type/Page>> endobj 856 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 347/Type/Page>> endobj 857 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 348/Type/Page>> endobj 858 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 349/Type/Page>> endobj 860 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 350/Type/Page>> endobj 861 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 351/Type/Page>> endobj 862 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 352/Type/Page>> endobj 864 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 353/Type/Page>> endobj 866 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 354/Type/Page>> endobj 867 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 355/Type/Page>> endobj 868 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 356/Type/Page>> endobj 870 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 357/Type/Page>> endobj 871 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 358/Type/Page>> endobj 873 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 359/Type/Page>> endobj 874 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 360/Type/Page>> endobj 875 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 361/Type/Page>> endobj 877 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 362/Type/Page>> endobj 879 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 363/Type/Page>> endobj 880 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 364/Type/Page>> endobj 882 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 365/Type/Page>> endobj 883 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 366/Type/Page>> endobj 884 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 367/Type/Page>> endobj 885 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 368/Type/Page>> endobj 886 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 369/Type/Page>> endobj 887 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 370/Type/Page>> endobj 889 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 371/Type/Page>> endobj 890 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 372/Type/Page>> endobj 892 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 373/Type/Page>> endobj 894 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 374/Type/Page>> endobj 895 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 375/Type/Page>> endobj 897 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 376/Type/Page>> endobj 898 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 377/Type/Page>> endobj 899 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 378/Type/Page>> endobj 900 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 379/Type/Page>> endobj 901 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 380/Type/Page>> endobj 902 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 381/Type/Page>> endobj 904 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 382/Type/Page>> endobj 905 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 383/Type/Page>> endobj 906 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 384/Type/Page>> endobj 907 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 385/Type/Page>> endobj 909 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 386/Type/Page>> endobj 910 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 387/Type/Page>> endobj 911 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 388/Type/Page>> endobj 912 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 389/Type/Page>> endobj 913 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 390/Type/Page>> endobj 914 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 391/Type/Page>> endobj 916 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 392/Type/Page>> endobj 917 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 393/Type/Page>> endobj 919 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 394/Type/Page>> endobj 920 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 395/Type/Page>> endobj 921 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 396/Type/Page>> endobj 922 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 397/Type/Page>> endobj 923 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 398/Type/Page>> endobj 924 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 399/Type/Page>> endobj 926 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 400/Type/Page>> endobj 927 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 401/Type/Page>> endobj 928 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 402/Type/Page>> endobj 930 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 403/Type/Page>> endobj 932 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 404/Type/Page>> endobj 933 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 405/Type/Page>> endobj 935 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 406/Type/Page>> endobj 936 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 407/Type/Page>> endobj 938 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 408/Type/Page>> endobj 939 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 409/Type/Page>> endobj 943 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 410/Type/Page>> endobj 945 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 411/Type/Page>> endobj 947 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 412/Type/Page>> endobj 948 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 413/Type/Page>> endobj 949 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 414/Type/Page>> endobj 951 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 415/Type/Page>> endobj 952 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 416/Type/Page>> endobj 953 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 417/Type/Page>> endobj 954 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 418/Type/Page>> endobj 955 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 419/Type/Page>> endobj 956 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 420/Type/Page>> endobj 957 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 421/Type/Page>> endobj 958 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 422/Type/Page>> endobj 959 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 423/Type/Page>> endobj 961 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 424/Type/Page>> endobj 962 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 425/Type/Page>> endobj 964 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 426/Type/Page>> endobj 965 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 427/Type/Page>> endobj 966 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 428/Type/Page>> endobj 968 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 429/Type/Page>> endobj 969 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 430/Type/Page>> endobj 970 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 431/Type/Page>> endobj 971 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 432/Type/Page>> endobj 972 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 433/Type/Page>> endobj 974 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 434/Type/Page>> endobj 975 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 435/Type/Page>> endobj 977 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 436/Type/Page>> endobj 978 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 437/Type/Page>> endobj 979 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 438/Type/Page>> endobj 980 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 439/Type/Page>> endobj 983 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 440/Type/Page>> endobj 984 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 441/Type/Page>> endobj 985 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 442/Type/Page>> endobj 986 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 443/Type/Page>> endobj 988 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 444/Type/Page>> endobj 990 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 445/Type/Page>> endobj 991 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 446/Type/Page>> endobj 992 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 447/Type/Page>> endobj 993 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 448/Type/Page>> endobj 995 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 449/Type/Page>> endobj 996 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 450/Type/Page>> endobj 997 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/Type/Page>> endobj 1001 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 452/Type/Page>> endobj 1003 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 453/Type/Page>> endobj 1004 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 454/Type/Page>> endobj 1005 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 455/Type/Page>> endobj 1006 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 456/Type/Page>> endobj 1009 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 457/Type/Page>> endobj 1010 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 458/Type/Page>> endobj 1011 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 459/Type/Page>> endobj 1012 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 460/Type/Page>> endobj 1013 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 461/Type/Page>> endobj 1014 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 462/Type/Page>> endobj 1015 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 463/Type/Page>> endobj 1016 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 464/Type/Page>> endobj 1017 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 465/Type/Page>> endobj 1019 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 466/Type/Page>> endobj 1021 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 467/Type/Page>> endobj 1023 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 468/Type/Page>> endobj 1025 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 469/Type/Page>> endobj 1026 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 470/Type/Page>> endobj 1027 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 471/Type/Page>> endobj 1028 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 472/Type/Page>> endobj 1030 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 473/Type/Page>> endobj 1031 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 474/Type/Page>> endobj 1032 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 475/Type/Page>> endobj 1033 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 476/Type/Page>> endobj 1034 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 477/Type/Page>> endobj 1036 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 478/Type/Page>> endobj 1037 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 479/Type/Page>> endobj 1039 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 480/Type/Page>> endobj 1040 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 481/Type/Page>> endobj 1041 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 482/Type/Page>> endobj 1042 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 483/Type/Page>> endobj 1044 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 484/Type/Page>> endobj 1045 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 485/Type/Page>> endobj 1046 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 486/Type/Page>> endobj 1047 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 487/Type/Page>> endobj 1049 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 488/Type/Page>> endobj 1051 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 489/Type/Page>> endobj 1055 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 490/Type/Page>> endobj 1056 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 491/Type/Page>> endobj 1057 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 492/Type/Page>> endobj 1059 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 493/Type/Page>> endobj 1060 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 494/Type/Page>> endobj 1061 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 495/Type/Page>> endobj 1063 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 496/Type/Page>> endobj 1064 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 497/Type/Page>> endobj 1065 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 498/Type/Page>> endobj 1066 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 499/Type/Page>> endobj 1068 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 500/Type/Page>> endobj 1070 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 501/Type/Page>> endobj 1071 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 502/Type/Page>> endobj 1072 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 503/Type/Page>> endobj 1073 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 504/Type/Page>> endobj 1074 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 505/Type/Page>> endobj 1076 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 506/Type/Page>> endobj 1078 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 507/Type/Page>> endobj 1082 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 508/Type/Page>> endobj 1083 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 509/Type/Page>> endobj 1084 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 510/Type/Page>> endobj 1085 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 511/Type/Page>> endobj 1087 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 512/Type/Page>> endobj 1088 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 513/Type/Page>> endobj 1089 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 514/Type/Page>> endobj 1090 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 515/Type/Page>> endobj 1091 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 516/Type/Page>> endobj 1092 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 517/Type/Page>> endobj 1093 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 518/Type/Page>> endobj 1094 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 519/Type/Page>> endobj 1095 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 520/Type/Page>> endobj 1096 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 521/Type/Page>> endobj 1097 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 522/Type/Page>> endobj 1098 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 523/Type/Page>> endobj 1099 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 524/Type/Page>> endobj 1100 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 525/Type/Page>> endobj 1101 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 526/Type/Page>> endobj 1103 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 527/Type/Page>> endobj 1104 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 528/Type/Page>> endobj 1106 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 529/Type/Page>> endobj 1107 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 530/Type/Page>> endobj 1108 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 531/Type/Page>> endobj 1109 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 532/Type/Page>> endobj 1111 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 533/Type/Page>> endobj 1112 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 534/Type/Page>> endobj 1113 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 535/Type/Page>> endobj 1115 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 536/Type/Page>> endobj 1118 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 537/Type/Page>> endobj 1120 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 538/Type/Page>> endobj 1121 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 539/Type/Page>> endobj 1122 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 540/Type/Page>> endobj 1123 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 541/Type/Page>> endobj 1124 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 542/Type/Page>> endobj 1125 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 543/Type/Page>> endobj 1126 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 544/Type/Page>> endobj 1127 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 545/Type/Page>> endobj 1128 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 546/Type/Page>> endobj 1129 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 547/Type/Page>> endobj 1131 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 548/Type/Page>> endobj 1132 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 549/Type/Page>> endobj 1134 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 550/Type/Page>> endobj 1135 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 551/Type/Page>> endobj 1137 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 552/Type/Page>> endobj 1138 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 553/Type/Page>> endobj 1139 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 554/Type/Page>> endobj 1140 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 555/Type/Page>> endobj 1141 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 556/Type/Page>> endobj 1142 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 557/Type/Page>> endobj 1144 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 558/Type/Page>> endobj 1145 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 559/Type/Page>> endobj 1148 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 560/Type/Page>> endobj 1150 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 561/Type/Page>> endobj 1151 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 562/Type/Page>> endobj 1152 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 563/Type/Page>> endobj 1153 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 564/Type/Page>> endobj 1154 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 565/Type/Page>> endobj 1155 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 566/Type/Page>> endobj 1156 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 567/Type/Page>> endobj 1158 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 568/Type/Page>> endobj 1159 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 569/Type/Page>> endobj 1160 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 570/Type/Page>> endobj 1161 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 571/Type/Page>> endobj 1162 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 572/Type/Page>> endobj 1163 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 573/Type/Page>> endobj 1164 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 574/Type/Page>> endobj 1166 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 575/Type/Page>> endobj 1167 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 576/Type/Page>> endobj 1168 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 577/Type/Page>> endobj 1169 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 578/Type/Page>> endobj 1171 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 579/Type/Page>> endobj 1172 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 580/Type/Page>> endobj 1173 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 581/Type/Page>> endobj 1174 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 582/Type/Page>> endobj 1177 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 583/Type/Page>> endobj 1178 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 584/Type/Page>> endobj 1180 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 585/Type/Page>> endobj 1183 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 586/Type/Page>> endobj 1184 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 587/Type/Page>> endobj 1186 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 588/Type/Page>> endobj 1187 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 589/Type/Page>> endobj 1188 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 590/Type/Page>> endobj 1189 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 591/Type/Page>> endobj 1191 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 592/Type/Page>> endobj 1192 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 593/Type/Page>> endobj 1193 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 594/Type/Page>> endobj 1194 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 595/Type/Page>> endobj 1195 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 596/Type/Page>> endobj 1196 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 597/Type/Page>> endobj 1198 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 598/Type/Page>> endobj 1199 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 599/Type/Page>> endobj 1200 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 600/Type/Page>> endobj 1201 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 601/Type/Page>> endobj 1202 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 602/Type/Page>> endobj 1203 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 603/Type/Page>> endobj 1204 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 604/Type/Page>> endobj 1205 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 605/Type/Page>> endobj 1207 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 606/Type/Page>> endobj 1208 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 607/Type/Page>> endobj 1209 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 608/Type/Page>> endobj 1210 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 609/Type/Page>> endobj 1211 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 610/Type/Page>> endobj 1212 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 611/Type/Page>> endobj 1214 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 612/Type/Page>> endobj 1215 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 613/Type/Page>> endobj 1217 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 614/Type/Page>> endobj 1218 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 615/Type/Page>> endobj 1221 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 616/Type/Page>> endobj 1223 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 617/Type/Page>> endobj 1224 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 618/Type/Page>> endobj 1225 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 619/Type/Page>> endobj 1228 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 620/Type/Page>> endobj 1229 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 621/Type/Page>> endobj 1231 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 622/Type/Page>> endobj 1232 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 623/Type/Page>> endobj 1234 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 624/Type/Page>> endobj 1235 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 625/Type/Page>> endobj 1236 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 626/Type/Page>> endobj 1237 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 627/Type/Page>> endobj 1238 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 628/Type/Page>> endobj 1239 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 629/Type/Page>> endobj 1240 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 630/Type/Page>> endobj 1242 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 631/Type/Page>> endobj 1244 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 632/Type/Page>> endobj 1245 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 633/Type/Page>> endobj 1246 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 634/Type/Page>> endobj 1247 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 635/Type/Page>> endobj 1248 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 636/Type/Page>> endobj 1250 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 637/Type/Page>> endobj 1251 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 638/Type/Page>> endobj 1252 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 639/Type/Page>> endobj 1253 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 640/Type/Page>> endobj 1254 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 641/Type/Page>> endobj 1255 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 642/Type/Page>> endobj 1256 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 643/Type/Page>> endobj 1257 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 644/Type/Page>> endobj 1258 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 645/Type/Page>> endobj 1259 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 646/Type/Page>> endobj 1260 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 647/Type/Page>> endobj 1261 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 648/Type/Page>> endobj 1262 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 649/Type/Page>> endobj 1264 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 650/Type/Page>> endobj 1265 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 651/Type/Page>> endobj 1266 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 652/Type/Page>> endobj 1268 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 653/Type/Page>> endobj 1270 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 654/Type/Page>> endobj 1272 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 655/Type/Page>> endobj 1276 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 656/Type/Page>> endobj 1277 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 657/Type/Page>> endobj 1278 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 658/Type/Page>> endobj 1279 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 659/Type/Page>> endobj 1280 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 660/Type/Page>> endobj 1282 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 661/Type/Page>> endobj 1284 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 662/Type/Page>> endobj 1285 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 663/Type/Page>> endobj 1286 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 664/Type/Page>> endobj 1287 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 665/Type/Page>> endobj 1288 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 666/Type/Page>> endobj 1289 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 667/Type/Page>> endobj 1290 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 668/Type/Page>> endobj 1292 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 669/Type/Page>> endobj 1293 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 670/Type/Page>> endobj 1294 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 671/Type/Page>> endobj 1295 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 672/Type/Page>> endobj 1296 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 673/Type/Page>> endobj 1297 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 674/Type/Page>> endobj 1298 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 675/Type/Page>> endobj 1299 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 676/Type/Page>> endobj 1300 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 677/Type/Page>> endobj 1301 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 678/Type/Page>> endobj 1302 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 679/Type/Page>> endobj 1304 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 680/Type/Page>> endobj 1305 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 681/Type/Page>> endobj 1306 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 682/Type/Page>> endobj 1307 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 683/Type/Page>> endobj 1308 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 684/Type/Page>> endobj 1309 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 685/Type/Page>> endobj 1311 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 686/Type/Page>> endobj 1312 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 687/Type/Page>> endobj 1313 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 688/Type/Page>> endobj 1314 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 689/Type/Page>> endobj 1315 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 690/Type/Page>> endobj 1316 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 691/Type/Page>> endobj 1317 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 692/Type/Page>> endobj 1318 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 693/Type/Page>> endobj 1319 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 694/Type/Page>> endobj 1320 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 695/Type/Page>> endobj 1322 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 696/Type/Page>> endobj 1323 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 697/Type/Page>> endobj 1327 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 698/Type/Page>> endobj 1328 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 699/Type/Page>> endobj 1329 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 700/Type/Page>> endobj 1330 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 701/Type/Page>> endobj 1331 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 702/Type/Page>> endobj 1332 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 703/Type/Page>> endobj 1333 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 704/Type/Page>> endobj 1335 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 705/Type/Page>> endobj 1336 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 706/Type/Page>> endobj 1337 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 707/Type/Page>> endobj 1338 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 708/Type/Page>> endobj 1339 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 709/Type/Page>> endobj 1342 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 710/Type/Page>> endobj 1343 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 711/Type/Page>> endobj 1344 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 712/Type/Page>> endobj 1345 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 713/Type/Page>> endobj 1346 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 714/Type/Page>> endobj 1347 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 715/Type/Page>> endobj 1348 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 716/Type/Page>> endobj 1349 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 717/Type/Page>> endobj 1351 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 718/Type/Page>> endobj 1353 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 719/Type/Page>> endobj 1355 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 720/Type/Page>> endobj 1357 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 721/Type/Page>> endobj 1358 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 722/Type/Page>> endobj 1359 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 723/Type/Page>> endobj 1360 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 724/Type/Page>> endobj 1361 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 725/Type/Page>> endobj 1362 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 726/Type/Page>> endobj 1364 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 727/Type/Page>> endobj 1365 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 728/Type/Page>> endobj 1366 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 729/Type/Page>> endobj 1368 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 730/Type/Page>> endobj 1369 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 731/Type/Page>> endobj 1370 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 732/Type/Page>> endobj 1371 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 733/Type/Page>> endobj 1372 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 734/Type/Page>> endobj 1373 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 735/Type/Page>> endobj 1374 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 736/Type/Page>> endobj 1376 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 737/Type/Page>> endobj 1377 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 738/Type/Page>> endobj 1379 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 739/Type/Page>> endobj 1381 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 740/Type/Page>> endobj 1382 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/Type/Page>> endobj 1386 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 742/Type/Page>> endobj 1387 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 743/Type/Page>> endobj 1388 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 744/Type/Page>> endobj 1389 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 745/Type/Page>> endobj 1390 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 746/Type/Page>> endobj 1391 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 747/Type/Page>> endobj 1392 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 748/Type/Page>> endobj 1394 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 749/Type/Page>> endobj 1395 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 750/Type/Page>> endobj 1396 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 751/Type/Page>> endobj 1397 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 752/Type/Page>> endobj 1399 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 753/Type/Page>> endobj 1400 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 754/Type/Page>> endobj 1401 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 755/Type/Page>> endobj 1403 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 756/Type/Page>> endobj 1404 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 757/Type/Page>> endobj 1405 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 758/Type/Page>> endobj 1406 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 759/Type/Page>> endobj 1408 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 760/Type/Page>> endobj 1409 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 761/Type/Page>> endobj 1410 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 762/Type/Page>> endobj 1411 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 763/Type/Page>> endobj 1412 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 764/Type/Page>> endobj 1413 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 765/Type/Page>> endobj 1414 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 766/Type/Page>> endobj 1416 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 767/Type/Page>> endobj 1418 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 768/Type/Page>> endobj 1419 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 769/Type/Page>> endobj 1423 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 770/Type/Page>> endobj 1425 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 771/Type/Page>> endobj 1426 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 772/Type/Page>> endobj 1428 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 773/Type/Page>> endobj 1429 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 774/Type/Page>> endobj 1430 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 775/Type/Page>> endobj 1431 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 776/Type/Page>> endobj 1433 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 777/Type/Page>> endobj 1434 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 778/Type/Page>> endobj 1436 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 779/Type/Page>> endobj 1439 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 780/Type/Page>> endobj 1440 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 781/Type/Page>> endobj 1441 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 782/Type/Page>> endobj 1442 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 783/Type/Page>> endobj 1443 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 784/Type/Page>> endobj 1444 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 785/Type/Page>> endobj 1445 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 786/Type/Page>> endobj 1446 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 787/Type/Page>> endobj 1447 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 788/Type/Page>> endobj 1448 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 789/Type/Page>> endobj 1449 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 790/Type/Page>> endobj 1450 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 791/Type/Page>> endobj 1451 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 792/Type/Page>> endobj 1452 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 793/Type/Page>> endobj 1453 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 794/Type/Page>> endobj 1454 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 795/Type/Page>> endobj 1455 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 796/Type/Page>> endobj 1456 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 797/Type/Page>> endobj 1457 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 798/Type/Page>> endobj 1458 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 799/Type/Page>> endobj 1459 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 800/Type/Page>> endobj 1460 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 801/Type/Page>> endobj 1461 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 802/Type/Page>> endobj 1462 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 803/Type/Page>> endobj 1463 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 804/Type/Page>> endobj 1464 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 805/Type/Page>> endobj 1465 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 806/Type/Page>> endobj 1466 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 807/Type/Page>> endobj 1468 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 808/Type/Page>> endobj 1469 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 809/Type/Page>> endobj 1470 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 810/Type/Page>> endobj 1471 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 811/Type/Page>> endobj 1472 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 812/Type/Page>> endobj 1474 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 813/Type/Page>> endobj 1475 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 814/Type/Page>> endobj 1476 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/Type/Page>> endobj 1480 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 816/Type/Page>> endobj 1481 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 817/Type/Page>> endobj 1482 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 818/Type/Page>> endobj 1484 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 819/Type/Page>> endobj 1486 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 820/Type/Page>> endobj 1487 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 821/Type/Page>> endobj 1489 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 822/Type/Page>> endobj 1490 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 823/Type/Page>> endobj 1491 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 824/Type/Page>> endobj 1492 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 825/Type/Page>> endobj 1493 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 826/Type/Page>> endobj 1494 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 827/Type/Page>> endobj 1495 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 828/Type/Page>> endobj 1496 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 829/Type/Page>> endobj 1497 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 830/Type/Page>> endobj 1498 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 831/Type/Page>> endobj 1499 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 832/Type/Page>> endobj 1500 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 833/Type/Page>> endobj 1501 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 834/Type/Page>> endobj 1502 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 835/Type/Page>> endobj 1503 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 836/Type/Page>> endobj 1504 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 837/Type/Page>> endobj 1505 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 838/Type/Page>> endobj 1506 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 839/Type/Page>> endobj 1507 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 840/Type/Page>> endobj 1508 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 841/Type/Page>> endobj 1509 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 842/Type/Page>> endobj 1510 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 843/Type/Page>> endobj 1511 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 844/Type/Page>> endobj 1512 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 845/Type/Page>> endobj 1513 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 846/Type/Page>> endobj 1514 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 847/Type/Page>> endobj 1515 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 848/Type/Page>> endobj 1516 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 849/Type/Page>> endobj 1517 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 850/Type/Page>> endobj 1518 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 851/Type/Page>> endobj 1519 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 852/Type/Page>> endobj 1520 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 853/Type/Page>> endobj 1521 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 854/Type/Page>> endobj 1522 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 855/Type/Page>> endobj 1523 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 856/Type/Page>> endobj 1524 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 857/Type/Page>> endobj 1525 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 858/Type/Page>> endobj 1526 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 859/Type/Page>> endobj 1527 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 860/Type/Page>> endobj 1528 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 861/Type/Page>> endobj 1529 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 862/Type/Page>> endobj 1530 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 863/Type/Page>> endobj 1531 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 864/Type/Page>> endobj 1532 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 865/Type/Page>> endobj 1533 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 866/Type/Page>> endobj 1534 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 867/Type/Page>> endobj 1535 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 868/Type/Page>> endobj 1536 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 869/Type/Page>> endobj 1538 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 870/Type/Page>> endobj 1539 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/Type/Page>> endobj 1541 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 872/Type/Page>> endobj 1542 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 873/Type/Page>> endobj 1543 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 874/Type/Page>> endobj 1544 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 875/Type/Page>> endobj 1545 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 876/Type/Page>> endobj 1546 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 877/Type/Page>> endobj 1547 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 878/Type/Page>> endobj 1548 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 879/Type/Page>> endobj 1549 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 880/Type/Page>> endobj 1550 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 881/Type/Page>> endobj 1551 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 882/Type/Page>> endobj 1552 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 883/Type/Page>> endobj 1553 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 884/Type/Page>> endobj 1554 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 885/Type/Page>> endobj 1555 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 886/Type/Page>> endobj 1556 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 887/Type/Page>> endobj 1557 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 888/Type/Page>> endobj 1558 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 889/Type/Page>> endobj 1559 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 890/Type/Page>> endobj 1560 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 891/Type/Page>> endobj 1561 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 892/Type/Page>> endobj 1562 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 893/Type/Page>> endobj 1563 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 894/Type/Page>> endobj 1564 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 895/Type/Page>> endobj 1565 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 896/Type/Page>> endobj 1566 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 897/Type/Page>> endobj 1567 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 898/Type/Page>> endobj 1568 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 899/Type/Page>> endobj 1569 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 900/Type/Page>> endobj 1570 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 901/Type/Page>> endobj 1571 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 902/Type/Page>> endobj 1572 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 903/Type/Page>> endobj 1573 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 904/Type/Page>> endobj 1574 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 905/Type/Page>> endobj 1575 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 906/Type/Page>> endobj 1576 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 907/Type/Page>> endobj 1577 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 908/Type/Page>> endobj 1578 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 909/Type/Page>> endobj 1579 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 910/Type/Page>> endobj 1580 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 911/Type/Page>> endobj 1581 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 912/Type/Page>> endobj 1582 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 913/Type/Page>> endobj 1583 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 914/Type/Page>> endobj 1584 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 915/Type/Page>> endobj 1585 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 916/Type/Page>> endobj 1586 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 917/Type/Page>> endobj 1587 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 918/Type/Page>> endobj 1588 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 919/Type/Page>> endobj 1589 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 920/Type/Page>> endobj 1590 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/Type/Page>> endobj 1593 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 922/Type/Page>> endobj 1594 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 923/Type/Page>> endobj 1595 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 924/Type/Page>> endobj 1597 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 925/Type/Page>> endobj 1598 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 926/Type/Page>> endobj 1599 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 927/Type/Page>> endobj 1600 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 928/Type/Page>> endobj 1601 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 929/Type/Page>> endobj 1602 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 930/Type/Page>> endobj 1603 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 931/Type/Page>> endobj 1605 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 932/Type/Page>> endobj 1606 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 933/Type/Page>> endobj 1607 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 934/Type/Page>> endobj 1608 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 935/Type/Page>> endobj 1609 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 936/Type/Page>> endobj 1610 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 937/Type/Page>> endobj 1611 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 938/Type/Page>> endobj 1612 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 939/Type/Page>> endobj 1613 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 940/Type/Page>> endobj 1614 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 941/Type/Page>> endobj 1615 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 942/Type/Page>> endobj 1616 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 943/Type/Page>> endobj 1617 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 944/Type/Page>> endobj 1618 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 945/Type/Page>> endobj 1619 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 946/Type/Page>> endobj 1620 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 947/Type/Page>> endobj 1621 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 948/Type/Page>> endobj 1622 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 949/Type/Page>> endobj 1623 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 950/Type/Page>> endobj 1624 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 951/Type/Page>> endobj 1625 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 952/Type/Page>> endobj 1626 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 953/Type/Page>> endobj 1627 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 954/Type/Page>> endobj 1628 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 955/Type/Page>> endobj 1629 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 956/Type/Page>> endobj 1630 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 957/Type/Page>> endobj 1631 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 958/Type/Page>> endobj 1632 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 959/Type/Page>> endobj 1633 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 960/Type/Page>> endobj 1634 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 961/Type/Page>> endobj 1635 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 962/Type/Page>> endobj 1636 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 963/Type/Page>> endobj 1637 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 964/Type/Page>> endobj 1638 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 965/Type/Page>> endobj 1639 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 966/Type/Page>> endobj 1640 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 967/Type/Page>> endobj 1641 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 968/Type/Page>> endobj 1642 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 969/Type/Page>> endobj 1643 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 970/Type/Page>> endobj 1644 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 971/Type/Page>> endobj 1645 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 972/Type/Page>> endobj 1646 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/Type/Page>> endobj 1648 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 974/Type/Page>> endobj 1649 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 975/Type/Page>> endobj 1650 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 976/Type/Page>> endobj 1651 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 977/Type/Page>> endobj 1652 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 978/Type/Page>> endobj 1653 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 979/Type/Page>> endobj 1654 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 980/Type/Page>> endobj 1655 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/Type/Page>> endobj 1812 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 982/Type/Page>> endobj 2081 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 983/Type/Page>> endobj 2352 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 984/Type/Page>> endobj 2636 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 985/Type/Page>> endobj 2920 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 986/Type/Page>> endobj 3210 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 987/Type/Page>> endobj 3547 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 988/Type/Page>> endobj 3876 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 989/Type/Page>> endobj 4252 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 990/Type/Page>> endobj 4621 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 991/Type/Page>> endobj 5000 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 992/Type/Page>> endobj 5255 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 993/Type/Page>> endobj 5495 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 994/Type/Page>> endobj 5716 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 995/Type/Page>> endobj 6038 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 996/Type/Page>> endobj 6370 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 997/Type/Page>> endobj 6717 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 998/Type/Page>> endobj 7024 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 999/Type/Page>> endobj 7234 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1000/Type/Page>> endobj 7595 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1001/Type/Page>> endobj 7932 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1002/Type/Page>> endobj 8082 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1003/Type/Page>> endobj 8349 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1004/Type/Page>> endobj 8524 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1005/Type/Page>> endobj 8731 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1006/Type/Page>> endobj 9099 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1007/Type/Page>> endobj 9381 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1008/Type/Page>> endobj 9603 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1009/Type/Page>> endobj 9885 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1010/Type/Page>> endobj 10158 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1011/Type/Page>> endobj 10569 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1012/Type/Page>> endobj 10918 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1013/Type/Page>> endobj 11359 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1014/Type/Page>> endobj 11766 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1015/Type/Page>> endobj 12054 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1016/Type/Page>> endobj 12395 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1017/Type/Page>> endobj 12598 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1018/Type/Page>> endobj 12870 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1019/Type/Page>> endobj 13192 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1020/Type/Page>> endobj 13329 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/StructParents 1021/Type/Page>> endobj 13330 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 0/Type/Page>> endobj 13331 0 obj <>/Font<>/ProcSet[/PDF/Text/ImageB]/XObject<>>>/Rotate 0/Type/Page>> endobj 13332 0 obj <>/Font<>/ProcSet[/PDF/Text/ImageB]/XObject<>>>/Rotate 0/Type/Page>> endobj 13333 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text/ImageB]/Properties<>/XObject<>>>/Rotate 0/Type/Page>> endobj 13334 0 obj <>/Font<>/ProcSet[/PDF/Text/ImageB]/Properties<>/XObject<>>>/Rotate 0/Type/Page>> endobj 13335 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text/ImageC]/Properties<>/XObject<>>>/Rotate 0/StructParents 1022/TrimBox[0 0 540 720]/Type/Page>> endobj 14004 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14005 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14013 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14014 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14020 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14021 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14033 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14034 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14039 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14040 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14045 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14046 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14051 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14052 0 obj <>/Subtype/Form/Type/XObject>>stream H**2P0P050Գ0Q03735R(J WJ*$ L,\ CA@F/Pm{)D((M64635v Ca endstream endobj 14053 0 obj <> endobj 14083 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14084 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14092 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14093 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14098 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14099 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14106 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14107 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14112 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14113 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14118 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14119 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14125 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14126 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14132 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14133 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14139 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14140 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14353 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14354 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14362 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14363 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14369 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14370 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14376 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14377 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14382 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14383 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14390 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14391 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14396 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14397 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14403 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14404 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14423 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14424 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14431 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14432 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14438 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14439 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14445 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14446 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14458 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14459 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14469 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14470 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14476 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14477 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14484 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14485 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14490 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14491 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14498 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14499 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14506 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14507 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14513 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14514 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14520 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14521 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14531 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14532 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14537 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14538 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14545 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14546 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14552 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14553 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14559 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14560 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14566 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14567 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14574 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14575 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14738 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14739 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14744 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14745 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14750 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14751 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14758 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14759 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14766 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14767 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14777 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14778 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14783 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14784 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14793 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14794 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14799 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14800 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14807 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14808 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14972 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14973 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14980 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14981 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14986 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14987 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 14993 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 14994 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15000 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15001 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15006 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15007 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15013 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15014 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15020 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15021 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15026 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15027 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15036 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15037 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15042 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15043 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15048 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15049 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15419 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15420 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15430 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15431 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15436 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15437 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15446 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15447 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15452 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15453 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15460 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15461 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15468 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15469 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15474 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15475 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15482 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15483 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15491 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15492 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15498 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15499 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15504 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15505 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15515 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15516 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15522 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15523 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15528 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15529 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15587 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15588 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15596 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15597 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15604 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15605 0 obj <>/Subtype/Form/Type/XObject>>stream H**2P0P050Գ0Q03735R(J WJ*$ L,\ CA@F/Pm{)D((M64635v Ca endstream endobj 15611 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15612 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15622 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15623 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15628 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15629 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15640 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15641 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15646 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15647 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15656 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15657 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15667 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15668 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15675 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15676 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15682 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15683 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15690 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15691 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15696 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15697 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15702 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15703 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15711 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15712 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15731 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15732 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15740 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15741 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 15747 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 15748 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16020 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16021 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16027 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16028 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16033 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16034 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16040 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16041 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16054 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16055 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16063 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16064 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16070 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16071 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16078 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16079 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16085 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16086 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16095 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16096 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16102 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16103 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16108 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16109 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16117 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16118 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16123 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16124 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16134 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16135 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16142 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16143 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16454 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16455 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16474 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16475 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16481 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16482 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16487 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16488 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16502 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16503 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16511 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16512 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16517 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16518 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16525 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16526 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16535 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16536 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16543 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16544 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16549 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16550 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16556 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16557 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16564 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16565 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16573 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16574 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16580 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16581 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16587 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16588 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16597 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16598 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16605 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16606 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16612 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16613 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16618 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16619 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16627 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16628 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16635 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16636 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16644 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16645 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16655 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16656 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16662 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16663 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16668 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16669 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16680 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16681 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16687 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16688 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16693 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16694 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16704 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16705 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16712 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16713 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16718 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16719 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16725 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16726 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16733 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16734 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16742 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16743 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16750 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16751 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16757 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16758 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16764 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16765 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16773 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16774 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16783 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16784 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16789 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16790 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16797 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16798 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16799 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16800 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16811 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16812 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16818 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16819 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16826 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16827 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16832 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16833 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16841 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16842 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16848 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16849 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16856 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16857 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16864 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16865 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16872 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16873 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16879 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16880 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16885 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16886 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16891 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16892 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16902 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16903 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16909 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16910 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16916 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16917 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16922 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16923 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16929 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16930 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16938 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16939 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16944 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16945 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16951 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16952 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16964 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16965 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16971 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16972 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16983 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16984 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 16989 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 16990 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17305 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17306 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17314 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17315 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17321 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17322 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17329 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17330 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17331 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17332 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17341 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17342 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17348 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17349 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17354 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17355 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17368 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17369 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17375 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17376 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17385 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17386 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17394 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17395 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17402 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17403 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17408 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17409 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17414 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17415 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17421 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17422 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17431 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17432 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17440 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17441 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17448 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17449 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17455 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17456 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17463 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17464 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17471 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17472 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17478 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17479 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17491 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17492 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17499 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17500 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17507 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17508 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17515 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17516 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17527 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17528 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17533 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17534 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17542 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17543 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17548 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17549 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17557 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17558 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17565 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17566 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17572 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17573 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17578 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17579 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17589 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17590 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17598 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17599 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17668 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17669 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17678 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17679 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17735 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17736 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17746 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17747 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17756 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17757 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17759 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17760 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17766 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17767 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17774 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17775 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17780 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17781 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17792 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17793 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17794 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17795 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17801 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17802 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17809 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17810 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17819 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17820 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17822 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17823 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17825 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17826 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17831 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17832 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17841 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17842 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17885 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17886 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17895 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17896 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17901 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17902 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17911 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17912 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17919 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17920 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17927 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17928 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17929 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17930 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17938 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17939 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17946 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17947 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17963 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17964 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17969 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17970 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17976 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17977 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17985 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17986 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17987 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17988 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 17994 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 17995 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18007 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18008 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18013 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18014 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18019 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18020 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18026 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18027 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18035 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18036 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18042 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18043 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18058 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18059 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18064 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18065 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18134 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18135 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18146 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18147 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18153 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18154 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18163 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18164 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18178 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18179 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @ endstream endobj 18188 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18189 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18198 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18199 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18207 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18208 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18215 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18216 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18221 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18222 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18227 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18228 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18275 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18276 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18283 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18284 0 obj <>/Subtype/Form/Type/XObject>>stream H**2P0P050Գ0Q03735R(J WJ*$ L,\ CA@F/Pm{)D((M64635v Ca endstream endobj 18291 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18292 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18308 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18309 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18314 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18315 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18321 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18322 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18328 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18329 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18381 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18382 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18383 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18384 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18390 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18391 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18396 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18397 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18403 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18404 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18412 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18413 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18418 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18419 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18437 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18438 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18450 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18451 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18457 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18458 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18465 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18466 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18473 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18474 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18479 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18480 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18499 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18500 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18517 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18519 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18542 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18543 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18552 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18553 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18558 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18559 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18568 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18569 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18584 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18585 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18592 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18593 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18602 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18603 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18612 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18613 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18619 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18620 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18625 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18626 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18632 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18633 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18640 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18641 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18653 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18654 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18663 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18664 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18669 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18670 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18676 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18677 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18691 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18692 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18699 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18700 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18709 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18710 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18715 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18716 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18722 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18723 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18732 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18733 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18738 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18739 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18746 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18747 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18758 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18761 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18780 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18781 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18789 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18790 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18807 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18808 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18815 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18816 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18822 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18823 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18829 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18830 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18837 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18838 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18848 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18849 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18855 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18856 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18866 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18867 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18879 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18880 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18887 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18888 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18893 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18894 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18905 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18906 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18912 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18913 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18918 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18919 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18931 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18933 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18948 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18949 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18964 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18965 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18974 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18975 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18981 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18982 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 18995 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 18996 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19024 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19025 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19035 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19036 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19042 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19043 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19051 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19052 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19059 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19060 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19066 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19067 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19075 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19076 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19077 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19078 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19084 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19085 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19092 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19093 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19103 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19104 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19111 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19112 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19631 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19632 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19638 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19639 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19647 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19648 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19659 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19660 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19665 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19666 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19673 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19674 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 19679 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 19680 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 20083 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 20084 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 20096 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 20097 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 20106 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 20107 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 20112 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 20113 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 20122 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 20123 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 20132 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 20133 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 20531 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 20532 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 20550 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 20551 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 20990 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 20991 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21001 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21002 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21014 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21015 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21021 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21022 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21328 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21329 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21335 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21336 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21337 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21338 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21359 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21360 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21368 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21372 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21391 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21392 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21399 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21400 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21417 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21418 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21424 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21425 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21432 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21433 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21435 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21436 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21964 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21965 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21978 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21979 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21986 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21987 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 21995 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21996 0 obj <>/Subtype/Form/Type/XObject>>stream H**2P0P050Գ0Q03735R(J WJ*$ L,\ CA@F/Pm{)D((M64635v Ca endstream endobj 21997 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 21998 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 22011 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 22012 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 22021 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 22022 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 22033 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 22034 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 22039 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 22040 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 22058 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 22059 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 22578 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 22579 0 obj <>/Subtype/Form/Type/XObject>>stream H**2P0P050Գ0Q03735R(J WJ*$ L,\ CA@F/Pm{)D((M64635v Ca endstream endobj 22585 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 22586 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 22595 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 22596 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 22604 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 22605 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 22612 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 22613 0 obj <>/Subtype/Form/Type/XObject>>stream H**2P0P050Գ0Q03735R(J WJ*$ L,\ CA@F/Pm{)D((M64635v Ca endstream endobj 22614 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 22615 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 22621 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 22622 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 22632 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 22633 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 22643 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 22644 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 22651 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 22652 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 23350 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 23351 0 obj <>/Subtype/Form/Type/XObject>>stream H**2P0P050Գ0Q03735R(J WJ*$ L,\ CA@F/Pm{)D((M64635v Ca endstream endobj 23363 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 23364 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 23370 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 23371 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 23381 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 23382 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 23387 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 23388 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 23398 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 23399 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 23404 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 23405 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 23411 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 23412 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 23420 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 23421 0 obj <>/Subtype/Form>>stream H* 0 endstream endobj 23422 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 23434 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 23435 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24220 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24221 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24240 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24241 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24246 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24247 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24256 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24257 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24268 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24269 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24278 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24279 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24284 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24285 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24291 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24292 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24302 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24303 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24889 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24890 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24899 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24900 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24917 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24918 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24930 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24931 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24932 0 obj <>/ExtGState<>>>/Subtype/Form>>stream H*w6PH.V0PP(NwrӋL ,L - ,  tBQ*WW @ U endstream endobj 24933 0 obj <>/ExtGState<>>>/Subtype/Form>>stream H*w6PH.V0PP(NwrӋ L  LtBQ*WW @! endstream endobj 24958 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24959 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24964 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24965 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24974 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24975 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24985 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24986 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 24998 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 24999 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 25780 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 25781 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 25791 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 25792 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 25805 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 25806 0 obj <>/Subtype/Form/Type/XObject>>stream H**2P0P050Գ0Q03735R(J WJ*$ L,\ CA@F/Pm{)D((M64635v Ca endstream endobj 25812 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 25813 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @ endstream endobj 25818 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 25819 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 25833 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 25834 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 25843 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 25844 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 25853 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 25854 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 25859 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 25860 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 25881 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 25882 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 25888 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 25889 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 25895 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 25896 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 25913 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 25914 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 25925 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 25926 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 25934 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 25935 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 25942 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 25943 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 25948 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 25949 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 26455 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 26456 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 26479 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 26480 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 26491 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 26492 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 26498 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 26499 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 26505 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 26506 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 26921 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 26922 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 26941 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 26942 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 26951 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 26952 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 26960 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 26961 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 26970 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 26971 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 26979 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 26980 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 26988 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 26989 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 27542 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 27543 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 27552 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 27553 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 27574 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 27575 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 27582 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 27583 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 27590 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 27591 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 27603 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 27604 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 27619 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 27620 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 27629 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 27630 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28337 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28338 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28359 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28360 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28372 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28373 0 obj <>/Subtype/Form/Type/XObject>>stream H**2P0P050Գ0Q03735R(J WJ*$ L,\ CA@F/Pm{)D((M64635v Ca endstream endobj 28378 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28379 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28382 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28383 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28388 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28389 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28394 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28395 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28404 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28405 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28416 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28417 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28430 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28431 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28438 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28439 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28445 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28446 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28460 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28461 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28468 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28469 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28471 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28472 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28479 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28480 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28491 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28492 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28499 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28500 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28527 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28528 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28536 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28537 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28548 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28549 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 28554 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 28555 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29047 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29048 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29064 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29065 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29089 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29090 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29100 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29101 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29107 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29108 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29113 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29114 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29122 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29123 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29132 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29133 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29144 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29145 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29158 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29159 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29170 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29171 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29176 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29177 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29183 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29184 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29197 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29198 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29213 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29214 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29220 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29221 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29232 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29233 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29251 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29252 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29267 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29268 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29278 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29279 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29291 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29292 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29298 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29299 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29305 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29306 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29313 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29314 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 29337 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 29338 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30051 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30052 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30060 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30061 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30073 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30074 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30076 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30077 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30088 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30089 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30096 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30097 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30105 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30106 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30120 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30121 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30134 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30135 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30147 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30148 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30163 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30164 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30180 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30181 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30190 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30191 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30196 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30197 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30202 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30203 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30209 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30210 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30211 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30212 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30213 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30214 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30236 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30237 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30248 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30249 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30257 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30258 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30272 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30273 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30282 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30283 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30296 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30297 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30984 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30985 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 30994 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 30995 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31008 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31009 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31018 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31019 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31024 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31025 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31036 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31037 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31045 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31046 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31054 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31055 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31073 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31074 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31083 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31084 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31093 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31094 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31103 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31104 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31114 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31115 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31770 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31771 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31782 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31783 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31789 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31790 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31806 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31807 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31814 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31815 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31820 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31821 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31831 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31832 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31839 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31840 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31847 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31848 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 31859 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 31860 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 32504 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 32505 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 32514 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 32515 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 32522 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 32523 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 32533 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 32534 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 32541 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 32542 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 32549 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 32550 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 32555 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 32556 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 32563 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 32564 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 32570 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 32571 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 32580 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 32581 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 32586 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 32587 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 33032 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 33033 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 33045 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 33046 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 33055 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 33056 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 33070 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 33071 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 33078 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 33079 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 33085 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 33086 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 33094 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 33095 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 33106 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 33107 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 33589 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 33590 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 33597 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 33598 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 33613 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 33614 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 33619 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 33620 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 33634 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 33635 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 33645 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 33646 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 33655 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 33656 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 33661 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 33662 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 34178 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 34179 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 34185 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 34186 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 34193 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 34194 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 34207 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 34208 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 34215 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 34216 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 34235 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 34236 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 34246 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 34247 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 34256 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 34257 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 34264 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 34265 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 34274 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 34275 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 35033 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 35034 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 35044 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 35045 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 35055 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 35056 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 35065 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 35066 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 35075 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 35076 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 35085 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 35086 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 35093 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 35094 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 35838 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 35839 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 35850 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 35851 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 35863 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 35864 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 35888 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 35889 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 35895 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 35896 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 35903 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 35904 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 35910 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 35911 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 35917 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 35918 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 35923 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 35924 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 36676 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 36677 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 36705 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 36706 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 36715 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 36716 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 36725 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 36726 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 36736 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 36737 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 36744 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 36745 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 36755 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 36756 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 36769 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 36770 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 36781 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 36782 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 36798 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 36799 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 36806 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 36807 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 36815 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 36816 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 36821 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 36822 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 36830 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 36831 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 36836 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 36837 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37436 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37437 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37445 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37446 0 obj <>/Subtype/Form/Type/XObject>>stream H**2P0P050Գ0Q03735R(J WJ*$ L,\ CA@F/Pm{)D((M64635v Ca endstream endobj 37464 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37465 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37483 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37484 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37490 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37491 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37512 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37513 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37528 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37529 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37537 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37538 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37547 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37548 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37554 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37555 0 obj <>/Subtype/Form/Type/XObject>>stream H**2P0P050Գ0Q03735R(J WJ*$ L,\ CA@F/Pm{)D((M64635v Ca endstream endobj 37566 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37567 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37589 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37590 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37595 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37596 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37601 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37602 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37624 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37625 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37627 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37628 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37632 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37633 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37675 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37676 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37688 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37689 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37701 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37702 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37711 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37712 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37730 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37731 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37756 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37757 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37758 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37759 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37781 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37782 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37788 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37789 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37804 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37805 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37810 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37811 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37822 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37823 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37831 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37832 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37834 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37835 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37843 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37844 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37860 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37861 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37869 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37870 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37889 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37890 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37900 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37901 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37912 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37913 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37921 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37922 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37930 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37931 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37944 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37945 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37953 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37954 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37960 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37961 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37967 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37968 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37972 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37973 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37974 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37975 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37985 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37986 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 37996 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 37997 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38006 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38007 0 obj <>/Subtype/Form/Type/XObject>>stream H**2P0P050Գ0Q03735R(J WJ*$ L,\ CA@F/Pm{)D((M64635v Ca endstream endobj 38012 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38013 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38021 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38022 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38028 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38029 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38037 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38038 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38046 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38047 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38077 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38078 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38083 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38084 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38102 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38103 0 obj <>/Subtype/Form/Type/XObject>>stream H**2P0P050Գ0Q03735R(J WJ*$ L,\ CA@F/Pm{)D((M64635v Ca endstream endobj 38108 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38109 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38118 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38119 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38129 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38130 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38144 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38145 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38168 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38169 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38190 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38191 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38219 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38220 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38241 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38242 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38252 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38253 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38259 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38260 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38267 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38268 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38295 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38296 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38305 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38306 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38315 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38316 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38329 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38330 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38336 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38337 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38358 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38359 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38364 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38365 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38370 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38371 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38373 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38374 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38380 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38381 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38388 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38389 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38404 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38405 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38900 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38901 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38911 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38912 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38918 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38919 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38938 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38939 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38946 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38947 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38964 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38965 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38966 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38967 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38978 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38979 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 38992 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 38993 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 39481 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 39482 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 39496 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 39497 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 39503 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 39504 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 39517 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 39518 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 39539 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 39540 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 39560 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 39561 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 39570 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 39571 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 39574 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 39575 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 40072 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 40073 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 40082 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 40083 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 40103 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 40104 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 40119 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 40120 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 40127 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 40128 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 40139 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 40140 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 40147 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 40148 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 40673 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 40674 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 40692 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 40693 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 40701 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 40702 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 40707 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 40708 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 40718 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 40719 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 40733 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 40734 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 40738 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 40739 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 40750 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 40751 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41045 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41046 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41070 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41071 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41081 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41082 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41092 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41093 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41108 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41109 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41114 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41115 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41136 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41137 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41154 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41155 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41176 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41177 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41209 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41210 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41218 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41219 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41224 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41225 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41230 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41231 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41233 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41234 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41247 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41248 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41255 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41256 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41270 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41271 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41296 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41297 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41307 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41308 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41318 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41319 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41326 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41327 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41332 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41333 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41351 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41352 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41376 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41377 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41392 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41393 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41401 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41402 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41445 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41446 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41457 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41458 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41487 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41488 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41500 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41501 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41516 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41517 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41524 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41525 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41537 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41538 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41544 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41545 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41551 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41552 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41584 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41585 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41596 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41597 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41612 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41613 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41627 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41628 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41633 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41634 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41643 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41644 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41671 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41672 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41680 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41681 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41696 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41697 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41705 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41706 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41715 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41716 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41722 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41723 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41730 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41731 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41755 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41756 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41761 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41762 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41767 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41768 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41773 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41774 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41781 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41782 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41801 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41802 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41808 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41809 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41816 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41817 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41830 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41831 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41845 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41846 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41852 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41853 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41873 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41874 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41896 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41897 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41912 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41913 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41918 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41919 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41928 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41929 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41942 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41943 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41967 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41968 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41984 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41985 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 41992 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 41993 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42012 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42013 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42021 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42022 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42029 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42030 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42036 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42037 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42048 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42049 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42056 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42057 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42058 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42059 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42079 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42080 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42089 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42090 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42105 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42106 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42121 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42122 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42137 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42138 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42148 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42149 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42157 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42158 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42169 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42170 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42180 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42181 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42186 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42187 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42205 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42206 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42211 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42212 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42231 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42232 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42247 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42248 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42264 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42265 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42278 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42279 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42286 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42287 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42298 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42299 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42308 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42309 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42317 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42318 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42333 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42334 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42347 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42348 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42356 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42357 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42369 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42370 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42388 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42389 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42413 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42414 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42421 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42422 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42431 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42432 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42438 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42439 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42449 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42450 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42461 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42462 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42474 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42475 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42481 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42482 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42504 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42505 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42510 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42511 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42525 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42526 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42539 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42540 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42557 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42558 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42579 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42580 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42600 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42601 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42617 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42618 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42628 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42629 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42646 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42647 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42657 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42658 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42667 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42668 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42699 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42700 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42708 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42709 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42718 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42719 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42733 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42734 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42755 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42756 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42787 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42788 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42794 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42795 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42804 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42805 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42816 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42817 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42824 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42825 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42832 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42833 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42840 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42841 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42883 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42884 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42892 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42893 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42903 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42904 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42911 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42912 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42941 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42942 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42944 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42945 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42949 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42950 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42957 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42958 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42960 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42961 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42967 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42968 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 42977 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 42978 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43017 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43018 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43025 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43026 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43037 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43038 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43045 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43046 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43055 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43056 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43066 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43067 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43073 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43074 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43082 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43083 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43102 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43103 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43116 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43117 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43128 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43129 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43138 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43139 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43151 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43152 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43158 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43159 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43195 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43196 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43203 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43204 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43212 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43213 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43218 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43219 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43226 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43227 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43245 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43246 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43253 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43254 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43273 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43274 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43279 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43280 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43291 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43292 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43300 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43301 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43309 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43310 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43317 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43318 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43332 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43333 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43340 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43341 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43358 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43359 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43382 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43383 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43397 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43398 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43407 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43408 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43413 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43414 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43418 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43419 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43427 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43428 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43432 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43433 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43445 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43446 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43473 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43474 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43484 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43485 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43493 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43494 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43500 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43501 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43507 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43508 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43541 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43542 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43559 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43560 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43568 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43569 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43576 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43577 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43597 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43598 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43626 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43627 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43641 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43642 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43650 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43651 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43658 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43659 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43669 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43670 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43676 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43677 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43691 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43692 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43712 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43713 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43728 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43729 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43738 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43739 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43747 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43748 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43761 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43762 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43771 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43772 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43786 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43787 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43796 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43797 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43803 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43804 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43819 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43820 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43828 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43829 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43850 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43851 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43871 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43872 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43896 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43897 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43906 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43907 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43920 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43921 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43927 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43928 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43935 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43936 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43943 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43944 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43955 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43956 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43977 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43978 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43986 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43987 0 obj <>/Subtype/Form/Type/XObject>>stream H**2P0P050Գ0Q03735R(J WJ*$ L,\ CA@F/Pm{)D((M64635v Ca endstream endobj 43992 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 43993 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 43999 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44000 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44010 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44011 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44023 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44024 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44030 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44031 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44053 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44054 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44065 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44066 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44073 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44074 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44082 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44083 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44101 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44102 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44126 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44127 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44136 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44137 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44145 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44146 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44156 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44157 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44171 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44172 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44194 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44195 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44201 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44202 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44209 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44210 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44218 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44219 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44228 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44229 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44241 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44242 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44268 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44269 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44274 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44275 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44282 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44283 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44295 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44296 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44309 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44310 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44315 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44316 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44321 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44322 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44339 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44340 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44353 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44354 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44366 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44367 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44374 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44375 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44384 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44385 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44395 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44396 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44408 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44409 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44431 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44432 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44441 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44442 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44451 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44452 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44459 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44460 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44467 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44468 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44475 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44476 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44481 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44482 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44492 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44493 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44522 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44523 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44528 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44529 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44539 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44540 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44547 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44548 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44562 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44563 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44578 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44579 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44598 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44599 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44605 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44606 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44611 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44612 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44617 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44618 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44637 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44638 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44644 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44645 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44664 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44665 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44668 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44669 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44686 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44687 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44722 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44723 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44731 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44732 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44740 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44741 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44744 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44745 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44755 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44756 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44764 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44765 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44774 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44775 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44782 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44783 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44802 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44803 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44812 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44813 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44819 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44820 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44826 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44827 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44828 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44829 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44839 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44840 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44851 0 obj <>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream H*r 2Pt.xK4XHBH FAIfHkW @I endstream endobj 44852 0 obj <>/Subtype/Form/Type/XObject>>stream H* 0 endstream endobj 44859 0 obj <>stream http://www.codemantra.com The process that creates this PDF constitutes a trade secret of codeMantra, LLC and is protected by the copyright laws of the United States 2013-09-01T17:46:17+08:00 2013-05-09T16:42:06 2013-09-01T17:46:17+08:00 Quite Imposing 1.5d (EN) uuid:69ad153e-9415-42af-89e9-e564eb821cb6 uuid:5abb7bcc-6cd5-46b1-a8a5-05a94ae40262 application/pdf Advanced Programming in the UNIX® Environment W. Richard Stevens Stephen A. Rago PDFKit.NET 4.0.12.0 1.6 endstream endobj 46744 0 obj <>/Font<>>>/Fields[]>> endobj 46745 0 obj <>stream q /Fm0 Do Q q 0 0 540 425.25 re W n /Figure <>BDC Q q 0 419.25 540 300.75 re W n q /GS0 gs 540.0000153 0 0 302.7561951 0 418.2853241 cm /Im0 Do Q EMC /Span <>BDC Q q 0 0 540 720 re W n BT 0 0 0 0 k /GS0 gs /T1_0 1 Tf 22 0 0 22 257.75 384 Tm [(Y)92(ou love our titles)]TJ ET EMC BT /Span <>BDC 0 0 0 1 k /GS1 gs /T1_1 1 Tf 12 0 0 12 425.6343 384 Tm ( )Tj EMC /Span <>BDC 10 0 0 10 428.9703 384 Tm (and you love to )Tj EMC /Span <>BDC -17.122 -1.4 Td (share them with your colleagues and friends...why )Tj EMC /Span <>BDC 0 -1.4 TD (not earn some $$ doing it!)Tj EMC /Span <>BDC 0 -1.976 TD (If you have a website, blog, or even a Facebook )Tj EMC /Span <>BDC 0 -1.4 TD (page, you can start earning money by putting )Tj EMC /Span <>BDC ( )Tj EMC /Span <>BDC T* (InformIT links on your page. )Tj EMC /Span <>BDC 0 -1.976 TD (Whenever a visitor clicks on these links and makes )Tj EMC /Span <>BDC 0 -1.4 TD (a purchase on informit.com, you earn commissions* )Tj EMC /Span <>BDC T* (on all sales!)Tj EMC /Span <>BDC 0 -1.976 TD (Every sale you bring to our site will earn you a )Tj EMC /Span <>BDC ( )Tj EMC /Span <>BDC 0 -1.4 TD (commission. All you have to do is post the links to )Tj EMC /Span <>BDC T* (the titles you want, as many as you want, and we\222ll )Tj EMC /Span <>BDC 0 -1.44 TD (take care of the rest.)Tj EMC /Span <>BDC 12 0 0 12 257.75 183.92 Tm ( )Tj EMC ET /Span <>BDC BT 0 0 0 0 k /GS0 gs /T1_0 1 Tf 21 0 0 21 257.75 158.72 Tm (APPL)Tj /Span <>BDC 2 0 Td (Y)Tj EMC ( )Tj /Span <>BDC (A)Tj EMC (ND GET ST)Tj /Span <>BDC 6.1 0 Td (A)Tj EMC [(R)-6(TED!)]TJ ET EMC BT /Span <>BDC 0 0 0 1 k /GS1 gs /T1_1 1 Tf 12 0 0 12 257.75 136.96 Tm [(It\222)55(s quick and easy to apply)74(. )]TJ EMC /Span <>BDC ( )Tj EMC /Span <>BDC 0 -1.333 TD [(T)74(o learn more go to: )]TJ EMC /Span <>BDC ( )Tj EMC /Span <>BDC /T1_2 1 Tf 0 -1.333 TD [(http://www)55(.informit.com/af\037liates/)]TJ EMC /Span <>BDC /T1_1 1 Tf 6 0 0 6 257.75 88.96 Tm [(*V)49(alid for all books, eBooks and video sales at www)55(.informit.com)]TJ EMC ET /Figure <>BDC Q q 31.5 419.25 508.5 300.75 re W n q /GS0 gs 509.4699707 0 0 302.7561951 31.5 418.2853241 cm /Im1 Do Q EMC /Span <>BDC Q q 0 0 540 720 re W n BT 0 0 0 0 k /GS0 gs /T1_0 1 Tf 31 0 0 31 36 540.75 Tm (JOIN THE )Tj ET EMC BT /Span <>BDC /T1_0 1 Tf 28 0 0 28 165.1753 540.75 Tm ( )Tj EMC /Span <>BDC /T1_3 1 Tf 47 0 0 47 36 494.75 Tm (INFORM)Tj EMC ET /Span <>BDC BT /Span <>BDC 0.15 1 1 0 k /T1_3 1 Tf 47 0 0 47 229.3106 494.75 Tm (I)Tj EMC (T)Tj ET EMC BT /Span <>BDC 0 0.17 0.62 0 k /T1_3 1 Tf 28 0 0 28 271.1406 494.75 Tm ( )Tj EMC /Span <>BDC ( )Tj EMC ET /Span <>BDC BT 0 0 0 0 k /T1_0 1 Tf 31 0 0 31 36 457.55 Tm (AFFILI)Tj /Span <>BDC (A)Tj EMC 3.042 0 Td (TE )Tj /Span <>BDC (T)Tj EMC (E)Tj /Span <>BDC (A)Tj EMC (M!)Tj ET EMC /Figure <>BDC /PlacedGraphic /MC0 BDC Q 0 0 0 0 k /GS0 gs 373.274 61.609 7.584 -24.97 re 373.274 67.063 7.584 -3.835 re f q 373.274 36 130.726 31.064 re W n q 1 0 0 1 383.2012 61.6094 cm 0 0 m 7.585 0 l 7.585 -1.918 l 7.67 -1.918 l 8.267 -0.682 9.971 0.639 12.272 0.639 c 15.468 0.639 17.428 -1.449 17.428 -6.008 c 17.428 -24.97 l 9.843 -24.97 l 9.843 -6.264 l 9.843 -5.497 9.63 -4.474 8.65 -4.474 c 7.627 -4.474 7.585 -5.539 7.585 -6.307 c 7.585 -24.97 l 0 -24.97 l h f Q q 1 0 0 1 402.2482 61.6094 cm 0 0 m 1.576 0 l 1.747 4.432 3.196 5.454 7.883 5.454 c 11.249 5.454 l 11.249 1.619 l 10.098 1.619 l 8.863 1.619 7.883 1.364 7.712 0 c 11.42 0 l 11.42 -4.091 l 9.161 -4.091 l 9.161 -24.97 l 1.576 -24.97 l 1.576 -4.091 l 0 -4.091 l h f Q q 1 0 0 1 422.403 42.7752 cm 0 0 m 0 -0.852 0.426 -1.662 1.364 -1.662 c 2.301 -1.662 2.727 -0.852 2.727 0 c 2.727 13.209 l 2.727 14.061 2.301 14.871 1.364 14.871 c 0.426 14.871 0 14.061 0 13.209 c h -7.585 11.207 m -7.585 17.683 -2.812 19.473 1.364 19.473 c 5.539 19.473 10.312 17.683 10.312 11.207 c 10.312 1.492 l 10.312 -4.985 5.539 -6.775 1.364 -6.775 c -2.812 -6.775 -7.585 -4.985 -7.585 1.492 c h f Q q 1 0 0 1 434.8018 61.6094 cm 0 0 m 7.329 0 l 7.329 -3.196 l 7.414 -3.196 l 8.139 -0.81 10.397 0.469 12.101 0.639 c 12.101 -8.437 l 11.675 -8.395 11.249 -8.352 10.823 -8.352 c 8.778 -8.352 7.585 -9.673 7.585 -11.633 c 7.585 -24.97 l 0 -24.97 l h f Q q 1 0 0 1 448.5647 61.6094 cm 0 0 m 7.585 0 l 7.585 -1.918 l 7.67 -1.918 l 8.011 -1.108 8.778 -0.469 9.63 -0.043 c 10.482 0.426 11.462 0.639 12.272 0.639 c 14.659 0.639 16.107 -0.938 16.788 -2.216 c 18.11 -0.725 19.644 0.639 21.774 0.639 c 24.97 0.639 26.93 -1.449 26.93 -6.008 c 26.93 -24.97 l 19.345 -24.97 l 19.345 -6.264 l 19.345 -5.497 19.132 -4.474 18.153 -4.474 c 17.172 -4.474 17.129 -5.539 17.129 -6.307 c 17.129 -24.97 l 9.801 -24.97 l 9.801 -6.264 l 9.801 -5.497 9.587 -4.474 8.65 -4.474 c 7.627 -4.474 7.585 -5.539 7.585 -6.307 c 7.585 -24.97 l 0 -24.97 l h f Q 0 1 1 0 k 477.539 67.063 7.84 -30.424 re f q 1 0 0 1 491.5148 60.9276 cm 0 0 m -4.644 0 l -4.644 6.136 l 12.485 6.136 l 12.485 0 l 7.84 0 l 7.84 -24.288 l 0 -24.288 l h f Q EMC EMC /Figure <>BDC /PlacedGraphic BMC Q q 139.91 36 50.333 17.572 re W n q 1 0 0 1 149.0037 46.0223 cm 0 g 0 0 m -0.54 0.518 -1.28 0.864 -2.109 0.864 c -2.732 0.864 -3.618 0.501 -3.734 -0.225 c -3.854 -0.985 -2.985 -1.279 -2.427 -1.469 c -1.604 -1.728 l 0.125 -2.264 1.38 -3.18 1.045 -5.288 c 0.84 -6.584 0.318 -7.914 -0.859 -8.795 c -2.015 -9.659 -3.438 -10.022 -4.751 -10.022 c -6.393 -10.022 -7.912 -9.469 -9.095 -8.536 c -7.21 -5.806 l -6.481 -6.549 -5.575 -7.154 -4.417 -7.154 c -3.622 -7.154 -2.713 -6.756 -2.567 -5.841 c -2.417 -4.89 -3.695 -4.562 -4.388 -4.355 c -6.418 -3.75 -7.73 -3.197 -7.33 -0.674 c -6.911 1.97 -4.753 3.698 -2.144 3.698 c -0.831 3.698 0.71 3.283 1.764 2.627 c h f Q q 1 0 0 1 166.3052 49.3746 cm 0 g 0 0 m 3.335 0 l 4.875 -6.964 l 8.778 0 l 12.148 0 l 12.052 -13.029 l 8.666 -13.029 l 8.904 -5.53 l 8.87 -5.53 l 4.553 -13.029 l 3.205 -13.029 l 1.404 -5.53 l 1.37 -5.53 l -0.908 -13.029 l -4.277 -13.029 l h f Q q 1 0 0 1 188.478 46.0223 cm 0 g 0 0 m -0.54 0.518 -1.28 0.864 -2.109 0.864 c -2.732 0.864 -3.618 0.501 -3.734 -0.225 c -3.854 -0.985 -2.985 -1.279 -2.427 -1.469 c -1.604 -1.728 l 0.125 -2.264 1.379 -3.18 1.045 -5.288 c 0.84 -6.584 0.318 -7.914 -0.859 -8.795 c -2.015 -9.659 -3.438 -10.022 -4.751 -10.022 c -6.393 -10.022 -7.912 -9.469 -9.095 -8.536 c -7.21 -5.806 l -6.481 -6.549 -5.575 -7.154 -4.417 -7.154 c -3.622 -7.154 -2.713 -6.756 -2.567 -5.841 c -2.417 -4.89 -3.695 -4.562 -4.388 -4.355 c -6.418 -3.75 -7.73 -3.197 -7.33 -0.674 c -6.911 1.97 -4.753 3.698 -2.144 3.698 c -0.831 3.698 0.711 3.283 1.764 2.627 c h f Q q 1 0 0 1 153.1497 36.5224 cm 0 g 0 0 m -4.766 0 l 8.4 17.049 l 8.4 0 l 4.594 0 l 4.603 6.643 l h f Q EMC EMC /Figure <>BDC /PlacedGraphic /MC1 BDC Q q 83 36 41.724 36.32 re W n q 1 0 0 1 83.6872 45.4468 cm 0 0.91 0.76 0 k 0 0 m 0 -1.436 l 2.361 -1.436 l 2.664 -1.436 2.808 -1.356 2.808 -1.005 c 2.808 -0.432 l 2.808 -0.089 2.673 0 2.361 0 c h -0.687 0.536 m 2.633 0.536 l 3.231 0.536 3.503 0.312 3.503 -0.263 c 3.503 -1.181 l 3.503 -1.755 3.231 -1.979 2.633 -1.979 c 0 -1.979 l 0 -3.584 l -0.687 -3.584 l -0.687 0.536 l f Q q 1 0 0 1 89.5597 45.4468 cm 0 0.91 0.76 0 k 0 0 m 0 -1.444 l 2.361 -1.444 l 2.664 -1.444 2.809 -1.372 2.809 -1.021 c 2.809 -0.422 l 2.809 -0.079 2.664 0 2.361 0 c h -0.686 0.536 m 2.633 0.536 l 3.231 0.536 3.503 0.312 3.503 -0.263 c 3.503 -1.181 l 3.503 -1.755 3.231 -1.979 2.633 -1.979 c 2.025 -1.979 l 3.909 -3.584 l 2.888 -3.584 l 1.213 -1.979 l 0 -1.979 l 0 -3.584 l -0.686 -3.584 l -0.686 0.536 l f Q q 1 0 0 1 94.9528 45.9826 cm 0 0.91 0.76 0 k 0 0 m 3.966 0 l 3.966 -0.551 l 0.686 -0.551 l 0.686 -1.7 l 2.689 -1.7 l 2.689 -2.243 l 0.686 -2.243 l 0.686 -3.551 l 3.998 -3.551 l 3.998 -4.119 l 0 -4.119 l h f Q q 1 0 0 1 100.5861 45.9826 cm 0 0.91 0.76 0 k 0 0 m 0.432 0 l 3.512 -2.753 l 3.655 -2.88 3.814 -3.057 3.98 -3.272 c 3.916 -2.891 3.916 -2.555 3.916 -2.26 c 3.916 0 l 4.55 0 l 4.55 -4.119 l 4.164 -4.119 l 0.997 -1.254 l 0.877 -1.142 0.718 -1.022 0.582 -0.79 c 0.621 -1.094 0.631 -1.389 0.631 -1.693 c 0.631 -4.119 l 0 -4.119 l 0 0 l f Q q 1 0 0 1 108.8675 41.8633 cm 0 0.91 0.76 0 k 0 0 m -0.685 0 l -0.685 3.559 l -2.568 3.559 l -2.568 4.119 l 1.892 4.119 l 1.892 3.559 l 0 3.559 l h f Q 0 0.91 0.76 0 k 111.917 41.863 0.686 4.119 re f q 1 0 0 1 115.3708 45.4227 cm 0 0 m 0 -2.984 l 2.857 -2.984 l 2.857 -1.955 l 3.544 -2.097 l 3.544 -2.586 l 3.544 -3.35 3.327 -3.559 2.586 -3.559 c 0.279 -3.559 l -0.463 -3.559 -0.686 -3.342 -0.686 -2.586 c -0.686 -0.415 l -0.686 0.345 -0.463 0.56 0.279 0.56 c 2.586 0.56 l 3.327 0.56 3.544 0.351 3.544 -0.415 c 3.544 -0.805 l 2.857 -0.932 l 2.857 0 l 0 0 l f Q q 1 0 0 1 120.7253 45.9826 cm 0 0 m 3.966 0 l 3.966 -0.551 l 0.686 -0.551 l 0.686 -1.7 l 2.689 -1.7 l 2.689 -2.243 l 0.686 -2.243 l 0.686 -3.551 l 3.998 -3.551 l 3.998 -4.119 l 0 -4.119 l h f Q q 1 0 0 1 93.0741 40.1174 cm 0 0 0 1 k 0 0 m 0.687 0 l 0.687 -1.683 l 3.934 -1.683 l 3.934 0 l 4.621 0 l 4.621 -4.117 l 3.934 -4.117 l 3.934 -2.249 l 0.687 -2.249 l 0.687 -4.117 l 0 -4.117 l h f Q q 1 0 0 1 102.7388 37.5409 cm 0 0 0 1 k 0 0 m -1.111 2.105 l -2.22 0 l h -1.461 2.577 m -0.728 2.577 l 1.562 -1.54 l 0.803 -1.54 l 0.277 -0.528 l -2.507 -0.528 l -3.033 -1.54 l -3.712 -1.54 l h f Q q 1 0 0 1 105.6327 40.1174 cm 0 0 0 1 k 0 0 m 0.687 0 l 0.687 -3.542 l 3.806 -3.542 l 3.806 -4.117 l 0 -4.117 l h f Q q 1 0 0 1 110.8446 40.1174 cm 0 0 0 1 k 0 0 m 0.685 0 l 0.685 -3.542 l 3.806 -3.542 l 3.806 -4.117 l 0 -4.117 l h f Q q 1 0 0 1 101.6141 68.4607 cm 0 0 m 0.039 0.201 0.062 0.407 0.062 0.619 c 0.062 2.407 -1.39 3.86 -3.179 3.86 c -4.971 3.86 -6.421 2.407 -6.421 0.619 c -6.421 -1.171 -4.971 -2.624 -3.179 -2.624 c -2.538 -2.624 -1.946 -2.432 -1.442 -2.111 c -1.27 -1.222 -0.738 -0.468 0 0 c f Q q 1 0 0 1 108.2584 72.3134 cm 0 0 m -1.789 0 -3.241 -1.453 -3.241 -3.244 c -3.241 -3.446 -3.218 -3.642 -3.181 -3.833 c -2.448 -4.309 -1.921 -5.07 -1.756 -5.963 c -1.249 -6.29 -0.649 -6.484 0 -6.484 c 1.793 -6.484 3.242 -5.034 3.242 -3.244 c 3.242 -1.453 1.793 0 0 0 c f Q q 1 0 0 1 108.2891 64.7917 cm 0 0 m -0.989 0 -1.864 -0.453 -2.459 -1.152 c -2.484 -1.152 l -3.079 -1.872 -3.965 -2.34 -4.973 -2.34 c -5.99 -2.34 -6.888 -1.86 -7.482 -1.128 c -8.077 -0.457 -8.928 -0.024 -9.895 -0.024 c -11.684 -0.024 -13.135 -1.476 -13.135 -3.265 c -13.135 -5.058 -11.684 -6.507 -9.895 -6.507 c -8.979 -6.507 -8.168 -6.117 -7.577 -5.507 c -6.991 -4.679 -6.03 -4.134 -4.936 -4.134 c -3.841 -4.134 -2.879 -4.681 -2.291 -5.512 c -1.706 -6.106 -0.902 -6.485 0 -6.485 c 1.788 -6.485 3.24 -5.035 3.24 -3.244 c 3.24 -1.455 1.788 0 0 0 c f Q q 1 0 0 1 108.2173 57.199 cm 0 0 0 1 k 0 0 m -0.641 0 -1.235 -0.192 -1.736 -0.514 c -1.909 -1.403 -2.443 -2.157 -3.178 -2.627 c -3.219 -2.828 -3.24 -3.032 -3.24 -3.244 c -3.24 -5.032 -1.789 -6.486 0 -6.486 c 1.791 -6.486 3.24 -5.032 3.24 -3.244 c 3.24 -1.453 1.791 0 0 0 c f Q q 1 0 0 1 100.1486 56.681 cm 0 0 m -0.508 0.328 -1.108 0.525 -1.756 0.525 c -3.546 0.525 -4.998 -0.927 -4.998 -2.718 c -4.998 -4.506 -3.546 -5.959 -1.756 -5.959 c 0.033 -5.959 1.485 -4.506 1.485 -2.718 c 1.485 -2.514 1.461 -2.318 1.424 -2.125 c 0.693 -1.649 0.164 -0.889 0 0 c f Q EMC EMC /Figure <>BDC /PlacedGraphic BMC Q q 1 0 0 1 51.4209 70.879 cm 0 0.91 0.761 0 k 0 0 m 3.445 -5.424 l -3.444 -5.424 l h f Q q 1 0 0 1 47.1519 59.1036 cm 0 0.91 0.761 0 k 0 0 m 3.421 5.436 l -3.467 5.412 l h f Q q 1 0 0 1 55.4956 59.0196 cm 0 0.91 0.761 0 k 0 0 m 3.422 5.436 l -3.468 5.412 l h f Q q 36 36 31.298 34.879 re W n q 1 0 0 1 37.9546 50.6231 cm 0 0 0 1 k 0 0 m 1.086 2.501 l 2.122 0 l h 2.629 -1.229 m 2.751 -1.515 2.812 -1.724 2.812 -1.857 c 2.812 -1.956 2.769 -2.04 2.682 -2.109 c 2.595 -2.179 2.428 -2.219 2.182 -2.231 c 2.182 -2.404 l 4.641 -2.404 l 4.641 -2.231 l 4.388 -2.216 4.191 -2.147 4.049 -2.025 c 3.908 -1.902 3.75 -1.634 3.577 -1.222 c 1.441 3.918 l 1.265 3.918 l -0.937 -1.162 l -1.125 -1.61 -1.297 -1.907 -1.452 -2.053 c -1.528 -2.126 -1.696 -2.186 -1.955 -2.231 c -1.955 -2.404 l -0.005 -2.404 l -0.005 -2.231 l -0.304 -2.21 -0.498 -2.164 -0.587 -2.093 c -0.677 -2.021 -0.722 -1.939 -0.722 -1.845 c -0.722 -1.727 -0.67 -1.548 -0.567 -1.309 c -0.144 -0.332 l 2.259 -0.332 l 2.629 -1.229 l f Q q 1 0 0 1 44.8447 48.6041 cm 0 0 0 1 k 0 0 m -0.327 0 -0.623 0.162 -0.889 0.487 c -1.155 0.812 -1.288 1.28 -1.288 1.89 c -1.288 2.495 -1.15 2.954 -0.875 3.268 c -0.667 3.506 -0.43 3.626 -0.164 3.626 c -0.021 3.626 0.125 3.583 0.274 3.497 c 0.423 3.411 0.543 3.283 0.634 3.114 c 0.725 2.944 0.779 2.755 0.798 2.545 c 0.798 0.419 l 0.541 0.14 0.275 0 0 0 c 0.798 -0.504 m 1.009 -0.504 l 2.259 0 l 2.208 0.16 l 2.07 0.107 1.959 0.082 1.877 0.082 c 1.809 0.082 1.75 0.103 1.7 0.146 c 1.649 0.189 1.612 0.264 1.589 0.373 c 1.566 0.481 1.555 0.782 1.555 1.275 c 1.555 6.109 l 1.348 6.109 l 0.094 5.605 l 0.153 5.445 l 0.286 5.494 0.391 5.519 0.471 5.519 c 0.544 5.519 0.606 5.499 0.655 5.459 c 0.704 5.419 0.74 5.345 0.763 5.235 c 0.786 5.126 0.798 4.833 0.798 4.356 c 0.798 3.551 l 0.557 3.795 0.253 3.918 -0.115 3.918 c -0.709 3.918 -1.194 3.67 -1.572 3.174 c -1.949 2.678 -2.138 2.131 -2.138 1.534 c -2.138 0.936 -1.967 0.447 -1.626 0.066 c -1.286 -0.314 -0.887 -0.504 -0.431 -0.504 c -0.205 -0.504 0.005 -0.458 0.2 -0.365 c 0.394 -0.272 0.593 -0.116 0.798 0.102 c 0.798 -0.504 l f Q q 1 0 0 1 49.5195 48.6041 cm 0 0 0 1 k 0 0 m -0.327 0 -0.623 0.162 -0.889 0.487 c -1.154 0.812 -1.287 1.28 -1.287 1.89 c -1.287 2.495 -1.15 2.954 -0.875 3.268 c -0.667 3.506 -0.429 3.626 -0.164 3.626 c -0.022 3.626 0.124 3.583 0.274 3.497 c 0.423 3.411 0.544 3.283 0.634 3.114 c 0.725 2.944 0.78 2.755 0.798 2.545 c 0.798 0.419 l 0.541 0.14 0.275 0 0 0 c 0.798 -0.504 m 1.009 -0.504 l 2.259 0 l 2.208 0.16 l 2.07 0.107 1.96 0.082 1.877 0.082 c 1.809 0.082 1.75 0.103 1.7 0.146 c 1.649 0.189 1.612 0.264 1.589 0.373 c 1.566 0.481 1.555 0.782 1.555 1.275 c 1.555 6.109 l 1.348 6.109 l 0.094 5.605 l 0.154 5.445 l 0.286 5.494 0.392 5.519 0.471 5.519 c 0.544 5.519 0.606 5.499 0.655 5.459 c 0.704 5.419 0.74 5.345 0.763 5.235 c 0.786 5.126 0.798 4.833 0.798 4.356 c 0.798 3.551 l 0.557 3.795 0.253 3.918 -0.115 3.918 c -0.709 3.918 -1.194 3.67 -1.572 3.174 c -1.949 2.678 -2.137 2.131 -2.137 1.534 c -2.137 0.936 -1.967 0.447 -1.626 0.066 c -1.286 -0.314 -0.887 -0.504 -0.43 -0.504 c -0.205 -0.504 0.005 -0.458 0.2 -0.365 c 0.395 -0.272 0.594 -0.116 0.798 0.102 c 0.798 -0.504 l f Q q 1 0 0 1 53.1084 54.7135 cm 0 0 0 1 k 0 0 m 0.128 0 0.237 -0.045 0.328 -0.135 c 0.417 -0.225 0.463 -0.335 0.463 -0.462 c 0.463 -0.591 0.417 -0.701 0.328 -0.792 c 0.237 -0.884 0.128 -0.93 0 -0.93 c -0.128 -0.93 -0.238 -0.884 -0.33 -0.792 c -0.421 -0.701 -0.467 -0.591 -0.467 -0.462 c -0.467 -0.335 -0.422 -0.225 -0.332 -0.135 c -0.242 -0.045 -0.131 0 0 0 c 0.383 -2.191 m 0.383 -5.551 l 0.383 -5.815 0.402 -5.989 0.439 -6.076 c 0.477 -6.163 0.532 -6.228 0.605 -6.271 c 0.679 -6.313 0.813 -6.335 1.007 -6.335 c 1.007 -6.495 l -1.011 -6.495 l -1.011 -6.335 l -0.808 -6.335 -0.671 -6.315 -0.602 -6.275 c -0.532 -6.236 -0.477 -6.17 -0.435 -6.079 c -0.395 -5.987 -0.374 -5.812 -0.374 -5.551 c -0.374 -3.944 l -0.374 -3.484 -0.388 -3.186 -0.415 -3.05 c -0.436 -2.951 -0.47 -2.883 -0.516 -2.845 c -0.561 -2.807 -0.624 -2.787 -0.703 -2.787 c -0.789 -2.787 -0.892 -2.81 -1.014 -2.855 c -1.078 -2.696 l 0.182 -2.191 l 0.383 -2.191 l f Q q 1 0 0 1 57.3379 52.5221 cm 0 0 0 1 k 0 0 m 0 -1.421 l -0.16 -1.421 l -0.273 -0.974 -0.42 -0.669 -0.598 -0.508 c -0.776 -0.346 -1.003 -0.266 -1.278 -0.266 c -1.488 -0.266 -1.657 -0.322 -1.786 -0.435 c -1.915 -0.547 -1.979 -0.671 -1.979 -0.809 c -1.979 -0.979 -1.934 -1.124 -1.842 -1.247 c -1.754 -1.371 -1.565 -1.504 -1.276 -1.644 c -0.609 -1.967 l 0.009 -2.268 0.319 -2.665 0.319 -3.156 c 0.319 -3.536 0.175 -3.841 -0.113 -4.074 c -0.4 -4.306 -0.722 -4.422 -1.078 -4.422 c -1.333 -4.422 -1.625 -4.379 -1.954 -4.293 c -2.054 -4.265 -2.136 -4.25 -2.2 -4.25 c -2.27 -4.25 -2.325 -4.286 -2.364 -4.356 c -2.523 -4.356 l -2.523 -2.869 l -2.364 -2.869 l -2.279 -3.295 -2.117 -3.617 -1.877 -3.833 c -1.637 -4.049 -1.368 -4.157 -1.07 -4.157 c -0.86 -4.157 -0.689 -4.096 -0.557 -3.972 c -0.425 -3.849 -0.359 -3.701 -0.359 -3.528 c -0.359 -3.318 -0.433 -3.142 -0.58 -2.999 c -0.727 -2.856 -1.022 -2.675 -1.463 -2.456 c -1.905 -2.237 -2.194 -2.04 -2.332 -1.863 c -2.468 -1.69 -2.537 -1.472 -2.537 -1.207 c -2.537 -0.864 -2.42 -0.577 -2.185 -0.346 c -1.95 -0.115 -1.646 0 -1.273 0 c -1.11 0 -0.911 -0.035 -0.678 -0.104 c -0.523 -0.15 -0.42 -0.172 -0.369 -0.172 c -0.32 -0.172 -0.282 -0.162 -0.255 -0.141 c -0.228 -0.12 -0.196 -0.073 -0.16 0 c 0 0 l f Q q 1 0 0 1 61.0283 51.7916 cm 0 0 0 1 k 0 0 m 0.319 -0.426 0.479 -1.01 0.479 -1.753 c 0.479 -2.347 0.383 -2.765 0.192 -3.008 c 0 -3.252 -0.244 -3.373 -0.539 -3.373 c -0.934 -3.373 -1.253 -3.152 -1.496 -2.712 c -1.737 -2.27 -1.858 -1.746 -1.858 -1.136 c -1.858 -0.759 -1.808 -0.45 -1.707 -0.21 c -1.607 0.03 -1.476 0.198 -1.313 0.295 c -1.15 0.39 -0.988 0.439 -0.826 0.439 c -0.492 0.439 -0.216 0.293 0 0 c -1.671 0.46 m -1.982 0.279 -2.232 -0.001 -2.423 -0.378 c -2.613 -0.757 -2.708 -1.137 -2.708 -1.52 c -2.708 -2.045 -2.552 -2.519 -2.238 -2.94 c -1.867 -3.441 -1.366 -3.692 -0.735 -3.692 c -0.349 -3.692 0.003 -3.595 0.317 -3.401 c 0.632 -3.206 0.88 -2.918 1.06 -2.536 c 1.239 -2.153 1.329 -1.774 1.329 -1.401 c 1.329 -0.87 1.166 -0.399 0.84 0.011 c 0.457 0.491 -0.051 0.73 -0.685 0.73 c -1.032 0.73 -1.361 0.64 -1.671 0.46 c f Q q 1 0 0 1 64.1772 51.6397 cm 0 0 0 1 k 0 0 m 0.49 0.588 0.957 0.882 1.401 0.882 c 1.63 0.882 1.826 0.825 1.99 0.711 c 2.155 0.597 2.286 0.409 2.383 0.147 c 2.45 -0.035 2.483 -0.315 2.483 -0.693 c 2.483 -2.478 l 2.483 -2.743 2.505 -2.924 2.547 -3.018 c 2.581 -3.095 2.635 -3.154 2.709 -3.197 c 2.783 -3.24 2.921 -3.261 3.121 -3.261 c 3.121 -3.421 l 1.049 -3.421 l 1.049 -3.261 l 1.136 -3.261 l 1.331 -3.261 1.467 -3.231 1.546 -3.172 c 1.623 -3.113 1.678 -3.025 1.708 -2.909 c 1.72 -2.863 1.727 -2.719 1.727 -2.478 c 1.727 -0.764 l 1.727 -0.383 1.677 -0.106 1.578 0.066 c 1.479 0.238 1.313 0.325 1.08 0.325 c 0.718 0.325 0.358 0.126 0 -0.269 c 0 -2.478 l 0 -2.762 0.017 -2.938 0.05 -3.005 c 0.092 -3.094 0.15 -3.158 0.225 -3.2 c 0.299 -3.241 0.45 -3.261 0.677 -3.261 c 0.677 -3.421 l -1.381 -3.421 l -1.381 -3.261 l -1.291 -3.261 l -1.082 -3.261 -0.94 -3.207 -0.867 -3.099 c -0.794 -2.99 -0.757 -2.783 -0.757 -2.478 c -0.757 -0.924 l -0.757 -0.417 -0.768 -0.109 -0.792 0.001 c -0.814 0.112 -0.849 0.188 -0.896 0.228 c -0.944 0.267 -1.007 0.287 -1.086 0.287 c -1.172 0.287 -1.274 0.264 -1.392 0.218 c -1.461 0.378 l -0.197 0.882 l 0 0.882 l 0 0 l f Q q 1 0 0 1 46.7554 44.2081 cm 0 0 0 1 k 0 0 m 0 -0.173 l -0.161 -0.173 -0.292 -0.202 -0.393 -0.259 c -0.493 -0.317 -0.589 -0.425 -0.68 -0.582 c -0.741 -0.689 -0.837 -0.942 -0.968 -1.343 c -2.707 -6.322 l -2.891 -6.322 l -4.293 -2.387 l -5.689 -6.322 l -5.863 -6.322 l -7.688 -1.186 l -7.825 -0.806 -7.911 -0.581 -7.948 -0.512 c -8.009 -0.397 -8.092 -0.312 -8.197 -0.256 c -8.302 -0.201 -8.444 -0.173 -8.624 -0.173 c -8.624 0 l -6.339 0 l -6.339 -0.173 l -6.448 -0.173 l -6.61 -0.173 -6.733 -0.209 -6.818 -0.283 c -6.904 -0.356 -6.946 -0.444 -6.946 -0.548 c -6.946 -0.655 -6.879 -0.901 -6.745 -1.285 c -5.53 -4.761 l -4.501 -1.807 l -4.69 -1.276 l -4.836 -0.863 l -4.9 -0.711 -4.972 -0.579 -5.051 -0.463 c -5.091 -0.406 -5.14 -0.357 -5.197 -0.318 c -5.274 -0.264 -5.35 -0.224 -5.426 -0.2 c -5.484 -0.182 -5.576 -0.173 -5.7 -0.173 c -5.7 0 l -3.29 0 l -3.29 -0.173 l -3.454 -0.173 l -3.625 -0.173 -3.75 -0.209 -3.828 -0.282 c -3.907 -0.354 -3.947 -0.453 -3.947 -0.577 c -3.947 -0.732 -3.878 -1.001 -3.741 -1.386 c -2.555 -4.75 l -1.365 -1.341 l -1.231 -0.965 -1.164 -0.705 -1.164 -0.559 c -1.164 -0.489 -1.186 -0.424 -1.23 -0.364 c -1.274 -0.303 -1.33 -0.261 -1.397 -0.237 c -1.512 -0.194 -1.663 -0.173 -1.849 -0.173 c -1.849 0 l 0 0 l f Q q 1 0 0 1 47.0444 40.6353 cm 0 0 0 1 k 0 0 m -0.003 -0.618 0.147 -1.102 0.45 -1.453 c 0.753 -1.804 1.109 -1.979 1.518 -1.979 c 1.791 -1.979 2.028 -1.905 2.229 -1.757 c 2.43 -1.609 2.6 -1.351 2.736 -0.983 c 2.882 -1.074 l 2.818 -1.498 2.633 -1.88 2.326 -2.223 c 2.019 -2.565 1.634 -2.736 1.173 -2.736 c 0.671 -2.736 0.242 -2.541 -0.115 -2.151 c -0.472 -1.761 -0.651 -1.238 -0.651 -0.579 c -0.651 0.134 -0.467 0.689 -0.101 1.088 c 0.265 1.487 0.725 1.687 1.277 1.687 c 1.746 1.687 2.13 1.534 2.431 1.228 c 2.732 0.921 2.882 0.512 2.882 0 c h 0 0.266 m 1.926 0.266 l 1.911 0.53 1.879 0.717 1.83 0.826 c 1.755 0.995 1.642 1.127 1.492 1.224 c 1.342 1.32 1.185 1.368 1.022 1.368 c 0.771 1.368 0.546 1.271 0.348 1.077 c 0.149 0.882 0.033 0.612 0 0.266 c f Q q 1 0 0 1 53.2002 42.3224 cm 0 0 0 1 k 0 0 m 0 -1.421 l -0.159 -1.421 l -0.273 -0.974 -0.419 -0.669 -0.598 -0.508 c -0.776 -0.346 -1.003 -0.266 -1.278 -0.266 c -1.488 -0.266 -1.657 -0.322 -1.786 -0.435 c -1.915 -0.547 -1.979 -0.672 -1.979 -0.809 c -1.979 -0.979 -1.934 -1.125 -1.842 -1.247 c -1.754 -1.372 -1.565 -1.503 -1.276 -1.644 c -0.609 -1.967 l 0.009 -2.268 0.319 -2.665 0.319 -3.156 c 0.319 -3.536 0.175 -3.842 -0.113 -4.074 c -0.4 -4.307 -0.722 -4.423 -1.078 -4.423 c -1.333 -4.423 -1.626 -4.38 -1.954 -4.293 c -2.054 -4.265 -2.136 -4.25 -2.2 -4.25 c -2.27 -4.25 -2.325 -4.286 -2.364 -4.356 c -2.523 -4.356 l -2.523 -2.869 l -2.364 -2.869 l -2.279 -3.295 -2.117 -3.617 -1.877 -3.833 c -1.637 -4.049 -1.368 -4.157 -1.07 -4.157 c -0.86 -4.157 -0.69 -4.096 -0.557 -3.973 c -0.425 -3.849 -0.358 -3.702 -0.358 -3.528 c -0.358 -3.318 -0.433 -3.142 -0.58 -2.999 c -0.727 -2.856 -1.022 -2.675 -1.463 -2.456 c -1.905 -2.237 -2.195 -2.04 -2.332 -1.863 c -2.469 -1.69 -2.537 -1.472 -2.537 -1.207 c -2.537 -0.864 -2.419 -0.577 -2.185 -0.346 c -1.95 -0.116 -1.646 0 -1.273 0 c -1.11 0 -0.912 -0.035 -0.678 -0.105 c -0.523 -0.15 -0.42 -0.173 -0.369 -0.173 c -0.32 -0.173 -0.282 -0.162 -0.255 -0.141 c -0.228 -0.12 -0.196 -0.073 -0.159 0 c 0 0 l f Q q 1 0 0 1 55.5898 44.5138 cm 0 0 0 1 k 0 0 m 0 -5.552 l 0 -5.814 0.019 -5.989 0.058 -6.074 c 0.096 -6.16 0.155 -6.225 0.233 -6.269 c 0.313 -6.314 0.461 -6.335 0.678 -6.335 c 0.678 -6.495 l -1.381 -6.495 l -1.381 -6.335 l -1.187 -6.335 -1.054 -6.315 -0.983 -6.275 c -0.912 -6.236 -0.857 -6.17 -0.816 -6.079 c -0.777 -5.987 -0.757 -5.812 -0.757 -5.552 c -0.757 -1.753 l -0.757 -1.276 -0.767 -0.983 -0.788 -0.875 c -0.81 -0.765 -0.844 -0.691 -0.891 -0.651 c -0.938 -0.611 -0.997 -0.591 -1.07 -0.591 c -1.149 -0.591 -1.249 -0.616 -1.37 -0.664 c -1.447 -0.505 l -0.204 0 l 0 0 l f Q q 1 0 0 1 57.7783 41.712 cm 0 0 0 1 k 0 0 m 0.198 0.194 0.423 0.292 0.675 0.292 c 0.838 0.292 0.995 0.243 1.145 0.147 c 1.295 0.051 1.407 -0.082 1.483 -0.25 c 1.531 -0.359 1.563 -0.546 1.579 -0.811 c -0.347 -0.811 l -0.314 -0.465 -0.199 -0.194 0 0 c 2.535 -1.077 m 2.535 -0.564 2.384 -0.155 2.083 0.151 c 1.782 0.457 1.398 0.61 0.93 0.61 c 0.376 0.61 -0.083 0.411 -0.449 0.012 c -0.815 -0.387 -0.998 -0.943 -0.998 -1.656 c -0.998 -2.314 -0.819 -2.838 -0.462 -3.228 c -0.105 -3.618 0.324 -3.813 0.825 -3.813 c 1.287 -3.813 1.671 -3.642 1.979 -3.299 c 2.286 -2.957 2.471 -2.574 2.535 -2.15 c 2.389 -2.06 l 2.252 -2.428 2.083 -2.686 1.881 -2.834 c 1.68 -2.981 1.443 -3.056 1.17 -3.056 c 0.761 -3.056 0.406 -2.88 0.103 -2.529 c -0.2 -2.178 -0.351 -1.694 -0.347 -1.077 c 2.535 -1.077 l f Q q 1 0 0 1 60.6509 42.2027 cm 0 0 0 1 k 0 0 m 1.954 0 l 1.954 -0.16 l 1.859 -0.16 l 1.722 -0.16 1.619 -0.189 1.55 -0.25 c 1.482 -0.31 1.448 -0.385 1.448 -0.474 c 1.448 -0.594 1.497 -0.761 1.598 -0.974 c 2.619 -3.094 l 3.55 -0.773 l 3.602 -0.646 3.628 -0.52 3.628 -0.396 c 3.628 -0.341 3.618 -0.299 3.596 -0.271 c 3.572 -0.237 3.534 -0.21 3.482 -0.19 c 3.43 -0.169 3.339 -0.16 3.208 -0.16 c 3.208 0 l 4.562 0 l 4.562 -0.16 l 4.449 -0.172 4.362 -0.196 4.302 -0.233 c 4.24 -0.27 4.174 -0.339 4.101 -0.439 c 4.073 -0.482 4.021 -0.6 3.945 -0.793 c 2.251 -4.98 l 2.086 -5.383 1.871 -5.688 1.604 -5.894 c 1.337 -6.1 1.081 -6.203 0.835 -6.203 c 0.654 -6.203 0.506 -6.151 0.391 -6.048 c 0.275 -5.945 0.217 -5.827 0.217 -5.694 c 0.217 -5.567 0.259 -5.465 0.343 -5.389 c 0.427 -5.311 0.542 -5.273 0.689 -5.273 c 0.789 -5.273 0.926 -5.304 1.1 -5.367 c 1.222 -5.411 1.297 -5.432 1.328 -5.432 c 1.419 -5.432 1.519 -5.386 1.627 -5.292 c 1.736 -5.199 1.845 -5.018 1.954 -4.751 c 2.248 -4.02 l 0.745 -0.866 l 0.699 -0.77 0.626 -0.651 0.525 -0.508 c 0.449 -0.4 0.387 -0.327 0.338 -0.29 c 0.268 -0.24 0.155 -0.197 0 -0.16 c 0 0 l f Q EMC EMC Q q 0 g /GS2 gs /Fm1 Do Q endstream endobj 46746 0 obj <> endobj 46747 0 obj <> endobj 46748 0 obj <> endobj 46749 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (994)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (writew_lock)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(489,)-250(491, 759, 763, 769,)]TJ -4.317 -1.25 Td (771)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (772, 777, 787, 897)Tj /TT0 1 Tf -4.866 -1.25 Td (wscanf)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -4.017 -1.25 Td (WSTOPPED)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(244)]TJ /TT0 1 Tf -5.217 -1.25 Td (WSTOPSIG)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(239)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (240)Tj /TT0 1 Tf -11.84 -1.25 Td (WTERMSIG)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(239)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (240)Tj /TT0 1 Tf -11.84 -1.25 Td (wtmp)Tj /T1_1 1 Tf 2.817 0 Td [(\336le, )-250(186)]TJ 3.708 0.09 Td (\320)Tj 0.583 -0.09 Td (187, 312, 923)Tj -0.05 Tc -7.108 -1.25 Td (Wu)Tj 0 Tc 1.553 0 Td (lf, W)Tj 0.25 Tc 2.032 0 Td (.A)Tj 0 Tc 1.278 0 Td [(., )-250(953)]TJ /TT0 1 Tf -4.863 -1.25 Td (WUNTRACED)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(242)]TJ -5.817 -4.75 Td [(x86, )-250(xxi)]TJ /TT0 1 Tf 0 -1.25 TD (xargs)Tj /T1_1 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(252)]TJ /TT0 1 Tf -3.417 -1.25 Td (XCASE)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(691)]TJ -3.417 -1.25 Td [(Xenix, )-250(33,)-250(485, 726)]TJ /TT0 1 Tf T* (xinetd)Tj /T1_1 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(293)]TJ /TT0 1 Tf -4.017 -1.25 Td (X_OK)Tj /T1_1 1 Tf 2.817 0 Td [(constant, )-250(102)]TJ -2.817 -1.25 Td [(X/Open, )-250(xxvi,)-250(31, 953)]TJ T* [(X/Open Curses,)-500(32)]TJ T* [(X/Open Portability Guide,)-500(31)]TJ 13.48 0.09 Td (\320)Tj 0.583 -0.09 Td (32)Tj -12.714 -1.25 Td (Issue 3,)Tj /T1_2 1 Tf 3.767 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td (XPG3)Tj -5.184 -1.25 Td (Issue 4,)Tj /T1_2 1 Tf 3.767 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td (XPG4)Tj /TT0 1 Tf -6.534 -1.25 Td (_XOPEN_CRYPT)Tj /T1_1 1 Tf 7.617 0 Td [(constant, )-250(31,)-250(57)]TJ /TT0 1 Tf -7.617 -1.25 Td (_XOPEN_IOV_MAX)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(41)]TJ /TT0 1 Tf -8.817 -1.25 Td (_XOPEN_NAME_MAX)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(41)]TJ /TT0 1 Tf -9.417 -1.25 Td (_XOPEN_PATH_MAX)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(41)]TJ /TT0 1 Tf -9.417 -1.25 Td (_XOPEN_REALTIME)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(31,)-250(57)]TJ /TT0 1 Tf -9.417 -1.25 Td (_XOPEN_REALTIME_THREADS)Tj /T1_1 1 Tf 14.217 0 Td [(constant, )-250(31,)-250(57)]TJ /TT0 1 Tf -14.217 -1.25 Td (_XOPEN_SHM)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -6.417 -1.25 Td (_XOPEN_SOURCE)Tj /T1_1 1 Tf 8.217 0 Td [(constant, )-250(57)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (58)Tj /TT0 1 Tf -14.363 -1.25 Td (_XOPEN_UNIX)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(30)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (31, 57)Tj /TT0 1 Tf -13.163 -1.25 Td (_XOPEN_VERSION)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(57)]TJ -8.817 -1.25 Td (XPG3)Tj 2.784 0.04 Td (\()Tj 0.333 -0.04 Td (X/Open Portability Guide, Issue 3)Tj 15.164 0.04 Td (\))Tj 0.5 Tc 0.333 -0.04 Td (,x)Tj 0 Tc 1.266 0 Td (xxi,)Tj -17.18 -1.25 Td (33, 953)Tj -2.7 -1.25 Td (XPG4)Tj 2.784 0.04 Td (\()Tj 0.333 -0.04 Td (X/Open Portability Guide, Issue 4)Tj 15.164 0.04 Td (\))Tj 0.5 Tc 0.333 -0.04 Td (,3)Tj 0 Tc 1.25 0 Td (2, 54)Tj -19.864 -1.25 Td [(XSI, )-250(30)]TJ 3.362 0.09 Td (\320)Tj 0.583 -0.09 Td (31, 53)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (54, 57, 94, 107, 109, 131)Tj 10.083 0.09 Td (\320)Tj 0.583 -0.09 Td (132, 143,)Tj -15.079 -1.25 Td (161, 163, 168)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(169, 180, 183, 21)55(1)]TJ 7.528 0.09 Td (\320)Tj 0.583 -0.09 Td (212, 220, 222,)Tj -14.278 -1.25 Td (239, 242, 244)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (245, 252, 257, 276, 293, 315, 317,)Tj -6.166 -1.25 Td (322, 329, 333, 350)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (352, 377, 429, 431, 442,)Tj -8.166 -1.25 Td (469)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (472, 485, 521, 526, 528, 534, 553,)Tj -2.167 -1.25 Td (562)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (563, 566, 571, 576, 578, 587)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (588, 666,)Tj -14.333 -1.25 Td (676, 685, 687, 689)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (691, 722, 724, 744, 910)Tj -10.867 -1.25 Td [(XSI IPC,)-500(556)]TJ 5.762 0.09 Td (\320)Tj 0.583 -0.09 Td (560)Tj /TT0 1 Tf -6.346 -1.25 Td (XTABS)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(690)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (691)Tj -0.055 Tc -10.063 -4.75 Td (Yi)Tj 0 Tc 0.903 0 Td [(git, O.,)-500(744, 952)]TJ -0.903 -4.75 Td [(zombie, )-250(237)]TJ 5.585 0.09 Td (\320)Tj 0.583 -0.09 Td (238, 242, 283, 333, 351, 923)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46750 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (xxvi)Tj /T1_1 1 Tf 3.889 0 Td [(Pr)18(eface )-250(to )-250(the )-250(Second )-250(Edition)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 0.883 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (\245A)Tj 0 Tc 2.267 0 Td [(fter )-5(4.4BSD )-5(was )-5(r)18(eleased, )-5(the )-5(Computing )-5(Science )-5(Resear)18(ch )-5(Gr)17(oup)]TJ 29.208 0.04 Td (\()Tj 0.333 -0.04 Td (CSRG)Tj 2.665 0.04 Td (\))Tj 0.588 -0.04 Td [(fr)18(om)]TJ -33.572 -1.2 Td [(the )-504(University )-504(of )-504(California )-504(at )-504(Berkeley )-504(decided )-504(to )-504(put )-504(an )-504(end )-504(to )-504(its)]TJ 0 -1.2 TD [(development )-248(of )-248(the )-248(UNIX )-248(operating )-248(system, )-248(but )-248(several )-248(dif)20(fer)18(ent )-248(gr)18(oups )-248(of)]TJ -0 -1.2 Td (volunteers still maintain publicly available versions.)Tj 0.883 Tc -1.489 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-120(intr)18(oduction )-120(of )-120(Linux, )-120(supported )-120(by )-120(thousands )-120(of )-120(volunteers, )-120(has )-120(made )-120(it)]TJ -0.613 -1.2 Td [(possible )-100(for )-100(anyone )-100(with )-100(a )-100(computer )-100(to )-100(r)8(un )-100(an )-100(operating )-100(system )-100(similar )-100(to )-100(the)]TJ T* [(UNIX )-364(System, )-364(with )-364(fr)18(eely )-364(available )-364(sour)18(ce )-364(code )-364(for )-364(the )-364(newest )-364(har)19(dwar)18(e)]TJ T* [(devices. )-287(The)-288(success )-37(of )-37(Linux )-37(is )-37(something )-37(of )-37(a )-37(curiosity)]TJ 0.2872 Tc 25.304 0 Td (,g)Tj 0 Tc 1.093 0 Td [(iven )-37(that )-37(several )-37(fr)17(ee)]TJ -26.397 -1.2 Td (BSD alternatives ar)Tj 0.25 Tc 8.445 0 Td (er)Tj 0 Tc 1.106 0 Td (eadily available.)Tj 0.883 Tc -11.04 -1.6 Td (\245C)Tj 0 Tc 2.198 0 Td [(ontinuing )-45(its )-45(tr)18(end )-45(as )-45(an )-45(innovative )-45(company)]TJ 0.2946 Tc 20.277 0 Td (,A)Tj 0 Tc 1.323 0 Td [(pple )-45(Computer )-45(abandoned )-45(its)]TJ -22.308 -1.2 Td [(old )-9(Mac )-9(operating )-9(system )-9(and )-9(r)18(eplaced )-9(it )-9(with )-9(one )-9(based )-9(on )-9(Mach )-9(and )-9(Fr)23(eeBSD.)]TJ -3.289 -1.92 Td [(Thus, )-129(I\325ve )-129(tried )-129(to )-129(update )-129(the )-129(information )-129(pr)18(esented )-129(in )-129(this )-129(book )-129(to )-129(r)18(e\337ect )-129(these )-129(four)]TJ T* (platforms.)Tj 1.8 -1.2 Td [(After )-5(Rich )-5(wr)18(ote)]TJ /T1_2 1 Tf 7.624 0 Td [(Advanced )-5(Pr)18(ogramming )-5(in )-5(the )-5(UNIX )-5(Envir)17(onment)]TJ /T1_1 1 Tf 21.237 0 Td [(in )-5(1992, )-5(I )-5(got )-5(rid )-5(of)]TJ -30.661 -1.2 Td [(most )-66(of )-66(my )-66(UNIX )-66(pr)17(ogrammer )176(\325s)-316(manuals. )-316(T)]TJ 0.3163 Tc 20.202 0 Td (ot)Tj 0 Tc 1.188 0 Td [(his )-66(day)]TJ 0.3163 Tc 3.169 0 Td (,t)Tj 0 Tc 0.892 0 Td [(he )-66(two )-66(books )-66(I )-66(keep )-66(closest )-66(to)]TJ -25.452 -1.2 Td [(my )-30(desk )-30(ar)]TJ 0.2799 Tc 4.946 0 Td (ead)Tj 0 Tc 2.15 0 Td [(ictionary )-30(and )-30(a )-30(copy )-30(of)]TJ /T1_2 1 Tf 10.549 0 Td [(Advanced )-30(Pr)18(ogramming )-30(in )-30(the )-30(UNIX )-30(Envir)19(onment)]TJ /T1_1 1 Tf (.)Tj 0.25 Tc -17.645 -1.2 Td (Ih)Tj 0 Tc 1.169 0 Td [(ope you \336nd this r)18(evision equally useful.)]TJ /TT0 1 Tf -4.769 -2.76 Td [(Chang )268(es)-278(fr)20(om the Fir)15(st Edition)]TJ /T1_1 1 Tf 3.6 -2.16 Td [(Rich\325s )-26(work )-26(holds )-26(up )-26(well.)-526(I\325ve )-26(tried )-26(not )-26(to )-26(change )-26(his )-26(original )-26(vision )-26(for )-26(this )-26(book, )-26(but)]TJ 0.2875 Tc T* (al)Tj 0 Tc 1.079 0 Td [(ot )-37(has )-37(happened )-37(in )-37(13 )-37(years.)-537(This )-37(is )-37(especially )-37(tr)8(ue )-37(with )-37(the )-37(standar)18(ds )-37(that )-37(af)18(fect )-37(the)]TJ -1.079 -1.2 Td [(UNIX pr)18(ogramming interface.)]TJ 1.8 -1.2 Td [(Thr)18(oughout )-76(the )-76(book, )-76(I\325ve )-76(updated )-76(interfaces )-76(that )-76(have )-76(changed )-76(fr)18(om )-76(the )-76(ongoing)]TJ -1.8 -1.2 Td [(ef)18(forts )-305(in )-305(standar)18(ds )-305(or)17(ganizations. )-555(This)-555(is )-305(most )-305(noticeable )-305(in )-305(Chapter )-305(2, )-305(since )-305(its)]TJ -0 -1.2 Td [(primary )-43(topic )-43(is )-43(standar)18(ds. )-293(The)-293(2001 )-43(version )-43(of )-43(the )-43(POSIX.1 )-43(standar)18(d, )-43(which )-43(we )-43(use )-43(in)]TJ T* [(this )-186(r)18(evision, )-186(is )-186(much )-186(mor)]TJ 0.4362 Tc 12.206 0 Td (ec)Tj 0 Tc 1.359 0 Td [(ompr)18(ehensive )-186(than )-186(the )-186(1990 )-186(version )-186(on )-186(which )-186(the )-186(\336rst)]TJ -13.565 -1.2 Td [(edition )-155(of )-155(this )-155(book )-155(was )-155(based.)-656(The )-155(1990 )-155(ISO )-155(C )-155(standar)]TJ 0.4053 Tc 26.057 0 Td (dw)Tj 0 Tc 1.85 0 Td [(as )-155(updated )-155(in )-155(1999, )-155(and)]TJ -27.908 -1.2 Td [(some changes af)18(fect the interfaces in the POSIX.1 standar)18(d.)]TJ 0.5062 Tc 1.8 -1.2 Td (Al)Tj 0 Tc 1.575 0 Td [(ot )-256(mor)]TJ 0.5062 Tc 3.184 0 Td (ei)Tj 0 Tc 1.276 0 Td [(nterfaces )-256(ar)]TJ 0.5062 Tc 5.345 0 Td (en)Tj 0 Tc 1.567 0 Td [(ow )-256(cover)18(ed )-256(by )-256(the )-256(POSIX.1 )-256(speci\336cation.)-757(The )-256(base)]TJ -14.748 -1.2 Td [(speci\336cations )-3(of )-3(the )-3(Single )-3(UNIX )-3(Speci\336cation )-3(\(published )-3(by )-3(The )-3(Open )-3(Gr)13(oup, )-4(formerly)]TJ T* [(X/Open\) )-340(have )-340(been )-340(mer)18(ged )-340(with )-340(POSIX.1.)-840(POSIX.1 )-340(now )-340(includes )-340(several )-340(1003.1)]TJ T* [(standar)18(ds and draft standar)18(ds that wer)]TJ 0.25 Tc 17.242 0 Td (ef)Tj 0 Tc 1.062 0 Td [(ormerly published separately)111(.)]TJ -16.504 -1.2 Td [(Accor)18(dingly)]TJ 0.7424 Tc 5.365 0 Td (,I)Tj 0 Tc 1.329 0 Td [(\325ve )-492(added )-492(chapters )-492(to )-492(cover )-492(some )-492(new )-492(topics.)-995(Thr)18(eads )-492(and)]TJ -8.494 -1.2 Td [(multithr)18(eaded )-7(pr)18(ogramming )-7(ar)]TJ 0.2566 Tc 13.919 0 Td (ei)Tj 0 Tc 1.027 0 Td [(mportant )-7(concepts )-7(because )-7(they )-7(pr)18(esent )-7(a )-7(cleaner )-7(way)]TJ -14.946 -1.2 Td [(for pr)18(ogrammers to deal with concurr)18(ency and asynchr)18(ony)111(.)]TJ 1.8 -1.2 Td [(The )-288(socket )-288(interface )-288(is )-288(now )-288(part )-288(of )-288(POSIX.1.)-788(It )-288(pr)18(ovides )-288(a )-288(single )-288(interface )-288(to)]TJ -1.8 -1.2 Td [(interpr)18(ocess )-176(communication)]TJ 13.142 0.04 Td (\()Tj 0.333 -0.04 Td (IPC)Tj 1.65 0.04 Td (\))Tj 0.4264 Tc 0.333 -0.04 Td (,r)Tj 0 Tc 1.053 0 Td [(egar)18(dless )-176(of )-176(the )-176(location )-176(of )-176(the )-176(pr)18(ocess, )-176(and )-176(is )-176(a)]TJ -16.511 -1.2 Td (natural extension of the IPC chapters.)Tj 1.8 -1.2 Td [(I\325ve )-46(omitted )-46(most )-46(of )-46(the )-46(r)18(eal-time )-46(interfaces )-46(that )-46(appear )-46(in )-46(POSIX.1.)-552(These )-47(ar)]TJ 0.2966 Tc 34.642 0 Td (eb)Tj 0 Tc 1.329 0 Td (est)Tj -37.771 -1.2 Td [(tr)18(eated )-204(in )-204(a )-204(text )-204(devoted )-204(to )-204(r)18(eal-time )-204(pr)17(ogramming. )-454(One)-454(such )-204(book )-204(appears )-204(in )-204(the)]TJ T* [(bibliography)111(.)]TJ 1.8 -1.2 Td [(I\325ve )-59(updated )-59(the )-59(case )-59(studies )-59(in )-59(the )-59(last )-59(chapters )-59(to )-59(cover )-59(mor)]TJ 0.3096 Tc 27.846 0 Td (er)Tj 0 Tc 1.166 0 Td [(elevant )-60(r)18(eal-world)]TJ -30.811 -1.2 Td [(examples. )-376(For)-377(example, )-126(few )-126(systems )-126(these )-126(days )-126(ar)]TJ 0.3763 Tc 23.223 0 Td (ec)Tj 0 Tc 1.299 0 Td [(onnected )-126(to )-126(a )-126(PostScript )-126(printer)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46751 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 370.578 708 Tm [(Pr)18(eface )-250(to )-250(the )-250(First )-250(Edition)]TJ /T1_1 1 Tf 14.725 0 Td (xxxi)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(Systems Used to T)60(est the Examples)]TJ /T1_0 1 Tf 3.6 -2.4 Td [(Unfortunately )-215(all )-215(operating )-215(systems )-215(ar)]TJ 0.4649 Tc 17.908 0 Td (em)Tj 0 Tc 1.827 0 Td [(oving )-215(tar)18(gets. )-465(Unix)-465(is )-215(no )-215(exception.)-715(The)]TJ -19.735 -1.2 Td [(following )-65(diagram )-65(shows )-65(the )-65(r)17(ecent )-65(evolution )-65(of )-65(the )-65(various )-65(versions )-65(of )-65(System )-65(V )-65(and)]TJ 0 -1.2 TD (4.xBSD.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1356.25 5534.25 cm 0 0 m 540 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 154.5814 546.5744 Tm (1986)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1896.25 5534.25 cm 0 0 m 540 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 208.5625 546.5416 Tm (1987)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2436.25 5534.25 cm 0 0 m 540 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 262.537 546.5088 Tm (1988)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2976.25 5534.25 cm 0 0 m 540 0 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 316.505 546.476 Tm (1989)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3516.25 5534.25 cm 0 0 m 540 0 l S Q Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 370.4666 546.4432 Tm (1990)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4056.25 5534.25 cm 0 0 m 540 0 l S Q Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 424.4217 546.4105 Tm (1991)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4596.25 5534.25 cm 0 0 m 540 0 l S Q Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 478.3703 546.3777 Tm (1992)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1356.25 5498.25 cm 0 0 m 0 72 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1896.25 5498.25 cm 0 0 m 0 72 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2436.25 5498.25 cm 0 0 m 0 72 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2976.25 5498.25 cm 0 0 m 0 72 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3516.25 5498.25 cm 0 0 m 0 72 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4056.25 5498.25 cm 0 0 m 0 72 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4596.25 5498.25 cm 0 0 m 0 72 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5136.25 5498.25 cm 0 0 m 0 72 l S Q Q q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 153.6 560.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 1536 5606 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1536.25 5678.25 cm 0 0 m 0 216 l S Q Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 140.8754 592.2845 Tm (4.3BSD)Tj ET q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 270.6 560.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 2706 5606 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 5678.25 cm 0 0 m 0 216 l S Q Q BT /T1_0 1 Tf 7.9947 0 0 7.9947 246.2854 592.249 Tm [(4.3BSD T)92(ahoe)]TJ ET q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 324.6 560.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 3246 5606 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 5678.25 cm 0 0 m 0 72 l S Q Q BT /T1_0 1 Tf 7.9942 0 0 7.9942 306.1955 577.8238 Tm (BSD Net 1)Tj ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 387.6 560.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 3876 5606 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3876.25 5678.25 cm 0 0 m 0 216 l S Q Q BT /T1_0 1 Tf 7.9938 0 0 7.9938 364.5755 592.1779 Tm (4.3BSD Reno)Tj ET q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 432.6 560.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 4326 5606 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4326.25 5678.25 cm 0 0 m 0 72 l S Q Q BT /T1_0 1 Tf 7.9933 0 0 7.9933 414.068 577.7545 Tm (BSD Net 2)Tj ET q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 495.6 560.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 4956 5606 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4956.25 5678.25 cm 0 0 m 0 216 l S Q Q BT /T1_0 1 Tf 7.9928 0 0 7.9928 479.752 592.1068 Tm (4.4BSD ?)Tj ET q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 473.136 560.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 4731.3599 5606 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4731.25 5678.25 cm 0 0 m 0 360 l S Q Q BT /T1_1 1 Tf 8.9914 0 0 8.9914 455.1039 606.4575 Tm (4.3)Tj /TT1 1 Tf 1.25 0.1 Td (+)Tj /T1_1 1 Tf 0.549 -0.1 Td (BSD)Tj ET q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 162.6 539 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 1626 5390 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1626.25 5318.25 cm 0 0 m 0 -72 l S Q Q BT /T1_0 1 Tf 7.9918 0 0 7.9918 149.7871 517.3121 Tm (SVR3.0)Tj ET q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 216.6 539 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 2166 5390 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2166.25 5318.25 cm 0 0 m 0 -72 l S Q Q BT /T1_0 1 Tf 7.9914 0 0 7.9914 203.7199 517.281 Tm (SVR3.1)Tj ET q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 270.6 539 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 2706 5390 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 5318.25 cm 0 0 m 0 -72 l S Q Q BT /T1_0 1 Tf 7.9909 0 0 7.9909 257.6461 517.25 Tm (SVR3.2)Tj ET q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 378.6 539 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 3786 5390 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 5318.25 cm 0 0 m 0 -72 l S Q Q BT /T1_0 1 Tf 7.9904 0 0 7.9904 368.4975 517.2189 Tm (SVR4)Tj ET q 0.9988007 0 0 0.9988007 0 0 cm q 1 0 0 1 293.136 546.2 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998801 0 0 0.0998801 0 0 cm 1 j 1 J q 1 0 0 1 2931.3601 5462 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2931.25 5390.25 cm 0 0 m 0 -36 l S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2931.25 5306.25 cm 0 0 m 0 -36 l S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2931.25 5222.25 cm 0 0 m 0 -36 l S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2931.25 5138.25 cm 0 0 m 0 -36 l S Q Q BT /T1_0 1 Tf 7.9899 0 0 7.9899 282.6436 502.806 Tm (XPG3)Tj ET q 0.9987408 0 0 0.9987408 0 0 cm q 1 0 0 1 347.136 546.2 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998741 0 0 0.0998741 0 0 cm 1 j 1 J q 1 0 0 1 3471.3601 5462 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3471.25 5390.25 cm 0 0 m 0 -36 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3471.25 5306.25 cm 0 0 m 0 -36 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3471.25 5222.25 cm 0 0 m 0 -36 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3471.25 5138.25 cm 0 0 m 0 -36 l S Q Q BT /T1_0 1 Tf 7.9894 0 0 7.9894 332.9762 502.7759 Tm (ANSI C)Tj ET q 0.9986808 0 0 0.9986808 0 0 cm q 1 0 0 1 401.136 546.2 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998681 0 0 0.0998681 0 0 cm 1 j 1 J q 1 0 0 1 4011.3601 5462 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4011.25 5390.25 cm 0 0 m 0 -36 l S Q Q q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4011.25 5306.25 cm 0 0 m 0 -36 l S Q Q q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4011.25 5222.25 cm 0 0 m 0 -36 l S Q Q q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4011.25 5138.25 cm 0 0 m 0 -36 l S Q Q BT /T1_0 1 Tf 7.989 0 0 7.989 385.927 502.7457 Tm (POSIX.1)Tj 9.9862 0 0 9.9862 129.4213 481.1358 Tm [(4.xBSD )-208(ar)]TJ 0.4583 Tc 4.511 0 Td (et)Tj 0 Tc 1.263 0 Td [(he )-208(various )-208(systems )-208(fr)18(om )-208(the )-208(Computer )-208(Systems )-208(Resear)16(ch )-208(Gr)18(oup )-208(at )-208(the)]TJ -5.775 -1.2 Td [(University )-23(of )-23(California )-23(at )-23(Berkeley)]TJ 0.523 Tc 15.657 0 Td (.T)Tj 0 Tc 1.386 0 Td [(his )-23(gr)18(oup )-23(also )-23(distributes )-23(the )-23(BSD )-23(Net )-23(1 )-23(and )-23(BSD)]TJ -17.043 -1.2 Td [(Net )-15(2 )-15(r)18(eleases )167(\321 )167(publicly)-266(available )-15(sour)18(ce )-15(code )-15(fr)18(om )-15(the )-15(4.xBSD )-15(systems.)-515(SVRx )-15(r)18(efers )-15(to)]TJ -0 -1.2 Td [(System )-124(V )-124(Release )-124(x )-124(fr)18(om )-124(A)75(T&T)]TJ 0.6238 Tc 14.393 0 Td (.X)Tj 0 Tc 1.541 0 Td [(PG3 )-124(is )-124(the )-124(X/Open )-124(Portability )-124(Guide, )-124(Issue )-124(3, )-124(and)]TJ -15.934 -1.2 Td [(ANSI )-126(C )-126(is )-126(the )-126(ANSI )-126(standar)]TJ 0.3763 Tc 12.955 0 Td (df)Tj 0 Tc 1.32 0 Td [(or )-126(the )-126(C )-126(pr)18(ogramming )-126(language.)-626(POSIX.1 )-126(is )-126(the )-126(IEEE)]TJ -14.275 -1.2 Td [(and )-58(ISO )-58(standar)]TJ 0.308 Tc 7.277 0 Td (df)Tj 0 Tc 1.252 0 Td [(or )-58(the )-58(interface )-58(to )-58(a )-58(Unix-like )-58(system.)]TJ -0.092 Tc 17.393 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-58(have )-58(mor)18(e)-308(to)-308(say )-58(about)]TJ -27.309 -1.2 Td [(these dif)18(fer)18(ent standar)18(ds and the various versions of Unix in Sections 2.2 and 2.3.)]TJ /T1_1 1 Tf 5.4 -2.2 Td [(In )-172(this )-172(text )-172(we )-172(use )-172(the )-172(term)]TJ /T1_2 1 Tf 13.786 0 Td (4.3)Tj 1.25 0.08 Td (+)Tj 0.606 -0.08 Td (BSD)Tj /T1_1 1 Tf 2.423 0 Td [(to )-172(refer )-172(to )-172(the )-172(Unix )-172(system )-172(from)]TJ -18.066 -1.2 Td (Berkeley that is somewhere between the BSD Net 2 release and 4.4BSD.)Tj /T1_0 1 Tf 7.989 0 0 7.989 183.3463 355.3095 Tm [(At )-31(the )-31(time )-31(of )-31(this )-31(writing, )-31(4.4BSD )-31(was )-31(not )-31(r)18(eleased, )-31(so )-31(the )-31(system )-31(could )-31(not )-31(be )-31(called )-31(4.4BSD.)]TJ 0 -1.25 TD [(Nevertheless )-356(a )-356(simple )-356(name )-356(was )-356(needed )-356(to )-356(r)18(efer )-356(to )-356(this )-356(system )-356(and)]TJ /T1_3 1 Tf 34.154 0 Td (4.3)Tj 1.25 0.08 Td (+)Tj 0.606 -0.08 Td (BSD)Tj /T1_0 1 Tf 2.551 0 Td [(is )-356(used)]TJ -38.562 -1.25 Td [(thr)18(oughout the text.)]TJ 9.9862 0 0 9.9862 129.421 317.3619 Tm [(Most of the examples in this text have been r)8(un on four dif)18(fer)18(ent versions of Unix:)]TJ 1.8 -2.4 Td [(1. )-633(Unix)-395(System )-145(V/386 )-145(Release )-145(4.0 )-145(V)112(ersion )-145(2.0 )-145(\(\324)37(\324vanilla )-145(SVR4\325)37(\325\) )-145(fr)18(om )-145(U.H. )-145(Corp.)]TJ 1.633 -1.16 Td (\()Tj 0.333 -0.04 Td (UHC)Tj 2.319 0.04 Td (\))Tj 0.333 -0.04 Td [(,)-250(on)-250(an)-250(Intel 80386 pr)18(ocessor)74(.)]TJ -4.618 -1.6 Td [(2. )-633(4.3)]TJ 2.883 0.08 Td (+)Tj 0.606 -0.08 Td [(BSD )-32(at )-32(the )-32(Computer )-32(Systems )-32(Resear)18(ch )-32(Gr)18(oup, )-32(Computer )-32(Science )-32(Division,)]TJ -1.856 -1.2 Td [(University of California at Berkeley)111(,)-250(on)-250(a)-250(Hewlett Packar)]TJ 0.25 Tc 24.991 0 Td (dw)Tj 0 Tc 1.695 0 Td (orkstation.)Tj -28.319 -1.6 Td [(3. )-633(BSD/386)-273(\(a )-23(derivative )-23(of )-23(the )-23(BSD )-23(Net )-23(2 )-23(r)18(elease\) )-23(fr)18(om )-23(Berkeley )-23(Softwar)]TJ 0.2734 Tc 33.092 0 Td (eD)Tj 0 Tc 1.526 0 Td (esign,)Tj -32.985 -1.2 Td [(Inc., )-26(on )-26(an )-26(Intel )-26(80386 )-26(pr)19(ocessor)]TJ 0.5258 Tc 14.129 0 Td (.T)Tj 0 Tc 1.389 0 Td [(his )-26(system )-26(is )-26(almost )-26(identical )-26(to )-26(what )-26(we )-26(call)]TJ -15.518 -1.2 Td (4.3)Tj 1.25 0.08 Td (+)Tj 0.606 -0.08 Td (BSD.)Tj -3.489 -1.6 Td [(4. )-633(SunOS)-564(4.1.1 )-314(and )-314(4.1.2 )-314(\(systems )-314(with )-314(a )-314(str)18(ong )-314(Berkeley )-314(heritage )-314(but )-314(many)]TJ 1.633 -1.2 Td [(System V featur)18(es\) fr)18(om Sun Micr)18(osystems, on a SP)92(ARCstation SLC.)]TJ -3.433 -2.4 Td [(Numer)18(ous )-131(timing )-131(tests )-131(ar)]TJ 0.3811 Tc 11.674 0 Td (ep)Tj -0.018 Tc 1.461 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vided )-131(in )-131(the )-131(text )-131(and )-131(the )-131(systems )-131(used )-131(for )-131(the )-131(test )-131(ar)17(e)]TJ -14.058 -1.2 Td (identi\336ed.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46752 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 24 0 0 24 129.6 545.576 Tm [(Pr)4(ef)15(ace)]TJ /TT0 1 Tf 10 0 0 10 93.6 422.4 Tm [(Intr)20(oduction)]TJ /T1_1 1 Tf 3.6 -2.4 Td [(It\325s )-182(been )-182(almost )-182(eight )-182(years )-182(since )-182(I )-182(\336rst )-182(updated)]TJ /T1_2 1 Tf 22.939 0 Td [(Advanced )-182(Pr)18(ogramming )-182(in )-182(the )-182(UNIX)]TJ -22.939 -1.2 Td [(Envir)18(onment)]TJ /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 6.372 0 Td [(nd alr)18(eady so much has changed.)]TJ 0.883 Tc -4.572 -1.8 Td (\245B)Tj 0 Tc 2.1 0 Td (efor)Tj 0.556 Tc 1.735 0 Td (et)Tj 0 Tc 1.361 0 Td [(he )-306(second )-306(edition )-306(was )-306(published, )-306(The )-306(Open )-306(Gr)18(oup )-306(cr)18(eated )-306(a )-306(2004)]TJ -3.707 -1.2 Td [(edition )-33(of )-33(the )-33(Single )-33(UNIX )-33(Speci\336cation, )-33(folding )-33(in )-33(the )-33(changes )-33(fr)18(om )-33(two )-33(sets )-33(of)]TJ 0 -1.2 TD [(corrigenda. )-287(In)-288(2008, )-37(The )-37(Open )-37(Gr)18(oup )-37(cr)18(eated )-37(a )-37(new )-37(version )-37(of )-37(the )-37(Single )-37(UNIX)]TJ T* [(Speci\336cation, )-523(updating )-523(the )-523(base )-523(de\336nitions, )-523(adding )-523(new )-523(interfaces, )-523(and)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(moving )-207(obsolete )-207(ones. )-207(This )-207(was )-207(called )-207(the )-207(2008 )-207(version )-207(of )-207(POSIX.1, )-207(which)]TJ -0.856 -1.2 Td [(included )-33(version )-33(7 )-33(of )-33(the )-33(Base )-33(Speci\336cation )-33(and )-33(was )-33(published )-33(in )-33(2009.)-533(In )-33(2010,)]TJ T* [(this )-72(was )-72(bundled )-72(with )-72(an )-72(updated )-72(curses )-72(interface )-72(and )-72(r)18(eissued )-72(as )-72(version )-72(4 )-72(of)]TJ T* (the Single UNIX Speci\336cation.)Tj 0.883 Tc -1.489 -1.6 Td (\245V)Tj 0 Tc 2.1 0 Td [(ersions )-38(10.5, )-38(10.6, )-38(and )-38(10.8 )-38(of )-38(the )-38(Mac )-38(OS )-38(X )-38(operating )-38(system, )-38(r)3(unning )-38(on )-38(Intel)]TJ -0.611 -1.2 Td [(pr)18(ocessors, have been certi\336ed to be UNIX\250 systems by The Open Gr)18(oup.)]TJ 0.883 Tc -1.489 -1.6 Td (\245A)Tj 0 Tc 2.267 0 Td [(pple )-271(Computer )-271(discontinued )-271(development )-271(of )-271(Mac )-271(OS )-271(X )-271(for )-271(the )-271(PowerPC)]TJ -0.778 -1.2 Td [(platform. )-451(Fr)18(om )-201(Release )-201(10.6 )-201(\(Snow )-201(Leopar)16(d\) )-201(onwar)18(d, )-201(new )-201(operating )-201(system)]TJ 0 -1.2 Td (versions ar)Tj 0.25 Tc 4.833 0 Td (er)Tj 0 Tc 1.106 0 Td [(eleased for the x86 platform only)111(.)]TJ 0.883 Tc -7.428 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-12(Solaris )-12(operating )-12(system )-12(was )-12(r)17(eleased )-12(in )-12(open )-12(sour)18(ce )-12(form )-12(to )-12(try )-12(to )-12(compete)]TJ -0.613 -1.2 Td [(with )-66(the )-66(popularity )-66(of )-66(the )-66(open )-66(sour)18(ce )-66(model )-66(followed )-66(by )-66(Fr)18(eeBSD, )-66(Linux, )-66(and)]TJ T* [(Mac )-292(OS )-292(X.)-792(After )-292(Oracle )-292(Corporation )-292(bought )-292(Sun )-292(Micr)16(osystems )-292(in )-292(2010, )-292(it)]TJ T* [(discontinued )-114(the )-114(development )-114(of )-114(OpenSolaris.)-613(Instead, )-114(the )-114(Solaris )-114(community)]TJ T* [(formed )-285(the )-285(Illumos )-285(pr)18(oject )-285(to )-285(continue )-285(open )-285(sour)18(ce )-285(development )-285(based )-285(on)]TJ T* [(OpenSolaris. )-250(For)-250(mor)]TJ 0.25 Tc 9.723 0 Td (ei)Tj 0 Tc 1.02 0 Td (nformation, see)Tj /TT1 1 Tf 7.116 0 Td (http://www.illumos.org)Tj /T1_1 1 Tf (.)Tj /T1_3 1 Tf 9 0 0 9 507.6036 114 Tm (xxi)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46753 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 24 0 0 24 129.6 545.576 Tm (Contents)Tj /TT0 1 Tf 10 0 0 10 129.6 446.3998 Tm (Fore)Tj -0.02 Tc 2.152 0 Td [(wo)-20(rd )-40(t)]TJ 0.278 Tc 2.96 0 Td (ot)Tj 0 Tc 1.222 0 Td (he Second Edition)Tj 27.908 0 Td (xix)Tj -34.242 -2.47 Td (Preface )Tj 34.242 0 Td (xxi)Tj -34.242 -2.47 Td (Preface to the Second Edition)Tj 34.098 0 Td (xxv)Tj -34.098 -2.47 Td [(Preface to the Fir)15(st Edition)]TJ 34.098 0 Td (xxix)Tj -34.098 -2.47 Td [(Chapter )-278(1.)-2032(UNIX )-278(System )-278(Over)-10(vie)]TJ 16.53 Tc 17.922 0 Td (w1)Tj /TT1 1 Tf 0 Tc -15.402 -1.82 Td [(1.1 )-3012(Introduction)-2160(1)]TJ 0 -1.3 TD [(1.2 )-3012(UNIX)-556(Architecture )-1882(1)]TJ T* [(1.3 )-3012(Logging)-556(In )-1882(2)]TJ T* [(1.4 )-3012(Files)-556(and )-278(Director)-15(ies )-1882(4)]TJ -0 -1.3 Td [(1.5 )-3012(Input)-556(and )-278(Output)-2160(8)]TJ 0 -1.3 Td [(1.6 )-3012(Prog)]TJ -0.01 Tc 6.782 0 Td (ra)Tj 0 Tc 0.879 0 Td [(ms )-278(and )-278(Processes)-2160(10)]TJ -7.661 -1.3 Td [(1.7 )-3012(Error)-556(Handling )-1882(14)]TJ T* [(1.8 )-3012(User)-556(Identi\336cation )-1882(16)]TJ T* [(1.9 )-3012(Signals)-2160(18)]TJ T* [(1.10 )-2456(Time)]TJ -0.07 Tc 7.458 0 Td (Va)Tj 0 Tc 1.153 0 Td [(lues )-1882(20)]TJ -8.611 -1.3 Td [(1.11 )-2456(System)-556(Calls )-278(and )-278(Libr)10(ar )248(y)-556(Functions )-1882(21)]TJ -0 -1.3 Td [(1.12 )-2456(Summar)]TJ 2.16 Tc 8.488 0 Td (y2)Tj 0 Tc 3.216 0 Td (3)Tj /TT0 1 Tf -14.224 -2.47 Td [(Chapter )-278(2.)-2032(UNIX )-278(Standar)20(dization )-278(and )-278(Implementations)]TJ 34.674 0 Td (25)Tj /TT1 1 Tf -32.154 -1.82 Td [(2.1 )-3012(Introduction)-2160(25)]TJ /T1_1 1 Tf 9 0 0 9 512.1025 112.9998 Tm (ix)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46754 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (2)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(UNIX )-280(Standar)6(diza )275(tion)-560(and)]TJ 0 -1.667 TD [(Implementa )275(tions)]TJ /TT0 1 Tf 12 0 0 12 93.6 422.3998 Tm [(2.1 )-1332(Intr)20(oduction)]TJ /T1_2 1 Tf 10 0 0 10 129.6 398.3998 Tm [(Much )-76(work )-76(has )-76(gone )-76(into )-76(standar)18(dizing )-76(the )-76(UNIX )-76(pr)18(ogramming )-76(envir)18(onment )-76(and )-76(the)]TJ 0.5132 Tc 0 -1.2 TD (Cp)Tj -0.018 Tc 1.823 0 Td (ro)Tj 0 Tc 0.923 0 Td [(gramming )-263(language.)-763(Although )-263(applications )-263(have )-263(always )-263(been )-263(quite )-263(portable)]TJ -2.746 -1.2 Td [(acr)18(oss )-5(dif)18(fer)18(ent )-5(versions )-5(of )-5(the )-5(UNIX )-5(operating )-5(system, )-5(the )-5(pr)18(oliferation )-5(of )-5(versions )-5(and)]TJ T* [(dif)18(fer)18(ences )-68(during )-68(the )-68(1980s )-68(led )-68(many )-68(lar)18(ge )-68(users, )-68(such )-68(as )-68(the )-68(U.S. )-68(government, )-68(to )-68(call)]TJ T* [(for standar)18(dization.)]TJ 1.8 -1.2 Td [(In )-139(this )-139(chapter )-139(we )-139(\336rst )-139(look )-139(at )-139(the )-139(various )-139(standar)20(dization )-139(ef)18(forts )-139(that )-139(have )-139(been)]TJ -1.8 -1.2 Td [(under )-102(way )-102(over )-102(the )-102(past )-102(two )-102(and )-102(a )-102(half )-102(decades.)]TJ -0.092 Tc 22.955 0 Td [(We )-286(t)]TJ 0 Tc 2.065 0 Td [(hen )-102(discuss )-102(the )-102(ef)18(fects )-102(of )-102(these)]TJ -25.02 -1.2 Td [(UNIX )-351(pr)18(ogramming )-351(standar)19(ds )-350(on )-350(the )-350(operating )-350(system )-350(implementations )-350(that )-350(ar)15(e)]TJ T* [(described )-261(in )-261(this )-261(book.)-763(An )-261(important )-261(part )-261(of )-261(all )-261(the )-261(standar)18(dization )-261(ef)18(forts )-261(is )-261(the)]TJ T* [(speci\336cation )-10(of )-10(various )-10(limits )-10(that )-10(each )-10(implementation )-10(must )-10(de\336ne, )-10(so )-10(we )-10(look )-10(at )-10(these)]TJ T* (limits and the various ways to determine their values.)Tj /TT0 1 Tf 12 0 0 12 93.6 242.3998 Tm [(2.2 )-1332(UNIX)-556(Standar)20(dization)]TJ 3 -3 Td [(2.2.1 )-556(ISO)-556(C)]TJ /T1_2 1 Tf 10 0 0 10 129.6 182.3998 Tm [(In )-397(late )-397(1989, )-397(ANSI )-397(Standar)]TJ 0.647 Tc 13.245 0 Td (dX)Tj 0 Tc 1.925 0 Td (3.159)Tj 2.25 0.09 Td (-)Tj 0.333 -0.09 Td [(1989 )-397(for )-397(the )-397(C )-397(pr)18(ogramming )-397(language )-397(was)]TJ -17.753 -1.2 Td [(appr)18(oved. )-731(This)-732(standar)]TJ 0.7314 Tc 11.473 0 Td (dw)Tj 0 Tc 2.176 0 Td [(as )-481(also )-481(adopted )-481(as )-481(International )-481(Standar)]TJ 0.7313 Tc 20.097 0 Td (dI)Tj 0 Tc 1.679 0 Td (SO/IEC)Tj -35.426 -1.2 Td [(9899:1990. )-328(ANSI)-328(is )-78(the )-78(American )-78(National )-78(Standar)18(ds )-78(Institute, )-78(the )-78(U.S. )-78(member )-78(in )-78(the)]TJ T* [(International )-122(Or)18(ganization )-122(for )-122(Standar)18(dization)]TJ 21.404 0.04 Td (\()Tj 0.333 -0.04 Td (ISO)Tj 1.648 0.04 Td (\))Tj 0.622 Tc 0.333 -0.04 Td (.I)Tj 0 Tc 1.209 0 Td [(EC )-122(stands )-122(for )-122(the )-122(International)]TJ -24.927 -1.2 Td [(Electr)18(otechnical Commission.)]TJ /T1_3 1 Tf 9 0 0 9 510.5997 113.9998 Tm (25)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46755 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (x)Tj /T1_1 1 Tf 2.5 0 Td (Contents)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 154.7907 667.9599 Tm [(2.2 )-3012(UNIX)-556(Standardization )-1882(25)]TJ 0 -1.3 TD [(2.2.1 )-3978(ISO)]TJ 2.16 Tc 8.759 0 Td (C2)Tj 0 Tc 3.438 0 Td (5)Tj -12.197 -1.3 Td [(2.2.2 )-3978(IEEE)-556(POSIX )-1882(26)]TJ T* [(2.2.3 )-3978(The)-556(Single )-278(UNIX )-278(Speci\336cation)-2160(30)]TJ -0 -1.3 Td [(2.2.4 )-3978(FIPS)-2160(32)]TJ T* [(2.3 )-3012(UNIX)-556(System )-278(Implementations)-2160(33)]TJ T* [(2.3.1 )-3978(UNIX)-556(System )-278(V )-278(Release )-278(4)-2160(33)]TJ T* [(2.3.2 )-3978(4.4BSD)-2160(34)]TJ T* [(2.3.3 )-3978(F)45(reeBSD )-1882(34)]TJ T* [(2.3.4 )-3978(Lin)10(ux )-1882(35)]TJ T* [(2.3.5 )-3978(Mac)-556(OS )-278(X)-2160(35)]TJ 0 -1.3 Td [(2.3.6 )-3978(Solar)-15(is )-1882(35)]TJ T* [(2.3.7 )-3978(Other)-556(UNIX )-278(Systems)-2160(35)]TJ -0 -1.3 Td [(2.4 )-3012(Relationship)-556(of )-278(Standards )-278(and )-278(Implementations)-2160(36)]TJ T* [(2.5 )-3012(Limits)-2160(36)]TJ T* [(2.5.1 )-3978(ISO)]TJ 0.556 Tc 8.759 0 Td (CL)Tj 0 Tc 1.834 0 Td [(imits )-1882(37)]TJ -10.593 -1.3 Td [(2.5.2 )-3978(POSIX)-556(Limits )-1882(38)]TJ T* [(2.5.3 )-3978(XSI)-556(Limits )-1882(41)]TJ T* (2.5.4)Tj /TT1 1 Tf 6.48 0 Td (sysconf)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 5.034 0 Td (pathconf)Tj /TT0 1 Tf 0.556 Tc (,a)Tj 0 Tc 6.19 0 Td (nd)Tj /TT1 1 Tf 1.668 0 Td (fpathconf)Tj /TT0 1 Tf -11.092 -1.3 Td [(Functions )-1882(42)]TJ -8.28 -1.3 Td [(2.5.5 )-3978(Indeter)-25(minate )-278(Runtime )-278(Limits)-2160(49)]TJ 0 -1.3 Td [(2.6 )-3012(Options)-2160(53)]TJ T* [(2.7 )-3012(F)30(eature )-278(T)120(est )-278(Macros)-2160(57)]TJ 0 -1.3 Td [(2.8 )-3012(Pr)-15(imitiv)]TJ 0.556 Tc 7.947 0 Td (eS)Tj 0 Tc 1.779 0 Td [(ystem )-278(Data )-278(T)120(ypes )-1882(58)]TJ -9.726 -1.3 Td [(2.9 )-3012(Diff)30(erences )-278(Betw)10(een )-278(Standards)-2160(58)]TJ T* [(2.10 )-2456(Summar)]TJ 2.16 Tc 8.488 0 Td (y6)Tj 0 Tc 3.216 0 Td (0)Tj /TT2 1 Tf -14.224 -2.47 Td [(Chapter )-278(3.)-2032(File )-278(I/O)]TJ 34.674 0 Td (61)Tj /TT0 1 Tf -32.154 -1.82 Td [(3.1 )-3012(Introduction)-2160(61)]TJ T* [(3.2 )-3012(File)-556(Descr )263(iptors)-2160(61)]TJ 0 -1.3 Td (3.3)Tj /TT1 1 Tf 4.68 0 Td (open)Tj /TT0 1 Tf 2.956 0 Td (and)Tj /TT1 1 Tf 2.224 0 Td (openat)Tj /TT0 1 Tf 4.156 0 Td [(Functions )-1882(62)]TJ -14.016 -1.3 Td (3.4)Tj /TT1 1 Tf 4.68 0 Td (creat)Tj /TT0 1 Tf 3.556 0 Td [(Function )-1882(66)]TJ -8.236 -1.3 Td (3.5)Tj /TT1 1 Tf 4.68 0 Td (close)Tj /TT0 1 Tf 3.556 0 Td [(Function )-1882(66)]TJ -8.236 -1.3 Td (3.6)Tj /TT1 1 Tf 4.68 0 Td (lseek)Tj /TT0 1 Tf 3.556 0 Td [(Function )-1882(66)]TJ -8.236 -1.3 Td (3.7)Tj /TT1 1 Tf 4.68 0 Td (read)Tj /TT0 1 Tf 2.956 0 Td [(Function )-1882(71)]TJ -7.636 -1.3 Td (3.8)Tj /TT1 1 Tf 4.68 0 Td (write)Tj /TT0 1 Tf 3.556 0 Td [(Function )-1882(72)]TJ -8.236 -1.3 Td [(3.9 )-3012(I/O)-556(Ef\336ciency )-1882(72)]TJ T* [(3.10 )-2456(File)-556(Shar )263(ing)-2160(74)]TJ 0 -1.3 Td [(3.11 )-2456(Atomic)-556(Oper)10(ations )-1882(77)]TJ T* (3.12)Tj /TT1 1 Tf 4.68 0 Td (dup)Tj /TT0 1 Tf 2.356 0 Td (and)Tj /TT1 1 Tf 2.224 0 Td (dup2)Tj /TT0 1 Tf 2.956 0 Td [(Functions )-1882(79)]TJ -12.216 -1.3 Td (3.13)Tj /TT1 1 Tf 4.68 0 Td (sync)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 3.234 0 Td (fsync)Tj /TT0 1 Tf 0.556 Tc (,a)Tj 0 Tc 4.39 0 Td (nd)Tj /TT1 1 Tf 1.668 0 Td (fdatasync)Tj /TT0 1 Tf 5.956 0 Td [(Functions )-1882(81)]TJ -19.928 -1.3 Td (3.14)Tj /TT1 1 Tf 4.68 0 Td (fcntl)Tj /TT0 1 Tf 3.556 0 Td [(Function )-1882(82)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46756 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (82)Tj /T1_1 1 Tf 3 0 Td [(File )-250(I/O)]TJ 39.741 0 Td [(Chapter )-250(3)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm (3.14)Tj /TT1 1 Tf 3 0 Td (fcntl)Tj /TT0 1 Tf 3.556 0 Td (Function)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm (The)Tj /TT2 1 Tf 1.924 0 Td (fcntl)Tj /T1_1 1 Tf 3.25 0 Td [(function can change the pr)18(operties of a \336le that is alr)18(eady open.)]TJ /TT2 1 Tf 8.9995 0 0 8.9995 147.5911 622.2627 Tm (#include )Tj 0 -2.021 TD (int fcntl\(int)Tj /T1_2 1 Tf 8.4 0 Td (fd)Tj /TT2 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (cmd)Tj /TT2 1 Tf 0.6 Tc (,.)Tj 0 Tc 3.485 0 Td (.. /* int)Tj /T1_2 1 Tf 6 0 Td [(ar)18(g)]TJ /TT2 1 Tf 1.915 0 Td (*/ \);)Tj /T1_1 1 Tf -10.745 -2.021 Td (Returns: depends on)Tj /T1_2 1 Tf 9.392 0 Td (cmd)Tj /T1_1 1 Tf 1.935 0 Td (if OK \(see following\),)Tj /TT3 1 Tf 9.704 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5814.25 cm 0 0 m 0 499 l 3900 499 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 561.8526 Tm [(In )-72(the )-72(examples )-72(in )-72(this )-72(section, )-72(the )-72(thir)]TJ 0.3218 Tc 17.532 0 Td (da)Tj -0.018 Tc 1.433 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument )-72(is )-72(always )-72(an )-72(integer)]TJ 0.3218 Tc 12.096 0 Td (,c)Tj 0 Tc 1.016 0 Td [(orr)18(esponding)]TJ -33.01 -1.2 Td [(to )-18(the )-18(comment )-18(in )-18(the )-18(function )-18(pr)18(ototype )-18(just )-18(shown.)-520(When )-18(we )-18(describe )-18(r)18(ecor)]TJ 0.2681 Tc 34.855 0 Td (dl)Tj 0 Tc 1.17 0 Td (ocking)Tj -36.025 -1.2 Td (in Section 14.3, however)Tj 0.25 Tc 10.622 0 Td (,t)Tj 0 Tc 0.826 0 Td (he thir)Tj 0.25 Tc 2.887 0 Td (da)Tj -0.018 Tc 1.361 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument becomes a pointer to a str)8(uctur)18(e.)]TJ -14.829 -1.2 Td (The)Tj /TT2 1 Tf 1.924 0 Td (fcntl)Tj /T1_1 1 Tf 3.25 0 Td [(function is used for \336ve dif)18(fer)18(ent purposes.)]TJ -5.174 -2.04 Td [(1. )-633(Duplicate)-250(an existing descriptor \()]TJ /T1_2 1 Tf (cmd)Tj /T1_1 1 Tf 18.269 0 Td (=)Tj /TT2 1 Tf 0.856 0 Td (F_DUPFD)Tj /T1_1 1 Tf 4.45 0 Td (or)Tj /TT2 1 Tf 1.191 0 Td (F_DUPFD_CLOEXEC)Tj /T1_1 1 Tf (\))Tj -24.766 -1.6 Td [(2. )-633(Get/set)-250(\336le descriptor \337ags \()]TJ /T1_2 1 Tf (cmd)Tj /T1_1 1 Tf 16.279 0 Td (=)Tj /TT2 1 Tf 0.856 0 Td (F_GETFD)Tj /T1_1 1 Tf 4.45 0 Td (or)Tj /TT2 1 Tf 1.191 0 Td (F_SETFD)Tj /T1_1 1 Tf (\))Tj -22.776 -1.6 Td [(3. )-633(Get/set)-250(\336le status \337ags \()]TJ /T1_2 1 Tf (cmd)Tj /T1_1 1 Tf 14.37 0 Td (=)Tj /TT2 1 Tf 0.856 0 Td (F_GETFL)Tj /T1_1 1 Tf 4.45 0 Td (or)Tj /TT2 1 Tf 1.191 0 Td (F_SETFL)Tj /T1_1 1 Tf (\))Tj -20.867 -1.6 Td [(4. )-633(Get/set)-250(asynchr)18(onous I/O ownership \()]TJ /T1_2 1 Tf (cmd)Tj /T1_1 1 Tf 20.933 0 Td (=)Tj /TT2 1 Tf 0.856 0 Td (F_GETOWN)Tj /T1_1 1 Tf 5.05 0 Td (or)Tj /TT2 1 Tf 1.191 0 Td (F_SETOWN)Tj /T1_1 1 Tf (\))Tj -28.03 -1.6 Td [(5. )-633(Get/set)]TJ -0.018 Tc 5.286 0 Td (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.25 Tc 1.367 0 Td (dl)Tj 0 Tc 1.152 0 Td (ocks \()Tj /T1_2 1 Tf (cmd)Tj /T1_1 1 Tf 4.488 0 Td (=)Tj /TT2 1 Tf 0.856 0 Td (F_GETLK)Tj /T1_1 1 Tf (,)Tj /TT2 1 Tf 4.7 0 Td (F_SETLK)Tj /T1_1 1 Tf 0.25 Tc (,o)Tj 0 Tc 5.246 0 Td (r)Tj /TT2 1 Tf 0.645 0 Td (F_SETLKW)Tj /T1_1 1 Tf (\))Tj -0.092 Tc -26.396 -2.4 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-117(now )-117(describe )-117(the )-117(\336rst )-117(8 )-117(of )-117(these )-117(1)53(1)]TJ /T1_2 1 Tf 17.555 0 Td (cmd)Tj /T1_1 1 Tf 2.052 0 Td [(values. )-367(\(W)92(e\325ll )-117(wait )-117(until )-117(Section )-117(14.3 )-117(to)]TJ -20.994 -1.2 Td [(describe )-27(the )-27(last )-27(3, )-27(which )-27(deal )-27(with )-27(r)15(ecor)]TJ 0.2773 Tc 18.166 0 Td (dl)Tj 0 Tc 1.179 0 Td [(ocking.\) )-277(Refer)-278(to )-27(Figur)]TJ 0.2773 Tc 10.249 0 Td (e3)Tj 0 Tc 1.256 0 Td [(.7, )-27(as )-27(we\325ll )-27(discuss)]TJ -30.85 -1.2 Td [(both )-170(the )-170(\336le )-170(descriptor )-170(\337ags )-170(associated )-170(with )-170(each )-170(\336le )-170(descriptor )-170(in )-170(the )-170(pr)18(ocess )-170(table)]TJ 0 -1.2 TD [(entry and the \336le status \337ags associated with each \336le table en\ try)111(.)]TJ /TT2 1 Tf 0 -2.4 TD (F_DUPFD)Tj /T1_1 1 Tf 10.2 0 Td [(Duplicate )-391(the )-391(\336le )-391(descriptor)]TJ /T1_2 1 Tf 14.147 0 Td (fd)Tj /T1_1 1 Tf 0.8909 Tc (.T)Tj 0 Tc 2.532 0 Td [(he )-391(new )-391(\336le )-391(descriptor )-391(is)]TJ -0.018 Tc -16.678 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turned )-66(as )-66(the )-66(value )-66(of )-66(the )-66(function.)-566(It )-66(is )-66(the )-66(lowest-number)17(ed)]TJ -0.856 -1.2 Td [(descriptor )-153(that )-153(is )-153(not )-153(alr)20(eady )-152(open, )-152(and )-152(that )-152(is )-152(gr)18(eater )-152(than )-152(or)]TJ 0 -1.2 TD [(equal )-282(to )-282(the )-282(thir)]TJ 0.5323 Tc 7.865 0 Td (da)Tj -0.018 Tc 1.643 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument )-282(\(taken )-282(as )-282(an )-282(integer\).)-782(The )-282(new)]TJ -10.441 -1.2 Td [(descriptor )-371(shar)18(es )-371(the )-371(same )-371(\336le )-371(table )-371(entry )-371(as)]TJ /T1_2 1 Tf 22.722 0 Td (fd)Tj /T1_1 1 Tf 0.8706 Tc (.\()Tj 0 Tc 2.232 0 Td [(Refer )-371(to)]TJ -24.953 -1.2 Td (Figur)Tj 0.5935 Tc 2.383 0 Td (e3)Tj 0 Tc 1.572 0 Td [(.9.\) )-593(But)-594(the )-344(new )-344(descriptor )-344(has )-344(its )-344(own )-344(set )-344(of )-344(\336le)]TJ -3.956 -1.2 Td [(descriptor )-369(\337ags, )-369(and )-369(its)]TJ /TT2 1 Tf 12.059 0 Td (FD_CLOEXEC)Tj /T1_1 1 Tf 6.619 0 Td [(\336le )-369(descriptor )-369(\337ag )-369(is)]TJ -18.678 -1.2 Td [(clear)18(ed. )-423(\(This)-422(means )-173(that )-173(the )-173(descriptor )-173(is )-173(left )-173(open )-173(acr)18(oss )-173(an)]TJ /TT2 1 Tf T* (exec)Tj /T1_1 1 Tf 0.25 Tc (,w)Tj 0 Tc 3.734 0 Td (hich we discuss in Chapter 8.\))Tj /TT2 1 Tf -13.934 -1.72 Td (F_DUPFD_CLOEXEC)Tj /T1_1 1 Tf 10.2 0 Td [(Duplicate )-442(the )-442(\336le )-442(descriptor )-442(and )-442(set )-442(the)]TJ /TT2 1 Tf 20.733 0 Td (FD_CLOEXEC)Tj /T1_1 1 Tf 6.692 0 Td (\336le)Tj -27.425 -1.2 Td [(descriptor )-120(\337ag )-120(associated )-120(with )-120(the )-120(new )-120(descriptor)]TJ 0.6203 Tc 22.695 0 Td (.R)Tj 0 Tc 1.538 0 Td [(eturns )-120(the)]TJ -24.233 -1.2 Td [(new \336le descriptor)74(.)]TJ /TT2 1 Tf -10.2 -1.72 Td (F_GETFD)Tj /T1_1 1 Tf 10.2 0 Td [(Return )-30(the )-30(\336le )-30(descriptor )-30(\337ags )-30(for)]TJ /T1_2 1 Tf 15.37 0 Td (fd)Tj /T1_1 1 Tf 1.058 0 Td [(as )-30(the )-30(value )-30(of )-30(the )-30(function.)]TJ -16.428 -1.2 Td [(Curr)18(ently)]TJ 0.9363 Tc 4.207 0 Td (,o)Tj 0 Tc 1.732 0 Td [(nly )-686(one )-686(\336le )-686(descriptor )-686(\337ag )-686(is )-686(de\336ned: )-686(the)]TJ /TT2 1 Tf -5.939 -1.2 Td (FD_CLOEXEC)Tj /T1_1 1 Tf 6.25 0 Td (\337ag.)Tj /TT2 1 Tf -16.45 -1.72 Td (F_SETFD)Tj /T1_1 1 Tf 10.2 0 Td [(Set )-42(the )-42(\336le )-42(descriptor )-42(\337ags )-42(for)]TJ /T1_2 1 Tf 13.721 0 Td (fd)Tj /T1_1 1 Tf 0.5425 Tc (.T)Tj 0 Tc 2.184 0 Td [(he )-42(new )-42(\337ag )-42(value )-42(is )-42(set )-42(fr)16(om)]TJ -15.905 -1.2 Td (the thir)Tj 0.25 Tc 3.213 0 Td (da)Tj -0.018 Tc 1.361 0 Td (rg)Tj 0 Tc 0.933 0 Td (ument \(taken as an integer\).)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46757 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(3.13)]TJ /TT0 1 Tf 24.986 0 Td (sync)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.15 0 Td (fsync)Tj /T1_0 1 Tf 0.5 Tc (,a)Tj 0 Tc 4.25 0 Td (nd)Tj /TT0 1 Tf 1.693 0 Td (fdatasync)Tj /T1_0 1 Tf 5.9 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (81)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (1.)Tj /TT0 1 Tf 1.633 0 Td (dup2)Tj /T1_0 1 Tf 2.728 0 Td [(is )-78(an )-78(atomic )-78(operation, )-78(wher)17(eas )-78(the )-78(alternate )-78(form )-78(involves )-78(two )-78(function)]TJ -2.728 -1.2 Td [(calls. )-311(It)-310(is )-61(possible )-61(in )-61(the )-61(latter )-61(case )-61(to )-61(have )-61(a )-61(signal )-61(catcher )-61(called )-61(between )-61(the)]TJ /TT0 1 Tf 0 -1.2 TD (close)Tj /T1_0 1 Tf 3.495 0 Td [(and )-245(the)]TJ /TT0 1 Tf 4.07 0 Td (fcntl)Tj /T1_0 1 Tf 3.495 0 Td [(that )-245(could )-245(modify )-245(the )-245(\336le )-245(descriptors.)-744(\(W)]TJ 0.495 Tc 19.857 0 Td (ed)Tj 0 Tc 1.585 0 Td (escribe)Tj -32.502 -1.2 Td [(signals )-233(in )-233(Chapter )-233(10.\))-733(The )-233(same )-233(pr)20(oblem )-233(could )-233(occur )-233(if )-233(a )-233(dif)20(fer)18(ent )-233(thr)18(ead)]TJ -0 -1.2 Td [(changes the \336le descriptors.)-500(\(W)]TJ 0.25 Tc 14.006 0 Td (ed)Tj 0 Tc 1.34 0 Td [(escribe thr)18(eads in Chapter 1)55(1.\))]TJ -16.979 -2.08 Td [(2. )-633(Ther)]TJ 0.25 Tc 3.684 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(s)]TJ 0 Tc 1.53 0 Td (ome)Tj /TT0 1 Tf 2.158 0 Td (errno)Tj /T1_0 1 Tf 3.25 0 Td [(dif)18(fer)18(ences between)]TJ /TT0 1 Tf 9.046 0 Td (dup2)Tj /T1_0 1 Tf 2.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (fcntl)Tj /T1_0 1 Tf (.)Tj 7.9995 0 0 7.9995 183.5884 580.1652 Tm (The)Tj /TT0 1 Tf 1.93 0 Td (dup2)Tj /T1_0 1 Tf 2.656 0 Td [(system )-6(call )-6(originated )-6(with )-6(V)111(ersion )-6(7 )-6(and )-6(pr)18(opagated )-6(thr)18(ough )-6(the )-6(BSD )-6(r)18(eleases. )-256(The)]TJ /TT0 1 Tf -4.586 -1.25 Td (fcntl)Tj /T1_0 1 Tf 3.36 0 Td [(method )-110(for )-110(duplicating )-110(\336le )-110(descriptors )-110(appear)18(ed )-110(with )-110(System )-110(III )-110(and )-110(continued )-110(with)]TJ -3.36 -1.25 Td [(System )-3(V)]TJ 0.5029 Tc 4.039 0 Td (.S)Tj 0 Tc 1.278 0 Td [(VR3.2 )-3(picked )-3(up )-3(the)]TJ /TT0 1 Tf 9.225 0 Td (dup2)Tj /T1_0 1 Tf 2.653 0 Td [(function, )-3(and )-3(4.2BSD )-3(picked )-3(up )-3(the)]TJ /TT0 1 Tf 15.9 0 Td (fcntl)Tj /T1_0 1 Tf 3.253 0 Td [(function )-3(and)]TJ -36.347 -1.25 Td (the)Tj /TT0 1 Tf 1.637 0 Td (F_DUPFD)Tj /T1_0 1 Tf 4.45 0 Td (functionality)Tj 0.5 Tc 5.56 0 Td (.P)Tj 0 Tc 1.354 0 Td [(OSIX.1 r)18(equir)18(es both)]TJ /TT0 1 Tf 9.412 0 Td (dup2)Tj /T1_0 1 Tf 2.65 0 Td (and the)Tj /TT0 1 Tf 3.58 0 Td (F_DUPFD)Tj /T1_0 1 Tf 4.45 0 Td (featur)Tj 0.25 Tc 2.618 0 Td (eo)Tj 0 Tc 1.275 0 Td (f)Tj /TT0 1 Tf 0.583 0 Td (fcntl)Tj /T1_0 1 Tf (.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5942 514.1691 Tm (3.13)Tj /TT2 1 Tf 3 0 Td (sync)Tj /TT1 1 Tf (,)Tj /TT2 1 Tf 3.234 0 Td (fsync)Tj /TT1 1 Tf 0.556 Tc (,a)Tj 0 Tc 4.39 0 Td (nd)Tj /TT2 1 Tf 1.778 0 Td (fdatasync)Tj /TT1 1 Tf 5.956 0 Td (Functions)Tj /T1_0 1 Tf -0.09 Tc 9.9994 0 0 9.9994 129.5917 494.9703 Tm (Tr)Tj 0 Tc 0.918 0 Td [(aditional )-91(implementations )-91(of )-91(the )-91(UNIX )-91(System )-91(have )-91(a )-91(buf)16(fer )-91(cache )-91(or )-91(page )-91(cache )-91(in)]TJ -0.918 -1.2 Td [(the )-53(kernel )-53(thr)18(ough )-53(which )-53(most )-53(disk )-53(I/O )-53(passes.)-553(When )-53(we )-53(write )-53(data )-53(to )-53(a )-53(\336le, )-53(the )-53(data)]TJ T* [(is )-12(normally )-12(copied )-12(by )-12(the )-12(kernel )-12(into )-12(one )-12(of )-12(its )-12(buf)14(fers )-12(and )-12(queued )-12(for )-12(writing )-12(to )-12(disk )-12(at)]TJ T* [(some )-142(later )-142(time.)-643(This )-142(is )-142(called)]TJ /T1_2 1 Tf 14.397 0 Td [(delayed )-142(write)]TJ /T1_0 1 Tf 0.6423 Tc (.\()Tj 0 Tc 6.729 0 Td [(Chapter )-142(3 )-142(of )-142(Bach)]TJ 8.677 0.04 Td ([)Tj 0.333 -0.04 Td (1986)Tj 2 0.04 Td (])Tj 0.725 -0.04 Td [(discusses )-142(this)]TJ -32.861 -1.2 Td [(buf)18(fer cache in detail.\))]TJ 1.8 -1.2 Td [(The )-59(kernel )-59(eventually )-59(writes )-59(all )-59(the )-59(delayed-write )-59(blocks )-59(to )-59(disk, )-59(normally )-59(when )-59(it)]TJ -1.8 -1.2 Td [(needs )-128(to )-128(r)18(euse )-128(the )-128(buf)18(fer )-128(for )-128(some )-128(other )-128(disk )-128(block.)]TJ -0.092 Tc 24.36 0 Td [(To )-312(e)]TJ 0 Tc 1.924 0 Td (nsur)Tj 0.378 Tc 1.986 0 Td (ec)Tj 0 Tc 1.301 0 Td [(onsistency )-128(of )-128(the )-128(\336le)]TJ -29.571 -1.2 Td [(system )-18(on )-18(disk )-18(with )-18(the )-18(contents )-18(of )-18(the )-18(buf)18(fer )-18(cache, )-18(the)]TJ /TT0 1 Tf 25.204 0 Td (sync)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 2.918 0 Td (fsync)Tj /T1_0 1 Tf 0.2675 Tc (,a)Tj 0 Tc 4.018 0 Td (nd)Tj /TT0 1 Tf 1.461 0 Td (fdatasync)Tj /T1_0 1 Tf -33.6 -1.2 Td (functions ar)Tj 0.25 Tc 5.258 0 Td (ep)Tj -0.018 Tc 1.33 0 Td (ro)Tj 0 Tc 0.923 0 Td (vided.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 376.2774 Tm (#include )Tj 0 -1.783 TD (int fsync\(int)Tj /T1_2 1 Tf 8.4 0 Td (fd)Tj /TT0 1 Tf (\);)Tj -8.4 -1.783 Td (int fdatasync\(int)Tj /T1_2 1 Tf 10.8 0 Td (fd)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 16.051 -1.783 Td (Returns: 0 if OK,)Tj /TT3 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -34.464 -1.783 Td (void sync\(void\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3076.25 cm 0 0 m 0 777 l 3900 777 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 288.0654 Tm (The)Tj /TT0 1 Tf 1.932 0 Td (sync)Tj /T1_0 1 Tf 2.658 0 Td [(function )-8(simply )-8(queues )-8(all )-8(the )-8(modi\336ed )-8(block )-8(buf)18(fers )-8(for )-8(writing )-8(and )-8(r)13(eturns;)]TJ -4.591 -1.2 Td (it does not wait for the disk writes to take place.)Tj 1.8 -1.2 Td [(The )-16(function)]TJ /TT0 1 Tf 5.913 0 Td (sync)Tj /T1_0 1 Tf 2.666 0 Td [(is )-16(normally )-16(called )-16(periodically )-16(\(usually )-16(every )-16(30 )-16(seconds\) )-16(fr)18(om )-16(a)]TJ -10.379 -1.2 Td [(system )-88(daemon, )-88(often )-88(called)]TJ /TT0 1 Tf 13.179 0 Td (update)Tj /T1_0 1 Tf 0.5885 Tc (.T)Tj 0 Tc 5.051 0 Td [(his )-88(guarantees )-88(r)17(egular )-89(\337ushing )-89(of )-89(the )-89(kernel\325s)]TJ -18.23 -1.2 Td [(block buf)18(fers. )-250(The)-250(command)]TJ /TT0 1 Tf 13.115 0 Td (sync)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (also calls the)Tj /TT0 1 Tf 5.848 0 Td (sync)Tj /T1_0 1 Tf 2.65 0 Td (function.)Tj -23.629 -1.2 Td [(The )-135(function)]TJ /TT0 1 Tf 6.151 0 Td (fsync)Tj /T1_0 1 Tf -0.018 Tc 3.385 0 Td (re)Tj 0 Tc 0.856 0 Td [(fers )-135(only )-135(to )-135(a )-135(single )-135(\336le, )-135(speci\336ed )-135(by )-135(the )-135(\336le )-135(descriptor)]TJ /T1_2 1 Tf 25.779 0 Td (fd)Tj /T1_0 1 Tf (,)Tj -37.972 -1.2 Td [(and )-60(waits )-60(for )-60(the )-60(disk )-60(writes )-60(to )-60(complete )-60(befor)]TJ 0.3097 Tc 21.046 0 Td (er)Tj 0 Tc 1.166 0 Td [(eturning. )-310(This)-309(function )-60(is )-60(used )-60(when)]TJ -22.211 -1.2 Td [(an )-52(application, )-52(such )-52(as )-52(a )-52(database, )-52(needs )-52(to )-52(be )-52(sur)]TJ 0.3022 Tc 22.528 0 Td (et)Tj 0 Tc 1.107 0 Td [(hat )-52(the )-52(modi\336ed )-52(blocks )-52(have )-52(been)]TJ -23.635 -1.2 Td (written to the disk.)Tj 1.8 -1.2 Td (The)Tj /TT0 1 Tf 1.938 0 Td (fdatasync)Tj /T1_0 1 Tf 5.664 0 Td [(function )-14(is )-14(similar )-14(to)]TJ /TT0 1 Tf 9.425 0 Td (fsync)Tj /T1_0 1 Tf 0.2641 Tc (,b)Tj 0 Tc 4.067 0 Td [(ut )-14(it )-14(af)18(fects )-14(only )-14(the )-14(data )-14(portions )-14(of)]TJ 0.25 Tc -22.895 -1.2 Td (a\336)Tj 0 Tc 1.355 0 Td [(le. )-250(W)55(ith)]TJ /TT0 1 Tf 3.914 0 Td (fsync)Tj /T1_0 1 Tf 0.25 Tc (,t)Tj 0 Tc 3.826 0 Td (he \336le\325s attributes ar)Tj 0.25 Tc 8.988 0 Td (ea)Tj 0 Tc 1.229 0 Td [(lso updated synchr)18(onously)111(.)]TJ 7.999 0 0 7.999 183.5782 148.0822 Tm [(All )-37(four )-37(of )-37(the )-37(platforms )-37(described )-37(in )-37(this )-37(book )-37(support)]TJ /TT0 1 Tf 25.152 0 Td (sync)Tj /T1_0 1 Tf 2.687 0 Td (and)Tj /TT0 1 Tf 1.98 0 Td (fsync)Tj /T1_0 1 Tf 0.537 Tc (.H)Tj 0 Tc 4.619 0 Td (owever)Tj 0.287 Tc 3.224 0 Td (,F)Tj -0.018 Tc 1.093 0 Td (re)Tj 0 Tc 0.856 0 Td (eBSD)Tj -39.611 -1.25 Td (8.0 does not support)Tj /TT0 1 Tf 9.26 0 Td (fdatasync)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46758 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(3.12)]TJ /TT0 1 Tf 32.586 0 Td (dup)Tj /T1_0 1 Tf 2.3 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (dup2)Tj /T1_0 1 Tf 2.9 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (79)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (Calling)Tj /TT0 1 Tf 3.482 0 Td (pwrite)Tj /T1_0 1 Tf 3.862 0 Td [(is )-12(equivalent )-12(to )-12(calling)]TJ /TT0 1 Tf 10.265 0 Td (lseek)Tj /T1_0 1 Tf 3.262 0 Td [(followed )-12(by )-12(a )-12(call )-12(to)]TJ /TT0 1 Tf 9.248 0 Td (write)Tj /T1_0 1 Tf 0.2619 Tc (,w)Tj 0 Tc 4.346 0 Td [(ith )-12(similar)]TJ -34.464 -1.2 Td (exceptions.)Tj /TT1 1 Tf -3.6 -2.88 Td (Creating a File)Tj /T1_0 1 Tf -0.092 Tc 3.6 -2.4 Td [(We )-251(s)]TJ 0 Tc 2.128 0 Td [(aw )-67(another )-67(example )-67(of )-67(an )-67(atomic )-67(operation )-67(when )-67(we )-67(described )-67(the)]TJ /TT0 1 Tf 30.662 0 Td (O_CREAT)Tj /T1_0 1 Tf 4.517 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (O_EXCL)Tj /T1_0 1 Tf 3.966 0 Td [(options )-116(for )-116(the)]TJ /TT0 1 Tf 7.074 0 Td (open)Tj /T1_0 1 Tf 2.766 0 Td [(function. )-366(When)-365(both )-116(of )-116(these )-116(options )-116(ar)]TJ 0.3657 Tc 18.413 0 Td (es)Tj 0 Tc 1.269 0 Td [(peci\336ed, )-116(the)]TJ /TT0 1 Tf -33.487 -1.2 Td (open)Tj /T1_0 1 Tf 2.733 0 Td [(will )-83(fail )-83(if )-83(the )-83(\336le )-83(alr)19(eady )-83(exists.)]TJ -0.092 Tc 15.112 0 Td [(We )-267(a)]TJ 0 Tc 2.22 0 Td [(lso )-83(said )-83(that )-83(the )-83(check )-83(for )-83(the )-83(existence )-83(of)]TJ -20.065 -1.2 Td [(the )-65(\336le )-65(and )-65(the )-65(cr)18(eation )-65(of )-65(the )-65(\336le )-65(was )-65(performed )-65(as )-65(an )-65(atomic )-65(operation.)-565(If )-65(we )-65(didn\325t)]TJ 0 -1.2 TD (have this atomic operation, we might try)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 535.8678 Tm (if \(\(fd = open\(path, O_WRONLY\)\) < 0\) {)Tj 2.4 -1.189 Td (if \(errno == ENOENT\) {)Tj 2.4 -1.189 Td (if \(\(fd = creat\(path, mode\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("creat error"\);)Tj 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (err_sys\("open error"\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 439.3736 Tm [(The )-84(pr)18(oblem )-84(occurs )-84(if )-84(the )-84(\336le )-84(is )-84(cr)18(eated )-84(by )-84(another )-84(pr)18(ocess )-84(between )-84(the)]TJ /TT0 1 Tf 32.852 0 Td (open)Tj /T1_0 1 Tf 2.734 0 Td [(and )-84(the)]TJ /TT0 1 Tf -35.586 -1.2 Td (creat)Tj /T1_0 1 Tf 0.5414 Tc (.I)Tj 0.2914 Tc 4.128 0 Td (ft)Tj 0 Tc 0.95 0 Td [(he )-41(\336le )-41(is )-41(cr)18(eated )-41(by )-41(another )-41(pr)18(ocess )-41(between )-41(these )-41(two )-41(function )-41(calls, )-41(and )-41(if)]TJ -5.079 -1.2 Td [(that )-100(other )-100(pr)18(ocess )-100(writes )-100(something )-100(to )-100(the )-100(\336le, )-100(that )-100(data )-100(is )-100(erased )-100(when )-100(this)]TJ /TT0 1 Tf 34.935 0 Td (creat)Tj /T1_0 1 Tf 3.35 0 Td (is)Tj -38.285 -1.2 Td [(executed. )-571(Combining)-571(the )-321(test )-321(for )-321(existence )-321(and )-321(the )-321(cr)18(eation )-321(into )-321(a )-321(single )-321(atomic)]TJ T* [(operation avoids this pr)18(oblem.)]TJ 1.8 -1.2 Td [(In )-71(general, )-71(the )-71(term)]TJ /T1_2 1 Tf 9.205 0 Td [(atomic )-71(operation)]TJ /T1_0 1 Tf -0.018 Tc 7.103 0 Td (re)Tj 0 Tc 0.856 0 Td [(fers )-71(to )-71(an )-71(operation )-71(that )-71(might )-71(be )-71(composed)]TJ -18.964 -1.2 Td [(of )-246(multiple )-246(steps.)-745(If )-246(the )-246(operation )-246(is )-246(performed )-246(atomically)]TJ 0.4957 Tc 27.64 0 Td (,e)Tj 0 Tc 1.225 0 Td [(ither )-246(all )-246(the )-246(steps )-246(ar)19(e)]TJ -28.865 -1.2 Td [(performed )-78(\(on )-78(success\) )-78(or )-78(none )-78(ar)]TJ 0.3284 Tc 15.408 0 Td (ep)Tj 0 Tc 1.408 0 Td [(erformed )-78(\(on )-78(failur)17(e\). )-328(It)-329(must )-78(not )-78(be )-78(possible )-78(for)]TJ -16.816 -1.2 Td [(only )-2(a )-2(subset )-2(of )-2(the )-2(steps )-2(to )-2(be )-2(performed.)]TJ -0.092 Tc 19.2 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-2(r)18(eturn )-2(to )-2(the )-2(topic )-2(of )-2(atomic )-2(operations)]TJ -20.587 -1.2 Td (when we describe the)Tj /TT0 1 Tf 9.853 0 Td (link)Tj /T1_0 1 Tf 2.65 0 Td [(function \(Section 4.15\) and r)18(ecor)]TJ 0.25 Tc 14.232 0 Td (dl)Tj 0 Tc 1.152 0 Td (ocking \(Section 14.3\).)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5939 295.3823 Tm (3.12)Tj /TT2 1 Tf 3 0 Td (dup)Tj /TT1 1 Tf 2.356 0 Td (and)Tj /TT2 1 Tf 2.334 0 Td (dup2)Tj /TT1 1 Tf 2.956 0 Td (Functions)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5917 271.3837 Tm (An existing \336le descriptor is duplicated by either of the following f\ unctions:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5906 254.6847 Tm (#include )Tj 0 -2.021 TD (int dup\(int)Tj /T1_2 1 Tf 7.2 0 Td (fd)Tj /TT0 1 Tf (\);)Tj -7.2 -2.021 Td (int dup2\(int)Tj /T1_2 1 Tf 7.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (fd2)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 5.291 -2.021 Td [(Both r)18(eturn: new \336le descriptor if OK,)]TJ /TT3 1 Tf 16.995 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1956.25 cm 0 0 m 0 681 l 3900 681 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 182.1081 Tm [(The )-245(new )-245(\336le )-245(descriptor )-245(r)18(eturned )-245(by)]TJ /TT0 1 Tf 17.39 0 Td (dup)Tj /T1_0 1 Tf 2.296 0 Td [(is )-245(guaranteed )-245(to )-245(be )-245(the )-245(lowest-number)16(ed)]TJ -19.685 -1.2 Td [(available )-4(\336le )-4(descriptor)]TJ 0.5045 Tc 10.292 0 Td (.W)Tj 0 Tc 1.699 0 Td (ith)Tj /TT0 1 Tf 1.454 0 Td (dup2)Tj /T1_0 1 Tf [(,)-255(we)-255(s)1(pecify )-5(the )-5(value )-5(of )-5(the )-5(new )-5(descriptor )-5(with )-5(the)]TJ /T1_2 1 Tf -13.445 -1.2 Td (fd2)Tj /T1_0 1 Tf 1.556 0 Td [(ar)18(gument. )-277(If)]TJ /T1_2 1 Tf 6.031 0 Td (fd2)Tj /T1_0 1 Tf 1.555 0 Td [(is )-27(alr)18(eady )-27(open, )-27(it )-27(is )-27(\336rst )-27(closed.)-530(If)]TJ /T1_2 1 Tf 15.753 0 Td (fd)Tj /T1_0 1 Tf 1.055 0 Td (equals)Tj /T1_2 1 Tf 3.134 0 Td (fd2)Tj /T1_0 1 Tf 0.2774 Tc (,t)Tj 0 Tc 2.131 0 Td (hen)Tj /TT0 1 Tf 1.92 0 Td (dup2)Tj /T1_0 1 Tf -0.018 Tc 2.677 0 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj /T1_2 1 Tf -36.67 -1.2 Td (fd2)Tj /T1_0 1 Tf 1.546 0 Td [(without )-18(closing )-18(it.)-517(Otherwise, )-18(the)]TJ /TT0 1 Tf 15.331 0 Td (FD_CLOEXEC)Tj /T1_0 1 Tf 6.268 0 Td [(\336le )-18(descriptor )-18(\337ag )-18(is )-18(clear)18(ed )-18(for)]TJ /T1_2 1 Tf 14.328 0 Td (fd2)Tj /T1_0 1 Tf (,)Tj -37.472 -1.2 Td (so that)Tj /T1_2 1 Tf 3.204 0 Td (fd2)Tj /T1_0 1 Tf 1.528 0 Td [(is left open if the pr)18(ocess calls)]TJ /TT0 1 Tf 13.358 0 Td (exec)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46759 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(3.1)]TJ 30.2473 Tc 4.888 0 Td (1A)Tj 0 Tc 31.525 0 Td [(tomic )-250(Operations)]TJ /T1_1 1 Tf 9.92 0 Td (77)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 0.883 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (\245A)Tj 0 Tc 2.267 0 Td [(fter )-189(each)]TJ /TT0 1 Tf 4.417 0 Td (write)Tj /T1_0 1 Tf 3.439 0 Td [(is )-189(complete, )-189(the )-189(curr)18(ent )-189(\336le )-189(of)18(fset )-189(in )-189(the )-189(\336le )-189(table )-189(entry )-189(is)]TJ -8.634 -1.2 Td [(incr)18(emented )-33(by )-33(the )-33(number )-33(of )-33(bytes )-33(written.)-533(If )-33(this )-33(causes )-33(the )-33(curr)18(ent )-33(\336le )-33(of)18(fset)]TJ -0 -1.2 Td [(to )-45(exceed )-45(the )-45(curr)18(ent )-45(\336le )-45(size, )-45(the )-45(curr)17(ent )-45(\336le )-45(size )-45(in )-45(the )-45(i-node )-45(table )-45(entry )-45(is )-45(set)]TJ 0 -1.2 TD [(to the curr)18(ent \336le of)18(fset \(for example, the \336le is extended\).)]TJ 0.883 Tc -1.489 -1.6 Td (\245I)Tj 0.3027 Tc 1.826 0 Td (fa\336)Tj 0 Tc 2.043 0 Td [(le )-53(is )-53(opened )-53(with )-53(the)]TJ /TT0 1 Tf 9.716 0 Td (O_APPEND)Tj /T1_0 1 Tf 5.103 0 Td [(\337ag, )-53(a )-53(corr)18(esponding )-53(\337ag )-53(is )-53(set )-53(in )-53(the )-53(\336le)]TJ -17.199 -1.2 Td [(status )-17(\337ags )-17(of )-17(the )-17(\336le )-17(table )-17(entry)]TJ 0.5167 Tc 14.308 0 Td (.E)Tj 0 Tc 1.378 0 Td [(ach )-17(time )-17(a)]TJ /TT0 1 Tf 4.805 0 Td (write)Tj /T1_0 1 Tf 3.267 0 Td [(is )-17(performed )-17(for )-17(a )-17(\336le )-17(with)]TJ -23.758 -1.2 Td [(this )-50(append )-50(\337ag )-50(set, )-50(the )-50(curr)18(ent )-50(\336le )-50(of)18(fset )-50(in )-50(the )-50(\336le )-50(table )-50(entry )-50(is )-50(\336rst )-50(set )-50(to )-50(the)]TJ T* [(curr)18(ent )-235(\336le )-235(size )-235(fr)18(om )-235(the )-235(i-node )-235(table )-235(entry)]TJ 0.7347 Tc 20.412 0 Td (.T)Tj 0 Tc 1.598 0 Td [(his )-235(for)18(ces )-235(every)]TJ /TT0 1 Tf 7.828 0 Td (write)Tj /T1_0 1 Tf 3.485 0 Td [(to )-235(be)]TJ -33.322 -1.2 Td [(appended to the curr)18(ent end of \336le.)]TJ 0.883 Tc -1.489 -1.6 Td (\245I)Tj 0.2539 Tc 1.826 0 Td (fa\336)Tj 0 Tc 1.946 0 Td [(le )-4(is )-4(positioned )-4(to )-4(its )-4(curr)18(ent )-4(end )-4(of )-4(\336le )-4(using)]TJ /TT0 1 Tf 20.222 0 Td (lseek)Tj /T1_0 1 Tf 0.2539 Tc (,a)Tj 0 Tc 4.004 0 Td [(ll )-4(that )-4(happens )-4(is )-4(the)]TJ -26.509 -1.2 Td [(curr)18(ent )-161(\336le )-161(of)18(fset )-161(in )-161(the )-161(\336le )-161(table )-161(entry )-161(is )-161(set )-161(to )-161(the )-161(curr)18(ent )-161(\336le )-161(size )-161(fr)14(om )-161(the)]TJ 0 -1.2 Td [(i-node )-55(table )-55(entry)]TJ 0.555 Tc 7.828 0 Td (.\()Tj 0 Tc 1.138 0 Td [(Note )-55(that )-55(this )-55(is )-55(not )-55(the )-55(same )-55(as )-55(if )-55(the )-55(\336le )-55(was )-55(opened )-55(with)]TJ -8.966 -1.2 Td (the)Tj /TT0 1 Tf 1.637 0 Td (O_APPEND)Tj /T1_0 1 Tf 5.05 0 Td [(\337ag, as we will see in Section 3.1)55(1.\))]TJ 0.883 Tc -8.176 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.435 0 Td (lseek)Tj /T1_0 1 Tf 3.374 0 Td [(function )-124(modi\336es )-124(only )-124(the )-124(curr)18(ent )-124(\336le )-124(of)18(fset )-124(in )-124(the )-124(\336le )-124(table )-124(entry)110(.)]TJ -5.422 -1.2 Td (No I/O takes place.)Tj -1.489 -2.4 Td [(It )-97(is )-97(possible )-97(for )-97(mor)]TJ 0.3466 Tc 9.453 0 Td (et)Tj 0 Tc 1.152 0 Td [(han )-96(one )-96(\336le )-96(descriptor )-96(entry )-96(to )-96(point )-96(to )-96(the )-96(same )-96(\336le )-96(table)]TJ -12.405 -1.2 Td [(entry)111(,)-292(as)-292(we\325ll )-42(see )-42(when )-42(we )-42(discuss )-42(the)]TJ /TT0 1 Tf 17.692 0 Td (dup)Tj /T1_0 1 Tf 2.092 0 Td [(function )-42(in )-42(Section )-42(3.12.)-542(This )-42(also )-42(happens)]TJ -19.784 -1.2 Td [(after )-24(a)]TJ /TT0 1 Tf 3.081 0 Td (fork)Tj /T1_0 1 Tf 2.674 0 Td [(when )-24(the )-24(par)18(ent )-24(and )-24(the )-24(child )-24(shar)]TJ 0.2738 Tc 15.554 0 Td (et)Tj 0 Tc 1.079 0 Td [(he )-24(same )-24(\336le )-24(table )-24(entry )-24(for )-24(each )-24(open)]TJ -22.387 -1.2 Td (descriptor \(Section 8.3\).)Tj 1.8 -1.2 Td [(Note )-190(the )-190(dif)18(fer)18(ence )-190(in )-190(scope )-190(between )-190(the )-190(\336le )-190(descriptor )-190(\337ags )-190(and )-190(the )-190(\336le )-190(status)]TJ -1.8 -1.2 Td [(\337ags. )-250(The)-251(former apply only to a single descriptor in a single pr)18(ocess, wher)18(eas the latter)]TJ T* [(apply )-46(to )-46(all )-46(descriptors )-46(in )-46(any )-46(pr)18(ocess )-46(that )-46(point )-46(to )-46(the )-46(given )-46(\336le )-46(table )-46(entry)]TJ 0.546 Tc 33.952 0 Td (.W)Tj 0 Tc 1.796 0 Td [(hen )-46(we)]TJ -35.748 -1.2 Td [(describe )-37(the)]TJ /TT0 1 Tf 5.637 0 Td (fcntl)Tj /T1_0 1 Tf 3.287 0 Td [(function )-37(in )-37(Section )-37(3.14, )-37(we\325ll )-37(see )-37(how )-37(to )-37(fetch )-37(and )-37(modify )-37(both )-37(the)]TJ -8.924 -1.2 Td (\336le descriptor \337ags and the \336le status \337ags.)Tj 1.8 -1.2 Td [(Everything )-280(that )-280(we\325ve )-280(described )-280(so )-280(far )-280(in )-280(this )-280(section )-280(works )-280(\336ne )-280(for )-280(multiple)]TJ -1.8 -1.2 Td [(pr)18(ocesses )-79(that )-79(ar)]TJ 0.3288 Tc 7.467 0 Td (er)Tj 0 Tc 1.185 0 Td [(eading )-79(the )-79(same )-79(\336le.)-579(Each )-79(pr)18(ocess )-79(has )-79(its )-79(own )-79(\336le )-79(table )-79(entry )-79(with)]TJ -8.651 -1.2 Td [(its )-305(own )-305(curr)18(ent )-305(\336le )-305(of)16(fset. )-555(Unexpected)]TJ -0.018 Tc 19.135 0 Td (re)Tj 0 Tc 0.856 0 Td [(sults )-306(can )-306(arise, )-306(however)]TJ 0.5556 Tc 11.406 0 Td (,w)Tj 0 Tc 1.64 0 Td [(hen )-306(multiple)]TJ -33.036 -1.2 Td [(pr)18(ocesses )-237(write )-237(to )-237(the )-237(same )-237(\336le.)]TJ -0.092 Tc 15.866 0 Td [(To )-421(s)]TJ 0 Tc 1.978 0 Td [(ee )-237(how )-237(to )-237(avoid )-237(some )-237(surprises, )-237(we )-237(need )-237(to)]TJ -17.844 -1.2 Td (understand the concept of atomic operations.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5947 272.9836 Tm [(3.11 )-776(Atomic)-556(Operations)]TJ 9.9994 0 0 9.9994 93.5947 244.1853 Tm (Appending to a File)Tj /T1_0 1 Tf 3.6 -2.16 Td [(Consider )-98(a )-98(single )-98(pr)18(ocess )-98(that )-98(wants )-98(to )-98(append )-98(to )-98(the )-98(end )-98(of )-98(a )-98(\336le.)-597(Older )-98(versions )-98(of)]TJ T* [(the )-138(UNIX )-138(System )-138(didn\325t )-138(support )-138(the)]TJ /TT0 1 Tf 17.1 0 Td (O_APPEND)Tj /T1_0 1 Tf 5.187 0 Td [(option )-137(to)]TJ /TT0 1 Tf 4.539 0 Td (open)Tj /T1_0 1 Tf [(,)-387(so)-387(t)-1(he )-137(pr)18(ogram )-137(was)]TJ -26.827 -1.2 Td (coded as follows:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.591 181.8891 Tm (if \(lseek\(fd, 0L, 2\) < 0\))Tj 20.4 0 Td (/* position to EOF */)Tj -18.6 -1.189 Td (err_sys\("lseek error"\);)Tj -1.8 -1.189 Td [(if \(write\(fd, buf, 100\) != 100\))-1800(/* and write */)]TJ 1.8 -1.189 Td (err_sys\("write error"\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46760 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (74)Tj /T1_1 1 Tf 3 0 Td [(File )-250(I/O)]TJ 39.741 0 Td [(Chapter )-250(3)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ll )-111(r)18(eturn )-111(to )-111(this )-111(timing )-111(example )-111(later )-111(in )-111(the )-111(text.)-615(In )-111(Section )-111(3.14, )-111(we )-111(show )-111(the)]TJ -3.187 -1.2 Td [(ef)18(fect )-168(of )-168(synchr)18(onous )-168(writes; )-168(in )-168(Section )-168(5.8, )-168(we )-168(compar)]TJ 0.4178 Tc 25.493 0 Td (et)Tj 0 Tc 1.223 0 Td [(hese )-168(unbuf)18(fer)18(ed )-168(I/O )-168(times)]TJ -26.715 -1.2 Td (with the standar)Tj 0.25 Tc 7.24 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O library)111(.)]TJ 7.9995 0 0 7.9995 183.5887 624.9625 Tm (Bewar)Tj 0.3601 Tc 2.801 0 Td (ew)Tj 0 Tc 1.673 0 Td [(hen )-110(trying )-110(to )-110(measur)]TJ 0.3603 Tc 9.567 0 Td (et)Tj 0 Tc 1.165 0 Td [(he )-110(performance )-110(of )-110(pr)18(ograms )-110(that )-110(r)18(ead )-110(and )-110(write )-110(\336les.)-612(The)]TJ -15.207 -1.25 Td [(operating )-141(system )-141(will )-141(try )-141(to )-141(cache )-141(the )-141(\336le )-141(incor)18(e, )-141(so )-141(if )-141(you )-141(measur)]TJ 0.3914 Tc 30.666 0 Td (et)Tj 0 Tc 1.196 0 Td [(he )-141(performance )-141(of )-141(the)]TJ -31.862 -1.25 Td [(pr)18(ogram )-474(r)18(epeatedly)]TJ 0.724 Tc 9.17 0 Td (,t)Tj 0 Tc 1.3 0 Td [(he )-474(successive )-474(timings )-474(will )-474(likely )-474(be )-474(better )-474(than )-474(the )-474(\336rst.)-975(This)]TJ -10.47 -1.25 Td [(impr)18(ovement )-46(occurs )-46(because )-46(the )-46(\336rst )-46(r)8(un )-46(causes )-46(the )-46(\336le )-46(to )-46(be )-46(enter)15(ed )-46(into )-46(the )-46(system\325s )-46(cache,)]TJ 0 -1.25 TD [(and )-25(successive )-25(r)8(uns )-25(access )-25(the )-25(\336le )-25(fr)18(om )-25(the )-25(system\325s )-25(cache )-25(instead )-25(of )-25(fr)18(om )-25(the )-25(disk.)-525(\(The )-25(term)]TJ /T1_2 1 Tf T* [(incor)18(e)]TJ /T1_1 1 Tf 2.827 0 Td (means)Tj /T1_2 1 Tf 3.25 0 Td [(in )-132(main )-132(memory)]TJ /T1_1 1 Tf 0.6323 Tc (.B)Tj 0 Tc 8.426 0 Td [(ack )-132(in )-132(the )-132(day)]TJ 0.3821 Tc 6.463 0 Td (,ac)Tj 0 Tc 1.958 0 Td [(omputer )176(\325s)-382(main )-132(memory )-132(was )-132(built )-132(out )-132(of)]TJ -22.924 -1.25 Td [(ferrite )-62(cor)18(e. )-312(This)-312(is )-62(wher)]TJ 0.312 Tc 11.189 0 Td (et)Tj 0 Tc 1.117 0 Td [(he )-62(phrase )-62(\324)37(\324cor)]TJ 0.312 Tc 6.552 0 Td (ed)Tj 0 Tc 1.402 0 Td (ump\325)Tj 0.312 Tc 2.328 0 Td (\325c)Tj 0 Tc 1.034 0 Td [(omes )-62(fr)18(om: )-62(the )-62(main )-62(memory )-62(image )-62(of )-62(a)]TJ -23.622 -1.25 Td [(pr)18(ogram stor)18(ed in a \336le on disk for diagnosis.\))]TJ -0 -1.875 Td [(In )-174(the )-174(tests )-174(r)18(eported )-174(in )-174(Figur)]TJ 0.4238 Tc 13.474 0 Td (e3)Tj 0 Tc 1.403 0 Td [(.6, )-174(each )-174(r)8(un )-174(with )-174(a )-174(dif)19(fer)18(ent )-174(buf)18(fer )-174(size )-174(was )-174(made )-174(using )-174(a)]TJ -14.877 -1.25 Td [(dif)18(fer)18(ent )-166(copy )-166(of )-166(the )-166(\336le )-166(so )-166(that )-166(the )-166(curr)16(ent )-166(r)8(un )-166(didn\325t )-166(\336nd )-166(the )-166(data )-166(in )-166(the )-166(cache )-166(fr)18(om )-166(the)]TJ T* [(pr)18(evious )-7(r)8(un. )-257(The)-257(\336les )-7(ar)]TJ 0.2573 Tc 11.337 0 Td (el)Tj 0 Tc 1.027 0 Td [(ar)18(ge )-7(enough )-7(that )-7(they )-7(all )-7(don\325t )-7(r)18(emain )-7(in )-7(the )-7(cache )-7(\(the )-7(test )-7(system)]TJ -12.364 -1.25 Td [(was con\336gur)18(ed with 6 GB of RAM\).)]TJ /TT0 1 Tf 11.9993 0 0 11.9993 93.5936 473.9716 Tm [(3.10 )-776(File)-556(Sharing)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5914 449.973 Tm [(The )-51(UNIX )-51(System )-51(supports )-51(the )-51(sharing )-51(of )-51(open )-51(\336les )-51(among )-51(dif)16(fer)18(ent )-51(pr)18(ocesses. )-301(Befor)18(e)]TJ -0 -1.2 Td [(describing )-19(the)]TJ /TT1 1 Tf 6.551 0 Td (dup)Tj /T1_1 1 Tf 2.069 0 Td [(function, )-19(we )-19(need )-19(to )-19(describe )-19(this )-19(sharing.)]TJ -0.092 Tc 19.304 0 Td [(To )-203(d)]TJ 0.2689 Tc 1.947 0 Td (ot)Tj 0 Tc 1.141 0 Td [(his, )-19(we\325ll )-19(examine)]TJ -31.012 -1.2 Td [(the data str)8(uctur)18(es used by the kernel for all I/O.)]TJ 7.9995 0 0 7.9995 183.5881 405.9756 Tm [(The )-19(following )-19(description )-19(is )-19(conceptual; )-19(it )-19(may )-19(or )-19(may )-19(not )-19(match )-19(a )-19(particular )-19(implementation.)]TJ T* [(Refer )-118(to )-118(Bach)]TJ 6.467 0.04 Td ([)Tj 0.333 -0.04 Td (1986)Tj 2 0.04 Td (])Tj 0.701 -0.04 Td [(for )-118(a )-118(discussion )-118(of )-118(these )-118(str)7(uctur)18(es )-118(in )-118(System )-118(V)]TJ 0.6181 Tc 21.58 0 Td (.M)Tj 0 Tc 1.814 0 Td [(cKusick )-118(et )-118(al.)]TJ 6.438 0.04 Td ([)Tj 0.333 -0.04 Td (1996)Tj 2 0.04 Td (])Tj -41.667 -1.29 Td [(describe )-32(these )-32(str)8(uctur)18(es )-32(in )-32(4.4BSD.)-532(McKusick )-32(and )-32(Neville-Neil)]TJ 28.728 0.04 Td ([)Tj 0.333 -0.04 Td (2005)Tj 2 0.04 Td (])Tj 0.615 -0.04 Td [(cover )-32(Fr)18(eeBSD )-32(5.2.)-533(For)]TJ 0.5548 Tc -31.676 -1.25 Td (as)Tj 0 Tc 1.479 0 Td [(imilar )-305(discussion )-305(of )-305(Solaris, )-305(see )-305(McDougall )-305(and )-305(Maur)20(o)]TJ 26.828 0.04 Td ([)Tj 0.333 -0.04 Td (2007)Tj 2 0.04 Td (])Tj 0.8046 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.668 0 Td [(he )-305(Linux )-305(2.6 )-305(kernel)]TJ -32.64 -1.25 Td [(ar)18(chitectur)18(e)-250(is)-250(discussed in Bovet and Cesati)]TJ 19.826 0.04 Td ([)Tj 0.333 -0.04 Td (2006)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td (.)Tj 9.9994 0 0 9.9994 147.5895 342.9794 Tm [(The )-22(kernel )-22(uses )-22(thr)18(ee )-22(data )-22(str)8(uctur)18(es )-22(to )-22(r)18(epr)18(esent )-22(an )-22(open )-22(\336le, )-22(and )-22(the )-22(r)18(elationships)]TJ -1.8 -1.2 Td [(among )-12(them )-12(determine )-12(the )-12(ef)18(fect )-12(one )-12(pr)18(ocess )-12(has )-12(on )-12(another )-12(with )-12(r)17(egar)18(d)-262(to)-262(\336le )-12(sharing.)]TJ -0 -2.28 Td [(1. )-633(Every)-288(pr)18(ocess )-38(has )-38(an )-38(entry )-38(in )-38(the )-38(pr)18(ocess )-38(table.)]TJ -0.055 Tc 23.254 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(thin )-38(each )-38(pr)18(ocess )-38(table )-38(entry )-38(is )-38(a)]TJ -22.857 -1.2 Td [(table )-61(of )-61(open )-61(\336le )-61(descriptors, )-61(which )-61(we )-61(can )-61(think )-61(of )-61(as )-61(a )-61(vector)]TJ 0.3108 Tc 28.421 0 Td (,w)Tj 0 Tc 1.395 0 Td [(ith )-61(one )-61(entry )-61(per)]TJ -29.816 -1.2 Td (descriptor)Tj 0.5 Tc 4.438 0 Td (.A)Tj 0 Tc 1.528 0 Td [(ssociated with each \336le descriptor ar)18(e)]TJ -5.966 -1.6 Td [(\(a\) )-633(The)-250(\336le descriptor \337ags \(close-on-exec; r)18(efer to Figur)]TJ 0.25 Tc 25.245 0 Td (e3)Tj 0 Tc 1.229 0 Td (.7 and Section 3.14\))Tj -26.474 -1.6 Td [(\(b\) )-580(A)-250(pointer to a \336le table entry)]TJ -1.633 -2.28 Td [(2. )-633(The)-250(kernel maintains a \336le table for all open \336les.)-500(Each \336le table entry contains)]TJ 1.633 -1.6 Td [(\(a\) )-633(The)-611(\336le )-361(status )-361(\337ags )-361(for )-361(the )-361(\336le, )-361(such )-361(as )-361(r)14(ead, )-362(write, )-362(append, )-362(sync, )-362(and)]TJ 2.049 -1.2 Td [(nonblocking; mor)18(e)-250(on)-250(these in Section 3.14)]TJ -2.049 -1.6 Td [(\(b\) )-580(The)-250(curr)18(ent \336le of)18(fset)]TJ 0 -1.6 TD [(\(c\) )-689(A)-250(pointer to the v-node table entry for the \336le)]TJ -1.633 -2.28 Td [(3. )-633(Each)-266(open )-16(\336le )-16(\(or )-16(device\) )-16(has )-16(a )-16(v-node )-16(str)7(uctur)]TJ 0.2662 Tc 22.571 0 Td (et)Tj 0 Tc 1.071 0 Td [(hat )-16(contains )-16(information )-16(about )-16(the)]TJ -22.009 -1.2 Td [(type )-167(of )-167(\336le )-167(and )-167(pointers )-167(to )-167(functions )-167(that )-167(operate )-167(on )-167(the )-167(\336le.)-667(For )-167(most )-167(\336les, )-167(the)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46761 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (72)Tj /T1_1 1 Tf 3 0 Td [(File )-250(I/O)]TJ 39.741 0 Td [(Chapter )-250(3)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm (3.8)Tj /TT1 1 Tf 3 0 Td (write)Tj /TT0 1 Tf 3.556 0 Td (Function)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 647.3612 Tm (Data is written to an open \336le with the)Tj /TT2 1 Tf 17.255 0 Td (write)Tj /T1_1 1 Tf 3.25 0 Td (function.)Tj /TT2 1 Tf 8.9995 0 0 8.9995 147.5911 629.4622 Tm (#include )Tj 0 -2.021 TD (ssize_t write\(int)Tj /T1_2 1 Tf 10.8 0 Td (fd)Tj /TT2 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst void *)Tj /T1_2 1 Tf (buf)Tj /TT2 1 Tf 0.6 Tc (,s)Tj 0 Tc 9.697 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT2 1 Tf (\);)Tj /T1_1 1 Tf -10.019 -2.021 Td (Returns: number of bytes written if OK,)Tj /TT3 1 Tf 17.808 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5886.25 cm 0 0 m 0 499 l 3900 499 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 573.8511 Tm [(The )-279(r)18(eturn )-279(value )-279(is )-279(usually )-279(equal )-279(to )-279(the)]TJ /T1_2 1 Tf 19.782 0 Td (nbytes)Tj /T1_1 1 Tf 3.159 0 Td [(ar)18(gument; )-279(otherwise, )-279(an )-279(err)18(or )-279(has)]TJ -22.941 -1.2 Td [(occurr)18(ed. )-268(A)-268(common )-18(cause )-18(for )-18(a)]TJ /TT2 1 Tf 14.894 0 Td (write)Tj /T1_1 1 Tf 3.268 0 Td [(err)18(or )-18(is )-18(either )-18(\336lling )-18(up )-18(a )-18(disk )-18(or )-18(exceeding )-18(the)]TJ -18.162 -1.2 Td [(\336le size limit for a given pr)18(ocess \(Section 7.1)]TJ 0.25 Tc 19.414 0 Td (1a)Tj 0 Tc 1.25 0 Td [(nd Exer)18(cise 10.1)55(1\).)]TJ -18.864 -1.2 Td [(For )-288(a )-288(r)18(egular )-288(\336le, )-288(the )-288(write )-288(operation )-288(starts )-288(at )-288(the )-288(\336le\325s )-288(curr)18(ent )-288(of)22(fset. )-538(If)-538(the)]TJ /TT2 1 Tf -1.8 -1.2 Td (O_APPEND)Tj /T1_1 1 Tf 5.132 0 Td [(option )-82(was )-82(speci\336ed )-82(when )-82(the )-82(\336le )-82(was )-82(opened, )-82(the )-82(\336le\325s )-82(of)17(fset )-82(is )-82(set )-82(to )-82(the)]TJ -5.132 -1.2 Td [(curr)18(ent )-54(end )-54(of )-54(\336le )-54(befor)]TJ 0.3045 Tc 10.638 0 Td (ee)Tj 0 Tc 1.262 0 Td [(ach )-54(write )-54(operation.)-554(After )-54(a )-54(successful )-54(write, )-54(the )-54(\336le\325s )-54(of)14(fset)]TJ -11.9 -1.2 Td [(is incr)18(emented by the number of bytes actually written.)]TJ /TT0 1 Tf 11.9986 0 0 11.9986 93.5888 468.2638 Tm [(3.9 )-1332(I/O)-556(Ef\336cienc)10(y)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 446.6664 Tm [(The pr)18(ogram in Figur)]TJ 0.25 Tc 9.538 0 Td (e3)Tj 0 Tc 1.229 0 Td (.5 copies a \336le, using only the)Tj /TT2 1 Tf 13.228 0 Td (read)Tj /T1_1 1 Tf 2.65 0 Td (and)Tj /TT2 1 Tf 1.943 0 Td (write)Tj /T1_1 1 Tf 3.25 0 Td (functions.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4395.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT2 1 Tf 8.9984 0 0 8.9984 129.5767 429.9416 Tm (#include "apue.h")Tj 0 -1.902 TD [(#define BUFFSIZE)-2400(4096)]TJ 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(n;)]TJ T* [(char )-1800(buf[BUFFSIZE];)]TJ 0 -1.902 TD (while \(\(n = read\(STDIN_FILENO, buf, BUFFSIZE\)\) > 0\))Tj 2.4 -1.189 Td (if \(write\(STDOUT_FILENO, buf, n\) != n\))Tj 2.4 -1.189 Td (err_sys\("write error"\);)Tj -4.8 -1.902 Td (if \(n < 0\))Tj 2.4 -1.189 Td (err_sys\("read error"\);)Tj -2.4 -1.902 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2540.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 232.5482 237.9609 Tm (Figure 3.5)Tj /T1_1 1 Tf 5.195 0 Td (Copy standar)Tj 0.25 Tc 5.982 0 Td (di)Tj 0 Tc 1.152 0 Td (nput to standar)Tj 0.25 Tc 6.804 0 Td (do)Tj 0 Tc 1.407 0 Td (utput)Tj 9.9976 0 0 9.9976 129.5689 213.9666 Tm [(The following caveats apply to this pr)18(ogram.)]TJ 0.883 Tc 1.8 -1.8 Td (\245I)Tj 0.2831 Tc 1.826 0 Td (tr)Tj 0 Tc 0.986 0 Td [(eads )-33(fr)18(om )-33(standar)]TJ 0.2831 Tc 8.039 0 Td (di)Tj 0 Tc 1.185 0 Td [(nput )-33(and )-33(writes )-33(to )-33(standar)]TJ 0.2831 Tc 11.878 0 Td (do)Tj 0 Tc 1.44 0 Td [(utput, )-33(assuming )-33(that )-33(these)]TJ -23.866 -1.2 Td [(have )-263(been )-263(set )-263(up )-263(by )-263(the )-263(shell )-263(befor)]TJ 0.5127 Tc 17.092 0 Td (et)Tj 0 Tc 1.318 0 Td [(his )-263(pr)18(ogram )-263(is )-263(executed.)-763(Indeed, )-263(all)]TJ -18.41 -1.2 Td [(normal )-20(UNIX )-20(system )-20(shells )-20(pr)18(ovide )-20(a )-20(way )-20(to )-20(open )-20(a )-20(\336le )-20(for )-20(r)23(eading )-19(on )-19(standar)17(d)]TJ 0 -1.2 Td [(input )-195(and )-195(to )-195(cr)18(eate )-195(\(or )-195(r)18(ewrite\) )-195(a )-195(\336le )-195(on )-195(standar)]TJ 0.4447 Tc 22.686 0 Td (do)Tj 0 Tc 1.602 0 Td [(utput. )-445(This)-444(pr)18(events )-195(the)]TJ -24.288 -1.2 Td [(pr)18(ogram )-56(fr)18(om )-56(having )-56(to )-56(open )-56(the )-56(input )-56(and )-56(output )-56(\336les, )-56(and )-56(allows )-56(the )-56(user )-56(to)]TJ 0 -1.2 TD [(take advantage of the shell\325s I/O r)18(edir)18(ection facilities.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46762 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(3.7)]TJ /TT0 1 Tf 37.503 0 Td (read)Tj /T1_0 1 Tf 2.9 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (71)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT1 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm (3.7)Tj /TT2 1 Tf 3 0 Td (read)Tj /TT1 1 Tf 2.956 0 Td (Function)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 647.3612 Tm [(Data is r)18(ead fr)18(om an open \336le with the)]TJ /TT0 1 Tf 17.256 0 Td (read)Tj /T1_0 1 Tf 2.65 0 Td (function.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 629.4622 Tm (#include )Tj 0 -2.14 TD (ssize_t read\(int)Tj /T1_2 1 Tf 10.2 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 2.578 0 Td (oid *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 6.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -8.467 -2.14 Td [(Returns: number of bytes r)18(ead, 0 if end of \336le,)]TJ /TT3 1 Tf 20.456 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5865.25 cm 0 0 m 0 520 l 3900 520 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 571.7114 Tm [(If )-178(the)]TJ /TT0 1 Tf 2.913 0 Td (read)Tj /T1_0 1 Tf 2.828 0 Td [(is )-178(successful, )-178(the )-178(number )-178(of )-178(bytes )-178(r)18(ead )-178(is )-178(r)17(eturned. )-428(If)-428(the )-178(end )-178(of )-178(\336le )-178(is)]TJ -5.741 -1.2 Td [(encounter)18(ed, 0 is r)18(eturned.)]TJ 1.8 -1.2 Td (Ther)Tj 0.3345 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.314 0 Td [(re )-121(s)]TJ 0 Tc 1.614 0 Td [(everal )-84(cases )-84(in )-84(which )-84(the )-84(number )-84(of )-84(bytes )-84(actually )-84(r)14(ead )-84(is )-84(less )-84(than )-84(the)]TJ -6.779 -1.2 Td [(amount r)18(equested:)]TJ 0.883 Tc 1.8 -2.04 Td (\245W)Tj 0 Tc 2.489 0 Td [(hen )-316(r)18(eading )-316(fr)18(om )-316(a )-316(r)17(egular )-316(\336le, )-316(if )-316(the )-316(end )-316(of )-316(\336le )-316(is )-316(r)18(eached )-316(befor)]TJ 0.5664 Tc 32.279 0 Td (et)Tj 0 Tc 1.371 0 Td (he)Tj -0.018 Tc -34.65 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quested )-52(number )-52(of )-52(bytes )-52(has )-52(been )-52(r)15(ead. )-302(For)-303(example, )-52(if )-52(30 )-52(bytes )-52(r)18(emain )-52(until)]TJ -0.856 -1.2 Td [(the )-58(end )-58(of )-58(\336le )-58(and )-58(we )-58(try )-58(to )-58(r)18(ead )-58(100 )-58(bytes,)]TJ /TT0 1 Tf 19.909 0 Td (read)Tj /T1_0 1 Tf -0.018 Tc 2.708 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-58(30.)-558(The )-58(next )-58(time )-58(we)]TJ -23.473 -1.2 Td (call)Tj /TT0 1 Tf 1.776 0 Td (read)Tj /T1_0 1 Tf [(,)-250(it)-250(will r)18(eturn 0 \(end of \336le\).)]TJ 0.883 Tc -3.265 -1.6 Td (\245W)Tj 0 Tc 2.489 0 Td [(hen )-11(r)18(eading )-11(fr)18(om )-11(a )-11(terminal )-11(device.)-514(Normally)111(,)-261(up)-261(to)-261(o)-1(ne )-11(line )-11(is )-11(r)18(ead )-11(at )-11(a )-11(time.)]TJ -1 -1.2 Td [(\(W)92(e\325ll see how to change this default in Chapter 18.\))]TJ 0.883 Tc -1.489 -1.6 Td (\245W)Tj 0 Tc 2.489 0 Td [(hen )-171(r)18(eading )-171(fr)18(om )-171(a )-171(network.)-671(Buf)18(fering )-171(within )-171(the )-171(network )-171(may )-171(cause )-171(less)]TJ -1 -1.2 Td [(than the r)18(equested amount to be r)18(eturned.)]TJ 0.883 Tc -1.489 -1.6 Td (\245W)Tj 0 Tc 2.489 0 Td [(hen )-274(r)18(eading )-274(fr)18(om )-274(a )-274(pipe )-274(or )-274(FIFO.)-774(If )-274(the )-274(pipe )-274(contains )-274(fewer )-274(bytes )-274(than)]TJ -0.018 Tc -1 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (quested,)Tj /TT0 1 Tf 3.982 0 Td (read)Tj /T1_0 1 Tf 2.65 0 Td [(will r)18(eturn only what is available.)]TJ 0.883 Tc -8.977 -1.6 Td (\245W)Tj 0 Tc 2.489 0 Td [(hen )-242(r)18(eading )-242(fr)18(om )-242(a )-242(r)18(ecor)18(d-oriented )-242(device.)-742(Some )-242(r)18(ecor)18(d-oriented )-242(devices,)]TJ -1 -1.2 Td [(such as magnetic tape, can r)18(eturn up to a single r)18(ecor)18(d)-250(at)-250(a)-250(time.)]TJ 0.883 Tc -1.489 -1.6 Td (\245W)Tj 0 Tc 2.489 0 Td [(hen )-171(interr)8(upted )-171(by )-171(a )-171(signal )-171(and )-171(a )-171(partial )-171(amount )-171(of )-171(data )-171(has )-171(alr)22(eady )-171(been)]TJ -0.018 Tc -1 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ad. )-250(W)]TJ 0.25 Tc 2.769 0 Td (ed)Tj 0 Tc 1.34 0 Td (iscuss this further in Section 10.5.)Tj -6.454 -2.4 Td [(The )-80(r)18(ead )-80(operation )-80(starts )-80(at )-80(the )-80(\336le\325s )-80(curr)18(ent )-80(of)20(fset. )-330(Befor)]TJ 0.3297 Tc 26.034 0 Td (eas)Tj 0 Tc 2.062 0 Td [(uccessful )-80(r)18(eturn, )-80(the)]TJ -29.897 -1.2 Td [(of)18(fset is incr)18(emented by the number of bytes actually r)18(ead.)]TJ 1.8 -1.2 Td [(POSIX.1 )-306(changed )-306(the )-306(pr)18(ototype )-306(for )-306(this )-306(function )-306(in )-306(several )-306(ways.)-806(The )-306(classic)]TJ -1.8 -1.2 Td (de\336nition is)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.583 262.6485 Tm (int read\(int)Tj /T1_2 1 Tf 7.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (har *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 0.6 Tc (,u)Tj 0 Tc 6.097 0 Td (nsigned)Tj /T1_2 1 Tf 4.8 0 Td (nbytes)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 0.883 Tc 9.9988 0 0 9.9988 147.5829 242.2509 Tm (\245F)Tj 0 Tc 2.045 0 Td [(irst, )-14(the )-14(second )-14(ar)17(gument )-14(was )-14(changed )-14(fr)17(om)]TJ /TT0 1 Tf 19.967 0 Td [(char )267(*)]TJ /T1_0 1 Tf 3.598 0 Td (to)Tj /TT0 1 Tf 1.136 0 Td [(void )267(*)]TJ /T1_0 1 Tf 3.598 0 Td [(to )-14(be )-14(consistent)]TJ -28.854 -1.2 Td (with ISO C: the type)Tj /TT0 1 Tf 9.239 0 Td [(void )267(*)]TJ /T1_0 1 Tf 3.583 0 Td (is used for generic pointers.)Tj 0.883 Tc -14.311 -1.6 Td (\245N)Tj 0 Tc 2.32 0 Td [(ext, )-17(the )-17(r)18(eturn )-17(value )-17(was )-17(r)20(equir)18(ed )-17(to )-17(be )-17(a )-17(signed )-17(integer )-17(\()]TJ /TT0 1 Tf 25.414 0 Td (ssize_t)Tj /T1_0 1 Tf [(\))-266(to)-266(r)17(eturn )-16(a)]TJ -26.245 -1.2 Td (positive byte count, 0 \(for end of \336le\), or)Tj /TT3 1 Tf 17.995 0 Td (!)Tj /T1_0 1 Tf 0.25 Tc (1\()Tj 0 Tc 1.632 0 Td [(for an err)18(or\).)]TJ 0.883 Tc -21.116 -1.6 Td (\245F)Tj 0 Tc 2.045 0 Td (inally)Tj 0.3134 Tc 2.4 0 Td (,t)Tj 0 Tc 0.889 0 Td [(he )-63(thir)]TJ 0.3134 Tc 2.95 0 Td (da)Tj -0.018 Tc 1.424 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument )-63(historically )-63(has )-63(been )-63(an )-63(unsigned )-63(integer)]TJ 0.3134 Tc 21.533 0 Td (,t)Tj 0.3135 Tc 0.889 0 Td (oa)Tj 0 Tc 1.359 0 Td [(llow )-63(a)]TJ -32.935 -1.2 Td (16)Tj 1 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-146(implementation )-146(to )-146(r)18(ead )-146(or )-146(write )-146(up )-146(to )-146(65,534 )-146(bytes )-146(at )-146(a )-146(time.)]TJ -0.055 Tc 30.451 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-146(the)]TJ -33.02 -1.2 Td [(1990 )-3(POSIX.1 )-3(standar)18(d, )-3(the )-3(primitive )-3(system )-3(data )-3(type)]TJ /TT0 1 Tf 24.376 0 Td (ssize_t)Tj /T1_0 1 Tf 4.453 0 Td [(was )-3(intr)18(oduced)]TJ -28.83 -1.2 Td [(to )-77(pr)18(ovide )-77(the )-77(signed )-77(r)20(eturn )-76(value, )-76(and )-76(the )-76(unsigned)]TJ /TT0 1 Tf 24.269 0 Td (size_t)Tj /T1_0 1 Tf 3.926 0 Td [(was )-76(used )-76(for )-76(the)]TJ -28.195 -1.2 Td (thir)Tj 0.25 Tc 1.576 0 Td (da)Tj -0.018 Tc 1.361 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument. )-250(\(Recall)-250(the)]TJ /TT0 1 Tf 8.516 0 Td (SSIZE_MAX)Tj /T1_0 1 Tf 5.65 0 Td [(constant fr)18(om Section 2.5.2.\))]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46763 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (66)Tj /T1_1 1 Tf 3 0 Td [(File )-250(I/O)]TJ 39.741 0 Td [(Chapter )-250(3)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm (3.4)Tj /TT1 1 Tf 3 0 Td (creat)Tj /TT0 1 Tf 3.556 0 Td (Function)Tj /T1_1 1 Tf 0.25 Tc 9.9994 0 0 9.9994 129.5922 647.3612 Tm (An)Tj 0 Tc 1.61 0 Td [(ew \336le can also be cr)18(eated by calling the)]TJ /TT2 1 Tf 17.924 0 Td (creat)Tj /T1_1 1 Tf 3.25 0 Td (function.)Tj /TT2 1 Tf 8.9995 0 0 8.9995 147.5911 627.0624 Tm (#include )Tj 0 -1.783 TD (int creat\(const char *)Tj /T1_2 1 Tf (path)Tj /TT2 1 Tf 0.6 Tc (,m)Tj 0 Tc 16.777 0 Td (ode_t)Tj /T1_2 1 Tf 3.6 0 Td (mode)Tj /TT2 1 Tf (\);)Tj /T1_1 1 Tf -9.118 -1.783 Td (Returns: \336le descriptor opened for write-only if OK,)Tj /TT3 1 Tf 23.205 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5905.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 570.9315 Tm (Note that this function is equivalent to)Tj /TT2 1 Tf 8.9989 0 0 8.9989 147.5823 554.2335 Tm (open\()Tj /T1_2 1 Tf (path)Tj /TT2 1 Tf 0.6 Tc (,O)Tj 0 Tc 6.577 0 Td (_WRONLY | O_CREAT | O_TRUNC,)Tj /T1_2 1 Tf 17.4 0 Td (mode)Tj /TT2 1 Tf (\);)Tj /T1_1 1 Tf 7.999 0 0 7.999 183.5778 534.2359 Tm [(Historically)111(,)-267(in)-267(e)1(arly )-17(versions )-17(of )-17(the )-17(UNIX )-17(System, )-17(the )-17(second )-17(ar)18(gument )-17(to)]TJ /TT2 1 Tf 33.298 0 Td (open)Tj /T1_1 1 Tf 2.667 0 Td [(could )-16(be )-16(only)]TJ -35.965 -1.25 Td [(0, )-145(1, )-145(or )-145(2.)-643(Ther)]TJ 0.3946 Tc 7.07 0 Td (ew)Tj 0 Tc 1.708 0 Td [(as )-145(no )-145(way )-145(to)]TJ /TT2 1 Tf 6.392 0 Td (open)Tj /T1_1 1 Tf 0.3946 Tc 2.795 0 Td (a\336)Tj 0 Tc 1.5 0 Td [(le )-145(that )-145(didn\325t )-145(alr)18(eady )-145(exist.)-644(Ther)18(efor)18(e, )-145(a )-145(separate)]TJ -19.465 -1.25 Td [(system )-55(call,)]TJ /TT2 1 Tf 5.479 0 Td (creat)Tj /T1_1 1 Tf 0.3051 Tc (,w)Tj 0 Tc 4.389 0 Td [(as )-55(needed )-55(to )-55(cr)18(eate )-55(new )-55(\336les.)]TJ -0.055 Tc 13.667 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-55(the)]TJ /TT2 1 Tf 2.905 0 Td (O_CREAT)Tj /T1_1 1 Tf 4.505 0 Td (and)Tj /TT2 1 Tf 1.998 0 Td (O_TRUNC)Tj /T1_1 1 Tf 4.505 0 Td (options)Tj -38.684 -1.25 Td [(now pr)18(ovided by)]TJ /TT2 1 Tf 7.902 0 Td (open)Tj /T1_1 1 Tf 0.25 Tc (,as)Tj 0 Tc 4.074 0 Td (eparate)Tj /TT2 1 Tf 3.53 0 Td (creat)Tj /T1_1 1 Tf 3.25 0 Td (function is no longer needed.)Tj -0.092 Tc 9.9988 0 0 9.9988 129.5845 486.2416 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ll )-337(show )-337(how )-337(to )-337(specify)]TJ /T1_2 1 Tf 12.144 0 Td (mode)Tj /T1_1 1 Tf 2.698 0 Td [(in )-337(Section )-337(4.5 )-337(when )-337(we )-337(describe )-337(a )-337(\336le\325s )-337(access)]TJ -16.229 -1.2 Td (permissions in detail.)Tj 1.8 -1.2 Td [(One )-133(de\336ciency )-133(with)]TJ /TT2 1 Tf 9.521 0 Td (creat)Tj /T1_1 1 Tf 3.384 0 Td [(is )-133(that )-133(the )-133(\336le )-133(is )-133(opened )-133(only )-133(for )-133(writing.)-637(Befor)]TJ 0.3835 Tc 22.046 0 Td (et)Tj 0 Tc 1.189 0 Td (he)Tj -37.939 -1.2 Td [(new )-7(version )-7(of)]TJ /TT2 1 Tf 6.828 0 Td (open)Tj /T1_1 1 Tf 2.657 0 Td [(was )-7(pr)18(ovided, )-7(if )-7(we )-7(wer)]TJ 0.2573 Tc 10.745 0 Td (ec)Tj -0.018 Tc 1.18 0 Td (re)Tj 0 Tc 0.856 0 Td [(ating )-7(a )-7(temporary )-7(\336le )-7(that )-7(we )-7(wanted)]TJ -22.266 -1.2 Td [(to )-129(write )-129(and )-129(then )-129(r)16(ead )-129(back, )-129(we )-129(had )-129(to )-129(call)]TJ /TT2 1 Tf 20.326 0 Td (creat)Tj /T1_1 1 Tf (,)Tj /TT2 1 Tf 3.629 0 Td (close)Tj /T1_1 1 Tf 0.3793 Tc (,a)Tj 0 Tc 4.129 0 Td [(nd )-129(then)]TJ /TT2 1 Tf 3.921 0 Td (open)Tj /T1_1 1 Tf 0.6293 Tc (.A)Tj 0 Tc 4.437 0 Td (better)Tj -36.442 -1.2 Td (way is to use the)Tj /TT2 1 Tf 7.62 0 Td (open)Tj /T1_1 1 Tf 2.65 0 Td (function, as in)Tj /TT2 1 Tf 8.9989 0 0 8.9989 147.5828 409.5508 Tm (open\()Tj /T1_2 1 Tf (path)Tj /TT2 1 Tf 0.6 Tc (,O)Tj 0 Tc 6.577 0 Td (_RDWR | O_CREAT | O_TRUNC,)Tj /T1_2 1 Tf 16.2 0 Td (mode)Tj /TT2 1 Tf (\);)Tj /TT0 1 Tf 11.9986 0 0 11.9986 93.5891 381.9542 Tm (3.5)Tj /TT1 1 Tf 3 0 Td (close)Tj /TT0 1 Tf 3.556 0 Td (Function)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5847 360.3568 Tm (An open \336le is closed by calling the)Tj /TT2 1 Tf 15.904 0 Td (close)Tj /T1_1 1 Tf 3.25 0 Td (function.)Tj /TT2 1 Tf 8.9989 0 0 8.9989 147.5826 341.259 Tm (#include )Tj T* (int close\(int)Tj /T1_2 1 Tf 8.4 0 Td (fd)Tj /TT2 1 Tf (\);)Tj /T1_1 1 Tf 18.451 -1.783 Td (Returns: 0 if OK,)Tj /TT3 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3047.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 288.748 Tm [(Closing )-41(a )-41(\336le )-41(also )-41(r)18(eleases )-41(any )-41(r)16(ecor)]TJ 0.2913 Tc 16.097 0 Td (dl)Tj 0 Tc 1.193 0 Td [(ocks )-41(that )-41(the )-41(pr)18(ocess )-41(may )-41(have )-41(on )-41(the )-41(\336le.)]TJ -0.092 Tc 19.463 0 Td (We)Tj 0 Tc 1.387 0 Td (\325ll)Tj -38.14 -1.2 Td (discuss this point further in Section 14.3.)Tj 1.8 -1.2 Td [(When )-220(a )-220(pr)17(ocess )-220(terminates, )-220(all )-220(of )-220(its )-220(open )-220(\336les )-220(ar)]TJ 0.4703 Tc 23.492 0 Td (ec)Tj 0 Tc 1.393 0 Td [(losed )-220(automatically )-220(by )-220(the)]TJ -26.685 -1.2 Td [(kernel. )-285(Many)-285(pr)18(ograms )-35(take )-35(advantage )-35(of )-35(this )-35(fact )-35(and )-35(don\325t )-35(explicitly )-35(close )-35(open )-35(\336les.)]TJ 0 -1.2 TD [(See the pr)18(ogram in Figur)]TJ 0.25 Tc 10.984 0 Td (e1)Tj 0 Tc 1.229 0 Td (.4, for example.)Tj /TT0 1 Tf 11.9978 0 0 11.9978 93.5837 214.3614 Tm (3.6)Tj /TT1 1 Tf 3 0 Td (lseek)Tj /TT0 1 Tf 3.556 0 Td (Function)Tj /T1_1 1 Tf 9.9982 0 0 9.9982 129.5772 192.7653 Tm [(Every )-76(open )-76(\336le )-76(has )-76(an )-76(associated )-76(\324)36(\324curr)18(ent )-76(\336le )-76(of)18(fset,\325)]TJ 0.3261 Tc 23.945 0 Td (\325n)Tj 0 Tc 1.186 0 Td [(ormally )-76(a )-76(non-negative )-76(integer)]TJ -25.131 -1.2 Td [(that )-116(measur)18(es )-116(the )-116(number )-116(of )-116(bytes )-116(fr)18(om )-116(the )-116(beginning )-116(of )-116(the )-116(\336le.)]TJ 30.539 0.04 Td (\()Tj -0.092 Tc 0.333 -0.04 Td [(We )-301(d)]TJ 0 Tc 2.364 0 Td [(escribe )-116(some)]TJ -33.237 -1.2 Td [(exceptions )-367(to )-367(the )-367(\324)38(\324non-negative\325)]TJ 0.6166 Tc 15.378 0 Td (\325q)Tj 0 Tc 1.455 0 Td [(uali\336er )-366(later )-366(in )-366(this )-366(section.\))-866(Read )-366(and )-366(write)]TJ -16.832 -1.2 Td [(operations )-13(normally )-13(start )-13(at )-13(the )-13(curr)18(ent )-13(\336le )-13(of)18(fset )-13(and )-13(cause )-13(the )-13(of)14(fset )-13(to )-13(be )-13(incr)17(emented)]TJ 0 -1.2 Td [(by )-46(the )-46(number )-46(of )-46(bytes )-46(r)18(ead )-46(or )-46(written.)-546(By )-46(default, )-46(this )-46(of)20(fset )-46(is )-46(initialized )-46(to )-46(0 )-46(when )-46(a)]TJ T* (\336le is opened, unless the)Tj /TT2 1 Tf 11.078 0 Td (O_APPEND)Tj /T1_1 1 Tf 5.05 0 Td (option is speci\336ed.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46764 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (62)Tj /T1_1 1 Tf 3 0 Td [(File )-250(I/O)]TJ 39.741 0 Td [(Chapter )-250(3)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(By )-193(convention, )-193(UNIX )-193(System )-193(shells )-193(associate )-193(\336le )-193(descriptor )-193(0 )-193(with )-193(the )-193(standar)20(d)]TJ -1.8 -1.2 Td [(input )-54(of )-54(a )-54(pr)18(ocess, )-54(\336le )-54(descriptor )-54(1 )-54(with )-54(the )-54(standar)]TJ 0.3045 Tc 23.195 0 Td (do)Tj 0 Tc 1.461 0 Td [(utput, )-54(and )-54(\336le )-54(descriptor )-54(2 )-54(with)]TJ -24.656 -1.2 Td [(the )-121(standar)]TJ 0.3713 Tc 5.078 0 Td (de)Tj 0 Tc 1.461 0 Td [(rr)18(or)]TJ 0.6213 Tc 1.639 0 Td (.T)Tj 0 Tc 1.484 0 Td [(his )-121(convention )-121(is )-121(used )-121(by )-121(the )-121(shells )-121(and )-121(many )-121(applications; )-121(it )-121(is)]TJ -9.663 -1.2 Td [(not )-27(a )-27(featur)18(e)-277(of)-277(the )-27(UNIX )-27(kernel.)-527(Nevertheless, )-27(many )-27(applications )-27(would )-27(br)17(eak )-27(if )-27(these)]TJ 0 -1.2 Td [(associations wer)18(en\325t followed.)]TJ 1.8 -1.2 Td [(Although )-68(their )-68(values )-68(ar)]TJ 0.3178 Tc 11.029 0 Td (es)Tj 0 Tc 1.221 0 Td [(tandar)18(dized )-68(by )-68(POSIX.1, )-68(the )-68(magic )-68(numbers )-68(0, )-68(1, )-68(and )-68(2)]TJ -14.05 -1.2 Td [(should )-370(be )-370(r)18(eplaced )-370(in )-370(POSIX-compliant )-370(applications )-370(with )-370(the )-370(symbolic )-370(constants)]TJ /TT0 1 Tf 0 -1.2 TD (STDIN_FILENO)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 8.196 0 Td (STDOUT_FILENO)Tj /T1_1 1 Tf 0.7465 Tc (,a)Tj 0 Tc 9.296 0 Td (nd)Tj /TT0 1 Tf 1.939 0 Td (STDERR_FILENO)Tj /T1_1 1 Tf 8.546 0 Td [(to )-496(impr)18(ove )-496(r)17(eadability)111(.)]TJ -27.979 -1.2 Td (These constants ar)Tj 0.25 Tc 8.108 0 Td (ed)Tj 0 Tc 1.34 0 Td (e\336ned in the)Tj /TT0 1 Tf 5.766 0 Td ()Tj /T1_1 1 Tf 6.25 0 Td [(header)74(.)]TJ -19.664 -1.2 Td [(File )-223(descriptors )-223(range )-223(fr)18(om )-223(0 )-223(thr)20(ough)]TJ /TT0 1 Tf 18.112 0 Td (OPEN_MAX)Tj /TT1 1 Tf (!)Tj /TT0 1 Tf (1)Tj /T1_1 1 Tf 0.7226 Tc (.\()Tj 0 Tc 7.255 0 Td [(Recall )-223(Figur)]TJ 0.4726 Tc 5.529 0 Td (e2)Tj 0 Tc 1.452 0 Td [(.1)55(1.\) )-473(Early)]TJ -34.146 -1.2 Td [(historical )-157(implementations )-157(of )-157(the )-157(UNIX )-157(System )-157(had )-157(an )-157(upper )-157(limit )-157(of )-157(19, )-157(allowing )-157(a)]TJ T* [(maximum )-110(of )-110(20 )-110(open )-110(\336les )-110(per )-110(pr)18(ocess, )-110(but )-110(many )-110(systems )-110(subsequently )-110(incr)18(eased )-110(this)]TJ T* (limit to 63.)Tj -0.055 Tc 7.9995 0 0 7.9995 183.5885 504.9697 Tm (Wi)Tj 0 Tc 1.236 0 Td [(th )-58(Fr)18(eeBSD )-58(8.0, )-58(Linux )-58(3.2.0, )-58(Mac )-58(OS )-58(X )-58(10.6.8, )-58(and )-58(Solaris )-58(10, )-58(the )-58(limit )-58(is )-58(essentially )-58(in\336nite,)]TJ -1.236 -1.25 Td [(bounded )-3(by )-3(the )-3(amount )-3(of )-3(memory )-3(on )-3(the )-3(system, )-3(the )-3(size )-3(of )-3(an )-3(integer)]TJ 0.2529 Tc 31.762 0 Td (,a)Tj 0 Tc 1.003 0 Td [(nd )-3(any )-3(har)]TJ 0.2529 Tc 4.796 0 Td (da)Tj 0 Tc 1.364 0 Td [(nd )-3(soft)]TJ -38.925 -1.25 Td [(limits con\336gur)18(ed by the system administrator)74(.)]TJ /TT2 1 Tf 11.9993 0 0 11.9993 93.5938 450.9729 Tm (3.3)Tj /TT3 1 Tf 3 0 Td (open)Tj /TT2 1 Tf 2.956 0 Td (and)Tj /TT3 1 Tf 2.334 0 Td (openat)Tj /TT2 1 Tf 4.156 0 Td (Functions)Tj /T1_1 1 Tf 0.25 Tc 9.9994 0 0 9.9994 129.5912 426.9744 Tm (A\336)Tj 0 Tc 1.633 0 Td [(le is opened or cr)18(eated by calling either the)]TJ /TT0 1 Tf 19.193 0 Td (open)Tj /T1_1 1 Tf 2.65 0 Td (function or the)Tj /TT0 1 Tf 6.785 0 Td (openat)Tj /T1_1 1 Tf 3.85 0 Td (function.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5902 410.2754 Tm (#include )Tj 0 -2.021 TD (int open\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 16.177 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (o\337ag)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 3.733 0 Td (.. /* mode_t)Tj /T1_2 1 Tf 7.8 0 Td (mode)Tj /TT0 1 Tf 2.711 0 Td (*/ \);)Tj -32.221 -2.021 Td (int openat\(int)Tj /T1_2 1 Tf 9 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 10.177 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (o\337ag)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 3.733 0 Td (.. /* mode_t)Tj /T1_2 1 Tf 7.8 0 Td (mode)Tj /TT0 1 Tf 2.711 0 Td (*/ \);)Tj /T1_1 1 Tf -18.185 -2.021 Td [(Both r)18(eturn: \336le descriptor if OK,)]TJ /TT1 1 Tf 14.85 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3512.25 cm 0 0 m 0 681 l 3900 681 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5844 337.6895 Tm [(We )-247(s)]TJ 0 Tc 2.124 0 Td [(how )-63(the )-63(last )-63(ar)18(gument )-63(as)]TJ /TT0 1 Tf 11.685 0 Td (...)Tj /T1_1 1 Tf 0.313 Tc (,w)Tj 0 Tc 3.197 0 Td [(hich )-63(is )-63(the )-63(ISO )-63(C )-63(way )-63(to )-63(specify )-63(that )-63(the )-63(number)]TJ -17.006 -1.2 Td [(and )-30(types )-30(of )-30(the )-30(r)18(emaining )-30(ar)18(guments )-30(may )-30(vary)]TJ 0.5298 Tc 21.419 0 Td (.F)Tj 0 Tc 1.336 0 Td [(or )-30(these )-30(functions, )-30(the )-30(last )-30(ar)19(gument)]TJ -22.755 -1.2 Td [(is )-224(used )-224(only )-224(when )-224(a )-224(new )-224(\336le )-224(is )-224(being )-224(cr)18(eated, )-224(as )-224(we )-224(describe )-224(later)]TJ 0.7237 Tc 31.683 0 Td (.W)Tj 0.4737 Tc 1.882 0 Td (es)Tj 0 Tc 1.377 0 Td [(how )-224(this)]TJ -34.941 -1.2 Td [(ar)18(gument as a comment in the pr)18(ototype.)]TJ 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 2.065 0 Td (path)Tj /T1_1 1 Tf 2.168 0 Td [(parameter )-141(is )-141(the )-141(name )-141(of )-141(the )-141(\336le )-141(to )-141(open )-141(or )-141(cr)19(eate. )-391(This)-391(function )-141(has )-141(a)]TJ -6.033 -1.2 Td [(multitude )-246(of )-246(options, )-246(which )-246(ar)]TJ 0.4961 Tc 14.452 0 Td (es)Tj 0 Tc 1.399 0 Td [(peci\336ed )-246(by )-246(the)]TJ /T1_2 1 Tf 7.494 0 Td (o\337ag)Tj /T1_1 1 Tf 2.429 0 Td [(ar)18(gument. )-496(This)-496(ar)18(gument )-246(is)]TJ -25.775 -1.2 Td [(formed )-29(by )-29(ORing )-29(together )-29(one )-29(or )-29(mor)20(e)-279(of)-279(t)1(he )-29(following )-29(constants )-29(fr)18(om )-29(the)]TJ /TT0 1 Tf 33.6 0 Td ()Tj /T1_1 1 Tf -33.6 -1.2 Td (header:)Tj /TT0 1 Tf 0 -1.92 TD (O_RDONLY)Tj /T1_1 1 Tf 7.2 0 Td [(Open for r)18(eading only)111(.)]TJ /TT0 1 Tf -7.2 -1.6 Td (O_WRONLY)Tj /T1_1 1 Tf 7.2 0 Td [(Open for writing only)111(.)]TJ /TT0 1 Tf -7.2 -1.6 Td (O_RDWR)Tj /T1_1 1 Tf 7.2 0 Td [(Open for r)18(eading and writing.)]TJ 7.999 0 0 7.999 219.5724 182.5081 Tm [(Most )-44(implementations )-44(de\336ne)]TJ /TT0 1 Tf 13.366 0 Td (O_RDONLY)Tj /T1_1 1 Tf 5.094 0 Td [(as )-44(0,)]TJ /TT0 1 Tf 2.263 0 Td (O_WRONLY)Tj /T1_1 1 Tf 5.094 0 Td [(as )-44(1, )-44(and)]TJ /TT0 1 Tf 4.251 0 Td (O_RDWR)Tj /T1_1 1 Tf 3.895 0 Td [(as )-45(2, )-45(for)]TJ -33.963 -1.25 Td [(compatibility with older pr)18(ograms.)]TJ /TT0 1 Tf 9.9988 0 0 9.9988 129.583 150.5119 Tm (O_EXEC)Tj /T1_1 1 Tf 7.2 0 Td [(Open for execute only)111(.)]TJ /TT0 1 Tf -7.2 -1.6 Td (O_SEARCH)Tj /T1_1 1 Tf 7.2 0 Td [(Open for sear)18(ch only \(applies to dir)18(ectories\).)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46765 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (3)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(File )-280(I/O)]TJ /TT0 1 Tf 12 0 0 12 93.6 434.4 Tm [(3.1 )-1332(Intr)20(oduction)]TJ /T1_2 1 Tf -0.092 Tc 10 0 0 10 129.6 410.4 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ll )-60(start )-60(our )-60(discussion )-60(of )-60(the )-60(UNIX )-60(System )-60(by )-60(describing )-60(the )-60(functions )-60(available )-60(for)]TJ -1.387 -1.2 Td [(\336le )-7(I/O)]TJ 0.0833 Tc 3.444 0 Td (\321o)Tj 0 Tc 1.629 0 Td [(pen )-7(a )-7(\336le, )-7(r)18(ead )-7(a )-7(\336le, )-7(write )-7(a )-7(\336le, )-7(and )-7(so )-7(on.)-508(Most )-7(\336le )-7(I/O )-7(on )-7(a )-7(UNIX )-7(system)]TJ -5.074 -1.2 Td [(can )-126(be )-126(performed )-126(using )-126(only )-126(\336ve )-126(functions:)]TJ /TT1 1 Tf 20.375 0 Td (open)Tj /T1_2 1 Tf (,)Tj /TT1 1 Tf 3.026 0 Td (read)Tj /T1_2 1 Tf (,)Tj /TT1 1 Tf 3.026 0 Td (write)Tj /T1_2 1 Tf (,)Tj /TT1 1 Tf 3.626 0 Td (lseek)Tj /T1_2 1 Tf 0.3764 Tc (,a)Tj 0 Tc 4.126 0 Td (nd)Tj /TT1 1 Tf 1.569 0 Td (close)Tj /T1_2 1 Tf (.)Tj -0.092 Tc -35.75 -1.2 Td [(We )-184(t)]TJ 0 Tc 1.963 0 Td [(hen examine the ef)18(fect of various buf)18(fer sizes on the)]TJ /TT1 1 Tf 23.15 0 Td (read)Tj /T1_2 1 Tf 2.65 0 Td (and)Tj /TT1 1 Tf 1.943 0 Td (write)Tj /T1_2 1 Tf 3.25 0 Td (functions.)Tj -31.156 -1.2 Td [(The )-171(functions )-171(described )-171(in )-171(this )-171(chapter )-171(ar)]TJ 0.4208 Tc 19.317 0 Td (eo)Tj 0 Tc 1.446 0 Td [(ften )-171(r)18(eferr)18(ed )-171(to )-171(as)]TJ /T1_3 1 Tf 8.729 0 Td [(unbuffer)18(ed )-171(I/O)]TJ /T1_2 1 Tf 0.4208 Tc (,i)Tj 0 Tc 7.126 0 Td (n)Tj -38.418 -1.2 Td [(contrast )-267(to )-267(the )-267(standar)]TJ 0.5166 Tc 10.672 0 Td (dI)Tj 0 Tc 1.465 0 Td [(/O )-267(r)18(outines, )-267(which )-267(we )-267(describe )-267(in )-267(Chapter )-267(5.)-764(The )-267(term)]TJ /T1_3 1 Tf -12.136 -1.2 Td [(unbuffer)18(ed)]TJ /T1_2 1 Tf 4.696 0 Td [(means )-110(that )-110(each)]TJ /TT1 1 Tf 7.686 0 Td (read)Tj /T1_2 1 Tf 2.76 0 Td (or)Tj /TT1 1 Tf 1.301 0 Td (write)Tj /T1_2 1 Tf 3.36 0 Td [(invokes )-110(a )-110(system )-110(call )-110(in )-110(the )-110(kernel.)-608(These)]TJ -19.802 -1.2 Td [(unbuf)18(fer)18(ed )-67(I/O )-67(functions )-67(ar)]TJ 0.3172 Tc 12.623 0 Td (en)Tj 0 Tc 1.378 0 Td [(ot )-67(part )-67(of )-67(ISO )-67(C, )-67(but )-67(ar)]TJ 0.3172 Tc 10.442 0 Td (ep)Tj 0 Tc 1.397 0 Td [(art )-67(of )-67(POSIX.1 )-67(and )-67(the )-67(Single)]TJ -25.841 -1.2 Td (UNIX Speci\336cation.)Tj 1.8 -1.2 Td [(Whenever )-273(we )-273(describe )-273(the )-273(sharing )-273(of )-273(r)16(esour)18(ces )-273(among )-273(multiple )-273(pr)18(ocesses, )-273(the)]TJ -1.8 -1.2 Td [(concept )-242(of )-242(an )-242(atomic )-242(operation )-242(becomes )-242(important.)]TJ -0.092 Tc 24.838 0 Td [(We )-426(e)]TJ 0 Tc 2.358 0 Td [(xamine )-242(this )-242(concept )-242(with)]TJ -0.018 Tc -27.196 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(gar)18(d)-271(to)-271(\336)-1(le )-21(I/O )-21(and )-21(the )-21(ar)18(guments )-21(to )-21(the)]TJ /TT1 1 Tf 18.532 0 Td (open)Tj /T1_2 1 Tf 2.671 0 Td [(function. )-271(This)-272(leads )-21(to )-21(a )-21(discussion )-21(of)]TJ -22.059 -1.2 Td [(how )-165(\336les )-165(ar)]TJ 0.4155 Tc 5.469 0 Td (es)Tj 0 Tc 1.319 0 Td [(har)18(ed )-165(among )-165(multiple )-165(pr)18(ocesses )-165(and )-165(which )-165(kernel )-165(data )-165(str)4(uctur)18(es )-165(ar)18(e)]TJ -6.787 -1.2 Td [(involved. )-363(After)-364(describing )-113(these )-113(featur)18(es, )-113(we )-113(describe )-113(the)]TJ /TT1 1 Tf 26.71 0 Td (dup)Tj /T1_2 1 Tf (,)Tj /TT1 1 Tf 2.413 0 Td (fcntl)Tj /T1_2 1 Tf (,)Tj /TT1 1 Tf 3.613 0 Td (sync)Tj /T1_2 1 Tf (,)Tj /TT1 1 Tf 3.013 0 Td (fsync)Tj /T1_2 1 Tf (,)Tj -35.75 -1.2 Td (and)Tj /TT1 1 Tf 1.943 0 Td (ioctl)Tj /T1_2 1 Tf 3.25 0 Td (functions.)Tj /TT0 1 Tf 12 0 0 12 93.6009 206.4 Tm [(3.2 )-1332(File)-556(Descriptor)15(s)]TJ /T1_2 1 Tf -0.092 Tc 10 0 0 10 129.6009 182.4 Tm [(To )-363(t)]TJ 0 Tc 1.822 0 Td [(he )-179(kernel, )-179(all )-179(open )-179(\336les )-179(ar)]TJ 0.4292 Tc 12.205 0 Td (er)Tj 0 Tc 1.285 0 Td [(eferr)18(ed )-179(to )-179(by )-179(\336le )-179(descriptors.)]TJ 0.4292 Tc 14.091 0 Td (A\336)Tj 0 Tc 1.812 0 Td [(le )-179(descriptor )-179(is )-179(a)]TJ -31.215 -1.2 Td [(non-negative )-166(integer)]TJ 0.666 Tc 9.271 0 Td (.W)Tj 0 Tc 1.916 0 Td [(hen )-166(we )-166(open )-166(an )-166(existing )-166(\336le )-166(or )-166(cr)18(eate )-166(a )-166(new )-166(\336le, )-166(the )-166(kernel)]TJ -0.018 Tc -11.187 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-227(a )-227(\336le )-227(descriptor )-227(to )-227(the )-227(pr)18(ocess. )-477(When)-477(we )-227(want )-227(to )-227(r)18(ead )-227(or )-227(write )-227(a )-227(\336le, )-227(we)]TJ -0.856 -1.2 Td [(identify )-194(the )-194(\336le )-194(with )-194(the )-194(\336le )-194(descriptor )-194(that )-194(was )-194(r)16(eturned )-194(by)]TJ /TT1 1 Tf 28.877 0 Td (open)Tj /T1_2 1 Tf 2.844 0 Td (or)Tj /TT1 1 Tf 1.385 0 Td (creat)Tj /T1_2 1 Tf 3.444 0 Td [(as )-194(an)]TJ -36.55 -1.2 Td [(ar)18(gument to either)]TJ /TT1 1 Tf 8.48 0 Td (read)Tj /T1_2 1 Tf 2.65 0 Td (or)Tj /TT1 1 Tf 1.191 0 Td (write)Tj /T1_2 1 Tf (.)Tj /T1_4 1 Tf 9 0 0 9 510.6017 114 Tm (61)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46766 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (60)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(2.10 )-776(Summar)-10(y)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(Much )-86(has )-86(happened )-86(with )-86(the )-86(standar)18(dization )-86(of )-86(the )-86(UNIX )-86(pr)18(ogramming )-86(envir)22(onment)]TJ 0 -1.2 TD [(over )-3(the )-3(past )-3(two )-3(and )-3(a )-3(half )-3(decades.)]TJ -0.092 Tc 16.902 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ve )-3(described )-3(the )-3(dominant )-3(standar)17(ds )167(\321 )167(ISO)-254(C,)]TJ -18.289 -1.2 Td [(POSIX, )-87(and )-87(the )-87(Single )-87(UNIX )-87(Speci\336cation)]TJ 0.0833 Tc 18.989 0 Td (\321a)Tj 0 Tc 1.583 0 Td [(nd )-87(their )-87(ef)18(fect )-87(on )-87(the )-87(four )-87(platforms )-87(that)]TJ -20.573 -1.2 Td [(we\325ll )-11(examine )-11(in )-11(this )-11(text)]TJ 0.0833 Tc 11.173 0 Td (\321F)Tj -0.018 Tc 1.639 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-11(Linux, )-11(Mac )-11(OS )-11(X, )-11(and )-11(Solaris.)-511(These )-11(standar)18(ds )-11(try)]TJ -13.668 -1.2 Td [(to )-45(de\336ne )-45(certain )-45(parameters )-45(that )-45(can )-45(change )-45(with )-45(each )-45(implementation, )-45(but )-45(we\325ve )-45(seen)]TJ T* [(that )-345(these )-345(limits )-345(ar)]TJ 0.5947 Tc 9.191 0 Td (ei)Tj 0 Tc 1.365 0 Td [(mperfect. )-595(W)92(e\325ll )-345(encounter )-345(many )-345(of )-345(these )-345(limits )-345(and )-345(magic)]TJ -10.556 -1.2 Td [(constants as we pr)18(oceed thr)18(ough the text.)]TJ 1.8 -1.2 Td [(The )-102(bibliography )-102(speci\336es )-102(how )-102(to )-102(obtain )-102(copies )-102(of )-102(the )-102(standar)22(ds )-101(discussed )-101(in )-101(this)]TJ -1.8 -1.2 Td [(chapter)74(.)]TJ /TT0 1 Tf 11.9993 0 0 11.9993 129.592 506.9696 Tm [(Ex)10(er)20(cises)]TJ /T1_0 1 Tf 8.9995 0 0 8.9995 129.592 485.9708 Tm (2.1)Tj /T1_1 1 Tf -0.092 Tc 2.602 0 Td [(We )-320(m)]TJ 0 Tc 2.656 0 Td [(entioned )-136(in )-136(Section )-136(2.8 )-136(that )-136(some )-136(of )-136(the )-136(primitive )-136(system )-136(data )-136(types )-136(ar)]TJ 0.3857 Tc 32.586 0 Td (ed)Tj 0 Tc 1.476 0 Td [(e\336ned )-136(in)]TJ -36.717 -1.222 Td (mor)Tj 0.4543 Tc 1.806 0 Td (et)Tj 0 Tc 1.259 0 Td [(han )-204(one )-204(header)]TJ 0.7042 Tc 7.152 0 Td (.F)Tj 0 Tc 1.51 0 Td [(or )-204(example, )-204(in )-204(Fr)18(eeBSD )-204(8.0,)]TJ /TT1 1 Tf 13.385 0 Td (size_t)Tj /T1_1 1 Tf 4.054 0 Td [(is )-204(de\336ned )-204(in )-204(29 )-204(dif)17(fer)18(ent)]TJ -29.167 -1.222 Td [(headers. )-360(Because)-361(all )-110(29 )-110(headers )-110(could )-110(be )-110(included )-110(in )-110(a )-110(pr)15(ogram )-111(and )-111(because )-111(ISO )-111(C )-111(does)]TJ 0 -1.222 Td (not allow multiple)Tj /TT1 1 Tf 8.431 0 Td (typedef)Tj /T1_1 1 Tf 0.25 Tc (sf)Tj 0 Tc 5.207 0 Td (or the same name, how must the headers be written?)Tj /T1_0 1 Tf -16.24 -1.667 Td (2.2)Tj /T1_1 1 Tf 2.602 0 Td [(Examine )-282(your )-282(system\325s )-282(headers )-282(and )-282(list )-282(the )-282(actual )-282(data )-282(types )-282(used )-282(to )-282(implement )-282(the)]TJ 0 -1.222 TD (primitive system data types.)Tj /T1_0 1 Tf -2.602 -1.667 Td (2.3)Tj /T1_1 1 Tf 2.602 0 Td [(Update )-240(the )-240(pr)18(ogram )-240(in )-240(Figur)]TJ 0.4903 Tc 13.757 0 Td (e2)Tj 0 Tc 1.469 0 Td [(.17 )-240(to )-240(avoid )-240(the )-240(needless )-240(pr)18(ocessing )-240(that )-240(occurs )-240(when)]TJ /TT1 1 Tf -15.227 -1.222 Td (sysconf)Tj /T1_1 1 Tf -0.018 Tc 4.45 0 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj /TT1 1 Tf 2.58 0 Td (LONG_MAX)Tj /T1_1 1 Tf 5.05 0 Td (as the limit for)Tj /TT1 1 Tf 6.667 0 Td (OPEN_MAX)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46767 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (58)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(This )-52(causes )-52(the )-52(featur)]TJ 0.3019 Tc 9.695 0 Td (et)Tj 0 Tc 1.107 0 Td [(est )-52(macr)18(o)-302(to)-302(be)-302(de\336ned )-52(befor)]TJ 0.3019 Tc 13.048 0 Td (ea)Tj 0 Tc 1.281 0 Td [(ny )-52(header )-52(\336les )-52(ar)]TJ 0.302 Tc 7.766 0 Td (ei)Tj 0 Tc 1.072 0 Td [(ncluded )-52(by)]TJ -33.968 -1.2 Td [(the )-42(C )-42(pr)18(ogram. )-292(If)-291(we )-42(want )-42(to )-42(use )-42(only )-42(the )-42(POSIX.1 )-42(de\336nitions, )-42(we )-42(can )-42(also )-42(set )-42(the )-42(\336rst)]TJ 0 -1.2 TD [(line of a sour)18(ce \336le to)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 628.2623 Tm [(#define _POSIX_C_SOURCE)-1200(200809L)]TJ /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5912 610.2634 Tm [(To )-261(e)]TJ 0 Tc 1.873 0 Td [(nable )-77(the )-77(XSI )-77(option )-77(of )-77(V)111(ersion )-77(4 )-77(of )-77(the )-77(Single )-77(UNIX )-77(Speci\336cation, )-77(we )-77(need )-77(to)]TJ -3.673 -1.2 Td [(de\336ne )-132(the )-132(constant)]TJ /TT0 1 Tf 9.02 0 Td (_XOPEN_SOURCE)Tj /T1_1 1 Tf 8.182 0 Td [(to )-132(be )-132(700.)-632(Besides )-132(enabling )-132(the )-132(XSI )-132(option, )-132(this)]TJ -17.203 -1.2 Td [(has )-177(the )-177(same )-177(ef)18(fect )-177(as )-177(de\336ning)]TJ /TT0 1 Tf 14.749 0 Td (_POSIX_C_SOURCE)Tj /T1_1 1 Tf 9.427 0 Td [(to )-177(be )-177(200809L )-177(as )-177(far )-177(as )-177(POSIX.1)]TJ -24.176 -1.2 Td (functionality is concerned.)Tj 1.8 -1.2 Td [(The )-242(Single )-242(UNIX )-242(Speci\336cation )-242(de\336nes )-242(the)]TJ /TT0 1 Tf 20.164 0 Td (c99)Tj /T1_1 1 Tf 2.292 0 Td [(utility )-242(as )-242(the )-242(interface )-242(to )-242(the )-242(C)]TJ -24.256 -1.2 Td [(compilation envir)18(onment. )-250(W)55(ith it we can compile a \336le as follows:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 533.568 Tm (c99 -D_XOPEN_SOURCE=700 file.c -o file)Tj /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.592 515.5691 Tm [(To )-386(e)]TJ 0 Tc 1.998 0 Td [(nable )-202(the )-202(1999 )-202(ISO )-202(C )-202(extensions )-202(in )-202(the)]TJ /TT0 1 Tf 18.671 0 Td (gcc)Tj /T1_1 1 Tf 0.4517 Tc 2.252 0 Td (Cc)Tj 0 Tc 1.605 0 Td [(ompiler)74(,)-452(we)-452(u)1(se )-202(the)]TJ /TT0 1 Tf 9.675 0 Td (-std=c99)Tj /T1_1 1 Tf -34.2 -1.2 Td (option, as in)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 486.8708 Tm (gcc -D_XOPEN_SOURCE=700 -std=c99 file.c -o file)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5945 450.8729 Tm [(2.8 )-1332(Primitive)-556(System )-278(Data )-278(T)60(ypes)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5926 426.8744 Tm (Historically)Tj 0.5551 Tc 5.076 0 Td (,c)Tj 0 Tc 1.249 0 Td [(ertain )-305(C )-305(data )-305(types )-305(have )-305(been )-305(associated )-305(with )-305(certain )-305(UNIX )-305(system)]TJ -6.325 -1.2 Td [(variables. )-305(For)-304(example, )-55(major )-55(and )-55(minor )-55(device )-55(numbers )-55(have )-55(historically )-55(been )-55(stor)22(ed)]TJ 0 -1.2 Td [(in )-12(a )-12(16)]TJ 2.897 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-12(short )-12(integer)]TJ 0.2618 Tc 7.001 0 Td (,w)Tj 0 Tc 1.346 0 Td [(ith )-12(8 )-12(bits )-12(for )-12(the )-12(major )-12(device )-12(number )-12(and )-12(8 )-12(bits )-12(for )-12(the )-12(minor)]TJ -11.576 -1.2 Td [(device )-120(number)]TJ 0.6203 Tc 6.66 0 Td (.B)Tj 0 Tc 1.481 0 Td [(ut )-120(many )-120(lar)18(ger )-120(systems )-120(need )-120(mor)]TJ 0.3703 Tc 15.373 0 Td (et)Tj 0 Tc 1.175 0 Td [(han )-120(256 )-120(values )-120(for )-120(these )-120(device)]TJ -24.689 -1.2 Td [(numbers, )-68(so )-68(a )-68(dif)19(fer)18(ent )-68(technique )-68(is )-68(needed.)-568(\(Indeed, )-68(the )-68(32)]TJ 27.163 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-68(version )-68(of )-68(Solaris )-68(uses)]TJ -27.496 -1.2 Td [(32 bits for the device number: 14 bits for the major and 18 bits for the\ minor)74(.\))]TJ 1.8 -1.2 Td [(The )-100(header)]TJ /TT0 1 Tf 5.421 0 Td ()Tj /T1_1 1 Tf 8.15 0 Td [(de\336nes )-100(some )-100(implementation-dependent )-100(data )-100(types,)]TJ -15.371 -1.2 Td [(called )-207(the)]TJ /T1_2 1 Tf 4.917 0 Td [(primitive )-207(system )-207(data )-207(types)]TJ /T1_1 1 Tf 0.7072 Tc 11.705 0 Td (.M)Tj 0 Tc 1.903 0 Td [(or)18(e)-457(of)-457(these )-207(data )-207(types )-207(ar)]TJ 0.4571 Tc 12.057 0 Td (ed)Tj 0 Tc 1.547 0 Td [(e\336ned )-207(in )-207(other)]TJ -32.129 -1.2 Td [(headers )-216(as )-216(well.)-716(These )-216(data )-216(types )-216(ar)]TJ 0.4664 Tc 17.364 0 Td (ed)Tj 0 Tc 1.556 0 Td [(e\336ned )-216(in )-216(the )-216(headers )-216(with )-216(the )-216(C)]TJ /TT0 1 Tf 15.88 0 Td (typedef)Tj /T1_1 1 Tf -34.8 -1.2 Td (facility)Tj 0.5611 Tc 2.921 0 Td (.M)Tj 0 Tc 1.757 0 Td [(ost )-61(end )-61(in)]TJ /TT0 1 Tf 4.774 0 Td (_t)Tj /T1_1 1 Tf 0.5611 Tc (.F)Tj 0 Tc 2.567 0 Td (igur)Tj 0.3111 Tc 1.827 0 Td (e2)Tj 0 Tc 1.29 0 Td [(.21 )-61(lists )-61(many )-61(of )-61(the )-61(primitive )-61(system )-61(data )-61(types )-61(that)]TJ -15.137 -1.2 Td (we\325ll encounter in this text.)Tj 1.8 -1.2 Td [(By )-382(de\336ning )-382(these )-382(data )-382(types )-382(this )-382(way)110(,)-632(we)-632(do)-632(n)-1(ot )-382(build )-382(into )-382(our )-382(pr)17(ograms)]TJ -1.8 -1.2 Td [(implementation )-64(details )-64(that )-64(can )-64(change )-64(fr)18(om )-64(one )-64(system )-64(to )-64(another)]TJ 0.5636 Tc 30.254 0 Td (.W)Tj 0.3136 Tc 1.722 0 Td (ed)Tj 0 Tc 1.404 0 Td [(escribe )-64(what)]TJ -33.38 -1.2 Td (each of these data types is used for when we encounter them later in the\ text.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5955 234.8859 Tm [(2.9 )-1332(Diff)10(erences )-278(Between )-278(Standar)20(ds)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5932 210.8873 Tm [(All )-361(in )-361(all, )-361(these )-361(various )-361(standar)16(ds )-361(\336t )-361(together )-361(nicely)]TJ 0.8615 Tc 25.577 0 Td (.O)Tj 0 Tc 1.897 0 Td [(ur )-361(main )-361(concern )-361(is )-361(any)]TJ -27.475 -1.2 Td [(dif)18(fer)18(ences )-134(between )-134(the )-134(ISO )-134(C )-134(standar)]TJ 0.3841 Tc 17.53 0 Td (da)Tj 0 Tc 1.495 0 Td [(nd )-134(POSIX.1, )-134(since )-134(the )-134(Base )-134(Speci\336cations )-134(of)]TJ -19.026 -1.2 Td [(the )-347(Single )-347(UNIX )-347(Speci\336cation )-347(and )-347(POSIX.1 )-347(ar)]TJ 0.5971 Tc 22.18 0 Td (eo)Tj 0 Tc 1.622 0 Td [(ne )-347(and )-347(the )-347(same.)-847(Con\337icts )-347(ar)18(e)]TJ -23.802 -1.2 Td [(unintended, )-90(but )-90(if )-90(they )-90(should )-90(arise, )-90(POSIX.1 )-90(defers )-90(to )-90(the )-90(ISO )-90(C )-90(standar)22(d. )-340(However)74(,)]TJ T* (ther)Tj 0.25 Tc 1.764 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(s)]TJ 0 Tc 1.53 0 Td [(ome dif)18(fer)18(ences.)]TJ -2.723 -1.2 Td [(ISO )-179(C )-179(de\336nes )-179(the )-179(function)]TJ /TT0 1 Tf 12.775 0 Td (clock)Tj /T1_1 1 Tf 3.429 0 Td [(to )-179(r)18(eturn )-179(the )-179(amount )-179(of )-179(CPU )-179(time )-179(used )-179(by )-179(a)]TJ -18.004 -1.2 Td [(pr)18(ocess. )-273(The)-273(value )-23(r)18(eturned )-23(is )-23(a)]TJ /TT0 1 Tf 14.611 0 Td (clock_t)Tj /T1_1 1 Tf 4.473 0 Td [(value, )-23(but )-23(ISO )-23(C )-23(doesn\325t )-23(specify )-23(its )-23(units.)]TJ -0.092 Tc 18.85 0 Td (To)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46768 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(2.7)]TJ 35.026 0 Td (Featur)Tj 0.5 Tc 2.841 0 Td (eT)Tj 0 Tc 1.5 0 Td [(est )-250(Macr)18(os)]TJ /T1_1 1 Tf 6.966 0 Td (57)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (Figur)Tj 0.3163 Tc 2.383 0 Td (e2)Tj 0 Tc 1.295 0 Td [(.20 )-66(shows )-66(several )-66(con\336guration )-66(options )-66(and )-66(their )-66(corr)18(esponding )-66(values )-66(on)]TJ -5.478 -1.2 Td [(the )-224(four )-224(sample )-224(systems )-224(we )-224(discuss )-224(in )-224(this )-224(text.)-724(An )-224(entry )-224(is )-224(\324)41(\324unsupported\325)37(\325)-474(if)-474(the)]TJ 0 -1.2 Td [(system )-21(de\336nes )-21(the )-21(symbolic )-21(constant )-21(but )-21(it )-21(has )-21(a )-21(value )-21(of)]TJ /TT0 1 Tf 25.778 0 Td (!)Tj /T1_0 1 Tf [(1, )-21(or )-21(if )-21(it )-21(has )-21(a )-21(value )-21(of )-21(0 )-21(but)]TJ -25.778 -1.2 Td [(the )-75(corr)18(esponding)]TJ /TT1 1 Tf 8.472 0 Td (sysconf)Tj /T1_0 1 Tf 4.526 0 Td (or)Tj /TT1 1 Tf 1.266 0 Td (pathconf)Tj /T1_0 1 Tf 5.126 0 Td [(call )-75(r)18(eturned)]TJ /TT0 1 Tf 6.029 0 Td (!)Tj /T1_0 1 Tf [(1. )-325(It)-326(is )-76(inter)18(esting )-76(to )-76(see )-76(that)]TJ -25.419 -1.2 Td [(some )-83(system )-83(implementations )-83(haven\325t )-83(yet )-83(caught )-83(up )-83(to )-83(the )-83(latest )-83(version )-83(of )-83(the )-83(Single)]TJ 0 -1.2 TD (UNIX Speci\336cation.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1400.25 5866.25 cm 0 0 m 3692 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 440.1112 574.5311 Tm (Solaris 10)Tj -21.738 -1.25 Td [(Fr)18(eeBSD )-2819(Linux)-2785(Mac OS X)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4069.25 5706.25 cm 0 0 m 1023 0 l S Q Q BT /TT1 1 Tf 7.9986 0 0 7.9986 424.6915 558.4995 Tm [(UFS )-3571(PCFS)]TJ /T1_0 1 Tf -1.458 -1.25 Td [(\336le system)-1554(\336le system)]TJ -17.079 0.625 Td [(8.0)-4646(3.2.0)-4021(10.6.8)]TJ -10.862 1.25 Td (Limit)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1400.25 5446.25 cm 0 0 m 3692 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1400.25 5426.25 cm 0 0 m 3692 0 l S Q Q BT /TT1 1 Tf 7.9981 0 0 7.9981 143.9454 534.4717 Tm (_POSIX_CHOWN_RESTRICTED)Tj /T1_0 1 Tf 5.771 Tc 19.571 0 Td (11)Tj 0 Tc 10.097 0 Td [(2001)55(12 )]TJ 8.716 0 Td (1 )Tj 6.271 0 Td (1)Tj /TT1 1 Tf -44.655 -1.25 Td (_POSIX_JOB_CONTROL)Tj /T1_0 1 Tf 5.771 Tc 19.571 0 Td (11)Tj 0 Tc 10.097 0 Td [(2001)55(12 )]TJ 8.716 0 Td (1 )Tj 6.271 0 Td (1)Tj /TT1 1 Tf -44.655 -1.25 Td (_POSIX_NO_TRUNC)Tj /T1_0 1 Tf 5.771 Tc 19.571 0 Td (11)Tj 0 Tc 10.097 0 Td [(2001)55(12 )]TJ 8.716 0 Td [(1)-500(unsupported)]TJ /TT1 1 Tf -38.384 -1.25 Td (_POSIX_SAVED_IDS)Tj /T1_0 1 Tf 14.3 0 Td (unsupported )Tj 11.542 0 Td [(1)-3326(2001)55(12 )]TJ 12.542 0 Td (1 )Tj 6.271 0 Td (1)Tj /TT1 1 Tf -44.655 -1.25 Td (_POSIX_THREADS)Tj /T1_0 1 Tf 17.126 0 Td [(2001)55(12 )-3021(200809)-3326(2001)55(12 )-3076(2001)55(12 )-3076(2001)55(12)]TJ /TT1 1 Tf -17.126 -1.25 Td (_POSIX_VDISABLE)Tj /T1_0 1 Tf 18.571 0 Td (255 )Tj 7.271 0 Td [(0)-4771(255 )]TJ 12.542 0 Td (0 )Tj 6.271 0 Td (0)Tj /TT1 1 Tf -44.655 -1.25 Td (_POSIX_VERSION)Tj /T1_0 1 Tf 17.126 0 Td [(2001)55(12 )-3021(200809)-3326(2001)55(12 )-3076(2001)55(12 )-3076(2001)55(12)]TJ /TT1 1 Tf -17.126 -1.25 Td (_XOPEN_UNIX)Tj /T1_0 1 Tf 14.3 0 Td (unsupported )Tj 11.542 0 Td (1 )Tj 6.271 0 Td (1 )Tj 6.271 0 Td (1 )Tj 6.271 0 Td (1)Tj /TT1 1 Tf -44.655 -1.25 Td (_XOPEN_VERSION)Tj /T1_0 1 Tf 14.3 0 Td [(unsupported )-4521(700 )-4521(600 )-4521(600 )-4521(600)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1400.25 4506.25 cm 0 0 m 3692 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4570.25 4506.25 cm 0 0 m 0 1200 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4069.25 4506.25 cm 0 0 m 0 1360 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3567.25 4506.25 cm 0 0 m 0 1360 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3065.25 4506.25 cm 0 0 m 0 1360 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2564.25 4506.25 cm 0 0 m 0 1360 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5092.25 4506.25 cm 0 0 m 0 1360 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1400.25 4506.25 cm 0 0 m 0 1360 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 240.8437 432.4702 Tm (Figure 2.20)Tj /T1_0 1 Tf 5.695 0 Td (Examples of con\336guration options)Tj 9.997 0 0 9.997 147.5559 404.8785 Tm [(Note )-122(that)]TJ /TT1 1 Tf 4.659 0 Td (pathconf)Tj /T1_0 1 Tf -0.018 Tc 5.172 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-122(a )-122(value )-122(of)]TJ /TT0 1 Tf 7.633 0 Td (!)Tj /T1_0 1 Tf 0.3716 Tc (1f)Tj 0 Tc 1.754 0 Td (or)Tj /TT1 1 Tf 1.313 0 Td (_PC_NO_TRUNC)Tj /T1_0 1 Tf 7.572 0 Td [(when )-122(used )-122(with )-122(a)]TJ -30.758 -1.2 Td [(\336le )-58(fr)18(om )-58(a )-58(PCFS )-58(\336le )-58(system )-58(on )-58(Solaris.)-556(The )-58(PCFS )-58(\336le )-58(system )-58(supports )-58(the )-58(DOS )-58(format)]TJ T* [(\(for )-65(\337oppy )-65(disks\), )-65(and )-65(DOS )-65(\336lenames )-65(ar)]TJ 0.3149 Tc 18.195 0 Td (es)Tj 0 Tc 1.218 0 Td [(ilently )-65(tr)8(uncated )-65(to )-65(the )-65(8.3 )-65(format )-65(limit )-65(that)]TJ -19.413 -1.2 Td [(the DOS \336le system r)18(equir)18(es.)]TJ /TT2 1 Tf 11.9964 0 0 11.9964 93.5726 332.9001 Tm [(2.7 )-1332(Feature)]TJ -0.06 Tc 7.168 0 Td (Te)Tj 0 Tc 1.107 0 Td [(st )-278(Macr)20(os)]TJ /T1_0 1 Tf 9.997 0 0 9.997 129.5616 311.3066 Tm [(The )-82(headers )-82(de\336ne )-82(numer)18(ous )-82(POSIX.1 )-82(and )-82(XSI )-82(symbols, )-82(as )-82(we\325ve )-82(described.)-582(Even )-82(so,)]TJ T* [(most )-23(implementations )-23(can )-23(add )-23(their )-23(own )-23(de\336nitions )-23(to )-23(these )-23(headers, )-23(in )-23(addition )-23(to )-23(the)]TJ T* [(POSIX.1 )-70(and )-70(XSI )-70(de\336nitions.)-570(If )-70(we )-70(want )-70(to )-70(compile )-70(a )-70(pr)18(ogram )-70(so )-70(that )-70(it )-70(depends )-70(only)]TJ T* [(on )-441(the )-441(POSIX )-441(de\336nitions )-441(and )-441(doesn\325t )-441(con\337ict )-441(with )-441(any )-441(implementation-de\336ned)]TJ T* [(constants, )-23(we )-23(need )-23(to )-23(de\336ne )-23(the )-23(constant)]TJ /TT1 1 Tf 18.523 0 Td (_POSIX_C_SOURCE)Tj /T1_0 1 Tf 0.5228 Tc (.A)Tj 0 Tc 10.551 0 Td [(ll )-23(the )-23(POSIX.1 )-23(headers)]TJ -29.073 -1.2 Td [(use )-779(this )-779(constant )-779(to )-779(exclude )-779(any )-779(implementation-de\336ned )-779(de\336nitions )-779(when)]TJ /TT1 1 Tf T* (_POSIX_C_SOURCE)Tj /T1_0 1 Tf 9.25 0 Td (is de\336ned.)Tj 7.9976 0 0 7.9976 183.5452 219.3342 Tm [(Older )-242(versions )-242(of )-242(the )-242(POSIX.1 )-242(standar)]TJ 0.4921 Tc 17.984 0 Td (dd)Tj 0 Tc 1.714 0 Td [(e\336ned )-242(the)]TJ /TT1 1 Tf 5.127 0 Td (_POSIX_SOURCE)Tj /T1_0 1 Tf 8.292 0 Td [(constant. )-492(This)-492(was)]TJ -33.118 -1.25 Td (superseded by the)Tj /TT1 1 Tf 8.352 0 Td (_POSIX_C_SOURCE)Tj /T1_0 1 Tf 9.25 0 Td (constant in the 2001 version of POSIX.1.)Tj 9.997 0 0 9.997 147.5561 187.3438 Tm [(The )-338(constants)]TJ /TT1 1 Tf 7.004 0 Td (_POSIX_C_SOURCE)Tj /T1_0 1 Tf 9.588 0 Td (and)Tj /TT1 1 Tf 2.281 0 Td (_XOPEN_SOURCE)Tj /T1_0 1 Tf 8.388 0 Td (ar)Tj 0.5879 Tc 0.877 0 Td (ec)Tj 0 Tc 1.511 0 Td (alled)Tj /T1_2 1 Tf 2.76 0 Td (featur)Tj 0.5879 Tc 2.371 0 Td (et)Tj 0 Tc 1.31 0 Td (est)Tj -37.889 -1.2 Td [(macr)18(os)]TJ /T1_0 1 Tf 0.5039 Tc (.A)Tj 0 Tc 4.365 0 Td [(ll )-4(featur)]TJ 0.2539 Tc 3.454 0 Td (et)Tj 0 Tc 1.059 0 Td [(est )-4(macr)18(os )-4(begin )-4(with )-4(an )-4(underscor)19(e. )-254(When)-254(used, )-4(they )-4(ar)]TJ 0.2538 Tc 25.534 0 Td (et)Tj 0 Tc 1.059 0 Td (ypically)Tj -35.47 -1.2 Td (de\336ned in the)Tj /TT1 1 Tf 6.377 0 Td (cc)Tj /T1_0 1 Tf 1.45 0 Td (command, as in)Tj /TT1 1 Tf 8.9973 0 0 8.9973 147.556 146.656 Tm (cc -D_POSIX_C_SOURCE=200809L file.c)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46769 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(2.6)]TJ 40.777 0 Td (Options)Tj /T1_1 1 Tf 5.556 0 Td (53)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(For )-43(example, )-43(we )-43(can )-43(use )-43(the)]TJ /TT0 1 Tf 12.986 0 Td (ulimit)Tj /T1_0 1 Tf 3.893 0 Td [(command )-43(built )-43(into )-43(the )-43(Bourne-again )-43(shell )-43(to)]TJ -18.679 -1.2 Td [(change )-130(the )-130(maximum )-130(number )-130(of )-130(\336les )-130(our )-130(pr)18(ocesses )-130(can )-130(have )-130(open )-130(at )-130(one )-130(time.)-624(This)]TJ 0 -1.2 TD [(generally )-436(r)18(equir)18(es )-436(special )-436(\(super)8(user\) )-436(privileges )-436(if )-436(the )-436(limit )-436(is )-436(to )-436(be )-436(ef)16(fectively)]TJ T* [(unlimited. )-457(But)-458(once )-207(set )-207(to )-207(in\336nite,)]TJ /TT0 1 Tf 16.7 0 Td (sysconf)Tj /T1_0 1 Tf 4.657 0 Td [(will )-207(r)18(eport)]TJ /TT0 1 Tf 5.346 0 Td (LONG_MAX)Tj /T1_0 1 Tf 5.257 0 Td [(as )-207(the )-207(limit )-207(for)]TJ /TT0 1 Tf -31.961 -1.2 Td (OPEN_MAX)Tj /T1_0 1 Tf 0.5068 Tc (.A)Tj 0 Tc 6.592 0 Td [(pr)18(ogram )-7(that )-7(r)18(elies )-7(on )-7(this )-7(value )-7(as )-7(the )-7(upper )-7(bound )-7(of )-7(\336le )-7(descriptors )-7(to)]TJ -6.592 -1.2 Td [(close, )-79(as )-79(shown )-79(in )-79(Figur)]TJ 0.3288 Tc 10.898 0 Td (e2)Tj 0 Tc 1.308 0 Td [(.17, )-79(will )-79(waste )-79(a )-79(lot )-79(of )-79(time )-79(trying )-79(to )-79(close )-79(2,147,483,647 )-79(\336le)]TJ -12.205 -1.2 Td [(descriptors, most of which ar)18(en\325t even in use.)]TJ 1.8 -1.2 Td [(Systems )-95(that )-95(support )-95(the )-95(XSI )-95(option )-95(in )-95(the )-95(Single )-95(UNIX )-95(Speci\336cation )-95(will )-95(pr)22(ovide)]TJ -1.8 -1.2 Td (the)Tj /TT0 1 Tf 1.918 0 Td (getrlimit)Tj /T1_0 1 Tf 5.4 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.864 -0.04 Td [(function )-281(\(Section )-281(7.1)56(1\). )-531(It)-530(can )-281(be )-281(used )-281(to )-281(r)19(eturn )-281(the )-281(maximum)]TJ -9.014 -1.2 Td [(number )-37(of )-37(descriptors )-37(that )-37(a )-37(pr)18(ocess )-37(can )-37(have )-37(open.)]TJ -0.055 Tc 23.783 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-37(it, )-37(we )-37(can )-37(detect )-37(that )-37(ther)]TJ 0.2872 Tc 12.5 0 Td (ei)Tj 0 Tc 1.057 0 Td (s)Tj -38.576 -1.2 Td [(no )-73(con\336gur)18(ed )-73(upper )-73(bound )-73(to )-73(the )-73(number )-73(of )-73(open )-73(\336les )-73(our )-73(pr)17(ocesses )-73(can )-73(open, )-73(so )-73(we)]TJ T* [(can avoid this pr)18(oblem.)]TJ 7.9995 0 0 7.9995 183.5891 514.5691 Tm (The)Tj /TT0 1 Tf 1.981 0 Td (OPEN_MAX)Tj /T1_0 1 Tf 5.107 0 Td [(value )-57(is )-57(called )-57(r)8(untime )-57(invariant )-57(by )-57(POSIX, )-57(meaning )-57(that )-57(its )-57(value )-57(should )-57(not)]TJ -7.088 -1.25 Td [(change )-98(during )-98(the )-98(lifetime )-98(of )-98(a )-98(pr)16(ocess. )-348(But)-349(on )-98(systems )-98(that )-98(support )-98(the )-98(XSI )-98(option, )-98(we )-98(can)]TJ 0 -1.25 Td [(call )-21(the)]TJ /TT0 1 Tf 3.454 0 Td (setrlimit)Tj /T1_0 1 Tf 5.4 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.604 -0.04 Td [(function )-21(\(Section )-21(7.1)55(1\) )-21(to )-21(change )-21(this )-21(value )-21(for )-21(a )-21(r)11(unning )-21(pr)18(ocess. )-271(\(This)]TJ -10.291 -1.25 Td [(value )-86(can )-86(also )-86(be )-86(changed )-86(fr)18(om )-86(the )-86(C )-86(shell )-86(with )-86(the)]TJ /TT0 1 Tf 23.934 0 Td (limit)Tj /T1_0 1 Tf 3.336 0 Td [(command, )-86(and )-86(fr)18(om )-86(the )-86(Bourne,)]TJ -27.271 -1.25 Td [(Bourne-again, )-95(Debian )-95(Almquist, )-95(and )-95(Korn )-95(shells )-95(with )-95(the)]TJ /TT0 1 Tf 26.43 0 Td (ulimit)Tj /T1_0 1 Tf 3.946 0 Td [(command.\) )-345(If)-346(our )-95(system)]TJ -30.375 -1.25 Td [(supports )-39(this )-39(functionality)111(,)-289(we)-289(could )-39(change )-39(the )-39(function )-39(in )-39(Figur)]TJ 0.2889 Tc 29.254 0 Td (e2)Tj 0 Tc 1.268 0 Td [(.17 )-39(to )-39(call)]TJ /TT0 1 Tf 4.515 0 Td (sysconf)Tj /T1_0 1 Tf 4.489 0 Td (every)Tj -39.526 -1.25 Td (time it is called, not just the \336rst time.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5946 419.5748 Tm [(2.6 )-1332(Options)]TJ /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5924 397.9761 Tm [(We )-326(s)]TJ 0 Tc 2.203 0 Td [(aw )-142(the )-142(list )-142(of )-142(POSIX.1 )-142(options )-142(in )-142(Figur)]TJ 0.3921 Tc 17.918 0 Td (e2)Tj 0 Tc 1.371 0 Td [(.5 )-142(and )-142(discussed )-142(XSI )-142(option )-142(gr)18(oups )-142(in)]TJ -21.492 -1.2 Td [(Section )-225(2.2.3.)-725(If )-225(we )-225(ar)18(e)-475(to)-475(write )-225(portable )-225(applications )-225(that )-225(depend )-225(on )-225(any )-225(of )-225(these)]TJ 0 -1.2 Td [(optionally )-333(supported )-333(featur)18(es, )-333(we )-333(need )-333(a )-333(portable )-333(way )-333(to )-333(determine )-333(whether )-333(an)]TJ T* (implementation supports a given option.)Tj 1.8 -1.2 Td [(Just as with limits \(Section 2.5\), POSIX.1 de\336nes thr)18(ee ways to do this.)]TJ 0 -1.92 TD [(1. )-633(Compile-time)-250(options ar)]TJ 0.25 Tc 12.438 0 Td (ed)Tj 0 Tc 1.34 0 Td (e\336ned in)Tj /TT0 1 Tf 4.129 0 Td ()Tj /T1_0 1 Tf (.)Tj -17.907 -1.6 Td [(2. )-633(Runtime)-333(options )-83(that )-83(ar)]TJ 0.3327 Tc 12.39 0 Td (en)Tj 0 Tc 1.394 0 Td [(ot )-83(associated )-83(with )-83(a )-83(\336le )-83(or )-83(a )-83(dir)18(ectory )-83(ar)]TJ 0.3326 Tc 18.33 0 Td (ei)Tj 0 Tc 1.103 0 Td (denti\336ed)Tj -31.583 -1.2 Td (with the)Tj /TT0 1 Tf 3.92 0 Td (sysconf)Tj /T1_0 1 Tf 4.45 0 Td (function.)Tj -10.003 -1.6 Td [(3. )-633(Runtime)-317(options )-67(that )-67(ar)]TJ 0.3167 Tc 12.342 0 Td (ea)Tj 0 Tc 1.296 0 Td [(ssociated )-67(with )-67(a )-67(\336le )-67(or )-67(a )-67(dir)18(ectory )-67(ar)]TJ 0.3168 Tc 16.514 0 Td (ed)Tj 0 Tc 1.407 0 Td [(iscover)18(ed )-67(by)]TJ -29.925 -1.2 Td (calling either the)Tj /TT0 1 Tf 7.644 0 Td (pathconf)Tj /T1_0 1 Tf 5.05 0 Td (or the)Tj /TT0 1 Tf 2.828 0 Td (fpathconf)Tj /T1_0 1 Tf 5.65 0 Td (function.)Tj -22.805 -1.92 Td [(The )-60(options )-60(include )-60(the )-60(symbols )-60(listed )-60(in )-60(the )-60(thir)]TJ 0.3095 Tc 22.09 0 Td (dc)Tj 0 Tc 1.364 0 Td [(olumn )-59(of )-59(Figur)]TJ 0.3095 Tc 6.786 0 Td (e2)Tj 0 Tc 1.289 0 Td [(.5, )-59(as )-59(well )-59(as)]TJ -33.329 -1.2 Td [(the )-69(symbols )-69(listed )-69(in )-69(Figur)18(es )-69(2.19 )-69(and )-69(2.18.)-569(If )-69(the )-69(symbolic )-69(constant )-69(is )-69(not )-69(de\336ned, )-69(we)]TJ 0 -1.2 TD [(must )-236(use)]TJ /TT0 1 Tf 4.715 0 Td (sysconf)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.936 0 Td (pathconf)Tj /T1_0 1 Tf 0.4863 Tc (,o)Tj 0 Tc 6.082 0 Td (r)Tj /TT0 1 Tf 0.881 0 Td (fpathconf)Tj /T1_0 1 Tf 5.886 0 Td [(to )-236(determine )-236(whether )-236(the )-236(option )-236(is)]TJ -22.501 -1.2 Td [(supported. )-348(In)-348(this )-98(case, )-98(the)]TJ /T1_2 1 Tf 12.851 0 Td (name)Tj /T1_0 1 Tf 2.515 0 Td [(ar)18(gument )-98(to )-98(the )-98(function )-98(is )-98(formed )-98(by )-98(r)18(eplacing )-98(the)]TJ /TT0 1 Tf -15.366 -1.2 Td (_POSIX)Tj /T1_0 1 Tf 3.883 0 Td [(at )-33(the )-33(beginning )-33(of )-33(the )-33(symbol )-33(with)]TJ /TT0 1 Tf 16.217 0 Td (_SC)Tj /T1_0 1 Tf 2.083 0 Td (or)Tj /TT0 1 Tf 1.224 0 Td (_PC)Tj /T1_0 1 Tf 0.5328 Tc (.F)Tj 0 Tc 3.139 0 Td [(or )-33(constants )-33(that )-33(begin )-33(with)]TJ /TT0 1 Tf -26.546 -1.2 Td (_XOPEN)Tj /T1_0 1 Tf 0.3234 Tc (,t)Tj 0 Tc 4.499 0 Td (he)Tj /T1_2 1 Tf 1.384 0 Td (name)Tj /T1_0 1 Tf 2.49 0 Td [(ar)18(gument )-73(is )-73(formed )-73(by )-73(pr)18(epending )-73(the )-73(string )-73(with)]TJ /TT0 1 Tf 23.117 0 Td (_SC)Tj /T1_0 1 Tf 2.124 0 Td (or)Tj /TT0 1 Tf 1.264 0 Td (_PC)Tj /T1_0 1 Tf 0.5735 Tc (.F)Tj 0 Tc 3.179 0 Td (or)Tj -38.059 -1.2 Td [(example, )-188(if )-188(the )-188(constant)]TJ /TT0 1 Tf 11.491 0 Td (_POSIX_RAW_SOCKETS)Tj /T1_0 1 Tf 11.238 0 Td [(is )-188(unde\336ned, )-188(we )-188(can )-188(call)]TJ /TT0 1 Tf 12.071 0 Td (sysconf)Tj /T1_0 1 Tf -34.8 -1.2 Td [(with )-84(the)]TJ /T1_2 1 Tf 4.087 0 Td (name)Tj /T1_0 1 Tf 2.501 0 Td [(ar)18(gument )-84(set )-84(to)]TJ /TT0 1 Tf 7.408 0 Td (_SC_RAW_SOCKETS)Tj /T1_0 1 Tf 9.334 0 Td [(to )-84(determine )-84(whether )-84(the )-84(platform)]TJ -23.329 -1.2 Td [(supports )-136(the )-136(raw )-136(sockets )-136(option.)-635(If )-136(the )-136(constant)]TJ /TT0 1 Tf 22.501 0 Td (_XOPEN_UNIX)Tj /T1_0 1 Tf 6.986 0 Td [(is )-136(unde\336ned, )-136(we )-136(can)]TJ -29.487 -1.2 Td (call)Tj /TT0 1 Tf 1.872 0 Td (sysconf)Tj /T1_0 1 Tf 4.546 0 Td [(with )-96(the)]TJ /T1_2 1 Tf 4.112 0 Td (name)Tj /T1_0 1 Tf 2.513 0 Td [(ar)18(gument )-96(set )-96(to)]TJ /TT0 1 Tf 7.445 0 Td (_SC_XOPEN_UNIX)Tj /T1_0 1 Tf 8.746 0 Td [(to )-96(determine )-96(whether)]TJ -29.234 -1.2 Td (the platform supports the XSI option interfaces.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46770 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(2.5)]TJ 41.507 0 Td (Limits)Tj /T1_1 1 Tf 4.826 0 Td (49)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1520.25 6670.25 cm 0 0 m 3452 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 428.1383 654.9607 Tm (Solaris 10)Tj -21.738 -1.25 Td [(Fr)18(eeBSD )-2819(Linux)-2785(Mac OS X)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3949.25 6510.25 cm 0 0 m 1023 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 412.7185 638.9233 Tm [(UFS )-3571(PCFS)]TJ /T1_0 1 Tf -1.458 -1.25 Td [(\336le system)-1554(\336le system)]TJ -17.079 0.625 Td [(8.0)-4646(3.2.0)-4021(10.6.8)]TJ -9.362 1.25 Td (Limit)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1520.25 6250.25 cm 0 0 m 3452 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1520.25 6230.25 cm 0 0 m 3452 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 155.9519 614.8893 Tm (ARG_MAX)Tj /T1_0 1 Tf 13.821 0 Td [(262,144 )-2021(2,097,152)-3021(262,144 )-2021(2,096,640 )-2021(2,096,640)]TJ /TT0 1 Tf -13.821 -1.25 Td (ATEXIT_MAX)Tj /T1_0 1 Tf 16.071 0 Td [(32 )-271(2,147,483,647 )-271(2,147,483,647)-2811(no limit)-2811(no limit)]TJ /TT0 1 Tf -16.071 -1.25 Td (CHARCLASS_NAME_MAX)Tj /T1_0 1 Tf 12.44 0 Td [(no symbol)-4021(2,048 )]TJ 16.173 0 Td (14 )Tj 6.271 0 Td (14 )Tj 6.271 0 Td (14)Tj /TT0 1 Tf -41.155 -1.25 Td (CHILD_MAX)Tj /T1_0 1 Tf 14.821 0 Td [(1,760 )-3326(47,21)]TJ 4.771 Tc 8.021 0 Td (12)Tj 0 Tc 5.771 0 Td [(66 )-3771(8,021 )-3771(8,021)]TJ -28.613 -1.25 Td (clock ticks/second)Tj 15.571 0 Td [(128 )-4521(100 )-4521(100 )-4521(100 )-4521(100)]TJ /TT0 1 Tf -15.571 -1.25 Td (COLL_WEIGHTS_MAX)Tj /T1_0 1 Tf 4.771 Tc 16.571 0 Td (02)Tj 0 Tc 5.771 0 Td (55 )Tj 6.771 0 Td (2)Tj 5.771 0 Td (10 )Tj 6.271 0 Td (10)Tj /TT0 1 Tf -41.155 -1.25 Td (FILESIZEBITS)Tj /T1_0 1 Tf 16.071 0 Td (64 )Tj 6.271 0 Td (64 )Tj 6.271 0 Td (64 )Tj 6.271 0 Td [(41)-500(unsupported)]TJ /TT0 1 Tf -34.884 -1.25 Td (HOST_NAME_MAX)Tj /T1_0 1 Tf 15.571 0 Td (255 )Tj 6.771 0 Td [(64)-4771(255 )-4521(255 )-4521(255)]TJ /TT0 1 Tf -22.342 -1.25 Td (IOV_MAX)Tj /T1_0 1 Tf 14.821 0 Td [(1,024 )-3771(1,024)-4271(1024 )]TJ 20.063 0 Td (16 )Tj 6.271 0 Td (16)Tj /TT0 1 Tf -41.155 -1.25 Td (LINE_MAX)Tj /T1_0 1 Tf 14.821 0 Td [(2,048 )-3771(2,048 )-3771(2,048 )-3771(2,048 )-3771(2,048)]TJ /TT0 1 Tf -14.821 -1.25 Td (LINK_MAX)Tj /T1_0 1 Tf 14.321 0 Td [(32,767 )-3271(65,000 )-3271(32,767 )-3271(32,767)]TJ 27.334 0 Td (1)Tj /TT0 1 Tf -41.655 -1.25 Td (LOGIN_NAME_MAX)Tj /T1_0 1 Tf 16.071 0 Td [(17 )-4521(256 )-4521(255)]TJ 5.771 Tc 19.313 0 Td (99)Tj /TT0 1 Tf 0 Tc -35.384 -1.25 Td (MAX_CANON)Tj /T1_0 1 Tf 15.571 0 Td [(255 )-4521(255)-4021(1,024 )-4521(256 )-4521(256)]TJ /TT0 1 Tf -15.571 -1.25 Td (MAX_INPUT)Tj /T1_0 1 Tf 15.571 0 Td [(255 )-4521(255)-4021(1,024 )-4521(512 )-4521(512)]TJ /TT0 1 Tf -15.571 -1.25 Td (NAME_MAX)Tj /T1_0 1 Tf 15.571 0 Td [(255 )-4521(255 )-4521(255 )-4521(255)]TJ 26.084 0 Td (8)Tj /TT0 1 Tf -41.655 -1.25 Td (NGROUPS_MAX)Tj /T1_0 1 Tf 14.821 0 Td [(1,023 )-3271(65,536)]TJ 13.792 0 Td (16 )Tj 6.271 0 Td (16 )Tj 6.271 0 Td (16)Tj /TT0 1 Tf -41.155 -1.25 Td (OPEN_MAX)Tj /T1_0 1 Tf 14.821 0 Td [(3,520 )-3771(1,024)-4771(256 )-4521(256 )-4521(256)]TJ /TT0 1 Tf -14.821 -1.25 Td (PAGESIZE)Tj /T1_0 1 Tf 14.821 0 Td [(4,096 )-3771(4,096 )-3771(4,096 )-3771(8,192 )-3771(8,192)]TJ /TT0 1 Tf -14.821 -1.25 Td (PAGE_SIZE)Tj /T1_0 1 Tf 14.821 0 Td [(4,096 )-3771(4,096 )-3771(4,096 )-3771(8,192 )-3771(8,192)]TJ /TT0 1 Tf -14.821 -1.25 Td (PATH_MAX)Tj /T1_0 1 Tf 14.821 0 Td [(1,024 )-3771(4,096 )-3771(1,024 )-3771(1,024 )-3771(1,024)]TJ /TT0 1 Tf -14.821 -1.25 Td (PIPE_BUF)Tj /T1_0 1 Tf 15.571 0 Td [(512 )-3771(4,096)-4771(512 )-3771(5,120 )-3771(5,120)]TJ /TT0 1 Tf -15.571 -1.25 Td (RE_DUP_MAX)Tj /T1_0 1 Tf 15.571 0 Td [(255 )-3271(32,767)-4771(255 )-4521(255 )-4521(255)]TJ /TT0 1 Tf -15.571 -1.25 Td (STREAM_MAX)Tj /T1_0 1 Tf 14.821 0 Td (3,520 )Tj 7.521 0 Td (16 )Tj 6.271 0 Td [(20)-4771(256 )-4521(256)]TJ /TT0 1 Tf -28.613 -1.25 Td (SYMLINK_MAX)Tj /T1_0 1 Tf 14.821 0 Td [(1,024 )-2561(no)-250(limit )-4521(255)-4021(1,024 )-3771(1,024)]TJ /TT0 1 Tf -14.821 -1.25 Td (SYMLOOP_MAX)Tj /T1_0 1 Tf 16.071 0 Td [(32 )-2561(no)-250(limit )]TJ 12.542 0 Td (32 )Tj 6.271 0 Td (20 )Tj 6.271 0 Td (20)Tj /TT0 1 Tf -41.155 -1.25 Td (TTY_NAME_MAX)Tj /T1_0 1 Tf 15.571 0 Td (255 )Tj 6.771 0 Td [(32)-4771(255 )-4521(128 )-4521(128)]TJ /TT0 1 Tf -22.342 -1.25 Td (TZNAME_MAX)Tj /T1_0 1 Tf 15.571 0 Td (255 )Tj 7.271 0 Td [(6)-4771(255 )-2561(no)-250(limit )-2561(no)-250(limit)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1520.25 3510.25 cm 0 0 m 3452 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4450.25 3510.25 cm 0 0 m 0 3000 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3949.25 3510.25 cm 0 0 m 0 3160 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3447.25 3510.25 cm 0 0 m 0 3160 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2945.25 3510.25 cm 0 0 m 0 3160 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2444.25 3510.25 cm 0 0 m 0 3160 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4972.25 3510.25 cm 0 0 m 0 3160 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1520.25 3510.25 cm 0 0 m 0 3160 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 244.0974 332.9201 Tm (Figure 2.15)Tj /T1_0 1 Tf 5.695 0 Td (Examples of con\336guration limits)Tj /TT1 1 Tf 11.9971 0 0 11.9971 129.5691 301.7276 Tm [(2.5.5 )-556(Indeterminate)-556(Runtime )-278(Limits)]TJ /T1_0 1 Tf -0.092 Tc 9.9976 0 0 9.9976 129.5691 280.1328 Tm [(We )-208(m)]TJ 0 Tc 2.544 0 Td [(entioned )-24(that )-24(some )-24(of )-24(the )-24(limits )-24(can )-24(be )-24(indeterminate.)-523(The )-24(pr)18(oblem )-24(we )-24(encounter)]TJ -2.544 -1.2 Td [(is )-130(that )-130(if )-130(these )-130(limits )-130(ar)18(en\325t )-130(de\336ned )-130(in )-130(the)]TJ /TT0 1 Tf 19.455 0 Td ()Tj /T1_0 1 Tf 6.38 0 Td [(header)74(,)-380(we)-380(c)1(an\325t )-130(use )-130(them )-130(at)]TJ -25.835 -1.2 Td [(compile )-56(time.)-556(But )-56(they )-56(might )-56(not )-56(be )-56(de\336ned )-56(at )-56(r)9(untime )-56(if )-56(their )-56(value )-56(is )-56(indeterminate!)]TJ 0 -1.2 TD [(Let\325s )-78(look )-78(at )-78(two )-78(speci\336c )-78(cases: )-78(allocating )-78(storage )-78(for )-78(a )-78(pathname )-78(and )-78(determining )-78(the)]TJ T* (number of \336le descriptors.)Tj /TT1 1 Tf -0.03 Tc -3.6 -2.64 Td (Pa)Tj 0 Tc 1.193 0 Td (thnames)Tj /T1_0 1 Tf 2.407 -1.92 Td [(Many )-10(pr)18(ograms )-10(need )-10(to )-10(allocate )-10(storage )-10(for )-10(a )-10(pathname.)]TJ -0.09 Tc 25.557 0 Td (Ty)Tj 0 Tc 1.079 0 Td (pically)Tj 0.2598 Tc 2.863 0 Td (,t)Tj 0 Tc 0.836 0 Td [(he )-10(storage )-10(has )-10(been)]TJ -30.335 -1.2 Td [(allocated )-136(at )-136(compile )-136(time, )-136(and )-136(various )-136(magic )-136(numbers)]TJ 0.0833 Tc 24.974 0 Td (\321f)Tj 0 Tc 1.416 0 Td [(ew )-136(of )-136(which )-136(ar)]TJ 0.3861 Tc 6.96 0 Td (et)Tj 0 Tc 1.191 0 Td [(he )-136(corr)18(ect)]TJ -34.542 -1.2 Td [(value )167(\321 )167(have)-372(been )-121(used )-121(by )-121(dif)18(fer)18(ent )-121(pr)18(ograms )-121(as )-121(the )-121(array )-121(size: )-121(256, )-121(512, )-121(1024, )-121(or )-121(the)]TJ T* (standar)Tj 0.564 Tc 3.32 0 Td (dI)Tj 0 Tc 1.512 0 Td [(/O )-314(constant)]TJ /TT0 1 Tf 6.25 0 Td (BUFSIZ)Tj /T1_0 1 Tf 0.814 Tc (.T)Tj 0 Tc 5.277 0 Td [(he )-314(4.3BSD )-314(constant)]TJ /TT0 1 Tf 9.643 0 Td (MAXPATHLEN)Tj /T1_0 1 Tf 6.564 0 Td [(in )-314(the )-314(header)]TJ /TT0 1 Tf -32.566 -1.2 Td ()Tj /T1_0 1 Tf 8.05 0 Td [(is the corr)18(ect value, but many 4.3BSD applications didn\325t use it.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46771 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (42)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 129.5922 668.9599 Tm (2.5.4)Tj /TT1 1 Tf 3.058 0 Td (sysconf)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 5.034 0 Td (pathconf)Tj /TT0 1 Tf 0.556 Tc (,a)Tj 0 Tc 6.19 0 Td (nd)Tj /TT1 1 Tf 1.778 0 Td (fpathconf)Tj /TT0 1 Tf 5.956 0 Td (Functions)Tj /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.592 644.9613 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ve )-110(listed )-110(various )-110(minimum )-110(values )-110(that )-110(an )-110(implementation )-110(must )-110(support, )-110(but )-110(how)]TJ -1.387 -1.2 Td [(do )-55(we )-55(\336nd )-55(out )-55(the )-55(limits )-55(that )-55(a )-55(particular )-55(system )-55(actually )-55(supports?)-557(As )-55(we )-55(mentioned)]TJ 0 -1.2 TD (earlier)Tj 0.5952 Tc 2.756 0 Td (,s)Tj 0 Tc 1.269 0 Td [(ome )-345(of )-345(these )-345(limits )-345(might )-345(be )-345(available )-345(at )-345(compile )-345(time; )-345(others )-345(must )-345(be)]TJ -4.025 -1.2 Td [(determined )-45(at )-45(r)8(untime. )-295(W)92(e\325ve )-45(also )-45(mentioned )-45(that )-45(some )-45(limits )-45(don\325t )-45(change )-45(in )-45(a )-45(given)]TJ T* [(system, )-75(wher)18(eas )-75(others )-75(can )-75(change )-75(because )-75(they )-75(ar)]TJ 0.3248 Tc 23.014 0 Td (ea)Tj 0 Tc 1.304 0 Td [(ssociated )-75(with )-75(a )-75(\336le )-75(or )-75(dir)19(ectory)111(.)]TJ -24.318 -1.2 Td [(The r)8(untime limits ar)]TJ 0.25 Tc 9.358 0 Td (eo)Tj 0 Tc 1.275 0 Td [(btained by calling one of the following thr)18(ee functions.)]TJ /TT2 1 Tf 8.9995 0 0 8.9995 147.5909 568.2659 Tm (#include )Tj 0 -1.902 TD (long sysconf\(int)Tj /T1_2 1 Tf 10.2 0 Td (name)Tj /TT2 1 Tf (\);)Tj -10.2 -1.902 Td (long pathconf\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT2 1 Tf 0.6 Tc (,i)Tj 0 Tc 21.344 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (name)Tj /TT2 1 Tf (\);)Tj -23.144 -1.902 Td (long fpathconf\(int)Tj /T1_2 1 Tf 11.4 0 Td (fd)Tj /TT2 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (name)Tj /TT2 1 Tf (\);)Tj /T1_1 1 Tf -5.476 -1.902 Td [(All thr)18(ee r)18(eturn: corr)18(esponding value if OK,)]TJ /TT3 1 Tf 19.623 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or \(see later\))]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4953.25 cm 0 0 m 0 820 l 3900 820 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 481.7622 Tm [(The )-263(dif)18(fer)18(ence )-263(between )-263(the )-263(last )-263(two )-263(functions )-263(is )-263(that )-263(one )-263(takes )-263(a )-263(pathname )-263(as )-263(its)]TJ 0 -1.2 TD [(ar)18(gument and the other takes a \336le descriptor ar)18(gument.)]TJ 1.8 -1.2 Td (Figur)Tj 0.3792 Tc 2.383 0 Td (e2)Tj 0 Tc 1.358 0 Td (.1)Tj 0.3792 Tc 0.695 0 Td (1l)Tj 0 Tc 1.17 0 Td [(ists )-129(the)]TJ /T1_2 1 Tf 3.61 0 Td (name)Tj /T1_1 1 Tf 2.546 0 Td [(ar)18(guments )-129(that)]TJ /TT2 1 Tf 7.222 0 Td (sysconf)Tj /T1_1 1 Tf 4.579 0 Td [(uses )-129(to )-129(identify )-129(system )-129(limits.)]TJ -25.365 -1.2 Td [(Constants )-229(beginning )-229(with)]TJ /TT2 1 Tf 12.361 0 Td (_SC_)Tj /T1_1 1 Tf 2.879 0 Td (ar)Tj 0.4791 Tc 0.877 0 Td (eu)Tj 0 Tc 1.561 0 Td [(sed )-229(as )-229(ar)18(guments )-229(to)]TJ /TT2 1 Tf 9.956 0 Td (sysconf)Tj /T1_1 1 Tf 4.679 0 Td [(to )-229(identify )-229(the)]TJ -0.008 Tc -32.314 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td [(ntime )-166(limit.)-666(Figur)]TJ 0.4159 Tc 8.358 0 Td (e2)Tj 0 Tc 1.395 0 Td [(.12 )-166(lists )-166(the)]TJ /T1_2 1 Tf 5.641 0 Td (name)Tj /T1_1 1 Tf 2.583 0 Td [(ar)18(guments )-166(that )-166(ar)]TJ 0.4158 Tc 8.173 0 Td (eu)Tj 0 Tc 1.498 0 Td [(sed )-166(by)]TJ /TT2 1 Tf 3.455 0 Td (pathconf)Tj /T1_1 1 Tf 5.216 0 Td (and)Tj /TT2 1 Tf -37.307 -1.2 Td (fpathconf)Tj /T1_1 1 Tf 5.894 0 Td [(to )-244(identify )-244(system )-244(limits.)-744(Constants )-244(beginning )-244(with)]TJ /TT2 1 Tf 24.825 0 Td (_PC_)Tj /T1_1 1 Tf 2.895 0 Td (ar)Tj 0.4946 Tc 0.877 0 Td (eu)Tj 0 Tc 1.577 0 Td [(sed )-245(as)]TJ -36.067 -1.2 Td [(ar)18(guments to)]TJ /TT2 1 Tf 6.102 0 Td (pathconf)Tj /T1_1 1 Tf 5.05 0 Td (and)Tj /TT2 1 Tf 1.943 0 Td (fpathconf)Tj /T1_1 1 Tf 5.65 0 Td [(to identify the r)8(untime limit.)]TJ -0.092 Tc -16.945 -1.2 Td [(We )-426(n)]TJ 0 Tc 2.461 0 Td [(eed )-242(to )-242(look )-242(in )-242(mor)]TJ 0.4924 Tc 9.029 0 Td (ed)Tj 0 Tc 1.582 0 Td [(etail )-242(at )-242(the )-242(dif)17(fer)18(ent )-242(r)18(eturn )-242(values )-242(fr)18(om )-242(these )-242(thr)17(ee)]TJ -14.872 -1.2 Td (functions.)Tj 1.8 -1.92 Td [(1. )-633(All)-337(thr)18(ee )-87(functions )-87(r)17(eturn)]TJ /TT3 1 Tf 13.479 0 Td (!)Tj /T1_1 1 Tf 0.3375 Tc (1a)Tj 0 Tc 1.886 0 Td [(nd )-87(set)]TJ /TT2 1 Tf 3.097 0 Td (errno)Tj /T1_1 1 Tf 3.338 0 Td (to)Tj /TT2 1 Tf 1.209 0 Td (EINVAL)Tj /T1_1 1 Tf 3.938 0 Td [(if )-88(the)]TJ /T1_2 1 Tf 2.686 0 Td (name)Tj /T1_1 1 Tf 2.505 0 Td [(isn\325t )-88(one )-88(of)]TJ -30.505 -1.2 Td [(the )-138(appr)18(opriate )-138(constants.)-638(The )-138(thir)]TJ 0.3883 Tc 16.061 0 Td (dc)Tj 0 Tc 1.443 0 Td [(olumn )-138(in )-138(Figur)17(es )-138(2.1)]TJ 0.3882 Tc 9.424 0 Td (1a)Tj 0 Tc 1.388 0 Td [(nd )-138(2.12 )-138(lists )-138(the)]TJ -28.317 -1.2 Td [(limit constants we\325ll deal with thr)18(oughout the r)18(est of this book.)]TJ -1.633 -1.6 Td [(2. )-633(Some)]TJ /T1_2 1 Tf 4.354 0 Td (name)Tj /T1_1 1 Tf 0.2875 Tc (sc)Tj 0 Tc 3.322 0 Td [(an )-37(r)18(eturn )-37(either )-37(the )-37(value )-37(of )-37(the )-37(variable )-37(\(a )-37(r)18(eturn )-37(value)]TJ /TT3 1 Tf 25.256 0 Td (")Tj /T1_1 1 Tf 0.836 0 Td [(0\) )-37(or )-37(an)]TJ -32.136 -1.2 Td [(indication )-73(that )-73(the )-73(value )-73(is )-73(indeterminate.)-573(An )-73(indeterminate )-73(value )-73(is )-73(indicated)]TJ T* [(by r)18(eturning)]TJ /TT3 1 Tf 5.8 0 Td (!)Tj /T1_1 1 Tf 0.25 Tc (1a)Tj 0 Tc 1.799 0 Td (nd not changing the value of)Tj /TT2 1 Tf 12.944 0 Td (errno)Tj /T1_1 1 Tf (.)Tj -22.176 -1.6 Td [(3. )-633(The)-343(value )-93(r)18(eturned )-93(for)]TJ /TT2 1 Tf 12.244 0 Td (_SC_CLK_TCK)Tj /T1_1 1 Tf 6.943 0 Td [(is )-93(the )-93(number )-93(of )-93(clock )-93(ticks )-93(per )-93(second,)]TJ -17.554 -1.2 Td [(for use with the r)18(eturn values fr)18(om the)]TJ /TT2 1 Tf 17.35 0 Td (times)Tj /T1_1 1 Tf 3.25 0 Td (function \(Section 8.17\).)Tj -22.233 -1.92 Td [(Some )-102(r)18(estrictions )-102(apply )-102(to )-102(the)]TJ /TT2 1 Tf 13.908 0 Td (pathconf)Tj /T1_2 1 Tf 5.152 0 Td (pathname)Tj /T1_1 1 Tf 4.296 0 Td [(ar)18(gument )-102(and )-102(the)]TJ /TT2 1 Tf 8.443 0 Td (fpathconf)Tj /T1_2 1 Tf -33.6 -1.2 Td (fd)Tj /T1_1 1 Tf 1.028 0 Td [(ar)18(gument. )-250(If)-250(any of these r)18(estrictions isn\325t met, the r)18(esults ar)]TJ 0.25 Tc 26.715 0 Td (eu)Tj 0 Tc 1.332 0 Td (nde\336ned.)Tj -27.275 -1.92 Td [(1. )-633(The)]TJ -0.018 Tc 3.923 0 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(enced )-366(\336le )-366(for)]TJ /TT2 1 Tf 8.281 0 Td (_PC_MAX_CANON)Tj /T1_1 1 Tf 8.416 0 Td (and)Tj /TT2 1 Tf 2.309 0 Td (_PC_MAX_INPUT)Tj /T1_1 1 Tf 8.416 0 Td [(must )-366(be )-366(a)]TJ -30.567 -1.2 Td (terminal \336le.)Tj -1.633 -1.6 Td [(2. )-633(The)]TJ -0.018 Tc 3.562 0 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(enced )-5(\336le )-5(for)]TJ /TT2 1 Tf 7.198 0 Td (_PC_LINK_MAX)Tj /T1_1 1 Tf 7.455 0 Td (and)Tj /TT2 1 Tf 1.948 0 Td (_PC_TIMESTAMP_RESOLUTION)Tj /T1_1 1 Tf 14.655 0 Td (can)Tj -34.041 -1.2 Td [(be )-13(either )-13(a )-13(\336le )-13(or )-13(a )-13(dir)16(ectory)]TJ 0.5134 Tc 12.394 0 Td (.I)Tj 0.2634 Tc 1.1 0 Td (ft)Tj 0 Tc 0.922 0 Td [(he )-13(r)18(efer)18(enced )-13(\336le )-13(is )-13(a )-13(dir)16(ectory)]TJ 0.2635 Tc 13.522 0 Td (,t)Tj 0 Tc 0.839 0 Td [(he )-13(r)18(eturn )-13(value)]TJ -28.779 -1.2 Td [(applies to the dir)18(ectory itself, not to the \336lename entries within the dir)18(ectory)111(.)]TJ -1.633 -1.6 Td [(3. )-633(The)]TJ -0.018 Tc 3.79 0 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(enced )-233(\336le )-233(for)]TJ /TT2 1 Tf 7.881 0 Td (_PC_FILESIZEBITS)Tj /T1_1 1 Tf 10.083 0 Td (and)Tj /TT2 1 Tf 2.176 0 Td (_PC_NAME_MAX)Tj /T1_1 1 Tf 7.682 0 Td [(must )-232(be )-232(a)]TJ -30.834 -1.2 Td [(dir)18(ectory)]TJ 0.5 Tc 3.914 0 Td (.T)Tj 0 Tc 1.363 0 Td [(he r)18(eturn value applies to \336lenames within the dir)18(ectory)111(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46772 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(2.5)]TJ 41.507 0 Td (Limits)Tj /T1_1 1 Tf 4.826 0 Td (41)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Each )-447(of )-447(the )-447(25 )-447(invariant )-447(minimum )-447(values )-447(in )-447(Figur)]TJ 0.6974 Tc 25.548 0 Td (e2)Tj 0 Tc 1.676 0 Td [(.8 )-447(has )-447(an )-447(associated)]TJ -29.025 -1.2 Td [(implementation )-13(value )-13(whose )-13(name )-13(is )-13(formed )-13(by )-13(r)18(emoving )-13(the)]TJ /TT0 1 Tf 27.908 0 Td (_POSIX_)Tj /T1_0 1 Tf 4.463 0 Td [(pr)18(e\336x )-13(fr)18(om )-13(the)]TJ -32.371 -1.2 Td [(name )-86(in )-86(Figur)]TJ 0.3359 Tc 6.372 0 Td (e2)Tj 0 Tc 1.315 0 Td [(.8. )-336(The)-336(names )-86(without )-86(the )-86(leading)]TJ /TT0 1 Tf 16.012 0 Td (_POSIX_)Tj /T1_0 1 Tf 4.536 0 Td (wer)Tj 0.336 Tc 1.69 0 Td (ei)Tj 0 Tc 1.106 0 Td [(ntended )-86(to )-86(be )-86(the)]TJ -31.031 -1.2 Td [(actual )-95(values )-95(that )-95(a )-95(given )-95(implementation )-95(supports.)-595(\(These )-95(25 )-95(implementation )-95(values)]TJ 0 -1.2 TD (ar)Tj 0.481 Tc 0.877 0 Td (ef)Tj -0.018 Tc 1.293 0 Td (ro)Tj 0.481 Tc 0.923 0 Td (mi)Tj 0 Tc 1.655 0 Td [(tems )-231(1, )-231(4, )-231(5, )-231(and )-231(7 )-231(fr)18(om )-231(our )-231(list )-231(earlier )-231(in )-231(this )-231(section: )-231(2 )-231(of )-231(the )-231(r)7(untime)]TJ -4.748 -1.2 Td [(incr)18(easable )-98(values, )-98(15 )-98(of )-98(the )-98(r)8(untime )-98(invariant )-98(values, )-98(and )-98(7 )-98(of )-98(the )-98(pathname )-98(variable)]TJ T* [(values, )-22(along )-22(with)]TJ /TT0 1 Tf 8.437 0 Td (SSIZE_MAX)Tj /T1_0 1 Tf 5.672 0 Td [(fr)18(om )-22(the )-22(numeric )-22(values.\))-522(The )-22(pr)16(oblem )-22(is )-22(that )-22(not )-22(all )-22(of)]TJ -14.11 -1.2 Td (the 25 implementation values ar)Tj 0.25 Tc 14.186 0 Td (eg)Tj 0 Tc 1.285 0 Td (uaranteed to be de\336ned in the)Tj /TT0 1 Tf 13.506 0 Td ()Tj /T1_0 1 Tf 6.25 0 Td [(header)74(.)]TJ -33.427 -1.2 Td [(For )-17(example, )-17(a )-17(particular )-17(value )-17(may )-17(not )-17(be )-17(included )-17(in )-17(the )-17(header )-17(if )-17(its )-17(actual )-17(value)]TJ -1.8 -1.2 Td [(for )-44(a )-44(given )-44(pr)17(ocess )-45(depends )-45(on )-45(the )-45(amount )-45(of )-45(memory )-45(on )-45(the )-45(system.)-545(If )-45(the )-45(values )-45(ar)23(e)]TJ 0 -1.2 Td [(not )-215(de\336ned )-215(in )-215(the )-215(header)72(,)-465(we)-465(c)-1(an\325t )-215(use )-215(them )-215(as )-215(array )-215(bounds )-215(at )-215(compile )-215(time.)]TJ -0.092 Tc 37.933 0 Td (To)Tj 0 Tc -37.933 -1.2 Td [(determine )-226(the )-226(actual )-226(implementation )-226(value )-226(at )-226(r)8(untime, )-226(POSIX.1 )-226(decided )-226(to )-226(pr)16(ovide)]TJ T* [(thr)18(ee )-108(functions )-108(for )-108(us )-108(to )-108(call)-85(\321)]TJ /TT0 1 Tf 14.031 0 Td (sysconf)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.808 0 Td (pathconf)Tj /T1_0 1 Tf 0.3583 Tc (,a)Tj 0 Tc 5.908 0 Td (nd)Tj /TT0 1 Tf 1.551 0 Td (fpathconf)Tj /T1_0 1 Tf 0.6083 Tc (.T)Tj 0 Tc 6.871 0 Td (her)Tj 0.3583 Tc 1.438 0 Td (ei)Tj 0.3582 Tc 1.128 0 Td (ss)Tj 0 Tc 1.206 0 Td [(till )-108(a)]TJ -36.943 -1.2 Td [(pr)18(oblem, )-15(however)]TJ 0.2653 Tc 8.051 0 Td (,b)Tj 0 Tc 1.068 0 Td [(ecause )-15(some )-15(of )-15(the )-15(values )-15(ar)]TJ 0.2654 Tc 12.593 0 Td (ed)Tj 0 Tc 1.355 0 Td [(e\336ned )-15(by )-15(POSIX.1 )-15(as )-15(being )-15(possibly)]TJ -0.037 Tc -23.068 -1.2 Td (\324\324)Tj 0 Tc 0.519 0 Td (indeterminate\325)Tj 0.3826 Tc 6.465 0 Td (\325\()Tj 0 Tc 0.994 0 Td [(logically )-133(in\336nite\).)-632(This )-132(means )-132(that )-132(the )-132(value )-132(has )-132(no )-132(practical )-132(upper)]TJ -7.978 -1.2 Td [(bound. )-281(On)-282(Solaris, )-31(for )-31(example, )-31(the )-31(number )-31(of )-31(functions )-31(you )-31(can )-31(r)18(egister )-31(with)]TJ /TT0 1 Tf 35.4 0 Td (atexit)Tj /T1_0 1 Tf -35.4 -1.2 Td [(to )-37(be )-37(r)8(un )-37(when )-37(a )-37(pr)18(ocess )-37(ends )-37(is )-37(limited )-37(only )-37(by )-37(the )-37(amount )-37(of )-37(memory )-37(on )-37(the )-37(system.)]TJ T* (Thus)Tj /TT0 1 Tf 2.509 0 Td (ATEXIT_MAX)Tj /T1_0 1 Tf 6.287 0 Td [(is )-37(consider)18(ed )-37(indeterminate )-37(on )-37(Solaris.)]TJ -0.092 Tc 17.82 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-37(r)18(eturn )-37(to )-37(this )-37(pr)16(oblem)]TJ -28.003 -1.2 Td [(of indeterminate r)8(untime limits in Section 2.5.5.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 129.5917 416.975 Tm [(2.5.3 )-556(XSI)-556(Limits)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5917 392.9764 Tm [(The )-412(XSI )-412(option )-412(also )-412(de\336nes )-412(constants )-412(r)16(epr)18(esenting )-412(implementation )-412(limits.)-913(They)]TJ T* (include:)Tj 1.8 -1.92 Td [(1. )-633(Minimum)-250(values: the \336ve constants in Figur)]TJ 0.25 Tc 21.17 0 Td (e2)Tj 0 Tc 1.229 0 Td (.10)Tj -22.399 -1.6 Td [(2. )-633(Runtime)-250(invariant values, possibly indeterminate:)]TJ /TT0 1 Tf 24.019 0 Td (IOV_MAX)Tj /T1_0 1 Tf 4.45 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (PAGE_SIZE)Tj /T1_0 1 Tf -32.212 -1.92 Td [(The )-128(minimum )-128(values )-128(ar)]TJ 0.3778 Tc 10.962 0 Td (el)Tj 0 Tc 1.148 0 Td [(isted )-128(in )-128(Figur)]TJ 0.3778 Tc 6.143 0 Td (e2)Tj 0 Tc 1.357 0 Td [(.10. )-378(The)-378(last )-128(two )-128(illustrate )-128(the )-128(situation )-128(in)]TJ -19.609 -1.2 Td [(which )-215(the )-215(POSIX.1 )-215(minimums )-215(wer)]TJ 0.4647 Tc 16.178 0 Td (et)Tj 0 Tc 1.27 0 Td [(oo )-215(small)]TJ 0.0833 Tc 4.029 0 Td (\321p)Tj -0.018 Tc 1.684 0 Td (re)Tj 0 Tc 0.856 0 Td [(sumably )-215(to )-215(allow )-215(for )-215(embedded)]TJ -24.017 -1.2 Td [(POSIX.1 )-180(implementations)]TJ 0.0833 Tc 11.666 0 Td (\321s)Tj 0.4299 Tc 1.507 0 Td (os)Tj 0 Tc 1.4 0 Td [(ymbols )-180(with )-180(lar)18(ger )-180(minimum )-180(values )-180(wer)]TJ 0.43 Tc 19.001 0 Td (ea)Tj 0 Tc 1.409 0 Td [(dded )-180(for)]TJ -34.984 -1.2 Td (XSI-conforming systems.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1448.25 2646.25 cm 0 0 m 3596 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 402.0597 256.5692 Tm (Minimum)Tj -1.413 -1.25 Td (acceptable value)Tj -27.096 0.625 Td (Name)Tj 13.895 0 Td (Description)Tj -0.09 Tc 21.006 0 Td (Ty)Tj 0 Tc 1.079 0 Td (pical value)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1448.25 2426.25 cm 0 0 m 3596 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1448.25 2406.25 cm 0 0 m 3596 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 148.7772 232.5581 Tm (NL_LANGMAX)Tj /T1_0 1 Tf 36.555 0 Td (14 )Tj 6.394 0 Td (14)Tj -33.449 0 Td (maximum number of bytes in)Tj /TT0 1 Tf 13.394 0 Td (LANG)Tj /T1_0 1 Tf -11.144 -1.25 Td [(envir)18(onment variable)]TJ /TT0 1 Tf -11.75 -1.25 Td (NZERO)Tj /T1_0 1 Tf 36.555 0 Td (20 )Tj 6.394 0 Td (20)Tj -33.449 0 Td [(default pr)18(ocess priority)]TJ /TT0 1 Tf -9.5 -1.25 Td (_XOPEN_IOV_MAX)Tj /T1_0 1 Tf 36.555 0 Td (16 )Tj 6.394 0 Td (16)Tj -33.449 0 Td (maximum number of)Tj /TT0 1 Tf 9.683 0 Td (iovec)Tj /T1_0 1 Tf 3.25 0 Td [(str)8(uctur)18(es that)]TJ -10.683 -1.25 Td (can be used with)Tj /TT0 1 Tf 7.708 0 Td (readv)Tj /T1_0 1 Tf 3.25 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (writev)Tj -23.899 -1.25 Td (_XOPEN_NAME_MAX)Tj /T1_0 1 Tf 36.055 0 Td [(255 )-4644(255)]TJ -26.555 0 Td (number of bytes in a \336lename)Tj /TT0 1 Tf -9.5 -1.25 Td (_XOPEN_PATH_MAX)Tj /T1_0 1 Tf 35.305 0 Td [(1,024 )-3894(1,024)]TJ -25.805 0 Td (number of bytes in a pathname)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1448.25 1686.25 cm 0 0 m 3596 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4512.25 1686.25 cm 0 0 m 0 960 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3888.25 1686.25 cm 0 0 m 0 960 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2228.25 1686.25 cm 0 0 m 0 960 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5044.25 1686.25 cm 0 0 m 0 960 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1448.25 1686.25 cm 0 0 m 0 960 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 229.9808 150.5639 Tm (Figure 2.10)Tj /T1_0 1 Tf 5.695 0 Td [(XSI minimum values fr)18(om)]TJ /TT0 1 Tf 11.946 0 Td ()Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46773 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (38)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(particular )-164(system )-164(uses )-164(signed )-164(characters.)]TJ -0.092 Tc 19.37 0 Td [(We )-348(s)]TJ 0 Tc 2.225 0 Td [(ee )-164(that)]TJ /TT0 1 Tf 3.52 0 Td (CHAR_MIN)Tj /T1_1 1 Tf 5.214 0 Td (equals)Tj /TT0 1 Tf 3.271 0 Td (SCHAR_MIN)Tj /T1_1 1 Tf -33.6 -1.2 Td [(and )-182(that)]TJ /TT0 1 Tf 4.292 0 Td (CHAR_MAX)Tj /T1_1 1 Tf 5.232 0 Td (equals)Tj /TT0 1 Tf 3.289 0 Td (SCHAR_MAX)Tj /T1_1 1 Tf 0.6824 Tc (.I)Tj 0.4325 Tc 6.669 0 Td (ft)Tj 0 Tc 1.091 0 Td [(he )-182(system )-182(uses )-182(unsigned )-182(characters, )-182(we)]TJ -20.574 -1.2 Td (would have)Tj /TT0 1 Tf 5.511 0 Td (CHAR_MIN)Tj /T1_1 1 Tf 5.05 0 Td (equal to 0 and)Tj /TT0 1 Tf 6.498 0 Td (CHAR_MAX)Tj /T1_1 1 Tf 5.05 0 Td (equal to)Tj /TT0 1 Tf 3.805 0 Td (UCHAR_MAX)Tj /T1_1 1 Tf (.)Tj -24.114 -1.2 Td [(The )-300(\337oating-point )-300(data )-300(types )-300(in )-300(the )-300(header)]TJ /TT0 1 Tf 21.241 0 Td ()Tj /T1_1 1 Tf 5.95 0 Td [(have )-300(a )-300(similar )-300(set )-300(of)]TJ -28.991 -1.2 Td [(de\336nitions. )-250(Anyone)-250(doing serious \337oating-point work should examine this \336le.)]TJ 1.8 -1.2 Td [(Although )-22(the )-22(ISO )-22(C )-22(standar)]TJ 0.2716 Tc 12.414 0 Td (ds)Tj 0 Tc 1.307 0 Td [(peci\336es )-22(minimum )-22(acceptable )-22(values )-22(for )-22(integral )-22(data)]TJ -15.521 -1.2 Td [(types, )-345(POSIX.1 )-345(makes )-345(extensions )-345(to )-345(the )-345(C )-345(standar)20(d. )-595(T)]TJ 0.5946 Tc 26.474 0 Td (oc)Tj 0 Tc 1.585 0 Td [(onform )-345(to )-345(POSIX.1, )-345(an)]TJ -28.058 -1.2 Td [(implementation )-472(must )-472(support )-472(a )-472(minimum )-472(value )-472(of )-472(2,147,483,647 )-472(for)]TJ /TT0 1 Tf 34.55 0 Td (INT_MAX)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf -34.55 -1.2 Td (!)Tj /T1_1 1 Tf [(2,147,483,647 )-469(for)]TJ /TT0 1 Tf 9.011 0 Td (INT_MIN)Tj /T1_1 1 Tf 0.7189 Tc (,a)Tj 0 Tc 5.669 0 Td [(nd )-469(4,294,967,295 )-469(for)]TJ /TT0 1 Tf 10.374 0 Td (UINT_MAX)Tj /T1_1 1 Tf 0.9688 Tc (.B)Tj 0 Tc 6.63 0 Td [(ecause )-469(POSIX.1)]TJ -0.018 Tc -31.683 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(es )-78(implementations )-78(to )-78(support )-78(an )-78(8)]TJ 17.807 0.09 Td (-)Tj 0.333 -0.09 Td (bit)Tj /TT0 1 Tf 1.498 0 Td (char)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.978 0 Td (CHAR_BIT)Tj /T1_1 1 Tf 5.128 0 Td [(must )-78(be )-78(8,)]TJ /TT0 1 Tf 5.001 0 Td (SCHAR_MIN)Tj /T1_1 1 Tf -33.6 -1.2 Td (must be)Tj /TT1 1 Tf 3.768 0 Td (!)Tj /T1_1 1 Tf (128,)Tj /TT0 1 Tf 2.549 0 Td (SCHAR_MAX)Tj /T1_1 1 Tf 5.65 0 Td (must be 127, and)Tj /TT0 1 Tf 7.711 0 Td (UCHAR_MAX)Tj /T1_1 1 Tf 5.65 0 Td (must be 255.)Tj -23.528 -1.2 Td [(Another )-61(ISO )-61(C )-61(constant )-61(that )-61(we\325ll )-61(encounter )-61(is)]TJ /TT0 1 Tf 21.319 0 Td (FOPEN_MAX)Tj /T1_1 1 Tf 0.3108 Tc (,t)Tj 0 Tc 6.287 0 Td [(he )-61(minimum )-61(number)]TJ -29.406 -1.2 Td [(of )-55(standar)]TJ 0.3053 Tc 4.504 0 Td (dI)Tj 0 Tc 1.253 0 Td [(/O )-55(str)18(eams )-55(that )-55(the )-55(implementation )-55(guarantees )-55(can )-55(be )-55(open )-55(at )-55(once.)-559(This)]TJ -5.758 -1.2 Td [(constant )-61(is )-61(found )-61(in )-61(the)]TJ /TT0 1 Tf 10.935 0 Td ()Tj /T1_1 1 Tf 5.711 0 Td (header)Tj 0.3109 Tc 2.972 0 Td (,a)Tj 0 Tc 1.061 0 Td [(nd )-61(its )-61(minimum )-61(value )-61(is )-61(8.)-561(The )-61(POSIX.1)]TJ -20.678 -1.2 Td (value)Tj /TT0 1 Tf 2.688 0 Td (STREAM_MAX)Tj /T1_1 1 Tf [(,)-250(if)-250(de\336ned, must have the same value as)]TJ /TT0 1 Tf 24.138 0 Td (FOPEN_MAX)Tj /T1_1 1 Tf (.)Tj -25.026 -1.2 Td [(ISO )-291(C )-291(also )-291(de\336nes )-291(the )-291(constant)]TJ /TT0 1 Tf 15.659 0 Td (TMP_MAX)Tj /T1_1 1 Tf 4.741 0 Td (in)Tj /TT0 1 Tf 1.414 0 Td ()Tj /T1_1 1 Tf 0.7907 Tc (.I)Tj 0 Tc 6.778 0 Td [(t)-541(is)-541(t)1(he )-291(maximum)]TJ -30.391 -1.2 Td [(number )-23(of )-23(unique )-23(\336lenames )-23(generated )-23(by )-23(the)]TJ /TT0 1 Tf 20.547 0 Td (tmpnam)Tj /T1_1 1 Tf 3.873 0 Td [(function. )-273(W)92(e\325ll )-23(have )-23(mor)]TJ 0.2727 Tc 11.204 0 Td (et)Tj 0.2726 Tc 1.078 0 Td (os)Tj 0 Tc 1.243 0 Td (ay)Tj -37.944 -1.2 Td (about this constant in Section 5.13.)Tj 1.8 -1.2 Td [(Although )-132(ISO )-132(C )-132(de\336nes )-132(the )-132(constant)]TJ /TT0 1 Tf 17.209 0 Td (FILENAME_MAX)Tj /T1_1 1 Tf [(,)-382(we)-382(avoid )-132(using )-132(it, )-132(because)]TJ -19.009 -1.2 Td [(POSIX.1 )-344(pr)18(ovides )-344(better )-344(alternatives )-344(\()]TJ /TT0 1 Tf 17.987 0 Td (NAME_MAX)Tj /T1_1 1 Tf 5.394 0 Td (and)Tj /TT0 1 Tf 2.287 0 Td (PATH_MAX)Tj /T1_1 1 Tf [(\). )-594(W)92(e\325ll )-344(see )-344(these)]TJ -25.667 -1.2 Td [(constants shortly)111(.)]TJ 1.8 -1.2 Td (Figur)Tj 0.331 Tc 2.383 0 Td (e2)Tj 0 Tc 1.31 0 Td [(.7 )-81(shows )-81(the )-81(values )-81(of)]TJ /TT0 1 Tf 10.344 0 Td (FILENAME_MAX)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 7.781 0 Td (FOPEN_MAX)Tj /T1_1 1 Tf 0.3311 Tc (,a)Tj 0 Tc 6.481 0 Td (nd)Tj /TT0 1 Tf 1.524 0 Td (TMP_MAX)Tj /T1_1 1 Tf 4.531 0 Td [(on )-81(the)]TJ -36.154 -1.2 Td (four platforms we discuss in this book.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2038.25 3814.25 cm 0 0 m 2416 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 274.1631 373.3552 Tm [(Fr)18(eeBSD )-2048(Linux)-2014(Mac OS X)-1830(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-3625(3.2.0)-3250(10.6.8 )-3500(10)]TJ -7.176 0.625 Td (Limit)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2038.25 3594.25 cm 0 0 m 2416 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2038.25 3574.25 cm 0 0 m 2416 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 207.7626 349.3371 Tm (FOPEN_MAX)Tj /T1_1 1 Tf 11.7 0 Td [(20 )-4250(16 )-4250(20 )-4250(20)]TJ /TT0 1 Tf -11.7 -1.25 Td (TMP_MAX)Tj /T1_1 1 Tf 7.7 0 Td [(308,915,776 )-2000(238,328)-500(308,915,776 )-2500(17,576)]TJ /TT0 1 Tf -7.7 -1.25 Td (FILENAME_MAX)Tj /T1_1 1 Tf 10.7 0 Td [(1024 )-3250(4096 )-3250(1024 )-3250(1024)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2038.25 3254.25 cm 0 0 m 2416 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3994.25 3254.25 cm 0 0 m 0 560 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3554.25 3254.25 cm 0 0 m 0 560 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3114.25 3254.25 cm 0 0 m 0 560 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2674.25 3254.25 cm 0 0 m 0 560 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4454.25 3254.25 cm 0 0 m 0 560 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2038.25 3254.25 cm 0 0 m 0 560 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 248.1404 307.3262 Tm (Figure 2.7)Tj /T1_1 1 Tf 5.195 0 Td (ISO limits on various platforms)Tj /TT2 1 Tf 11.9971 0 0 11.9971 129.5691 266.536 Tm [(2.5.2 )-556(POSIX)-556(Limits)]TJ /T1_1 1 Tf 9.9976 0 0 9.9976 129.5691 242.5418 Tm [(POSIX.1 )-352(de\336nes )-352(numer)18(ous )-352(constants )-352(that )-352(deal )-352(with )-352(implementation )-352(limits )-352(of )-352(the)]TJ 0 -1.2 TD [(operating )-70(system.)-570(Unfortunately)]TJ 0.3202 Tc 14.694 0 Td (,t)Tj 0 Tc 0.896 0 Td [(his )-70(is )-70(one )-70(of )-70(the )-70(mor)]TJ 0.3203 Tc 9.292 0 Td (ec)Tj 0 Tc 1.243 0 Td [(onfusing )-70(aspects )-70(of )-70(POSIX.1.)]TJ -26.126 -1.2 Td [(Although )-40(POSIX.1 )-40(de\336nes )-40(numer)18(ous )-40(limits )-40(and )-40(constants, )-40(we\325ll )-40(concern )-40(ourselves )-40(with)]TJ T* [(only )-167(the )-167(ones )-167(that )-167(af)18(fect )-167(the )-167(base )-167(POSIX.1 )-167(interfaces.)-667(These )-167(limits )-167(and )-167(constants )-167(ar)14(e)]TJ T* (divided into the following seven categories:)Tj 1.8 -2.16 Td [(1. )-633(Numerical)-250(limits:)]TJ /TT0 1 Tf 9.606 0 Td (LONG_BIT)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 5.3 0 Td (SSIZE_MAX)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 6.4 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (WORD_BIT)Tj /T1_1 1 Tf -22.749 -1.6 Td [(2. )-633(Minimum)-250(values: the 25 constants in Figur)]TJ 0.25 Tc 20.521 0 Td (e2)Tj 0 Tc 1.229 0 Td (.8)Tj -21.75 -1.6 Td [(3. )-633(Maximum)-250(value:)]TJ /TT0 1 Tf 9.443 0 Td (_POSIX_CLOCKRES_MIN)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46774 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(2.5)]TJ 41.507 0 Td (Limits)Tj /T1_1 1 Tf 4.826 0 Td (37)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(2. )-633(Runtime)-250(limits not associated with a \336le or dir)18(ectory \(the)]TJ /TT0 1 Tf 27.064 0 Td (sysconf)Tj /T1_0 1 Tf 4.45 0 Td (function\))Tj -31.514 -1.48 Td [(3. )-633(Runtime)-308(limits )-58(that )-58(ar)]TJ 0.3082 Tc 11.507 0 Td (ea)Tj 0 Tc 1.287 0 Td [(ssociated )-58(with )-58(a )-58(\336le )-58(or )-58(a )-58(dir)17(ectory )-58(\(the)]TJ /TT0 1 Tf 17.605 0 Td (pathconf)Tj /T1_0 1 Tf 5.108 0 Td (and)Tj /TT0 1 Tf -33.874 -1.2 Td (fpathconf)Tj /T1_0 1 Tf 5.65 0 Td (functions\))Tj -0.092 Tc -9.083 -1.68 Td [(To )-222(f)]TJ 0 Tc 1.688 0 Td [(urther )-38(confuse )-38(things, )-38(if )-38(a )-38(particular )-38(r)7(untime )-38(limit )-38(does )-38(not )-38(vary )-38(on )-38(a )-38(given )-38(system,)]TJ -1.688 -1.2 Td [(it )-150(can )-150(be )-150(de\336ned )-150(statically )-150(in )-150(a )-150(header)]TJ 0.6502 Tc 17.637 0 Td (.I)Tj 0 Tc 1.237 0 Td [(f)-400(it)-400(is)-400(n)-1(ot )-150(de\336ned )-150(in )-150(a )-150(header)]TJ 0.4002 Tc 13.632 0 Td (,h)Tj 0 Tc 1.232 0 Td (owever)Tj 0.4002 Tc 3.224 0 Td (,t)Tj 0 Tc 0.976 0 Td (he)Tj -37.939 -1.2 Td [(application )-153(must )-153(call )-153(one )-153(of )-153(the )-153(thr)18(ee)]TJ /TT0 1 Tf 17.672 0 Td (conf)Tj /T1_0 1 Tf 2.803 0 Td [(functions )-153(\(which )-153(we )-153(describe )-153(shortly\) )-153(to)]TJ -20.475 -1.2 Td [(determine its value at r)8(untime.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 5694.25 cm 0 0 m 3917 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 348.7661 561.3326 Tm (Minimum)Tj -1.413 -1.25 Td (acceptable value)Tj -23.834 0.625 Td (Name)Tj 10.453 0 Td (Description)Tj -0.09 Tc 27.136 0 Td (Ty)Tj 0 Tc 1.079 0 Td (pical value)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 5474.25 cm 0 0 m 3917 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 5454.25 cm 0 0 m 3917 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 133.576 537.3033 Tm (CHAR_BIT)Tj /T1_0 1 Tf 7.5 0 Td (bits in a)Tj /TT0 1 Tf 3.717 0 Td (char)Tj /T1_0 1 Tf 12.549 Tc 23.198 0 Td (88)Tj /TT0 1 Tf 0 Tc -34.415 -1.25 Td (CHAR_MAX)Tj /T1_0 1 Tf 7.5 0 Td (max value of)Tj /TT0 1 Tf 5.966 0 Td (char)Tj /T1_0 1 Tf 17.16 0 Td (\(see later\))Tj 15.838 0 Td (127)Tj /TT0 1 Tf -46.464 -1.25 Td (CHAR_MIN)Tj /T1_0 1 Tf 7.5 0 Td (min value of)Tj /TT0 1 Tf 5.823 0 Td (char)Tj /T1_0 1 Tf 17.303 0 Td (\(see later\))Tj /TT1 1 Tf 15.289 0 Td (!)Tj /T1_0 1 Tf (128)Tj /TT0 1 Tf -45.915 -1.25 Td (SCHAR_MAX)Tj /T1_0 1 Tf 7.5 0 Td (max value of)Tj /TT0 1 Tf 5.966 0 Td (signed char)Tj /T1_0 1 Tf 19.949 0 Td (127 )Tj 13.049 0 Td (127)Tj /TT0 1 Tf -46.464 -1.25 Td (SCHAR_MIN)Tj /T1_0 1 Tf 7.5 0 Td (min value of)Tj /TT0 1 Tf 5.823 0 Td (signed char)Tj /TT1 1 Tf 19.543 0 Td (!)Tj /T1_0 1 Tf (127)Tj /TT1 1 Tf 13.049 0 Td (!)Tj /T1_0 1 Tf (128)Tj /TT0 1 Tf -45.915 -1.25 Td (UCHAR_MAX)Tj /T1_0 1 Tf 7.5 0 Td (max value of)Tj /TT0 1 Tf 5.966 0 Td (unsigned char)Tj /T1_0 1 Tf 19.949 0 Td (255 )Tj 13.049 0 Td (255)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 4834.25 cm 0 0 m 3917 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 133.5679 475.2859 Tm (INT_MAX)Tj /T1_0 1 Tf 7.5 0 Td (max value of)Tj /TT0 1 Tf 5.966 0 Td (int)Tj /T1_0 1 Tf 18.699 0 Td (32,767 )Tj 10.049 0 Td (2,147,483,647)Tj /TT0 1 Tf -42.214 -1.25 Td (INT_MIN)Tj /T1_0 1 Tf 7.5 0 Td (min value of)Tj /TT0 1 Tf 5.823 0 Td (int)Tj /TT1 1 Tf 18.293 0 Td (!)Tj /T1_0 1 Tf (32,767)Tj /TT1 1 Tf 10.049 0 Td (!)Tj /T1_0 1 Tf (2,147,483,648)Tj /TT0 1 Tf -41.665 -1.25 Td (UINT_MAX)Tj /T1_0 1 Tf 7.5 0 Td (max value of)Tj /TT0 1 Tf 5.966 0 Td (unsigned int)Tj /T1_0 1 Tf 18.699 0 Td (65,535 )Tj 10.049 0 Td (4,294,967,295)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 4514.25 cm 0 0 m 3917 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 133.5599 443.267 Tm (SHRT_MAX)Tj /T1_0 1 Tf 7.5 0 Td (max value of)Tj /TT0 1 Tf 5.966 0 Td (short)Tj /T1_0 1 Tf 18.699 0 Td (32,767 )Tj 13.049 0 Td (32,767)Tj /TT0 1 Tf -45.214 -1.25 Td (SHRT_MIN)Tj /T1_0 1 Tf 7.5 0 Td (min value of)Tj /TT0 1 Tf 5.823 0 Td (short)Tj /TT1 1 Tf 18.293 0 Td (!)Tj /T1_0 1 Tf (32,767)Tj /TT1 1 Tf 13.049 0 Td (!)Tj /T1_0 1 Tf (32,768)Tj /TT0 1 Tf -44.665 -1.25 Td (USHRT_MAX)Tj /T1_0 1 Tf 7.5 0 Td (max value of)Tj /TT0 1 Tf 5.966 0 Td (unsigned short)Tj /T1_0 1 Tf 18.699 0 Td (65,535 )Tj 13.049 0 Td (65,535)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 4194.25 cm 0 0 m 3917 0 l S Q Q BT /TT0 1 Tf 7.9971 0 0 7.9971 133.5519 411.2519 Tm (LONG_MAX)Tj /T1_0 1 Tf 7.5 0 Td (max value of)Tj /TT0 1 Tf 5.966 0 Td (long)Tj /T1_0 1 Tf 15.699 0 Td (2,147,483,647 )Tj 13.049 0 Td (2,147,483,647)Tj /TT0 1 Tf -42.214 -1.25 Td (LONG_MIN)Tj /T1_0 1 Tf 7.5 0 Td (min value of)Tj /TT0 1 Tf 5.823 0 Td (long)Tj /TT1 1 Tf 15.293 0 Td (!)Tj /T1_0 1 Tf (2,147,483,647)Tj /TT1 1 Tf 13.049 0 Td (!)Tj /T1_0 1 Tf (2,147,483,648)Tj /TT0 1 Tf -41.665 -1.25 Td (ULONG_MAX)Tj /T1_0 1 Tf 7.5 0 Td (max value of)Tj /TT0 1 Tf 5.966 0 Td (unsigned long)Tj /T1_0 1 Tf 15.699 0 Td (4,294,967,295 )Tj 13.049 0 Td (4,294,967,295)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 3874.25 cm 0 0 m 3917 0 l S Q Q BT /TT0 1 Tf 7.9966 0 0 7.9966 133.5439 379.2407 Tm (LLONG_MAX)Tj /T1_0 1 Tf 7.5 0 Td (max value of)Tj /TT0 1 Tf 5.966 0 Td (long long)Tj /T1_0 1 Tf 10.449 0 Td [(9,223,372,036,854,775,807 )-1799(9,223,372,036,854,775,807)]TJ /TT0 1 Tf -23.915 -1.25 Td (LLONG_MIN)Tj /T1_0 1 Tf 7.5 0 Td (min value of)Tj /TT0 1 Tf 5.823 0 Td (long long)Tj /TT1 1 Tf 10.043 0 Td (!)Tj /T1_0 1 Tf (9,223,372,036,854,775,807)Tj /TT1 1 Tf 13.049 0 Td (!)Tj /T1_0 1 Tf (9,223,372,036,854,775,808)Tj /TT0 1 Tf -36.415 -1.25 Td (ULLONG_MAX)Tj /T1_0 1 Tf 7.5 0 Td (max value of)Tj /TT0 1 Tf 5.966 0 Td (unsigned)Tj /T1_0 1 Tf 9.949 0 Td [(18,446,744,073,709,551,615 )-1299(18,446,744,073,709,551,615)]TJ /TT0 1 Tf -14.665 -1.25 Td (long long)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 3454.25 cm 0 0 m 3917 0 l S Q Q BT /TT0 1 Tf 7.9962 0 0 7.9962 133.5359 337.2381 Tm (MB_LEN_MAX)Tj /T1_0 1 Tf 7.5 0 Td (max number of bytes in a)Tj 12.549 Tc 26.915 0 Td (16)Tj 0 Tc -25.665 -1.25 Td (multibyte character constant)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 3234.25 cm 0 0 m 3917 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4189.25 3234.25 cm 0 0 m 0 2460 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3145.25 3234.25 cm 0 0 m 0 2460 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1876.25 3234.25 cm 0 0 m 0 2460 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5213.25 3234.25 cm 0 0 m 0 2460 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 3234.25 cm 0 0 m 0 2460 l S Q Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 228.6205 305.2351 Tm (Figure 2.6)Tj /T1_0 1 Tf 5.195 0 Td [(Sizes of integral values fr)18(om)]TJ /TT0 1 Tf 12.769 0 Td ()Tj /TT2 1 Tf 11.9935 0 0 11.9935 129.5302 269.2546 Tm [(2.5.1 )-556(ISO)]TJ 0.556 Tc 5.337 0 Td (CL)Tj 0 Tc 1.889 0 Td (imits)Tj /T1_0 1 Tf 9.9946 0 0 9.9946 129.5302 247.6662 Tm [(All )-24(of )-24(the )-24(compile-time )-24(limits )-24(de\336ned )-24(by )-24(ISO )-24(C )-24(ar)]TJ 0.2743 Tc 22.158 0 Td (ed)Tj 0 Tc 1.364 0 Td [(e\336ned )-24(in )-24(the )-24(\336le)]TJ /TT0 1 Tf 7.489 0 Td ()Tj /T1_0 1 Tf 6.274 0 Td (\(see)Tj -37.285 -1.2 Td (Figur)Tj 0.486 Tc 2.383 0 Td (e2)Tj 0 Tc 1.465 0 Td [(.6\). )-486(These)-486(constants )-236(don\325t )-236(change )-236(in )-236(a )-236(given )-236(system.)-736(The )-236(thir)]TJ 0.4859 Tc 29.347 0 Td (dc)Tj 0 Tc 1.541 0 Td [(olumn )-236(in)]TJ -34.736 -1.2 Td (Figur)Tj 0.2835 Tc 2.383 0 Td (e2)Tj 0 Tc 1.262 0 Td [(.6 )-33(shows )-33(the )-33(minimum )-33(acceptable )-33(values )-33(fr)15(om )-34(the )-34(ISO )-34(C )-34(standar)20(d. )-284(This)-283(allows)]TJ -3.646 -1.2 Td [(for )-348(a )-348(system )-348(with )-348(16)]TJ 10.29 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-348(integers )-348(using )-348(one\325s-complement )-348(arithmetic.)-848(The )-348(fourth)]TJ -10.623 -1.2 Td [(column )-333(shows )-333(the )-333(values )-333(fr)19(om )-333(a )-333(Linux )-333(system )-333(with )-333(32)]TJ 27.02 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-333(integers )-333(using )-333(two\325s-)]TJ -27.353 -1.2 Td [(complement )-185(arithmetic.)-686(Note )-185(that )-185(none )-185(of )-185(the )-185(unsigned )-185(data )-185(types )-185(has )-185(a )-185(minimum)]TJ 0 -1.2 TD [(value, )-27(as )-27(this )-27(value )-27(must )-27(be )-27(0 )-27(for )-27(an )-27(unsigned )-27(data )-27(type.)-527(On )-27(a )-27(64)]TJ 29.074 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-27(system, )-27(the )-27(values)]TJ -29.407 -1.2 Td (for)Tj /TT0 1 Tf 1.524 0 Td (long)Tj /T1_0 1 Tf 2.65 0 Td (integer maximums match the maximum values for)Tj /TT0 1 Tf 22.658 0 Td [(long )350(long)]TJ /T1_0 1 Tf 5.3 0 Td (integers.)Tj -30.332 -1.2 Td [(One )-251(dif)18(fer)18(ence )-251(that )-251(we )-251(will )-251(encounter )-251(is )-251(whether )-251(a )-251(system )-251(pr)18(ovides )-251(signed )-251(or)]TJ -1.8 -1.2 Td [(unsigned )-233(character )-233(values.)-732(Fr)18(om )-233(the )-233(fourth )-233(column )-233(in )-233(Figur)]TJ 0.4827 Tc 28.555 0 Td (e2)Tj 0 Tc 1.462 0 Td [(.6, )-233(we )-233(see )-233(that )-233(this)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46775 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (36)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(2.4 )-1332(Relationship)-556(of )-278(Standar)20(ds )-278(and )-278(Implementations)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(The )-41(standar)18(ds )-42(that )-42(we\325ve )-42(mentioned )-42(de\336ne )-42(a )-42(subset )-42(of )-42(any )-42(actual )-42(system.)-542(The )-42(focus )-42(of)]TJ 0 -1.2 TD [(this )-38(book )-38(is )-38(on )-38(four )-38(r)18(eal )-38(systems: )-38(Fr)18(eeBSD )-38(8.0, )-38(Linux )-38(3.2.0, )-38(Mac )-38(OS )-38(X )-38(10.6.8, )-38(and )-38(Solaris)]TJ T* [(10. )-386(Although)-386(only )-136(Mac )-136(OS )-136(X )-136(and )-136(Solaris )-136(can )-136(call )-136(themselves )-136(UNIX )-136(systems, )-136(all )-136(four)]TJ T* [(pr)18(ovide )-67(a )-67(similar )-67(pr)18(ogramming )-67(envir)19(onment. )-317(Because)-316(all )-67(four )-67(ar)]TJ 0.3166 Tc 29.316 0 Td (eP)Tj 0 Tc 1.4 0 Td [(OSIX )-67(compliant )-67(to)]TJ -30.716 -1.2 Td [(varying )-253(degr)18(ees, )-253(we )-253(will )-253(also )-253(concentrate )-253(on )-253(the )-253(featur)18(es )-253(r)16(equir)18(ed )-253(by )-253(the )-253(POSIX.1)]TJ -0 -1.2 Td [(standar)18(d, )-223(noting )-223(any )-223(dif)19(fer)18(ences )-223(between )-223(POSIX )-223(and )-223(the )-223(actual )-223(implementations )-223(of)]TJ -0 -1.2 Td [(these )-155(four )-155(systems.)-655(Those )-155(featur)18(es )-155(and )-155(r)18(outines )-155(that )-155(ar)]TJ 0.4046 Tc 25.517 0 Td (es)Tj 0 Tc 1.308 0 Td [(peci\336c )-155(to )-155(only )-155(a )-155(particular)]TJ -26.824 -1.2 Td [(implementation )-134(ar)]TJ 0.3841 Tc 8.321 0 Td (ec)Tj 0 Tc 1.307 0 Td [(learly )-134(marked.)]TJ -0.092 Tc 7.204 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-134(also )-134(note )-134(any )-134(featur)18(es )-134(that )-134(ar)]TJ 0.384 Tc 14.629 0 Td (er)Tj 0 Tc 1.24 0 Td [(equir)18(ed )-134(on)]TJ -34.088 -1.2 Td (UNIX systems but ar)Tj 0.25 Tc 9.238 0 Td (eo)Tj 0 Tc 1.275 0 Td (ptional on other POSIX-conforming systems.)Tj -8.713 -1.2 Td [(Be )-90(awar)]TJ 0.3403 Tc 3.641 0 Td (et)Tj 0 Tc 1.145 0 Td [(hat )-90(the )-90(implementations )-90(pr)18(ovide )-90(backwar)]TJ 0.3403 Tc 18.874 0 Td (dc)Tj 0 Tc 1.395 0 Td [(ompatibility )-90(for )-90(featur)18(es )-90(in)]TJ -26.856 -1.2 Td [(earlier )-182(r)18(eleases, )-182(such )-182(as )-182(SVR3.2 )-182(and )-182(4.3BSD.)-682(For )-182(example, )-182(Solaris )-182(supports )-182(both )-182(the)]TJ T* [(POSIX.1 )-45(speci\336cation )-45(for )-45(nonblocking )-45(I/O )-45(\()]TJ /TT1 1 Tf 19.54 0 Td (O_NONBLOCK)Tj /T1_1 1 Tf 0.2946 Tc (\)a)Tj 0 Tc 7.128 0 Td [(nd )-45(the )-45(traditional )-45(System )-45(V)]TJ -26.668 -1.2 Td [(method )-163(\()]TJ /TT1 1 Tf (O_NDELAY)Tj /T1_1 1 Tf [(\). )-413(In)-412(this )-163(text, )-163(we\325ll )-163(use )-163(only )-163(the )-163(POSIX.1 )-163(featur)20(e, )-163(although )-163(we\325ll)]TJ -0 -1.2 Td [(mention )-164(the )-164(nonstandar)]TJ 0.4139 Tc 10.934 0 Td (df)Tj 0 Tc 1.358 0 Td (eatur)Tj 0.4139 Tc 2.285 0 Td (et)Tj 0 Tc 1.219 0 Td [(hat )-164(it )-164(r)18(eplaces. )-414(Similarly)]TJ 0.4139 Tc 11.274 0 Td (,b)Tj 0 Tc 1.217 0 Td [(oth )-164(SVR3.2 )-164(and )-164(4.3BSD)]TJ -28.286 -1.2 Td [(pr)18(ovided )-8(r)18(eliable )-8(signals )-8(in )-8(a )-8(way )-8(that )-8(dif)18(fers )-8(fr)18(om )-8(the )-8(POSIX.1 )-8(standar)21(d. )-258(In)-257(Chapter )-8(10)]TJ 0 -1.2 Td (we describe only the POSIX.1 signal mechanism.)Tj /TT0 1 Tf 11.9993 0 0 11.9993 93.5943 428.9743 Tm [(2.5 )-1332(Limits)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5921 404.9757 Tm [(The )-90(implementations )-90(de\336ne )-90(many )-90(magic )-90(numbers )-90(and )-90(constants.)-594(Many )-91(of )-91(these )-91(have)]TJ T* [(been )-53(har)]TJ 0.3026 Tc 3.855 0 Td (dc)Tj 0 Tc 1.358 0 Td [(oded )-53(into )-53(pr)18(ograms )-53(or )-53(wer)]TJ 0.3025 Tc 12.115 0 Td (ed)Tj 0 Tc 1.392 0 Td [(etermined )-52(using )-52(ad )-52(hoc )-52(techniques.)]TJ -0.055 Tc 16.447 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-52(the)]TJ -36.403 -1.2 Td [(various )-134(standar)18(dization )-134(ef)18(forts )-134(that )-134(we\325ve )-134(described, )-134(mor)]TJ 0.384 Tc 26.125 0 Td (ep)Tj 0 Tc 1.464 0 Td [(ortable )-134(methods )-134(ar)]TJ 0.384 Tc 8.586 0 Td (en)Tj 0 Tc 1.445 0 Td (ow)Tj -37.62 -1.2 Td [(pr)18(ovided )-11(to )-11(determine )-11(these )-11(magic )-11(numbers )-11(and )-11(implementation-de\336ned )-11(limits, )-11(gr)22(eatly)]TJ T* [(impr)18(oving the portability of softwar)]TJ 0.25 Tc 15.974 0 Td (ew)Tj 0 Tc 1.563 0 Td [(ritten for the UNIX envir)18(onment.)]TJ -0.09 Tc -15.737 -1.2 Td (Tw)Tj 0.25 Tc 1.357 0 Td (ot)Tj 0 Tc 1.122 0 Td (ypes of limits ar)Tj 0.25 Tc 7.072 0 Td (en)Tj 0 Tc 1.311 0 Td (eeded:)Tj -10.862 -1.68 Td [(1. )-633(Compile-time)-250(limits \(e.g., what\325s the lar)18(gest value of a short integer?\))]TJ 0 -1.48 TD [(2. )-633(Runtime)-250(limits \(e.g., how many bytes in a \336lename?\))]TJ -1.8 -1.68 Td [(Compile-time )-34(limits )-34(can )-34(be )-34(de\336ned )-34(in )-34(headers )-34(that )-34(any )-34(pr)18(ogram )-34(can )-34(include )-34(at )-34(compile)]TJ 0 -1.2 TD [(time. )-263(But)]TJ -0.008 Tc 4.545 0 Td (ru)Tj 0 Tc 0.99 0 Td [(ntime )-13(limits )-13(r)18(equir)]TJ 0.2628 Tc 8.28 0 Td (et)Tj 0 Tc 1.068 0 Td [(he )-13(pr)18(ocess )-13(to )-13(call )-13(a )-13(function )-13(to )-13(obtain )-13(the )-13(limit\325s )-13(value.)]TJ -13.082 -1.2 Td (Additionally)Tj 0.5264 Tc 5.563 0 Td (,s)Tj 0 Tc 1.2 0 Td [(ome )-276(limits )-276(can )-276(be )-276(\336xed )-276(on )-276(a )-276(given )-276(implementation)]TJ 0.0833 Tc 24.639 0 Td (\321a)Tj 0 Tc 1.583 0 Td [(nd )-276(could)]TJ -34.785 -1.2 Td [(ther)18(efor)18(e)-402(be)-402(de\336ned )-152(statically )-152(in )-152(a )-152(header)]TJ 0.0833 Tc 19.24 0 Td (\321y)Tj 0 Tc 1.639 0 Td [(et )-152(vary )-152(on )-152(another )-152(implementation )-152(and)]TJ -20.879 -1.2 Td [(would )-15(r)18(equir)]TJ 0.2646 Tc 5.837 0 Td (ear)Tj 0 Tc 1.895 0 Td [(untime )-15(function )-15(call.)-514(An )-15(example )-15(of )-15(this )-15(type )-15(of )-15(limit )-15(is )-15(the )-15(maximum)]TJ -7.732 -1.2 Td [(number )-191(of )-191(bytes )-191(in )-191(a )-191(\336lename.)-688(Befor)]TJ 0.4405 Tc 17.394 0 Td (eS)Tj 0 Tc 1.444 0 Td [(VR4, )-190(System )-190(V )-190(historically )-190(allowed )-190(only )-190(14)]TJ -18.838 -1.2 Td [(bytes )-78(in )-78(a )-78(\336lename, )-78(wher)18(eas )-78(BSD-derived )-78(systems )-78(incr)18(eased )-78(this )-78(number )-78(to )-78(255.)-578(Most)]TJ T* [(UNIX )-47(System )-47(implementations )-47(these )-47(days )-47(support )-47(multiple )-47(\336le )-47(system )-47(types, )-47(and )-47(each)]TJ T* [(type )-51(has )-51(its )-51(own )-51(limit.)-550(This )-51(is )-51(the )-51(case )-51(of )-51(a )-51(r)8(untime )-51(limit )-51(that )-51(depends )-51(on )-51(wher)19(e)-301(in)-301(the)]TJ T* [(\336le )-2(system )-2(the )-2(\336le )-2(in )-2(question )-2(is )-2(located.)]TJ 0.2521 Tc 18.342 0 Td (A\336)Tj 0 Tc 1.635 0 Td [(lename )-2(in )-2(the )-2(r)18(oot )-2(\336le )-2(system, )-2(for )-2(example,)]TJ -19.977 -1.2 Td [(could )-210(have )-210(a )-210(14)]TJ 7.5 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-210(limit, )-210(wher)19(eas )-210(a )-210(\336lename )-210(in )-210(another )-210(\336le )-210(system )-210(could )-210(have )-210(a)]TJ -7.833 -1.2 Td (255)Tj 1.5 0.09 Td (-)Tj 0.333 -0.09 Td (byte limit.)Tj -0.092 Tc -0.033 -1.2 Td [(To )-184(s)]TJ 0 Tc 1.741 0 Td [(olve these pr)18(oblems, thr)18(ee types of limits ar)]TJ 0.25 Tc 19.216 0 Td (ep)Tj -0.018 Tc 1.33 0 Td (ro)Tj 0 Tc 0.923 0 Td (vided:)Tj -23.21 -1.68 Td [(1. )-633(Compile-time)-250(limits \(headers\))]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46776 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(2.3)]TJ 29.997 0 Td [(UNIX )-250(System )-250(Implementations)]TJ /T1_1 1 Tf 16.336 0 Td (35)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 129.5922 668.9599 Tm [(2.3.4 )-556(Lin)10(ux)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 647.3612 Tm [(Linux )-49(is )-49(an )-49(operating )-49(system )-49(that )-49(pr)18(ovides )-49(a )-49(rich )-49(pr)18(ogramming )-49(envir)18(onment )-49(similar )-49(to)]TJ 0 -1.2 TD [(that )-272(of )-272(a )-272(UNIX )-272(System; )-272(it )-272(is )-272(fr)18(eely )-272(available )-272(under )-272(the )-272(GNU )-272(Public )-272(License.)-779(The)]TJ T* [(popularity )-77(of )-77(Linux )-77(is )-77(somewhat )-77(of )-77(a )-77(phenomenon )-77(in )-77(the )-77(computer )-77(industry)]TJ 0.5767 Tc 34.529 0 Td (.L)Tj 0 Tc 1.438 0 Td [(inux )-77(is)]TJ -35.966 -1.2 Td [(distinguished by often being the \336rst operating system to support new\ har)18(dwar)18(e.)]TJ 1.8 -1.2 Td [(Linux )-269(was )-269(cr)19(eated )-269(in )-269(1991 )-269(by )-269(Linus )-269(T)92(orvalds )-269(as )-269(a )-269(r)18(eplacement )-269(for )-269(MINIX.)-765(A)]TJ -1.8 -1.2 Td [(grass-r)18(oots )-474(ef)18(fort )-474(then )-474(sprang )-474(up, )-474(wher)18(eby )-474(many )-474(developers )-474(acr)18(oss )-474(the )-474(world)]TJ T* [(volunteer)18(ed their time to use and enhance it.)]TJ 1.8 -1.2 Td [(The )-111(Ubuntu )-111(12.04 )-111(distribution )-111(of )-111(Linux )-111(was )-111(one )-111(of )-111(the )-111(operating )-111(systems )-111(used )-111(to)]TJ -1.8 -1.2 Td [(test )-176(the )-176(examples )-176(in )-176(this )-176(book.)-676(That )-176(distribution )-176(uses )-176(the )-176(3.2.0 )-176(version )-176(of )-176(the )-176(Linux)]TJ T* (operating system kernel.)Tj /TT0 1 Tf 11.9993 0 0 11.9993 129.5923 512.9692 Tm [(2.3.5 )-556(Mac)-556(OS )-278(X)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5923 491.3705 Tm [(Mac )-265(OS )-265(X )-265(is )-265(based )-265(on )-265(entir)18(ely )-265(dif)17(fer)18(ent )-265(technology )-265(than )-265(prior )-265(versions.)-765(The )-265(cor)18(e)]TJ T* [(operating )-33(system )-33(is )-33(called )-33(\324)35(\324Darwin,\325)]TJ 0.2836 Tc 16.219 0 Td (\325a)Tj 0 Tc 1.062 0 Td [(nd )-34(is )-34(based )-34(on )-34(a )-34(combination )-34(of )-34(the )-34(Mach )-34(kernel)]TJ -17.281 -1.2 Td [(\(Accetta )-36(et )-36(al.)]TJ 6.335 0.04 Td ([)Tj 0.333 -0.04 Td (1986)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td [(\), )-36(the )-36(Fr)18(eeBSD )-36(operating )-36(system, )-36(and )-36(an )-36(object-oriented )-36(framework)]TJ -9.001 -1.2 Td [(for )-77(drivers )-77(and )-77(other )-77(kernel )-77(extensions.)-577(As )-77(of )-77(version )-77(10.5, )-77(the )-77(Intel )-77(port )-77(of )-77(Mac )-77(OS )-77(X)]TJ T* [(has )-100(been )-100(certi\336ed )-100(to )-100(be )-100(a )-100(UNIX )-100(system.)-601(\(For )-100(mor)]TJ 0.3501 Tc 22.626 0 Td (ei)Tj 0 Tc 1.12 0 Td [(nformation )-100(on )-100(UNIX )-100(certi\336cation,)]TJ -23.746 -1.2 Td (see)Tj /TT1 1 Tf 1.632 0 Td (http://www.opengroup.org/certification/idx/unix.html)Tj /T1_0 1 Tf (.\))Tj 0.168 -1.2 Td [(Mac )-74(OS )-74(X )-74(version )-74(10.6.8)]TJ 11.273 0.04 Td (\()Tj 0.333 -0.04 Td [(Darwin )-75(10.8.0)]TJ 6.201 0.04 Td (\))Tj 0.658 -0.04 Td [(was )-75(used )-75(as )-75(one )-75(of )-75(the )-75(operating )-75(systems)]TJ -20.264 -1.2 Td (to test the examples in this book.)Tj /TT0 1 Tf 11.9993 0 0 11.9993 129.5924 380.9771 Tm [(2.3.6 )-556(Solaris)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5924 359.3784 Tm [(Solaris )-306(is )-306(the )-306(version )-306(of )-306(the )-306(UNIX )-306(System )-306(developed )-306(by )-306(Sun )-306(Micr)18(osystems )-306(\(now)]TJ T* [(Oracle\). )-292(Solaris)-293(is )-42(based )-42(on )-42(System )-42(V )-42(Release )-42(4, )-42(but )-42(includes )-42(mor)]TJ 0.2924 Tc 29.324 0 Td (et)Tj 0 Tc 1.097 0 Td [(han )-42(\336fteen )-42(years )-42(of)]TJ -30.422 -1.2 Td [(enhancements )-389(fr)18(om )-389(the )-389(engineers )-389(at )-389(Sun )-389(Micr)16(osystems. )-639(It)-640(is )-389(ar)18(guably )-389(the )-389(only)]TJ 0 -1.2 Td [(commer)18(cially )-295(successful )-295(SVR4 )-295(descendant, )-295(and )-295(is )-295(formally )-295(certi\336ed )-295(to )-295(be )-295(a )-295(UNIX)]TJ T* (system.)Tj 1.8 -1.2 Td [(In )-196(2005, )-196(Sun )-196(Micr)19(osystems )-196(r)18(eleased )-196(most )-196(of )-196(the )-196(Solaris )-196(operating )-196(system )-196(sour)20(ce)]TJ -1.8 -1.2 Td [(code )-253(to )-253(the )-253(public )-253(as )-253(part )-253(of )-253(the )-253(OpenSolaris )-253(open )-253(sour)18(ce )-253(operating )-253(system )-253(in )-253(an)]TJ T* [(attempt to build an external developer community ar)18(ound Solaris.)]TJ 1.8 -1.2 Td [(The )-214(Solaris )-214(10 )-214(UNIX )-214(system )-214(was )-214(one )-214(of )-214(the )-214(operating )-214(systems )-214(used )-214(to )-214(test )-214(the)]TJ -1.8 -1.2 Td (examples in this book.)Tj /TT0 1 Tf 11.9993 0 0 11.9993 129.5924 224.9865 Tm [(2.3.7 )-556(Other)-556(UNIX )-278(Systems)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5924 203.3878 Tm (Other versions of the UNIX system that have been certi\336ed in the past\ include)Tj 0.883 Tc 1.8 -2.04 Td (\245A)Tj 0 Tc 2.267 0 Td (IX, IBM\325s version of the UNIX System)Tj 0.883 Tc -2.267 -1.6 Td (\245H)Tj 0 Tc 2.321 0 Td (P)Tj 0.604 0.09 Td (-)Tj 0.333 -0.09 Td [(UX, Hewlett-Packar)18(d\325s version of the UNIX System)]TJ 0.883 Tc -3.258 -1.6 Td (\245I)Tj 0 Tc 1.826 0 Td (RIX, the UNIX System version shipped by Silicon Graphics)Tj 0.883 Tc -1.826 -1.6 Td (\245U)Tj 0 Tc 2.267 0 Td [(nixW)92(ar)18(e, the UNIX System descended fr)18(om SVR4 sold by SCO)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46777 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (34)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 129.5922 668.9599 Tm [(2.3.2 )-556(4.4BSD)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 647.3612 Tm [(The )-148(Berkeley )-148(Softwar)]TJ 0.3976 Tc 9.756 0 Td (eD)Tj 0 Tc 1.651 0 Td (istribution)Tj 5.026 0.04 Td (\()Tj 0.333 -0.04 Td (BSD)Tj 1.91 0.04 Td (\))Tj -0.018 Tc 0.731 -0.04 Td (re)Tj 0 Tc 0.856 0 Td [(leases )-148(wer)]TJ 0.3976 Tc 4.685 0 Td (ep)Tj -0.018 Tc 1.478 0 Td (ro)Tj 0 Tc 0.923 0 Td [(duced )-148(and )-148(distributed )-148(by)]TJ -27.347 -1.2 Td [(the )-317(Computer )-317(Systems )-317(Resear)18(ch )-317(Gr)18(oup)]TJ 19.224 0.04 Td (\()Tj 0.333 -0.04 Td (CSRG)Tj 2.665 0.04 Td (\))Tj 0.9 -0.04 Td [(at )-317(the )-317(University )-317(of )-317(California )-317(at)]TJ -23.122 -1.2 Td [(Berkeley; )-14(4.2BSD )-14(was )-14(r)19(eleased )-14(in )-14(1983 )-14(and )-14(4.3BSD )-14(in )-14(1986.)-514(Both )-14(of )-14(these )-14(r)18(eleases )-14(ran )-14(on)]TJ 0 -1.2 TD [(the )-23(V)111(AX )-23(minicomputer)]TJ 0.5235 Tc 10.24 0 Td (.T)Tj 0 Tc 1.386 0 Td [(he )-23(next )-23(r)17(elease, )-23(4.3BSD )-23(T)92(ahoe )-23(in )-23(1988, )-23(also )-23(ran )-23(on )-23(a )-23(particular)]TJ -11.626 -1.2 Td [(minicomputer )-72(called )-72(the )-72(T)93(ahoe. )-322(\(The)-321(book )-72(by )-72(Lef)18(\337er )-72(et )-72(al.)]TJ 26.722 0.04 Td ([)Tj 0.333 -0.04 Td (1989)Tj 2 0.04 Td (])Tj 0.655 -0.04 Td [(describes )-72(the )-72(4.3BSD)]TJ -0.092 Tc -29.71 -1.2 Td (Ta)Tj 0 Tc 1.021 0 Td [(hoe )-94(r)18(elease.\) )-344(This)-344(was )-94(followed )-94(in )-94(1990 )-94(with )-94(the )-94(4.3BSD )-94(Reno )-94(r)20(elease; )-94(4.3BSD )-94(Reno)]TJ -1.021 -1.2 Td [(supported many of the POSIX.1 featur)18(es.)]TJ 1.8 -1.2 Td [(The )-320(original )-320(BSD )-320(systems )-320(contained )-320(pr)18(oprietary )-320(A)74(T&T )-320(sour)18(ce )-320(code )-320(and )-320(wer)21(e)]TJ -1.8 -1.2 Td [(cover)18(ed )-152(by )-152(A)74(T&T )-152(licenses.)]TJ -0.092 Tc 12.841 0 Td [(To )-336(o)]TJ 0 Tc 2.015 0 Td [(btain )-152(the )-152(sour)18(ce )-152(code )-152(to )-152(the )-152(BSD )-152(system )-152(you )-152(had )-152(to)]TJ -14.856 -1.2 Td [(have )-70(a )-70(UNIX )-70(sour)18(ce )-70(license )-70(fr)18(om )-70(A)74(T&T)]TJ 0.57 Tc 17.795 0 Td (.T)Tj 0 Tc 1.433 0 Td [(his )-70(changed )-70(as )-70(mor)]TJ 0.32 Tc 8.741 0 Td (ea)Tj 0 Tc 1.299 0 Td [(nd )-70(mor)18(e)-320(of)-320(the )-70(A)74(T&T)]TJ -29.268 -1.2 Td [(sour)18(ce )-109(code )-109(was )-109(r)18(eplaced )-109(over )-109(the )-109(years )-109(with )-109(non-A)74(T&T )-109(sour)17(ce )-109(code )-109(and )-109(as )-109(many )-109(of)]TJ T* [(the new featur)18(es added to the Berkeley system wer)]TJ 0.25 Tc 22.502 0 Td (ed)Tj 0 Tc 1.34 0 Td [(erived fr)18(om non-A)74(T&T sour)18(ces.)]TJ -22.042 -1.2 Td [(In )-10(1989, )-10(Berkeley )-10(identi\336ed )-10(much )-10(of )-10(the )-10(non-A)74(T&T )-10(sour)18(ce )-10(code )-10(in )-10(the )-10(4.3BSD )-10(T)92(ahoe)]TJ -0.018 Tc -1.8 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(lease )-165(and )-165(made )-165(it )-165(publicly )-165(available )-165(as )-165(the )-165(BSD )-165(Networking )-165(Softwar)17(e, )-165(Release )-165(1.0.)]TJ -0.856 -1.2 Td [(Release )-44(2.0 )-44(of )-44(the )-44(BSD )-44(Networking )-44(Softwar)]TJ 0.2941 Tc 19.347 0 Td (ef)Tj 0 Tc 1.106 0 Td [(ollowed )-44(in )-44(1991, )-44(which )-44(was )-44(derived )-44(fr)17(om)]TJ -20.453 -1.2 Td [(the )-186(4.3BSD )-186(Reno )-186(r)18(elease. )-436(The)-436(intent )-186(was )-186(that )-186(most, )-186(if )-186(not )-186(all, )-186(of )-186(the )-186(4.4BSD )-186(system)]TJ T* [(would )-26(be )-26(fr)18(ee )-26(of )-26(A)74(T&T )-26(license )-26(r)18(estrictions, )-26(thus )-26(making )-26(the )-26(sour)17(ce )-26(code )-26(available )-26(to )-26(all.)]TJ 1.8 -1.2 Td (4.4BSD)Tj 3.16 0.09 Td (-)Tj 0.333 -0.09 Td [(Lite )-140(was )-140(intended )-140(to )-140(be )-140(the )-140(\336nal )-140(r)18(elease )-140(fr)18(om )-140(the )-140(CSRG.)-640(Its )-140(intr)18(oduction)]TJ -5.293 -1.2 Td [(was )-165(delayed, )-165(however)]TJ 0.4146 Tc 10.17 0 Td (,b)Tj 0 Tc 1.218 0 Td [(ecause )-165(of )-165(legal )-165(battles )-165(with )-165(USL.)-665(Once )-165(the )-165(legal )-165(dif)21(fer)18(ences)]TJ -11.388 -1.2 Td (wer)Tj 0.489 Tc 1.69 0 Td (er)Tj 0 Tc 1.345 0 Td [(esolved, )-239(4.4BSD)]TJ 7.294 0.09 Td (-)Tj 0.333 -0.09 Td [(Lite )-239(was )-239(r)18(eleased )-239(in )-239(1994, )-239(fully )-239(unencumber)18(ed, )-239(so )-239(no )-239(UNIX)]TJ -10.662 -1.2 Td [(sour)18(ce )-65(license )-65(was )-65(needed )-65(to )-65(r)18(eceive )-65(it.)-565(The )-65(CSRG )-65(followed )-65(this )-65(with )-65(a )-65(bug-\336x )-65(r)14(elease)]TJ T* [(in )-213(1995.)-713(This )-213(r)18(elease, )-213(4.4BSD)]TJ 13.576 0.09 Td (-)Tj 0.333 -0.09 Td [(Lite, )-213(r)18(elease )-213(2, )-213(was )-213(the )-213(\336nal )-213(version )-213(of )-213(BSD )-213(fr)18(om )-213(the)]TJ -13.909 -1.2 Td [(CSRG. )-250(\(This)-250(version of BSD is described in the book by McKusick et al.)]TJ 31.831 0.04 Td ([)Tj 0.333 -0.04 Td (1996)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td (.\))Tj -32.697 -1.2 Td [(The )-23(UNIX )-23(system )-23(development )-23(done )-23(at )-23(Berkeley )-23(started )-23(with )-23(PDP)]TJ 29.648 0.09 Td (-)Tj -0.055 Tc 0.333 -0.09 Td (11)Tj 0 Tc 0.945 0 Td [(s, )-23(then )-23(moved)]TJ -32.726 -1.2 Td [(to )-112(the )-112(V)111(AX )-112(minicomputer)]TJ 0.3621 Tc 11.651 0 Td (,a)Tj 0 Tc 1.112 0 Td [(nd )-112(then )-112(to )-112(other )-112(so-called )-112(workstations.)-613(During )-112(the )-112(early)]TJ -12.763 -1.2 Td [(1990s, )-436(support )-436(was )-436(pr)18(ovided )-436(to )-436(Berkeley )-436(for )-436(the )-436(popular )-436(80386)]TJ 31.596 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-436(personal)]TJ -31.929 -1.2 Td [(computers, )-78(leading )-78(to )-78(what )-78(is )-78(called )-78(386BSD.)-578(This )-78(support )-78(was )-78(pr)18(ovided )-78(by )-78(Bill )-78(Jolitz)]TJ T* [(and )-158(was )-158(documented )-158(in )-158(a )-158(series )-158(of )-158(monthly )-158(articles )-158(in)]TJ /T1_2 1 Tf 25.626 0 Td (Dr)Tj 0.4079 Tc 1.093 0 Td (.D)Tj 0 Tc 1.436 0 Td (obb\325)Tj 0.4079 Tc 1.593 0 Td (sJ)Tj 0 Tc 1.13 0 Td (ournal)Tj /T1_1 1 Tf 3.075 0 Td [(thr)18(oughout)]TJ -33.953 -1.2 Td [(1991. )-250(Much)-250(of this code appear)18(ed in the BSD Networking Softwar)18(e, Release 2.0.)]TJ /TT0 1 Tf 11.9993 0 0 11.9993 129.5933 284.9829 Tm [(2.3.3 )-556(FreeBSD)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5933 263.3842 Tm [(Fr)18(eeBSD )-304(is )-304(based )-304(on )-304(the )-304(4.4BSD)]TJ 15.528 0.09 Td (-)Tj 0.333 -0.09 Td [(Lite )-304(operating )-304(system.)-804(The )-304(Fr)18(eeBSD )-304(pr)18(oject )-304(was)]TJ -15.861 -1.2 Td [(formed )-158(to )-158(carry )-158(on )-158(the )-158(BSD )-158(line )-158(after )-158(the )-158(Computing )-158(Science )-158(Resear)18(ch )-158(Gr)18(oup )-158(at )-158(the)]TJ T* [(University )-49(of )-49(California )-49(at )-49(Berkeley )-49(decided )-49(to )-49(end )-49(its )-49(work )-49(on )-49(the )-49(BSD )-49(versions )-49(of )-49(the)]TJ T* [(UNIX operating system, and the 386BSD pr)18(oject seemed to be neglected for too long.)]TJ 1.8 -1.2 Td [(All )-42(softwar)]TJ 0.2919 Tc 4.992 0 Td (ep)Tj -0.018 Tc 1.372 0 Td (ro)Tj 0 Tc 0.923 0 Td [(duced )-42(by )-42(the )-42(Fr)18(eeBSD )-42(pr)18(oject )-42(is )-42(fr)19(eely )-42(available )-42(in )-42(both )-42(binary )-42(and)]TJ -9.087 -1.2 Td [(sour)18(ce )-31(forms.)-531(The )-31(Fr)18(eeBSD )-31(8.0 )-31(operating )-31(system )-31(was )-31(one )-31(of )-31(the )-31(four )-31(operating )-31(systems)]TJ T* (used to test the examples in this book.)Tj 7.9995 0 0 7.9995 179.9908 171.3897 Tm [(Several )-606(other )-606(BSD)]TJ 9.185 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-606(fr)18(ee )-606(operating )-606(systems )-606(ar)]TJ 0.8565 Tc 16.33 0 Td (ea)Tj 0 Tc 1.835 0 Td [(vailable. )-856(The)-857(NetBSD )-606(pr)18(oject)]TJ -27.683 -1.25 Td (\()Tj /TT1 1 Tf (http://www.netbsd.org)Tj /T1_1 1 Tf [(\))-528(is)-528(s)-1(imilar )-278(to )-278(the )-278(Fr)17(eeBSD )-278(pr)18(oject, )-278(but )-278(emphasizes )-278(portability)]TJ 0 -1.25 Td [(between )-120(har)18(dwar)]TJ 0.3705 Tc 7.884 0 Td (ep)Tj 0 Tc 1.45 0 Td [(latforms. )-370(The)-371(OpenBSD )-120(pr)18(oject )-120(\()]TJ /TT1 1 Tf 15.052 0 Td (http://www.openbsd.org)Tj /T1_1 1 Tf [(\))-370(is)-370(s)-1(imilar)]TJ -24.386 -1.25 Td [(to Fr)18(eeBSD but places a gr)18(eater emphasis on security)111(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46778 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(2.3)]TJ 29.997 0 Td [(UNIX )-250(System )-250(Implementations)]TJ /T1_1 1 Tf 16.336 0 Td (33)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-269(ef)18(fect )-269(of )-269(the )-269(POSIX.1 )-269(FIPS )-269(was )-269(to )-269(r)17(equir)]TJ 0.5192 Tc 21.478 0 Td (ea)Tj 0 Tc 1.498 0 Td [(ny )-269(vendor )-269(that )-269(wished )-269(to )-269(sell)]TJ -24.776 -1.2 Td [(POSIX.1-compliant )-143(computer )-143(systems )-143(to )-143(the )-143(U.S. )-143(government )-143(to )-143(support )-143(some )-143(of )-143(the)]TJ 0 -1.2 TD [(optional )-20(featur)18(es )-20(of )-20(POSIX.1.)-520(The )-20(POSIX.1 )-20(FIPS )-20(has )-20(since )-20(been )-20(withdrawn, )-20(so )-20(we )-20(won\325t)]TJ T* (consider it further in this text.)Tj /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 596.9642 Tm [(2.3 )-1332(UNIX)-556(System )-278(Implementations)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 575.3655 Tm [(The )-632(pr)18(evious )-632(section )-632(described )-632(ISO )-632(C, )-632(IEEE )-632(POSIX, )-632(and )-632(the )-632(Single )-632(UNIX)]TJ T* [(Speci\336cation )167(\321 )167(thr)17(ee )-597(standar)18(ds )-597(originally )-597(cr)17(eated )-597(by )-597(independent )-597(or)17(ganizations.)]TJ -0 -1.2 Td [(Standar)18(ds, )-102(however)]TJ 0.3519 Tc 8.864 0 Td (,a)Tj -0.018 Tc 1.102 0 Td [(re )-138(i)]TJ 0 Tc 1.499 0 Td [(nterface )-102(speci\336cations.)-602(How )-102(do )-102(these )-102(standar)18(ds )-102(r)18(elate )-102(to )-102(the)]TJ -0.018 Tc -11.465 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(al )-608(world?)-1108(These )-608(standar)18(ds )-608(ar)]TJ 0.8584 Tc 15.405 0 Td (et)Tj 0 Tc 1.663 0 Td [(aken )-608(by )-608(vendors )-608(and )-608(turned )-608(into )-608(actual)]TJ -17.924 -1.2 Td [(implementations. )-474(In)-474(this )-224(book, )-224(we )-224(ar)]TJ 0.4741 Tc 17.537 0 Td (ei)Tj 0 Tc 1.244 0 Td [(nter)18(ested )-224(in )-224(both )-224(these )-224(standar)18(ds )-224(and )-224(their)]TJ -18.781 -1.2 Td (implementation.)Tj 1.8 -1.2 Td [(Section )-67(1.1 )-67(of )-67(McKusick )-67(et )-67(al.)]TJ 13.504 0.04 Td ([)Tj 0.333 -0.04 Td (1996)Tj 2 0.04 Td (])Tj 0.65 -0.04 Td [(gives )-67(a )-67(detailed )-67(history )-67(\(and )-67(a )-67(nice )-67(pictur)18(e\) )-67(of)]TJ -18.287 -1.2 Td [(the )-256(UNIX )-256(System )-256(family )-256(tr)18(ee. )-506(Everything)-506(starts )-256(fr)18(om )-256(the )-256(Sixth )-256(Edition)]TJ 34.135 0.04 Td (\()Tj 0.333 -0.04 Td (1976)Tj 2 0.04 Td (\))Tj 0.839 -0.04 Td (and)Tj -37.307 -1.2 Td [(Seventh )-42(Edition)]TJ 7.379 0.04 Td (\()Tj 0.333 -0.04 Td (1979)Tj 2 0.04 Td (\))Tj 0.625 -0.04 Td [(of )-42(the )-42(UNIX )-42(T)55(ime-Sharing )-42(System )-42(on )-42(the )-42(PDP)]TJ 20.585 0.09 Td (-)Tj -0.055 Tc 0.333 -0.09 Td [(11 )-152(\()]TJ 0 Tc 1.569 0 Td [(usually )-41(called)]TJ -0.111 Tc -32.825 -1.2 Td (Ve)Tj 0 Tc 1.09 0 Td [(rsion )-79(6 )-79(and )-79(V)111(ersion )-79(7, )-79(r)18(espectively\). )-329(These)-329(wer)]TJ 0.329 Tc 21.224 0 Td (et)Tj 0 Tc 1.134 0 Td [(he )-79(\336rst )-79(r)18(eleases )-79(widely )-79(distributed)]TJ -23.448 -1.2 Td [(outside of Bell Laboratories.)-500(Thr)18(ee branches of the tr)18(ee evolved.)]TJ 1.8 -1.92 Td [(1. )-633(One)-448(at )-198(A)74(T&T )-198(that )-198(led )-198(to )-198(System )-198(III )-198(and )-198(System )-198(V)]TJ 0.4478 Tc 25.163 0 Td (,t)Tj 0 Tc 1.024 0 Td [(he )-198(so-called )-198(commer)18(cial)]TJ -24.554 -1.2 Td (versions of the UNIX System.)Tj -1.633 -1.6 Td [(2. )-633(One)-690(at )-440(the )-440(University )-440(of )-440(California )-440(at )-440(Berkeley )-440(that )-440(led )-440(to )-440(the )-440(4.xBSD)]TJ 1.633 -1.2 Td (implementations.)Tj -1.633 -1.6 Td [(3. )-633(The)]TJ -0.018 Tc 3.617 0 Td (re)Tj 0 Tc 0.856 0 Td [(sear)18(ch )-60(version )-60(of )-60(the )-60(UNIX )-60(System, )-60(developed )-60(at )-60(the )-60(Computing )-60(Science)]TJ -2.84 -1.2 Td [(Resear)18(ch )-78(Center )-78(of )-78(A)74(T&T )-78(Bell )-78(Laboratories, )-78(that )-78(led )-78(to )-78(the )-78(UNIX )-78(T)56(ime-Sharing)]TJ -0 -1.2 Td (System 8th Edition, 9th Edition, and ended with the 10th Edition in 1990\ .)Tj /TT0 1 Tf 11.9993 0 0 11.9993 129.5924 322.5806 Tm [(2.3.1 )-556(UNIX)-556(System )-278(V )-278(Release )-278(4)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5924 300.9819 Tm [(UNIX )-69(System )-69(V )-69(Release )-69(4)]TJ 11.942 0.04 Td (\()Tj 0.333 -0.04 Td (SVR4)Tj 2.415 0.04 Td (\))Tj 0.652 -0.04 Td [(was )-69(a )-69(pr)18(oduct )-69(of )-69(A)75(T&T\325s )-69(UNIX )-69(System )-69(Laboratories)]TJ -15.342 -1.2 Td [(\(USL, )-165(formerly )-165(A)75(T&T\325s )-165(UNIX )-165(Softwar)]TJ 0.4148 Tc 17.498 0 Td (eO)Tj 0 Tc 1.68 0 Td [(peration\). )-415(SVR4)-415(mer)18(ged )-165(functionality )-165(fr)18(om)]TJ -0.074 Tc -19.178 -1.2 Td (AT)Tj 0 Tc 1.317 0 Td [(&T )-207(UNIX )-207(System )-207(V )-207(Release )-207(3.2)]TJ 15.233 0.04 Td (\()Tj 0.333 -0.04 Td (SVR3.2)Tj 3.165 0.04 Td (\))Tj 0.4573 Tc 0.333 -0.04 Td (,t)Tj 0 Tc 1.033 0 Td [(he )-207(SunOS )-207(operating )-207(system )-207(fr)18(om )-207(Sun)]TJ -21.415 -1.2 Td [(Micr)18(osystems, )-264(the )-264(4.3BSD )-264(r)18(elease )-264(fr)16(om )-264(the )-264(University )-264(of )-264(California, )-264(and )-264(the )-264(Xenix)]TJ 0 -1.2 Td [(system )-308(fr)18(om )-308(Micr)18(osoft )-308(into )-308(one )-308(coher)18(ent )-308(operating )-308(system.)-808(\(Xenix )-308(was )-308(originally)]TJ T* [(developed )-116(fr)18(om )-116(V)111(ersion )-116(7, )-116(with )-116(many )-116(featur)18(es )-116(later )-116(taken )-116(fr)14(om )-117(System )-117(V)130(.\) )-367(The)-366(SVR4)]TJ T* [(sour)18(ce )-40(code )-40(was )-40(r)19(eleased )-40(in )-40(late )-40(1989, )-40(with )-40(the )-40(\336rst )-40(end-user )-40(copies )-40(becoming )-40(available)]TJ T* [(during )-213(1990.)-713(SVR4 )-213(conformed )-213(to )-213(both )-213(the )-213(POSIX )-213(1003.1 )-213(standar)]TJ 0.4634 Tc 30.198 0 Td (da)Tj 0 Tc 1.574 0 Td [(nd )-213(the )-213(X/Open)]TJ -31.772 -1.2 Td (Portability Guide, Issue 3)Tj 11.443 0.04 Td (\()Tj 0.333 -0.04 Td (XPG3)Tj 2.534 0.04 Td (\))Tj 0.333 -0.04 Td (.)Tj -0.074 Tc -12.843 -1.2 Td (AT)Tj 0 Tc 1.317 0 Td [(&T )-349(also )-349(published )-349(the )-349(System )-349(V )-349(Interface )-349(De\336nition)]TJ 26.036 0.04 Td (\()Tj 0.333 -0.04 Td (SVID)Tj 2.358 0.04 Td (\))Tj 0.933 -0.04 Td [([A)74(T&T )-349(1989].)]TJ -32.777 -1.2 Td [(Issue )-125(3 )-125(of )-125(the )-125(SVID )-125(speci\336ed )-125(the )-125(functionality )-125(that )-125(an )-125(operating )-125(system )-125(must )-125(of)18(fer )-125(to)]TJ T* [(qualify )-7(as )-7(a )-7(conforming )-7(implementation )-7(of )-7(UNIX )-7(System )-7(V )-7(Release )-7(4.)-509(As )-7(with )-7(POSIX.1,)]TJ T* [(the )-18(SVID )-18(speci\336ed )-18(an )-18(interface, )-18(not )-18(an )-18(implementation.)-516(No )-18(distinction )-18(was )-18(made )-18(in )-18(the)]TJ T* [(SVID )-123(between )-123(system )-123(calls )-123(and )-123(library )-123(functions.)-623(The )-123(r)15(efer)18(ence )-123(manual )-123(for )-123(an )-123(actual)]TJ 0 -1.2 Td [(implementation of SVR4 must be consulted to see this distinction [A)74(T&T 1990e].)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46779 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (32)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-197(\336rst )-197(version )-197(of )-197(the )-197(Single )-197(UNIX )-197(Speci\336cation )-197(was )-197(published )-197(by )-197(X/Open )-197(in)]TJ -1.8 -1.2 Td [(1994. )-330(It)-330(was )-80(also )-80(known )-80(as )-80(\324)37(\324Spec )-80(1)56(170,\325)]TJ 0.3299 Tc 18.019 0 Td (\325b)Tj 0 Tc 1.161 0 Td [(ecause )-80(it )-80(contained )-80(r)18(oughly )-80(1,170 )-80(interfaces.)]TJ -19.179 -1.2 Td [(It )-63(gr)18(ew )-63(out )-63(of )-63(the )-63(Common )-63(Open )-63(Softwar)]TJ 0.3135 Tc 18.882 0 Td (eE)Tj 0 Tc 1.404 0 Td [(nvir)18(onment)]TJ 5.526 0.04 Td (\()Tj 0.333 -0.04 Td (COSE)Tj 2.631 0.04 Td (\))Tj 0.646 -0.04 Td [(initiative, )-63(whose )-63(goal)]TJ -29.423 -1.2 Td [(was )-432(to )-432(impr)18(ove )-432(application )-432(portability )-432(acr)18(oss )-432(all )-432(implementations )-432(of )-432(the )-432(UNIX)]TJ 0 -1.2 TD [(operating )-261(system.)-761(The )-261(COSE )-261(gr)19(oup )167(\321 )167(Sun,)-511(IBM, )-261(HP)]TJ 0.5106 Tc 24.498 0 Td (,N)Tj 0 Tc 1.592 0 Td [(ovell/USL, )-261(and )-261(OSF)]TJ 0.0833 Tc 9.606 0 Td (\321w)Tj 0 Tc 1.917 0 Td (ent)Tj -37.613 -1.2 Td [(further )-71(than )-71(endorsing )-71(standar)18(ds )-71(by )-71(including )-71(interfaces )-71(used )-71(by )-71(common )-71(commer)13(cial)]TJ T* [(applications. )-353(The)]TJ -0.018 Tc 8.276 0 Td (re)Tj 0 Tc 0.856 0 Td [(sulting )-103(1,170 )-103(interfaces )-103(wer)]TJ 0.3526 Tc 12.324 0 Td (es)Tj 0 Tc 1.256 0 Td [(elected )-103(fr)18(om )-103(these )-103(applications, )-103(and)]TJ -22.712 -1.2 Td [(also )-10(included )-10(the )-10(X/Open )-10(Common )-10(Application )-10(Envir)20(onment)]TJ 27.823 0.04 Td (\()Tj 0.333 -0.04 Td (CAE)Tj 2.098 0.04 Td (\))Tj 0.2597 Tc 0.333 -0.04 Td (,I)Tj 0 Tc 0.847 0 Td [(ssue )-10(4 )-10(\(known )-10(as)]TJ -0.037 Tc -31.434 -1.2 Td (\324\324)Tj 0 Tc 0.519 0 Td [(XPG4\325)37(\325)-336(as)-336(a)-336(historical )-86(r)18(efer)18(ence )-86(to )-86(its )-86(pr)18(edecessor)]TJ 0.3361 Tc 22.047 0 Td (,t)Tj 0 Tc 0.912 0 Td [(he )-86(X/Open )-86(Portability )-86(Guide\), )-86(the)]TJ -23.478 -1.2 Td [(System )-340(V )-340(Interface )-340(De\336nition)]TJ 14.625 0.04 Td (\()Tj 0.333 -0.04 Td (SVID)Tj 2.358 0.04 Td (\))Tj 0.5897 Tc 0.333 -0.04 Td (,E)Tj 0 Tc 1.451 0 Td [(dition )-340(3, )-340(Level )-340(1 )-340(interfaces, )-340(and )-340(the )-340(OSF)]TJ -19.099 -1.2 Td [(Application Envir)18(onment Speci\336cation)]TJ 17.459 0.04 Td (\()Tj 0.333 -0.04 Td (AES)Tj 1.914 0.04 Td (\))Tj 0.583 -0.04 Td (Full Use interfaces.)Tj -18.489 -1.2 Td [(The )-125(second )-125(version )-125(of )-125(the )-125(Single )-125(UNIX )-125(Speci\336cation )-125(was )-125(published )-125(by )-125(The )-125(Open)]TJ -1.8 -1.2 Td [(Gr)18(oup )-66(in )-66(1997.)-566(The )-66(new )-66(version )-66(added )-66(support )-66(for )-66(thr)20(eads, )-66(r)18(eal-time )-66(interfaces, )-66(64)]TJ 37.497 0.09 Td (-)Tj 0.333 -0.09 Td (bit)Tj -37.83 -1.2 Td [(pr)18(ocessing, lar)18(ge \336les, and enhanced multibyte character pr)18(ocessing.)]TJ 1.8 -1.2 Td [(The )-107(thir)]TJ 0.3571 Tc 3.607 0 Td (dv)Tj 0 Tc 1.533 0 Td [(ersion )-107(of )-107(the )-107(Single )-107(UNIX )-107(Speci\336cation)]TJ 18.097 0.04 Td (\()Tj 0.333 -0.04 Td (SUSv3)Tj 2.893 0.04 Td (\))Tj 0.69 -0.04 Td [(was )-107(published )-107(by )-107(The)]TJ -28.953 -1.2 Td [(Open )-80(Gr)18(oup )-80(in )-80(2001.)-580(The )-80(Base )-80(Speci\336cations )-80(of )-80(SUSv3 )-80(ar)]TJ 0.3297 Tc 26.073 0 Td (et)Tj 0 Tc 1.135 0 Td [(he )-80(same )-80(as )-80(IEEE )-80(Standar)19(d)]TJ -27.208 -1.2 Td (1003.1)Tj 2.75 0.09 Td (-)Tj 0.333 -0.09 Td [(2001 )-18(and )-18(ar)]TJ 0.2679 Tc 5.106 0 Td (ed)Tj 0 Tc 1.358 0 Td [(ivided )-18(into )-18(four )-18(sections: )-18(Base )-18(De\336nitions, )-18(System )-18(Interfaces, )-18(Shell)]TJ -9.547 -1.2 Td [(and )-17(Utilities, )-17(and )-17(Rationale.)-517(SUSv3 )-17(also )-17(includes )-17(X/Open )-17(Curses )-17(Issue )-17(4, )-17(V)111(ersion )-17(2, )-17(but)]TJ T* (this speci\336cation is not part of POSIX.1.)Tj 1.8 -1.2 Td [(In )-224(2002, )-224(ISO )-224(appr)18(oved )-224(the )-224(IEEE )-224(Standar)]TJ 0.4738 Tc 18.918 0 Td (d1)Tj 0 Tc 1.585 0 Td (003.1)Tj 2.25 0.09 Td (-)Tj 0.333 -0.09 Td [(2001 )-224(as )-224(International )-224(Standar)19(d)]TJ -24.886 -1.2 Td [(ISO/IEC )-196(9945:2002.)-696(The )-196(Open )-196(Gr)18(oup )-196(updated )-196(the )-196(1003.1 )-196(standar)]TJ 0.4462 Tc 30.43 0 Td (da)Tj 0 Tc 1.557 0 Td [(gain )-196(in )-196(2003 )-196(to)]TJ -31.987 -1.2 Td [(include )-31(technical )-31(corr)18(ections, )-31(and )-31(ISO )-31(appr)18(oved )-31(this )-31(as )-31(International )-31(Standar)]TJ 0.2808 Tc 34.197 0 Td (dI)Tj 0 Tc 1.229 0 Td (SO/IEC)Tj -35.426 -1.2 Td [(9945:2003. )-424(In)-425(April )-174(2004, )-174(The )-174(Open )-174(Gr)16(oup )-175(published )-175(the )-175(Single )-175(UNIX )-175(Speci\336cation,)]TJ -0.111 Tc 0 -1.2 Td (Ve)Tj 0 Tc 1.09 0 Td [(rsion )-88(3, )-88(2004 )-88(Edition.)-588(It )-88(mer)18(ged )-88(mor)]TJ 0.3384 Tc 16.63 0 Td (et)Tj 0 Tc 1.143 0 Td [(echnical )-88(corr)18(ections )-88(into )-88(the )-88(main )-88(text )-88(of )-88(the)]TJ -18.864 -1.2 Td [(standar)18(d.)]TJ 1.8 -1.2 Td [(In )-45(2008, )-45(the )-45(Single )-45(UNIX )-45(Speci\336cation )-45(was )-45(updated, )-45(including )-45(corr)22(ections )-45(and )-45(new)]TJ -1.8 -1.2 Td [(interfaces, )-489(r)18(emoving )-489(obsolete )-489(interfaces, )-489(and )-489(marking )-489(other )-489(interfaces )-489(as )-489(being)]TJ T* [(obsolescent )-99(in )-99(pr)18(eparation )-99(for )-99(futur)]TJ 0.3487 Tc 16.075 0 Td (er)Tj 0 Tc 1.205 0 Td [(emoval. )-349(Additionally)]TJ 0.3487 Tc 9.676 0 Td (,s)Tj 0 Tc 1.023 0 Td [(ome )-99(pr)18(eviously )-99(optional)]TJ -27.978 -1.2 Td [(interfaces )-85(wer)]TJ 0.3348 Tc 6.278 0 Td (ep)Tj -0.018 Tc 1.415 0 Td (ro)Tj 0 Tc 0.923 0 Td [(moted )-85(to )-85(nonoptional )-85(status, )-85(including )-85(asynchr)19(onous )-85(I/O, )-85(barriers,)]TJ -8.616 -1.2 Td [(clock )-218(selection, )-218(memory-mapped )-218(\336les, )-218(memory )-218(pr)17(otection, )-218(r)18(eader\320writer )-218(locks, )-218(r)17(eal-)]TJ T* [(time )-175(signals, )-175(POSIX )-175(semaphor)17(es, )-175(spin )-175(locks, )-175(thr)18(ead-safe )-175(functions, )-175(thr)18(eads, )-175(timeouts,)]TJ T* [(and )-15(timers.)-515(The )-15(r)18(esulting )-15(standar)]TJ 0.2648 Tc 14.973 0 Td (di)Tj 0.2649 Tc 1.167 0 Td (sk)Tj 0 Tc 1.245 0 Td [(nown )-15(as )-15(Issue )-15(7 )-15(of )-15(the )-15(Base )-15(Speci\336cations, )-15(and )-15(is)]TJ -17.385 -1.2 Td [(the )-201(same )-201(as )-201(POSIX.1)]TJ 9.618 0.09 Td (-)Tj 0.333 -0.09 Td [(2008. )-451(The)-450(Open )-201(Gr)18(oup )-201(bundled )-201(this )-201(version )-201(with )-201(an )-201(updated)]TJ -9.951 -1.2 Td [(X/Open )-317(Curses )-317(speci\336cation )-317(and )-317(r)20(eleased )-317(them )-317(as )-317(version )-317(4 )-317(of )-317(the )-317(Single )-317(UNIX)]TJ T* (Speci\336cation in 2010.)Tj -0.092 Tc 9.757 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll r)18(efer to this as SUSv4.)]TJ /TT0 1 Tf 11.9993 0 0 11.9993 129.5939 224.9865 Tm [(2.2.4 )-556(FIPS)]TJ /T1_2 1 Tf 9.9994 0 0 9.9994 129.5939 200.9879 Tm (FIPS)Tj /T1_1 1 Tf 2.369 0 Td [(stands )-63(for )-63(Federal )-63(Information )-63(Pr)18(ocessing )-63(Standar)18(d. )-313(It)-313(was )-63(published )-63(by )-63(the )-63(U.S.)]TJ -2.369 -1.2 Td [(government, )-26(which )-26(used )-26(it )-26(for )-26(the )-26(pr)16(ocur)18(ement )-26(of )-26(computer )-26(systems.)-527(FIPS )-26(151)]TJ 35.202 0.09 Td (-)Tj 0.333 -0.09 Td (1)Tj 0.776 0.04 Td (\()Tj 0.333 -0.04 Td (April)Tj -36.644 -1.2 Td (1989)Tj 2 0.04 Td (\))Tj 0.637 -0.04 Td [(was )-54(based )-54(on )-54(the )-54(IEEE )-54(Standar)]TJ 0.3038 Tc 13.95 0 Td (d1)Tj 0 Tc 1.415 0 Td (003.1)Tj 2.25 0.09 Td (-)Tj 0.333 -0.09 Td [(1988 )-54(and )-54(a )-54(draft )-54(of )-54(the )-54(ANSI )-54(C )-54(standar)20(d.)]TJ -20.585 -1.2 Td [(This )-124(was )-124(followed )-124(by )-124(FIPS )-124(151)]TJ 14.102 0.09 Td (-)Tj 0.333 -0.09 Td (2)Tj 0.875 0.04 Td (\()Tj 0.333 -0.04 Td [(May )-125(1993)]TJ 4.377 0.04 Td (\))Tj 0.3746 Tc 0.333 -0.04 Td (,w)Tj 0 Tc 1.459 0 Td [(hich )-125(was )-125(based )-125(on )-125(the )-125(IEEE )-125(Standar)20(d)]TJ -21.811 -1.2 Td (1003.1)Tj 2.75 0.09 Td (-)Tj 0.333 -0.09 Td [(1990. )-467(FIPS)-468(151)]TJ 6.957 0.09 Td (-)Tj 0.4673 Tc 0.333 -0.09 Td (2r)Tj 0 Tc 1.344 0 Td [(equir)18(ed )-217(some )-217(featur)18(es )-217(that )-217(POSIX.1 )-217(listed )-217(as )-217(optional.)-719(All)]TJ -11.717 -1.2 Td (these options wer)Tj 0.25 Tc 7.796 0 Td (ei)Tj 0 Tc 1.02 0 Td (ncluded as mandatory in POSIX.1)Tj 14.986 0.09 Td (-)Tj 0.333 -0.09 Td (2001.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46780 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (30)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1541.25 6670.25 cm 0 0 m 3410 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 238.8777 658.9605 Tm [(Fr)18(eeBSD )-250(Linux )-250(Mac)-250(OS X)-500(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-1827(3.2.0)-1735(10.6.8 )-2170(10)]TJ -8.224 0.625 Td (Header)Tj 28.007 0 Td (Description)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1541.25 6450.25 cm 0 0 m 3410 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1541.25 6430.25 cm 0 0 m 3410 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 158.073 634.9238 Tm ()Tj /T1_1 1 Tf 3.096 Tc 11.698 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245m)Tj 0 Tc 3.172 0 Td [(essage display str)8(uctur)18(es)]TJ /TT0 1 Tf -26.727 -1.25 Td ()Tj /T1_1 1 Tf 3.096 Tc 11.698 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245\336)Tj 0 Tc 2.894 0 Td [(le tr)18(ee walking \(Section 4.22\))]TJ /TT0 1 Tf -26.449 -1.25 Td ()Tj /T1_1 1 Tf 3.096 Tc 11.698 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245p)Tj 0 Tc 2.89 0 Td (athname management functions)Tj /TT0 1 Tf -26.445 -1.25 Td ()Tj /T1_1 1 Tf 7.0815 Tc 11.698 0 Td (\245\245)Tj 1.683 Tc 11.858 0 Td (\245d)Tj 0 Tc 2.9 0 Td (atabase operations)Tj /TT0 1 Tf -26.455 -1.25 Td ()Tj /T1_1 1 Tf 3.096 Tc 11.698 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245s)Tj 0 Tc 2.713 0 Td [(ear)18(ch tables)]TJ /TT0 1 Tf -26.268 -1.25 Td ()Tj /T1_1 1 Tf 3.096 Tc 11.698 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245s)Tj 0 Tc 2.713 0 Td [(ystem err)18(or logging \(Section 13.4\))]TJ /TT0 1 Tf -26.268 -1.25 Td ()Tj /T1_1 1 Tf 3.3795 Tc 15.4 0 Td [(\245\245 )3445(\245)]TJ 0 Tc 10.444 0 Td (user accounting database)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1541.25 5710.25 cm 0 0 m 3410 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 158.0635 562.8987 Tm ()Tj /T1_1 1 Tf 3.096 Tc 11.698 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245I)Tj 0 Tc 2.626 0 Td (PC \(Section 15.6\))Tj /TT0 1 Tf -26.181 -1.25 Td ()Tj /T1_1 1 Tf 3.096 Tc 11.698 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245X)Tj 0 Tc 2.956 0 Td (SI message queues \(Section 15.7\))Tj /TT0 1 Tf -26.511 -1.25 Td ()Tj /T1_1 1 Tf 3.096 Tc 11.698 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245r)Tj 0 Tc 2.666 0 Td [(esour)18(ce operations \(Section 7.1)55(1\))]TJ /TT0 1 Tf -26.221 -1.25 Td ()Tj /T1_1 1 Tf 3.096 Tc 11.698 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245X)Tj 0 Tc 2.956 0 Td [(SI semaphor)18(es \(Section 15.8\))]TJ /TT0 1 Tf -26.511 -1.25 Td ()Tj /T1_1 1 Tf 3.096 Tc 11.698 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245X)Tj 0 Tc 2.956 0 Td [(SI shar)18(ed memory \(Section 15.9\))]TJ /TT0 1 Tf -26.511 -1.25 Td ()Tj /T1_1 1 Tf 3.096 Tc 11.698 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245t)Tj 0 Tc 2.615 0 Td (ime types)Tj /TT0 1 Tf -26.17 -1.25 Td ()Tj /T1_1 1 Tf 3.096 Tc 11.698 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245v)Tj 0 Tc 2.854 0 Td (ector I/O operations \(Section 14.6\))Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1541.25 4990.25 cm 0 0 m 3410 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3628.25 4990.25 cm 0 0 m 0 1680 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2369.25 4990.25 cm 0 0 m 0 1680 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4951.25 4990.25 cm 0 0 m 0 1680 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1541.25 4990.25 cm 0 0 m 0 1680 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 214.3525 480.8846 Tm (Figure 2.3)Tj /T1_1 1 Tf 5.195 0 Td [(XSI option headers de\336ned by the POSIX standar)18(d)]TJ 9.9976 0 0 9.9976 147.5648 454.4909 Tm [(After )-134(mor)]TJ 0.384 Tc 4.501 0 Td (et)Tj 0 Tc 1.189 0 Td [(han )-134(twenty )-134(years )-134(of )-134(work, )-134(the )-134(standar)18(ds )-134(ar)]TJ 0.3839 Tc 19.887 0 Td (em)Tj 0 Tc 1.746 0 Td (atur)Tj 0.3839 Tc 1.806 0 Td (ea)Tj 0 Tc 1.363 0 Td [(nd )-134(stable.)-634(The)]TJ -32.292 -1.2 Td [(POSIX.1 )-19(standar)18(d)-269(is)-269(m)1(aintained )-19(by )-19(an )-19(open )-19(working )-19(gr)18(oup )-19(known )-19(as )-19(the )-19(Austin )-19(Gr)21(oup)]TJ 0 -1.2 Td (\()Tj /TT0 1 Tf (http://www.opengroup.org/austin)Tj /T1_1 1 Tf [(\). )-416(T)]TJ 0.4164 Tc 20.703 0 Td (oe)Tj 0 Tc 1.441 0 Td (nsur)Tj 0.4164 Tc 1.986 0 Td (et)Tj 0 Tc 1.221 0 Td [(hat )-166(they )-166(ar)]TJ 0.4164 Tc 5.061 0 Td (es)Tj 0 Tc 1.319 0 Td [(till )-166(r)18(elevant, )-166(the)]TJ -31.732 -1.2 Td [(standar)18(ds need to be either updated or r)18(eaf)18(\336rmed every so often.)]TJ /TT1 1 Tf 11.9971 0 0 11.9971 129.5697 387.307 Tm [(2.2.3 )-556(The)-556(Single )-278(UNIX )-278(Speci\336cation)]TJ /T1_1 1 Tf 9.9976 0 0 9.9976 129.5697 366.9119 Tm [(The )-65(Single )-65(UNIX )-65(Speci\336cation, )-65(a )-65(superset )-65(of )-65(the )-65(POSIX.1 )-65(standar)21(d, )-65(speci\336es )-65(additional)]TJ 0 -1.2 TD [(interfaces )-51(that )-51(extend )-51(the )-51(functionality )-51(pr)18(ovided )-51(by )-51(the )-51(POSIX.1 )-51(speci\336cation.)-555(POSIX.1)]TJ T* (is equivalent to the Base Speci\336cations portion of the Single UNIX Sp\ eci\336cation.)Tj 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 2.051 0 Td [(X/Open )-127(System )-127(Interfaces)]TJ /T1_1 1 Tf 11.223 0.04 Td (\()Tj 0.333 -0.04 Td (XSI)Tj 1.529 0.04 Td (\))Tj 0.71 -0.04 Td [(option )-127(in )-127(POSIX.1 )-127(describes )-127(optional )-127(interfaces)]TJ -17.646 -1.2 Td [(and )-590(de\336nes )-590(which )-590(optional )-590(portions )-590(of )-590(POSIX.1 )-590(must )-590(be )-590(supported )-590(for )-590(an)]TJ T* [(implementation )-319(to )-319(be )-319(deemed)]TJ /T1_2 1 Tf 14.782 0 Td [(XSI )-319(conforming)]TJ /T1_1 1 Tf 0.819 Tc (.T)Tj 0 Tc 8.492 0 Td [(hese )-319(include )-319(\336le )-319(synchr)18(onization,)]TJ -23.274 -1.2 Td [(thr)18(ead )-15(stack )-15(addr)18(ess )-15(and )-15(size )-15(attributes, )-15(thr)18(ead )-15(pr)15(ocess-shar)18(ed )-15(synchr)18(onization, )-15(and )-15(the)]TJ /TT0 1 Tf 0 -1.2 Td (_XOPEN_UNIX)Tj /T1_1 1 Tf 6.926 0 Td [(symbolic )-76(constant )-76(\(marked )-76(\324)37(\324SUS )-76(mandatory\325)35(\325)-326(in)-326(F)-1(igur)]TJ 0.3265 Tc 24.455 0 Td (e2)Tj 0 Tc 1.306 0 Td [(.5\). )-326(Only)-327(XSI-)]TJ -32.687 -1.2 Td (conforming implementations can be called UNIX systems.)Tj 7.9981 0 0 7.9981 183.5564 250.9398 Tm [(The )-61(Open )-61(Gr)18(oup )-61(owns )-61(the )-61(UNIX )-61(trademark )-61(and )-61(uses )-61(the )-61(Single )-61(UNIX )-61(Speci\336cation )-61(to )-61(de\336ne)]TJ 0 -1.25 TD [(the )-34(interfaces )-34(an )-34(implementation )-34(must )-34(support )-34(to )-34(call )-34(itself )-34(a )-34(UNIX )-34(system.)]TJ -0.111 Tc 34.172 0 Td (Ve)Tj 0 Tc 1.09 0 Td [(ndors )-34(must )-34(\336le)]TJ -35.262 -1.25 Td [(conformance )-18(statements, )-18(pass )-18(test )-18(suites )-18(to )-18(verify )-18(conformance, )-18(and )-18(license )-18(the )-18(right )-18(to )-18(use )-18(the)]TJ T* (UNIX trademark.)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1867.25 2022.25 cm 0 0 m 2758 0 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 242.6352 194.1417 Tm [(Fr)18(eeBSD )-250(Linux )-250(Mac)-250(OS X)-500(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-1827(3.2.0)-1735(10.6.8 )-2170(10)]TJ -6.423 0.625 Td (Header)Tj 23.93 0 Td (Description)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1867.25 1802.25 cm 0 0 m 2758 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1867.25 1782.25 cm 0 0 m 2758 0 l S Q Q BT /TT0 1 Tf 7.9971 0 0 7.9971 190.6394 170.1387 Tm ()Tj /T1_1 1 Tf 3.096 Tc 8.098 0 Td [(\245\245 )-1108(\245)]TJ 0 Tc 14.147 0 Td (message queues)Tj /TT0 1 Tf -22.244 -1.25 Td ()Tj /T1_1 1 Tf 3.096 Tc 8.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245r)Tj 0 Tc 2.666 0 Td (eal-time spawn interface)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1867.25 1562.25 cm 0 0 m 2758 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3666.25 1562.25 cm 0 0 m 0 460 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2407.25 1562.25 cm 0 0 m 0 460 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4625.25 1562.25 cm 0 0 m 0 460 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1867.25 1562.25 cm 0 0 m 0 460 l S Q Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 217.3047 139.3415 Tm (Figure 2.4)Tj /T1_1 1 Tf 5.195 0 Td [(Optional headers de\336ned by the POSIX standar)18(d)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46781 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (26)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-178(C )-178(standar)]TJ 0.4282 Tc 6.559 0 Td (di)Tj 0.4283 Tc 1.33 0 Td (sn)Tj 0 Tc 1.434 0 Td [(ow )-178(maintained )-178(and )-178(developed )-178(by )-178(the )-178(ISO/IEC )-178(international)]TJ -11.124 -1.2 Td [(standar)18(dization )-130(working )-130(gr)18(oup )-130(for )-130(the )-130(C )-130(pr)18(ogramming )-130(language, )-130(known )-130(as )-130(ISO/IEC)]TJ 0 -1.2 TD [(JTC1/SC22/WG14, )-90(or )-90(WG14 )-90(for )-90(short.)-591(The )-90(intent )-90(of )-90(the )-90(ISO )-90(C )-90(standar)16(d)-340(is)-340(to)-340(p)]TJ -0.018 Tc 36.131 0 Td (ro)Tj 0 Tc 0.923 0 Td (vide)Tj -37.054 -1.2 Td [(portability )-77(of )-77(conforming )-77(C )-77(pr)18(ograms )-77(to )-77(a )-77(wide )-77(variety )-77(of )-77(operating )-77(systems, )-77(not )-77(only)]TJ T* [(the )-231(UNIX )-231(System.)-731(This )-231(standar)]TJ 0.4811 Tc 14.847 0 Td (dd)Tj 0 Tc 1.703 0 Td [(e\336nes )-231(not )-231(only )-231(the )-231(syntax )-231(and )-231(semantics )-231(of )-231(the)]TJ -16.55 -1.2 Td [(pr)18(ogramming )-206(language )-206(but )-206(also )-206(a )-206(standar)]TJ 0.4565 Tc 19.582 0 Td (dl)Tj 0 Tc 1.359 0 Td [(ibrary )-206([Chapter )-206(7 )-206(of )-206(ISO )-206(1999; )-206(Plauger)]TJ -20.941 -1.2 Td [(1992; )-48(Appendix )-48(B )-48(of )-48(Kernighan )-48(and )-48(Ritchie )-48(1988].)-552(This )-49(library )-49(is )-49(important )-49(because )-49(all)]TJ T* [(contemporary )-240(UNIX )-240(systems, )-240(such )-240(as )-240(the )-240(ones )-240(described )-240(in )-240(this )-240(book, )-240(pr)16(ovide )-240(the)]TJ T* [(library r)18(outines that ar)]TJ 0.25 Tc 9.97 0 Td (es)Tj 0 Tc 1.153 0 Td [(peci\336ed in the C standar)18(d.)]TJ -9.323 -1.2 Td [(In )-213(1999, )-213(the )-213(ISO )-213(C )-213(standar)]TJ 0.4632 Tc 12.549 0 Td (dw)Tj 0 Tc 1.908 0 Td [(as )-213(updated )-213(and )-213(appr)18(oved )-213(as )-213(ISO/IEC )-213(9899:1999,)]TJ -16.257 -1.2 Td [(lar)18(gely )-194(to )-194(impr)18(ove )-194(support )-194(for )-194(applications )-194(that )-194(perform )-194(numerical )-194(pr)21(ocessing. )-444(The)]TJ 0 -1.2 Td [(changes )-30(don\325t )-30(af)19(fect )-30(the )-30(POSIX )-30(interfaces )-30(described )-30(in )-30(this )-30(book, )-30(except )-30(for )-30(the )-30(addition)]TJ T* [(of )-32(the)]TJ /TT0 1 Tf 2.829 0 Td (restrict)Tj /T1_1 1 Tf 5.082 0 Td [(keywor)18(d)-282(to)-282(s)1(ome )-32(of )-32(the )-32(function )-32(pr)20(ototypes. )-282(This)-281(keywor)18(d)-282(is)-282(u)1(sed )-32(to)]TJ -7.911 -1.2 Td [(tell )-1(the )-1(compiler )-1(which )-1(pointer )-1(r)16(efer)18(ences )-1(can )-1(be )-1(optimized, )-1(by )-1(indicating )-1(that )-1(the )-1(object)]TJ 0 -1.2 Td [(to which the pointer r)18(efers is accessed in the function only via that pointer)74(.)]TJ 1.8 -1.2 Td [(Since )-103(1999, )-103(thr)18(ee )-103(technical )-103(corrigenda )-103(have )-103(been )-103(published )-103(to )-103(corr)18(ect )-103(err)18(ors )-103(in )-103(the)]TJ -1.8 -1.2 Td [(ISO )-109(C )-109(standar)]TJ 0.0833 Tc 6.396 0 Td (d\321o)Tj 0 Tc 2.324 0 Td [(ne )-110(in )-110(2001, )-110(one )-110(in )-110(2004, )-110(and )-110(one )-110(in )-110(2007.)-610(As )-110(with )-110(most )-110(standar)23(ds,)]TJ -8.72 -1.2 Td [(ther)18(e)-392(is)-392(a)-392(delay )-142(between )-142(the )-142(standar)18(d\325s )-142(appr)18(oval )-142(and )-142(the )-142(modi\336cation )-142(of )-142(softwar)]TJ 0.392 Tc 37.257 0 Td (et)Tj 0 Tc 1.197 0 Td (o)Tj -38.454 -1.2 Td [(conform )-12(to )-12(it.)-512(As )-12(each )-12(vendor)-74(\325s )-12(compilation )-12(systems )-12(evolve, )-12(they )-12(add )-12(mor)]TJ 0.2623 Tc 33.226 0 Td (es)Tj 0 Tc 1.165 0 Td [(upport )-12(for)]TJ -34.392 -1.2 Td [(the latest version of the ISO C standar)18(d.)]TJ 0.4674 Tc 7.9995 0 0 7.9995 183.5906 422.9746 Tm (As)Tj 0 Tc 1.669 0 Td [(ummary )-217(of )-217(the )-217(curr)18(ent )-217(level )-217(of )-217(conformance )-217(of)]TJ /TT0 1 Tf 22.628 0 Td (gcc)Tj /T1_1 1 Tf 2.267 0 Td [(to )-217(the )-217(1999 )-217(version )-217(of )-217(the )-217(ISO )-217(C)]TJ -26.565 -1.25 Td [(standar)18(d)-842(is)-842(a)-1(vailable )-592(at)]TJ /TT0 1 Tf 12.812 0 Td (http://gcc.gnu.org/c99status.html)Tj /T1_1 1 Tf 1.0926 Tc (.A)Tj 0 Tc 21.921 0 Td [(lthough )-593(the )-593(C)]TJ -34.733 -1.25 Td (standar)Tj 0.3988 Tc 3.32 0 Td (dw)Tj 0 Tc 1.844 0 Td [(as )-149(updated )-149(in )-149(201)56(1, )-149(we )-149(deal )-149(only )-149(with )-149(the )-149(1999 )-149(version )-149(in )-149(this )-149(text, )-149(because )-149(the)]TJ -5.164 -1.25 Td [(other standar)18(ds haven\325t yet caught up with the r)18(elevant changes.)]TJ 9.9994 0 0 9.9994 147.5927 372.9776 Tm [(The )-30(ISO )-30(C )-30(library )-30(can )-30(be )-30(divided )-30(into )-30(24 )-30(ar)18(eas, )-30(based )-30(on )-30(the )-30(headers )-30(de\336ned )-30(by )-30(the)]TJ -1.8 -1.2 Td (standar)Tj 0.4715 Tc 3.32 0 Td (d\()Tj 0 Tc 1.416 0 Td [(see )-221(Figur)]TJ 0.4714 Tc 4.236 0 Td (e2)Tj 0 Tc 1.45 0 Td [(.1\). )-471(The)-472(POSIX.1 )-221(standar)]TJ 0.4714 Tc 11.66 0 Td (di)Tj 0 Tc 1.373 0 Td [(ncludes )-221(these )-221(headers, )-221(as )-221(well )-221(as)]TJ -23.456 -1.2 Td [(others. )-718(As)-719(Figur)]TJ 0.7183 Tc 8.274 0 Td (e2)Tj 0 Tc 1.697 0 Td [(.1 )-468(shows, )-468(all )-468(of )-468(these )-468(headers )-468(ar)]TJ 0.7183 Tc 16.718 0 Td (es)Tj 0 Tc 1.621 0 Td [(upported )-468(by )-468(the )-468(four)]TJ -28.31 -1.2 Td (implementations)Tj 7.894 0.04 Td (\()Tj 0.333 -0.04 Td [(Fr)18(eeBSD )-159(8.0, )-159(Linux )-159(3.2.0, )-159(Mac )-159(OS )-159(X )-159(10.6.8, )-159(and )-159(Solaris )-159(10)]TJ 26.532 0.04 Td (\))Tj 0.742 -0.04 Td [(that )-159(ar)18(e)]TJ -35.501 -1.2 Td [(described later in this chapter)74(.)]TJ 7.9995 0 0 7.9995 183.5903 306.9816 Tm [(The )-160(ISO )-160(C )-160(headers )-160(depend )-160(on )-160(which )-160(version )-160(of )-160(the )-160(C )-160(compiler )-160(is )-160(used )-160(with )-160(the )-160(operating)]TJ 0 -1.25 TD [(system. )-281(Fr)18(eeBSD )-31(8.0 )-31(ships )-31(with )-31(version )-31(4.2.1 )-31(of)]TJ /TT0 1 Tf 21.411 0 Td (gcc)Tj /T1_1 1 Tf 0.2814 Tc (,S)Tj 0 Tc 2.856 0 Td [(olaris )-31(10 )-31(ships )-31(with )-31(version )-31(3.4.3 )-31(of)]TJ /TT0 1 Tf 15.933 0 Td (gcc)Tj /T1_1 1 Tf -40.2 -1.25 Td [(\(in )-226(addition )-226(to )-226(its )-226(own )-226(C )-226(compiler )-226(in )-226(Sun )-226(Studio\), )-226(Ubuntu )-226(12.04)]TJ 30.949 0.04 Td (\()Tj 0.333 -0.04 Td [(Linux )-226(3.2.0)]TJ 5.079 0.04 Td (\))Tj 0.809 -0.04 Td [(ships )-226(with)]TJ -37.169 -1.25 Td (version 4.6.3 of)Tj /TT0 1 Tf 6.911 0 Td (gcc)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 2.8 0 Td (nd Mac OS X 10.6.8 ships with both versions 4.0.1 and 4.2.1 of)Tj /TT0 1 Tf 27.451 0 Td (gcc)Tj /T1_1 1 Tf (.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 129.5936 246.9852 Tm [(2.2.2 )-556(IEEE)-556(POSIX)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5936 222.9866 Tm [(POSIX )-139(is )-139(a )-139(family )-139(of )-139(standar)18(ds )-139(initially )-139(developed )-139(by )-139(the )-139(IEEE )-139(\(Institute )-139(of )-139(Electrical)]TJ 0 -1.2 TD [(and )-126(Electr)18(onics )-126(Engineers\).)-626(POSIX )-126(stands )-126(for )-126(Portable )-126(Operating )-126(System )-126(Interface.)-625(It)]TJ T* [(originally )-387(r)18(eferr)18(ed )-387(only )-387(to )-387(the )-387(IEEE )-387(Standar)]TJ 0.6367 Tc 21.474 0 Td (d1)Tj 0 Tc 1.748 0 Td (003.1)Tj 2.25 0.09 Td (-)Tj 0.333 -0.09 Td [(1988 )167(\321 )167(the)-637(operating )-387(system)]TJ -25.805 -1.2 Td [(interface )167(\321 )167(but)-264(was )-13(later )-13(extended )-13(to )-13(include )-13(many )-13(of )-13(the )-13(standar)14(ds )-14(and )-14(draft )-14(standar)19(ds)]TJ -0 -1.2 Td (with the 1003 designation, including the shell and utilities)Tj 25.828 0.04 Td (\()Tj 0.333 -0.04 Td (1003.2)Tj 2.75 0.04 Td (\))Tj 0.333 -0.04 Td (.)Tj -27.444 -1.2 Td [(Of )-132(speci\336c )-132(inter)18(est )-132(to )-132(this )-132(book )-132(is )-132(the )-132(1003.1 )-132(operating )-132(system )-132(interface )-132(standar)19(d,)]TJ -1.8 -1.2 Td [(whose )-113(goal )-113(is )-113(to )-113(pr)18(omote )-113(the )-113(portability )-113(of )-113(applications )-113(among )-113(various )-113(UNIX )-113(System)]TJ T* [(envir)18(onments. )-605(This)-606(standar)]TJ 0.6055 Tc 13.057 0 Td (dd)Tj 0 Tc 1.827 0 Td [(e\336nes )-355(the )-355(services )-355(that )-355(an )-355(operating )-355(system )-355(must)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46782 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1.12)]TJ 39.988 0 Td (Summary)Tj /T1_1 1 Tf 6.345 0 Td (23)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 3102 6134 864 288 re S Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 333.488 631.0021 Tm (application)Tj 1.446 -1.25 Td (code)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2526 5486 864 288 re S Q BT /T1_0 1 Tf 0.25 Tc 7.999 0 0 7.999 280.0064 566.1721 Tm (Cl)Tj 0 Tc 1.25 0 Td (ibrary)Tj -1.345 -1.25 Td (functions)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2598 4910 1296 216 re S Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 303.3774 499.95 Tm (system calls)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2598 4406 1296 720 re S Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 393.3056 474.726 Tm (kernel)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5342.25 cm 0 0 m 0 36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5416.25 cm 0 0 m 0 36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5490.25 cm 0 0 m 0 36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5564.25 cm 0 0 m 0 36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5639.25 cm 0 0 m 0 36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5713.25 cm 0 0 m 0 36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5787.25 cm 0 0 m 0 36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5862.25 cm 0 0 m 0 36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5936.25 cm 0 0 m 0 36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 6010.25 cm 0 0 m 0 36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 6084.25 cm 0 0 m 0 36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 6158.25 cm 0 0 m 0 36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 6232.25 cm 0 0 m 0 36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 6307.25 cm 0 0 m 0 36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 6381.25 cm 0 0 m 0 36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 6456.25 cm 0 0 m 0 36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 6530.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2452.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2523.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2593.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2664.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2735.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2805.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2875.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2946.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3016.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3087.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3157.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3228.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3298.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3369.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3439.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3510.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3581.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3650.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3721.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3792.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3862.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3933.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4003.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4074.25 6566.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 6492.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 6417.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 6343.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 6269.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 6194.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 6120.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 6046.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5972.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5898.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5823.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5749.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5675.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5600.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5526.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5452.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5378.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4039.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3969.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3898.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3828.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3757.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3686.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3617.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3546.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3475.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3405.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3334.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3264.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3193.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3123.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3052.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2982.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2911.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2840.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2771.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2700.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2629.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2559.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2488.25 5342.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2418.25 5342.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 414.8755 593.4619 Tm [(user pr)18(ocess)]TJ ET q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 339 613.4 cm 0 0 m -4.392 -5.976 l -6.696 -3.24 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 3390 6134 cm 0 0 m -43.92 -59.76 l -66.96 -32.4 l h S Q Q q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 295.8 577.4 cm 0 0 m 4.392 5.976 l 6.696 3.24 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 2958 5774 cm 0 0 m 43.92 59.76 l 66.96 32.4 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3334.25 6088.25 cm 0 0 m -321 -268 l S Q Q q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 295.8 548.6 cm 0 0 m 3.168 -6.696 l -0.36 -7.416 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 2958 5486 cm 0 0 m 31.68 -66.96 l -3.6 -74.16 l h S Q Q q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 303 512.6 cm 0 0 m -3.168 6.696 l 0.36 7.416 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3030 5126 cm 0 0 m -31.68 66.96 l 3.6 74.16 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2972.25 5415.25 cm 0 0 m 44 -219 l S Q Q q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 367.8 613.4 cm 0 0 m 0.216 -7.416 l -3.312 -6.696 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 3678 6134 cm 0 0 m 2.16 -74.16 l -33.12 -66.96 l h S Q Q q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 346.2 512.6 cm 0 0 m -0.216 7.416 l 3.312 6.696 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 3462 5126 cm 0 0 m -2.16 74.16 l 33.12 66.96 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3663.25 6063.25 cm 0 0 m -186 -867 l S Q Q BT /T1_1 1 Tf 7.9947 0 0 7.9947 203.3218 415.1259 Tm (Figure 1.12)Tj /T1_0 1 Tf 5.695 0 Td [(Dif)18(fer)18(ence between C library functions and system calls)]TJ 9.9934 0 0 9.9934 129.5147 383.9465 Tm [(we )-87(compar)]TJ 0.3371 Tc 5.001 0 Td (et)Tj 0 Tc 1.142 0 Td [(he )-87(unbuf)18(fer)18(ed )-87(I/O )-87(functions )-87(\(Chapter )-87(3\) )-87(and )-87(the )-87(standar)]TJ 0.3372 Tc 25.711 0 Td (dI)Tj 0 Tc 1.285 0 Td [(/O )-87(functions)]TJ -33.14 -1.2 Td (\(Chapter 5\).)Tj 1.8 -1.2 Td [(The )-110(pr)18(ocess )-110(contr)18(ol )-110(system )-110(calls )-110(\()]TJ /TT0 1 Tf 15.258 0 Td (fork)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.01 0 Td (exec)Tj /T1_0 1 Tf 0.3604 Tc (,a)Tj 0 Tc 3.51 0 Td (nd)Tj /TT0 1 Tf 1.553 0 Td (waitpid)Tj /T1_0 1 Tf 0.3603 Tc (\)a)Tj -0.018 Tc 5.393 0 Td [(re )-146(u)]TJ 0 Tc 1.819 0 Td [(sually )-110(invoked)]TJ -32.345 -1.2 Td [(by )-86(the )-86(user)-74(\325s )-86(application )-86(code )-86(dir)19(ectly)]TJ 0.5858 Tc 17.169 0 Td (.\()Tj 0 Tc 1.169 0 Td [(Recall )-86(the )-86(bar)18(e-bones )-86(shell )-86(in )-86(Figur)]TJ 0.3359 Tc 15.888 0 Td (e1)Tj 0 Tc 1.315 0 Td [(.7.\) )-336(But)]TJ -35.541 -1.2 Td [(some )-115(library )-115(r)18(outines )-115(exist )-115(to )-115(simplify )-115(certain )-115(common )-115(cases: )-115(the)]TJ /TT0 1 Tf 29.977 0 Td (system)Tj /T1_0 1 Tf 3.965 0 Td (and)Tj /TT0 1 Tf 2.058 0 Td (popen)Tj /T1_0 1 Tf -36 -1.2 Td [(library )-211(r)18(outines, )-211(for )-211(example.)-713(In )-212(Section )-212(8.13, )-212(we\325ll )-212(show )-212(an )-212(implementation )-212(of )-212(the)]TJ /TT0 1 Tf 0 -1.2 TD (system)Tj /T1_0 1 Tf 3.888 0 Td [(function )-37(that )-37(invokes )-37(the )-37(basic )-37(pr)18(ocess )-37(contr)18(ol )-37(system )-37(calls.)]TJ -0.092 Tc 27.019 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-37(enhance )-37(this)]TJ -32.294 -1.2 Td [(example in Section 10.18 to handle signals corr)18(ectly)111(.)]TJ -0.092 Tc 1.8 -1.2 Td [(To )-225(d)]TJ 0 Tc 1.969 0 Td [(e\336ne )-41(the )-41(interface )-41(to )-41(the )-41(UNIX )-41(System )-41(that )-41(most )-41(pr)18(ogrammers )-41(use, )-41(we )-41(have )-41(to)]TJ -3.769 -1.2 Td [(describe )-89(both )-89(the )-89(system )-89(calls )-89(and )-89(some )-89(of )-89(the )-89(library )-89(functions.)-584(If )-88(we )-88(described )-88(only)]TJ T* (the)Tj /TT0 1 Tf 1.92 0 Td (sbrk)Tj /T1_0 1 Tf 2.933 0 Td [(system )-283(call, )-283(for )-283(example, )-283(we )-283(would )-283(skip )-283(the )-283(mor)]TJ 0.533 Tc 23.667 0 Td (ep)Tj -0.018 Tc 1.613 0 Td (ro)Tj 0 Tc 0.923 0 Td [(grammer)18(-friendly)]TJ /TT0 1 Tf -31.056 -1.2 Td (malloc)Tj /T1_0 1 Tf 4.021 0 Td [(library )-170(function )-170(that )-170(many )-170(applications )-170(use.)-673(In )-170(this )-170(text, )-170(we\325ll )-170(use )-170(the )-170(term)]TJ /T1_2 1 Tf -4.02 -1.2 Td (function)Tj /T1_0 1 Tf 3.661 0 Td [(to )-3(r)18(efer )-3(to )-3(both )-3(system )-3(calls )-3(and )-3(library )-3(functions, )-3(except )-3(when )-3(the )-3(distinction )-3(is)]TJ -3.661 -1.2 Td [(necessary)111(.)]TJ /TT1 1 Tf 11.9921 0 0 11.9921 93.5381 192.0732 Tm [(1.12 )-776(Summar)-10(y)]TJ /T1_0 1 Tf 9.9934 0 0 9.9934 129.5144 168.089 Tm [(This )-90(chapter )-90(has )-90(pr)18(ovided )-90(a )-90(short )-90(tour )-90(of )-90(the )-90(UNIX )-90(System.)]TJ -0.092 Tc 27.774 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ve )-89(described )-89(some )-89(of)]TJ -29.161 -1.2 Td [(the )-26(fundamental )-26(terms )-26(that )-26(we\325ll )-26(encounter )-26(over )-26(and )-26(over )-26(again.)]TJ -0.092 Tc 29.278 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ve )-26(seen )-26(numer)18(ous)]TJ -30.665 -1.2 Td [(small )-86(examples )-86(of )-86(UNIX )-86(pr)18(ograms )-86(to )-86(give )-86(us )-86(a )-86(feel )-86(for )-86(what )-86(the )-86(r)15(emainder )-86(of )-86(the )-86(text)]TJ T* (talks about.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46783 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1.1)]TJ 22.1893 Tc 4.888 0 Td (1S)Tj 0 Tc 23.214 0 Td [(ystem )-250(Calls )-250(and )-250(Library )-250(Functions)]TJ /T1_1 1 Tf 18.231 0 Td (21)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(1.11 )-776(System)-556(Calls )-278(and )-278(Librar)]TJ 0.556 Tc 15.237 0 Td (yF)Tj 0 Tc 1.723 0 Td (unctions)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 642.5614 Tm [(All )-69(operating )-69(systems )-69(pr)18(ovide )-69(service )-69(points )-69(thr)18(ough )-69(which )-69(pr)18(ograms )-69(r)18(equest )-69(services)]TJ 0 -1.2 TD [(fr)18(om )-246(the )-246(kernel.)-747(All )-246(implementations )-246(of )-246(the )-246(UNIX )-246(System )-246(pr)18(ovide )-246(a )-246(well-de\336ned,)]TJ T* [(limited )-346(number )-346(of )-346(entry )-346(points )-346(dir)18(ectly )-346(into )-346(the )-346(kernel )-346(called)]TJ /T1_2 1 Tf 30.519 0 Td [(system )-346(calls)]TJ /T1_0 1 Tf 5.766 0 Td [(\(r)18(ecall)]TJ -36.285 -1.2 Td (Figur)Tj 0.4077 Tc 2.383 0 Td (e1)Tj 0 Tc 1.387 0 Td [(.1\). )-408(V)111(ersion )-158(7 )-158(of )-158(the )-158(Resear)19(ch )-158(UNIX )-158(System )-158(pr)18(ovided )-158(about )-158(50 )-158(system )-158(calls,)]TJ -3.77 -1.2 Td [(4.4BSD )-143(pr)18(ovided )-143(about )-143(1)55(10, )-143(and )-143(SVR4 )-143(had )-143(ar)17(ound )-143(120.)-643(The )-143(exact )-143(number )-143(of )-143(system)]TJ T* [(calls )-25(varies )-25(depending )-25(on )-25(the )-25(operating )-25(system )-25(version.)-523(Mor)]TJ 0.2749 Tc 27.128 0 Td (er)Tj 0 Tc 1.131 0 Td [(ecent )-25(systems )-25(have )-25(seen)]TJ -28.259 -1.2 Td [(incr)18(edible )-51(gr)18(owth )-51(in )-51(the )-51(number )-51(of )-51(supported )-51(system )-51(calls.)-551(Linux )-51(3.2.0 )-51(has )-51(380 )-51(system)]TJ T* [(calls and Fr)18(eeBSD 8.0 has over 450.)]TJ 1.8 -1.2 Td [(The )-163(system )-163(call )-163(interface )-163(has )-163(always )-163(been )-163(documented )-163(in )-163(Section )-163(2 )-163(of )-163(the)]TJ /T1_2 1 Tf 34.589 0 Td (UNIX)Tj -36.389 -1.2 Td [(Pr)18(ogrammer )213(\325)]TJ 0.8514 Tc 5.353 0 Td (sM)Tj 0 Tc 2.184 0 Td (anual)Tj /T1_0 1 Tf 1.1014 Tc (.I)Tj 0 Tc 3.966 0 Td [(ts )-601(de\336nition )-601(is )-601(in )-601(the )-601(C )-601(language, )-601(no )-601(matter )-601(which)]TJ -11.504 -1.2 Td [(implementation )-32(technique )-32(is )-32(actually )-32(used )-32(on )-32(any )-32(given )-32(system )-32(to )-32(invoke )-32(a )-32(system )-32(call.)]TJ T* [(This )-63(dif)18(fers )-63(fr)18(om )-63(many )-63(older )-63(operating )-63(systems, )-63(which )-63(traditionally )-63(de\336ned )-63(the )-63(kernel)]TJ T* (entry points in the assembly language of the machine.)Tj 1.8 -1.2 Td [(The )-91(technique )-91(used )-91(on )-91(UNIX )-91(systems )-91(is )-91(for )-91(each )-91(system )-91(call )-91(to )-91(have )-91(a )-91(function )-91(of)]TJ -1.8 -1.2 Td [(the )-41(same )-41(name )-41(in )-41(the )-41(standar)]TJ 0.2913 Tc 13.154 0 Td (dCl)Tj 0 Tc 2.194 0 Td (ibrary)Tj 0.5413 Tc 2.579 0 Td (.T)Tj 0 Tc 1.404 0 Td [(he )-41(user )-41(pr)18(ocess )-41(calls )-41(this )-41(function, )-41(using )-41(the)]TJ -19.331 -1.2 Td (standar)Tj 0.283 Tc 3.32 0 Td (dCc)Tj 0 Tc 2.33 0 Td [(alling )-33(sequence.)-533(This )-33(function )-33(then )-33(invokes )-33(the )-33(appr)18(opriate )-33(kernel )-33(service,)]TJ -5.65 -1.2 Td [(using )-10(whatever )-10(technique )-10(is )-10(r)18(equir)18(ed )-10(on )-10(the )-10(system.)-510(For )-10(example, )-10(the )-10(function )-10(may )-10(put)]TJ T* [(one )-79(or )-79(mor)19(e)-329(of)-329(the )-79(C )-79(ar)18(guments )-79(into )-79(general )-79(r)18(egisters )-79(and )-79(then )-79(execute )-79(some )-79(machine)]TJ T* [(instr)8(uction )-72(that )-72(generates )-72(a )-72(softwar)]TJ 0.3223 Tc 15.885 0 Td (ei)Tj 0 Tc 1.092 0 Td [(nterr)8(upt )-72(in )-72(the )-72(kernel.)-572(For )-72(our )-72(purposes, )-72(we )-72(can)]TJ -16.978 -1.2 Td (consider the system calls to be C functions.)Tj 1.8 -1.2 Td [(Section )-235(3 )-235(of )-235(the)]TJ /T1_2 1 Tf 7.901 0 Td [(UNIX )-235(Pr)18(ogrammer )213(\325)]TJ 0.4854 Tc 8.449 0 Td (sM)Tj 0 Tc 1.818 0 Td (anual)Tj /T1_0 1 Tf 2.763 0 Td [(de\336nes )-235(the )-235(general-purpose )-235(library)]TJ -22.732 -1.2 Td [(functions )-20(available )-20(to )-20(pr)19(ogrammers. )-270(These)-269(functions )-20(ar)18(en\325t )-20(entry )-20(points )-20(into )-20(the )-20(kernel,)]TJ T* [(although )-115(they )-115(may )-115(invoke )-115(one )-115(or )-115(mor)20(e)-365(of)-365(t)1(he )-115(kernel\325s )-115(system )-115(calls.)-615(For )-115(example, )-115(the)]TJ /TT1 1 Tf T* (printf)Tj /T1_0 1 Tf 3.998 0 Td [(function )-148(may )-148(use )-148(the)]TJ /TT1 1 Tf 10.131 0 Td (write)Tj /T1_0 1 Tf 3.398 0 Td [(system )-148(call )-148(to )-148(output )-148(a )-148(string, )-148(but )-148(the)]TJ /TT1 1 Tf 17.873 0 Td (strcpy)Tj /T1_0 1 Tf -35.4 -1.2 Td [(\(copy )-4(a )-4(string\) )-4(and)]TJ /TT1 1 Tf 8.598 0 Td (atoi)Tj /T1_0 1 Tf 2.654 0 Td [(\(convert )-4(ASCII )-4(to )-4(integer\) )-4(functions )-4(don\325t )-4(involve )-4(the )-4(kernel )-4(at)]TJ -11.253 -1.2 Td (all.)Tj 1.8 -1.2 Td [(Fr)18(om )-98(an )-98(implementor)-75(\325s )-98(point )-98(of )-98(view)]TJ 0.3483 Tc 17.02 0 Td (,t)Tj 0 Tc 0.924 0 Td [(he )-98(distinction )-98(between )-98(a )-98(system )-98(call )-98(and )-98(a)]TJ -19.744 -1.2 Td [(library )-112(function )-112(is )-112(fundamental.)-613(Fr)18(om )-112(a )-112(user)-74(\325s )-112(perspective, )-112(however)]TJ 0.3624 Tc 31.171 0 Td (,t)Tj 0 Tc 0.938 0 Td [(he )-112(dif)18(fer)18(ence )-112(is)]TJ -32.109 -1.2 Td [(not )-29(as )-29(critical.)-528(Fr)18(om )-29(our )-29(perspective )-29(in )-29(this )-29(text, )-29(both )-29(system )-29(calls )-29(and )-29(library )-29(functions)]TJ 0 -1.2 Td [(appear )-62(as )-62(normal )-62(C )-62(functions.)-560(Both )-62(exist )-62(to )-62(pr)18(ovide )-62(services )-62(for )-62(application )-62(pr)20(ograms.)]TJ -0.092 Tc T* [(We )-492(s)]TJ 0 Tc 2.369 0 Td [(hould )-308(r)18(ealize, )-308(however)]TJ 0.5579 Tc 10.722 0 Td (,t)Tj 0 Tc 1.134 0 Td [(hat )-308(we )-308(can )-308(r)18(eplace )-308(the )-308(library )-308(functions, )-308(if )-308(desir)20(ed,)]TJ -14.225 -1.2 Td [(wher)18(eas the system calls usually cannot be r)18(eplaced.)]TJ 1.8 -1.2 Td [(Consider )-91(the )-91(memory )-91(allocation )-91(function)]TJ /TT1 1 Tf 18.893 0 Td (malloc)Tj /T1_0 1 Tf 3.941 0 Td [(as )-91(an )-91(example.)-590(Ther)]TJ 0.3408 Tc 9.328 0 Td (ea)Tj -0.018 Tc 1.32 0 Td [(re )-127(m)]TJ 0 Tc 2.08 0 Td (any)Tj -37.362 -1.2 Td [(ways )-9(to )-9(do )-9(memory )-9(allocation )-9(and )-9(its )-9(associated )-9(garbage )-9(collection )-9(\(best )-9(\336t, )-9(\336rst )-9(\336t, )-9(and)]TJ T* [(so )-164(on\).)-663(No )-164(single )-164(technique )-164(is )-164(optimal )-164(for )-164(all )-164(pr)19(ograms. )-414(The)-414(UNIX )-164(system )-164(call )-164(that)]TJ -0 -1.2 Td [(handles )-225(memory )-225(allocation,)]TJ /TT1 1 Tf 13.202 0 Td (sbrk)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.333 -0.04 Td [(,)-475(is)-475(n)1(ot )-225(a )-225(general-purpose )-225(memory )-225(manager)]TJ 0.7247 Tc 20.594 0 Td (.I)Tj 0 Tc 1.312 0 Td (t)Tj -38.674 -1.2 Td [(incr)18(eases )-72(or )-72(decr)18(eases )-72(the )-72(addr)18(ess )-72(space )-72(of )-72(the )-72(pr)18(ocess )-72(by )-72(a )-72(speci\336ed )-72(number )-72(of )-72(bytes.)]TJ T* [(How )-221(that )-221(space )-221(is )-221(managed )-221(is )-221(up )-221(to )-221(the )-221(pr)22(ocess. )-470(The)-471(memory )-220(allocation )-220(function,)]TJ /TT1 1 Tf -0 -1.2 Td (malloc)Tj /T1_0 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (3)Tj 0.5 0.04 Td (\))Tj 0.3028 Tc 0.333 -0.04 Td (,i)Tj 0 Tc 0.844 0 Td [(mplements )-53(one )-53(particular )-53(type )-53(of )-53(allocation.)-552(If )-53(we )-53(don\325t )-53(like )-53(its )-53(operation,)]TJ -5.61 -1.2 Td [(we )-19(can )-19(de\336ne )-19(our )-19(own)]TJ /TT1 1 Tf 10.445 0 Td (malloc)Tj /T1_0 1 Tf 3.869 0 Td [(function, )-19(which )-19(will )-19(pr)18(obably )-19(use )-19(the)]TJ /TT1 1 Tf 16.88 0 Td (sbrk)Tj /T1_0 1 Tf 2.669 0 Td [(system )-19(call.)]TJ -33.863 -1.2 Td [(In )-521(fact, )-521(numer)18(ous )-521(softwar)]TJ 0.7714 Tc 12.923 0 Td (ep)Tj 0 Tc 1.851 0 Td [(ackages )-521(implement )-521(their )-521(own )-521(memory )-521(allocation)]TJ -14.775 -1.2 Td [(algorithms )-92(with )-92(the)]TJ /TT1 1 Tf 9.24 0 Td (sbrk)Tj /T1_0 1 Tf 2.742 0 Td [(system )-92(call.)-592(Figur)]TJ 0.3421 Tc 8.185 0 Td (e1)Tj 0 Tc 1.321 0 Td (.1)Tj 0.3421 Tc 0.695 0 Td (1s)Tj 0 Tc 1.266 0 Td [(hows )-92(the )-92(r)18(elationship )-92(between )-92(the)]TJ -23.45 -1.2 Td (application, the)Tj /TT1 1 Tf 7.11 0 Td (malloc)Tj /T1_0 1 Tf 3.85 0 Td (function, and the)Tj /TT1 1 Tf 7.787 0 Td (sbrk)Tj /T1_0 1 Tf 2.65 0 Td (system call.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46784 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (20)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(System )-250(Overview)]TJ 39.741 0 Td [(Chapter )-250(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(1.10 )-776(Time)]TJ -0.06 Tc 5.89 0 Td (Va)Tj 0 Tc 1.163 0 Td (lues)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5923 644.9613 Tm (Historically)Tj 0.25 Tc 5.076 0 Td (,U)Tj 0 Tc 1.278 0 Td [(NIX systems have maintained two dif)18(fer)18(ent time values:)]TJ -4.554 -1.92 Td [(1. )-633(Calendar)-530(time. )-530(This)-531(value )-281(counts )-281(the )-281(number )-281(of )-281(seconds )-281(since )-281(the )-281(Epoch:)]TJ 1.633 -1.2 Td [(00:00:00 )-146(January )-146(1, )-146(1970, )-146(Coor)18(dinated )-146(Universal )-146(T)57(ime)]TJ 24.832 0.04 Td (\()Tj 0.333 -0.04 Td (UTC)Tj 2.1 0.04 Td (\))Tj 0.6455 Tc 0.333 -0.04 Td (.\()Tj 0 Tc 1.229 0 Td [(Older )-145(manuals)]TJ -0.018 Tc -28.827 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(fer )-106(to )-106(UTC )-106(as )-106(Gr)18(eenwich )-106(Mean )-106(T)55(ime.\) )-356(These)-356(time )-106(values )-106(ar)]TJ 0.3561 Tc 27.341 0 Td (eu)Tj 0 Tc 1.438 0 Td [(sed )-106(to )-106(r)18(ecor)18(d)]TJ -29.635 -1.2 Td (the time when a \336le was last modi\336ed, for example.)Tj 0 -1.56 TD (The primitive system data type)Tj /TT1 1 Tf 14.037 0 Td (time_t)Tj /T1_1 1 Tf 3.85 0 Td (holds these time values.)Tj -19.52 -1.6 Td [(2. )-633(Pr)18(ocess )-101(time.)-602(This )-101(is )-101(also )-101(called )-101(CPU )-101(time )-101(and )-101(measur)18(es )-101(the )-101(central )-101(pr)15(ocessor)]TJ -0.018 Tc 1.633 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sour)18(ces )-197(used )-197(by )-197(a )-197(pr)17(ocess. )-447(Pr)18(ocess )-197(time )-197(is )-197(measur)18(ed )-197(in )-197(clock )-197(ticks, )-197(which)]TJ -0.856 -1.2 Td (have historically been 50, 60, or 100 ticks per second.)Tj T* [(The )-71(primitive )-71(system )-71(data )-71(type)]TJ /TT1 1 Tf 14.391 0 Td (clock_t)Tj /T1_1 1 Tf 4.521 0 Td [(holds )-71(these )-71(time )-71(values.)-570(\(W)92(e\325ll )-71(show)]TJ -18.912 -1.2 Td [(how )-55(to )-55(obtain )-55(the )-55(number )-55(of )-55(clock )-55(ticks )-55(per )-55(second )-55(with )-55(the)]TJ /TT1 1 Tf 27.355 0 Td (sysconf)Tj /T1_1 1 Tf 4.505 0 Td (function)Tj -31.86 -1.2 Td (in Section 2.5.4.\))Tj -1.633 -1.92 Td [(When )-94(we )-94(measur)]TJ 0.3443 Tc 7.911 0 Td (et)Tj 0 Tc 1.149 0 Td [(he )-94(execution )-94(time )-94(of )-94(a )-94(pr)17(ocess, )-94(as )-94(in )-94(Section )-94(3.9, )-94(we\325ll )-94(see )-94(that)]TJ -10.86 -1.2 Td [(the UNIX System maintains thr)18(ee values for a pr)18(ocess:)]TJ 0.75 Tc 1.8 -1.8 Td (\245C)Tj 0 Tc 2.065 0 Td (lock time)Tj 0.75 Tc -2.065 -1.2 Td (\245U)Tj 0 Tc 2.134 0 Td (ser CPU time)Tj 0.75 Tc -2.134 -1.2 Td (\245S)Tj 0 Tc 1.881 0 Td (ystem CPU time)Tj -3.681 -1.8 Td [(The )-41(clock )-41(time, )-41(sometimes )-41(called)]TJ /T1_2 1 Tf 14.991 0 Td [(wall )-41(clock )-41(time)]TJ /T1_1 1 Tf [(,)-291(is)-291(the )-41(amount )-41(of )-41(time )-41(the )-41(pr)18(ocess )-41(takes)]TJ -14.991 -1.2 Td [(to )-3(r)8(un, )-3(and )-3(its )-3(value )-3(depends )-3(on )-3(the )-3(number )-3(of )-3(other )-3(pr)18(ocesses )-3(being )-3(r)8(un )-3(on )-3(the )-3(system.)]TJ 0 -1.2 TD [(Whenever )-13(we )-13(r)17(eport )-13(the )-13(clock )-13(time, )-13(the )-13(measur)18(ements )-13(ar)]TJ 0.2634 Tc 25.305 0 Td (em)Tj 0 Tc 1.625 0 Td [(ade )-13(with )-13(no )-13(other )-13(activities)]TJ -26.93 -1.2 Td (on the system.)Tj 1.8 -1.2 Td [(The )-8(user )-8(CPU )-8(time )-8(is )-8(the )-8(CPU )-8(time )-8(attributed )-8(to )-8(user )-8(instr)4(uctions. )-258(The)-259(system )-8(CPU)]TJ -1.8 -1.2 Td [(time )-55(is )-55(the )-55(CPU )-55(time )-55(attributed )-55(to )-55(the )-55(kernel )-55(when )-55(it )-55(executes )-55(on )-55(behalf )-55(of )-55(the )-55(pr)21(ocess.)]TJ T* [(For )-14(example, )-14(whenever )-14(a )-14(pr)18(ocess )-14(executes )-14(a )-14(system )-14(service, )-14(such )-14(as)]TJ /TT1 1 Tf 30.231 0 Td (read)Tj /T1_1 1 Tf 2.664 0 Td (or)Tj /TT1 1 Tf 1.204 0 Td (write)Tj /T1_1 1 Tf 0.2635 Tc (,t)Tj 0 Tc 3.839 0 Td (he)Tj -37.939 -1.2 Td [(time )-96(spent )-96(within )-96(the )-96(kernel )-96(performing )-96(that )-96(system )-96(service )-96(is )-96(char)18(ged )-96(to )-96(the )-96(pr)14(ocess.)]TJ T* (The sum of user CPU time and system CPU time is often called the)Tj /T1_2 1 Tf 29.773 0 Td (CPU time)Tj /T1_1 1 Tf (.)Tj -27.973 -1.2 Td [(It )-176(is )-176(easy )-176(to )-176(measur)]TJ 0.4262 Tc 9.18 0 Td (et)Tj 0 Tc 1.231 0 Td [(he )-176(clock )-176(time, )-176(user )-176(time, )-176(and )-176(system )-176(time )-176(of )-176(any )-176(pr)16(ocess:)]TJ -12.211 -1.2 Td [(simply )-57(execute )-57(the)]TJ /TT1 1 Tf 8.679 0 Td (time)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.64 -0.04 Td [(command, )-57(with )-57(the )-57(ar)19(gument )-57(to )-57(the)]TJ /TT1 1 Tf 16.524 0 Td (time)Tj /T1_1 1 Tf 2.707 0 Td [(command )-57(being)]TJ -31.783 -1.2 Td [(the command we want to measur)18(e. )-250(For)-250(example:)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.5904 254.6847 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (cd /usr/include)Tj /TT1 1 Tf -1.2 -1.189 Td ($)Tj /TT2 1 Tf 1.2 0 Td (time -p grep _POSIX_SOURCE */*.h > /dev/null)Tj /TT1 1 Tf -1.2 -2.021 Td [(real )-1800(0m0.81s)]TJ 0 -1.189 TD [(user )-1800(0m0.11s)]TJ T* [(sys )-2400(0m0.07s)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5915 186.399 Tm [(The )-80(output )-80(format )-80(fr)18(om )-80(the)]TJ /TT1 1 Tf 12.836 0 Td (time)Tj /T1_1 1 Tf 2.729 0 Td [(command )-79(depends )-79(on )-79(the )-79(shell )-79(being )-79(used, )-79(because)]TJ -15.566 -1.2 Td [(some )-28(shells )-28(don\325t )-28(r)8(un)]TJ /TT1 1 Tf 9.85 0 Td (/usr/bin/time)Tj /T1_1 1 Tf 0.2782 Tc (,b)Tj 0 Tc 8.881 0 Td [(ut )-28(instead )-28(have )-28(a )-28(separate )-28(built-in )-28(function )-28(to)]TJ -18.732 -1.2 Td (measur)Tj 0.25 Tc 3.266 0 Td (et)Tj 0 Tc 1.055 0 Td [(he time it takes commands to r)8(un.)]TJ -2.521 -1.2 Td [(In )-121(Section )-121(8.17, )-121(we\325ll )-121(see )-121(how )-121(to )-121(obtain )-121(these )-121(thr)18(ee )-121(times )-121(fr)18(om )-121(a )-121(r)4(unning )-121(pr)18(ocess.)]TJ -1.8 -1.2 Td [(The general topic of times and dates is cover)18(ed in Section 6.10.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46785 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (18)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(System )-250(Overview)]TJ 39.741 0 Td [(Chapter )-250(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(Supplementar )268(y)-278(Gr)20(oup IDs)]TJ /T1_1 1 Tf 3.6 -2.64 Td [(In )-248(addition )-248(to )-248(the )-248(gr)18(oup )-248(ID )-248(speci\336ed )-248(in )-248(the )-248(passwor)]TJ 0.4981 Tc 25.113 0 Td (d\336)Tj 0 Tc 1.714 0 Td [(le )-248(for )-248(a )-248(login )-248(name, )-248(most)]TJ -26.827 -1.2 Td [(versions )-199(of )-199(the )-199(UNIX )-199(System )-199(allow )-199(a )-199(user )-199(to )-199(belong )-199(to )-199(other )-199(gr)20(oups. )-449(This)-449(practice)]TJ 0 -1.2 TD [(started )-184(with )-184(4.2BSD, )-184(which )-184(allowed )-184(a )-184(user )-184(to )-184(belong )-184(to )-184(up )-184(to )-184(16 )-184(additional )-184(gr)17(oups.)]TJ T* (These)Tj /T1_2 1 Tf 3.324 0 Td [(supplementary )-497(gr)18(oup )-497(IDs)]TJ /T1_1 1 Tf 12.114 0 Td (ar)Tj 0.7474 Tc 0.877 0 Td (eo)Tj 0 Tc 1.772 0 Td [(btained )-497(at )-497(login )-497(time )-497(by )-497(r)16(eading )-497(the )-497(\336le)]TJ /TT1 1 Tf -18.088 -1.2 Td (/etc/group)Tj /T1_1 1 Tf 6.281 0 Td [(and )-30(\336nding )-30(the )-30(\336rst )-30(16 )-30(entries )-30(that )-30(list )-30(the )-30(user )-30(as )-30(a )-30(member)]TJ 0.5305 Tc 26.775 0 Td (.A)Tj 0 Tc 1.559 0 Td [(s)-280(we)-280(s)-1(hall)]TJ -34.614 -1.2 Td [(see )-75(in )-75(the )-75(next )-75(chapter)]TJ 0.3253 Tc 10.099 0 Td (,P)Tj 0 Tc 1.179 0 Td [(OSIX )-75(r)18(equir)18(es )-75(that )-75(a )-75(system )-75(support )-75(at )-75(least )-75(8 )-75(supplementary)]TJ -11.278 -1.2 Td [(gr)18(oups per pr)18(ocess, but most systems support at least 16.)]TJ /TT0 1 Tf 11.9993 0 0 11.9993 93.5938 532.1681 Tm [(1.9 )-1332(Signals)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5916 505.7697 Tm [(Signals )-73(ar)]TJ 0.3232 Tc 4.369 0 Td (eat)Tj 0 Tc 1.951 0 Td [(echnique )-73(used )-73(to )-73(notify )-73(a )-73(pr)17(ocess )-73(that )-73(some )-73(condition )-73(has )-73(occurr)18(ed. )-323(For)]TJ -6.321 -1.2 Td [(example, )-56(if )-56(a )-56(pr)18(ocess )-56(divides )-56(by )-56(zer)18(o, )-56(the )-56(signal )-56(whose )-56(name )-56(is)]TJ /TT1 1 Tf 28.673 0 Td (SIGFPE)Tj /T1_1 1 Tf 3.906 0 Td (\(\337oating-point)Tj -32.579 -1.2 Td [(exception\) )-171(is )-171(sent )-171(to )-171(the )-171(pr)19(ocess. )-421(The)-421(pr)18(ocess )-171(has )-171(thr)18(ee )-171(choices )-171(for )-171(dealing )-171(with )-171(the)]TJ 0 -1.2 Td (signal.)Tj 1.8 -2.4 Td [(1. )-633(Ignor)]TJ 0.4984 Tc 4.031 0 Td (et)Tj 0 Tc 1.303 0 Td [(he )-248(signal.)-748(This )-248(option )-248(isn\325t )-248(r)16(ecommended )-248(for )-248(signals )-248(that )-248(denote )-248(a)]TJ -3.701 -1.2 Td [(har)18(dwar)]TJ 0.4065 Tc 3.781 0 Td (ee)Tj 0 Tc 1.364 0 Td [(xception, )-156(such )-156(as )-156(dividing )-156(by )-156(zer)16(o)-406(or)-406(r)17(efer)18(encing )-156(memory )-156(outside)]TJ -5.145 -1.2 Td [(the addr)18(ess space of the pr)18(ocess, as the r)18(esults ar)]TJ 0.25 Tc 21.434 0 Td (eu)Tj 0 Tc 1.332 0 Td (nde\336ned.)Tj -24.399 -1.6 Td [(2. )-633(Let)-414(the )-164(default )-164(action )-164(occur)]TJ 0.6638 Tc 14.281 0 Td (.F)Tj 0 Tc 1.47 0 Td [(or )-164(a )-164(divide-by-zer)]TJ 0.4138 Tc 8.248 0 Td (oc)Tj 0 Tc 1.404 0 Td [(ondition, )-164(the )-164(default )-164(is )-164(to)]TJ -23.769 -1.2 Td [(terminate the pr)18(ocess.)]TJ -1.633 -1.6 Td [(3. )-633(Pr)18(ovide )-12(a )-12(function )-12(that )-12(is )-12(called )-12(when )-12(the )-12(signal )-12(occurs )-12(\(this )-12(is )-12(called )-12(\324)34(\324catching\325)37(\325)]TJ 1.633 -1.2 Td [(the )-140(signal\).)-641(By )-140(pr)18(oviding )-140(a )-140(function )-140(of )-140(our )-140(own, )-140(we\325ll )-140(know )-140(when )-140(the )-140(signal)]TJ T* (occurs and we can handle it as we wish.)Tj -1.633 -2.4 Td [(Many )-213(conditions )-213(generate )-213(signals.)]TJ -0.09 Tc 16.445 0 Td (Tw)Tj 0.4635 Tc 1.357 0 Td (ot)Tj 0 Tc 1.336 0 Td [(erminal )-213(keys, )-213(called )-213(the)]TJ /T1_2 1 Tf 11.543 0 Td [(interrupt )-213(key)]TJ /T1_1 1 Tf (\321)Tj -32.481 -1.2 Td [(often )-148(the )-148(DELETE )-148(key )-148(or )-148(Contr)18(ol-C )167(\321 )167(and)-399(the)]TJ /T1_2 1 Tf 21.468 0 Td [(quit )-148(key)]TJ /T1_1 1 Tf [(\321often )-148(Contr)18(ol-backslash )167(\321 )167(ar)17(e)]TJ -21.468 -1.2 Td [(used )-35(to )-35(interr)8(upt )-35(the )-35(curr)18(ently )-35(r)8(unning )-35(pr)18(ocess. )-285(Another)-285(way )-35(to )-35(generate )-35(a )-35(signal )-35(is )-35(by)]TJ T* [(calling )-85(the)]TJ /TT1 1 Tf 5.012 0 Td (kill)Tj /T1_1 1 Tf 2.735 0 Td [(function. )-335(W)]TJ 0.3352 Tc 5.45 0 Td (ec)Tj 0 Tc 1.258 0 Td [(an )-85(call )-85(this )-85(function )-85(fr)17(om )-85(a )-85(pr)18(ocess )-85(to )-85(send )-85(a )-85(signal )-85(to)]TJ -14.456 -1.2 Td [(another )-79(pr)18(ocess. )-329(Naturally)]TJ 0.3288 Tc 12.045 0 Td (,t)Tj 0 Tc 0.905 0 Td (her)Tj 0.3288 Tc 1.438 0 Td (ea)Tj -0.018 Tc 1.308 0 Td [(re )-115(l)]TJ 0 Tc 1.476 0 Td [(imitations: )-79(we )-79(have )-79(to )-79(be )-79(the )-79(owner )-79(of )-79(the )-79(other)]TJ -17.171 -1.2 Td [(pr)18(ocess \(or the super)8(user\) to be able to send it a signal.)]TJ /TT0 1 Tf -3.6 -3.12 Td (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(Recall )-99(the )-99(bar)18(e-bones )-99(shell )-99(example )-99(\(Figur)]TJ 0.3491 Tc 19.163 0 Td (e1)Tj 0 Tc 1.328 0 Td [(.7\). )-349(If)-349(we )-99(invoke )-99(this )-99(pr)18(ogram )-99(and )-99(pr)17(ess)]TJ -20.492 -1.2 Td [(the )-253(interr)8(upt )-253(key)]TJ 0.5029 Tc 7.863 0 Td (,t)Tj 0 Tc 1.079 0 Td [(he )-253(pr)18(ocess )-253(terminates )-253(because )-253(the )-253(default )-253(action )-253(for )-253(this )-253(signal,)]TJ -8.942 -1.2 Td (named)Tj /TT1 1 Tf 3.443 0 Td (SIGINT)Tj /T1_1 1 Tf [(,)-388(is)-388(to)-388(terminate )-138(the )-138(pr)18(ocess. )-388(The)-388(pr)18(ocess )-138(hasn\325t )-138(told )-138(the )-138(kernel )-138(to )-138(do)]TJ -3.443 -1.2 Td [(anything other than the default with this signal, so the pr)18(ocess terminates.)]TJ -0.092 Tc 1.8 -1.2 Td [(To )-258(c)]TJ 0 Tc 1.835 0 Td [(atch )-74(this )-74(signal, )-74(the )-74(pr)18(ogram )-74(needs )-74(to )-74(call )-74(the)]TJ /TT1 1 Tf 20.892 0 Td (signal)Tj /T1_1 1 Tf 3.924 0 Td [(function, )-74(specifying )-74(the)]TJ -28.451 -1.2 Td [(name )-204(of )-204(the )-204(function )-204(to )-204(call )-204(when )-204(the)]TJ /TT1 1 Tf 18.313 0 Td (SIGINT)Tj /T1_1 1 Tf 4.054 0 Td [(signal )-204(is )-204(generated.)-705(The )-204(function )-204(is)]TJ -22.367 -1.2 Td (named)Tj /TT1 1 Tf 3.37 0 Td (sig_int)Tj /T1_1 1 Tf 0.3153 Tc (;w)Tj 0 Tc 5.599 0 Td [(hen )-65(it\325s )-65(called, )-65(it )-65(just )-65(prints )-65(a )-65(message )-65(and )-65(a )-65(new )-65(pr)15(ompt. )-315(Adding)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46786 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (16)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(System )-250(Overview)]TJ 39.741 0 Td [(Chapter )-250(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Note )-106(that )-106(we )-106(pass )-106(the )-106(name )-106(of )-106(the )-106(pr)16(ogram\321)]TJ /TT0 1 Tf (argv[0])Tj /T1_1 1 Tf 0.3563 Tc (,w)Tj 0 Tc 26.623 0 Td [(hose )-106(value )-106(is)]TJ /TT0 1 Tf 6.253 0 Td (./a.out)Tj /T1_1 1 Tf (\321as)Tj -32.876 -1.2 Td [(the )-37(ar)18(gument )-37(to)]TJ /TT0 1 Tf 7.426 0 Td (perror)Tj /T1_1 1 Tf 0.537 Tc (.T)Tj 0 Tc 5 0 Td [(his )-37(is )-37(a )-37(standar)]TJ 0.2869 Tc 6.693 0 Td (dc)Tj 0 Tc 1.342 0 Td [(onvention )-37(in )-37(the )-37(UNIX )-37(System.)-537(By )-37(doing)]TJ -20.461 -1.2 Td [(this, if the pr)18(ogram is executed as part of a pipeline, as in)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5914 628.2623 Tm (prog1 < inputfile | prog2 | prog3 > outputfile)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5925 610.2634 Tm (we ar)Tj 0.25 Tc 2.44 0 Td (ea)Tj 0 Tc 1.229 0 Td [(ble to tell which of the thr)18(ee pr)18(ograms generated a particular err)18(or message.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 6103.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 586.2296 Tm [(Instead )-19(of )-19(calling )-19(either)]TJ /TT0 1 Tf 10.719 0 Td (strerror)Tj /T1_1 1 Tf 5.069 0 Td (or)Tj /TT0 1 Tf 1.209 0 Td (perror)Tj /T1_1 1 Tf 3.869 0 Td [(dir)18(ectly)]TJ 0.2685 Tc 3.264 0 Td (,t)Tj 0 Tc 0.844 0 Td [(he )-18(examples )-18(in )-18(this )-18(text )-18(use)]TJ -26.774 -1.2 Td [(the )-256(err)18(or )-256(functions )-256(shown )-256(in )-256(Appendix )-256(B.)-757(These )-256(functions )-256(let )-256(us )-256(use )-256(the )-256(variable)]TJ 0 -1.2 TD [(ar)18(gument list facility of ISO C to handle err)18(or conditions with a single C statement.)]TJ /TT1 1 Tf -3.6 -2.64 Td [(Err)20(or Reco)20(ver )268(y)]TJ /T1_1 1 Tf 3.6 -1.92 Td [(The )-8(err)18(ors )-8(de\336ned )-8(in)]TJ /TT0 1 Tf 9.564 0 Td ()Tj /T1_1 1 Tf 5.658 0 Td [(can )-8(be )-8(divided )-8(into )-8(two )-8(categories: )-8(fatal )-8(and )-8(nonfatal.)]TJ 0.2511 Tc -15.222 -1.2 Td (Af)Tj 0 Tc 1.362 0 Td [(atal )-1(err)18(or )-1(has )-1(no )-1(r)18(ecovery )-1(action.)-501(The )-1(best )-1(we )-1(can )-1(do )-1(is )-1(print )-1(an )-1(err)17(or )-1(message )-1(on )-1(the)]TJ -1.362 -1.2 Td [(user )176(\325s)-423(scr)18(een )-173(or )-173(to )-173(a )-173(log )-173(\336le, )-173(and )-173(then )-173(exit.)-671(Nonfatal )-173(err)18(ors, )-173(on )-173(the )-173(other )-173(hand, )-173(can)]TJ T* [(sometimes )-94(be )-94(dealt )-94(with )-94(mor)]TJ 0.344 Tc 13.189 0 Td (er)Tj 0 Tc 1.2 0 Td (obustly)Tj 0.594 Tc 3.188 0 Td (.M)Tj 0 Tc 1.79 0 Td [(ost )-94(nonfatal )-94(err)18(ors )-94(ar)]TJ 0.344 Tc 9.481 0 Td (et)Tj 0 Tc 1.149 0 Td (emporary)Tj 0.344 Tc 4.244 0 Td (,s)Tj 0 Tc 1.018 0 Td [(uch )-94(as )-94(a)]TJ -0.018 Tc -35.259 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sour)18(ce shortage, and might not occur when ther)18(e)-250(is)-250(less activity on the system.)]TJ 0.944 -1.2 Td [(Resour)18(ce-r)18(elated )-351(nonfatal )-351(err)18(ors )-351(include)]TJ /TT0 1 Tf 19.397 0 Td (EAGAIN)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.451 0 Td (ENFILE)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.451 0 Td (ENOBUFS)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 5.051 0 Td (ENOLCK)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -35.15 -1.2 Td (ENOSPC)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.303 0 Td (EWOULDBLOCK)Tj /T1_1 1 Tf 0.4532 Tc (,a)Tj 0 Tc 7.803 0 Td [(nd )-203(sometimes)]TJ /TT0 1 Tf 6.834 0 Td (ENOMEM)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf 4.553 0 Td (EBUSY)Tj /T1_1 1 Tf 3.453 0 Td [(can )-203(be )-203(tr)18(eated )-203(as )-203(nonfatal)]TJ -26.947 -1.2 Td [(when )-16(it )-16(indicates )-16(that )-16(a )-16(shar)18(ed )-16(r)16(esour)18(ce )-16(is )-16(in )-16(use.)-518(Sometimes,)]TJ /TT0 1 Tf 27.588 0 Td (EINTR)Tj /T1_1 1 Tf 3.266 0 Td [(can )-16(be )-16(tr)18(eated )-16(as )-16(a)]TJ -30.855 -1.2 Td [(nonfatal err)18(or when it interr)8(upts a slow system call \(mor)18(e)-250(on)-250(this in Section 10.5\).)]TJ 1.8 -1.2 Td [(The )-10(typical )-10(r)18(ecovery )-10(action )-10(for )-10(a )-10(r)16(esour)18(ce-r)18(elated )-10(nonfatal )-10(err)18(or )-10(is )-10(to )-10(delay )-10(and )-10(r)15(etry)]TJ -1.8 -1.2 Td (later)Tj 0.6407 Tc 1.917 0 Td (.T)Tj 0 Tc 1.504 0 Td [(his )-141(technique )-141(can )-141(be )-141(applied )-141(in )-141(other )-141(cir)20(cumstances. )-391(For)-390(example, )-141(if )-141(an )-141(err)19(or)]TJ -3.421 -1.2 Td [(indicates )-10(that )-10(a )-10(network )-10(connection )-10(is )-10(no )-10(longer )-10(functioning, )-10(it )-10(might )-10(be )-10(possible )-10(for )-10(the)]TJ T* [(application )-3(to )-3(delay )-3(a )-3(short )-3(time )-3(and )-3(then )-3(r)16(eestablish )-3(the )-3(connection.)-503(Some )-3(applications)]TJ T* [(use )-414(an )-414(exponential )-414(backof)]TJ 0.6636 Tc 12.686 0 Td (fa)Tj 0 Tc 1.497 0 Td [(lgorithm, )-414(waiting )-414(a )-414(longer )-414(period )-414(of )-414(time )-414(in )-414(each)]TJ -14.182 -1.2 Td (subsequent iteration.)Tj 1.8 -1.2 Td [(Ultimately)111(,)-403(it)-403(is)-403(up)-403(to)-403(the )-153(application )-153(developer )-153(to )-153(determine )-153(the )-153(cases )-153(wher)]TJ 0.4029 Tc 35.236 0 Td (ea)Tj 0 Tc 1.382 0 Td (n)Tj -38.418 -1.2 Td [(application )-24(can )-24(r)18(ecover )-24(fr)18(om )-24(an )-24(err)19(or)]TJ 0.5239 Tc 16.492 0 Td (.I)Tj 0.2739 Tc 1.111 0 Td (far)Tj 0 Tc 1.758 0 Td [(easonable )-24(r)18(ecovery )-24(strategy )-24(can )-24(be )-24(used, )-24(we)]TJ -19.361 -1.2 Td [(can impr)18(ove the r)18(obustness of our application by avoiding an abnormal exit.)]TJ /TT1 1 Tf 11.9986 0 0 11.9986 93.5883 282.6661 Tm [(1.8 )-1332(User)-556(Identi\336cation)]TJ 9.9988 0 0 9.9988 93.5883 258.669 Tm (User ID)Tj /T1_1 1 Tf 3.6 -1.8 Td (The)Tj /T1_2 1 Tf 1.996 0 Td [(user )-72(ID)]TJ /T1_1 1 Tf 3.477 0 Td [(fr)18(om )-72(our )-72(entry )-72(in )-72(the )-72(passwor)]TJ 0.3216 Tc 13.596 0 Td (d\336)Tj 0 Tc 1.538 0 Td [(le )-72(is )-72(a )-72(numeric )-72(value )-72(that )-72(identi\336es )-72(us )-72(to)]TJ -20.606 -1.2 Td [(the )-45(system.)-545(This )-45(user )-45(ID )-45(is )-45(assigned )-45(by )-45(the )-45(system )-45(administrator )-45(when )-45(our )-45(login )-45(name)]TJ T* [(is )-20(assigned, )-20(and )-20(we )-20(cannot )-20(change )-20(it.)-518(The )-20(user )-20(ID )-20(is )-20(normally )-20(assigned )-20(to )-20(be )-20(unique )-20(for)]TJ T* [(every )-139(user)]TJ 0.6393 Tc 4.69 0 Td (.W)Tj 0 Tc 1.797 0 Td [(e\325ll )-139(see )-139(how )-139(the )-139(kernel )-139(uses )-139(the )-139(user )-139(ID )-139(to )-139(check )-139(whether )-139(we )-139(have )-139(the)]TJ -6.488 -1.2 Td [(appr)18(opriate permissions to perform certain operations.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-329(c)]TJ 0 Tc 2.226 0 Td [(all )-145(the )-145(user )-145(whose )-145(user )-145(ID )-145(is )-145(0 )-145(either)]TJ /T1_2 1 Tf -0.018 Tc 17.57 0 Td (ro)Tj 0 Tc 0.815 0 Td (ot)Tj /T1_1 1 Tf 1.172 0 Td [(or )-145(the)]TJ /T1_2 1 Tf 3.118 0 Td (superuser)Tj /T1_1 1 Tf 0.6451 Tc (.T)Tj 0 Tc 5.454 0 Td [(he )-145(entry )-145(in )-145(the)]TJ -32.156 -1.2 Td (passwor)Tj 0.2859 Tc 3.706 0 Td (d\336)Tj 0 Tc 1.502 0 Td [(le )-36(normally )-36(has )-36(a )-36(login )-36(name )-36(of)]TJ /TT0 1 Tf 14.41 0 Td (root)Tj /T1_1 1 Tf 0.2859 Tc (,a)Tj 0 Tc 3.436 0 Td [(nd )-36(we )-36(r)18(efer )-36(to )-36(the )-36(special )-36(privileges)]TJ -23.054 -1.2 Td [(of )-7(this )-7(user )-7(as )-7(super)7(user )-7(privileges.)-507(As )-7(we\325ll )-7(see )-7(in )-7(Chapter )-7(4, )-7(if )-7(a )-7(pr)18(ocess )-7(has )-7(super)7(user)]TJ T* [(privileges, )-54(most )-54(\336le )-54(permission )-54(checks )-54(ar)]TJ 0.3043 Tc 18.419 0 Td (eb)Tj 0 Tc 1.336 0 Td [(ypassed. )-304(Some)-305(operating )-54(system )-54(functions)]TJ -19.756 -1.2 Td (ar)Tj 0.25 Tc 0.877 0 Td (er)Tj 0 Tc 1.106 0 Td [(estricted to the super)8(user)]TJ 0.5 Tc 11.105 0 Td (.T)Tj 0 Tc 1.363 0 Td [(he super)8(user has fr)18(ee r)18(ein over the system.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46787 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (14)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(System )-250(Overview)]TJ 39.741 0 Td [(Chapter )-250(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Threads and Thread IDs)Tj /T1_1 1 Tf 3.6 -2.04 Td (Usually)Tj 0.4834 Tc 3.332 0 Td (,ap)Tj -0.018 Tc 2.318 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-233(has )-233(only )-233(one )-233(thr)18(ead )-233(of )-233(contr)16(ol )167(\321 )167(one)-484(set )-233(of )-233(machine )-233(instr)7(uctions)]TJ -6.573 -1.2 Td [(executing )-91(at )-91(a )-91(time.)-591(Some )-91(pr)18(oblems )-91(ar)]TJ 0.3412 Tc 17.592 0 Td (ee)Tj 0 Tc 1.299 0 Td [(asier )-91(to )-91(solve )-91(when )-91(mor)]TJ 0.3412 Tc 10.914 0 Td (et)Tj 0 Tc 1.146 0 Td [(han )-91(one )-91(thr)18(ead )-91(of)]TJ -30.951 -1.2 Td [(contr)18(ol )-51(can )-51(operate )-51(on )-51(dif)16(fer)18(ent )-51(parts )-51(of )-51(the )-51(pr)16(oblem. )-301(Additionally)]TJ 0.3014 Tc 29.903 0 Td (,m)Tj 0 Tc 1.434 0 Td [(ultiple )-51(thr)18(eads )-51(of)]TJ -31.337 -1.2 Td [(contr)18(ol can exploit the parallelism possible on multipr)18(ocessor systems.)]TJ 1.8 -1.2 Td [(All )-100(thr)18(eads )-100(within )-100(a )-100(pr)20(ocess )-100(shar)]TJ 0.3497 Tc 14.991 0 Td (et)Tj 0 Tc 1.155 0 Td [(he )-100(same )-100(addr)18(ess )-100(space, )-100(\336le )-100(descriptors, )-100(stacks,)]TJ -17.946 -1.2 Td [(and )-193(pr)18(ocess-r)18(elated )-193(attributes.)-693(Each )-193(thr)18(ead )-193(executes )-193(on )-193(its )-193(own )-193(stack, )-193(although )-193(any)]TJ 0 -1.2 TD [(thr)18(ead )-176(can )-176(access )-176(the )-176(stacks )-176(of )-176(other )-176(thr)18(eads )-176(in )-176(the )-176(same )-176(pr)16(ocess. )-426(Because)-426(they )-176(can)]TJ -0 -1.2 Td [(access )-65(the )-65(same )-65(memory)]TJ 0.315 Tc 10.964 0 Td (,t)Tj 0 Tc 0.891 0 Td [(he )-65(thr)18(eads )-65(need )-65(to )-65(synchr)18(onize )-65(access )-65(to )-65(shar)18(ed )-65(data )-65(among)]TJ -11.855 -1.2 Td (themselves to avoid inconsistencies.)Tj 1.8 -1.2 Td [(Like )-130(pr)18(ocesses, )-130(thr)18(eads )-130(ar)]TJ 0.3798 Tc 11.7 0 Td (ei)Tj 0 Tc 1.15 0 Td [(denti\336ed )-130(by )-130(IDs.)-629(Thr)18(ead )-130(IDs, )-130(however)]TJ 0.3799 Tc 17.78 0 Td (,a)Tj -0.018 Tc 1.13 0 Td [(re )-166(l)]TJ 0 Tc 1.527 0 Td [(ocal )-130(to )-130(a)]TJ -35.087 -1.2 Td [(pr)18(ocess. )-423(A)-423(thr)18(ead )-173(ID )-173(fr)18(om )-173(one )-173(pr)18(ocess )-173(has )-173(no )-173(meaning )-173(in )-173(another )-173(pr)18(ocess. )-423(W)]TJ 0.423 Tc 36.592 0 Td (eu)Tj 0 Tc 1.505 0 Td (se)Tj -38.097 -1.2 Td [(thr)18(ead IDs to r)18(efer to speci\336c thr)18(eads as we manipulate the thr)18(eads within a pr)18(ocess.)]TJ 1.8 -1.2 Td [(Functions )-302(to )-302(contr)18(ol )-302(thr)18(eads )-302(parallel )-302(those )-302(used )-302(to )-302(contr)18(ol )-302(pr)19(ocesses. )-552(Because)]TJ -1.8 -1.2 Td [(thr)18(eads )-72(wer)]TJ 0.3221 Tc 5.311 0 Td (ea)Tj 0 Tc 1.301 0 Td [(dded )-72(to )-72(the )-72(UNIX )-72(System )-72(long )-72(after )-72(the )-72(pr)17(ocess )-72(model )-72(was )-72(established,)]TJ -6.612 -1.2 Td (however)Tj 0.307 Tc 3.806 0 Td (,t)Tj 0 Tc 0.883 0 Td [(he )-57(thr)18(ead )-57(model )-57(and )-57(the )-57(pr)18(ocess )-57(model )-57(have )-57(some )-57(complicated )-57(interactions,)]TJ -4.689 -1.2 Td (as we shall see in Chapter 12.)Tj /TT0 1 Tf 11.9993 0 0 11.9993 93.5957 434.9739 Tm [(1.7 )-1332(Err)20(or )-278(Handling)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5935 413.3752 Tm [(When )-123(an )-123(err)18(or )-123(occurs )-123(in )-123(one )-123(of )-123(the )-123(UNIX )-123(System )-123(functions, )-123(a )-123(negative )-123(value )-123(is )-123(often)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(turned, )-102(and )-102(the )-102(integer)]TJ /TT1 1 Tf 10.844 0 Td (errno)Tj /T1_1 1 Tf 3.352 0 Td [(is )-102(usually )-102(set )-102(to )-102(a )-102(value )-102(that )-102(tells )-102(why)]TJ 0.6024 Tc 17.247 0 Td (.F)Tj 0 Tc 1.408 0 Td [(or )-102(example,)]TJ -33.708 -1.2 Td (the)Tj /TT1 1 Tf 1.758 0 Td (open)Tj /T1_1 1 Tf 2.771 0 Td [(function )-121(r)18(eturns )-121(either )-121(a )-121(non-negative )-121(\336le )-121(descriptor )-121(if )-121(all )-121(is )-121(OK )-121(or)]TJ /TT2 1 Tf 30.975 0 Td (!)Tj /T1_1 1 Tf [(1)-371(if)-371(a)1(n)]TJ -35.504 -1.2 Td [(err)18(or )-197(occurs.)-697(An )-197(err)18(or )-197(fr)19(om)]TJ /TT1 1 Tf 13.473 0 Td (open)Tj /T1_1 1 Tf 2.847 0 Td [(has )-197(about )-197(15 )-197(possible)]TJ /TT1 1 Tf 10.43 0 Td (errno)Tj /T1_1 1 Tf 3.447 0 Td [(values, )-197(such )-197(as )-197(\336le)]TJ -30.196 -1.2 Td [(doesn\325t )-120(exist, )-120(permission )-120(pr)18(oblem, )-120(and )-120(so )-120(on.)-620(Some )-120(functions )-120(use )-120(a )-120(convention )-120(other)]TJ T* [(than )-9(r)18(eturning )-9(a )-9(negative )-9(value.)-509(For )-9(example, )-9(most )-9(functions )-9(that )-9(r)18(eturn )-9(a )-9(pointer )-9(to )-9(an)]TJ T* [(object r)18(eturn a null pointer to indicate an err)18(or)74(.)]TJ 1.8 -1.2 Td [(The )-136(\336le)]TJ /TT1 1 Tf 3.821 0 Td ()Tj /T1_1 1 Tf 5.786 0 Td [(de\336nes )-136(the )-136(symbol)]TJ /TT1 1 Tf 8.978 0 Td (errno)Tj /T1_1 1 Tf 3.386 0 Td [(and )-136(constants )-136(for )-136(each )-136(value )-136(that)]TJ /TT1 1 Tf -23.772 -1.2 Td (errno)Tj /T1_1 1 Tf 3.308 0 Td [(can )-57(assume.)-557(Each )-57(of )-57(these )-57(constants )-57(begins )-57(with )-57(the )-57(character)]TJ /TT1 1 Tf 28.244 0 Td (E)Tj /T1_1 1 Tf 0.5575 Tc (.A)Tj 0 Tc 2.186 0 Td [(lso, )-57(the )-57(\336rst)]TJ -33.737 -1.2 Td [(page )-66(of )-66(Section )-66(2 )-66(of )-66(the )-66(UNIX )-66(system )-66(manuals, )-66(named)]TJ /TT1 1 Tf 24.925 0 Td (intro)Tj /T1_1 1 Tf [(\(2\), )-66(usually )-66(lists )-66(all )-66(these)]TJ -24.925 -1.2 Td [(err)18(or )-34(constants.)-534(For )-34(example, )-34(if)]TJ /TT1 1 Tf 14.386 0 Td (errno)Tj /T1_1 1 Tf 3.284 0 Td [(is )-34(equal )-34(to )-34(the )-34(constant)]TJ /TT1 1 Tf 10.557 0 Td (EACCES)Tj /T1_1 1 Tf 0.284 Tc (,t)Tj 0 Tc 4.46 0 Td [(his )-34(indicates )-34(a)]TJ -32.687 -1.2 Td [(permission pr)18(oblem, such as insuf)18(\336cient permission to open the r)18(equested \336le.)]TJ 7.9995 0 0 7.9995 183.5905 261.3843 Tm [(On Linux, the err)18(or constants ar)]TJ 0.25 Tc 14.081 0 Td (el)Tj 0 Tc 1.02 0 Td (isted in the)Tj /TT1 1 Tf 5.141 0 Td (errno)Tj /T1_1 1 Tf (\(3\) manual page.)Tj 9.9994 0 0 9.9994 147.5929 241.3855 Tm [(POSIX )-69(and )-69(ISO )-69(C )-69(de\336ne)]TJ /TT1 1 Tf 11.321 0 Td (errno)Tj /T1_1 1 Tf 3.319 0 Td [(as )-69(a )-69(symbol )-69(expanding )-69(into )-69(a )-69(modi\336able )-69(lvalue )-69(of)]TJ -16.44 -1.2 Td [(type )-59(integer)]TJ 0.5595 Tc 5.306 0 Td (.T)Tj 0 Tc 1.423 0 Td [(his )-59(can )-59(be )-59(either )-59(an )-59(integer )-59(that )-59(contains )-59(the )-59(err)14(or )-60(number )-60(or )-60(a )-60(function)]TJ -6.728 -1.2 Td [(that r)18(eturns a pointer to the err)18(or number)]TJ 0.5 Tc 18.262 0 Td (.T)Tj 0 Tc 1.363 0 Td (he historical de\336nition is)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5933 200.688 Tm (extern int errno;)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5944 182.689 Tm [(But )-4(in )-4(an )-4(envir)18(onment )-4(that )-4(supports )-4(thr)18(eads, )-4(the )-4(pr)18(ocess )-4(addr)20(ess )-4(space )-4(is )-4(shar)18(ed )-4(among)]TJ T* [(multiple )-146(thr)18(eads, )-146(and )-146(each )-146(thr)17(ead )-146(needs )-146(its )-146(own )-146(local )-146(copy )-146(of)]TJ /TT1 1 Tf 28.923 0 Td (errno)Tj /T1_1 1 Tf 3.396 0 Td [(to )-146(pr)18(event )-146(one)]TJ -32.319 -1.2 Td [(thr)18(ead )-306(fr)18(om )-306(interfering )-306(with )-306(another)]TJ 0.8059 Tc 17.316 0 Td (.L)Tj 0 Tc 1.667 0 Td [(inux, )-306(for )-306(example, )-306(supports )-306(multithr)18(eaded)]TJ -18.983 -1.2 Td (access to)Tj /TT1 1 Tf 4.087 0 Td (errno)Tj /T1_1 1 Tf 3.25 0 Td (by de\336ning it as)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46788 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (10)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(System )-250(Overview)]TJ 39.741 0 Td [(Chapter )-250(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Standar)Tj 0.278 Tc 3.703 0 Td (dI)Tj 0 Tc 1.167 0 Td (/O)Tj /T1_1 1 Tf -1.27 -1.92 Td [(The )-392(standar)]TJ 0.6421 Tc 5.636 0 Td (dI)Tj 0 Tc 1.59 0 Td [(/O )-392(functions )-392(pr)18(ovide )-392(a )-392(buf)18(fer)18(ed )-392(interface )-392(to )-392(the )-392(unbuf)18(fer)18(ed )-392(I/O)]TJ -7.226 -1.2 Td [(functions. )-339(Using)-340(standar)]TJ 0.3395 Tc 11.261 0 Td (dI)Tj 0 Tc 1.288 0 Td [(/O )-89(r)18(elieves )-89(us )-89(fr)18(om )-89(having )-89(to )-89(choose )-89(optimal )-89(buf)18(fer )-89(sizes,)]TJ -12.549 -1.2 Td [(such )-36(as )-36(the)]TJ /TT1 1 Tf 5.224 0 Td (BUFFSIZE)Tj /T1_1 1 Tf 5.086 0 Td [(constant )-36(in )-36(Figur)]TJ 0.2865 Tc 7.559 0 Td (e1)Tj 0 Tc 1.266 0 Td [(.4. )-286(The)-287(standar)]TJ 0.2866 Tc 6.817 0 Td (dI)Tj 0 Tc 1.235 0 Td [(/O )-37(functions )-37(also )-37(simplify)]TJ -27.186 -1.2 Td [(dealing )-117(with )-117(lines )-117(of )-117(input )-117(\(a )-117(common )-117(occurr)15(ence )-117(in )-117(UNIX )-117(applications\).)-618(The)]TJ /TT1 1 Tf 36 0 Td (fgets)Tj /T1_1 1 Tf -36 -1.2 Td [(function, )-214(for )-214(example, )-214(r)18(eads )-214(an )-214(entir)]TJ 0.464 Tc 17.078 0 Td (el)Tj 0 Tc 1.234 0 Td [(ine. )-464(The)]TJ /TT1 1 Tf 4.454 0 Td (read)Tj /T1_1 1 Tf 2.864 0 Td [(function, )-214(in )-214(contrast, )-214(r)18(eads )-214(a)]TJ -25.63 -1.2 Td [(speci\336ed )-198(number )-198(of )-198(bytes.)-699(As )-198(we )-198(shall )-198(see )-198(in )-198(Section )-198(5.4, )-198(the )-198(standar)]TJ 0.4482 Tc 32.783 0 Td (dI)Tj 0 Tc 1.396 0 Td [(/O )-198(library)]TJ -34.179 -1.2 Td [(pr)18(ovides functions that let us contr)18(ol the style of buf)18(fering used by the library)111(.)]TJ 1.8 -1.2 Td [(The )-370(most )-370(common )-370(standar)]TJ 0.62 Tc 12.917 0 Td (dI)Tj 0 Tc 1.568 0 Td [(/O )-370(function )-370(is)]TJ /TT1 1 Tf 7.674 0 Td (printf)Tj /T1_1 1 Tf 0.87 Tc (.I)Tj 0.62 Tc 5.057 0 Td (np)Tj -0.018 Tc 1.803 0 Td (ro)Tj 0 Tc 0.923 0 Td [(grams )-370(that )-370(call)]TJ /TT1 1 Tf -31.742 -1.2 Td (printf)Tj /T1_1 1 Tf 0.4109 Tc (,w)Tj 0 Tc 5.095 0 Td [(e\325ll )-161(always )-161(include)]TJ /TT1 1 Tf 8.978 0 Td ()Tj /T1_1 1 Tf 0.0833 Tc 5.483 0 Td (\321n)Tj 0 Tc 1.665 0 Td [(ormally )-161(by )-161(including)]TJ /TT1 1 Tf 10.054 0 Td (apue.h)Tj /T1_1 1 Tf 0.0833 Tc 3.683 0 Td (\321a)Tj 0.4108 Tc 1.583 0 Td (st)Tj 0 Tc 1.161 0 Td (his)Tj -37.703 -1.2 Td [(header contains the function pr)18(ototypes for all the standar)]TJ 0.25 Tc 25.68 0 Td (dI)Tj 0 Tc 1.198 0 Td (/O functions.)Tj /TT0 1 Tf -30.478 -2.4 Td (Example)Tj /T1_1 1 Tf 3.6 -2.04 Td [(The )-41(pr)18(ogram )-41(in )-41(Figur)]TJ 0.291 Tc 9.661 0 Td (e1)Tj 0 Tc 1.27 0 Td [(.5, )-41(which )-41(we\325ll )-41(examine )-41(in )-41(mor)]TJ 0.291 Tc 13.77 0 Td (ed)Tj 0 Tc 1.381 0 Td [(etail )-41(in )-41(Section )-41(5.8, )-41(is )-41(like )-41(the)]TJ -26.082 -1.2 Td [(pr)18(evious )-46(pr)18(ogram )-46(that )-46(called)]TJ /TT1 1 Tf 13.279 0 Td (read)Tj /T1_1 1 Tf 2.696 0 Td (and)Tj /TT1 1 Tf 1.989 0 Td (write)Tj /T1_1 1 Tf 0.5462 Tc (.T)Tj 0 Tc 4.409 0 Td [(his )-46(pr)18(ogram )-46(copies )-46(standar)]TJ 0.2961 Tc 12.148 0 Td (di)Tj 0 Tc 1.198 0 Td [(nput )-46(to)]TJ -35.72 -1.2 Td (standar)Tj 0.25 Tc 3.32 0 Td (do)Tj 0 Tc 1.407 0 Td [(utput and can copy any r)18(egular \336le.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4662.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 456.6442 Tm (#include "apue.h")Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-2400(c;)]TJ 0 -1.783 TD (while \(\(c = getc\(stdin\)\) != EOF\))Tj 2.4 -1.189 Td (if \(putc\(c, stdout\) == EOF\))Tj 2.4 -1.189 Td (err_sys\("output error"\);)Tj -4.8 -1.783 Td (if \(ferror\(stdin\)\))Tj 2.4 -1.189 Td (err_sys\("input error"\);)Tj -2.4 -1.783 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3128.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 196.1047 296.7446 Tm (Figure 1.5)Tj /T1_1 1 Tf 5.195 0 Td (Copy standar)Tj 0.25 Tc 5.982 0 Td (di)Tj 0 Tc 1.152 0 Td (nput to standar)Tj 0.25 Tc 6.804 0 Td (do)Tj 0 Tc 1.407 0 Td (utput, using standar)Tj 0.25 Tc 8.985 0 Td (dI)Tj 0 Tc 1.198 0 Td (/O)Tj 9.9982 0 0 9.9982 129.5768 272.7489 Tm [(The )-51(function)]TJ /TT1 1 Tf 5.983 0 Td (getc)Tj /T1_1 1 Tf -0.018 Tc 2.701 0 Td (re)Tj 0 Tc 0.856 0 Td [(ads )-51(one )-51(character )-51(at )-51(a )-51(time, )-51(and )-51(this )-51(character )-51(is )-51(written )-51(by)]TJ /TT1 1 Tf 26.811 0 Td (putc)Tj /T1_1 1 Tf (.)Tj -36.35 -1.2 Td [(After )-128(the )-128(last )-128(byte )-128(of )-128(input )-128(has )-128(been )-128(r)16(ead,)]TJ /TT1 1 Tf 19.655 0 Td (getc)Tj /T1_1 1 Tf -0.018 Tc 2.778 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-128(the )-128(constant)]TJ /TT1 1 Tf 8.582 0 Td (EOF)Tj /T1_1 1 Tf 2.178 0 Td [(\(de\336ned )-128(in)]TJ /TT1 1 Tf -34.049 -1.2 Td ()Tj /T1_1 1 Tf [(\). )-353(The)-354(standar)]TJ 0.3535 Tc 11.934 0 Td (dI)Tj 0 Tc 1.301 0 Td [(/O )-103(constants)]TJ /TT1 1 Tf 6.253 0 Td (stdin)Tj /T1_1 1 Tf 3.354 0 Td (and)Tj /TT1 1 Tf 2.046 0 Td (stdout)Tj /T1_1 1 Tf 3.954 0 Td (ar)Tj 0.3535 Tc 0.877 0 Td (ea)Tj 0 Tc 1.332 0 Td [(lso )-103(de\336ned )-103(in )-103(the)]TJ /TT1 1 Tf -31.051 -1.2 Td ()Tj /T1_1 1 Tf 5.65 0 Td [(header and r)18(efer to the standar)]TJ 0.25 Tc 13.631 0 Td (di)Tj 0 Tc 1.152 0 Td (nput and standar)Tj 0.25 Tc 7.625 0 Td (do)Tj 0 Tc 1.407 0 Td (utput.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2368.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT0 1 Tf 11.9971 0 0 11.9971 93.5775 203.1492 Tm [(1.6 )-1332(Pr)20(ograms )-278(and )-278(Pr)20(ocesses)]TJ 9.9976 0 0 9.9976 93.5774 176.7556 Tm [(Pr)20(ogram)]TJ /T1_1 1 Tf 3.6 -1.92 Td (A)Tj /T1_2 1 Tf 1.121 0 Td [(pr)18(ogram)]TJ /T1_1 1 Tf 3.769 0 Td [(is )-93(an )-93(executable )-93(\336le )-93(r)18(esiding )-93(on )-93(disk )-93(in )-93(a )-93(dir)21(ectory)]TJ 0.5927 Tc 22.834 0 Td (.A)Tj 0 Tc 1.963 0 Td [(pr)18(ogram )-93(is )-93(r)18(ead )-93(into)]TJ -29.687 -1.2 Td [(memory )-103(and )-103(is )-103(executed )-103(by )-103(the )-103(kernel )-103(as )-103(a )-103(r)17(esult )-103(of )-103(one )-103(of )-103(the )-103(seven)]TJ /TT1 1 Tf 31.866 0 Td (exec)Tj /T1_1 1 Tf 2.753 0 Td (functions.)Tj -0.092 Tc -34.619 -1.2 Td (We)Tj 0 Tc 1.387 0 Td (\325ll cover these functions in Section 8.10.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46789 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (8)Tj /T1_1 1 Tf 2.5 0 Td [(UNIX )-250(System )-250(Overview)]TJ 40.241 0 Td [(Chapter )-250(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf -0.06 Tc 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Wo)Tj 0 Tc 1.495 0 Td [(rking Director)-10(y)]TJ /T1_1 1 Tf 2.105 -1.92 Td [(Every )-201(pr)18(ocess )-201(has )-201(a)]TJ /T1_2 1 Tf 9.713 0 Td [(working )-201(dir)18(ectory)]TJ /T1_1 1 Tf 0.4515 Tc (,s)Tj 0 Tc 8.521 0 Td [(ometimes )-201(called )-201(the)]TJ /T1_2 1 Tf 9.669 0 Td [(curr)18(ent )-201(working )-201(dir)17(ectory)]TJ /T1_1 1 Tf (.)Tj -27.902 -1.2 Td [(This )-90(is )-90(the )-90(dir)18(ectory )-90(fr)17(om )-90(which )-90(all )-90(r)18(elative )-90(pathnames )-90(ar)]TJ 0.3402 Tc 26.115 0 Td (ei)Tj 0 Tc 1.11 0 Td [(nterpr)18(eted. )-340(A)-340(pr)18(ocess )-90(can)]TJ -27.225 -1.2 Td [(change its working dir)18(ectory with the)]TJ /TT1 1 Tf 16.889 0 Td (chdir)Tj /T1_1 1 Tf 3.25 0 Td (function.)Tj -18.339 -1.2 Td [(For )-138(example, )-138(the )-138(r)18(elative )-138(pathname)]TJ /TT1 1 Tf 16.584 0 Td (doc/memo/joe)Tj /T1_1 1 Tf -0.018 Tc 7.588 0 Td (re)Tj 0 Tc 0.856 0 Td [(fers )-138(to )-138(the )-138(\336le )-138(or )-138(dir)18(ectory)]TJ /TT1 1 Tf -26.829 -1.2 Td (joe)Tj /T1_1 1 Tf [(,)-324(in)-324(the )-74(dir)18(ectory)]TJ /TT1 1 Tf 9.631 0 Td (memo)Tj /T1_1 1 Tf [(,)-324(in)-324(the )-74(dir)18(ectory)]TJ /TT1 1 Tf 10.231 0 Td (doc)Tj /T1_1 1 Tf 0.3241 Tc (,w)Tj 0 Tc 3.208 0 Td [(hich )-74(must )-74(be )-74(a )-74(dir)18(ectory )-74(within )-74(the)]TJ -23.071 -1.2 Td [(working )-157(dir)18(ectory)]TJ 0.657 Tc 8.081 0 Td (.F)Tj -0.018 Tc 1.463 0 Td (ro)Tj 0.407 Tc 0.923 0 Td (ml)Tj 0 Tc 1.581 0 Td [(ooking )-157(just )-157(at )-157(this )-157(pathname, )-157(we )-157(know )-157(that )-157(both)]TJ /TT1 1 Tf 23.052 0 Td (doc)Tj /T1_1 1 Tf 2.207 0 Td (and)Tj /TT1 1 Tf -37.307 -1.2 Td (memo)Tj /T1_1 1 Tf 2.738 0 Td [(have )-88(to )-88(be )-88(dir)18(ectories, )-88(but )-88(we )-88(can\325t )-88(tell )-88(whether)]TJ /TT1 1 Tf 21.976 0 Td (joe)Tj /T1_1 1 Tf 2.138 0 Td [(is )-88(a )-88(\336le )-88(or )-88(a )-88(dir)18(ectory)]TJ 0.5881 Tc 9.636 0 Td (.T)Tj 0 Tc 1.451 0 Td (he)Tj -37.939 -1.2 Td (pathname)Tj /TT1 1 Tf 4.782 0 Td (/usr/lib/lint)Tj /T1_1 1 Tf 8.129 0 Td [(is )-79(an )-79(absolute )-79(pathname )-79(that )-79(r)18(efers )-79(to )-79(the )-79(\336le )-79(or )-79(dir)13(ectory)]TJ /TT1 1 Tf -12.912 -1.2 Td (lint)Tj /T1_1 1 Tf 2.65 0 Td [(in the dir)18(ectory)]TJ /TT1 1 Tf 7.035 0 Td (lib)Tj /T1_1 1 Tf [(,)-250(in)-250(the dir)18(ectory)]TJ /TT1 1 Tf 9.335 0 Td (usr)Tj /T1_1 1 Tf 0.25 Tc (,w)Tj 0 Tc 3.134 0 Td [(hich is in the r)18(oot dir)18(ectory)111(.)]TJ /TT0 1 Tf -25.754 -2.28 Td [(Home Director)-10(y)]TJ /T1_1 1 Tf 3.6 -1.92 Td [(When )-48(we )-48(log )-48(in, )-48(the )-48(working )-48(dir)16(ectory )-48(is )-48(set )-48(to )-48(our)]TJ /T1_2 1 Tf 23.286 0 Td [(home )-48(dir)18(ectory)]TJ /T1_1 1 Tf 0.5483 Tc (.O)Tj 0 Tc 7.605 0 Td [(ur )-48(home )-48(dir)17(ectory)]TJ -30.891 -1.2 Td [(is obtained fr)18(om our entry in the passwor)]TJ 0.25 Tc 18.34 0 Td (d\336)Tj 0 Tc 1.466 0 Td (le \(Section 1.3\).)Tj /TT0 1 Tf 11.9993 0 0 11.9993 93.5942 468.5719 Tm [(1.5 )-1332(Input)-556(and )-278(Output)]TJ 9.9994 0 0 9.9994 93.5942 442.1735 Tm [(File Descriptor)15(s)]TJ /T1_1 1 Tf 3.6 -1.92 Td [(File )-11(descriptors )-11(ar)]TJ 0.2609 Tc 7.952 0 Td (en)Tj 0 Tc 1.322 0 Td [(ormally )-11(small )-11(non-negative )-11(integers )-11(that )-11(the )-11(kernel )-11(uses )-11(to )-11(identify)]TJ -9.274 -1.2 Td [(the )-55(\336les )-55(accessed )-55(by )-55(a )-55(pr)17(ocess. )-305(Whenever)-305(it )-55(opens )-55(an )-55(existing )-55(\336le )-55(or )-55(cr)17(eates )-55(a )-55(new )-55(\336le,)]TJ 0 -1.2 TD [(the kernel r)18(eturns a \336le descriptor that we use when we want to r)18(ead or write the \336le.)]TJ /TT0 1 Tf -3.6 -2.28 Td (Standar)Tj 0.278 Tc 3.703 0 Td (dI)Tj 0 Tc 1.167 0 Td (nput, Standar)Tj 0.278 Tc 6.425 0 Td (dO)Tj 0 Tc 1.667 0 Td (utput, and Standar)Tj 0.278 Tc 8.814 0 Td (dE)Tj 0 Tc 1.556 0 Td [(rr)20(or)]TJ /T1_1 1 Tf -19.732 -1.92 Td [(By )-291(convention, )-291(all )-291(shells )-291(open )-291(thr)17(ee )-291(descriptors )-291(whenever )-291(a )-291(new )-291(pr)18(ogram )-291(is )-291(r)6(un:)]TJ T* (standar)Tj 0.3726 Tc 3.32 0 Td (di)Tj 0 Tc 1.275 0 Td [(nput, )-123(standar)]TJ 0.3726 Tc 6.055 0 Td (do)Tj 0 Tc 1.53 0 Td [(utput, )-123(and )-123(standar)]TJ 0.3725 Tc 8.467 0 Td (de)Tj 0 Tc 1.462 0 Td [(rr)18(or)]TJ 0.6225 Tc 1.639 0 Td (.I)Tj 0.3725 Tc 1.209 0 Td (fn)Tj 0 Tc 1.288 0 Td [(othing )-122(special )-122(is )-122(done, )-122(as )-122(in)]TJ -26.244 -1.2 Td (the simple command)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5907 317.3509 Tm (ls)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5918 300.4218 Tm [(then )-74(all )-74(thr)18(ee )-74(ar)]TJ 0.3242 Tc 7.144 0 Td (ec)Tj 0 Tc 1.247 0 Td [(onnected )-74(to )-74(the )-74(terminal.)-574(Most )-74(shells )-74(pr)18(ovide )-74(a )-74(way )-74(to )-74(r)15(edir)18(ect )-74(any)]TJ -8.391 -1.2 Td [(or all of these thr)18(ee descriptors to any \336le.)-500(For example,)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.591 272.7937 Tm (ls > file.list)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5921 255.8646 Tm [(executes )-337(the)]TJ /TT1 1 Tf 6.311 0 Td (ls)Tj /T1_1 1 Tf 1.787 0 Td [(command )-337(with )-337(its )-337(standar)]TJ 0.5867 Tc 12.603 0 Td (do)Tj 0 Tc 1.744 0 Td [(utput )-337(r)18(edir)18(ected )-337(to )-337(the )-337(\336le )-337(named)]TJ /TT1 1 Tf -22.444 -1.2 Td (file.list)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf -3.6 -2.28 Td [(Unb)20(uff)10(ered I/O)]TJ /T1_1 1 Tf 3.6 -1.92 Td [(Unbuf)18(fer)18(ed )-83(I/O )-83(is )-83(pr)18(ovided )-83(by )-83(the )-83(functions)]TJ /TT1 1 Tf 20.592 0 Td (open)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 2.983 0 Td (read)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 2.983 0 Td (write)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 3.583 0 Td (lseek)Tj /T1_1 1 Tf 0.333 Tc (,a)Tj 0 Tc 4.083 0 Td (nd)Tj /TT1 1 Tf 1.526 0 Td (close)Tj /T1_1 1 Tf (.)Tj -35.75 -1.2 Td (These functions all work with \336le descriptors.)Tj /TT0 1 Tf -3.6 -2.16 Td (Example)Tj /T1_1 1 Tf 3.6 -1.92 Td [(If )-58(we\325r)]TJ 0.3078 Tc 2.946 0 Td (ew)Tj 0 Tc 1.621 0 Td [(illing )-58(to )-58(r)18(ead )-58(fr)19(om )-58(the )-58(standar)]TJ 0.3077 Tc 13.526 0 Td (di)Tj 0 Tc 1.21 0 Td [(nput )-58(and )-58(write )-58(to )-58(the )-58(standar)]TJ 0.3077 Tc 13.248 0 Td (do)Tj 0 Tc 1.465 0 Td [(utput, )-58(then)]TJ -34.014 -1.2 Td [(the pr)18(ogram in Figur)]TJ 0.25 Tc 9.251 0 Td (e1)Tj 0 Tc 1.229 0 Td [(.4 copies any r)18(egular \336le on a UNIX system.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46790 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (4)Tj /T1_1 1 Tf 2.5 0 Td [(UNIX )-250(System )-250(Overview)]TJ 40.241 0 Td [(Chapter )-250(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(The )-224(default )-224(shell )-224(used )-224(by )-224(dif)18(fer)18(ent )-224(Linux )-224(distributions )-224(varies.)-724(Some )-224(distributions )-224(use )-224(the)]TJ 0 -1.25 Td [(Bourne-again )-19(shell.)-519(Others )-19(use )-19(the )-19(BSD )-19(r)18(eplacement )-19(for )-19(the )-19(Bourne )-19(shell, )-19(called)]TJ /TT0 1 Tf 35.819 0 Td (dash)Tj /T1_1 1 Tf 2.669 0 Td (\(Debian)Tj -38.488 -1.25 Td [(Almquist )-279(shell, )-279(originally )-279(written )-279(by )-279(Kenneth )-279(Almquist )-279(and )-279(later )-279(ported )-279(to )-279(Linux\).)-781(The)]TJ 0 -1.25 TD [(default )-326(user )-326(shell )-326(in )-326(Fr)18(eeBSD )-326(is )-326(derived )-326(fr)18(om )-326(the )-326(Almquist )-326(shell.)-826(The )-326(default )-326(shell )-326(in)]TJ T* [(Mac OS X)-394(is )-144(the )-144(Bourne-again )-144(shell.)-645(Solaris, )-144(having )-144(its )-144(heritage )-144(in )-144(both )-144(BSD )-144(and )-144(System )-144(V)127(,)]TJ T* [(pr)18(ovides )-244(all )-244(the )-244(shells )-244(shown )-244(in )-244(Figur)]TJ 0.4945 Tc 18.045 0 Td (e1)Tj 0 Tc 1.473 0 Td [(.2. )-494(Fr)18(ee )-244(ports )-244(of )-244(the )-244(shells )-244(ar)]TJ 0.4945 Tc 14.034 0 Td (ea)Tj 0 Tc 1.473 0 Td [(vailable )-244(on )-244(the)]TJ -35.026 -1.25 Td (Internet.)Tj 0 -2.125 Td [(Thr)18(oughout )-116(the )-116(text, )-116(we )-116(will )-116(use )-116(par)18(enthetical )-116(notes )-116(such )-116(as )-116(this )-116(to )-116(describe )-116(historical )-116(notes)]TJ T* [(and )-302(to )-302(compar)]TJ 0.5524 Tc 7.021 0 Td (ed)Tj 0 Tc 1.642 0 Td [(if)18(fer)18(ent )-302(implementations )-302(of )-302(the )-302(UNIX )-302(System.)-802(Often )-302(the )-302(r)18(eason )-302(for )-302(a)]TJ -8.663 -1.25 Td [(particular implementation technique becomes clear when the historical r)18(easons ar)]TJ 0.25 Tc 36.082 0 Td (ed)Tj 0 Tc 1.34 0 Td (escribed.)Tj 9.9994 0 0 9.9994 147.5917 555.9666 Tm [(Thr)18(oughout )-142(this )-142(text, )-142(we\325ll )-142(show )-142(interactive )-142(shell )-142(examples )-142(to )-142(execute )-142(a )-142(pr)17(ogram)]TJ -1.8 -1.2 Td [(that )-136(we\325ve )-136(developed.)-636(These )-136(examples )-136(use )-136(featur)19(es )-136(common )-136(to )-136(the )-136(Bourne )-136(shell, )-136(the)]TJ 0 -1.2 TD (Korn shell, and the Bourne-again shell.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5949 499.57 Tm [(1.4 )-1332(Files)-556(and )-278(Directories)]TJ 9.9994 0 0 9.9994 93.5949 475.5715 Tm (File System)Tj /T1_1 1 Tf 3.6 -2.04 Td [(The )-58(UNIX )-58(\336le )-58(system )-58(is )-58(a )-58(hierar)18(chical )-58(arrangement )-58(of )-58(dir)18(ectories )-58(and )-58(\336les.)-563(Everything)]TJ T* [(starts in the dir)18(ectory called)]TJ /T1_2 1 Tf -0.018 Tc 12.546 0 Td (ro)Tj 0 Tc 0.815 0 Td (ot)Tj /T1_1 1 Tf 0.25 Tc (,w)Tj 0 Tc 2.111 0 Td (hose name is the single character)Tj /TT0 1 Tf 14.765 0 Td (/)Tj /T1_1 1 Tf (.)Tj -28.437 -1.2 Td (A)Tj /T1_2 1 Tf 1.136 0 Td [(dir)18(ectory)]TJ /T1_1 1 Tf 3.969 0 Td [(is )-108(a )-108(\336le )-108(that )-108(contains )-108(dir)18(ectory )-108(entries.)-605(Logically)]TJ 0.3576 Tc 21.998 0 Td (,w)Tj 0.3575 Tc 1.442 0 Td (ec)Tj 0 Tc 1.281 0 Td [(an )-107(think )-107(of )-107(each)]TJ -31.625 -1.2 Td [(dir)18(ectory )-437(entry )-437(as )-437(containing )-437(a )-437(\336lename )-437(along )-437(with )-437(a )-437(str)4(uctur)18(e)-688(of)-688(i)1(nformation)]TJ 0 -1.2 Td [(describing )-24(the )-24(attributes )-24(of )-24(the )-24(\336le.)-521(The )-23(attributes )-23(of )-23(a )-23(\336le )-23(ar)]TJ 0.2735 Tc 26.914 0 Td (es)Tj 0 Tc 1.176 0 Td [(uch )-23(things )-23(as )-23(the )-23(type )-23(of)]TJ -28.09 -1.2 Td [(\336le )-48(\(r)18(egular )-48(\336le, )-48(dir)18(ectory\), )-48(the )-48(size )-48(of )-48(the )-48(\336le, )-48(the )-48(owner )-48(of )-48(the )-48(\336le, )-48(permissions )-48(for )-48(the)]TJ T* [(\336le )-36(\(whether )-36(other )-36(users )-36(may )-36(access )-36(this )-36(\336le\), )-36(and )-36(when )-36(the )-36(\336le )-36(was )-36(last )-36(modi\336ed.)-542(The)]TJ /TT0 1 Tf T* (stat)Tj /T1_1 1 Tf 3.056 0 Td (and)Tj /TT0 1 Tf 2.349 0 Td (fstat)Tj /T1_1 1 Tf 3.656 0 Td [(functions )-406(r)18(eturn )-406(a )-406(str)7(uctur)18(e)-657(of)-657(i)1(nformation )-407(containing )-407(all )-407(the)]TJ -9.062 -1.2 Td [(attributes of a \336le.)-500(In Chapter 4, we\325ll examine all the attributes of a \336le in gr)18(eat detail.)]TJ -0.092 Tc 7.9995 0 0 7.9995 183.5896 339.1796 Tm [(We )-241(m)]TJ 0 Tc 2.577 0 Td [(ake )-57(a )-57(distinction )-57(between )-57(the )-57(logical )-57(view )-57(of )-57(a )-57(dir)18(ectory )-57(entry )-57(and )-57(the )-57(way )-57(it )-57(is )-57(actually)]TJ -2.577 -1.25 Td [(stor)18(ed )-261(on )-261(disk.)-761(Most )-261(implementations )-261(of )-261(UNIX )-261(\336le )-261(systems )-261(don\325t )-261(stor)]TJ 0.5108 Tc 33.506 0 Td (ea)Tj 0 Tc 1.49 0 Td [(ttributes )-261(in )-261(the)]TJ -34.995 -1.25 Td [(dir)18(ectory )-18(entries )-18(themselves, )-18(because )-18(of )-18(the )-18(dif)20(\336culty )-18(of )-18(keeping )-18(them )-18(in )-18(synch )-18(when )-18(a )-18(\336le )-18(has)]TJ 0 -1.25 TD (multiple har)Tj 0.25 Tc 5.474 0 Td (dl)Tj 0 Tc 1.152 0 Td [(inks. )-250(This)-250(will become clear when we discuss har)]TJ 0.25 Tc 21.933 0 Td (dl)Tj 0 Tc 1.152 0 Td (inks in Chapter 4.)Tj /TT1 1 Tf 9.9994 0 0 9.9994 93.5951 285.1829 Tm (Filename)Tj /T1_1 1 Tf 3.6 -2.04 Td [(The )-233(names )-233(in )-233(a )-233(dir)18(ectory )-233(ar)]TJ 0.483 Tc 13.232 0 Td (ec)Tj 0 Tc 1.406 0 Td (alled)Tj /T1_2 1 Tf 2.655 0 Td (\336lenames)Tj /T1_1 1 Tf 0.733 Tc (.T)Tj 0 Tc 5.347 0 Td [(he )-233(only )-233(two )-233(characters )-233(that )-233(cannot)]TJ -22.64 -1.2 Td [(appear )-265(in )-265(a )-265(\336lename )-265(ar)]TJ 0.5146 Tc 11.203 0 Td (et)Tj 0 Tc 1.32 0 Td [(he )-265(slash )-265(character )-265(\()]TJ /TT0 1 Tf 9.224 0 Td (/)Tj /T1_1 1 Tf 0.5146 Tc (\)a)Tj 0 Tc 1.948 0 Td [(nd )-264(the )-264(null )-264(character)]TJ 0.7645 Tc 9.881 0 Td (.T)Tj 0 Tc 1.627 0 Td [(he )-264(slash)]TJ -35.203 -1.2 Td [(separates )-136(the )-136(\336lenames )-136(that )-136(form )-136(a )-136(pathname )-136(\(described )-136(next\) )-136(and )-136(the )-136(null )-136(character)]TJ 0 -1.2 TD [(terminates )-135(a )-135(pathname.)-635(Nevertheless, )-135(it\325s )-135(good )-135(practice )-135(to )-135(r)20(estrict )-135(the )-135(characters )-135(in )-135(a)]TJ T* [(\336lename )-132(to )-132(a )-132(subset )-132(of )-132(the )-132(normal )-132(printing )-132(characters.)-635(\(If )-132(we )-132(use )-132(some )-132(of )-132(the )-132(shell\325s)]TJ T* [(special )-194(characters )-194(in )-194(the )-194(\336lename, )-194(we )-194(have )-194(to )-194(use )-194(the )-194(shell\325s )-194(quoting )-194(mechanism )-194(to)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(fer)18(ence )-110(the )-110(\336lename, )-110(and )-110(this )-110(can )-110(get )-110(complicated.\))-607(Indeed, )-110(for )-110(portability)]TJ 0.3597 Tc 33.865 0 Td (,P)Tj 0 Tc 1.214 0 Td (OSIX.1)Tj -0.018 Tc -35.935 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(commends )-177(r)18(estricting )-177(\336lenames )-177(to )-177(consist )-177(of )-177(the )-177(following )-177(characters: )-177(letters )-177(\()]TJ /TT0 1 Tf 36.094 0 Td (a-z)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -36.95 -1.2 Td (A-Z)Tj /T1_1 1 Tf (\), numbers \()Tj /TT0 1 Tf (0-9)Tj /T1_1 1 Tf (\), period \()Tj /TT0 1 Tf (.)Tj /T1_1 1 Tf (\), dash \()Tj /TT0 1 Tf (-)Tj /T1_1 1 Tf (\), and underscor)Tj 0.25 Tc 25.244 0 Td (e\()Tj /TT0 1 Tf 0 Tc 1.229 0 Td (_)Tj /T1_1 1 Tf 0.767 0 Td (\).)Tj -0.09 Tc -25.439 -1.2 Td (Tw)Tj 0.439 Tc 1.357 0 Td (o\336)Tj 0 Tc 1.59 0 Td [(lenames )-189(ar)]TJ 0.439 Tc 4.954 0 Td (ea)Tj 0 Tc 1.418 0 Td [(utomatically )-189(cr)18(eated )-189(whenever )-189(a )-189(new )-189(dir)18(ectory )-189(is )-189(cr)18(eated:)]TJ /TT0 1 Tf 27.281 0 Td (.)Tj /T1_1 1 Tf -38.4 -1.2 Td (\(called)Tj /T1_2 1 Tf 3.209 0 Td (dot)Tj /T1_1 1 Tf 0.2599 Tc (\)a)Tj 0 Tc 2.37 0 Td (nd)Tj /TT0 1 Tf 1.453 0 Td (..)Tj /T1_1 1 Tf 1.46 0 Td (\(called)Tj /T1_2 1 Tf 3.209 0 Td (dot-dot)Tj /T1_1 1 Tf [(\). )-260(Dot)]TJ -0.018 Tc 5.886 0 Td (re)Tj 0 Tc 0.856 0 Td [(fers )-10(to )-10(the )-10(curr)18(ent )-10(dir)19(ectory)]TJ 0.2598 Tc 12.049 0 Td (,a)Tj 0 Tc 1.01 0 Td [(nd )-10(dot-dot )-10(r)18(efers)]TJ -31.501 -1.2 Td [(to the par)18(ent dir)18(ectory)]TJ 0.5 Tc 9.788 0 Td (.I)Tj 0.25 Tc 1.087 0 Td (nt)Tj 0 Tc 1.158 0 Td [(he r)18(oot dir)18(ectory)]TJ 0.25 Tc 7.27 0 Td (,d)Tj 0 Tc 1.111 0 Td (ot-dot is the same as dot.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46791 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (2)Tj /T1_1 1 Tf 2.5 0 Td [(UNIX )-250(System )-250(Overview)]TJ 40.241 0 Td [(Chapter )-250(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.99994 0 0 0.99994 0 0 cm 0.801 g q 1 0 0 1 360.6 591.8 cm 0 0 m 0 -19.882 -16.118 -36 -36 -36 c -55.882 -36 -72 -19.882 -72 0 c -72 19.882 -55.882 36 -36 36 c -16.118 36 0 19.882 0 0 c f Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3606 5918 cm 0 0 m 0 -198.82 -161.18 -360 -360 -360 c -558.82 -360 -720 -198.82 -720 0 c -720 198.82 -558.82 360 -360 360 c -161.18 360 0 198.82 0 0 c h S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3606.25 5918.25 cm 0 0 m 180 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246 5378 cm 0 0 m 298.23 0 540 241.77 540 540 c S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706 5918 cm 0 0 m 0 -298.23 241.77 -540 540 -540 c S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246 6458 cm 0 0 m -298.23 0 -540 -241.77 -540 -540 c S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 6458.25 cm 0 0 m 0 -180 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2886.25 5918.25 cm 0 0 m -180 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3966 5918 cm 0 0 m 0 -397.64 -322.36 -720 -720 -720 c -1117.64 -720 -1440 -397.64 -1440 0 c -1440 397.64 -1117.64 720 -720 720 c -322.36 720 0 397.64 0 0 c h S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 297.1283 548.9741 Tm [(library r)18(outines)]TJ -1.555 9.076 Td (shell)Tj 2.286 3.627 Td (applications)Tj ET q 0.99988 0 0 0.99988 0 0 cm 1 g q 1 0 0 1 346.2 591.8 cm 0 0 m 0 -11.929 -9.671 -21.6 -21.6 -21.6 c -33.529 -21.6 -43.2 -11.929 -43.2 0 c -43.2 11.929 -33.529 21.6 -21.6 21.6 c -9.671 21.6 0 11.929 0 0 c f Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 302.3957 615.5261 Tm [(system )-250(calls)]TJ 1.38 -3.195 Td (kernel)Tj /T1_0 1 Tf -10.708 -11.93 Td (Figure 1.1)Tj /T1_1 1 Tf 5.195 0 Td [(Ar)18(chitectur)18(e)-250(of)-250(the UNIX operating system)]TJ 9.9988 0 0 9.9988 129.5846 463.3444 Tm [(interface, )-121(but )-121(applications )-121(ar)]TJ 0.3709 Tc 12.948 0 Td (ef)Tj -0.018 Tc 1.183 0 Td (re)Tj 0 Tc 0.856 0 Td [(e)-371(to)-371(use )-121(both.)-621(\(W)]TJ 0.3708 Tc 8.089 0 Td (et)Tj 0 Tc 1.176 0 Td [(alk )-121(mor)]TJ 0.3708 Tc 3.524 0 Td (ea)Tj 0 Tc 1.35 0 Td [(bout )-121(system )-121(calls )-121(and)]TJ -29.125 -1.2 Td [(library )-183(functions )-183(in )-183(Section )-183(1.1)56(1.\) )-433(The)-432(shell )-183(is )-183(a )-183(special )-183(application )-183(that )-183(pr)18(ovides )-183(an)]TJ -0 -1.2 Td [(interface for r)8(unning other applications.)]TJ 1.8 -1.2 Td [(In )-258(a )-258(br)19(oad )-258(sense, )-258(an )-258(operating )-258(system )-258(consists )-258(of )-258(the )-258(kernel )-258(and )-258(all )-258(the )-258(other)]TJ -1.8 -1.2 Td (softwar)Tj 0.4243 Tc 3.34 0 Td (et)Tj 0 Tc 1.229 0 Td [(hat )-174(makes )-174(a )-174(computer )-174(useful )-174(and )-174(gives )-174(the )-174(computer )-174(its )-174(personality)]TJ 0.6744 Tc 31.596 0 Td (.T)Tj 0 Tc 1.537 0 Td (his)Tj -37.703 -1.2 Td [(other )-383(softwar)]TJ 0.6327 Tc 6.301 0 Td (ei)Tj 0 Tc 1.403 0 Td [(ncludes )-383(system )-383(utilities, )-383(applications, )-383(shells, )-383(libraries )-383(of )-383(common)]TJ -7.703 -1.2 Td (functions, and so on.)Tj 1.8 -1.2 Td [(For )-53(example, )-53(Linux )-53(is )-53(the )-53(kernel )-53(used )-53(by )-53(the )-53(GNU )-53(operating )-53(system.)-548(Some )-53(people)]TJ -0.018 Tc -1.8 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(fer )-24(to )-24(this )-24(combination )-24(as )-24(the )-24(GNU/Linux )-24(operating )-24(system, )-24(but )-24(it )-24(is )-24(mor)]TJ 0.2736 Tc 32.66 0 Td (ec)Tj 0 Tc 1.197 0 Td (ommonly)Tj -0.018 Tc -34.713 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ferr)18(ed )-50(to )-50(as )-50(simply )-50(Linux.)-552(Although )-50(this )-50(usage )-50(may )-50(not )-50(be )-50(corr)18(ect )-50(in )-50(a )-50(strict )-50(sense, )-50(it)]TJ -0.856 -1.2 Td [(is )-115(understandable, )-115(given )-115(the )-115(dual )-115(meaning )-115(of )-115(the )-115(phrase)]TJ /T1_2 1 Tf 26.167 0 Td [(operating )-115(system)]TJ /T1_1 1 Tf 0.6146 Tc (.\()Tj 0 Tc 8.173 0 Td [(It )-115(also )-115(has)]TJ -34.341 -1.2 Td (the advantage of being mor)Tj 0.25 Tc 12.152 0 Td (es)Tj 0 Tc 1.153 0 Td (uccinct.\))Tj /TT0 1 Tf 11.9986 0 0 11.9986 93.5887 295.3646 Tm [(1.3 )-1332(Log)10(ging )-278(In)]TJ 9.9988 0 0 9.9988 93.5887 266.568 Tm (Login Name)Tj /T1_1 1 Tf 3.6 -2.4 Td [(When )-14(we )-14(log )-14(in )-14(to )-14(a )-14(UNIX )-14(system, )-14(we )-14(enter )-14(our )-14(login )-14(name, )-14(followed )-14(by )-14(our )-14(passwor)20(d.)]TJ 0 -1.2 TD [(The )-361(system )-361(then )-361(looks )-361(up )-361(our )-361(login )-361(name )-361(in )-361(its )-361(passwor)]TJ 0.6113 Tc 28.289 0 Td (d\336)Tj 0 Tc 1.827 0 Td [(le, )-361(usually )-361(the )-361(\336le)]TJ /TT1 1 Tf -30.116 -1.2 Td (/etc/passwd)Tj /T1_1 1 Tf 0.569 Tc (.I)Tj 0 Tc 7.756 0 Td [(f)-319(we)-319(look )-69(at )-69(our )-69(entry )-69(in )-69(the )-69(passwor)]TJ 0.3191 Tc 16.812 0 Td (d\336)Tj 0 Tc 1.535 0 Td [(le, )-69(we )-69(see )-69(that )-69(it\325s )-69(composed)]TJ -26.103 -1.2 Td [(of )-95(seven )-95(colon-separated )-95(\336elds: )-95(the )-95(login )-95(name, )-95(encrypted )-95(passwor)15(d, )-95(numeric )-95(user )-95(ID)]TJ 0 -1.16 TD (\()Tj 0.333 -0.04 Td (205)Tj 1.5 0.04 Td (\))Tj 0.2689 Tc 0.333 -0.04 Td (,n)Tj 0 Tc 1.101 0 Td [(umeric )-19(gr)18(oup )-19(ID)]TJ 7.696 0.04 Td (\()Tj 0.333 -0.04 Td (105)Tj 1.5 0.04 Td (\))Tj 0.2689 Tc 0.333 -0.04 Td (,ac)Tj 0 Tc 1.732 0 Td [(omment )-19(\336eld, )-19(home )-19(dir)18(ectory )-19(\()]TJ /TT1 1 Tf (/home/sar)Tj /T1_1 1 Tf [(\), )-19(and )-19(shell)]TJ -14.86 -1.2 Td [(pr)18(ogram \()]TJ /TT1 1 Tf (/bin/ksh)Tj /T1_1 1 Tf (\).)Tj /TT1 1 Tf 8.9989 0 0 8.9989 147.5829 165.8801 Tm (sar:x:205:105:Stephen Rago:/home/sar:/bin/ksh)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 147.5829 147.8823 Tm [(All )-104(contemporary )-104(systems )-104(have )-104(moved )-104(the )-104(encrypted )-104(passwor)18(d)-354(to)-354(a)-354(dif)18(fer)18(ent )-104(\336le.)]TJ -1.8 -1.2 Td (In Chapter 6, we\325ll look at these \336les and some functions to acces\ s them.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46792 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (1)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(UNIX )-280(System )-280(Ov)20(er )240(vie)20(w)]TJ /TT0 1 Tf 12 0 0 12 93.6001 422.4 Tm [(1.1 )-1332(Intr)20(oduction)]TJ /T1_2 1 Tf 10 0 0 10 129.6001 398.4 Tm [(All )-50(operating )-50(systems )-50(pr)18(ovide )-50(services )-50(for )-50(pr)18(ograms )-50(they )-50(r)10(un. )-300(T)90(ypical )-50(services )-50(include)]TJ 0 -1.2 Td [(executing )-73(a )-73(new )-73(pr)18(ogram, )-73(opening )-73(a )-73(\336le, )-73(r)19(eading )-73(a )-73(\336le, )-73(allocating )-73(a )-73(r)18(egion )-73(of )-73(memory)112(,)]TJ 0 -1.2 TD [(getting )-192(the )-192(curr)18(ent )-192(time )-192(of )-192(day)]TJ 0.4419 Tc 14.333 0 Td (,a)Tj 0 Tc 1.192 0 Td [(nd )-192(so )-192(on.)-692(The )-192(focus )-192(of )-192(this )-192(text )-192(is )-192(to )-192(describe )-192(the)]TJ -15.524 -1.2 Td [(services pr)18(ovided by various versions of the UNIX operating system.)]TJ 1.8 -1.2 Td [(Describing )-296(the )-296(UNIX )-296(System )-296(in )-296(a )-296(strictly )-296(linear )-296(fashion, )-296(without )-296(any )-296(forwar)20(d)]TJ -0.018 Tc -1.8 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(ences )-160(to )-160(terms )-160(that )-160(haven\325t )-160(been )-160(described )-160(yet, )-160(is )-160(nearly )-160(impossible )-160(\(and )-160(would)]TJ -0.856 -1.2 Td [(pr)18(obably )-43(be )-43(boring\).)-543(This )-43(chapter )-43(pr)17(ovides )-43(a )-43(whirlwind )-43(tour )-43(of )-43(the )-43(UNIX )-43(System )-43(fr)16(om)]TJ 0.3034 Tc T* (ap)Tj -0.018 Tc 1.404 0 Td (ro)Tj 0 Tc 0.923 0 Td [(grammer )176(\325s)-303(perspective. )-303(W)92(e\325ll )-53(give )-53(some )-53(brief )-53(descriptions )-53(and )-53(examples )-53(of )-53(terms)]TJ -2.327 -1.2 Td [(and )-21(concepts )-21(that )-21(appear )-21(thr)17(oughout )-21(the )-21(text.)]TJ -0.092 Tc 20.829 0 Td [(We )-205(d)]TJ 0 Tc 2.269 0 Td [(escribe )-21(these )-21(featur)18(es )-21(in )-21(much )-21(mor)17(e)]TJ -23.098 -1.2 Td [(detail )-80(in )-80(later )-80(chapters.)-580(This )-80(chapter )-80(also )-80(pr)18(ovides )-80(an )-80(intr)18(oduction )-80(to )-80(and )-80(overview )-80(of)]TJ T* [(the services pr)18(ovided by the UNIX System for pr)18(ogrammers new to this envir)18(onment.)]TJ /TT0 1 Tf 12 0 0 12 93.5998 242.4 Tm [(1.2 )-1332(UNIX)-556(Ar)]TJ -0.01 Tc 7.036 0 Td (ch)Tj 0 Tc 1.157 0 Td (itecture)Tj /T1_2 1 Tf 10 0 0 10 129.5998 218.4 Tm [(In )-122(a )-122(strict )-122(sense, )-122(an )-122(operating )-122(system )-122(can )-122(be )-122(de\336ned )-122(as )-122(the )-122(softwar)]TJ 0.3716 Tc 30.749 0 Td (et)Tj 0 Tc 1.177 0 Td [(hat )-122(contr)18(ols )-122(the)]TJ -31.926 -1.2 Td [(har)18(dwar)]TJ 0.628 Tc 3.781 0 Td (er)Tj 0 Tc 1.484 0 Td [(esour)18(ces )-378(of )-378(the )-378(computer )-378(and )-378(pr)18(ovides )-378(an )-378(envir)18(onment )-378(under )-378(which)]TJ -5.265 -1.2 Td [(pr)18(ograms )-49(can )-49(r)8(un. )-299(Generally)111(,)-299(we)-299(call )-49(this )-49(softwar)]TJ 0.299 Tc 22.25 0 Td (et)Tj 0 Tc 1.104 0 Td (he)Tj /T1_3 1 Tf 1.36 0 Td (kernel)Tj /T1_2 1 Tf 0.299 Tc (,s)Tj 0 Tc 3.418 0 Td [(ince )-49(it )-49(is )-49(r)18(elatively )-49(small)]TJ -28.132 -1.2 Td [(and )-128(r)18(esides )-128(at )-128(the )-128(cor)]TJ 0.3778 Tc 9.869 0 Td (eo)Tj 0.3779 Tc 1.403 0 Td (ft)Tj 0 Tc 1.037 0 Td [(he )-128(envir)18(onment. )-378(Figur)]TJ 0.3779 Tc 10.392 0 Td (e1)Tj 0 Tc 1.357 0 Td [(.1 )-128(shows )-128(a )-128(diagram )-128(of )-128(the )-128(UNIX)]TJ -24.058 -1.2 Td [(System ar)18(chitectur)18(e.)]TJ 1.8 -1.2 Td [(The )-85(interface )-85(to )-85(the )-85(kernel )-85(is )-85(a )-85(layer )-85(of )-85(softwar)]TJ 0.3345 Tc 21.21 0 Td (ec)Tj 0 Tc 1.258 0 Td [(alled )-84(the)]TJ /T1_3 1 Tf 4.228 0 Td [(system )-84(calls)]TJ /T1_2 1 Tf 5.243 0 Td [(\(the )-84(shaded)]TJ -33.739 -1.2 Td [(portion )-27(in )-27(Figur)]TJ 0.2771 Tc 7.097 0 Td (e1)Tj 0 Tc 1.256 0 Td [(.1\). )-277(Libraries)-277(of )-27(common )-27(functions )-27(ar)]TJ 0.2771 Tc 16.679 0 Td (eb)Tj 0 Tc 1.309 0 Td [(uilt )-27(on )-27(top )-27(of )-27(the )-27(system )-27(call)]TJ /T1_4 1 Tf 9 0 0 9 515.0992 114 Tm (1)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46793 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 24 0 0 24 129.6 545.576 Tm [(Pr)4(ef)15(ace )-280(to )-280(the )-280(Fir)-20(st )-280(Edition)]TJ /TT0 1 Tf 10 0 0 10 93.5999 446.3998 Tm [(Intr)20(oduction)]TJ /T1_1 1 Tf 3.6 -2.4 Td [(This )-178(book )-178(describes )-178(the )-178(pr)18(ogramming )-178(interface )-178(to )-178(the )-178(Unix )-178(system)]TJ 0.0833 Tc 31.055 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(he )-178(system )-178(call)]TJ -32.464 -1.2 Td [(interface )-98(and )-98(many )-98(of )-98(the )-98(functions )-98(pr)18(ovided )-98(in )-98(the )-98(standar)]TJ 0.3478 Tc 27.232 0 Td (dCl)Tj 0 Tc 2.307 0 Td (ibrary)Tj 0.5978 Tc 2.579 0 Td (.I)Tj 0 Tc 1.185 0 Td [(t)-348(is)-348(intended)]TJ -33.302 -1.2 Td [(for anyone writing pr)18(ograms that r)8(un under Unix.)]TJ 1.8 -1.2 Td [(Like )-194(most )-194(operating )-194(systems, )-194(Unix )-194(pr)18(ovides )-194(numer)18(ous )-194(services )-194(to )-194(the )-194(pr)16(ograms)]TJ -1.8 -1.2 Td [(that )-195(ar)]TJ 0.445 Tc 3.056 0 Td (er)Tj 0 Tc 1.311 0 Td [(unning )167(\321 )167(open)]TJ 0.445 Tc 7.016 0 Td (a\336)Tj 0 Tc 1.55 0 Td [(le, )-195(r)18(ead )-195(a )-195(\336le, )-195(start )-195(a )-195(new )-195(pr)18(ogram, )-195(allocate )-195(a )-195(r)18(egion )-195(of)]TJ -12.933 -1.2 Td (memory)Tj 0.3778 Tc 3.631 0 Td (,g)Tj 0 Tc 1.184 0 Td [(et )-128(the )-128(curr)18(ent )-128(time-of-day)]TJ 0.3778 Tc 11.611 0 Td (,a)Tj 0 Tc 1.128 0 Td [(nd )-128(so )-128(on.)-627(This )-128(has )-128(been )-128(termed )-128(the)]TJ /T1_2 1 Tf 16.883 0 Td [(system )-128(call)]TJ -34.437 -1.2 Td (interface)Tj /T1_1 1 Tf 0.7104 Tc (.A)Tj 0 Tc 5.201 0 Td (dditionally)Tj 0.4604 Tc 4.785 0 Td (,t)Tj 0 Tc 1.036 0 Td [(he )-210(standar)]TJ 0.4604 Tc 4.841 0 Td (dCl)Tj 0 Tc 2.532 0 Td [(ibrary )-210(pr)18(ovides )-210(numer)18(ous )-210(functions )-210(that )-210(ar)16(e)]TJ -18.396 -1.2 Td [(used )-147(by )-147(almost )-147(every )-147(C )-147(pr)16(ogram )-148(\(format )-148(a )-148(variable\325s )-148(value )-148(for )-148(output, )-148(compar)]TJ 0.3976 Tc 36.418 0 Td (et)Tj 0 Tc 1.203 0 Td (wo)Tj -37.62 -1.2 Td (strings, etc.\).)Tj 1.8 -1.2 Td [(The )-57(system )-57(call )-57(interface )-57(and )-57(the )-57(library )-57(r)18(outines )-57(have )-57(traditionally )-57(been )-57(described)]TJ -1.8 -1.2 Td [(in )-77(Sections )-77(2 )-77(and )-77(3 )-77(of )-77(the)]TJ /T1_2 1 Tf 11.737 0 Td [(Unix )-77(Pr)18(ogrammer )213(\325)]TJ 0.3269 Tc 7.792 0 Td (sM)Tj 0 Tc 1.66 0 Td (anual)Tj /T1_1 1 Tf 0.5769 Tc (.T)Tj 0 Tc 3.718 0 Td [(his )-77(book )-77(is )-77(not )-77(a )-77(duplication )-77(of)]TJ -24.906 -1.2 Td [(these )-34(sections.)-534(Examples )-34(and )-34(rationale )-34(ar)]TJ 0.2843 Tc 18.512 0 Td (em)Tj 0 Tc 1.646 0 Td [(issing )-34(fr)18(om )-34(the)]TJ /T1_2 1 Tf 6.947 0 Td [(Unix )-34(Pr)18(ogrammer )213(\325)]TJ 0.2842 Tc 7.749 0 Td (sM)Tj 0 Tc 1.617 0 Td (anual)Tj /T1_1 1 Tf (,)Tj -36.472 -1.2 Td [(and that\325s what this book pr)18(ovides.)]TJ /TT0 1 Tf -3.6 -2.4 Td [(Unix Standar)20(ds)]TJ /T1_1 1 Tf 3.6 -2.4 Td [(The )-100(pr)18(oliferation )-100(of )-100(dif)18(fer)18(ent )-100(versions )-100(of )-100(Unix )-100(during )-100(the )-100(1980s )-100(has )-100(been )-100(temper)18(ed )-100(by)]TJ -0 -1.2 Td [(the )-273(various )-273(international )-273(standar)18(ds )-273(that )-273(wer)]TJ 0.5234 Tc 20.798 0 Td (es)Tj 0 Tc 1.426 0 Td [(tarted )-273(during )-273(the )-273(late )-273(1980s.)-774(These)]TJ -22.224 -1.2 Td [(include )-143(the )-143(ANSI )-143(standar)]TJ 0.3936 Tc 11.66 0 Td (df)Tj 0 Tc 1.338 0 Td [(or )-144(the )-144(C )-144(pr)18(ogramming )-144(language, )-144(the )-144(IEEE )-144(POSIX )-144(family)]TJ -12.997 -1.2 Td (\(still being developed\), and the X/Open portability guide.)Tj 1.8 -1.2 Td [(This )-373(book )-373(also )-373(describes )-373(these )-373(standar)19(ds. )-623(But)-623(instead )-373(of )-373(just )-373(describing )-373(the)]TJ -1.8 -1.2 Td [(standar)18(ds )-119(by )-119(themselves, )-119(we )-119(describe )-119(them )-119(in )-119(r)18(elation )-119(to )-119(popular )-119(implementations )-119(of)]TJ 0 -1.2 TD [(the )-71(standar)18(ds )167(\321 )167(System)]TJ 0.3207 Tc 10.743 0 Td (VR)Tj 0 Tc 1.711 0 Td [(elease )-71(4 )-71(and )-71(the )-71(forthcoming )-71(4.4BSD.)-571(This )-71(pr)18(ovides )-71(a )-71(r)21(eal-)]TJ -12.454 -1.2 Td [(world )-85(description, )-85(which )-85(is )-85(often )-85(lacking )-85(fr)17(om )-85(the )-85(standar)]TJ 0.3352 Tc 26.378 0 Td (di)Tj 0 Tc 1.237 0 Td [(tself )-85(and )-85(fr)18(om )-85(books )-85(that)]TJ -27.615 -1.2 Td [(describe only the standar)18(d.)]TJ /T1_3 1 Tf 9 0 0 9 503.1039 113.9998 Tm (xxix)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46794 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 24 0 0 24 129.6 545.576 Tm [(Pr)4(ef)15(ace )-280(to )-280(the )-280(Second )-280(Edition)]TJ /TT0 1 Tf 10 0 0 10 93.5999 434.4 Tm [(Intr)20(oduction)]TJ /T1_1 1 Tf 3.6 -2.16 Td [(Rich )-478(Stevens )-478(and )-478(I )-478(\336rst )-478(met )-478(thr)16(ough )-478(an )-478(e-mail )-478(exchange )-478(when )-478(I )-478(r)18(eported )-478(a)]TJ 0 -1.2 TD [(typographical )-125(err)18(or )-125(in )-125(his )-125(\336rst )-125(book,)]TJ /T1_2 1 Tf 17 0 Td [(UNIX )-124(Network )-124(Pr)17(ogramming)]TJ /T1_1 1 Tf 0.6245 Tc (.H)Tj 0.3745 Tc 14.214 0 Td (eu)Tj 0 Tc 1.456 0 Td [(sed )-124(to )-124(kid )-124(me)]TJ -32.67 -1.2 Td [(about )-1(being )-1(the )-1(person )-1(to )-1(send )-1(him )-1(his )-1(\336rst )-1(errata )-1(notice )-1(for )-1(the )-1(book.)-501(Until )-1(his )-1(death )-1(in)]TJ T* [(1999, )-247(we )-247(exchanged )-247(e-mail )-247(irr)17(egularly)]TJ 0.4972 Tc 17.701 0 Td (,u)Tj 0 Tc 1.35 0 Td [(sually )-247(when )-247(one )-247(of )-247(us )-247(had )-247(a )-247(question )-247(we)]TJ -19.051 -1.2 Td [(thought )-87(the )-87(other )-87(might )-87(be )-87(able )-87(to )-87(answer)]TJ 0.5876 Tc 19.103 0 Td (.W)Tj 0.3376 Tc 1.746 0 Td (em)Tj 0 Tc 1.7 0 Td [(et )-88(for )-88(dinner )-88(at )-88(USENIX )-88(confer)20(ences)]TJ -22.549 -1.2 Td [(and when Rich was teaching in the ar)18(ea.)]TJ 1.8 -1.2 Td [(Rich )-81(Stevens )-81(was )-81(a )-81(friend )-81(who )-81(always )-81(conducted )-81(himself )-81(as )-81(a )-81(gentleman.)-586(When )-81(I)]TJ -1.8 -1.2 Td [(wr)18(ote)]TJ /T1_2 1 Tf 3.006 0 Td [(UNIX )-194(System )-194(V )-194(Network )-194(Pr)20(ogramming)]TJ /T1_1 1 Tf 17.644 0 Td [(in )-194(1993, )-194(I )-194(intended )-194(it )-194(to )-194(be )-194(a )-194(System )-194(V)]TJ -20.65 -1.2 Td [(version )-51(of )-51(Rich\325s)]TJ /T1_2 1 Tf 7.752 0 Td [(UNIX )-51(Network )-51(Pr)18(ogramming)]TJ /T1_1 1 Tf 0.5512 Tc (.A)Tj 0.3012 Tc 13.941 0 Td (sw)Tj 0 Tc 1.559 0 Td [(as )-51(his )-51(natur)18(e, )-51(Rich )-51(gladly )-51(r)18(eviewed)]TJ -23.251 -1.2 Td [(chapters )-19(for )-19(me, )-19(and )-19(tr)18(eated )-19(me )-19(not )-19(as )-19(a )-19(competitor)]TJ 0.2693 Tc 22.854 0 Td (,b)Tj 0 Tc 1.072 0 Td [(ut )-19(as )-19(a )-19(colleague.)]TJ -0.092 Tc 8.119 0 Td [(We )-203(o)]TJ 0 Tc 2.202 0 Td [(ften )-19(talked)]TJ -34.248 -1.2 Td [(about )-87(collaborating )-87(on )-87(a )-87(STREAMS )-87(version )-87(of )-87(his)]TJ /T1_2 1 Tf 22.8 0 Td [(TCP/IP )-87(Illustrated)]TJ /T1_1 1 Tf 8.026 0 Td [(book. )-337(Had)-338(events)]TJ -30.826 -1.2 Td [(been )-183(dif)18(fer)18(ent, )-183(we )-183(might )-183(have )-183(actually )-183(done )-183(it, )-183(but )-183(since )-183(Rich )-183(is )-183(no )-183(longer )-183(with )-183(us,)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td (vising)Tj /T1_2 1 Tf 3.12 0 Td [(Advanced )-161(Pr)18(ogramming )-161(in )-161(the )-161(UNIX )-161(Envir)17(onment)]TJ /T1_1 1 Tf 22.173 0 Td [(is )-161(the )-161(closest )-161(I\325ll )-161(ever )-161(get )-161(to)]TJ -26.149 -1.2 Td (writing a book with him.)Tj 1.8 -1.2 Td [(When )-178(the )-178(editors )-178(at )-178(Addison-W)92(esley )-178(told )-178(me )-178(that )-178(they )-178(wanted )-178(to )-178(update )-178(Rich\325s)]TJ -1.8 -1.2 Td [(book, )-57(I )-57(thought )-57(that )-57(ther)]TJ 0.307 Tc 11.035 0 Td (ew)Tj 0 Tc 1.62 0 Td [(ouldn\325t )-57(be )-57(too )-57(much )-57(to )-57(change.)-557(Even )-57(after )-57(13 )-57(years, )-57(Rich\325s)]TJ -12.655 -1.2 Td [(work )-80(still )-80(holds )-80(up )-80(well.)-580(But )-80(the )-80(UNIX )-80(industry )-80(is )-80(vastly )-80(dif)13(fer)18(ent )-81(today )-81(fr)18(om )-81(what )-81(it)]TJ -0 -1.2 Td (was when the book was \336rst published.)Tj 0.883 Tc 1.8 -1.92 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-122(System )-122(V )-122(variants )-122(ar)]TJ 0.3718 Tc 10.924 0 Td (es)Tj 0 Tc 1.275 0 Td [(lowly )-122(being )-122(r)18(eplaced )-122(by )-122(Linux.)-622(The )-122(major )-122(system)]TJ -12.811 -1.2 Td [(vendors )-108(that )-108(ship )-108(their )-108(har)18(dwar)]TJ 0.3582 Tc 14.52 0 Td (ew)Tj 0 Tc 1.671 0 Td [(ith )-108(their )-108(own )-108(versions )-108(of )-108(the )-108(UNIX )-108(System)]TJ -16.192 -1.2 Td [(have )-21(either )-21(made )-21(Linux )-21(ports )-21(available )-21(or )-21(announced )-21(support )-21(for )-21(Linux.)-520(Solaris)]TJ T* [(is )-15(per)18(haps )-15(the )-15(last )-15(descendant )-15(of )-15(UNIX )-15(System )-15(V )-15(Release )-15(4 )-15(with )-15(any )-15(appr)12(eciable)]TJ T* [(market shar)18(e.)]TJ /T1_3 1 Tf 9 0 0 9 505.5959 114 Tm (xxv)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46795 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 24 0 0 24 129.6 545.576 Tm (For)Tj -0.02 Tc 1.436 0 Td (ew)Tj 0 Tc 1.39 0 Td [(or)6(d)-560(to)-560(the )-280(Second )-280(Edition)]TJ /T1_1 1 Tf 10 0 0 10 129.6005 434.4 Tm [(At )-42(some )-42(point )-42(during )-42(nearly )-42(every )-42(interview )-42(I )-42(give, )-42(as )-42(well )-42(as )-42(in )-42(question )-42(periods )-42(after)]TJ 0 -1.2 TD [(talks, )-27(I )-27(get )-27(asked )-27(some )-27(variant )-27(of )-27(the )-27(same )-27(question: )-27(\324)37(\324Did )-27(you )-27(expect )-27(Unix )-27(to )-27(last )-27(for )-27(so)]TJ T* (long?\325)Tj 0.6421 Tc 2.66 0 Td (\325A)Tj 0 Tc 1.698 0 Td [(nd )-142(of )-142(course )-142(the )-142(answer )-142(is )-142(always )-142(the )-142(same: )-142(No, )-142(we )-142(didn\325t )-142(quite )-142(anticipate)]TJ -4.358 -1.2 Td [(what )-216(has )-216(happened. )-216(Even )-216(the )-216(observation )-216(that )-216(the )-216(system, )-216(in )-216(some )-216(form, )-216(has )-216(been)]TJ T* [(ar)18(ound )-145(for )-145(well )-145(mor)]TJ 0.3948 Tc 9.378 0 Td (et)Tj 0 Tc 1.2 0 Td [(han )-145(half )-145(the )-145(lifetime )-145(of )-145(the )-145(commer)19(cial )-145(computing )-145(industry )-145(is)]TJ -10.578 -1.2 Td (now dated.)Tj 1.8 -1.2 Td [(The )-398(course )-398(of )-398(developments )-398(has )-398(been )-398(turbulent )-398(and )-398(complicated. )-398(Computer)]TJ -1.8 -1.2 Td [(technology )-360(has )-360(changed )-360(gr)18(eatly )-360(since )-360(the )-360(early )-360(1970s, )-360(most )-360(notably )-360(in )-360(universal)]TJ T* [(networking, )-219(ubiquitous )-219(graphics, )-219(and )-219(r)18(eadily )-219(available )-219(personal )-219(computing, )-219(but )-219(the)]TJ T* [(system )-505(has )-505(somehow )-505(managed )-505(to )-505(accommodate )-505(all )-505(of )-505(these )-505(phenomena. )-505(The)]TJ T* [(commer)18(cial )-97(envir)18(onment, )-97(although )-97(today )-97(dominated )-97(on )-97(the )-97(desktop )-97(by )-97(Micr)18(osoft )-97(and)]TJ T* [(Intel, )-89(has )-89(in )-89(some )-89(ways )-89(moved )-89(fr)17(om )-89(single-supplier )-89(to )-89(multiple )-89(sour)18(ces )-89(and, )-89(in )-89(r)17(ecent)]TJ T* [(years, to incr)18(easing r)18(eliance on public standar)18(ds and on fr)18(eely available sour)18(ce.)]TJ 1.8 -1.2 Td (Fortunately)Tj 0.2928 Tc 5.049 0 Td (,U)Tj 0 Tc 1.321 0 Td [(nix, )-43(consider)18(ed )-43(as )-43(a )-43(phenomenon )-43(and )-43(not )-43(just )-43(a )-43(brand, )-43(has )-43(been )-43(able)]TJ -8.17 -1.2 Td [(to )-54(move )-54(with )-54(and )-54(even )-54(lead )-54(this )-54(wave.)]TJ -0.074 Tc 17.989 0 Td (AT)Tj 0 Tc 1.317 0 Td [(&T )-54(in )-54(the )-54(1970s )-54(and )-54(1980s )-54(was )-54(pr)19(otective )-54(of)]TJ -19.306 -1.2 Td [(the )-299(actual )-299(Unix )-299(sour)18(ce )-299(code, )-299(but )-299(encouraged )-299(standar)21(dization )-299(ef)18(forts )-299(based )-299(on )-299(the)]TJ T* [(system\325s )-218(interfaces )-218(and )-218(languages.)-720(For )-218(example, )-218(the )-218(SVID)]TJ 0.0833 Tc 27.334 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(he )-218(System )-218(V )-218(Interface)]TJ -28.744 -1.2 Td [(De\336nition )167(\321 )167(was)-334(published )-84(by )-84(A)74(T&T)]TJ 0.3339 Tc 16.58 0 Td (,a)Tj 0 Tc 1.084 0 Td [(nd )-84(it )-84(became )-84(the )-84(basis )-84(for )-84(the )-84(POSIX )-84(work )-84(and)]TJ -17.664 -1.2 Td [(its )-19(follow-ons.)-519(As )-19(it )-19(happened, )-19(Unix )-19(was )-19(able )-19(to )-19(adapt )-19(rather )-19(gracefully )-19(to )-19(a )-19(networked)]TJ T* [(envir)18(onment )-4(and, )-4(per)18(haps )-4(less )-4(elegantly)]TJ 0.2539 Tc 17.782 0 Td (,b)Tj 0 Tc 1.057 0 Td [(ut )-4(still )-4(adequately)111(,)-254(to)-254(a)-254(graphical )-4(one.)-504(And )-4(as)]TJ -18.839 -1.2 Td [(it )-1(also )-1(happened, )-1(the )-1(basic )-1(Unix )-1(kernel )-1(interface )-1(and )-1(many )-1(of )-1(its )-1(characteristic )-1(user)17(-level)]TJ T* [(tools )-522(wer)]TJ 0.772 Tc 4.595 0 Td (ei)Tj 0 Tc 1.542 0 Td [(ncorporated )-522(into )-522(the )-522(technological )-522(foundations )-522(of )-522(the )-522(open-sour)18(ce)]TJ -6.137 -1.2 Td (movement.)Tj 1.8 -1.2 Td [(It )-316(is )-316(important )-316(that )-316(papers )-316(and )-316(writings )-316(about )-316(the )-316(Unix )-316(system )-316(wer)]TJ 0.5665 Tc 33.05 0 Td (ea)Tj 0 Tc 1.546 0 Td (lways)Tj -36.395 -1.2 Td [(encouraged, )-106(even )-106(while )-106(the )-106(softwar)16(e)-356(of)-356(t)-1(he )-106(system )-106(itself )-106(was )-106(pr)16(oprietary)]TJ 0.3565 Tc 33.014 0 Td (,f)Tj 0 Tc 0.939 0 Td [(or )-106(example)]TJ -33.954 -1.2 Td [(Maurice )-7(Bach\325s )-7(book,)]TJ /T1_2 1 Tf 9.72 0 Td [(The )-7(Design )-7(of )-7(the )-7(Unix )-7(Operating )-7(System)]TJ /T1_1 1 Tf 0.5071 Tc 17.101 0 Td (.I)Tj 0.2571 Tc 1.094 0 Td (nf)Tj 0 Tc 1.172 0 Td [(act, )-7(I )-7(would )-7(claim )-7(that)]TJ /T1_3 1 Tf 9 0 0 9 507.6039 114 Tm (xix)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46796 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 34.357 0 Td [(Chapter )-250(9)-750(Solutions)]TJ /T1_1 1 Tf 11.476 0 Td (923)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (8.6)Tj /T1_0 1 Tf 2.602 0 Td [(The pr)18(ogram in Figur)]TJ 0.25 Tc 9.538 0 Td (eC)Tj 0 Tc 1.438 0 Td [(.10 cr)18(eates a zombie.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1556.25 6618.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1596.25 6618.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 155.6013 652.2207 Tm (#include "apue.h")Tj 0 -2.14 TD (#ifdef SOLARIS)Tj 0 -1.189 TD [(#define PSCMD)-1800("ps -a -o pid,ppid,s,tty,comm")]TJ T* (#else)Tj T* [(#define PSCMD)-1800("ps -o pid,ppid,state,tty,command")]TJ T* (#endif)Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(pid_t )-1200(pid;)]TJ 0 -2.14 TD (if \(\(pid = fork\(\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj -2.4 -1.189 Td [(else if \(pid == 0\))-3600(/* child */)]TJ 2.4 -1.189 Td (exit\(0\);)Tj -2.4 -2.14 Td (/* parent */)Tj 0 -1.189 TD (sleep\(4\);)Tj T* (system\(PSCMD\);)Tj 0 -2.14 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1556.25 4121.25 cm 0 0 m 50 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1596.25 4121.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 233.072 396.0267 Tm (Figure C.10)Tj /T1_0 1 Tf 5.917 0 Td [(Cr)18(eate a zombie and look at its status with)]TJ /TT0 1 Tf 19.007 0 Td (ps)Tj /T1_0 1 Tf 9.9982 0 0 9.9982 155.5919 362.4328 Tm (Zombies ar)Tj 0.25 Tc 4.97 0 Td (eu)Tj 0 Tc 1.332 0 Td (sually designated by)Tj /TT0 1 Tf 9.383 0 Td (ps)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (with a status of)Tj /TT0 1 Tf 7.015 0 Td (Z)Tj /T1_0 1 Tf (:)Tj /TT0 1 Tf 8.9984 0 0 8.9984 173.5889 345.7358 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -0.6 -1.189 Td [(PID )-600(PPID)]TJ 0.6 Tc 6 0 Td (ST)Tj 4.2 Tc 1.8 0 Td (TC)Tj 0 Tc 5.4 0 Td (OMMAND)Tj -13.8 -1.189 Td [(2369 )-600(2208)]TJ 0.6 Tc 6.6 0 Td (Sp)Tj 0 Tc 1.8 0 Td [(ts/2 )-1800(-bash)]TJ -8.4 -1.189 Td [(7230 )-600(2369)]TJ 0.6 Tc 6.6 0 Td (Sp)Tj 0 Tc 1.8 0 Td [(ts/2 )-1800(./a.out)]TJ -8.4 -1.189 Td [(7231 )-600(7230)]TJ 0.6 Tc 6.6 0 Td (Zp)Tj 0 Tc 1.8 0 Td [(ts/2 )-1800([a.out])-600()]TJ -8.4 -1.189 Td [(7232 )-600(7230)]TJ 0.6 Tc 6.6 0 Td (Sp)Tj 0 Tc 1.8 0 Td [(ts/2 )-1800(sh)-600(-c ps -o pid,ppid,state,tty,command)]TJ -8.4 -1.189 Td [(7233 )-600(7232)]TJ 0.6 Tc 6.6 0 Td (Rp)Tj 0 Tc 1.8 0 Td [(ts/2 )-1800(ps)-600(-o pid,ppid,state,tty,command)]TJ /TT2 1 Tf 9.9982 0 0 9.9982 93.5833 241.9544 Tm [(Chapter )-278(9)]TJ /T1_1 1 Tf 3.6 -2.8 Td (9.1)Tj /T1_0 1 Tf 2.602 0 Td (The)Tj /TT0 1 Tf 2.151 0 Td (init)Tj /T1_0 1 Tf 2.877 0 Td [(pr)18(ocess )-227(learns )-227(when )-227(a )-227(terminal )-227(user )-227(logs )-227(out, )-227(because)]TJ /TT0 1 Tf 25.913 0 Td (init)Tj /T1_0 1 Tf 2.878 0 Td [(is )-227(the)]TJ -33.819 -1.2 Td [(par)18(ent )-156(of )-156(the )-156(login )-156(shell )-156(and )-156(r)18(eceives )-156(the)]TJ /TT0 1 Tf 19.328 0 Td (SIGCHLD)Tj /T1_0 1 Tf 4.606 0 Td [(signal )-156(when )-156(the )-156(login )-156(shell)]TJ -23.934 -1.2 Td (terminates.)Tj 0 -1.8 TD [(For )-65(a )-65(network )-65(login, )-65(however)72(,)]TJ /TT0 1 Tf 13.864 0 Td (init)Tj /T1_0 1 Tf 2.716 0 Td [(is )-65(not )-65(involved.)-565(Instead, )-65(the )-65(login )-65(entries )-65(in)]TJ -16.58 -1.2 Td (the)Tj /TT0 1 Tf 1.892 0 Td (utmp)Tj /T1_0 1 Tf 2.905 0 Td (and)Tj /TT0 1 Tf 2.198 0 Td (wtmp)Tj /T1_0 1 Tf 2.905 0 Td [(\336les, )-255(and )-255(their )-255(corr)18(esponding )-255(logout )-255(entries, )-255(ar)]TJ 0.5046 Tc 22.248 0 Td (eu)Tj 0 Tc 1.587 0 Td (sually)Tj -33.733 -1.2 Td [(written )-63(by )-63(the )-63(pr)17(ocess )-63(that )-63(handles )-63(the )-63(login )-63(and )-63(detects )-63(the )-63(logout )-63(\()]TJ /TT0 1 Tf 31.012 0 Td (telnetd)Tj /T1_0 1 Tf 4.514 0 Td (in)Tj -35.525 -1.2 Td (our example\).)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46797 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.14)]TJ /TT0 1 Tf 34.003 0 Td (sigaction)Tj /T1_0 1 Tf 5.9 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (351)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 6670.25 cm 0 0 m 3910 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 217.8109 658.9605 Tm [(Fr)18(eeBSD )-250(Linux )-250(Mac)-250(OS X)-500(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-1827(3.2.0)-1735(10.6.8 )-2170(10)]TJ -9.77 0.625 Td [(Option)-3034(SUS)]TJ 32.462 0 Td (Description)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 6450.25 cm 0 0 m 3910 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 6430.25 cm 0 0 m 3910 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 133.584 634.9238 Tm (SA_INTERRUPT)Tj /T1_0 1 Tf 15.828 0 Td (\245)Tj 10.444 0 Td [(System calls interr)8(upted by this signal ar)]TJ 0.25 Tc 17.977 0 Td (en)Tj 0 Tc 1.311 0 Td (ot)Tj -19.287 -1.25 Td [(automatically r)18(estarted \(the XSI default for)]TJ /TT0 1 Tf 0 -1.25 TD (sigaction)Tj /T1_0 1 Tf [(\). )-250(See)-250(Section 10.5 for mor)18(e)]TJ T* (information.)Tj /TT0 1 Tf -26.272 -2.188 Td (SA_NOCLDSTOP)Tj /T1_0 1 Tf 2.7085 Tc 8.811 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td (If)Tj /T1_2 1 Tf 0.92 0 Td (signo)Tj /T1_0 1 Tf 2.417 0 Td (is)Tj /TT0 1 Tf 0.965 0 Td (SIGCHLD)Tj /T1_0 1 Tf [(,)-250(do)-250(not generate this signal)]TJ -4.302 -1.25 Td [(when a child pr)18(ocess stops \(job contr)18(ol\). )-250(This)]TJ T* (signal is still generated, of course, when a child)Tj T* (terminates \(but see the)Tj /TT0 1 Tf 10.269 0 Td (SA_NOCLDWAIT)Tj /T1_0 1 Tf 7.45 0 Td (option)Tj -17.719 -1.25 Td [(below\). )-250(When)-250(the XSI option is supported,)]TJ /TT0 1 Tf T* (SIGCHLD)Tj /T1_0 1 Tf 4.45 0 Td (won\325t be sent when a stopped child)Tj -4.45 -1.25 Td (continues if this \337ag is set.)Tj /TT0 1 Tf -26.272 -2.188 Td (SA_NOCLDWAIT)Tj /T1_0 1 Tf 2.7085 Tc 8.811 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td (If)Tj /T1_2 1 Tf 0.92 0 Td (signo)Tj /T1_0 1 Tf 2.417 0 Td (is)Tj /TT0 1 Tf 0.965 0 Td (SIGCHLD)Tj /T1_0 1 Tf 0.25 Tc (,t)Tj 0 Tc 5.026 0 Td [(his option pr)18(events the)]TJ -9.328 -1.25 Td [(system fr)18(om cr)18(eating zombie pr)18(ocesses when)]TJ T* [(childr)18(en of the calling pr)18(ocess terminate.)-500(If it)]TJ T* (subsequently calls)Tj /TT0 1 Tf 8.33 0 Td (wait)Tj /T1_0 1 Tf 0.25 Tc (,t)Tj 0 Tc 3.226 0 Td [(he calling pr)18(ocess)]TJ -11.556 -1.25 Td [(blocks until all its child pr)18(ocesses have)]TJ T* [(terminated and then r)18(eturns)]TJ /TT1 1 Tf 12.72 0 Td (!)Tj /T1_0 1 Tf 0.25 Tc (1w)Tj 0 Tc 2.133 0 Td (ith)Tj /TT0 1 Tf 1.449 0 Td (errno)Tj /T1_0 1 Tf 3.25 0 Td (set)Tj -19.552 -1.25 Td (to)Tj /TT0 1 Tf 1.122 0 Td (ECHILD)Tj /T1_0 1 Tf 0.5 Tc (.\()Tj 0 Tc 4.683 0 Td (Recall Section 10.7.\))Tj /TT0 1 Tf -32.077 -2.188 Td (SA_NODEFER)Tj /T1_0 1 Tf 2.7085 Tc 8.811 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td (When this signal is caught, the signal is not)Tj T* (automatically blocked by the system while the)Tj T* (signal-catching function executes \(unless the)Tj T* (signal is also included in)Tj /TT0 1 Tf 11.155 0 Td (sa_mask)Tj /T1_0 1 Tf [(\). )-250(Note)-250(that)]TJ -11.155 -1.25 Td [(this type of operation corr)18(esponds to the earlier)]TJ T* [(unr)18(eliable signals.)]TJ /TT0 1 Tf -26.272 -2.188 Td (SA_ONSTACK)Tj /T1_0 1 Tf 8.35 0 Td [(XSI )-1997(\245)]TJ 3.3795 Tc 7.478 0 Td [(\245\245 )3445(\245)]TJ 0 Tc 10.445 0 Td [(If an alternative stack has been declar)18(ed with)]TJ /TT0 1 Tf T* (sigaltstack)Tj /T1_0 1 Tf 6.6 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.25 Tc 0.333 -0.04 Td (,t)Tj 0 Tc 0.826 0 Td [(his signal is deliver)18(ed to the)]TJ -8.592 -1.25 Td [(pr)18(ocess on the alternative stack.)]TJ /TT0 1 Tf -26.272 -2.188 Td (SA_RESETHAND)Tj /T1_0 1 Tf 2.7085 Tc 8.811 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td [(The disposition for this signal is r)18(eset to)]TJ /TT0 1 Tf T* (SIG_DFL)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 5.2 0 Td (nd the)Tj /TT0 1 Tf 3.08 0 Td (SA_SIGINFO)Tj /T1_0 1 Tf 6.25 0 Td [(\337ag is clear)18(ed)]TJ -14.53 -1.25 Td [(on entry to the signal-catching function.)-500(Note)]TJ T* [(that this type of operation corr)18(esponds to the)]TJ T* [(earlier unr)18(eliable signals.)-500(The disposition for)]TJ T* (the two signals)Tj /TT0 1 Tf 6.911 0 Td (SIGILL)Tj /T1_0 1 Tf 3.85 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (SIGTRAP)Tj /T1_0 1 Tf 4.45 0 Td (can\325t be)Tj -0.018 Tc -17.154 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (set automatically)Tj 0.25 Tc 7.425 0 Td (,h)Tj 0 Tc 1.082 0 Td (owever)Tj 0.5 Tc 3.224 0 Td (.S)Tj 0 Tc 1.275 0 Td (etting this \337ag)Tj -13.862 -1.25 Td (can optionally cause)Tj /TT0 1 Tf 9.256 0 Td (sigaction)Tj /T1_0 1 Tf 5.65 0 Td (to behave as if)Tj /TT0 1 Tf -14.906 -1.25 Td (SA_NODEFER)Tj /T1_0 1 Tf 6.25 0 Td (is also set.)Tj /TT0 1 Tf -32.522 -2.188 Td (SA_RESTART)Tj /T1_0 1 Tf 2.7085 Tc 8.811 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td [(System calls interr)8(upted by this signal ar)18(e)]TJ T* [(automatically r)18(estarted. )-250(\(Refer)-250(to Section 10.5.\))]TJ /TT0 1 Tf -26.272 -2.188 Td (SA_SIGINFO)Tj /T1_0 1 Tf 2.7085 Tc 8.811 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td [(This option pr)18(ovides additional information to a)]TJ T* (signal handler: a pointer to a)Tj /TT0 1 Tf 12.926 0 Td (siginfo)Tj /T1_0 1 Tf 4.45 0 Td [(str)8(uctur)18(e)]TJ -17.376 -1.25 Td [(and a pointer to an identi\336er for the pr)18(ocess)]TJ T* (context.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 1685.25 cm 0 0 m 3910 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3418.25 1685.25 cm 0 0 m 0 4985 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2158.25 1685.25 cm 0 0 m 0 4985 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1952.25 1685.25 cm 0 0 m 0 4985 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5206.25 1685.25 cm 0 0 m 0 4985 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 1685.25 cm 0 0 m 0 4985 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 200.3039 150.4729 Tm (Figure 10.16)Tj /T1_0 1 Tf 6.195 0 Td (Option \337ags \()Tj /TT0 1 Tf (sa_flags)Tj /T1_0 1 Tf 0.25 Tc (\)f)Tj 0 Tc 11.769 0 Td (or the handling of each signal)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46798 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.7)]TJ /TT0 1 Tf 35.279 0 Td (SIGCLD)Tj /T1_0 1 Tf 4.1 0 Td (Semantics)Tj /T1_1 1 Tf 6.454 0 Td (333)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-5(semantics )-5(of )-5(the )-5(BSD)]TJ /TT0 1 Tf 11.479 0 Td (SIGCHLD)Tj /T1_0 1 Tf 4.455 0 Td [(signal )-5(ar)]TJ 0.2553 Tc 3.776 0 Td (en)Tj 0 Tc 1.316 0 Td [(ormal, )-5(in )-5(the )-5(sense )-5(that )-5(its )-5(semantics)]TJ -22.827 -1.2 Td (ar)Tj 0.2712 Tc 0.877 0 Td (es)Tj 0 Tc 1.174 0 Td [(imilar )-21(to )-21(those )-21(of )-21(all )-21(other )-21(signals.)-521(When )-21(the )-21(signal )-21(occurs, )-21(the )-21(status )-21(of )-21(a )-21(child )-21(has)]TJ -2.051 -1.2 Td [(changed, )-314(and )-314(we )-314(need )-314(to )-314(call )-314(one )-314(of )-314(the)]TJ /TT0 1 Tf 20.505 0 Td (wait)Tj /T1_0 1 Tf 2.964 0 Td [(functions )-314(to )-314(determine )-314(what )-314(has)]TJ -23.469 -1.2 Td (happened.)Tj 1.8 -1.2 Td [(System )-153(V)]TJ 0.403 Tc 4.189 0 Td (,h)Tj 0 Tc 1.235 0 Td (owever)Tj 0.403 Tc 3.224 0 Td (,h)Tj 0 Tc 1.235 0 Td [(as )-153(traditionally )-153(handled )-153(the)]TJ /TT0 1 Tf 13.085 0 Td (SIGCLD)Tj /T1_0 1 Tf 4.003 0 Td [(signal )-153(dif)18(fer)18(ently )-153(fr)18(om)]TJ -28.771 -1.2 Td [(other )-680(signals.)-1180(SVR4)]TJ 10.171 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-680(systems )-680(continue )-680(this )-680(questionable )-680(tradition )-680(\(i.e.,)]TJ -10.504 -1.2 Td [(compatibility )-112(constraint\) )-112(if )-112(we )-112(set )-112(its )-112(disposition )-112(using )-112(either)]TJ /TT0 1 Tf 28.053 0 Td (signal)Tj /T1_0 1 Tf 3.962 0 Td (or)Tj /TT0 1 Tf 1.303 0 Td (sigset)Tj /T1_0 1 Tf 3.962 0 Td (\(the)Tj -37.28 -1.2 Td (older)Tj 0.267 Tc 2.248 0 Td (,S)Tj 0 Tc 1.042 0 Td [(VR3-compatible )-17(functions )-17(to )-17(set )-17(the )-17(disposition )-17(of )-17(a )-17(signal\).)-517(This )-17(older )-17(handling)]TJ -3.29 -1.2 Td (of)Tj /TT0 1 Tf 1.129 0 Td (SIGCLD)Tj /T1_0 1 Tf 3.85 0 Td (consists of the following behavior:)Tj -3.179 -2.16 Td [(1. )-633(If)-288(the )-38(pr)18(ocess )-38(speci\336cally )-38(sets )-38(its )-38(disposition )-38(to)]TJ /TT0 1 Tf 22.718 0 Td (SIG_IGN)Tj /T1_0 1 Tf 0.2885 Tc (,c)Tj 0 Tc 5.182 0 Td [(hildr)18(en )-38(of )-38(the )-38(calling)]TJ -26.268 -1.2 Td [(pr)18(ocess )-95(will )-95(not )-95(generate )-95(zombie )-95(pr)19(ocesses. )-345(Note)-345(that )-95(this )-95(is )-95(dif)18(fer)18(ent )-95(fr)18(om )-95(its)]TJ 0 -1.2 TD [(default )-78(action )-78(\()]TJ /TT0 1 Tf (SIG_DFL)Tj /T1_0 1 Tf [(\), )-78(which )-78(fr)18(om )-78(Figur)]TJ 0.3281 Tc 19.844 0 Td (e1)Tj 0 Tc 1.307 0 Td [(0.1 )-78(is )-78(to )-78(be )-78(ignor)18(ed. )-328(Instead,)-328(on)]TJ -21.151 -1.2 Td [(termination, )-96(the )-96(status )-96(of )-96(these )-96(child )-96(pr)16(ocesses )-96(is )-96(discar)17(ded. )-346(If)-347(it )-96(subsequently)]TJ -0 -1.2 Td [(calls )-289(one )-289(of )-289(the)]TJ /TT0 1 Tf 7.981 0 Td (wait)Tj /T1_0 1 Tf 2.939 0 Td [(functions, )-289(the )-289(calling )-289(pr)17(ocess )-289(will )-289(block )-289(until )-289(all )-289(its)]TJ -10.921 -1.2 Td [(childr)18(en )-32(have )-32(terminated, )-32(and )-32(then)]TJ /TT0 1 Tf 15.976 0 Td (wait)Tj /T1_0 1 Tf -0.018 Tc 2.682 0 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj /TT1 1 Tf 2.612 0 Td (!)Tj /T1_0 1 Tf 0.2818 Tc (1w)Tj 0 Tc 2.165 0 Td (ith)Tj /TT0 1 Tf 1.481 0 Td (errno)Tj /T1_0 1 Tf 3.282 0 Td [(set )-32(to)]TJ /TT0 1 Tf 2.665 0 Td (ECHILD)Tj /T1_0 1 Tf (.)Tj -31.717 -1.2 Td [(\(The )-80(default )-80(disposition )-80(of )-80(this )-80(signal )-80(is )-80(to )-80(be )-80(ignor)19(ed, )-80(but )-80(this )-80(default )-80(will )-80(not)]TJ T* [(cause )-101(the )-101(pr)18(eceding )-101(semantics )-101(to )-101(occur)]TJ 0.6009 Tc 17.594 0 Td (.I)Tj 0 Tc 1.188 0 Td [(nstead, )-101(we )-101(speci\336cally )-101(have )-101(to )-101(set )-101(its)]TJ -18.782 -1.2 Td (disposition to)Tj /TT0 1 Tf 6.305 0 Td (SIG_IGN)Tj /T1_0 1 Tf (.\))Tj 7.9995 0 0 7.9995 201.5882 435.3739 Tm [(POSIX.1 )-144(does )-144(not )-144(specify )-144(what )-144(happens )-144(when)]TJ /TT0 1 Tf 21.559 0 Td (SIGCHLD)Tj /T1_0 1 Tf 4.594 0 Td [(is )-144(ignor)18(ed, )-144(so )-144(this )-144(behavior )-144(is)]TJ -26.153 -1.25 Td [(allowed. )-250(The)-250(XSI option r)18(equir)18(es this behavior to be supported for)]TJ /TT0 1 Tf 29.785 0 Td (SIGCHLD)Tj /T1_0 1 Tf (.)Tj -29.785 -2.5 Td [(4.4BSD )-102(always )-102(generates )-102(zombies )-102(if)]TJ /TT0 1 Tf 16.543 0 Td (SIGCHLD)Tj /T1_0 1 Tf 4.552 0 Td [(is )-102(ignor)18(ed. )-352(If)-351(we )-102(want )-102(to )-102(avoid )-102(zombies,)]TJ -21.095 -1.25 Td [(we )-15(have )-15(to)]TJ /TT0 1 Tf 5.106 0 Td (wait)Tj /T1_0 1 Tf 2.665 0 Td [(for )-15(our )-15(childr)18(en. )-265(W)55(ith )-15(SVR4, )-15(if )-15(either)]TJ /TT0 1 Tf 16.815 0 Td (signal)Tj /T1_0 1 Tf 3.865 0 Td (or)Tj /TT0 1 Tf 1.206 0 Td (sigset)Tj /T1_0 1 Tf 3.865 0 Td [(is )-15(called )-15(to )-15(set)]TJ -33.523 -1.25 Td [(the )-340(disposition )-340(of)]TJ /TT0 1 Tf 8.969 0 Td (SIGCHLD)Tj /T1_0 1 Tf 4.79 0 Td [(to )-340(be )-340(ignor)18(ed, )-340(zombies )-340(ar)]TJ 0.59 Tc 12.509 0 Td (en)Tj 0 Tc 1.651 0 Td [(ever )-340(generated.)-840(All )-340(four)]TJ -27.918 -1.25 Td [(platforms described in this book follow SVR4 in this behavior)74(.)]TJ -0.055 Tc 0 -2.5 TD (Wi)Tj 0 Tc 1.236 0 Td (th)Tj /TT0 1 Tf 1.287 0 Td (sigaction)Tj /T1_0 1 Tf [(,)-379(we)-379(can )-129(set )-129(the)]TJ /TT0 1 Tf 13 0 Td (SA_NOCLDWAIT)Tj /T1_0 1 Tf 7.579 0 Td [(\337ag )-129(\(Figur)]TJ 0.379 Tc 4.759 0 Td (e1)Tj 0 Tc 1.358 0 Td [(0.16\) )-129(to )-129(avoid )-129(zombies.)]TJ -29.219 -1.25 Td (This action is also supported on all four platforms.)Tj 9.9994 0 0 9.9994 147.5906 321.3807 Tm [(2. )-633(If)-285(we )-35(set )-35(the )-35(disposition )-35(of)]TJ /TT0 1 Tf 13.753 0 Td (SIGCLD)Tj /T1_0 1 Tf 3.885 0 Td [(to )-35(be )-35(caught, )-35(the )-35(kernel )-35(immediately )-35(checks)]TJ -16.005 -1.2 Td [(whether )-190(any )-190(child )-190(pr)18(ocesses )-190(ar)]TJ 0.4403 Tc 14.37 0 Td (er)Tj 0 Tc 1.296 0 Td [(eady )-190(to )-190(be)]TJ /TT0 1 Tf 5.371 0 Td (wait)Tj /T1_0 1 Tf [(ed )-190(for )-190(and, )-190(if )-190(so, )-190(calls )-190(the)]TJ /TT0 1 Tf -21.037 -1.2 Td (SIGCLD)Tj /T1_0 1 Tf 3.85 0 Td [(handler)74(.)]TJ -7.283 -2.28 Td [(Item )-2(2 )-2(changes )-2(the )-2(way )-2(we )-2(have )-2(to )-2(write )-2(a )-2(signal )-2(handler )-2(for )-2(this )-2(signal, )-2(as )-2(illustrated )-2(in)]TJ 0 -1.2 TD (the following example.)Tj /TT2 1 Tf -3.6 -3.12 Td (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(Recall )-82(fr)18(om )-82(Section )-82(10.4 )-82(that )-82(the )-82(\336rst )-82(thing )-82(to )-82(do )-82(on )-82(entry )-82(to )-82(a )-82(signal )-82(handler )-82(is )-82(to )-82(call)]TJ /TT0 1 Tf T* (signal)Tj /T1_0 1 Tf 4.084 0 Td [(again, )-233(to )-233(r)17(eestablish )-234(the )-234(handler)]TJ 0.7336 Tc 14.964 0 Td (.\()Tj 0 Tc 1.317 0 Td [(This )-234(action )-234(is )-234(intended )-234(to )-234(minimize )-234(the)]TJ -20.364 -1.2 Td [(window )-2(of )-2(time )-2(when )-2(the )-2(signal )-2(is )-2(r)17(eset )-2(back )-2(to )-2(its )-2(default )-2(and )-2(could )-2(get )-2(lost.\))]TJ -0.092 Tc 34.975 0 Td [(We )-186(s)]TJ 0 Tc 2.063 0 Td (how)Tj -37.038 -1.2 Td [(this )-48(in )-48(Figur)]TJ 0.2978 Tc 5.475 0 Td (e1)Tj 0 Tc 1.277 0 Td [(0.6. )-298(This)-298(pr)18(ogram )-48(doesn\325t )-48(work )-48(on )-48(traditional )-48(System )-48(V )-48(platforms.)-547(The)]TJ -6.751 -1.2 Td [(output )-131(is )-131(a )-131(continual )-131(string )-131(of)]TJ /TT0 1 Tf 14.125 0 Td [(SIGCLD )219(received)]TJ /T1_0 1 Tf 9.162 0 Td [(lines. )-381(Eventually)]TJ 0.3811 Tc 7.641 0 Td (,t)Tj 0 Tc 0.957 0 Td [(he )-131(pr)18(ocess )-131(r)8(uns)]TJ -31.886 -1.2 Td [(out of stack space and terminates abnormally)111(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46799 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Chapter )-250(8)]TJ 39.788 0 Td [(Exer)18(cises)]TJ /T1_1 1 Tf 6.045 0 Td (283)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (exec)Tj /T1_0 1 Tf 2.954 0 Td [(functions: )-304(interpr)18(eter )-304(\336les )-304(and )-304(how )-304(they )-304(operate.)-807(An )-304(understanding )-304(of )-304(the)]TJ -2.954 -1.2 Td [(various )-294(user )-294(IDs )-294(and )-294(gr)18(oup )-294(IDs )-294(that )-294(ar)]TJ 0.5436 Tc 19.087 0 Td (ep)Tj -0.018 Tc 1.624 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vided )167(\321 )167(r)17(eal, )-294(ef)18(fective, )-294(and )-294(saved)]TJ 0.0833 Tc 15.568 0 Td (\321i)Tj 0 Tc 1.374 0 Td (s)Tj -38.576 -1.2 Td [(critical to writing safe set-user)18(-ID pr)18(ograms.)]TJ 1.8 -1.2 Td [(Given )-47(an )-47(understanding )-47(of )-47(a )-47(single )-47(pr)18(ocess )-47(and )-47(its )-47(childr)18(en, )-47(in )-47(the )-47(next )-47(chapter )-47(we)]TJ -1.8 -1.2 Td [(examine )-61(the )-61(r)18(elationship )-61(of )-61(a )-61(pr)18(ocess )-61(to )-61(other )-61(pr)16(ocesses )167(\321 )167(sessions)-312(and )-61(job )-61(contr)17(ol. )-311(W)92(e)]TJ 0 -1.2 TD [(then complete our discussion of pr)18(ocesses in Chapter 10 when we describe signals.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 129.5923 560.9663 Tm [(Ex)10(er)20(cises)]TJ /T1_1 1 Tf 8.9995 0 0 8.9995 129.5923 539.9676 Tm (8.1)Tj /T1_0 1 Tf 2.602 0 Td [(In )-76(Figur)]TJ 0.3259 Tc 3.628 0 Td (e8)Tj 0 Tc 1.305 0 Td [(.3, )-76(we )-76(said )-76(that )-76(r)18(eplacing )-76(the )-76(call )-76(to)]TJ /TT0 1 Tf 16.386 0 Td (_exit)Tj /T1_0 1 Tf 3.326 0 Td [(with )-76(a )-76(call )-76(to)]TJ /TT0 1 Tf 6.234 0 Td (exit)Tj /T1_0 1 Tf 2.726 0 Td [(might )-76(cause )-76(the)]TJ -33.605 -1.222 Td (standar)Tj 0.4797 Tc 3.32 0 Td (do)Tj 0 Tc 1.637 0 Td [(utput )-230(to )-230(be )-230(closed )-230(and)]TJ /TT0 1 Tf 11.249 0 Td (printf)Tj /T1_0 1 Tf 4.08 0 Td [(to )-230(r)18(eturn)]TJ /TT2 1 Tf 4.593 0 Td (!)Tj /T1_0 1 Tf [(1. )-480(Modify)-479(the )-230(pr)18(ogram )-230(to )-230(check)]TJ -24.879 -1.222 Td [(whether )-89(your )-89(implementation )-89(behaves )-89(this )-89(way)]TJ 0.589 Tc 21.517 0 Td (.I)Tj 0 Tc 1.176 0 Td [(f)-339(it)-339(does )-89(not, )-89(how )-89(can )-89(you )-89(simulate )-89(this)]TJ -22.693 -1.222 Td (behavior?)Tj /T1_1 1 Tf -2.602 -1.667 Td (8.2)Tj /T1_0 1 Tf 2.602 0 Td [(Recall )-391(the )-391(typical )-391(arrangement )-391(of )-391(memory )-391(in )-391(Figur)]TJ 0.6407 Tc 25.108 0 Td (e7)Tj 0 Tc 1.62 0 Td [(.6. )-641(Because)-640(the )-391(stack )-391(frames)]TJ -26.727 -1.222 Td [(corr)18(esponding )-202(to )-202(each )-202(function )-202(call )-202(ar)]TJ 0.4523 Tc 17.683 0 Td (eu)Tj 0 Tc 1.534 0 Td [(sually )-202(stor)18(ed )-202(in )-202(the )-202(stack, )-202(and )-202(because )-202(after )-202(a)]TJ /TT0 1 Tf -19.217 -1.222 Td (vfork)Tj /T1_0 1 Tf 3.305 0 Td [(the )-56(child )-56(r)8(uns )-56(in )-56(the )-56(addr)18(ess )-56(space )-56(of )-56(the )-56(par)18(ent, )-56(what )-56(happens )-56(if )-56(the )-56(call )-56(to)]TJ /TT0 1 Tf 34.426 0 Td (vfork)Tj /T1_0 1 Tf -37.731 -1.222 Td [(is )-70(fr)18(om )-70(a )-70(function )-70(other )-70(than)]TJ /TT0 1 Tf 13.3 0 Td (main)Tj /T1_0 1 Tf 2.72 0 Td [(and )-70(the )-70(child )-70(does )-70(a )-70(r)18(eturn )-70(fr)18(om )-70(this )-70(function )-70(after )-70(the)]TJ /TT0 1 Tf -16.02 -1.222 Td (vfork)Tj /T1_0 1 Tf 0.5 Tc (?W)Tj 0 Tc 4.87 0 Td [(rite a test pr)18(ogram to verify this, and draw a pictur)18(e)-250(of)-250(what\325s happening.)]TJ /T1_1 1 Tf -7.472 -1.667 Td (8.3)Tj /T1_0 1 Tf 2.602 0 Td [(Rewrite )-248(the )-248(pr)18(ogram )-248(in )-248(Figur)]TJ 0.4976 Tc 13.963 0 Td (e8)Tj 0 Tc 1.477 0 Td [(.6 )-248(to )-248(use)]TJ /TT0 1 Tf 4.621 0 Td (waitid)Tj /T1_0 1 Tf 4.098 0 Td [(instead )-248(of)]TJ /TT0 1 Tf 5.087 0 Td (wait)Tj /T1_0 1 Tf 0.7477 Tc (.I)Tj 0 Tc 3.735 0 Td [(nstead )-248(of )-248(calling)]TJ /TT0 1 Tf -32.98 -1.222 Td (pr_exit)Tj /T1_0 1 Tf 0.25 Tc (,d)Tj 0 Tc 5.311 0 Td [(etermine the equivalent information fr)18(om the)]TJ /TT0 1 Tf 20.278 0 Td (siginfo)Tj /T1_0 1 Tf 4.45 0 Td [(str)8(uctur)18(e.)]TJ /T1_1 1 Tf -32.641 -1.667 Td (8.4)Tj /T1_0 1 Tf 2.602 0 Td [(When we execute the pr)18(ogram in Figur)]TJ 0.25 Tc 17.283 0 Td (e8)Tj 0 Tc 1.229 0 Td (.13 one time, as in)Tj /TT0 1 Tf -16.512 -1.8 Td ($)Tj /TT3 1 Tf 1.2 0 Td (./a.out)Tj /T1_0 1 Tf -3.2 -1.833 Td [(the )-181(output )-181(is )-181(corr)17(ect. )-431(But)-432(if )-181(we )-181(execute )-181(the )-181(pr)18(ogram )-181(multiple )-181(times, )-181(one )-181(right )-181(after )-181(the)]TJ -0 -1.222 Td [(other)74(,)-250(as)-250(in)]TJ /TT0 1 Tf 2 -1.8 Td ($)Tj /TT3 1 Tf 1.2 0 Td (./a.out ; ./a.out ; ./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (output from parent)Tj 0 -1.189 TD (ooutput from parent)Tj T* (ouotuptut from child)Tj T* (put from parent)Tj T* (output from child)Tj T* (utput from child)Tj /T1_0 1 Tf -2 -1.833 Td [(the )-76(output )-76(is )-76(not )-76(corr)20(ect. )-326(What\325s)-326(happening? )-326(How)-324(can )-76(we )-76(corr)19(ect )-76(this?)-576(Can )-76(this )-76(pr)19(oblem)]TJ -0 -1.222 Td (happen if we let the child write its output \336rst?)Tj /T1_1 1 Tf -2.602 -1.667 Td (8.5)Tj /T1_0 1 Tf 2.602 0 Td [(In )-294(the )-294(pr)18(ogram )-294(shown )-294(in )-294(Figur)]TJ 0.5444 Tc 15.11 0 Td (e8)Tj 0 Tc 1.523 0 Td [(.20, )-294(we )-294(call)]TJ /TT0 1 Tf 5.972 0 Td (execl)Tj /T1_0 1 Tf 0.5443 Tc (,s)Tj 0 Tc 4.218 0 Td [(pecifying )-294(the)]TJ /T1_2 1 Tf 6.609 0 Td (pathname)Tj /T1_0 1 Tf 4.488 0 Td [(of )-294(the)]TJ -37.921 -1.222 Td [(interpr)18(eter )-104(\336le.)-604(If )-104(we )-104(called)]TJ /TT0 1 Tf 12.973 0 Td (execlp)Tj /T1_0 1 Tf 3.954 0 Td [(instead, )-104(specifying )-104(a)]TJ /T1_2 1 Tf 9.581 0 Td (\336lename)Tj /T1_0 1 Tf 3.716 0 Td (of)Tj /TT0 1 Tf 1.233 0 Td (testinterp)Tj /T1_0 1 Tf 0.3539 Tc (,a)Tj 0 Tc 7.104 0 Td [(nd )-104(if)]TJ -38.56 -1.222 Td [(the )-10(dir)18(ectory)]TJ /TT0 1 Tf 5.932 0 Td (/home/sar/bin)Tj /T1_0 1 Tf 8.06 0 Td [(was )-10(a )-10(path )-10(pr)18(e\336x, )-10(what )-10(would )-10(be )-10(printed )-10(as)]TJ /TT0 1 Tf 19.802 0 Td (argv[2])Tj /T1_0 1 Tf 4.46 0 Td (when)Tj -38.254 -1.222 Td [(the pr)18(ogram is r)8(un?)]TJ /T1_1 1 Tf -2.602 -1.667 Td (8.6)Tj /T1_0 1 Tf -0.074 Tc 2.602 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-17(a )-17(pr)18(ogram )-17(that )-17(cr)18(eates )-17(a )-17(zombie, )-17(and )-17(then )-17(call)]TJ /TT0 1 Tf 22.076 0 Td (system)Tj /T1_0 1 Tf 3.867 0 Td [(to )-17(execute )-17(the)]TJ /TT0 1 Tf 6.386 0 Td (ps)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.6 -0.04 Td (command)Tj -36.282 -1.222 Td [(to verify that the pr)18(ocess is a zombie.)]TJ /T1_1 1 Tf -2.602 -1.667 Td (8.7)Tj /T1_0 1 Tf -0.092 Tc 2.602 0 Td [(We )-350(m)]TJ 0 Tc 2.686 0 Td [(entioned )-166(in )-166(Section )-166(8.10 )-166(that )-166(POSIX.1 )-166(r)16(equir)18(es )-166(open )-166(dir)18(ectory )-166(str)18(eams )-166(to )-166(be )-166(closed)]TJ -2.686 -1.222 Td [(acr)18(oss )-145(an)]TJ /TT0 1 Tf 4.586 0 Td (exec)Tj /T1_0 1 Tf 0.6447 Tc (.V)Tj 0 Tc 3.906 0 Td [(erify )-145(this )-145(as )-145(follows: )-145(call)]TJ /TT0 1 Tf 11.615 0 Td (opendir)Tj /T1_0 1 Tf 4.595 0 Td [(for )-145(the )-145(r)18(oot )-145(dir)19(ectory)]TJ 0.3948 Tc 9.554 0 Td (,p)Tj 0 Tc 1.246 0 Td [(eek )-145(at )-145(your)]TJ -35.502 -1.222 Td [(system\325s )-50(implementation )-50(of )-50(the)]TJ /TT0 1 Tf 14.32 0 Td (DIR)Tj /T1_0 1 Tf 2.1 0 Td [(str)8(uctur)18(e, )-50(and )-50(print )-50(the )-50(close-on-exec )-50(\337ag.)-551(Then)]TJ /TT0 1 Tf 21.911 0 Td (open)Tj /T1_0 1 Tf -38.331 -1.222 Td [(the same dir)18(ectory for r)18(eading, and print the close-on-exec \337ag.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46800 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (242)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (The)Tj /TT0 1 Tf 1.938 0 Td (waitpid)Tj /T1_1 1 Tf 4.464 0 Td [(function )-14(r)18(eturns )-14(the )-14(pr)18(ocess )-14(ID )-14(of )-14(the )-14(child )-14(that )-14(terminated )-14(and )-14(stor)18(es )-14(the)]TJ -6.401 -1.2 Td [(child\325s )-59(termination )-59(status )-59(in )-59(the )-59(memory )-59(location )-59(pointed )-59(to )-59(by)]TJ /T1_2 1 Tf 28.763 0 Td (statloc)Tj /T1_1 1 Tf 0.5593 Tc (.W)Tj 0 Tc 4.382 0 Td (ith)Tj /TT0 1 Tf 1.508 0 Td (wait)Tj /T1_1 1 Tf 0.3093 Tc (,t)Tj 0 Tc 3.285 0 Td (he)Tj -37.939 -1.2 Td [(only )-8(r)18(eal )-8(err)18(or )-8(is )-8(if )-8(the )-8(calling )-8(pr)18(ocess )-8(has )-8(no )-8(childr)18(en. )-258(\(Another)-258(err)18(or )-8(r)18(eturn )-8(is )-8(possible,)]TJ 0 -1.2 Td [(in )-148(case )-148(the )-148(function )-148(call )-148(is )-148(interr)8(upted )-148(by )-148(a )-148(signal.)]TJ -0.092 Tc 23.87 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-148(discuss )-148(this )-148(in )-148(Chapter )-148(10.\))]TJ -0.055 Tc -25.257 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td (th)Tj /TT0 1 Tf 1.335 0 Td (waitpid)Tj /T1_1 1 Tf 0.4266 Tc (,h)Tj 0 Tc 5.459 0 Td (owever)Tj 0.4266 Tc 3.224 0 Td (,i)Tj 0 Tc 0.968 0 Td [(t\325s )-177(also )-177(possible )-177(to )-177(get )-177(an )-177(err)20(or )-177(if )-177(the )-177(speci\336ed )-177(pr)18(ocess )-177(or)]TJ -12.221 -1.2 Td [(pr)18(ocess gr)18(oup does not exist or is not a child of the calling pr)18(ocess.)]TJ 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 2.252 0 Td (options)Tj /T1_1 1 Tf 3.522 0 Td [(ar)18(gument )-328(lets )-328(us )-328(further )-328(contr)16(ol )-328(the )-328(operation )-328(of)]TJ /TT0 1 Tf 24.237 0 Td (waitpid)Tj /T1_1 1 Tf 0.8283 Tc (.T)Tj 0 Tc 5.891 0 Td (his)Tj -37.703 -1.2 Td [(ar)18(gument )-17(either )-17(is )-17(0 )-17(or )-17(is )-17(constr)8(ucted )-17(fr)18(om )-17(the )-17(bitwise )-17(OR )-17(of )-17(the )-17(constants )-17(in )-17(Figur)]TJ 0.2667 Tc 36.754 0 Td (e8)Tj 0 Tc 1.246 0 Td (.7.)Tj 7.9995 0 0 7.9995 183.5886 562.9662 Tm [(Fr)18(eeBSD )-2(8.0 )-2(and )-2(Solaris )-2(10 )-2(support )-2(one )-2(additional, )-2(but )-2(nonstandar)18(d,)]TJ /T1_2 1 Tf 30.511 0 Td (option)Tj /T1_1 1 Tf 2.807 0 Td (constant.)Tj /TT0 1 Tf 4.482 0 Td (WNOWAIT)Tj /T1_1 1 Tf -37.8 -1.25 Td [(has )-106(the )-106(system )-106(keep )-106(the )-106(pr)16(ocess )-107(whose )-107(termination )-107(status )-107(is )-107(r)18(eturned )-107(by)]TJ /TT0 1 Tf 33.406 0 Td (waitpid)Tj /T1_1 1 Tf 4.557 0 Td [(in )-107(a )-107(wait)]TJ -37.963 -1.25 Td (state, so that it may be waited for again.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1646.25 5170.25 cm 0 0 m 3200 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 176.5988 508.9389 Tm (Constant )Tj 19.671 0 Td (Description)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1646.25 5050.25 cm 0 0 m 3200 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1646.25 5030.25 cm 0 0 m 3200 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 168.5697 494.9109 Tm (WCONTINUED)Tj /T1_1 1 Tf 7.5 0 Td [(If the implementation supports job contr)18(ol, the status of any child)]TJ 0 -1.25 TD (speci\336ed by)Tj /T1_2 1 Tf 5.543 0 Td (pid)Tj /T1_1 1 Tf 1.528 0 Td (that has been continued after being stopped, but)Tj -7.071 -1.25 Td [(whose status has not yet been r)18(eported, is r)18(eturned \(XSI option\).)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1646.25 4710.25 cm 0 0 m 3200 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 168.5595 462.8889 Tm (WNOHANG)Tj /T1_1 1 Tf 7.5 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (waitpid)Tj /T1_1 1 Tf 4.45 0 Td (function will not block if a child speci\336ed by)Tj /T1_2 1 Tf 19.894 0 Td (pid)Tj /T1_1 1 Tf 1.528 0 Td (is not)Tj -27.796 -1.25 Td [(immediately available.)-500(In this case, the r)18(eturn value is 0.)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1646.25 4490.25 cm 0 0 m 3200 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 168.5494 440.8677 Tm (WUNTRACED)Tj /T1_1 1 Tf 7.5 0 Td [(If the implementation supports job contr)18(ol, the status of any child)]TJ T* (speci\336ed by)Tj /T1_2 1 Tf 5.543 0 Td (pid)Tj /T1_1 1 Tf 1.528 0 Td (that has stopped, and whose status has not been)Tj -0.018 Tc -7.071 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(ported since it has stopped, is r)18(eturned. )-250(The)]TJ /TT0 1 Tf 19.88 0 Td (WIFSTOPPED)Tj /T1_1 1 Tf 6.25 0 Td [(macr)18(o)]TJ -26.986 -1.25 Td [(determines whether the r)18(eturn value corr)18(esponds to a stopped child)]TJ T* [(pr)18(ocess.)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1646.25 3970.25 cm 0 0 m 3200 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2226.25 3970.25 cm 0 0 m 0 1200 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4846.25 3970.25 cm 0 0 m 0 1200 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1646.25 3970.25 cm 0 0 m 0 1200 l S Q Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 243.7482 378.8636 Tm (Figure 8.7)Tj /T1_1 1 Tf 4.945 0 Td (The)Tj /T1_2 1 Tf 1.924 0 Td (options)Tj /T1_1 1 Tf 3.194 0 Td (constants for)Tj /TT0 1 Tf 5.928 0 Td (waitpid)Tj /T1_1 1 Tf 9.9964 0 0 9.9964 147.5471 347.6748 Tm (The)Tj /TT0 1 Tf 2.102 0 Td (waitpid)Tj /T1_1 1 Tf 4.628 0 Td [(function )-178(pr)18(ovides )-178(thr)18(ee )-178(featur)18(es )-178(that )-178(ar)18(en\325t )-178(pr)18(ovided )-178(by )-178(the)]TJ /TT0 1 Tf 28.07 0 Td (wait)Tj /T1_1 1 Tf -36.6 -1.2 Td (function.)Tj 1.8 -2.04 Td [(1. )-633(The)]TJ /TT0 1 Tf 3.578 0 Td (waitpid)Tj /T1_1 1 Tf 4.471 0 Td [(function )-21(lets )-21(us )-21(wait )-21(for )-21(one )-21(particular )-21(pr)17(ocess, )-21(wher)18(eas )-21(the)]TJ /TT0 1 Tf 26.751 0 Td (wait)Tj /T1_1 1 Tf -33.167 -1.2 Td [(function )-81(r)18(eturns )-81(the )-81(status )-81(of )-81(any )-81(terminated )-81(child.)]TJ -0.092 Tc 23.641 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-81(r)18(eturn )-81(to )-81(this )-81(featur)17(e)]TJ -25.028 -1.2 Td (when we discuss the)Tj /TT0 1 Tf 9.398 0 Td (popen)Tj /T1_1 1 Tf 3.25 0 Td (function.)Tj -14.281 -1.6 Td [(2. )-633(The)]TJ /TT0 1 Tf 3.819 0 Td (waitpid)Tj /T1_1 1 Tf 4.712 0 Td [(function )-262(pr)18(ovides )-262(a )-262(nonblocking )-262(version )-262(of)]TJ /TT0 1 Tf 20.861 0 Td (wait)Tj /T1_1 1 Tf 0.7616 Tc (.T)Tj 0 Tc 4.025 0 Td (her)Tj 0.5116 Tc 1.438 0 Td (ea)Tj -0.018 Tc 1.491 0 Td (re)Tj 0 Tc -34.711 -1.2 Td (times when we want to fetch a child\325s status, but we don\325t want to\ block.)Tj -1.633 -1.6 Td [(3. )-633(The)]TJ /TT0 1 Tf 3.713 0 Td (waitpid)Tj /T1_1 1 Tf 4.606 0 Td [(function )-156(pr)18(ovides )-156(support )-156(for )-156(job )-156(contr)18(ol )-156(with )-156(the)]TJ /TT0 1 Tf 23.482 0 Td (WUNTRACED)Tj /T1_1 1 Tf -30.167 -1.2 Td (and)Tj /TT0 1 Tf 1.943 0 Td (WCONTINUED)Tj /T1_1 1 Tf 6.25 0 Td (options.)Tj /TT1 1 Tf -15.226 -3.24 Td (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(Recall )-209(our )-209(discussion )-209(in )-209(Section )-209(8.5 )-209(about )-209(zombie )-209(pr)17(ocesses. )-459(If)-459(we )-209(want )-209(to )-209(write )-209(a)]TJ 0 -1.2 TD [(pr)18(ocess )-36(so )-36(that )-36(it)]TJ /TT0 1 Tf 7.759 0 Td (fork)Tj /T1_1 1 Tf 0.2858 Tc (sac)Tj 0 Tc 4.34 0 Td [(hild )-36(but )-36(we )-36(don\325t )-36(want )-36(to )-36(wait )-36(for )-36(the )-36(child )-36(to )-36(complete )-36(and)]TJ -12.098 -1.2 Td [(we )-24(don\325t )-24(want )-24(the )-24(child )-24(to )-24(become )-24(a )-24(zombie )-24(until )-24(we )-24(terminate, )-24(the )-24(trick )-24(is )-24(to )-24(call)]TJ /TT0 1 Tf 36.601 0 Td (fork)Tj /T1_1 1 Tf -36.601 -1.2 Td [(twice. )-250(The)-250(pr)18(ogram in Figur)]TJ 0.25 Tc 12.662 0 Td (e8)Tj 0 Tc 1.229 0 Td (.8 does this.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46801 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (238)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-58(\336nal )-58(condition )-58(to )-58(consider )-58(is )-58(this: )-58(What )-58(happens )-58(when )-58(a )-58(pr)16(ocess )-58(that )-58(has )-58(been)]TJ -1.8 -1.2 Td [(inherited )-50(by)]TJ /TT0 1 Tf 5.746 0 Td (init)Tj /T1_1 1 Tf 2.7 0 Td [(terminates? )-300(Does)-301(it )-50(become )-50(a )-50(zombie?)-550(The )-50(answer )-50(is )-50(\324)34(\324no,\325)]TJ 0.3003 Tc 26.494 0 Td (\325b)Tj 0 Tc 1.131 0 Td (ecause)Tj /TT0 1 Tf -36.071 -1.2 Td (init)Tj /T1_1 1 Tf 2.747 0 Td [(is )-97(written )-97(so )-97(that )-97(whenever )-97(one )-97(of )-97(its )-97(childr)18(en )-97(terminates,)]TJ /TT0 1 Tf 26.64 0 Td (init)Tj /T1_1 1 Tf 2.747 0 Td [(calls )-97(one )-97(of )-97(the)]TJ /TT0 1 Tf -32.135 -1.2 Td (wait)Tj /T1_1 1 Tf 2.662 0 Td [(functions )-12(to )-12(fetch )-12(the )-12(termination )-12(status.)-511(By )-12(doing )-12(this,)]TJ /TT0 1 Tf 24.841 0 Td (init)Tj /T1_1 1 Tf 2.662 0 Td [(pr)18(events )-12(the )-12(system)]TJ -30.164 -1.2 Td [(fr)18(om )-204(being )-204(clogged )-204(by )-204(zombies.)-704(When )-204(we )-204(say )-204(\324)37(\324one )-204(of)]TJ /TT0 1 Tf 26.352 0 Td (init)Tj /T1_1 1 Tf [(\325s )-204(childr)18(en,\325)]TJ 0.4543 Tc 7.704 0 Td (\325w)Tj 0.4544 Tc 1.566 0 Td (em)Tj 0 Tc 1.816 0 Td (ean)Tj -37.439 -1.2 Td [(either )-194(a )-194(pr)18(ocess )-194(that)]TJ /TT0 1 Tf 9.856 0 Td (init)Tj /T1_1 1 Tf 2.844 0 Td [(generates )-194(dir)18(ectly )-194(\(such )-194(as)]TJ /TT0 1 Tf 12.68 0 Td (getty)Tj /T1_1 1 Tf 0.4437 Tc (,w)Tj 0 Tc 4.528 0 Td [(hich )-194(we )-194(describe )-194(in)]TJ -29.908 -1.2 Td [(Section )-267(9.2\) )-267(or )-267(a )-267(pr)18(ocess )-267(whose )-267(par)16(ent )-267(has )-267(terminated )-267(and )-267(has )-267(been )-267(subsequently)]TJ 0 -1.2 TD (inherited by)Tj /TT0 1 Tf 5.645 0 Td (init)Tj /T1_1 1 Tf (.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5938 548.9671 Tm (8.6)Tj /TT2 1 Tf 3 0 Td (wait)Tj /TT1 1 Tf 2.956 0 Td (and)Tj /TT2 1 Tf 2.334 0 Td (waitpid)Tj /TT1 1 Tf 4.756 0 Td (Functions)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5912 524.9685 Tm [(When )-15(a )-15(pr)18(ocess )-15(terminates, )-15(either )-15(normally )-15(or )-15(abnormally)]TJ 0.265 Tc 25.751 0 Td (,t)Tj 0 Tc 0.841 0 Td [(he )-15(kernel )-15(noti\336es )-15(the )-15(par)18(ent)]TJ -26.592 -1.2 Td [(by )-82(sending )-82(the)]TJ /TT0 1 Tf 7.019 0 Td (SIGCHLD)Tj /T1_1 1 Tf 4.532 0 Td [(signal )-82(to )-82(the )-82(par)17(ent. )-332(Because)-333(the )-83(termination )-83(of )-83(a )-83(child )-83(is )-83(an)]TJ -11.551 -1.2 Td [(asynchr)18(onous )-249(event)]TJ 0.0833 Tc 9.179 0 Td (\321i)Tj 0.499 Tc 1.374 0 Td (tc)Tj 0 Tc 1.269 0 Td [(an )-249(happen )-249(at )-249(any )-249(time )-249(while )-249(the )-249(par)18(ent )-249(is )-249(r)8(unning )167(\321 )167(this)]TJ -11.823 -1.2 Td [(signal )-139(is )-139(the )-139(asynchr)18(onous )-139(noti\336cation )-139(fr)18(om )-139(the )-139(kernel )-139(to )-139(the )-139(par)22(ent. )-389(The)-388(par)18(ent )-139(can)]TJ -0 -1.2 Td [(choose )-89(to )-89(ignor)]TJ 0.3391 Tc 6.923 0 Td (et)Tj 0 Tc 1.144 0 Td [(his )-89(signal, )-89(or )-89(it )-89(can )-89(pr)18(ovide )-89(a )-89(function )-89(that )-89(is )-89(called )-89(when )-89(the )-89(signal)]TJ -8.067 -1.2 Td [(occurs: )-31(a )-31(signal )-31(handler)]TJ 0.5308 Tc 10.458 0 Td (.T)Tj 0 Tc 1.394 0 Td [(he )-31(default )-31(action )-31(for )-31(this )-31(signal )-31(is )-31(to )-31(be )-31(ignor)19(ed. )-281(W)]TJ 0.2809 Tc 22.712 0 Td (ed)Tj 0 Tc 1.371 0 Td (escribe)Tj -35.935 -1.2 Td [(these )-159(options )-159(in )-159(Chapter )-159(10.)-658(For )-159(now)92(,)-409(we)-409(need )-159(to )-159(be )-159(awar)]TJ 0.4088 Tc 27.264 0 Td (et)Tj 0 Tc 1.214 0 Td [(hat )-159(a )-159(pr)18(ocess )-159(that )-159(calls)]TJ /TT0 1 Tf -28.478 -1.2 Td (wait)Tj /T1_1 1 Tf 2.65 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (waitpid)Tj /T1_1 1 Tf 4.45 0 Td (can)Tj 0.883 Tc -6.491 -2.04 Td (\245B)Tj 0 Tc 2.1 0 Td [(lock, if all of its childr)18(en ar)]TJ 0.25 Tc 11.747 0 Td (es)Tj 0 Tc 1.153 0 Td [(till r)8(unning)]TJ 0.883 Tc -15 -1.6 Td (\245R)Tj 0 Tc 2.157 0 Td [(eturn )-346(immediately )-346(with )-346(the )-346(termination )-346(status )-346(of )-346(a )-346(child, )-346(if )-346(a )-346(child )-346(has)]TJ -0.668 -1.2 Td (terminated and is waiting for its termination status to be fetched)Tj 0.883 Tc -1.489 -1.6 Td (\245R)Tj 0 Tc 2.157 0 Td [(eturn immediately with an err)18(or)74(,)-250(if)-250(it)-250(doesn\325t have any child pr)18(ocesses)]TJ -3.957 -2.04 Td [(If )-6(the )-6(pr)18(ocess )-6(is )-6(calling)]TJ /TT0 1 Tf 10.303 0 Td (wait)Tj /T1_1 1 Tf 2.656 0 Td [(because )-6(it )-6(r)18(eceived )-6(the)]TJ /TT0 1 Tf 10.236 0 Td (SIGCHLD)Tj /T1_1 1 Tf 4.456 0 Td [(signal, )-6(we )-6(expect)]TJ /TT0 1 Tf 7.821 0 Td (wait)Tj /T1_1 1 Tf 2.656 0 Td (to)Tj -0.018 Tc -38.128 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (turn immediately)Tj 0.5 Tc 7.635 0 Td (.B)Tj 0 Tc 1.361 0 Td (ut if we call it at any random point in time, it can block.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5904 325.0805 Tm (#include )Tj 0 -2.021 TD (pid_t wait\(int *)Tj /T1_2 1 Tf (statloc)Tj /TT0 1 Tf (\);)Tj 0 -2.021 TD (pid_t waitpid\(pid_t)Tj /T1_2 1 Tf 12 0 Td (pid)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.078 0 Td (nt *)Tj /T1_2 1 Tf (statloc)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 6.828 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (options)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -9.341 -2.021 Td [(Both r)18(eturn: pr)18(ocess ID if OK, 0 \(see later\), or)]TJ /TT3 1 Tf 20.099 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2660.25 cm 0 0 m 0 681 l 3900 681 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 250.1 Tm [(The dif)18(fer)18(ences between these two functions ar)18(e)-250(as)-250(follows:)]TJ 0.883 Tc 1.8 -2.04 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.354 0 Td (wait)Tj /T1_1 1 Tf 2.693 0 Td [(function )-42(can )-42(block )-42(the )-42(caller )-42(until )-42(a )-42(child )-42(pr)18(ocess )-42(terminates, )-42(wher)13(eas)]TJ /TT0 1 Tf -4.659 -1.2 Td (waitpid)Tj /T1_1 1 Tf 4.45 0 Td [(has an option that pr)18(events it fr)18(om blocking.)]TJ 0.883 Tc -5.939 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.446 0 Td (waitpid)Tj /T1_1 1 Tf 4.586 0 Td [(function )-135(doesn\325t )-135(wait )-135(for )-135(the )-135(child )-135(that )-135(terminates )-135(\336rst; )-135(it )-135(has )-135(a)]TJ -6.645 -1.2 Td [(number of options that contr)18(ol which pr)18(ocess it waits for)74(.)]TJ -3.289 -2.04 Td [(If )-76(a )-76(child )-76(has )-76(alr)18(eady )-76(terminated )-76(and )-76(is )-76(a )-76(zombie,)]TJ /TT0 1 Tf 22.752 0 Td (wait)Tj /T1_1 1 Tf -0.018 Tc 2.726 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-76(immediately )-76(with )-76(that)]TJ -26.334 -1.2 Td [(child\325s )-10(status.)-510(Otherwise, )-10(it )-10(blocks )-10(the )-10(caller )-10(until )-10(a )-10(child )-10(terminates.)-513(If )-10(the )-10(caller )-10(blocks)]TJ 0 -1.2 TD [(and )-239(has )-239(multiple )-239(childr)18(en,)]TJ /TT0 1 Tf 12.827 0 Td (wait)Tj /T1_1 1 Tf -0.018 Tc 2.889 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-239(when )-239(one )-239(terminates.)]TJ -0.092 Tc 13.555 0 Td [(We )-423(c)]TJ 0 Tc 2.32 0 Td [(an )-239(always )-239(tell)]TJ -32.448 -1.2 Td [(which child terminated, because the pr)18(ocess ID is r)18(eturned by the function.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46802 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 452.343 708 Tm (Contents)Tj /T1_1 1 Tf 5.974 0 Td (xiii)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 154.7907 667.9599 Tm [(8.2 )-3012(Process)-556(Identi\336ers )-1882(227)]TJ 0 -1.3 TD (8.3)Tj /TT1 1 Tf 4.68 0 Td (fork)Tj /TT0 1 Tf 2.956 0 Td [(Function )-1882(229)]TJ -7.636 -1.3 Td (8.4)Tj /TT1 1 Tf 4.68 0 Td (vfork)Tj /TT0 1 Tf 3.556 0 Td [(Function )-1882(234)]TJ -8.236 -1.3 Td (8.5)Tj /TT1 1 Tf 4.68 0 Td (exit)Tj /TT0 1 Tf 2.956 0 Td [(Functions )-1882(236)]TJ -7.636 -1.3 Td (8.6)Tj /TT1 1 Tf 4.68 0 Td (wait)Tj /TT0 1 Tf 2.956 0 Td (and)Tj /TT1 1 Tf 2.224 0 Td (waitpid)Tj /TT0 1 Tf 4.756 0 Td [(Functions )-1882(238)]TJ -14.616 -1.3 Td (8.7)Tj /TT1 1 Tf 4.68 0 Td (waitid)Tj /TT0 1 Tf 4.156 0 Td [(Function )-1882(244)]TJ -8.836 -1.3 Td (8.8)Tj /TT1 1 Tf 4.68 0 Td (wait3)Tj /TT0 1 Tf 3.556 0 Td (and)Tj /TT1 1 Tf 2.224 0 Td (wait4)Tj /TT0 1 Tf 3.556 0 Td [(Functions )-1882(245)]TJ -14.016 -1.3 Td [(8.9 )-3012(Race)-556(Conditions )-1882(245)]TJ T* (8.10)Tj /TT1 1 Tf 4.68 0 Td (exec)Tj /TT0 1 Tf 2.956 0 Td [(Functions )-1882(249)]TJ -7.636 -1.3 Td [(8.11 )-2456(Changing)-556(User )-278(IDs )-278(and )-278(Group )-278(IDs)-2160(255)]TJ 0 -1.3 Td [(8.12 )-2456(Inter)-30(preter )-278(Files)-2160(260)]TJ T* (8.13)Tj /TT1 1 Tf 4.68 0 Td (system)Tj /TT0 1 Tf 4.156 0 Td [(Function )-1882(264)]TJ -8.836 -1.3 Td [(8.14 )-2456(Process)-556(Accounting )-1882(269)]TJ T* [(8.15 )-2456(User)-556(Identi\336cation )-1882(275)]TJ T* [(8.16 )-2456(Process)-556(Scheduling )-1882(276)]TJ T* [(8.17 )-2456(Process)-556(Times )-1882(280)]TJ T* [(8.18 )-2456(Summar)]TJ 2.16 Tc 8.488 0 Td (y2)Tj 0 Tc 3.216 0 Td (82)Tj /TT2 1 Tf -14.224 -2.47 Td [(Chapter )-278(9.)-2032(Pr)20(ocess )-278(Relationships)]TJ 34.118 0 Td (285)Tj /TT0 1 Tf -31.598 -1.82 Td [(9.1 )-3012(Introduction)-2160(285)]TJ T* [(9.2 )-3012(T)120(er )253(minal)-556(Logins )-1882(285)]TJ T* [(9.3 )-3012(Netw)10(or )263(k)-556(Logins )-1882(290)]TJ T* [(9.4 )-3012(Process)-556(Groups )-1882(293)]TJ T* [(9.5 )-3012(Sessions)-2160(295)]TJ T* [(9.6 )-3012(Controlling)]TJ -0.12 Tc 10.015 0 Td (Te)Tj 0.025 Tc 1.047 0 Td (rm)Tj 0 Tc 1.191 0 Td [(inal )-1882(296)]TJ -12.253 -1.3 Td (9.7)Tj /TT1 1 Tf 4.68 0 Td (tcgetpgrp)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 6.234 0 Td (tcsetpgrp)Tj /TT0 1 Tf 0.556 Tc (,a)Tj 0 Tc 6.79 0 Td (nd)Tj /TT1 1 Tf 1.668 0 Td (tcgetsid)Tj /TT0 1 Tf -12.892 -1.3 Td [(Functions )-1882(298)]TJ -6.48 -1.3 Td [(9.8 )-3012(Job)-556(Control )-1882(299)]TJ T* [(9.9 )-3012(Shell)-556(Ex)30(ecution )-278(of )-278(Prog)]TJ -0.01 Tc 15.868 0 Td (ra)Tj 0 Tc 0.879 0 Td [(ms )-1882(303)]TJ -16.747 -1.3 Td [(9.10 )-2456(Or)-30(phaned )-278(Process )-278(Groups)-2160(307)]TJ 0 -1.3 Td [(9.11 )-2456(F)45(reeBSD )-278(Implementation)-2160(310)]TJ 0 -1.3 Td [(9.12 )-2456(Summar)]TJ 2.16 Tc 8.488 0 Td (y3)Tj 0 Tc 3.216 0 Td (12)Tj /TT2 1 Tf -14.224 -2.47 Td [(Chapter )-278(10.)-1476(Signals )]TJ 34.118 0 Td (313)Tj /TT0 1 Tf -31.598 -1.82 Td [(10.1 )-2456(Introduction)-2160(313)]TJ T* [(10.2 )-2456(Signal)-556(Concepts )-1882(313)]TJ T* (10.3)Tj /TT1 1 Tf 4.68 0 Td (signal)Tj /TT0 1 Tf 4.156 0 Td [(Function )-1882(323)]TJ -8.836 -1.3 Td [(10.4 )-2456(Unreliab)20(le )-278(Signals)-2160(326)]TJ 0 -1.3 Td [(10.5 )-2456(Interr)-15(upted )-278(System )-278(Calls)-2160(327)]TJ -0 -1.3 Td [(10.6 )-2456(Reentr)10(ant )-278(Functions)-2160(330)]TJ 0 -1.3 Td (10.7)Tj /TT1 1 Tf 4.68 0 Td (SIGCLD)Tj /TT0 1 Tf 4.156 0 Td [(Semantics )-1882(332)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46803 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (332)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (static void)Tj 0 -1.189 TD (my_alarm\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td [(struct passwd)-1800(*rootptr;)]TJ 0 -1.783 TD (printf\("in signal handler\\n"\);)Tj 0 -1.189 TD (if \(\(rootptr = getpwnam\("root"\)\) == NULL\))Tj 4.8 -1.189 Td (err_sys\("getpwnam\(root\) error"\);)Tj -4.8 -1.189 Td (alarm\(1\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(struct passwd)-1800(*ptr;)]TJ 0 -1.783 TD (signal\(SIGALRM, my_alarm\);)Tj 0 -1.189 TD (alarm\(1\);)Tj 0 -1.189 TD (for \( ; ; \) {)Tj 2.4 -1.189 Td (if \(\(ptr = getpwnam\("sar"\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("getpwnam error"\);)Tj -2.4 -1.189 Td (if \(strcmp\(ptr->pw_name, "sar"\) != 0\))Tj 2.4 -1.189 Td (printf\("return value corrupted!, pw_name = %s\\n",)Tj 4.8 -1.189 Td (ptr->pw_name\);)Tj -9.6 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3765.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 212.8865 360.4547 Tm (Figure 10.5)Tj /T1_1 1 Tf 5.695 0 Td [(Call a nonr)18(eentrant function fr)18(om a signal handler)]TJ 9.9988 0 0 9.9988 147.5825 338.8573 Tm [(When )-24(this )-24(pr)18(ogram )-24(was )-24(r)8(un, )-24(the )-24(r)18(esults )-24(wer)]TJ 0.2739 Tc 19.622 0 Td (er)Tj 0 Tc 1.148 0 Td [(andom. )-274(Usually)]TJ 0.2739 Tc 7.228 0 Td (,t)Tj 0 Tc 0.85 0 Td [(he )-24(pr)18(ogram )-24(would)]TJ -30.648 -1.2 Td [(be )-223(terminated )-223(by )-223(a)]TJ /TT0 1 Tf 9.405 0 Td (SIGSEGV)Tj /T1_1 1 Tf 4.673 0 Td [(signal )-223(when )-223(the )-223(signal )-223(handler )-223(r)18(eturned )-223(after )-223(several)]TJ -14.079 -1.2 Td [(iterations. )-341(An)-340(examination )-91(of )-91(the)]TJ /TT0 1 Tf 15.486 0 Td (core)Tj /T1_1 1 Tf 2.741 0 Td [(\336le )-91(showed )-91(that )-91(the)]TJ /TT0 1 Tf 9.335 0 Td (main)Tj /T1_1 1 Tf 2.741 0 Td [(function )-91(had )-91(called)]TJ /TT0 1 Tf -30.302 -1.2 Td (getpwnam)Tj /T1_1 1 Tf 0.2775 Tc (,b)Tj 0 Tc 5.881 0 Td [(ut )-27(that )-27(when)]TJ /TT0 1 Tf 5.972 0 Td (getpwnam)Tj /T1_1 1 Tf 5.077 0 Td (called)Tj /TT0 1 Tf 2.894 0 Td (free)Tj /T1_1 1 Tf 0.2775 Tc (,t)Tj 0 Tc 3.254 0 Td [(he )-27(signal )-27(handler )-27(interr)8(upted )-27(it )-27(and)]TJ -23.077 -1.2 Td (called)Tj /TT0 1 Tf 3.175 0 Td (getpwnam)Tj /T1_1 1 Tf 0.5589 Tc (,w)Tj 0 Tc 6.443 0 Td [(hich )-309(in )-309(turn )-309(called)]TJ /TT0 1 Tf 9.53 0 Td (free)Tj /T1_1 1 Tf 0.8089 Tc (.T)Tj 0 Tc 4.072 0 Td [(he )-309(data )-309(str)8(uctur)18(es )-309(maintained )-309(by)]TJ /TT0 1 Tf -23.219 -1.2 Td (malloc)Tj /T1_1 1 Tf 3.871 0 Td (and)Tj /TT0 1 Tf 1.964 0 Td (free)Tj /T1_1 1 Tf 2.671 0 Td [(had )-21(been )-21(corr)8(upted )-21(when )-21(the )-21(signal )-21(handler )-21(\(indir)18(ectly\) )-21(called)]TJ /TT0 1 Tf 28.094 0 Td (free)Tj /T1_1 1 Tf -36.6 -1.2 Td [(while )-96(the)]TJ /TT0 1 Tf 4.557 0 Td (main)Tj /T1_1 1 Tf 2.747 0 Td [(function )-97(was )-97(also )-97(calling)]TJ /TT0 1 Tf 11.567 0 Td (free)Tj /T1_1 1 Tf 0.5966 Tc (.O)Tj 0 Tc 4.033 0 Td (ccasionally)Tj 0.3466 Tc 4.758 0 Td (,t)Tj 0 Tc 0.923 0 Td [(he )-97(pr)18(ogram )-97(would )-97(r)9(un)]TJ -28.584 -1.2 Td [(for )-22(several )-22(seconds )-22(befor)]TJ 0.2724 Tc 11.022 0 Td (ec)Tj 0 Tc 1.195 0 Td [(rashing )-22(with )-22(a)]TJ /TT0 1 Tf 6.68 0 Td (SIGSEGV)Tj /T1_1 1 Tf 4.472 0 Td [(err)18(or)]TJ 0.5224 Tc 2.118 0 Td (.W)Tj 0 Tc 1.772 0 Td [(hen )-22(the)]TJ /TT0 1 Tf 3.575 0 Td (main)Tj /T1_1 1 Tf 2.672 0 Td [(function )-22(did)]TJ -0.008 Tc -33.508 -1.2 Td (ru)Tj 0.6149 Tc 0.99 0 Td (nc)Tj 0 Tc 1.641 0 Td [(orr)18(ectly )-365(after )-365(the )-365(signal )-365(had )-365(been )-365(caught, )-365(the )-365(r)19(eturn )-365(value )-365(was )-365(sometimes)]TJ -2.631 -1.2 Td [(corr)8(upted and sometimes \336ne.)]TJ 1.8 -1.2 Td [(As )-34(shown )-34(by )-34(this )-34(example, )-34(if )-34(we )-34(call )-34(a )-34(nonr)19(eentrant )-34(function )-34(fr)18(om )-34(a )-34(signal )-34(handler)75(,)]TJ -1.8 -1.2 Td [(the r)18(esults ar)]TJ 0.25 Tc 5.688 0 Td (eu)Tj 0 Tc 1.332 0 Td [(npr)18(edictable.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2069.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9978 0 0 11.9978 93.5832 175.6664 Tm (10.7)Tj /TT2 1 Tf 3 0 Td (SIGCLD)Tj /TT1 1 Tf 4.156 0 Td (Semantics)Tj /T1_1 1 Tf -0.09 Tc 9.9982 0 0 9.9982 129.5767 156.4698 Tm (Tw)Tj 0.3336 Tc 1.357 0 Td (os)Tj 0 Tc 1.304 0 Td [(ignals )-84(that )-84(continually )-84(generate )-84(confusion )-84(ar)20(e)]TJ /TT0 1 Tf 20.894 0 Td (SIGCLD)Tj /T1_1 1 Tf 3.934 0 Td (and)Tj /TT0 1 Tf 2.026 0 Td (SIGCHLD)Tj /T1_1 1 Tf 0.5835 Tc (.T)Tj 0 Tc 5.646 0 Td [(he )-83(name)]TJ /TT0 1 Tf -35.162 -1.2 Td (SIGCLD)Tj /T1_1 1 Tf 3.928 0 Td [(\(without )-78(the)]TJ /TT0 1 Tf 5.885 0 Td (H)Tj /T1_1 1 Tf [(\))-328(is)-328(f)]TJ -0.018 Tc 2.638 0 Td (ro)Tj 0.3284 Tc 0.923 0 Td (mS)Tj 0 Tc 1.736 0 Td [(ystem )-78(V)]TJ 0.3284 Tc 3.589 0 Td (,a)Tj 0 Tc 1.078 0 Td [(nd )-78(this )-78(signal )-78(has )-78(dif)16(fer)18(ent )-78(semantics )-78(fr)17(om)]TJ -19.778 -1.2 Td (the BSD signal, named)Tj /TT0 1 Tf 10.246 0 Td (SIGCHLD)Tj /T1_1 1 Tf 0.5 Tc (.T)Tj 0 Tc 5.563 0 Td (he POSIX.1 signal is also named)Tj /TT0 1 Tf 14.405 0 Td (SIGCHLD)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46804 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (330)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Be )-95(awar)]TJ 0.345 Tc 3.646 0 Td (et)Tj 0 Tc 1.15 0 Td [(hat )-95(UNIX )-95(systems )-95(fr)18(om )-95(other )-95(vendors )-95(can )-95(have )-95(values )-95(dif)18(fer)18(ent )-95(fr)18(om )-95(those)]TJ -4.796 -1.2 Td [(shown )-431(in )-431(this )-431(\336gur)17(e. )-681(For)-682(example,)]TJ /TT0 1 Tf 18.169 0 Td (sigaction)Tj /T1_1 1 Tf 6.081 0 Td [(under )-431(SunOS )-431(4.1.2 )-431(r)18(estarts )-431(an)]TJ -24.25 -1.2 Td [(interr)8(upted system call by default, unlike the platforms listed in Figur)]TJ 0.25 Tc 30.866 0 Td (e1)Tj 0 Tc 1.229 0 Td (0.3.)Tj -30.295 -1.2 Td [(In )-420(Figur)]TJ 0.67 Tc 3.972 0 Td (e1)Tj 0 Tc 1.649 0 Td [(0.18, )-420(we )-420(pr)18(ovide )-420(our )-420(own )-420(version )-420(of )-420(the)]TJ /TT0 1 Tf 21.198 0 Td (signal)Tj /T1_1 1 Tf 4.27 0 Td [(function )-420(that)]TJ -32.889 -1.2 Td [(automatically )-268(tries )-268(to )-268(r)19(estart )-268(interr)8(upted )-268(system )-268(calls )-268(\(other )-268(than )-268(for )-268(the)]TJ /TT0 1 Tf 34.8 0 Td (SIGALRM)Tj /T1_1 1 Tf -34.8 -1.2 Td [(signal\). )-268(In)-269(Figur)]TJ 0.2684 Tc 7.316 0 Td (e1)Tj 0 Tc 1.247 0 Td [(0.19, )-18(we )-18(pr)18(ovide )-18(another )-18(function,)]TJ /TT0 1 Tf 15.492 0 Td (signal_intr)Tj /T1_1 1 Tf 0.2684 Tc (,t)Tj 0 Tc 7.444 0 Td [(hat )-18(tries )-18(to )-18(never)]TJ -31.5 -1.2 Td [(do the r)18(estart.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-411(t)]TJ 0 Tc 2.19 0 Td [(alk )-227(mor)]TJ 0.4767 Tc 3.63 0 Td (ea)Tj 0 Tc 1.456 0 Td [(bout )-227(interr)8(upted )-227(system )-227(calls )-227(in )-227(Section )-227(14.4 )-227(with )-227(r)20(egar)]TJ 0.4767 Tc 26.102 0 Td (dt)Tj 0.4766 Tc 1.414 0 Td (ot)Tj 0 Tc 1.349 0 Td (he)Tj /TT0 1 Tf -37.939 -1.2 Td (select)Tj /T1_1 1 Tf 3.85 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (poll)Tj /T1_1 1 Tf 2.65 0 Td (functions.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5949 536.9678 Tm [(10.6 )-776(Reentrant)-556(Functions)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5927 512.9692 Tm [(When )-167(a )-167(signal )-167(that )-167(is )-167(being )-167(caught )-167(is )-167(handled )-167(by )-167(a )-167(pr)19(ocess, )-167(the )-167(normal )-167(sequence )-167(of)]TJ 0 -1.2 TD [(instr)8(uctions )-240(being )-240(executed )-240(by )-240(the )-240(pr)19(ocess )-240(is )-240(temporarily )-240(interr)8(upted )-240(by )-240(the )-240(signal)]TJ T* (handler)Tj 0.8312 Tc 3.366 0 Td (.T)Tj 0 Tc 1.694 0 Td [(he )-331(pr)18(ocess )-331(then )-331(continues )-331(executing, )-331(but )-331(the )-331(instr)8(uctions )-331(in )-331(the )-331(signal)]TJ -5.06 -1.2 Td [(handler )-193(ar)]TJ 0.4429 Tc 4.76 0 Td (en)Tj 0 Tc 1.504 0 Td [(ow )-193(executed.)-693(If )-193(the )-193(signal )-193(handler )-193(r)19(eturns )-193(\(instead )-193(of )-193(calling)]TJ /TT0 1 Tf 28.953 0 Td (exit)Tj /T1_1 1 Tf 2.843 0 Td (or)Tj /TT0 1 Tf -38.059 -1.2 Td (longjmp)Tj /T1_1 1 Tf 0.3385 Tc (,f)Tj 0 Tc 5.121 0 Td [(or )-88(example\), )-88(then )-88(the )-88(normal )-88(sequence )-88(of )-88(instr)8(uctions )-88(that )-88(the )-88(pr)18(ocess )-88(was)]TJ -5.121 -1.2 Td [(executing )-187(when )-187(the )-187(signal )-187(was )-187(caught )-187(continues )-187(executing.)-689(\(This )-187(is )-187(similar )-187(to )-187(what)]TJ T* [(happens )-167(when )-167(a )-167(har)17(dwar)]TJ 0.4173 Tc 11.779 0 Td (ei)Tj 0 Tc 1.187 0 Td [(nterr)8(upt )-167(occurs.\))-667(But )-167(in )-167(the )-167(signal )-167(handler)72(,)-417(we)-417(c)-1(an\325t )-167(tell)]TJ -12.966 -1.2 Td (wher)Tj 0.306 Tc 2.272 0 Td (et)Tj 0 Tc 1.111 0 Td [(he )-56(pr)18(ocess )-56(was )-56(executing )-56(when )-56(the )-56(signal )-56(was )-56(caught.)-556(What )-56(if )-56(the )-56(pr)18(ocess )-56(was)]TJ -3.383 -1.2 Td [(in )-101(the )-101(middle )-101(of )-101(allocating )-101(additional )-101(memory )-101(on )-101(its )-101(heap )-101(using)]TJ /TT0 1 Tf 29.567 0 Td (malloc)Tj /T1_1 1 Tf 0.3506 Tc (,a)Tj 0 Tc 4.701 0 Td [(nd )-101(we )-101(call)]TJ /TT0 1 Tf -34.267 -1.2 Td (malloc)Tj /T1_1 1 Tf 3.863 0 Td [(fr)18(om )-13(the )-13(signal )-13(handler?)-512(Or)]TJ 0.2628 Tc 12.462 0 Td (,w)Tj 0 Tc 1.347 0 Td [(hat )-13(if )-13(the )-13(pr)18(ocess )-13(was )-13(in )-13(the )-13(middle )-13(of )-13(a )-13(call )-13(to )-13(a)]TJ -17.672 -1.2 Td [(function, )-100(such )-100(as)]TJ /TT0 1 Tf 7.985 0 Td (getpwnam)Tj /T1_1 1 Tf 5.15 0 Td [(\(Section )-100(6.2\), )-100(that )-100(stor)18(es )-100(its )-100(r)18(esult )-100(in )-100(a )-100(static )-100(location, )-100(and)]TJ -13.135 -1.2 Td [(we )-65(call )-65(the )-65(same )-65(function )-65(fr)18(om )-65(the )-65(signal )-65(handler?)-565(In )-65(the)]TJ /TT0 1 Tf 26.293 0 Td (malloc)Tj /T1_1 1 Tf 3.915 0 Td [(example, )-65(havoc )-65(can)]TJ -0.018 Tc -30.208 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sult )-121(for )-121(the )-121(pr)18(ocess, )-121(since)]TJ /TT0 1 Tf 11.925 0 Td (malloc)Tj /T1_1 1 Tf 3.971 0 Td [(usually )-121(maintains )-121(a )-121(linked )-121(list )-121(of )-121(all )-121(its )-121(allocated)]TJ -16.752 -1.2 Td [(ar)18(eas, )-320(and )-320(it )-320(may )-320(have )-320(been )-320(in )-320(the )-320(middle )-320(of )-320(changing )-320(this )-320(list.)-820(In )-320(the )-320(case )-320(of)]TJ /TT0 1 Tf T* (getpwnam)Tj /T1_1 1 Tf 0.3379 Tc (,t)Tj 0 Tc 5.714 0 Td [(he )-88(information )-88(r)18(eturned )-88(to )-88(the )-88(normal )-88(caller )-88(can )-88(get )-88(overwritten )-88(with )-88(the)]TJ -5.714 -1.2 Td [(information r)18(eturned to the signal handler)74(.)]TJ 1.8 -1.2 Td [(The )-44(Single )-44(UNIX )-44(Speci\336cation )-44(speci\336es )-44(the )-44(functions )-44(that )-44(ar)]TJ 0.2941 Tc 26.874 0 Td (eg)Tj 0 Tc 1.329 0 Td [(uaranteed )-44(to )-44(be )-44(safe)]TJ -30.003 -1.2 Td [(to )-271(call )-271(fr)18(om )-271(within )-271(a )-271(signal )-271(handler)]TJ 0.7709 Tc 17.078 0 Td (.T)Tj 0 Tc 1.634 0 Td [(hese )-271(functions )-271(ar)]TJ 0.5209 Tc 8.014 0 Td (er)Tj 0 Tc 1.377 0 Td [(eentrant )-271(and )-271(ar)]TJ 0.521 Tc 7.281 0 Td (ec)Tj 0 Tc 1.444 0 Td (alled)Tj /T1_2 1 Tf -36.828 -1.2 Td [(async-signal )-118(safe)]TJ /T1_1 1 Tf 7.31 0 Td [(by )-118(the )-118(Single )-118(UNIX )-118(Speci\336cation.)-618(Besides )-118(being )-118(r)17(eentrant, )-118(they )-118(block)]TJ -7.31 -1.2 Td [(any )-362(signals )-362(during )-362(operation )-362(if )-362(delivery )-362(of )-362(a )-362(signal )-362(might )-362(cause )-362(inconsistencies.)]TJ T* (Figur)Tj 0.4084 Tc 2.383 0 Td (e1)Tj 0 Tc 1.387 0 Td [(0.4 )-158(lists )-158(these )-158(async-signal )-158(safe )-158(functions.)-658(Most )-158(of )-158(the )-158(functions )-158(that )-158(ar)]TJ 0.4083 Tc 32.888 0 Td (en)Tj 0 Tc 1.469 0 Td (ot)Tj -38.128 -1.2 Td [(included )-259(in )-259(Figur)]TJ 0.5088 Tc 8.185 0 Td (e1)Tj 0 Tc 1.488 0 Td [(0.4 )-259(ar)]TJ 0.5088 Tc 2.636 0 Td (em)Tj 0 Tc 1.871 0 Td [(issing )-259(because )-259(\(a\) )-259(they )-259(ar)]TJ 0.5088 Tc 12.071 0 Td (ek)Tj 0 Tc 1.544 0 Td [(nown )-259(to )-259(use )-259(static )-259(data)]TJ -27.795 -1.2 Td [(str)8(uctur)18(es, )-16(\(b\) )-16(they )-16(call)]TJ /TT0 1 Tf 10.396 0 Td (malloc)Tj /T1_1 1 Tf 3.866 0 Td (or)Tj /TT0 1 Tf 1.207 0 Td (free)Tj /T1_1 1 Tf [(,)-266(or)-266(\()-1(c\) )-16(they )-16(ar)]TJ 0.2662 Tc 8.586 0 Td (ep)Tj 0 Tc 1.346 0 Td [(art )-16(of )-16(the )-16(standar)]TJ 0.2662 Tc 7.606 0 Td (dI)Tj 0 Tc 1.214 0 Td [(/O )-16(library)111(.)]TJ -34.222 -1.2 Td [(Most )-285(implementations )-285(of )-285(the )-285(standar)]TJ 0.5351 Tc 17.452 0 Td (dI)Tj 0 Tc 1.483 0 Td [(/O )-285(library )-285(use )-285(global )-285(data )-285(str)8(uctur)18(es )-285(in )-285(a)]TJ -18.935 -1.2 Td [(nonr)18(eentrant )-16(way)]TJ 0.516 Tc 7.801 0 Td (.N)Tj 0 Tc 1.597 0 Td [(ote )-16(that )-16(even )-16(though )-16(we )-16(call)]TJ /TT0 1 Tf 12.82 0 Td (printf)Tj /T1_1 1 Tf 3.866 0 Td [(fr)18(om )-16(signal )-16(handlers )-16(in )-16(some)]TJ -26.084 -1.2 Td [(of )-111(our )-111(examples, )-111(it )-111(is )-111(not )-111(guaranteed )-111(to )-111(pr)18(oduce )-111(the )-111(expected )-111(r)16(esults, )-111(since )-111(the )-111(signal)]TJ T* [(handler can interr)8(upt a call to)]TJ /TT0 1 Tf 13.354 0 Td (printf)Tj /T1_1 1 Tf 3.85 0 Td [(fr)18(om our main pr)18(ogram.)]TJ -15.404 -1.2 Td [(Be )-69(awar)]TJ 0.3191 Tc 3.62 0 Td (et)Tj 0 Tc 1.124 0 Td [(hat )-69(even )-69(if )-69(we )-69(call )-69(a )-69(function )-69(listed )-69(in )-69(Figur)]TJ 0.319 Tc 19.733 0 Td (e1)Tj 0 Tc 1.298 0 Td [(0.4 )-69(fr)18(om )-69(a )-69(signal )-69(handler)74(,)]TJ -27.575 -1.2 Td [(ther)18(e)-280(is)-280(only )-30(one)]TJ /TT0 1 Tf 7.661 0 Td (errno)Tj /T1_1 1 Tf 3.28 0 Td [(variable )-30(per )-30(thr)18(ead )-30(\(r)18(ecall )-30(the )-30(discussion )-30(of)]TJ /TT0 1 Tf 19.506 0 Td (errno)Tj /T1_1 1 Tf 3.28 0 Td [(and )-30(thr)18(eads)]TJ -33.728 -1.2 Td [(in )-123(Section )-123(1.7\), )-123(and )-123(we )-123(might )-123(potentially )-123(modify )-123(its )-123(value.)-623(Consider )-123(a )-123(signal )-123(handler)]TJ T* [(that )-156(is )-156(invoked )-156(right )-156(after)]TJ /TT0 1 Tf 12.291 0 Td (main)Tj /T1_1 1 Tf 2.806 0 Td [(has )-156(set)]TJ /TT0 1 Tf 3.547 0 Td (errno)Tj /T1_1 1 Tf 0.6559 Tc (.I)Tj 0.4059 Tc 4.243 0 Td (ft)Tj 0 Tc 1.065 0 Td [(he )-156(signal )-156(handler )-156(calls)]TJ /TT0 1 Tf 10.719 0 Td (read)Tj /T1_1 1 Tf 0.4059 Tc (,f)Tj 0 Tc 3.389 0 Td (or)Tj -38.059 -1.2 Td [(example, )-130(this )-130(call )-130(can )-130(change )-130(the )-130(value )-130(of)]TJ /TT0 1 Tf 19.559 0 Td (errno)Tj /T1_1 1 Tf 0.3797 Tc (,w)Tj 0 Tc 4.464 0 Td [(iping )-130(out )-130(the )-130(value )-130(that )-130(was )-130(just)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46805 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.5)]TJ 32.299 0 Td [(Interr)8(upted )-250(System )-250(Calls)]TJ /T1_1 1 Tf 13.534 0 Td (327)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(action )-266(to )-266(occur)]TJ 0.5158 Tc 6.951 0 Td (,w)Tj 0 Tc 1.6 0 Td [(hich )-266(for )-266(this )-266(signal )-266(terminates )-266(the )-266(pr)19(ocess. )-516(This)-516(is )-266(one )-266(of )-266(those)]TJ -8.55 -1.2 Td [(conditions )-108(that )-108(works )-108(corr)18(ectly )-108(most )-108(of )-108(the )-108(time, )-108(causing )-108(us )-108(to )-108(think )-108(that )-108(it )-108(is )-108(corr)15(ect,)]TJ 0 -1.2 TD (when it isn\325t.)Tj 1.8 -1.2 Td [(Another )-11(pr)18(oblem )-11(with )-11(these )-11(earlier )-11(systems )-11(was )-11(that )-11(the )-11(pr)17(ocess )-11(was )-11(unable )-11(to )-11(turn)]TJ 0.2696 Tc -1.8 -1.2 Td (as)Tj 0 Tc 1.194 0 Td [(ignal )-20(of)]TJ 0.2696 Tc 3.351 0 Td (fw)Tj 0 Tc 1.437 0 Td [(hen )-20(it )-20(didn\325t )-20(want )-20(the )-20(signal )-20(to )-20(occur)]TJ 0.5196 Tc 16.349 0 Td (.A)Tj 0 Tc 1.548 0 Td [(ll )-20(the )-20(pr)18(ocess )-20(could )-20(do )-20(was )-20(ignor)20(e)]TJ -23.878 -1.2 Td [(the )-310(signal.)-809(Ther)]TJ 0.5596 Tc 7.701 0 Td (ea)Tj -0.018 Tc 1.539 0 Td [(re )-346(t)]TJ 0 Tc 1.742 0 Td [(imes )-310(when )-310(we )-310(would )-310(like )-310(to )-310(tell )-310(the )-310(system )-310(\324)40(\324pr)18(event )-310(the)]TJ -10.981 -1.2 Td [(following )-157(signals )-157(fr)17(om )-157(interr)8(upting )-157(me, )-157(but )-157(r)18(emember )-157(if )-157(they )-157(do )-157(occur)71(.\325)]TJ 0.6574 Tc 33.165 0 Td (\325T)Tj 0 Tc 1.548 0 Td [(he )-157(classic)]TJ -34.714 -1.2 Td [(example )-107(that )-107(demonstrates )-107(this )-107(\337aw )-107(is )-107(shown )-107(by )-107(a )-107(piece )-107(of )-107(code )-107(that )-107(catches )-107(a )-107(signal)]TJ T* [(and sets a \337ag for the pr)18(ocess that indicates that the signal occurr)18(ed:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5915 556.2666 Tm [(int )-1200(sig_int\(\);)]TJ 17.4 0 Td (/* my signal handling function */)Tj -17.4 -1.189 Td [(int )-1200(sig_int_flag;)]TJ 17.4 0 Td (/* set nonzero when signal occurs */)Tj -17.4 -1.902 Td (main\(\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (signal\(SIGINT, sig_int\); /* establish handler */)Tj 1.2 -1.189 Td (.)Tj 0 -0.476 TD (.)Tj 0 -0.476 TD (.)Tj -1.2 -1.189 Td (while \(sig_int_flag == 0\))Tj 2.4 -1.189 Td (pause\(\); )Tj 12.6 0 Td [(/*)-600(go to sleep, waiting for signal */)]TJ -13.8 -1.189 Td (.)Tj 0 -0.476 TD (.)Tj T* (.)Tj -3.6 -1.189 Td (})Tj 0 -1.902 TD (sig_int\(\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (signal\(SIGINT, sig_int\); /* reestablish handler for next time */)Tj T* [(sig_int_flag = 1;)-4800(/* set flag for main loop to examine */)]TJ -2.4 -1.189 Td (})Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5926 358.518 Tm [(Her)18(e, )-30(the )-30(pr)18(ocess )-30(is )-30(calling )-30(the)]TJ /TT0 1 Tf 13.836 0 Td (pause)Tj /T1_0 1 Tf 3.28 0 Td [(function )-30(to )-30(put )-30(it )-30(to )-30(sleep )-30(until )-30(a )-30(signal )-30(is )-30(caught.)]TJ -17.116 -1.2 Td [(When )-180(the )-180(signal )-180(is )-180(caught, )-180(the )-180(signal )-180(handler )-180(just )-180(sets )-180(the )-180(\337ag)]TJ /TT0 1 Tf 29.568 0 Td (sig_int_flag)Tj /T1_0 1 Tf 7.63 0 Td [(to )-180(a)]TJ -37.198 -1.2 Td (nonzer)Tj 0.4022 Tc 3.066 0 Td (ov)Tj 0 Tc 1.513 0 Td [(alue. )-402(The)-402(pr)18(ocess )-152(is )-152(automatically )-152(awakened )-152(by )-152(the )-152(kernel )-152(after )-152(the )-152(signal)]TJ -4.579 -1.2 Td [(handler )-50(r)18(eturns, )-50(notices )-50(that )-50(the )-50(\337ag )-50(is )-50(nonzer)20(o, )-50(and )-50(does )-50(whatever )-50(it )-50(needs )-50(to )-50(do.)-548(But)]TJ 0 -1.2 TD [(ther)18(e)-305(is)-305(a)-305(w)-1(indow )-55(of )-55(time )-55(when )-55(things )-55(can )-55(go )-55(wr)15(ong. )-305(If)-306(the )-55(signal )-55(occurs )-55(after )-55(the )-55(test)]TJ -0 -1.2 Td (of)Tj /TT0 1 Tf 1.239 0 Td (sig_int_flag)Tj /T1_0 1 Tf 7.56 0 Td [(but )-110(befor)]TJ 0.3598 Tc 4.13 0 Td (et)Tj 0 Tc 1.165 0 Td [(he )-110(call )-110(to)]TJ /TT0 1 Tf 4.539 0 Td (pause)Tj /T1_0 1 Tf 0.3599 Tc (,t)Tj 0 Tc 3.936 0 Td [(he )-110(pr)18(ocess )-110(could )-110(go )-110(to )-110(sleep )-110(for)19(ever)]TJ -22.568 -1.2 Td [(\(assuming )-6(that )-6(the )-6(signal )-6(is )-6(never )-6(generated )-6(again\).)-510(This )-6(occurr)18(ence )-6(of )-6(the )-6(signal )-6(is )-6(lost.)]TJ T* [(This )-155(is )-155(another )-155(example )-155(of )-155(some )-155(code )-155(that )-155(isn\325t )-155(right, )-155(yet )-155(it )-155(works )-155(most )-155(of )-155(the )-155(time.)]TJ T* [(Debugging this type of pr)18(oblem can be dif)18(\336cult.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.595 230.1261 Tm [(10.5 )-776(Interrupted)-556(System )-278(Calls)]TJ /T1_0 1 Tf 0.3076 Tc 9.9994 0 0 9.9994 129.593 209.7269 Tm (Ac)Tj 0 Tc 1.53 0 Td [(haracteristic )-57(of )-57(earlier )-57(UNIX )-57(systems )-57(was )-57(that )-57(if )-57(a )-57(pr)18(ocess )-57(caught )-57(a )-57(signal )-57(while )-57(the)]TJ -1.53 -1.2 Td [(pr)18(ocess )-217(was )-217(blocked )-217(in )-217(a )-217(\324)35(\324slow\325)]TJ 0.4674 Tc 15.098 0 Td (\325s)Tj 0 Tc 1.169 0 Td [(ystem )-217(call, )-217(the )-217(system )-217(call )-217(was )-217(interr)6(upted. )-467(The)]TJ -16.267 -1.2 Td [(system )-101(call )-101(r)18(eturned )-101(an )-101(err)18(or )-101(and)]TJ /TT0 1 Tf 15.542 0 Td (errno)Tj /T1_0 1 Tf 3.351 0 Td [(was )-101(set )-101(to)]TJ /TT0 1 Tf 4.911 0 Td (EINTR)Tj /T1_0 1 Tf 0.6007 Tc (.T)Tj 0 Tc 4.464 0 Td [(his )-101(was )-101(done )-101(under )-101(the)]TJ -28.267 -1.2 Td [(assumption )-5(that )-5(since )-5(a )-5(signal )-5(occurr)18(ed )-5(and )-5(the )-5(pr)18(ocess )-5(caught )-5(it, )-5(ther)20(e)-255(is)-255(a)-255(g)1(ood )-5(chance)]TJ 0 -1.2 Td (that something has happened that should wake up the blocked system call.\ )Tj 7.9995 0 0 7.9995 183.5899 144.1313 Tm [(Her)18(e, )-58(we )-58(have )-58(to )-58(dif)19(fer)18(entiate )-58(between )-58(a )-58(system )-58(call )-58(and )-58(a )-58(function.)-556(It )-58(is )-58(a )-58(system )-58(call )-58(within)]TJ -0 -1.25 Td [(the kernel that is interr)8(upted when a signal is caught.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46806 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (326)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(These )-109(two )-109(calls )-109(to)]TJ /TT0 1 Tf 8.542 0 Td (signal)Tj /T1_1 1 Tf 3.959 0 Td [(also )-109(show )-109(a )-109(limitation )-109(of )-109(the)]TJ /TT0 1 Tf 13.395 0 Td (signal)Tj /T1_1 1 Tf 3.959 0 Td [(function: )-109(we )-109(ar)17(e)]TJ -31.655 -1.2 Td [(not )-399(able )-399(to )-399(determine )-399(the )-399(curr)18(ent )-399(disposition )-399(of )-399(a )-399(signal )-399(without )-399(changing )-399(the)]TJ 0 -1.2 TD [(disposition. )-376(W)92(e\325ll )-126(see )-126(later )-126(in )-126(this )-126(chapter )-126(how )-126(the)]TJ /TT0 1 Tf 23.605 0 Td (sigaction)Tj /T1_1 1 Tf 5.776 0 Td [(function )-126(allows )-126(us )-126(to)]TJ -29.381 -1.2 Td (determine a signal\325s disposition without changing it.)Tj /TT1 1 Tf -3.6 -2.4 Td [(Pr)20(ocess Creation)]TJ /T1_1 1 Tf 3.6 -2.4 Td [(When )-176(a )-176(pr)18(ocess )-176(calls)]TJ /TT0 1 Tf 10.093 0 Td (fork)Tj /T1_1 1 Tf 0.4262 Tc (,t)Tj 0 Tc 3.402 0 Td [(he )-176(child )-176(inherits )-176(the )-176(par)17(ent\325s )-176(signal )-176(dispositions.)-676(Her)18(e,)]TJ -13.495 -1.2 Td [(since )-136(the )-136(child )-136(starts )-136(of)]TJ 0.3862 Tc 10.626 0 Td (fw)Tj 0 Tc 1.553 0 Td [(ith )-136(a )-136(copy )-136(of )-136(the )-136(par)18(ent\325s )-136(memory )-136(image, )-136(the )-136(addr)18(ess )-136(of )-136(a)]TJ -12.18 -1.2 Td (signal-catching function has meaning in the child.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5945 524.9685 Tm [(10.4 )-776(Unreliab)10(le )-278(Signals)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5923 500.9699 Tm [(In )-64(earlier )-64(versions )-64(of )-64(the )-64(UNIX )-64(System )-64(\(such )-64(as )-64(V)111(ersion )-64(7\), )-64(signals )-64(wer)]TJ 0.3144 Tc 31.779 0 Td (eu)Tj 0 Tc 1.396 0 Td [(nr)18(eliable. )-314(By)]TJ -33.175 -1.2 Td [(this )-136(we )-136(mean )-136(that )-136(signals )-136(could )-136(get )-136(lost: )-136(a )-136(signal )-136(could )-136(occur )-136(and )-136(the )-136(pr)18(ocess )-136(would)]TJ T* [(never )-135(know )-135(about )-135(it.)-635(Also, )-135(a )-135(pr)18(ocess )-135(had )-135(little )-135(contr)18(ol )-135(over )-135(a )-135(signal: )-135(a )-135(pr)18(ocess )-135(could)]TJ T* [(catch )-168(the )-168(signal )-168(or )-168(ignor)]TJ 0.4183 Tc 11.293 0 Td (ei)Tj 0 Tc 1.188 0 Td [(t. )-418(Sometimes,)-419(we )-168(would )-168(like )-168(to )-168(tell )-168(the )-168(kernel )-168(to )-168(block )-168(a)]TJ -12.482 -1.2 Td (signal: don\325t ignor)Tj 0.25 Tc 8.089 0 Td (ei)Tj 0 Tc 1.02 0 Td [(t, just r)18(emember if it occurs, and tell us later when we\325r)]TJ 0.25 Tc 24.331 0 Td (er)Tj 0 Tc 1.106 0 Td [(eady)111(.)]TJ 7.9995 0 0 7.9995 183.5887 432.974 Tm [(Changes )-75(wer)]TJ 0.325 Tc 5.847 0 Td (em)Tj 0 Tc 1.687 0 Td [(ade )-75(with )-75(4.2BSD )-75(to )-75(pr)18(ovide )-75(what )-75(ar)]TJ 0.3249 Tc 16.194 0 Td (ec)Tj 0 Tc 1.248 0 Td (alled)Tj /T1_2 1 Tf -0.018 Tc 2.497 0 Td (re)Tj 0 Tc 0.76 0 Td [(liable )-75(signals)]TJ /T1_1 1 Tf 0.5749 Tc (.A)Tj 0 Tc 7.217 0 Td [(dif)18(fer)18(ent )-75(set )-75(of)]TJ -35.449 -1.25 Td [(changes )-2(was )-2(then )-2(made )-2(in )-2(SVR3 )-2(to )-2(pr)15(ovide )-2(r)18(eliable )-2(signals )-2(under )-2(System )-2(V)]TJ 0.5025 Tc 33.211 0 Td (.P)Tj 0 Tc 1.356 0 Td [(OSIX.1 )-2(chose )-2(the)]TJ -34.568 -1.25 Td [(BSD model to standar)18(dize.)]TJ 9.9994 0 0 9.9994 147.5908 392.9764 Tm [(One )-61(pr)18(oblem )-61(with )-61(these )-61(early )-61(versions )-61(was )-61(that )-61(the )-61(action )-61(for )-61(a )-61(signal )-61(was )-61(r)11(eset )-61(to)]TJ -1.8 -1.2 Td [(its )-123(default )-123(each )-123(time )-123(the )-123(signal )-123(occurr)17(ed. )-373(\(In)-373(the )-123(pr)18(evious )-123(example, )-123(when )-123(we )-123(ran )-123(the)]TJ T* [(pr)18(ogram )-61(in )-61(Figur)]TJ 0.311 Tc 7.736 0 Td (e1)Tj 0 Tc 1.29 0 Td [(0.2, )-61(we )-61(avoided )-61(this )-61(detail )-61(by )-61(catching )-61(each )-61(signal )-61(only )-61(once.\))-561(The)]TJ -9.026 -1.2 Td [(classic )-45(example )-45(fr)18(om )-45(pr)18(ogramming )-45(books )-45(that )-45(described )-45(these )-45(earlier )-45(systems )-45(concerns)]TJ T* [(how to handle the interr)8(upt signal.)-500(The code that was described usually looked like)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 169.1897 328.2803 Tm [(int )-1800(sig_int\(\);)-4800(/* my signal handling function */)]TJ 1.2 -1.189 Td (.)Tj 0 -0.476 TD (.)Tj 0 -0.476 TD (.)Tj -1.2 -1.189 Td (signal\(SIGINT, sig_int\); /* establish handler */)Tj 1.2 -1.189 Td (.)Tj 0 -0.476 TD (.)Tj 0 -0.476 TD (.)Tj -3.6 -2.021 Td (sig_int\(\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (signal\(SIGINT, sig_int\); /* reestablish handler for next time */)Tj 1.2 -1.189 Td (.)Tj 13.2 Tc 0 -0.476 TD (./)Tj 0.6 Tc 14.4 0 Td (*p)Tj 0 Tc 1.8 0 Td (rocess the signal ... */)Tj -16.2 -0.476 Td (.)Tj -3.6 -1.189 Td (})Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5921 191.5186 Tm [(\(The )-167(r)18(eason )-167(the )-167(signal )-167(handler )-167(is )-167(declar)18(ed )-167(as )-167(r)18(eturning )-167(an )-167(integer )-167(is )-167(that )-167(these )-167(early)]TJ 0 -1.2 TD (systems didn\325t support the ISO C)Tj /TT0 1 Tf 14.955 0 Td (void)Tj /T1_1 1 Tf 2.65 0 Td (data type.\))Tj -15.805 -1.2 Td [(The )-104(pr)18(oblem )-104(with )-104(this )-104(code )-104(fragment )-104(is )-104(that )-104(ther)]TJ 0.354 Tc 22.239 0 Td [(ei)354(sa )604(w)]TJ 0 Tc 3.59 0 Td [(indow )-104(of )-104(time)]TJ 0.0833 Tc 6.514 0 Td (\321a)Tj 0 Tc 1.583 0 Td [(fter )-104(the)]TJ -35.726 -1.2 Td [(signal )-188(has )-188(occurr)18(ed, )-188(but )-188(befor)]TJ 0.4379 Tc 13.821 0 Td (et)Tj 0 Tc 1.243 0 Td [(he )-188(call )-188(to)]TJ /TT0 1 Tf 4.773 0 Td (signal)Tj /T1_1 1 Tf 4.038 0 Td [(in )-188(the )-188(signal )-188(handler)]TJ 0.0833 Tc 9.741 0 Td (\321w)Tj 0 Tc 1.917 0 Td [(hen )-188(the)]TJ -35.532 -1.2 Td [(interr)8(upt )-87(signal )-87(could )-87(occur )-87(another )-87(time.)-587(This )-87(second )-87(signal )-87(would )-87(cause )-87(the )-87(default)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46807 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.3)]TJ /TT0 1 Tf 35.803 0 Td (signal)Tj /T1_0 1 Tf 4.1 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (323)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT1 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm (10.3)Tj /TT2 1 Tf 3 0 Td (signal)Tj /TT1 1 Tf 4.156 0 Td (Function)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 642.5614 Tm [(The )-9(simplest )-9(interface )-9(to )-9(the )-9(signal )-9(featur)18(es )-9(of )-9(the )-9(UNIX )-9(System )-9(is )-9(the)]TJ /TT0 1 Tf 31.184 0 Td (signal)Tj /T1_0 1 Tf 3.859 0 Td (function.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.591 625.8624 Tm (#include )Tj 0 -1.783 TD (void \(*signal\(int)Tj /T1_2 1 Tf 10.8 0 Td (signo)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 3.967 0 Td (oid \(*)Tj /T1_2 1 Tf (func)Tj /TT0 1 Tf (\)\(int\)\)\)\(int\);)Tj /T1_0 1 Tf -10.477 -1.783 Td [(Returns: pr)18(evious disposition of signal \(see following\) if OK,)]TJ /TT0 1 Tf 27.023 0 Td (SIG_ERR)Tj /T1_0 1 Tf 4.45 0 Td [(on err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5893.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 183.578 572.5313 Tm (The)Tj /TT0 1 Tf 2.014 0 Td (signal)Tj /T1_0 1 Tf 3.94 0 Td [(function )-90(is )-90(de\336ned )-90(by )-90(ISO )-90(C, )-90(which )-90(doesn\325t )-90(involve )-90(multiple )-90(pr)22(ocesses, )-89(pr)18(ocess)]TJ -5.953 -1.25 Td [(gr)18(oups, )-99(terminal )-99(I/O, )-99(and )-99(the )-99(like.)-598(Ther)18(efor)18(e, )-99(its )-99(de\336nition )-99(of )-99(signals )-99(is )-99(vague )-99(enough )-99(to )-99(be)]TJ -0 -1.25 Td (almost useless for UNIX systems.)Tj 0 -1.875 Td [(Implementations )-78(derived )-78(fr)18(om )-78(UNIX )-78(System )-78(V )-78(support )-78(the)]TJ /TT0 1 Tf 27.137 0 Td (signal)Tj /T1_0 1 Tf 3.928 0 Td [(function, )-78(but )-78(it )-78(pr)17(ovides)]TJ -31.065 -1.25 Td [(the )-100(old )-100(unr)18(eliable-signal )-100(semantics.)-601(\(W)]TJ 0.3504 Tc 17.754 0 Td (ed)Tj 0 Tc 1.44 0 Td [(escribe )-100(these )-100(older )-100(semantics )-100(in )-100(Section )-100(10.4.\))-603(The)]TJ /TT0 1 Tf -19.194 -1.25 Td (signal)Tj /T1_0 1 Tf 4.125 0 Td [(function )-274(pr)18(ovides )-274(backwar)]TJ 0.5245 Tc 12.414 0 Td (dc)Tj 0 Tc 1.579 0 Td [(ompatibility )-274(for )-274(applications )-274(that )-274(r)16(equir)]TJ 0.5245 Tc 18.645 0 Td (et)Tj 0 Tc 1.329 0 Td [(he )-274(older)]TJ -38.093 -1.25 Td [(semantics. )-250(New)-250(applications should not use these unr)18(eliable signals.)]TJ 0 -1.875 TD [(4.4BSD )-251(also )-251(pr)18(ovides )-251(the)]TJ /TT0 1 Tf 12.206 0 Td (signal)Tj /T1_0 1 Tf 4.101 0 Td [(function, )-251(but )-251(it )-251(is )-251(de\336ned )-251(in )-251(terms )-251(of )-251(the)]TJ /TT0 1 Tf 20.293 0 Td (sigaction)Tj /T1_0 1 Tf -36.6 -1.25 Td [(function )-137(\(which )-137(we )-137(describe )-137(in )-137(Section )-137(10.14\), )-137(so )-137(using )-137(it )-137(under )-137(4.4BSD )-137(pr)20(ovides )-137(the )-137(newer)]TJ -0.018 Tc 0 -1.25 TD (re)Tj 0 Tc 0.856 0 Td [(liable-signal )-56(semantics.)-556(Most )-56(curr)18(ent )-56(systems )-56(follow )-56(this )-56(strategy)]TJ 0.3061 Tc 29.257 0 Td (,b)Tj 0 Tc 1.109 0 Td [(ut )-56(Solaris )-56(10 )-56(follows )-56(the)]TJ -31.222 -1.25 Td (System V semantics for the)Tj /TT0 1 Tf 12.179 0 Td (signal)Tj /T1_0 1 Tf 3.85 0 Td (function.)Tj -16.029 -1.875 Td [(Because )-14(the )-14(semantics )-14(of)]TJ /TT0 1 Tf 11.217 0 Td (signal)Tj /T1_0 1 Tf 3.865 0 Td [(dif)18(fer )-14(among )-14(implementations, )-14(we )-14(must )-14(use )-14(the)]TJ /TT0 1 Tf 21.518 0 Td (sigaction)Tj /T1_0 1 Tf -36.6 -1.25 Td [(function )-401(instead.)]TJ -0.092 Tc 8.723 0 Td [(We )-585(p)]TJ -0.018 Tc 2.639 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vide )-401(an )-401(implementation )-401(of)]TJ /TT0 1 Tf 13.573 0 Td (signal)Tj /T1_0 1 Tf 4.251 0 Td [(that )-401(uses)]TJ /TT0 1 Tf 4.967 0 Td (sigaction)Tj /T1_0 1 Tf 6.051 0 Td (in)Tj -41.127 -1.25 Td [(Section )-49(10.14.)-549(All )-49(the )-49(examples )-49(in )-49(this )-49(text )-49(use )-49(the)]TJ /TT0 1 Tf 22.887 0 Td (signal)Tj /T1_0 1 Tf 3.899 0 Td [(function )-49(fr)18(om )-49(Figur)]TJ 0.2988 Tc 8.827 0 Td (e1)Tj 0 Tc 1.278 0 Td [(0.18 )-49(to )-49(give)]TJ -36.89 -1.25 Td [(us consistent semantics r)18(egar)18(dless of which particular platform we use.)]TJ 9.9988 0 0 9.9988 147.5816 398.5522 Tm (The)Tj /T1_2 1 Tf 2.059 0 Td (signo)Tj /T1_0 1 Tf 2.551 0 Td [(ar)18(gument )-134(is )-134(just )-134(the )-134(name )-134(of )-134(the )-134(signal )-134(fr)14(om )-135(Figur)]TJ 0.3846 Tc 23.332 0 Td (e1)Tj 0 Tc 1.364 0 Td [(0.1. )-385(The)-384(value )-135(of)]TJ /T1_2 1 Tf -31.105 -1.2 Td (func)Tj /T1_0 1 Tf 2.245 0 Td [(is )-198(\(a\) )-198(the )-198(constant)]TJ /TT0 1 Tf 8.792 0 Td (SIG_IGN)Tj /T1_0 1 Tf 0.4484 Tc (,\()Tj 0 Tc 5.231 0 Td [(b\) )-198(the )-198(constant)]TJ /TT0 1 Tf 7.348 0 Td (SIG_DFL)Tj /T1_0 1 Tf [(,)-448(or)-448(\()-1(c\) )-198(the )-198(addr)18(ess )-198(of )-198(a)]TJ -23.617 -1.2 Td [(function )-48(to )-48(be )-48(called )-48(when )-48(the )-48(signal )-48(occurs.)-548(If )-48(we )-48(specify)]TJ /TT0 1 Tf 26.484 0 Td (SIG_IGN)Tj /T1_0 1 Tf [(,)-298(we)-298(a)]TJ -0.018 Tc 6.86 0 Td [(re )-84(t)]TJ 0 Tc 1.48 0 Td [(elling )-48(the)]TJ -34.825 -1.2 Td [(system )-4(to )-4(ignor)]TJ 0.2541 Tc 6.824 0 Td (et)Tj 0 Tc 1.059 0 Td [(he )-4(signal.)-504(\(Remember )-4(that )-4(we )-4(cannot )-4(ignor)]TJ 0.2541 Tc 19.261 0 Td (et)Tj 0 Tc 1.059 0 Td [(he )-4(two )-4(signals)]TJ /TT0 1 Tf 6.597 0 Td (SIGKILL)Tj /T1_0 1 Tf -34.8 -1.2 Td (and)Tj /TT0 1 Tf 2.062 0 Td (SIGSTOP)Tj /T1_0 1 Tf [(.\) )-369(When)-370(we )-119(specify)]TJ /TT0 1 Tf 13.595 0 Td (SIG_DFL)Tj /T1_0 1 Tf [(,)-369(we)-369(a)]TJ -0.018 Tc 7.002 0 Td [(re )-155(s)]TJ 0 Tc 1.649 0 Td [(etting )-119(the )-119(action )-119(associated )-119(with)]TJ -24.308 -1.2 Td [(the )-16(signal )-16(to )-16(its )-16(default )-16(value )-16(\(see )-16(the )-16(\336nal )-16(column )-16(in )-16(Figur)]TJ 0.266 Tc 26.137 0 Td (e1)Tj 0 Tc 1.245 0 Td [(0.1\). )-266(When)-266(we )-16(specify )-16(the)]TJ -27.382 -1.2 Td [(addr)18(ess )-91(of )-91(a )-91(function )-91(to )-91(be )-91(called )-91(when )-91(the )-91(signal )-91(occurs, )-91(we )-91(ar)]TJ 0.3415 Tc 28.934 0 Td (ea)Tj 0 Tc 1.321 0 Td [(rranging )-91(to )-91(\324)36(\324catch\325)37(\325)]TJ -30.254 -1.2 Td (the signal.)Tj -0.092 Tc 5.031 0 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td (all the function either the)Tj /T1_2 1 Tf 11.365 0 Td (signal handler)Tj /T1_0 1 Tf 6.001 0 Td (or the)Tj /T1_2 1 Tf 2.828 0 Td (signal-catching function)Tj /T1_0 1 Tf (.)Tj -25.506 -1.2 Td [(The )-350(pr)18(ototype )-350(for )-350(the)]TJ /TT0 1 Tf 11.092 0 Td (signal)Tj /T1_0 1 Tf 4.2 0 Td [(function )-350(states )-350(that )-350(the )-350(function )-350(r)20(equir)18(es )-350(two)]TJ -17.092 -1.2 Td [(ar)18(guments )-9(and )-9(r)18(eturns )-9(a )-9(pointer )-9(to )-9(a )-9(function )-9(that )-9(r)18(eturns )-9(nothing )-9(\()]TJ /TT0 1 Tf (void)Tj /T1_0 1 Tf [(\). )-259(The)]TJ /TT0 1 Tf 35.4 0 Td (signal)Tj /T1_0 1 Tf -35.4 -1.2 Td [(function\325s )-155(\336rst )-155(ar)19(gument,)]TJ /T1_2 1 Tf 11.929 0 Td (signo)Tj /T1_0 1 Tf [(,)-405(is)-405(an)-405(i)1(nteger)]TJ 0.6546 Tc 8.462 0 Td (.T)Tj 0 Tc 1.518 0 Td [(he )-155(second )-155(ar)19(gument )-154(is )-154(a )-154(pointer )-154(to )-154(a)]TJ -21.908 -1.2 Td [(function )-54(that )-54(takes )-54(a )-54(single )-54(integer )-54(ar)18(gument )-54(and )-54(r)18(eturns )-54(nothing.)-553(The )-54(function )-54(whose)]TJ 0 -1.2 TD [(addr)18(ess )-126(is )-126(r)18(eturned )-126(as )-126(the )-126(value )-126(of)]TJ /TT0 1 Tf 16.251 0 Td (signal)Tj /T1_0 1 Tf 3.976 0 Td [(takes )-126(a )-126(single )-126(integer )-126(ar)18(gument )-126(\(the )-126(\336nal)]TJ /TT0 1 Tf -20.226 -1.2 Td (\(int\))Tj /T1_0 1 Tf [(\). )-273(In)-273(plain )-23(English, )-23(this )-23(declaration )-23(says )-23(that )-23(the )-23(signal )-23(handler )-23(is )-23(passed )-23(a )-23(single)]TJ T* [(integer )-310(ar)18(gument )-310(\(the )-310(signal )-310(number\) )-310(and )-310(that )-310(it )-310(r)20(eturns )-310(nothing.)-810(When )-310(we )-310(call)]TJ /TT0 1 Tf T* (signal)Tj /T1_0 1 Tf 3.856 0 Td [(to )-6(establish )-6(the )-6(signal )-6(handler)]TJ 0.2558 Tc 13.162 0 Td (,t)Tj 0 Tc 0.832 0 Td [(he )-6(second )-6(ar)18(gument )-6(is )-6(a )-6(pointer )-6(to )-6(the )-6(function.)]TJ -17.85 -1.2 Td [(The r)18(eturn value fr)18(om)]TJ /TT0 1 Tf 10.013 0 Td (signal)Tj /T1_0 1 Tf 3.85 0 Td [(is the pointer to the pr)18(evious signal handler)74(.)]TJ 7.999 0 0 7.999 183.5764 188.9773 Tm [(Many )-77(systems )-77(call )-77(the )-77(signal )-77(handler )-77(with )-77(additional, )-77(implementation-dependent )-77(ar)14(guments.)]TJ -0.092 Tc 0 -1.25 TD [(We )-184(d)]TJ 0 Tc 2.248 0 Td (iscuss this further in Section 10.14.)Tj 9.9988 0 0 9.9988 147.5807 162.9804 Tm [(The )-97(perplexing)]TJ /TT0 1 Tf 7.16 0 Td (signal)Tj /T1_0 1 Tf 3.948 0 Td [(function )-97(pr)18(ototype )-98(shown )-98(at )-98(the )-98(beginning )-98(of )-98(this )-98(section)]TJ -12.908 -1.2 Td [(can be made much simpler thr)18(ough the use of the following)]TJ /TT0 1 Tf 26.658 0 Td (typedef)Tj /T1_0 1 Tf 4.45 0.04 Td ([)Tj 0.333 -0.04 Td (Plauger 1992)Tj 5.678 0.04 Td (])Tj 0.333 -0.04 Td (:)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.581 134.2839 Tm (typedef void Sigfunc\(int\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46808 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (10)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm (Signals)Tj /TT0 1 Tf 12 0 0 12 93.6 444 Tm [(10.1 )-776(Intr)20(oduction)]TJ /T1_2 1 Tf 10 0 0 10 129.6 421.2 Tm [(Signals )-17(ar)]TJ 0.2671 Tc 4.313 0 Td (es)Tj 0 Tc 1.17 0 Td (oftwar)Tj 0.2672 Tc 2.916 0 Td (ei)Tj 0 Tc 1.037 0 Td [(nterr)8(upts. )-267(Most)-267(nontrivial )-17(application )-17(pr)18(ograms )-17(need )-17(to )-17(deal )-17(with)]TJ -9.436 -1.2 Td [(signals. )-333(Signals)-334(pr)18(ovide )-83(a )-83(way )-83(of )-83(handling )-83(asynchr)18(onous )-83(events)]TJ 0.0833 Tc 29.242 0 Td (\321f)Tj 0 Tc 1.416 0 Td [(or )-83(example, )-83(a )-83(user)]TJ -30.659 -1.2 Td [(at )-216(a )-216(terminal )-216(typing )-216(the )-216(interr)8(upt )-216(key )-216(to )-216(stop )-216(a )-216(pr)18(ogram )-216(or )-216(the )-216(next )-216(pr)17(ogram )-216(in )-216(a)]TJ 0 -1.2 TD [(pipeline terminating pr)18(ematur)18(ely)111(.)]TJ 1.8 -1.2 Td [(Signals )-135(have )-135(been )-135(pr)18(ovided )-135(since )-135(the )-135(early )-135(versions )-135(of )-135(the )-135(UNIX )-135(System, )-135(but )-135(the)]TJ -1.8 -1.2 Td [(signal )-94(model )-94(pr)18(ovided )-94(with )-94(systems )-94(such )-94(as )-94(V)110(ersion )-94(7 )-94(was )-94(not )-94(r)17(eliable. )-344(Signals)-344(could)]TJ 0 -1.2 Td [(get )-140(lost, )-140(and )-140(it )-140(was )-140(dif)18(\336cult )-140(for )-140(a )-140(pr)18(ocess )-140(to )-140(turn )-140(of)]TJ 0.3902 Tc 23.752 0 Td (fs)Tj 0 Tc 1.147 0 Td [(elected )-140(signals )-140(when )-140(executing)]TJ -24.899 -1.2 Td [(critical )-209(r)18(egions )-209(of )-209(code.)-709(Both )-209(4.3BSD )-209(and )-209(SVR3 )-209(made )-209(changes )-209(to )-209(the )-209(signal )-209(model,)]TJ T* [(adding )-141(what )-141(ar)]TJ 0.3914 Tc 7.053 0 Td (ec)Tj 0 Tc 1.314 0 Td (alled)Tj /T1_3 1 Tf -0.018 Tc 2.563 0 Td (re)Tj 0 Tc 0.76 0 Td [(liable )-141(signals)]TJ /T1_2 1 Tf 0.6414 Tc (.B)Tj 0 Tc 6.858 0 Td [(ut )-141(the )-141(changes )-141(made )-141(by )-141(Berkeley )-141(and )-141(A)71(T&T)]TJ -18.548 -1.2 Td (wer)Tj 0.321 Tc 1.69 0 Td (ei)Tj 0 Tc 1.091 0 Td [(ncompatible. )-321(Fortunately)]TJ 0.321 Tc 11.366 0 Td (,P)Tj 0 Tc 1.175 0 Td [(OSIX.1 )-71(standar)18(dized )-71(the )-71(r)18(eliable-signal )-71(r)18(outines, )-71(and)]TJ -15.322 -1.2 Td [(that is what we describe her)18(e.)]TJ 1.8 -1.2 Td [(In )-40(this )-40(chapter)74(,)-290(we)-290(start )-40(with )-40(an )-40(overview )-40(of )-40(signals )-40(and )-40(a )-40(description )-40(of )-40(what )-40(each)]TJ -1.8 -1.2 Td [(signal )-4(is )-4(normally )-4(used )-4(for)]TJ 0.5044 Tc 11.738 0 Td (.T)Tj 0 Tc 1.367 0 Td [(hen )-4(we )-4(look )-4(at )-4(the )-4(pr)18(oblems )-4(with )-4(earlier )-4(implementations.)]TJ -13.105 -1.2 Td [(It )-5(is )-5(often )-5(important )-5(to )-5(understand )-5(what )-5(is )-5(wr)18(ong )-5(with )-5(an )-5(implementation )-5(befor)]TJ 0.255 Tc 35.455 0 Td (es)Tj 0 Tc 1.158 0 Td (eeing)Tj -36.613 -1.2 Td [(how )-238(to )-238(do )-238(things )-238(corr)18(ectly)]TJ 0.7379 Tc 12.451 0 Td (.T)Tj 0 Tc 1.601 0 Td [(his )-238(chapter )-238(contains )-238(numer)18(ous )-238(examples )-238(that )-238(ar)]TJ 0.488 Tc 22.527 0 Td (en)Tj 0 Tc 1.549 0 Td (ot)Tj -38.128 -1.2 Td [(entir)18(ely corr)18(ect and a discussion of the defects.)]TJ /TT0 1 Tf 12 0 0 12 93.5998 206.4 Tm [(10.2 )-776(Signal)-556(Concepts)]TJ /T1_2 1 Tf 10 0 0 10 129.5998 183.6 Tm [(First, every signal has a name.)-500(These names all begin with the thr)18(ee characters)]TJ /TT1 1 Tf 34.953 0 Td (SIG)Tj /T1_2 1 Tf 0.5002 Tc (.F)Tj 0 Tc 3.106 0 Td (or)Tj -38.059 -1.2 Td (example,)Tj /TT1 1 Tf 4.304 0 Td (SIGABRT)Tj /T1_2 1 Tf 4.505 0 Td [(is )-55(the )-55(abort )-55(signal )-55(that )-55(is )-55(generated )-55(when )-55(a )-55(pr)18(ocess )-55(calls )-55(the)]TJ /TT1 1 Tf 27.191 0 Td (abort)Tj /T1_2 1 Tf -36 -1.2 Td (function.)Tj /TT1 1 Tf 4.668 0 Td (SIGALRM)Tj /T1_2 1 Tf 4.661 0 Td [(is )-211(the )-211(alarm )-211(signal )-211(that )-211(is )-211(generated )-211(when )-211(the )-211(timer )-211(set )-211(by )-211(the)]TJ /TT1 1 Tf -9.33 -1.2 Td (alarm)Tj /T1_2 1 Tf 3.285 0 Td [(function )-35(goes )-35(of)18(f. )-285(V)111(ersion )-35(7 )-35(had )-35(15 )-35(dif)17(fer)18(ent )-35(signals; )-35(SVR4 )-35(and )-35(4.4BSD )-35(both )-35(had)]TJ -3.285 -1.2 Td [(31 )-154(dif)18(fer)18(ent )-154(signals.)-653(Fr)18(eeBSD )-154(8.0 )-154(supports )-154(32 )-154(dif)20(fer)18(ent )-153(signals.)-653(Mac )-153(OS )-153(X )-153(10.6.8 )-153(and)]TJ /T1_4 1 Tf 9 0 0 9 506.0991 114 Tm (313)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46809 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (312)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Relationships)]TJ 39.241 0 Td [(Chapter )-250(9)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (The)Tj /TT0 1 Tf 1.924 0 Td (proc)Tj /T1_1 1 Tf 2.65 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ec)Tj 0 Tc 1.173 0 Td [(ontains all the information for a single pr)18(ocess.)]TJ -9.237 -2.16 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (p_pid)Tj /T1_1 1 Tf 3.25 0 Td [(contains the pr)18(ocess ID.)]TJ -4.739 -1.72 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (p_pptr)Tj /T1_1 1 Tf 3.85 0 Td (is a pointer to the)Tj /TT0 1 Tf 7.944 0 Td (proc)Tj /T1_1 1 Tf 2.65 0 Td [(str)8(uctur)18(e)-250(of)-250(the par)18(ent pr)18(ocess.)]TJ -15.933 -1.72 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (p_pgrp)Tj /T1_1 1 Tf 3.904 0 Td [(points )-54(to )-54(the)]TJ /TT0 1 Tf 5.94 0 Td (pgrp)Tj /T1_1 1 Tf 2.704 0 Td [(str)8(uctur)18(e)-303(of)-303(t)-1(he )-53(pr)18(ocess )-53(gr)18(oup )-53(to )-53(which )-53(this )-53(pr)15(ocess)]TJ -12.547 -1.2 Td (belongs.)Tj -1.489 -1.72 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (p_pglist)Tj /T1_1 1 Tf 5.113 0 Td [(is )-63(a )-63(str)8(uctur)]TJ 0.3131 Tc 5.331 0 Td (ec)Tj 0 Tc 1.236 0 Td [(ontaining )-63(pointers )-63(to )-63(the )-63(next )-63(and )-63(pr)18(evious )-63(pr)17(ocesses)]TJ -11.68 -1.2 Td [(in the pr)18(ocess gr)18(oup, as we mentioned earlier)74(.)]TJ -1.489 -2.16 Td [(Finally)111(,)-659(we)-659(h)-1(ave )-409(the)]TJ /TT0 1 Tf 10.67 0 Td (vnode)Tj /T1_1 1 Tf 3.659 0 Td [(str)8(uctur)18(e. )-659(This)-660(str)8(uctur)18(e)-659(is)-659(a)-1(llocated )-409(when )-409(the)]TJ -16.129 -1.2 Td [(contr)18(olling )-232(terminal )-232(device )-232(is )-232(opened.)-732(All )-232(r)18(efer)18(ences )-232(to)]TJ /TT0 1 Tf 26.502 0 Td (/dev/tty)Tj /T1_1 1 Tf 5.282 0 Td [(in )-232(a )-232(pr)18(ocess )-232(go)]TJ -31.784 -1.2 Td [(thr)18(ough this)]TJ /TT0 1 Tf 5.695 0 Td (vnode)Tj /T1_1 1 Tf 3.25 0 Td [(str)8(uctur)18(e.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5938 490.1706 Tm [(9.12 )-776(Summar)-10(y)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5916 466.172 Tm [(This )-188(chapter )-188(has )-188(described )-188(the )-188(r)18(elationships )-188(between )-188(gr)18(oups )-188(of )-188(pr)18(ocesses )167(\321 )167(sessions,)]TJ 0 -1.2 TD [(which )-24(ar)]TJ 0.274 Tc 3.884 0 Td (em)Tj 0 Tc 1.636 0 Td [(ade )-24(up )-24(of )-24(pr)18(ocess )-24(gr)18(oups. )-274(Job)-274(contr)18(ol )-24(is )-24(a )-24(featur)]TJ 0.274 Tc 21.418 0 Td (es)Tj 0 Tc 1.177 0 Td [(upported )-24(by )-24(most )-24(UNIX)]TJ -28.115 -1.2 Td [(systems )-84(today)]TJ 0.334 Tc 6.278 0 Td (,a)Tj 0 Tc 1.084 0 Td [(nd )-84(we\325ve )-84(described )-84(how )-84(it\325s )-84(implemented )-84(by )-84(a )-84(shell )-84(that )-84(supports )-84(job)]TJ -7.362 -1.2 Td [(contr)18(ol. )-433(The)-433(contr)18(olling )-183(terminal )-183(for )-183(a )-183(pr)18(ocess,)]TJ /TT0 1 Tf 22.216 0 Td (/dev/tty)Tj /T1_1 1 Tf [(,)-433(is)-433(also )-183(involved )-183(in )-183(these)]TJ -22.215 -1.2 Td [(pr)18(ocess r)18(elationships.)]TJ -0.092 Tc 1.8 -1.2 Td (We)Tj 0 Tc 1.387 0 Td [(\325ve )-134(made )-134(numer)18(ous )-134(r)17(efer)18(ences )-134(to )-134(the )-134(signals )-134(that )-134(ar)]TJ 0.3841 Tc 23.757 0 Td (eu)Tj 0 Tc 1.466 0 Td [(sed )-134(in )-134(all )-134(these )-134(pr)18(ocess)]TJ -0.018 Tc -28.41 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(lationships. )-393(The)-393(next )-143(chapter )-143(continues )-143(the )-143(discussion )-143(of )-143(signals, )-143(looking )-143(at )-143(all )-143(the)]TJ -0.856 -1.2 Td (UNIX System signals in detail.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 129.5912 340.1796 Tm [(Ex)10(er)20(cises)]TJ /T1_0 1 Tf 8.9995 0 0 8.9995 129.5912 319.1808 Tm (9.1)Tj /T1_1 1 Tf 2.602 0 Td [(Refer )-53(back )-53(to )-53(our )-53(discussion )-53(of )-53(the)]TJ /TT0 1 Tf 15.848 0 Td (utmp)Tj /T1_1 1 Tf 2.703 0 Td (and)Tj /TT0 1 Tf 1.996 0 Td (wtmp)Tj /T1_1 1 Tf 2.703 0 Td [(\336les )-53(in )-53(Section )-53(6.8.)-553(Why )-53(ar)]TJ 0.3027 Tc 12.143 0 Td (et)Tj 0 Tc 1.108 0 Td [(he )-53(logout)]TJ -0.018 Tc -36.5 -1.222 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(ds written by the)]TJ /TT0 1 Tf 9.131 0 Td (init)Tj /T1_1 1 Tf 2.65 0 Td [(pr)18(ocess? )-250(Is)-250(this handled the same way for a network login?)]TJ /T1_0 1 Tf -15.239 -1.667 Td (9.2)Tj /T1_1 1 Tf -0.074 Tc 2.602 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-101(a )-101(small )-101(pr)18(ogram )-101(that )-101(calls)]TJ /TT0 1 Tf 13.63 0 Td (fork)Tj /T1_1 1 Tf 2.751 0 Td [(and )-101(has )-101(the )-101(child )-101(cr)20(eate )-101(a )-101(new )-101(session.)]TJ -0.111 Tc 18.28 0 Td (Ve)Tj 0 Tc 1.09 0 Td [(rify )-101(that)]TJ -37.072 -1.222 Td [(the )-166(child )-166(becomes )-166(a )-166(pr)18(ocess )-166(gr)18(oup )-166(leader )-166(and )-166(that )-166(the )-166(child )-166(no )-166(longer )-166(has )-166(a )-166(contr)21(olling)]TJ 0 -1.222 TD (terminal.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46810 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (310)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Relationships)]TJ 39.241 0 Td [(Chapter )-250(9)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(9.11 )-776(FreeBSD)-556(Implementation)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 647.3612 Tm [(Having )-182(talked )-182(about )-182(the )-182(various )-182(attributes )-182(of )-182(a )-182(pr)18(ocess, )-182(pr)18(ocess )-182(gr)18(oup, )-182(session, )-182(and)]TJ 0 -1.2 TD [(contr)18(olling )-70(terminal, )-70(it\325s )-70(worth )-70(looking )-70(at )-70(how )-70(all )-70(this )-70(can )-70(be )-70(implemented.)]TJ -0.092 Tc 34.494 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-70(look)]TJ -35.881 -1.2 Td [(brie\337y )-594(at )-594(the )-594(implementation )-594(used )-594(by )-594(Fr)19(eeBSD. )-844(Some)-844(details )-594(of )-594(the )-594(SVR4)]TJ -0 -1.2 Td [(implementation of these featur)18(es can be found in W)53(illiams)]TJ 26.024 0.04 Td ([)Tj 0.333 -0.04 Td (1989)Tj 2 0.04 Td (])Tj 0.5003 Tc 0.333 -0.04 Td (.F)Tj 0 Tc 1.306 0 Td (igur)Tj 0.2503 Tc 1.827 0 Td (e9)Tj 0 Tc 1.229 0 Td (.13 shows the)Tj -33.052 -1.2 Td [(various data str)8(uctur)18(es used by Fr)18(eeBSD.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1590 3686 576 144 re S Q BT /TT1 1 Tf 7.999 0 0 7.999 162.9804 373.9951 Tm (p_pglist)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1590 3542 576 144 re S Q BT /TT1 1 Tf 7.9986 0 0 7.9986 162.9707 359.5753 Tm (p_pid)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 1590 3398 576 144 re S Q BT /TT1 1 Tf 7.9981 0 0 7.9981 162.9609 345.1571 Tm (p_pptr)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1590 3110 576 288 re S Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1590 2966 576 144 re S Q BT /TT1 1 Tf 7.9976 0 0 7.9976 162.9511 301.9494 Tm (p_pgrp)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 1590 2678 576 288 re S Q BT /TT1 1 Tf 7.9971 0 0 7.9971 161.2659 386.101 Tm (proc)Tj /T1_1 1 Tf 2.65 0 Td [(str)8(uctur)18(e)]TJ ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2742 3686 576 144 re S Q BT /TT1 1 Tf 7.9966 0 0 7.9966 278.0832 373.8829 Tm (p_pglist)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 2742 3542 576 144 re S Q BT /TT1 1 Tf 7.9962 0 0 7.9962 278.0665 359.4674 Tm (p_pid)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 2742 3398 576 144 re S Q BT /TT1 1 Tf 7.9957 0 0 7.9957 278.0498 345.0536 Tm (p_pptr)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 2742 3110 576 288 re S Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 2742 2966 576 144 re S Q BT /TT1 1 Tf 7.9952 0 0 7.9952 278.0331 301.8588 Tm (p_pgrp)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 2742 2678 576 288 re S Q BT /TT1 1 Tf 7.9947 0 0 7.9947 276.3415 385.9852 Tm (proc)Tj /T1_1 1 Tf 2.65 0 Td [(str)8(uctur)18(e)]TJ ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J 3894 3686 576 144 re S Q BT /TT1 1 Tf 7.9942 0 0 7.9942 393.1168 373.7708 Tm (p_pglist)Tj ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J 3894 3542 576 144 re S Q BT /TT1 1 Tf 7.9938 0 0 7.9938 393.0933 359.3596 Tm (p_pid)Tj ET q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J 3894 3398 576 144 re S Q BT /TT1 1 Tf 7.9933 0 0 7.9933 393.0697 344.9501 Tm (p_pptr)Tj ET q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J 3894 3110 576 288 re S Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J 3894 2966 576 144 re S Q BT /TT1 1 Tf 7.9928 0 0 7.9928 393.0461 301.7683 Tm (p_pgrp)Tj ET q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J 3894 2678 576 288 re S Q BT /TT1 1 Tf 7.9923 0 0 7.9923 391.3481 385.8694 Tm (proc)Tj /T1_1 1 Tf 2.65 0 Td [(str)8(uctur)18(e)]TJ ET q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J 2670 4478 576 288 re S Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J 2670 4334 576 144 re S Q BT /TT1 1 Tf 7.9918 0 0 7.9918 270.7237 438.3926 Tm (pg_id)Tj ET q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J 2670 4190 576 144 re S Q BT /TT1 1 Tf 7.9914 0 0 7.9914 270.7075 423.9818 Tm (pg_session)Tj ET q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J 2670 4046 576 144 re S Q BT /TT1 1 Tf 7.9909 0 0 7.9909 270.6912 409.5728 Tm (pg_members)Tj -0.21 8.725 Td (pgrp)Tj /T1_1 1 Tf 2.65 0 Td [(str)8(uctur)18(e)]TJ ET q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J 3462 5558 576 144 re S Q BT /TT1 1 Tf 7.9904 0 0 7.9904 349.78 560.5669 Tm (s_count)Tj ET q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J 3462 5414 576 144 re S Q BT /TT1 1 Tf 7.9899 0 0 7.9899 349.759 546.1514 Tm (s_leader)Tj ET q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J 3462 5270 576 144 re S Q BT /TT1 1 Tf 7.9894 0 0 7.9894 349.738 531.7376 Tm (s_ttyvp)Tj ET q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J 3462 5126 576 144 re S Q BT /TT1 1 Tf 7.989 0 0 7.989 349.717 517.3256 Tm (s_ttyp)Tj ET q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J 3462 4982 576 144 re S Q BT /TT1 1 Tf 7.9885 0 0 7.9885 349.6961 502.9153 Tm (s_sid)Tj -1.11 8.725 Td (session)Tj /T1_1 1 Tf 4.45 0 Td [(str)8(uctur)18(e)]TJ ET q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J 4542 4838 576 288 re S Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J 4542 4694 576 144 re S Q BT /TT1 1 Tf 7.988 0 0 7.988 457.5132 474.1283 Tm (v_data)Tj -0.51 5.125 Td (vnode)Tj /T1_1 1 Tf 3.25 0 Td [(str)8(uctur)18(e)]TJ ET q 0.0998501 0 0 0.0998501 0 0 cm 3.2 w 1 j 1 J 1374 5270 576 288 re S Q q 0.0998501 0 0 0.0998501 0 0 cm 3.2 w 1 j 1 J 1374 5126 576 144 re S Q BT /TT1 1 Tf 7.9875 0 0 7.9875 141.1796 517.2325 Tm (t_session)Tj ET q 0.0998441 0 0 0.0998441 0 0 cm 3.2 w 1 j 1 J 1374 4982 576 144 re S Q BT /TT1 1 Tf 7.9871 0 0 7.9871 141.1711 502.8247 Tm (t_pgrp)Tj ET q 0.0998381 0 0 0.0998381 0 0 cm 3.2 w 1 j 1 J 1374 4766 576 216 re S Q BT /TT1 1 Tf 7.9866 0 0 7.9866 141.1626 484.8248 Tm (t_termios)Tj ET q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J 1374 4550 576 216 re S Q BT /TT1 1 Tf 7.9861 0 0 7.9861 141.1542 463.2332 Tm (t_winsize)Tj ET q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J 1374 4406 576 144 re S Q BT /TT1 1 Tf 7.9856 0 0 7.9856 141.8684 558.0346 Tm (tty)Tj /T1_1 1 Tf 2.05 0 Td [(str)8(uctur)18(e)]TJ ET q 0.0998202 0 0 0.0998202 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2166.25 3038.25 cm 0 0 m 180 0 l 180 1670 l S Q Q q 0.9981417 0 0 0.9981417 0 0 cm q 1 0 0 1 267 470.84 cm 0 0 m -7.2 -1.44 l -7.2 1.44 l f Q Q q 0.0998142 0 0 0.0998142 0 0 cm 1 j 1 J q 1 0 0 1 2670 4708.3999 cm 0 0 m -72 -14.4 l -72 14.4 l h S Q Q q 0.0998142 0 0 0.0998142 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 4708.25 cm 0 0 m 252 0 l S Q Q q 0.0998142 0 0 0.0998142 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2742.25 3038.25 cm 0 0 m -267 0 l -267 1555 l S Q Q q 0.9980818 0 0 0.9980818 0 0 cm q 1 0 0 1 267 459.32 cm 0 0 m -7.2 -1.44 l -7.2 1.44 l f Q Q q 0.0998082 0 0 0.0998082 0 0 cm 1 j 1 J q 1 0 0 1 2670 4593.2002 cm 0 0 m -72 -14.4 l -72 14.4 l h S Q Q q 0.0998082 0 0 0.0998082 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2475.25 4593.25 cm 0 0 m 123 0 l S Q Q q 0.9980219 0 0 0.9980219 0 0 cm q 1 0 0 1 267 411.8 cm 0 0 m -7.2 -1.44 l -7.2 1.44 l f Q Q q 0.0998022 0 0 0.0998022 0 0 cm 1 j 1 J q 1 0 0 1 2670 4118 cm 0 0 m -72 -14.4 l -72 14.4 l h S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2598.25 4118.25 cm 0 0 m -1224 0 l -1224 -360 l S Q Q q 0.997962 0 0 0.997962 0 0 cm q 1 0 0 1 159 375.8 cm 0 0 m -7.2 -1.44 l -7.2 1.44 l f Q Q q 0.0997962 0 0 0.0997962 0 0 cm 1 j 1 J q 1 0 0 1 1590 3758 cm 0 0 m -72 -14.4 l -72 14.4 l h S Q Q q 0.0997962 0 0 0.0997962 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1374.25 3758.25 cm 0 0 m 144 0 l S Q Q q 0.9979021 0 0 0.9979021 0 0 cm q 1 0 0 1 216.6 375.8 cm 0 0 m 7.2 1.44 l 7.2 -1.44 l f Q Q q 0.0997902 0 0 0.0997902 0 0 cm 1 j 1 J q 1 0 0 1 2166 3758 cm 0 0 m 72 14.4 l 72 -14.4 l h S Q Q q 0.9978423 0 0 0.9978423 0 0 cm q 1 0 0 1 274.2 375.8 cm 0 0 m -7.2 -1.44 l -7.2 1.44 l f Q Q q 0.0997842 0 0 0.0997842 0 0 cm 1 j 1 J q 1 0 0 1 2742 3758 cm 0 0 m -72 -14.4 l -72 14.4 l h S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2238.25 3758.25 cm 0 0 m 432 0 l S Q Q q 0.9977824 0 0 0.9977824 0 0 cm q 1 0 0 1 331.8 375.8 cm 0 0 m 7.2 1.44 l 7.2 -1.44 l f Q Q q 0.0997782 0 0 0.0997782 0 0 cm 1 j 1 J q 1 0 0 1 3318 3758 cm 0 0 m 72 14.4 l 72 -14.4 l h S Q Q q 0.9977225 0 0 0.9977225 0 0 cm q 1 0 0 1 389.4 375.8 cm 0 0 m -7.2 -1.44 l -7.2 1.44 l f Q Q q 0.0997723 0 0 0.0997723 0 0 cm 1 j 1 J q 1 0 0 1 3894 3758 cm 0 0 m -72 -14.4 l -72 14.4 l h S Q Q q 0.0997723 0 0 0.0997723 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3390.25 3758.25 cm 0 0 m 432 0 l S Q Q q 0.0997723 0 0 0.0997723 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 4262.25 cm 0 0 m 72 0 l 72 1332 l S Q Q q 0.9976627 0 0 0.9976627 0 0 cm q 1 0 0 1 346.2 559.4 cm 0 0 m -7.2 -1.44 l -7.2 1.44 l f Q Q q 0.0997663 0 0 0.0997663 0 0 cm 1 j 1 J q 1 0 0 1 3462 5594 cm 0 0 m -72 -14.4 l -72 14.4 l h S Q Q q 0.0997663 0 0 0.0997663 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3318.25 5594.25 cm 0 0 m 72 0 l S Q Q q 0.9976028 0 0 0.9976028 0 0 cm q 1 0 0 1 454.2 512.6 cm 0 0 m -7.2 1.512 l -6.048 4.176 l f Q Q q 0.0997603 0 0 0.0997603 0 0 cm 1 j 1 J q 1 0 0 1 4542 5126 cm 0 0 m -72 15.12 l -60.48 41.76 l h S Q Q q 0.0997603 0 0 0.0997603 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4038.25 5342.25 cm 0 0 m 438 -188 l S Q Q q 0.9975429 0 0 0.9975429 0 0 cm q 1 0 0 1 195 555.8 cm 0 0 m 7.344 -0.288 l 6.696 -3.096 l f Q Q q 0.0997543 0 0 0.0997543 0 0 cm 1 j 1 J q 1 0 0 1 1950 5558 cm 0 0 m 73.44 -2.88 l 66.96 -30.96 l h S Q Q q 0.0997543 0 0 0.0997543 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3462.25 5198.25 cm 0 0 m -1442 343 l S Q Q q 0.9974831 0 0 0.9974831 0 0 cm q 1 0 0 1 346.2 570.2 cm 0 0 m -6.408 -3.672 l -7.344 -0.936 l f Q Q q 0.0997483 0 0 0.0997483 0 0 cm 1 j 1 J q 1 0 0 1 3462 5702 cm 0 0 m -64.08 -36.72 l -73.44 -9.36 l h S Q Q q 0.0997483 0 0 0.0997483 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1950.25 5198.25 cm 0 0 m 1443 481 l S Q Q q 0.9974232 0 0 0.9974232 0 0 cm q 1 0 0 1 267 476.6 cm 0 0 m -7.2 1.368 l -6.12 4.032 l f Q Q q 0.0997423 0 0 0.0997423 0 0 cm 1 j 1 J q 1 0 0 1 2670 4766 cm 0 0 m -72 13.68 l -61.2 40.32 l h S Q Q q 0.0997423 0 0 0.0997423 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1950.25 5054.25 cm 0 0 m 653 -262 l S Q Q BT /T1_1 1 Tf 6.4822 -2.5928 2.5928 6.4822 215.3537 499.2013 Tm [(for)18(egr)18(ound)]TJ -0.609 -1.429 Td [(pr)18(ocess gr)18(oup)]TJ ET q 0.0997363 0 0 0.0997363 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4038.25 5486.25 cm 0 0 m 288 0 l -288 -1512 l S Q Q q 0.9973036 0 0 0.9973036 0 0 cm q 1 0 0 1 389.4 383 cm 0 0 m -6.12 4.104 l -4.104 6.12 l f Q Q q 0.0997304 0 0 0.0997304 0 0 cm 1 j 1 J q 1 0 0 1 3894 3830 cm 0 0 m -61.2 41.04 l -41.04 61.2 l h S Q Q q 0.0997304 0 0 0.0997304 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 3974.25 cm 0 0 m 93 -93 l S Q Q q 0.0997304 0 0 0.0997304 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3894.25 3038.25 cm 0 0 m -432 -504 l -1483 -504 l -1483 1613 l S Q Q q 0.9972437 0 0 0.9972437 0 0 cm q 1 0 0 1 267 465.08 cm 0 0 m -7.2 -1.44 l -7.2 1.44 l f Q Q q 0.0997244 0 0 0.0997244 0 0 cm 1 j 1 J q 1 0 0 1 2670 4650.7998 cm 0 0 m -72 -14.4 l -72 14.4 l h S Q Q q 0.0997244 0 0 0.0997244 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2411.25 4651.25 cm 0 0 m 187 0 l S Q Q BT /T1_1 1 Tf 6.9803 0 0 6.9803 160.8228 413.8712 Tm (linked list of)Tj -2.527 -1.429 Td [(pr)18(ocess gr)18(oup members)]TJ /T1_0 1 Tf 7.9775 0 0 7.9775 201.5349 215.5912 Tm (Figure 9.13)Tj /T1_1 1 Tf 5.695 0 Td [(Fr)18(eeBSD implementation of sessions and pr)18(ocess gr)18(oups)]TJ 9.9718 0 0 9.9718 147.1845 191.6587 Tm [(Let\325s )-87(look )-87(at )-87(all )-87(the )-87(\336elds )-87(that )-87(we\325ve )-87(labeled, )-87(starting )-87(with )-87(the)]TJ /TT1 1 Tf 28.444 0 Td (session)Tj /T1_1 1 Tf 4.537 0 Td [(str)8(uctur)18(e.)]TJ -34.781 -1.2 Td [(One of these str)8(uctur)18(es is allocated for each session \(e.g., each time)]TJ /TT1 1 Tf 29.663 0 Td (setsid)Tj /T1_1 1 Tf 3.85 0 Td (is called\).)Tj -31.713 -2.16 Td (\245)Tj /TT1 1 Tf 1.489 0 Td (s_count)Tj /T1_1 1 Tf 4.534 0 Td [(is )-84(the )-84(number )-84(of )-84(pr)18(ocess )-84(gr)18(oups )-84(in )-84(the )-84(session.)-584(When )-84(this )-84(counter )-84(is)]TJ -4.534 -1.2 Td [(decr)18(emented to 0, the str)8(uctur)]TJ 0.25 Tc 13.249 0 Td (ec)Tj 0 Tc 1.173 0 Td [(an be fr)18(eed.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46811 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(9.10)]TJ 31.685 0 Td [(Orphaned )-250(Pr)18(ocess )-250(Gr)18(oups)]TJ /T1_1 1 Tf 14.148 0 Td (307)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 670.2598 Tm (ps -o pid,ppid,pgid,sid,tpgid,comm | cat1 &)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 653.3307 Tm [(the )-10(r)18(esults )-10(ar)]TJ 0.2596 Tc 5.707 0 Td (es)Tj 0 Tc 1.163 0 Td (imilar)Tj 0.2596 Tc 2.577 0 Td (,b)Tj 0 Tc 1.063 0 Td [(ut )-10(now)]TJ /TT0 1 Tf 3.41 0 Td (ps)Tj /T1_0 1 Tf 1.46 0 Td (and)Tj /TT0 1 Tf 1.953 0 Td (cat1)Tj /T1_0 1 Tf 2.66 0 Td (ar)Tj 0.2596 Tc 0.877 0 Td (ep)Tj 0 Tc 1.34 0 Td [(laced )-10(in )-10(the )-10(same )-10(backgr)18(ound )-10(pr)20(ocess)]TJ -22.208 -1.2 Td [(gr)18(oup:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 158.3911 625.7023 Tm [(PID )-600(PPID )-600(PGID)-1800(SID TPGID COMMAND)]TJ /TT1 1 Tf -0.6 -1.189 Td (2837)Tj /TT0 1 Tf 3.6 0 Td (2818)Tj /TT1 1 Tf 3.6 0 Td (2837)Tj /TT0 1 Tf 3.6 0 Td [(2837 )-600(2837)-600(bash)]TJ -10.8 -1.189 Td [(5801 )-600(2837 )-600(5801 )-600(2837 )-600(2837)-600(ps)]TJ 0 -1.189 TD [(5802 )-600(2837 )-600(5801 )-600(2837 )-600(2837)-600(cat1)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5928 576.6755 Tm [(Note )-224(that )-224(the )-224(or)18(der )-224(in )-224(which )-224(a )-224(shell )-224(cr)18(eates )-224(pr)18(ocesses )-224(can )-224(dif)21(fer )-224(depending )-224(on )-224(the)]TJ 0 -1.2 TD (particular shell in use.)Tj /TT2 1 Tf 11.9993 0 0 11.9993 93.595 528.6784 Tm [(9.10 )-776(Orphaned)-556(Pr)20(ocess )-278(Gr)20(oups)]TJ /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5927 504.6798 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ve )-176(mentioned )-176(that )-176(a )-176(pr)17(ocess )-176(whose )-176(par)18(ent )-176(terminates )-176(is )-176(called )-176(an )-176(orphan )-176(and )-176(is)]TJ -1.387 -1.2 Td [(inherited )-245(by )-245(the)]TJ /TT0 1 Tf 8.017 0 Td (init)Tj /T1_0 1 Tf 2.895 0 Td [(pr)18(ocess. )-495(W)]TJ 0.4951 Tc 5.198 0 Td (en)Tj 0 Tc 1.556 0 Td [(ow )-245(look )-245(at )-245(entir)]TJ 0.4951 Tc 7.685 0 Td (ep)Tj -0.018 Tc 1.575 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-245(gr)18(oups )-245(that )-245(can )-245(be)]TJ -27.85 -1.2 Td (orphaned and see how POSIX.1 handles this situation.)Tj /TT2 1 Tf -3.6 -2.4 Td (Example)Tj /T1_0 1 Tf 3.6 -1.92 Td [(Consider )-133(a )-133(pr)18(ocess )-133(that)]TJ /TT0 1 Tf 11.098 0 Td (fork)Tj /T1_0 1 Tf 0.3829 Tc (sac)Tj 0 Tc 4.534 0 Td [(hild )-133(and )-133(then )-133(terminates.)-633(Although )-133(this )-133(is )-133(nothing)]TJ -15.631 -1.2 Td [(abnormal )-202(\(it )-202(happens )-202(all )-202(the )-202(time\), )-202(what )-202(happens )-202(if )-202(the )-202(child )-202(is )-202(stopped )-202(\(using )-202(job)]TJ T* [(contr)18(ol\) )-97(when )-97(the )-97(par)18(ent )-97(terminates?)-595(How )-96(will )-96(the )-96(child )-96(ever )-96(be )-96(continued, )-96(and )-96(does)]TJ T* [(the )-75(child )-75(know )-75(that )-75(it )-75(has )-75(been )-75(orphaned?)-577(Figur)]TJ 0.3254 Tc 22.05 0 Td (e9)Tj 0 Tc 1.304 0 Td (.1)Tj 0.3254 Tc 0.695 0 Td (1s)Tj 0 Tc 1.249 0 Td [(hows )-75(this )-75(situation: )-75(the )-75(par)16(ent)]TJ -25.298 -1.2 Td [(pr)18(ocess has)]TJ /TT0 1 Tf 5.301 0 Td (fork)Tj /T1_0 1 Tf [(ed a child that stops, and the par)18(ent is about to exit.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2850 3291.1 432 216 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 288.2334 343.1088 Tm (login shell)Tj -0.024 -1.25 Td (\(PID 2837\))Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2850 2751.1 432 216 re S Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 295.0869 289.098 Tm [(par)18(ent)]TJ -0.883 -1.25 Td (\(PID 6099\))Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 3210 2283.1 432 216 re S Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 333.6439 242.2918 Tm (child)Tj -1.206 -1.25 Td (\(PID 6100\))Tj ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 306.6 296.71 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 3066 2967.1001 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3066.25 3291.25 cm 0 0 m 0 -252 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 308.5074 311.0567 Tm (fork/exec)Tj ET q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 342.6 249.91 cm 0 0 m -6.912 2.664 l -4.824 5.616 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 3426 2499.1001 cm 0 0 m -69.12 26.64 l -48.24 56.16 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3066.25 2751.25 cm 0 0 m 29 -21 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3120.25 2713.25 cm 0 0 m 29 -21 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3174.25 2675.25 cm 0 0 m 30 -21 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3228.25 2637.25 cm 0 0 m 30 -21 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3283.25 2599.25 cm 0 0 m 30 -21 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3337.25 2561.25 cm 0 0 m 30 -21 l S Q Q BT /TT0 1 Tf 6.5515 -4.586 4.586 6.5515 318.4783 270.5726 Tm (fork)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 3219.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 3284.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 3348.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 3413.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 3478.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 3543.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2845.25 3579.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2913.25 3579.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2980.25 3579.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3048.25 3579.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3115.25 3579.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3183.25 3579.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3250.25 3579.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3318.25 3579.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 3514.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 3449.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 3384.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 3320.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 3255.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3286.25 3219.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3219.25 3219.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3151.25 3219.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3084.25 3219.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3016.25 3219.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2949.25 3219.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2881.25 3219.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2814.25 3219.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 272.5735 360.9983 Tm [(pr)18(ocess gr)18(oup 2837)]TJ ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 2211.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 2283.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 2355.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 2427.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 2499.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 2571.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 2643.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 2715.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 2787.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 2859.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 2931.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 3003.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2847.25 3039.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2916.25 3039.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2985.25 3039.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3055.25 3039.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3124.25 3039.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3193.25 3039.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3262.25 3039.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3331.25 3039.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3401.25 3039.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3470.25 3039.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3540.25 3039.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3609.25 3039.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3678.25 3039.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3714.25 2967.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3714.25 2895.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3714.25 2823.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3714.25 2751.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3714.25 2679.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3714.25 2607.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3714.25 2535.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3714.25 2463.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3714.25 2391.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3714.25 2319.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3714.25 2247.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3645.25 2211.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3576.25 2211.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3506.25 2211.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3437.25 2211.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3367.25 2211.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3298.25 2211.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3229.25 2211.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3160.25 2211.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3091.25 2211.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3021.25 2211.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2952.25 2211.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2883.25 2211.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2814.25 2211.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 290.5485 214.2471 Tm [(pr)18(ocess gr)18(oup 6099)]TJ ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2634.25 2067.25 cm 0 0 m 0 144 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2634.25 2369.25 cm 0 0 m 0 144 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2634.25 2672.25 cm 0 0 m 0 144 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2634.25 2974.25 cm 0 0 m 0 144 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2634.25 3276.25 cm 0 0 m 0 144 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2634.25 3579.25 cm 0 0 m 0 144 l 144 144 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2904.25 3723.25 cm 0 0 m 144 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3174.25 3723.25 cm 0 0 m 144 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3444.25 3723.25 cm 0 0 m 144 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3714.25 3723.25 cm 0 0 m 144 0 l 144 -144 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3858.25 3420.25 cm 0 0 m 0 -144 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3858.25 3118.25 cm 0 0 m 0 -144 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3858.25 2816.25 cm 0 0 m 0 -144 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3858.25 2513.25 cm 0 0 m 0 -144 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3858.25 2211.25 cm 0 0 m 0 -144 l -144 -144 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3588.25 2067.25 cm 0 0 m -144 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3318.25 2067.25 cm 0 0 m -144 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3048.25 2067.25 cm 0 0 m -144 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 2067.25 cm 0 0 m -144 0 l S Q Q BT /T1_0 1 Tf 9.9946 0 0 9.9946 229.0763 287.5947 Tm (session)Tj /T1_1 1 Tf 7.9957 0 0 7.9957 213.9883 181.412 Tm [(Figure 9.1)37(1)]TJ /T1_0 1 Tf 5.658 0 Td [(Example of a pr)18(ocess gr)18(oup about to be orphaned)]TJ 9.9946 0 0 9.9946 129.53 157.425 Tm [(The )-30(pr)18(ogram )-30(that )-30(cr)18(eates )-30(this )-30(situation )-30(is )-30(shown )-30(in )-30(Figur)]TJ 0.2799 Tc 25.265 0 Td (e9)Tj 0 Tc 1.259 0 Td [(.13. )-280(This)-280(pr)18(ogram )-30(has )-30(some)]TJ -26.524 -1.2 Td [(new )-234(featur)18(es. )-484(Her)18(e, )-234(we )-234(ar)]TJ 0.4837 Tc 12.458 0 Td (ea)Tj 0 Tc 1.463 0 Td [(ssuming )-234(a )-234(job-contr)19(ol )-234(shell.)-734(Recall )-234(fr)18(om )-234(the )-234(pr)19(evious)]TJ -13.92 -1.2 Td [(section )-61(that )-61(the )-61(shell )-61(places )-61(the )-61(for)17(egr)18(ound )-61(pr)18(ocess )-61(into )-61(its )-61(own )-61(pr)18(ocess )-61(gr)18(oup )-61(\(6099 )-61(in)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46812 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(9.9)]TJ 30.603 0 Td [(Shell )-250(Execution )-250(of )-250(Pr)18(ograms)]TJ /T1_1 1 Tf 15.23 0 Td (303)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (driver)Tj 0.5447 Tc 2.662 0 Td (,t)Tj 0 Tc 1.121 0 Td [(he )-295(shell, )-295(and )-295(some )-295(applications)]TJ 0.0833 Tc 15.062 0 Td (\321i)Tj 0.5447 Tc 1.374 0 Td (sah)Tj 0 Tc 2.595 0 Td [(ack. )-545(Some)-544(use )-295(job )-295(contr)19(ol )-295(with )-295(a)]TJ -22.815 -1.2 Td [(windowing )-29(system, )-29(claiming )-29(a )-29(need )-29(for )-29(both.)-528(Regar)18(dless )-29(of )-29(your )-29(opinion, )-29(job )-29(contr)18(ol )-29(is)]TJ 0.25 Tc 0 -1.2 TD (ar)Tj 0 Tc 1.127 0 Td [(equir)18(ed featur)18(e)-250(of)-250(POSIX.1.)]TJ /TT0 1 Tf 11.9993 0 0 11.9993 93.5939 608.9635 Tm [(9.9 )-1332(Shell)-556(Ex)10(ecution )-278(of )-278(Pr)20(ograms)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5918 584.9649 Tm [(Let\325s )-76(examine )-76(how )-76(the )-76(shells )-76(execute )-76(pr)18(ograms )-76(and )-76(how )-76(this )-76(r)17(elates )-76(to )-76(the )-76(concepts )-76(of)]TJ T* [(pr)18(ocess )-329(gr)18(oups, )-329(contr)18(olling )-329(terminals, )-329(and )-329(sessions.)]TJ -0.092 Tc 25.165 0 Td [(To )-513(d)]TJ 0.5787 Tc 2.257 0 Td (ot)Tj 0 Tc 1.451 0 Td [(his, )-329(we\325ll )-329(use )-329(the)]TJ /TT1 1 Tf 8.928 0 Td (ps)Tj /T1_0 1 Tf -37.8 -1.2 Td (command again.)Tj 1.8 -1.2 Td [(First, )-178(we\325ll )-178(use )-178(a )-178(shell )-178(that )-178(doesn\325t )-178(support )-178(job )-178(contr)18(ol )167(\321 )167(the)-429(classic )-178(Bourne )-178(shell)]TJ -0.008 Tc -1.8 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td [(nning on Solaris.)-500(If we execute)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.5912 521.3386 Tm (ps -o pid,ppid,pgid,sid,comm)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5923 504.4095 Tm (the output is)Tj /TT1 1 Tf 8.9995 0 0 8.9995 158.3906 488.7808 Tm [(PID )-600(PPID )-600(PGID)-1800(SID COMMAND)]TJ 0 -1.189 TD [(949 )-1200(947 )-1200(949 )-1200(949)-600(sh)]TJ -0.6 -1.189 Td [(1774 )-1200(949 )-1200(949 )-1200(949)-600(ps)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5923 450.453 Tm [(The )-40(par)18(ent )-40(of )-40(the)]TJ /TT1 1 Tf 7.965 0 Td (ps)Tj /T1_0 1 Tf 1.49 0 Td [(command )-40(is )-40(the )-40(shell, )-40(which )-40(we )-40(would )-40(expect.)-540(Both )-40(the )-40(shell )-40(and)]TJ -9.455 -1.2 Td (the)Tj /TT1 1 Tf 1.721 0 Td (ps)Tj /T1_0 1 Tf 1.534 0 Td [(command )-84(ar)18(e)-334(in)-334(the )-84(same )-84(session )-84(and )-84(for)18(egr)18(ound )-84(pr)18(ocess )-84(gr)18(oup)]TJ 29.543 0.04 Td (\()Tj 0.333 -0.04 Td (949)Tj 1.5 0.04 Td (\))Tj 0.5842 Tc 0.333 -0.04 Td (.W)Tj 0.3342 Tc 1.742 0 Td (es)Tj 0 Tc 1.237 0 Td (ay)Tj -37.944 -1.2 Td [(that )-12(949 )-12(is )-12(the )-12(for)18(egr)18(ound )-12(pr)18(ocess )-12(gr)18(oup )-12(because )-12(that )-12(is )-12(what )-12(you )-12(get )-12(when )-12(you )-12(execute)]TJ 0.25 Tc -0 -1.2 Td (ac)Tj 0 Tc 1.194 0 Td [(ommand with a shell that doesn\325t support job contr)18(ol.)]TJ 7.9995 0 0 7.9995 183.5895 394.4563 Tm [(Some )-173(platforms )-173(support )-173(an )-173(option )-173(to )-173(have )-173(the)]TJ /TT1 1 Tf 21.974 0 Td (ps)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.756 -0.04 Td [(command )-173(print )-173(the )-173(pr)18(ocess )-173(gr)18(oup )-173(ID)]TJ -24.763 -1.25 Td [(associated )-254(with )-254(the )-254(session\325s )-254(contr)19(olling )-254(terminal. )-254(This )-254(value )-254(would )-254(be )-254(shown )-254(under )-254(the)]TJ 0 -1.25 TD [(TPGID )-23(column.)-523(Unfortunately)]TJ 0.2731 Tc 13.672 0 Td (,t)Tj 0 Tc 0.849 0 Td [(he )-23(output )-23(of )-23(the)]TJ /TT1 1 Tf 7.425 0 Td (ps)Tj /T1_0 1 Tf 1.473 0 Td [(command )-23(often )-23(dif)18(fers )-23(among )-23(versions )-23(of)]TJ -23.419 -1.25 Td [(the )-130(UNIX )-130(System.)-630(For )-130(example, )-130(Solaris )-130(10 )-130(doesn\325t )-130(support )-130(this )-130(option.)-627(Under )-130(Fr)18(eeBSD )-130(8.0,)]TJ T* (Linux 3.2.0, and Mac OS X 10.6.8, the command)Tj /TT1 1 Tf 3.125 -1.8 Td (ps -o pid,ppid,pgid,sid,tpgid,comm)Tj /T1_0 1 Tf -3.125 -1.55 Td (prints exactly the information we want.)Tj 0 -1.875 TD [(Note )-66(that )-66(it )-66(is )-66(misleading )-66(to )-66(associate )-66(a )-66(pr)15(ocess )-66(with )-66(a )-66(terminal )-66(pr)18(ocess )-66(gr)18(oup )-66(ID )-66(\(the )-66(TPGID)]TJ 0 -1.25 TD [(column\). )-359(A)-360(pr)18(ocess )-109(does )-109(not )-109(have )-109(a )-109(terminal )-109(pr)18(ocess )-109(contr)18(ol )-109(gr)14(oup. )-359(A)-360(pr)18(ocess )-109(belongs )-109(to )-109(a)]TJ -0 -1.25 Td [(pr)18(ocess )-14(gr)18(oup, )-14(and )-14(the )-14(pr)18(ocess )-14(gr)16(oup )-15(belongs )-15(to )-15(a )-15(session.)-515(The )-15(session )-15(may )-15(or )-15(may )-15(not )-15(have )-15(a)]TJ -0 -1.25 Td [(contr)18(olling )-74(terminal.)-574(If )-74(the )-74(session )-74(does )-74(have )-74(a )-74(contr)18(olling )-74(terminal, )-74(then )-74(the )-74(terminal )-74(device)]TJ T* [(knows )-85(the )-85(pr)18(ocess )-85(gr)18(oup )-85(ID )-85(of )-85(the )-85(for)15(egr)18(ound )-85(pr)18(ocess. )-336(This)-335(value )-86(can )-86(be )-86(set )-86(in )-86(the )-86(terminal)]TJ 0 -1.25 Td [(driver )-15(with )-15(the)]TJ /TT1 1 Tf 6.952 0 Td (tcsetpgrp)Tj /T1_0 1 Tf 5.665 0 Td [(function, )-15(as )-15(we )-15(show )-15(in )-15(Figur)]TJ 0.2655 Tc 13.164 0 Td (e9)Tj 0 Tc 1.244 0 Td [(.9. )-265(The)-266(for)18(egr)18(ound )-15(pr)18(ocess )-15(gr)17(oup)]TJ -27.026 -1.25 Td [(ID )-12(is )-12(an )-12(attribute )-12(of )-12(the )-12(terminal, )-12(not )-12(the )-12(pr)19(ocess. )-262(This)-262(value )-12(fr)18(om )-12(the )-12(terminal )-12(device )-12(driver )-12(is)]TJ -0 -1.25 Td (what)Tj /TT1 1 Tf 2.497 0 Td (ps)Tj /T1_0 1 Tf 1.455 0 Td [(prints )-5(as )-5(the )-5(TPGID.)-505(If )-5(it )-5(\336nds )-5(that )-5(the )-5(session )-5(doesn\325t )-5(have )-5(a )-5(contr)18(olling )-5(terminal,)]TJ /TT1 1 Tf 36.847 0 Td (ps)Tj /T1_0 1 Tf -40.8 -1.25 Td (prints either 0 or)Tj /TT2 1 Tf 7.612 0 Td (!)Tj /T1_0 1 Tf (1, depending on the platform.)Tj 9.9994 0 0 9.9994 129.5931 214.6671 Tm [(If we execute the command in the backgr)18(ound,)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.592 197.9681 Tm (ps -o pid,ppid,pgid,sid,comm &)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5931 179.9692 Tm [(the only value that changes is the pr)18(ocess ID of the command:)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 158.3914 164.34 Tm [(PID )-600(PPID )-600(PGID)-1800(SID COMMAND)]TJ 0 -1.189 TD [(949 )-1200(947 )-1200(949 )-1200(949)-600(sh)]TJ -0.6 -1.189 Td [(1812 )-1200(949 )-1200(949 )-1200(949)-600(ps)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46813 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(9.8)]TJ 38.524 0 Td [(Job )-250(Contr)18(ol)]TJ /T1_1 1 Tf 7.309 0 Td (299)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Most )-61(applications )-61(don\325t )-61(call )-61(these )-61(two )-61(functions )-61(dir)20(ectly)]TJ 0.5607 Tc 25.074 0 Td (.I)Tj 0 Tc 1.148 0 Td [(nstead, )-61(the )-61(functions )-61(ar)19(e)]TJ -28.022 -1.2 Td [(normally called by job-contr)18(ol shells.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 1.926 0 Td (tcgetsid)Tj /T1_0 1 Tf 5.052 0 Td [(function )-2(allows )-2(an )-2(application )-2(to )-2(obtain )-2(the )-2(pr)18(ocess )-2(gr)21(oup )-2(ID )-2(for )-2(the)]TJ -8.777 -1.2 Td [(session leader given a \336le descriptor for the contr)18(olling TTY)111(.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.591 616.263 Tm (#include )Tj 0 -1.783 TD (pid_t tcgetsid\(int)Tj /T1_2 1 Tf 11.4 0 Td (fd)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 1.161 -1.783 Td [(Returns: session leader)-74(\325s pr)18(ocess gr)18(oup ID if OK,)]TJ /TT1 1 Tf 21.903 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5797.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 566.1321 Tm [(Applications )-306(that )-306(need )-306(to )-306(manage )-306(contr)18(olling )-306(terminals )-306(can )-306(use)]TJ /TT0 1 Tf 30.972 0 Td (tcgetsid)Tj /T1_0 1 Tf 5.356 0 Td (to)Tj -38.128 -1.2 Td [(identify )-78(the )-78(session )-78(ID )-78(of )-78(the )-78(contr)19(olling )-78(terminal\325s )-78(session )-78(leader )-78(\(which )-78(is )-78(equivalent)]TJ 0 -1.2 TD [(to the session leader)-74(\325s pr)18(ocess gr)18(oup ID\).)]TJ /TT2 1 Tf 11.9986 0 0 11.9986 93.5887 506.1393 Tm [(9.8 )-1332(Job)-556(Contr)20(ol)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5843 484.5418 Tm [(Job )-97(contr)18(ol )-97(is )-97(a )-97(featur)]TJ 0.3467 Tc 9.764 0 Td (et)Tj 0 Tc 1.152 0 Td [(hat )-97(was )-97(added )-97(to )-97(BSD )-97(ar)18(ound )-97(1980.)-597(This )-97(featur)]TJ 0.3467 Tc 21.781 0 Td (ea)Tj 0 Tc 1.326 0 Td [(llows )-97(us )-97(to)]TJ -34.022 -1.2 Td [(start )-153(multiple )-153(jobs )-153(\(gr)18(oups )-153(of )-153(pr)18(ocesses\) )-153(fr)18(om )-153(a )-153(single )-153(terminal )-153(and )-153(to )-153(contr)19(ol )-153(which)]TJ T* [(jobs )-187(can )-187(access )-187(the )-187(terminal )-187(and )-187(which )-187(jobs )-187(ar)]TJ 0.4375 Tc 21.692 0 Td (er)Tj 0 Tc 1.304 0 Td [(un )-187(in )-187(the )-187(backgr)17(ound. )-437(Job)-438(contr)18(ol)]TJ -0.018 Tc -22.995 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(es thr)18(ee forms of support:)]TJ 0.944 -1.8 Td [(1. )-633(A)-250(shell that supports job contr)18(ol)]TJ 0 -1.48 TD [(2. )-633(The)-250(terminal driver in the kernel must support job contr)18(ol)]TJ T* [(3. )-633(The)-250(kernel must support certain job-contr)18(ol signals)]TJ 7.999 0 0 7.999 183.5786 378.5546 Tm [(SVR3 )-67(pr)18(ovided )-67(a )-67(dif)17(fer)18(ent )-67(form )-67(of )-67(job )-67(contr)18(ol )-67(called)]TJ /T1_2 1 Tf 23.741 0 Td [(shell )-67(layers)]TJ /T1_0 1 Tf 0.5673 Tc (.T)Tj 0 Tc 5.971 0 Td [(he )-67(BSD )-67(form )-67(of )-67(job )-67(contr)17(ol,)]TJ -29.712 -1.25 Td (however)Tj 0.4066 Tc 3.806 0 Td (,w)Tj 0 Tc 1.491 0 Td [(as )-156(selected )-156(by )-156(POSIX.1 )-156(and )-156(is )-156(what )-156(we )-156(describe )-156(her)14(e. )-406(In)-407(earlier )-156(versions )-156(of )-156(the)]TJ -5.297 -1.25 Td [(standar)18(d, job contr)18(ol support was optional, but POSIX.1 now r)18(equir)18(es platforms to support it.)]TJ 9.9988 0 0 9.9988 147.5832 335.5597 Tm [(Fr)18(om )-157(our )-157(perspective, )-157(when )-157(using )-157(job )-157(contr)18(ol )-157(fr)16(om )-157(a )-157(shell, )-157(we )-157(can )-157(start )-157(a )-157(job )-157(in)]TJ -1.8 -1.2 Td [(either )-14(the )-14(for)19(egr)18(ound )-14(or )-14(the )-14(backgr)19(ound. )-264(A)-263(job )-14(is )-14(simply )-14(a )-14(collection )-14(of )-14(pr)20(ocesses, )-13(often)]TJ 0.25 Tc -0 -1.2 Td (ap)Tj 0 Tc 1.351 0 Td [(ipeline of pr)18(ocesses. )-250(For)-250(example,)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5833 294.8646 Tm (vi main.c)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5854 276.8668 Tm [(starts a job consisting of one pr)18(ocess in the for)18(egr)18(ound. )-250(The)-250(commands)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5835 260.1688 Tm (pr *.c | lpr &)Tj 0 -1.189 TD (make all &)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5856 231.4722 Tm [(start )-90(two )-90(jobs )-90(in )-90(the )-90(backgr)19(ound. )-340(All)-340(the )-90(pr)18(ocesses )-90(invoked )-90(by )-90(these )-90(backgr)19(ound )-90(jobs)]TJ 0 -1.2 TD [(ar)18(e)-250(in)-250(the backgr)18(ound.)]TJ 1.8 -1.2 Td [(As )-61(we )-61(said, )-61(to )-61(use )-61(the )-61(featur)18(es )-61(pr)18(ovided )-61(by )-61(job )-61(contr)13(ol, )-61(we )-61(need )-61(to )-61(use )-61(a )-61(shell )-61(that)]TJ -1.8 -1.2 Td [(supports )-88(job )-88(contr)18(ol. )-338(W)55(ith )-88(older )-88(systems, )-88(it )-88(was )-88(simple )-88(to )-88(say )-88(which )-88(shells )-88(supported)]TJ 0 -1.2 Td [(job )-6(contr)18(ol )-6(and )-6(which )-6(didn\325t.)-506(The )-6(C )-6(shell )-6(supported )-6(job )-6(contr)18(ol, )-6(the )-6(Bourne )-6(shell )-6(didn\325t,)]TJ T* [(and )-29(it )-29(was )-29(an )-29(option )-29(with )-29(the )-29(Korn )-29(shell, )-29(depending )-29(on )-29(whether )-29(the )-29(host )-29(supported )-29(job)]TJ T* [(contr)18(ol. )-331(But)-330(the )-81(C )-81(shell )-81(has )-81(been )-81(ported )-81(to )-81(systems )-81(\(e.g., )-81(earlier )-81(versions )-81(of )-81(System )-81(V\))]TJ T* [(that )-83(don\325t )-83(support )-83(job )-83(contr)20(ol, )-83(and )-83(the )-83(SVR4 )-83(Bourne )-83(shell, )-83(when )-83(invoked )-83(by )-83(the )-83(name)]TJ /TT0 1 Tf T* (jsh)Tj /T1_0 1 Tf 2.065 0 Td [(instead )-15(of)]TJ /TT0 1 Tf 4.622 0 Td (sh)Tj /T1_0 1 Tf 0.2652 Tc (,s)Tj 0 Tc 2.139 0 Td [(upports )-15(job )-15(contr)18(ol. )-265(The)-265(Korn )-15(shell )-15(continues )-15(to )-15(support )-15(job )-15(contr)17(ol)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46814 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (298)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Relationships)]TJ 39.241 0 Td [(Chapter )-250(9)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1839.25 6670.25 cm 0 0 m 2814 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 311.7573 658.9605 Tm [(Fr)18(eeBSD )-1416(Linux)-1382(Mac OS X)-1198(Solaris)]TJ 1.275 -1.25 Td [(8.0 )-2993(3.2.0)-2618(10.6.8 )-2868(10)]TJ -11.653 0.625 Td (Method)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1839.25 6450.25 cm 0 0 m 2814 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1839.25 6430.25 cm 0 0 m 2814 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 187.8935 634.9238 Tm (open)Tj /T1_1 1 Tf 2.65 0 Td (without)Tj /TT0 1 Tf 3.758 0 Td (O_NOCTTY)Tj /T1_1 1 Tf 4.262 Tc 15.54 0 Td (\245\245\245)Tj /TT0 1 Tf 0 Tc -21.948 -1.25 Td (TIOCSCTTY ioctl)Tj /T1_1 1 Tf 9.25 0 Td [(command )-3131(\245)]TJ 4.262 Tc 12.698 0 Td (\245\245\245)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1839.25 6210.25 cm 0 0 m 2814 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3035.25 6210.25 cm 0 0 m 0 460 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4653.25 6210.25 cm 0 0 m 0 460 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1839.25 6210.25 cm 0 0 m 0 460 l S Q Q BT /T1_0 1 Tf 0 Tc 7.9986 0 0 7.9986 197.1845 602.8915 Tm (Figure 9.8)Tj /T1_1 1 Tf 5.195 0 Td [(How various implementations allocate contr)18(olling terminals)]TJ 9.9982 0 0 9.9982 147.5735 576.4962 Tm (Ther)Tj 0.2507 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.23 0 Td [(re )-37(t)]TJ 0 Tc 1.433 0 Td [(imes )-1(when )-1(a )-1(pr)18(ogram )-1(wants )-1(to )-1(talk )-1(to )-1(the )-1(contr)18(olling )-1(terminal, )-1(r)21(egar)18(dless)]TJ -6.513 -1.2 Td [(of )-153(whether )-153(the )-153(standar)]TJ 0.4027 Tc 10.471 0 Td (di)Tj 0 Tc 1.305 0 Td [(nput )-153(or )-153(standar)]TJ 0.4027 Tc 7.178 0 Td (do)Tj 0 Tc 1.56 0 Td [(utput )-153(is )-153(r)19(edir)18(ected. )-403(The)-402(way )-153(a )-153(pr)19(ogram)]TJ -20.514 -1.2 Td [(guarantees )-132(that )-132(it )-132(is )-132(talking )-132(to )-132(the )-132(contr)18(olling )-132(terminal )-132(is )-132(to)]TJ /TT0 1 Tf 27.641 0 Td (open)Tj /T1_1 1 Tf 2.782 0 Td [(the )-132(\336le)]TJ /TT0 1 Tf 3.526 0 Td (/dev/tty)Tj /T1_1 1 Tf (.)Tj -33.95 -1.2 Td [(This )-65(special )-65(\336le )-65(is )-65(a )-65(synonym )-65(within )-65(the )-65(kernel )-65(for )-65(the )-65(contr)19(olling )-65(terminal.)-565(Naturally)111(,)]TJ -0 -1.2 Td [(if the pr)18(ogram doesn\325t have a contr)18(olling terminal, the)]TJ /TT0 1 Tf 24.207 0 Td (open)Tj /T1_1 1 Tf 2.65 0 Td (of this device will fail.)Tj -25.057 -1.2 Td [(The )-225(classic )-225(example )-225(is )-225(the)]TJ /TT0 1 Tf 12.719 0 Td (getpass)Tj /T1_1 1 Tf 4.2 0.04 Td (\()Tj 0.333 -0.04 Td (3)Tj 0.5 0.04 Td (\))Tj 0.808 -0.04 Td [(function, )-225(which )-225(r)18(eads )-225(a )-225(passwor)]TJ 0.4751 Tc 15.188 0 Td (d\()Tj 0 Tc 1.419 0 Td (with)Tj -36.967 -1.2 Td [(terminal )-1(echoing )-1(turned )-1(of)18(f, )-1(of )-1(course\).)-501(This )-1(function )-1(is )-1(called )-1(by )-1(the)]TJ /TT0 1 Tf 30.725 0 Td (crypt)Tj /T1_1 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.584 -0.04 Td [(pr)18(ogram)]TJ -35.142 -1.2 Td [(and can be used in a pipeline.)-500(For example,)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.5734 474.7446 Tm (crypt < salaries | lpr)Tj /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 455.6782 Tm [(decrypts )-90(the )-90(\336le)]TJ /TT0 1 Tf 7.618 0 Td (salaries)Tj /T1_1 1 Tf 5.14 0 Td [(and )-90(pipes )-90(the )-90(output )-90(to )-90(the )-90(print )-90(spooler)]TJ 0.5899 Tc 18.522 0 Td (.B)Tj 0 Tc 1.451 0 Td (ecause)Tj /TT0 1 Tf 3.269 0 Td (crypt)Tj /T1_1 1 Tf -0.018 Tc -36 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ads )-95(its )-95(input )-95(\336le )-95(on )-95(its )-95(standar)]TJ 0.3448 Tc 13.912 0 Td (di)Tj 0 Tc 1.247 0 Td [(nput, )-95(the )-95(standar)]TJ 0.3448 Tc 7.759 0 Td (di)Tj 0 Tc 1.247 0 Td [(nput )-95(can\325t )-95(be )-95(used )-95(to )-95(enter )-95(the)]TJ -25.02 -1.2 Td [(passwor)18(d. )-336(Also,)]TJ /TT0 1 Tf 7.777 0 Td (crypt)Tj /T1_1 1 Tf 3.336 0 Td [(is )-86(designed )-86(so )-86(that )-86(we )-86(have )-86(to )-86(enter )-86(the )-86(encryption )-86(passwor)21(d)]TJ -11.113 -1.2 Td [(each )-47(time )-47(we )-47(r)8(un )-47(the )-47(pr)18(ogram, )-47(to )-47(pr)18(event )-47(us )-47(fr)18(om )-47(saving )-47(the )-47(passwor)18(d)-297(in)-297(a)-297(\336le )-47(\(which)]TJ 0 -1.2 Td (could be a security hole\).)Tj 1.8 -1.2 Td (Ther)Tj 0.4332 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.412 0 Td [(re )-219(k)]TJ 0 Tc 1.845 0 Td [(nown )-183(ways )-183(to )-183(br)17(eak )-183(the )-183(encoding )-183(used )-183(by )-183(the)]TJ /TT0 1 Tf 22.184 0 Td (crypt)Tj /T1_1 1 Tf 3.433 0 Td [(pr)18(ogram. )-433(See)]TJ -32.726 -1.2 Td (Gar\336nkel et al.)Tj 6.767 0.04 Td ([)Tj 0.333 -0.04 Td (2003)Tj 2 0.04 Td (])Tj 0.583 -0.04 Td (for mor)Tj 0.25 Tc 3.33 0 Td (ed)Tj 0 Tc 1.34 0 Td (etails on encrypting \336les.)Tj /TT1 1 Tf 11.9978 0 0 11.9978 93.5839 347.6976 Tm (9.7)Tj /TT2 1 Tf 3 0 Td (tcgetpgrp)Tj /TT1 1 Tf (,)Tj /TT2 1 Tf 6.234 0 Td (tcsetpgrp)Tj /TT1 1 Tf 0.556 Tc (,a)Tj 0 Tc 6.79 0 Td (nd)Tj /TT2 1 Tf 1.778 0 Td (tcgetsid)Tj /TT1 1 Tf 5.356 0 Td (Functions)Tj /T1_1 1 Tf -0.092 Tc 9.9982 0 0 9.9982 129.5771 323.7019 Tm [(We )-240(n)]TJ 0 Tc 2.275 0 Td [(eed )-56(a )-56(way )-56(to )-56(tell )-56(the )-56(kernel )-56(which )-56(pr)18(ocess )-56(gr)18(oup )-56(is )-56(the )-56(for)16(egr)18(ound )-56(pr)18(ocess )-56(gr)18(oup,)]TJ -2.275 -1.2 Td [(so )-198(that )-198(the )-198(terminal )-198(device )-198(driver )-198(knows )-198(wher)15(e)-448(to)-448(s)-1(end )-198(the )-198(terminal )-198(input )-198(and )-198(the)]TJ 0 -1.2 Td (terminal-generated signals \(Figur)Tj 0.25 Tc 14.771 0 Td (e9)Tj 0 Tc 1.229 0 Td (.7\).)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.574 281.8095 Tm (#include )Tj 0 -1.902 TD (pid_t tcgetpgrp\(int)Tj /T1_2 1 Tf 12 0 Td (fd)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -5.105 -1.902 Td [(Returns: pr)18(ocess gr)18(oup ID of for)18(egr)18(ound pr)18(ocess gr)18(oup if OK,)]TJ /TT3 1 Tf 27.569 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -34.464 -1.902 Td (int tcsetpgrp\(int)Tj /T1_2 1 Tf 10.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,p)Tj 0 Tc 2.578 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (pgrpid)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 10.473 -1.902 Td (Returns: 0 if OK,)Tj /TT3 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2089.25 cm 0 0 m 0 819 l 3900 819 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9976 0 0 9.9976 129.5689 194.1334 Tm [(The )-25(function)]TJ /TT0 1 Tf 5.931 0 Td (tcgetpgrp)Tj /T1_1 1 Tf -0.018 Tc 5.675 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-25(the )-25(pr)18(ocess )-25(gr)17(oup )-25(ID )-25(of )-25(the )-25(for)17(egr)18(ound )-25(pr)18(ocess )-25(gr)17(oup)]TJ -12.463 -1.2 Td (associated with the terminal open on)Tj /T1_2 1 Tf 16.548 0 Td (fd)Tj /T1_1 1 Tf (.)Tj -14.748 -1.2 Td [(If )-64(the )-64(pr)18(ocess )-64(has )-64(a )-64(contr)20(olling )-64(terminal, )-64(the )-64(pr)18(ocess )-64(can )-64(call)]TJ /TT0 1 Tf 27.371 0 Td (tcsetpgrp)Tj /T1_1 1 Tf 5.714 0 Td [(to )-64(set )-64(the)]TJ -34.885 -1.2 Td [(for)18(egr)18(ound )-76(pr)18(ocess )-76(gr)18(oup )-76(ID )-76(to)]TJ /T1_2 1 Tf 14.604 0 Td (pgrpid)Tj /T1_1 1 Tf 0.5765 Tc (.T)Tj 0 Tc 4.106 0 Td [(he )-76(value )-76(of)]TJ /T1_2 1 Tf 5.357 0 Td (pgrpid)Tj /T1_1 1 Tf 2.994 0 Td [(must )-76(be )-76(the )-76(pr)18(ocess )-76(gr)16(oup)]TJ -27.061 -1.2 Td [(ID )-60(of )-60(a )-60(pr)18(ocess )-60(gr)18(oup )-60(in )-60(the )-60(same )-60(session, )-60(and)]TJ /T1_2 1 Tf 21.226 0 Td (fd)Tj /T1_1 1 Tf 1.088 0 Td [(must )-60(r)18(efer )-60(to )-60(the )-60(contr)18(olling )-60(terminal)]TJ -22.314 -1.2 Td (of the session.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46815 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (296)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Relationships)]TJ 39.241 0 Td [(Chapter )-250(9)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(This )-71(function )-71(r)18(eturns )-71(an )-71(err)19(or )-71(if )-71(the )-71(caller )-71(is )-71(alr)18(eady )-71(a )-71(pr)18(ocess )-71(gr)18(oup )-71(leader)]TJ 0.5709 Tc 33.847 0 Td (.T)Tj 0.3209 Tc 1.342 0 Td (oe)Tj 0 Tc 1.346 0 Td [(nsur)18(e)]TJ -36.535 -1.2 Td [(this )-38(is )-38(not )-38(the )-38(case, )-38(the )-38(usual )-38(practice )-38(is )-38(to )-38(call)]TJ /TT0 1 Tf 20.846 0 Td (fork)Tj /T1_1 1 Tf 2.688 0 Td [(and )-38(have )-38(the )-38(par)18(ent )-38(terminate )-38(and)]TJ -23.534 -1.2 Td [(the )-203(child )-203(continue.)]TJ -0.092 Tc 9.319 0 Td [(We )-388(a)]TJ -0.018 Tc 2.341 0 Td [(re )-240(g)]TJ 0 Tc 1.866 0 Td [(uaranteed )-203(that )-203(the )-203(child )-203(is )-203(not )-203(a )-203(pr)18(ocess )-203(gr)18(oup )-203(leader)70(,)]TJ -13.525 -1.2 Td [(because )-34(the )-34(pr)18(ocess )-34(gr)18(oup )-34(ID )-34(of )-34(the )-34(par)20(ent )-34(is )-34(inherited )-34(by )-34(the )-34(child, )-34(but )-34(the )-34(child )-34(gets )-34(a)]TJ 0 -1.2 TD [(new )-60(pr)18(ocess )-60(ID.)-559(Hence, )-60(it )-60(is )-60(impossible )-60(for )-60(the )-60(child\325s )-60(pr)18(ocess )-60(ID )-60(to )-60(equal )-60(its )-60(inherited)]TJ T* [(pr)18(ocess gr)18(oup ID.)]TJ 1.8 -1.2 Td [(The )-257(Single )-257(UNIX )-257(Speci\336cation )-257(talks )-257(only )-257(about )-257(a )-257(\324)38(\324session )-257(leader)]TJ -0.037 Tc 30.825 0 Td (\325\325)Tj 0.5068 Tc 0.519 0 Td (;t)Tj 0 Tc 1.083 0 Td [(her)18(e)-507(is)-507(no)]TJ -0.037 Tc -34.227 -1.2 Td (\324\324)Tj 0 Tc 0.519 0 Td [(session )-58(ID\325)]TJ 0.3079 Tc 4.83 0 Td (\325s)Tj 0 Tc 1.01 0 Td [(imilar )-58(to )-58(a )-58(pr)18(ocess )-58(ID )-58(or )-58(a )-58(pr)18(ocess )-58(gr)19(oup )-58(ID.)-558(Obviously)]TJ 0.308 Tc 25.042 0 Td (,as)Tj 0 Tc 1.79 0 Td [(ession )-58(leader)]TJ -33.191 -1.2 Td [(is )-20(a )-20(single )-20(pr)18(ocess )-20(that )-20(has )-20(a )-20(unique )-20(pr)18(ocess )-20(ID, )-20(so )-20(we )-20(could )-20(talk )-20(about )-20(a )-20(session )-20(ID )-20(that)]TJ T* [(is )-86(the )-86(pr)17(ocess )-86(ID )-86(of )-86(the )-86(session )-86(leader)]TJ 0.5864 Tc 16.98 0 Td (.T)Tj 0 Tc 1.449 0 Td [(his )-86(concept )-86(of )-86(a )-86(session )-86(ID )-86(was )-86(intr)18(oduced )-86(in)]TJ -18.429 -1.2 Td [(SVR4. )-325(Historically)]TJ 0.3247 Tc 8.316 0 Td (,B)Tj 0 Tc 1.186 0 Td (SD)Tj 1.299 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-75(systems )-75(didn\325t )-75(support )-75(this )-75(notion, )-75(but )-75(have )-75(since )-75(been)]TJ -11.133 -1.2 Td [(updated )-33(to )-33(include )-33(it.)-532(The)]TJ /TT0 1 Tf 12.109 0 Td (getsid)Tj /T1_1 1 Tf 3.883 0 Td [(function )-33(r)18(eturns )-33(the )-33(pr)18(ocess )-33(gr)18(oup )-33(ID )-33(of )-33(a )-33(pr)19(ocess\325s)]TJ -15.992 -1.2 Td [(session leader)74(.)]TJ 7.9995 0 0 7.9995 183.5896 504.9697 Tm [(Some )-46(implementations, )-46(such )-46(as )-46(Solaris, )-46(join )-46(with )-46(the )-46(Single )-46(UNIX )-46(Speci\336cation )-46(in )-46(the )-46(practice)]TJ 0 -1.25 TD [(of )-91(avoiding )-91(the )-91(use )-91(of )-91(the )-91(phrase )-91(\324)37(\324session )-91(ID,\325)]TJ 0.3411 Tc 20.981 0 Td (\325o)Tj 0 Tc 1.165 0 Td [(pting )-91(instead )-91(to )-91(r)18(efer )-91(to )-91(this )-91(as )-91(the )-91(\324)35(\324pr)18(ocess)]TJ -22.146 -1.25 Td [(gr)18(oup )-42(ID )-42(of )-42(the )-42(session )-42(leader)75(.\325)]TJ 0.5419 Tc 13.861 0 Td (\325T)Tj 0 Tc 1.433 0 Td [(he )-42(two )-42(ar)]TJ 0.2918 Tc 4.228 0 Td (ee)Tj 0 Tc 1.25 0 Td [(quivalent, )-42(since )-42(the )-42(session )-42(leader )-42(is )-42(always )-42(the)]TJ -20.772 -1.25 Td [(leader of a pr)18(ocess gr)18(oup.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5916 449.873 Tm (#include )Tj 0 -1.902 TD (pid_t getsid\(pid_t)Tj /T1_2 1 Tf 11.4 0 Td (pid)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 1.161 -1.902 Td [(Returns: session leader)-74(\325s pr)18(ocess gr)18(oup ID if OK,)]TJ /TT1 1 Tf 21.903 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4111.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 395.2126 Tm (If)Tj /T1_2 1 Tf 1.004 0 Td (pid)Tj /T1_1 1 Tf 1.612 0 Td [(is )-84(0,)]TJ /TT0 1 Tf 2.132 0 Td (getsid)Tj /T1_1 1 Tf -0.018 Tc 3.934 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-84(the )-84(pr)18(ocess )-84(gr)19(oup )-84(ID )-84(of )-84(the )-84(calling )-84(pr)18(ocess\325s )-84(session )-84(leader)75(.)]TJ -9.538 -1.2 Td [(For )-331(security )-331(r)18(easons, )-331(some )-331(implementations )-331(may )-331(r)18(estrict )-331(the )-331(calling )-331(pr)18(ocess )-331(fr)18(om)]TJ 0 -1.2 TD [(obtaining )-110(the )-110(pr)18(ocess )-110(gr)18(oup )-110(ID )-110(of )-110(the )-110(session )-110(leader )-110(if)]TJ /T1_2 1 Tf 25.122 0 Td (pid)Tj /T1_1 1 Tf 1.638 0 Td [(doesn\325t )-110(belong )-110(to )-110(the )-110(same)]TJ -26.76 -1.2 Td [(session as the caller)74(.)]TJ /TT2 1 Tf 11.9986 0 0 11.9986 93.5891 323.2212 Tm [(9.6 )-1332(Contr)20(olling )-278(T)60(erminal)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5848 299.2241 Tm [(Sessions and pr)18(ocess gr)18(oups have a few other characteristics.)]TJ 0.883 Tc 1.8 -1.92 Td (\245A)Tj 0 Tc 2.731 0 Td [(session )-214(can )-214(have )-214(a )-214(single)]TJ /T1_2 1 Tf 12.266 0 Td [(contr)18(olling )-214(terminal)]TJ /T1_1 1 Tf 0.7142 Tc (.T)Tj 0 Tc 9.931 0 Td [(his )-214(is )-214(usually )-214(the )-214(terminal)]TJ -23.44 -1.2 Td [(device )-2(\(in )-2(the )-2(case )-2(of )-2(a )-2(terminal )-2(login\) )-2(or )-2(pseudo )-2(terminal )-2(device )-2(\(in )-2(the )-2(case )-2(of )-2(a)]TJ T* (network login\) on which we log in.)Tj 0.883 Tc -1.489 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-99(session )-99(leader )-99(that )-99(establishes )-99(the )-99(connection )-99(to )-99(the )-99(contr)14(olling )-99(terminal )-99(is)]TJ -0.613 -1.2 Td (called the)Tj /T1_2 1 Tf 4.503 0 Td [(contr)18(olling pr)18(ocess)]TJ /T1_1 1 Tf (.)Tj 0.883 Tc -5.992 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-230(pr)18(ocess )-230(gr)18(oups )-230(within )-230(a )-230(session )-230(can )-230(be )-230(divided )-230(into )-230(a )-230(single)]TJ /T1_2 1 Tf 30.689 0 Td [(for)18(egr)18(ound)]TJ -31.302 -1.2 Td [(pr)18(ocess gr)18(oup)]TJ /T1_1 1 Tf 5.76 0 Td [(and one or mor)18(e)]TJ /T1_2 1 Tf 7.526 0 Td [(backgr)18(ound pr)18(ocess gr)18(oups)]TJ /T1_1 1 Tf (.)Tj 0.883 Tc -14.775 -1.6 Td (\245I)Tj 0.331 Tc 1.826 0 Td (fas)Tj 0 Tc 1.919 0 Td [(ession )-81(has )-81(a )-81(contr)18(olling )-81(terminal, )-81(it )-81(has )-81(a )-81(single )-81(for)19(egr)18(ound )-81(pr)18(ocess )-81(gr)18(oup)]TJ -2.256 -1.2 Td [(and all other pr)18(ocess gr)18(oups in the session ar)]TJ 0.25 Tc 19.812 0 Td (eb)Tj 0 Tc 1.282 0 Td [(ackgr)18(ound pr)18(ocess gr)18(oups.)]TJ 0.883 Tc -22.583 -1.6 Td (\245W)Tj 0 Tc 2.489 0 Td [(henever )-124(we )-124(pr)18(ess )-124(the )-124(terminal\325s )-124(interr)8(upt )-124(key )-124(\(often )-124(DELETE )-124(or )-124(Contr)16(ol)]TJ 33.086 0.09 Td (-)Tj 0.333 -0.09 Td (C\),)Tj -34.419 -1.2 Td [(the interr)8(upt signal is sent to all pr)18(ocesses in the for)18(egr)18(ound pr)18(ocess gr)18(oup.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46816 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(9.5)]TJ 40.138 0 Td (Sessions)Tj /T1_1 1 Tf 5.695 0 Td (295)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(9.5 )-1332(Sessions)]TJ /T1_0 1 Tf 0.2603 Tc 9.9994 0 0 9.9994 129.5922 644.9613 Tm (As)Tj 0 Tc 1.462 0 Td [(ession )-10(is )-10(a )-10(collection )-10(of )-10(one )-10(or )-10(mor)]TJ 0.2604 Tc 15.257 0 Td (ep)Tj -0.018 Tc 1.34 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-10(gr)18(oups. )-260(For)-261(example, )-10(we )-10(could )-10(have )-10(the)]TJ -18.982 -1.2 Td [(arrangement )-259(shown )-259(in )-259(Figur)]TJ 0.5095 Tc 13.43 0 Td (e9)Tj 0 Tc 1.489 0 Td [(.6. )-509(Her)18(e)-509(we)-509(h)-1(ave )-259(thr)18(ee )-259(pr)18(ocess )-259(gr)18(oups )-259(in )-259(a )-259(single)]TJ -14.918 -1.2 Td (session.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1662 5474 432 216 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 169.4477 556.3732 Tm (login shell)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2454 5474 432 216 re S Q BT /TT1 1 Tf 7.9986 0 0 7.9986 254.9541 556.3398 Tm (proc1)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 3030 5474 432 216 re S Q BT /TT1 1 Tf 7.9981 0 0 7.9981 312.525 556.3065 Tm (proc2)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 3822 5474 432 216 re S Q BT /TT1 1 Tf 7.9976 0 0 7.9976 391.6825 556.2731 Tm (proc3)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 4398 5474 432 216 re S Q BT /TT1 1 Tf 7.9971 0 0 7.9971 449.2382 556.2397 Tm (proc4)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 4110 5042 432 216 re S Q BT /TT1 1 Tf 7.9966 0 0 7.9966 420.4234 513.0245 Tm (proc5)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1590.25 5402.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1590.25 5467.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1590.25 5531.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1590.25 5596.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1590.25 5661.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1590.25 5726.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1657.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1725.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1792.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1860.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1927.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1995.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2062.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2130.25 5762.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2166.25 5697.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2166.25 5632.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2166.25 5567.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2166.25 5503.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2166.25 5438.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2098.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2031.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1963.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1896.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1828.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1761.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1693.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1626.25 5402.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 162.8098 529.5857 Tm [(pr)18(ocess gr)18(oup)]TJ ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5402.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5467.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5531.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5596.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5661.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5726.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2452.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2521.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2591.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2661.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2730.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2800.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2870.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2940.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3010.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3079.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3149.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3218.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3288.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3358.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3428.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3498.25 5762.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 5697.25 cm 0 0 m 0 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 5632.25 cm 0 0 m 0 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 5567.25 cm 0 0 m 0 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 5503.25 cm 0 0 m 0 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 5438.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3464.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3394.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3324.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3254.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3185.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3115.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3046.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2976.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2906.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2836.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2766.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2696.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2627.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2557.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2488.25 5402.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2418.25 5402.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 270.7418 529.554 Tm [(pr)18(ocess gr)18(oup)]TJ ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 4970.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5038.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5107.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5176.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5245.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5313.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5382.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5451.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5520.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5588.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5657.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5726.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3824.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3899.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3973.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4047.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4122.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4196.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4270.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4345.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4419.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4494.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4568.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4643.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4717.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4792.25 5762.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4866.25 5762.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5693.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5624.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5556.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5487.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5418.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5349.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5281.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5212.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5143.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5074.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5006.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4828.25 4970.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 4970.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4679.25 4970.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4604.25 4970.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4530.25 4970.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4455.25 4970.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4381.25 4970.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4306.25 4970.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4232.25 4970.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4158.25 4970.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4083.25 4970.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4009.25 4970.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3935.25 4970.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3860.25 4970.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 4970.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 407.4435 486.3481 Tm [(pr)18(ocess gr)18(oup)]TJ ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1374.25 4754.25 cm 0 0 m 0 144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1374.25 5024.25 cm 0 0 m 0 144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1374.25 5294.25 cm 0 0 m 0 144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1374.25 5564.25 cm 0 0 m 0 144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1374.25 5834.25 cm 0 0 m 0 144 l 144 144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1674.25 5978.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1974.25 5978.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2274.25 5978.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2574.25 5978.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2874.25 5978.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3174.25 5978.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3474.25 5978.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3774.25 5978.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4074.25 5978.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4374.25 5978.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4674.25 5978.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4974.25 5978.25 cm 0 0 m 144 0 l 144 -144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5118.25 5708.25 cm 0 0 m 0 -144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5118.25 5438.25 cm 0 0 m 0 -144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5118.25 5168.25 cm 0 0 m 0 -144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5118.25 4898.25 cm 0 0 m 0 -144 l -144 -144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4818.25 4754.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4518.25 4754.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4218.25 4754.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3918.25 4754.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3618.25 4754.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3318.25 4754.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3018.25 4754.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2718.25 4754.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2418.25 4754.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2118.25 4754.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1818.25 4754.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1518.25 4754.25 cm 0 0 m -144 0 l S Q Q BT /T1_0 1 Tf 9.9934 0 0 9.9934 308.5463 461.1355 Tm (session)Tj /T1_1 1 Tf 7.9947 0 0 7.9947 198.8247 442.7079 Tm (Figure 9.6)Tj /T1_0 1 Tf 5.195 0 Td [(Arrangement of pr)18(ocesses into pr)18(ocess gr)18(oups and sessions)]TJ 9.9934 0 0 9.9934 129.5147 412.7277 Tm [(The )-228(pr)18(ocesses )-228(in )-228(a )-228(pr)18(ocess )-228(gr)18(oup )-228(ar)]TJ 0.4783 Tc 16.97 0 Td (eu)Tj 0 Tc 1.56 0 Td [(sually )-228(placed )-228(ther)17(e)-478(by)-478(a)-478(s)-1(hell )-228(pipeline.)-729(For)]TJ -18.53 -1.2 Td [(example, )-224(the )-224(arrangement )-224(shown )-224(in )-224(Figur)]TJ 0.4739 Tc 19.657 0 Td (e9)Tj 0 Tc 1.453 0 Td [(.6 )-224(could )-224(have )-224(been )-224(generated )-224(by )-224(shell)]TJ -21.109 -1.2 Td (commands of the form)Tj /TT1 1 Tf 8.9941 0 0 8.9941 147.503 367.7773 Tm (proc1 | proc2 &)Tj 0 -1.189 TD (proc3 | proc4 | proc5)Tj /T1_0 1 Tf 0.25 Tc 9.9934 0 0 9.9934 147.503 334.8189 Tm (Ap)Tj -0.018 Tc 1.629 0 Td (ro)Tj 0 Tc 0.923 0 Td (cess establishes a new session by calling the)Tj /TT1 1 Tf 19.56 0 Td (setsid)Tj /T1_0 1 Tf 3.85 0 Td (function.)Tj /TT1 1 Tf 8.9941 0 0 8.9941 147.5029 316.9312 Tm (#include )Tj 0 -1.902 TD (pid_t setsid\(void\);)Tj /T1_0 1 Tf 19.762 -1.902 Td [(Returns: pr)18(ocess gr)18(oup ID if OK,)]TJ /TT2 1 Tf 14.702 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099934 0 0 0.099934 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2784.25 cm 0 0 m 0 477 l 3900 477 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9928 0 0 9.9928 129.5067 263.5102 Tm [(If )-79(the )-79(calling )-79(pr)18(ocess )-79(is )-79(not )-79(a )-79(pr)18(ocess )-79(gr)18(oup )-79(leader)]TJ 0.3294 Tc 22.6 0 Td (,t)Tj 0 Tc 0.905 0 Td [(his )-79(function )-79(cr)18(eates )-79(a )-79(new )-79(session.)]TJ -23.505 -1.2 Td [(Thr)18(ee things happen.)]TJ 1.8 -1.92 Td [(1. )-633(The)-336(pr)18(ocess )-86(becomes )-86(the)]TJ /T1_2 1 Tf 13.139 0 Td [(session )-86(leader)]TJ /T1_0 1 Tf 5.894 0 Td [(of )-85(this )-85(new )-85(session.)-585(\(A )-85(session )-85(leader )-85(is)]TJ -17.4 -1.2 Td [(the )-99(pr)18(ocess )-99(that )-99(cr)18(eates )-99(a )-99(session.\))-599(The )-99(pr)18(ocess )-99(is )-99(the )-99(only )-99(pr)18(ocess )-99(in )-99(this )-99(new)]TJ 0 -1.2 TD (session.)Tj -1.633 -1.6 Td [(2. )-633(The)-258(pr)18(ocess )-8(becomes )-8(the )-8(pr)18(ocess )-8(gr)18(oup )-8(leader )-8(of )-8(a )-8(new )-8(pr)18(ocess )-8(gr)22(oup. )-258(The)-257(new)]TJ 1.633 -1.2 Td [(pr)18(ocess gr)18(oup ID is the pr)18(ocess ID of the calling pr)18(ocess.)]TJ -1.633 -1.6 Td [(3. )-633(The)-321(pr)18(ocess )-71(has )-71(no )-71(contr)18(olling )-71(terminal.)-570(\(W)92(e\325ll )-71(discuss )-71(contr)18(olling )-71(terminals )-71(in)]TJ 1.633 -1.2 Td [(the )-341(next )-341(section.\))-841(If )-341(the )-341(pr)16(ocess )-341(had )-341(a )-341(contr)18(olling )-341(terminal )-341(befor)]TJ 0.5914 Tc 31.542 0 Td (ec)Tj 0 Tc 1.514 0 Td (alling)Tj /TT1 1 Tf -33.056 -1.2 Td (setsid)Tj /T1_0 1 Tf 0.25 Tc (,t)Tj 0 Tc 4.426 0 Td [(hat association is br)18(oken.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46817 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(9.4)]TJ 36.721 0 Td [(Pr)18(ocess )-250(Gr)18(oups)]TJ /T1_1 1 Tf 9.112 0 Td (293)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(By )-42(default, )-42(the)]TJ /TT0 1 Tf 6.825 0 Td (telnet)Tj /T1_0 1 Tf 3.892 0 Td [(daemon )-42(is )-42(disabled )-42(on )-42(Mac )-42(OS )-42(X )-42(\(although )-42(it )-42(can )-42(be )-42(enabled )-42(with )-42(the)]TJ /TT0 1 Tf -10.717 -1.25 Td (launchctl)Tj /T1_0 1 Tf 5.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.744 -0.04 Td [(command\). )-411(The)-411(pr)18(eferr)18(ed )-161(way )-161(to )-161(perform )-161(a )-161(network )-161(login )-161(on )-161(Mac )-161(OS )-161(X )-161(is)]TJ -6.977 -1.25 Td (with)Tj /TT0 1 Tf 2.283 0 Td (ssh)Tj /T1_0 1 Tf 0.25 Tc (,t)Tj 0 Tc 2.626 0 Td (he secur)Tj 0.25 Tc 3.638 0 Td (es)Tj 0 Tc 1.153 0 Td (hell command.)Tj /TT1 1 Tf 9.9994 0 0 9.9994 93.5938 622.9626 Tm [(Lin)10(ux Netw)20(ork Logins)]TJ /T1_0 1 Tf 3.6 -2.4 Td [(Network )-36(logins )-36(under )-36(Linux )-36(ar)]TJ 0.2856 Tc 13.95 0 Td (et)Tj 0 Tc 1.091 0 Td [(he )-36(same )-36(as )-36(under )-36(BSD, )-36(except )-36(that )-36(some )-36(distributions)]TJ -15.04 -1.2 Td [(use )-394(an )-394(alternative)]TJ /TT0 1 Tf 9.254 0 Td (inetd)Tj /T1_0 1 Tf 3.644 0 Td [(pr)18(ocess )-394(called )-394(the )-394(extended )-394(Internet )-394(services )-394(daemon,)]TJ /TT0 1 Tf -12.898 -1.2 Td (xinetd)Tj /T1_0 1 Tf 0.6564 Tc (.T)Tj 0 Tc 5.119 0 Td (he)Tj /TT0 1 Tf 1.467 0 Td (xinetd)Tj /T1_0 1 Tf 4.006 0 Td [(pr)18(ocess )-156(pr)18(ovides )-156(a )-156(\336ner )-156(level )-156(of )-156(contr)18(ol )-156(over )-156(services )-156(it )-156(starts)]TJ -10.593 -1.2 Td [(compar)18(ed to)]TJ /TT0 1 Tf 5.813 0 Td (inetd)Tj /T1_0 1 Tf (.)Tj /TT1 1 Tf -9.413 -2.88 Td [(Solaris Netw)20(ork Logins)]TJ /T1_0 1 Tf 3.6 -2.16 Td [(The )-18(scenario )-18(for )-18(network )-18(logins )-18(under )-18(Solaris )-18(is )-18(almost )-18(identical )-18(to )-18(the )-18(steps )-18(under )-18(BSD)]TJ 0 -1.2 TD [(and )-200(Linux.)-701(An)]TJ /TT0 1 Tf 7.507 0 Td (inetd)Tj /T1_0 1 Tf 3.45 0 Td [(server )-200(is )-200(used )-200(that )-200(is )-200(similar )-200(in )-200(concept )-200(to )-200(the )-200(BSD )-200(version,)]TJ -10.958 -1.2 Td [(except )-166(that )-166(the )-166(Solaris )-166(version )-166(r)8(uns )-166(as )-166(a)]TJ /T1_2 1 Tf -0.018 Tc 18.968 0 Td (re)Tj 0 Tc 0.76 0 Td (starter)Tj /T1_0 1 Tf 3.082 0 Td [(in )-166(the )-166(Service )-166(Management )-166(Facility)]TJ -22.81 -1.16 Td (\()Tj 0.333 -0.04 Td (SMF)Tj 2.027 0.04 Td (\))Tj 0.6372 Tc 0.333 -0.04 Td (.A)Tj -0.018 Tc 2.052 0 Td (re)Tj 0 Tc 0.856 0 Td [(starter )-137(is )-137(a )-137(daemon )-137(that )-137(has )-137(the )-137(r)17(esponsibility )-137(to )-137(start )-137(and )-137(monitor )-137(other)]TJ -5.601 -1.2 Td [(daemon )-97(pr)18(ocesses, )-97(and )-97(r)18(estart )-97(them )-97(if )-97(they )-97(fail.)-597(Although )-97(the)]TJ /TT0 1 Tf 28.445 0 Td (inetd)Tj /T1_0 1 Tf 3.347 0 Td [(server )-97(is )-97(started)]TJ -31.792 -1.2 Td [(by )-81(the )-81(master )-81(r)18(estarter )-81(in )-81(the )-81(SMF)]TJ 0.3308 Tc 15.384 0 Td (,t)Tj 0 Tc 0.907 0 Td [(he )-81(master )-81(r)18(estarter )-81(is )-81(started )-81(by)]TJ /TT0 1 Tf 14.639 0 Td (init)Tj /T1_0 1 Tf 2.731 0 Td [(and )-81(we )-81(end)]TJ -33.66 -1.2 Td [(up with the same overall pictur)18(e)-250(as)-250(in)-250(Figur)]TJ 0.25 Tc 19.278 0 Td (e9)Tj 0 Tc 1.229 0 Td (.5.)Tj 7.9995 0 0 7.9995 183.588 420.5748 Tm [(The )-126(Solaris )-126(Service )-126(Management )-126(Facility )-126(is )-126(a )-126(framework )-126(that )-126(manages )-126(and )-126(monitors )-126(system)]TJ 0 -1.25 TD [(services )-229(and )-229(pr)18(ovides )-229(a )-229(way )-229(to )-229(r)18(ecover )-229(fr)18(om )-229(failur)18(es )-229(af)18(fecting )-229(system )-229(services.)-729(For )-229(mor)18(e)]TJ T* [(details )-130(on )-130(the )-130(Service )-130(Management )-130(Facility)]TJ 0.3803 Tc 19.493 0 Td (,s)Tj 0 Tc 1.054 0 Td [(ee )-130(Adams)]TJ 4.915 0.04 Td ([)Tj 0.333 -0.04 Td (2005)Tj 2 0.04 Td (])Tj 0.713 -0.04 Td [(and )-130(the )-130(Solaris )-130(manual )-130(pages)]TJ /TT0 1 Tf -28.508 -1.25 Td (smf)Tj /T1_0 1 Tf (\(5\) and)Tj /TT0 1 Tf 5.159 0 Td (inetd)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1M)Tj 1.446 0.04 Td (\))Tj 0.333 -0.04 Td (.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5933 348.5791 Tm [(9.4 )-1332(Pr)20(ocess )-278(Gr)20(oups)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5911 324.5805 Tm [(In )-206(addition )-206(to )-206(having )-206(a )-206(pr)18(ocess )-206(ID, )-206(each )-206(pr)18(ocess )-206(belongs )-206(to )-206(a )-206(pr)18(ocess )-206(gr)12(oup. )-456(W)92(e\325ll)]TJ -0 -1.2 Td [(encounter pr)18(ocess gr)18(oups again when we discuss signals in Chapter 10.)]TJ 0.2568 Tc 1.8 -1.2 Td (Ap)Tj -0.018 Tc 1.636 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-7(gr)18(oup )-7(is )-7(a )-7(collection )-7(of )-7(one )-7(or )-7(mor)]TJ 0.2569 Tc 17.196 0 Td (ep)Tj -0.018 Tc 1.337 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cesses, )-7(usually )-7(associated )-7(with )-7(the)]TJ -23.815 -1.2 Td [(same )-45(job )-45(\(job )-45(contr)18(ol )-45(is )-45(discussed )-45(in )-45(Section )-45(9.8\), )-45(that )-45(can )-45(r)18(eceive )-45(signals )-45(fr)18(om )-45(the )-45(same)]TJ 0 -1.2 TD [(terminal. )-389(Each)-388(pr)18(ocess )-139(gr)18(oup )-139(has )-139(a )-139(unique )-139(pr)18(ocess )-139(gr)18(oup )-139(ID.)-637(Pr)18(ocess )-139(gr)18(oup )-139(IDs )-139(ar)19(e)]TJ -0 -1.2 Td [(similar )-5(to )-5(pr)18(ocess )-5(IDs: )-5(they )-5(ar)]TJ 0.2552 Tc 13.123 0 Td (ep)Tj 0 Tc 1.335 0 Td [(ositive )-5(integers )-5(and )-5(can )-5(be )-5(stor)18(ed )-5(in )-5(a)]TJ /TT0 1 Tf 16.883 0 Td (pid_t)Tj /T1_0 1 Tf 3.255 0 Td [(data )-5(type.)]TJ -34.596 -1.2 Td (The function)Tj /TT0 1 Tf 5.881 0 Td (getpgrp)Tj /T1_0 1 Tf -0.018 Tc 4.45 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns the pr)18(ocess gr)18(oup ID of the calling pr)18(ocess.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5895 233.486 Tm (#include )Tj 0 -1.902 TD (pid_t getpgrp\(void\);)Tj /T1_0 1 Tf 19.888 -1.902 Td [(Returns: pr)18(ocess gr)18(oup ID of calling pr)18(ocess)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1947.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 178.8385 Tm [(In )-35(older )-35(BSD-derived )-35(systems, )-35(the)]TJ /TT0 1 Tf 15.494 0 Td (getpgrp)Tj /T1_0 1 Tf 4.485 0 Td [(function )-35(took )-35(a)]TJ /T1_2 1 Tf 7.037 0 Td (pid)Tj /T1_0 1 Tf 1.563 0 Td [(ar)18(gument )-35(and )-35(r)18(eturned)]TJ -28.579 -1.2 Td [(the )-35(pr)18(ocess )-35(gr)18(oup )-35(for )-35(that )-35(pr)18(ocess. )-285(The)-285(Single )-35(UNIX )-35(Speci\336cation )-35(de\336nes )-35(the)]TJ /TT0 1 Tf 34.8 0 Td (getpgid)Tj /T1_0 1 Tf -34.8 -1.2 Td [(function that mimics this behavior)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46818 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (290)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Relationships)]TJ 39.241 0 Td [(Chapter )-250(9)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (/etc/inittab)Tj /T1_1 1 Tf 7.51 0 Td [(contains )-60(the )-60(con\336guration )-60(information )-60(specifying )-60(the )-60(terminal )-60(devices)]TJ -7.51 -1.2 Td (for which)Tj /TT0 1 Tf 4.507 0 Td (init)Tj /T1_1 1 Tf 2.65 0 Td (should start a)Tj /TT0 1 Tf 6.278 0 Td (getty)Tj /T1_1 1 Tf 3.25 0 Td [(pr)18(ocess.)]TJ -14.885 -1.2 Td [(Other )-57(Linux )-57(distributions, )-57(such )-57(as )-57(r)17(ecent )-57(Ubuntu )-57(distributions, )-57(ship )-57(with )-57(a )-57(version)]TJ -1.8 -1.2 Td (of)Tj /TT0 1 Tf 1.182 0 Td (init)Tj /T1_1 1 Tf 2.703 0 Td [(that )-53(is )-53(known )-53(as )-53(\324)35(\324Upstart.\325)]TJ 0.5534 Tc 12.047 0 Td (\325I)Tj 0.3034 Tc 1.168 0 Td (tu)Tj 0 Tc 1.232 0 Td [(ses )-53(con\336guration )-53(\336les )-53(named)]TJ /TT0 1 Tf 13.37 0 Td (*.conf)Tj /T1_1 1 Tf 3.903 0 Td [(that )-53(ar)18(e)]TJ -35.607 -1.2 Td [(stor)18(ed )-65(in )-65(the)]TJ /TT0 1 Tf 5.968 0 Td (/etc/init)Tj /T1_1 1 Tf 5.715 0 Td [(dir)18(ectory)]TJ 0.5651 Tc 3.914 0 Td (.F)Tj 0 Tc 1.371 0 Td [(or )-65(example, )-65(the )-65(speci\336cations )-65(for )-65(r)8(unning)]TJ /TT0 1 Tf 19.032 0 Td (getty)Tj /T1_1 1 Tf -36 -1.2 Td (on)Tj /TT0 1 Tf 1.378 0 Td (/dev/tty1)Tj /T1_1 1 Tf 5.65 0 Td (might be found in the \336le)Tj /TT0 1 Tf 11.48 0 Td (/etc/init/tty1.conf)Tj /T1_1 1 Tf (.)Tj -16.708 -1.2 Td [(Depending )-21(on )-21(the )-21(version )-21(of)]TJ /TT0 1 Tf 12.986 0 Td (getty)Tj /T1_1 1 Tf 3.271 0 Td [(in )-21(use, )-21(the )-21(terminal )-21(characteristics )-21(ar)]TJ 0.2709 Tc 16.259 0 Td (es)Tj 0 Tc 1.174 0 Td (peci\336ed)Tj -35.49 -1.2 Td [(either )-61(on )-61(the )-61(command )-61(line )-61(\(as )-61(with)]TJ /TT0 1 Tf 16.625 0 Td (agetty)Tj /T1_1 1 Tf [(\))-311(or)-311(in)-311(the )-61(\336le)]TJ /TT0 1 Tf 10.064 0 Td (/etc/gettydefs)Tj /T1_1 1 Tf 8.711 0 Td [(\(as )-61(with)]TJ /TT0 1 Tf -35.399 -1.2 Td (mgetty)Tj /T1_1 1 Tf (\).)Tj /TT1 1 Tf -3.6 -2.4 Td [(Solaris T)60(erminal Logins)]TJ /T1_1 1 Tf 3.6 -2.16 Td [(Solaris )-68(supports )-68(two )-68(forms )-68(of )-68(terminal )-68(logins: )-68(\(a\))]TJ /TT0 1 Tf 22.457 0 Td (getty)Tj /T1_1 1 Tf 3.318 0 Td [(style, )-68(as )-68(described )-68(pr)17(eviously)]TJ -25.775 -1.2 Td [(for )-100(BSD, )-100(and )-100(\(b\))]TJ /TT0 1 Tf 7.746 0 Td (ttymon)Tj /T1_1 1 Tf 3.95 0 Td [(logins, )-100(a )-100(featur)]TJ 0.3502 Tc 6.758 0 Td (ei)Tj 0 Tc 1.12 0 Td [(ntr)18(oduced )-100(with )-100(SVR4.)-601(Normally)111(,)]TJ /TT0 1 Tf 15.36 0 Td (getty)Tj /T1_1 1 Tf 3.35 0 Td (is)Tj -38.285 -1.2 Td (used for the console, and)Tj /TT0 1 Tf 11.283 0 Td (ttymon)Tj /T1_1 1 Tf 3.85 0 Td (is used for other terminal logins.)Tj -13.333 -1.2 Td (The)Tj /TT0 1 Tf 2.073 0 Td (ttymon)Tj /T1_1 1 Tf 3.999 0 Td [(command )-149(is )-149(part )-149(of )-149(a )-149(lar)18(ger )-149(facility )-149(termed )-149(SAF)]TJ 0.3987 Tc 22.125 0 Td (,t)Tj 0 Tc 0.975 0 Td [(he )-149(Service )-149(Access)]TJ -30.971 -1.2 Td (Facility)Tj 0.5074 Tc 3.144 0 Td (.T)Tj 0 Tc 1.37 0 Td [(he )-7(goal )-7(of )-7(the )-7(SAF )-7(was )-7(to )-7(pr)18(ovide )-7(a )-7(consistent )-7(way )-7(to )-7(administer )-7(services )-7(that)]TJ -4.514 -1.2 Td [(pr)18(ovide )-135(access )-135(to )-135(a )-135(system.)-635(\(See )-135(Chapter )-135(6 )-135(of )-135(Rago)]TJ 24.055 0.04 Td ([)Tj 0.333 -0.04 Td (1993)Tj 2 0.04 Td (])Tj 0.718 -0.04 Td [(for )-135(mor)]TJ 0.3848 Tc 3.465 0 Td (ed)Tj 0 Tc 1.475 0 Td [(etails.\) )-385(For)-385(our)]TJ -32.045 -1.2 Td [(purposes, )-33(we )-33(end )-33(up )-33(with )-33(the )-33(same )-33(pictur)17(e)-283(as)-283(in)-283(F)-1(igur)]TJ 0.2832 Tc 24.35 0 Td (e9)Tj 0 Tc 1.262 0 Td [(.3, )-33(with )-33(a )-33(dif)17(fer)18(ent )-33(set )-33(of )-33(steps)]TJ -25.613 -1.2 Td (between)Tj /TT0 1 Tf 4.26 0 Td (init)Tj /T1_1 1 Tf 2.928 0 Td [(and )-278(the )-278(login )-278(shell.)]TJ /TT0 1 Tf 10.027 0 Td (init)Tj /T1_1 1 Tf 2.928 0 Td [(is )-278(the )-278(par)17(ent )-278(of)]TJ /TT0 1 Tf 7.959 0 Td (sac)Tj /T1_1 1 Tf 2.328 0 Td [(\(the )-278(service )-278(access)]TJ -30.431 -1.2 Td [(contr)18(oller\), )-186(which )-186(does )-186(a)]TJ /TT0 1 Tf 11.899 0 Td (fork)Tj /T1_1 1 Tf 2.836 0 Td (and)Tj /TT0 1 Tf 2.129 0 Td (exec)Tj /T1_1 1 Tf 2.836 0 Td [(of )-186(the)]TJ /TT0 1 Tf 3.139 0 Td (ttymon)Tj /T1_1 1 Tf 4.036 0 Td [(pr)18(ogram )-186(when )-186(the )-186(system)]TJ -26.876 -1.2 Td [(enters )-19(multiuser )-19(state.)-519(The)]TJ /TT0 1 Tf 12.285 0 Td (ttymon)Tj /T1_1 1 Tf 3.869 0 Td [(pr)18(ogram )-19(monitors )-19(all )-19(the )-19(terminal )-19(ports )-19(listed )-19(in )-19(its)]TJ -16.154 -1.2 Td [(con\336guration )-263(\336le )-263(and )-263(does )-263(a)]TJ /TT0 1 Tf 14.169 0 Td (fork)Tj /T1_1 1 Tf 2.913 0 Td [(when )-263(we )-263(enter )-263(our )-263(login )-263(name.)-763(This )-263(child )-263(of)]TJ /TT0 1 Tf -17.082 -1.2 Td (ttymon)Tj /T1_1 1 Tf 3.866 0 Td [(does )-16(an)]TJ /TT0 1 Tf 3.674 0 Td (exec)Tj /T1_1 1 Tf 2.666 0 Td (of)Tj /TT0 1 Tf 1.145 0 Td (login)Tj /T1_1 1 Tf 0.2658 Tc (,a)Tj 0 Tc 4.016 0 Td (nd)Tj /TT0 1 Tf 1.459 0 Td (login)Tj /T1_1 1 Tf 3.266 0 Td [(pr)18(ompts )-16(us )-16(for )-16(our )-16(passwor)19(d. )-266(Once)-266(this )-16(is)]TJ -20.09 -1.2 Td (done,)Tj /TT0 1 Tf 2.756 0 Td [(login )312(exec)]TJ /T1_1 1 Tf 0.288 Tc (so)Tj 0 Tc 6.946 0 Td [(ur )-38(login )-38(shell, )-38(and )-38(we\325r)18(e)-288(at)-288(the )-38(position )-38(shown )-38(in )-38(Figur)]TJ 0.2881 Tc 24.646 0 Td (e9)Tj 0 Tc 1.267 0 Td [(.3. )-288(One)]TJ -35.615 -1.2 Td [(dif)18(fer)18(ence )-27(is )-27(that )-27(the )-27(par)18(ent )-27(of )-27(our )-27(login )-27(shell )-27(is )-27(now)]TJ /TT0 1 Tf 23.572 0 Td (ttymon)Tj /T1_1 1 Tf 0.277 Tc (,w)Tj 0 Tc 4.961 0 Td [(her)18(eas )-27(the )-27(par)18(ent )-27(of )-27(the)]TJ -28.533 -1.2 Td [(login shell fr)18(om a)]TJ /TT0 1 Tf 7.972 0 Td (getty)Tj /T1_1 1 Tf 3.25 0 Td (login is)Tj /TT0 1 Tf 3.481 0 Td (init)Tj /T1_1 1 Tf (.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5948 325.7805 Tm [(9.3 )-1332(Netw)20(ork )-278(Logins)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5926 304.1817 Tm [(The )-33(main )-33(\(physical\) )-33(dif)18(fer)18(ence )-33(between )-33(logging )-33(in )-33(to )-33(a )-33(system )-33(thr)18(ough )-33(a )-33(serial )-33(terminal)]TJ -0 -1.2 Td [(and )-252(logging )-252(in )-252(to )-252(a )-252(system )-252(thr)18(ough )-252(a )-252(network )-252(is )-252(that )-252(the )-252(connection )-252(between )-252(the)]TJ 0 -1.2 TD [(terminal )-80(and )-80(the )-80(computer )-80(isn\325t )-80(point-to-point.)-580(In )-80(this )-80(case,)]TJ /TT0 1 Tf 27.342 0 Td (login)Tj /T1_1 1 Tf 3.33 0 Td [(is )-80(simply )-80(a )-80(service)]TJ -30.672 -1.2 Td [(available, just like any other network service, such as FTP or SMTP)129(.)]TJ -0.055 Tc 1.8 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-172(the )-172(terminal )-172(logins )-172(that )-172(we )-172(described )-172(in )-172(the )-172(pr)18(evious )-172(section,)]TJ /TT0 1 Tf 30.199 0 Td (init)Tj /T1_1 1 Tf 2.822 0 Td (knows)Tj -36.058 -1.2 Td [(which )-156(terminal )-156(devices )-156(ar)]TJ 0.4061 Tc 11.868 0 Td (ee)Tj 0 Tc 1.364 0 Td [(nabled )-156(for )-156(logins )-156(and )-156(spawns )-156(a)]TJ /TT0 1 Tf 14.975 0 Td (getty)Tj /T1_1 1 Tf 3.406 0 Td [(pr)18(ocess )-156(for )-156(each)]TJ -31.614 -1.2 Td [(device. )-281(In)-281(the )-31(case )-31(of )-31(network )-31(logins, )-31(however)]TJ 0.2808 Tc 20.831 0 Td (,a)Tj 0 Tc 1.031 0 Td [(ll )-31(the )-31(logins )-31(come )-31(thr)19(ough )-31(the )-31(kernel\325s)]TJ -21.861 -1.2 Td [(network )-80(interface )-80(drivers )-80(\(e.g., )-80(the )-80(Ethernet )-80(driver\), )-80(and )-80(we )-80(don\325t )-80(know )-80(ahead )-80(of )-80(time)]TJ T* [(how )-143(many )-143(of )-143(these )-143(will )-143(occur)]TJ 0.6433 Tc 13.684 0 Td (.I)Tj 0 Tc 1.23 0 Td [(nstead )-143(of )-143(having )-143(a )-143(pr)18(ocess )-143(waiting )-143(for )-143(each )-143(possible)]TJ -14.914 -1.2 Td [(login, we now have to wait for a network connection r)18(equest to arrive.)]TJ -0.092 Tc 1.8 -1.2 Td [(To )-202(a)]TJ 0 Tc 1.835 0 Td [(llow )-18(the )-18(same )-18(softwar)19(e)-268(to)-268(p)]TJ -0.018 Tc (ro)Tj 0 Tc 13.189 0 Td [(cess )-18(logins )-18(over )-18(both )-18(terminal )-18(logins )-18(and )-18(network)]TJ -16.824 -1.2 Td [(logins, )-132(a )-132(softwar)]TJ 0.3816 Tc 7.543 0 Td (ed)Tj 0 Tc 1.472 0 Td [(river )-132(called )-132(a)]TJ /T1_2 1 Tf 6.386 0 Td [(pseudo )-132(terminal)]TJ /T1_1 1 Tf 6.986 0 Td [(is )-132(used )-132(to )-132(emulate )-132(the )-132(behavior )-132(of )-132(a)]TJ -22.387 -1.2 Td [(serial )-53(terminal )-53(and )-53(map )-53(terminal )-53(operations )-53(to )-53(network )-53(operations, )-53(and )-53(vice )-53(versa.)-559(\(In)]TJ T* (Chapter 19, we\325ll talk about pseudo terminals in detail.\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46819 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (9)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(Pr)15(ocess )-280(Rela)-5(tionships)]TJ /TT0 1 Tf 12 0 0 12 93.6002 424.8 Tm [(9.1 )-1332(Intr)20(oduction)]TJ /T1_2 1 Tf -0.092 Tc 10 0 0 10 129.6002 400.8 Tm [(We )-191(l)]TJ 0 Tc 1.935 0 Td [(earned )-7(in )-7(the )-7(pr)18(evious )-7(chapter )-7(that )-7(ther)]TJ 0.257 Tc 17.559 0 Td (ea)Tj -0.018 Tc 1.236 0 Td [(re )-43(re)]TJ 0 Tc 1.969 0 Td [(lationships )-7(between )-7(pr)18(ocesses. )-257(First,)]TJ -22.699 -1.2 Td [(every )-156(pr)18(ocess )-156(has )-156(a )-156(par)18(ent )-156(pr)20(ocess )-155(\(the )-155(initial )-155(kernel)]TJ 24.253 0.09 Td (-)Tj 0.333 -0.09 Td [(level )-155(pr)18(ocess )-155(is )-155(usually )-155(its )-155(own)]TJ -24.586 -1.2 Td [(par)18(ent\). )-281(The)-281(par)18(ent )-31(is )-31(noti\336ed )-31(when )-31(the )-31(child )-31(terminates, )-31(and )-31(the )-31(par)18(ent )-31(can )-31(obtain )-31(the)]TJ 0 -1.2 Td [(child\325s )-31(exit )-31(status.)]TJ -0.092 Tc 8.479 0 Td [(We )-215(a)]TJ 0 Tc 2.168 0 Td [(lso )-31(mentioned )-31(pr)18(ocess )-31(gr)18(oups )-31(when )-31(we )-31(described )-31(the)]TJ /TT1 1 Tf 24.153 0 Td (waitpid)Tj /T1_2 1 Tf -34.8 -1.2 Td [(function )-5(\(Section )-5(8.6\) )-5(and )-5(explained )-5(how )-5(we )-5(can )-5(wait )-5(for )-5(any )-5(pr)18(ocess )-5(in )-5(a )-5(pr)18(ocess )-5(gr)12(oup)]TJ 0 -1.2 TD (to terminate.)Tj 1.8 -1.2 Td [(In )-234(this )-234(chapter)]TJ 0.4842 Tc 6.763 0 Td (,w)Tj 0 Tc 1.568 0 Td [(e\325ll )-234(look )-234(at )-234(pr)17(ocess )-234(gr)18(oups )-234(in )-234(mor)]TJ 0.4841 Tc 16.09 0 Td (ed)Tj 0 Tc 1.574 0 Td [(etail )-234(and )-234(the )-234(concept )-234(of)]TJ -27.796 -1.2 Td [(sessions )-132(that )-132(was )-132(intr)18(oduced )-132(by )-132(POSIX.1.)]TJ -0.092 Tc 19.526 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-132(also )-132(look )-132(at )-132(the )-132(r)18(elationship )-132(between)]TJ -20.913 -1.2 Td [(the )-54(login )-54(shell )-54(that )-54(is )-54(invoked )-54(for )-54(us )-54(when )-54(we )-54(log )-54(in )-54(and )-54(all )-54(the )-54(pr)23(ocesses )-54(that )-54(we )-54(start)]TJ T* [(fr)18(om our login shell.)]TJ 1.8 -1.2 Td [(It )-39(is )-39(impossible )-39(to )-39(describe )-39(these )-39(r)19(elationships )-39(without )-39(talking )-39(about )-39(signals, )-39(and )-39(to)]TJ -1.8 -1.2 Td [(talk )-66(about )-66(signals, )-66(we )-66(need )-66(many )-66(of )-66(the )-66(concepts )-66(in )-66(this )-66(chapter)]TJ 0.5656 Tc 28.838 0 Td (.I)Tj 0.3156 Tc 1.153 0 Td (fy)Tj 0 Tc 1.205 0 Td [(ou )-66(ar)]TJ 0.3156 Tc 2.342 0 Td (eu)Tj 0 Tc 1.398 0 Td (nfamiliar)Tj -34.934 -1.2 Td [(with )-29(the )-29(UNIX )-29(System )-29(signal )-29(mechanism, )-29(you )-29(may )-29(want )-29(to )-29(skim )-29(thr)18(ough )-29(Chapter )-29(10 )-29(at)]TJ T* (this point.)Tj /TT0 1 Tf 12 0 0 12 93.601 208.8 Tm [(9.2 )-1332(T)60(erminal )-278(Logins)]TJ /T1_2 1 Tf 10 0 0 10 129.601 184.8 Tm [(Let\325s )-179(start )-179(by )-179(looking )-179(at )-179(the )-179(pr)15(ograms )-179(that )-179(ar)]TJ 0.4294 Tc 21.108 0 Td (ee)Tj 0 Tc 1.387 0 Td [(xecuted )-179(when )-179(we )-179(log )-179(in )-179(to )-179(a )-179(UNIX)]TJ -22.495 -1.2 Td [(system. )-576(In)-576(early )-326(UNIX )-326(systems, )-326(such )-326(as )-326(V)110(ersion )-326(7, )-326(users )-326(logged )-326(in )-326(using )-326(dumb)]TJ T* [(terminals )-84(that )-84(wer)]TJ 0.3343 Tc 8.264 0 Td (ec)Tj 0 Tc 1.257 0 Td [(onnected )-84(to )-84(the )-84(host )-84(with )-84(har)17(d-wir)18(ed )-84(connections.)-584(The )-84(terminals)]TJ -9.521 -1.2 Td (wer)Tj 0.2531 Tc 1.69 0 Td (ee)Tj 0 Tc 1.211 0 Td [(ither )-3(local )-3(\(dir)18(ectly )-3(connected\) )-3(or )-3(r)18(emote )-3(\(connected )-3(thr)18(ough )-3(a )-3(modem\).)-503(In )-3(either)]TJ -2.901 -1.2 Td [(case, )-19(these )-19(logins )-19(came )-19(thr)17(ough )-19(a )-19(terminal )-19(device )-19(driver )-19(in )-19(the )-19(kernel.)-519(For )-19(example, )-19(the)]TJ /T1_3 1 Tf 9 0 0 9 506.1007 114 Tm (285)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46820 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (282)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 161.9903 670.2598 Tm (\(tmsend->tms_cutime - tmsstart->tms_cutime\) / \(double\) clktck\);)Tj -1.2 -1.189 Td [(printf\(" )-600(child)-600(sys: )-1200(%7.2f\\n",)]TJ 1.2 -1.189 Td (\(tmsend->tms_cstime - tmsstart->tms_cstime\) / \(double\) clktck\);)Tj -3.6 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6334.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 218.9257 617.3249 Tm (Figure 8.31)Tj /T1_1 1 Tf -0.055 Tc 5.695 0 Td (Ti)Tj 0 Tc 0.849 0 Td (me and execute all command)Tj 12.912 0.09 Td (-)Tj 0.333 -0.09 Td [(line ar)18(guments)]TJ 9.9988 0 0 9.9988 129.5848 587.3285 Tm [(If we r)8(un this pr)18(ogram, we get)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5827 570.6305 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out "sleep 5" "date" "man bash >/dev/null")Tj /TT0 1 Tf -1.2 -2.021 Td (command: sleep 5)Tj 1.2 -1.189 Td [(real: )-2400(5.01)]TJ 0 -1.189 TD [(user: )-2400(0.00)]TJ T* [(sys: )-3000(0.00)]TJ T* [(child user:)-3000(0.00)]TJ T* [(child sys:)-3600(0.00)]TJ -1.2 -1.189 Td (normal termination, exit status = 0)Tj 0 -2.021 TD (command: date)Tj 0 -1.189 TD (Sun Feb 26 18:39:23 EST 2012)Tj 1.2 -1.189 Td [(real: )-2400(0.00)]TJ 0 -1.189 TD [(user: )-2400(0.00)]TJ T* [(sys: )-3000(0.00)]TJ T* [(child user:)-3000(0.00)]TJ T* [(child sys:)-3600(0.00)]TJ -1.2 -1.189 Td (normal termination, exit status = 0)Tj 0 -2.021 TD (command: man bash >/dev/null)Tj 1.2 -1.189 Td [(real: )-2400(1.46)]TJ 0 -1.189 TD [(user: )-2400(0.00)]TJ T* [(sys: )-3000(0.00)]TJ T* [(child user:)-3000(1.32)]TJ T* [(child sys:)-3600(0.07)]TJ -1.2 -1.189 Td (normal termination, exit status = 0)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5848 294.7934 Tm [(In )-61(the )-61(\336rst )-61(two )-61(commands, )-61(execution )-61(is )-61(fast )-61(enough )-61(to )-61(avoid )-61(r)18(egistering )-61(any )-61(CPU )-61(time)]TJ 0 -1.2 TD [(at )-149(the )-149(r)17(eported )-149(r)18(esolution. )-399(In)-400(the )-149(thir)]TJ 0.3994 Tc 17.27 0 Td (dc)Tj 0 Tc 1.454 0 Td [(ommand, )-149(however)74(,)-399(we)-399(r)7(un )-149(a )-149(command )-149(that)]TJ -18.725 -1.2 Td [(takes )-21(enough )-21(pr)18(ocessing )-21(time )-21(to )-21(note )-21(that )-21(all )-21(the )-21(CPU )-21(time )-21(appears )-21(in )-21(the )-21(child )-21(pr)21(ocess,)]TJ T* (which is wher)Tj 0.25 Tc 6.22 0 Td (et)Tj 0 Tc 1.055 0 Td (he shell and the command execute.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2588.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 11.9978 0 0 11.9978 93.5832 222.7889 Tm [(8.18 )-776(Summar)-10(y)]TJ /T1_1 1 Tf 0.5997 Tc 9.9982 0 0 9.9982 129.5767 198.7932 Tm (At)Tj 0 Tc 1.704 0 Td [(hor)18(ough )-350(understanding )-350(of )-350(the )-350(UNIX )-350(System\325s )-350(pr)20(ocess )-350(contr)18(ol )-350(is )-350(essential )-350(for)]TJ -1.704 -1.2 Td [(advanced )-194(pr)18(ogramming. )-444(Ther)]TJ 0.4445 Tc 13.902 0 Td (ea)Tj -0.018 Tc 1.424 0 Td [(re )-231(o)]TJ 0 Tc 1.846 0 Td [(nly )-194(a )-194(few )-194(functions )-194(to )-194(master:)]TJ /TT0 1 Tf 14.502 0 Td (fork)Tj /T1_1 1 Tf 0.4445 Tc (,t)Tj 0 Tc 3.421 0 Td (he)Tj /TT0 1 Tf 1.506 0 Td (exec)Tj /T1_1 1 Tf -36.6 -1.2 Td [(family)111(,)]TJ /TT0 1 Tf 3.364 0 Td (_exit)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.621 0 Td (wait)Tj /T1_1 1 Tf 0.3707 Tc (,a)Tj 0 Tc 3.521 0 Td (nd)Tj /TT0 1 Tf 1.564 0 Td (waitpid)Tj /T1_1 1 Tf 0.6206 Tc (.T)Tj 0 Tc 5.684 0 Td [(hese )-121(primitives )-121(ar)]TJ 0.3706 Tc 8.128 0 Td (eu)Tj 0 Tc 1.453 0 Td [(sed )-121(in )-121(many )-121(applications.)]TJ -27.333 -1.2 Td (The)Tj /TT0 1 Tf 1.924 0 Td (fork)Tj /T1_1 1 Tf 2.65 0 Td (function also gave us an opportunity to look at race conditions.)Tj -2.774 -1.2 Td [(Our )-109(examination )-109(of )-109(the)]TJ /TT0 1 Tf 10.982 0 Td (system)Tj /T1_1 1 Tf 3.959 0 Td [(function )-109(and )-109(pr)18(ocess )-109(accounting )-109(gave )-109(us )-109(another)]TJ -16.74 -1.2 Td [(look )-118(at )-118(all )-118(these )-118(pr)18(ocess )-118(contr)18(ol )-118(functions.)]TJ -0.092 Tc 19.75 0 Td [(We )-302(a)]TJ 0 Tc 2.255 0 Td [(lso )-118(looked )-118(at )-118(another )-118(variation )-118(of )-118(the)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46821 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (280)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(In )-44(contrast, )-44(when )-44(the )-44(child )-44(has )-44(the )-44(highest )-44(possible )-44(nice )-44(value )-44(\(the )-44(lowest )-44(priority\),)]TJ -1.8 -1.2 Td [(we )-16(see )-16(that )-16(the )-16(par)18(ent )-16(gets )-16(98.5% )-16(of )-16(the )-16(CPU, )-16(while )-16(the )-16(child )-16(gets )-16(only )-16(1.5% )-16(of )-16(the )-16(CPU.)]TJ 0 -1.2 TD [(These )-145(values )-145(will )-145(vary )-145(based )-145(on )-145(how )-145(the )-145(pr)21(ocess )-145(scheduler )-145(uses )-145(the )-145(nice )-145(value, )-145(so )-145(a)]TJ T* [(dif)18(fer)18(ent UNIX system will pr)18(oduce dif)18(fer)18(ent ratios.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 6330.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT0 1 Tf 11.9986 0 0 11.9986 93.5888 596.9284 Tm [(8.17 )-776(Pr)20(ocess )-278(Times)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 572.9312 Tm [(In )-160(Section )-160(1.10, )-160(we )-160(described )-160(thr)18(ee )-160(times )-160(that )-160(we )-160(can )-160(measur)18(e: )-160(wall )-160(clock )-160(time, )-160(user)]TJ T* [(CPU )-128(time, )-128(and )-128(system )-128(CPU )-128(time.)-631(Any )-128(pr)18(ocess )-128(can )-128(call )-128(the)]TJ /TT1 1 Tf 27.488 0 Td (times)Tj /T1_1 1 Tf 3.378 0 Td [(function )-128(to )-128(obtain)]TJ -30.866 -1.2 Td [(these values for itself and any terminated childr)18(en.)]TJ /TT1 1 Tf 8.9989 0 0 8.9989 147.5823 531.0363 Tm (#include )Tj 0 -1.902 TD (clock_t times\(struct tms *)Tj /T1_2 1 Tf (buf)Tj /TT1 1 Tf 17.082 0 Td (\);)Tj /T1_1 1 Tf -5.987 -1.902 Td (Returns: elapsed wall clock time in clock ticks if OK,)Tj /TT2 1 Tf 23.369 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4923.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 477.574 Tm (This function \336lls in the)Tj /TT1 1 Tf 10.738 0 Td (tms)Tj /T1_1 1 Tf 2.05 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ep)Tj 0 Tc 1.33 0 Td (ointed to by)Tj /T1_2 1 Tf 5.566 0 Td (buf)Tj /T1_1 1 Tf 1.464 0 Td (:)Tj /TT1 1 Tf 8.9984 0 0 8.9984 147.5735 460.877 Tm (struct tms {)Tj 1.2 -1.189 Td [(clock_t )-600(tms_utime; )-600(/*)-600(user CPU time */)]TJ 0 -1.189 TD [(clock_t )-600(tms_stime; )-600(/*)-600(system CPU time */)]TJ T* [(clock_t )-600(tms_cutime;)-600(/* user CPU time, terminated children */)]TJ T* [(clock_t )-600(tms_cstime;)-600(/* system CPU time, terminated children */)]TJ -1.2 -1.189 Td (};)Tj /T1_1 1 Tf 9.9982 0 0 9.9982 129.5768 389.3899 Tm [(Note )-227(that )-227(the )-227(str)8(uctur)]TJ 0.4771 Tc 10.224 0 Td (ed)Tj 0 Tc 1.567 0 Td [(oes )-227(not )-227(contain )-227(any )-227(measur)18(ement )-227(for )-227(the )-227(wall )-227(clock )-227(time.)]TJ -11.791 -1.2 Td [(Instead, )-63(the )-63(function )-63(r)18(eturns )-63(the )-63(wall )-63(clock )-63(time )-63(as )-63(the )-63(value )-63(of )-63(the )-63(function, )-63(each )-63(time)]TJ 0 -1.2 TD [(it\325s )-9(called.)-509(This )-9(value )-9(is )-9(measur)18(ed )-9(fr)18(om )-9(some )-9(arbitrary )-9(point )-9(in )-9(the )-9(past, )-9(so )-9(we )-9(can\325t )-9(use)]TJ T* [(its )-104(absolute )-104(value; )-104(instead, )-104(we )-104(use )-104(its )-104(r)18(elative )-104(value.)-604(For )-104(example, )-104(we )-104(call)]TJ /TT1 1 Tf 33.953 0 Td (times)Tj /T1_1 1 Tf 3.354 0 Td (and)Tj -37.307 -1.2 Td [(save )-53(the )-53(r)18(eturn )-53(value.)-551(At )-53(some )-53(later )-53(time, )-53(we )-53(call)]TJ /TT1 1 Tf 22.577 0 Td (times)Tj /T1_1 1 Tf 3.303 0 Td [(again )-53(and )-53(subtract )-53(the )-53(earlier)]TJ -0.018 Tc -25.879 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-158(value )-158(fr)18(om )-158(the )-158(new )-158(r)18(eturn )-158(value.)-658(The )-158(dif)15(fer)18(ence )-158(is )-158(the )-158(wall )-158(clock )-158(time.)-658(\(It )-158(is)]TJ -0.856 -1.2 Td [(possible, )-128(though )-128(unlikely)]TJ 0.3783 Tc 11.349 0 Td (,f)Tj 0 Tc 0.961 0 Td [(or )-128(a )-128(long-r)8(unning )-128(pr)17(ocess )-128(to )-128(over\337ow )-128(the )-128(wall )-128(clock )-128(time;)]TJ -12.31 -1.2 Td [(see Exer)18(cise 1.5.\))]TJ 1.8 -1.2 Td [(The )-32(two )-32(str)8(uctur)]TJ 0.2819 Tc 7.434 0 Td (e\336)Tj 0 Tc 1.366 0 Td [(elds )-32(for )-32(child )-32(pr)18(ocesses )-32(contain )-32(values )-32(only )-32(for )-32(childr)18(en )-32(that )-32(we)]TJ -10.6 -1.2 Td (have waited for with one of the)Tj /TT1 1 Tf 14.097 0 Td (wait)Tj /T1_1 1 Tf 2.65 0 Td [(functions discussed earlier in this chapter)74(.)]TJ -14.947 -1.2 Td [(All )-123(the)]TJ /TT1 1 Tf 3.493 0 Td (clock_t)Tj /T1_1 1 Tf 4.573 0 Td [(values )-123(r)18(eturned )-123(by )-123(this )-123(function )-123(ar)]TJ 0.3733 Tc 15.896 0 Td (ec)Tj 0 Tc 1.296 0 Td [(onverted )-123(to )-123(seconds )-123(using)]TJ -27.059 -1.2 Td [(the )-78(number )-78(of )-78(clock )-78(ticks )-78(per )-78(second)]TJ 0.0833 Tc 16.693 0 Td (\321t)Tj 0 Tc 1.409 0 Td (he)Tj /TT1 1 Tf 1.389 0 Td (_SC_CLK_TCK)Tj /T1_1 1 Tf 6.928 0 Td [(value )-78(r)18(eturned )-77(by)]TJ /TT1 1 Tf 8.382 0 Td (sysconf)Tj /T1_1 1 Tf -34.8 -1.2 Td (\(Section 2.5.4\).)Tj 7.9986 0 0 7.9986 183.5674 225.4194 Tm [(Most )-186(implementations )-186(pr)18(ovide )-186(the)]TJ /TT1 1 Tf 16.328 0 Td (getrusage)Tj /T1_1 1 Tf 5.4 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.769 -0.04 Td [(function. )-436(This)-437(function )-186(r)18(eturns )-186(the )-186(CPU)]TJ -23.33 -1.25 Td [(times )-15(and )-15(14 )-15(other )-15(values )-15(indicating )-15(r)17(esour)18(ce )-15(usage.)-515(Historically)]TJ 0.2653 Tc 28.749 0 Td (,t)Tj 0 Tc 0.841 0 Td [(his )-15(function )-15(originated )-15(with)]TJ -29.59 -1.25 Td [(the )-185(BSD )-185(operating )-185(system, )-185(so )-185(BSD-derived )-185(implementations )-185(generally )-185(support )-185(mor)]TJ 0.4346 Tc 38.386 0 Td (eo)Tj 0.4348 Tc 1.46 0 Td (ft)Tj 0 Tc 1.094 0 Td (he)Tj -40.939 -1.25 Td (\336elds than do other implementations.)Tj /TT0 1 Tf 9.9982 0 0 9.9982 93.5835 171.4291 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(The )-46(pr)18(ogram )-46(in )-46(Figur)]TJ 0.2964 Tc 9.678 0 Td (e8)Tj 0 Tc 1.275 0 Td [(.31 )-46(executes )-46(each )-46(command)]TJ 12.343 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-46(ar)18(gument )-46(as )-46(a )-46(shell )-46(command)]TJ -23.629 -1.2 Td [(string, timing the command and printing the values fr)18(om the)]TJ /TT1 1 Tf 27.181 0 Td (tms)Tj /T1_1 1 Tf 2.05 0 Td [(str)8(uctur)18(e.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46822 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (276)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Given )-210(the )-210(login )-210(name, )-210(we )-210(can )-210(then )-210(use )-210(it )-210(to )-210(look )-210(up )-210(the )-210(user )-210(in )-210(the )-210(passwor)16(d)]TJ -1.8 -1.2 Td [(\336le )167(\321 )167(to)-251(determine the login shell, for example)]TJ 0.0833 Tc 20.515 0 Td (\321u)Tj 0 Tc 1.686 0 Td (sing)Tj /TT0 1 Tf 2.103 0 Td (getpwnam)Tj /T1_1 1 Tf (.)Tj -0.092 Tc 7.9995 0 0 7.9995 183.5889 636.9618 Tm [(To )-575(\336)]TJ 0 Tc 2.313 0 Td [(nd )-390(the )-390(login )-390(name, )-390(UNIX )-390(systems )-390(have )-390(historically )-390(called )-390(the)]TJ /TT0 1 Tf 31.14 0 Td (ttyname)Tj /T1_1 1 Tf 4.84 0 Td (function)Tj -38.293 -1.25 Td [(\(Section )-94(18.9\) )-94(and )-94(then )-94(tried )-94(to )-94(\336nd )-94(a )-94(matching )-94(entry )-94(in )-94(the)]TJ /TT0 1 Tf 27.437 0 Td (utmp)Tj /T1_1 1 Tf 2.744 0 Td [(\336le )-94(\(Section )-94(6.8\).)-595(Fr)18(eeBSD)]TJ -30.182 -1.25 Td [(and )-86(Mac )-86(OS )-86(X )-86(stor)]TJ 0.3364 Tc 8.579 0 Td (et)Tj 0 Tc 1.141 0 Td [(he )-86(login )-86(name )-86(in )-86(the )-86(session )-86(str)6(uctur)]TJ 0.3364 Tc 16.709 0 Td (ea)Tj 0 Tc 1.315 0 Td [(ssociated )-86(with )-86(the )-86(pr)18(ocess )-86(table)]TJ -27.745 -1.25 Td [(entry and pr)18(ovide system calls to fetch and stor)]TJ 0.25 Tc 20.945 0 Td (et)Tj 0 Tc 1.055 0 Td (his name.)Tj -22 -2.25 Td [(System )-230(V )-230(pr)18(ovided )-230(the)]TJ /TT0 1 Tf 11.305 0 Td (cuserid)Tj /T1_1 1 Tf 4.681 0 Td [(function )-230(to )-230(r)18(eturn )-230(the )-230(login )-230(name.)-733(This )-230(function )-230(called)]TJ /TT0 1 Tf -15.986 -1.25 Td (getlogin)Tj /T1_1 1 Tf 5.152 0 Td [(and, )-102(if )-102(that )-102(failed, )-102(did )-102(a)]TJ /TT0 1 Tf 11.181 0 Td (getpwuid\(getuid\(\)\))Tj /T1_1 1 Tf 0.602 Tc (.T)Tj 0 Tc 12.265 0 Td [(he )-102(IEEE )-102(Standar)]TJ 0.352 Tc 7.356 0 Td (d1)Tj 0 Tc 1.463 0 Td (003.1)Tj 2.25 0.09 Td (-)Tj 0.333 -0.09 Td (1988)Tj -40 -1.25 Td (speci\336ed)Tj /TT0 1 Tf 4.204 0 Td (cuserid)Tj /T1_1 1 Tf 0.27 Tc (,b)Tj 0 Tc 5.273 0 Td [(ut )-20(it )-20(called )-20(for )-20(the )-20(ef)18(fective )-20(user )-20(ID )-20(to )-20(be )-20(used, )-20(instead )-20(of )-20(the )-20(r)18(eal )-20(user )-20(ID.)]TJ -9.477 -1.25 Td [(The 1990 version of POSIX.1 dr)18(opped the)]TJ /TT0 1 Tf 18.467 0 Td (cuserid)Tj /T1_1 1 Tf 4.45 0 Td (function.)Tj -22.917 -2.25 Td [(The )-292(envir)18(onment )-292(variable)]TJ /TT0 1 Tf 12.567 0 Td (LOGNAME)Tj /T1_1 1 Tf 4.742 0 Td [(is )-292(usually )-292(initialized )-292(with )-292(the )-292(user)-74(\325s )-292(login )-292(name )-292(by)]TJ /TT0 1 Tf -17.309 -1.25 Td (login)Tj /T1_1 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.854 -0.04 Td [(and )-271(inherited )-271(by )-271(the )-271(login )-271(shell.)-771(Realize, )-271(however)]TJ 0.5214 Tc 23.972 0 Td (,t)Tj 0 Tc 1.097 0 Td [(hat )-271(a )-271(user )-271(can )-271(modify )-271(an)]TJ -29.756 -1.25 Td [(envir)18(onment )-52(variable, )-52(so )-52(we )-52(shouldn\325t )-52(use)]TJ /TT0 1 Tf 19.361 0 Td (LOGNAME)Tj /T1_1 1 Tf 4.502 0 Td [(to )-52(validate )-52(the )-52(user )-52(in )-52(any )-52(way)]TJ 0.5523 Tc 13.826 0 Td (.I)Tj 0 Tc 1.139 0 Td (nstead,)Tj -38.828 -1.25 Td (we should use)Tj /TT0 1 Tf 6.626 0 Td (getlogin)Tj /T1_1 1 Tf (.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5935 474.9715 Tm [(8.16 )-776(Pr)20(ocess )-278(Sc)10(heduling)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5912 450.9729 Tm (Historically)Tj 0.3851 Tc 5.076 0 Td (,t)Tj 0 Tc 0.961 0 Td [(he )-135(UNIX )-135(System )-135(pr)18(ovided )-135(pr)18(ocesses )-135(with )-135(only )-135(coarse )-135(contr)18(ol )-135(over )-135(their)]TJ -6.037 -1.2 Td [(scheduling )-37(priority)]TJ 0.5367 Tc 8.44 0 Td (.T)Tj 0 Tc 1.4 0 Td [(he )-37(scheduling )-37(policy )-37(and )-37(priority )-37(wer)]TJ 0.2867 Tc 16.87 0 Td (ed)Tj 0 Tc 1.377 0 Td [(etermined )-37(by )-37(the )-37(kernel.)]TJ 0.4098 Tc -28.087 -1.2 Td (Ap)Tj -0.018 Tc 1.789 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-160(could )-160(choose )-160(to )-160(r)9(un )-160(with )-160(lower )-160(priority )-160(by )-160(adjusting )-160(its)]TJ /T1_2 1 Tf 28.494 0 Td [(nice )-160(value)]TJ /T1_1 1 Tf 4.616 0 Td [(\(thus )-160(a)]TJ -35.822 -1.2 Td [(pr)18(ocess )-137(could )-137(be )-137(\324)37(\324nice\325)]TJ 0.3869 Tc 10.539 0 Td (\325a)Tj 0 Tc 1.165 0 Td [(nd )-137(r)18(educe )-137(its )-137(shar)18(e)-387(of)-387(the )-137(CPU )-137(by )-137(adjusting )-137(its )-137(nice )-137(value\).)]TJ -11.704 -1.2 Td [(Only a privileged pr)18(ocess was allowed to incr)18(ease its scheduling priority)111(.)]TJ 1.8 -1.2 Td [(The )-341(r)18(eal-time )-341(extensions )-341(in )-341(POSIX )-341(added )-341(interfaces )-341(to )-341(select )-341(among )-341(multiple)]TJ -1.8 -1.2 Td [(scheduling )-71(classes )-71(and )-71(\336ne-tune )-71(their )-71(behavior)]TJ 0.5706 Tc 21.044 0 Td (.W)Tj 0.3206 Tc 1.729 0 Td (ed)Tj 0 Tc 1.411 0 Td [(iscuss )-71(only )-71(the )-71(interfaces )-71(used )-71(to)]TJ -24.183 -1.2 Td [(adjust )-313(the )-313(nice )-313(value )-313(her)18(e; )-313(they )-313(ar)]TJ 0.5625 Tc 16.682 0 Td (ep)Tj 0 Tc 1.642 0 Td [(art )-312(of )-312(the )-312(XSI )-312(option )-312(in )-312(POSIX.1.)-812(Refer )-312(to)]TJ -18.324 -1.2 Td (Gallmeister)Tj 5.372 0.04 Td ([)Tj 0.333 -0.04 Td (1995)Tj 2 0.04 Td (])Tj 0.583 -0.04 Td (for mor)Tj 0.25 Tc 3.33 0 Td (ei)Tj 0 Tc 1.02 0 Td [(nformation on the r)18(eal-time scheduling extensions.)]TJ -10.838 -1.2 Td [(In )-304(the )-304(Single )-304(UNIX )-304(Speci\336cation, )-304(nice )-304(values )-304(range )-304(fr)19(om)]TJ /TT0 1 Tf 27.821 0 Td (0)Tj /T1_1 1 Tf 1.154 0 Td (to)Tj /TT0 1 Tf 1.426 0 Td (\(2*NZERO\))Tj /TT2 1 Tf (!)Tj /TT0 1 Tf (1)Tj /T1_1 1 Tf (,)Tj -32.201 -1.2 Td [(although )-270(some )-270(implementations )-270(support )-270(a )-270(range )-270(fr)19(om)]TJ /TT0 1 Tf 26.088 0 Td (0)Tj /T1_1 1 Tf 1.12 0 Td (to)Tj /TT0 1 Tf 1.392 0 Td (2*NZERO)Tj /T1_1 1 Tf 0.7698 Tc (.L)Tj 0 Tc 5.831 0 Td [(ower )-270(nice)]TJ -34.43 -1.2 Td [(values )-16(have )-16(higher )-16(scheduling )-16(priority)]TJ 0.5164 Tc 17.092 0 Td (.A)Tj 0 Tc 1.544 0 Td [(lthough )-16(this )-16(might )-16(seem )-16(backwar)18(d, )-16(it )-16(actually)]TJ -18.636 -1.2 Td [(makes )-25(sense: )-25(the )-25(mor)]TJ 0.2752 Tc 9.499 0 Td (en)Tj 0 Tc 1.336 0 Td [(ice )-25(you )-25(ar)18(e, )-25(the )-25(lower )-25(your )-25(scheduling )-25(priority )-25(is.)]TJ /TT0 1 Tf 22.513 0 Td (NZERO)Tj /T1_1 1 Tf 3.275 0 Td [(is )-25(the)]TJ -36.623 -1.2 Td (default nice value of the system.)Tj 7.9995 0 0 7.9995 183.5878 272.5836 Tm [(Be )-20(awar)]TJ 0.2705 Tc 3.571 0 Td (et)Tj 0 Tc 1.075 0 Td [(hat )-21(the )-21(header )-21(\336le )-21(de\336ning)]TJ /TT0 1 Tf 12.275 0 Td (NZERO)Tj /T1_1 1 Tf 3.271 0 Td [(dif)18(fers )-21(among )-21(systems.)-521(In )-21(addition )-21(to )-21(the )-21(header)]TJ -20.193 -1.25 Td [(\336le, )-332(Linux )-332(3.2.0 )-332(makes )-332(the )-332(value )-332(of)]TJ /TT0 1 Tf 17.848 0 Td (NZERO)Tj /T1_1 1 Tf 3.582 0 Td [(accessible )-332(thr)18(ough )-332(a )-332(nonstandar)18(d)]TJ /TT0 1 Tf 16.37 0 Td (sysconf)Tj /T1_1 1 Tf -37.8 -1.25 Td [(ar)18(gument \()]TJ /TT0 1 Tf (_SC_NZERO)Tj /T1_1 1 Tf (\).)Tj 0.3075 Tc 9.9994 0 0 9.9994 147.5898 228.5863 Tm (Ap)Tj -0.018 Tc 1.686 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-57(can )-57(r)18(etrieve )-57(and )-57(change )-57(its )-57(nice )-57(value )-57(with )-57(the)]TJ /TT0 1 Tf 23.294 0 Td (nice)Tj /T1_1 1 Tf 2.708 0 Td [(function. )-307(W)55(ith )-57(this)]TJ -30.411 -1.2 Td [(function, )-19(a )-19(pr)18(ocess )-19(can )-19(af)18(fect )-19(only )-19(its )-19(own )-19(nice )-19(value; )-19(it )-19(can\325t )-19(af)12(fect )-19(the )-19(nice )-19(value )-19(of )-19(any)]TJ 0 -1.2 TD [(other pr)18(ocess.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5896 187.8887 Tm (#include )Tj 0 -1.902 TD (int nice\(int)Tj /T1_2 1 Tf 7.8 0 Td (incr)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 8.873 -1.902 Td (Returns: new nice value)Tj /TT2 1 Tf 10.856 0 Td (!)Tj /TT0 1 Tf 0.799 0 Td (NZERO)Tj /T1_1 1 Tf 3.25 0 Td (if OK,)Tj /TT2 1 Tf 2.886 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1491.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46823 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.15)]TJ 35.337 0 Td [(User )-250(Identi\336cation)]TJ /T1_1 1 Tf 10.496 0 Td (275)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Section )-90(8.6.)-590(The )-90(only )-90(information )-90(in )-90(this )-90(byte )-90(is )-90(a )-90(cor)22(e-\337ag )-90(bit )-90(\(usually )-90(the )-90(high-or)19(der)]TJ 0 -1.2 TD [(bit\) )-57(and )-57(the )-57(signal )-57(number )-57(\(usually )-57(the )-57(seven )-57(low-or)16(der )-57(bits\), )-57(if )-57(the )-57(pr)18(ocess )-57(terminated)]TJ T* (abnormally)Tj 0.6887 Tc 4.986 0 Td (.I)Tj 0.4387 Tc 1.276 0 Td (ft)Tj 0 Tc 1.098 0 Td [(he )-189(pr)18(ocess )-189(terminated )-189(normally)112(,)-439(we)-439(a)]TJ -0.018 Tc [(re )-225(n)]TJ 0 Tc 19.295 0 Td [(ot )-189(able )-189(to )-189(obtain )-189(the)]TJ /TT0 1 Tf 9.946 0 Td (exit)Tj /T1_0 1 Tf -36.6 -1.2 Td [(status )-99(fr)18(om )-99(the )-99(accounting )-99(\336le.)-599(For )-99(the )-99(\336rst )-99(child, )-99(this )-99(value )-99(is )-99(128)]TJ /TT1 1 Tf 30.612 0 Td (+)Tj /T1_0 1 Tf 0.716 0 Td [(6. )-349(The)-349(128 )-99(is )-99(the)]TJ -31.328 -1.2 Td (cor)Tj 0.4602 Tc 1.367 0 Td (e\337)Tj 0 Tc 1.547 0 Td [(ag )-210(bit, )-210(and )-210(6 )-210(happens )-210(to )-210(be )-210(the )-210(value )-210(on )-210(this )-210(system )-210(for)]TJ /TT0 1 Tf 27.267 0 Td (SIGABRT)Tj /T1_0 1 Tf 0.4603 Tc (,w)Tj 0 Tc 5.744 0 Td [(hich )-210(is)]TJ -35.925 -1.2 Td [(generated )-166(by )-166(the )-166(call )-166(to)]TJ /TT0 1 Tf 11.379 0 Td (abort)Tj /T1_0 1 Tf 0.6656 Tc (.T)Tj 0 Tc 4.529 0 Td [(he )-166(value )-166(9 )-166(for )-166(the )-166(fourth )-166(child )-166(corr)18(esponds )-166(to )-166(the)]TJ -15.908 -1.2 Td [(value )-27(of)]TJ /TT0 1 Tf 3.871 0 Td (SIGKILL)Tj /T1_0 1 Tf 0.5268 Tc (.W)Tj 0.2768 Tc 5.885 0 Td (ec)Tj 0 Tc 1.2 0 Td [(an\325t )-27(tell )-27(fr)18(om )-27(the )-27(accounting )-27(data )-27(that )-27(the )-27(par)18(ent\325s )-27(ar)18(gument )-27(to)]TJ /TT0 1 Tf -10.955 -1.2 Td (exit)Tj /T1_0 1 Tf 2.65 0 Td (was 2 and that the thir)Tj 0.25 Tc 9.898 0 Td (dc)Tj 0 Tc 1.305 0 Td [(hild\325s ar)18(gument to)]TJ /TT0 1 Tf 8.405 0 Td (exit)Tj /T1_0 1 Tf 2.65 0 Td (was 0.)Tj -23.108 -1.2 Td [(The )-77(size )-77(of )-77(the )-77(\336le)]TJ /TT0 1 Tf 8.646 0 Td (/etc/passwd)Tj /T1_0 1 Tf 6.927 0 Td [(that )-77(the)]TJ /TT0 1 Tf 3.776 0 Td (dd)Tj /T1_0 1 Tf 1.527 0 Td [(pr)18(ocess )-77(copies )-77(in )-77(the )-77(second )-77(child )-77(is)]TJ -22.676 -1.2 Td [(777 )-53(bytes.)-553(The )-53(number )-53(of )-53(characters )-53(of )-53(I/O )-53(is )-53(just )-53(over )-53(twice )-53(this )-53(value.)-553(It )-53(is )-53(twice )-53(the)]TJ T* [(value, )-57(as )-57(777 )-57(bytes )-57(ar)]TJ 0.3068 Tc 9.555 0 Td (er)Tj 0 Tc 1.163 0 Td [(ead )-57(in, )-57(then )-57(777 )-57(bytes )-57(ar)]TJ 0.3068 Tc 10.931 0 Td (ew)Tj 0 Tc 1.62 0 Td [(ritten )-57(out.)-557(Even )-57(though )-57(the )-57(output)]TJ -23.268 -1.2 Td [(goes )-83(to )-83(the )-83(null )-83(device, )-83(the )-83(bytes )-83(ar)]TJ 0.3332 Tc 16.084 0 Td (es)Tj 0 Tc 1.236 0 Td [(till )-83(accounted )-83(for)]TJ 0.5832 Tc 7.6 0 Td (.T)Tj 0 Tc 1.446 0 Td [(he )-83(31 )-83(additional )-83(bytes )-83(come)]TJ -26.367 -1.2 Td [(fr)18(om )-15(the)]TJ /TT0 1 Tf 4.056 0 Td (dd)Tj /T1_0 1 Tf 1.465 0 Td [(command )-15(r)18(eporting )-15(the )-15(summary )-15(of )-15(bytes )-15(r)18(ead )-15(and )-15(written, )-15(which )-15(it )-15(prints)]TJ -5.522 -1.2 Td (to)Tj /TT0 1 Tf 1.122 0 Td (stdout)Tj /T1_0 1 Tf (.)Tj 0.678 -1.2 Td (The)Tj /TT0 1 Tf 2.07 0 Td (ac_flag)Tj /T1_0 1 Tf 4.596 0 Td [(values )-146(ar)]TJ 0.3963 Tc 4.135 0 Td (ea)Tj -0.018 Tc 1.375 0 Td [(re )-182(w)]TJ 0 Tc 2.086 0 Td [(hat )-146(we )-146(would )-146(expect.)-648(The)]TJ /TT0 1 Tf 12.607 0 Td (F)Tj /T1_0 1 Tf 0.996 0 Td [(\337ag )-146(is )-146(set )-146(for )-146(all )-146(the)]TJ -29.667 -1.2 Td [(child )-32(pr)18(ocesses )-32(except )-32(the )-32(second )-32(child, )-32(which )-32(does )-32(the)]TJ /TT0 1 Tf 24.919 0 Td (execl)Tj /T1_0 1 Tf 0.5316 Tc (.T)Tj 0 Tc 4.395 0 Td (he)Tj /TT0 1 Tf 1.343 0 Td (F)Tj /T1_0 1 Tf 0.882 0 Td [(\337ag )-32(is )-32(not )-32(set )-32(for)]TJ -31.537 -1.2 Td [(the )-4(par)18(ent, )-4(because )-4(the )-4(interactive )-4(shell )-4(that )-4(executed )-4(the )-4(par)18(ent )-4(did )-4(a)]TJ /TT0 1 Tf 31.095 0 Td (fork)Tj /T1_0 1 Tf 2.654 0 Td [(and )-4(then )-4(an)]TJ /TT0 1 Tf -33.749 -1.2 Td (exec)Tj /T1_0 1 Tf 2.662 0 Td [(of )-12(the)]TJ /TT0 1 Tf 2.79 0 Td (a.out)Tj /T1_0 1 Tf 3.262 0 Td [(\336le. )-262(The)-262(\336rst )-12(child )-12(pr)18(ocess )-12(calls)]TJ /TT0 1 Tf 14.335 0 Td (abort)Tj /T1_0 1 Tf 0.262 Tc (,w)Tj 0 Tc 4.346 0 Td [(hich )-12(generates )-12(a)]TJ /TT0 1 Tf 7.405 0 Td (SIGABRT)Tj /T1_0 1 Tf -34.8 -1.2 Td [(signal )-104(to )-104(generate )-104(the )-104(cor)]TJ 0.3536 Tc 11.48 0 Td (ed)Tj 0 Tc 1.444 0 Td [(ump. )-354(Note)-353(that )-104(neither )-104(the)]TJ /TT0 1 Tf 12.792 0 Td (X)Tj /T1_0 1 Tf 0.954 0 Td [(\337ag )-104(nor )-104(the)]TJ /TT0 1 Tf 5.635 0 Td (D)Tj /T1_0 1 Tf 0.954 0 Td [(\337ag )-104(is )-104(on, )-104(as)]TJ -33.258 -1.2 Td [(they )-93(ar)]TJ 0.3427 Tc 3.163 0 Td (en)Tj 0 Tc 1.404 0 Td [(ot )-93(supported )-93(on )-93(Solaris; )-93(the )-93(information )-93(they )-93(r)21(epr)18(esent )-93(can )-93(be )-93(derived )-93(fr)20(om)]TJ -4.566 -1.2 Td (the)Tj /TT0 1 Tf 1.939 0 Td (ac_stat)Tj /T1_0 1 Tf 4.752 0 Td [(\336eld. )-552(The)-552(fourth )-302(child )-302(also )-302(terminates )-302(because )-302(of )-302(a )-302(signal, )-302(but )-302(the)]TJ /TT0 1 Tf -6.691 -1.2 Td (SIGKILL)Tj /T1_0 1 Tf 4.45 0 Td (signal does not generate a cor)Tj 0.25 Tc 13.071 0 Td (ed)Tj 0 Tc 1.34 0 Td [(ump; it just terminates the pr)18(ocess.)]TJ -17.061 -1.2 Td [(As )-41(a )-41(\336nal )-41(note, )-41(the )-41(\336rst )-41(child )-41(has )-41(a )-41(0 )-41(count )-41(for )-41(the )-41(number )-41(of )-41(characters )-41(of )-41(I/O, )-41(yet)]TJ -1.8 -1.2 Td [(this )-92(pr)18(ocess )-92(generated )-92(a)]TJ /TT0 1 Tf 11.192 0 Td (core)Tj /T1_0 1 Tf 2.742 0 Td [(\336le. )-342(It)-341(appears )-92(that )-92(the )-92(I/O )-92(r)19(equir)18(ed )-92(to )-92(write )-92(the)]TJ /TT0 1 Tf 22.666 0 Td (core)Tj /T1_0 1 Tf -36.6 -1.2 Td [(\336le is not char)18(ged to the pr)18(ocess.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3810.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 11.9986 0 0 11.9986 93.5888 332.96 Tm [(8.15 )-776(User)-556(Identi\336cation)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 308.9629 Tm [(Any )-237(pr)18(ocess )-237(can )-237(\336nd )-237(out )-237(its )-237(r)18(eal )-237(and )-237(ef)21(fective )-237(user )-237(ID )-237(and )-237(gr)18(oup )-237(ID.)-735(Sometimes,)]TJ T* [(however)74(,)-349(we)-349(want )-99(to )-99(\336nd )-99(out )-99(the )-99(login )-99(name )-99(of )-99(the )-99(user )-99(who\325s )-99(r)8(unning )-99(the )-99(pr)15(ogram.)]TJ -0.092 Tc 0 -1.2 Td [(We )-403(c)]TJ 0 Tc 2.3 0 Td [(ould )-219(call)]TJ /TT0 1 Tf 4.516 0 Td (getpwuid\(getuid\(\)\))Tj /T1_0 1 Tf 0.4694 Tc (,b)Tj 0 Tc 12.072 0 Td [(ut )-219(what )-219(if )-219(a )-219(single )-219(user )-219(has )-219(multiple )-219(login)]TJ -18.889 -1.2 Td [(names, )-219(each )-219(with )-219(the )-219(same )-219(user )-219(ID?)-719(\(A )-219(person )-219(might )-219(have )-219(multiple )-219(entries )-219(in )-219(the)]TJ T* (passwor)Tj 0.3095 Tc 3.706 0 Td (d\336)Tj 0 Tc 1.526 0 Td [(le )-59(with )-59(the )-59(same )-59(user )-59(ID )-59(to )-59(have )-59(a )-59(dif)14(fer)18(ent )-60(login )-60(shell )-60(for )-60(each )-60(entry)113(.\) )-310(The)]TJ -5.232 -1.2 Td [(system )-300(normally )-300(keeps )-300(track )-300(of )-300(the )-300(name )-300(we )-300(log )-300(in )-300(under )-300(\(Section )-300(6.8\), )-300(and )-300(the)]TJ /TT0 1 Tf T* (getlogin)Tj /T1_0 1 Tf 5.05 0 Td [(function pr)18(ovides a way to fetch that login name.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.582 214.2743 Tm (#include )Tj 0 -2.378 TD (char *getlogin\(void\);)Tj /T1_0 1 Tf 10.533 -2.378 Td (Returns: pointer to string giving login name if OK,)Tj /TT0 1 Tf 22.58 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1670.25 cm 0 0 m 0 563 l 3900 563 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 147.4735 Tm [(This )-23(function )-23(can )-23(fail )-23(if )-23(the )-23(pr)18(ocess )-23(is )-23(not )-23(attached )-23(to )-23(a )-23(terminal )-23(that )-23(a )-23(user )-23(logged )-23(in )-23(to.)]TJ -0.092 Tc 0 -1.2 TD [(We )-184(n)]TJ 0 Tc 2.219 0 Td [(ormally call these pr)18(ocesses)]TJ /T1_2 1 Tf 12.476 0 Td (daemons)Tj /T1_0 1 Tf 0.5 Tc (.W)Tj 0.25 Tc 5.158 0 Td (ed)Tj 0 Tc 1.34 0 Td (iscuss them in Chapter 13.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46824 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.14)]TJ 34.883 0 Td [(Pr)18(ocess )-250(Accounting)]TJ /T1_1 1 Tf 10.95 0 Td (269)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(The )-4(super)8(user )-4(permissions )-4(that )-4(we )-4(gave )-4(the)]TJ /TT0 1 Tf 19.718 0 Td (tsys)Tj /T1_0 1 Tf 2.654 0 Td [(pr)18(ogram )-3(ar)]TJ 0.2535 Tc 4.989 0 Td (er)Tj 0 Tc 1.109 0 Td [(etained )-3(acr)18(oss )-3(the)]TJ /TT0 1 Tf 8.131 0 Td (fork)Tj /T1_0 1 Tf -36.6 -1.2 Td (and)Tj /TT0 1 Tf 1.943 0 Td (exec)Tj /T1_0 1 Tf 2.65 0 Td (that ar)Tj 0.25 Tc 2.861 0 Td (ed)Tj 0 Tc 1.34 0 Td (one by)Tj /TT0 1 Tf 3.216 0 Td (system)Tj /T1_0 1 Tf (.)Tj 7.9995 0 0 7.9995 183.5899 636.9618 Tm [(Some )-281(implementations )-281(have )-281(closed )-281(this )-281(security )-281(hole )-281(by )-281(changing)]TJ /TT0 1 Tf 31.861 0 Td (/bin/sh)Tj /T1_0 1 Tf 4.731 0 Td [(to )-281(r)18(eset )-281(the)]TJ -36.593 -1.25 Td [(ef)18(fective )-104(user )-104(ID )-104(to )-104(the )-104(r)18(eal )-104(user )-104(ID )-104(when )-104(they )-104(don\325t )-104(match.)-604(On )-104(these )-104(systems, )-104(the )-104(pr)18(evious)]TJ -0 -1.25 Td [(example )-24(doesn\325t )-24(work )-24(as )-24(shown.)-524(Instead, )-24(the )-24(same )-24(ef)19(fective )-24(user )-24(ID )-24(will )-24(be )-24(printed )-24(r)18(egar)18(dless)]TJ 0 -1.25 TD [(of the status of the set-user)18(-ID bit on the pr)18(ogram calling)]TJ /TT0 1 Tf 25.272 0 Td (system)Tj /T1_0 1 Tf (.)Tj 9.9994 0 0 9.9994 147.5919 584.9649 Tm [(If )-96(it )-96(is )-96(r)8(unning )-96(with )-96(special )-96(permissions)]TJ 0.0833 Tc 18.148 0 Td (\321e)Tj 0 Tc 1.562 0 Td [(ither )-96(set-user)18(-ID )-96(or )-96(set-gr)18(oup-ID )167(\321 )167(and)]TJ -21.51 -1.2 Td [(wants )-115(to )-115(spawn )-115(another )-115(pr)18(ocess, )-115(a )-115(pr)18(ocess )-115(should )-115(use)]TJ /TT0 1 Tf 25.073 0 Td (fork)Tj /T1_0 1 Tf 2.765 0 Td (and)Tj /TT0 1 Tf 2.058 0 Td (exec)Tj /T1_0 1 Tf 2.765 0 Td [(dir)18(ectly)]TJ 0.3647 Tc 3.264 0 Td (,b)Tj 0 Tc 1.168 0 Td (eing)Tj -37.092 -1.2 Td [(certain )-68(to )-68(change )-68(back )-68(to )-68(normal )-68(permissions )-68(after )-68(the)]TJ /TT0 1 Tf 24.78 0 Td (fork)Tj /T1_0 1 Tf 0.3184 Tc (,b)Tj 0 Tc 3.521 0 Td (efor)Tj 0.3184 Tc 1.735 0 Td (ec)Tj 0 Tc 1.241 0 Td (alling)Tj /TT0 1 Tf 2.829 0 Td (exec)Tj /T1_0 1 Tf 0.5684 Tc (.T)Tj 0 Tc 3.831 0 Td (he)Tj /TT0 1 Tf -37.939 -1.2 Td (system)Tj /T1_0 1 Tf 3.85 0 Td (function should)Tj /T1_2 1 Tf 7.264 0 Td (never)Tj /T1_0 1 Tf 2.473 0 Td [(be used fr)18(om a set-user)18(-ID or a set-gr)18(oup-ID pr)18(ogram.)]TJ 7.9995 0 0 7.9995 183.5902 528.9683 Tm [(One )-37(r)18(eason )-37(for )-37(this )-37(admonition )-37(is )-37(that)]TJ /TT0 1 Tf 17.271 0 Td (system)Tj /T1_0 1 Tf 3.888 0 Td [(invokes )-38(the )-38(shell )-38(to )-38(parse )-38(the )-38(command )-38(string,)]TJ -21.159 -1.25 Td [(and )-163(the )-163(shell )-163(uses )-163(its)]TJ /TT0 1 Tf 10.185 0 Td (IFS)Tj /T1_0 1 Tf 2.213 0 Td [(variable )-163(as )-163(the )-163(input )-163(\336eld )-163(separator)]TJ 0.6634 Tc 16.433 0 Td (.O)Tj 0 Tc 1.699 0 Td [(lder )-163(versions )-163(of )-163(the )-163(shell)]TJ -30.531 -1.25 Td [(didn\325t )-64(r)18(eset )-64(this )-64(variable )-64(to )-64(a )-64(normal )-64(set )-64(of )-64(characters )-64(when )-64(invoked.)-561(As )-64(a )-64(r)18(esult, )-64(a )-64(malicious)]TJ T* [(user )-35(could )-35(set)]TJ /TT0 1 Tf 6.479 0 Td (IFS)Tj /T1_0 1 Tf 2.085 0 Td [(befor)18(e)]TJ /TT0 1 Tf 3.052 0 Td (system)Tj /T1_0 1 Tf 3.885 0 Td [(was )-35(called, )-35(causing)]TJ /TT0 1 Tf 8.878 0 Td (system)Tj /T1_0 1 Tf 3.885 0 Td [(to )-35(execute )-35(a )-35(dif)19(fer)18(ent )-35(pr)18(ogram.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5952 456.9726 Tm [(8.14 )-776(Pr)20(ocess )-278(Accounting)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.593 432.974 Tm [(Most )-143(UNIX )-143(systems )-143(pr)19(ovide )-143(an )-143(option )-143(to )-143(do )-143(pr)18(ocess )-143(accounting.)-643(When )-143(enabled, )-143(the)]TJ 0 -1.2 TD [(kernel )-138(writes )-138(an )-138(accounting )-138(r)19(ecor)]TJ 0.3876 Tc 15.261 0 Td (de)Tj 0 Tc 1.478 0 Td [(ach )-138(time )-138(a )-138(pr)18(ocess )-138(terminates.)-638(These )-138(accounting)]TJ -0.018 Tc -16.738 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(ds )-19(typically )-19(contain )-19(a )-19(small )-19(amount )-19(of )-19(binary )-19(data )-19(with )-19(the )-19(name )-19(of )-19(the )-19(command,)]TJ -0.856 -1.2 Td [(the )-83(amount )-83(of )-83(CPU )-83(time )-83(used, )-83(the )-83(user )-83(ID )-83(and )-83(gr)16(oup )-83(ID, )-83(the )-83(starting )-83(time, )-83(and )-83(so )-83(on.)]TJ -0.092 Tc T* (We)Tj 0 Tc 1.387 0 Td [(\325ll )-7(take )-7(a )-7(closer )-7(look )-7(at )-7(these )-7(accounting )-7(r)16(ecor)18(ds )-7(in )-7(this )-7(section, )-7(as )-7(it )-7(gives )-7(us )-7(a )-7(chance)]TJ -1.387 -1.2 Td [(to look at pr)18(ocesses again and to use the)]TJ /TT0 1 Tf 17.972 0 Td (fread)Tj /T1_0 1 Tf 3.25 0 Td [(function fr)18(om Section 5.9.)]TJ 7.9995 0 0 7.9995 183.5903 352.9788 Tm [(Pr)18(ocess )-4(accounting )-4(is )-4(not )-4(speci\336ed )-4(by )-4(any )-4(of )-4(the )-4(standar)18(ds. )-254(Thus)-254(all )-4(the )-4(implementations )-4(have)]TJ 0 -1.25 TD [(annoying )-141(dif)18(fer)18(ences. )-391(For)-391(example, )-141(the )-141(I/O )-141(counts )-141(maintained )-141(on )-141(Solaris )-141(10 )-141(ar)17(e)-391(in)-391(units )-141(of)]TJ T* [(bytes, )-27(wher)18(eas )-27(Fr)18(eeBSD )-27(8.0 )-27(and )-27(Mac )-27(OS )-27(X )-27(10.6.8 )-27(maintain )-27(units )-27(of )-27(blocks, )-27(although )-27(ther)20(e)-277(is)-277(n)1(o)]TJ -0 -1.25 Td [(distinction )-99(between )-99(dif)18(fer)18(ent )-99(block )-99(sizes, )-99(making )-99(the )-99(counter )-99(ef)19(fectively )-99(useless.)-599(Linux )-99(3.2.0,)]TJ T* (on the other hand, doesn\325t try to maintain I/O statistics at all.)Tj 0 -2.5 TD [(Each )-349(implementation )-349(also )-349(has )-349(its )-349(own )-349(set )-349(of )-349(administrative )-349(commands )-349(to )-349(pr)14(ocess )-349(raw)]TJ 0 -1.25 TD [(accounting )-316(data.)-816(For )-316(example, )-316(Solaris )-316(pr)18(ovides)]TJ /TT0 1 Tf 23.069 0 Td (runacct)Tj /T1_0 1 Tf [(\(1m\) )-316(and)]TJ /TT0 1 Tf 9.074 0 Td (acctcom)Tj /T1_0 1 Tf 4.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.566 Tc 0.333 -0.04 Td (,w)Tj 0 Tc 1.65 0 Td [(her)18(eas)]TJ -39.159 -1.25 Td [(Fr)18(eeBSD pr)18(ovides the)]TJ /TT0 1 Tf 9.832 0 Td (sa)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (8)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td [(command to pr)18(ocess and summarize the raw accounting data.)]TJ 0.3744 Tc 9.9994 0 0 9.9994 147.5925 250.9849 Tm (Af)Tj 0 Tc 1.485 0 Td [(unction )-124(we )-124(haven\325t )-124(described )-124(\()]TJ /TT0 1 Tf 14.117 0 Td (acct)Tj /T1_0 1 Tf 0.3744 Tc (\)e)Tj 0 Tc 3.586 0 Td [(nables )-124(and )-124(disables )-124(pr)18(ocess )-124(accounting.)]TJ -20.988 -1.2 Td [(The )-6(only )-6(use )-6(of )-6(this )-6(function )-6(is )-6(fr)18(om )-6(the)]TJ /TT0 1 Tf 17.905 0 Td (accton)Tj /T1_0 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (8)Tj 0.5 0.04 Td (\))Tj 0.589 -0.04 Td [(command )-6(\(which )-6(happens )-6(to )-6(be )-6(one)]TJ -22.927 -1.2 Td [(of )-382(the )-382(few )-382(similarities )-382(among )-382(platforms\).)]TJ 0.6315 Tc 20.786 0 Td (As)Tj 0 Tc 1.834 0 Td [(uper)8(user )-381(executes)]TJ /TT0 1 Tf 8.984 0 Td (accton)Tj /T1_0 1 Tf 4.231 0 Td [(with )-381(a)]TJ -35.836 -1.2 Td [(pathname )-155(ar)18(gument )-155(to )-155(enable )-155(accounting.)-655(The )-155(accounting )-155(r)17(ecor)18(ds )-155(ar)]TJ 0.4052 Tc 31.814 0 Td (ew)Tj 0 Tc 1.718 0 Td [(ritten )-155(to )-155(the)]TJ -33.532 -1.2 Td [(speci\336ed )-276(\336le, )-276(which )-276(is )-276(usually)]TJ /TT0 1 Tf 14.905 0 Td (/var/account/acct)Tj /T1_0 1 Tf 10.726 0 Td [(on )-276(Fr)18(eeBSD )-276(and )-276(Mac )-276(OS )-276(X,)]TJ /TT0 1 Tf -25.63 -1.2 Td (/var/log/account/pacct)Tj /T1_0 1 Tf 13.482 0 Td [(on )-32(Linux, )-32(and)]TJ /TT0 1 Tf 6.52 0 Td (/var/adm/pacct)Tj /T1_0 1 Tf 8.682 0 Td [(on )-32(Solaris.)-532(Accounting)]TJ -28.684 -1.2 Td [(is turned of)18(f)-250(by)-250(executing)]TJ /TT0 1 Tf 11.54 0 Td (accton)Tj /T1_0 1 Tf 3.85 0 Td [(without any ar)18(guments.)]TJ -13.59 -1.2 Td [(The )-143(str)8(uctur)]TJ 0.3929 Tc 5.557 0 Td (eo)Tj 0.3928 Tc 1.418 0 Td (ft)Tj 0 Tc 1.052 0 Td [(he )-143(accounting )-143(r)18(ecor)18(ds )-143(is )-143(de\336ned )-143(in )-143(the )-143(header)]TJ /TT0 1 Tf 21.723 0 Td ()Tj /T1_0 1 Tf (.)Tj -31.55 -1.2 Td [(Although )-326(the )-326(implementation )-326(of )-326(each )-326(system )-326(dif)18(fers, )-326(the )-326(accounting )-326(r)21(ecor)18(ds )-326(look)]TJ 0 -1.2 Td (something like)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46825 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (264)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 163.9202 668.9599 Tm [(instead )-172(of )-172(needing )-172(to )-172(know )-172(that )-172(the )-172(pr)18(ogram )-172(is )-172(r)18(eally )-172(an)]TJ /TT0 1 Tf 26.974 0 Td (awk)Tj /T1_1 1 Tf 2.222 0 Td [(script )-172(that )-172(we)]TJ -29.195 -1.2 Td (would otherwise have to execute as)Tj /TT0 1 Tf 8.9995 0 0 8.9995 181.9191 640.2616 Tm (awk -f awkexample)Tj /T1_2 1 Tf 10.8 0 Td [(optional-ar)18(guments)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 621.8627 Tm [(2. )-633(Interpr)18(eter )-156(scripts )-156(pr)18(ovide )-156(an )-156(ef)20(\336ciency )-156(gain.)-656(Consider )-156(the )-156(pr)18(evious )-156(example)]TJ 1.633 -1.2 Td [(again. )-275(W)]TJ 0.2753 Tc 4.112 0 Td (ec)Tj 0 Tc 1.198 0 Td [(ould )-25(still )-25(hide )-25(that )-25(the )-25(pr)18(ogram )-25(is )-25(an)]TJ /TT0 1 Tf 16.615 0 Td (awk)Tj /T1_1 1 Tf 2.075 0 Td [(script, )-25(by )-25(wrapping )-25(it )-25(in )-25(a)]TJ -24.001 -1.2 Td (shell script:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 181.9189 581.1651 Tm (awk \325BEGIN {)Tj 2.4 -1.189 Td (for \(i = 0; i < ARGC; i++\))Tj 2.4 -1.189 Td (printf "ARGV[%d] = %s\\n", i, ARGV[i])Tj -2.4 -1.189 Td (exit)Tj -2.4 -1.189 Td (}\325 $*)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 163.92 520.3688 Tm [(The )-146(pr)18(oblem )-146(with )-146(this )-146(solution )-146(is )-146(that )-146(mor)]TJ 0.3958 Tc 19.694 0 Td (ew)Tj 0 Tc 1.709 0 Td [(ork )-146(is )-146(r)18(equir)18(ed. )-396(First,)-396(the )-146(shell)]TJ -0.018 Tc -21.403 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ads )-9(the )-9(command )-9(and )-9(tries )-9(to)]TJ /TT0 1 Tf 13.404 0 Td (execlp)Tj /T1_1 1 Tf 3.859 0 Td [(the )-9(\336lename.)-509(Because )-9(the )-9(shell )-9(script )-9(is)]TJ -18.119 -1.2 Td [(an )-278(executable )-278(\336le )-278(but )-278(isn\325t )-278(a )-278(machine )-278(executable, )-278(an )-278(err)18(or )-278(is )-278(r)18(eturned )-278(and)]TJ /TT0 1 Tf 0 -1.2 TD (execlp)Tj /T1_1 1 Tf 3.998 0 Td [(assumes )-148(that )-148(the )-148(\336le )-148(is )-148(a )-148(shell )-148(script )-148(\(which )-148(it )-148(is\).)-646(Then)]TJ /TT0 1 Tf 26.257 0 Td (/bin/sh)Tj /T1_1 1 Tf 4.598 0 Td (is)Tj -34.852 -1.2 Td [(executed )-286(with )-286(the )-286(pathname )-286(of )-286(the )-286(shell )-286(script )-286(as )-286(its )-286(ar)19(gument. )-536(The)-536(shell)]TJ T* [(corr)18(ectly )-147(r)8(uns )-147(our )-147(script, )-147(but )-147(to )-147(r)10(un )-147(the)]TJ /TT0 1 Tf 18.615 0 Td (awk)Tj /T1_1 1 Tf 2.197 0 Td [(pr)18(ogram, )-147(the )-147(shell )-147(does )-147(a)]TJ /TT0 1 Tf 12.105 0 Td (fork)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -32.917 -1.2 Td (exec)Tj /T1_1 1 Tf 0.6103 Tc (,a)Tj 0 Tc 3.76 0 Td (nd)Tj /TT0 1 Tf 1.803 0 Td (wait)Tj /T1_1 1 Tf 0.8603 Tc (.T)Tj 0 Tc 4.123 0 Td [(hus )-360(ther)18(e)-610(is)-610(m)-1(or)]TJ 0.6104 Tc 8.204 0 Td (eo)Tj 0 Tc 1.635 0 Td [(ver)18(head )-360(involved )-360(in )-360(r)18(eplacing )-360(an)]TJ -19.526 -1.2 Td [(interpr)18(eter script with a shell script.)]TJ -1.633 -1.6 Td [(3. )-633(Interpr)18(eter )-182(scripts )-182(let )-182(us )-182(write )-182(shell )-182(scripts )-182(using )-182(shells )-182(other )-182(than)]TJ /TT0 1 Tf 32.75 0 Td (/bin/sh)Tj /T1_1 1 Tf (.)Tj -31.117 -1.2 Td [(When )-70(it )-70(\336nds )-70(an )-70(executable )-70(\336le )-70(that )-70(isn\325t )-70(a )-70(machine )-70(executable,)]TJ /TT0 1 Tf 28.948 0 Td (execlp)Tj /T1_1 1 Tf 3.92 0 Td [(has )-70(to)]TJ -32.869 -1.2 Td [(choose )-196(a )-196(shell )-196(to )-196(invoke, )-196(and )-196(it )-196(always )-196(uses)]TJ /TT0 1 Tf 21.087 0 Td (/bin/sh)Tj /T1_1 1 Tf 0.6958 Tc (.U)Tj 0 Tc 5.924 0 Td [(sing )-196(an )-196(interpr)18(eter)]TJ -27.011 -1.2 Td [(script, however)74(,)-250(we)-250(can simply write)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 181.9192 367.6779 Tm (#!/bin/csh)Tj /T1_2 1 Tf 0 -1.189 TD [(\(C shell script follows in the interpr)18(eter \336le\))]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 163.9203 338.9797 Tm [(Again, )-55(we )-55(could )-55(wrap )-55(all )-55(of )-55(this )-55(in )-55(a)]TJ /TT0 1 Tf 16.799 0 Td (/bin/sh)Tj /T1_1 1 Tf 4.505 0 Td [(script )-55(\(that )-55(invokes )-55(the )-55(C )-55(shell\),)]TJ -21.304 -1.2 Td (as we described earlier)Tj 0.25 Tc 10.03 0 Td (,b)Tj 0 Tc 1.053 0 Td (ut mor)Tj 0.25 Tc 2.985 0 Td (eo)Tj 0 Tc 1.275 0 Td [(ver)18(head is r)18(equir)18(ed.)]TJ -18.776 -1.8 Td [(None )-19(of )-19(this )-19(would )-19(work )-19(as )-19(we\325ve )-19(shown )-19(her)19(e)-269(if)-269(the )-19(thr)18(ee )-19(shells )-19(and)]TJ /TT0 1 Tf 30.802 0 Td (awk)Tj /T1_1 1 Tf 2.069 0 Td [(didn\325t )-19(use )-19(the)]TJ -32.871 -1.2 Td [(pound sign as their comment character)74(.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5945 263.3842 Tm (8.13)Tj /TT2 1 Tf 3 0 Td (system)Tj /TT1 1 Tf 4.156 0 Td (Function)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5923 241.7855 Tm [(It )-183(is )-183(convenient )-183(to )-183(execute )-183(a )-183(command )-183(string )-183(fr)20(om )-183(within )-183(a )-183(pr)19(ogram. )-433(For)-433(example,)]TJ 0 -1.2 Td [(assume )-37(that )-37(we )-37(want )-37(to )-37(put )-37(a )-37(time-and-date )-37(stamp )-37(into )-37(a )-37(certain )-37(\336le.)]TJ -0.092 Tc 31.364 0 Td [(We )-221(c)]TJ 0 Tc 2.118 0 Td [(ould )-37(use )-37(the)]TJ -33.482 -1.2 Td [(functions )-22(described )-22(in )-22(Section )-22(6.10 )-22(to )-22(do )-22(this: )-22(call)]TJ /TT0 1 Tf 22.11 0 Td (time)Tj /T1_1 1 Tf 2.672 0 Td [(to )-22(get )-22(the )-22(curr)18(ent )-22(calendar )-22(time,)]TJ -24.782 -1.2 Td [(then )-2(call)]TJ /TT0 1 Tf 3.999 0 Td (localtime)Tj /T1_1 1 Tf 5.652 0 Td [(to )-2(convert )-2(it )-2(to )-2(a )-2(br)18(oken-down )-2(time, )-2(then )-2(call)]TJ /TT0 1 Tf 20.19 0 Td (strftime)Tj /T1_1 1 Tf 5.052 0 Td [(to )-2(format)]TJ -34.893 -1.2 Td [(the r)18(esult, and \336nally write the r)18(esult to the \336le.)-500(It is much easier)]TJ 0.25 Tc 28.635 0 Td (,h)Tj 0 Tc 1.082 0 Td [(owever)74(,)-250(to)-250(say)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5917 177.0894 Tm (system\("date > file"\);)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5928 159.0905 Tm [(ISO )-189(C )-189(de\336nes )-189(the)]TJ /TT0 1 Tf 8.679 0 Td (system)Tj /T1_1 1 Tf 4.039 0 Td [(function, )-189(but )-189(its )-189(operation )-189(is )-189(str)18(ongly )-189(system )-189(dependent.)]TJ -12.717 -1.2 Td [(POSIX.1 )-91(includes )-91(the)]TJ /TT0 1 Tf 9.803 0 Td (system)Tj /T1_1 1 Tf 3.941 0 Td [(interface, )-91(expanding )-91(on )-91(the )-91(ISO )-91(C )-91(de\336nition )-91(to )-91(describe)]TJ -13.744 -1.2 Td [(its behavior in a POSIX envir)18(onment.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46826 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (260)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 163.9202 668.9599 Tm (seteuid)Tj /T1_1 1 Tf 4.466 0 Td [(to )-16(set )-16(its )-16(ef)18(fective )-16(user )-16(ID )-16(to )-16(our )-16(user )-16(ID.)-517(This )-16(pr)18(events )-16(any )-16(accidental)]TJ -4.466 -1.2 Td [(misuse of privilege.)-500(At this point, we have)]TJ -0.018 Tc 6.159 -1.68 Td (re)Tj 0 Tc 0.856 0 Td [(al user ID =)-500(our user ID \(unchanged\))]TJ -2.92 -1.2 Td [(ef)18(fective user ID =)-500(our user ID)]TJ -0.495 -1.2 Td [(saved set-user)18(-ID =)]TJ /TT0 1 Tf 9.074 0 Td (root)Tj /T1_1 1 Tf 2.65 0 Td (\(unchanged\))Tj -16.957 -1.84 Td [(5. )-633(The)-279(daemon )-29(starts )-29(out )-29(r)8(unning )-29(with)]TJ /TT0 1 Tf 18.069 0 Td (root)Tj /T1_1 1 Tf 2.679 0 Td [(privileges. )-279(T)]TJ 0.2792 Tc 5.672 0 Td (or)Tj 0 Tc 1.212 0 Td [(un )-29(commands )-29(on )-29(our)]TJ -25.999 -1.2 Td [(behalf, )-59(the )-59(daemon )-59(calls)]TJ /TT0 1 Tf 11.162 0 Td (fork)Tj /T1_1 1 Tf 2.709 0 Td [(and )-59(the )-59(child )-59(calls)]TJ /TT0 1 Tf 8.484 0 Td (setuid)Tj /T1_1 1 Tf 3.909 0 Td [(to )-59(change )-59(its )-59(user )-59(ID)]TJ -26.264 -1.2 Td [(to )-54(our )-54(user )-54(ID.)-554(Because )-54(the )-54(child )-54(is )-54(r)10(unning )-54(with)]TJ /TT0 1 Tf 22.443 0 Td (root)Tj /T1_1 1 Tf 2.704 0 Td [(privileges, )-54(this )-54(changes)]TJ -25.147 -1.2 Td (all of the IDs.)Tj -0.092 Tc 6.383 0 Td [(We )-184(h)]TJ 0 Tc 2.219 0 Td (ave)Tj -0.018 Tc -2.443 -1.68 Td (re)Tj 0 Tc 0.856 0 Td [(al user ID =)-500(our user ID)]TJ -2.92 -1.2 Td [(ef)18(fective user ID =)-500(our user ID)]TJ -0.495 -1.2 Td [(saved set-user)18(-ID =)-500(our user ID)]TJ -3.6 -1.8 Td [(Now )-148(the )-148(daemon )-148(can )-148(safely )-148(execute )-148(commands )-148(on )-148(our )-148(behalf, )-148(because )-148(it )-148(can)]TJ 0 -1.2 TD [(access )-73(only )-73(the )-73(\336les )-73(to )-73(which )-73(we )-73(normally )-73(have )-73(access.)]TJ -0.092 Tc 25.408 0 Td [(We )-257(h)]TJ 0 Tc 2.292 0 Td [(ave )-73(no )-73(additional)]TJ -27.7 -1.2 Td (permissions.)Tj -3.433 -1.8 Td [(By )-8(using )-8(the )-8(saved )-8(set-user)18(-ID )-8(in )-8(this )-8(fashion, )-8(we )-8(can )-8(use )-8(the )-8(extra )-8(privileges )-8(granted )-8(to)]TJ T* [(us )-82(by )-82(the )-82(set-user)18(-ID )-82(of )-82(the )-82(pr)18(ogram )-82(\336le )-82(only )-82(when )-82(we )-82(need )-82(elevated )-82(privileges.)-589(Any)]TJ T* [(other )-53(time, )-53(however)]TJ 0.3026 Tc 8.968 0 Td (,t)Tj 0 Tc 0.879 0 Td [(he )-53(pr)18(ocess )-53(r)8(uns )-53(with )-53(our )-53(normal )-53(permissions.)-553(If )-53(we )-53(wer)18(en\325t )-53(able)]TJ -9.847 -1.2 Td [(to )-113(switch )-113(back )-113(to )-113(the )-113(saved )-113(set-user)18(-ID )-113(at )-113(the )-113(end, )-113(we )-113(might )-113(be )-113(tempted )-113(to )-113(r)17(etain )-113(the)]TJ T* (extra permissions the whole time we wer)Tj 0.25 Tc 18.157 0 Td (er)Tj 0 Tc 1.116 0 Td [(unning \(which is asking for tr)18(ouble\).)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4130.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9986 0 0 11.9986 93.5888 375.7549 Tm [(8.12 )-776(Interpreter)-556(Files)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 355.3574 Tm [(All )-68(contemporary )-68(UNIX )-68(systems )-68(support )-68(interpr)18(eter )-68(\336les.)-568(These )-68(\336les )-68(ar)]TJ 0.3184 Tc 32.386 0 Td (et)Tj 0 Tc 1.123 0 Td [(ext )-68(\336les )-68(that)]TJ -33.509 -1.2 Td (begin with a line of the form)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 328.8003 Tm (#!)Tj /T1_2 1 Tf 1.8 0 Td [(pathname )-350([)-250(optional-ar)18(gument ])]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 312.9424 Tm [(The )-273(space )-273(between )-273(the )-273(exclamation )-273(point )-273(and )-273(the)]TJ /T1_2 1 Tf 24.212 0 Td (pathname)Tj /T1_1 1 Tf 4.467 0 Td [(is )-273(optional.)-773(The )-273(most)]TJ -28.679 -1.2 Td [(common of these interpr)18(eter \336les begin with the line)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 286.3854 Tm (#!/bin/sh)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 270.5275 Tm (The)Tj /T1_2 1 Tf 2.282 0 Td (pathname)Tj /T1_1 1 Tf 4.552 0 Td [(is )-358(normally )-358(an )-358(absolute )-358(pathname, )-358(since )-358(no )-358(special )-358(operations )-358(ar)14(e)]TJ -6.835 -1.2 Td [(performed )-17(on )-17(it )-17(\(i.e.,)]TJ /TT0 1 Tf 9.388 0 Td (PATH)Tj /T1_1 1 Tf 2.667 0 Td [(is )-17(not )-17(used\).)-517(The )-17(r)18(ecognition )-17(of )-17(these )-17(\336les )-17(is )-17(done )-17(within )-17(the)]TJ -12.056 -1.2 Td [(kernel )-62(as )-62(part )-62(of )-62(pr)18(ocessing )-62(the)]TJ /TT0 1 Tf 14.392 0 Td (exec)Tj /T1_1 1 Tf 2.712 0 Td [(system )-62(call.)-562(The )-62(actual )-62(\336le )-62(that )-62(gets )-62(executed )-62(by)]TJ -17.105 -1.2 Td [(the )-69(kernel )-69(is )-69(not )-69(the )-69(interpr)18(eter )-69(\336le, )-69(but )-69(rather )-69(the )-69(\336le )-69(speci\336ed )-69(by )-69(the)]TJ /T1_2 1 Tf 31.902 0 Td (pathname)Tj /T1_1 1 Tf 4.263 0 Td [(on )-69(the)]TJ -36.166 -1.2 Td [(\336rst )-105(line )-105(of )-105(the )-105(interpr)18(eter )-105(\336le.)-605(Be )-105(sur)20(e)-355(to)-355(d)1(if)18(fer)18(entiate )-105(between )-105(the )-105(interpr)18(eter )-105(\336le)]TJ 0.0833 Tc 37.417 0 Td (\321a)Tj 0 Tc -37.417 -1.2 Td [(text )-49(\336le )-49(that )-49(begins )-49(with)]TJ /TT0 1 Tf 11.171 0 Td (#!)Tj /T1_1 1 Tf [(\321and )-49(the )-49(interpr)17(eter)]TJ 0.2993 Tc 10.535 0 Td (,w)Tj 0 Tc 1.383 0 Td [(hich )-49(is )-49(speci\336ed )-49(by )-49(the)]TJ /T1_2 1 Tf 10.54 0 Td (pathname)Tj /T1_1 1 Tf 4.243 0 Td (on)Tj -37.872 -1.2 Td [(the \336rst line of the interpr)18(eter \336le.)]TJ 1.8 -1.2 Td [(Be )-75(awar)]TJ 0.3246 Tc 3.626 0 Td (et)Tj 0 Tc 1.13 0 Td [(hat )-75(systems )-75(place )-75(a )-75(size )-75(limit )-75(on )-75(the )-75(\336rst )-75(line )-75(of )-75(an )-75(interpr)18(eter )-75(\336le.)-571(This)]TJ -6.555 -1.2 Td [(limit )-6(includes )-6(the)]TJ /TT0 1 Tf 7.962 0 Td (#!)Tj /T1_1 1 Tf 0.2559 Tc (,t)Tj 0 Tc 2.032 0 Td (he)Tj /T1_2 1 Tf 1.317 0 Td (pathname)Tj /T1_1 1 Tf 0.2558 Tc (,t)Tj 0 Tc 4.776 0 Td [(he )-6(optional )-6(ar)18(gument, )-6(the )-6(terminating )-6(newline, )-6(and)]TJ -16.086 -1.2 Td (any spaces.)Tj 7.999 0 0 7.999 183.5778 144.9426 Tm [(On )-151(Fr)18(eeBSD )-151(8.0, )-151(this )-151(limit )-151(is )-151(4,097 )-151(bytes.)-651(On )-151(Linux )-151(3.2.0, )-151(the )-151(limit )-151(is )-151(128 )-151(bytes.)-645(Mac )-151(OS )-151(X)]TJ 0 -1.25 TD [(10.6.8 supports a limit of 513 bytes, wher)18(eas Solaris 10 places the limit at 1,024 bytes.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46827 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.1)]TJ 21.8583 Tc 4.888 0 Td (1C)Tj 0 Tc 23.067 0 Td [(hanging )-250(User )-250(IDs )-250(and )-250(Gr)18(oup )-250(IDs)]TJ /T1_1 1 Tf 17.878 0 Td (255)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-4800(i;)]TJ T* [(char )-4200(**ptr;)]TJ T* (extern char **environ;)Tj 0 -2.14 TD [(for \(i = 0; i < argc; i++\))-3600(/* echo all command-line args */)]TJ 2.4 -1.189 Td (printf\("argv[%d]: %s\\n", i, argv[i]\);)Tj -2.4 -2.14 Td [(for \(ptr = environ; *ptr != 0; ptr++\))-1800(/* and all env strings */)]TJ 2.4 -1.189 Td (printf\("%s\\n", *ptr\);)Tj -2.4 -2.14 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4920.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 191.257 476.0009 Tm (Figure 8.17)Tj /T1_0 1 Tf 5.695 0 Td (Echo all command)Tj 8.214 0.09 Td (-)Tj 0.333 -0.09 Td [(line ar)18(guments and all envir)18(onment strings)]TJ 9.9988 0 0 9.9988 129.5848 452.0038 Tm [(When we execute the pr)18(ogram fr)18(om Figur)]TJ 0.25 Tc 18.549 0 Td (e8)Tj 0 Tc 1.229 0 Td (.16, we get)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5825 435.3058 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (argv[0]: echoall)Tj 0 -1.189 TD (argv[1]: myarg1)Tj T* (argv[2]: MY ARG2)Tj T* (USER=unknown)Tj 0 -1.189 TD (PATH=/tmp)Tj 0.6 Tc 0 -1.189 TD ($a)Tj 0 Tc 1.8 0 Td (rgv[0]: echoall)Tj -1.8 -1.189 Td (argv[1]: only 1 arg)Tj T* (USER=sar)Tj T* (LOGNAME=sar)Tj T* (SHELL=/bin/bash)Tj /T1_2 1 Tf 16 -1.189 Td (47 mor)Tj 0.25 Tc 2.843 0 Td (el)Tj 0 Tc 0.917 0 Td [(ines that ar)18(en\325)]TJ 0.25 Tc 5.723 0 Td (ts)Tj 0 Tc 0.972 0 Td (hown)Tj /TT0 1 Tf -26.455 -1.189 Td (HOME=/home/sar)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 288.9233 Tm [(Note )-110(that )-110(the )-110(shell )-110(pr)18(ompt )-110(appear)18(ed )-110(befor)]TJ 0.3599 Tc 19.3 0 Td (et)Tj 0 Tc 1.165 0 Td [(he )-110(printing )-110(of)]TJ /TT0 1 Tf 6.644 0 Td (argv[0])Tj /T1_0 1 Tf 4.56 0 Td [(fr)18(om )-110(the )-110(second)]TJ /TT0 1 Tf -31.668 -1.2 Td (exec)Tj /T1_0 1 Tf 0.5 Tc (.T)Tj 0 Tc 3.763 0 Td [(his occurr)18(ed because the par)18(ent did not)]TJ /TT0 1 Tf 17.647 0 Td (wait)Tj /T1_0 1 Tf 2.65 0 Td [(for this child pr)18(ocess to \336nish.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2769.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 11.9978 0 0 11.9978 93.5832 240.9146 Tm [(8.11 )-776(Changing)-556(User )-278(IDs )-278(and )-278(Gr)20(oup )-278(IDs)]TJ /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 216.9189 Tm [(In )-45(the )-45(UNIX )-45(System, )-45(privileges, )-45(such )-45(as )-45(being )-45(able )-45(to )-45(change )-45(the )-45(system\325s )-45(notion )-45(of )-45(the)]TJ 0 -1.2 TD [(curr)18(ent )-41(date, )-41(and )-41(access )-41(contr)16(ol, )-42(such )-42(as )-42(being )-42(able )-42(to )-42(r)18(ead )-42(or )-42(write )-42(a )-42(particular )-42(\336le, )-42(ar)23(e)]TJ -0 -1.2 Td [(based )-85(on )-85(user )-85(and )-85(gr)18(oup )-85(IDs.)-585(When )-85(our )-85(pr)18(ograms )-85(need )-85(additional )-85(privileges )-85(or )-85(need)]TJ T* [(to )-166(gain )-166(access )-166(to )-166(r)16(esour)18(ces )-167(that )-167(they )-167(curr)18(ently )-167(ar)18(en\325t )-167(allowed )-167(to )-167(access, )-167(they )-167(need )-167(to)]TJ T* [(change )-176(their )-176(user )-176(or )-176(gr)18(oup )-176(ID )-176(to )-176(an )-176(ID )-176(that )-176(has )-176(the )-176(appr)22(opriate )-176(privilege )-176(or )-176(access.)]TJ T* (Similarly)Tj 0.2744 Tc 3.912 0 Td (,w)Tj 0 Tc 1.358 0 Td [(hen )-24(our )-24(pr)17(ograms )-24(need )-24(to )-24(lower )-24(their )-24(privileges )-24(or )-24(pr)18(event )-24(access )-24(to )-24(certain)]TJ -0.018 Tc -5.27 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sour)18(ces, )-44(they )-44(do )-44(so )-44(by )-44(changing )-44(either )-44(their )-44(user )-44(ID )-44(or )-44(gr)18(oup )-44(ID )-44(to )-44(an )-44(ID )-44(without )-44(the)]TJ -0.856 -1.2 Td [(privilege or ability access to the r)18(esour)18(ce.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46828 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.10)]TJ /TT0 1 Tf 36.579 0 Td (exec)Tj /T1_0 1 Tf 2.9 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (249)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(In )-15(the )-15(pr)18(ogram )-15(shown )-15(in )-15(Figur)]TJ 0.2651 Tc 13.714 0 Td (e8)Tj 0 Tc 1.244 0 Td [(.13, )-15(the )-15(par)18(ent )-15(goes )-15(\336rst.)-515(The )-15(child )-15(goes )-15(\336rst )-15(if )-15(we)]TJ -16.758 -1.2 Td (change the lines following the)Tj /TT0 1 Tf 13.504 0 Td (fork)Tj /T1_0 1 Tf 2.65 0 Td (to be)Tj /TT0 1 Tf 0.6 Tc 8.9995 0 0 8.9995 147.5911 640.2616 Tm (}e)Tj 0 Tc 1.8 0 Td (lse if \(pid == 0\) {)Tj 0.6 -1.189 Td (charatatime\("output from child\\n"\);)Tj 0 -1.189 TD (TELL_PARENT\(getppid\(\)\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td [(WAIT_CHILD\(\); )-4200(/*)-600(child goes first */)]TJ 0 -1.189 TD (charatatime\("output from parent\\n"\);)Tj -2.4 -1.189 Td (})Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 558.0665 Tm [(Exer)18(cise 8.4 continues this example.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5581.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9986 0 0 11.9986 93.5888 516.0381 Tm (8.10)Tj /TT2 1 Tf 3 0 Td (exec)Tj /TT1 1 Tf 2.956 0 Td (Functions)Tj /T1_0 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5844 492.0409 Tm [(We )-194(m)]TJ 0 Tc 2.53 0 Td [(entioned )-10(in )-10(Section )-10(8.3 )-10(that )-10(one )-10(use )-10(of )-10(the)]TJ /TT0 1 Tf 18.663 0 Td (fork)Tj /T1_0 1 Tf 2.66 0 Td [(function )-10(is )-10(to )-10(cr)18(eate )-10(a )-10(new )-10(pr)20(ocess)]TJ -23.853 -1.2 Td [(\(the )-64(child\) )-64(that )-64(then )-64(causes )-64(another )-64(pr)20(ogram )-64(to )-64(be )-64(executed )-64(by )-64(calling )-64(one )-64(of )-64(the)]TJ /TT0 1 Tf 36.6 0 Td (exec)Tj /T1_0 1 Tf -36.6 -1.2 Td [(functions. )-361(When)]TJ 0.3606 Tc 7.995 0 Td (ap)Tj -0.018 Tc 1.462 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-111(calls )-111(one )-111(of )-111(the)]TJ /TT0 1 Tf 9.397 0 Td (exec)Tj /T1_0 1 Tf 2.761 0 Td [(functions, )-110(that )-110(pr)18(ocess )-110(is )-110(completely)]TJ -0.018 Tc -22.537 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(placed )-284(by )-284(the )-284(new )-284(pr)16(ogram, )-284(and )-284(the )-284(new )-284(pr)18(ogram )-284(starts )-284(executing )-284(at )-284(its)]TJ /TT0 1 Tf 35.744 0 Td (main)Tj /T1_0 1 Tf -36.6 -1.2 Td [(function. )-285(The)-284(pr)18(ocess )-35(ID )-35(does )-35(not )-35(change )-35(acr)20(oss )-34(an)]TJ /TT0 1 Tf 23.302 0 Td (exec)Tj /T1_0 1 Tf 0.2845 Tc (,b)Tj 0 Tc 3.487 0 Td [(ecause )-34(a )-34(new )-34(pr)18(ocess )-34(is )-34(not)]TJ -26.79 -1.2 Td [(cr)18(eated;)]TJ /TT0 1 Tf 4.006 0 Td (exec)Tj /T1_0 1 Tf 2.94 0 Td [(mer)18(ely )-290(r)18(eplaces )-290(the )-290(curr)18(ent )-290(pr)18(ocess )167(\321 )167(its)-541(text, )-290(data, )-290(heap, )-290(and )-290(stack)]TJ -6.946 -1.2 Td [(segments )167(\321 )167(with)]TJ 0.25 Tc 7.603 0 Td (ab)Tj 0 Tc 1.303 0 Td [(rand-new pr)18(ogram fr)18(om disk.)]TJ -7.106 -1.2 Td (Ther)Tj 0.308 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.287 0 Td [(re )-94(s)]TJ 0 Tc 1.588 0 Td [(even )-58(dif)18(fer)18(ent)]TJ /TT0 1 Tf 6.514 0 Td (exec)Tj /T1_0 1 Tf 2.708 0 Td [(functions, )-58(but )-58(we\325ll )-58(often )-58(simply )-58(r)18(efer )-58(to )-58(\324)38(\324the)]TJ /TT0 1 Tf 20.652 0 Td (exec)Tj /T1_0 1 Tf -36.6 -1.2 Td (function,\325)Tj 0.4388 Tc 4.198 0 Td (\325w)Tj 0 Tc 1.551 0 Td [(hich )-189(means )-189(that )-189(we )-189(could )-189(use )-189(any )-189(of )-189(the )-189(seven )-189(functions.)-687(These )-189(seven)]TJ -5.749 -1.2 Td [(functions )-116(r)18(ound )-116(out )-116(the )-116(UNIX )-116(System )-116(pr)16(ocess )-116(contr)18(ol )-116(primitives.)]TJ -0.055 Tc 30.268 0 Td (Wi)Tj 0 Tc 1.236 0 Td (th)Tj /TT0 1 Tf 1.274 0 Td (fork)Tj /T1_0 1 Tf [(,)-366(we)-366(c)-1(an)]TJ -32.779 -1.2 Td [(cr)18(eate )-49(new )-49(pr)18(ocesses; )-49(and )-49(with )-49(the)]TJ /TT0 1 Tf 15.853 0 Td (exec)Tj /T1_0 1 Tf 2.699 0 Td [(functions, )-49(we )-49(can )-49(initiate )-49(new )-49(pr)20(ograms. )-299(The)]TJ /TT0 1 Tf -18.551 -1.2 Td (exit)Tj /T1_0 1 Tf 2.694 0 Td [(function )-44(and )-44(the)]TJ /TT0 1 Tf 7.67 0 Td (wait)Tj /T1_0 1 Tf 2.694 0 Td [(functions )-44(handle )-44(termination )-44(and )-44(waiting )-44(for )-44(termination.)]TJ -13.059 -1.2 Td [(These )-160(ar)]TJ 0.4097 Tc 3.864 0 Td (et)Tj 0 Tc 1.215 0 Td [(he )-160(only )-160(pr)18(ocess )-160(contr)18(ol )-160(primitives )-160(we )-160(need.)]TJ -0.092 Tc 20.821 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-160(use )-160(these )-160(primitives )-160(in)]TJ -27.286 -1.2 Td (later sections to build additional functions, such as)Tj /TT0 1 Tf 22.635 0 Td (popen)Tj /T1_0 1 Tf 3.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (system)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 135.344 311.2228 Tm (#include )Tj 0 -2.14 TD (int execl\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 18.944 0 Td (onst char *)Tj /T1_2 1 Tf [(ar)18(g0)]TJ /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 10.215 0 Td (.. /* \(char *\)0 */ \);)Tj -29.159 -2.14 Td (int execv\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 18.944 0 Td (har *const)Tj /T1_2 1 Tf 6.6 0 Td [(ar)18(gv)]TJ /TT0 1 Tf ([]\);)Tj -25.544 -2.14 Td (int execle\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 19.544 0 Td (onst char *)Tj /T1_2 1 Tf [(ar)18(g0)]TJ /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 10.215 0 Td (..)Tj -23.159 -1.189 Td (/* \(char *\)0, char *const)Tj /T1_2 1 Tf 15.6 0 Td (envp)Tj /TT0 1 Tf ([] */ \);)Tj -22.2 -2.14 Td (int execve\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 19.544 0 Td (har *const)Tj /T1_2 1 Tf 6.6 0 Td [(ar)18(gv)]TJ /TT0 1 Tf ([], char *const)Tj /T1_2 1 Tf 11.415 0 Td (envp)Tj /TT0 1 Tf ([]\);)Tj -37.559 -2.14 Td (int execlp\(const char *)Tj /T1_2 1 Tf (\336lename)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 18.962 0 Td (onst char *)Tj /T1_2 1 Tf [(ar)18(g0)]TJ /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 10.215 0 Td (.. /* \(char *\)0 */ \);)Tj -29.177 -2.14 Td (int execvp\(const char *)Tj /T1_2 1 Tf (\336lename)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 18.962 0 Td (har *const)Tj /T1_2 1 Tf 6.6 0 Td [(ar)18(gv)]TJ /TT0 1 Tf ([]\);)Tj -25.562 -2.14 Td (int fexecve\(int)Tj /T1_2 1 Tf 9.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (har *const)Tj /T1_2 1 Tf 6.6 0 Td [(ar)18(gv)]TJ /TT0 1 Tf ([], char *const)Tj /T1_2 1 Tf 11.415 0 Td (envp)Tj /TT0 1 Tf ([]\);)Tj /T1_0 1 Tf -10.096 -2.14 Td [(All seven r)18(eturn:)]TJ /TT3 1 Tf 7.651 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)74(,)-250(no)-250(r)18(eturn on success)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1398.25 cm 0 0 m 0 1826 l 3900 1826 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46829 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.9)]TJ 36.334 0 Td [(Race )-250(Conditions)]TJ /T1_1 1 Tf 9.499 0 Td (245)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm (8.8)Tj /TT1 1 Tf 3 0 Td (wait3)Tj /TT0 1 Tf 3.556 0 Td (and)Tj /TT1 1 Tf 2.334 0 Td (wait4)Tj /TT0 1 Tf 3.556 0 Td (Functions)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5918 644.9613 Tm [(Most )-280(UNIX )-280(system )-280(implementations )-280(pr)18(ovide )-280(two )-280(additional )-280(functions:)]TJ /TT2 1 Tf 33.777 0 Td (wait3)Tj /T1_0 1 Tf 3.53 0 Td (and)Tj /TT2 1 Tf -37.307 -1.2 Td (wait4)Tj /T1_0 1 Tf 0.7161 Tc (.H)Tj 0 Tc 4.798 0 Td (istorically)Tj 0.4661 Tc 4.244 0 Td (,t)Tj 0 Tc 1.042 0 Td [(hese )-216(two )-216(variants )-216(descend )-216(fr)18(om )-216(the )-216(BSD )-216(branch )-216(of )-216(the )-216(UNIX)]TJ -10.084 -1.2 Td [(System. )-387(The)-387(only )-137(featur)]TJ 0.3871 Tc 11.121 0 Td (ep)Tj -0.018 Tc 1.467 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vided )-137(by )-137(these )-137(two )-137(functions )-137(that )-137(isn\325t )-137(pr)17(ovided )-137(by )-137(the)]TJ /TT2 1 Tf -13.511 -1.2 Td (wait)Tj /T1_0 1 Tf (,)Tj /TT2 1 Tf 2.903 0 Td (waitid)Tj /T1_0 1 Tf 0.2529 Tc (,a)Tj 0 Tc 4.603 0 Td (nd)Tj /TT2 1 Tf 1.446 0 Td (waitpid)Tj /T1_0 1 Tf 4.453 0 Td [(functions )-3(is )-3(an )-3(additional )-3(ar)18(gument )-3(that )-3(allows )-3(the )-3(kernel)]TJ -13.405 -1.2 Td [(to )-109(r)18(eturn )-109(a )-109(summary )-109(of )-109(the )-109(r)17(esour)18(ces )-109(used )-109(by )-109(the )-109(terminated )-109(pr)18(ocess )-109(and )-109(all )-109(its )-109(child)]TJ -0 -1.2 Td [(pr)18(ocesses.)]TJ /TT2 1 Tf 8.9995 0 0 8.9995 147.5905 567.066 Tm (#include )Tj 0 -1.189 TD (#include )Tj T* (#include )Tj T* (#include )Tj 0 -1.902 TD (pid_t wait3\(int *)Tj /T1_2 1 Tf (statloc)Tj /TT2 1 Tf 0.6 Tc (,i)Tj 0 Tc 14.628 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (options)Tj /TT2 1 Tf 0.6 Tc (,s)Tj 0 Tc 4.744 0 Td (truct rusage *)Tj /T1_2 1 Tf (rusage)Tj /TT2 1 Tf (\);)Tj -21.172 -1.902 Td (pid_t wait4\(pid_t)Tj /T1_2 1 Tf 10.8 0 Td (pid)Tj /TT2 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.078 0 Td (nt *)Tj /T1_2 1 Tf (statloc)Tj /TT2 1 Tf 0.6 Tc (,i)Tj 0 Tc 6.828 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (options)Tj /TT2 1 Tf 0.6 Tc (,s)Tj 0 Tc 4.744 0 Td (truct rusage *)Tj /T1_2 1 Tf (rusage)Tj /TT2 1 Tf (\);)Tj /T1_0 1 Tf -8.346 -1.902 Td [(Both r)18(eturn: pr)18(ocess ID if OK, 0, or)]TJ /TT3 1 Tf 15.56 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4791.25 cm 0 0 m 0 970 l 3900 970 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 464.3843 Tm [(The )-93(r)18(esour)18(ce )-93(information )-93(includes )-93(such )-93(statistics )-93(as )-93(the )-93(amount )-93(of )-93(user )-93(CPU )-93(time,)]TJ -1.8 -1.2 Td [(amount )-2(of )-2(system )-2(CPU )-2(time, )-2(number )-2(of )-2(page )-2(faults, )-2(number )-2(of )-2(signals )-2(r)18(eceived, )-2(and )-2(the)]TJ 0 -1.2 TD [(like. )-454(Refer)-454(to )-204(the)]TJ /TT2 1 Tf 8.545 0 Td (getrusage)Tj /T1_0 1 Tf 5.4 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.787 -0.04 Td [(manual )-204(page )-204(for )-204(additional )-204(details.)-703(\(This )-204(r)18(esour)18(ce)]TJ -15.565 -1.2 Td [(information )-114(dif)18(fers )-114(fr)18(om )-114(the )-114(r)19(esour)18(ce )-114(limits )-114(we )-114(described )-114(in )-114(Section )-114(7.1)57(1.\) )-364(Figur)]TJ 0.3637 Tc 36.462 0 Td (e8)Tj 0 Tc 1.343 0 Td [(.1)55(1)]TJ -37.805 -1.2 Td [(details the various ar)18(guments supported by the)]TJ /TT2 1 Tf 21.195 0 Td (wait)Tj /T1_0 1 Tf 2.65 0 Td (functions.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1498.25 4024.25 cm 0 0 m 3495 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 345.7698 394.369 Tm [(Fr)18(eeBSD )-1416(Linux)-1382(Mac OS X)-1198(Solaris)]TJ 1.275 -1.25 Td [(8.0 )-2993(3.2.0)-2618(10.6.8 )-2868(10)]TJ -25.137 0.625 Td (Function)Tj /T1_2 1 Tf 6.276 0 Td [(pid)-2211(options)-1516(rusage)]TJ /T1_0 1 Tf 12.133 0 Td (POSIX.1)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1498.25 3804.25 cm 0 0 m 3495 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1498.25 3784.25 cm 0 0 m 3495 0 l S Q Q BT /TT2 1 Tf 7.9981 0 0 7.9981 153.8231 370.3511 Tm (wait)Tj /T1_0 1 Tf 4.9125 Tc 20.076 0 Td (\245\245)Tj 4.262 Tc 10.387 0 Td (\245\245\245)Tj /TT2 1 Tf 0 Tc -30.462 -1.25 Td (waitid)Tj /T1_0 1 Tf 3.716 Tc 6.747 0 Td [(\245\245 )-719(\245)]TJ 4.262 Tc 23.715 0 Td (\245\245\245)Tj /TT2 1 Tf 0 Tc -30.462 -1.25 Td (waitpid)Tj /T1_0 1 Tf 3.716 Tc 6.747 0 Td [(\245\245 )-719(\245)]TJ 4.262 Tc 18.847 0 Td (\245\245\245\245)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1498.25 3464.25 cm 0 0 m 3495 0 l S Q Q BT /TT2 1 Tf 0 Tc 7.9976 0 0 7.9976 153.8138 338.3385 Tm (wait3)Tj /T1_0 1 Tf 3.716 Tc 11.069 0 Td [(\245\245 )-1915(\245)]TJ 4.262 Tc 19.393 0 Td (\245\245\245)Tj /TT2 1 Tf 0 Tc -30.462 -1.25 Td (wait4)Tj /T1_0 1 Tf 3.716 Tc 6.747 0 Td [(\245\245\245 )-1915(\245)]TJ 4.262 Tc 23.715 0 Td (\245\245\245)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1498.25 3244.25 cm 0 0 m 3495 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3375.25 3244.25 cm 0 0 m 0 780 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2952.25 3244.25 cm 0 0 m 0 780 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2972.25 3244.25 cm 0 0 m 0 780 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2626.25 3244.25 cm 0 0 m 0 780 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2270.25 3244.25 cm 0 0 m 0 780 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1934.25 3244.25 cm 0 0 m 0 780 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4993.25 3244.25 cm 0 0 m 0 780 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1498.25 3244.25 cm 0 0 m 0 780 l S Q Q BT /T1_1 1 Tf 0 Tc 7.9971 0 0 7.9971 194.0901 306.3297 Tm [(Figure 8.1)37(1)]TJ /T1_0 1 Tf 5.658 0 Td [(Ar)18(guments supported by)]TJ /TT2 1 Tf 11.453 0 Td (wait)Tj /T1_0 1 Tf 2.65 0 Td (functions on various systems)Tj -21.081 -2.5 Td (The)Tj /TT2 1 Tf 2.127 0 Td (wait3)Tj /T1_0 1 Tf 3.453 0 Td [(function )-203(was )-203(included )-203(in )-203(earlier )-203(versions )-203(of )-203(the )-203(Single )-203(UNIX )-203(Speci\336cation.)-699(In)]TJ -0.111 Tc -5.579 -1.25 Td (Ve)Tj 0 Tc 1.09 0 Td [(rsion )-421(2,)]TJ /TT2 1 Tf 4.329 0 Td (wait3)Tj /T1_0 1 Tf 3.671 0 Td [(was )-421(moved )-421(to )-421(the )-421(legacy )-421(category;)]TJ /TT2 1 Tf 18.003 0 Td (wait3)Tj /T1_0 1 Tf 3.671 0 Td [(was )-421(r)18(emoved )-421(fr)18(om )-421(the)]TJ -30.764 -1.25 Td [(speci\336cation in V)111(ersion 3.)]TJ /TT0 1 Tf 11.9957 0 0 11.9957 93.566 230.3571 Tm [(8.9 )-1332(Race)-556(Conditions)]TJ /T1_0 1 Tf 9.9964 0 0 9.9964 129.5531 206.3657 Tm [(For )-189(our )-189(purposes, )-189(a )-189(race )-189(condition )-189(occurs )-189(when )-189(multiple )-189(pr)18(ocesses )-189(ar)]TJ 0.4394 Tc 32.468 0 Td (et)Tj 0 Tc 1.244 0 Td [(rying )-189(to )-189(do)]TJ -33.712 -1.2 Td [(something )-93(with )-93(shar)18(ed )-93(data )-93(and )-93(the )-93(\336nal )-93(outcome )-93(depends )-93(on )-93(the )-93(or)19(der )-93(in )-93(which )-93(the)]TJ T* [(pr)18(ocesses )-22(r)8(un. )-272(The)]TJ /TT2 1 Tf 8.761 0 Td (fork)Tj /T1_0 1 Tf 2.672 0 Td [(function )-22(is )-22(a )-22(lively )-22(br)18(eeding )-22(gr)18(ound )-22(for )-22(race )-22(conditions, )-22(if )-22(any)]TJ -11.433 -1.2 Td [(of )-43(the )-43(logic )-43(after )-43(the)]TJ /TT2 1 Tf 9.278 0 Td (fork)Tj /T1_0 1 Tf 2.693 0 Td [(either )-43(explicitly )-43(or )-43(implicitly )-43(depends )-43(on )-43(whether )-43(the )-43(par)20(ent)]TJ -11.971 -1.2 Td [(or )-8(child )-8(r)8(uns )-8(\336rst )-8(after )-8(the)]TJ /TT2 1 Tf 11.877 0 Td (fork)Tj /T1_0 1 Tf 0.5085 Tc (.I)Tj 0.2585 Tc 3.496 0 Td (ng)Tj 0 Tc 1.396 0 Td [(eneral, )-8(we )-8(cannot )-8(pr)18(edict )-8(which )-8(pr)18(ocess )-8(r)8(uns )-8(\336rst.)]TJ -16.768 -1.2 Td [(Even )-66(if )-66(we )-66(knew )-66(which )-66(pr)18(ocess )-66(would )-66(r)9(un )-66(\336rst, )-66(what )-66(happens )-66(after )-66(that )-66(pr)18(ocess )-66(starts)]TJ -0.008 Tc T* (ru)Tj 0 Tc 0.99 0 Td (nning depends on the system load and the kernel\325s scheduling algorith\ m.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46830 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (244)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm (8.7)Tj /TT1 1 Tf 3 0 Td (waitid)Tj /TT0 1 Tf 4.156 0 Td (Function)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(The )-36(Single )-36(UNIX )-36(Speci\336cation )-36(includes )-36(an )-36(additional )-36(function )-36(to )-36(r)22(etrieve )-35(the )-35(exit )-35(status)]TJ 0 -1.2 TD [(of a pr)18(ocess. )-250(The)]TJ /TT2 1 Tf 7.848 0 Td (waitid)Tj /T1_1 1 Tf 3.85 0 Td (function is similar to)Tj /TT2 1 Tf 9.369 0 Td (waitpid)Tj /T1_1 1 Tf 0.25 Tc (,b)Tj 0 Tc 5.253 0 Td [(ut pr)18(ovides extra \337exibility)111(.)]TJ /TT2 1 Tf 8.9995 0 0 8.9995 147.5911 613.8632 Tm (#include )Tj 0 -1.902 TD (int waitid\(idtype_t)Tj /T1_2 1 Tf 12 0 Td (idtype)Tj /TT2 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.3 0 Td (d_t)Tj /T1_2 1 Tf 2.4 0 Td (id)Tj /TT2 1 Tf 0.6 Tc (,s)Tj 0 Tc 2.578 0 Td (iginfo_t *)Tj /T1_2 1 Tf (infop)Tj /TT2 1 Tf 0.6 Tc (,i)Tj 0 Tc 9.856 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (options)Tj /TT2 1 Tf (\);)Tj /T1_1 1 Tf -6.083 -1.902 Td (Returns: 0 if OK,)Tj /TT3 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5751.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 559.1929 Tm (Like)Tj /TT2 1 Tf 2.426 0 Td (waitpid)Tj /T1_1 1 Tf (,)Tj /TT2 1 Tf 4.939 0 Td (waitid)Tj /T1_1 1 Tf 4.089 0 Td [(allows )-239(a )-239(pr)18(ocess )-239(to )-239(specify )-239(which )-239(childr)18(en )-239(to )-239(wait )-239(for)73(.)]TJ -13.254 -1.2 Td [(Instead )-8(of )-8(encoding )-8(this )-8(information )-8(in )-8(a )-8(single )-8(ar)16(gument )-8(combined )-8(with )-8(the )-8(pr)18(ocess )-8(ID)]TJ 0 -1.2 TD [(or )-53(pr)18(ocess )-53(gr)18(oup )-53(ID, )-53(two )-53(separate )-53(ar)20(guments )-53(ar)]TJ 0.3028 Tc 21.416 0 Td (eu)Tj 0 Tc 1.385 0 Td [(sed. )-303(The)]TJ /T1_2 1 Tf 4.294 0 Td (id)Tj /T1_1 1 Tf 1.081 0 Td [(parameter )-53(is )-53(interpr)18(eted)]TJ -28.175 -1.2 Td (based on the value of)Tj /T1_2 1 Tf 9.649 0 Td (idtype)Tj /T1_1 1 Tf 0.5 Tc (.T)Tj 0 Tc 3.863 0 Td (he types supported ar)Tj 0.25 Tc 9.66 0 Td (es)Tj 0 Tc 1.153 0 Td (ummarized in Figur)Tj 0.25 Tc 8.901 0 Td (e8)Tj 0 Tc 1.229 0 Td (.9.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1546.25 5032.25 cm 0 0 m 3400 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 158.5915 495.1709 Tm (Constant )Tj 20.918 0 Td (Description)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1546.25 4912.25 cm 0 0 m 3400 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1546.25 4892.25 cm 0 0 m 3400 0 l S Q Q BT /TT2 1 Tf 7.9981 0 0 7.9981 158.5819 481.1445 Tm (P_PID)Tj /T1_1 1 Tf -0.092 Tc 5.495 0 Td (Wa)Tj 0 Tc 1.408 0 Td [(it for a particular pr)18(ocess:)]TJ /T1_2 1 Tf 11.532 0 Td (id)Tj /T1_1 1 Tf 1.028 0 Td [(contains the pr)18(ocess ID of the child to wait for)74(.)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1546.25 4772.25 cm 0 0 m 3400 0 l S Q Q BT /TT2 1 Tf 7.9976 0 0 7.9976 158.5724 469.1192 Tm (P_PGID)Tj /T1_1 1 Tf -0.092 Tc 5.495 0 Td (Wa)Tj 0 Tc 1.408 0 Td [(it for any child pr)18(ocess in a particular pr)18(ocess gr)18(oup:)]TJ /T1_2 1 Tf 23.49 0 Td (id)Tj /T1_1 1 Tf 1.028 0 Td [(contains the pr)18(ocess)]TJ -25.926 -1.25 Td [(gr)18(oup ID of the childr)18(en to wait for)74(.)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1546.25 4552.25 cm 0 0 m 3400 0 l S Q Q BT /TT2 1 Tf 7.9971 0 0 7.9971 158.5629 447.099 Tm (P_ALL)Tj /T1_1 1 Tf -0.092 Tc 5.495 0 Td (Wa)Tj 0 Tc 1.408 0 Td [(it for any child pr)18(ocess:)]TJ /T1_2 1 Tf 10.543 0 Td (id)Tj /T1_1 1 Tf 1.028 0 Td [(is ignor)18(ed.)]TJ ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1546.25 4432.25 cm 0 0 m 3400 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1966.25 4432.25 cm 0 0 m 0 600 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4946.25 4432.25 cm 0 0 m 0 600 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1546.25 4432.25 cm 0 0 m 0 600 l S Q Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 247.9079 425.0814 Tm (Figure 8.9)Tj /T1_1 1 Tf 4.945 0 Td (The)Tj /T1_2 1 Tf 1.924 0 Td (idtype)Tj /T1_1 1 Tf 2.75 0 Td (constants for)Tj /TT2 1 Tf 5.928 0 Td (waitid)Tj /T1_1 1 Tf 9.9958 0 0 9.9958 147.5382 398.6925 Tm (The)Tj /T1_2 1 Tf 1.97 0 Td (options)Tj /T1_1 1 Tf 3.24 0 Td [(ar)18(gument )-46(is )-46(a )-46(bitwise )-46(OR )-46(of )-46(the )-46(\337ags )-46(shown )-46(in )-46(Figur)]TJ 0.2958 Tc 23.709 0 Td (e8)Tj 0 Tc 1.275 0 Td [(.10. )-296(These)-296(\337ags)]TJ -31.993 -1.2 Td [(indicate which state changes the caller is inter)18(ested in.)]TJ ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1466.25 3668.25 cm 0 0 m 3560 0 l S Q Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 158.5439 358.6878 Tm (Constant )Tj 21.921 0 Td (Description)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1466.25 3548.25 cm 0 0 m 3560 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1466.25 3528.25 cm 0 0 m 3560 0 l S Q Q BT /TT2 1 Tf 7.9957 0 0 7.9957 150.5187 344.6738 Tm (WCONTINUED)Tj /T1_1 1 Tf -0.092 Tc 7.5 0 Td (Wa)Tj 0 Tc 1.408 0 Td [(it for a pr)18(ocess that has pr)18(eviously stopped and has been continued, and)]TJ -1.408 -1.25 Td [(whose status has not yet been r)18(eported.)]TJ ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1466.25 3308.25 cm 0 0 m 3560 0 l S Q Q BT /TT2 1 Tf 7.9952 0 0 7.9952 150.5097 322.6663 Tm (WEXITED)Tj /T1_1 1 Tf -0.092 Tc 7.5 0 Td (Wa)Tj 0 Tc 1.408 0 Td [(it for pr)18(ocesses that have exited.)]TJ ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1466.25 3188.25 cm 0 0 m 3560 0 l S Q Q BT /TT2 1 Tf 7.9947 0 0 7.9947 150.5006 310.6549 Tm (WNOHANG)Tj /T1_1 1 Tf 7.5 0 Td [(Return immediately instead of blocking if ther)18(e)-250(is)-250(no)-250(child exit status available.)]TJ ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1466.25 3068.25 cm 0 0 m 3560 0 l S Q Q BT /TT2 1 Tf 7.9942 0 0 7.9942 150.4916 298.6449 Tm (WNOWAIT)Tj /T1_1 1 Tf 7.5 0 Td [(Don\325t destr)18(oy the child exit status.)-500(The child\325s exit status can be r)18(etrieved by a)]TJ 0 -1.25 TD (subsequent call to)Tj /TT2 1 Tf 8.181 0 Td (wait)Tj /T1_1 1 Tf (,)Tj /TT2 1 Tf 2.9 0 Td (waitid)Tj /T1_1 1 Tf 0.25 Tc (,o)Tj 0 Tc 4.646 0 Td (r)Tj /TT2 1 Tf 0.645 0 Td (waitpid)Tj /T1_1 1 Tf (.)Tj ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1466.25 2848.25 cm 0 0 m 3560 0 l S Q Q BT /TT2 1 Tf 7.9938 0 0 7.9938 150.4826 276.6441 Tm (WSTOPPED)Tj /T1_1 1 Tf -0.092 Tc 7.5 0 Td (Wa)Tj 0 Tc 1.408 0 Td [(it for a pr)18(ocess that has stopped and whose status has not yet been r)18(eported.)]TJ ET q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1466.25 2728.25 cm 0 0 m 3560 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2046.25 2728.25 cm 0 0 m 0 940 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5026.25 2728.25 cm 0 0 m 0 940 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1466.25 2728.25 cm 0 0 m 0 940 l S Q Q BT /T1_0 1 Tf 7.9933 0 0 7.9933 244.0309 254.646 Tm (Figure 8.10)Tj /T1_1 1 Tf 5.445 0 Td (The)Tj /T1_2 1 Tf 1.924 0 Td (options)Tj /T1_1 1 Tf 3.194 0 Td (constants for)Tj /TT2 1 Tf 5.928 0 Td (waitid)Tj /T1_1 1 Tf 9.9916 0 0 9.9916 129.4914 228.2682 Tm [(At )-99(least )-99(one )-99(of)]TJ /TT2 1 Tf 7.008 0 Td (WCONTINUED)Tj /T1_1 1 Tf (,)Tj /TT2 1 Tf 6.599 0 Td (WEXITED)Tj /T1_1 1 Tf 0.3495 Tc (,o)Tj 0 Tc 5.346 0 Td (r)Tj /TT2 1 Tf 0.744 0 Td (WSTOPPED)Tj /T1_1 1 Tf 5.149 0 Td [(must )-99(be )-99(speci\336ed )-99(in )-99(the)]TJ /T1_2 1 Tf 11.209 0 Td (options)Tj /T1_1 1 Tf -36.056 -1.2 Td [(ar)18(gument.)]TJ 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 2.1 0 Td (infop)Tj /T1_1 1 Tf 2.482 0 Td [(ar)18(gument )-176(is )-176(a )-176(pointer )-176(to )-176(a)]TJ /TT2 1 Tf 12.67 0 Td (siginfo)Tj /T1_1 1 Tf 4.626 0 Td [(str)8(uctur)18(e. )-426(This)-426(str)8(uctur)]TJ 0.4262 Tc 10.721 0 Td (ec)Tj 0 Tc 1.349 0 Td (ontains)Tj -35.749 -1.2 Td [(detailed )-5(information )-5(about )-5(the )-5(signal )-5(generated )-5(that )-5(caused )-5(the )-5(state )-5(change )-5(in )-5(the )-5(child)]TJ 0 -1.2 TD [(pr)18(ocess. )-250(The)]TJ /TT2 1 Tf 5.969 0 Td (siginfo)Tj /T1_1 1 Tf 4.45 0 Td [(str)8(uctur)18(e)-250(is)-250(discussed further in Section 10.14.)]TJ 7.9933 0 0 7.9933 183.4458 160.3253 Tm [(Of )-89(the )-89(four )-89(platforms )-89(cover)18(ed )-89(in )-89(this )-89(book, )-89(only )-89(Linux )-89(3.2.0, )-89(Mac )-89(OS )-89(X )-89(10.6.8, )-89(and )-89(Solaris )-89(10)]TJ 0 -1.25 TD [(pr)18(ovide )-330(support )-330(for)]TJ /TT2 1 Tf 9.982 0 Td (waitid)Tj /T1_1 1 Tf 0.8305 Tc (.N)Tj 0 Tc 5.512 0 Td [(ote, )-330(however)]TJ 0.5805 Tc 5.988 0 Td (,t)Tj 0 Tc 1.156 0 Td [(hat )-330(Mac )-330(OS )-330(X )-330(10.6.8 )-330(doesn\325t )-330(set )-330(all )-330(the)]TJ -22.637 -1.25 Td (information we expect in the)Tj /TT2 1 Tf 12.943 0 Td (siginfo)Tj /T1_1 1 Tf 4.45 0 Td [(str)8(uctur)18(e.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46831 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (236)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(Most )-267(modern )-267(implementations )-267(of)]TJ /TT0 1 Tf 16.17 0 Td (exit)Tj /T1_1 1 Tf 2.917 0 Td [(do )-267(not )-267(bother )-267(to )-267(close )-267(the )-267(str)17(eams. )-517(Because)-517(the)]TJ -19.087 -1.25 Td [(pr)18(ocess )-242(is )-242(about )-242(to )-242(exit, )-242(the )-242(kernel )-242(will )-242(close )-242(all )-242(the )-242(\336le )-242(descriptors )-242(open )-242(in )-242(the )-242(pr)16(ocess.)]TJ -0 -1.25 Td [(Closing them in the library simply adds over)18(head without any bene\336t.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 6450.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 620.9255 Tm [(Section )-377(5.6 )-377(of )-377(McKusick )-377(et )-377(al.)]TJ 15.365 0.04 Td ([)Tj 0.333 -0.04 Td (1996)Tj 2 0.04 Td (])Tj 0.96 -0.04 Td [(contains )-377(additional )-377(information )-377(on )-377(the)]TJ -20.458 -1.2 Td [(implementation )-418(issues )-418(of)]TJ /TT0 1 Tf 12.587 0 Td (fork)Tj /T1_1 1 Tf 3.068 0 Td (and)Tj /TT0 1 Tf 2.361 0 Td (vfork)Tj /T1_1 1 Tf 0.9177 Tc (.E)Tj 0 Tc 4.779 0 Td [(xer)18(cises )-418(8.1 )-418(and )-418(8.2 )-418(continue )-418(the)]TJ -22.794 -1.2 Td (discussion of)Tj /TT0 1 Tf 6.019 0 Td (vfork)Tj /T1_1 1 Tf (.)Tj /TT1 1 Tf 11.9986 0 0 11.9986 93.5889 560.9327 Tm (8.5)Tj /TT2 1 Tf 3 0 Td (exit)Tj /TT1 1 Tf 2.956 0 Td (Functions)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5845 536.9356 Tm [(As we described in Section 7.3, a pr)18(ocess can terminate normally in \336ve ways:)]TJ 1.8 -2.04 Td [(1. )-633(Executing)-339(a)]TJ /TT0 1 Tf 7.219 0 Td (return)Tj /T1_1 1 Tf 3.939 0 Td [(fr)18(om )-89(the)]TJ /TT0 1 Tf 4.204 0 Td (main)Tj /T1_1 1 Tf 2.739 0 Td [(function. )-339(As)-339(we )-89(saw )-89(in )-89(Section )-89(7.3, )-89(this )-89(is)]TJ -16.469 -1.2 Td (equivalent to calling)Tj /TT0 1 Tf 9.253 0 Td (exit)Tj /T1_1 1 Tf (.)Tj -10.886 -1.6 Td [(2. )-633(Calling)-337(the)]TJ /TT0 1 Tf 6.914 0 Td (exit)Tj /T1_1 1 Tf 2.737 0 Td [(function. )-337(This)-337(function )-87(is )-87(de\336ned )-87(by )-87(ISO )-87(C )-87(and )-87(includes )-87(the)]TJ -8.019 -1.2 Td [(calling )-205(of )-205(all )-205(exit )-205(handlers )-205(that )-205(have )-205(been )-205(r)14(egister)18(ed )-205(by )-205(calling)]TJ /TT0 1 Tf 29.818 0 Td (atexit)Tj /T1_1 1 Tf 4.056 0 Td (and)Tj -33.874 -1.2 Td [(closing )-340(all )-340(standar)]TJ 0.5899 Tc 8.716 0 Td (dI)Tj 0 Tc 1.538 0 Td [(/O )-340(str)18(eams. )-590(Because)-590(ISO )-340(C )-340(does )-340(not )-340(deal )-340(with )-340(\336le)]TJ -10.254 -1.2 Td [(descriptors, )-315(multiple )-315(pr)18(ocesses )-315(\(par)18(ents )-315(and )-315(childr)17(en\), )-315(and )-315(job )-315(contr)18(ol, )-315(the)]TJ 0 -1.2 TD (de\336nition of this function is incomplete for a UNIX system.)Tj -1.633 -1.6 Td [(3. )-633(Calling)-349(the)]TJ /TT0 1 Tf 6.939 0 Td (_exit)Tj /T1_1 1 Tf 3.349 0 Td (or)Tj /TT0 1 Tf 1.291 0 Td (_Exit)Tj /T1_1 1 Tf 3.349 0 Td [(function. )-349(ISO)]TJ 0.3495 Tc 6.554 0 Td (Cd)Tj 0 Tc 1.669 0 Td (e\336nes)Tj /TT0 1 Tf 2.918 0 Td (_Exit)Tj /T1_1 1 Tf 3.349 0 Td [(to )-99(pr)18(ovide )-99(a )-99(way)]TJ -27.787 -1.2 Td [(for )-213(a )-213(pr)18(ocess )-213(to )-213(terminate )-213(without )-213(r)5(unning )-214(exit )-214(handlers )-214(or )-214(signal )-214(handlers.)]TJ T* [(Whether )-26(standar)]TJ 0.2758 Tc 7.439 0 Td (dI)Tj 0 Tc 1.224 0 Td [(/O )-26(str)18(eams )-26(ar)]TJ 0.2758 Tc 6.234 0 Td (e\337)Tj 0 Tc 1.363 0 Td [(ushed )-26(depends )-26(on )-26(the )-26(implementation.)-525(On)]TJ -16.259 -1.2 Td [(UNIX )-112(systems,)]TJ /TT0 1 Tf 7.103 0 Td (_Exit)Tj /T1_1 1 Tf 3.362 0 Td (and)Tj /TT0 1 Tf 2.055 0 Td (_exit)Tj /T1_1 1 Tf 3.362 0 Td (ar)Tj 0.3623 Tc 0.877 0 Td (es)Tj 0 Tc 1.265 0 Td [(ynonymous )-112(and )-112(do )-112(not )-112(\337ush )-112(standar)17(d)]TJ -18.025 -1.2 Td [(I/O )-212(str)18(eams. )-462(The)]TJ /TT0 1 Tf 8.702 0 Td (_exit)Tj /T1_1 1 Tf 3.462 0 Td [(function )-212(is )-212(called )-212(by)]TJ /TT0 1 Tf 9.994 0 Td (exit)Tj /T1_1 1 Tf 2.862 0 Td [(and )-212(handles )-212(the )-212(UNIX)]TJ -25.02 -1.2 Td (system-speci\336c details;)Tj /TT0 1 Tf 10.385 0 Td (_exit)Tj /T1_1 1 Tf 3.25 0 Td (is speci\336ed by POSIX.1.)Tj 7.999 0 0 7.999 219.5735 344.5586 Tm [(In )-214(most )-214(UNIX )-214(system )-214(implementations,)]TJ /TT0 1 Tf 18.86 0 Td (exit)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (3)Tj 0.5 0.04 Td (\))Tj 0.798 -0.04 Td [(is )-215(a )-215(function )-215(in )-215(the )-215(standar)]TJ 0.4646 Tc 12.825 0 Td (dC)Tj 0 Tc -35.715 -1.25 Td (library)Tj 0.25 Tc 2.87 0 Td (,w)Tj 0 Tc 1.334 0 Td [(her)18(eas)]TJ /TT0 1 Tf 3.091 0 Td (_exit)Tj /T1_1 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (is a system call.)Tj 9.9988 0 0 9.9988 147.582 313.5624 Tm [(4. )-633(Executing)-282(a)]TJ /TT0 1 Tf 7.105 0 Td (return)Tj /T1_1 1 Tf 3.882 0 Td [(fr)18(om )-32(the )-32(start )-32(r)18(outine )-32(of )-32(the )-32(last )-32(thr)18(ead )-32(in )-32(the )-32(pr)19(ocess. )-282(The)]TJ -0.018 Tc -9.354 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-294(value )-294(of )-294(the )-294(thr)18(ead )-294(is )-294(not )-294(used )-294(as )-294(the )-294(r)17(eturn )-294(value )-294(of )-294(the )-294(pr)17(ocess,)]TJ -0.856 -1.2 Td (however)Tj 0.6089 Tc 3.806 0 Td (.W)Tj 0 Tc 1.859 0 Td [(hen )-109(the )-109(last )-109(thr)18(ead )-109(r)18(eturns )-109(fr)18(om )-109(its )-109(start )-109(r)18(outine, )-109(the )-109(pr)18(ocess )-109(exits)]TJ -5.665 -1.2 Td (with a termination status of 0.)Tj -1.633 -1.6 Td [(5. )-633(Calling)-441(the)]TJ /TT0 1 Tf 7.122 0 Td (pthread_exit)Tj /T1_1 1 Tf 7.641 0 Td [(function )-191(fr)18(om )-191(the )-191(last )-191(thr)18(ead )-191(in )-191(the )-191(pr)16(ocess. )-441(As)]TJ -13.131 -1.2 Td [(with )-20(the )-20(pr)18(evious )-20(case, )-20(the )-20(exit )-20(status )-20(of )-20(the )-20(pr)18(ocess )-20(in )-20(this )-20(situation )-20(is )-20(always )-20(0,)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(gar)18(dless )-183(of )-183(the )-183(ar)18(gument )-183(passed )-183(to)]TJ /TT0 1 Tf 16.741 0 Td (pthread_exit)Tj /T1_1 1 Tf 0.6826 Tc (.W)Tj 0 Tc 9.041 0 Td [(e\325ll )-183(say )-183(mor)]TJ 0.4326 Tc 5.49 0 Td (ea)Tj 0 Tc 1.412 0 Td (bout)Tj /TT0 1 Tf -33.539 -1.2 Td (pthread_exit)Tj /T1_1 1 Tf 7.45 0 Td [(in Section 1)55(1.5.)]TJ -10.883 -2.04 Td [(The thr)18(ee forms of abnormal termination ar)18(e)-250(as)-250(follows:)]TJ 1.8 -2.04 Td [(1. )-633(Calling)]TJ /TT0 1 Tf 5.374 0 Td (abort)Tj /T1_1 1 Tf 0.7714 Tc (.T)Tj 0 Tc 4.634 0 Td [(his )-271(is )-271(a )-271(special )-271(case )-271(of )-271(the )-271(next )-271(item, )-271(as )-271(it )-271(generates )-271(the)]TJ /TT0 1 Tf -8.376 -1.2 Td (SIGABRT)Tj /T1_1 1 Tf 4.45 0 Td (signal.)Tj -6.083 -1.6 Td [(2. )-633(When)-260(the )-10(pr)18(ocess )-10(r)18(eceives )-10(certain )-10(signals.)-512(\(W)]TJ 0.2605 Tc 21.885 0 Td (ed)Tj 0 Tc 1.351 0 Td [(escribe )-10(signals )-10(in )-10(mor)]TJ 0.2605 Tc 9.594 0 Td (ed)Tj 0 Tc 1.351 0 Td [(etail )-10(in)]TJ -32.547 -1.2 Td [(Chapter )-115(10.\))-615(The )-115(signal )-115(can )-115(be )-115(generated )-115(by )-115(the )-115(pr)20(ocess )-115(itself )-115(\(e.g., )-115(by )-115(calling)]TJ T* (the)Tj /TT0 1 Tf 1.86 0 Td (abort)Tj /T1_1 1 Tf 3.473 0 Td [(function\), )-223(by )-223(some )-223(other )-223(pr)19(ocess, )-223(or )-223(by )-223(the )-223(kernel.)-723(Examples )-223(of)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46832 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (234)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Some )-105(operating )-105(systems )-105(combine )-105(the )-105(operations )-105(fr)18(om )-105(step )-105(2)]TJ 0.0833 Tc 27.474 0 Td (\321a)Tj /TT0 1 Tf 0 Tc 1.939 0 Td (fork)Tj /T1_1 1 Tf 2.755 0 Td [(followed )-105(by )-105(an)]TJ /TT0 1 Tf -32.168 -1.2 Td (exec)Tj /T1_1 1 Tf 0.0833 Tc 2.483 0 Td (\321i)Tj 0 Tc 1.374 0 Td [(nto )-73(a )-73(single )-73(operation )-73(called )-73(a)]TJ /T1_2 1 Tf 13.896 0 Td (spawn)Tj /T1_1 1 Tf 0.5729 Tc (.T)Tj 0 Tc 4.047 0 Td [(he )-73(UNIX )-73(System )-73(separates )-73(the )-73(two, )-73(as)]TJ -21.801 -1.2 Td (ther)Tj 0.4414 Tc 1.764 0 Td (ea)Tj -0.018 Tc 1.42 0 Td [(re )-227(n)]TJ 0 Tc 1.879 0 Td [(umer)18(ous )-191(cases )-191(wher)17(e)-441(it)-441(is)-441(u)-1(seful )-191(to)]TJ /TT0 1 Tf 16.964 0 Td (fork)Tj /T1_1 1 Tf 2.841 0 Td [(without )-191(doing )-191(an)]TJ /TT0 1 Tf 8.501 0 Td (exec)Tj /T1_1 1 Tf 0.6915 Tc (.A)Tj 0 Tc 4.119 0 Td (lso,)Tj -37.489 -1.2 Td [(separating )-237(the )-237(two )-237(operations )-237(allows )-237(the )-237(child )-237(to )-237(change )-237(the )-237(per)14(-pr)18(ocess )-237(attributes)]TJ 0 -1.2 Td [(between )-127(the)]TJ /TT0 1 Tf 5.873 0 Td (fork)Tj /T1_1 1 Tf 2.777 0 Td [(and )-127(the)]TJ /TT0 1 Tf 3.834 0 Td (exec)Tj /T1_1 1 Tf 0.3771 Tc (,s)Tj 0 Tc 3.451 0 Td [(uch )-127(as )-127(I/O )-127(r)17(edir)18(ection, )-127(user )-127(ID, )-127(signal )-127(disposition,)]TJ -15.936 -1.2 Td (and so on.)Tj -0.092 Tc 5.041 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll see numer)18(ous examples of this in Chapter 15.)]TJ 7.9995 0 0 7.9995 183.5893 588.9647 Tm [(The )-28(Single )-28(UNIX )-28(Speci\336cation )-28(does )-28(include)]TJ /TT0 1 Tf 19.675 0 Td (spawn)Tj /T1_1 1 Tf 3.278 0 Td [(interfaces )-28(in )-28(the )-28(advanced )-28(r)18(eal-time )-28(option)]TJ -22.953 -1.25 Td [(gr)18(oup. )-413(These)-414(interfaces )-163(ar)]TJ 0.4134 Tc 12.13 0 Td (en)Tj 0 Tc 1.474 0 Td [(ot )-163(intended )-163(to )-163(be )-163(r)18(eplacements )-163(for)]TJ /TT0 1 Tf 16.356 0 Td (fork)Tj /T1_1 1 Tf 2.813 0 Td (and)Tj /TT0 1 Tf 2.106 0 Td (exec)Tj /T1_1 1 Tf 0.4135 Tc (,h)Tj 0 Tc 3.646 0 Td [(owever)74(.)]TJ -38.526 -1.25 Td [(They )-251(ar)]TJ 0.5015 Tc 3.609 0 Td (ei)Tj 0 Tc 1.271 0 Td [(ntended )-251(to )-251(support )-251(systems )-251(that )-251(have )-251(dif)15(\336culty )-251(implementing)]TJ /TT0 1 Tf 29.712 0 Td (fork)Tj /T1_1 1 Tf 2.901 0 Td [(ef)18(\336ciently)111(,)]TJ -37.493 -1.25 Td [(especially systems without har)18(dwar)]TJ 0.25 Tc 15.911 0 Td (es)Tj 0 Tc 1.153 0 Td (upport for memory management.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5943 524.1685 Tm (8.4)Tj /TT2 1 Tf 3 0 Td (vfork)Tj /TT1 1 Tf 3.556 0 Td (Function)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5921 500.17 Tm [(The )-20(function)]TJ /TT0 1 Tf 5.92 0 Td (vfork)Tj /T1_1 1 Tf 3.27 0 Td [(has )-20(the )-20(same )-20(calling )-20(sequence )-20(and )-20(same )-20(r)18(eturn )-20(values )-20(as)]TJ /TT0 1 Tf 25.408 0 Td (fork)Tj /T1_1 1 Tf 0.2698 Tc (,b)Tj 0 Tc 3.473 0 Td (ut)Tj -38.071 -1.2 Td [(the semantics of the two functions dif)18(fer)74(.)]TJ 7.9995 0 0 7.9995 183.5889 468.1719 Tm (The)Tj /TT0 1 Tf 1.949 0 Td (vfork)Tj /T1_1 1 Tf 3.275 0 Td [(function )-25(originated )-25(with )-25(2.9BSD.)-525(Some )-25(consider )-25(the )-25(function )-25(a )-25(blemish, )-25(but )-25(all )-25(the)]TJ -5.223 -1.25 Td [(platforms )-141(cover)18(ed )-141(in )-141(this )-141(book )-141(support )-141(it.)-642(In )-141(fact, )-141(the )-141(BSD )-141(developers )-141(r)18(emoved )-141(it )-141(fr)18(om )-141(the)]TJ 0 -1.25 TD [(4.4BSD )-234(r)18(elease, )-234(but )-234(all )-234(the )-234(open )-234(sour)18(ce )-234(BSD )-234(distributions )-234(that )-234(derive )-234(fr)18(om )-234(4.4BSD )-234(added)]TJ T* [(support )-28(for )-28(it )-28(back )-28(into )-28(their )-28(own )-28(r)21(eleases. )-278(The)]TJ /TT0 1 Tf 21.346 0 Td (vfork)Tj /T1_1 1 Tf 3.278 0 Td [(function )-28(was )-28(marked )-28(as )-28(an )-28(obsolescent)]TJ -24.623 -1.25 Td [(interface )-51(in )-51(V)112(ersion )-51(3 )-51(of )-51(the )-51(Single )-51(UNIX )-51(Speci\336cation )-51(and )-51(was )-51(r)18(emoved )-51(entir)18(ely )-51(in )-51(V)111(ersion )-51(4.)]TJ -0.092 Tc T* [(We )-184(i)]TJ 0 Tc 1.928 0 Td (nclude it her)Tj 0.25 Tc 5.565 0 Td (ef)Tj 0 Tc 1.062 0 Td [(or historical r)18(easons only)]TJ 0.5 Tc 10.977 0 Td (.P)Tj 0 Tc 1.354 0 Td (ortable applications should not use it.)Tj 9.9994 0 0 9.9994 147.5909 398.1761 Tm (The)Tj /TT0 1 Tf 2.193 0 Td (vfork)Tj /T1_1 1 Tf 3.519 0 Td [(function )-269(was )-269(intended )-269(to )-269(cr)19(eate )-269(a )-269(new )-269(pr)18(ocess )-269(for )-269(the )-269(purpose )-269(of)]TJ -7.511 -1.2 Td [(executing )-201(a )-201(new )-201(pr)18(ogram )-201(\(step )-201(2 )-201(at )-201(the )-201(end )-201(of )-201(the )-201(pr)18(evious )-201(section\), )-201(similar )-201(to )-201(the)]TJ 0 -1.2 TD [(method )-98(used )-98(by )-98(the )-98(bar)18(e-bones )-98(shell )-98(fr)18(om )-98(Figur)]TJ 0.3476 Tc 21.888 0 Td (e1)Tj 0 Tc 1.327 0 Td [(.7. )-348(The)]TJ /TT0 1 Tf 3.619 0 Td (vfork)Tj /T1_1 1 Tf 3.348 0 Td [(function )-98(cr)18(eates )-98(the)]TJ -30.182 -1.2 Td [(new )-114(pr)18(ocess, )-114(just )-114(like)]TJ /TT0 1 Tf 10.101 0 Td (fork)Tj /T1_1 1 Tf 0.3642 Tc (,w)Tj 0 Tc 3.848 0 Td [(ithout )-114(copying )-114(the )-114(addr)18(ess )-114(space )-114(of )-114(the )-114(par)18(ent )-114(into )-114(the)]TJ -13.949 -1.2 Td [(child, )-126(as )-126(the )-126(child )-126(won\325t )-126(r)16(efer)18(ence )-127(that )-127(addr)18(ess )-127(space; )-127(the )-127(child )-127(simply )-127(calls)]TJ /TT0 1 Tf 34.949 0 Td (exec)Tj /T1_1 1 Tf 2.777 0 Td (\(or)Tj /TT0 1 Tf -37.726 -1.2 Td (exit)Tj /T1_1 1 Tf 0.3214 Tc (\)r)Tj 0 Tc 3.449 0 Td [(ight )-71(after )-71(the)]TJ /TT0 1 Tf 6.139 0 Td (vfork)Tj /T1_1 1 Tf 0.5714 Tc (.I)Tj 0 Tc 4.158 0 Td [(nstead, )-71(the )-71(child )-71(r)8(uns )-71(in )-71(the )-71(addr)18(ess )-71(space )-71(of )-71(the )-71(par)14(ent)]TJ -13.747 -1.2 Td [(until )-363(it )-363(calls )-363(either)]TJ /TT0 1 Tf 9.665 0 Td (exec)Tj /T1_1 1 Tf 3.013 0 Td (or)Tj /TT0 1 Tf 1.554 0 Td (exit)Tj /T1_1 1 Tf 0.8633 Tc (.T)Tj 0 Tc 4.126 0 Td [(his )-363(optimization )-363(is )-363(mor)]TJ 0.6133 Tc 11.341 0 Td (ee)Tj -0.018 Tc 1.571 0 Td (f\336)Tj 0 Tc 0.92 0 Td [(cient )-363(on )-363(some)]TJ -32.191 -1.2 Td [(implementations )-319(of )-319(the )-319(UNIX )-319(System, )-319(but )-319(leads )-319(to )-319(unde\336ned )-319(r)17(esults )-319(if )-319(the )-319(child)]TJ T* [(modi\336es )-221(any )-221(data )-221(\(except )-221(the )-221(variable )-221(used )-221(to )-221(hold )-221(the )-221(r)18(eturn )-221(value )-221(fr)22(om)]TJ /TT0 1 Tf 35.417 0 Td (vfork)Tj /T1_1 1 Tf (\),)Tj -35.417 -1.2 Td [(makes )-2(function )-2(calls, )-2(or )-2(r)18(eturns )-2(without )-2(calling)]TJ /TT0 1 Tf 21.106 0 Td (exec)Tj /T1_1 1 Tf 2.652 0 Td (or)Tj /TT0 1 Tf 1.193 0 Td (exit)Tj /T1_1 1 Tf 0.5023 Tc (.\()Tj 0 Tc 3.485 0 Td [(As )-2(we )-2(mentioned )-2(in )-2(the)]TJ -28.437 -1.2 Td [(pr)18(evious )-244(section, )-244(implementations )-244(use )-244(copy-on-write )-244(to )-244(impr)18(ove )-244(the )-244(ef)18(\336ciency )-244(of )-244(a)]TJ /TT0 1 Tf T* (fork)Tj /T1_1 1 Tf 2.65 0 Td (followed by an)Tj /TT0 1 Tf 6.872 0 Td (exec)Tj /T1_1 1 Tf 0.25 Tc (,b)Tj 0 Tc 3.453 0 Td (ut no copying is still faster than some copying.\))Tj -11.175 -1.2 Td [(Another )-182(dif)18(fer)18(ence )-182(between )-182(the )-182(two )-182(functions )-182(is )-182(that)]TJ /TT0 1 Tf 24.939 0 Td (vfork)Tj /T1_1 1 Tf 3.432 0 Td [(guarantees )-182(that )-182(the)]TJ -30.171 -1.2 Td [(child )-61(r)8(uns )-61(\336rst, )-61(until )-61(the )-61(child )-61(calls)]TJ /TT0 1 Tf 16.04 0 Td (exec)Tj /T1_1 1 Tf 2.711 0 Td (or)Tj /TT0 1 Tf 1.252 0 Td (exit)Tj /T1_1 1 Tf 0.5609 Tc (.W)Tj 0 Tc 4.211 0 Td [(hen )-61(the )-61(child )-61(calls )-61(either )-61(of )-61(these)]TJ -24.214 -1.2 Td [(functions, )-249(the )-249(par)18(ent )-249(r)17(esumes. )-499(\(This)-500(can )-249(lead )-249(to )-249(deadlock )-249(if )-249(the )-249(child )-249(depends )-249(on)]TJ -0 -1.2 Td [(further actions of the par)18(ent befor)]TJ 0.25 Tc 14.895 0 Td (ec)Tj 0 Tc 1.173 0 Td (alling either of these two functions.\))Tj /TT1 1 Tf -19.668 -2.64 Td (Example)Tj /T1_1 1 Tf 3.6 -2.16 Td [(The )-42(pr)18(ogram )-42(in )-42(Figur)]TJ 0.2917 Tc 9.663 0 Td (e8)Tj 0 Tc 1.271 0 Td [(.3 )-42(is )-42(a )-42(modi\336ed )-42(version )-42(of )-42(the )-42(pr)20(ogram )-42(fr)18(om )-42(Figur)]TJ 0.2918 Tc 22.544 0 Td (e8)Tj 0 Tc 1.271 0 Td [(.1. )-292(W)92(e\325ve)]TJ -0.018 Tc -34.749 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(placed )-206(the )-206(call )-206(to)]TJ /TT0 1 Tf 8.533 0 Td (fork)Tj /T1_1 1 Tf 2.856 0 Td (with)Tj /TT0 1 Tf 2.489 0 Td (vfork)Tj /T1_1 1 Tf 3.456 0 Td [(and )-205(r)18(emoved )-205(the)]TJ /TT0 1 Tf 8.387 0 Td (write)Tj /T1_1 1 Tf 3.456 0 Td [(to )-205(standar)]TJ 0.4555 Tc 4.647 0 Td (do)Tj 0 Tc 1.612 0 Td (utput.)Tj -36.291 -1.2 Td [(Also, )-45(we )-45(don\325t )-45(need )-45(to )-45(have )-45(the )-45(par)18(ent )-45(call)]TJ /TT0 1 Tf 19.523 0 Td (sleep)Tj /T1_1 1 Tf [(,)-295(as)-295(w)1(e\325r)]TJ 0.2946 Tc 6.731 0 Td (eg)Tj 0 Tc 1.33 0 Td [(uaranteed )-45(that )-45(it )-45(is )-45(put )-45(to)]TJ -27.584 -1.2 Td (sleep by the kernel until the child calls either)Tj /TT0 1 Tf 20.003 0 Td (exec)Tj /T1_1 1 Tf 2.65 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (exit)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46833 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.3)]TJ /TT0 1 Tf 37.003 0 Td (fork)Tj /T1_0 1 Tf 2.9 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (229)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT1 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm (8.3)Tj /TT2 1 Tf 3 0 Td (fork)Tj /TT1 1 Tf 2.956 0 Td (Function)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(An existing pr)18(ocess can cr)18(eate a new one by calling the)]TJ /TT0 1 Tf 24.454 0 Td (fork)Tj /T1_0 1 Tf 2.65 0 Td (function.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 625.8624 Tm (#include )Tj 0 -1.902 TD (pid_t fork\(void\);)Tj /T1_0 1 Tf 12.903 -1.902 Td [(Returns: 0 in child, pr)18(ocess ID of child in par)18(ent,)]TJ /TT3 1 Tf 21.561 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5871.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 571.1915 Tm [(The )-39(new )-39(pr)18(ocess )-39(cr)18(eated )-39(by)]TJ /TT0 1 Tf 12.637 0 Td (fork)Tj /T1_0 1 Tf 2.689 0 Td [(is )-39(called )-39(the)]TJ /T1_2 1 Tf 5.586 0 Td [(child )-39(pr)18(ocess)]TJ /T1_0 1 Tf 0.5394 Tc (.T)Tj 0 Tc 6.544 0 Td [(his )-39(function )-39(is )-39(called )-39(once)]TJ -27.456 -1.2 Td [(but )-29(r)18(eturns )-29(twice.)-529(The )-29(only )-29(dif)20(fer)18(ence )-29(in )-29(the )-29(r)18(eturns )-29(is )-29(that )-29(the )-29(r)21(eturn )-29(value )-29(in )-29(the )-29(child)]TJ -0 -1.2 Td [(is )-167(0, )-167(wher)18(eas )-167(the )-167(r)18(eturn )-167(value )-167(in )-167(the )-167(par)18(ent )-167(is )-167(the )-167(pr)18(ocess )-167(ID )-167(of )-167(the )-167(new )-167(child.)-664(The)]TJ -0.018 Tc 0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ason )-94(the )-94(child\325s )-94(pr)18(ocess )-94(ID )-94(is )-94(r)18(eturned )-94(to )-94(the )-94(par)18(ent )-94(is )-94(that )-94(a )-94(pr)17(ocess )-94(can )-94(have )-94(mor)17(e)]TJ -0.856 -1.2 Td [(than )-1(one )-1(child, )-1(and )-1(ther)18(e)-251(is)-251(no)-251(function )-1(that )-1(allows )-1(a )-1(pr)18(ocess )-1(to )-1(obtain )-1(the )-1(pr)18(ocess )-1(IDs )-1(of)]TJ 0 -1.2 Td [(its )-120(childr)18(en. )-370(The)]TJ -0.018 Tc 7.981 0 Td (re)Tj 0 Tc 0.856 0 Td (ason)Tj /TT0 1 Tf 2.422 0 Td (fork)Tj /T1_0 1 Tf -0.018 Tc 2.77 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-120(0 )-120(to )-120(the )-120(child )-120(is )-120(that )-120(a )-120(pr)18(ocess )-120(can )-120(have )-120(only )-120(a)]TJ -14.885 -1.2 Td [(single )-165(par)18(ent, )-165(and )-165(the )-165(child )-165(can )-165(always )-165(call)]TJ /TT0 1 Tf 20.513 0 Td (getppid)Tj /T1_0 1 Tf 4.615 0 Td [(to )-165(obtain )-165(the )-165(pr)18(ocess )-165(ID )-165(of )-165(its)]TJ -25.128 -1.2 Td [(par)18(ent. )-271(\(Pr)18(ocess )-21(ID )-21(0 )-21(is )-21(r)18(eserved )-21(for )-21(use )-21(by )-21(the )-21(kernel, )-21(so )-21(it\325s )-21(not )-21(possible )-21(for )-21(0 )-21(to )-21(be )-21(the)]TJ 0 -1.2 TD [(pr)18(ocess ID of a child.\))]TJ 1.8 -1.2 Td [(Both )-103(the )-103(child )-103(and )-103(the )-103(par)19(ent )-103(continue )-103(executing )-103(with )-103(the )-103(instr)8(uction )-103(that )-103(follows)]TJ -1.8 -1.2 Td [(the )-14(call )-14(to)]TJ /TT0 1 Tf 4.577 0 Td (fork)Tj /T1_0 1 Tf 0.514 Tc (.T)Tj 0 Tc 3.777 0 Td [(he )-14(child )-14(is )-14(a )-14(copy )-14(of )-14(the )-14(par)18(ent. )-264(For)-264(example, )-14(the )-14(child )-14(gets )-14(a )-14(copy )-14(of)]TJ -8.354 -1.2 Td [(the )-1(par)18(ent\325s )-1(data )-1(space, )-1(heap, )-1(and )-1(stack.)-504(Note )-1(that )-1(this )-1(is )-1(a )-1(copy )-1(for )-1(the )-1(child; )-1(the )-1(par)15(ent)]TJ T* [(and )-22(the )-22(child )-22(do )-22(not )-22(shar)]TJ 0.2725 Tc 11.156 0 Td (et)Tj 0 Tc 1.077 0 Td [(hese )-22(portions )-22(of )-22(memory)]TJ 0.5225 Tc 11.003 0 Td (.T)Tj 0 Tc 1.386 0 Td [(he )-22(par)18(ent )-22(and )-22(the )-22(child )-22(do )-22(shar)15(e)]TJ -24.621 -1.2 Td (the text segment, however \(Section 7.6\).)Tj 1.8 -1.2 Td [(Modern )-20(implementations )-20(don\325t )-20(perform )-20(a )-20(complete )-20(copy )-20(of )-20(the )-20(par)18(ent\325s )-20(data, )-20(stack,)]TJ -1.8 -1.2 Td [(and )-236(heap, )-236(since )-236(a)]TJ /TT0 1 Tf 8.768 0 Td (fork)Tj /T1_0 1 Tf 2.886 0 Td [(is )-236(often )-236(followed )-236(by )-236(an)]TJ /TT0 1 Tf 11.532 0 Td (exec)Tj /T1_0 1 Tf 0.7358 Tc (.I)Tj 0 Tc 3.723 0 Td [(nstead, )-236(a )-236(technique )-236(called)]TJ /T1_2 1 Tf -26.908 -1.2 Td (copy-on-write)Tj /T1_0 1 Tf 5.94 0.04 Td (\()Tj 0.333 -0.04 Td (COW)Tj 2.495 0.04 Td (\))Tj 0.645 -0.04 Td [(is )-62(used.)-562(These )-62(r)18(egions )-62(ar)]TJ 0.3118 Tc 11.288 0 Td (es)Tj 0 Tc 1.215 0 Td [(har)18(ed )-62(by )-62(the )-62(par)18(ent )-62(and )-62(the )-62(child )-62(and)]TJ -21.916 -1.2 Td [(have )-243(their )-243(pr)18(otection )-243(changed )-243(by )-243(the )-243(kernel )-243(to )-243(r)17(ead-only)]TJ 0.7432 Tc 26.73 0 Td (.I)Tj 0.4932 Tc 1.33 0 Td (fe)Tj 0 Tc 1.305 0 Td [(ither )-243(pr)18(ocess )-243(tries )-243(to)]TJ -29.365 -1.2 Td [(modify )-230(these )-230(r)18(egions, )-230(the )-230(kernel )-230(then )-230(makes )-230(a )-230(copy )-230(of )-230(that )-230(piece )-230(of )-230(memory )-230(only)115(,)]TJ T* [(typically )-61(a )-61(\324)37(\324page\325)37(\325)-311(in)-311(a)-311(v)-1(irtual )-61(memory )-61(system.)-561(Section )-61(9.2 )-61(of )-61(Bach)]TJ 30.401 0.04 Td ([)Tj 0.333 -0.04 Td (1986)Tj 2 0.04 Td (])Tj 0.644 -0.04 Td [(and )-61(Sections)]TJ -33.379 -1.2 Td (5.6 and 5.7 of McKusick et al.)Tj 13.102 0.04 Td ([)Tj 0.333 -0.04 Td (1996)Tj 2 0.04 Td (])Tj 0.583 -0.04 Td [(pr)18(ovide mor)]TJ 0.25 Tc 5.526 0 Td (ed)Tj 0 Tc 1.34 0 Td [(etail on this featur)18(e.)]TJ -0.092 Tc 7.999 0 0 7.999 183.5782 308.8229 Tm (Va)Tj 0 Tc 1.13 0 Td [(riations )-28(of )-28(the)]TJ /TT0 1 Tf 6.456 0 Td (fork)Tj /T1_0 1 Tf 2.678 0 Td [(function )-28(ar)]TJ 0.2784 Tc 4.862 0 Td (ep)Tj -0.018 Tc 1.358 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vided )-28(by )-28(some )-28(platforms.)-528(All )-28(four )-28(platforms )-28(discussed)]TJ -17.408 -1.25 Td (in this book support the)Tj /TT0 1 Tf 10.83 0 Td (vfork)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (variant discussed in the next section.)Tj -15.246 -2.125 Td [(Linux )-153(3.2.0 )-153(also )-153(pr)18(ovides )-153(new )-153(pr)18(ocess )-153(cr)18(eation )-153(thr)18(ough )-153(the)]TJ /TT0 1 Tf 27.577 0 Td (clone)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.736 -0.04 Td [(system )-153(call.)-653(This )-153(is )-153(a)]TJ -32.146 -1.25 Td [(generalized )-69(form )-69(of)]TJ /TT0 1 Tf 9.157 0 Td (fork)Tj /T1_0 1 Tf 2.719 0 Td [(that )-69(allows )-69(the )-69(caller )-69(to )-69(contr)16(ol )-69(what )-69(is )-69(shar)18(ed )-69(between )-69(par)18(ent )-69(and)]TJ -11.876 -1.25 Td (child.)Tj 0 -2.125 TD [(Fr)18(eeBSD )-118(8.0 )-118(pr)18(ovides )-118(the)]TJ /TT0 1 Tf 11.805 0 Td (rfork)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.701 -0.04 Td [(system )-118(call, )-118(which )-118(is )-118(similar )-118(to )-118(the )-118(Linux)]TJ /TT0 1 Tf 19.2 0 Td (clone)Tj /T1_0 1 Tf 3.368 0 Td (system)Tj -38.908 -1.25 Td [(call. )-250(The)]TJ /TT0 1 Tf 4.2 0 Td (rfork)Tj /T1_0 1 Tf 3.25 0 Td [(call is derived fr)18(om the Plan 9 operating system \(Pike et al.)]TJ 26.152 0.04 Td ([)Tj 0.333 -0.04 Td (1995)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td (\).)Tj -36.268 -2.125 Td [(Solaris )-39(10 )-39(pr)18(ovides )-39(two )-39(thr)18(eads )-39(libraries: )-39(one )-39(for )-39(POSIX )-39(thr)18(eads )-39(\(pthr)16(eads\) )-39(and )-39(one )-39(for )-39(Solaris)]TJ 0 -1.25 TD [(thr)18(eads. )-311(In)-312(pr)18(evious )-62(r)18(eleases, )-62(the )-62(behavior )-62(of)]TJ /TT0 1 Tf 20.665 0 Td (fork)Tj /T1_0 1 Tf 2.712 0 Td [(dif)18(fer)18(ed )-62(between )-62(the )-62(two )-62(thr)18(ead )-62(libraries.)]TJ -23.377 -1.25 Td [(For )-90(POSIX )-90(thr)19(eads,)]TJ /TT0 1 Tf 8.984 0 Td (fork)Tj /T1_0 1 Tf 2.74 0 Td [(cr)18(eated )-90(a )-90(pr)19(ocess )-89(containing )-89(only )-89(the )-89(calling )-89(thr)18(ead, )-89(but )-89(for )-89(Solaris)]TJ -11.724 -1.25 Td [(thr)18(eads,)]TJ /TT0 1 Tf 3.833 0 Td (fork)Tj /T1_0 1 Tf 2.684 0 Td [(cr)18(eated )-33(a )-33(pr)18(ocess )-33(containing )-33(copies )-33(of )-33(all )-33(thr)18(eads )-33(fr)18(om )-33(the )-33(pr)13(ocess )-34(of )-34(the )-34(calling)]TJ -6.516 -1.25 Td [(thr)18(ead. )-292(In)-293(Solaris )-42(10, )-42(this )-42(behavior )-42(has )-42(changed;)]TJ /TT0 1 Tf 21.9 0 Td (fork)Tj /T1_0 1 Tf 2.692 0 Td [(cr)18(eates )-42(a )-42(child )-42(containing )-42(a )-42(copy )-42(of )-42(the)]TJ -24.592 -1.25 Td [(calling )-16(thr)18(ead )-16(only)]TJ 0.266 Tc 8.226 0 Td (,r)Tj 0 Tc 0.893 0 Td [(egar)18(dless )-16(of )-16(which )-16(thr)18(ead )-16(library )-16(is )-16(used.)-516(Solaris )-16(also )-16(pr)18(ovides )-16(the)]TJ /TT0 1 Tf 29.881 0 Td (fork1)Tj /T1_0 1 Tf -39 -1.25 Td [(function, )-34(which )-34(can )-34(be )-34(used )-34(to )-34(cr)18(eate )-34(a )-34(pr)21(ocess )-33(that )-33(duplicates )-33(only )-33(the )-33(calling )-33(thr)18(ead, )-33(and )-33(the)]TJ /TT0 1 Tf T* (forkall)Tj /T1_0 1 Tf 4.502 0 Td [(function, )-52(which )-52(can )-52(be )-52(used )-52(to )-52(cr)18(eate )-52(a )-52(pr)19(ocess )-52(that )-52(duplicates )-52(all )-52(the )-52(thr)18(eads )-52(in )-52(the)]TJ -4.502 -1.25 Td [(pr)18(ocess. )-250(Thr)18(eads ar)]TJ 0.25 Tc 8.758 0 Td (ed)Tj 0 Tc 1.34 0 Td (iscussed in detail in Chapters 1)Tj 0.25 Tc 13.655 0 Td (1a)Tj 0 Tc 1.25 0 Td (nd 12.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46834 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (8)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(Pr)15(ocess )-280(Contr)15(ol)]TJ /TT0 1 Tf 12 0 0 12 93.6002 434.4 Tm [(8.1 )-1332(Intr)20(oduction)]TJ /T1_2 1 Tf -0.092 Tc 10 0 0 10 129.6002 410.4 Tm [(We )-304(n)]TJ 0 Tc 2.339 0 Td [(ow )-119(turn )-119(to )-119(the )-119(pr)16(ocess )-120(contr)18(ol )-120(pr)18(ovided )-120(by )-120(the )-120(UNIX )-120(System.)-620(This )-120(includes )-120(the)]TJ -2.338 -1.2 Td [(cr)18(eation )-21(of )-21(new )-21(pr)17(ocesses, )-21(pr)18(ogram )-21(execution, )-21(and )-21(pr)18(ocess )-21(termination.)]TJ -0.092 Tc 32.273 0 Td [(We )-205(a)]TJ 0 Tc 2.158 0 Td [(lso )-21(look )-21(at)]TJ -34.431 -1.2 Td [(the )-14(various )-14(IDs )-14(that )-14(ar)]TJ 0.2639 Tc 9.912 0 Td (et)Tj 0 Tc 1.069 0 Td [(he )-14(pr)18(operty )-14(of )-14(the )-14(pr)18(ocess )167(\321 )167(r)17(eal, )-14(ef)18(fective, )-14(and )-14(saved; )-14(user )-14(and)]TJ -10.981 -1.2 Td [(gr)18(oup )-11(IDs)]TJ 0.0833 Tc 4.562 0 Td (\321a)Tj 0 Tc 1.583 0 Td [(nd )-11(how )-11(they\325r)]TJ 0.2611 Tc 6.275 0 Td (ea)Tj -0.018 Tc 1.24 0 Td (ff)Tj 0 Tc 0.648 0 Td [(ected )-11(by )-11(the )-11(pr)18(ocess )-11(contr)18(ol )-11(primitives.)-512(Interpr)18(eter )-11(\336les)]TJ -14.309 -1.2 Td [(and )-86(the)]TJ /TT1 1 Tf 3.752 0 Td (system)Tj /T1_2 1 Tf 3.936 0 Td [(function )-86(ar)]TJ 0.336 Tc 4.92 0 Td (ea)Tj 0 Tc 1.315 0 Td [(lso )-86(cover)18(ed. )-336(W)]TJ 0.336 Tc 6.842 0 Td (ec)Tj 0 Tc 1.259 0 Td [(onclude )-86(the )-86(chapter )-86(by )-86(looking )-86(at )-86(the)]TJ -22.024 -1.2 Td [(pr)18(ocess )-129(accounting )-129(pr)18(ovided )-129(by )-129(most )-129(UNIX )-129(systems.)-630(This )-129(lets )-129(us )-129(look )-129(at )-129(the )-129(pr)17(ocess)]TJ 0 -1.2 Td [(contr)18(ol functions fr)18(om a dif)18(fer)18(ent perspective.)]TJ /TT0 1 Tf 12 0 0 12 93.6005 302.4 Tm [(8.2 )-1332(Pr)20(ocess )-278(Identi\336er)15(s)]TJ /T1_2 1 Tf 10 0 0 10 129.6004 278.4 Tm [(Every )-68(pr)18(ocess )-68(has )-68(a )-68(unique )-68(pr)20(ocess )-68(ID, )-68(a )-68(non-negative )-68(integer)]TJ 0.5678 Tc 27.896 0 Td (.B)Tj 0 Tc 1.429 0 Td [(ecause )-68(the )-68(pr)18(ocess )-68(ID)]TJ -29.324 -1.2 Td [(is )-32(the )-32(only )-32(well-known )-32(identi\336er )-32(of )-32(a )-32(pr)18(ocess )-32(that )-32(is )-32(always )-32(unique, )-32(it )-32(is )-32(often )-32(used )-32(as )-32(a)]TJ 0 -1.2 TD [(piece )-534(of )-534(other )-534(identi\336ers, )-534(to )-534(guarantee )-534(uniqueness.)-1034(For )-534(example, )-534(applications)]TJ T* [(sometimes )-20(include )-20(the )-20(pr)18(ocess )-20(ID )-20(as )-20(part )-20(of )-20(a )-20(\336lename )-20(in )-20(an )-20(attempt )-20(to )-20(generate )-20(unique)]TJ T* (\336lenames.)Tj 1.8 -1.2 Td [(Although )-23(unique, )-23(pr)18(ocess )-23(IDs )-23(ar)]TJ 0.2733 Tc 14.432 0 Td (er)Tj 0 Tc 1.129 0 Td [(eused. )-273(As)-274(pr)18(ocesses )-23(terminate, )-23(their )-23(IDs )-23(become)]TJ -17.361 -1.2 Td [(candidates )-369(for )-369(r)17(euse. )-619(Most)-620(UNIX )-369(systems )-369(implement )-369(algorithms )-369(to )-369(delay )-369(r)15(euse,)]TJ 0 -1.2 Td [(however)74(,)-293(so)-293(that )-43(newly )-43(cr)18(eated )-43(pr)18(ocesses )-43(ar)]TJ 0.2932 Tc 19.552 0 Td (ea)Tj 0 Tc 1.272 0 Td [(ssigned )-43(IDs )-43(dif)18(fer)18(ent )-43(fr)18(om )-43(those )-43(used )-43(by)]TJ -20.824 -1.2 Td [(pr)18(ocesses )-132(that )-132(terminated )-132(r)19(ecently)]TJ 0.6317 Tc 15.372 0 Td (.T)Tj 0 Tc 1.495 0 Td [(his )-132(pr)18(events )-132(a )-132(new )-132(pr)18(ocess )-132(fr)18(om )-132(being )-132(mistaken)]TJ -16.867 -1.2 Td [(for the pr)18(evious pr)18(ocess to have used the same ID.)]TJ 1.8 -1.2 Td (Ther)Tj 0.4743 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.453 0 Td [(re )-260(s)]TJ 0 Tc 1.754 0 Td [(ome )-224(special )-224(pr)17(ocesses, )-224(but )-224(the )-224(details )-224(dif)18(fer )-224(fr)18(om )-224(implementation )-224(to)]TJ -7.059 -1.2 Td [(implementation. )-374(Pr)18(ocess )-124(ID )-124(0 )-124(is )-124(usually )-124(the )-124(scheduler )-124(pr)19(ocess )-124(and )-124(is )-124(often )-124(known )-124(as)]TJ -0 -1.2 Td (the)Tj /T1_3 1 Tf 1.853 0 Td (swapper)Tj /T1_2 1 Tf 0.7164 Tc (.N)Tj 0.4664 Tc 5.13 0 Td (op)Tj -0.018 Tc 1.613 0 Td (ro)Tj 0 Tc 0.923 0 Td [(gram )-216(on )-216(disk )-216(corr)18(esponds )-216(to )-216(this )-216(pr)16(ocess, )-216(which )-216(is )-216(part )-216(of )-216(the)]TJ /T1_4 1 Tf 9 0 0 9 506.101 114 Tm (227)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46835 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (xii)Tj /T1_1 1 Tf 3.166 0 Td (Contents)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 154.7907 667.9599 Tm [(5.6 )-3012(Reading)-556(and )-278(Wr)-15(iting )-278(a )-278(Stream)-2160(150)]TJ 0 -1.3 TD [(5.7 )-3012(Line-at-a-Time)-556(I/O )-1882(152)]TJ T* [(5.8 )-3012(Standard)-556(I/O )-278(Ef\336ciency)-2160(153)]TJ -0 -1.3 Td [(5.9 )-3012(Binar)]TJ 0.556 Tc 7.044 0 Td (yI)Tj 0 Tc 1.334 0 Td [(/O )-1882(156)]TJ -8.378 -1.3 Td [(5.10 )-2456(P)50(ositioning )-278(a )-278(Stream)-2160(157)]TJ -0 -1.3 Td [(5.11 )-2456(F)30(or )253(matted)-556(I/O )-1882(159)]TJ T* [(5.12 )-2456(Implementation)-556(Details )-1882(164)]TJ T* [(5.13 )-2456(T)120(empor)10(ar )248(y)-556(Files )-1882(167)]TJ T* [(5.14 )-2456(Memor)]TJ 0.556 Tc 7.821 0 Td (yS)Tj 0 Tc 1.723 0 Td [(treams )-1882(171)]TJ -9.544 -1.3 Td [(5.15 )-2456(Alter)-25(nativ)25(es )-278(to )-278(Standard )-278(I/O)-2160(174)]TJ 0 -1.3 Td [(5.16 )-2456(Summar)]TJ 2.16 Tc 8.488 0 Td (y1)Tj 0 Tc 3.216 0 Td (75)Tj /TT1 1 Tf -14.224 -2.47 Td [(Chapter )-278(6.)-2032(System )-278(Data )-278(Files )-278(and )-278(Inf)20(ormation )]TJ 34.118 0 Td (177)Tj /TT0 1 Tf -31.598 -1.82 Td [(6.1 )-3012(Introduction)-2160(177)]TJ T* [(6.2 )-3012(P)40(ass)]TJ -0.01 Tc 6.833 0 Td (wo)Tj 0 Tc 1.268 0 Td [(rd )-278(File)-2160(177)]TJ -8.101 -1.3 Td [(6.3 )-3012(Shado)]TJ 0.556 Tc 7.556 0 Td (wP)Tj 0 Tc 1.905 0 Td (ass)Tj -0.01 Tc 1.526 0 Td (wo)Tj 0 Tc 1.268 0 Td [(rds )-1882(181)]TJ -12.255 -1.3 Td [(6.4 )-3012(Group)-556(File )-1882(182)]TJ T* [(6.5 )-3012(Supplementar)]TJ 0.556 Tc 10.935 0 Td (yG)Tj 0 Tc 1.834 0 Td [(roup )-278(IDs)-2160(183)]TJ -12.769 -1.3 Td [(6.6 )-3012(Implementation)-556(Diff)30(erences )-1882(184)]TJ T* [(6.7 )-3012(Other)-556(Data )-278(Files)-2160(185)]TJ -0 -1.3 Td [(6.8 )-3012(Login)-556(Accounting )-1882(186)]TJ T* [(6.9 )-3012(System)-556(Identi\336cation )-1882(187)]TJ T* [(6.10 )-2456(Time)-556(and )-278(Date )-278(Routines)-2160(189)]TJ 0 -1.3 Td [(6.11 )-2456(Summar)]TJ 2.16 Tc 8.488 0 Td (y1)Tj 0 Tc 3.216 0 Td (96)Tj /TT1 1 Tf -14.224 -2.47 Td [(Chapter )-278(7.)-2032(Pr)20(ocess )-278(En)40(vir)20(onment )]TJ 34.118 0 Td (197)Tj /TT0 1 Tf -31.598 -1.82 Td [(7.1 )-3012(Introduction)-2160(197)]TJ T* (7.2)Tj /TT2 1 Tf 4.68 0 Td (main)Tj /TT0 1 Tf 2.956 0 Td [(Function )-1882(197)]TJ -7.636 -1.3 Td [(7.3 )-3012(Process)]TJ -0.12 Tc 8.848 0 Td (Te)Tj 0.025 Tc 1.047 0 Td (rm)Tj 0 Tc 1.191 0 Td [(ination )-1882(198)]TJ -11.086 -1.3 Td [(7.4 )-3012(Command)]TJ 9.292 0.09 Td (-)Tj 0.333 -0.09 Td [(Line )-278(Arguments)-2160(203)]TJ -9.625 -1.3 Td [(7.5 )-3012(En)20(vironment )-278(List)-2160(203)]TJ T* [(7.6 )-3012(Memor)]TJ 0.556 Tc 7.821 0 Td (yL)Tj -0.03 Tc 1.612 0 Td [(ay )238(o)]TJ 0 Tc 1.562 0 Td [(ut )-278(of )-278(a )-278(C )-278(Prog)]TJ -0.01 Tc 7.272 0 Td (ra)Tj 2.16 Tc 0.879 0 Td (m2)Tj 0 Tc 3.549 0 Td (04)Tj -22.695 -1.3 Td [(7.7 )-3012(Shared)-556(Libr)10(ar )263(ies)-2160(206)]TJ -0 -1.3 Td [(7.8 )-3012(Memor)]TJ 0.556 Tc 7.821 0 Td (yA)Tj 0 Tc 1.723 0 Td [(llocation )-1882(207)]TJ -9.544 -1.3 Td [(7.9 )-3012(En)20(vironment )-278(V)70(ar )263(iab)20(les )-1882(210)]TJ 0 -1.3 Td (7.10)Tj /TT2 1 Tf 4.68 0 Td (setjmp)Tj /TT0 1 Tf 4.156 0 Td (and)Tj /TT2 1 Tf 2.224 0 Td (longjmp)Tj /TT0 1 Tf 4.756 0 Td [(Functions )-1882(213)]TJ -15.816 -1.3 Td (7.11)Tj /TT2 1 Tf 4.68 0 Td (getrlimit)Tj /TT0 1 Tf 5.956 0 Td (and)Tj /TT2 1 Tf 2.224 0 Td (setrlimit)Tj /TT0 1 Tf 5.956 0 Td [(Functions )-1882(220)]TJ -18.816 -1.3 Td [(7.12 )-2456(Summar)]TJ 2.16 Tc 8.488 0 Td (y2)Tj 0 Tc 3.216 0 Td (25)Tj /TT1 1 Tf -14.224 -2.47 Td [(Chapter )-278(8.)-2032(Pr)20(ocess )-278(Contr)20(ol )]TJ 34.118 0 Td (227)Tj /TT0 1 Tf -31.598 -1.82 Td [(8.1 )-3012(Introduction)-2160(227)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46836 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(7.12)]TJ 39.488 0 Td (Summary)Tj /T1_1 1 Tf 6.345 0 Td (225)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Running this pr)18(ogram under Fr)18(eeBSD gives us the following output:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 651.191 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td [(RLIMIT_AS )-3600(\(infinite\))-1200(\(infinite\))]TJ 0 -1.189 TD [(RLIMIT_CORE )-2400(\(infinite\))-1200(\(infinite\))]TJ T* [(RLIMIT_CPU )-3000(\(infinite\))-1200(\(infinite\))]TJ T* [(RLIMIT_DATA )-3000(536870912)-1800(536870912)]TJ 0 -1.189 TD [(RLIMIT_FSIZE )-1800(\(infinite\))-1200(\(infinite\))]TJ 0 -1.189 TD [(RLIMIT_MEMLOCK )-600(\(infinite\) )-600(\(infinite\))]TJ T* [(RLIMIT_NOFILE )-4800(3520)-4800(3520)]TJ T* (RLIMIT_NPROC )Tj 13.2 0 Td [(1760)-4800(1760)]TJ -13.2 -1.189 Td [(RLIMIT_NPTS )-2400(\(infinite\))-1200(\(infinite\))]TJ T* [(RLIMIT_RSS )-3000(\(infinite\))-1200(\(infinite\))]TJ T* [(RLIMIT_SBSIZE )-1200(\(infinite\))-1200(\(infinite\))]TJ T* [(RLIMIT_STACK )-3000(67108864)-2400(67108864)]TJ T* [(RLIMIT_SWAP )-2400(\(infinite\))-1200(\(infinite\))]TJ 0 -1.189 TD [(RLIMIT_VMEM )-2400(\(infinite\))-1200(\(infinite\))]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 482.3313 Tm [(Solaris gives us the following r)18(esults:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 464.562 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td [(RLIMIT_AS )-3600(\(infinite\))-1200(\(infinite\))]TJ 0 -1.189 TD [(RLIMIT_CORE )-2400(\(infinite\))-1200(\(infinite\))]TJ 0 -1.189 TD [(RLIMIT_CPU )-3000(\(infinite\))-1200(\(infinite\))]TJ 0 -1.189 TD [(RLIMIT_DATA )-2400(\(infinite\))-1200(\(infinite\))]TJ 0 -1.189 TD [(RLIMIT_FSIZE )-1800(\(infinite\))-1200(\(infinite\))]TJ 0 -1.189 TD (RLIMIT_NOFILE )Tj 13.8 0 Td [(256)-4200(65536)]TJ -13.8 -1.189 Td [(RLIMIT_STACK )-3600(8388608)-1200(\(infinite\))]TJ T* [(RLIMIT_VMEM )-2400(\(infinite\))-1200(\(infinite\))]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3719.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 347.8783 Tm [(Exer)18(cise 10.1)]TJ 0.25 Tc 5.566 0 Td (1c)Tj 0 Tc 1.194 0 Td [(ontinues the discussion of r)18(esour)18(ce limits, after we\325ve cover)18(ed signals.)]TJ /TT2 1 Tf 11.9986 0 0 11.9986 93.5888 313.0824 Tm [(7.12 )-776(Summar)-10(y)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 290.2852 Tm [(Understanding )-3(the )-3(envir)18(onment )-3(of )-3(a )-3(C )-3(pr)17(ogram )-3(within )-3(a )-3(UNIX )-3(system\325s )-3(envir)18(onment )-3(is)]TJ 0.2592 Tc 0 -1.2 TD (ap)Tj 0 Tc 1.36 0 Td [(r)18(er)18(equisite )-9(to )-9(understanding )-9(the )-9(pr)18(ocess )-9(contr)18(ol )-9(featur)18(es )-9(of )-9(the )-9(UNIX )-9(System.)-511(In )-9(this)]TJ -1.36 -1.2 Td (chapter)Tj 0.3756 Tc 3.253 0 Td (,w)Tj 0 Tc 1.46 0 Td [(e\325ve )-126(looked )-126(at )-126(how )-126(a )-126(pr)18(ocess )-126(is )-126(started, )-126(how )-126(it )-126(can )-126(terminate, )-126(and )-126(how )-126(it\325s)]TJ -4.713 -1.2 Td [(passed )-50(an )-50(ar)18(gument )-50(list )-50(and )-50(an )-50(envir)19(onment. )-300(Although)-300(both )-50(the )-50(ar)18(gument )-50(list )-50(and )-50(the)]TJ -0 -1.2 Td [(envir)18(onment )-84(ar)]TJ 0.3338 Tc 6.903 0 Td (eu)Tj 0 Tc 1.416 0 Td [(ninterpr)18(eted )-84(by )-84(the )-84(kernel, )-84(it )-84(is )-84(the )-84(kernel )-84(that )-84(passes )-84(both )-84(fr)20(om )-84(the)]TJ -8.319 -1.2 Td (caller of)Tj /TT0 1 Tf 3.779 0 Td (exec)Tj /T1_0 1 Tf 2.65 0 Td [(to the new pr)18(ocess.)]TJ -0.092 Tc -4.629 -1.2 Td (We)Tj 0 Tc 1.387 0 Td [(\325ve )-133(also )-133(examined )-133(the )-133(typical )-133(memory )-133(layout )-133(of )-133(a )-133(C )-133(pr)17(ogram )-133(and )-133(seen )-133(how )-133(a)]TJ -3.187 -1.2 Td [(pr)18(ocess )-54(can )-54(dynamically )-54(allocate )-54(and )-54(fr)18(ee )-54(memory)]TJ 0.5542 Tc 22.52 0 Td (.I)Tj 0 Tc 1.141 0 Td [(t)-304(is)-304(worthwhile )-54(to )-54(look )-54(in )-54(detail )-54(at)]TJ -23.661 -1.2 Td [(the )-118(functions )-118(available )-118(for )-118(manipulating )-118(the )-118(envir)18(onment, )-118(since )-118(they )-118(involve )-118(memory)]TJ T* [(allocation. )-402(The)-403(functions)]TJ /TT0 1 Tf 11.829 0 Td (setjmp)Tj /T1_0 1 Tf 4.002 0 Td (and)Tj /TT0 1 Tf 2.095 0 Td (longjmp)Tj /T1_0 1 Tf 4.602 0 Td (wer)Tj 0.4024 Tc 1.69 0 Td (ep)Tj -0.018 Tc 1.482 0 Td (re)Tj 0 Tc 0.856 0 Td [(sented, )-152(pr)18(oviding )-152(a )-152(way )-152(to)]TJ -26.558 -1.2 Td [(perform )-9(nonlocal )-9(branching )-9(within )-9(a )-9(pr)20(ocess. )-259(W)]TJ 0.2586 Tc 21.56 0 Td (e\336)Tj 0 Tc 1.343 0 Td [(nished )-9(the )-9(chapter )-9(by )-9(describing )-9(the)]TJ -0.018 Tc -22.902 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sour)18(ce limits that various implementations pr)18(ovide.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46837 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (220)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Envir)18(onment )]TJ 39.241 0 Td [(Chapter)-500(7)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(#include )-1800()]TJ 0 -2.14 TD (FILE *)Tj 0 -1.189 TD (open_data\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(FILE )-1800(*fp;)]TJ T* [(char )-1800(databuf[BUFSIZ];)-1200(/* setvbuf makes this the stdio buffer */)]TJ 0 -2.14 TD (if \(\(fp = fopen\("datafile", "r"\)\) == NULL\))Tj 2.4 -1.189 Td (return\(NULL\);)Tj -2.4 -1.189 Td (if \(setvbuf\(fp, databuf, _IOLBF, BUFSIZ\) != 0\))Tj 2.4 -1.189 Td (return\(NULL\);)Tj -2.4 -1.189 Td [(return\(fp\); )-2400(/*)-600(error */)]TJ -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5199.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 231.0083 503.8175 Tm (Figure 7.14)Tj /T1_1 1 Tf 5.695 0 Td [(Incorr)18(ect usage of an automatic variable)]TJ 9.9988 0 0 9.9988 129.5846 479.8204 Tm [(The )-134(pr)18(oblem )-134(is )-134(that )-134(when)]TJ /TT0 1 Tf 12.251 0 Td (open_data)Tj /T1_1 1 Tf -0.018 Tc 5.784 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns, )-134(the )-134(space )-134(it )-134(used )-134(on )-134(the )-134(stack )-134(will )-134(be)]TJ -18.891 -1.2 Td [(used )-9(by )-9(the )-9(stack )-9(frame )-9(for )-9(the )-9(next )-9(function )-9(that )-9(is )-9(called.)-508(But )-9(the )-9(standar)]TJ 0.259 Tc 33.161 0 Td (dI)Tj 0 Tc 1.207 0 Td [(/O )-9(library)]TJ -34.368 -1.2 Td [(will )-72(still )-72(be )-72(using )-72(that )-72(portion )-72(of )-72(memory )-72(for )-72(its )-72(str)18(eam )-72(buf)18(fer)]TJ 0.5719 Tc 27.91 0 Td (.C)Tj 0 Tc 1.531 0 Td [(haos )-72(is )-72(sur)18(e)-322(to)-322(r)18(esult.)]TJ -0.092 Tc -29.441 -1.2 Td [(To )-254(c)]TJ 0 Tc 1.831 0 Td [(orr)18(ect )-70(this )-70(pr)18(oblem, )-70(the )-70(array)]TJ /TT0 1 Tf 13.504 0 Td (databuf)Tj /T1_1 1 Tf 4.52 0 Td [(needs )-70(to )-70(be )-70(allocated )-70(fr)18(om )-70(global )-70(memory)110(,)]TJ -19.855 -1.2 Td (either statically \()Tj /TT0 1 Tf (static)Tj /T1_1 1 Tf 11.184 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (extern)Tj /T1_1 1 Tf [(\))-250(or)-250(dynamically \(one of the)]TJ /TT0 1 Tf 16.085 0 Td (alloc)Tj /T1_1 1 Tf 3.25 0 Td (functions\).)Tj /TT1 1 Tf 11.9986 0 0 11.9986 93.589 395.8305 Tm (7.11)Tj /TT2 1 Tf 3 0 Td (getrlimit)Tj /TT1 1 Tf 5.956 0 Td (and)Tj /TT2 1 Tf 2.334 0 Td (setrlimit)Tj /TT1 1 Tf 5.956 0 Td (Functions)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5842 371.8334 Tm [(Every )-1(pr)18(ocess )-1(has )-1(a )-1(set )-1(of )-1(r)15(esour)18(ce )-1(limits, )-1(some )-1(of )-1(which )-1(can )-1(be )-1(queried )-1(and )-1(changed )-1(by)]TJ -0 -1.2 Td (the)Tj /TT0 1 Tf 1.637 0 Td (getrlimit)Tj /T1_1 1 Tf 5.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (setrlimit)Tj /T1_1 1 Tf 5.65 0 Td (functions.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5819 340.7371 Tm (#include )Tj T* (int getrlimit\(int)Tj /T1_2 1 Tf -0.018 Tc 10.8 0 Td (re)Tj 0 Tc 0.76 0 Td [(sour)18(ce)]TJ /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 4.356 0 Td (truct rlimit *)Tj /T1_2 1 Tf (rlptr)Tj /TT0 1 Tf (\);)Tj -15.916 -2.14 Td (int setrlimit\(int)Tj /T1_2 1 Tf -0.018 Tc 10.8 0 Td (re)Tj 0 Tc 0.76 0 Td [(sour)18(ce)]TJ /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.356 0 Td (onst struct rlimit *)Tj /T1_2 1 Tf (rlptr)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 9.335 -2.14 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT3 1 Tf 9.213 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2785.25 cm 0 0 m 0 713 l 3900 713 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 183.567 254.5522 Tm [(These )-234(two )-234(functions )-234(ar)]TJ 0.484 Tc 10.743 0 Td (ed)Tj 0 Tc 1.574 0 Td [(e\336ned )-234(in )-234(the )-234(XSI )-234(option )-234(in )-234(the )-234(Single )-234(UNIX )-234(Speci\336cation.)-735(The)]TJ -0.018 Tc -12.317 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(sour)18(ce )-304(limits )-304(for )-304(a )-304(pr)18(ocess )-304(ar)]TJ 0.5544 Tc 14.097 0 Td (en)Tj 0 Tc 1.615 0 Td [(ormally )-304(established )-304(by )-304(pr)18(ocess )-304(0 )-304(when )-304(the )-304(system )-304(is)]TJ -16.568 -1.25 Td [(initialized )-138(and )-138(then )-138(inherited )-138(by )-138(each )-138(successive )-138(pr)18(ocess. )-388(Each)-388(implementation )-138(has )-138(its )-138(own)]TJ 0 -1.25 Td (way of tuning the various limits.)Tj 9.9982 0 0 9.9982 147.574 198.5623 Tm [(Each )-227(call )-227(to )-227(these )-227(two )-227(functions )-227(speci\336es )-227(a )-227(single)]TJ /T1_2 1 Tf -0.018 Tc 23.827 0 Td (re)Tj 0 Tc 0.76 0 Td [(sour)18(ce)]TJ /T1_1 1 Tf 3.033 0 Td [(and )-227(a )-227(pointer )-227(to )-227(the)]TJ -29.42 -1.2 Td [(following str)8(uctur)18(e:)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.5738 169.8674 Tm (struct rlimit {)Tj 1.2 -1.189 Td [(rlim_t )-600(rlim_cur; )-600(/*)-600(soft limit: current limit */)]TJ 0 -1.189 TD [(rlim_t )-600(rlim_max; )-600(/*)-600(hard limit: maximum value for rlim_cur */)]TJ -1.2 -1.189 Td (};)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46838 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(7.10)]TJ /TT0 1 Tf 28.486 0 Td (setjmp)Tj /T1_0 1 Tf 4.1 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (longjmp)Tj /T1_0 1 Tf 4.7 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (213)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(pr)18(ocess )-103(and )-103(so )-103(can\325t )-103(expand )-103(upwar)18(d; )-103(it )-103(can\325t )-103(be )-103(expanded )-103(downwar)18(d, )-103(because )-103(all )-103(the)]TJ 0 -1.2 TD (stack frames below it can\325t be moved.)Tj 1.8 -1.8 Td [(1. )-633(If)-250(we\325r)]TJ 0.25 Tc 4.521 0 Td (em)Tj 0 Tc 1.612 0 Td (odifying an existing)Tj /T1_2 1 Tf 9.063 0 Td (name:)Tj /T1_0 1 Tf -13.563 -1.8 Td [(a. )-633(If)-381(the )-131(size )-131(of )-131(the )-131(new)]TJ /T1_2 1 Tf 11.83 0 Td (value)Tj /T1_0 1 Tf 2.548 0 Td [(is )-131(less )-131(than )-131(or )-131(equal )-131(to )-131(the )-131(size )-131(of )-131(the )-131(existing)]TJ /T1_2 1 Tf -12.745 -1.2 Td (value)Tj /T1_0 1 Tf [(,)-250(we)-250(can just copy the new string over the old string.)]TJ -1.633 -1.6 Td [(b. )-580(If)-417(the )-167(size )-167(of )-167(the )-167(new)]TJ /T1_2 1 Tf 12.047 0 Td (value)Tj /T1_0 1 Tf 2.584 0 Td [(is )-167(lar)18(ger )-167(than )-167(the )-167(old )-167(one, )-167(however)74(,)-417(we)-417(must)]TJ /TT0 1 Tf -12.998 -1.2 Td (malloc)Tj /T1_0 1 Tf 3.909 0 Td [(to )-59(obtain )-59(r)18(oom )-59(for )-59(the )-59(new )-59(string, )-59(copy )-59(the )-59(new )-59(string )-59(to )-59(this )-59(ar)17(ea,)]TJ -3.909 -1.2 Td [(and )-127(then )-127(r)18(eplace )-127(the )-127(old )-127(pointer )-127(in )-127(the )-127(envir)18(onment )-127(list )-127(for)]TJ /T1_2 1 Tf 27.593 0 Td (name)Tj /T1_0 1 Tf 2.544 0 Td [(with )-127(the)]TJ -30.137 -1.2 Td [(pointer to this allocated ar)18(ea.)]TJ -3.266 -1.6 Td [(2. )-633(If)-530(we\325r)]TJ 0.5299 Tc 4.801 0 Td (ea)Tj 0 Tc 1.509 0 Td [(dding )-280(a )-280(new)]TJ /T1_2 1 Tf 6.636 0 Td (name)Tj /T1_0 1 Tf 0.5299 Tc (,i)Tj 0 Tc 3.238 0 Td [(t\325s )-280(mor)]TJ 0.5298 Tc 3.364 0 Td (ec)Tj 0 Tc 1.453 0 Td [(omplicated. )-530(First,)-530(we )-280(have )-280(to )-280(call)]TJ /TT0 1 Tf -19.367 -1.2 Td (malloc)Tj /T1_0 1 Tf 3.976 0 Td [(to )-126(allocate )-126(r)18(oom )-126(for )-126(the)]TJ /T1_2 1 Tf 11.145 0 Td (name=value)Tj /T1_0 1 Tf 5.316 0 Td [(string )-127(and )-127(copy )-127(the )-127(string )-127(to )-127(this)]TJ -20.437 -1.2 Td [(ar)18(ea.)]TJ 0 -1.8 TD [(a. )-633(Then,)-312(if )-62(it\325s )-62(the )-62(\336rst )-62(time )-62(we\325ve )-62(added )-62(a )-62(new)]TJ /T1_2 1 Tf 22.156 0 Td (name)Tj /T1_0 1 Tf [(,)-311(we)-311(h)-1(ave )-61(to )-61(call)]TJ /TT0 1 Tf 9.811 0 Td (malloc)Tj /T1_0 1 Tf -30.334 -1.2 Td [(to )-71(obtain )-71(r)18(oom )-71(for )-71(a )-71(new )-71(list )-71(of )-71(pointers.)]TJ -0.092 Tc 18.936 0 Td [(We )-255(c)]TJ 0 Tc 2.152 0 Td [(opy )-71(the )-71(old )-71(envir)18(onment )-71(list)]TJ -21.088 -1.2 Td [(to )-122(this )-122(new )-122(ar)18(ea )-122(and )-122(stor)]TJ 0.3724 Tc 11.474 0 Td (eap)Tj 0 Tc 2.325 0 Td [(ointer )-122(to )-122(the)]TJ /T1_2 1 Tf 5.995 0 Td (name=value)Tj /T1_0 1 Tf 5.312 0 Td [(string )-122(at )-122(the )-122(end )-122(of)]TJ -25.106 -1.2 Td [(this )-145(list )-145(of )-145(pointers.)]TJ -0.092 Tc 9.558 0 Td [(We )-329(a)]TJ 0 Tc 2.282 0 Td [(lso )-145(stor)]TJ 0.3951 Tc 3.329 0 Td (ean)Tj 0 Tc 2.351 0 Td [(ull )-145(pointer )-145(at )-145(the )-145(end )-145(of )-145(this )-145(list, )-145(of)]TJ -17.52 -1.2 Td [(course. )-342(Finally)111(,)-342(we)-342(s)-1(et)]TJ /TT0 1 Tf 10.508 0 Td (environ)Tj /T1_0 1 Tf 4.542 0 Td [(to )-92(point )-92(to )-92(this )-92(new )-92(list )-92(of )-92(pointers.)-594(Note)]TJ -15.051 -1.2 Td [(fr)18(om )-26(Figur)]TJ 0.276 Tc 4.798 0 Td (e7)Tj 0 Tc 1.255 0 Td [(.6 )-26(that )-26(if )-26(the )-26(original )-26(envir)18(onment )-26(list )-26(was )-26(contained )-26(above )-26(the)]TJ -6.053 -1.2 Td [(top )-89(of )-89(the )-89(stack, )-89(as )-89(is )-89(common, )-89(then )-89(we )-89(have )-89(moved )-89(this )-89(list )-89(of )-89(pointers )-89(to)]TJ 0 -1.2 TD [(the )-11(heap.)-511(But )-11(most )-11(of )-11(the )-11(pointers )-11(in )-11(this )-11(list )-11(still )-11(point )-11(to)]TJ /T1_2 1 Tf 25.735 0 Td (name=value)Tj /T1_0 1 Tf 5.201 0 Td (strings)Tj -30.936 -1.2 Td (above the top of the stack.)Tj -1.633 -1.6 Td [(b. )-580(If)-365(this )-115(isn\325t )-115(the )-115(\336rst )-115(time )-115(we\325ve )-115(added )-115(new )-115(strings )-115(to )-115(the )-115(envir)13(onment )-115(list,)]TJ 1.633 -1.2 Td [(then )-51(we )-51(know )-51(that )-51(we\325ve )-51(alr)18(eady )-51(allocated )-51(r)18(oom )-51(for )-51(the )-51(list )-51(on )-51(the )-51(heap, )-51(so)]TJ T* [(we )-68(just )-68(call)]TJ /TT0 1 Tf 5.379 0 Td (realloc)Tj /T1_0 1 Tf 4.518 0 Td [(to )-68(allocate )-68(r)18(oom )-68(for )-68(one )-68(mor)]TJ 0.3176 Tc 12.876 0 Td (ep)Tj 0 Tc 1.398 0 Td (ointer)Tj 0.5676 Tc 2.545 0 Td (.T)Tj 0 Tc 1.431 0 Td [(he )-68(pointer )-68(to)]TJ -28.146 -1.2 Td [(the )-215(new)]TJ /T1_2 1 Tf 4.212 0 Td (name=value)Tj /T1_0 1 Tf 5.405 0 Td [(string )-215(is )-215(stor)18(ed )-215(at )-215(the )-215(end )-215(of )-215(the )-215(list )-215(\(on )-215(top )-215(of )-215(the)]TJ -9.617 -1.2 Td [(pr)18(evious null pointer\), followed by a null pointer)74(.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5932 302.9818 Tm (7.10)Tj /TT2 1 Tf 3 0 Td (setjmp)Tj /TT1 1 Tf 4.156 0 Td (and)Tj /TT2 1 Tf 2.334 0 Td (longjmp)Tj /TT1 1 Tf 4.756 0 Td (Functions)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5906 278.9833 Tm [(In )-12(C, )-12(we )-12(can\325t)]TJ /TT0 1 Tf 6.368 0 Td (goto)Tj /T1_0 1 Tf 0.2618 Tc 2.662 0 Td (al)Tj 0 Tc 1.053 0 Td [(abel )-12(that\325s )-12(in )-12(another )-12(function.)-511(Instead, )-12(we )-12(must )-12(use )-12(the)]TJ /TT0 1 Tf 25.317 0 Td (setjmp)Tj /T1_0 1 Tf -35.4 -1.2 Td (and)Tj /TT0 1 Tf 2.156 0 Td (longjmp)Tj /T1_0 1 Tf 4.663 0 Td [(functions )-213(to )-213(perform )-213(this )-213(type )-213(of )-213(branching.)-713(As )-213(we\325ll )-213(see, )-213(these )-213(two)]TJ -6.819 -1.2 Td [(functions )-20(ar)]TJ 0.2702 Tc 5.278 0 Td (eu)Tj 0 Tc 1.352 0 Td [(seful )-20(for )-20(handling )-20(err)17(or )-20(conditions )-20(that )-20(occur )-20(in )-20(a )-20(deeply )-20(nested )-20(function)]TJ -6.63 -1.2 Td (call.)Tj 1.8 -1.2 Td [(Consider )-52(the )-52(skeleton )-52(in )-52(Figur)]TJ 0.3022 Tc 13.572 0 Td (e7)Tj 0 Tc 1.281 0 Td [(.9. )-302(It)-303(consists )-52(of )-52(a )-52(main )-52(loop )-52(that )-52(r)18(eads )-52(lines )-52(fr)16(om)]TJ -16.653 -1.2 Td (standar)Tj 0.2945 Tc 3.32 0 Td (di)Tj 0 Tc 1.196 0 Td [(nput )-44(and )-44(calls )-44(the )-44(function)]TJ /TT0 1 Tf 12.322 0 Td (do_line)Tj /T1_0 1 Tf 4.494 0 Td [(to )-44(pr)18(ocess )-44(each )-44(line.)-544(This )-44(function )-44(then)]TJ -21.333 -1.2 Td (calls)Tj /TT0 1 Tf 2.251 0 Td (get_token)Tj /T1_0 1 Tf 5.701 0 Td [(to )-51(fetch )-51(the )-51(next )-51(token )-51(fr)20(om )-51(the )-51(input )-51(line.)-551(The )-51(\336rst )-51(token )-51(of )-51(a )-51(line )-51(is)]TJ -7.951 -1.2 Td [(assumed )-336(to )-336(be )-336(a )-336(command )-336(of )-336(some )-336(form, )-336(and )-336(a)]TJ /TT0 1 Tf 24.446 0 Td (switch)Tj /T1_0 1 Tf 4.186 0 Td [(statement )-336(selects )-336(each)]TJ -28.632 -1.2 Td [(command. )-250(For)-250(the single command shown, the function)]TJ /TT0 1 Tf 25.217 0 Td (cmd_add)Tj /T1_0 1 Tf 4.45 0 Td (is called.)Tj -27.867 -1.2 Td [(The )-102(skeleton )-102(in )-102(Figur)]TJ 0.3524 Tc 9.67 0 Td (e7)Tj 0 Tc 1.331 0 Td [(.9 )-102(is )-102(typical )-102(for )-102(pr)18(ograms )-102(that )-102(r)16(ead )-102(commands, )-102(determine)]TJ -12.802 -1.2 Td [(the )-242(command )-242(type, )-242(and )-242(then )-242(call )-242(functions )-242(to )-242(pr)20(ocess )-242(each )-242(command.)-741(Figur)]TJ 0.4916 Tc 36.279 0 Td (e7)Tj 0 Tc 1.471 0 Td (.10)Tj -37.75 -1.2 Td (shows what the stack could look like after)Tj /TT0 1 Tf 18.773 0 Td (cmd_add)Tj /T1_0 1 Tf 4.45 0 Td (has been called.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46839 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (210)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Envir)18(onment )]TJ 39.241 0 Td [(Chapter)-500(7)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (jemalloc)Tj /T1_1 1 Tf 3.6 -1.8 Td (The)Tj /TT1 1 Tf 1.966 0 Td (jemalloc)Tj /T1_1 1 Tf 5.092 0 Td [(implementation )-42(of )-42(the)]TJ /TT1 1 Tf 10.204 0 Td (malloc)Tj /T1_1 1 Tf 3.893 0 Td [(family )-42(of )-42(library )-42(functions )-42(is )-42(the )-42(default)]TJ -21.155 -1.2 Td [(memory )-289(allocator )-289(in )-289(Fr)18(eeBSD )-289(8.0.)-789(It )-289(was )-289(designed )-289(to )-289(scale )-289(well )-289(when )-289(used )-289(with)]TJ 0 -1.2 TD [(multithr)18(eaded )-55(applications )-55(r)8(unning )-55(on )-55(multipr)18(ocessor )-55(systems.)-554(Evans)]TJ 31.929 0.04 Td ([)Tj 0.333 -0.04 Td (2006)Tj 2 0.04 Td (])Tj 0.638 -0.04 Td (describes)Tj -34.9 -1.2 Td (the implementation and evaluates its performance.)Tj /TT0 1 Tf -3.6 -2.4 Td (TCMalloc)Tj /TT1 1 Tf 3.6 -1.8 Td (TCMalloc)Tj /T1_1 1 Tf 5.346 0 Td [(was )-296(designed )-296(as )-296(a )-296(r)18(eplacement )-296(for )-296(the)]TJ /TT1 1 Tf 19.136 0 Td (malloc)Tj /T1_1 1 Tf 4.146 0 Td [(family )-296(of )-296(functions )-296(to)]TJ -28.627 -1.2 Td [(pr)18(ovide )-320(high )-320(performance, )-320(scalability)]TJ 0.5705 Tc 17.436 0 Td (,a)Tj 0 Tc 1.321 0 Td [(nd )-320(memory )-320(ef)17(\336ciency)]TJ 0.8204 Tc 10.16 0 Td (.I)Tj 0.5704 Tc 1.407 0 Td (tu)Tj 0 Tc 1.499 0 Td [(ses )-320(thr)18(ead)]TJ 4.772 0.09 Td (-)Tj 0.333 -0.09 Td (local)Tj -36.928 -1.2 Td [(caches )-54(to )-54(avoid )-54(locking )-54(over)18(head )-54(when )-54(allocating )-54(buf)18(fers )-54(fr)20(om )-54(and )-54(r)18(eleasing )-54(buf)18(fers )-54(to)]TJ T* [(the )-113(cache.)-613(It )-113(also )-113(has )-113(a )-113(heap )-113(checker )-113(and )-113(a )-113(heap )-113(pr)18(o\336ler )-113(built )-113(in )-113(to )-113(aid )-113(in )-113(debugging)]TJ T* [(and )-205(analyzing )-205(dynamic )-205(memory )-205(usage.)-705(The)]TJ /TT1 1 Tf 21.127 0 Td (TCMalloc)Tj /T1_1 1 Tf 5.255 0 Td [(library )-205(is )-205(available )-205(as )-205(open)]TJ -26.382 -1.2 Td [(sour)18(ce fr)18(om Google.)-500(It is brie\337y described by Ghemawat and Menage)]TJ 31.201 0.04 Td ([)Tj 0.333 -0.04 Td (2005)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td (.)Tj /TT0 1 Tf -37.467 -2.4 Td (alloca)Tj /TT2 1 Tf 3.878 0 Td (Function)Tj /T1_1 1 Tf -0.278 -1.8 Td [(One )-80(additional )-80(function )-80(is )-80(also )-80(worth )-80(mentioning.)-580(The )-80(function)]TJ /TT1 1 Tf 29.231 0 Td (alloca)Tj /T1_1 1 Tf 3.93 0 Td [(has )-80(the )-80(same)]TJ -33.161 -1.2 Td [(calling )-56(sequence )-56(as)]TJ /TT1 1 Tf 8.849 0 Td (malloc)Tj /T1_1 1 Tf 0.3066 Tc (;h)Tj 0 Tc 4.739 0 Td (owever)Tj 0.3066 Tc 3.224 0 Td (,i)Tj 0 Tc 0.848 0 Td [(nstead )-57(of )-57(allocating )-57(memory )-57(fr)18(om )-57(the )-57(heap, )-57(the)]TJ -17.659 -1.2 Td [(memory )-19(is )-19(allocated )-19(fr)18(om )-19(the )-19(stack )-19(frame )-19(of )-19(the )-19(curr)16(ent )-19(function.)-519(The )-19(advantage )-19(is )-19(that)]TJ T* [(we )-73(don\325t )-73(have )-73(to )-73(fr)20(ee )-73(the )-73(space; )-73(it )-73(goes )-73(away )-73(automatically )-73(when )-73(the )-73(function )-73(r)21(eturns.)]TJ 0 -1.2 Td (The)Tj /TT1 1 Tf 2.079 0 Td (alloca)Tj /T1_1 1 Tf 4.005 0 Td [(function )-155(incr)18(eases )-155(the )-155(size )-155(of )-155(the )-155(stack )-155(frame.)-655(The )-155(disadvantage )-155(is )-155(that)]TJ -6.084 -1.2 Td [(some )-100(systems )-100(can\325t )-100(support)]TJ /TT1 1 Tf 12.875 0 Td (alloca)Tj /T1_1 1 Tf [(,)-350(if)-350(i)-1(t\325s )-100(impossible )-100(to )-100(incr)18(ease )-100(the )-100(size )-100(of )-100(the )-100(stack)]TJ -12.875 -1.2 Td [(frame )-66(after )-66(the )-66(function )-66(has )-66(been )-66(called.)-566(Nevertheless, )-66(many )-66(softwar)]TJ 0.3159 Tc 31.14 0 Td (ep)Tj 0 Tc 1.396 0 Td [(ackages )-66(use )-66(it,)]TJ -32.536 -1.2 Td (and implementations exist for a wide variety of systems.)Tj 7.9995 0 0 7.9995 183.5889 365.7781 Tm [(All four platforms discussed in this text pr)18(ovide the)]TJ /TT1 1 Tf 23.097 0 Td (alloca)Tj /T1_1 1 Tf 3.85 0 Td (function.)Tj /TT2 1 Tf 11.9993 0 0 11.9993 93.5943 333.38 Tm [(7.9 )-1332(En)40(vir)20(onment )-278(V)60(ariab)10(les)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5921 311.7813 Tm (As we mentioned earlier)Tj 0.25 Tc 10.8 0 Td (,t)Tj 0 Tc 0.826 0 Td [(he envir)18(onment strings ar)]TJ 0.25 Tc 11.378 0 Td (eu)Tj 0 Tc 1.332 0 Td (sually of the form)Tj /T1_2 1 Tf 8.9995 0 0 8.9995 147.5911 295.0823 Tm (name)Tj /TT1 1 Tf (=)Tj /T1_2 1 Tf (value)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 277.0834 Tm [(The )-109(UNIX )-109(kernel )-109(never )-109(looks )-109(at )-109(these )-109(strings; )-109(their )-109(interpr)17(etation )-109(is )-109(up )-109(to )-109(the )-109(various)]TJ T* [(applications. )-504(The)-505(shells, )-254(for )-254(example, )-254(use )-254(numer)18(ous )-254(envir)18(onment )-254(variables.)-756(Some,)]TJ T* [(such )-72(as)]TJ /TT1 1 Tf 3.62 0 Td (HOME)Tj /T1_1 1 Tf 2.722 0 Td (and)Tj /TT1 1 Tf 2.015 0 Td (USER)Tj /T1_1 1 Tf 0.3217 Tc (,a)Tj -0.018 Tc 3.472 0 Td [(re )-108(s)]TJ 0 Tc 1.602 0 Td [(et )-72(automatically )-72(at )-72(login; )-72(others )-72(ar)]TJ 0.3218 Tc 15.442 0 Td (el)Tj 0 Tc 1.092 0 Td [(eft )-72(for )-72(us )-72(to )-72(set.)]TJ -0.092 Tc 7.649 0 Td (We)Tj 0 Tc -37.613 -1.2 Td [(normally )-74(set )-74(envir)18(onment )-74(variables )-74(in )-74(a )-74(shell )-74(start-up )-74(\336le )-74(to )-74(contr)18(ol )-74(the )-74(shell\325s )-74(actions.)]TJ T* [(If )-170(we )-170(set )-170(the )-170(envir)18(onment )-170(variable)]TJ /TT1 1 Tf 16.387 0 Td (MAILPATH)Tj /T1_1 1 Tf 0.4203 Tc (,f)Tj 0 Tc 5.803 0 Td [(or )-170(example, )-170(it )-170(tells )-170(the )-170(Bourne )-170(shell,)]TJ -22.19 -1.2 Td [(GNU Bourne-again shell, and Korn shell wher)18(e)-250(to)-250(look for mail.)]TJ 1.8 -1.2 Td [(ISO )-52(C )-52(de\336nes )-52(a )-52(function )-52(that )-52(we )-52(can )-52(use )-52(to )-52(fetch )-52(values )-52(fr)18(om )-52(the )-52(envir)18(onment, )-52(but)]TJ -1.8 -1.2 Td (this standar)Tj 0.25 Tc 5.193 0 Td (ds)Tj 0 Tc 1.285 0 Td [(ays that the contents of the envir)18(onment ar)]TJ 0.25 Tc 18.895 0 Td (ei)Tj 0 Tc 1.02 0 Td (mplementation de\336ned.)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5911 176.3894 Tm (#include )Tj 0 -1.783 TD (char *getenv\(const char *)Tj /T1_2 1 Tf (name)Tj /TT1 1 Tf (\);)Tj /T1_1 1 Tf 10.699 -1.783 Td (Returns: pointer to)Tj /T1_2 1 Tf 8.569 0 Td (value)Tj /T1_1 1 Tf 2.417 0 Td (associated with)Tj /T1_2 1 Tf 7.078 0 Td (name)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 2.667 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td (if not found)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1398.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46840 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(7.8)]TJ 34.933 0 Td [(Memory )-250(Allocation)]TJ /T1_1 1 Tf 10.9 0 Td (207)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(an )-102(example )-102(of )-102(the )-102(size )-102(dif)19(fer)18(ences, )-102(the )-102(following )-102(executable )-102(\336le)]TJ 0.0833 Tc 28.808 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(he )-102(classic)]TJ /TT0 1 Tf 4.583 0 Td (hello.c)Tj /T1_0 1 Tf -34.8 -1.2 Td [(pr)18(ogram )167(\321 )167(was)-251(\336rst cr)18(eated without shar)18(ed libraries:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.591 640.2616 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (gcc -static hello1.c)Tj /T1_2 1 Tf 16.4 0 Td [(pr)18(event gcc fr)18(om using shar)18(ed libraries)]TJ /TT0 1 Tf -17.6 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l a.out)Tj /TT0 1 Tf -1.2 -1.189 Td [(-rwxr-xr-x )-600(1)-600(sar )-2400(879443)-600(Sep 2 10:39 a.out)]TJ 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (size a.out)Tj /TT0 1 Tf 0.6 -1.189 Td [(text )-1800(data )-1800(bss)-3000(dec )-2400(hex)-1200(filename)]TJ -1.2 -1.189 Td [(787775 )-1800(6128)-1200(11272 )-600(805175)-1800(c4937 )-600(a.out)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5921 568.7659 Tm [(If )-266(we )-266(compile )-266(this )-266(pr)20(ogram )-265(to )-265(use )-265(shar)18(ed )-265(libraries, )-265(the )-265(text )-265(and )-265(data )-265(sizes )-265(of )-265(the)]TJ 0 -1.2 TD (executable \336le ar)Tj 0.25 Tc 7.422 0 Td (eg)Tj -0.018 Tc 1.285 0 Td (re)Tj 0 Tc 0.856 0 Td [(atly decr)18(eased:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 540.0676 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (gcc hello1.c)Tj /T1_2 1 Tf 16.4 0 Td [(gcc defaults to use shar)18(ed libraries)]TJ /TT0 1 Tf -17.6 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l a.out)Tj /TT0 1 Tf -1.2 -1.189 Td [(-rwxr-xr-x )-600(1)-600(sar )-3600(8378)-600(Sep 2 10:39 a.out)]TJ 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (size a.out)Tj /TT0 1 Tf 0.6 -1.189 Td [(text )-1800(data )-1800(bss)-3000(dec )-2400(hex)-1200(filename)]TJ 0 -1.189 TD [(1176 )-2400(504 )-2400(16)-2400(1696 )-2400(6a0)-1200(a.out)]TJ /TT2 1 Tf 11.9993 0 0 11.9993 93.5942 449.373 Tm [(7.8 )-1332(Memor)]TJ 0.556 Tc 6.288 0 Td (yA)Tj 0 Tc 1.834 0 Td (llocation)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.592 425.3745 Tm [(ISO C speci\336es thr)18(ee functions for memory allocation:)]TJ 1.8 -1.56 Td (1.)Tj /TT0 1 Tf 1.633 0 Td (malloc)Tj /T1_0 1 Tf 0.4346 Tc (,w)Tj 0 Tc 5.119 0 Td [(hich )-185(allocates )-185(a )-185(speci\336ed )-185(number )-185(of )-185(bytes )-185(of )-185(memory)]TJ 0.6847 Tc 24.833 0 Td (.T)Tj 0 Tc 1.548 0 Td [(he )-185(initial)]TJ -31.499 -1.2 Td (value of the memory is indeterminate.)Tj -1.633 -1.6 Td (2.)Tj /TT0 1 Tf 1.633 0 Td (calloc)Tj /T1_0 1 Tf 0.3612 Tc (,w)Tj 0 Tc 5.045 0 Td [(hich )-111(allocates )-111(space )-111(for )-111(a )-111(speci\336ed )-111(number )-111(of )-111(objects )-111(of )-111(a )-111(speci\336ed)]TJ -5.045 -1.2 Td [(size. )-250(The)-250(space is initialized to all 0 bits.)]TJ -1.633 -1.6 Td (3.)Tj /TT0 1 Tf 1.633 0 Td (realloc)Tj /T1_0 1 Tf 0.358 Tc (,w)Tj 0 Tc 5.642 0 Td [(hich )-108(incr)18(eases )-108(or )-108(decr)18(eases )-108(the )-108(size )-108(of )-108(a )-108(pr)18(eviously )-108(allocated )-108(ar)17(ea.)]TJ -5.642 -1.2 Td [(When )-144(the )-144(size )-144(incr)19(eases, )-144(it )-144(may )-144(involve )-144(moving )-144(the )-144(pr)18(eviously )-144(allocated )-144(ar)20(ea)]TJ 0 -1.2 Td (somewher)Tj 0.2845 Tc 4.604 0 Td (ee)Tj 0 Tc 1.242 0 Td [(lse, )-34(to )-34(pr)18(ovide )-34(the )-34(additional )-34(r)18(oom )-34(at )-34(the )-34(end.)-539(Also, )-35(when )-35(the )-35(size)]TJ -5.846 -1.2 Td [(incr)18(eases, )-57(the )-57(initial )-57(value )-57(of )-57(the )-57(space )-57(between )-57(the )-57(old )-57(contents )-57(and )-57(the )-57(end )-57(of)]TJ 0 -1.2 TD [(the new ar)18(ea is indeterminate.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5906 285.4829 Tm (#include )Tj 0 -1.902 TD (void *malloc\(size_t)Tj /T1_2 1 Tf 12 0 Td (size)Tj /TT0 1 Tf (\);)Tj -12 -1.902 Td (void *calloc\(size_t)Tj /T1_2 1 Tf 12 0 Td (nobj)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.541 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (size)Tj /TT0 1 Tf (\);)Tj -19.141 -1.902 Td (void *realloc\(void *)Tj /T1_2 1 Tf (ptr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 15.022 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (newsize)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -3.29 -1.902 Td [(All thr)18(ee r)18(eturn: non-null pointer if OK,)]TJ /TT0 1 Tf 17.781 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -35.763 -1.902 Td (void free\(void *)Tj /T1_2 1 Tf (ptr)Tj /TT0 1 Tf (\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1954.25 cm 0 0 m 0 991 l 3900 991 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 181.8782 Tm [(The )-239(pointer )-239(r)18(eturned )-239(by )-239(the )-239(thr)18(ee )-239(allocation )-239(functions )-239(is )-239(guaranteed )-239(to )-239(be )-239(suitably)]TJ 0 -1.2 TD [(aligned )-105(so )-105(that )-105(it )-105(can )-105(be )-105(used )-105(for )-105(any )-105(data )-105(object.)-605(For )-105(example, )-105(if )-105(the )-105(most )-105(r)18(estrictive)]TJ T* [(alignment )-261(r)18(equir)18(ement )-261(on )-261(a )-261(particular )-261(system )-261(r)16(equir)18(es )-262(that)]TJ /TT0 1 Tf 28.408 0 Td (double)Tj /T1_0 1 Tf 0.5116 Tc (sm)Tj 0 Tc 5.419 0 Td [(ust )-262(start )-262(at)]TJ -33.827 -1.2 Td [(memory )-228(locations )-228(that )-228(ar)]TJ 0.4778 Tc 11.736 0 Td (em)Tj 0 Tc 1.84 0 Td [(ultiples )-228(of )-228(8, )-228(then )-228(all )-228(pointers )-228(r)19(eturned )-228(by )-228(these )-228(thr)19(ee)]TJ -13.576 -1.2 Td (functions would be so aligned.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46841 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (206)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Envir)18(onment )]TJ 39.241 0 Td [(Chapter)-500(7)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2683.68 6350 720 216 re S Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 295.3503 626.0024 Tm (stack)Tj 0.044 -10.35 Td (heap)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2683.68 5054 720 288 re S Q BT /T1_1 1 Tf 7.999 0 0 7.999 273.0352 522.9772 Tm (uninitialized data)Tj 2.879 -1.25 Td (\(bss\))Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2683.68 4874 720 180 re S Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 277.758 494.551 Tm (initialized data)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2683.68 4622 720 252 re S Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 297.7085 472.9265 Tm (text)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2683.25 6206.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2760.25 6206.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2835.25 6206.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2912.25 6206.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2987.25 6206.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3064.25 6206.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3139.25 6206.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3216.25 6206.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3291.25 6206.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3367.25 6206.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2683.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2760.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2835.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2912.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2987.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3064.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3139.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3216.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3291.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3367.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2683.68 5342 720 1008 re S Q q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 304.368 602.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 3043.6799 6026 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3043.25 6206.25 cm 0 0 m 0 -108 l S Q Q q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 304.368 573.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3043.6799 5738 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3043.25 5558.25 cm 0 0 m 0 108 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3516 6521.3599 cm 0 0 m 0 24.65 -19.99 44.64 -44.64 44.64 c S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3516.25 6521.25 cm 0 0 m 0 -40 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3516.25 6480.25 cm 0 0 m 22 -22 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3539.25 6458.25 cm 0 0 m -23 -23 l -23 -63 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3471.3601 6350 cm 0 0 m 24.65 0 44.64 19.99 44.64 44.64 c S Q Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 355.7545 648.7675 Tm (command)Tj 4.449 0.09 Td (-)Tj 0.333 -0.09 Td [(line ar)18(guments)]TJ -4.782 -1.25 Td [(and envir)18(onment variables)]TJ ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3516 5297.3599 cm 0 0 m 0 24.65 -19.99 44.64 -44.64 44.64 c S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3516.25 5297.25 cm 0 0 m 0 -69 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3516.25 5227.25 cm 0 0 m 22 -22 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3539.25 5205.25 cm 0 0 m -23 -22 l -23 -91 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3471.3601 5068.3999 cm 0 0 m 24.65 0 44.64 19.99 44.64 44.64 c S Q Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 355.7332 523.5086 Tm (initialized to)Tj 0 -1.25 TD (zer)Tj 0.25 Tc 1.356 0 Td (ob)Tj 0 Tc 1.349 0 Td (y)Tj /TT0 1 Tf 0.806 0 Td (exec)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3516 4994.96 cm 0 0 m 0 24.65 -19.99 44.64 -44.64 44.64 c S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3516.25 4995.25 cm 0 0 m 0 -141 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3516.25 4853.25 cm 0 0 m 22 -22 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3539.25 4831.25 cm 0 0 m -23 -23 l -23 -164 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3471.3601 4622 cm 0 0 m 24.65 0 44.64 19.99 44.64 44.64 c S Q Q BT /T1_1 1 Tf -0.018 Tc 7.9957 0 0 7.9957 355.7119 491.0548 Tm (re)Tj 0 Tc 0.856 0 Td [(ad fr)18(om)]TJ -0.856 -1.25 Td [(pr)18(ogram \336le)]TJ T* (by)Tj /TT0 1 Tf 1.359 0 Td (exec)Tj /T1_1 1 Tf -18.238 22.315 Td [(high addr)18(ess)]TJ 0.34 -23.05 Td [(low addr)18(ess)]TJ /T1_0 1 Tf 3.466 -3.555 Td (Figure 7.6)Tj /T1_1 1 Tf -0.09 Tc 5.195 -0 Td (Ty)Tj 0 Tc 1.079 0 Td (pical memory arrangement)Tj 9.9946 0 0 9.9946 147.5204 412.7772 Tm (The)Tj /TT0 1 Tf 2.254 0 Td (size)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.913 -0.04 Td [(command )-330(r)18(eports )-330(the )-330(sizes )-330(\(in )-330(bytes\) )-330(of )-330(the )-330(text, )-330(data, )-330(and )-330(bss)]TJ -8.199 -1.2 Td [(segments. )-250(For)-250(example:)]TJ /TT0 1 Tf 8.9951 0 0 8.9951 147.5206 384.0927 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (size /usr/bin/cc /bin/sh)Tj /TT0 1 Tf 0.6 -1.189 Td [(text )-1800(data)-3000(bss )-2400(dec)-2400(hex )-600(filename)]TJ -1.2 -1.189 Td [(346919 )-1800(3576 )-1800(6680)-1200(357175 )-600(57337 )-600(/usr/bin/cc)]TJ 0 -1.189 TD [(102134 )-1800(1776)-1800(11272 )-600(115182 )-600(1c1ee )-600(/bin/sh)]TJ /T1_1 1 Tf 9.9946 0 0 9.9946 129.5303 334.0198 Tm [(The )-96(fourth )-96(and )-96(\336fth )-96(columns )-96(ar)]TJ 0.3461 Tc 14.379 0 Td (et)Tj 0 Tc 1.151 0 Td [(he )-96(total )-96(of )-96(the )-96(thr)18(ee )-96(sizes, )-96(displayed )-96(in )-96(decimal )-96(and)]TJ -15.53 -1.2 Td [(hexadecimal, r)18(espectively)111(.)]TJ /TT2 1 Tf 11.9935 0 0 11.9935 93.5496 286.0457 Tm [(7.7 )-1332(Shared)-556(Libraries)]TJ /T1_1 1 Tf 9.9946 0 0 9.9946 129.5301 265.6567 Tm [(Most )-134(UNIX )-134(systems )-134(today )-134(support )-134(shar)18(ed )-134(libraries.)-638(Arnold)]TJ 27.777 0.04 Td ([)Tj 0.333 -0.04 Td (1986)Tj 2 0.04 Td (])Tj 0.718 -0.04 Td [(describes )-135(an )-135(early)]TJ -30.828 -1.2 Td [(implementation )-460(under )-460(System )-460(V)]TJ 0.7097 Tc 15.645 0 Td (,a)Tj 0 Tc 1.46 0 Td [(nd )-460(Gingell )-460(et )-460(al.)]TJ 9.131 0.04 Td ([)Tj 0.333 -0.04 Td (1987)Tj 2 0.04 Td (])Tj 1.043 -0.04 Td [(describe )-460(a )-460(dif)19(fer)18(ent)]TJ -29.612 -1.2 Td [(implementation )-177(under )-177(SunOS.)-678(Shar)18(ed )-177(libraries )-177(r)17(emove )-177(the )-177(common )-177(library )-177(r)16(outines)]TJ -0 -1.2 Td [(fr)18(om )-322(the )-322(executable )-322(\336le, )-322(instead )-322(maintaining )-322(a )-322(single )-322(copy )-322(of )-322(the )-322(library )-322(r)20(outine)]TJ 0 -1.2 TD [(somewher)18(e)-539(in)-539(memory )-289(that )-289(all )-289(pr)18(ocesses )-289(r)18(efer)18(ence. )-539(This)]TJ -0.018 Tc 27.462 0 Td (re)Tj 0 Tc 0.856 0 Td [(duces )-289(the )-289(size )-289(of )-289(each)]TJ -28.318 -1.2 Td [(executable )-119(\336le )-119(but )-119(may )-119(add )-119(some )-119(r)8(untime )-119(over)18(head, )-119(either )-119(when )-119(the )-119(pr)18(ogram )-119(is )-119(\336rst)]TJ T* [(executed )-82(or )-82(the )-82(\336rst )-82(time )-82(each )-82(shar)18(ed )-82(library )-82(function )-82(is )-82(called.)-588(Another )-83(advantage )-83(of)]TJ T* [(shar)18(ed )-197(libraries )-197(is )-197(that )-197(library )-197(functions )-197(can )-197(be )-197(r)18(eplaced )-197(with )-197(new )-197(versions )-197(without)]TJ T* [(having to r)18(elink edit every pr)18(ogram that uses the library \(assuming that the number and)]TJ T* [(type of ar)18(guments haven\325t changed\).)]TJ 1.8 -1.2 Td [(Dif)18(fer)18(ent )-5(systems )-5(pr)18(ovide )-5(dif)17(fer)18(ent )-5(ways )-5(for )-5(a )-5(pr)18(ogram )-5(to )-5(say )-5(that )-5(it )-5(wants )-5(to )-5(use )-5(or)]TJ -1.8 -1.2 Td [(not )-34(use )-34(the )-34(shar)18(ed )-34(libraries.)-534(Options )-34(for )-34(the)]TJ /TT0 1 Tf 19.93 0 Td (cc)Tj /T1_1 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.617 -0.04 Td (and)Tj /TT0 1 Tf 1.977 0 Td (ld)Tj /T1_1 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.617 -0.04 Td [(commands )-34(ar)]TJ 0.2843 Tc 6.034 0 Td (et)Tj 0 Tc 1.089 0 Td [(ypical. )-284(As)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46842 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (204)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Envir)18(onment )]TJ 39.241 0 Td [(Chapter)-500(7)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2058 6170 432 180 re S Q q 0.99994 0 0 0.99994 0 0 cm q 1 0 0 1 299.4 626 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099994 0 0 0.099994 0 0 cm 1 j 1 J q 1 0 0 1 2994 6260 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2418.25 6260.25 cm 0 0 m 504 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2994 6170 432 180 re S Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2994 5990 432 180 re S Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2994 5810 432 180 re S Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2994 5630 432 180 re S Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2994 5450 432 180 re S Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2994 5270 432 180 re S Q BT /TT0 1 Tf 7.999 0 0 7.999 311.3626 534.1759 Tm (NULL)Tj -18.25 11.25 Td (environ:)Tj ET q 0.99988 0 0 0.99988 0 0 cm q 1 0 0 1 378.6 626 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099988 0 0 0.099988 0 0 cm 1 j 1 J q 1 0 0 1 3786 6260 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 6260.25 cm 0 0 m 360 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 380.5315 624.1276 Tm (HOME=/home/sar\\0)Tj ET q 0.99982 0 0 0.99982 0 0 cm q 1 0 0 1 378.6 608 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099982 0 0 0.099982 0 0 cm 1 j 1 J q 1 0 0 1 3786 6080 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 6080.25 cm 0 0 m 360 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 380.5087 606.0945 Tm (PATH=:/bin:/usr/bin\\0)Tj ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 378.6 590 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 3786 5900 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 5900.25 cm 0 0 m 360 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 380.4858 588.0635 Tm (SHELL=/bin/bash\\0)Tj ET q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 378.6 572 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 3786 5720 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 5720.25 cm 0 0 m 360 0 l S Q Q BT /TT0 1 Tf 7.9971 0 0 7.9971 380.463 570.0347 Tm (USER=sar\\0)Tj ET q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 378.6 554 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3786 5540 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 5540.25 cm 0 0 m 360 0 l S Q Q BT /TT0 1 Tf 7.9966 0 0 7.9966 380.4402 552.0081 Tm (LOGNAME=sar\\0)Tj /T1_1 1 Tf -21.996 12.55 Td [(envir)18(onment)]TJ 1.236 -1.25 Td (pointer)Tj 10.464 1.25 Td [(envir)18(onment)]TJ 2.18 -1.25 Td (list)Tj 10.42 1.025 Td [(envir)18(onment)]TJ 1.347 -1.25 Td (strings)Tj /T1_0 1 Tf -24.294 -17.38 Td (Figure 7.5)Tj /T1_1 1 Tf 5.195 0 Td [(Envir)18(onment consisting of \336ve C character strings)]TJ /T1_2 1 Tf 9.9958 0 0 9.9958 129.546 465.6044 Tm [(envir)18(onment )-14(pointer)]TJ /T1_1 1 Tf 0.2637 Tc (,t)Tj 0 Tc 9.142 0 Td [(he )-14(array )-14(of )-14(pointers )-14(the )-14(envir)18(onment )-14(list, )-14(and )-14(the )-14(strings )-14(they )-14(point)]TJ -9.142 -1.2 Td (to the)Tj /T1_2 1 Tf 2.759 0 Td [(envir)18(onment strings)]TJ /T1_1 1 Tf (.)Tj -0.959 -1.2 Td [(By convention, the envir)18(onment consists of)]TJ /T1_2 1 Tf 0 -2.04 TD (name)Tj /TT0 1 Tf (=)Tj /T1_2 1 Tf (value)Tj /T1_1 1 Tf -1.8 -2.04 Td [(strings, )-45(as )-45(shown )-45(in )-45(Figur)]TJ 0.2954 Tc 11.578 0 Td (e7)Tj 0 Tc 1.274 0 Td [(.5. )-295(Most)-296(pr)18(ede\336ned )-45(names )-45(ar)]TJ 0.2955 Tc 13.243 0 Td (ee)Tj 0 Tc 1.254 0 Td [(ntir)18(ely )-45(upper)18(case, )-45(but )-45(this)]TJ -27.349 -1.2 Td (is only a convention.)Tj 1.8 -1.2 Td (Historically)Tj 0.5189 Tc 5.076 0 Td (,m)Tj 0 Tc 1.652 0 Td [(ost )-269(UNIX )-269(systems )-269(have )-269(pr)18(ovided )-269(a )-269(thir)]TJ 0.5188 Tc 18.821 0 Td (da)Tj -0.018 Tc 1.63 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument )-269(to )-269(the)]TJ /TT0 1 Tf 6.688 0 Td (main)Tj /T1_1 1 Tf -36.6 -1.2 Td [(function that is the addr)18(ess of the envir)18(onment list:)]TJ /TT0 1 Tf 8.9962 0 0 8.9962 147.5372 346.0148 Tm (int main\(int)Tj /T1_2 1 Tf 7.8 0 Td [(ar)18(gc)]TJ /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.522 0 Td (har *)Tj /T1_2 1 Tf [(ar)18(gv)]TJ /TT0 1 Tf ([], char *)Tj /T1_2 1 Tf (envp)Tj /TT0 1 Tf ([]\);)Tj /T1_1 1 Tf 9.9958 0 0 9.9958 129.5451 325.8831 Tm [(Because )-169(ISO )-169(C )-169(speci\336es )-169(that )-169(the)]TJ /TT0 1 Tf 15.281 0 Td (main)Tj /T1_1 1 Tf 2.819 0 Td [(function )-169(be )-169(written )-169(with )-169(two )-169(ar)17(guments, )-169(and)]TJ -18.1 -1.2 Td [(because )-225(this )-225(thir)]TJ 0.4748 Tc 7.631 0 Td (da)Tj -0.018 Tc 1.586 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument )-225(pr)18(ovides )-225(no )-225(bene\336t )-225(over )-225(the )-225(global )-225(variable)]TJ /TT0 1 Tf 24.4 0 Td (environ)Tj /T1_1 1 Tf (,)Tj -34.55 -1.2 Td [(POSIX.1 )-432(speci\336es )-432(that)]TJ /TT0 1 Tf 11.196 0 Td (environ)Tj /T1_1 1 Tf 4.882 0 Td [(should )-432(be )-432(used )-432(instead )-432(of )-432(the )-432(\(possible\) )-432(thir)17(d)]TJ -16.078 -1.2 Td [(ar)18(gument. )-403(Access)-404(to )-153(speci\336c )-153(envir)18(onment )-153(variables )-153(is )-153(normally )-153(thr)18(ough )-153(the)]TJ /TT0 1 Tf 35.4 0 Td (getenv)Tj /T1_1 1 Tf -35.4 -1.2 Td (and)Tj /TT0 1 Tf 2.259 0 Td (putenv)Tj /T1_1 1 Tf 4.166 0 Td [(functions, )-316(described )-316(in )-316(Section )-316(7.9, )-316(instead )-316(of )-316(thr)21(ough )-316(the)]TJ /TT0 1 Tf 28.376 0 Td (environ)Tj /T1_1 1 Tf -34.8 -1.2 Td [(variable. )-272(But)-272(to )-22(go )-22(thr)18(ough )-22(the )-22(entir)]TJ 0.2719 Tc 16.234 0 Td (ee)Tj 0 Tc 1.23 0 Td [(nvir)18(onment, )-22(the)]TJ /TT0 1 Tf 7.394 0 Td (environ)Tj /T1_1 1 Tf 4.472 0 Td [(pointer )-22(must )-22(be )-22(used.)]TJ /TT1 1 Tf 11.995 0 0 11.995 93.5596 223.9259 Tm [(7.6 )-1332(Memor)]TJ 0.556 Tc 6.288 0 Td (yL)Tj -0.02 Tc 1.723 0 Td (ay)Tj 0 Tc 1.067 0 Td [(out )-278(of )-278(a )-278(C )-278(Pr)20(ogram)]TJ /T1_1 1 Tf 9.9958 0 0 9.9958 129.5446 199.936 Tm (Historically)Tj 0.25 Tc 5.076 0 Td (,aCp)Tj -0.018 Tc 2.81 0 Td (ro)Tj 0 Tc 0.923 0 Td (gram has been composed of the following pieces:)Tj 0.883 Tc -7.009 -1.92 Td (\245T)Tj 0 Tc 2.01 0 Td [(ext )-246(segment, )-246(consisting )-246(of )-246(the )-246(machine )-246(instr)8(uctions )-246(that )-246(the )-246(CPU )-246(executes.)]TJ -0.521 -1.2 Td (Usually)Tj 0.3751 Tc 3.332 0 Td (,t)Tj 0 Tc 0.951 0 Td [(he )-125(text )-125(segment )-125(is )-125(sharable )-125(so )-125(that )-125(only )-125(a )-125(single )-125(copy )-125(needs )-125(to )-125(be )-125(in)]TJ -4.283 -1.2 Td [(memory )-67(for )-67(fr)18(equently )-67(executed )-67(pr)16(ograms, )-67(such )-67(as )-67(text )-67(editors, )-67(the )-67(C )-67(compiler)71(,)]TJ 0 -1.2 TD [(the )-183(shells, )-183(and )-183(so )-183(on.)-684(Also, )-183(the )-183(text )-183(segment )-183(is )-183(often )-183(r)17(ead-only)111(,)-433(to)-433(p)]TJ -0.018 Tc (re)Tj 0 Tc 32.826 0 Td [(vent )-183(a)]TJ -32.826 -1.2 Td [(pr)18(ogram fr)18(om accidentally modifying its instr)8(uctions.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46843 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(7.5)]TJ 35.857 0 Td [(Envir)18(onment )-250(List)]TJ /T1_1 1 Tf 9.976 0 Td (203)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(7.4 )-1332(Command)]TJ 7.889 0.09 Td (-)Tj 0.333 -0.09 Td [(Line )-278(Ar)15(guments)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5924 644.9613 Tm [(When )-129(a )-129(pr)18(ogram )-129(is )-129(executed, )-129(the )-129(pr)18(ocess )-129(that )-129(does )-129(the)]TJ /TT1 1 Tf 25.561 0 Td (exec)Tj /T1_0 1 Tf 2.78 0 Td [(can )-130(pass )-130(command)]TJ 8.683 0.09 Td (-)Tj 0.333 -0.09 Td (line)Tj -37.357 -1.2 Td [(ar)18(guments )-229(to )-229(the )-229(new )-229(pr)19(ogram. )-479(This)-479(is )-229(part )-229(of )-229(the )-229(normal )-229(operation )-229(of )-229(the )-229(UNIX)]TJ 0 -1.2 Td [(system )-14(shells.)]TJ -0.092 Tc 6.611 0 Td [(We )-198(h)]TJ 0 Tc 2.233 0 Td [(ave )-14(alr)18(eady )-14(seen )-14(this )-14(in )-14(many )-14(of )-14(the )-14(examples )-14(fr)18(om )-14(earlier )-14(chapters.)]TJ /TT0 1 Tf -12.445 -2.4 Td (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(The )-99(pr)18(ogram )-99(in )-99(Figur)]TJ 0.3494 Tc 9.836 0 Td (e7)Tj 0 Tc 1.328 0 Td [(.4 )-99(echoes )-99(all )-99(its )-99(command)]TJ 11.674 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-99(ar)18(guments )-99(to )-99(standar)]TJ 0.3494 Tc 11.613 0 Td (do)Tj 0 Tc 1.506 0 Td (utput.)Tj -36.291 -1.2 Td (Note that the normal)Tj /TT1 1 Tf 9.5 0 Td (echo)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td [(pr)18(ogram doesn\325t echo the zer)18(oth ar)18(gument.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5490.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 539.4343 Tm (#include "apue.h")Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(i;)]TJ 0 -2.021 TD [(for \(i = 0; i < argc; i++\))-3600(/* echo all command-line args */)]TJ 2.4 -1.189 Td (printf\("argv[%d]: %s\\n", i, argv[i]\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4341.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 208.8704 418.0427 Tm (Figure 7.4)Tj /T1_0 1 Tf 5.195 0 Td (Echo all command)Tj 8.214 0.09 Td (-)Tj 0.333 -0.09 Td [(line ar)18(guments to standar)]TJ 0.25 Tc 11.315 0 Td (do)Tj 0 Tc 1.407 0 Td (utput)Tj 9.9982 0 0 9.9982 129.5763 394.0471 Tm [(If we compile this pr)18(ogram and name the executable)]TJ /TT1 1 Tf 23.443 0 Td (echoarg)Tj /T1_0 1 Tf [(,)-250(we)-250(have)]TJ /TT1 1 Tf 8.9984 0 0 8.9984 147.573 377.3501 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (./echoarg arg1 TEST foo)Tj /TT1 1 Tf -1.2 -1.189 Td (argv[0]: ./echoarg)Tj 0 -1.189 TD (argv[1]: arg1)Tj T* (argv[2]: TEST)Tj T* (argv[3]: foo)Tj /T1_0 1 Tf -0.092 Tc 9.9982 0 0 9.9982 129.5763 316.561 Tm [(We )-209(a)]TJ -0.018 Tc 2.162 0 Td [(re )-61(g)]TJ 0 Tc 1.687 0 Td [(uaranteed )-25(by )-25(both )-25(ISO )-25(C )-25(and )-25(POSIX.1 )-25(that)]TJ /TT1 1 Tf 19.241 0 Td (argv[argc])Tj /T1_0 1 Tf 6.275 0 Td [(is )-25(a )-25(null )-25(pointer)]TJ 0.5246 Tc 6.952 0 Td (.T)Tj 0 Tc 1.388 0 Td (his)Tj -37.703 -1.2 Td [(lets us alternatively code the ar)18(gument-pr)18(ocessing loop as)]TJ /TT1 1 Tf 8.9984 0 0 8.9984 147.5733 287.8662 Tm (for \(i = 0; argv[i] != NULL; i++\))Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2819.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT0 1 Tf 11.9971 0 0 11.9971 93.5775 249.4581 Tm [(7.5 )-1332(En)40(vir)20(onment )-278(List)]TJ /T1_0 1 Tf 9.9976 0 0 9.9976 129.5689 225.4639 Tm [(Each )-490(pr)18(ogram )-490(is )-490(also )-490(passed )-490(an)]TJ /T1_2 1 Tf 17.032 0 Td [(envir)18(onment )-490(list)]TJ /T1_0 1 Tf 0.9901 Tc (.L)Tj 0 Tc 9.019 0 Td [(ike )-490(the )-490(ar)18(gument )-490(list, )-490(the)]TJ -26.052 -1.2 Td [(envir)18(onment )-221(list )-221(is )-221(an )-221(array )-221(of )-221(character )-221(pointers, )-221(with )-221(each )-221(pointer )-221(containing )-221(the)]TJ 0 -1.2 TD [(addr)18(ess )-45(of )-45(a )-45(null-terminated )-45(C )-45(string.)-545(The )-45(addr)19(ess )-45(of )-45(the )-45(array )-45(of )-45(pointers )-45(is )-45(contained)]TJ -0 -1.2 Td (in the global variable)Tj /TT1 1 Tf 9.571 0 Td (environ)Tj /T1_0 1 Tf (:)Tj /TT1 1 Tf 8.9978 0 0 8.9978 147.5643 172.7765 Tm (extern char **environ;)Tj /T1_0 1 Tf 9.9976 0 0 9.9976 129.5686 154.7808 Tm [(For )-98(example, )-98(if )-98(the )-98(envir)19(onment )-98(consisted )-98(of )-98(\336ve )-98(strings, )-98(it )-98(could )-98(look )-98(like )-98(Figur)]TJ 0.3477 Tc 36.673 0 Td (e7)Tj 0 Tc 1.327 0 Td (.5.)Tj -38 -1.2 Td [(Her)18(e)-272(we)-272(explicitly )-22(show )-22(the )-22(null )-22(bytes )-22(at )-22(the )-22(end )-22(of )-22(each )-22(string.)]TJ -0.092 Tc 28.824 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-22(call)]TJ /TT1 1 Tf 2.93 0 Td (environ)Tj /T1_0 1 Tf 4.472 0 Td (the)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46844 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (198)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Envir)18(onment )]TJ 39.241 0 Td [(Chapter)-500(7)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(7.3 )-1332(Pr)20(ocess )-278(T)60(ermination)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm (Ther)Tj 0.4492 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.428 0 Td [(re )-235(e)]TJ 0 Tc 1.784 0 Td [(ight )-199(ways )-199(for )-199(a )-199(pr)18(ocess )-199(to )-199(terminate.)-700(Normal )-199(termination )-199(occurs )-199(in )-199(\336ve)]TJ -5.263 -1.2 Td (ways:)Tj 1.8 -2.4 Td [(1. )-633(Return)-250(fr)18(om)]TJ /TT1 1 Tf 7.325 0 Td (main)Tj /T1_1 1 Tf -7.325 -1.6 Td [(2. )-633(Calling)]TJ /TT1 1 Tf 5.103 0 Td (exit)Tj /T1_1 1 Tf -5.103 -1.6 Td [(3. )-633(Calling)]TJ /TT1 1 Tf 5.103 0 Td (_exit)Tj /T1_1 1 Tf 3.25 0 Td (or)Tj /TT1 1 Tf 1.191 0 Td (_Exit)Tj /T1_1 1 Tf -9.544 -1.6 Td [(4. )-633(Return)-250(of the last thr)18(ead fr)18(om its start r)18(outine \(Section 1)55(1.5\))]TJ 0 -1.6 TD [(5. )-633(Calling)]TJ /TT1 1 Tf 5.103 0 Td (pthread_exit)Tj /T1_1 1 Tf 7.45 0 Td [(\(Section 1)55(1.5\) fr)18(om the last thr)18(ead)]TJ -14.353 -2.4 Td [(Abnormal termination occurs in thr)18(ee ways:)]TJ 1.8 -2.4 Td [(6. )-633(Calling)]TJ /TT1 1 Tf 5.103 0 Td (abort)Tj /T1_1 1 Tf 3.25 0 Td (\(Section 10.17\))Tj -8.353 -1.6 Td [(7. )-633(Receipt)-250(of a signal \(Section 10.2\))]TJ T* [(8. )-633(Response)-250(of the last thr)18(ead to a cancellation r)18(equest \(Sections 1)55(1.5 and 12.7\))]TJ 7.9995 0 0 7.9995 208.7881 444.9733 Tm [(For )-16(now)]TJ 0.2661 Tc 3.633 0 Td (,w)Tj 0 Tc 1.35 0 Td [(e\325ll )-16(ignor)]TJ 0.2663 Tc 3.957 0 Td (et)Tj 0 Tc 1.071 0 Td [(he )-16(thr)18(ee )-16(termination )-16(methods )-16(speci\336c )-16(to )-16(thr)18(eads )-16(until )-16(we )-16(discuss)]TJ -10.012 -1.25 Td [(thr)18(eads in Chapters 1)]TJ 0.25 Tc 9.383 0 Td (1a)Tj 0 Tc 1.25 0 Td (nd 12.)Tj 9.9994 0 0 9.9994 129.5929 411.9753 Tm [(The )-51(start-up )-51(r)18(outine )-51(that )-51(we )-51(mentioned )-51(in )-51(the )-51(pr)19(evious )-51(section )-51(is )-51(also )-51(written )-51(so )-51(that )-51(if)]TJ 0 -1.2 TD (the)Tj /TT1 1 Tf 1.834 0 Td (main)Tj /T1_1 1 Tf 2.847 0 Td [(function )-197(r)18(eturns, )-197(the)]TJ /TT1 1 Tf 9.87 0 Td (exit)Tj /T1_1 1 Tf 2.847 0 Td [(function )-197(is )-197(called.)-697(If )-197(the )-197(start-up )-197(r)18(outine )-197(wer)20(e)]TJ -17.397 -1.2 Td (coded in C \(it is often coded in assembly language\) the call to)Tj /TT1 1 Tf 27.313 0 Td (main)Tj /T1_1 1 Tf 2.65 0 Td (could look like)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5913 371.2777 Tm (exit\(main\(argc, argv\)\);)Tj /TT0 1 Tf 9.9994 0 0 9.9994 93.5946 341.2795 Tm (Exit Functions)Tj /T1_1 1 Tf 3.6 -2.4 Td [(Thr)18(ee )-61(functions )-61(terminate )-61(a )-61(pr)18(ogram )-61(normally:)]TJ /TT1 1 Tf 21.439 0 Td (_exit)Tj /T1_1 1 Tf 3.311 0 Td (and)Tj /TT1 1 Tf 2.004 0 Td (_Exit)Tj /T1_1 1 Tf 0.3107 Tc (,w)Tj 0 Tc 4.395 0 Td [(hich )-61(r)18(eturn )-61(to )-61(the)]TJ -31.148 -1.2 Td [(kernel )-195(immediately)]TJ 0.4454 Tc 8.706 0 Td (,a)Tj 0 Tc 1.195 0 Td (nd)Tj /TT1 1 Tf 1.638 0 Td (exit)Tj /T1_1 1 Tf 0.4454 Tc (,w)Tj 0 Tc 3.929 0 Td [(hich )-195(performs )-195(certain )-195(cleanup )-195(pr)18(ocessing )-195(and )-195(then)]TJ -0.018 Tc -15.47 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (turns to the kernel.)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5913 274.1835 Tm (#include )Tj 0 -2.021 TD (void exit\(int)Tj /T1_2 1 Tf 8.4 0 Td (status)Tj /TT1 1 Tf (\);)Tj -8.4 -2.021 Td (void _Exit\(int)Tj /T1_2 1 Tf 9 0 Td (status)Tj /TT1 1 Tf (\);)Tj -9 -2.021 Td (#include )Tj T* (void _exit\(int)Tj /T1_2 1 Tf 9 0 Td (status)Tj /TT1 1 Tf (\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1969.25 cm 0 0 m 0 863 l 3900 863 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5844 181.0183 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ll )-57(discuss )-57(the )-57(ef)17(fect )-57(of )-57(these )-57(thr)18(ee )-57(functions )-57(on )-57(other )-57(pr)18(ocesses, )-57(such )-57(as )-57(the )-57(childr)16(en)]TJ -1.387 -1.2 Td [(and the par)18(ent of the terminating pr)18(ocess, in Section 8.5.)]TJ 7.999 0 0 7.999 183.578 149.0221 Tm [(The )-79(r)18(eason )-79(for )-79(the )-79(dif)17(fer)18(ent )-79(headers )-79(is )-79(that)]TJ /TT1 1 Tf 19.59 0 Td (exit)Tj /T1_1 1 Tf 2.729 0 Td (and)Tj /TT1 1 Tf 2.023 0 Td (_Exit)Tj /T1_1 1 Tf 3.329 0 Td (ar)Tj 0.3295 Tc 0.877 0 Td (es)Tj 0 Tc 1.233 0 Td [(peci\336ed )-79(by )-79(ISO )-79(C, )-79(wher)16(eas)]TJ /TT1 1 Tf -29.781 -1.25 Td (_exit)Tj /T1_1 1 Tf 3.25 0 Td (is speci\336ed by POSIX.1.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46845 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (7)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(Pr)15(ocess )-280(En)30(vir)15(onment)]TJ /TT0 1 Tf 12 0 0 12 93.6002 446.3998 Tm [(7.1 )-1332(Intr)20(oduction)]TJ /T1_2 1 Tf 10 0 0 10 129.6002 422.3998 Tm (Befor)Tj 0.2792 Tc 2.346 0 Td (el)Tj 0 Tc 1.049 0 Td [(ooking )-29(at )-29(the )-29(pr)18(ocess )-29(contr)18(ol )-29(primitives )-29(in )-29(the )-29(next )-29(chapter)72(,)-279(we)-279(need )-29(to )-29(examine)]TJ -3.395 -1.2 Td [(the )-40(envir)18(onment )-40(of )-40(a )-40(single )-40(pr)17(ocess. )-290(In)-290(this )-40(chapter)]TJ 0.2902 Tc 22.993 0 Td (,w)Tj 0 Tc 1.374 0 Td [(e\325ll )-40(see )-40(how )-40(the)]TJ /TT1 1 Tf 7.231 0 Td (main)Tj /T1_2 1 Tf 2.69 0 Td [(function )-40(is)]TJ -34.288 -1.2 Td [(called )-82(when )-82(the )-82(pr)18(ogram )-82(is )-82(executed, )-82(how )-82(command)]TJ 23.978 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-82(ar)18(guments )-82(ar)]TJ 0.3324 Tc 7.915 0 Td (ep)Tj 0 Tc 1.412 0 Td [(assed )-82(to )-82(the)]TJ -33.638 -1.2 Td [(new )-150(pr)18(ogram, )-150(what )-150(the )-150(typical )-150(memory )-150(layout )-150(looks )-150(like, )-150(how )-150(to )-150(allocate )-150(additional)]TJ 0 -1.2 TD (memory)Tj 0.4592 Tc 3.631 0 Td (,h)Tj 0 Tc 1.291 0 Td [(ow )-209(the )-209(pr)18(ocess )-209(can )-209(use )-209(envir)17(onment )-209(variables, )-209(and )-209(various )-209(ways )-209(for )-209(the)]TJ -4.922 -1.2 Td [(pr)18(ocess )-142(to )-142(terminate.)-642(Additionally)]TJ 0.3918 Tc 15.667 0 Td (,w)Tj 0 Tc 1.476 0 Td [(e\325ll )-142(look )-142(at )-142(the)]TJ /TT1 1 Tf 7.058 0 Td (longjmp)Tj /T1_2 1 Tf 4.592 0 Td (and)Tj /TT1 1 Tf 2.085 0 Td (setjmp)Tj /T1_2 1 Tf 3.992 0 Td (functions)Tj -34.869 -1.2 Td [(and )-120(their )-120(interaction )-120(with )-120(the )-120(stack.)]TJ -0.092 Tc 16.919 0 Td [(We )-304(\336)]TJ 0 Tc 2.362 0 Td [(nish )-120(the )-120(chapter )-120(by )-120(examining )-120(the )-120(r)17(esour)18(ce)]TJ -19.281 -1.2 Td [(limits of a pr)18(ocess.)]TJ /TT0 1 Tf 12 0 0 12 93.6005 302.3998 Tm (7.2)Tj /TT2 1 Tf 3 0 Td (main)Tj /TT0 1 Tf 2.956 0 Td (Function)Tj /T1_2 1 Tf 0.2961 Tc 10 0 0 10 129.6005 278.3998 Tm (ACp)Tj -0.018 Tc 2.68 0 Td (ro)Tj 0 Tc 0.923 0 Td [(gram )-46(starts )-46(execution )-46(with )-46(a )-46(function )-46(called)]TJ /TT1 1 Tf 19.924 0 Td (main)Tj /T1_2 1 Tf 0.5461 Tc (.T)Tj 0 Tc 3.809 0 Td [(he )-46(pr)18(ototype )-46(for )-46(the)]TJ /TT1 1 Tf 9.264 0 Td (main)Tj /T1_2 1 Tf -36.6 -1.2 Td (function is)Tj /TT1 1 Tf 9 0 0 9 147.6003 249.6998 Tm (int main\(int)Tj /T1_3 1 Tf 7.8 0 Td [(ar)18(gc)]TJ /TT1 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.522 0 Td (har *)Tj /T1_3 1 Tf [(ar)18(gv)]TJ /TT1 1 Tf ([]\);)Tj /T1_2 1 Tf 10 0 0 10 129.6005 231.6998 Tm [(wher)18(e)]TJ /T1_3 1 Tf 3.07 0 Td [(ar)18(gc)]TJ /T1_2 1 Tf 2.041 0 Td [(is )-69(the )-69(number )-69(of )-69(command)]TJ 12.203 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-69(ar)18(guments, )-69(and)]TJ /T1_3 1 Tf 9.274 0 Td [(ar)18(gv)]TJ /T1_2 1 Tf 2.134 0 Td [(is )-69(an )-69(array )-69(of )-69(pointers)]TJ -29.056 -1.2 Td [(to the ar)18(guments. )-250(W)]TJ 0.25 Tc 9.147 0 Td (ed)Tj 0 Tc 1.34 0 Td [(escribe these ar)18(guments in Section 7.4.)]TJ -8.687 -1.2 Td [(When )-28(a )-28(C )-28(pr)18(ogram )-28(is )-28(executed )-28(by )-28(the )-28(kernel)]TJ 0.0833 Tc 19.951 0 Td (\321b)Tj 0.2784 Tc 1.636 0 Td (yo)Tj 0 Tc 1.38 0 Td [(ne )-28(of )-28(the)]TJ /TT1 1 Tf 4.162 0 Td (exec)Tj /T1_2 1 Tf 2.678 0 Td [(functions, )-28(which)]TJ -31.608 -1.2 Td [(we )-325(describe )-325(in )-325(Section )-325(8.10)]TJ 0.0833 Tc 13.189 0 Td [(\321a )-159(s)]TJ 0 Tc 2.582 0 Td [(pecial )-325(start-up )-325(r)18(outine )-325(is )-325(called )-325(befor)]TJ 0.5752 Tc 17.812 0 Td (et)Tj 0 Tc 1.38 0 Td (he)Tj /TT1 1 Tf 1.636 0 Td (main)Tj /T1_2 1 Tf -36.6 -1.2 Td [(function )-217(is )-217(called.)-717(The )-217(executable )-217(pr)18(ogram )-217(\336le )-217(speci\336es )-217(this )-217(r)21(outine )-217(as )-217(the )-217(starting)]TJ T* [(addr)18(ess )-112(for )-112(the )-112(pr)17(ogram; )-113(this )-113(is )-113(set )-113(up )-113(by )-113(the )-113(link )-113(editor )-113(when )-113(it )-113(is )-113(invoked )-113(by )-113(the )-113(C)]TJ T* (compiler)Tj 0.871 Tc 3.856 0 Td (.T)Tj 0 Tc 1.734 0 Td [(his )-371(start-up )-371(r)18(outine )-371(takes )-371(values )-371(fr)18(om )-371(the )-371(kernel)]TJ 0.0833 Tc 23.894 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(he )-371(command)]TJ 6.131 0.09 Td (-)Tj 0.333 -0.09 Td (line)Tj -37.357 -1.2 Td [(ar)18(guments )-18(and )-18(the )-18(envir)17(onment )167(\321 )167(and)-269(sets )-19(things )-19(up )-19(so )-19(that )-19(the)]TJ /TT1 1 Tf 28.756 0 Td (main)Tj /T1_2 1 Tf 2.669 0 Td [(function )-19(is )-19(called)]TJ -31.425 -1.2 Td [(as shown earlier)74(.)]TJ /T1_4 1 Tf 9 0 0 9 506.099 113.9998 Tm (197)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46846 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (196)Tj /T1_1 1 Tf 3.5 0 Td [(System )-250(Data )-250(Files )-250(and )-250(Information)]TJ 39.241 0 Td [(Chapter )-250(6)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(zone. )-343(If)-343(the )-93(variable )-93(is )-93(de\336ned )-93(to )-93(be )-93(a )-93(null )-93(string, )-93(such )-93(as)]TJ /TT0 1 Tf 26.75 0 Td (TZ=)Tj /T1_1 1 Tf 0.343 Tc (,t)Tj 0 Tc 2.719 0 Td [(hen )-93(UTC )-93(is )-93(normally)]TJ -29.469 -1.2 Td [(used. )-292(The)-292(value )-42(of )-42(this )-42(envir)18(onment )-42(variable )-42(is )-42(often )-42(something )-42(like)]TJ /TT0 1 Tf 30.976 0 Td (TZ=EST5EDT)Tj /T1_1 1 Tf 0.292 Tc (,b)Tj 0 Tc 7.095 0 Td (ut)Tj -38.071 -1.2 Td [(POSIX.1 )-25(allows )-25(a )-25(much )-25(mor)]TJ 0.2752 Tc 12.473 0 Td (ed)Tj 0 Tc 1.365 0 Td [(etailed )-25(speci\336cation.)-525(Refer )-25(to )-25(the )-25(Envir)18(onment )-25(V)91(ariables)]TJ -13.839 -1.2 Td [(chapter )-20(of )-20(the )-20(Single )-20(UNIX )-20(Speci\336cation)]TJ 18.185 0.04 Td ([)Tj 0.333 -0.04 Td [(Open )-20(Gr)18(oup )-20(2010)]TJ 7.878 0.04 Td (])Tj 0.603 -0.04 Td [(for )-20(all )-20(the )-20(details )-20(on )-20(the)]TJ /TT0 1 Tf 10.801 0 Td (TZ)Tj /T1_1 1 Tf -37.8 -1.2 Td (variable.)Tj 7.9995 0 0 7.9995 183.5889 600.9639 Tm (Mor)Tj 0.2851 Tc 1.869 0 Td (ei)Tj 0 Tc 1.055 0 Td [(nformation )-35(on )-35(the)]TJ /TT0 1 Tf 8.354 0 Td (TZ)Tj /T1_1 1 Tf 1.485 0 Td [(envir)18(onment )-35(variable )-35(can )-35(be )-35(found )-35(in )-35(the)]TJ /TT0 1 Tf 18.755 0 Td (tzset)Tj /T1_1 1 Tf [(\(3\) )-35(manual )-35(page.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5944 564.9661 Tm [(6.11 )-776(Summar)-10(y)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 540.9675 Tm [(The )-15(passwor)]TJ 0.2646 Tc 5.645 0 Td (d\336)Tj 0 Tc 1.481 0 Td [(le )-15(and )-15(the )-15(gr)18(oup )-15(\336le )-15(ar)]TJ 0.2646 Tc 10.108 0 Td (eu)Tj 0 Tc 1.347 0 Td [(sed )-15(on )-15(all )-15(UNIX )-15(systems.)]TJ -0.092 Tc 11.676 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ve )-14(looked )-14(at )-14(the)]TJ -31.643 -1.2 Td [(various )-205(functions )-205(that )-205(r)18(ead )-205(these )-205(\336les.)]TJ -0.092 Tc 18.476 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ve )-205(also )-205(talked )-205(about )-205(shadow )-205(passwor)18(ds,)]TJ -19.863 -1.2 Td [(which )-325(can )-325(enhance )-325(system )-325(security)]TJ 0.8248 Tc 16.706 0 Td (.S)Tj 0 Tc 1.6 0 Td [(upplementary )-325(gr)18(oup )-325(IDs )-325(pr)18(ovide )-325(a )-325(way )-325(to)]TJ -18.305 -1.2 Td [(participate )-326(in )-326(multiple )-326(gr)18(oups )-326(at )-326(the )-326(same )-326(time.)]TJ -0.092 Tc 24.082 0 Td [(We )-510(a)]TJ 0 Tc 2.463 0 Td [(lso )-326(looked )-326(at )-326(how )-326(similar)]TJ -26.544 -1.2 Td [(functions )-133(ar)]TJ 0.3835 Tc 5.391 0 Td (ep)Tj -0.018 Tc 1.464 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vided )-133(by )-133(most )-133(systems )-133(to )-133(access )-133(other )-133(system-r)18(elated )-133(data )-133(\336les.)]TJ -0.092 Tc 29.835 0 Td (We)Tj 0 Tc -37.613 -1.2 Td [(discussed )-40(the )-40(POSIX.1 )-40(functions )-40(that )-40(pr)18(ograms )-40(can )-40(use )-40(to )-40(identify )-40(the )-40(system )-40(on )-40(which)]TJ 0 -1.2 TD [(they )-145(ar)]TJ 0.3953 Tc 3.215 0 Td (er)Tj 0 Tc 1.261 0 Td [(unning. )-395(W)]TJ 0.3953 Tc 4.999 0 Td (e\336)Tj 0 Tc 1.479 0 Td [(nished )-145(the )-145(chapter )-145(by )-145(looking )-145(at )-145(the )-145(time )-145(and )-145(date )-145(functions)]TJ -10.955 -1.2 Td [(pr)18(ovided by ISO C and the Single UNIX Speci\336cation.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 129.5923 414.9751 Tm [(Ex)10(er)20(cises)]TJ /T1_0 1 Tf 8.9995 0 0 8.9995 129.5923 393.9764 Tm (6.1)Tj /T1_1 1 Tf 2.602 0 Td [(If )-20(the )-20(system )-20(uses )-20(a )-20(shadow )-20(\336le )-20(and )-20(we )-20(need )-20(to )-20(obtain )-20(the )-20(encrypted )-20(passwor)15(d, )-20(how )-20(do )-20(we)]TJ 0 -1.222 TD (do so?)Tj /T1_0 1 Tf -2.602 -1.667 Td (6.2)Tj /T1_1 1 Tf 2.602 0 Td [(If )-218(you )-218(have )-218(super)8(user )-218(access )-218(and )-218(your )-218(system )-218(uses )-218(shadow )-218(passwor)18(ds, )-218(implement )-218(the)]TJ T* [(pr)18(evious exer)18(cise.)]TJ /T1_0 1 Tf -2.602 -1.667 Td (6.3)Tj /T1_1 1 Tf -0.074 Tc 2.602 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-279(a )-279(pr)18(ogram )-279(that )-279(calls)]TJ /TT0 1 Tf 11.781 0 Td (uname)Tj /T1_1 1 Tf 3.529 0 Td [(and )-279(prints )-279(all )-279(the )-279(\336elds )-279(in )-279(the)]TJ /TT0 1 Tf 15.152 0 Td (utsname)Tj /T1_1 1 Tf 4.729 0 Td [(str)8(uctur)18(e.)]TJ -36.512 -1.222 Td (Compar)Tj 0.25 Tc 3.616 0 Td (et)Tj 0 Tc 1.055 0 Td [(he output to the output fr)18(om the)]TJ /TT0 1 Tf 14.606 0 Td (uname)Tj /T1_1 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (command.)Tj /T1_0 1 Tf -26.295 -1.667 Td (6.4)Tj /T1_1 1 Tf 2.602 0 Td [(Calculate )-96(the )-96(latest )-96(time )-96(that )-96(can )-96(be )-96(r)16(epr)18(esented )-96(by )-96(the)]TJ /TT0 1 Tf 25.319 0 Td (time_t)Tj /T1_1 1 Tf 3.946 0 Td [(data )-96(type.)-596(After )-96(it )-96(wraps)]TJ -29.265 -1.222 Td [(ar)18(ound, what happens?)]TJ /T1_0 1 Tf -2.602 -1.667 Td (6.5)Tj /T1_1 1 Tf -0.074 Tc 2.602 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-9(a )-9(pr)18(ogram )-9(to )-9(obtain )-9(the )-9(curr)19(ent )-9(time )-9(and )-9(print )-9(it )-9(using)]TJ /TT0 1 Tf 25.764 0 Td (strftime)Tj /T1_1 1 Tf [(,)-259(so)-259(that )-9(it )-9(looks )-9(like)]TJ -27.085 -1.222 Td [(the )-103(default )-103(output )-103(fr)18(om)]TJ /TT0 1 Tf 11.086 0 Td (date)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.603 Tc 0.333 -0.04 Td (.S)Tj 0 Tc 1.378 0 Td [(et )-103(the)]TJ /TT0 1 Tf 2.898 0 Td (TZ)Tj /T1_1 1 Tf 1.553 0 Td [(envir)18(onment )-103(variable )-103(to )-103(dif)18(fer)18(ent )-103(values )-103(and)]TJ -20.481 -1.222 Td (see what happens.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46847 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(6.10)]TJ -0.055 Tc 32.431 0 Td (Ti)Tj 0 Tc 0.849 0 Td [(me )-250(and )-250(Date )-250(Routines)]TJ /T1_1 1 Tf 12.553 0 Td (189)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Ther)18(e)-391(is)-391(a)1(lso )-141(a)]TJ /TT0 1 Tf 7.068 0 Td (hostname)Tj /T1_0 1 Tf 4.8 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.724 -0.04 Td [(command )-141(that )-141(can )-141(fetch )-141(or )-141(set )-141(the )-141(host )-141(name.)-638(\(The)]TJ -15.225 -1.2 Td [(host )-125(name )-125(is )-125(set )-125(by )-125(the )-125(super)8(user )-125(using )-125(a )-125(similar )-125(function,)]TJ /TT0 1 Tf 27.266 0 Td (sethostname)Tj /T1_0 1 Tf [(.\) )-375(The)-374(host)]TJ -27.266 -1.2 Td [(name )-285(is )-285(normally )-285(set )-285(at )-285(bootstrap )-285(time )-285(fr)19(om )-285(one )-285(of )-285(the )-285(start-up )-285(\336les )-285(invoked )-285(by)]TJ /TT0 1 Tf 0 -1.2 TD (/etc/rc)Tj /T1_0 1 Tf 4.45 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (init)Tj /T1_0 1 Tf (.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5948 593.3644 Tm [(6.10 )-776(Time)-556(and )-278(Date )-278(Routines)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5926 569.3658 Tm [(The )-47(basic )-47(time )-47(service )-47(pr)18(ovided )-47(by )-47(the )-47(UNIX )-47(kernel )-47(counts )-47(the )-47(number )-47(of )-47(seconds )-47(that)]TJ T* [(have )-216(passed )-216(since )-216(the )-216(Epoch: )-216(00:00:00 )-216(January )-216(1, )-216(1970, )-216(Coor)14(dinated )-216(Universal )-216(T)54(ime)]TJ 0 -1.16 Td (\()Tj 0.333 -0.04 Td (UTC)Tj 2.1 0.04 Td (\))Tj 0.6407 Tc 0.333 -0.04 Td (.I)Tj 0.3907 Tc 1.228 0 Td (nS)Tj 0 Tc 1.498 0 Td [(ection )-141(1.10, )-141(we )-141(said )-141(that )-141(these )-141(seconds )-141(ar)]TJ 0.3906 Tc 18.953 0 Td (er)Tj 0 Tc 1.247 0 Td [(epr)18(esented )-141(in )-141(a)]TJ /TT0 1 Tf 7.382 0 Td (time_t)Tj /T1_0 1 Tf 3.991 0 Td (data)Tj -37.063 -1.2 Td [(type, )-31(and )-31(we )-31(call )-31(them)]TJ /T1_2 1 Tf 10.421 0 Td [(calendar )-31(times)]TJ /T1_0 1 Tf 0.5314 Tc (.T)Tj 0 Tc 7.25 0 Td [(hese )-31(calendar )-31(times )-31(r)17(epr)18(esent )-31(both )-31(the )-31(time )-31(and)]TJ -17.671 -1.2 Td [(the )-159(date.)-658(The )-159(UNIX )-159(System )-159(has )-159(always )-159(dif)20(fer)18(ed )-159(fr)18(om )-159(other )-159(operating )-159(systems )-159(in )-159(\(a\))]TJ -0 -1.2 Td [(keeping )-77(time )-77(in )-77(UTC )-77(instead )-77(of )-77(the )-77(local )-77(time, )-77(\(b\) )-77(automatically )-77(handling )-77(conversions,)]TJ T* [(such as daylight saving time, and \(c\) keeping the time and date as a s\ ingle quantity)111(.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 1.924 0 Td (time)Tj /T1_0 1 Tf 2.65 0 Td [(function r)18(eturns the curr)18(ent time and date.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5913 466.272 Tm (#include )Tj 0 -2.021 TD (time_t time\(time_t *)Tj /T1_2 1 Tf (calptr)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 21.555 -2.021 Td (Returns: value of time if OK,)Tj /TT2 1 Tf 12.909 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4254.25 cm 0 0 m 0 499 l 3900 499 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 409.4709 Tm [(The )-56(time )-56(value )-56(is )-56(always )-56(r)18(eturned )-56(as )-56(the )-56(value )-56(of )-56(the )-56(function.)-555(If )-56(the )-56(ar)18(gument )-56(is )-56(non-)]TJ 0 -1.2 TD [(null, the time value is also stor)18(ed at the location pointed to by)]TJ /T1_2 1 Tf 27.466 0 Td (calptr)Tj /T1_0 1 Tf (.)Tj -25.666 -1.2 Td [(The )-97(r)18(eal-time )-97(extensions )-97(to )-97(POSIX.1 )-97(added )-97(support )-97(for )-97(multiple )-97(system )-97(clocks.)-594(In)]TJ -0.111 Tc -1.8 -1.2 Td (Ve)Tj 0 Tc 1.09 0 Td [(rsion )-131(4 )-131(of )-131(the )-131(Single )-131(UNIX )-131(Speci\336cation, )-131(the )-131(interfaces )-131(used )-131(to )-131(contr)18(ol )-131(these )-131(clocks)]TJ -1.09 -1.2 Td (wer)Tj 0.286 Tc 1.69 0 Td (em)Tj 0 Tc 1.648 0 Td [(oved )-36(fr)18(om )-36(an )-36(option )-36(gr)18(oup )-36(to )-36(the )-36(base.)]TJ 0.2861 Tc 18 0 Td (Ac)Tj 0 Tc 1.508 0 Td [(lock )-36(is )-36(identi\336ed )-36(by )-36(the)]TJ /TT0 1 Tf 10.754 0 Td (clockid_t)Tj /T1_0 1 Tf -33.6 -1.2 Td [(type. )-250(Standar)]TJ 0.25 Tc 6.133 0 Td (dv)Tj 0 Tc 1.426 0 Td (alues ar)Tj 0.25 Tc 3.424 0 Td (es)Tj 0 Tc 1.153 0 Td (ummarized in Figur)Tj 0.25 Tc 8.901 0 Td (e6)Tj 0 Tc 1.229 0 Td (.8.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1306.25 3331.25 cm 0 0 m 3880 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 175.7404 325.0615 Tm (Identi\336er )Tj 15.286 0 Td (Option)Tj 15.541 0 Td (Description)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1306.25 3211.25 cm 0 0 m 3880 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1306.25 3191.25 cm 0 0 m 3880 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 134.5597 311.0453 Tm (CLOCK_REALTIME)Tj /T1_0 1 Tf -0.018 Tc 29.6 0 Td (re)Tj 0 Tc 0.856 0 Td (al system time)Tj /TT0 1 Tf -30.456 -1.25 Td (CLOCK_MONOTONIC )Tj 15.4 0 Td (_POSIX_MONOTONIC_CLOCK)Tj /T1_0 1 Tf -0.018 Tc 14.2 0 Td (re)Tj 0 Tc 0.856 0 Td (al system time with no negative jumps)Tj /TT0 1 Tf -30.456 -1.25 Td [(CLOCK_PROCESS_CPUTIME_ID )-400(_POSIX_CPUTIME)]TJ /T1_0 1 Tf 29.6 0 Td [(CPU time for calling pr)18(ocess)]TJ /TT0 1 Tf -29.6 -1.25 Td [(CLOCK_THREAD_CPUTIME_ID )-1000(_POSIX_THREAD_CPUTIME)]TJ /T1_0 1 Tf 29.6 0 Td [(CPU time for calling thr)18(ead)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1306.25 2771.25 cm 0 0 m 3880 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3674.25 2771.25 cm 0 0 m 0 560 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2538.25 2771.25 cm 0 0 m 0 560 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5186.25 2771.25 cm 0 0 m 0 560 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1306.25 2771.25 cm 0 0 m 0 560 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 265.7763 259.0423 Tm (Figure 6.8)Tj /T1_0 1 Tf 5.195 0 Td (Clock type identi\336ers)Tj 9.997 0 0 9.997 147.5559 235.0495 Tm (The)Tj /TT0 1 Tf 2.06 0 Td (clock_gettime)Tj /T1_0 1 Tf 8.186 0 Td [(function )-136(can )-136(be )-136(used )-136(to )-136(get )-136(the )-136(time )-136(of )-136(the )-136(speci\336ed )-136(clock.)]TJ -12.045 -1.2 Td [(The )-351(time )-351(is )-351(r)17(eturned )-352(in )-352(a)]TJ /TT0 1 Tf 13.202 0 Td (timespec)Tj /T1_0 1 Tf 5.402 0 Td [(str)8(uctur)18(e, )-352(intr)18(oduced )-352(in )-352(Section )-352(4.2, )-352(which)]TJ -18.604 -1.2 Td [(expr)18(esses time values in terms of seconds and nanoseconds.)]TJ /TT0 1 Tf 8.9973 0 0 8.9973 147.5558 188.3635 Tm (#include )Tj 0 -2.021 TD (int clock_gettime\(clockid_t)Tj /T1_2 1 Tf 16.8 0 Td (clock_id)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 5.058 0 Td (truct timespec *)Tj /T1_2 1 Tf (tsp)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 4.993 -2.021 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1475.25 cm 0 0 m 0 499 l 3900 499 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46848 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(6.9)]TJ 34.22 0 Td [(System )-250(Identi\336cation)]TJ /T1_1 1 Tf 11.613 0 Td (187)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 662.1203 Tm (struct utmp {)Tj 1.2 -1.189 Td [(char )-600(ut_line[8];)-600(/* tty line: "ttyh0", "ttyd0", "ttyp0", ... */)]TJ 0 -1.189 TD [(char )-600(ut_name[8];)-600(/* login name */)]TJ T* [(long )-600(ut_time;)-2400(/* seconds since Epoch */)]TJ -1.2 -1.189 Td (};)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 599.1838 Tm [(On )-20(login, )-20(one )-20(of )-20(these )-20(str)10(uctur)18(es )-20(was )-20(\336lled )-20(in )-20(and )-20(written )-20(to )-20(the)]TJ /TT0 1 Tf 28.651 0 Td (utmp)Tj /T1_0 1 Tf 2.67 0 Td [(\336le )-20(by )-20(the)]TJ /TT0 1 Tf 4.68 0 Td (login)Tj /T1_0 1 Tf -36 -1.2 Td [(pr)18(ogram, )-78(and )-78(the )-78(same )-78(str)8(uctur)]TJ 0.3279 Tc 14.276 0 Td (ew)Tj 0 Tc 1.641 0 Td [(as )-78(appended )-78(to )-78(the)]TJ /TT0 1 Tf 8.959 0 Td (wtmp)Tj /T1_0 1 Tf 2.728 0 Td [(\336le. )-328(On)-328(logout, )-78(the )-78(entry)]TJ -27.603 -1.2 Td [(in )-110(the)]TJ /TT0 1 Tf 2.98 0 Td (utmp)Tj /T1_0 1 Tf 2.76 0 Td [(\336le )-110(was )-110(erased)]TJ 0.0833 Tc 6.824 0 Td (\321\336)Tj 0 Tc 1.688 0 Td [(lled )-110(with )-110(null )-110(bytes)]TJ 0.0833 Tc 8.974 0 Td (\321b)Tj 0.3601 Tc 1.636 0 Td (yt)Tj 0 Tc 1.242 0 Td (he)Tj /TT0 1 Tf 1.421 0 Td (init)Tj /T1_0 1 Tf 2.76 0 Td [(pr)18(ocess, )-110(and )-110(a )-110(new)]TJ -30.286 -1.2 Td [(entry )-262(was )-262(appended )-262(to )-262(the)]TJ /TT0 1 Tf 13.378 0 Td (wtmp)Tj /T1_0 1 Tf 2.912 0 Td [(\336le. )-512(This)-511(logout )-262(entry )-262(in )-262(the)]TJ /TT0 1 Tf 14.321 0 Td (wtmp)Tj /T1_0 1 Tf 2.912 0 Td [(\336le )-262(had )-262(the)]TJ /TT0 1 Tf -33.522 -1.2 Td (ut_name)Tj /T1_0 1 Tf 4.56 0 Td [(\336eld )-110(zer)18(oed )-110(out.)-609(Special )-110(entries )-110(wer)]TJ 0.3598 Tc 16.549 0 Td (ea)Tj 0 Tc 1.339 0 Td [(ppended )-110(to )-110(the)]TJ /TT0 1 Tf 7.302 0 Td (wtmp)Tj /T1_0 1 Tf 2.76 0 Td [(\336le )-110(to )-110(indicate)]TJ -32.509 -1.2 Td [(when )-126(the )-126(system )-126(was )-126(r)18(ebooted )-126(and )-126(right )-126(befor)]TJ 0.376 Tc 21.394 0 Td (ea)Tj 0 Tc 1.355 0 Td [(nd )-126(after )-126(the )-126(system\325s )-126(time )-126(and )-126(date)]TJ -22.749 -1.2 Td [(was )-197(changed.)-697(The)]TJ /TT0 1 Tf 9.027 0 Td (who)Tj /T1_0 1 Tf 1.8 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.78 -0.04 Td [(pr)18(ogram )-197(r)18(ead )-197(the)]TJ /TT0 1 Tf 8.553 0 Td (utmp)Tj /T1_0 1 Tf 2.847 0 Td [(\336le )-197(and )-197(printed )-197(its )-197(contents )-197(in )-197(a)]TJ -0.018 Tc -23.841 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(adable )-180(form.)-680(Later )-180(versions )-180(of )-180(the )-180(UNIX )-180(System )-180(pr)18(ovided )-180(the)]TJ /TT0 1 Tf 29.449 0 Td (last)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.763 -0.04 Td (command,)Tj -34.301 -1.2 Td [(which r)18(ead thr)18(ough the)]TJ /TT0 1 Tf 10.659 0 Td (wtmp)Tj /T1_0 1 Tf 2.65 0 Td (\336le and printed selected entries.)Tj -11.509 -1.2 Td [(Most )-161(versions )-161(of )-161(the )-161(UNIX )-161(System )-161(still )-161(pr)19(ovide )-161(the)]TJ /TT0 1 Tf 24.197 0 Td (utmp)Tj /T1_0 1 Tf 2.811 0 Td (and)Tj /TT0 1 Tf 2.104 0 Td (wtmp)Tj /T1_0 1 Tf 2.811 0 Td [(\336les, )-161(but )-161(as)]TJ -33.723 -1.2 Td [(expected, )-7(the )-7(amount )-7(of )-7(information )-7(in )-7(these )-7(\336les )-7(has )-7(gr)14(own. )-257(The)-258(20)]TJ 30.535 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-7(str)8(uctur)]TJ 0.2574 Tc 5.661 0 Td (et)Tj 0 Tc 1.062 0 Td (hat)Tj -37.592 -1.2 Td [(was )-42(written )-42(by )-42(V)111(ersion )-42(7 )-42(gr)18(ew )-42(to )-42(36 )-42(bytes )-42(with )-42(SVR2, )-42(and )-42(the )-42(extended)]TJ /TT0 1 Tf 32.339 0 Td (utmp)Tj /T1_0 1 Tf 2.692 0 Td [(str)8(uctur)18(e)]TJ -35.031 -1.2 Td (with SVR4 takes mor)Tj 0.25 Tc 9.289 0 Td (et)Tj 0 Tc 1.055 0 Td (han 350 bytes!)Tj 7.9995 0 0 7.9995 183.5876 432.7938 Tm [(The )-132(detailed )-132(format )-132(of )-132(these )-132(r)18(ecor)18(ds )-132(in )-132(Solaris )-132(is )-132(given )-132(in )-132(the)]TJ /TT0 1 Tf 28.549 0 Td (utmpx)Tj /T1_0 1 Tf [(\(4\) )-132(manual )-132(page.)]TJ -0.055 Tc 11.307 0 Td (Wi)Tj 0 Tc 1.236 0 Td (th)Tj -41.092 -1.25 Td [(Solaris )-221(10, )-221(both )-221(\336les )-221(ar)20(e)-471(in)-471(t)1(he)]TJ /TT0 1 Tf 14.938 0 Td (/var/adm)Tj /T1_0 1 Tf 5.271 0 Td [(dir)18(ectory)]TJ 0.7208 Tc 3.914 0 Td (.S)Tj 0 Tc 1.496 0 Td [(olaris )-221(pr)18(ovides )-221(numer)18(ous )-221(functions)]TJ -25.619 -1.25 Td (described in)Tj /TT0 1 Tf 5.66 0 Td (getutxent)Tj /T1_0 1 Tf [(\(3\) to r)18(ead and write these two \336les.)]TJ -5.66 -2.5 Td [(On )-23(Fr)18(eeBSD )-23(8.0 )-23(and )-23(Linux )-23(3.2.0, )-23(the)]TJ /TT0 1 Tf 16.262 0 Td (utmp)Tj /T1_0 1 Tf [(\(5\) )-23(manual )-23(page )-23(gives )-23(the )-23(format )-23(of )-23(their )-23(versions )-23(of)]TJ -16.262 -1.25 Td [(these )-624(login )-624(r)19(ecor)18(ds. )-874(The)-873(pathnames )-624(of )-624(these )-624(two )-624(\336les )-624(ar)19(e)]TJ /TT0 1 Tf 31.633 0 Td (/var/run/utmp)Tj /T1_0 1 Tf 8.674 0 Td (and)Tj /TT0 1 Tf -40.307 -1.25 Td (/var/log/wtmp)Tj /T1_0 1 Tf 0.5245 Tc (.O)Tj 0.2745 Tc 9.361 0 Td (nM)Tj 0 Tc 1.802 0 Td [(ac )-24(OS )-24(X )-24(10.6.8, )-24(the)]TJ /TT0 1 Tf 8.431 0 Td (utmp)Tj /T1_0 1 Tf 2.674 0 Td (and)Tj /TT0 1 Tf 1.967 0 Td (wtmp)Tj /T1_0 1 Tf 2.674 0 Td [(\336les )-24(do )-24(not )-24(exist.)-524(As )-24(of )-24(Mac )-24(OS )-24(X)]TJ -26.91 -1.25 Td [(10.5, )-84(the )-84(information )-84(found )-84(in )-84(the)]TJ /TT0 1 Tf 15.603 0 Td (wtmp)Tj /T1_0 1 Tf 2.734 0 Td [(\336le )-84(can )-84(be )-84(obtained )-84(fr)18(om )-84(the )-84(system )-84(logging )-84(facility)108(,)]TJ -18.337 -1.25 Td (and the)Tj /TT0 1 Tf 3.58 0 Td (utmpx)Tj /T1_0 1 Tf 3.25 0 Td (\336le contains information about the active login sessions.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5923 310.8012 Tm [(6.9 )-1332(System)-556(Identi\336cation)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5901 286.8026 Tm [(POSIX.1 )-238(de\336nes )-238(the)]TJ /TT0 1 Tf 9.7 0 Td (uname)Tj /T1_0 1 Tf 3.488 0 Td [(function )-238(to )-238(r)18(eturn )-238(information )-238(on )-238(the )-238(curr)18(ent )-238(host )-238(and)]TJ -13.188 -1.2 Td (operating system.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5891 255.7045 Tm (#include )Tj 0 -2.14 TD (int uname\(struct utsname *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 18.842 -2.14 Td (Returns: non-negative value if OK,)Tj /TT2 1 Tf 15.622 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2127.25 cm 0 0 m 0 520 l 3900 520 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5844 196.7764 Tm [(We )-233(p)]TJ 0 Tc 2.287 0 Td [(ass )-49(the )-49(addr)18(ess )-49(of )-49(a)]TJ /TT0 1 Tf 9.034 0 Td (utsname)Tj /T1_0 1 Tf 4.499 0 Td [(str)8(uctur)18(e)-299(to)-299(this )-49(function, )-49(and )-49(the )-49(function )-49(then )-49(\336lls)]TJ -15.82 -1.2 Td [(it )-54(in.)-554(POSIX.1 )-54(de\336nes )-54(only )-54(the )-54(minimum )-54(\336elds )-54(in )-54(the )-54(str)6(uctur)18(e, )-54(which )-54(ar)]TJ 0.3041 Tc 32.766 0 Td (ea)Tj 0 Tc 1.283 0 Td [(ll )-54(character)]TJ -34.049 -1.2 Td [(arrays, )-364(and )-364(it\325s )-364(up )-364(to )-364(each )-364(implementation )-364(to )-364(set )-364(the )-364(size )-364(of )-364(each )-364(array)]TJ 0.8638 Tc 35.453 0 Td (.S)Tj 0 Tc 1.639 0 Td (ome)Tj -37.092 -1.2 Td [(implementations pr)18(ovide additional \336elds in the str)8(uctur)18(e.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46849 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (186)Tj /T1_1 1 Tf 3.5 0 Td [(System )-250(Data )-250(Files )-250(and )-250(Information)]TJ 39.241 0 Td [(Chapter )-250(6)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The general principle is that every data \336le has at least thr)18(ee functions:)]TJ 0 -2.04 TD [(1. )-633(A)]TJ /TT0 1 Tf 2.758 0 Td (get)Tj /T1_1 1 Tf 2.147 0 Td [(function )-97(that )-97(r)18(eads )-97(the )-97(next )-97(r)18(ecor)18(d, )-97(opening )-97(the )-97(\336le )-97(if )-97(necessary)]TJ 0.597 Tc 28.871 0 Td (.T)Tj 0 Tc 1.46 0 Td (hese)Tj -33.603 -1.2 Td [(functions )-145(normally )-145(r)18(eturn )-145(a )-145(pointer )-145(to )-145(a )-145(str)9(uctur)18(e. )-395(A)-394(null )-145(pointer )-145(is )-145(r)19(eturned)]TJ 0 -1.2 Td [(when )-50(the )-50(end )-50(of )-50(\336le )-50(is )-50(r)19(eached. )-300(Most)-300(of )-50(the)]TJ /TT0 1 Tf 19.983 0 Td (get)Tj /T1_1 1 Tf 2.1 0 Td [(functions )-50(r)18(eturn )-50(a )-50(pointer )-50(to )-50(a)]TJ /TT0 1 Tf -22.083 -1.2 Td (static)Tj /T1_1 1 Tf 3.865 0 Td [(str)8(uctur)18(e, )-15(so )-15(we )-15(always )-15(have )-15(to )-15(copy )-15(the )-15(str)9(uctur)]TJ 0.2649 Tc 21.748 0 Td (ei)Tj 0 Tc 1.035 0 Td [(f)-265(we)-265(want )-15(to )-15(save )-15(it.)]TJ -28.281 -1.6 Td [(2. )-633(A)]TJ /TT0 1 Tf 2.685 0 Td (set)Tj /T1_1 1 Tf 2.074 0 Td [(function )-24(that )-24(opens )-24(the )-24(\336le, )-24(if )-24(not )-24(alr)18(eady )-24(open, )-24(and )-24(r)18(ewinds )-24(the )-24(\336le.)]TJ -0.092 Tc 31.054 0 Td (We)Tj 0 Tc -34.18 -1.2 Td [(use )-60(this )-60(function )-60(when )-60(we )-60(know )-60(we )-60(want )-60(to )-60(start )-60(again )-60(at )-60(the )-60(beginning )-60(of )-60(the)]TJ 0 -1.2 TD (\336le.)Tj -1.633 -1.6 Td [(3. )-633(An)]TJ /TT0 1 Tf 3.256 0 Td (end)Tj /T1_1 1 Tf 2.063 0 Td [(entry )-13(that )-13(closes )-13(the )-13(data )-13(\336le.)-514(As )-13(we )-13(mentioned )-13(earlier)73(,)-263(we)-263(always )-13(have)]TJ -3.686 -1.2 Td (to call this function when we\325r)Tj 0.25 Tc 13.423 0 Td (ed)Tj 0 Tc 1.34 0 Td (one, to close all the \336les.)Tj -18.196 -2.04 Td [(Additionally)111(,)-264(if)-264(t)-1(he )-14(data )-14(\336le )-14(supports )-14(some )-14(form )-14(of )-14(keyed )-14(lookup, )-14(r)14(outines )-14(ar)]TJ 0.2643 Tc 34.176 0 Td (ep)Tj -0.018 Tc 1.344 0 Td (ro)Tj 0 Tc 0.923 0 Td (vided)Tj -36.443 -1.2 Td [(to )-77(sear)18(ch )-77(for )-77(a )-77(r)19(ecor)]TJ 0.3268 Tc 8.982 0 Td (dw)Tj 0 Tc 1.772 0 Td [(ith )-77(a )-77(speci\336c )-77(key)]TJ 0.5769 Tc 7.448 0 Td (.F)Tj 0 Tc 1.383 0 Td [(or )-77(example, )-77(two )-77(keyed )-77(lookup )-77(r)18(outines )-77(ar)19(e)]TJ -19.584 -1.2 Td [(pr)18(ovided )-45(for )-45(the )-45(passwor)]TJ 0.295 Tc 11.333 0 Td (d\336)Tj 0 Tc 1.511 0 Td (le:)Tj /TT0 1 Tf 1.315 0 Td (getpwnam)Tj /T1_1 1 Tf 5.095 0 Td [(looks )-45(for )-45(a )-45(r)18(ecor)]TJ 0.2949 Tc 7.245 0 Td (dw)Tj 0 Tc 1.74 0 Td [(ith )-45(a )-45(speci\336c )-45(user )-45(name,)]TJ -28.238 -1.2 Td (and)Tj /TT0 1 Tf 1.943 0 Td (getpwuid)Tj /T1_1 1 Tf 5.05 0 Td [(looks for a r)18(ecor)]TJ 0.25 Tc 7.11 0 Td (dw)Tj 0 Tc 1.695 0 Td (ith a speci\336c user ID.)Tj -13.998 -1.2 Td (Figur)Tj 0.3466 Tc 2.383 0 Td (e6)Tj 0 Tc 1.326 0 Td [(.6 )-97(shows )-97(some )-97(of )-97(these )-97(r)18(outines, )-97(which )-97(ar)]TJ 0.3466 Tc 18.975 0 Td (ec)Tj 0 Tc 1.27 0 Td [(ommon )-97(to )-97(UNIX )-97(systems.)-595(In)]TJ -25.753 -1.2 Td [(this )-212(\336gur)18(e, )-212(we )-212(show )-212(the )-212(functions )-212(for )-212(the )-212(passwor)]TJ 0.4618 Tc 23.772 0 Td (d\336)Tj 0 Tc 1.678 0 Td [(les )-212(and )-212(gr)18(oup )-212(\336le, )-212(which )-212(we)]TJ -25.45 -1.2 Td [(discussed )-46(earlier )-46(in )-46(this )-46(chapter)]TJ 0.2965 Tc 14.076 0 Td (,a)Tj 0 Tc 1.046 0 Td [(nd )-46(some )-46(of )-46(the )-46(networking )-46(functions.)-549(Ther)]TJ 0.2966 Tc 19.399 0 Td (ea)Tj -0.018 Tc 1.276 0 Td (re)Tj /TT0 1 Tf 0 Tc 1.153 0 Td (get)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -36.95 -1.2 Td (set)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 2.8 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (end)Tj /T1_1 1 Tf 2.05 0 Td [(functions for all the data \336les in this \336gur)18(e.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1332.25 4190.25 cm 0 0 m 3828 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 137.1715 410.9507 Tm [(Description )-3087(Data)-250(\336le )-4439(Header)-2717(Str)8(uctur)]TJ 2.849 Tc 26.509 0 Td (eA)Tj 0 Tc 4.106 0 Td (dditional keyed lookup functions)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1332.25 4070.25 cm 0 0 m 3828 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1332.25 4050.25 cm 0 0 m 3828 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 137.1633 396.9285 Tm [(passwor)18(ds)]TJ /TT0 1 Tf 6.153 0 Td [(/etc/passwd )-2200( )-2200(passwd)-2200(getpwnam)]TJ /T1_1 1 Tf (,)Tj /TT0 1 Tf 27.5 0 Td (getpwuid)Tj /T1_1 1 Tf -33.653 -1.25 Td [(gr)18(oups)]TJ /TT0 1 Tf 6.153 0 Td [(/etc/group )-2800()-2800(group )-2200(getgrnam)]TJ /T1_1 1 Tf (,)Tj /TT0 1 Tf 27.5 0 Td (getgrgid)Tj /T1_1 1 Tf -33.653 -1.25 Td (shadow)Tj /TT0 1 Tf 6.153 0 Td [(/etc/shadow )-2200()-1000(spwd )-2800(getspnam)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1332.25 3730.25 cm 0 0 m 3828 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 137.1551 364.9124 Tm (hosts)Tj /TT0 1 Tf 6.153 0 Td [(/etc/hosts )-2800()-1600(hostent )-1000(getnameinfo)]TJ /T1_1 1 Tf (,)Tj /TT0 1 Tf 29.3 0 Td (getaddrinfo)Tj /T1_1 1 Tf -35.453 -1.25 Td (networks)Tj /TT0 1 Tf 6.153 0 Td [(/etc/networks )-1000( )-1000(netent)-2200(getnetbyname)]TJ /T1_1 1 Tf (,)Tj /TT0 1 Tf 29.9 0 Td (getnetbyaddr)Tj /T1_1 1 Tf -36.053 -1.25 Td [(pr)18(otocols)]TJ /TT0 1 Tf 6.153 0 Td [(/etc/protocols )-400()-1600(protoent )-400(getprotobyname)]TJ /T1_1 1 Tf (,)Tj /TT0 1 Tf 31.1 0 Td (getprotobynumber)Tj /T1_1 1 Tf -37.253 -1.25 Td (services)Tj /TT0 1 Tf 6.153 0 Td [(/etc/services )-1000( )-1000(servent )-1000(getservbyname)]TJ /T1_1 1 Tf (,)Tj /TT0 1 Tf 30.5 0 Td (getservbyport)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1332.25 3310.25 cm 0 0 m 3828 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3600.25 3310.25 cm 0 0 m 0 880 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3136.25 3310.25 cm 0 0 m 0 880 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2576.25 3310.25 cm 0 0 m 0 880 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1824.25 3310.25 cm 0 0 m 0 880 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5160.25 3310.25 cm 0 0 m 0 880 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1332.25 3310.25 cm 0 0 m 0 880 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 221.5535 312.9061 Tm (Figure 6.6)Tj /T1_1 1 Tf 5.195 0 Td [(Similar r)18(outines for accessing system data \336les)]TJ -9.948 -3.1 Td [(Under )-42(Solaris, )-42(the )-42(last )-42(four )-42(data )-42(\336les )-42(in )-42(Figur)]TJ 0.2918 Tc 20.199 0 Td (e6)Tj 0 Tc 1.271 0 Td [(.6 )-42(ar)]TJ 0.2918 Tc 1.919 0 Td (es)Tj 0 Tc 1.195 0 Td [(ymbolic )-42(links )-42(to )-42(\336les )-42(of )-42(the )-42(same )-42(name)]TJ -24.583 -1.25 Td [(in )-98(the )-98(dir)19(ectory)]TJ /TT0 1 Tf 7.328 0 Td (/etc/inet)Tj /T1_1 1 Tf 0.5976 Tc (.M)Tj 0 Tc 7.194 0 Td [(ost )-98(UNIX )-98(System )-98(implementations )-98(have )-98(additional )-98(functions)]TJ -14.521 -1.25 Td [(that )-106(ar)]TJ 0.3559 Tc 2.967 0 Td (el)Tj 0 Tc 1.126 0 Td [(ike )-106(these, )-106(but )-106(the )-106(additional )-106(functions )-106(tend )-106(to )-106(deal )-106(with )-106(system )-106(administration )-106(\336les)]TJ -4.093 -1.25 Td (and ar)Tj 0.25 Tc 2.82 0 Td (es)Tj 0 Tc 1.153 0 Td (peci\336c to each implementation.)Tj /TT1 1 Tf 11.9964 0 0 11.9964 93.5723 222.1333 Tm [(6.8 )-1332(Login)-556(Accounting)]TJ /T1_1 1 Tf -0.09 Tc 9.997 0 0 9.997 129.5615 198.1405 Tm (Tw)Tj 0.2532 Tc 1.357 0 Td (od)Tj 0 Tc 1.41 0 Td [(ata )-3(\336les )-3(pr)18(ovided )-3(with )-3(most )-3(UNIX )-3(systems )-3(ar)]TJ 0.2533 Tc 20.197 0 Td (et)Tj 0 Tc 1.058 0 Td (he)Tj /TT0 1 Tf 1.314 0 Td (utmp)Tj /T1_1 1 Tf 2.653 0 Td [(\336le, )-3(which )-3(keeps )-3(track )-3(of)]TJ -27.99 -1.2 Td [(all )-66(the )-66(users )-66(curr)18(ently )-66(logged )-66(in, )-66(and )-66(the)]TJ /TT0 1 Tf 18.614 0 Td (wtmp)Tj /T1_1 1 Tf 2.716 0 Td [(\336le, )-65(which )-65(keeps )-65(track )-65(of )-65(all )-65(logins )-65(and)]TJ -21.329 -1.2 Td [(logouts. )-372(W)55(ith )-122(V)111(ersion )-122(7, )-122(one )-122(type )-122(of )-122(r)20(ecor)]TJ 0.3716 Tc 19.286 0 Td (dw)Tj 0 Tc 1.817 0 Td [(as )-122(written )-122(to )-122(both )-122(\336les, )-122(a )-122(binary )-122(r)21(ecor)18(d)]TJ -21.103 -1.2 Td [(consisting of the following str)8(uctur)18(e:)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46850 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(6.7)]TJ 36.124 0 Td [(Other )-250(Data )-250(Files)]TJ /T1_1 1 Tf 9.709 0 Td (185)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1319.25 6670.25 cm 0 0 m 3853 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 249.853 658.9605 Tm [(Fr)18(eeBSD )]TJ 10.519 0 Td (Linux)Tj 7.657 0 Td [(Mac OS X)-4870(Solaris)]TJ -16.901 -1.25 Td (8.0 )Tj 9.545 0 Td (3.2.0)Tj 8.29 0 Td (10.6.8 )Tj 9.29 0 Td (10)Tj -40.179 0.625 Td (Information)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1319.25 6450.25 cm 0 0 m 3853 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1319.25 6430.25 cm 0 0 m 3853 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 135.9517 634.9238 Tm (account information)Tj /TT0 1 Tf 12.838 0 Td [(/etc/passwd )-2720(/etc/passwd)]TJ /T1_0 1 Tf 17.74 0 Td [(Dir)18(ectory Services)]TJ /TT0 1 Tf 9.26 0 Td (/etc/passwd)Tj /T1_0 1 Tf -39.838 -1.25 Td [(encrypted passwor)18(ds)]TJ /TT0 1 Tf 10.738 0 Td [(/etc/master.passwd )-620(/etc/shadow)]TJ /T1_0 1 Tf 19.84 0 Td [(Dir)18(ectory Services)]TJ /TT0 1 Tf 9.26 0 Td (/etc/shadow)Tj /T1_0 1 Tf -39.838 -1.25 Td (hashed passwor)Tj 0.25 Tc 7.134 0 Td (d\336)Tj 0 Tc 1.466 0 Td [(les? )-4920(yes)]TJ 16.894 0 Td (no )Tj 8.54 0 Td (no )Tj 8.54 0 Td (no)Tj -42.574 -1.25 Td [(gr)18(oup information)]TJ /TT0 1 Tf 13.138 0 Td [(/etc/group )-3320(/etc/group)]TJ /T1_0 1 Tf 17.44 0 Td [(Dir)18(ectory Services)]TJ /TT0 1 Tf 9.56 0 Td (/etc/group)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1319.25 6010.25 cm 0 0 m 3853 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4469.25 6010.25 cm 0 0 m 0 660 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 6010.25 cm 0 0 m 0 660 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3102.25 6010.25 cm 0 0 m 0 660 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2198.25 6010.25 cm 0 0 m 0 660 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5172.25 6010.25 cm 0 0 m 0 660 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1319.25 6010.25 cm 0 0 m 0 660 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 239.3889 582.8951 Tm (Figure 6.5)Tj /T1_0 1 Tf 5.195 0 Td [(Account implementation dif)18(fer)18(ences)]TJ 9.9982 0 0 9.9982 147.5736 558.8994 Tm [(On )-507(Fr)18(eeBSD, )-507(the )-507(shadow )-507(passwor)]TJ 0.7574 Tc 17.039 0 Td (d\336)Tj 0 Tc 1.973 0 Td [(le )-507(is)]TJ /TT0 1 Tf 3 0 Td (/etc/master.passwd)Tj /T1_0 1 Tf 1.0073 Tc (.S)Tj 0 Tc 12.582 0 Td (pecial)Tj -36.394 -1.2 Td [(commands )-33(ar)]TJ 0.2832 Tc 6.033 0 Td (eu)Tj 0 Tc 1.365 0 Td [(sed )-33(to )-33(edit )-33(it, )-33(which )-33(in )-33(turn )-33(generate )-33(a )-33(copy )-33(of)]TJ /TT0 1 Tf 20.909 0 Td (/etc/passwd)Tj /T1_0 1 Tf 6.883 0 Td [(fr)18(om )-33(the)]TJ -35.191 -1.2 Td [(shadow )-425(passwor)]TJ 0.6748 Tc 7.878 0 Td (d\336)Tj 0 Tc 1.891 0 Td [(le. )-675(In)-674(addition, )-425(hashed )-425(versions )-425(of )-425(the )-425(\336les )-425(ar)]TJ 0.6747 Tc 23.421 0 Td (eg)Tj 0 Tc 1.71 0 Td (enerated:)Tj /TT0 1 Tf -34.899 -1.2 Td (/etc/pwd.db)Tj /T1_0 1 Tf 7.111 0 Td [(is )-261(the )-261(hashed )-261(version )-261(of)]TJ /TT0 1 Tf 11.998 0 Td (/etc/passwd)Tj /T1_0 1 Tf 0.5114 Tc (,a)Tj 0 Tc 7.861 0 Td (nd)Tj /TT0 1 Tf 1.704 0 Td (/etc/spwd.db)Tj /T1_0 1 Tf 7.711 0 Td [(is )-261(the)]TJ -36.387 -1.2 Td [(hashed )-44(version )-44(of)]TJ /TT0 1 Tf 8.22 0 Td (/etc/master.passwd)Tj /T1_0 1 Tf 0.5436 Tc (.T)Tj 0 Tc 12.207 0 Td [(hese )-44(pr)18(ovide )-43(better )-43(performance )-43(for )-43(lar)16(ge)]TJ -20.426 -1.2 Td (installations.)Tj 1.8 -1.2 Td [(On )-62(Mac )-62(OS )-62(X, )-62(however)75(,)]TJ /TT0 1 Tf 11.101 0 Td (/etc/passwd)Tj /T1_0 1 Tf 6.912 0 Td (and)Tj /TT0 1 Tf 2.005 0 Td (/etc/master.passwd)Tj /T1_0 1 Tf 11.112 0 Td (ar)Tj 0.3117 Tc 0.877 0 Td (eu)Tj 0 Tc 1.394 0 Td [(sed )-62(only)]TJ -35.199 -1.2 Td [(in )-179(single-user )-179(mode )-179(\(when )-179(the )-179(system )-179(is )-179(under)18(going )-179(maintenance; )-179(single-user )-179(mode)]TJ 0 -1.2 TD [(usually )-329(means )-329(that )-329(no )-329(system )-329(services )-329(ar)]TJ 0.5788 Tc 19.94 0 Td (ee)Tj 0 Tc 1.537 0 Td [(nabled\). )-579(In)-579(multiuser )-329(mode)]TJ 0.0833 Tc 13.402 0 Td (\321d)Tj 0 Tc 1.694 0 Td (uring)Tj -36.573 -1.2 Td [(normal )-583(operation)]TJ 0.0833 Tc 8.38 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(he )-583(Dir)18(ectory )-583(Services )-583(daemon )-583(pr)18(ovides )-583(access )-583(to )-583(account)]TJ -9.789 -1.2 Td [(information for users and gr)18(oups.)]TJ 1.8 -1.2 Td [(Although )-68(Linux )-68(and )-68(Solaris )-68(support )-68(similar )-68(shadow )-68(passwor)]TJ 0.3181 Tc 27.533 0 Td (di)Tj 0 Tc 1.22 0 Td [(nterfaces, )-68(ther)]TJ 0.3181 Tc 6.294 0 Td (ea)Tj -0.018 Tc 1.297 0 Td (re)Tj 0 Tc -38.144 -1.2 Td [(some )-27(subtle )-27(dif)18(fer)18(ences. )-277(For)-277(example, )-27(the )-27(integer )-27(\336elds )-27(shown )-27(in )-27(Figur)]TJ 0.277 Tc 31.717 0 Td (e6)Tj 0 Tc 1.256 0 Td [(.3 )-27(ar)]TJ 0.277 Tc 1.904 0 Td (ed)Tj 0 Tc 1.367 0 Td (e\336ned)Tj -36.244 -1.2 Td [(as )-389(type)]TJ /TT0 1 Tf 4.164 0 Td (int)Tj /T1_0 1 Tf 2.439 0 Td [(on )-389(Solaris, )-389(but )-389(as)]TJ /TT0 1 Tf 9.312 0 Td [(long )-39(int)]TJ /T1_0 1 Tf 5.478 0 Td [(on )-389(Linux.)-889(Another )-389(dif)18(fer)18(ence )-389(is )-389(the)]TJ -21.394 -1.2 Td [(account-inactive )-174(\336eld: )-174(Solaris )-174(de\336nes )-174(it )-174(to )-174(be )-174(the )-174(number )-174(of )-174(days )-174(since )-174(the )-174(user )-174(last)]TJ T* [(logged )-31(in )-31(to )-31(the )-31(system )-31(after )-31(which )-31(the )-31(account )-31(will )-31(be )-31(automatically )-31(disabled, )-31(wher)13(eas)]TJ T* [(Linux )-111(de\336nes )-111(it )-111(to )-111(be )-111(the )-111(number )-111(of )-111(days )-111(after )-111(the )-111(maximum )-111(passwor)]TJ 0.3609 Tc 32.172 0 Td (da)Tj 0 Tc 1.472 0 Td [(ge )-111(has )-111(been)]TJ -0.018 Tc -33.644 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (ached during which the passwor)Tj 0.25 Tc 14.48 0 Td (dw)Tj 0 Tc 1.695 0 Td (ill still be accepted.)Tj -15.231 -1.2 Td [(On )-337(many )-337(systems, )-337(the )-337(user )-337(and )-337(gr)17(oup )-337(databases )-337(ar)]TJ 0.5873 Tc 25.211 0 Td (ei)Tj 0 Tc 1.357 0 Td [(mplemented )-337(using )-337(the)]TJ -28.368 -1.2 Td [(Network )-23(Information )-23(Service)]TJ 13.284 0.04 Td (\()Tj 0.333 -0.04 Td (NIS)Tj 1.693 0.04 Td (\))Tj 0.5228 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.386 0 Td [(his )-23(allows )-23(administrators )-23(to )-23(edit )-23(a )-23(master )-23(copy )-23(of)]TJ -17.029 -1.2 Td [(the )-11(databases )-11(and )-11(distribute )-11(them )-11(automatically )-11(to )-11(all )-11(servers )-11(in )-11(an )-11(or)18(ganization. )-261(Client)]TJ T* [(systems )-83(contact )-83(servers )-83(to )-83(look )-83(up )-83(information )-83(about )-83(users )-83(and )-83(gr)15(oups. )-333(NIS+)-334(and )-83(the)]TJ 0 -1.2 Td [(Lightweight )-260(Dir)18(ectory )-260(Access )-260(Pr)17(otocol)]TJ 18.336 0.04 Td (\()Tj 0.333 -0.04 Td (LDAP)Tj 2.767 0.04 Td (\))Tj 0.843 -0.04 Td [(pr)18(ovide )-260(similar )-260(functionality)]TJ 0.7604 Tc 13.126 0 Td (.M)Tj 0 Tc 1.956 0 Td (any)Tj -37.362 -1.2 Td [(systems )-142(contr)18(ol )-142(the )-142(method )-142(used )-142(to )-142(administer )-142(each )-142(type )-142(of )-142(information )-142(thr)15(ough )-142(the)]TJ /TT0 1 Tf T* (/etc/nsswitch.conf)Tj /T1_0 1 Tf 11.05 0 Td (con\336guration \336le.)Tj /TT1 1 Tf 11.9978 0 0 11.9978 93.5841 234.9577 Tm [(6.7 )-1332(Other)-556(Data )-278(Files)]TJ /T1_0 1 Tf -0.092 Tc 9.9982 0 0 9.9982 129.5776 210.962 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ve )-143(discussed )-143(only )-143(two )-143(of )-143(the )-143(system\325s )-143(data )-143(\336les )-143(so )-143(far: )-143(the )-143(passwor)]TJ 0.3931 Tc 31.368 0 Td (d\336)Tj 0 Tc 1.609 0 Td [(le )-143(and )-143(the)]TJ -34.364 -1.2 Td [(gr)18(oup )-243(\336le.)-743(Numer)18(ous )-243(other )-243(\336les )-243(ar)]TJ 0.493 Tc 16.773 0 Td (eu)Tj 0 Tc 1.575 0 Td [(sed )-243(by )-243(UNIX )-243(systems )-243(in )-243(normal )-243(day-to-day)]TJ -18.348 -1.2 Td [(operation. )-299(For)-299(example, )-49(the )-49(BSD )-49(networking )-49(softwar)]TJ 0.2991 Tc 23.84 0 Td (eh)Tj 0 Tc 1.36 0 Td [(as )-49(one )-49(data )-49(\336le )-49(for )-49(the )-49(services)]TJ -25.201 -1.2 Td [(pr)18(ovided )-263(by )-263(the )-263(various )-263(network )-263(servers )-263(\()]TJ /TT0 1 Tf 20.194 0 Td (/etc/services)Tj /T1_0 1 Tf [(\), )-263(one )-263(for )-263(the )-263(pr)16(otocols)]TJ -20.194 -1.2 Td (\()Tj /TT0 1 Tf (/etc/protocols)Tj /T1_0 1 Tf [(\), )-241(and )-241(one )-241(for )-241(the )-241(networks )-241(\()]TJ /TT0 1 Tf 22.699 0 Td (/etc/networks)Tj /T1_0 1 Tf [(\). )-491(Fortunately)]TJ 0.4912 Tc 14.173 0 Td (,t)Tj 0 Tc 1.067 0 Td (he)Tj -37.939 -1.2 Td [(interfaces )-302(to )-302(these )-302(various )-302(\336les )-302(ar)]TJ 0.5519 Tc 16.174 0 Td (el)Tj 0 Tc 1.322 0 Td [(ike )-302(the )-302(ones )-302(we\325ve )-302(alr)18(eady )-302(described )-302(for )-302(the)]TJ -17.496 -1.2 Td (passwor)Tj 0.25 Tc 3.706 0 Td (da)Tj 0 Tc 1.361 0 Td [(nd gr)18(oup \336les.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46851 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (184)Tj /T1_1 1 Tf 3.5 0 Td [(System )-250(Data )-250(Files )-250(and )-250(Information)]TJ 39.241 0 Td [(Chapter )-250(6)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 656.1206 Tm (#include )Tj 0 -1.902 TD (int getgroups\(int)Tj /T1_2 1 Tf 10.8 0 Td (gidsetsize)Tj /TT0 1 Tf 0.6 Tc (,g)Tj 0 Tc 5.689 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td [(gr)18(ouplist)]TJ /TT0 1 Tf ([]\);)Tj /T1_1 1 Tf -8.45 -1.902 Td [(Returns: number of supplementary gr)18(oup IDs if OK,)]TJ /TT1 1 Tf 23.425 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -34.464 -1.902 Td [(#include )-2400(/* on Linux */)]TJ 0 -1.189 TD (#include /* on FreeBSD, Mac OS X, and Solaris */)Tj 0 -1.902 TD (int setgroups\(int)Tj /T1_2 1 Tf 10.8 0 Td [(ngr)18(oups)]TJ /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 5.116 0 Td (onst gid_t)Tj /T1_2 1 Tf 6.6 0 Td [(gr)18(ouplist)]TJ /TT0 1 Tf ([]\);)Tj -22.516 -1.902 Td [(#include )-2400(/* on Linux and Solaris */)]TJ 0 -1.189 TD (#include /* on FreeBSD and Mac OS X */)Tj 0 -1.902 TD (int initgroups\(const char *)Tj /T1_2 1 Tf (username)Tj /TT0 1 Tf 0.6 Tc (,g)Tj 0 Tc 21.89 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (basegid)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 0.361 -1.902 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT1 1 Tf 9.213 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5083.25 cm 0 0 m 0 1590 l 3900 1590 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 183.578 485.7217 Tm [(Of )-86(these )-86(thr)18(ee )-86(functions, )-86(only)]TJ /TT0 1 Tf 13.688 0 Td (getgroups)Tj /T1_1 1 Tf 5.736 0 Td [(is )-86(speci\336ed )-86(by )-86(POSIX.1.)-586(Because)]TJ /TT0 1 Tf 15.147 0 Td (setgroups)Tj /T1_1 1 Tf 5.736 0 Td (and)Tj /TT0 1 Tf -40.307 -1.25 Td (initgroups)Tj /T1_1 1 Tf 6.499 0 Td (ar)Tj 0.4989 Tc 0.877 0 Td (ep)Tj 0 Tc 1.579 0 Td [(rivileged )-249(operations, )-249(they )-249(ar)]TJ 0.4989 Tc 13.215 0 Td (en)Tj 0 Tc 1.56 0 Td [(ot )-249(part )-249(of )-249(POSIX.1.)-748(All )-249(four )-249(platforms)]TJ -23.729 -1.25 Td [(cover)18(ed )-46(in )-46(this )-46(book )-46(support )-46(all )-46(thr)18(ee )-46(functions, )-46(but )-46(on )-46(Mac )-46(OS )-46(X )-46(10.6.8,)]TJ /T1_2 1 Tf 32.77 0 Td (basegid)Tj /T1_1 1 Tf 3.259 0 Td [(is )-46(declar)18(ed )-46(to)]TJ -36.029 -1.25 Td (be of type)Tj /TT0 1 Tf 4.623 0 Td (int)Tj /T1_1 1 Tf (.)Tj 9.9988 0 0 9.9988 147.5816 437.7275 Tm (The)Tj /TT0 1 Tf 2.013 0 Td (getgroups)Tj /T1_1 1 Tf 5.739 0 Td [(function )-89(\336lls )-89(in )-89(the )-89(array)]TJ /T1_2 1 Tf 11.62 0 Td [(gr)18(ouplist)]TJ /T1_1 1 Tf 3.988 0 Td [(with )-89(the )-89(supplementary )-89(gr)18(oup)]TJ -25.16 -1.2 Td [(IDs. )-385(Up)-384(to)]TJ /T1_2 1 Tf 5.44 0 Td (gidsetsize)Tj /T1_1 1 Tf 4.274 0 Td [(elements )-135(ar)]TJ 0.3846 Tc 5.205 0 Td (es)Tj 0 Tc 1.288 0 Td [(tor)18(ed )-135(in )-135(the )-135(array)]TJ 0.6346 Tc 7.988 0 Td (.T)Tj 0 Tc 1.498 0 Td [(he )-135(number )-135(of )-135(supplementary)]TJ -25.691 -1.2 Td [(gr)18(oup IDs stor)18(ed in the array is r)18(eturned by the function.)]TJ 1.8 -1.2 Td [(As )-348(a )-348(special )-348(case, )-348(if)]TJ /T1_2 1 Tf 10.445 0 Td (gidsetsize)Tj /T1_1 1 Tf 4.487 0 Td [(is )-348(0, )-348(the )-348(function )-348(r)16(eturns )-348(only )-348(the )-348(number )-348(of)]TJ -16.732 -1.2 Td [(supplementary )-12(gr)18(oup )-12(IDs.)-512(The )-12(array)]TJ /T1_2 1 Tf 16.769 0 Td [(gr)18(ouplist)]TJ /T1_1 1 Tf 3.911 0 Td [(is )-12(not )-12(modi\336ed.)-512(\(This )-12(allows )-12(the )-12(caller )-12(to)]TJ -20.681 -1.2 Td (determine the size of the)Tj /T1_2 1 Tf 11.122 0 Td [(gr)18(ouplist)]TJ /T1_1 1 Tf 3.899 0 Td (array to allocate.\))Tj -13.221 -1.2 Td (The)Tj /TT0 1 Tf 2.019 0 Td (setgroups)Tj /T1_1 1 Tf 5.746 0 Td [(function )-95(can )-95(be )-95(called )-95(by )-95(the )-95(super)8(user )-95(to )-95(set )-95(the )-95(supplementary)]TJ -9.565 -1.2 Td [(gr)18(oup )-221(ID )-221(list )-221(for )-221(the )-221(calling )-221(pr)17(ocess:)]TJ /T1_2 1 Tf 17.585 0 Td [(gr)18(ouplist)]TJ /T1_1 1 Tf 4.12 0 Td [(contains )-221(the )-221(array )-221(of )-221(gr)18(oup )-221(IDs, )-221(and)]TJ /T1_2 1 Tf -21.705 -1.2 Td [(ngr)18(oups)]TJ /T1_1 1 Tf 3.667 0 Td [(speci\336es )-101(the )-101(number )-101(of )-101(elements )-101(in )-101(the )-101(array)]TJ 0.6013 Tc 20.406 0 Td (.T)Tj 0 Tc 1.464 0 Td [(he )-101(value )-101(of)]TJ /T1_2 1 Tf 5.432 0 Td [(ngr)18(oups)]TJ /T1_1 1 Tf 3.667 0 Td [(cannot )-101(be)]TJ -34.637 -1.2 Td [(lar)18(ger than)]TJ /TT0 1 Tf 5.088 0 Td (NGROUPS_MAX)Tj /T1_1 1 Tf (.)Tj -3.288 -1.2 Td (The)Tj /TT0 1 Tf 2.034 0 Td (setgroups)Tj /T1_1 1 Tf 5.76 0 Td [(function )-110(is )-110(usually )-110(called )-110(fr)18(om )-110(the)]TJ /TT0 1 Tf 15.994 0 Td (initgroups)Tj /T1_1 1 Tf 6.36 0 Td [(function, )-110(which)]TJ -0.018 Tc -31.95 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ads )-57(the )-57(entir)]TJ 0.307 Tc 5.591 0 Td (eg)Tj -0.018 Tc 1.342 0 Td (ro)Tj 0 Tc 0.923 0 Td [(up )-57(\336le)]TJ 0.0833 Tc 2.969 0 Td (\321w)Tj 0 Tc 1.917 0 Td [(ith )-57(the )-57(functions)]TJ /TT0 1 Tf 7.638 0 Td (getgrent)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 5.357 0 Td (setgrent)Tj /T1_1 1 Tf 0.3069 Tc (,a)Tj 0 Tc 5.857 0 Td (nd)Tj /TT0 1 Tf 1.5 0 Td (endgrent)Tj /T1_1 1 Tf (,)Tj -33.95 -1.2 Td [(which )-156(we )-156(described )-156(earlier)]TJ 0.0833 Tc 12.465 0 Td (\321a)Tj 0 Tc 1.583 0 Td [(nd )-156(determines )-156(the )-156(gr)18(oup )-156(membership )-156(for)]TJ /T1_2 1 Tf 19.493 0 Td (username)Tj /T1_1 1 Tf 0.6562 Tc (.I)Tj 0 Tc 5.133 0 Td (t)Tj -38.674 -1.2 Td [(then )-127(calls)]TJ /TT0 1 Tf 4.673 0 Td (setgroups)Tj /T1_1 1 Tf 5.777 0 Td [(to )-127(initialize )-127(the )-127(supplementary )-127(gr)18(oup )-127(ID )-127(list )-127(for )-127(the )-127(user)]TJ 0.6268 Tc 25.827 0 Td (.O)Tj 0 Tc 1.663 0 Td (ne)Tj -37.939 -1.2 Td [(must )-288(be )-288(super)8(user )-288(to )-288(call)]TJ /TT0 1 Tf 12.75 0 Td (initgroups)Tj /T1_1 1 Tf 0.5377 Tc (,s)Tj 0 Tc 7.212 0 Td [(ince )-288(it )-288(calls)]TJ /TT0 1 Tf 5.976 0 Td (setgroups)Tj /T1_1 1 Tf 0.7878 Tc (.I)Tj 0.5378 Tc 6.775 0 Td (na)Tj 0 Tc 1.62 0 Td [(ddition )-288(to)]TJ -34.332 -1.2 Td [(\336nding )-196(all )-196(the )-196(gr)18(oups )-196(that)]TJ /T1_2 1 Tf 12.766 0 Td (username)Tj /T1_1 1 Tf 4.336 0 Td [(is )-196(a )-196(member )-196(of )-196(in )-196(the )-196(gr)18(oup )-196(\336le,)]TJ /TT0 1 Tf 15.899 0 Td (initgroups)Tj /T1_1 1 Tf -33 -1.2 Td (includes)Tj /T1_2 1 Tf 4.123 0 Td (basegid)Tj /T1_1 1 Tf 3.361 0 Td [(in )-148(the )-148(supplementary )-148(gr)18(oup )-148(ID )-148(list;)]TJ /T1_2 1 Tf 16.743 0 Td (basegid)Tj /T1_1 1 Tf 3.361 0 Td [(is )-148(the )-148(gr)18(oup )-148(ID )-148(fr)18(om )-148(the)]TJ -27.588 -1.2 Td (passwor)Tj 0.25 Tc 3.706 0 Td (d\336)Tj 0 Tc 1.466 0 Td (le for)Tj /T1_2 1 Tf 2.544 0 Td (username)Tj /T1_1 1 Tf (.)Tj -5.916 -1.2 Td (The)Tj /TT0 1 Tf 2.277 0 Td (initgroups)Tj /T1_1 1 Tf 6.603 0 Td [(function )-353(is )-353(called )-353(by )-353(only )-353(a )-353(few )-353(pr)16(ograms. )-603(The)]TJ /TT0 1 Tf 24.154 0 Td (login)Tj /T1_1 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj -38.667 -1.24 Td [(pr)18(ogram, for example, calls it when we log in.)]TJ /TT2 1 Tf 11.9986 0 0 11.9986 93.5886 180.9583 Tm [(6.6 )-1332(Implementation)-556(Diff)10(erences)]TJ /T1_1 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5842 156.9612 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ve )-193(alr)18(eady )-193(discussed )-193(the )-193(shadow )-193(passwor)]TJ 0.4434 Tc 19.753 0 Td (d\336)Tj 0 Tc 1.659 0 Td [(le )-193(supported )-193(by )-193(Linux )-193(and )-193(Solaris.)]TJ -22.8 -1.2 Td [(Fr)18(eeBSD )-91(and )-91(Mac )-91(OS )-91(X )-91(stor)]TJ 0.3408 Tc 12.739 0 Td (ee)Tj 0 Tc 1.299 0 Td [(ncrypted )-91(passwor)18(ds )-91(dif)18(fer)18(ently)]TJ 0.5908 Tc 13.946 0 Td (.F)Tj 0 Tc 1.397 0 Td (igur)Tj 0.3408 Tc 1.827 0 Td (e6)Tj 0 Tc 1.32 0 Td [(.5 )-91(summarizes)]TJ -32.527 -1.2 Td [(how the four platforms cover)18(ed in this book stor)]TJ 0.25 Tc 21.396 0 Td (eu)Tj 0 Tc 1.332 0 Td [(ser and gr)18(oup information.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46852 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(6.5)]TJ 31.587 0 Td [(Supplementary )-250(Gr)18(oup )-250(IDs)]TJ /T1_1 1 Tf 14.246 0 Td (183)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Like )-94(the )-94(passwor)]TJ 0.3442 Tc 7.718 0 Td (d\336)Tj 0 Tc 1.56 0 Td [(le )-94(functions, )-94(both )-94(of )-94(these )-94(functions )-94(normally )-94(r)17(eturn )-94(pointers )-94(to )-94(a)]TJ /TT0 1 Tf -9.279 -1.2 Td (static)Tj /T1_0 1 Tf 3.85 0 Td (variable, which is overwritten on each call.)Tj -2.05 -1.2 Td [(If )-65(we )-65(want )-65(to )-65(sear)16(ch )-66(the )-66(entir)]TJ 0.3156 Tc 13.238 0 Td (eg)Tj -0.018 Tc 1.351 0 Td (ro)Tj 0 Tc 0.923 0 Td [(up )-66(\336le, )-66(we )-66(need )-66(some )-66(additional )-66(functions.)-563(The)]TJ -17.312 -1.2 Td [(following thr)18(ee functions ar)]TJ 0.25 Tc 12.271 0 Td (el)Tj 0 Tc 1.02 0 Td (ike their counterparts for the passwor)Tj 0.25 Tc 16.637 0 Td (d\336)Tj 0 Tc 1.466 0 Td (le.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5913 613.8632 Tm (#include )Tj 0 -2.021 TD (struct group *getgrent\(void\);)Tj /T1_0 1 Tf 16.913 -2.021 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or or end of \336le)]TJ /TT0 1 Tf -29.896 -2.021 Td (void setgrent\(void\);)Tj T* (void endgrent\(void\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5366.25 cm 0 0 m 0 863 l 3900 863 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 183.578 512.6785 Tm [(These )-95(thr)18(ee )-95(functions )-95(ar)]TJ 0.3449 Tc 10.863 0 Td (en)Tj 0 Tc 1.406 0 Td [(ot )-95(part )-95(of )-95(the )-95(base )-95(POSIX.1 )-95(standar)19(d. )-345(They)-345(ar)]TJ 0.3448 Tc 20.882 0 Td (ed)Tj 0 Tc 1.435 0 Td [(e\336ned )-95(as )-95(part )-95(of)]TJ -34.585 -1.25 Td [(the XSI option in the Single UNIX Speci\336cation.)-500(All UNIX Systems pr)18(ovide them.)]TJ 9.9988 0 0 9.9988 147.5826 479.6824 Tm (The)Tj /TT0 1 Tf 1.999 0 Td (setgrent)Tj /T1_0 1 Tf 5.126 0 Td [(function )-75(opens )-75(the )-75(gr)18(oup )-75(\336le, )-75(if )-75(it\325s )-75(not )-75(alr)14(eady )-76(open, )-76(and )-76(r)19(ewinds)]TJ -8.925 -1.2 Td [(it. )-389(The)]TJ /TT0 1 Tf 3.57 0 Td (getgrent)Tj /T1_0 1 Tf 5.189 0 Td [(function )-139(r)18(eads )-139(the )-139(next )-139(entry )-139(fr)18(om )-139(the )-139(gr)18(oup )-139(\336le, )-139(opening )-139(the )-139(\336le)]TJ -8.759 -1.2 Td [(\336rst, if it\325s not alr)18(eady open.)-500(The)]TJ /TT0 1 Tf 14.843 0 Td (endgrent)Tj /T1_0 1 Tf 5.05 0 Td [(function closes the gr)18(oup \336le.)]TJ /TT1 1 Tf 11.9986 0 0 11.9986 93.5889 414.8902 Tm [(6.5 )-1332(Supplementar)]TJ 0.556 Tc 9.678 0 Td (yG)Tj -0.02 Tc 1.89 0 Td (ro)Tj 0 Tc 0.98 0 Td [(up )-278(IDs)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5848 390.8931 Tm [(The )-138(use )-138(of )-138(gr)18(oups )-138(in )-138(the )-138(UNIX )-138(System )-138(has )-138(changed )-138(over )-138(time.)]TJ -0.055 Tc 29.61 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-138(V)111(ersion )-138(7, )-138(each)]TJ -30.846 -1.2 Td [(user )-160(belonged )-160(to )-160(a )-160(single )-160(gr)17(oup )-160(at )-160(any )-160(point )-160(in )-160(time.)-660(When )-160(we )-160(logged )-160(in, )-160(we )-160(wer)17(e)]TJ 0 -1.2 TD [(assigned )-105(the )-105(r)18(eal )-105(gr)18(oup )-105(ID )-105(corr)18(esponding )-105(to )-105(the )-105(numerical )-105(gr)18(oup )-105(ID )-105(in )-105(our )-105(passwor)17(d)]TJ 0 -1.2 Td [(\336le )-117(entry)]TJ 0.6166 Tc 3.969 0 Td (.W)Tj 0.3666 Tc 1.775 0 Td (ec)Tj 0 Tc 1.29 0 Td [(ould )-117(change )-117(this )-117(at )-117(any )-117(point )-117(by )-117(executing)]TJ /TT0 1 Tf 19.945 0 Td (newgrp)Tj /T1_0 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.6165 Tc 0.333 -0.04 Td (.I)Tj 0.3665 Tc 1.204 0 Td (ft)Tj 0 Tc 1.026 0 Td (he)Tj /TT0 1 Tf 1.427 0 Td (newgrp)Tj /T1_0 1 Tf -35.4 -1.2 Td [(command )-28(succeeded )-28(\(r)18(efer )-28(to )-28(the )-28(manual )-28(page )-28(for )-28(the )-28(permission )-28(r)8(ules\), )-28(our )-28(r)23(eal )-28(gr)18(oup)]TJ T* [(ID )-68(was )-68(changed )-68(to )-68(the )-68(new )-68(gr)19(oup\325s )-68(ID, )-68(and )-68(this )-68(value )-68(was )-68(used )-68(for )-68(all )-68(subsequent )-68(\336le)]TJ T* [(access )-47(permission )-47(checks.)]TJ -0.092 Tc 11.951 0 Td [(We )-231(c)]TJ 0 Tc 2.128 0 Td [(ould )-47(always )-47(go )-47(back )-47(to )-47(our )-47(original )-47(gr)18(oup )-47(by )-47(executing)]TJ /TT0 1 Tf -14.079 -1.2 Td (newgrp)Tj /T1_0 1 Tf 3.85 0 Td [(without any ar)18(guments.)]TJ -2.05 -1.2 Td [(This )-194(form )-194(of )-194(gr)18(oup )-194(membership )-194(persisted )-194(until )-194(it )-194(was )-194(changed )-194(in )-194(4.2BSD )-194(\(cir)19(ca)]TJ -1.8 -1.2 Td [(1983\). )-265(W)55(ith )-15(4.2BSD, )-15(the )-15(concept )-15(of )-15(supplementary )-15(gr)18(oup )-15(IDs )-15(was )-15(intr)17(oduced. )-265(Not)-265(only)]TJ T* [(did )-93(we )-93(belong )-93(to )-93(the )-93(gr)18(oup )-93(corr)18(esponding )-93(to )-93(the )-93(gr)14(oup )-93(ID )-93(in )-93(our )-93(passwor)]TJ 0.3434 Tc 33.85 0 Td (d\336)Tj 0 Tc 1.559 0 Td [(le )-93(entry)111(,)]TJ -35.41 -1.2 Td [(but )-8(we )-8(could )-8(also )-8(belong )-8(to )-8(as )-8(many )-8(as )-8(16 )-8(additional )-8(gr)21(oups. )-258(The)-257(\336le )-8(access )-8(permission)]TJ T* [(checks )-148(wer)]TJ 0.3978 Tc 5.017 0 Td (em)Tj 0 Tc 1.76 0 Td [(odi\336ed )-148(so )-148(that )-148(in )-148(addition )-148(to )-148(comparing )-148(the )-148(the )-148(\336le\325s )-148(gr)18(oup )-148(ID )-148(to )-148(the)]TJ -6.777 -1.2 Td [(pr)18(ocess ef)18(fective gr)18(oup ID, it was also compar)18(ed to all the supplementary gr)18(oup IDs.)]TJ 7.999 0 0 7.999 183.5795 214.9142 Tm [(Supplementary )-143(gr)18(oup )-143(IDs )-143(ar)]TJ 0.3926 Tc 13.094 0 Td (ear)Tj 0 Tc 2.141 0 Td [(equir)18(ed )-143(featur)18(e)-393(of)-393(P)1(OSIX.1. )-393(\(In)-392(older )-143(versions )-143(of )-143(POSIX.1,)]TJ -15.235 -1.25 Td [(they )-353(wer)]TJ 0.6034 Tc 4.236 0 Td (eo)Tj 0 Tc 1.628 0 Td [(ptional.\) )-603(The)-604(constant)]TJ /TT0 1 Tf 11.184 0 Td (NGROUPS_MAX)Tj /T1_0 1 Tf 7.203 0 Td (\(Figur)Tj 0.6034 Tc 2.716 0 Td (e2)Tj 0 Tc 1.582 0 Td [(.1)55(1\) )-353(speci\336es )-353(the )-353(number )-353(of)]TJ -28.551 -1.25 Td [(supplementary gr)18(oup IDs.)]TJ 0.25 Tc 12.188 0 Td (Ac)Tj 0 Tc 1.472 0 Td (ommon value is 16 \(Figur)Tj 0.25 Tc 11.309 0 Td (e2)Tj 0 Tc 1.229 0 Td (.15\).)Tj 9.9988 0 0 9.9988 147.5845 173.9191 Tm [(The )-204(advantage )-204(of )-204(using )-204(supplementary )-204(gr)18(oup )-204(IDs )-204(is )-204(that )-204(we )-204(no )-204(longer )-204(have )-204(to)]TJ -1.8 -1.2 Td [(change )-325(gr)18(oups )-325(explicitly)]TJ 0.8249 Tc 11.375 0 Td (.I)Tj 0.5749 Tc 1.412 0 Td (ti)Tj 0.5748 Tc 1.192 0 Td (sn)Tj 0 Tc 1.581 0 Td [(ot )-325(uncommon )-325(to )-325(belong )-325(to )-325(multiple )-325(gr)18(oups )-325(\(i.e.,)]TJ -15.559 -1.2 Td [(participate in multiple pr)18(ojects\) at the same time.)]TJ 1.8 -1.2 Td [(Thr)18(ee functions ar)]TJ 0.25 Tc 8.038 0 Td (ep)Tj -0.018 Tc 1.33 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vided to fetch and set the supplementary gr)18(oup IDs.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46853 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (182)Tj /T1_1 1 Tf 3.5 0 Td [(System )-250(Data )-250(Files )-250(and )-250(Information)]TJ 39.241 0 Td [(Chapter )-250(6)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-56(only )-56(two )-56(mandatory )-56(\336elds )-56(ar)]TJ 0.3061 Tc 15.072 0 Td (et)Tj 0 Tc 1.111 0 Td [(he )-56(user)-74(\325s )-56(login )-56(name )-56(and )-56(encrypted )-56(passwor)17(d.)]TJ -17.983 -1.2 Td [(The )-149(other )-149(\336elds )-149(contr)18(ol )-149(how )-149(often )-149(the )-149(passwor)18(d)-399(is)-399(to)-399(change )167(\321 )167(known)-399(as )-149(\324)37(\324passwor)18(d)]TJ 0 -1.2 Td (aging\325)Tj 0.0833 Tc 2.726 0 Td (\325\321a)Tj 0 Tc 1.945 0 Td [(nd how long an account is allowed to r)18(emain active.)]TJ -2.871 -1.2 Td [(The )-286(shadow )-286(passwor)]TJ 0.5361 Tc 9.949 0 Td (d\336)Tj 0 Tc 1.752 0 Td [(le )-286(should )-286(not )-286(be )-286(r)18(eadable )-286(by )-286(the )-286(world.)-786(Only )-286(a )-286(few)]TJ -13.501 -1.2 Td [(pr)18(ograms )-556(need )-556(to )-556(access )-556(encrypted )-556(passwor)17(ds )167(\321)]TJ /TT0 1 Tf 24.432 0 Td (login)Tj /T1_1 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 1.139 -0.04 Td (and)Tj /TT0 1 Tf 2.499 0 Td (passwd)Tj /T1_1 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.8063 Tc 0.333 -0.04 Td (,f)Tj 0 Tc 1.389 0 Td (or)Tj -38.059 -1.2 Td [(example )167(\321 )167(and)-300(these )-49(pr)18(ograms )-49(ar)]TJ 0.2994 Tc 14.956 0 Td (eo)Tj 0 Tc 1.324 0 Td [(ften )-49(set-user)18(-ID )-49(r)17(oot. )-299(W)55(ith )-49(shadow )-49(passwor)18(ds, )-49(the)]TJ -0.018 Tc -16.28 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (gular passwor)Tj 0.25 Tc 6.301 0 Td (d\336)Tj 0 Tc 1.466 0 Td (le,)Tj /TT0 1 Tf 1.27 0 Td (/etc/passwd)Tj /T1_1 1 Tf 0.25 Tc (,c)Tj 0 Tc 7.544 0 Td [(an be left r)18(eadable by the world.)]TJ -15.637 -1.2 Td [(On )-97(Linux )-97(3.2.0 )-97(and )-97(Solaris )-97(10, )-97(a )-97(separate )-97(set )-97(of )-97(functions )-97(is )-97(available )-97(to )-97(access )-97(the)]TJ -1.8 -1.2 Td (shadow passwor)Tj 0.25 Tc 7.453 0 Td (d\336)Tj 0 Tc 1.466 0 Td (le, similar to the set of functions used to access the passwor)Tj 0.25 Tc 26.14 0 Td (d\336)Tj 0 Tc 1.466 0 Td (le.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5926 557.4665 Tm (#include )Tj 0 -1.783 TD (struct spwd *getspnam\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj 0 -1.783 Td (struct spwd *getspent\(void\);)Tj /T1_1 1 Tf 21.18 -1.783 Td [(Both r)18(eturn: pointer if OK,)]TJ /TT0 1 Tf 11.933 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -35.763 -1.664 Td (void setspent\(void\);)Tj T* (void endspent\(void\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4738.25 cm 0 0 m 0 927 l 3900 927 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 461.4646 Tm [(On )-66(Fr)18(eeBSD )-66(8.0 )-66(and )-66(Mac )-66(OS )-66(X )-66(10.6.8, )-66(ther)16(e)-316(is)-316(no)-316(s)-1(hadow )-66(passwor)]TJ 0.3163 Tc 29.813 0 Td (ds)Tj 0 Tc 1.351 0 Td [(tr)8(uctur)18(e. )-316(The)]TJ -32.965 -1.2 Td [(additional account information is stor)18(ed in the passwor)]TJ 0.25 Tc 24.463 0 Td (d\336)Tj 0 Tc 1.466 0 Td [(le \(r)18(efer back to Figur)]TJ 0.25 Tc 9.474 0 Td (e6)Tj 0 Tc 1.229 0 Td (.1\).)Tj /TT1 1 Tf 11.9986 0 0 11.9986 93.5888 417.0699 Tm [(6.4 )-1332(Gr)20(oup )-278(File)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 396.6724 Tm [(The )-12(UNIX )-12(System\325s )-12(gr)18(oup )-12(\336le, )-12(called )-12(the )-12(gr)18(oup )-12(database )-12(by )-12(POSIX.1, )-12(contains )-12(the )-12(\336elds)]TJ 0 -1.2 TD [(shown )-71(in )-71(Figur)]TJ 0.3208 Tc 6.866 0 Td (e6)Tj 0 Tc 1.3 0 Td [(.4. )-321(These)-321(\336elds )-71(ar)]TJ 0.3208 Tc 8.076 0 Td (ec)Tj 0 Tc 1.244 0 Td [(ontained )-71(in )-71(a)]TJ /TT0 1 Tf 6.252 0 Td (group)Tj /T1_1 1 Tf 3.321 0 Td [(str)8(uctur)]TJ 0.3208 Tc 3.49 0 Td (et)Tj 0 Tc 1.126 0 Td [(hat )-71(is )-71(de\336ned )-71(in)]TJ /TT0 1 Tf -31.674 -1.2 Td ()Tj /T1_1 1 Tf (.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1316.25 3587.25 cm 0 0 m 3859 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 257.1897 350.6569 Tm (struct group)Tj /T1_1 1 Tf 13.352 0 Td [(Fr)18(eeBSD )-1416(Linux)-1382(Mac OS X)-1198(Solaris)]TJ -11.589 -1.25 Td (member )Tj 12.864 0 Td [(8.0)-3243(3.2.0 )-2368(10.6.8)-3118(10)]TJ -25.655 0.625 Td (Description)Tj 19.926 0 Td (POSIX.1)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1316.25 3367.25 cm 0 0 m 3859 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1316.25 3347.25 cm 0 0 m 3859 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 135.6035 326.6416 Tm [(gr)18(oup name)]TJ /TT0 1 Tf 14 0 Td [(char )-600(*gr_name)]TJ /T1_1 1 Tf 3.9125 Tc 11.632 0 Td [(\245\245 )3813(\245 )3813(\245 )3813(\245)]TJ 0 Tc -25.631 -1.25 Td [(encrypted passwor)18(d)]TJ /TT0 1 Tf 14 0 Td [(char )-600(*gr_passwd)]TJ /T1_1 1 Tf 4.262 Tc 16.15 0 Td (\245\245\245\245)Tj 0 Tc -30.15 -1.25 Td [(numerical gr)18(oup ID)]TJ /TT0 1 Tf 14 0 Td [(int )-1800(gr_gid)]TJ /T1_1 1 Tf 3.9125 Tc 11.632 0 Td [(\245\245 )3813(\245 )3813(\245 )3813(\245)]TJ /TT0 1 Tf 0 Tc -11.632 -1.25 Td (char **gr_mem)Tj /T1_1 1 Tf 3.9125 Tc 11.632 0 Td [(\245\245 )3813(\245 )3813(\245 )3813(\245)]TJ 0 Tc -25.631 0 Td (array of pointers to individual)Tj 2.25 -1.25 Td (user names)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1316.25 2827.25 cm 0 0 m 3859 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3598.25 2827.25 cm 0 0 m 0 760 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3264.25 2827.25 cm 0 0 m 0 760 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2456.25 2827.25 cm 0 0 m 0 760 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5175.25 2827.25 cm 0 0 m 0 760 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1316.25 2827.25 cm 0 0 m 0 760 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 257.1428 265.8402 Tm (Figure 6.4)Tj /T1_1 1 Tf 5.195 0 Td (Fields in)Tj /TT0 1 Tf 4.025 0 Td (/etc/group)Tj /T1_1 1 Tf 6.25 0 Td (\336le)Tj 9.997 0 0 9.997 147.5559 245.4464 Tm [(The )-5(\336eld)]TJ /TT0 1 Tf 4.17 0 Td (gr_mem)Tj /T1_1 1 Tf 3.855 0 Td [(is )-5(an )-5(array )-5(of )-5(pointers )-5(to )-5(the )-5(user )-5(names )-5(that )-5(belong )-5(to )-5(this )-5(gr)21(oup.)]TJ -9.824 -1.2 Td [(This array is terminated by a null pointer)74(.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-306(c)]TJ 0 Tc 2.203 0 Td [(an )-121(look )-121(up )-121(either )-121(a )-121(gr)18(oup )-121(name )-121(or )-121(a )-121(numerical )-121(gr)13(oup )-121(ID )-121(with )-121(the )-121(following)]TJ -4.003 -1.2 Td (two functions, which ar)Tj 0.25 Tc 10.447 0 Td (ed)Tj 0 Tc 1.34 0 Td (e\336ned by POSIX.1.)Tj /TT0 1 Tf 8.9973 0 0 8.9973 147.5561 192.7622 Tm (#include )Tj 0 -1.783 TD (struct group *getgrgid\(gid_t)Tj /T1_2 1 Tf 17.4 0 Td (gid)Tj /TT0 1 Tf (\);)Tj -17.4 -1.783 Td (struct group *getgrnam\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 21.18 -1.783 Td [(Both r)18(eturn: pointer if OK,)]TJ /TT0 1 Tf 11.933 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1401.25 cm 0 0 m 0 617 l 3900 617 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46854 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(6.3)]TJ 34.991 0 Td [(Shadow )-250(Passwor)18(ds)]TJ /T1_1 1 Tf 10.842 0 Td (181)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(The )-109(call )-109(to)]TJ /TT0 1 Tf 5.15 0 Td (setpwent)Tj /T1_0 1 Tf 5.159 0 Td [(at )-109(the )-109(beginning )-109(of )-109(this )-109(function )-109(is )-109(self-defense: )-109(we )-109(ensur)]TJ 0.3593 Tc 26.118 0 Td (et)Tj 0 Tc 1.164 0 Td (hat)Tj -37.592 -1.2 Td [(the )-48(\336les )-48(ar)]TJ 0.2976 Tc 4.658 0 Td (er)Tj 0 Tc 1.154 0 Td [(ewound, )-48(in )-48(case )-48(the )-48(caller )-48(has )-48(alr)20(eady )-48(opened )-48(them )-48(by )-48(calling)]TJ /TT0 1 Tf 28.138 0 Td (getpwent)Tj /T1_0 1 Tf (.)Tj -0.092 Tc -33.95 -1.2 Td [(We )-216(c)]TJ 0 Tc 2.113 0 Td (all)Tj /TT0 1 Tf 1.364 0 Td (endpwent)Tj /T1_0 1 Tf 5.082 0 Td [(when )-32(we\325r)]TJ 0.2817 Tc 4.727 0 Td (ed)Tj 0 Tc 1.372 0 Td [(one, )-32(because )-32(neither)]TJ /TT0 1 Tf 9.318 0 Td (getpwnam)Tj /T1_0 1 Tf 5.082 0 Td (nor)Tj /TT0 1 Tf 1.805 0 Td (getpwuid)Tj /T1_0 1 Tf 5.082 0 Td (should)Tj -35.943 -1.2 Td (leave any of the \336les open.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 6330.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9986 0 0 11.9986 93.5888 600.5279 Tm [(6.3 )-1332(Shado)]TJ 0.556 Tc 6.041 0 Td (wP)Tj 0 Tc 1.971 0 Td [(ass)15(w)20(or)20(ds)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5848 582.5301 Tm [(The )-82(encrypted )-82(passwor)18(d)-332(is)-332(a)-332(copy )-82(of )-82(the )-82(user)-74(\325s )-82(passwor)]TJ 0.3319 Tc 25.463 0 Td (dt)Tj 0 Tc 1.269 0 Td [(hat )-82(has )-82(been )-82(put )-82(thr)18(ough )-82(a)]TJ -26.731 -1.2 Td [(one-way )-110(encryption )-110(algorithm.)-610(Because )-110(this )-110(algorithm )-110(is )-110(one-way)108(,)-360(we)-360(c)-1(an\325t )-110(guess )-110(the)]TJ 0 -1.2 Td (original passwor)Tj 0.25 Tc 7.408 0 Td (df)Tj -0.018 Tc 1.194 0 Td (ro)Tj 0.25 Tc 0.923 0 Td (mt)Tj 0 Tc 1.459 0 Td (he encrypted version.)Tj -9.184 -1.2 Td (Historically)Tj 0.3455 Tc 5.076 0 Td (,t)Tj 0 Tc 0.921 0 Td [(he )-95(algorithm )-95(used )-95(always )-95(generated )-95(13 )-95(printable )-95(characters )-95(fr)18(om )-95(the)]TJ -7.798 -1.2 Td [(64-character )-271(set)]TJ /TT0 1 Tf 7.669 0 Td ([a-zA-Z0-9./])Tj /T1_0 1 Tf 8.321 0 Td [(\(see )-271(Morris )-271(and )-271(Thompson)]TJ 13.266 0.04 Td ([)Tj 0.333 -0.04 Td (1979)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td [(\). )-521(Some)-521(newer)]TJ -31.923 -1.2 Td [(systems )-416(use )-416(alternative )-416(algorithms, )-416(such )-416(as )-416(MD5 )-416(or )-416(SHA)]TJ 28.402 0.09 Td (-)Tj 0.333 -0.09 Td [(1, )-416(to )-416(generate )-416(longer)]TJ -28.735 -1.2 Td [(encrypted )-443(passwor)]TJ 0.693 Tc 8.872 0 Td (ds)Tj 0 Tc 1.728 0 Td [(trings. )-693(\(The)-693(mor)]TJ 0.693 Tc 8.273 0 Td (ec)Tj 0 Tc 1.616 0 Td [(haracters )-443(used )-443(to )-443(stor)]TJ 0.693 Tc 10.786 0 Td (et)Tj 0 Tc 1.498 0 Td [(he )-443(encrypted)]TJ -32.773 -1.2 Td [(passwor)18(d, )-237(the )-237(mor)]TJ 0.4871 Tc 8.734 0 Td (ec)Tj 0 Tc 1.41 0 Td [(ombinations )-237(ther)]TJ 0.4871 Tc 7.775 0 Td (ea)Tj -0.018 Tc 1.466 0 Td (re)Tj 0.4871 Tc 0.856 0 Td (,a)Tj 0 Tc 1.237 0 Td [(nd )-237(the )-237(har)18(der )-237(it )-237(will )-237(be )-237(to )-237(guess )-237(the)]TJ -21.479 -1.2 Td [(passwor)18(d)-400(by)-400(t)-1(rying )-150(all )-150(possible )-150(variations.\))-650(When )-150(we )-150(place )-150(a )-150(single )-150(character )-150(in )-150(the)]TJ 0 -1.2 TD [(encrypted )-45(passwor)]TJ 0.2955 Tc 8.474 0 Td (d\336)Tj 0 Tc 1.511 0 Td [(eld, )-45(we )-45(ensur)]TJ 0.2955 Tc 6 0 Td (et)Tj 0 Tc 1.101 0 Td [(hat )-45(an )-45(encrypted )-45(passwor)]TJ 0.2955 Tc 11.556 0 Td (dw)Tj 0 Tc 1.741 0 Td [(ill )-45(never )-45(match )-45(this)]TJ -30.382 -1.2 Td (value.)Tj 1.8 -1.2 Td [(Given )-237(an )-237(encrypted )-237(passwor)18(d, )-237(we )-237(can\325t )-237(apply )-237(an )-237(algorithm )-237(that )-237(inverts )-237(it )-237(and)]TJ -0.018 Tc -1.8 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-310(the )-310(plaintext )-310(passwor)18(d. )-560(\(The)-560(plaintext )-310(passwor)18(d)-560(is)-560(what )-310(we )-310(enter )-310(at )-310(the)]TJ /TT0 1 Tf -0.856 -1.2 Td (Password:)Tj /T1_0 1 Tf 5.863 0 Td [(pr)18(ompt.\) )-463(But)-463(we )-213(could )-213(guess )-213(a )-213(passwor)18(d, )-213(r)9(un )-213(it )-213(thr)18(ough )-213(the )-213(one-way)]TJ -5.863 -1.2 Td [(algorithm, )-78(and )-78(compar)]TJ 0.3284 Tc 10.321 0 Td (et)Tj 0 Tc 1.133 0 Td [(he )-78(r)18(esult )-78(to )-78(the )-78(encrypted )-78(passwor)17(d. )-328(If)-329(user )-78(passwor)18(ds )-78(wer)17(e)]TJ -11.454 -1.2 Td [(randomly )-467(chosen, )-467(this )-467(br)7(ute-for)18(ce )-467(appr)18(oach )-467(wouldn\325t )-467(be )-467(too )-467(successful.)-968(Users,)]TJ -0 -1.2 Td (however)Tj 0.3506 Tc 3.806 0 Td (,t)Tj 0 Tc 0.927 0 Td [(end )-101(to )-101(choose )-101(nonrandom )-101(passwor)20(ds, )-100(such )-100(as )-100(spouse\325s )-100(name, )-100(str)18(eet )-100(names,)]TJ -4.733 -1.2 Td [(or )-68(pet )-68(names.)]TJ 0.3176 Tc 6.668 0 Td (Ac)Tj 0 Tc 1.54 0 Td [(ommon )-68(experiment )-68(is )-68(for )-68(someone )-68(to )-68(obtain )-68(a )-68(copy )-68(of )-68(the )-68(passwor)22(d)]TJ -8.207 -1.2 Td [(\336le )-245(and )-245(try )-245(guessing )-245(the )-245(passwor)20(ds. )-495(\(Chapter)-494(4)-495(of)-495(G)1(ar\336nkel )-245(et )-245(al.)]TJ 32.144 0.04 Td ([)Tj 0.333 -0.04 Td (2003)Tj 2 0.04 Td (])Tj 0.828 -0.04 Td (contains)Tj -35.305 -1.2 Td [(additional )-44(details )-44(and )-44(history )-44(on )-44(passwor)16(ds )-45(and )-45(the )-45(passwor)]TJ 0.2946 Tc 27.295 0 Td (de)Tj 0 Tc 1.385 0 Td [(ncryption )-45(scheme )-45(used)]TJ -28.68 -1.2 Td (on UNIX systems.\))Tj -0.092 Tc 1.8 -1.2 Td [(To )-345(m)]TJ 0 Tc 2.361 0 Td [(ake )-161(it )-161(mor)]TJ 0.4113 Tc 4.781 0 Td (ed)Tj 0 Tc 1.501 0 Td [(if)18(\336cult )-161(to )-161(obtain )-161(the )-161(raw )-161(materials )-161(\(the )-161(encrypted )-161(passwor)16(ds\),)]TJ -10.443 -1.2 Td [(systems )-251(now )-251(stor)]TJ 0.5014 Tc 8.154 0 Td (et)Tj 0 Tc 1.306 0 Td [(he )-251(encrypted )-251(passwor)17(d)-501(in)-501(a)-1(nother )-251(\336le, )-251(often )-251(called )-251(the)]TJ /T1_2 1 Tf 26.541 0 Td (shadow)Tj -36.001 -1.2 Td [(password )-275(\336le)]TJ /T1_0 1 Tf 0.7751 Tc (.M)Tj 0 Tc 7.468 0 Td (inimally)Tj 0.5251 Tc 3.574 0 Td (,t)Tj 0 Tc 1.101 0 Td [(his )-275(\336le )-275(has )-275(to )-275(contain )-275(the )-275(user )-275(name )-275(and )-275(the )-275(encrypted)]TJ -12.143 -1.2 Td [(passwor)18(d. )-250(Other)-250(information r)18(elating to the passwor)18(d)-250(is)-250(also stor)18(ed her)]TJ 0.25 Tc 31.815 0 Td (e\()Tj 0 Tc 1.062 0 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e6)Tj 0 Tc 1.229 0 Td (.3\).)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1927.25 2758.25 cm 0 0 m 2638 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 378.0319 267.7518 Tm (struct spwd)Tj /T1_0 1 Tf 1.464 -1.25 Td (member)Tj -17.478 0.625 Td (Description)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1927.25 2538.25 cm 0 0 m 2638 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1927.25 2518.25 cm 0 0 m 2638 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 196.6528 243.7415 Tm (user login name)Tj /TT0 1 Tf 19.975 0 Td (char *sp_namp)Tj /T1_0 1 Tf -19.975 -1.25 Td [(encrypted passwor)18(d)]TJ /TT0 1 Tf 19.975 0 Td (char *sp_pwdp)Tj /T1_0 1 Tf -19.975 -1.25 Td (days since Epoch of last passwor)Tj 0.25 Tc 14.471 0 Td (dc)Tj 0 Tc 1.305 0 Td (hange)Tj /TT0 1 Tf 4.199 0 Td [(int )-1200(sp_lstchg)]TJ /T1_0 1 Tf -19.975 -1.25 Td (days until change allowed)Tj /TT0 1 Tf 19.975 0 Td [(int )-1200(sp_min)]TJ /T1_0 1 Tf -19.975 -1.25 Td (days befor)Tj 0.25 Tc 4.629 0 Td (ec)Tj 0 Tc 1.173 0 Td [(hange r)18(equir)18(ed)]TJ /TT0 1 Tf 14.173 0 Td [(int )-1200(sp_max)]TJ /T1_0 1 Tf -19.975 -1.25 Td (days warning for expiration)Tj /TT0 1 Tf 19.975 0 Td [(int )-1200(sp_warn)]TJ /T1_0 1 Tf -19.975 -1.25 Td (days befor)Tj 0.25 Tc 4.629 0 Td (ea)Tj 0 Tc 1.229 0 Td (ccount inactive)Tj /TT0 1 Tf 14.117 0 Td [(int )-1200(sp_inact)]TJ /T1_0 1 Tf -19.975 -1.25 Td [(days since Epoch when account expir)18(es)]TJ /TT0 1 Tf 19.975 0 Td [(int )-1200(sp_expire)]TJ /T1_0 1 Tf -0.018 Tc -19.975 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (served)Tj /TT0 1 Tf 19.119 0 Td (unsigned int sp_flag)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1927.25 1598.25 cm 0 0 m 2638 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3505.25 1598.25 cm 0 0 m 0 1160 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4565.25 1598.25 cm 0 0 m 0 1160 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1927.25 1598.25 cm 0 0 m 0 1160 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 254.7436 141.7575 Tm (Figure 6.3)Tj /T1_0 1 Tf 5.195 0 Td (Fields in)Tj /TT0 1 Tf 4.025 0 Td (/etc/shadow)Tj /T1_0 1 Tf 6.85 0 Td (\336le)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46855 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (6)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(System )-280(Da)-5(ta )-280(Files )-280(and)]TJ 0 -1.667 TD [(Inf)20(or )265(ma)-5(tion)]TJ /TT0 1 Tf 12 0 0 12 93.6001 410.3998 Tm [(6.1 )-1332(Intr)20(oduction)]TJ /T1_2 1 Tf 0.3857 Tc 10 0 0 10 129.6001 386.3998 Tm (AU)Tj 0 Tc 1.942 0 Td [(NIX )-136(system )-136(r)19(equir)18(es )-136(numer)18(ous )-136(data )-136(\336les )-136(for )-136(normal )-136(operation: )-136(the )-136(passwor)]TJ 0.3856 Tc 34.687 0 Td (d\336)Tj 0 Tc 1.602 0 Td (le)Tj /TT1 1 Tf -38.23 -1.2 Td (/etc/passwd)Tj /T1_2 1 Tf 6.869 0 Td [(and )-19(the )-19(gr)18(oup )-19(\336le)]TJ /TT1 1 Tf 8.214 0 Td (/etc/group)Tj /T1_2 1 Tf 6.269 0 Td (ar)Tj 0.2692 Tc 0.877 0 Td (et)Tj 0 Tc 1.074 0 Td [(wo )-19(\336les )-19(that )-19(ar)]TJ 0.2692 Tc 6.598 0 Td (ef)Tj -0.018 Tc 1.081 0 Td (re)Tj 0 Tc 0.856 0 Td [(quently )-19(used )-19(by)]TJ -31.839 -1.2 Td [(various )-36(pr)18(ograms. )-286(For)-285(example, )-36(the )-36(passwor)]TJ 0.2857 Tc 20.123 0 Td (d\336)Tj 0 Tc 1.502 0 Td [(le )-36(is )-36(used )-36(every )-36(time )-36(a )-36(user )-36(logs )-36(in )-36(to )-36(a)]TJ -21.625 -1.2 Td (UNIX system and every time someone executes an)Tj /TT1 1 Tf 22.622 0 Td [(ls )267(-l)]TJ /T1_2 1 Tf 2.983 0 Td (command.)Tj -23.805 -1.2 Td (Historically)Tj 0.4806 Tc 5.076 0 Td (,t)Tj 0 Tc 1.057 0 Td [(hese )-231(data )-231(\336les )-231(have )-231(been )-231(ASCII )-231(text )-231(\336les )-231(and )-231(wer)]TJ 0.4806 Tc 23.759 0 Td (er)Tj 0 Tc 1.337 0 Td [(ead )-231(with )-231(the)]TJ -33.029 -1.2 Td (standar)Tj 0.3776 Tc 3.32 0 Td (dI)Tj 0 Tc 1.326 0 Td [(/O )-128(library)]TJ 0.6276 Tc 4.64 0 Td (.B)Tj 0 Tc 1.489 0 Td [(ut )-128(for )-128(lar)18(ger )-128(systems, )-128(a )-128(sequential )-128(scan )-128(thr)21(ough )-127(the )-127(passwor)17(d)]TJ -10.774 -1.2 Td [(\336le )-104(becomes )-104(time )-104(consuming.)]TJ -0.092 Tc 13.989 0 Td [(We )-288(w)]TJ 0 Tc 2.575 0 Td [(ant )-104(to )-104(be )-104(able )-104(to )-104(stor)]TJ 0.3541 Tc 9.451 0 Td (et)Tj 0 Tc 1.159 0 Td [(hese )-104(data )-104(\336les )-104(in )-104(a )-104(format)]TJ -27.174 -1.2 Td [(other )-188(than )-188(ASCII )-188(text, )-188(but )-188(still )-188(pr)19(ovide )-188(an )-188(interface )-188(for )-188(an )-188(application )-188(pr)18(ogram )-188(that)]TJ 0 -1.2 TD [(works )-51(with )-51(any )-51(\336le )-51(format.)-551(The )-51(portable )-51(interfaces )-51(to )-51(these )-51(data )-51(\336les )-51(ar)]TJ 0.301 Tc 32.289 0 Td (et)Tj 0 Tc 1.106 0 Td [(he )-51(subject )-51(of)]TJ -33.395 -1.2 Td [(this )-127(chapter)]TJ 0.6266 Tc 5.253 0 Td (.W)Tj 0.3766 Tc 1.785 0 Td (ea)Tj 0 Tc 1.356 0 Td [(lso )-126(cover )-126(the )-126(system )-126(identi\336cation )-126(functions )-126(and )-126(the )-126(time )-126(and )-126(date)]TJ -8.393 -1.2 Td (functions.)Tj /TT0 1 Tf 12 0 0 12 93.6004 224.3998 Tm [(6.2 )-1332(P)30(ass)]TJ -0.02 Tc 5.29 0 Td [(wo)-20(rd )-318(F)]TJ 0 Tc 3.516 0 Td (ile)Tj /T1_2 1 Tf 10 0 0 10 129.6003 200.3998 Tm [(The )-164(UNIX )-164(System\325s )-164(passwor)]TJ 0.4141 Tc 13.13 0 Td (d\336)Tj 0 Tc 1.63 0 Td [(le, )-164(called )-164(the )-164(user )-164(database )-164(by )-164(POSIX.1, )-164(contains )-164(the)]TJ -14.76 -1.2 Td [(\336elds )-182(shown )-182(in )-182(Figur)]TJ 0.4316 Tc 9.929 0 Td (e6)Tj 0 Tc 1.411 0 Td [(.1. )-432(These)-431(\336elds )-182(ar)]TJ 0.4316 Tc 8.409 0 Td (ec)Tj 0 Tc 1.355 0 Td [(ontained )-182(in )-182(a)]TJ /TT1 1 Tf 6.585 0 Td (passwd)Tj /T1_2 1 Tf 4.031 0 Td [(str)8(uctur)]TJ 0.4315 Tc 3.49 0 Td (et)Tj 0 Tc 1.236 0 Td [(hat )-181(is)]TJ -36.445 -1.2 Td (de\336ned in)Tj /TT1 1 Tf 4.74 0 Td ()Tj /T1_2 1 Tf (.)Tj 8 0 0 8 183.6008 156.3998 Tm [(Note )-126(that )-126(POSIX.1 )-126(speci\336es )-126(only )-126(5 )-126(of )-126(the )-126(10 )-126(\336elds )-126(in )-126(the)]TJ /TT1 1 Tf 26.261 0 Td (passwd)Tj /T1_2 1 Tf 3.977 0 Td [(str)8(uctur)18(e. )-376(Most)-377(platforms)]TJ -30.237 -1.25 Td [(support at least 7 of the \336elds.)-500(The BSD-derived platforms support all 10.)]TJ /T1_3 1 Tf 9 0 0 9 506.101 113.9998 Tm (177)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46856 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Chapter )-250(5)]TJ 39.788 0 Td [(Exer)18(cises)]TJ /T1_1 1 Tf 6.045 0 Td (175)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Section )-152(7.8\).)-652(As )-152(with )-152(the)]TJ /T1_2 1 Tf 11.911 0 Td (s\336o)Tj /T1_0 1 Tf 1.764 0 Td [(package, )-152(ASI )-152(attempts )-152(to )-152(minimize )-152(the )-152(amount )-152(of )-152(data)]TJ -13.674 -1.2 Td (copying by using pointers.)Tj 1.8 -1.2 Td [(Several )-26(implementations )-26(of )-26(the )-26(standar)]TJ 0.2762 Tc 17.408 0 Td (dI)Tj 0 Tc 1.224 0 Td [(/O )-26(library )-26(ar)]TJ 0.2762 Tc 5.802 0 Td (ea)Tj 0 Tc 1.255 0 Td [(vailable )-26(in )-26(C )-26(libraries )-26(that)]TJ -27.49 -1.2 Td (wer)Tj 0.3432 Tc 1.69 0 Td (ed)Tj 0 Tc 1.433 0 Td [(esigned )-93(for )-93(systems )-93(with )-93(small )-93(memory )-93(footprints, )-93(such )-93(as )-93(embedded )-93(systems.)]TJ -3.123 -1.2 Td [(These )-397(implementations )-397(emphasize )-397(modest )-397(memory )-397(r)18(equir)18(ements )-397(over )-397(portability)111(,)]TJ 0 -1.2 TD [(speed, )-357(or )-357(functionality)]TJ 0.8569 Tc 10.559 0 Td (.T)Tj 0 Tc 1.63 0 Td [(wo )-357(such )-357(implementations )-357(ar)]TJ 0.6069 Tc 13.615 0 Td (et)Tj 0 Tc 1.412 0 Td [(he )-357(uClibc )-357(C )-357(library )-357(\(see)]TJ /TT0 1 Tf -27.215 -1.2 Td (http://www.uclibc.org)Tj /T1_0 1 Tf 13.498 0 Td [(for )-648(mor)]TJ 0.898 Tc 3.978 0 Td (ei)Tj 0 Tc 1.668 0 Td [(nformation\) )-648(and )-648(the )-648(Newlib )-648(C )-648(library)]TJ -19.144 -1.2 Td (\()Tj /TT0 1 Tf (http://sources.redhat.com/newlib)Tj /T1_0 1 Tf (\).)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5948 548.9671 Tm [(5.16 )-776(Summar)-10(y)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5926 527.3684 Tm [(The )-12(standar)]TJ 0.262 Tc 5.256 0 Td (dI)Tj 0 Tc 1.21 0 Td [(/O )-12(library )-12(is )-12(used )-12(by )-12(most )-12(UNIX )-12(applications.)-512(In )-12(this )-12(chapter)74(,)-262(we)-262(looked)]TJ -6.466 -1.2 Td [(at )-133(many )-133(of )-133(the )-133(functions )-133(pr)18(ovided )-133(by )-133(this )-133(library)111(,)-383(as)-383(well )-133(as )-133(at )-133(some )-133(implementation)]TJ 0 -1.2 Td [(details )-144(and )-144(ef)18(\336ciency )-144(considerations.)-644(Be )-144(awar)18(e)-394(of)-394(the )-144(buf)18(fering )-144(that )-144(takes )-144(place )-144(with)]TJ -0 -1.2 Td [(this library)111(,)-250(as)-250(this is the ar)18(ea that generates the most pr)18(oblems and confusion.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 129.593 455.3727 Tm [(Ex)10(er)20(cises)]TJ /T1_1 1 Tf 8.9995 0 0 8.9995 129.593 434.3739 Tm (5.1)Tj /T1_0 1 Tf 2.602 0 Td (Implement)Tj /TT0 1 Tf 5.111 0 Td (setbuf)Tj /T1_0 1 Tf 3.85 0 Td (using)Tj /TT0 1 Tf 2.706 0 Td (setvbuf)Tj /T1_0 1 Tf (.)Tj /T1_1 1 Tf -14.269 -1.667 Td (5.2)Tj /T1_0 1 Tf -0.09 Tc 2.602 0 Td (Ty)Tj 0 Tc 1.079 0 Td [(pe )-138(in )-138(the )-138(pr)18(ogram )-138(that )-138(copies )-138(a )-138(\336le )-138(using )-138(line-at-a-time )-138(I/O )-138(\()]TJ /TT0 1 Tf 28.324 0 Td (fgets)Tj /T1_0 1 Tf 3.388 0 Td (and)Tj /TT0 1 Tf 2.081 0 Td (fputs)Tj /T1_0 1 Tf 0.3879 Tc (\)f)Tj -0.018 Tc 4.054 0 Td (ro)Tj 0 Tc 0.923 0 Td (m)Tj -39.848 -1.222 Td (Figur)Tj 0.2622 Tc 2.383 0 Td (e5)Tj 0 Tc 1.241 0 Td [(.5, )-12(but )-12(use )-12(a)]TJ /TT0 1 Tf 5.537 0 Td (MAXLINE)Tj /T1_0 1 Tf 4.462 0 Td [(of )-12(4.)-512(What )-12(happens )-12(if )-12(you )-12(copy )-12(lines )-12(that )-12(exceed )-12(this )-12(length?)]TJ -13.623 -1.222 Td (Explain what is happening.)Tj /T1_1 1 Tf -2.602 -1.667 Td (5.3)Tj /T1_0 1 Tf 2.602 0 Td [(What does a r)18(eturn value of 0 fr)18(om)]TJ /TT0 1 Tf 15.686 0 Td (printf)Tj /T1_0 1 Tf 3.85 0 Td (mean?)Tj /T1_1 1 Tf -22.138 -1.667 Td (5.4)Tj /T1_0 1 Tf 2.602 0 Td [(The )-103(following )-103(code )-103(works )-103(corr)18(ectly )-103(on )-103(some )-103(machines, )-103(but )-103(not )-103(on )-103(others.)-603(What )-103(could )-103(be)]TJ 0 -1.222 TD [(the pr)18(oblem?)]TJ /TT0 1 Tf 2 -1.8 Td [(#include )-1800()]TJ 0 -2.021 TD (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(char )-1800(c;)]TJ 0 -2.021 TD (while \(\(c = getchar\(\)\) != EOF\))Tj 2.4 -1.189 Td (putchar\(c\);)Tj -4.8 -1.189 Td (})Tj /T1_1 1 Tf -4.602 -2.278 Td (5.5)Tj /T1_0 1 Tf 2.602 0 Td (How would you use the)Tj /TT0 1 Tf 10.945 0 Td (fsync)Tj /T1_0 1 Tf 3.25 0 Td (function \(Section 3.13\) with a standar)Tj 0.25 Tc 16.419 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O str)18(eam?)]TJ /T1_1 1 Tf -34.414 -1.667 Td (5.6)Tj /T1_0 1 Tf 2.602 0 Td [(In )-206(the )-206(pr)18(ograms )-206(in )-206(Figur)18(es )-206(1.7 )-206(and )-206(1.10, )-206(the )-206(pr)18(ompt )-206(that )-206(is )-206(printed )-206(does )-206(not )-206(contain )-206(a)]TJ 0 -1.222 TD (newline, and we don\325t call)Tj /TT0 1 Tf 11.913 0 Td (fflush)Tj /T1_0 1 Tf 0.5 Tc (.W)Tj 0 Tc 5.35 0 Td [(hat causes the pr)18(ompt to be output?)]TJ /T1_1 1 Tf -19.865 -1.667 Td (5.7)Tj /T1_0 1 Tf 2.602 0 Td (BSD)Tj 1.91 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-189(systems )-189(pr)18(ovide )-189(a )-189(function )-189(called)]TJ /TT0 1 Tf 19.011 0 Td (funopen)Tj /T1_0 1 Tf 4.639 0 Td [(that )-189(allows )-189(us )-189(to )-189(inter)18(cept )-189(r)16(ead,)]TJ -25.894 -1.222 Td [(write, )-197(seek, )-197(and )-197(close )-197(calls )-197(on )-197(a )-197(str)20(eam. )-447(Use)-446(this )-197(function )-197(to )-197(implement)]TJ /TT0 1 Tf 34.211 0 Td (fmemopen)Tj /T1_0 1 Tf 5.247 0 Td (for)Tj -39.458 -1.222 Td [(Fr)18(eeBSD and Mac OS X.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46857 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (174)Tj /T1_1 1 Tf 3.5 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Library)]TJ 34.372 0 Td [(Chapter )-250(5)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (The)Tj /TT0 1 Tf 2.338 0 Td (open_memstream)Tj /T1_1 1 Tf 9.064 0 Td [(function )-414(cr)18(eates )-414(a )-414(str)19(eam )-413(that )-413(is )-413(byte )-413(oriented, )-413(and )-413(the)]TJ /TT0 1 Tf -11.401 -1.2 Td (open_wmemstream)Tj /T1_1 1 Tf 9.73 0 Td [(function )-480(cr)18(eates )-480(a )-480(str)18(eam )-480(that )-480(is )-480(wide )-480(oriented )-480(\(r)18(ecall )-480(the)]TJ -9.73 -1.2 Td [(discussion )-255(of )-255(multibyte )-255(characters )-255(in )-255(Section )-255(5.2\).)-757(These )-255(two )-255(functions )-255(dif)18(fer )-255(fr)17(om)]TJ /TT0 1 Tf 0 -1.2 TD (fmemopen)Tj /T1_1 1 Tf 5.05 0 Td (in several ways:)Tj 0.883 Tc -3.25 -1.92 Td (\245T)Tj 0 Tc 2.102 0 Td [(he str)18(eam cr)18(eated is only open for writing.)]TJ 0.883 Tc -2.102 -1.6 Td (\245W)Tj 0.3692 Tc 2.397 0 Td (ec)Tj 0 Tc 1.292 0 Td [(an\325t )-119(specify )-119(our )-119(own )-119(buf)17(fer)]TJ 0.3693 Tc 12.401 0 Td (,b)Tj 0 Tc 1.172 0 Td [(ut )-119(we )-119(can )-119(get )-119(access )-119(to )-119(the )-119(buf)16(fer )176(\325s)-369(addr)18(ess)]TJ -15.774 -1.2 Td [(and size thr)18(ough the)]TJ /T1_2 1 Tf 9.346 0 Td (bufp)Tj /T1_1 1 Tf 2.047 0 Td (and)Tj /T1_2 1 Tf 1.943 0 Td (sizep)Tj /T1_1 1 Tf 2.25 0 Td [(ar)18(guments, r)18(espectively)111(.)]TJ 0.883 Tc -17.075 -1.6 Td (\245W)Tj 0.25 Tc 2.397 0 Td (en)Tj 0 Tc 1.311 0 Td [(eed to fr)18(ee the buf)18(fer ourselves after closing the str)18(eam.)]TJ 0.883 Tc -3.708 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he buf)18(fer will gr)18(ow as we add bytes to the str)18(eam.)]TJ -0.092 Tc -2.102 -1.92 Td [(We )-190(m)]TJ 0 Tc 2.526 0 Td [(ust )-6(follow )-6(some )-6(r)8(ules, )-6(however)]TJ 0.2563 Tc 13.791 0 Td (,r)Tj 0 Tc 0.883 0 Td [(egar)18(ding )-6(the )-6(use )-6(of )-6(the )-6(buf)18(fer )-6(addr)16(ess )-6(and )-6(its)]TJ -19.001 -1.2 Td [(length. )-425(First,)-426(the )-175(buf)18(fer )-175(addr)18(ess )-175(and )-175(length )-175(ar)]TJ 0.4254 Tc 21.413 0 Td (eo)Tj 0 Tc 1.45 0 Td [(nly )-175(valid )-175(after )-175(a )-175(call )-175(to)]TJ /TT0 1 Tf 11.17 0 Td (fclose)Tj /T1_1 1 Tf 4.025 0 Td (or)Tj /TT0 1 Tf -38.059 -1.2 Td (fflush)Tj /T1_1 1 Tf 0.55 Tc (.S)Tj 0 Tc 4.925 0 Td [(econd, )-50(these )-50(values )-50(ar)]TJ 0.3 Tc 9.841 0 Td (eo)Tj 0 Tc 1.325 0 Td [(nly )-50(valid )-50(until )-50(the )-50(next )-50(write )-50(to )-50(the )-50(str)18(eam )-50(or )-50(a )-50(call)]TJ -16.091 -1.2 Td (to)Tj /TT0 1 Tf 1.149 0 Td (fclose)Tj /T1_1 1 Tf 0.5272 Tc (.B)Tj 0 Tc 4.988 0 Td [(ecause )-27(the )-27(buf)18(fer )-27(can )-27(gr)17(ow)92(,)-277(it)-277(m)-1(ay )-27(need )-27(to )-27(be )-27(r)17(eallocated. )-277(If)-278(this )-27(happens,)]TJ -6.137 -1.2 Td [(then )-125(we )-125(will )-125(\336nd )-125(that )-125(the )-125(value )-125(of )-125(the )-125(buf)17(fer )176(\325s)-375(memory )-125(addr)18(ess )-125(will )-125(change )-125(the )-125(next)]TJ -0 -1.2 Td (time we call)Tj /TT0 1 Tf 5.568 0 Td (fclose)Tj /T1_1 1 Tf 3.85 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (fflush)Tj /T1_1 1 Tf (.)Tj -8.809 -1.2 Td [(Memory )-151(str)18(eams )-151(ar)]TJ 0.4007 Tc 8.896 0 Td (ew)Tj 0 Tc 1.714 0 Td [(ell )-151(suited )-151(for )-151(cr)18(eating )-151(strings, )-151(because )-151(they )-151(pr)20(event )-151(buf)18(fer)]TJ -12.41 -1.2 Td [(over\337ows. )-304(They)-305(can )-54(also )-54(pr)18(ovide )-54(a )-54(performance )-54(boost )-54(for )-54(functions )-54(that )-54(take )-54(standar)14(d)]TJ 0 -1.2 Td [(I/O )-123(str)18(eam )-123(ar)18(guments )-123(used )-123(for )-123(temporary )-123(\336les, )-123(because )-123(memory )-123(str)18(eams )-123(access )-123(only)]TJ T* [(main memory instead of a \336le stor)18(ed on disk.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5933 390.5766 Tm [(5.15 )-776(Alternatives)-556(to )-278(Standar)]TJ 0.556 Tc 14.483 0 Td (dI)Tj 0 Tc 1.445 0 Td (/O)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5908 368.9779 Tm [(The )-530(standar)]TJ 0.7805 Tc 5.774 0 Td (dI)Tj 0 Tc 1.729 0 Td [(/O )-530(library )-530(is )-530(not )-530(perfect.)-1030(Korn )-530(and )-530(V)108(o)]TJ 21.441 0.04 Td ([)Tj 0.333 -0.04 Td (1991)Tj 2 0.04 Td (])Tj 1.113 -0.04 Td [(list )-530(numer)18(ous)]TJ -32.391 -1.2 Td [(defects )167(\321 )167(some)-251(in the basic design, but most in the various implementations.)]TJ 1.8 -1.2 Td [(One )-39(inef)18(\336ciency )-39(inher)18(ent )-39(in )-39(the )-39(standar)]TJ 0.2886 Tc 17.636 0 Td (dI)Tj 0 Tc 1.237 0 Td [(/O )-39(library )-39(is )-39(the )-39(amount )-39(of )-39(data )-39(copying)]TJ -20.673 -1.2 Td [(that )-36(takes )-36(place.)-537(When )-36(we )-36(use )-36(the )-36(line-at-a-time )-36(functions,)]TJ /TT0 1 Tf 26.588 0 Td (fgets)Tj /T1_1 1 Tf 3.286 0 Td (and)Tj /TT0 1 Tf 1.979 0 Td (fputs)Tj /T1_1 1 Tf 0.2863 Tc (,t)Tj 0 Tc 3.862 0 Td [(he )-36(data)]TJ -35.716 -1.2 Td [(is )-25(usually )-25(copied )-25(twice: )-25(once )-25(between )-25(the )-25(kernel )-25(and )-25(the )-25(standar)]TJ 0.2753 Tc 28.684 0 Td (dI)Tj 0 Tc 1.223 0 Td [(/O )-25(buf)18(fer )-25(\(when )-25(the)]TJ -29.907 -1.2 Td [(corr)18(esponding)]TJ /TT0 1 Tf 6.831 0 Td (read)Tj /T1_1 1 Tf 2.797 0 Td (or)Tj /TT0 1 Tf 1.338 0 Td (write)Tj /T1_1 1 Tf 3.397 0 Td [(is )-147(issued\) )-147(and )-147(again )-147(between )-147(the )-147(standar)]TJ 0.3971 Tc 18.824 0 Td (dI)Tj 0 Tc 1.345 0 Td [(/O )-147(buf)18(fer)]TJ -34.533 -1.2 Td [(and )-108(our )-108(line )-108(buf)17(fer)]TJ 0.6084 Tc 8.559 0 Td (.T)Tj 0 Tc 1.471 0 Td [(he )-108(Fast )-108(I/O )-108(library )-108([)]TJ /TT0 1 Tf 9.344 0 Td (fio)Tj /T1_1 1 Tf [(\(3\) )-108(in )-108(A)74(T&T )-108(1990a] )-108(gets )-108(ar)18(ound )-108(this )-108(by)]TJ -19.375 -1.2 Td [(having )-70(the )-70(function )-70(that )-70(r)18(eads )-70(a )-70(line )-70(r)18(eturn )-70(a )-70(pointer )-70(to )-70(the )-70(line )-70(instead )-70(of )-70(copying )-70(the)]TJ T* [(line )-189(into )-189(another )-189(buf)17(fer)]TJ 0.6895 Tc 10.721 0 Td (.H)Tj 0 Tc 1.771 0 Td (ume)Tj 2.405 0.04 Td ([)Tj 0.333 -0.04 Td (1988)Tj 2 0.04 Td (])Tj -0.018 Tc 0.773 -0.04 Td (re)Tj 0 Tc 0.856 0 Td [(ports )-190(a )-190(thr)18(eefold )-190(incr)18(ease )-190(in )-190(the )-190(speed )-190(of )-190(a)]TJ -18.858 -1.2 Td (version of the)Tj /TT0 1 Tf 6.298 0 Td (grep)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (utility simply by making this change.)Tj -8.314 -1.2 Td [(Korn )-62(and )-62(V)111(o)]TJ 6.035 0.04 Td ([)Tj 0.333 -0.04 Td (1991)Tj 2 0.04 Td (])Tj 0.645 -0.04 Td [(describe )-62(another )-62(r)18(eplacement )-62(for )-62(the )-62(standar)]TJ 0.3121 Tc 20.068 0 Td (dI)Tj 0 Tc 1.26 0 Td [(/O )-62(library:)]TJ /T1_2 1 Tf 5.247 0 Td (s\336o)Tj /T1_1 1 Tf (.)Tj -37.389 -1.2 Td [(This )-49(package )-49(is )-49(similar )-49(in )-49(speed )-49(to )-49(the)]TJ /T1_2 1 Tf 17.452 0 Td (\336o)Tj /T1_1 1 Tf 1.271 0 Td [(library )-49(and )-49(normally )-49(faster )-49(than )-49(the )-49(standar)19(d)]TJ -18.723 -1.2 Td [(I/O )-23(library)]TJ 0.5232 Tc 4.872 0 Td (.T)Tj 0 Tc 1.386 0 Td (he)Tj /T1_2 1 Tf 1.334 0 Td (s\336o)Tj /T1_1 1 Tf 1.634 0 Td [(package )-23(also )-23(pr)18(ovides )-23(some )-23(new )-23(featur)18(es )-23(that )-23(ar)18(en\325t )-23(found )-23(in )-23(most)]TJ -9.227 -1.2 Td [(other )-45(packages: )-45(I/O )-45(str)17(eams )-46(generalized )-46(to )-46(r)19(epr)18(esent )-46(both )-46(\336les )-46(and )-46(r)18(egions )-46(of )-46(memory)113(,)]TJ -0 -1.2 Td [(pr)18(ocessing )-146(modules )-146(that )-146(can )-146(be )-146(written )-146(and )-146(stacked )-146(on )-146(an )-146(I/O )-146(str)18(eam )-146(to )-146(change )-146(the)]TJ T* [(operation of a str)18(eam, and better exception handling.)]TJ 1.8 -1.2 Td (Krieger)Tj 0.3857 Tc 3.247 0 Td (,S)Tj 0 Tc 1.161 0 Td [(tumm, )-136(and )-136(Unrau)]TJ 8.653 0.04 Td ([)Tj 0.333 -0.04 Td (1992)Tj 2 0.04 Td (])Tj 0.719 -0.04 Td [(describe )-136(another )-136(alternative )-136(that )-136(uses )-136(mapped)]TJ -17.913 -1.2 Td [(\336les )167(\321 )167(the)]TJ /TT0 1 Tf 4.716 0 Td (mmap)Tj /T1_1 1 Tf 2.764 0 Td [(function )-114(that )-114(we )-114(describe )-114(in )-114(Section )-114(14.8.)-614(This )-114(new )-114(package )-114(is )-114(called)]TJ -7.48 -1.2 Td [(ASI, )-335(the )-335(Alloc )-335(Str)18(eam )-335(Interface.)-835(The )-335(pr)18(ogramming )-335(interface )-335(r)18(esembles )-335(the )-335(UNIX)]TJ T* [(System )-359(memory )-359(allocation )-359(functions )-359(\()]TJ /TT0 1 Tf (malloc)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 22.611 0 Td (realloc)Tj /T1_1 1 Tf 0.609 Tc (,a)Tj 0 Tc 5.559 0 Td (nd)Tj /TT0 1 Tf 1.802 0 Td (free)Tj /T1_1 1 Tf 0.609 Tc (,d)Tj 0 Tc 3.87 0 Td [(escribed )-359(in)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46858 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(5.14)]TJ 36.014 0 Td [(Memory )-250(Str)18(eams)]TJ /T1_1 1 Tf 9.819 0 Td (171)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 670.2598 Tm (trying to create second temp file...)Tj 0 -1.189 TD (Segmentation fault)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 641.5615 Tm [(The )-319(dif)18(fer)18(ence )-319(in )-319(behavior )-319(comes )-319(fr)18(om )-319(the )-319(way )-319(the )-319(two )-319(template )-319(strings )-319(ar)18(e)]TJ -1.8 -1.2 Td [(declar)18(ed. )-334(For)-334(the )-84(\336rst )-84(template, )-84(the )-84(name )-84(is )-84(allocated )-84(on )-84(the )-84(stack, )-84(because )-84(we )-84(use )-84(an)]TJ 0 -1.2 TD [(array )-76(variable.)-576(For )-76(the )-76(second )-76(name, )-76(however)73(,)-326(we)-326(u)-1(se )-76(a )-76(pointer)]TJ 0.5763 Tc 28.867 0 Td (.I)Tj 0.3263 Tc 1.163 0 Td (nt)Tj 0 Tc 1.234 0 Td [(his )-76(case, )-76(only )-76(the)]TJ -31.265 -1.2 Td [(memory )-9(for )-9(the )-9(pointer )-9(itself )-9(r)20(esides )-8(on )-8(the )-8(stack; )-8(the )-8(compiler )-8(arranges )-8(for )-8(the )-8(string )-8(to)]TJ T* [(be )-31(stor)18(ed )-31(in )-31(the )-31(r)18(ead-only )-31(segment )-31(of )-31(the )-31(executable.)-531(When )-31(the)]TJ /TT0 1 Tf 28.616 0 Td (mkstemp)Tj /T1_0 1 Tf 4.481 0 Td [(function )-31(tries)]TJ -33.097 -1.2 Td (to modify the string, a segmentation fault occurs.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5816.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9986 0 0 11.9986 93.5888 545.5345 Tm [(5.14 )-776(Memor)]TJ 0.556 Tc 6.288 0 Td (yS)Tj 0 Tc 1.779 0 Td (treams)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 523.9371 Tm [(As )-71(we\325ve )-71(seen, )-71(the )-71(standar)]TJ 0.3208 Tc 12.041 0 Td (dI)Tj 0 Tc 1.269 0 Td [(/O )-71(library )-71(buf)18(fers )-71(data )-71(in )-71(memory)112(,)-321(so)-321(operations )-71(such )-71(as)]TJ -13.31 -1.2 Td [(character)18(-at-a-time )-88(I/O )-88(and )-88(line-at-a-time )-88(I/O )-88(ar)]TJ 0.3383 Tc 22.017 0 Td (em)Tj 0 Tc 1.7 0 Td (or)Tj 0.3383 Tc 0.923 0 Td (ee)Tj -0.018 Tc 1.296 0 Td (f\336)Tj 0 Tc 0.92 0 Td [(cient. )-338(W)92(e\325ve )-88(also )-88(seen )-88(that)]TJ -26.857 -1.2 Td [(we )-16(can )-16(pr)18(ovide )-16(our )-16(own )-16(buf)18(fer )-16(for )-16(the )-16(library )-16(to )-16(use )-16(by )-16(calling)]TJ /TT0 1 Tf 28.04 0 Td (setbuf)Tj /T1_0 1 Tf 3.866 0 Td (or)Tj /TT0 1 Tf 1.207 0 Td (setvbuf)Tj /T1_0 1 Tf 0.5165 Tc (.I)Tj 0 Tc 5.304 0 Td (n)Tj -0.111 Tc -38.418 -1.2 Td (Ve)Tj 0 Tc 1.09 0 Td [(rsion )-98(4, )-98(the )-98(Single )-98(UNIX )-98(Speci\336cation )-98(added )-98(support )-98(for)]TJ /T1_2 1 Tf 26.062 0 Td [(memory )-98(str)18(eams)]TJ /T1_0 1 Tf 0.5981 Tc (.T)Tj 0 Tc 8.18 0 Td [(hese )-98(ar)18(e)]TJ -35.332 -1.2 Td (standar)Tj 0.4069 Tc 3.32 0 Td (dI)Tj 0 Tc 1.355 0 Td [(/O )-157(str)18(eams )-157(for )-157(which )-157(ther)]TJ 0.4069 Tc 12.204 0 Td (ea)Tj -0.018 Tc 1.386 0 Td [(re )-193(n)]TJ 0.4069 Tc 1.845 0 Td (ou)Tj 0 Tc 1.556 0 Td [(nderlying )-157(\336les, )-157(although )-157(they )-157(ar)]TJ 0.407 Tc 14.826 0 Td (es)Tj 0 Tc 1.31 0 Td (till)Tj -37.801 -1.2 Td [(accessed )-42(with)]TJ /TT0 1 Tf 6.422 0 Td (FILE)Tj /T1_0 1 Tf 2.692 0 Td [(pointers. )-292(All)-292(I/O )-42(is )-42(done )-42(by )-42(transferring )-42(bytes )-42(to )-42(and )-42(fr)20(om )-42(buf)18(fers)]TJ -9.113 -1.2 Td [(in )-172(main )-172(memory)]TJ 0.672 Tc 7.604 0 Td (.A)Tj 0 Tc 1.7 0 Td [(s)-422(we)-422(shall )-172(see, )-172(even )-172(though )-172(these )-172(str)18(eams )-172(look )-172(like )-172(\336le )-172(str)18(eams,)]TJ -9.304 -1.2 Td [(several featur)18(es make them mor)]TJ 0.25 Tc 14.148 0 Td (es)Tj 0 Tc 1.153 0 Td (uited for manipulating character strings.)Tj -13.501 -1.2 Td [(Thr)18(ee functions ar)]TJ 0.25 Tc 8.038 0 Td (ea)Tj 0 Tc 1.229 0 Td [(vailable to cr)18(eate memory str)18(eams. )-250(The)-250(\336rst is)]TJ /TT0 1 Tf 20.741 0 Td (fmemopen)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5829 411.2506 Tm (#include )Tj 0 -1.664 TD (FILE *fmemopen\(void *restrict)Tj /T1_2 1 Tf 18 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (size)Tj /TT0 1 Tf (,)Tj -15.697 -1.189 Td (const char *restrict)Tj /T1_2 1 Tf 12.6 0 Td (type)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -2.059 -1.664 Td [(Returns: str)18(eam pointer if OK,)]TJ /TT0 1 Tf 13.572 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3661.25 cm 0 0 m 0 542 l 3900 542 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 352.5765 Tm (The)Tj /TT0 1 Tf 1.954 0 Td (fmemopen)Tj /T1_0 1 Tf 5.08 0 Td [(function )-30(allows )-30(the )-30(caller )-30(to )-30(pr)17(ovide )-30(a )-30(buf)18(fer )-30(to )-30(be )-30(used )-30(for )-30(the )-30(memory)]TJ -7.034 -1.2 Td [(str)18(eam: )-138(the)]TJ /T1_2 1 Tf 5.403 0 Td (buf)Tj /T1_0 1 Tf 1.686 0 Td [(ar)18(gument )-139(points )-139(to )-139(the )-139(beginning )-139(of )-139(the )-139(buf)18(fer )-139(and )-139(the)]TJ /T1_2 1 Tf 25.717 0 Td (size)Tj /T1_0 1 Tf 1.889 0 Td [(ar)18(gument)]TJ -34.694 -1.2 Td [(speci\336es )-61(the )-61(size )-61(of )-61(the )-61(buf)18(fer )-61(in )-61(bytes.)-561(If )-61(the)]TJ /T1_2 1 Tf 20.646 0 Td (buf)Tj /T1_0 1 Tf 1.607 0 Td [(ar)18(gument )-60(is )-60(null, )-60(then )-60(the)]TJ /TT0 1 Tf 11.946 0 Td (fmemopen)Tj /T1_0 1 Tf -34.2 -1.2 Td [(function )-94(allocates )-94(a )-94(buf)18(fer )-94(of)]TJ /T1_2 1 Tf 13.287 0 Td (size)Tj /T1_0 1 Tf 1.844 0 Td [(bytes. )-344(In)-345(this )-94(case, )-94(the )-94(buf)17(fer )-94(will )-94(be )-94(fr)18(eed )-94(when )-94(the)]TJ -15.131 -1.2 Td [(str)18(eam is closed.)]TJ 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 2.061 0 Td (type)Tj /T1_0 1 Tf 2.109 0 Td [(ar)18(gument )-137(contr)18(ols )-137(how )-137(the )-137(str)18(eam )-137(can )-137(be )-137(used.)-637(The )-137(possible )-137(values )-137(for)]TJ /T1_2 1 Tf -5.97 -1.2 Td (type)Tj /T1_0 1 Tf 1.972 0 Td (ar)Tj 0.25 Tc 0.877 0 Td (es)Tj 0 Tc 1.153 0 Td (ummarized in Figur)Tj 0.25 Tc 8.901 0 Td (e5)Tj 0 Tc 1.229 0 Td (.14.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1823.25 2630.25 cm 0 0 m 2845 0 l S Q Q BT /T1_2 1 Tf 7.9981 0 0 7.9981 215.7522 254.9788 Tm (type)Tj /T1_0 1 Tf 16.314 0 Td (Description)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1823.25 2510.25 cm 0 0 m 2845 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1823.25 2490.25 cm 0 0 m 2845 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 186.3081 240.9677 Tm (r)Tj /T1_0 1 Tf 1.2 0 Td (or)Tj /TT0 1 Tf 1.541 0 Td (rb)Tj /T1_0 1 Tf 7.841 0 Td [(open for r)18(eading)]TJ /TT0 1 Tf -10.582 -1.25 Td (w)Tj /T1_0 1 Tf 1.2 0 Td (or)Tj /TT0 1 Tf 1.541 0 Td (wb)Tj /T1_0 1 Tf 7.841 0 Td (open for writing)Tj /TT0 1 Tf -10.582 -1.25 Td (a)Tj /T1_0 1 Tf 1.2 0 Td (or)Tj /TT0 1 Tf 1.541 0 Td (ab)Tj /T1_0 1 Tf 7.841 0 Td (append; open for writing at \336rst null byte)Tj /TT0 1 Tf -10.582 -1.25 Td (r+)Tj /T1_0 1 Tf 1.8 0 Td (or)Tj /TT0 1 Tf 1.541 0 Td (r+b)Tj /T1_0 1 Tf 2.4 0 Td (or)Tj /TT0 1 Tf 1.541 0 Td (rb+)Tj /T1_0 1 Tf 3.3 0 Td [(open for r)18(eading and writing)]TJ /TT0 1 Tf -10.582 -1.25 Td (w+)Tj /T1_0 1 Tf 1.8 0 Td (or)Tj /TT0 1 Tf 1.541 0 Td (w+b)Tj /T1_0 1 Tf 2.4 0 Td (or)Tj /TT0 1 Tf 1.541 0 Td (wb+)Tj /T1_0 1 Tf 3.3 0 Td [(tr)8(uncate to 0 length and open for r)18(eading and writing)]TJ /TT0 1 Tf -10.582 -1.25 Td (a+)Tj /T1_0 1 Tf 1.8 0 Td (or)Tj /TT0 1 Tf 1.541 0 Td (a+b)Tj /T1_0 1 Tf 2.4 0 Td (or)Tj /TT0 1 Tf 1.541 0 Td (ab+)Tj /T1_0 1 Tf 3.3 0 Td [(append; open for r)18(eading and writing at \336rst null byte)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1823.25 1870.25 cm 0 0 m 2845 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2650.25 1870.25 cm 0 0 m 0 760 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4668.25 1870.25 cm 0 0 m 0 760 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1823.25 1870.25 cm 0 0 m 0 760 l S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 215.3665 168.9792 Tm (Figure 5.14)Tj /T1_0 1 Tf 5.695 0 Td (The)Tj /T1_2 1 Tf 1.924 0 Td (type)Tj /T1_0 1 Tf 1.972 0 Td [(ar)18(gument for opening a memory str)18(eam)]TJ 9.9964 0 0 9.9964 129.553 146.1874 Tm [(Note )-79(that )-79(these )-79(values )-79(corr)16(espond )-79(to )-79(the )-79(ones )-79(for )-79(\336le-based )-79(standar)]TJ 0.3295 Tc 30.527 0 Td (dI)Tj 0 Tc 1.278 0 Td [(/O )-79(str)18(eams, )-79(but)]TJ -31.804 -1.2 Td (ther)Tj 0.4937 Tc 1.764 0 Td (ea)Tj -0.018 Tc 1.473 0 Td [(re )-280(s)]TJ 0 Tc 1.774 0 Td [(ome )-244(subtle )-244(dif)19(fer)18(ences. )-494(First,)-493(whenever )-244(a )-244(memory )-244(str)19(eam )-244(is )-244(opened )-244(for)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46859 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(5.13)]TJ -0.092 Tc 36.416 0 Td (Te)Tj 0 Tc 1 0 Td [(mporary )-250(Files)]TJ /T1_1 1 Tf 8.417 0 Td (167)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(the )-100(standar)]TJ 0.35 Tc 5.057 0 Td (dI)Tj 0 Tc 1.298 0 Td [(/O )-100(library )-100(used )-100(on )-100(the )-100(four )-100(platforms )-100(described )-100(in )-100(this )-100(book.)-600(Be )-100(awar)18(e)]TJ -6.355 -1.2 Td [(that )-63(implementations )-63(of )-63(the )-63(standar)]TJ 0.313 Tc 16.056 0 Td (dI)Tj 0 Tc 1.261 0 Td [(/O )-63(library )-63(vary)]TJ 0.313 Tc 6.904 0 Td (,a)Tj 0 Tc 1.063 0 Td [(nd )-63(pr)18(ograms )-63(like )-63(this )-63(example)]TJ -25.284 -1.2 Td (ar)Tj 0.25 Tc 0.877 0 Td (en)Tj 0 Tc 1.311 0 Td (onportable, since they embed knowledge speci\336c to particular implemen\ tations.)Tj -0.388 -1.2 Td [(If )-128(we )-128(r)8(un )-128(the )-128(pr)18(ogram )-128(in )-128(Figur)]TJ 0.3777 Tc 14.322 0 Td (e5)Tj 0 Tc 1.357 0 Td (.1)Tj 0.3777 Tc 0.695 0 Td (1t)Tj 0 Tc 1.204 0 Td [(wice, )-128(once )-128(with )-128(the )-128(thr)18(ee )-128(standar)]TJ 0.3777 Tc 15.221 0 Td (ds)Tj 0 Tc 1.413 0 Td [(tr)18(eams)]TJ -36.011 -1.2 Td [(connected )-85(to )-85(the )-85(terminal )-85(and )-85(once )-85(with )-85(the )-85(thr)18(ee )-85(standar)]TJ 0.335 Tc 26.241 0 Td (ds)Tj 0 Tc 1.37 0 Td [(tr)18(eams )-85(r)18(edir)18(ected )-85(to )-85(\336les,)]TJ -27.611 -1.2 Td [(we get the following r)18(esult:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5917 590.1248 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /T1_2 1 Tf 18 0 Td (stdin, stdout, and stderr connected to terminal)Tj /TT0 1 Tf -19.2 -1.189 Td (enter any character)Tj /T1_2 1 Tf 19.2 -1.189 Td (we type a newline)Tj /TT0 1 Tf -19.2 -1.189 Td (one line to standard error)Tj 0 -1.189 TD (stream = stdin, line buffered, buffer size = 1024)Tj 0 -1.189 TD (stream = stdout, line buffered, buffer size = 1024)Tj 0 -1.189 TD (stream = stderr, unbuffered, buffer size = 1)Tj T* (stream = /etc/passwd, fully buffered, buffer size = 4096)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out < /etc/group > std.out 2> std.err)Tj /T1_2 1 Tf 18 -1.189 Td [(run it again with all thr)18(ee str)18(eams r)18(edir)18(ected)]TJ /TT0 1 Tf -19.2 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (cat std.err)Tj /TT0 1 Tf -1.2 -1.189 Td (one line to standard error)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (cat std.out)Tj /TT0 1 Tf -1.2 -1.189 Td (enter any character)Tj 0 -1.189 TD (stream = stdin, fully buffered, buffer size = 4096)Tj 0 -1.189 TD (stream = stdout, fully buffered, buffer size = 4096)Tj T* (stream = stderr, unbuffered, buffer size = 1)Tj T* (stream = /etc/passwd, fully buffered, buffer size = 4096)Tj /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5928 388.0967 Tm [(We )-386(c)]TJ 0 Tc 2.283 0 Td [(an )-202(see )-202(that )-202(the )-202(default )-202(for )-202(this )-202(system )-202(is )-202(to )-202(have )-202(standar)]TJ 0.452 Tc 26.723 0 Td (di)Tj 0 Tc 1.354 0 Td [(nput )-202(and )-202(standar)18(d)]TJ -30.36 -1.2 Td [(output )-210(line )-210(buf)19(fer)18(ed )-210(when )-210(they\325r)]TJ 0.4597 Tc 15.312 0 Td (ec)Tj 0 Tc 1.383 0 Td [(onnected )-210(to )-210(a )-210(terminal.)-710(The )-210(line )-210(buf)18(fer )-210(is )-210(1,024)]TJ -16.694 -1.2 Td [(bytes. )-320(Note)-320(that )-70(this )-70(doesn\325t )-70(r)18(estrict )-70(us )-70(to )-70(1,024)]TJ 21.393 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-70(input )-70(and )-70(output )-70(lines; )-70(that\325s )-70(just)]TJ -21.726 -1.2 Td [(the )-190(size )-190(of )-190(the )-190(buf)20(fer)]TJ 0.6896 Tc 9.709 0 Td (.W)Tj 0 Tc 1.866 0 Td [(riting )-190(a )-190(2,048)]TJ 6.07 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-190(line )-190(to )-190(standar)]TJ 0.4397 Tc 9.068 0 Td (do)Tj 0 Tc 1.597 0 Td [(utput )-190(will )-190(r)19(equir)]TJ 0.4397 Tc 7.732 0 Td (et)Tj 0 Tc 1.245 0 Td (wo)Tj /TT0 1 Tf -37.62 -1.2 Td (write)Tj /T1_0 1 Tf 3.328 0 Td [(system )-78(calls.)-578(When )-78(we )-78(r)19(edir)18(ect )-78(these )-78(two )-78(str)18(eams )-78(to )-78(r)18(egular )-78(\336les, )-78(they )-78(become)]TJ -3.328 -1.2 Td [(fully )-231(buf)18(fer)18(ed, )-231(with )-231(buf)17(fer )-232(sizes )-232(equal )-232(to )-232(the )-232(pr)20(eferr)18(ed )-232(I/O )-232(size)]TJ 0.0833 Tc 30.048 0 Td (\321t)Tj 0 Tc 1.409 0 Td (he)Tj /TT0 1 Tf 1.543 0 Td (st_blksize)Tj /T1_0 1 Tf -33 -1.2 Td [(value )-43(fr)18(om )-43(the)]TJ /TT0 1 Tf 6.842 0 Td (stat)Tj /T1_0 1 Tf 2.693 0 Td [(str)8(uctur)]TJ 0.0833 Tc 3.49 0 Td (e\321f)Tj 0 Tc 1.979 0 Td [(or )-43(the )-43(\336le )-43(system.)]TJ -0.092 Tc 8.466 0 Td [(We )-227(a)]TJ 0 Tc 2.18 0 Td [(lso )-43(see )-43(that )-43(the )-43(standar)]TJ 0.2927 Tc 10.255 0 Td (de)Tj 0 Tc 1.383 0 Td [(rr)18(or)]TJ -37.287 -1.2 Td [(is always unbuf)18(fer)18(ed, as it should be, and that a r)18(egular \336le defaults to fully buf)18(fer)18(ed.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3041.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 11.9986 0 0 11.9986 93.5888 268.0878 Tm [(5.13 )-776(T)60(emporar )268(y)-556(Files)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 244.0907 Tm [(The )-15(ISO )-15(C )-15(standar)]TJ 0.2652 Tc 8.147 0 Td (dd)Tj 0 Tc 1.487 0 Td [(e\336nes )-15(two )-15(functions )-15(that )-15(ar)]TJ 0.2652 Tc 12.078 0 Td (ep)Tj -0.018 Tc 1.345 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vided )-15(by )-15(the )-15(standar)]TJ 0.2652 Tc 9.169 0 Td (dI)Tj 0 Tc 1.213 0 Td [(/O )-15(library)]TJ -34.362 -1.2 Td [(to assist in cr)18(eating temporary \336les.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 215.3942 Tm (#include )Tj 0 -1.664 TD (char *tmpnam\(char *)Tj /T1_2 1 Tf (ptr)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 22.943 -1.664 Td (Returns: pointer to unique pathname)Tj /TT0 1 Tf -22.943 -1.664 Td (FILE *tmpfile\(void\);)Tj /T1_0 1 Tf 21.155 -1.664 Td (Returns: \336le pointer if OK,)Tj /TT0 1 Tf 11.958 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1510.25 cm 0 0 m 0 734 l 3900 734 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46860 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (164)Tj /T1_1 1 Tf 3.5 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Library)]TJ 34.372 0 Td [(Chapter )-250(5)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(5.12 )-776(Implementation)-556(Details)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(As )-37(we\325ve )-37(mentioned, )-37(under )-37(the )-37(UNIX )-37(System, )-37(the )-37(standar)]TJ 0.2876 Tc 25.986 0 Td (dI)Tj 0 Tc 1.236 0 Td [(/O )-38(library )-38(ends )-38(up )-38(calling)]TJ -27.222 -1.2 Td [(the )-184(I/O )-184(r)18(outines )-184(that )-184(we )-184(described )-184(in )-184(Chapter )-184(3.)-684(Each )-184(standar)]TJ 0.4345 Tc 29.345 0 Td (dI)Tj 0 Tc 1.383 0 Td [(/O )-184(str)18(eam )-184(has )-184(an)]TJ -30.727 -1.2 Td [(associated )-237(\336le )-237(descriptor)]TJ 0.4874 Tc 11.333 0 Td (,a)Tj 0 Tc 1.237 0 Td [(nd )-237(we )-237(can )-237(obtain )-237(the )-237(descriptor )-237(for )-237(a )-237(str)18(eam )-237(by )-237(calling)]TJ /TT1 1 Tf -12.57 -1.2 Td (fileno)Tj /T1_1 1 Tf (.)Tj 7.9995 0 0 7.9995 183.5887 592.5644 Tm [(Note )-158(that)]TJ /TT1 1 Tf 4.732 0 Td (fileno)Tj /T1_1 1 Tf 4.008 0 Td [(is )-158(not )-158(part )-158(of )-158(the )-158(ISO )-158(C )-158(standar)18(d, )-158(but )-158(rather )-158(an )-158(extension )-158(supported )-158(by)]TJ -8.74 -1.25 Td (POSIX.1.)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5909 557.4665 Tm (#include )Tj 0 -1.902 TD (int fileno\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT1 1 Tf (\);)Tj /T1_1 1 Tf 15.628 -1.902 Td [(Returns: the \336le descriptor associated with the str)18(eam)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5187.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5844 505.1994 Tm [(We )-184(n)]TJ 0 Tc 2.219 0 Td (eed this function if we want to call the)Tj /TT1 1 Tf 17.113 0 Td (dup)Tj /T1_1 1 Tf 2.05 0 Td (or)Tj /TT1 1 Tf 1.191 0 Td (fcntl)Tj /T1_1 1 Tf 3.25 0 Td (functions, for example.)Tj -0.092 Tc -24.023 -1.2 Td [(To )-355(l)]TJ 0 Tc 1.779 0 Td [(ook )-171(at )-171(the )-171(implementation )-171(of )-171(the )-171(standar)]TJ 0.421 Tc 19.033 0 Td (dI)Tj 0 Tc 1.369 0 Td [(/O )-171(library )-171(on )-171(your )-171(system, )-171(start)]TJ -23.981 -1.2 Td [(with )-256(the )-256(header)]TJ /TT1 1 Tf 7.985 0 Td ()Tj /T1_1 1 Tf 0.7563 Tc (.T)Tj 0 Tc 7.019 0 Td [(his )-256(will )-256(show )-256(how )-256(the)]TJ /TT1 1 Tf 11.27 0 Td (FILE)Tj /T1_1 1 Tf 2.906 0 Td [(object )-256(is )-256(de\336ned, )-256(the)]TJ -29.18 -1.2 Td [(de\336nitions )-108(of )-108(the )-108(per)19(-str)18(eam )-108(\337ags, )-108(and )-108(any )-108(standar)]TJ 0.3577 Tc 23.275 0 Td (dI)Tj 0 Tc 1.306 0 Td [(/O )-108(r)18(outines, )-108(such )-108(as)]TJ /TT1 1 Tf 9.678 0 Td (getc)Tj /T1_1 1 Tf 0.3577 Tc (,t)Tj 0 Tc 3.334 0 Td (hat)Tj -37.592 -1.2 Td (ar)Tj 0.5416 Tc 0.877 0 Td (ed)Tj 0 Tc 1.632 0 Td [(e\336ned )-292(as )-292(macr)19(os. )-542(Section)-541(8.5 )-291(of )-291(Kernighan )-291(and )-291(Ritchie)]TJ 27.017 0.04 Td ([)Tj 0.333 -0.04 Td (1988)Tj 2 0.04 Td (])Tj 0.874 -0.04 Td [(has )-291(a )-291(sample)]TJ -32.733 -1.2 Td [(implementation )-250(that )-250(shows )-250(the )-250(\337avor )-250(of )-250(many )-250(implementations )-250(on )-250(UNIX )-250(systems.)]TJ 0 -1.2 TD [(Chapter )-61(12 )-61(of )-61(Plauger)]TJ 10.145 0.04 Td ([)Tj 0.333 -0.04 Td (1992)Tj 2 0.04 Td (])Tj 0.644 -0.04 Td [(pr)18(ovides )-61(the )-61(complete )-61(sour)18(ce )-61(code )-61(for )-61(an )-61(implementation)]TJ -13.122 -1.2 Td [(of )-133(the )-133(standar)]TJ 0.3827 Tc 6.351 0 Td (dI)Tj 0 Tc 1.331 0 Td [(/O )-133(library)]TJ 0.6328 Tc 4.645 0 Td (.T)Tj 0 Tc 1.496 0 Td [(he )-133(implementation )-133(of )-133(the )-133(GNU )-133(standar)]TJ 0.3828 Tc 17.993 0 Td (dI)Tj 0 Tc 1.331 0 Td [(/O )-133(library )-133(is)]TJ -33.146 -1.2 Td (also publicly available.)Tj /TT0 1 Tf -3.6 -2.4 Td (Example)Tj /T1_1 1 Tf 3.6 -2.04 Td [(The )-31(pr)18(ogram )-31(in )-31(Figur)]TJ 0.2807 Tc 9.63 0 Td (e5)Tj 0 Tc 1.26 0 Td (.1)Tj 0.2807 Tc 0.695 0 Td (1p)Tj 0 Tc 1.382 0 Td [(rints )-31(the )-31(buf)18(fering )-31(for )-31(the )-31(thr)20(ee )-31(standar)]TJ 0.2806 Tc 17.42 0 Td (ds)Tj 0 Tc 1.316 0 Td [(tr)18(eams )-31(and )-31(for )-31(a)]TJ -31.702 -1.2 Td [(str)18(eam that is associated with a r)18(egular \336le.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3456.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9984 0 0 8.9984 129.5767 336.0985 Tm (#include "apue.h")Tj 0 -2.021 TD [(void )-1800(pr_stdio\(const)-600(char *, FILE *\);)]TJ 0 -1.189 TD [(int )-2400(is_unbuffered\(FILE)-600(*\);)]TJ T* [(int )-2400(is_linebuffered\(FILE)-600(*\);)]TJ T* [(int )-2400(buffer_size\(FILE)-600(*\);)]TJ 0 -2.021 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(FILE )-1800(*fp;)]TJ 0 -2.021 TD (fputs\("enter any character\\n", stdout\);)Tj 0 -1.189 TD (if \(getchar\(\) == EOF\))Tj 2.4 -1.189 Td (err_sys\("getchar error"\);)Tj -2.4 -1.189 Td (fputs\("one line to standard error\\n", stderr\);)Tj 0 -2.021 TD [(pr_stdio\("stdin", )-600(stdin\);)]TJ 0 -1.189 TD (pr_stdio\("stdout", stdout\);)Tj 0 -1.189 TD (pr_stdio\("stderr", stderr\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46861 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(5.1)]TJ 31.5943 Tc 4.888 0 Td (1F)Tj 0 Tc 32.65 0 Td [(ormatted )-250(I/O)]TJ /T1_1 1 Tf 8.295 0 Td (159)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (The)Tj /TT0 1 Tf 2.106 0 Td (fgetpos)Tj /T1_0 1 Tf 4.632 0 Td [(function )-182(stor)18(es )-182(the )-182(curr)18(ent )-182(value )-182(of )-182(the )-182(\336le\325s )-182(position )-182(indicator )-182(in )-182(the)]TJ -6.738 -1.2 Td [(object )-35(pointed )-35(to )-35(by)]TJ /T1_2 1 Tf 9.139 0 Td (pos)Tj /T1_0 1 Tf 0.5352 Tc (.T)Tj 0 Tc 2.731 0 Td [(his )-35(value )-35(can )-35(be )-35(used )-35(in )-35(a )-35(later )-35(call )-35(to)]TJ /TT0 1 Tf 17.024 0 Td (fsetpos)Tj /T1_0 1 Tf 4.485 0 Td [(to )-35(r)18(eposition)]TJ -33.38 -1.2 Td [(the str)18(eam to that location.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5948 606.5636 Tm [(5.11 )-776(Formatted)-556(I/O)]TJ 9.9994 0 0 9.9994 93.5948 577.7653 Tm (Formatted Output)Tj /T1_0 1 Tf 3.6 -2.4 Td (Formatted output is handled by the \336ve)Tj /TT0 1 Tf 17.893 0 Td (printf)Tj /T1_0 1 Tf 3.85 0 Td (functions.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5915 537.0678 Tm (#include )Tj 0 -1.902 TD (int printf\(const char *restrict)Tj /T1_2 1 Tf 19.2 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 4.466 0 Td (..\);)Tj -23.666 -1.902 Td (int fprintf\(FILE *restrict)Tj /T1_2 1 Tf 16.2 0 Td (fp)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 4.466 0 Td (..\);)Tj -35.244 -1.902 Td (int dprintf\(int)Tj /T1_2 1 Tf 9.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 4.466 0 Td (..\);)Tj /T1_0 1 Tf -25.467 -1.902 Td [(All thr)18(ee r)18(eturn: number of characters output if OK, negative value if output err)18(or)]TJ /TT0 1 Tf -3.177 -1.902 Td (int sprintf\(char *restrict)Tj /T1_2 1 Tf 16.2 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.097 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 4.466 0 Td (..\);)Tj /T1_0 1 Tf -33.761 -1.902 Td [(Returns: number of characters stor)18(ed in array if OK, negative value if encoding err)18(or)]TJ /TT0 1 Tf -2.002 -1.902 Td (int snprintf\(char *restrict)Tj /T1_2 1 Tf 16.8 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (n)Tj /TT0 1 Tf (,)Tj -15.697 -1.189 Td (const char *restrict)Tj /T1_2 1 Tf 12.6 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 4.466 0 Td (..\);)Tj /T1_0 1 Tf -15.443 -1.902 Td [(Returns: number of characters that would have been stor)18(ed in array)]TJ 3.676 -1.189 Td [(if buf)18(fer was lar)18(ge enough, negative value if encoding err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3742.25 cm 0 0 m 0 1719 l 3900 1719 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 360.6967 Tm (The)Tj /TT0 1 Tf 2.064 0 Td (printf)Tj /T1_0 1 Tf 3.99 0 Td [(function )-140(writes )-140(to )-140(the )-140(standar)]TJ 0.3902 Tc 13.596 0 Td (do)Tj 0 Tc 1.547 0 Td (utput,)Tj /TT0 1 Tf 3.099 0 Td (fprintf)Tj /T1_0 1 Tf 4.59 0 Td [(writes )-140(to )-140(the )-140(speci\336ed)]TJ -28.887 -1.2 Td [(str)18(eam,)]TJ /TT0 1 Tf 3.833 0 Td (dprintf)Tj /T1_0 1 Tf 4.794 0 Td [(writes )-344(to )-344(the )-344(speci\336ed )-344(\336le )-344(descriptor)]TJ 0.5943 Tc 17.727 0 Td (,a)Tj 0 Tc 1.344 0 Td (nd)Tj /TT0 1 Tf 1.787 0 Td (sprintf)Tj /T1_0 1 Tf 4.794 0 Td [(places )-344(the)]TJ -34.28 -1.2 Td [(formatted )-93(characters )-93(in )-93(the )-93(array)]TJ /T1_2 1 Tf 15.209 0 Td (buf)Tj /T1_0 1 Tf 0.593 Tc (.T)Tj 0 Tc 2.753 0 Td (he)Tj /TT0 1 Tf 1.404 0 Td (sprintf)Tj /T1_0 1 Tf 4.543 0 Td [(function )-93(automatically )-93(appends )-93(a)]TJ -23.909 -1.2 Td (null byte at the end of the array)Tj 0.25 Tc 13.817 0 Td (,b)Tj 0 Tc 1.053 0 Td [(ut this null byte is not included in the r)18(eturn value.)]TJ -13.07 -1.2 Td [(Note )-113(that )-113(it\325s )-113(possible )-113(for)]TJ /TT0 1 Tf 11.934 0 Td (sprintf)Tj /T1_0 1 Tf 4.563 0 Td [(to )-113(over\337ow )-113(the )-113(buf)18(fer )-113(pointed )-113(to )-113(by)]TJ /T1_2 1 Tf 16.869 0 Td (buf)Tj /T1_0 1 Tf 0.6132 Tc (.T)Tj 0 Tc 2.773 0 Td (he)Tj -37.939 -1.2 Td [(caller )-322(is )-322(r)17(esponsible )-322(for )-322(ensuring )-322(that )-322(the )-322(buf)18(fer )-322(is )-322(lar)18(ge )-322(enough.)-822(Because )-322(buf)14(fer)]TJ -0 -1.2 Td [(over\337ows )-73(can )-73(lead )-73(to )-73(pr)18(ogram )-73(instability )-73(and )-73(even )-73(security )-73(violations,)]TJ /TT0 1 Tf 32.119 0 Td (snprintf)Tj /T1_0 1 Tf 5.123 0 Td (was)Tj -37.242 -1.2 Td [(intr)18(oduced. )-349(W)55(ith )-99(it, )-99(the )-99(size )-99(of )-99(the )-99(buf)18(fer )-99(is )-99(an )-99(explicit )-99(parameter; )-99(any )-99(characters )-99(that)]TJ 0 -1.2 TD [(would )-344(have )-344(been )-344(written )-344(past )-344(the )-344(end )-344(of )-344(the )-344(buf)18(fer )-344(ar)]TJ 0.5937 Tc 27.005 0 Td (ed)Tj 0 Tc 1.684 0 Td [(iscar)18(ded )-344(instead.)-843(The)]TJ /TT0 1 Tf -28.689 -1.2 Td (snprintf)Tj /T1_0 1 Tf 5.143 0 Td [(function )-93(r)18(eturns )-93(the )-93(number )-93(of )-93(characters )-93(that )-93(would )-93(have )-93(been )-93(written )-93(to)]TJ -5.143 -1.2 Td [(the )-69(buf)18(fer )-69(had )-69(it )-69(been )-69(big )-69(enough.)-569(As )-69(with)]TJ /TT0 1 Tf 19.821 0 Td (sprintf)Tj /T1_0 1 Tf 0.3189 Tc (,t)Tj 0 Tc 5.095 0 Td [(he )-69(r)18(eturn )-69(value )-69(doesn\325t )-69(include)]TJ -24.916 -1.2 Td [(the )-17(terminating )-17(null )-17(byte.)-517(If)]TJ /TT0 1 Tf 12.784 0 Td (snprintf)Tj /T1_0 1 Tf -0.018 Tc 5.067 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-17(a )-17(positive )-17(value )-17(less )-17(than )-17(the )-17(buf)18(fer )-17(size)]TJ /T1_2 1 Tf -18.707 -1.2 Td (n)Tj /T1_0 1 Tf 0.3025 Tc (,t)Tj 0 Tc 1.435 0 Td [(hen )-52(the )-52(output )-52(was )-52(not )-52(tr)6(uncated. )-303(If)-302(an )-53(encoding )-53(err)18(or )-53(occurs,)]TJ /TT0 1 Tf 28.474 0 Td (snprintf)Tj /T1_0 1 Tf -0.018 Tc 5.103 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-53(a)]TJ -35.867 -1.2 Td (negative value.)Tj 1.8 -1.2 Td (Although)Tj /TT0 1 Tf 4.516 0 Td (dprintf)Tj /T1_0 1 Tf 4.452 0 Td [(doesn\325t )-2(deal )-2(with )-2(a )-2(\336le )-2(pointer)73(,)-252(we)-252(include )-2(it )-2(with )-2(the )-2(r)18(est )-2(of )-2(the)]TJ -0.018 Tc -10.768 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(lated )-60(functions )-60(that )-60(handle )-60(formatted )-60(output.)-560(Note )-60(that )-60(using)]TJ /TT0 1 Tf 28.184 0 Td (dprintf)Tj /T1_0 1 Tf -0.018 Tc 4.51 0 Td (re)Tj 0 Tc 0.856 0 Td [(moves )-60(the)]TJ -34.406 -1.2 Td [(need )-9(to )-9(call)]TJ /TT0 1 Tf 5.327 0 Td (fdopen)Tj /T1_0 1 Tf 3.859 0 Td [(to )-9(convert )-9(a )-9(\336le )-9(descriptor )-9(into )-9(a )-9(\336le )-9(pointer )-9(for )-9(use )-9(with)]TJ /TT0 1 Tf 25.363 0 Td (fprintf)Tj /T1_0 1 Tf (.)Tj -32.75 -1.2 Td [(The )-277(format )-277(speci\336cation )-277(contr)18(ols )-277(how )-277(the )-277(r)20(emainder )-277(of )-277(the )-277(ar)18(guments )-277(will )-277(be)]TJ -1.8 -1.2 Td [(encoded )-501(and )-501(ultimately )-501(displayed.)-1001(Each )-501(ar)18(gument )-501(is )-501(encoded )-501(accor)18(ding )-501(to )-501(a)]TJ T* [(conversion )-109(speci\336cation )-109(that )-109(starts )-109(with )-109(a )-109(per)18(cent )-109(sign )-109(\(%\).)-612(Except )-109(for )-109(the )-109(conversion)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46862 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(5.10)]TJ 34.204 0 Td [(Positioning )-250(a )-250(Str)18(eam)]TJ /T1_1 1 Tf 11.629 0 Td (157)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(The )-54(obvious )-54(generalization )-54(of )-54(these )-54(two )-54(cases )-54(is )-54(to )-54(r)16(ead )-54(or )-54(write )-54(an )-54(array )-54(of )-54(str)6(uctur)18(es.)]TJ -0.092 Tc 0 -1.2 TD [(To )-295(d)]TJ 0.3614 Tc 2.039 0 Td (ot)Tj 0 Tc 1.233 0 Td (his,)Tj /T1_2 1 Tf 1.908 0 Td (size)Tj /T1_0 1 Tf 1.861 0 Td [(would )-111(be )-111(the)]TJ /TT0 1 Tf 6.388 0 Td (sizeof)Tj /T1_0 1 Tf 3.961 0 Td [(the )-111(str)8(uctur)18(e, )-111(and)]TJ /T1_2 1 Tf 8.383 0 Td (nobj)Tj /T1_0 1 Tf 2.102 0 Td [(would )-111(be )-111(the )-111(number )-111(of)]TJ -27.877 -1.2 Td [(elements in the array)111(.)]TJ 1.8 -1.2 Td (Both)Tj /TT0 1 Tf 2.338 0 Td (fread)Tj /T1_0 1 Tf 3.273 0 Td (and)Tj /TT0 1 Tf 1.966 0 Td (fwrite)Tj /T1_0 1 Tf -0.018 Tc 3.873 0 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-23(the )-23(number )-23(of )-23(objects )-23(r)18(ead )-23(or )-23(written.)-522(For )-23(the )-23(r)18(ead)]TJ -14.106 -1.2 Td [(case, )-279(this )-279(number )-279(can )-279(be )-279(less )-279(than)]TJ /T1_2 1 Tf 17.087 0 Td (nobj)Tj /T1_0 1 Tf 2.271 0 Td [(if )-279(an )-279(err)18(or )-279(occurs )-279(or )-279(if )-279(the )-279(end )-279(of )-279(\336le )-279(is)]TJ -19.358 -1.2 Td [(encounter)18(ed. )-361(In)-361(this )-111(situation,)]TJ /TT0 1 Tf 14.133 0 Td (ferror)Tj /T1_0 1 Tf 3.961 0 Td (or)Tj /TT0 1 Tf 1.302 0 Td (feof)Tj /T1_0 1 Tf 2.761 0 Td [(must )-111(be )-111(called.)-611(For )-111(the )-111(write )-111(case, )-111(if)]TJ -22.158 -1.2 Td [(the r)18(eturn value is less than the r)18(equested)]TJ /T1_2 1 Tf 18.635 0 Td (nobj)Tj /T1_0 1 Tf [(,)-250(an)-250(err)18(or has occurr)18(ed.)]TJ 0.2586 Tc -16.835 -1.2 Td (Af)Tj 0 Tc 1.37 0 Td [(undamental )-9(pr)18(oblem )-9(with )-9(binary )-9(I/O )-9(is )-9(that )-9(it )-9(can )-9(be )-9(used )-9(to )-9(r)23(ead )-8(only )-8(data )-8(that)]TJ -3.17 -1.2 Td [(has )-19(been )-19(written )-19(on )-19(the )-19(same )-19(system.)-519(This )-19(was )-19(OK )-19(many )-19(years )-19(ago, )-19(when )-19(all )-19(the )-19(UNIX)]TJ T* [(systems )-32(wer)]TJ 0.2823 Tc 5.488 0 Td (eP)Tj 0 Tc 1.365 0 Td (DP)Tj 1.378 0.09 Td (-)Tj -0.055 Tc 0.333 -0.09 Td (11)Tj 0 Tc 0.945 0 Td [(s, )-32(but )-32(the )-32(norm )-32(today )-32(is )-32(to )-32(have )-32(heter)16(ogeneous )-32(systems )-32(connected)]TJ -9.51 -1.2 Td [(together )-37(with )-37(networks.)-537(It )-37(is )-37(common )-37(to )-37(want )-37(to )-37(write )-37(data )-37(on )-37(one )-37(system )-37(and )-37(pr)12(ocess)]TJ T* (it on another)Tj 0.5 Tc 5.581 0 Td (.T)Tj 0 Tc 1.363 0 Td [(hese two functions won\325t work, for two r)18(easons.)]TJ -5.144 -2.04 Td [(1. )-633(The)-443(of)18(fset )-193(of )-193(a )-193(member )-193(within )-193(a )-193(str)9(uctur)]TJ 0.4429 Tc 20.777 0 Td (ec)Tj 0 Tc 1.366 0 Td [(an )-193(dif)18(fer )-193(between )-193(compilers )-193(and)]TJ -20.51 -1.2 Td [(systems )-126(because )-126(of )-126(dif)17(fer)18(ent )-126(alignment )-126(r)17(equir)18(ements. )-376(Indeed,)-377(some )-126(compilers)]TJ -0 -1.2 Td [(have )-150(an )-150(option )-150(allowing )-150(str)8(uctur)18(es )-150(to )-150(be )-150(packed )-150(tightly)111(,)-400(to)-400(save )-150(space )-150(with )-150(a)]TJ 0 -1.2 Td [(possible )-447(r)8(untime )-447(performance )-447(penalty)110(,)-697(or)-697(a)-1(ligned )-447(accurately)111(,)-697(to)-697(o)-1(ptimize)]TJ -0.008 Tc T* (ru)Tj 0 Tc 0.99 0 Td [(ntime )-113(access )-113(of )-113(each )-113(member)]TJ 0.6132 Tc 13.211 0 Td (.T)Tj 0 Tc 1.476 0 Td [(his )-113(means )-113(that )-113(even )-113(on )-113(a )-113(single )-113(system, )-113(the)]TJ -15.677 -1.2 Td [(binary layout of a str)8(uctur)]TJ 0.25 Tc 11.568 0 Td (ec)Tj 0 Tc 1.173 0 Td [(an dif)18(fer)]TJ 0.25 Tc 3.682 0 Td (,d)Tj 0 Tc 1.111 0 Td (epending on compiler options.)Tj -19.167 -1.96 Td [(2. )-633(The)-398(binary )-148(formats )-148(used )-148(to )-148(stor)]TJ 0.3985 Tc 16.246 0 Td (em)Tj 0 Tc 1.761 0 Td [(ultibyte )-148(integers )-148(and )-148(\337oating-point )-148(values)]TJ -16.373 -1.2 Td [(dif)18(fer among machine ar)18(chitectur)18(es.)]TJ -0.092 Tc -3.433 -2.04 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-115(touch )-115(on )-115(some )-115(of )-115(these )-115(issues )-115(when )-115(we )-115(discuss )-115(sockets )-115(in )-115(Chapter )-115(16.)-622(The )-115(r)18(eal)]TJ -1.387 -1.2 Td [(solution )-83(for )-83(exchanging )-83(binary )-83(data )-83(among )-83(dif)17(fer)18(ent )-83(systems )-83(is )-83(to )-83(use )-83(an )-83(agr)17(eed-upon)]TJ -0 -1.2 Td [(canonical )-51(format.)-551(Refer )-51(to )-51(Section )-51(8.2 )-51(of )-51(Rago)]TJ 20.887 0.04 Td ([)Tj 0.333 -0.04 Td (1993)Tj 2 0.04 Td (])Tj 0.634 -0.04 Td [(or )-51(Section )-51(5.18 )-51(of )-51(Stevens, )-51(Fenner)75(,)]TJ 0.3241 Tc -23.854 -1.2 Td (&R)Tj 0 Tc 1.77 0 Td [(udof)18(f)]TJ 2.732 0.04 Td ([)Tj 0.333 -0.04 Td (2004)Tj 2 0.04 Td (])Tj 0.657 -0.04 Td [(for )-74(a )-74(description )-74(of )-74(some )-74(techniques )-74(various )-74(network )-74(pr)18(otocols )-74(use )-74(to)]TJ -7.492 -1.2 Td (exchange binary data.)Tj -0.092 Tc 1.8 -1.2 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-80(r)18(eturn )-80(to )-80(the)]TJ /TT0 1 Tf 7.201 0 Td (fread)Tj /T1_0 1 Tf 3.33 0 Td [(function )-80(in )-80(Section )-80(8.14 )-80(when )-80(we )-80(use )-80(it )-80(to )-80(r)18(ead )-80(a )-80(binary)]TJ -13.718 -1.2 Td [(str)8(uctur)18(e, the UNIX pr)18(ocess accounting r)18(ecor)18(ds.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5951 300.182 Tm [(5.10 )-776(P)40(ositioning )-278(a )-278(Stream)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5929 278.5833 Tm (Ther)Tj 0.25 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(t)]TJ 0 Tc 1.432 0 Td [(hr)18(ee ways to position a standar)]TJ 0.25 Tc 13.78 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O str)18(eam:)]TJ -17.89 -1.92 Td [(1. )-633(The)-325(two )-75(functions)]TJ /TT0 1 Tf 10.118 0 Td (ftell)Tj /T1_0 1 Tf 3.325 0 Td (and)Tj /TT0 1 Tf 2.018 0 Td (fseek)Tj /T1_0 1 Tf 0.5747 Tc (.T)Tj 0 Tc 4.438 0 Td [(hey )-75(have )-75(been )-75(ar)18(ound )-75(since )-75(V)111(ersion )-75(7,)]TJ -18.265 -1.2 Td [(but they assume that a \336le\325s position can be stor)18(ed in a long integer)74(.)]TJ -1.633 -1.96 Td [(2. )-633(The)-401(two )-151(functions)]TJ /TT0 1 Tf 10.347 0 Td (ftello)Tj /T1_0 1 Tf 4.001 0 Td (and)Tj /TT0 1 Tf 2.094 0 Td (fseeko)Tj /T1_0 1 Tf 0.6509 Tc (.T)Tj 0 Tc 5.114 0 Td [(hey )-151(wer)]TJ 0.4009 Tc 3.708 0 Td (ei)Tj 0 Tc 1.171 0 Td [(ntr)18(oduced )-151(in )-151(the )-151(Single)]TJ -24.801 -1.2 Td [(UNIX )-114(Speci\336cation )-114(to )-114(allow )-114(for )-114(\336le )-114(of)16(fsets )-114(that )-114(might )-114(not )-114(\336t )-114(in )-114(a )-114(long )-114(integer)71(.)]TJ T* [(They r)18(eplace the long integer with the)]TJ /TT0 1 Tf 17.041 0 Td (off_t)Tj /T1_0 1 Tf 3.25 0 Td (data type.)Tj -21.924 -1.96 Td [(3. )-633(The)-407(two )-157(functions)]TJ /TT0 1 Tf 10.365 0 Td (fgetpos)Tj /T1_0 1 Tf 4.607 0 Td (and)Tj /TT0 1 Tf 2.1 0 Td (fsetpos)Tj /T1_0 1 Tf 0.6571 Tc (.T)Tj 0 Tc 5.72 0 Td [(hey )-157(wer)]TJ 0.4071 Tc 3.714 0 Td (ei)Tj 0 Tc 1.177 0 Td [(ntr)18(oduced )-157(by )-157(ISO )-157(C.)]TJ -26.051 -1.2 Td [(They )-39(use )-39(an )-39(abstract )-39(data )-39(type,)]TJ /TT0 1 Tf 14.17 0 Td (fpos_t)Tj /T1_0 1 Tf 0.2892 Tc (,t)Tj 0 Tc 4.465 0 Td [(hat )-39(r)18(ecor)18(ds )-39(a )-39(\336le\325s )-39(position.)-539(This )-39(data)]TJ -18.635 -1.2 Td [(type can be made as big as necessary to r)18(ecor)]TJ 0.25 Tc 19.869 0 Td (da\336)Tj 0 Tc 2.216 0 Td (le\325s position.)Tj -25.518 -2.04 Td (When porting applications to non-UNIX systems, use)Tj /TT0 1 Tf 23.887 0 Td (fgetpos)Tj /T1_0 1 Tf 4.45 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (fsetpos)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46863 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (156)Tj /T1_1 1 Tf 3.5 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Library)]TJ 34.372 0 Td [(Chapter )-250(5)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(library )-177(is )-177(not )-177(much )-177(slower )-177(than )-177(calling )-177(the)]TJ /TT0 1 Tf 20.38 0 Td (read)Tj /T1_1 1 Tf 2.827 0 Td (and)Tj /TT0 1 Tf 2.12 0 Td (write)Tj /T1_1 1 Tf 3.427 0 Td [(functions )-177(dir)18(ectly)]TJ 0.677 Tc 7.822 0 Td (.F)Tj 0 Tc 1.483 0 Td (or)Tj -38.059 -1.2 Td [(most )-252(nontrivial )-252(applications, )-252(the )-252(lar)18(gest )-252(amount )-252(of )-252(user )-252(CPU )-252(time )-252(is )-252(taken )-252(by )-252(the)]TJ 0 -1.2 TD (application, not by the standar)Tj 0.25 Tc 13.493 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O r)18(outines.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5947 608.9635 Tm [(5.9 )-1332(Binar)]TJ 0.556 Tc 5.566 0 Td (yI)Tj 0 Tc 1.39 0 Td (/O)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5925 584.9649 Tm [(The )-50(functions )-50(fr)18(om )-50(Section )-50(5.6 )-50(operated )-50(with )-50(one )-50(character )-50(at )-50(a )-50(time, )-50(and )-50(the )-50(functions)]TJ T* [(fr)18(om )-78(Section )-78(5.7 )-78(operated )-78(with )-78(one )-78(line )-78(at )-78(a )-78(time.)-582(If )-78(we\325r)]TJ 0.3285 Tc 25.857 0 Td (ed)Tj 0 Tc 1.419 0 Td [(oing )-78(binary )-78(I/O, )-78(we )-78(often)]TJ -27.276 -1.2 Td [(would )-12(like )-12(to )-12(r)19(ead )-12(or )-12(write )-12(an )-12(entir)]TJ 0.2616 Tc 15.576 0 Td (es)Tj 0 Tc 1.165 0 Td [(tr)8(uctur)18(e)-262(at)-262(a)-262(t)1(ime. )-262(T)92(o)-262(do)-262(t)1(his )-12(using)]TJ /TT0 1 Tf 15.746 0 Td (getc)Tj /T1_1 1 Tf 2.662 0 Td (or)Tj /TT0 1 Tf 1.203 0 Td (putc)Tj /T1_1 1 Tf (,)Tj -36.35 -1.2 Td [(we )-19(have )-19(to )-19(loop )-19(thr)18(ough )-19(the )-19(entir)]TJ 0.2687 Tc 14.921 0 Td (es)Tj 0 Tc 1.172 0 Td [(tr)8(uctur)18(e, )-19(one )-19(byte )-19(at )-19(a )-19(time, )-19(r)18(eading )-19(or )-19(writing )-19(each)]TJ -16.093 -1.2 Td [(byte. )-272(W)]TJ 0.2725 Tc 3.594 0 Td (ec)Tj 0 Tc 1.196 0 Td [(an\325t )-22(use )-22(the )-22(line-at-a-time )-22(functions, )-22(since)]TJ /TT0 1 Tf 18.762 0 Td (fputs)Tj /T1_1 1 Tf 3.273 0 Td [(stops )-22(writing )-22(when )-22(it )-22(hits )-22(a)]TJ -26.824 -1.2 Td [(null )-124(byte, )-124(and )-124(ther)]TJ 0.3744 Tc 8.511 0 Td (em)Tj 0 Tc 1.736 0 Td [(ight )-124(be )-124(null )-124(bytes )-124(within )-124(the )-124(str)5(uctur)18(e. )-374(Similarly)111(,)]TJ /TT0 1 Tf 22.812 0 Td (fgets)Tj /T1_1 1 Tf 3.374 0 Td (won\325t)Tj -36.434 -1.2 Td [(work )-125(corr)18(ectly )-125(on )-125(input )-125(if )-125(any )-125(of )-125(the )-125(data )-125(bytes )-125(ar)]TJ 0.375 Tc 23.15 0 Td (en)Tj 0 Tc 1.436 0 Td [(ulls )-125(or )-125(newlines.)-625(Ther)18(efor)18(e, )-125(the)]TJ -24.586 -1.2 Td (following two functions ar)Tj 0.25 Tc 11.734 0 Td (ep)Tj -0.018 Tc 1.33 0 Td (ro)Tj 0 Tc 0.923 0 Td (vided for binary I/O.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5926 484.2709 Tm (#include )Tj 0 -1.902 TD (size_t fread\(void *restrict)Tj /T1_2 1 Tf 16.8 0 Td (ptr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.022 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (size)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.3 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nobj)Tj /TT0 1 Tf (,)Tj -22.522 -1.189 Td (FILE *restrict)Tj /T1_2 1 Tf 9 0 Td (fp)Tj /TT0 1 Tf (\);)Tj -16.8 -1.902 Td (size_t fwrite\(const void *restrict)Tj /T1_2 1 Tf 21 0 Td (ptr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.022 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (size)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.3 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nobj)Tj /TT0 1 Tf (,)Tj -26.122 -1.189 Td (FILE *restrict)Tj /T1_2 1 Tf 9 0 Td (fp)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 1.585 -1.902 Td [(Both r)18(eturn: number of objects r)18(ead or written)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4070.25 cm 0 0 m 0 863 l 3900 863 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 393.4928 Tm (These functions have two common uses:)Tj 1.8 -2.04 Td [(1. )-633(Read)-356(or )-106(write )-106(a )-106(binary )-106(array)]TJ 0.6063 Tc 14.55 0 Td (.F)Tj 0 Tc 1.412 0 Td [(or )-106(example, )-106(to )-106(write )-106(elements )-106(2 )-106(thr)18(ough )-106(5 )-106(of )-106(a)]TJ -14.329 -1.2 Td [(\337oating-point array)111(,)-250(we)-250(could write)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 181.9081 343.3289 Tm [(float )-1200(data[10];)]TJ 0 -2.378 TD (if \(fwrite\(&data[2], sizeof\(float\), 4, fp\) != 4\))Tj 2.4 -1.189 Td (err_sys\("fwrite error"\);)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 163.9102 292.1651 Tm [(Her)18(e, )-153(we )-153(specify)]TJ /T1_2 1 Tf 8.066 0 Td (size)Tj /T1_1 1 Tf 1.903 0 Td [(as )-153(the )-153(size )-153(of )-153(each )-153(element )-153(of )-153(the )-153(array )-153(and)]TJ /T1_2 1 Tf 20.74 0 Td (nobj)Tj /T1_1 1 Tf 2.144 0 Td [(as )-153(the)]TJ -32.853 -1.2 Td (number of elements.)Tj -1.633 -1.96 Td [(2. )-633(Read)-250(or write a str)8(uctur)18(e. )-250(For)-250(example, we could write)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 181.9089 242.8012 Tm (struct {)Tj 1.2 -1.189 Td [(short )-600(count;)]TJ 0 -1.189 TD [(long )-1200(total;)]TJ T* [(char )-1200(name[NAMESIZE];)]TJ 0.6 Tc -1.2 -1.189 Td (}i)Tj 0 Tc 1.8 0 Td (tem;)Tj -1.8 -2.378 Td (if \(fwrite\(&item, sizeof\(item\), 1, fp\) != 1\))Tj 2.4 -1.189 Td (err_sys\("fwrite error"\);)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 163.911 148.8425 Tm [(Her)18(e, )-25(we )-25(specify)]TJ /T1_2 1 Tf 7.682 0 Td (size)Tj /T1_1 1 Tf 1.775 0 Td [(as )-25(the )-25(size )-25(of )-25(str)8(uctur)]TJ 0.2749 Tc 9.474 0 Td (ea)Tj 0 Tc 1.254 0 Td (nd)Tj /T1_2 1 Tf 1.468 0 Td (nobj)Tj /T1_1 1 Tf 2.016 0 Td [(as )-25(1 )-25(\(the )-25(number )-25(of )-25(objects)]TJ -23.669 -1.2 Td (to write\).)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46864 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(5.8)]TJ 32.745 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Ef)18(\336ciency)]TJ /T1_1 1 Tf 8.219 0 Td (153)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(buf)18(fer)]TJ 0.5675 Tc 2.604 0 Td (.T)Tj 0 Tc 1.431 0 Td [(he )-67(buf)18(fer )-67(is )-67(terminated )-67(with )-67(a )-67(null )-67(byte.)-567(If )-67(the )-67(line, )-67(including )-67(the )-67(terminating)]TJ -4.035 -1.2 Td [(newline, )-31(is )-31(longer )-31(than)]TJ /T1_2 1 Tf 10.466 0 Td (n)Tj /TT0 1 Tf 0.723 0 Td (!)Tj /T1_2 1 Tf 0.716 0 Td (1)Tj /T1_0 1 Tf 0.281 Tc (,o)Tj 0 Tc 1.577 0 Td [(nly )-31(a )-31(partial )-31(line )-31(is )-31(r)18(eturned, )-31(but )-31(the )-31(buf)18(fer )-31(is )-31(always )-31(null)]TJ -13.481 -1.2 Td [(terminated. )-250(Another)-250(call to)]TJ /TT1 1 Tf 12.458 0 Td (fgets)Tj /T1_0 1 Tf 3.25 0 Td [(will r)18(ead what follows on the line.)]TJ -13.908 -1.2 Td (The)Tj /TT1 1 Tf 2.006 0 Td (gets)Tj /T1_0 1 Tf 2.732 0 Td [(function )-82(should )-82(never )-82(be )-82(used.)-582(The )-82(pr)18(oblem )-82(is )-82(that )-82(it )-82(doesn\325t )-82(allow )-82(the)]TJ -6.538 -1.2 Td [(caller )-88(to )-88(specify )-88(the )-88(buf)18(fer )-88(size.)-591(This )-89(allows )-89(the )-89(buf)18(fer )-89(to )-89(over\337ow )-89(if )-89(the )-89(line )-89(is )-89(longer)]TJ 0 -1.2 TD [(than )-93(the )-93(buf)18(fer)]TJ 0.343 Tc 6.667 0 Td (,w)Tj 0 Tc 1.427 0 Td [(riting )-93(over )-93(whatever )-93(happens )-93(to )-93(follow )-93(the )-93(buf)18(fer )-93(in )-93(memory)]TJ 0.5929 Tc 27.723 0 Td (.F)Tj 0 Tc 1.399 0 Td [(or )-93(a)]TJ -37.216 -1.2 Td [(description )-24(of )-24(how )-24(this )-24(\337aw )-24(was )-24(used )-24(as )-24(part )-24(of )-24(the )-24(Internet )-24(worm )-24(of )-24(1988, )-24(see )-24(the )-24(June)]TJ T* [(1989 )-67(issue )-67(\(vol. )-67(32, )-67(no. )-67(6\) )-67(of)]TJ /T1_2 1 Tf 12.765 0 Td [(Communications )-67(of )-67(the )-67(ACM)]TJ /T1_0 1 Tf 0.5669 Tc (.A)Tj 0.3169 Tc 13.731 0 Td (na)Tj 0 Tc 1.399 0 Td [(dditional )-67(dif)18(fer)18(ence )-67(with)]TJ /TT1 1 Tf -27.894 -1.2 Td (gets)Tj /T1_0 1 Tf 2.65 0 Td (is that it doesn\325t stor)Tj 0.25 Tc 8.985 0 Td (et)Tj 0 Tc 1.055 0 Td [(he newline in the buf)18(fer)]TJ 0.25 Tc 10.463 0 Td (,a)Tj 0 Tc 1 0 Td (s)Tj /TT1 1 Tf 0.674 0 Td (fgets)Tj /T1_0 1 Tf 3.25 0 Td (does.)Tj 7.9995 0 0 7.9995 183.5885 552.9668 Tm [(This )-29(dif)18(fer)18(ence )-29(in )-29(newline )-29(handling )-29(between )-29(the )-29(two )-29(functions )-29(goes )-29(way )-29(back )-29(in )-29(the )-29(evolution)]TJ 0 -1.25 TD [(of )-28(the )-28(UNIX )-28(System.)-530(Even )-28(the )-28(V)111(ersion )-28(7 )-28(manual)]TJ 21.889 0.04 Td (\()Tj 0.333 -0.04 Td (1979)Tj 2 0.04 Td (\))Tj 0.611 -0.04 Td [(states )-28(\324)37(\324)]TJ /TT1 1 Tf (gets)Tj /T1_0 1 Tf 5.955 0 Td [(deletes )-28(a )-28(newline,)]TJ /TT1 1 Tf 8.212 0 Td (fgets)Tj /T1_0 1 Tf -39 -1.25 Td (keeps it, all in the name of backwar)Tj 0.25 Tc 15.585 0 Td (dc)Tj 0 Tc 1.305 0 Td [(ompatibility)111(.\325)37(\325)]TJ 9.9994 0 0 9.9994 129.5915 510.9693 Tm [(Even )-268(though )-268(ISO )-268(C )-268(r)17(equir)18(es )-268(an )-268(implementation )-268(to )-268(pr)17(ovide)]TJ /TT1 1 Tf 28.527 0 Td (gets)Tj /T1_0 1 Tf 0.5183 Tc (,y)Tj 0 Tc 3.724 0 Td [(ou )-268(should )-268(use)]TJ /TT1 1 Tf -32.251 -1.2 Td (fgets)Tj /T1_0 1 Tf 3.363 0 Td [(instead. )-363(In)-363(fact,)]TJ /TT1 1 Tf 7.574 0 Td (gets)Tj /T1_0 1 Tf 2.763 0 Td [(is )-113(marked )-113(as )-113(an )-113(obsolescent )-113(interface )-113(in )-113(SUSv4 )-113(and )-113(has)]TJ -13.7 -1.2 Td [(been omitted fr)18(om the latest version of the ISO C standar)]TJ 0.25 Tc 25.152 0 Td (d\()Tj 0 Tc 1.194 0 Td [(ISO/IEC 9899:201)55(1\).)]TJ -24.546 -1.2 Td [(Line-at-a-time output is pr)18(ovided by)]TJ /TT1 1 Tf 16.427 0 Td (fputs)Tj /T1_0 1 Tf 3.25 0 Td (and)Tj /TT1 1 Tf 1.943 0 Td (puts)Tj /T1_0 1 Tf (.)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5909 453.4728 Tm (#include )Tj 0 -2.021 TD (int fputs\(const char *restrict)Tj /T1_2 1 Tf 18.6 0 Td (str)Tj /TT1 1 Tf 0.6 Tc (,F)Tj 0 Tc 2.911 0 Td (ILE *restrict)Tj /T1_2 1 Tf 8.4 0 Td (fp)Tj /TT1 1 Tf (\);)Tj -29.911 -2.021 Td (int puts\(const char *)Tj /T1_2 1 Tf (str)Tj /TT1 1 Tf (\);)Tj /T1_0 1 Tf 16.491 -2.021 Td [(Both r)18(eturn: non-negative value if OK,)]TJ /TT1 1 Tf 17.222 0 Td (EOF)Tj /T1_0 1 Tf 2.05 0 Td [(on err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3944.25 cm 0 0 m 0 681 l 3900 681 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 376.0849 Tm [(The )-68(function)]TJ /TT1 1 Tf 6.017 0 Td (fputs)Tj /T1_0 1 Tf 3.318 0 Td [(writes )-68(the )-68(null-terminated )-68(string )-68(to )-68(the )-68(speci\336ed )-68(str)19(eam. )-318(The)-318(null)]TJ -9.334 -1.2 Td [(byte )-20(at )-20(the )-20(end )-20(is )-20(not )-20(written.)-518(Note )-20(that )-20(this )-20(need )-20(not )-20(be )-20(line-at-a-time )-20(output, )-20(since )-20(the)]TJ 0 -1.2 TD [(string )-182(need )-182(not )-182(contain )-182(a )-182(newline )-182(as )-182(the )-182(last )-182(non-null )-182(character)]TJ 0.6823 Tc 29.464 0 Td (.U)Tj 0 Tc 1.71 0 Td (sually)Tj 0.4323 Tc 2.554 0 Td (,t)Tj 0 Tc 1.008 0 Td [(his )-182(is )-182(the)]TJ -34.737 -1.2 Td [(case )167(\321 )167(the)-251(last non-null character is a newline)]TJ 0.0833 Tc 20.153 0 Td (\321b)Tj 0 Tc 1.636 0 Td [(ut it\325s not r)18(equir)18(ed.)]TJ -19.989 -1.2 Td (The)Tj /TT1 1 Tf 1.927 0 Td (puts)Tj /T1_0 1 Tf 2.653 0 Td [(function )-3(writes )-3(the )-3(null-terminated )-3(string )-3(to )-3(the )-3(standar)]TJ 0.2531 Tc 24.74 0 Td (do)Tj 0 Tc 1.41 0 Td [(utput, )-3(without)]TJ -32.53 -1.2 Td [(writing )-32(the )-32(null )-32(byte.)-533(But)]TJ /TT1 1 Tf 11.794 0 Td (puts)Tj /T1_0 1 Tf 2.682 0 Td [(then )-32(writes )-32(a )-32(newline )-32(character )-32(to )-32(the )-32(standar)]TJ 0.2823 Tc 20.375 0 Td (do)Tj 0 Tc 1.439 0 Td (utput.)Tj -34.491 -1.2 Td (The)Tj /TT1 1 Tf 2.142 0 Td (puts)Tj /T1_0 1 Tf 2.868 0 Td [(function )-218(is )-218(not )-218(unsafe, )-218(like )-218(its )-218(counterpart)]TJ /TT1 1 Tf 20.177 0 Td (gets)Tj /T1_0 1 Tf 0.7179 Tc (.N)Tj 0 Tc 4.199 0 Td [(evertheless, )-218(we\325ll)]TJ -31.186 -1.2 Td [(avoid )-164(using )-164(it, )-164(to )-164(pr)18(event )-164(having )-164(to )-164(r)19(emember )-164(whether )-164(it )-164(appends )-164(a )-164(newline.)-664(If )-164(we)]TJ T* [(always )-58(use)]TJ /TT1 1 Tf 5.228 0 Td (fgets)Tj /T1_0 1 Tf 3.308 0 Td (and)Tj /TT1 1 Tf 2.001 0 Td (fputs)Tj /T1_0 1 Tf [(,)-308(we)-308(k)-1(now )-58(that )-58(we )-58(always )-58(have )-58(to )-58(deal )-58(with )-58(the )-58(newline)]TJ -10.538 -1.2 Td (character at the end of each line.)Tj /TT2 1 Tf 11.9986 0 0 11.9986 93.5883 232.1021 Tm [(5.8 )-1332(Standar)]TJ 0.556 Tc 6.703 0 Td (dI)Tj 0 Tc 1.445 0 Td [(/O )-278(Ef\336cienc)10(y)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5834 208.105 Tm [(Using )-13(the )-13(functions )-13(fr)18(om )-13(the )-13(pr)18(evious )-13(section, )-13(we )-13(can )-13(get )-13(an )-13(idea )-13(of )-13(the )-13(ef)19(\336ciency )-13(of )-13(the)]TJ T* (standar)Tj 0.313 Tc 3.32 0 Td (dI)Tj 0 Tc 1.261 0 Td [(/O )-63(system.)-563(The )-63(pr)18(ogram )-63(in )-63(Figur)]TJ 0.3129 Tc 15.337 0 Td (e5)Tj 0 Tc 1.292 0 Td [(.4 )-63(is )-63(like )-63(the )-63(one )-63(in )-63(Figur)]TJ 0.3129 Tc 11.209 0 Td (e3)Tj 0 Tc 1.292 0 Td [(.5: )-63(it )-63(simply)]TJ -33.711 -1.2 Td [(copies )-122(standar)]TJ 0.3719 Tc 6.477 0 Td (di)Tj 0 Tc 1.274 0 Td [(nput )-122(to )-122(standar)]TJ 0.3719 Tc 7.048 0 Td (do)Tj 0 Tc 1.529 0 Td [(utput, )-122(using)]TJ /TT1 1 Tf 5.909 0 Td (getc)Tj /T1_0 1 Tf 2.772 0 Td (and)Tj /TT1 1 Tf 2.065 0 Td (putc)Tj /T1_0 1 Tf 0.6219 Tc (.T)Tj 0 Tc 3.885 0 Td [(hese )-122(two )-122(r)18(outines)]TJ -30.958 -1.2 Td [(can be implemented as macr)18(os.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46865 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (152)Tj /T1_1 1 Tf 3.5 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Library)]TJ 34.372 0 Td [(Chapter )-250(5)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-108(character )-108(that )-108(we )-108(push )-108(back )-108(does )-108(not )-108(have )-108(to )-108(be )-108(the )-108(same )-108(character )-108(that )-108(was)]TJ -0.018 Tc -1.8 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ad. )-342(W)]TJ 0.3416 Tc 2.861 0 Td (ea)Tj -0.018 Tc 1.321 0 Td [(re )-128(n)]TJ 0 Tc 1.78 0 Td [(ot )-92(able )-92(to )-92(push )-92(back)]TJ /TT0 1 Tf 9.538 0 Td (EOF)Tj /T1_1 1 Tf 0.5916 Tc (.W)Tj 0 Tc 3.642 0 Td [(hen )-92(we )-92(r)18(each )-92(the )-92(end )-92(of )-92(\336le, )-92(however)]TJ 0.3417 Tc 17.099 0 Td (,w)Tj 0 Tc 1.426 0 Td (e)Tj -38.521 -1.2 Td [(can )-93(push )-93(back )-93(a )-93(character)]TJ 0.5935 Tc 11.654 0 Td (.T)Tj 0 Tc 1.456 0 Td [(he )-93(next )-93(r)18(ead )-93(will )-93(r)18(eturn )-93(that )-93(character)]TJ 0.3434 Tc 17.186 0 Td (,a)Tj 0 Tc 1.093 0 Td [(nd )-93(the )-93(r)18(ead )-93(after)]TJ -31.39 -1.2 Td [(that )-53(will )-53(r)18(eturn)]TJ /TT0 1 Tf 7.113 0 Td (EOF)Tj /T1_1 1 Tf 0.5533 Tc (.T)Tj 0 Tc 3.216 0 Td [(his )-53(works )-53(because )-53(a )-53(successful )-53(call )-53(to)]TJ /TT0 1 Tf 17.024 0 Td (ungetc)Tj /T1_1 1 Tf 3.903 0 Td [(clears )-53(the )-53(end-of-)]TJ -31.256 -1.2 Td [(\336le indication for the str)18(eam.)]TJ 1.8 -1.2 Td [(Pushback )-32(is )-32(often )-32(used )-32(when )-32(we\325r)]TJ 0.2819 Tc 15.219 0 Td (er)Tj 0 Tc 1.138 0 Td [(eading )-32(an )-32(input )-32(str)18(eam )-32(and )-32(br)18(eaking )-32(the )-32(input)]TJ -18.157 -1.2 Td [(into )-25(wor)18(ds )-25(or )-25(tokens )-25(of )-25(some )-25(form.)-525(Sometimes )-25(we )-25(need )-25(to )-25(peek )-25(at )-25(the )-25(next )-25(character )-25(to)]TJ 0 -1.2 TD [(determine )-9(how )-9(to )-9(handle )-9(the )-9(curr)16(ent )-9(character)]TJ 0.5094 Tc 20.545 0 Td (.I)Tj 0 Tc 1.096 0 Td [(t\325s )-9(then )-9(easy )-9(to )-9(push )-9(back )-9(the )-9(character)]TJ -21.641 -1.2 Td [(that )-31(we )-31(peeked )-31(at, )-31(for )-31(the )-31(next )-31(call )-31(to)]TJ /TT0 1 Tf 16.82 0 Td (getc)Tj /T1_1 1 Tf 2.681 0 Td [(to )-31(r)18(eturn. )-281(If)-281(the )-31(standar)]TJ 0.2812 Tc 10.635 0 Td (dI)Tj 0 Tc 1.229 0 Td [(/O )-31(library )-31(didn\325t)]TJ -31.366 -1.2 Td [(pr)18(ovide )-73(this )-73(pushback )-73(capability)110(,)-323(we)-323(w)-1(ould )-73(have )-73(to )-73(stor)]TJ 0.3233 Tc 25.303 0 Td (et)Tj 0 Tc 1.128 0 Td [(he )-73(character )-73(in )-73(a )-73(variable )-73(of)]TJ -26.432 -1.2 Td [(our )-114(own, )-114(along )-114(with )-114(a )-114(\337ag )-114(telling )-114(us )-114(to )-114(use )-114(this )-114(character )-114(instead )-114(of )-114(calling)]TJ /TT0 1 Tf 34.849 0 Td (getc)Tj /T1_1 1 Tf 2.764 0 Td (the)Tj -37.613 -1.2 Td [(next time we need a character)74(.)]TJ 7.9995 0 0 7.9995 183.5884 516.969 Tm [(When )-69(we )-69(push )-69(characters )-69(back )-69(with)]TJ /TT0 1 Tf 16.657 0 Td (ungetc)Tj /T1_1 1 Tf 0.3194 Tc (,t)Tj 0 Tc 4.495 0 Td [(hey )-69(ar)]TJ 0.3194 Tc 2.813 0 Td (en)Tj 0 Tc 1.38 0 Td [(ot )-69(written )-69(back )-69(to )-69(the )-69(underlying )-69(\336le)]TJ -25.346 -1.25 Td [(or device.)-500(Instead, they ar)]TJ 0.25 Tc 11.639 0 Td (ek)Tj 0 Tc 1.285 0 Td [(ept incor)18(e)-250(in)-250(the standar)]TJ 0.25 Tc 10.705 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O library\325s buf)18(fer for the str)18(eam.)]TJ /TT1 1 Tf 9.9994 0 0 9.9994 93.5941 478.9713 Tm (Output Functions)Tj /T1_1 1 Tf 3.6 -2.4 Td [(Output )-187(functions )-187(ar)]TJ 0.4372 Tc 9.127 0 Td (ea)Tj 0 Tc 1.416 0 Td [(vailable )-187(that )-187(corr)18(espond )-187(to )-187(each )-187(of )-187(the )-187(input )-187(functions )-187(we\325ve)]TJ -10.544 -1.2 Td [(alr)18(eady described.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5906 426.2744 Tm (#include )Tj 0 -1.902 TD (int putc\(int)Tj /T1_2 1 Tf 7.8 0 Td (c)Tj /TT0 1 Tf 0.6 Tc (,F)Tj 0 Tc 2.207 0 Td (ILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj -10.007 -1.902 Td (int fputc\(int)Tj /T1_2 1 Tf 8.4 0 Td (c)Tj /TT0 1 Tf 0.6 Tc (,F)Tj 0 Tc 2.207 0 Td (ILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj -10.607 -1.902 Td (int putchar\(int)Tj /T1_2 1 Tf 9.6 0 Td (c)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 13.205 -1.902 Td [(All thr)18(ee r)18(eturn:)]TJ /T1_2 1 Tf 7.365 0 Td (c)Tj /T1_1 1 Tf 0.657 0 Td (if OK,)Tj /TT0 1 Tf 2.886 0 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td [(on err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3533.25 cm 0 0 m 0 820 l 3900 820 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 339.7792 Tm [(As )-203(with )-203(the )-203(input )-203(functions,)]TJ /TT0 1 Tf 13.674 0 Td (putchar\(c\))Tj /T1_1 1 Tf 6.454 0 Td [(is )-203(equivalent )-203(to)]TJ /TT0 1 Tf 7.623 0 Td [(putc\(c, )147(stdout\))]TJ /T1_1 1 Tf 0.4534 Tc (,a)Tj 0 Tc 10.057 0 Td (nd)Tj /TT0 1 Tf -37.807 -1.2 Td (putc)Tj /T1_1 1 Tf 2.838 0 Td [(can )-188(be )-188(implemented )-188(as )-188(a )-188(macr)18(o, )-188(wher)17(eas)]TJ /TT0 1 Tf 19.629 0 Td (fputc)Tj /T1_1 1 Tf 3.438 0 Td [(cannot )-188(be )-188(implemented )-188(as )-188(a)]TJ -25.906 -1.2 Td [(macr)18(o.)]TJ /TT1 1 Tf 11.9986 0 0 11.9986 93.5891 279.7864 Tm [(5.7 )-1332(Line-at-a-Time)-556(I/O)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5846 255.7893 Tm [(Line-at-a-time input is pr)18(ovided by the two functions,)]TJ /TT0 1 Tf 24.049 0 Td (fgets)Tj /T1_1 1 Tf 3.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (gets)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5826 239.0913 Tm (#include )Tj T* (char *fgets\(char *restrict)Tj /T1_2 1 Tf 16.2 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.097 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (n)Tj /TT0 1 Tf 0.6 Tc (,F)Tj 0 Tc 2.356 0 Td (ILE *restrict)Tj /T1_2 1 Tf 8.4 0 Td (fp)Tj /TT0 1 Tf (\);)Tj -31.853 -1.902 Td (char *gets\(char *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 11.682 0 Td (\);)Tj /T1_1 1 Tf 5.051 -1.902 Td [(Both r)18(eturn:)]TJ /TT0 1 Tf 5.577 0 Td (buf)Tj /T1_1 1 Tf 2.05 0 Td (if OK,)Tj /TT0 1 Tf 2.886 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on end of \336le or err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1832.25 cm 0 0 m 0 649 l 3900 649 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 169.7294 Tm [(Both )-134(specify )-134(the )-134(addr)18(ess )-134(of )-134(the )-134(buf)18(fer )-134(to )-134(r)18(ead )-134(the )-134(line )-134(into.)-637(The)]TJ /TT0 1 Tf 29.734 0 Td (gets)Tj /T1_1 1 Tf 2.784 0 Td [(function )-134(r)18(eads)]TJ -32.518 -1.2 Td [(fr)18(om standar)]TJ 0.25 Tc 5.709 0 Td (di)Tj 0 Tc 1.152 0 Td [(nput, wher)18(eas)]TJ /TT0 1 Tf 6.537 0 Td (fgets)Tj /T1_1 1 Tf -0.018 Tc 3.25 0 Td (re)Tj 0 Tc 0.856 0 Td [(ads fr)18(om the speci\336ed str)18(eam.)]TJ -0.055 Tc -15.704 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td (th)Tj /TT0 1 Tf 1.301 0 Td (fgets)Tj /T1_1 1 Tf [(,)-393(we)-393(have )-143(to )-143(specify )-143(the )-143(size )-143(of )-143(the )-143(buf)17(fer)74(,)]TJ /T1_2 1 Tf 22.822 0 Td (n)Tj /T1_1 1 Tf 0.6432 Tc (.T)Tj 0 Tc 2.062 0 Td [(his )-143(function )-143(r)18(eads )-143(up)]TJ -29.221 -1.2 Td [(thr)18(ough )-189(and )-189(including )-189(the )-189(next )-189(newline, )-189(but )-189(no )-189(mor)]TJ 0.4394 Tc 24.525 0 Td (et)Tj 0 Tc 1.244 0 Td (han)Tj /T1_2 1 Tf 2.103 0 Td (n)Tj /TT2 1 Tf 0.723 0 Td (!)Tj /T1_2 1 Tf 0.716 0 Td (1)Tj /T1_1 1 Tf 0.939 0 Td [(characters, )-189(into )-189(the)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46866 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (150)Tj /T1_1 1 Tf 3.5 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Library)]TJ 34.372 0 Td [(Chapter )-250(5)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(any )-51(other )-51(operation )-51(on )-51(the )-51(str)18(eam, )-51(we )-51(can )-51(change )-51(the )-51(buf)18(fering )-51(if )-51(we )-51(want )-51(to, )-51(with )-51(the)]TJ /TT0 1 Tf 0 -1.2 TD (setbuf)Tj /T1_1 1 Tf 3.85 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (setvbuf)Tj /T1_1 1 Tf 4.45 0 Td [(functions fr)18(om the pr)18(evious section.)]TJ -7.691 -1.2 Td [(An open str)18(eam is closed by calling)]TJ /TT0 1 Tf 15.881 0 Td (fclose)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 628.2623 Tm (#include )Tj 0 -1.664 TD (int fclose\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 26.1 -1.664 Td (Returns: 0 if OK,)Tj /TT0 1 Tf 7.613 0 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td [(on err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5938.25 cm 0 0 m 0 435 l 3900 435 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 580.2704 Tm [(Any )-77(buf)18(fer)18(ed )-77(output )-77(data )-77(is )-77(\337ushed )-77(befor)]TJ 0.3268 Tc 18.879 0 Td (et)Tj 0 Tc 1.132 0 Td [(he )-77(\336le )-77(is )-77(closed.)-577(Any )-77(input )-77(data )-77(that )-77(may)]TJ -20.011 -1.2 Td [(be )-226(buf)18(fer)18(ed )-226(is )-226(discar)17(ded. )-477(If)-476(the )-227(standar)]TJ 0.4766 Tc 18.581 0 Td (dI)Tj 0 Tc 1.425 0 Td [(/O )-227(library )-227(had )-227(automatically )-227(allocated )-227(a)]TJ -20.006 -1.2 Td [(buf)18(fer for the str)18(eam, that buf)18(fer is r)18(eleased.)]TJ 1.8 -1.2 Td [(When )-39(a )-39(pr)18(ocess )-39(terminates )-39(normally)]TJ 0.289 Tc 16.212 0 Td (,e)Tj 0 Tc 1.018 0 Td [(ither )-39(by )-39(calling )-39(the)]TJ /TT0 1 Tf 8.68 0 Td (exit)Tj /T1_1 1 Tf 2.689 0 Td [(function )-39(dir)18(ectly )-39(or)]TJ -30.399 -1.2 Td [(by )-38(r)18(eturning )-38(fr)18(om )-38(the)]TJ /TT0 1 Tf 9.98 0 Td (main)Tj /T1_1 1 Tf 2.688 0 Td [(function, )-38(all )-38(standar)]TJ 0.2884 Tc 8.936 0 Td (dI)Tj 0 Tc 1.236 0 Td [(/O )-38(str)18(eams )-38(with )-38(unwritten )-38(buf)17(fer)18(ed)]TJ -22.84 -1.2 Td (data ar)Tj 0.25 Tc 3.064 0 Td (e\337)Tj 0 Tc 1.337 0 Td (ushed and all open standar)Tj 0.25 Tc 12.002 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O str)18(eams ar)]TJ 0.25 Tc 6.182 0 Td (ec)Tj 0 Tc 1.173 0 Td (losed.)Tj /TT1 1 Tf 11.9986 0 0 11.9986 93.5879 490.2812 Tm [(5.6 )-1332(Reading)-556(and )-278(Writing )-278(a )-278(Stream)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5835 472.2833 Tm [(Once we open a str)18(eam, we can choose fr)18(om among thr)18(ee types of unformatted I/O:)]TJ 1.8 -1.92 Td [(1. )-633(Character)18(-at-a-time )-52(I/O.)]TJ -0.092 Tc 13.083 0 Td [(We )-236(c)]TJ 0 Tc 2.133 0 Td [(an )-52(r)18(ead )-52(or )-52(write )-52(one )-52(character )-52(at )-52(a )-52(time, )-52(with )-52(the)]TJ -13.583 -1.2 Td (standar)Tj 0.25 Tc 3.32 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O functions handling all the buf)18(fering, if the str)18(eam is buf)18(fer)18(ed.)]TJ -6.151 -1.6 Td [(2. )-633(Line-at-a-time)-326(I/O. )-326(If)-327(we )-76(want )-76(to )-76(r)18(ead )-76(or )-76(write )-76(a )-76(line )-76(at )-76(a )-76(time, )-76(we )-76(use)]TJ /TT0 1 Tf 34.2 0 Td (fgets)Tj /T1_1 1 Tf -32.567 -1.2 Td (and)Tj /TT0 1 Tf 2.054 0 Td (fputs)Tj /T1_1 1 Tf 0.6109 Tc (.E)Tj 0 Tc 4.472 0 Td [(ach )-111(line )-111(is )-111(terminated )-111(with )-111(a )-111(newline )-111(character)]TJ 0.3608 Tc 21.344 0 Td (,a)Tj 0 Tc 1.111 0 Td [(nd )-111(we )-111(have )-111(to)]TJ -28.981 -1.2 Td [(specify )-74(the )-74(maximum )-74(line )-74(length )-74(that )-74(we )-74(can )-74(handle )-74(when )-74(we )-74(call)]TJ /TT0 1 Tf 30.356 0 Td (fgets)Tj /T1_1 1 Tf 0.5741 Tc (.W)Tj 0 Tc 4.732 0 Td (e)Tj -35.088 -1.2 Td (describe these two functions in Section 5.7.)Tj -1.633 -1.6 Td [(3. )-633(Dir)18(ect )-34(I/O.)-535(This )-34(type )-34(of )-34(I/O )-34(is )-34(supported )-34(by )-34(the)]TJ /TT0 1 Tf 23.673 0 Td (fread)Tj /T1_1 1 Tf 3.284 0 Td (and)Tj /TT0 1 Tf 1.977 0 Td (fwrite)Tj /T1_1 1 Tf 3.884 0 Td (functions.)Tj -31.186 -1.2 Td [(For )-100(each )-100(I/O )-100(operation, )-100(we )-100(r)16(ead )-100(or )-100(write )-100(some )-100(number )-100(of )-100(objects, )-100(wher)]TJ 0.3505 Tc 32.733 0 Td (ee)Tj 0 Tc 1.309 0 Td (ach)Tj -34.041 -1.2 Td [(object )-83(is )-83(of )-83(a )-83(speci\336ed )-83(size.)-583(These )-83(two )-83(functions )-83(ar)]TJ 0.3328 Tc 23.091 0 Td (eo)Tj 0 Tc 1.358 0 Td [(ften )-83(used )-83(for )-83(binary )-83(\336les)]TJ -24.449 -1.2 Td [(wher)18(e)-303(we)-303(r)18(ead )-53(or )-53(write )-53(a )-53(str)8(uctur)]TJ 0.3029 Tc 15.104 0 Td (ew)Tj 0 Tc 1.616 0 Td [(ith )-53(each )-53(operation.)]TJ -0.092 Tc 8.879 0 Td [(We )-237(d)]TJ 0 Tc 2.301 0 Td [(escribe )-53(these )-53(two)]TJ -27.9 -1.2 Td (functions in Section 5.9.)Tj 7.999 0 0 7.999 219.573 308.703 Tm [(The )-38(term)]TJ /T1_2 1 Tf 4.334 0 Td [(dir)18(ect )-38(I/O)]TJ /T1_1 1 Tf 0.2884 Tc (,f)Tj -0.018 Tc 4.845 0 Td (ro)Tj 0.2884 Tc 0.923 0 Td (mt)Tj 0 Tc 1.497 0 Td [(he )-38(ISO )-38(C )-38(standar)17(d, )-38(is )-38(known )-38(by )-38(many )-38(names: )-38(binary )-38(I/O,)]TJ -11.599 -1.25 Td [(object-at-a-time )-85(I/O, )-85(r)18(ecor)18(d-oriented )-85(I/O, )-85(or )-85(str)7(uctur)18(e-oriented )-85(I/O.)-585(Don\325t )-85(confuse)]TJ 0 -1.25 TD [(this )-77(featur)]TJ 0.3269 Tc 4.568 0 Td (ew)Tj 0 Tc 1.64 0 Td [(ith )-77(the)]TJ /TT0 1 Tf 3.24 0 Td [(O_DIRECT )273(open)]TJ /T1_1 1 Tf 7.854 0 Td [(\337ag )-77(supported )-77(by )-77(Fr)18(eeBSD )-77(and )-77(Linux)]TJ 0.0833 Tc 17.173 0 Td (\321t)Tj 0 Tc 1.409 0 Td (hey)Tj -35.883 -1.25 Td (ar)Tj 0.25 Tc 0.877 0 Td (eu)Tj 0 Tc 1.332 0 Td [(nr)18(elated.)]TJ 9.9988 0 0 9.9988 129.5837 260.7087 Tm (\(W)Tj 0.25 Tc 1.241 0 Td (ed)Tj 0 Tc 1.34 0 Td (escribe the formatted I/O functions, such as)Tj /TT0 1 Tf 19.688 0 Td (printf)Tj /T1_1 1 Tf 3.85 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (scanf)Tj /T1_1 1 Tf [(,)-250(in)-250(Section 5.1)55(1.\))]TJ /TT1 1 Tf -31.662 -2.28 Td (Input Functions)Tj /T1_1 1 Tf 3.6 -1.68 Td [(Thr)18(ee functions allow us to r)18(ead one character at a time.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.582 204.4155 Tm (#include )Tj 0 -1.664 TD (int getc\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj -0 -1.664 Td (int fgetc\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj 0 -1.664 TD (int getchar\(void\);)Tj /T1_1 1 Tf 11.127 -1.664 Td [(All thr)18(ee r)18(eturn: next character if OK,)]TJ /TT0 1 Tf 16.719 0 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td [(on end of \336le or err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1400.25 cm 0 0 m 0 734 l 3900 734 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46867 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.5)]TJ /TT0 1 Tf 36.579 0 Td (exit)Tj /T1_0 1 Tf 2.9 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (237)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 163.9202 668.9599 Tm [(signals )-311(generated )-311(by )-311(the )-311(kernel )-311(include )-311(the )-311(pr)18(ocess )-311(r)18(efer)18(encing )-311(a )-311(memory)]TJ 0 -1.2 Td [(location not within its addr)18(ess space or trying to divide by 0.)]TJ -1.633 -1.6 Td [(3. )-633(The)-520(last )-270(thr)18(ead )-270(r)18(esponds )-270(to )-270(a )-270(cancellation )-270(r)17(equest. )-520(By)-520(default, )-270(cancellation)]TJ 1.633 -1.2 Td [(occurs )-67(in )-67(a )-67(deferr)19(ed )-67(manner: )-67(one )-67(thr)18(ead )-67(r)18(equests )-67(that )-67(another )-67(be )-67(canceled, )-67(and)]TJ 0 -1.2 TD [(sometime )-32(later )-32(the )-32(tar)18(get )-32(thr)18(ead )-32(terminates.)]TJ -0.092 Tc 20.008 0 Td [(We )-217(d)]TJ 0 Tc 2.281 0 Td [(iscuss )-32(cancellation )-32(r)18(equests )-32(in)]TJ -22.288 -1.2 Td [(detail in Sections 1)55(1.5 and 12.7.)]TJ -1.633 -2.04 Td [(Regar)18(dless )-107(of )-107(how )-107(a )-107(pr)19(ocess )-107(terminates, )-107(the )-107(same )-107(code )-107(in )-107(the )-107(kernel )-107(is )-107(eventually)]TJ -1.8 -1.2 Td [(executed. )-348(This)-348(kernel )-98(code )-98(closes )-98(all )-98(the )-98(open )-98(descriptors )-98(for )-98(the )-98(pr)18(ocess, )-98(r)18(eleases )-98(the)]TJ T* (memory that it was using, and so on.)Tj 1.8 -1.2 Td [(For )-28(any )-28(of )-28(the )-28(pr)16(eceding )-28(cases, )-28(we )-28(want )-28(the )-28(terminating )-28(pr)18(ocess )-28(to )-28(be )-28(able )-28(to )-28(notify)]TJ -1.8 -1.2 Td [(its )-116(par)18(ent )-116(how )-116(it )-116(terminated.)-616(For )-116(the )-116(thr)15(ee )-116(exit )-116(functions )-116(\()]TJ /TT0 1 Tf 26.725 0 Td (exit)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.016 0 Td (_exit)Tj /T1_0 1 Tf 0.3664 Tc (,a)Tj 0 Tc 4.116 0 Td (nd)Tj /TT0 1 Tf 1.559 0 Td (_Exit)Tj /T1_0 1 Tf (\),)Tj -35.417 -1.2 Td [(this )-53(is )-53(done )-53(by )-53(passing )-53(an )-53(exit )-53(status )-53(as )-53(the )-53(ar)18(gument )-53(to )-53(the )-53(function.)-553(In )-53(the )-53(case )-53(of )-53(an)]TJ T* [(abnormal )-85(termination, )-85(however)]TJ 0.3355 Tc 14.178 0 Td (,t)Tj 0 Tc 0.911 0 Td [(he )-85(kernel)]TJ 0.0833 Tc 4.262 0 Td (\321n)Tj 0 Tc 1.665 0 Td [(ot )-85(the )-85(pr)17(ocess )167(\321 )167(generates)]TJ 0.3354 Tc 11.947 0 Td (at)Tj 0 Tc 1.161 0 Td (ermination)Tj -34.125 -1.2 Td [(status )-11(to )-11(indicate )-11(the )-11(r)16(eason )-11(for )-11(the )-11(abnormal )-11(termination.)-511(In )-11(any )-11(case, )-11(the )-11(par)18(ent )-11(of )-11(the)]TJ T* [(pr)18(ocess )-17(can )-17(obtain )-17(the )-17(termination )-17(status )-17(fr)18(om )-17(either )-17(the)]TJ /TT0 1 Tf 25.295 0 Td (wait)Tj /T1_0 1 Tf 2.667 0 Td [(or )-17(the)]TJ /TT0 1 Tf 2.863 0 Td (waitpid)Tj /T1_0 1 Tf 4.467 0 Td (function)Tj -35.293 -1.2 Td (\(described in the next section\).)Tj 1.8 -1.2 Td [(Note )-71(that )-71(we )-71(dif)17(fer)18(entiate )-71(between )-71(the )-71(exit )-71(status, )-71(which )-71(is )-71(the )-71(ar)18(gument )-71(to )-71(one )-71(of)]TJ -1.8 -1.2 Td [(the )-54(thr)18(ee )-54(exit )-54(functions )-54(or )-54(the )-54(r)18(eturn )-54(value )-54(fr)20(om)]TJ /TT0 1 Tf 21.773 0 Td (main)Tj /T1_0 1 Tf 0.3037 Tc (,a)Tj 0 Tc 3.454 0 Td [(nd )-54(the )-54(termination )-54(status.)-553(The)]TJ -25.227 -1.2 Td [(exit )-128(status )-128(is )-128(converted )-128(into )-128(a )-128(termination )-128(status )-128(by )-128(the )-128(kernel )-128(when)]TJ /TT0 1 Tf 31.703 0 Td (_exit)Tj /T1_0 1 Tf 3.379 0 Td [(is )-128(\336nally)]TJ -35.082 -1.2 Td [(called )-56(\(r)18(ecall )-56(Figur)]TJ 0.3061 Tc 8.326 0 Td (e7)Tj 0 Tc 1.285 0 Td [(.2\). )-306(Figur)]TJ 0.3061 Tc 4.272 0 Td (e8)Tj 0 Tc 1.285 0 Td [(.4 )-56(describes )-56(the )-56(various )-56(ways )-56(the )-56(par)17(ent )-56(can )-56(examine)]TJ -15.169 -1.2 Td [(the )-22(termination )-22(status )-22(of )-22(a )-22(child.)-522(If )-22(the )-22(child )-22(terminated )-22(normally)]TJ 0.2717 Tc 29.087 0 Td (,t)Tj 0 Tc 0.848 0 Td [(he )-22(par)18(ent )-22(can )-22(obtain)]TJ -29.935 -1.2 Td (the exit status of the child.)Tj 1.8 -1.2 Td [(When )-114(we )-114(described )-114(the)]TJ /TT0 1 Tf 11.087 0 Td (fork)Tj /T1_0 1 Tf 2.764 0 Td [(function, )-114(it )-114(was )-114(obvious )-114(that )-114(the )-114(child )-114(has )-114(a )-114(par)16(ent)]TJ -15.651 -1.2 Td [(pr)18(ocess )-73(after )-73(the )-73(call )-73(to)]TJ /TT0 1 Tf 10.73 0 Td (fork)Tj /T1_0 1 Tf 0.5734 Tc (.N)Tj 0 Tc 4.054 0 Td [(ow )-73(we\325r)]TJ 0.3234 Tc 3.671 0 Td (et)Tj 0 Tc 1.128 0 Td [(alking )-73(about )-73(r)18(eturning )-73(a )-73(termination )-73(status)]TJ -19.584 -1.2 Td [(to )-58(the )-58(par)18(ent. )-308(But)-308(what )-58(happens )-58(if )-58(the )-58(par)18(ent )-58(terminates )-58(befor)]TJ 0.3078 Tc 28.102 0 Td (et)Tj 0 Tc 1.113 0 Td [(he )-58(child?)-557(The )-58(answer)]TJ -29.215 -1.2 Td [(is )-255(that )-255(the)]TJ /TT0 1 Tf 5.352 0 Td (init)Tj /T1_0 1 Tf 2.906 0 Td [(pr)18(ocess )-255(becomes )-255(the )-255(par)18(ent )-255(pr)16(ocess )-256(of )-256(any )-256(pr)18(ocess )-256(whose )-256(par)20(ent)]TJ -8.258 -1.2 Td [(terminates. )-332(In)-333(such )-82(a )-82(case, )-82(we )-82(say )-82(that )-82(the )-82(pr)18(ocess )-82(has )-82(been )-82(inherited )-82(by)]TJ /TT0 1 Tf 33.359 0 Td (init)Tj /T1_0 1 Tf 0.5823 Tc (.W)Tj 0 Tc 4.232 0 Td (hat)Tj -37.592 -1.2 Td [(normally )-149(happens )-149(is )-149(that )-149(whenever )-149(a )-149(pr)20(ocess )-149(terminates, )-149(the )-149(kernel )-149(goes )-149(thr)18(ough )-149(all)]TJ T* [(active )-26(pr)18(ocesses )-26(to )-26(see )-26(whether )-26(the )-26(terminating )-26(pr)18(ocess )-26(is )-26(the )-26(par)18(ent )-26(of )-26(any )-26(pr)18(ocess )-26(that)]TJ T* [(still )-70(exists.)-570(If )-70(so, )-70(the )-70(par)18(ent )-70(pr)18(ocess )-70(ID )-70(of )-70(the )-70(surviving )-70(pr)18(ocess )-70(is )-70(changed )-70(to )-70(be )-70(1 )-70(\(the)]TJ T* [(pr)18(ocess ID of)]TJ /TT0 1 Tf 6.035 0 Td (init)Tj /T1_0 1 Tf [(\). )-250(This)-250(way)]TJ 0.25 Tc 7.422 0 Td (,w)Tj 0 Tc 1.334 0 Td (e\325r)Tj 0.25 Tc 1.134 0 Td (eg)Tj 0 Tc 1.285 0 Td [(uaranteed that every pr)18(ocess has a par)18(ent.)]TJ -15.41 -1.2 Td [(Another )-159(condition )-159(we )-159(have )-159(to )-159(worry )-159(about )-159(is )-159(when )-159(a )-159(child )-159(terminates )-159(befor)]TJ 0.4095 Tc 35.27 0 Td (ei)Tj 0 Tc 1.179 0 Td (ts)Tj -38.25 -1.2 Td [(par)18(ent. )-422(If)-422(the )-172(child )-172(completely )-172(disappear)18(ed, )-172(the )-172(par)19(ent )-172(wouldn\325t )-172(be )-172(able )-172(to )-172(fetch )-172(its)]TJ T* [(termination )-133(status )-133(when )-133(and )-133(if )-133(the )-133(par)18(ent )-133(was )-133(\336nally )-133(r)18(eady )-133(to )-133(check )-133(if )-133(the )-133(child )-133(had)]TJ T* [(terminated. )-472(The)-472(kernel )-222(keeps )-222(a )-222(small )-222(amount )-222(of )-222(information )-222(for )-222(every )-222(terminating)]TJ T* [(pr)18(ocess, )-50(so )-50(that )-50(the )-50(information )-50(is )-50(available )-50(when )-50(the )-50(par)18(ent )-50(of )-50(the )-50(terminating )-50(pr)15(ocess)]TJ 0 -1.2 Td (calls)Tj /TT0 1 Tf 2.414 0 Td (wait)Tj /T1_0 1 Tf 2.864 0 Td (or)Tj /TT0 1 Tf 1.405 0 Td (waitpid)Tj /T1_0 1 Tf 0.7142 Tc (.M)Tj 0 Tc 6.11 0 Td (inimally)Tj 0.4642 Tc 3.574 0 Td (,t)Tj 0 Tc 1.04 0 Td [(his )-214(information )-214(consists )-214(of )-214(the )-214(pr)18(ocess )-214(ID, )-214(the)]TJ -17.408 -1.2 Td [(termination )-138(status )-138(of )-138(the )-138(pr)18(ocess, )-138(and )-138(the )-138(amount )-138(of )-138(CPU )-138(time )-138(taken )-138(by )-138(the )-138(pr)18(ocess.)]TJ T* [(The )-81(kernel )-81(can )-81(discar)]TJ 0.331 Tc 9.622 0 Td (da)Tj 0 Tc 1.442 0 Td [(ll )-81(the )-81(memory )-81(used )-81(by )-81(the )-81(pr)18(ocess )-81(and )-81(close )-81(its )-81(open )-81(\336les.)-582(In)]TJ -11.064 -1.2 Td [(UNIX )-51(System )-51(terminology)]TJ 0.3011 Tc 11.748 0 Td (,ap)Tj -0.018 Tc 1.953 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-51(that )-51(has )-51(terminated, )-51(but )-51(whose )-51(par)17(ent )-51(has )-51(not )-51(yet)]TJ -14.624 -1.2 Td [(waited )-13(for )-13(it, )-13(is )-13(called )-13(a)]TJ /T1_2 1 Tf 10.593 0 Td (zombie)Tj /T1_0 1 Tf 0.5134 Tc (.T)Tj 0 Tc 4.172 0 Td (he)Tj /TT0 1 Tf 1.324 0 Td (ps)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.596 -0.04 Td [(command )-13(prints )-13(the )-13(state )-13(of )-13(a )-13(zombie )-13(pr)15(ocess)]TJ -18.72 -1.2 Td (as)Tj /T1_2 1 Tf 1.437 0 Td (Z)Tj /T1_0 1 Tf 0.7626 Tc (.I)Tj 0 Tc 2.017 0 Td [(f)-513(we)-513(w)1(rite )-263(a )-263(long-r)9(unning )-262(pr)18(ogram )-262(that)]TJ /TT0 1 Tf 19.542 0 Td (fork)Tj /T1_0 1 Tf 0.5125 Tc (sm)Tj 0 Tc 4.219 0 Td [(any )-262(child )-262(pr)18(ocesses, )-262(they)]TJ -27.215 -1.2 Td (become zombies unless we wait for them and fetch their termination statu\ s.)Tj 7.9995 0 0 7.9995 183.5884 134.9919 Tm [(Some systems pr)18(ovide ways to pr)18(event the cr)18(eation of zombies, as we describe in Section 10.7.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46868 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (952)Tj /T1_1 1 Tf 3.5 0 Td (Bibliography)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 8.9995 0 0 8.9995 129.5922 669.9598 Tm [(The )-18(Open )-18(Gr)19(oup. )-268(2008.)]TJ /T1_2 1 Tf 11.083 0 Td [(The )-18(Single )-18(UNIX )-18(Speci\336cation, )-18(V)92(ersion )-18(4)]TJ /T1_1 1 Tf 0.5178 Tc 16.952 0 Td (.T)Tj 0 Tc 1.381 0 Td [(he )-18(Open )-18(Gr)18(oup, )-18(Berkshir)18(e, )-18(UK.)]TJ 7.9995 0 0 7.9995 179.9894 656.6606 Tm [(The POSIX and X/Open standar)18(ds combined into a single r)18(efer)18(ence.)]TJ 0 -1.875 TD [(The HTML version can be viewed for fr)18(ee online at)]TJ /TT0 1 Tf 22.814 0 Td (http://www.opengroup.org)Tj /T1_1 1 Tf (.)Tj 8.9995 0 0 8.9995 129.5924 622.9626 Tm [(Pike, )-25(R., )-25(Pr)18(esotto, )-25(D., )-25(Dorwar)18(d, )-25(S., )-25(Flandr)18(ena, )-25(B., )-25(Thompson, )-25(K., )-25(T)91(rickey)]TJ 0.2749 Tc 31.786 0 Td (,H)Tj 0 Tc 1.357 0 Td [(., )-25(and )-25(W)55(interbottom, )-25(P)129(.)]TJ -29.943 -1.222 Td [(1995. )-261(\324)37(\324Plan )-11(9 )-11(fr)18(om )-11(Bell )-11(Labs,\325)37(\325)]TJ /T1_2 1 Tf 13.73 0 Td [(Plan )-11(9 )-11(Pr)18(ogrammer )213(\325)]TJ 0.261 Tc 8.264 0 Td (sM)Tj 0 Tc 1.594 0 Td [(anual )-11(V)74(olume )-11(2)]TJ /T1_1 1 Tf 0.5111 Tc (.A)Tj 0 Tc 7.858 0 Td [(T&T, )-11(Reading, )-11(MA.)]TJ 0.4139 Tc 7.9995 0 0 7.9995 179.989 598.6641 Tm (Ad)Tj 0 Tc 1.803 0 Td [(escription )-164(of )-164(the )-164(Plan )-164(9 )-164(operating )-164(system, )-164(developed )-164(in )-164(the )-164(same )-164(department )-164(wher)]TJ 0.4138 Tc 38.367 0 Td (et)Tj 0 Tc 1.219 0 Td (he)Tj -41.389 -1.25 Td (UNIX System was invented.)Tj 8.9995 0 0 8.9995 129.592 569.9658 Tm (Plauger)Tj 0.25 Tc 3.354 0 Td [(,P)379(.J)]TJ 0.5 Tc 1.808 0 Td (.1)Tj 0 Tc 1.25 0 Td (992.)Tj /T1_2 1 Tf 2.25 0 Td (The Standard C Library)Tj /T1_1 1 Tf 0.5 Tc (.P)Tj -0.018 Tc 11.012 0 Td (re)Tj 0 Tc 0.856 0 Td [(ntice Hall, Englewood Clif)18(fs, NJ.)]TJ 0.2684 Tc 7.9995 0 0 7.9995 179.9885 556.6666 Tm (Ac)Tj 0 Tc 1.49 0 Td [(omplete )-18(book )-18(on )-18(the )-18(ANSI )-18(C )-18(library)]TJ 0.5184 Tc 15.981 0 Td (.I)Tj 0.2685 Tc 1.105 0 Td (tc)Tj 0 Tc 1.038 0 Td [(ontains )-18(a )-18(complete )-18(C )-18(implementation )-18(of )-18(the )-18(library)108(.)]TJ 8.9995 0 0 8.9995 129.5913 537.9677 Tm [(Pr)18(esotto, )-218(D. )-218(L., )-218(and )-218(Ritchie, )-218(D. )-218(M.)-715(1990. )-467(\324)37(\324Interpr)18(ocess )-217(Communication )-217(in )-217(the )-217(Ninth )-217(Edition)]TJ 3.2 -1.222 Td [(UNIX System,\325)37(\325)]TJ /T1_2 1 Tf 7.075 0 Td (Softwar)Tj 0.25 Tc 3.148 0 Td (eP)Tj 0 Tc 1.25 0 Td (ractice and Experience)Tj /T1_1 1 Tf 0.25 Tc (,v)Tj 0 Tc 10.12 0 Td (ol. 20, no. S1, pp. S1/3\320S1/17 \(June\).)Tj 7.9995 0 0 7.9995 179.9884 513.6692 Tm [(Describes )-22(the )-22(IPC )-22(facilities )-22(pr)18(ovided )-22(by )-22(the )-22(Ninth )-22(Edition )-22(Resear)18(ch )-22(UNIX )-22(System, )-22(developed )-22(at)]TJ -0.074 Tc 0 -1.25 TD (AT)Tj 0 Tc 1.317 0 Td [(&T )-49(Bell )-49(Laboratories.)-549(The )-49(featur)18(es )-49(ar)]TJ 0.2994 Tc 16.698 0 Td (eb)Tj 0 Tc 1.331 0 Td [(uilt )-49(on )-49(the )-49(str)18(eam )-49(input\320output )-49(system )-49(and )-49(include)]TJ -19.346 -1.25 Td [(full-duplex )-260(pipes, )-260(the )-260(ability )-260(to )-260(pass )-260(\336le )-260(descriptors )-260(between )-260(pr)18(ocesses, )-260(and )-260(unique )-260(client)]TJ T* (connections to servers.)Tj 0.25 Tc 10.529 0 Td (Ac)Tj 0 Tc 1.472 0 Td [(opy of this paper also appears in A)74(T&T)]TJ 17.623 0.04 Td ([)Tj 0.333 -0.04 Td (1990b)Tj 2.553 0.04 Td (])Tj 0.333 -0.04 Td (.)Tj 8.9995 0 0 8.9995 129.5917 464.9721 Tm [(Rago, S. A.)-500(1993.)]TJ /T1_2 1 Tf 8.073 0 Td [(UNIX System V Network Pr)18(ogramming)]TJ /T1_1 1 Tf 0.5 Tc (.A)Tj 0 Tc 17.954 0 Td [(ddison-W)92(esley, Reading, MA.)]TJ 0.2896 Tc 7.9995 0 0 7.9995 179.9887 451.6729 Tm (Ab)Tj 0 Tc 1.621 0 Td [(ook )-40(that )-40(describes )-40(the )-40(networking )-40(pr)20(ogramming )-39(envir)18(onment )-39(of )-39(UNIX )-39(System )-39(V )-39(Release )-39(4,)]TJ -1.621 -1.25 Td (which is based on STREAMS.)Tj 8.9995 0 0 8.9995 129.5914 422.9746 Tm [(Raymond, )-146(E. )-146(S., )-146(ed.)-646(1996.)]TJ /T1_2 1 Tf 12.551 0 Td [(The )-146(New )-146(Hacker)]TJ -0.055 Tc 7.069 0 Td [(\325s )-256(D)]TJ 0 Tc 1.786 0 Td (ictionary)Tj 0.396 Tc 3.592 0 Td (,T)Tj 0 Tc 1.257 0 Td [(hird )-146(Edition.)]TJ /T1_1 1 Tf 6.605 0 Td [(MIT )-146(Pr)18(ess, )-146(Cambridge,)]TJ -29.66 -1.222 Td (MA.)Tj 7.9995 0 0 7.9995 179.9881 398.6761 Tm (Lots of computer hacker terms de\336ned.)Tj 8.9995 0 0 8.9995 129.5912 379.9772 Tm (Salus, P)Tj 0.25 Tc 3.318 0 Td (.H)Tj 0.5 Tc 1.332 0 Td (.1)Tj 0 Tc 1.25 0 Td (994.)Tj /T1_2 1 Tf 0.25 Tc 2.25 0 Td (AQ)Tj 0 Tc 1.75 0 Td (uarter Century of UNIX)Tj /T1_1 1 Tf 0.5 Tc (.A)Tj 0 Tc 11.501 0 Td [(ddison-W)92(esley, Reading, MA.)]TJ 0.25 Tc 7.9995 0 0 7.9995 179.9881 366.678 Tm (Ah)Tj 0 Tc 1.61 0 Td [(istory of the UNIX System fr)18(om 1969 to 1994.)]TJ 8.9995 0 0 8.9995 129.5912 347.9791 Tm (Seltzer)Tj 0.2553 Tc 2.921 0 Td (,M)Tj 0 Tc 1.451 0 Td [(., )-5(and )-5(Olson, )-5(M.)-506(1992. )-255(\324)37(\324LIBTP: )-5(Portable )-5(Modular )-5(T)90(ransactions )-5(for )-5(UNIX,\325)36(\325)]TJ /T1_2 1 Tf 33.15 0 Td [(Pr)18(oceedings )-5(of)]TJ -34.322 -1.222 Td [(the 1992 W)20(inter USENIX Confer)18(ence)]TJ /T1_1 1 Tf 0.25 Tc (,p)Tj 0 Tc 16.416 0 Td (p. 9)Tj 1.684 0.09 Td (\320)Tj 0.583 -0.09 Td (25, San Francisco, CA.)Tj 0.25 Tc 7.9995 0 0 7.9995 179.9881 323.6806 Tm (Am)Tj 0 Tc 1.911 0 Td (odi\336cation of the)Tj /TT0 1 Tf 7.758 0 Td (db)Tj /T1_1 1 Tf [(\(3\) library fr)18(om 4.4BSD that implements transactions.)]TJ 8.9995 0 0 8.9995 129.5912 309.3814 Tm (Seltzer)Tj 0.442 Tc 2.921 0 Td (,M)Tj 0 Tc 1.638 0 Td [(., )-192(and )-192(Y)55(igit, )-192(O.)-692(1991. )-442(\324)37(\324A )-192(New )-192(Hashing )-192(Package )-192(for )-192(UNIX,\325)37(\325)]TJ /T1_2 1 Tf 28.67 0 Td [(Pr)18(oceedings )-192(of )-192(the )-192(1991)]TJ -0.02 Tc -30.029 -1.222 Td (Wi)Tj 0 Tc 1.202 0 Td [(nter USENIX Confer)18(ence)]TJ /T1_1 1 Tf 0.25 Tc (,p)Tj 0 Tc 11.492 0 Td (p. 173)Tj 2.684 0.09 Td (\320)Tj 0.583 -0.09 Td (184, Dallas, TX.)Tj 0.25 Tc 7.9995 0 0 7.9995 179.9884 285.0829 Tm (Ad)Tj 0 Tc 1.639 0 Td (escription of the)Tj /TT0 1 Tf 7.395 0 Td (dbm)Tj /T1_1 1 Tf (\(3\) library and its implementations, and a newer hashing package.)Tj 8.9995 0 0 8.9995 129.5917 266.384 Tm [(Singh, )-100(A.)-600(2006.)]TJ /T1_2 1 Tf 7.614 0 Td [(Mac )-100(OS )-100(X )-100(Internals: )-100(A )-100(Systems )-100(Appr)18(oach)]TJ /T1_1 1 Tf 0.5999 Tc (.A)Tj 0 Tc 19.44 0 Td [(ddison-W)92(esley, )-100(Upper )-100(Saddle )-100(River)74(,)]TJ -23.854 -1.222 Td (NJ.)Tj 7.9995 0 0 7.9995 179.9891 242.0855 Tm (Roughly 1,600 pages on the design of the Mac OS X operating system.)Tj 8.9995 0 0 8.9995 129.5921 223.3866 Tm (Stevens, W)Tj 0.25 Tc 4.788 0 Td (.R)Tj 0.5 Tc 1.168 0 Td (.1)Tj 0 Tc 1.25 0 Td (990.)Tj /T1_2 1 Tf 2.25 0 Td [(UNIX Network Pr)18(ogramming)]TJ /T1_1 1 Tf 0.5 Tc (.P)Tj -0.018 Tc 13.613 0 Td (re)Tj 0 Tc 0.856 0 Td [(ntice Hall, Englewood Clif)18(fs, NJ.)]TJ 0.3646 Tc 7.9995 0 0 7.9995 179.9892 210.0874 Tm (Ad)Tj 0 Tc 1.754 0 Td [(etailed )-115(book )-115(on )-115(network )-115(pr)18(ogramming )-115(under )-115(the )-115(UNIX )-115(System.)-615(The )-115(contents )-115(of )-115(the )-115(\336rst)]TJ -1.754 -1.25 Td [(edition of this book dif)18(fer gr)18(eatly fr)18(om later editions.)]TJ 8.9995 0 0 8.9995 129.5922 181.3891 Tm [(Stevens, )-76(W)]TJ 0.3263 Tc 4.864 0 Td (.R)Tj 0 Tc 1.244 0 Td [(., )-76(Fenner)]TJ 0.3263 Tc 3.825 0 Td (,B)Tj 0 Tc 1.187 0 Td [(., )-76(and )-76(Rudof)18(f, )-76(A. )-76(M.)-578(2004.)]TJ /T1_2 1 Tf 12.451 0 Td [(UNIX )-76(Network )-76(Pr)18(ogramming, )-76(V)74(olume )-76(1, )-76(Third)]TJ -20.372 -1.222 Td (Edition)Tj /T1_1 1 Tf 0.5 Tc (.A)Tj 0 Tc 4.528 0 Td [(ddison-W)92(esley, Boston, MA.)]TJ 0.2795 Tc 7.9995 0 0 7.9995 179.9887 157.0906 Tm (Ad)Tj 0 Tc 1.669 0 Td [(etailed )-29(book )-29(on )-29(network )-29(pr)18(ogramming )-29(under )-29(UNIX )-29(System.)-533(Redesigned )-30(and )-30(split )-30(into )-30(two)]TJ -1.669 -1.25 Td (volumes in the second edition and updated in the thir)Tj 0.25 Tc 23.773 0 Td (de)Tj 0 Tc 1.34 0 Td (dition.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46869 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (744)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(pr)18(ovided )-309(in )-309(SVR4\325s )-309(BSD-compatibility )-309(library )-309([A)72(T&T )-309(1990c].)-809(The )-309(BSD )-309(developers)]TJ 0 -1.2 Td [(extended )-49(the)]TJ /TT0 1 Tf 6.069 0 Td (dbm)Tj /T1_1 1 Tf 2.099 0 Td [(library )-49(and )-49(called )-49(it)]TJ /TT0 1 Tf 9.105 0 Td (ndbm)Tj /T1_1 1 Tf 0.5494 Tc (.T)Tj 0 Tc 3.812 0 Td (he)Tj /TT0 1 Tf 1.36 0 Td (ndbm)Tj /T1_1 1 Tf 2.699 0 Td [(library )-49(was )-49(included )-49(in )-49(BSD )-49(as)]TJ -25.145 -1.2 Td [(well )-107(as )-107(in )-107(SVR4.)-605(The)]TJ /TT0 1 Tf 10.064 0 Td (ndbm)Tj /T1_1 1 Tf 2.757 0 Td [(functions )-107(ar)]TJ 0.3566 Tc 5.365 0 Td (es)Tj 0 Tc 1.26 0 Td [(tandar)18(dized )-107(in )-107(the )-107(XSI )-107(option )-107(of )-107(the )-107(Single)]TJ -19.445 -1.2 Td (UNIX Speci\336cation.)Tj 1.8 -1.2 Td [(Seltzer )-6(and )-6(Y)55(igit)]TJ 7.532 0.04 Td ([)Tj 0.333 -0.04 Td (1991)Tj 2 0.04 Td (])Tj 0.589 -0.04 Td [(pr)18(ovide )-6(a )-6(detailed )-6(history )-6(of )-6(the )-6(dynamic )-6(hashing )-6(algorithm)]TJ -12.254 -1.2 Td [(used )-72(by )-72(the)]TJ /TT0 1 Tf 5.58 0 Td (dbm)Tj /T1_1 1 Tf 2.122 0 Td [(library )-72(and )-72(other )-72(implementations )-72(of )-72(this )-72(library)]TJ 0.3224 Tc 21.792 0 Td (,i)Tj 0 Tc 0.863 0 Td (ncluding)Tj /TT0 1 Tf 4.282 0 Td (gdbm)Tj /T1_1 1 Tf 0.3223 Tc (,t)Tj 0 Tc 3.298 0 Td (he)Tj -37.939 -1.2 Td [(GNU )-432(version )-432(of )-432(the)]TJ /TT0 1 Tf 10.648 0 Td (dbm)Tj /T1_1 1 Tf 2.482 0 Td (library)Tj 0.932 Tc 2.87 0 Td (.U)Tj 0 Tc 1.96 0 Td (nfortunately)Tj 0.682 Tc 5.408 0 Td (,ab)Tj 0 Tc 2.667 0 Td [(asic )-432(limitation )-432(of )-432(all )-432(these)]TJ -26.035 -1.2 Td [(implementations )-124(is )-124(that )-124(none )-124(allows )-124(concurr)19(ent )-124(updating )-124(of )-124(the )-124(database )-124(by )-124(multiple)]TJ 0 -1.2 TD [(pr)18(ocesses. )-450(These)-451(implementations )-200(pr)18(ovide )-200(no )-200(type )-200(of )-200(concurr)18(ency )-200(contr)18(ols )-200(\(such )-200(as)]TJ -0.018 Tc -0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.25 Tc 1.367 0 Td (dl)Tj 0 Tc 1.152 0 Td (ocking\).)Tj -1.575 -1.2 Td [(4.4BSD )-50(pr)18(ovided )-50(a )-50(new)]TJ /TT0 1 Tf 10.835 0 Td (db)Tj /T1_1 1 Tf [(\(3\) )-50(library )-50(that )-50(supports )-50(thr)18(ee )-50(forms )-50(of )-50(access: )-50(\(a\) )-50(r)22(ecor)18(d)]TJ -12.635 -1.2 Td [(oriented, )-34(\(b\) )-34(hashing, )-34(and )-34(\(c\) )-34(a )-34(B-tr)17(ee. )-284(Again,)-284(no )-34(form )-34(of )-34(concurr)18(ency )-34(was )-34(pr)18(ovided )-34(\(as)]TJ T* (was plainly stated in the BUGS section of the)Tj /TT0 1 Tf 20.081 0 Td (db)Tj /T1_1 1 Tf (\(3\) manual page\).)Tj 7.9995 0 0 7.9995 183.5896 504.9697 Tm [(Oracle )-290(\()]TJ /TT0 1 Tf (http://www.oracle.com)Tj /T1_1 1 Tf 0.5405 Tc (\)p)Tj -0.018 Tc 17.843 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vides )-290(versions )-290(of )-290(the)]TJ /TT0 1 Tf 10.504 0 Td (db)Tj /T1_1 1 Tf 1.74 0 Td [(library )-290(that )-290(do )-290(support)]TJ -31.01 -1.25 Td [(concurr)18(ent access, locking, and transactions.)]TJ 9.9994 0 0 9.9994 147.5916 473.9716 Tm [(Most )-142(commer)18(cial )-142(database )-142(libraries )-142(do )-142(pr)18(ovide )-142(the )-142(concurr)18(ency )-142(contr)17(ols )-142(r)18(equir)18(ed)]TJ -1.8 -1.2 Td [(for )-174(multiple )-174(pr)18(ocesses )-174(to )-174(update )-174(a )-174(database )-174(simultaneously)]TJ 0.6741 Tc 27.279 0 Td (.T)Tj 0 Tc 1.537 0 Td [(hese )-174(systems )-174(typically)]TJ -28.816 -1.2 Td [(use )-128(advisory )-128(locking, )-128(as )-128(we )-128(described )-128(in )-128(Section )-128(14.3, )-128(but )-128(they )-128(often )-128(implement )-128(their)]TJ T* [(own )-15(locking )-15(primitives )-15(to )-15(avoid )-15(the )-15(over)19(head )-15(of )-15(a )-15(system )-15(call )-15(to )-15(acquir)19(e)-265(an)-265(uncontested)]TJ -0 -1.2 Td [(lock. )-562(These)-563(commer)18(cial )-312(systems )-312(usually )-312(implement )-312(their )-312(database )-312(using )-312(B+ )-312(tr)14(ees)]TJ -0 -1.16 Td ([)Tj 0.333 -0.04 Td [(Comer )-36(1979)]TJ 5.298 0.04 Td (])Tj 0.619 -0.04 Td [(or )-36(some )-36(dynamic )-36(hashing )-36(technique, )-36(such )-36(as )-36(linear )-36(hashing)]TJ 26.862 0.04 Td ([)Tj 0.333 -0.04 Td [(Litwin )-36(1980)]TJ 5.221 0.04 Td (])Tj -38.667 -1.24 Td (or extendible hashing [Fagin et al. 1979].)Tj 1.8 -1.2 Td (Figur)Tj 0.6764 Tc 2.383 0 Td (e2)Tj 0 Tc 1.655 0 Td [(0.1 )-426(summarizes )-426(the )-426(database )-426(libraries )-426(commonly )-426(found )-426(in )-426(the )-426(four)]TJ -5.838 -1.2 Td [(operating )-338(systems )-338(described )-338(in )-338(this )-338(book.)-840(Note )-338(that )-338(on )-338(Linux, )-338(the)]TJ /TT0 1 Tf 33.031 0 Td (gdbm)Tj /T1_1 1 Tf 2.988 0 Td (library)Tj -36.019 -1.2 Td [(pr)18(ovides support for both)]TJ /TT0 1 Tf 11.671 0 Td (dbm)Tj /T1_1 1 Tf 2.05 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (ndbm)Tj /T1_1 1 Tf 2.65 0 Td (functions.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1900.25 3472.25 cm 0 0 m 2691 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 281.6222 339.1593 Tm [(Fr)18(eeBSD )-2416(Linux)-2382(Mac OS X)-2198(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-3993(3.2.0)-3618(10.6.8 )-3868(10)]TJ -12.228 0.625 Td [(Library)-1849(POSIX.1)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1900.25 3252.25 cm 0 0 m 2691 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1900.25 3232.25 cm 0 0 m 2691 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 194.0011 315.1433 Tm (dbm )Tj 17.521 0 Td (gdbm)Tj /T1_1 1 Tf 12.633 0 Td (\245)Tj /TT0 1 Tf -30.154 -1.25 Td (ndbm)Tj /T1_1 1 Tf 6.221 0 Td [(XSI )-4550(\245)]TJ /TT0 1 Tf 11.3 0 Td (gdbm)Tj /T1_1 1 Tf 5.262 Tc 6.765 0 Td (\245\245)Tj /TT0 1 Tf 0 Tc -24.286 -1.25 Td (db)Tj /T1_1 1 Tf 5.262 Tc 12.55 0 Td (\245\245\245)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1900.25 2912.25 cm 0 0 m 2691 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2734.25 2912.25 cm 0 0 m 0 560 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2254.25 2912.25 cm 0 0 m 0 560 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2274.25 2912.25 cm 0 0 m 0 560 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4591.25 2912.25 cm 0 0 m 0 560 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1900.25 2912.25 cm 0 0 m 0 560 l S Q Q BT /T1_0 1 Tf 0 Tc 7.9981 0 0 7.9981 211.2333 273.1344 Tm (Figure 20.1)Tj /T1_1 1 Tf 5.695 0 Td (Support for database libraries on various platforms)Tj /TT1 1 Tf 11.9971 0 0 11.9971 93.5777 225.146 Tm [(20.3 )-776(The)-556(Librar )268(y)]TJ /T1_1 1 Tf 9.9976 0 0 9.9976 129.5691 201.1517 Tm [(The )-42(library )-42(we )-42(develop )-42(in )-42(this )-42(chapter )-42(will )-42(be )-42(similar )-42(to )-42(the)]TJ /TT0 1 Tf 26.936 0 Td (ndbm)Tj /T1_1 1 Tf 2.692 0 Td (library)Tj 0.2917 Tc 2.87 0 Td (,b)Tj 0 Tc 1.095 0 Td [(ut )-42(we\325ll )-42(add)]TJ -33.593 -1.2 Td [(the )-168(concurr)18(ency )-168(contr)18(ol )-168(mechanisms )-168(to )-168(allow )-168(multiple )-168(pr)18(ocesses )-168(to )-168(update )-168(the )-168(same)]TJ T* [(database )-27(at )-27(the )-27(same )-27(time.)]TJ -0.092 Tc 12.254 0 Td [(We )-211(\336)]TJ 0 Tc 2.269 0 Td [(rst )-27(describe )-27(the )-27(C )-27(interface )-27(to )-27(the )-27(database )-27(library)]TJ 0.2767 Tc 21.982 0 Td (,t)Tj 0 Tc 0.853 0 Td (hen)Tj -37.357 -1.2 Td (in the next section describe the actual implementation.)Tj 1.8 -1.2 Td [(When )-422(we )-422(open )-422(a )-422(database, )-422(we )-422(ar)]TJ 0.6725 Tc 17.032 0 Td (er)Tj 0 Tc 1.529 0 Td [(eturned )-422(a )-422(handle )-422(\(an )-422(opaque )-422(pointer\))]TJ -0.018 Tc -20.36 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(pr)18(esenting the database.)]TJ -0.092 Tc 11.227 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll pass this handle to the r)18(emaining database functions.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46870 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 450.336 708 Tm (Contents)Tj /T1_1 1 Tf 5.974 0 Td (xvii)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 154.7907 667.9599 Tm [(18.2 )-2456(Ov)25(er )248(vie)]TJ 2.16 Tc 8.11 0 Td (w6)Tj 0 Tc 3.438 0 Td (71)Tj -11.548 -1.3 Td [(18.3 )-2456(Special)-556(Input )-278(Char)10(acters )-1882(678)]TJ -0 -1.3 Td [(18.4 )-2456(Getting)-556(and )-278(Setting )-278(T)120(er )253(minal)-556(Attr )263(ib)20(utes )-1882(683)]TJ -0 -1.3 Td [(18.5 )-2456(T)120(er )253(minal)-556(Option )-278(Flags)-2160(683)]TJ -0 -1.3 Td (18.6)Tj /TT1 1 Tf 4.68 0 Td (stty)Tj /TT0 1 Tf 2.956 0 Td [(Command )-1882(691)]TJ -7.636 -1.3 Td [(18.7 )-2456(Baud)-556(Rate )-278(Functions)-2160(692)]TJ 0 -1.3 Td [(18.8 )-2456(Line)-556(Control )-278(Functions)-2160(693)]TJ 0 -1.3 Td [(18.9 )-2456(T)120(er )253(minal)-556(Identi\336cation )-1882(694)]TJ 0 -1.3 TD [(18.10 )-1900(Canonical)-556(Mode )-1882(700)]TJ T* [(18.11 )-1900(Noncanonical)-556(Mode )-1882(703)]TJ T* [(18.12 )-1900(T)120(er )253(minal)-556(Windo)]TJ 0.556 Tc 11.849 0 Td (wS)Tj 0 Tc 1.945 0 Td (iz)Tj 2.16 Tc 0.707 0 Td (e7)Tj 0 Tc 3.272 0 Td (10)Tj -17.773 -1.3 Td (18.13)Tj /TT1 1 Tf 4.68 0 Td (termcap)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 5.034 0 Td (terminfo)Tj /TT0 1 Tf 0.556 Tc (,a)Tj 0 Tc 6.19 0 Td (nd)Tj /TT1 1 Tf 1.668 0 Td (curses)Tj /TT0 1 Tf 5.76 0 Td (712)Tj -23.332 -1.3 Td [(18.14 )-1900(Summar)]TJ 2.16 Tc 8.488 0 Td (y7)Tj 0 Tc 3.216 0 Td (13)Tj /TT2 1 Tf -14.224 -2.47 Td [(Chapter )-278(19.)-1476(Pseudo )-278(T)60(erminals )]TJ 34.118 0 Td (715)Tj /TT0 1 Tf -31.598 -1.82 Td [(19.1 )-2456(Introduction)-2160(715)]TJ T* [(19.2 )-2456(Ov)25(er )248(vie)]TJ 2.16 Tc 8.11 0 Td (w7)Tj 0 Tc 3.438 0 Td (15)Tj -11.548 -1.3 Td [(19.3 )-2456(Opening)-556(Pseudo-T)120(er )253(minal)-556(De)30(vices )-1882(722)]TJ 0 -1.3 Td (19.4)Tj /TT1 1 Tf 4.68 0 Td (pty_fork)Tj /TT0 1 Tf 5.356 0 Td [(Function )-1882(726)]TJ -10.036 -1.3 Td (19.5)Tj /TT1 1 Tf 4.68 0 Td (pty)Tj /TT0 1 Tf 2.356 0 Td (Prog)Tj -0.01 Tc 2.102 0 Td (ra)Tj 2.16 Tc 0.879 0 Td (m7)Tj 0 Tc 3.549 0 Td (29)Tj -13.566 -1.3 Td [(19.6 )-2456(Using)-556(the)]TJ /TT1 1 Tf 9.738 0 Td (pty)Tj /TT0 1 Tf 2.356 0 Td (Prog)Tj -0.01 Tc 2.102 0 Td (ra)Tj 2.16 Tc 0.879 0 Td (m7)Tj 0 Tc 3.549 0 Td (33)Tj -18.624 -1.3 Td [(19.7 )-2456(Adv)25(anced )-278(F)30(eatures )-1882(740)]TJ 0 -1.3 Td [(19.8 )-2456(Summar)]TJ 2.16 Tc 8.488 0 Td (y7)Tj 0 Tc 3.216 0 Td (41)Tj /TT2 1 Tf -14.224 -2.47 Td [(Chapter )-278(20.)]TJ 0.556 Tc 7.2 0 Td (AD)Tj 0 Tc 2 0 Td [(atabase )-278(Librar)]TJ 17.238 Tc 7.124 0 Td (y7)Tj 0 Tc 18.35 0 Td (43)Tj /TT0 1 Tf -32.154 -1.82 Td [(20.1 )-2456(Introduction)-2160(743)]TJ T* [(20.2 )-2456(Histor)]TJ 2.16 Tc 7.321 0 Td (y7)Tj 0 Tc 3.216 0 Td (43)Tj -10.537 -1.3 Td [(20.3 )-2456(The)-556(Libr)10(ar )248(y)-2160(744)]TJ -0 -1.3 Td [(20.4 )-2456(Implementation)-556(Ov)25(er )248(vie)]TJ 2.16 Tc 15.502 0 Td (w7)Tj 0 Tc 3.438 0 Td (46)Tj -18.94 -1.3 Td [(20.5 )-2456(Centr)10(aliz)15(ed )-278(or )-278(Decentr)10(aliz)15(ed? )-1882(750)]TJ -0 -1.3 Td [(20.6 )-2456(Concurrency)-2160(752)]TJ T* [(20.7 )-2456(Building)-556(the )-278(Libr)10(ar )248(y)-2160(753)]TJ T* [(20.8 )-2456(Source)-556(Code )-1882(753)]TJ T* [(20.9 )-2456(P)50(erf)30(or )253(mance)-2160(781)]TJ -0 -1.3 Td [(20.10 )-1900(Summar)]TJ 2.16 Tc 8.488 0 Td (y7)Tj 0 Tc 3.216 0 Td (86)Tj /TT2 1 Tf -14.224 -2.47 Td [(Chapter )-278(21.)-1476(Comm)20(unicating )-278(with )-278(a )-278(Netw)20(ork )-278(Printer)]TJ 34.118 0 Td (789)Tj /TT0 1 Tf -31.598 -1.82 Td [(21.1 )-2456(Introduction)-2160(789)]TJ T* [(21.2 )-2456(The)-556(Inter )253(net)-556(Pr )263(inting)-556(Protocol )-1882(789)]TJ -0 -1.3 Td [(21.3 )-2456(The)-556(Hyper )238(te)30(xt )-278(T)]TJ -0.01 Tc 12.295 0 Td (ra)Tj 0 Tc 0.879 0 Td [(nsf)30(er )-278(Protocol)-2160(792)]TJ -13.174 -1.3 Td [(21.4 )-2456(Pr)-15(inter )-278(Spooling)-2160(793)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46871 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.4)]TJ 36.323 0 Td [(Printer )-250(Spooling)]TJ /T1_1 1 Tf 9.51 0 Td (793)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-303(following )-303(is )-303(a )-303(sample )-303(HTTP )-303(header )-303(for )-303(a )-303(print )-303(r)22(equest )-302(submitted )-302(to )-302(the)]TJ -1.8 -1.2 Td [(author )176(\325s)-250(Xer)18(ox Phaser 8560 printer:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 635.9817 Tm (POST /ipp HTTP/1.1\366M)Tj 0 -1.189 TD (Content-Length: 21931\366M)Tj T* (Content-Type: application/ipp\366M)Tj T* (Host: phaser8560:631\366M)Tj T* (\366M)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 570.9055 Tm (The)Tj /TT0 1 Tf 1.927 0 Td (Content-Length)Tj /T1_0 1 Tf 8.653 0 Td [(line )-3(speci\336es )-3(the )-3(size )-3(in )-3(bytes )-3(of )-3(the )-3(amount )-3(of )-3(data )-3(in )-3(the )-3(HTTP)]TJ -10.581 -1.2 Td [(message. )-378(This)-378(excludes )-128(the )-128(size )-128(of )-128(the )-128(HTTP )-128(header)]TJ 0.3779 Tc 24.006 0 Td (,b)Tj 0 Tc 1.181 0 Td [(ut )-128(includes )-128(the )-128(size )-128(of )-128(the )-128(IPP)]TJ -25.187 -1.2 Td (header)Tj 0.5627 Tc 2.972 0 Td (.T)Tj 0 Tc 1.426 0 Td (he)Tj /TT0 1 Tf 1.374 0 Td (Host)Tj /T1_0 1 Tf 2.713 0 Td [(line )-63(speci\336es )-63(the )-63(host )-63(name )-63(and )-63(port )-63(number )-63(of )-63(the )-63(server )-63(to )-63(which)]TJ -8.484 -1.2 Td (the message is being sent.)Tj 1.8 -1.2 Td (The)Tj /TT0 1 Tf 1.985 0 Td (\366M)Tj /T1_0 1 Tf 1.511 0 Td [(at )-61(the )-61(end )-61(of )-61(the )-61(each )-61(line )-61(is )-61(the )-61(carriage )-61(r)14(eturn )-61(that )-61(pr)18(ecedes )-61(the )-61(line )-61(feed.)]TJ -5.297 -1.2 Td [(The )-141(line )-141(feed )-141(doesn\325t )-141(show )-141(up )-141(as )-141(a )-141(printable )-141(character)]TJ 0.6412 Tc 25.009 0 Td (.N)Tj 0 Tc 1.722 0 Td [(ote )-141(that )-141(the )-141(last )-141(line )-141(of )-141(the)]TJ -26.731 -1.2 Td (header is empty)Tj 0.25 Tc 6.995 0 Td (,e)Tj 0 Tc 0.979 0 Td [(xcept for the carriage r)18(eturn and line feed.)]TJ -6.174 -1.2 Td [(The )-39(start )-39(line )-39(in )-39(an )-39(HTTP )-39(r)18(esponse )-39(message )-39(contains )-39(a )-39(version )-39(string )-39(followed )-39(by )-39(a)]TJ -1.8 -1.2 Td [(numeric )-122(status )-122(code )-122(and )-122(a )-122(status )-122(message, )-122(terminated )-122(by )-122(a )-122(carriage )-122(r)17(eturn )-122(and )-122(a )-122(line)]TJ 0 -1.2 TD [(feed. )-287(The)]TJ -0.018 Tc 4.651 0 Td (re)Tj 0 Tc 0.856 0 Td [(mainder )-37(of )-37(the )-37(HTTP )-37(r)18(esponse )-37(message )-37(has )-37(the )-37(same )-37(format )-37(as )-37(the )-37(r)16(equest)]TJ -5.507 -1.2 Td [(message: headers followed by a blank line and an optional entity body)111(.)]TJ 1.8 -1.2 Td [(In r)18(esponse to a print r)18(equest, the printer might send us the following message:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5907 417.935 Tm (HTTP/1.1 200 OK\366M)Tj 0 -1.189 TD (Content-Type: application/ipp\366M)Tj T* (Cache-Control: no-cache, no-store, must-revalidate\366M)Tj T* (Expires: THU, 26 OCT 1995 00:00:00 GMT\366M)Tj T* (Content-Length: 215\366M)Tj 0 -1.189 TD (Server: Allegro-Software-RomPager/4.34\366M)Tj 0 -1.189 TD (\366M)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5918 331.4601 Tm [(As )-119(far )-119(as )-119(our )-119(print )-119(spooler )-119(is )-119(concerned, )-119(all )-119(we )-119(car)]TJ 0.3695 Tc 23.313 0 Td (ea)Tj 0 Tc 1.349 0 Td [(bout )-120(in )-120(this )-120(message )-120(is )-120(the )-120(\336rst)]TJ -24.661 -1.2 Td [(line: )-14(it )-14(tells )-14(us )-14(whether )-14(the )-14(r)18(equest )-14(succeeded )-14(or )-14(failed )-14(using )-14(a )-14(numeric )-14(err)19(or )-14(code )-14(and )-14(a)]TJ 0 -1.2 TD [(short )-102(string.)-602(The )-102(r)18(emainder )-102(of )-102(the )-102(message )-102(contains )-102(additional )-102(information )-102(to )-102(contr)22(ol)]TJ T* [(caching )-46(by )-46(nodes )-46(that )-46(might )-46(sit )-46(in )-46(between )-46(the )-46(client )-46(and )-46(the )-46(server )-46(and )-46(to )-46(indicate )-46(the)]TJ T* (softwar)Tj 0.25 Tc 3.34 0 Td (ev)Tj 0 Tc 1.294 0 Td [(ersion r)8(unning on the server)74(.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5942 240.2656 Tm [(21.4 )-776(Printer)-556(Spooling)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.592 213.8672 Tm [(The )-16(pr)18(ograms )-16(that )-16(we )-16(develop )-16(in )-16(this )-16(chapter )-16(form )-16(the )-16(basis )-16(of )-16(a )-16(simple )-16(printer )-16(spooler)73(.)]TJ 0.3104 Tc 0 -1.2 Td (As)Tj 0 Tc 1.512 0 Td [(imple )-60(user )-60(command )-60(sends )-60(a )-60(\336le )-60(to )-60(the )-60(printer )-60(spooler; )-60(the )-60(spooler )-60(saves )-60(it )-60(to )-60(disk,)]TJ -1.512 -1.2 Td [(queues the r)18(equest, and ultimately sends the \336le to the printer)74(.)]TJ 1.8 -1.2 Td [(All )-58(UNIX )-58(Systems )-58(pr)18(ovide )-58(at )-58(least )-58(one )-58(print )-58(spooling )-58(system.)-562(Fr)18(eeBSD )-58(ships )-58(LPD,)]TJ -1.8 -1.2 Td [(the )-4(BSD )-4(print )-4(spooling )-4(system )-4(\(see)]TJ /TT0 1 Tf 15.661 0 Td (lpd)Tj /T1_0 1 Tf 1.8 0.04 Td (\()Tj 0.333 -0.04 Td (8)Tj 0.5 0.04 Td (\))Tj 0.587 -0.04 Td [(and )-4(Chapter )-4(13 )-4(of )-4(Stevens)]TJ 11.815 0.04 Td ([)Tj 0.333 -0.04 Td (1990)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td [(\). )-254(Linux)-254(and)]TJ -33.362 -1.2 Td [(Mac )-109(OS )-109(X )-109(include )-109(CUPS, )-109(the )-109(Common )-109(UNIX )-109(Printing )-109(System )-109(\(see)]TJ /TT0 1 Tf 30.67 0 Td (cupsd)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (8)Tj 0.5 0.04 Td (\))Tj 0.333 -0.04 Td [(\). )-359(Solaris)]TJ -34.836 -1.2 Td [(ships )-27(with )-27(the )-27(standar)]TJ 0.2769 Tc 9.893 0 Td (dS)Tj 0 Tc 1.413 0 Td [(ystem )-27(V )-27(printer )-27(spooler )-27(\(see)]TJ /TT0 1 Tf 12.841 0 Td (lp)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.61 -0.04 Td (and)Tj /TT0 1 Tf 1.97 0 Td (lpsched)Tj /T1_0 1 Tf 4.2 0.04 Td (\()Tj 0.333 -0.04 Td (1M)Tj 1.446 0.04 Td (\))Tj 0.333 -0.04 Td [(\). )-277(In)-277(this)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46872 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (792)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1344.25 6670.25 cm 0 0 m 3803 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 186.9328 658.9605 Tm (Attribute )Tj 11.175 0 Td (Status)Tj 13.944 0 Td (Description)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1344.25 6550.25 cm 0 0 m 3803 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1344.25 6530.25 cm 0 0 m 3803 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 138.4354 644.9226 Tm (attributes-charset)Tj /T1_1 1 Tf -0.018 Tc 16.7 0 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(ed)-500(the character set used by attributes of type)]TJ /TT0 1 Tf 22.392 0 Td (text)Tj /T1_1 1 Tf 2.65 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (name)Tj -43.789 -1.25 Td (attributes-natural)Tj 10.8 0.09 Td (-)Tj 0.6 -0.09 Td (language)Tj /T1_1 1 Tf -0.018 Tc 5.3 0 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(ed)-500(the natural language used by attributes of type)]TJ /TT0 1 Tf 24.362 0 Td (text)Tj /T1_1 1 Tf 2.65 0 Td (or)Tj /TT0 1 Tf -22.241 -1.25 Td (name)Tj -22.327 -1.25 Td (printer-uri)Tj /T1_1 1 Tf -0.018 Tc 16.7 0 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(ed)-500(the printer)-74(\325s Universal Resour)18(ce Identi\336er)]TJ /TT0 1 Tf -17.556 -1.25 Td (requesting-user-name)Tj /T1_1 1 Tf 16.7 0 Td [(optional)-594(name of user submitting job \(used for authentication, if)]TJ 5.627 -1.25 Td (enabled\))Tj /TT0 1 Tf -22.327 -1.25 Td (job-name)Tj /T1_1 1 Tf 16.7 0 Td [(optional)-594(name of job used to distinguish between multiple jobs)]TJ /TT0 1 Tf -16.7 -1.25 Td (ipp-attribute-fidelity)Tj /T1_1 1 Tf 16.7 0 Td [(optional)-594(if tr)8(ue, tells printer to r)18(eject job if all attributes can\325t be)]TJ 5.627 -1.25 Td (met; otherwise, printer does its best to print the job)Tj /TT0 1 Tf -22.327 -1.25 Td (document-name)Tj /T1_1 1 Tf 16.7 0 Td [(optional)-594(the name of the document \(suitable for printing in a)]TJ 5.627 -1.25 Td (banner)Tj 0.25 Tc 3.017 0 Td (,f)Tj 0 Tc 0.833 0 Td (or example\))Tj /TT0 1 Tf -26.177 -1.25 Td (document-format)Tj /T1_1 1 Tf 16.7 0 Td [(optional)-594(the format of the document \(e.g., plaintext, PostScript\))]TJ /TT0 1 Tf -16.7 -1.25 Td (document-natural)Tj 9.6 0.09 Td (-)Tj 0.6 -0.09 Td (language)Tj /T1_1 1 Tf 6.5 0 Td [(optional)-594(the natural language of the document)]TJ /TT0 1 Tf -16.7 -1.25 Td (compression)Tj /T1_1 1 Tf 16.7 0 Td [(optional)-594(the algorithm used to compr)18(ess the document data)]TJ /TT0 1 Tf -16.7 -1.25 Td (job-k-octets)Tj /T1_1 1 Tf 16.7 0 Td [(optional)-594(size of the document in 1,024-octet units)]TJ /TT0 1 Tf -16.7 -1.25 Td (job-impressions)Tj /T1_1 1 Tf 16.7 0 Td [(optional)-594(number of impr)18(essions \(images imposed on a page\))]TJ 5.627 -1.25 Td (submitted in this job)Tj /TT0 1 Tf -22.327 -1.25 Td (job-media-sheets)Tj /T1_1 1 Tf 16.7 0 Td [(optional)-594(number of sheets printed by this job)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1344.25 4710.25 cm 0 0 m 3803 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3042.25 4710.25 cm 0 0 m 0 1960 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2700.25 4710.25 cm 0 0 m 0 1960 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5147.25 4710.25 cm 0 0 m 0 1960 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1344.25 4710.25 cm 0 0 m 0 1960 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 249.819 450.5189 Tm (Figure 21.5)Tj /T1_1 1 Tf 5.445 0 Td [(Attributes of print-job r)18(equest)]TJ 9.9982 0 0 9.9982 147.5736 421.7241 Tm [(The )-168(IPP )-168(header )-168(contains )-168(a )-168(mixtur)19(e)-418(of)-418(text )-168(and )-168(binary )-168(data.)-667(Attribute )-168(names )-168(ar)19(e)]TJ -1.8 -1.2 Td [(stor)18(ed )-119(as )-119(text, )-119(but )-119(sizes )-119(ar)]TJ 0.3688 Tc 11.905 0 Td (es)Tj 0 Tc 1.272 0 Td [(tor)18(ed )-119(as )-119(binary )-119(integers.)-619(This )-119(complicates )-119(the )-119(pr)18(ocess )-119(of)]TJ -13.177 -1.2 Td [(building )-57(and )-57(parsing )-57(the )-57(header)]TJ 0.3075 Tc 14.409 0 Td (,s)Tj 0 Tc 0.981 0 Td [(ince )-57(we )-57(need )-57(to )-57(worry )-57(about )-57(such )-57(things )-57(as )-57(network)]TJ -15.391 -1.2 Td [(byte )-123(or)18(der )-123(and )-123(our )-123(host )-123(pr)19(ocessor )176(\325s)-373(ability )-123(to )-123(addr)18(ess )-123(an )-123(integer )-123(on )-123(an )-123(arbitrary )-123(byte)]TJ 0 -1.2 TD (boundary)Tj 0.6387 Tc 4.235 0 Td (.A)Tj 0 Tc 2.055 0 Td [(better )-139(alternative )-139(would )-139(have )-139(been )-139(to )-139(design )-139(the )-139(header )-139(to )-139(contain )-139(text)]TJ -6.29 -1.2 Td (only)Tj 0.5 Tc 1.864 0 Td (.T)Tj 0 Tc 1.363 0 Td [(his simpli\336es pr)18(ocessing at the cost of slightly lar)18(ger pr)18(otocol messages.)]TJ /TT1 1 Tf 11.9978 0 0 11.9978 93.583 323.3418 Tm [(21.3 )-776(The)-556(Hyper )258(te)15(xt )-278(T)80(ransf)10(er )-278(Pr)20(otocol)]TJ /T1_1 1 Tf -0.111 Tc 9.9982 0 0 9.9982 129.5763 299.3461 Tm (Ve)Tj 0 Tc 1.09 0 Td [(rsion )-14(1.1 )-14(of )-14(HTTP )-14(is )-14(speci\336ed )-14(in )-14(RFC )-14(2616.)-517(HTTP )-14(is )-14(also )-14(a )-14(r)16(equest\320r)18(esponse )-14(pr)18(otocol.)]TJ 0.3412 Tc -1.09 -1.2 Td (Ar)Tj 0 Tc 1.496 0 Td [(equest )-91(message )-91(contains )-91(a )-91(start )-91(line, )-91(followed )-91(by )-91(header )-91(lines, )-91(a )-91(blank )-91(line, )-91(and )-91(an)]TJ -1.496 -1.2 Td (optional entity body)Tj 0.5 Tc 8.898 0 Td (.T)Tj 0 Tc 1.363 0 Td (he entity body contains the IPP header and data in this case.)Tj -8.461 -1.2 Td [(HTTP )-52(headers )-52(ar)]TJ 0.3023 Tc 7.614 0 Td (eA)Tj 0 Tc 1.559 0 Td [(SCII, )-52(with )-52(each )-52(line )-52(terminated )-52(by )-52(a )-52(carriage )-52(r)18(eturn )-52(\()]TJ /TT0 1 Tf 23.697 0 Td (\\r)Tj /T1_1 1 Tf 0.3024 Tc (\)a)Tj 0 Tc 2.335 0 Td [(nd )-52(a)]TJ -37.005 -1.2 Td [(line )-175(feed )-175(\()]TJ /TT0 1 Tf (\\n)Tj /T1_1 1 Tf [(\). )-425(The)-425(start )-175(line )-175(consists )-175(of )-175(a)]TJ /T1_2 1 Tf 19.863 0 Td (method)Tj /T1_1 1 Tf 3.369 0 Td [(that )-175(indicates )-175(which )-175(operation )-175(the)]TJ -23.232 -1.2 Td [(client )-156(is )-156(r)18(equesting, )-156(a )-156(Uniform )-156(Resour)18(ce )-156(Locator)]TJ 22.594 0.04 Td (\()Tj 0.333 -0.04 Td (URL)Tj 2.057 0.04 Td (\))Tj 0.739 -0.04 Td [(that )-156(describes )-156(the )-156(server )-156(and)]TJ -25.724 -1.2 Td [(pr)18(otocol, )-138(and )-138(a )-138(string )-138(indicating )-138(the )-138(HTTP )-138(version.)-638(The )-138(only )-138(method )-138(used )-138(by )-138(IPP )-138(is)]TJ /TT0 1 Tf T* (POST)Tj /T1_1 1 Tf 0.25 Tc (,w)Tj 0 Tc 3.734 0 Td [(hich is used to send data to a server)74(.)]TJ -1.934 -1.2 Td [(The )-16(header )-16(lines )-16(specify )-16(attributes, )-16(such )-16(as )-16(the )-16(format )-16(and )-16(length )-16(of )-16(the )-16(entity )-16(body)110(.)]TJ 0.3412 Tc -1.8 -1.2 Td (Ah)Tj 0 Tc 1.701 0 Td [(eader )-91(line )-91(consists )-91(of )-91(an )-91(attribute )-91(name )-91(followed )-91(by )-91(a )-91(colon, )-91(optional )-91(white )-91(space,)]TJ -1.701 -1.2 Td [(and )-182(the )-182(attribute )-182(value, )-182(and )-182(is )-182(terminated )-182(by )-182(a )-182(carriage )-182(r)14(eturn )-182(and )-182(a )-182(line )-182(feed.)-684(For)]TJ T* [(example, )-14(to )-14(specify )-14(that )-14(the )-14(entity )-14(body )-14(contains )-14(an )-14(IPP )-14(message, )-14(we )-14(include )-14(the )-14(header)]TJ T* (line)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.573 138.675 Tm (Content-Type: application/ipp)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46873 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (21)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(Comm)20(unica )275(ting)-560(with )-280(a)]TJ 0 -1.667 TD [(Netw)30(or )275(k)-560(Pr )260(inter)]TJ /TT0 1 Tf 12 0 0 12 93.5998 422.3998 Tm [(21.1 )-776(Intr)20(oduction)]TJ /T1_2 1 Tf -0.092 Tc 10 0 0 10 129.5998 398.3998 Tm [(We )-447(n)]TJ 0 Tc 2.482 0 Td [(ow )-263(develop )-263(a )-263(pr)18(ogram )-263(that )-263(can )-263(communicate )-263(with )-263(a )-263(network )-263(printer)]TJ 0.763 Tc 32.928 0 Td (.T)Tj 0 Tc 1.626 0 Td (hese)Tj -37.036 -1.2 Td [(printers )-45(ar)]TJ 0.2951 Tc 4.665 0 Td (ec)Tj 0 Tc 1.218 0 Td [(onnected )-45(to )-45(multiple )-45(computers )-45(via )-45(Ethernet )-45(and )-45(often )-45(support )-45(PostScript)]TJ -5.883 -1.2 Td [(\336les )-37(as )-37(well )-37(as )-37(plain )-37(text )-37(\336les.)-540(Applications )-37(generally )-37(use )-37(the )-37(Internet )-37(Printing )-37(Pr)16(otocol)]TJ 0 -1.16 TD (\()Tj 0.333 -0.04 Td (IPP)Tj 1.545 0.04 Td (\))Tj 1.146 -0.04 Td [(to )-564(communicate )-564(with )-564(these )-564(printers, )-564(although )-564(some )-564(support )-564(alternative)]TJ -3.024 -1.2 Td [(communication pr)18(otocols.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-213(a)]TJ -0.018 Tc 2.166 0 Td [(re )-65(a)]TJ 0 Tc 1.635 0 Td [(bout )-29(to )-29(describe )-29(two )-29(pr)18(ograms: )-29(a )-29(print )-29(spooler )-29(daemon )-29(that )-29(sends )-29(jobs )-29(to )-29(a)]TJ -5.601 -1.2 Td [(printer )-167(and )-167(a )-167(command )-167(to )-167(submit )-167(print )-167(jobs )-167(to )-167(the )-167(spooler )-167(daemon.)-668(Since )-167(the )-167(print)]TJ 0 -1.2 TD [(spooler )-281(has )-281(to )-281(do )-281(multiple )-281(things )-281(\(e.g., )-281(communicate )-281(with )-281(clients )-281(submitting )-281(jobs,)]TJ T* [(communicate )-55(with )-55(the )-55(printer)]TJ 0.3048 Tc 13.31 0 Td (,r)Tj 0 Tc 0.932 0 Td [(ead )-55(\336les, )-55(scan )-55(dir)19(ectories\), )-55(this )-55(gives )-55(us )-55(a )-55(chance )-55(to )-55(use)]TJ -14.242 -1.2 Td [(many )-54(of )-54(the )-54(functions )-54(fr)18(om )-54(earlier )-54(chapters.)-555(For )-54(example, )-54(we )-54(use )-54(thr)18(eads )-54(\(Chapters )-54(1)54(1)]TJ T* [(and )-345(12\) )-345(to )-345(simplify )-345(the )-345(design )-345(of )-345(the )-345(print )-345(spooler )-345(and )-345(sockets )-345(\(Chapter )-345(16\) )-345(to)]TJ T* [(communicate )-93(between )-93(the )-93(pr)18(ogram )-93(used )-93(to )-93(schedule )-93(a )-93(\336le )-93(to )-93(be )-93(printed )-93(and )-93(the )-93(print)]TJ T* (spooler)Tj 0.25 Tc 3.208 0 Td (,a)Tj 0 Tc 1 0 Td [(nd also between the print spooler and the network printer)74(.)]TJ /TT0 1 Tf 12 0 0 12 93.5999 218.3998 Tm [(21.2 )-776(The)-556(Internet )-278(Printing )-278(Pr)20(otocol)]TJ /T1_2 1 Tf 10 0 0 10 129.5997 194.3998 Tm [(IPP )-24(speci\336es )-24(the )-24(communication )-24(r)8(ules )-24(for )-24(building )-24(network-based )-24(printing )-24(systems.)-523(By)]TJ T* [(embedding )-51(an )-51(IPP )-51(server )-51(inside )-51(a )-51(printer )-51(with )-51(an )-51(Ethernet )-51(car)22(d, )-50(the )-50(printer )-50(can )-50(service)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(quests )-3(fr)18(om )-4(many )-4(computer )-4(systems.)-504(These )-4(computer )-4(systems )-4(need )-4(not )-4(be )-4(located )-4(on)]TJ -0.856 -1.2 Td [(the )-40(same )-40(physical )-40(network, )-40(however)]TJ 0.5402 Tc 16.297 0 Td (.I)Tj 0 Tc 1.127 0 Td [(PP )-40(is )-40(built )-40(on )-40(top )-40(of )-40(standar)]TJ 0.2901 Tc 12.528 0 Td (dI)Tj 0 Tc 1.238 0 Td [(nternet )-40(pr)18(otocols,)]TJ -31.19 -1.2 Td [(so )-72(any )-72(computer )-72(that )-72(can )-72(cr)18(eate )-72(a )-72(TCP/IP )-72(connection )-72(to )-72(the )-72(printer )-72(can )-72(submit )-72(a )-72(print)]TJ T* (job.)Tj /T1_3 1 Tf 9 0 0 9 506.0995 113.9998 Tm (789)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46874 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (786)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (Figur)Tj 0.2638 Tc 2.383 0 Td (e2)Tj 0 Tc 1.243 0 Td [(0.9 )-14(is )-14(a )-14(graph )-14(of )-14(the )-14(data )-14(fr)19(om )-14(Figur)]TJ 0.2639 Tc 15.935 0 Td (e2)Tj 0 Tc 1.243 0 Td [(0.8 )-14(for )-14(advisory )-14(\336ne-grained )-14(locking.)]TJ -0.092 Tc -22.603 -1.2 Td [(We )-268(p)]TJ 0 Tc 2.322 0 Td [(lot )-84(the )-84(clock )-84(time )-84(as )-84(the )-84(number )-84(of )-84(pr)18(ocesses )-84(goes )-84(fr)22(om )-83(1 )-83(to )-83(16.)]TJ -0.092 Tc 29.379 0 Td [(We )-268(a)]TJ 0 Tc 2.221 0 Td [(lso )-83(plot )-83(the)]TJ -33.921 -1.2 Td [(user )-93(CPU )-93(time )-93(divided )-93(by )-93(the )-93(number )-93(of )-93(pr)19(ocesses )-93(and )-93(the )-93(system )-93(CPU )-93(time )-93(divided)]TJ 0 -1.2 TD [(by the number of pr)18(ocesses.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 4154.25 cm 0 0 m 0 1872 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4326.25 6026.25 cm 0 0 m 0 -1872 l -2304 -1872 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 298.5722 384.7938 Tm [(#pr)18(ocesses)]TJ -19.706 15.925 Td (clock time)Tj 0.167 -1.25 Td (\(seconds\))Tj 38.154 3.125 Td [(sys CPU/#pr)18(oc,)]TJ -0.123 -1.25 Td [(user CPU/#pr)18(oc)]TJ 1.57 -1.25 Td (\(seconds\))Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2094.25 4154.25 cm 0 0 m 0 -90 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 207.3627 397.7684 Tm (1)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2238.25 4154.25 cm 0 0 m 0 -90 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 221.7468 397.7445 Tm (2)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 4154.25 cm 0 0 m 0 -90 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 236.1291 397.7207 Tm (3)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2526.25 4154.25 cm 0 0 m 0 -90 l S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 250.5098 397.6968 Tm (4)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 4154.25 cm 0 0 m 0 -90 l S Q Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 264.8887 397.6729 Tm (5)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2814.25 4154.25 cm 0 0 m 0 -90 l S Q Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 279.2659 397.6491 Tm (6)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2958.25 4154.25 cm 0 0 m 0 -90 l S Q Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 293.6414 397.6252 Tm (7)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3102.25 4154.25 cm 0 0 m 0 -90 l S Q Q BT /T1_1 1 Tf 7.9952 0 0 7.9952 308.0151 397.6014 Tm (8)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 4154.25 cm 0 0 m 0 -90 l S Q Q BT /T1_1 1 Tf 7.9947 0 0 7.9947 322.3871 397.5775 Tm (9)Tj ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3390.25 4154.25 cm 0 0 m 0 -90 l S Q Q BT /T1_1 1 Tf 7.9942 0 0 7.9942 334.7589 397.5536 Tm (10)Tj ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 4154.25 cm 0 0 m 0 -90 l S Q Q BT /T1_1 1 Tf -0.055 Tc 7.9938 0 0 7.9938 349.3474 397.5298 Tm (11)Tj ET q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3678.25 4154.25 cm 0 0 m 0 -90 l S Q Q BT /T1_1 1 Tf 0 Tc 7.9933 0 0 7.9933 363.4945 397.5059 Tm (12)Tj ET q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 4154.25 cm 0 0 m 0 -90 l S Q Q BT /T1_1 1 Tf 7.9928 0 0 7.9928 377.8598 397.4821 Tm (13)Tj ET q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3966.25 4154.25 cm 0 0 m 0 -90 l S Q Q BT /T1_1 1 Tf 7.9923 0 0 7.9923 392.2233 397.4582 Tm (14)Tj ET q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 4154.25 cm 0 0 m 0 -90 l S Q Q BT /T1_1 1 Tf 7.9918 0 0 7.9918 406.5851 397.4344 Tm (15)Tj ET q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4254.25 4154.25 cm 0 0 m 0 -90 l S Q Q BT /T1_1 1 Tf 7.9914 0 0 7.9914 420.9451 397.4106 Tm (16)Tj ET q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 4154.25 cm 0 0 m -90 0 l S Q Q BT /T1_1 1 Tf 7.9909 0 0 7.9909 187.1865 413.1687 Tm (0)Tj ET q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 4388.25 cm 0 0 m -90 0 l S Q Q BT /T1_1 1 Tf 7.9904 0 0 7.9904 183.18 436.5159 Tm (10)Tj ET q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 4622.25 cm 0 0 m -90 0 l S Q Q BT /T1_1 1 Tf 7.9899 0 0 7.9899 183.1691 459.8602 Tm (20)Tj ET q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 4856.25 cm 0 0 m -90 0 l S Q Q BT /T1_1 1 Tf 7.9894 0 0 7.9894 183.1581 483.2017 Tm (30)Tj ET q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5090.25 cm 0 0 m -90 0 l S Q Q BT /T1_1 1 Tf 7.989 0 0 7.989 183.1471 506.5405 Tm (40)Tj ET q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5324.25 cm 0 0 m -90 0 l S Q Q BT /T1_1 1 Tf 7.9885 0 0 7.9885 183.1361 529.8764 Tm (50)Tj ET q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5558.25 cm 0 0 m -90 0 l S Q Q BT /T1_1 1 Tf 7.988 0 0 7.988 183.1251 553.2095 Tm (60)Tj ET q 0.0998501 0 0 0.0998501 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5792.25 cm 0 0 m -90 0 l S Q Q BT /T1_1 1 Tf 7.9875 0 0 7.9875 183.1141 576.5399 Tm (70)Tj ET q 0.0998441 0 0 0.0998441 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 6026.25 cm 0 0 m -90 0 l S Q Q BT /T1_1 1 Tf 7.9871 0 0 7.9871 183.1031 599.8674 Tm (80)Tj ET q 0.0998381 0 0 0.0998381 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4326.25 4154.25 cm 0 0 m 90 0 l S Q Q BT /T1_1 1 Tf 7.9866 0 0 7.9866 442.6557 412.9456 Tm (0)Tj ET q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4326.25 4622.25 cm 0 0 m 90 0 l S Q Q BT /T1_1 1 Tf 7.9861 0 0 7.9861 442.6291 459.6395 Tm (2)Tj ET q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4326.25 5090.25 cm 0 0 m 90 0 l S Q Q BT /T1_1 1 Tf 7.9856 0 0 7.9856 442.6026 506.3278 Tm (4)Tj ET q 0.0998202 0 0 0.0998202 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4326.25 5558.25 cm 0 0 m 90 0 l S Q Q BT /T1_1 1 Tf 7.9851 0 0 7.9851 442.576 553.0104 Tm (6)Tj ET q 0.0998142 0 0 0.0998142 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4326.25 6026.25 cm 0 0 m 90 0 l S Q Q BT /T1_1 1 Tf 7.9847 0 0 7.9847 442.5495 599.6875 Tm (8)Tj 6.9866 0 0 6.9866 206.8814 413.9963 Tm (\245)Tj /TT0 1 Tf 7.9847 0 0 7.9847 207.0023 416.0802 Tm (%)Tj 4.9904 0 0 4.9904 207.4713 421.0387 Tm ($)Tj /T1_1 1 Tf 6.9866 0 0 6.9866 221.2538 415.4334 Tm (\245)Tj /TT0 1 Tf 7.9847 0 0 7.9847 221.3746 419.1704 Tm (%)Tj 4.9904 0 0 4.9904 221.8436 428.7278 Tm ($)Tj ET q 0.0998082 0 0 0.0998082 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2094.25 4165.25 cm 0 0 m 144 14 l S Q Q q 0.0998082 0 0 0.0998082 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2094.25 4186.25 cm 0 0 m 144 30 l S Q Q q 0.0998082 0 0 0.0998082 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2094.25 4236.25 cm 0 0 m 144 77 l S Q Q BT /T1_1 1 Tf 6.9862 0 0 6.9862 235.612 417.9237 Tm (\245)Tj /TT0 1 Tf 7.9842 0 0 7.9842 235.7329 423.4568 Tm (%)Tj 4.9901 0 0 4.9901 236.2018 441.8523 Tm ($)Tj ET q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2238.25 4180.25 cm 0 0 m 144 26 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2238.25 4217.25 cm 0 0 m 144 44 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2238.25 4313.25 cm 0 0 m 144 132 l S Q Q BT /T1_1 1 Tf 6.9857 0 0 6.9857 249.9685 422.2816 Tm (\245)Tj /TT0 1 Tf 7.9837 0 0 7.9837 250.0894 429.3232 Tm (%)Tj 4.9898 0 0 4.9898 250.5583 460.3637 Tm ($)Tj ET q 0.0997962 0 0 0.0997962 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 4205.25 cm 0 0 m 144 44 l S Q Q q 0.0997962 0 0 0.0997962 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 4260.25 cm 0 0 m 144 59 l S Q Q q 0.0997962 0 0 0.0997962 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 4445.25 cm 0 0 m 144 185 l S Q Q BT /T1_1 1 Tf 6.9853 0 0 6.9853 264.3233 426.9983 Tm (\245)Tj /TT0 1 Tf 7.9832 0 0 7.9832 264.4442 432.7461 Tm (%)Tj 4.9895 0 0 4.9895 264.9131 468.1677 Tm ($)Tj ET q 0.0997902 0 0 0.0997902 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2526.25 4249.25 cm 0 0 m 144 47 l S Q Q q 0.0997902 0 0 0.0997902 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2526.25 4319.25 cm 0 0 m 144 35 l S Q Q q 0.0997902 0 0 0.0997902 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2526.25 4630.25 cm 0 0 m 144 79 l S Q Q BT /T1_1 1 Tf 6.9849 0 0 6.9849 278.6764 433.5106 Tm (\245)Tj /TT0 1 Tf 7.9827 0 0 7.9827 278.7972 436.2406 Tm (%)Tj 4.9892 0 0 4.9892 279.2661 480.7125 Tm ($)Tj ET q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 4296.25 cm 0 0 m 144 66 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 4354.25 cm 0 0 m 144 35 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 4709.25 cm 0 0 m 144 126 l S Q Q BT /T1_1 1 Tf 6.9845 0 0 6.9845 293.0277 440.4531 Tm (\245)Tj /TT0 1 Tf 7.9823 0 0 7.9823 293.1486 439.5909 Tm (%)Tj 4.9889 0 0 4.9889 293.6174 490.2385 Tm ($)Tj ET q 0.0997782 0 0 0.0997782 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2814.25 4362.25 cm 0 0 m 144 70 l S Q Q q 0.0997782 0 0 0.0997782 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2814.25 4389.25 cm 0 0 m 144 34 l S Q Q q 0.0997782 0 0 0.0997782 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2814.25 4835.25 cm 0 0 m 144 96 l S Q Q BT /T1_1 1 Tf 6.9841 0 0 6.9841 307.3774 448.8315 Tm (\245)Tj /TT0 1 Tf 7.9818 0 0 7.9818 307.4982 443.372 Tm (%)Tj 4.9886 0 0 4.9886 307.967 501.703 Tm ($)Tj ET q 0.0997723 0 0 0.0997723 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2958.25 4432.25 cm 0 0 m 144 84 l S Q Q q 0.0997723 0 0 0.0997723 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2958.25 4423.25 cm 0 0 m 144 37 l S Q Q q 0.0997723 0 0 0.0997723 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2958.25 4931.25 cm 0 0 m 144 116 l S Q Q BT /T1_1 1 Tf 6.9836 0 0 6.9836 321.7253 457.7117 Tm (\245)Tj /TT0 1 Tf 7.9813 0 0 7.9813 321.8461 447.4396 Tm (%)Tj 4.9883 0 0 4.9883 322.3149 510.7234 Tm ($)Tj ET q 0.0997663 0 0 0.0997663 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3102.25 4516.25 cm 0 0 m 144 89 l S Q Q q 0.0997663 0 0 0.0997663 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3102.25 4461.25 cm 0 0 m 144 41 l S Q Q q 0.0997663 0 0 0.0997663 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3102.25 5046.25 cm 0 0 m 144 91 l S Q Q BT /T1_1 1 Tf 6.9832 0 0 6.9832 336.0714 468.0992 Tm (\245)Tj /TT0 1 Tf 7.9808 0 0 7.9808 336.1922 450.9322 Tm (%)Tj 4.988 0 0 4.988 336.661 522.4003 Tm ($)Tj ET q 0.0997603 0 0 0.0997603 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 4605.25 cm 0 0 m 144 105 l S Q Q q 0.0997603 0 0 0.0997603 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 4502.25 cm 0 0 m 144 36 l S Q Q q 0.0997603 0 0 0.0997603 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 5137.25 cm 0 0 m 144 117 l S Q Q BT /T1_1 1 Tf 6.9828 0 0 6.9828 350.4159 479.3473 Tm (\245)Tj /TT0 1 Tf 7.9803 0 0 7.9803 350.5367 454.4247 Tm (%)Tj 4.9877 0 0 4.9877 351.0054 532.7116 Tm ($)Tj ET q 0.0997543 0 0 0.0997543 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3390.25 4710.25 cm 0 0 m 144 113 l S Q Q q 0.0997543 0 0 0.0997543 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3390.25 4538.25 cm 0 0 m 144 36 l S Q Q q 0.0997543 0 0 0.0997543 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3390.25 5254.25 cm 0 0 m 144 104 l S Q Q BT /T1_1 1 Tf 6.9824 0 0 6.9824 364.7586 490.4505 Tm (\245)Tj /TT0 1 Tf 7.9799 0 0 7.9799 364.8794 458.2758 Tm (%)Tj 4.9874 0 0 4.9874 365.3481 541.1545 Tm ($)Tj ET q 0.0997483 0 0 0.0997483 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 4823.25 cm 0 0 m 144 111 l S Q Q q 0.0997483 0 0 0.0997483 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 4573.25 cm 0 0 m 144 38 l S Q Q q 0.0997483 0 0 0.0997483 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 5358.25 cm 0 0 m 144 85 l S Q Q BT /T1_1 1 Tf 6.982 0 0 6.982 379.0996 504.0658 Tm (\245)Tj /TT0 1 Tf 7.9794 0 0 7.9794 379.2204 462.2699 Tm (%)Tj 4.9871 0 0 4.9871 379.6891 552.1817 Tm ($)Tj ET q 0.0997423 0 0 0.0997423 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3678.25 4934.25 cm 0 0 m 144 138 l S Q Q q 0.0997423 0 0 0.0997423 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3678.25 4612.25 cm 0 0 m 144 41 l S Q Q q 0.0997423 0 0 0.0997423 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3678.25 5443.25 cm 0 0 m 144 110 l S Q Q BT /T1_1 1 Tf 6.9815 0 0 6.9815 393.4389 520.4083 Tm (\245)Tj /TT0 1 Tf 7.9789 0 0 7.9789 393.5597 466.4789 Tm (%)Tj 4.9868 0 0 4.9868 394.0284 565.0025 Tm ($)Tj ET q 0.0997363 0 0 0.0997363 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 5071.25 cm 0 0 m 144 164 l S Q Q q 0.0997363 0 0 0.0997363 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 4652.25 cm 0 0 m 144 42 l S Q Q q 0.0997363 0 0 0.0997363 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 5553.25 cm 0 0 m 144 129 l S Q Q BT /T1_1 1 Tf 6.9811 0 0 6.9811 407.7765 533.4457 Tm (\245)Tj /TT0 1 Tf 7.9784 0 0 7.9784 407.8973 469.0359 Tm (%)Tj 4.9865 0 0 4.9865 408.3659 572.7235 Tm ($)Tj ET q 0.0997304 0 0 0.0997304 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3966.25 5235.25 cm 0 0 m 144 131 l S Q Q q 0.0997304 0 0 0.0997304 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3966.25 4694.25 cm 0 0 m 144 26 l S Q Q q 0.0997304 0 0 0.0997304 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3966.25 5682.25 cm 0 0 m 144 78 l S Q Q BT /T1_1 1 Tf 6.9807 0 0 6.9807 422.1123 551.8667 Tm (\245)Tj /TT0 1 Tf 7.9779 0 0 7.9779 422.2331 474.0338 Tm (%)Tj 4.9862 0 0 4.9862 422.7017 584.8954 Tm ($)Tj ET q 0.0997244 0 0 0.0997244 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5366.25 cm 0 0 m 144 185 l S Q Q q 0.0997244 0 0 0.0997244 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 4720.25 cm 0 0 m 144 51 l S Q Q q 0.0997244 0 0 0.0997244 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5760.25 cm 0 0 m 144 122 l S Q Q BT /T1_1 1 Tf 6.9803 0 0 6.9803 352.4048 447.4404 Tm [(user CPU/#pr)18(oc)]TJ -12.343 10.697 Td [(system CPU/#pr)18(oc)]TJ 10.286 -3.003 Td (clock time)Tj /T1_0 1 Tf 7.9775 0 0 7.9775 192.999 363.5735 Tm (Figure 20.9)Tj /T1_1 1 Tf -0.092 Tc 5.695 0 Td (Va)Tj 0 Tc 1.13 0 Td [(lues fr)18(om Figur)]TJ 0.25 Tc 6.819 0 Td (e2)Tj 0 Tc 1.229 0 Td (0.8 for advisory \336ne-grained locking)Tj 9.9718 0 0 9.9718 129.2351 339.6411 Tm [(Note )-87(that )-87(both )-87(CPU )-87(times, )-87(divided )-87(by )-87(the )-87(number )-87(of )-87(pr)15(ocesses, )-87(ar)]TJ 0.3372 Tc 30.031 0 Td (el)Tj 0 Tc 1.107 0 Td [(inear )-87(but )-87(that )-87(the)]TJ -31.138 -1.2 Td [(plot )-118(of )-118(the )-118(clock )-118(time )-118(is )-118(nonlinear)]TJ 0.6177 Tc 15.385 0 Td (.T)Tj 0 Tc 1.481 0 Td [(he )-118(pr)18(obable )-118(r)18(eason )-118(is )-118(the )-118(added )-118(amount )-118(of )-118(CPU)]TJ -16.865 -1.2 Td [(time )-262(used )-262(by )-262(the )-262(operating )-262(system )-262(to )-262(switch )-262(between )-262(pr)18(ocesses )-262(as )-262(the )-262(number )-262(of)]TJ T* [(pr)18(ocesses )-133(incr)18(eases. )-383(This)-384(operating )-133(system )-133(over)17(head )-133(would )-133(show )-133(up )-133(as )-133(an )-133(incr)16(eased)]TJ 0 -1.2 Td [(clock time, but shouldn\325t af)18(fect the CPU times of the individual pr)18(ocesses.)]TJ 1.8 -1.2 Td [(The )-77(r)18(eason )-77(the )-77(user )-77(CPU )-77(time )-77(incr)19(eases )-77(with )-77(the )-77(number )-77(of )-77(pr)18(ocesses )-77(is )-77(that )-77(ther)20(e)]TJ -1.8 -1.2 Td (ar)Tj 0.4472 Tc 0.877 0 Td (em)Tj 0 Tc 1.809 0 Td (or)Tj 0.4472 Tc 0.923 0 Td (er)Tj 0 Tc 1.303 0 Td [(ecor)18(ds )-197(in )-197(the )-197(database.)-698(Each )-197(hash )-197(chain )-197(is )-197(getting )-197(longer)73(,)-447(so)-447(it)-447(t)-1(akes )-197(the)]TJ /TT1 1 Tf -4.912 -1.2 Td (_db_find_and_lock)Tj /T1_1 1 Tf 10.45 0 Td [(function longer)74(,)-250(on)-250(average, to \336nd a r)18(ecor)18(d.)]TJ /TT2 1 Tf 11.9662 0 0 11.9662 93.3372 219.9791 Tm [(20.10 )-220(Summar)-10(y)]TJ /T1_1 1 Tf 9.9718 0 0 9.9718 129.2358 196.0467 Tm [(This )-194(chapter )-194(has )-194(taken )-194(a )-194(long )-194(look )-194(at )-194(the )-194(design )-194(and )-194(implementation )-194(of )-194(a )-194(database)]TJ T* (library)Tj 0.5519 Tc 2.87 0 Td (.A)Tj 0 Tc 1.58 0 Td [(lthough )-52(we\325ve )-52(kept )-52(the )-52(library )-52(small )-52(and )-52(simple )-52(for )-52(pr)19(esentation )-52(purposes, )-52(it)]TJ -4.45 -1.2 Td [(contains the r)18(ecor)]TJ 0.25 Tc 7.805 0 Td (dl)Tj 0 Tc 1.152 0 Td [(ocking r)18(equir)18(ed to allow concurr)18(ent access by multiple pr)18(ocesses.)]TJ -0.092 Tc -7.157 -1.2 Td (We)Tj 0 Tc 1.387 0 Td [(\325ve )-268(also )-268(looked )-268(at )-268(the )-268(performance )-268(of )-268(this )-268(library )-268(with )-268(various )-268(numbers )-268(of)]TJ -3.187 -1.2 Td [(pr)18(ocesses )-228(using )-228(no )-228(locking, )-228(advisory )-228(locking )-228(\(\336ne-grained )-228(and )-228(coarse-grained\), )-228(and)]TJ T* [(mandatory )-57(locking.)]TJ -0.055 Tc 9.279 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-57(a )-57(single )-57(pr)17(ocess, )-57(we )-57(saw )-57(that )-57(advisory )-57(locking )-57(adds )-57(between)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46875 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.9)]TJ 38.193 0 Td (Performance)Tj /T1_1 1 Tf 7.64 0 Td (781)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (The normal use of)Tj /TT0 1 Tf 8.256 0 Td (db_rewind)Tj /T1_0 1 Tf 5.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (db_nextrec)Tj /T1_0 1 Tf 6.25 0 Td (is in a loop of the form)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5914 652.2609 Tm (db_rewind\(db\);)Tj 0 -1.189 TD (while \(\(ptr = db_nextrec\(db, key\)\) != NULL\) {)Tj 2.4 -1.189 Td (/* process record */)Tj -2.4 -1.189 Td (})Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5925 602.1639 Tm [(As )-172(we )-172(warned )-172(earlier)]TJ 0.4218 Tc 9.937 0 Td (,t)Tj 0 Tc 0.998 0 Td [(her)18(e)-422(is)-422(no)-422(o)]TJ -0.018 Tc 5.571 0 Td (rd)Tj 0 Tc 0.988 0 Td [(er )-172(to )-172(the )-172(r)18(eturned )-172(r)19(ecor)18(ds; )-172(they )-172(ar)]TJ 0.4217 Tc 15.843 0 Td (en)Tj 0 Tc 1.483 0 Td [(ot )-172(in )-172(key)]TJ -34.821 -1.2 Td [(or)18(der)74(.)]TJ 1.8 -1.2 Td [(If )-210(the )-210(database )-210(is )-210(being )-210(modi\336ed )-210(while)]TJ /TT0 1 Tf 18.849 0 Td (db_nextrec)Tj /T1_0 1 Tf 6.46 0 Td [(is )-210(called )-210(fr)18(om )-210(a )-210(loop, )-210(the)]TJ -0.018 Tc -27.109 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(ds )-9(r)18(eturned )-9(by)]TJ /TT0 1 Tf 8.141 0 Td (db_nextrec)Tj /T1_0 1 Tf 6.259 0 Td (ar)Tj 0.2593 Tc 0.877 0 Td (es)Tj 0 Tc 1.162 0 Td [(imply )-9(a )-9(snapshot )-9(of )-9(a )-9(changing )-9(database )-9(at )-9(some)]TJ -17.296 -1.2 Td [(point )-54(in )-54(time.)]TJ /TT0 1 Tf 6.609 0 Td (db_nextrec)Tj /T1_0 1 Tf 6.304 0 Td [(always )-54(r)18(eturns )-54(a )-54(\324)38(\324corr)18(ect\325)]TJ 0.3039 Tc 11.473 0 Td (\325r)Tj 0 Tc 0.959 0 Td (ecor)Tj 0.3039 Tc 1.846 0 Td (dw)Tj 0 Tc 1.749 0 Td [(hen )-54(it )-54(is )-54(called; )-54(that )-54(is,)]TJ -28.94 -1.2 Td [(it )-150(won\325t )-150(r)18(eturn )-150(a )-150(r)17(ecor)]TJ 0.4002 Tc 10.269 0 Td (dt)Tj 0 Tc 1.337 0 Td [(hat )-150(was )-150(deleted.)-650(But )-150(it )-150(is )-150(possible )-150(for )-150(a )-150(r)16(ecor)]TJ 0.4001 Tc 21.022 0 Td (dr)Tj 0 Tc 1.388 0 Td [(eturned )-150(by)]TJ /TT0 1 Tf -34.016 -1.2 Td (db_nextrec)Tj /T1_0 1 Tf 6.522 0 Td [(to )-272(be )-272(deleted )-272(immediately )-272(after)]TJ /TT0 1 Tf 15.416 0 Td (db_nextrec)Tj /T1_0 1 Tf -0.018 Tc 6.523 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns. )-522(Similarly)111(,)-522(if)-522(a)]TJ -29.317 -1.2 Td [(deleted )-223(r)18(ecor)18(d)-473(is)-473(r)18(eused )-223(right )-223(after)]TJ /TT0 1 Tf 16.82 0 Td (db_nextrec)Tj /T1_0 1 Tf 6.473 0 Td [(skips )-223(over )-223(the )-223(deleted )-223(r)18(ecor)18(d, )-223(we)]TJ -23.293 -1.2 Td [(won\325t )-7(see )-7(that )-7(new )-7(r)17(ecor)]TJ 0.2573 Tc 10.829 0 Td (du)Tj 0 Tc 1.471 0 Td [(nless )-7(we )-7(r)18(ewind )-7(the )-7(database )-7(and )-7(go )-7(thr)18(ough )-7(it )-7(again.)-510(If )-7(it\325s)]TJ -12.301 -1.2 Td [(important )-59(to )-59(obtain )-59(an )-59(accurate )-59(\324)36(\324fr)18(ozen\325)]TJ 0.3093 Tc 18.017 0 Td (\325s)Tj 0 Tc 1.011 0 Td [(napshot )-59(of )-59(the )-59(database )-59(using)]TJ /TT0 1 Tf 13.722 0 Td (db_nextrec)Tj /T1_0 1 Tf (,)Tj -32.75 -1.2 Td (then no insertions or deletions can be going on at the same time.)Tj 1.8 -1.2 Td [(Look )-2(at )-2(the )-2(locking )-2(used )-2(by)]TJ /TT0 1 Tf 12.479 0 Td (db_nextrec)Tj /T1_0 1 Tf 0.5025 Tc (.W)Tj 0 Tc 7.661 0 Td (e\325r)Tj 0.2525 Tc 1.134 0 Td (en)Tj 0 Tc 1.314 0 Td [(ot )-3(going )-3(thr)18(ough )-3(any )-3(hash )-3(chain,)]TJ -24.387 -1.2 Td [(and )-9(we )-9(can\325t )-9(determine )-9(the )-9(hash )-9(chain )-9(that )-9(a )-9(r)20(ecor)]TJ 0.2588 Tc 22.321 0 Td (db)Tj 0 Tc 1.423 0 Td [(elongs )-9(on.)-509(Ther)18(efor)18(e, )-9(it )-9(is )-9(possible)]TJ -23.744 -1.2 Td [(for )-61(an )-61(index )-61(r)17(ecor)18(d)-311(to)-311(be)-311(in)-311(t)-1(he )-61(pr)18(ocess )-61(of )-61(being )-61(deleted )-61(when)]TJ /TT0 1 Tf 28.267 0 Td (db_nextrec)Tj /T1_0 1 Tf 6.311 0 Td [(is )-61(r)18(eading)]TJ -34.578 -1.2 Td [(the )-54(r)18(ecor)18(d. )-304(T)]TJ 0.3041 Tc 5.85 0 Td (op)Tj -0.018 Tc 1.451 0 Td (re)Tj 0 Tc 0.856 0 Td [(vent )-54(this )-54(race,)]TJ /TT0 1 Tf 6.555 0 Td (db_nextrec)Tj /T1_0 1 Tf -0.018 Tc 6.304 0 Td (re)Tj 0 Tc 0.856 0 Td [(ad )-54(locks )-54(the )-54(fr)18(ee )-54(list, )-54(ther)18(eby )-54(avoiding)]TJ -21.873 -1.2 Td (any interaction with)Tj /TT0 1 Tf 9.183 0 Td (_db_dodelete)Tj /T1_0 1 Tf 7.45 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (_db_findfree)Tj /T1_0 1 Tf (.)Tj -16.776 -1.2 Td [(Befor)18(e)-460(we)-460(c)1(onclude )-210(our )-210(study )-210(of )-210(the)]TJ /TT0 1 Tf 17.685 0 Td (db.c)Tj /T1_0 1 Tf 2.86 0 Td [(sour)18(ce )-210(\336le, )-210(we )-210(need )-210(to )-210(describe )-210(the)]TJ -22.345 -1.2 Td [(locking )-42(when )-42(new )-42(index )-42(r)16(ecor)18(ds )-42(or )-42(data )-42(r)17(ecor)18(ds )-42(ar)]TJ 0.2924 Tc 22.727 0 Td (ea)Tj 0 Tc 1.271 0 Td [(ppended )-42(to )-42(the )-42(end )-42(of )-42(the )-42(\336le.)-545(In)]TJ -23.999 -1.2 Td [(cases )-101(1 )-101(and )-101(3,)]TJ /TT0 1 Tf 6.619 0 Td (db_store)Tj /T1_0 1 Tf 5.151 0 Td [(calls )-101(both)]TJ /TT0 1 Tf 4.66 0 Td (_db_writeidx)Tj /T1_0 1 Tf 7.551 0 Td (and)Tj /TT0 1 Tf 2.044 0 Td (_db_writedat)Tj /T1_0 1 Tf 7.551 0 Td [(with )-101(a )-101(thir)17(d)]TJ -33.577 -1.2 Td [(ar)18(gument )-31(of )-31(0 )-31(and )-31(a )-31(fourth )-31(ar)18(gument )-31(of)]TJ /TT0 1 Tf 18.095 0 Td (SEEK_END)Tj /T1_0 1 Tf 0.5309 Tc (.T)Tj 0 Tc 6.194 0 Td [(his )-31(fourth )-31(ar)18(gument )-31(is )-31(the )-31(\337ag )-31(to)]TJ -24.289 -1.2 Td [(these )-96(two )-96(functions, )-96(indicating )-96(that )-96(the )-96(new )-96(r)15(ecor)18(d)-346(is)-346(b)-1(eing )-96(appended )-96(to )-96(the )-96(\336le.)-598(The)]TJ -0 -1.2 Td [(technique )-135(used )-135(by)]TJ /TT0 1 Tf 8.727 0 Td (_db_writeidx)Tj /T1_0 1 Tf 7.585 0 Td [(is )-135(to )-135(write )-135(lock )-135(the )-135(index )-135(\336le )-135(fr)18(om )-135(the )-135(end )-135(of )-135(the)]TJ -16.312 -1.2 Td [(hash )-86(chain )-86(to )-86(the )-86(end )-86(of )-86(\336le.)-586(This )-86(won\325t )-86(interfer)]TJ 0.3364 Tc 21.938 0 Td (ew)Tj 0 Tc 1.649 0 Td [(ith )-86(any )-86(other )-86(r)18(eaders )-86(or )-86(writers )-86(of)]TJ -23.587 -1.2 Td [(the )-184(database )-184(\(since )-184(they )-184(will )-184(lock )-184(a )-184(hash )-184(chain\), )-184(but )-184(it )-184(does )-184(pr)17(event )-184(other )-184(callers )-184(of)]TJ /TT0 1 Tf 0 -1.2 TD (db_store)Tj /T1_0 1 Tf 5.54 0 Td [(fr)18(om )-490(trying )-490(to )-490(append )-490(at )-490(the )-490(same )-490(time.)-993(The )-490(technique )-490(used )-490(by)]TJ /TT0 1 Tf -5.54 -1.2 Td (_db_writedat)Tj /T1_0 1 Tf 7.615 0 Td [(is )-165(to )-165(write )-165(lock )-165(the )-165(entir)]TJ 0.4152 Tc 11.268 0 Td (ed)Tj 0 Tc 1.505 0 Td [(ata )-165(\336le.)-665(Again, )-165(this )-165(won\325t )-165(interfer)]TJ 0.4152 Tc 15.685 0 Td (ew)Tj 0 Tc 1.728 0 Td (ith)Tj -37.801 -1.2 Td [(other )-59(r)18(eaders )-59(or )-59(writers )-59(of )-59(the )-59(database )-59(\(since )-59(they )-59(don\325t )-59(even )-59(try )-59(to )-59(lock )-59(the )-59(data )-59(\336le\),)]TJ T* [(but )-70(it )-70(does )-70(pr)18(event )-70(other )-70(callers )-70(of)]TJ /TT0 1 Tf 15.836 0 Td (db_store)Tj /T1_0 1 Tf 5.12 0 Td [(fr)18(om )-69(trying )-69(to )-69(append )-69(to )-69(the )-69(data )-69(\336le )-69(at)]TJ -20.956 -1.2 Td [(the same time.)-500(\(See Exer)18(cise 20.3.\))]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5968 230.1862 Tm [(20.9 )-776(P)30(erf)20(ormance)]TJ /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5946 208.5875 Tm [(We )-493(w)]TJ -0.018 Tc 2.78 0 Td (ro)Tj 0 Tc 0.923 0 Td [(te )-309(a )-309(test )-309(pr)18(ogram )-309(to )-309(test )-309(the )-309(database )-309(library )-309(and )-309(to )-309(obtain )-309(some )-309(timing)]TJ -3.703 -1.2 Td [(measur)18(ements )-200(of )-200(the )-200(database )-200(access )-200(patterns )-200(of )-200(typical )-200(applications.)-700(This )-200(pr)17(ogram)]TJ 0 -1.2 Td (takes two command)Tj 8.941 0.09 Td (-)Tj 0.333 -0.09 Td [(line ar)18(guments: the number of childr)18(en to cr)18(eate and the number of)]TJ -9.274 -1.2 Td [(database )-6(r)18(ecor)18(ds )-6(\()]TJ /T1_2 1 Tf [(nr)18(ec)]TJ /T1_0 1 Tf 0.256 Tc (\)f)Tj 0 Tc 10.641 0 Td [(or )-6(each )-6(child )-6(to )-6(write )-6(to )-6(the )-6(database.)-506(The )-6(pr)18(ogram )-6(then )-6(cr)19(eates)]TJ -10.641 -1.2 Td [(an )-171(empty )-171(database )-171(\(by )-171(calling)]TJ /TT0 1 Tf 14.323 0 Td (db_open)Tj /T1_0 1 Tf (\),)Tj /TT0 1 Tf 5.204 0 Td (fork)Tj /T1_0 1 Tf 0.4213 Tc (st)Tj 0 Tc 3.571 0 Td [(he )-171(number )-171(of )-171(child )-171(pr)18(ocesses, )-171(and)]TJ -23.099 -1.2 Td [(waits for all the childr)18(en to terminate.)-500(Each child performs the following steps.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46876 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.8)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (753)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (fgets)Tj /T1_0 1 Tf 0.2851 Tc (,f)Tj 0 Tc 3.868 0 Td [(or )-35(example, )-35(to )-35(r)18(eturn )-35(data )-35(that )-35(was )-35(r)18(ead )-35(into )-35(a )-35(standar)]TJ 0.285 Tc 24.386 0 Td (dI)Tj 0 Tc 1.233 0 Td [(/O )-35(buf)18(fer )-35(10 )-35(minutes)]TJ -29.487 -1.2 Td [(ago if the data was modi\336ed by another pr)18(ocess 5 minutes ago.)]TJ 1.8 -1.2 Td [(Our )-149(discussion )-149(of )-149(concurr)18(ency )-149(is )-149(pr)18(edicated )-149(on )-149(the )-149(simple )-149(needs )-149(of )-149(the )-149(database)]TJ -1.8 -1.2 Td (library)Tj 0.6956 Tc 2.87 0 Td (.C)Tj 0 Tc 1.655 0 Td [(ommer)18(cial )-196(systems )-196(often )-196(have )-196(additional )-196(r)20(equir)18(ements. )-446(See)-445(Chapter )-196(16 )-196(of)]TJ -4.525 -1.2 Td (Date)Tj 2.329 0.04 Td ([)Tj 0.333 -0.04 Td (2004)Tj 2 0.04 Td (])Tj 0.583 -0.04 Td [(for additional details on concurr)18(ency)111(.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5944 588.5647 Tm [(20.7 )-776(Building)-556(the )-278(Librar)-10(y)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5921 566.966 Tm [(The )-39(database )-39(library )-39(consists )-39(of )-39(two )-39(\336les: )-39(a )-39(public )-39(C )-39(header )-39(\336le )-39(and )-39(a )-39(C )-39(sour)24(ce )-39(\336le.)]TJ -0.092 Tc 37.612 0 Td (We)Tj 0 Tc -37.612 -1.2 Td (can build a static library using the commands)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 537.1979 Tm (gcc -I../include -Wall -c db.c)Tj 0 -1.189 TD (ar rsv libapue_db.a db.o)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.592 507.4298 Tm [(Applications )-357(that )-357(want )-357(to )-357(link )-357(with)]TJ /TT0 1 Tf 17.916 0 Td (libapue_db.a)Tj /T1_0 1 Tf 7.807 0 Td [(will )-357(also )-357(need )-357(to )-357(link )-357(with)]TJ /TT0 1 Tf -25.723 -1.2 Td (libapue.a)Tj /T1_0 1 Tf 0.25 Tc (,s)Tj 0 Tc 6.324 0 Td [(ince we use some of our common functions in the database library)111(.)]TJ -4.524 -1.2 Td [(If, )-168(on )-168(the )-168(other )-168(hand, )-168(we )-168(want )-168(to )-168(build )-168(a )-168(dynamic )-168(shar)18(ed )-168(library )-168(version )-168(of )-168(the)]TJ -1.8 -1.2 Td [(database library)111(,)-250(we)-250(can use the following commands:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 453.6627 Tm (gcc -I../include -Wall -fPIC -c db.c)Tj T* (gcc -shared -Wl,-soname,libapue_db.so.1 -o libapue_db.so.1 \\)Tj 2.4 -1.189 Td (-L../lib -lapue -lc db.o)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5923 413.1952 Tm [(The )-240(r)18(esulting )-240(shar)18(ed )-240(library)110(,)]TJ /TT0 1 Tf 13.657 0 Td (libapue_db.so.1)Tj /T1_0 1 Tf 0.4902 Tc (,n)Tj 0 Tc 10.322 0 Td [(eeds )-240(to )-240(be )-240(placed )-240(in )-240(a )-240(common)]TJ -23.979 -1.2 Td [(dir)18(ectory )-47(wher)]TJ 0.2973 Tc 6.594 0 Td (et)Tj 0 Tc 1.102 0 Td [(he )-47(dynamic )-47(linker/loader )-47(can )-47(\336nd )-47(it.)-549(Alternatively)111(,)-297(we)-297(c)-1(an )-47(place )-47(it )-47(in)]TJ 0.6359 Tc -7.697 -1.2 Td (ap)Tj 0 Tc 1.737 0 Td [(rivate )-386(dir)18(ectory )-386(and )-386(modify )-386(our)]TJ /TT0 1 Tf 16.217 0 Td (LD_LIBRARY_PATH)Tj /T1_0 1 Tf 9.636 0 Td [(envir)18(onment )-386(variable )-386(to)]TJ -27.59 -1.2 Td [(include the private dir)18(ectory in the sear)18(ch path of the dynamic linker/loader)74(.)]TJ 7.9995 0 0 7.9995 183.5888 357.1986 Tm [(The )-57(steps )-57(used )-57(to )-57(build )-57(shar)18(ed )-57(libraries )-57(vary )-57(among )-57(platforms.)-555(Her)18(e, )-57(we )-57(have )-57(shown )-57(how )-57(to)]TJ -0 -1.25 Td [(do it on a Linux system with the GNU C compiler)74(.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5941 311.2013 Tm [(20.8 )-776(Sour)20(ce )-278(Code)]TJ /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5919 289.6026 Tm [(We )-349(s)]TJ 0 Tc 2.226 0 Td [(tart )-165(by )-165(showing )-165(the)]TJ /TT0 1 Tf 9.519 0 Td (apue_db.h)Tj /T1_0 1 Tf 5.815 0 Td (header)Tj 0.6653 Tc 2.972 0 Td (.T)Tj 0 Tc 1.528 0 Td [(his )-165(header )-165(is )-165(included )-165(by )-165(the )-165(library)]TJ -22.061 -1.2 Td [(sour)18(ce code and all applications that call the library)111(.)]TJ 1.8 -1.2 Td [(For )-36(the )-36(r)18(emainder )-36(of )-36(this )-36(text, )-36(we )-36(depart )-36(fr)16(om )-36(the )-36(style )-36(of )-36(the )-36(pr)18(evious )-36(examples )-36(in)]TJ -1.8 -1.2 Td [(several )-74(ways.)-573(First, )-74(because )-74(the )-74(sour)18(ce )-74(code )-74(example )-74(is )-74(longer )-74(than )-74(usual, )-74(we )-74(number)]TJ 0 -1.2 TD [(the )-193(lines.)-693(This )-193(makes )-193(it )-193(easier )-193(to )-193(link )-193(the )-193(discussion )-193(with )-193(the )-193(corr)14(esponding )-193(sour)18(ce)]TJ -0 -1.2 Td [(code. )-507(Second,)-506(we )-257(place )-257(the )-257(description )-257(of )-257(the )-257(sour)18(ce )-257(code )-257(immediately )-257(below )-257(the)]TJ T* [(sour)18(ce code on the same page.)]TJ 7.9995 0 0 7.9995 183.5887 197.6081 Tm [(This )-58(style )-58(was )-58(inspir)19(ed )-58(by )-58(John )-58(Lions )-58(in )-58(his )-58(book )-58(documenting )-58(the )-58(UNIX )-58(V)111(ersion )-58(6 )-58(operating)]TJ 0 -1.25 TD [(system )-190(sour)18(ce )-190(code)]TJ 9.367 0.04 Td ([)Tj 0.333 -0.04 Td [(Lions )-190(1977, )-190(1996)]TJ 7.585 0.04 Td (])Tj 0.6905 Tc 0.333 -0.04 Td (.I)Tj 0.4404 Tc 1.277 0 Td (ts)Tj 0 Tc 1.19 0 Td [(impli\336es )-190(the )-190(task )-190(of )-190(studying )-190(lar)18(ge )-190(amounts )-190(of)]TJ -20.085 -1.25 Td [(sour)18(ce code.)]TJ 9.9994 0 0 9.9994 129.5921 157.6105 Tm [(Note )-187(that )-187(we )-187(do )-187(not )-187(bother )-187(to )-187(number )-187(blank )-187(lines.)-687(Although )-187(this )-187(departs )-187(fr)22(om )-187(the)]TJ 0 -1.2 TD [(normal )-58(behavior )-58(of )-58(such )-58(tools )-58(as)]TJ /TT0 1 Tf 14.943 0 Td (pr)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.333 -0.04 Td [(,)-308(we)-308(h)1(ave )-58(nothing )-58(inter)18(esting )-58(to )-58(say )-58(about )-58(blank)]TJ -17.309 -1.2 Td (lines.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46877 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (752)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(The )-159(user )-159(pr)18(ocesses )-159(that )-159(call )-159(the )-159(functions )-159(in )-159(the )-159(database )-159(library )-159(to )-159(perform )-159(I/O )-159(ar)18(e)]TJ 0 -1.2 TD [(consider)18(ed )-462(cooperating )-462(pr)18(ocesses, )-462(since )-462(they )-462(use )-462(byte-range )-462(locking )-462(to )-462(pr)20(ovide)]TJ -0 -1.2 Td [(concurr)18(ent access.)]TJ /TT0 1 Tf 11.9993 0 0 11.9993 93.5942 612.5632 Tm [(20.6 )-776(Concurrenc)10(y)]TJ /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5922 588.5647 Tm [(We )-325(p)]TJ 0 Tc 2.379 0 Td [(urposely )-141(chose )-141(a )-141(two-\336le )-141(implementation )-141(\(an )-141(index )-141(\336le )-141(and )-141(a )-141(data )-141(\336le\) )-141(because)]TJ -2.379 -1.2 Td [(that )-208(is )-208(a )-208(common )-208(implementation )-208(technique )-208(\(it )-208(simpli\336es )-208(space )-208(management )-208(in )-208(the)]TJ T* [(\336les\). )-500(It)]TJ -0.018 Tc 4.296 0 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(es )-251(us )-251(to )-251(handle )-251(the )-251(locking )-251(interactions )-251(of )-251(both )-251(\336les.)-751(But )-251(ther)]TJ 0.5006 Tc 31.513 0 Td (ea)Tj -0.018 Tc 1.48 0 Td (re)Tj 0 Tc -38.144 -1.2 Td [(numer)18(ous ways to handle the locking of these two \336les.)]TJ /TT0 1 Tf -3.6 -2.4 Td [(Coar)15(se-Grained Loc)20(king)]TJ /T1_1 1 Tf 3.6 -2.16 Td [(The )-215(simplest )-215(form )-215(of )-215(locking )-215(is )-215(to )-215(use )-215(one )-215(of )-215(the )-215(two )-215(\336les )-215(as )-215(a )-215(lock )-215(for )-215(the )-215(entir)11(e)]TJ T* [(database )-90(and )-90(to )-90(r)19(equir)]TJ 0.3398 Tc 10.164 0 Td (et)Tj 0 Tc 1.145 0 Td [(he )-90(caller )-90(to )-90(obtain )-90(this )-90(lock )-90(befor)]TJ 0.3399 Tc 14.918 0 Td (eo)Tj 0 Tc 1.365 0 Td [(perating )-90(on )-90(the )-90(database.)]TJ -0.092 Tc -27.592 -1.2 Td [(We )-232(c)]TJ 0 Tc 2.129 0 Td [(all )-48(this)]TJ /T1_2 1 Tf 3.302 0 Td [(coarse-grained )-48(locking)]TJ /T1_1 1 Tf 0.5484 Tc (.F)Tj 0 Tc 10.411 0 Td [(or )-48(example, )-48(we )-48(can )-48(say )-48(that )-48(the )-48(pr)18(ocess )-48(with )-48(a )-48(r)15(ead)]TJ -15.842 -1.2 Td [(lock )-57(on )-57(byte )-57(0 )-57(of )-57(the )-57(index )-57(\336le )-57(has )-57(r)18(ead )-57(access )-57(to )-57(the )-57(entir)]TJ 0.3067 Tc 25.988 0 Td (ed)Tj 0 Tc 1.397 0 Td [(atabase. )-307(A)-307(pr)18(ocess )-57(with )-57(a)]TJ -27.385 -1.2 Td [(write )-29(lock )-29(on )-29(byte )-29(0 )-29(of )-29(the )-29(index )-29(\336le )-29(has )-29(write )-29(access )-29(to )-29(the )-29(entir)]TJ 0.2791 Tc 28.593 0 Td (ed)Tj 0 Tc 1.369 0 Td [(atabase. )-279(W)]TJ 0.2791 Tc 4.969 0 Td (ec)Tj 0 Tc 1.202 0 Td [(an )-29(use)]TJ -36.133 -1.2 Td [(the )-52(normal )-52(UNIX )-52(System )-52(byte-range )-52(locking )-52(semantics )-52(to )-52(allow )-52(any )-52(number )-52(of )-52(r)22(eaders)]TJ T* [(at )-357(one )-357(time, )-357(but )-357(only )-357(one )-357(writer )-357(at )-357(a )-357(time.)-854(\(Recall )-357(Figur)]TJ 0.6066 Tc 28.313 0 Td (e1)Tj 0 Tc 1.586 0 Td [(4.3.\) )-607(The)-606(functions)]TJ /TT1 1 Tf -29.899 -1.2 Td (db_fetch)Tj /T1_1 1 Tf 5.27 0 Td (and)Tj /TT1 1 Tf 2.163 0 Td (db_nextrec)Tj /T1_1 1 Tf -0.018 Tc 6.47 0 Td (re)Tj 0 Tc 0.856 0 Td (quir)Tj 0.4701 Tc 1.831 0 Td (ear)Tj 0 Tc 2.296 0 Td [(ead )-220(lock, )-220(and)]TJ /TT1 1 Tf 6.78 0 Td (db_delete)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 6.12 0 Td (db_store)Tj /T1_1 1 Tf 0.4701 Tc (,a)Tj 0 Tc 6.02 0 Td (nd)Tj /TT1 1 Tf -37.807 -1.2 Td (db_open)Tj /T1_1 1 Tf 4.53 0 Td [(all )-80(r)18(equir)]TJ 0.33 Tc 4.099 0 Td (eaw)Tj 0 Tc 2.473 0 Td [(rite )-80(lock.)-580(\(The )-80(r)18(eason)]TJ /TT1 1 Tf 10.063 0 Td (db_open)Tj /T1_1 1 Tf -0.018 Tc 4.53 0 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(es )-80(a )-80(write )-80(lock )-80(is )-80(that )-80(if)]TJ -26.551 -1.2 Td [(the )-23(\336le )-23(is )-23(being )-23(cr)18(eated, )-23(it )-23(has )-23(to )-23(write )-23(the )-23(empty )-23(fr)20(ee )-23(list )-23(and )-23(hash )-23(chains )-23(at )-23(the )-23(fr)18(ont )-23(of)]TJ T* (the index \336le.\))Tj 1.8 -1.2 Td [(The )-9(pr)18(oblem )-9(with )-9(coarse-grained )-9(locking )-9(is )-9(that )-9(it )-9(limits )-9(concurr)16(ency)]TJ 0.5091 Tc 30.484 0 Td (.I)Tj 0.2591 Tc 1.096 0 Td (fap)Tj -0.018 Tc 1.952 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-9(is)]TJ -36.255 -1.2 Td [(adding )-37(a )-37(r)18(ecor)18(d)-287(to)-287(one )-37(hash )-37(chain, )-37(another )-37(pr)18(ocess )-37(should )-37(be )-37(able )-37(to )-37(r)18(ead )-37(a )-37(r)17(ecor)18(d)-287(on)-287(a)]TJ -0 -1.2 Td [(dif)18(fer)18(ent hash chain.)]TJ /TT0 1 Tf -3.6 -2.4 Td [(Fine-Grained Loc)20(king)]TJ /T1_1 1 Tf -0.092 Tc 3.6 -2.16 Td [(We )-242(e)]TJ 0 Tc 2.174 0 Td [(nhance )-58(coarse-grained )-58(locking )-58(to )-58(allow )-58(mor)]TJ 0.3081 Tc 19.65 0 Td (ec)Tj 0 Tc 1.231 0 Td [(oncurr)18(ency )-58(and )-58(call )-58(this)]TJ /T1_2 1 Tf 11.082 0 Td (\336ne-grained)Tj -34.138 -1.2 Td (locking)Tj /T1_1 1 Tf 0.5497 Tc (.W)Tj 0.2997 Tc 4.615 0 Td (e\336)Tj 0 Tc 1.384 0 Td [(rst )-50(r)18(equir)]TJ 0.2998 Tc 4.132 0 Td (ear)Tj 0 Tc 1.956 0 Td [(eader )-50(or )-50(a )-50(writer )-50(to )-50(obtain )-50(a )-50(r)18(ead )-50(lock )-50(or )-50(a )-50(write )-50(lock )-50(on )-50(the)]TJ -12.086 -1.2 Td [(hash )-17(chain )-17(for )-17(a )-17(given )-17(r)18(ecor)18(d. )-267(W)]TJ 0.2671 Tc 14.579 0 Td (ea)Tj 0 Tc 1.246 0 Td [(llow )-17(any )-17(number )-17(of )-17(r)18(eaders )-17(at )-17(one )-17(time )-17(on )-17(any )-17(hash)]TJ -15.825 -1.2 Td [(chain )-35(but )-35(only )-35(a )-35(single )-35(writer )-35(on )-35(a )-35(hash )-35(chain.)-533(Next, )-35(a )-35(writer )-35(needing )-35(to )-35(access )-35(the )-35(fr)19(ee)]TJ T* [(list )-64(\(either)]TJ /TT1 1 Tf 4.845 0 Td (db_delete)Tj /T1_1 1 Tf 5.714 0 Td (or)Tj /TT1 1 Tf 1.255 0 Td (db_store)Tj /T1_1 1 Tf 0.3137 Tc (\)m)Tj 0 Tc 6.33 0 Td [(ust )-64(obtain )-64(a )-64(write )-64(lock )-64(on )-64(the )-64(fr)18(ee )-64(list.)-561(Finally)111(,)]TJ -18.143 -1.2 Td [(whenever )-130(it )-130(appends )-130(a )-130(new )-130(r)16(ecor)18(d)-380(to)-380(t)-1(he )-130(end )-130(of )-130(either )-130(the )-130(index )-130(\336le )-130(or )-130(the )-130(data )-130(\336le,)]TJ /TT1 1 Tf 0 -1.2 Td (db_store)Tj /T1_1 1 Tf 5.05 0 Td (has to obtain a write lock on that portion of the \336le.)Tj -0.092 Tc -3.25 -1.2 Td [(We )-344(e)]TJ 0 Tc 2.276 0 Td [(xpect )-159(\336ne-grained )-159(locking )-159(to )-159(pr)16(ovide )-159(mor)]TJ 0.4094 Tc 19.24 0 Td (ec)Tj 0 Tc 1.332 0 Td [(oncurr)18(ency )-159(than )-159(coarse-grained)]TJ -24.648 -1.2 Td [(locking. )-283(In)-283(Section )-33(20.9, )-33(we )-33(show )-33(some )-33(actual )-33(measur)19(ements. )-283(In)-283(Section )-33(20.8, )-33(we )-33(show)]TJ T* [(the )-83(sour)18(ce )-83(code )-83(for )-83(our )-83(implementation )-83(of )-83(\336ne-grained )-83(locking )-83(and )-83(discuss )-83(the )-83(details)]TJ T* [(of )-259(implementing )-259(locking.)-759(\(Coarse-grained )-259(locking )-259(is )-259(mer)18(ely )-259(a )-259(simpli\336cation )-259(of )-259(the)]TJ T* [(locking that we show)92(.\))]TJ 1.8 -1.2 Td [(In )-82(the )-82(sour)18(ce )-82(code, )-82(we )-82(call)]TJ /TT1 1 Tf 12.34 0 Td (read)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 2.982 0 Td (readv)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 3.582 0 Td (write)Tj /T1_1 1 Tf 0.3319 Tc (,a)Tj 0 Tc 4.082 0 Td (nd)Tj /TT1 1 Tf 1.525 0 Td (writev)Tj /T1_1 1 Tf 3.932 0 Td [(dir)18(ectly)]TJ 0.5819 Tc 3.264 0 Td (.W)Tj 0 Tc 1.74 0 Td [(e)-332(do)-332(not)]TJ -35.246 -1.2 Td [(use )-39(the )-39(standar)]TJ 0.2892 Tc 6.791 0 Td (dI)Tj 0 Tc 1.237 0 Td [(/O )-39(library)]TJ 0.5392 Tc 4.551 0 Td (.A)Tj 0 Tc 1.567 0 Td [(lthough )-39(it )-39(is )-39(possible )-39(to )-39(use )-39(byte-range )-39(locking )-39(with )-39(the)]TJ -14.147 -1.2 Td (standar)Tj 0.5139 Tc 3.32 0 Td (dI)Tj 0 Tc 1.462 0 Td [(/O )-264(library)]TJ 0.5139 Tc 4.776 0 Td (,c)Tj 0 Tc 1.208 0 Td [(ar)18(eful )-264(handling )-264(of )-264(buf)18(fering )-264(is )-264(r)19(equir)18(ed. )-514(W)]TJ 0.5138 Tc 20.547 0 Td (ed)Tj 0 Tc 1.604 0 Td [(on\325t )-264(want )-264(an)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46878 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (750)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(located )-54(with )-54(only )-54(two )-54(disk )-54(accesses )-54(\(see )-54(Litwin)]TJ 21.491 0.04 Td ([)Tj 0.333 -0.04 Td (1980)Tj 2 0.04 Td (])Tj 0.637 -0.04 Td [(or )-54(Fagin )-54(et )-54(al.)]TJ 6.487 0.04 Td ([)Tj 0.333 -0.04 Td (1979)Tj 2 0.04 Td (])Tj 0.637 -0.04 Td [(for )-54(details\).)]TJ -33.917 -1.2 Td [(B-tr)18(ees )-70(have )-70(the )-70(advantage )-70(of )-70(traversing )-70(the )-70(database )-70(in )-70(\(sorted\) )-70(key )-70(or)18(der )-70(\(something)]TJ 0 -1.2 TD (that we can\325t do with the)Tj /TT0 1 Tf 11.254 0 Td (db_nextrec)Tj /T1_1 1 Tf 6.25 0 Td (function using a hash table.\))Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5949 605.3637 Tm [(20.5 )-776(Centraliz)-10(ed )-278(or )-278(Decentraliz)-10(ed?)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5928 581.3651 Tm [(Given )-43(multiple )-43(pr)18(ocesses )-43(accessing )-43(the )-43(same )-43(database, )-43(we )-43(can )-43(implement )-43(the )-43(functions)]TJ T* (in two ways:)Tj 1.8 -1.8 Td [(1. )-633(Centralized.)-545(Have )-45(a )-45(single )-45(pr)18(ocess )-45(that )-45(is )-45(the )-45(database )-45(manager)]TJ 0.2956 Tc 30.299 0 Td (,a)Tj 0 Tc 1.046 0 Td [(nd )-46(have )-46(it )-46(be)]TJ -29.712 -1.2 Td [(the )-129(only )-129(pr)18(ocess )-129(that )-129(accesses )-129(the )-129(database.)-627(The )-129(functions )-129(contact )-129(this )-129(central)]TJ T* [(pr)18(ocess using some form of IPC.)]TJ -1.633 -1.6 Td [(2. )-633(Decentralized.)-766(Have )-266(each )-266(function )-266(apply )-266(the )-266(r)19(equir)18(ed )-266(concurr)18(ency )-266(contr)18(ols)]TJ 1.633 -1.2 Td (\(locking\) and then issue its own I/O function calls.)Tj -3.433 -1.8 Td [(Database )-251(systems )-251(have )-251(been )-251(built )-251(using )-251(each )-251(of )-251(these )-251(techniques.)-751(Given )-251(adequate)]TJ T* [(locking )-246(r)18(outines, )-246(the )-246(decentralized )-246(implementation )-246(is )-246(usually )-246(faster)]TJ 0.4958 Tc 31.416 0 Td (,b)Tj 0 Tc 1.299 0 Td [(ecause )-246(IPC )-246(is)]TJ -32.714 -1.2 Td [(avoided. )-250(Figur)]TJ 0.25 Tc 6.736 0 Td (e2)Tj 0 Tc 1.229 0 Td [(0.4 depicts the operation of the centralized appr)18(oach.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2670 2698 576 216 re S Q BT /T1_1 1 Tf 7.999 0 0 7.999 289.1653 278.8065 Tm (IPC)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 3246 2698 576 216 re S Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 346.4216 278.7898 Tm (I/O)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2410.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2478.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2547.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2616.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2685.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2753.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2822.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2891.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2960.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 3028.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 3097.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 3166.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2452.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2523.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2593.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2664.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2735.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2805.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2875.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2946.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3016.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3087.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3157.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3228.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3298.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3369.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3439.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3510.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3581.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3651.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3721.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3792.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3862.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3933.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4003.25 3202.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4074.25 3202.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 3133.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 3064.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2996.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2927.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2858.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2789.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2721.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2652.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2583.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2514.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2446.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4039.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3969.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3898.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3828.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3757.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3686.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3617.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3546.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3475.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3405.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3334.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3264.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3193.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3123.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3052.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2982.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2911.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2841.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2771.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2700.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2629.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2559.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2488.25 2410.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2418.25 2410.25 cm 0 0 m -36 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 412.9009 278.7731 Tm (kernel)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2310 1762 720 216 re S Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 250.5088 185.1844 Tm (index \336le)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 3462 1762 720 216 re S Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 367.8196 185.1733 Tm (data \336le)Tj ET q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 343.824 269.8 cm 0 0 m -4.032 -6.264 l -6.48 -3.672 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3438.24 2698 cm 0 0 m -40.32 -62.64 l -64.8 -36.72 l h S Q Q q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 267 197.8 cm 0 0 m 4.032 6.264 l 6.48 3.672 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 2670 1978 cm 0 0 m 40.32 62.64 l 64.8 36.72 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3385.25 2649.25 cm 0 0 m -663 -622 l S Q Q q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 362.976 269.8 cm 0 0 m 3.6 -6.48 l 0.144 -7.416 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3629.76 2698 cm 0 0 m 36 -64.8 l 1.44 -74.16 l h S Q Q q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 382.2 197.8 cm 0 0 m -3.6 6.48 l -0.144 7.416 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 3822 1978 cm 0 0 m -36 64.8 l -1.44 74.16 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3648.25 2628.25 cm 0 0 m 155 -581 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 2022 3850 432 432 re S Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 2022 3634 432 216 re S Q BT /T1_1 1 Tf 7.9952 0 0 7.9952 207.1597 377.2136 Tm (db access)Tj 0.574 -1.25 Td (library)Tj -1.233 8 Td [(user pr)18(ocess)]TJ ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 4038 3850 432 432 re S Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 4038 3634 432 216 re S Q BT /T1_1 1 Tf 7.9947 0 0 7.9947 408.6142 377.191 Tm (db access)Tj 0.574 -1.25 Td (library)Tj -1.233 8 Td [(user pr)18(ocess)]TJ ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J 3030 3922 432 360 re S Q BT /T1_1 1 Tf 7.9942 0 0 7.9942 304.7885 413.1424 Tm (centralized)Tj -0.206 -1.25 Td (db manager)Tj -0.069 3.5 Td [(user pr)18(ocess)]TJ ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 223.8 363.4 cm 0 0 m 5.904 -4.464 l 3.096 -6.696 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 2238 3634 cm 0 0 m 59.04 -44.64 l 30.96 -66.96 l h S Q Q q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 281.4 291.4 cm 0 0 m -5.904 4.464 l -3.096 6.696 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 2814 2914 cm 0 0 m -59.04 44.64 l -30.96 66.96 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2282.25 3578.25 cm 0 0 m 486 -608 l S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 425.4 363.4 cm 0 0 m -5.184 -5.328 l -7.056 -2.304 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 4254 3634 cm 0 0 m -51.84 -53.28 l -70.56 -23.04 l h S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 310.2 291.4 cm 0 0 m 5.184 5.328 l 7.056 2.304 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 3102 2914 cm 0 0 m 51.84 53.28 l 70.56 23.04 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4193.25 3596.25 cm 0 0 m -1030 -644 l S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 317.4 392.2 cm 0 0 m 0.216 -7.416 l -3.312 -6.696 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 3174 3922 cm 0 0 m 2.16 -74.16 l -33.12 -66.96 l h S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 295.8 291.4 cm 0 0 m -0.216 7.416 l 3.312 6.696 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 2958 2914 cm 0 0 m -2.16 74.16 l 33.12 66.96 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3159.25 3851.25 cm 0 0 m -186 -867 l S Q Q q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 331.8 392.2 cm 0 0 m 3.24 -6.696 l -0.288 -7.416 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 3318 3922 cm 0 0 m 32.4 -66.96 l -2.88 -74.16 l h S Q Q q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 353.4 291.4 cm 0 0 m -3.24 6.696 l 0.288 7.416 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 3534 2914 cm 0 0 m -32.4 66.96 l 2.88 74.16 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3333.25 3851.25 cm 0 0 m 186 -867 l S Q Q BT /T1_0 1 Tf 7.9904 0 0 7.9904 228.7613 150.8189 Tm (Figure 20.4)Tj /T1_1 1 Tf 5.695 0 Td [(Centralized appr)18(oach for database access)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46879 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (746)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include "apue_db.h")Tj 0 -2.021 TD (int db_delete\(DBHANDLE)Tj /T1_2 1 Tf 13.8 0 Td (db)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.763 0 Td (onst char *)Tj /T1_2 1 Tf (key)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 5.521 -2.021 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(if)-250(r)18(ecor)]TJ 0.25 Tc 4.396 0 Td (dn)Tj 0 Tc 1.443 0 Td (ot found)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6174.25 cm 0 0 m 0 499 l 3900 499 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 603.8475 Tm [(In )-73(addition )-73(to )-73(fetching )-73(a )-73(r)16(ecor)18(d)-323(by)-323(s)-1(pecifying )-73(its )-73(key)]TJ 0.3235 Tc 23.575 0 Td (,w)Tj 0.3236 Tc 1.407 0 Td (ec)Tj 0 Tc 1.247 0 Td [(an )-74(go )-74(thr)18(ough )-74(the )-74(entir)20(e)]TJ -28.029 -1.2 Td [(database, )-5(r)18(eading )-5(each )-5(r)18(ecor)18(d)-255(in)-255(turn. )-255(T)92(o)-255(do)-255(this, )-5(we )-5(\336rst )-5(call)]TJ /TT0 1 Tf 27.402 0 Td (db_rewind)Tj /T1_1 1 Tf 5.655 0 Td [(to )-5(r)18(ewind )-5(the)]TJ -33.057 -1.2 Td [(database )-39(to )-39(the )-39(\336rst )-39(r)17(ecor)]TJ 0.2893 Tc 11.282 0 Td (da)Tj 0 Tc 1.4 0 Td [(nd )-39(then )-39(call)]TJ /TT0 1 Tf 5.556 0 Td (db_nextrec)Tj /T1_1 1 Tf 6.289 0 Td [(in )-39(a )-39(loop )-39(to )-39(r)18(ead )-39(each )-39(sequential)]TJ -0.018 Tc -24.528 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(d.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5825 551.1539 Tm (#include "apue_db.h")Tj T* (void db_rewind\(DBHANDLE)Tj /T1_2 1 Tf 14.4 0 Td (db)Tj /TT0 1 Tf (\);)Tj -14.4 -2.021 Td (char *db_nextrec\(DBHANDLE)Tj /T1_2 1 Tf 15.6 0 Td (db)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.763 0 Td (har *)Tj /T1_2 1 Tf (key)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -1.126 -2.021 Td (Returns: pointer to data if OK,)Tj /TT0 1 Tf 13.642 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td (on end of \336le)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4921.25 cm 0 0 m 0 681 l 3900 681 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 478.5638 Tm (If)Tj /T1_2 1 Tf 1.011 0 Td (key)Tj /T1_1 1 Tf 1.674 0 Td [(is )-91(a )-91(non-null )-91(pointer)75(,)]TJ /TT0 1 Tf 9.783 0 Td (db_nextrec)Tj /T1_1 1 Tf -0.018 Tc 6.341 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-91(the )-91(key )-91(by )-91(copying )-91(it )-91(to )-91(the )-91(memory)]TJ -19.664 -1.2 Td (starting at that location.)Tj 1.8 -1.2 Td [(Ther)18(e)-299(is)-299(no)-299(o)]TJ -0.018 Tc (rd)Tj 0 Tc 6.804 0 Td [(er )-49(to )-49(the )-49(r)18(ecor)18(ds )-49(r)18(eturned )-49(by)]TJ /TT0 1 Tf 13.147 0 Td (db_nextrec)Tj /T1_1 1 Tf 0.5491 Tc (.A)Tj 0 Tc 7.577 0 Td [(ll )-49(we\325r)]TJ 0.2991 Tc 2.849 0 Td (eg)Tj 0 Tc 1.334 0 Td [(uaranteed )-49(is)]TJ -33.511 -1.2 Td [(that )-64(we\325ll )-64(r)18(ead )-64(each )-64(r)19(ecor)18(d)-314(in)-314(the )-64(database )-64(once.)-563(If )-64(we )-64(stor)]TJ 0.3137 Tc 26.524 0 Td (et)Tj 0 Tc 1.119 0 Td [(hr)18(ee )-64(r)18(ecor)18(ds )-64(with )-64(keys )-64(of)]TJ -27.643 -1.2 Td [(A, )-41(B, )-41(and )-41(C, )-41(in )-41(that )-41(or)17(der)74(,)-291(we)-291(have )-41(no )-41(idea )-41(in )-41(which )-41(or)17(der)]TJ /TT0 1 Tf 26.27 0 Td (db_nextrec)Tj /T1_1 1 Tf 6.291 0 Td [(will )-41(r)18(eturn )-41(the)]TJ -32.561 -1.2 Td [(thr)18(ee )-147(r)18(ecor)18(ds. )-397(It)-396(might )-147(r)18(eturn )-147(B, )-147(then )-147(A, )-147(then )-147(C, )-147(or )-147(some )-147(other )-147(\(appar)18(ently )-147(random\))]TJ -0 -1.2 Td [(or)18(der)]TJ 0.5 Tc 2.334 0 Td (.T)Tj 0 Tc 1.363 0 Td [(he actual or)18(der depends on the implementation of the database.)]TJ -1.897 -1.2 Td [(These )-332(seven )-332(functions )-332(pr)17(ovide )-332(the )-332(interface )-332(to )-332(the )-332(database )-332(library)]TJ 0.8324 Tc 32.186 0 Td (.W)Tj 0.5824 Tc 1.99 0 Td (en)Tj 0 Tc 1.643 0 Td (ow)Tj -37.62 -1.2 Td (describe the actual implementation that we have chosen.)Tj /TT2 1 Tf 11.9978 0 0 11.9978 93.5836 346.5876 Tm [(20.4 )-776(Implementation)-556(Over )268(vie)15(w)]TJ /T1_1 1 Tf 9.9982 0 0 9.9982 129.5771 324.9915 Tm [(Database )-35(access )-35(libraries )-35(often )-35(use )-35(two )-35(\336les )-35(to )-35(stor)]TJ 0.2845 Tc 22.489 0 Td (et)Tj 0 Tc 1.089 0 Td [(he )-34(information: )-34(an )-34(index )-34(\336le )-34(and )-34(a)]TJ -23.578 -1.2 Td [(data )-105(\336le.)-605(The )-105(index )-105(\336le )-105(contains )-105(the )-105(actual )-105(index )-105(value )-105(\(the )-105(key\) )-105(and )-105(a )-105(pointer )-105(to )-105(the)]TJ 0 -1.2 TD [(corr)18(esponding )-305(data )-305(r)18(ecor)18(d)-555(in)-555(the )-305(data )-305(\336le.)-805(Numer)18(ous )-305(techniques )-305(can )-305(be )-305(used )-305(to)]TJ 0 -1.2 Td [(or)18(ganize )-152(the )-152(index )-152(\336le )-152(so )-152(that )-152(it )-152(can )-152(be )-152(sear)14(ched )-153(quickly )-153(and )-153(ef)18(\336ciently )-153(for )-153(any )-153(key:)]TJ 0 -1.2 Td [(hashing )-98(and )-98(B+ )-98(tr)18(ees )-98(ar)]TJ 0.3476 Tc 10.779 0 Td (ep)Tj 0 Tc 1.428 0 Td (opular)Tj 0.5975 Tc 2.862 0 Td (.W)Tj 0.3475 Tc 1.756 0 Td (eh)Tj 0 Tc 1.409 0 Td [(ave )-97(chosen )-97(to )-97(use )-97(a )-97(\336xed-size )-97(hash )-97(table )-97(with)]TJ -18.233 -1.2 Td [(chaining )-36(for )-36(the )-36(index )-36(\336le.)]TJ -0.092 Tc 12.275 0 Td [(We )-220(m)]TJ 0 Tc 2.556 0 Td [(entioned )-36(in )-36(the )-36(description )-36(of)]TJ /TT0 1 Tf 13.457 0 Td (db_open)Tj /T1_1 1 Tf 4.486 0 Td [(that )-36(we )-36(cr)17(eate)]TJ -32.775 -1.2 Td [(two \336les: one with a suf)18(\336x of)]TJ /TT0 1 Tf 12.987 0 Td (.idx)Tj /T1_1 1 Tf 2.65 0 Td [(and one with a suf)18(\336x of)]TJ /TT0 1 Tf 10.675 0 Td (.dat)Tj /T1_1 1 Tf (.)Tj -0.092 Tc -24.512 -1.2 Td [(We )-350(s)]TJ 0 Tc 2.227 0 Td (tor)Tj 0.416 Tc 1.249 0 Td (et)Tj 0 Tc 1.221 0 Td [(he )-166(key )-166(and )-166(the )-166(index )-166(as )-166(null-terminated )-166(character )-166(strings; )-166(they )-166(cannot)]TJ -6.497 -1.2 Td [(contain )-71(arbitrary )-71(binary )-71(data.)-571(Some )-71(database )-71(systems )-71(stor)]TJ 0.3213 Tc 26.259 0 Td (en)Tj 0 Tc 1.382 0 Td [(umerical )-71(data )-71(in )-71(a )-71(binary)]TJ -27.642 -1.2 Td [(format )-316(\(1, )-316(2, )-316(or )-316(4 )-316(bytes )-316(for )-316(an )-316(integer)]TJ 0.5657 Tc 18.511 0 Td (,f)Tj 0 Tc 1.149 0 Td [(or )-316(example\) )-316(to )-316(save )-316(storage )-316(space.)-814(This)]TJ -19.659 -1.2 Td [(complicates )-108(the )-108(functions )-108(and )-108(r)19(equir)18(es )-108(mor)]TJ 0.3578 Tc 19.625 0 Td (ew)Tj 0 Tc 1.671 0 Td [(ork )-108(to )-108(make )-108(the )-108(database )-108(\336les )-108(portable)]TJ -21.296 -1.2 Td [(between )-115(dif)18(fer)18(ent )-115(computer )-115(systems.)-615(For )-115(example, )-115(if )-115(a )-115(network )-115(has )-115(two )-115(systems )-115(that)]TJ T* [(use )-3(dif)18(fer)18(ent )-3(formats )-3(for )-3(storing )-3(binary )-3(integers, )-3(we )-3(need )-3(to )-3(account )-3(for )-3(this )-3(dif)12(fer)18(ence )-3(if)]TJ 0 -1.2 Td [(we )-55(want )-55(both )-55(systems )-55(to )-55(access )-55(the )-55(database.)-553(\(It )-55(is )-55(not )-55(at )-55(all )-55(uncommon )-55(today )-55(to )-55(have)]TJ T* [(systems )-42(with )-42(dif)19(fer)18(ent )-42(ar)18(chitectur)18(es )-42(sharing )-42(\336les )-42(on )-42(a )-42(network.\))-542(Storing )-42(all )-42(the )-42(r)21(ecor)18(ds,)]TJ -0 -1.2 Td [(both )-6(keys )-6(and )-6(data, )-6(as )-6(character )-6(strings )-6(simpli\336es )-6(everything.)-506(It )-6(does )-6(r)17(equir)]TJ 0.256 Tc 33.716 0 Td (ea)Tj 0 Tc 1.235 0 Td (dditional)Tj -34.951 -1.2 Td [(disk space, but that is a small cost for portability)111(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46880 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (20)Tj /T1_1 1 Tf 0.56 Tc 24 0 0 24 129.6 545.576 Tm (AD)Tj 0 Tc 2 0 Td [(a)-5(ta)-5(base )-280(Librar)-40(y)]TJ /TT0 1 Tf 12 0 0 12 93.6002 428.4 Tm [(20.1 )-776(Intr)20(oduction)]TJ /T1_2 1 Tf 10 0 0 10 129.6002 404.4 Tm [(During )-193(the )-193(early )-193(1980s, )-193(the )-193(UNIX )-193(System )-193(was )-193(consider)18(ed )-193(a )-193(hostile )-193(envir)18(onment )-193(for)]TJ -0.008 Tc 0 -1.2 TD (ru)Tj 0 Tc 0.99 0 Td [(nning )-123(multiuser )-123(database )-123(systems.)-623(\(See )-123(Stonebraker)]TJ 24.185 0.04 Td ([)Tj 0.333 -0.04 Td (1981)Tj 2 0.04 Td (])Tj 0.706 -0.04 Td [(and )-123(W)92(einber)18(ger)]TJ 7.537 0.04 Td ([)Tj 0.333 -0.04 Td (1982)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td (.\))Tj -38.417 -1.2 Td [(Earlier )-22(systems, )-22(such )-22(as )-22(V)111(ersion )-22(7, )-22(did )-22(indeed )-22(pr)16(esent )-22(lar)18(ge )-22(obstacles, )-22(since )-22(they )-22(did )-22(not)]TJ T* [(pr)18(ovide )-9(any )-9(form )-9(of )-9(IPC )-9(\(other )-9(than )-9(half-duplex )-9(pipes\) )-9(and )-9(did )-9(not )-9(pr)18(ovide )-9(any )-9(form )-9(of)]TJ T* [(byte-range )-160(locking.)-660(Many )-160(of )-160(these )-160(de\336ciencies )-160(wer)]TJ 0.4098 Tc 23.556 0 Td (er)Tj 0 Tc 1.266 0 Td [(emedied, )-160(however)]TJ 0.6598 Tc 8.299 0 Td (.B)Tj 0.4099 Tc 1.521 0 Td (yt)Tj 0 Tc 1.292 0 Td [(he )-160(late)]TJ -35.933 -1.2 Td [(1980s, )-170(the )-170(UNIX )-170(System )-170(had )-170(evolved )-170(to )-170(pr)18(ovide )-170(a )-170(suitable )-170(envir)18(onment )-170(for )-170(r)2(unning)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(liable, )-270(multiuser )-270(database )-270(systems.)-768(Since )-270(then, )-270(numer)18(ous )-270(commer)18(cial )-270(\336rms )-270(have)]TJ -0.856 -1.2 Td [(of)18(fer)18(ed these types of database systems.)]TJ 1.8 -1.2 Td [(In )-52(this )-52(chapter)73(,)-302(we)-302(d)-1(evelop )-52(a )-52(simple, )-52(multiuser )-52(database )-52(library )-52(of )-52(C )-52(functions )-52(that)]TJ -1.8 -1.2 Td [(any )-43(pr)18(ogram )-43(can )-43(call )-43(to )-43(fetch )-43(and )-43(stor)]TJ 0.2929 Tc 17 0 Td (er)Tj 0 Tc 1.149 0 Td [(ecor)18(ds )-43(in )-43(a )-43(database.)-543(\(Such )-43(a )-43(database )-43(is )-43(often)]TJ -18.148 -1.2 Td [(called )-267(a)]TJ /T1_3 1 Tf 4.149 0 Td [(key\320value )-267(stor)18(e)]TJ /T1_2 1 Tf [(.\) )-517(This)-516(library )-267(of )-267(C )-267(functions )-267(is )-267(usually )-267(only )-267(one )-267(part )-267(of )-267(a)]TJ -4.149 -1.2 Td [(complete )-299(database )-299(system.)]TJ -0.092 Tc 13.182 0 Td [(We )-483(d)]TJ 0.5494 Tc 2.547 0 Td (on)Tj 0 Tc 1.677 0 Td [(ot )-299(develop )-299(the )-299(other )-299(pieces, )-299(such )-299(as )-299(a )-299(query)]TJ -17.407 -1.2 Td [(language, )-47(leaving )-47(these )-47(items )-47(to )-47(the )-47(many )-47(textbooks )-47(on )-47(database )-47(systems.)-547(Our )-47(inter)13(est)]TJ T* [(is )-67(the )-67(parts )-67(of )-67(the )-67(UNIX )-67(System )-67(interface )-67(r)19(equir)18(ed )-67(by )-67(a )-67(database )-67(library)]TJ 0.317 Tc 32.201 0 Td (,a)Tj 0 Tc 1.067 0 Td [(nd )-67(how )-67(they)]TJ -0.018 Tc -33.268 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(late )-208(to )-208(the )-208(topics )-208(we\325ve )-208(alr)18(eady )-208(cover)18(ed )-208(\(such )-208(as )-208(r)16(ecor)]TJ 0.0833 Tc 25.594 0 Td (d\321b)Tj 0 Tc 2.331 0 Td [(yte-range )167(\321 )167(locking,)-459(in)]TJ -28.78 -1.2 Td (Section 14.3\).)Tj /TT0 1 Tf 12 0 0 12 93.6006 188.4 Tm [(20.2 )-776(Histor)-10(y)]TJ /T1_2 1 Tf 10 0 0 10 129.6006 164.4 Tm [(One )-171(popular )-171(library )-171(of )-171(database )-171(functions )-171(in )-171(the )-171(UNIX )-171(System )-171(is )-171(the)]TJ /TT1 1 Tf 32.493 0 Td (dbm)Tj /T1_2 1 Tf [(\(3\) )-171(library)111(.)]TJ -32.493 -1.2 Td [(This )-62(library )-62(was )-62(developed )-62(by )-62(Ken )-62(Thompson )-62(and )-62(uses )-62(a )-62(dynamic )-62(hashing )-62(scheme.)-561(It)]TJ T* [(was )-248(originally )-248(pr)18(ovided )-248(with )-248(V)112(ersion )-248(7, )-248(appears )-248(in )-248(all )-248(BSD )-248(r)18(eleases, )-248(and )-248(was )-248(also)]TJ /T1_4 1 Tf 9 0 0 9 506.1004 114 Tm (743)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46881 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(19.8)]TJ 39.488 0 Td (Summary)Tj /T1_1 1 Tf 6.345 0 Td (741)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Regar)18(dless )-78(of )-78(the )-78(implementation )-78(details, )-78(the )-78(purpose )-78(of )-78(packet )-78(mode )-78(is )-78(to )-78(inform)]TJ -1.8 -1.2 Td [(the )-317(pr)18(ocess )-317(r)18(eading )-317(the )-317(PTY )-317(master )-317(when )-317(the )-317(following )-317(events )-317(occur )-317(at )-317(the )-317(line)]TJ 0 -1.2 TD [(discipline )-24(module )-24(above )-24(the )-24(PTY )-24(slave: )-24(when )-24(the )-24(r)18(ead )-24(queue )-24(is )-24(\337ushed, )-24(when )-24(the )-24(write)]TJ T* [(queue )-160(is )-160(\337ushed, )-160(when )-160(output )-160(is )-160(stopped )-160(\(e.g., )-160(Contr)19(ol)]TJ 25.555 0.09 Td (-)Tj 0.333 -0.09 Td [(S\), )-160(when )-160(output )-160(is )-160(r)18(estarted,)]TJ -25.888 -1.2 Td [(when )-80(XON/XOFF )-80(\337ow )-80(contr)18(ol )-80(is )-80(enabled )-80(after )-80(being )-80(disabled, )-80(and )-80(when )-80(XON/XOFF)]TJ T* [(\337ow )-36(contr)18(ol )-36(is )-36(disabled )-36(after )-36(being )-36(enabled.)-540(These )-37(events )-37(ar)]TJ 0.2866 Tc 26.952 0 Td (eu)Tj 0 Tc 1.369 0 Td [(sed, )-37(for )-37(example, )-37(by )-37(the)]TJ /TT0 1 Tf -28.32 -1.2 Td (rlogin)Tj /T1_0 1 Tf 3.85 0 Td (client and the)Tj /TT0 1 Tf 6.243 0 Td (rlogind)Tj /T1_0 1 Tf 4.45 0 Td [(server)74(.)]TJ /TT1 1 Tf -18.143 -3 Td (Remote Mode)Tj /T1_0 1 Tf 0.2599 Tc 3.6 -2.04 Td (AP)Tj 0 Tc 1.642 0 Td [(TY )-10(master )-10(can )-10(set )-10(the )-10(PTY )-10(slave )-10(to )-10(r)19(emote )-10(mode )-10(by )-10(issuing )-10(the)]TJ /TT0 1 Tf 28.098 0 Td [(TIOCREMOTE )340(ioctl)]TJ /T1_0 1 Tf -29.74 -1.2 Td [(command. )-312(Although)-312(Mac )-62(OS )-62(X )-62(10.6.8 )-62(and )-62(Solaris )-62(10 )-62(use )-62(the )-62(same )-62(command )-62(to )-62(enable)]TJ T* [(and )-266(disable )-266(this )-266(featur)18(e, )-266(under )-266(Solaris )-266(the )-266(thir)]TJ 0.5164 Tc 22.032 0 Td (da)Tj -0.018 Tc 1.627 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument )-266(to)]TJ /TT0 1 Tf 4.778 0 Td (ioctl)Tj /T1_0 1 Tf 3.516 0 Td [(is )-266(an )-266(integer)73(,)]TJ -32.886 -1.2 Td [(wher)18(eas )-21(with )-21(Mac )-21(OS )-21(X, )-21(it )-21(is )-21(a )-21(pointer )-21(to )-21(an )-21(integer)]TJ 0.5213 Tc 22.849 0 Td (.\()Tj 0 Tc 1.104 0 Td [(Fr)18(eeBSD )-21(8.0 )-21(and )-21(Linux )-21(3.2.0 )-21(don\325t)]TJ -23.953 -1.2 Td (support this command.\))Tj 1.8 -1.2 Td [(When )-47(it )-47(sets )-47(this )-47(mode, )-47(the )-47(PTY )-47(master )-47(is )-47(telling )-47(the )-47(PTY )-47(slave\325s )-47(line )-47(discipline )-47(not)]TJ -1.8 -1.2 Td [(to )-20(perform )-20(any )-20(pr)18(ocessing )-20(of )-20(the )-20(data )-20(that )-20(it )-20(r)18(eceives )-20(fr)17(om )-20(the )-20(PTY )-20(master)]TJ 0.2702 Tc 32.813 0 Td (,r)Tj 0 Tc 0.897 0 Td [(egar)18(dless )-20(of)]TJ -33.71 -1.2 Td [(the )-227(canonical/noncanonical )-227(\337ag )-227(in )-227(the )-227(slave\325s)]TJ /TT0 1 Tf 21.809 0 Td (termios)Tj /T1_0 1 Tf 4.677 0 Td [(str)8(uctur)18(e. )-477(Remote)-477(mode )-227(is)]TJ -26.486 -1.2 Td (intended for an application, such as a window manager)Tj 0.25 Tc 24.536 0 Td (,t)Tj 0 Tc 0.826 0 Td (hat does its own line editing.)Tj /TT1 1 Tf -28.962 -3 Td (Windo)Tj 0.278 Tc 3.04 0 Td (wS)Tj 0 Tc 1.723 0 Td [(iz )268(e)-278(Chang )268(es)]TJ /T1_0 1 Tf -1.163 -2.04 Td [(The )-90(pr)18(ocess )-90(above )-90(the )-90(PTY )-90(master )-90(can )-90(issue )-90(the)]TJ /TT0 1 Tf 22.088 0 Td [(TIOCSWINSZ )260(ioctl)]TJ /T1_0 1 Tf 9.681 0 Td [(command )-90(to )-90(set)]TJ -31.769 -1.2 Td [(the )-45(window )-45(size )-45(of )-45(the )-45(slave.)-545(If )-45(the )-45(new )-45(size )-45(dif)18(fers )-45(fr)18(om )-45(the )-45(curr)13(ent )-45(size, )-45(a)]TJ /TT0 1 Tf 34.2 0 Td (SIGWINCH)Tj /T1_0 1 Tf -34.2 -1.2 Td [(signal is sent to the for)18(egr)18(ound pr)18(ocess gr)18(oup of the PTY slave.)]TJ /TT1 1 Tf -3.6 -3 Td (Signal Generation)Tj /T1_0 1 Tf 3.6 -2.04 Td [(The )-69(pr)18(ocess )-69(r)18(eading )-69(and )-69(writing )-69(the )-69(PTY )-69(master )-69(can )-69(send )-69(signals )-69(to )-69(the )-69(pr)22(ocess )-69(gr)18(oup)]TJ -0 -1.2 Td [(of )-337(the )-337(PTY )-337(slave.)-835(Under )-336(Solaris )-336(10, )-336(this )-336(is )-336(done )-336(using )-336(the)]TJ /TT0 1 Tf 29.413 0 Td [(TIOCSIGNAL )14(ioctl)]TJ /T1_0 1 Tf -29.413 -1.2 Td [(command. )-278(W)55(ith )-28(Fr)18(eeBSD )-28(8.0, )-28(Linux )-28(3.2.0, )-28(and )-28(Mac )-28(OS )-28(X )-28(10.6.8, )-28(the)]TJ /TT0 1 Tf 30.28 0 Td (ioctl)Tj /T1_0 1 Tf 3.278 0 Td [(command )-28(is)]TJ /TT0 1 Tf -33.558 -1.2 Td (TIOCSIG)Tj /T1_0 1 Tf 0.5 Tc (.I)Tj 0.25 Tc 5.287 0 Td (nb)Tj 0 Tc 1.385 0 Td (oth cases, the thir)Tj 0.25 Tc 7.688 0 Td (da)Tj -0.018 Tc 1.361 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument is set to the signal number)74(.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5947 250.185 Tm [(19.8 )-776(Summar)-10(y)]TJ /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5925 228.5863 Tm [(We )-229(s)]TJ 0 Tc 2.106 0 Td [(tarted )-45(this )-45(chapter )-45(with )-45(an )-45(overview )-45(of )-45(how )-45(to )-45(use )-45(pseudo )-45(terminals )-45(and )-45(a )-45(look )-45(at)]TJ -2.106 -1.2 Td [(some )-210(use )-210(cases.)]TJ -0.092 Tc 7.988 0 Td [(We )-394(c)]TJ 0 Tc 2.291 0 Td [(ontinued )-210(by )-210(examining )-210(the )-210(code )-210(r)19(equir)18(ed )-210(to )-210(set )-210(up )-210(a )-210(pseudo)]TJ -10.279 -1.2 Td [(terminal )-180(under )-180(the )-180(four )-180(platforms )-180(discussed )-180(in )-180(this )-180(text.)]TJ -0.092 Tc 26.803 0 Td [(We )-364(t)]TJ 0 Tc 2.143 0 Td [(hen )-180(used )-180(this )-180(code )-180(to)]TJ -28.946 -1.2 Td [(pr)18(ovide )-530(the )-530(generic)]TJ /TT0 1 Tf 10.422 0 Td (pty_fork)Tj /T1_0 1 Tf 5.58 0 Td [(function )-530(that )-530(can )-530(be )-530(used )-530(by )-530(many )-530(dif)19(fer)18(ent)]TJ -16.002 -1.2 Td [(applications. )-356(W)]TJ 0.356 Tc 7.161 0 Td (eu)Tj 0 Tc 1.438 0 Td [(sed )-106(this )-106(function )-106(as )-106(the )-106(basis )-106(for )-106(a )-106(small )-106(pr)18(ogram )-106(\()]TJ /TT0 1 Tf 23.26 0 Td (pty)Tj /T1_0 1 Tf [(\), )-106(which )-106(we)]TJ -31.859 -1.2 Td (then used to explor)Tj 0.25 Tc 8.518 0 Td (em)Tj 0 Tc 1.612 0 Td [(any of the pr)18(operties of pseudo terminals.)]TJ -8.33 -1.2 Td [(Pseudo )-50(terminals )-50(ar)]TJ 0.3003 Tc 8.916 0 Td (eu)Tj 0 Tc 1.382 0 Td [(sed )-50(daily )-50(on )-50(most )-50(UNIX )-50(systems )-50(to )-50(pr)16(ovide )-50(network )-50(logins.)]TJ -0.092 Tc -12.098 -1.2 Td (We)Tj 0 Tc 1.387 0 Td [(\325ve )-194(examined )-194(other )-194(uses )-194(for )-194(pseudo )-194(terminals )-194(as )-194(well, )-194(ranging )-194(fr)18(om )-194(the)]TJ /TT0 1 Tf 34.013 0 Td (script)Tj /T1_0 1 Tf -35.4 -1.2 Td [(pr)18(ogram to driving interactive pr)18(ograms fr)18(om a batch script.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46882 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (740)Tj /T1_1 1 Tf 3.5 0 Td [(Pseudo )-250(T)92(erminals )]TJ 38.741 0 Td [(Chapter)-500(19)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 194.3883 670.2598 Tm (err_sys\("dup2 error to stdout"\);)Tj -2.4 -1.189 Td (if \(pipe[0] != STDIN_FILENO && pipe[0] != STDOUT_FILENO\))Tj 2.4 -1.189 Td (close\(pipe[0]\);)Tj -2.4 -2.021 Td (/* leave stderr for driver alone */)Tj 0 -1.189 TD (execlp\(driver, driver, \(char *\)0\);)Tj 0 -1.189 TD (err_sys\("execlp error for: %s", driver\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD [(close\(pipe[0]\); )-2400(/*)-600(parent */)]TJ 0 -1.189 TD (if \(dup2\(pipe[1], STDIN_FILENO\) != STDIN_FILENO\))Tj 2.4 -1.189 Td (err_sys\("dup2 error to stdin"\);)Tj -2.4 -1.189 Td (if \(dup2\(pipe[1], STDOUT_FILENO\) != STDOUT_FILENO\))Tj 2.4 -1.189 Td (err_sys\("dup2 error to stdout"\);)Tj -2.4 -1.189 Td (if \(pipe[1] != STDIN_FILENO && pipe[1] != STDOUT_FILENO\))Tj 2.4 -1.189 Td (close\(pipe[1]\);)Tj -2.4 -2.021 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (arent returns, but with stdin and stdout connected)Tj -1.8 -1.189 Td [(*)-600(to)-600(the driver.)]TJ T* (*/)Tj -3 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4504.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 217.3939 434.3769 Tm (Figure 19.16)Tj /T1_1 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (do_driver)Tj /T1_1 1 Tf 5.65 0 Td (function for the)Tj /TT0 1 Tf 7.118 0 Td (pty)Tj /T1_1 1 Tf 2.05 0 Td [(pr)18(ogram)]TJ 9.9988 0 0 9.9988 129.5849 410.3797 Tm [(By )-133(writing )-133(our )-133(own )-133(driver )-133(pr)18(ogram )-133(that )-133(is )-133(invoked )-133(by)]TJ /TT0 1 Tf 25.56 0 Td (pty)Tj /T1_1 1 Tf [(,)-383(we)-383(can )-133(drive )-133(interactive)]TJ -25.56 -1.2 Td [(pr)18(ograms )-211(in )-211(any )-211(way )-211(desir)19(ed. )-461(Even)-461(though )-211(it )-211(has )-211(its )-211(standar)]TJ 0.4609 Tc 28.979 0 Td (di)Tj 0 Tc 1.363 0 Td [(nput )-211(and )-211(standar)18(d)]TJ -30.342 -1.2 Td [(output )-96(connected )-96(to)]TJ /TT0 1 Tf 9.408 0 Td (pty)Tj /T1_1 1 Tf 0.346 Tc (,t)Tj 0 Tc 2.722 0 Td [(he )-96(driver )-96(pr)18(ocess )-96(can )-96(still )-96(interact )-96(with )-96(the )-96(user )-96(by )-96(r)18(eading)]TJ -12.13 -1.2 Td [(and )-56(writing)]TJ /TT0 1 Tf 5.581 0 Td (/dev/tty)Tj /T1_1 1 Tf 0.5563 Tc (.T)Tj 0 Tc 6.219 0 Td [(his )-56(solution )-56(still )-56(isn\325t )-56(as )-56(general )-56(as )-56(the)]TJ /TT0 1 Tf 17.397 0 Td (expect)Tj /T1_1 1 Tf 3.906 0 Td [(pr)18(ogram, )-56(but)]TJ -33.104 -1.2 Td [(it pr)18(ovides a useful option to)]TJ /TT0 1 Tf 13.008 0 Td (pty)Tj /T1_1 1 Tf 2.05 0 Td (for fewer than 50 lines of code.)Tj /TT1 1 Tf 11.9986 0 0 11.9986 93.5892 326.3898 Tm [(19.7 )-776(Ad)]TJ -0.02 Tc 4.318 0 Td (va)Tj 0 Tc 1.092 0 Td [(nced )-278(Features)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5848 302.3927 Tm [(Pseudo )-18(terminals )-18(have )-18(some )-18(additional )-18(capabilities )-18(that )-18(we )-18(brie\337y )-18(mention )-18(her)14(e. )-268(These)]TJ 0 -1.2 TD [(capabilities )-173(ar)]TJ 0.4228 Tc 6.291 0 Td (ef)Tj 0 Tc 1.235 0 Td [(urther )-173(documented )-173(in )-173(Sun )-173(Micr)19(osystems)]TJ 19.161 0.04 Td ([)Tj 0.333 -0.04 Td (2005)Tj 2 0.04 Td (])Tj 0.756 -0.04 Td [(and )-173(the )-173(BSD)]TJ /TT0 1 Tf 6.259 0 Td (pts)Tj /T1_1 1 Tf (\(4\))Tj -36.034 -1.2 Td (manual page.)Tj /TT1 1 Tf -0.03 Tc -3.6 -2.88 Td (Pa)Tj -0.02 Tc 1.193 0 Td (ck)Tj 0 Tc 1.092 0 Td (et Mode)Tj /T1_1 1 Tf 1.315 -2.04 Td [(Packet )-119(mode )-119(lets )-119(the )-119(PTY )-119(master )-119(learn )-119(of )-119(state )-119(changes )-119(in )-119(the )-119(PTY )-119(slave.)-617(On )-119(Solaris,)]TJ T* [(this )-14(mode )-14(is )-14(enabled )-14(by )-14(pushing )-14(the )-14(STREAMS )-14(module)]TJ /TT0 1 Tf 24.945 0 Td (pckt)Tj /T1_1 1 Tf 2.664 0 Td [(onto )-14(the )-14(PTY )-14(master )-14(side.)]TJ -0.092 Tc -27.609 -1.2 Td [(We )-316(s)]TJ 0 Tc 2.193 0 Td [(howed )-132(this )-132(optional )-132(module )-132(in )-132(Figur)]TJ 0.3821 Tc 16.938 0 Td (e1)Tj 0 Tc 1.361 0 Td [(9.2. )-382(On)-382(Fr)18(eeBSD, )-132(Linux, )-132(and )-132(Mac )-132(OS )-132(X,)]TJ -20.492 -1.2 Td (this mode is enabled with the)Tj /TT0 1 Tf 13.272 0 Td [(TIOCPKT )350(ioctl)]TJ /T1_1 1 Tf 7.7 0 Td (command.)Tj -19.172 -1.2 Td [(The )-93(details )-93(of )-93(packet )-93(mode )-93(dif)18(fer )-93(between )-93(Solaris )-93(and )-93(the )-93(other )-93(platforms.)-597(Under)]TJ -1.8 -1.2 Td [(Solaris, )-130(the )-130(pr)18(ocess )-130(r)17(eading )-130(the )-130(PTY )-130(master )-130(has )-130(to )-130(call)]TJ /TT0 1 Tf 25.286 0 Td (getmsg)Tj /T1_1 1 Tf 3.98 0 Td [(to )-130(fetch )-130(the )-130(messages)]TJ -29.267 -1.2 Td [(fr)18(om )-113(the )-113(str)18(eam )-113(head, )-113(because )-113(the)]TJ /TT0 1 Tf 15.984 0 Td (pckt)Tj /T1_1 1 Tf 2.763 0 Td [(module )-113(converts )-113(certain )-113(events )-113(into )-113(nondata)]TJ -18.747 -1.2 Td [(STREAMS )-21(messages.)]TJ -0.055 Tc 9.877 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-21(the )-21(other )-21(platforms, )-21(each)]TJ /TT0 1 Tf 12.531 0 Td (read)Tj /T1_1 1 Tf 2.671 0 Td [(fr)18(om )-21(the )-21(PTY )-21(master )-21(r)19(eturns)]TJ 0.25 Tc -26.314 -1.2 Td (as)Tj 0 Tc 1.174 0 Td (tatus byte followed by optional data.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46883 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(19.6)]TJ 32.654 0 Td [(Using )-250(the)]TJ /TT0 1 Tf 5.018 0 Td (pty)Tj /T1_0 1 Tf 2.3 0 Td [(Pr)18(ogram)]TJ /T1_1 1 Tf 5.861 0 Td (733)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (if \(signal_intr\(SIGTERM, sig_term\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("signal_intr error for SIGTERM"\);)Tj -2.4 -1.902 Td (for \( ; ; \) {)Tj 2.4 -1.189 Td (if \(\(nread = read\(ptym, buf, BUFFSIZE\)\) <= 0\))Tj 2.4 -1.189 Td [(break; )-3000(/*)-600(signal caught, error, or EOF */)]TJ -2.4 -1.189 Td (if \(writen\(STDOUT_FILENO, buf, nread\) != nread\))Tj 2.4 -1.189 Td (err_sys\("writen error to stdout"\);)Tj -4.8 -1.189 Td (})Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*T)Tj 0 Tc 1.8 0 Td (here are three ways to get here: sig_term\(\) below caught the)Tj 0.6 Tc -1.8 -1.189 Td (*S)Tj 0 Tc 1.8 0 Td (IGTERM from the child, we read an EOF on the pty master \(which)Tj 0.6 Tc -1.8 -1.189 Td (*m)Tj 0 Tc 1.8 0 Td (eans we have to signal the child to stop\), or an error.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(sigcaught == 0\) /* tell child if it didn\325t send us the signal *\ /)Tj 2.4 -1.189 Td (kill\(child, SIGTERM\);)Tj -2.4 -1.902 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (arent returns to caller.)Tj -1.8 -1.189 Td (*/)Tj -3 -1.189 Td (})Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*T)Tj 0 Tc 1.8 0 Td (he child sends us SIGTERM when it gets EOF on the pty slave or)Tj 0.6 Tc -1.8 -1.189 Td (*w)Tj 0 Tc 1.8 0 Td [(hen read\(\) fails.)-1200(We probably interrupted the read\(\) of ptym.)]TJ -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (static void)Tj 0 -1.189 TD (sig_term\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td [(sigcaught = 1;)-3600(/* just set flag and return */)]TJ -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3509.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 266.664 334.8788 Tm (Figure 19.12)Tj /T1_0 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (loop)Tj /T1_0 1 Tf 2.65 0 Td (function)Tj 9.9988 0 0 9.9988 129.5848 310.8817 Tm [(Note )-34(that )-34(because )-34(we )-34(use )-34(two )-34(pr)18(ocesses, )-34(one )-34(has )-34(to )-34(notify )-34(the )-34(other )-34(when )-34(it )-34(terminates.)]TJ -0.092 Tc 0 -1.2 TD [(We )-184(u)]TJ 0 Tc 2.24 0 Td (se the)Tj /TT0 1 Tf 2.79 0 Td (SIGTERM)Tj /T1_0 1 Tf 4.45 0 Td (signal for this noti\336cation.)Tj /TT1 1 Tf 11.9986 0 0 11.9986 93.5892 260.4877 Tm [(19.6 )-776(Using)-556(the)]TJ /TT2 1 Tf 8.39 0 Td (pty)Tj /TT1 1 Tf 2.356 0 Td [(Pr)20(ogram)]TJ /T1_0 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5848 234.0909 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ll )-192(now )-192(look )-192(at )-192(various )-192(examples )-192(with )-192(the)]TJ /TT0 1 Tf 20.042 0 Td (pty)Tj /T1_0 1 Tf 2.242 0 Td [(pr)18(ogram, )-192(seeing )-192(the )-192(need )-192(for )-192(the)]TJ -23.671 -1.2 Td (command)Tj 4.449 0.09 Td (-)Tj 0.333 -0.09 Td (line options.)Tj -2.982 -1.2 Td (If our shell is the Korn shell, we can execute the command)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5826 192.326 Tm (pty ksh)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5847 173.258 Tm [(and get a brand-new invocation of the shell, r)8(unning under a pseudo terminal.)]TJ 1.8 -1.2 Td [(If )-62(the )-62(\336le)]TJ /TT0 1 Tf 4.367 0 Td (ttyname)Tj /T1_0 1 Tf 4.512 0 Td [(is )-62(the )-62(pr)18(ogram )-62(we )-62(showed )-62(in )-62(Figur)]TJ 0.3116 Tc 15.875 0 Td (e1)Tj 0 Tc 1.291 0 Td [(8.16, )-62(we )-62(can )-62(r)8(un )-62(the)]TJ /TT0 1 Tf 9.356 0 Td (pty)Tj /T1_0 1 Tf -37.2 -1.2 Td [(pr)18(ogram as follows:)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46884 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(19.5)]TJ /TT0 1 Tf 37.672 0 Td (pty)Tj /T1_0 1 Tf 2.3 0 Td [(Pr)18(ogram)]TJ /T1_1 1 Tf 5.861 0 Td (729)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 172.7896 670.2598 Tm (if \(dup2\(fds, STDOUT_FILENO\) != STDOUT_FILENO\))Tj 2.4 -1.189 Td (err_sys\("dup2 error to stdout"\);)Tj -2.4 -1.189 Td (if \(dup2\(fds, STDERR_FILENO\) != STDERR_FILENO\))Tj 2.4 -1.189 Td (err_sys\("dup2 error to stderr"\);)Tj -2.4 -1.189 Td (if \(fds != STDIN_FILENO && fds != STDOUT_FILENO &&)Tj 1.2 -1.189 Td (fds != STDERR_FILENO\))Tj 1.2 -1.189 Td (close\(fds\);)Tj -2.4 -1.189 Td [(return\(0\); )-3000(/*)-600(child returns 0 just like fork\(\) */)]TJ 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 15 0 Td (/* parent */)Tj -14.4 -1.189 Td [(*ptrfdm = fdm;)-1200(/* return fd of master */)]TJ 0 -1.189 TD [(return\(pid\); )-1800(/*)-600(parent returns pid of child */)]TJ -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5371.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 257.0651 521.0365 Tm (Figure 19.10)Tj /T1_0 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (pty_fork)Tj /T1_0 1 Tf 5.05 0 Td (function)Tj /TT1 1 Tf 11.9986 0 0 11.9986 93.5892 473.0422 Tm (19.5)Tj /TT2 1 Tf 3 0 Td (pty)Tj /TT1 1 Tf 2.356 0 Td [(Pr)20(ogram)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5848 449.0451 Tm (The goal in writing the)Tj /TT0 1 Tf 10.352 0 Td (pty)Tj /T1_0 1 Tf 2.05 0 Td [(pr)18(ogram is to be able to type)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5827 432.3467 Tm (pty prog arg1 arg2)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5848 414.3489 Tm (instead of)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5827 397.6509 Tm (prog arg1 arg2)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5848 379.653 Tm [(When )-40(we )-40(use)]TJ /TT0 1 Tf 6.333 0 Td (pty)Tj /T1_0 1 Tf 2.09 0 Td [(to )-40(execute )-40(another )-40(pr)18(ogram, )-40(that )-40(pr)18(ogram )-40(is )-40(executed )-40(in )-40(a )-40(session )-40(of)]TJ -8.424 -1.2 Td (its own, connected to a pseudo terminal.)Tj 1.8 -1.2 Td [(Let\325s )-224(look )-224(at )-224(the )-224(sour)18(ce )-224(code )-224(for )-224(the)]TJ /TT0 1 Tf 17.676 0 Td (pty)Tj /T1_0 1 Tf 2.274 0 Td [(pr)18(ogram. )-474(The)-474(\336rst )-224(\336le )-224(\(Figur)]TJ 0.474 Tc 13.769 0 Td (e1)Tj 0 Tc 1.453 0 Td [(9.1)55(1\))]TJ -36.972 -1.2 Td (contains the)Tj /TT0 1 Tf 5.582 0 Td (main)Tj /T1_0 1 Tf 2.65 0 Td [(function. )-250(It)-250(calls the)]TJ /TT0 1 Tf 9.207 0 Td (pty_fork)Tj /T1_0 1 Tf 5.05 0 Td [(function fr)18(om the pr)18(evious section.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3365.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 326.9391 Tm (#include "apue.h")Tj T* (#include )Tj 0 -2.021 TD (#ifdef LINUX)Tj 0 -1.189 TD (#define OPTSTR "+d:einv")Tj T* (#else)Tj 0 -1.189 TD (#define OPTSTR "d:einv")Tj 0 -1.189 TD (#endif)Tj 0 -2.021 TD [(static void set_noecho\(int\);)-2400(/* at the end of this file */)]TJ 0 -1.189 TD [(void )-4200(do_driver\(char)-600(*\); )-600(/*)-600(in the file driver.c */)]TJ 0 -1.189 TD [(void )-4200(loop\(int,)-600(int\); )-2400(/*)-600(in the file loop.c */)]TJ 0 -2.021 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td [(fdm,)-600(c, ignoreeof, interactive, noecho, verbose;)]TJ -9.6 -1.189 Td (pid_t )Tj 9.6 0 Td (pid;)Tj -9.6 -1.189 Td (char )Tj 9.6 0 Td (*driver;)Tj -9.6 -1.189 Td (char )Tj 9.6 0 Td (slave_name[20];)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46885 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (726)Tj /T1_1 1 Tf 3.5 0 Td [(Pseudo )-250(T)92(erminals )]TJ 38.741 0 Td [(Chapter)-500(19)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 172.7896 670.2598 Tm (if \(ioctl\(fds, I_PUSH, "ttcompat"\) < 0\) {)Tj -4.8 -1.189 Td (errout:)Tj 7.2 -1.189 Td (err = errno;)Tj 0 -1.189 TD (close\(fds\);)Tj T* (errno = err;)Tj 0 -1.189 TD (return\(-1\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (#endif)Tj 2.4 -1.189 Td (return\(fds\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5585.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 245.0466 542.4339 Tm (Figure 19.9)Tj /T1_1 1 Tf 5.695 0 Td (Pseudo-terminal open functions)Tj 9.9988 0 0 9.9988 147.5825 511.2376 Tm (The)Tj /TT0 1 Tf 2.028 0 Td (ptym_open)Tj /T1_1 1 Tf 5.754 0 Td [(function )-104(uses )-104(the )-104(XSI )-104(PTY )-104(functions )-104(to )-104(\336nd )-104(and )-104(open )-104(an )-104(unused)]TJ -9.582 -1.2 Td [(PTY )-50(master )-50(device )-50(and )-50(initialize )-50(the )-50(corr)18(esponding )-50(PTY )-50(slave )-50(device.)-548(The)]TJ /TT0 1 Tf 33.6 0 Td (ptys_open)Tj /T1_1 1 Tf -33.6 -1.2 Td [(function )-75(opens )-75(the )-75(slave )-75(PTY )-75(device.)-575(On )-75(a )-75(Solaris )-75(system, )-75(however)74(,)-325(we)-325(might )-75(need )-75(to)]TJ -0 -1.2 Td (take additional steps befor)Tj 0.25 Tc 11.702 0 Td (et)Tj 0 Tc 1.055 0 Td (he slave PTY device will behave like a terminal.)Tj -10.957 -1.2 Td [(On )-64(Solaris, )-64(after )-64(opening )-64(the )-64(slave )-64(device, )-64(we )-64(might )-64(need )-64(to )-64(push )-64(thr)18(ee )-64(STREAMS)]TJ -1.8 -1.2 Td [(modules )-245(onto )-245(the )-245(slave\325s )-245(str)16(eam. )-495(T)92(ogether)]TJ 0.4954 Tc 19.961 0 Td (,t)Tj 0 Tc 1.071 0 Td [(he )-245(pseudo )-245(terminal )-245(emulation )-245(module)]TJ -21.032 -1.2 Td (\()Tj /TT0 1 Tf (ptem)Tj /T1_1 1 Tf 0.3481 Tc (\)a)Tj 0 Tc 3.914 0 Td [(nd )-98(the )-98(terminal )-98(line )-98(discipline )-98(module )-98(\()]TJ /TT0 1 Tf 18.11 0 Td (ldterm)Tj /T1_1 1 Tf 0.3481 Tc (\)a)Tj 0 Tc 4.781 0 Td [(ct )-98(like )-98(a )-98(r)18(eal )-98(terminal.)-598(The)]TJ /TT0 1 Tf -26.805 -1.2 Td (ttcompat)Tj /T1_1 1 Tf 5.149 0 Td [(module )-99(pr)18(ovides )-99(compatibility )-99(for )-99(older )-99(V7, )-99(4BSD, )-99(and )-99(Xenix)]TJ /TT0 1 Tf 28.302 0 Td (ioctl)Tj /T1_1 1 Tf 3.349 0 Td (calls.)Tj -36.8 -1.2 Td [(It\325s )-9(an )-9(optional )-9(module, )-9(but )-9(since )-9(it\325s )-9(automatically )-9(pushed )-9(for )-9(network )-9(logins, )-9(we )-9(push)]TJ 0 -1.2 TD [(it onto the slave\325s str)18(eam.)]TJ 1.8 -1.2 Td [(The )-65(r)18(eason )-65(why )-65(we )-65(might)]TJ /T1_2 1 Tf 12.081 0 Td (not)Tj /T1_1 1 Tf 1.648 0 Td [(need )-65(to )-65(push )-65(these )-65(thr)18(ee )-65(modules )-65(is )-65(that )-65(they )-65(might)]TJ -15.529 -1.2 Td [(be )-117(ther)]TJ 0.3675 Tc 3.164 0 Td (ea)Tj 0 Tc 1.346 0 Td [(lr)18(eady)]TJ 0.6174 Tc 2.703 0 Td (.T)Tj 0 Tc 1.48 0 Td [(he )-117(STREAMS )-117(system )-117(supports )-117(a )-117(facility )-117(known )-117(as)]TJ /T1_2 1 Tf 23.234 0 Td (autopush)Tj /T1_1 1 Tf 0.3674 Tc (,w)Tj 0 Tc 5.173 0 Td (hich)Tj -37.101 -1.2 Td [(allows )-225(an )-225(administrator )-225(to )-225(con\336gur)]TJ 0.4755 Tc 16.525 0 Td (eal)Tj 0 Tc 2.221 0 Td [(ist )-225(of )-225(modules )-225(to )-225(be )-225(pushed )-225(onto )-225(a )-225(str)14(eam)]TJ -18.746 -1.2 Td [(whenever )-81(a )-81(particular )-81(device )-81(is )-81(opened )-81(\(see )-81(Rago)]TJ 22.755 0.04 Td ([)Tj 0.333 -0.04 Td (1993)Tj 2 0.04 Td (])Tj 0.664 -0.04 Td [(for )-81(mor)]TJ 0.3308 Tc 3.411 0 Td (ed)Tj 0 Tc 1.421 0 Td [(etails\). )-331(W)]TJ 0.3308 Tc 4.383 0 Td (eu)Tj 0 Tc 1.413 0 Td [(se )-81(the)]TJ /TT0 1 Tf -36.379 -1.2 Td [(I_FIND )258(ioctl)]TJ /T1_1 1 Tf 7.284 0 Td [(command )-92(to )-92(see )-92(whether)]TJ /TT0 1 Tf 11.749 0 Td (ldterm)Tj /T1_1 1 Tf 3.942 0 Td [(is )-92(alr)18(eady )-92(pr)18(esent )-92(on )-92(the )-92(str)17(eam. )-342(If)]TJ -22.975 -1.2 Td [(so, )-150(we )-150(assume )-150(that )-150(the )-150(str)18(eam )-150(has )-150(been )-150(con\336gur)18(ed )-150(by )-150(the )-150(autopush )-150(mechanism )-150(and)]TJ T* (avoid pushing the modules a second time.)Tj 1.8 -1.2 Td [(Linux, )-20(Mac )-20(OS )-20(X, )-20(and )-20(Solaris )-20(follow )-20(the )-20(historical )-20(System )-20(V )-20(behavior: )-20(if )-20(the )-20(caller )-20(is)]TJ 0.4553 Tc -1.8 -1.2 Td (as)Tj 0 Tc 1.379 0 Td [(ession )-205(leader )-205(that )-205(does )-205(not )-205(alr)18(eady )-205(have )-205(a )-205(contr)18(olling )-205(terminal, )-205(the )-205(call )-205(to)]TJ /TT0 1 Tf 35.221 0 Td (open)Tj /T1_1 1 Tf -36.6 -1.2 Td [(allocates )-13(the )-13(PTY )-13(slave )-13(as )-13(the )-13(contr)16(olling )-13(terminal.)-513(If )-13(we )-13(didn\325t )-13(want )-13(this )-13(to )-13(happen, )-13(we)]TJ T* [(could )-4(specify )-4(the)]TJ /TT0 1 Tf 7.772 0 Td (O_NOCTTY)Tj /T1_1 1 Tf 5.054 0 Td [(\337ag )-4(for)]TJ /TT0 1 Tf 3.446 0 Td (open)Tj /T1_1 1 Tf 0.5039 Tc (.H)Tj 0 Tc 3.986 0 Td [(owever)74(,)-254(on)-254(F)]TJ -0.018 Tc (re)Tj 0 Tc 6.522 0 Td [(eBSD, )-4(the)]TJ /TT0 1 Tf 4.534 0 Td (open)Tj /T1_1 1 Tf 2.654 0 Td [(of )-4(the )-4(slave)]TJ -33.967 -1.2 Td [(PTY )-26(does )-26(not )-26(have )-26(the )-26(side )-26(ef)18(fect )-26(of )-26(allocating )-26(the )-26(device )-26(as )-26(the )-26(contr)18(olling )-26(terminal.)-523(In)]TJ T* [(the )-169(next )-169(section, )-169(we\325ll )-169(see )-169(how )-169(to )-169(allocate )-169(the )-169(contr)17(olling )-169(terminal )-169(when )-169(r)8(unning )-169(on)]TJ T* [(Fr)18(eeBSD.)]TJ /TT1 1 Tf 11.9986 0 0 11.9986 93.5887 199.2751 Tm (19.4)Tj /TT2 1 Tf 3 0 Td (pty_fork)Tj /TT1 1 Tf 5.356 0 Td (Function)Tj /T1_1 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5843 175.278 Tm [(We )-219(n)]TJ 0 Tc 2.254 0 Td [(ow )-35(use )-35(the )-35(two )-35(functions )-35(fr)18(om )-35(the )-35(pr)16(evious )-35(section,)]TJ /TT0 1 Tf 23.432 0 Td (ptym_open)Tj /T1_1 1 Tf 5.685 0 Td (and)Tj /TT0 1 Tf 1.978 0 Td (ptys_open)Tj /T1_1 1 Tf (,)Tj -33.35 -1.2 Td [(to )-267(write )-267(a )-267(new )-267(function )-267(that )-267(we )-267(call)]TJ /TT0 1 Tf 18.012 0 Td (pty_fork)Tj /T1_1 1 Tf 0.7674 Tc (.T)Tj 0 Tc 6.43 0 Td [(his )-267(new )-267(function )-267(combines )-267(the)]TJ -24.442 -1.2 Td [(opening )-177(of )-177(the )-177(master )-177(and )-177(the )-177(slave )-177(with )-177(a )-177(call )-177(to)]TJ /TT0 1 Tf 23.883 0 Td (fork)Tj /T1_1 1 Tf 0.4276 Tc (,e)Tj 0 Tc 3.557 0 Td [(stablishing )-178(the )-178(child )-178(as )-178(a)]TJ -27.439 -1.2 Td [(session leader with a contr)18(olling terminal.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46886 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (722)Tj /T1_1 1 Tf 3.5 0 Td [(Pseudo )-250(T)92(erminals )]TJ 38.741 0 Td [(Chapter)-500(19)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2166 4874 576 252 re S Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 229.3982 503.2098 Tm (terminal)Tj -0.929 -1.25 Td (device driver)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2958 4874 576 252 re S Q BT /T1_1 1 Tf 7.999 0 0 7.999 303.9995 498.1802 Tm (PTY master)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 3750 4874 576 252 re S Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 386.1585 498.1503 Tm (PTY slave)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2166 5342 576 252 re S Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 230.3567 549.908 Tm (terminal)Tj -1.225 -1.25 Td (line discipline)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 3750 5342 576 252 re S Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 388.6954 549.875 Tm (terminal)Tj -1.225 -1.25 Td (line discipline)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 4586.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 4656.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 4725.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 4795.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 4864.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 4934.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5004.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5074.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5144.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5214.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5283.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5353.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5422.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5492.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5562.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5632.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5702.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2093.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2164.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2235.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2305.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2377.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2447.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2519.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2589.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2660.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2731.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2802.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2873.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2944.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3015.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3086.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3156.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3228.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3299.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3370.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3441.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3511.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3583.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3653.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3725.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3795.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3866.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3937.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4008.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4079.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4150.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4292.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4362.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4434.25 5738.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5668.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5598.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5528.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5458.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5389.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5319.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5250.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5180.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5110.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5040.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 4970.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 4900.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 4831.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 4761.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 4692.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 4622.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4398.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4328.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4257.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4186.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4115.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4044.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3973.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3902.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3831.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3761.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3689.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3619.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3547.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3477.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3406.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3335.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3264.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3192.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3122.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3051.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2980.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2909.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2838.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2767.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2696.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2625.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2555.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2483.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2413.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2341.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2271.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2200.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2129.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2058.25 4586.25 cm 0 0 m -36 0 l S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 448.8384 514.2548 Tm (kernel)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2238 5954 432 252 re S Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 236.2368 610.9833 Tm (login)Tj 0.1 -1.25 Td (shell)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 3030 5954 432 252 re S Q BT /TT0 1 Tf 7.9962 0 0 7.9962 317.2477 610.9467 Tm (pty)Tj /T1_1 1 Tf -0.748 -1.25 Td [(pr)18(ocess)]TJ ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 324.6 642.2 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3246 6422 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 6206.25 cm 0 0 m 0 144 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 3066 6422 360 216 re S Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 312.4112 655.8857 Tm (output)Tj 0.815 -1.25 Td (\336le)Tj ET q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 303 608 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 3030 6080 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 6080.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2754.25 6080.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2838.25 6080.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2922.25 6080.25 cm 0 0 m 36 0 l S Q Q BT /TT0 1 Tf 7.9952 0 0 7.9952 275.2348 610.8734 Tm (fork)Tj 0 -1.25 TD (exec)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 3822 5954 432 252 re S Q BT /TT0 1 Tf 7.9947 0 0 7.9947 386.7447 605.84 Tm (slowout)Tj ET q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 382.2 608 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 3822 6080 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3462.25 6080.25 cm 0 0 m 288 0 l S Q Q BT /TT0 1 Tf 7.9942 0 0 7.9942 354.3448 610.8001 Tm (fork)Tj T* (exec)Tj ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 235.824 512.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 2358.24 5126 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2358.25 5342.25 cm 0 0 m 0 -144 l S Q Q q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 254.976 534.2 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 2549.76 5342 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2550.25 5270.25 cm 0 0 m 0 -144 l S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 394.224 512.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 3942.24 5126 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3942.25 5342.25 cm 0 0 m 0 -144 l S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 413.376 534.2 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 4133.7598 5342 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4134.25 5270.25 cm 0 0 m 0 -144 l S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 238.2 559.4 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 2382 5594 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5954.25 cm 0 0 m 0 -288 l S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 252.6 595.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 2526 5954 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2526.25 5882.25 cm 0 0 m 0 -288 l S Q Q q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 396.6 559.4 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 3966 5594 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3966.25 5954.25 cm 0 0 m 0 -288 l S Q Q q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 411 595.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 4110 5954 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5882.25 cm 0 0 m 0 -288 l S Q Q BT /T1_2 1 Tf 7.9904 0 0 7.9904 372.1132 587.4946 Tm (stdout)Tj 0.166 -1.25 Td (stderr)Tj 5.089 1.25 Td (stdin)Tj ET q 0.9988007 0 0 0.9988007 0 0 cm q 1 0 0 1 317.4 512.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998801 0 0 0.0998801 0 0 cm 1 j 1 J q 1 0 0 1 3174 5126 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3174.25 5954.25 cm 0 0 m 0 -756 l S Q Q q 0.9987408 0 0 0.9987408 0 0 cm q 1 0 0 1 331.8 595.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998741 0 0 0.0998741 0 0 cm 1 j 1 J q 1 0 0 1 3318 5954 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3318.25 5882.25 cm 0 0 m 0 -756 l S Q Q q 0.9986808 0 0 0.9986808 0 0 cm q 1 0 0 1 394.224 473 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998681 0 0 0.0998681 0 0 cm 1 j 1 J q 1 0 0 1 3942.24 4730 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3942.25 4874.25 cm 0 0 m 0 -72 l S Q Q q 0.9986209 0 0 0.9986209 0 0 cm q 1 0 0 1 334.176 487.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998621 0 0 0.0998621 0 0 cm 1 j 1 J q 1 0 0 1 3341.76 4874 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3342.25 4802.25 cm 0 0 m 0 -72 l S Q Q q 0.998561 0 0 0.998561 0 0 cm q 1 0 0 1 334.176 473 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0998561 0 0 0.0998561 0 0 cm 1 j 1 J q 1 0 0 1 3341.76 4730 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3942.25 4730.25 cm 0 0 m -528 0 l S Q Q q 0.9985011 0 0 0.9985011 0 0 cm q 1 0 0 1 413.376 487.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998501 0 0 0.0998501 0 0 cm 1 j 1 J q 1 0 0 1 4133.7598 4874 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998501 0 0 0.0998501 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4134.25 4802.25 cm 0 0 m 0 -144 l S Q Q q 0.9984412 0 0 0.9984412 0 0 cm q 1 0 0 1 315.024 465.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998441 0 0 0.0998441 0 0 cm 1 j 1 J q 1 0 0 1 3150.24 4658 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3150.25 4874.25 cm 0 0 m 0 -144 l S Q Q q 0.9983813 0 0 0.9983813 0 0 cm q 1 0 0 1 413.376 465.8 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998381 0 0 0.0998381 0 0 cm 1 j 1 J q 1 0 0 1 4133.7598 4658 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998381 0 0 0.0998381 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3150.25 4658.25 cm 0 0 m 912 0 l S Q Q q 0.9983214 0 0 0.9983214 0 0 cm q 1 0 0 1 245.4 487.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998321 0 0 0.0998321 0 0 cm 1 j 1 J q 1 0 0 1 2454 4874 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9982615 0 0 0.9982615 0 0 cm q 1 0 0 1 245.4 437 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998261 0 0 0.0998261 0 0 cm 1 j 1 J q 1 0 0 1 2454 4370 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2454.25 4802.25 cm 0 0 m 0 -360 l S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670 4244 cm 0 0 m 0 -69.59 -96.71 -126 -216 -126 c -335.29 -126 -432 -69.59 -432 0 c -432 69.59 -335.29 126 -216 126 c -96.71 126 0 69.59 0 0 c h S Q Q BT /T1_1 1 Tf 7.9856 0 0 7.9856 230.0775 426.8709 Tm (user at a)Tj -0.01 -1.25 Td (terminal)Tj /T1_0 1 Tf -3.719 -3.43 Td (Figure 19.7)Tj /T1_1 1 Tf 5.695 -0 Td [(Running a slow output pr)18(ogram using a pseudo terminal)]TJ /TT1 1 Tf 11.9784 0 0 11.9784 93.4318 355.9585 Tm [(19.3 )-776(Opening)-556(Pseudo-T)60(erminal )-278(De)15(vices)]TJ /T1_1 1 Tf 9.982 0 0 9.982 129.3672 335.5952 Tm [(PTYs )-71(act )-71(like )-71(physical )-71(terminal )-71(devices )-71(so )-71(that )-71(applications )-71(ar)]TJ 0.3207 Tc 27.789 0 Td (eu)Tj 0 Tc 1.403 0 Td [(nawar)18(e)-321(of)-321(w)1(hich )-71(type)]TJ -29.192 -1.2 Td [(of )-31(device )-31(they )-31(ar)]TJ 0.2806 Tc 7.41 0 Td (eu)Tj 0 Tc 1.363 0 Td [(sing. )-281(However)]TJ 0.2806 Tc 6.69 0 Td (,a)Tj 0 Tc 1.031 0 Td [(pplications )-31(don\325t )-31(need )-31(to )-31(set )-31(the)]TJ /TT0 1 Tf 14.563 0 Td (O_TTY_INIT)Tj /T1_1 1 Tf 6.281 0 Td (\337ag)Tj -37.336 -1.2 Td [(when )-164(opening )-164(PTY )-164(device )-164(\336les.)-663(The )-164(Single )-164(UNIX )-164(Speci\336cation )-164(alr)18(eady )-164(r)20(equir)18(es )-164(that)]TJ 0 -1.2 TD [(implementations )-52(initialize )-52(the )-52(slave )-52(side )-52(of )-52(a )-52(PTY )-52(device )-52(when )-52(it )-52(is )-52(\336rst )-52(opened )-52(so )-52(that)]TJ T* [(any )-117(nonstandar)18(d)]TJ /TT0 1 Tf 8.013 0 Td (termios)Tj /T1_1 1 Tf 4.567 0 Td [(\337ags )-117(needed )-117(for )-117(the )-117(device )-117(to )-117(operate )-117(as )-117(expected )-117(ar)]TJ 0.3669 Tc 24.095 0 Td (es)Tj 0 Tc 1.27 0 Td (et.)Tj -37.945 -1.2 Td [(This )-71(r)18(equir)18(ement )-71(is )-71(intended )-71(to )-71(allow )-71(the )-71(PTY )-71(device )-71(to )-71(operate )-71(pr)17(operly )-71(with )-71(POSIX-)]TJ -0 -1.2 Td (conforming applications that call)Tj /TT0 1 Tf 14.815 0 Td (tcgetattr)Tj /T1_1 1 Tf 5.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (tcsetattr)Tj /T1_1 1 Tf (.)Tj -20.608 -1.2 Td [(The )-345(way )-345(we )-345(open )-345(a )-345(PTY )-345(device )-345(dif)19(fers )-345(among )-345(platforms.)-845(The )-345(Single )-345(UNIX)]TJ -1.8 -1.2 Td [(Speci\336cation )-58(includes )-58(several )-58(functions )-58(as )-58(part )-58(of )-58(the )-58(XSI )-58(option )-58(in )-58(an )-58(attempt )-58(to )-58(unify)]TJ T* [(the )-315(methods.)-815(These )-315(extensions )-315(ar)]TJ 0.565 Tc 16.101 0 Td (eb)Tj 0 Tc 1.597 0 Td [(ased )-315(on )-315(the )-315(functions )-315(originally )-315(pr)18(ovided )-315(to)]TJ -17.698 -1.2 Td [(manage )-43(STREAMS)]TJ 8.459 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-43(PTYs )-43(in )-43(System )-43(V )-43(Release )-43(4.)-542(The)]TJ /TT0 1 Tf 18 0 Td (posix_openpt)Tj /T1_1 1 Tf 7.493 0 Td [(function )-43(is)]TJ -34.285 -1.2 Td [(pr)18(ovided as a portable way to open an available PTY master device.)]TJ /TT0 1 Tf 8.9838 0 0 8.9838 147.3351 188.3604 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (int posix_openpt\(int)Tj /T1_2 1 Tf 12.6 0 Td (o\337ag)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -4.279 -1.783 Td (Returns: \336le descriptor of next available PTY master if OK,)Tj /TT2 1 Tf 26.143 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.0998202 0 0 0.0998202 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1414.25 cm 0 0 m 0 563 l 3900 563 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46887 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (19)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(Pseudo )-280(T)49(er )265(minals)]TJ /TT0 1 Tf 12 0 0 12 93.6 410.4 Tm [(19.1 )-776(Intr)20(oduction)]TJ /T1_2 1 Tf 10 0 0 10 129.6 386.4 Tm [(In )-391(Chapter )-391(9, )-391(we )-391(saw )-391(that )-391(terminal )-391(logins )-391(come )-391(in )-391(thr)18(ough )-391(a )-391(terminal )-391(device,)]TJ 0 -1.2 TD [(automatically )-214(pr)18(oviding )-214(terminal )-214(semantics.)]TJ 0.4636 Tc 20.931 0 Td (At)Tj 0 Tc 1.568 0 Td [(erminal )-213(line )-213(discipline )-213(\(Figur)]TJ 0.4635 Tc 13.476 0 Td (e1)Tj 0 Tc 1.442 0 Td (8.2\))Tj -37.417 -1.2 Td [(exists )-55(between )-55(the )-55(terminal )-55(and )-55(the )-55(pr)18(ograms )-55(that )-55(we )-55(r)8(un, )-55(so )-55(we )-55(can )-55(set )-55(the )-55(terminal\325s)]TJ T* [(special )-209(characters )-209(\(e.g., )-209(backspace, )-209(line )-209(erase, )-209(interr)8(upt\) )-209(and )-209(the )-209(like.)-709(When )-209(a )-209(login)]TJ T* [(arrives )-5(on )-5(a )-5(network )-5(connection, )-5(however)]TJ 0.2547 Tc 18.546 0 Td (,at)Tj 0 Tc 1.585 0 Td [(erminal )-5(line )-5(discipline )-5(is )-5(not )-5(automatically)]TJ -20.131 -1.2 Td [(pr)18(ovided )-210(between )-210(the )-210(incoming )-210(network )-210(connection )-210(and )-210(the )-210(login )-210(shell.)-710(Figur)]TJ 0.46 Tc 36.811 0 Td (e9)Tj 0 Tc 1.439 0 Td (.5)Tj -38.25 -1.2 Td (showed that a)Tj /T1_3 1 Tf 6.46 0 Td (pseudo terminal)Tj /T1_2 1 Tf 6.723 0 Td [(device driver is used to pr)18(ovide terminal semantics.)]TJ -11.383 -1.2 Td [(In )-55(addition )-55(to )-55(network )-55(logins, )-55(pseudo )-55(terminals )-55(have )-55(other )-55(uses )-55(that )-55(we )-55(explor)]TJ 0.305 Tc 35.543 0 Td (ei)Tj 0 Tc 1.075 0 Td (n)Tj -38.418 -1.2 Td [(this )-37(chapter)]TJ 0.537 Tc 5.163 0 Td (.W)Tj 0.287 Tc 1.695 0 Td (es)Tj 0 Tc 1.19 0 Td [(tart )-37(with )-37(an )-37(overview )-37(on )-37(how )-37(to )-37(use )-37(pseudo )-37(terminals, )-37(followed )-37(by )-37(a)]TJ -8.048 -1.2 Td [(discussion )-78(of )-78(speci\336c )-78(use )-78(cases.)-579(Next )-78(we )-78(pr)18(ovide )-78(functions )-78(to )-78(cr)18(eate )-78(pseudo )-78(terminals)]TJ T* [(on )-81(various )-81(platforms, )-81(and )-81(then )-81(we )-81(use )-81(these )-81(functions )-81(to )-81(write )-81(a )-81(pr)14(ogram )-81(that )-81(we )-81(call)]TJ /TT1 1 Tf T* (pty)Tj /T1_2 1 Tf 0.5812 Tc (.W)Tj 0 Tc 3.539 0 Td [(e\325ll )-81(show )-81(various )-81(uses )-81(of )-81(this )-81(pr)18(ogram: )-81(making )-81(a )-81(transcript )-81(of )-81(all )-81(the )-81(character)]TJ -3.539 -1.2 Td [(input )-52(and )-52(output )-52(on )-52(the )-52(terminal )-52(\(the)]TJ /TT1 1 Tf 17.197 0 Td (script)Tj /T1_2 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.635 -0.04 Td [(pr)18(ogram\) )-52(and )-52(r)8(unning )-52(copr)18(ocesses )-52(to)]TJ -22.265 -1.2 Td [(avoid the buf)18(fering pr)18(oblems we encounter)18(ed in the pr)18(ogram fr)18(om Figur)]TJ 0.25 Tc 32.122 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.19.)Tj /TT0 1 Tf 12 0 0 12 93.6001 194.4 Tm [(19.2 )-776(Over)-10(vie)15(w)]TJ /T1_2 1 Tf 10 0 0 10 129.6001 170.4 Tm [(The )-46(term)]TJ /T1_3 1 Tf 4.349 0 Td [(pseudo )-46(terminal)]TJ /T1_2 1 Tf 6.815 0 Td [(implies )-46(that )-46(it )-46(looks )-46(like )-46(a )-46(terminal )-46(to )-46(an )-46(application )-46(pr)16(ogram,)]TJ -11.165 -1.2 Td [(but )-64(it\325s )-64(not )-64(a )-64(r)19(eal )-64(terminal.)-563(Figur)]TJ 0.3137 Tc 14.915 0 Td (e1)Tj 0 Tc 1.293 0 Td [(9.1 )-64(shows )-64(the )-64(typical )-64(arrangement )-64(of )-64(the )-64(pr)20(ocesses)]TJ -16.207 -1.2 Td [(involved )-110(when )-110(a )-110(pseudo )-110(terminal )-110(is )-110(being )-110(used.)-607(The )-110(key )-110(points )-110(in )-110(this )-110(\336gur)]TJ 0.3597 Tc 35.058 0 Td (ea)Tj -0.018 Tc 1.339 0 Td [(re )-146(t)]TJ 0 Tc 1.542 0 Td (he)Tj -37.939 -1.2 Td (following.)Tj /T1_4 1 Tf 9 0 0 9 506.1005 114 Tm (715)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46888 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Chapter )-250(18)]TJ 39.788 0 Td [(Exer)18(cises)]TJ /T1_1 1 Tf 6.045 0 Td (713)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(to )-114(perform )-114(typical )-114(operations )-114(\(clear )-114(the )-114(scr)18(een, )-114(move )-114(the )-114(cursor\) )-114(on )-114(a )-114(wide )-114(variety )-114(of)]TJ 0 -1.2 TD [(terminals. )-370(On)-371(the )-120(other )-120(hand,)]TJ /TT0 1 Tf 14.131 0 Td (curses)Tj /T1_0 1 Tf 3.97 0 Td [(does )-120(help )-120(with )-120(some )-120(of )-120(the )-120(details )-120(that )-120(we\325ve)]TJ -18.101 -1.2 Td [(addr)18(essed )-204(in )-204(this )-204(chapter)]TJ 0.7044 Tc 11.628 0 Td (.F)Tj 0 Tc 1.51 0 Td [(unctions )-204(ar)]TJ 0.4544 Tc 5.129 0 Td (ep)Tj -0.018 Tc 1.534 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vided )-204(by)]TJ /TT0 1 Tf 4.575 0 Td (curses)Tj /T1_0 1 Tf 4.054 0 Td [(to )-204(set )-204(raw )-204(mode, )-204(set)]TJ -29.355 -1.2 Td [(cbr)18(eak )-237(mode, )-237(turn )-237(echo )-237(on )-237(and )-237(of)18(f, )-237(and )-237(the )-237(like.)-736(Note )-237(that )-237(the)]TJ /TT0 1 Tf 30.73 0 Td (curses)Tj /T1_0 1 Tf 4.087 0 Td [(library )-237(is)]TJ -34.817 -1.2 Td [(designed )-231(for )-231(character)18(-based )-231(dumb )-231(terminals, )-231(which )-231(have )-231(mostly )-231(been )-231(r)18(eplaced )-231(by)]TJ T* [(pixel-based graphics terminals today)111(.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5942 572.9656 Tm [(18.14 )-220(Summar)-10(y)]TJ /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.592 548.9671 Tm (Te)Tj 0 Tc 1 0 Td [(rminals )-80(have )-80(many )-80(featur)18(es )-80(and )-80(options, )-80(most )-80(of )-80(which )-80(we\325r)]TJ 0.3297 Tc 27.518 0 Td (ea)Tj 0 Tc 1.309 0 Td [(ble )-80(to )-80(change )-80(to )-80(suit)]TJ -29.827 -1.2 Td [(our )-107(needs.)-607(In )-107(this )-107(chapter)74(,)-357(we)-357(described )-107(numer)18(ous )-107(functions )-107(that )-107(change )-107(a )-107(terminal\325s)]TJ -0 -1.2 Td [(operation )167(\321 )167(namely)]TJ 0.2975 Tc 8.613 0 Td (,s)Tj 0 Tc 0.971 0 Td [(pecial )-47(input )-47(characters )-47(and )-47(the )-47(option )-47(\337ags.)]TJ -0.092 Tc 20.14 0 Td [(We )-232(a)]TJ 0 Tc 2.185 0 Td [(lso )-48(looked )-48(at )-48(all)]TJ -31.909 -1.2 Td [(the )-224(terminal )-224(special )-224(characters )-224(and )-224(the )-224(many )-224(options )-224(that )-224(can )-224(be )-224(set )-224(or )-224(r)18(eset )-224(for )-224(a)]TJ T* (terminal device.)Tj 1.8 -1.2 Td (Ther)Tj 0.8165 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.796 0 Td [(re )-603(t)]TJ 0 Tc 1.999 0 Td [(wo )-567(modes )-567(of )-567(terminal )-567(input)]TJ 0.0833 Tc 14.702 0 Td (\321c)Tj 0 Tc 1.527 0 Td [(anonical )-567(\(line )-567(at )-567(a )-567(time\) )-567(and)]TJ -23.874 -1.2 Td [(noncanonical. )-375(W)]TJ 0.3748 Tc 7.673 0 Td (es)Tj 0 Tc 1.278 0 Td [(howed )-125(examples )-125(of )-125(both )-125(modes )-125(and )-125(pr)18(ovided )-125(functions )-125(that )-125(map)]TJ -8.951 -1.2 Td [(between )-110(the )-110(POSIX.1 )-110(terminal )-110(options )-110(and )-110(the )-110(older )-110(BSD )-110(cbr)18(eak )-110(and )-110(raw )-110(modes.)]TJ -0.092 Tc 37.613 0 Td (We)Tj 0 Tc -37.613 -1.2 Td (also described how to fetch and change the window size of a terminal.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 129.5915 410.9753 Tm [(Ex)10(er)20(cises)]TJ /T1_1 1 Tf 8.9995 0 0 8.9995 129.5915 389.9766 Tm (18.1)Tj /T1_0 1 Tf -0.074 Tc 3.065 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-26(a )-26(pr)18(ogram )-26(that )-26(calls)]TJ /TT0 1 Tf 10.519 0 Td (tty_raw)Tj /T1_0 1 Tf 4.476 0 Td [(and )-26(terminates )-26(\(without )-26(r)17(esetting )-26(the )-26(terminal )-26(mode\).)]TJ -16.316 -1.222 Td [(If )-2(your )-2(system )-2(pr)17(ovides )-2(the)]TJ /TT0 1 Tf 12.404 0 Td (reset)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.585 -0.04 Td [(command )-2(\(all )-2(four )-2(systems )-2(described )-2(in )-2(this )-2(text )-2(do\),)]TJ -16.823 -1.222 Td [(use it to r)18(estor)]TJ 0.25 Tc 6.274 0 Td (et)Tj 0 Tc 1.055 0 Td (he terminal mode.)Tj /T1_1 1 Tf -10.394 -1.667 Td (18.2)Tj /T1_0 1 Tf 3.065 0 Td (The)Tj /TT0 1 Tf 2.019 0 Td (PARODD)Tj /T1_0 1 Tf 3.945 0 Td [(\337ag )-95(in )-95(the)]TJ /TT0 1 Tf 4.958 0 Td (c_cflag)Tj /T1_0 1 Tf 4.545 0 Td [(\336eld )-95(allows )-95(us )-95(to )-95(specify )-95(even )-95(or )-95(odd )-95(parity)]TJ 0.5947 Tc 20.028 0 Td (.T)Tj 0 Tc 1.458 0 Td [(he )-95(BSD)]TJ /TT0 1 Tf -36.953 -1.222 Td (tip)Tj /T1_0 1 Tf 2.05 0 Td [(pr)18(ogram, however)]TJ 0.25 Tc 8.164 0 Td (,a)Tj 0 Tc 1 0 Td [(lso allows the parity bit to be 0 or 1.)-500(How does it do this?)]TJ /T1_1 1 Tf -14.279 -1.667 Td (18.3)Tj /T1_0 1 Tf 3.065 0 Td [(If )-106(your )-106(system\325s)]TJ /TT0 1 Tf 7.633 0 Td (stty)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.689 -0.04 Td [(command )-106(outputs )-106(the )-106(MIN )-106(and )-106(TIME )-106(values, )-106(do )-106(the )-106(following)]TJ -11.555 -1.222 Td [(exer)18(cise. )-299(Log)-300(in )-49(to )-49(the )-49(system )-49(twice )-49(and )-49(start )-49(the)]TJ /TT0 1 Tf 22.345 0 Td (vi)Tj /T1_0 1 Tf 1.499 0 Td [(editor )-49(fr)18(om )-49(one )-49(login.)-549(Use )-49(the)]TJ /TT0 1 Tf 14.024 0 Td (stty)Tj /T1_0 1 Tf -37.869 -1.222 Td [(command )-175(fr)18(om )-175(your )-175(other )-175(login )-175(to )-175(determine )-175(which )-175(values)]TJ /TT0 1 Tf 28.102 0 Td (vi)Tj /T1_0 1 Tf 1.625 0 Td [(sets )-175(MIN )-175(and )-175(TIME )-175(to)]TJ -29.728 -1.222 Td (\(since)Tj /TT0 1 Tf 3.041 0 Td (vi)Tj /T1_0 1 Tf 1.688 0 Td [(sets )-238(the )-238(terminal )-238(to )-238(noncanonical )-238(mode\).)-737(\(If )-238(you )-238(ar)]TJ 0.4877 Tc 24.388 0 Td (er)Tj 0 Tc 1.354 0 Td [(unning )-238(a )-238(windowing)]TJ -30.47 -1.222 Td [(system )-177(on )-177(your )-177(terminal, )-177(you )-177(can )-177(do )-177(this )-177(same )-177(test )-177(by )-177(logging )-177(in )-177(once )-177(and )-177(using )-177(two)]TJ 0 -1.222 TD (separate windows instead.\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46889 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (712)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Running the pr)18(ogram in Figur)]TJ 0.25 Tc 13.365 0 Td (e1)Tj 0 Tc 1.229 0 Td (8.22 on a windowed terminal gives us)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 652.2609 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (35 rows, 80 columns)Tj /T1_2 1 Tf 16 0 Td (initial size)Tj /TT0 1 Tf -16 -1.189 Td (SIGWINCH received)Tj /T1_2 1 Tf 16 0 Td (change window size: signal is caught)Tj /TT0 1 Tf -16 -1.189 Td (40 rows, 123 columns)Tj 0 -1.189 TD (SIGWINCH received)Tj /T1_2 1 Tf 16 0 Td (and again)Tj /TT0 1 Tf -16 -1.189 Td (42 rows, 33 columns)Tj /TT1 1 Tf T* (\366C)Tj /TT0 1 Tf 1.8 0 Td ($)Tj /T1_2 1 Tf 14.2 0 Td (type the interrupt key to terminate)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5821.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 11.9986 0 0 11.9986 93.5888 546.0345 Tm (18.13)Tj /TT1 1 Tf 3 0 Td (termcap)Tj /TT2 1 Tf (,)Tj /TT1 1 Tf 5.034 0 Td (terminfo)Tj /TT2 1 Tf 0.556 Tc (,a)Tj 0 Tc 6.19 0 Td (nd)Tj /TT1 1 Tf 1.778 0 Td (curses)Tj /TT0 1 Tf 9.9988 0 0 9.9988 129.5842 522.0373 Tm (termcap)Tj /T1_1 1 Tf 4.542 0 Td [(stands )-92(for )-92(\324)37(\324terminal )-92(capability)111(,\325)]TJ 0.342 Tc 14.166 0 Td (\325a)Tj 0 Tc 1.12 0 Td [(nd )-92(it )-92(r)18(efers )-92(to )-92(the )-92(text )-92(\336le)]TJ /TT0 1 Tf 11.972 0 Td (/etc/termcap)Tj /T1_1 1 Tf -31.8 -1.2 Td [(and )-164(a )-164(set )-164(of )-164(r)18(outines )-164(used )-164(to )-164(r)18(ead )-164(this )-164(\336le.)-661(The)]TJ /TT0 1 Tf 22.608 0 Td (termcap)Tj /T1_1 1 Tf 4.614 0 Td [(scheme )-164(was )-164(developed )-164(at)]TJ -27.222 -1.2 Td [(Berkeley )-130(to )-130(support )-130(the)]TJ /TT0 1 Tf 11.123 0 Td (vi)Tj /T1_1 1 Tf 1.58 0 Td (editor)Tj 0.6303 Tc 2.574 0 Td (.T)Tj 0 Tc 1.493 0 Td (he)Tj /TT0 1 Tf 1.441 0 Td (termcap)Tj /T1_1 1 Tf 4.58 0 Td [(\336le )-130(contains )-130(descriptions )-130(of )-130(various)]TJ -22.792 -1.2 Td [(terminals: )-339(which )-339(featur)18(es )-339(the )-339(terminal )-339(supports )-339(\(e.g., )-339(how )-339(many )-339(lines )-339(and )-339(r)18(ows,)]TJ 0 -1.2 TD [(whether )-11(the )-11(terminal )-11(support )-11(backspace\) )-11(and )-11(how )-11(to )-11(make )-11(the )-11(terminal )-11(perform )-11(certain)]TJ T* [(operations )-224(\(e.g., )-224(clear )-224(the )-224(scr)18(een, )-224(move )-224(the )-224(cursor )-224(to )-224(a )-224(given )-224(location\).)]TJ -0.092 Tc 33.897 0 Td (Ta)Tj 0 Tc 1.021 0 Td [(king )-224(this)]TJ -34.918 -1.2 Td [(information )-19(out )-19(of )-19(the )-19(compiled )-19(pr)18(ogram )-19(and )-19(placing )-19(it )-19(into )-19(a )-19(text )-19(\336le )-19(that )-19(can )-19(easily )-19(be)]TJ T* (edited allows the)Tj /TT0 1 Tf 7.82 0 Td (vi)Tj /T1_1 1 Tf 1.45 0 Td [(editor to r)8(un on many dif)18(fer)18(ent terminals.)]TJ -7.47 -1.2 Td [(The )-88(r)18(outines )-89(that )-89(support )-89(the)]TJ /TT0 1 Tf 13.612 0 Td (termcap)Tj /T1_1 1 Tf 4.539 0 Td [(\336le )-89(wer)]TJ 0.3386 Tc 3.404 0 Td (ee)Tj 0 Tc 1.297 0 Td [(ventually )-89(extracted )-89(fr)18(om )-89(the)]TJ /TT0 1 Tf 13.149 0 Td (vi)Tj /T1_1 1 Tf -37.8 -1.2 Td [(editor )-91(and )-91(placed )-91(into )-91(a )-91(separate)]TJ /TT0 1 Tf 15.264 0 Td (curses)Tj /T1_1 1 Tf 3.941 0 Td (library)Tj 0.5914 Tc 2.87 0 Td (.M)Tj 0 Tc 1.787 0 Td [(any )-91(featur)18(es )-91(wer)]TJ 0.3414 Tc 7.532 0 Td (ea)Tj 0 Tc 1.32 0 Td [(dded )-91(to )-91(make)]TJ -32.715 -1.2 Td [(this library usable for any pr)18(ogram that wanted to manipulate the scr)18(een.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 1.964 0 Td (termcap)Tj /T1_1 1 Tf 4.491 0 Td [(scheme )-40(was )-40(not )-40(perfect.)-540(As )-40(mor)]TJ 0.2905 Tc 14.52 0 Td (ea)Tj 0 Tc 1.27 0 Td [(nd )-41(mor)]TJ 0.2906 Tc 3.29 0 Td (et)Tj 0 Tc 1.096 0 Td [(erminals )-41(wer)]TJ 0.2906 Tc 5.826 0 Td (ea)Tj 0 Tc 1.27 0 Td [(dded )-41(to)]TJ -35.525 -1.2 Td [(the )-51(data )-51(\336le, )-51(it )-51(took )-51(longer )-51(to )-51(scan )-51(the )-51(\336le, )-51(looking )-51(for )-51(a )-51(speci\336c )-51(terminal.)-551(The )-51(data )-51(\336le)]TJ T* [(also )-355(used )-355(two-character )-355(names )-355(to )-355(identify )-355(the )-355(various )-355(terminal )-355(attributes.)-856(These)]TJ T* [(de\336ciencies )-163(led )-163(to )-163(development )-163(of )-163(the)]TJ /TT0 1 Tf 17.967 0 Td (terminfo)Tj /T1_1 1 Tf 5.213 0 Td [(scheme )-163(and )-163(its )-163(associated)]TJ /TT0 1 Tf 12.221 0 Td (curses)Tj /T1_1 1 Tf -35.4 -1.2 Td (library)Tj 0.6759 Tc 2.87 0 Td (.T)Tj 0 Tc 1.539 0 Td [(he )-176(terminal )-176(descriptions )-176(in)]TJ /TT0 1 Tf 12.799 0 Td (terminfo)Tj /T1_1 1 Tf 5.226 0 Td (ar)Tj 0.4259 Tc 0.877 0 Td (eb)Tj 0 Tc 1.458 0 Td [(asically )-176(compiled )-176(versions )-176(of )-176(a)]TJ -24.768 -1.2 Td [(textual )-223(description )-223(and )-223(can )-223(be )-223(located )-223(faster )-223(at )-223(r)6(untime.)]TJ /TT0 1 Tf 27.073 0 Td (terminfo)Tj /T1_1 1 Tf 5.273 0 Td [(appear)18(ed )-223(with)]TJ -32.346 -1.2 Td [(SVR2 and has been included in all System V r)18(eleases since then.)]TJ 7.999 0 0 7.999 183.5771 298.0642 Tm (Historically)Tj 0.6676 Tc 5.076 0 Td (,S)Tj 0 Tc 1.443 0 Td [(ystem )-418(V\320based )-418(systems )-418(used)]TJ /TT0 1 Tf 14.761 0 Td (terminfo)Tj /T1_1 1 Tf 0.6676 Tc (,a)Tj 0 Tc 6.218 0 Td [(nd )-418(BSD-derived )-418(systems )-418(used)]TJ /TT0 1 Tf -27.497 -1.25 Td (termcap)Tj /T1_1 1 Tf 0.3439 Tc (,b)Tj 0 Tc 5.347 0 Td [(ut )-94(it )-94(is )-94(now )-94(common )-94(for )-94(systems )-94(to )-94(pr)19(ovide )-94(both.)-594(Mac )-94(OS )-94(X, )-94(however)]TJ 0.3438 Tc 32.14 0 Td (,s)Tj 0 Tc 1.018 0 Td (upports)Tj -38.505 -1.25 Td (only)Tj /TT0 1 Tf 2.225 0 Td (terminfo)Tj /T1_1 1 Tf (.)Tj 0.3602 Tc 9.9988 0 0 9.9988 129.5825 257.0691 Tm (Ad)Tj 0 Tc 1.749 0 Td [(escription )-110(of)]TJ /TT0 1 Tf 5.978 0 Td (terminfo)Tj /T1_1 1 Tf 5.16 0 Td [(and )-110(the)]TJ /TT0 1 Tf 3.8 0 Td (curses)Tj /T1_1 1 Tf 3.96 0 Td [(library )-110(is )-110(pr)18(ovided )-110(by )-110(Goodheart)]TJ 15.435 0.04 Td ([)Tj 0.333 -0.04 Td (1991)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td (,)Tj -38.75 -1.2 Td [(but )-95(this )-95(book )-95(is )-95(curr)17(ently )-95(out )-95(of )-95(print.)-596(Strang)]TJ 21.114 0.04 Td ([)Tj 0.333 -0.04 Td (1986)Tj 2 0.04 Td (])Tj 0.678 -0.04 Td [(describes )-95(the )-95(Berkeley )-95(version )-95(of)]TJ -24.125 -1.2 Td (the)Tj /TT0 1 Tf 1.669 0 Td (curses)Tj /T1_1 1 Tf 3.882 0 Td (library)Tj 0.5317 Tc 2.87 0 Td (.S)Tj 0 Tc 1.307 0 Td [(trang, )-32(Mui, )-32(and )-32(O\325Reilly)]TJ 11.159 0.04 Td ([)Tj 0.333 -0.04 Td (1988)Tj 2 0.04 Td (])Tj 0.615 -0.04 Td [(pr)18(ovide )-32(a )-32(description )-32(of)]TJ /TT0 1 Tf 10.966 0 Td (termcap)Tj /T1_1 1 Tf -34.8 -1.2 Td (and)Tj /TT0 1 Tf 1.943 0 Td (terminfo)Tj /T1_1 1 Tf (.)Tj 7.999 0 0 7.999 183.5764 201.0759 Tm (The)Tj /TT0 1 Tf 1.949 0 Td (ncurses)Tj /T1_1 1 Tf 4.475 0 Td (library)Tj 0.2748 Tc 2.87 0 Td (,af)Tj -0.018 Tc 1.633 0 Td (re)Tj 0.2748 Tc 0.856 0 Td (ev)Tj 0 Tc 1.319 0 Td [(ersion )-25(that )-25(is )-25(compatible )-25(with )-25(the )-25(SVR4)]TJ /TT0 1 Tf 17.838 0 Td (curses)Tj /T1_1 1 Tf 3.875 0 Td [(interface, )-25(can )-25(be)]TJ -34.814 -1.25 Td [(found )-453(at)]TJ /TT0 1 Tf 4.907 0 Td (http://invisible-island.net/ncurses/ncurses.html)Tj /T1_1 1 Tf 0.9529 Tc (.I)Tj 0.7029 Tc 30.34 0 Td (tc)Tj 0 Tc 1.473 0 Td [(an )-453(also )-453(be)]TJ -36.719 -1.25 Td (found at)Tj /TT0 1 Tf 4.001 0 Td (http://www.gnu.org/software/ncurses)Tj /T1_1 1 Tf (.)Tj 9.9988 0 0 9.9988 147.5807 160.0808 Tm (Neither)Tj /TT0 1 Tf 3.877 0 Td (termcap)Tj /T1_1 1 Tf 4.694 0 Td (nor)Tj /TT0 1 Tf 2.017 0 Td (terminfo)Tj /T1_1 1 Tf [(,)-494(by)-494(i)-1(tself, )-244(addr)18(esses )-244(the )-244(pr)18(oblems )-244(we\325ve )-244(been)]TJ -12.389 -1.2 Td [(looking )-82(at )-82(in )-82(this )-82(chapter: )-82(changing )-82(the )-82(terminal\325s )-82(mode, )-82(changing )-82(one )-82(of )-82(the )-82(terminal)]TJ T* [(special )-6(characters, )-6(handling )-6(the )-6(window )-6(size, )-6(and )-6(so )-6(on.)-502(What )-5(they )-5(do )-5(pr)18(ovide )-5(is )-5(a )-5(way)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46890 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (710)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Running )-180(the )-180(pr)18(ogram )-180(in )-180(Figur)]TJ 0.4304 Tc 14.087 0 Td (e1)Tj 0 Tc 1.409 0 Td [(8.21, )-180(we )-180(can )-180(see )-180(what )-180(happens )-180(with )-180(these )-180(two)]TJ -17.296 -1.2 Td (terminal modes:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 640.2616 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (Enter raw mode characters, terminate with DELETE)Tj 28.8 -1.189 Td (4)Tj 0.6 -1.189 Td (33)Tj 1.2 -1.189 Td (133)Tj 1.8 -1.189 Td (61)Tj 1.2 -1.189 Td (70)Tj 1.2 -1.189 Td (176)Tj /T1_2 1 Tf -18.8 -1.189 Td (type DELETE)Tj /TT0 1 Tf -16 -1.189 Td (Enter cbreak mode characters, terminate with SIGINT)Tj 0 -1.189 TD (1)Tj /T1_2 1 Tf 16 0 Td [(type Contr)18(ol-A)]TJ /TT0 1 Tf -16 -1.189 Td (10)Tj /T1_2 1 Tf 16 0 Td (type backspace)Tj /TT0 1 Tf -16 -1.189 Td (signal caught)Tj /T1_2 1 Tf 16 0 Td (type interrupt key)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5923 488.5207 Tm [(In )-107(raw )-107(mode, )-107(the )-107(characters )-107(enter)16(ed )-107(wer)]TJ 0.3575 Tc 18.46 0 Td (eC)Tj 0 Tc 1.546 0 Td [(ontr)18(ol)]TJ 2.668 0.09 Td (-)Tj 0.333 -0.09 Td (D)Tj 1.131 0.04 Td (\()Tj 0.333 -0.04 Td (04)Tj 1 0.04 Td (\))Tj 0.691 -0.04 Td [(and )-107(the )-107(special )-107(function )-107(key)]TJ -26.162 -1.2 Td [(F7. )-272(On)-273(the )-22(terminal )-22(being )-22(used, )-22(this )-22(function )-22(key )-22(generated )-22(\336ve )-22(characters:)]TJ /T1_2 1 Tf 33.872 0 Td (ESC)Tj /T1_1 1 Tf 2.106 0.04 Td (\()Tj 0.333 -0.04 Td (033)Tj 1.5 0.04 Td (\))Tj 0.333 -0.04 Td (,)Tj /T1_2 1 Tf 0.522 0 Td ([)Tj /T1_1 1 Tf -38.667 -1.16 Td (\()Tj 0.333 -0.04 Td (0133)Tj 2 0.04 Td (\))Tj 0.333 -0.04 Td (,)Tj /T1_2 1 Tf 0.558 0 Td (1)Tj /T1_1 1 Tf 0.808 0.04 Td (\()Tj 0.333 -0.04 Td (061)Tj 1.5 0.04 Td (\))Tj 0.333 -0.04 Td (,)Tj /T1_2 1 Tf 0.558 0 Td (8)Tj /T1_1 1 Tf 0.808 0.04 Td (\()Tj 0.333 -0.04 Td (070)Tj 1.5 0.04 Td (\))Tj 0.3082 Tc 0.333 -0.04 Td (,a)Tj 0 Tc 1.058 0 Td (nd)Tj /T1_2 1 Tf 1.501 0 Td (\367)Tj /T1_1 1 Tf 0.641 0.04 Td (\()Tj 0.333 -0.04 Td (0176)Tj 2 0.04 Td (\))Tj 0.5582 Tc 0.333 -0.04 Td (.N)Tj 0 Tc 1.639 0 Td [(ote )-58(that )-58(with )-58(the )-58(output )-58(pr)18(ocessing )-58(turned )-58(of)]TJ 0.3083 Tc 20.249 0 Td (fi)Tj 0 Tc 0.932 0 Td (n)Tj -38.418 -1.2 Td [(raw )-75(mode )-75(\()]TJ /TT0 1 Tf 5.232 0 Td (\367OPOST)Tj /T1_1 1 Tf [(\), )-75(we )-75(do )-75(not )-75(get )-75(a )-75(carriage )-75(r)18(eturn )-75(output )-75(after )-75(each )-75(character)]TJ 0.5754 Tc 30.903 0 Td (.A)Tj 0 Tc 1.603 0 Td (lso)Tj -37.739 -1.2 Td [(note )-257(that )-257(special-character )-257(pr)18(ocessing )-257(is )-257(disabled )-257(in )-257(cbr)18(eak )-257(mode )-257(\(so, )-257(for )-257(example,)]TJ 0 -1.2 TD [(Contr)18(ol)]TJ 3.377 0.09 Td (-)Tj 0.333 -0.09 Td [(D, )-141(the )-141(end-of-\336le )-141(character)]TJ 0.391 Tc 12.167 0 Td (,a)Tj 0 Tc 1.141 0 Td [(nd )-141(backspace )-141(ar)18(en\325t )-141(handled )-141(specially\), )-141(wher)18(eas)]TJ -17.018 -1.2 Td (the terminal-generated signals ar)Tj 0.25 Tc 14.569 0 Td (es)Tj 0 Tc 1.153 0 Td [(till pr)18(ocessed.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4165.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 11.9986 0 0 11.9986 93.5888 374.5051 Tm [(18.12 )-220(T)60(erminal )-278(Windo)]TJ 0.556 Tc 10.704 0 Td (wS)Tj 0 Tc 2.001 0 Td [(iz )268(e)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5845 350.5079 Tm [(Most )-104(UNIX )-104(systems )-104(pr)18(ovide )-104(a )-104(way )-104(to )-104(keep )-104(track )-104(of )-104(the )-104(curr)22(ent )-103(terminal )-103(window )-103(size)]TJ T* [(and )-24(to )-24(have )-24(the )-24(kernel )-24(notify )-24(the )-24(for)20(egr)18(ound )-24(pr)18(ocess )-24(gr)18(oup )-24(when )-24(the )-24(size )-24(changes.)-522(The)]TJ -0 -1.2 Td (kernel maintains a)Tj /TT0 1 Tf 8.411 0 Td (winsize)Tj /T1_1 1 Tf 4.45 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ef)Tj 0 Tc 1.062 0 Td (or every terminal and pseudo terminal:)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5824 304.4635 Tm (struct winsize {)Tj 1.2 -1.189 Td [(unsigned short)-1200(ws_row; )-2400(/*)-600(rows, in characters */)]TJ 0 -1.189 TD [(unsigned short)-1200(ws_col; )-2400(/*)-600(columns, in characters */)]TJ T* [(unsigned short)-1200(ws_xpixel; )-600(/*)-600(horizontal size, pixels \(unused\) */)]TJ T* [(unsigned short)-1200(ws_ypixel; )-600(/*)-600(vertical size, pixels \(unused\) */)]TJ -1.2 -1.189 Td (};)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5845 227.6227 Tm [(The r)8(ules for this str)8(uctur)]TJ 0.25 Tc 11.245 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(a)]TJ 0.25 Tc 1.606 0 Td (sf)Tj 0 Tc 1.007 0 Td (ollows:)Tj 0.883 Tc -13.287 -2.04 Td (\245W)Tj 0.2933 Tc 2.397 0 Td (ec)Tj 0 Tc 1.216 0 Td [(an )-43(fetch )-43(the )-43(curr)18(ent )-43(value )-43(of )-43(this )-43(str)6(uctur)]TJ 0.2933 Tc 18.322 0 Td (eu)Tj 0 Tc 1.375 0 Td [(sing )-43(an)]TJ /TT0 1 Tf 3.522 0 Td (ioctl)Tj /T1_1 1 Tf 3.293 0 Td [(\(Section )-43(3.15\) )-43(of)]TJ /TT0 1 Tf -28.637 -1.2 Td (TIOCGWINSZ)Tj /T1_1 1 Tf (.)Tj 0.883 Tc -1.489 -1.6 Td (\245W)Tj 0.4588 Tc 2.397 0 Td (ec)Tj 0 Tc 1.382 0 Td [(an )-209(stor)]TJ 0.4588 Tc 3.214 0 Td (ean)Tj 0 Tc 2.479 0 Td [(ew )-209(value )-209(of )-209(this )-209(str)8(uctur)18(e)-459(in)-459(the )-209(kernel )-209(using )-209(an)]TJ /TT0 1 Tf 23.391 0 Td (ioctl)Tj /T1_1 1 Tf 3.459 0 Td (of)Tj /TT0 1 Tf -34.832 -1.2 Td (TIOCSWINSZ)Tj /T1_1 1 Tf 0.712 Tc (.I)Tj 0.462 Tc 7.299 0 Td (ft)Tj 0 Tc 1.121 0 Td [(his )-212(new )-212(value )-212(dif)18(fers )-212(fr)18(om )-212(the )-212(curr)18(ent )-212(value )-212(stor)18(ed )-212(in )-212(the)]TJ -8.42 -1.2 Td [(kernel, )-67(a)]TJ /TT0 1 Tf 4.167 0 Td (SIGWINCH)Tj /T1_1 1 Tf 5.117 0 Td [(signal )-67(is )-67(sent )-67(to )-67(the )-67(for)17(egr)18(ound )-67(pr)18(ocess )-67(gr)17(oup. )-317(\(Note)-318(fr)18(om)]TJ -9.284 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td [(0.1 that the default action for this signal is to be ignor)18(ed.\))]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46891 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.1)]TJ 28.7243 Tc 5.388 0 Td (1N)Tj 0 Tc 30.055 0 Td [(oncanonical )-250(Mode)]TJ /T1_1 1 Tf 10.39 0 Td (703)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Whenever )-111(a )-111(pr)18(ogram )-111(that )-111(calls)]TJ /TT0 1 Tf 14.409 0 Td (getpass)Tj /T1_0 1 Tf 4.561 0 Td [(is )-111(done )-111(with )-111(the )-111(cleartext )-111(passwor)18(d, )-111(the)]TJ -20.77 -1.2 Td [(pr)18(ogram )-6(should )-6(zer)17(o)-256(it)-256(o)-1(ut )-6(in )-6(memory)]TJ 0.2564 Tc 16.951 0 Td (,j)Tj 0 Tc 0.74 0 Td [(ust )-6(to )-6(be )-6(safe.)-507(If )-6(the )-6(pr)18(ogram )-6(wer)17(e)-256(to)-256(g)-1(enerate )-6(a)]TJ /TT0 1 Tf -17.692 -1.2 Td (core)Tj /T1_0 1 Tf 2.688 0 Td [(\336le )-37(that )-37(others )-37(might )-37(be )-37(able )-37(to )-37(r)15(ead )-38(or )-38(if )-38(some )-38(other )-38(pr)18(ocess )-38(wer)]TJ 0.2876 Tc 29.141 0 Td (es)Tj 0 Tc 1.191 0 Td [(omehow )-38(able)]TJ -33.019 -1.2 Td [(to )-33(r)18(ead )-33(our )-33(memory)]TJ 0.2827 Tc 8.862 0 Td (,t)Tj 0 Tc 0.859 0 Td [(hey )-33(might )-33(be )-33(able )-33(to )-33(r)18(ead )-33(the )-33(cleartext )-33(passwor)21(d. )-283(\(By)]TJ -0.037 Tc 24.235 0 Td (\324\324)Tj 0 Tc 0.519 0 Td [(cleartext,\325)37(\325)]TJ -34.475 -1.2 Td [(we )-96(mean )-96(the )-96(passwor)]TJ 0.3465 Tc 9.889 0 Td (dt)Tj 0 Tc 1.284 0 Td [(hat )-96(we )-96(type )-96(at )-96(the )-96(pr)16(ompt )-97(that )-97(is )-97(printed )-97(by)]TJ /TT0 1 Tf 20.538 0 Td (getpass)Tj /T1_0 1 Tf 0.5966 Tc (.M)Tj 0 Tc 5.993 0 Td (ost)Tj -37.704 -1.2 Td [(UNIX )-395(system )-395(pr)18(ograms )-395(then )-395(modify )-395(this )-395(cleartext )-395(passwor)15(d, )-395(turning )-395(it )-395(into )-395(an)]TJ -0.037 Tc 0 -1.2 TD (\324\324)Tj 0 Tc 0.519 0 Td (encrypted\325)Tj 0.457 Tc 4.714 0 Td (\325p)Tj 0 Tc 1.336 0 Td [(asswor)18(d. )-457(The)]TJ /TT0 1 Tf 6.804 0 Td (pw_passwd)Tj /T1_0 1 Tf 5.857 0 Td [(\336eld )-207(in )-207(the )-207(passwor)]TJ 0.457 Tc 9.323 0 Td (d\336)Tj 0 Tc 1.673 0 Td [(le )-207(\(Section )-207(6.2\), )-207(for)]TJ -30.226 -1.2 Td [(example, contains the encrypted passwor)18(d, not the cleartext passwor)18(d.\))]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5850.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9986 0 0 11.9986 93.5888 530.9363 Tm [(18.11 )-220(Noncanonical)-556(Mode)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5845 506.9392 Tm [(Noncanonical )-41(mode )-41(is )-41(speci\336ed )-41(by )-41(turning )-41(of)]TJ 0.2914 Tc 20.36 0 Td (ft)Tj 0 Tc 0.95 0 Td (he)Tj /TT0 1 Tf 1.352 0 Td (ICANON)Tj /T1_0 1 Tf 3.891 0 Td [(\337ag )-41(in )-41(the)]TJ /TT0 1 Tf 4.798 0 Td (c_lflag)Tj /T1_0 1 Tf 4.491 0 Td [(\336eld )-41(of)]TJ -35.844 -1.2 Td (the)Tj /TT0 1 Tf 1.811 0 Td (termios)Tj /T1_0 1 Tf 4.624 0 Td [(str)8(uctur)18(e. )-423(In)-424(noncanonical )-173(mode, )-173(the )-173(input )-173(data )-173(is )-173(not )-173(assembled )-173(into)]TJ -6.434 -1.2 Td [(lines. )-358(The)-358(following )-108(special )-108(characters )-108(\(Section )-108(18.3\) )-108(ar)]TJ 0.358 Tc 25.022 0 Td (en)Tj 0 Tc 1.419 0 Td [(ot )-108(pr)18(ocessed: )-108(ERASE, )-108(KILL,)]TJ -26.441 -1.2 Td (EOF)Tj 0.25 Tc 1.861 0 Td (,N)Tj 0 Tc 1.331 0 Td (L, EOL, EOL2, CR, REPRINT)Tj 0.25 Tc 12.762 0 Td (,S)Tj -0.074 Tc 1.025 0 Td (TAT)Tj 0 Tc 1.856 0 Td (US, and WERASE.)Tj -17.035 -1.2 Td [(As )-142(we )-142(said, )-142(understanding )-142(canonical )-142(mode )-142(is )-142(easy: )-142(the )-142(system )-142(r)18(eturns )-142(up )-142(to )-142(one)]TJ -1.8 -1.2 Td [(line )-29(at )-29(a )-29(time.)-529(But )-29(with )-29(noncanonical )-29(mode, )-29(how )-29(does )-29(the )-29(system )-29(know )-29(when )-29(to )-29(r)14(eturn)]TJ T* [(data )-189(to )-189(us?)-689(If )-189(it )-189(r)18(eturned )-189(one )-189(byte )-189(at )-189(a )-189(time, )-189(over)13(head )-189(would )-189(be )-189(excessive.)-691(\(Recall)]TJ T* (Figur)Tj 0.3919 Tc 2.383 0 Td (e3)Tj 0 Tc 1.371 0 Td [(.6, )-142(which )-142(showed )-142(the )-142(over)18(head )-142(in )-142(r)18(eading )-142(one )-142(byte )-142(at )-142(a )-142(time.)-641(Each )-142(time )-142(we)]TJ -3.754 -1.2 Td [(doubled )-17(the )-17(amount )-17(of )-17(data )-17(r)18(eturned, )-17(we )-17(halved )-17(the )-17(system )-17(call )-17(over)13(head.\) )-267(The)-268(system)]TJ -0 -1.2 Td [(can\325t )-17(always )-17(r)18(eturn )-17(multiple )-17(bytes )-17(at )-17(a )-17(time, )-17(since )-17(sometimes )-17(we )-17(don\325t )-17(know )-17(how )-17(much)]TJ T* [(data to r)18(ead until we start r)18(eading it.)]TJ 1.8 -1.2 Td [(The )-91(solution )-91(is )-91(to )-91(tell )-91(the )-91(system )-91(to )-91(r)20(eturn )-91(when )-91(either )-91(a )-91(speci\336ed )-91(amount )-91(of )-91(data)]TJ -1.8 -1.2 Td [(has )-167(been )-167(r)18(ead )-167(or )-167(after )-167(a )-167(given )-167(amount )-167(of )-167(time )-167(has )-167(passed.)-667(This )-167(technique )-167(uses )-167(two)]TJ T* [(variables )-228(in )-228(the)]TJ /TT0 1 Tf 7.694 0 Td (c_cc)Tj /T1_0 1 Tf 2.879 0 Td [(array )-228(in )-228(the)]TJ /TT0 1 Tf 6.041 0 Td (termios)Tj /T1_0 1 Tf 4.679 0 Td [(str)8(uctur)18(e: )-228(MIN )-228(and )-228(TIME.)-728(These )-228(two)]TJ -21.292 -1.2 Td (elements of the array ar)Tj 0.25 Tc 10.432 0 Td (ei)Tj 0 Tc 1.02 0 Td (ndexed by the names)Tj /TT0 1 Tf 9.642 0 Td (VMIN)Tj /T1_0 1 Tf 2.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (VTIME)Tj /T1_0 1 Tf (.)Tj -23.887 -1.2 Td [(MIN )-18(speci\336es )-18(the )-18(minimum )-18(number )-18(of )-18(bytes )-18(befor)]TJ 0.2681 Tc 22.541 0 Td (ea)Tj /TT0 1 Tf 0 Tc (read)Tj /T1_0 1 Tf -0.018 Tc 4.183 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns. )-268(TIME)-268(speci\336es)]TJ -29.38 -1.2 Td [(the number of tenths of a second to wait for data to arrive.)-500(Ther)]TJ 0.25 Tc 28.277 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(f)]TJ 0 Tc 1.439 0 Td (our cases.)Tj -29.145 -2.56 Td [(Case A:)-500(MIN > 0, TIME > 0)]TJ 1.8 -1.68 Td [(TIME )-210(speci\336es )-210(an )-210(interbyte )-210(timer )-210(that )-210(is )-210(started )-210(only )-210(when )-210(the )-210(\336rst )-210(byte )-210(is)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(ceived. )-277(If)-277(MIN )-27(bytes )-27(ar)]TJ 0.2772 Tc 10.477 0 Td (er)Tj 0 Tc 1.133 0 Td [(eceived )-27(befor)]TJ 0.2773 Tc 5.913 0 Td (et)Tj 0 Tc 1.082 0 Td [(he )-27(timer )-27(expir)17(es,)]TJ /TT0 1 Tf 7.684 0 Td (read)Tj /T1_0 1 Tf -0.018 Tc 2.677 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-27(MIN)]TJ -30.679 -1.2 Td [(bytes. )-453(If)-454(the )-203(timer )-203(expir)18(es )-203(befor)]TJ 0.4534 Tc 14.991 0 Td (eM)Tj 0 Tc 1.878 0 Td [(IN )-203(bytes )-203(ar)]TJ 0.4534 Tc 5.29 0 Td (er)Tj 0 Tc 1.309 0 Td (eceived,)Tj /TT0 1 Tf 4.051 0 Td (read)Tj /T1_0 1 Tf -0.018 Tc 2.853 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-203(the)]TJ -31.23 -1.2 Td [(bytes )-105(r)18(eceived. )-355(\(At)-356(least )-105(one )-105(byte )-105(is )-105(r)16(eturned )-105(if )-105(the )-105(timer )-105(expir)18(es, )-105(because )-105(the)]TJ -0 -1.2 Td [(timer )-26(is )-26(not )-26(started )-26(until )-26(the )-26(\336rst )-26(byte )-26(is )-26(r)18(eceived.\) )-276(In)-276(this )-26(case, )-26(the )-26(caller )-26(blocks)]TJ T* [(until )-54(the )-54(\336rst )-54(byte )-54(is )-54(r)20(eceived. )-304(If)-303(data )-54(is )-54(alr)18(eady )-54(available )-54(when)]TJ /TT0 1 Tf 28.811 0 Td (read)Tj /T1_0 1 Tf 2.704 0 Td [(is )-54(called,)]TJ -31.515 -1.2 Td [(it is as if the data had been r)18(eceived immediately after the)]TJ /TT0 1 Tf 25.725 0 Td (read)Tj /T1_0 1 Tf (.)Tj -27.525 -2.56 Td [(Case B:)-500(MIN > 0, TIME == 0)]TJ 1.8 -1.68 Td (The)Tj /TT0 1 Tf 1.936 0 Td (read)Tj /T1_0 1 Tf 2.663 0 Td [(does )-12(not )-12(r)18(eturn )-12(until )-12(MIN )-12(bytes )-12(have )-12(been )-12(r)14(eceived. )-262(This)-263(can )-12(cause )-12(a)]TJ /TT0 1 Tf -4.599 -1.2 Td (read)Tj /T1_0 1 Tf 2.65 0 Td [(to block inde\336nitely)111(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46892 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (700)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Running the pr)18(ogram fr)18(om Figur)]TJ 0.25 Tc 14.631 0 Td (e1)Tj 0 Tc 1.229 0 Td (8.16 gives us)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 652.2609 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out < /dev/console 2> /dev/null)Tj /TT0 1 Tf -1.2 -1.189 Td (fd 0: /dev/console)Tj 0 -1.189 TD (fd 1: /dev/ttys001)Tj T* (fd 2: not a tty)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 6142.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 11.9986 0 0 11.9986 93.5888 578.1306 Tm [(18.10 )-220(Canonical)-556(Mode)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5845 554.1335 Tm [(Canonical )-49(mode )-49(is )-49(simple: )-49(we )-49(issue )-49(a )-49(r)18(ead, )-49(and )-49(the )-49(terminal )-49(driver )-49(r)18(eturns )-49(when )-49(a )-49(line)]TJ 0 -1.2 TD [(has been enter)18(ed. )-250(Several)-250(conditions cause the r)18(ead to r)18(eturn.)]TJ 0.883 Tc 1.8 -2.04 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-23(r)18(ead )-23(r)18(eturns )-23(when )-23(the )-23(r)18(equested )-23(number )-23(of )-23(bytes )-23(have )-23(been )-23(r)14(ead. )-273(W)]TJ 0.2733 Tc 32.003 0 Td (ed)Tj 0 Tc 1.363 0 Td (on\325t)Tj -33.979 -1.2 Td [(have )-29(to )-29(r)18(ead )-29(a )-29(complete )-29(line.)-529(If )-29(we )-29(r)18(ead )-29(a )-29(partial )-29(line, )-29(no )-29(information )-29(is )-29(lost; )-29(the)]TJ T* [(next r)18(ead starts wher)]TJ 0.25 Tc 9.287 0 Td (et)Tj 0 Tc 1.055 0 Td [(he pr)18(evious r)18(ead stopped.)]TJ 0.883 Tc -11.831 -1.84 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-62(r)18(ead )-62(r)18(eturns )-62(when )-62(a )-62(line )-62(delimiter )-62(is )-62(encounter)20(ed. )-312(Recall)-311(fr)18(om )-62(Section )-62(18.3)]TJ -0.613 -1.2 Td [(that )-132(the )-132(following )-132(characters )-132(ar)]TJ 0.3824 Tc 14.287 0 Td (ei)Tj 0 Tc 1.152 0 Td [(nterpr)18(eted )-132(as )-132(end )-132(of )-132(line )-132(in )-132(canonical )-132(mode:)]TJ -15.439 -1.2 Td [(NL, )-30(EOL, )-30(EOL2, )-30(and )-30(EOF)]TJ 0.5301 Tc 11.382 0 Td (.A)Tj 0 Tc 1.558 0 Td [(lso, )-30(r)18(ecall )-30(fr)18(om )-30(Section )-30(18.5 )-30(that )-30(if)]TJ /TT0 1 Tf 15.294 0 Td (ICRNL)Tj /T1_1 1 Tf 3.28 0 Td [(is )-30(set )-30(and)]TJ -31.514 -1.2 Td (if)Tj /TT0 1 Tf 0.917 0 Td (IGNCR)Tj /T1_1 1 Tf 3.293 0 Td [(is )-43(not )-43(set, )-43(then )-43(the )-43(CR )-43(character )-43(also )-43(terminates )-43(a )-43(line, )-43(since )-43(it )-43(acts )-43(just)]TJ -4.209 -1.2 Td [(like the NL character)74(.)]TJ 0 -1.8 TD [(Of )-23(these )-23(\336ve )-23(line )-23(delimiters, )-23(one)]TJ 14.664 0.04 Td (\()Tj 0.333 -0.04 Td (EOF)Tj 1.953 0.04 Td (\))Tj 0.606 -0.04 Td [(is )-23(discar)18(ded )-23(by )-23(the )-23(terminal )-23(driver )-23(when)]TJ -17.556 -1.2 Td [(it\325s )-105(pr)18(ocessed. )-355(The)-354(other )-105(four )-105(ar)]TJ 0.3546 Tc 14.733 0 Td (er)Tj 0 Tc 1.211 0 Td [(eturned )-105(to )-105(the )-105(caller )-105(as )-105(the )-105(last )-105(character )-105(of)]TJ -15.944 -1.2 Td (the line.)Tj 0.883 Tc -1.489 -1.84 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-16(r)18(ead )-16(also )-16(r)17(eturns )-16(if )-16(a )-16(signal )-16(is )-16(caught )-16(and )-16(if )-16(the )-16(function )-16(is )-16(not )-16(automatically)]TJ -0.018 Tc -0.613 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (started \(Section 10.5\).)Tj /TT2 1 Tf -7.745 -3.12 Td [(Example )195(\321)]TJ /TT1 1 Tf 5.28 0 Td (getpass)Tj /TT2 1 Tf 4.478 0 Td (Function)Tj /T1_1 1 Tf -0.092 Tc -6.158 -2.4 Td [(We )-201(n)]TJ 0 Tc 2.236 0 Td [(ow )-17(examine )-17(the )-17(function)]TJ /TT0 1 Tf 11.272 0 Td (getpass)Tj /T1_1 1 Tf 0.2669 Tc (,w)Tj 0 Tc 5.551 0 Td [(hich )-17(r)18(eads )-17(a )-17(passwor)]TJ 0.2669 Tc 9.297 0 Td (do)Tj 0.267 Tc 1.424 0 Td (fs)Tj 0 Tc 1.024 0 Td [(ome )-17(type )-17(fr)18(om )-17(the)]TJ -30.803 -1.2 Td [(user )-51(at )-51(a )-51(terminal.)-551(This )-51(function )-51(is )-51(called )-51(by )-51(the)]TJ /TT0 1 Tf 21.924 0 Td (login)Tj /T1_1 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.634 -0.04 Td (and)Tj /TT0 1 Tf 1.994 0 Td (crypt)Tj /T1_1 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.634 -0.04 Td [(pr)18(ograms. )-300(T)92(o)]TJ -0.018 Tc -32.851 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ad )-81(the )-81(passwor)18(d, )-81(the )-81(function )-81(must )-81(turn )-81(of)]TJ 0.3315 Tc 19.483 0 Td (fe)Tj 0 Tc 1.144 0 Td [(choing, )-82(but )-82(it )-82(can )-82(leave )-82(the )-82(terminal )-82(in)]TJ -21.482 -1.2 Td [(canonical )-420(mode, )-420(as )-420(whatever )-420(we )-420(type )-420(as )-420(the )-420(passwor)]TJ 0.6701 Tc 26.686 0 Td (df)Tj 0 Tc 1.614 0 Td [(orms )-420(a )-420(complete )-420(line.)]TJ -28.3 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (8.17 shows a typical implementation on a UNIX system.)Tj -1.812 -1.2 Td (Ther)Tj 0.25 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(s)]TJ 0 Tc 1.53 0 Td (everal points to consider in this example.)Tj 0.883 Tc -4.81 -2.04 Td (\245I)Tj 0 Tc 1.826 0 Td [(nstead )-375(of )-375(har)18(d-wiring)]TJ /TT0 1 Tf 11.027 0 Td (/dev/tty)Tj /T1_1 1 Tf 5.425 0 Td [(into )-375(the )-375(pr)18(ogram, )-375(we )-375(call )-375(the )-375(function)]TJ /TT0 1 Tf -16.789 -1.2 Td (ctermid)Tj /T1_1 1 Tf 4.45 0 Td [(to open the contr)18(olling terminal.)]TJ 0.883 Tc -5.939 -1.6 Td (\245W)Tj 0.4186 Tc 2.397 0 Td (er)Tj 0 Tc 1.275 0 Td [(ead )-169(and )-169(write )-169(only )-169(to )-169(the )-169(contr)18(olling )-169(terminal )-169(and )-169(r)22(eturn )-168(an )-168(err)18(or )-168(if )-168(we)]TJ -2.183 -1.2 Td [(can\325t )-107(open )-107(this )-107(device )-107(for )-107(r)18(eading )-107(and )-107(writing.)-611(Ther)]TJ 0.3575 Tc 23.879 0 Td (ea)Tj -0.018 Tc 1.336 0 Td [(re )-144(o)]TJ 0 Tc 1.759 0 Td [(ther )-107(conventions )-107(to)]TJ -26.975 -1.2 Td [(use. )-345(The)-345(version )-95(of)]TJ /TT0 1 Tf 9.221 0 Td (getpass)Tj /T1_1 1 Tf 4.545 0 Td [(in )-95(the )-95(GNU )-95(C )-95(library )-95(r)18(eads )-95(fr)18(om )-95(standar)]TJ 0.3449 Tc 18.586 0 Td (di)Tj 0 Tc 1.247 0 Td (nput)Tj -33.599 -1.2 Td [(and )-246(writes )-246(to )-246(standar)]TJ 0.4958 Tc 10.121 0 Td (de)Tj 0 Tc 1.586 0 Td [(rr)18(or )-246(if )-246(the )-246(contr)19(olling )-246(terminal )-246(can\325t )-246(be )-246(opened )-246(for)]TJ -0.018 Tc -11.707 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ading )-190(and )-190(writing.)-690(The )-190(Solaris )-190(version )-190(fails )-190(if )-190(it )-190(can\325t )-190(open )-190(the )-190(contr)16(olling)]TJ -0.856 -1.2 Td (terminal.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46893 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (694)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (The)Tj /TT0 1 Tf 2.263 0 Td (tcsendbreak)Tj /T1_1 1 Tf 7.189 0 Td [(function )-339(transmits )-339(a )-339(continuous )-339(str)17(eam )-339(of )-339(zer)]TJ 0.5894 Tc 22.065 0 Td (ob)Tj 0 Tc 1.688 0 Td [(its )-339(for )-339(a)]TJ -35.006 -1.2 Td [(speci\336ed )-157(duration.)-657(If )-157(the)]TJ /T1_2 1 Tf 11.973 0 Td (duration)Tj /T1_1 1 Tf 3.907 0 Td [(ar)18(gument )-157(is )-157(0, )-157(the )-157(transmission )-157(lasts )-157(between )-157(0.25)]TJ -15.879 -1.2 Td [(second )-123(and )-123(0.5 )-123(second.)-623(POSIX.1 )-123(speci\336es )-123(that )-123(if)]TJ /T1_2 1 Tf 22.375 0 Td (duration)Tj /T1_1 1 Tf 3.873 0 Td [(is )-123(nonzer)18(o, )-123(the )-123(transmission)]TJ -26.248 -1.2 Td (time is implementation dependent.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5937 594.5643 Tm [(18.9 )-776(T)60(erminal )-278(Identi\336cation)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5915 570.5658 Tm (Historically)Tj 0.3207 Tc 5.076 0 Td (,t)Tj 0 Tc 0.897 0 Td [(he )-71(name )-71(of )-71(the )-71(contr)18(olling )-71(terminal )-71(in )-71(most )-71(versions )-71(of )-71(the )-71(UNIX )-71(System)]TJ -5.973 -1.2 Td [(has )-3(been)]TJ /TT0 1 Tf 4.104 0 Td (/dev/tty)Tj /T1_1 1 Tf 0.5026 Tc (.P)Tj 0 Tc 6.157 0 Td [(OSIX.1 )-3(pr)18(ovides )-3(a )-3(r)8(untime )-3(function )-3(that )-3(we )-3(can )-3(call )-3(to )-3(determine)]TJ -10.261 -1.2 Td [(the name of the contr)18(olling terminal.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5907 527.4683 Tm (#include )Tj 0 -2.14 TD (char *ctermid\(char *)Tj /T1_2 1 Tf (ptr)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 18.112 -2.14 Td [(Returns: pointer to name of contr)18(olling terminal)]TJ 2.02 -1.189 Td [(on success, pointer to empty string on err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4738.25 cm 0 0 m 0 627 l 3900 627 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 457.8251 Tm (If)Tj /T1_2 1 Tf 0.935 0 Td (ptr)Tj /T1_1 1 Tf 1.487 0 Td [(is )-15(non-null, )-15(it )-15(is )-15(assumed )-15(to )-15(point )-15(to )-15(an )-15(array )-15(of )-15(at )-15(least)]TJ /TT0 1 Tf 24.716 0 Td (L_ctermid)Tj /T1_1 1 Tf 5.665 0 Td [(bytes, )-15(and )-15(the)]TJ -32.803 -1.2 Td [(name )-198(of )-198(the )-198(contr)18(olling )-198(terminal )-198(of )-198(the )-198(pr)18(ocess )-198(is )-198(stor)18(ed )-198(in )-198(the )-198(array)]TJ 0.6981 Tc 32.2 0 Td (.T)Tj 0 Tc 1.561 0 Td [(he )-198(constant)]TJ /TT0 1 Tf -33.761 -1.2 Td (L_ctermid)Tj /T1_1 1 Tf 5.829 0 Td [(is )-179(de\336ned )-179(in)]TJ /TT0 1 Tf 6.243 0 Td ()Tj /T1_1 1 Tf 0.6792 Tc (.I)Tj 0 Tc 6.666 0 Td (f)Tj /T1_2 1 Tf 0.762 0 Td (ptr)Tj /T1_1 1 Tf 1.651 0 Td [(is )-179(a )-179(null )-179(pointer)]TJ 0.4292 Tc 7.416 0 Td (,t)Tj 0 Tc 1.005 0 Td [(he )-179(function )-179(allocates)]TJ -0.018 Tc -29.573 -1.2 Td (ro)Tj 0 Tc 0.923 0 Td [(om )-179(for )-179(the )-179(array )-179(\(usually )-179(as )-179(a )-179(static )-179(variable\).)-683(Again, )-179(the )-179(name )-179(of )-179(the )-179(contr)16(olling)]TJ -0.923 -1.2 Td [(terminal of the pr)18(ocess is stor)18(ed in the array)111(.)]TJ 1.8 -1.2 Td [(In )-240(both )-240(cases, )-240(the )-240(starting )-240(addr)19(ess )-240(of )-240(the )-240(array )-240(is )-240(r)18(eturned )-240(as )-240(the )-240(value )-240(of )-240(the)]TJ -1.8 -1.2 Td [(function. )-500(Since)-501(most )-250(UNIX )-250(systems )-250(use)]TJ /TT0 1 Tf 19.344 0 Td (/dev/tty)Tj /T1_1 1 Tf 5.3 0 Td [(as )-250(the )-250(name )-250(of )-250(the )-250(contr)16(olling)]TJ -24.645 -1.2 Td (terminal, this function is intended to aid portability to other operatin\ g systems.)Tj 7.999 0 0 7.999 183.5774 353.8375 Tm [(All four platforms described in this text r)18(eturn the string)]TJ /TT0 1 Tf 25.189 0 Td (/dev/tty)Tj /T1_1 1 Tf 5.05 0 Td (when we call)Tj /TT0 1 Tf 6.066 0 Td (ctermid)Tj /T1_1 1 Tf (.)Tj /TT1 1 Tf 9.9988 0 0 9.9988 93.5883 321.4414 Tm [(Example )195(\321)]TJ /TT2 1 Tf 5.28 0 Td (ctermid)Tj /TT1 1 Tf 4.478 0 Td (Function)Tj /T1_1 1 Tf -6.158 -2.4 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (8.12 shows an implementation of the POSIX.1)Tj /TT0 1 Tf 20.387 0 Td (ctermid)Tj /T1_1 1 Tf 4.45 0 Td (function.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2903.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 280.7285 Tm [(#include )-1800()]TJ 0 -1.189 TD [(#include )-1800()]TJ 0 -2.14 TD (static char ctermid_name[L_ctermid];)Tj 0 -2.14 TD (char *)Tj 0 -1.189 TD (ctermid\(char *str\))Tj T* ({)Tj 2.4 -1.189 Td (if \(str == NULL\))Tj 2.4 -1.189 Td (str = ctermid_name;)Tj -2.4 -1.189 Td [(return\(strcpy\(str, "/dev/tty"\)\);)-2400(/* strcpy\(\) returns str */)]TJ -2.4 -1.189 Td (})Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1625.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 217.5238 146.5228 Tm (Figure 18.12)Tj /T1_1 1 Tf 6.195 0 Td (Implementation of POSIX.1)Tj /TT0 1 Tf 12.404 0 Td (ctermid)Tj /T1_1 1 Tf 4.45 0 Td (function)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46894 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.8)]TJ 33.139 0 Td [(Line )-250(Contr)18(ol )-250(Functions)]TJ /T1_1 1 Tf 12.694 0 Td (693)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-128(four )-128(baud )-128(rate )-128(functions )-128(exist )-128(to )-128(insulate )-128(applications )-128(fr)18(om )-128(dif)17(fer)18(ences )-128(in )-128(the)]TJ -1.8 -1.2 Td [(way )-127(that )-127(implementations )-127(r)17(epr)18(esent )-127(baud )-127(rates )-127(in )-127(the)]TJ /TT0 1 Tf 24.902 0 Td (termios)Tj /T1_0 1 Tf 4.577 0 Td [(str)8(uctur)18(e. )-377(Linux)-378(and)]TJ -29.48 -1.2 Td [(BSD-derived )-160(platforms )-160(tend )-160(to )-160(stor)]TJ 0.4104 Tc 16.158 0 Td (eb)Tj 0 Tc 1.442 0 Td [(aud )-160(rates )-160(as )-160(numeric )-160(values )-160(equal )-160(to )-160(the )-160(rates)]TJ -17.6 -1.2 Td [(\(i.e., )-9(9,600 )-9(baud )-9(is )-9(stor)19(ed )-9(as )-9(the )-9(value )-9(9,600\), )-9(wher)18(eas )-9(System )-9(V\320derived )-9(platforms )-9(\(such)]TJ 0 -1.2 TD [(as )-25(Solaris\) )-25(tend )-25(to )-25(encode )-25(the )-25(baud )-25(rate )-25(in )-25(a )-25(bitmask.)-525(The )-25(speed )-25(values )-25(we )-25(get )-25(fr)18(om )-25(the)]TJ /TT0 1 Tf T* (cfget)Tj /T1_0 1 Tf 3.695 0 Td [(functions )-445(and )-445(pass )-445(to )-445(the)]TJ /TT0 1 Tf 13.509 0 Td (cfset)Tj /T1_0 1 Tf 3.696 0 Td [(functions )-445(ar)]TJ 0.6955 Tc 5.704 0 Td (eu)Tj 0 Tc 1.778 0 Td [(ntranslated )-445(fr)18(om )-445(their)]TJ -0.018 Tc -28.381 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(pr)18(esentation as they ar)]TJ 0.25 Tc 10.007 0 Td (es)Tj 0 Tc 1.153 0 Td [(tor)18(ed in the)]TJ /TT0 1 Tf 5.349 0 Td (termios)Tj /T1_0 1 Tf 4.45 0 Td [(str)8(uctur)18(e.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5941 560.9663 Tm [(18.8 )-776(Line)-556(Contr)20(ol )-278(Functions)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5919 536.9678 Tm [(The )-141(following )-141(four )-141(functions )-141(pr)18(ovide )-141(line )-141(contr)20(ol )-140(capability )-140(for )-140(terminal )-140(devices.)-642(All)]TJ T* [(four )-61(r)18(equir)]TJ 0.3106 Tc 4.875 0 Td (et)Tj 0 Tc 1.116 0 Td (hat)Tj /T1_2 1 Tf 1.719 0 Td (fd)Tj /T1_0 1 Tf -0.018 Tc 1.089 0 Td (re)Tj 0 Tc 0.856 0 Td [(fer )-61(to )-61(a )-61(terminal )-61(device; )-61(otherwise,)]TJ /TT2 1 Tf 15.915 0 Td (!)Tj /T1_0 1 Tf [(1)-311(is)-311(r)19(eturned )-61(with)]TJ /TT0 1 Tf 8.892 0 Td (errno)Tj /T1_0 1 Tf 3.311 0 Td (set)Tj -37.771 -1.2 Td (to)Tj /TT0 1 Tf 1.122 0 Td (ENOTTY)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 493.8704 Tm (#include )Tj 0 -2.021 TD (int tcdrain\(int)Tj /T1_2 1 Tf 9.6 0 Td (fd)Tj /TT0 1 Tf (\);)Tj -9.6 -2.021 Td (int tcflow\(int)Tj /T1_2 1 Tf 9 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (action)Tj /TT0 1 Tf (\);)Tj -13.378 -2.021 Td (int tcflush\(int)Tj /T1_2 1 Tf 9.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (queue)Tj /TT0 1 Tf (\);)Tj -13.978 -2.021 Td (int tcsendbreak\(int)Tj /T1_2 1 Tf 12 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (duration)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 7.451 -2.021 Td [(All four r)18(eturn: 0 if OK,)]TJ /TT2 1 Tf 10.635 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3984.25 cm 0 0 m 0 1045 l 3900 1045 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 382.5041 Tm (The)Tj /TT0 1 Tf 1.954 0 Td (tcdrain)Tj /T1_0 1 Tf 4.48 0 Td [(function )-30(waits )-30(for )-30(all )-30(output )-30(to )-30(be )-30(transmitted.)-527(The)]TJ /TT0 1 Tf 23.18 0 Td (tcflow)Tj /T1_0 1 Tf 3.879 0 Td (function)Tj -35.293 -1.2 Td [(gives )-46(us )-46(contr)18(ol )-46(over )-46(both )-46(input )-46(and )-46(output )-46(\337ow )-46(contr)19(ol. )-296(The)]TJ /T1_2 1 Tf 28.076 0 Td (action)Tj /T1_0 1 Tf 2.758 0 Td [(ar)18(gument )-46(must )-46(be)]TJ -30.834 -1.2 Td (one of the following four values:)Tj /TT0 1 Tf 1.8 -2.04 Td (TCOOFF)Tj /T1_0 1 Tf 4.483 0 Td (Output is suspended.)Tj /TT0 1 Tf -4.483 -1.96 Td (TCOON)Tj /T1_0 1 Tf 4.483 0 Td [(Output that was pr)18(eviously suspended is r)18(estarted.)]TJ /TT0 1 Tf -4.483 -1.96 Td (TCIOFF)Tj /T1_0 1 Tf 4.483 0 Td [(The )-67(system )-67(transmits )-67(a )-67(ST)18(OP )-67(character)]TJ 0.3175 Tc 17.506 0 Td (,w)Tj 0 Tc 1.401 0 Td [(hich )-67(should )-67(cause )-67(the )-67(terminal)]TJ -18.907 -1.2 Td (device to stop sending data.)Tj /TT0 1 Tf -4.483 -1.96 Td (TCION)Tj /T1_0 1 Tf 4.483 0 Td [(The )-10(system )-10(transmits )-10(a )-10(ST)74(AR)]TJ 0.2599 Tc 12.93 0 Td (Tc)Tj 0 Tc 1.317 0 Td (haracter)Tj 0.2599 Tc 3.547 0 Td (,w)Tj 0 Tc 1.344 0 Td [(hich )-10(should )-10(cause )-10(the )-10(terminal)]TJ -19.137 -1.2 Td [(device to r)18(esume sending data.)]TJ -4.483 -2.04 Td (The)Tj /TT0 1 Tf 1.99 0 Td (tcflush)Tj /T1_0 1 Tf 4.516 0 Td [(function )-66(lets )-66(us )-66(\337ush )-66(\(thr)17(ow )-66(away\) )-66(either )-66(the )-66(input )-66(buf)18(fer )-66(\(data )-66(that)]TJ -8.306 -1.2 Td [(has )-56(been )-56(r)18(eceived )-56(by )-56(the )-56(terminal )-56(driver)]TJ 0.3056 Tc 18.063 0 Td (,w)Tj 0 Tc 1.39 0 Td [(hich )-56(we )-56(have )-56(not )-56(r)18(ead\) )-56(or )-56(the )-56(output )-56(buf)21(fer)]TJ -19.452 -1.2 Td [(\(data )-105(that )-105(we )-105(have )-105(written, )-105(which )-105(has )-105(not )-105(yet )-105(been )-105(transmitted\).)-607(The)]TJ /T1_2 1 Tf 31.985 0 Td (queue)Tj /T1_0 1 Tf 2.708 0 Td [(ar)18(gument)]TJ -34.694 -1.2 Td [(must be one of the following thr)18(ee constants:)]TJ /TT0 1 Tf 1.8 -2.04 Td (TCIFLUSH)Tj /T1_0 1 Tf 6.283 0 Td (The input queue is \337ushed.)Tj /TT0 1 Tf -6.283 -1.96 Td (TCOFLUSH)Tj /T1_0 1 Tf 6.283 0 Td (The output queue is \337ushed.)Tj /TT0 1 Tf -6.283 -1.96 Td (TCIOFLUSH)Tj /T1_0 1 Tf 6.283 0 Td (Both the input and the output queues ar)Tj 0.25 Tc 17.715 0 Td (e\337)Tj 0 Tc 1.337 0 Td (ushed.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46895 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (692)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Option )-249(names )-249(pr)18(eceded )-249(by )-249(a )-249(hyphen )-249(ar)]TJ 0.4994 Tc 18.945 0 Td (ed)Tj 0 Tc 1.589 0 Td [(isabled. )-499(The)-500(last )-249(four )-249(lines )-249(display )-249(the)]TJ -20.535 -1.2 Td [(curr)18(ent )-88(settings )-88(for )-88(each )-88(of )-88(the )-88(terminal )-88(special )-88(characters )-88(\(Section )-88(18.3\).)-588(The )-88(\336rst )-88(line)]TJ 0 -1.2 TD [(displays )-42(the )-42(number )-42(of )-42(r)18(ows )-42(and )-42(columns )-42(for )-42(the )-42(curr)16(ent )-42(terminal )-42(window; )-42(we )-42(discuss)]TJ T* (the terminal window size in Section 18.12.)Tj 7.9995 0 0 7.9995 183.5891 612.9632 Tm (The)Tj /TT0 1 Tf 1.95 0 Td (stty)Tj /T1_1 1 Tf 2.676 0 Td [(command )-26(uses )-26(its )-26(standar)]TJ 0.2759 Tc 11.568 0 Td (di)Tj 0 Tc 1.178 0 Td [(nput )-26(to )-26(get )-26(and )-26(set )-26(the )-26(terminal )-26(option )-26(\337ags.)-526(Although)]TJ -17.371 -1.25 Td [(some )-100(older )-100(implementations )-100(used )-100(standar)]TJ 0.3495 Tc 18.974 0 Td (do)Tj 0 Tc 1.506 0 Td [(utput, )-99(POSIX.1 )-99(r)17(equir)18(es )-99(that )-99(the )-99(standar)]TJ 0.3495 Tc 18.157 0 Td (di)Tj 0 Tc 1.251 0 Td (nput)Tj -39.888 -1.25 Td [(be )-11(used.)-511(All )-11(four )-11(implementations )-11(discussed )-11(in )-11(this )-11(text )-11(pr)18(ovide )-11(versions )-11(of)]TJ /TT0 1 Tf 34.017 0 Td (stty)Tj /T1_1 1 Tf 2.662 0 Td [(that )-11(operate)]TJ -36.679 -1.25 Td (on the standar)Tj 0.25 Tc 6.335 0 Td (di)Tj 0 Tc 1.152 0 Td [(nput. )-250(This)-250(means that we can type)]TJ /TT0 1 Tf -2.987 -1.625 Td (stty -a )Tj 0 -2.259 TD (speed_t cfgetispeed\(const struct termios *)Tj /T1_2 1 Tf (termptr)Tj /TT0 1 Tf (\);)Tj -0 -2.259 Td (speed_t cfgetospeed\(const struct termios *)Tj /T1_2 1 Tf (termptr)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 26.851 -2.259 Td [(Both r)18(eturn: baud rate value)]TJ /TT0 1 Tf -26.851 -2.259 Td (int cfsetispeed\(struct termios *)Tj /T1_2 1 Tf (termptr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 24.111 0 Td (peed_t)Tj /T1_2 1 Tf 4.2 0 Td (speed)Tj /TT0 1 Tf (\);)Tj -28.311 -2.259 Td (int cfsetospeed\(struct termios *)Tj /T1_2 1 Tf (termptr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 24.111 0 Td (peed_t)Tj /T1_2 1 Tf 4.2 0 Td (speed)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -3.06 -2.259 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT2 1 Tf 9.213 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3154.25 cm 0 0 m 0 1355 l 3900 1355 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 299.4841 Tm [(The )-196(r)18(eturn )-196(value )-196(fr)18(om )-196(the )-196(two)]TJ /TT0 1 Tf 14.782 0 Td (cfget)Tj /T1_1 1 Tf 3.446 0 Td [(functions )-196(and )-196(the)]TJ /T1_2 1 Tf 8.549 0 Td (speed)Tj /T1_1 1 Tf 2.613 0 Td [(ar)18(gument )-196(to )-196(the )-196(two)]TJ /TT0 1 Tf -29.391 -1.2 Td (cfset)Tj /T1_1 1 Tf 3.251 0 Td [(functions )-1(ar)]TJ 0.2513 Tc 5.259 0 Td (eo)Tj 0 Tc 1.276 0 Td [(ne )-1(of )-1(the )-1(following )-1(constants:)]TJ /TT0 1 Tf 13.257 0 Td (B50)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.301 0 Td (B75)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.301 0 Td (B110)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.901 0 Td (B134)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.901 0 Td (B150)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.901 0 Td (B200)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -36.35 -1.2 Td (B300)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.937 0 Td (B600)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.937 0 Td (B1200)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.537 0 Td (B1800)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.537 0 Td (B2400)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.537 0 Td (B4800)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.537 0 Td (B9600)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.537 0 Td (B19200)Tj /T1_1 1 Tf 0.2868 Tc (,o)Tj 0 Tc 4.683 0 Td (r)Tj /TT0 1 Tf 0.682 0 Td (B38400)Tj /T1_1 1 Tf 0.5369 Tc (.T)Tj 0 Tc 5 0 Td [(he )-37(constant)]TJ /TT0 1 Tf -33.922 -1.2 Td (B0)Tj /T1_1 1 Tf 1.572 0 Td [(means )-122(\324)37(\324hang )-122(up.\325)]TJ 0.6218 Tc 8.046 0 Td (\325I)Tj 0 Tc 1.237 0 Td (f)Tj /TT0 1 Tf 0.705 0 Td (B0)Tj /T1_1 1 Tf 1.572 0 Td [(is )-122(speci\336ed )-122(as )-122(the )-122(output )-122(baud )-122(rate )-122(when)]TJ /TT0 1 Tf 19.383 0 Td (tcsetattr)Tj /T1_1 1 Tf 5.772 0 Td (is)Tj -38.285 -1.2 Td [(called, the modem contr)18(ol lines ar)18(e)-250(no)-250(longer asserted.)]TJ 7.999 0 0 7.999 183.5782 229.0925 Tm (Most systems de\336ne additional baud rate values, such as)Tj /TT0 1 Tf 25.369 0 Td (B57600)Tj /T1_1 1 Tf 3.85 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (B115200)Tj /T1_1 1 Tf (.)Tj -0.092 Tc 9.9988 0 0 9.9988 147.5826 207.0951 Tm [(To )-328(u)]TJ 0 Tc 2.064 0 Td [(se )-144(these )-144(functions, )-144(we )-144(must )-144(r)17(ealize )-144(that )-144(the )-144(input )-144(and )-144(output )-144(baud )-144(rates )-144(ar)15(e)]TJ -3.864 -1.2 Td [(stor)18(ed )-41(in )-41(the )-41(device\325s)]TJ /TT0 1 Tf 9.757 0 Td (termios)Tj /T1_1 1 Tf 4.491 0 Td [(str)8(uctur)18(e, )-41(as )-41(shown )-41(in )-41(Figur)]TJ 0.2906 Tc 12.529 0 Td (e1)Tj 0 Tc 1.27 0 Td [(8.8. )-291(Befor)]TJ 0.2906 Tc 4.387 0 Td (ec)Tj 0 Tc 1.214 0 Td [(alling )-41(either)]TJ -33.647 -1.2 Td [(of )-128(the)]TJ /TT0 1 Tf 3.021 0 Td (cfget)Tj /T1_1 1 Tf 3.378 0 Td [(functions, )-128(we )-128(\336rst )-128(have )-128(to )-128(obtain )-128(the )-128(device\325s)]TJ /TT0 1 Tf 21.22 0 Td (termios)Tj /T1_1 1 Tf 4.578 0 Td [(str)8(uctur)]TJ 0.3778 Tc 3.49 0 Td (eu)Tj 0 Tc 1.46 0 Td (sing)Tj /TT0 1 Tf -37.147 -1.2 Td (tcgetattr)Tj /T1_1 1 Tf 0.5112 Tc (.S)Tj 0 Tc 6.686 0 Td (imilarly)Tj 0.2612 Tc 3.387 0 Td (,a)Tj 0 Tc 1.011 0 Td [(fter )-11(calling )-11(either )-11(of )-11(the )-11(two)]TJ /TT0 1 Tf 12.579 0 Td (cfset)Tj /T1_1 1 Tf 3.261 0 Td [(functions, )-11(all )-11(we\325ve )-11(done )-11(is)]TJ -26.925 -1.2 Td [(set )-56(the )-56(baud )-56(rate )-56(in )-56(a)]TJ /TT0 1 Tf 9.793 0 Td (termios)Tj /T1_1 1 Tf 4.506 0 Td [(str)8(uctur)18(e. )-306(For)-306(this )-56(change )-56(to )-56(af)18(fect )-56(the )-56(device, )-56(we )-56(have)]TJ -14.299 -1.2 Td [(to )-80(call)]TJ /TT0 1 Tf 3.058 0 Td (tcsetattr)Tj /T1_1 1 Tf 0.58 Tc (.I)Tj 0.33 Tc 6.567 0 Td (ft)Tj 0 Tc 0.989 0 Td [(her)18(e)-330(is)-330(an)-330(err)18(or )-80(in )-80(either )-80(of )-80(the )-80(baud )-80(rates )-80(that )-80(we )-80(set, )-80(we )-80(may)]TJ -10.614 -1.2 Td [(not \336nd out about the err)18(or until we call)]TJ /TT0 1 Tf 18.016 0 Td (tcsetattr)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46896 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.6)]TJ /TT0 1 Tf 36.219 0 Td (stty)Tj /T1_0 1 Tf 2.9 0 Td (Command)Tj /T1_1 1 Tf 6.714 0 Td (691)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (TABDLY)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_oflag)Tj /T1_0 1 Tf 0.3791 Tc (,X)Tj 0 Tc 5.829 0 Td [(SI, )-129(Linux, )-129(Mac )-129(OS )-129(X, )-129(Solaris\))-629(Horizontal )-129(tab )-129(delay )-129(mask.)]TJ -5.829 -1.2 Td [(The values for the mask ar)18(e)]TJ /TT0 1 Tf 12.416 0 Td (TAB0)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 2.9 0 Td (TAB1)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 2.9 0 Td (TAB2)Tj /T1_0 1 Tf 0.25 Tc (,o)Tj 0 Tc 3.446 0 Td (r)Tj /TT0 1 Tf 0.645 0 Td (TAB3)Tj /T1_0 1 Tf (.)Tj -22.307 -1.8 Td [(The )-209(value)]TJ /TT0 1 Tf 5.031 0 Td (XTABS)Tj /T1_0 1 Tf 3.459 0 Td [(is )-209(equal )-209(to)]TJ /TT0 1 Tf 5.398 0 Td (TAB3)Tj /T1_0 1 Tf 0.7093 Tc (.T)Tj 0 Tc 3.972 0 Td [(his )-209(value )-209(causes )-209(the )-209(system )-209(to)]TJ -17.861 -1.2 Td [(expand )-197(tabs )-197(into )-197(spaces.)-698(The )-197(system )-197(assumes )-197(a )-197(tab )-197(stop )-197(every )-197(eight)]TJ 0 -1.2 TD (spaces, and we can\325t change this assumption.)Tj /TT0 1 Tf -6.883 -1.84 Td (TOSTOP)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_0 1 Tf 0.2696 Tc (,P)Tj 0 Tc 5.657 0 Td [(OSIX.1, )-20(Fr)18(eeBSD, )-20(Linux, )-20(Mac )-20(OS )-20(X, )-20(Solaris\))-520(If )-20(set )-20(and )-20(if )-20(the)]TJ -5.657 -1.2 Td [(implementation )-93(supports )-93(job )-93(contr)18(ol, )-93(the)]TJ /TT0 1 Tf 18.775 0 Td (SIGTTOU)Tj /T1_0 1 Tf 4.543 0 Td [(signal )-93(is )-93(sent )-93(to )-93(the)]TJ -23.318 -1.2 Td [(pr)18(ocess )-421(gr)18(oup )-421(of )-421(a )-421(backgr)19(ound )-421(pr)18(ocess )-421(that )-421(tries )-421(to )-421(write )-421(to )-421(its)]TJ T* [(contr)18(olling )-19(terminal.)-520(By )-19(default, )-19(this )-19(signal )-19(stops )-19(all )-19(the )-19(pr)18(ocesses )-19(in )-19(the)]TJ T* [(pr)18(ocess )-43(gr)18(oup. )-293(This)-294(signal )-43(is )-43(not )-43(generated )-43(by )-43(the )-43(terminal )-43(driver )-43(if )-43(the)]TJ T* [(backgr)18(ound )-116(pr)18(ocess )-116(that )-116(is )-116(writing )-116(to )-116(the )-116(contr)18(olling )-116(terminal )-116(is )-116(either)]TJ T* (ignoring or blocking the signal.)Tj /TT0 1 Tf -6.883 -1.84 Td (VTDLY)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_oflag)Tj /T1_0 1 Tf 0.3321 Tc (,X)Tj 0 Tc 5.782 0 Td [(SI, )-82(Linux, )-82(Solaris\))]TJ -0.111 Tc 8.516 0 Td (Ve)Tj 0 Tc 1.09 0 Td [(rtical )-82(tab )-82(delay )-82(mask.)-582(The )-82(values )-82(for)]TJ -15.388 -1.2 Td [(the mask ar)18(e)]TJ /TT0 1 Tf 5.856 0 Td (VT0)Tj /T1_0 1 Tf 2.05 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (VT1)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf -16.732 -1.84 Td (XCASE)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_0 1 Tf 0.2543 Tc (,L)Tj 0 Tc 5.648 0 Td [(inux, )-4(Solaris\))-504(If )-4(set )-4(and )-4(if)]TJ /TT0 1 Tf 11.539 0 Td (ICANON)Tj /T1_0 1 Tf 3.854 0 Td [(is )-4(also )-4(set, )-4(the )-4(terminal )-4(is)]TJ -21.041 -1.2 Td [(assumed )-100(to )-100(be )-100(upper)18(case )-100(only)]TJ 0.3501 Tc 13.6 0 Td (,a)Tj 0 Tc 1.1 0 Td [(nd )-100(all )-100(input )-100(is )-100(converted )-100(to )-100(lower)17(case.)]TJ -0.092 Tc -14.701 -1.2 Td [(To )-260(i)]TJ 0 Tc 1.684 0 Td [(nput )-76(an )-76(upper)18(case )-76(character)]TJ 0.326 Tc 12.671 0 Td (,p)Tj -0.018 Tc 1.177 0 Td (re)Tj 0 Tc 0.856 0 Td [(cede )-76(it )-76(with )-76(a )-76(backslash.)-576(Similarly)111(,)]TJ -16.388 -1.2 Td [(the )-337(system )-337(outputs )-337(an )-337(upper)18(case )-337(character )-337(by )-337(pr)18(eceding )-337(it )-337(with )-337(a)]TJ T* [(backslash. )-495(\(This)-495(option )-245(\337ag )-245(is )-245(obsolete )-245(today)]TJ 0.4953 Tc 21.332 0 Td (,s)Tj 0 Tc 1.169 0 Td [(ince )-245(most, )-245(if )-245(not )-245(all,)]TJ -22.501 -1.2 Td [(upper)18(case-only terminals have disappear)18(ed.\))]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5947 377.3774 Tm (18.6)Tj /TT2 1 Tf 3 0 Td (stty)Tj /TT1 1 Tf 2.956 0 Td (Command)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5925 353.3788 Tm [(All )-129(the )-129(options )-129(described )-129(in )-129(the )-129(pr)18(evious )-129(section )-129(can )-129(be )-129(examined )-129(and )-129(changed )-129(fr)18(om)]TJ T* [(within a pr)18(ogram with the)]TJ /TT0 1 Tf 11.935 0 Td (tcgetattr)Tj /T1_0 1 Tf 5.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (tcsetattr)Tj /T1_0 1 Tf 5.65 0 Td [(functions \(Section 18.4\) or fr)17(om)]TJ -25.179 -1.2 Td [(the )-201(command )-201(line )-201(\(or )-201(a )-201(shell )-201(script\) )-201(with )-201(the)]TJ /TT0 1 Tf 21.609 0 Td (stty)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.784 -0.04 Td [(command. )-450(This)-451(command )-200(is)]TJ -25.626 -1.2 Td [(simply )-57(an )-57(interface )-57(to )-57(the )-57(\336rst )-57(six )-57(functions )-57(that )-57(we )-57(listed )-57(in )-57(Figur)]TJ 0.3068 Tc 29.735 0 Td (e1)Tj 0 Tc 1.286 0 Td [(8.7. )-307(If)-307(we )-57(execute)]TJ -31.02 -1.2 Td (this command with its)Tj /TT0 1 Tf 10.146 0 Td (-a)Tj /T1_0 1 Tf 1.45 0 Td (option, it displays all the terminal options:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 129.5926 287.4827 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (stty -a)Tj /TT0 1 Tf -1.2 -1.189 Td (speed 9600 baud; 25 rows; 80 columns;)Tj 0 -1.189 TD (lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl)Tj 4.8 -1.189 Td (-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo)Tj T* (-extproc)Tj -4.8 -1.189 Td (iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel -ignbrk)Tj 4.8 -1.189 Td (brkint -inpck -ignpar -parmrk)Tj -4.8 -1.189 Td (oflags: opost onlcr -ocrnl -oxtabs -onocr -onlret)Tj T* (cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts)Tj 4.8 -1.189 Td (-dsrflow -dtrflow -mdmbuf)Tj -4.8 -1.189 Td (cchars: discard = \366O; dsusp = \366Y; eof = \366D; eol = ;)Tj 4.8 -1.189 Td (eol2 = ; erase = \366H; erase2 = \366?; intr = \366C; kill = \366\ U;)Tj T* (lnext = \366V; min = 1; quit = \366; reprint = \366R; start = \366Q;)Tj T* (status = \366T; stop = \366S; susp = \366Z; time = 0; werase = \366W;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46897 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.5)]TJ -0.092 Tc 33.432 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(Option )-250(Flags)]TJ /T1_1 1 Tf 11.401 0 Td (683)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(18.4 )-776(Getting)-556(and )-278(Setting )-278(T)60(erminal )-278(Attrib)20(utes)]TJ /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5921 652.1609 Tm [(To )-660(g)]TJ 0 Tc 2.349 0 Td [(et )-476(and )-476(set )-476(a)]TJ /TT1 1 Tf 7.131 0 Td (termios)Tj /T1_0 1 Tf 4.926 0 Td [(str)8(uctur)18(e, )-476(we )-476(call )-476(two )-476(functions:)]TJ /TT1 1 Tf 16.775 0 Td (tcgetattr)Tj /T1_0 1 Tf 6.126 0 Td (and)Tj /TT1 1 Tf -37.307 -1.2 Td (tcsetattr)Tj /T1_0 1 Tf 0.5687 Tc (.T)Tj 0 Tc 6.832 0 Td [(his )-69(is )-69(how )-69(we )-69(examine )-69(and )-69(modify )-69(the )-69(various )-69(option )-69(\337ags )-69(and )-69(special)]TJ -6.832 -1.2 Td (characters to make the terminal operate the way we want it to.)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5914 612.6632 Tm (#include )Tj 0 -1.783 TD (int tcgetattr\(int)Tj /T1_2 1 Tf 10.8 0 Td (fd)Tj /TT1 1 Tf 0.6 Tc (,s)Tj 0 Tc 2.578 0 Td (truct termios *)Tj /T1_2 1 Tf (termptr)Tj /TT1 1 Tf (\);)Tj -13.378 -1.783 Td (int tcsetattr\(int)Tj /T1_2 1 Tf 10.8 0 Td (fd)Tj /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (opt)Tj /TT1 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.077 0 Td (onst struct termios *)Tj /T1_2 1 Tf (termptr)Tj /TT1 1 Tf (\);)Tj /T1_0 1 Tf 6.996 -1.783 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT2 1 Tf 9.213 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5600.25 cm 0 0 m 0 617 l 3900 617 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 547.6843 Tm [(Both )-218(functions )-218(take )-218(a )-218(pointer )-218(to )-218(a)]TJ /TT1 1 Tf 16.424 0 Td (termios)Tj /T1_0 1 Tf 4.668 0 Td [(str)8(uctur)]TJ 0.4679 Tc 3.49 0 Td (ea)Tj 0 Tc 1.447 0 Td [(nd )-218(either )-218(r)18(eturn )-218(the )-218(curr)18(ent)]TJ -26.028 -1.2 Td [(terminal )-162(attributes )-162(or )-162(set )-162(the )-162(terminal\325s )-162(attributes.)-659(Since )-161(these )-161(two )-161(functions )-161(operate)]TJ 0 -1.2 TD [(only )-38(on )-38(terminal )-38(devices,)]TJ /TT1 1 Tf 11.547 0 Td (errno)Tj /T1_0 1 Tf 3.288 0 Td [(is )-38(set )-38(to)]TJ /TT1 1 Tf 3.681 0 Td (ENOTTY)Tj /T1_0 1 Tf 3.888 0 Td (and)Tj /TT2 1 Tf 1.981 0 Td (!)Tj /T1_0 1 Tf [(1)-288(is)-288(r)17(eturned )-38(if)]TJ /T1_2 1 Tf 7.394 0 Td (fd)Tj /T1_0 1 Tf 1.066 0 Td [(does )-38(not )-38(r)17(efer)]TJ -32.846 -1.2 Td (to a terminal device.)Tj 1.8 -1.2 Td [(The )-99(ar)18(gument)]TJ /T1_2 1 Tf 6.677 0 Td (opt)Tj /T1_0 1 Tf 1.626 0 Td (for)Tj /TT1 1 Tf 1.623 0 Td (tcsetattr)Tj /T1_0 1 Tf 5.749 0 Td [(lets )-99(us )-99(specify )-99(when )-99(we )-99(want )-99(the )-99(new )-99(terminal)]TJ -17.474 -1.2 Td [(attributes to take ef)18(fect. )-250(This)-250(ar)18(gument is speci\336ed as one of the following constants.)]TJ /TT1 1 Tf 1.8 -1.68 Td (TCSANOW)Tj /T1_0 1 Tf 6.6 0 Td [(The change occurs immediately)111(.)]TJ /TT1 1 Tf -6.6 -1.72 Td (TCSADRAIN)Tj /T1_0 1 Tf 6.6 0 Td [(The )-26(change )-26(occurs )-26(after )-26(all )-26(output )-26(has )-26(been )-26(transmitted.)-526(This )-26(option)]TJ T* (should be used if we ar)Tj 0.25 Tc 10.27 0 Td (ec)Tj 0 Tc 1.173 0 Td (hanging the output parameters.)Tj /TT1 1 Tf -18.043 -1.72 Td (TCSAFLUSH)Tj /T1_0 1 Tf 6.6 0 Td [(The )-727(change )-727(occurs )-727(after )-727(all )-727(output )-727(has )-727(been )-727(transmitted.)]TJ T* [(Furthermor)18(e, when the change takes place, all input data that has not)]TJ T* [(been r)18(ead is discar)18(ded \(\337ushed\).)]TJ -6.6 -1.68 Td [(The )-143(r)18(eturn )-143(status )-143(of)]TJ /TT1 1 Tf 9.492 0 Td (tcsetattr)Tj /T1_0 1 Tf 5.793 0 Td [(can )-143(be )-143(confusing )-143(to )-143(use )-143(corr)16(ectly)]TJ 0.6434 Tc 15.011 0 Td (.T)Tj 0 Tc 1.506 0 Td [(his )-143(function)]TJ -0.018 Tc -33.603 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-155(OK )-155(if )-155(it )-155(was )-155(able )-155(to )-155(perform)]TJ /T1_2 1 Tf 16.409 0 Td (any)Tj /T1_0 1 Tf 1.905 0 Td [(of )-155(the )-155(r)18(equested )-155(actions, )-155(even )-155(if )-155(it )-155(couldn\325t)]TJ -19.17 -1.2 Td [(perform )-68(all )-68(the )-68(r)18(equested )-68(actions.)-568(If )-68(the )-68(function )-68(r)18(eturns )-68(OK, )-68(it )-68(is )-68(our )-68(r)14(esponsibility )-68(to)]TJ T* [(see )-153(whether )-153(all )-153(the )-153(r)18(equested )-153(actions )-153(wer)]TJ 0.4035 Tc 19.09 0 Td (ep)Tj 0 Tc 1.484 0 Td [(erformed. )-403(This)-404(means )-154(that )-154(after )-154(we )-154(call)]TJ /TT1 1 Tf -20.574 -1.2 Td (tcsetattr)Tj /T1_0 1 Tf 5.723 0 Td [(to )-73(set )-73(the )-73(desir)18(ed )-73(attributes, )-73(we )-73(need )-73(to )-73(call)]TJ /TT1 1 Tf 19.999 0 Td (tcgetattr)Tj /T1_0 1 Tf 5.723 0 Td [(and )-73(compar)]TJ 0.3226 Tc 5.367 0 Td (et)Tj 0 Tc 1.128 0 Td (he)Tj -37.939 -1.2 Td [(actual terminal\325s attributes to the desir)18(ed attributes to detect any dif)18(fer)18(ences.)]TJ 1.8 -1.2 Td [(What )-85(ar)]TJ 0.3347 Tc 3.62 0 Td (et)Tj 0 Tc 1.14 0 Td [(he )-85(attributes )-85(of )-85(a )-85(terminal )-85(we )-85(open )-85(for )-85(the )-85(\336rst )-85(time?)-582(The )-85(answer )-85(is )-85(\324)38(\324it)]TJ -6.559 -1.2 Td (depends.\325)Tj 0.7104 Tc 4.278 0 Td (\325S)Tj 0 Tc 1.513 0 Td [(ome )-210(systems )-210(might )-210(initialize )-210(the )-210(terminal )-210(attributes )-210(to )-210(implementation-)]TJ -5.791 -1.2 Td [(de\336ned )-82(values.)-582(Other )-82(systems )-82(might )-82(leave )-82(the )-82(attributes )-82(with )-82(the )-82(values )-82(they )-82(had )-82(the)]TJ T* [(last )-90(time )-90(that )-90(the )-90(terminal )-90(was )-90(used.)-590(If )-90(we )-90(want )-90(to )-90(be )-90(sur)]TJ 0.3403 Tc 26.381 0 Td (et)Tj 0 Tc 1.145 0 Td [(hat )-90(the )-90(terminal )-90(behavior)]TJ -27.526 -1.2 Td [(conforms )-79(to )-79(the )-79(standar)18(d, )-79(we )-79(can )-79(open )-79(the )-79(terminal )-79(device )-79(with )-79(the)]TJ /TT1 1 Tf 31.007 0 Td (O_TTY_INIT)Tj /T1_0 1 Tf 6.329 0 Td (\337ag)Tj -37.336 -1.2 Td [(\(see )-206(Section )-206(3.3\).)-706(This )-206(will )-206(ensur)]TJ 0.4558 Tc 15.352 0 Td (et)Tj 0 Tc 1.261 0 Td [(hat )-206(when )-206(we )-206(call)]TJ /TT1 1 Tf 8.547 0 Td (tcgetattr)Tj /T1_0 1 Tf 0.4557 Tc (,a)Tj 0 Tc 6.606 0 Td [(ny )-206(nonstandar)18(d)]TJ -31.765 -1.2 Td [(portions )-194(of )-194(the)]TJ /TT1 1 Tf 7.308 0 Td (termios)Tj /T1_0 1 Tf 4.644 0 Td [(str)8(uctur)]TJ 0.4438 Tc 3.49 0 Td (ew)Tj 0 Tc 1.757 0 Td [(ill )-194(be )-194(initialized )-194(so )-194(the )-194(terminal )-194(will )-194(behave )-194(as)]TJ -17.199 -1.2 Td (expected when we change the attributes and call)Tj /TT1 1 Tf 21.697 0 Td (tcsetattr)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 11.9986 0 0 11.9986 93.5898 197.7263 Tm [(18.5 )-776(T)60(erminal )-278(Option )-278(Fla)10(gs)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5855 180.9283 Tm [(In )-72(this )-72(section, )-72(we )-72(list )-72(all )-72(the )-72(various )-72(terminal )-72(option )-72(\337ags, )-72(expanding )-72(the )-72(descriptions)]TJ T* [(fr)18(om )-120(Figur)18(es )-120(18.3 )-120(thr)18(ough )-120(18.6.)-618(This )-120(list )-120(is )-120(alphabetical )-120(and )-120(indicates )-120(in )-120(which )-120(of )-120(the)]TJ T* [(four )-120(terminal )-120(\337ag )-120(\336elds )-120(the )-120(option )-120(appears.)-620(\(The )-120(\336eld )-120(that )-120(contr)18(ols )-120(a )-120(given )-120(option )-120(is)]TJ T* [(usually )-25(not )-25(appar)18(ent )-25(fr)18(om )-25(the )-25(option )-25(name )-25(alone.\))]TJ -0.092 Tc 22.98 0 Td [(We )-209(a)]TJ 0 Tc 2.162 0 Td [(lso )-25(note )-25(whether )-25(each )-25(option )-25(is)]TJ -25.142 -1.2 Td (de\336ned by the Single UNIX Speci\336cation and list the platforms that\ support it.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46898 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (678)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(18.3 )-776(Special)-556(Input )-278(Character)15(s)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(POSIX.1 )-203(de\336nes )-203(1)]TJ 0.4533 Tc 8.201 0 Td (1c)Tj 0 Tc 1.397 0 Td [(haracters )-203(that )-203(ar)]TJ 0.4533 Tc 7.563 0 Td (eh)Tj 0 Tc 1.514 0 Td [(andled )-203(specially )-203(on )-203(input.)-704(Implementations)]TJ -18.675 -1.2 Td [(de\336ne additional special characters.)-500(Figur)]TJ 0.25 Tc 18.707 0 Td (e1)Tj 0 Tc 1.229 0 Td (8.9 summarizes these special characters.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1116.25 6106.25 cm 0 0 m 4085 0 l S Q Q BT /TT1 1 Tf 6.9992 0 0 6.9992 235.8177 603.3276 Tm (c_cc)Tj /T1_1 1 Tf 8.152 0 Td (Enabled by)Tj -0.09 Tc 8.843 0 Td (Ty)Tj 0 Tc 1.079 0 Td [(pical )-4419(Fr)18(eeBSD )-250(Linux )-250(Mac)-250(OS X)-500(Solaris)]TJ -18.904 -1.286 Td [(subscript )-2421(\336eld)-4775(\337ag )-2802(value)]TJ 26.975 0 Td [(8.0 )-1827(3.2.0)-1736(10.6.8 )-2170(10)]TJ -43.277 0.643 Td [(Character)-2936(Description)]TJ 37.833 0 Td (POSIX.1)Tj ET q 0.099988 0 0 0.099988 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1116.25 5906.25 cm 0 0 m 4085 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1116.25 5886.25 cm 0 0 m 4085 0 l S Q Q BT /T1_1 1 Tf 6.9987 0 0 6.9987 115.0793 581.2954 Tm [(CR )-3438(carriage)]TJ -0.018 Tc 8.875 0 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-3468(\(can\325t)-250(change\))]TJ /TT1 1 Tf 12.313 0 Td [(c_lflag )-900(ICANON)-3903(\\r)]TJ /T1_1 1 Tf 3.629 Tc 17.437 0 Td (\245\245)Tj 3.3796 Tc 7.937 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -47.418 -1.414 Td [(DISCARD )-250(discar)]TJ 0.25 Tc 7.712 0 Td (do)Tj 0 Tc 1.407 0 Td (utput)Tj /TT1 1 Tf 6.236 0 Td [(VDISCARD )-1289(c_lflag)-1500(IEXTEN)]TJ /T1_1 1 Tf 19.932 0 Td (\366O )Tj 8.429 0 Td (\245)Tj 3.3796 Tc 3.702 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -47.418 -1.414 Td (DSUSP)Tj /TT1 1 Tf 15.355 0 Td [(VDSUSP )-2489(c_lflag)-1500(ISIG)]TJ /T1_1 1 Tf 19.992 0 Td (\366Y )Tj 8.369 0 Td (\245)Tj 3.564 Tc 7.688 0 Td (\245\245)Tj 0 Tc -46.339 0 Td (delayed suspend)Tj 1.543 -1.286 Td (\()Tj /TT1 1 Tf (SIGTSTP)Tj /T1_1 1 Tf (\))Tj -6.608 -1.414 Td [(EOF )-2862(end)-250(of \336le)]TJ /TT1 1 Tf 15.355 0 Td [(VEOF )-3689(c_lflag)-1500(ICANON)]TJ /T1_1 1 Tf 19.938 0 Td [(\366D )-2831(\245)]TJ 3.096 Tc 8.423 0 Td [(\245\245 )3062(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj -55.574 -1.414 Td [(EOL )-2807(end)-250(of line)]TJ /TT1 1 Tf 15.355 0 Td [(VEOL )-3689(c_lflag)-1500(ICANON)]TJ /T1_1 1 Tf 3.629 Tc 24.126 0 Td (\245\245)Tj 3.3796 Tc 7.937 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -47.418 -1.414 Td [(EOL2 )-2307(alternate)-250(end of line)]TJ /TT1 1 Tf 15.355 0 Td [(VEOL2 )-3089(c_lflag)-1500(ICANON)]TJ /T1_1 1 Tf 3.096 Tc 28.361 0 Td [(\245\245 )3062(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj -55.574 -1.414 Td (ERASE)Tj /TT1 1 Tf 15.355 0 Td [(VERASE )-2489(c_lflag)-1500(ICANON)]TJ /T1_1 1 Tf 19.271 0 Td (\366H, \366?)Tj 3.629 Tc 4.855 0 Td (\245\245)Tj 3.3796 Tc 7.937 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -42.353 0 Td (backspace one)Tj 1.543 -1.286 Td (character)Tj -6.608 -1.414 Td (ERASE2)Tj /TT1 1 Tf 15.355 0 Td [(VERASE2 )-1889(c_lflag)-1500(ICANON)]TJ /T1_1 1 Tf 19.271 0 Td (\366H, \366?)Tj 9.09 0 Td (\245)Tj -38.651 0 Td (alternate backspace)Tj 1.543 -1.286 Td (character)Tj -6.608 -1.414 Td (INTR)Tj /TT1 1 Tf 15.355 0 Td [(VINTR )-3089(c_lflag)-1500(ISIG)]TJ /T1_1 1 Tf 19.332 0 Td (\366?, \366C)Tj 3.629 Tc 4.794 0 Td (\245\245)Tj 3.3796 Tc 7.937 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -42.353 0 Td [(interr)8(upt signal)]TJ 1.543 -1.286 Td (\()Tj /TT1 1 Tf (SIGINT)Tj /T1_1 1 Tf (\))Tj -6.608 -1.414 Td [(KILL )-2530(erase)-250(line)]TJ /TT1 1 Tf 15.355 0 Td [(VKILL )-3089(c_lflag)-1500(ICANON)]TJ /T1_1 1 Tf 19.936 0 Td [(\366U )-2829(\245)]TJ 3.096 Tc 8.425 0 Td [(\245\245 )3062(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj -55.574 -1.414 Td [(LNEXT )-1482(literal)-250(next)]TJ /TT1 1 Tf 15.355 0 Td [(VLNEXT )-2489(c_lflag)-1500(IEXTEN)]TJ /T1_1 1 Tf 19.964 0 Td (\366V )Tj 8.397 0 Td (\245)Tj 3.3796 Tc 3.702 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -47.418 -1.414 Td [(NL )-3373(line)-250(feed \(newline\))-2041(\(can\325t change\))]TJ /TT1 1 Tf 22.044 0 Td [(c_lflag )-900(ICANON)-3903(\\n)]TJ /T1_1 1 Tf 3.629 Tc 17.437 0 Td (\245\245)Tj 3.3796 Tc 7.937 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -47.418 -1.414 Td [(QUIT )-2301(quit)-250(signal \()]TJ /TT1 1 Tf (SIGQUIT)Tj /T1_1 1 Tf (\))Tj /TT1 1 Tf 15.355 0 Td [(VQUIT )-3089(c_lflag)-1500(ISIG)]TJ /T1_1 1 Tf 20.022 0 Td [(\366\\ )-2915(\245)]TJ 3.096 Tc 8.339 0 Td [(\245\245 )3062(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj -55.574 -1.414 Td [(REPRINT )-483(r)18(eprint all input)]TJ /TT1 1 Tf 15.355 0 Td [(VREPRINT )-1289(c_lflag)-1500(ICANON)]TJ /T1_1 1 Tf 19.991 0 Td (\366R )Tj 8.37 0 Td (\245)Tj 3.3796 Tc 3.702 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -47.418 -1.414 Td [(ST)74(AR)]TJ 1.979 Tc 2.473 0 Td (Tr)Tj 0 Tc 2.969 0 Td (esume output)Tj /TT1 1 Tf 9.913 0 Td [(VSTART )-2489(c_iflag)-1500(IXON/IXOFF)]TJ /T1_1 1 Tf 19.932 0 Td [(\366Q )-2825(\245)]TJ 3.096 Tc 8.429 0 Td [(\245\245 )3062(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj -55.574 -1.414 Td (ST)Tj -0.074 Tc 1.064 0 Td (AT)Tj 0 Tc 1.317 0 Td [(US )-1131(status)]TJ -0.018 Tc 5.537 0 Td (re)Tj 0 Tc 0.856 0 Td (quest)Tj /TT1 1 Tf 6.581 0 Td [(VSTATUS )-1889(c_lflag)-1500(ICANON)]TJ /T1_1 1 Tf 20.019 0 Td (\366T )Tj 8.342 0 Td (\245)Tj 7.688 0 Td (\245)Tj -51.404 -1.414 Td [(ST)18(OP )-2305(stop)-250(output)]TJ /TT1 1 Tf 15.355 0 Td [(VSTOP )-3089(c_iflag)-1500(IXON/IXOFF)]TJ /T1_1 1 Tf 20.063 0 Td [(\366S )-2955(\245)]TJ 3.096 Tc 8.298 0 Td [(\245\245 )3062(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj -55.574 -1.414 Td (SUSP)Tj /TT1 1 Tf 15.355 0 Td [(VSUSP )-3089(c_lflag)-1500(ISIG)]TJ /T1_1 1 Tf 19.992 0 Td [(\366Z )-2884(\245)]TJ 3.096 Tc 8.369 0 Td [(\245\245 )3062(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj -50.509 0 Td (suspend signal)Tj 1.543 -1.286 Td (\()Tj /TT1 1 Tf (SIGTSTP)Tj /T1_1 1 Tf (\))Tj -6.608 -1.414 Td [(WERASE )-622(backspace)-250(one wor)18(d)]TJ /TT1 1 Tf 15.355 0 Td [(VWERASE )-1889(c_lflag)-1500(ICANON)]TJ /T1_1 1 Tf 19.825 0 Td (\366W )Tj 8.536 0 Td (\245)Tj 3.3796 Tc 3.702 0 Td [(\245\245 )3445(\245)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1116.25 3544.25 cm 0 0 m 4085 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4082.25 3544.25 cm 0 0 m 0 2562 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3790.25 3544.25 cm 0 0 m 0 2562 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3530.25 3544.25 cm 0 0 m 0 2562 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2676.25 3544.25 cm 0 0 m 0 2562 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2208.25 3544.25 cm 0 0 m 0 2562 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1488.25 3544.25 cm 0 0 m 0 2562 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 5201.25 3544.25 cm 0 0 m 0 2562 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1116.25 3544.25 cm 0 0 m 0 2562 l S Q Q BT /T1_0 1 Tf 0 Tc 7.9981 0 0 7.9981 221.1949 336.1193 Tm (Figure 18.9)Tj /T1_1 1 Tf 5.695 0 Td (Summary of special terminal input characters)Tj 9.9976 0 0 9.9976 147.5648 306.1265 Tm [(Of )-67(the )-67(1)]TJ 0.3174 Tc 3.586 0 Td (1P)Tj 0 Tc 1.421 0 Td [(OSIX.1 )-67(special )-67(characters, )-67(we )-67(can )-67(change )-67(9 )-67(of )-67(them )-67(to )-67(almost )-67(any )-67(value)]TJ -6.807 -1.2 Td [(that )-37(we )-37(like.)-537(The )-37(exceptions )-37(ar)]TJ 0.2867 Tc 13.836 0 Td (et)Tj 0 Tc 1.092 0 Td [(he )-37(newline )-37(and )-37(carriage )-37(r)18(eturn )-37(characters )-37(\()]TJ /TT1 1 Tf 19.156 0 Td (\\n)Tj /T1_1 1 Tf 1.487 0 Td (and)Tj /TT1 1 Tf 1.98 0 Td (\\r)Tj /T1_1 1 Tf (,)Tj -0.018 Tc -37.55 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(spectively\) )-580(and )-580(per)18(haps )-580(the )-580(ST)18(OP )-580(and )-580(ST)75(AR)]TJ 0.8298 Tc 23.088 0 Td (Tc)Tj 0 Tc 1.887 0 Td [(haracters )-580(\(depends )-580(on )-580(the)]TJ -25.831 -1.2 Td [(implementation\). )-304(T)92(o)-304(do)-304(t)-1(his, )-54(we )-54(modify )-54(the )-54(appr)18(opriate )-54(entry )-54(in )-54(the)]TJ /TT1 1 Tf 31.074 0 Td (c_cc)Tj /T1_1 1 Tf 2.704 0 Td [(array )-54(of )-54(the)]TJ /TT1 1 Tf -33.779 -1.2 Td (termios)Tj /T1_1 1 Tf 4.474 0 Td [(str)8(uctur)18(e. )-273(The)-274(elements )-23(in )-23(this )-23(array )-23(ar)]TJ 0.2735 Tc 17.446 0 Td (er)Tj 0 Tc 1.129 0 Td [(eferr)18(ed )-23(to )-23(by )-23(name, )-23(with )-23(each )-23(name)]TJ -23.049 -1.2 Td (beginning with a)Tj /TT1 1 Tf 7.755 0 Td (V)Tj /T1_1 1 Tf 0.85 0 Td (\(the thir)Tj 0.25 Tc 3.546 0 Td (dc)Tj 0 Tc 1.305 0 Td (olumn in Figur)Tj 0.25 Tc 6.661 0 Td (e1)Tj 0 Tc 1.229 0 Td (8.9\).)Tj -19.546 -1.2 Td [(POSIX.1 )-45(allows )-45(us )-45(to )-45(disable )-45(these )-45(characters.)-546(If )-45(we )-45(set )-45(the )-45(value )-45(of )-45(an )-45(entry )-45(in )-45(the)]TJ /TT1 1 Tf -1.8 -1.2 Td (c_cc)Tj /T1_1 1 Tf 2.871 0 Td [(array )-220(to )-220(the )-220(value )-220(of)]TJ /TT1 1 Tf 10.275 0 Td (_POSIX_VDISABLE)Tj /T1_1 1 Tf 0.4706 Tc (,t)Tj 0 Tc 10.047 0 Td [(hen )-221(we )-221(disable )-221(the )-221(corr)20(esponding)]TJ -23.192 -1.2 Td [(special character)74(.)]TJ 7.9981 0 0 7.9981 172.7603 190.1544 Tm [(In )-46(early )-46(versions )-46(of )-46(the )-46(Single )-46(UNIX )-46(Speci\336cation, )-46(support )-46(for)]TJ /TT1 1 Tf 28.067 0 Td (_POSIX_VDISABLE)Tj /T1_1 1 Tf 9.296 0 Td [(was )-46(optional.)]TJ -37.363 -1.25 Td [(It is now r)18(equir)18(ed.)]TJ 0 -1.875 TD [(All )-125(four )-125(platforms )-125(discussed )-125(in )-125(this )-125(text )-125(support )-125(this )-125(featur)21(e. )-375(Linux)-374(3.2.0 )-125(and )-125(Solaris )-125(10 )-125(de\336ne)]TJ /TT1 1 Tf 0 -1.25 Td (_POSIX_VDISABLE)Tj /T1_1 1 Tf 9.25 0 Td [(as 0; Fr)18(eeBSD 8.0 and Mac OS X 10.6.8 de\336ne it as)]TJ /TT1 1 Tf 22.083 0 Td (0xff)Tj /T1_1 1 Tf (.)Tj -31.333 -1.875 Td [(Some earlier UNIX systems disabled a featur)18(e)-250(if)-250(the corr)18(esponding special input character was 0.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46899 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (18)Tj /T1_1 1 Tf -0.049 Tc 24 0 0 24 129.6 545.576 Tm (Te)Tj 0.015 Tc 1.011 0 Td (rm)Tj 0 Tc 1.275 0 Td [(inal )-280(I/O)]TJ /TT0 1 Tf 12 0 0 12 93.6 410.4 Tm [(18.1 )-776(Intr)20(oduction)]TJ /T1_2 1 Tf 10 0 0 10 129.6 386.4 Tm [(The )-76(handling )-76(of )-76(terminal )-76(I/O )-76(is )-76(a )-76(messy )-76(ar)18(ea, )-76(r)19(egar)18(dless )-76(of )-76(the )-76(operating )-76(system.)-576(The)]TJ -0 -1.2 Td [(UNIX )-71(System )-71(is )-71(no )-71(exception.)-571(The )-71(manual )-71(page )-71(for )-71(terminal )-71(I/O )-71(is )-71(usually )-71(one )-71(of )-71(the)]TJ 0 -1.2 TD [(longest in most editions of the pr)18(ogrammer )176(\325s)-250(manuals.)]TJ -0.055 Tc 1.8 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-354(the )-354(UNIX )-354(System, )-354(a )-354(schism )-354(formed )-354(in )-354(the )-354(late )-354(1970s )-354(when )-354(System )-354(III)]TJ -3.036 -1.2 Td [(developed )-106(a )-106(dif)18(fer)18(ent )-106(set )-106(of )-106(terminal )-106(r)18(outines )-106(fr)18(om )-106(those )-106(of )-106(V)111(ersion )-106(7.)-604(The )-106(System )-106(III)]TJ 0 -1.2 Td [(style )-92(of )-92(terminal )-92(I/O )-92(continued )-92(thr)18(ough )-92(System )-92(V)]TJ 0.342 Tc 22.647 0 Td (,a)Tj 0 Tc 1.092 0 Td [(nd )-92(the )-92(V)111(ersion )-92(7 )-92(style )-92(became )-92(the)]TJ -23.739 -1.2 Td (standar)Tj 0.2773 Tc 3.32 0 Td (df)Tj 0 Tc 1.221 0 Td [(or )-27(the )-27(BSD-derived )-27(systems.)-528(As )-27(with )-27(signals, )-27(this )-27(dif)17(fer)18(ence )-27(between )-27(the )-27(two)]TJ -4.541 -1.2 Td [(worlds )-184(has )-184(been )-184(conquer)17(ed )-184(by )-184(POSIX.1.)-684(In )-184(this )-184(chapter)73(,)-434(we)-434(l)-1(ook )-184(at )-184(all )-184(the )-184(POSIX.1)]TJ -0 -1.2 Td (terminal functions and some of the platform-speci\336c additions.)Tj 1.8 -1.2 Td [(Part )-292(of )-292(the )-292(complexity )-292(of )-292(the )-292(terminal )-292(I/O )-292(system )-292(occurs )-292(because )-292(people )-292(use)]TJ -1.8 -1.2 Td [(terminal )-424(I/O )-424(for )-424(so )-424(many )-424(dif)18(fer)18(ent )-424(things: )-424(terminals, )-424(har)18(d-wir)18(ed )-424(lines )-424(between)]TJ T* (computers, modems, printers, and so on.)Tj /TT0 1 Tf 12 0 0 12 93.6001 218.4 Tm [(18.2 )-776(Over)-10(vie)15(w)]TJ /T1_2 1 Tf -0.092 Tc 10 0 0 10 129.6001 194.4 Tm (Te)Tj 0 Tc 1 0 Td (rminal I/O has two modes:)Tj 0.8 -1.8 Td [(1. )-633(Canonical)-317(mode )-67(input )-67(pr)17(ocessing. )-317(In)-318(this )-67(mode, )-67(terminal )-67(input )-67(is )-67(pr)18(ocessed )-67(as)]TJ 1.633 -1.2 Td [(lines. )-250(The)-250(terminal driver r)18(eturns at most one line per r)18(ead r)18(equest.)]TJ -1.633 -1.6 Td [(2. )-633(Noncanonical)-362(mode )-112(input )-112(pr)17(ocessing. )-362(The)-363(input )-112(characters )-112(ar)]TJ 0.3625 Tc 29.898 0 Td (en)Tj 0 Tc 1.424 0 Td [(ot )-112(assembled)]TJ -29.689 -1.2 Td (into lines.)Tj /T1_3 1 Tf 9 0 0 9 506.1001 114 Tm (671)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46900 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (xvi)Tj /T1_1 1 Tf 3.389 0 Td (Contents)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 154.7907 667.9599 Tm [(15.4 )-2456(Coprocesses)-2160(548)]TJ 0 -1.3 TD [(15.5 )-2456(FIFOs)-2160(552)]TJ T* [(15.6 )-2456(XSI)-556(IPC )-1882(556)]TJ T* [(15.6.1 )-3422(Identi\336ers)-556(and )-278(K)]TJ -0.02 Tc 14.222 0 Td (ey)Tj 2.16 Tc 1.036 0 Td (s5)Tj 0 Tc 3.216 0 Td (56)Tj -18.474 -1.3 Td [(15.6.2 )-3422(P)50(er )253(mission)-556(Str )263(ucture)-2160(558)]TJ -0 -1.3 Td [(15.6.3 )-3422(Con\336gur)10(ation )-278(Limits)-2160(559)]TJ T* [(15.6.4 )-3422(Adv)25(antages )-278(and )-278(Disadv)25(antages )-1882(559)]TJ -0 -1.3 Td [(15.7 )-2456(Message)-556(Queues )-1882(561)]TJ T* [(15.8 )-2456(Semaphores)-2160(565)]TJ T* [(15.9 )-2456(Shared)-556(Memor )248(y)-2160(571)]TJ 0 -1.3 Td [(15.10 )-1900(POSIX)-556(Semaphores )-1882(579)]TJ T* [(15.11 )-1900(Client\320Ser)]TJ -0.025 Tc 9.378 0 Td (ve)Tj 0.556 Tc 1.031 0 Td (rP)Tj 0 Tc 1.556 0 Td [(roper )238(ties)-2160(585)]TJ -11.965 -1.3 Td [(15.12 )-1900(Summar)]TJ 2.16 Tc 8.488 0 Td (y5)Tj 0 Tc 3.216 0 Td (87)Tj /TT1 1 Tf -14.224 -2.47 Td [(Chapter )-278(16.)-1476(Netw)20(ork )-278(IPC: )-278(Soc)20(kets )]TJ 34.118 0 Td (589)Tj /TT0 1 Tf -31.598 -1.82 Td [(16.1 )-2456(Introduction)-2160(589)]TJ T* [(16.2 )-2456(Soc)]TJ -0.02 Tc 6.383 0 Td (ke)Tj 0.556 Tc 1.036 0 Td (tD)Tj 0 Tc 1.556 0 Td [(escr )263(iptors)-2160(590)]TJ -8.975 -1.3 Td [(16.3 )-2456(Addressing)-2160(593)]TJ T* [(16.3.1 )-3422(Byte)-556(Order )263(ing)-2160(593)]TJ -0 -1.3 Td [(16.3.2 )-3422(Address)]TJ -0.03 Tc 10.704 0 Td (Fo)Tj 0.025 Tc 1.137 0 Td (rm)Tj 0 Tc 1.191 0 Td [(ats )-1882(595)]TJ -13.032 -1.3 Td [(16.3.3 )-3422(Address)-556(Lookup )-1882(597)]TJ T* [(16.3.4 )-3422(Associating)-556(Addresses )-278(with )-278(Soc)]TJ -0.02 Tc 21.466 0 Td (ke)Tj 0 Tc 1.036 0 Td [(ts )-1882(604)]TJ -22.502 -1.3 Td [(16.4 )-2456(Connection)-556(Estab)20(lishment )-1882(605)]TJ -0 -1.3 Td [(16.5 )-2456(Data)]TJ -0.12 Tc 7.348 0 Td [(Tr )48(a)]TJ 0 Tc 1.37 0 Td [(nsf)30(er )-1882(610)]TJ -8.718 -1.3 Td [(16.6 )-2456(Soc)]TJ -0.02 Tc 6.383 0 Td (ke)Tj 0.556 Tc 1.036 0 Td (tO)Tj 0 Tc 1.612 0 Td [(ptions )-1882(623)]TJ -9.031 -1.3 Td [(16.7 )-2456(Out-of-Band)-556(Data )-1882(626)]TJ T* [(16.8 )-2456(Nonb)20(loc)20(king )-278(and )-278(Asynchronous )-278(I/O)-2160(627)]TJ 0 -1.3 Td [(16.9 )-2456(Summar)]TJ 2.16 Tc 8.488 0 Td (y6)Tj 0 Tc 3.216 0 Td (28)Tj /TT1 1 Tf -14.224 -2.47 Td [(Chapter )-278(17.)-1476(Ad)]TJ -0.02 Tc 8.518 0 Td (va)Tj 0 Tc 1.092 0 Td [(nced )-278(IPC)]TJ 24.508 0 Td (629)Tj /TT0 1 Tf -31.598 -1.82 Td [(17.1 )-2456(Introduction)-2160(629)]TJ T* [(17.2 )-2456(UNIX)-556(Domain )-278(Soc)]TJ -0.02 Tc 13.329 0 Td (ke)Tj 0 Tc 1.036 0 Td [(ts )-1882(629)]TJ -14.365 -1.3 Td [(17.2.1 )-3422(Naming)-556(UNIX )-278(Domain )-278(Soc)]TJ -0.02 Tc 19.13 0 Td (ke)Tj 0 Tc 1.036 0 Td [(ts )-1882(634)]TJ -20.166 -1.3 Td [(17.3 )-2456(Unique)-556(Connections )-1882(635)]TJ T* [(17.4 )-2456(P)40(assing )-278(File )-278(Descr)-15(iptors )-1882(642)]TJ -0 -1.3 Td [(17.5 )-2456(An)-556(Open )-278(Ser)]TJ -0.025 Tc 11.047 0 Td (ve)Tj -0.05 Tc 1.031 0 Td [(r, )-378(V)]TJ 0 Tc 1.704 0 Td [(ersion )-278(1)-2160(653)]TJ -13.782 -1.3 Td [(17.6 )-2456(An)-556(Open )-278(Ser)]TJ -0.025 Tc 11.047 0 Td (ve)Tj -0.05 Tc 1.031 0 Td [(r, )-378(V)]TJ 0 Tc 1.704 0 Td [(ersion )-278(2)-2160(659)]TJ -13.782 -1.3 Td [(17.7 )-2456(Summar)]TJ 2.16 Tc 8.488 0 Td (y6)Tj 0 Tc 3.216 0 Td (69)Tj /TT1 1 Tf -14.224 -2.47 Td [(Chapter )-278(18.)]TJ -0.06 Tc 7.2 0 Td (Te)Tj 0 Tc 1.107 0 Td [(rminal )-278(I/O)]TJ 25.811 0 Td (671)Tj /TT0 1 Tf -31.598 -1.82 Td [(18.1 )-2456(Introduction)-2160(671)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46901 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.7)]TJ 39.488 0 Td (Summary)Tj /T1_1 1 Tf 6.345 0 Td (669)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (/* parse the arguments, set options */)Tj 0 -1.189 TD (if \(buf_args\(buf, cli_args\) < 0\) {)Tj 2.4 -1.189 Td (send_err\(clifd, -1, errmsg\);)Tj T* (log_msg\(errmsg\);)Tj T* (return;)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (if \(\(newfd = open\(pathname, oflag\)\) < 0\) {)Tj 2.4 -1.189 Td (snprintf\(errmsg, MAXLINE-1, "can\325t open %s: %s\\n",)Tj 1.2 -1.189 Td (pathname, strerror\(errno\)\);)Tj -1.2 -1.189 Td (send_err\(clifd, -1, errmsg\);)Tj 0 -1.189 TD (log_msg\(errmsg\);)Tj 0 -1.189 TD (return;)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (/* send the descriptor */)Tj 0 -1.189 TD (if \(send_fd\(clifd, newfd\) < 0\))Tj 2.4 -1.189 Td (log_sys\("send_fd error"\);)Tj -2.4 -1.189 Td (log_msg\("sent fd %d over fd %d for %s", newfd, clifd, pathname\);)Tj T* [(close\(newfd\); )-3600(/*)-600(we\325re done with descriptor */)]TJ -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4558.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 241.339 439.7262 Tm (Figure 17.31)Tj /T1_0 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (request)Tj /T1_0 1 Tf 4.45 0 Td (function, version 2)Tj 9.9988 0 0 9.9988 129.5848 415.7291 Tm [(This )-123(completes )-123(the )-123(second )-123(version )-123(of )-123(the )-123(open )-123(server)]TJ 0.3726 Tc 24.256 0 Td (,w)Tj 0 Tc 1.457 0 Td [(hich )-122(uses )-122(a )-122(single )-122(daemon )-122(to)]TJ -25.712 -1.2 Td [(handle all the client r)18(equests.)]TJ /TT1 1 Tf 11.9986 0 0 11.9986 93.5892 367.7349 Tm [(17.7 )-776(Summar)-10(y)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5848 343.7377 Tm [(The )-73(key )-73(points )-73(in )-73(this )-73(chapter )-73(ar)]TJ 0.3235 Tc 14.676 0 Td (et)Tj 0 Tc 1.129 0 Td [(he )-73(ability )-73(to )-73(pass )-73(\336le )-73(descriptors )-73(between )-73(pr)15(ocesses)]TJ -15.805 -1.2 Td [(and )-223(the )-223(ability )-223(of )-223(a )-223(server )-223(to )-223(accept )-223(unique )-223(connections )-223(fr)18(om )-223(clients.)-723(Although )-223(all)]TJ 0 -1.2 TD [(platforms )-90(pr)18(ovide )-90(support )-90(for )-90(UNIX )-90(domain )-90(sockets )-90(\(r)18(efer )-90(back )-90(to )-90(Figur)]TJ 0.3405 Tc 32.872 0 Td (e1)Tj 0 Tc 1.319 0 Td [(5.1\), )-90(we\325ve)]TJ -34.192 -1.2 Td [(seen )-16(that )-16(ther)]TJ 0.2665 Tc 5.995 0 Td (ea)Tj -0.018 Tc 1.246 0 Td [(re )-53(d)]TJ 0 Tc 1.734 0 Td [(if)18(fer)18(ences )-16(in )-16(each )-16(implementation, )-16(which )-16(makes )-16(it )-16(mor)]TJ 0.2664 Tc 24.254 0 Td (ed)Tj 0 Tc 1.356 0 Td [(if)18(\336cult )-16(for)]TJ -34.585 -1.2 Td (us to develop portable applications.)Tj -0.092 Tc 1.8 -1.2 Td [(We )-264(u)]TJ 0 Tc 2.32 0 Td [(sed )-80(UNIX )-80(domain )-80(sockets )-80(thr)18(oughout )-80(this )-80(chapter)]TJ 0.5802 Tc 22.643 0 Td (.W)Tj 0.3302 Tc 1.738 0 Td (es)Tj 0 Tc 1.233 0 Td [(aw )-80(how )-80(to )-80(use )-80(them)]TJ -29.735 -1.2 Td [(to )-399(implement )-399(a )-399(full-duplex )-399(pipe )-399(and )-399(how )-399(they )-399(can )-399(be )-399(used )-399(to )-399(adapt )-399(the )-399(I/O)]TJ T* [(multiplexing functions fr)18(om Section 14.4 to work indir)18(ectly with XSI message queues.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-219(p)]TJ -0.018 Tc 2.273 0 Td (re)Tj 0 Tc 0.856 0 Td [(sented )-35(two )-35(versions )-35(of )-35(an )-35(open )-35(server)]TJ 0.5354 Tc 16.857 0 Td (.O)Tj 0 Tc 1.571 0 Td [(ne )-35(version )-35(was )-35(invoked )-35(dir)18(ectly )-35(by)]TJ -23.358 -1.2 Td [(the )-155(client, )-155(using)]TJ /TT0 1 Tf 7.722 0 Td (fork)Tj /T1_0 1 Tf 2.805 0 Td (and)Tj /TT0 1 Tf 2.098 0 Td (exec)Tj /T1_0 1 Tf 0.6552 Tc (.T)Tj 0 Tc 3.918 0 Td [(he )-155(second )-155(was )-155(a )-155(daemon )-155(server )-155(that )-155(handled )-155(all)]TJ -16.543 -1.2 Td [(client r)18(equests. )-250(Both)-250(versions used the \336le descriptor passing and r)18(eceiving functions.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-292(a)]TJ 0 Tc 2.245 0 Td [(lso )-108(saw )-108(how )-108(to )-108(use )-108(the)]TJ /TT0 1 Tf 10.895 0 Td (getopt)Tj /T1_0 1 Tf 3.958 0 Td [(function )-108(to )-108(enfor)18(ce )-108(consistent )-108(command)]TJ 18.125 0.09 Td (-)Tj 0.333 -0.09 Td (line)Tj -37.357 -1.2 Td [(pr)18(ocessing )-167(for )-167(our )-167(pr)17(ograms. )-417(The)-418(\336nal )-167(version )-167(of )-167(the )-167(open )-167(server )-167(used )-167(the)]TJ /TT0 1 Tf 35.4 0 Td (getopt)Tj /T1_0 1 Tf -35.4 -1.2 Td [(function, )-51(the )-51(client\320server )-51(connection )-51(functions )-51(intr)18(oduced )-51(in )-51(Section )-51(17.3, )-51(and )-51(the )-51(I/O)]TJ T* [(multiplexing functions fr)18(om Section 14.4.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46902 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.6)]TJ 31.183 0 Td [(An )-250(Open )-250(Server)]TJ 0.5 Tc 7.572 0 Td (,V)Tj 0 Tc 1.361 0 Td [(ersion )-250(2)]TJ /T1_1 1 Tf 5.717 0 Td (659)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(17.6 )-776(An)-556(Open )-278(Ser)-10(ver)]TJ 0.556 Tc 11.064 0 Td (,V)Tj 0 Tc 1.451 0 Td [(er)15(sion )-278(2)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5925 644.9613 Tm [(In )-59(the )-59(pr)17(evious )-59(section, )-59(we )-59(developed )-59(an )-59(open )-59(server )-59(that )-59(was )-59(invoked )-59(by )-59(a)]TJ /TT1 1 Tf 34.597 0 Td (fork)Tj /T1_0 1 Tf 2.709 0 Td (and)Tj /TT1 1 Tf -37.307 -1.2 Td (exec)Tj /T1_0 1 Tf 2.777 0 Td [(by )-127(the )-127(client, )-127(demonstrating )-127(how )-127(we )-127(can )-127(pass )-127(\336le )-127(descriptors )-127(fr)18(om )-127(a )-127(child )-127(to )-127(a)]TJ -2.777 -1.2 Td [(par)18(ent. )-388(In)-389(this )-138(section, )-138(we )-138(develop )-138(an )-138(open )-138(server )-138(as )-138(a )-138(daemon )-138(pr)16(ocess. )-388(One)-388(server)]TJ 0 -1.2 Td [(handles )-4(all )-4(clients.)]TJ -0.092 Tc 8.649 0 Td [(We )-188(e)]TJ 0 Tc 2.12 0 Td [(xpect )-4(this )-4(design )-4(to )-4(be )-4(mor)]TJ 0.2537 Tc 11.911 0 Td (ee)Tj -0.018 Tc 1.212 0 Td (f\336)Tj 0 Tc 0.92 0 Td [(cient, )-4(since )-4(a)]TJ /TT1 1 Tf 5.853 0 Td (fork)Tj /T1_0 1 Tf 2.654 0 Td [(and )-4(an)]TJ /TT1 1 Tf 3.282 0 Td (exec)Tj /T1_0 1 Tf -36.6 -1.2 Td (ar)Tj 0.4549 Tc 0.877 0 Td (ea)Tj 0 Tc 1.434 0 Td [(voided. )-455(W)]TJ 0.4549 Tc 4.966 0 Td (eu)Tj 0 Tc 1.537 0 Td [(se )-205(a )-205(UNIX )-205(domain )-205(socket )-205(connection )-205(between )-205(the )-205(client )-205(and )-205(the)]TJ -8.814 -1.2 Td [(server )-40(and )-40(demonstrate )-40(passing )-40(\336le )-40(descriptors )-40(between )-40(unr)18(elated )-40(pr)19(ocesses. )-290(W)92(e\325ll )-40(use)]TJ -0 -1.2 Td [(the )-413(thr)18(ee )-413(functions)]TJ /TT1 1 Tf 9.75 0 Td (serv_listen)Tj /T1_0 1 Tf (,)Tj /TT1 1 Tf 7.513 0 Td (serv_accept)Tj /T1_0 1 Tf 0.6629 Tc (,a)Tj 0 Tc 8.013 0 Td (nd)Tj /TT1 1 Tf 1.856 0 Td (cli_conn)Tj /T1_0 1 Tf 5.463 0 Td [(intr)18(oduced )-413(in)]TJ -32.594 -1.2 Td [(Section )-168(17.3.)-668(This )-168(server )-168(also )-168(demonstrates )-168(how )-168(a )-168(single )-168(server )-168(can )-168(handle )-168(multiple)]TJ 0 -1.2 TD (clients, using both the)Tj /TT1 1 Tf 9.937 0 Td (select)Tj /T1_0 1 Tf 3.85 0 Td (and)Tj /TT1 1 Tf 1.943 0 Td (poll)Tj /T1_0 1 Tf 2.65 0 Td [(functions fr)18(om Section 14.4.)]TJ -16.58 -1.2 Td [(This )-95(version )-95(of )-95(the )-95(client )-95(is )-95(similar )-95(to )-95(the )-95(client )-95(fr)18(om )-95(Section )-95(17.5.)-595(Indeed, )-95(the )-95(\336le)]TJ /TT1 1 Tf -1.8 -1.2 Td (main.c)Tj /T1_0 1 Tf 4.006 0 Td [(is )-156(identical )-156(\(Figur)]TJ 0.406 Tc 8.058 0 Td (e1)Tj 0 Tc 1.385 0 Td [(7.18\). )-406(W)]TJ 0.406 Tc 3.897 0 Td (ea)Tj 0 Tc 1.385 0 Td [(dd )-156(the )-156(following )-156(line )-156(to )-156(the)]TJ /TT1 1 Tf 13.217 0 Td (open.h)Tj /T1_0 1 Tf 4.006 0 Td (header)Tj -35.954 -1.2 Td (\(Figur)Tj 0.25 Tc 2.716 0 Td (e1)Tj 0 Tc 1.229 0 Td (7.17\):)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.592 493.0602 Tm [(#define CS_OPEN "/tmp/opend.socket")-1200(/* server\325s well-known name */)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5931 471.8517 Tm [(The )-17(\336le)]TJ /TT1 1 Tf 3.583 0 Td (open.c)Tj /T1_0 1 Tf 3.867 0 Td [(does )-17(change )-17(fr)18(om )-17(Figur)]TJ 0.2667 Tc 10.525 0 Td (e1)Tj 0 Tc 1.246 0 Td [(7.19, )-17(since )-17(we )-17(now )-17(call)]TJ /TT1 1 Tf 10.355 0 Td (cli_conn)Tj /T1_0 1 Tf 5.067 0 Td [(instead )-17(of)]TJ -34.641 -1.2 Td (doing the)Tj /TT1 1 Tf 4.473 0 Td (fork)Tj /T1_0 1 Tf 2.65 0 Td (and)Tj /TT1 1 Tf 1.943 0 Td (exec)Tj /T1_0 1 Tf 0.5 Tc (.T)Tj 0 Tc 3.763 0 Td (his is shown in Figur)Tj 0.25 Tc 9.236 0 Td (e1)Tj 0 Tc 1.229 0 Td (7.25.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4527.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 443.1258 Tm [(#include )-1800("open.h")]TJ 0 -1.189 TD [(#include )-1800()-3000(/* struct iovec */)]TJ 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*O)Tj 0 Tc 1.8 0 Td (pen the file by sending the "name" and "oflag" to the)Tj 0.6 Tc -1.8 -1.189 Td (*c)Tj 0 Tc 1.8 0 Td (onnection server and reading a file descriptor back.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (int)Tj 0 -1.189 TD (csopen\(char *name, int oflag\))Tj T* ({)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td (len;)Tj -9.6 -1.189 Td (char )Tj 9.6 0 Td (buf[12];)Tj -9.6 -1.189 Td [(struct iovec)-2400(iov[3];)]TJ T* [(static int)-3600(csfd = -1;)]TJ 0 -2.021 TD [(if \(csfd < 0\) {)-3000(/* open connection to conn server */)]TJ 2.4 -1.189 Td (if \(\(csfd = cli_conn\(CS_OPEN\)\) < 0\) {)Tj 2.4 -1.189 Td (err_ret\("cli_conn error"\);)Tj 0 -1.189 TD (return\(-1\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD [(sprintf\(buf, " %d", oflag\);)-3000(/* oflag to ascii */)]TJ 0 -1.189 TD [(iov[0].iov_base = CL_OPEN " ";)-1200(/* string concatenation */)]TJ T* [(iov[0].iov_len )-600(=)-600(strlen\(CL_OPEN\) + 1;)]TJ T* (iov[1].iov_base = name;)Tj T* [(iov[1].iov_len )-600(=)-600(strlen\(name\);)]TJ T* (iov[2].iov_base = buf;)Tj T* [(iov[2].iov_len )-600(=)-600(strlen\(buf\) + 1;)-1200(/* null always sent */)]TJ T* (len = iov[0].iov_len + iov[1].iov_len + iov[2].iov_len;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46903 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.5)]TJ 31.183 0 Td [(An )-250(Open )-250(Server)]TJ 0.5 Tc 7.572 0 Td (,V)Tj 0 Tc 1.361 0 Td [(ersion )-250(1)]TJ /T1_1 1 Tf 5.717 0 Td (653)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(17.5 )-776(An)-556(Open )-278(Ser)-10(ver)]TJ 0.556 Tc 11.064 0 Td (,V)Tj 0 Tc 1.451 0 Td [(er)15(sion )-278(1)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5925 649.761 Tm [(Using )-250(\336le )-250(descriptor )-250(passing, )-250(we )-250(now )-250(develop )-250(an )-250(open )-250(server)]TJ 0.0833 Tc 29.608 0 Td [(\321a )-84(p)]TJ -0.018 Tc 2.685 0 Td (ro)Tj 0 Tc 0.923 0 Td [(gram )-251(that )-251(is)]TJ -33.216 -1.2 Td [(executed )-58(by )-58(a )-58(pr)19(ocess )-58(to )-58(open )-58(one )-58(or )-58(mor)]TJ 0.3076 Tc 18.736 0 Td (e\336)Tj 0 Tc 1.392 0 Td [(les. )-308(Instead)-307(of )-58(sending )-58(the )-58(contents )-58(of )-58(the)]TJ -20.128 -1.2 Td [(\336le )-69(back )-69(to )-69(the )-69(calling )-69(pr)18(ocess, )-69(however)]TJ 0.3194 Tc 17.909 0 Td (,t)Tj 0 Tc 0.895 0 Td [(his )-69(server )-69(sends )-69(back )-69(an )-69(open )-69(\336le )-69(descriptor)71(.)]TJ -18.804 -1.2 Td [(As )-26(a )-26(r)18(esult, )-26(the )-26(open )-26(server )-26(can )-26(work )-26(with )-26(any )-26(type )-26(of )-26(\336le )-26(\(such )-26(as )-26(a )-26(device )-26(or )-26(a )-26(socket\))]TJ 0 -1.2 TD [(and )-167(not )-167(simply )-167(r)18(egular )-167(\336les.)-667(The )-167(client )-167(and )-167(server )-167(exchange )-167(a )-167(minimum )-167(amount )-167(of)]TJ T* [(information )-342(using )-342(IPC: )-342(the )-342(\336lename )-342(and )-342(open )-342(mode )-342(sent )-342(by )-342(the )-342(client, )-342(and )-342(the)]TJ T* [(descriptor r)18(eturned by the server)]TJ 0.5 Tc 14.523 0 Td (.T)Tj 0 Tc 1.363 0 Td (he contents of the \336le ar)Tj 0.25 Tc 10.538 0 Td (en)Tj 0 Tc 1.311 0 Td (ot exchanged using IPC.)Tj -25.935 -1.2 Td (Ther)Tj 0.4159 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.395 0 Td [(re )-202(s)]TJ 0 Tc 1.696 0 Td [(everal )-166(advantages )-166(in )-166(designing )-166(the )-166(server )-166(to )-166(be )-166(a )-166(separate )-166(executable)]TJ -6.942 -1.2 Td [(pr)18(ogram )-126(\(either )-126(one )-126(that )-126(is )-126(executed )-126(by )-126(the )-126(client, )-126(as )-126(we )-126(develop )-126(in )-126(this )-126(section, )-126(or )-126(a)]TJ T* (daemon server)Tj 0.25 Tc 6.514 0 Td (,w)Tj 0 Tc 1.334 0 Td (hich we develop in the next section\).)Tj 0.883 Tc -6.048 -1.56 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-131(server )-131(can )-131(easily )-131(be )-131(contacted )-131(by )-131(any )-131(client, )-131(similar )-131(to )-131(the )-131(client )-131(calling )-131(a)]TJ -0.613 -1.2 Td [(library )-534(function.)]TJ -0.092 Tc 8.756 0 Td [(We )-718(a)]TJ -0.018 Tc 2.671 0 Td [(re )-570(n)]TJ 0 Tc 2.222 0 Td [(ot )-534(har)18(d-coding )-534(a )-534(particular )-534(service )-534(into )-534(the)]TJ -13.648 -1.2 Td [(application, but designing a general facility that others can r)18(euse.)]TJ 0.883 Tc -1.489 -1.36 Td (\245I)Tj 0 Tc 1.826 0 Td [(f)-341(we)-341(n)-1(eed )-91(to )-91(change )-91(the )-91(server)]TJ 0.3415 Tc 13.91 0 Td (,o)Tj 0 Tc 1.137 0 Td [(nly )-91(a )-91(single )-91(pr)18(ogram )-91(is )-91(af)16(fected. )-341(Conversely)111(,)]TJ -15.385 -1.2 Td [(updating )-2(a )-2(library )-2(function )-2(can )-2(r)18(equir)]TJ 0.2521 Tc 16.731 0 Td (et)Tj 0 Tc 1.057 0 Td [(hat )-2(all )-2(pr)18(ograms )-2(that )-2(call )-2(the )-2(function )-2(be)]TJ -17.789 -1.2 Td [(updated )-143(\(i.e., )-143(r)18(elinked )-143(with )-143(the )-143(link )-143(editor\).)-646(Shar)18(ed )-143(libraries )-143(can )-143(simplify )-143(this)]TJ -0 -1.2 Td (updating \(Section 7.7\).)Tj 0.883 Tc -1.489 -1.36 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-513(server )-513(can )-513(be )-513(a )-513(set-user)18(-ID )-513(pr)18(ogram, )-513(pr)18(oviding )-513(it )-513(with )-513(additional)]TJ -0.613 -1.2 Td [(permissions )-7(that )-7(the )-7(client )-7(does )-7(not )-7(have.)-507(Note )-7(that )-7(a )-7(library )-7(function )-7(\(or )-7(shar)13(ed)]TJ T* [(library function\) can\325t pr)18(ovide this capability)111(.)]TJ -1.489 -1.56 Td [(The )-112(client )-112(pr)18(ocess )-112(cr)18(eates )-112(an )-112(fd-pipe )-112(and )-112(then )-112(calls)]TJ /TT1 1 Tf 23.616 0 Td (fork)Tj /T1_0 1 Tf 2.763 0 Td (and)Tj /TT1 1 Tf 2.056 0 Td (exec)Tj /T1_0 1 Tf 2.763 0 Td [(to )-112(invoke )-112(the)]TJ -32.997 -1.2 Td (server)Tj 0.5275 Tc 2.663 0 Td (.T)Tj 0 Tc 1.391 0 Td [(he )-27(client )-27(sends )-27(r)18(equests )-27(acr)18(oss )-27(the )-27(fd-pipe )-27(using )-27(one )-27(end, )-27(and )-27(the )-27(server )-27(sends)]TJ -4.054 -1.2 Td [(back r)18(esponses over the fd-pipe using the other end.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-184(d)]TJ 0 Tc 2.248 0 Td [(e\336ne the following application pr)18(otocol between the client and the server)74(.)]TJ -2.248 -1.56 Td [(1. )-633(The)-610(client )-360(sends )-360(a )-360(r)18(equest )-360(of )-360(the )-360(form )-360(\324)40(\324)]TJ /TT1 1 Tf (open)Tj /T1_2 1 Tf 24.707 0 Td [( )-250()]TJ /T1_0 1 Tf [(\\0\325)37(\325)]TJ -23.074 -1.2 Td [(acr)18(oss )-49(the )-49(fd-pipe )-49(to )-49(the )-49(server)]TJ 0.5486 Tc 13.766 0 Td (.T)Tj 0 Tc 1.412 0 Td (he)Tj /T1_2 1 Tf 1.36 0 Td ()Tj /T1_0 1 Tf 5.511 0 Td [(is )-49(the )-49(numeric )-49(value, )-49(in )-49(ASCII)]TJ -22.048 -1.2 Td [(decimal, )-154(of )-154(the )-154(second )-154(ar)18(gument )-154(to )-154(the)]TJ /TT1 1 Tf 18.494 0 Td (open)Tj /T1_0 1 Tf 2.804 0 Td [(function. )-404(This)]TJ -0.018 Tc 6.925 0 Td (re)Tj 0 Tc 0.856 0 Td [(quest )-154(string )-154(is)]TJ -29.078 -1.2 Td (terminated by a null byte.)Tj -1.633 -1.36 Td [(2. )-633(The)-288(server )-38(sends )-38(back )-38(an )-38(open )-38(descriptor )-38(or )-38(an )-38(err)15(or )-38(by )-38(calling )-38(either)]TJ /TT1 1 Tf 33 0 Td (send_fd)Tj /T1_0 1 Tf -31.367 -1.2 Td (or)Tj /TT1 1 Tf 1.191 0 Td (send_err)Tj /T1_0 1 Tf (.)Tj -4.624 -1.56 Td [(This )-10(is )-10(an )-10(example )-10(of )-10(a )-10(pr)18(ocess )-10(sending )-10(an )-10(open )-10(descriptor )-10(to )-10(its )-10(par)23(ent. )-259(In)-260(Section )-9(17.6,)]TJ T* [(we\325ll )-202(modify )-202(this )-202(example )-202(to )-202(use )-202(a )-202(single )-202(daemon )-202(server)]TJ 0.4518 Tc 26.596 0 Td (,w)Tj 0 Tc 1.536 0 Td (her)Tj 0.4518 Tc 1.438 0 Td (et)Tj 0 Tc 1.257 0 Td [(he )-202(server )-202(sends )-202(a)]TJ -30.827 -1.2 Td [(descriptor to a completely unr)18(elated pr)18(ocess.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-473(\336)]TJ 0 Tc 2.531 0 Td [(rst )-289(have )-289(the )-289(header)75(,)]TJ /TT1 1 Tf 10.034 0 Td (open.h)Tj /T1_0 1 Tf 4.139 0 Td (\(Figur)Tj 0.5385 Tc 2.716 0 Td (e1)Tj 0 Tc 1.517 0 Td [(7.17\), )-288(which )-288(includes )-288(the )-288(standar)16(d)]TJ -22.737 -1.2 Td [(headers and de\336nes the function pr)18(ototypes.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2154.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 205.8743 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (#define CL_OPEN "open")Tj 19.2 0 Td (/* client\325s request for server */)Tj -19.2 -1.783 Td [(int )-2400(csopen\(char)-600(*, int\);)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1583.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 264.4924 142.2724 Tm (Figure 17.17)Tj /T1_0 1 Tf 6.195 0 Td (The)Tj /TT1 1 Tf 1.924 0 Td (open.h)Tj /T1_0 1 Tf 3.85 0 Td (header)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46904 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (642)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(We )-562(t)]TJ 0 Tc 2.341 0 Td [(hen )-378(have )-378(to )-378(\336ll )-378(in )-378(another)]TJ /TT0 1 Tf 13.878 0 Td (sockaddr_un)Tj /T1_1 1 Tf 7.228 0 Td [(str)8(uctur)18(e, )-378(this )-378(time )-378(with )-378(the)]TJ -25.247 -1.2 Td [(well-known )-124(pathname )-124(of )-124(the )-124(server)]TJ 0.6244 Tc 16.208 0 Td (.F)Tj 0 Tc 1.43 0 Td [(inally)111(,)-374(we)-374(c)-1(all )-124(the)]TJ /TT0 1 Tf 8.374 0 Td (connect)Tj /T1_1 1 Tf 4.574 0 Td [(function )-124(to )-124(initiate)]TJ -30.586 -1.2 Td [(the connection with the server)74(.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5944 608.9635 Tm [(17.4 )-776(P)30(assing )-278(File )-278(Descriptor)15(s)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5923 584.9649 Tm [(Passing )-81(an )-81(open )-81(\336le )-81(descriptor )-81(between )-81(pr)18(ocesses )-81(is )-81(a )-81(powerful )-81(technique.)-581(It )-81(can )-81(lead)]TJ 0 -1.2 TD [(to )-427(dif)18(fer)18(ent )-427(ways )-427(of )-427(designing )-427(client\320server )-427(applications.)-927(It )-427(allows )-427(one )-427(pr)16(ocess)]TJ -0 -1.2 Td [(\(typically )-219(a )-219(server\) )-219(to )-219(do )-219(everything )-219(that )-219(is )-219(r)18(equir)18(ed )-219(to )-219(open )-219(a )-219(\336le )-219(\(involving )-219(such)]TJ T* [(details )-210(as )-210(translating )-210(a )-210(network )-210(name )-210(to )-210(a )-210(network )-210(addr)14(ess, )-210(dialing )-210(a )-210(modem, )-210(and)]TJ T* [(negotiating )-112(locks )-112(for )-112(the )-112(\336le\) )-112(and )-112(simply )-112(pass )-112(back )-112(to )-112(the )-112(calling )-112(pr)13(ocess )-112(a )-112(descriptor)]TJ T* [(that )-54(can )-54(be )-54(used )-54(with )-54(all )-54(the )-54(I/O )-54(functions.)-550(All )-54(the )-54(details )-54(involved )-54(in )-54(opening )-54(the )-54(\336le)]TJ T* (or device ar)Tj 0.25 Tc 5.187 0 Td (eh)Tj 0 Tc 1.311 0 Td [(idden fr)18(om the client.)]TJ -0.092 Tc -4.698 -1.2 Td [(We )-196(m)]TJ 0 Tc 2.532 0 Td [(ust )-12(be )-12(mor)]TJ 0.2621 Tc 4.715 0 Td (es)Tj 0 Tc 1.165 0 Td [(peci\336c )-12(about )-12(what )-12(we )-12(mean )-12(by )-12(\324)36(\324passing )-12(an )-12(open )-12(\336le )-12(descriptor)]TJ -0.037 Tc 28.269 0 Td (\325\325)Tj 0 Tc -38.481 -1.2 Td [(fr)18(om )-76(one )-76(pr)17(ocess )-76(to )-76(another)]TJ 0.5764 Tc 12.554 0 Td (.R)Tj 0 Tc 1.494 0 Td [(ecall )-76(Figur)]TJ 0.3264 Tc 4.714 0 Td (e3)Tj 0 Tc 1.305 0 Td [(.8, )-76(which )-76(showed )-76(two )-76(pr)18(ocesses )-76(that )-76(have)]TJ -20.069 -1.2 Td [(opened )-88(the )-88(same )-88(\336le.)-588(Although )-88(they )-88(shar)]TJ 0.3384 Tc 18.966 0 Td (et)Tj 0 Tc 1.143 0 Td [(he )-88(same )-88(v-node, )-88(each )-88(pr)18(ocess )-88(has )-88(its )-88(own)]TJ -20.11 -1.2 Td [(\336le table entry)111(.)]TJ 1.8 -1.2 Td [(When )-155(we )-155(pass )-155(an )-155(open )-155(\336le )-155(descriptor )-155(fr)18(om )-155(one )-155(pr)18(ocess )-155(to )-155(another)69(,)-405(we)-405(w)-1(ant )-155(the)]TJ -1.8 -1.2 Td [(passing )-12(pr)18(ocess )-12(and )-12(the )-12(r)18(eceiving )-12(pr)18(ocess )-12(to )-12(shar)]TJ 0.2624 Tc 21.704 0 Td (et)Tj 0 Tc 1.067 0 Td [(he )-12(same )-12(\336le )-12(table )-12(entry)]TJ 0.5123 Tc 10.147 0 Td (.F)Tj 0 Tc 1.318 0 Td (igur)Tj 0.2623 Tc 1.827 0 Td (e1)Tj 0 Tc 1.241 0 Td [(7.1)55(1)]TJ -37.305 -1.2 Td [(shows the desir)18(ed arrangement.)]TJ -0.092 Tc 1.8 -1.2 Td (Te)Tj 0 Tc 1 0 Td [(chnically)111(,)-292(we)-292(a)]TJ -0.018 Tc 6.516 0 Td [(re )-78(p)]TJ 0 Tc 1.749 0 Td [(assing )-42(a )-42(pointer )-42(to )-42(an )-42(open )-42(\336le )-42(table )-42(entry )-42(fr)21(om )-42(one )-42(pr)18(ocess )-42(to)]TJ -11.065 -1.2 Td (another)Tj 0.5804 Tc 3.336 0 Td (.T)Tj 0 Tc 1.443 0 Td [(his )-80(pointer )-80(is )-80(assigned )-80(the )-80(\336rst )-80(available )-80(descriptor )-80(in )-80(the )-80(r)18(eceiving )-80(pr)15(ocess.)]TJ -4.779 -1.2 Td [(\(Saying )-16(that )-16(we )-16(ar)]TJ 0.2665 Tc 8.066 0 Td (ep)Tj 0 Tc 1.346 0 Td [(assing )-16(an )-16(open )-16(descriptor )-16(mistakenly )-16(gives )-16(the )-16(impr)15(ession )-17(that )-17(the)]TJ -9.413 -1.2 Td [(descriptor )-36(number )-36(in )-36(the )-36(r)18(eceiving )-36(pr)20(ocess )-36(is )-36(the )-36(same )-36(as )-36(in )-36(the )-36(sending )-36(pr)18(ocess, )-36(which)]TJ T* [(usually )-267(isn\325t )-267(tr)7(ue.\) )-517(Having)-518(two )-267(pr)18(ocesses )-267(shar)17(e)-517(an)-517(o)-1(pen )-268(\336le )-268(table )-268(is )-268(exactly )-268(what)]TJ -0 -1.2 Td (happens after a)Tj /TT0 1 Tf 7.052 0 Td (fork)Tj /T1_1 1 Tf 2.65 0 Td [(\(r)18(ecall Figur)]TJ 0.25 Tc 5.348 0 Td (e8)Tj 0 Tc 1.229 0 Td (.2\).)Tj -14.479 -1.2 Td [(What )-34(normally )-34(happens )-34(when )-34(a )-34(descriptor )-34(is )-34(passed )-34(fr)14(om )-34(one )-34(pr)18(ocess )-34(to )-34(another )-34(is)]TJ -1.8 -1.2 Td [(that )-2(the )-2(sending )-2(pr)18(ocess, )-2(after )-2(passing )-2(the )-2(descriptor)]TJ 0.2518 Tc 23.19 0 Td (,t)Tj 0 Tc 0.828 0 Td [(hen )-2(closes )-2(the )-2(descriptor)]TJ 0.5019 Tc 10.832 0 Td (.C)Tj 0 Tc 1.461 0 Td (losing)Tj -36.31 -1.2 Td [(the )-20(descriptor )-20(by )-20(the )-20(sender )-20(doesn\325t )-20(r)16(eally )-20(close )-20(the )-20(\336le )-20(or )-20(device, )-20(since )-20(the )-20(descriptor )-20(is)]TJ T* [(still )-158(consider)18(ed )-158(open )-158(by )-158(the )-158(r)18(eceiving )-158(pr)18(ocess )-158(\(even )-158(if )-158(the )-158(r)20(eceiver )-158(hasn\325t )-158(speci\336cally)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td (ceived the descriptor yet\).)Tj -0.092 Tc 0.944 -1.2 Td [(We )-362(d)]TJ 0 Tc 2.426 0 Td [(e\336ne )-178(the )-178(following )-178(thr)18(ee )-178(functions )-178(that )-178(we )-178(use )-178(in )-178(this )-178(chapter )-178(to )-178(send )-178(and)]TJ -0.018 Tc -4.226 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ceive )-296(\336le )-296(descriptors.)-796(Later )-296(in )-296(this )-296(section, )-296(we\325ll )-296(show )-296(the )-296(code )-296(for )-296(these )-296(thr)23(ee)]TJ -0.856 -1.2 Td (functions.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5921 243.0854 Tm (#include "apue.h")Tj 0 -2.021 TD (int send_fd\(int)Tj /T1_2 1 Tf 9.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (fd_to_send)Tj /TT0 1 Tf (\);)Tj -13.978 -2.021 Td (int send_err\(int)Tj /T1_2 1 Tf 10.2 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (status)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.244 0 Td (onst char *)Tj /T1_2 1 Tf (errmsg)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 6.429 -2.021 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT2 1 Tf 9.213 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -34.464 -2.021 Td (int recv_fd\(int)Tj /T1_2 1 Tf 9.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 2.578 0 Td (size_t \(*)Tj /T1_2 1 Tf (userfunc)Tj /TT0 1 Tf (\)\(int, const void *, size_t\)\);)Tj /T1_1 1 Tf 3.619 -2.021 Td [(Returns: \336le descriptor if OK, negative value on err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1476.25 cm 0 0 m 0 1045 l 3900 1045 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46905 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.3)]TJ 34.529 0 Td [(Unique )-250(Connections)]TJ /T1_1 1 Tf 11.304 0 Td (635)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (struct sockaddr_un un;)Tj 0 -2.021 TD (un.sun_family = AF_UNIX;)Tj 0 -1.189 TD (strcpy\(un.sun_path, "foo.socket"\);)Tj T* (if \(\(fd = socket\(AF_UNIX, SOCK_STREAM, 0\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("socket failed"\);)Tj -2.4 -1.189 Td (size = offsetof\(struct sockaddr_un, sun_path\) + strlen\(un.sun_path\);\ )Tj T* (if \(bind\(fd, \(struct sockaddr *\)&un, size\) < 0\))Tj 2.4 -1.189 Td (err_sys\("bind failed"\);)Tj -2.4 -1.189 Td (printf\("UNIX domain socket bound\\n"\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5510.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 221.9734 534.9448 Tm (Figure 17.5)Tj /T1_0 1 Tf 5.695 0 Td [(Binding an addr)18(ess to a UNIX domain socket)]TJ 9.9988 0 0 9.9988 147.5825 508.548 Tm [(When )-121(we )-121(r)8(un )-121(this )-121(pr)18(ogram, )-121(the)]TJ /TT0 1 Tf 14.874 0 Td (bind)Tj /T1_0 1 Tf -0.018 Tc 2.771 0 Td (re)Tj 0 Tc 0.856 0 Td [(quest )-121(succeeds.)-621(If )-121(we )-121(r)8(un )-121(the )-121(pr)18(ogram )-121(a)]TJ -20.301 -1.2 Td [(second )-170(time, )-170(however)75(,)-420(we)-420(g)1(et )-170(an )-170(err)19(or)]TJ 0.4196 Tc 17.763 0 Td (,b)Tj 0 Tc 1.223 0 Td [(ecause )-170(the )-170(\336le )-170(alr)18(eady )-170(exists.)-670(The )-170(pr)20(ogram)]TJ -18.985 -1.2 Td [(won\325t succeed again until we r)18(emove the \336le.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5824 467.8529 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /T1_2 1 Tf 27.6 0 Td [(run the pr)18(ogram)]TJ /TT0 1 Tf -28.8 -1.189 Td (UNIX domain socket bound)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l foo.socket)Tj /T1_2 1 Tf 27.6 0 Td (look at the socket \336le)Tj /TT0 1 Tf -28.8 -1.189 Td [(srwxr-xr-x )-600(1)-600(sar )-3600(0)-600(May 18 00:44 foo.socket)]TJ T* ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /T1_2 1 Tf 27.6 0 Td [(try to run the pr)18(ogram again)]TJ /TT0 1 Tf -28.8 -1.189 Td (bind failed: Address already in use)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (rm foo.socket)Tj /T1_2 1 Tf -0.018 Tc 27.6 0 Td (re)Tj 0 Tc 0.76 0 Td (move the socket \336le)Tj /TT0 1 Tf -29.56 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /T1_2 1 Tf 27.6 0 Td [(run the pr)18(ogram a third time)]TJ /TT0 1 Tf -28.8 -1.189 Td (UNIX domain socket bound)Tj /T1_2 1 Tf 28.8 0 Td (now it succeeds)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 147.5822 364.2653 Tm [(The )-19(way )-19(we )-19(determine )-19(the )-19(size )-19(of )-19(the )-19(addr)18(ess )-19(to )-19(bind )-19(is )-19(to )-19(calculate )-19(the )-19(of)17(fset )-19(of )-19(the)]TJ /TT0 1 Tf -1.8 -1.2 Td (sun_path)Tj /T1_0 1 Tf 5.287 0 Td [(member )-237(in )-237(the)]TJ /TT0 1 Tf 7.392 0 Td (sockaddr_un)Tj /T1_0 1 Tf 7.087 0 Td [(str)8(uctur)]TJ 0.4866 Tc 3.49 0 Td (ea)Tj 0 Tc 1.466 0 Td [(nd )-237(add )-237(to )-237(it )-237(the )-237(length )-237(of )-237(the)]TJ -24.721 -1.2 Td [(pathname, )-262(not )-262(including )-262(the )-262(terminating )-262(null )-262(byte.)-762(Since )-262(implementations )-262(vary )-262(in)]TJ 0 -1.2 TD [(which )-412(members )-412(pr)19(ecede)]TJ /TT0 1 Tf 12.284 0 Td (sun_path)Tj /T1_0 1 Tf 5.462 0 Td [(in )-412(the)]TJ /TT0 1 Tf 3.583 0 Td (sockaddr_un)Tj /T1_0 1 Tf 7.262 0 Td [(str)8(uctur)18(e, )-412(we )-412(use )-412(the)]TJ /TT0 1 Tf -28.59 -1.2 Td (offsetof)Tj /T1_0 1 Tf 5.066 0 Td (macr)Tj 0.2665 Tc 2.204 0 Td (of)Tj -0.018 Tc 1.146 0 Td (ro)Tj 0 Tc 0.923 0 Td (m)Tj /TT0 1 Tf 1.149 0 Td ()Tj /T1_0 1 Tf 6.266 0 Td [(\(included )-16(by)]TJ /TT0 1 Tf 5.887 0 Td (apue.h)Tj /T1_0 1 Tf [(\))-266(to)-266(c)-1(alculate )-16(the )-16(of)18(fset )-16(of )-16(the)]TJ /TT0 1 Tf -22.642 -1.2 Td (sun_path)Tj /T1_0 1 Tf 5.13 0 Td [(member )-80(fr)18(om )-80(the )-80(start )-80(of )-80(the )-80(str)6(uctur)18(e. )-330(If)-331(you )-80(look )-80(in)]TJ /TT0 1 Tf 24.724 0 Td ()Tj /T1_0 1 Tf 0.3303 Tc (,y)Tj 0 Tc 7.136 0 Td (ou\325ll)Tj -36.991 -1.2 Td (see a de\336nition similar to the following:)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 276.6457 Tm [(#define offsetof\(TYPE, MEMBER\))-1444(\(\(int\)&\(\(TYPE *\)0\)->MEMBER\))]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 259.718 Tm [(The )-167(expr)18(ession )-167(evaluates )-167(to )-167(an )-167(integer)]TJ 0.4175 Tc 17.635 0 Td (,w)Tj 0 Tc 1.501 0 Td [(hich )-167(is )-167(the )-167(starting )-167(addr)18(ess )-167(of )-167(the )-167(member)71(,)]TJ -19.137 -1.2 Td [(assuming that the str)8(uctur)]TJ 0.25 Tc 11.624 0 Td (eb)Tj 0 Tc 1.282 0 Td [(egins at addr)18(ess 0.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2477.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 11.9978 0 0 11.9978 93.5832 209.3113 Tm [(17.3 )-776(Unique)-556(Connections)]TJ /T1_0 1 Tf 0.2619 Tc 9.9982 0 0 9.9982 129.5767 187.7152 Tm (As)Tj 0 Tc 1.464 0 Td [(erver )-12(can )-12(arrange )-12(for )-12(unique )-12(UNIX )-12(domain )-12(connections )-12(to )-12(clients )-12(using )-12(the )-12(standar)19(d)]TJ /TT0 1 Tf -1.464 -1.2 Td (bind)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 2.927 0 Td (listen)Tj /T1_0 1 Tf 0.2768 Tc (,a)Tj 0 Tc 4.627 0 Td (nd)Tj /TT0 1 Tf 1.47 0 Td (accept)Tj /T1_0 1 Tf 3.877 0 Td [(functions. )-277(Clients)-277(use)]TJ /TT0 1 Tf 10.069 0 Td (connect)Tj /T1_0 1 Tf 4.477 0 Td [(to )-27(contact )-27(the )-27(server; )-27(after)]TJ -27.446 -1.2 Td [(the )-130(connect )-130(r)18(equest )-130(is )-130(accepted )-130(by )-130(the )-130(server)]TJ 0.3796 Tc 20.453 0 Td (,au)Tj 0 Tc 2.112 0 Td [(nique )-130(connection )-130(exists )-130(between )-130(the)]TJ -22.565 -1.2 Td [(client )-265(and )-265(the )-265(server)]TJ 0.7649 Tc 9.701 0 Td (.T)Tj 0 Tc 1.628 0 Td [(his )-265(style )-265(of )-265(operation )-265(is )-265(the )-265(same )-265(that )-265(we )-265(illustrated )-265(with)]TJ -11.329 -1.2 Td [(Internet domain sockets in Figur)18(es 16.16 and 16.17.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46906 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (634)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 129.5922 668.9599 Tm [(17.2.1 )-556(Naming)-556(UNIX )-278(Domain )-278(Soc)20(kets)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5923 644.9613 Tm [(Although )-5(the)]TJ /TT1 1 Tf 6.161 0 Td (socketpair)Tj /T1_1 1 Tf 6.255 0 Td [(function )-5(cr)18(eates )-5(sockets )-5(that )-5(ar)]TJ 0.2553 Tc 13.567 0 Td (ec)Tj 0 Tc 1.178 0 Td [(onnected )-5(to )-5(each )-5(other)]TJ 0.2553 Tc 9.946 0 Td (,t)Tj 0 Tc 0.831 0 Td (he)Tj -37.939 -1.2 Td [(individual )-257(sockets )-257(don\325t )-257(have )-257(names.)-757(This )-257(means )-257(that )-257(they )-257(can\325t )-257(be )-257(addr)16(essed )-257(by)]TJ 0 -1.2 TD [(unr)18(elated pr)18(ocesses.)]TJ 1.8 -1.2 Td [(In )-65(Section )-65(16.3.4, )-65(we )-65(learned )-65(how )-65(to )-65(bind )-65(an )-65(addr)18(ess )-65(to )-65(an )-65(Internet )-65(domain )-65(socket.)]TJ -1.8 -1.2 Td [(Just )-69(as )-69(with )-69(Internet )-69(domain )-69(sockets, )-69(UNIX )-69(domain )-69(sockets )-69(can )-69(be )-69(named )-69(and )-69(used )-69(to)]TJ T* [(advertise )-158(services.)-658(The )-158(addr)18(ess )-158(format )-158(used )-158(with )-158(UNIX )-158(domain )-158(sockets )-158(dif)22(fers )-158(fr)18(om)]TJ 0 -1.2 Td [(that used with Internet domain sockets, however)74(.)]TJ 1.8 -1.2 Td [(Recall )-11(fr)18(om )-11(Section )-11(16.3 )-11(that )-11(socket )-11(addr)18(ess )-11(formats )-11(dif)18(fer )-11(fr)16(om )-11(one )-11(implementation)]TJ -1.8 -1.2 Td [(to )-96(the )-96(next.)-596(An )-96(addr)18(ess )-96(for )-96(a )-96(UNIX )-96(domain )-96(socket )-96(is )-96(r)22(epr)18(esented )-96(by )-96(a)]TJ /TT1 1 Tf 32.4 0 Td (sockaddr_un)Tj /T1_1 1 Tf -32.4 -1.2 Td [(str)8(uctur)18(e. )-334(On)-335(Linux )-84(3.2.0 )-84(and )-84(Solaris )-84(10, )-84(the)]TJ /TT1 1 Tf 20.417 0 Td (sockaddr_un)Tj /T1_1 1 Tf 6.934 0 Td [(str)8(uctur)18(e)-334(is)-334(d)-1(e\336ned )-84(in )-84(the)]TJ -27.352 -1.2 Td (header)Tj /TT1 1 Tf 3.296 0 Td ()Tj /T1_1 1 Tf 6.25 0 Td (as)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5911 508.2695 Tm (struct sockaddr_un {)Tj 2.778 -1.189 Td [(sa_family_t )-600(sun_family;)-3000(/* AF_UNIX */)]TJ 0 -1.189 TD [(char )-4800(sun_path[108];)-1200(/* pathname */)]TJ -2.778 -1.189 Td (};)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 458.1725 Tm [(On )-71(Fr)18(eeBSD )-71(8.0 )-71(and )-71(Mac )-71(OS )-71(X )-71(10.6.8, )-71(however)]TJ 0.3212 Tc 21.106 0 Td (,t)Tj 0 Tc 0.897 0 Td (he)Tj /TT1 1 Tf 1.382 0 Td (sockaddr_un)Tj /T1_1 1 Tf 6.921 0 Td [(str)8(uctur)18(e)-321(is)-321(d)-1(e\336ned)]TJ -30.306 -1.2 Td (as)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5917 429.4742 Tm (struct sockaddr_un {)Tj 2.778 -1.189 Td [(unsigned char)-1200(sun_len; )-4200(/*)-600(sockaddr length */)]TJ T* [(sa_family_t )-1800(sun_family;)-3000(/* AF_UNIX */)]TJ T* (char )Tj 9 0 Td [(sun_path[104];)-1200(/* pathname */)]TJ -11.778 -1.189 Td (};)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 147.5917 368.6779 Tm (The)Tj /TT1 1 Tf 2.265 0 Td (sun_path)Tj /T1_1 1 Tf 5.391 0 Td [(member )-341(of )-341(the)]TJ /TT1 1 Tf 7.712 0 Td (sockaddr_un)Tj /T1_1 1 Tf 7.191 0 Td [(str)8(uctur)]TJ 0.5912 Tc 3.49 0 Td (ec)Tj 0 Tc 1.514 0 Td [(ontains )-341(a )-341(pathname.)]TJ -29.364 -1.2 Td [(When )-116(we )-116(bind )-116(an )-116(addr)18(ess )-116(to )-116(a )-116(UNIX )-116(domain )-116(socket, )-116(the )-116(system )-116(cr)22(eates )-116(a )-116(\336le )-116(of )-116(type)]TJ /TT1 1 Tf 0 -1.2 TD (S_IFSOCK)Tj /T1_1 1 Tf 5.05 0 Td (with the same name.)Tj -3.25 -1.2 Td [(This )-112(\336le )-112(exists )-112(only )-112(as )-112(a )-112(means )-112(of )-112(advertising )-112(the )-112(socket )-112(name )-112(to )-112(clients.)-608(The )-112(\336le)]TJ -1.8 -1.2 Td (can\325t be opened or otherwise used for communication by applications.)Tj 1.8 -1.2 Td [(If )-126(the )-126(\336le )-126(alr)18(eady )-126(exists )-126(when )-126(we )-126(try )-126(to )-126(bind )-126(the )-126(same )-126(addr)18(ess, )-126(the)]TJ /TT1 1 Tf 31.176 0 Td (bind)Tj /T1_1 1 Tf -0.018 Tc 2.776 0 Td (re)Tj 0 Tc 0.856 0 Td (quest)Tj -36.608 -1.2 Td [(will )-7(fail.)-506(When )-7(we )-7(close )-7(the )-7(socket, )-7(this )-7(\336le )-7(is )-7(not )-7(automatically )-7(r)18(emoved, )-7(so )-7(we )-7(need )-7(to)]TJ T* (make sur)Tj 0.25 Tc 4.072 0 Td (et)Tj 0 Tc 1.055 0 Td (hat we unlink it befor)Tj 0.25 Tc 9.531 0 Td (eo)Tj 0 Tc 1.275 0 Td (ur application exits.)Tj /TT0 1 Tf -19.533 -2.64 Td (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(The )-23(pr)18(ogram )-23(in )-23(Figur)]TJ 0.2727 Tc 9.606 0 Td (e1)Tj 0 Tc 1.252 0 Td [(7.5 )-23(shows )-23(an )-23(example )-23(of )-23(binding )-23(an )-23(addr)20(ess )-23(to )-23(a )-23(UNIX )-23(domain)]TJ -10.858 -1.2 Td (socket.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2151.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 205.5743 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (int fd, size;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46907 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (17)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(Adv)30(anced )-280(IPC)]TJ /TT0 1 Tf 12 0 0 12 93.6 404.4 Tm [(17.1 )-776(Intr)20(oduction)]TJ /T1_2 1 Tf 10 0 0 10 129.6 380.4 Tm [(In )-92(the )-92(pr)18(evious )-92(two )-92(chapters, )-92(we )-92(discussed )-92(various )-92(forms )-92(of )-92(IPC, )-92(including )-92(pipes )-92(and)]TJ 0 -1.2 TD [(sockets. )-269(In)-269(this )-19(chapter)74(,)-269(we)-269(look )-19(at )-19(an )-19(advanced )-19(form )-19(of )-19(IPC)]TJ 0.0833 Tc 26.922 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(he )-19(UNIX )-19(domain )-19(socket)]TJ -28.332 -1.2 Td [(mechanism )167(\321 )167(and)-288(see )-38(what )-38(we )-38(can )-38(do )-38(with )-38(it.)]TJ -0.055 Tc 20.999 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-38(this )-38(form )-38(of )-38(IPC, )-38(we )-38(can )-38(pass )-38(open)]TJ -22.235 -1.2 Td [(\336le )-352(descriptors )-352(between )-352(pr)18(ocesses )-352(r)8(unning )-352(on )-352(the )-352(same )-352(computer )-352(system, )-352(server)]TJ T* [(pr)18(ocesses )-106(can )-106(associate )-106(names )-106(with )-106(their )-106(\336le )-106(descriptors, )-106(and )-106(client )-106(pr)18(ocesses )-106(r)4(unning)]TJ 0 -1.2 Td [(on )-44(the )-44(same )-44(system )-44(can )-44(use )-44(these )-44(names )-44(to )-44(r)19(endezvous )-44(with )-44(the )-44(servers.)]TJ -0.092 Tc 33.022 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-44(also )-44(see)]TJ -34.409 -1.2 Td [(how the operating system pr)18(ovides a unique IPC channel per client.)]TJ /TT0 1 Tf 12 0 0 12 93.6001 266.4 Tm [(17.2 )-776(UNIX)-556(Domain )-278(Soc)20(kets)]TJ /T1_2 1 Tf 10 0 0 10 129.6 242.4 Tm [(UNIX )-153(domain )-153(sockets )-153(ar)]TJ 0.4028 Tc 11.31 0 Td (eu)Tj 0 Tc 1.485 0 Td [(sed )-153(to )-153(communicate )-153(with )-153(pr)19(ocesses )-153(r)8(unning )-153(on )-153(the )-153(same)]TJ -12.795 -1.2 Td [(machine. )-332(Although)-333(Internet )-82(domain )-82(sockets )-82(can )-82(be )-82(used )-82(for )-82(this )-82(same )-82(purpose, )-82(UNIX)]TJ T* [(domain )-57(sockets )-57(ar)]TJ 0.3073 Tc 8.104 0 Td (em)Tj 0 Tc 1.669 0 Td (or)Tj 0.3073 Tc 0.923 0 Td (ee)Tj -0.018 Tc 1.265 0 Td (f\336)Tj 0 Tc 0.92 0 Td [(cient. )-307(UNIX)-308(domain )-57(sockets )-57(only )-57(copy )-57(data; )-57(they )-57(have )-57(no)]TJ -12.881 -1.2 Td [(pr)18(otocol )-25(pr)18(ocessing )-25(to )-25(perform, )-25(no )-25(network )-25(headers )-25(to )-25(add )-25(or )-25(r)17(emove, )-25(no )-25(checksums )-25(to)]TJ T* (calculate, no sequence numbers to generate, and no acknowledgements to s\ end.)Tj 1.8 -1.2 Td [(UNIX )-200(domain )-200(sockets )-200(pr)18(ovide )-200(both )-200(str)18(eam )-200(and )-200(datagram )-200(interfaces.)-700(The )-200(UNIX)]TJ -1.8 -1.2 Td [(domain )-86(datagram )-86(service )-86(is )-86(r)19(eliable, )-86(however)]TJ 0.5856 Tc 20.471 0 Td (.M)Tj 0 Tc 1.782 0 Td [(essages )-86(ar)]TJ 0.3356 Tc 4.499 0 Td (en)Tj 0 Tc 1.397 0 Td [(either )-86(lost )-86(nor )-86(deliver)19(ed)]TJ -28.148 -1.2 Td [(out )-25(of )-25(or)18(der)]TJ 0.5252 Tc 5.238 0 Td (.U)Tj 0 Tc 1.553 0 Td [(NIX )-25(domain )-25(sockets )-25(ar)]TJ 0.2753 Tc 10.15 0 Td (el)Tj 0 Tc 1.045 0 Td [(ike )-25(a )-25(cr)18(oss )-25(between )-25(sockets )-25(and )-25(pipes.)]TJ -0.092 Tc 17.488 0 Td (Yo)Tj 0.2753 Tc 1.121 0 Td (uc)Tj 0 Tc 1.322 0 Td (an)Tj -37.918 -1.2 Td [(use )-58(the )-58(network-oriented )-58(socket )-58(interfaces )-58(with )-58(them, )-58(or )-58(you )-58(can )-58(use )-58(the)]TJ /TT1 1 Tf 33 0 Td (socketpair)Tj /T1_2 1 Tf -33 -1.2 Td [(function to cr)18(eate a pair of unnamed, connected, UNIX domain sockets.)]TJ /T1_3 1 Tf 9 0 0 9 506.0993 114 Tm (629)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46908 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (628)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(16.9 )-776(Summar)-10(y)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(In )-59(this )-59(chapter)75(,)-309(we)-309(l)1(ooked )-58(at )-58(the )-58(IPC )-58(mechanisms )-58(that )-58(allow )-58(pr)18(ocesses )-58(to )-58(communicate)]TJ 0 -1.2 TD [(with )-163(other )-163(pr)19(ocesses )-163(on )-163(dif)19(fer)18(ent )-163(machines )-163(as )-163(well )-163(as )-163(within )-163(the )-163(same )-163(machine.)]TJ -0.092 Tc 37.613 0 Td (We)Tj 0 Tc -37.613 -1.2 Td [(discussed )-78(how )-78(socket )-78(endpoints )-78(ar)]TJ 0.3279 Tc 15.679 0 Td (en)Tj 0 Tc 1.389 0 Td [(amed )-78(and )-78(how )-78(we )-78(can )-78(discover )-78(the )-78(addr)18(esses )-78(to)]TJ -17.067 -1.2 Td (use when contacting servers.)Tj -0.092 Tc 1.8 -1.2 Td [(We )-652(p)]TJ -0.018 Tc 2.706 0 Td (re)Tj 0 Tc 0.856 0 Td [(sented )-468(examples )-468(of )-468(clients )-468(and )-468(servers )-468(that )-468(use )-468(connectionless )-468(\(i.e.,)]TJ -5.362 -1.2 Td [(datagram-based\) )-530(sockets )-530(and )-530(connection-oriented )-530(sockets.)]TJ -0.092 Tc 28.86 0 Td [(We )-714(b)]TJ 0 Tc 2.72 0 Td [(rie\337y )-530(discussed)]TJ -31.58 -1.2 Td [(asynchr)18(onous )-160(and )-160(nonblocking )-160(socket )-160(I/O )-160(and )-160(the )-160(interfaces )-160(used )-160(to )-160(manage )-160(socket)]TJ T* (options.)Tj 1.8 -1.2 Td [(In )-109(the )-109(next )-109(chapter)75(,)-359(we)-359(w)1(ill )-109(look )-109(at )-109(some )-109(advanced )-109(IPC )-109(topics, )-109(including )-109(how )-109(we)]TJ -1.8 -1.2 Td [(can )-5(use )-5(sockets )-5(to )-5(pass )-5(\336le )-5(descriptors )-5(between )-5(pr)20(ocesses )-5(r)8(unning )-5(on )-5(the )-5(same )-5(machine.)]TJ /TT0 1 Tf 11.9993 0 0 11.9993 129.5925 494.9703 Tm [(Ex)10(er)20(cises)]TJ /T1_0 1 Tf 8.9995 0 0 8.9995 129.5925 473.9716 Tm (16.1)Tj /T1_1 1 Tf -0.074 Tc 3.065 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite a pr)18(ogram to determine your system\325s byte or)18(dering.)]TJ /T1_0 1 Tf -4.386 -1.667 Td (16.2)Tj /T1_1 1 Tf -0.074 Tc 3.065 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-51(a )-51(pr)18(ogram )-51(to )-51(print )-51(out )-51(which)]TJ /TT1 1 Tf 14.834 0 Td (stat)Tj /T1_1 1 Tf 2.701 0 Td [(str)8(uctur)]TJ 0.3008 Tc 3.49 0 Td (em)Tj 0 Tc 1.663 0 Td [(embers )-51(ar)]TJ 0.3007 Tc 4.391 0 Td (es)Tj 0 Tc 1.204 0 Td [(upported )-51(for )-51(sockets )-51(on)]TJ -29.603 -1.222 Td [(at least two dif)18(fer)18(ent platforms, and describe how the r)18(esults dif)18(fer)74(.)]TJ /T1_0 1 Tf -3.065 -1.667 Td (16.3)Tj /T1_1 1 Tf 3.065 0 Td [(The )-240(pr)18(ogram )-240(in )-240(Figur)]TJ 0.4897 Tc 10.257 0 Td (e1)Tj 0 Tc 1.469 0 Td [(6.17 )-240(pr)18(ovides )-240(service )-240(on )-240(only )-240(a )-240(single )-240(endpoint.)-740(Modify )-240(the)]TJ -11.726 -1.222 Td [(pr)18(ogram )-134(to )-134(support )-134(service )-134(on )-134(multiple )-134(endpoints )-134(\(each )-134(with )-134(a )-134(dif)16(fer)18(ent )-134(addr)18(ess\) )-134(at )-134(the)]TJ 0 -1.222 Td (same time.)Tj /T1_0 1 Tf -3.065 -1.667 Td (16.4)Tj /T1_1 1 Tf -0.074 Tc 3.065 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-82(a )-82(client )-82(pr)18(ogram )-82(and )-82(a )-82(server )-82(pr)18(ogram )-82(to )-82(r)18(eturn )-82(the )-82(number )-82(of )-82(pr)18(ocesses )-82(curr)20(ently)]TJ -0.008 Tc -1.321 -1.222 Td (ru)Tj 0 Tc 0.99 0 Td [(nning on a speci\336ed host computer)74(.)]TJ /T1_0 1 Tf -4.055 -1.667 Td (16.5)Tj /T1_1 1 Tf 3.065 0 Td [(In )-237(the )-237(pr)18(ogram )-237(in )-237(Figur)]TJ 0.487 Tc 11.368 0 Td (e1)Tj 0 Tc 1.466 0 Td [(6.18, )-237(the )-237(server )-237(waits )-237(for )-237(the )-237(child )-237(to )-237(execute )-237(the)]TJ /TT1 1 Tf 23.834 0 Td (uptime)Tj /T1_1 1 Tf -36.668 -1.222 Td [(command )-70(and )-70(exit )-70(befor)]TJ 0.3203 Tc 11.003 0 Td (ea)Tj 0 Tc 1.299 0 Td [(ccepting )-70(the )-70(next )-70(connect )-70(r)16(equest. )-320(Redesign)-321(the )-70(server )-70(so )-70(that)]TJ -12.302 -1.222 Td [(the time to service one r)18(equest doesn\325t delay the pr)18(ocessing of incoming connect r)18(equests.)]TJ /T1_0 1 Tf -3.065 -1.667 Td (16.6)Tj /T1_1 1 Tf -0.074 Tc 3.065 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-36(two )-36(library )-36(r)18(outines: )-36(one )-36(to )-36(enable )-36(asynchr)18(onous )-36(\(signal-based\) )-36(I/O )-36(on )-36(a )-36(socket )-36(and)]TJ -1.321 -1.222 Td [(one )-200(to )-200(disable )-200(asynchr)18(onous )-200(I/O )-200(on )-200(a )-200(socket.)-700(Use )-200(Figur)]TJ 0.4503 Tc 26.543 0 Td (e1)Tj 0 Tc 1.429 0 Td [(6.23 )-200(to )-200(make )-200(sur)]TJ 0.4504 Tc 7.795 0 Td (et)Tj 0 Tc 1.255 0 Td [(hat )-200(the)]TJ -37.023 -1.222 Td (functions work on all platforms with as many socket types as possible.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46909 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.8)]TJ 26.689 0 Td [(Nonblocking )-250(and )-250(Asynchr)18(onous )-250(I/O)]TJ /T1_1 1 Tf 19.144 0 Td (627)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(16.8 )-776(Nonb)10(loc)20(king )-278(and )-278(Async)10(hr)20(onous )-278(I/O)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5923 644.9613 Tm (Normally)Tj 0.5896 Tc 4.182 0 Td (,t)Tj 0 Tc 1.166 0 Td (he)Tj /TT1 1 Tf 1.651 0 Td (recv)Tj /T1_0 1 Tf 2.99 0 Td [(functions )-340(will )-340(block )-340(when )-340(no )-340(data )-340(is )-340(immediately )-340(available.)]TJ -9.988 -1.2 Td (Similarly)Tj 0.3213 Tc 3.912 0 Td (,t)Tj 0 Tc 0.897 0 Td (he)Tj /TT1 1 Tf 1.382 0 Td (send)Tj /T1_0 1 Tf 2.721 0 Td [(functions )-71(will )-71(block )-71(when )-71(ther)17(e)-321(is)-321(not )-71(enough )-71(r)18(oom )-71(in )-71(the )-71(socket\325s)]TJ -8.913 -1.2 Td [(output )-293(queue )-293(to )-293(send )-293(the )-293(message.)-791(This )-293(behavior )-293(changes )-293(when )-293(the )-293(socket )-293(is )-293(in)]TJ 0 -1.2 TD [(nonblocking )-177(mode.)-677(In )-177(this )-177(case, )-177(these )-177(functions )-177(will )-177(fail )-177(instead )-177(of )-177(blocking, )-177(setting)]TJ /TT1 1 Tf T* (errno)Tj /T1_0 1 Tf 3.258 0 Td [(to )-8(either)]TJ /TT1 1 Tf 3.94 0 Td (EWOULDBLOCK)Tj /T1_0 1 Tf 6.858 0 Td (or)Tj /TT1 1 Tf 1.199 0 Td (EAGAIN)Tj /T1_0 1 Tf 0.5079 Tc (.W)Tj 0 Tc 5.358 0 Td [(hen )-8(this )-8(happens, )-8(we )-8(can )-8(use )-8(either)]TJ /TT1 1 Tf 15.987 0 Td (poll)Tj /T1_0 1 Tf -36.6 -1.2 Td (or)Tj /TT1 1 Tf 1.191 0 Td (select)Tj /T1_0 1 Tf 3.85 0 Td [(to determine when we can r)18(eceive or transmit data.)]TJ -3.241 -1.2 Td [(The )-188(Single )-188(UNIX )-188(Speci\336cation )-188(includes )-188(support )-188(for )-188(a )-188(general )-188(asynchr)18(onous )-188(I/O)]TJ -1.8 -1.2 Td [(mechanism )-137(\(r)18(ecall )-137(Section )-137(14.5\).)-639(The )-138(socket )-138(mechanism )-138(has )-138(its )-138(own )-138(way )-138(of )-138(handling)]TJ T* [(asynchr)18(onous )-102(I/O, )-102(but )-102(this )-102(isn\325t )-102(standar)18(dized )-102(in )-102(the )-102(Single )-102(UNIX )-102(Speci\336cation.)-603(Some)]TJ T* [(texts )-166(r)18(efer )-166(to )-166(the )-166(classic )-166(socket-based )-166(asynchr)18(onous )-166(I/O )-166(mechanism )-166(as )-166(\324)33(\324signal-based)]TJ T* [(I/O\325)37(\325)-465(to)-465(d)1(istinguish )-215(it )-215(fr)18(om )-215(the )-215(general )-215(asynchr)20(onous )-215(I/O )-215(mechanism )-215(found )-215(in )-215(the)]TJ 0 -1.2 Td (Single UNIX Speci\336cation.)Tj -0.055 Tc 1.8 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-104(socket-based )-104(asynchr)19(onous )-104(I/O, )-104(we )-104(can )-104(arrange )-104(to )-104(be )-104(sent )-104(the)]TJ /TT1 1 Tf 29.966 0 Td (SIGIO)Tj /T1_0 1 Tf 3.354 0 Td (signal)Tj -36.356 -1.2 Td [(when )-141(we )-141(can )-141(r)18(ead )-141(data )-141(fr)18(om )-141(a )-141(socket )-141(or )-141(when )-141(space )-141(becomes )-141(available )-141(in )-141(a )-141(socket\325s)]TJ T* [(write queue.)-500(Enabling asynchr)18(onous I/O is a two-step pr)18(ocess.)]TJ 1.8 -1.8 Td [(1. )-633(Establish)-250(socket ownership so signals can be deliver)18(ed to the pr)18(oper pr)18(ocesses.)]TJ 0 -1.6 TD [(2. )-633(Inform)-270(the )-20(socket )-20(that )-20(we )-20(want )-20(it )-20(to )-20(signal )-20(us )-20(when )-20(I/O )-20(operations )-20(won\325t )-20(block.)]TJ -0.092 Tc -1.8 -1.8 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td [(an accomplish the \336rst step in thr)18(ee ways.)]TJ -0.281 -1.8 Td [(1. )-633(Use)-250(the)]TJ /TT1 1 Tf 5.201 0 Td (F_SETOWN)Tj /T1_0 1 Tf 5.05 0 Td (command with)Tj /TT1 1 Tf 6.982 0 Td (fcntl)Tj /T1_0 1 Tf (.)Tj -17.233 -1.6 Td [(2. )-633(Use)-250(the)]TJ /TT1 1 Tf 5.201 0 Td (FIOSETOWN)Tj /T1_0 1 Tf 5.65 0 Td (command with)Tj /TT1 1 Tf 6.982 0 Td (ioctl)Tj /T1_0 1 Tf (.)Tj -17.833 -1.6 Td [(3. )-633(Use)-250(the)]TJ /TT1 1 Tf 5.201 0 Td (SIOCSPGRP)Tj /T1_0 1 Tf 5.65 0 Td (command with)Tj /TT1 1 Tf 6.982 0 Td (ioctl)Tj /T1_0 1 Tf (.)Tj -0.092 Tc -19.633 -1.8 Td [(To )-184(a)]TJ 0 Tc 1.817 0 Td (ccomplish the second step, we have two choices.)Tj -0.017 -1.8 Td [(1. )-633(Use)-250(the)]TJ /TT1 1 Tf 5.201 0 Td (F_SETFL)Tj /T1_0 1 Tf 4.45 0 Td (command with)Tj /TT1 1 Tf 6.982 0 Td (fcntl)Tj /T1_0 1 Tf 3.25 0 Td (and enable the)Tj /TT1 1 Tf 6.714 0 Td (O_ASYNC)Tj /T1_0 1 Tf 4.45 0 Td (\336le \337ag.)Tj -31.047 -1.6 Td [(2. )-633(Use)-250(the)]TJ /TT1 1 Tf 5.201 0 Td (FIOASYNC)Tj /T1_0 1 Tf 5.05 0 Td (command with)Tj /TT1 1 Tf 6.982 0 Td (ioctl)Tj /T1_0 1 Tf (.)Tj -0.092 Tc -17.233 -1.8 Td [(We )-441(h)]TJ 0 Tc 2.476 0 Td [(ave )-257(several )-257(options, )-257(but )-257(they )-257(ar)]TJ 0.5071 Tc 15.081 0 Td (en)Tj 0 Tc 1.568 0 Td [(ot )-257(universally )-257(supported.)-757(Figur)]TJ 0.507 Tc 14.839 0 Td (e1)Tj 0 Tc 1.486 0 Td (6.23)Tj -37.25 -1.2 Td [(summarizes )-98(the )-98(support )-98(for )-98(these )-98(options )-98(pr)20(ovided )-98(by )-98(the )-98(platforms )-98(discussed )-98(in )-98(this)]TJ 0 -1.2 TD (text.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1417.25 2622.25 cm 0 0 m 3657 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 357.4571 254.1695 Tm [(Fr)18(eeBSD )-1250(Linux )-1250(Mac)-250(OS X)-1500(Solaris)]TJ 1.275 -1.25 Td [(8.0 )-2827(3.2.0)-2735(10.6.8 )-3170(10)]TJ -20.41 0.625 Td (Mechanism)Tj 13.965 0 Td (POSIX.1)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1417.25 2402.25 cm 0 0 m 3657 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1417.25 2382.25 cm 0 0 m 3657 0 l S Q Q BT /TT1 1 Tf 7.9986 0 0 7.9986 145.7218 230.1586 Tm (fcntl\(fd, F_SETOWN, pid\))Tj /T1_0 1 Tf 4.629 Tc 22.831 0 Td (\245\245)Tj 4.3795 Tc 9.937 0 Td [(\245\245 )4445(\245)]TJ /TT1 1 Tf 0 Tc -32.769 -1.25 Td (ioctl\(fd, FIOSETOWN, pid\))Tj /T1_0 1 Tf 4.096 Tc 28.067 0 Td [(\245\245 )4063(\245)]TJ 0 Tc 14.858 0 Td (\245)Tj /TT1 1 Tf -42.924 -1.25 Td (ioctl\(fd, SIOCSPGRP, pid\))Tj /T1_0 1 Tf 4.096 Tc 28.067 0 Td [(\245\245 )4063(\245)]TJ 0 Tc 14.858 0 Td (\245)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1417.25 2062.25 cm 0 0 m 3657 0 l S Q Q BT /TT1 1 Tf 7.9981 0 0 7.9981 145.713 198.1524 Tm (fcntl\(fd, F_SETFL, flags|O_ASYNC\))Tj /T1_0 1 Tf 4.096 Tc 28.067 0 Td [(\245\245 )4063(\245)]TJ /TT1 1 Tf 0 Tc -28.067 -1.25 Td (ioctl\(fd, FIOASYNC, &n\);)Tj /T1_0 1 Tf 4.096 Tc 28.067 0 Td [(\245\245 )4063(\245)]TJ 0 Tc 14.858 0 Td (\245)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1417.25 1842.25 cm 0 0 m 3657 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4737.25 1842.25 cm 0 0 m 0 780 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4267.25 1842.25 cm 0 0 m 0 780 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3939.25 1842.25 cm 0 0 m 0 780 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3505.25 1842.25 cm 0 0 m 0 780 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3525.25 1842.25 cm 0 0 m 0 780 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3101.25 1842.25 cm 0 0 m 0 780 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5074.25 1842.25 cm 0 0 m 0 780 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1417.25 1842.25 cm 0 0 m 0 780 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 210.101 166.1501 Tm (Figure 16.23)Tj /T1_0 1 Tf 6.195 0 Td [(Socket asynchr)18(onous I/O management commands)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46910 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (626)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(16.7 )-776(Out-of-Band)-556(Data)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5923 647.3612 Tm [(Out-of-band )-118(data )-118(is )-118(an )-118(optional )-118(featur)]TJ 0.3681 Tc 17.381 0 Td (es)Tj 0 Tc 1.271 0 Td [(upported )-118(by )-118(some )-118(communication )-118(pr)18(otocols,)]TJ -18.653 -1.2 Td [(allowing )-86(higher)18(-priority )-86(delivery )-86(of )-86(data )-86(than )-86(normal.)-586(Out-of-band )-86(data )-86(is )-86(sent )-86(ahead)]TJ 0 -1.2 TD [(of )-142(any )-142(data )-142(that )-142(is )-142(alr)17(eady )-142(queued )-142(for )-142(transmission.)-642(TCP )-142(supports )-142(out-of-band )-142(data,)]TJ T* [(but )-208(UDP )-208(doesn\325t.)-708(The )-208(socket )-208(interface )-208(to )-208(out-of-band )-208(data )-208(is )-208(heavily )-208(in\337uenced )-208(by)]TJ T* (TCP\325s implementation of out-of-band data.)Tj 1.8 -1.2 Td [(TCP )-11(r)18(efers )-11(to )-11(out-of-band )-11(data )-11(as )-11(\324)38(\324ur)18(gent\325)]TJ 0.2609 Tc 18.66 0 Td (\325d)Tj 0 Tc 1.15 0 Td [(ata. )-261(TCP)-261(supports )-11(only )-11(a )-11(single )-11(byte )-11(of)]TJ -21.61 -1.2 Td [(ur)18(gent )-104(data, )-104(but )-104(allows )-104(ur)16(gent )-104(data )-104(to )-104(be )-104(deliver)18(ed )-104(out )-104(of )-104(band )-104(fr)18(om )-104(the )-104(normal )-104(data)]TJ T* [(delivery )-80(mechanisms.)]TJ -0.092 Tc 10.318 0 Td [(To )-264(g)]TJ 0 Tc 1.953 0 Td [(enerate )-80(ur)18(gent )-80(data, )-80(we )-80(specify )-80(the)]TJ /TT1 1 Tf 16.157 0 Td (MSG_OOB)Tj /T1_1 1 Tf 4.53 0 Td [(\337ag )-80(to )-80(any )-80(of)]TJ -32.958 -1.2 Td [(the thr)18(ee)]TJ /TT1 1 Tf 4.13 0 Td (send)Tj /T1_1 1 Tf 2.65 0 Td [(functions. )-250(If)-250(we send mor)]TJ 0.2501 Tc 11.516 0 Td (et)Tj 0 Tc 1.055 0 Td (han one byte with the)Tj /TT1 1 Tf 9.856 0 Td (MSG_OOB)Tj /T1_1 1 Tf 4.45 0 Td (\337ag, the last)Tj -33.658 -1.2 Td [(byte will be tr)18(eated as the ur)18(gent-data byte.)]TJ 1.8 -1.2 Td [(When )-94(ur)18(gent )-94(data )-94(is )-94(r)18(eceived, )-94(we )-94(ar)]TJ 0.3439 Tc 16.446 0 Td (es)Tj 0 Tc 1.247 0 Td [(ent )-94(the)]TJ /TT1 1 Tf 3.462 0 Td (SIGURG)Tj /T1_1 1 Tf 3.944 0 Td [(signal )-94(if )-94(we )-94(have )-94(arranged)]TJ -26.899 -1.2 Td [(for )-99(signal )-99(generation )-99(by )-99(the )-99(socket.)-598(In )-99(Sections )-99(3.14 )-99(and )-99(14.5.2, )-99(we )-99(saw )-99(that )-99(we )-99(could)]TJ T* [(use )-141(the)]TJ /TT1 1 Tf 3.675 0 Td (F_SETOWN)Tj /T1_1 1 Tf 5.191 0 Td [(command )-141(to)]TJ /TT1 1 Tf 6.103 0 Td (fcntl)Tj /T1_1 1 Tf 3.391 0 Td [(to )-141(set )-141(the )-141(ownership )-141(of )-141(a )-141(socket.)-641(If )-141(the )-141(thir)17(d)]TJ -18.36 -1.2 Td [(ar)18(gument )-95(to)]TJ /TT1 1 Tf 5.868 0 Td (fcntl)Tj /T1_1 1 Tf 3.345 0 Td [(is )-95(positive, )-95(it )-95(speci\336es )-95(a )-95(pr)18(ocess )-95(ID.)-594(If )-95(it )-95(is )-95(a )-95(negative )-95(value )-95(other)]TJ -9.213 -1.2 Td (than)Tj /TT2 1 Tf 2.439 0 Td (!)Tj /T1_1 1 Tf [(1, )-198(it )-198(r)17(epr)18(esents )-198(the )-198(pr)18(ocess )-198(gr)18(oup )-198(ID.)-698(Thus, )-198(we )-198(can )-198(arrange )-198(that )-198(our )-198(pr)13(ocess)]TJ -0.018 Tc -2.439 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ceive signals fr)18(om a socket by calling)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.591 450.673 Tm (fcntl\(sockfd, F_SETOWN, pid\);)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 147.591 432.674 Tm (The)Tj /TT1 1 Tf 1.969 0 Td (F_GETOWN)Tj /T1_1 1 Tf 5.095 0 Td [(command )-45(can )-45(be )-45(used )-45(to )-45(r)18(etrieve )-45(the )-45(curr)18(ent )-45(socket )-45(ownership.)-541(As)]TJ -8.863 -1.2 Td [(with )-137(the)]TJ /TT1 1 Tf 4.195 0 Td (F_SETOWN)Tj /T1_1 1 Tf 5.187 0 Td [(command, )-137(a )-137(negative )-137(value )-137(r)17(epr)18(esents )-137(a )-137(pr)18(ocess )-137(gr)18(oup )-137(ID )-137(and )-137(a)]TJ -9.382 -1.2 Td [(positive value r)18(epr)18(esents a pr)18(ocess ID.)-500(Thus, the call)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.591 391.9765 Tm (owner = fcntl\(sockfd, F_GETOWN, 0\);)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5921 373.9776 Tm [(will )-26(r)18(eturn )-26(with)]TJ /TT1 1 Tf 7.33 0 Td (owner)Tj /T1_1 1 Tf 3.276 0 Td [(equal )-26(to )-26(the )-26(ID )-26(of )-26(the )-26(pr)19(ocess )-26(con\336gur)18(ed )-26(to )-26(r)18(eceive )-26(signals )-26(fr)19(om)]TJ -10.605 -1.2 Td [(the )-52(socket )-52(if)]TJ /TT1 1 Tf 5.693 0 Td (owner)Tj /T1_1 1 Tf 3.302 0 Td [(is )-52(positive )-52(and )-52(with )-52(the )-52(absolute )-52(value )-52(of)]TJ /TT1 1 Tf 18.81 0 Td (owner)Tj /T1_1 1 Tf 3.302 0 Td [(equal )-52(to )-52(the )-52(ID )-52(of)]TJ -31.108 -1.2 Td [(the pr)18(ocess gr)18(oup con\336gur)18(ed to r)18(eceive signals fr)18(om the socket if)]TJ /TT1 1 Tf 28.897 0 Td (owner)Tj /T1_1 1 Tf 3.25 0 Td (is negative.)Tj -30.347 -1.2 Td [(TCP )-167(supports )-167(the )-167(notion )-167(of )-167(an)]TJ /T1_2 1 Tf 14.57 0 Td [(ur)18(gent )-167(mark)]TJ /T1_1 1 Tf 0.4172 Tc 5.344 0 Td (:t)Tj 0 Tc 0.993 0 Td [(he )-167(point )-167(in )-167(the )-167(normal )-167(data )-167(str)17(eam)]TJ -22.707 -1.2 Td (wher)Tj 0.3199 Tc 2.272 0 Td (et)Tj 0 Tc 1.125 0 Td [(he )-70(ur)18(gent )-70(data )-70(would )-70(go.)]TJ -0.092 Tc 12.008 0 Td [(We )-254(c)]TJ 0 Tc 2.151 0 Td [(an )-70(choose )-70(to )-70(r)18(eceive )-70(the )-70(ur)18(gent )-70(data )-70(inline )-70(with)]TJ -17.555 -1.2 Td [(the )-56(normal )-56(data )-56(if )-56(we )-56(use )-56(the)]TJ /TT1 1 Tf 13.496 0 Td (SO_OOBINLINE)Tj /T1_1 1 Tf 7.506 0 Td [(socket )-56(option.)]TJ -0.092 Tc 6.78 0 Td [(To )-240(h)]TJ 0 Tc 1.955 0 Td [(elp )-56(us )-56(identify )-56(when)]TJ -29.737 -1.2 Td [(we have r)18(eached the ur)18(gent mark, we can use the)]TJ /TT1 1 Tf 22.037 0 Td (sockatmark)Tj /T1_1 1 Tf 6.25 0 Td (function.)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5918 285.2829 Tm (#include )Tj 0 -1.902 TD (int sockatmark\(int)Tj /T1_2 1 Tf 11.4 0 Td (sockfd)Tj /TT1 1 Tf (\);)Tj /T1_1 1 Tf 6.315 -1.902 Td (Returns: 1 if at mark, 0 if not at mark,)Tj /TT2 1 Tf 16.749 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2465.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 233.032 Tm [(When the next byte to be r)18(ead is at the ur)18(gent mark,)]TJ /TT1 1 Tf 23.153 0 Td (sockatmark)Tj /T1_1 1 Tf 6.25 0 Td [(will r)18(eturn 1.)]TJ -27.603 -1.2 Td [(When )-157(out-of-band )-157(data )-157(is )-157(pr)18(esent )-157(in )-157(a )-157(socket\325s )-157(r)18(ead )-157(queue, )-157(the)]TJ /TT1 1 Tf 29.486 0 Td (select)Tj /T1_1 1 Tf 4.007 0 Td (function)Tj -35.293 -1.2 Td [(\(Section )-32(14.4.1\) )-32(will )-32(r)19(eturn )-32(the )-32(\336le )-32(descriptor )-32(as )-32(having )-32(an )-32(exception )-32(condition )-32(pending.)]TJ -0.092 Tc 0 -1.2 TD [(We )-219(c)]TJ 0 Tc 2.116 0 Td [(an )-35(choose )-35(to )-35(r)18(eceive )-35(the )-35(ur)18(gent )-35(data )-35(inline )-35(with )-35(the )-35(normal )-35(data, )-35(or )-35(we )-35(can )-35(use )-35(the)]TJ /TT1 1 Tf -2.116 -1.2 Td (MSG_OOB)Tj /T1_1 1 Tf 4.552 0 Td [(\337ag )-102(with )-102(one )-102(of )-102(the)]TJ /TT1 1 Tf 9.329 0 Td (recv)Tj /T1_1 1 Tf 2.752 0 Td [(functions )-102(to )-102(r)18(eceive )-102(the )-102(ur)18(gent )-102(data )-102(ahead )-102(of )-102(any)]TJ -16.633 -1.2 Td [(other )-163(queue )-163(data.)-663(TCP )-163(queues )-163(only )-163(one )-163(byte )-163(of )-163(ur)18(gent )-163(data.)-663(If )-163(another )-163(ur)15(gent )-163(byte)]TJ T* [(arrives befor)18(e)-250(we)-250(r)18(eceive the curr)18(ent one, the existing one is discar)18(ded.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46911 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.6)]TJ 36.901 0 Td [(Socket )-250(Options)]TJ /T1_1 1 Tf 8.932 0 Td (623)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (if \(argc != 1\))Tj 2.4 -1.189 Td (err_quit\("usage: ruptimed"\);)Tj -2.4 -1.189 Td (if \(\(n = sysconf\(_SC_HOST_NAME_MAX\)\) < 0\))Tj 0.6 Tc 2.4 -1.189 Td (n=H)Tj 0 Tc 3 0 Td [(OST_NAME_MAX; )-600(/*)-600(best guess */)]TJ -5.4 -1.189 Td (if \(\(host = malloc\(n\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("malloc error"\);)Tj -2.4 -1.189 Td (if \(gethostname\(host, n\) < 0\))Tj 2.4 -1.189 Td (err_sys\("gethostname error"\);)Tj -2.4 -1.189 Td (daemonize\("ruptimed"\);)Tj 0 -1.189 TD (memset\(&hint, 0, sizeof\(hint\)\);)Tj T* (hint.ai_flags = AI_CANONNAME;)Tj T* (hint.ai_socktype = SOCK_DGRAM;)Tj T* (hint.ai_canonname = NULL;)Tj T* (hint.ai_addr = NULL;)Tj 0 -1.189 TD (hint.ai_next = NULL;)Tj 0 -1.189 TD (if \(\(err = getaddrinfo\(host, "ruptime", &hint, &ailist\)\) != 0\) {)Tj 2.4 -1.189 Td (syslog\(LOG_ERR, "ruptimed: getaddrinfo error: %s",)Tj 1.2 -1.189 Td (gai_strerror\(err\)\);)Tj -1.2 -1.189 Td (exit\(1\);)Tj -2.4 -1.189 Td (})Tj T* (for \(aip = ailist; aip != NULL; aip = aip->ai_next\) {)Tj 2.4 -1.189 Td (if \(\(sockfd = initserver\(SOCK_DGRAM, aip->ai_addr,)Tj 1.2 -1.189 Td (aip->ai_addrlen, 0\)\) >= 0\) {)Tj 1.2 -1.189 Td (serve\(sockfd\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj T* (exit\(1\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3659.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 213.9423 349.857 Tm (Figure 16.20)Tj /T1_0 1 Tf 6.195 0 Td [(Server pr)18(oviding system uptime over datagrams)]TJ 9.9988 0 0 9.9988 129.5846 325.8599 Tm [(The )-123(server )-123(blocks )-123(in)]TJ /TT0 1 Tf 9.591 0 Td (recvfrom)Tj /T1_0 1 Tf 5.173 0 Td [(for )-123(a )-123(r)18(equest )-123(for )-123(service.)-623(When )-123(a )-123(r)16(equest )-123(arrives, )-123(we)]TJ -14.765 -1.2 Td [(save )-26(the )-26(r)17(equester )176(\325s)-276(addr)18(ess )-26(and )-26(use)]TJ /TT0 1 Tf 16.537 0 Td (popen)Tj /T1_0 1 Tf 3.277 0 Td [(to )-27(r)8(un )-27(the)]TJ /TT0 1 Tf 4.661 0 Td (uptime)Tj /T1_0 1 Tf 3.877 0 Td [(command. )-277(W)]TJ 0.2766 Tc 6.134 0 Td (es)Tj 0 Tc 1.18 0 Td [(end )-27(the)]TJ -35.664 -1.2 Td [(output )-33(back )-33(to )-33(the )-33(client )-33(using )-33(the)]TJ /TT0 1 Tf 15.555 0 Td (sendto)Tj /T1_0 1 Tf 3.883 0 Td [(function, )-33(with )-33(the )-33(destination )-33(addr)18(ess )-33(set )-33(to)]TJ -19.439 -1.2 Td [(the r)18(equester )176(\325s)-250(addr)18(ess.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2899.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9978 0 0 11.9978 93.5832 262.2518 Tm [(16.6 )-776(Soc)20(ket )-278(Options)]TJ /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 244.255 Tm [(The )-292(socket )-292(mechanism )-292(pr)19(ovides )-292(two )-292(socket-option )-292(interfaces )-292(for )-292(us )-292(to )-292(contr)18(ol )-292(the)]TJ 0 -1.2 TD [(behavior )-26(of )-26(sockets.)-526(One )-26(interface )-26(is )-26(used )-26(to )-26(set )-26(an )-26(option, )-26(and )-26(another )-26(interface )-26(allows)]TJ T* (us to query the state of an option.)Tj -0.092 Tc 15.287 0 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td [(an get and set thr)18(ee kinds of options:)]TJ -15.568 -1.68 Td [(1. )-633(Generic)-250(options that work with all socket types)]TJ 0 -1.48 TD [(2. )-633(Options)-430(that )-180(ar)]TJ 0.4301 Tc 8.66 0 Td (em)Tj 0 Tc 1.792 0 Td [(anaged )-180(at )-180(the )-180(socket )-180(level, )-180(but )-180(depend )-180(on )-180(the )-180(underlying)]TJ -8.819 -1.2 Td [(pr)18(otocols for support)]TJ -1.633 -1.48 Td [(3. )-633(Pr)18(otocol-speci\336c options unique to each individual pr)18(otocol)]TJ -1.8 -1.68 Td [(The )-8(Single )-8(UNIX )-8(Speci\336cation )-8(de\336nes )-8(only )-8(the )-8(socket-layer )-8(options )-8(\(the )-8(\336rst )-8(two )-8(option)]TJ 0 -1.2 TD [(types in the pr)18(eceding list\).)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46912 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (610)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(16.5 )-776(Data)]TJ -0.08 Tc 5.723 0 Td (Tr)Tj 0 Tc 0.92 0 Td [(ansf)10(er)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(Since )-52(a )-52(socket )-52(endpoint )-52(is )-52(r)18(epr)18(esented )-52(as )-52(a )-52(\336le )-52(descriptor)]TJ 0.3021 Tc 25.499 0 Td (,w)Tj 0.3022 Tc 1.386 0 Td (ec)Tj 0 Tc 1.225 0 Td [(an )-52(use)]TJ /TT1 1 Tf 3.192 0 Td (read)Tj /T1_1 1 Tf 2.702 0 Td (and)Tj /TT1 1 Tf 1.995 0 Td (write)Tj /T1_1 1 Tf -36 -1.2 Td [(to )-49(communicate )-49(with )-49(a )-49(socket, )-49(as )-49(long )-49(as )-49(it )-49(is )-49(connected.)-549(Recall )-49(that )-49(a )-49(datagram )-49(socket)]TJ 0 -1.2 TD [(can )-199(be )-199(\324)37(\324connected\325)37(\325)-449(if)-449(we)-449(s)1(et )-199(the )-199(default )-199(peer )-199(addr)19(ess )-199(using )-199(the)]TJ /TT1 1 Tf 30.394 0 Td (connect)Tj /T1_1 1 Tf 4.649 0 Td (function.)Tj -35.043 -1.2 Td (Using)Tj /TT1 1 Tf 2.935 0 Td (read)Tj /T1_1 1 Tf 2.704 0 Td (and)Tj /TT1 1 Tf 1.997 0 Td (write)Tj /T1_1 1 Tf 3.304 0 Td [(with )-54(socket )-54(descriptors )-54(is )-54(signi\336cant, )-54(because )-54(it )-54(means )-54(that )-54(we)]TJ -10.94 -1.2 Td [(can )-1(pass )-1(socket )-1(descriptors )-1(to )-1(functions )-1(that )-1(wer)]TJ 0.2514 Tc 21.373 0 Td (eo)Tj 0 Tc 1.276 0 Td [(riginally )-1(designed )-1(to )-1(work )-1(with )-1(local)]TJ -22.649 -1.2 Td [(\336les. )-311(W)]TJ 0.3109 Tc 3.518 0 Td (ec)Tj 0 Tc 1.234 0 Td [(an )-61(also )-61(arrange )-61(to )-61(pass )-61(the )-61(socket )-61(descriptors )-61(to )-61(child )-61(pr)19(ocesses )-61(that )-61(execute)]TJ -4.752 -1.2 Td [(pr)18(ograms that know nothing about sockets.)]TJ 1.8 -1.2 Td [(Although )-28(we )-28(can )-28(exchange )-28(data )-28(using)]TJ /TT1 1 Tf 17.301 0 Td (read)Tj /T1_1 1 Tf 2.678 0 Td (and)Tj /TT1 1 Tf 1.971 0 Td (write)Tj /T1_1 1 Tf 0.2779 Tc (,t)Tj 0 Tc 3.854 0 Td [(hat )-28(is )-28(about )-28(all )-28(we )-28(can )-28(do)]TJ -27.604 -1.2 Td [(with )-73(these )-73(two )-73(functions.)-573(If )-73(we )-73(want )-73(to )-73(specify )-73(options, )-73(r)16(eceive )-73(packets )-73(fr)18(om )-73(multiple)]TJ T* [(clients, )-291(or )-291(send )-291(out-of-band )-291(data, )-291(we )-291(need )-291(to )-291(use )-291(one )-291(of )-291(the )-291(six )-291(socket )-291(functions)]TJ T* [(designed for data transfer)74(.)]TJ 1.8 -1.2 Td [(Thr)18(ee )-52(functions )-52(ar)]TJ 0.3023 Tc 8.143 0 Td (ea)Tj 0 Tc 1.281 0 Td [(vailable )-52(for )-52(sending )-52(data, )-52(and )-52(thr)17(ee )-52(ar)]TJ 0.3022 Tc 17.083 0 Td (ea)Tj 0 Tc 1.281 0 Td [(vailable )-52(for )-52(r)18(eceiving)]TJ -29.588 -1.2 Td [(data. )-250(First,)-250(we\325ll look at the ones used to send data.)]TJ 1.8 -1.2 Td [(The )-103(simplest )-103(one )-103(is)]TJ /TT1 1 Tf 9.129 0 Td (send)Tj /T1_1 1 Tf 0.6034 Tc (.I)Tj 0 Tc 3.59 0 Td [(t)-353(is)-353(s)-1(imilar )-103(to)]TJ /TT1 1 Tf 6.402 0 Td (write)Tj /T1_1 1 Tf 0.3534 Tc (,b)Tj 0 Tc 4.156 0 Td [(ut )-103(allows )-103(us )-103(to )-103(specify )-103(\337ags )-103(to)]TJ -25.077 -1.2 Td [(change how the data we want to transmit is tr)18(eated.)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.5908 457.8725 Tm (#include )Tj 0 -2.14 TD (ssize_t send\(int)Tj /T1_2 1 Tf 10.2 0 Td (sockfd)Tj /TT1 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.262 0 Td (onst void *)Tj /T1_2 1 Tf (buf)Tj /TT1 1 Tf 0.6 Tc (,s)Tj 0 Tc 9.697 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.43 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ags)Tj /TT1 1 Tf (\);)Tj /T1_1 1 Tf -15.911 -2.14 Td (Returns: number of bytes sent if OK,)Tj /TT2 1 Tf 16.386 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4149.25 cm 0 0 m 0 520 l 3900 520 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 398.9321 Tm (Like)Tj /TT1 1 Tf 2.233 0 Td (write)Tj /T1_1 1 Tf 0.2964 Tc (,t)Tj 0 Tc 3.872 0 Td [(he )-46(socket )-46(has )-46(to )-46(be )-46(connected )-46(to )-46(use)]TJ /TT1 1 Tf 16.488 0 Td (send)Tj /T1_1 1 Tf 0.5464 Tc (.T)Tj 0 Tc 3.809 0 Td (he)Tj /T1_2 1 Tf 1.357 0 Td (buf)Tj /T1_1 1 Tf 1.593 0 Td (and)Tj /T1_2 1 Tf 1.989 0 Td (nbytes)Tj /T1_1 1 Tf 2.926 0 Td [(ar)18(guments)]TJ -34.27 -1.2 Td (have the same meaning as they do with)Tj /TT1 1 Tf 17.729 0 Td (write)Tj /T1_1 1 Tf (.)Tj -15.929 -1.2 Td (Unlike)Tj /TT1 1 Tf 3.4 0 Td (write)Tj /T1_1 1 Tf 0.4231 Tc (,h)Tj 0 Tc 4.255 0 Td [(owever)74(,)]TJ /TT1 1 Tf 3.897 0 Td (send)Tj /T1_1 1 Tf 2.823 0 Td [(supports )-173(a )-173(fourth)]TJ /T1_2 1 Tf 8.474 0 Td (\337ags)Tj /T1_1 1 Tf 2.301 0 Td [(ar)18(gument. )-423(Thr)18(ee )-173(\337ags )-173(ar)18(e)]TJ -26.951 -1.2 Td [(de\336ned )-216(by )-216(the )-216(Single )-216(UNIX )-216(Speci\336cation, )-216(but )-216(it )-216(is )-216(common )-216(for )-216(implementations )-216(to)]TJ 0 -1.2 TD [(support additional ones.)-500(They ar)]TJ 0.25 Tc 14.683 0 Td (es)Tj 0 Tc 1.153 0 Td (ummarized in Figur)Tj 0.25 Tc 8.901 0 Td (e1)Tj 0 Tc 1.229 0 Td (6.13.)Tj -24.166 -1.2 Td (If)Tj /TT1 1 Tf 0.931 0 Td (send)Tj /T1_1 1 Tf -0.018 Tc 2.661 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-11(success, )-11(it )-11(doesn\325t )-11(necessarily )-11(mean )-11(that )-11(the )-11(pr)18(ocess )-11(at )-11(the )-11(other )-11(end)]TJ -6.247 -1.2 Td [(of )-36(the )-36(connection )-36(r)18(eceives )-36(the )-36(data.)-537(All )-36(we )-36(ar)]TJ 0.2861 Tc 20.289 0 Td (eg)Tj 0 Tc 1.321 0 Td [(uaranteed )-36(is )-36(that )-36(when)]TJ /TT1 1 Tf 10.545 0 Td (send)Tj /T1_1 1 Tf 2.686 0 Td (succeeds,)Tj -34.842 -1.2 Td [(the data has been deliver)18(ed to the network drivers without err)18(or)74(.)]TJ -0.055 Tc 1.8 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-284(a )-284(pr)18(otocol )-284(that )-284(supports )-284(message )-284(boundaries, )-284(if )-284(we )-284(try )-284(to )-284(send )-284(a )-284(single)]TJ -3.036 -1.2 Td [(message )-263(lar)18(ger )-263(than )-263(the )-263(maximum )-263(supported )-263(by )-263(the )-263(pr)17(otocol,)]TJ /TT1 1 Tf 29.906 0 Td (send)Tj /T1_1 1 Tf 2.913 0 Td [(will )-263(fail )-263(with)]TJ /TT1 1 Tf -32.819 -1.2 Td (errno)Tj /T1_1 1 Tf 3.329 0 Td [(set )-79(to)]TJ /TT1 1 Tf 2.76 0 Td (EMSGSIZE)Tj /T1_1 1 Tf 0.5793 Tc (.W)Tj 0 Tc 6.574 0 Td [(ith )-79(a )-79(byte-str)18(eam )-79(pr)17(otocol,)]TJ /TT1 1 Tf 12.179 0 Td (send)Tj /T1_1 1 Tf 2.729 0 Td [(will )-79(block )-79(until )-79(the )-79(entir)17(e)]TJ -27.572 -1.2 Td (amount of data has been transmitted.)Tj 1.8 -1.2 Td (The)Tj /TT1 1 Tf 1.942 0 Td (sendto)Tj /T1_1 1 Tf 3.869 0 Td [(function )-18(is )-18(similar )-18(to)]TJ /TT1 1 Tf 9.443 0 Td (send)Tj /T1_1 1 Tf 0.5185 Tc (.T)Tj 0 Tc 3.781 0 Td [(he )-18(dif)18(fer)18(ence )-18(is )-18(that)]TJ /TT1 1 Tf 8.974 0 Td (sendto)Tj /T1_1 1 Tf 3.869 0 Td [(allows )-18(us )-18(to)]TJ -33.678 -1.2 Td [(specify a destination addr)18(ess to be used with connectionless sockets.)]TJ /TT1 1 Tf 8.9989 0 0 8.9989 147.5818 223.8531 Tm (#include )Tj 0 -2.14 TD (ssize_t sendto\(int)Tj /T1_2 1 Tf 11.4 0 Td (sockfd)Tj /TT1 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.262 0 Td (onst void *)Tj /T1_2 1 Tf (buf)Tj /TT1 1 Tf 0.6 Tc (,s)Tj 0 Tc 9.697 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.43 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ags)Tj /TT1 1 Tf (,)Tj -26.189 -1.189 Td (const struct sockaddr *)Tj /T1_2 1 Tf (destaddr)Tj /TT1 1 Tf 0.6 Tc (,s)Tj 0 Tc 19.044 0 Td (ocklen_t)Tj /T1_2 1 Tf 5.4 0 Td (destlen)Tj /TT1 1 Tf (\);)Tj /T1_1 1 Tf -15.366 -2.14 Td (Returns: number of bytes sent if OK,)Tj /TT2 1 Tf 16.386 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1701.25 cm 0 0 m 0 628 l 3900 628 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf -0.055 Tc 9.9982 0 0 9.9982 129.5767 154.2322 Tm (Wi)Tj 0 Tc 1.236 0 Td [(th )-24(a )-24(connection-oriented )-24(socket, )-24(the )-24(destination )-24(addr)15(ess )-25(is )-25(ignor)18(ed, )-25(as )-25(the )-25(destination)]TJ -1.236 -1.2 Td [(is )-116(implied )-116(by )-116(the )-116(connection.)]TJ -0.055 Tc 13.81 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-116(a )-116(connectionless )-116(socket, )-116(we )-116(can\325t )-116(use)]TJ /TT1 1 Tf 18.385 0 Td (send)Tj /T1_1 1 Tf 2.766 0 Td (unless)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46913 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.4)]TJ 31.974 0 Td [(Connection )-250(Establishment)]TJ /T1_1 1 Tf 13.859 0 Td (605)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 0.883 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (\245T)Tj 0 Tc 2.102 0 Td [(he )-45(port )-45(number )-45(in )-45(the )-45(addr)18(ess )-45(cannot )-45(be )-45(less )-45(than )-45(1,024 )-45(unless )-45(the )-45(pr)18(ocess )-45(has)]TJ -0.613 -1.2 Td [(the appr)18(opriate privilege \(i.e., is the super)8(user\).)]TJ 0.883 Tc -1.489 -1.6 Td (\245U)Tj 0 Tc 2.267 0 Td (sually)Tj 0.3995 Tc 2.554 0 Td (,o)Tj 0 Tc 1.196 0 Td [(nly )-149(one )-149(socket )-149(endpoint )-149(can )-149(be )-149(bound )-149(to )-149(a )-149(given )-149(addr)18(ess, )-149(although)]TJ -4.527 -1.2 Td [(some pr)18(otocols allow duplicate bindings.)]TJ -3.289 -2.04 Td [(For )-98(the )-98(Internet )-98(domain, )-98(if )-98(we )-98(specify )-98(the )-98(special )-98(IP )-98(addr)17(ess)]TJ /TT0 1 Tf 27.731 0 Td (INADDR_ANY)Tj /T1_0 1 Tf 6.348 0 Td [(\(de\336ned )-98(in)]TJ /TT0 1 Tf -34.079 -1.2 Td ()Tj /T1_0 1 Tf [(\), )-236(the )-236(socket )-236(endpoint )-236(will )-236(be )-236(bound )-236(to )-236(all )-236(the )-236(system\325s )-236(network)]TJ 0 -1.2 TD [(interfaces. )-374(This)-374(means )-124(that )-124(we )-124(can )-124(r)18(eceive )-124(packets )-124(fr)18(om )-124(any )-124(of )-124(the )-124(network )-124(interface)]TJ T* [(car)18(ds )-6(installed )-6(in )-6(the )-6(system.)]TJ -0.092 Tc 13.281 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-6(see )-6(in )-6(the )-6(next )-6(section )-6(that )-6(the )-6(system )-6(will )-6(choose )-6(an)]TJ -14.668 -1.2 Td [(addr)18(ess )-142(and )-142(bind )-142(it )-142(to )-142(our )-142(socket )-142(for )-142(us )-142(if )-142(we )-142(call)]TJ /TT0 1 Tf 23.432 0 Td (connect)Tj /T1_0 1 Tf 4.592 0 Td (or)Tj /TT0 1 Tf 1.333 0 Td (listen)Tj /T1_0 1 Tf 3.992 0 Td [(without )-142(\336rst)]TJ -33.349 -1.2 Td [(binding an addr)18(ess to the socket.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td (an use the)Tj /TT0 1 Tf 4.725 0 Td (getsockname)Tj /T1_0 1 Tf 6.85 0 Td [(function to discover the addr)18(ess bound to a socket.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5914 519.8688 Tm (#include )Tj 0 -2.021 TD (int getsockname\(int)Tj /T1_2 1 Tf 12 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 4.262 0 Td (truct sockaddr *restrict)Tj /T1_2 1 Tf 15 0 Td (addr)Tj /TT0 1 Tf (,)Tj -21.662 -1.189 Td (socklen_t *restrict)Tj /T1_2 1 Tf 12 0 Td (alenp)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 5.251 -2.021 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4683.25 cm 0 0 m 0 606 l 3900 606 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 454.7654 Tm (Befor)Tj 0.3373 Tc 2.346 0 Td (ec)Tj 0 Tc 1.26 0 Td (alling)Tj /TT0 1 Tf 2.848 0 Td (getsockname)Tj /T1_0 1 Tf [(,)-337(we)-337(set)]TJ /T1_2 1 Tf 10.404 0 Td (alenp)Tj /T1_0 1 Tf 2.504 0 Td [(to )-87(point )-87(to )-87(an )-87(integer )-87(containing )-87(the )-87(size )-87(of)]TJ -19.362 -1.2 Td (the)Tj /TT0 1 Tf 1.651 0 Td (sockaddr)Tj /T1_0 1 Tf 5.064 0 Td [(buf)18(fer)]TJ 0.5139 Tc 2.604 0 Td (.O)Tj 0.2639 Tc 1.55 0 Td (nr)Tj 0 Tc 1.223 0 Td [(eturn, )-14(the )-14(integer )-14(is )-14(set )-14(to )-14(the )-14(size )-14(of )-14(the )-14(addr)19(ess )-14(r)18(eturned. )-264(If)]TJ -12.092 -1.2 Td [(the )-185(addr)18(ess )-185(won\325t )-185(\336t )-185(in )-185(the )-185(buf)18(fer )-185(pr)18(ovided, )-185(the )-185(addr)18(ess )-185(is )-185(silently )-185(tr)2(uncated. )-435(If)-436(no)]TJ 0 -1.2 Td [(addr)18(ess is curr)18(ently bound to the socket, the r)18(esults ar)]TJ 0.25 Tc 23.811 0 Td (eu)Tj 0 Tc 1.332 0 Td (nde\336ned.)Tj -23.343 -1.2 Td [(If )-18(the )-18(socket )-18(is )-18(connected )-18(to )-18(a )-18(peer)76(,)-268(we)-268(can )-18(\336nd )-18(out )-18(the )-18(peer)-74(\325s )-18(addr)18(ess )-18(by )-18(calling )-18(the)]TJ /TT0 1 Tf -1.8 -1.2 Td (getpeername)Tj /T1_0 1 Tf 6.85 0 Td (function.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5826 378.0746 Tm (#include )Tj T* (int getpeername\(int)Tj /T1_2 1 Tf 12 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 4.262 0 Td (truct sockaddr *restrict)Tj /T1_2 1 Tf 15 0 Td (addr)Tj /TT0 1 Tf (,)Tj -21.662 -1.189 Td (socklen_t *restrict)Tj /T1_2 1 Tf 12 0 Td (alenp)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 5.251 -2.021 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3265.25 cm 0 0 m 0 606 l 3900 606 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 312.9837 Tm [(Other )-81(than )-81(r)18(eturning )-81(the )-81(peer)-74(\325s )-81(addr)18(ess, )-81(the)]TJ /TT0 1 Tf 20.248 0 Td (getpeername)Tj /T1_0 1 Tf 6.931 0 Td [(function )-81(is )-81(identical )-81(to )-81(the)]TJ /TT0 1 Tf -27.179 -1.2 Td (getsockname)Tj /T1_0 1 Tf 6.85 0 Td (function.)Tj /TT2 1 Tf 11.9978 0 0 11.9978 93.5833 264.9923 Tm [(16.4 )-776(Connection)-556(Estab)10(lishment)]TJ /T1_0 1 Tf 9.9982 0 0 9.9982 129.5769 240.9966 Tm [(If )-473(we\325r)]TJ 0.723 Tc 3.361 0 Td (ed)Tj 0 Tc 1.813 0 Td [(ealing )-473(with )-473(a )-473(connection-oriented )-473(network )-473(service )-473(\()]TJ /TT0 1 Tf (SOCK_STREAM)Tj /T1_0 1 Tf 32.885 0 Td (or)Tj /TT0 1 Tf -38.059 -1.2 Td (SOCK_SEQPACKET)Tj /T1_0 1 Tf [(\), )-71(then )-71(befor)18(e)-321(we)-321(can )-71(exchange )-71(data, )-71(we )-71(need )-71(to )-71(cr)17(eate )-71(a )-71(connection)]TJ 0 -1.2 Td [(between )-178(the )-178(socket )-178(of )-178(the )-178(pr)18(ocess )-178(r)18(equesting )-178(the )-178(service )-178(\(the )-178(client\) )-178(and )-178(the )-178(pr)19(ocess)]TJ 0 -1.2 TD [(pr)18(oviding )-26(the )-26(service )-26(\(the )-26(server\).)]TJ -0.092 Tc 15.555 0 Td [(We )-210(u)]TJ 0 Tc 2.266 0 Td [(se )-26(the)]TJ /TT0 1 Tf 2.842 0 Td (connect)Tj /T1_0 1 Tf 4.476 0 Td [(function )-26(to )-26(cr)18(eate )-26(a )-26(connection.)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.5743 188.3065 Tm (#include )Tj 0 -2.021 TD (int connect\(int)Tj /T1_2 1 Tf 9.6 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.262 0 Td (onst struct sockaddr *)Tj /T1_2 1 Tf (addr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 16.833 0 Td (ocklen_t)Tj /T1_2 1 Tf 5.4 0 Td (len)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -9.244 -2.021 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1474.25 cm 0 0 m 0 499 l 3900 499 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46914 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (604)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 194.3883 670.2598 Tm (sinp = \(struct sockaddr_in *\)aip->ai_addr;)Tj 0 -1.189 TD (addr = inet_ntop\(AF_INET, &sinp->sin_addr, abuf,)Tj 2.4 -1.189 Td (INET_ADDRSTRLEN\);)Tj -2.4 -1.189 Td (printf\(" address %s", addr?addr:"unknown"\);)Tj T* (printf\(" port %d", ntohs\(sinp->sin_port\)\);)Tj -2.4 -1.189 Td (})Tj T* (printf\("\\n"\);)Tj -2.4 -1.189 Td (})Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5692.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 241.307 553.1326 Tm (Figure 16.9)Tj /T1_1 1 Tf 5.695 0 Td (Print host and service information)Tj 9.9988 0 0 9.9988 129.5846 529.1355 Tm [(This )-148(pr)18(ogram )-148(illustrates )-148(the )-148(use )-148(of )-148(the)]TJ /TT0 1 Tf 18.064 0 Td (getaddrinfo)Tj /T1_1 1 Tf 6.998 0 Td [(function. )-398(If)-398(multiple )-148(pr)18(otocols)]TJ -25.063 -1.2 Td [(pr)18(ovide )-5(the )-5(given )-5(service )-5(for )-5(the )-5(given )-5(host, )-5(the )-5(pr)18(ogram )-5(will )-5(print )-5(mor)]TJ 0.255 Tc 31.682 0 Td (et)Tj 0 Tc 1.06 0 Td [(han )-5(one )-5(entry)111(.)]TJ -32.742 -1.2 Td [(In )-78(this )-78(example, )-78(we )-78(print )-78(out )-78(the )-78(addr)18(ess )-78(information )-78(only )-78(for )-78(the )-78(pr)23(otocols )-77(that )-77(work)]TJ 0 -1.2 TD [(with )-168(IPv4 )-168(\()]TJ /TT0 1 Tf 5.209 0 Td (ai_family)Tj /T1_1 1 Tf 5.818 0 Td (equals)Tj /TT0 1 Tf 3.275 0 Td (AF_INET)Tj /T1_1 1 Tf [(\). )-418(If)-419(we )-168(wanted )-168(to )-168(r)18(estrict )-168(the )-168(output )-168(to )-168(the)]TJ /TT0 1 Tf -14.302 -1.2 Td (AF_INET)Tj /T1_1 1 Tf 4.45 0 Td [(pr)18(otocol family)111(,)-250(we)-250(could set the)]TJ /TT0 1 Tf 14.594 0 Td (ai_family)Tj /T1_1 1 Tf 5.65 0 Td (\336eld in the hint.)Tj -22.894 -1.2 Td [(When we r)8(un the pr)18(ogram on one of the test systems, we get)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5821 452.4447 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out harry nfs)Tj /TT0 1 Tf -1.2 -1.189 Td (flags canon family inet type stream protocol TCP)Tj 2.778 -1.189 Td (host harry address 192.168.1.99 port 2049)Tj -2.778 -1.189 Td (flags canon family inet type datagram protocol UDP)Tj 2.778 -1.189 Td (host harry address 192.168.1.99 port 2049)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4037.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 11.9978 0 0 11.9978 129.5767 372.432 Tm [(16.3.4 )-556(Associating)-556(Ad)10(dresses )-278(with )-278(Soc)20(kets)]TJ /T1_1 1 Tf 9.9982 0 0 9.9982 129.5769 348.4363 Tm [(The )-202(addr)18(ess )-202(associated )-202(with )-202(a )-202(client\325s )-202(socket )-202(is )-202(of )-202(little )-202(inter)15(est, )-202(and )-202(we )-202(can )-202(let )-202(the)]TJ T* [(system )-102(choose )-102(a )-102(default )-102(addr)18(ess )-102(for )-102(us.)-602(For )-102(a )-102(server)]TJ 0.3521 Tc 23.812 0 Td (,h)Tj 0 Tc 1.184 0 Td [(owever)74(,)-352(we)-352(need )-102(to )-102(associate )-102(a)]TJ -24.996 -1.2 Td [(well-known )-296(addr)18(ess )-296(with )-296(the )-296(server)-75(\325s )-296(socket )-296(on )-296(which )-296(client )-296(r)18(equests )-296(will )-296(arrive.)]TJ T* [(Clients )-80(need )-80(a )-80(way )-80(to )-80(discover )-80(the )-80(addr)15(ess )-80(to )-80(use )-80(to )-80(contact )-80(a )-80(server)]TJ 0.3304 Tc 30.96 0 Td (,a)Tj 0 Tc 1.08 0 Td [(nd )-80(the )-80(simplest)]TJ -32.04 -1.2 Td [(scheme )-7(is )-7(for )-7(a )-7(server )-7(to )-7(r)15(eserve )-8(an )-8(addr)18(ess )-8(and )-8(r)18(egister )-8(it )-8(in)]TJ /TT0 1 Tf 26.953 0 Td (/etc/services)Tj /T1_1 1 Tf 8.058 0 Td [(or )-8(with )-8(a)]TJ -35.011 -1.2 Td (name service.)Tj -0.092 Tc 1.8 -1.2 Td [(We )-184(u)]TJ 0 Tc 2.24 0 Td (se the)Tj /TT0 1 Tf 2.79 0 Td (bind)Tj /T1_1 1 Tf 2.65 0 Td [(function to associate an addr)18(ess with a socket.)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.5737 257.3523 Tm (#include )Tj 0 -2.021 TD (int bind\(int)Tj /T1_2 1 Tf 7.8 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.262 0 Td (onst struct sockaddr *)Tj /T1_2 1 Tf (addr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 16.833 0 Td (ocklen_t)Tj /T1_2 1 Tf 5.4 0 Td (len)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -7.444 -2.021 Td (Returns: 0 if OK,)Tj /TT3 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2165.25 cm 0 0 m 0 499 l 3900 499 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9976 0 0 9.9976 129.5689 200.5709 Tm (Ther)Tj 0.25 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(s)]TJ 0 Tc 1.53 0 Td [(everal r)18(estrictions on the addr)18(ess we can use:)]TJ 0.883 Tc -3.01 -2.04 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-105(addr)18(ess )-105(we )-105(specify )-105(must )-105(be )-105(valid )-105(for )-105(the )-105(machine )-105(on )-105(which )-105(the )-105(pr)23(ocess )-104(is)]TJ -0.008 Tc -0.613 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td [(nning; we can\325t specify an addr)18(ess belonging to some other machine.)]TJ 0.883 Tc -2.479 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-27(addr)18(ess )-27(must )-27(match )-27(the )-27(format )-27(supported )-27(by )-27(the )-27(addr)18(ess )-27(family )-27(we )-27(used )-27(to)]TJ -0.613 -1.2 Td [(cr)18(eate the socket.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46915 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.3)]TJ 38.7 0 Td [(Addr)18(essing)]TJ /T1_1 1 Tf 7.133 0 Td (597)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 129.5922 668.9599 Tm [(16.3.3 )-556(Ad)10(dress )-278(Lookup)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 647.3612 Tm [(Ideally)111(,)-473(an)-473(application )-223(won\325t )-223(have )-223(to )-223(be )-223(awar)19(e)-473(of)-473(the )-223(internal )-223(str)8(uctur)18(e)-473(of)-473(a)-473(socket)]TJ 0 -1.2 Td [(addr)18(ess. )-640(If)-641(an )-390(application )-390(simply )-390(passes )-390(socket )-390(addr)18(esses )-390(ar)18(ound )-390(as)]TJ /TT1 1 Tf 34.2 0 Td (sockaddr)Tj /T1_0 1 Tf -34.2 -1.2 Td [(str)8(uctur)18(es )-122(and )-122(doesn\325t )-122(r)18(ely )-122(on )-122(any )-122(pr)18(otocol-speci\336c )-122(featur)18(es, )-122(then )-122(the )-122(application )-122(will)]TJ 0 -1.2 Td [(work with many dif)18(fer)18(ent pr)18(otocols that pr)18(ovide the same type of service.)]TJ 1.8 -1.2 Td (Historically)Tj 0.4797 Tc 5.076 0 Td (,t)Tj 0 Tc 1.056 0 Td [(he )-230(BSD )-230(networking )-230(softwar)]TJ 0.4797 Tc 12.897 0 Td (eh)Tj 0 Tc 1.541 0 Td [(as )-230(pr)18(ovided )-230(interfaces )-230(to )-230(access )-230(the)]TJ -22.369 -1.2 Td [(various )-220(network )-220(con\336guration )-220(information.)-720(In )-220(Section )-220(6.7, )-220(we )-220(brie\337y )-220(discussed )-220(the)]TJ 0 -1.2 TD [(networking )-37(data )-37(\336les )-37(and )-37(the )-37(functions )-37(used )-37(to )-37(access )-37(them.)-537(In )-37(this )-37(section, )-37(we )-37(discuss)]TJ T* [(them )-336(in )-336(a )-336(little )-336(mor)]TJ 0.5856 Tc 9.795 0 Td (ed)Tj 0 Tc 1.676 0 Td [(etail )-336(and )-336(intr)19(oduce )-336(the )-336(newer )-336(functions )-336(used )-336(to )-336(look )-336(up)]TJ -11.471 -1.2 Td [(addr)18(essing information.)]TJ 1.8 -1.2 Td [(The )-23(network )-23(con\336guration )-23(information )-23(r)18(eturned )-23(by )-23(these )-23(functions )-23(can )-23(be )-23(kept )-23(in )-23(a)]TJ -1.8 -1.2 Td [(number )-277(of )-277(places.)-779(This )-278(information )-278(can )-278(be )-278(kept )-278(in )-278(static )-278(\336les )-278(\(e.g.,)]TJ /TT1 1 Tf 32.75 0 Td (/etc/hosts)Tj /T1_0 1 Tf (,)Tj /TT1 1 Tf -32.75 -1.2 Td (/etc/services)Tj /T1_0 1 Tf [(\), )-211(or )-211(it )-211(can )-211(be )-211(managed )-211(by )-211(a )-211(name )-211(service, )-211(such )-211(as )-211(DNS )-211(\(Domain)]TJ T* [(Name )-419(System\) )-419(or )-419(NIS )-419(\(Network )-419(Information )-419(Service\).)-918(Regar)18(dless )-419(of )-419(wher)]TJ 0.6689 Tc 36.465 0 Td (et)Tj 0 Tc 1.474 0 Td (he)Tj -37.939 -1.2 Td (information is kept, the same functions can be used to access it.)Tj 1.8 -1.2 Td (The hosts known by a given computer system ar)Tj 0.25 Tc 21.404 0 Td (ef)Tj 0 Tc 1.062 0 Td (ound by calling)Tj /TT1 1 Tf 7.156 0 Td (gethostent)Tj /T1_0 1 Tf (.)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5913 462.6722 Tm (#include )Tj 0 -1.783 TD (struct hostent *gethostent\(void\);)Tj /T1_0 1 Tf 22.78 -1.783 Td (Returns: pointer if OK,)Tj /TT1 1 Tf 10.333 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT1 1 Tf -35.763 -1.783 Td (void sethostent\(int)Tj /T1_2 1 Tf 12 0 Td (stayopen)Tj /TT1 1 Tf (\);)Tj -12 -1.783 Td (void endhostent\(void\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3940.25 cm 0 0 m 0 777 l 3900 777 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 380.4543 Tm [(If )-13(the )-13(host )-13(database )-13(\336le )-13(isn\325t )-13(alr)18(eady )-13(open,)]TJ /TT1 1 Tf 18.98 0 Td (gethostent)Tj /T1_0 1 Tf 6.263 0 Td [(will )-13(open )-13(it.)-513(The)]TJ /TT1 1 Tf 7.758 0 Td (gethostent)Tj /T1_0 1 Tf -33 -1.2 Td [(function )-56(r)18(eturns )-56(the )-56(next )-56(entry )-56(in )-56(the )-56(\336le.)-557(The)]TJ /TT1 1 Tf 21.085 0 Td (sethostent)Tj /T1_0 1 Tf 6.306 0 Td [(function )-56(will )-56(open )-56(the )-56(\336le)]TJ -27.391 -1.2 Td [(or )-31(r)18(ewind )-31(it )-31(if )-31(it )-31(is )-31(alr)18(eady )-31(open.)-531(When )-31(the)]TJ /T1_2 1 Tf 19.554 0 Td (stayopen)Tj /T1_0 1 Tf 3.836 0 Td [(ar)18(gument )-31(is )-31(set )-31(to )-31(a )-31(nonzer)]TJ 0.2813 Tc 12.094 0 Td (ov)Tj 0 Tc 1.392 0 Td (alue,)Tj -36.877 -1.2 Td [(the )-211(\336le )-211(r)18(emains )-211(open )-211(after )-211(calling)]TJ /TT1 1 Tf 16.258 0 Td (gethostent)Tj /T1_0 1 Tf 0.7106 Tc (.T)Tj 0 Tc 7.574 0 Td (he)Tj /TT1 1 Tf 1.522 0 Td (endhostent)Tj /T1_0 1 Tf 6.461 0 Td [(function )-211(can )-211(be)]TJ -31.814 -1.2 Td (used to close the \336le.)Tj 1.8 -1.2 Td (When)Tj /TT1 1 Tf 2.94 0 Td (gethostent)Tj /T1_0 1 Tf -0.018 Tc 6.297 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns, )-47(we )-47(get )-47(a )-47(pointer )-47(to )-47(a)]TJ /TT1 1 Tf 12.426 0 Td (hostent)Tj /T1_0 1 Tf 4.497 0 Td [(str)8(uctur)18(e, )-47(which )-47(might)]TJ -28.816 -1.2 Td [(point )-156(to )-156(a )-156(static )-156(data )-156(buf)16(fer )-157(that )-157(is )-157(overwritten )-157(each )-157(time )-157(we )-157(call)]TJ /TT1 1 Tf 30.419 0 Td (gethostent)Tj /T1_0 1 Tf 0.6566 Tc (.T)Tj 0 Tc 7.52 0 Td (he)Tj /TT1 1 Tf -37.939 -1.2 Td (hostent)Tj /T1_0 1 Tf 4.45 0 Td [(str)8(uctur)18(e)-250(is)-250(de\336ned to have at least the following members:)]TJ /TT1 1 Tf 8.9989 0 0 8.9989 147.582 280.8362 Tm (struct hostent {)Tj 1.2 -1.189 Td [(char )-1200(*h_name;)-4200(/* name of host */)]TJ 0 -1.189 TD [(char )-600(**h_aliases;)-2400(/* pointer to alternate host name array */)]TJ T* [(int )-2400(h_addrtype;)-1800(/* address type */)]TJ T* [(int )-2400(h_length; )-2400(/*)-600(length in bytes of address */)]TJ 0 -1.189 TD [(char )-600(**h_addr_list; )-600(/*)-600(pointer to array of network addresses */)]TJ 0 -1.189 TD (.)Tj 0 -0.476 TD (.)Tj 0 -0.476 TD (.)Tj -1.2 -1.189 Td (};)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5841 180.4587 Tm [(The addr)18(esses r)18(eturned ar)18(e)-250(in)-250(network byte or)18(der)74(.)]TJ -0.09 Tc 1.8 -1.2 Td (Tw)Tj 0.673 Tc 1.357 0 Td (oa)Tj 0 Tc 1.719 0 Td [(dditional )-423(functions)-83(\321)]TJ /TT1 1 Tf 10.02 0 Td (gethostbyname)Tj /T1_0 1 Tf 8.473 0 Td (and)Tj /TT1 1 Tf 2.366 0 Td (gethostbyaddr)Tj /T1_0 1 Tf 0.0833 Tc 7.883 0 Td (\321o)Tj 0 Tc 1.629 0 Td (riginally)Tj -35.247 -1.2 Td (wer)Tj 0.4563 Tc 1.69 0 Td (ei)Tj 0 Tc 1.226 0 Td [(ncluded )-206(with )-206(the)]TJ /TT1 1 Tf 8.41 0 Td (hostent)Tj /T1_0 1 Tf 4.656 0 Td [(functions, )-206(but )-206(ar)]TJ 0.4563 Tc 7.653 0 Td (en)Tj 0 Tc 1.517 0 Td [(ow )-206(consider)18(ed )-206(to )-206(be )-206(obsolete.)]TJ -25.152 -1.2 Td [(They )-361(wer)]TJ 0.6107 Tc 4.531 0 Td (er)Tj 0 Tc 1.467 0 Td [(emoved )-361(fr)18(om )-361(V)111(ersion )-361(4 )-361(of )-361(the )-361(Single )-361(UNIX )-361(Speci\336cation.)]TJ -0.092 Tc 28.763 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-361(see)]TJ -0.018 Tc -36.148 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(placements for them shortly)111(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46916 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.3)]TJ 38.7 0 Td [(Addr)18(essing)]TJ /T1_1 1 Tf 7.133 0 Td (595)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 129.5922 668.9599 Tm [(16.3.2 )-556(Ad)10(dress )-278(Formats)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(An )-169(addr)18(ess )-169(identi\336es )-169(a )-169(socket )-169(endpoint )-169(in )-169(a )-169(particular )-169(communication )-169(domain.)-666(The)]TJ 0 -1.2 TD [(addr)18(ess )-176(format )-176(is )-176(speci\336c )-176(to )-176(the )-176(particular )-176(domain.)-675(So )-176(that )-176(addr)18(esses )-176(with )-176(dif)19(fer)18(ent)]TJ -0 -1.2 Td [(formats )-265(can )-265(be )-265(passed )-265(to )-265(the )-265(socket )-265(functions, )-265(the )-265(addr)18(esses )-265(ar)]TJ 0.5155 Tc 30.167 0 Td (ec)Tj 0 Tc 1.439 0 Td [(ast )-265(to )-265(a )-265(generic)]TJ /TT1 1 Tf -31.605 -1.2 Td (sockaddr)Tj /T1_0 1 Tf 5.05 0 Td [(addr)18(ess str)8(uctur)18(e:)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.5911 592.2645 Tm (struct sockaddr {)Tj 1.2 -1.189 Td [(sa_family_t )-1133(sa_family;)-1200(/* address family */)]TJ 0 -1.189 TD (char )Tj 8.333 0 Td [(sa_data[];)-1200(/* variable-length address */)]TJ -8.333 -1.189 Td (.)Tj 0 -0.476 TD (.)Tj 0 -0.476 TD (.)Tj -1.2 -1.189 Td (};)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 522.9084 Tm [(Implementations )-209(ar)]TJ 0.459 Tc 8.866 0 Td (ef)Tj -0.018 Tc 1.271 0 Td (re)Tj 0 Tc 0.856 0 Td [(e)-459(to)-459(add )-209(mor)]TJ 0.459 Tc 6.256 0 Td (em)Tj 0 Tc 1.821 0 Td [(embers )-209(and )-209(de\336ne )-209(a )-209(size )-209(for )-209(the)]TJ /TT1 1 Tf 15.73 0 Td (sa_data)Tj /T1_0 1 Tf -34.8 -1.2 Td (member)Tj 0.5 Tc 3.598 0 Td (.F)Tj 0 Tc 1.306 0 Td [(or example, on Linux, the str)8(uctur)18(e)-250(is)-250(de\336ned as)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.5919 494.2101 Tm (struct sockaddr {)Tj 1.2 -1.189 Td [(sa_family_t )-600(sa_family;)-2400(/* address family */)]TJ 0 -1.189 TD [(char )-4800(sa_data[14];)-1200(/* variable-length address */)]TJ -1.2 -1.189 Td (};)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.593 444.1136 Tm [(But on Fr)18(eeBSD, the str)8(uctur)18(e)-250(is)-250(de\336ned as)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.5919 427.4142 Tm (struct sockaddr {)Tj 1.2 -1.189 Td [(unsigned char)-1200(sa_len; )-3600(/*)-600(total length */)]TJ 0 -1.189 TD [(sa_family_t )-1800(sa_family; )-1800(/*)-600(address family */)]TJ T* (char )Tj 9 0 Td [(sa_data[14];)-1200(/* variable-length address */)]TJ -10.2 -1.189 Td (};)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 147.5919 366.6178 Tm [(Internet )-114(addr)18(esses )-114(ar)]TJ 0.3638 Tc 9.44 0 Td (ed)Tj 0 Tc 1.454 0 Td [(e\336ned )-114(in)]TJ /TT1 1 Tf 4.357 0 Td ()Tj /T1_0 1 Tf 0.6138 Tc (.I)Tj 0.3638 Tc 9.601 0 Td (nt)Tj 0 Tc 1.272 0 Td [(he )-114(IPv4 )-114(Internet )-114(domain)]TJ -27.922 -1.2 Td (\()Tj /TT1 1 Tf (AF_INET)Tj /T1_0 1 Tf [(\), a socket addr)18(ess is r)18(epr)18(esented by a)]TJ /TT1 1 Tf 21.355 0 Td (sockaddr_in)Tj /T1_0 1 Tf 6.85 0 Td [(str)8(uctur)18(e:)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.5923 337.9192 Tm (struct in_addr {)Tj 1.2 -1.189 Td [(in_addr_t )-3600(s_addr;)-4800(/* IPv4 address */)]TJ -1.2 -1.189 Td (};)Tj 0 -2.378 TD (struct sockaddr_in {)Tj 1.2 -1.189 Td [(sa_family_t )-1800(sin_family; )-1800(/*)-600(address family */)]TJ 0 -1.189 TD [(in_port_t )-3000(sin_port; )-3000(/*)-600(port number */)]TJ 0 -1.189 TD [(struct in_addr sin_addr;)-3600(/* IPv4 address */)]TJ -1.2 -1.189 Td (};)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5934 234.3257 Tm (The)Tj /TT1 1 Tf 1.999 0 Td (in_port_t)Tj /T1_0 1 Tf 5.725 0 Td [(data )-75(type )-75(is )-75(de\336ned )-75(to )-75(be )-75(a)]TJ /TT1 1 Tf 12.661 0 Td (uint16_t)Tj /T1_0 1 Tf 0.5752 Tc (.T)Tj 0 Tc 6.238 0 Td (he)Tj /TT1 1 Tf 1.386 0 Td (in_addr_t)Tj /T1_0 1 Tf 5.725 0 Td [(data )-75(type )-75(is)]TJ -33.736 -1.2 Td [(de\336ned )-95(to )-95(be )-95(a)]TJ /TT1 1 Tf 7.152 0 Td (uint32_t)Tj /T1_0 1 Tf 0.5952 Tc (.T)Tj 0 Tc 6.258 0 Td [(hese )-95(integer )-95(data )-95(types )-95(specify )-95(the )-95(number )-95(of )-95(bits )-95(in )-95(the)]TJ -13.41 -1.2 Td (data type and ar)Tj 0.25 Tc 7.219 0 Td (ed)Tj 0 Tc 1.34 0 Td (e\336ned in)Tj /TT1 1 Tf 4.129 0 Td ()Tj /T1_0 1 Tf (.)Tj -10.888 -1.2 Td [(In )-119(contrast )-119(to )-119(the)]TJ /TT1 1 Tf 8.199 0 Td (AF_INET)Tj /T1_0 1 Tf 4.569 0 Td [(domain, )-119(the )-119(IPv6 )-119(Internet )-119(domain )-119(\()]TJ /TT1 1 Tf 16.154 0 Td (AF_INET6)Tj /T1_0 1 Tf 0.3693 Tc (\)s)Tj 0 Tc 5.926 0 Td (ocket)Tj -36.649 -1.2 Td [(addr)18(ess is r)18(epr)18(esented by a)]TJ /TT1 1 Tf 12.214 0 Td (sockaddr_in6)Tj /T1_0 1 Tf 7.45 0 Td [(str)8(uctur)18(e:)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.592 169.6296 Tm (struct in6_addr {)Tj 1.2 -1.189 Td [(uint8_t )-4200(s6_addr[16];)-2400(/* IPv6 address */)]TJ -1.2 -1.189 Td (};)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46917 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.3)]TJ 38.7 0 Td [(Addr)18(essing)]TJ /T1_1 1 Tf 7.133 0 Td (593)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Given )-133(that )-133(we )-133(can)]TJ /TT0 1 Tf 8.786 0 Td (close)Tj /T1_0 1 Tf 0.3832 Tc 3.383 0 Td (as)Tj 0 Tc 1.307 0 Td [(ocket, )-133(why )-133(is)]TJ /TT0 1 Tf 6.437 0 Td (shutdown)Tj /T1_0 1 Tf 5.183 0 Td [(needed? )-383(Ther)]TJ 0.3831 Tc 6.369 0 Td (ea)Tj -0.018 Tc 1.362 0 Td [(re )-169(s)]TJ 0 Tc 1.663 0 Td (everal)Tj -0.018 Tc -36.291 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(asons. )-387(First,)]TJ /TT0 1 Tf 5.992 0 Td (close)Tj /T1_0 1 Tf 3.387 0 Td [(will )-137(deallocate )-137(the )-137(network )-137(endpoint )-137(only )-137(when )-137(the )-137(last )-137(active)]TJ -0.018 Tc -10.235 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(ence )-30(is )-30(closed.)-530(If )-30(we )-30(duplicate )-30(the )-30(socket )-30(\(with)]TJ /TT0 1 Tf 22.36 0 Td (dup)Tj /T1_0 1 Tf 0.28 Tc (,f)Tj 0 Tc 2.663 0 Td [(or )-30(example\), )-30(the )-30(socket )-30(won\325t)]TJ -25.879 -1.2 Td [(be )-222(deallocated )-222(until )-222(we )-222(close )-222(the )-222(last )-222(\336le )-222(descriptor )-222(r)18(eferring )-222(to )-222(it.)-721(The)]TJ /TT0 1 Tf 34.2 0 Td (shutdown)Tj /T1_0 1 Tf -34.2 -1.2 Td [(function )-182(allows )-182(us )-182(to )-182(deactivate )-182(a )-182(socket )-182(independently )-182(of )-182(the )-182(number )-182(of )-182(active )-182(\336le)]TJ 0 -1.2 TD [(descriptors )-62(r)18(efer)18(encing )-62(it.)-562(Second, )-62(it )-62(is )-62(sometimes )-62(convenient )-62(to )-62(shut )-62(a )-62(socket )-62(down )-62(in)]TJ T* [(one )-53(dir)18(ection )-53(only)]TJ 0.5531 Tc 8.024 0 Td (.F)Tj 0 Tc 1.359 0 Td [(or )-53(example, )-53(we )-53(can )-53(shut )-53(a )-53(socket )-53(down )-53(for )-53(writing )-53(if )-53(we )-53(want )-53(the)]TJ -9.383 -1.2 Td [(pr)18(ocess )-124(we )-124(ar)]TJ 0.3743 Tc 6.233 0 Td (ec)Tj 0 Tc 1.297 0 Td [(ommunicating )-124(with )-124(to )-124(be )-124(able )-124(to )-124(tell )-124(when )-124(we )-124(ar)]TJ 0.3743 Tc 22.542 0 Td (ed)Tj 0 Tc 1.464 0 Td [(one )-124(transmitting)]TJ -31.537 -1.2 Td [(data, while still allowing us to use the socket to r)18(eceive data sent to us by the pr)18(ocess.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5942 541.7675 Tm [(16.3 )-776(Ad)10(dressing)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.592 520.1688 Tm [(In )-30(the )-30(pr)18(evious )-30(section, )-30(we )-30(learned )-30(how )-30(to )-30(cr)15(eate )-30(and )-30(destr)18(oy )-30(a )-30(socket.)-531(Befor)18(e)-280(we)-280(l)-1(earn)]TJ 0 -1.2 Td [(to )-26(do )-26(something )-26(useful )-26(with )-26(a )-26(socket, )-26(we )-26(need )-26(to )-26(learn )-26(how )-26(to )-26(identify )-26(the )-26(pr)24(ocess )-26(with)]TJ T* [(which )-209(we )-209(wish )-209(to )-209(communicate.)-707(Identifying )-209(the )-209(pr)18(ocess )-209(has )-209(two )-209(components.)-707(The)]TJ T* [(machine\325s )-81(network )-81(addr)18(ess )-81(helps )-81(us )-81(identify )-81(the )-81(computer )-81(on )-81(the )-81(network )-81(we )-81(wish )-81(to)]TJ T* [(contact, )-111(and )-111(the )-111(service, )-111(r)16(epr)18(esented )-111(by )-111(a)]TJ /T1_2 1 Tf 19.179 0 Td [(port )-111(number)]TJ /T1_0 1 Tf 0.3614 Tc (,h)Tj 0 Tc 6.352 0 Td [(elps )-111(us )-111(identify )-111(the )-111(particular)]TJ -25.53 -1.2 Td [(pr)18(ocess on the computer)74(.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 129.5924 432.574 Tm [(16.3.1 )-556(Byte)-556(Or)20(dering)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5924 410.9753 Tm [(When )-242(communicating )-242(with )-242(pr)18(ocesses )-242(r)8(unning )-242(on )-242(the )-242(same )-242(computer)77(,)-492(we)-492(g)1(enerally)]TJ -0 -1.2 Td [(don\325t )-238(have )-238(to )-238(worry )-238(about )-238(byte )-238(or)16(dering. )-488(The)-489(byte )-238(or)18(der )-238(is )-238(a )-238(characteristic )-238(of )-238(the)]TJ 0 -1.2 Td [(pr)18(ocessor )-14(ar)18(chitectur)18(e, )-14(dictating )-14(how )-14(bytes )-14(ar)]TJ 0.2641 Tc 20.138 0 Td (eo)Tj -0.018 Tc 1.289 0 Td (rd)Tj 0 Tc 0.988 0 Td [(er)18(ed )-14(within )-14(lar)18(ger )-14(data )-14(types, )-14(such )-14(as)]TJ -22.415 -1.2 Td [(integers. )-250(Figur)]TJ 0.25 Tc 6.665 0 Td (e1)Tj 0 Tc 1.229 0 Td (6.5 shows how the bytes within a 32)Tj 15.903 0.09 Td (-)Tj 0.333 -0.09 Td (bit integer ar)Tj 0.25 Tc 5.655 0 Td (en)Tj 0 Tc 1.311 0 Td [(umber)18(ed.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2814 3170 864 288 re S Q BT /T1_2 1 Tf 7.999 0 0 7.999 289.9412 329.6004 Tm (n)Tj 0.0833 Tc 2.064 0 Td [(n+1)-788(n+2)-788(n+3)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 3170.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 3206.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 3242.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 3278.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 3314.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 3350.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 3386.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 3422.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 3458.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 3170.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 3206.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 3242.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 3278.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 3314.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 3350.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 3386.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 3422.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 3458.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 3170.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 3206.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 3242.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 3278.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 3314.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 3350.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 3386.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 3422.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 3458.25 cm 0 0 m 0 0 l S Q Q BT /T1_0 1 Tf 0 Tc 7.9986 0 0 7.9986 283.8209 307.9846 Tm (MSB)Tj 8.267 0 Td (LSB)Tj -5.565 5.4 Td (big-endian)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2814 2522 864 288 re S Q BT /T1_2 1 Tf 0.0833 Tc 7.9981 0 0 7.9981 284.8176 264.7764 Tm [(n+3)-788(n+2)-788(n+1)]TJ 0 Tc 8.736 0 Td (n)Tj ET q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 2522.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 2558.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 2594.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 2630.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 2666.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 2702.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 2738.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 2774.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3030.25 2810.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 2522.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 2558.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 2594.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 2630.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 2666.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 2702.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 2738.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 2774.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3246.25 2810.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 2522.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 2558.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 2594.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 2630.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 2666.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 2702.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 2738.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 2774.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 6 w 1 j 1 J q 1 0 0 1 3462.25 2810.25 cm 0 0 m 0 0 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 283.7868 243.167 Tm (MSB)Tj 8.267 0 Td (LSB)Tj -5.867 5.4 Td (little-endian)Tj /T1_1 1 Tf -6.463 -8.33 Td (Figure 16.5)Tj /T1_0 1 Tf 5.695 0 Td [(Byte or)18(der in a 32)]TJ 7.753 0.09 Td (-)Tj 0.333 -0.09 Td (bit integer)Tj 9.997 0 0 9.997 147.5564 194.5418 Tm [(If )-155(the )-155(pr)18(ocessor )-155(ar)18(chitectur)]TJ 0.4049 Tc 12.257 0 Td (es)Tj 0 Tc 1.308 0 Td (upports)Tj /T1_2 1 Tf 3.901 0 Td (big-endian)Tj /T1_0 1 Tf 4.702 0 Td [(byte )-155(or)18(der)]TJ 0.4049 Tc 4.653 0 Td (,t)Tj 0 Tc 0.981 0 Td [(hen )-155(the )-155(highest )-155(byte)]TJ -29.601 -1.2 Td [(addr)18(ess )-4(occurs )-4(in )-4(the )-4(least )-4(signi\336cant )-4(byte)]TJ 18.853 0.04 Td (\()Tj 0.333 -0.04 Td (LSB)Tj 1.747 0.04 Td (\))Tj 0.333 -0.04 Td (.)Tj /T1_2 1 Tf 0.754 0 Td (Little-endian)Tj /T1_0 1 Tf 5.477 0 Td [(byte )-4(or)18(der )-4(is )-4(the )-4(opposite:)]TJ -27.497 -1.2 Td [(the )-100(least )-100(signi\336cant )-100(byte )-100(contains )-100(the )-100(lowest )-100(byte )-100(addr)14(ess. )-350(Note)-351(that )-100(r)18(egar)18(dless )-100(of )-100(the)]TJ T* [(byte )-254(or)18(dering, )-254(the )-254(most )-254(signi\336cant )-254(byte)]TJ 19.106 0.04 Td (\()Tj 0.333 -0.04 Td (MSB)Tj 2.082 0.04 Td (\))Tj 0.837 -0.04 Td [(is )-254(always )-254(on )-254(the )-254(left, )-254(and )-254(the )-254(least)]TJ -22.358 -1.2 Td [(signi\336cant )-111(byte )-111(is )-111(always )-111(on )-111(the )-111(right.)-611(Thus, )-111(if )-111(we )-111(wer)18(e)-361(to)-361(assign )-111(a )-111(32)]TJ 32.28 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-111(integer )-111(the)]TJ -32.613 -1.2 Td (value)Tj /TT0 1 Tf 2.74 0 Td (0x04030201)Tj /T1_0 1 Tf 0.302 Tc (,t)Tj 0 Tc 6.878 0 Td [(he )-52(most )-52(signi\336cant )-52(byte )-52(would )-52(contain )-52(4, )-52(and )-52(the )-52(least )-52(signi\336cant)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46918 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (590)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(16.2 )-776(Soc)20(ket )-278(Descriptor)15(s)]TJ /T1_1 1 Tf 0.4019 Tc 9.9994 0 0 9.9994 129.5923 647.3612 Tm (As)Tj 0 Tc 1.604 0 Td [(ocket )-152(is )-152(an )-152(abstraction )-152(of )-152(a )-152(communication )-152(endpoint.)-651(Just )-152(as )-152(they )-152(would )-152(use )-152(\336le)]TJ -1.604 -1.2 Td [(descriptors )-82(to )-82(access )-82(\336les, )-82(applications )-82(use )-82(socket )-82(descriptors )-82(to )-82(access )-82(sockets.)-582(Socket)]TJ 0 -1.2 TD [(descriptors )-104(ar)]TJ 0.3545 Tc 6.168 0 Td (ei)Tj 0 Tc 1.124 0 Td [(mplemented )-104(as )-104(\336le )-104(descriptors )-104(in )-104(the )-104(UNIX )-104(System.)-604(Indeed, )-104(many )-104(of)]TJ -7.292 -1.2 Td [(the )-42(functions )-42(that )-42(deal )-42(with )-42(\336le )-42(descriptors, )-42(such )-42(as)]TJ /TT1 1 Tf 23.333 0 Td (read)Tj /T1_1 1 Tf 2.692 0 Td (and)Tj /TT1 1 Tf 1.985 0 Td (write)Tj /T1_1 1 Tf 0.2922 Tc (,w)Tj 0 Tc 4.376 0 Td [(ill )-42(work )-42(with )-42(a)]TJ -32.386 -1.2 Td [(socket descriptor)74(.)]TJ -0.092 Tc 1.8 -1.2 Td [(To )-184(c)]TJ -0.018 Tc 1.761 0 Td (re)Tj 0 Tc 0.856 0 Td (ate a socket, we call the)Tj /TT1 1 Tf 10.556 0 Td (socket)Tj /T1_1 1 Tf 3.85 0 Td (function.)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5919 571.8657 Tm (#include )Tj 0 -1.783 TD (int socket\(int)Tj /T1_2 1 Tf 9 0 Td (domain)Tj /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.8 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (type)Tj /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.522 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td [(pr)18(otocol)]TJ /TT1 1 Tf (\);)Tj /T1_1 1 Tf -3.399 -1.783 Td (Returns: \336le \(socket\) descriptor if OK,)Tj /TT2 1 Tf 16.941 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5353.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 522.9372 Tm (The)Tj /T1_2 1 Tf 2.248 0 Td (domain)Tj /T1_1 1 Tf 3.574 0 Td [(ar)18(gument )-324(determines )-324(the )-324(natur)17(e)-574(of)-574(the )-324(communication, )-324(including )-324(the)]TJ -5.822 -1.2 Td [(addr)18(ess )-123(format )-123(\(described )-123(in )-123(mor)]TJ 0.3736 Tc 15.202 0 Td (ed)Tj 0 Tc 1.464 0 Td [(etail )-124(in )-124(the )-124(next )-124(section\). )-124(Figur)]TJ 0.3736 Tc 13.976 0 Td (e1)Tj 0 Tc 1.353 0 Td [(6.1 )-124(summarizes)]TJ -31.994 -1.2 Td [(the )-204(domains )-204(speci\336ed )-204(by )-204(POSIX.1.)-704(The )-204(constants )-204(start )-204(with)]TJ /TT1 1 Tf 28.358 0 Td (AF_)Tj /T1_1 1 Tf 2.254 0 Td (\(for)Tj /T1_2 1 Tf 2.061 0 Td [(addr)18(ess )-204(family)]TJ /T1_1 1 Tf (\))Tj -32.675 -1.2 Td [(because each domain has its own format for r)18(epr)18(esenting an addr)18(ess.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2167.25 4682.25 cm 0 0 m 2157 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 227.991 460.1172 Tm (Domain )Tj 12.944 0 Td (Description)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2167.25 4562.25 cm 0 0 m 2157 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2167.25 4542.25 cm 0 0 m 2157 0 l S Q Q BT /TT1 1 Tf 7.9981 0 0 7.9981 220.683 446.0929 Tm (AF_INET)Tj /T1_1 1 Tf 6.9 0 Td (IPv4 Internet domain)Tj /TT1 1 Tf -6.9 -1.25 Td (AF_INET6)Tj /T1_1 1 Tf 6.9 0 Td (IPv6 Internet domain \(optional in POSIX.1\))Tj /TT1 1 Tf -6.9 -1.25 Td (AF_UNIX)Tj /T1_1 1 Tf 6.9 0 Td (UNIX domain)Tj /TT1 1 Tf -6.9 -1.25 Td (AF_UNSPEC)Tj /T1_1 1 Tf 6.9 0 Td (unspeci\336ed)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2167.25 4122.25 cm 0 0 m 2157 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2699.25 4122.25 cm 0 0 m 0 560 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4324.25 4122.25 cm 0 0 m 0 560 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2167.25 4122.25 cm 0 0 m 0 560 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 245.2104 394.0818 Tm (Figure 16.1)Tj /T1_1 1 Tf 5.695 0 Td (Socket communication domains)Tj -0.092 Tc 9.997 0 0 9.997 147.5559 371.2886 Tm [(We )-281(d)]TJ 0 Tc 2.345 0 Td [(iscuss )-97(the )-97(UNIX )-97(domain )-97(in )-97(Section )-97(17.2.)-596(Most )-97(systems )-97(de\336ne )-97(the)]TJ /TT1 1 Tf 30.055 0 Td (AF_LOCAL)Tj /T1_1 1 Tf -34.2 -1.2 Td [(domain )-12(also, )-12(which )-12(is )-12(an )-12(alias )-12(for)]TJ /TT1 1 Tf 15.069 0 Td (AF_UNIX)Tj /T1_1 1 Tf 0.5122 Tc (.T)Tj 0 Tc 5.575 0 Td (he)Tj /TT1 1 Tf 1.323 0 Td (AF_UNSPEC)Tj /T1_1 1 Tf 5.662 0 Td [(domain )-12(is )-12(a )-12(wildcar)]TJ 0.2622 Tc 8.763 0 Td (dt)Tj 0 Tc 1.199 0 Td (hat)Tj -0.018 Tc -37.592 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(pr)18(esents )-96(\324)37(\324any\325)]TJ 0.3463 Tc 6.436 0 Td (\325d)Tj 0 Tc 1.235 0 Td [(omain. )-346(Historically)]TJ 0.3463 Tc 8.724 0 Td (,s)Tj 0 Tc 1.02 0 Td [(ome )-96(platforms )-96(pr)17(ovide )-96(support )-96(for )-96(additional)]TJ -18.272 -1.2 Td [(network )-316(pr)18(otocols, )-316(such )-316(as)]TJ /TT1 1 Tf 13.311 0 Td (AF_IPX)Tj /T1_1 1 Tf 4.166 0 Td [(for )-316(the )-316(NetW)92(ar)]TJ 0.5662 Tc 7.214 0 Td (ep)Tj -0.018 Tc 1.646 0 Td (ro)Tj 0 Tc 0.923 0 Td [(tocol )-316(family)]TJ 0.5661 Tc 5.462 0 Td (,b)Tj 0 Tc 1.369 0 Td [(ut )-316(domain)]TJ -34.092 -1.2 Td [(constants for these pr)18(otocols ar)]TJ 0.25 Tc 13.696 0 Td (en)Tj 0 Tc 1.311 0 Td [(ot de\336ned by the POSIX.1 standar)18(d.)]TJ -13.207 -1.2 Td (The)Tj /T1_2 1 Tf 1.984 0 Td (type)Tj /T1_1 1 Tf 2.033 0 Td [(ar)18(gument )-61(determines )-61(the )-61(type )-61(of )-61(the )-61(socket, )-61(which )-61(further )-61(determines )-61(the)]TJ -5.817 -1.2 Td [(communication )-4(characteristics.)-504(The )-4(socket )-4(types )-4(de\336ned )-4(by )-4(POSIX.1 )-4(ar)]TJ 0.2536 Tc 31.572 0 Td (es)Tj 0 Tc 1.157 0 Td [(ummarized )-4(in)]TJ -32.728 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (6.2, but implementations ar)Tj 0.25 Tc 12.093 0 Td (ef)Tj -0.018 Tc 1.062 0 Td (re)Tj 0 Tc 0.856 0 Td [(e)-250(to)-250(add support for additional types.)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1622.25 2686.25 cm 0 0 m 3248 0 l S Q Q BT /T1_1 1 Tf -0.09 Tc 7.9971 0 0 7.9971 191.1152 260.5062 Tm (Ty)Tj 0 Tc 1.079 0 Td (pe )Tj 17.971 0 Td (Description)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1622.25 2566.25 cm 0 0 m 3248 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1622.25 2546.25 cm 0 0 m 3248 0 l S Q Q BT /TT1 1 Tf 7.9966 0 0 7.9966 166.1502 246.4964 Tm (SOCK_DGRAM)Tj /T1_1 1 Tf 9.9 0 Td (\336xed)Tj 2.211 0.09 Td (-)Tj 0.333 -0.09 Td [(length, connectionless, unr)18(eliable messages)]TJ /TT1 1 Tf -12.444 -1.25 Td (SOCK_RAW)Tj /T1_1 1 Tf 9.9 0 Td (datagram interface to IP \(optional in POSIX.1\))Tj /TT1 1 Tf -9.9 -1.25 Td (SOCK_SEQPACKET)Tj /T1_1 1 Tf 9.9 0 Td (\336xed)Tj 2.211 0.09 Td (-)Tj 0.333 -0.09 Td [(length, sequenced, r)18(eliable, connection-oriented messages)]TJ /TT1 1 Tf -12.444 -1.25 Td (SOCK_STREAM)Tj /T1_1 1 Tf 9.9 0 Td [(sequenced, r)18(eliable, bidir)18(ectional, connection-oriented byte str)18(eams)]TJ ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1622.25 2126.25 cm 0 0 m 3248 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2394.25 2126.25 cm 0 0 m 0 560 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4870.25 2126.25 cm 0 0 m 0 560 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1622.25 2126.25 cm 0 0 m 0 560 l S Q Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 279.6377 194.5066 Tm (Figure 16.2)Tj /T1_1 1 Tf 5.695 0 Td (Socket types)Tj 9.9952 0 0 9.9952 147.5294 171.7176 Tm (The)Tj /T1_2 1 Tf 2.075 0 Td [(pr)18(otocol)]TJ /T1_1 1 Tf 3.622 0 Td [(ar)18(gument )-151(is )-151(usually )-151(zer)18(o, )-151(to )-151(select )-151(the )-151(default )-151(pr)21(otocol )-151(for )-151(the )-151(given)]TJ -7.496 -1.2 Td [(domain )-70(and )-70(socket )-70(type.)-570(When )-70(multiple )-70(pr)18(otocols )-70(ar)]TJ 0.3205 Tc 23.972 0 Td (es)Tj 0 Tc 1.224 0 Td [(upported )-70(for )-70(the )-70(same )-70(domain)]TJ -25.196 -1.2 Td [(and )-111(socket )-111(type, )-111(we )-111(can )-111(use )-111(the)]TJ /T1_2 1 Tf 14.936 0 Td [(pr)18(otocol)]TJ /T1_1 1 Tf 3.582 0 Td [(ar)18(gument )-111(to )-111(select )-111(a )-111(particular )-111(pr)20(otocol. )-361(The)]TJ -18.518 -1.2 Td [(default )-70(pr)18(otocol )-70(for )-70(a)]TJ /TT1 1 Tf 9.875 0 Td (SOCK_STREAM)Tj /T1_1 1 Tf 6.92 0 Td [(socket )-70(in )-70(the)]TJ /TT1 1 Tf 5.996 0 Td (AF_INET)Tj /T1_1 1 Tf 4.52 0 Td [(communication )-70(domain )-70(is)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46919 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (16)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(Netw)30(or )275(k)-560(IPC: )-280(Soc)]TJ -0.04 Tc 8.8 0 Td (ke)Tj 0 Tc 1.18 0 Td (ts)Tj /TT0 1 Tf 12 0 0 12 93.5998 410.4 Tm [(16.1 )-776(Intr)20(oduction)]TJ /T1_2 1 Tf 10 0 0 10 129.5998 386.4 Tm [(In )-100(the )-100(pr)18(evious )-100(chapter)74(,)-350(we)-350(looked )-100(at )-100(pipes, )-100(FIFOs, )-100(message )-100(queues, )-100(semaphor)18(es, )-100(and)]TJ -0 -1.2 Td [(shar)18(ed )-235(memory)]TJ 0.0833 Tc 7.283 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(he )-235(classical )-235(methods )-235(of )-235(IPC )-235(pr)18(ovided )-235(by )-235(various )-235(UNIX )-235(systems.)]TJ -8.693 -1.2 Td [(These )-226(mechanisms )-226(allow )-226(pr)18(ocesses )-226(r)8(unning )-226(on )-226(the )-226(same )-226(computer )-226(to )-226(communicate)]TJ 0 -1.2 TD [(with )-221(one )-221(another)]TJ 0.7214 Tc 7.919 0 Td (.I)Tj 0.4714 Tc 1.308 0 Td (nt)Tj 0 Tc 1.379 0 Td [(his )-221(chapter)74(,)-471(we)-471(l)-1(ook )-221(at )-221(the )-221(mechanisms )-221(that )-221(allow )-221(pr)16(ocesses)]TJ -0.008 Tc -10.607 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td [(nning )-2(on )-2(dif)17(fer)18(ent )-2(computers )-2(\(connected )-2(to )-2(a )-2(common )-2(network\) )-2(to )-2(communicate )-2(with)]TJ -0.99 -1.2 Td (one another)Tj 0.0833 Tc 5.35 0 Td (\321n)Tj 0 Tc 1.665 0 Td (etwork IPC.)Tj -5.216 -1.2 Td [(In )-39(this )-39(chapter)75(,)-289(we)-289(d)1(escribe )-39(the )-39(socket )-39(network )-39(IPC )-39(interface, )-39(which )-39(can )-39(be )-39(used )-39(by)]TJ -1.8 -1.2 Td [(pr)18(ocesses )-519(to )-519(communicate )-519(with )-519(other )-519(pr)18(ocesses, )-519(r)16(egar)18(dless )-519(of )-519(wher)]TJ 0.7693 Tc 33.683 0 Td (et)Tj 0 Tc 1.574 0 Td [(hey )-519(ar)18(e)]TJ -0.008 Tc -35.258 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td [(nning )167(\321 )167(on)-350(the )-99(same )-99(machine )-99(or )-99(on )-99(dif)18(fer)18(ent )-99(machines.)-599(Indeed, )-99(this )-99(was )-99(one )-99(of )-99(the)]TJ -0.99 -1.2 Td [(design )-381(goals )-381(of )-381(the )-381(socket )-381(interface.)-880(The )-381(same )-381(interfaces )-381(can )-381(be )-381(used )-381(for )-381(both)]TJ T* [(intermachine )-157(communication )-157(and )-157(intramachine )-157(communication.)-658(Although )-157(the )-157(socket)]TJ T* [(interface )-65(can )-65(be )-65(used )-65(to )-65(communicate )-65(using )-65(many )-65(dif)16(fer)18(ent )-65(network )-65(pr)18(otocols, )-65(we )-65(will)]TJ -0.018 Tc -0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(strict )-3(our )-3(discussion )-3(to )-3(the )-3(TCP/IP )-3(pr)18(otocol )-3(suite )-3(in )-3(this )-3(chapter)]TJ 0.2528 Tc 28.199 0 Td (,s)Tj 0 Tc 0.927 0 Td [(ince )-3(it )-3(is )-3(the )-3(de )-3(facto)]TJ -29.982 -1.2 Td (standar)Tj 0.25 Tc 3.32 0 Td (df)Tj 0 Tc 1.194 0 Td (or communicating over the Internet.)Tj -2.714 -1.2 Td [(The )-180(socket )-180(API )-180(as )-180(speci\336ed )-180(by )-180(POSIX.1 )-180(is )-180(based )-180(on )-180(the )-180(4.4BSD )-180(socket )-180(interface.)]TJ -1.8 -1.2 Td [(Although )-134(minor )-134(changes )-134(have )-134(been )-134(made )-134(over )-134(the )-134(years, )-134(the )-134(curr)18(ent )-134(socket )-134(interface)]TJ T* [(closely )-44(r)18(esembles )-44(the )-44(interface )-44(when )-44(it )-44(was )-44(originally )-44(intr)14(oduced )-45(in )-45(4.2BSD )-45(in )-45(the )-45(early)]TJ T* (1980s.)Tj 1.8 -1.2 Td [(This )-145(chapter )-145(is )-145(only )-145(an )-145(overview )-145(of )-145(the )-145(socket )-145(API.)-641(Stevens, )-144(Fenner)]TJ 0.3945 Tc 31.392 0 Td (,a)Tj 0 Tc 1.144 0 Td [(nd )-144(Rudof)18(f)]TJ -34.337 -1.16 Td ([)Tj 0.333 -0.04 Td (2004)Tj 2 0.04 Td (])Tj 1.064 -0.04 Td [(discuss )-481(the )-481(socket )-481(interface )-481(in )-481(detail )-481(in )-481(the )-481(de\336nitive )-481(text )-481(on )-481(network)]TJ -3.397 -1.2 Td [(pr)18(ogramming in the UNIX System.)]TJ /T1_3 1 Tf 9 0 0 9 506.0996 114 Tm (589)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46920 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Chapter )-250(15)]TJ 39.788 0 Td [(Exer)18(cises)]TJ /T1_1 1 Tf 6.045 0 Td (587)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(To )-299(u)]TJ 0 Tc 2.035 0 Td [(se )-115(this )-115(technique )-115(with )-115(XSI )-115(IPC, )-115(r)18(ecall )-115(that )-115(the)]TJ /TT0 1 Tf 21.121 0 Td (ipc_perm)Tj /T1_0 1 Tf 5.165 0 Td [(str)8(uctur)]TJ 0.3649 Tc 3.49 0 Td (ea)Tj 0 Tc 1.344 0 Td (ssociated)Tj -34.955 -1.2 Td [(with )-301(each )-301(message )-301(queue, )-301(semaphor)18(e, )-301(and )-301(shar)18(ed )-301(memory )-301(segment )-301(identi\336es )-301(the)]TJ 0 -1.2 TD [(cr)18(eator )-162(of )-162(the )-162(IPC )-162(str)9(uctur)]TJ 0.4118 Tc 12.12 0 Td (e\()Tj 0 Tc 1.224 0 Td (the)Tj /TT0 1 Tf 1.799 0 Td (cuid)Tj /T1_0 1 Tf 2.812 0 Td (and)Tj /TT0 1 Tf 2.105 0 Td (cgid)Tj /T1_0 1 Tf 2.812 0 Td [(\336elds\). )-412(As)-412(with )-162(the )-162(example )-162(using)]TJ -22.871 -1.2 Td [(FIFOs, )-6(the )-6(server )-6(should )-6(r)18(equir)]TJ 0.2561 Tc 13.801 0 Td (et)Tj 0 Tc 1.061 0 Td [(he )-6(client )-6(to )-6(cr)18(eate )-6(the )-6(IPC )-6(str)7(uctur)]TJ 0.2562 Tc 15.015 0 Td (ea)Tj 0 Tc 1.235 0 Td [(nd )-6(have )-6(the )-6(client)]TJ -31.112 -1.2 Td [(set )-85(the )-85(access )-85(permissions )-85(to )-85(user)18(-r)18(ead )-85(and )-85(user)18(-write )-85(only)]TJ 0.5851 Tc 26.505 0 Td (.T)Tj 0 Tc 1.448 0 Td [(he )-85(times )-85(associated )-85(with)]TJ -27.953 -1.2 Td [(the )-177(IPC )-177(str)8(uctur)]TJ 0.4268 Tc 7.381 0 Td (es)Tj 0 Tc 1.33 0 Td [(hould )-177(also )-177(be )-177(veri\336ed )-177(by )-177(the )-177(server )-177(to )-177(be )-177(r)18(ecent )-177(\(since )-177(these )-177(IPC)]TJ -8.71 -1.2 Td [(str)8(uctur)18(es hang ar)18(ound until explicitly deleted\).)]TJ -0.092 Tc 1.8 -1.2 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-63(see )-63(in )-63(Section )-63(17.3 )-63(that )-63(a )-63(far )-63(better )-63(way )-63(of )-63(doing )-63(this )-63(authentication )-63(is )-63(for )-63(the)]TJ -3.187 -1.2 Td [(kernel )-34(to )-34(pr)18(ovide )-34(the )-34(ef)18(fective )-34(user )-34(ID )-34(and )-34(ef)18(fective )-34(gr)18(oup )-34(ID )-34(of )-34(the )-34(client.)-535(This )-34(is )-34(done)]TJ T* (by the socket subsystem when \336le descriptors ar)Tj 0.25 Tc 21.358 0 Td (ep)Tj 0 Tc 1.33 0 Td [(assed between pr)18(ocesses.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5943 527.3684 Tm [(15.12 )-220(Summar)-10(y)]TJ /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5921 503.3698 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ve )-207(detailed )-207(numer)18(ous )-207(forms )-207(of )-207(interpr)20(ocess )-207(communication: )-207(pipes, )-207(named )-207(pipes)]TJ -1.387 -1.2 Td [(\(FIFOs\), )-11(the )-11(thr)18(ee )-11(forms )-11(of )-11(IPC )-11(commonly )-11(called )-11(XSI )-11(IPC )-11(\(message )-11(queues, )-11(semaphor)12(es,)]TJ T* [(and )-170(shar)18(ed )-170(memory\), )-170(and )-170(an )-170(alternative )-170(semaphor)]TJ 0.4202 Tc 23.413 0 Td (em)Tj 0 Tc 1.782 0 Td [(echanism )-170(pr)18(ovided )-170(by )-170(POSIX.)]TJ -25.195 -1.2 Td [(Semaphor)18(es )-81(ar)]TJ 0.3307 Tc 6.604 0 Td (er)Tj 0 Tc 1.187 0 Td [(eally )-81(a )-81(synchr)19(onization )-81(primitive, )-81(not )-81(tr)8(ue )-81(IPC, )-81(and )-81(ar)]TJ 0.3308 Tc 24.483 0 Td (eo)Tj 0 Tc 1.356 0 Td [(ften )-81(used )-81(to)]TJ -33.629 -1.2 Td [(synchr)18(onize )-11(access )-11(to )-11(a )-11(shar)18(ed )-11(r)20(esour)18(ce, )-10(such )-10(as )-10(a )-10(shar)18(ed )-10(memory )-10(segment.)]TJ -0.055 Tc 33.949 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-10(pipes,)]TJ -35.185 -1.2 Td [(we )-211(looked )-211(at )-211(the )-211(implementation )-211(of )-211(the)]TJ /TT0 1 Tf 19.107 0 Td (popen)Tj /T1_0 1 Tf 3.461 0 Td [(function, )-211(at )-211(copr)18(ocesses, )-211(and )-211(at )-211(the)]TJ -22.568 -1.2 Td [(pitfalls that can be encounter)18(ed with the standar)]TJ 0.25 Tc 21.347 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O library\325s buf)18(fering.)]TJ -20.745 -1.2 Td [(After )-332(comparing )-332(the )-332(timing )-332(of )-332(message )-332(queues )-332(versus )-332(full-duplex )-332(pipes, )-332(and)]TJ -1.8 -1.2 Td [(semaphor)18(es )-60(versus )-60(r)18(ecor)]TJ 0.3101 Tc 11.028 0 Td (dl)Tj 0 Tc 1.212 0 Td [(ocking, )-60(we )-60(can )-60(make )-60(the )-60(following )-60(r)18(ecommendations: )-60(learn)]TJ -12.24 -1.2 Td [(pipes )-294(and )-294(FIFOs, )-294(since )-294(these )-294(two )-294(basic )-294(techniques )-294(can )-294(still )-294(be )-294(used )-294(ef)18(fectively )-294(in)]TJ T* [(numer)18(ous )-266(applications.)]TJ -0.092 Tc 11.427 0 Td (Av)Tj 0 Tc 1.251 0 Td [(oid )-266(using )-266(message )-266(queues )-266(and )-266(semaphor)18(es )-266(in )-266(any )-266(new)]TJ -12.678 -1.2 Td [(applications. )-442(Full-duplex)-442(pipes )-192(and )-192(r)18(ecor)]TJ 0.4419 Tc 19.152 0 Td (dl)Tj 0 Tc 1.344 0 Td [(ocking )-192(should )-192(be )-192(consider)18(ed )-192(instead, )-192(as)]TJ -20.495 -1.2 Td [(they )-105(ar)]TJ 0.3547 Tc 3.175 0 Td (ef)Tj 0 Tc 1.167 0 Td [(ar )-105(simpler)]TJ 0.6047 Tc 4.54 0 Td (.S)Tj 0 Tc 1.38 0 Td [(har)18(ed )-105(memory )-105(still )-105(has )-105(its )-105(use, )-105(although )-105(the )-105(same )-105(functionality)]TJ -10.261 -1.2 Td [(can be pr)18(ovided thr)18(ough the use of the)]TJ /TT0 1 Tf 17.37 0 Td (mmap)Tj /T1_0 1 Tf 2.65 0 Td (function \(Section 14.8\).)Tj -18.22 -1.2 Td [(In )-200(the )-200(next )-200(chapter)75(,)-450(we)-450(w)1(ill )-200(look )-200(at )-200(network )-200(IPC, )-200(which )-200(can )-200(allow )-200(pr)21(ocesses )-199(to)]TJ -1.8 -1.2 Td [(communicate acr)18(oss machine boundaries.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 129.5926 281.3831 Tm [(Ex)10(er)20(cises)]TJ /T1_1 1 Tf 8.9995 0 0 8.9995 129.5926 260.3844 Tm (15.1)Tj /T1_0 1 Tf 3.065 0 Td [(In )-81(the )-81(pr)18(ogram )-81(shown )-81(in )-81(Figur)]TJ 0.3312 Tc 14.044 0 Td (e1)Tj 0 Tc 1.31 0 Td [(5.6, )-81(r)18(emove )-81(the)]TJ /TT0 1 Tf 7.21 0 Td (close)Tj /T1_0 1 Tf 3.331 0 Td [(right )-81(befor)]TJ 0.3312 Tc 4.769 0 Td (et)Tj 0 Tc 1.136 0 Td (he)Tj /TT0 1 Tf 1.392 0 Td (waitpid)Tj /T1_0 1 Tf 4.531 0 Td [(at )-81(the)]TJ -37.724 -1.222 Td [(end of the par)18(ent code.)-500(Explain what happens.)]TJ /T1_1 1 Tf -3.065 -1.667 Td (15.2)Tj /T1_0 1 Tf 3.065 0 Td [(In )-29(the )-29(pr)18(ogram )-29(in )-29(Figur)]TJ 0.2791 Tc 10.536 0 Td (e1)Tj 0 Tc 1.258 0 Td [(5.6, )-29(r)18(emove )-29(the)]TJ /TT0 1 Tf 7.053 0 Td (waitpid)Tj /T1_0 1 Tf 4.479 0 Td [(at )-29(the )-29(end )-29(of )-29(the )-29(par)17(ent )-29(code.)-529(Explain)]TJ -23.327 -1.222 Td (what happens.)Tj /T1_1 1 Tf -3.065 -1.667 Td (15.3)Tj /T1_0 1 Tf 3.065 0 Td [(What )-297(happens )-297(if )-297(the )-297(ar)18(gument )-297(to)]TJ /TT0 1 Tf 16.645 0 Td (popen)Tj /T1_0 1 Tf 3.547 0 Td [(is )-297(a )-297(nonexistent )-297(command?)]TJ -0.074 Tc 13.677 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-297(a )-297(small)]TJ -35.19 -1.222 Td [(pr)18(ogram to test this.)]TJ /T1_1 1 Tf -3.065 -1.667 Td (15.4)Tj /T1_0 1 Tf 3.065 0 Td [(In )-143(the )-143(pr)18(ogram )-143(shown )-143(in )-143(Figur)]TJ 0.3927 Tc 14.351 0 Td (e1)Tj 0 Tc 1.372 0 Td [(5.18, )-143(r)18(emove )-143(the )-143(signal )-143(handler)]TJ 0.3926 Tc 14.297 0 Td (,e)Tj 0 Tc 1.122 0 Td [(xecute )-143(the )-143(pr)19(ogram,)]TJ -31.141 -1.222 Td [(and )-179(then )-179(terminate )-179(the )-179(child.)-679(After )-179(entering )-179(a )-179(line )-179(of )-179(input, )-179(how )-179(can )-179(you )-179(tell )-179(that )-179(the)]TJ 0 -1.222 TD [(par)18(ent was terminated by)]TJ /TT0 1 Tf 11.604 0 Td (SIGPIPE)Tj /T1_0 1 Tf (?)Tj /T1_1 1 Tf -14.669 -1.667 Td (15.5)Tj /T1_0 1 Tf 3.065 0 Td [(In )-104(the )-104(pr)18(ogram )-104(in )-104(Figur)]TJ 0.354 Tc 10.836 0 Td (e1)Tj 0 Tc 1.333 0 Td [(5.18, )-104(use )-104(the )-104(standar)]TJ 0.354 Tc 9.275 0 Td (dI)Tj 0 Tc 1.302 0 Td [(/O )-104(library )-104(for )-104(r)18(eading )-104(and )-104(writing )-104(the)]TJ -22.746 -1.222 Td (pipes instead of)Tj /TT0 1 Tf 7.238 0 Td (read)Tj /T1_0 1 Tf 2.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (write)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46921 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.1)]TJ 26.9073 Tc 5.388 0 Td (1C)Tj 0 Tc 28.116 0 Td [(lient\320Server )-250(Pr)18(operties)]TJ /T1_1 1 Tf 12.329 0 Td (585)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(15.11 )-220(Client\320Ser)-10(ver )-278(Pr)20(oper )258(ties)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(Let\325s )-37(detail )-37(some )-37(of )-37(the )-37(pr)18(operties )-37(of )-37(clients )-37(and )-37(servers )-37(that )-37(ar)]TJ 0.2866 Tc 28.068 0 Td (ea)Tj -0.018 Tc 1.266 0 Td (ff)Tj 0 Tc 0.648 0 Td [(ected )-37(by )-37(the )-37(various)]TJ -29.981 -1.2 Td [(types )-45(of )-45(IPC )-45(used )-45(between )-45(them.)-546(The )-45(simplest )-45(type )-45(of )-45(r)18(elationship )-45(is )-45(to )-45(have )-45(the )-45(client)]TJ /TT1 1 Tf 0 -1.2 TD (fork)Tj /T1_0 1 Tf 2.809 0 Td (and)Tj /TT1 1 Tf 2.102 0 Td (exec)Tj /T1_0 1 Tf 2.809 0 Td [(the )-159(desir)18(ed )-159(server)]TJ 0.6591 Tc 8.14 0 Td (.T)Tj 0 Tc 1.432 0 Td [(wo )-159(half-duplex )-159(pipes )-159(can )-159(be )-159(cr)18(eated )-159(befor)]TJ 0.409 Tc 19.432 0 Td (et)Tj 0 Tc 1.214 0 Td (he)Tj /TT1 1 Tf -37.939 -1.2 Td (fork)Tj /T1_0 1 Tf 2.749 0 Td [(to )-99(allow )-99(data )-99(to )-99(be )-99(transferr)18(ed )-99(in )-99(both )-99(dir)18(ections. )-349(Figur)]TJ 0.3491 Tc 25.351 0 Td (e1)Tj 0 Tc 1.328 0 Td [(5.16 )-99(is )-99(an )-99(example )-99(of)]TJ -29.428 -1.2 Td [(this )-126(arrangement.)-626(The )-126(server )-126(that )-126(is )-126(executed )-126(can )-126(be )-126(a )-126(set-user)16(-ID )-126(pr)18(ogram, )-126(giving )-126(it)]TJ T* [(special )-238(privileges.)-738(Also, )-238(the )-238(server )-238(can )-238(determine )-238(the )-238(r)15(eal )-238(identity )-238(of )-238(the )-238(client )-238(by)]TJ T* [(looking )-27(at )-27(its )-27(r)18(eal )-27(user )-27(ID.)-527(\(Recall )-27(fr)15(om )-27(Section )-27(8.10 )-27(that )-27(the )-27(r)18(eal )-27(user )-27(ID )-27(and )-27(r)18(eal )-27(gr)15(oup)]TJ T* [(ID don\325t change acr)18(oss an)]TJ /TT1 1 Tf 11.644 0 Td (exec)Tj /T1_0 1 Tf (.\))Tj -0.055 Tc -9.844 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-2(this )-2(arrangement, )-2(we )-2(can )-2(build )-2(an)]TJ /T1_2 1 Tf 16.491 0 Td [(open )-2(server)]TJ /T1_0 1 Tf 0.5019 Tc (.\()Tj -0.092 Tc 5.671 0 Td [(We )-186(s)]TJ 0 Tc 2.063 0 Td [(how )-2(an )-2(implementation )-2(of)]TJ -27.261 -1.2 Td [(this )-62(client\320server )-62(mechanism )-62(in )-62(Section )-62(17.5.\))-560(It )-62(opens )-62(\336les )-62(for )-62(the )-62(client )-62(instead )-62(of )-62(the)]TJ T* [(client )-272(calling )-272(the)]TJ /TT1 1 Tf 8.321 0 Td (open)Tj /T1_0 1 Tf 2.922 0 Td [(function. )-522(This)-522(way)]TJ 0.522 Tc 8.94 0 Td (,a)Tj 0 Tc 1.272 0 Td [(dditional )-272(permission )-272(checking )-272(can )-272(be)]TJ -21.455 -1.2 Td [(added, )-13(above )-13(and )-13(beyond )-13(the )-13(normal )-13(UNIX )-13(system )-13(user/gr)18(oup/other )-13(permissions.)]TJ -0.092 Tc 37.613 0 Td (We)Tj 0 Tc -37.613 -1.2 Td [(assume )-95(that )-95(the )-95(server )-95(is )-95(a )-95(set-user)17(-ID )-95(pr)18(ogram, )-95(giving )-95(it )-95(additional )-95(permissions )-95(\(r)17(oot)]TJ T* [(permission, )-286(per)18(haps\). )-536(The)-537(server )-286(uses )-286(the )-286(r)17(eal )-286(user )-286(ID )-286(of )-286(the )-286(client )-286(to )-286(determine)]TJ -0 -1.2 Td [(whether )-166(to )-166(give )-166(it )-166(access )-166(to )-166(the )-166(r)18(equested )-166(\336le.)-666(This )-166(way)110(,)-416(we)-416(can )-166(build )-166(a )-166(server )-166(that)]TJ 0 -1.2 Td (allows certain users permissions that they don\325t normally have.)Tj 1.8 -1.2 Td [(In )-25(this )-25(example, )-25(since )-25(the )-25(server )-25(is )-25(a )-25(child )-25(of )-25(the )-25(par)19(ent, )-25(all )-25(the )-25(server )-25(can )-25(do )-25(is )-25(pass)]TJ -1.8 -1.2 Td [(back )-71(the )-71(contents )-71(of )-71(the )-71(\336le )-71(to )-71(the )-71(par)18(ent. )-321(Although)-321(this )-71(works )-71(\336ne )-71(for )-71(r)18(egular )-71(\336les, )-71(it)]TJ T* [(can\325t )-43(be )-43(used )-43(for )-43(special )-43(device )-43(\336les, )-43(for )-43(example.)]TJ -0.092 Tc 22.658 0 Td [(We )-227(w)]TJ 0 Tc 2.514 0 Td [(ould )-43(like )-43(to )-43(be )-43(able )-43(to )-43(have )-43(the)]TJ -25.172 -1.2 Td [(server )-95(open )-95(the )-95(r)19(equested )-95(\336le )-95(and )-95(pass )-95(back )-95(the )-95(\336le )-95(descriptor)]TJ 0.5949 Tc 28.389 0 Td (.W)Tj 0 Tc 1.845 0 Td [(her)18(eas )-95(a )-95(par)18(ent )-95(can)]TJ -30.234 -1.2 Td [(pass )-184(a )-184(child )-184(an )-184(open )-184(descriptor)]TJ 0.4345 Tc 14.569 0 Td (,ac)Tj 0 Tc 2.063 0 Td [(hild )-184(cannot )-184(pass )-184(a )-184(descriptor )-184(back )-184(to )-184(the )-184(par)15(ent)]TJ -16.631 -1.2 Td [(\(unless special pr)18(ogramming techniques ar)]TJ 0.25 Tc 18.983 0 Td (eu)Tj 0 Tc 1.332 0 Td (sed, which we cover in Chapter 17\).)Tj -0.092 Tc -18.515 -1.2 Td [(We )-231(s)]TJ 0 Tc 2.108 0 Td [(howed )-47(the )-47(next )-47(type )-47(of )-47(server )-47(in )-47(Figur)]TJ 0.2975 Tc 17.258 0 Td (e1)Tj 0 Tc 1.276 0 Td [(5.23. )-297(The)-298(server )-47(is )-47(a )-47(daemon )-47(pr)16(ocess)]TJ -22.443 -1.2 Td [(that )-45(is )-45(contacted )-45(using )-45(some )-45(form )-45(of )-45(IPC )-45(by )-45(all )-45(clients.)]TJ -0.092 Tc 24.953 0 Td [(We )-229(c)]TJ 0 Tc 2.126 0 Td [(an\325t )-45(use )-45(pipes )-45(for )-45(this )-45(type)]TJ -27.079 -1.2 Td [(of )-247(client\320server )-247(arrangement.)]TJ 0.4966 Tc 14.196 0 Td (Af)Tj 0 Tc 1.608 0 Td [(orm )-247(of )-247(named )-247(IPC )-247(is )-247(r)20(equir)18(ed, )-247(such )-247(as )-247(FIFOs )-247(or)]TJ -15.803 -1.2 Td [(message )-7(queues.)]TJ -0.055 Tc 7.907 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-7(FIFOs, )-7(we )-7(saw )-7(that )-7(an )-7(individual )-7(per)18(-client )-7(FIFO )-7(is )-7(also )-7(r)19(equir)18(ed)]TJ -9.143 -1.2 Td [(if )-17(the )-17(server )-17(is )-17(to )-17(send )-17(data )-17(back )-17(to )-17(the )-17(client.)-517(If )-17(the )-17(client\320server )-17(application )-17(sends )-17(data)]TJ T* [(only )-8(fr)18(om )-8(the )-8(client )-8(to )-8(the )-8(server)]TJ 0.2579 Tc 14.384 0 Td (,as)Tj 0 Tc 1.69 0 Td [(ingle )-8(well-known )-8(FIFO )-8(suf)18(\336ces. )-258(\(The)-258(System )-8(V )-8(line)]TJ -16.074 -1.2 Td [(printer )-121(spooler )-121(used )-121(this )-121(form )-121(of )-121(client\320server )-121(arrangement.)-618(The )-121(client )-121(was )-121(the)]TJ /TT1 1 Tf 36.634 0 Td (lp)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj -38.667 -1.24 Td [(command, )-56(and )-56(the )-56(server )-56(was )-56(the)]TJ /TT1 1 Tf 15.499 0 Td (lpsched)Tj /T1_0 1 Tf 4.506 0 Td [(daemon )-56(pr)18(ocess. )-306(A)-307(single )-56(FIFO )-56(was )-56(used,)]TJ -20.005 -1.2 Td [(since )-61(the )-61(\337ow )-61(of )-61(data )-61(was )-61(only )-61(fr)18(om )-61(the )-61(client )-61(to )-61(the )-61(server)]TJ 0.561 Tc 26.737 0 Td (.N)Tj 0 Tc 1.642 0 Td [(othing )-61(was )-61(sent )-61(back )-61(to)]TJ -28.379 -1.2 Td (the client.\))Tj 1.8 -1.2 Td (Multiple possibilities exist with message queues.)Tj 0 -2.04 TD [(1. )-633(A)-257(single )-7(queue )-7(can )-7(be )-7(used )-7(between )-7(the )-7(server )-7(and )-7(all )-7(the )-7(clients, )-7(using )-7(the )-7(type)]TJ 1.633 -1.2 Td [(\336eld )-28(of )-28(each )-28(message )-28(to )-28(indicate )-28(the )-28(message )-28(r)20(ecipient. )-278(For)-278(example, )-28(the )-28(clients)]TJ -0 -1.2 Td [(can )-90(send )-90(their )-90(r)18(equests )-90(with )-90(a )-90(type )-90(\336eld )-90(of )-90(1.)-590(Included )-90(in )-90(the )-90(r)18(equest )-90(must )-90(be)]TJ 0 -1.2 TD [(the )-103(client\325s )-103(pr)18(ocess )-103(ID.)-603(The )-103(server )-103(then )-103(sends )-103(the )-103(r)16(esponse )-103(with )-103(the )-103(type )-103(\336eld)]TJ T* [(set )-42(to )-42(the )-42(client\325s )-42(pr)18(ocess )-42(ID.)-540(The )-42(server )-42(r)18(eceives )-42(only )-42(the )-42(messages )-42(with )-42(a )-42(type)]TJ T* [(\336eld )-176(of )-176(1 )-176(\(the )-176(fourth )-176(ar)18(gument )-176(for)]TJ /TT1 1 Tf 16.433 0 Td (msgrcv)Tj /T1_0 1 Tf [(\), )-176(and )-176(the )-176(clients )-176(r)17(eceive )-176(only )-176(the)]TJ -16.433 -1.2 Td [(messages with a type \336eld equal to their pr)18(ocess IDs.)]TJ -1.633 -2.2 Td [(2. )-633(Alternatively)111(,)-335(an)-335(i)-1(ndividual )-85(message )-85(queue )-85(can )-85(be )-85(used )-85(for )-85(each )-85(client.)-589(Befor)18(e)]TJ 1.633 -1.2 Td [(sending )-92(the )-92(\336rst )-92(r)18(equest )-92(to )-92(a )-92(server)]TJ 0.3425 Tc 16 0 Td (,e)Tj 0 Tc 1.071 0 Td [(ach )-92(client )-92(cr)17(eates )-93(its )-93(own )-93(message )-93(queue)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46922 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.10)]TJ 35.018 0 Td [(POSIX )-250(Semaphor)18(es)]TJ /T1_1 1 Tf 10.815 0 Td (579)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(15.10 )-220(POSIX)-556(Semaphores)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(The )-45(POSIX )-45(semaphor)]TJ 0.2948 Tc 9.575 0 Td (em)Tj 0 Tc 1.657 0 Td [(echanism )-45(is )-45(one )-45(of )-45(thr)19(ee )-45(IPC )-45(mechanisms )-45(that )-45(originated )-45(with)]TJ -11.231 -1.2 Td [(the )-183(r)18(eal-time )-183(extensions )-183(to )-183(POSIX.1.)-683(The )-183(Single )-183(UNIX )-183(Speci\336cation )-183(placed )-183(the )-183(thr)18(ee)]TJ 0 -1.2 TD [(mechanisms )-277(\(message )-277(queues, )-277(semaphor)18(es, )-277(and )-277(shar)18(ed )-277(memory\) )-277(in )-277(option )-277(classes.)]TJ T* [(Prior )-267(to )-267(SUSv4, )-267(the )-267(POSIX )-267(semaphor)]TJ 0.5171 Tc 17.529 0 Td (ei)Tj 0 Tc 1.287 0 Td [(nterfaces )-267(wer)]TJ 0.5171 Tc 6.169 0 Td (ei)Tj 0 Tc 1.287 0 Td [(ncluded )-267(in )-267(the )-267(semaphor)18(es)]TJ -26.273 -1.2 Td [(option. )-573(In)-574(SUSv4, )-324(these )-324(interfaces )-324(wer)]TJ 0.5736 Tc 18.555 0 Td (em)Tj 0 Tc 1.936 0 Td [(oved )-324(to )-324(the )-324(base )-324(speci\336cation, )-324(but )-324(the)]TJ -20.49 -1.2 Td [(message queue and shar)18(ed memory interfaces r)18(emained optional.)]TJ 1.8 -1.2 Td [(The )-145(POSIX )-145(semaphor)]TJ 0.3951 Tc 9.775 0 Td (ei)Tj 0 Tc 1.165 0 Td [(nterfaces )-145(wer)]TJ 0.3951 Tc 6.047 0 Td (em)Tj 0 Tc 1.757 0 Td [(eant )-145(to )-145(addr)18(ess )-145(several )-145(de\336ciencies )-145(with)]TJ -20.544 -1.2 Td (the XSI semaphor)Tj 0.25 Tc 7.808 0 Td (ei)Tj 0 Tc 1.02 0 Td (nterfaces:)Tj 0.883 Tc -7.028 -1.8 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-27(POSIX )-27(semaphor)]TJ 0.2767 Tc 8.925 0 Td (ei)Tj 0 Tc 1.047 0 Td [(nterfaces )-27(allow )-27(for )-27(higher)19(-performance )-27(implementations)]TJ -10.585 -1.2 Td [(compar)18(ed to XSI semaphor)18(es.)]TJ 0.883 Tc -1.489 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-12(POSIX )-12(semaphor)]TJ 0.2621 Tc 8.896 0 Td (ei)Tj 0 Tc 1.032 0 Td [(nterfaces )-12(ar)]TJ 0.2621 Tc 5.101 0 Td (es)Tj 0 Tc 1.165 0 Td [(impler )-12(to )-12(use: )-12(ther)]TJ 0.2621 Tc 8.118 0 Td (ea)Tj -0.018 Tc 1.241 0 Td [(re )-48(n)]TJ 0.262 Tc 1.7 0 Td (os)Tj 0 Tc 1.232 0 Td (emaphor)Tj 0.262 Tc 3.968 0 Td (es)Tj 0 Tc 1.165 0 Td (ets,)Tj -34.232 -1.2 Td [(and )-94(several )-94(of )-94(the )-94(interfaces )-94(ar)]TJ 0.3443 Tc 13.943 0 Td (ep)Tj 0 Tc 1.424 0 Td [(atterned )-94(after )-94(familiar )-94(\336le )-94(system )-94(operations.)]TJ -15.367 -1.2 Td [(Although )-111(ther)18(e)-361(is)-361(no)-361(r)17(equir)18(ement )-111(that )-111(they )-111(be )-111(implemented )-111(in )-111(the )-111(\336le )-111(system,)]TJ 0 -1.2 Td [(some systems do take this appr)18(oach.)]TJ 0.883 Tc -1.489 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-262(POSIX )-262(semaphor)18(es )-262(behave )-262(mor)]TJ 0.512 Tc 16.287 0 Td (eg)Tj 0 Tc 1.547 0 Td [(racefully )-262(when )-262(r)18(emoved. )-512(Recall)-512(that)]TJ -18.447 -1.2 Td [(when )-266(an )-266(XSI )-266(semaphor)19(e)-516(is)-516(r)19(emoved, )-266(operations )-266(using )-266(the )-266(same )-266(semaphor)20(e)]TJ 0 -1.2 Td [(identi\336er )-180(fail )-180(with)]TJ /TT1 1 Tf 8.799 0 Td (errno)Tj /T1_0 1 Tf 3.431 0 Td [(set )-180(to)]TJ /TT1 1 Tf 2.962 0 Td (EIDRM)Tj /T1_0 1 Tf 0.6805 Tc (.W)Tj 0 Tc 4.876 0 Td [(ith )-180(POSIX )-180(semaphor)18(es, )-180(operations)]TJ -20.067 -1.2 Td [(continue to work normally until the last r)18(efer)18(ence to the semaphor)18(e)-250(is)-250(r)18(eleased.)]TJ -1.489 -1.8 Td [(POSIX )-82(semaphor)18(es )-82(ar)]TJ 0.3319 Tc 9.755 0 Td (ea)Tj 0 Tc 1.311 0 Td [(vailable )-82(in )-82(two )-82(\337avors: )-82(named )-82(and )-82(unnamed.)-582(They )-82(dif)19(fer)]TJ -12.866 -1.2 Td [(in )-295(how )-295(they )-295(ar)]TJ 0.5451 Tc 7.29 0 Td (ec)Tj -0.018 Tc 1.468 0 Td (re)Tj 0 Tc 0.856 0 Td [(ated )-295(and )-295(destr)18(oyed, )-295(but )-295(otherwise )-295(work )-295(the )-295(same.)-796(Unnamed)]TJ -9.614 -1.2 Td [(semaphor)18(es )-15(exist )-15(in )-15(memory )-15(only )-15(and )-15(r)17(equir)]TJ 0.2651 Tc 19.892 0 Td (et)Tj 0 Tc 1.07 0 Td [(hat )-15(pr)18(ocesses )-15(have )-15(access )-15(to )-15(the )-15(memory)]TJ -20.962 -1.2 Td [(to )-98(be )-98(able )-98(to )-98(use )-98(the )-98(semaphor)16(es. )-98(This )-98(means )-98(they )-98(can )-98(be )-98(used )-98(only )-98(by )-98(thr)18(eads )-98(in )-98(the)]TJ T* [(same )-197(pr)18(ocess )-197(or )-197(thr)18(eads )-197(in )-197(dif)18(fer)18(ent )-197(pr)18(ocesses )-197(that )-197(have )-197(mapped )-197(the )-197(same )-197(memory)]TJ -0 -1.2 Td [(extent )-37(into )-37(their )-37(addr)18(ess )-37(spaces.)-537(Named )-37(semaphor)17(es, )-37(in )-37(contrast, )-37(ar)]TJ 0.2873 Tc 30.301 0 Td (ea)Tj 0 Tc 1.266 0 Td [(ccessed )-37(by )-37(name)]TJ -31.567 -1.2 Td [(and can be used by thr)18(eads in any pr)18(ocesses that know their names.)]TJ -0.092 Tc 1.8 -1.2 Td [(To )-315(c)]TJ -0.018 Tc 1.892 0 Td (re)Tj 0 Tc 0.856 0 Td [(ate )-131(a )-131(new )-131(named )-131(semaphor)19(e)-381(or)-381(u)1(se )-131(an )-131(existing )-131(one, )-131(we )-131(call )-131(the)]TJ /TT1 1 Tf 29.652 0 Td (sem_open)Tj /T1_0 1 Tf -34.2 -1.2 Td (function.)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5933 296.2822 Tm (#include )Tj 0 -1.902 TD (sem_t *sem_open\(const char *)Tj /T1_2 1 Tf (name)Tj /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 20.767 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (o\337ag)Tj /TT1 1 Tf 0.6 Tc (,.)Tj 0 Tc 3.733 0 Td (.. /* mode_t)Tj /T1_2 1 Tf 7.8 0 Td (mode)Tj /TT1 1 Tf (,)Tj -24.5 -1.189 Td (unsigned int)Tj /T1_2 1 Tf 7.8 0 Td (value)Tj /TT1 1 Tf 2.767 0 Td (*/ \);)Tj /T1_0 1 Tf -7.233 -1.902 Td [(Returns: Pointer to semaphor)18(e)-250(if)-250(OK,)]TJ /TT1 1 Tf 16.579 0 Td (SEM_FAILED)Tj /T1_0 1 Tf 6.25 0 Td [(on err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2468.25 cm 0 0 m 0 585 l 3900 585 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 233.332 Tm [(When )-9(using )-9(an )-9(existing )-9(named )-9(semaphor)18(e, )-9(we )-9(specify )-9(only )-9(two )-9(ar)19(guments: )-9(the )-9(name )-9(of)]TJ 0 -1.2 TD [(the )-110(semaphor)]TJ 0.3596 Tc 6.139 0 Td (ea)Tj 0 Tc 1.339 0 Td [(nd )-110(a )-110(zer)]TJ 0.3596 Tc 3.768 0 Td (ov)Tj 0 Tc 1.471 0 Td [(alue )-110(for )-110(the)]TJ /T1_2 1 Tf 5.613 0 Td (o\337ag)Tj /T1_0 1 Tf 2.293 0 Td [(ar)18(gument. )-360(When)-359(the)]TJ /T1_2 1 Tf 9.915 0 Td (o\337ag)Tj /T1_0 1 Tf 2.293 0 Td [(ar)18(gument )-109(has)]TJ -32.829 -1.2 Td (the)Tj /TT1 1 Tf 1.745 0 Td (O_CREAT)Tj /T1_0 1 Tf 4.558 0 Td [(\337ag )-108(set, )-108(we )-108(cr)18(eate )-108(a )-108(new )-108(named )-108(semaphor)16(e)-358(if)-358(it)-358(d)-1(oes )-108(not )-108(yet )-108(exist.)-608(If )-108(it)]TJ -6.304 -1.2 Td [(alr)18(eady exists, it is opened for use, but no additional initialization take\ s place.)]TJ 1.8 -1.2 Td [(When )-48(we )-48(specify )-48(the)]TJ /TT1 1 Tf 9.663 0 Td (O_CREAT)Tj /T1_0 1 Tf 4.498 0 Td [(\337ag, )-48(we )-48(need )-48(to )-48(pr)18(ovide )-48(two )-48(additional )-48(ar)19(guments.)]TJ -15.96 -1.2 Td (The)Tj /T1_2 1 Tf 2.056 0 Td (mode)Tj /T1_0 1 Tf 2.493 0 Td [(ar)18(gument )-132(speci\336es )-132(who )-132(can )-132(access )-132(the )-132(semaphor)17(e. )-382(It)-382(can )-132(take )-132(on )-132(the )-132(same)]TJ -4.549 -1.2 Td [(values )-229(as )-229(the )-229(permission )-229(bits )-229(for )-229(opening )-229(a )-229(\336le: )-229(user)22(-r)18(ead, )-229(user)18(-write, )-229(user)19(-execute,)]TJ 0 -1.2 Td [(gr)18(oup-r)18(ead, )-349(gr)18(oup-write, )-349(gr)18(oup-execute, )-349(other)18(-r)18(ead, )-349(other)18(-write, )-349(and )-349(other)18(-execute.)]TJ 0 -1.2 Td [(The )-136(r)18(esulting )-136(permissions )-136(assigned )-136(to )-136(the )-136(semaphor)]TJ 0.3859 Tc 23.776 0 Td (ea)Tj -0.018 Tc 1.365 0 Td [(re )-172(m)]TJ 0 Tc 2.125 0 Td [(odi\336ed )-136(by )-136(the )-136(caller)-74(\325s )-136(\336le)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46923 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.9)]TJ 36.454 0 Td [(Shar)18(ed )-250(Memory)]TJ /T1_1 1 Tf 9.379 0 Td (571)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(byte; )-41(to )-41(r)18(elease )-41(it, )-41(we )-41(unlock )-41(the )-41(byte.)-541(The )-41(r)21(ecor)]TJ 0.2907 Tc 21.581 0 Td (dl)Tj 0 Tc 1.193 0 Td [(ocking )-41(pr)18(operties )-41(guarantee )-41(that )-41(if )-41(a)]TJ -22.774 -1.2 Td [(pr)18(ocess terminates while holding a lock, the kernel automatically r)18(eleases the lock.)]TJ -0.092 Tc 1.8 -1.2 Td [(To )-351(u)]TJ 0 Tc 2.087 0 Td [(se )-167(a )-167(mutex, )-167(we )-167(need )-167(both )-167(pr)19(ocesses )-167(to )-167(map )-167(the )-167(same )-167(\336le )-167(into )-167(their )-167(addr)20(ess)]TJ -3.887 -1.2 Td [(spaces )-741(and )-741(initialize )-741(a )-741(mutex )-741(at )-741(the )-741(same )-741(of)16(fset )-741(in )-741(the )-741(\336le )-741(using )-741(the)]TJ /TT0 1 Tf 0 -1.2 TD (PTHREAD_PROCESS_SHARED)Tj /T1_0 1 Tf 13.683 0 Td [(mutex )-233(attribute.)]TJ -0.092 Tc 8.072 0 Td [(To )-417(a)]TJ 0 Tc 2.05 0 Td [(llocate )-233(the )-233(r)18(esour)18(ce, )-233(we )-233(lock )-233(the)]TJ -23.805 -1.2 Td [(mutex; )-134(to )-134(r)18(elease )-134(the )-134(r)19(esour)18(ce, )-134(we )-134(unlock )-134(the )-134(mutex.)-634(If )-134(a )-134(pr)18(ocess )-134(terminates )-134(without)]TJ -0.018 Tc -0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(leasing )-263(the )-263(mutex, )-263(r)18(ecovery )-263(is )-263(dif)18(\336cult )-263(unless )-263(we )-263(use )-263(a )-263(r)13(obust )-263(mutex )-263(\(r)18(ecall )-263(the)]TJ /TT0 1 Tf -0.856 -1.2 Td (pthread_mutex_consistent)Tj /T1_0 1 Tf 14.65 0 Td (function discussed in Section 12.4.1\).)Tj -12.85 -1.2 Td (Figur)Tj 0.3278 Tc 2.383 0 Td (e1)Tj 0 Tc 1.307 0 Td [(5.29 )-78(shows )-78(the )-78(time )-78(r)19(equir)18(ed )-78(to )-78(perform )-78(these )-78(thr)19(ee )-78(locking )-78(techniques )-78(on)]TJ -5.49 -1.2 Td [(Linux. )-300(In)-300(each )-50(case, )-50(the )-50(r)18(esour)18(ce )-50(was )-50(allocated )-50(and )-50(then )-50(r)18(eleased )-50(1,000,000 )-50(times.)-549(This)]TJ -0 -1.2 Td [(was )-25(done )-25(simultaneously )-25(by )-25(thr)18(ee )-25(dif)18(fer)18(ent )-25(pr)18(ocesses. )-275(The)-275(times )-25(in )-25(Figur)]TJ 0.2752 Tc 32.702 0 Td (e1)Tj 0 Tc 1.254 0 Td [(5.29 )-25(ar)]TJ 0.2752 Tc 2.902 0 Td (et)Tj 0 Tc 1.08 0 Td (he)Tj -37.939 -1.2 Td [(totals in seconds for all thr)18(ee pr)18(ocesses.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2197.25 5182.25 cm 0 0 m 2098 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 250.23 510.1388 Tm (Operation )Tj 9.884 0 Td [(User)-2058(System )-1573(Clock)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2197.25 5062.25 cm 0 0 m 2098 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2197.25 5042.25 cm 0 0 m 2098 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 223.6637 496.1107 Tm [(semaphor)18(es with undo)-3196(0.50 )-2693(6.08 )-2693(7.55)]TJ 0 -1.25 TD [(advisory r)18(ecor)]TJ 0.25 Tc 6.361 0 Td (dl)Tj 0 Tc 1.152 0 Td [(ocking )-2628(0.51)-2943(9.06 )-2693(4.38)]TJ -7.513 -1.25 Td [(mutex in shar)18(ed memory)-2221(0.21 )-2693(0.40 )-2693(0.25)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2197.25 4722.25 cm 0 0 m 2098 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3939.25 4722.25 cm 0 0 m 0 460 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3564.25 4722.25 cm 0 0 m 0 460 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3188.25 4722.25 cm 0 0 m 0 460 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4295.25 4722.25 cm 0 0 m 0 460 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2197.25 4722.25 cm 0 0 m 0 460 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 208.142 454.091 Tm (Figure 15.29)Tj /T1_0 1 Tf -0.055 Tc 6.195 0 Td (Ti)Tj 0 Tc 0.849 0 Td (ming comparison of locking alternatives on Linux)Tj 9.9976 0 0 9.9976 147.564 430.0968 Tm [(On )-33(Linux, )-33(r)19(ecor)]TJ 0.2827 Tc 7.009 0 Td (dl)Tj 0 Tc 1.185 0 Td [(ocking )-33(is )-33(faster )-33(than )-33(semaphor)19(es, )-33(but )-33(mutexes )-33(in )-33(shar)18(ed )-33(memory)]TJ -9.994 -1.2 Td [(outperform )-31(both )-31(semaphor)18(es )-31(and )-31(r)19(ecor)]TJ 0.2808 Tc 17.448 0 Td (dl)Tj 0 Tc 1.183 0 Td [(ocking. )-281(If)-281(we\325r)]TJ 0.2808 Tc 6.675 0 Td (el)Tj 0 Tc 1.051 0 Td [(ocking )-31(a )-31(single )-31(r)18(esour)18(ce )-31(and)]TJ -26.356 -1.2 Td [(don\325t )-151(need )-151(all )-151(the )-151(fancy )-151(featur)18(es )-151(of )-151(XSI )-151(semaphor)18(es, )-151(r)15(ecor)]TJ 0.4013 Tc 26.687 0 Td (dl)Tj 0 Tc 1.303 0 Td [(ocking )-151(is )-151(pr)17(eferr)18(ed )-151(over)]TJ -27.99 -1.2 Td [(semaphor)18(es. )-560(The)]TJ -0.018 Tc 8.589 0 Td (re)Tj 0 Tc 0.856 0 Td [(asons )-310(ar)]TJ 0.56 Tc 3.913 0 Td (et)Tj 0 Tc 1.365 0 Td [(hat )-310(it )-310(is )-310(much )-310(simpler )-310(to )-310(use, )-310(it )-310(is )-310(faster )-310(\(on )-310(this)]TJ -14.723 -1.2 Td [(platform\), )-79(and )-79(the )-79(system )-79(takes )-79(car)18(e)-329(of)-329(any )-79(lingering )-79(locks )-79(when )-79(a )-79(pr)18(ocess )-79(terminates.)]TJ -0 -1.2 Td [(Even )-31(though )-31(using )-31(a )-31(mutex )-31(in )-31(shar)16(ed )-31(memory )-31(is )-31(the )-31(fastest )-31(option )-31(on )-31(this )-31(platform, )-31(we)]TJ 0 -1.2 TD [(still )-55(pr)18(efer )-55(to )-55(use )-55(r)18(ecor)]TJ 0.3049 Tc 10.108 0 Td (dl)Tj 0 Tc 1.207 0 Td [(ocking, )-55(unless )-55(performance )-55(is )-55(the )-55(primary )-55(concern.)-554(Ther)]TJ 0.3049 Tc 25.545 0 Td (ea)Tj -0.018 Tc 1.284 0 Td (re)Tj 0 Tc -38.144 -1.2 Td [(two )-108(r)18(easons )-108(for )-108(this. )-108(First, )-108(r)18(ecovery )-108(fr)18(om )-108(pr)18(ocess )-108(termination )-108(is )-108(mor)]TJ 0.3581 Tc 31.005 0 Td (ed)Tj 0 Tc 1.448 0 Td [(if)18(\336cult )-108(using )-108(a)]TJ -32.453 -1.2 Td [(mutex )-113(in )-113(memory )-113(shar)18(ed )-113(among )-113(multiple )-113(pr)19(ocesses. )-363(Second,)-363(the)]TJ /T1_2 1 Tf 30.015 0 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_0 1 Tf 6.178 0 Td (mutex)Tj -36.193 -1.2 Td [(attribute )-416(isn\325t )-416(universally )-416(supported )-416(yet.)-916(In )-416(older )-416(versions )-416(of )-416(the )-416(Single )-416(UNIX)]TJ T* [(Speci\336cation, )-76(it )-76(was )-76(optional.)-578(Although )-76(it )-76(is )-76(still )-76(optional )-76(in )-76(SUSv4, )-76(it )-76(is )-76(now )-76(r)15(equir)18(ed)]TJ T* (by all XSI-conforming implementations.)Tj 7.9981 0 0 7.9981 183.5554 278.1332 Tm [(Of )-15(the )-15(four )-15(platforms )-15(cover)17(ed )-15(in )-15(this )-15(text, )-15(only )-15(Linux )-15(3.2.0 )-15(and )-15(Solaris )-15(10 )-15(curr)18(ently )-15(support )-15(the)]TJ /T1_2 1 Tf 0 -1.25 TD [(pr)18(ocess-shar)18(ed)]TJ /T1_0 1 Tf 6.065 0 Td (mutex attribute.)Tj ET q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2622.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9964 0 0 11.9964 93.5719 226.1321 Tm [(15.9 )-776(Shared)-556(Memor )268(y)]TJ /T1_0 1 Tf 9.997 0 0 9.997 129.5611 204.5386 Tm [(Shar)18(ed )-51(memory )-51(allows )-51(two )-51(or )-51(mor)]TJ 0.3007 Tc 15.658 0 Td (ep)Tj -0.018 Tc 1.381 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cesses )-51(to )-51(shar)]TJ 0.3007 Tc 6.03 0 Td (eag)Tj 0 Tc 2.136 0 Td [(iven )-51(r)18(egion )-51(of )-51(memory)]TJ 0.5508 Tc 10.16 0 Td (.T)Tj 0 Tc 1.414 0 Td (his)Tj -37.703 -1.2 Td [(is )-1(the )-1(fastest )-1(form )-1(of )-1(IPC, )-1(because )-1(the )-1(data )-1(does )-1(not )-1(need )-1(to )-1(be )-1(copied )-1(between )-1(the )-1(client)]TJ 0 -1.2 TD [(and )-174(the )-174(server)]TJ 0.674 Tc 6.591 0 Td (.T)Tj 0 Tc 1.537 0 Td [(he )-174(only )-174(trick )-174(in )-174(using )-174(shar)18(ed )-174(memory )-174(is )-174(synchr)18(onizing )-174(access )-174(to )-174(a)]TJ -8.128 -1.2 Td [(given )-230(r)18(egion )-230(among )-230(multiple )-230(pr)19(ocesses. )-480(If)-480(the )-230(server )-230(is )-230(placing )-230(data )-230(into )-230(a )-230(shar)20(ed)]TJ 0 -1.2 Td [(memory )-217(r)18(egion, )-218(the )-218(client )-218(shouldn\325t )-218(try )-218(to )-218(access )-218(the )-218(data )-218(until )-218(the )-218(server )-218(is )-218(done.)]TJ T* [(Often, )-105(semaphor)18(es )-105(ar)]TJ 0.3552 Tc 9.638 0 Td (eu)Tj 0 Tc 1.437 0 Td [(sed )-105(to )-105(synchr)18(onize )-105(shar)18(ed )-105(memory )-105(access.)-606(\(But )-105(as )-105(we )-105(saw )-105(at)]TJ -11.076 -1.2 Td [(the end of the pr)18(evious section, r)18(ecor)]TJ 0.25 Tc 16.276 0 Td (dl)Tj 0 Tc 1.152 0 Td (ocking or mutexes can also be used.\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46924 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.8)]TJ 38.437 0 Td [(Semaphor)18(es)]TJ /T1_1 1 Tf 7.396 0 Td (565)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(Example )195(\321 )195(Timing)-279(Comparison of Messa)]TJ 0.01 Tc 19.217 0 Td [(ge )20(Q)]TJ 0 Tc 2.233 0 Td (ueues and Full)Tj 7.002 0.09 Td (-)Tj 0.333 -0.09 Td (Duple)Tj 0.278 Tc 2.763 0 Td (xP)Tj 0 Tc 1.501 0 Td (ipes)Tj /T1_0 1 Tf -29.449 -2.4 Td [(If )-64(we )-64(need )-64(a )-64(bidir)19(ectional )-64(\337ow )-64(of )-64(data )-64(between )-64(a )-64(client )-64(and )-64(a )-64(server)78(,)-314(we)-314(c)1(an )-64(use )-64(either)]TJ 0 -1.2 Td [(message )-10(queues )-10(or )-10(full-duplex )-10(pipes.)-510(\(Recall )-10(fr)17(om )-10(Figur)]TJ 0.2603 Tc 25.032 0 Td (e1)Tj 0 Tc 1.239 0 Td [(5.1 )-10(that )-10(full-duplex )-10(pipes )-10(ar)17(e)]TJ -26.271 -1.2 Td [(available )-110(thr)18(ough )-110(the )-110(UNIX )-110(domain )-110(sockets )-110(mechanism )-110([Section )-110(17.2], )-110(although )-110(some)]TJ 0 -1.2 TD [(platforms pr)18(ovide a full-duplex pipe mechanism thr)18(ough the)]TJ /TT1 1 Tf 27.22 0 Td (pipe)Tj /T1_0 1 Tf 2.65 0 Td (function.\))Tj -28.07 -1.2 Td (Figur)Tj 0.4355 Tc 2.383 0 Td (e1)Tj 0 Tc 1.414 0 Td [(5.27 )-185(shows )-185(a )-185(timing )-185(comparison )-185(of )-185(thr)18(ee )-185(of )-185(these )-185(techniques )-185(on )-185(Solaris:)]TJ -5.597 -1.2 Td [(message )-136(queues, )-136(full-duplex)]TJ 13.252 0.04 Td (\()Tj 0.333 -0.04 Td (STREAMS)Tj 4.666 0.04 Td (\))Tj 0.719 -0.04 Td [(pipes, )-136(and )-136(UNIX )-136(domain )-136(sockets.)-636(The )-136(tests)]TJ -18.969 -1.2 Td [(consisted )-84(of )-84(a )-84(pr)18(ogram )-84(that )-84(cr)18(eated )-84(the )-84(IPC )-84(channel, )-84(called)]TJ /TT1 1 Tf 27.014 0 Td (fork)Tj /T1_0 1 Tf 0.3337 Tc (,a)Tj 0 Tc 3.484 0 Td [(nd )-84(then )-84(sent )-84(about)]TJ -30.498 -1.2 Td [(200 )-128(megabytes )-128(of )-128(data )-128(fr)18(om )-128(the )-128(par)18(ent )-128(to )-128(the )-128(child.)-628(The )-128(data )-128(was )-128(sent )-128(using )-128(100,000)]TJ T* [(calls )-228(to)]TJ /TT1 1 Tf 3.778 0 Td (msgsnd)Tj /T1_0 1 Tf 0.4781 Tc (,w)Tj 0 Tc 5.162 0 Td [(ith )-228(a )-228(message )-228(length )-228(of )-228(2,000 )-228(bytes )-228(for )-228(the )-228(message )-228(queue, )-228(and)]TJ -8.94 -1.2 Td [(100,000 )-81(calls )-81(to)]TJ /TT1 1 Tf 7.066 0 Td (write)Tj /T1_0 1 Tf 0.3314 Tc (,w)Tj 0 Tc 4.415 0 Td [(ith )-81(a )-81(length )-81(of )-81(2,000 )-81(bytes )-81(for )-81(the )-81(full-duplex )-81(pipe )-81(and )-81(UNIX)]TJ -11.482 -1.2 Td [(domain socket.)-500(The times ar)]TJ 0.25 Tc 12.642 0 Td (ea)Tj 0 Tc 1.229 0 Td (ll in seconds.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2271.25 5074.25 cm 0 0 m 1950 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 250.23 499.3401 Tm [(Operation )-4206(User)-2058(System )-1573(Clock)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2271.25 4954.25 cm 0 0 m 1950 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2271.25 4934.25 cm 0 0 m 1950 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 231.0384 485.3126 Tm [(message queue)-4803(0.58 )-2693(4.16 )-2693(5.09)]TJ 0 -1.25 TD [(full-duplex pipe)-4348(0.61 )-2693(4.30 )-2693(5.24)]TJ T* [(UNIX domain socket)-2221(0.59 )-2693(5.58 )-2693(7.49)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2271.25 4614.25 cm 0 0 m 1950 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3866.25 4614.25 cm 0 0 m 0 460 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3490.25 4614.25 cm 0 0 m 0 460 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3115.25 4614.25 cm 0 0 m 0 460 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 4614.25 cm 0 0 m 0 460 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2271.25 4614.25 cm 0 0 m 0 460 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 213.1288 443.2936 Tm (Figure 15.27)Tj /T1_0 1 Tf -0.055 Tc 6.195 0 Td (Ti)Tj 0 Tc 0.849 0 Td (ming comparison of IPC alternatives on Solaris)Tj 9.9976 0 0 9.9976 147.565 420.4991 Tm [(These )-137(numbers )-137(show )-137(us )-137(that )-137(message )-137(queues, )-137(originally )-137(implemented )-137(to )-137(pr)20(ovide)]TJ -1.8 -1.2 Td [(higher)18(-than-normal-speed )-62(IPC, )-62(ar)19(e)-312(no)-312(l)1(onger )-62(that )-62(much )-62(faster )-62(than )-62(other )-62(forms )-62(of )-62(IPC.)]TJ 0 -1.2 TD [(\(When )-142(message )-142(queues )-142(wer)]TJ 0.3919 Tc 12.735 0 Td (ei)Tj 0 Tc 1.162 0 Td [(mplemented, )-142(the )-142(only )-142(other )-142(form )-142(of )-142(IPC )-142(available )-142(was)]TJ -13.897 -1.2 Td [(half-duplex )-464(pipes.\))-964(When )-464(we )-464(consider )-464(the )-464(pr)18(oblems )-464(in )-464(using )-464(message )-464(queues)]TJ T* [(\(Section )-325(15.6.4\), )-325(we )-325(come )-325(to )-325(the )-325(conclusion )-325(that )-325(we )-325(shouldn\325t )-325(use )-325(them )-325(for )-325(new)]TJ T* (applications.)Tj ET q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3606.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT0 1 Tf 11.9964 0 0 11.9964 93.5719 324.5026 Tm [(15.8 )-776(Semaphores)]TJ /T1_0 1 Tf 0.4673 Tc 9.997 0 0 9.997 129.5611 300.5098 Tm (As)Tj 0 Tc 1.669 0 Td (emaphor)Tj 0.4673 Tc 3.968 0 Td (ei)Tj 0 Tc 1.237 0 Td [(sn\325t )-217(a )-217(form )-217(of )-217(IPC )-217(similar )-217(to )-217(the )-217(others )-217(that )-217(we\325ve )-217(described )-217(\(pipes,)]TJ -6.875 -1.2 Td [(FIFOs, )-170(and )-170(message )-170(queues\).)]TJ 0.4205 Tc 14.01 0 Td (As)Tj 0 Tc 1.623 0 Td [(emaphor)18(e)-420(is)-420(a)-420(c)-1(ounter )-170(used )-170(to )-170(pr)18(ovide )-170(access )-170(to )-170(a)]TJ -15.633 -1.2 Td [(shar)18(ed data object for multiple pr)18(ocesses.)]TJ 7.9976 0 0 7.9976 183.5449 260.1219 Tm [(The )-140(Single )-140(UNIX )-140(Speci\336cation )-140(includes )-140(an )-140(alternative )-140(set )-140(of )-140(semaphor)]TJ 0.39 Tc 32.195 0 Td (ei)Tj 0 Tc 1.16 0 Td [(nterfaces )-140(that )-140(wer)18(e)]TJ -33.355 -1.25 Td [(originally part of its r)18(eal-time extensions.)]TJ -0.092 Tc 18.649 0 Td [(We )-184(d)]TJ 0 Tc 2.248 0 Td (iscuss these interfaces in Section 15.10.)Tj -0.092 Tc 9.997 0 0 9.997 129.5613 232.1303 Tm [(To )-184(o)]TJ 0 Tc 1.863 0 Td [(btain a shar)18(ed r)18(esour)18(ce, a pr)18(ocess needs to do the following:)]TJ -0.063 -1.92 Td [(1. )-633(T)92(est the semaphor)]TJ 0.25 Tc 9.662 0 Td (et)Tj 0 Tc 1.055 0 Td [(hat contr)18(ols the r)18(esour)18(ce.)]TJ -10.717 -1.6 Td [(2. )-633(If)-371(the )-121(value )-121(of )-121(the )-121(semaphor)17(e)-371(is)-371(p)-1(ositive, )-121(the )-121(pr)18(ocess )-121(can )-121(use )-121(the )-121(r)16(esour)18(ce. )-371(In)]TJ 1.633 -1.2 Td [(this )-142(case, )-142(the )-142(pr)18(ocess )-142(decr)18(ements )-142(the )-142(semaphor)]TJ 0.3918 Tc 21.615 0 Td (ev)Tj 0 Tc 1.436 0 Td [(alue )-142(by )-142(1, )-142(indicating )-142(that )-142(it)]TJ -23.051 -1.2 Td [(has used one unit of the r)18(esour)18(ce.)]TJ -1.633 -1.6 Td [(3. )-633(Otherwise,)-290(if )-40(the )-40(value )-40(of )-40(the )-40(semaphor)16(e)-290(is)-290(0,)-290(t)-1(he )-40(pr)18(ocess )-40(goes )-40(to )-40(sleep )-40(until )-40(the)]TJ 1.633 -1.2 Td (semaphor)Tj 0.3995 Tc 4.392 0 Td (ev)Tj 0 Tc 1.444 0 Td [(alue )-149(is )-149(gr)18(eater )-149(than )-149(0.)-649(When )-149(the )-149(pr)15(ocess )-150(wakes )-150(up, )-150(it )-150(r)18(eturns )-150(to)]TJ -5.835 -1.2 Td (step 1.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46925 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.7)]TJ 36.151 0 Td [(Message )-250(Queues)]TJ /T1_1 1 Tf 9.682 0 Td (561)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(15.7 )-776(Messa)]TJ 0.01 Tc 6.047 0 Td [(ge )-258(Q)]TJ 0 Tc 2.511 0 Td (ueues)Tj /T1_0 1 Tf 0.2955 Tc 9.9994 0 0 9.9994 129.5922 649.761 Tm (Am)Tj 0 Tc 1.956 0 Td [(essage )-45(queue )-45(is )-45(a )-45(linked )-45(list )-45(of )-45(messages )-45(stor)14(ed )-46(within )-46(the )-46(kernel )-46(and )-46(identi\336ed )-46(by)]TJ 0.279 Tc -1.956 -1.2 Td (am)Tj 0 Tc 1.662 0 Td [(essage )-29(queue )-29(identi\336er)]TJ 0.529 Tc 10.129 0 Td (.W)Tj 0 Tc 1.687 0 Td [(e\325ll )-29(call )-29(the )-29(message )-29(queue )-29(just )-29(a)]TJ /T1_2 1 Tf 14.76 0 Td (queue)Tj /T1_0 1 Tf 2.632 0 Td [(and )-29(its )-29(identi\336er )-29(a)]TJ /T1_2 1 Tf -30.87 -1.2 Td (queue ID)Tj /T1_0 1 Tf (.)Tj 7.9995 0 0 7.9995 183.5887 610.5634 Tm [(The )-157(Single )-157(UNIX )-157(Speci\336cation )-157(message-passing )-157(option )-157(includes )-157(an )-157(alternative )-157(IPC )-157(message)]TJ 0 -1.25 TD [(queue )-32(interface )-32(derived )-32(fr)17(om )-32(the )-32(POSIX )-32(r)18(eal-time )-32(extensions.)]TJ -0.092 Tc 27.795 0 Td [(We )-216(d)]TJ 0.2823 Tc 2.28 0 Td (on)Tj 0 Tc 1.41 0 Td [(ot )-32(discuss )-32(it )-32(in )-32(this )-32(text.)]TJ 0.3723 Tc 9.9994 0 0 9.9994 147.5909 582.565 Tm (An)Tj 0 Tc 1.732 0 Td [(ew )-122(queue )-122(is )-122(cr)18(eated )-122(or )-122(an )-122(existing )-122(queue )-122(opened )-122(by)]TJ /TT1 1 Tf 24.31 0 Td (msgget)Tj /T1_0 1 Tf 0.6223 Tc (.N)Tj 0 Tc 5.303 0 Td [(ew )-122(messages)]TJ -33.146 -1.2 Td (ar)Tj 0.2892 Tc 0.877 0 Td (ea)Tj 0 Tc 1.268 0 Td [(dded )-39(to )-39(the )-39(end )-39(of )-39(a )-39(queue )-39(by)]TJ /TT1 1 Tf 13.768 0 Td (msgsnd)Tj /T1_0 1 Tf 0.5391 Tc (.E)Tj 0 Tc 5 0 Td [(very )-39(message )-39(has )-39(a )-39(positive )-39(long )-39(integer)]TJ -20.913 -1.2 Td [(type )-281(\336eld, )-281(a )-281(non-negative )-281(length, )-281(and )-281(the )-281(actual )-281(data )-281(bytes )-281(\(corr)20(esponding )-281(to )-281(the)]TJ 0 -1.2 TD [(length\), )-128(all )-128(of )-128(which )-128(ar)]TJ 0.3776 Tc 10.48 0 Td (es)Tj 0 Tc 1.281 0 Td [(peci\336ed )-127(to)]TJ /TT1 1 Tf 5.137 0 Td (msgsnd)Tj /T1_0 1 Tf 3.978 0 Td [(when )-127(the )-127(message )-127(is )-127(added )-127(to )-127(a )-127(queue.)]TJ -20.875 -1.2 Td [(Messages )-34(ar)]TJ 0.2843 Tc 5.393 0 Td (ef)Tj 0 Tc 1.096 0 Td [(etched )-34(fr)18(om )-34(a )-34(queue )-34(by)]TJ /TT1 1 Tf 10.815 0 Td (msgrcv)Tj /T1_0 1 Tf 0.5343 Tc (.W)Tj 0.2843 Tc 5.292 0 Td (ed)Tj 0 Tc 1.374 0 Td [(on\325t )-34(have )-34(to )-34(fetch )-34(the )-34(messages )-34(in)]TJ 0.25 Tc -23.971 -1.2 Td (a\336)Tj 0 Tc 1.355 0 Td [(rst-in, \336rst-out or)18(der)]TJ 0.5 Tc 8.993 0 Td (.I)Tj 0 Tc 1.087 0 Td (nstead, we can fetch messages based on their type \336eld.)Tj -9.635 -1.2 Td (Each queue has the following)Tj /TT1 1 Tf 13.274 0 Td (msqid_ds)Tj /T1_0 1 Tf 5.05 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ea)Tj 0 Tc 1.229 0 Td (ssociated with it:)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5901 494.9402 Tm (struct msqid_ds {)Tj 1.2 -1.189 Td [(struct ipc_perm)-1200(msg_perm; )-2400(/*)-600(see Section 15.6.2 */)]TJ 0 -1.189 TD [(msgqnum_t )-4200(msg_qnum;)-3000(/* # of messages on queue */)]TJ T* [(msglen_t )-4800(msg_qbytes;)-1800(/* max # of bytes on queue */)]TJ T* (pid_t )Tj 10.2 0 Td [(msg_lspid;)-2400(/* pid of last msgsnd\(\) */)]TJ -10.2 -1.189 Td (pid_t )Tj 10.2 0 Td [(msg_lrpid;)-2400(/* pid of last msgrcv\(\) */)]TJ -10.2 -1.189 Td (time_t )Tj 10.2 0 Td [(msg_stime;)-2400(/* last-msgsnd\(\) time */)]TJ -10.2 -1.189 Td (time_t )Tj 10.2 0 Td [(msg_rtime;)-2400(/* last-msgrcv\(\) time */)]TJ -10.2 -1.189 Td (time_t )Tj 10.2 0 Td [(msg_ctime;)-2400(/* last-change time */)]TJ -10.2 -1.189 Td (.)Tj 0 -0.476 TD (.)Tj 0 -0.476 TD (.)Tj -1.2 -1.189 Td (};)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5912 362.4579 Tm [(This )-17(str)8(uctur)]TJ 0.2674 Tc 5.667 0 Td (ed)Tj 0 Tc 1.357 0 Td [(e\336nes )-17(the )-17(curr)18(ent )-17(status )-17(of )-17(the )-17(queue.)-520(The )-17(members )-17(shown )-17(ar)]TJ 0.2673 Tc 27.544 0 Td (et)Tj 0 Tc 1.072 0 Td [(he )-17(ones)]TJ -35.641 -1.2 Td [(de\336ned )-181(by )-181(the )-181(Single )-181(UNIX )-181(Speci\336cation.)-679(Implementations )-181(include )-181(additional )-181(\336elds)]TJ 0 -1.2 TD [(not cover)18(ed by the standar)18(d.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1429.25 3221.25 cm 0 0 m 3634 0 l S Q Q BT /T1_0 1 Tf -0.09 Tc 7.999 0 0 7.999 398.8801 314.0423 Tm (Ty)Tj 0 Tc 1.079 0 Td (pical values)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3401.25 3101.25 cm 0 0 m 1662 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 346.0137 302.0256 Tm [(Fr)18(eeBSD )-1664(Linux )-1664(Mac)-250(OS X)-1729(Solaris)]TJ 1.275 -1.25 Td [(8.0 )-3241(3.2.0)-3149(10.6.8 )-3399(10)]TJ -17.052 1.375 Td (Description)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1429.25 2881.25 cm 0 0 m 3634 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1429.25 2861.25 cm 0 0 m 3634 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 350.1959 278.0133 Tm [(16,384 )-2616(8,192)-2649(16,384 )-2059(derived)]TJ -25.426 0 Td [(size in bytes of lar)18(gest message we can send)]TJ 25.926 -1.25 Td [(2,048 )-2116(16,384)-3149(2,048 )-2399(65,536)]TJ -25.926 0 Td (maximum size in bytes of a particular queue \(i.e.,)Tj 1.35 -1.25 Td (the sum of all the sizes of messages on the queue\))Tj 25.826 -1.25 Td [(40 )-1775(derived)-4059(40 )-3649(128)]TJ -27.176 0 Td (maximum number of messages queues, systemwide)Tj 27.175 -1.25 Td [(40 )-1775(derived)-4059(40 )-2899(8,192)]TJ -27.176 0 Td (maximum number of messages, systemwide)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1429.25 2341.25 cm 0 0 m 3634 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4689.25 2341.25 cm 0 0 m 0 760 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4219.25 2341.25 cm 0 0 m 0 760 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3825.25 2341.25 cm 0 0 m 0 760 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3401.25 2341.25 cm 0 0 m 0 880 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5063.25 2341.25 cm 0 0 m 0 880 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1429.25 2341.25 cm 0 0 m 0 880 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 227.8596 216.0152 Tm (Figure 15.26)Tj /T1_0 1 Tf 6.195 0 Td [(System limits that af)18(fect message queues)]TJ 9.997 0 0 9.997 147.5559 192.0224 Tm (Figur)Tj 0.2985 Tc 2.383 0 Td (e1)Tj 0 Tc 1.278 0 Td [(5.26 )-48(lists )-48(the )-48(system )-48(limits )-48(that )-48(af)18(fect )-48(message )-48(queues.)]TJ -0.092 Tc 24.701 0 Td [(We )-232(s)]TJ 0 Tc 2.109 0 Td [(how )-48(\324)37(\324derived\325)37(\325)]TJ -32.27 -1.2 Td (wher)Tj 0.5083 Tc 2.272 0 Td (eal)Tj 0 Tc 2.287 0 Td [(imit )-258(is )-258(derived )-258(fr)18(om )-258(other )-258(limits.)-758(On )-258(Linux, )-258(for )-258(example, )-258(the )-258(maximum)]TJ -4.559 -1.2 Td [(number )-130(of )-130(messages )-130(is )-130(based )-130(on )-130(the )-130(maximum )-130(number )-130(of )-130(queues )-130(and )-130(the )-130(maximum)]TJ T* [(amount )-127(of )-127(data )-127(allowed )-127(on )-127(the )-127(queues.)-628(The )-127(maximum )-127(number )-127(of )-127(queues, )-127(in )-127(turn, )-127(is)]TJ T* [(based )-105(on )-105(the )-105(amount )-105(of )-105(RAM )-105(installed )-105(in )-105(the )-105(system.)-605(Note )-105(that )-105(the )-105(queue )-105(maximum)]TJ T* (byte size limit further limits the maximum size of a message to be place\ d on a queue.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46926 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.6)]TJ 40.154 0 Td [(XSI )-250(IPC)]TJ /T1_1 1 Tf 5.679 0 Td (559)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2720.25 6670.25 cm 0 0 m 1052 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 289.3066 658.9605 Tm [(Permission )-3500(Bit)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2720.25 6550.25 cm 0 0 m 1052 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2720.25 6530.25 cm 0 0 m 1052 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 275.9749 644.9226 Tm [(user)18(-r)18(ead)]TJ /TT0 1 Tf 9.748 0 Td (0400)Tj /T1_0 1 Tf -9.748 -1.25 Td [(user)18(-write \(alter\))]TJ /TT0 1 Tf 9.748 0 Td (0200)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2720.25 6310.25 cm 0 0 m 1052 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 275.9583 622.8879 Tm [(gr)18(oup-r)18(ead)]TJ /TT0 1 Tf 9.748 0 Td (0040)Tj /T1_0 1 Tf -9.748 -1.25 Td [(gr)18(oup-write \(alter\))]TJ /TT0 1 Tf 9.748 0 Td (0020)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2720.25 6090.25 cm 0 0 m 1052 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 275.9418 600.8558 Tm [(other)18(-r)18(ead)]TJ /TT0 1 Tf 9.748 0 Td (0004)Tj /T1_0 1 Tf -9.748 -1.25 Td [(other)18(-write \(alter\))]TJ /TT0 1 Tf 9.748 0 Td (0002)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2720.25 5870.25 cm 0 0 m 1052 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3480.25 5870.25 cm 0 0 m 0 800 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3772.25 5870.25 cm 0 0 m 0 800 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2720.25 5870.25 cm 0 0 m 0 800 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 263.6649 568.8293 Tm (Figure 15.24)Tj /T1_0 1 Tf 6.195 0 Td (XSI IPC permissions)Tj 9.997 0 0 9.997 147.5559 544.8365 Tm [(Some )-54(implementations )-54(de\336ne )-54(symbolic )-54(constants )-54(to )-54(r)18(epr)18(esent )-54(each )-54(permission, )-54(but)]TJ -1.8 -1.2 Td (these constants ar)Tj 0.25 Tc 7.821 0 Td (en)Tj 0 Tc 1.311 0 Td [(ot standar)18(dized by the Single UNIX Speci\336cation.)]TJ /TT1 1 Tf 11.9964 0 0 11.9964 129.5613 508.8473 Tm [(15.6.3 )-556(Con\336guration)-556(Limits)]TJ /T1_0 1 Tf 9.997 0 0 9.997 129.5613 484.8545 Tm [(All )-123(thr)18(ee )-123(forms )-123(of )-123(XSI )-123(IPC )-123(have )-123(built-in )-123(limits )-123(that )-123(we )-123(may )-123(encounter)]TJ 0.6232 Tc 31.969 0 Td (.M)Tj 0 Tc 1.819 0 Td [(ost )-123(of )-123(these)]TJ -33.788 -1.2 Td [(limits )-184(can )-184(be )-184(changed )-184(by )-184(r)18(econ\336guring )-184(the )-184(kernel.)]TJ -0.092 Tc 24.084 0 Td [(We )-368(d)]TJ 0 Tc 2.432 0 Td [(escribe )-184(the )-184(limits )-184(when )-184(we)]TJ -26.516 -1.2 Td [(describe each of the thr)18(ee forms of IPC.)]TJ 7.9976 0 0 7.9976 183.5452 440.8677 Tm [(Each )-176(platform )-176(pr)18(ovides )-176(its )-176(own )-176(way )-176(to )-176(r)19(eport )-176(and )-176(modify )-176(a )-176(particular )-176(limit.)-676(Fr)18(eeBSD )-176(8.0,)]TJ 0 -1.25 Td [(Linux )-113(3.2.0, )-113(and )-113(Mac )-113(OS )-113(X )-113(10.6.8 )-113(pr)18(ovide )-113(the)]TJ /TT0 1 Tf 21.038 0 Td (sysctl)Tj /T1_0 1 Tf 3.963 0 Td [(command )-113(to )-113(view )-113(and )-113(modify )-113(kernel)]TJ -25.001 -1.25 Td [(con\336guration )-236(parameters.)-737(On )-237(Solaris )-237(10, )-237(changes )-237(to )-237(kernel )-237(IPC )-237(limits )-237(ar)]TJ 0.4866 Tc 34.168 0 Td (em)Tj 0 Tc 1.849 0 Td [(ade )-237(with )-237(the)]TJ /TT0 1 Tf -36.017 -1.25 Td (prctl)Tj /T1_0 1 Tf 3.25 0 Td (command.)Tj -3.25 -1.875 Td [(On )-68(Linux, )-68(you )-68(can )-68(display )-68(the )-68(IPC-r)15(elated )-68(limits )-68(by )-68(r)7(unning)]TJ /TT0 1 Tf 27.541 0 Td [(ipcs )267(-l)]TJ /T1_0 1 Tf 0.5684 Tc (.O)Tj 0.3184 Tc 5.538 0 Td (nF)Tj -0.018 Tc 1.456 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD )-68(and )-68(Mac)]TJ -35.392 -1.25 Td [(OS )-351(X, )-351(the )-351(equivalent )-351(command )-351(is)]TJ /TT0 1 Tf 17.062 0 Td [(ipcs )267(-T)]TJ /T1_0 1 Tf 0.8511 Tc (.O)Tj 0.6011 Tc 5.82 0 Td (nS)Tj 0 Tc 1.708 0 Td [(olaris, )-351(you )-351(can )-351(discover )-351(the )-351(tunable)]TJ -24.59 -1.25 Td [(parameters by r)8(unning)]TJ /TT0 1 Tf 10.424 0 Td [(sysdef )267(-i)]TJ /T1_0 1 Tf (.)Tj /TT1 1 Tf 11.9964 0 0 11.9964 129.561 347.8956 Tm [(15.6.4 )-556(Ad)]TJ -0.02 Tc 4.932 0 Td (va)Tj 0 Tc 1.092 0 Td (nta)Tj 0.01 Tc 1.49 0 Td (ge)Tj 0.556 Tc 1.177 0 Td (sa)Tj 0 Tc 1.668 0 Td [(nd )-278(Disad)]TJ -0.02 Tc 4.486 0 Td (va)Tj 0 Tc 1.092 0 Td (nta)Tj 0.01 Tc 1.49 0 Td (ge)Tj 0 Tc 1.177 0 Td (s)Tj /T1_0 1 Tf 0.2999 Tc 9.997 0 0 9.997 129.5606 323.9028 Tm (Af)Tj 0 Tc 1.411 0 Td [(undamental )-50(pr)18(oblem )-50(with )-50(XSI )-50(IPC )-50(is )-50(that )-50(the )-50(IPC )-50(str)9(uctur)18(es )-50(ar)]TJ 0.2998 Tc 28.054 0 Td (es)Tj 0 Tc 1.203 0 Td [(ystemwide )-50(and )-50(do)]TJ -30.668 -1.2 Td [(not )-177(have )-177(a )-177(r)17(efer)18(ence )-177(count.)-678(For )-178(example, )-178(if )-178(we )-178(cr)18(eate )-178(a )-178(message )-178(queue, )-178(place )-178(some)]TJ 0 -1.2 Td [(messages )-40(on )-40(the )-40(queue, )-40(and )-40(then )-40(terminate, )-40(the )-40(message )-40(queue )-40(and )-40(its )-40(contents )-40(ar)]TJ 0.29 Tc 36.777 0 Td (en)Tj 0 Tc 1.351 0 Td (ot)Tj -38.128 -1.2 Td [(deleted. )-353(They)]TJ -0.018 Tc 6.712 0 Td (re)Tj 0 Tc 0.856 0 Td [(main )-103(in )-103(the )-103(system )-103(until )-103(speci\336cally )-103(r)17(ead )-103(or )-103(deleted )-103(by )-103(some )-103(pr)17(ocess)]TJ -7.568 -1.2 Td (calling)Tj /TT0 1 Tf 3.342 0 Td (msgrcv)Tj /T1_0 1 Tf 3.987 0 Td (or)Tj /TT0 1 Tf 1.328 0 Td (msgctl)Tj /T1_0 1 Tf [(,)-387(by)-387(someone )-137(executing )-137(the)]TJ /TT0 1 Tf 16.495 0 Td (ipcrm)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.72 -0.04 Td [(command, )-137(or )-137(by )-137(the)]TJ -29.704 -1.2 Td [(system )-66(being )-66(r)17(ebooted. )-316(Compar)]TJ 0.3163 Tc 14.535 0 Td (et)Tj 0 Tc 1.121 0 Td [(his )-66(with )-66(a )-66(pipe, )-66(which )-66(is )-66(completely )-66(r)16(emoved )-66(when)]TJ -15.656 -1.2 Td [(the )-59(last )-59(pr)18(ocess )-59(to )-59(r)17(efer)18(ence )-59(it )-59(terminates.)]TJ -0.055 Tc 19.09 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-59(a )-59(FIFO, )-59(although )-59(the )-59(name )-59(stays )-59(in )-59(the)]TJ -20.326 -1.2 Td [(\336le )-116(system )-116(until )-116(explicitly )-116(r)18(emoved, )-116(any )-116(data )-116(left )-116(in )-116(a )-116(FIFO )-116(is )-116(r)17(emoved )-116(when )-116(the )-116(last)]TJ 0 -1.2 TD [(pr)18(ocess to r)18(efer)18(ence the FIFO terminates.)]TJ 1.8 -1.2 Td [(Another )-29(pr)18(oblem )-29(with )-29(XSI )-29(IPC )-29(is )-29(that )-29(these )-29(IPC )-29(str)11(uctur)18(es )-29(ar)]TJ 0.2786 Tc 27.076 0 Td (en)Tj 0 Tc 1.34 0 Td [(ot )-29(known )-29(by )-29(names)]TJ -30.215 -1.2 Td [(in )-51(the )-51(\336le )-51(system.)]TJ -0.092 Tc 8.431 0 Td [(We )-235(c)]TJ 0 Tc 2.132 0 Td [(an\325t )-51(access )-51(them )-51(and )-51(modify )-51(their )-51(pr)18(operties )-51(with )-51(the )-51(functions)]TJ -10.563 -1.2 Td [(we )-70(described )-70(in )-70(Chapters )-70(3 )-70(and )-70(4.)-571(Almost )-70(a )-70(dozen )-70(new )-70(system )-70(calls )-70(\()]TJ /TT0 1 Tf 31.58 0 Td (msgget)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.17 0 Td (semop)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf -35.75 -1.2 Td (shmat)Tj /T1_0 1 Tf 0.3056 Tc (,a)Tj 0 Tc 4.056 0 Td [(nd )-56(so )-56(on\) )-56(wer)]TJ 0.3057 Tc 6.231 0 Td (ea)Tj 0 Tc 1.285 0 Td [(dded )-56(to )-56(the )-56(kernel )-56(to )-56(support )-56(these )-56(IPC )-56(objects.)]TJ -0.092 Tc 21.918 0 Td [(We )-240(c)]TJ 0 Tc 2.137 0 Td [(an\325t )-56(see)]TJ -35.626 -1.2 Td [(the )-9(IPC )-9(objects )-9(with )-9(an)]TJ /TT0 1 Tf 10.455 0 Td (ls)Tj /T1_0 1 Tf 1.459 0 Td [(command, )-9(we )-9(can\325t )-9(r)17(emove )-9(them )-9(with )-9(the)]TJ /TT0 1 Tf 18.976 0 Td (rm)Tj /T1_0 1 Tf 1.459 0 Td [(command, )-9(and)]TJ -32.349 -1.2 Td [(we )-343(can\325t )-343(change )-343(their )-343(permissions )-343(with )-343(the)]TJ /TT0 1 Tf 21.569 0 Td (chmod)Tj /T1_0 1 Tf 3.593 0 Td [(command. )-593(Instead,)-593(two )-343(new)]TJ -25.162 -1.2 Td [(commands )167(\321)]TJ /TT0 1 Tf 6.04 0 Td (ipcs)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (and)Tj /TT0 1 Tf 1.943 0 Td (ipcrm)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.0833 Tc 0.416 -0.04 Td (\321w)Tj 0 Tc 1.917 0 Td (er)Tj 0.25 Tc 0.856 0 Td (ea)Tj 0 Tc 1.229 0 Td (dded.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46927 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (558)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (then)Tj /TT0 1 Tf 2.23 0 Td (ftok)Tj /T1_1 1 Tf 2.661 0 Td [(usually )-11(r)18(eturns )-11(two )-11(dif)18(fer)18(ent )-11(keys )-11(for )-11(the )-11(two )-11(pathnames.)-510(However)]TJ 0.261 Tc 30.116 0 Td (,b)Tj 0 Tc 1.064 0 Td (ecause)Tj -36.071 -1.2 Td [(both )-136(i-node )-136(numbers )-136(and )-136(keys )-136(ar)]TJ 0.3864 Tc 15.285 0 Td (eo)Tj 0 Tc 1.411 0 Td [(ften )-136(stor)18(ed )-136(in )-136(long )-136(integers, )-136(information )-136(loss )-136(can)]TJ -16.696 -1.2 Td [(occur )-112(when )-112(cr)18(eating )-112(a )-112(key)]TJ 0.6118 Tc 11.891 0 Td (.T)Tj 0 Tc 1.475 0 Td [(his )-112(means )-112(that )-112(two )-112(dif)19(fer)18(ent )-112(pathnames )-112(to )-112(dif)18(fer)18(ent )-112(\336les)]TJ -13.366 -1.2 Td [(can generate the same key if the same pr)18(oject ID is used.)]TJ 1.8 -1.2 Td [(The )-269(thr)18(ee)]TJ /TT0 1 Tf 4.954 0 Td (get)Tj /T1_1 1 Tf 2.319 0 Td [(functions )-269(\()]TJ /TT0 1 Tf (msgget)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 9.351 0 Td (semget)Tj /T1_1 1 Tf 0.5185 Tc (,a)Tj 0 Tc 4.869 0 Td (nd)Tj /TT0 1 Tf 1.711 0 Td (shmget)Tj /T1_1 1 Tf 0.5185 Tc (\)a)Tj 0 Tc 4.951 0 Td [(ll )-268(have )-268(two )-268(similar)]TJ -29.955 -1.2 Td [(ar)18(guments: )-157(a)]TJ /T1_2 1 Tf 6.294 0 Td (key)Tj /T1_1 1 Tf 1.74 0 Td [(and )-157(an )-157(integer)]TJ /T1_2 1 Tf 7.104 0 Td (\337ag)Tj /T1_1 1 Tf 0.6571 Tc (.A)Tj 0 Tc 3.581 0 Td [(new )-157(IPC )-157(str)8(uctur)18(e)-407(is)-407(c)]TJ -0.018 Tc (re)Tj 0 Tc 11.157 0 Td [(ated )-157(\(normally )-157(by )-157(a)]TJ -29.877 -1.2 Td [(server\) )-200(if )-200(either)]TJ /T1_2 1 Tf 7.596 0 Td (key)Tj /T1_1 1 Tf 1.783 0 Td (is)Tj /TT0 1 Tf 1.165 0 Td (IPC_PRIVATE)Tj /T1_1 1 Tf 7.05 0 Td (or)Tj /T1_2 1 Tf 1.391 0 Td (key)Tj /T1_1 1 Tf 1.783 0 Td [(is )-200(not )-200(curr)18(ently )-200(associated )-200(with )-200(an )-200(IPC)]TJ -20.768 -1.2 Td [(str)8(uctur)18(e)-299(of)-299(t)-1(he )-49(particular )-49(type )-49(and )-49(the)]TJ /TT0 1 Tf 17.72 0 Td (IPC_CREAT)Tj /T1_1 1 Tf 5.7 0 Td [(bit )-50(of)]TJ /T1_2 1 Tf 2.648 0 Td (\337ag)Tj /T1_1 1 Tf 1.789 0 Td [(is )-50(speci\336ed.)]TJ -0.092 Tc 5.748 0 Td [(To )-234(r)]TJ 0 Tc 1.744 0 Td [(efer)18(ence)]TJ -35.348 -1.2 Td [(an )-25(existing )-25(queue )-25(\(normally )-25(done )-25(by )-25(a )-25(client\),)]TJ /T1_2 1 Tf 20.67 0 Td (key)Tj /T1_1 1 Tf 1.608 0 Td [(must )-25(equal )-25(the )-25(key )-25(that )-25(was )-25(speci\336ed)]TJ -22.278 -1.2 Td [(when the queue was cr)18(eated, and)]TJ /TT0 1 Tf 15.005 0 Td (IPC_CREAT)Tj /T1_1 1 Tf 5.65 0 Td (must not be speci\336ed.)Tj -18.855 -1.2 Td [(Note )-278(that )-278(it\325s )-278(never )-278(possible )-278(to )-278(specify)]TJ /TT0 1 Tf 19.04 0 Td (IPC_PRIVATE)Tj /T1_1 1 Tf 7.128 0 Td [(to )-278(r)18(efer)18(ence )-278(an )-278(existing)]TJ -27.968 -1.2 Td [(queue, )-35(since )-35(this )-35(special)]TJ /T1_2 1 Tf 10.986 0 Td (key)Tj /T1_1 1 Tf 1.618 0 Td [(value )-35(always )-35(cr)18(eates )-35(a )-35(new )-35(queue.)]TJ -0.092 Tc 15.899 0 Td [(To )-219(r)]TJ 0 Tc 1.729 0 Td [(efer)18(ence )-35(an )-35(existing)]TJ -30.232 -1.2 Td [(queue )-209(that )-209(was )-209(cr)18(eated )-209(with )-209(a)]TJ /T1_2 1 Tf 14.722 0 Td (key)Tj /T1_1 1 Tf 1.792 0 Td (of)Tj /TT0 1 Tf 1.339 0 Td (IPC_PRIVATE)Tj /T1_1 1 Tf [(,)-460(we)-460(m)1(ust )-210(know )-210(the )-210(associated)]TJ -17.853 -1.2 Td [(identi\336er )-263(and )-263(then )-263(use )-263(that )-263(identi\336er )-263(in )-263(the )-263(other )-263(IPC )-263(calls )-263(\(such )-263(as)]TJ /TT0 1 Tf 33.194 0 Td (msgsnd)Tj /T1_1 1 Tf 4.114 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (msgrcv)Tj /T1_1 1 Tf (\), bypassing the)Tj /TT0 1 Tf 10.807 0 Td (get)Tj /T1_1 1 Tf 2.05 0 Td (function.)Tj -11.057 -1.2 Td [(If )-115(we )-115(want )-115(to )-115(cr)16(eate )-115(a )-115(new )-115(IPC )-115(str)6(uctur)18(e, )-115(making )-115(sur)]TJ 0.3655 Tc 24.393 0 Td (et)Tj 0 Tc 1.171 0 Td [(hat )-115(we )-115(don\325t )-115(r)17(efer)18(ence )-115(an)]TJ -27.363 -1.2 Td [(existing )-71(one )-71(with )-71(the )-71(same )-71(identi\336er)74(,)-321(we)-321(must )-71(specify )-71(a)]TJ /T1_2 1 Tf 25.4 0 Td (\337ag)Tj /T1_1 1 Tf 1.81 0 Td [(with )-71(both )-71(the)]TJ /TT0 1 Tf 6.39 0 Td (IPC_CREAT)Tj /T1_1 1 Tf -33.6 -1.2 Td (and)Tj /TT0 1 Tf 1.946 0 Td (IPC_EXCL)Tj /T1_1 1 Tf 5.053 0 Td [(bits )-3(set.)-503(Doing )-3(this )-3(causes )-3(an )-3(err)18(or )-3(r)18(eturn )-3(of)]TJ /TT0 1 Tf 19.76 0 Td (EEXIST)Tj /T1_1 1 Tf 3.853 0 Td [(if )-3(the )-3(IPC )-3(str)8(uctur)18(e)]TJ -30.611 -1.2 Td [(alr)18(eady )-210(exists.)-710(\(This )-210(is )-210(similar )-210(to )-210(an)]TJ /TT0 1 Tf 17.48 0 Td (open)Tj /T1_1 1 Tf 2.86 0 Td [(that )-210(speci\336es )-210(the)]TJ /TT0 1 Tf 8.247 0 Td (O_CREAT)Tj /T1_1 1 Tf 4.66 0 Td (and)Tj /TT0 1 Tf 2.153 0 Td (O_EXCL)Tj /T1_1 1 Tf -35.4 -1.2 Td (\337ags.\))Tj /TT1 1 Tf 11.9993 0 0 11.9993 129.5941 410.9753 Tm [(15.6.2 )-556(P)30(ermission )-278(Structure)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5941 386.9768 Tm [(XSI )-257(IPC )-257(associates )-257(an)]TJ /TT0 1 Tf 10.647 0 Td (ipc_perm)Tj /T1_1 1 Tf 5.307 0 Td [(str)8(uctur)]TJ 0.5069 Tc 3.49 0 Td (ew)Tj 0 Tc 1.82 0 Td [(ith )-257(each )-257(IPC )-257(str)8(uctur)18(e. )-507(This)-507(str)8(uctur)18(e)]TJ -21.263 -1.2 Td (de\336nes the permissions and owner and includes at least the following \ members:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5931 356.1388 Tm (struct ipc_perm {)Tj 1.2 -1.189 Td [(uid_t )-600(uid; )-600(/*)-600(owner\325s effective user ID */)]TJ 0 -1.189 TD [(gid_t )-600(gid; )-600(/*)-600(owner\325s effective group ID */)]TJ T* [(uid_t )-600(cuid;)-600(/* creator\325s effective user ID */)]TJ T* [(gid_t )-600(cgid;)-600(/* creator\325s effective group ID */)]TJ 0 -1.189 TD (mode_t mode; /* access modes */)Tj 0 -1.189 TD (.)Tj 0 -0.476 TD (.)Tj 0 -0.476 TD (.)Tj -1.2 -1.189 Td (};)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5942 252.545 Tm [(Each )-31(implementation )-31(includes )-31(additional )-31(members.)-531(See)]TJ /TT0 1 Tf 25.237 0 Td ()Tj /T1_1 1 Tf 6.881 0 Td [(on )-31(your )-31(system)]TJ -32.118 -1.2 Td (for the complete de\336nition.)Tj 1.8 -1.2 Td [(All )-95(the )-95(\336elds )-95(ar)]TJ 0.3455 Tc 7.071 0 Td (ei)Tj 0 Tc 1.116 0 Td [(nitialized )-95(when )-95(the )-95(IPC )-95(str)6(uctur)18(e)-345(is)-345(c)]TJ -0.018 Tc 16.877 0 Td (re)Tj 0 Tc 0.856 0 Td [(ated. )-346(At)]TJ 0.3456 Tc 4.211 0 Td (al)Tj 0 Tc 1.137 0 Td [(ater )-96(time, )-96(we)]TJ -33.067 -1.2 Td [(can )-64(modify )-64(the)]TJ /TT0 1 Tf 7.074 0 Td (uid)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.364 0 Td (gid)Tj /T1_1 1 Tf 0.3137 Tc (,a)Tj 0 Tc 2.864 0 Td (nd)Tj /TT0 1 Tf 1.507 0 Td (mode)Tj /T1_1 1 Tf 2.714 0 Td [(\336elds )-64(by )-64(calling)]TJ /TT0 1 Tf 7.415 0 Td (msgctl)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.164 0 Td (semctl)Tj /T1_1 1 Tf 0.3137 Tc (,o)Tj 0 Tc 4.71 0 Td (r)Tj /TT0 1 Tf 0.709 0 Td (shmctl)Tj /T1_1 1 Tf 0.5637 Tc (.T)Tj 0 Tc 4.935 0 Td (o)Tj -38.454 -1.2 Td [(change )-83(these )-83(values, )-83(the )-83(calling )-83(pr)18(ocess )-83(must )-83(be )-83(either )-83(the )-83(cr)18(eator )-83(of )-83(the )-83(IPC )-83(str)11(uctur)18(e)]TJ 0 -1.2 TD [(or the super)8(user)]TJ 0.5 Tc 7.149 0 Td (.C)Tj 0 Tc 1.459 0 Td (hanging these \336elds is similar to calling)Tj /TT0 1 Tf 17.716 0 Td (chown)Tj /T1_1 1 Tf 3.25 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (chmod)Tj /T1_1 1 Tf 3.25 0 Td (for a \336le.)Tj -32.215 -1.2 Td [(The )-11(values )-11(in )-11(the)]TJ /TT0 1 Tf 7.84 0 Td (mode)Tj /T1_1 1 Tf 2.661 0 Td [(\336eld )-11(ar)]TJ 0.2609 Tc 3.124 0 Td (es)Tj 0 Tc 1.164 0 Td [(imilar )-11(to )-11(the )-11(values )-11(we )-11(saw )-11(in )-11(Figur)]TJ 0.2608 Tc 15.925 0 Td (e4)Tj 0 Tc 1.24 0 Td [(.6, )-11(but )-11(ther)18(e)]TJ -33.753 -1.2 Td [(is )-188(nothing )-188(corr)18(esponding )-188(to )-188(execute )-188(permission )-188(for )-188(any )-188(of )-188(the )-188(IPC )-188(str)3(uctur)18(es. )-438(Also,)]TJ 0 -1.2 Td [(message )-78(queues )-78(and )-78(shar)18(ed )-78(memory )-78(use )-78(the )-78(terms)]TJ /T1_2 1 Tf -0.018 Tc 23.322 0 Td (re)Tj 0 Tc 0.76 0 Td (ad)Tj /T1_1 1 Tf 1.271 0 Td (and)Tj /T1_2 1 Tf 2.021 0 Td (write)Tj /T1_1 1 Tf 0.3275 Tc (,b)Tj 0 Tc 3.242 0 Td [(ut )-77(semaphor)18(es )-77(use)]TJ -30.615 -1.2 Td (the terms)Tj /T1_2 1 Tf -0.018 Tc 4.394 0 Td (re)Tj 0 Tc 0.76 0 Td (ad)Tj /T1_1 1 Tf 1.194 0 Td (and)Tj /T1_2 1 Tf 1.943 0 Td (alter)Tj /T1_1 1 Tf 0.5 Tc (.F)Tj 0 Tc 3.139 0 Td (igur)Tj 0.25 Tc 1.827 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.24 shows the six permissions for each form of IPC.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46928 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (556)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2310 4982 432 288 re S Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 242.9334 510.8093 Tm (client)Tj /T1_0 1 Tf 0.25 Tc 9.9994 0 0 9.9994 318.3309 510.8093 Tm (...)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 3750 4982 432 288 re S Q BT /T1_1 1 Tf 0 Tc 7.999 0 0 7.999 386.9016 510.7787 Tm (client)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2994 5774 504 216 re S Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 303.2334 591.3335 Tm (well-known)Tj 1.547 -1.25 Td (FIFO)Tj ET q 0.99982 0 0 0.99982 0 0 cm q 1 0 0 1 324.6 635 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099982 0 0 0.099982 0 0 cm 1 j 1 J q 1 0 0 1 3246 6350 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 5990.25 cm 0 0 m 0 288 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 3030 6350 432 288 re S Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 313.5767 647.4846 Tm (server)Tj /TT0 1 Tf -1.292 -4.05 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.9 0 Td (re)Tj 0 Tc 0.856 0 Td (quests)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2058 5774 504 216 re S Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 206.8019 591.2626 Tm (client-speci\336c)Tj 1.9 -1.25 Td (FIFO)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 3930 5774 504 216 re S Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 393.9222 591.2271 Tm (client-speci\336c)Tj 1.9 -1.25 Td (FIFO)Tj ET q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 231 599 cm 0 0 m 4.896 5.616 l 6.984 2.664 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 2310 5990 cm 0 0 m 48.96 56.16 l 69.84 26.64 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2369.25 6031.25 cm 0 0 m 661 463 l S Q Q BT /TT0 1 Tf 6.5511 4.5858 -4.5858 6.5511 244.7482 612.3937 Tm (write)Tj /T1_1 1 Tf -0.018 Tc 3.25 0 Td (re)Tj 0 Tc 0.856 0 Td (plies)Tj ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 418.2 599 cm 0 0 m -6.912 2.664 l -4.824 5.616 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 4182 5990 cm 0 0 m -69.12 26.64 l -48.24 56.16 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3462.25 6494.25 cm 0 0 m 661 -463 l S Q Q BT /TT0 1 Tf 6.5508 -4.5855 4.5855 6.5508 363.5924 640.7504 Tm (write)Tj /T1_1 1 Tf -0.018 Tc 3.25 -0 Td (re)Tj 0 Tc 0.856 -0 Td (plies)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 245.4 527 cm 0 0 m -3.744 6.408 l -0.288 7.416 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 2454 5270 cm 0 0 m -37.44 64.08 l -2.88 74.16 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2310.25 5774.25 cm 0 0 m 124 -435 l S Q Q BT /TT0 1 Tf 7.9957 0 0 7.9957 191.3606 550.1428 Tm (read)Tj /T1_1 1 Tf -0.018 Tc 2.65 0 Td (re)Tj 0 Tc 0.856 0 Td (plies)Tj ET q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 403.8 527 cm 0 0 m 0.216 7.416 l 3.672 6.408 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 4038 5270 cm 0 0 m 2.16 74.16 l 36.72 64.08 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4182.25 5774.25 cm 0 0 m -125 -435 l S Q Q BT /TT0 1 Tf 7.9952 0 0 7.9952 412.7523 550.1098 Tm (read)Tj /T1_1 1 Tf -0.018 Tc 2.65 0 Td (re)Tj 0 Tc 0.856 0 Td (plies)Tj ET q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 316.176 577.4 cm 0 0 m -4.176 -6.12 l -6.552 -3.456 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 3161.76 5774 cm 0 0 m -41.76 -61.2 l -65.52 -34.56 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2598.25 5270.25 cm 0 0 m 510 456 l S Q Q BT /TT0 1 Tf 5.9613 5.3271 -5.3271 5.9613 265.045 535.8122 Tm (write)Tj /T1_1 1 Tf -0.018 Tc 3.25 0 Td (re)Tj 0 Tc 0.856 0 Td (quests)Tj ET q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 333.024 577.4 cm 0 0 m 6.552 -3.456 l 4.176 -6.12 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 3330.24 5774 cm 0 0 m 65.52 -34.56 l 41.76 -61.2 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3383.25 5726.25 cm 0 0 m 511 -456 l S Q Q BT /TT0 1 Tf 5.9609 -5.3268 5.3268 5.9609 342.4423 572.6525 Tm (write)Tj /T1_1 1 Tf -0.018 Tc 3.25 -0 Td (re)Tj 0 Tc 0.856 0 Td (quests)Tj /T1_0 1 Tf 7.9942 0 0 7.9942 224.854 472.6596 Tm (Figure 15.23)Tj /T1_1 1 Tf 6.195 0 Td (Client\320server communication using FIFOs)Tj 9.9928 0 0 9.9928 129.5069 448.6768 Tm [(server )-135(also )-135(must )-135(catch)]TJ /TT0 1 Tf 10.57 0 Td (SIGPIPE)Tj /T1_1 1 Tf 0.385 Tc (,s)Tj 0 Tc 5.259 0 Td [(ince )-135(it\325s )-135(possible )-135(for )-135(a )-135(client )-135(to )-135(send )-135(a )-135(r)18(equest )-135(and)]TJ -15.829 -1.2 Td [(terminate )-91(befor)]TJ 0.3407 Tc 6.89 0 Td (er)Tj 0 Tc 1.197 0 Td [(eading )-91(the )-91(r)19(esponse, )-91(leaving )-91(the )-91(client-speci\336c )-91(FIFO )-91(with )-91(one )-91(writer)]TJ -8.086 -1.2 Td [(\(the server\) and no r)18(eader)74(.)]TJ -0.055 Tc 1.8 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-170(the )-170(arrangement )-170(shown )-170(in )-170(Figur)]TJ 0.42 Tc 16.296 0 Td (e1)Tj 0 Tc 1.399 0 Td [(5.23, )-170(if )-170(the )-170(server )-170(opens )-170(its )-170(well-known)]TJ -20.731 -1.2 Td [(FIFO )-13(r)18(ead-only )-13(\(since )-13(it )-13(only)]TJ /TT0 1 Tf 12.97 0 Td (read)Tj /T1_1 1 Tf 0.2629 Tc (sf)Tj -0.018 Tc 3.42 0 Td (ro)Tj 0.2629 Tc 0.923 0 Td (mi)Tj 0 Tc 1.437 0 Td [(t\) )-13(each )-13(time )-13(the )-13(number )-13(of )-13(clients )-13(goes )-13(fr)19(om )-13(1)]TJ -18.749 -1.2 Td [(to )-32(0, )-32(the )-32(server )-32(will)]TJ /TT0 1 Tf 8.862 0 Td (read)Tj /T1_1 1 Tf 2.682 0 Td [(an )-32(end )-32(of )-32(\336le )-32(on )-32(the )-32(FIFO.)]TJ -0.092 Tc 12.231 0 Td [(To )-216(p)]TJ -0.018 Tc 1.95 0 Td (re)Tj 0 Tc 0.856 0 Td [(vent )-32(the )-32(server )-32(fr)18(om )-32(having)]TJ -26.581 -1.2 Td [(to )-34(handle )-34(this )-34(case, )-34(a )-34(common )-34(trick )-34(is )-34(just )-34(to )-34(have )-34(the )-34(server)]TJ /TT0 1 Tf 27.145 0 Td (open)Tj /T1_1 1 Tf 2.684 0 Td [(its )-34(well-known )-34(FIFO)]TJ -29.829 -1.2 Td [(for r)18(ead\320write. )-250(\(See)-250(Exer)18(cise 15.10.\))]TJ ET q 0.099928 0 0 0.099928 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3650.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9906 0 0 11.9906 93.527 328.7435 Tm [(15.6 )-776(XSI)-556(IPC)]TJ /T1_1 1 Tf 9.9922 0 0 9.9922 129.4989 304.7622 Tm [(The )-50(thr)18(ee )-50(types )-50(of )-50(IPC )-50(that )-50(we )-50(call )-50(XSI )-50(IPC)]TJ 0.0833 Tc 19.365 0 Td (\321m)Tj 0 Tc 1.966 0 Td [(essage )-50(queues, )-50(semaphor)18(es, )-50(and )-50(shar)20(ed)]TJ -21.331 -1.2 Td [(memory )167(\321 )167(have)-254(many )-3(similarities.)-503(In )-3(this )-3(section, )-3(we )-3(cover )-3(these )-3(similar )-3(featur)18(es; )-3(in )-3(the)]TJ 0 -1.2 Td [(following sections, we look at the speci\336c functions for each of the \ thr)18(ee IPC types.)]TJ 7.9938 0 0 7.9938 183.4569 260.7965 Tm [(The )-79(XSI )-79(IPC )-79(functions )-79(ar)]TJ 0.3291 Tc 11.177 0 Td (eb)Tj 0 Tc 1.361 0 Td [(ased )-79(closely )-79(on )-79(the )-79(System )-79(V )-79(IPC )-79(functions.)-579(These )-79(thr)18(ee )-79(types )-79(of)]TJ -12.539 -1.25 Td [(IPC )-9(originated )-9(in )-9(the )-9(1970s )-9(in )-9(an )-9(internal )-9(A)74(T&T )-9(version )-9(of )-9(the )-9(UNIX )-9(System )-9(called )-9(\324)43(\324Columbus)]TJ 0 -1.25 TD (UNIX.\325)Tj 0.7709 Tc 3.104 0 Td (\325T)Tj 0 Tc 1.662 0 Td [(hese )-271(IPC )-271(featur)18(es )-271(wer)]TJ 0.5209 Tc 10.388 0 Td (el)Tj 0 Tc 1.291 0 Td [(ater )-271(added )-271(to )-271(System )-271(V)]TJ 0.7709 Tc 11.254 0 Td (.T)Tj 0 Tc 1.634 0 Td [(hey )-271(ar)]TJ 0.5209 Tc 3.015 0 Td (eo)Tj 0 Tc 1.546 0 Td [(ften )-271(criticized )-271(for)]TJ -33.893 -1.25 Td (inventing their own namespace instead of using the \336le system.)Tj /TT1 1 Tf 11.9906 0 0 11.9906 129.4992 198.8448 Tm [(15.6.1 )-556(Identi\336er)]TJ 0.556 Tc 7.822 0 Td (sa)Tj 0 Tc 1.668 0 Td [(nd )-278(K)]TJ -0.015 Tc 2.485 0 Td (ey)Tj 0 Tc 1.097 0 Td (s)Tj /T1_1 1 Tf 9.9922 0 0 9.9922 129.4993 174.8635 Tm (Each)Tj /T1_2 1 Tf 2.626 0 Td [(IPC )-239(structur)18(e)]TJ /T1_1 1 Tf 6.312 0 Td [(\(message )-239(queue, )-239(semaphor)18(e, )-239(or )-239(shar)18(ed )-239(memory )-239(segment\) )-239(in )-239(the)]TJ -8.938 -1.2 Td [(kernel )-34(is )-34(r)19(eferr)18(ed )-34(to )-34(by )-34(a )-34(non-negative )-34(integer)]TJ /T1_2 1 Tf 20.706 0 Td (identi\336er)Tj /T1_1 1 Tf 0.5336 Tc (.T)Tj 0.2836 Tc 4.945 0 Td (os)Tj 0 Tc 1.254 0 Td [(end )-34(a )-34(message )-34(to )-34(or )-34(fetch )-34(a)]TJ -26.904 -1.2 Td [(message )-66(fr)18(om )-66(a )-66(message )-66(queue, )-66(for )-66(example, )-66(all )-66(we )-66(need )-66(know )-66(is )-66(the )-66(identi\336er )-66(for )-66(the)]TJ 0 -1.2 TD [(queue. )-379(Unlike)-379(\336le )-129(descriptors, )-129(IPC )-129(identi\336ers )-129(ar)]TJ 0.379 Tc 22.046 0 Td (en)Tj 0 Tc 1.44 0 Td [(ot )-129(small )-129(integers.)-629(Indeed, )-129(when )-129(a)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46929 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (552)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(If )-191(we )-191(invoke )-191(this )-191(new )-191(copr)16(ocess )-192(fr)18(om )-192(the )-192(pr)18(ogram )-192(in )-192(Figur)]TJ 0.4416 Tc 27.86 0 Td (e1)Tj 0 Tc 1.421 0 Td [(5.18, )-192(it )-192(no )-192(longer)]TJ -31.081 -1.2 Td [(works. )-506(The)-505(pr)18(oblem )-256(is )-256(the )-256(default )-256(standar)]TJ 0.5057 Tc 20.258 0 Td (dI)Tj 0 Tc 1.454 0 Td [(/O )-256(buf)18(fering. )-506(When)-505(the )-256(pr)18(ogram )-256(in)]TJ -21.712 -1.2 Td (Figur)Tj 0.3132 Tc 2.383 0 Td (e1)Tj 0 Tc 1.292 0 Td [(5.19 )-63(is )-63(invoked, )-63(the )-63(\336rst)]TJ /TT0 1 Tf 11.049 0 Td (fgets)Tj /T1_1 1 Tf 3.313 0 Td [(on )-63(the )-63(standar)]TJ 0.3133 Tc 6.462 0 Td (di)Tj 0 Tc 1.215 0 Td [(nput )-63(causes )-63(the )-63(standar)]TJ 0.3133 Tc 10.633 0 Td (dI)Tj 0 Tc 1.261 0 Td (/O)Tj -37.608 -1.2 Td [(library )-36(to )-36(allocate )-36(a )-36(buf)19(fer )-36(and )-36(choose )-36(the )-36(type )-36(of )-36(buf)20(fering. )-286(Since)-285(the )-36(standar)]TJ 0.2857 Tc 34.7 0 Td (di)Tj 0 Tc 1.188 0 Td [(nput )-36(is)]TJ 0.417 Tc -35.887 -1.2 Td (ap)Tj 0 Tc 1.518 0 Td [(ipe, )-167(the )-167(standar)]TJ 0.417 Tc 7.162 0 Td (dI)Tj 0 Tc 1.365 0 Td [(/O )-167(library )-167(defaults )-167(to )-167(fully )-167(buf)18(fer)18(ed. )-417(The)-417(same )-167(thing )-167(happens)]TJ -10.045 -1.2 Td [(with )-85(the )-85(standar)]TJ 0.3353 Tc 7.411 0 Td (do)Tj 0 Tc 1.492 0 Td [(utput. )-335(While)]TJ /TT0 1 Tf 6.273 0 Td (add2)Tj /T1_1 1 Tf 2.735 0 Td [(is )-85(blocked )-85(r)18(eading )-85(fr)18(om )-85(its )-85(standar)]TJ 0.3353 Tc 15.768 0 Td (di)Tj 0 Tc 1.237 0 Td [(nput, )-85(the)]TJ -34.916 -1.2 Td [(pr)18(ogram in Figur)]TJ 0.25 Tc 7.614 0 Td (e1)Tj 0 Tc 1.229 0 Td [(5.18 is blocked r)18(eading fr)18(om the pipe.)]TJ -0.092 Tc 17.089 0 Td [(We )-184(h)]TJ 0 Tc 2.219 0 Td (ave a deadlock.)Tj -26.351 -1.2 Td [(Her)18(e, )-224(we )-224(have )-224(contr)18(ol )-224(over )-224(the )-224(copr)18(ocess )-224(that\325s )-224(being )-224(r)7(un. )-474(W)]TJ 0.4741 Tc 29.243 0 Td (ec)Tj 0 Tc 1.397 0 Td [(an )-224(change )-224(the)]TJ -32.44 -1.2 Td [(pr)18(ogram in Figur)]TJ 0.25 Tc 7.614 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.19 by adding the following four lines befor)Tj 0.25 Tc 19.649 0 Td (et)Tj 0 Tc 1.055 0 Td (he)Tj /TT0 1 Tf 1.311 0 Td (while)Tj /T1_1 1 Tf 3.25 0 Td (loop:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5913 556.2666 Tm (if \(setvbuf\(stdin, NULL, _IOLBF, 0\) != 0\))Tj 2.4 -1.189 Td (err_sys\("setvbuf error"\);)Tj -2.4 -1.189 Td (if \(setvbuf\(stdout, NULL, _IOLBF, 0\) != 0\))Tj 2.4 -1.189 Td (err_sys\("setvbuf error"\);)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5924 506.1696 Tm [(These )-70(lines )-70(cause)]TJ /TT0 1 Tf 8.053 0 Td (fgets)Tj /T1_1 1 Tf 3.32 0 Td [(to )-70(r)18(eturn )-70(when )-70(a )-70(line )-70(is )-70(available )-70(and )-70(cause)]TJ /TT0 1 Tf 19.958 0 Td (printf)Tj /T1_1 1 Tf 3.919 0 Td [(to )-69(do )-69(an)]TJ /TT0 1 Tf -35.25 -1.2 Td (fflush)Tj /T1_1 1 Tf 3.939 0 Td [(when )-89(a )-89(newline )-89(is )-89(output )-89(\(r)19(efer )-89(to )-89(Section )-89(5.4 )-89(for )-89(the )-89(details )-89(on )-89(standar)]TJ 0.3389 Tc 32.382 0 Td (dI)Tj 0 Tc 1.287 0 Td (/O)Tj -37.608 -1.2 Td [(buf)18(fering\). )-250(Making)-250(these explicit calls to)]TJ /TT0 1 Tf 18.222 0 Td (setvbuf)Tj /T1_1 1 Tf 4.45 0 Td [(\336xes the pr)18(ogram in Figur)]TJ 0.25 Tc 11.525 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.19.)Tj -33.626 -1.2 Td [(If )-157(we )-157(ar)18(en\325t )-157(able )-157(to )-157(modify )-157(the )-157(pr)18(ogram )-157(that )-157(we\325r)]TJ 0.4069 Tc 23.049 0 Td (ep)Tj 0 Tc 1.487 0 Td [(iping )-157(the )-157(output )-157(into, )-157(other)]TJ -26.336 -1.2 Td [(techniques )-311(ar)]TJ 0.5615 Tc 6.209 0 Td (er)Tj 0 Tc 1.417 0 Td [(equir)18(ed. )-561(For)-562(example, )-311(if )-311(we )-311(use)]TJ /TT0 1 Tf 16.208 0 Td (awk)Tj /T1_1 1 Tf 1.8 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.895 -0.04 Td [(as )-312(a )-312(copr)18(ocess )-312(fr)18(om )-312(our)]TJ -27.362 -1.2 Td [(pr)18(ogram \(instead of the)]TJ /TT0 1 Tf 10.67 0 Td (add2)Tj /T1_1 1 Tf 2.65 0 Td [(pr)18(ogram\), the following won\325t work:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5919 429.4742 Tm (#! /bin/awk -f)Tj 0.6 Tc 0 -1.189 TD ({p)Tj 0 Tc 1.8 0 Td (rint $1 + $2 })Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.593 400.776 Tm [(The )-127(r)18(eason )-127(this )-127(won\325t )-127(work )-127(is )-127(again )-127(the )-127(standar)]TJ 0.3769 Tc 21.969 0 Td (dI)Tj 0 Tc 1.325 0 Td [(/O )-127(buf)18(fering. )-377(But)-377(in )-127(this )-127(case, )-127(we)]TJ -23.294 -1.2 Td [(cannot )-194(change )-194(the )-194(way)]TJ /TT0 1 Tf 11.177 0 Td (awk)Tj /T1_1 1 Tf 2.244 0 Td [(works )-194(\(unless )-194(we )-194(have )-194(the )-194(sour)18(ce )-194(code )-194(for )-194(it\).)]TJ -0.092 Tc 22.392 0 Td [(We )-378(a)]TJ -0.018 Tc 2.331 0 Td (re)Tj 0 Tc -38.144 -1.2 Td [(unable )-26(to )-26(modify )-26(the )-26(executable )-26(of)]TJ /TT0 1 Tf 15.695 0 Td (awk)Tj /T1_1 1 Tf 2.076 0 Td [(in )-26(any )-26(way )-26(to )-26(change )-26(the )-26(way )-26(the )-26(standar)]TJ 0.2765 Tc 18.612 0 Td (dI)Tj 0 Tc 1.224 0 Td (/O)Tj -37.608 -1.2 Td [(buf)18(fering is handled.)]TJ 1.8 -1.2 Td [(The )-66(solution )-66(for )-66(this )-66(general )-66(pr)18(oblem )-66(is )-66(to )-66(make )-66(the )-66(copr)19(ocess )-66(being )-66(invoked )-66(\()]TJ /TT0 1 Tf (awk)Tj /T1_1 1 Tf -1.8 -1.2 Td [(in )-252(this )-252(case\) )-252(think )-252(that )-252(its )-252(standar)]TJ 0.502 Tc 16.12 0 Td (di)Tj 0 Tc 1.404 0 Td [(nput )-252(and )-252(standar)]TJ 0.502 Tc 8.129 0 Td (do)Tj 0 Tc 1.659 0 Td [(utput )-252(ar)]TJ 0.502 Tc 3.838 0 Td (ec)Tj 0 Tc 1.425 0 Td [(onnected )-252(to )-252(a)]TJ -32.575 -1.2 Td [(terminal. )-396(That)-397(causes )-146(the )-146(standar)]TJ 0.3965 Tc 15.435 0 Td (dI)Tj 0 Tc 1.344 0 Td [(/O )-146(r)18(outines )-146(in )-146(the )-146(copr)16(ocess )-147(to )-147(line )-147(buf)18(fer )-147(these)]TJ -16.779 -1.2 Td [(two )-60(I/O )-60(str)18(eams, )-60(similar )-60(to )-60(what )-60(we )-60(did )-60(with )-60(the )-60(explicit )-60(calls )-60(to)]TJ /TT0 1 Tf 29.619 0 Td (setvbuf)Tj /T1_1 1 Tf 4.509 0 Td [(pr)18(eviously)111(.)]TJ -0.092 Tc -34.128 -1.2 Td [(We )-184(u)]TJ 0 Tc 2.24 0 Td (se pseudo terminals to do this in Chapter 19.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3048.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9986 0 0 11.9986 93.5888 262.7685 Tm [(15.5 )-776(FIFOs)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 238.7713 Tm [(FIFOs )-124(ar)]TJ 0.3742 Tc 3.91 0 Td (es)Tj 0 Tc 1.277 0 Td [(ometimes )-124(called )-124(named )-124(pipes.)-625(Unnamed )-124(pipes )-124(can )-124(be )-124(used )-124(only )-124(between)]TJ -0.018 Tc -5.187 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(lated )-41(pr)18(ocesses )-41(when )-41(a )-41(common )-41(ancestor )-41(has )-41(cr)18(eated )-41(the )-41(pipe.)]TJ -0.055 Tc 28.453 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-41(FIFOs, )-41(however)74(,)]TJ -30.545 -1.2 Td [(unr)18(elated pr)18(ocesses can exchange data.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-367(s)]TJ 0 Tc 2.244 0 Td [(aw )-183(in )-183(Chapter )-183(4 )-183(that )-183(a )-183(FIFO )-183(is )-183(a )-183(type )-183(of )-183(\336le.)-683(One )-183(of )-183(the )-183(encodings )-183(of )-183(the)]TJ /TT0 1 Tf -4.044 -1.2 Td (st_mode)Tj /T1_1 1 Tf 4.499 0 Td [(member )-49(of )-49(the)]TJ /TT0 1 Tf 6.836 0 Td (stat)Tj /T1_1 1 Tf 2.699 0 Td [(str)8(uctur)]TJ 0.2993 Tc 3.49 0 Td (e\()Tj 0 Tc 1.111 0 Td [(Section )-49(4.2\) )-49(indicates )-49(that )-49(a )-49(\336le )-49(is )-49(a )-49(FIFO.)]TJ -0.092 Tc 18.977 0 Td (We)Tj 0 Tc -37.613 -1.2 Td (can test for this with the)Tj /TT0 1 Tf 10.898 0 Td (S_ISFIFO)Tj /T1_1 1 Tf 5.05 0 Td [(macr)18(o.)]TJ -14.148 -1.2 Td [(Cr)18(eating )-2(a )-2(FIFO )-2(is )-2(similar )-2(to )-2(cr)18(eating )-2(a )-2(\336le.)-502(Indeed, )-2(the)]TJ /T1_2 1 Tf 24.655 0 Td (pathname)Tj /T1_1 1 Tf 4.196 0 Td [(for )-2(a )-2(FIFO )-2(exists )-2(in)]TJ -30.65 -1.2 Td (the \336le system.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46930 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (548)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (if \(\(fpin = popen\("myuclc", "r"\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("popen error"\);)Tj -2.4 -1.189 Td (for \( ; ; \) {)Tj 2.4 -1.189 Td (fputs\("prompt> ", stdout\);)Tj 0 -1.189 TD (fflush\(stdout\);)Tj 0 -1.189 TD (if \(fgets\(line, MAXLINE, fpin\) == NULL\) /* read from pipe */)Tj 2.4 -1.189 Td (break;)Tj -2.4 -1.189 Td (if \(fputs\(line, stdout\) == EOF\))Tj 2.4 -1.189 Td (err_sys\("fputs error to pipe"\);)Tj -4.8 -1.189 Td (})Tj 0 -1.189 TD (if \(pclose\(fpin\) == -1\))Tj 2.4 -1.189 Td (err_sys\("pclose error"\);)Tj -2.4 -1.189 Td (putchar\(\325\\n\325\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5157.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 205.3514 499.639 Tm (Figure 15.15)Tj /T1_1 1 Tf 6.195 0 Td [(Invoke upper)18(case/lower)18(case \336lter to r)18(ead commands)]TJ -0.092 Tc 9.9988 0 0 9.9988 147.5825 475.6419 Tm [(We )-308(n)]TJ 0 Tc 2.343 0 Td [(eed )-124(to )-124(call)]TJ /TT0 1 Tf 5.09 0 Td (fflush)Tj /T1_1 1 Tf 3.974 0 Td [(after )-124(writing )-124(the )-124(pr)17(ompt, )-124(because )-124(the )-124(standar)]TJ 0.3743 Tc 20.713 0 Td (do)Tj 0 Tc 1.531 0 Td [(utput )-124(is)]TJ -35.452 -1.2 Td [(normally line buf)18(fer)18(ed, and the pr)18(ompt does not contain a newline.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4637.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9978 0 0 11.9978 93.5832 415.6242 Tm [(15.4 )-776(Copr)20(ocesses)]TJ /T1_1 1 Tf 0.5311 Tc 9.9982 0 0 9.9982 129.5767 389.2289 Tm (AU)Tj 0 Tc 2.087 0 Td [(NIX )-281(system )-281(\336lter )-281(is )-281(a )-281(pr)18(ogram )-281(that )-281(r)17(eads )-281(fr)18(om )-281(standar)]TJ 0.5312 Tc 26.46 0 Td (di)Tj 0 Tc 1.433 0 Td [(nput )-281(and )-281(writes )-281(to)]TJ -29.98 -1.2 Td (standar)Tj 0.4701 Tc 3.32 0 Td (do)Tj 0 Tc 1.627 0 Td [(utput. )-470(Filters)-470(ar)]TJ 0.4701 Tc 7.538 0 Td (en)Tj 0 Tc 1.531 0 Td [(ormally )-220(connected )-220(linearly )-220(in )-220(shell )-220(pipelines.)]TJ 0.47 Tc 21.64 0 Td (A\336)Tj 0 Tc 1.853 0 Td (lter)Tj -37.509 -1.2 Td [(becomes )-103(a)]TJ /T1_2 1 Tf 5.014 0 Td [(copr)18(ocess)]TJ /T1_1 1 Tf 4.093 0 Td [(when )-103(the )-103(same )-103(pr)18(ogram )-103(generates )-103(the )-103(\336lter)-74(\325s )-103(input )-103(and )-103(r)18(eads )-103(the)]TJ -9.107 -1.2 Td [(\336lter )176(\325s)-250(output.)]TJ 1.8 -1.2 Td [(The )-37(Korn )-37(shell )-37(pr)18(ovides )-37(copr)18(ocesses)]TJ 16.506 0.04 Td ([)Tj 0.333 -0.04 Td [(Bolsky )-37(and )-37(Korn )-37(1995)]TJ 9.786 0.04 Td (])Tj 0.5368 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.4 0 Td [(he )-37(Bourne )-37(shell, )-37(the)]TJ -30.159 -1.2 Td [(Bourne-again )-4(shell, )-4(and )-4(the )-4(C )-4(shell )-4(don\325t )-4(pr)18(ovide )-4(a )-4(way )-4(to )-4(connect )-4(pr)18(ocesses )-4(together )-4(as)]TJ 0 -1.2 TD [(copr)18(ocesses. )-578(A)-577(copr)18(ocess )-328(normally )-328(r)8(uns )-328(in )-328(the )-328(backgr)18(ound )-328(fr)18(om )-328(a )-328(shell, )-328(and )-328(its)]TJ T* (standar)Tj 0.4058 Tc 3.32 0 Td (di)Tj 0 Tc 1.308 0 Td [(nput )-156(and )-156(standar)]TJ 0.4058 Tc 7.937 0 Td (do)Tj 0 Tc 1.563 0 Td [(utput )-156(ar)]TJ 0.4058 Tc 3.742 0 Td (ec)Tj 0 Tc 1.329 0 Td [(onnected )-156(to )-156(another )-156(pr)19(ogram )-156(using )-156(a )-156(pipe.)]TJ -19.198 -1.2 Td [(Although )-183(the )-183(shell )-183(syntax )-183(r)19(equir)18(ed )-183(to )-183(initiate )-183(a )-183(copr)18(ocess )-183(and )-183(connect )-183(its )-183(input )-183(and)]TJ T* [(output )-3(to )-3(other )-3(pr)18(ocesses )-3(is )-3(quite )-3(contorted )-3(\(see )-3(pp. )-3(62)]TJ 24.156 0.09 Td (\320)Tj 0.583 -0.09 Td [(63 )-3(of )-3(Bolsky )-3(and )-3(Korn)]TJ 10.068 0.04 Td ([)Tj 0.333 -0.04 Td (1995)Tj 2 0.04 Td (])Tj 0.586 -0.04 Td (for)Tj -37.726 -1.2 Td [(all the details\), copr)18(ocesses ar)]TJ 0.25 Tc 13.039 0 Td (ea)Tj 0 Tc 1.229 0 Td [(lso useful fr)18(om a C pr)18(ogram.)]TJ -12.468 -1.2 Td [(Wher)18(eas)]TJ /TT0 1 Tf 4.107 0 Td (popen)Tj /T1_1 1 Tf 3.266 0 Td [(gives )-16(us )-16(a )-16(one-way )-16(pipe )-16(to )-16(the )-16(standar)]TJ 0.266 Tc 17.085 0 Td (di)Tj 0 Tc 1.168 0 Td [(nput )-16(or )-16(fr)18(om )-16(the )-16(standar)18(d)]TJ -27.426 -1.2 Td [(output )-135(of )-135(another )-135(pr)18(ocess, )-135(with )-135(a )-135(copr)20(ocess )-135(we )-135(have )-135(two )-135(one-way )-135(pipes )-135(to )-135(the )-135(other)]TJ T* [(pr)18(ocess: )-74(one )-74(to )-74(its )-74(standar)]TJ 0.324 Tc 11.681 0 Td (di)Tj 0 Tc 1.226 0 Td [(nput )-74(and )-74(one )-74(fr)18(om )-74(its )-74(standar)]TJ 0.3239 Tc 13.532 0 Td (do)Tj 0 Tc 1.481 0 Td [(utput. )-324(W)]TJ 0.3239 Tc 4.191 0 Td (ew)Tj 0 Tc 1.637 0 Td [(ant )-74(to )-74(write)]TJ -33.747 -1.2 Td (to its standar)Tj 0.25 Tc 5.733 0 Td (di)Tj 0 Tc 1.152 0 Td [(nput, let it operate on the data, and then r)18(ead fr)18(om its standar)]TJ 0.25 Tc 27.232 0 Td (do)Tj 0 Tc 1.407 0 Td (utput.)Tj /TT1 1 Tf -39.124 -3.6 Td (Example)Tj /T1_1 1 Tf 3.6 -2.64 Td [(Let\325s )-143(look )-143(at )-143(copr)17(ocesses )-143(with )-143(an )-143(example.)-643(The )-143(pr)18(ocess )-143(cr)18(eates )-143(two )-143(pipes: )-143(one )-143(is )-143(the)]TJ T* (standar)Tj 0.3478 Tc 3.32 0 Td (di)Tj 0 Tc 1.25 0 Td [(nput )-98(of )-98(the )-98(copr)18(ocess )-98(and )-98(the )-98(other )-98(is )-98(the )-98(standar)]TJ 0.3477 Tc 22.622 0 Td (do)Tj 0 Tc 1.505 0 Td [(utput )-98(of )-98(the )-98(copr)19(ocess.)]TJ -28.697 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.16 shows this arrangement.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46931 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (690)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (ONLCR)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_oflag)Tj /T1_1 1 Tf 0.3775 Tc (,X)Tj 0 Tc 5.827 0 Td [(SI, )-127(Fr)18(eeBSD, )-128(Linux, )-128(Mac )-128(OS )-128(X, )-128(Solaris\))-628(If )-128(set, )-128(map )-128(NL )-128(to)]TJ -5.827 -1.2 Td (CR)Tj 1.377 0.09 Td (-)Tj 0.333 -0.09 Td (NL on output.)Tj /TT0 1 Tf -8.593 -1.6 Td (ONLRET)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_oflag)Tj /T1_1 1 Tf 0.5338 Tc (,X)Tj 0 Tc 5.984 0 Td [(SI, )-284(Fr)18(eeBSD, )-284(Linux, )-284(Solaris\))-784(If )-284(set, )-284(the )-284(NL )-284(character )-284(is)]TJ -5.984 -1.2 Td [(assumed to perform the carriage r)18(eturn function on output.)]TJ /TT0 1 Tf -6.883 -1.6 Td (ONOCR)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_oflag)Tj /T1_1 1 Tf 0.4225 Tc (,X)Tj 0 Tc 5.872 0 Td [(SI, )-172(Fr)18(eeBSD, )-172(Linux, )-172(Solaris\))-672(If )-172(set, )-172(a )-172(CR )-172(is )-172(not )-172(output )-172(at)]TJ -5.872 -1.2 Td (column 0.)Tj /TT0 1 Tf -6.883 -1.6 Td (ONOEOT)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_oflag)Tj /T1_1 1 Tf 0.7055 Tc (,F)Tj -0.018 Tc 6.044 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-455(Mac )-455(OS )-455(X\))-955(If )-455(set, )-455(EOT )-455(\(\366D\) )-455(characters )-455(ar)14(e)]TJ -6.9 -1.2 Td [(discar)18(ded )-211(on )-211(output.)-711(This )-211(may )-211(be )-211(necessary )-211(on )-211(some )-211(terminals )-211(that)]TJ 0 -1.2 TD [(interpr)18(et Contr)18(ol)]TJ 7.483 0.09 Td (-)Tj 0.333 -0.09 Td [(D)-250(as)-250(a)-250(hangup.)]TJ /TT0 1 Tf -14.699 -1.6 Td (OPOST)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_oflag)Tj /T1_1 1 Tf 0.7433 Tc (,P)Tj 0 Tc 6.13 0 Td [(OSIX.1, )-493(Fr)18(eeBSD, )-493(Linux, )-493(Mac )-493(OS )-493(X, )-493(Solaris\))-993(If )-493(set,)]TJ -6.13 -1.2 Td [(implementation-de\336ned )-634(output )-634(pr)19(ocessing )-634(takes )-634(place.)-1134(Refer )-634(to)]TJ T* (Figur)Tj 0.7514 Tc 2.383 0 Td (e1)Tj 0 Tc 1.73 0 Td [(8.6 )-501(for )-501(the )-501(various )-501(implementation-de\336ned )-501(\337ags )-501(for )-501(the)]TJ /TT0 1 Tf -4.113 -1.2 Td (c_oflag)Tj /T1_1 1 Tf 4.45 0 Td (\336eld.)Tj /TT0 1 Tf -11.333 -1.6 Td (OXTABS)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_oflag)Tj /T1_1 1 Tf 0.356 Tc (,F)Tj -0.018 Tc 5.695 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-106(Mac )-106(OS )-106(X\))-606(If )-106(set, )-106(tabs )-106(ar)]TJ 0.3561 Tc 14.412 0 Td (ee)Tj 0 Tc 1.314 0 Td [(xpanded )-106(to )-106(spaces )-106(on)]TJ -22.277 -1.2 Td [(output. )-263(This)-264(pr)18(oduces )-13(the )-13(same )-13(ef)17(fect )-13(as )-13(setting )-13(the )-13(horizontal )-13(tab )-13(delay)]TJ -0 -1.2 Td (\()Tj /TT0 1 Tf (TABDLY)Tj /T1_1 1 Tf 0.25 Tc (\)t)Tj 0 Tc 4.842 0 Td (o)Tj /TT0 1 Tf 0.796 0 Td (XTABS)Tj /T1_1 1 Tf 3.25 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (TAB3)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf -16.962 -1.6 Td (PARENB)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_1 1 Tf 0.402 Tc (,P)Tj 0 Tc 5.789 0 Td [(OSIX.1, )-152(Fr)18(eeBSD, )-152(Linux, )-152(Mac )-152(OS )-152(X, )-152(Solaris\))-652(If )-152(set, )-152(parity)]TJ -5.789 -1.2 Td [(generation )-210(is )-210(enabled )-210(for )-210(outgoing )-210(characters, )-210(and )-210(parity )-210(checking )-210(is)]TJ T* [(performed )-101(on )-101(incoming )-101(characters.)-601(The )-101(parity )-101(is )-101(odd )-101(if)]TJ /TT0 1 Tf 25.621 0 Td (PARODD)Tj /T1_1 1 Tf 3.951 0 Td [(is )-101(set;)]TJ -29.572 -1.2 Td [(otherwise, )-316(it )-316(is )-316(even )-316(parity)]TJ 0.8163 Tc 12.866 0 Td (.S)Tj 0 Tc 1.591 0 Td [(ee )-316(also )-316(the )-316(discussion )-316(of )-316(the)]TJ /TT0 1 Tf 14.41 0 Td (INPCK)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -28.867 -1.2 Td (IGNPAR)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 4.6 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (PARMRK)Tj /T1_1 1 Tf 3.85 0 Td (\337ags.)Tj /TT0 1 Tf -16.776 -1.72 Td (PAREXT)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_1 1 Tf 0.4184 Tc (,S)Tj 0 Tc 5.726 0 Td [(olaris\) )-418(Select)-419(mark )-168(or )-168(space )-168(parity)]TJ 0.6685 Tc 15.947 0 Td (.I)Tj 0 Tc 1.256 0 Td (f)Tj /TT0 1 Tf 0.751 0 Td (PARODD)Tj /T1_1 1 Tf 4.019 0 Td [(is )-168(set, )-168(the)]TJ -27.699 -1.2 Td [(parity )-11(bit )-11(is )-11(always )-11(1 )-11(\(mark )-11(parity\).)-511(Otherwise, )-11(the )-11(parity )-11(bit )-11(is )-11(always )-11(0)]TJ T* (\(space parity\).)Tj /TT0 1 Tf -6.883 -1.72 Td (PARMRK)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_iflag)Tj /T1_1 1 Tf 0.3273 Tc (,P)Tj 0 Tc 5.714 0 Td [(OSIX.1, )-77(Fr)18(eeBSD, )-77(Linux, )-77(Mac )-77(OS )-77(X, )-77(Solaris\))-577(When )-77(set )-77(and)]TJ -5.714 -1.2 Td (if)Tj /TT0 1 Tf 0.959 0 Td (IGNPAR)Tj /T1_1 1 Tf 3.935 0 Td [(is )-85(not )-85(set, )-85(a )-85(byte )-85(with )-85(a )-85(framing )-85(err)19(or )-85(\(other )-85(than )-85(a )-85(BREAK\))]TJ -4.894 -1.2 Td [(or )-32(a )-32(byte )-32(with )-32(a )-32(parity )-32(err)18(or )-32(is )-32(r)21(ead )-32(by )-32(the )-32(pr)18(ocess )-32(as )-32(the )-32(thr)20(ee-character)]TJ T* (sequence)Tj /TT0 1 Tf 4.359 0 Td (\\377)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.959 0 Td (\\0)Tj /T1_1 1 Tf (,)Tj /T1_2 1 Tf 1.759 0 Td (X)Tj /T1_1 1 Tf 0.3093 Tc (,w)Tj 0 Tc 2.115 0 Td [(her)18(e)]TJ /T1_2 1 Tf 2.226 0 Td (X)Tj /T1_1 1 Tf 1.031 0 Td [(is )-59(the )-59(byte )-59(r)18(eceived )-59(in )-59(err)17(or)]TJ 0.5592 Tc 12.278 0 Td (.I)Tj 0 Tc 1.146 0 Td (f)Tj /TT0 1 Tf 0.642 0 Td (ISTRIP)Tj /T1_1 1 Tf -28.517 -1.2 Td [(is )-240(not )-240(set, )-240(a )-240(valid)]TJ /TT0 1 Tf 8.856 0 Td (\\377)Tj /T1_1 1 Tf 2.89 0 Td [(is )-240(passed )-240(to )-240(the )-240(pr)18(ocess )-240(as)]TJ /TT0 1 Tf 13.172 0 Td (\\377)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.14 0 Td (\\377)Tj /T1_1 1 Tf 0.74 Tc (.I)Tj 0 Tc 3.727 0 Td (f)Tj -31.784 -1.2 Td (neither)Tj /TT0 1 Tf 3.528 0 Td (IGNPAR)Tj /T1_1 1 Tf 3.994 0 Td (nor)Tj /TT0 1 Tf 1.917 0 Td (PARMRK)Tj /T1_1 1 Tf 3.994 0 Td [(is )-144(set, )-144(a )-144(byte )-144(with )-144(a )-144(framing )-144(err)18(or )-144(\(other)]TJ -13.433 -1.2 Td [(than a BREAK\) or with a parity err)18(or is r)18(ead as a single character)]TJ /TT0 1 Tf 28.846 0 Td (\\0)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf -35.729 -1.72 Td (PARODD)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_1 1 Tf 0.5302 Tc (,P)Tj 0 Tc 5.917 0 Td [(OSIX.1, )-280(Fr)18(eeBSD, )-280(Linux, )-280(Mac )-280(OS )-280(X, )-280(Solaris\))-780(If )-280(set, )-280(the)]TJ -5.917 -1.2 Td [(parity )-130(for )-130(outgoing )-130(and )-130(incoming )-130(characters )-130(is )-130(odd )-130(parity)]TJ 0.6304 Tc 26.391 0 Td (.O)Tj 0 Tc 1.666 0 Td (therwise,)Tj -28.057 -1.2 Td [(the )-358(parity )-358(is )-358(even )-358(parity)]TJ 0.8584 Tc 11.868 0 Td (.N)Tj 0 Tc 1.939 0 Td [(ote )-358(that )-358(the)]TJ /TT0 1 Tf 6.298 0 Td (PARENB)Tj /T1_1 1 Tf 4.209 0 Td [(\337ag )-358(contr)18(ols )-358(the)]TJ -24.313 -1.2 Td [(generation and detection of parity)111(.)]TJ 0 -1.56 TD (The)Tj /TT0 1 Tf 2.127 0 Td (PARODD)Tj /T1_1 1 Tf 4.053 0 Td [(\337ag )-203(also )-203(contr)18(ols )-203(whether )-203(mark )-203(or )-203(space )-203(parity )-203(is )-203(used)]TJ -6.18 -1.2 Td (when either the)Tj /TT0 1 Tf 7.166 0 Td (CMSPAR)Tj /T1_1 1 Tf 3.85 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (PAREXT)Tj /T1_1 1 Tf 3.85 0 Td (\337ag is set.)Tj /TT0 1 Tf -22.94 -1.72 Td (PENDIN)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_1 1 Tf 0.2772 Tc (,F)Tj -0.018 Tc 5.616 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-27(Linux, )-27(Mac )-27(OS )-27(X, )-27(Solaris\))-528(If )-27(set, )-27(any )-27(input )-27(that )-27(has)]TJ -6.472 -1.2 Td [(not )-218(been )-218(r)18(ead )-218(is )-218(r)18(eprinted )-218(by )-218(the )-218(system )-218(when )-218(the )-218(next )-218(character )-218(is)]TJ 0 -1.2 TD [(input. )-618(This)-619(action )-368(is )-368(similar )-368(to )-368(what )-368(happens )-368(when )-368(we )-368(type )-368(the)]TJ T* [(REPRINT character)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46932 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (560)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Since )-9(these )-9(forms )-9(of )-9(IPC )-9(don\325t )-9(use )-9(\336le )-9(descriptors, )-9(we )-9(can\325t )-9(use )-9(the )-9(multiplexed )-9(I/O)]TJ -1.8 -1.2 Td [(functions )-34(\()]TJ /TT0 1 Tf (select)Tj /T1_1 1 Tf 8.631 0 Td (and)Tj /TT0 1 Tf 1.977 0 Td (poll)Tj /T1_1 1 Tf 0.2836 Tc (\)w)Tj 0 Tc 3.851 0 Td [(ith )-34(them.)-533(This )-34(makes )-34(it )-34(har)18(der )-34(to )-34(use )-34(mor)]TJ 0.2837 Tc 18.735 0 Td (et)Tj 0 Tc 1.089 0 Td [(han )-34(one )-34(of)]TJ -34.283 -1.2 Td [(these )-101(IPC )-101(str)7(uctur)18(es )-101(at )-101(a )-101(time )-101(or )-101(to )-101(use )-101(any )-101(of )-101(these )-101(IPC )-101(str)3(uctur)18(es )-101(with )-101(\336le )-101(or )-101(device)]TJ 0 -1.2 Td [(I/O. )-269(For)-270(example, )-19(we )-19(can\325t )-19(have )-19(a )-19(server )-19(wait )-19(for )-19(a )-19(message )-19(to )-19(be )-19(placed )-19(on )-19(one )-19(of )-19(two)]TJ 0 -1.2 TD (message queues without some form of busy\320wait loop.)Tj 1.8 -1.2 Td [(An )-81(overview )-81(of )-81(a )-81(transaction )-81(pr)18(ocessing )-81(system )-81(built )-81(using )-81(System )-81(V )-81(IPC )-81(is )-81(given)]TJ -1.8 -1.2 Td [(in )-294(Andrade, )-294(Car)18(ges, )-294(and )-294(Kovach)]TJ 16.149 0.04 Td ([)Tj 0.333 -0.04 Td (1989)Tj 2 0.04 Td (])Tj 0.7938 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.657 0 Td [(hey )-294(claim )-294(that )-294(the )-294(namespace )-294(used )-294(by)]TJ -20.472 -1.2 Td [(System )-17(V )-17(IPC )-17(\(the )-17(identi\336ers\) )-17(is )-17(an )-17(advantage, )-17(not )-17(a )-17(pr)22(oblem )-16(as )-16(we )-16(said )-16(earlier)]TJ 0.2665 Tc 35.002 0 Td (,b)Tj 0 Tc 1.069 0 Td (ecause)Tj -36.071 -1.2 Td [(using )-95(identi\336ers )-95(allows )-95(a )-95(pr)20(ocess )-95(to )-95(send )-95(a )-95(message )-95(to )-95(a )-95(message )-95(queue )-95(with )-95(a )-95(single)]TJ T* [(function )-79(call )-79(\()]TJ /TT0 1 Tf (msgsnd)Tj /T1_1 1 Tf [(\), )-79(wher)18(eas )-79(other )-79(forms )-79(of )-79(IPC )-79(normally )-79(r)19(equir)]TJ 0.3288 Tc 30.552 0 Td (ea)Tj 0 Tc 1.308 0 Td (n)Tj /TT0 1 Tf 0.911 0 Td (open)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.979 0 Td (write)Tj /T1_1 1 Tf (,)Tj -35.75 -1.2 Td (and)Tj /TT0 1 Tf 2.102 0 Td (close)Tj /T1_1 1 Tf 0.6586 Tc (.T)Tj 0 Tc 4.522 0 Td [(his )-159(ar)18(gument )-159(is )-159(false.)-657(Clients )-159(still )-159(have )-159(to )-159(obtain )-159(the )-159(identi\336er )-159(for )-159(the)]TJ -6.623 -1.2 Td [(server )176(\325s)-491(queue )-241(somehow)92(,)-491(to)-491(a)-1(void )-241(using )-241(a )-241(key )-241(and )-241(calling)]TJ /TT0 1 Tf 28.184 0 Td (msgget)Tj /T1_1 1 Tf 0.7415 Tc (.T)Tj 0 Tc 5.204 0 Td [(he )-241(identi\336er)]TJ -33.389 -1.2 Td [(assigned )-24(to )-24(a )-24(particular )-24(queue )-24(depends )-24(on )-24(how )-24(many )-24(other )-24(message )-24(queues )-24(exist )-24(when)]TJ T* [(the )-111(queue )-111(is )-111(cr)17(eated )-111(and )-111(how )-111(many )-111(times )-111(the )-111(table )-111(in )-111(the )-111(kernel )-111(assigned )-111(to )-111(the )-111(new)]TJ T* [(queue )-96(has )-96(been )-96(used )-96(since )-96(the )-96(kernel )-96(was )-96(bootstrapped.)-596(This )-96(is )-96(a )-96(dynamic )-96(value )-96(that)]TJ T* [(can\325t )-52(be )-52(guessed )-52(or )-52(stor)16(ed )-52(in )-52(a )-52(header)]TJ 0.5523 Tc 16.903 0 Td (.A)Tj 0 Tc 1.58 0 Td [(s)-302(we)-302(m)-1(entioned )-52(in )-52(Section )-52(15.6.1, )-52(minimally )-52(a)]TJ -18.484 -1.2 Td [(server has to write the assigned queue identi\336er to a \336le for its \ clients to r)18(ead.)]TJ 1.8 -1.2 Td [(Other )-301(advantages )-301(listed )-301(by )-301(these )-301(authors )-301(for )-301(message )-301(queues )-301(ar)]TJ 0.5508 Tc 30.808 0 Td (et)Tj 0 Tc 1.356 0 Td [(hat )-301(they\325r)18(e)]TJ -0.018 Tc -33.964 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(liable, )-116(\337ow )-116(contr)18(olled, )-116(and )-116(r)18(ecor)]TJ 0.366 Tc 14.766 0 Td (do)Tj 0 Tc 1.523 0 Td [(riented, )-116(and )-116(that )-116(they )-116(can )-116(be )-116(pr)18(ocessed )-116(in )-116(other)]TJ -17.145 -1.2 Td [(than )-14(\336rst-in, )-14(\336rst-out )-14(or)18(der)]TJ 0.5141 Tc 11.88 0 Td (.F)Tj 0 Tc 1.32 0 Td (igur)Tj 0.2641 Tc 1.827 0 Td (e1)Tj 0 Tc 1.243 0 Td [(5.25 )-14(compar)18(es )-14(some )-14(of )-14(the )-14(featur)18(es )-14(of )-14(these )-14(various)]TJ -16.27 -1.2 Td (forms of IPC.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1348.25 4102.25 cm 0 0 m 3795 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 458.7409 402.1517 Tm (Message types)Tj 0.385 -1.25 Td (or priorities?)Tj -35.398 0.625 Td (IPC type)Tj 9.842 0 Td [(Connectionless?)-1000(Reliable?)-1000(Flow contr)18(ol?)-1000(Recor)18(ds?)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1348.25 3882.25 cm 0 0 m 3795 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1348.25 3862.25 cm 0 0 m 3795 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 138.827 378.1319 Tm (message queues)Tj 17.832 0 Td (no )Tj 6.407 0 Td [(yes)-4555(yes )-4304(yes)-4759(yes)]TJ -24.24 -1.25 Td (STREAMS )Tj 17.832 0 Td (no)Tj 6.407 0 Td [(yes )-4305(yes)-4554(yes )-4509(yes)]TJ -24.24 -1.25 Td [(UNIX domain str)18(eam socket)]TJ 17.832 0 Td (no )Tj 6.407 0 Td [(yes)-4555(yes )-4469(no)]TJ 18.412 0 Td (no)Tj -42.651 -1.25 Td [(UNIX domain datagram socket)-3845(yes )-4863(yes)-4721(no )-4469(yes)-4925(no)]TJ 0 -1.25 TD (FIFOs \(non-STREAMS\))Tj 17.832 0 Td (no )Tj 6.407 0 Td [(yes)-4555(yes )-4469(no)]TJ 18.412 0 Td (no)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1348.25 3342.25 cm 0 0 m 3795 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4548.25 3342.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4148.25 3342.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3586.25 3342.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3186.25 3342.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2534.25 3342.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5143.25 3342.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1348.25 3342.25 cm 0 0 m 0 760 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 216.0082 316.1241 Tm (Figure 15.25)Tj /T1_1 1 Tf 6.195 0 Td [(Comparison of featur)18(es of various forms of IPC)]TJ 9.9976 0 0 9.9976 129.5691 288.5307 Tm (\(W)Tj 0.3665 Tc 1.241 0 Td (ed)Tj 0 Tc 1.456 0 Td [(escribe )-116(str)18(eam )-116(and )-116(datagram )-116(sockets )-116(in )-116(Chapter )-116(16.)]TJ -0.092 Tc 24.114 0 Td [(We )-301(d)]TJ 0 Tc 2.364 0 Td [(escribe )-116(UNIX )-116(domain)]TJ -29.176 -1.2 Td [(sockets )-142(in )-142(Section )-142(17.2.\))-642(By )-142(\324)39(\324connectionless,\325)37(\325)-392(we)-392(m)1(ean )-142(the )-142(ability )-142(to )-142(send )-142(a )-142(message)]TJ 0 -1.2 TD [(without )-16(having )-16(to )-16(call )-16(some )-16(form )-16(of )-16(an )-16(open )-16(function )-16(\336rst.)-520(As )-16(described )-16(pr)17(eviously)]TJ 0.2663 Tc 37.171 0 Td (,w)Tj 0 Tc 1.35 0 Td (e)Tj -38.521 -1.2 Td [(don\325t )-254(consider )-254(message )-254(queues )-254(connectionless, )-254(since )-254(some )-254(technique )-254(is )-254(r)18(equir)18(ed )-254(to)]TJ T* [(obtain )-91(the )-91(identi\336er )-91(for )-91(a )-91(queue.)-590(Since )-91(all )-91(these )-91(forms )-91(of )-91(IPC )-91(ar)]TJ 0.3407 Tc 29.011 0 Td (er)Tj 0 Tc 1.197 0 Td [(estricted )-91(to )-91(a )-91(single)]TJ -30.208 -1.2 Td [(host, )-126(all )-126(ar)]TJ 0.376 Tc 4.839 0 Td (er)Tj 0 Tc 1.232 0 Td [(eliable. )-376(When)-376(the )-126(messages )-126(ar)]TJ 0.376 Tc 13.964 0 Td (es)Tj 0 Tc 1.279 0 Td [(ent )-126(acr)18(oss )-126(a )-126(network, )-126(the )-126(possibility )-126(of)]TJ -21.314 -1.2 Td [(messages )-39(being )-39(lost )-39(becomes )-39(a )-39(concern.)]TJ -0.037 Tc 18.233 0 Td (\324\324)Tj 0 Tc 0.519 0 Td [(Flow )-39(contr)18(ol\325)]TJ 0.2893 Tc 5.869 0 Td (\325m)Tj 0 Tc 1.45 0 Td [(eans )-39(that )-39(the )-39(sender )-39(is )-39(put )-39(to)]TJ -26.071 -1.2 Td [(sleep )-121(if )-121(ther)19(e)-371(is)-371(a)-371(s)1(hortage )-121(of )-121(system )-121(r)19(esour)18(ces )-121(\(buf)18(fers\) )-121(or )-121(if )-121(the )-121(r)18(eceiver )-121(can\325t )-121(accept)]TJ -0 -1.2 Td [(any )-28(mor)]TJ 0.2777 Tc 3.722 0 Td (em)Tj 0 Tc 1.64 0 Td [(essages. )-278(When)-277(the )-28(\337ow )-28(contr)18(ol )-28(condition )-28(subsides )-28(\(i.e., )-28(when )-28(ther)]TJ 0.2777 Tc 29.537 0 Td (ei)Tj 0.2776 Tc 1.048 0 Td (sr)Tj 0 Tc 1.079 0 Td (oom)Tj -37.025 -1.2 Td (in the queue\), the sender should automatically be awakened.)Tj 1.8 -1.2 Td [(One )-215(featur)]TJ 0.4648 Tc 4.93 0 Td (et)Tj 0 Tc 1.27 0 Td [(hat )-215(we )-215(don\325t )-215(show )-215(in )-215(Figur)]TJ 0.4649 Tc 13.03 0 Td (e1)Tj 0 Tc 1.444 0 Td [(5.25 )-215(is )-215(whether )-215(the )-215(IPC )-215(facility )-215(can)]TJ -22.474 -1.2 Td [(automatically )-296(cr)18(eate )-296(a )-296(unique )-296(connection )-296(to )-296(a )-296(server )-296(for )-296(each )-296(client.)]TJ -0.092 Tc 33.407 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-296(see )-296(in)]TJ -34.794 -1.2 Td [(Chapter )-142(17 )-142(that )-142(UNIX )-142(str)18(eam )-142(sockets )-142(pr)18(ovide )-142(this )-142(capability)]TJ 0.6419 Tc 27.596 0 Td (.T)Tj 0 Tc 1.505 0 Td [(he )-142(next )-142(thr)18(ee )-142(sections)]TJ -29.101 -1.2 Td [(describe each of the thr)18(ee forms of XSI IPC in detail.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46933 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (910)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 155.6107 668.9599 Tm (tempfile)Tj /T1_1 1 Tf 0.6515 Tc (.W)Tj 0.4015 Tc 6.609 0 Td (eh)Tj 0 Tc 1.462 0 Td [(ave )-151(to )-151(use )-151(the)]TJ /TT0 1 Tf 6.915 0 Td (df)Tj /T1_1 1 Tf 1.601 0 Td [(command )-151(in )-151(this )-151(example )-151(to )-151(see )-151(the )-151(actual)]TJ -16.588 -1.2 Td [(amount of fr)18(ee space on the \336le system.)]TJ /T1_0 1 Tf -2.602 -1.84 Td (4.9)Tj /T1_1 1 Tf 2.602 0 Td [(If )-40(the )-40(link )-40(being )-40(r)18(emoved )-40(is )-40(not )-40(the )-40(last )-40(link )-40(to )-40(the )-40(\336le, )-40(the )-40(\336le )-40(is )-40(not )-40(r)10(emoved. )-290(In)]TJ 0 -1.2 TD [(this )-200(case, )-200(the )-200(changed-status )-200(time )-200(of )-200(the )-200(\336le )-200(is )-200(updated.)-700(But )-200(if )-200(the )-200(link )-200(being)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(moved )-57(is )-57(the )-57(last )-57(link )-57(to )-57(the )-57(\336le, )-57(it )-57(makes )-57(no )-57(sense )-57(to )-57(update )-57(this )-57(time, )-57(because)]TJ -0.856 -1.2 Td [(all the information about the \336le \(the i-node\) is r)18(emoved with the \336le.)]TJ /T1_0 1 Tf -2.602 -1.84 Td (4.10)Tj /T1_1 1 Tf -0.092 Tc 2.602 0 Td [(We )-212(r)]TJ 0 Tc 2.041 0 Td [(ecursively )-27(call )-27(our )-27(function)]TJ /TT0 1 Tf 12.414 0 Td (dopath)Tj /T1_1 1 Tf 3.878 0 Td [(after )-27(opening )-27(a )-27(dir)18(ectory )-27(with)]TJ /TT0 1 Tf 13.615 0 Td (opendir)Tj /T1_1 1 Tf (.)Tj -31.948 -1.2 Td [(Assuming )-3(that)]TJ /TT0 1 Tf 6.78 0 Td (opendir)Tj /T1_1 1 Tf 4.453 0 Td [(uses )-3(a )-3(single )-3(\336le )-3(descriptor)]TJ 0.2527 Tc 11.877 0 Td (,t)Tj 0 Tc 0.829 0 Td [(his )-3(means )-3(that )-3(each )-3(time )-3(we)]TJ -23.939 -1.2 Td [(descend )-6(one )-6(level, )-6(we )-6(use )-6(another )-6(descriptor)]TJ 0.506 Tc 19.795 0 Td (.\()Tj -0.092 Tc 1.089 0 Td [(We )-190(a)]TJ 0 Tc 2.143 0 Td [(ssume )-6(that )-6(the )-6(descriptor )-6(isn\325t)]TJ -23.027 -1.2 Td [(closed )-106(until )-106(we\325r)]TJ 0.3563 Tc 7.569 0 Td (e\336)Tj 0 Tc 1.44 0 Td [(nished )-106(with )-106(a )-106(dir)18(ectory )-106(and )-106(call)]TJ /TT0 1 Tf 14.884 0 Td (closedir)Tj /T1_1 1 Tf [(.\) )-356(This)-357(limits )-106(the)]TJ -23.893 -1.2 Td [(depth )-8(of )-8(the )-8(\336le )-8(system )-8(tr)18(ee )-8(that )-8(we )-8(can )-8(traverse )-8(to )-8(the )-8(maximum )-8(number )-8(of )-8(open)]TJ T* [(descriptors )-131(for )-131(the )-131(pr)19(ocess. )-381(Note)-380(that )-131(the)]TJ /TT0 1 Tf 19.36 0 Td (nftw)Tj /T1_1 1 Tf 2.781 0 Td [(function )-131(as )-131(speci\336ed )-131(in )-131(the )-131(XSI)]TJ -22.141 -1.2 Td [(option )-45(of )-45(the )-45(Single )-45(UNIX )-45(Speci\336cation )-45(allows )-45(the )-45(caller )-45(to )-45(specify )-45(the )-45(number )-45(of)]TJ T* [(descriptors to use, implying that it can close and r)18(euse descriptors.)]TJ /T1_0 1 Tf -2.602 -1.84 Td (4.12)Tj /T1_1 1 Tf 2.602 0 Td (The)Tj /TT0 1 Tf 1.954 0 Td (chroot)Tj /T1_1 1 Tf 3.88 0 Td [(function )-30(is )-30(used )-30(by )-30(the )-30(Internet )-30(File )-30(T)91(ransfer )-30(Pr)18(otocol)]TJ 23.987 0.04 Td (\()Tj 0.333 -0.04 Td (FTP)Tj 1.773 0.04 Td (\))Tj 0.613 -0.04 Td [(pr)18(ogram)]TJ -32.54 -1.2 Td [(to )-122(aid )-122(in )-122(security)]TJ 0.6219 Tc 7.67 0 Td (.U)Tj 0 Tc 1.65 0 Td [(sers )-122(without )-122(accounts )-122(on )-122(a )-122(system )-122(\(termed)]TJ /T1_2 1 Tf 19.928 0 Td [(anonymous )-122(FTP)]TJ /T1_1 1 Tf (\))Tj -29.248 -1.2 Td (ar)Tj 0.3727 Tc 0.877 0 Td (ep)Tj 0 Tc 1.453 0 Td [(laced )-123(in )-123(a )-123(separate )-123(dir)19(ectory)]TJ 0.3728 Tc 12.807 0 Td (,a)Tj 0 Tc 1.123 0 Td [(nd )-123(a)]TJ /TT0 1 Tf 2.439 0 Td (chroot)Tj /T1_1 1 Tf 3.973 0 Td [(is )-123(done )-123(to )-123(that )-123(dir)19(ectory)]TJ 0.6228 Tc 10.944 0 Td (.T)Tj 0 Tc 1.486 0 Td (his)Tj -35.101 -1.2 Td [(pr)18(events the user fr)18(om accessing any \336le outside this new r)18(oot dir)18(ectory)111(.)]TJ 0 -1.8 TD [(In )-122(addition,)]TJ /TT0 1 Tf 5.671 0 Td (chroot)Tj /T1_1 1 Tf 3.972 0 Td [(can )-122(be )-122(used )-122(to )-122(build )-122(a )-122(copy )-122(of )-122(a )-122(\336le )-122(system )-122(hierar)19(chy )-122(at )-122(a)]TJ -9.643 -1.2 Td [(new )-135(location )-135(and )-135(then )-135(modify )-135(this )-135(new )-135(copy )-135(without )-135(changing )-135(the )-135(original )-135(\336le)]TJ 0 -1.2 TD [(system. )-336(This)-337(could )-86(be )-86(used, )-86(for )-86(example, )-86(to )-86(test )-86(the )-86(installation )-86(of )-86(new )-86(softwar)15(e)]TJ -0 -1.2 Td (packages.)Tj 0 -1.8 TD [(Only )-253(the )-253(super)8(user )-253(can )-253(execute)]TJ /TT0 1 Tf 15.367 0 Td (chroot)Tj /T1_1 1 Tf 0.5035 Tc (,a)Tj 0 Tc 4.854 0 Td [(nd )-254(once )-254(you )-254(change )-254(the )-254(r)18(oot )-254(of )-254(a)]TJ -20.22 -1.2 Td [(pr)18(ocess, it \(and all its descendants\) can never get back to the original\ r)18(oot.)]TJ /T1_0 1 Tf -2.602 -1.84 Td (4.13)Tj /T1_1 1 Tf 2.602 0 Td [(First, )-181(call)]TJ /TT0 1 Tf 4.63 0 Td (stat)Tj /T1_1 1 Tf 2.831 0 Td [(to )-181(fetch )-181(the )-181(thr)19(ee )-181(times )-181(for )-181(the )-181(\336le; )-181(then )-181(call)]TJ /TT0 1 Tf 21.157 0 Td (utime)Tj /T1_1 1 Tf 3.431 0 Td [(to )-181(set )-181(the)]TJ -32.048 -1.2 Td [(desir)18(ed )-234(value.)-734(The )-234(value )-234(that )-234(we )-234(don\325t )-234(want )-234(to )-234(change )-234(in )-234(the )-234(call )-234(to)]TJ /TT0 1 Tf 33.397 0 Td (utime)Tj /T1_1 1 Tf -33.398 -1.2 Td [(should be the corr)18(esponding value fr)18(om)]TJ /TT0 1 Tf 17.987 0 Td (stat)Tj /T1_1 1 Tf (.)Tj /T1_0 1 Tf -20.589 -1.84 Td (4.14)Tj /T1_1 1 Tf 2.602 0 Td (The)Tj /TT0 1 Tf 2.015 0 Td (finger)Tj /T1_1 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.674 -0.04 Td [(command )-91(calls)]TJ /TT0 1 Tf 7.081 0 Td (stat)Tj /T1_1 1 Tf 2.741 0 Td [(on )-91(the )-91(mailbox.)-591(The )-91(last-modi\336cation )-91(time)]TJ -16.945 -1.2 Td [(is )-93(the )-93(time )-93(that )-93(mail )-93(was )-93(last )-93(r)15(eceived, )-93(and )-93(the )-93(last-access )-93(time )-93(is )-93(when )-93(the )-93(mail)]TJ 0 -1.2 TD [(was last r)18(ead.)]TJ /T1_0 1 Tf -2.602 -1.84 Td (4.15)Tj /T1_1 1 Tf 2.602 0 Td (Both)Tj /TT0 1 Tf 2.407 0 Td (cpio)Tj /T1_1 1 Tf 2.742 0 Td (and)Tj /TT0 1 Tf 2.035 0 Td (tar)Tj /T1_1 1 Tf 2.142 0 Td (stor)Tj 0.3423 Tc 1.673 0 Td (eo)Tj 0 Tc 1.367 0 Td [(nly )-92(the )-92(modi\336cation )-92(time )-92(\()]TJ /TT0 1 Tf 12.122 0 Td (st_mtime)Tj /T1_1 1 Tf [(\))-342(in)-342(t)-1(he )-92(ar)18(chive.)]TJ -24.49 -1.2 Td [(The )-47(access )-47(time )-47(isn\325t )-47(stor)18(ed, )-47(because )-47(its )-47(value )-47(corr)17(esponds )-47(to )-47(the )-47(time )-47(the )-47(ar)17(chive)]TJ T* [(was )-95(cr)18(eated, )-95(since )-95(the )-95(\336le )-95(has )-95(to )-95(be )-95(r)16(ead )-95(to )-95(be )-95(ar)17(chived. )-345(The)]TJ /TT0 1 Tf 27.998 0 Td (-a)Tj /T1_1 1 Tf 1.545 0 Td [(option )-95(to)]TJ /TT0 1 Tf 4.454 0 Td (cpio)Tj /T1_1 1 Tf -33.998 -1.2 Td [(has )-23(it )-23(r)17(eset )-23(the )-23(access )-23(time )-23(of )-23(each )-23(input )-23(\336le )-23(after )-23(the )-23(\336le )-23(has )-23(been )-23(r)13(ead. )-273(This)-274(way)111(,)]TJ T* [(the )-119(cr)18(eation )-119(of )-119(the )-119(ar)18(chive )-119(doesn\325t )-119(change )-119(the )-119(access )-119(time.)-619(\(Resetting )-119(the )-119(access)]TJ T* [(time, )-150(however)]TJ 0.4001 Tc 6.435 0 Td (,d)Tj 0 Tc 1.261 0 Td [(oes )-150(modify )-150(the )-150(changed-status )-150(time.\))-650(The )-150(changed-status )-150(time)]TJ -7.696 -1.2 Td [(isn\325t )-76(stor)18(ed )-76(in )-76(the )-76(ar)17(chive, )-76(because )-76(we )-76(can\325t )-76(set )-76(this )-76(value )-76(on )-76(extraction )-76(even )-76(if )-76(it)]TJ T* [(was )-181(ar)18(chived. )-431(\(The)]TJ /TT0 1 Tf 9.406 0 Td (utimes)Tj /T1_1 1 Tf 4.031 0 Td [(function )-181(and )-181(its )-181(r)18(elated )-181(functions,)]TJ /TT0 1 Tf 16.038 0 Td (futimens)Tj /T1_1 1 Tf 5.231 0 Td (and)Tj /TT0 1 Tf -34.705 -1.2 Td (utimensat)Tj /T1_1 1 Tf 0.25 Tc (,c)Tj 0 Tc 6.344 0 Td (an change only the access time and the modi\336cation time.\))Tj -6.344 -1.8 Td [(When )-480(the )-480(ar)18(chive )-480(is )-480(r)18(ead )-480(back )-480(\(extracted\),)]TJ /TT0 1 Tf 22.106 0 Td (tar)Tj /T1_1 1 Tf [(,)-730(by)-730(default, )-480(r)18(estor)18(es )-480(the)]TJ -22.106 -1.2 Td [(modi\336cation )-94(time )-94(to )-94(the )-94(value )-94(in )-94(the )-94(ar)17(chive. )-344(The)]TJ /TT0 1 Tf 23.071 0 Td (m)Tj /T1_1 1 Tf 0.944 0 Td [(option )-94(to)]TJ /TT0 1 Tf 4.452 0 Td (tar)Tj /T1_1 1 Tf 2.144 0 Td [(tells )-94(it )-94(to )-94(not)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46934 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (724)Tj /T1_1 1 Tf 3.5 0 Td [(Pseudo )-250(T)92(erminals )]TJ 38.741 0 Td [(Chapter)-500(19)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(On )-99(Fr)18(eeBSD,)]TJ /TT0 1 Tf 6.118 0 Td (grantpt)Tj /T1_1 1 Tf 4.55 0 Td (and)Tj /TT0 1 Tf 2.042 0 Td (unlockpt)Tj /T1_1 1 Tf 5.15 0 Td [(do )-99(nothing )-99(other )-99(than )-99(ar)18(gument )-99(validation; )-99(the )-99(PTYs)]TJ -17.859 -1.25 Td (ar)Tj 0.6699 Tc 0.877 0 Td (ec)Tj -0.018 Tc 1.593 0 Td (re)Tj 0 Tc 0.856 0 Td [(ated )-420(dynamically )-420(with )-420(the )-420(corr)18(ect )-420(permissions.)-919(Note )-420(that )-420(Fr)18(eeBSD )-420(de\336nes )-420(the)]TJ /TT0 1 Tf -3.326 -1.25 Td (O_NOCTTY)Tj /T1_1 1 Tf 5.22 0 Td [(\337ag )-170(only )-170(for )-170(compatibility )-170(with )-170(applications )-170(that )-170(call)]TJ /TT0 1 Tf 24.86 0 Td (posix_openpt)Tj /T1_1 1 Tf 0.6698 Tc (.F)Tj -0.018 Tc 8.676 0 Td (re)Tj 0 Tc 0.856 0 Td (eBSD)Tj -39.611 -1.25 Td [(does )-137(not )-137(allocate )-137(a )-137(contr)18(olling )-137(terminal )-137(as )-137(a )-137(side )-137(ef)18(fect )-137(of )-137(opening )-137(a )-137(terminal )-137(device, )-137(so )-137(the)]TJ /TT0 1 Tf 0 -1.25 TD (O_NOCTTY)Tj /T1_1 1 Tf 5.05 0 Td [(\337ag has no ef)18(fect.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1362.25 6110.25 cm 0 0 m 3768 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 386.9896 602.9276 Tm [(Fr)18(eeBSD )-250(Linux )-250(Mac)-250(OS X)-500(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-1827(3.2.0)-1735(10.6.8 )-2170(10)]TJ -30.493 0.625 Td (Function)Tj 13.3 0 Td (Description)Tj 12.888 0 Td (XSI)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1362.25 5890.25 cm 0 0 m 3768 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1362.25 5870.25 cm 0 0 m 3768 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 140.1868 578.8958 Tm (grantpt)Tj /T1_1 1 Tf 8.7 0 Td (change permissions of slave PTY device)Tj 3.559 Tc 19.585 0 Td (\245\245)Tj 3.3795 Tc 7.867 0 Td [(\245\245 )3445(\245)]TJ /TT0 1 Tf 0 Tc -36.153 -1.25 Td (posix_openpt)Tj /T1_1 1 Tf 8.7 0 Td (open a master PTY device)Tj 3.559 Tc 19.585 0 Td (\245\245)Tj 3.3795 Tc 7.867 0 Td [(\245\245 )3445(\245)]TJ /TT0 1 Tf 0 Tc -36.153 -1.25 Td (ptsname)Tj /T1_1 1 Tf -0.018 Tc 8.7 0 Td (re)Tj 0 Tc 0.856 0 Td (turn name of slave PTY device)Tj 3.559 Tc 18.729 0 Td (\245\245)Tj 3.3795 Tc 7.867 0 Td [(\245\245 )3445(\245)]TJ /TT0 1 Tf 0 Tc -36.153 -1.25 Td (unlockpt)Tj /T1_1 1 Tf 8.7 0 Td (allow slave PTY device to be opened)Tj 3.559 Tc 19.585 0 Td (\245\245)Tj 3.3795 Tc 7.867 0 Td [(\245\245 )3445(\245)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1362.25 5450.25 cm 0 0 m 3768 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3810.25 5450.25 cm 0 0 m 0 660 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3568.25 5450.25 cm 0 0 m 0 660 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2038.25 5450.25 cm 0 0 m 0 660 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5130.25 5450.25 cm 0 0 m 0 660 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1362.25 5450.25 cm 0 0 m 0 660 l S Q Q BT /T1_0 1 Tf 0 Tc 7.9981 0 0 7.9981 248.0765 526.8735 Tm (Figure 19.8)Tj /T1_1 1 Tf 5.695 0 Td (XSI pseudo terminal functions)Tj 9.9976 0 0 9.9976 147.5648 500.4799 Tm [(The )-34(Single )-34(UNIX )-34(Speci\336cation )-34(has )-34(impr)18(oved )-34(portability )-34(in )-34(this )-34(ar)20(ea, )-34(but )-34(dif)18(fer)18(ences)]TJ -0.018 Tc -1.8 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(main. )-339(W)]TJ 0.339 Tc 4.003 0 Td (ep)Tj -0.018 Tc 1.419 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vide )-89(two )-89(functions )-89(that )-89(handle )-89(all )-89(the )-89(details:)]TJ /TT0 1 Tf 20.915 0 Td (ptym_open)Tj /T1_1 1 Tf 5.739 0 Td [(to )-89(open )-89(the)]TJ -33.855 -1.2 Td [(next )-215(available )-215(PTY )-215(master )-215(device )-215(and)]TJ /TT0 1 Tf 18.115 0 Td (ptys_open)Tj /T1_1 1 Tf 5.865 0 Td [(to )-215(open )-215(the )-215(corr)18(esponding )-215(slave)]TJ -23.98 -1.2 Td (device.)Tj /TT0 1 Tf 8.9978 0 0 8.9978 147.5644 447.7925 Tm (#include "apue.h")Tj 0 -1.902 TD (int ptym_open\(char *)Tj /T1_2 1 Tf (pts_name)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 17.689 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (pts_namesz)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -4.795 -1.902 Td (Returns: \336le descriptor of PTY master if OK,)Tj /TT1 1 Tf 19.77 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -34.464 -1.902 Td (int ptys_open\(char *)Tj /T1_2 1 Tf (pts_name)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 15.442 -1.902 Td (Returns: \336le descriptor of PTY slave if OK,)Tj /TT1 1 Tf 19.022 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3749.25 cm 0 0 m 0 820 l 3900 820 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.997 0 0 9.997 129.5611 361.3116 Tm [(Normally)111(,)-389(we)-389(don\325t )-139(call )-139(these )-139(two )-139(functions )-139(dir)18(ectly; )-139(instead, )-139(the )-139(function)]TJ /TT0 1 Tf 34.2 0 Td (pty_fork)Tj /T1_1 1 Tf -34.2 -1.2 Td (\(Section 19.4\) calls them and also)Tj /TT0 1 Tf 14.783 0 Td (fork)Tj /T1_1 1 Tf 0.25 Tc (sac)Tj 0 Tc 4.268 0 Td [(hild pr)18(ocess.)]TJ -17.251 -1.2 Td (The)Tj /TT0 1 Tf 2.119 0 Td (ptym_open)Tj /T1_1 1 Tf 5.845 0 Td [(function )-195(opens )-195(the )-195(next )-195(available )-195(PTY )-195(master)]TJ 0.6955 Tc 21.088 0 Td (.T)Tj 0 Tc 1.559 0 Td [(he )-195(caller )-195(must)]TJ -32.412 -1.2 Td [(allocate )-156(an )-156(array )-156(to )-156(hold )-156(the )-156(name )-156(of )-156(the )-156(slave; )-156(if )-156(the )-156(call )-156(succeeds, )-156(the )-156(name )-156(of )-156(the)]TJ 0 -1.2 TD [(corr)18(esponding )-371(slave )-371(is )-371(r)18(eturned )-371(thr)18(ough)]TJ /T1_2 1 Tf 19.936 0 Td (pts_name)Tj /T1_1 1 Tf 0.8709 Tc (.T)Tj 0 Tc 5.623 0 Td [(his )-371(name )-371(is )-371(then )-371(passed )-371(to)]TJ /TT0 1 Tf -25.559 -1.2 Td (ptys_open)Tj /T1_1 1 Tf 0.3265 Tc (,w)Tj 0 Tc 6.811 0 Td [(hich )-76(opens )-76(the )-76(slave )-76(device.)-576(The )-76(length )-76(of )-76(the )-76(buf)18(fer )-76(in )-76(bytes )-76(is )-76(passed)]TJ -6.811 -1.2 Td (in)Tj /T1_2 1 Tf 1.191 0 Td (pts_namesz)Tj /T1_1 1 Tf 5.04 0 Td [(so )-68(that )-68(the)]TJ /TT0 1 Tf 5.045 0 Td (ptym_open)Tj /T1_1 1 Tf 5.718 0 Td [(function )-68(doesn\325t )-68(copy )-68(a )-68(string )-68(that )-68(is )-68(longer )-68(than)]TJ -16.994 -1.2 Td [(the buf)18(fer)74(.)]TJ 1.8 -1.2 Td [(The )-294(r)18(eason )-294(for )-294(pr)18(oviding )-294(two )-294(functions )-294(to )-294(open )-294(the )-294(two )-294(devices )-294(will )-294(become)]TJ -1.8 -1.2 Td [(obvious )-52(when )-52(we )-52(show )-52(the)]TJ /TT0 1 Tf 12.602 0 Td (pty_fork)Tj /T1_1 1 Tf 5.102 0 Td [(function. )-302(Normally)]TJ 0.3023 Tc 8.691 0 Td (,ap)Tj -0.018 Tc 1.956 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-52(calls)]TJ /TT0 1 Tf 4.326 0 Td (ptym_open)Tj /T1_1 1 Tf -33.6 -1.2 Td [(to )-68(open )-68(the )-68(master )-68(and )-68(obtain )-68(the )-68(name )-68(of )-68(the )-68(slave.)-568(The )-68(pr)18(ocess )-68(then)]TJ /TT0 1 Tf 32.211 0 Td (fork)Tj /T1_1 1 Tf [(s, )-68(and )-68(the)]TJ -32.211 -1.2 Td [(child )-4(calls)]TJ /TT0 1 Tf 4.677 0 Td (ptys_open)Tj /T1_1 1 Tf 5.654 0 Td [(to )-4(open )-4(the )-4(slave )-4(after )-4(calling)]TJ /TT0 1 Tf 13.24 0 Td (setsid)Tj /T1_1 1 Tf 3.854 0 Td [(to )-4(establish )-4(a )-4(new )-4(session.)]TJ -27.426 -1.2 Td [(This is how the slave becomes the contr)18(olling terminal for the child.)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2102.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9968 0 0 8.9968 129.5534 200.6468 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj T* (#if defined\(SOLARIS\))Tj T* (#include )Tj 0 -1.189 TD (#endif)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46935 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.5)]TJ -0.092 Tc 33.432 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(Option )-250(Flags)]TJ /T1_1 1 Tf 11.401 0 Td (689)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (IUTF8)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_iflag)Tj /T1_0 1 Tf 0.3021 Tc (,L)Tj 0 Tc 5.696 0 Td [(inux, )-52(Mac )-52(OS )-52(X\))-552(Allow )-52(character )-52(erase )-52(pr)18(ocessing )-52(to )-52(work)]TJ -5.696 -1.2 Td (with UTF)Tj 4.23 0.09 Td (-)Tj 0.25 Tc 0.333 -0.09 Td (8m)Tj 0 Tc 1.633 0 Td (ultibyte characters.)Tj /TT0 1 Tf -13.079 -1.72 Td (IXANY)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_iflag)Tj /T1_0 1 Tf 0.4648 Tc (,P)Tj 0 Tc 5.852 0 Td [(OSIX.1, )-215(Fr)18(eeBSD, )-215(Linux, )-215(Mac )-215(OS )-215(X, )-215(Solaris\))-715(Enable )-215(any)]TJ -5.852 -1.2 Td [(characters to r)18(estart output.)]TJ /TT0 1 Tf -6.883 -1.72 Td (IXOFF)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_iflag)Tj /T1_0 1 Tf 0.7433 Tc (,P)Tj 0 Tc 6.13 0 Td [(OSIX.1, )-493(Fr)18(eeBSD, )-493(Linux, )-493(Mac )-493(OS )-493(X, )-493(Solaris\))-993(If )-493(set,)]TJ -6.13 -1.2 Td [(start\320stop )-16(input )-16(contr)18(ol )-16(is )-16(enabled.)-516(When )-16(it )-16(notices )-16(that )-16(the )-16(input )-16(queue)]TJ 0 -1.2 TD [(is )-331(getting )-331(full, )-331(the )-331(terminal )-331(driver )-331(outputs )-331(a )-331(ST)18(OP )-331(character)]TJ 0.8308 Tc 29.126 0 Td (.T)Tj 0 Tc 1.694 0 Td (his)Tj -30.82 -1.2 Td [(character )-153(should )-153(be )-153(r)18(ecognized )-153(by )-153(the )-153(device )-153(that )-153(is )-153(sending )-153(the )-153(data)]TJ T* [(and )-141(cause )-141(the )-141(device )-141(to )-141(stop.)-640(Later)]TJ 0.3909 Tc 16.25 0 Td (,w)Tj 0 Tc 1.475 0 Td [(hen )-141(the )-141(characters )-141(on )-141(the )-141(input)]TJ -17.725 -1.2 Td [(queue )-187(have )-187(been )-187(pr)18(ocessed, )-187(the )-187(terminal )-187(driver )-187(will )-187(output )-187(a )-187(ST)73(AR)37(T)]TJ T* (character)Tj 0.5 Tc 3.991 0 Td (.T)Tj 0 Tc 1.363 0 Td [(his should cause the device to r)18(esume sending data.)]TJ /TT0 1 Tf -12.237 -1.72 Td (IXON)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_iflag)Tj /T1_0 1 Tf 0.7433 Tc (,P)Tj 0 Tc 6.13 0 Td [(OSIX.1, )-493(Fr)18(eeBSD, )-493(Linux, )-493(Mac )-493(OS )-493(X, )-493(Solaris\))-993(If )-493(set,)]TJ -6.13 -1.2 Td [(start\320stop )-69(output )-69(contr)18(ol )-69(is )-69(enabled.)-569(When )-69(the )-69(terminal )-69(driver )-69(r)18(eceives)]TJ 0.3784 Tc T* (aS)Tj -0.018 Tc 1.403 0 Td (TO)Tj 0.3784 Tc 1.381 0 Td (Pc)Tj 0 Tc 1.426 0 Td (haracter)Tj 0.3784 Tc 3.547 0 Td (,o)Tj 0 Tc 1.174 0 Td [(utput )-128(stops.)-629(While )-128(the )-128(output )-128(is )-128(stopped, )-128(the )-128(next)]TJ -8.932 -1.2 Td [(ST)74(AR)]TJ 0.3605 Tc 2.473 0 Td (Tc)Tj 0 Tc 1.417 0 Td [(haracter )-110(r)18(esumes )-111(the )-111(output.)-611(If )-111(this )-111(\337ag )-111(is )-111(not )-111(set, )-111(the )-111(ST)78(AR)37(T)]TJ -3.89 -1.2 Td [(and ST)18(OP characters ar)]TJ 0.25 Tc 10.319 0 Td (er)Tj 0 Tc 1.106 0 Td [(ead by the pr)18(ocess as normal characters.)]TJ /TT0 1 Tf -18.308 -1.6 Td (MDMBUF)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_0 1 Tf 0.3878 Tc (,F)Tj -0.018 Tc 5.727 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-138(Mac )-138(OS )-138(X\))-638(Flow )-138(contr)18(ol )-138(the )-138(output )-138(accor)18(ding )-138(to)]TJ -6.583 -1.2 Td [(the modem carrier \337ag.)-500(This is the old name for the)]TJ /TT0 1 Tf 23.167 0 Td (CCAR_OFLOW)Tj /T1_0 1 Tf 6.25 0 Td (\337ag.)Tj /TT0 1 Tf -36.3 -1.6 Td (NLDLY)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_oflag)Tj /T1_0 1 Tf 0.2863 Tc (,X)Tj 0 Tc 5.736 0 Td [(SI, )-36(Linux, )-36(Solaris\))-536(Newline )-36(delay )-36(mask.)-536(The )-36(values )-36(for )-36(the)]TJ -5.736 -1.2 Td [(mask ar)18(e)]TJ /TT0 1 Tf 4.219 0 Td (NL0)Tj /T1_0 1 Tf 2.05 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (NL1)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf -14.343 -1.6 Td (NOFLSH)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_0 1 Tf 0.4754 Tc (,P)Tj 0 Tc 5.862 0 Td [(OSIX.1, )-225(Fr)18(eeBSD, )-225(Linux, )-225(Mac )-225(OS )-225(X, )-225(Solaris\))-725(By )-225(default,)]TJ -5.862 -1.2 Td [(when )-122(the )-122(terminal )-122(driver )-122(generates )-122(the)]TJ /TT0 1 Tf 18.189 0 Td (SIGINT)Tj /T1_0 1 Tf 3.973 0 Td (and)Tj /TT0 1 Tf 2.066 0 Td (SIGQUIT)Tj /T1_0 1 Tf 4.572 0 Td (signals,)Tj -28.799 -1.2 Td [(both )-87(the )-87(input )-87(and )-87(output )-87(queues )-87(ar)]TJ 0.3371 Tc 16.543 0 Td (e\337)Tj 0 Tc 1.424 0 Td [(ushed. )-337(Also,)-337(when )-87(it )-87(generates)]TJ -17.967 -1.2 Td (the)Tj /TT0 1 Tf 1.767 0 Td (SIGSUSP)Tj /T1_0 1 Tf 4.58 0 Td [(signal, )-130(the )-130(input )-130(queue )-130(is )-130(\337ushed.)-632(If )-130(the)]TJ /TT0 1 Tf 19.03 0 Td (NOFLSH)Tj /T1_0 1 Tf 3.98 0 Td [(\337ag )-130(is)]TJ -29.358 -1.2 Td [(set, )-299(this )-299(normal )-299(\337ushing )-299(of )-299(the )-299(queues )-299(does )-299(not )-299(occur )-299(when )-299(these)]TJ T* (signals ar)Tj 0.25 Tc 4.195 0 Td (eg)Tj 0 Tc 1.285 0 Td (enerated.)Tj /TT0 1 Tf -12.363 -1.6 Td (NOKERNINFO)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_0 1 Tf 0.6203 Tc (,F)Tj -0.018 Tc 5.959 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-370(Mac )-370(OS )-370(X\))-870(When )-370(set, )-370(this )-370(\337ag )-370(pr)18(events )-370(the)]TJ -6.815 -1.2 Td (ST)Tj -0.074 Tc 1.064 0 Td (AT)Tj 0 Tc 1.317 0 Td [(US )-64(character )-64(fr)18(om )-64(printing )-64(information )-64(on )-64(the )-64(for)20(egr)18(ound )-64(pr)18(ocess)]TJ -2.381 -1.2 Td [(gr)18(oup. )-496(Regar)18(dless )-246(of )-246(whether )-246(this )-246(\337ag )-246(is )-246(set, )-246(however)]TJ 0.4961 Tc 25.804 0 Td (,t)Tj 0 Tc 1.072 0 Td [(he )-246(ST)]TJ -0.074 Tc 2.621 0 Td (AT)Tj 0 Tc 1.317 0 Td (US)Tj -30.814 -1.2 Td [(character )-145(still )-145(causes )-145(the)]TJ /TT0 1 Tf 11.527 0 Td (SIGINFO)Tj /T1_0 1 Tf 4.595 0 Td [(signal )-144(to )-144(be )-144(sent )-144(to )-144(the )-144(for)15(egr)18(ound)]TJ -16.122 -1.2 Td [(pr)18(ocess gr)18(oup.)]TJ /TT0 1 Tf -6.883 -1.6 Td (OCRNL)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_oflag)Tj /T1_0 1 Tf 0.5585 Tc (,X)Tj 0 Tc 6.009 0 Td [(SI, )-308(Fr)18(eeBSD, )-308(Linux, )-308(Solaris\))-810(If )-309(set, )-309(map )-309(CR )-309(to )-309(NL )-309(on)]TJ -6.008 -1.2 Td (output.)Tj /TT0 1 Tf -6.883 -1.6 Td (OFDEL)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_oflag)Tj /T1_0 1 Tf 0.3594 Tc (,X)Tj 0 Tc 5.809 0 Td [(SI, )-109(Linux, )-109(Solaris\))-610(If )-109(set, )-109(the )-109(output )-109(\336ll )-109(character )-109(is )-109(ASCII)]TJ -5.809 -1.2 Td [(DEL; otherwise, it\325s ASCII NUL.)-500(See the)]TJ /TT0 1 Tf 18.197 0 Td (OFILL)Tj /T1_0 1 Tf 3.25 0 Td (\337ag.)Tj /TT0 1 Tf -28.33 -1.6 Td (OFILL)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_oflag)Tj /T1_0 1 Tf 0.2558 Tc (,X)Tj 0 Tc 5.706 0 Td [(SI, )-6(Linux, )-6(Solaris\))-506(If )-6(set, )-6(\336ll )-6(characters )-6(\(either )-6(ASCII )-6(DEL )-6(or)]TJ -5.706 -1.2 Td [(ASCII )-104(NUL; )-104(see )-104(the)]TJ /TT0 1 Tf 9.343 0 Td (OFDEL)Tj /T1_0 1 Tf 3.354 0 Td [(\337ag\) )-104(ar)]TJ 0.3545 Tc 3.229 0 Td (et)Tj 0 Tc 1.159 0 Td [(ransmitted )-104(for )-104(a )-104(delay)]TJ 0.3545 Tc 9.981 0 Td (,i)Tj 0 Tc 0.895 0 Td [(nstead )-104(of)]TJ -27.961 -1.2 Td [(using )-152(a )-152(timed )-152(delay)]TJ 0.6518 Tc 9.077 0 Td (.S)Tj 0 Tc 1.427 0 Td [(ee )-152(the )-152(six )-152(delay )-152(masks:)]TJ /TT0 1 Tf 11.059 0 Td (BSDLY)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.652 0 Td (CRDLY)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.652 0 Td (FFDLY)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf -28.867 -1.2 Td (NLDLY)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.5 0 Td (TABDLY)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 4.6 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (VTDLY)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf -16.426 -1.6 Td (OLCUC)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_oflag)Tj /T1_0 1 Tf 0.2834 Tc (,L)Tj 0 Tc 5.677 0 Td [(inux, )-33(Solaris\))-534(If )-33(set, )-33(map )-33(lower)18(case )-33(characters )-33(to )-33(upper)16(case)]TJ -5.677 -1.2 Td (characters on output.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46936 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.5)]TJ -0.092 Tc 33.432 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(Option )-250(Flags)]TJ /T1_1 1 Tf 11.401 0 Td (687)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (ECHOK)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_0 1 Tf 0.4202 Tc (,P)Tj 0 Tc 5.807 0 Td [(OSIX.1, )-170(Fr)18(eeBSD, )-170(Linux, )-170(Mac )-170(OS )-170(X, )-170(Solaris\))-671(If )-170(set )-170(and )-170(if)]TJ /TT0 1 Tf -5.807 -1.2 Td (ICANON)Tj /T1_0 1 Tf 4.157 0 Td [(is )-307(set, )-307(the )-307(KILL )-307(character )-307(erases )-307(the )-307(curr)21(ent )-307(line )-307(fr)18(om )-307(the)]TJ -4.157 -1.2 Td [(display )-144(or )-144(outputs )-144(the )-144(NL )-144(character )-144(\(to )-144(emphasize )-144(that )-144(the )-144(entir)]TJ 0.3942 Tc 29.601 0 Td (el)Tj 0 Tc 1.164 0 Td (ine)Tj -30.765 -1.2 Td (was erased\).)Tj 0 -1.8 TD [(If )-48(the)]TJ /TT0 1 Tf 2.654 0 Td (ECHOKE)Tj /T1_0 1 Tf 3.898 0 Td [(\337ag )-48(is )-48(supported, )-48(this )-48(description )-48(of)]TJ /TT0 1 Tf 16.497 0 Td (ECHOK)Tj /T1_0 1 Tf 3.298 0 Td [(assumes )-48(that)]TJ /TT0 1 Tf -26.348 -1.2 Td (ECHOKE)Tj /T1_0 1 Tf 3.85 0 Td (is not set.)Tj /TT0 1 Tf -10.733 -1.96 Td (ECHOKE)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_0 1 Tf 0.3522 Tc (,F)Tj -0.018 Tc 5.691 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-102(Linux, )-102(Mac )-102(OS )-102(X, )-102(Solaris\))-603(If )-102(set )-102(and )-102(if)]TJ /TT0 1 Tf 20.903 0 Td (ICANON)Tj /T1_0 1 Tf 3.952 0 Td (is)Tj -31.402 -1.2 Td [(set, )-103(the )-103(KILL )-103(character )-103(is )-103(echoed )-103(by )-103(erasing )-103(each )-103(character )-103(on )-103(the )-103(line.)]TJ 0 -1.2 TD [(The )-45(way )-45(in )-45(which )-45(each )-45(character )-45(is )-45(erased )-45(is )-45(selected )-45(by )-45(the)]TJ /TT0 1 Tf 27.129 0 Td (ECHOE)Tj /T1_0 1 Tf 3.295 0 Td (and)Tj /TT0 1 Tf -30.424 -1.2 Td (ECHOPRT)Tj /T1_0 1 Tf 4.45 0 Td (\337ags.)Tj /TT0 1 Tf -11.333 -1.96 Td (ECHONL)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_0 1 Tf 0.4201 Tc (,P)Tj 0 Tc 5.807 0 Td [(OSIX.1, )-170(Fr)18(eeBSD, )-170(Linux, )-170(Mac )-170(OS )-170(X, )-170(Solaris\))-670(If )-170(set )-170(and )-170(if)]TJ /TT0 1 Tf -5.807 -1.2 Td (ICANON)Tj /T1_0 1 Tf 3.85 0 Td (is set, the NL character is echoed, even if)Tj /TT0 1 Tf 18.173 0 Td (ECHO)Tj /T1_0 1 Tf 2.65 0 Td (is not set.)Tj /TT0 1 Tf -31.556 -1.96 Td (ECHOPRT)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_0 1 Tf 0.594 Tc (,F)Tj -0.018 Tc 5.933 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-344(Linux, )-344(Mac )-344(OS )-344(X, )-344(Solaris\))-844(If )-344(set )-344(and )-344(if )-344(both)]TJ /TT0 1 Tf -6.789 -1.2 Td (ICANON)Tj /T1_0 1 Tf 4.076 0 Td (and)Tj /TT0 1 Tf 2.169 0 Td (ECHO)Tj /T1_0 1 Tf 2.876 0 Td (ar)Tj 0.4756 Tc 0.877 0 Td (es)Tj 0 Tc 1.379 0 Td [(et, )-226(then )-226(the )-226(ERASE )-226(character )-226(\(and )-226(WERASE)]TJ -11.375 -1.2 Td [(character)74(,)-567(if)-567(supported\) )-317(cause )-317(all )-317(the )-317(characters )-317(being )-317(erased )-317(to )-317(be)]TJ T* [(printed )-56(as )-56(they )-56(ar)]TJ 0.306 Tc 7.947 0 Td (ee)Tj 0 Tc 1.264 0 Td [(rased. )-306(This)-306(is )-56(often )-56(useful )-56(on )-56(a )-56(har)18(d-copy )-56(terminal)]TJ -9.211 -1.2 Td (to see exactly which characters ar)Tj 0.25 Tc 14.715 0 Td (eb)Tj 0 Tc 1.282 0 Td (eing deleted.)Tj /TT0 1 Tf -22.88 -1.96 Td (EXTPROC)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_0 1 Tf 0.6206 Tc (,F)Tj -0.018 Tc 5.96 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-371(Linux, )-371(Mac )-371(OS )-371(X\))-869(If )-370(set, )-370(canonical )-370(character)]TJ -6.816 -1.2 Td [(pr)18(ocessing )-129(is )-129(performed )-129(external )-129(to )-129(the )-129(operating )-129(system.)-629(This )-129(can )-129(be)]TJ T* [(the )-33(case )-33(if )-33(the )-33(serial )-33(communication )-33(peripheral )-33(car)]TJ 0.2825 Tc 22.459 0 Td (dc)Tj 0 Tc 1.337 0 Td [(an )-32(of)18(\337oad )-32(the )-32(host)]TJ -23.797 -1.2 Td [(pr)18(ocessor )-43(by )-43(doing )-43(some )-43(of )-43(the )-43(line )-43(discipline )-43(pr)21(ocessing. )-293(This)-292(can )-43(also)]TJ 0 -1.2 Td (be the case when using pseudo terminals \(Chapter 19\).)Tj /TT0 1 Tf -6.883 -1.96 Td (FFDLY)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_oflag)Tj /T1_0 1 Tf 0.3755 Tc (,X)Tj 0 Tc 5.826 0 Td [(SI, )-125(Linux, )-125(Solaris\))-625(Form )-125(feed )-125(delay )-125(mask.)-625(The )-125(values )-125(for)]TJ -5.826 -1.2 Td [(the mask ar)18(e)]TJ /TT0 1 Tf 5.856 0 Td (FF0)Tj /T1_0 1 Tf 2.05 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (FF1)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf -15.98 -1.96 Td (FLUSHO)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_0 1 Tf 0.4024 Tc (,F)Tj -0.018 Tc 5.741 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-152(Linux, )-152(Mac )-152(OS )-152(X, )-152(Solaris\))-654(If )-152(set, )-152(output )-152(is )-152(being)]TJ -6.597 -1.2 Td [(\337ushed. )-310(This)-310(\337ag )-60(is )-60(set )-60(when )-60(we )-60(type )-60(the )-60(DISCARD )-60(character; )-60(the )-60(\337ag)]TJ T* [(is )-13(clear)18(ed )-13(when )-13(we )-13(type )-13(another )-13(DISCARD )-13(character)]TJ 0.5133 Tc 23.456 0 Td (.W)Tj 0.2633 Tc 1.671 0 Td (ec)Tj 0 Tc 1.186 0 Td [(an )-13(also )-13(set )-13(or)]TJ -26.314 -1.2 Td (clear this condition by setting or clearing this terminal \337ag.)Tj /TT0 1 Tf -6.883 -1.96 Td (HUPCL)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_0 1 Tf 0.5302 Tc (,P)Tj 0 Tc 5.917 0 Td [(OSIX.1, )-280(Fr)18(eeBSD, )-280(Linux, )-280(Mac )-280(OS )-280(X, )-280(Solaris\))-780(If )-280(set, )-280(the)]TJ -5.917 -1.2 Td [(modem )-46(contr)18(ol )-46(lines )-46(ar)]TJ 0.2958 Tc 10.345 0 Td (el)Tj 0 Tc 1.066 0 Td [(ower)18(ed )-46(\(i.e., )-46(the )-46(modem )-46(connection )-46(is )-46(br)19(oken\))]TJ -11.411 -1.2 Td [(when the last pr)18(ocess closes the device.)]TJ /TT0 1 Tf -6.883 -1.96 Td (ICANON)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_0 1 Tf 0.2509 Tc (,P)Tj 0 Tc 5.638 0 Td [(OSIX.1, )-1(Fr)18(eeBSD, )-1(Linux, )-1(Mac )-1(OS )-1(X, )-1(Solaris\))-501(If )-1(set, )-1(canonical)]TJ -5.638 -1.2 Td [(mode )-91(is )-91(in )-91(ef)18(fect )-91(\(Section )-91(18.10\).)-591(This )-91(enables )-91(the )-91(following )-91(characters:)]TJ T* (EOF)Tj 0.2789 Tc 1.861 0 Td (,E)Tj 0 Tc 1.14 0 Td [(OL, )-29(EOL2, )-29(ERASE, )-29(KILL, )-29(REPRINT)]TJ 0.2789 Tc 15.757 0 Td (,S)Tj -0.074 Tc 1.054 0 Td (TAT)Tj 0 Tc 1.856 0 Td [(US, )-29(and )-29(WERASE.)-529(The)]TJ -21.667 -1.2 Td (input characters ar)Tj 0.25 Tc 8.269 0 Td (ea)Tj 0 Tc 1.229 0 Td (ssembled into lines.)Tj -9.498 -1.8 Td [(If )-230(canonical )-230(mode )-230(is )-230(not )-230(enabled, )-230(r)18(ead )-230(r)18(equests )-230(ar)]TJ 0.4804 Tc 23.642 0 Td (es)Tj 0 Tc 1.383 0 Td [(atis\336ed )-230(dir)18(ectly)]TJ -25.026 -1.2 Td [(fr)18(om )-100(the )-100(input )-100(queue.)]TJ 0.3502 Tc 10.554 0 Td (Ar)Tj 0 Tc 1.505 0 Td [(ead )-100(does )-100(not )-100(r)17(eturn )-100(until )-100(at )-100(least )-100(MIN )-100(bytes)]TJ -12.059 -1.2 Td [(have )-235(been )-235(r)18(eceived )-235(or )-235(the )-235(timeout )-235(value )-235(TIME )-235(has )-235(expir)18(ed )-235(between)]TJ T* [(bytes. )-250(Refer)-250(to Section 18.1)]TJ 0.25 Tc 11.952 0 Td (1f)Tj 0 Tc 1.083 0 Td (or additional details.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46937 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.5)]TJ -0.092 Tc 33.432 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(Option )-250(Flags)]TJ /T1_1 1 Tf 11.401 0 Td (685)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(We )-184(n)]TJ 0 Tc 2.219 0 Td (ow describe each of the \337ags.)Tj /TT0 1 Tf -4.019 -2.04 Td (ALTWERASE)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_0 1 Tf 0.7495 Tc (,F)Tj -0.018 Tc 6.089 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-499(Mac )-499(OS )-499(X\))-1001(If )-499(set, )-499(an )-499(alternate )-499(wor)16(d-erase)]TJ -6.944 -1.2 Td [(algorithm )-161(is )-161(used )-161(when )-161(the )-161(WERASE )-161(character )-161(is )-161(enter)20(ed. )-411(Instead)-410(of)]TJ -0 -1.2 Td [(moving )-246(backwar)]TJ 0.4961 Tc 7.683 0 Td (du)Tj 0 Tc 1.71 0 Td [(ntil )-246(the )-246(pr)18(evious )-246(white )-246(space )-246(character)]TJ 0.4961 Tc 18.195 0 Td (,t)Tj 0 Tc 1.072 0 Td [(his )-246(\337ag)]TJ -28.66 -1.2 Td [(causes )-489(the )-489(WERASE )-489(character )-489(to )-489(move )-489(backwar)]TJ 0.7387 Tc 24.06 0 Td (du)Tj 0 Tc 1.953 0 Td [(ntil )-489(the )-489(\336rst)]TJ -26.012 -1.2 Td [(nonalphanumeric character is encounter)18(ed.)]TJ /TT0 1 Tf -6.883 -1.6 Td (BRKINT)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_iflag)Tj /T1_0 1 Tf 0.3788 Tc (,P)Tj 0 Tc 5.766 0 Td [(OSIX.1, )-129(Fr)18(eeBSD, )-129(Linux, )-129(Mac )-129(OS )-129(X, )-129(Solaris\))-629(If )-129(this )-129(\337ag )-129(is)]TJ -5.766 -1.2 Td [(set )-221(and)]TJ /TT0 1 Tf 3.863 0 Td (IGNBRK)Tj /T1_0 1 Tf 4.071 0 Td [(is )-221(not )-221(set, )-221(the )-221(input )-221(and )-221(output )-221(queues )-221(ar)]TJ 0.4707 Tc 19.927 0 Td (e\337)Tj 0 Tc 1.558 0 Td (ushed)Tj -29.418 -1.2 Td [(when )-212(a )-212(BREAK )-212(is )-212(r)18(eceived, )-212(and )-212(a)]TJ /TT0 1 Tf 16.491 0 Td (SIGINT)Tj /T1_0 1 Tf 4.062 0 Td [(signal )-212(is )-212(generated.)-713(This)]TJ -20.554 -1.2 Td [(signal )-244(is )-244(generated )-244(for )-244(the )-244(for)16(egr)18(ound )-244(pr)18(ocess )-244(gr)18(oup )-244(if )-244(the )-244(terminal)]TJ -0 -1.2 Td [(device is a contr)18(olling terminal.)]TJ 0 -1.8 TD [(If )-93(neither)]TJ /TT0 1 Tf 4.49 0 Td (IGNBRK)Tj /T1_0 1 Tf 3.943 0 Td (nor)Tj /TT0 1 Tf 1.866 0 Td (BRKINT)Tj /T1_0 1 Tf 3.943 0 Td [(is )-93(set, )-93(then )-93(a )-93(BREAK )-93(is )-93(r)18(ead )-93(as )-93(a )-93(single)]TJ -14.243 -1.2 Td (character)Tj /TT0 1 Tf 4.335 0 Td (\\0)Tj /T1_0 1 Tf 0.2697 Tc (,u)Tj 0 Tc 2.323 0 Td (nless)Tj /TT0 1 Tf 2.47 0 Td (PARMRK)Tj /T1_0 1 Tf 3.87 0 Td [(is )-20(set; )-20(in )-20(that )-20(case )-20(the )-20(BREAK )-20(is )-20(r)18(ead )-20(as )-20(the)]TJ -12.997 -1.2 Td (3)Tj 0.5 0.09 Td (-)Tj 0.333 -0.09 Td (byte sequence)Tj /TT0 1 Tf 6.464 0 Td (\\377)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 2.9 0 Td (\\0)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 1.7 0 Td (\\0)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf -18.78 -1.648 Td (BSDLY)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_oflag)Tj /T1_0 1 Tf 0.3865 Tc (,X)Tj 0 Tc 5.837 0 Td [(SI, )-136(Linux, )-136(Solaris\))-637(Backspace )-136(delay )-136(mask.)-636(The )-136(values )-136(for)]TJ -5.837 -1.2 Td [(the mask ar)18(e)]TJ /TT0 1 Tf 5.856 0 Td (BS0)Tj /T1_0 1 Tf 2.05 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (BS1)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf -15.98 -1.648 Td (CBAUDEXT)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_0 1 Tf 0.4704 Tc (,S)Tj 0 Tc 5.778 0 Td [(olaris\) )-470(Extended)-471(baud )-220(rates.)-721(Used )-220(to )-220(enable )-220(baud )-220(rates)]TJ -5.778 -1.2 Td [(gr)18(eater than B38400.)-500(\(W)]TJ 0.25 Tc 10.704 0 Td (ed)Tj 0 Tc 1.34 0 Td (iscuss baud rates in Section 18.7.\))Tj /TT0 1 Tf -18.927 -1.648 Td (CCAR_OFLOW)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_0 1 Tf 0.419 Tc (,F)Tj -0.018 Tc 5.758 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-169(Mac )-169(OS )-169(X\))-669(Enable )-169(har)18(dwar)]TJ 0.419 Tc 15.982 0 Td (e\337)Tj 0 Tc 1.506 0 Td [(ow )-169(contr)18(ol )-169(of )-169(the)]TJ -24.102 -1.2 Td [(output )-401(using )-401(the )-401(RS)]TJ 9.994 0.09 Td (-)Tj 0.333 -0.09 Td [(232 )-401(modem )-401(carrier )-401(signal )-401(Data-Carrier)17(-Detect)]TJ -10.327 -1.16 Td (\()Tj 0.333 -0.04 Td (DCD)Tj 2.257 0.04 Td (\))Tj 0.5 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.363 0 Td (his is the same as the old)Tj /TT0 1 Tf 11.194 0 Td (MDMBUF)Tj /T1_0 1 Tf 3.85 0 Td (\337ag.)Tj /TT0 1 Tf -26.213 -1.648 Td (CCTS_OFLOW)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_0 1 Tf 0.3594 Tc (,F)Tj -0.018 Tc 5.698 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-109(Mac )-109(OS )-109(X, )-109(Solaris\))-611(Enable )-109(har)18(dwar)]TJ 0.3593 Tc 19.265 0 Td (e\337)Tj 0 Tc 1.446 0 Td [(ow )-109(contr)18(ol)]TJ -27.266 -1.2 Td [(of the output using the Clear)18(-T)92(o-Send)]TJ 16.9 0.04 Td (\()Tj 0.333 -0.04 Td (CTS)Tj 1.847 0.04 Td (\))Tj 0.583 -0.04 Td (RS)Tj 1.193 0.09 Td (-)Tj 0.333 -0.09 Td (232 signal.)Tj /TT0 1 Tf -28.072 -1.648 Td (CDSR_OFLOW)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_0 1 Tf 0.3878 Tc (,F)Tj -0.018 Tc 5.727 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-138(Mac )-138(OS )-138(X\))-638(Flow )-138(contr)18(ol )-138(the )-138(output )-138(accor)18(ding )-138(to)]TJ -6.583 -1.2 Td (the Data-Set-Ready)Tj 8.797 0.04 Td (\()Tj 0.333 -0.04 Td (DSR)Tj 1.967 0.04 Td (\))Tj 0.583 -0.04 Td (RS)Tj 1.193 0.09 Td (-)Tj 0.333 -0.09 Td (232 signal.)Tj /TT0 1 Tf -20.089 -1.648 Td (CDTR_IFLOW)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_0 1 Tf 0.2812 Tc (,F)Tj -0.018 Tc 5.62 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-31(Mac )-31(OS )-31(X\))-531(Flow )-31(contr)18(ol )-31(the )-31(input )-31(accor)16(ding )-31(to )-31(the)]TJ -6.476 -1.2 Td [(Data-T)92(erminal)]TJ 6.375 0.09 Td (-)Tj 0.333 -0.09 Td (Ready)Tj 3.064 0.04 Td (\()Tj 0.333 -0.04 Td (DTR)Tj 2.055 0.04 Td (\))Tj 0.583 -0.04 Td (RS)Tj 1.193 0.09 Td (-)Tj 0.333 -0.09 Td (232 signal.)Tj /TT0 1 Tf -21.152 -1.648 Td (CIBAUDEXT)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_0 1 Tf 0.4243 Tc (,S)Tj 0 Tc 5.732 0 Td [(olaris\) )-424(Extended)-425(input )-174(baud )-174(rates.)-675(Used )-174(to )-174(enable )-174(input)]TJ -5.732 -1.2 Td [(baud rates gr)18(eater than B38400.)-500(\(W)]TJ 0.25 Tc 15.595 0 Td (ed)Tj 0 Tc 1.34 0 Td (iscuss baud rates in Section 18.7.\))Tj /TT0 1 Tf -23.818 -1.648 Td (CIGNORE)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_0 1 Tf 0.25 Tc (,F)Tj -0.018 Tc 5.589 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, Mac OS X\))-500(Ignor)]TJ 0.25 Tc 10.488 0 Td (ec)Tj 0 Tc 1.173 0 Td [(ontr)18(ol \337ags.)]TJ /TT0 1 Tf -24.989 -1.648 Td (CLOCAL)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_0 1 Tf 0.5302 Tc (,P)Tj 0 Tc 5.917 0 Td [(OSIX.1, )-280(Fr)18(eeBSD, )-280(Linux, )-280(Mac )-280(OS )-280(X, )-280(Solaris\))-780(If )-280(set, )-280(the)]TJ -5.917 -1.2 Td [(modem )-113(status )-113(lines )-113(ar)]TJ 0.3633 Tc 10.039 0 Td (ei)Tj 0 Tc 1.133 0 Td [(gnor)18(ed. )-363(This)-364(usually )-113(means )-113(that )-113(the )-113(device )-113(is)]TJ -11.172 -1.2 Td [(dir)18(ectly )-13(attached.)-513(When )-13(this )-13(\337ag )-13(is )-13(not )-13(set, )-13(an)]TJ /TT0 1 Tf 20.67 0 Td (open)Tj /T1_0 1 Tf 2.663 0 Td [(of )-13(a )-13(terminal )-13(device)]TJ -23.333 -1.2 Td [(usually )-402(blocks )-402(until )-402(the )-402(modem )-402(answers )-402(a )-402(call )-402(and )-402(establishes )-402(a)]TJ 0 -1.2 TD (connection, for example.)Tj /TT0 1 Tf -6.883 -1.648 Td (CMSPAR)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_oflag)Tj /T1_0 1 Tf 0.452 Tc (,L)Tj 0 Tc 5.846 0 Td [(inux\) )-452(Select)-452(mark )-202(or )-202(space )-202(parity)]TJ 0.702 Tc 15.66 0 Td (.I)Tj 0 Tc 1.289 0 Td (f)Tj /TT0 1 Tf 0.785 0 Td (PARODD)Tj /T1_0 1 Tf 4.052 0 Td [(is )-202(set, )-202(the)]TJ -27.632 -1.2 Td [(parity )-11(bit )-11(is )-11(always )-11(1 )-11(\(mark )-11(parity\).)-511(Otherwise, )-11(the )-11(parity )-11(bit )-11(is )-11(always )-11(0)]TJ T* (\(space parity\).)Tj /TT0 1 Tf -6.883 -1.648 Td (CRDLY)Tj /T1_0 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_oflag)Tj /T1_0 1 Tf 0.456 Tc (,X)Tj 0 Tc 5.906 0 Td [(SI, )-206(Linux, )-206(Solaris\))-706(Carriage )-206(r)18(eturn )-206(delay )-206(mask.)-706(Possible)]TJ -5.906 -1.2 Td [(values for the mask ar)18(e)]TJ /TT0 1 Tf 10.492 0 Td (CR0)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 2.3 0 Td (CR1)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 2.3 0 Td (CR2)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 2.8 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (CR3)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46938 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (676)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1417.25 6670.25 cm 0 0 m 3657 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 381.4771 658.9605 Tm [(Fr)18(eeBSD )-250(Linux )-250(Mac)-250(OS X)-500(Solaris)]TJ 1.275 -1.25 Td [(8.0 )-1827(3.2.0)-1735(10.6.8 )-2170(10)]TJ -28.696 0.625 Td (Flag)Tj 10.525 0 Td (Description)Tj 11.726 0 Td (POSIX.1)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1417.25 6450.25 cm 0 0 m 3657 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1417.25 6430.25 cm 0 0 m 3657 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 145.7305 634.9238 Tm (ALTWERASE)Tj /T1_1 1 Tf 7.0815 Tc 31.067 0 Td (\245\245)Tj 0 Tc -23.567 0 Td (use alternate WERASE algorithm)Tj /TT0 1 Tf -7.5 -1.25 Td (ECHO)Tj /T1_1 1 Tf 4.629 Tc 25.831 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -27.268 0 Td (enable echo)Tj /TT0 1 Tf -7.5 -1.25 Td (ECHOCTL)Tj /T1_1 1 Tf 3.096 Tc 31.067 0 Td [(\245\245 )3063(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj -35.424 0 Td [(echo contr)18(ol chars as \366\(Char\))]TJ /TT0 1 Tf -7.5 -1.25 Td (ECHOE)Tj /T1_1 1 Tf 4.629 Tc 25.831 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -27.268 0 Td (visually erase chars)Tj /TT0 1 Tf -7.5 -1.25 Td (ECHOK)Tj /T1_1 1 Tf 4.629 Tc 25.831 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -27.268 0 Td (echo kill)Tj /TT0 1 Tf -7.5 -1.25 Td (ECHOKE)Tj /T1_1 1 Tf 3.096 Tc 31.067 0 Td [(\245\245 )3063(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj -35.424 0 Td (visual erase for kill)Tj /TT0 1 Tf -7.5 -1.25 Td (ECHONL)Tj /T1_1 1 Tf 4.629 Tc 25.831 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -27.268 0 Td (echo NL)Tj /TT0 1 Tf -7.5 -1.25 Td (ECHOPRT)Tj /T1_1 1 Tf 3.096 Tc 31.067 0 Td [(\245\245 )3063(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj -35.424 0 Td (visual erase mode for har)Tj 0.25 Tc 11.203 0 Td (dc)Tj 0 Tc 1.305 0 Td (opy)Tj /TT0 1 Tf -20.008 -1.25 Td (EXTPROC)Tj /T1_1 1 Tf 3.096 Tc 31.067 0 Td [(\245\245 )3063(\245)]TJ 0 Tc -23.567 0 Td [(external character pr)18(ocessing)]TJ /TT0 1 Tf -7.5 -1.25 Td (FLUSHO)Tj /T1_1 1 Tf 3.096 Tc 31.067 0 Td [(\245\245 )3063(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj -35.424 0 Td (output being \337ushed)Tj /TT0 1 Tf -7.5 -1.25 Td (ICANON)Tj /T1_1 1 Tf 4.629 Tc 25.831 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -27.268 0 Td (canonical input)Tj /TT0 1 Tf -7.5 -1.25 Td (IEXTEN)Tj /T1_1 1 Tf 4.629 Tc 25.831 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -27.268 0 Td (enable extended input char)Tj 1.35 -1.25 Td [(pr)18(ocessing)]TJ /TT0 1 Tf -8.85 -1.25 Td (ISIG)Tj /T1_1 1 Tf 4.629 Tc 25.831 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -27.268 0 Td (enable terminal-generated signals)Tj /TT0 1 Tf -7.5 -1.25 Td (NOFLSH)Tj /T1_1 1 Tf 4.629 Tc 25.831 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -27.268 0 Td [(disable \337ush after interr)8(upt or)]TJ 1.35 -1.25 Td (quit)Tj /TT0 1 Tf -8.85 -1.25 Td (NOKERNINFO)Tj /T1_1 1 Tf 7.0815 Tc 31.067 0 Td (\245\245)Tj 0 Tc -23.567 0 Td [(no kernel output fr)18(om ST)]TJ -0.074 Tc 11.118 0 Td (AT)Tj 0 Tc 1.317 0 Td (US)Tj /TT0 1 Tf -19.935 -1.25 Td (PENDIN)Tj /T1_1 1 Tf 3.096 Tc 31.067 0 Td [(\245\245 )3063(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj -0.018 Tc -35.424 0 Td (re)Tj 0 Tc 0.856 0 Td (type pending input)Tj /TT0 1 Tf -8.356 -1.25 Td (TOSTOP)Tj /T1_1 1 Tf 4.629 Tc 25.831 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -27.268 0 Td (send)Tj /TT0 1 Tf 2.346 0 Td (SIGTTOU)Tj /T1_1 1 Tf 4.45 0 Td [(for backgr)18(ound)]TJ -5.446 -1.25 Td (output)Tj /TT0 1 Tf -8.85 -1.25 Td (XCASE)Tj /T1_1 1 Tf 7.5495 Tc 34.769 0 Td (\245\245)Tj 0 Tc -27.268 0 Td (canonical upper/lower)Tj 1.35 -1.25 Td [(pr)18(esentation)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1417.25 4210.25 cm 0 0 m 3657 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3755.25 4210.25 cm 0 0 m 0 2460 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3341.25 4210.25 cm 0 0 m 0 2460 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1997.25 4210.25 cm 0 0 m 0 2460 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5074.25 4210.25 cm 0 0 m 0 2460 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1417.25 4210.25 cm 0 0 m 0 2460 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 259.6333 402.9275 Tm (Figure 18.5)Tj /TT0 1 Tf 5.695 0 Td (c_lflag)Tj /T1_1 1 Tf 4.45 0 Td (terminal \337ags)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1549.25 3650.25 cm 0 0 m 3393 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 368.2116 356.9143 Tm [(Fr)18(eeBSD )-250(Linux )-250(Mac)-250(OS X)-500(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-1827(3.2.0)-1735(10.6.8 )-2170(10)]TJ -26.596 0.625 Td (Flag)Tj 8.875 0 Td (Description)Tj 11.276 0 Td (POSIX.1)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1549.25 3430.25 cm 0 0 m 3393 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1549.25 3410.25 cm 0 0 m 3393 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 158.9003 332.9001 Tm (BSDLY)Tj /T1_1 1 Tf 22.07 0 Td (XSI )Tj 9.398 0 Td (\245)Tj 8.156 0 Td (\245)Tj -34.524 0 Td (backspace delay mask)Tj /TT0 1 Tf -5.1 -1.25 Td (CRDLY)Tj /T1_1 1 Tf 22.07 0 Td (XSI )Tj 9.398 0 Td (\245)Tj 8.156 0 Td (\245)Tj -34.524 0 Td (CR delay mask)Tj /TT0 1 Tf -5.1 -1.25 Td (FFDLY)Tj /T1_1 1 Tf 22.07 0 Td (XSI )Tj 9.398 0 Td (\245)Tj 8.156 0 Td (\245)Tj -34.524 0 Td (form feed delay mask)Tj /TT0 1 Tf -5.1 -1.25 Td (NLDLY)Tj /T1_1 1 Tf 22.07 0 Td (XSI )Tj 9.398 0 Td (\245)Tj 8.156 0 Td (\245)Tj -34.524 0 Td (NL delay mask)Tj /TT0 1 Tf -5.1 -1.25 Td (OCRNL)Tj /T1_1 1 Tf 22.07 0 Td [(XSI )-3917(\245)]TJ 7.5495 Tc 9.398 0 Td (\245\245)Tj 0 Tc -26.368 0 Td (map CR to NL on output)Tj /TT0 1 Tf -5.1 -1.25 Td (OFDEL)Tj /T1_1 1 Tf 22.07 0 Td (XSI )Tj 9.398 0 Td (\245)Tj 8.156 0 Td (\245)Tj -34.524 0 Td (\336ll is DEL, else NUL)Tj /TT0 1 Tf -5.1 -1.25 Td (OFILL)Tj /T1_1 1 Tf 22.07 0 Td (XSI )Tj 9.398 0 Td (\245)Tj 8.156 0 Td (\245)Tj -34.524 0 Td (use \336ll character for delay)Tj /TT0 1 Tf -5.1 -1.25 Td (OLCUC)Tj /T1_1 1 Tf 7.5495 Tc 31.468 0 Td (\245\245)Tj 0 Tc -26.368 0 Td [(map lower)18(case to upper)18(case on)]TJ 1.35 -1.25 Td (output)Tj /TT0 1 Tf -6.45 -1.25 Td (ONLCR)Tj /T1_1 1 Tf 22.07 0 Td [(XSI )-3917(\245)]TJ 3.3795 Tc 9.398 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -26.369 0 Td (map NL to CR)Tj 6.425 0.09 Td (-)Tj 0.333 -0.09 Td (NL)Tj /TT0 1 Tf -11.858 -1.25 Td (ONLRET)Tj /T1_1 1 Tf 22.07 0 Td [(XSI )-3917(\245)]TJ 7.5495 Tc 9.398 0 Td (\245\245)Tj 0 Tc -26.368 0 Td (NL performs CR function)Tj /TT0 1 Tf -5.1 -1.25 Td (ONOCR)Tj /T1_1 1 Tf 22.07 0 Td [(XSI )-3917(\245)]TJ 7.5495 Tc 9.398 0 Td (\245\245)Tj 0 Tc -26.368 0 Td (no CR output at column 0)Tj /TT0 1 Tf -5.1 -1.25 Td (ONOEOT)Tj /T1_1 1 Tf 7.0815 Tc 27.766 0 Td (\245\245)Tj 0 Tc -22.666 0 Td (discar)Tj 0.25 Tc 2.647 0 Td (dE)Tj 0 Tc 1.472 0 Td (OT)Tj 0.25 Tc 1.309 0 Td (s\()Tj 0 Tc 1.007 0 Td (\366D\) on output)Tj /TT0 1 Tf -11.535 -1.25 Td (OPOST)Tj /T1_1 1 Tf 4.629 Tc 22.532 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ 0 Tc -26.368 0 Td [(perform output pr)18(ocessing)]TJ /TT0 1 Tf -5.1 -1.25 Td (OXTABS)Tj /T1_1 1 Tf 7.0815 Tc 27.766 0 Td (\245\245)Tj 0 Tc -22.666 0 Td (expand tabs to spaces)Tj /TT0 1 Tf -5.1 -1.25 Td (TABDLY)Tj /T1_1 1 Tf 22.07 0 Td [(XSI )-3917(\245)]TJ 7.5495 Tc 9.398 0 Td (\245\245)Tj 0 Tc -26.368 0 Td (horizontal tab delay mask)Tj /TT0 1 Tf -5.1 -1.25 Td (VTDLY)Tj /T1_1 1 Tf 22.07 0 Td (XSI )Tj 9.398 0 Td (\245)Tj 8.156 0 Td (\245)Tj -34.524 0 Td (vertical tab delay mask)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1549.25 1690.25 cm 0 0 m 3393 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3623.25 1690.25 cm 0 0 m 0 1960 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3209.25 1690.25 cm 0 0 m 0 1960 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1937.25 1690.25 cm 0 0 m 0 1960 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4942.25 1690.25 cm 0 0 m 0 1960 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1549.25 1690.25 cm 0 0 m 0 1960 l S Q Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 259.5865 150.9456 Tm (Figure 18.6)Tj /TT0 1 Tf 5.695 0 Td (c_oflag)Tj /T1_1 1 Tf 4.45 0 Td (terminal \337ags)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46939 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (666)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 163.9202 668.9599 Tm [(ar)18(gument )-191(to)]TJ /TT0 1 Tf 6.061 0 Td (select)Tj /T1_1 1 Tf 0.6915 Tc (.W)Tj 0.4415 Tc 5.449 0 Td (ea)Tj 0 Tc 1.421 0 Td [(lso )-191(keep )-191(track )-191(of )-191(the )-191(highest )-191(index )-191(in )-191(use )-191(in )-191(the)]TJ /TT0 1 Tf -12.931 -1.2 Td (client)Tj /T1_1 1 Tf 3.85 0 Td [(array)111(.\))]TJ -5.483 -1.6 Td [(2. )-633(An)-388(existing )-138(client\325s )-138(connection )-138(can )-138(be )-138(r)18(eady )-138(for )-138(r)19(eading. )-388(This)-388(means )-138(that )-138(the)]TJ 1.633 -1.2 Td [(client )-123(has )-123(either )-123(terminated )-123(or )-123(sent )-123(a )-123(new )-123(r)14(equest. )-373(W)]TJ 0.3734 Tc 24.507 0 Td (e\336)Tj 0 Tc 1.457 0 Td [(nd )-123(out )-123(about )-123(a )-123(client)]TJ -25.965 -1.2 Td [(termination )-117(by)]TJ /TT0 1 Tf 7.043 0 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.767 0 Td (re)Tj 0 Tc 0.856 0 Td [(turning )-117(0 )-117(\(end )-117(of )-117(\336le\).)-616(If)]TJ /TT0 1 Tf 11.798 0 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.767 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-117(a )-117(value )-117(gr)19(eater)]TJ -26.087 -1.2 Td [(than )-416(0, )-416(ther)19(e)-666(is)-666(a)-666(n)1(ew )-416(r)18(equest )-416(to )-416(pr)18(ocess, )-416(which )-416(we )-416(handle )-416(by )-416(calling)]TJ /TT0 1 Tf -0 -1.2 Td (handle_request)Tj /T1_1 1 Tf (.)Tj -0.092 Tc -1.633 -1.68 Td [(We )-301(k)]TJ 0 Tc 2.31 0 Td [(eep )-117(track )-117(of )-117(which )-117(descriptors )-117(ar)]TJ 0.3668 Tc 15.039 0 Td (ec)Tj 0 Tc 1.29 0 Td [(urr)18(ently )-117(in )-117(use )-117(in )-117(the)]TJ /TT0 1 Tf 10.083 0 Td (allset)Tj /T1_1 1 Tf 3.967 0 Td (descriptor)Tj -34.488 -1.2 Td [(set. )-510(As)-510(new )-260(clients )-260(connect )-260(to )-260(the )-260(server)]TJ 0.5102 Tc 19.559 0 Td (,t)Tj 0 Tc 1.086 0 Td [(he )-260(appr)18(opriate )-260(bit )-260(is )-260(turned )-260(on )-260(in )-260(this)]TJ -20.646 -1.2 Td [(descriptor set.)-500(The appr)18(opriate bit is turned of)]TJ 0.25 Tc 20.624 0 Td (fw)Tj 0 Tc 1.417 0 Td (hen the client terminates.)Tj -0.092 Tc -20.241 -1.2 Td [(We )-232(a)]TJ 0 Tc 2.185 0 Td [(lways )-48(know )-48(when )-48(a )-48(client )-48(terminates, )-48(whether )-48(the )-48(termination )-48(is )-48(voluntary )-48(or)]TJ -3.985 -1.2 Td [(not, )-340(since )-340(all )-340(the )-340(client\325s )-340(descriptors )-340(\(including )-340(the )-340(connection )-340(to )-340(the )-340(server\) )-340(ar)20(e)]TJ 0 -1.2 TD [(automatically closed by the kernel.)-500(This dif)18(fers fr)18(om the XSI IPC mechanisms.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 1.924 0 Td (loop)Tj /T1_1 1 Tf 2.65 0 Td (function that uses)Tj /TT0 1 Tf 8.121 0 Td (poll)Tj /T1_1 1 Tf 2.65 0 Td (is shown in Figur)Tj 0.25 Tc 7.689 0 Td (e1)Tj 0 Tc 1.229 0 Td (7.30.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4970.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 487.4405 Tm [(#include )-1800("opend.h")]TJ 0 -1.189 TD [(#include )-1800()]TJ 0 -2.14 TD [(#define NALLOC)-1200(10 )-600(/*)]TJ 0.6 Tc 13.8 0 Td (#p)Tj 0 Tc 1.8 0 Td (ollfd structs to alloc/realloc */)Tj -15.6 -2.14 Td (static struct pollfd *)Tj 0 -1.189 TD (grow_pollfd\(struct pollfd *pfd, int *maxfd\))Tj T* ({)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td (i;)Tj -9.6 -1.189 Td (int )Tj 9.6 0 Td (oldmax)Tj 0.6 Tc 4.2 0 Td (=*)Tj 0 Tc 1.8 0 Td (maxfd;)Tj -15.6 -1.189 Td (int )Tj 9.6 0 Td (newmax)Tj 0.6 Tc 4.2 0 Td (=o)Tj 0 Tc 1.8 0 Td (ldmax + NALLOC;)Tj -15.6 -2.14 Td (if \(\(pfd = realloc\(pfd, newmax * sizeof\(struct pollfd\)\)\) == NULL\)\ )Tj 2.4 -1.189 Td (err_sys\("realloc error"\);)Tj -2.4 -1.189 Td (for \(i = oldmax; i < newmax; i++\) {)Tj 2.4 -1.189 Td (pfd[i].fd = -1;)Tj T* (pfd[i].events = POLLIN;)Tj T* (pfd[i].revents = 0;)Tj -2.4 -1.189 Td (})Tj T* (*maxfd = newmax;)Tj T* (return\(pfd\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (void)Tj 0 -1.189 TD (loop\(void\))Tj T* ({)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td [(i,)-600(listenfd, clifd, nread;)]TJ -9.6 -1.189 Td (char )Tj 9.6 0 Td (buf[MAXLINE];)Tj -9.6 -1.189 Td (uid_t )Tj 9.6 0 Td (uid;)Tj -9.6 -1.189 Td [(struct pollfd)-1800(*pollfd;)]TJ T* (int )Tj 9.6 0 Td (numfd)Tj 0.6 Tc 3.6 0 Td (=1)Tj 0 Tc 1.8 0 Td (;)Tj -15 -1.189 Td (int )Tj 9.6 0 Td (maxfd)Tj 0.6 Tc 3.6 0 Td (=N)Tj 0 Tc 1.8 0 Td (ALLOC;)Tj -15 -2.14 Td (if \(\(pollfd = malloc\(NALLOC * sizeof\(struct pollfd\)\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("malloc error"\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46940 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (588)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 8.9995 0 0 8.9995 129.5922 669.9598 Tm (15.6)Tj /T1_1 1 Tf 3.065 0 Td [(The )-129(Rationale )-129(for )-129(POSIX.1 )-129(gives )-129(as )-129(one )-129(of )-129(the )-129(r)19(easons )-129(for )-129(adding )-129(the)]TJ /TT0 1 Tf 31.982 0 Td (waitpid)Tj /T1_1 1 Tf 4.579 0 Td (function)Tj -36.561 -1.222 Td [(that most pr)18(e-POSIX.1 systems can\325t handle the following:)]TJ /TT0 1 Tf 2 -1.8 Td (if \(\(fp = popen\("/bin/true", "r"\)\) == NULL\))Tj 2.4 -1.189 Td (...)Tj -2.4 -1.189 Td (if \(\(rc = system\("sleep 100"\)\) == -1\))Tj 2.4 -1.189 Td (...)Tj -2.4 -1.189 Td (if \(pclose\(fp\) == -1\))Tj 2.4 -1.189 Td (...)Tj /T1_1 1 Tf -4.4 -1.833 Td (What happens in this code if)Tj /TT0 1 Tf 12.877 0 Td (waitpid)Tj /T1_1 1 Tf 4.45 0 Td (isn\325t available and)Tj /TT0 1 Tf 8.314 0 Td (wait)Tj /T1_1 1 Tf 2.65 0 Td (is used instead?)Tj /T1_0 1 Tf -31.356 -1.667 Td (15.7)Tj /T1_1 1 Tf 3.065 0 Td [(Explain )-29(how)]TJ /TT0 1 Tf 5.911 0 Td (select)Tj /T1_1 1 Tf 3.879 0 Td (and)Tj /TT0 1 Tf 1.972 0 Td (poll)Tj /T1_1 1 Tf 2.679 0 Td [(handle )-29(an )-29(input )-29(descriptor )-29(that )-29(is )-29(a )-29(pipe, )-29(when )-29(the )-29(pipe )-29(is)]TJ -14.44 -1.222 Td [(closed )-99(by )-99(the )-99(writer)]TJ 0.5994 Tc 8.985 0 Td (.T)Tj 0.3494 Tc 1.37 0 Td (od)Tj 0 Tc 1.506 0 Td [(etermine )-99(the )-99(answer)]TJ 0.3494 Tc 9.14 0 Td (,w)Tj 0 Tc 1.433 0 Td [(rite )-99(two )-99(small )-99(test )-99(pr)18(ograms: )-99(one )-99(using)]TJ /TT0 1 Tf -22.436 -1.222 Td (select)Tj /T1_1 1 Tf 3.85 0 Td (and one using)Tj /TT0 1 Tf 6.506 0 Td (poll)Tj /T1_1 1 Tf (.)Tj -10.356 -1.833 Td [(Redo )-151(this )-151(exer)17(cise, )-151(looking )-151(at )-151(an )-151(output )-151(descriptor )-151(that )-151(is )-151(a )-151(pipe, )-151(when )-151(the )-151(r)18(ead )-151(end )-151(is)]TJ 0 -1.222 TD (closed.)Tj /T1_0 1 Tf -3.065 -1.667 Td (15.8)Tj /T1_1 1 Tf 3.065 0 Td [(What )-24(happens )-24(if )-24(the)]TJ /T1_2 1 Tf 9.282 0 Td (cmdstring)Tj /T1_1 1 Tf 4.404 0 Td [(executed )-24(by)]TJ /TT0 1 Tf 5.593 0 Td (popen)Tj /T1_1 1 Tf 3.274 0 Td [(with )-24(a)]TJ /T1_2 1 Tf 3.08 0 Td (type)Tj /T1_1 1 Tf 1.996 0 Td (of)Tj /TT0 1 Tf 1.153 0 Td ("r")Tj /T1_1 1 Tf 2.074 0 Td [(writes )-24(to )-24(its )-24(standar)19(d)]TJ -30.854 -1.222 Td [(err)18(or?)]TJ /T1_0 1 Tf -3.065 -1.667 Td (15.9)Tj /T1_1 1 Tf 3.065 0 Td (Since)Tj /TT0 1 Tf 2.865 0 Td (popen)Tj /T1_1 1 Tf 3.544 0 Td [(invokes )-294(a )-294(shell )-294(to )-294(execute )-294(its)]TJ /T1_2 1 Tf 14.511 0 Td (cmdstring)Tj /T1_1 1 Tf 4.674 0 Td [(ar)18(gument, )-294(what )-294(happens )-294(when)]TJ /TT0 1 Tf -25.593 -1.222 Td (cmdstring)Tj /T1_1 1 Tf 5.65 0 Td [(terminates? )-250(\(Hint:)-250(Draw all the pr)18(ocesses involved.\))]TJ /T1_0 1 Tf -8.715 -1.667 Td (15.10)Tj /T1_1 1 Tf 3.065 0 Td [(POSIX.1 )-186(speci\336cally )-186(states )-186(that)]TJ /TT0 1 Tf 14.553 0 Td (open)Tj /T1_1 1 Tf [(ing )-186(a )-186(FIFO )-186(for )-186(r)18(ead\320write )-186(is )-186(unde\336ned.)-688(Although)]TJ -14.553 -1.222 Td [(most )-41(UNIX )-41(systems )-41(allow )-41(this, )-41(show )-41(another )-41(method )-41(for )-41(opening )-41(a )-41(FIFO )-41(for )-41(both )-41(r)13(eading)]TJ T* (and writing, without blocking.)Tj /T1_0 1 Tf -3.065 -1.667 Td [(15.1)37(1)]TJ /T1_1 1 Tf 3.065 0 Td [(Unless )-131(a )-131(\336le )-131(contains )-131(sensitive )-131(or )-131(con\336dential )-131(data, )-131(allowing )-131(other )-131(users )-131(to )-131(r)18(ead )-131(the )-131(\336le)]TJ 0 -1.222 TD [(causes )-126(no )-126(harm.)-626(\(It )-126(is )-126(usually )-126(consider)18(ed )-126(antisocial, )-126(however)74(,)-376(to)-376(go)-376(snooping )-126(ar)18(ound )-126(in)]TJ -0 -1.222 Td [(other )-185(people\325s )-185(\336les.\))-685(But )-185(what )-185(happens )-185(if )-185(a )-185(malicious )-185(pr)18(ocess )-185(r)18(eads )-185(a )-185(message )-185(fr)18(om )-185(a)]TJ T* [(message )-59(queue )-59(that )-59(is )-59(being )-59(used )-59(by )-59(a )-59(server )-59(and )-59(several )-59(clients?)-559(What )-59(information )-59(does)]TJ T* [(the malicious pr)18(ocess need to know to r)18(ead the message queue?)]TJ /T1_0 1 Tf -3.065 -1.667 Td (15.12)Tj /T1_1 1 Tf -0.074 Tc 3.065 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-211(a )-211(pr)18(ogram )-211(that )-211(does )-211(the )-211(following.)-708(Execute )-211(a )-211(loop )-211(\336ve )-211(times: )-211(cr)18(eate )-211(a )-211(message)]TJ -1.321 -1.222 Td [(queue, )-125(print )-125(the )-125(queue )-125(identi\336er)]TJ 0.3751 Tc 14.765 0 Td (,d)Tj 0 Tc 1.236 0 Td [(elete )-125(the )-125(message )-125(queue.)-625(Then )-125(execute )-125(the )-125(next )-125(loop)]TJ -16.002 -1.222 Td [(\336ve )-94(times: )-94(cr)18(eate )-94(a )-94(message )-94(queue )-94(with )-94(a )-94(key )-94(of)]TJ /TT0 1 Tf 22.318 0 Td (IPC_PRIVATE)Tj /T1_1 1 Tf 0.3439 Tc (,a)Tj 0 Tc 7.694 0 Td [(nd )-94(place )-94(a )-94(message )-94(on)]TJ -30.012 -1.222 Td [(the )-237(queue.)-737(After )-237(the )-237(pr)18(ogram )-237(terminates, )-237(look )-237(at )-237(the )-237(message )-237(queues )-237(using)]TJ /TT0 1 Tf 36.452 0 Td (ipcs)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.333 -0.04 Td (.)Tj -40.018 -1.222 Td (Explain what is happening with the queue identi\336ers.)Tj /T1_0 1 Tf -3.065 -1.667 Td (15.13)Tj /T1_1 1 Tf 3.065 0 Td [(Describe )-154(how )-154(to )-154(build )-154(a )-154(linked )-154(list )-154(of )-154(data )-154(objects )-154(in )-154(a )-154(shar)21(ed )-154(memory )-154(segment.)-654(What)]TJ 0 -1.222 TD [(would you stor)18(e)-250(as)-250(the list pointers?)]TJ /T1_0 1 Tf -3.065 -1.667 Td (15.14)Tj /T1_1 1 Tf 3.065 0 Td [(Draw )-19(a )-19(timeline )-19(of )-19(the )-19(pr)18(ogram )-19(in )-19(Figur)]TJ 0.2691 Tc 17.889 0 Td (e1)Tj 0 Tc 1.248 0 Td [(5.33 )-19(showing )-19(the )-19(value )-19(of )-19(the )-19(variable)]TJ /TT0 1 Tf 17.114 0 Td (i)Tj /T1_1 1 Tf 0.869 0 Td [(in )-19(both)]TJ -37.12 -1.222 Td [(the )-96(par)18(ent )-97(and )-97(child, )-97(the )-97(value )-97(of )-97(the )-97(long )-97(integer )-97(in )-97(the )-97(shar)18(ed )-97(memory )-97(r)18(egion, )-97(and )-97(the)]TJ T* [(value r)18(eturned by the)]TJ /TT0 1 Tf 9.786 0 Td (update)Tj /T1_1 1 Tf 3.85 0 Td [(function. )-250(Assume)-250(that the child r)8(uns \336rst after the)]TJ /TT0 1 Tf 22.554 0 Td (fork)Tj /T1_1 1 Tf (.)Tj /T1_0 1 Tf -39.255 -1.667 Td (15.15)Tj /T1_1 1 Tf 3.065 0 Td [(Redo )-448(the )-448(pr)18(ogram )-448(in )-448(Figur)]TJ 0.6981 Tc 13.597 0 Td (e1)Tj 0 Tc 1.677 0 Td [(5.33 )-448(using )-448(the )-448(XSI )-448(shar)18(ed )-448(memory )-448(functions )-448(fr)17(om)]TJ -15.275 -1.222 Td [(Section 15.9 instead of the shar)18(ed memory-mapped r)18(egion.)]TJ /T1_0 1 Tf -3.065 -1.667 Td (15.16)Tj /T1_1 1 Tf 3.065 0 Td [(Redo )-65(the )-65(pr)18(ogram )-65(in )-65(Figur)]TJ 0.3147 Tc 12.064 0 Td (e1)Tj 0 Tc 1.294 0 Td [(5.33 )-65(using )-65(the )-65(XSI )-65(semaphor)]TJ 0.3148 Tc 12.773 0 Td (ef)Tj 0 Tc 1.127 0 Td [(unctions )-65(fr)18(om )-65(Section )-65(15.8 )-65(to)]TJ -27.257 -1.222 Td [(alternate between the par)18(ent and the child.)]TJ /T1_0 1 Tf -3.065 -1.667 Td (15.17)Tj /T1_1 1 Tf 3.065 0 Td [(Redo )-90(the )-90(pr)18(ogram )-90(in )-90(Figur)]TJ 0.3401 Tc 12.165 0 Td (e1)Tj 0 Tc 1.319 0 Td [(5.33 )-90(using )-90(advisory )-90(r)18(ecor)]TJ 0.3401 Tc 11.337 0 Td (dl)Tj 0 Tc 1.242 0 Td [(ocking )-90(to )-90(alternate )-90(between )-90(the)]TJ -26.064 -1.222 Td [(par)18(ent and the child.)]TJ /T1_0 1 Tf -3.065 -1.667 Td (15.18)Tj /T1_1 1 Tf 3.065 0 Td [(Redo )-11(the )-11(pr)18(ogram )-11(in )-11(Figur)]TJ 0.2607 Tc 11.847 0 Td (e1)Tj 0 Tc 1.24 0 Td [(5.33 )-11(using )-11(the )-11(POSIX )-11(semaphor)]TJ 0.2607 Tc 13.947 0 Td (ef)Tj 0 Tc 1.073 0 Td [(unctions )-11(fr)18(om )-11(Section )-11(15.10)]TJ -28.106 -1.222 Td [(to alternate between the par)18(ent and the child.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46941 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (578)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-131(pr)18(ogram )-131(opens )-131(the)]TJ /TT0 1 Tf 11.076 0 Td (/dev/zero)Tj /T1_1 1 Tf 5.781 0 Td [(device )-131(and )-131(calls)]TJ /TT0 1 Tf 7.656 0 Td (mmap)Tj /T1_1 1 Tf 0.3813 Tc (,s)Tj 0 Tc 3.455 0 Td [(pecifying )-131(a )-131(size )-131(of )-131(a)]TJ -29.769 -1.2 Td [(long )-207(integer)]TJ 0.707 Tc 5.466 0 Td (.N)Tj 0 Tc 1.788 0 Td [(ote )-207(that )-207(once )-207(the )-207(r)18(egion )-207(is )-207(mapped, )-207(we )-207(can)]TJ /TT0 1 Tf 20.946 0 Td (close)Tj /T1_1 1 Tf 3.457 0 Td [(the )-207(device.)-707(The)]TJ -31.656 -1.2 Td [(pr)18(ocess )-224(then )-224(cr)17(eates )-224(a )-224(child.)-725(Since)]TJ /TT0 1 Tf 16.679 0 Td (MAP_SHARED)Tj /T1_1 1 Tf 6.474 0 Td [(was )-224(speci\336ed )-224(in )-224(the )-224(call )-224(to)]TJ /TT0 1 Tf 13.196 0 Td (mmap)Tj /T1_1 1 Tf (,)Tj -36.35 -1.2 Td [(writes )-68(to )-68(the )-68(memory-mapped )-68(r)16(egion )-68(by )-68(one )-68(pr)18(ocess )-68(ar)]TJ 0.3184 Tc 25.025 0 Td (es)Tj 0 Tc 1.221 0 Td [(een )-68(by )-68(the )-68(other )-68(pr)16(ocess. )-318(\(If)]TJ -26.246 -1.2 Td (we had speci\336ed)Tj /TT0 1 Tf 7.69 0 Td (MAP_PRIVATE)Tj /T1_1 1 Tf 6.85 0 Td (instead, this example wouldn\325t work.\))Tj -12.74 -1.2 Td [(The )-55(par)18(ent )-55(and )-55(the )-55(child )-55(then )-55(alternate )-55(r)7(unning, )-55(incr)18(ementing )-55(a )-55(long )-55(integer )-55(in )-55(the)]TJ -1.8 -1.2 Td [(shar)18(ed )-112(memory-mapped )-112(r)17(egion, )-112(using )-112(the )-112(synchr)18(onization )-112(functions )-112(fr)18(om )-112(Section )-112(8.9.)]TJ 0 -1.2 Td [(The )-75(memory-mapped )-75(r)18(egion )-75(is )-75(initialized )-75(to )-75(0 )-75(by)]TJ /TT0 1 Tf 22.505 0 Td (mmap)Tj /T1_1 1 Tf 0.5751 Tc (.T)Tj 0 Tc 3.838 0 Td [(he )-75(par)18(ent )-75(incr)18(ements )-75(it )-75(to )-75(1,)]TJ -26.343 -1.2 Td [(then )-16(the )-16(child )-16(incr)18(ements )-16(it )-16(to )-16(2, )-16(then )-16(the )-16(par)19(ent )-16(incr)18(ements )-16(it )-16(to )-16(3, )-16(and )-16(so )-16(on.)-516(Note )-16(that)]TJ 0 -1.2 TD [(we )-167(have )-167(to )-167(use )-167(par)18(entheses )-167(when )-167(we )-167(incr)15(ement )-168(the )-168(value )-168(of )-168(the )-168(long )-168(integer )-168(in )-168(the)]TJ /TT0 1 Tf T* (update)Tj /T1_1 1 Tf 3.85 0 Td (function, since we ar)Tj 0.25 Tc 9.117 0 Td (ei)Tj 0 Tc 1.02 0 Td [(ncr)18(ementing the value and not the pointer)74(.)]TJ -12.187 -1.2 Td [(The )-183(advantage )-183(of )-183(using)]TJ /TT0 1 Tf 11.358 0 Td (/dev/zero)Tj /T1_1 1 Tf 5.833 0 Td [(in )-182(the )-182(manner )-182(that )-182(we\325ve )-182(shown )-182(is )-182(that )-182(an)]TJ -18.991 -1.2 Td [(actual )-133(\336le )-133(need )-133(not )-133(exist )-133(befor)]TJ 0.3833 Tc 13.884 0 Td (ew)Tj 0.3834 Tc 1.696 0 Td (ec)Tj 0 Tc 1.306 0 Td (all)Tj /TT0 1 Tf 1.465 0 Td (mmap)Tj /T1_1 1 Tf 2.783 0 Td [(to )-133(cr)18(eate )-133(the )-133(mapped )-133(r)16(egion. )-383(Mapping)]TJ /TT0 1 Tf -21.136 -1.2 Td (/dev/zero)Tj /T1_1 1 Tf 6.144 0 Td [(automatically )-494(cr)18(eates )-494(a )-494(mapped )-494(r)18(egion )-494(of )-494(the )-494(speci\336ed )-494(size.)-994(The)]TJ -6.144 -1.2 Td [(disadvantage )-148(of )-148(this )-148(technique )-148(is )-148(that )-148(it )-148(works )-148(only )-148(between )-148(r)20(elated )-148(pr)18(ocesses. )-398(W)55(ith)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(lated )-215(pr)18(ocesses, )-215(however)73(,)-465(it)-465(i)]TJ 0.4653 Tc 13.481 0 Td (sp)Tj -0.018 Tc 1.49 0 Td (ro)Tj 0 Tc 0.923 0 Td [(bably )-215(simpler )-215(and )-215(mor)]TJ 0.4653 Tc 10.712 0 Td (ee)Tj -0.018 Tc 1.423 0 Td (f\336)Tj 0 Tc 0.92 0 Td [(cient )-215(to )-215(use )-215(thr)17(eads)]TJ -29.805 -1.2 Td [(\(Chapters )-157(1)]TJ 0.4071 Tc 5.201 0 Td (1a)Tj 0 Tc 1.407 0 Td [(nd )-157(12\).)-657(Note )-157(that )-157(no )-157(matter )-157(which )-157(technique )-157(is )-157(used, )-157(we )-157(still )-157(need )-157(to)]TJ -6.608 -1.2 Td [(synchr)18(onize access to the shar)18(ed data.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4650.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 9.9988 0 0 9.9988 93.5888 428.9485 Tm [(Example )195(\321 )195(Anon)19(ymous Memor)]TJ 0.278 Tc 14.604 0 Td (yM)Tj 0 Tc 1.667 0 Td (apping)Tj /T1_1 1 Tf -12.671 -2.4 Td [(Many )-87(implementations )-87(pr)18(ovide )-87(anonymous )-87(memory )-87(mapping, )-87(a )-87(facility )-87(similar )-87(to )-87(the)]TJ /TT0 1 Tf T* (/dev/zero)Tj /T1_1 1 Tf 5.814 0 Td [(featur)18(e. )-414(T)]TJ 0.4138 Tc 4.532 0 Td (ou)Tj 0 Tc 1.563 0 Td [(se )-164(this )-164(facility)111(,)-414(we)-414(specify )-164(the)]TJ /TT0 1 Tf 14.008 0 Td (MAP_ANON)Tj /T1_1 1 Tf 5.214 0 Td [(\337ag )-164(to)]TJ /TT0 1 Tf 3.363 0 Td (mmap)Tj /T1_1 1 Tf 2.814 0 Td (and)Tj -37.307 -1.2 Td [(specify )-244(the )-244(\336le )-244(descriptor )-244(as)]TJ /TT2 1 Tf 13.798 0 Td (!)Tj /T1_1 1 Tf [(1. )-494(The)]TJ -0.018 Tc 4.212 0 Td (re)Tj 0 Tc 0.856 0 Td [(sulting )-244(r)18(egion )-244(is )-244(anonymous )-244(\(since )-244(it\325s )-244(not)]TJ -18.866 -1.2 Td [(associated )-31(with )-31(a )-31(pathname )-31(thr)19(ough )-31(a )-31(\336le )-31(descriptor\) )-31(and )-31(cr)18(eates )-31(a )-31(memory )-31(r)18(egion )-31(that)]TJ T* [(can be shar)18(ed with descendant pr)18(ocesses.)]TJ 7.999 0 0 7.999 183.5782 336.9596 Tm [(The )-42(anonymous )-42(memory-mapping )-42(facility )-42(is )-42(supported )-42(by )-42(all )-42(four )-42(platforms )-42(discussed )-42(in )-42(this)]TJ 0 -1.25 TD [(text. )-328(Note,)-328(however)]TJ 0.3283 Tc 9.041 0 Td (,t)Tj 0 Tc 0.904 0 Td [(hat )-78(Linux )-78(de\336nes )-78(the)]TJ /TT0 1 Tf 9.891 0 Td (MAP_ANONYMOUS)Tj /T1_1 1 Tf 8.128 0 Td [(\337ag )-78(for )-78(this )-78(facility)]TJ 0.3281 Tc 8.467 0 Td (,b)Tj 0 Tc 1.131 0 Td [(ut )-78(de\336nes)]TJ -37.563 -1.25 Td (the)Tj /TT0 1 Tf 1.637 0 Td (MAP_ANON)Tj /T1_1 1 Tf 5.05 0 Td [(\337ag to be the same value for impr)18(oved application portability)111(.)]TJ -0.092 Tc 9.9988 0 0 9.9988 147.5826 296.9644 Tm [(To )-271(m)]TJ 0 Tc 2.287 0 Td [(odify )-87(the )-87(pr)18(ogram )-87(in )-87(Figur)]TJ 0.3371 Tc 12.186 0 Td (e1)Tj 0 Tc 1.316 0 Td [(5.33 )-87(to )-87(use )-87(this )-87(facility)111(,)-337(we)-337(make )-87(thr)18(ee )-87(changes:)]TJ -17.59 -1.2 Td [(\(a\) )-4(r)18(emove )-4(the)]TJ /TT0 1 Tf 6.645 0 Td (open)Tj /T1_1 1 Tf 2.654 0 Td (of)Tj /TT0 1 Tf 1.133 0 Td (/dev/zero)Tj /T1_1 1 Tf 0.2541 Tc (,\()Tj 0 Tc 6.237 0 Td [(b\) )-4(r)18(emove )-4(the)]TJ /TT0 1 Tf 6.364 0 Td (close)Tj /T1_1 1 Tf 3.254 0 Td (of)Tj /TT0 1 Tf 1.133 0 Td (fd)Tj /T1_1 1 Tf 0.2541 Tc (,a)Tj 0 Tc 2.204 0 Td [(nd )-4(\(c\) )-4(change )-4(the )-4(call)]TJ -29.625 -1.2 Td (to)Tj /TT0 1 Tf 1.122 0 Td (mmap)Tj /T1_1 1 Tf 2.65 0 Td (to the following:)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5827 255.1995 Tm (if \(\(area = mmap\(0, SIZE, PROT_READ | PROT_WRITE,)Tj 10.8 -1.189 Td (MAP_ANON | MAP_SHARED, -1, 0\)\) == MAP_FAILED\))Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5848 225.4331 Tm [(In )-80(this )-80(call, )-80(we )-80(specify )-80(the)]TJ /TT0 1 Tf 12.127 0 Td (MAP_ANON)Tj /T1_1 1 Tf 5.13 0 Td [(\337ag )-80(and )-80(set )-80(the )-80(\336le )-80(descriptor )-80(to)]TJ /TT2 1 Tf 15.044 0 Td (!)Tj /T1_1 1 Tf [(1. )-330(The)]TJ -0.018 Tc 3.884 0 Td (re)Tj 0 Tc 0.856 0 Td [(st )-80(of)]TJ -37.041 -1.2 Td [(the pr)18(ogram fr)18(om Figur)]TJ 0.25 Tc 10.517 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.33 is unchanged.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2134.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 147.5734 177.4281 Tm [(The )-26(last )-26(two )-26(examples )-26(illustrate )-26(sharing )-26(memory )-26(among )-26(multiple )-26(r)18(elated )-26(pr)13(ocesses.)]TJ -1.8 -1.2 Td [(If )-112(shar)18(ed )-112(memory )-112(is )-112(r)18(equir)18(ed )-112(between )-112(unr)18(elated )-112(pr)18(ocesses, )-112(ther)]TJ 0.362 Tc 28.965 0 Td (ea)Tj -0.018 Tc 1.341 0 Td [(re )-148(t)]TJ 0 Tc 1.544 0 Td [(wo )-112(alternatives.)]TJ -31.85 -1.2 Td [(Applications )-115(can )-115(use )-115(the )-115(XSI )-115(shar)18(ed )-115(memory )-115(functions, )-115(or )-115(they )-115(can )-115(use)]TJ /TT0 1 Tf 33.014 0 Td (mmap)Tj /T1_1 1 Tf 2.765 0 Td [(to )-115(map)]TJ -35.779 -1.2 Td [(the same \336le into their addr)18(ess spaces using the)]TJ /TT0 1 Tf 21.257 0 Td (MAP_SHARED)Tj /T1_1 1 Tf 6.25 0 Td (\337ag.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46942 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (576)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 1990.68 6350 720 216 re S Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 226.0544 622.4027 Tm (stack)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1990.68 5774 720 216 re S Q BT /T1_1 1 Tf 7.999 0 0 7.999 207.1831 586.3696 Tm [(shar)18(ed memory)]TJ 2.402 -4.95 Td (heap)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1990.68 5054 720 288 re S Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 203.7313 522.9459 Tm (uninitialized data)Tj 2.879 -1.25 Td (\(bss\))Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 1990.68 4838 720 216 re S Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 208.458 492.7217 Tm (initialized data)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1990.68 4550 720 288 re S Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 228.4115 467.4997 Tm (text)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1990.25 6134.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2067.25 6134.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2142.25 6134.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2219.25 6134.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2294.25 6134.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2371.25 6134.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2446.25 6134.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2523.25 6134.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2598.25 6134.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2674.25 6134.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1990.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2067.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2142.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2219.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2294.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2371.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2446.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2523.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2598.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2674.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 1990.68 5342 720 1008 re S Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2823 6521.3599 cm 0 0 m 0 24.65 -19.99 44.64 -44.64 44.64 c S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2823.25 6521.25 cm 0 0 m 0 -40 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2823.25 6480.25 cm 0 0 m 22 -22 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2846.25 6458.25 cm 0 0 m -23 -23 l -23 -63 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.3601 6350 cm 0 0 m 24.65 0 44.64 19.99 44.64 44.64 c S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 286.5008 648.8064 Tm (command)Tj 4.449 0.09 Td (-)Tj 0.333 -0.09 Td [(line ar)18(guments)]TJ -4.782 -1.25 Td [(and envir)18(onment variables)]TJ -16.879 1.35 Td [(high addr)18(ess)]TJ 0.34 -23.95 Td [(low addr)18(ess)]TJ ET q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 271.068 624.2 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 2710.6799 6242 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2782.25 6242.25 cm 0 0 m 144 0 l S Q Q BT /TT0 1 Tf 7.9966 0 0 7.9966 294.5443 622.1786 Tm (0x7fff957b146c)Tj ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 271.068 530.6 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 2710.6799 5306 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2782.25 5306.25 cm 0 0 m 144 0 l S Q Q BT /TT0 1 Tf 7.9962 0 0 7.9962 294.5266 528.5862 Tm (0x00000060bd00)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 271.068 516.2 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 2710.6799 5162 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2782.25 5162.25 cm 0 0 m 144 0 l S Q Q BT /TT0 1 Tf 7.9957 0 0 7.9957 294.5089 514.1623 Tm (0x0000006020c0)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3687 5296.6401 cm 0 0 m 0 24.65 -19.99 44.64 -44.64 44.64 c S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3687.25 5296.25 cm 0 0 m 0 -40 l 22 -62 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3710.25 5234.25 cm 0 0 m -23 -23 l -23 -63 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.3601 5126 cm 0 0 m 24.65 0 44.64 19.99 44.64 44.64 c S Q Q BT /TT0 1 Tf 7.9952 0 0 7.9952 372.7803 521.3271 Tm (array[])Tj /T1_1 1 Tf 4.45 0 Td (of 40,000 bytes)Tj ET q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 271.068 552.2 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 2710.6799 5522 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2782.25 5522.25 cm 0 0 m 144 0 l S Q Q BT /TT0 1 Tf 7.9947 0 0 7.9947 294.4736 550.0768 Tm (0x0000009fb6b0)Tj ET q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 271.068 537.8 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 2710.6799 5378 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2782.25 5378.25 cm 0 0 m 144 0 l S Q Q BT /TT0 1 Tf 7.9942 0 0 7.9942 294.4559 535.6542 Tm (0x0000009e3010)Tj ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3687 5512.6401 cm 0 0 m 0 24.65 -19.99 44.64 -44.64 44.64 c S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3687.25 5512.25 cm 0 0 m 0 -40 l 22 -62 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3710.25 5450.25 cm 0 0 m -23 -23 l -23 -63 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.3601 5342 cm 0 0 m 24.65 0 44.64 19.99 44.64 44.64 c S Q Q BT /TT0 1 Tf 7.9938 0 0 7.9938 372.7132 542.8164 Tm (malloc)Tj /T1_1 1 Tf 3.85 0 Td (of 100,000 bytes)Tj ET q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 271.068 595.4 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 2710.6799 5954 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2782.25 5954.25 cm 0 0 m 144 0 l S Q Q BT /TT0 1 Tf 7.9933 0 0 7.9933 294.4206 593.1415 Tm (0x7fba578c36a0)Tj ET q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 271.068 581 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 2710.6799 5810 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2782.25 5810.25 cm 0 0 m 144 0 l S Q Q BT /TT0 1 Tf 7.9928 0 0 7.9928 294.4029 578.7189 Tm (0x7fba578ab000)Tj ET q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3687 5944.6401 cm 0 0 m 0 24.65 -19.99 44.64 -44.64 44.64 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3687.25 5944.25 cm 0 0 m 0 -40 l 22 -62 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3710.25 5882.25 cm 0 0 m -23 -23 l -23 -63 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.3601 5774 cm 0 0 m 24.65 0 44.64 19.99 44.64 44.64 c S Q Q BT /T1_1 1 Tf 7.9923 0 0 7.9923 372.6461 585.8773 Tm [(shar)18(ed memory of 100,000 bytes)]TJ /T1_0 1 Tf -19.621 -19.58 Td (Figure 15.32)Tj /T1_1 1 Tf 6.195 0 Td (Memory layout on an Intel-based Linux system)Tj 9.9904 0 0 9.9904 147.4586 405.4106 Tm [(Recall )-130(that )-130(the)]TJ /TT0 1 Tf 6.933 0 Td (mmap)Tj /T1_1 1 Tf 2.78 0 Td [(function )-130(\(Section )-130(14.8\) )-130(can )-130(be )-130(used )-130(to )-130(map )-130(portions )-130(of )-130(a )-130(\336le)]TJ -11.512 -1.2 Td [(into )-107(the )-107(addr)18(ess )-107(space )-107(of )-107(a )-107(pr)15(ocess. )-357(This)-358(is )-107(conceptually )-107(similar )-107(to )-107(attaching )-107(a )-107(shar)15(ed)]TJ -0 -1.2 Td [(memory )-146(segment )-146(using )-146(the)]TJ /TT0 1 Tf 12.897 0 Td (shmat)Tj /T1_1 1 Tf 3.396 0 Td [(XSI )-146(IPC )-146(function.)-646(The )-146(main )-146(dif)20(fer)18(ence )-146(is )-146(that )-146(the)]TJ -16.293 -1.2 Td [(memory )-99(segment )-99(mapped )-99(with)]TJ /TT0 1 Tf 14.577 0 Td (mmap)Tj /T1_1 1 Tf 2.749 0 Td [(is )-99(backed )-99(by )-99(a )-99(\336le, )-99(wher)16(eas )-99(no )-99(\336le )-99(is )-99(associated)]TJ -17.326 -1.2 Td [(with an XSI shar)18(ed memory segment.)]TJ /TT1 1 Tf -3.6 -2.4 Td [(Example )195(\321 )195(Memor)]TJ 0.278 Tc 8.568 0 Td (yM)Tj 0 Tc 1.667 0 Td (apping of)Tj /TT2 1 Tf 4.778 0 Td (/dev/zero)Tj /T1_1 1 Tf -11.413 -2.4 Td [(Shar)18(ed )-227(memory )-227(can )-227(be )-227(used )-227(between )-227(unr)17(elated )-227(pr)18(ocesses. )-477(But)-477(if )-227(the )-227(pr)18(ocesses )-227(ar)17(e)]TJ -0.018 Tc 0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(lated, some implementations pr)18(ovide a dif)18(fer)18(ent technique.)]TJ 7.9923 0 0 7.9923 183.4244 281.13 Tm [(The )-93(following )-93(technique )-93(works )-93(on )-93(Fr)19(eeBSD )-93(8.0, )-93(Linux )-93(3.2.0, )-93(and )-93(Solaris )-93(10.)-593(Mac )-93(OS )-93(X )-93(10.6.8)]TJ 0 -1.25 TD [(curr)18(ently )-10(doesn\325t )-10(support )-10(the )-10(mapping )-10(of )-10(character )-10(devices )-10(into )-10(the )-10(addr)21(ess )-10(space )-10(of )-10(a )-10(pr)19(ocess.)]TJ 9.9904 0 0 9.9904 147.4589 253.1568 Tm [(The )-52(device)]TJ /TT0 1 Tf 5.147 0 Td (/dev/zero)Tj /T1_1 1 Tf 5.702 0 Td [(is )-52(an )-52(in\336nite )-52(sour)17(ce )-52(of )-52(0 )-52(bytes )-52(when )-52(r)18(ead. )-302(This)-302(device )-52(also)]TJ -12.65 -1.2 Td [(accepts )-91(any )-91(data )-91(that )-91(is )-91(written )-91(to )-91(it, )-91(ignoring )-91(the )-91(data.)-591(Our )-91(inter)18(est )-91(in )-91(this )-91(device )-91(for)]TJ 0 -1.2 TD [(IPC arises fr)18(om its special pr)18(operties when it is memory mapped.)]TJ 0.883 Tc 1.8 -1.8 Td (\245A)Tj 0.3902 Tc 2.267 0 Td (nu)Tj 0 Tc 1.575 0 Td [(nnamed )-140(memory )-140(r)18(egion )-140(is )-140(cr)18(eated )-140(whose )-140(size )-140(is )-140(the )-140(second )-140(ar)16(gument )-140(to)]TJ /TT0 1 Tf -2.353 -1.2 Td (mmap)Tj /T1_1 1 Tf 0.25 Tc (,r)Tj 0 Tc 3.277 0 Td [(ounded up to the near)18(est page size on the system.)]TJ 0.883 Tc -4.766 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he memory r)18(egion is initialized to 0.)]TJ 0.883 Tc -2.102 -1.6 Td (\245M)Tj 0 Tc 2.435 0 Td [(ultiple )-250(pr)18(ocesses )-250(can )-250(shar)]TJ 0.5004 Tc 11.99 0 Td (et)Tj 0 Tc 1.305 0 Td [(his )-250(r)18(egion )-250(if )-250(a )-250(common )-250(ancestor )-250(speci\336es )-250(the)]TJ /TT0 1 Tf -14.242 -1.2 Td (MAP_SHARED)Tj /T1_1 1 Tf 6.25 0 Td (\337ag to)Tj /TT0 1 Tf 3.036 0 Td (mmap)Tj /T1_1 1 Tf (.)Tj -12.575 -1.8 Td [(The pr)18(ogram in Figur)]TJ 0.25 Tc 9.538 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.33 is an example that uses this special device.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46943 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (566)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(When )-106(a )-106(pr)18(ocess )-106(is )-106(done )-106(with )-106(a )-106(shar)18(ed )-106(r)20(esour)18(ce )-106(that )-106(is )-106(contr)19(olled )-106(by )-106(a )-106(semaphor)18(e, )-106(the)]TJ -0 -1.2 Td (semaphor)Tj 0.2913 Tc 4.392 0 Td (ev)Tj 0 Tc 1.335 0 Td [(alue )-41(is )-41(incr)18(emented )-41(by )-41(1.)-542(If )-41(any )-41(other )-41(pr)18(ocesses )-41(ar)]TJ 0.2914 Tc 22.563 0 Td (ea)Tj 0 Tc 1.27 0 Td [(sleep, )-41(waiting )-41(for )-41(the)]TJ -29.561 -1.2 Td [(semaphor)18(e, they ar)]TJ 0.25 Tc 8.441 0 Td (ea)Tj 0 Tc 1.229 0 Td (wakened.)Tj -0.092 Tc -7.87 -1.2 Td [(To )-535(i)]TJ 0 Tc 1.959 0 Td [(mplement )-351(semaphor)18(es )-351(corr)17(ectly)]TJ 0.6013 Tc 14.769 0 Td (,t)Tj 0 Tc 1.177 0 Td [(he )-351(test )-351(of )-351(a )-351(semaphor)17(e\325s )-351(value )-351(and )-351(the)]TJ -19.705 -1.2 Td [(decr)18(ementing )-108(of )-108(this )-108(value )-108(must )-108(be )-108(an )-108(atomic )-108(operation.)-604(For )-108(this )-108(r)18(eason, )-108(semaphor)19(es)]TJ 0 -1.2 Td (ar)Tj 0.25 Tc 0.877 0 Td (en)Tj 0 Tc 1.311 0 Td (ormally implemented inside the kernel.)Tj 0.4727 Tc -0.388 -1.2 Td (Ac)Tj 0 Tc 1.695 0 Td [(ommon )-223(form )-223(of )-223(semaphor)19(e)-473(is)-473(c)1(alled )-223(a)]TJ /T1_2 1 Tf 18.486 0 Td [(binary )-223(semaphor)18(e)]TJ /T1_1 1 Tf 0.7226 Tc (.I)Tj 0.4726 Tc 8.616 0 Td (tc)Tj 0 Tc 1.243 0 Td [(ontr)18(ols )-223(a )-223(single)]TJ -0.018 Tc -31.84 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sour)18(ce, )-205(and )-205(its )-205(value )-205(is )-205(initialized )-205(to )-205(1.)-705(In )-205(general, )-205(however)]TJ 0.4552 Tc 28.144 0 Td (,as)Tj 0 Tc 2.084 0 Td (emaphor)Tj 0.4553 Tc 3.968 0 Td (ec)Tj 0 Tc 1.378 0 Td [(an )-205(be)]TJ -36.431 -1.2 Td [(initialized )-3(to )-3(any )-3(positive )-3(value, )-3(with )-3(the )-3(value )-3(indicating )-3(how )-3(many )-3(units )-3(of )-3(the )-3(shar)14(ed)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(sour)18(ce ar)]TJ 0.25 Tc 4 0 Td (ea)Tj 0 Tc 1.229 0 Td (vailable for sharing.)Tj -4.285 -1.2 Td [(XSI )-266(semaphor)18(es )-266(ar)18(e, )-266(unfortunately)]TJ 0.516 Tc 15.989 0 Td (,m)Tj 0 Tc 1.649 0 Td (or)Tj 0.516 Tc 0.923 0 Td (ec)Tj 0 Tc 1.439 0 Td [(omplicated )-266(than )-266(this.)-766(Thr)18(ee )-266(featur)18(es)]TJ -21.8 -1.2 Td (contribute to this unnecessary complication.)Tj 1.8 -1.8 Td [(1. )-633(A)-417(semaphor)18(e)-417(is)-417(not )-167(simply )-167(a )-167(single )-167(non-negative )-167(value.)-666(Instead, )-167(we )-167(have )-167(to)]TJ 1.633 -1.2 Td [(de\336ne )-2(a )-2(semaphor)18(e)-252(as)-252(a)-252(set )-2(of )-2(one )-2(or )-2(mor)]TJ 0.2521 Tc 18.281 0 Td (es)Tj 0 Tc 1.155 0 Td (emaphor)Tj 0.2521 Tc 3.968 0 Td (ev)Tj 0 Tc 1.296 0 Td [(alues. )-252(When)-252(we )-2(cr)18(eate )-2(a)]TJ -24.701 -1.2 Td [(semaphor)18(e, we specify the number of values in the set.)]TJ -1.633 -1.6 Td [(2. )-633(The)-597(cr)18(eation )-347(of )-347(a )-347(semaphor)]TJ 0.5966 Tc 15.009 0 Td (e\()Tj /TT0 1 Tf 0 Tc 1.409 0 Td (semget)Tj /T1_1 1 Tf [(\))-597(is)-597(i)1(ndependent )-347(of )-347(its )-347(initialization)]TJ -14.785 -1.2 Td (\()Tj /TT0 1 Tf (semctl)Tj /T1_1 1 Tf [(\). )-624(This)-623(is )-374(a )-374(fatal )-374(\337aw)]TJ 0.6237 Tc 14.809 0 Td (,s)Tj 0 Tc 1.298 0 Td [(ince )-374(we )-374(cannot )-374(atomically )-374(cr)18(eate )-374(a )-374(new)]TJ -16.107 -1.2 Td (semaphor)Tj 0.25 Tc 4.392 0 Td (es)Tj 0 Tc 1.153 0 Td (et and initialize all the values in the set.)Tj -7.178 -1.6 Td [(3. )-633(Since)-382(all )-132(forms )-132(of )-132(XSI )-132(IPC )-132(r)18(emain )-132(in )-132(existence )-132(even )-132(when )-132(no )-132(pr)18(ocess )-132(is )-132(using)]TJ 1.633 -1.2 Td [(them, )-69(we )-69(have )-69(to )-69(worry )-69(about )-69(a )-69(pr)17(ogram )-69(that )-69(terminates )-69(without )-69(r)18(eleasing )-69(the)]TJ T* [(semaphor)18(es )-193(it )-193(has )-193(been )-193(allocated.)-691(The)]TJ /T1_2 1 Tf 18.329 0 Td (undo)Tj /T1_1 1 Tf 2.499 0 Td (featur)Tj 0.4427 Tc 2.618 0 Td (et)Tj 0 Tc 1.248 0 Td [(hat )-193(we )-193(describe )-193(later )-193(is)]TJ -24.694 -1.2 Td (supposed to handle this.)Tj -1.633 -1.8 Td (The kernel maintains a)Tj /TT0 1 Tf 10.335 0 Td (semid_ds)Tj /T1_1 1 Tf 5.05 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ef)Tj 0 Tc 1.062 0 Td (or each semaphor)Tj 0.25 Tc 7.838 0 Td (es)Tj 0 Tc 1.153 0 Td (et:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5915 368.2779 Tm (struct semid_ds {)Tj 1.2 -1.189 Td [(struct ipc_perm)-1200(sem_perm; )-600(/*)-600(see Section 15.6.2 */)]TJ 0 -1.189 TD [(unsigned short)-1800(sem_nsems; /* # of semaphores in set */)]TJ T* (time_t )Tj 10.2 0 Td [(sem_otime;)-600(/* last-semop\(\) time */)]TJ -10.2 -1.189 Td (time_t )Tj 10.2 0 Td [(sem_ctime;)-600(/* last-change time */)]TJ -10.2 -1.189 Td (.)Tj 0 -0.476 TD (.)Tj T* (.)Tj -1.2 -1.189 Td (};)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5926 277.5231 Tm [(The )-15(Single )-15(UNIX )-15(Speci\336cation )-15(de\336nes )-15(the )-15(\336elds )-15(shown, )-15(but )-15(implementations )-15(can )-15(de\336ne)]TJ 0 -1.2 TD (additional members in the)Tj /TT0 1 Tf 11.905 0 Td (semid_ds)Tj /T1_1 1 Tf 5.05 0 Td [(str)8(uctur)18(e.)]TJ -15.155 -1.2 Td [(Each )-109(semaphor)18(e)-359(is)-359(r)18(epr)18(esented )-109(by )-109(an )-109(anonymous )-109(str)8(uctur)]TJ 0.3589 Tc 26.352 0 Td (ec)Tj 0 Tc 1.282 0 Td [(ontaining )-109(at )-109(least )-109(the)]TJ -29.434 -1.2 Td (following members:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5916 224.8267 Tm (struct {)Tj 1.2 -1.189 Td [(unsigned short)-1200(semval; )-1200(/*)-600(semaphore value, always >= 0 */)]TJ 0 -1.189 TD (pid_t )Tj 9.6 0 Td [(sempid;)-1800(/* pid for last operation */)]TJ -9.6 -1.189 Td [(unsigned short)-1200(semncnt; )-600(/*)]TJ 0.6 Tc 17.4 0 Td (#p)Tj 0 Tc 1.8 0 Td (rocesses awaiting semval>curval */)Tj -19.2 -1.189 Td [(unsigned short)-1200(semzcnt; )-600(/*)]TJ 0.6 Tc 17.4 0 Td (#p)Tj 0 Tc 1.8 0 Td (rocesses awaiting semval==0 */)Tj -19.2 -1.189 Td (.)Tj 0 -0.476 TD (.)Tj 0 -0.476 TD (.)Tj -1.2 -1.189 Td (};)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5927 134.0721 Tm (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td [(5.28 lists the system limits that af)18(fect semaphor)]TJ 0.25 Tc 20.764 0 Td (es)Tj 0 Tc 1.153 0 Td (ets.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46944 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.7)]TJ 36.151 0 Td [(Message )-250(Queues)]TJ /T1_1 1 Tf 9.682 0 Td (563)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ll )-155(see )-155(that )-155(these )-155(thr)18(ee )-155(commands )-155(\()]TJ /TT0 1 Tf (IPC_STAT)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 21.6 0 Td (IPC_SET)Tj /T1_0 1 Tf 0.405 Tc (,a)Tj 0 Tc 5.355 0 Td (nd)Tj /TT0 1 Tf 1.598 0 Td (IPC_RMID)Tj /T1_0 1 Tf 0.405 Tc (\)a)Tj -0.018 Tc 6.038 0 Td [(re )-191(a)]TJ 0 Tc 1.761 0 Td (lso)Tj -37.739 -1.2 Td [(pr)18(ovided for semaphor)18(es and shar)18(ed memory)111(.)]TJ 1.8 -1.2 Td (Data is placed onto a message queue by calling)Tj /TT0 1 Tf 21.024 0 Td (msgsnd)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5914 629.4622 Tm (#include )Tj 0 -1.783 TD (int msgsnd\(int)Tj /T1_2 1 Tf 9 0 Td (msqid)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.208 0 Td (onst void *)Tj /T1_2 1 Tf (ptr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 9.622 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.43 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -5.809 -1.783 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5929.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 580.5303 Tm [(As )-1(we )-1(mentioned )-1(earlier)]TJ 0.2513 Tc 10.804 0 Td (,e)Tj 0 Tc 0.98 0 Td [(ach )-1(message )-1(is )-1(composed )-1(of )-1(a )-1(positive )-1(long )-1(integer )-1(type )-1(\336eld,)]TJ 0.3228 Tc -11.784 -1.2 Td (an)Tj 0 Tc 1.405 0 Td [(on-negative )-73(length )-73(\()]TJ /T1_2 1 Tf (nbytes)Tj /T1_0 1 Tf [(\), )-73(and )-73(the )-73(actual )-73(data )-73(bytes )-73(\(corr)19(esponding )-73(to )-73(the )-73(length\).)]TJ -1.405 -1.2 Td (Messages ar)Tj 0.25 Tc 5.359 0 Td (ea)Tj 0 Tc 1.229 0 Td (lways placed at the end of the queue.)Tj -4.788 -1.2 Td (The)Tj /T1_2 1 Tf 1.949 0 Td (ptr)Tj /T1_0 1 Tf 1.497 0 Td [(ar)18(gument )-25(points )-25(to )-25(a )-25(long )-25(integer )-25(that )-25(contains )-25(the )-25(positive )-25(integer )-25(message)]TJ -5.247 -1.2 Td [(type, )-53(and )-53(it )-53(is )-53(immediately )-53(followed )-53(by )-53(the )-53(message )-53(data.)-558(\(Ther)18(e)-303(is)-303(no)-303(m)-1(essage )-53(data )-53(if)]TJ /T1_2 1 Tf -0 -1.2 Td (nbytes)Tj /T1_0 1 Tf 3.011 0 Td [(is )-131(0.\))-631(If )-131(the )-131(lar)16(gest )-131(message )-131(we )-131(send )-131(is )-131(512 )-131(bytes, )-131(we )-131(can )-131(de\336ne )-131(the )-131(following)]TJ -3.011 -1.2 Td [(str)8(uctur)18(e:)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5819 492.9107 Tm (struct mymesg {)Tj 1.2 -1.189 Td [(long )-600(mtype;)-3600(/* positive message type */)]TJ 0 -1.189 TD [(char )-600(mtext[512];)-600(/* message data, of length)]TJ /T1_2 1 Tf 27 0 Td (nbytes)Tj /TT0 1 Tf 3.23 0 Td (*/)Tj -31.43 -1.189 Td (};)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5839 443.8865 Tm (The)Tj /T1_2 1 Tf 2.075 0 Td (ptr)Tj /T1_0 1 Tf 1.623 0 Td [(ar)18(gument )-151(is )-151(then )-151(a )-151(pointer )-151(to )-151(a)]TJ /TT0 1 Tf 14.889 0 Td (mymesg)Tj /T1_0 1 Tf 4.001 0 Td [(str)8(uctur)18(e. )-401(The)-401(message )-151(type )-151(can )-151(be)]TJ -22.588 -1.2 Td [(used by the r)18(eceiver to fetch messages in an or)18(der other than \336rst in, \336rst out.)]TJ 7.999 0 0 7.999 183.5776 413.8901 Tm [(Some )-195(platforms )-195(support )-195(both )-195(32)]TJ 15.014 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-195(and )-195(64)]TJ 4.753 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-195(envir)18(onments. )-445(This)-445(af)18(fects )-195(the )-195(size )-195(of )-195(long)]TJ -20.433 -1.25 Td [(integers )-95(and )-95(pointers.)-595(For )-95(example, )-95(on )-95(64)]TJ 19.063 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-95(SP)92(ARC )-95(systems, )-95(Solaris )-95(allows )-95(both )-95(32)]TJ 19.063 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-95(and)]TJ -38.792 -1.25 Td (64)Tj 1 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-5(applications )-5(to )-5(coexist.)-505(If )-5(a )-5(32)]TJ 14.666 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-5(application )-5(wer)18(e)-255(to)-255(exchange )-5(this )-5(str)8(uctur)]TJ 0.2553 Tc 19.966 0 Td (eo)Tj 0 Tc 1.28 0 Td [(ver )-5(a )-5(pipe)]TJ -37.579 -1.25 Td [(or )-9(a )-9(socket )-9(with )-9(a )-9(64)]TJ 9.045 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-9(application, )-9(pr)18(oblems )-9(would )-9(arise, )-9(because )-9(the )-9(size )-9(of )-9(a )-9(long )-9(integer )-9(is)]TJ 0.4046 Tc -9.378 -1.25 Td (4b)Tj 0 Tc 1.458 0 Td [(ytes )-155(in )-155(a )-155(32)]TJ 5.372 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-155(application, )-155(but )-155(8 )-155(bytes )-155(in )-155(a )-155(64)]TJ 15.918 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-155(application.)-654(This )-155(means )-155(that )-155(a )-155(32)]TJ 17.083 0.09 Td (-)Tj 0.333 -0.09 Td (bit)Tj -40.83 -1.25 Td [(application )-123(will )-123(expect )-123(that )-123(the)]TJ /TT0 1 Tf 14.514 0 Td (mtext)Tj /T1_0 1 Tf 3.373 0 Td [(\336eld )-123(will )-123(start )-123(4 )-123(bytes )-123(after )-123(the )-123(start )-123(of )-123(the )-123(str)3(uctur)18(e,)]TJ -17.887 -1.25 Td [(wher)18(eas )-108(a )-108(64)]TJ 5.891 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-108(application )-108(will )-108(expect )-108(the)]TJ /TT0 1 Tf 13.872 0 Td (mtext)Tj /T1_0 1 Tf 3.358 0 Td [(\336eld )-108(to )-108(start )-108(8 )-108(bytes )-108(after )-108(the )-108(start )-108(of )-108(the)]TJ -23.454 -1.25 Td [(str)8(uctur)18(e. )-346(In)-346(this )-96(situation, )-96(part )-96(of )-96(the )-96(64)]TJ 18.66 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-96(application\325s)]TJ /TT0 1 Tf 7.537 0 Td (mtype)Tj /T1_0 1 Tf 3.346 0 Td [(\336eld )-96(will )-96(appear )-96(as )-96(part )-96(of)]TJ -29.876 -1.25 Td (the)Tj /TT0 1 Tf 1.671 0 Td (mtext)Tj /T1_0 1 Tf 3.284 0 Td [(\336eld )-33(to )-33(the )-33(32)]TJ 6.096 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-33(application, )-33(and )-33(the )-33(\336rst )-33(4 )-33(bytes )-33(in )-33(the )-33(32)]TJ 19.872 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-33(application\325s)]TJ /TT0 1 Tf 7.412 0 Td (mtext)Tj /T1_0 1 Tf -39 -1.25 Td [(\336eld will be interpr)18(eted as a part of the)]TJ /TT0 1 Tf 17.433 0 Td (mtype)Tj /T1_0 1 Tf 3.25 0 Td (\336eld by the 64)Tj 6.232 0.09 Td (-)Tj 0.333 -0.09 Td (bit application.)Tj -27.248 -2.125 Td [(This )-219(pr)18(oblem )-219(doesn\325t )-219(happen )-219(with )-219(XSI )-219(message )-219(queues, )-219(however)]TJ 0.719 Tc 30.495 0 Td (.S)Tj 0 Tc 1.494 0 Td [(olaris )-219(implements )-219(the)]TJ -31.989 -1.25 Td (32)Tj 1 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-56(version )-56(of )-56(the )-56(IPC )-56(system )-56(calls )-56(with )-56(dif)19(fer)18(ent )-56(entry )-56(points )-56(than )-56(the )-56(64)]TJ 32.698 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-56(version )-56(of )-56(the)]TJ -34.364 -1.25 Td [(IPC )-30(system )-30(calls.)-530(The )-30(system )-30(calls )-30(know )-30(how )-30(to )-30(deal )-30(with )-30(a )-30(32)]TJ 28.033 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-30(application )-30(communicating)]TJ -28.366 -1.25 Td [(with )-47(a )-47(64)]TJ 4.128 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-47(application, )-47(and )-47(tr)18(eat )-47(the )-47(type )-47(\336eld )-47(specially )-47(to )-47(avoid )-47(it )-47(interfering )-47(with )-47(the )-47(data)]TJ -4.461 -1.25 Td [(portion )-173(of )-173(the )-173(message.)-673(The )-173(only )-173(potential )-173(pr)18(oblem )-173(is )-173(a )-173(loss )-173(of )-173(information )-173(when )-173(a )-173(64)]TJ 40.497 0.09 Td (-)Tj 0.333 -0.09 Td (bit)Tj -40.83 -1.25 Td [(application )-28(sends )-28(a )-28(message )-28(with )-28(a )-28(value )-28(in )-28(the )-28(8)]TJ 21.973 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-28(type )-28(\336eld )-28(that )-28(is )-28(lar)18(ger )-28(than )-28(will )-28(\336t )-28(in )-28(a)]TJ -22.306 -1.25 Td (32)Tj 1 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-127(application\325s )-127(4)]TJ 8.099 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-127(type )-127(\336eld.)-627(In )-127(this )-127(case, )-127(the )-127(32)]TJ 16.027 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-127(application )-127(will )-127(see )-127(a )-127(tr)8(uncated)]TJ -26.125 -1.25 Td (type value.)Tj 9.9988 0 0 9.9988 147.5823 216.9138 Tm (A)Tj /T1_2 1 Tf 1.173 0 Td (\337ag)Tj /T1_0 1 Tf 1.884 0 Td [(value )-145(of)]TJ /TT0 1 Tf 4.107 0 Td (IPC_NOWAIT)Tj /T1_0 1 Tf 6.395 0 Td [(can )-145(be )-145(speci\336ed.)-645(This )-145(is )-145(similar )-145(to )-145(the )-145(nonblocking)]TJ -15.359 -1.2 Td [(I/O )-38(\337ag )-38(for )-38(\336le )-38(I/O )-38(\(Section )-38(14.2\).)-538(If )-38(the )-38(message )-38(queue )-38(is )-38(full )-38(\(either )-38(the )-38(total )-38(number)]TJ 0 -1.2 TD [(of )-94(messages )-94(on )-94(the )-94(queue )-94(equals )-94(the )-94(system )-94(limit, )-94(or )-94(the )-94(total )-94(number )-94(of )-94(bytes )-94(on )-94(the)]TJ T* [(queue )-311(equals )-311(the )-311(system )-311(limit\), )-311(specifying)]TJ /TT0 1 Tf 20.648 0 Td (IPC_NOWAIT)Tj /T1_0 1 Tf 6.561 0 Td (causes)Tj /TT0 1 Tf 3.435 0 Td (msgsnd)Tj /T1_0 1 Tf 4.161 0 Td [(to )-311(r)18(eturn)]TJ -34.805 -1.2 Td [(immediately )-54(with )-54(an )-54(err)18(or )-54(of)]TJ /TT0 1 Tf 13.296 0 Td (EAGAIN)Tj /T1_0 1 Tf 0.554 Tc (.I)Tj 0 Tc 4.741 0 Td (f)Tj /TT0 1 Tf 0.637 0 Td (IPC_NOWAIT)Tj /T1_0 1 Tf 6.304 0 Td [(is )-54(not )-54(speci\336ed, )-54(we )-54(ar)]TJ 0.304 Tc 9.759 0 Td (eb)Tj 0 Tc 1.336 0 Td (locked)Tj -36.073 -1.2 Td [(until )-15(ther)18(e)-265(is)-265(r)18(oom )-15(for )-15(the )-15(message, )-15(the )-15(queue )-15(is )-15(r)18(emoved )-15(fr)18(om )-15(the )-15(system, )-15(or )-15(a )-15(signal )-15(is)]TJ T* [(caught )-12(and )-12(the )-12(signal )-12(handler )-12(r)18(eturns. )-262(In)-262(the )-12(second )-12(case, )-12(an )-12(err)18(or )-12(of)]TJ /TT0 1 Tf 30.909 0 Td (EIDRM)Tj /T1_0 1 Tf 3.262 0 Td [(is )-12(r)18(eturned)]TJ -34.171 -1.2 Td [(\(\324)37(\324identi\336er r)18(emoved\325)37(\325\); in the last case, the err)18(or r)18(eturned is)]TJ /TT0 1 Tf 26.497 0 Td (EINTR)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46945 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (562)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-154(\336rst )-154(function )-154(normally )-154(called )-154(is)]TJ /TT0 1 Tf 16.929 0 Td (msgget)Tj /T1_1 1 Tf 4.004 0 Td [(to )-154(either )-154(open )-154(an )-154(existing )-154(queue )-154(or)]TJ -22.733 -1.2 Td [(cr)18(eate a new queue.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.591 640.2616 Tm (#include )Tj 0 -1.902 TD (int msgget\(key_t)Tj /T1_2 1 Tf 10.2 0 Td (key)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.133 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 4.138 -1.902 Td (Returns: message queue ID if OK,)Tj /TT1 1 Tf 15.193 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6015.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 587.9894 Tm [(In )-152(Section )-152(15.6.1, )-152(we )-152(described )-152(the )-152(r)8(ules )-152(for )-152(converting )-152(the)]TJ /T1_2 1 Tf 27.48 0 Td (key)Tj /T1_1 1 Tf 1.735 0 Td [(into )-152(an )-152(identi\336er )-152(and)]TJ -29.215 -1.2 Td [(discussed )-89(whether )-89(a )-89(new )-89(queue )-89(is )-89(cr)18(eated )-89(or )-89(an )-89(existing )-89(queue )-89(is )-89(r)13(efer)18(enced. )-339(When)-340(a)]TJ 0 -1.2 TD [(new )-29(queue )-29(is )-29(cr)17(eated, )-29(the )-29(following )-29(members )-29(of )-29(the)]TJ /TT0 1 Tf 23.334 0 Td (msqid_ds)Tj /T1_1 1 Tf 5.079 0 Td [(str)8(uctur)]TJ 0.2794 Tc 3.49 0 Td (ea)Tj -0.018 Tc 1.258 0 Td [(re )-65(i)]TJ 0 Tc 1.426 0 Td (nitialized.)Tj 0.883 Tc -32.788 -1.8 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.402 0 Td (ipc_perm)Tj /T1_1 1 Tf 5.141 0 Td [(str)8(uctur)18(e)-341(is)-341(initialized )-91(as )-91(described )-91(in )-91(Section )-91(15.6.2.)-590(The)]TJ /TT0 1 Tf 26.155 0 Td (mode)Tj /T1_1 1 Tf -33.311 -1.2 Td [(member )-234(of )-234(this )-234(str)9(uctur)18(e)-484(is)-484(s)1(et )-234(to )-234(the )-234(corr)18(esponding )-234(permission )-234(bits )-234(of)]TJ /T1_2 1 Tf 33.972 0 Td (\337ag)Tj /T1_1 1 Tf (.)Tj -33.972 -1.2 Td (These permissions ar)Tj 0.25 Tc 9.294 0 Td (es)Tj 0 Tc 1.153 0 Td [(peci\336ed with the values fr)18(om Figur)]TJ 0.25 Tc 15.564 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.24.)Tj -28.729 -1.48 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (msg_qnum)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 5.419 0 Td (msg_lspid)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 6.019 0 Td (msg_lrpid)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 6.019 0 Td (msg_stime)Tj /T1_1 1 Tf 0.3689 Tc (,a)Tj 0 Tc 6.519 0 Td (nd)Tj /TT0 1 Tf 1.562 0 Td (msg_rtime)Tj /T1_1 1 Tf 5.769 0 Td (ar)Tj 0.3689 Tc 0.877 0 Td (ea)Tj 0 Tc 1.348 0 Td [(ll )-119(set)]TJ -33.531 -1.2 Td (to 0.)Tj -1.489 -1.48 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (msg_ctime)Tj /T1_1 1 Tf 5.65 0 Td [(is set to the curr)18(ent time.)]TJ -7.139 -1.48 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (msg_qbytes)Tj /T1_1 1 Tf 6.25 0 Td (is set to the system limit.)Tj -9.539 -1.8 Td [(On )-106(success,)]TJ /TT0 1 Tf 5.572 0 Td (msgget)Tj /T1_1 1 Tf -0.018 Tc 3.956 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-106(the )-106(non-negative )-106(queue )-106(ID.)-606(This )-106(value )-106(is )-106(then )-106(used )-106(with)]TJ -10.384 -1.2 Td [(the other thr)18(ee message queue functions.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.036 0 Td (msgctl)Tj /T1_1 1 Tf 3.962 0 Td [(function )-112(performs )-112(various )-112(operations )-112(on )-112(a )-112(queue.)-615(This )-112(function )-112(and)]TJ -7.799 -1.2 Td [(the )-12(r)18(elated )-12(functions )-12(for )-12(semaphor)18(es )-12(and )-12(shar)18(ed )-12(memory )-12(\()]TJ /TT0 1 Tf 25.985 0 Td (semctl)Tj /T1_1 1 Tf 3.862 0 Td (and)Tj /TT0 1 Tf 1.955 0 Td (shmctl)Tj /T1_1 1 Tf 0.2616 Tc (\)a)Tj -0.018 Tc 4.695 0 Td [(re )-48(t)]TJ 0 Tc 1.444 0 Td (he)Tj /TT0 1 Tf -37.939 -1.2 Td (ioctl)Tj /T1_1 1 Tf (-like functions for XSI IPC \(i.e., the garbage-can functions\).)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5833 382.914 Tm (#include )Tj 0 -1.902 TD (int msgctl\(int)Tj /T1_2 1 Tf 9 0 Td (msqid)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.208 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (cmd)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.485 0 Td (truct msqid_ds *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 11.082 0 Td (\);)Tj /T1_1 1 Tf -2.724 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3442.25 cm 0 0 m 0 477 l 3900 477 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 330.6605 Tm (The)Tj /T1_2 1 Tf 2.047 0 Td (cmd)Tj /T1_1 1 Tf 2.058 0 Td [(ar)18(gument )-123(speci\336es )-123(the )-123(command )-123(to )-123(be )-123(performed )-123(on )-123(the )-123(queue )-123(speci\336ed )-123(by)]TJ /T1_2 1 Tf -4.104 -1.2 Td (msqid)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf 1.8 -2.04 Td (IPC_STAT)Tj /T1_1 1 Tf 5.4 0 Td [(Fetch )-61(the)]TJ /TT0 1 Tf 4.396 0 Td (msqid_ds)Tj /T1_1 1 Tf 5.111 0 Td [(str)8(uctur)]TJ 0.3109 Tc 3.49 0 Td (ef)Tj 0 Tc 1.123 0 Td [(or )-61(this )-61(queue, )-61(storing )-61(it )-61(in )-61(the )-61(str)9(uctur)18(e)]TJ -14.12 -1.2 Td (pointed to by)Tj /T1_2 1 Tf 6.167 0 Td (buf)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf -11.567 -1.6 Td (IPC_SET)Tj /T1_1 1 Tf 5.4 0 Td [(Copy )-154(the )-154(following )-154(\336elds )-154(fr)18(om )-154(the )-154(str)6(uctur)]TJ 0.4044 Tc 19.921 0 Td (ep)Tj 0 Tc 1.484 0 Td [(ointed )-154(to )-154(by)]TJ /T1_2 1 Tf 6.029 0 Td (buf)Tj /T1_1 1 Tf 1.701 0 Td [(to )-154(the)]TJ /TT0 1 Tf -29.137 -1.2 Td (msqid_ds)Tj /T1_1 1 Tf 5.534 0 Td [(str)8(uctur)]TJ 0.7344 Tc 3.49 0 Td (ea)Tj 0 Tc 1.713 0 Td [(ssociated )-484(with )-484(this )-484(queue:)]TJ /TT0 1 Tf 13.612 0 Td (msg_perm.uid)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -24.35 -1.2 Td (msg_perm.gid)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 7.8 0 Td (msg_perm.mode)Tj /T1_1 1 Tf 0.3496 Tc (,a)Tj 0 Tc 8.9 0 Td (nd)Tj /TT0 1 Tf 1.543 0 Td (msg_qbytes)Tj /T1_1 1 Tf 0.5996 Tc (.T)Tj 0 Tc 7.463 0 Td [(his )-100(command)]TJ -25.704 -1.2 Td [(can )-294(be )-294(executed )-294(only )-294(by )-294(a )-294(pr)19(ocess )-294(whose )-294(ef)18(fective )-294(user )-294(ID )-294(equals)]TJ /TT0 1 Tf 0 -1.2 TD (msg_perm.cuid)Tj /T1_1 1 Tf 8.248 0 Td (or)Tj /TT0 1 Tf 1.389 0 Td (msg_perm.uid)Tj /T1_1 1 Tf 7.648 0 Td [(or )-198(by )-198(a )-198(pr)18(ocess )-198(with )-198(super)7(user)]TJ -17.286 -1.2 Td [(privileges. )-250(Only)-250(the super)8(user can incr)18(ease the value of)]TJ /TT0 1 Tf 24.925 0 Td (msg_qbytes)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf -30.325 -1.6 Td (IPC_RMID)Tj /T1_1 1 Tf 5.4 0 Td [(Remove )-108(the )-108(message )-108(queue )-108(fr)16(om )-108(the )-108(system )-108(and )-108(any )-108(data )-108(still )-108(on )-108(the)]TJ T* [(queue. )-406(This)]TJ -0.018 Tc 5.946 0 Td (re)Tj 0 Tc 0.856 0 Td [(moval )-156(is )-156(immediate.)-656(Any )-156(other )-156(pr)18(ocess )-156(still )-156(using )-156(the)]TJ -6.802 -1.2 Td [(message )-342(queue )-342(will )-342(get )-342(an )-342(err)20(or )-341(of)]TJ /TT0 1 Tf 17.831 0 Td (EIDRM)Tj /T1_1 1 Tf 3.591 0 Td [(on )-341(its )-341(next )-341(attempted)]TJ -21.422 -1.2 Td [(operation )-237(on )-237(the )-237(queue.)-737(This )-237(command )-237(can )-237(be )-237(executed )-237(only )-237(by )-237(a)]TJ T* [(pr)18(ocess )-796(whose )-796(ef)18(fective )-796(user )-796(ID )-796(equals)]TJ /TT0 1 Tf 22.014 0 Td (msg_perm.cuid)Tj /T1_1 1 Tf 8.846 0 Td (or)Tj /TT0 1 Tf -30.859 -1.2 Td (msg_perm.uid)Tj /T1_1 1 Tf 7.45 0 Td [(or by a pr)18(ocess with super)8(user privileges.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46946 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.5)]TJ 41.174 0 Td (FIFOs)Tj /T1_1 1 Tf 4.659 0 Td (553)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -1.902 TD (int mkfifo\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,m)Tj 0 Tc 17.377 0 Td (ode_t)Tj /T1_2 1 Tf 3.6 0 Td (mode)Tj /TT0 1 Tf (\);)Tj -20.977 -1.902 Td (int mkfifoat\(int)Tj /T1_2 1 Tf 10.2 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,m)Tj 0 Tc 10.177 0 Td (ode_t)Tj /T1_2 1 Tf 3.6 0 Td (mode)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -1.304 -1.902 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT1 1 Tf 9.213 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6024.25 cm 0 0 m 0 649 l 3900 649 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 588.8693 Tm [(The )-445(speci\336cation )-445(of )-445(the)]TJ /T1_2 1 Tf 12.252 0 Td (mode)Tj /T1_0 1 Tf 2.806 0 Td [(ar)18(gument )-445(is )-445(the )-445(same )-445(as )-445(for )-445(the)]TJ /TT0 1 Tf 17.141 0 Td (open)Tj /T1_0 1 Tf 3.095 0 Td (function)Tj -35.293 -1.2 Td [(\(Section )-27(3.3\).)-527(The )-27(r)8(ules )-27(for )-27(the )-27(user )-27(and )-27(gr)16(oup )-27(ownership )-27(of )-27(the )-27(new )-27(FIFO )-27(ar)]TJ 0.2773 Tc 34.293 0 Td (et)Tj 0 Tc 1.082 0 Td [(he )-27(same)]TJ -35.376 -1.2 Td (as we described in Section 4.6.)Tj 1.8 -1.2 Td (The)Tj /TT0 1 Tf 1.927 0 Td (mkfifoat)Tj /T1_0 1 Tf 5.053 0 Td [(function )-3(is )-3(similar )-3(to )-3(the)]TJ /TT0 1 Tf 11.021 0 Td (mkfifo)Tj /T1_0 1 Tf 3.853 0 Td [(function, )-3(except )-3(that )-3(it )-3(can )-3(be )-3(used)]TJ -23.654 -1.2 Td [(to )-312(cr)18(eate )-312(a )-312(FIFO )-312(in )-312(a )-312(location )-312(r)17(elative )-312(to )-312(the )-312(dir)18(ectory )-312(r)17(epr)18(esented )-312(by )-312(the)]TJ /T1_2 1 Tf 36.284 0 Td (fd)Tj /T1_0 1 Tf 1.34 0 Td (\336le)Tj -37.625 -1.2 Td [(descriptor ar)18(gument. )-250(Like)-250(the other)]TJ /TT0 1 Tf 16.22 0 Td (*at)Tj /T1_0 1 Tf 2.05 0 Td (functions, ther)Tj 0.25 Tc 6.395 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(t)]TJ 0 Tc 1.432 0 Td [(hr)18(ee cases:)]TJ -25.526 -1.8 Td [(1. )-633(If)-376(the)]TJ /T1_2 1 Tf 4.442 0 Td (path)Tj /T1_0 1 Tf 2.153 0 Td [(parameter )-126(speci\336es )-126(an )-126(absolute )-126(pathname, )-126(then )-126(the)]TJ /T1_2 1 Tf 23.801 0 Td (fd)Tj /T1_0 1 Tf 1.154 0 Td [(parameter )-126(is)]TJ -29.918 -1.2 Td [(ignor)18(ed and the)]TJ /TT0 1 Tf 7.272 0 Td (mkfifoat)Tj /T1_0 1 Tf 5.05 0 Td (function behaves like the)Tj /TT0 1 Tf 11.293 0 Td (mkfifo)Tj /T1_0 1 Tf 3.85 0 Td (function.)Tj -29.098 -1.6 Td [(2. )-633(If)-426(the)]TJ /T1_2 1 Tf 4.542 0 Td (path)Tj /T1_0 1 Tf 2.203 0 Td [(parameter )-176(speci\336es )-176(a )-176(r)19(elative )-176(pathname )-176(and )-176(the)]TJ /T1_2 1 Tf 22.627 0 Td (fd)Tj /T1_0 1 Tf 1.204 0 Td [(parameter )-176(is )-176(a)]TJ -28.942 -1.2 Td [(valid )-50(\336le )-50(descriptor )-50(for )-50(an )-50(open )-50(dir)16(ectory)]TJ 0.3004 Tc 18.425 0 Td (,t)Tj 0 Tc 0.876 0 Td [(he )-50(pathname )-50(is )-50(evaluated )-50(r)18(elative )-50(to)]TJ -19.302 -1.2 Td [(this dir)18(ectory)111(.)]TJ -1.633 -1.6 Td [(3. )-633(If)-297(the)]TJ /T1_2 1 Tf 4.283 0 Td (path)Tj /T1_0 1 Tf 2.074 0 Td [(parameter )-47(speci\336es )-47(a )-47(r)18(elative )-47(pathname )-47(and )-47(the)]TJ /T1_2 1 Tf 21.724 0 Td (fd)Tj /T1_0 1 Tf 1.075 0 Td [(parameter )-47(has )-47(the)]TJ -27.522 -1.2 Td [(special )-277(value)]TJ /TT0 1 Tf 6.523 0 Td (AT_FDCWD)Tj /T1_0 1 Tf 0.5274 Tc (,t)Tj 0 Tc 5.903 0 Td [(he )-277(pathname )-277(is )-277(evaluated )-277(starting )-277(in )-277(the )-277(curr)15(ent)]TJ -12.426 -1.2 Td [(working dir)18(ectory)]TJ 0.25 Tc 7.924 0 Td (,a)Tj 0 Tc 1 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (mkfifoat)Tj /T1_0 1 Tf 5.05 0 Td (behaves like)Tj /TT0 1 Tf 5.699 0 Td (mkfifo)Tj /T1_0 1 Tf (.)Tj -22.749 -1.8 Td [(Once )-37(we )-37(have )-37(used)]TJ /TT0 1 Tf 8.995 0 Td (mkfifo)Tj /T1_0 1 Tf 3.887 0 Td (or)Tj /TT0 1 Tf 1.228 0 Td (mkfifoat)Tj /T1_0 1 Tf 5.087 0 Td [(to )-37(cr)18(eate )-37(a )-37(FIFO, )-37(we )-37(open )-37(it )-37(using)]TJ /TT0 1 Tf 15.353 0 Td (open)Tj /T1_0 1 Tf (.)Tj -36.35 -1.2 Td [(Indeed, )-202(the )-202(normal )-202(\336le )-202(I/O )-202(functions )-202(\(e.g.,)]TJ /TT0 1 Tf 20.246 0 Td (close)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.702 0 Td (read)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.102 0 Td (write)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.702 0 Td (unlink)Tj /T1_0 1 Tf 0.4516 Tc (\)a)Tj 0 Tc 4.885 0 Td [(ll )-202(work)]TJ -35.636 -1.2 Td (with FIFOs.)Tj 7.999 0 0 7.999 183.5778 359.2969 Tm [(Applications )-239(can )-239(cr)18(eate )-239(FIFOs )-239(with )-239(the)]TJ /TT0 1 Tf 18.82 0 Td (mknod)Tj /T1_0 1 Tf 3.489 0 Td (and)Tj /TT0 1 Tf 2.182 0 Td (mknodat)Tj /T1_0 1 Tf 4.689 0 Td [(functions. )-489(Because)-490(POSIX.1)]TJ -29.181 -1.25 Td [(originally )-110(didn\325t )-110(include)]TJ /TT0 1 Tf 11.381 0 Td (mknod)Tj /T1_0 1 Tf 0.3605 Tc (,t)Tj 0 Tc 3.937 0 Td (he)Tj /TT0 1 Tf 1.421 0 Td (mkfifo)Tj /T1_0 1 Tf 3.961 0 Td [(function )-110(was )-110(invented )-110(speci\336cally )-110(for )-110(POSIX.1.)]TJ -20.699 -1.25 Td (The)Tj /TT0 1 Tf 1.924 0 Td (mknod)Tj /T1_0 1 Tf 3.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (mknodat)Tj /T1_0 1 Tf 4.45 0 Td (functions ar)Tj 0.25 Tc 5.258 0 Td (ei)Tj 0 Tc 1.02 0 Td (ncluded in the XSI option in POSIX.1.)Tj -17.845 -2.25 Td [(POSIX.1 )-104(also )-104(includes )-104(support )-104(for )-104(the)]TJ /TT0 1 Tf 17.438 0 Td (mkfifo)Tj /T1_0 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.687 -0.04 Td [(command. )-354(All)-355(four )-104(platforms )-104(discussed )-104(in)]TJ -22.559 -1.25 Td [(this )-38(text )-38(pr)18(ovide )-38(this )-38(command.)-538(As )-38(a )-38(r)18(esult, )-38(we )-38(can )-38(cr)18(eate )-38(a )-38(FIFO )-38(using )-38(a )-38(shell )-38(command )-38(and)]TJ 0 -1.25 TD [(then access it with the normal shell I/O r)18(edir)18(ection.)]TJ 9.9988 0 0 9.9988 147.5818 281.3062 Tm (When we)Tj /TT0 1 Tf 4.456 0 Td (open)Tj /T1_0 1 Tf 0.25 Tc 2.65 0 Td (aF)Tj 0 Tc 1.306 0 Td (IFO, the nonblocking \337ag \()Tj /TT0 1 Tf (O_NONBLOCK)Tj /T1_0 1 Tf 0.25 Tc (\)a)Tj -0.018 Tc 18.925 0 Td (ff)Tj 0 Tc 0.648 0 Td (ects what happens.)Tj 0.883 Tc -27.985 -1.8 Td (\245I)Tj 0.3635 Tc 1.826 0 Td (nt)Tj 0 Tc 1.271 0 Td [(he )-113(normal )-113(case )-113(\(without)]TJ /TT0 1 Tf 11.4 0 Td (O_NONBLOCK)Tj /T1_0 1 Tf [(\), )-113(an)]TJ /TT0 1 Tf 8.392 0 Td (open)Tj /T1_0 1 Tf 2.764 0 Td [(for )-114(r)18(ead-only )-114(blocks )-114(until)]TJ -24.164 -1.2 Td [(some )-156(other )-156(pr)17(ocess )-156(opens )-156(the )-156(FIFO )-156(for )-156(writing.)-658(Similarly)]TJ 0.4064 Tc 26.421 0 Td (,a)Tj 0 Tc 1.156 0 Td (n)Tj /TT0 1 Tf 0.988 0 Td (open)Tj /T1_0 1 Tf 2.806 0 Td [(for )-156(write-)]TJ -31.373 -1.2 Td [(only blocks until some other pr)18(ocess opens the FIFO for r)18(eading.)]TJ 0.883 Tc -1.489 -1.6 Td (\245I)Tj 0 Tc 1.826 0 Td (f)Tj /TT0 1 Tf 0.635 0 Td (O_NONBLOCK)Tj /T1_0 1 Tf 6.302 0 Td [(is )-52(speci\336ed, )-52(an)]TJ /TT0 1 Tf 6.888 0 Td (open)Tj /T1_0 1 Tf 2.702 0 Td [(for )-52(r)18(ead-only )-52(r)18(eturns )-52(immediately)]TJ 0.5522 Tc 15.121 0 Td (.B)Tj 0 Tc 1.413 0 Td [(ut )-52(an)]TJ /TT0 1 Tf -33.398 -1.2 Td (open)Tj /T1_0 1 Tf 2.764 0 Td [(for )-114(write-only )-114(r)18(eturns)]TJ /TT1 1 Tf 10.185 0 Td (!)Tj /T1_0 1 Tf 0.3639 Tc (1w)Tj 0 Tc 2.247 0 Td (ith)Tj /TT0 1 Tf 1.563 0 Td (errno)Tj /T1_0 1 Tf 3.364 0 Td [(set )-114(to)]TJ /TT0 1 Tf 2.829 0 Td (ENXIO)Tj /T1_0 1 Tf 3.364 0 Td [(if )-114(no )-114(pr)18(ocess )-114(has )-114(the)]TJ -26.315 -1.2 Td [(FIFO open for r)18(eading.)]TJ -3.289 -1.8 Td [(As )-65(with )-65(a )-65(pipe, )-65(if )-65(we)]TJ /TT0 1 Tf 9.786 0 Td (write)Tj /T1_0 1 Tf 3.315 0 Td [(to )-65(a )-65(FIFO )-65(that )-65(no )-65(pr)18(ocess )-65(has )-65(open )-65(for )-65(r)18(eading, )-65(the )-65(signal)]TJ /TT0 1 Tf -13.102 -1.2 Td (SIGPIPE)Tj /T1_0 1 Tf 4.475 0 Td [(is )-25(generated.)-525(When )-25(the )-25(last )-25(writer )-25(for )-25(a )-25(FIFO )-25(closes )-25(the )-25(FIFO, )-25(an )-25(end )-25(of )-25(\336le )-25(is)]TJ -4.475 -1.2 Td [(generated for the r)18(eader of the FIFO.)]TJ 1.8 -1.2 Td [(It )-14(is )-14(common )-14(to )-14(have )-14(multiple )-14(writers )-14(for )-14(a )-14(given )-14(FIFO.)-515(This )-14(means )-14(that )-14(we )-14(have )-14(to)]TJ -1.8 -1.2 Td [(worry )-132(about )-132(atomic )-132(writes )-132(if )-132(we )-132(don\325t )-132(want )-132(the )-132(writes )-132(fr)21(om )-132(multiple )-132(pr)18(ocesses )-132(to )-132(be)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46947 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (534)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1508.25 6670.25 cm 0 0 m 3475 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 320.8128 658.9605 Tm [(Fr)18(eeBSD )-2416(Linux)-2382(Mac OS X)-2198(Solaris)]TJ 1.275 -1.25 Td [(8.0 )-3993(3.2.0)-3618(10.6.8 )-3868(10)]TJ -17.944 0.625 Td (IPC type)Tj 11.248 0 Td (SUS)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1508.25 6450.25 cm 0 0 m 3475 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1508.25 6430.25 cm 0 0 m 3475 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 154.8414 634.9238 Tm (half-duplex pipes)Tj 5.0115 Tc 15.938 0 Td (\245\()Tj 0 Tc 5.95 0 Td [(full\) )-4223(\245)]TJ 4.473 Tc 12.192 0 Td (\245\()Tj 0 Tc 5.412 0 Td (full\))Tj -39.492 -1.25 Td (FIFOs )Tj 15.937 0 Td (\245)Tj 5.262 Tc 6.407 0 Td (\245\245\245\245)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1508.25 6210.25 cm 0 0 m 3475 0 l S Q Q BT /T1_1 1 Tf 0 Tc 7.9986 0 0 7.9986 154.8321 612.8897 Tm (full-duplex pipes)Tj 14.464 0 Td [(allowed )-2789(\245,)-250(UDS )-2988(UDS)-3791(UDS )-2988(\245,)-250(UDS)]TJ -14.464 -1.25 Td [(named full-duplex pipes)-2790(obsolescent )-2571(UDS)-3791(UDS )-3541(UDS)-3238(\245, UDS)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1508.25 5990.25 cm 0 0 m 3475 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 154.8228 590.8582 Tm (XSI message queues)Tj 15.476 0 Td (XSI )Tj 6.868 0 Td (\245)Tj 5.262 Tc 5.868 0 Td (\245\245\245)Tj 0 Tc -28.212 -1.25 Td [(XSI semaphor)18(es )]TJ 15.476 0 Td (XSI)Tj 5.262 Tc 6.868 0 Td (\245\245\245\245)Tj 0 Tc -22.344 -1.25 Td [(XSI shar)18(ed memory)]TJ 15.476 0 Td (XSI )Tj 6.868 0 Td (\245)Tj 5.262 Tc 5.868 0 Td (\245\245\245)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1508.25 5670.25 cm 0 0 m 3475 0 l S Q Q BT /T1_1 1 Tf 0 Tc 7.9976 0 0 7.9976 154.8135 558.8323 Tm [(message queues \(r)18(eal-time\) )-1284(MSG)-250(option )-3165(\245)]TJ 11.13 Tc 28.212 0 Td (\245\245)Tj 0 Tc -28.212 -1.25 Td [(semaphor)18(es )]TJ 15.937 0 Td (\245)Tj 5.262 Tc 6.407 0 Td (\245\245\245\245)Tj 0 Tc -22.344 -1.25 Td [(shar)18(ed memory \(r)18(eal-time\) )-1428(SHM)-250(option )-3131(\245)]TJ 5.262 Tc 28.212 0 Td (\245\245\245)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1508.25 5350.25 cm 0 0 m 3475 0 l S Q Q BT /T1_1 1 Tf 0 Tc 7.9971 0 0 7.9971 154.8043 526.8103 Tm (sockets )Tj 15.937 0 Td (\245)Tj 5.262 Tc 6.407 0 Td (\245\245\245\245)Tj 0 Tc -22.344 -1.25 Td (STREAMS )Tj 13.693 0 Td (obsolescent)Tj 26.255 0 Td (\245)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1508.25 5130.25 cm 0 0 m 3475 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4534.25 5130.25 cm 0 0 m 0 1540 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4064.25 5130.25 cm 0 0 m 0 1540 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3595.25 5130.25 cm 0 0 m 0 1540 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3115.25 5130.25 cm 0 0 m 0 1540 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3135.25 5130.25 cm 0 0 m 0 1540 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2570.25 5130.25 cm 0 0 m 0 1540 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4983.25 5130.25 cm 0 0 m 0 1540 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1508.25 5130.25 cm 0 0 m 0 1540 l S Q Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 246.9962 494.7921 Tm (Figure 15.1)Tj /T1_1 1 Tf 5.695 0 Td (Summary of UNIX System IPC)Tj 9.9958 0 0 9.9958 147.5382 470.8022 Tm [(Named )-61(full-duplex )-61(pipes )-61(ar)]TJ 0.3107 Tc 12.461 0 Td (ep)Tj -0.018 Tc 1.391 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vided )-61(as )-61(mounted )-61(STREAMS)]TJ 13.109 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-61(pipes, )-61(but )-61(ar)19(e)]TJ -30.017 -1.2 Td (marked obsolescent in the Single UNIX Speci\336cation.)Tj 7.9966 0 0 7.9966 183.5233 438.8157 Tm [(Although )-45(support )-45(for )-45(STREAMS )-45(on )-45(Linux )-45(is )-45(available )-45(in )-45(the )-45(\324)36(\324Linux )-45(Fast-STREAMS\325)]TJ 0.2953 Tc 37.791 0 Td (\325p)Tj 0 Tc 1.174 0 Td (ackage)Tj -38.965 -1.25 Td [(fr)18(om )-67(the )-67(OpenSS7 )-67(pr)17(oject, )-67(the )-67(package )-67(hasn\325t )-67(been )-67(updated )-67(r)17(ecently)]TJ 0.5673 Tc 30.599 0 Td (.T)Tj 0 Tc 1.43 0 Td [(he )-67(latest )-67(r)18(elease )-67(of )-67(the)]TJ -32.029 -1.25 Td [(package fr)18(om 2008 claims to work with kernels up to Linux 2.6.26.)]TJ 9.9958 0 0 9.9958 147.539 396.8333 Tm [(The )-233(\336rst )-233(ten )-233(forms )-233(of )-233(IPC )-233(in )-233(Figur)]TJ 0.4831 Tc 16.559 0 Td (e1)Tj 0 Tc 1.462 0 Td [(5.1 )-233(ar)]TJ 0.4832 Tc 2.61 0 Td (eu)Tj 0 Tc 1.565 0 Td [(sually )-233(r)18(estricted )-233(to )-233(IPC )-233(between)]TJ -23.996 -1.2 Td [(pr)18(ocesses )-40(on )-40(the )-40(same )-40(host.)-540(The )-40(\336nal )-40(two )-40(r)21(ows )167(\321 )167(sockets)-290(and )-39(STREAMS)]TJ 0.0833 Tc 32.62 0 Td (\321a)Tj -0.018 Tc 1.583 0 Td [(re )-76(t)]TJ 0 Tc 1.471 0 Td [(he )-39(only)]TJ -35.675 -1.2 Td (two forms that ar)Tj 0.25 Tc 7.648 0 Td (eg)Tj 0 Tc 1.285 0 Td [(enerally supported for IPC between pr)18(ocesses on dif)18(fer)18(ent hosts.)]TJ -0.092 Tc -7.133 -1.2 Td [(We )-401(h)]TJ 0 Tc 2.436 0 Td [(ave )-217(divided )-217(the )-217(discussion )-217(of )-217(IPC )-217(into )-217(thr)18(ee )-217(chapters.)-717(In )-217(this )-217(chapter)]TJ 0.4674 Tc 32.733 0 Td (,w)Tj 0 Tc 1.551 0 Td (e)Tj -38.521 -1.2 Td [(examine )-47(classical )-47(IPC: )-47(pipes, )-47(FIFOs, )-47(message )-47(queues, )-47(semaphor)18(es, )-47(and )-47(shar)18(ed )-47(memory)110(.)]TJ 0 -1.2 TD [(In )-147(the )-147(next )-147(chapter)75(,)-397(we)-397(take )-147(a )-147(look )-147(at )-147(network )-147(IPC )-147(using )-147(the )-147(sockets )-147(mechanism.)-645(In)]TJ -0 -1.2 Td [(Chapter 17, we take a look at some advanced featur)18(es of IPC.)]TJ /TT0 1 Tf 11.995 0 0 11.995 93.5611 291.2776 Tm [(15.2 )-776(Pipes)]TJ /T1_1 1 Tf 9.9958 0 0 9.9958 129.546 269.6867 Tm [(Pipes )-83(ar)]TJ 0.3326 Tc 3.609 0 Td (et)Tj 0 Tc 1.138 0 Td [(he )-83(oldest )-83(form )-83(of )-83(UNIX )-83(System )-83(IPC )-83(and )-83(ar)]TJ 0.3326 Tc 19.461 0 Td (ep)Tj -0.018 Tc 1.413 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vided )-83(by )-83(all )-83(UNIX )-83(systems.)]TJ -26.543 -1.2 Td (Pipes have two limitations.)Tj 1.8 -2.04 Td [(1. )-633(Historically)]TJ 0.3404 Tc 6.709 0 Td (,t)Tj 0 Tc 0.916 0 Td [(hey )-90(have )-90(been )-90(half )-90(duplex )-90(\(i.e., )-90(data )-90(\337ows )-90(in )-90(only )-90(one )-90(dir)14(ection\).)]TJ -5.992 -1.2 Td [(Some )-64(systems )-64(now )-64(pr)18(ovide )-64(full-duplex )-64(pipes, )-64(but )-64(for )-64(maximum )-64(portability)]TJ 0.3145 Tc 33.69 0 Td (,w)Tj 0 Tc 1.399 0 Td (e)Tj -35.088 -1.2 Td (should never assume that this is the case.)Tj -1.633 -1.6 Td [(2. )-633(Pipes)-588(can )-338(be )-338(used )-338(only )-338(between )-338(pr)17(ocesses )-338(that )-338(have )-338(a )-338(common )-338(ancestor)72(.)]TJ 1.633 -1.2 Td (Normally)Tj 0.2788 Tc 4.182 0 Td (,ap)Tj 0 Tc 1.909 0 Td [(ipe )-29(is )-29(cr)18(eated )-29(by )-29(a )-29(pr)18(ocess, )-29(that )-29(pr)18(ocess )-29(calls)]TJ /TT1 1 Tf 19.944 0 Td (fork)Tj /T1_1 1 Tf 0.2788 Tc (,a)Tj 0 Tc 3.429 0 Td [(nd )-29(the )-29(pipe )-29(is)]TJ -29.464 -1.2 Td [(used between the par)18(ent and the child.)]TJ -0.092 Tc -3.433 -2.04 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-188(see )-188(that )-188(FIFOs )-188(\(Section )-188(15.5\) )-188(get )-188(ar)18(ound )-188(the )-188(second )-188(limitation, )-188(and )-188(that )-188(UNIX)]TJ -1.387 -1.2 Td [(domain sockets \(Section 17.2\) get ar)18(ound both limitations.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46948 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 456.33 708 Tm (Contents)Tj /T1_1 1 Tf 5.974 0 Td (xv)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 154.7907 667.9599 Tm [(12.4.2 )-3422(Reader\320Wr)-15(iter )-278(Loc)]TJ 0.556 Tc 15.144 0 Td (kA)Tj 0 Tc 1.723 0 Td [(ttr )263(ib)20(utes )-1882(439)]TJ -16.867 -1.3 Td [(12.4.3 )-3422(Condition)]TJ -0.07 Tc 11.26 0 Td (Va)Tj 0.015 Tc 1.153 0 Td (ri)Tj 0 Tc 0.57 0 Td [(ab)20(le )-278(Attr)-15(ib)20(utes )-1882(440)]TJ -12.983 -1.3 Td [(12.4.4 )-3422(Barr)-15(ier )-278(Attr)-15(ib)20(utes )-1882(441)]TJ 0 -1.3 TD [(12.5 )-2456(Reentr)10(ancy )-1882(442)]TJ T* [(12.6 )-2456(Thread)]TJ 7.848 0.09 Td (-)Tj 0.333 -0.09 Td [(Speci\336c )-278(Data)-2160(446)]TJ -8.181 -1.3 Td [(12.7 )-2456(Cancel)-556(Options )-1882(451)]TJ T* [(12.8 )-2456(Threads)-556(and )-278(Signals)-2160(453)]TJ -0 -1.3 Td [(12.9 )-2456(Threads)-556(and)]TJ /TT1 1 Tf 11.128 0 Td (fork)Tj /TT0 1 Tf 4.56 0 Td (457)Tj -15.688 -1.3 Td [(12.10 )-1900(Threads)-556(and )-278(I/O)-2160(461)]TJ -0 -1.3 Td [(12.11 )-1900(Summar)]TJ 2.16 Tc 8.488 0 Td (y4)Tj 0 Tc 3.216 0 Td (62)Tj /TT2 1 Tf -14.224 -2.47 Td [(Chapter )-278(13.)-1476(Daemon )-278(Pr)20(ocesses )]TJ 34.118 0 Td (463)Tj /TT0 1 Tf -31.598 -1.82 Td [(13.1 )-2456(Introduction)-2160(463)]TJ T* [(13.2 )-2456(Daemon)-556(Char)10(acter )263(istics)-2160(463)]TJ -0 -1.3 Td [(13.3 )-2456(Coding)-556(Rules )-1882(466)]TJ T* [(13.4 )-2456(Error)-556(Logging )-1882(469)]TJ T* [(13.5 )-2456(Single-Instance)-556(Daemons )-1882(473)]TJ T* [(13.6 )-2456(Daemon)-556(Con)]TJ -0.025 Tc 10.829 0 Td (ve)Tj 0 Tc 1.031 0 Td [(ntions )-1882(474)]TJ -11.86 -1.3 Td [(13.7 )-2456(Client\320Ser)]TJ -0.025 Tc 9.378 0 Td (ve)Tj 0.556 Tc 1.031 0 Td (rM)Tj 0 Tc 1.722 0 Td [(odel )-1882(479)]TJ -12.131 -1.3 Td [(13.8 )-2456(Summar)]TJ 2.16 Tc 8.488 0 Td (y4)Tj 0 Tc 3.216 0 Td (80)Tj /TT2 1 Tf -14.224 -2.47 Td [(Chapter )-278(14.)-1476(Ad)]TJ -0.02 Tc 8.518 0 Td (va)Tj 0 Tc 1.092 0 Td [(nced )-278(I/O)]TJ 24.508 0 Td (481)Tj /TT0 1 Tf -31.598 -1.82 Td [(14.1 )-2456(Introduction)-2160(481)]TJ T* [(14.2 )-2456(Nonb)20(loc)20(king )-278(I/O)-2160(481)]TJ -0 -1.3 Td [(14.3 )-2456(Record)-556(Loc)20(king )-1882(485)]TJ -0 -1.3 Td [(14.4 )-2456(I/O)-556(Multiple)30(xing )-1882(500)]TJ T* (14.4.1)Tj /TT1 1 Tf 6.48 0 Td (select)Tj /TT0 1 Tf 4.156 0 Td (and)Tj /TT1 1 Tf 2.224 0 Td (pselect)Tj /TT0 1 Tf 4.756 0 Td [(Functions )-1882(502)]TJ -17.616 -1.3 Td (14.4.2)Tj /TT1 1 Tf 6.48 0 Td (poll)Tj /TT0 1 Tf 2.956 0 Td [(Function )-1882(506)]TJ -9.436 -1.3 Td [(14.5 )-2456(Asynchronous)-556(I/O )-1882(509)]TJ T* [(14.5.1 )-3422(System)]TJ 0.556 Tc 10.37 0 Td (VA)Tj 0 Tc 1.89 0 Td [(synchronous )-278(I/O)-2160(510)]TJ -12.26 -1.3 Td [(14.5.2 )-3422(BSD)-556(Asynchronous )-278(I/O)-2160(510)]TJ -0 -1.3 Td [(14.5.3 )-3422(POSIX)-556(Asynchronous )-278(I/O)-2160(511)]TJ T* (14.6)Tj /TT1 1 Tf 4.68 0 Td (readv)Tj /TT0 1 Tf 3.556 0 Td (and)Tj /TT1 1 Tf 2.224 0 Td (writev)Tj /TT0 1 Tf 4.156 0 Td [(Functions )-1882(521)]TJ -14.616 -1.3 Td (14.7)Tj /TT1 1 Tf 4.68 0 Td (readn)Tj /TT0 1 Tf 3.556 0 Td (and)Tj /TT1 1 Tf 2.224 0 Td (writen)Tj /TT0 1 Tf 4.156 0 Td [(Functions )-1882(523)]TJ -14.616 -1.3 Td [(14.8 )-2456(Memor)-30(y-Mapped )-278(I/O)-2160(525)]TJ 0 -1.3 Td [(14.9 )-2456(Summar)]TJ 2.16 Tc 8.488 0 Td (y5)Tj 0 Tc 3.216 0 Td (31)Tj /TT2 1 Tf -14.224 -2.47 Td [(Chapter )-278(15.)-1476(Interpr)20(ocess )-278(Comm)20(unication )]TJ 34.118 0 Td (533)Tj /TT0 1 Tf -31.598 -1.82 Td [(15.1 )-2456(Introduction)-2160(533)]TJ T* [(15.2 )-2456(Pipes)-2160(534)]TJ T* (15.3)Tj /TT1 1 Tf 4.68 0 Td (popen)Tj /TT0 1 Tf 3.556 0 Td (and)Tj /TT1 1 Tf 2.224 0 Td (pclose)Tj /TT0 1 Tf 4.156 0 Td [(Functions )-1882(541)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46949 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.3)]TJ /TT0 1 Tf 29.686 0 Td (popen)Tj /T1_0 1 Tf 3.5 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (pclose)Tj /T1_0 1 Tf 4.1 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (541)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(We )-184(c)]TJ -0.018 Tc 2.081 0 Td (re)Tj 0 Tc 0.856 0 Td (ate two pipes befor)Tj 0.25 Tc 8.445 0 Td (et)Tj 0 Tc 1.055 0 Td (he)Tj /TT0 1 Tf 1.311 0 Td (fork)Tj /T1_0 1 Tf [(,)-250(as)-250(shown in Figur)]TJ 0.25 Tc 10.798 0 Td (e1)Tj 0 Tc 1.229 0 Td [(5.8. )-250(The)-250(par)18(ent writes the)]TJ -27.575 -1.2 Td [(character )-54(\324)37(\324p\325)]TJ 0.304 Tc 5.73 0 Td (\325a)Tj 0 Tc 1.082 0 Td [(cr)18(oss )-54(the )-54(top )-54(pipe )-54(when)]TJ /TT0 1 Tf 11.044 0 Td (TELL_CHILD)Tj /T1_0 1 Tf 6.304 0 Td [(is )-54(called, )-54(and )-54(the )-54(child )-54(writes )-54(the)]TJ -24.16 -1.2 Td [(character )-39(\324)37(\324c\325)]TJ 0.2893 Tc 5.558 0 Td (\325a)Tj 0 Tc 1.067 0 Td [(cr)18(oss )-39(the )-39(bottom )-39(pipe )-39(when)]TJ /TT0 1 Tf 12.678 0 Td (TELL_PARENT)Tj /T1_0 1 Tf 6.889 0 Td [(is )-39(called.)-539(The )-39(corr)17(esponding)]TJ /TT0 1 Tf -26.193 -1.2 Td (WAIT_xxx)Tj /T1_0 1 Tf 5.05 0 Td (functions do a blocking)Tj /TT0 1 Tf 10.607 0 Td (read)Tj /T1_0 1 Tf 2.65 0 Td [(for the single character)74(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2274 5630 576 432 re S Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 3642 5630 576 432 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 244.7106 609.3669 Tm [(par)18(ent)]TJ 17.423 0 Td (child)Tj /TT0 1 Tf -17.09 -1.975 Td (pfd1[1])Tj 0 -2.7 TD (pfd2[0])Tj 15.1 2.7 Td (pfd1[0])Tj T* (pfd2[1])Tj ET q 0.99988 0 0 0.99988 0 0 cm q 1 0 0 1 364.2 595.4 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099988 0 0 0.099988 0 0 cm 1 j 1 J q 1 0 0 1 3642 5954 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2850.25 5954.25 cm 0 0 m 720 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 319.1705 598.5323 Tm ("p")Tj ET q 0.99982 0 0 0.99982 0 0 cm q 1 0 0 1 285 573.8 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099982 0 0 0.099982 0 0 cm 1 j 1 J q 1 0 0 1 2850 5738 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 5738.25 cm 0 0 m -720 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 319.7792 576.9015 Tm ("c")Tj /T1_1 1 Tf -13.24 -4.905 Td (Figure 15.8)Tj /T1_0 1 Tf 5.695 -0 Td [(Using two pipes for par)18(ent\320child synchr)18(onization)]TJ 9.9976 0 0 9.9976 147.5648 510.0778 Tm [(Note )-75(that )-75(each )-75(pipe )-75(has )-75(an )-75(extra )-75(r)15(eader)]TJ 0.3254 Tc 17.742 0 Td (,w)Tj 0 Tc 1.409 0 Td [(hich )-75(doesn\325t )-75(matter)]TJ 0.5753 Tc 8.631 0 Td (.T)Tj 0 Tc 1.438 0 Td [(hat )-75(is, )-75(in )-75(addition)]TJ -31.02 -1.2 Td [(to )-143(the )-143(child )-143(r)18(eading )-143(fr)18(om)]TJ /TT0 1 Tf 11.979 0 Td (pfd1[0])Tj /T1_0 1 Tf 0.3932 Tc (,t)Tj 0 Tc 5.169 0 Td [(he )-143(par)18(ent )-143(has )-143(this )-143(end )-143(of )-143(the )-143(top )-143(pipe )-143(open )-143(for)]TJ -0.018 Tc -17.148 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ading. )-250(This)-250(doesn\325t af)18(fect us, since the par)18(ent doesn\325t try to r)18(ead fr)18(om this pipe.)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4862.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9964 0 0 11.9964 93.5719 450.065 Tm (15.3)Tj /TT2 1 Tf 3 0 Td (popen)Tj /TT1 1 Tf 3.556 0 Td (and)Tj /TT2 1 Tf 2.334 0 Td (pclose)Tj /TT1 1 Tf 4.156 0 Td (Functions)Tj /T1_0 1 Tf 9.997 0 0 9.997 129.5607 426.0722 Tm [(Since )-22(a )-22(common )-22(operation )-22(is )-22(to )-22(cr)18(eate )-22(a )-22(pipe )-22(to )-22(another )-22(pr)19(ocess )-22(to )-22(either )-22(r)18(ead )-22(its )-22(output)]TJ 0 -1.2 TD [(or )-216(send )-216(it )-216(input, )-216(the )-216(standar)]TJ 0.4662 Tc 13.346 0 Td (dI)Tj 0 Tc 1.414 0 Td [(/O )-216(library )-216(has )-216(historically )-216(pr)18(ovided )-216(the)]TJ /TT0 1 Tf 19.081 0 Td (popen)Tj /T1_0 1 Tf 3.466 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (pclose)Tj /T1_0 1 Tf 3.853 0 Td [(functions. )-252(These)-253(two )-2(functions )-2(handle )-2(all )-2(the )-2(dirty )-2(work )-2(that )-2(we\325ve )-2(been )-2(doing)]TJ -3.852 -1.2 Td [(ourselves: )-293(cr)18(eating )-293(a )-293(pipe,)]TJ /TT0 1 Tf 12.906 0 Td (fork)Tj /T1_0 1 Tf [(ing )-293(a )-293(child, )-293(closing )-293(the )-293(unused )-293(ends )-293(of )-293(the )-293(pipe,)]TJ -12.906 -1.2 Td [(executing a shell to r)8(un the command, and waiting for the command to terminate.)]TJ /TT0 1 Tf 8.9973 0 0 8.9973 147.5557 358.9923 Tm (#include )Tj 0 -1.902 TD (FILE *popen\(const char *)Tj /T1_2 1 Tf (cmdstring)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 20.33 0 Td (onst char *)Tj /T1_2 1 Tf (type)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 0.825 -1.902 Td (Returns: \336le pointer if OK,)Tj /TT0 1 Tf 11.958 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -35.763 -1.902 Td (int pclose\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 15.233 -1.902 Td (Returns: termination status of)Tj /T1_2 1 Tf 13.41 0 Td (cmdstring)Tj /T1_0 1 Tf 0.25 Tc (,o)Tj 0 Tc 5.176 0 Td (r)Tj /TT3 1 Tf 0.645 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2861.25 cm 0 0 m 0 820 l 3900 820 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9964 0 0 9.9964 129.5534 270.1227 Tm [(The )-212(function)]TJ /TT0 1 Tf 6.305 0 Td (popen)Tj /T1_0 1 Tf 3.462 0 Td [(does )-212(a)]TJ /TT0 1 Tf 3.485 0 Td (fork)Tj /T1_0 1 Tf 2.862 0 Td (and)Tj /TT0 1 Tf 2.155 0 Td (exec)Tj /T1_0 1 Tf 2.862 0 Td [(to )-212(execute )-212(the)]TJ /T1_2 1 Tf 6.972 0 Td (cmdstring)Tj /T1_0 1 Tf 4.592 0 Td [(and )-212(r)18(eturns )-212(a)]TJ -32.696 -1.2 Td (standar)Tj 0.3855 Tc 3.32 0 Td (dI)Tj 0 Tc 1.334 0 Td [(/O )-135(\336le )-135(pointer)]TJ 0.6355 Tc 6.684 0 Td (.I)Tj 0 Tc 1.222 0 Td (f)Tj /T1_2 1 Tf 0.719 0 Td (type)Tj /T1_0 1 Tf 2.108 0 Td (is)Tj /TT0 1 Tf 1.101 0 Td ("r")Tj /T1_0 1 Tf 0.3855 Tc (,t)Tj 0 Tc 2.761 0 Td [(he )-135(\336le )-135(pointer )-135(is )-135(connected )-135(to )-135(the )-135(standar)15(d)]TJ -19.248 -1.2 Td (output of)Tj /T1_2 1 Tf 4.384 0 Td (cmdstring)Tj /T1_0 1 Tf 4.38 0 Td (\(Figur)Tj 0.25 Tc 2.716 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.9\).)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2274 1978.2 576 216 re S Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 3642 1978.2 576 216 re S Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 244.6372 222.5665 Tm [(par)18(ent)]TJ /T1_2 1 Tf 14.9 0 Td (cmdstring)Tj /T1_0 1 Tf 4.38 0 Td (\(child\))Tj /TT0 1 Tf -15.697 -1.975 Td (fp)Tj /T1_2 1 Tf 11.6 0 Td (stdout)Tj ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 285 208.62 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 2850 2086.2 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 2086.25 cm 0 0 m -720 0 l S Q Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 227.7107 172.5372 Tm (Figure 15.9)Tj /T1_0 1 Tf 5.695 0 Td (Result of)Tj /TT0 1 Tf 4.17 0 Td (fp = popen\()Tj /T1_2 1 Tf (cmdstring)Tj /TT0 1 Tf 0.6 Tc (,")Tj 0 Tc 12.53 0 Td (r"\))Tj /T1_0 1 Tf 9.9952 0 0 9.9952 129.538 144.9504 Tm (If)Tj /T1_2 1 Tf 0.977 0 Td (type)Tj /T1_0 1 Tf 2.029 0 Td (is)Tj /TT0 1 Tf 1.022 0 Td ("w")Tj /T1_0 1 Tf 0.3068 Tc (,t)Tj 0 Tc 2.683 0 Td [(he )-57(\336le )-57(pointer )-57(is )-57(connected )-57(to )-57(the )-57(standar)]TJ 0.3068 Tc 18.591 0 Td (di)Tj 0 Tc 1.209 0 Td [(nput )-57(of)]TJ /T1_2 1 Tf 3.605 0 Td (cmdstring)Tj /T1_0 1 Tf [(,)-307(as)-307(shown)]TJ -30.114 -1.2 Td (in Figur)Tj 0.25 Tc 3.506 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.10.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46950 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (15)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(Inter )260(pr)15(ocess )-280(Comm)20(unica )275(tion)]TJ /TT0 1 Tf 12 0 0 12 93.6 434.4 Tm [(15.1 )-776(Intr)20(oduction)]TJ /T1_2 1 Tf 10 0 0 10 129.6 410.4 Tm [(In )-118(Chapter )-118(8, )-118(we )-118(described )-118(the )-118(pr)19(ocess )-118(contr)18(ol )-118(primitives )-118(and )-118(saw )-118(how )-118(to )-118(work )-118(with)]TJ 0 -1.2 TD [(multiple )-48(pr)18(ocesses. )-298(But)-298(the )-48(only )-48(way )-48(for )-48(these )-48(pr)18(ocesses )-48(to )-48(exchange )-48(information )-48(is )-48(by)]TJ 0 -1.2 Td [(passing )-183(open )-183(\336les )-183(acr)18(oss )-183(a)]TJ /TT1 1 Tf 12.767 0 Td (fork)Tj /T1_2 1 Tf 2.833 0 Td [(or )-183(an)]TJ /TT1 1 Tf 2.89 0 Td (exec)Tj /T1_2 1 Tf 2.833 0 Td [(or )-183(thr)18(ough )-183(the )-183(\336le )-183(system.)]TJ -0.092 Tc 13.034 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-183(now)]TJ -35.745 -1.2 Td [(describe )-73(other )-73(techniques )-73(for )-73(pr)18(ocesses )-73(to )-73(communicate )-73(with )-73(one )-73(another: )-73(interpr)15(ocess)]TJ T* (communication)Tj 7.171 0.04 Td (\()Tj 0.333 -0.04 Td (IPC)Tj 1.65 0.04 Td (\))Tj 0.333 -0.04 Td (.)Tj -7.687 -1.2 Td [(In )-171(the )-171(past, )-171(UNIX )-171(System )-171(IPC )-171(was )-171(a )-171(hodgepodge )-171(of )-171(various )-171(appr)13(oaches, )-172(few )-172(of)]TJ -1.8 -1.2 Td [(which )-28(wer)]TJ 0.2785 Tc 4.701 0 Td (ep)Tj 0 Tc 1.359 0 Td [(ortable )-28(acr)18(oss )-28(all )-28(UNIX )-28(system )-28(implementations.)-531(Thr)18(ough )-28(the )-28(POSIX )-28(and)]TJ -6.06 -1.2 Td [(The )-219(Open )-219(Gr)18(oup )-219(\(formerly )-219(X/Open\) )-219(standar)18(dization )-219(ef)18(forts, )-219(the )-219(situation )-219(has )-219(since)]TJ T* [(impr)18(oved, )-94(but )-94(dif)18(fer)18(ences )-94(still )-94(exist.)-594(Figur)]TJ 0.3439 Tc 19.161 0 Td (e1)Tj 0 Tc 1.323 0 Td [(5.1 )-94(summarizes )-94(the )-94(various )-94(forms )-94(of )-94(IPC)]TJ -20.484 -1.2 Td (that ar)Tj 0.25 Tc 2.861 0 Td (es)Tj 0 Tc 1.153 0 Td (upported by the four implementations discussed in this text.)Tj -2.214 -1.2 Td [(Note )-619(that )-619(the )-619(Single )-619(UNIX )-619(Speci\336cation )-619(\(the )-619(\324)37(\324SUS\325)]TJ 0.869 Tc 26.665 0 Td (\325c)Tj 0 Tc 1.591 0 Td [(olumn\) )-619(allows )-619(an)]TJ -30.056 -1.2 Td [(implementation )-103(to )-103(support )-103(full-duplex )-103(pipes, )-103(but )-103(r)17(equir)18(es )-103(only )-103(half-duplex )-103(pipes.)-603(An)]TJ T* [(implementation )-165(that )-165(supports )-165(full-duplex )-165(pipes )-165(will )-165(still )-165(work )-165(with )-165(corr)18(ectly )-165(written)]TJ T* [(applications )-553(that )-553(assume )-553(that )-553(the )-553(underlying )-553(operating )-553(system )-553(supports )-553(only)]TJ T* [(half-duplex )-186(pipes.)]TJ -0.092 Tc 8.909 0 Td [(We )-371(u)]TJ 0 Tc 2.426 0 Td [(se )-186(\324)37(\324\(full\)\325)]TJ 0.4365 Tc 4.284 0 Td (\325i)Tj 0 Tc 1.006 0 Td [(nstead )-186(of )-186(a )-186(bullet )-186(to )-186(show )-186(implementations )-186(that)]TJ -16.624 -1.2 Td (support half-duplex pipes by using full-duplex pipes.)Tj 1.8 -1.2 Td [(In )-312(Figur)]TJ 0.5621 Tc 3.864 0 Td (e1)Tj 0 Tc 1.541 0 Td [(5.1, )-312(we )-312(show )-312(a )-312(bullet )-312(wher)]TJ 0.5621 Tc 13.325 0 Td (eb)Tj 0 Tc 1.594 0 Td [(asic )-312(functionality )-312(is )-312(supported.)-812(For)]TJ -22.124 -1.2 Td [(full-duplex )-373(pipes, )-373(if )-373(the )-373(featur)]TJ 0.6234 Tc 14.721 0 Td (ec)Tj 0 Tc 1.546 0 Td [(an )-373(be )-373(pr)18(ovided )-373(thr)18(ough )-373(UNIX )-373(domain )-373(sockets)]TJ -16.267 -1.2 Td [(\(Section )-243(17.2\), )-243(we )-243(show )-243(\324)39(\324UDS\325)]TJ 0.4926 Tc 14.365 0 Td (\325i)Tj 0.4925 Tc 1.062 0 Td (nt)Tj 0 Tc 1.4 0 Td [(he )-242(column.)-742(Some )-242(implementations )-242(support )-242(the)]TJ -16.827 -1.2 Td (featur)Tj 0.3306 Tc 2.618 0 Td (ew)Tj 0 Tc 1.644 0 Td [(ith )-81(pipes )-81(and )-81(UNIX )-81(domain )-81(sockets, )-81(so )-81(these )-81(entries )-81(have )-81(both )-81(\324)41(\324UDS\325)]TJ 0.3307 Tc 31.606 0 Td (\325a)Tj 0 Tc 1.109 0 Td [(nd )-81(a)]TJ -36.976 -1.2 Td (bullet.)Tj 1.8 -1.2 Td [(The )-119(IPC )-119(interfaces )-119(intr)18(oduced )-119(as )-119(part )-119(of )-119(the )-119(r)18(eal-time )-119(extensions )-119(to )-119(POSIX.1 )-119(wer)23(e)]TJ -1.8 -1.2 Td [(included )-368(as )-368(options )-368(in )-368(the )-368(Single )-368(UNIX )-368(Speci\336cation.)-868(In )-368(SUSv4, )-368(the )-368(semaphor)19(e)]TJ T* (interfaces wer)Tj 0.25 Tc 6.193 0 Td (em)Tj 0 Tc 1.612 0 Td [(oved fr)18(om an option to the base speci\336cation.)]TJ /T1_3 1 Tf 9 0 0 9 506.1009 114 Tm (533)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46951 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.9)]TJ 39.488 0 Td (Summary)Tj /T1_1 1 Tf 6.345 0 Td (531)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(system )-74(call )-74(and )-74(extra )-74(copying )-74(dif)16(fers )-74(fr)18(om )-74(the )-74(page )-74(fault )-74(over)18(head, )-74(then )-74(one )-74(appr)14(oach)]TJ 0 -1.2 TD [(will perform better than the other)74(.)]TJ 1.8 -1.2 Td [(On )-23(Linux )-23(3.2.0, )-23(as )-23(far )-23(as )-23(elapsed )-23(time )-23(is )-23(concerned, )-23(the )-23(two )-23(versions )-23(of )-23(the )-23(pr)24(ogram)]TJ -1.8 -1.2 Td [(show )-5(a )-5(lar)18(ge )-5(dif)18(fer)18(ence )-5(in )-5(clock )-5(time: )-5(the )-5(version )-5(using)]TJ /TT0 1 Tf 24.537 0 Td (read)Tj /T1_0 1 Tf 2.655 0 Td (and)Tj /TT0 1 Tf 1.948 0 Td (write)Tj /T1_0 1 Tf 3.255 0 Td [(completes )-5(four)]TJ -32.395 -1.2 Td [(times )-195(faster )-195(than )-195(the )-195(version )-195(using)]TJ /TT0 1 Tf 16.647 0 Td (mmap)Tj /T1_0 1 Tf 2.845 0 Td (and)Tj /TT0 1 Tf 2.138 0 Td (memcpy)Tj /T1_0 1 Tf 0.6953 Tc (.H)Tj 0 Tc 5.377 0 Td [(owever)74(,)-445(on)-445(S)-1(olaris )-195(10, )-195(the)]TJ -27.008 -1.2 Td [(version )-48(with)]TJ /TT0 1 Tf 5.912 0 Td (mmap)Tj /T1_0 1 Tf 2.699 0 Td (and)Tj /TT0 1 Tf 1.991 0 Td (memcpy)Tj /T1_0 1 Tf 3.899 0 Td [(is )-48(faster )-48(than )-48(the )-48(version )-48(with)]TJ /TT0 1 Tf 13.655 0 Td (read)Tj /T1_0 1 Tf 2.699 0 Td (and)Tj /TT0 1 Tf 1.992 0 Td (write)Tj /T1_0 1 Tf 0.5486 Tc (.I)Tj 0.2986 Tc 4.136 0 Td (ft)Tj 0 Tc 0.958 0 Td (he)Tj -37.939 -1.2 Td [(CPU )-21(times )-21(ar)]TJ 0.2715 Tc 5.914 0 Td (ea)Tj 0 Tc 1.251 0 Td [(lmost )-21(the )-21(same, )-21(then )-21(why )-21(would )-21(the )-21(clock )-21(times )-21(dif)14(fer? )-271(One)-272(possibility)]TJ -7.164 -1.2 Td [(is )-31(that )-31(we )-31(might )-31(have )-31(to )-31(wait )-31(longer )-31(for )-31(I/O )-31(to )-31(complete )-31(in )-31(one )-31(version.)-530(This )-31(wait )-31(time)]TJ T* [(is )-322(not )-322(counted )-322(as )-322(CPU )-322(pr)18(ocessing )-322(time.)-824(Another )-322(possibility )-322(is )-322(that )-322(some )-322(system)]TJ T* [(pr)18(ocessing )-48(might )-48(not )-48(be )-48(counted )-48(against )-48(our )-48(pr)15(ogram )167(\321 )167(the)-299(pr)18(ocessing )-48(done )-48(by )-48(system)]TJ 0 -1.2 Td [(daemons )-53(to )-53(write )-53(pages )-53(to )-53(disk, )-53(for )-53(example.)-554(As )-53(we )-53(need )-53(to )-53(allocate )-53(pages )-53(for )-53(r)18(eading)]TJ T* [(and )-83(writing, )-83(these )-83(system )-83(daemons )-83(will )-83(help )-83(make )-83(pages )-83(available.)-583(If )-83(the )-83(page )-83(writes)]TJ T* (ar)Tj 0.3332 Tc 0.877 0 Td (er)Tj 0 Tc 1.207 0 Td [(andom )-83(instead )-83(of )-83(sequential, )-83(then )-83(it )-83(will )-83(take )-83(longer )-83(to )-83(write )-83(them )-83(out )-83(to )-83(disk, )-83(so)]TJ -2.084 -1.2 Td (we will need to wait longer befor)Tj 0.25 Tc 14.631 0 Td (et)Tj 0 Tc 1.055 0 Td [(he pages become available for us to r)18(euse.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5130.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 488.9413 Tm [(Depending )-357(on )-357(the )-357(system, )-357(memory-mapped )-357(I/O )-357(can )-357(be )-357(mor)]TJ 0.6068 Tc 29.509 0 Td (ee)Tj -0.018 Tc 1.565 0 Td (f\336)Tj 0 Tc 0.92 0 Td [(cient )-357(when)]TJ -33.794 -1.2 Td [(copying )-2(one )-2(r)18(egular )-2(\336le )-2(to )-2(another)]TJ 0.5023 Tc 15.228 0 Td (.T)Tj 0 Tc 1.365 0 Td (her)Tj 0.2523 Tc 1.438 0 Td (ea)Tj -0.018 Tc 1.231 0 Td [(re )-38(l)]TJ 0 Tc 1.399 0 Td [(imitations. )-252(W)]TJ 0.2523 Tc 6.12 0 Td (ec)Tj 0 Tc 1.175 0 Td [(an\325t )-2(use )-2(this )-2(technique )-2(to)]TJ -27.958 -1.2 Td [(copy )-91(between )-91(certain )-91(devices )-91(\(such )-91(as )-91(a )-91(network )-91(device )-91(or )-91(a )-91(terminal )-91(device\), )-91(and )-91(we)]TJ T* [(have )-238(to )-238(be )-238(car)18(eful )-238(if )-238(the )-238(size )-238(of )-238(the )-238(underlying )-238(\336le )-238(could )-238(change )-238(after )-238(we )-238(map )-238(it.)]TJ T* [(Nevertheless, )-70(some )-70(applications )-70(can )-70(bene\336t )-70(fr)20(om )-70(memory-mapped )-70(I/O, )-70(as )-70(it )-70(can )-70(often)]TJ T* [(simplify )-51(the )-51(algorithms, )-51(since )-51(we )-51(manipulate )-51(memory )-51(instead )-51(of )-51(r)18(eading )-51(and )-51(writing )-51(a)]TJ T* [(\336le. )-556(One)-556(example )-306(is )-306(the )-306(manipulation )-306(of )-306(a )-306(frame )-306(buf)18(fer )-306(device )-306(that )-306(r)18(efer)18(ences )-306(a)]TJ -0 -1.2 Td [(bitmapped display)111(.)]TJ 1.8 -1.2 Td (Krieger)Tj 0.5095 Tc 3.247 0 Td (,S)Tj 0 Tc 1.284 0 Td [(tumm, )-259(and )-259(Unrau)]TJ 9.024 0.04 Td ([)Tj 0.333 -0.04 Td (1992)Tj 2 0.04 Td (])Tj 0.842 -0.04 Td [(describe )-260(an )-260(alternative )-260(to )-260(the )-260(standar)]TJ 0.5096 Tc 17.619 0 Td (dI)Tj 0 Tc 1.458 0 Td (/O)Tj -37.608 -1.2 Td (library \(Chapter 5\) that uses memory-mapped I/O.)Tj -0.092 Tc 1.8 -1.2 Td [(We )-283(r)]TJ 0 Tc 2.112 0 Td [(eturn )-98(to )-98(memory-mapped )-98(I/O )-98(in )-98(Section )-98(15.9, )-98(showing )-98(an )-98(example )-98(of )-98(how )-98(it)]TJ -3.913 -1.2 Td [(can be used to pr)18(ovide shar)18(ed memory between r)18(elated pr)18(ocesses.)]TJ /TT1 1 Tf 11.9986 0 0 11.9986 93.5882 322.1613 Tm [(14.9 )-776(Summar)-10(y)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5838 301.7638 Tm [(In )-54(this )-54(chapter)]TJ 0.3037 Tc 6.402 0 Td (,w)Tj 0 Tc 1.388 0 Td [(e\325ve )-54(described )-54(numer)19(ous )-54(advanced )-54(I/O )-54(functions, )-54(many )-54(of )-54(which )-54(ar)19(e)]TJ -7.79 -1.2 Td (used in the examples in later chapters:)Tj 0.883 Tc 1.8 -1.92 Td (\245N)Tj 0 Tc 2.32 0 Td (onblocking I/O)Tj 0.0833 Tc 7.009 0 Td (\321i)Tj 0 Tc 1.374 0 Td (ssuing an I/O operation without letting it block)Tj 0.883 Tc -10.704 -1.6 Td (\245R)Tj 0 Tc 2.157 0 Td (ecor)Tj 0.4684 Tc 1.846 0 Td (dl)Tj 0 Tc 1.37 0 Td [(ocking )-218(\(which )-218(we\325ll )-218(look )-218(at )-218(in )-218(mor)]TJ 0.4683 Tc 16.468 0 Td (ed)Tj 0 Tc 1.558 0 Td [(etail )-218(thr)18(ough )-218(an )-218(example, )-218(the)]TJ -21.911 -1.2 Td (database library in Chapter 20\))Tj 0.883 Tc -1.489 -1.6 Td (\245I)Tj 0 Tc 1.826 0 Td [(/O )-52(multiplexing)]TJ 0.0833 Tc 7.487 0 Td (\321t)Tj 0 Tc 1.409 0 Td (he)Tj /TT0 1 Tf 1.363 0 Td (select)Tj /T1_0 1 Tf 3.902 0 Td (and)Tj /TT0 1 Tf 1.995 0 Td (poll)Tj /T1_0 1 Tf 2.702 0 Td [(functions )-52(\(we\325ll )-52(use )-52(these )-52(in )-52(many )-52(of)]TJ -19.194 -1.2 Td (the later examples\))Tj 0.883 Tc -1.489 -1.6 Td (\245A)Tj 0 Tc 2.267 0 Td [(synchr)18(onous I/O)]TJ 0.883 Tc -2.267 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.311 0 Td (readv)Tj /T1_0 1 Tf 3.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (writev)Tj /T1_0 1 Tf 3.85 0 Td (functions \(also used in many of the later examples\))Tj 0.883 Tc -12.456 -1.6 Td (\245M)Tj 0 Tc 2.435 0 Td (emory-mapped I/O \()Tj /TT0 1 Tf (mmap)Tj /T1_0 1 Tf (\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46952 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.8)]TJ 33.728 0 Td [(Memory-Mapped )-250(I/O)]TJ /T1_1 1 Tf 12.105 0 Td (525)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(14.8 )-776(Memor)-10(y-Mapped )-278(I/O)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(Memory-mapped )-67(I/O )-67(lets )-67(us )-67(map )-67(a )-67(\336le )-67(on )-67(disk )-67(into )-67(a )-67(buf)17(fer )-67(in )-67(memory )-67(so )-67(that, )-67(when)]TJ 0 -1.2 TD [(we )-108(fetch )-108(bytes )-108(fr)18(om )-108(the )-108(buf)16(fer)]TJ 0.3586 Tc 13.738 0 Td (,t)Tj 0 Tc 0.935 0 Td [(he )-109(corr)18(esponding )-109(bytes )-109(of )-109(the )-109(\336le )-109(ar)]TJ 0.3586 Tc 16.503 0 Td (er)Tj 0 Tc 1.215 0 Td [(ead. )-359(Similarly)111(,)]TJ -32.389 -1.2 Td [(when )-83(we )-83(stor)]TJ 0.3331 Tc 6.129 0 Td (ed)Tj 0 Tc 1.423 0 Td [(ata )-83(in )-83(the )-83(buf)18(fer)]TJ 0.3331 Tc 7.189 0 Td (,t)Tj 0 Tc 0.909 0 Td [(he )-83(corr)18(esponding )-83(bytes )-83(ar)]TJ 0.333 Tc 11.709 0 Td (ea)Tj 0 Tc 1.312 0 Td [(utomatically )-83(written )-83(to)]TJ -28.672 -1.2 Td [(the \336le.)-500(This lets us perform I/O without using)]TJ /TT1 1 Tf 21.294 0 Td (read)Tj /T1_0 1 Tf 2.65 0 Td (or)Tj /TT1 1 Tf 1.191 0 Td (write)Tj /T1_0 1 Tf (.)Tj 7.9995 0 0 7.9995 183.5894 588.9647 Tm [(Memory-mapped )-64(I/O )-64(has )-64(been )-64(in )-64(use )-64(with )-64(virtual )-64(memory )-64(systems )-64(for )-64(many )-64(years.)-567(In )-64(1981,)]TJ 0 -1.25 TD [(4.1BSD )-299(pr)18(ovided )-299(a )-299(dif)19(fer)18(ent )-299(form )-299(of )-299(memory-mapped )-299(I/O )-299(with )-299(its)]TJ /TT1 1 Tf 32.61 0 Td (vread)Tj /T1_0 1 Tf 3.549 0 Td (and)Tj /TT1 1 Tf 2.242 0 Td (vwrite)Tj /T1_0 1 Tf -38.4 -1.25 Td [(functions. )-547(These)-548(two )-297(functions )-297(wer)]TJ 0.5475 Tc 16.924 0 Td (et)Tj 0 Tc 1.352 0 Td [(hen )-297(r)18(emoved )-297(in )-297(4.2BSD )-297(and )-297(wer)]TJ 0.5475 Tc 15.737 0 Td (ei)Tj 0 Tc 1.317 0 Td [(ntended )-297(to )-297(be)]TJ -0.018 Tc -35.331 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(placed )-41(with )-41(the)]TJ /TT1 1 Tf 7.22 0 Td (mmap)Tj /T1_0 1 Tf 2.691 0 Td [(function. )-291(The)]TJ /TT1 1 Tf 6.464 0 Td (mmap)Tj /T1_0 1 Tf 2.691 0 Td [(function, )-41(however)]TJ 0.2913 Tc 8.054 0 Td (,w)Tj 0 Tc 1.375 0 Td [(as )-41(not )-41(included )-41(with )-41(4.2BSD)]TJ -29.352 -1.25 Td [(\(for )-70(r)18(easons )-70(described )-70(in )-70(Section )-70(2.5 )-70(of )-70(McKusick )-70(et )-70(al.)]TJ 24.905 0.04 Td ([)Tj 0.333 -0.04 Td (1996)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td [(\). )-320(Gingell,)-321(Moran, )-70(and )-70(Shannon)]TJ -27.571 -1.21 Td ([)Tj 0.333 -0.04 Td (1987)Tj 2 0.04 Td (])Tj 0.845 -0.04 Td [(describe )-262(one )-262(implementation )-262(of)]TJ /TT1 1 Tf 15.271 0 Td (mmap)Tj /T1_0 1 Tf 0.7623 Tc (.V)Tj 0 Tc 4.023 0 Td [(ersion )-262(4 )-262(of )-262(the )-262(Single )-262(UNIX )-262(Speci\336cation)]TJ -22.472 -1.25 Td [(moved )-191(the)]TJ /TT1 1 Tf 5.353 0 Td (mmap)Tj /T1_0 1 Tf 2.841 0 Td [(function )-191(fr)18(om )-191(an )-191(option )-191(to )-191(the )-191(base )-191(speci\336cation.)-690(All )-191(POSIX-conforming)]TJ -8.194 -1.25 Td (systems ar)Tj 0.25 Tc 4.643 0 Td (er)Tj 0 Tc 1.106 0 Td [(equir)18(ed to support it.)]TJ -0.092 Tc 9.9994 0 0 9.9994 147.5921 496.9702 Tm [(To )-351(u)]TJ 0 Tc 2.087 0 Td [(se )-167(this )-167(featur)17(e, )-167(we )-167(have )-167(to )-167(tell )-167(the )-167(kernel )-167(to )-167(map )-167(a )-167(given )-167(\336le )-167(to )-167(a )-167(r)18(egion )-167(in)]TJ -3.887 -1.2 Td (memory)Tj 0.5 Tc 3.631 0 Td (.T)Tj 0 Tc 1.363 0 Td (his task is handled by the)Tj /TT1 1 Tf 11.47 0 Td (mmap)Tj /T1_0 1 Tf 2.65 0 Td (function.)Tj /TT1 1 Tf 8.9995 0 0 8.9995 140.3928 468.2719 Tm (#include )Tj 0 -2.021 TD (void *mmap\(void *)Tj /T1_2 1 Tf (addr)Tj /TT1 1 Tf 0.6 Tc (,s)Tj 0 Tc 13.833 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (len)Tj /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.023 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td [(pr)18(ot)]TJ /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.448 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.289 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (fd)Tj /TT1 1 Tf 0.6 Tc (,o)Tj 0 Tc 2.578 0 Td (ff_t)Tj /T1_2 1 Tf 3 0 Td (off)Tj /TT1 1 Tf 1.185 0 Td (\);)Tj /T1_0 1 Tf -30.567 -2.021 Td [(Returns: starting addr)18(ess of mapped r)18(egion if OK,)]TJ /TT1 1 Tf 22.324 0 Td (MAP_FAILED)Tj /T1_0 1 Tf 6.25 0 Td [(on err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4274.25 cm 0 0 m 0 499 l 3900 499 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 413.8703 Tm (The)Tj /T1_2 1 Tf 1.947 0 Td (addr)Tj /T1_0 1 Tf 2.106 0 Td [(ar)18(gument )-23(lets )-23(us )-23(specify )-23(the )-23(addr)18(ess )-23(wher)16(e)-273(we)-273(w)-1(ant )-23(the )-23(mapped )-23(r)18(egion )-23(to)]TJ -5.854 -1.2 Td [(start. )-267(W)]TJ 0.2667 Tc 3.646 0 Td (en)Tj 0 Tc 1.328 0 Td [(ormally )-17(set )-17(this )-17(value )-17(to )-17(0 )-17(to )-17(allow )-17(the )-17(system )-17(to )-17(choose )-17(the )-17(starting )-17(addr)22(ess.)]TJ -4.973 -1.2 Td [(The r)18(eturn value of this function is the starting addr)18(ess of the mapped ar)18(ea.)]TJ 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 2.022 0 Td (fd)Tj /T1_0 1 Tf 1.126 0 Td [(ar)18(gument )-98(is )-98(the )-98(\336le )-98(descriptor )-98(specifying )-98(the )-98(\336le )-98(that )-98(is )-98(to )-98(be )-98(mapped.)]TJ -0.092 Tc 32.665 0 Td (We)Tj 0 Tc -37.613 -1.2 Td [(have )-54(to )-54(open )-54(this )-54(\336le )-54(befor)19(e)-304(we)-304(can )-54(map )-54(it )-54(into )-54(the )-54(addr)18(ess )-54(space.)-553(The)]TJ /T1_2 1 Tf 32.149 0 Td (len)Tj /T1_0 1 Tf 1.527 0 Td [(ar)18(gument )-54(is)]TJ -33.675 -1.2 Td [(the )-57(number )-57(of )-57(bytes )-57(to )-57(map, )-57(and)]TJ /T1_2 1 Tf 15.046 0 Td (off)Tj /T1_0 1 Tf 1.307 0 Td [(is )-57(the )-57(starting )-57(of)18(fset )-57(in )-57(the )-57(\336le )-57(of )-57(the )-57(bytes )-57(to )-57(map.)]TJ -16.353 -1.2 Td [(\(Some r)18(estrictions on the value of)]TJ /T1_2 1 Tf 15.003 0 Td (off)Tj /T1_0 1 Tf 1.25 0 Td (ar)Tj 0.25 Tc 0.877 0 Td (ed)Tj 0 Tc 1.34 0 Td [(escribed later)74(.\))]TJ -16.67 -1.2 Td (The)Tj /T1_2 1 Tf 1.924 0 Td [(pr)18(ot)]TJ /T1_0 1 Tf 1.898 0 Td [(ar)18(gument speci\336es the pr)18(otection of the mapped r)18(egion.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2428.25 3087.25 cm 0 0 m 1635 0 l S Q Q BT /T1_2 1 Tf 7.9986 0 0 7.9986 264.2044 300.6659 Tm [(pr)18(ot)]TJ /T1_0 1 Tf 8.717 0 Td (Description)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2428.25 2967.25 cm 0 0 m 1635 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2428.25 2947.25 cm 0 0 m 1635 0 l S Q Q BT /TT1 1 Tf 7.9981 0 0 7.9981 246.7848 286.6512 Tm (PROT_READ)Tj /T1_0 1 Tf 7.5 0 Td [(Region can be r)18(ead.)]TJ /TT1 1 Tf -7.5 -1.25 Td (PROT_WRITE)Tj /T1_0 1 Tf 7.5 0 Td (Region can be written.)Tj /TT1 1 Tf -7.5 -1.25 Td (PROT_EXEC)Tj /T1_0 1 Tf 7.5 0 Td (Region can be executed.)Tj /TT1 1 Tf -7.5 -1.25 Td (PROT_NONE)Tj /T1_0 1 Tf 7.5 0 Td (Region cannot be accessed.)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2428.25 2527.25 cm 0 0 m 1635 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3008.25 2527.25 cm 0 0 m 0 560 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4063.25 2527.25 cm 0 0 m 0 560 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2428.25 2527.25 cm 0 0 m 0 560 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 232.8261 234.6496 Tm (Figure 14.25)Tj /T1_0 1 Tf 6.195 0 Td [(Pr)18(otection of memory-mapped r)18(egion)]TJ -0.092 Tc 9.997 0 0 9.997 129.5613 208.2575 Tm [(We )-602(c)]TJ 0 Tc 2.499 0 Td [(an )-418(specify )-418(the )-418(pr)18(otection )-418(as )-418(either)]TJ /TT1 1 Tf 17.598 0 Td (PROT_NONE)Tj /T1_0 1 Tf 6.068 0 Td [(or )-418(the )-418(bitwise )-418(OR )-418(of )-418(any)]TJ -26.164 -1.2 Td [(combination )-120(of)]TJ /TT1 1 Tf 7.162 0 Td (PROT_READ)Tj /T1_0 1 Tf (,)Tj /TT1 1 Tf 6.02 0 Td (PROT_WRITE)Tj /T1_0 1 Tf 0.3697 Tc (,a)Tj 0 Tc 7.12 0 Td (nd)Tj /TT1 1 Tf 1.563 0 Td (PROT_EXEC)Tj /T1_0 1 Tf 0.6198 Tc (.T)Tj 0 Tc 6.883 0 Td [(he )-120(pr)18(otection )-120(speci\336ed)]TJ -28.747 -1.2 Td [(for )-97(a )-97(r)17(egion )-97(can\325t )-97(allow )-97(mor)]TJ 0.3473 Tc 12.74 0 Td (ea)Tj 0 Tc 1.326 0 Td [(ccess )-97(than )-97(the)]TJ /TT1 1 Tf 6.634 0 Td (open)Tj /T1_0 1 Tf 2.747 0 Td [(mode )-97(of )-97(the )-97(\336le.)-597(For )-97(example, )-97(we)]TJ -23.447 -1.2 Td (can\325t specify)Tj /TT1 1 Tf 5.758 0 Td (PROT_WRITE)Tj /T1_0 1 Tf 6.25 0 Td [(if the \336le was opened r)18(ead-only)111(.)]TJ -10.208 -1.2 Td (Befor)Tj 0.4182 Tc 2.346 0 Td (el)Tj 0 Tc 1.188 0 Td [(ooking )-168(at )-168(the)]TJ /T1_2 1 Tf 6.545 0 Td (\337ag)Tj /T1_0 1 Tf 1.907 0 Td [(ar)18(gument, )-168(let\325s )-168(see )-168(what\325s )-168(going )-168(on )-168(her)17(e. )-418(Figur)]TJ 0.4183 Tc 22.067 0 Td (e1)Tj 0 Tc 1.397 0 Td (4.26)Tj -37.25 -1.2 Td [(shows )-6(a )-6(memory-mapped )-6(\336le.)-506(\(Recall )-6(the )-6(memory )-6(layout )-6(of )-6(a )-6(typical )-6(pr)13(ocess, )-6(shown )-6(in)]TJ 0 -1.2 TD (Figur)Tj 0.308 Tc 2.383 0 Td (e7)Tj 0 Tc 1.287 0 Td [(.6.\) )-308(In)-308(this )-58(\336gur)18(e, )-58(\324)37(\324start )-58(addr)]TJ -0.037 Tc 13.216 0 Td [(\325\325 )-132(i)]TJ 0.3081 Tc 1.118 0 Td (st)Tj 0 Tc 1.058 0 Td [(he )-58(r)18(eturn )-58(value )-58(fr)18(om)]TJ /TT1 1 Tf 9.632 0 Td (mmap)Tj /T1_0 1 Tf 0.5581 Tc (.W)Tj 0.3081 Tc 4.116 0 Td (eh)Tj 0 Tc 1.369 0 Td [(ave )-58(shown)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46953 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.7)]TJ /TT0 1 Tf 29.686 0 Td (readn)Tj /T1_0 1 Tf 3.5 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (writen)Tj /T1_0 1 Tf 4.1 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (523)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(In )-295(summary)]TJ 0.5453 Tc 5.597 0 Td (,w)Tj 0.5454 Tc 1.629 0 Td (es)Tj 0 Tc 1.448 0 Td [(hould )-295(always )-295(try )-295(to )-295(use )-295(the )-295(fewest )-295(number )-295(of )-295(system )-295(calls)]TJ -10.475 -1.2 Td [(necessary )-84(to )-84(get )-84(the )-84(job )-84(done.)-584(If )-84(we )-84(ar)]TJ 0.334 Tc 17.486 0 Td (ew)Tj 0 Tc 1.647 0 Td [(riting )-84(small )-84(amounts )-84(of )-84(data, )-84(we )-84(will )-84(\336nd )-84(it)]TJ -19.133 -1.2 Td [(less )-218(expensive )-218(to )-218(copy )-218(the )-218(data )-218(ourselves )-218(and )-218(use )-218(a )-218(single)]TJ /TT0 1 Tf 28.049 0 Td (write)Tj /T1_0 1 Tf 3.468 0 Td [(instead )-218(of )-218(using)]TJ /TT0 1 Tf -31.516 -1.2 Td (writev)Tj /T1_0 1 Tf 0.5615 Tc (.W)Tj 0.3115 Tc 5.319 0 Td (em)Tj 0 Tc 1.674 0 Td [(ight )-61(\336nd, )-61(however)]TJ 0.3114 Tc 8.232 0 Td (,t)Tj 0 Tc 0.887 0 Td [(hat )-61(the )-61(performance )-61(bene\336ts )-61(ar)18(en\325t )-61(worth )-61(the )-61(extra)]TJ -16.112 -1.2 Td [(complexity cost needed to manage our own staging buf)18(fers.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5942 584.9649 Tm (14.7)Tj /TT2 1 Tf 3 0 Td (readn)Tj /TT1 1 Tf 3.556 0 Td (and)Tj /TT2 1 Tf 2.334 0 Td (writen)Tj /TT1 1 Tf 4.156 0 Td (Functions)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5916 563.3662 Tm [(Pipes, )-44(FIFOs, )-44(and )-44(some )-44(devices)]TJ 0.0833 Tc 14.136 0 Td (\321n)Tj 0 Tc 1.665 0 Td [(otably )-44(terminals )-44(and )-44(networks)]TJ 0.0833 Tc 13.744 0 Td (\321h)Tj 0 Tc 1.665 0 Td [(ave )-44(the )-44(following)]TJ -31.211 -1.2 Td [(two pr)18(operties.)]TJ 1.8 -2.04 Td [(1. )-633(A)]TJ /TT0 1 Tf 2.842 0 Td (read)Tj /T1_0 1 Tf 2.831 0 Td [(operation )-181(may )-181(r)18(eturn )-181(less )-181(than )-181(asked )-181(for)]TJ 0.4308 Tc 18.93 0 Td (,e)Tj 0 Tc 1.16 0 Td [(ven )-181(though )-181(we )-181(have )-181(not)]TJ -24.13 -1.2 Td [(encounter)18(ed )-18(the )-18(end )-18(of )-18(\336le.)-518(This )-18(is )-18(not )-18(an )-18(err)16(or)]TJ 0.2682 Tc 21.014 0 Td (,a)Tj 0 Tc 1.018 0 Td [(nd )-18(we )-18(should )-18(simply )-18(continue)]TJ -0.018 Tc -22.032 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ading fr)18(om the device.)]TJ -2.489 -1.6 Td [(2. )-633(A)]TJ /TT0 1 Tf 2.783 0 Td (write)Tj /T1_0 1 Tf 3.371 0 Td [(operation )-121(can )-121(r)18(eturn )-121(less )-121(than )-121(we )-121(speci\336ed.)-624(This )-121(may )-121(be )-121(caused )-121(by)]TJ -4.521 -1.2 Td [(kernel )-98(output )-98(buf)18(fers )-98(becoming )-98(full, )-98(for )-98(example.)-600(Again, )-98(it\325s )-98(not )-98(an )-98(err)16(or)]TJ 0.3484 Tc 33.276 0 Td (,a)Tj 0 Tc 1.098 0 Td (nd)Tj -34.374 -1.2 Td [(we )-179(should )-179(continue )-179(writing )-179(the )-179(r)18(emainder )-179(of )-179(the )-179(data.)-681(\(Normally)]TJ 0.4291 Tc 30.563 0 Td (,t)Tj 0 Tc 1.005 0 Td [(his )-179(short)]TJ -0.018 Tc -31.568 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-60(fr)18(om )-60(a)]TJ /TT0 1 Tf 5.474 0 Td (write)Tj /T1_0 1 Tf 3.31 0 Td [(occurs )-60(only )-60(with )-60(a )-60(nonblocking )-60(descriptor )-60(or )-60(if )-60(a )-60(signal )-60(is)]TJ -9.64 -1.2 Td (caught.\))Tj -0.092 Tc -3.433 -2.04 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-132(never )-132(see )-132(this )-132(happen )-132(when )-132(r)20(eading )-131(or )-131(writing )-131(a )-131(disk )-131(\336le, )-131(except )-131(when )-131(the )-131(\336le)]TJ -1.387 -1.2 Td [(system )-215(r)8(uns )-215(out )-215(of )-215(space )-215(or )-215(we )-215(hit )-215(our )-215(quota )-215(limit )-215(and )-215(we )-215(can\325t )-215(write )-215(all )-215(that )-215(we)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td (quested.)Tj 0.944 -1.2 Td (Generally)Tj 0.3487 Tc 4.225 0 Td (,w)Tj 0 Tc 1.433 0 Td [(hen )-99(we )-99(r)18(ead )-99(fr)19(om )-99(or )-99(write )-99(to )-99(a )-99(pipe, )-99(network )-99(device, )-99(or )-99(terminal, )-99(we)]TJ -7.458 -1.2 Td [(need )-317(to )-317(take )-317(these )-317(characteristics )-317(into )-317(consideration.)]TJ -0.092 Tc 25.667 0 Td [(We )-501(c)]TJ 0 Tc 2.398 0 Td [(an )-317(use )-317(the)]TJ /TT0 1 Tf 5.675 0 Td (readn)Tj /T1_0 1 Tf 3.567 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (writen)Tj /T1_0 1 Tf 3.87 0 Td [(functions )-20(to )-20(r)18(ead )-20(and )-20(write)]TJ /T1_2 1 Tf 12.337 0 Td (N)Tj /T1_0 1 Tf 1.048 0 Td [(bytes )-20(of )-20(data, )-20(r)19(espectively)]TJ 0.2697 Tc 11.414 0 Td (,l)Tj 0 Tc 0.811 0 Td [(etting )-20(these )-20(functions)]TJ -29.48 -1.2 Td [(handle )-102(a )-102(r)18(eturn )-102(value )-102(that\325s )-102(possibly )-102(less )-102(than )-102(r)16(equested. )-352(These)-353(two )-102(functions )-102(simply)]TJ 0 -1.2 Td (call)Tj /TT0 1 Tf 1.912 0 Td (read)Tj /T1_0 1 Tf 2.786 0 Td (or)Tj /TT0 1 Tf 1.327 0 Td (write)Tj /T1_0 1 Tf 3.386 0 Td [(as )-136(many )-136(times )-136(as )-136(r)18(equir)18(ed )-136(to )-136(r)18(ead )-136(or )-136(write )-136(the )-136(entir)18(e)]TJ /T1_2 1 Tf 24.822 0 Td (N)Tj /T1_0 1 Tf 1.164 0 Td [(bytes )-136(of)]TJ -35.397 -1.2 Td (data.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5907 309.8814 Tm (#include "apue.h")Tj 0 -1.902 TD (ssize_t readn\(int)Tj /T1_2 1 Tf 10.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 2.578 0 Td (oid *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 6.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT0 1 Tf (\);)Tj -23.075 -1.902 Td (ssize_t writen\(int)Tj /T1_2 1 Tf 11.4 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 2.578 0 Td (oid *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 6.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -9.391 -1.902 Td [(Both r)18(eturn: number of bytes r)18(ead or written,)]TJ /TT3 1 Tf 20.18 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2540.25 cm 0 0 m 0 649 l 3900 649 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 7.999 0 0 7.999 183.578 232.5121 Tm [(We )-320(d)]TJ 0 Tc 2.384 0 Td [(e\336ne )-136(these )-136(functions )-136(as )-136(a )-136(convenience )-136(for )-136(later )-136(examples, )-136(similar )-136(to )-136(the )-136(err)21(or)18(-handling)]TJ -0.018 Tc -2.384 -1.25 Td (ro)Tj 0 Tc 0.923 0 Td [(utines )-54(used )-54(in )-54(many )-54(of )-54(the )-54(examples )-54(in )-54(this )-54(text.)-559(The)]TJ /TT0 1 Tf 24.321 0 Td (readn)Tj /T1_0 1 Tf 3.304 0 Td (and)Tj /TT0 1 Tf 1.997 0 Td (writen)Tj /T1_0 1 Tf 3.904 0 Td [(functions )-54(ar)]TJ 0.3044 Tc 5.312 0 Td (en)Tj 0 Tc 1.365 0 Td (ot)Tj -41.128 -1.25 Td [(part of any standar)18(d.)]TJ -0.092 Tc 9.9988 0 0 9.9988 147.5823 192.5169 Tm [(We )-219(c)]TJ 0 Tc 2.116 0 Td (all)Tj /TT0 1 Tf 1.367 0 Td (writen)Tj /T1_0 1 Tf 3.885 0 Td [(whenever )-35(we\325r)]TJ 0.2848 Tc 6.648 0 Td (ew)Tj 0 Tc 1.598 0 Td [(riting )-35(to )-35(one )-35(of )-35(the )-35(\336le )-35(types )-35(that )-35(we )-35(mentioned,)]TJ -17.413 -1.2 Td [(but )-15(we )-15(call)]TJ /TT0 1 Tf 5.115 0 Td (readn)Tj /T1_0 1 Tf 3.265 0 Td [(only )-15(when )-15(we )-15(know )-15(ahead )-15(of )-15(time )-15(that )-15(we )-15(will )-15(be )-15(r)18(eceiving )-15(a )-15(certain)]TJ -8.38 -1.2 Td [(number )-97(of )-97(bytes.)-597(Figur)]TJ 0.3469 Tc 10.636 0 Td (e1)Tj 0 Tc 1.326 0 Td [(4.24 )-97(shows )-97(implementations )-97(of)]TJ /TT0 1 Tf 14.311 0 Td (readn)Tj /T1_0 1 Tf 3.347 0 Td (and)Tj /TT0 1 Tf 2.04 0 Td (writen)Tj /T1_0 1 Tf 3.947 0 Td [(that )-97(we)]TJ -35.606 -1.2 Td (will use in later examples.)Tj 1.8 -1.2 Td [(Note )-4(that )-4(if )-4(we )-4(encounter )-4(an )-4(err)19(or )-4(and )-4(have )-4(pr)18(eviously )-4(r)18(ead )-4(or )-4(written )-4(any )-4(data, )-4(we)]TJ -0.018 Tc -1.8 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-20(the )-20(amount )-20(of )-20(data )-20(transferr)16(ed )-20(instead )-20(of )-20(the )-20(err)16(or)]TJ 0.5205 Tc 24.481 0 Td (.S)Tj 0 Tc 1.296 0 Td [(imilarly)111(,)-270(if)-270(we)-270(r)17(each )-20(the )-20(end)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46954 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.6)]TJ /TT0 1 Tf 29.686 0 Td (readv)Tj /T1_0 1 Tf 3.5 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (writev)Tj /T1_0 1 Tf 4.1 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (521)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT1 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm (14.6)Tj /TT2 1 Tf 3 0 Td (readv)Tj /TT1 1 Tf 3.556 0 Td (and)Tj /TT2 1 Tf 2.334 0 Td (writev)Tj /TT1 1 Tf 4.156 0 Td (Functions)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5918 644.9613 Tm (The)Tj /TT0 1 Tf 2.436 0 Td (readv)Tj /T1_0 1 Tf 3.762 0 Td (and)Tj /TT0 1 Tf 2.455 0 Td (writev)Tj /T1_0 1 Tf 4.362 0 Td [(functions )-512(let )-512(us )-512(r)18(ead )-512(into )-512(and )-512(write )-512(fr)18(om )-512(multiple)]TJ -13.015 -1.2 Td [(noncontiguous )-76(buf)18(fers )-76(in )-76(a )-76(single )-76(function )-76(call.)-576(These )-76(operations )-76(ar)]TJ 0.3259 Tc 30.539 0 Td (ec)Tj 0 Tc 1.249 0 Td (alled)Tj /T1_2 1 Tf 2.498 0 Td [(scatter )-76(r)18(ead)]TJ /T1_0 1 Tf -34.286 -1.2 Td (and)Tj /T1_2 1 Tf 1.943 0 Td (gather write)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5913 603.0638 Tm (#include )Tj 0 -1.902 TD (ssize_t readv\(int)Tj /T1_2 1 Tf 10.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst struct iovec *)Tj /T1_2 1 Tf (iov)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 14.422 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (iovcnt)Tj /TT0 1 Tf (\);)Tj -29.6 -1.902 Td (ssize_t writev\(int)Tj /T1_2 1 Tf 11.4 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst struct iovec *)Tj /T1_2 1 Tf (iov)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 14.422 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (iovcnt)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -15.916 -1.902 Td [(Both r)18(eturn: number of bytes r)18(ead or written,)]TJ /TT3 1 Tf 20.18 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5472.25 cm 0 0 m 0 649 l 3900 649 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 532.4761 Tm [(The second ar)18(gument to both functions is a pointer to an array of)]TJ /TT0 1 Tf 28.94 0 Td (iovec)Tj /T1_0 1 Tf 3.25 0 Td [(str)8(uctur)18(es:)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 513.378 Tm (struct iovec {)Tj 1.2 -1.189 Td [(void )-1200(*iov_base;)-1200(/* starting address of buffer */)]TJ 0 -1.189 TD [(size_t )-600(iov_len;)-1800(/* size of buffer */)]TJ -1.2 -1.189 Td (};)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 460.8843 Tm [(The )-49(number )-49(of )-49(elements )-49(in )-49(the)]TJ /T1_2 1 Tf 14.044 0 Td (iov)Tj /T1_0 1 Tf 1.521 0 Td [(array )-49(is )-49(speci\336ed )-49(by)]TJ /T1_2 1 Tf 9.3 0 Td (iovcnt)Tj /T1_0 1 Tf 0.549 Tc (.I)Tj 0 Tc 3.654 0 Td [(t)-299(is)-299(limited )-49(to)]TJ /TT0 1 Tf 6.281 0 Td (IOV_MAX)Tj /T1_0 1 Tf -34.8 -1.2 Td [(\(r)18(ecall )-85(Figur)]TJ 0.3347 Tc 5.433 0 Td (e2)Tj 0 Tc 1.314 0 Td [(.1)55(1\). )-335(Figur)]TJ 0.3346 Tc 4.746 0 Td (e1)Tj 0 Tc 1.314 0 Td [(4.22 )-85(shows )-85(a )-85(diagram )-85(r)18(elating )-85(the )-85(ar)18(guments )-85(to )-85(these )-85(two)]TJ -12.806 -1.2 Td (functions and the)Tj /TT0 1 Tf 7.961 0 Td (iovec)Tj /T1_0 1 Tf 3.25 0 Td [(str)8(uctur)18(e.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2634 3957.4 432 144 re S Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2634 3813.4 432 144 re S Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 277.542 386.7104 Tm (len0)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2634 3669.4 432 144 re S Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2634 3525.4 432 144 re S Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 277.5254 357.8941 Tm (len1)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2634 3237.4 432 288 re S Q BT /T1_1 1 Tf 0.25 Tc 9.997 0 0 9.997 278.6664 336.2791 Tm (...)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 2634 3093.4 432 144 re S Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 2634 2949.4 432 144 re S Q BT /T1_0 1 Tf 0 Tc 7.9971 0 0 7.9971 276.3805 300.2719 Tm (len)Tj /T1_2 1 Tf (N)Tj ET q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 349.8 402.94 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3498 4029.3999 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2994.25 4029.25 cm 0 0 m 432 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 3498 3957.4 1008 144 re S Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 387.3253 401.0115 Tm [(buf)18(fer0)]TJ ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 364.2 366.94 cm 0 0 m -7.344 -1.008 l -6.912 2.592 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3642 3669.3999 cm 0 0 m -73.44 -10.08 l -69.12 25.92 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2994.25 3741.25 cm 0 0 m 576 -64 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 3642 3597.4 720 144 re S Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 387.302 365.0048 Tm [(buf)18(fer1)]TJ ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 378.6 316.54 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3786 3165.3999 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2994.25 3165.25 cm 0 0 m 720 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 3786 3093.4 1152 144 re S Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 422.148 314.6101 Tm [(buf)18(fer)]TJ /T1_2 1 Tf (N)Tj -28.894 10.8 Td (iov)Tj /TT0 1 Tf ([0].iov_base)Tj /T1_2 1 Tf 0 -1.8 TD (iov)Tj /TT0 1 Tf ([0].iov_len)Tj /T1_2 1 Tf T* (iov)Tj /TT0 1 Tf ([1].iov_base)Tj /T1_2 1 Tf T* (iov)Tj /TT0 1 Tf ([1].iov_len)Tj /T1_2 1 Tf -2.967 -5.4 Td (iov)Tj /TT0 1 Tf ([)Tj /T1_2 1 Tf (iovcnt)Tj /TT3 1 Tf (!)Tj /T1_2 1 Tf (1)Tj /TT0 1 Tf (].iov_base)Tj /T1_2 1 Tf -0 -1.8 Td (iov)Tj /TT0 1 Tf ([)Tj /T1_2 1 Tf (iovcnt)Tj /TT3 1 Tf (!)Tj /T1_2 1 Tf (1)Tj /TT0 1 Tf (].iov_len)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3498.25 3921.25 cm 0 0 m 0 -72 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4506.25 3921.25 cm 0 0 m 0 -72 l S Q Q q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 349.8 388.54 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 3498 3885.3999 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3570.25 3885.25 cm 0 0 m 288 0 l S Q Q q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 450.6 388.54 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 4506 3885.3999 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4434.25 3885.25 cm 0 0 m -288 0 l S Q Q BT /T1_0 1 Tf 7.9942 0 0 7.9942 392.5093 386.5016 Tm (len0)Tj ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 3561.25 cm 0 0 m 0 -72 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4362.25 3561.25 cm 0 0 m 0 -72 l S Q Q q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 364.2 352.54 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 3642 3525.3999 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3714.25 3525.25 cm 0 0 m 144 0 l S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 436.2 352.54 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 4362 3525.3999 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4290.25 3525.25 cm 0 0 m -144 0 l S Q Q BT /T1_0 1 Tf 7.9928 0 0 7.9928 392.4386 350.4644 Tm (len1)Tj ET q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3057.25 cm 0 0 m 0 -72 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4938.25 3057.25 cm 0 0 m 0 -72 l S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 378.6 302.14 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 3786 3021.3999 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3858.25 3021.25 cm 0 0 m 360 0 l S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 493.8 302.14 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 4938 3021.3999 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4866.25 3021.25 cm 0 0 m -360 0 l S Q Q BT /T1_0 1 Tf 7.9914 0 0 7.9914 427.2183 300.0558 Tm (len)Tj /T1_2 1 Tf (N)Tj /T1_1 1 Tf -25.837 -3.83 Td (Figure 14.22)Tj /T1_0 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (iovec)Tj /T1_0 1 Tf 3.25 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ef)Tj 0 Tc 1.062 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (readv)Tj /T1_0 1 Tf 3.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (writev)Tj /T1_0 1 Tf 9.9892 0 0 9.9892 129.4597 238.2823 Tm (The)Tj /TT0 1 Tf 2.058 0 Td (writev)Tj /T1_0 1 Tf 3.984 0 Td [(function )-134(gathers )-134(the )-134(output )-134(data )-134(fr)18(om )-134(the )-134(buf)18(fers )-134(in )-134(or)17(der:)]TJ /T1_2 1 Tf 27.298 0 Td (iov[0])Tj /T1_0 1 Tf (,)Tj /T1_2 1 Tf 3.022 0 Td (iov[1])Tj /T1_0 1 Tf (,)Tj -36.362 -1.2 Td [(thr)18(ough)]TJ /T1_2 1 Tf 3.918 0 Td (iov[iovcnt)Tj /TT3 1 Tf (!)Tj /T1_2 1 Tf (1])Tj /T1_0 1 Tf (;)Tj /TT0 1 Tf 6.051 0 Td (writev)Tj /T1_0 1 Tf -0.018 Tc 3.946 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-96(the )-96(total )-96(number )-96(of )-96(bytes )-96(output, )-96(which )-96(should)]TJ -14.771 -1.2 Td [(normally equal the sum of all the buf)18(fer lengths.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.071 0 Td (readv)Tj /T1_0 1 Tf 3.397 0 Td [(function )-147(scatters )-147(the )-147(data )-147(into )-147(the )-147(buf)18(fers )-147(in )-147(or)20(der)]TJ 0.3968 Tc 22.964 0 Td (,a)Tj 0 Tc 1.147 0 Td [(lways )-147(\336lling )-147(one)]TJ -31.379 -1.2 Td [(buf)18(fer )-18(befor)]TJ 0.2679 Tc 5.234 0 Td (ep)Tj -0.018 Tc 1.348 0 Td (ro)Tj 0 Tc 0.923 0 Td [(ceeding )-18(to )-18(the )-18(next.)]TJ /TT0 1 Tf 9.176 0 Td (readv)Tj /T1_0 1 Tf -0.018 Tc 3.268 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-18(the )-18(total )-18(number )-18(of )-18(bytes )-18(that )-18(wer)19(e)]TJ -0.018 Tc -20.804 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ad. )-258(A)-257(count )-8(of )-8(0 )-8(is )-8(r)18(eturned )-8(if )-8(ther)20(e)-258(is)-258(no)-258(m)1(or)]TJ 0.2577 Tc 20.187 0 Td (ed)Tj 0 Tc 1.348 0 Td [(ata )-8(and )-8(the )-8(end )-8(of )-8(\336le )-8(is )-8(encounter)19(ed.)]TJ 7.9914 0 0 7.9914 183.4014 156.3708 Tm [(These )-44(two )-44(functions )-44(originated )-44(in )-44(4.2BSD )-44(and )-44(wer)]TJ 0.2936 Tc 22.462 0 Td (el)Tj 0 Tc 1.064 0 Td [(ater )-43(added )-43(to )-43(SVR4.)-543(These )-43(two )-43(functions)]TJ -23.526 -1.25 Td (ar)Tj 0.25 Tc 0.877 0 Td (ei)Tj 0 Tc 1.02 0 Td (ncluded in the XSI option of the Single UNIX Speci\336cation.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46955 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.5)]TJ 35.197 0 Td [(Asynchr)18(onous )-250(I/O)]TJ /T1_1 1 Tf 10.673 0 Td [(51)37(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(3. )-633(Enable)-326(asynchr)18(onous )-76(I/O )-76(on )-76(the )-76(descriptor )-76(by )-76(calling)]TJ /TT0 1 Tf 26.241 0 Td (fcntl)Tj /T1_0 1 Tf 3.326 0 Td [(with )-76(a )-76(command)]TJ -27.933 -1.2 Td (of)Tj /TT0 1 Tf 1.129 0 Td (F_SETFL)Tj /T1_0 1 Tf 4.45 0 Td (to set the)Tj /TT0 1 Tf 4.238 0 Td (O_ASYNC)Tj /T1_0 1 Tf 4.45 0 Td (\336le status \337ag \(Figur)Tj 0.25 Tc 9.108 0 Td (e3)Tj 0 Tc 1.229 0 Td (.10\).)Tj -28.037 -1.92 Td [(Step )-60(3 )-60(can )-60(be )-60(performed )-60(only )-60(on )-60(descriptors )-60(that )-60(r)18(efer )-60(to )-60(terminals )-60(or )-60(networks, )-60(which)]TJ 0 -1.2 TD [(is a fundamental limitation of the BSD asynchr)18(onous I/O facility)111(.)]TJ 1.8 -1.2 Td [(For )-77(the)]TJ /TT0 1 Tf 3.539 0 Td (SIGURG)Tj /T1_0 1 Tf 3.927 0 Td [(signal, )-77(we )-77(need )-77(perform )-77(only )-77(steps )-77(1 )-77(and )-77(2.)]TJ /TT0 1 Tf 20.358 0 Td (SIGURG)Tj /T1_0 1 Tf 3.927 0 Td [(is )-77(generated)]TJ -33.551 -1.2 Td [(only )-159(for )-159(descriptors )-159(that )-159(r)18(efer )-159(to )-159(network )-159(connections )-159(that )-159(support )-159(out-of-band )-159(data,)]TJ T* (such as TCP connections.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 129.5918 556.1666 Tm [(14.5.3 )-556(POSIX)-556(Async)10(hr)20(onous )-278(I/O)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5919 532.1681 Tm [(The )-479(POSIX )-479(asynchr)18(onous )-479(I/O )-479(interfaces )-479(give )-479(us )-479(a )-479(consistent )-479(way )-479(to )-479(perform)]TJ T* [(asynchr)18(onous )-128(I/O, )-128(r)17(egar)18(dless )-129(of )-129(the )-129(type )-129(of )-129(\336le.)-629(These )-129(interfaces )-129(wer)]TJ 0.3786 Tc 31.951 0 Td (ea)Tj 0 Tc 1.358 0 Td [(dopted )-129(fr)18(om)]TJ -33.308 -1.2 Td [(the )-242(r)18(eal-time )-242(draft )-242(standar)18(d, )-242(which )-242(themselves )-242(wer)18(e)-492(an)-492(option )-242(in )-242(the )-242(Single )-242(UNIX)]TJ -0 -1.2 Td [(Speci\336cation. )-302(In)]TJ -0.111 Tc 7.657 0 Td (Ve)Tj 0 Tc 1.09 0 Td [(rsion )-52(4, )-52(the )-52(Single )-52(UNIX )-52(Speci\336cation )-52(moved )-52(these )-52(interfaces )-52(to )-52(the)]TJ -8.747 -1.2 Td (base, so they ar)Tj 0.25 Tc 6.746 0 Td (en)Tj 0 Tc 1.311 0 Td [(ow r)18(equir)18(ed to be supported by all platforms.)]TJ -6.257 -1.2 Td [(The )-7(asynchr)18(onous )-7(I/O )-7(interfaces )-7(use )-7(AIO )-7(contr)18(ol )-7(blocks )-7(to )-7(describe )-7(I/O )-7(operations.)]TJ -1.8 -1.2 Td (The)Tj /TT0 1 Tf 1.976 0 Td (aiocb)Tj /T1_0 1 Tf 3.302 0 Td [(str)8(uctur)]TJ 0.3016 Tc 3.49 0 Td (ed)Tj 0 Tc 1.392 0 Td [(e\336nes )-52(an )-52(AIO )-52(contr)18(ol )-52(block.)-550(It )-52(contains )-52(at )-52(least )-52(the )-52(\336elds )-52(shown)]TJ -10.159 -1.2 Td [(in the following str)8(uctur)]TJ 0.25 Tc 10.77 0 Td (e\()Tj 0 Tc 1.062 0 Td (implementations might include additional \336elds\):)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5906 429.0743 Tm (struct aiocb {)Tj 1.2 -1.189 Td (int )Tj 9.6 0 Td [(aio_fildes;)-3600(/* file descriptor */)]TJ -9.6 -1.189 Td (off_t )Tj 9.6 0 Td [(aio_offset;)-3600(/* file offset for I/O */)]TJ -9.6 -1.189 Td [(volatile void)-1200(*aio_buf; )-4800(/*)-600(buffer for I/O */)]TJ 0 -1.189 TD (size_t )Tj 9.6 0 Td [(aio_nbytes;)-3600(/* number of bytes to transfer */)]TJ -9.6 -1.189 Td (int )Tj 9.6 0 Td [(aio_reqprio;)-3000(/* priority */)]TJ -9.6 -1.189 Td [(struct sigevent aio_sigevent;)-2400(/* signal information */)]TJ T* (int )Tj 9.6 0 Td [(aio_lio_opcode;)-1200(/* operation for list I/O */)]TJ -10.8 -1.189 Td (};)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 147.5906 320.6808 Tm (The)Tj /TT0 1 Tf 2.008 0 Td (aio_fildes)Tj /T1_0 1 Tf 6.334 0 Td [(\336eld )-84(is )-84(the )-84(\336le )-84(descriptor )-84(open )-84(for )-84(the )-84(\336le )-84(to )-84(be )-84(r)18(ead )-84(or )-84(written.)]TJ -10.142 -1.2 Td [(The )-193(r)18(ead )-193(or )-193(write )-193(starts )-193(at )-193(the )-193(of)18(fset )-193(speci\336ed )-193(by)]TJ /TT0 1 Tf 23.416 0 Td (aio_offset)Tj /T1_0 1 Tf 0.6936 Tc (.F)Tj 0 Tc 7.5 0 Td [(or )-194(a )-194(r)18(ead, )-194(data )-194(is)]TJ -30.916 -1.2 Td [(copied )-55(to )-55(the )-55(buf)18(fer )-55(that )-55(begins )-55(at )-55(the )-55(addr)18(ess )-55(speci\336ed )-55(by)]TJ /TT0 1 Tf 26.569 0 Td (aio_buf)Tj /T1_0 1 Tf 0.5554 Tc (.F)Tj 0 Tc 5.561 0 Td [(or )-55(a )-55(write, )-55(data)]TJ -32.131 -1.2 Td [(is )-47(copied )-47(fr)18(om )-47(this )-47(buf)19(fer)]TJ 0.5467 Tc 11.24 0 Td (.T)Tj 0 Tc 1.41 0 Td (he)Tj /TT0 1 Tf 1.358 0 Td (aio_nbytes)Tj /T1_0 1 Tf 6.297 0 Td [(\336eld )-47(contains )-47(the )-47(number )-47(of )-47(bytes )-47(to )-47(r)20(ead)]TJ -20.304 -1.2 Td (or write.)Tj 1.8 -1.2 Td [(Note )-181(that )-181(we )-181(have )-181(to )-181(pr)18(ovide )-181(an )-181(explicit )-181(of)18(fset )-181(when )-181(we )-181(perform )-181(asynchr)19(onous)]TJ -1.8 -1.2 Td [(I/O. )-457(The)-457(asynchr)18(onous )-207(I/O )-207(interfaces )-207(don\325t )-207(af)18(fect )-207(the )-207(\336le )-207(of)19(fset )-207(maintained )-207(by )-207(the)]TJ 0 -1.2 TD [(operating )-48(system.)-548(This )-48(won\325t )-48(be )-48(a )-48(pr)18(oblem )-48(as )-48(long )-48(as )-48(we )-48(never )-48(mix )-48(asynchr)17(onous )-48(I/O)]TJ T* [(functions )-49(with )-49(conventional )-49(I/O )-49(functions )-49(on )-49(the )-49(same )-49(\336le )-49(in )-49(a )-49(pr)14(ocess. )-299(Also)-300(note )-49(that)]TJ T* [(if )-94(we )-94(write )-94(to )-94(a )-94(\336le )-94(opened )-94(in )-94(append )-94(mode )-94(\(with)]TJ /TT0 1 Tf 23.131 0 Td (O_APPEND)Tj /T1_0 1 Tf 0.3441 Tc (\)u)Tj 0 Tc 6.08 0 Td [(sing )-94(an )-94(asynchr)18(onous)]TJ -29.211 -1.2 Td (interface, the)Tj /TT0 1 Tf 5.966 0 Td (aio_offset)Tj /T1_0 1 Tf 6.25 0 Td [(\336eld in the AIO contr)18(ol block is ignor)18(ed by the system.)]TJ -10.416 -1.2 Td [(The )-491(other )-491(\336elds )-491(don\325t )-491(corr)18(espond )-491(to )-491(the )-491(conventional )-491(I/O )-491(functions.)-994(The)]TJ /TT0 1 Tf -1.8 -1.2 Td (aio_reqprio)Tj /T1_0 1 Tf 6.851 0 Td [(\336eld )-1(is )-1(a )-1(hint )-1(that )-1(gives )-1(applications )-1(a )-1(way )-1(to )-1(suggest )-1(an )-1(or)18(dering )-1(for )-1(the)]TJ -6.851 -1.2 Td [(asynchr)18(onous )-365(I/O )-365(r)18(equests. )-615(The)-615(system )-365(has )-365(only )-365(limited )-365(contr)18(ol )-365(over )-365(the )-365(exact)]TJ -0 -1.2 Td [(or)18(dering, )-353(however)74(,)-603(so)-603(t)-1(her)18(e)-603(is)-603(no)-603(g)-1(uarantee )-353(that )-353(the )-353(hint )-353(will )-353(be )-353(honor)16(ed. )-603(The)]TJ /TT0 1 Tf 0 -1.2 Td (aio_lio_opcode)Tj /T1_0 1 Tf 8.849 0 Td [(\336eld )-199(is )-199(used )-199(only )-199(with )-199(list-based )-199(asynchr)18(onous )-199(I/O, )-199(which )-199(we\325ll)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46956 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (510)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 129.5922 668.9599 Tm [(14.5.1 )-556(System)]TJ 0.556 Tc 7.727 0 Td (VA)Tj 0 Tc 1.945 0 Td [(sync)10(hr)20(onous )-278(I/O)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5921 644.9613 Tm [(System )-13(V )-13(pr)18(ovides )-13(a )-13(limited )-13(form )-13(of )-13(asynchr)15(onous )-13(I/O )-13(that )-13(works )-13(only )-13(with )-13(STREAMS)]TJ 0 -1.2 TD [(devices and STREAMS pipes.)-500(The System V asynchr)18(onous I/O signal is)]TJ /TT1 1 Tf 32.141 0 Td (SIGPOLL)Tj /T1_1 1 Tf (.)Tj -0.092 Tc -30.341 -1.2 Td [(To )-250(e)]TJ 0 Tc 1.862 0 Td [(nable )-66(asynchr)18(onous )-66(I/O )-66(for )-66(a )-66(STREAMS )-66(device, )-66(we )-66(have )-66(to )-66(call)]TJ /TT1 1 Tf 29.173 0 Td (ioctl)Tj /T1_1 1 Tf 3.316 0 Td [(with )-66(a)]TJ -36.151 -1.2 Td [(second )-10(ar)18(gument )-10(\()]TJ /T1_2 1 Tf -0.018 Tc 8.244 0 Td (re)Tj 0 Tc 0.76 0 Td (quest)Tj /T1_1 1 Tf 0.2596 Tc (\)o)Tj 0 Tc 3.269 0 Td (f)Tj /TT1 1 Tf 0.593 0 Td (I_SETSIG)Tj /T1_1 1 Tf 0.5097 Tc (.T)Tj 0 Tc 6.173 0 Td [(he )-10(thir)]TJ 0.2597 Tc 2.897 0 Td (da)Tj -0.018 Tc 1.371 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument )-10(is )-10(an )-10(integer )-10(value )-10(formed)]TJ -24.239 -1.2 Td [(fr)18(om )-235(one )-235(or )-235(mor)]TJ 0.4855 Tc 7.949 0 Td (eo)Tj 0.4854 Tc 1.511 0 Td (ft)Tj 0 Tc 1.144 0 Td [(he )-235(constants )-235(in )-235(Figur)]TJ 0.4854 Tc 9.927 0 Td (e1)Tj 0 Tc 1.464 0 Td [(4.18. )-485(These)-486(constants )-235(ar)]TJ 0.4854 Tc 11.314 0 Td (ed)Tj 0 Tc 1.575 0 Td [(e\336ned )-235(in)]TJ /TT1 1 Tf -34.886 -1.2 Td ()Tj /T1_1 1 Tf (.)Tj 7.9995 0 0 7.9995 183.5889 564.9661 Tm [(Interfaces )-5(r)18(elated )-5(to )-5(the )-5(STREAMS )-5(mechanism )-5(wer)]TJ 0.2551 Tc 22.575 0 Td (em)Tj 0 Tc 1.617 0 Td [(arked )-5(obsolescent )-5(in )-5(SUSv4, )-5(so )-5(we )-5(don\325t)]TJ -24.192 -1.25 Td [(cover them in any detail.)-500(See Rago)]TJ 15.711 0.04 Td ([)Tj 0.333 -0.04 Td (1993)Tj 2 0.04 Td (])Tj 0.583 -0.04 Td (for mor)Tj 0.25 Tc 3.33 0 Td (ei)Tj 0 Tc 1.02 0 Td (nformation about STREAMS.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1562.25 5330.25 cm 0 0 m 3368 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 165.8001 522.9372 Tm (Constant )Tj 20.721 0 Td (Description)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1562.25 5190.25 cm 0 0 m 3368 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1562.25 5170.25 cm 0 0 m 3368 0 l S Q Q BT /TT1 1 Tf 7.9986 0 0 7.9986 160.1712 506.9087 Tm (S_INPUT)Tj /T1_1 1 Tf -0.092 Tc 6.9 0 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td [(an r)18(ead data \(other than high-priority data\) without blocking.)]TJ /TT1 1 Tf -8.981 -1.5 Td (S_RDNORM)Tj /T1_1 1 Tf -0.092 Tc 6.9 0 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td [(an r)18(ead normal data without blocking.)]TJ /TT1 1 Tf -8.981 -1.5 Td (S_RDBAND)Tj /T1_1 1 Tf -0.092 Tc 6.9 0 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td [(an r)18(ead priority data without blocking.)]TJ /TT1 1 Tf -8.981 -1.5 Td (S_BANDURG)Tj /T1_1 1 Tf 6.9 0 Td (If this constant is speci\336ed with)Tj /TT1 1 Tf 14.205 0 Td (S_RDBAND)Tj /T1_1 1 Tf 0.25 Tc (,t)Tj 0 Tc 5.626 0 Td (he)Tj /TT1 1 Tf 1.311 0 Td (SIGURG)Tj /T1_1 1 Tf 3.85 0 Td (signal is generated)Tj -23.642 -1.5 Td (instead of)Tj /TT1 1 Tf 4.592 0 Td (SIGPOLL)Tj /T1_1 1 Tf 4.45 0 Td [(when we can r)18(ead priority data without blocking.)]TJ /TT1 1 Tf -17.292 -1.5 Td (S_HIPRI)Tj /T1_1 1 Tf -0.092 Tc 6.9 0 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td [(an r)18(ead high-priority data without blocking.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1562.25 4430.25 cm 0 0 m 3368 0 l S Q Q BT /TT1 1 Tf 7.9981 0 0 7.9981 160.1616 432.8961 Tm (S_OUTPUT)Tj /T1_1 1 Tf -0.092 Tc 6.9 0 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td (an write normal data without blocking.)Tj /TT1 1 Tf -8.981 -1.5 Td (S_WRNORM)Tj /T1_1 1 Tf 6.9 0 Td (Same as)Tj /TT1 1 Tf 3.811 0 Td (S_OUTPUT)Tj /T1_1 1 Tf (.)Tj /TT1 1 Tf -10.711 -1.5 Td (S_WRBAND)Tj /T1_1 1 Tf -0.092 Tc 6.9 0 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td (an write priority data without blocking.)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1562.25 4050.25 cm 0 0 m 3368 0 l S Q Q BT /TT1 1 Tf 7.9976 0 0 7.9976 160.1519 394.8815 Tm (S_MSG)Tj /T1_1 1 Tf 6.9 0 Td (The)Tj /TT1 1 Tf 1.924 0 Td (SIGPOLL)Tj /T1_1 1 Tf 4.45 0 Td [(signal message has r)18(eached the str)18(eam head.)]TJ /TT1 1 Tf -13.274 -1.5 Td (S_ERROR)Tj /T1_1 1 Tf 6.9 0 Td [(The str)18(eam has an err)18(or)74(.)]TJ /TT1 1 Tf -6.9 -1.5 Td (S_HANGUP)Tj /T1_1 1 Tf 6.9 0 Td [(The str)18(eam has hung up.)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1562.25 3670.25 cm 0 0 m 3368 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2094.25 3670.25 cm 0 0 m 0 1660 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4930.25 3670.25 cm 0 0 m 0 1660 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1562.25 3670.25 cm 0 0 m 0 1660 l S Q Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 224.6511 348.8744 Tm (Figure 14.18)Tj /T1_1 1 Tf 6.195 0 Td (Conditions for generating)Tj /TT1 1 Tf 11.678 0 Td (SIGPOLL)Tj /T1_1 1 Tf 4.45 0 Td (signal)Tj 9.9964 0 0 9.9964 147.5469 318.8852 Tm [(In )-224(addition )-224(to )-224(calling)]TJ /TT1 1 Tf 10.401 0 Td (ioctl)Tj /T1_1 1 Tf 3.474 0 Td [(to )-224(specify )-224(the )-224(conditions )-224(that )-224(should )-224(generate )-224(the)]TJ /TT1 1 Tf -15.676 -1.2 Td (SIGPOLL)Tj /T1_1 1 Tf 4.684 0 Td [(signal, )-234(we )-234(have )-234(to )-234(establish )-234(a )-234(signal )-234(handler )-234(for )-234(this )-234(signal.)-731(Recall )-234(fr)18(om)]TJ -4.684 -1.2 Td (Figur)Tj 0.256 Tc 2.383 0 Td (e1)Tj 0 Tc 1.235 0 Td [(0.1 )-6(that )-6(the )-6(default )-6(action )-6(for)]TJ /TT1 1 Tf 13.013 0 Td (SIGPOLL)Tj /T1_1 1 Tf 4.456 0 Td [(is )-6(to )-6(terminate )-6(the )-6(pr)18(ocess, )-6(so )-6(we )-6(should)]TJ -21.087 -1.2 Td (establish the signal handler befor)Tj 0.25 Tc 14.629 0 Td (ec)Tj 0 Tc 1.173 0 Td (alling)Tj /TT1 1 Tf 2.761 0 Td (ioctl)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf 11.9957 0 0 11.9957 129.5538 246.9111 Tm [(14.5.2 )-556(BSD)-556(Async)10(hr)20(onous )-278(I/O)]TJ /T1_1 1 Tf 9.9964 0 0 9.9964 129.554 222.9197 Tm [(Asynchr)18(onous )-34(I/O )-34(in )-34(BSD-derived )-34(systems )-34(is )-34(a )-34(combination )-34(of )-34(two )-34(signals:)]TJ /TT1 1 Tf 34.023 0 Td (SIGIO)Tj /T1_1 1 Tf 3.284 0 Td (and)Tj /TT1 1 Tf -37.307 -1.2 Td (SIGURG)Tj /T1_1 1 Tf 0.5227 Tc (.T)Tj 0 Tc 4.986 0 Td [(he )-23(former )-23(is )-23(the )-23(general )-23(asynchr)18(onous )-23(I/O )-23(signal, )-23(and )-23(the )-23(latter )-23(is )-23(used )-23(only)]TJ -4.986 -1.2 Td [(to notify the pr)18(ocess that out-of-band data has arrived on a network connection.)]TJ -0.092 Tc 1.8 -1.2 Td [(To )-184(r)]TJ 0 Tc 1.694 0 Td (eceive the)Tj /TT1 1 Tf 4.624 0 Td (SIGIO)Tj /T1_1 1 Tf 3.25 0 Td [(signal, we need to perform thr)18(ee steps.)]TJ -9.568 -1.92 Td [(1. )-633(Establish)]TJ 0.25 Tc 5.885 0 Td (as)Tj 0 Tc 1.174 0 Td (ignal handler for)Tj /TT1 1 Tf 7.684 0 Td (SIGIO)Tj /T1_1 1 Tf [(,)-250(by)-250(calling either)]TJ /TT1 1 Tf 10.866 0 Td (signal)Tj /T1_1 1 Tf 3.85 0 Td (or)Tj /TT1 1 Tf 1.191 0 Td (sigaction)Tj /T1_1 1 Tf (.)Tj -30.65 -1.6 Td [(2. )-633(Set)-263(the )-13(pr)18(ocess )-13(ID )-13(or )-13(pr)18(ocess )-13(gr)18(oup )-13(ID )-13(to )-13(r)18(eceive )-13(the )-13(signal )-13(for )-13(the )-13(descriptor)]TJ 0.2626 Tc 35.578 0 Td (,b)Tj 0 Tc 1.066 0 Td (y)Tj -35.011 -1.2 Td (calling)Tj /TT1 1 Tf 3.205 0 Td (fcntl)Tj /T1_1 1 Tf 3.25 0 Td (with a command of)Tj /TT1 1 Tf 8.861 0 Td (F_SETOWN)Tj /T1_1 1 Tf 5.05 0 Td (\(Section 3.14\).)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46957 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.5)]TJ 35.16 0 Td [(Asynchr)18(onous )-250(I/O)]TJ /T1_1 1 Tf 10.673 0 Td (509)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(None )-65(of )-65(the )-65(implementations )-65(described )-65(in )-65(this )-65(book )-65(r)18(estart)]TJ /TT0 1 Tf 26.834 0 Td (poll)Tj /T1_0 1 Tf 2.715 0 Td (or)Tj /TT0 1 Tf 1.256 0 Td (select)Tj /T1_0 1 Tf 3.915 0 Td [(when )-65(a )-65(signal )-65(is)]TJ -0.018 Tc -34.719 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (ceived, even if the)Tj /TT0 1 Tf 8.235 0 Td (SA_RESTART)Tj /T1_0 1 Tf 6.25 0 Td (\337ag is used.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5948 624.9625 Tm [(14.5 )-776(Async)10(hr)20(onous )-278(I/O)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5926 600.9639 Tm (Using)Tj /TT0 1 Tf 2.903 0 Td (select)Tj /T1_0 1 Tf 3.872 0 Td (and)Tj /TT0 1 Tf 1.965 0 Td (poll)Tj /T1_0 1 Tf [(,)-272(as)-272(described )-22(in )-22(the )-22(pr)18(evious )-22(section, )-22(is )-22(a )-22(synchr)18(onous )-22(form )-22(of)]TJ -8.74 -1.2 Td [(noti\336cation. )-279(The)-279(system )-29(doesn\325t )-29(tell )-29(us )-29(anything )-29(until )-29(we )-29(ask )-29(\(by )-29(calling )-29(either)]TJ /TT0 1 Tf 35.4 0 Td (select)Tj /T1_0 1 Tf -35.4 -1.2 Td (or)Tj /TT0 1 Tf 1.558 0 Td (poll)Tj /T1_0 1 Tf [(\). )-617(As)-616(we )-367(saw )-367(in )-367(Chapter )-367(10, )-367(signals )-367(pr)18(ovide )-367(an )-367(asynchr)21(onous )-367(form )-367(of)]TJ -1.558 -1.2 Td [(noti\336cation )-13(that )-13(something )-13(has )-13(happened.)-512(All )-13(systems )-13(derived )-13(fr)18(om )-13(BSD )-13(and )-13(System )-13(V)]TJ 0 -1.2 TD [(pr)18(ovide )-50(some )-50(form )-50(of )-50(asynchr)18(onous )-50(I/O, )-50(using )-50(a )-50(signal )-50(\()]TJ /TT0 1 Tf (SIGPOLL)Tj /T1_0 1 Tf 30.117 0 Td [(in )-50(System )-50(V)55(;)]TJ /TT0 1 Tf 5.883 0 Td (SIGIO)Tj /T1_0 1 Tf -36 -1.2 Td [(in )-98(BSD\) )-98(to )-98(notify )-98(the )-98(pr)18(ocess )-98(that )-98(something )-98(of )-98(inter)17(est )-98(has )-98(happened )-98(on )-98(a )-98(descriptor)74(.)]TJ T* [(As )-176(mentioned )-176(in )-176(the )-176(pr)20(evious )-176(section, )-176(these )-176(forms )-176(of )-176(asynchr)18(onous )-176(I/O )-176(ar)]TJ 0.4257 Tc 34.673 0 Td (el)Tj 0 Tc 1.196 0 Td (imited:)Tj -35.869 -1.2 Td [(they )-157(don\325t )-157(work )-157(with )-157(all )-157(\336le )-157(types )-157(and )-157(they )-157(allow )-157(the )-157(use )-157(of )-157(only )-157(one )-157(signal.)-657(If )-157(we)]TJ T* [(enable )-31(mor)]TJ 0.2815 Tc 4.971 0 Td (et)Tj 0 Tc 1.086 0 Td [(han )-31(one )-31(descriptor )-31(for )-31(asynchr)18(onous )-31(I/O, )-31(we )-31(cannot )-31(tell )-31(which )-31(descriptor)]TJ -6.058 -1.2 Td [(the signal corr)18(esponds to when the signal is deliver)18(ed.)]TJ -0.111 Tc 1.8 -1.2 Td (Ve)Tj 0 Tc 1.09 0 Td [(rsion )-158(4 )-158(of )-158(the )-158(Single )-158(UNIX )-158(Speci\336cation )-158(moved )-158(the )-158(general )-158(asynchr)18(onous )-158(I/O)]TJ -2.89 -1.2 Td [(mechanism )-207(fr)18(om )-207(the )-207(r)18(eal-time )-207(extensions )-207(to )-207(the )-207(base )-207(speci\336cation.)-707(This )-207(mechanism)]TJ T* [(addr)18(esses the limitations that exist with these older asynchr)18(onous I/O facilities.)]TJ 1.8 -1.2 Td [(Befor)18(e)-337(we)-337(l)-1(ook )-87(at )-87(the )-87(dif)17(fer)18(ent )-87(ways )-87(to )-87(use )-87(asynchr)16(onous )-87(I/O, )-87(we )-87(need )-87(to )-87(discuss)]TJ -1.8 -1.2 Td [(the )-84(costs.)-585(When )-85(we )-85(decide )-85(to )-85(use )-85(asynchr)18(onous )-85(I/O, )-85(we )-85(complicate )-85(the )-85(design )-85(of )-85(our)]TJ T* [(application )-83(by )-83(choosing )-83(to )-83(juggle )-83(multiple )-83(concurr)18(ent )-83(operations.)]TJ 0.333 Tc 30.041 0 Td (As)Tj 0 Tc 1.535 0 Td [(impler )-83(appr)18(oach)]TJ -31.576 -1.2 Td [(may )-139(be )-139(to )-139(use )-139(multiple )-139(thr)18(eads, )-139(which )-139(would )-139(allow )-139(us )-139(to )-139(write )-139(the )-139(pr)18(ogram )-139(using )-139(a)]TJ T* [(synchr)18(onous model, and let the thr)18(eads r)8(un asynchr)18(onous to each other)74(.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-586(i)]TJ 0 Tc 2.33 0 Td [(ncur )-402(additional )-402(complexity )-402(when )-402(we )-402(use )-402(the )-402(POSIX )-402(asynchr)18(onous )-402(I/O)]TJ -4.13 -1.2 Td (interfaces:)Tj 0.883 Tc 1.8 -1.92 Td (\245W)Tj 0.6475 Tc 2.397 0 Td (eh)Tj 0 Tc 1.709 0 Td [(ave )-397(to )-397(worry )-397(about )-397(thr)18(ee )-397(sour)16(ces )-398(of )-398(err)18(ors )-398(for )-398(every )-398(asynchr)20(onous)]TJ -2.616 -1.2 Td [(operation: )-117(one )-117(associated )-117(with )-117(the )-117(submission )-117(of )-117(the )-117(operation, )-117(one )-117(associated)]TJ T* [(with )-8(the )-8(r)18(esult )-8(of )-8(the )-8(operation )-8(itself, )-8(and )-8(one )-8(associated )-8(with )-8(the )-8(functions )-8(used)]TJ T* [(to determine the status of the asynchr)18(onous operations.)]TJ 0.883 Tc -1.489 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-272(interfaces )-272(themselves )-272(involve )-272(a )-272(lot )-272(of )-272(extra )-272(setup )-272(and )-272(pr)18(ocessing )-272(r)9(ules)]TJ -0.613 -1.2 Td [(compar)18(ed to their conventional counterparts, as we shall see.)]TJ -0.092 Tc 7.9995 0 0 7.9995 219.5871 266.784 Tm [(We )-189(c)]TJ 0 Tc 2.086 0 Td [(an\325t )-4(r)18(eally )-4(call )-4(the )-4(non-asynchr)18(onous )-4(I/O )-4(function )-4(calls )-4(\324)33(\324synchr)18(onous,\325)]TJ 0.2545 Tc 31.4 0 Td (\325b)Tj 0 Tc 1.085 0 Td (ecause)Tj -34.571 -1.25 Td [(although )-353(they )-353(ar)]TJ 0.6035 Tc 8.013 0 Td (es)Tj 0 Tc 1.506 0 Td [(ynchr)18(onous )-353(with )-353(r)18(espect )-353(to )-353(the )-353(pr)16(ogram )-353(\337ow)]TJ 0.6034 Tc 22.039 0 Td (,t)Tj 0 Tc 1.179 0 Td [(hey )-353(ar)18(en\325t)]TJ -32.738 -1.25 Td [(synchr)18(onous )-26(with )-26(r)18(espect )-26(to )-26(the )-26(I/O.)-528(Recall )-26(the )-26(discussion )-26(of )-26(synchr)18(onous )-26(writes )-26(in)]TJ -0 -1.25 Td [(Chapter )-20(3.)]TJ -0.092 Tc 5.132 0 Td [(We )-204(c)]TJ 0 Tc 2.101 0 Td [(all )-20(a )-20(write )-20(\324)37(\324synchr)18(onous\325)37(\325)-270(if)-270(the )-20(data )-20(we )-20(write )-20(is )-20(persistent )-20(when )-20(we)]TJ -0.018 Tc -7.233 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-430(fr)18(om )-430(the )-430(call )-430(to )-430(the)]TJ /TT0 1 Tf 13.3 0 Td (write)Tj /T1_0 1 Tf 3.681 0 Td [(function. )-680(W)]TJ 0.6805 Tc 5.796 0 Td (ea)Tj 0 Tc 1.66 0 Td [(lso )-430(can\325t )-430(dif)17(fer)18(entiate )-430(the)]TJ -25.291 -1.25 Td [(conventional )-241(I/O )-241(function )-241(calls )-241(fr)18(om )-241(the )-241(asynchr)18(onous )-241(ones )-241(by )-241(r)17(eferring )-241(to )-241(the)]TJ 0 -1.25 TD [(conventional )-81(calls )-81(as )-81(the )-81(\324)36(\324standar)18(d\325)]TJ 0.3314 Tc 16.012 0 Td (\325I)Tj 0 Tc 0.946 0 Td [(/O )-81(calls, )-81(because )-81(this )-81(confuses )-81(them )-81(with )-81(the)]TJ -16.958 -1.25 Td [(function )-202(calls )-202(in )-202(the )-202(standar)]TJ 0.4521 Tc 13.046 0 Td (dI)Tj 0 Tc 1.4 0 Td [(/O )-202(library)]TJ 0.7021 Tc 4.714 0 Td (.T)Tj 0.4521 Tc 1.473 0 Td (oa)Tj 0 Tc 1.498 0 Td [(void )-202(confusion, )-202(we\325ll )-202(r)18(efer )-202(to )-202(the)]TJ /TT0 1 Tf -22.131 -1.25 Td (read)Tj /T1_0 1 Tf 2.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (write)Tj /T1_0 1 Tf 3.25 0 Td [(functions as the \324)37(\324conventional\325)]TJ 0.25 Tc 13.686 0 Td (\325I)Tj 0 Tc 0.865 0 Td (/O function calls in this section.)Tj 0.883 Tc 9.9994 0 0 9.9994 147.5927 162.7902 Tm (\245R)Tj 0 Tc 2.157 0 Td [(ecovering )-216(fr)18(om )-216(err)18(ors )-216(can )-216(be )-216(dif)17(\336cult. )-466(For)-467(example, )-216(if )-216(we )-216(submit )-216(multiple)]TJ -0.668 -1.2 Td [(asynchr)18(onous )-140(writes )-140(and )-140(one )-140(fails, )-140(how )-140(should )-140(we )-140(pr)16(oceed? )-390(If)-390(the )-140(writes )-140(ar)18(e)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td (lated, we might have to undo the ones that succeeded.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46958 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (506)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(It )-206(is )-206(important )-206(to )-206(r)18(ealize )-206(that )-206(whether )-206(a )-206(descriptor )-206(is )-206(blocking )-206(or )-206(not )-206(doesn\325t )-206(af)14(fect)]TJ 0 -1.2 TD (whether)Tj /TT0 1 Tf 4.01 0 Td (select)Tj /T1_1 1 Tf 3.933 0 Td [(blocks. )-333(That)-332(is, )-83(if )-83(we )-83(have )-83(a )-83(nonblocking )-83(descriptor )-83(that )-83(we )-83(want )-83(to)]TJ -0.018 Tc -7.942 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ad )-14(fr)18(om )-14(and )-14(we )-14(call)]TJ /TT0 1 Tf 9.103 0 Td (select)Tj /T1_1 1 Tf 3.864 0 Td [(with )-14(a )-14(timeout )-14(value )-14(of )-14(5 )-14(seconds,)]TJ /TT0 1 Tf 15.413 0 Td (select)Tj /T1_1 1 Tf 3.864 0 Td [(will )-14(block )-14(for)]TJ -33.101 -1.2 Td [(up )-22(to )-22(5 )-22(seconds.)-524(Similarly)111(,)-272(if)-272(we)-272(s)-1(pecify )-22(an )-22(in\336nite )-22(timeout,)]TJ /TT0 1 Tf 26.751 0 Td (select)Tj /T1_1 1 Tf 3.872 0 Td [(blocks )-22(until )-22(data )-22(is)]TJ -0.018 Tc -30.624 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (ady for the descriptor or until a signal is caught.)Tj 0.944 -1.2 Td [(If )-4(we )-4(encounter )-4(the )-4(end )-4(of )-4(\336le )-4(on )-4(a )-4(descriptor)]TJ 0.2541 Tc 20.085 0 Td (,t)Tj 0 Tc 0.83 0 Td [(hat )-4(descriptor )-4(is )-4(consider)18(ed )-4(r)18(eadable)]TJ -22.715 -1.2 Td (by)Tj /TT0 1 Tf 1.374 0 Td (select)Tj /T1_1 1 Tf 0.5145 Tc (.W)Tj 0.2645 Tc 5.272 0 Td (et)Tj 0 Tc 1.069 0 Td [(hen )-14(call)]TJ /TT0 1 Tf 3.698 0 Td (read)Tj /T1_1 1 Tf 2.664 0 Td [(and )-14(it )-14(r)17(eturns )-15(0)]TJ 0.0833 Tc 6.873 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(he )-15(way )-15(to )-15(signify )-15(end )-15(of )-15(\336le )-15(on )-15(UNIX)]TJ -22.36 -1.2 Td [(systems. )-711(\(Many)-711(people )-461(incorr)18(ectly )-461(assume )-461(that)]TJ /TT0 1 Tf 23.973 0 Td (select)Tj /T1_1 1 Tf 4.311 0 Td [(indicates )-461(an )-461(exception)]TJ -28.284 -1.2 Td [(condition on a descriptor when the end of \336le is r)18(eached.\))]TJ 1.8 -1.2 Td (POSIX.1 also de\336nes a variant of)Tj /TT0 1 Tf 14.648 0 Td (select)Tj /T1_1 1 Tf 3.85 0 Td (called)Tj /TT0 1 Tf 2.866 0 Td (pselect)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 541.8675 Tm (#include )Tj 0 -2.14 TD (int pselect\(int)Tj /T1_2 1 Tf 9.6 0 Td (maxfdp1)Tj /TT0 1 Tf 0.6 Tc (,f)Tj 0 Tc 5.3 0 Td (d_set *restrict)Tj /T1_2 1 Tf -0.018 Tc 9.6 0 Td (re)Tj 0 Tc 0.76 0 Td (adfds)Tj /TT0 1 Tf (,)Tj -18.06 -1.189 Td (fd_set *restrict)Tj /T1_2 1 Tf 10.2 0 Td (writefds)Tj /TT0 1 Tf 0.6 Tc (,f)Tj 0 Tc 5.078 0 Td (d_set *restrict)Tj /T1_2 1 Tf 9.6 0 Td (exceptfds)Tj /TT0 1 Tf (,)Tj -24.878 -1.189 Td (const struct timespec *restrict)Tj /T1_2 1 Tf 19.2 0 Td (tsptr)Tj /TT0 1 Tf (,)Tj -19.2 -1.189 Td (const sigset_t *restrict)Tj /T1_2 1 Tf 15 0 Td (sigmask)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -9.884 -2.14 Td [(Returns: count of r)18(eady descriptors, 0 on timeout,)]TJ /TT1 1 Tf 22.148 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4668.25 cm 0 0 m 0 841 l 3900 841 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 450.8259 Tm (The)Tj /TT0 1 Tf 1.924 0 Td (pselect)Tj /T1_1 1 Tf 4.45 0 Td (function is identical to)Tj /TT0 1 Tf 10.109 0 Td (select)Tj /T1_1 1 Tf 0.25 Tc (,w)Tj 0 Tc 4.934 0 Td (ith the following exceptions.)Tj 0.883 Tc -19.617 -2.04 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-236(timeout )-236(value )-236(for)]TJ /TT0 1 Tf 10.173 0 Td (select)Tj /T1_1 1 Tf 4.086 0 Td [(is )-236(speci\336ed )-236(by )-236(a)]TJ /TT0 1 Tf 8.204 0 Td (timeval)Tj /T1_1 1 Tf 4.686 0 Td [(str)8(uctur)18(e, )-236(but )-236(for)]TJ /TT0 1 Tf -27.763 -1.2 Td (pselect)Tj /T1_1 1 Tf 0.2626 Tc (,a)Tj /TT0 1 Tf 0 Tc (timespec)Tj /T1_1 1 Tf 10.538 0 Td [(str)8(uctur)18(e)-263(is)-263(u)1(sed. )-262(\(Recall)-263(the )-12(de\336nition )-12(of )-12(the)]TJ /TT0 1 Tf 20.373 0 Td (timespec)Tj /T1_1 1 Tf -30.911 -1.2 Td [(str)8(uctur)18(e)-376(in)-376(S)-1(ection )-126(4.2.\))-626(Instead )-126(of )-126(seconds )-126(and )-126(micr)18(oseconds, )-126(the)]TJ /TT0 1 Tf 30.911 0 Td (timespec)Tj /T1_1 1 Tf -30.911 -1.2 Td [(str)8(uctur)]TJ 0.6344 Tc 3.49 0 Td (er)Tj 0 Tc 1.49 0 Td [(epr)18(esents )-384(the )-384(timeout )-384(value )-384(in )-384(seconds )-384(and )-384(nanoseconds.)-886(This)]TJ -4.98 -1.2 Td [(pr)18(ovides )-42(a )-42(higher)17(-r)18(esolution )-42(timeout )-42(if )-42(the )-42(platform )-42(supports )-42(that )-42(\336ne )-42(a )-42(level )-42(of)]TJ 0 -1.2 TD [(granularity)111(.)]TJ 0.883 Tc -1.489 -1.72 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-66(timeout )-66(value )-66(for)]TJ /TT0 1 Tf 9.489 0 Td (pselect)Tj /T1_1 1 Tf 4.516 0 Td [(is )-66(declar)18(ed)]TJ /TT0 1 Tf 5.138 0 Td (const)Tj /T1_1 1 Tf 0.3156 Tc (,a)Tj 0 Tc 4.066 0 Td [(nd )-66(we )-66(ar)]TJ 0.3155 Tc 4.014 0 Td (eg)Tj 0 Tc 1.351 0 Td [(uaranteed )-65(that)]TJ -29.186 -1.2 Td [(its value will not change as a r)18(esult of calling)]TJ /TT0 1 Tf 20.041 0 Td (pselect)Tj /T1_1 1 Tf (.)Tj 0.883 Tc -21.53 -1.72 Td (\245A)Tj 0.4845 Tc 2.267 0 Td (no)Tj 0 Tc 1.612 0 Td [(ptional )-234(signal )-234(mask )-234(ar)18(gument )-234(is )-234(available )-234(with)]TJ /TT0 1 Tf 22.56 0 Td (pselect)Tj /T1_1 1 Tf 0.7346 Tc (.I)Tj 0 Tc 5.522 0 Td (f)Tj /T1_2 1 Tf 0.818 0 Td (sigmask)Tj /T1_1 1 Tf 3.707 0 Td (is)Tj /TT0 1 Tf -34.996 -1.2 Td (NULL)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.075 0 Td (pselect)Tj /T1_1 1 Tf 4.625 0 Td [(behaves )-175(as)]TJ /TT0 1 Tf 5.355 0 Td (select)Tj /T1_1 1 Tf 4.025 0 Td [(does )-175(with )-175(r)18(espect )-175(to )-175(signals.)-673(Otherwise,)]TJ /T1_2 1 Tf -17.079 -1.2 Td (sigmask)Tj /T1_1 1 Tf 3.645 0 Td [(points )-173(to )-173(a )-173(signal )-173(mask )-173(that )-173(is )-173(atomically )-173(installed )-173(when)]TJ /TT0 1 Tf 26.728 0 Td (pselect)Tj /T1_1 1 Tf 4.623 0 Td (is)Tj -34.996 -1.2 Td [(called. )-250(On)]TJ -0.018 Tc 4.984 0 Td (re)Tj 0 Tc 0.856 0 Td [(turn, the pr)18(evious signal mask is r)18(estor)18(ed.)]TJ /TT2 1 Tf 11.9986 0 0 11.9986 129.5838 254.4495 Tm (14.4.2)Tj /TT3 1 Tf 3.614 0 Td (poll)Tj /TT2 1 Tf 2.956 0 Td (Function)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5839 230.4523 Tm (The)Tj /TT0 1 Tf 1.941 0 Td (poll)Tj /T1_1 1 Tf 2.667 0 Td [(function )-17(is )-17(similar )-17(to)]TJ /TT0 1 Tf 9.439 0 Td (select)Tj /T1_1 1 Tf 0.2674 Tc (,b)Tj 0 Tc 4.67 0 Td [(ut )-17(the )-17(pr)18(ogrammer )-17(interface )-17(is )-17(dif)16(fer)18(ent. )-267(This)]TJ -18.718 -1.2 Td [(function )-135(was )-135(originally )-135(intr)18(oduced )-135(in )-135(System )-135(V )-135(to )-135(support )-135(the )-135(STREAMS )-135(subsystem,)]TJ T* (but we ar)Tj 0.25 Tc 4.172 0 Td (ea)Tj 0 Tc 1.229 0 Td [(ble to use it with any type of \336le descriptor)74(.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5822 187.3575 Tm (#include )Tj 0 -2.14 TD (int poll\(struct pollfd)Tj /T1_2 1 Tf 13.8 0 Td (fdarray)Tj /TT0 1 Tf ([], nfds_t)Tj /T1_2 1 Tf 9.544 0 Td (nfds)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.523 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (timeout)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -16.351 -2.14 Td [(Returns: count of r)18(eady descriptors, 0 on timeout,)]TJ /TT1 1 Tf 22.148 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1443.25 cm 0 0 m 0 521 l 3900 521 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46959 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (502)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(I/O )-278(multiplexing )-278(was )-278(pr)18(ovided )-278(with )-278(the)]TJ /TT0 1 Tf 19.867 0 Td (select)Tj /T1_1 1 Tf 4.128 0 Td [(function )-278(in )-278(4.2BSD.)-778(This )-278(function )-278(has)]TJ -23.996 -1.25 Td [(always )-199(worked )-199(with )-199(any )-199(descriptor)]TJ 0.4489 Tc 16.43 0 Td (,a)Tj 0 Tc 1.199 0 Td [(lthough )-199(its )-199(main )-199(use )-199(has )-199(been )-199(for )-199(terminal )-199(I/O )-199(and)]TJ -17.629 -1.25 Td [(network )-159(I/O.)-659(SVR3 )-159(added )-159(the)]TJ /TT0 1 Tf 14.608 0 Td (poll)Tj /T1_1 1 Tf 2.81 0 Td [(function )-159(when )-159(the )-159(STREAMS )-159(mechanism )-159(was )-159(added.)]TJ -17.418 -1.25 Td [(Initially)111(,)]TJ /TT0 1 Tf 3.998 0 Td (poll)Tj /T1_1 1 Tf 2.794 0 Td [(worked )-144(only )-144(with )-144(STREAMS )-144(devices.)-644(In )-144(SVR4, )-144(support )-144(was )-144(added )-144(to )-144(allow)]TJ /TT0 1 Tf -6.792 -1.25 Td (poll)Tj /T1_1 1 Tf 2.65 0 Td [(to work on any descriptor)74(.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 129.5926 598.9641 Tm (14.4.1)Tj /TT2 1 Tf 3.614 0 Td (select)Tj /TT1 1 Tf 4.156 0 Td (and)Tj /TT2 1 Tf 2.334 0 Td (pselect)Tj /TT1 1 Tf 4.756 0 Td (Functions)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 574.9655 Tm (The)Tj /TT0 1 Tf 2.37 0 Td (select)Tj /T1_1 1 Tf 4.296 0 Td [(function )-446(lets )-446(us )-446(do )-446(I/O )-446(multiplexing )-446(under )-446(all )-446(POSIX-compatible)]TJ -6.666 -1.2 Td [(platforms. )-250(The)-250(ar)18(guments we pass to)]TJ /TT0 1 Tf 16.837 0 Td (select)Tj /T1_1 1 Tf 3.85 0 Td (tell the kernel)Tj 0.883 Tc -18.887 -2.04 Td (\245W)Tj 0 Tc 2.489 0 Td (hich descriptors we\325r)Tj 0.25 Tc 9.303 0 Td (ei)Tj 0 Tc 1.02 0 Td [(nter)18(ested in.)]TJ 0.883 Tc -12.812 -1.6 Td (\245W)Tj 0 Tc 2.489 0 Td [(hich )-101(conditions )-101(we\325r)]TJ 0.3509 Tc 9.212 0 Td (ei)Tj 0 Tc 1.121 0 Td [(nter)18(ested )-101(in )-101(for )-101(each )-101(descriptor)]TJ 0.6009 Tc 14.077 0 Td (.\()Tj 0 Tc 1.184 0 Td [(Do )-101(we )-101(want )-101(to )-101(r)18(ead)]TJ -26.593 -1.2 Td [(fr)18(om )-130(a )-130(given )-130(descriptor?)-631(Do )-130(we )-130(want )-130(to )-130(write )-130(to )-130(a )-130(given )-130(descriptor?)-632(Ar)]TJ 0.3802 Tc 33.539 0 Td (ew)Tj 0 Tc 1.693 0 Td (e)Tj -35.232 -1.2 Td [(inter)18(ested in an exception condition for a given descriptor?\))]TJ 0.883 Tc -1.489 -1.6 Td (\245H)Tj 0 Tc 2.321 0 Td [(ow )-76(long )-76(we )-76(want )-76(to )-76(wait.)-575(\(W)]TJ 0.3259 Tc 13.429 0 Td (ec)Tj 0 Tc 1.249 0 Td [(an )-76(wait )-76(for)18(ever)]TJ 0.3259 Tc 6.785 0 Td (,w)Tj 0 Tc 1.41 0 Td [(ait )-76(a )-76(\336xed )-76(amount )-76(of )-76(time,)]TJ -23.705 -1.2 Td (or not wait at all.\))Tj -3.289 -2.04 Td [(On the r)18(eturn fr)18(om)]TJ /TT0 1 Tf 8.656 0 Td (select)Tj /T1_1 1 Tf 0.25 Tc (,t)Tj 0 Tc 4.426 0 Td (he kernel tells us)Tj 0.883 Tc -11.282 -2.04 Td (\245T)Tj 0 Tc 2.102 0 Td (he total count of the number of descriptors that ar)Tj 0.25 Tc 21.988 0 Td (er)Tj 0 Tc 1.106 0 Td (eady)Tj 0.883 Tc -25.196 -1.6 Td (\245W)Tj 0 Tc 2.489 0 Td [(hich )-208(descriptors )-208(ar)]TJ 0.4584 Tc 8.629 0 Td (er)Tj 0 Tc 1.314 0 Td [(eady )-208(for )-208(each )-208(of )-208(the )-208(thr)18(ee )-208(conditions )-208(\(r)18(ead, )-208(write, )-208(or)]TJ -10.943 -1.2 Td (exception condition\))Tj -0.055 Tc -3.289 -2.04 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-27(this )-27(r)18(eturn )-27(information, )-27(we )-27(can )-27(call )-27(the )-27(appr)20(opriate )-27(I/O )-27(function )-27(\(usually)]TJ /TT0 1 Tf 34.146 0 Td (read)Tj /T1_1 1 Tf 2.677 0 Td (or)Tj /TT0 1 Tf -38.059 -1.2 Td (write)Tj /T1_1 1 Tf 0.25 Tc (\)a)Tj 0 Tc 4.083 0 Td (nd know that the function won\325t block.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 142.5519 354.2787 Tm (#include )Tj 0 -2.14 TD (int select\(int)Tj /T1_2 1 Tf 9 0 Td (maxfdp1)Tj /TT0 1 Tf 0.6 Tc (,f)Tj 0 Tc 5.3 0 Td (d_set *restrict)Tj /T1_2 1 Tf -0.018 Tc 9.6 0 Td (re)Tj 0 Tc 0.76 0 Td (adfds)Tj /TT0 1 Tf (,)Tj -18.06 -1.189 Td (fd_set *restrict)Tj /T1_2 1 Tf 10.2 0 Td (writefds)Tj /TT0 1 Tf 0.6 Tc (,f)Tj 0 Tc 5.078 0 Td (d_set *restrict)Tj /T1_2 1 Tf 9.6 0 Td (exceptfds)Tj /TT0 1 Tf (,)Tj -24.878 -1.189 Td (struct timeval *restrict)Tj /T1_2 1 Tf 15 0 Td (tvptr)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -8.164 -2.14 Td [(Returns: count of r)18(eady descriptors, 0 on timeout,)]TJ /TT3 1 Tf 22.148 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2899.25 cm 0 0 m 0 734 l 3900 734 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 273.9471 Tm [(Let\325s )-45(look )-45(at )-45(the )-45(last )-45(ar)18(gument )-45(\336rst.)-545(It )-45(speci\336es )-45(how )-45(long )-45(we )-45(want )-45(to )-45(wait )-45(in )-45(terms)]TJ -1.8 -1.2 Td [(of seconds and micr)18(oseconds \(r)18(ecall Section 4.20\).)-500(Ther)]TJ 0.25 Tc 24.425 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(t)]TJ 0 Tc 1.432 0 Td [(hr)18(ee conditions.)]TJ /T1_2 1 Tf -25.286 -1.84 Td (tvptr)Tj /TT0 1 Tf 2.555 0 Td [(== )100(NULL)]TJ /T1_1 1 Tf -0.092 Tc -0.755 -1.68 Td (Wa)Tj 0 Tc 1.408 0 Td [(it )-72(for)18(ever)]TJ 0.5723 Tc 4.039 0 Td (.T)Tj 0 Tc 1.435 0 Td [(his )-72(in\336nite )-72(wait )-72(can )-72(be )-72(interr)8(upted )-72(if )-72(we )-72(catch )-72(a )-72(signal.)-575(Return)]TJ -6.883 -1.2 Td [(is )-213(made )-213(when )-213(one )-213(of )-213(the )-213(speci\336ed )-213(descriptors )-213(is )-213(r)21(eady )-213(or )-213(when )-213(a )-213(signal )-213(is)]TJ 0 -1.2 TD [(caught. )-250(If)]TJ 0.25 Tc 4.681 0 Td (as)Tj 0 Tc 1.174 0 Td (ignal is caught,)Tj /TT0 1 Tf 6.946 0 Td (select)Tj /T1_1 1 Tf -0.018 Tc 3.85 0 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj /TT3 1 Tf 2.58 0 Td (!)Tj /T1_1 1 Tf 0.25 Tc (1w)Tj 0 Tc 2.133 0 Td (ith)Tj /TT0 1 Tf 1.449 0 Td (errno)Tj /T1_1 1 Tf 3.25 0 Td (set to)Tj /TT0 1 Tf 2.601 0 Td (EINTR)Tj /T1_1 1 Tf (.)Tj /T1_2 1 Tf -31.32 -1.84 Td (tvptr)Tj /T1_3 1 Tf (!)Tj /T1_2 1 Tf (>tv_sec)Tj /TT0 1 Tf 6.285 0 Td (==)Tj /T1_1 1 Tf 1.7 0 Td (0)Tj /TT0 1 Tf 1 0 Td (&&)Tj /T1_2 1 Tf 1.7 0 Td (tvptr)Tj /T1_3 1 Tf (!)Tj /T1_2 1 Tf (>tv_usec)Tj /TT0 1 Tf 6.841 0 Td (==)Tj /T1_1 1 Tf 1.7 0 Td (0)Tj -17.426 -1.68 Td [(Don\325t )-136(wait )-136(at )-136(all.)-638(All )-136(the )-136(speci\336ed )-136(descriptors )-136(ar)]TJ 0.3865 Tc 22.451 0 Td (et)Tj 0 Tc 1.191 0 Td [(ested, )-136(and )-136(r)18(eturn )-136(is )-136(made)]TJ -23.642 -1.2 Td (immediately)Tj 0.5532 Tc 5.479 0 Td (.T)Tj 0 Tc 1.416 0 Td [(his )-53(is )-53(a )-53(way )-53(to )-53(poll )-53(the )-53(system )-53(to )-53(\336nd )-53(out )-53(the )-53(status )-53(of )-53(multiple)]TJ -6.895 -1.2 Td (descriptors without blocking in the)Tj /TT0 1 Tf 15.773 0 Td (select)Tj /T1_1 1 Tf 3.85 0 Td (function.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46960 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (500)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(14.4 )-776(I/O)-556(Multiple)15(xing)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(When )-67(we )-67(r)18(ead )-67(fr)18(om )-67(one )-67(descriptor )-67(and )-67(write )-67(to )-67(another)71(,)-317(we)-317(c)-1(an )-67(use )-67(blocking )-67(I/O )-67(in )-67(a)]TJ 0 -1.2 TD (loop, such as)Tj /TT1 1 Tf 8.9995 0 0 8.9995 169.1898 616.263 Tm (while \(\(n = read\(STDIN_FILENO, buf, BUFSIZ\)\) > 0\))Tj 2.4 -1.189 Td (if \(write\(STDOUT_FILENO, buf, n\) != n\))Tj 2.4 -1.189 Td (err_sys\("write error"\);)Tj /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5922 576.8654 Tm [(We )-286(s)]TJ 0 Tc 2.163 0 Td [(ee )-102(this )-102(form )-102(of )-102(blocking )-102(I/O )-102(over )-102(and )-102(over )-102(again.)-602(What )-102(if )-102(we )-102(have )-102(to )-102(r)18(ead )-102(fr)19(om)]TJ -2.163 -1.2 Td [(two )-48(descriptors?)-549(In )-48(this )-48(case, )-48(we )-48(can\325t )-48(do )-48(a )-48(blocking)]TJ /TT1 1 Tf 23.879 0 Td (read)Tj /T1_1 1 Tf 2.699 0 Td [(on )-48(either )-48(descriptor)73(,)-298(as)-298(d)-1(ata)]TJ -26.577 -1.2 Td [(may )-65(appear )-65(on )-65(one )-65(descriptor )-65(while )-65(we\325r)]TJ 0.3147 Tc 18.596 0 Td (eb)Tj 0 Tc 1.347 0 Td [(locked )-65(in )-65(a)]TJ /TT1 1 Tf 5.244 0 Td (read)Tj /T1_1 1 Tf 2.715 0 Td [(on )-65(the )-65(other)]TJ 0.5647 Tc 5.398 0 Td (.A)Tj 0 Tc 1.907 0 Td [(dif)18(fer)18(ent)]TJ -35.207 -1.2 Td [(technique is r)18(equir)18(ed to handle this case.)]TJ 1.8 -1.2 Td [(Let\325s )-138(look )-138(at )-138(the )-138(str)6(uctur)]TJ 0.3884 Tc 11.314 0 Td (eo)Tj 0.3885 Tc 1.413 0 Td (ft)Tj 0 Tc 1.048 0 Td (he)Tj /TT1 1 Tf 1.449 0 Td (telnet)Tj /T1_1 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.721 -0.04 Td [(command. )-388(In)-389(this )-138(pr)18(ogram, )-138(we )-138(r)17(ead)]TJ -22.179 -1.2 Td [(fr)18(om )-179(the )-179(terminal )-179(\(standar)]TJ 0.4288 Tc 12.212 0 Td (di)Tj 0 Tc 1.331 0 Td [(nput\) )-179(and )-179(write )-179(to )-179(a )-179(network )-179(connection, )-179(and )-179(we )-179(r)20(ead)]TJ -13.543 -1.2 Td [(fr)18(om )-57(the )-57(network )-57(connection )-57(and )-57(write )-57(to )-57(the )-57(terminal )-57(\(standar)]TJ 0.3069 Tc 28.504 0 Td (do)Tj 0 Tc 1.464 0 Td [(utput\). )-307(At)-307(the )-57(other)]TJ -29.968 -1.2 Td [(end )-323(of )-323(the )-323(network )-323(connection, )-323(the)]TJ /TT1 1 Tf 17.551 0 Td (telnetd)Tj /T1_1 1 Tf 4.773 0 Td [(daemon )-323(r)18(eads )-323(what )-323(we )-323(typed )-323(and)]TJ -22.324 -1.2 Td [(pr)18(esents )-177(it )-177(to )-177(a )-177(shell )-177(as )-177(if )-177(we )-177(wer)]TJ 0.4266 Tc 15.712 0 Td (el)Tj 0 Tc 1.197 0 Td [(ogged )-177(in )-177(to )-177(the )-177(r)20(emote )-177(machine.)-676(The)]TJ /TT1 1 Tf 17.891 0 Td (telnetd)Tj /T1_1 1 Tf -34.8 -1.2 Td [(daemon )-55(sends )-55(any )-55(output )-55(generated )-55(by )-55(the )-55(commands )-55(we )-55(type )-55(back )-55(to )-55(us )-55(thr)14(ough )-55(the)]TJ /TT1 1 Tf T* (telnet)Tj /T1_1 1 Tf 3.992 0 Td [(command, )-142(to )-142(be )-142(displayed )-142(on )-142(our )-142(terminal.)-640(Figur)]TJ 0.3917 Tc 23.011 0 Td (e1)Tj 0 Tc 1.371 0 Td [(4.13 )-142(shows )-142(a )-142(pictur)]TJ 0.3917 Tc 8.877 0 Td (eo)Tj 0 Tc 1.417 0 Td (f)Tj -38.667 -1.2 Td (this arrangement.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2616 4097 cm 0 0 m 0 -59.64 -120.89 -108 -270 -108 c -419.11 -108 -540 -59.64 -540 0 c -540 59.64 -419.11 108 -270 108 c -120.89 108 0 59.64 0 0 c h S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 219.6656 412.8904 Tm (user at a)Tj -0.01 -1.25 Td (terminal)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2976 3917 540 360 re S Q BT /TT1 1 Tf 7.9986 0 0 7.9986 310.1442 412.8657 Tm (telnet)Tj /T1_1 1 Tf -0.425 -1.25 Td (command)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4416 4097 cm 0 0 m 0 -59.64 -120.89 -108 -270 -108 c -419.11 -108 -540 -59.64 -540 0 c -540 59.64 -419.11 108 -270 108 c -120.89 108 0 59.64 0 0 c h S Q Q BT /TT1 1 Tf 7.9981 0 0 7.9981 397.7045 412.8409 Tm (telnetd)Tj /T1_1 1 Tf 0.3 -1.25 Td (daemon)Tj ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 297.6 416.9 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 2976 4169 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2904.25 4169.25 cm 0 0 m -324 0 l S Q Q q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 258 402.5 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 2580 4025 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2976.25 4025.25 cm 0 0 m -324 0 l S Q Q q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 391.2 416.9 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3912 4169 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3516.25 4169.25 cm 0 0 m 324 0 l S Q Q q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 351.6 402.5 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3516 4025 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3588.25 4025.25 cm 0 0 m 324 0 l S Q Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 245.778 368.723 Tm (Figure 14.13)Tj /T1_1 1 Tf 6.195 0 Td (Overview of)Tj /TT1 1 Tf 5.773 0 Td (telnet)Tj /T1_1 1 Tf 3.85 0 Td [(pr)18(ogram)]TJ 9.9952 0 0 9.9952 147.5294 341.1362 Tm (The)Tj /TT1 1 Tf 1.951 0 Td (telnet)Tj /T1_1 1 Tf 3.876 0 Td [(pr)18(ocess )-26(has )-26(two )-26(inputs )-26(and )-26(two )-26(outputs.)]TJ -0.092 Tc 18.598 0 Td [(We )-211(c)]TJ 0 Tc 2.108 0 Td [(an\325t )-26(do )-26(a )-26(blocking)]TJ /TT1 1 Tf 8.268 0 Td (read)Tj /T1_1 1 Tf -36.6 -1.2 Td (on either of the inputs, as we never know which input will have data for\ us.)Tj 1.8 -1.2 Td [(One )-138(way )-138(to )-138(handle )-138(this )-138(particular )-138(pr)18(oblem )-138(is )-138(to )-138(divide )-138(the )-138(pr)18(ocess )-138(in )-138(two )-138(pieces)]TJ -1.8 -1.2 Td (\(using)Tj /TT1 1 Tf 3.431 0 Td (fork)Tj /T1_1 1 Tf [(\), )-392(with )-392(each )-392(half )-392(handling )-392(one )-392(dir)18(ection )-392(of )-392(data.)]TJ -0.092 Tc 27.373 0 Td [(We )-576(s)]TJ 0 Tc 2.453 0 Td [(how )-392(this )-392(in)]TJ -33.257 -1.2 Td (Figur)Tj 0.4514 Tc 2.383 0 Td (e1)Tj 0 Tc 1.43 0 Td [(4.14. )-451(\(The)]TJ /TT1 1 Tf 5.16 0 Td (cu)Tj /T1_1 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.784 -0.04 Td [(command )-201(pr)18(ovided )-201(with )-201(System )-201(V\325s)]TJ /TT1 1 Tf 17.437 0 Td (uucp)Tj /T1_1 1 Tf 2.851 0 Td (communication)Tj -32.079 -1.2 Td [(package was str)8(uctur)18(ed like this.\))]TJ ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2616 2331.3999 cm 0 0 m 0 -59.64 -120.89 -108 -270 -108 c -419.11 -108 -540 -59.64 -540 0 c -540 59.65 -419.11 108 -270 108 c -120.89 108 0 59.65 0 0 c h S Q Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 219.5734 236.2524 Tm (user at a)Tj -0.01 -1.25 Td (terminal)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4416 2331.3999 cm 0 0 m 0 -59.64 -120.89 -108 -270 -108 c -419.11 -108 -540 -59.64 -540 0 c -540 59.65 -419.11 108 -270 108 c -120.89 108 0 59.65 0 0 c h S Q Q BT /TT1 1 Tf 7.9952 0 0 7.9952 397.5614 236.2382 Tm (telnetd)Tj /T1_1 1 Tf 0.3 -1.25 Td (daemon)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 2886 2425 720 216 re S Q BT /TT1 1 Tf 7.9947 0 0 7.9947 291.2117 256.3707 Tm (telnet)Tj /T1_1 1 Tf 3.85 0 Td (command)Tj -1.466 -1.25 Td [(\(par)18(ent\))]TJ ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J 2886 2021.8 720 216 re S Q BT /TT1 1 Tf 7.9942 0 0 7.9942 291.1943 216.0644 Tm (telnet)Tj /T1_1 1 Tf 3.85 0 Td (command)Tj -1.143 -1.25 Td (\(child\))Tj ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 288.6 253.3 cm 0 0 m -5.904 -4.464 l -7.272 -1.152 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 2886 2533 cm 0 0 m -59.04 -44.64 l -72.72 -11.52 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2580.25 2403.25 cm 0 0 m 240 102 l S Q Q q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 391.2 240.34 cm 0 0 m -7.344 1.152 l -5.976 4.464 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 3912 2403.3999 cm 0 0 m -73.44 11.52 l -59.76 44.64 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3606.25 2533.25 cm 0 0 m 240 -102 l S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 258 225.94 cm 0 0 m 7.344 -1.152 l 5.976 -4.464 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 2580 2259.3999 cm 0 0 m 73.44 -11.52 l 59.76 -44.64 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2646.25 2231.25 cm 0 0 m 240 -101 l S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 360.6 212.98 cm 0 0 m 5.904 4.464 l 7.272 1.152 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 3606 2129.8 cm 0 0 m 59.04 44.64 l 72.72 11.52 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3672.25 2158.25 cm 0 0 m 240 101 l S Q Q BT /T1_0 1 Tf 7.9923 0 0 7.9923 224.6362 179.2079 Tm (Figure 14.14)Tj /T1_1 1 Tf 6.195 0 Td (The)Tj /TT1 1 Tf 1.924 0 Td (telnet)Tj /T1_1 1 Tf 3.85 0 Td [(pr)18(ogram using two pr)18(ocesses)]TJ 9.9904 0 0 9.9904 129.476 151.6344 Tm [(If )-23(we )-23(use )-23(two )-23(pr)18(ocesses, )-23(we )-23(can )-23(let )-23(each )-23(pr)22(ocess )-22(do )-22(a )-22(blocking)]TJ /TT1 1 Tf 27.897 0 Td (read)Tj /T1_1 1 Tf 0.5225 Tc (.B)Tj 0 Tc 3.784 0 Td [(ut )-22(this )-22(leads )-22(to )-22(a)]TJ -31.681 -1.2 Td [(pr)18(oblem )-110(when )-110(the )-110(operation )-110(terminates.)-610(If )-110(an )-110(end )-110(of )-110(\336le )-110(is )-110(r)17(eceived )-110(by )-110(the )-110(child )-110(\(the)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46961 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.3)]TJ 36.622 0 Td (Recor)Tj 0.5 Tc 2.514 0 Td (dL)Tj 0 Tc 1.722 0 Td (ocking)Tj /T1_1 1 Tf 4.975 0 Td (485)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(14.3 )-776(Recor)]TJ 0.556 Tc 5.814 0 Td (dL)Tj 0 Tc 1.778 0 Td [(oc)20(king)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 647.3612 Tm [(What )-150(happens )-150(when )-150(two )-150(people )-150(edit )-150(the )-150(same )-150(\336le )-150(at )-150(the )-150(same )-150(time?)-654(In )-150(most )-150(UNIX)]TJ 0 -1.2 TD [(systems, )-73(the )-73(\336nal )-73(state )-73(of )-73(the )-73(\336le )-73(corr)16(esponds )-73(to )-73(the )-73(last )-73(pr)18(ocess )-73(that )-73(wr)18(ote )-73(the )-73(\336le.)-575(In)]TJ T* [(some )-132(applications, )-132(however)]TJ 0.3817 Tc 12.548 0 Td (,s)Tj 0 Tc 1.056 0 Td [(uch )-132(as )-132(a )-132(database )-132(system, )-132(a )-132(pr)18(ocess )-132(needs )-132(to )-132(be )-132(certain)]TJ -13.604 -1.2 Td [(that )-142(it )-142(alone )-142(is )-142(writing )-142(to )-142(a )-142(\336le.)]TJ -0.092 Tc 15.124 0 Td [(To )-326(p)]TJ -0.018 Tc 2.06 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vide )-142(this )-142(capability )-142(for )-142(pr)18(ocesses )-142(that )-142(need )-142(it,)]TJ -18.108 -1.2 Td [(commer)18(cial )-312(UNIX )-312(systems )-312(pr)18(ovide )-312(r)18(ecor)]TJ 0.5622 Tc 19.209 0 Td (dl)Tj 0 Tc 1.464 0 Td [(ocking. )-562(\(In)-562(Chapter )-312(20, )-312(we )-312(develop )-312(a)]TJ -20.673 -1.2 Td [(database library that uses r)18(ecor)]TJ 0.25 Tc 13.761 0 Td (dl)Tj 0 Tc 1.152 0 Td (ocking.\))Tj /T1_2 1 Tf -13.113 -1.2 Td [(Record )-240(locking)]TJ /T1_0 1 Tf 6.683 0 Td [(is )-240(the )-240(term )-240(normally )-240(used )-240(to )-240(describe )-240(the )-240(ability )-240(of )-240(a )-240(pr)18(ocess )-240(to)]TJ -8.483 -1.2 Td [(pr)18(event )-219(other )-219(pr)18(ocesses )-219(fr)18(om )-219(modifying )-219(a )-219(r)17(egion )-219(of )-219(a )-219(\336le )-219(while )-219(the )-219(\336rst )-219(pr)18(ocess )-219(is)]TJ -0.018 Tc 0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ading )-141(or )-141(modifying )-141(that )-141(portion )-141(of )-141(the )-141(\336le.)-641(Under )-141(the )-141(UNIX )-141(System, )-141(\324)35(\324r)18(ecor)18(d\325)37(\325)-391(is)-391(a)]TJ -0.856 -1.2 Td [(misnomer; )-41(the )-41(UNIX )-41(kernel )-41(does )-41(not )-41(have )-41(a )-41(notion )-41(of )-41(r)15(ecor)18(ds )-41(in )-41(a )-41(\336le.)]TJ 0.2914 Tc 31.992 0 Td (Ab)Tj 0 Tc 1.622 0 Td [(etter )-41(term )-41(is)]TJ /T1_2 1 Tf -33.614 -1.2 Td (byte-range locking)Tj /T1_0 1 Tf 0.25 Tc (,g)Tj 0 Tc 8.509 0 Td (iven that it is a range of a \336le \(possibly the entir)Tj 0.25 Tc 20.96 0 Td (e\336)Tj 0 Tc 1.334 0 Td (le\) that is locked.)Tj /TT0 1 Tf -34.403 -2.16 Td [(Histor )268(y)]TJ /T1_0 1 Tf 3.6 -1.92 Td [(One )-199(of )-199(the )-199(criticisms )-199(of )-199(early )-199(UNIX )-199(systems )-199(was )-199(that )-199(they )-199(couldn\325t )-199(be )-199(used )-199(to )-199(r)7(un)]TJ T* [(database )-207(systems, )-207(because )-207(they )-207(did )-207(not )-207(support )-207(locking )-207(portions )-207(of )-207(\336les.)-706(As )-207(UNIX)]TJ T* [(systems )-38(found )-38(their )-38(way )-38(into )-38(business )-38(computing )-38(envir)18(onments, )-38(various )-38(gr)18(oups )-38(added)]TJ T* [(support for r)18(ecor)]TJ 0.25 Tc 7.493 0 Td (dl)Tj 0 Tc 1.152 0 Td [(ocking \(dif)18(fer)18(ently)111(,)-250(of)-250(course\).)]TJ -6.845 -1.2 Td [(Early )-201(Berkeley )-201(r)18(eleases )-201(supported )-201(only )-201(the)]TJ /TT1 1 Tf 20.309 0 Td (flock)Tj /T1_0 1 Tf 3.451 0 Td [(function. )-451(This)-452(function )-201(locks)]TJ -25.56 -1.2 Td (only entir)Tj 0.25 Tc 4.28 0 Td (e\336)Tj 0 Tc 1.334 0 Td [(les, not r)18(egions of a \336le.)]TJ -3.814 -1.2 Td (Recor)Tj 0.2917 Tc 2.514 0 Td (dl)Tj 0 Tc 1.194 0 Td [(ocking )-42(was )-42(added )-42(to )-42(System )-42(V )-42(Release )-42(3 )-42(thr)18(ough )-42(the)]TJ /TT1 1 Tf 24.028 0 Td (fcntl)Tj /T1_0 1 Tf 3.292 0 Td [(function. )-292(The)]TJ /TT1 1 Tf -32.827 -1.2 Td (lockf)Tj /T1_0 1 Tf 3.568 0 Td [(function )-318(was )-318(built )-318(on )-318(top )-318(of )-318(this, )-318(pr)18(oviding )-318(a )-318(simpli\336ed )-318(interface.)-818(These)]TJ -3.568 -1.2 Td [(functions )-72(allowed )-72(callers )-72(to )-72(lock )-72(arbitrary )-72(byte )-72(ranges )-72(in )-72(a )-72(\336le, )-72(ranging )-72(fr)22(om )-72(the )-72(entir)19(e)]TJ 0 -1.2 Td (\336le down to a single byte within the \336le.)Tj 1.8 -1.2 Td [(POSIX.1 )-35(chose )-35(to )-35(standar)17(dize )-36(on )-36(the)]TJ /TT1 1 Tf 16.445 0 Td (fcntl)Tj /T1_0 1 Tf 3.286 0 Td [(appr)18(oach. )-286(Figur)]TJ 0.2856 Tc 7.32 0 Td (e1)Tj 0 Tc 1.265 0 Td [(4.2 )-36(shows )-36(the )-36(forms)]TJ -30.115 -1.2 Td [(of )-18(r)18(ecor)]TJ 0.2681 Tc 3.37 0 Td (dl)Tj 0 Tc 1.17 0 Td [(ocking )-18(pr)18(ovided )-18(by )-18(various )-18(systems.)-518(Note )-18(that )-18(the )-18(Single )-18(UNIX )-18(Speci\336cation)]TJ -4.54 -1.2 Td (includes)Tj /TT1 1 Tf 3.975 0 Td (lockf)Tj /T1_0 1 Tf 3.25 0 Td (in the XSI option.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1896.25 3250.25 cm 0 0 m 2700 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 209.2909 316.962 Tm [(System )-3212(Advisory)-1500(Mandatory)]TJ /TT1 1 Tf 18.783 0 Td [(fcntl )-900(lockf )-900(flock)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1896.25 3130.25 cm 0 0 m 2700 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1896.25 3110.25 cm 0 0 m 2700 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 193.5812 302.9455 Tm (SUS )Tj 10.398 0 Td (\245)Tj 3.4325 Tc 11.545 0 Td (\245X)Tj 0 Tc 4.706 0 Td (SI)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1896.25 2990.25 cm 0 0 m 2700 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 193.5695 290.9302 Tm [(Fr)18(eeBSD 8.0)]TJ 10.939 Tc 10.398 0 Td (\245\245)Tj 3.894 Tc 16.045 0 Td (\245\245)Tj 0 Tc -26.443 -1.25 Td (Linux 3.2.0)Tj 5.458 Tc 10.398 0 Td (\245\245)Tj 3.894 Tc 11.545 0 Td (\245\245\245)Tj 0 Tc -21.943 -1.25 Td (Mac OS X 10.6.8)Tj 10.939 Tc 10.398 0 Td (\245\245)Tj 3.894 Tc 16.045 0 Td (\245\245)Tj 0 Tc -26.443 -1.25 Td (Solaris 10)Tj 5.458 Tc 10.398 0 Td (\245\245)Tj 3.894 Tc 11.545 0 Td (\245\245\245)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1896.25 2570.25 cm 0 0 m 2700 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4256.25 2570.25 cm 0 0 m 0 680 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3896.25 2570.25 cm 0 0 m 0 680 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3536.25 2570.25 cm 0 0 m 0 680 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3019.25 2570.25 cm 0 0 m 0 680 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2565.25 2570.25 cm 0 0 m 0 680 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4596.25 2570.25 cm 0 0 m 0 680 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1896.25 2570.25 cm 0 0 m 0 680 l S Q Q BT /T1_1 1 Tf 0 Tc 7.9976 0 0 7.9976 194.0378 238.9283 Tm (Figure 14.2)Tj /T1_0 1 Tf 5.695 0 Td [(Forms of r)18(ecor)]TJ 0.25 Tc 6.406 0 Td (dl)Tj 0 Tc 1.152 0 Td (ocking supported by various UNIX systems)Tj -0.092 Tc 9.997 0 0 9.997 147.5559 214.9355 Tm [(We )-184(d)]TJ 0 Tc 2.248 0 Td [(escribe the dif)18(fer)18(ence between advisory locking and mandatory locking later in)]TJ -4.048 -1.2 Td [(this section.)-500(In this text, we describe only the POSIX.1)]TJ /TT1 1 Tf 24.174 0 Td (fcntl)Tj /T1_0 1 Tf 3.25 0 Td (locking.)Tj 7.9976 0 0 7.9976 183.545 182.9451 Tm (Recor)Tj 0.3079 Tc 2.514 0 Td (dl)Tj 0 Tc 1.21 0 Td [(ocking )-58(was )-58(originally )-58(added )-58(to )-58(V)111(ersion )-58(7 )-58(in )-58(1980 )-58(by )-58(John )-58(Bass.)-558(The )-58(system )-58(call )-58(entry)]TJ -3.724 -1.25 Td [(into )-161(the )-161(kernel )-161(was )-161(a )-161(function )-161(named)]TJ /TT1 1 Tf 17.813 0 Td (locking)Tj /T1_0 1 Tf 0.6613 Tc (.T)Tj 0 Tc 5.724 0 Td [(his )-161(function )-161(pr)18(ovided )-161(mandatory )-161(r)17(ecor)18(d)]TJ -23.537 -1.25 Td [(locking )-112(and )-112(pr)18(opagated )-112(thr)18(ough )-112(many )-112(versions )-112(of )-112(System )-112(III.)-610(Xenix )-112(systems )-112(picked )-112(up )-112(this)]TJ 0 -1.25 TD [(function, )-222(and )-222(some )-222(Intel-based )-222(System )-222(V )-222(derivatives, )-222(such )-222(as )-222(OpenServer )-222(5, )-222(continued )-222(to)]TJ T* [(support it in a Xenix-compatibility library)111(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46962 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (14)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(Adv)30(anced )-280(I/O)]TJ /TT0 1 Tf 12 0 0 12 93.6 434.4 Tm [(14.1 )-776(Intr)20(oduction)]TJ /T1_2 1 Tf 10 0 0 10 129.6 410.4 Tm [(This )-283(chapter )-283(covers )-283(numer)19(ous )-283(topics )-283(and )-283(functions )-283(that )-283(we )-283(lump )-283(under )-283(the )-283(term)]TJ /T1_3 1 Tf 0 -1.2 TD [(advanced )-263(I/O)]TJ /T1_2 1 Tf 0.5127 Tc 5.826 0 Td (:n)Tj 0 Tc 1.345 0 Td [(onblocking )-263(I/O, )-263(r)19(ecor)]TJ 0.5126 Tc 10.174 0 Td (dl)Tj 0 Tc 1.415 0 Td [(ocking, )-263(I/O )-263(multiplexing )-263(\(the)]TJ /TT1 1 Tf 14.434 0 Td (select)Tj /T1_2 1 Tf 4.113 0 Td (and)Tj /TT1 1 Tf -37.307 -1.2 Td (poll)Tj /T1_2 1 Tf 3.287 0 Td [(functions\), )-637(asynchr)18(onous )-637(I/O, )-637(the)]TJ /TT1 1 Tf 17.796 0 Td (readv)Tj /T1_2 1 Tf 3.888 0 Td (and)Tj /TT1 1 Tf 2.581 0 Td (writev)Tj /T1_2 1 Tf 4.487 0 Td [(functions, )-637(and)]TJ -32.039 -1.2 Td [(memory-mapped )-430(I/O )-430(\()]TJ /TT1 1 Tf (mmap)Tj /T1_2 1 Tf [(\). )-680(W)]TJ 0.6801 Tc 15.993 0 Td (en)Tj 0 Tc 1.741 0 Td [(eed )-430(to )-430(cover )-430(these )-430(topics )-430(befor)]TJ 0.6801 Tc 15.48 0 Td (ed)Tj 0 Tc 1.77 0 Td (escribing)Tj -34.985 -1.2 Td [(interpr)18(ocess )-136(communication )-136(in )-136(Chapter )-136(15, )-136(Chapter )-136(17, )-136(and )-136(many )-136(of )-136(the )-136(examples )-136(in)]TJ T* (later chapters.)Tj /TT0 1 Tf 12 0 0 12 93.6002 314.4 Tm [(14.2 )-776(Nonb)10(loc)20(king )-278(I/O)]TJ /T1_2 1 Tf 10 0 0 10 129.6002 290.4 Tm [(In )-143(Section )-143(10.5, )-143(we )-143(said )-143(that )-143(system )-143(calls )-143(ar)]TJ 0.3926 Tc 20.046 0 Td (ed)Tj 0 Tc 1.483 0 Td [(ivided )-143(into )-143(two )-143(categories: )-143(the )-143(\324)39(\324slow\325)37(\325)]TJ -21.528 -1.2 Td [(ones )-120(and )-120(all )-120(the )-120(others.)-620(The )-120(slow )-120(system )-120(calls )-120(ar)]TJ 0.3701 Tc 22.463 0 Td (et)Tj 0 Tc 1.175 0 Td [(hose )-120(that )-120(can )-120(block )-120(for)18(ever)]TJ 0.6201 Tc 12.261 0 Td (.T)Tj 0 Tc 1.483 0 Td (hey)Tj -37.383 -1.2 Td (include)Tj 0.883 Tc 1.8 -2.04 Td (\245R)Tj 0 Tc 2.157 0 Td [(eads )-27(that )-27(can )-27(block )-27(the )-27(caller )-27(for)18(ever )-27(if )-27(data )-27(isn\325t )-27(pr)18(esent )-27(with )-27(certain )-27(\336le )-27(types)]TJ -0.668 -1.2 Td (\(pipes, terminal devices, and network devices\))Tj 0.883 Tc -1.489 -1.6 Td (\245W)Tj 0 Tc 2.415 0 Td [(rites )-33(that )-33(can )-33(block )-33(the )-33(caller )-33(for)18(ever )-33(if )-33(the )-33(data )-33(can\325t )-33(be )-33(accepted )-33(immediately)]TJ -0.926 -1.2 Td [(by these same \336le types \(e.g., no r)18(oom in the pipe, network \337ow contr)18(ol\))]TJ 0.883 Tc -1.489 -1.6 Td (\245O)Tj 0 Tc 2.275 0 Td [(pens )-128(that )-128(block )-128(until )-128(some )-128(condition )-128(occurs )-128(on )-128(certain )-128(\336le )-128(types )-128(\(such )-128(as )-128(an)]TJ -0.786 -1.2 Td [(open )-252(of )-252(a )-252(terminal )-252(device )-252(that )-252(waits )-252(until )-252(an )-252(attached )-252(modem )-252(answers )-252(the)]TJ T* [(phone, )-153(or )-153(an )-153(open )-153(of )-153(a )-153(FIFO )-153(for )-153(writing )-153(only)]TJ 0.4028 Tc 20.923 0 Td (,w)Tj 0 Tc 1.487 0 Td [(hen )-153(no )-153(other )-153(pr)18(ocess )-153(has )-153(the)]TJ -22.41 -1.2 Td [(FIFO open for r)18(eading\))]TJ 0.883 Tc -1.489 -1.6 Td (\245R)Tj 0 Tc 2.157 0 Td [(eads and writes of \336les that have mandatory r)18(ecor)]TJ 0.25 Tc 22.116 0 Td (dl)Tj 0 Tc 1.152 0 Td (ocking enabled)Tj /T1_4 1 Tf 9 0 0 9 506.1003 114 Tm (481)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46963 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (480)Tj /T1_1 1 Tf 3.5 0 Td [(Daemon )-250(Pr)18(ocesses )]TJ 38.741 0 Td [(Chapter)-500(13)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (set_cloexec\(int fd\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(val;)]TJ 0 -2.021 TD (if \(\(val = fcntl\(fd, F_GETFD, 0\)\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -2.021 Td [(val |= FD_CLOEXEC;)-3600(/* enable close-on-exec */)]TJ T* (return\(fcntl\(fd, F_SETFD, val\)\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5177.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 264.2283 501.6778 Tm (Figure 13.9)Tj /T1_1 1 Tf 5.695 0 Td (Set close-on-exec \337ag)Tj /TT1 1 Tf 11.9986 0 0 11.9986 93.589 453.6836 Tm [(13.8 )-776(Summar)-10(y)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5846 429.6864 Tm [(Daemon )-9(pr)18(ocesses )-9(ar)]TJ 0.2593 Tc 9.358 0 Td (er)Tj 0 Tc 1.125 0 Td [(unning )-9(all )-9(the )-9(time )-9(on )-9(most )-9(UNIX )-9(systems.)-509(Initializing )-9(our )-9(own)]TJ -10.483 -1.2 Td [(pr)18(ocess )-246(to )-246(r)8(un )-246(as )-246(a )-246(daemon )-246(takes )-246(some )-246(car)]TJ 0.4958 Tc 20.668 0 Td (ea)Tj 0 Tc 1.475 0 Td [(nd )-246(an )-246(understanding )-246(of )-246(the )-246(pr)19(ocess)]TJ -0.018 Tc -22.143 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(lationships )-61(described )-61(in )-61(Chapter )-61(9.)-561(In )-61(this )-61(chapter)72(,)-311(we)-311(d)-1(eveloped )-61(a )-61(function )-61(that )-61(can)]TJ -0.856 -1.2 Td [(be called by a daemon pr)18(ocess to initialize itself corr)18(ectly)111(.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-402(a)]TJ 0 Tc 2.355 0 Td [(lso )-218(discussed )-218(the )-218(ways )-218(a )-218(daemon )-218(can )-218(log )-218(err)18(or )-218(messages, )-218(since )-218(a )-218(daemon)]TJ -4.155 -1.2 Td [(normally )-157(doesn\325t )-157(have )-157(a )-157(contr)18(olling )-157(terminal.)]TJ -0.092 Tc 21.439 0 Td [(We )-341(d)]TJ 0 Tc 2.405 0 Td [(iscussed )-157(several )-157(conventions )-157(that)]TJ -23.844 -1.2 Td [(daemons )-152(follow )-152(on )-152(most )-152(UNIX )-152(systems )-152(and )-152(showed )-152(examples )-152(of )-152(how )-152(to )-152(implement)]TJ 0 -1.2 TD (some of these conventions.)Tj /TT1 1 Tf 11.9986 0 0 11.9986 129.5848 303.7016 Tm [(Ex)10(er)20(cises)]TJ /T1_0 1 Tf 8.9989 0 0 8.9989 129.5848 282.7041 Tm (13.1)Tj /T1_1 1 Tf 3.065 0 Td [(As )-182(we )-182(might )-182(guess )-182(fr)18(om )-182(Figur)]TJ 0.4323 Tc 14.323 0 Td (e1)Tj 0 Tc 1.411 0 Td [(3.2, )-182(when )-182(the)]TJ /TT0 1 Tf 6.661 0 Td (syslog)Tj /T1_1 1 Tf 4.032 0 Td [(facility )-182(is )-182(initialized, )-182(either )-182(by)]TJ -26.428 -1.222 Td (calling)Tj /TT0 1 Tf 3.227 0 Td (openlog)Tj /T1_1 1 Tf 4.472 0 Td [(dir)18(ectly )-22(or )-22(on )-22(the )-22(\336rst )-22(call )-22(to)]TJ /TT0 1 Tf 12.882 0 Td (syslog)Tj /T1_1 1 Tf 0.2718 Tc (,t)Tj 0 Tc 4.448 0 Td [(he )-22(special )-22(device )-22(\336le )-22(for )-22(the )-22(UNIX)]TJ -25.029 -1.222 Td [(domain )-51(datagram )-51(socket,)]TJ /TT0 1 Tf 11.613 0 Td (/dev/log)Tj /T1_1 1 Tf 0.3013 Tc (,h)Tj 0 Tc 5.933 0 Td [(as )-51(to )-51(be )-51(opened.)-551(What )-51(happens )-51(if )-51(the )-51(user )-51(pr)15(ocess)]TJ -17.546 -1.222 Td (\(the daemon\) calls)Tj /TT0 1 Tf 8.354 0 Td (chroot)Tj /T1_1 1 Tf 3.85 0 Td (befor)Tj 0.25 Tc 2.288 0 Td (ec)Tj 0 Tc 1.173 0 Td (alling)Tj /TT0 1 Tf 2.761 0 Td (openlog)Tj /T1_1 1 Tf (?)Tj /T1_0 1 Tf -21.491 -1.667 Td (13.2)Tj /T1_1 1 Tf 3.065 0 Td [(Recall )-146(the )-146(sample)]TJ /TT0 1 Tf 8.425 0 Td (ps)Tj /T1_1 1 Tf 1.596 0 Td [(output )-146(fr)18(om )-146(Section )-146(13.2.)-646(The )-146(only )-146(user)21(-level )-145(daemon )-145(that )-145(isn\325t )-145(a)]TJ -10.02 -1.222 Td [(session )-21(leader )-21(is )-21(the)]TJ /TT0 1 Tf 9.111 0 Td (rsyslogd)Tj /T1_1 1 Tf 5.071 0 Td [(pr)18(ocess. )-271(Explain)-271(why )-21(the)]TJ /TT0 1 Tf 11.63 0 Td (syslogd)Tj /T1_1 1 Tf 4.471 0 Td [(daemon )-21(isn\325t )-21(a )-21(session)]TJ -30.283 -1.222 Td [(leader)74(.)]TJ /T1_0 1 Tf -3.065 -1.667 Td (13.3)Tj /T1_1 1 Tf 3.065 0 Td (List all the daemons active on your system, and identify the function of\ each one.)Tj /T1_0 1 Tf -3.065 -1.667 Td (13.4)Tj /T1_1 1 Tf -0.074 Tc 3.065 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-246(a )-246(pr)18(ogram )-246(that )-246(calls )-246(the)]TJ /TT0 1 Tf 13.498 0 Td (daemonize)Tj /T1_1 1 Tf 5.895 0 Td [(function )-245(in )-245(Figur)]TJ 0.4954 Tc 7.954 0 Td (e1)Tj 0 Tc 1.474 0 Td [(3.1. )-495(After)-496(calling )-245(this)]TJ -30.143 -1.222 Td [(function, )-113(call)]TJ /TT0 1 Tf 6.209 0 Td (getlogin)Tj /T1_1 1 Tf 5.163 0 Td [(\(Section )-113(8.15\) )-113(to )-113(see )-113(whether )-113(the )-113(pr)18(ocess )-113(has )-113(a )-113(login )-113(name )-113(now)]TJ -11.373 -1.222 Td [(that it has become a daemon.)-500(Print the r)18(esults to a \336le.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46964 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(13.7)]TJ 34.444 0 Td [(Client\320Server )-250(Model)]TJ /T1_1 1 Tf 11.389 0 Td (479)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (sigaddset\(&sa.sa_mask, SIGTERM\);)Tj 0 -1.189 TD (sa.sa_flags = 0;)Tj T* (if \(sigaction\(SIGHUP, &sa, NULL\) < 0\) {)Tj 2.4 -1.189 Td (syslog\(LOG_ERR, "can\325t catch SIGHUP: %s", strerror\(errno\)\);)Tj T* (exit\(1\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (roceed with the rest of the daemon.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (/* ... */)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5403.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 181.4822 524.2461 Tm (Figure 13.8)Tj /T1_0 1 Tf 5.695 0 Td [(Alternative implementation of daemon r)18(er)18(eading con\336guration \336les)]TJ 9.9988 0 0 9.9988 129.5845 500.249 Tm [(After )-40(initializing )-40(the )-40(daemon, )-40(we )-40(install )-40(signal )-40(handlers )-40(for)]TJ /TT0 1 Tf 26.75 0 Td (SIGHUP)Tj /T1_0 1 Tf 3.89 0 Td (and)Tj /TT0 1 Tf 1.983 0 Td (SIGTERM)Tj /T1_0 1 Tf 0.5399 Tc (.W)Tj 0 Tc 5.898 0 Td (e)Tj -38.521 -1.2 Td [(can )-6(either )-6(place )-6(the )-6(r)18(er)18(ead )-6(logic )-6(in )-6(the )-6(signal )-6(handler )-6(or )-6(just )-6(set )-6(a )-6(\337ag )-6(in )-6(the )-6(handler )-6(and)]TJ 0 -1.2 Td [(have the main thr)18(ead of the daemon do all the work instead.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4763.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9978 0 0 11.9978 93.5832 440.2297 Tm [(13.7 )-776(Client\320Ser)-10(ver )-278(Model)]TJ /T1_0 1 Tf 0.3183 Tc 9.9982 0 0 9.9982 129.5767 416.2341 Tm (Ac)Tj 0 Tc 1.54 0 Td [(ommon )-68(use )-68(for )-68(a )-68(daemon )-68(pr)17(ocess )-68(is )-68(as )-68(a )-68(server )-68(pr)16(ocess. )-318(Indeed,)-319(in )-68(Figur)]TJ 0.3184 Tc 33.031 0 Td (e1)Tj 0 Tc 1.297 0 Td [(3.2, )-68(we)]TJ -35.868 -1.2 Td [(can )-144(call )-144(the)]TJ /TT0 1 Tf 5.622 0 Td (syslogd)Tj /T1_0 1 Tf 4.594 0 Td [(pr)18(ocess )-144(a )-144(server )-144(that )-144(has )-144(messages )-144(sent )-144(to )-144(it )-144(by )-144(user )-144(pr)17(ocesses)]TJ -10.216 -1.2 Td (\(clients\) using a UNIX domain datagram socket.)Tj 1.8 -1.2 Td [(In )-78(general, )-78(a)]TJ /T1_2 1 Tf 5.936 0 Td (server)Tj /T1_0 1 Tf 2.773 0 Td [(is )-78(a )-78(pr)18(ocess )-78(that )-78(waits )-78(for )-78(a)]TJ /T1_2 1 Tf 12.692 0 Td (client)Tj /T1_0 1 Tf 2.569 0 Td [(to )-78(contact )-78(it, )-78(r)18(equesting )-78(some)]TJ -25.77 -1.2 Td [(type )-34(of )-34(service.)-534(In )-34(Figur)]TJ 0.284 Tc 10.856 0 Td (e1)Tj 0 Tc 1.263 0 Td [(3.2, )-34(the )-34(service )-34(being )-34(pr)18(ovided )-34(by )-34(the)]TJ /TT0 1 Tf 16.99 0 Td (syslogd)Tj /T1_0 1 Tf 4.484 0 Td [(server )-34(is )-34(the)]TJ -33.593 -1.2 Td [(logging of an err)18(or message.)]TJ 1.8 -1.2 Td [(In )-166(Figur)]TJ 0.4162 Tc 3.718 0 Td (e1)Tj 0 Tc 1.395 0 Td [(3.2, )-166(the )-166(communication )-166(between )-166(the )-166(client )-166(and )-166(the )-166(server )-166(is )-166(one )-166(way)109(.)]TJ -6.913 -1.2 Td [(The )-107(client )-107(sends )-107(its )-107(service )-107(r)16(equest )-107(to )-107(the )-107(server; )-107(the )-107(server )-107(sends )-107(nothing )-107(back )-107(to )-107(the)]TJ 0 -1.2 TD [(client. )-824(In)-824(the )-574(upcoming )-574(chapters, )-574(we\325ll )-574(see )-574(numer)18(ous )-574(examples )-574(of )-574(two-way)]TJ T* [(communication )-65(between )-65(a )-65(client )-65(and )-65(a )-65(server)]TJ 0.0833 Tc 20.471 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(he )-65(client )-65(sends )-65(a )-65(r)17(equest )-65(to )-65(the )-65(server)74(,)]TJ -21.88 -1.2 Td [(and the server sends a r)18(eply back to the client.)]TJ 1.8 -1.2 Td [(It )-232(is )-232(common )-232(to )-232(\336nd )-232(servers )-232(that)]TJ /TT0 1 Tf 16.203 0 Td (fork)Tj /T1_0 1 Tf 2.882 0 Td (and)Tj /TT0 1 Tf 2.175 0 Td (exec)Tj /T1_0 1 Tf 2.882 0 Td [(another )-232(pr)18(ogram )-232(to )-232(pr)17(ovide)]TJ -25.943 -1.2 Td [(service )-12(to )-12(a )-12(client.)-514(These )-12(servers )-12(often )-12(manage )-12(multiple )-12(\336le )-12(descriptors: )-12(communication)]TJ T* [(endpoints, )-156(con\336guration )-156(\336les, )-156(log )-156(\336les, )-156(and )-156(the )-156(like.)-656(At )-156(best, )-156(it )-156(would )-156(be )-156(car)18(eless )-156(to)]TJ T* [(leave )-123(these )-123(\336le )-123(descriptors )-123(open )-123(in )-123(the )-123(child )-123(pr)18(ocess, )-123(because )-123(they )-123(pr)18(obably )-123(won\325t )-123(be)]TJ T* [(used )-44(in )-44(the )-44(pr)18(ogram )-44(executed )-44(by )-44(the )-44(child, )-44(especially )-44(if )-44(the )-44(pr)18(ogram )-44(is )-44(unr)18(elated )-44(to )-44(the)]TJ T* (server)Tj 0.7511 Tc 2.663 0 Td (.A)Tj 0.5011 Tc 1.779 0 Td (tw)Tj 0 Tc 1.661 0 Td [(orst, )-251(leaving )-251(them )-251(open )-251(could )-251(pose )-251(a )-251(security )-251(pr)18(oblem )167(\321 )167(the)-502(pr)18(ogram)]TJ -6.103 -1.2 Td [(executed )-100(could )-100(do )-100(something )-100(malicious, )-100(such )-100(as )-100(change )-100(the )-100(server)-72(\325s )-100(con\336guration )-100(\336le)]TJ T* [(or )-168(trick )-168(the )-168(client )-168(into )-168(thinking )-168(it )-168(is )-168(communicating )-168(with )-168(the )-168(server)]TJ 0.4177 Tc 31.205 0 Td (,t)Tj 0 Tc 0.994 0 Td [(her)18(eby )-168(gaining)]TJ -32.198 -1.2 Td (access to unauthorized information.)Tj 1.8 -1.2 Td [(An )-361(easy )-361(solution )-361(to )-361(this )-361(pr)18(oblem )-361(is )-361(to )-361(set )-361(the )-361(close-on-exec )-361(\337ag )-361(for )-361(all )-361(\336le)]TJ -1.8 -1.2 Td [(descriptors that the executed pr)18(ogram won\325t need.)-503(Figur)]TJ 0.2504 Tc 25.205 0 Td (e1)Tj 0 Tc 1.229 0 Td (3.9 shows a function that we)Tj -26.434 -1.2 Td [(can use in a server pr)18(ocess to do just this.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46965 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (474)Tj /T1_1 1 Tf 3.5 0 Td [(Daemon )-250(Pr)18(ocesses )]TJ 38.741 0 Td [(Chapter)-500(13)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm (int)Tj 0 -1.189 TD (already_running\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(fd;)]TJ T* [(char )-1800(buf[16];)]TJ 0 -1.902 TD (fd = open\(LOCKFILE, O_RDWR|O_CREAT, LOCKMODE\);)Tj 0 -1.189 TD (if \(fd < 0\) {)Tj 2.4 -1.189 Td (syslog\(LOG_ERR, "can\325t open %s: %s", LOCKFILE, strerror\(errno\)\);)Tj T* (exit\(1\);)Tj -2.4 -1.189 Td (})Tj T* (if \(lockfile\(fd\) < 0\) {)Tj 2.4 -1.189 Td (if \(errno == EACCES || errno == EAGAIN\) {)Tj 2.4 -1.189 Td (close\(fd\);)Tj T* (return\(1\);)Tj -2.4 -1.189 Td (})Tj T* (syslog\(LOG_ERR, "can\325t lock %s: %s", LOCKFILE, strerror\(errno\)\);)Tj 0 -1.189 TD (exit\(1\);)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (ftruncate\(fd, 0\);)Tj T* (sprintf\(buf, "%ld", \(long\)getpid\(\)\);)Tj T* (write\(fd, buf, strlen\(buf\)+1\);)Tj T* (return\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4237.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 213.5264 407.6301 Tm (Figure 13.6)Tj /T1_1 1 Tf 5.695 0 Td (Ensur)Tj 0.25 Tc 2.597 0 Td (et)Tj 0 Tc 1.055 0 Td [(hat only one copy of a daemon is r)8(unning)]TJ 9.9988 0 0 9.9988 147.5825 383.633 Tm [(Each )-48(copy )-48(of )-48(the )-48(daemon )-48(will )-48(try )-48(to )-48(cr)18(eate )-48(a )-48(\336le )-48(and )-48(write )-48(its )-48(pr)18(ocess )-48(ID )-48(in )-48(the )-48(\336le.)]TJ -1.8 -1.2 Td [(This )-24(will )-24(allow )-24(administrators )-24(to )-24(identify )-24(the )-24(pr)18(ocess )-24(easily)]TJ 0.524 Tc 26.218 0 Td (.I)Tj 0.274 Tc 1.111 0 Td (ft)Tj 0 Tc 0.933 0 Td [(he )-24(\336le )-24(is )-24(alr)18(eady )-24(locked,)]TJ -28.262 -1.2 Td (the)Tj /TT0 1 Tf 1.698 0 Td (lockfile)Tj /T1_1 1 Tf 5.111 0 Td [(function )-61(will )-61(fail )-61(with)]TJ /TT0 1 Tf 10.106 0 Td (errno)Tj /T1_1 1 Tf 3.311 0 Td [(set )-61(to)]TJ /TT0 1 Tf 2.723 0 Td (EACCES)Tj /T1_1 1 Tf 3.911 0 Td (or)Tj /TT0 1 Tf 1.252 0 Td (EAGAIN)Tj /T1_1 1 Tf [(,)-311(so)-311(we)-311(r)18(eturn )-61(1,)]TJ -28.111 -1.2 Td [(indicating )-129(that )-129(the )-129(daemon )-129(is )-129(alr)18(eady )-129(r)7(unning. )-379(Otherwise,)-379(we )-129(tr)8(uncate )-129(the )-129(\336le, )-129(write)]TJ 0 -1.2 TD [(our pr)18(ocess ID to it, and r)18(eturn 0.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-337(n)]TJ 0 Tc 2.372 0 Td [(eed )-153(to )-153(tr)8(uncate )-153(the )-153(\336le, )-153(because )-153(the )-153(pr)18(evious )-153(instance )-153(of )-153(the )-153(daemon )-153(might)]TJ -4.172 -1.2 Td [(have )-59(had )-59(a )-59(pr)18(ocess )-59(ID )-59(lar)18(ger )-59(than )-59(ours, )-59(with )-59(a )-59(lar)18(ger )-59(string )-59(length.)-556(For )-59(example, )-59(if )-59(the)]TJ T* [(pr)18(evious )-42(instance )-42(of )-42(the )-42(daemon )-42(was )-42(pr)18(ocess )-42(ID )-42(12345, )-42(and )-42(the )-42(new )-42(instance )-42(is )-42(pr)14(ocess)]TJ 0 -1.2 Td [(ID )-63(9999, )-63(when )-63(we )-63(write )-63(the )-63(pr)18(ocess )-63(ID )-63(to )-63(the )-63(\336le, )-63(we )-63(will )-63(be )-63(left )-63(with )-63(99995 )-63(in )-63(the )-63(\336le.)]TJ -0.09 Tc T* [(Tr )78(u)]TJ 0 Tc 1.513 0 Td [(ncating )-31(the )-31(\336le )-31(pr)18(events )-31(data )-31(fr)18(om )-31(the )-31(pr)19(evious )-31(daemon )-31(appearing )-31(as )-31(if )-31(it )-31(applies )-31(to)]TJ -1.513 -1.2 Td [(the curr)18(ent daemon.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2637.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9978 0 0 11.9978 93.5832 227.638 Tm [(13.6 )-776(Daemon)-556(Con)40(ventions)]TJ /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 206.0419 Tm (Several common conventions ar)Tj 0.25 Tc 14.112 0 Td (ef)Tj 0 Tc 1.062 0 Td (ollowed by daemons in the UNIX System.)Tj 0.883 Tc -13.374 -2.04 Td (\245I)Tj 0.432 Tc 1.826 0 Td (ft)Tj 0 Tc 1.091 0 Td [(he )-182(daemon )-182(uses )-182(a )-182(lock )-182(\336le, )-182(the )-182(\336le )-182(is )-182(usually )-182(stor)18(ed )-182(in)]TJ /TT0 1 Tf 26.119 0 Td (/var/run)Tj /T1_1 1 Tf 0.682 Tc (.N)Tj 0 Tc 6.563 0 Td (ote,)Tj -34.11 -1.2 Td (however)Tj 0.4597 Tc 3.806 0 Td (,t)Tj 0 Tc 1.036 0 Td [(hat )-210(the )-210(daemon )-210(might )-210(need )-210(super)8(user )-210(permissions )-210(to )-210(cr)20(eate )-210(a )-210(\336le)]TJ -4.842 -1.2 Td [(her)18(e. )-334(The)-333(name )-84(of )-84(the )-84(\336le )-84(is )-84(usually)]TJ /T1_2 1 Tf 16.829 0 Td (name)Tj /TT0 1 Tf (.pid)Tj /T1_1 1 Tf 0.3337 Tc (,w)Tj 0 Tc 5.985 0 Td [(her)18(e)]TJ /T1_2 1 Tf 2.251 0 Td (name)Tj /T1_1 1 Tf 2.501 0 Td [(is )-84(the )-84(name )-84(of )-84(the)]TJ -27.565 -1.2 Td [(daemon )-52(or )-52(the )-52(service.)-552(For )-52(example, )-52(on )-52(Linux, )-52(the )-52(name )-52(of )-52(the)]TJ /TT0 1 Tf 28.706 0 Td (cron)Tj /T1_1 1 Tf 2.702 0 Td (daemon\325s)Tj -31.408 -1.2 Td (lock \336le is)Tj /TT0 1 Tf 4.677 0 Td (/var/run/crond.pid)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46966 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(13.5)]TJ 32.414 0 Td [(Single-Instance )-250(Daemons)]TJ /T1_1 1 Tf 13.419 0 Td (473)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(you )-206(might )-206(need )-206(to )-206(de\336ne )-206(an )-206(additional )-206(symbol, )-206(such )-206(as)]TJ /TT0 1 Tf 0.1666 Tc 26.795 0 Td (__)Tj 0 Tc 1.367 0 Td (BSD_VISIBLE)Tj /T1_0 1 Tf 7.056 0 Td [(on )-206(Fr)18(eeBSD )-206(or)]TJ /TT0 1 Tf 0.1666 Tc -35.218 -1.25 Td (__)Tj 0 Tc 1.367 0 Td (USE_BSD)Tj /T1_0 1 Tf 4.45 0 Td (on Linux.)Tj 9.9994 0 0 9.9994 147.5907 638.9617 Tm (Most)Tj /TT0 1 Tf 2.876 0 Td (syslogd)Tj /T1_0 1 Tf 4.834 0 Td [(implementations )-384(will )-384(queue )-384(messages )-384(for )-384(a )-384(short )-384(time.)-884(If )-384(a)]TJ -9.511 -1.2 Td [(duplicate )-109(message )-109(arrives )-109(during )-109(this )-109(period, )-109(the)]TJ /TT0 1 Tf 22.672 0 Td (syslog)Tj /T1_0 1 Tf 3.959 0 Td [(daemon )-109(will )-109(not )-109(write )-109(it )-109(to)]TJ -26.631 -1.2 Td [(the )-210(log.)-709(Instead, )-210(the )-210(daemon )-210(prints )-210(a )-210(message )-210(similar )-210(to )-210(\324)37(\324last )-210(message )-210(r)20(epeated)]TJ /T1_2 1 Tf 38.222 0 Td (N)Tj /T1_0 1 Tf -38.222 -1.2 Td [(times.\325)37(\325)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5942 569.3658 Tm [(13.5 )-776(Single-Instance)-556(Daemons)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5919 547.7671 Tm [(Some )-134(daemons )-134(ar)]TJ 0.384 Tc 8.103 0 Td (ei)Tj 0 Tc 1.154 0 Td [(mplemented )-134(so )-134(that )-134(only )-134(a )-134(single )-134(copy )-134(of )-134(the )-134(daemon )-134(should )-134(be)]TJ -0.008 Tc -9.257 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td [(nning )-7(at )-7(a )-7(time )-7(for )-7(pr)20(oper )-7(operation.)-507(Such )-7(a )-7(daemon )-7(might )-7(need )-7(exclusive )-7(access )-7(to )-7(a)]TJ -0.99 -1.2 Td [(device, )-294(for )-294(example.)-794(In )-294(the )-294(case )-294(of )-294(the)]TJ /TT0 1 Tf 19.417 0 Td (cron)Tj /T1_0 1 Tf 2.944 0 Td [(daemon, )-294(if )-294(multiple )-294(instances )-294(wer)16(e)]TJ -0.008 Tc -22.361 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td [(nning, )-358(each )-358(copy )-358(might )-358(try )-358(to )-358(start )-358(a )-358(single )-358(scheduled )-358(operation, )-358(r)18(esulting )-358(in)]TJ -0.99 -1.2 Td [(duplicate operations and pr)18(obably an err)18(or)74(.)]TJ 1.8 -1.2 Td [(If )-128(the )-128(daemon )-128(needs )-128(to )-128(access )-128(a )-128(device, )-128(the )-128(device )-128(driver )-128(will )-128(sometimes )-128(pr)14(event)]TJ -1.8 -1.2 Td [(multiple )-82(attempts )-82(to )-82(open )-82(the )-82(corr)18(esponding )-82(device )-82(node )-82(in)]TJ /TT0 1 Tf 27.477 0 Td (/dev)Tj /T1_0 1 Tf 0.5819 Tc (.T)Tj 0 Tc 3.845 0 Td [(his )-82(r)18(estricts )-82(us )-82(to)]TJ -31.322 -1.2 Td [(one )-60(copy )-60(of )-60(the )-60(daemon )-60(r)6(unning )-60(at )-60(a )-60(time.)-560(If )-60(no )-60(such )-60(device )-60(is )-60(available, )-60(however)]TJ 0.3104 Tc 37.127 0 Td (,w)Tj 0 Tc 1.394 0 Td (e)Tj -38.521 -1.2 Td (need to do the work ourselves.)Tj 1.8 -1.2 Td [(The )-130(\336le- )-130(and )-130(r)17(ecor)18(d)]TJ 9.05 0.09 Td (-)Tj 0.333 -0.09 Td [(locking )-130(mechanism )-130(pr)17(ovides )-130(the )-130(basis )-130(for )-130(one )-130(way )-130(to )-130(ensur)15(e)]TJ -11.183 -1.2 Td [(that )-218(only )-218(one )-218(copy )-218(of )-218(a )-218(daemon )-218(is )-218(r)8(unning. )-218(\(W)]TJ 0.4685 Tc 22.448 0 Td (ed)Tj 0 Tc 1.559 0 Td [(iscuss )-218(\336le )-218(and )-218(r)17(ecor)]TJ 0.4684 Tc 9.306 0 Td (dl)Tj 0 Tc 1.37 0 Td [(ocking )-218(in)]TJ -34.684 -1.2 Td [(Section )-37(14.3.\) )-37(If )-37(each )-37(daemon )-37(cr)18(eates )-37(a )-37(\336le )-37(with )-37(a )-37(\336xed )-37(name )-37(and )-37(places )-37(a )-37(write )-37(lock )-37(on)]TJ 0 -1.2 TD [(the )-255(entir)]TJ 0.5049 Tc 3.947 0 Td (e\336)Tj 0 Tc 1.589 0 Td [(le, )-255(only )-255(one )-255(such )-255(write )-255(lock )-255(will )-255(be )-255(allowed )-255(to )-255(be )-255(cr)19(eated. )-505(Successive)]TJ -5.536 -1.2 Td [(attempts )-95(to )-95(cr)18(eate )-95(write )-95(locks )-95(will )-95(fail, )-95(serving )-95(as )-95(an )-95(indication )-95(to )-95(successive )-95(copies )-95(of)]TJ T* [(the daemon that another instance is alr)18(eady r)8(unning.)]TJ 1.8 -1.2 Td [(File )-68(and )-68(r)18(ecor)]TJ 0.318 Tc 6.169 0 Td (dl)Tj 0 Tc 1.22 0 Td [(ocking )-68(pr)18(ovides )-68(a )-68(convenient )-68(mutual-exclusion )-68(mechanism.)-568(If )-68(the)]TJ -9.189 -1.2 Td [(daemon )-52(obtains )-52(a )-52(write-lock )-52(on )-52(an )-52(entir)]TJ 0.3021 Tc 17.895 0 Td (e\336)Tj 0 Tc 1.386 0 Td [(le, )-52(the )-52(lock )-52(will )-52(be )-52(r)18(emoved )-52(automatically )-52(if)]TJ -19.281 -1.2 Td [(the )-27(daemon )-27(exits.)-527(This )-27(simpli\336es )-27(r)19(ecovery)]TJ 0.2768 Tc 18.837 0 Td (,e)Tj 0 Tc 1.006 0 Td [(liminating )-27(the )-27(need )-27(for )-27(us )-27(to )-27(clean )-27(up )-27(fr)20(om)]TJ -19.843 -1.2 Td [(the pr)18(evious instance of the daemon.)]TJ /TT1 1 Tf -3.6 -2.64 Td (Example)Tj /T1_0 1 Tf 3.6 -2.16 Td [(The )-21(function )-21(shown )-21(in )-21(Figur)]TJ 0.2706 Tc 12.687 0 Td (e1)Tj 0 Tc 1.25 0 Td [(3.6 )-21(illustrates )-21(the )-21(use )-21(of )-21(\336le )-21(and )-21(r)20(ecor)]TJ 0.2707 Tc 16.558 0 Td (dl)Tj 0 Tc 1.173 0 Td [(ocking )-21(to )-21(ensur)19(e)]TJ -31.668 -1.2 Td [(that only one copy of a daemon is r)8(unning.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2646.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 255.0684 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD (#define LOCKFILE "/var/run/daemon.pid")Tj 0 -1.189 TD (#define LOCKMODE \(S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH\))Tj 0 -1.902 TD (extern int lockfile\(int\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46967 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(13.4)]TJ 37.311 0 Td [(Err)18(or )-250(Logging)]TJ /T1_1 1 Tf 8.522 0 Td (469)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(We )-184(c)]TJ 0 Tc 2.081 0 Td (an also use)Tj /TT0 1 Tf 5.099 0 Td (ps)Tj /T1_0 1 Tf 1.45 0 Td [(to verify that no active pr)18(ocess exists with ID 13799.)-500(This means that)]TJ -8.631 -1.2 Td [(our )-84(daemon )-84(is )-84(in )-84(an )-84(orphaned )-84(pr)18(ocess )-84(gr)16(oup )-84(\(Section )-84(9.10\) )-84(and )-84(is )-84(not )-84(a )-84(session )-84(leader)]TJ 0 -1.2 TD [(and, )-170(ther)18(efor)18(e, )-170(has )-170(no )-170(chance )-170(of )-170(allocating )-170(a )-170(contr)20(olling )-170(terminal.)-670(This )-170(is )-170(a )-170(r)18(esult )-170(of)]TJ 0 -1.2 Td [(performing )-60(the )-60(second)]TJ /TT0 1 Tf 10.463 0 Td (fork)Tj /T1_0 1 Tf 2.71 0 Td [(in )-60(the)]TJ /TT0 1 Tf 2.879 0 Td (daemonize)Tj /T1_0 1 Tf 5.71 0 Td [(function. )-310(W)]TJ 0.3096 Tc 5.425 0 Td (ec)Tj 0 Tc 1.233 0 Td [(an )-60(see )-60(that )-60(our )-60(daemon)]TJ -28.419 -1.2 Td [(has been initialized corr)18(ectly)111(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 6210.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9986 0 0 11.9986 93.5888 583.7299 Tm [(13.4 )-776(Err)20(or )-278(Log)10(ging)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 559.7328 Tm [(One )-105(pr)18(oblem )-105(a )-105(daemon )-105(has )-105(is )-105(how )-105(to )-105(handle )-105(err)18(or )-105(messages.)-605(It )-105(can\325t )-105(simply )-105(write )-105(to)]TJ T* (standar)Tj 0.4212 Tc 3.32 0 Td (de)Tj 0 Tc 1.511 0 Td [(rr)18(or)]TJ 0.4212 Tc 1.639 0 Td (,s)Tj 0 Tc 1.095 0 Td [(ince )-171(it )-171(shouldn\325t )-171(have )-171(a )-171(contr)17(olling )-171(terminal.)]TJ -0.092 Tc 21.309 0 Td [(We )-355(d)]TJ 0 Tc 2.419 0 Td [(on\325t )-171(want )-171(all )-171(the)]TJ -31.294 -1.2 Td [(daemons )-244(writing )-244(to )-244(the )-244(console )-244(device, )-244(because )-244(on )-244(many )-244(workstations )-244(the )-244(console)]TJ T* [(device )-158(r)8(uns )-158(a )-158(windowing )-158(system.)]TJ -0.092 Tc 16.122 0 Td [(We )-342(a)]TJ 0 Tc 2.295 0 Td [(lso )-158(don\325t )-158(want )-158(each )-158(daemon )-158(writing )-158(its )-158(own)]TJ -18.417 -1.2 Td [(err)18(or )-121(messages )-121(into )-121(a )-121(separate )-121(\336le.)-621(It )-121(would )-121(be )-121(a )-121(headache )-121(for )-121(anyone )-121(administering)]TJ T* [(the )-93(system )-93(to )-93(keep )-93(up )-93(with )-93(which )-93(daemon )-93(writes )-93(to )-93(which )-93(log )-93(\336le )-93(and )-93(to )-93(check )-93(these)]TJ T* [(\336les on a r)18(egular basis.)]TJ 0.25 Tc 10.57 0 Td (Ac)Tj 0 Tc 1.472 0 Td [(entral daemon err)18(or)18(-logging facility is r)18(equir)18(ed.)]TJ 7.999 0 0 7.999 183.5782 465.7441 Tm [(The )-2(BSD)]TJ /TT0 1 Tf 4.088 0 Td (syslog)Tj /T1_0 1 Tf 3.852 0 Td [(facility )-2(was )-2(developed )-2(at )-2(Berkeley )-2(and )-2(used )-2(widely )-2(in )-2(4.2BSD.)-502(Most )-2(systems)]TJ -7.94 -1.25 Td [(derived )-270(fr)18(om )-270(BSD )-270(support)]TJ /TT0 1 Tf 13.058 0 Td (syslog)Tj /T1_0 1 Tf 0.7704 Tc (.U)Tj 0 Tc 5.398 0 Td [(ntil )-270(SVR4, )-270(System )-270(V )-270(never )-270(had )-270(a )-270(central )-270(daemon)]TJ -18.456 -1.25 Td [(logging )-272(facility)]TJ 0.7725 Tc 6.821 0 Td (.T)Tj 0 Tc 1.635 0 Td (he)Tj /TT0 1 Tf 1.583 0 Td (syslog)Tj /T1_0 1 Tf 4.123 0 Td [(function )-272(is )-272(included )-272(in )-272(the )-272(XSI )-272(option )-272(in )-272(the )-272(Single )-272(UNIX)]TJ -14.163 -1.25 Td (Speci\336cation.)Tj 9.9988 0 0 9.9988 147.5829 413.7503 Tm [(The )-129(BSD)]TJ /TT0 1 Tf 4.343 0 Td (syslog)Tj /T1_0 1 Tf 3.979 0 Td [(facility )-129(has )-129(been )-129(widely )-129(used )-129(since )-129(4.2BSD.)-629(Most )-129(daemons )-129(use)]TJ -10.122 -1.2 Td (this facility)Tj 0.5 Tc 4.794 0 Td (.F)Tj 0 Tc 1.306 0 Td (igur)Tj 0.25 Tc 1.827 0 Td (e1)Tj 0 Tc 1.229 0 Td [(3.2 illustrates its str)8(uctur)18(e.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2058 2502 504 216 re S Q BT /TT0 1 Tf 7.9986 0 0 7.9986 211.7619 259.1933 Tm (/dev/log)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2994 2502 504 216 re S Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 315.9002 264.1766 Tm (UDP)Tj -0.731 -1.25 Td (port 514)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 3930 2502 504 216 re S Q BT /TT0 1 Tf 7.9976 0 0 7.9976 396.481 259.1622 Tm (/dev/klog)Tj ET q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 222.576 271.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 2225.76 2718 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2226.25 2790.25 cm 0 0 m 0 288 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 1973.76 3078 504 288 re S Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 214.8946 325.3229 Tm (user)Tj -0.697 -1.25 Td [(pr)18(ocess)]TJ /TT0 1 Tf -2.202 -2.075 Td (syslog)Tj ET q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 324.6 307.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3246 3078 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 2718.25 cm 0 0 m 0 288 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2994 3078 504 288 re S Q BT /TT0 1 Tf 7.9966 0 0 7.9966 307.6707 320.3054 Tm (syslogd)Tj ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 312 307.8 cm 0 0 m -5.616 -4.824 l -7.2 -1.584 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3120 3078 cm 0 0 m -56.16 -48.24 l -72 -15.84 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2394.25 2718.25 cm 0 0 m 662 328 l S Q Q q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 337.2 307.8 cm 0 0 m 7.344 -1.296 l 5.904 -4.608 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3372 3078 cm 0 0 m 73.44 -12.96 l 59.04 -46.08 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4182.25 2718.25 cm 0 0 m -745 330 l S Q Q q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 418.2 250.2 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 4182 2502 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4182.25 2430.25 cm 0 0 m 0 -216 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 3930 1962 504 252 re S Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 406.8278 211.9128 Tm (kernel)Tj -0.018 Tc -0.423 -1.25 Td (ro)Tj 0 Tc 0.923 0 Td (utines)Tj /TT0 1 Tf -1.159 4 Td (log)Tj ET q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 324.6 351 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 3246 3510 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 3366.25 cm 0 0 m 0 72 l S Q Q BT /T1_0 1 Tf 7.9947 0 0 7.9947 295.7208 373.3935 Tm (written to \336le or)Tj -0.981 -1.25 Td (to logged-in users or)Tj 0.206 -1.25 Td (sent to another host)Tj -10.477 -13.875 Td (UNIX domain)Tj -0.51 -1.25 Td (datagram socket)Tj 11.764 1.25 Td (Internet domain)Tj -0.064 -1.25 Td (datagram socket)Tj ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 1818.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 1890.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 1962.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 2034.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 2106.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 2178.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 2250.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 2322.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 2394.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 2466.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 2538.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 2610.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 2682.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 2754.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 2826.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1985.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2056.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2127.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2198.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2269.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2340.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2411.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2482.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2553.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2624.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2695.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2766.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2837.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2908.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2979.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3050.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3121.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3192.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3263.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3334.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3406.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3476.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3547.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3619.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3689.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3761.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3832.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3902.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3974.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4044.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4116.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4187.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4257.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4329.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4400.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 2862.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4542.25 2862.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 2790.25 cm 0 0 m 0 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 2718.25 cm 0 0 m 0 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 2646.25 cm 0 0 m 0 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 2574.25 cm 0 0 m 0 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 2502.25 cm 0 0 m 0 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 2430.25 cm 0 0 m 0 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 2358.25 cm 0 0 m 0 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 2286.25 cm 0 0 m 0 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 2214.25 cm 0 0 m 0 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 2142.25 cm 0 0 m 0 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 2070.25 cm 0 0 m 0 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 1998.25 cm 0 0 m 0 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 1926.25 cm 0 0 m 0 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 1854.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4506.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4436.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4365.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4293.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4223.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4152.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4080.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4010.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3938.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3868.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3797.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3725.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3655.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3583.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3512.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3442.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3370.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3299.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3228.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3157.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3086.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3015.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2944.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2873.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2802.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2731.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2660.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2589.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2518.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2447.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2376.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2305.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2234.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2163.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2092.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2021.25 1818.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1950.25 1818.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9942 0 0 7.9942 193.2608 184.9068 Tm (kernel)Tj ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 324.6 228.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 3246 2286 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 2214.25 cm 0 0 m 0 -468 l S Q Q BT /T1_0 1 Tf 7.9938 0 0 7.9938 294.6061 167.7091 Tm (TCP/IP network)Tj /T1_1 1 Tf -4.61 -2.755 Td (Figure 13.2)Tj /T1_0 1 Tf 5.695 0 Td (The BSD)Tj /TT0 1 Tf 4.084 0 Td (syslog)Tj /T1_0 1 Tf 3.85 0 Td (facility)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46968 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (466)Tj /T1_1 1 Tf 3.5 0 Td [(Daemon )-250(Pr)18(ocesses )]TJ 38.741 0 Td [(Chapter)-500(13)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(13.3 )-776(Coding)-556(Rules)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(Some )-104(basic )-104(r)8(ules )-104(to )-104(coding )-104(a )-104(daemon )-104(pr)18(event )-104(unwanted )-104(interactions )-104(fr)19(om )-104(happening.)]TJ -0.092 Tc 0 -1.2 TD [(We )-205(s)]TJ 0 Tc 2.082 0 Td [(tate )-21(these )-21(r)8(ules )-21(her)]TJ 0.2707 Tc 8.355 0 Td (ea)Tj 0 Tc 1.25 0 Td [(nd )-21(then )-21(show )-21(a )-21(function,)]TJ /TT1 1 Tf 11.358 0 Td (daemonize)Tj /T1_1 1 Tf 0.2707 Tc (,t)Tj 0 Tc 6.247 0 Td [(hat )-21(implements )-21(them.)]TJ -27.492 -2.04 Td [(1. )-633(Call)]TJ /TT1 1 Tf 3.716 0 Td (umask)Tj /T1_1 1 Tf 3.292 0 Td [(to )-42(set )-42(the )-42(\336le )-42(mode )-42(cr)17(eation )-42(mask )-42(to )-42(a )-42(known )-42(value, )-42(usually )-42(0.)-544(The)]TJ -5.375 -1.2 Td [(inherited )-112(\336le )-112(mode )-112(cr)18(eation )-112(mask )-112(could )-112(be )-112(set )-112(to )-112(deny )-112(certain )-112(permissions.)-614(If)]TJ T* [(the )-140(daemon )-140(pr)18(ocess )-140(cr)18(eates )-140(\336les, )-140(it )-140(may )-140(want )-140(to )-140(set )-140(speci\336c )-140(permissions.)-642(For)]TJ T* [(example, )-26(if )-26(it )-26(cr)18(eates )-26(\336les )-26(with )-26(gr)19(oup-r)18(ead )-26(and )-26(gr)18(oup-write )-26(enabled, )-26(a )-26(\336le )-26(mode)]TJ T* [(cr)18(eation )-84(mask )-84(that )-84(turns )-84(of)]TJ 0.3337 Tc 12.167 0 Td (fe)Tj 0 Tc 1.146 0 Td [(ither )-84(of )-84(these )-84(permissions )-84(would )-84(undo )-84(its )-84(ef)20(forts.)]TJ -13.313 -1.2 Td [(On )-30(the )-30(other )-30(hand, )-30(if )-30(the )-30(daemon )-30(calls )-30(library )-30(functions )-30(that )-30(r)19(esult )-30(in )-30(\336les )-30(being)]TJ T* [(cr)18(eated, )-154(then )-154(it )-154(might )-154(make )-154(sense )-154(to )-154(set )-154(the )-154(\336le )-154(mode )-154(cr)18(eate )-154(mask )-154(to )-154(a )-154(mor)14(e)]TJ -0.018 Tc 0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(strictive )-140(value )-140(\(such )-140(as )-140(007\), )-140(since )-140(the )-140(library )-140(functions )-140(might )-140(not )-140(allow )-140(the)]TJ -0.856 -1.2 Td [(caller to specify the permissions thr)18(ough an explicit ar)18(gument.)]TJ -1.633 -1.6 Td [(2. )-633(Call)]TJ /TT1 1 Tf 3.869 0 Td (fork)Tj /T1_1 1 Tf 2.845 0 Td [(and )-195(have )-195(the )-195(par)17(ent)]TJ /TT1 1 Tf 9.852 0 Td (exit)Tj /T1_1 1 Tf 0.6952 Tc (.T)Tj 0 Tc 3.958 0 Td [(his )-195(does )-195(several )-195(things.)-696(First, )-195(if )-195(the)]TJ -18.891 -1.2 Td [(daemon )-150(was )-150(started )-150(as )-150(a )-150(simple )-150(shell )-150(command, )-150(having )-150(the )-150(par)18(ent )-150(terminate)]TJ T* [(makes )-68(the )-68(shell )-68(think )-68(that )-68(the )-68(command )-68(is )-68(done.)-565(Second, )-68(the )-68(child )-68(inherits )-68(the)]TJ T* [(pr)18(ocess )-77(gr)18(oup )-77(ID )-77(of )-77(the )-77(par)18(ent )-77(but )-77(gets )-77(a )-77(new )-77(pr)18(ocess )-77(ID, )-77(so )-77(we\325r)]TJ 0.3272 Tc 29.73 0 Td (eg)Tj 0 Tc 1.362 0 Td (uaranteed)Tj -31.092 -1.2 Td [(that )-58(the )-58(child )-58(is )-58(not )-58(a )-58(pr)18(ocess )-58(gr)18(oup )-58(leader)]TJ 0.558 Tc 19.132 0 Td (.T)Tj 0 Tc 1.421 0 Td [(his )-58(is )-58(a )-58(pr)18(er)18(equisite )-58(for )-58(the )-58(call )-58(to)]TJ /TT1 1 Tf -20.553 -1.2 Td (setsid)Tj /T1_1 1 Tf 3.85 0 Td (that is done next.)Tj -5.483 -1.6 Td [(3. )-633(Call)]TJ /TT1 1 Tf 3.718 0 Td (setsid)Tj /T1_1 1 Tf 3.894 0 Td [(to )-44(cr)18(eate )-44(a )-44(new )-44(session.)-544(The )-44(thr)17(ee )-44(steps )-44(listed )-44(in )-44(Section )-44(9.5 )-44(occur)74(.)]TJ -5.979 -1.2 Td [(The )-33(pr)18(ocess )-33(\(a\) )-33(becomes )-33(the )-33(leader )-33(of )-33(a )-33(new )-33(session, )-33(\(b\) )-33(becomes )-33(the )-33(leader )-33(of )-33(a)]TJ T* [(new pr)18(ocess gr)18(oup, and \(c\) is disassociated fr)18(om its contr)18(olling terminal.)]TJ 7.9995 0 0 7.9995 201.5874 380.5772 Tm [(Under )-233(System )-233(V\320based )-233(systems, )-233(some )-233(people )-233(r)19(ecommend )-233(calling)]TJ /TT1 1 Tf 31.024 0 Td (fork)Tj /T1_1 1 Tf 2.883 0 Td [(again )-233(at )-233(this)]TJ -33.907 -1.25 Td [(point, )-102(terminating )-102(the )-102(par)18(ent, )-102(and )-102(continuing )-102(the )-102(daemon )-102(in )-102(the )-102(child.)-602(This )-102(guarantees)]TJ 0 -1.25 TD [(that )-134(the )-134(daemon )-134(is )-134(not )-134(a )-134(session )-134(leader)]TJ 0.3844 Tc 17.933 0 Td (,w)Tj 0 Tc 1.468 0 Td [(hich )-134(pr)18(events )-134(it )-134(fr)18(om )-134(acquiring )-134(a )-134(contr)16(olling)]TJ -19.402 -1.25 Td [(terminal )-261(under )-261(the )-261(System )-261(V )-261(r)8(ules )-261(\(Section )-261(9.6\).)-761(Alternatively)111(,)-511(to)-511(avoid )-261(acquiring )-261(a)]TJ -0 -1.25 Td [(contr)18(olling terminal, be sur)18(e)-250(to)-250(specify)]TJ /TT1 1 Tf 17.244 0 Td (O_NOCTTY)Tj /T1_1 1 Tf 5.05 0 Td (whenever opening a terminal device.)Tj 9.9994 0 0 9.9994 147.5901 318.5809 Tm [(4. )-633(Change)-643(the )-393(curr)18(ent )-393(working )-393(dir)18(ectory )-393(to )-393(the )-393(r)18(oot )-393(dir)16(ectory)]TJ 0.8933 Tc 30.533 0 Td (.T)Tj 0 Tc 1.756 0 Td [(he )-393(curr)18(ent)]TJ -30.657 -1.2 Td [(working )-38(dir)18(ectory )-38(inherited )-38(fr)18(om )-38(the )-38(par)20(ent )-38(could )-38(be )-38(on )-38(a )-38(mounted )-38(\336le )-38(system.)]TJ 0 -1.2 TD [(Since )-70(daemons )-70(normally )-70(exist )-70(until )-70(the )-70(system )-70(is )-70(r)18(ebooted, )-70(if )-70(the )-70(daemon )-70(stays)]TJ T* (on a mounted \336le system, that \336le system cannot be unmounted.)Tj 0 -1.8 TD (Alternatively)Tj 0.3681 Tc 5.748 0 Td (,s)Tj 0 Tc 1.042 0 Td [(ome )-118(daemons )-118(might )-118(change )-118(the )-118(curr)18(ent )-118(working )-118(dir)18(ectory )-118(to )-118(a)]TJ -6.79 -1.2 Td [(speci\336c )-96(location )-96(wher)]TJ 0.3463 Tc 9.779 0 Td (et)Tj 0 Tc 1.151 0 Td [(hey )-96(will )-96(do )-96(all )-96(their )-96(work.)-596(For )-96(example, )-96(a )-96(line )-96(printer)]TJ -10.93 -1.2 Td [(spooling daemon might change its working dir)18(ectory to its spool dir)18(ectory)111(.)]TJ -1.633 -1.6 Td [(5. )-633(Unneeded)-440(\336le )-190(descriptors )-190(should )-190(be )-190(closed.)-690(This )-190(pr)18(events )-190(the )-190(daemon )-190(fr)17(om)]TJ 1.633 -1.2 Td [(holding )-64(open )-64(any )-64(descriptors )-64(that )-64(it )-64(may )-64(have )-64(inherited )-64(fr)18(om )-64(its )-64(par)22(ent )-63(\(which)]TJ 0 -1.2 TD [(could )-156(be )-156(a )-156(shell )-156(or )-156(some )-156(other )-156(pr)20(ocess\). )-406(W)]TJ 0.4057 Tc 19.977 0 Td (ec)Tj 0 Tc 1.329 0 Td [(an )-156(use )-156(our)]TJ /TT1 1 Tf 5.349 0 Td (open_max)Tj /T1_1 1 Tf 5.206 0 Td (function)Tj -31.86 -1.2 Td (\(Figur)Tj 0.2979 Tc 2.716 0 Td (e2)Tj 0 Tc 1.277 0 Td [(.17\) )-48(or )-48(the)]TJ /TT1 1 Tf 4.805 0 Td (getrlimit)Tj /T1_1 1 Tf 5.698 0 Td [(function )-48(\(Section )-48(7.1)55(1\) )-48(to )-48(determine )-48(the )-48(highest)]TJ -14.495 -1.2 Td (descriptor and close all descriptors up to that value.)Tj -1.633 -1.6 Td [(6. )-633(Some)-483(daemons )-233(open )-233(\336le )-233(descriptors )-233(0, )-233(1, )-233(and )-233(2 )-233(to)]TJ /TT1 1 Tf 26.008 0 Td (/dev/null)Tj /T1_1 1 Tf 5.883 0 Td [(so )-233(that )-233(any)]TJ -30.258 -1.2 Td [(library )-24(r)18(outines )-24(that )-24(try )-24(to )-24(r)18(ead )-24(fr)18(om )-24(standar)]TJ 0.2739 Tc 19.836 0 Td (di)Tj 0 Tc 1.176 0 Td [(nput )-24(or )-24(write )-24(to )-24(standar)]TJ 0.2739 Tc 10.666 0 Td (do)Tj 0 Tc 1.431 0 Td (utput)Tj -33.108 -1.2 Td [(or )-43(standar)]TJ 0.2935 Tc 4.554 0 Td (de)Tj 0 Tc 1.384 0 Td [(rr)18(or )-43(will )-43(have )-43(no )-43(ef)16(fect. )-294(Since)-293(the )-44(daemon )-44(is )-44(not )-44(associated )-44(with )-44(a)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46969 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (13)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(Daemon )-280(Pr)15(ocesses)]TJ /TT0 1 Tf 12 0 0 12 93.6 434.4 Tm [(13.1 )-776(Intr)20(oduction)]TJ /T1_2 1 Tf 10 0 0 10 129.6 410.4 Tm [(Daemons )-3(ar)]TJ 0.2534 Tc 5.318 0 Td (ep)Tj -0.018 Tc 1.333 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cesses )-3(that )-3(live )-3(for )-3(a )-3(long )-3(time.)-503(They )-3(ar)]TJ 0.2534 Tc 17.396 0 Td (eo)Tj 0 Tc 1.278 0 Td [(ften )-3(started )-3(when )-3(the )-3(system)]TJ -26.249 -1.2 Td [(is )-53(bootstrapped )-53(and )-53(terminate )-53(only )-53(when )-53(the )-53(system )-53(is )-53(shut )-53(down.)-553(Because )-53(they )-53(don\325t)]TJ 0 -1.2 TD [(have )-157(a )-157(contr)18(olling )-157(terminal, )-157(we )-157(say )-157(that )-157(they )-157(r)8(un )-157(in )-157(the )-157(backgr)22(ound. )-407(UNIX)-406(systems)]TJ T* [(have numer)18(ous daemons that perform day-to-day activities.)]TJ 1.8 -1.2 Td [(In )-158(this )-158(chapter)75(,)-408(we)-408(l)1(ook )-158(at )-158(the )-158(pr)18(ocess )-158(str)10(uctur)18(e)-408(of)-408(d)1(aemons )-157(and )-157(explor)]TJ 0.4075 Tc 33.072 0 Td (eh)Tj 0 Tc 1.469 0 Td [(ow )-157(to)]TJ -36.341 -1.2 Td [(write )-81(a )-81(daemon.)-581(Since )-81(a )-81(daemon )-81(does )-81(not )-81(have )-81(a )-81(contr)18(olling )-81(terminal, )-81(we )-81(need )-81(to )-81(see)]TJ T* [(how a daemon can r)18(eport err)18(or conditions when something goes wr)18(ong.)]TJ 8 0 0 8 183.6007 318.4 Tm [(For )-173(a )-173(discussion )-173(of )-173(the )-173(historical )-173(backgr)19(ound )-173(of )-173(the )-173(term)]TJ /T1_3 1 Tf 26.898 0 Td (daemon)Tj /T1_2 1 Tf 3.534 0 Td [(as )-173(it )-173(applies )-173(to )-173(computer)]TJ -30.432 -1.25 Td (systems, see Raymond)Tj 10.244 0.04 Td ([)Tj 0.333 -0.04 Td (1996)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td (.)Tj /TT0 1 Tf 12 0 0 12 93.6006 266.4 Tm [(13.2 )-776(Daemon)-556(Characteristics)]TJ /T1_2 1 Tf 10 0 0 10 129.6006 242.4 Tm [(Let\325s )-161(look )-161(at )-161(some )-161(common )-161(system )-161(daemons )-161(and )-161(how )-161(they )-161(r)18(elate )-161(to )-161(the )-161(concepts )-161(of)]TJ T* [(pr)18(ocess )-28(gr)18(oups, )-28(contr)18(olling )-28(terminals, )-28(and )-28(sessions )-28(that )-28(we )-28(described )-28(in )-28(Chapter )-28(9.)-527(The)]TJ /TT1 1 Tf 0 -1.2 Td (ps)Tj /T1_2 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.867 -0.04 Td [(command )-284(prints )-284(the )-284(status )-284(of )-284(various )-284(pr)18(ocesses )-284(in )-284(the )-284(system.)-780(Ther)]TJ 0.5337 Tc 32.698 0 Td (ea)Tj -0.018 Tc 1.513 0 Td [(re )-320(a)]TJ 0 Tc -37.11 -1.2 Td (multitude of options)Tj 0.0833 Tc 9.191 0 Td (\321c)Tj 0 Tc 1.527 0 Td (onsult your system\325s manual for all the details.)Tj -0.092 Tc 21.19 0 Td (We)Tj 0 Tc 1.387 0 Td (\325ll execute)Tj /TT1 1 Tf 9 0 0 9 147.6008 189.7 Tm (ps -axj)Tj /T1_2 1 Tf 10 0 0 10 129.6008 171.7 Tm [(under )-113(BSD)]TJ 4.943 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-112(systems )-112(to )-112(see )-112(the )-112(information )-112(we )-112(need )-112(for )-112(this )-112(discussion.)-617(The)]TJ /TT1 1 Tf 32.524 0 Td (-a)Tj /T1_2 1 Tf -37.8 -1.2 Td [(option )-168(shows )-168(the )-168(status )-168(of )-168(pr)18(ocesses )-168(owned )-168(by )-168(others, )-168(and)]TJ /TT1 1 Tf 27.804 0 Td (-x)Tj /T1_2 1 Tf 1.618 0 Td [(shows )-168(pr)18(ocesses )-168(that)]TJ -29.422 -1.2 Td [(don\325t )-100(have )-100(a )-100(contr)19(olling )-100(terminal.)-599(The)]TJ /TT1 1 Tf 17.821 0 Td (-j)Tj /T1_2 1 Tf 1.55 0 Td [(option )-100(displays )-100(the )-100(job-r)18(elated )-100(information:)]TJ -19.37 -1.2 Td [(the )-94(session )-94(ID, )-94(pr)17(ocess )-95(gr)18(oup )-95(ID, )-95(contr)18(olling )-95(terminal, )-95(and )-95(terminal )-95(pr)18(ocess )-95(gr)18(oup )-95(ID.)]TJ /T1_4 1 Tf 9 0 0 9 506.1009 114 Tm (463)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46970 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (462)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 8.9995 0 0 8.9995 172.5896 670.2598 Tm (Thread A)Tj 19.444 0 Td (Thread B)Tj /TT0 1 Tf -22.222 -1.189 Td [(lseek\(fd, 300, SEEK_SET\);)-4444(lseek\(fd, 700, SEEK_SET\);)]TJ 0 -1.189 TD (read\(fd, buf1, 100\);)Tj 19.444 0 Td (read\(fd, buf2, 100\);)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 628.7225 Tm [(If )-101(thr)18(ead )-101(A )-101(executes )-101(the )-101(call )-101(to)]TJ /TT0 1 Tf 14.319 0 Td (lseek)Tj /T1_1 1 Tf 3.351 0 Td [(and )-101(then )-101(thr)18(ead )-101(B )-101(calls)]TJ /TT0 1 Tf 10.855 0 Td (lseek)Tj /T1_1 1 Tf 3.351 0 Td (befor)Tj 0.3515 Tc 2.288 0 Td (et)Tj 0 Tc 1.156 0 Td [(hr)18(ead )-101(A)]TJ -35.321 -1.2 Td (calls)Tj /TT0 1 Tf 2.325 0 Td (read)Tj /T1_1 1 Tf 0.3754 Tc (,t)Tj 0 Tc 3.351 0 Td [(hen )-125(both )-125(thr)18(eads )-125(will )-125(end )-125(up )-125(r)16(eading )-125(the )-125(same )-125(r)17(ecor)18(d. )-375(Clearly)]TJ 0.3753 Tc 28.799 0 Td (,t)Tj 0 Tc 0.951 0 Td [(his )-125(isn\325t)]TJ -35.427 -1.2 Td (what was intended.)Tj -0.092 Tc 1.8 -1.2 Td [(To )-275(s)]TJ 0 Tc 1.832 0 Td [(olve )-91(this )-91(pr)18(oblem, )-91(we )-91(can )-91(use)]TJ /TT0 1 Tf 13.873 0 Td (pread)Tj /T1_1 1 Tf 3.341 0 Td [(to )-91(make )-91(the )-91(setting )-91(of )-91(the )-91(of)20(fset )-91(and )-91(the)]TJ -0.018 Tc -20.845 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (ading of the data one atomic operation.)Tj /T1_0 1 Tf 8.9995 0 0 8.9995 172.5906 561.8863 Tm (Thread A)Tj 19.444 0 Td (Thread B)Tj /TT0 1 Tf -22.222 -1.189 Td [(pread\(fd, buf1, 100, 300\);)-3844(pread\(fd, buf2, 100, 700\);)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5932 531.0483 Tm (Using)Tj /TT0 1 Tf 2.884 0 Td (pread)Tj /T1_1 1 Tf [(,)-253(we)-253(c)1(an )-3(ensur)]TJ 0.2526 Tc 9.312 0 Td (et)Tj 0 Tc 1.058 0 Td [(hat )-2(thr)18(ead )-2(A )-2(r)18(eads )-2(the )-2(r)16(ecor)18(d)-252(at)-252(o)]TJ -0.018 Tc 14.813 0 Td (ff)Tj 0 Tc 0.648 0 Td [(set )-2(300, )-2(wher)18(eas )-2(thr)17(ead)]TJ 0.2848 Tc -28.714 -1.2 Td (Br)Tj 0 Tc 1.273 0 Td [(eads )-35(the )-35(r)18(ecor)]TJ 0.2848 Tc 6.194 0 Td (da)Tj 0.2849 Tc 1.396 0 Td (to)Tj -0.018 Tc 1.157 0 Td (ff)Tj 0 Tc 0.648 0 Td [(set )-35(700.)]TJ -0.092 Tc 3.799 0 Td [(We )-219(c)]TJ 0 Tc 2.116 0 Td [(an )-35(use)]TJ /TT0 1 Tf 3.158 0 Td (pwrite)Tj /T1_1 1 Tf 3.885 0 Td [(to )-35(solve )-35(the )-35(pr)18(oblem )-35(of )-35(concurr)19(ent)]TJ -23.625 -1.2 Td [(thr)18(eads writing to the same \336le.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5953 471.0519 Tm [(12.11 )-220(Summar)-10(y)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5931 449.4532 Tm [(Thr)18(eads )-376(pr)18(ovide )-376(an )-376(alternative )-376(model )-376(for )-376(partitioning )-376(concurr)18(ent )-376(tasks )-376(in )-376(UNIX)]TJ 0 -1.2 TD [(systems. )-317(They)-317(pr)18(omote )-67(sharing )-67(among )-67(separate )-67(thr)18(eads )-67(of )-67(contr)18(ol, )-67(but )-67(pr)18(esent )-67(unique)]TJ T* [(synchr)18(onization )-222(pr)18(oblems. )-472(In)-473(this )-222(chapter)74(,)-472(we)-472(l)-1(ooked )-222(at )-222(how )-222(we )-222(can )-222(\336ne-tune )-222(our)]TJ -0 -1.2 Td [(thr)18(eads )-168(and )-168(their )-168(synchr)19(onization )-168(primitives.)]TJ -0.092 Tc 21.329 0 Td [(We )-352(d)]TJ 0 Tc 2.416 0 Td [(iscussed )-168(r)18(eentrancy )-168(with )-168(thr)19(eads.)]TJ -0.092 Tc -23.744 -1.2 Td [(We )-184(a)]TJ 0 Tc 2.137 0 Td [(lso looked at how thr)18(eads interact with some of the pr)18(ocess-oriented system calls.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 129.5927 361.8585 Tm [(Ex)10(er)20(cises)]TJ /T1_0 1 Tf 8.9995 0 0 8.9995 129.5927 340.8597 Tm (12.1)Tj /T1_1 1 Tf 3.065 0 Td [(Run )-155(the )-155(pr)18(ogram )-155(in )-155(Figur)]TJ 0.4053 Tc 11.975 0 Td (e1)Tj 0 Tc 1.384 0 Td [(2.17 )-155(on )-155(a )-155(Linux )-155(system, )-155(but )-155(r)17(edir)18(ect )-155(the )-155(output )-155(into )-155(a )-155(\336le.)]TJ -13.36 -1.222 Td [(Explain the r)18(esults.)]TJ /T1_0 1 Tf -3.065 -1.667 Td (12.2)Tj /T1_1 1 Tf 3.065 0 Td (Implement)Tj /TT0 1 Tf 5.796 0 Td (putenv_r)Tj /T1_1 1 Tf 0.9352 Tc (,ar)Tj 0 Tc 7.797 0 Td [(eentrant )-685(version )-685(of)]TJ /TT0 1 Tf 10.636 0 Td (putenv)Tj /T1_1 1 Tf 1.1852 Tc (.M)Tj 0 Tc 5.981 0 Td [(ake )-685(sur)]TJ 0.9352 Tc 3.874 0 Td (et)Tj 0 Tc 1.74 0 Td [(hat )-685(your)]TJ -35.825 -1.222 Td [(implementation is async-signal safe as well as thr)18(ead-safe.)]TJ /T1_0 1 Tf -3.065 -1.667 Td (12.3)Tj /T1_1 1 Tf 3.065 0 Td [(Can )-101(you )-101(make )-101(the)]TJ /TT0 1 Tf 8.704 0 Td (getenv)Tj /T1_1 1 Tf 3.951 0 Td [(function )-101(shown )-101(in )-101(Figur)]TJ 0.3508 Tc 10.983 0 Td (e1)Tj 0 Tc 1.33 0 Td [(2.13 )-101(async-signal )-101(safe )-101(by )-101(blocking)]TJ -24.968 -1.222 Td [(signals )-198(at )-198(the )-198(beginning )-198(of )-198(the )-198(function )-198(and )-198(r)17(estoring )-198(the )-198(pr)18(evious )-198(signal )-198(mask )-198(befor)17(e)]TJ -0.018 Tc 0 -1.222 TD (re)Tj 0 Tc 0.856 0 Td [(turning? )-250(Explain.)]TJ /T1_0 1 Tf -3.921 -1.667 Td (12.4)Tj /T1_1 1 Tf -0.074 Tc 3.065 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-2(a )-2(pr)18(ogram )-2(to )-2(exer)18(cise )-2(the )-2(version )-2(of)]TJ /TT0 1 Tf 17.38 0 Td (getenv)Tj /T1_1 1 Tf 3.852 0 Td [(fr)18(om )-2(Figur)]TJ 0.2521 Tc 4.774 0 Td (e1)Tj 0 Tc 1.231 0 Td [(2.13. )-252(Compile)-252(and )-2(r)8(un )-2(the)]TJ -28.558 -1.222 Td [(pr)18(ogram on Fr)18(eeBSD. )-250(What)-250(happens? )-250(Explain.)]TJ /T1_0 1 Tf -3.065 -1.667 Td (12.5)Tj /T1_1 1 Tf 3.065 0 Td [(Given )-128(that )-128(you )-128(can )-128(cr)18(eate )-128(multiple )-128(thr)19(eads )-128(to )-128(perform )-128(dif)18(fer)18(ent )-128(tasks )-128(within )-128(a )-128(pr)18(ogram,)]TJ 0 -1.222 Td (explain why you might still need to use)Tj /TT0 1 Tf 17.727 0 Td (fork)Tj /T1_1 1 Tf (.)Tj /T1_0 1 Tf -20.792 -1.667 Td (12.6)Tj /T1_1 1 Tf 3.065 0 Td [(Reimplement )-501(the )-501(pr)18(ogram )-501(in )-501(Figur)]TJ 0.751 Tc 17.467 0 Td (e1)Tj 0 Tc 1.73 0 Td [(0.29 )-501(to )-501(make )-501(it )-501(thr)18(ead-safe )-501(without )-501(using)]TJ /TT0 1 Tf -19.197 -1.222 Td (nanosleep)Tj /T1_1 1 Tf 5.65 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (clock_nanosleep)Tj /T1_1 1 Tf (.)Tj /T1_0 1 Tf -9.906 -1.667 Td (12.7)Tj /T1_1 1 Tf 3.065 0 Td [(After )-42(calling)]TJ /TT0 1 Tf 5.85 0 Td (fork)Tj /T1_1 1 Tf 0.2919 Tc (,c)Tj 0 Tc 3.386 0 Td [(ould )-42(we )-42(safely )-42(r)18(einitialize )-42(a )-42(condition )-42(variable )-42(in )-42(the )-42(child )-42(pr)18(ocess )-42(by)]TJ -9.236 -1.222 Td [(\336rst )-612(destr)18(oying )-612(the )-612(condition )-612(variable )-612(with)]TJ /TT0 1 Tf 22.882 0 Td (pthread_cond_destroy)Tj /T1_1 1 Tf 12.862 0 Td [(and )-612(then)]TJ -35.744 -1.222 Td (initializing it with)Tj /TT0 1 Tf 8.192 0 Td (pthread_cond_init)Tj /T1_1 1 Tf (?)Tj /T1_0 1 Tf -11.257 -1.667 Td (12.8)Tj /T1_1 1 Tf 3.065 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (timeout)Tj /T1_1 1 Tf 4.45 0 Td (function in Figur)Tj 0.25 Tc 7.463 0 Td (e1)Tj 0 Tc 1.229 0 Td (2.8 can be simpli\336ed substantially)Tj 0.5 Tc 14.84 0 Td (.E)Tj 0 Tc 1.361 0 Td [(xplain how)92(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46971 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.10)]TJ 35.825 0 Td [(Thr)18(eads )-250(and )-250(I/O)]TJ /T1_1 1 Tf 10.008 0 Td (461)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(In )-294(Figur)]TJ 0.5436 Tc 3.846 0 Td (e1)Tj 0 Tc 1.523 0 Td [(2.17, )-294(we )-294(de\336ne )-294(two )-294(mutexes,)]TJ /TT0 1 Tf 14.453 0 Td (lock1)Tj /T1_0 1 Tf 3.544 0 Td (and)Tj /TT0 1 Tf 2.237 0 Td (lock2)Tj /T1_0 1 Tf 0.7936 Tc (.T)Tj 0 Tc 4.657 0 Td (he)Tj /T1_2 1 Tf 1.604 0 Td [(pr)18(epar)18(e)]TJ /T1_0 1 Tf 3.508 0 Td (fork)Tj -37.17 -1.2 Td [(handler )-126(acquir)18(es )-126(them )-126(both, )-126(the)]TJ /T1_2 1 Tf 14.913 0 Td (child)Tj /T1_0 1 Tf 2.339 0 Td [(fork )-126(handler )-126(r)18(eleases )-126(them )-126(in )-126(the )-126(context )-126(of )-126(the)]TJ -17.252 -1.2 Td [(child )-176(pr)18(ocess, )-176(and )-176(the)]TJ /T1_2 1 Tf 10.547 0 Td [(par)18(ent)]TJ /T1_0 1 Tf 3.019 0 Td [(fork )-176(handler )-176(r)18(eleases )-176(them )-176(in )-176(the )-176(context )-176(of )-176(the )-176(par)21(ent)]TJ -13.566 -1.2 Td [(pr)18(ocess.)]TJ 1.8 -1.2 Td [(When we r)8(un this pr)18(ogram, we get the following output:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5913 604.2637 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (thread started...)Tj 0 -1.189 TD (parent about to fork...)Tj T* (preparing locks...)Tj T* (child unlocking locks...)Tj 0 -1.189 TD (child returned from fork)Tj 0 -1.189 TD (parent unlocking locks...)Tj T* (parent returned from fork)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5924 511.3693 Tm [(As )-67(we )-67(can )-67(see, )-67(the)]TJ /T1_2 1 Tf 8.646 0 Td [(pr)18(epar)18(e)]TJ /T1_0 1 Tf 3.281 0 Td [(fork )-67(handler )-67(r)8(uns )-67(after)]TJ /TT0 1 Tf 10.568 0 Td (fork)Tj /T1_0 1 Tf 2.717 0 Td [(is )-67(called, )-67(the)]TJ /T1_2 1 Tf 5.92 0 Td (child)Tj /T1_0 1 Tf 2.28 0 Td [(fork )-67(handler)]TJ -0.008 Tc -33.413 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td [(ns )-165(befor)18(e)]TJ /TT0 1 Tf 4.604 0 Td (fork)Tj /T1_0 1 Tf -0.018 Tc 2.816 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-165(in )-165(the )-165(child, )-165(and )-165(the)]TJ /T1_2 1 Tf 12.631 0 Td [(par)18(ent)]TJ /T1_0 1 Tf 3.008 0 Td [(fork )-165(handler )-165(r)8(uns )-165(befor)17(e)]TJ /TT0 1 Tf 11.695 0 Td (fork)Tj /T1_0 1 Tf -0.018 Tc -36.6 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns in the par)18(ent.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4874.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 463.3444 Tm [(Although )-283(the)]TJ /TT0 1 Tf 6.716 0 Td (pthread_atfork)Tj /T1_0 1 Tf 8.933 0 Td [(mechanism )-283(is )-283(intended )-283(to )-283(make )-283(locking )-283(state)]TJ -17.449 -1.2 Td [(consistent )-156(after )-156(a)]TJ /TT0 1 Tf 8.174 0 Td (fork)Tj /T1_0 1 Tf [(,)-406(it)-406(has )-156(several )-156(drawbacks )-156(that )-156(make )-156(it )-156(usable )-156(in )-156(only )-156(limited)]TJ -8.174 -1.2 Td [(cir)18(cumstances:)]TJ 0.883 Tc 1.8 -1.8 Td (\245T)Tj 0 Tc 2.102 0 Td [(her)18(e)-311(is)-311(no)-311(g)1(ood )-61(way )-61(to )-61(r)19(einitialize )-61(the )-61(state )-61(for )-61(mor)]TJ 0.3107 Tc 23.109 0 Td (ec)Tj 0 Tc 1.234 0 Td [(omplex )-61(synchr)18(onization)]TJ -24.955 -1.2 Td (objects such as condition variables and barriers.)Tj 0.883 Tc -1.489 -1.6 Td (\245S)Tj 0 Tc 2.014 0 Td [(ome )-59(implementations )-59(of )-59(err)18(or)18(-checking )-59(mutexes )-59(will )-59(generate )-59(err)18(ors )-59(when )-59(the)]TJ -0.525 -1.2 Td [(child fork handler tries to unlock a mutex that was locked by the par)18(ent.)]TJ 0.883 Tc -1.489 -1.6 Td (\245R)Tj 0 Tc 2.157 0 Td [(ecursive )-22(mutexes )-22(can\325t )-22(be )-22(cleaned )-22(up )-22(in )-22(the )-22(child )-22(fork )-22(handler)]TJ 0.272 Tc 27.537 0 Td (,b)Tj 0 Tc 1.075 0 Td [(ecause )-22(ther)]TJ 0.272 Tc 4.965 0 Td (ei)Tj 0 Tc 1.042 0 Td (s)Tj -35.287 -1.2 Td (no way to determine the number of times one has been locked.)Tj 0.883 Tc -1.489 -1.6 Td (\245I)Tj 0.3655 Tc 1.826 0 Td (fc)Tj 0 Tc 1.143 0 Td [(hild )-115(pr)18(ocesses )-116(ar)]TJ 0.3656 Tc 7.581 0 Td (ea)Tj 0 Tc 1.345 0 Td [(llowed )-116(to )-116(call )-116(only )-116(async-signal )-116(safe )-116(functions, )-116(then )-116(the)]TJ -10.405 -1.2 Td [(child )-137(fork )-137(handler )-137(shouldn\325t )-137(even )-137(be )-137(able )-137(to )-137(clean )-137(up )-137(synchr)13(onization )-137(objects,)]TJ 0 -1.2 TD [(because )-33(none )-33(of )-33(the )-33(functions )-33(that )-33(ar)]TJ 0.2833 Tc 16.378 0 Td (eu)Tj 0 Tc 1.365 0 Td [(sed )-33(to )-33(manipulate )-33(them )-33(ar)]TJ 0.2833 Tc 11.722 0 Td (ea)Tj 0 Tc 1.262 0 Td (sync-signal)Tj -30.728 -1.2 Td [(safe. )-499(The)-500(practical )-249(pr)18(oblem )-249(is )-249(that )-249(a )-249(synchr)18(onization )-249(object )-249(might )-249(be )-249(in )-249(an)]TJ T* [(intermediate )-137(state )-137(when )-137(one )-137(thr)18(ead )-137(calls)]TJ /TT0 1 Tf 18.931 0 Td (fork)Tj /T1_0 1 Tf 0.3875 Tc (,b)Tj 0 Tc 3.591 0 Td [(ut )-137(the )-137(synchr)18(onization )-137(object)]TJ -22.521 -1.2 Td (can\325t be cleaned up unless it is in a consistent state.)Tj 0.883 Tc -1.489 -1.6 Td (\245I)Tj 0 Tc 1.826 0 Td [(f)-317(an)-317(application )-67(calls)]TJ /TT0 1 Tf 9.605 0 Td (fork)Tj /T1_0 1 Tf 2.717 0 Td [(in )-67(a )-67(signal )-67(handler )-67(\(which )-67(is )-67(legal, )-67(because)]TJ /TT0 1 Tf 19.621 0 Td (fork)Tj /T1_0 1 Tf 2.717 0 Td (is)Tj -34.996 -1.2 Td [(async-signal )-130(safe\), )-130(then )-130(the )-130(fork )-130(handlers )-130(r)15(egister)18(ed )-131(by)]TJ /TT0 1 Tf 25.404 0 Td (pthread_atfork)Tj /T1_0 1 Tf 8.781 0 Td (can)Tj -34.185 -1.2 Td [(call only async-signal safe functions, or else the r)18(esults ar)]TJ 0.25 Tc 25.153 0 Td (eu)Tj 0 Tc 1.332 0 Td (nde\336ned.)Tj /TT2 1 Tf 11.9986 0 0 11.9986 93.59 202.5757 Tm [(12.10 )-220(Threads)-556(and )-278(I/O)]TJ /T1_0 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5856 180.9783 Tm [(We )-318(i)]TJ 0 Tc 2.062 0 Td [(ntr)18(oduced )-134(the)]TJ /TT0 1 Tf 6.734 0 Td (pread)Tj /T1_0 1 Tf 3.384 0 Td (and)Tj /TT0 1 Tf 2.077 0 Td (pwrite)Tj /T1_0 1 Tf 3.984 0 Td [(functions )-134(in )-134(Section )-134(3.1)55(1. )-384(These)-384(functions )-134(ar)18(e)]TJ -18.241 -1.2 Td [(helpful )-25(in )-25(a )-25(multithr)17(eaded )-25(envir)18(onment, )-25(because )-25(all )-25(thr)18(eads )-25(in )-25(a )-25(pr)18(ocess )-25(shar)]TJ 0.2754 Tc 34.297 0 Td (et)Tj 0 Tc 1.08 0 Td [(he )-25(same)]TJ -35.378 -1.2 Td (\336le descriptors.)Tj 1.8 -1.2 Td [(Consider )-193(two )-193(thr)18(eads )-193(r)18(eading )-193(fr)17(om )-193(or )-193(writing )-193(to )-193(the )-193(same )-193(\336le )-193(descriptor )-193(at )-193(the)]TJ -1.8 -1.2 Td (same time.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46972 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.9)]TJ 35.154 0 Td [(Thr)18(eads )-250(and)]TJ /TT0 1 Tf 6.279 0 Td (fork)Tj /T1_1 1 Tf 4.4 0 Td (457)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(in )-109(the )-109(main )-109(thr)18(ead )-109(of )-109(contr)18(ol )-109(to )-109(check )-109(the )-109(value )-109(of )-109(the )-109(\337ag )-109(and )-109(atomically )-109(r)14(elease )-109(the)]TJ 0 -1.2 TD (mutex when we wait for the condition.)Tj 1.8 -1.2 Td [(Note )-189(that )-189(we )-189(block)]TJ /TT0 1 Tf 9.376 0 Td (SIGINT)Tj /T1_0 1 Tf 4.039 0 Td (and)Tj /TT0 1 Tf 2.132 0 Td (SIGQUIT)Tj /T1_0 1 Tf 4.639 0 Td [(in )-189(the )-189(beginning )-189(of )-189(the )-189(main )-189(thr)17(ead.)]TJ -21.986 -1.2 Td [(When )-217(we )-217(cr)18(eate )-217(the )-217(thr)18(ead )-217(to )-217(handle )-217(signals, )-217(the )-217(thr)18(ead )-217(inherits )-217(the )-217(curr)18(ent )-217(signal)]TJ T* [(mask. )-346(Since)]TJ /TT0 1 Tf 5.877 0 Td (sigwait)Tj /T1_0 1 Tf 4.546 0 Td [(will )-96(unblock )-96(the )-96(signals, )-96(only )-96(one )-96(thr)18(ead )-96(is )-96(available )-96(to )-96(r)16(eceive)]TJ -10.423 -1.2 Td [(signals. )-539(This)-539(enables )-289(us )-289(to )-289(code )-289(the )-289(main )-289(thr)18(ead )-289(without )-289(having )-289(to )-289(worry )-289(about)]TJ T* [(interr)8(upts fr)18(om these signals.)]TJ 1.8 -1.2 Td [(If we r)8(un this pr)18(ogram, we get output similar to that fr)18(om Figur)]TJ 0.25 Tc 28.168 0 Td (e1)Tj 0 Tc 1.229 0 Td (0.23:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 568.2659 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj -1.2 -1.189 Td (\366?)Tj /T1_2 1 Tf 12 0 Td (type the interrupt character)Tj /TT0 1 Tf -12 -1.189 Td (interrupt)Tj /TT1 1 Tf 0 -1.189 TD (\366?)Tj /T1_2 1 Tf 12 0 Td (type the interrupt character again)Tj /TT0 1 Tf -12 -1.189 Td (interrupt)Tj /TT1 1 Tf 0 -1.189 TD (\366?)Tj /T1_2 1 Tf 12 0 Td (and again)Tj /TT0 1 Tf -12 -1.189 Td (interrupt)Tj /TT1 1 Tf 0 -1.189 TD (\366\\)Tj /TT0 1 Tf 1.8 0 Td ($)Tj /T1_2 1 Tf 10.2 0 Td (now terminate with quit character)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4754.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 11.9986 0 0 11.9986 93.5888 439.3473 Tm [(12.9 )-776(Threads)-556(and)]TJ /TT1 1 Tf 9.78 0 Td (fork)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 415.3502 Tm [(When )-120(a )-120(thr)18(ead )-120(calls)]TJ /TT0 1 Tf 9.447 0 Td (fork)Tj /T1_0 1 Tf 0.3698 Tc (,ac)Tj 0 Tc 4.334 0 Td [(opy )-120(of )-120(the )-120(entir)]TJ 0.3698 Tc 7.133 0 Td (ep)Tj -0.018 Tc 1.45 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-120(addr)18(ess )-120(space )-120(is )-120(made )-120(for )-120(the)]TJ -23.287 -1.2 Td [(child. )-427(Recall)-427(the )-177(discussion )-177(of )-177(copy-on-write )-177(in )-177(Section )-177(8.3.)-676(The )-177(child )-177(is )-177(an )-177(entir)19(ely)]TJ -0 -1.2 Td [(dif)18(fer)18(ent )-228(pr)18(ocess )-228(fr)18(om )-228(the )-228(par)18(ent, )-228(and )-228(as )-228(long )-228(as )-228(neither )-228(one )-228(makes )-228(changes )-228(to )-228(its)]TJ 0 -1.2 TD [(memory )-31(contents, )-31(copies )-31(of )-31(the )-31(memory )-31(pages )-31(can )-31(be )-31(shar)18(ed )-31(between )-31(par)18(ent )-31(and )-31(child.)]TJ 1.8 -1.2 Td [(By )-89(inheriting )-89(a )-89(copy )-89(of )-89(the )-89(addr)17(ess )-89(space, )-89(the )-89(child )-89(also )-89(inherits )-89(the )-89(state )-89(of )-89(every)]TJ -1.8 -1.2 Td [(mutex, )-17(r)18(eader\320writer )-17(lock, )-17(and )-17(condition )-17(variable )-17(fr)19(om )-17(the )-17(par)18(ent )-17(pr)19(ocess. )-267(If)-266(the )-17(par)18(ent)]TJ 0 -1.2 Td [(consists )-50(of )-50(mor)]TJ 0.2997 Tc 6.745 0 Td (et)Tj 0 Tc 1.105 0 Td [(han )-50(one )-50(thr)19(ead, )-50(the )-50(child )-50(will )-50(need )-50(to )-50(clean )-50(up )-50(the )-50(lock )-50(state )-50(if )-50(it )-50(isn\325t)]TJ -7.85 -1.2 Td (going to call)Tj /TT0 1 Tf 5.679 0 Td (exec)Tj /T1_0 1 Tf 2.65 0 Td (immediately after)Tj /TT0 1 Tf 8.123 0 Td (fork)Tj /T1_0 1 Tf -0.018 Tc 2.65 0 Td (re)Tj 0 Tc 0.856 0 Td (turns.)Tj -18.158 -1.2 Td [(Inside )-8(the )-8(child )-8(pr)17(ocess, )-8(only )-8(one )-8(thr)18(ead )-8(exists.)-508(It )-8(is )-8(made )-8(fr)18(om )-8(a )-8(copy )-8(of )-8(the )-8(thr)17(ead)]TJ -1.8 -1.2 Td [(that )-80(called)]TJ /TT0 1 Tf 5.01 0 Td (fork)Tj /T1_0 1 Tf 2.73 0 Td [(in )-80(the )-80(par)18(ent. )-330(If)-330(the )-80(thr)18(eads )-80(in )-80(the )-80(par)18(ent )-80(pr)18(ocess )-80(hold )-80(any )-80(locks, )-80(the)]TJ -7.74 -1.2 Td [(same )-60(locks )-60(will )-60(also )-60(be )-60(held )-60(in )-60(the )-60(child )-60(pr)17(ocess. )-310(The)-310(pr)18(oblem )-60(is )-60(that )-60(the )-60(child )-60(pr)18(ocess)]TJ 0 -1.2 Td [(doesn\325t )-59(contain )-59(copies )-59(of )-59(the )-59(thr)17(eads )-59(holding )-59(the )-59(locks, )-59(so )-59(ther)16(e)-309(is)-309(no)-309(w)-1(ay )-59(for )-59(the )-59(child)]TJ 0 -1.2 Td (to know which locks ar)Tj 0.25 Tc 10.261 0 Td (eh)Tj 0 Tc 1.311 0 Td (eld and need to be unlocked.)Tj -9.772 -1.2 Td [(This )-139(pr)18(oblem )-139(can )-139(be )-139(avoided )-139(if )-139(the )-139(child )-139(calls )-139(one )-139(of )-139(the)]TJ /TT0 1 Tf 26.517 0 Td (exec)Tj /T1_0 1 Tf 2.789 0 Td [(functions )-138(dir)18(ectly)]TJ -31.106 -1.2 Td [(after )-75(r)18(eturning )-75(fr)17(om)]TJ /TT0 1 Tf 9.339 0 Td (fork)Tj /T1_0 1 Tf 0.5754 Tc (.I)Tj 0.3254 Tc 3.562 0 Td (nt)Tj 0 Tc 1.233 0 Td [(his )-75(case, )-75(the )-75(old )-75(addr)18(ess )-75(space )-75(is )-75(discar)18(ded, )-75(so )-75(the )-75(lock)]TJ -14.135 -1.2 Td [(state )-223(doesn\325t )-223(matter)]TJ 0.7227 Tc 9.082 0 Td (.T)Tj 0 Tc 1.586 0 Td [(his )-223(is )-223(not )-223(always )-223(possible, )-223(however)76(,)-473(so)-473(if)-473(t)1(he )-223(child )-223(needs )-223(to)]TJ -10.667 -1.2 Td [(continue pr)18(ocessing, we need to use a dif)18(fer)18(ent strategy)111(.)]TJ -0.092 Tc 1.8 -1.2 Td [(To )-448(a)]TJ 0 Tc 2.081 0 Td [(void )-263(pr)18(oblems )-263(with )-263(inconsistent )-263(state )-263(in )-263(a )-263(multithr)18(eaded )-263(pr)18(ocess, )-263(POSIX.1)]TJ -3.881 -1.2 Td [(states )-50(that )-50(only )-50(async-signal )-50(safe )-50(functions )-50(should )-50(be )-50(called )-50(by )-50(a )-50(child )-50(pr)16(ocess )-50(between)]TJ T* [(the )-82(time )-82(that)]TJ /TT0 1 Tf 6.096 0 Td (fork)Tj /T1_0 1 Tf -0.018 Tc 2.732 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-82(and )-82(the )-82(time )-82(that )-82(the )-82(child )-82(calls )-82(one )-82(of )-82(the)]TJ /TT0 1 Tf 22.203 0 Td (exec)Tj /T1_0 1 Tf 2.732 0 Td (functions.)Tj -34.619 -1.2 Td [(This )-65(limits )-65(what )-65(the )-65(child )-65(can )-65(do )-65(befor)]TJ 0.315 Tc 17.44 0 Td (ec)Tj 0 Tc 1.238 0 Td (alling)Tj /TT0 1 Tf 2.826 0 Td (exec)Tj /T1_0 1 Tf 0.315 Tc (,b)Tj 0 Tc 3.518 0 Td [(ut )-65(doesn\325t )-65(addr)18(ess )-65(the )-65(pr)18(oblem)]TJ -25.022 -1.2 Td [(of lock state in the child pr)18(ocess.)]TJ -0.092 Tc 1.8 -1.2 Td [(To )-380(c)]TJ 0 Tc 1.956 0 Td [(lean )-195(up )-195(the )-195(lock )-195(state, )-195(we )-195(can )-195(establish)]TJ /T1_2 1 Tf 18.858 0 Td [(fork )-195(handlers)]TJ /T1_0 1 Tf 5.891 0 Td [(by )-195(calling )-195(the )-195(function)]TJ /TT0 1 Tf -28.506 -1.2 Td (pthread_atfork)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46973 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.8)]TJ 34.385 0 Td [(Thr)18(eads )-250(and )-250(Signals)]TJ /T1_1 1 Tf 11.448 0 Td (453)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(Several )-59(of )-59(the )-59(functions )-59(listed )-59(in )-59(Figur)]TJ 0.3095 Tc 17.165 0 Td (e1)Tj 0 Tc 1.288 0 Td [(2.15, )-59(such )-59(as )-59(the )-59(ones )-59(dealing )-59(with )-59(message )-59(catalogs)]TJ -18.454 -1.25 Td (and wide character sets, ar)Tj 0.25 Tc 11.753 0 Td (en)Tj 0 Tc 1.311 0 Td (ot discussed further in this text.)Tj 9.9994 0 0 9.9994 147.5906 642.9614 Tm [(If )-82(your )-82(application )-82(doesn\325t )-82(call )-82(one )-82(of )-82(the )-82(functions )-82(in )-82(Figur)]TJ 0.3316 Tc 27.092 0 Td (e1)Tj 0 Tc 1.311 0 Td [(2.14 )-82(or )-82(Figur)]TJ 0.3316 Tc 5.737 0 Td (e1)Tj 0 Tc 1.311 0 Td (2.15)Tj -37.25 -1.2 Td [(for )-239(a )-239(long )-239(period )-239(of )-239(time )-239(\(if )-239(it )-239(is )-239(compute )-239(bound, )-239(for )-239(example\), )-239(then )-239(you )-239(can )-239(call)]TJ /TT0 1 Tf 0 -1.2 TD (pthread_testcancel)Tj /T1_0 1 Tf 11.05 0 Td [(to add your own cancellation points to the pr)18(ogram.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5903 599.864 Tm (#include )Tj 0 -2.14 TD (void pthread_testcancel\(void\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5761.25 cm 0 0 m 0 328 l 3900 328 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 560.1728 Tm [(When )-104(you )-104(call)]TJ /TT0 1 Tf 6.936 0 Td (pthread_testcancel)Tj /T1_0 1 Tf [(,)-354(if)-354(a)-354(cancellation )-104(r)18(equest )-104(is )-104(pending )-104(and )-104(if)]TJ -8.736 -1.2 Td [(cancellation )-141(has )-141(not )-141(been )-141(disabled, )-141(the )-141(thr)18(ead )-141(will )-141(be )-141(canceled.)-644(When )-141(cancellation )-141(is)]TJ 0 -1.2 TD (disabled, however)Tj 0.25 Tc 8.066 0 Td (,c)Tj 0 Tc 0.944 0 Td (alls to)Tj /TT0 1 Tf 2.878 0 Td (pthread_testcancel)Tj /T1_0 1 Tf 11.05 0 Td [(have no ef)18(fect.)]TJ -21.138 -1.2 Td [(The )-390(default )-390(cancellation )-390(type )-390(we )-390(have )-390(been )-390(describing )-390(is )-390(known )-390(as)]TJ /T1_2 1 Tf 33.995 0 Td [(deferr)18(ed)]TJ -35.795 -1.2 Td (cancellation)Tj /T1_0 1 Tf 0.7322 Tc (.A)Tj 0 Tc 6.574 0 Td [(fter )-232(a )-232(call )-232(to)]TJ /TT0 1 Tf 6.36 0 Td (pthread_cancel)Tj /T1_0 1 Tf 0.4822 Tc (,t)Tj 0 Tc 9.458 0 Td [(he )-232(actual )-232(cancellation )-232(doesn\325t )-232(occur)]TJ -22.392 -1.2 Td [(until )-11(the )-11(thr)18(ead )-11(hits )-11(a )-11(cancellation )-11(point.)]TJ -0.092 Tc 18.428 0 Td [(We )-195(c)]TJ 0 Tc 2.092 0 Td [(an )-11(change )-11(the )-11(cancellation )-11(type )-11(by )-11(calling)]TJ /TT0 1 Tf -20.52 -1.2 Td (pthread_setcanceltype)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5825 471.4838 Tm (#include )Tj 0 -1.902 TD (int pthread_setcanceltype\(int)Tj /T1_2 1 Tf 18 0 Td (type)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.522 0 Td (nt *)Tj /T1_2 1 Tf (oldtype)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -0.241 -1.902 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4328.25 cm 0 0 m 0 477 l 3900 477 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 419.2245 Tm (The)Tj /TT0 1 Tf 2.259 0 Td (pthread_setcanceltype)Tj /T1_0 1 Tf 13.185 0 Td [(function )-335(sets )-335(the )-335(cancellation )-335(type )-335(to)]TJ /T1_2 1 Tf 18.365 0 Td (type)Tj /T1_0 1 Tf 2.307 0 Td (\(either)Tj /TT0 1 Tf -36.115 -1.2 Td (PTHREAD_CANCEL_DEFERRED)Tj /T1_0 1 Tf 14.092 0 Td (or)Tj /TT0 1 Tf 1.233 0 Td (PTHREAD_CANCEL_ASYNCHRONOUS)Tj /T1_0 1 Tf 0.292 Tc (\)a)Tj 0 Tc 17.325 0 Td [(nd )-42(r)18(eturns )-42(the)]TJ -32.65 -1.2 Td [(pr)18(evious type in the integer pointed to by)]TJ /T1_2 1 Tf 18.633 0 Td (oldtype)Tj /T1_0 1 Tf (.)Tj -16.833 -1.2 Td [(Asynchr)18(onous )-56(cancellation )-56(dif)18(fers )-56(fr)18(om )-56(deferr)18(ed )-56(cancellation )-56(in )-56(that )-56(the )-56(thr)18(ead )-56(can)]TJ -1.8 -1.2 Td [(be )-49(canceled )-49(at )-49(any )-49(time.)-549(The )-49(thr)16(ead )-49(doesn\325t )-49(necessarily )-49(need )-49(to )-49(hit )-49(a )-49(cancellation )-49(point)]TJ 0 -1.2 TD (for it to be canceled.)Tj /TT1 1 Tf 11.9978 0 0 11.9978 93.5832 318.4427 Tm [(12.8 )-776(Threads)-556(and )-278(Signals)]TJ /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 294.447 Tm [(Dealing )-453(with )-453(signals )-453(can )-453(be )-453(complicated )-453(even )-453(with )-453(a )-453(pr)18(ocess-based )-453(paradigm.)]TJ T* [(Intr)18(oducing thr)18(eads into the pictur)]TJ 0.25 Tc 15.328 0 Td (em)Tj 0 Tc 1.612 0 Td (akes things even mor)Tj 0.25 Tc 9.381 0 Td (ec)Tj 0 Tc 1.173 0 Td (omplicated.)Tj -25.694 -1.2 Td [(Each )-185(thr)18(ead )-185(has )-185(its )-185(own )-185(signal )-185(mask, )-185(but )-185(the )-185(signal )-185(disposition )-185(is )-185(shar)18(ed )-185(by )-185(all)]TJ -1.8 -1.2 Td [(thr)18(eads )-202(in )-202(the )-202(pr)19(ocess. )-452(As)]TJ 0.4517 Tc 12.814 0 Td (ac)Tj 0 Tc 1.396 0 Td [(onsequence, )-202(individual )-202(thr)18(eads )-202(can )-202(block )-202(signals, )-202(but)]TJ -14.21 -1.2 Td [(when )-83(a )-83(thr)18(ead )-83(modi\336es )-83(the )-83(action )-83(associated )-83(with )-83(a )-83(given )-83(signal, )-83(all )-83(thr)18(eads )-83(shar)]TJ 0.3327 Tc 36.801 0 Td (et)Tj 0 Tc 1.138 0 Td (he)Tj -37.939 -1.2 Td [(action. )-362(Thus,)-361(if )-112(one )-112(thr)18(ead )-112(chooses )-112(to )-112(ignor)]TJ 0.3618 Tc 19.968 0 Td (eag)Tj 0 Tc 2.259 0 Td [(iven )-112(signal, )-112(another )-112(thr)18(ead )-112(can )-112(undo)]TJ -22.227 -1.2 Td [(that )-155(choice )-155(by )-155(r)18(estoring )-155(the )-155(default )-155(disposition )-155(or )-155(installing )-155(a )-155(signal )-155(handler )-155(for )-155(that)]TJ T* (signal.)Tj 1.8 -1.2 Td [(Signals )-107(ar)]TJ 0.3572 Tc 4.403 0 Td (ed)Tj 0 Tc 1.447 0 Td [(eliver)18(ed )-107(to )-107(a )-107(single )-107(thr)18(ead )-107(in )-107(the )-107(pr)17(ocess. )-357(If)-358(the )-107(signal )-107(is )-107(r)18(elated )-107(to )-107(a)]TJ -7.65 -1.2 Td [(har)18(dwar)]TJ 0.3425 Tc 3.781 0 Td (ef)Tj 0 Tc 1.154 0 Td [(ault, )-92(the )-92(signal )-92(is )-92(usually )-92(sent )-92(to )-92(the )-92(thr)18(ead )-92(whose )-92(action )-92(caused )-92(the )-92(event.)]TJ -4.935 -1.2 Td (Other signals, on the other hand, ar)Tj 0.25 Tc 15.631 0 Td (ed)Tj 0 Tc 1.34 0 Td [(eliver)18(ed to an arbitrary thr)18(ead.)]TJ -15.171 -1.2 Td [(In )-17(Section )-17(10.12, )-17(we )-17(discussed )-17(how )-17(pr)17(ocesses )-17(can )-17(use )-17(the)]TJ /TT0 1 Tf 25.486 0 Td (sigprocmask)Tj /T1_0 1 Tf 6.867 0 Td [(function )-17(to)]TJ -34.154 -1.2 Td [(block )-52(signals )-52(fr)18(om )-52(delivery)]TJ 0.552 Tc 12.059 0 Td (.H)Tj 0 Tc 1.634 0 Td (owever)Tj 0.302 Tc 3.224 0 Td (,t)Tj 0 Tc 0.878 0 Td [(he )-52(behavior )-52(of)]TJ /TT0 1 Tf 6.757 0 Td (sigprocmask)Tj /T1_0 1 Tf 6.902 0 Td [(is )-52(unde\336ned )-52(in )-52(a)]TJ -31.454 -1.2 Td [(multithr)18(eaded pr)18(ocess. )-250(Thr)18(eads have to use the)]TJ /TT0 1 Tf 21.381 0 Td (pthread_sigmask)Tj /T1_0 1 Tf 9.25 0 Td (function instead.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46974 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.7)]TJ 36.772 0 Td [(Cancel )-250(Options)]TJ /T1_1 1 Tf 9.061 0 Td (451)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(12.7 )-776(Cancel)-556(Options)]TJ /T1_0 1 Tf -0.09 Tc 9.9994 0 0 9.9994 129.5922 648.5611 Tm (Tw)Tj 0.3476 Tc 1.357 0 Td (ot)Tj 0 Tc 1.22 0 Td [(hr)18(ead )-98(attributes )-98(that )-98(ar)]TJ 0.3476 Tc 10.426 0 Td (en)Tj 0 Tc 1.409 0 Td [(ot )-98(included )-98(in )-98(the)]TJ /TT1 1 Tf 8.434 0 Td (pthread_attr_t)Tj /T1_0 1 Tf 8.748 0 Td [(str)8(uctur)]TJ 0.3475 Tc 3.49 0 Td (ea)Tj -0.018 Tc 1.326 0 Td [(re )-134(t)]TJ 0 Tc 1.529 0 Td (he)Tj /T1_2 1 Tf -37.939 -1.2 Td [(cancelability )-235(state)]TJ /T1_0 1 Tf 7.914 0 Td [(and )-235(the)]TJ /T1_2 1 Tf 4.051 0 Td [(cancelability )-235(type)]TJ /T1_0 1 Tf 0.7355 Tc (.T)Tj 0 Tc 8.861 0 Td [(hese )-235(attributes )-235(af)18(fect )-235(the )-235(behavior )-235(of )-235(a)]TJ -20.826 -1.2 Td [(thr)18(ead in r)18(esponse to a call to)]TJ /TT1 1 Tf 13.18 0 Td (pthread_cancel)Tj /T1_0 1 Tf 8.65 0 Td [(\(Section 1)55(1.5\).)]TJ -20.03 -1.2 Td (The)Tj /T1_2 1 Tf 2.441 0 Td [(cancelability )-517(state)]TJ /T1_0 1 Tf 8.476 0 Td [(attribute )-517(can )-517(be )-517(either)]TJ /TT1 1 Tf 11.975 0 Td (PTHREAD_CANCEL_ENABLE)Tj /T1_0 1 Tf 13.367 0 Td (or)Tj /TT1 1 Tf -38.059 -1.2 Td (PTHREAD_CANCEL_DISABLE)Tj /T1_0 1 Tf 0.7977 Tc (.A)Tj 0 Tc 15.573 0 Td [(thr)18(ead )-298(can )-298(change )-298(its)]TJ /T1_2 1 Tf 10.776 0 Td [(cancelability )-298(state)]TJ /T1_0 1 Tf 8.039 0 Td [(by )-298(calling)]TJ /TT1 1 Tf -34.388 -1.2 Td (pthread_setcancelstate)Tj /T1_0 1 Tf (.)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5909 571.8657 Tm (#include )Tj 0 -1.902 TD (int pthread_setcancelstate\(int)Tj /T1_2 1 Tf 18.6 0 Td (state)Tj /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.688 0 Td (nt *)Tj /T1_2 1 Tf (oldstate)Tj /TT1 1 Tf (\);)Tj /T1_0 1 Tf -1.007 -1.902 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5331.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 519.5976 Tm [(In )-37(one )-37(atomic )-37(operation,)]TJ /TT1 1 Tf 11.178 0 Td (pthread_setcancelstate)Tj /T1_0 1 Tf 13.487 0 Td [(sets )-36(the )-36(curr)17(ent)]TJ /T1_2 1 Tf 7.106 0 Td [(cancelability )-36(state)]TJ /T1_0 1 Tf -31.77 -1.2 Td (to)Tj /T1_2 1 Tf 1.216 0 Td (state)Tj /T1_0 1 Tf 2.231 0 Td [(and )-93(stor)18(es )-93(the )-93(pr)17(evious)]TJ /T1_2 1 Tf 10.916 0 Td [(cancelability )-94(state)]TJ /T1_0 1 Tf 7.63 0 Td [(in )-94(the )-94(memory )-94(location )-94(pointed )-94(to )-94(by)]TJ /T1_2 1 Tf -21.993 -1.2 Td (oldstate)Tj /T1_0 1 Tf (.)Tj 1.8 -1.2 Td [(Recall )-18(fr)18(om )-18(Section )-18(1)55(1.5 )-18(that )-18(a )-18(call )-18(to)]TJ /TT1 1 Tf 16.475 0 Td (pthread_cancel)Tj /T1_0 1 Tf 8.668 0 Td [(doesn\325t )-18(wait )-18(for )-18(a )-18(thr)18(ead )-18(to)]TJ -26.943 -1.2 Td [(terminate. )-442(In)-443(the )-192(default )-192(case, )-192(a )-192(thr)18(ead )-192(will )-192(continue )-192(to )-192(execute )-192(after )-192(a )-192(cancellation)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(quest )-135(is )-135(made )-135(until )-135(the )-135(thr)18(ead )-135(r)18(eaches )-135(a)]TJ /T1_2 1 Tf 18.797 0 Td [(cancellation )-135(point)]TJ /T1_0 1 Tf 0.6346 Tc (.A)Tj 0 Tc 9.357 0 Td [(cancellation )-134(point )-134(is )-134(a)]TJ -29.009 -1.2 Td [(place )-218(wher)]TJ 0.4682 Tc 5.055 0 Td (et)Tj 0 Tc 1.273 0 Td [(he )-218(thr)18(ead )-218(checks )-218(whether )-218(it )-218(has )-218(been )-218(canceled, )-218(and )-218(if )-218(so, )-218(acts )-218(on )-218(the)]TJ -0.018 Tc -6.328 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quest. )-282(POSIX.1)-281(guarantees )-32(that )-32(cancellation )-32(points )-32(will )-32(occur )-32(when )-32(a )-32(thr)20(ead )-32(calls )-32(any)]TJ -0.856 -1.2 Td (of the functions listed in Figur)Tj 0.25 Tc 13.325 0 Td (e1)Tj 0 Tc 1.229 0 Td (2.14.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1418.25 4012.25 cm 0 0 m 3656 0 l S Q Q BT /TT1 1 Tf 7.9986 0 0 7.9986 145.7738 393.1892 Tm (accept )Tj 10.5 0 Td (mq_timedsend)Tj 14.7 0 Td [(pthread_join )-4500(sendto)]TJ -25.2 -1.25 Td [(aio_suspend )-3300(msgrcv)]TJ 25.2 0 Td [(pthread_testcancel )-900(sigsuspend)]TJ -25.2 -1.25 Td [(clock_nanosleep )-900(msgsnd)]TJ 25.2 0 Td (pwrite )Tj 12.3 0 Td (sigtimedwait)Tj -37.5 -1.25 Td (close )Tj 10.5 0 Td (msync)Tj 14.7 0 Td (read )Tj 12.3 0 Td (sigwait)Tj -37.5 -1.25 Td (connect )Tj 10.5 0 Td (nanosleep)Tj 14.7 0 Td (readv )Tj 12.3 0 Td (sigwaitinfo)Tj -37.5 -1.25 Td (creat )Tj 10.5 0 Td (open)Tj 14.7 0 Td (recv )Tj 12.3 0 Td (sleep)Tj -37.5 -1.25 Td (fcntl )Tj 10.5 0 Td (openat)Tj 14.7 0 Td (recvfrom )Tj 12.3 0 Td (system)Tj -37.5 -1.25 Td [(fdatasync )-4500(pause)]TJ 25.2 0 Td (recvmsg )Tj 12.3 0 Td (tcdrain)Tj -37.5 -1.25 Td (fsync )Tj 10.5 0 Td (poll)Tj 14.7 0 Td (select )Tj 12.3 0 Td (wait)Tj -37.5 -1.25 Td (lockf )Tj 10.5 0 Td (pread)Tj 14.7 0 Td [(sem_timedwait )-3900(waitid)]TJ -25.2 -1.25 Td [(mq_receive )-3900(pselect)]TJ 25.2 0 Td (sem_wait )Tj 12.3 0 Td (waitpid)Tj -37.5 -1.25 Td (mq_send )Tj 10.5 0 Td [(pthread_cond_timedwait)-1500(send )]TJ 27 0 Td (write)Tj -37.5 -1.25 Td [(mq_timedreceive )-900(pthread_cond_wait)-4500(sendmsg )]TJ 37.5 0 Td (writev)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1418.25 2692.25 cm 0 0 m 3656 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4398.25 2692.25 cm 0 0 m 0 1320 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3414.25 2692.25 cm 0 0 m 0 1320 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2238.25 2692.25 cm 0 0 m 0 1320 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5074.25 2692.25 cm 0 0 m 0 1320 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1418.25 2692.25 cm 0 0 m 0 1320 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 229.9408 251.1997 Tm (Figure 12.14)Tj /T1_0 1 Tf 6.195 0 Td (Cancellation points de\336ned by POSIX.1)Tj 0.5337 Tc 9.9976 0 0 9.9976 147.5648 224.806 Tm (At)Tj 0 Tc 1.638 0 Td [(hr)18(ead )-284(starts )-284(with )-284(a )-284(default)]TJ /T1_2 1 Tf 13.289 0 Td [(cancelability )-284(state)]TJ /T1_0 1 Tf 8.011 0 Td (of)Tj /TT1 1 Tf 1.413 0 Td (PTHREAD_CANCEL_ENABLE)Tj /T1_0 1 Tf (.)Tj -26.15 -1.2 Td [(When )-81(the )-81(state )-81(is )-81(set )-81(to)]TJ /TT1 1 Tf 10.889 0 Td (PTHREAD_CANCEL_DISABLE)Tj /T1_0 1 Tf 0.3313 Tc (,ac)Tj 0 Tc 15.057 0 Td [(all )-81(to)]TJ /TT1 1 Tf 2.616 0 Td (pthread_cancel)Tj /T1_0 1 Tf 8.731 0 Td (will)Tj -37.293 -1.2 Td [(not )-159(kill )-159(the )-159(thr)17(ead. )-409(Instead,)-409(the )-159(cancellation )-159(r)18(equest )-159(r)18(emains )-159(pending )-159(for )-159(the )-159(thr)17(ead.)]TJ T* [(When )-292(the )-292(state )-292(is )-292(enabled )-292(again, )-292(the )-292(thr)19(ead )-292(will )-292(act )-292(on )-292(any )-292(pending )-292(cancellation)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td (quests at the next cancellation point.)Tj 0.944 -1.2 Td [(In )-128(addition )-128(to )-128(the )-128(functions )-128(listed )-128(in )-128(Figur)]TJ 0.3785 Tc 19.394 0 Td (e1)Tj 0 Tc 1.357 0 Td [(2.14, )-128(POSIX.1 )-128(speci\336es )-128(the )-128(functions)]TJ -22.552 -1.2 Td (listed in Figur)Tj 0.25 Tc 6.178 0 Td (e1)Tj 0 Tc 1.229 0 Td (2.15 as optional cancellation points.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46975 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (446)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(To )-402(m)]TJ 0 Tc 2.418 0 Td (ake)Tj /TT0 1 Tf 2.003 0 Td (getenv_r)Tj /T1_1 1 Tf -0.018 Tc 5.267 0 Td (re)Tj 0 Tc 0.856 0 Td [(entrant, )-217(we )-217(changed )-217(the )-217(interface )-217(so )-217(that )-217(the )-217(caller )-217(must)]TJ -12.343 -1.2 Td [(pr)18(ovide )-52(its )-52(own )-52(buf)19(fer)]TJ 0.5517 Tc 9.982 0 Td (.T)Tj 0 Tc 1.415 0 Td [(hus )-52(each )-52(thr)18(ead )-52(can )-52(use )-52(a )-52(dif)20(fer)18(ent )-52(buf)18(fer )-52(to )-52(avoid )-52(interfering)]TJ -11.397 -1.2 Td [(with )-33(the )-33(others.)-533(Note, )-33(however)]TJ 0.2832 Tc 14.043 0 Td (,t)Tj 0 Tc 0.859 0 Td [(hat )-33(this )-33(is )-33(not )-33(enough )-33(to )-33(make)]TJ /TT0 1 Tf 13.82 0 Td (getenv_r)Tj /T1_1 1 Tf 5.083 0 Td [(thr)18(ead-safe.)]TJ -0.092 Tc -33.806 -1.2 Td [(To )-216(m)]TJ 0 Tc 2.232 0 Td (ake)Tj /TT0 1 Tf 1.817 0 Td (getenv_r)Tj /T1_1 1 Tf 5.082 0 Td [(thr)18(ead-safe, )-32(we )-32(need )-32(to )-32(pr)18(otect )-32(against )-32(changes )-32(to )-32(the )-32(envir)14(onment)]TJ -9.132 -1.2 Td [(while )-56(we )-56(ar)]TJ 0.3056 Tc 5.278 0 Td (es)Tj 0 Tc 1.209 0 Td [(ear)18(ching )-56(for )-56(the )-56(r)19(equested )-55(string.)]TJ -0.092 Tc 15.412 0 Td [(We )-240(c)]TJ 0 Tc 2.136 0 Td [(an )-55(use )-55(a )-55(mutex )-55(to )-55(serialize )-55(access)]TJ -24.035 -1.2 Td [(to the envir)18(onment list by)]TJ /TT0 1 Tf 11.642 0 Td (getenv_r)Tj /T1_1 1 Tf 5.05 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (putenv)Tj /T1_1 1 Tf (.)Tj -0.092 Tc -16.835 -1.2 Td [(We )-432(c)]TJ 0 Tc 2.329 0 Td [(ould )-248(have )-248(used )-248(a )-248(r)18(eader\320writer )-248(lock )-248(to )-248(allow )-248(multiple )-248(concurr)18(ent )-248(calls )-248(to)]TJ /TT0 1 Tf -4.129 -1.2 Td (getenv_r)Tj /T1_1 1 Tf 0.3124 Tc (,b)Tj 0 Tc 5.915 0 Td [(ut )-62(the )-62(added )-62(concurr)18(ency )-62(pr)18(obably )-62(wouldn\325t )-62(impr)18(ove )-62(the )-62(performance )-62(of)]TJ -5.915 -1.2 Td [(our )-142(pr)18(ogram )-142(by )-142(very )-142(much, )-142(for )-142(two )-142(r)17(easons. )-392(First,)-392(the )-142(envir)18(onment )-142(list )-142(usually )-142(isn\325t)]TJ 0 -1.2 Td [(very )-26(long, )-26(so )-26(we )-26(won\325t )-26(hold )-26(the )-26(mutex )-26(for )-26(too )-26(long )-26(while )-26(we )-26(scan )-26(the )-26(list.)-526(Second, )-26(calls)]TJ 0 -1.2 TD (to)Tj /TT0 1 Tf 1.22 0 Td (getenv)Tj /T1_1 1 Tf 3.948 0 Td (and)Tj /TT0 1 Tf 2.041 0 Td (putenv)Tj /T1_1 1 Tf 3.948 0 Td (ar)Tj 0.3484 Tc 0.877 0 Td (ei)Tj 0 Tc 1.118 0 Td [(nfr)18(equent, )-98(so )-98(if )-98(we )-98(impr)18(ove )-98(their )-98(performance, )-98(we )-98(won\325t)]TJ -13.154 -1.2 Td [(af)18(fect the overall performance of the pr)18(ogram very much.)]TJ 1.8 -1.2 Td [(Even )-252(though )-252(we )-252(can )-252(make)]TJ /TT0 1 Tf 13.2 0 Td (getenv_r)Tj /T1_1 1 Tf 5.302 0 Td [(thr)18(ead-safe, )-252(that )-252(doesn\325t )-252(mean )-252(that )-252(it )-252(is)]TJ -0.018 Tc -20.303 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(entrant )-89(with )-89(r)18(espect )-89(to )-89(signal )-89(handlers.)-588(If )-89(we )-89(wer)18(e)-339(to)-339(use )-89(a )-89(nonr)18(ecursive )-89(mutex, )-89(we)]TJ -0.856 -1.2 Td [(would )-151(r)8(un )-151(the )-151(risk )-151(that )-151(a )-151(thr)18(ead )-151(would )-151(deadlock )-151(itself )-151(if )-151(it )-151(called)]TJ /TT0 1 Tf 30.759 0 Td (getenv_r)Tj /T1_1 1 Tf 5.201 0 Td [(fr)18(om )-151(a)]TJ -35.96 -1.2 Td [(signal )-240(handler)]TJ 0.7399 Tc 6.5 0 Td (.I)Tj 0.4899 Tc 1.327 0 Td (ft)Tj 0 Tc 1.149 0 Td [(he )-240(signal )-240(handler )-240(interr)8(upted )-240(the )-240(thr)18(ead )-240(while )-240(it )-240(was )-240(executing)]TJ /TT0 1 Tf -8.976 -1.2 Td (getenv_r)Tj /T1_1 1 Tf [(,)-425(we)-425(would )-175(alr)18(eady )-175(be )-175(holding)]TJ /TT0 1 Tf 19.604 0 Td (env_mutex)Tj /T1_1 1 Tf 5.825 0 Td [(locked, )-175(so )-175(another )-175(attempt )-175(to)]TJ -25.429 -1.2 Td [(lock )-187(it )-187(would )-187(block, )-187(causing )-187(the )-187(thr)18(ead )-187(to )-187(deadlock.)-687(Thus )-187(we )-187(must )-187(use )-187(a )-187(r)21(ecursive)]TJ T* [(mutex )-1(to )-1(pr)18(event )-1(other )-1(thr)18(eads )-1(fr)18(om )-1(changing )-1(the )-1(data )-1(str)10(uctur)18(es )-1(while )-1(we )-1(look )-1(at )-1(them)]TJ 0 -1.2 Td [(and )-308(to )-308(pr)18(event )-308(deadlocks )-308(fr)18(om )-308(signal )-308(handlers.)-808(The )-308(pr)18(oblem )-308(is )-308(that )-308(the )-308(pthr)13(ead)]TJ T* [(functions )-191(ar)]TJ 0.4412 Tc 5.449 0 Td (en)Tj 0 Tc 1.502 0 Td [(ot )-191(guaranteed )-191(to )-191(be )-191(async-signal )-191(safe, )-191(so )-191(we )-191(can\325t )-191(use )-191(them )-191(to )-191(make)]TJ -6.951 -1.2 Td (another function async-signal safe.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4170.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9986 0 0 11.9986 93.5888 371.3554 Tm [(12.6 )-776(Thread)]TJ 6.334 0.09 Td (-)Tj 0.333 -0.09 Td [(Speci\336c )-278(Data)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 347.3583 Tm [(Thr)18(ead-speci\336c )-27(data, )-27(also )-27(known )-27(as )-27(thr)18(ead-private )-27(data, )-27(is )-27(a )-27(mechanism )-27(for )-27(storing )-27(and)]TJ T* [(\336nding )-441(data )-441(associated )-441(with )-441(a )-441(particular )-441(thr)18(ead. )-691(The)]TJ -0.018 Tc 27.165 0 Td (re)Tj 0 Tc 0.856 0 Td [(ason )-441(we )-441(call )-441(the )-441(data)]TJ -28.021 -1.2 Td [(thr)18(ead-speci\336c, or thr)18(ead-private, is that we\325d like each thr)14(ead to access its own separate)]TJ T* [(copy of the data, without worrying about synchr)18(onizing access with other thr)18(eads.)]TJ 1.8 -1.2 Td [(Many )-205(people )-205(went )-205(to )-205(a )-205(lot )-205(of )-205(tr)20(ouble )-205(designing )-205(a )-205(thr)18(eads )-205(model )-205(that )-205(pr)19(omotes)]TJ -1.8 -1.2 Td [(sharing )-60(pr)18(ocess )-60(data )-60(and )-60(attributes.)-562(So )-60(why )-60(would )-60(anyone )-60(want )-60(to )-60(pr)18(omote )-60(interfaces)]TJ T* [(that pr)18(event sharing in this model?)-500(Ther)]TJ 0.25 Tc 18.024 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(t)]TJ 0 Tc 1.432 0 Td [(wo r)18(easons.)]TJ -18.885 -1.2 Td [(First, )-79(sometimes )-79(we )-79(need )-79(to )-79(maintain )-79(data )-79(on )-79(a )-79(per)20(-thr)18(ead )-79(basis.)-579(Since )-79(ther)19(e)-329(is)-329(no)]TJ -1.8 -1.2 Td [(guarantee )-181(that )-181(thr)18(ead )-181(IDs )-181(ar)]TJ 0.4313 Tc 13.167 0 Td (es)Tj 0 Tc 1.334 0 Td [(mall, )-181(sequential )-181(integers, )-181(we )-181(can\325t )-181(simply )-181(allocate )-181(an)]TJ -14.501 -1.2 Td [(array )-80(of )-80(per)18(-thr)18(ead )-80(data )-80(and )-80(use )-80(the )-80(thr)18(ead )-80(ID )-80(as )-80(the )-80(index.)-579(Even )-80(if )-80(we )-80(could )-80(depend)]TJ T* [(on )-164(small, )-164(sequential )-164(thr)18(ead )-164(IDs, )-164(we\325d )-164(like )-164(a )-164(little )-164(extra )-164(pr)18(otection )-164(so )-164(that )-164(one )-164(thr)19(ead)]TJ T* [(can\325t mess with another)-74(\325s data.)]TJ 1.8 -1.2 Td [(The )-91(second )-91(r)18(eason )-91(for )-91(thr)18(ead-private )-91(data )-91(is )-91(to )-91(pr)20(ovide )-91(a )-91(mechanism )-91(for )-91(adapting)]TJ -1.8 -1.2 Td [(pr)18(ocess-based )-2(interfaces )-2(to )-2(a )-2(multithr)18(eaded )-2(envir)17(onment. )-252(An)-253(obvious )-2(example )-2(of )-2(this )-2(is)]TJ /TT0 1 Tf 0 -1.2 Td (errno)Tj /T1_1 1 Tf 0.7335 Tc (.R)Tj 0 Tc 4.651 0 Td [(ecall )-234(the )-234(discussion )-234(of)]TJ /TT0 1 Tf 10.845 0 Td (errno)Tj /T1_1 1 Tf 3.484 0 Td [(in )-234(Section )-234(1.7.)-734(Older )-234(interfaces )-234(\(befor)]TJ 0.4836 Tc 17.67 0 Td (et)Tj 0 Tc 1.289 0 Td (he)Tj -37.939 -1.2 Td [(advent )-157(of )-157(thr)18(eads\) )-157(de\336ned)]TJ /TT0 1 Tf 12.569 0 Td (errno)Tj /T1_1 1 Tf 3.407 0 Td [(as )-157(an )-157(integer )-157(that )-157(is )-157(accessible )-157(globally )-157(within )-157(the)]TJ -15.976 -1.2 Td [(context )-180(of )-180(a )-180(pr)18(ocess. )-430(System)-430(calls )-180(and )-180(library )-180(r)18(outines )-180(set)]TJ /TT0 1 Tf 27.366 0 Td (errno)Tj /T1_1 1 Tf 3.43 0 Td [(as )-180(a )-180(side )-180(ef)18(fect )-180(of)]TJ -30.796 -1.2 Td [(failing. )-479(T)]TJ 0.4788 Tc 4.344 0 Td (om)Tj 0 Tc 1.908 0 Td [(ake )-229(it )-229(possible )-229(for )-229(thr)18(eads )-229(to )-229(use )-229(these )-229(same )-229(system )-229(calls )-229(and )-229(library)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46976 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (442)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-72(value )-72(of )-72(the)]TJ /T1_2 1 Tf 7.666 0 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_1 1 Tf 6.137 0 Td [(attribute )-72(can )-72(be )-72(either)]TJ /TT0 1 Tf 10.197 0 Td (PTHREAD_PROCESS_SHARED)Tj /T1_1 1 Tf -25.8 -1.2 Td [(\(accessible )-463(to )-463(thr)18(eads )-463(fr)18(om )-463(multiple )-463(pr)18(ocesses\) )-463(or)]TJ /TT0 1 Tf 25.2 0 Td (PTHREAD_PROCESS_PRIVATE)Tj /T1_1 1 Tf -25.2 -1.2 Td [(\(accessible to only thr)18(eads in the pr)18(ocess that initialized the barrier\).)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5949 608.9635 Tm [(12.5 )-776(Reentranc)10(y)]TJ /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5927 589.7646 Tm [(We )-449(d)]TJ 0 Tc 2.513 0 Td [(iscussed )-265(r)18(eentrant )-265(functions )-265(and )-265(signal )-265(handlers )-265(in )-265(Section )-265(10.6.)-766(Thr)18(eads )-265(ar)18(e)]TJ -2.513 -1.2 Td [(similar )-72(to )-72(signal )-72(handlers )-72(when )-72(it )-72(comes )-72(to )-72(r)20(eentrancy)]TJ 0.5718 Tc 24.38 0 Td (.I)Tj 0.3217 Tc 1.159 0 Td (nb)Tj 0 Tc 1.457 0 Td [(oth )-72(cases, )-72(multiple )-72(thr)19(eads)]TJ -26.996 -1.2 Td [(of contr)18(ol can potentially call the same function at the same time.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1682.25 5458.25 cm 0 0 m 3128 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 172.1793 537.7355 Tm [(basename )-3900(getchar_unlocked)-1500(getservent )-1500(putc_unlocked)]TJ 0 -1.25 TD [(catgets )-4500(getdate)]TJ 20.4 0 Td [(getutxent )-2100(putchar_unlocked)]TJ -20.4 -1.25 Td (crypt )Tj 9.3 0 Td (getenv)Tj 11.1 0 Td [(getutxid )-2700(putenv)]TJ -20.4 -1.25 Td [(dbm_clearerr )-1500(getgrent)]TJ 20.4 0 Td [(getutxline )-1500(pututxline)]TJ -20.4 -1.25 Td [(dbm_close )-3300(getgrgid)]TJ 20.4 0 Td [(gmtime )-3900(rand)]TJ -20.4 -1.25 Td [(dbm_delete )-2700(getgrnam)]TJ 20.4 0 Td [(hcreate )-3300(readdir)]TJ -20.4 -1.25 Td [(dbm_error )-3300(gethostent)]TJ 20.4 0 Td [(hdestroy )-2700(setenv)]TJ -20.4 -1.25 Td [(dbm_fetch )-3300(getlogin)]TJ 20.4 0 Td [(hsearch )-3300(setgrent)]TJ -20.4 -1.25 Td [(dbm_firstkey )-1500(getnetbyaddr)-3900(inet_ntoa )-2100(setkey)]TJ T* [(dbm_nextkey )-2100(getnetbyname)-3900(l64a )]TJ 28.5 0 Td (setpwent)Tj -28.5 -1.25 Td [(dbm_open )-3900(getnetent)]TJ 20.4 0 Td [(lgamma )-3900(setutxent)]TJ -20.4 -1.25 Td [(dbm_store )-3300(getopt)]TJ 20.4 0 Td [(lgammaf )-3300(strerror)]TJ -20.4 -1.25 Td [(dirname )-4500(getprotobyname)-2700(lgammal )-3300(strsignal)]TJ T* [(dlerror )-4500(getprotobynumber)-1500(localeconv )-1500(strtok)]TJ T* [(drand48 )-4500(getprotoent)-4500(localtime )-2100(system)]TJ T* [(encrypt )-4500(getpwent)]TJ 20.4 0 Td [(lrand48 )-3300(ttyname)]TJ -20.4 -1.25 Td [(endgrent )-3900(getpwnam)]TJ 20.4 0 Td [(mrand48 )-3300(unsetenv)]TJ -20.4 -1.25 Td [(endpwent )-3900(getpwuid)]TJ 20.4 0 Td (nftw )Tj 8.1 0 Td (wcstombs)Tj -28.5 -1.25 Td [(endutxent )-3300(getservbyname)-3300(nl_langinfo )-900(wctomb)]TJ T* [(getc_unlocked )-900(getservbyport)-3300(ptsname)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1682.25 3438.25 cm 0 0 m 3128 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3942.25 3438.25 cm 0 0 m 0 2020 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3294.25 3438.25 cm 0 0 m 0 2020 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2406.25 3438.25 cm 0 0 m 0 2020 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4810.25 3438.25 cm 0 0 m 0 2020 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1682.25 3438.25 cm 0 0 m 0 2020 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 205.407 326.9411 Tm (Figure 12.9)Tj /T1_1 1 Tf 5.695 0 Td (Functions)Tj /T1_2 1 Tf 4.604 0 Td (not)Tj /T1_1 1 Tf 1.583 0 Td [(guaranteed to be thr)18(ead-safe by POSIX.1)]TJ 9.9982 0 0 9.9982 147.5737 300.5459 Tm [(If )-71(a )-71(function )-71(can )-71(be )-71(safely )-71(called )-71(by )-71(multiple )-71(thr)17(eads )-71(at )-71(the )-71(same )-71(time, )-71(we )-71(say )-71(that)]TJ -1.8 -1.2 Td [(the )-156(function )-156(is)]TJ /T1_2 1 Tf 7.028 0 Td [(thr)18(ead-safe)]TJ /T1_1 1 Tf 0.6564 Tc (.A)Tj 0 Tc 6.054 0 Td [(ll )-156(functions )-156(de\336ned )-156(in )-156(the )-156(Single )-156(UNIX )-156(Speci\336cation )-156(ar)16(e)]TJ -13.083 -1.2 Td [(guaranteed )-329(to )-329(be )-329(thr)18(ead-safe, )-329(except )-329(those )-329(listed )-329(in )-329(Figur)]TJ 0.579 Tc 27.641 0 Td (e1)Tj 0 Tc 1.558 0 Td [(2.9. )-579(In)-579(addition, )-329(the)]TJ /TT0 1 Tf -29.199 -1.2 Td (ctermid)Tj /T1_1 1 Tf 4.487 0 Td (and)Tj /TT0 1 Tf 1.98 0 Td (tmpnam)Tj /T1_1 1 Tf 3.887 0 Td [(functions )-37(ar)]TJ 0.2866 Tc 5.295 0 Td (en)Tj 0 Tc 1.348 0 Td [(ot )-36(guaranteed )-36(to )-36(be )-36(thr)18(ead-safe )-36(if )-36(they )-36(ar)]TJ 0.2865 Tc 18.201 0 Td (ep)Tj 0 Tc 1.366 0 Td (assed)Tj 0.503 Tc -36.562 -1.2 Td (an)Tj 0 Tc 1.585 0 Td [(ull )-253(pointer)]TJ 0.753 Tc 4.834 0 Td (.S)Tj 0 Tc 1.528 0 Td (imilarly)Tj 0.503 Tc 3.387 0 Td (,t)Tj 0 Tc 1.079 0 Td [(her)18(e)-503(is)-503(no)-503(guarantee )-253(that)]TJ /TT0 1 Tf 12.429 0 Td (wcrtomb)Tj /T1_1 1 Tf 4.703 0 Td (and)Tj /TT0 1 Tf 2.196 0 Td (wcsrtombs)Tj /T1_1 1 Tf 5.903 0 Td [(ar)18(e)]TJ -37.644 -1.2 Td [(thr)18(ead-safe when they ar)]TJ 0.25 Tc 10.991 0 Td (ep)Tj 0 Tc 1.33 0 Td (assed a null pointer for their)Tj /TT0 1 Tf 12.772 0 Td (mbstate_t)Tj /T1_1 1 Tf 5.65 0 Td [(ar)18(gument.)]TJ -28.943 -1.2 Td [(Implementations )-1109(that )-1109(support )-1109(thr)18(ead-safe )-1109(functions )-1109(will )-1109(de\336ne )-1109(the)]TJ /TT0 1 Tf -1.8 -1.2 Td (_POSIX_THREAD_SAFE_FUNCTIONS)Tj /T1_1 1 Tf 17.235 0 Td [(symbol )-185(in)]TJ /TT0 1 Tf 4.997 0 Td ()Tj /T1_1 1 Tf 0.6853 Tc (.A)Tj 0 Tc 7.713 0 Td [(pplications )-185(can )-185(also)]TJ -29.945 -1.2 Td [(use )-19(the)]TJ /TT0 1 Tf 3.431 0 Td (_SC_THREAD_SAFE_FUNCTIONS)Tj /T1_1 1 Tf 15.269 0 Td [(ar)18(gument )-19(with)]TJ /TT0 1 Tf 6.877 0 Td (sysconf)Tj /T1_1 1 Tf 4.469 0 Td [(to )-19(check )-19(for )-19(support)]TJ -30.046 -1.2 Td [(of )-38(thr)18(ead-safe )-38(functions )-38(at )-38(r)6(untime. )-288(Prior)-289(to )-38(V)111(ersion )-39(4 )-39(of )-39(the )-39(Single )-39(UNIX )-39(Speci\336cation,)]TJ -0 -1.2 Td [(all )-222(XSI-conforming )-222(implementations )-222(wer)]TJ 0.4719 Tc 18.692 0 Td (er)Tj 0 Tc 1.328 0 Td [(equir)18(ed )-222(to )-222(support )-222(thr)18(ead-safe )-222(functions.)]TJ -0.055 Tc -20.02 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-620(SUSv4, )-620(however)]TJ 0.87 Tc 9.597 0 Td (,t)Tj 0 Tc 1.446 0 Td [(hr)18(ead-safe )-620(function )-620(support )-620(is )-620(now )-620(r)18(equir)18(ed )-620(for )-620(an)]TJ -12.279 -1.2 Td [(implementation to be consider)18(ed POSIX conforming.)]TJ -0.055 Tc 1.8 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-558(thr)18(ead-safe )-558(functions, )-558(implementations )-558(pr)17(ovide )-558(alternative, )-558(thr)18(ead-safe)]TJ -3.036 -1.2 Td [(versions )-61(of )-61(some )-61(of )-61(the )-61(POSIX.1 )-61(functions )-61(that )-61(ar)18(en\325t )-61(thr)19(ead-safe. )-311(Figur)]TJ 0.311 Tc 32.195 0 Td (e1)Tj 0 Tc 1.29 0 Td [(2.10 )-61(lists )-61(the)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46977 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.4)]TJ 31.602 0 Td [(Synchr)18(onization )-250(Attributes)]TJ /T1_1 1 Tf 14.231 0 Td (441)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(clock )-1(IDs )-1(listed )-1(in )-1(Figur)]TJ 0.2513 Tc 10.499 0 Td (e6)Tj 0 Tc 1.23 0 Td [(.8. )-251(W)]TJ 0.2513 Tc 2.409 0 Td (ec)Tj 0 Tc 1.174 0 Td [(an )-1(use )-1(the)]TJ /TT0 1 Tf 4.729 0 Td (pthread_condattr_getclock)Tj /T1_0 1 Tf 15.251 0 Td (function)Tj -35.293 -1.2 Td [(to )-80(r)18(etrieve )-80(the )-80(clock )-80(ID )-80(that )-80(will )-80(be )-80(used )-80(by )-80(the)]TJ /TT0 1 Tf 21.762 0 Td (pthread_cond_timedwait)Tj /T1_0 1 Tf 13.53 0 Td (function)Tj -35.293 -1.2 Td [(for )-105(the )-105(condition )-105(variable )-105(that )-105(was )-105(initialized )-105(with )-105(the)]TJ /TT0 1 Tf 25.013 0 Td (pthread_condattr_t)Tj /T1_0 1 Tf 11.155 0 Td (object.)Tj -0.092 Tc -36.168 -1.2 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td (an change the clock ID with the)Tj /TT0 1 Tf 14.174 0 Td (pthread_condattr_setclock)Tj /T1_0 1 Tf 15.25 0 Td (function.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5914 615.0631 Tm (#include )Tj 0 -2.14 TD (int pthread_condattr_getclock\(const pthread_condattr_t *)Tj 19.2 -1.189 Td (restrict)Tj /T1_2 1 Tf 5.4 0 Td (attr)Tj /TT0 1 Tf (,)Tj -5.4 -1.189 Td (clockid_t *restrict)Tj /T1_2 1 Tf 12 0 Td (clock_id)Tj /TT0 1 Tf (\);)Tj -31.2 -2.14 Td (int pthread_condattr_setclock\(pthread_condattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 19.2 -1.189 Td (clockid_t)Tj /T1_2 1 Tf 6 0 Td (clock_id)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -5.519 -2.14 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5207.25 cm 0 0 m 0 1034 l 3900 1034 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 505.9593 Tm (Curiously)Tj 0.2772 Tc 4.307 0 Td (,t)Tj 0 Tc 0.853 0 Td [(he )-27(Single )-27(UNIX )-27(Speci\336cation )-27(doesn\325t )-27(de\336ne )-27(the)]TJ /T1_2 1 Tf 21.361 0 Td (clock)Tj /T1_0 1 Tf 2.257 0 Td [(attribute )-27(for )-27(any )-27(of)]TJ -30.579 -1.2 Td (the other attribute objects that have a wait function with a timeout.)Tj /TT1 1 Tf 11.9986 0 0 11.9986 129.5844 453.1656 Tm [(12.4.4 )-556(Barrier)-556(Attrib)20(utes)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 429.1685 Tm [(Barriers )-92(have )-92(attributes, )-92(too.)]TJ -0.092 Tc 13.376 0 Td [(We )-276(c)]TJ 0 Tc 2.173 0 Td [(an )-92(use )-92(the)]TJ /TT0 1 Tf 5.002 0 Td (pthread_barrierattr_init)Tj /T1_0 1 Tf 14.742 0 Td (function)Tj -35.293 -1.2 Td [(to )-337(initialize )-337(a )-337(barrier )-337(attributes )-337(object )-337(and )-337(the)]TJ /TT0 1 Tf 22.8 0 Td (pthread_barrierattr_destroy)Tj /T1_0 1 Tf -22.8 -1.2 Td (function to deinitialize a barrier attributes object.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5825 387.2735 Tm (#include )Tj 0 -2.14 TD (int pthread_barrierattr_init\(pthread_barrierattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj 0 -2.14 TD (int pthread_barrierattr_destroy\(pthread_barrierattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 19.681 -2.14 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3250.25 cm 0 0 m 0 713 l 3900 713 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 147.5734 310.2841 Tm [(The )-212(only )-212(barrier )-212(attribute )-212(curr)18(ently )-212(de\336ned )-212(is )-212(the)]TJ /T1_2 1 Tf 23.678 0 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_0 1 Tf 6.277 0 Td [(attribute, )-212(which)]TJ -31.756 -1.2 Td [(contr)18(ols )-38(whether )-38(a )-38(barrier )-38(can )-38(be )-38(used )-38(by )-38(thr)18(eads )-38(fr)18(om )-38(multiple )-38(pr)18(ocesses )-38(or )-38(only )-38(fr)11(om)]TJ 0 -1.2 TD [(within )-141(the )-141(pr)18(ocess )-141(that )-141(initialized )-141(the )-141(barrier)]TJ 0.6412 Tc 20.443 0 Td (.A)Tj 0.3912 Tc 1.669 0 Td (sw)Tj 0 Tc 1.649 0 Td [(ith )-141(the )-141(other )-141(attribute )-141(objects, )-141(we)]TJ -23.762 -1.2 Td [(have )-130(one )-130(function )-130(to )-130(get )-130(the )-130(attribute )-130(\()]TJ /TT0 1 Tf 17.849 0 Td (pthread_barrierattr_getpshared)Tj /T1_0 1 Tf 0.3796 Tc (\)v)Tj 0 Tc 19.278 0 Td (alue)Tj -37.127 -1.2 Td (and one function to set the value \()Tj /TT0 1 Tf (pthread_barrierattr_setpshared)Tj /T1_0 1 Tf (\).)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.574 244.3956 Tm (#include )Tj 0 -2.14 TD (int pthread_barrierattr_getpshared\(const pthread_barrierattr_t *)Tj 19.2 -1.189 Td (restrict)Tj /T1_2 1 Tf 5.4 0 Td (attr)Tj /TT0 1 Tf (,)Tj -5.4 -1.189 Td (int *restrict)Tj /T1_2 1 Tf 8.4 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf (\);)Tj -27.6 -2.14 Td (int pthread_barrierattr_setpshared\(pthread_barrierattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 19.2 -1.189 Td (int)Tj /T1_2 1 Tf 2.4 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf (\);)Tj /T1_0 1 Tf -1.919 -2.14 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1500.25 cm 0 0 m 0 1034 l 3900 1034 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46978 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (440)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-110(only )-110(attribute )-110(supported )-110(for )-110(r)18(eader\320writer )-110(locks )-110(is )-110(the)]TJ /T1_2 1 Tf 26.976 0 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_1 1 Tf 6.175 0 Td (attribute.)Tj -34.951 -1.2 Td [(It )-56(is )-56(identical )-56(to )-56(the )-56(mutex)]TJ /T1_2 1 Tf 12.093 0 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_1 1 Tf 6.121 0 Td [(attribute. )-306(Just)-306(as )-56(with )-56(the )-56(mutex)]TJ /T1_2 1 Tf 14.971 0 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_1 1 Tf -33.185 -1.2 Td [(attributes, )-105(a )-105(pair )-105(of )-105(functions )-105(is )-105(pr)16(ovided )-105(to )-105(get )-105(and )-105(set )-105(the)]TJ /T1_2 1 Tf 27.372 0 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_1 1 Tf 6.17 0 Td [(attributes )-105(of)]TJ -0.018 Tc -33.542 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (ader\320writer locks.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5919 616.263 Tm (#include )Tj 0 -2.021 TD (int pthread_rwlockattr_getpshared\(const pthread_rwlockattr_t *)Tj 20.4 -1.189 Td (restrict)Tj /T1_2 1 Tf 5.4 0 Td (attr)Tj /TT0 1 Tf (,)Tj -5.4 -1.189 Td (int *restrict)Tj /T1_2 1 Tf 8.4 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf (\);)Tj -28.8 -2.021 Td (int pthread_rwlockattr_setpshared\(pthread_rwlockattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 20.4 -1.189 Td (int)Tj /T1_2 1 Tf 2.4 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf (\);)Tj /T1_1 1 Tf -3.119 -2.021 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5251.25 cm 0 0 m 0 1002 l 3900 1002 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 511.5686 Tm [(Although )-10(POSIX )-10(de\336nes )-10(only )-10(one )-10(r)18(eader\320writer )-10(lock )-10(attribute, )-10(implementations )-10(ar)]TJ 0.26 Tc 36.593 0 Td (ef)Tj -0.018 Tc 1.072 0 Td (re)Tj 0 Tc 0.856 0 Td (e)Tj -38.521 -1.2 Td (to de\336ne additional, nonstandar)Tj 0.25 Tc 14.207 0 Td (do)Tj 0 Tc 1.407 0 Td (nes.)Tj /TT1 1 Tf 11.9986 0 0 11.9986 129.5844 461.1747 Tm [(12.4.3 )-556(Condition)]TJ -0.06 Tc 8.836 0 Td (Va)Tj 0 Tc 1.163 0 Td [(riab)10(le )-278(Attrib)20(utes)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5842 437.1775 Tm [(The )-95(Single )-95(UNIX )-95(Speci\336cation )-95(curr)18(ently )-95(de\336nes )-95(two )-95(attributes )-95(for )-95(condition )-95(variables:)]TJ 0 -1.2 TD (the)Tj /T1_2 1 Tf 1.705 0 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_1 1 Tf 6.133 0 Td [(attribute )-68(and )-68(the)]TJ /T1_2 1 Tf 7.833 0 Td (clock)Tj /T1_1 1 Tf 2.298 0 Td [(attribute. )-318(As)-318(with )-68(the )-68(other )-68(attribute )-68(objects, )-68(a)]TJ -17.969 -1.2 Td (pair of functions initialize and deinitialize condition variable attribu\ te objects.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5819 396.4824 Tm (#include )Tj 0 -2.021 TD (int pthread_condattr_init\(pthread_condattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj 0 -2.021 TD (int pthread_condattr_destroy\(pthread_condattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 19.681 -2.021 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3374.25 cm 0 0 m 0 681 l 3900 681 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 147.5734 323.9017 Tm (The)Tj /T1_2 1 Tf 1.969 0 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_1 1 Tf 6.111 0 Td [(attribute )-45(is )-45(the )-45(same )-45(as )-45(with )-45(the )-45(other )-45(synchr)14(onization )-45(attributes.)]TJ -9.88 -1.2 Td [(It )-96(contr)18(ols )-96(whether )-96(condition )-96(variables )-96(can )-96(be )-96(used )-96(by )-96(thr)17(eads )-96(within )-96(a )-96(single )-96(pr)17(ocess)]TJ 0 -1.2 TD [(only )-104(or )-104(fr)18(om )-104(within )-104(multiple )-104(pr)19(ocesses. )-354(T)]TJ 0.3538 Tc 19.068 0 Td (o\336)Tj 0 Tc 1.505 0 Td [(nd )-104(the )-104(curr)18(ent )-104(value )-104(of )-104(the)]TJ /T1_2 1 Tf 12.612 0 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_1 1 Tf -33.185 -1.2 Td [(attribute, )-50(we )-50(use )-50(the)]TJ /TT0 1 Tf 9.455 0 Td (pthread_condattr_getpshared)Tj /T1_1 1 Tf 16.5 0 Td [(function. )-300(T)]TJ 0.3 Tc 5.028 0 Td (os)Tj 0 Tc 1.27 0 Td [(et )-50(its )-50(value, )-50(we)]TJ -32.253 -1.2 Td (use the)Tj /TT0 1 Tf 3.393 0 Td (pthread_condattr_setpshared)Tj /T1_1 1 Tf 16.45 0 Td (function.)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.5734 259.2133 Tm (#include )Tj 0 -2.021 TD (int pthread_condattr_getpshared\(const pthread_condattr_t *)Tj 19.2 -1.189 Td (restrict)Tj /T1_2 1 Tf 5.4 0 Td (attr)Tj /TT0 1 Tf (,)Tj -5.4 -1.189 Td (int *restrict)Tj /T1_2 1 Tf 8.4 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf (\);)Tj -27.6 -2.021 Td (int pthread_condattr_setpshared\(pthread_condattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 19.2 -1.189 Td (int)Tj /T1_2 1 Tf 2.4 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf (\);)Tj /T1_1 1 Tf -1.919 -2.021 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1681.25 cm 0 0 m 0 1001 l 3900 1001 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9976 0 0 9.9976 147.5646 154.5529 Tm (The)Tj /T1_2 1 Tf 2.252 0 Td (clock)Tj /T1_1 1 Tf 2.558 0 Td [(attribute )-328(contr)18(ols )-328(which )-328(clock )-328(is )-328(used )-328(when )-328(evaluating )-328(the )-328(timeout)]TJ -6.609 -1.2 Td [(ar)18(gument )-51(\()]TJ /T1_2 1 Tf (tsptr)Tj /T1_1 1 Tf [(\))-301(of)-301(t)-1(he)]TJ /TT0 1 Tf 10.388 0 Td (pthread_cond_timedwait)Tj /T1_1 1 Tf 13.502 0 Td [(function. )-301(The)-302(legal )-51(values )-51(ar)]TJ 0.3015 Tc 12.943 0 Td (et)Tj 0 Tc 1.106 0 Td (he)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46979 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.4)]TJ 31.602 0 Td [(Synchr)18(onization )-250(Attributes)]TJ /T1_1 1 Tf 14.231 0 Td (439)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 0.6 Tc 8.9995 0 0 8.9995 178.1893 670.2598 Tm (*C)Tj 0 Tc 1.8 0 Td (alculate the absolute time when we want to retry.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (clock_gettime\(CLOCK_REALTIME, &when\);)Tj 0 -1.189 TD [(when.tv_sec += 10;)-1200(/* 10 seconds from now */)]TJ T* (timeout\(&when, retry, \(void *\)\(\(unsigned long\)arg\)\);)Tj -2.4 -1.189 Td (})Tj T* (pthread_mutex_unlock\(&mutex\);)Tj 0 -1.783 TD (/* continue processing ... */)Tj 0 -1.783 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5585.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 256.5892 542.4339 Tm (Figure 12.8)Tj /T1_0 1 Tf 6.25 0 Td [(Using a r)18(ecursive mutex)]TJ -0.092 Tc 9.9988 0 0 9.9988 147.5823 518.4368 Tm [(We )-499(u)]TJ 0 Tc 2.555 0 Td [(se )-315(the)]TJ /TT0 1 Tf 3.421 0 Td (makethread)Tj /T1_0 1 Tf 6.565 0 Td [(function )-315(fr)18(om )-315(Figur)]TJ 0.5654 Tc 9.36 0 Td (e1)Tj 0 Tc 1.544 0 Td [(2.4 )-315(to )-315(cr)18(eate )-315(a )-315(thr)16(ead )-315(in )-315(the)]TJ -25.246 -1.2 Td [(detached )-102(state.)-602(Because )-102(the)]TJ /TT0 1 Tf 12.92 0 Td (func)Tj /T1_0 1 Tf 2.752 0 Td [(function )-102(ar)18(gument )-102(passed )-102(to )-102(the)]TJ /TT0 1 Tf 15.069 0 Td (timeout)Tj /T1_0 1 Tf 4.552 0 Td (function)Tj -35.293 -1.2 Td [(will r)8(un in the futur)18(e, we don\325t want to wait ar)18(ound for the thr)18(ead to complete.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-207(c)]TJ 0 Tc 2.104 0 Td [(ould )-23(call)]TJ /TT0 1 Tf 4.123 0 Td (sleep)Tj /T1_0 1 Tf 3.273 0 Td [(to )-23(wait )-23(for )-23(the )-23(timeout )-23(to )-23(expir)18(e, )-23(but )-23(that )-23(gives )-23(us )-23(only )-23(second)]TJ -11.301 -1.2 Td (granularity)Tj 0.5186 Tc 4.884 0 Td (.I)Tj 0 Tc 1.106 0 Td [(f)-269(we)-269(w)1(ant )-19(to )-19(wait )-19(for )-19(some )-19(time )-19(other )-19(than )-19(an )-19(integral )-19(number )-19(of )-19(seconds,)]TJ -5.99 -1.2 Td [(we )-70(need )-70(to )-70(use)]TJ /TT0 1 Tf 7.124 0 Td (nanosleep)Tj /T1_0 1 Tf 5.721 0 Td (or)Tj /TT0 1 Tf 1.261 0 Td (clock_nanosleep)Tj /T1_0 1 Tf 0.3205 Tc (,b)Tj 0 Tc 10.124 0 Td [(oth )-70(of )-70(which )-70(allow )-70(us )-70(to )-70(sleep )-70(at)]TJ -24.23 -1.2 Td [(higher r)18(esolution.)]TJ 7.999 0 0 7.999 183.5785 426.4478 Tm [(On )-141(systems )-141(that )-141(don\325t )-141(de\336ne)]TJ /TT0 1 Tf 13.674 0 Td (CLOCK_REALTIME)Tj /T1_0 1 Tf [(,)-391(we)-391(d)-1(e\336ne)]TJ /TT0 1 Tf 13.893 0 Td (clock_nanosleep)Tj /T1_0 1 Tf 9.391 0 Td [(in )-141(terms )-141(of)]TJ /TT0 1 Tf -36.958 -1.25 Td (nanosleep)Tj /T1_0 1 Tf 0.7326 Tc (.H)Tj 0 Tc 7.215 0 Td (owever)Tj 0.4826 Tc 3.224 0 Td (,F)Tj -0.018 Tc 1.289 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD )-233(8.0 )-233(de\336nes )-233(this )-233(symbol )-233(to )-233(support)]TJ /TT0 1 Tf 19.441 0 Td (clock_gettime)Tj /T1_0 1 Tf 8.283 0 Td (and)Tj /TT0 1 Tf -40.307 -1.25 Td (clock_settime)Tj /T1_0 1 Tf 0.415 Tc (,b)Tj 0 Tc 9.018 0 Td [(ut )-165(doesn\325t )-165(support)]TJ /TT0 1 Tf 8.916 0 Td (clock_nanosleep)Tj /T1_0 1 Tf 9.415 0 Td [(\(only )-165(Linux )-165(3.2.0 )-165(and )-165(Solaris )-165(10)]TJ -27.349 -1.25 Td [(curr)18(ently support)]TJ /TT0 1 Tf 8.049 0 Td (clock_nanosleep)Tj /T1_0 1 Tf (.\))Tj -8.049 -2.125 Td [(Additionally)111(,)-777(on)-777(systems )-527(that )-527(don\325t )-527(de\336ne)]TJ /TT0 1 Tf 21.953 0 Td (CLOCK_REALTIME)Tj /T1_0 1 Tf [(,)-777(we)-777(p)]TJ -0.018 Tc (ro)Tj 0 Tc 13.041 0 Td [(vide )-527(our )-527(own)]TJ -34.994 -1.25 Td [(implementation )-29(of)]TJ /TT0 1 Tf 8.498 0 Td (clock_gettime)Tj /T1_0 1 Tf 8.079 0 Td [(that )-29(calls)]TJ /TT0 1 Tf 4.243 0 Td (gettimeofday)Tj /T1_0 1 Tf 7.479 0 Td [(and )-29(translates )-29(micr)18(oseconds )-29(to)]TJ -28.299 -1.25 Td (nanoseconds.)Tj 9.9988 0 0 9.9988 147.5831 338.4584 Tm [(The )-3(caller )-3(of)]TJ /TT0 1 Tf 5.714 0 Td (timeout)Tj /T1_0 1 Tf 4.454 0 Td [(needs )-3(to )-3(hold )-3(a )-3(mutex )-3(to )-3(check )-3(the )-3(condition )-3(and )-3(to )-3(schedule)]TJ -11.967 -1.2 Td (the)Tj /TT0 1 Tf 1.793 0 Td (retry)Tj /T1_0 1 Tf 3.406 0 Td [(function )-156(as )-156(an )-156(atomic )-156(operation.)-655(The)]TJ /TT0 1 Tf 17.578 0 Td (retry)Tj /T1_0 1 Tf 3.406 0 Td [(function )-156(will )-156(try )-156(to )-156(lock )-156(the)]TJ -26.183 -1.2 Td [(same )-237(mutex.)-737(Unless )-237(the )-237(mutex )-237(is )-237(r)20(ecursive, )-236(a )-236(deadlock )-236(will )-236(occur )-236(if )-236(the)]TJ /TT0 1 Tf 34.8 0 Td (timeout)Tj /T1_0 1 Tf -34.8 -1.2 Td (function calls)Tj /TT0 1 Tf 6.157 0 Td (retry)Tj /T1_0 1 Tf 3.25 0 Td [(dir)18(ectly)111(.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3025.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9978 0 0 11.9978 129.5767 264.0515 Tm [(12.4.2 )-556(Reader\320Writer)-556(Loc)]TJ 0.556 Tc 12.763 0 Td (kA)Tj 0 Tc 1.834 0 Td [(ttrib)20(utes)]TJ /T1_0 1 Tf 9.9982 0 0 9.9982 129.5766 242.4554 Tm [(Reader\320writer )-970(locks )-970(also )-970(have )-970(attributes, )-970(similar )-970(to )-970(mutexes.)]TJ -0.092 Tc 34.888 0 Td [(We )-1154(u)]TJ 0 Tc 3.21 0 Td (se)Tj /TT0 1 Tf -38.097 -1.2 Td (pthread_rwlockattr_init)Tj /T1_0 1 Tf 14.187 0 Td [(to )-137(initialize )-137(a)]TJ /TT0 1 Tf 6.376 0 Td (pthread_rwlockattr_t)Tj /T1_0 1 Tf 12.387 0 Td [(str)8(uctur)]TJ 0.3874 Tc 3.49 0 Td (ea)Tj 0 Tc 1.366 0 Td (nd)Tj /TT0 1 Tf -37.807 -1.2 Td (pthread_rwlockattr_destroy)Tj /T1_0 1 Tf 15.85 0 Td [(to deinitialize the str)8(uctur)18(e.)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.5735 200.5629 Tm (#include )Tj 0 -2.021 TD (int pthread_rwlockattr_init\(pthread_rwlockattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj 0 -2.021 TD (int pthread_rwlockattr_destroy\(pthread_rwlockattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 19.681 -2.021 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1415.25 cm 0 0 m 0 681 l 3900 681 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46980 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (528)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(kernel )-23(daemons )-23(decide )-23(when )-23(dirty )-23(pages )-23(ar)]TJ 0.2733 Tc 19.455 0 Td (ew)Tj 0 Tc 1.586 0 Td [(ritten )-23(back )-23(based )-23(on )-23(\(a\) )-23(system )-23(load )-23(and)]TJ -21.041 -1.2 Td [(\(b\) )-121(con\336guration )-121(parameters )-121(meant )-121(to )-121(limit )-121(data )-121(loss )-121(in )-121(the )-121(event )-121(of )-121(a )-121(system )-121(failur)21(e.)]TJ 0 -1.2 TD [(When )-185(the )-185(changes )-185(ar)]TJ 0.4355 Tc 9.781 0 Td (ew)Tj 0 Tc 1.749 0 Td [(ritten )-185(back, )-185(they )-185(ar)]TJ 0.4355 Tc 8.829 0 Td (ew)Tj 0 Tc 1.749 0 Td [(ritten )-185(in )-185(units )-185(of )-185(pages.)-687(Thus, )-185(if )-185(we)]TJ -22.106 -1.2 Td [(modify )-86(only )-86(one )-86(byte )-86(in )-86(a )-86(page, )-86(when )-86(the )-86(change )-86(is )-86(written )-86(back )-86(to )-86(the )-86(\336le, )-86(the )-86(entir)18(e)]TJ T* (page will be written.)Tj 1.8 -1.2 Td [(If )-102(the )-102(pages )-102(in )-102(a )-102(shar)18(ed )-102(mapping )-102(have )-102(been )-102(modi\336ed, )-102(we )-102(can )-102(call)]TJ /TT0 1 Tf 30.408 0 Td (msync)Tj /T1_1 1 Tf 3.352 0 Td [(to )-102(\337ush)]TJ -35.559 -1.2 Td [(the )-34(changes )-34(to )-34(the )-34(\336le )-34(that )-34(backs )-34(the )-34(mapping.)-532(The)]TJ /TT0 1 Tf 23.212 0 Td (msync)Tj /T1_1 1 Tf 3.284 0 Td [(function )-34(is )-34(similar )-34(to)]TJ /TT0 1 Tf 9.504 0 Td (fsync)Tj /T1_1 1 Tf -36 -1.2 Td [(\(Section 3.13\), but works on memory-mapped r)18(egions.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 568.2659 Tm (#include )Tj 0 -1.902 TD (int msync\(void *)Tj /T1_2 1 Tf (addr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 13.233 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (len)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.023 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ags)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 5.195 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5295.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 515.9981 Tm [(If )-373(the )-373(mapping )-373(is )-373(private, )-373(the )-373(\336le )-373(mapped )-373(is )-373(not )-373(modi\336ed.)-873(As )-373(with )-373(the )-373(other)]TJ 0 -1.2 TD [(memory-mapped functions, the addr)18(ess must be aligned on a page boundary)111(.)]TJ 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 2.059 0 Td (\337ags)Tj /T1_1 1 Tf 2.263 0 Td [(ar)18(gument )-135(allows )-135(us )-135(some )-135(contr)18(ol )-135(over )-135(how )-135(the )-135(memory )-135(is )-135(\337ushed.)]TJ -0.092 Tc 31.492 0 Td (We)Tj 0 Tc -37.613 -1.2 Td [(can )-74(specify )-74(the)]TJ /TT0 1 Tf 7.012 0 Td (MS_ASYNC)Tj /T1_1 1 Tf 5.124 0 Td [(\337ag )-74(to )-74(simply )-74(schedule )-74(the )-74(pages )-74(to )-74(be )-74(written.)-571(If )-74(we )-74(want)]TJ -12.136 -1.2 Td [(to )-7(wait )-7(for )-7(the )-7(writes )-7(to )-7(complete )-7(befor)]TJ 0.2572 Tc 17.242 0 Td (er)Tj 0 Tc 1.113 0 Td [(eturning, )-7(we )-7(can )-7(use )-7(the)]TJ /TT0 1 Tf 11.082 0 Td (MS_SYNC)Tj /T1_1 1 Tf 4.457 0 Td [(\337ag. )-257(Either)]TJ /TT0 1 Tf -33.895 -1.2 Td (MS_ASYNC)Tj /T1_1 1 Tf 5.05 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (MS_SYNC)Tj /T1_1 1 Tf 4.45 0 Td (must be speci\336ed.)Tj -8.891 -1.2 Td [(An )-61(optional )-61(\337ag,)]TJ /TT0 1 Tf 7.891 0 Td (MS_INVALIDATE)Tj /T1_1 1 Tf 0.3114 Tc (,l)Tj 0 Tc 8.652 0 Td [(ets )-61(us )-61(tell )-61(the )-61(operating )-61(system )-61(to )-61(discar)]TJ 0.3113 Tc 18.096 0 Td (da)Tj 0 Tc 1.422 0 Td (ny)Tj -37.862 -1.2 Td [(pages )-189(that )-189(ar)]TJ 0.4395 Tc 6.05 0 Td (eo)Tj 0 Tc 1.464 0 Td [(ut )-189(of )-189(sync )-189(with )-189(the )-189(underlying )-189(storage.)-689(Some )-189(implementations )-189(will)]TJ -7.514 -1.2 Td (discar)Tj 0.336 Tc 2.647 0 Td (da)Tj 0 Tc 1.447 0 Td [(ll )-86(pages )-86(in )-86(the )-86(speci\336ed )-86(range )-86(when )-86(we )-86(use )-86(this )-86(\337ag, )-86(but )-86(this )-86(behavior )-86(is )-86(not)]TJ -0.018 Tc -4.094 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(ed.)]TJ 7.999 0 0 7.999 183.578 388.0134 Tm (The)Tj /TT0 1 Tf 2.012 0 Td (msync)Tj /T1_1 1 Tf 3.338 0 Td [(function )-88(is )-88(included )-88(in )-88(the )-88(XSI )-88(option )-88(in )-88(the )-88(Single )-88(UNIX )-88(Speci\336cation.)-588(As )-88(such,)]TJ -5.35 -1.25 Td (all UNIX systems must support it.)Tj 0.2628 Tc 9.9988 0 0 9.9988 147.5823 358.017 Tm (Am)Tj 0 Tc 1.924 0 Td [(emory-mapped )-13(r)18(egion )-13(is )-13(automatically )-13(unmapped )-13(when )-13(the )-13(pr)19(ocess )-13(terminates)]TJ -3.724 -1.2 Td [(or )-173(we )-173(can )-173(unmap )-173(a )-173(r)18(egion )-173(dir)18(ectly )-173(by )-173(calling )-173(the)]TJ /TT0 1 Tf 23.339 0 Td (munmap)Tj /T1_1 1 Tf 4.023 0 Td [(function. )-423(Closing)-424(the )-173(\336le)]TJ -27.362 -1.2 Td [(descriptor used when we mapped the r)18(egion does not unmap the r)18(egion.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5822 317.3219 Tm (#include )Tj 0 -1.902 TD (int munmap\(void *)Tj /T1_2 1 Tf (addr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 13.833 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (len)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 9.418 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2786.25 cm 0 0 m 0 477 l 3900 477 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 265.0723 Tm (The)Tj /TT0 1 Tf 2.054 0 Td (munmap)Tj /T1_1 1 Tf 3.98 0 Td [(function )-130(does )-130(not )-130(af)18(fect )-130(the )-130(object )-130(that )-130(was )-130(mapped)]TJ 0.0833 Tc 23.878 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(hat )-130(is, )-130(the )-130(call )-130(to)]TJ /TT0 1 Tf -31.322 -1.2 Td (munmap)Tj /T1_1 1 Tf 3.891 0 Td [(does )-41(not )-41(cause )-41(the )-41(contents )-41(of )-41(the )-41(mapped )-41(r)14(egion )-42(to )-42(be )-42(written )-42(to )-42(the )-42(disk )-42(\336le.)]TJ -3.892 -1.2 Td [(The )-120(updating )-120(of )-120(the )-120(disk )-120(\336le )-120(for )-120(a)]TJ /TT0 1 Tf 15.999 0 Td (MAP_SHARED)Tj /T1_1 1 Tf -0.018 Tc 6.37 0 Td (re)Tj 0 Tc 0.856 0 Td [(gion )-120(happens )-120(automatically )-120(by )-120(the)]TJ -23.224 -1.2 Td [(kernel\325s )-124(virtual )-124(memory )-124(algorithm )-124(sometime )-124(after )-124(we )-124(stor)]TJ 0.3742 Tc 26.516 0 Td (ei)Tj 0 Tc 1.144 0 Td [(nto )-124(the )-124(memory-mapped)]TJ -0.018 Tc -27.661 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(gion. )-416(Modi\336cations)-415(to )-166(memory )-166(in )-166(a)]TJ /TT0 1 Tf 17.067 0 Td (MAP_PRIVATE)Tj /T1_1 1 Tf -0.018 Tc 7.016 0 Td (re)Tj 0 Tc 0.856 0 Td [(gion )-165(ar)]TJ 0.4155 Tc 3.268 0 Td (ed)Tj 0 Tc 1.506 0 Td [(iscar)18(ded )-165(when )-165(the)]TJ -0.018 Tc -30.568 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (gion is unmapped.)Tj /TT2 1 Tf -4.456 -2.88 Td (Example)Tj /T1_1 1 Tf 3.6 -2.16 Td [(The )-331(pr)18(ogram )-331(in )-331(Figur)]TJ 0.5809 Tc 10.531 0 Td (e1)Tj 0 Tc 1.56 0 Td [(4.27 )-331(copies )-331(a )-331(\336le )-331(\(similar )-331(to )-331(the)]TJ /TT0 1 Tf 16.143 0 Td (cp)Tj /T1_1 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.914 -0.04 Td [(command\) )-331(using)]TJ -31.181 -1.2 Td (memory-mapped I/O.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46981 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (526)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2112 6494 720 144 re S Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 238.1857 640.4016 Tm (stack)Tj -2.75 -6.575 Td (memory-mapped)Tj 0.854 -1.25 Td (portion of \336le)Tj 1.939 -7.475 Td (heap)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2112 4910 720 216 re S Q BT /T1_1 1 Tf 7.999 0 0 7.999 215.8741 504.9794 Tm (uninitialized data)Tj 2.879 -1.25 Td (\(bss\))Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2112 4766 720 144 re S Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 220.6003 481.9532 Tm (initialized data)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2112 4550 720 216 re S Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 240.5543 463.9286 Tm (text)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2112.25 6350.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2188.25 6350.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2264.25 6350.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2340.25 6350.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2416.25 6350.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2492.25 6350.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2568.25 6350.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2644.25 6350.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2719.25 6350.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2796.25 6350.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2112.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2188.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2264.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2340.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2416.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2492.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2568.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2644.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2719.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2796.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2112.25 6206.25 cm 0 0 m 720 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2112.25 5486.25 cm 0 0 m 720 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2112 5126 720 1368 re S Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 163.6549 656.8429 Tm [(high addr)18(ess)]TJ 0.34 -24.85 Td [(low addr)18(ess)]TJ ET q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 207.6 548.6 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 2076 5486 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2004.25 5486.25 cm 0 0 m -144 0 l S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 149.2423 546.6432 Tm (start addr)Tj ET q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 196.8 548.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 1968 5486 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 196.8 620.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 1968 6206 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1968.25 5558.25 cm 0 0 m 0 576 l S Q Q BT /T1_2 1 Tf 7.9962 0 0 7.9962 184.9272 582.5603 Tm (len)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm 0.699 g 340.8 455 36 21.6 re f Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 3408 4550 360 216 re S Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 3768 4550 720 216 re S Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 381.5939 468.7868 Tm (memory-mapped)Tj 0.854 -1.25 Td (portion of \336le)Tj ET q 0.9994601 0 0 0.9994601 0 0 cm 0.699 g 448.8 455 14.4 21.6 re f Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 4488 4550 144 216 re S Q BT /T1_1 1 Tf 7.9952 0 0 7.9952 325.6046 463.7617 Tm (\336le:)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3408.25 4478.25 cm 0 0 m 0 -144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3768.25 4478.25 cm 0 0 m 0 -144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4488.25 4478.25 cm 0 0 m 0 -144 l S Q Q q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 340.8 444.2 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 3408 4442 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 376.8 444.2 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 3768 4442 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3480.25 4442.25 cm 0 0 m 216 0 l S Q Q BT /T1_2 1 Tf 7.9938 0 0 7.9938 354.5234 437.0989 Tm (off)Tj ET q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 376.8 437 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 3768 4370 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 448.8 437 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 4488 4370 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3840.25 4370.25 cm 0 0 m 576 0 l S Q Q BT /T1_2 1 Tf 7.9928 0 0 7.9928 407.541 429.8529 Tm (len)Tj ET q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4488 5702.0098 cm 0 0 m -0.05 12.01 -0.54 24.02 -1.45 36 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4482.23 5777.6099 cm 0 0 m -1.73 11.83 -3.9 23.6 -6.48 35.27 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4465.6802 5851.04 cm 0 0 m -3.68 11.42 -7.76 22.71 -12.24 33.84 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4437.6099 5920.8799 cm 0 0 m -5.13 11 -10.66 21.81 -16.57 32.41 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4400.1602 5986.3901 cm 0 0 m -6.86 9.86 -14.06 19.47 -21.6 28.81 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4352.6401 6045.4399 cm 0 0 m -8.1 8.69 -16.51 17.1 -25.2 25.2 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.2002 6096.5601 cm 0 0 m -9.34 7.54 -18.95 14.74 -28.81 21.6 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4235.29 6139.04 cm 0 0 m -10.6 5.91 -21.41 11.44 -32.41 16.57 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4166.8799 6171.4399 cm 0 0 m -11.13 4.48 -22.42 8.56 -33.84 12.24 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4094.8799 6193.75 cm 0 0 m -11.67 2.58 -23.45 4.75 -35.28 6.48 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4020.01 6204.5498 cm 0 0 m -11.98 0.91 -23.99 1.4 -36 1.45 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3984.25 6206.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3910.25 6206.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3835.25 6206.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3761.25 6206.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3686.25 6206.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3612.25 6206.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3537.25 6206.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3463.25 6206.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3388.25 6206.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3314.25 6206.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3240.25 6206.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3165.25 6206.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3091.25 6206.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3017.25 6206.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2942.25 6206.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2868.25 6206.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4488.25 5702.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4488.25 5627.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4488.25 5552.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4488.25 5476.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4488.25 5402.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4488.25 5327.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4488.25 5252.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4488.25 5177.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4488.25 5102.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4488.25 5027.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4488.25 4952.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4488.25 4877.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4488.25 4802.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3768 5126 cm 0 0 m 0.01 1.2 0.02 2.41 0.02 3.62 c 0.02 14.43 -0.47 25.23 -1.44 36 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3760.0901 5200.8799 cm 0 0 m -2.52 11.91 -5.65 23.69 -9.36 35.28 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3736.3201 5272.8799 cm 0 0 m -4.73 11.06 -10.02 21.88 -15.84 32.4 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3698.8799 5338.3901 cm 0 0 m -7.2 9.74 -14.89 19.12 -23.04 28.09 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3648.48 5393.8398 cm 0 0 m -8.97 8.15 -18.35 15.84 -28.09 23.04 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3587.28 5438.48 cm 0 0 m -10.52 5.82 -21.34 11.11 -32.4 15.84 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3518.1599 5468.73 cm 0 0 m -11.59 3.71 -23.37 6.84 -35.28 9.36 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3444.01 5484.5601 cm 0 0 m -10.76 0.97 -21.57 1.46 -32.38 1.46 c -33.58 1.46 -34.8 1.45 -36 1.44 c S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3408.25 5486.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3331.25 5486.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3254.25 5486.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3177.25 5486.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3099.25 5486.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3022.25 5486.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2945.25 5486.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2868.25 5486.25 cm 0 0 m -36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3768.25 5126.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3768.25 5061.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3768.25 4996.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3768.25 4931.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3768.25 4867.25 cm 0 0 m 0 -36 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3768.25 4802.25 cm 0 0 m 0 -36 l S Q Q BT /T1_0 1 Tf 7.9923 0 0 7.9923 238.0514 407.8083 Tm (Figure 14.26)Tj /T1_1 1 Tf 6.195 0 Td (Example of a memory-mapped \336le)Tj 9.9904 0 0 9.9904 129.4758 376.6382 Tm [(the )-240(mapped )-240(memory )-240(being )-240(somewher)]TJ 0.4901 Tc 17.829 0 Td (eb)Tj 0 Tc 1.522 0 Td [(etween )-240(the )-240(heap )-240(and )-240(the )-240(stack: )-240(this )-240(is )-240(an)]TJ -19.352 -1.2 Td [(implementation detail and may dif)18(fer fr)18(om one implementation to the next.)]TJ 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 1.924 0 Td (\337ag)Tj /T1_1 1 Tf 1.739 0 Td [(ar)18(gument af)18(fects various attributes of the mapped r)18(egion.)]TJ /TT0 1 Tf -3.663 -2.04 Td (MAP_FIXED)Tj /T1_1 1 Tf 7.8 0 Td [(The )-46(r)18(eturn )-46(value )-46(must )-46(equal)]TJ /T1_2 1 Tf 13.021 0 Td (addr)Tj /T1_1 1 Tf 0.5456 Tc (.U)Tj 0 Tc 3.407 0 Td [(se )-46(of )-46(this )-46(\337ag )-46(is )-46(discouraged,)]TJ -16.428 -1.2 Td [(as )-97(it )-97(hinders )-97(portability)]TJ 0.5966 Tc 10.51 0 Td (.I)Tj 0.3466 Tc 1.184 0 Td (ft)Tj 0 Tc 1.006 0 Td [(his )-96(\337ag )-96(is )-96(not )-96(speci\336ed )-96(and )-96(if)]TJ /T1_2 1 Tf 13.807 0 Td (addr)Tj /T1_1 1 Tf 2.179 0 Td (is)Tj -28.685 -1.2 Td [(nonzer)18(o, )-75(then )-75(the )-75(kernel )-75(uses)]TJ /T1_2 1 Tf 13.556 0 Td (addr)Tj /T1_1 1 Tf 2.158 0 Td [(as )-75(a )-75(hint )-75(of )-75(wher)17(e)-325(to)-325(p)-1(lace )-75(the)]TJ -15.714 -1.2 Td [(mapped )-327(r)18(egion, )-327(but )-327(ther)]TJ 0.5775 Tc 11.735 0 Td (ei)Tj 0 Tc 1.347 0 Td [(s)-577(no)-577(g)-1(uarantee )-327(that )-327(the )-327(r)17(equested)]TJ -13.082 -1.2 Td [(addr)18(ess )-451(will )-451(be )-451(used.)-951(Maximum )-451(portability )-451(is )-451(obtained )-451(by)]TJ 0 -1.2 TD (specifying)Tj /T1_2 1 Tf 4.807 0 Td (addr)Tj /T1_1 1 Tf 2.083 0 Td (as 0.)Tj 7.9923 0 0 7.9923 255.3553 252.3576 Tm [(Support )-468(for )-468(the)]TJ /TT0 1 Tf 8.411 0 Td (MAP_FIXED)Tj /T1_1 1 Tf 6.118 0 Td [(\337ag )-468(is )-468(optional )-468(on )-468(POSIX-conforming)]TJ -14.529 -1.25 Td [(systems, but r)18(equir)18(ed on XSI-conforming systems.)]TJ /TT0 1 Tf 9.9904 0 0 9.9904 147.459 221.3874 Tm (MAP_SHARED)Tj /T1_1 1 Tf 7.8 0 Td [(This )-256(\337ag )-256(describes )-256(the )-256(disposition )-256(of )-256(stor)]TJ 0.5059 Tc 19.581 0 Td (eo)Tj 0 Tc 1.531 0 Td [(perations )-256(into )-256(the)]TJ -21.112 -1.2 Td [(mapped )-323(r)18(egion )-323(by )-323(this )-323(pr)16(ocess. )-573(This)-574(\337ag )-323(speci\336es )-323(that )-323(stor)17(e)]TJ -0 -1.2 Td [(operations )-145(modify )-145(the )-145(mapped )-145(\336le)]TJ 0.0833 Tc 16.01 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(hat )-145(is, )-145(a )-145(stor)]TJ 0.395 Tc 5.731 0 Td (eo)Tj 0 Tc 1.42 0 Td [(peration )-145(is)]TJ -24.57 -1.2 Td [(equivalent )-251(to )-251(a)]TJ /TT0 1 Tf 7.552 0 Td (write)Tj /T1_1 1 Tf 3.501 0 Td [(to )-251(the )-251(\336le.)-751(Either )-251(this )-251(\337ag )-251(or )-251(the )-251(next)]TJ -11.054 -1.2 Td (\()Tj /TT0 1 Tf (MAP_PRIVATE)Tj /T1_1 1 Tf (\), but not both, must be speci\336ed.)Tj /TT0 1 Tf -7.8 -1.96 Td (MAP_PRIVATE)Tj /T1_1 1 Tf 7.8 0 Td [(This )-1(\337ag )-1(says )-1(that )-1(stor)]TJ 0.2507 Tc 9.888 0 Td (eo)Tj 0 Tc 1.276 0 Td [(perations )-1(into )-1(the )-1(mapped )-1(r)19(egion )-1(cause )-1(a)]TJ -11.164 -1.2 Td [(private )-272(copy )-272(of )-272(the )-272(mapped )-272(\336le )-272(to )-272(be )-272(cr)16(eated. )-522(All)-523(successive)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46982 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (472)Tj /T1_1 1 Tf 3.5 0 Td [(Daemon )-250(Pr)18(ocesses )]TJ 38.741 0 Td [(Chapter)-500(13)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1584.25 6670.25 cm 0 0 m 3323 0 l S Q Q BT /T1_2 1 Tf 7.9995 0 0 7.9995 180.0772 658.9605 Tm (facility)Tj /T1_1 1 Tf 6.498 0 Td (XSI )Tj 14.854 0 Td (Description)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1584.25 6550.25 cm 0 0 m 3323 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1584.25 6530.25 cm 0 0 m 3323 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 162.4525 644.9226 Tm (LOG_AUDIT)Tj /T1_1 1 Tf 11.729 0 Td (the audit facility)Tj /TT0 1 Tf -11.729 -1.25 Td (LOG_AUTH)Tj /T1_1 1 Tf 11.729 0 Td [(authorization pr)18(ograms:)]TJ /TT0 1 Tf 11.02 0 Td (login)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.5 0 Td (su)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 1.7 0 Td (getty)Tj /T1_1 1 Tf 0.25 Tc (,.)Tj 0 Tc 3.75 0 Td (..)Tj /TT0 1 Tf -31.699 -1.25 Td (LOG_AUTHPRIV)Tj /T1_1 1 Tf 11.729 0 Td (same as)Tj /TT0 1 Tf 3.71 0 Td (LOG_AUTH)Tj /T1_1 1 Tf 0.25 Tc (,b)Tj 0 Tc 5.853 0 Td [(ut logged to \336le with r)18(estricted permissions)]TJ /TT0 1 Tf -21.292 -1.25 Td (LOG_CONSOLE)Tj /T1_1 1 Tf 11.729 0 Td (messages written to)Tj /TT0 1 Tf 9.024 0 Td (/dev/console)Tj -20.753 -1.25 Td (LOG_CRON )Tj 11.729 0 Td (cron)Tj /T1_1 1 Tf 2.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (at)Tj -16.322 -1.25 Td (LOG_DAEMON)Tj /T1_1 1 Tf 11.729 0 Td (system daemons:)Tj /TT0 1 Tf 7.867 0 Td (inetd)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.5 0 Td (routed)Tj /T1_1 1 Tf 0.25 Tc (,.)Tj 0 Tc 4.35 0 Td (..)Tj /TT0 1 Tf -27.446 -1.25 Td (LOG_FTP)Tj /T1_1 1 Tf 11.729 0 Td (the FTP daemon \()Tj /TT0 1 Tf (ftpd)Tj /T1_1 1 Tf (\))Tj /TT0 1 Tf -11.729 -1.25 Td (LOG_KERN)Tj /T1_1 1 Tf 11.729 0 Td (messages generated by the kernel)Tj /TT0 1 Tf -11.729 -1.25 Td (LOG_LOCAL0)Tj /T1_1 1 Tf 1.9615 Tc 9.162 0 Td (\245r)Tj 0 Tc 2.944 0 Td (eserved for local use)Tj /TT0 1 Tf -12.106 -1.25 Td (LOG_LOCAL1)Tj /T1_1 1 Tf 1.9615 Tc 9.162 0 Td (\245r)Tj 0 Tc 2.944 0 Td (eserved for local use)Tj /TT0 1 Tf -12.106 -1.25 Td (LOG_LOCAL2)Tj /T1_1 1 Tf 1.9615 Tc 9.162 0 Td (\245r)Tj 0 Tc 2.944 0 Td (eserved for local use)Tj /TT0 1 Tf -12.106 -1.25 Td (LOG_LOCAL3)Tj /T1_1 1 Tf 1.9615 Tc 9.162 0 Td (\245r)Tj 0 Tc 2.944 0 Td (eserved for local use)Tj /TT0 1 Tf -12.106 -1.25 Td (LOG_LOCAL4)Tj /T1_1 1 Tf 1.9615 Tc 9.162 0 Td (\245r)Tj 0 Tc 2.944 0 Td (eserved for local use)Tj /TT0 1 Tf -12.106 -1.25 Td (LOG_LOCAL5)Tj /T1_1 1 Tf 1.9615 Tc 9.162 0 Td (\245r)Tj 0 Tc 2.944 0 Td (eserved for local use)Tj /TT0 1 Tf -12.106 -1.25 Td (LOG_LOCAL6)Tj /T1_1 1 Tf 1.9615 Tc 9.162 0 Td (\245r)Tj 0 Tc 2.944 0 Td (eserved for local use)Tj /TT0 1 Tf -12.106 -1.25 Td (LOG_LOCAL7)Tj /T1_1 1 Tf 1.9615 Tc 9.162 0 Td (\245r)Tj 0 Tc 2.944 0 Td (eserved for local use)Tj /TT0 1 Tf -12.106 -1.25 Td (LOG_LPR)Tj /T1_1 1 Tf 11.729 0 Td (line printer system:)Tj /TT0 1 Tf 8.804 0 Td (lpd)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.3 0 Td (lpc)Tj /T1_1 1 Tf 0.25 Tc (,.)Tj 0 Tc 2.55 0 Td (..)Tj /TT0 1 Tf -25.383 -1.25 Td (LOG_MAIL)Tj /T1_1 1 Tf 11.729 0 Td (the mail system)Tj /TT0 1 Tf -11.729 -1.25 Td (LOG_NEWS)Tj /T1_1 1 Tf 11.729 0 Td (the Usenet network news system)Tj /TT0 1 Tf -11.729 -1.25 Td (LOG_NTP)Tj /T1_1 1 Tf 11.729 0 Td [(the network time pr)18(otocol system)]TJ /TT0 1 Tf -11.729 -1.25 Td (LOG_SECURITY)Tj /T1_1 1 Tf 11.729 0 Td (the security subsystem)Tj /TT0 1 Tf -11.729 -1.25 Td (LOG_SYSLOG)Tj /T1_1 1 Tf 11.729 0 Td (the)Tj /TT0 1 Tf 1.637 0 Td (syslogd)Tj /T1_1 1 Tf 4.45 0 Td (daemon itself)Tj /TT0 1 Tf -17.816 -1.25 Td (LOG_USER)Tj /T1_1 1 Tf 1.9615 Tc 9.162 0 Td (\245m)Tj 0 Tc 3.45 0 Td [(essages fr)18(om other user pr)18(ocesses \(default\))]TJ /TT0 1 Tf -12.612 -1.25 Td (LOG_UUCP)Tj /T1_1 1 Tf 11.729 0 Td (the UUCP system)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1584.25 4110.25 cm 0 0 m 3323 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2503.25 4110.25 cm 0 0 m 0 2560 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2260.25 4110.25 cm 0 0 m 0 2560 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4907.25 4110.25 cm 0 0 m 0 2560 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1584.25 4110.25 cm 0 0 m 0 2560 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 240.7767 392.9293 Tm (Figure 13.4)Tj /T1_1 1 Tf 5.695 0 Td (The)Tj /T1_2 1 Tf 1.924 0 Td (facility)Tj /T1_1 1 Tf 3.046 0 Td [(ar)18(gument for)]TJ /TT0 1 Tf 6.08 0 Td (openlog)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2006.25 3682.25 cm 0 0 m 2480 0 l S Q Q BT /T1_2 1 Tf 7.9981 0 0 7.9981 223.6103 360.1136 Tm (level)Tj /T1_1 1 Tf 14.091 0 Td (Description)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2006.25 3562.25 cm 0 0 m 2480 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2006.25 3542.25 cm 0 0 m 2480 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 204.5386 346.0962 Tm (LOG_EMERG)Tj /T1_1 1 Tf 8.1 0 Td [(emer)18(gency \(system is unusable\) \(highest priority\))]TJ /TT0 1 Tf -8.1 -1.25 Td (LOG_ALERT)Tj /T1_1 1 Tf 8.1 0 Td (condition that must be \336xed immediately)Tj /TT0 1 Tf -8.1 -1.25 Td (LOG_CRIT)Tj /T1_1 1 Tf 8.1 0 Td (critical condition \(e.g., har)Tj 0.25 Tc 11.528 0 Td (dd)Tj 0 Tc 1.472 0 Td [(evice err)18(or\))]TJ /TT0 1 Tf -21.1 -1.25 Td (LOG_ERR)Tj /T1_1 1 Tf 8.1 0 Td [(err)18(or condition)]TJ /TT0 1 Tf -8.1 -1.25 Td (LOG_WARNING)Tj /T1_1 1 Tf 8.1 0 Td (warning condition)Tj /TT0 1 Tf -8.1 -1.25 Td (LOG_NOTICE)Tj /T1_1 1 Tf 8.1 0 Td (normal, but signi\336cant condition)Tj /TT0 1 Tf -8.1 -1.25 Td (LOG_INFO)Tj /T1_1 1 Tf 8.1 0 Td (informational message)Tj /TT0 1 Tf -8.1 -1.25 Td (LOG_DEBUG)Tj /T1_1 1 Tf 8.1 0 Td (debug message \(lowest priority\))Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2006.25 2722.25 cm 0 0 m 2480 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2634.25 2722.25 cm 0 0 m 0 960 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4486.25 2722.25 cm 0 0 m 0 960 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2006.25 2722.25 cm 0 0 m 0 960 l S Q Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 252.0173 254.1085 Tm (Figure 13.5)Tj /T1_1 1 Tf 5.695 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (syslog)Tj /T1_2 1 Tf 3.85 0 Td (level)Tj /T1_1 1 Tf 0.25 Tc (s\()Tj 0 Tc 2.841 0 Td [(or)18(der)18(ed\))]TJ 9.9964 0 0 9.9964 147.5471 226.5184 Tm [(In )-211(addition )-211(to)]TJ /TT0 1 Tf 6.933 0 Td (syslog)Tj /T1_1 1 Tf 0.4614 Tc (,m)Tj 0 Tc 5.194 0 Td [(any )-211(platforms )-211(pr)17(ovide )-211(a )-211(variant )-211(that )-211(handles )-211(variable)]TJ -13.928 -1.2 Td [(ar)18(gument lists.)]TJ /TT0 1 Tf 8.9968 0 0 8.9968 147.5473 199.0283 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (void vsyslog\(int)Tj /T1_2 1 Tf 10.2 0 Td (priority)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.911 0 Td (onst char *)Tj /T1_2 1 Tf (format)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 11.066 0 Td (a_list)Tj /T1_2 1 Tf 4.2 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1678.25 cm 0 0 m 0 403 l 3900 403 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 183.5229 145.089 Tm [(All )-3(four )-3(platforms )-3(described )-3(in )-3(this )-3(book )-3(pr)19(ovide)]TJ /TT0 1 Tf 22.013 0 Td (vsyslog)Tj /T1_1 1 Tf 0.253 Tc (,b)Tj 0 Tc 5.256 0 Td [(ut )-3(this )-3(function )-3(is )-3(not )-3(included )-3(in)]TJ -27.269 -1.25 Td [(the )-122(Single )-122(UNIX )-122(Speci\336cation.)-622(Note )-122(that )-122(to )-122(make )-122(its )-122(declaration )-122(visible )-122(to )-122(your )-122(application,)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46983 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.4)]TJ 31.602 0 Td [(Synchr)18(onization )-250(Attributes)]TJ /T1_1 1 Tf 14.231 0 Td (431)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (PTHREAD_MUTEX_INITIALIZER)Tj /T1_0 1 Tf 15.513 0 Td [(constant )-263(or )-263(by )-263(calling )-263(the)]TJ /TT0 1 Tf 12.687 0 Td (pthread_mutex_init)Tj /T1_0 1 Tf -28.2 -1.2 Td [(function )-322(with )-322(a )-322(null )-322(pointer )-322(for )-322(the )-322(ar)18(gument )-322(that )-322(points )-322(to )-322(the )-322(mutex )-322(attribute)]TJ 0 -1.2 TD [(str)8(uctur)18(e.)]TJ 1.8 -1.2 Td [(When )-125(dealing )-125(with )-125(nondefault )-125(attributes, )-125(we )-125(use)]TJ /TT0 1 Tf 22.753 0 Td (pthread_mutexattr_init)Tj /T1_0 1 Tf 13.575 0 Td (to)Tj -38.128 -1.2 Td [(initialize )-37(a)]TJ /TT0 1 Tf 4.917 0 Td (pthread_mutexattr_t)Tj /T1_0 1 Tf 11.687 0 Td [(str)8(uctur)]TJ 0.2873 Tc 3.49 0 Td (ea)Tj 0 Tc 1.266 0 Td (nd)Tj /TT0 1 Tf 1.48 0 Td (pthread_mutexattr_destroy)Tj /T1_0 1 Tf 15.287 0 Td (to)Tj -38.128 -1.2 Td (deinitialize one.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 592.2645 Tm (#include )Tj 0 -1.902 TD (int pthread_mutexattr_init\(pthread_mutexattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj T* (int pthread_mutexattr_destroy\(pthread_mutexattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 19.681 -1.902 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5364.25 cm 0 0 m 0 649 l 3900 649 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 522.8772 Tm (The)Tj /TT0 1 Tf 2.021 0 Td (pthread_mutexattr_init)Tj /T1_0 1 Tf 13.547 0 Td [(function )-97(will )-97(initialize )-97(the)]TJ /TT0 1 Tf 12.032 0 Td (pthread_mutexattr_t)Tj /T1_0 1 Tf -27.6 -1.2 Td [(str)8(uctur)]TJ 0.3989 Tc 3.49 0 Td (ew)Tj 0 Tc 1.712 0 Td [(ith )-149(the )-149(default )-149(mutex )-149(attributes.)-648(Ther)]TJ 0.3988 Tc 17.304 0 Td (ea)Tj -0.018 Tc 1.378 0 Td [(re )-185(t)]TJ 0 Tc 1.581 0 Td [(hr)18(ee )-149(attributes )-149(of )-149(inter)18(est: )-149(the)]TJ /T1_2 1 Tf -25.465 -1.2 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_0 1 Tf 6.153 0 Td [(attribute, )-88(the)]TJ /T1_2 1 Tf -0.018 Tc 6.112 0 Td (ro)Tj 0 Tc 0.815 0 Td (bust)Tj /T1_0 1 Tf 2.079 0 Td [(attribute, )-88(and )-88(the)]TJ /T1_2 1 Tf 8.144 0 Td (type)Tj /T1_0 1 Tf 2.06 0 Td [(attribute. )-338(W)55(ithin )-88(POSIX.1, )-88(the)]TJ /T1_2 1 Tf -25.363 -1.2 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_0 1 Tf 6.336 0 Td [(attribute )-271(is )-271(optional; )-271(you )-271(can )-271(test )-271(whether )-271(a )-271(platform )-271(supports )-271(it )-271(by)]TJ -6.336 -1.2 Td [(checking )-15(whether )-15(the)]TJ /TT0 1 Tf 9.792 0 Td (_POSIX_THREAD_PROCESS_SHARED)Tj /T1_0 1 Tf 17.065 0 Td [(symbol )-15(is )-15(de\336ned.)]TJ -0.092 Tc 8.629 0 Td (Yo)Tj 0.2647 Tc 1.121 0 Td (uc)Tj 0 Tc 1.312 0 Td (an)Tj -37.918 -1.2 Td [(also )-17(check )-17(at )-17(r)8(untime )-17(by )-17(passing )-17(the)]TJ /TT0 1 Tf 16.383 0 Td (_SC_THREAD_PROCESS_SHARED)Tj /T1_0 1 Tf 15.267 0 Td [(parameter )-17(to )-17(the)]TJ /TT0 1 Tf -31.65 -1.2 Td (sysconf)Tj /T1_0 1 Tf 4.66 0 Td [(function. )-460(Although)-460(this )-210(option )-210(is )-210(not )-210(r)17(equir)18(ed )-210(to )-210(be )-210(pr)18(ovided )-210(by )-210(POSIX-)]TJ -4.66 -1.2 Td [(conforming )-445(operating )-445(systems, )-445(the )-445(Single )-445(UNIX )-445(Speci\336cation )-445(r)17(equir)18(es )-445(that )-445(XSI-)]TJ 0 -1.2 TD (conforming operating systems do support it.)Tj -0.055 Tc 1.8 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(thin )-26(a )-26(pr)18(ocess, )-26(multiple )-26(thr)17(eads )-26(can )-26(access )-26(the )-26(same )-26(synchr)18(onization )-26(object.)-528(This)]TJ -3.036 -1.2 Td [(is )-91(the )-91(default )-91(behavior)74(,)-341(as)-341(we)-341(saw )-91(in )-91(Chapter )-91(1)55(1. )-341(In)-341(this )-91(case, )-91(the)]TJ /T1_2 1 Tf 30.037 0 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_0 1 Tf 6.156 0 Td (mutex)Tj -36.193 -1.2 Td (attribute is set to)Tj /TT0 1 Tf 7.615 0 Td (PTHREAD_PROCESS_PRIVATE)Tj /T1_0 1 Tf (.)Tj -5.815 -1.2 Td [(As )-137(we )-137(shall )-137(see )-137(in )-137(Chapters )-137(14 )-137(and )-137(15, )-137(mechanisms )-137(exist )-137(that )-137(allow )-137(independent)]TJ -1.8 -1.2 Td [(pr)18(ocesses )-163(to )-163(map )-163(the )-163(same )-163(extent )-163(of )-163(memory )-163(into )-163(their )-163(independent )-163(addr)18(ess )-163(spaces.)]TJ T* [(Access )-150(to )-150(shar)18(ed )-150(data )-150(by )-150(multiple )-150(pr)16(ocesses )-150(usually )-150(r)17(equir)18(es )-150(synchr)18(onization, )-150(just )-150(as)]TJ 0 -1.2 Td [(does )-102(access )-102(to )-102(shar)18(ed )-102(data )-102(by )-102(multiple )-102(thr)17(eads. )-352(If)-352(the)]TJ /T1_2 1 Tf 24.808 0 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_0 1 Tf 6.167 0 Td [(mutex )-102(attribute )-102(is)]TJ -30.975 -1.2 Td [(set )-159(to)]TJ /TT0 1 Tf 2.919 0 Td (PTHREAD_PROCESS_SHARED)Tj /T1_0 1 Tf 0.4092 Tc (,am)Tj 0 Tc 15.651 0 Td [(utex )-159(allocated )-159(fr)18(om )-159(a )-159(memory )-159(extent )-159(shar)17(ed)]TJ -18.571 -1.2 Td [(between multiple pr)18(ocesses may be used for synchr)18(onization by those pr)18(ocesses.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-799(c)]TJ 0 Tc 2.696 0 Td [(an )-615(use )-615(the)]TJ /TT0 1 Tf 6.571 0 Td (pthread_mutexattr_getpshared)Tj /T1_0 1 Tf 17.665 0 Td [(function )-615(to )-615(query )-615(a)]TJ /TT0 1 Tf -28.732 -1.2 Td (pthread_mutexattr_t)Tj /T1_0 1 Tf 11.818 0 Td [(str)8(uctur)]TJ 0.4176 Tc 3.49 0 Td (ef)Tj 0 Tc 1.23 0 Td [(or )-168(its)]TJ /T1_2 1 Tf 2.817 0 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_0 1 Tf 6.233 0 Td [(attribute. )-418(W)]TJ 0.4177 Tc 5.625 0 Td (ec)Tj 0 Tc 1.341 0 Td [(an )-168(change )-168(the)]TJ /T1_2 1 Tf -32.553 -1.2 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_0 1 Tf 6.065 0 Td (attribute with the)Tj /TT0 1 Tf 7.969 0 Td (pthread_mutexattr_setpshared)Tj /T1_0 1 Tf 17.05 0 Td (function.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5832 263.8087 Tm (#include )Tj 0 -2.021 TD (int pthread_mutexattr_getpshared\(const pthread_mutexattr_t *)Tj 19.8 -1.189 Td (restrict)Tj /T1_2 1 Tf 5.4 0 Td (attr)Tj /TT0 1 Tf (,)Tj -5.4 -1.189 Td (int *restrict)Tj /T1_2 1 Tf 8.4 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf (\);)Tj -28.2 -2.021 Td (int pthread_mutexattr_setpshared\(pthread_mutexattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 19.8 -1.189 Td (int)Tj /T1_2 1 Tf 2.4 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf (\);)Tj /T1_0 1 Tf -2.519 -2.021 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1726.25 cm 0 0 m 0 1002 l 3900 1002 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 156.7418 Tm (The)Tj /T1_2 1 Tf 2.04 0 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_0 1 Tf 6.181 0 Td [(mutex )-116(attribute )-116(allows )-116(the )-116(pthr)18(ead )-116(library )-116(to )-116(pr)18(ovide )-116(mor)]TJ 0.366 Tc 26.413 0 Td (ee)Tj -0.018 Tc 1.324 0 Td (f\336)Tj 0 Tc 0.92 0 Td (cient)Tj -36.878 -1.2 Td [(mutex )-272(implementations )-272(when )-272(the )-272(attribute )-272(is )-272(set )-272(to)]TJ /TT0 1 Tf 24.95 0 Td (PTHREAD_PROCESS_PRIVATE)Tj /T1_0 1 Tf (,)Tj -24.95 -1.2 Td [(which )-22(is )-22(the )-22(default )-22(case )-22(with )-22(multithr)18(eaded )-22(applications.)-520(The )-22(pthr)18(ead )-22(library )-22(can )-22(then)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46984 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.3)]TJ 35.67 0 Td [(Thr)18(ead )-250(Attributes)]TJ /T1_1 1 Tf 10.163 0 Td (429)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.018 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm (re)Tj 0 Tc 0.856 0 Td [(turn )-187(fr)18(om)]TJ /TT0 1 Tf 4.919 0 Td (pthread_attr_destroy)Tj /T1_0 1 Tf 0.437 Tc (,t)Tj 0 Tc 13.013 0 Td [(he )-187(worst )-187(that )-187(can )-187(happen )-187(is )-187(that )-187(we )-187(leak )-187(a)]TJ -18.788 -1.2 Td [(small )-535(amount )-535(of )-535(memory )-535(if)]TJ /TT0 1 Tf 15.001 0 Td (pthread_attr_init)Tj /T1_0 1 Tf 10.985 0 Td [(had )-535(allocated )-535(any)]TJ 1.0354 Tc 8.779 0 Td (.B)Tj 0 Tc 1.896 0 Td [(ut )-535(if)]TJ /TT0 1 Tf -36.662 -1.2 Td (pthread_attr_init)Tj /T1_0 1 Tf 11.002 0 Td [(succeeded )-552(in )-552(initializing )-552(the )-552(thr)19(ead )-552(attributes )-552(and )-552(then)]TJ /TT0 1 Tf -11.002 -1.2 Td (pthread_attr_destroy)Tj /T1_0 1 Tf 12.424 0 Td [(failed )-174(to )-174(clean )-174(up, )-174(we )-174(have )-174(no )-174(r)18(ecovery )-174(strategy )-174(anyway)115(,)]TJ -12.424 -1.2 Td [(because )-30(the )-30(attributes )-30(str)8(uctur)]TJ 0.2799 Tc 13.422 0 Td (ei)Tj 0.2798 Tc 1.05 0 Td (so)Tj 0 Tc 1.25 0 Td [(paque )-30(to )-30(the )-30(application.)-530(The )-30(only )-30(interface )-30(de\336ned)]TJ -15.721 -1.2 Td [(to clean up the str)8(uctur)]TJ 0.25 Tc 10.249 0 Td (ei)Tj 0 Tc 1.02 0 Td (s)Tj /TT0 1 Tf 0.674 0 Td (pthread_attr_destroy)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 13 0 Td (nd it just failed.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 6090.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 584.9298 Tm [(Support )-162(for )-162(thr)18(ead )-162(stack )-162(attributes )-162(is )-162(optional )-162(for )-162(a )-162(POSIX-conforming )-162(operating)]TJ -1.8 -1.2 Td [(system, )-268(but )-268(is )-268(r)17(equir)18(ed )-268(if )-268(the )-268(system )-268(supports )-268(the )-268(XSI )-268(option )-268(in )-268(the )-268(Single )-268(UNIX)]TJ 0 -1.2 TD [(Speci\336cation. )-497(At)-497(compile )-247(time, )-247(you )-247(can )-247(check )-247(whether )-247(your )-247(system )-247(supports )-247(each)]TJ T* [(thr)18(ead )-697(stack )-697(attribute )-697(by )-697(using )-697(the)]TJ /TT0 1 Tf 19.56 0 Td (_POSIX_THREAD_ATTR_STACKADDR)Tj /T1_0 1 Tf 17.747 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (_POSIX_THREAD_ATTR_STACKSIZE)Tj /T1_0 1 Tf 17.089 0 Td [(symbols. )-289(If)-289(one )-39(of )-39(these )-39(symbols )-39(is )-39(de\336ned, )-39(then)]TJ -17.089 -1.2 Td [(the )-163(system )-163(supports )-163(the )-163(corr)18(esponding )-163(thr)18(ead )-163(stack )-163(attribute.)-661(Alternatively)]TJ 0.4127 Tc 34.694 0 Td (,y)Tj 0 Tc 1.219 0 Td [(ou )-163(can)]TJ -35.912 -1.2 Td [(check )-356(for )-356(support )-356(at )-356(r)8(untime, )-356(by )-356(using )-356(the)]TJ /TT0 1 Tf 21.701 0 Td (_SC_THREAD_ATTR_STACKADDR)Tj /T1_0 1 Tf 15.606 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (_SC_THREAD_ATTR_STACKSIZE)Tj /T1_0 1 Tf 15.25 0 Td (parameters to the)Tj /TT0 1 Tf 7.991 0 Td (sysconf)Tj /T1_0 1 Tf 4.45 0 Td (function.)Tj -0.092 Tc -25.891 -1.2 Td [(We )-466(c)]TJ 0 Tc 2.363 0 Td [(an )-282(manage )-282(the )-282(stack )-282(attributes )-282(using )-282(the)]TJ /TT0 1 Tf 20.011 0 Td (pthread_attr_getstack)Tj /T1_0 1 Tf 13.132 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (pthread_attr_setstack)Tj /T1_0 1 Tf 12.85 0 Td (functions.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5826 460.2448 Tm (#include )Tj 0 -1.783 TD (int pthread_attr_getstack\(const pthread_attr_t *restrict)Tj /T1_2 1 Tf 34.2 0 Td (attr)Tj /TT0 1 Tf (,)Tj -18.6 -1.189 Td (void **restrict)Tj /T1_2 1 Tf 9.6 0 Td (stackaddr)Tj /TT0 1 Tf (,)Tj -9.6 -1.189 Td (size_t *restrict)Tj /T1_2 1 Tf 10.2 0 Td (stacksize)Tj /TT0 1 Tf (\);)Tj -25.8 -1.783 Td (int pthread_attr_setstack\(pthread_attr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 15.6 -1.189 Td (void *)Tj /T1_2 1 Tf (stackaddr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 9.25 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (stacksize)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -8.769 -1.783 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3755.25 cm 0 0 m 0 938 l 3900 938 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf -0.055 Tc 9.9982 0 0 9.9982 147.5734 361.9848 Tm (Wi)Tj 0 Tc 1.236 0 Td [(th )-28(a )-28(pr)18(ocess, )-28(the )-28(amount )-28(of )-28(virtual )-28(addr)18(ess )-28(space )-28(is )-28(\336xed.)-528(Since )-28(ther)16(e)-278(is)-278(only )-28(one)]TJ -3.036 -1.2 Td [(stack, )-221(its )-221(size )-221(usually )-221(isn\325t )-221(a )-221(pr)17(oblem. )-471(W)55(ith )-221(thr)18(eads, )-221(however)]TJ 0.4712 Tc 28.873 0 Td (,t)Tj 0 Tc 1.047 0 Td [(he )-221(same )-221(amount )-221(of)]TJ -29.92 -1.2 Td [(virtual )-12(addr)18(ess )-12(space )-12(must )-12(be )-12(shar)18(ed )-12(by )-12(all )-12(the )-12(thr)18(ead )-12(stacks.)]TJ -0.092 Tc 27.598 0 Td (Yo)Tj 0.2622 Tc 1.121 0 Td (um)Tj 0 Tc 1.748 0 Td [(ight )-12(have )-12(to )-12(r)17(educe)]TJ -30.467 -1.2 Td [(your )-319(default )-319(thr)18(ead )-319(stack )-319(size )-319(if )-319(your )-319(application )-319(uses )-319(so )-319(many )-319(thr)16(eads )-319(that )-319(the)]TJ 0 -1.2 TD [(cumulative )-18(size )-18(of )-18(their )-18(stacks )-18(exceeds )-18(the )-18(available )-18(virtual )-18(addr)22(ess )-17(space.)-517(On )-17(the )-17(other)]TJ T* [(hand, )-300(if )-300(your )-300(thr)18(eads )-300(call )-300(functions )-300(that )-300(allocate )-300(lar)20(ge )-300(automatic )-300(variables )-300(or )-300(call)]TJ T* (functions many stack frames deep, you might need mor)Tj 0.25 Tc 24.636 0 Td (et)Tj 0 Tc 1.055 0 Td (han the default stack size.)Tj -23.891 -1.2 Td [(If )-130(you )-130(r)8(un )-130(out )-130(of )-130(virtual )-130(addr)18(ess )-130(space )-130(for )-130(thr)18(ead )-130(stacks, )-130(you )-130(can )-130(use)]TJ /TT0 1 Tf 32.279 0 Td (malloc)Tj /T1_0 1 Tf 3.98 0 Td (or)Tj /TT0 1 Tf -38.059 -1.2 Td (mmap)Tj /T1_0 1 Tf 3.264 0 Td [(\(see )-614(Section )-614(14.8\) )-614(to )-614(allocate )-614(space )-614(for )-614(an )-614(alternative )-614(stack )-614(and )-614(use)]TJ /TT0 1 Tf -3.264 -1.2 Td (pthread_attr_setstack)Tj /T1_0 1 Tf 13.056 0 Td [(to )-206(change )-206(the )-206(stack )-206(location )-206(of )-206(thr)18(eads )-206(you )-206(cr)18(eate. )-456(The)]TJ -13.056 -1.2 Td [(addr)18(ess )-150(speci\336ed )-150(by )-150(the)]TJ /T1_2 1 Tf 11.456 0 Td (stackaddr)Tj /T1_0 1 Tf 4.25 0 Td [(parameter )-150(is )-150(the )-150(lowest )-150(addr)18(essable )-150(addr)19(ess )-150(in )-150(the)]TJ -15.706 -1.2 Td [(range )-104(of )-104(memory )-104(to )-104(be )-104(used )-104(as )-104(the )-104(thr)18(ead\325s )-104(stack, )-104(aligned )-104(at )-104(the )-104(pr)18(oper )-104(boundary )-104(for)]TJ T* [(the )-73(pr)18(ocessor )-73(ar)17(chitectur)18(e. )-323(Of)-324(course, )-73(this )-73(assumes )-73(that )-73(the )-73(virtual )-73(addr)18(ess )-73(range )-73(used)]TJ 0 -1.2 Td (by)Tj /TT0 1 Tf 1.359 0 Td (malloc)Tj /T1_0 1 Tf 3.85 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (mmap)Tj /T1_0 1 Tf 2.65 0 Td [(is dif)18(fer)18(ent fr)18(om the range curr)18(ently in use for a thr)18(ead\325s stack.)]TJ -7.25 -1.2 Td (The)Tj /T1_2 1 Tf 1.934 0 Td (stackaddr)Tj /T1_0 1 Tf 4.11 0 Td [(thr)18(ead )-10(attribute )-10(is )-10(de\336ned )-10(as )-10(the )-10(lowest )-10(memory )-10(addr)18(ess )-10(for )-10(the )-10(stack.)]TJ -7.844 -1.2 Td [(This )-246(is )-246(not )-246(necessarily )-246(the )-246(start )-246(of )-246(the )-246(stack, )-246(however)]TJ 0.7461 Tc 25.339 0 Td (.I)Tj 0.4961 Tc 1.333 0 Td (fs)Tj 0 Tc 1.253 0 Td [(tacks )-246(gr)18(ow )-246(fr)18(om )-246(higher)]TJ -27.925 -1.2 Td [(addr)18(esses )-191(to )-191(lower )-191(addr)18(esses )-191(for )-191(a )-191(given )-191(pr)18(ocessor )-191(ar)17(chitectur)18(e, )-191(the)]TJ /T1_2 1 Tf 31.834 0 Td (stackaddr)Tj /T1_0 1 Tf 4.291 0 Td [(thr)18(ead)]TJ -36.125 -1.2 Td (attribute will be the end of the stack instead of the beginning.)Tj 1.8 -1.2 Td [(An )-406(application )-406(can )-406(also )-406(get )-406(and )-406(set )-406(the)]TJ /T1_2 1 Tf 20.54 0 Td (stacksize)Tj /T1_0 1 Tf 4.173 0 Td [(thr)18(ead )-406(attribute )-406(using )-406(the)]TJ /TT0 1 Tf -26.514 -1.2 Td (pthread_attr_getstacksize)Tj /T1_0 1 Tf 15.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (pthread_attr_setstacksize)Tj /T1_0 1 Tf 15.25 0 Td (functions.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46985 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.21)]TJ 35.022 0 Td [(Job-Contr)18(ol )-250(Signals)]TJ /T1_1 1 Tf 10.811 0 Td (377)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(Mac )-73(OS )-73(X )-73(10.6.8 )-73(doesn\325t )-73(support)]TJ /TT0 1 Tf 15.046 0 Td (sigqueue)Tj /T1_0 1 Tf 5.123 0 Td [(or )-73(r)18(eal-time )-73(signals.)-573(On )-73(Solaris )-73(10,)]TJ /TT0 1 Tf 15.994 0 Td (sigqueue)Tj /T1_0 1 Tf 5.123 0 Td (is)Tj -41.285 -1.25 Td [(in the r)18(eal-time library)111(,)]TJ /TT0 1 Tf 10.339 0 Td (librt)Tj /T1_0 1 Tf (.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5943 626.1624 Tm [(10.21 )-220(Job-Contr)20(ol )-278(Signals)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5921 602.1639 Tm (Of the signals shown in Figur)Tj 0.25 Tc 13.048 0 Td (e1)Tj 0 Tc 1.229 0 Td [(0.1, POSIX.1 considers six to be job-contr)18(ol signals:)]TJ /TT0 1 Tf -12.477 -1.6 Td (SIGCHLD)Tj /T1_0 1 Tf 5.382 0 Td [(Child pr)18(ocess has stopped or terminated.)]TJ /TT0 1 Tf -5.382 -1.6 Td (SIGCONT)Tj /T1_0 1 Tf 5.382 0 Td [(Continue pr)18(ocess, if stopped.)]TJ /TT0 1 Tf -5.382 -1.6 Td (SIGSTOP)Tj /T1_0 1 Tf 5.382 0 Td [(Stop signal \(can\325t be caught or ignor)18(ed\).)]TJ /TT0 1 Tf -5.382 -1.6 Td (SIGTSTP)Tj /T1_0 1 Tf 5.382 0 Td (Interactive stop signal.)Tj /TT0 1 Tf -5.382 -1.6 Td (SIGTTIN)Tj /T1_0 1 Tf 5.382 0 Td [(Read fr)18(om contr)18(olling terminal by backgr)18(ound pr)18(ocess gr)18(oup member)74(.)]TJ /TT0 1 Tf -5.382 -1.6 Td (SIGTTOU)Tj /T1_0 1 Tf -0.074 Tc 5.382 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite to contr)18(olling terminal by a backgr)18(ound pr)18(ocess gr)18(oup member)74(.)]TJ -6.703 -2.4 Td [(Except )-424(for)]TJ /TT0 1 Tf 5.6 0 Td (SIGCHLD)Tj /T1_0 1 Tf 0.6743 Tc (,m)Tj 0 Tc 6.007 0 Td [(ost )-424(application )-424(pr)17(ograms )-424(don\325t )-424(handle )-424(these )-424(signals:)]TJ -13.407 -1.2 Td [(interactive )-95(shells )-95(usually )-95(do )-95(all )-95(the )-95(work )-95(r)15(equir)18(ed )-95(to )-95(handle )-95(them.)-595(When )-95(we )-95(type )-95(the)]TJ 0 -1.2 TD [(suspend )-433(character )-433(\(usually )-433(Contr)18(ol)]TJ 16.816 0.09 Td (-)Tj 0.333 -0.09 Td (Z\),)Tj /TT0 1 Tf 1.933 0 Td (SIGTSTP)Tj /T1_0 1 Tf 4.883 0 Td [(is )-433(sent )-433(to )-433(all )-433(pr)18(ocesses )-433(in )-433(the)]TJ -23.964 -1.2 Td [(for)18(egr)18(ound )-54(pr)18(ocess )-54(gr)19(oup. )-304(When)-303(we )-54(tell )-54(the )-54(shell )-54(to )-54(r)18(esume )-54(a )-54(job )-54(in )-54(the )-54(for)22(egr)18(ound )-54(or)]TJ -0 -1.2 Td [(backgr)18(ound, )-12(the )-12(shell )-12(sends )-12(all )-12(the )-12(pr)18(ocesses )-12(in )-12(the )-12(job )-12(the)]TJ /TT0 1 Tf 26.083 0 Td (SIGCONT)Tj /T1_0 1 Tf 4.462 0 Td [(signal. )-262(Similarly)]TJ 0.2623 Tc 7.318 0 Td (,i)Tj 0 Tc 0.803 0 Td (f)Tj /TT0 1 Tf -38.667 -1.2 Td (SIGTTIN)Tj /T1_0 1 Tf 4.533 0 Td (or)Tj /TT0 1 Tf 1.274 0 Td (SIGTTOU)Tj /T1_0 1 Tf 4.533 0 Td [(is )-83(deliver)18(ed )-83(to )-83(a )-83(pr)17(ocess, )-83(the )-83(pr)18(ocess )-83(is )-83(stopped )-83(by )-83(default, )-83(and)]TJ -10.341 -1.2 Td [(the job-contr)18(ol shell r)18(ecognizes this and noti\336es us.)]TJ 1.8 -1.2 Td [(An )-251(exception )-251(is )-251(a )-251(pr)17(ocess )-251(that )-251(is )-251(managing )-251(the )-251(terminal)]TJ 0.0833 Tc 26.762 0 Td (\321t)Tj 0 Tc 1.409 0 Td (he)Tj /TT0 1 Tf 1.562 0 Td (vi)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.834 -0.04 Td (editor)Tj 0.5013 Tc 2.574 0 Td (,f)Tj 0 Tc 1.084 0 Td (or)Tj -38.059 -1.2 Td [(example. )-308(It)-308(needs )-58(to )-58(know )-58(when )-58(the )-58(user )-58(wants )-58(to )-58(suspend )-58(it )-58(so )-58(that )-58(it )-58(can )-58(r)17(estor)]TJ 0.308 Tc 36.827 0 Td (et)Tj 0 Tc 1.113 0 Td (he)Tj -37.94 -1.2 Td [(terminal\325s )-104(state )-104(to )-104(the )-104(way )-104(it )-104(was )-104(when)]TJ /TT0 1 Tf 18.337 0 Td (vi)Tj /T1_0 1 Tf 1.554 0 Td [(was )-104(started.)-604(Also, )-104(when )-104(it )-104(r)18(esumes )-104(in )-104(the)]TJ -19.891 -1.2 Td [(for)18(egr)18(ound, )-20(the)]TJ /TT0 1 Tf 7.188 0 Td (vi)Tj /T1_0 1 Tf 1.47 0 Td [(editor )-20(needs )-20(to )-20(set )-20(the )-20(terminal )-20(state )-20(back )-20(to )-20(the )-20(way )-20(it )-20(wants )-20(it, )-20(and)]TJ -8.658 -1.2 Td [(it )-60(needs )-60(to )-60(r)18(edraw )-60(the )-60(terminal )-60(scr)17(een. )-310(W)]TJ 0.3102 Tc 18.758 0 Td (es)Tj 0 Tc 1.213 0 Td [(ee )-60(how )-60(a )-60(pr)18(ogram )-60(such )-60(as)]TJ /TT0 1 Tf 12.116 0 Td (vi)Tj /T1_0 1 Tf 1.51 0 Td [(handles )-60(this)]TJ -33.598 -1.2 Td (in the example that follows.)Tj 1.8 -1.2 Td (Ther)Tj 0.3256 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.305 0 Td [(re )-112(s)]TJ 0 Tc 1.606 0 Td [(ome )-76(interactions )-76(between )-76(the )-76(job-contr)18(ol )-76(signals.)-576(When )-76(any )-76(of )-76(the )-76(four)]TJ -6.761 -1.2 Td [(stop )-153(signals )-153(\()]TJ /TT0 1 Tf 6.105 0 Td (SIGTSTP)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.853 0 Td (SIGSTOP)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.853 0 Td (SIGTTIN)Tj /T1_0 1 Tf 0.4034 Tc (,o)Tj 0 Tc 5.399 0 Td (r)Tj /TT0 1 Tf 0.798 0 Td (SIGTTOU)Tj /T1_0 1 Tf [(\))-403(is)-403(g)-1(enerated )-153(for )-153(a )-153(pr)17(ocess,)]TJ -22.009 -1.2 Td [(any )-379(pending)]TJ /TT0 1 Tf 6.599 0 Td (SIGCONT)Tj /T1_0 1 Tf 4.829 0 Td [(signal )-379(for )-379(that )-379(pr)17(ocess )-379(is )-379(discar)17(ded. )-629(Similarly)]TJ 0.6294 Tc 22.199 0 Td (,w)Tj 0 Tc 1.713 0 Td [(hen )-379(the)]TJ /TT0 1 Tf -35.341 -1.2 Td (SIGCONT)Tj /T1_0 1 Tf 4.67 0 Td [(signal )-220(is )-220(generated )-220(for )-220(a )-220(pr)16(ocess, )-220(any )-220(pending )-220(stop )-220(signals )-220(for )-220(that )-220(same)]TJ -4.67 -1.2 Td [(pr)18(ocess ar)]TJ 0.25 Tc 4.422 0 Td (ed)Tj 0 Tc 1.34 0 Td [(iscar)18(ded.)]TJ -3.962 -1.2 Td [(Note )-45(that )-45(the )-45(default )-45(action )-45(for)]TJ /TT0 1 Tf 14.179 0 Td (SIGCONT)Tj /T1_0 1 Tf 4.495 0 Td [(is )-45(to )-45(continue )-45(the )-45(pr)18(ocess, )-45(if )-45(it )-45(is )-45(stopped;)]TJ -20.474 -1.2 Td [(otherwise, )-199(the )-199(signal )-199(is )-199(ignor)20(ed. )-449(Normally)111(,)-449(we)-449(d)1(on\325t )-199(have )-199(to )-199(do )-199(anything )-199(with )-199(this)]TJ T* [(signal. )-549(When)]TJ /TT0 1 Tf 6.885 0 Td (SIGCONT)Tj /T1_0 1 Tf 4.749 0 Td [(is )-299(generated )-299(for )-299(a )-299(pr)18(ocess )-299(that )-299(is )-299(stopped, )-299(the )-299(pr)17(ocess )-299(is)]TJ -11.634 -1.2 Td [(continued, even if the signal is blocked or ignor)18(ed.)]TJ /TT1 1 Tf -3.6 -2.76 Td (Example)Tj /T1_0 1 Tf 3.6 -1.92 Td [(The )-121(pr)18(ogram )-121(in )-121(Figur)]TJ 0.3708 Tc 9.9 0 Td (e1)Tj 0 Tc 1.35 0 Td [(0.31 )-121(demonstrates )-121(the )-121(normal )-121(sequence )-121(of )-121(code )-121(used )-121(when )-121(a)]TJ -11.25 -1.2 Td [(pr)18(ogram )-237(handles )-237(job )-237(contr)19(ol. )-487(This)-487(pr)18(ogram )-237(simply )-237(copies )-237(its )-237(standar)]TJ 0.4867 Tc 32.613 0 Td (di)Tj 0 Tc 1.389 0 Td [(nput )-237(to )-237(its)]TJ -34.002 -1.2 Td (standar)Tj 0.5163 Tc 3.32 0 Td (do)Tj 0 Tc 1.673 0 Td [(utput, )-266(but )-266(comments )-266(ar)]TJ 0.5163 Tc 11.184 0 Td (eg)Tj 0 Tc 1.551 0 Td [(iven )-266(in )-266(the )-266(signal )-266(handler )-266(for )-266(typical )-266(actions)]TJ -17.728 -1.2 Td [(performed by a pr)18(ogram that manages a scr)18(een.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46986 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (xiv)Tj /T1_1 1 Tf 3.389 0 Td (Contents)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 154.7907 667.9599 Tm [(10.8 )-2456(Reliab)20(le-Signal )-278(T)120(er )253(minology)-556(and )-278(Semantics)-2160(335)]TJ -0 -1.3 Td (10.9)Tj /TT1 1 Tf 4.68 0 Td (kill)Tj /TT0 1 Tf 2.956 0 Td (and)Tj /TT1 1 Tf 2.224 0 Td (raise)Tj /TT0 1 Tf 3.556 0 Td [(Functions )-1882(336)]TJ -13.416 -1.3 Td (10.10)Tj /TT1 1 Tf 4.68 0 Td (alarm)Tj /TT0 1 Tf 3.556 0 Td (and)Tj /TT1 1 Tf 2.224 0 Td (pause)Tj /TT0 1 Tf 3.556 0 Td [(Functions )-1882(338)]TJ -14.016 -1.3 Td [(10.11 )-1900(Signal)-556(Sets )-1882(344)]TJ 0 -1.3 TD (10.12)Tj /TT1 1 Tf 4.68 0 Td (sigprocmask)Tj /TT0 1 Tf 7.156 0 Td [(Function )-1882(346)]TJ -11.836 -1.3 Td (10.13)Tj /TT1 1 Tf 4.68 0 Td (sigpending)Tj /TT0 1 Tf 6.556 0 Td [(Function )-1882(347)]TJ -11.236 -1.3 Td (10.14)Tj /TT1 1 Tf 4.68 0 Td (sigaction)Tj /TT0 1 Tf 5.956 0 Td [(Function )-1882(349)]TJ -10.636 -1.3 Td (10.15)Tj /TT1 1 Tf 4.68 0 Td (sigsetjmp)Tj /TT0 1 Tf 5.956 0 Td (and)Tj /TT1 1 Tf 2.224 0 Td (siglongjmp)Tj /TT0 1 Tf 6.556 0 Td [(Functions )-1882(355)]TJ -19.416 -1.3 Td (10.16)Tj /TT1 1 Tf 4.68 0 Td (sigsuspend)Tj /TT0 1 Tf 6.556 0 Td [(Function )-1882(359)]TJ -11.236 -1.3 Td (10.17)Tj /TT1 1 Tf 4.68 0 Td (abort)Tj /TT0 1 Tf 3.556 0 Td [(Function )-1882(365)]TJ -8.236 -1.3 Td (10.18)Tj /TT1 1 Tf 4.68 0 Td (system)Tj /TT0 1 Tf 4.156 0 Td [(Function )-1882(367)]TJ -8.836 -1.3 Td (10.19)Tj /TT1 1 Tf 4.68 0 Td (sleep)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 3.834 0 Td (nanosleep)Tj /TT0 1 Tf 0.556 Tc (,a)Tj 0 Tc 6.79 0 Td (nd)Tj /TT1 1 Tf 1.668 0 Td (clock_nanosleep)Tj /TT0 1 Tf -10.492 -1.3 Td [(Functions )-1882(373)]TJ -6.48 -1.3 Td (10.20)Tj /TT1 1 Tf 4.68 0 Td (sigqueue)Tj /TT0 1 Tf 5.356 0 Td [(Function )-1882(376)]TJ -10.036 -1.3 Td [(10.21 )-1900(Job-Control)-556(Signals )-1882(377)]TJ T* [(10.22 )-1900(Signal)-556(Names )-278(and )-278(Numbers)-2160(379)]TJ T* [(10.23 )-1900(Summar)]TJ 2.16 Tc 8.488 0 Td (y3)Tj 0 Tc 3.216 0 Td (81)Tj /TT2 1 Tf -14.224 -2.47 Td [(Chapter )-278(11.)-1476(Threads )]TJ 34.118 0 Td (383)Tj /TT0 1 Tf -31.598 -1.82 Td [(11.1 )-2456(Introduction)-2160(383)]TJ T* [(11.2 )-2456(Thread)-556(Concepts )-1882(383)]TJ T* [(11.3 )-2456(Thread)-556(Identi\336cation )-1882(384)]TJ T* [(11.4 )-2456(Thread)-556(Creation )-1882(385)]TJ T* [(11.5 )-2456(Thread)]TJ -0.12 Tc 8.404 0 Td (Te)Tj 0.025 Tc 1.047 0 Td (rm)Tj 0 Tc 1.191 0 Td [(ination )-1882(388)]TJ -10.642 -1.3 Td [(11.6 )-2456(Thread)-556(Synchronization )-1882(397)]TJ T* [(11.6.1 )-3422(Mute)]TJ -0.03 Tc 8.673 0 Td (xe)Tj 2.16 Tc 1.026 0 Td (s3)Tj 0 Tc 3.216 0 Td (99)Tj -12.915 -1.3 Td [(11.6.2 )-3422(Deadloc)]TJ 0.556 Tc 10.128 0 Td (kA)Tj -0.025 Tc 1.683 0 Td (vo)Tj 0 Tc 1.031 0 Td [(idance )-1882(402)]TJ -12.842 -1.3 Td (11.6.3)Tj /TT1 1 Tf 6.48 0 Td (pthread_mutex_timedlock)Tj /TT0 1 Tf 14.356 0 Td [(Function )-1882(407)]TJ -20.836 -1.3 Td [(11.6.4 )-3422(Reader\320Wr)-15(iter )-278(Loc)20(ks )-1882(409)]TJ -0 -1.3 Td [(11.6.5 )-3422(Reader\320Wr)-15(iter )-278(Loc)20(king )-278(with )-278(Timeouts)-2160(413)]TJ T* [(11.6.6 )-3422(Condition)]TJ -0.07 Tc 11.26 0 Td (Va)Tj 0.015 Tc 1.153 0 Td (ri)Tj 0 Tc 0.57 0 Td [(ab)20(les )-1882(413)]TJ -12.983 -1.3 Td [(11.6.7 )-3422(Spin)-556(Loc)20(ks )-1882(417)]TJ -0 -1.3 Td [(11.6.8 )-3422(Barr)-15(iers )-1882(418)]TJ T* [(11.7 )-2456(Summar)]TJ 2.16 Tc 8.488 0 Td (y4)Tj 0 Tc 3.216 0 Td (22)Tj /TT2 1 Tf -14.224 -2.47 Td [(Chapter )-278(12.)-1476(Thread )-278(Contr)20(ol )]TJ 34.118 0 Td (425)Tj /TT0 1 Tf -31.598 -1.82 Td [(12.1 )-2456(Introduction)-2160(425)]TJ T* [(12.2 )-2456(Thread)-556(Limits )-1882(425)]TJ T* [(12.3 )-2456(Thread)-556(Attr )263(ib)20(utes )-1882(426)]TJ -0 -1.3 Td [(12.4 )-2456(Synchronization)-556(Attr )263(ib)20(utes )-1882(430)]TJ -0 -1.3 Td [(12.4.1 )-3422(Mute)]TJ 0.556 Tc 8.673 0 Td (xA)Tj 0 Tc 1.723 0 Td [(ttr )263(ib)20(utes )-1882(430)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46987 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (430)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -1.902 TD (int pthread_attr_getstacksize\(const pthread_attr_t *restrict)Tj /T1_2 1 Tf 36.6 0 Td (attr)Tj /TT0 1 Tf (,)Tj -18.6 -1.189 Td (size_t *restrict)Tj /T1_2 1 Tf 10.2 0 Td (stacksize)Tj /TT0 1 Tf (\);)Tj -28.2 -1.902 Td (int pthread_attr_setstacksize\(pthread_attr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 30.899 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (stacksize)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -14.818 -1.902 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5917.25 cm 0 0 m 0 756 l 3900 756 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 578.1706 Tm (The)Tj /TT0 1 Tf 2.009 0 Td (pthread_attr_setstacksize)Tj /T1_1 1 Tf 15.335 0 Td [(function )-84(is )-84(useful )-84(when )-84(you )-84(want )-84(to )-84(change )-84(the)]TJ -17.343 -1.2 Td [(default )-40(stack )-40(size )-40(but )-40(don\325t )-40(want )-40(to )-40(deal )-40(with )-40(allocating )-40(the )-40(thr)18(ead )-40(stacks )-40(on )-40(your )-40(own.)]TJ 0 -1.2 TD [(When )-466(setting )-466(the)]TJ /T1_2 1 Tf 9.162 0 Td (stacksize)Tj /T1_1 1 Tf 4.233 0 Td [(attribute, )-466(the )-466(size )-466(we )-466(choose )-466(can\325t )-466(be )-466(smaller )-466(than)]TJ /TT0 1 Tf -13.395 -1.2 Td (PTHREAD_STACK_MIN)Tj /T1_1 1 Tf (.)Tj 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 1.935 0 Td (guardsize)Tj /T1_1 1 Tf 4.15 0 Td [(thr)18(ead )-11(attribute )-11(contr)17(ols )-11(the )-11(size )-11(of )-11(the )-11(memory )-11(extent )-11(after )-11(the )-11(end )-11(of)]TJ -7.886 -1.2 Td [(the )-47(thr)18(ead\325s )-47(stack )-47(to )-47(pr)18(otect )-47(against )-47(stack )-47(over\337ow)]TJ 0.5468 Tc 22.573 0 Td (.I)Tj 0 Tc 1.134 0 Td [(ts )-47(default )-47(value )-47(is )-47(implementation)]TJ -23.707 -1.2 Td [(de\336ned, )-95(but )-95(a )-95(commonly )-95(used )-95(value )-95(is )-95(the )-95(system )-95(page )-95(size.)]TJ -0.092 Tc 28.202 0 Td [(We )-279(c)]TJ 0 Tc 2.176 0 Td [(an )-95(set )-95(the)]TJ /T1_2 1 Tf 4.733 0 Td (guardsize)Tj /T1_1 1 Tf -35.111 -1.2 Td [(thr)18(ead )-6(attribute )-6(to )-6(0 )-6(to )-6(disable )-6(this )-6(featur)18(e: )-6(no )-6(guar)]TJ 0.2561 Tc 22.506 0 Td (db)Tj 0 Tc 1.42 0 Td [(uf)18(fer )-6(will )-6(be )-6(pr)18(ovided )-6(in )-6(this )-6(case.)]TJ -23.926 -1.2 Td [(Also, )-140(if )-140(we )-140(change )-140(the)]TJ /T1_2 1 Tf 10.709 0 Td (stackaddr)Tj /T1_1 1 Tf 4.241 0 Td [(thr)18(ead )-141(attribute, )-141(the )-141(system )-141(assumes )-141(that )-141(we )-141(will )-141(be)]TJ -14.949 -1.2 Td [(managing )-157(our )-157(own )-157(stacks )-157(and )-157(disables )-157(stack )-157(guar)]TJ 0.4065 Tc 23.028 0 Td (db)Tj 0 Tc 1.571 0 Td [(uf)18(fers, )-156(just )-156(as )-156(if )-156(we )-156(had )-156(set )-156(the)]TJ /T1_2 1 Tf -24.599 -1.2 Td (guardsize)Tj /T1_1 1 Tf 4.139 0 Td [(thr)18(ead attribute to 0.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5831 441.4874 Tm (#include )Tj 0 -1.902 TD (int pthread_attr_getguardsize\(const pthread_attr_t *restrict)Tj /T1_2 1 Tf 36.6 0 Td (attr)Tj /TT0 1 Tf (,)Tj -18.6 -1.189 Td (size_t *restrict)Tj /T1_2 1 Tf 10.2 0 Td (guardsize)Tj /TT0 1 Tf (\);)Tj -28.2 -1.902 Td (int pthread_attr_setguardsize\(pthread_attr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 30.899 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (guardsize)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -14.818 -1.902 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3750.25 cm 0 0 m 0 755 l 3900 755 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 147.5734 361.4149 Tm [(If )-31(the)]TJ /T1_2 1 Tf 2.619 0 Td (guardsize)Tj /T1_1 1 Tf 4.17 0 Td [(thr)18(ead )-31(attribute )-31(is )-31(modi\336ed, )-31(the )-31(operating )-31(system )-31(might )-31(r)16(ound )-31(it )-31(up)]TJ -8.59 -1.2 Td [(to )-59(an )-59(integral )-59(multiple )-59(of )-59(the )-59(page )-59(size.)-559(If )-59(the )-59(thr)18(ead\325s )-59(stack )-59(pointer )-59(over\337ows )-59(into )-59(the)]TJ 0 -1.2 TD (guar)Tj 0.25 Tc 2.036 0 Td (da)Tj -0.018 Tc 1.361 0 Td (re)Tj 0 Tc 0.856 0 Td [(a, the application will r)18(eceive an err)18(or)]TJ 0.25 Tc 16.631 0 Td (,p)Tj 0 Tc 1.101 0 Td (ossibly with a signal.)Tj -20.185 -1.2 Td [(The )-320(Single )-320(UNIX )-320(Speci\336cation )-320(de\336nes )-320(several )-320(other )-320(optional )-320(thr)16(ead )-320(attributes)]TJ -1.8 -1.2 Td [(intended for use by r)18(eal-time applications.)]TJ -0.092 Tc 19.206 0 Td [(We )-184(w)]TJ 0 Tc 2.471 0 Td [(ill not discuss them her)18(e.)]TJ -19.877 -1.2 Td [(Thr)18(eads )-100(have )-100(other )-100(attributes )-100(not )-100(r)16(epr)18(esented )-100(by )-100(the)]TJ /TT0 1 Tf 24.231 0 Td (pthread_attr_t)Tj /T1_1 1 Tf 8.75 0 Td [(str)8(uctur)18(e:)]TJ -34.781 -1.2 Td (the cancelability state and the cancelability type.)Tj -0.092 Tc 21.83 0 Td [(We )-184(d)]TJ 0 Tc 2.248 0 Td (iscuss them in Section 12.7.)Tj /TT1 1 Tf 11.9978 0 0 11.9978 93.584 258.2335 Tm [(12.4 )-776(Sync)10(hr)20(onization )-278(Attrib)20(utes)]TJ /T1_1 1 Tf 9.9982 0 0 9.9982 129.5781 236.6374 Tm [(Just )-14(as )-14(thr)18(eads )-14(have )-14(attributes, )-14(so )-14(too )-14(do )-14(their )-14(synchr)18(onization )-14(objects.)-514(In )-14(Section )-14(1)55(1.6.7,)]TJ T* [(we )-182(saw )-182(how )-182(spin )-182(locks )-182(have )-182(one )-182(attribute )-182(called )-182(the)]TJ /T1_2 1 Tf 25.048 0 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_1 1 Tf 6.247 0 Td [(attribute. )-432(In)-432(this)]TJ -31.295 -1.2 Td [(section, )-114(we )-114(discuss )-114(the )-114(attributes )-114(of )-114(mutexes, )-114(r)18(eader\320writer )-114(locks, )-114(condition )-114(variables,)]TJ T* (and barriers.)Tj /TT1 1 Tf 11.9978 0 0 11.9978 129.5783 170.6493 Tm [(12.4.1 )-556(Mute)]TJ 0.556 Tc 5.932 0 Td (xA)Tj 0 Tc 1.834 0 Td [(ttrib)20(utes)]TJ /T1_1 1 Tf 9.9982 0 0 9.9982 129.5783 149.0532 Tm [(Mutex )-162(attributes )-162(ar)]TJ 0.4123 Tc 8.795 0 Td (er)Tj 0 Tc 1.268 0 Td [(epr)18(esented )-162(by )-162(a)]TJ /TT0 1 Tf 7.683 0 Td (pthread_mutexattr_t)Tj /T1_1 1 Tf 11.812 0 Td [(str)8(uctur)18(e. )-412(Whenever)]TJ -29.558 -1.2 Td [(we )-133(initialized )-133(a )-133(mutex )-133(in )-133(Chapter )-133(1)55(1, )-133(we )-133(accepted )-133(the )-133(default )-133(attributes )-133(by )-133(using )-133(the)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46988 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (426)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 6670.25 cm 0 0 m 4263 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 139.9086 658.9605 Tm (Name of limit)Tj 17.377 0 Td (Description)Tj /T1_2 1 Tf 16.992 0 Td (name)Tj /T1_1 1 Tf 2.417 0 Td [(ar)18(gument)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 6550.25 cm 0 0 m 4263 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 6530.25 cm 0 0 m 4263 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 94.9214 644.9226 Tm (PTHREAD_DESTRUCTOR_ITERATIONS )Tj 33.753 0 Td (_SC_THREAD_DESTRUCTOR_ITERATIONS)Tj /T1_1 1 Tf -15.936 0 Td (maximum number of times an)Tj 2 -1.25 Td (implementation will try to)Tj 0 -1.25 TD [(destr)18(oy the thr)18(ead-speci\336c)]TJ T* [(data when a thr)18(ead exits)]TJ T* (\(Section 12.6\))Tj /TT0 1 Tf -19.817 -1.25 Td (PTHREAD_KEYS_MAX )Tj 33.753 0 Td (_SC_THREAD_KEYS_MAX)Tj /T1_1 1 Tf -15.936 0 Td (maximum number of keys that can)Tj 2 -1.25 Td [(be cr)18(eated by a pr)18(ocess)]TJ T* (\(Section 12.6\))Tj /TT0 1 Tf -19.817 -1.25 Td (PTHREAD_STACK_MIN )Tj 33.753 0 Td (_SC_THREAD_STACK_MIN)Tj /T1_1 1 Tf -15.936 0 Td (minimum number of bytes that can)Tj 2 -1.25 Td [(be used for a thr)18(ead\325s stack)]TJ T* (\(Section 12.3\))Tj /TT0 1 Tf -19.817 -1.25 Td (PTHREAD_THREADS_MAX )Tj 33.753 0 Td (_SC_THREAD_THREADS_MAX)Tj /T1_1 1 Tf -15.936 0 Td [(maximum number of thr)18(eads that)]TJ 2 -1.25 Td [(can be cr)18(eated in a pr)18(ocess)]TJ T* (\(Section 12.3\))Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 5110.25 cm 0 0 m 4263 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3636.25 5110.25 cm 0 0 m 0 1560 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2354.25 5110.25 cm 0 0 m 0 1560 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5199.25 5110.25 cm 0 0 m 0 1560 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 5110.25 cm 0 0 m 0 1560 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 182.4672 492.9113 Tm (Figure 12.1)Tj /T1_1 1 Tf 5.695 0 Td [(Thr)18(ead limits and)]TJ /T1_2 1 Tf 8.111 0 Td (name)Tj /T1_1 1 Tf 2.417 0 Td [(ar)18(guments to)]TJ /TT0 1 Tf 6.102 0 Td (sysconf)Tj /T1_1 1 Tf 9.9982 0 0 9.9982 147.5738 465.3162 Tm (Figur)Tj 0.4884 Tc 2.383 0 Td (e1)Tj 0 Tc 1.467 0 Td [(2.2 )-238(shows )-238(the )-238(values )-238(of )-238(the )-238(thr)16(ead )-238(limits )-238(for )-238(the )-238(four )-238(implementations)]TJ -5.65 -1.2 Td [(described )-205(in )-205(this )-205(book.)-706(If )-205(the )-205(implementation\325s )-205(limit )-205(is )-205(indeterminate, )-205(\324)37(\324no )-205(limit\325)]TJ 0.4553 Tc 37.552 0 Td (\325i)Tj 0 Tc 1.024 0 Td (s)Tj -38.576 -1.2 Td [(listed. )-250(This)-250(doesn\325t mean that the value is unlimited, however)74(.)]TJ 7.9986 0 0 7.9986 183.5673 421.3242 Tm [(Note )-172(that )-172(although )-172(an )-172(implementation )-172(may )-172(not )-172(pr)21(ovide )-171(access )-171(to )-171(these )-171(limits, )-171(that )-171(doesn\325t)]TJ T* [(mean )-15(that )-15(the )-15(limits )-15(don\325t )-15(exist.)-515(It )-15(just )-15(means )-15(that )-15(the )-15(implementation )-15(doesn\325t )-15(pr)18(ovide )-15(us )-15(with)]TJ 0.25 Tc T* (aw)Tj 0 Tc 1.584 0 Td (ay to get at them using)Tj /TT0 1 Tf 10.341 0 Td (sysconf)Tj /T1_1 1 Tf (.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1731.25 3814.25 cm 0 0 m 3030 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 322.5026 373.3104 Tm [(Fr)18(eeBSD )-1416(Linux)-1382(Mac OS X)-1198(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-2993(3.2.0)-2618(10.6.8 )-2868(10)]TJ -11.96 0.625 Td (Limit)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1731.25 3594.25 cm 0 0 m 3030 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1731.25 3574.25 cm 0 0 m 3030 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 177.0589 349.2952 Tm (PTHREAD_DESTRUCTOR_ITERATIONS)Tj /T1_1 1 Tf 4.368 Tc 21.768 0 Td (444)Tj 0 Tc 11.644 0 Td (no limit)Tj /TT0 1 Tf -33.412 -1.25 Td (PTHREAD_KEYS_MAX)Tj /T1_1 1 Tf 20.768 0 Td [(256 )-2368(1,024)-3368(512 )-1158(no)-250(limit)]TJ /TT0 1 Tf -20.768 -1.25 Td (PTHREAD_STACK_MIN)Tj /T1_1 1 Tf 20.018 0 Td [(2,048 )-1868(16,384)-2618(8,192 )-2368(8,192)]TJ /TT0 1 Tf -20.018 -1.25 Td (PTHREAD_THREADS_MAX)Tj /T1_1 1 Tf 18.808 0 Td [(no limit)-1408(no limit)-1408(no limit)-1408(no limit)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1731.25 3154.25 cm 0 0 m 3030 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4351.25 3154.25 cm 0 0 m 0 660 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3962.25 3154.25 cm 0 0 m 0 660 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3572.25 3154.25 cm 0 0 m 0 660 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3183.25 3154.25 cm 0 0 m 0 660 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4761.25 3154.25 cm 0 0 m 0 660 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1731.25 3154.25 cm 0 0 m 0 660 l S Q Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 231.5726 297.293 Tm (Figure 12.2)Tj /T1_1 1 Tf 5.695 0 Td [(Examples of thr)18(ead con\336guration limits)]TJ /TT1 1 Tf 11.9957 0 0 11.9957 93.5665 258.9068 Tm [(12.3 )-776(Thread)-556(Attrib)20(utes)]TJ /T1_1 1 Tf 9.9964 0 0 9.9964 129.5536 236.115 Tm [(The )-666(pthr)18(ead )-666(interface )-666(allows )-666(us )-666(to )-666(\336ne-tune )-666(the )-666(behavior )-666(of )-666(thr)16(eads )-666(and)]TJ 0 -1.2 TD [(synchr)18(onization )-396(objects )-396(by )-396(setting )-396(various )-396(attributes )-396(associated )-396(with )-396(each )-396(object.)]TJ T* (Generally)Tj 0.25 Tc 4.225 0 Td (,t)Tj 0 Tc 0.826 0 Td (he functions for managing these attributes follow the same pattern:)Tj -3.251 -1.92 Td [(1. )-633(Each)-472(object )-222(is )-222(associated )-222(with )-222(its )-222(own )-222(type )-222(of )-222(attribute )-222(object )-222(\(thr)17(eads )-222(with)]TJ 1.633 -1.2 Td [(thr)18(ead )-7(attributes, )-7(mutexes )-7(with )-7(mutex )-7(attributes, )-7(and )-7(so )-7(on\).)-510(An )-7(attribute )-7(object)]TJ T* [(can )-35(r)18(epr)18(esent )-35(multiple )-35(attributes.)-535(The )-35(attribute )-35(object )-35(is )-35(opaque )-35(to )-35(applications.)]TJ T* [(This )-339(means )-339(that )-339(applications )-339(ar)18(en\325t )-339(supposed )-339(to )-339(know )-339(anything )-339(about )-339(its)]TJ T* [(internal )-223(str)8(uctur)18(e, )-223(which )-223(pr)18(omotes )-223(application )-223(portability)]TJ 0.7227 Tc 26.482 0 Td (.I)Tj 0 Tc 1.31 0 Td [(nstead, )-223(functions)]TJ -27.791 -1.2 Td (ar)Tj 0.25 Tc 0.877 0 Td (ep)Tj -0.018 Tc 1.33 0 Td (ro)Tj 0 Tc 0.923 0 Td (vided to manage the attributes objects.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46989 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (12)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(Thr)4(ead )-280(Contr)15(ol)]TJ /TT0 1 Tf 12 0 0 12 93.6001 410.4 Tm [(12.1 )-776(Intr)20(oduction)]TJ /T1_2 1 Tf 10 0 0 10 129.6001 386.4 Tm [(In )-62(Chapter )-62(1)55(1, )-62(we )-62(learned )-62(the )-62(basics )-62(about )-62(thr)18(eads )-62(and )-62(thr)19(ead )-62(synchr)18(onization. )-312(In)-312(this)]TJ -0 -1.2 Td [(chapter)74(,)-305(we)-305(w)1(ill )-55(learn )-55(the )-55(details )-55(of )-55(contr)18(olling )-55(thr)18(ead )-55(behavior)]TJ 0.5546 Tc 28.243 0 Td (.W)Tj 0.3045 Tc 1.713 0 Td (ew)Tj 0 Tc 1.617 0 Td [(ill )-54(look )-54(at )-54(thr)17(ead)]TJ -31.574 -1.2 Td [(attributes )-123(and )-123(synchr)18(onization )-123(primitive )-123(attributes, )-123(which )-123(we )-123(ignor)18(ed )-123(in )-123(the )-123(pr)22(evious)]TJ 0 -1.2 TD [(chapter in favor of the default behavior)74(.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-326(w)]TJ 0 Tc 2.613 0 Td [(ill )-142(follow )-142(this )-142(with )-142(a )-142(look )-142(at )-142(how )-142(thr)17(eads )-142(can )-142(keep )-142(data )-142(private )-142(fr)18(om )-142(other)]TJ -4.413 -1.2 Td [(thr)18(eads )-161(in )-161(the )-161(same )-161(pr)18(ocess. )-411(Then)-411(we )-161(will )-161(wrap )-161(up )-161(the )-161(chapter )-161(with )-161(a )-161(look )-161(at )-161(how)]TJ -0 -1.2 Td [(some pr)18(ocess-based system calls interact with thr)18(eads.)]TJ /TT0 1 Tf 12 0 0 12 93.5999 266.4 Tm [(12.2 )-776(Thread)-556(Limits)]TJ /T1_2 1 Tf -0.092 Tc 10 0 0 10 129.5999 242.4 Tm [(We )-370(d)]TJ 0 Tc 2.434 0 Td [(iscussed )-186(the)]TJ /TT1 1 Tf 5.959 0 Td (sysconf)Tj /T1_2 1 Tf 4.636 0 Td [(function )-186(in )-186(Section )-186(2.5.4.)-686(The )-186(Single )-186(UNIX )-186(Speci\336cation)]TJ -13.029 -1.2 Td [(de\336nes )-21(several )-21(limits )-21(associated )-21(with )-21(the )-21(operation )-21(of )-21(thr)18(eads, )-21(which )-21(we )-21(didn\325t )-21(show )-21(in)]TJ T* (Figur)Tj 0.564 Tc 2.383 0 Td (e2)Tj 0 Tc 1.543 0 Td [(.1)55(1. )-564(As)-564(with )-314(other )-314(system )-314(limits, )-314(the )-314(thr)18(ead )-314(limits )-314(can )-314(be )-314(queried )-314(using)]TJ /TT1 1 Tf -3.926 -1.2 Td (sysconf)Tj /T1_2 1 Tf 0.5 Tc (.F)Tj 0 Tc 5.506 0 Td (igur)Tj 0.25 Tc 1.827 0 Td (e1)Tj 0 Tc 1.229 0 Td (2.1 summarizes these limits.)Tj -6.762 -1.2 Td [(As )-153(with )-153(the )-153(other )-153(limits )-153(r)18(eported )-153(by)]TJ /TT1 1 Tf 17.2 0 Td (sysconf)Tj /T1_2 1 Tf 0.403 Tc (,u)Tj 0 Tc 5.456 0 Td [(se )-153(of )-153(these )-153(limits )-153(is )-153(intended )-153(to)]TJ -24.456 -1.2 Td [(pr)18(omote )-269(application )-269(portability )-269(among )-269(dif)19(fer)18(ent )-269(operating )-269(system )-269(implementations.)]TJ -0 -1.2 Td [(For )-48(example, )-48(if )-48(your )-48(application )-48(r)19(equir)18(es )-48(that )-48(you )-48(cr)18(eate )-48(four )-48(thr)18(eads )-48(for )-48(every )-48(\336le )-48(you)]TJ T* [(manage, )-10(you )-10(might )-10(have )-10(to )-10(limit )-10(the )-10(number )-10(of )-10(\336les )-10(you )-10(can )-10(manage )-10(concurr)18(ently )-10(if )-10(the)]TJ T* [(system won\325t let you cr)18(eate enough thr)18(eads.)]TJ /T1_3 1 Tf 9 0 0 9 506.1001 114 Tm (425)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46990 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (422)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 0 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(This )-55(example )-55(shows )-55(the )-55(use )-55(of )-55(a )-55(barrier )-55(in )-55(a )-55(simpli\336ed )-55(situation )-55(wher)]TJ 0.3054 Tc 31.424 0 Td (et)Tj 0 Tc 1.11 0 Td [(he )-55(thr)18(eads)]TJ -34.334 -1.2 Td [(perform )-153(only )-153(one )-153(task.)-653(In )-153(mor)]TJ 0.4032 Tc 14.261 0 Td (er)Tj 0 Tc 1.259 0 Td [(ealistic )-153(situations, )-153(the )-153(worker )-153(thr)18(eads )-153(will )-153(continue)]TJ -15.52 -1.2 Td (with other activities after the call to)Tj /TT0 1 Tf 15.866 0 Td (pthread_barrier_wait)Tj /T1_1 1 Tf -0.018 Tc 12.25 0 Td (re)Tj 0 Tc 0.856 0 Td (turns.)Tj -27.172 -1.2 Td [(In )-34(the )-34(example, )-34(we )-34(use )-34(eight )-34(thr)18(eads )-34(to )-34(divide )-34(the )-34(job )-34(of )-34(sorting )-34(8 )-34(million )-34(numbers.)]TJ -1.8 -1.2 Td [(Each )-38(thr)18(ead )-38(sorts )-38(1 )-38(million )-38(numbers )-38(using )-38(the )-38(heapsort )-38(algorithm )-38(\(see )-38(Knuth)]TJ 34.772 0.04 Td ([)Tj 0.333 -0.04 Td (1998)Tj 2 0.04 Td (])Tj 0.621 -0.04 Td (for)Tj -37.726 -1.2 Td [(details\). )-250(Then)-250(the main thr)18(ead calls a function to mer)18(ge the r)18(esults.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-247(d)]TJ 0 Tc 2.311 0 Td [(on\325t )-63(need )-63(to )-63(use )-63(the)]TJ /TT0 1 Tf 9.212 0 Td (PTHREAD_BARRIER_SERIAL_THREAD)Tj /T1_1 1 Tf -0.018 Tc 17.713 0 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-63(value )-63(fr)19(om)]TJ /TT0 1 Tf -31.892 -1.2 Td (pthread_barrier_wait)Tj /T1_1 1 Tf 12.355 0 Td [(to )-104(decide )-104(which )-104(thr)18(ead )-104(mer)18(ges )-104(the )-104(r)18(esults, )-104(because )-104(we )-104(use)]TJ -12.355 -1.2 Td [(the )-10(main )-10(thr)18(ead )-10(for )-10(this )-10(task.)-510(That )-10(is )-10(why )-10(we )-10(specify )-10(the )-10(barrier )-10(count )-10(as )-10(one )-10(mor)]TJ 0.2604 Tc 36.271 0 Td (et)Tj 0 Tc 1.065 0 Td (han)Tj -37.336 -1.2 Td [(the number of worker thr)18(eads; the main thr)18(ead counts as one waiter)74(.)]TJ 1.8 -1.2 Td [(If )-53(we )-53(write )-53(a )-53(pr)18(ogram )-53(to )-53(sort )-53(8 )-53(million )-53(numbers )-53(with )-53(heapsort )-53(using )-53(1 )-53(thr)18(ead )-53(only)110(,)]TJ -1.8 -1.2 Td [(we )-381(will )-381(see )-381(a )-381(performance )-381(impr)18(ovement )-381(when )-381(comparing )-381(it )-381(to )-381(the )-381(pr)22(ogram )-380(in)]TJ 0 -1.2 TD (Figur)Tj 0.3698 Tc 2.383 0 Td (e1)Tj 0 Tc 1.294 0 Td [(1.16. )-370(On)]TJ 0.3698 Tc 4.358 0 Td (as)Tj 0 Tc 1.294 0 Td [(ystem )-120(with )-120(8 )-120(cor)19(es, )-120(the )-120(single-thr)18(eaded )-120(pr)18(ogram )-120(sorted )-120(8 )-120(million)]TJ -9.328 -1.2 Td [(numbers )-18(in )-18(12.14 )-18(seconds.)-518(On )-18(the )-18(same )-18(system, )-18(using )-18(8 )-18(thr)17(eads )-18(in )-18(parallel )-18(and )-18(1 )-18(thr)18(ead)]TJ T* [(to )-125(mer)18(ge )-125(the )-125(r)19(esults, )-125(the )-125(same )-125(set )-125(of )-125(8 )-125(million )-125(numbers )-125(was )-125(sorted )-125(in )-125(1.91 )-125(seconds, )-125(6)]TJ T* [(times faster)74(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4890.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9986 0 0 11.9986 93.5888 448.1462 Tm [(11.7 )-776(Summar)-10(y)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 424.1491 Tm [(In )-310(this )-310(chapter)73(,)-560(we)-560(i)-1(ntr)18(oduced )-310(the )-310(concept )-310(of )-310(thr)18(eads )-310(and )-310(discussed )-310(the )-310(POSIX.1)]TJ -0 -1.2 Td [(primitives )-184(available )-184(to )-184(cr)18(eate )-184(and )-184(destr)18(oy )-184(them.)]TJ -0.092 Tc 22.815 0 Td [(We )-368(a)]TJ 0 Tc 2.321 0 Td [(lso )-184(intr)18(oduced )-184(the )-184(pr)18(oblem )-184(of)]TJ -25.136 -1.2 Td [(thr)18(ead )-1138(synchr)18(onization. )-1388(W)]TJ 1.3883 Tc 14.189 0 Td (ed)Tj 0 Tc 2.478 0 Td [(iscussed )-1138(\336ve )-1138(fundamental )-1138(synchr)17(onization)]TJ -16.667 -1.2 Td [(mechanisms )167(\321 )167(mutexes,)]TJ -0.018 Tc 11.367 0 Td (re)Tj 0 Tc 0.856 0 Td [(ader\320writer )-499(locks, )-499(condition )-499(variables, )-499(spin )-499(locks, )-499(and)]TJ -12.223 -1.2 Td [(barriers )167(\321 )167(and)-251(we saw how to use them to pr)18(otect shar)18(ed r)18(esour)18(ces.)]TJ /TT1 1 Tf 11.9986 0 0 11.9986 129.5832 329.3605 Tm [(Ex)10(er)20(cises)]TJ /T1_0 1 Tf -0.037 Tc 8.9989 0 0 8.9989 129.5832 308.363 Tm (11)Tj 0 Tc 0.963 0 Td (.1)Tj /T1_1 1 Tf 2.102 0 Td [(Modify )-91(the )-91(example )-91(code )-91(shown )-91(in )-91(Figur)]TJ 0.3411 Tc 18.77 0 Td (e1)Tj 0 Tc 1.265 0 Td [(1.4 )-91(to )-91(pass )-91(the )-91(str)7(uctur)]TJ 0.3412 Tc 10.313 0 Td (eb)Tj 0 Tc 1.373 0 Td [(etween )-91(the )-91(thr)18(eads)]TJ -31.721 -1.222 Td [(pr)18(operly)111(.)]TJ /T1_0 1 Tf -0.037 Tc -3.065 -1.667 Td (11)Tj 0 Tc 0.963 0 Td (.2)Tj /T1_1 1 Tf 2.102 0 Td [(In )-167(the )-167(example )-167(code )-167(shown )-167(in )-167(Figur)]TJ 0.4171 Tc 16.862 0 Td (e1)Tj 0 Tc 1.341 0 Td [(1.14, )-167(what )-167(additional )-167(synchr)18(onization )-167(\(if )-167(any\) )-167(is)]TJ -18.203 -1.222 Td [(necessary )-122(to )-122(allow )-122(the )-122(master )-122(thr)18(ead )-122(to )-122(change )-122(the )-122(thr)18(ead )-122(ID )-122(associated )-122(with )-122(a )-122(pending)]TJ 0 -1.222 TD [(job? )-250(How)-250(would this af)18(fect the)]TJ /TT0 1 Tf 14.031 0 Td (job_remove)Tj /T1_1 1 Tf 6.25 0 Td (function?)Tj /T1_0 1 Tf -0.037 Tc -23.346 -1.667 Td (11)Tj 0 Tc 0.963 0 Td (.3)Tj /T1_1 1 Tf 2.102 0 Td [(Apply )-133(the )-133(techniques )-133(shown )-133(in )-133(Figur)]TJ 0.3834 Tc 17.125 0 Td (e1)Tj 0 Tc 1.307 0 Td [(1.15 )-133(to )-133(the )-133(worker )-133(thr)16(ead )-133(example )-133(\(Figur)18(es )-133(1)54(1.1)]TJ -18.433 -1.222 Td [(and )-432(1)55(1.14\) )-432(to )-432(implement )-432(the )-432(worker )-432(thr)18(ead )-432(function.)-932(Don\325t )-432(for)18(get )-432(to )-432(update )-432(the)]TJ /TT0 1 Tf T* (queue_init)Tj /T1_1 1 Tf 6.25 0 Td (function to initialize the condition variable and change the)Tj /TT0 1 Tf 26.075 0 Td (job_insert)Tj /T1_1 1 Tf 6.25 0 Td (and)Tj /TT0 1 Tf -38.575 -1.222 Td (job_append)Tj /T1_1 1 Tf 6.25 0 Td [(functions to signal the worker thr)18(eads. )-250(What)-250(dif)18(\336culties arise?)]TJ /T1_0 1 Tf -0.037 Tc -9.315 -1.667 Td (11)Tj 0 Tc 0.963 0 Td (.4)Tj /T1_1 1 Tf 2.102 0 Td [(Which sequence of steps is corr)18(ect?)]TJ 2 -1.833 Td (1. Lock a mutex \()Tj /TT0 1 Tf (pthread_mutex_lock)Tj /T1_1 1 Tf (\).)Tj 0 -1.528 TD [(2. Change the condition pr)18(otected by the mutex.)]TJ 0 -1.528 TD [(3. Signal thr)18(eads waiting on the condition \()]TJ /TT0 1 Tf (pthread_cond_broadcast)Tj /T1_1 1 Tf (\).)Tj T* (4. Unlock the mutex \()Tj /TT0 1 Tf (pthread_mutex_unlock)Tj /T1_1 1 Tf (\).)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46991 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (418)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(To )-369(l)]TJ 0 Tc 1.793 0 Td [(ock )-185(the )-185(spin )-185(lock, )-185(we )-185(can )-185(call )-185(either)]TJ /TT0 1 Tf 17.314 0 Td (pthread_spin_lock)Tj /T1_1 1 Tf 0.4349 Tc (,w)Tj 0 Tc 11.719 0 Td [(hich )-185(will )-185(spin)]TJ -32.626 -1.2 Td [(until )-120(the )-120(lock )-120(is )-120(acquir)18(ed, )-120(or)]TJ /TT0 1 Tf 13.31 0 Td (pthread_spin_trylock)Tj /T1_1 1 Tf 0.3703 Tc (,w)Tj 0 Tc 13.454 0 Td [(hich )-120(will )-120(r)17(eturn )-120(the)]TJ /TT0 1 Tf 9.236 0 Td (EBUSY)Tj /T1_1 1 Tf -36 -1.2 Td [(err)18(or )-154(if )-154(the )-154(lock )-154(can\325t )-154(be )-154(acquir)18(ed )-154(immediately)]TJ 0.6538 Tc 21.373 0 Td (.N)Tj 0 Tc 1.735 0 Td [(ote )-154(that)]TJ /TT0 1 Tf 3.893 0 Td (pthread_spin_trylock)Tj /T1_1 1 Tf -27 -1.2 Td [(doesn\325t )-96(spin.)-595(Regar)18(dless )-96(of )-96(how )-96(it )-96(was )-96(locked, )-96(a )-96(spin )-96(lock )-96(can )-96(be )-96(unlocked )-96(by )-96(calling)]TJ /TT0 1 Tf 0 -1.2 TD (pthread_spin_unlock)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 604.2637 Tm (#include )Tj 0 -1.902 TD (int pthread_spin_lock\(pthread_spinlock_t *)Tj /T1_2 1 Tf (lock)Tj /TT0 1 Tf (\);)Tj T* (int pthread_spin_trylock\(pthread_spinlock_t *)Tj /T1_2 1 Tf (lock)Tj /TT0 1 Tf (\);)Tj 0 -1.902 TD (int pthread_spin_unlock\(pthread_spinlock_t *)Tj /T1_2 1 Tf (lock)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 20.386 -1.902 Td [(All r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5313.25 cm 0 0 m 0 820 l 3900 820 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 517.7579 Tm [(Note )-272(that )-272(if )-272(a )-272(spin )-272(lock )-272(is )-272(curr)20(ently )-272(unlocked, )-272(then )-272(the)]TJ /TT0 1 Tf 27 0 Td (pthread_spin_lock)Tj /T1_1 1 Tf -28.8 -1.2 Td [(function )-29(can )-29(lock )-29(it )-29(without )-29(spinning.)-529(If )-29(the )-29(thr)18(ead )-29(alr)19(eady )-29(has )-29(it )-29(locked, )-29(the )-29(r)18(esults )-29(ar)19(e)]TJ 0 -1.2 TD [(unde\336ned. )-425(The)-426(call )-175(to)]TJ /TT0 1 Tf 10.826 0 Td (pthread_spin_lock)Tj /T1_1 1 Tf 10.625 0 Td [(could )-175(fail )-175(with )-175(the)]TJ /TT0 1 Tf 9.032 0 Td (EDEADLK)Tj /T1_1 1 Tf 4.626 0 Td [(err)18(or )-175(\(or)]TJ -35.108 -1.2 Td [(some )-208(other )-208(err)19(or\), )-208(or )-208(the )-208(call )-208(could )-208(spin )-208(inde\336nitely)]TJ 0.7076 Tc 24.325 0 Td (.T)Tj 0 Tc 1.571 0 Td [(he )-208(behavior )-208(depends )-208(on )-208(the)]TJ -25.896 -1.2 Td [(implementation. )-346(If)-347(we )-96(try )-96(to )-96(unlock )-96(a )-96(spin )-96(lock )-96(that )-96(is )-96(not )-96(locked, )-96(the )-96(r)13(esults )-96(ar)]TJ 0.3465 Tc 36.413 0 Td (ea)Tj 0 Tc 1.326 0 Td (lso)Tj -37.739 -1.2 Td (unde\336ned.)Tj 1.8 -1.2 Td [(If )-193(either)]TJ /TT0 1 Tf 4.108 0 Td (pthread_spin_lock)Tj /T1_1 1 Tf 10.643 0 Td (or)Tj /TT0 1 Tf 1.384 0 Td (pthread_spin_trylock)Tj /T1_1 1 Tf -0.018 Tc 12.443 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-193(0, )-193(then )-193(the)]TJ -31.235 -1.2 Td [(spin )-149(lock )-149(is )-149(locked.)]TJ -0.092 Tc 9.474 0 Td [(We )-333(n)]TJ 0 Tc 2.368 0 Td [(eed )-149(to )-149(be )-149(car)18(eful )-149(not )-149(to )-149(call )-149(any )-149(functions )-149(that )-149(might )-149(sleep)]TJ -11.842 -1.2 Td [(while )-29(holding )-29(the )-29(spin )-29(lock.)-529(If )-29(we )-29(do, )-29(then )-29(we\325ll )-29(waste )-29(CPU )-29(r)18(esour)18(ces )-29(by )-29(extending )-29(the)]TJ -0 -1.2 Td [(time other thr)18(eads will spin if they try to acquir)]TJ 0.25 Tc 20.952 0 Td (ei)Tj 0 Tc 1.02 0 Td (t.)Tj /TT1 1 Tf 11.9986 0 0 11.9986 129.585 385.7737 Tm [(11.6.8 )-556(Barrier)15(s)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.585 365.3762 Tm [(Barriers )-269(ar)]TJ 0.519 Tc 4.886 0 Td (eas)Tj 0 Tc 2.441 0 Td [(ynchr)18(onization )-269(mechanism )-269(that )-269(can )-269(be )-269(used )-269(to )-269(coor)18(dinate )-269(multiple)]TJ -7.327 -1.2 Td [(thr)18(eads )-89(working )-89(in )-89(parallel.)]TJ 0.3388 Tc 13.135 0 Td (Ab)Tj 0 Tc 1.67 0 Td [(arrier )-89(allows )-89(each )-89(thr)19(ead )-89(to )-89(wait )-89(until )-89(all )-89(cooperating)]TJ -14.805 -1.2 Td [(thr)18(eads )-121(have )-121(r)18(eached )-121(the )-121(same )-121(point, )-121(and )-121(then )-121(continue )-121(executing )-121(fr)18(om )-121(ther)18(e. )-371(W)92(e\325ve)]TJ 0 -1.2 Td [(alr)18(eady )-218(seen )-218(one )-218(form )-218(of )-218(barrier)]TJ 0.0833 Tc 15.351 0 Td (\321t)Tj 0 Tc 1.409 0 Td (he)Tj /TT0 1 Tf 1.529 0 Td (pthread_join)Tj /T1_1 1 Tf 7.668 0 Td [(function )-218(acts )-218(as )-218(a )-218(barrier )-218(to)]TJ -25.956 -1.2 Td [(allow one thr)18(ead to wait until another thr)18(ead exits.)]TJ 1.8 -1.2 Td [(Barrier )-327(objects )-327(ar)]TJ 0.5773 Tc 8.104 0 Td (em)Tj 0 Tc 1.939 0 Td (or)Tj 0.5773 Tc 0.923 0 Td (eg)Tj 0 Tc 1.612 0 Td [(eneral )-327(than )-327(this, )-327(however)]TJ 0.8274 Tc 12.127 0 Td (.T)Tj 0 Tc 1.69 0 Td [(hey )-327(allow )-327(an )-327(arbitrary)]TJ -28.196 -1.2 Td [(number )-117(of )-117(thr)18(eads )-117(to )-117(wait )-117(until )-117(all )-117(of )-117(the )-117(thr)18(eads )-117(have )-117(completed )-117(pr)20(ocessing, )-117(but )-117(the)]TJ T* [(thr)18(eads )-124(don\325t )-124(have )-124(to )-124(exit.)-626(They )-124(can )-124(continue )-124(working )-124(after )-124(all )-124(thr)18(eads )-124(have )-124(r)15(eached)]TJ T* [(the barrier)74(.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-323(c)]TJ 0 Tc 2.22 0 Td [(an )-139(use )-139(the)]TJ /TT0 1 Tf 5.143 0 Td (pthread_barrier_init)Tj /T1_1 1 Tf 12.389 0 Td [(function )-139(to )-139(initialize )-139(a )-139(barrier)]TJ 0.3893 Tc 13.413 0 Td (,a)Tj 0 Tc 1.139 0 Td [(nd )-139(we)]TJ -36.105 -1.2 Td (can use the)Tj /TT0 1 Tf 5.169 0 Td (pthread_barrier_destroy)Tj /T1_1 1 Tf 14.05 0 Td [(function to deinitialize a barrier)74(.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5826 228.6926 Tm (#include )Tj 0 -1.902 TD (int pthread_barrier_init\(pthread_barrier_t *restrict)Tj /T1_2 1 Tf 31.8 0 Td (barrier)Tj /TT0 1 Tf (,)Tj -16.8 -1.189 Td (const pthread_barrierattr_t *restrict)Tj /T1_2 1 Tf 22.8 0 Td (attr)Tj /TT0 1 Tf (,)Tj -22.8 -1.189 Td (unsigned int)Tj /T1_2 1 Tf 7.8 0 Td (count)Tj /TT0 1 Tf (\);)Tj -22.8 -1.902 Td (int pthread_barrier_destroy\(pthread_barrier_t *)Tj /T1_2 1 Tf (barrier)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 19.681 -1.902 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1514.25 cm 0 0 m 0 863 l 3900 863 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46992 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.6 )]TJ 32.941 0 Td [(Thr)18(ead )-250(Synchr)18(onization)]TJ /T1_1 1 Tf 12.892 0 Td (417)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 129.5922 668.9599 Tm [(11.6.7 )-556(Spin)-556(Loc)20(ks)]TJ /T1_0 1 Tf 0.3665 Tc 9.9994 0 0 9.9994 129.5922 648.5611 Tm (As)Tj 0 Tc 1.569 0 Td [(pin )-116(lock )-116(is )-116(like )-116(a )-116(mutex, )-116(except )-116(that )-116(instead )-116(of )-116(blocking )-116(a )-116(pr)18(ocess )-116(by )-116(sleeping, )-116(the)]TJ -1.569 -1.2 Td [(pr)18(ocess )-139(is )-139(blocked )-139(by )-139(busy-waiting )-139(\(spinning\) )-139(until )-139(the )-139(lock )-139(can )-139(be )-139(acquir)15(ed. )-389(A)-390(spin)]TJ 0 -1.2 Td [(lock )-159(could )-159(be )-159(used )-159(in )-159(situations )-159(wher)]TJ 0.4089 Tc 17.392 0 Td (el)Tj 0 Tc 1.179 0 Td [(ocks )-159(ar)]TJ 0.4089 Tc 3.256 0 Td (eh)Tj 0 Tc 1.47 0 Td [(eld )-159(for )-159(short )-159(periods )-159(of )-159(times )-159(and)]TJ -23.297 -1.2 Td [(thr)18(eads don\325t want to incur the cost of being descheduled.)]TJ 1.8 -1.2 Td [(Spin )-45(locks )-45(ar)]TJ 0.2947 Tc 5.726 0 Td (eo)Tj 0 Tc 1.32 0 Td [(ften )-45(used )-45(as )-45(low-level )-45(primitives )-45(to )-45(implement )-45(other )-45(types )-45(of )-45(locks.)]TJ -8.846 -1.2 Td [(Depending )-99(on )-99(the )-99(system )-99(ar)17(chitectur)18(e, )-99(they )-99(can )-99(be )-99(implemented )-99(ef)17(\336ciently )-99(using )-99(test-)]TJ -0 -1.2 Td [(and-set )-48(instr)8(uctions. )-298(Although)-298(ef)18(\336cient, )-48(they )-48(can )-48(lead )-48(to )-48(wasting )-48(CPU )-48(r)18(esour)18(ces: )-48(while)]TJ 0.4718 Tc -0 -1.2 Td (at)Tj 0 Tc 1.298 0 Td [(hr)18(ead )-222(is )-222(spinning )-222(and )-222(waiting )-222(for )-222(a )-222(lock )-222(to )-222(become )-222(available, )-222(the )-222(CPU )-222(can\325t )-222(do)]TJ -1.298 -1.2 Td [(anything else.)-500(This is why spin locks should be held only for short periods of time.)]TJ 1.8 -1.2 Td [(Spin )-157(locks )-157(ar)]TJ 0.4066 Tc 5.95 0 Td (eu)Tj 0 Tc 1.489 0 Td [(seful )-157(when )-157(used )-157(in )-157(a )-157(nonpr)18(eemptive )-157(kernel: )-157(besides )-157(pr)18(oviding )-157(a)]TJ -9.239 -1.2 Td [(mutual )-344(exclusion )-344(mechanism, )-344(they )-344(block )-344(interr)8(upts )-344(so )-344(an )-344(interr)8(upt )-344(handler )-344(can\325t)]TJ 0 -1.2 TD [(deadlock )-154(the )-154(system )-154(by )-154(trying )-154(to )-154(acquir)]TJ 0.4045 Tc 18.406 0 Td (eas)Tj 0 Tc 2.212 0 Td [(pin )-154(lock )-154(that )-154(is )-154(alr)16(eady )-155(locked )-155(\(think )-155(of)]TJ -20.618 -1.2 Td [(interr)8(upts )-52(as )-52(another )-52(type )-52(of )-52(pr)16(eemption\). )-302(In)-303(these )-52(types )-52(of )-52(kernels, )-52(interr)8(upt )-52(handlers)]TJ -0 -1.2 Td [(can\325t sleep, so the only synchr)18(onization primitives they can use ar)]TJ 0.25 Tc 29.013 0 Td (es)Tj 0 Tc 1.153 0 Td (pin locks.)Tj -28.366 -1.2 Td [(However)74(,)-274(at)-274(user )-24(level, )-24(spin )-24(locks )-24(ar)]TJ 0.2741 Tc 16.069 0 Td (en)Tj 0 Tc 1.335 0 Td [(ot )-24(as )-24(useful )-24(unless )-24(you )-24(ar)]TJ 0.2742 Tc 11.285 0 Td (er)Tj 0 Tc 1.14 0 Td [(unning )-24(in )-24(a )-24(r)17(eal-)]TJ -31.628 -1.2 Td [(time )-133(scheduling )-133(class )-133(that )-133(doesn\325t )-133(allow )-133(pr)16(eemption. )-383(User)18(-level )-133(thr)18(eads )-133(r)8(unning )-133(in )-133(a)]TJ T* [(time-sharing )-72(scheduling )-72(class )-72(can )-72(be )-72(descheduled )-72(when )-72(their )-72(time )-72(quantum )-72(expir)18(es )-72(or)]TJ T* [(when )-59(a )-59(thr)18(ead )-59(with )-59(a )-59(higher )-59(scheduling )-59(priority )-59(becomes )-59(r)7(unnable. )-309(In)-309(these )-59(cases, )-59(if )-59(a)]TJ 0 -1.2 Td [(thr)18(ead )-110(is )-110(holding )-110(a )-110(spin )-110(lock, )-110(it )-110(will )-110(be )-110(put )-110(to )-110(sleep )-110(and )-110(other )-110(thr)19(eads )-110(blocked )-110(on )-110(the)]TJ T* (lock will continue spinning longer than intended.)Tj 1.8 -1.2 Td [(Many )-94(mutex )-94(implementations )-94(ar)17(e)-344(so)-344(e)]TJ -0.018 Tc 17.402 0 Td (f\336)Tj 0 Tc 0.92 0 Td [(cient )-94(that )-94(the )-94(performance )-94(of )-94(applications)]TJ -20.122 -1.2 Td [(using )-146(mutex )-146(locks )-146(is )-146(equivalent )-146(to )-146(their )-146(performance )-146(if )-146(they )-146(had )-146(used )-146(spin )-146(locks.)-650(In)]TJ T* [(fact, )-219(some )-219(mutex )-219(implementations )-219(will )-219(spin )-219(for )-219(a )-219(limited )-219(amount )-219(of )-219(time )-219(trying )-219(to)]TJ T* (acquir)Tj 0.4319 Tc 2.775 0 Td (et)Tj 0 Tc 1.237 0 Td [(he )-182(mutex, )-182(and )-182(only )-182(sleep )-182(when )-182(the )-182(spin )-182(count )-182(thr)19(eshold )-182(is )-182(r)18(eached. )-432(These)]TJ -4.012 -1.2 Td [(factors, )-265(combined )-265(with )-265(advances )-265(in )-265(modern )-265(pr)16(ocessors )-265(that )-265(allow )-265(them )-265(to )-265(context)]TJ T* [(switch at faster and faster rates, make spin locks useful only in limite\ d cir)18(cumstances.)]TJ 1.8 -1.2 Td [(The )-120(interfaces )-120(for )-120(spin )-120(locks )-120(ar)]TJ 0.3697 Tc 14.086 0 Td (es)Tj 0 Tc 1.273 0 Td [(imilar )-120(to )-120(those )-120(for )-120(mutexes, )-120(making )-120(it )-120(r)20(elatively)]TJ -17.158 -1.2 Td [(easy )-522(to )-522(r)18(eplace )-522(one )-522(with )-522(the )-522(other)]TJ 1.0219 Tc 17.915 0 Td (.W)Tj 0.7719 Tc 2.18 0 Td (ec)Tj 0 Tc 1.695 0 Td [(an )-522(initialize )-522(a )-522(spin )-522(lock )-522(with )-522(the)]TJ /TT1 1 Tf -21.79 -1.2 Td (pthread_spin_init)Tj /T1_0 1 Tf 11.036 0 Td [(function. )-836(T)]TJ 0.8357 Tc 5.564 0 Td (od)Tj 0 Tc 1.993 0 Td [(einitialize )-586(a )-586(spin )-586(lock, )-586(we )-586(can )-586(call )-586(the)]TJ /TT1 1 Tf -18.592 -1.2 Td (pthread_spin_destroy)Tj /T1_0 1 Tf 12.25 0 Td (function.)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.591 283.883 Tm (#include )Tj 0 -1.783 TD (int pthread_spin_init\(pthread_spinlock_t *)Tj /T1_2 1 Tf (lock)Tj /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 28.573 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td [(pshar)18(ed)]TJ /TT1 1 Tf (\);)Tj -30.373 -1.783 Td (int pthread_spin_destroy\(pthread_spinlock_t *)Tj /T1_2 1 Tf (lock)Tj /TT1 1 Tf (\);)Tj /T1_0 1 Tf 19.681 -1.783 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2312.25 cm 0 0 m 0 617 l 3900 617 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 217.7239 Tm [(Only )-298(one )-298(attribute )-298(is )-298(speci\336ed )-298(for )-298(spin )-298(locks, )-298(which )-298(matters )-298(only )-298(if )-298(the )-298(platform)]TJ 0 -1.2 TD [(supports )-222(the )-222(Thr)18(ead )-222(Pr)17(ocess-Shar)18(ed )-222(Synchr)18(onization )-222(option )-222(\(now )-222(mandatory )-222(in )-222(the)]TJ -0 -1.2 Td [(Single )-294(UNIX )-294(Speci\336cation; )-294(r)18(ecall )-294(Figur)]TJ 0.5444 Tc 18.164 0 Td (e2)Tj 0 Tc 1.523 0 Td [(.5\). )-544(The)]TJ /T1_2 1 Tf 4.346 0 Td [(pshar)18(ed)]TJ /T1_0 1 Tf 3.637 0 Td [(ar)18(gument )-294(r)18(epr)18(esents )-294(the)]TJ /T1_2 1 Tf -27.67 -1.2 Td [(pr)18(ocess-shar)18(ed)]TJ /T1_0 1 Tf 6.093 0 Td [(attribute, )-28(which )-28(indicates )-28(how )-28(the )-28(spin )-28(lock )-28(will )-28(be )-28(acquir)22(ed. )-278(If)-277(it )-28(is )-28(set )-28(to)]TJ /TT1 1 Tf -6.093 -1.2 Td (PTHREAD_PROCESS_SHARED)Tj /T1_0 1 Tf 0.3426 Tc (,t)Tj 0 Tc 14.119 0 Td [(hen )-93(the )-93(spin )-93(lock )-93(can )-93(be )-93(acquir)20(ed )-92(by )-92(thr)18(eads )-92(that )-92(have)]TJ -14.119 -1.2 Td [(access )-332(to )-332(the )-332(lock\325s )-332(underlying )-332(memory)]TJ 0.5822 Tc 19.001 0 Td (,e)Tj 0 Tc 1.311 0 Td [(ven )-332(if )-332(those )-332(thr)18(eads )-332(ar)]TJ 0.5823 Tc 11.112 0 Td (ef)Tj -0.018 Tc 1.394 0 Td (ro)Tj 0.5823 Tc 0.923 0 Td (md)Tj 0 Tc 2.076 0 Td [(if)18(fer)18(ent)]TJ -35.818 -1.2 Td [(pr)18(ocesses. )-262(Otherwise,)-263(the)]TJ /T1_2 1 Tf 11.718 0 Td [(pshar)18(ed)]TJ /T1_0 1 Tf 3.355 0 Td [(ar)18(gument )-12(is )-12(set )-12(to)]TJ /TT1 1 Tf 8.171 0 Td (PTHREAD_PROCESS_PRIVATE)Tj /T1_0 1 Tf 14.062 0 Td (and)Tj -37.307 -1.2 Td [(the spin lock can be accessed only fr)18(om thr)18(eads within the pr)18(ocess that initialized it.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46993 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.6 )]TJ 32.941 0 Td [(Thr)18(ead )-250(Synchr)18(onization)]TJ /T1_1 1 Tf 12.892 0 Td (413)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(In )-9(this )-9(example, )-9(we )-9(lock )-9(the )-9(queue\325s )-9(r)15(eader\320writer )-9(lock )-9(in )-9(write )-9(mode )-9(whenever )-9(we)]TJ -1.8 -1.2 Td [(need )-1(to )-1(add )-1(a )-1(job )-1(to )-1(the )-1(queue )-1(or )-1(r)18(emove )-1(a )-1(job )-1(fr)18(om )-1(the )-1(queue.)-501(Whenever )-1(we )-1(sear)18(ch )-1(the)]TJ 0 -1.2 TD [(queue, )-146(we )-146(grab )-146(the )-146(lock )-146(in )-146(r)18(ead )-146(mode, )-146(allowing )-146(all )-146(the )-146(worker )-146(thr)12(eads )-146(to )-146(sear)18(ch )-146(the)]TJ T* [(queue )-96(concurr)18(ently)]TJ 0.5958 Tc 8.584 0 Td (.U)Tj 0 Tc 1.624 0 Td [(sing )-96(a )-96(r)18(eader\320writer )-96(lock )-96(will )-96(impr)18(ove )-96(performance )-96(in )-96(this )-96(case)]TJ -10.208 -1.2 Td [(only if thr)18(eads sear)18(ch the queue much mor)]TJ 0.25 Tc 18.883 0 Td (ef)Tj -0.018 Tc 1.062 0 Td (re)Tj 0 Tc 0.856 0 Td [(quently than they add or r)18(emove jobs.)]TJ -19.001 -1.2 Td [(The )-106(worker )-106(thr)18(eads )-106(take )-106(only )-106(those )-106(jobs )-106(that )-106(match )-106(their )-106(thr)14(ead )-106(ID )-106(of)]TJ 0.3563 Tc 31.794 0 Td (ft)Tj 0 Tc 1.015 0 Td [(he )-106(queue.)]TJ -34.609 -1.2 Td [(Since )-25(the )-25(job )-25(str)7(uctur)18(es )-25(ar)]TJ 0.2753 Tc 11.412 0 Td (eu)Tj 0 Tc 1.357 0 Td [(sed )-25(only )-25(by )-25(one )-25(thr)17(ead )-25(at )-25(a )-25(time, )-25(they )-25(don\325t )-25(need )-25(any )-25(extra)]TJ -12.769 -1.2 Td (locking.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5850.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT0 1 Tf 11.9986 0 0 11.9986 129.5844 548.9341 Tm [(11.6.5 )-556(Reader\320Writer)-556(Loc)20(king )-278(with )-278(Timeouts)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5845 524.937 Tm [(Just )-414(as )-414(with )-414(mutexes, )-414(the )-414(Single )-414(UNIX )-414(Speci\336cation )-414(pr)18(ovides )-414(functions )-414(to )-414(lock)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(ader\320writer )-328(locks )-328(with )-328(a )-328(timeout )-328(to )-328(give )-328(applications )-328(a )-328(way )-328(to )-328(avoid )-328(blocking)]TJ -0.856 -1.2 Td [(inde\336nitely )-514(while )-514(trying )-514(to )-514(acquir)]TJ 0.7636 Tc 16.977 0 Td (ear)Tj 0 Tc 2.883 0 Td [(eader\320writer )-514(lock.)-1014(These )-514(functions )-514(ar)20(e)]TJ /TT1 1 Tf -19.861 -1.2 Td (pthread_rwlock_timedrdlock)Tj /T1_0 1 Tf 15.85 0 Td (and)Tj /TT1 1 Tf 1.943 0 Td (pthread_rwlock_timedwrlock)Tj /T1_0 1 Tf (.)Tj /TT1 1 Tf 8.9989 0 0 8.9989 140.3834 469.8436 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD (int pthread_rwlock_timedrdlock\(pthread_rwlock_t *restrict)Tj /T1_2 1 Tf 34.8 0 Td (rwlock)Tj /TT1 1 Tf (,)Tj -16.2 -1.189 Td (const struct timespec *restrict)Tj /T1_2 1 Tf 19.2 0 Td (tsptr)Tj /TT1 1 Tf (\);)Tj -37.8 -2.14 Td (int pthread_rwlock_timedwrlock\(pthread_rwlock_t *restrict)Tj /T1_2 1 Tf 34.8 0 Td (rwlock)Tj /TT1 1 Tf (,)Tj -16.2 -1.189 Td (const struct timespec *restrict)Tj /T1_2 1 Tf 19.2 0 Td (tsptr)Tj /TT1 1 Tf (\);)Tj /T1_0 1 Tf -16.519 -2.14 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3755.25 cm 0 0 m 0 1034 l 3900 1034 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 147.5734 359.5553 Tm [(These )-282(functions )-282(behave )-282(like )-282(their )-282(\324)38(\324untimed\325)]TJ 0.5318 Tc 20.75 0 Td (\325c)Tj 0 Tc 1.254 0 Td [(ounterparts. )-532(The)]TJ /T1_2 1 Tf 8.414 0 Td (tsptr)Tj /T1_0 1 Tf 2.476 0 Td [(ar)18(gument)]TJ -34.694 -1.2 Td [(points )-165(to )-165(a)]TJ /TT1 1 Tf 5.386 0 Td (timespec)Tj /T1_0 1 Tf 5.215 0 Td [(str)8(uctur)]TJ 0.4147 Tc 3.49 0 Td (es)Tj 0 Tc 1.318 0 Td [(pecifying )-165(the )-165(time )-165(at )-165(which )-165(the )-165(thr)18(ead )-165(should )-165(stop)]TJ -15.408 -1.2 Td [(blocking. )-421(If)-420(they )-171(can\325t )-171(acquir)]TJ 0.4207 Tc 13.52 0 Td (et)Tj 0 Tc 1.226 0 Td [(he )-171(lock, )-171(these )-171(functions )-171(r)19(eturn )-171(the)]TJ /TT1 1 Tf 16.242 0 Td (ETIMEDOUT)Tj /T1_0 1 Tf 5.821 0 Td [(err)18(or)]TJ -36.808 -1.2 Td [(when )-443(the )-443(timeout )-443(expir)17(es. )-693(Like)-694(the)]TJ /TT1 1 Tf 18.469 0 Td (pthread_mutex_timedlock)Tj /T1_0 1 Tf 14.493 0 Td [(function, )-443(the)]TJ -32.963 -1.2 Td [(timeout speci\336es an absolute time, not a r)18(elative one.)]TJ /TT0 1 Tf 11.9978 0 0 11.9978 129.576 275.5704 Tm [(11.6.6 )-556(Condition)]TJ -0.06 Tc 8.836 0 Td (Va)Tj 0 Tc 1.163 0 Td [(riab)10(les)]TJ /T1_0 1 Tf 9.9982 0 0 9.9982 129.5759 251.5747 Tm [(Condition )-10(variables )-10(ar)]TJ 0.2597 Tc 9.878 0 Td (ea)Tj 0 Tc 1.239 0 Td [(nother )-10(synchr)18(onization )-10(mechanism )-10(available )-10(to )-10(thr)20(eads. )-260(These)]TJ -11.117 -1.2 Td [(synchr)18(onization )-175(objects )-175(pr)18(ovide )-175(a )-175(place )-175(for )-175(thr)18(eads )-175(to )-175(r)17(endezvous. )-425(When)-425(used )-175(with)]TJ 0 -1.2 TD [(mutexes, )-248(condition )-248(variables )-248(allow )-248(thr)18(eads )-248(to )-248(wait )-248(in )-248(a )-248(race-fr)21(ee )-248(way )-248(for )-248(arbitrary)]TJ T* [(conditions to occur)74(.)]TJ 1.8 -1.2 Td [(The )-70(condition )-70(itself )-70(is )-70(pr)18(otected )-70(by )-70(a )-70(mutex.)]TJ 0.3201 Tc 20.417 0 Td (At)Tj 0 Tc 1.424 0 Td [(hr)18(ead )-70(must )-70(\336rst )-70(lock )-70(the )-70(mutex )-70(to)]TJ -23.642 -1.2 Td [(change )-72(the )-72(condition )-72(state.)-572(Other )-72(thr)20(eads )-71(will )-71(not )-71(notice )-71(the )-71(change )-71(until )-71(they )-71(acquir)14(e)]TJ T* (the mutex, because the mutex must be locked to be able to evaluate the c\ ondition.)Tj 1.8 -1.2 Td (Befor)Tj 0.2762 Tc 2.346 0 Td (eac)Tj 0 Tc 1.975 0 Td [(ondition )-26(variable )-26(is )-26(used, )-26(it )-26(must )-26(\336rst )-26(be )-26(initialized.)]TJ 0.2763 Tc 23.505 0 Td (Ac)Tj 0 Tc 1.498 0 Td [(ondition )-26(variable,)]TJ -0.018 Tc -31.125 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(pr)18(esented )-13(by )-13(the)]TJ /TT1 1 Tf 7.644 0 Td (pthread_cond_t)Tj /T1_0 1 Tf 8.663 0 Td [(data )-13(type, )-13(can )-13(be )-13(initialized )-13(in )-13(two )-13(ways.)]TJ -0.092 Tc 18.66 0 Td [(We )-197(c)]TJ 0 Tc 2.094 0 Td (an)Tj -37.918 -1.2 Td [(assign )-147(the )-147(constant)]TJ /TT1 1 Tf 9.086 0 Td (PTHREAD_COND_INITIALIZER)Tj /T1_0 1 Tf 14.797 0 Td [(to )-147(a )-147(statically )-147(allocated )-147(condition)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46994 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.6 )]TJ 32.941 0 Td [(Thr)18(ead )-250(Synchr)18(onization)]TJ /T1_1 1 Tf 12.892 0 Td (409)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(Mac )-122(OS )-122(X )-122(10.6.8 )-122(doesn\325t )-122(support)]TJ /TT0 1 Tf 15.342 0 Td (pthread_mutex_timedlock)Tj /T1_0 1 Tf 14.172 0 Td [(yet, )-122(but )-122(Fr)18(eeBSD )-122(8.0, )-122(Linux)]TJ -29.514 -1.25 Td [(3.2.0, )-182(and )-182(Solaris )-182(10 )-182(do )-182(support )-182(it, )-182(although )-182(Solaris )-182(still )-182(bundles )-182(it )-182(in )-182(the )-182(r)13(eal-time )-182(library)111(,)]TJ /TT0 1 Tf -0 -1.25 Td (librt)Tj /T1_0 1 Tf 0.5 Tc (.S)Tj 0 Tc 4.275 0 Td [(olaris 10 also pr)18(ovides an alternative function that uses a r)18(elative timeout.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 129.592 618.9629 Tm [(11.6.4 )-556(Reader\320Writer)-556(Loc)20(ks)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.592 594.9643 Tm [(Reader\320writer )-34(locks )-34(ar)]TJ 0.2844 Tc 10.059 0 Td (es)Tj 0 Tc 1.187 0 Td [(imilar )-34(to )-34(mutexes, )-34(except )-34(that )-34(they )-34(allow )-34(for )-34(higher )-34(degr)18(ees )-34(of)]TJ -11.246 -1.2 Td [(parallelism. )-340(W)55(ith )-90(a )-90(mutex, )-90(the )-90(state )-90(is )-90(either )-90(locked )-90(or )-90(unlocked, )-90(and )-90(only )-90(one )-90(thr)14(ead)]TJ -0 -1.2 Td [(can )-49(lock )-49(it )-49(at )-49(a )-49(time.)-552(Thr)18(ee )-50(states )-50(ar)]TJ 0.2996 Tc 16.067 0 Td (ep)Tj 0 Tc 1.38 0 Td [(ossible )-50(with )-50(a )-50(r)18(eader\320writer )-50(lock: )-50(locked )-50(in )-50(r)21(ead)]TJ -17.447 -1.2 Td [(mode, )-215(locked )-215(in )-215(write )-215(mode, )-215(and )-215(unlocked.)-715(Only )-215(one )-215(thr)18(ead )-215(at )-215(a )-215(time )-215(can )-215(hold )-215(a)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(ader\320writer )-39(lock )-39(in )-39(write )-39(mode, )-39(but )-39(multiple )-39(thr)18(eads )-39(can )-39(hold )-39(a )-39(r)18(eader\320writer )-39(lock )-39(in)]TJ -0.018 Tc -0.856 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (ad mode at the same time.)Tj 0.944 -1.2 Td [(When )-133(a )-133(r)18(eader\320writer )-133(lock )-133(is )-133(write )-133(locked, )-133(all )-133(thr)18(eads )-133(attempting )-133(to )-133(lock )-133(it )-133(block)]TJ -1.8 -1.2 Td [(until )-31(it )-31(is )-31(unlocked.)-531(When )-31(a )-31(r)18(eader\320writer )-31(lock )-31(is )-31(r)14(ead )-31(locked, )-31(all )-31(thr)18(eads )-31(attempting )-31(to)]TJ T* [(lock )-161(it )-161(in )-161(r)18(ead )-161(mode )-161(ar)]TJ 0.4113 Tc 10.746 0 Td (eg)Tj 0 Tc 1.446 0 Td [(iven )-161(access, )-161(but )-161(any )-161(thr)17(eads )-161(attempting )-161(to )-161(lock )-161(it )-161(in )-161(write)]TJ -12.193 -1.2 Td [(mode )-604(block )-604(until )-604(all )-604(the )-604(thr)16(eads )-604(have )-604(r)18(eleased )-604(their )-604(r)18(ead )-604(locks.)-1107(Although)]TJ T* [(implementations )-104(vary)]TJ 0.3538 Tc 9.743 0 Td (,r)Tj 0 Tc 0.981 0 Td [(eader\320writer )-104(locks )-104(usually )-104(block )-104(additional )-104(r)18(eaders )-104(if )-104(a )-104(lock )-104(is)]TJ -10.724 -1.2 Td [(alr)18(eady )-115(held )-115(in )-115(r)18(ead )-115(mode )-115(and )-115(a )-115(thr)18(ead )-115(is )-115(blocked )-115(trying )-115(to )-115(acquir)]TJ 0.3655 Tc 30.637 0 Td (et)Tj 0 Tc 1.171 0 Td [(he )-115(lock )-115(in )-115(write)]TJ -31.807 -1.2 Td [(mode. )-250(This)-250(pr)18(events a constant str)18(eam of r)18(eaders fr)18(om starving waiting writers.)]TJ 1.8 -1.2 Td [(Reader\320writer )-63(locks )-63(ar)]TJ 0.313 Tc 10.116 0 Td (ew)Tj 0 Tc 1.626 0 Td [(ell )-63(suited )-63(for )-63(situations )-63(in )-63(which )-63(data )-63(str)8(uctur)18(es )-63(ar)]TJ 0.313 Tc 22.699 0 Td (er)Tj 0 Tc 1.169 0 Td (ead)Tj -37.41 -1.2 Td (mor)Tj 0.3534 Tc 1.806 0 Td (eo)Tj 0 Tc 1.378 0 Td [(ften )-103(than )-103(they )-103(ar)]TJ 0.3534 Tc 7.59 0 Td (em)Tj 0 Tc 1.715 0 Td [(odi\336ed. )-353(When)]TJ 0.3534 Tc 6.993 0 Td (ar)Tj 0 Tc 1.23 0 Td [(eader\320writer )-103(lock )-103(is )-103(held )-103(in )-103(write )-103(mode,)]TJ -20.713 -1.2 Td [(the )-47(data )-47(str)8(uctur)18(e)-297(it)-297(p)]TJ -0.018 Tc (ro)Tj 0 Tc 10.622 0 Td [(tects )-47(can )-47(be )-47(modi\336ed )-47(safely)]TJ 0.2971 Tc 12.243 0 Td (,s)Tj 0 Tc 0.971 0 Td [(ince )-47(only )-47(one )-47(thr)18(ead )-47(at )-47(a )-47(time )-47(can)]TJ -23.837 -1.2 Td [(hold )-145(the )-145(lock )-145(in )-145(write )-145(mode.)-645(When )-145(the )-145(r)17(eader\320writer )-145(lock )-145(is )-145(held )-145(in )-145(r)18(ead )-145(mode, )-145(the)]TJ T* [(data )-133(str)8(uctur)18(e)-383(it)-383(p)]TJ -0.018 Tc (ro)Tj 0 Tc 9.197 0 Td [(tects )-133(can )-133(be )-133(r)17(ead )-133(by )-133(multiple )-133(thr)18(eads, )-133(as )-133(long )-133(as )-133(the )-133(thr)18(eads )-133(\336rst)]TJ -9.197 -1.2 Td (acquir)Tj 0.25 Tc 2.775 0 Td (et)Tj 0 Tc 1.055 0 Td [(he lock in r)18(ead mode.)]TJ -2.03 -1.2 Td [(Reader\320writer )-119(locks )-119(ar)]TJ 0.3693 Tc 10.229 0 Td (ea)Tj 0 Tc 1.348 0 Td [(lso )-119(called )-119(shar)18(ed\320exclusive )-119(locks.)-620(When )-119(a )-119(r)17(eader\320writer)]TJ -13.377 -1.2 Td [(lock )-47(is )-47(r)18(ead )-47(locked, )-47(it )-47(is )-47(said )-47(to )-47(be )-47(locked )-47(in )-47(shar)18(ed )-47(mode.)-547(When )-47(it )-47(is )-47(write )-47(locked, )-47(it )-47(is)]TJ T* (said to be locked in exclusive mode.)Tj 1.8 -1.2 Td [(As )-76(with )-76(mutexes, )-76(r)18(eader\320writer )-76(locks )-76(must )-76(be )-76(initialized )-76(befor)]TJ 0.3261 Tc 28.135 0 Td (eu)Tj 0 Tc 1.408 0 Td [(se )-76(and )-76(destr)18(oyed)]TJ -31.343 -1.2 Td (befor)Tj 0.25 Tc 2.288 0 Td (ef)Tj -0.018 Tc 1.062 0 Td (re)Tj 0 Tc 0.856 0 Td [(eing their underlying memory)111(.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5906 302.2819 Tm (#include )Tj 0 -1.783 TD (int pthread_rwlock_init\(pthread_rwlock_t *restrict)Tj /T1_2 1 Tf 30.6 0 Td (rwlock)Tj /TT0 1 Tf (,)Tj -16.2 -1.189 Td (const pthread_rwlockattr_t *restrict)Tj /T1_2 1 Tf 22.2 0 Td (attr)Tj /TT0 1 Tf (\);)Tj -36.6 -1.783 Td (int pthread_rwlock_destroy\(pthread_rwlock_t *)Tj /T1_2 1 Tf (rwlock)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 19.681 -1.783 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2389.25 cm 0 0 m 0 724 l 3900 724 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 0.3482 Tc 9.9988 0 0 9.9988 129.5844 225.4229 Tm (Ar)Tj 0 Tc 1.503 0 Td [(eader\320writer )-98(lock )-98(is )-98(initialized )-98(by )-98(calling)]TJ /TT0 1 Tf 18.842 0 Td (pthread_rwlock_init)Tj /T1_0 1 Tf 0.5982 Tc (.W)Tj 0.3482 Tc 13.156 0 Td (ec)Tj 0 Tc 1.271 0 Td [(an )-98(pass )-98(a)]TJ -34.773 -1.2 Td [(null )-26(pointer )-26(for)]TJ /T1_2 1 Tf 7.088 0 Td (attr)Tj /T1_0 1 Tf 1.775 0 Td [(if )-26(we )-26(want )-26(the )-26(r)18(eader\320writer )-26(lock )-26(to )-26(have )-26(the )-26(default )-26(attributes.)]TJ -0.092 Tc 28.75 0 Td (We)Tj 0 Tc -37.613 -1.2 Td [(discuss r)18(eader\320writer lock attributes in Section 12.4.2.)]TJ 1.8 -1.2 Td [(The )-481(Single )-481(UNIX )-481(Speci\336cation )-481(de\336nes )-481(the)]TJ /TT0 1 Tf 21.6 0 Td (PTHREAD_RWLOCK_INITIALIZER)Tj /T1_0 1 Tf -23.4 -1.2 Td [(constant )-3(in )-3(the )-3(XSI )-3(option.)-502(It )-3(can )-3(be )-3(used )-3(to )-3(initialize )-3(a )-3(statically )-3(allocated )-3(r)20(eader\320writer)]TJ 0 -1.2 TD (lock when the default attributes ar)Tj 0.25 Tc 15.194 0 Td (es)Tj 0 Tc 1.153 0 Td [(uf)18(\336cient.)]TJ -14.547 -1.2 Td (Befor)Tj 0.7416 Tc 2.346 0 Td (ef)Tj -0.018 Tc 1.554 0 Td (re)Tj 0 Tc 0.856 0 Td [(eing )-492(the )-492(memory )-492(backing )-492(a )-492(r)20(eader\320writer )-491(lock, )-491(we )-491(need )-491(to )-491(call)]TJ /TT0 1 Tf -6.556 -1.2 Td (pthread_rwlock_destroy)Tj /T1_0 1 Tf 13.527 0 Td [(to )-77(clean )-77(it )-77(up.)-577(If)]TJ /TT0 1 Tf 7.794 0 Td (pthread_rwlock_init)Tj /T1_0 1 Tf 11.727 0 Td [(allocated )-77(any)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46995 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.6 )]TJ 32.941 0 Td [(Thr)18(ead )-250(Synchr)18(onization)]TJ /T1_1 1 Tf 12.892 0 Td (407)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 215.987 670.2598 Tm (tfp = tfp->f_next;)Tj -2.4 -1.189 Td (tfp->f_next = fp->f_next;)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (pthread_mutex_unlock\(&hashlock\);)Tj T* (pthread_mutex_destroy\(&fp->f_lock\);)Tj 0 -1.189 TD (free\(fp\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (pthread_mutex_unlock\(&hashlock\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5692.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 267.1959 553.1326 Tm [(Figure 1)37(1.12)]TJ /T1_0 1 Tf 6.25 0 Td (Simpli\336ed locking)Tj 9.9988 0 0 9.9988 147.5823 529.1355 Tm [(Note )-26(how )-26(much )-26(simpler )-26(the )-26(pr)18(ogram )-26(in )-26(Figur)]TJ 0.2756 Tc 20.45 0 Td (e1)Tj 0 Tc 1.2 0 Td [(1.12 )-26(is )-26(compar)18(ed )-26(to )-26(the )-26(pr)18(ogram )-26(in)]TJ -23.45 -1.2 Td (Figur)Tj 0.2655 Tc 2.383 0 Td (e1)Tj 0 Tc 1.189 0 Td [(1.1)55(1. )-265(The)-266(lock-or)18(dering )-15(issues )-15(surr)18(ounding )-15(the )-15(hash )-15(list )-15(and )-15(the )-15(r)15(efer)18(ence )-15(count)]TJ -3.572 -1.2 Td [(go )-32(away )-32(when )-32(we )-32(use )-32(the )-32(same )-32(lock )-32(for )-32(both )-32(purposes.)-530(Multithr)18(eaded )-32(softwar)]TJ 0.2819 Tc 35.296 0 Td (ed)Tj 0 Tc 1.372 0 Td (esign)Tj -36.668 -1.2 Td [(involves )-47(these )-47(types )-47(of )-47(trade-of)18(fs. )-297(If)-297(your )-47(locking )-47(granularity )-47(is )-47(too )-47(coarse, )-47(you )-47(end )-47(up)]TJ -0 -1.2 Td [(with )-348(too )-348(many )-348(thr)18(eads )-348(blocking )-348(behind )-348(the )-348(same )-348(locks, )-348(with )-348(little )-348(impr)17(ovement)]TJ 0 -1.2 TD [(possible )-92(fr)18(om )-92(concurr)18(ency)]TJ 0.5919 Tc 11.773 0 Td (.I)Tj 0.3419 Tc 1.179 0 Td (fy)Tj 0 Tc 1.231 0 Td [(our )-92(locking )-92(granularity )-92(is )-92(too )-92(\336ne, )-92(then )-92(you )-92(suf)18(fer )-92(bad)]TJ -14.183 -1.2 Td [(performance )-93(fr)18(om )-93(excess )-93(locking )-93(over)18(head, )-93(and )-93(you )-93(end )-93(up )-93(with )-93(complex )-93(code.)-588(As )-93(a)]TJ T* [(pr)18(ogrammer)]TJ 0.5908 Tc 5.541 0 Td (,y)Tj 0 Tc 1.397 0 Td [(ou )-341(need )-341(to )-341(\336nd )-341(the )-341(corr)18(ect )-341(balance )-341(between )-341(code )-341(complexity )-341(and)]TJ -6.938 -1.2 Td [(performance, while still satisfying your locking r)18(equir)18(ements.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4332.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9978 0 0 11.9978 129.5767 398.3273 Tm (11.6.3)Tj /TT2 1 Tf 3.614 0 Td (pthread_mutex_timedlock)Tj /TT1 1 Tf 14.356 0 Td (Function)Tj /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 376.7316 Tm [(One )-52(additional )-52(mutex )-52(primitive )-52(allows )-52(us )-52(to )-52(bound )-52(the )-52(time )-52(that )-52(a )-52(thr)17(ead )-52(blocks )-52(when)]TJ 0.418 Tc T* (am)Tj 0 Tc 1.801 0 Td [(utex )-168(it )-168(is )-168(trying )-168(to )-168(acquir)18(e)-418(is)-418(alr)18(eady )-168(locked.)-668(The)]TJ /TT0 1 Tf 23.399 0 Td (pthread_mutex_timedlock)Tj /T1_0 1 Tf -25.2 -1.2 Td [(function )-128(is )-128(equivalent )-128(to)]TJ /TT0 1 Tf 11.482 0 Td (pthread_mutex_lock)Tj /T1_0 1 Tf 0.378 Tc (,b)Tj 0 Tc 11.981 0 Td [(ut )-128(if )-128(the )-128(timeout )-128(value )-128(is )-128(r)18(eached,)]TJ /TT0 1 Tf -23.463 -1.2 Td (pthread_mutex_timedlock)Tj /T1_0 1 Tf 14.162 0 Td [(will )-112(r)18(eturn )-112(the )-112(err)17(or )-112(code)]TJ /TT0 1 Tf 11.939 0 Td (ETIMEDOUT)Tj /T1_0 1 Tf 5.762 0 Td [(without )-112(locking)]TJ -31.864 -1.2 Td (the mutex.)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.574 312.0432 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD (int pthread_mutex_timedlock\(pthread_mutex_t *restrict)Tj /T1_2 1 Tf 32.4 0 Td (mutex)Tj /TT0 1 Tf (,)Tj -15.6 -1.189 Td (const struct timespec *restrict)Tj /T1_2 1 Tf 19.2 0 Td (tsptr)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -14.719 -1.902 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2519.25 cm 0 0 m 0 692 l 3900 692 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9976 0 0 9.9976 147.5646 238.4018 Tm [(The )-53(timeout )-53(speci\336es )-53(how )-53(long )-53(we )-53(ar)]TJ 0.3029 Tc 16.819 0 Td (ew)Tj 0 Tc 1.616 0 Td [(illing )-53(to )-53(wait )-53(in )-53(terms )-53(of )-53(absolute )-53(time )-53(\(as)]TJ -20.235 -1.2 Td [(opposed )-44(to )-44(r)17(elative )-44(time; )-44(we )-44(specify )-44(that )-44(we )-44(ar)]TJ 0.2944 Tc 20.937 0 Td (ew)Tj 0 Tc 1.607 0 Td [(illing )-44(to )-44(block )-44(until )-44(time )-44(X )-44(instead )-44(of)]TJ -22.544 -1.2 Td [(saying )-114(that )-114(we )-114(ar)]TJ 0.3636 Tc 7.924 0 Td (ew)Tj 0 Tc 1.677 0 Td [(illing )-113(to )-113(block )-113(for )-113(Y )-113(seconds\).)-613(The )-113(timeout )-113(is )-113(r)14(epr)18(esented )-113(by )-113(the)]TJ /TT0 1 Tf -9.6 -1.2 Td (timespec)Tj /T1_0 1 Tf 5.05 0 Td [(str)8(uctur)18(e, which describes time in terms of seconds and nanoseconds.)]TJ /TT1 1 Tf -8.65 -2.76 Td (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(In )-180(Figur)]TJ 0.4304 Tc 3.732 0 Td (e1)Tj 0 Tc 1.354 0 Td [(1.13, )-180(we )-180(see )-180(how )-180(to )-180(use)]TJ /TT0 1 Tf 11.618 0 Td (pthread_mutex_timedlock)Tj /T1_0 1 Tf 14.23 0 Td [(to )-180(avoid )-180(blocking)]TJ -30.935 -1.2 Td [(inde\336nitely)111(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46996 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (402)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 0 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(necessary )-265(when )-265(we )-265(initialize )-265(the )-265(r)19(efer)18(ence )-265(count )-265(to )-265(1 )-265(in )-265(the)]TJ /TT0 1 Tf 29.128 0 Td (foo_alloc)Tj /T1_1 1 Tf 5.915 0 Td (function,)Tj -35.043 -1.2 Td [(because )-102(the )-102(allocating )-102(thr)18(ead )-102(is )-102(the )-102(only )-102(r)18(efer)18(ence )-102(to )-102(it )-102(so )-102(far)]TJ 0.602 Tc 27.662 0 Td (.I)Tj 0 Tc 1.189 0 Td [(f)-352(we)-352(wer)18(e)-352(to)-352(place )-102(the)]TJ -28.851 -1.2 Td [(str)8(uctur)18(e)-279(on)-279(a)-279(l)-1(ist )-29(at )-29(this )-29(point, )-29(it )-29(could )-29(be )-29(found )-29(by )-29(other )-29(thr)14(eads, )-29(so )-29(we )-29(would )-29(need )-29(to)]TJ 0 -1.2 Td (lock it \336rst.)Tj 1.8 -1.2 Td (Befor)Tj 0.4596 Tc 2.346 0 Td (eu)Tj 0 Tc 1.542 0 Td [(sing )-210(the )-210(object, )-210(thr)18(eads )-210(ar)]TJ 0.4596 Tc 12.086 0 Td (ee)Tj 0 Tc 1.418 0 Td [(xpected )-210(to )-210(add )-210(a )-210(r)20(efer)18(ence )-209(to )-209(it )-209(by )-209(calling)]TJ /TT0 1 Tf -19.192 -1.2 Td (foo_hold)Tj /T1_1 1 Tf 0.6848 Tc (.W)Tj 0 Tc 6.735 0 Td [(hen )-185(they )-185(ar)]TJ 0.4348 Tc 5.333 0 Td (ed)Tj 0 Tc 1.525 0 Td [(one, )-185(they )-185(must )-185(call)]TJ /TT0 1 Tf 9.301 0 Td (foo_rele)Tj /T1_1 1 Tf 5.235 0 Td [(to )-185(r)18(elease )-185(the )-185(r)18(efer)18(ence.)]TJ -28.128 -1.2 Td [(When the last r)18(efer)18(ence is r)18(eleased, the object\325s memory is fr)18(eed.)]TJ 1.8 -1.2 Td [(In )-361(this )-361(example, )-361(we )-361(have )-361(ignor)18(ed )-361(how )-361(thr)18(eads )-361(\336nd )-361(an )-361(object )-361(befor)]TJ 0.611 Tc 33.155 0 Td (ec)Tj 0 Tc 1.534 0 Td (alling)Tj /TT0 1 Tf -36.489 -1.2 Td (foo_hold)Tj /T1_1 1 Tf 0.8436 Tc (.E)Tj 0 Tc 6.505 0 Td [(ven )-344(though )-344(the )-344(r)19(efer)18(ence )-344(count )-344(is )-344(zer)18(o, )-344(it )-344(would )-344(be )-344(a )-344(mistake )-344(for)]TJ /TT0 1 Tf -6.505 -1.2 Td (foo_rele)Tj /T1_1 1 Tf 5.163 0 Td [(to )-113(fr)18(ee )-113(the )-113(object\325s )-113(memory )-113(if )-113(another )-113(thr)18(ead )-113(is )-113(blocked )-113(on )-113(the )-113(mutex )-113(in )-113(a)]TJ -5.163 -1.2 Td [(call )-14(to)]TJ /TT0 1 Tf 2.926 0 Td (foo_hold)Tj /T1_1 1 Tf 0.5141 Tc (.W)Tj 0.2641 Tc 6.472 0 Td (ec)Tj 0 Tc 1.187 0 Td [(an )-14(avoid )-14(this )-14(pr)18(oblem )-14(by )-14(ensuring )-14(that )-14(the )-14(object )-14(can\325t )-14(be )-14(found)]TJ -10.585 -1.2 Td (befor)Tj 0.25 Tc 2.288 0 Td (ef)Tj -0.018 Tc 1.062 0 Td (re)Tj 0 Tc 0.856 0 Td (eing its memory)Tj 0.5 Tc 7.08 0 Td (.W)Tj 0 Tc 1.658 0 Td [(e\325ll see how to do this in the examples that follow)92(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5370.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9986 0 0 11.9986 129.5844 504.5394 Tm [(11.6.2 )-556(Deadloc)]TJ 0.556 Tc 7.484 0 Td (kA)Tj -0.03 Tc 1.794 0 Td (vo)Tj 0 Tc 1.137 0 Td (idance)Tj /T1_1 1 Tf 0.3405 Tc 9.9988 0 0 9.9988 129.5844 484.1419 Tm (At)Tj 0 Tc 1.444 0 Td [(hr)18(ead )-91(will )-91(deadlock )-91(itself )-91(if )-91(it )-91(tries )-91(to )-91(lock )-91(the )-91(same )-91(mutex )-91(twice, )-91(but )-91(ther)]TJ 0.3406 Tc 33.421 0 Td (ea)Tj -0.018 Tc 1.32 0 Td [(re )-127(l)]TJ 0 Tc 1.488 0 Td (ess)Tj -37.673 -1.2 Td [(obvious )-51(ways )-51(to )-51(cr)18(eate )-51(deadlocks )-51(with )-51(mutexes.)-551(For )-51(example, )-51(when )-51(we )-51(use )-51(mor)]TJ 0.3006 Tc 36.23 0 Td (et)Tj 0 Tc 1.106 0 Td (han)Tj -37.336 -1.2 Td [(one )-179(mutex )-179(in )-179(our )-179(pr)18(ograms, )-179(a )-179(deadlock )-179(can )-179(occur )-179(if )-179(we )-179(allow )-179(one )-179(thr)23(ead )-179(to )-179(hold )-179(a)]TJ 0 -1.2 TD [(mutex )-163(and )-163(block )-163(while )-163(trying )-163(to )-163(lock )-163(a )-163(second )-163(mutex )-163(at )-163(the )-163(same )-163(time )-163(that )-163(another)]TJ T* [(thr)18(ead )-253(holding )-253(the )-253(second )-253(mutex )-253(tries )-253(to )-253(lock )-253(the )-253(\336rst )-253(mutex.)-749(Neither )-253(thr)18(ead )-253(can)]TJ T* [(pr)18(oceed, )-20(because )-20(each )-20(needs )-20(a )-20(r)20(esour)18(ce )-20(that )-20(is )-20(held )-20(by )-20(the )-20(other)76(,)-269(so)-269(we)-269(h)-1(ave )-19(a )-19(deadlock.)]TJ 1.8 -1.2 Td [(Deadlocks )-94(can )-94(be )-94(avoided )-94(by )-94(car)18(efully )-94(contr)18(olling )-94(the )-94(or)16(der )-94(in )-94(which )-94(mutexes )-94(ar)16(e)]TJ -1.8 -1.2 Td [(locked. )-383(For)-382(example, )-133(assume )-133(that )-133(you )-133(have )-133(two )-133(mutexes, )-133(A )-133(and )-133(B, )-133(that )-133(you )-133(need )-133(to)]TJ T* [(lock )-63(at )-63(the )-63(same )-63(time.)-562(If )-63(all )-63(thr)18(eads )-63(always )-63(lock )-63(mutex )-63(A )-63(befor)]TJ 0.3129 Tc 28.435 0 Td (em)Tj 0 Tc 1.675 0 Td [(utex )-63(B, )-63(no )-63(deadlock)]TJ -30.11 -1.2 Td [(can )-294(occur )-294(fr)17(om )-294(the )-294(use )-294(of )-294(the )-294(two )-294(mutexes )-294(\(but )-294(you )-294(can )-294(still )-294(deadlock )-294(on )-294(other)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(sour)18(ces\). )-363(Similarly)111(,)-363(if)-363(all )-113(thr)18(eads )-113(always )-113(lock )-113(mutex )-113(B )-113(befor)]TJ 0.363 Tc 27.212 0 Td (em)Tj 0 Tc 1.725 0 Td [(utex )-113(A, )-113(no )-113(deadlock)]TJ -29.793 -1.2 Td [(will )-101(occur)]TJ 0.601 Tc 4.416 0 Td (.Y)Tj 0 Tc 1.426 0 Td [(ou\325ll )-101(have )-101(the )-101(potential )-101(for )-101(a )-101(deadlock )-101(only )-101(when )-101(one )-101(thr)18(ead )-101(attempts )-101(to)]TJ -5.842 -1.2 Td [(lock the mutexes in the opposite or)18(der fr)18(om another thr)18(ead.)]TJ 1.8 -1.2 Td [(Sometimes, )-53(an )-53(application\325s )-53(ar)17(chitectur)]TJ 0.3035 Tc 17.502 0 Td (em)Tj 0 Tc 1.666 0 Td [(akes )-53(it )-53(dif)17(\336cult )-54(to )-54(apply )-54(a )-54(lock )-54(or)20(dering.)]TJ -20.968 -1.2 Td [(If )-85(enough )-85(locks )-85(and )-85(data )-85(str)7(uctur)18(es )-85(ar)]TJ 0.3353 Tc 17.191 0 Td (ei)Tj 0 Tc 1.105 0 Td [(nvolved )-85(that )-85(the )-85(functions )-85(you )-85(have )-85(available)]TJ -18.296 -1.2 Td [(can\325t )-79(be )-79(molded )-79(to )-79(\336t )-79(a )-79(simple )-79(hierar)21(chy)]TJ 0.3287 Tc 18.25 0 Td (,t)Tj 0 Tc 0.905 0 Td [(hen )-79(you\325ll )-79(have )-79(to )-79(try )-79(some )-79(other )-79(appr)20(oach.)]TJ -19.155 -1.2 Td [(In )-82(this )-82(case, )-82(you )-82(might )-82(be )-82(able )-82(to )-82(r)15(elease )-82(your )-82(locks )-82(and )-82(try )-82(again )-82(at )-82(a )-82(later )-82(time.)]TJ -0.092 Tc 37.276 0 Td (Yo)Tj 0 Tc 1.121 0 Td (u)Tj -38.397 -1.2 Td [(can )-94(use )-94(the)]TJ /TT0 1 Tf 5.452 0 Td (pthread_mutex_trylock)Tj /T1_1 1 Tf 12.944 0 Td [(interface )-94(to )-94(avoid )-94(deadlocking )-94(in )-94(this )-94(case.)-596(If)]TJ -18.396 -1.2 Td [(you )-100(ar)]TJ 0.3504 Tc 2.932 0 Td (ea)Tj 0 Tc 1.329 0 Td [(lr)18(eady )-100(holding )-100(locks )-100(and)]TJ /TT0 1 Tf 11.629 0 Td (pthread_mutex_trylock)Tj /T1_1 1 Tf 12.95 0 Td [(is )-100(successful, )-100(then )-100(you)]TJ -28.841 -1.2 Td [(can )-37(pr)18(oceed. )-287(If)-287(it )-37(can\325t )-37(acquir)]TJ 0.2873 Tc 13.191 0 Td (et)Tj 0 Tc 1.092 0 Td [(he )-37(lock, )-37(however)]TJ 0.2873 Tc 7.529 0 Td (,y)Tj 0 Tc 1.093 0 Td [(ou )-37(can )-37(r)18(elease )-37(the )-37(locks )-37(you )-37(alr)16(eady)]TJ -22.905 -1.2 Td [(hold, clean up, and try again later)74(.)]TJ /TT1 1 Tf -3.6 -2.52 Td (Example)Tj /T1_1 1 Tf 3.6 -2.04 Td [(In )-158(this )-158(example, )-158(we )-158(update )-158(Figur)]TJ 0.4082 Tc 15.398 0 Td (e1)Tj 0 Tc 1.332 0 Td [(1.10 )-158(to )-158(show )-158(the )-158(use )-158(of )-158(two )-158(mutexes.)]TJ -0.092 Tc 17.962 0 Td [(We )-342(a)]TJ 0 Tc 2.295 0 Td (void)Tj -36.987 -1.2 Td [(deadlocks )-34(by )-34(ensuring )-34(that )-34(when )-34(we )-34(need )-34(to )-34(acquir)]TJ 0.2839 Tc 23.076 0 Td (et)Tj 0 Tc 1.089 0 Td [(wo )-34(mutexes )-34(at )-34(the )-34(same )-34(time, )-34(we)]TJ -24.165 -1.2 Td [(always )-53(lock )-53(them )-53(in )-53(the )-53(same )-53(or)19(der)]TJ 0.5528 Tc 15.909 0 Td (.T)Tj 0 Tc 1.416 0 Td [(he )-53(second )-53(mutex )-53(pr)18(otects )-53(a )-53(hash )-53(list )-53(that )-53(we )-53(use)]TJ -17.325 -1.2 Td [(to )-90(keep )-90(track )-90(of )-90(the)]TJ /TT0 1 Tf 9.175 0 Td (foo)Tj /T1_1 1 Tf 2.14 0 Td [(data )-90(str)8(uctur)18(es. )-340(Thus)-340(the)]TJ /TT0 1 Tf 11.8 0 Td (hashlock)Tj /T1_1 1 Tf 5.14 0 Td [(mutex )-90(pr)18(otects )-90(both )-90(the)]TJ /TT0 1 Tf -28.255 -1.2 Td (fh)Tj /T1_1 1 Tf 1.499 0 Td [(hash )-49(table )-49(and )-49(the)]TJ /TT0 1 Tf 8.511 0 Td (f_next)Tj /T1_1 1 Tf 3.899 0 Td [(hash )-49(link )-49(\336eld )-49(in )-49(the)]TJ /TT0 1 Tf 9.547 0 Td (foo)Tj /T1_1 1 Tf 2.099 0 Td [(str)8(uctur)18(e. )-299(The)]TJ /TT0 1 Tf 6.74 0 Td (f_lock)Tj /T1_1 1 Tf 3.899 0 Td (mutex)Tj -36.193 -1.2 Td (in the)Tj /TT0 1 Tf 2.76 0 Td (foo)Tj /T1_1 1 Tf 2.05 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ep)Tj -0.018 Tc 1.33 0 Td (ro)Tj 0 Tc 0.923 0 Td [(tects access to the r)18(emainder of the)]TJ /TT0 1 Tf 15.586 0 Td (foo)Tj /T1_1 1 Tf 2.05 0 Td [(str)8(uctur)18(e\325s \336elds.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46997 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.6 )]TJ 32.941 0 Td [(Thr)18(ead )-250(Synchr)18(onization)]TJ /T1_1 1 Tf 12.892 0 Td (399)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2148.25 6638.25 cm 0 0 m 360 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 216.027 667 Tm [(Thr)18(ead A)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1968 6026 720 432 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 198.4322 627.3647 Tm (fetch)Tj /TT0 1 Tf 2.414 0 Td (i)Tj /T1_0 1 Tf 0.85 0 Td [(into r)18(egister)]TJ -1.771 -1.25 Td [(\(r)18(egister = 5\))]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1968 5414 720 432 re S Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 208.4425 576.1363 Tm [(incr)18(ement the)]TJ 0.621 -1.25 Td (contents of)Tj -0.063 -1.25 Td [(the r)18(egister)]TJ -0.318 -1.25 Td [(\(r)18(egister = 6\))]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 1968 4802 720 432 re S Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 201.7596 514.9164 Tm (stor)Tj 0.25 Tc 1.673 0 Td (et)Tj 0 Tc 1.055 0 Td (he contents)Tj -1.9 -1.25 Td [(of the r)18(egister)]TJ 1.749 -1.25 Td (into)Tj /TT0 1 Tf 1.995 0 Td (i)Tj /T1_0 1 Tf -3.497 -1.25 Td [(\(r)18(egister = 6\))]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3084.25 6638.25 cm 0 0 m 360 0 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 310.2149 666.8399 Tm [(Thr)18(ead B)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 2904 5414 720 432 re S Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 291.9509 566.0362 Tm (fetch)Tj /TT0 1 Tf 2.414 0 Td (i)Tj /T1_0 1 Tf 0.85 0 Td [(into r)18(egister)]TJ -1.771 -1.25 Td [(\(r)18(egister = 5\))]TJ ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2904 4802 720 432 re S Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 301.9531 514.8237 Tm [(incr)18(ement the)]TJ 0.621 -1.25 Td (contents of)Tj -0.063 -1.25 Td [(the r)18(egister)]TJ -0.318 -1.25 Td [(\(r)18(egister = 6\))]TJ ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 2904 4190 720 432 re S Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 295.2662 453.6222 Tm (stor)Tj 0.25 Tc 1.673 0 Td (et)Tj 0 Tc 1.055 0 Td (he contents)Tj -1.9 -1.25 Td [(of the r)18(egister)]TJ 1.749 -1.25 Td (into)Tj /TT0 1 Tf 1.995 0 Td (i)Tj /T1_0 1 Tf -3.497 -1.25 Td [(\(r)18(egister = 6\))]TJ ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4020.25 6638.25 cm 0 0 m 576 0 l S Q Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 406.7683 666.6799 Tm (Contents of)Tj /TT0 1 Tf 5.353 0 Td (i)Tj /T1_0 1 Tf -2.626 -5.575 Td (5)Tj 0 -7.65 TD (5)Tj T* (6)Tj 0 -7.65 TD (6)Tj ET q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 182.4 440.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 1824 4406 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1824.25 6242.25 cm 0 0 m 0 -1764 l S Q Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 162.4705 530.3217 Tm (time)Tj /T1_1 1 Tf 3.639 -17.105 Td [(Figure 1)37(1.9)]TJ /T1_0 1 Tf -0.09 Tc 6.25 0 Td (Tw)Tj 0.25 Tc 1.357 0 Td (ou)Tj 0 Tc 1.399 0 Td [(nsynchr)18(onized thr)18(eads incr)18(ementing the same variable)]TJ 9.994 0 0 9.994 147.5117 364.7811 Tm [(In )-71(a )-71(sequentially )-71(consistent )-71(envir)18(onment, )-71(we )-71(can )-71(explain )-71(modi\336cations )-71(to )-71(our )-71(data)]TJ -1.8 -1.2 Td [(as )-24(a )-24(sequential )-24(step )-24(of )-24(operations )-24(taken )-24(by )-24(the )-24(r)6(unning )-24(thr)18(eads. )-274(W)]TJ 0.2743 Tc 29.603 0 Td (ec)Tj 0 Tc 1.197 0 Td [(an )-24(say )-24(such )-24(things)]TJ -30.801 -1.2 Td [(as )-109(\324)37(\324Thr)18(ead )-109(A )-109(incr)18(emented )-109(the )-109(variable, )-109(then )-109(thr)18(ead )-109(B )-109(incr)18(emented )-109(the )-109(variable, )-109(so )-109(its)]TJ 0 -1.2 TD [(value )-47(is )-47(two )-47(gr)18(eater )-47(than )-47(befor)20(e\325)37(\325)-297(or)-297(\324)38(\324Thr)18(ead )-47(B )-47(incr)18(emented )-47(the )-47(variable, )-47(then )-47(thr)20(ead )-47(A)]TJ T* [(incr)18(emented )-33(the )-33(variable, )-33(so )-33(its )-33(value )-33(is )-33(two )-33(gr)18(eater )-33(than )-33(befor)21(e.\325)]TJ 0.5327 Tc 28.801 0 Td (\325N)Tj 0.2827 Tc 1.642 0 Td (op)Tj 0 Tc 1.43 0 Td [(ossible )-33(or)18(dering)]TJ -31.872 -1.2 Td [(of the two thr)18(eads can r)18(esult in any other value of the variable.)]TJ 1.8 -1.2 Td [(Besides )-241(the )-241(computer )-241(ar)18(chitectur)18(e, )-241(races )-241(can )-241(arise )-241(fr)18(om )-241(the )-241(ways )-241(in )-241(which )-241(our)]TJ -1.8 -1.2 Td [(pr)18(ograms )-28(use )-28(variables, )-28(cr)18(eating )-28(places )-28(wher)20(e)-278(it)-278(is)-278(p)1(ossible )-28(to )-28(view )-28(inconsistencies.)-526(For)]TJ 0 -1.2 Td [(example, )-97(we )-97(might )-97(incr)18(ement )-97(a )-97(variable )-97(and )-97(then )-97(make )-97(a )-97(decision )-97(based )-97(on )-97(its )-97(value.)]TJ T* [(The )-7(combination )-7(of )-7(the )-7(incr)18(ement )-7(step )-7(and )-7(the )-7(decision-making )-7(step )-7(isn\325t )-7(atomic, )-7(which)]TJ T* (opens a window wher)Tj 0.25 Tc 9.852 0 Td (ei)Tj 0 Tc 1.02 0 Td (nconsistencies can arise.)Tj /TT1 1 Tf 11.9928 0 0 11.9928 129.5226 220.8674 Tm [(11.6.1 )-556(Mute)]TJ -0.01 Tc 5.932 0 Td (xe)Tj 0 Tc 1.102 0 Td (s)Tj /T1_0 1 Tf -0.092 Tc 9.994 0 0 9.994 129.5226 196.8818 Tm [(We )-306(c)]TJ 0 Tc 2.203 0 Td [(an )-122(pr)18(otect )-122(our )-122(data )-122(and )-122(ensur)]TJ 0.3725 Tc 13.682 0 Td (ea)Tj 0 Tc 1.351 0 Td [(ccess )-122(by )-122(only )-122(one )-122(thr)18(ead )-122(at )-122(a )-122(time )-122(by )-122(using )-122(the)]TJ -17.237 -1.2 Td [(pthr)18(eads )-239(mutual-exclusion )-239(interfaces. )-239(A)]TJ /T1_2 1 Tf 18.852 0 Td (mutex)Tj /T1_0 1 Tf 3.045 0 Td [(is )-239(basically )-239(a )-239(lock )-239(that )-239(we )-239(set )-239(\(lock\))]TJ -21.897 -1.2 Td (befor)Tj 0.3738 Tc 2.288 0 Td (ea)Tj 0 Tc 1.353 0 Td [(ccessing )-124(a )-124(shar)18(ed )-124(r)19(esour)18(ce )-124(and )-124(r)18(elease )-124(\(unlock\) )-124(when )-124(we\325r)]TJ 0.3739 Tc 26.692 0 Td (ed)Tj 0 Tc 1.464 0 Td [(one. )-374(While)-374(it )-124(is)]TJ -31.796 -1.2 Td [(set, )-90(any )-90(other )-90(thr)18(ead )-90(that )-90(tries )-90(to )-90(set )-90(it )-90(will )-90(block )-90(until )-90(we )-90(r)23(elease )-89(it.)-589(If )-89(mor)]TJ 0.3395 Tc 34.245 0 Td (et)Tj 0 Tc 1.144 0 Td [(han )-89(one)]TJ -35.39 -1.2 Td [(thr)18(ead )-69(is )-69(blocked )-69(when )-69(we )-69(unlock )-69(the )-69(mutex, )-69(then )-69(all )-69(thr)18(eads )-69(blocked )-69(on )-69(the )-69(lock )-69(will)]TJ T* [(be )-76(made )-76(r)8(unnable, )-76(and )-76(the )-76(\336rst )-76(one )-76(to )-76(r)8(un )-76(will )-76(be )-76(able )-76(to )-76(set )-76(the )-76(lock.)-576(The )-76(others )-76(will)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46998 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.6 )]TJ 32.941 0 Td [(Thr)18(ead )-250(Synchr)18(onization)]TJ /T1_1 1 Tf 12.892 0 Td (397)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -1.902 TD (int pthread_detach\(pthread_t)Tj /T1_2 1 Tf 17.4 0 Td (tid)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 3.881 -1.902 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6195.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 604.7874 Tm [(As )-20(we )-20(will )-20(see )-20(in )-20(the )-20(next )-20(chapter)76(,)-270(we)-270(can )-20(cr)18(eate )-20(a )-20(thr)18(ead )-20(that )-20(is )-20(alr)18(eady )-20(in )-20(the )-20(detached)]TJ 0 -1.2 TD [(state by modifying the thr)18(ead attributes we pass to)]TJ /TT0 1 Tf 22.682 0 Td (pthread_create)Tj /T1_0 1 Tf (.)Tj /TT1 1 Tf 11.9986 0 0 11.9986 93.5888 556.7932 Tm [(11.6 )-776(Thread)-556(Sync)10(hr)20(onization)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 533.9959 Tm [(When )-108(multiple )-108(thr)17(eads )-108(of )-108(contr)18(ol )-108(shar)]TJ 0.3582 Tc 17.372 0 Td (et)Tj 0 Tc 1.163 0 Td [(he )-108(same )-108(memory)111(,)-358(we)-358(need )-108(to )-108(make )-108(sur)]TJ 0.3582 Tc 17.893 0 Td (et)Tj 0 Tc 1.163 0 Td (hat)Tj -37.592 -1.2 Td [(each )-105(thr)18(ead )-105(sees )-105(a )-105(consistent )-105(view )-105(of )-105(its )-105(data.)-605(If )-105(each )-105(thr)19(ead )-105(uses )-105(variables )-105(that )-105(other)]TJ T* [(thr)18(eads )-28(don\325t )-28(r)18(ead )-28(or )-28(modify)]TJ 0.2776 Tc 12.769 0 Td (,n)Tj 0.2775 Tc 1.11 0 Td (oc)Tj 0 Tc 1.268 0 Td [(onsistency )-27(pr)18(oblems )-27(will )-27(exist.)-529(Similarly)111(,)-277(if)-277(a)-277(v)-1(ariable)]TJ -15.146 -1.2 Td [(is )-191(r)18(ead-only)]TJ 0.4407 Tc 5.32 0 Td (,t)Tj 0 Tc 1.017 0 Td [(her)18(e)-441(is)-441(n)]TJ 0.4408 Tc 4.095 0 Td (oc)Tj 0 Tc 1.431 0 Td [(onsistency )-191(pr)18(oblem )-191(with )-191(mor)]TJ 0.4408 Tc 13.545 0 Td (et)Tj 0 Tc 1.246 0 Td [(han )-191(one )-191(thr)18(ead )-191(r)18(eading )-191(its)]TJ -26.654 -1.2 Td [(value )-138(at )-138(the )-138(same )-138(time.)-640(However)]TJ 0.3884 Tc 15.414 0 Td (,w)Tj 0 Tc 1.472 0 Td [(hen )-138(one )-138(thr)17(ead )-138(can )-138(modify )-138(a )-138(variable )-138(that )-138(other)]TJ -16.886 -1.2 Td [(thr)18(eads )-181(can )-181(r)18(ead )-181(or )-181(modify)112(,)-431(we)-431(n)1(eed )-181(to )-181(synchr)18(onize )-181(the )-181(thr)18(eads )-181(to )-181(ensur)]TJ 0.4308 Tc 33.982 0 Td (et)Tj 0 Tc 1.236 0 Td [(hat )-181(they)]TJ -35.218 -1.2 Td (don\325t use an invalid value when accessing the variable\325s memory co\ ntents.)Tj 1.8 -1.2 Td [(When )-609(one )-609(thr)18(ead )-609(modi\336es )-609(a )-609(variable, )-609(other )-609(thr)18(eads )-609(can )-609(potentially )-609(see)]TJ -1.8 -1.2 Td [(inconsistencies )-102(when )-102(r)18(eading )-102(the )-102(value )-102(of )-102(that )-102(variable.)-605(On )-102(pr)18(ocessor )-102(ar)17(chitectur)18(es )-102(in)]TJ 0 -1.2 Td [(which )-98(the )-98(modi\336cation )-98(takes )-98(mor)]TJ 0.348 Tc 15.228 0 Td (et)Tj 0 Tc 1.153 0 Td [(han )-98(one )-98(memory )-98(cycle, )-98(this )-98(can )-98(happen )-98(when )-98(the)]TJ -16.381 -1.2 Td [(memory )-38(r)18(ead )-38(is )-38(interleaved )-38(between )-38(the )-38(memory )-38(write )-38(cycles.)-541(Of )-38(course, )-38(this )-38(behavior)]TJ T* [(is )-178(ar)18(chitectur)]TJ 0.4284 Tc 5.892 0 Td (ed)Tj 0 Tc 1.518 0 Td [(ependent, )-178(but )-178(portable )-178(pr)18(ograms )-178(can\325t )-178(make )-178(any )-178(assumptions )-178(about)]TJ -7.411 -1.2 Td [(what type of pr)18(ocessor ar)18(chitectur)18(e)-250(is)-250(being used.)]TJ 1.8 -1.2 Td (Figur)Tj 0.3687 Tc 2.383 0 Td (e1)Tj 0 Tc 1.293 0 Td [(1.7 )-119(shows )-119(a )-119(hypothetical )-119(example )-119(of )-119(two )-119(thr)20(eads )-119(r)18(eading )-119(and )-119(writing )-119(the)]TJ -5.476 -1.2 Td [(same )-7(variable.)-507(In )-7(this )-7(example, )-7(thr)18(ead )-7(A )-7(r)20(eads )-7(the )-7(variable )-7(and )-7(then )-7(writes )-7(a )-7(new )-7(value)]TJ T* [(to )-197(it, )-197(but )-197(the )-197(write )-197(operation )-197(takes )-197(two )-197(memory )-197(cycles.)-700(If )-197(thr)18(ead )-197(B )-197(r)18(eads )-197(the )-197(same)]TJ T* (variable between the two write cycles, it will see an inconsistent value\ .)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 3176.25 cm 0 0 m 360 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 278.9898 320.8422 Tm [(Thr)18(ead A)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2742 2816.6 432 216 re S Q BT /T1_0 1 Tf -0.018 Tc 7.9981 0 0 7.9981 287.8629 290.6302 Tm (re)Tj 0 Tc 0.856 0 Td (ad)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2742 2384.6 432 216 re S Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 284.9145 247.4258 Tm (write)Tj 5.9982 0 0 5.9982 303.5089 243.427 Tm (1)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 2742 1952.6 432 216 re S Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 284.8974 204.2265 Tm (write)Tj 5.9978 0 0 5.9978 303.4907 200.2279 Tm (2)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3498.25 3176.25 cm 0 0 m 360 0 l S Q Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 351.5603 320.7652 Tm [(Thr)18(ead B)]TJ ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 3462 2168.6 432 216 re S Q BT /T1_0 1 Tf -0.018 Tc 7.9962 0 0 7.9962 359.7593 225.7916 Tm (re)Tj 0 Tc 0.856 0 Td (ad)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 259.8 198.86 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 2598 1988.6 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2598.25 2852.25 cm 0 0 m 0 -792 l S Q Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 239.8384 240.1703 Tm (time)Tj /T1_1 1 Tf -2.402 -8.78 Td [(Figure 1)37(1.7)]TJ /T1_0 1 Tf 6.25 0 Td [(Interleaved memory cycles with two thr)18(eads)]TJ -0.092 Tc 9.9946 0 0 9.9946 147.5203 145.9813 Tm [(To )-205(s)]TJ 0 Tc 1.762 0 Td [(olve )-21(this )-21(pr)18(oblem, )-21(the )-21(thr)17(eads )-21(have )-21(to )-21(use )-21(a )-21(lock )-21(that )-21(will )-21(allow )-21(only )-21(one )-21(thr)17(ead)]TJ -3.562 -1.2 Td [(to )-97(access )-97(the )-97(variable )-97(at )-97(a )-97(time.)-596(Figur)]TJ 0.3469 Tc 17.164 0 Td (e1)Tj 0 Tc 1.271 0 Td [(1.8 )-97(shows )-97(this )-97(synchr)18(onization. )-347(If)-347(it )-97(wants )-97(to)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 46999 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (388)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 0 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(thr)18(ead )-320(ID )-320(of )-320(the )-320(newly )-320(cr)18(eated )-320(thr)19(ead )-320(thr)18(ough )-320(the )-320(\336rst )-320(parameter )-320(\()]TJ /T1_2 1 Tf 32.953 0 Td (tidp)Tj /T1_1 1 Tf [(\). )-570(In)-570(our)]TJ -32.953 -1.2 Td [(example, )-58(the )-58(main )-58(thr)18(ead )-58(stor)18(es )-58(this )-58(ID )-58(in)]TJ /TT0 1 Tf 19.162 0 Td (ntid)Tj /T1_1 1 Tf 0.3078 Tc (,b)Tj 0 Tc 3.511 0 Td [(ut )-58(the )-58(new )-58(thr)18(ead )-58(can\325t )-58(safely )-58(use )-58(it.)]TJ -22.673 -1.2 Td [(If )-80(the )-80(new )-80(thr)18(ead )-80(r)8(uns )-80(befor)]TJ 0.3302 Tc 12.762 0 Td (et)Tj 0 Tc 1.135 0 Td [(he )-80(main )-80(thr)18(ead )-80(r)18(eturns )-80(fr)18(om )-80(calling)]TJ /TT0 1 Tf 16.453 0 Td (pthread_create)Tj /T1_1 1 Tf (,)Tj -30.35 -1.2 Td [(then )-20(the )-20(new )-20(thr)17(ead )-20(will )-20(see )-20(the )-20(uninitialized )-20(contents )-20(of)]TJ /TT0 1 Tf 25.533 0 Td (ntid)Tj /T1_1 1 Tf 2.671 0 Td [(instead )-20(of )-20(the )-20(thr)18(ead )-20(ID.)]TJ -26.403 -1.2 Td [(Running the pr)18(ogram in Figur)]TJ 0.25 Tc 13.365 0 Td (e1)Tj 0 Tc 1.174 0 Td (1.2 on Solaris gives us)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5907 605.3336 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (main thread: pid 20075 tid 1 \(0x1\))Tj 0 -1.189 TD [(new thread:)-1200(pid 20075 tid 2 \(0x2\))]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5918 567.0058 Tm [(As )-6(we )-6(expect, )-6(both )-6(thr)19(eads )-6(have )-6(the )-6(same )-6(pr)18(ocess )-6(ID, )-6(but )-6(dif)20(fer)18(ent )-6(thr)18(ead )-6(IDs.)-505(Running)]TJ -0 -1.2 Td [(the pr)18(ogram in Figur)]TJ 0.25 Tc 9.251 0 Td (e1)Tj 0 Tc 1.174 0 Td [(1.2 on Fr)18(eeBSD gives us)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5905 539.3777 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (main thread: pid 37396 tid 673190208 \(0x28201140\))Tj T* [(new thread:)-1200(pid 37396 tid 673280320 \(0x28217140\))]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5916 501.0499 Tm [(As )-98(we )-98(expect, )-98(both )-98(thr)18(eads )-98(have )-98(the )-98(same )-98(pr)18(ocess )-98(ID.)-594(If )-98(we )-98(look )-98(at )-98(the )-98(thr)18(ead )-98(IDs )-98(as)]TJ 0 -1.2 TD [(decimal )-27(integers, )-27(the )-27(values )-27(look )-27(strange, )-27(but )-27(if )-27(we )-27(look )-27(at )-27(them )-27(in )-27(hexadecimal )-27(format,)]TJ T* [(they )-75(make )-75(mor)]TJ 0.3252 Tc 6.817 0 Td (es)Tj 0 Tc 1.228 0 Td [(ense. )-325(As)-325(we )-75(noted )-75(earlier)]TJ 0.3253 Tc 11.58 0 Td (,F)Tj -0.018 Tc 1.131 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD )-75(uses )-75(a )-75(pointer )-75(to )-75(the )-75(thr)18(ead )-75(data)]TJ -21.613 -1.2 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ef)Tj 0 Tc 1.062 0 Td [(or its thr)18(ead ID.)]TJ -0.092 Tc -2.752 -1.2 Td [(We )-198(w)]TJ 0 Tc 2.485 0 Td [(ould )-14(expect )-14(Mac )-14(OS )-14(X )-14(to )-14(be )-14(similar )-14(to )-14(Fr)18(eeBSD; )-14(however)]TJ 0.2639 Tc 25.112 0 Td (,t)Tj 0 Tc 0.84 0 Td [(he )-14(thr)18(ead )-14(ID )-14(for )-14(the)]TJ -30.237 -1.2 Td [(main )-122(thr)18(ead )-122(is )-122(fr)18(om )-122(a )-122(dif)18(fer)18(ent )-122(addr)18(ess )-122(range )-122(than )-122(the )-122(thr)18(ead )-122(IDs )-122(for )-122(thr)18(eads )-122(cr)18(eated)]TJ -0 -1.2 Td (with)Tj /TT0 1 Tf 2.283 0 Td (pthread_create)Tj /T1_1 1 Tf (:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5899 413.4251 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (main thread: pid 31807 tid 140735073889440 \(0x7fff70162ca0\))Tj 0 -1.189 TD [(new thread:)-1200(pid 31807 tid 4295716864 \(0x1000b7000\))]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.591 375.0973 Tm [(Running the same pr)18(ogram on Linux gives us)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5899 359.4681 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (main thread: pid 17874 tid 140693894424320 \(0x7ff5d9996700\))Tj T* [(new thread:)-1200(pid 17874 tid 140693886129920 \(0x7ff5d91ad700\))]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.591 321.1407 Tm [(The )-58(Linux )-58(thr)19(ead )-57(IDs )-57(look )-57(like )-57(pointers, )-57(even )-57(though )-57(they )-57(ar)]TJ 0.3075 Tc 27.332 0 Td (er)Tj 0 Tc 1.164 0 Td [(epr)18(esented )-57(as )-57(unsigned)]TJ -28.496 -1.2 Td (long integers.)Tj 7.9995 0 0 7.9995 183.5878 289.1427 Tm [(The )-380(thr)18(eads )-380(implementation )-380(changed )-380(between )-380(Linux )-380(2.4 )-380(and )-380(Linux )-380(2.6.)-880(In )-380(Linux )-380(2.4,)]TJ 0 -1.25 TD [(LinuxThr)18(eads )-220(implemented )-220(each )-220(thr)19(ead )-220(with )-220(a )-220(separate )-220(pr)20(ocess. )-470(This)-469(made )-220(it )-220(dif)18(\336cult )-220(to)]TJ 0 -1.25 Td [(match )-45(the )-45(behavior )-45(of )-45(POSIX )-45(thr)16(eads. )-296(In)-295(Linux )-46(2.6, )-46(the )-46(Linux )-46(kernel )-46(and )-46(thr)18(eads )-46(library )-46(wer)21(e)]TJ 0 -1.25 Td [(over)18(hauled )-205(to )-205(use )-205(a )-205(new )-205(thr)18(eads )-205(implementation )-205(called )-205(the )-205(Native )-205(POSIX )-205(Thr)19(ead )-205(Library)]TJ -0 -1.21 Td (\()Tj 0.333 -0.04 Td (NPTL)Tj 2.659 0.04 Td (\))Tj 0.5 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.363 0 Td [(his supported a model of multiple thr)18(eads within a single pr)18(ocess and made it easier)]TJ -4.688 -1.25 Td [(to support POSIX thr)18(eads semantics.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2331.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 11.9986 0 0 11.9986 93.5888 194.7366 Tm [(11.5 )-776(Thread)]TJ -0.06 Tc 6.89 0 Td (Te)Tj 0 Tc 1.107 0 Td (rmination)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 171.9394 Tm [(If )-171(any )-171(thr)18(ead )-171(within )-171(a )-171(pr)18(ocess )-171(calls)]TJ /TT0 1 Tf 16.779 0 Td (exit)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.071 0 Td (_Exit)Tj /T1_1 1 Tf 0.4207 Tc (,o)Tj 0 Tc 4.217 0 Td (r)Tj /TT0 1 Tf 0.816 0 Td (_exit)Tj /T1_1 1 Tf 0.4207 Tc (,t)Tj 0 Tc 3.997 0 Td [(hen )-171(the )-171(entir)]TJ 0.4208 Tc 5.926 0 Td (ep)Tj -0.018 Tc 1.501 0 Td (ro)Tj 0 Tc 0.923 0 Td (cess)Tj -37.229 -1.2 Td [(terminates. )-325(Similarly)]TJ 0.3248 Tc 9.422 0 Td (,w)Tj 0 Tc 1.409 0 Td [(hen )-75(the )-75(default )-75(action )-75(is )-75(to )-75(terminate )-75(the )-75(pr)20(ocess, )-75(a )-75(signal )-75(sent)]TJ -10.831 -1.2 Td [(to )-212(a )-212(thr)18(ead )-212(will )-212(terminate )-212(the )-212(entir)]TJ 0.4618 Tc 16.428 0 Td (ep)Tj -0.018 Tc 1.542 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-212(\(we\325ll )-212(talk )-212(mor)]TJ 0.4619 Tc 9.142 0 Td (ea)Tj 0 Tc 1.441 0 Td [(bout )-212(the )-212(interactions)]TJ -29.475 -1.2 Td [(between signals and thr)18(eads in Section 12.8\).)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47000 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.4 )]TJ 36.361 0 Td [(Thr)18(ead )-250(Cr)18(eation)]TJ /T1_1 1 Tf 9.472 0 Td (385)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -2.021 TD (int pthread_equal\(pthread_t)Tj /T1_2 1 Tf 16.8 0 Td (tid1)Tj /TT0 1 Tf 0.6 Tc (,p)Tj 0 Tc 3.411 0 Td (thread_t)Tj /T1_2 1 Tf 5.4 0 Td (tid2)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -3.03 -2.021 Td [(Returns: nonzer)18(o)-250(if)-250(equal, 0 otherwise)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6174.25 cm 0 0 m 0 499 l 3900 499 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 183.578 599.4481 Tm [(Linux )-50(3.2.0 )-50(uses )-50(an )-50(unsigned )-50(long )-50(integer )-50(for )-50(the)]TJ /TT0 1 Tf 22.183 0 Td (pthread_t)Tj /T1_0 1 Tf 5.7 0 Td [(data )-49(type.)-549(Solaris )-49(10 )-49(r)16(epr)18(esents)]TJ -27.883 -1.25 Td (the)Tj /TT0 1 Tf 1.795 0 Td (pthread_t)Tj /T1_0 1 Tf 5.808 0 Td [(data )-158(type )-158(as )-158(an )-158(unsigned )-158(integer)]TJ 0.658 Tc 15.107 0 Td (.F)Tj -0.018 Tc 1.464 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD )-158(8.0 )-158(and )-158(Mac )-158(OS )-158(X )-158(10.6.8 )-158(use )-158(a)]TJ -25.03 -1.25 Td (pointer to the)Tj /TT0 1 Tf 6.229 0 Td (pthread)Tj /T1_0 1 Tf 4.45 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ef)Tj 0 Tc 1.062 0 Td (or the)Tj /TT0 1 Tf 2.828 0 Td (pthread_t)Tj /T1_0 1 Tf 5.65 0 Td (data type.)Tj 0.3057 Tc 9.9988 0 0 9.9988 147.5826 561.4526 Tm (Ac)Tj 0 Tc 1.528 0 Td [(onsequence )-56(of )-56(allowing )-56(the)]TJ /TT0 1 Tf 12.558 0 Td (pthread_t)Tj /T1_0 1 Tf 5.706 0 Td [(data )-56(type )-56(to )-56(be )-56(a )-56(str)10(uctur)18(e)-306(is)-306(t)1(hat )-56(ther)18(e)]TJ -21.591 -1.2 Td [(is )-54(no )-54(portable )-54(way )-54(to )-54(print )-54(its )-54(value.)-554(Sometimes, )-54(it )-54(is )-54(useful )-54(to )-54(print )-54(thr)18(ead )-54(IDs )-54(during)]TJ 0 -1.2 TD [(pr)18(ogram )-161(debugging, )-161(but )-161(ther)17(e)-411(is)-411(u)-1(sually )-161(no )-161(need )-161(to )-161(do )-161(so )-161(otherwise.)-661(At )-161(worst, )-161(this)]TJ -0.018 Tc 0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (sults in nonportable debug code, so it is not much of a limitation.)Tj 0.25 Tc 0.944 -1.2 Td (At)Tj 0 Tc 1.354 0 Td [(hr)18(ead can obtain its own thr)18(ead ID by calling the)]TJ /TT0 1 Tf 21.813 0 Td (pthread_self)Tj /T1_0 1 Tf 7.45 0 Td (function.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5826 494.3607 Tm (#include )Tj 0 -2.021 TD (pthread_t pthread_self\(void\);)Tj /T1_0 1 Tf 20.387 -2.021 Td [(Returns: the thr)18(ead ID of the calling thr)18(ead)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4535.25 cm 0 0 m 0 499 l 3900 499 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 437.5612 Tm [(This )-71(function )-71(can )-71(be )-71(used )-71(with)]TJ /TT0 1 Tf 14.249 0 Td (pthread_equal)Tj /T1_0 1 Tf 8.121 0 Td [(when )-71(a )-71(thr)18(ead )-71(needs )-71(to )-71(identify )-71(data)]TJ -22.37 -1.2 Td [(str)8(uctur)18(es )-43(that )-43(ar)]TJ 0.2927 Tc 7.59 0 Td (et)Tj 0 Tc 1.098 0 Td [(agged )-43(with )-43(its )-43(thr)18(ead )-43(ID.)-543(For )-43(example, )-43(a )-43(master )-43(thr)18(ead )-43(might )-43(place)]TJ -8.687 -1.2 Td [(work )-114(assignments )-114(on )-114(a )-114(queue )-114(and )-114(use )-114(the )-114(thr)18(ead )-114(ID )-114(to )-114(contr)18(ol )-114(which )-114(jobs )-114(go )-114(to )-114(each)]TJ 0 -1.2 TD [(worker )-13(thr)18(ead. )-263(This)-263(situation )-13(is )-13(illustrated )-13(in )-13(Figur)]TJ 0.2628 Tc 22.727 0 Td (e1)Tj 0 Tc 1.187 0 Td [(1.1. )-263(A)-263(single )-13(master )-13(thr)18(ead )-13(places)]TJ -23.914 -1.2 Td [(new )-199(jobs )-199(on )-199(a )-199(work )-199(queue.)]TJ 0.4494 Tc 13.531 0 Td (Ap)Tj 0 Tc 1.828 0 Td [(ool )-199(of )-199(thr)18(ee )-199(worker )-199(thr)18(eads )-199(r)18(emoves )-199(jobs )-199(fr)18(om )-199(the)]TJ -15.36 -1.2 Td [(queue. )-357(Instead)-356(of )-107(allowing )-107(each )-107(thr)18(ead )-107(to )-107(pr)20(ocess )-107(whichever )-107(job )-107(is )-107(at )-107(the )-107(head )-107(of )-107(the)]TJ 0 -1.2 Td [(queue, )-114(the )-114(master )-114(thr)18(ead )-114(contr)19(ols )-114(job )-114(assignment )-114(by )-114(placing )-114(the )-114(ID )-114(of )-114(the )-114(thr)18(ead )-114(that)]TJ T* [(should )-5(pr)18(ocess )-5(the )-5(job )-5(in )-5(each )-5(job )-5(str)5(uctur)18(e. )-255(Each)-256(worker )-5(thr)18(ead )-5(then )-5(r)18(emoves )-5(only )-5(jobs)]TJ T* (that ar)Tj 0.25 Tc 2.861 0 Td (et)Tj 0 Tc 1.055 0 Td [(agged with its own thr)18(ead ID.)]TJ /TT1 1 Tf 11.9978 0 0 11.9978 93.5828 305.585 Tm [(11.4 )-776(Thread)-556(Creation)]TJ /T1_0 1 Tf 9.9982 0 0 9.9982 129.5763 281.5893 Tm [(The )-130(traditional )-130(UNIX )-130(pr)18(ocess )-130(model )-130(supports )-130(only )-130(one )-130(thr)18(ead )-130(of )-130(contr)18(ol )-130(per )-130(pr)17(ocess.)]TJ T* (Conceptually)Tj 0.3186 Tc 5.817 0 Td (,t)Tj 0 Tc 0.895 0 Td [(his )-69(is )-69(the )-69(same )-69(as )-69(a )-69(thr)20(eads-based )-68(model )-68(wher)18(eby )-68(each )-68(pr)18(ocess )-68(is )-68(made)]TJ -6.712 -1.2 Td [(up )-2(of )-2(only )-2(one )-2(thr)17(ead. )-252(W)55(ith )-2(pthr)18(eads, )-2(when )-2(a )-2(pr)17(ogram )-2(r)8(uns, )-2(it )-2(also )-2(starts )-2(out )-2(as )-2(a )-2(single)]TJ 0 -1.2 Td [(pr)18(ocess )-139(with )-139(a )-139(single )-139(thr)17(ead )-139(of )-139(contr)18(ol. )-389(As)-389(the )-139(pr)18(ogram )-139(r)8(uns, )-139(its )-139(behavior )-139(should )-139(be)]TJ -0 -1.2 Td [(indistinguishable )-116(fr)18(om )-116(the )-116(traditional )-116(pr)17(ocess, )-116(until )-116(it )-116(cr)18(eates )-116(mor)]TJ 0.3663 Tc 29.882 0 Td (et)Tj 0 Tc 1.171 0 Td [(hr)18(eads )-116(of )-116(contr)17(ol.)]TJ -31.053 -1.2 Td [(Additional thr)18(eads can be cr)18(eated by calling the)]TJ /TT0 1 Tf 21.351 0 Td (pthread_create)Tj /T1_0 1 Tf 8.65 0 Td (function.)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.5725 202.5031 Tm (#include )Tj 0 -2.021 TD (int pthread_create\(pthread_t *restrict)Tj /T1_2 1 Tf 23.4 0 Td (tidp)Tj /TT0 1 Tf (,)Tj -12 -1.189 Td (const pthread_attr_t *restrict)Tj /T1_2 1 Tf 18.6 0 Td (attr)Tj /TT0 1 Tf (,)Tj -18.6 -1.189 Td (void *\(*)Tj /T1_2 1 Tf (start_rtn)Tj /TT0 1 Tf (\)\(void *\), void *restrict)Tj /T1_2 1 Tf 24.066 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj /T1_0 1 Tf -14.185 -2.021 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1402.25 cm 0 0 m 0 713 l 3900 713 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47001 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (384)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 0 Tc 9.9994 0 0 9.9994 162.4803 668.9599 Tm [(and )-189(17.)-689(Thr)18(eads, )-189(in )-189(contrast, )-189(automatically )-189(have )-189(access )-189(to )-189(the )-189(same )-189(memory)]TJ 0 -1.2 TD [(addr)18(ess space and \336le descriptors.)]TJ 0.883 Tc -1.489 -1.48 Td (\245S)Tj 0 Tc 2.014 0 Td [(ome )-144(pr)18(oblems )-144(can )-144(be )-144(partitioned )-144(so )-144(that )-144(overall )-144(pr)21(ogram )-143(thr)18(oughput )-143(can )-143(be)]TJ -0.525 -1.2 Td [(impr)18(oved. )-341(A)-340(single-thr)18(eaded )-91(pr)18(ocess )-91(with )-91(multiple )-91(tasks )-91(to )-91(perform )-91(implicitly)]TJ T* [(serializes )-42(those )-42(tasks, )-42(because )-42(ther)18(e)-292(is)-292(only )-42(one )-42(thr)18(ead )-42(of )-42(contr)18(ol. )-292(W)55(ith )-42(multiple)]TJ -0 -1.2 Td [(thr)18(eads )-174(of )-174(contr)18(ol, )-174(the )-174(pr)18(ocessing )-174(of )-174(independent )-174(tasks )-174(can )-174(be )-174(interleaved )-174(by)]TJ T* [(assigning )-90(a )-90(separate )-90(thr)18(ead )-90(per )-90(task.)]TJ -0.09 Tc 17.103 0 Td (Tw)Tj 0.3395 Tc 1.357 0 Td (ot)Tj 0 Tc 1.211 0 Td [(asks )-89(can )-89(be )-89(interleaved )-89(only )-89(if )-89(they)]TJ -19.672 -1.2 Td [(don\325t depend on the pr)18(ocessing performed by each other)74(.)]TJ 0.883 Tc -1.489 -1.48 Td (\245S)Tj 0 Tc 2.014 0 Td (imilarly)Tj 0.4818 Tc 3.387 0 Td (,i)Tj 0 Tc 1.023 0 Td [(nteractive )-232(pr)18(ograms )-232(can )-232(r)18(ealize )-232(impr)18(oved )-232(r)18(esponse )-232(time )-232(by )-232(using)]TJ -4.935 -1.2 Td [(multiple )-192(thr)18(eads )-192(to )-192(separate )-192(the )-192(portions )-192(of )-192(the )-192(pr)20(ogram )-192(that )-192(deal )-192(with )-192(user)]TJ T* [(input and output fr)18(om the other parts of the pr)18(ogram.)]TJ -1.489 -1.8 Td [(Some )-565(people )-565(associate )-565(multithr)18(eaded )-565(pr)18(ogramming )-565(with )-565(multipr)20(ocessor )-565(or)]TJ -1.8 -1.2 Td (multicor)Tj 0.2562 Tc 3.761 0 Td (es)Tj 0 Tc 1.159 0 Td [(ystems. )-256(The)-256(bene\336ts )-6(of )-6(a )-6(multithr)18(eaded )-6(pr)18(ogramming )-6(model )-6(can )-6(be )-6(r)16(ealized)]TJ -4.92 -1.2 Td [(even )-44(if )-44(your )-44(pr)18(ogram )-44(is )-44(r)8(unning )-44(on )-44(a )-44(unipr)14(ocessor)]TJ 0.5445 Tc 22.607 0 Td (.A)Tj 0 Tc 1.867 0 Td [(pr)18(ogram )-44(can )-44(be )-44(simpli\336ed )-44(using)]TJ -24.474 -1.2 Td [(thr)18(eads )-271(r)18(egar)18(dless )-271(of )-271(the )-271(number )-271(of )-271(pr)18(ocessors, )-271(because )-271(the )-271(number )-271(of )-271(pr)19(ocessors)]TJ -0 -1.2 Td [(doesn\325t )-218(af)18(fect )-218(the )-218(pr)18(ogram )-218(str)9(uctur)18(e. )-468(Furthermor)18(e, )-218(as )-218(long )-218(as )-218(your )-218(pr)18(ogram )-218(has )-218(to)]TJ 0 -1.2 Td [(block )-244(when )-244(serializing )-244(tasks, )-244(you )-244(can )-244(still )-244(see )-244(impr)20(ovements )-244(in )-244(r)18(esponse )-244(time )-244(and)]TJ T* [(thr)18(oughput )-2(when )-2(r)9(unning )-2(on )-2(a )-2(unipr)19(ocessor)]TJ 0.2517 Tc 19.686 0 Td (,b)Tj 0 Tc 1.055 0 Td [(ecause )-2(some )-2(thr)18(eads )-2(might )-2(be )-2(able )-2(to )-2(r)10(un)]TJ -20.741 -1.2 Td (while others ar)Tj 0.25 Tc 6.606 0 Td (eb)Tj 0 Tc 1.282 0 Td (locked.)Tj 0.4272 Tc -6.088 -1.2 Td (At)Tj 0 Tc 1.531 0 Td [(hr)18(ead )-177(consists )-177(of )-177(the )-177(information )-177(necessary )-177(to )-177(r)17(epr)18(esent )-177(an )-177(execution )-177(context)]TJ -3.331 -1.2 Td [(within )-49(a )-49(pr)19(ocess. )-299(This)-298(includes )-49(a)]TJ /T1_2 1 Tf 15.128 0 Td [(thr)18(ead )-49(ID)]TJ /T1_1 1 Tf 4.245 0 Td [(that )-49(identi\336es )-49(the )-49(thr)19(ead )-49(within )-49(a )-49(pr)18(ocess, )-49(a)]TJ -19.374 -1.2 Td [(set )-36(of )-36(r)18(egister )-36(values, )-36(a )-36(stack, )-36(a )-36(scheduling )-36(priority )-36(and )-36(policy)]TJ 0.2859 Tc 27.481 0 Td (,as)Tj 0 Tc 1.746 0 Td [(ignal )-36(mask, )-36(an)]TJ /TT0 1 Tf 6.773 0 Td (errno)Tj /T1_1 1 Tf -36 -1.2 Td [(variable )-32(\(r)18(ecall )-32(Section )-32(1.7\), )-32(and )-32(thr)18(ead-speci\336c )-32(data )-32(\(Section )-32(12.6\).)-532(Everything )-32(within )-32(a)]TJ T* [(pr)18(ocess )-62(is )-62(sharable )-62(among )-62(the )-62(thr)16(eads )-62(in )-62(a )-62(pr)18(ocess, )-62(including )-62(the )-62(text )-62(of )-62(the )-62(executable)]TJ 0 -1.2 Td [(pr)18(ogram, the pr)18(ogram\325s global and heap memory)]TJ 0.25 Tc 21.778 0 Td (,t)Tj 0 Tc 0.826 0 Td (he stacks, and the \336le descriptors.)Tj -20.804 -1.2 Td [(The )-275(thr)18(eads )-275(interfaces )-275(we\325r)]TJ 0.525 Tc 12.769 0 Td (ea)Tj 0 Tc 1.504 0 Td [(bout )-275(to )-275(see )-275(ar)]TJ 0.525 Tc 6.734 0 Td (ef)Tj -0.018 Tc 1.337 0 Td (ro)Tj 0.525 Tc 0.923 0 Td (mP)Tj 0 Tc 2.012 0 Td (OSIX.1)Tj 3.065 0.09 Td (-)Tj 0.333 -0.09 Td [(2001. )-525(The)-525(thr)18(eads)]TJ -30.477 -1.2 Td [(interfaces, )-111(also )-111(known )-111(as )-111(\324)37(\324pthr)18(eads\325)]TJ 0.3609 Tc 16.392 0 Td (\325f)Tj 0 Tc 0.972 0 Td [(or )-111(\324)37(\324POSIX )-111(thr)18(eads,\325)]TJ 0.3609 Tc 8.891 0 Td (\325o)Tj 0 Tc 1.185 0 Td [(riginally )-111(wer)]TJ 0.3609 Tc 5.804 0 Td (eo)Tj 0 Tc 1.386 0 Td [(ptional )-111(in)]TJ -34.629 -1.2 Td (POSIX.1)Tj 3.669 0.09 Td (-)Tj 0.333 -0.09 Td [(2001, )-137(but )-137(SUSv4 )-137(moved )-137(them )-137(to )-137(the )-137(base.)-637(The )-137(featur)]TJ 0.3873 Tc 24.472 0 Td (et)Tj 0 Tc 1.192 0 Td [(est )-137(macr)]TJ 0.3873 Tc 3.82 0 Td (of)Tj 0 Tc 1.266 0 Td [(or )-137(POSIX)]TJ -34.753 -1.2 Td [(thr)18(eads )-185(is)]TJ /TT0 1 Tf 4.884 0 Td (_POSIX_THREADS)Tj /T1_1 1 Tf 0.6852 Tc (.A)Tj 0 Tc 10.113 0 Td [(pplications )-185(can )-185(either )-185(use )-185(this )-185(in )-185(an)]TJ /TT0 1 Tf 17.105 0 Td (#ifdef)Tj /T1_1 1 Tf 4.035 0 Td [(test )-185(to)]TJ -36.138 -1.2 Td [(determine )-177(at )-177(compile )-177(time )-177(whether )-177(thr)18(eads )-177(ar)]TJ 0.4275 Tc 21.283 0 Td (es)Tj 0 Tc 1.331 0 Td [(upported )-177(or )-177(call)]TJ /TT0 1 Tf 7.911 0 Td (sysconf)Tj /T1_1 1 Tf 4.628 0 Td [(with )-177(the)]TJ /TT0 1 Tf -35.153 -1.2 Td (_SC_THREADS)Tj /T1_1 1 Tf 7.023 0 Td [(constant )-173(to )-173(determine )-173(this )-173(at )-173(r)7(untime. )-423(Systems)-424(conforming )-173(to )-173(SUSv4)]TJ -7.023 -1.2 Td (de\336ne the symbol)Tj /TT0 1 Tf 8.146 0 Td (_POSIX_THREADS)Tj /T1_1 1 Tf 8.65 0 Td (to have the value 200809L.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5928 249.385 Tm [(11.3 )-776(Thread)-556(Identi\336cation)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5906 225.3865 Tm [(Just )-29(as )-29(every )-29(pr)19(ocess )-29(has )-29(a )-29(pr)18(ocess )-29(ID, )-29(every )-29(thr)18(ead )-29(has )-29(a )-29(thr)18(ead )-29(ID.)-529(Unlike )-29(the )-29(pr)22(ocess)]TJ 0 -1.2 Td [(ID, )-10(which )-10(is )-10(unique )-10(in )-10(the )-10(system, )-10(the )-10(thr)14(ead )-10(ID )-10(has )-10(signi\336cance )-10(only )-10(within )-10(the )-10(context)]TJ T* [(of the pr)18(ocess to which it belongs.)]TJ 1.8 -1.2 Td [(Recall )-192(that )-192(a )-192(pr)18(ocess )-192(ID, )-192(r)20(epr)18(esented )-192(by )-192(the)]TJ /TT0 1 Tf 20.807 0 Td (pid_t)Tj /T1_1 1 Tf 3.442 0 Td [(data )-192(type, )-192(is )-192(a )-192(non-negative)]TJ -26.048 -1.2 Td (integer)Tj 0.5494 Tc 3.034 0 Td (.A)Tj 0 Tc 1.877 0 Td [(thr)18(ead )-49(ID )-49(is )-49(r)17(epr)18(esented )-49(by )-49(the)]TJ /TT0 1 Tf 14.207 0 Td (pthread_t)Tj /T1_1 1 Tf 5.699 0 Td [(data )-49(type.)-549(Implementations )-49(ar)17(e)]TJ -24.817 -1.2 Td [(allowed )-417(to )-417(use )-417(a )-417(str)7(uctur)18(e)-667(to)-667(r)17(epr)18(esent )-417(the)]TJ /TT0 1 Tf 22.12 0 Td (pthread_t)Tj /T1_1 1 Tf 6.067 0 Td [(data )-417(type, )-417(so )-417(portable)]TJ -28.188 -1.2 Td [(implementations )-181(can\325t )-181(tr)18(eat )-181(them )-181(as )-181(integers.)-682(Ther)18(efor)18(e, )-181(a )-181(function )-181(must )-181(be )-181(used )-181(to)]TJ 0 -1.2 Td (compar)Tj 0.25 Tc 3.351 0 Td (et)Tj 0 Tc 1.055 0 Td [(wo thr)18(ead IDs.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47002 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (11)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(Thr)4(eads)]TJ /TT0 1 Tf 12 0 0 12 93.6 445.2 Tm [(11.1 )-776(Intr)20(oduction)]TJ /T1_2 1 Tf -0.092 Tc 10 0 0 10 129.6 423.6 Tm [(We )-387(d)]TJ 0 Tc 2.451 0 Td [(iscussed )-203(pr)18(ocesses )-203(in )-203(earlier )-203(chapters.)]TJ -0.092 Tc 18.118 0 Td [(We )-387(l)]TJ 0 Tc 2.131 0 Td [(earned )-203(about )-203(the )-203(envir)18(onment )-203(of )-203(a)]TJ -22.701 -1.2 Td [(UNIX )-67(pr)18(ocess, )-67(the )-67(r)18(elationships )-67(between )-67(pr)18(ocesses, )-67(and )-67(ways )-67(to )-67(contr)18(ol )-67(pr)19(ocesses. )-317(W)92(e)]TJ 0 -1.2 TD [(saw that a limited amount of sharing can occur between r)18(elated pr)18(ocesses.)]TJ 1.8 -1.2 Td [(In )-92(this )-92(chapter)]TJ 0.342 Tc 6.479 0 Td (,w)Tj 0 Tc 1.426 0 Td [(e\325ll )-92(look )-92(inside )-92(a )-92(pr)18(ocess )-92(further )-92(to )-92(see )-92(how )-92(we )-92(can )-92(use )-92(multiple)]TJ /T1_3 1 Tf -9.705 -1.2 Td [(thr)18(eads )-25(of )-25(contr)18(ol)]TJ /T1_2 1 Tf 7.307 0 Td [(\(or )-25(simply)]TJ /T1_3 1 Tf 4.87 0 Td [(thr)18(eads)]TJ /T1_2 1 Tf [(\))-275(to)-275(perform )-25(multiple )-25(tasks )-25(within )-25(the )-25(envir)18(onment )-25(of)]TJ 0.387 Tc -12.177 -1.2 Td (as)Tj 0 Tc 1.311 0 Td [(ingle )-137(pr)18(ocess. )-387(All)-387(thr)18(eads )-137(within )-137(a )-137(single )-137(pr)18(ocess )-137(have )-137(access )-137(to )-137(the )-137(same )-137(pr)18(ocess)]TJ -1.311 -1.2 Td [(components, such as \336le descriptors and memory)111(.)]TJ 1.8 -1.2 Td [(Anytime )-53(you )-53(try )-53(to )-53(shar)]TJ 0.3033 Tc 10.845 0 Td (eas)Tj 0 Tc 2.01 0 Td [(ingle )-53(r)18(esour)18(ce )-53(among )-53(multiple )-53(users, )-53(you )-53(have )-53(to )-53(deal)]TJ -14.655 -1.2 Td [(with )-338(consistency)]TJ 0.8381 Tc 7.608 0 Td (.W)Tj 0 Tc 1.996 0 Td [(e\325ll )-338(conclude )-338(this )-338(chapter )-338(with )-338(a )-338(look )-338(at )-338(the )-338(synchr)17(onization)]TJ -9.604 -1.2 Td [(mechanisms )-40(available )-40(to )-40(pr)18(event )-40(multiple )-40(thr)18(eads )-40(fr)18(om )-40(viewing )-40(inconsistencies )-40(in )-40(their)]TJ T* [(shar)18(ed r)18(esour)18(ces.)]TJ /TT0 1 Tf 12 0 0 12 93.6002 270 Tm [(11.2 )-776(Thread)-556(Concepts)]TJ /T1_2 1 Tf 0.4068 Tc 10 0 0 10 129.6002 248.4 Tm (At)Tj 0 Tc 1.511 0 Td [(ypical )-157(UNIX )-157(pr)18(ocess )-157(can )-157(be )-157(thought )-157(of )-157(as )-157(having )-157(a )-157(single )-157(thr)18(ead )-157(of )-157(contr)18(ol: )-157(each)]TJ -1.511 -1.2 Td [(pr)18(ocess )-176(is )-176(doing )-176(only )-176(one )-176(thing )-176(at )-176(a )-176(time.)]TJ -0.055 Tc 20.156 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-176(multiple )-176(thr)18(eads )-176(of )-176(contr)18(ol, )-176(we )-176(can)]TJ -21.392 -1.2 Td [(design )-67(our )-67(pr)18(ograms )-67(to )-67(do )-67(mor)]TJ 0.3169 Tc 14.189 0 Td (et)Tj 0 Tc 1.122 0 Td [(han )-67(one )-67(thing )-67(at )-67(a )-67(time )-67(within )-67(a )-67(single )-67(pr)18(ocess, )-67(with)]TJ -15.31 -1.2 Td [(each thr)18(ead handling a separate task.)-500(This appr)18(oach can have several bene\336ts.)]TJ 0.883 Tc 1.8 -1.68 Td (\245W)Tj 0.5582 Tc 2.397 0 Td (ec)Tj 0 Tc 1.481 0 Td [(an )-308(simplify )-308(code )-308(that )-308(deals )-308(with )-308(asynchr)18(onous )-308(events )-308(by )-308(assigning )-308(a)]TJ -2.389 -1.2 Td [(separate )-3(thr)18(ead )-3(to )-3(handle )-3(each )-3(event )-3(type.)-503(Each )-3(thr)18(ead )-3(can )-3(then )-3(handle )-3(its )-3(event)]TJ T* [(using )-23(a )-23(synchr)18(onous )-23(pr)18(ogramming )-23(model.)]TJ 0.2731 Tc 19.468 0 Td (As)Tj 0 Tc 1.475 0 Td [(ynchr)18(onous )-23(pr)18(ogramming )-23(model)]TJ -20.943 -1.2 Td [(is much simpler than an asynchr)18(onous one.)]TJ 0.883 Tc -1.489 -1.48 Td (\245M)Tj 0 Tc 2.435 0 Td [(ultiple )-58(pr)18(ocesses )-58(have )-58(to )-58(use )-58(complex )-58(mechanisms )-58(pr)18(ovided )-58(by )-58(the )-58(operating)]TJ -0.946 -1.2 Td [(system )-225(to )-225(shar)]TJ 0.475 Tc 6.797 0 Td (em)Tj 0 Tc 1.837 0 Td [(emory )-225(and )-225(\336le )-225(descriptors, )-225(as )-225(we )-225(will )-225(see )-225(in )-225(Chapters )-225(15)]TJ /T1_4 1 Tf 9 0 0 9 506.1004 114 Tm (383)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47003 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Chapter )-250(10)]TJ 39.788 0 Td [(Exer)18(cises)]TJ /T1_1 1 Tf 6.045 0 Td (381)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(10.23 )-220(Summar)-10(y)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(Signals )-149(ar)]TJ 0.3995 Tc 4.446 0 Td (eu)Tj 0 Tc 1.481 0 Td [(sed )-149(in )-149(most )-149(nontrivial )-149(applications.)-649(An )-149(understanding )-149(of )-149(the )-149(hows )-149(and)]TJ -5.927 -1.2 Td [(whys )-207(of )-207(signal )-207(handling )-207(is )-207(essential )-207(to )-207(advanced )-207(UNIX )-207(System )-207(pr)20(ogramming. )-457(This)]TJ 0 -1.2 TD [(chapter )-160(has )-160(taken )-160(a )-160(long )-160(and )-160(thor)17(ough )-160(look )-160(at )-160(UNIX )-160(System )-160(signals.)]TJ -0.092 Tc 32.623 0 Td [(We )-344(s)]TJ 0 Tc 2.221 0 Td [(tarted )-160(by)]TJ -34.844 -1.2 Td [(looking )-194(at )-194(the )-194(warts )-194(in )-194(pr)18(evious )-194(implementations )-194(of )-194(signals )-194(and )-194(how )-194(they )-194(manifest)]TJ T* [(themselves. )-530(W)]TJ 0.5305 Tc 6.871 0 Td (et)Tj 0 Tc 1.336 0 Td [(hen )-280(pr)18(oceeded )-280(to )-280(the )-280(POSIX.1 )-280(r)16(eliable-signal )-280(concept )-280(and )-280(all )-280(the)]TJ -0.018 Tc -8.206 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(lated )-417(functions.)-917(Once )-417(we )-417(cover)18(ed )-417(all )-417(these )-417(details, )-417(we )-417(wer)]TJ 0.6675 Tc 29.497 0 Td (ea)Tj 0 Tc 1.646 0 Td [(ble )-417(to )-417(pr)17(ovide)]TJ -32 -1.2 Td [(implementations )-170(of )-170(the )-170(POSIX.1)]TJ /TT1 1 Tf 15.097 0 Td (abort)Tj /T1_0 1 Tf (,)Tj /TT1 1 Tf 3.67 0 Td (system)Tj /T1_0 1 Tf 0.4196 Tc (,a)Tj 0 Tc 4.77 0 Td (nd)Tj /TT1 1 Tf 1.613 0 Td (sleep)Tj /T1_0 1 Tf 3.42 0 Td [(functions. )-420(W)]TJ 0.4196 Tc 5.959 0 Td (e\336)Tj 0 Tc 1.504 0 Td (nished)Tj -36.031 -1.2 Td [(with )-69(a )-69(look )-69(at )-69(the )-69(job-contr)17(ol )-69(signals )-69(and )-69(the )-69(ways )-69(that )-69(we )-69(can )-69(convert )-69(between )-69(signal)]TJ T* (names and signal numbers.)Tj /TT0 1 Tf 11.9993 0 0 11.9993 129.5926 506.9696 Tm [(Ex)10(er)20(cises)]TJ /T1_1 1 Tf 8.9995 0 0 8.9995 129.5926 483.771 Tm (10.1)Tj /T1_0 1 Tf 3.065 0 Td (In Figur)Tj 0.25 Tc 3.552 0 Td (e1)Tj 0 Tc 1.229 0 Td [(0.2, r)18(emove the)]TJ /TT1 1 Tf 6.966 0 Td [(for )267(\(;;\))]TJ /T1_0 1 Tf 4.783 0 Td [(statement. )-250(What)-250(happens and why?)]TJ /T1_1 1 Tf -19.595 -1.667 Td (10.2)Tj /T1_0 1 Tf 3.065 0 Td (Implement the)Tj /TT1 1 Tf 6.748 0 Td (sig2str)Tj /T1_0 1 Tf 4.45 0 Td (function described in Section 10.22.)Tj /T1_1 1 Tf -14.263 -1.667 Td (10.3)Tj /T1_0 1 Tf 3.065 0 Td [(Draw pictur)18(es of the stack frames when we r)8(un the pr)18(ogram fr)18(om Figur)]TJ 0.25 Tc 31.707 0 Td (e1)Tj 0 Tc 1.229 0 Td (0.9.)Tj /T1_1 1 Tf -36.001 -1.667 Td (10.4)Tj /T1_0 1 Tf 3.065 0 Td [(In )-225(Figur)]TJ 0.4747 Tc 3.777 0 Td (e1)Tj 0 Tc 1.454 0 Td [(0.1)55(1, )-225(we )-225(showed )-225(a )-225(technique )-225(that\325s )-225(often )-225(used )-225(to )-225(set )-225(a )-225(timeout )-225(on )-225(an )-225(I/O)]TJ -5.23 -1.222 Td (operation using)Tj /TT1 1 Tf 7.222 0 Td (setjmp)Tj /T1_0 1 Tf 3.85 0 Td (and)Tj /TT1 1 Tf 1.943 0 Td (longjmp)Tj /T1_0 1 Tf 0.5 Tc (.T)Tj 0 Tc 5.563 0 Td (he following code has also been seen:)Tj /TT1 1 Tf -16.578 -1.8 Td (signal\(SIGALRM, sig_alrm\);)Tj 0 -1.189 TD (alarm\(60\);)Tj T* (if \(setjmp\(env_alrm\) != 0\) {)Tj 2.4 -1.189 Td (/* handle timeout */)Tj T* (...)Tj -2.4 -1.189 Td (})Tj T* (...)Tj /T1_0 1 Tf -2 -1.833 Td [(What else is wr)18(ong with this sequence of code?)]TJ /T1_1 1 Tf -3.065 -1.667 Td (10.5)Tj /T1_0 1 Tf 3.065 0 Td [(Using )-22(only )-22(a )-22(single )-22(timer )-22(\(either)]TJ /TT1 1 Tf 14.619 0 Td (alarm)Tj /T1_0 1 Tf 3.272 0 Td [(or )-22(the )-22(higher)18(-pr)18(ecision)]TJ /TT1 1 Tf 10.379 0 Td (setitimer)Tj /T1_0 1 Tf [(\), )-22(pr)18(ovide )-22(a )-22(set)]TJ -28.27 -1.222 Td [(of functions that allows a pr)18(ocess to set any number of timers.)]TJ /T1_1 1 Tf -3.065 -1.667 Td (10.6)Tj /T1_0 1 Tf -0.074 Tc 3.065 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-431(the )-431(following )-431(pr)18(ogram )-431(to )-431(test )-431(the )-431(par)18(ent\320child )-431(synchr)22(onization )-430(functions )-430(in)]TJ -1.321 -1.222 Td (Figur)Tj 0.2513 Tc 2.383 0 Td (e1)Tj 0 Tc 1.23 0 Td [(0.24. )-251(The)-252(pr)18(ocess )-1(cr)18(eates )-1(a )-1(\336le )-1(and )-1(writes )-1(the )-1(integer )-1(0 )-1(to )-1(the )-1(\336le.)-501(The )-1(pr)18(ocess )-1(then)]TJ -3.613 -1.222 Td (calls)Tj /TT1 1 Tf 2.309 0 Td (fork)Tj /T1_0 1 Tf 0.3591 Tc (,a)Tj 0 Tc 3.509 0 Td [(nd )-109(the )-109(par)18(ent )-109(and )-109(child )-109(alternate )-109(incr)18(ementing )-109(the )-109(counter )-109(in )-109(the )-109(\336le.)-610(Each)]TJ -5.818 -1.222 Td [(time )-321(the )-321(counter )-321(is )-321(incr)18(emented, )-321(print )-321(which )-321(pr)18(ocess )-321(\(par)18(ent )-321(or )-321(child\) )-321(is )-321(doing )-321(the)]TJ 0 -1.222 TD [(incr)18(ement.)]TJ /T1_1 1 Tf -3.065 -1.667 Td (10.7)Tj /T1_0 1 Tf 3.065 0 Td [(In )-73(the )-73(function )-73(shown )-73(in )-73(Figur)]TJ 0.3226 Tc 13.85 0 Td (e1)Tj 0 Tc 1.302 0 Td [(0.25, )-72(if )-72(the )-72(caller )-72(catches)]TJ /TT1 1 Tf 11.222 0 Td (SIGABRT)Tj /T1_0 1 Tf 4.522 0 Td [(and )-72(r)18(eturns )-72(fr)18(om )-72(the)]TJ -30.896 -1.222 Td [(signal )-78(handler)]TJ 0.3276 Tc 6.338 0 Td (,w)Tj 0 Tc 1.412 0 Td [(hy )-78(do )-78(we )-78(go )-78(to )-78(the )-78(tr)18(ouble )-78(of )-78(r)18(esetting )-78(the )-78(disposition )-78(to )-78(its )-78(default )-78(and)]TJ -7.749 -1.222 Td (call)Tj /TT1 1 Tf 1.776 0 Td (kill)Tj /T1_0 1 Tf 2.65 0 Td (the second time, instead of simply calling)Tj /TT1 1 Tf 18.545 0 Td (_exit)Tj /T1_0 1 Tf (?)Tj /T1_1 1 Tf -26.036 -1.667 Td (10.8)Tj /T1_0 1 Tf 3.065 0 Td [(Why )-38(do )-38(you )-38(think )-38(the)]TJ /TT1 1 Tf 10.164 0 Td (siginfo)Tj /T1_0 1 Tf 4.488 0 Td [(str)8(uctur)]TJ 0.288 Tc 3.49 0 Td (e\()Tj 0 Tc 1.1 0 Td [(Section )-38(10.14\) )-38(includes )-38(the )-38(r)18(eal )-38(user )-38(ID, )-38(instead)]TJ -19.242 -1.222 Td [(of the ef)18(fective user ID, in the)]TJ /TT1 1 Tf 13.249 0 Td (si_uid)Tj /T1_0 1 Tf 3.85 0 Td (\336eld?)Tj /T1_1 1 Tf -20.164 -1.667 Td (10.9)Tj /T1_0 1 Tf 3.065 0 Td [(Rewrite )-274(the )-274(function )-274(in )-274(Figur)]TJ 0.5241 Tc 13.918 0 Td (e1)Tj 0 Tc 1.503 0 Td [(0.14 )-274(to )-274(handle )-274(all )-274(the )-274(signals )-274(fr)18(om )-274(Figur)]TJ 0.5242 Tc 19.396 0 Td (e1)Tj 0 Tc 1.503 0 Td [(0.1. )-524(The)]TJ -36.32 -1.222 Td [(function )-125(should )-125(consist )-125(of )-125(a )-125(single )-125(loop )-125(that )-125(iterates )-125(once )-125(for )-125(every )-125(signal )-125(in )-125(the )-125(curr)25(ent)]TJ T* (signal mask \(not once for every possible signal\).)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47004 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.22)]TJ 30.61 0 Td [(Signal )-250(Names )-250(and )-250(Numbers)]TJ /T1_1 1 Tf 15.223 0 Td (379)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(should )-93(be )-93(set )-93(to)]TJ /TT0 1 Tf 7.563 0 Td (SIG_IGN)Tj /T1_0 1 Tf 0.5932 Tc (.I)Tj 0.3432 Tc 5.38 0 Td (nf)Tj 0 Tc 1.258 0 Td [(act, )-93(the )-93(shell )-93(doesn\325t )-93(explicitly )-93(ignor)]TJ 0.3431 Tc 16.373 0 Td (et)Tj 0 Tc 1.148 0 Td [(his )-93(signal;)]TJ /TT0 1 Tf 4.877 0 Td (init)Tj /T1_0 1 Tf -36.6 -1.2 Td [(sets )-42(the )-42(disposition )-42(of )-42(the )-42(thr)18(ee )-42(job-contr)18(ol )-42(signals )-42(\()]TJ /TT0 1 Tf 22.998 0 Td (SIGTSTP)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.742 0 Td (SIGTTIN)Tj /T1_0 1 Tf 0.2921 Tc (,a)Tj 0 Tc 5.242 0 Td (nd)Tj /TT0 1 Tf 1.485 0 Td (SIGTTOU)Tj /T1_0 1 Tf (\))Tj -34.467 -1.2 Td (to)Tj /TT0 1 Tf 1.251 0 Td (SIG_IGN)Tj /T1_0 1 Tf 0.6288 Tc (.T)Tj 0 Tc 5.692 0 Td [(his )-129(disposition )-129(is )-129(then )-129(inherited )-129(by )-129(all )-129(login )-129(shells.)-627(Only )-129(a )-129(job-contr)19(ol)]TJ -6.943 -1.2 Td [(shell should r)18(eset the disposition of these thr)18(ee signals to)]TJ /TT0 1 Tf 25.381 0 Td (SIG_DFL)Tj /T1_0 1 Tf (.)Tj -23.581 -1.2 Td [(When )-65(we )-65(type )-65(the )-65(suspend )-65(character)]TJ 0.3155 Tc 16.597 0 Td (,t)Tj 0 Tc 0.891 0 Td [(he )-65(pr)18(ocess )-65(r)18(eceives )-65(the)]TJ /TT0 1 Tf 10.543 0 Td (SIGTSTP)Tj /T1_0 1 Tf 4.516 0 Td [(signal )-65(and)]TJ -34.347 -1.2 Td [(the )-352(signal )-352(handler )-352(is )-352(invoked.)-852(At )-352(this )-352(point, )-352(we )-352(would )-352(do )-352(any )-352(terminal-r)17(elated)]TJ 0 -1.2 TD [(pr)18(ocessing: )-75(move )-75(the )-75(cursor )-75(to )-75(the )-75(lower)18(-left )-75(corner)]TJ 0.3246 Tc 23.228 0 Td (,r)Tj 0 Tc 0.952 0 Td (estor)Tj 0.3246 Tc 2.152 0 Td (et)Tj 0 Tc 1.13 0 Td [(he )-75(terminal )-75(mode, )-75(and )-75(so)]TJ -27.461 -1.2 Td [(on. )-291(W)]TJ 0.2909 Tc 2.827 0 Td (et)Tj 0 Tc 1.096 0 Td [(hen )-41(send )-41(ourself )-41(the )-41(same )-41(signal,)]TJ /TT0 1 Tf 15.122 0 Td (SIGTSTP)Tj /T1_0 1 Tf 0.2908 Tc (,a)Tj 0 Tc 5.241 0 Td [(fter )-41(r)18(esetting )-41(its )-41(disposition )-41(to )-41(its)]TJ -24.286 -1.2 Td [(default )-46(\(stop )-46(the )-46(pr)18(ocess\) )-46(and )-46(unblocking )-46(the )-46(signal.)]TJ -0.092 Tc 23.982 0 Td [(We )-230(h)]TJ 0 Tc 2.265 0 Td [(ave )-46(to )-46(unblock )-46(it )-46(since )-46(we\325r)20(e)]TJ -26.246 -1.2 Td [(curr)18(ently )-132(handling )-132(that )-132(same )-132(signal, )-132(and )-132(the )-132(system )-132(blocks )-132(it )-132(automatically )-132(while )-132(it\325s)]TJ T* [(being )-71(caught.)-571(At )-71(this )-71(point, )-71(the )-71(system )-71(stops )-71(the )-71(pr)20(ocess. )-321(It)-321(is )-71(continued )-71(only )-71(when )-71(it)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(ceives )-7(\(usually )-7(fr)18(om )-7(the )-7(job-contr)18(ol )-7(shell, )-7(in )-7(r)18(esponse )-7(to )-7(an )-7(interactive)]TJ /TT0 1 Tf 31.148 0 Td (fg)Tj /T1_0 1 Tf 1.457 0 Td [(command\) )-7(a)]TJ /TT0 1 Tf -33.461 -1.2 Td (SIGCONT)Tj /T1_0 1 Tf 4.612 0 Td [(signal. )-412(W)]TJ 0.4116 Tc 4.464 0 Td (ed)Tj 0 Tc 1.502 0 Td [(on\325t )-162(catch)]TJ /TT0 1 Tf 4.851 0 Td (SIGCONT)Tj /T1_0 1 Tf 0.6617 Tc (.I)Tj 0 Tc 5.449 0 Td [(ts )-162(default )-162(disposition )-162(is )-162(to )-162(continue )-162(the)]TJ -20.877 -1.2 Td [(stopped )-42(pr)18(ocess; )-42(when )-42(this )-42(happens, )-42(the )-42(pr)18(ogram )-42(continues )-42(as )-42(though )-42(it )-42(r)22(eturned )-41(fr)18(om)]TJ -0 -1.2 Td (the)Tj /TT0 1 Tf 1.795 0 Td (kill)Tj /T1_0 1 Tf 2.808 0 Td [(function. )-408(When)-409(the )-158(pr)18(ogram )-158(is )-158(continued, )-158(we )-158(r)18(eset )-158(the )-158(disposition )-158(for )-158(the)]TJ /TT0 1 Tf -4.604 -1.2 Td (SIGTSTP)Tj /T1_0 1 Tf 4.566 0 Td [(signal )-116(and )-116(do )-116(whatever )-116(terminal )-116(pr)16(ocessing )-116(we )-116(want )-116(\(we )-116(could )-116(r)18(edraw )-116(the)]TJ -4.566 -1.2 Td [(scr)18(een, for example\).)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4770.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9986 0 0 11.9986 93.5888 440.9471 Tm [(10.22 )-220(Signal)-556(Names )-278(and )-278(Number)15(s)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 416.95 Tm [(In )-175(this )-175(section, )-175(we )-175(describe )-175(how )-175(to )-175(map )-175(between )-175(signal )-175(numbers )-175(and )-175(names.)-670(Some)]TJ T* [(systems pr)18(ovide the array)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 388.2534 Tm (extern char *sys_siglist[];)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 370.2556 Tm [(The )-103(array )-103(index )-103(is )-103(the )-103(signal )-103(number)]TJ 0.3535 Tc 16.786 0 Td (,g)Tj 0 Tc 1.159 0 Td [(iving )-103(a )-103(pointer )-103(to )-103(the )-103(character )-103(string )-103(name )-103(of)]TJ -17.946 -1.2 Td (the signal.)Tj 7.999 0 0 7.999 183.5779 338.2594 Tm [(Fr)18(eeBSD )-9(8.0, )-9(Linux )-9(3.2.0, )-9(and )-9(Mac )-9(OS )-9(X )-9(10.6.8 )-9(all )-9(pr)18(ovide )-9(this )-9(array )-9(of )-9(signal )-9(names.)-509(Solaris )-9(10)]TJ 0 -1.25 TD (does, too, but it uses the name)Tj /TT0 1 Tf 13.588 0 Td (_sys_siglist)Tj /T1_0 1 Tf 7.45 0 Td (instead.)Tj -0.092 Tc 9.9988 0 0 9.9988 147.5822 308.263 Tm [(To )-188(p)]TJ 0 Tc 1.922 0 Td [(rint )-4(the )-4(character )-4(string )-4(corr)18(esponding )-4(to )-4(a )-4(signal )-4(number )-4(in )-4(a )-4(portable )-4(manner)70(,)]TJ -3.722 -1.2 Td (we can use the)Tj /TT0 1 Tf 6.732 0 Td (psignal)Tj /T1_0 1 Tf 4.45 0 Td (function.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5822 278.3666 Tm (#include )Tj 0 -1.902 TD (void psignal\(int)Tj /T1_2 1 Tf 10.2 0 Td (signo)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.967 0 Td (onst char *)Tj /T1_2 1 Tf (msg)Tj /TT0 1 Tf (\);)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2568.25 cm 0 0 m 0 306 l 3900 306 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 242.0364 Tm [(The )-177(string)]TJ /T1_2 1 Tf 5.103 0 Td (msg)Tj /T1_0 1 Tf 2.094 0 Td [(\(which )-177(normally )-177(includes )-177(the )-177(name )-177(of )-177(the )-177(pr)15(ogram\) )-177(is )-177(output )-177(to )-177(the)]TJ -7.197 -1.2 Td (standar)Tj 0.278 Tc 3.32 0 Td (de)Tj 0 Tc 1.368 0 Td [(rr)18(or)]TJ 0.278 Tc 1.639 0 Td (,f)Tj 0 Tc 0.861 0 Td [(ollowed )-28(by )-28(a )-28(colon )-28(and )-28(a )-28(space, )-28(followed )-28(by )-28(a )-28(description )-28(of )-28(the )-28(signal,)]TJ -7.188 -1.2 Td [(followed )-229(by )-229(a )-229(newline.)-731(If)]TJ /T1_2 1 Tf 12.645 0 Td (msg)Tj /T1_0 1 Tf 2.146 0 Td (is)Tj /TT0 1 Tf 1.194 0 Td (NULL)Tj /T1_0 1 Tf 0.4795 Tc (,t)Tj 0 Tc 3.456 0 Td [(hen )-229(only )-229(the )-229(description )-229(is )-229(written )-229(to )-229(the)]TJ -19.442 -1.2 Td (standar)Tj 0.25 Tc 3.32 0 Td (de)Tj 0 Tc 1.34 0 Td [(rr)18(or)]TJ 0.5 Tc 1.639 0 Td (.T)Tj 0 Tc 1.363 0 Td (his function is similar to)Tj /TT0 1 Tf 10.916 0 Td (perror)Tj /T1_0 1 Tf 3.85 0 Td (\(Section 1.7\).)Tj -20.628 -1.2 Td [(If )-151(you )-151(have )-151(a)]TJ /TT0 1 Tf 6.606 0 Td (siginfo)Tj /T1_0 1 Tf 4.601 0 Td [(str)8(uctur)]TJ 0.4014 Tc 3.49 0 Td (ef)Tj -0.018 Tc 1.213 0 Td (ro)Tj 0 Tc 0.923 0 Td [(m)-401(an)-401(a)-1(lternative)]TJ /TT0 1 Tf 7.903 0 Td (sigaction)Tj /T1_0 1 Tf 5.801 0 Td [(signal )-151(handler)74(,)]TJ -32.339 -1.2 Td (you can print the signal information with the)Tj /TT0 1 Tf 20.152 0 Td (psiginfo)Tj /T1_0 1 Tf 5.05 0 Td (function.)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.5736 164.1504 Tm (#include )Tj T* (void psiginfo\(const siginfo_t *)Tj /T1_2 1 Tf (info)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 21.956 0 Td (onst char *)Tj /T1_2 1 Tf (msg)Tj /TT0 1 Tf (\);)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1425.25 cm 0 0 m 0 307 l 3900 307 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47005 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (376)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm (10.20)Tj /TT1 1 Tf 3 0 Td (sigqueue)Tj /TT0 1 Tf 5.356 0 Td (Function)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 647.3612 Tm [(In )-24(Section )-24(10.8 )-24(we )-24(said )-24(that )-24(most )-24(UNIX )-24(systems )-24(don\325t )-24(queue )-24(signals.)]TJ -0.055 Tc 30.962 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-24(the )-24(r)18(eal-time)]TJ -32.198 -1.2 Td [(extensions )-46(to )-46(POSIX.1, )-46(some )-46(systems )-46(began )-46(adding )-46(support )-46(for )-46(queueing )-46(signals.)]TJ -0.055 Tc 36.856 0 Td (Wi)Tj 0 Tc 1.236 0 Td (th)Tj -38.092 -1.2 Td [(SUSv4, )-70(the )-70(queued )-70(signal )-70(functionality )-70(has )-70(moved )-70(fr)20(om )-70(the )-70(r)18(eal-time )-70(extensions )-70(to )-70(the)]TJ 0 -1.2 TD (base speci\336cation.)Tj 1.8 -1.2 Td [(Generally )-164(a )-164(signal )-164(carries )-164(one )-164(bit )-164(of )-164(information: )-164(the )-164(signal )-164(itself.)-668(In )-164(addition )-164(to)]TJ -1.8 -1.2 Td [(queueing )-137(signals, )-137(these )-137(extensions )-137(allow )-137(applications )-137(to )-137(pass )-137(mor)]TJ 0.3875 Tc 29.996 0 Td (ei)Tj 0 Tc 1.157 0 Td [(nformation )-137(along)]TJ -31.153 -1.2 Td [(with )-145(the )-145(delivery )-145(\(r)18(ecall )-145(Section )-145(10.14\).)-647(This )-145(information )-145(is )-145(embedded )-145(in )-145(a)]TJ /TT2 1 Tf 34.8 0 Td (siginfo)Tj /T1_1 1 Tf -34.8 -1.2 Td [(str)8(uctur)18(e. )-271(Along)-271(with )-21(system-pr)18(ovided )-21(information, )-21(applications )-21(can )-21(pass )-21(an )-21(integer )-21(or)]TJ 0.25 Tc T* (ap)Tj 0 Tc 1.351 0 Td [(ointer to a buf)18(fer containing mor)]TJ 0.25 Tc 14.425 0 Td (ei)Tj 0 Tc 1.02 0 Td [(nformation to the signal handler)74(.)]TJ -0.092 Tc -14.996 -1.2 Td [(To )-184(u)]TJ 0 Tc 1.92 0 Td (se queued signals we have to do the following:)Tj -1.92 -1.8 Td [(1. )-633(Specify)-579(the)]TJ /TT2 1 Tf 7.406 0 Td (SA_SIGINFO)Tj /T1_1 1 Tf 6.579 0 Td [(\337ag )-329(when )-329(we )-329(install )-329(a )-329(signal )-329(handler )-329(using )-329(the)]TJ /TT2 1 Tf -12.352 -1.2 Td (sigaction)Tj /T1_1 1 Tf 5.668 0 Td [(function. )-268(If)-267(we )-18(don\325t )-18(specify )-18(this )-18(\337ag, )-18(the )-18(signal )-18(will )-18(be )-18(posted, )-18(but)]TJ -5.668 -1.2 Td (it is left up to the implementation whether the signal is queued.)Tj -1.633 -1.6 Td [(2. )-633(Pr)18(ovide )-221(a )-221(signal )-221(handler )-221(in )-221(the)]TJ /TT2 1 Tf 16.777 0 Td (sa_sigaction)Tj /T1_1 1 Tf 7.671 0 Td [(member )-221(of )-221(the)]TJ /TT2 1 Tf 7.352 0 Td (sigaction)Tj /T1_1 1 Tf -30.167 -1.2 Td [(str)8(uctur)]TJ 0.2875 Tc 3.49 0 Td (ei)Tj 0 Tc 1.058 0 Td [(nstead )-37(of )-37(using )-37(the )-37(usual)]TJ /TT2 1 Tf 11.503 0 Td (sa_handler)Tj /T1_1 1 Tf 6.288 0 Td [(\336eld. )-288(Implementations)-287(might)]TJ -22.338 -1.2 Td [(allow )-56(us )-56(to )-56(use )-56(the)]TJ /TT2 1 Tf 8.784 0 Td (sa_handler)Tj /T1_1 1 Tf 6.306 0 Td [(\336eld, )-56(but )-56(we )-56(won\325t )-56(be )-56(able )-56(to )-56(obtain )-56(the )-56(extra)]TJ -15.089 -1.2 Td (information sent with the)Tj /TT2 1 Tf 11.506 0 Td (sigqueue)Tj /T1_1 1 Tf 5.05 0 Td (function.)Tj -18.189 -1.6 Td [(3. )-633(Use)-250(the)]TJ /TT2 1 Tf 5.201 0 Td (sigqueue)Tj /T1_1 1 Tf 5.05 0 Td (function to send signals.)Tj /TT2 1 Tf 8.9995 0 0 8.9995 147.5918 406.6756 Tm (#include )Tj 0 -1.783 TD (int sigqueue\(pid_t)Tj /T1_2 1 Tf 11.4 0 Td (pid)Tj /TT2 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.078 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (signo)Tj /TT2 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.967 0 Td (onst union sigval)Tj /T1_2 1 Tf 10.8 0 Td (value)Tj /TT2 1 Tf (\))Tj /T1_1 1 Tf -4.194 -1.783 Td (Returns: 0 if OK,)Tj /TT3 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3701.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 357.7571 Tm (The)Tj /TT2 1 Tf 2.076 0 Td (sigqueue)Tj /T1_1 1 Tf 5.201 0 Td [(function )-151(is )-151(similar )-151(to )-151(the)]TJ /TT2 1 Tf 11.764 0 Td (kill)Tj /T1_1 1 Tf 2.801 0 Td [(function, )-152(except )-152(that )-152(we )-152(can )-152(only)]TJ -23.642 -1.2 Td [(dir)18(ect )-34(signals )-34(to )-34(a )-34(single )-34(pr)18(ocess )-34(with)]TJ /TT2 1 Tf 16.908 0 Td (sigqueue)Tj /T1_1 1 Tf 0.2841 Tc (,a)Tj 0 Tc 5.834 0 Td [(nd )-34(we )-34(can )-34(use )-34(the)]TJ /T1_2 1 Tf 8.345 0 Td (value)Tj /T1_1 1 Tf 2.451 0 Td [(ar)18(gument )-34(to)]TJ -33.538 -1.2 Td [(transmit either an integer or a pointer value to the signal handler)74(.)]TJ 1.8 -1.2 Td [(Signals )-73(can\325t )-73(be )-73(queued )-73(in\336nitely)]TJ 0.5726 Tc 14.848 0 Td (.R)Tj 0 Tc 1.491 0 Td [(ecall )-73(the)]TJ /TT2 1 Tf 4.037 0 Td (SIGQUEUE_MAX)Tj /T1_1 1 Tf 7.523 0 Td [(limit )-73(fr)18(om )-73(Figur)]TJ 0.3227 Tc 7.249 0 Td (e2)Tj 0 Tc 1.302 0 Td (.9)Tj -38.25 -1.2 Td [(and )-221(Figur)]TJ 0.4708 Tc 4.547 0 Td (e2)Tj 0 Tc 1.45 0 Td [(.1)55(1. )-471(When)-470(this )-221(limit )-221(is )-221(r)19(eached,)]TJ /TT2 1 Tf 15.304 0 Td (sigqueue)Tj /T1_1 1 Tf 5.271 0 Td [(can )-221(fail )-221(with)]TJ /TT2 1 Tf 6.386 0 Td (errno)Tj /T1_1 1 Tf 3.471 0 Td [(set )-221(to)]TJ /TT2 1 Tf -36.428 -1.2 Td (EAGAIN)Tj /T1_1 1 Tf (.)Tj -0.055 Tc 1.8 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-16(the )-16(r)18(eal-time )-16(signal )-16(enhancements, )-16(a )-16(separate )-16(set )-16(of )-16(signals )-16(was )-16(intr)18(oduced )-16(for)]TJ -3.036 -1.2 Td [(application )-236(use.)-736(These )-236(ar)]TJ 0.4863 Tc 11.892 0 Td (et)Tj 0 Tc 1.291 0 Td [(he )-236(signal )-236(numbers )-236(between)]TJ /TT2 1 Tf 13.301 0 Td (SIGRTMIN)Tj /T1_1 1 Tf 5.286 0 Td (and)Tj /TT2 1 Tf 2.179 0 Td (SIGRTMAX)Tj /T1_1 1 Tf (,)Tj -33.95 -1.2 Td [(inclusive. )-250(Be)-250(awar)]TJ 0.25 Tc 8.271 0 Td (et)Tj 0 Tc 1.055 0 Td [(hat the default action for these signals is to terminate the pr)18(ocess.)]TJ -7.526 -1.2 Td (Figur)Tj 0.4876 Tc 2.383 0 Td (e1)Tj 0 Tc 1.467 0 Td [(0.30 )-238(summarizes )-238(the )-238(way )-238(queued )-238(signals )-238(dif)20(fer )-238(in )-238(behavior )-238(among )-238(the)]TJ -5.65 -1 Td [(implementations cover)18(ed in this text.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 2258.25 cm 0 0 m 3906 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 394.193 217.7608 Tm [(Fr)18(eeBSD )-250(Linux )-250(Mac)-250(OS X)-500(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-1827(3.2.0)-1735(10.6.8 )-2170(10)]TJ -21.893 0.625 Td (Behavior)Tj 17.362 0 Td (SUS)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 2038.25 cm 0 0 m 3906 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 2018.25 cm 0 0 m 3906 0 l S Q Q BT /T1_1 1 Tf 3.636 Tc 7.9981 0 0 7.9981 373.0185 193.7535 Tm (\245\245)Tj 7.5495 Tc 7.944 0 Td (\245\245)Tj 0 Tc -37.883 0 Td (supports)Tj /TT2 1 Tf 4.17 0 Td (sigqueue)Tj /T1_1 1 Tf 24.23 -1.562 Td [(optional )-1847(\245)]TJ 17.638 0 Td (\245)Tj -46.038 0 Td (queues other signals besides)Tj /TT2 1 Tf 12.805 0 Td (SIGRTMIN)Tj /T1_1 1 Tf 5.05 0 Td (to)Tj /TT2 1 Tf 1.122 0 Td (SIGRTMAX)Tj /T1_1 1 Tf 9.423 -1.562 Td [(optional )-1847(\245)-3096(\245)]TJ -28.4 0 Td (queues signals even if the caller doesn\325t use the)Tj /TT2 1 Tf 21.121 0 Td (SA_SIGINFO)Tj /T1_1 1 Tf -18.871 -1.25 Td (\337ag)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 1548.25 cm 0 0 m 3906 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3922.25 1548.25 cm 0 0 m 0 710 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3588.25 1548.25 cm 0 0 m 0 710 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5202.25 1548.25 cm 0 0 m 0 710 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 1548.25 cm 0 0 m 0 710 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 213.7479 136.759 Tm (Figure 10.30)Tj /T1_1 1 Tf 6.195 0 Td (Behavior of queued signals on various platforms)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47006 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.19)]TJ /TT0 1 Tf 17.886 0 Td (sleep)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.75 0 Td (nanosleep)Tj /T1_0 1 Tf 0.5 Tc (,a)Tj 0 Tc 6.65 0 Td (nd)Tj /TT0 1 Tf 1.693 0 Td (clock_nanosleep)Tj /T1_0 1 Tf 9.5 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (373)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT1 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm (10.19)Tj /TT2 1 Tf 3 0 Td (sleep)Tj /TT1 1 Tf (,)Tj /TT2 1 Tf 3.834 0 Td (nanosleep)Tj /TT1 1 Tf 0.556 Tc (,a)Tj 0 Tc 6.79 0 Td (nd)Tj /TT2 1 Tf 1.778 0 Td (clock_nanosleep)Tj /TT1 1 Tf 9.556 0 Td (Functions)Tj /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.592 644.9613 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ve )-183(used )-183(the)]TJ /TT0 1 Tf 6.126 0 Td (sleep)Tj /T1_0 1 Tf 3.433 0 Td [(function )-183(in )-183(numer)18(ous )-183(examples )-183(thr)18(oughout )-183(the )-183(text, )-183(and )-183(we)]TJ -10.947 -1.2 Td [(showed two \337awed implementations of it in Figur)18(es 10.7 and 10.8.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 616.263 Tm (#include )Tj 0 -1.783 TD (unsigned int sleep\(unsigned int)Tj /T1_2 1 Tf 19.2 0 Td (seconds)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 2.275 -1.783 Td (Returns: 0 or number of unslept seconds)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5797.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 566.1321 Tm [(This function causes the calling pr)18(ocess to be suspended until either)]TJ 1.8 -2.04 Td [(1. )-633(The)-250(amount of wall clock time speci\336ed by)]TJ /T1_2 1 Tf 20.845 0 Td (seconds)Tj /T1_0 1 Tf 3.324 0 Td (has elapsed.)Tj -24.169 -1.6 Td [(2. )-633(A)-250(signal is caught by the pr)18(ocess and the signal handler r)18(eturns.)]TJ -1.8 -2.04 Td [(As )-149(with )-149(an)]TJ /TT0 1 Tf 5.513 0 Td (alarm)Tj /T1_0 1 Tf 3.399 0 Td [(signal, )-149(the )-149(actual )-149(r)19(eturn )-149(may )-149(occur )-149(at )-149(a )-149(time )-149(later )-149(than )-149(r)20(equested)]TJ -8.912 -1.2 Td [(because of other system activity)111(.)]TJ 1.8 -1.2 Td [(In )-83(case )-83(1, )-83(the )-83(r)18(eturn )-83(value )-83(is )-83(0.)-583(When)]TJ /TT0 1 Tf 17.458 0 Td (sleep)Tj /T1_0 1 Tf -0.018 Tc 3.333 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-83(early )-83(because )-83(of )-83(some )-83(signal)]TJ -23.447 -1.2 Td [(being )-59(caught )-59(\(case )-59(2\), )-59(the )-59(r)18(eturn )-59(value )-59(is )-59(the )-59(number )-59(of )-59(unslept )-59(seconds )-59(\(the )-59(r)16(equested)]TJ 0 -1.2 TD (time minus the actual time slept\).)Tj 1.8 -1.2 Td (Although)Tj /TT0 1 Tf 4.57 0 Td (sleep)Tj /T1_0 1 Tf 3.306 0 Td [(can )-56(be )-56(implemented )-56(with )-56(the)]TJ /TT0 1 Tf 13.412 0 Td (alarm)Tj /T1_0 1 Tf 3.306 0 Td [(function )-56(\(Section )-56(10.10\), )-56(this)]TJ -26.394 -1.2 Td [(isn\325t )-150(r)18(equir)18(ed. )-400(If)]TJ /TT0 1 Tf 8.048 0 Td (alarm)Tj /T1_0 1 Tf 3.4 0 Td [(is )-150(used, )-150(however)]TJ 0.4002 Tc 7.688 0 Td (,t)Tj 0 Tc 0.976 0 Td (her)Tj 0.4002 Tc 1.438 0 Td (ec)Tj 0 Tc 1.323 0 Td [(an )-150(be )-150(interactions )-150(between )-150(the )-150(two)]TJ -22.874 -1.2 Td [(functions. )-268(The)-269(POSIX.1 )-18(standar)]TJ 0.2684 Tc 14.099 0 Td (dl)Tj 0 Tc 1.17 0 Td [(eaves )-18(all )-18(these )-18(interactions )-18(unspeci\336ed.)-518(For )-18(example,)]TJ -15.27 -1.2 Td [(if )-41(we )-41(do )-41(an)]TJ /TT0 1 Tf 5.342 0 Td (alarm\(10\))Tj /T1_0 1 Tf 5.691 0 Td [(and )-41(3 )-41(wall )-41(clock )-41(seconds )-41(later )-41(do )-41(a)]TJ /TT0 1 Tf 15.879 0 Td (sleep\(5\))Tj /T1_0 1 Tf 0.2914 Tc (,w)Tj 0 Tc 6.175 0 Td [(hat )-41(happens?)]TJ -33.088 -1.2 Td (The)Tj /TT0 1 Tf 1.952 0 Td (sleep)Tj /T1_0 1 Tf 3.278 0 Td [(will )-28(r)18(eturn )-28(in )-28(5 )-28(seconds )-28(\(assuming )-28(that )-28(some )-28(other )-28(signal )-28(isn\325t )-28(caught )-28(in )-28(the)]TJ -5.23 -1.2 Td [(interim\), )-31(but )-31(will )-31(another)]TJ /TT0 1 Tf 11.554 0 Td (SIGALRM)Tj /T1_0 1 Tf 4.481 0 Td [(be )-31(generated )-31(2 )-31(seconds )-31(later?)-531(These )-31(details )-31(depend)]TJ -16.035 -1.2 Td (on the implementation.)Tj 7.999 0 0 7.999 183.5778 357.3571 Tm [(Fr)18(eeBSD )-315(8.0, )-315(Linux )-315(3.2.0, )-315(Mac )-315(OS )-315(X )-315(10.6.8, )-315(and )-315(Solaris )-315(10 )-315(implement)]TJ /TT0 1 Tf 34.028 0 Td (sleep)Tj /T1_0 1 Tf 3.565 0 Td [(using )-315(the)]TJ /TT0 1 Tf -37.592 -1.25 Td (nanosleep)Tj /T1_0 1 Tf 5.735 0 Td [(function, )-85(which )-85(allows )-85(the )-85(implementation )-85(to )-85(be )-85(independent )-85(of )-85(signals )-85(and )-85(the)]TJ -5.735 -1.25 Td [(alarm )-90(timer)]TJ 0.5896 Tc 5.209 0 Td (.F)Tj 0 Tc 1.396 0 Td [(or )-90(portability)]TJ 0.3396 Tc 5.846 0 Td (,y)Tj 0 Tc 1.146 0 Td [(ou )-90(shouldn\325t )-90(make )-90(any )-90(assumptions )-90(about )-90(the )-90(implementation)]TJ -13.596 -1.25 Td (of)Tj /TT0 1 Tf 1.324 0 Td (sleep)Tj /T1_0 1 Tf 0.4449 Tc (,b)Tj 0 Tc 4.248 0 Td [(ut )-195(if )-195(you )-195(have )-195(any )-195(intentions )-195(of )-195(mixing )-195(calls )-195(to)]TJ /TT0 1 Tf 22.72 0 Td (sleep)Tj /T1_0 1 Tf 3.445 0 Td [(with )-195(any )-195(other )-195(timing)]TJ -31.737 -1.25 Td [(functions, you need to be awar)18(e)-250(of)-250(possible interactions.)]TJ /TT1 1 Tf 9.9988 0 0 9.9988 93.5891 290.3652 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.16 Td (Figur)Tj 0.2885 Tc 2.383 0 Td (e1)Tj 0 Tc 1.268 0 Td [(0.29 )-38(shows )-38(an )-38(implementation )-38(of )-38(the )-38(POSIX.1)]TJ /TT0 1 Tf 20.657 0 Td (sleep)Tj /T1_0 1 Tf 3.289 0 Td [(function. )-288(This)-289(function )-38(is)]TJ 0.2517 Tc -27.596 -1.2 Td (am)Tj 0 Tc 1.635 0 Td [(odi\336cation )-2(of )-2(Figur)]TJ 0.2517 Tc 8.507 0 Td (e1)Tj 0 Tc 1.231 0 Td [(0.7, )-2(which )-2(handles )-2(signals )-2(r)19(eliably)]TJ 0.2518 Tc 15.004 0 Td (,a)Tj 0 Tc 1.002 0 Td [(voiding )-2(the )-2(race )-2(condition)]TJ -27.378 -1.2 Td [(in )-91(the )-91(earlier )-91(implementation.)]TJ -0.092 Tc 14.015 0 Td [(We )-275(s)]TJ 0 Tc 2.152 0 Td [(till )-91(do )-91(not )-91(handle )-91(any )-91(interactions )-91(with )-91(pr)17(eviously)]TJ -16.167 -1.2 Td [(set alarms.)-500(\(As we mentioned, these interactions ar)]TJ 0.25 Tc 22.702 0 Td (ee)Tj 0 Tc 1.208 0 Td (xplicitly unde\336ned by POSIX.1.\))Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2256.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 216.0601 Tm (#include "apue.h")Tj 0 -1.783 TD (static void)Tj 0 -1.189 TD (sig_alrm\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td (/* nothing to do, just returning wakes up sigsuspend\(\) */)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (unsigned int)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47007 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.18)]TJ /TT0 1 Tf 35.803 0 Td (system)Tj /T1_0 1 Tf 4.1 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (367)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(We )-290(\336)]TJ 0 Tc 2.348 0 Td [(rst )-106(see )-106(whether )-106(the )-106(default )-106(action )-106(will )-106(occur; )-106(if )-106(so, )-106(we )-106(\337ush )-106(all )-106(the )-106(standar)]TJ 0.3558 Tc 33.956 0 Td (dI)Tj 0 Tc 1.304 0 Td (/O)Tj -37.608 -1.2 Td [(str)18(eams. )-329(This)-328(is )-79(not )-79(equivalent )-79(to )-79(calling)]TJ /TT0 1 Tf 18.795 0 Td (fclose)Tj /T1_0 1 Tf 3.929 0 Td [(on )-79(all )-79(the )-79(open )-79(str)18(eams )-79(\(since )-79(it )-79(just)]TJ -22.724 -1.2 Td [(\337ushes )-215(them )-215(and )-215(doesn\325t )-215(close )-215(them\), )-215(but )-215(when )-215(the )-215(pr)18(ocess )-215(terminates, )-215(the )-215(system)]TJ 0 -1.2 TD [(closes )-223(all )-223(open )-223(\336les.)-723(If )-223(the )-223(pr)19(ocess )-223(catches )-223(the )-223(signal )-223(and )-223(r)18(eturns, )-223(we )-223(\337ush )-223(all )-223(the)]TJ T* [(str)18(eams )-27(again, )-27(since )-27(the )-27(pr)18(ocess )-27(could )-27(have )-27(generated )-27(mor)]TJ 0.2766 Tc 26.042 0 Td (eo)Tj 0 Tc 1.302 0 Td [(utput. )-277(The)-276(only )-27(condition)]TJ -27.343 -1.2 Td [(we )-157(don\325t )-157(handle )-157(is )-157(the )-157(case )-157(wher)]TJ 0.4069 Tc 15.363 0 Td (et)Tj 0 Tc 1.212 0 Td [(he )-157(pr)18(ocess )-157(catches )-157(the )-157(signal )-157(and )-157(calls)]TJ /TT0 1 Tf 18.077 0 Td (_exit)Tj /T1_0 1 Tf 3.407 0 Td (or)Tj /TT0 1 Tf -38.059 -1.2 Td (_Exit)Tj /T1_0 1 Tf 0.5395 Tc (.I)Tj 0.2895 Tc 4.126 0 Td (nt)Tj 0 Tc 1.197 0 Td [(his )-39(case, )-39(any )-39(un\337ushed )-39(standar)]TJ 0.2895 Tc 14.002 0 Td (dI)Tj 0 Tc 1.237 0 Td [(/O )-39(buf)18(fers )-39(in )-39(memory )-39(ar)]TJ 0.2894 Tc 11.144 0 Td (ed)Tj 0 Tc 1.379 0 Td [(iscar)18(ded. )-289(W)92(e)]TJ -33.087 -1.2 Td [(assume that a caller that does this doesn\325t want the buf)18(fers \337ushed.)]TJ 1.8 -1.2 Td [(Recall )-7(fr)18(om )-7(Section )-7(10.9 )-7(that )-7(if )-7(calling)]TJ /TT0 1 Tf 16.867 0 Td (kill)Tj /T1_0 1 Tf 2.657 0 Td [(causes )-7(the )-7(signal )-7(to )-7(be )-7(generated )-7(for )-7(the)]TJ -21.324 -1.2 Td (caller)Tj 0.3803 Tc 2.326 0 Td (,a)Tj 0 Tc 1.13 0 Td [(nd )-130(if )-130(the )-130(signal )-130(is )-130(not )-130(blocked )-130(\(which )-130(we )-130(guarantee )-130(in )-130(Figur)]TJ 0.3802 Tc 27.735 0 Td (e1)Tj 0 Tc 1.359 0 Td [(0.25\), )-130(then )-130(the)]TJ -32.551 -1.2 Td [(signal )-39(\(or )-39(some )-39(other )-39(pending, )-39(unlocked )-39(signal\) )-39(is )-39(deliver)18(ed )-39(to )-39(the )-39(pr)18(ocess )-39(befor)13(e)]TJ /TT0 1 Tf 36.6 0 Td (kill)Tj /T1_0 1 Tf -0.018 Tc -36.6 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns. )-450(W)]TJ 0.4499 Tc 4.188 0 Td (eb)Tj 0 Tc 1.482 0 Td [(lock )-200(all )-200(signals )-200(except)]TJ /TT0 1 Tf 10.632 0 Td (SIGABRT)Tj /T1_0 1 Tf [(,)-450(so)-450(we)-450(know )-200(that )-200(if )-200(the )-200(call )-200(to)]TJ /TT0 1 Tf 19.442 0 Td (kill)Tj /T1_0 1 Tf -0.018 Tc -36.6 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns, the pr)18(ocess caught the signal and the signal handler r)18(eturned.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5250.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9986 0 0 11.9986 93.5888 485.3418 Tm (10.18)Tj /TT2 1 Tf 3 0 Td (system)Tj /TT1 1 Tf 4.156 0 Td (Function)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 461.3446 Tm [(In )-111(Section )-111(8.13, )-111(we )-111(showed )-111(an )-111(implementation )-111(of )-111(the)]TJ /TT0 1 Tf 24.557 0 Td (system)Tj /T1_0 1 Tf 3.961 0 Td [(function. )-361(That)-361(version,)]TJ -28.518 -1.2 Td (however)Tj 0.2515 Tc 3.806 0 Td (,d)Tj 0 Tc 1.112 0 Td [(id )-2(not )-2(do )-2(any )-2(signal )-2(handling.)-502(POSIX.1 )-2(r)21(equir)18(es )-2(that)]TJ /TT0 1 Tf 23.547 0 Td (system)Tj /T1_0 1 Tf 3.852 0 Td [(ignor)18(e)]TJ /TT0 1 Tf 3.083 0 Td (SIGINT)Tj /T1_0 1 Tf -35.4 -1.2 Td (and)Tj /TT0 1 Tf 1.971 0 Td (SIGQUIT)Tj /T1_0 1 Tf 4.479 0 Td [(and )-28(block)]TJ /TT0 1 Tf 4.64 0 Td (SIGCHLD)Tj /T1_0 1 Tf 0.5284 Tc (.B)Tj 0 Tc 5.589 0 Td (efor)Tj 0.2784 Tc 1.735 0 Td (es)Tj 0 Tc 1.181 0 Td [(howing )-28(a )-28(version )-28(that )-28(handles )-28(these )-28(signals)]TJ -19.596 -1.2 Td [(corr)18(ectly)]TJ 0.25 Tc 3.747 0 Td (,l)Tj 0 Tc 0.791 0 Td (et\325s see why we need to worry about signal handling.)Tj /TT1 1 Tf -8.138 -2.64 Td (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(The )-142(pr)18(ogram )-142(shown )-142(in )-142(Figur)]TJ 0.3916 Tc 13.322 0 Td (e1)Tj 0 Tc 1.371 0 Td [(0.26 )-142(uses )-142(the )-142(version )-142(of)]TJ /TT0 1 Tf 11.186 0 Td (system)Tj /T1_0 1 Tf 3.992 0 Td [(fr)18(om )-142(Section )-142(8.13 )-142(to)]TJ -29.871 -1.2 Td [(invoke )-14(the)]TJ /TT0 1 Tf 4.933 0 Td (ed)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.597 -0.04 Td (editor)Tj 0.5137 Tc 2.574 0 Td (.\()Tj 0 Tc 1.097 0 Td [(This )-14(editor )-14(has )-14(been )-14(part )-14(of )-14(UNIX )-14(systems )-14(for )-14(a )-14(long )-14(time.)]TJ -0.092 Tc 26.379 0 Td (We)Tj 0 Tc -37.613 -1.2 Td [(use )-232(it )-232(her)]TJ 0.4818 Tc 4.524 0 Td (eb)Tj 0 Tc 1.514 0 Td [(ecause )-232(it )-232(is )-232(an )-232(interactive )-232(pr)18(ogram )-232(that )-232(catches )-232(the )-232(interr)8(upt )-232(and )-232(quit)]TJ -6.038 -1.2 Td [(signals. )-403(If)-403(we )-153(invoke)]TJ /TT0 1 Tf 10.183 0 Td (ed)Tj /T1_0 1 Tf 1.603 0 Td [(fr)18(om )-153(a )-153(shell )-153(and )-153(type )-153(the )-153(interr)8(upt )-153(character)73(,)-403(it)-403(catches )-153(the)]TJ -11.786 -1.2 Td [(interr)8(upt )-4(signal )-4(and )-4(prints )-4(a )-4(question )-4(mark.)-508(The)]TJ /TT0 1 Tf 21.801 0 Td (ed)Tj /T1_0 1 Tf 1.455 0 Td [(pr)18(ogram )-5(also )-5(sets )-5(the )-5(disposition )-5(of)]TJ -23.256 -1.2 Td [(the )-54(quit )-54(signal )-54(so )-54(that )-54(it )-54(is )-54(ignor)20(ed.\) )-304(The)-303(pr)18(ogram )-54(in )-54(Figur)]TJ 0.3036 Tc 26.251 0 Td (e1)Tj 0 Tc 1.283 0 Td [(0.26 )-54(catches )-54(both)]TJ /TT0 1 Tf 7.867 0 Td (SIGINT)Tj /T1_0 1 Tf -35.4 -1.2 Td (and)Tj /TT0 1 Tf 1.943 0 Td (SIGCHLD)Tj /T1_0 1 Tf 0.5 Tc (.I)Tj 0 Tc 5.287 0 Td [(f)-250(we)-250(invoke the pr)18(ogram, we get)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5836 286.2656 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (./a.out)Tj -1.2 -1.189 Td (a)Tj /T1_2 1 Tf 16 0 Td (append text to the editor)Tj -0.055 Tc 9.813 0 Td [(\325s )-110(b)]TJ 0 Tc 1.325 0 Td (uffer)Tj /TT2 1 Tf -27.138 -1.189 Td (Here is one line of text)Tj 0 -1.189 TD (.)Tj /T1_2 1 Tf 16 0 Td (period on a line by itself stops append mode)Tj /TT2 1 Tf -16 -1.189 Td (1,$p)Tj /T1_2 1 Tf 16 0 Td [(print \336rst thr)18(ough last lines of buffer to see what\325)]TJ 0.25 Tc 19.724 0 Td (st)Tj 0 Tc 0.972 0 Td [(her)18(e)]TJ /TT0 1 Tf -36.696 -1.189 Td (Here is one line of text)Tj /TT2 1 Tf 0.6 Tc T* (wt)Tj 0 Tc 1.8 0 Td (emp.foo)Tj /T1_2 1 Tf 14.2 0 Td (write the buffer to a \336le)Tj /TT0 1 Tf -16 -1.189 Td (25)Tj /T1_2 1 Tf 16 0 Td [(editor says it wr)18(ote 25 bytes)]TJ /TT2 1 Tf -16 -1.189 Td (q)Tj /T1_2 1 Tf 16 0 Td (and leave the editor)Tj /TT0 1 Tf -16 -1.189 Td (caught SIGCHLD)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5859 171.9794 Tm [(When )-159(the )-159(editor )-159(terminates, )-159(the )-159(system )-159(sends )-159(the)]TJ /TT0 1 Tf 23.269 0 Td (SIGCHLD)Tj /T1_0 1 Tf 4.609 0 Td [(signal )-159(to )-159(the )-159(par)18(ent )-159(\(the)]TJ /TT0 1 Tf -27.877 -1.2 Td (a.out)Tj /T1_0 1 Tf 3.28 0 Td [(pr)18(ocess\). )-280(W)]TJ 0.2796 Tc 5.316 0 Td (ec)Tj 0 Tc 1.203 0 Td [(atch )-30(it )-30(and )-30(r)18(eturn )-30(fr)18(om )-30(the )-30(signal )-30(handler)]TJ 0.5295 Tc 18.417 0 Td (.B)Tj 0 Tc 1.391 0 Td [(ut )-29(if )-29(it )-29(is )-29(catching )-29(the)]TJ /TT0 1 Tf -29.606 -1.2 Td (SIGCHLD)Tj /T1_0 1 Tf 4.506 0 Td [(signal, )-55(the )-55(par)17(ent )-56(should )-56(be )-56(doing )-56(so )-56(because )-56(it )-56(has )-56(cr)18(eated )-56(its )-56(own )-56(childr)22(en,)]TJ -4.505 -1.2 Td [(so )-104(that )-104(it )-104(knows )-104(when )-104(its )-104(childr)18(en )-104(have )-104(terminated.)-608(The )-104(delivery )-104(of )-104(this )-104(signal )-104(in )-104(the)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47008 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.17)]TJ /TT0 1 Tf 36.403 0 Td (abort)Tj /T1_0 1 Tf 3.5 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (365)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(We )-429(t)]TJ 0 Tc 2.208 0 Td [(est )-245(each )-245(of )-245(the )-245(global )-245(\337ags )-245(befor)]TJ 0.4951 Tc 15.584 0 Td (ec)Tj 0 Tc 1.418 0 Td (alling)Tj /TT0 1 Tf 3.006 0 Td (read)Tj /T1_0 1 Tf 2.895 0 Td [(and )-245(again )-245(if)]TJ /TT0 1 Tf 6.231 0 Td (read)Tj /T1_0 1 Tf -0.018 Tc 2.895 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-245(an)]TJ -35.093 -1.2 Td [(interr)8(upted )-39(system )-39(call )-39(err)18(or)]TJ 0.5391 Tc 12.683 0 Td (.T)Tj 0 Tc 1.402 0 Td [(he )-39(pr)18(oblem )-39(occurs )-39(if )-39(either )-39(signal )-39(is )-39(caught )-39(between )-39(the)]TJ -14.085 -1.2 Td [(\336rst )-79(two)]TJ /TT0 1 Tf 4.115 0 Td (if)Tj /T1_0 1 Tf 1.529 0 Td [(statements )-79(and )-79(the )-79(subsequent )-79(call )-79(to)]TJ /TT0 1 Tf 17.237 0 Td (read)Tj /T1_0 1 Tf 0.5795 Tc (.S)Tj 0 Tc 3.754 0 Td [(ignals )-79(occurring )-79(in )-79(her)]TJ 0.3295 Tc 10.2 0 Td (ea)Tj -0.018 Tc 1.309 0 Td (re)Tj 0 Tc -38.144 -1.2 Td [(lost, )-32(as )-32(indicated )-32(by )-32(the )-32(code )-32(comment.)-532(The )-32(signal )-32(handlers )-32(ar)]TJ 0.282 Tc 27.993 0 Td (ec)Tj 0 Tc 1.205 0 Td [(alled, )-32(and )-32(they )-32(set )-32(the)]TJ -29.198 -1.2 Td [(appr)18(opriate )-16(global )-16(variable, )-16(but )-16(the)]TJ /TT0 1 Tf 15.976 0 Td (read)Tj /T1_0 1 Tf 2.666 0 Td [(never )-16(r)18(eturns )-16(\(unless )-16(some )-16(data )-16(is )-16(r)18(eady )-16(to )-16(be)]TJ -0.018 Tc -18.642 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (ad\).)Tj 0.944 -1.2 Td [(What we would like to be able to do is the following sequence of steps, \ in or)18(der)74(.)]TJ 0 -2.04 TD [(1. )-633(Block)]TJ /TT0 1 Tf 4.331 0 Td (SIGINT)Tj /T1_0 1 Tf 3.85 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (SIGALRM)Tj /T1_0 1 Tf (.)Tj -10.124 -1.6 Td [(2. )-633(T)92(est )-12(the )-12(two )-12(global )-12(variables )-12(to )-12(see )-12(whether )-12(either )-12(signal )-12(has )-12(occurr)17(ed )-12(and, )-12(if )-12(so,)]TJ 1.633 -1.2 Td (handle the condition.)Tj -1.633 -1.6 Td [(3. )-633(Call)]TJ /TT0 1 Tf 3.833 0 Td (read)Tj /T1_0 1 Tf 2.809 0 Td [(\(or )-159(any )-159(other )-159(system )-159(function\) )-159(and )-159(unblock )-159(the )-159(two )-159(signals, )-159(as )-159(an)]TJ -5.009 -1.2 Td (atomic operation.)Tj -3.433 -2.04 Td (The)Tj /TT0 1 Tf 1.924 0 Td (sigsuspend)Tj /T1_0 1 Tf 6.25 0 Td (function helps us only if step 3 is a)Tj /TT0 1 Tf 15.505 0 Td (pause)Tj /T1_0 1 Tf 3.25 0 Td (operation.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5941 464.1721 Tm (10.17)Tj /TT2 1 Tf 3 0 Td (abort)Tj /TT1 1 Tf 3.556 0 Td (Function)Tj /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5919 440.1736 Tm [(We )-184(m)]TJ 0 Tc 2.52 0 Td (entioned earlier that the)Tj /TT0 1 Tf 10.847 0 Td (abort)Tj /T1_0 1 Tf 3.25 0 Td [(function causes abnormal pr)18(ogram termination.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5908 421.0747 Tm (#include )Tj 0 -1.902 TD (void abort\(void\);)Tj /T1_0 1 Tf 27.28 -1.902 Td [(This function never r)18(eturns)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3823.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 366.416 Tm [(This )-61(function )-61(sends )-61(the)]TJ /TT0 1 Tf 10.769 0 Td (SIGABRT)Tj /T1_0 1 Tf 4.511 0 Td [(signal )-61(to )-61(the )-61(caller)]TJ 0.5614 Tc 8.163 0 Td (.\()Tj 0 Tc 1.144 0 Td [(Pr)18(ocesses )-61(should )-61(not )-61(ignor)]TJ 0.3114 Tc 11.998 0 Td (et)Tj 0 Tc 1.116 0 Td (his)Tj -37.703 -1.2 Td [(signal.\) )-568(ISO)]TJ 0.5676 Tc 6.26 0 Td (Cs)Tj 0 Tc 1.701 0 Td [(tates )-318(that )-318(calling)]TJ /TT0 1 Tf 8.447 0 Td (abort)Tj /T1_0 1 Tf 3.568 0 Td [(will )-317(deliver )-317(an )-317(unsuccessful )-317(termination)]TJ -19.975 -1.2 Td [(noti\336cation to the host envir)18(onment by calling)]TJ /TT0 1 Tf 20.682 0 Td (raise\(SIGABRT\))Tj /T1_0 1 Tf (.)Tj -18.882 -1.2 Td [(ISO )-11(C )-11(r)18(equir)18(es )-11(that )-11(if )-11(the )-11(signal )-11(is )-11(caught )-11(and )-11(the )-11(signal )-11(handler )-11(r)18(eturns,)]TJ /TT0 1 Tf 32.316 0 Td (abort)Tj /T1_0 1 Tf 3.261 0 Td (still)Tj -37.377 -1.2 Td [(doesn\325t )-30(r)18(eturn )-30(to )-30(its )-30(caller)]TJ 0.5305 Tc 11.369 0 Td (.I)Tj 0.2805 Tc 1.117 0 Td (ft)Tj 0 Tc 0.939 0 Td [(his )-30(signal )-30(is )-30(caught, )-30(the )-30(only )-30(way )-30(the )-30(signal )-30(handler )-30(can\325t)]TJ -0.018 Tc -13.426 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-209(is )-209(if )-209(it )-209(calls)]TJ /TT0 1 Tf 8.11 0 Td (exit)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.11 0 Td (_exit)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.71 0 Td (_Exit)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.71 0 Td (longjmp)Tj /T1_0 1 Tf 0.4596 Tc (,o)Tj 0 Tc 5.456 0 Td (r)Tj /TT0 1 Tf 0.855 0 Td (siglongjmp)Tj /T1_0 1 Tf 0.7096 Tc (.\()Tj 0 Tc 7.293 0 Td [(Section )-210(10.15)]TJ -33.097 -1.2 Td [(discusses )-88(the )-88(dif)18(fer)18(ences )-88(between)]TJ /TT0 1 Tf 15.408 0 Td (longjmp)Tj /T1_0 1 Tf 4.538 0 Td (and)Tj /TT0 1 Tf 2.031 0 Td (siglongjmp)Tj /T1_0 1 Tf [(.\) )-338(POSIX.1)-337(also )-88(speci\336es)]TJ -21.977 -1.2 Td (that)Tj /TT0 1 Tf 1.984 0 Td (abort)Tj /T1_0 1 Tf 3.25 0 Td [(overrides the blocking or ignoring of the signal by the pr)18(ocess.)]TJ -3.434 -1.2 Td [(The )-139(intent )-139(of )-139(letting )-139(the )-139(pr)18(ocess )-139(catch )-139(the)]TJ /TT0 1 Tf 19.468 0 Td (SIGABRT)Tj /T1_0 1 Tf 4.589 0 Td [(is )-139(to )-139(allow )-139(it )-139(to )-139(perform )-139(any)]TJ -25.857 -1.2 Td [(cleanup )-306(that )-306(it )-306(wants )-306(to )-306(do )-306(befor)]TJ 0.5555 Tc 16.168 0 Td (et)Tj 0 Tc 1.361 0 Td [(he )-305(pr)18(ocess )-305(terminates.)-805(If )-305(the )-305(pr)18(ocess )-305(doesn\325t)]TJ -17.528 -1.2 Td [(terminate )-124(itself )-124(fr)18(om )-124(this )-124(signal )-124(handler)]TJ 0.3744 Tc 18.049 0 Td (,P)Tj 0 Tc 1.228 0 Td [(OSIX.1 )-124(states )-124(that, )-124(when )-124(the )-124(signal )-124(handler)]TJ -0.018 Tc -19.277 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (turns,)Tj /TT0 1 Tf 2.83 0 Td (abort)Tj /T1_0 1 Tf 3.25 0 Td [(terminates the pr)18(ocess.)]TJ -5.136 -1.2 Td [(The )-161(ISO )-161(C )-161(speci\336cation )-161(of )-161(this )-161(function )-161(leaves )-161(it )-161(up )-161(to )-161(the )-161(implementation )-161(as )-161(to)]TJ -1.8 -1.2 Td [(whether )-243(output )-243(str)18(eams )-243(ar)]TJ 0.4933 Tc 12.452 0 Td (e\337)Tj 0 Tc 1.58 0 Td [(ushed )-243(and )-243(whether )-243(temporary )-243(\336les )-243(\(Section )-243(5.13\) )-243(ar)15(e)]TJ -14.032 -1.2 Td [(deleted. )-365(POSIX.1)-365(goes )-115(further )-115(and )-115(allows )-115(an )-115(implementation )-115(to )-115(call)]TJ /TT0 1 Tf 31.334 0 Td (fclose)Tj /T1_0 1 Tf 3.965 0 Td [(on )-115(open)]TJ -35.299 -1.2 Td (standar)Tj 0.25 Tc 3.32 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O str)18(eams befor)]TJ 0.25 Tc 7.593 0 Td (et)Tj 0 Tc 1.055 0 Td (erminating if the call to)Tj /TT0 1 Tf 10.544 0 Td (abort)Tj /T1_0 1 Tf 3.25 0 Td [(terminates the pr)18(ocess.)]TJ 7.999 0 0 7.999 183.5782 166.44 Tm [(Earlier )-418(versions )-418(of )-418(System )-418(V )-418(generated )-418(the)]TJ /TT0 1 Tf 21.932 0 Td (SIGIOT)Tj /T1_0 1 Tf 4.268 0 Td [(signal )-418(fr)18(om )-418(the)]TJ /TT0 1 Tf 8.174 0 Td (abort)Tj /T1_0 1 Tf 3.668 0 Td (function.)Tj -38.043 -1.25 Td [(Furthermor)18(e, )-90(it )-90(was )-90(possible )-90(for )-90(a )-90(pr)18(ocess )-90(to )-90(ignor)]TJ 0.3404 Tc 22.871 0 Td (et)Tj 0 Tc 1.145 0 Td [(his )-90(signal )-90(or )-90(to )-90(catch )-90(it )-90(and )-90(r)15(eturn )-90(fr)18(om)]TJ -24.016 -1.25 Td [(the signal handler)74(,)-250(in)-250(which case)]TJ /TT0 1 Tf 14.6 0 Td (abort)Tj /T1_0 1 Tf -0.018 Tc 3.25 0 Td (re)Tj 0 Tc 0.856 0 Td [(turned to its caller)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47009 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.16)]TJ /TT0 1 Tf 33.403 0 Td (sigsuspend)Tj /T1_0 1 Tf 6.5 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (359)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT1 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm (10.16)Tj /TT2 1 Tf 3 0 Td (sigsuspend)Tj /TT1 1 Tf 6.556 0 Td (Function)Tj /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(We )-283(h)]TJ 0 Tc 2.318 0 Td [(ave )-99(seen )-99(how )-99(we )-99(can )-99(change )-99(the )-99(signal )-99(mask )-99(for )-99(a )-99(pr)18(ocess )-99(to )-99(block )-99(and )-99(unblock)]TJ -2.318 -1.2 Td [(selected )-128(signals.)]TJ -0.092 Tc 7.858 0 Td [(We )-312(c)]TJ 0 Tc 2.209 0 Td [(an )-128(use )-128(this )-128(technique )-128(to )-128(pr)17(otect )-128(critical )-128(r)18(egions )-128(of )-128(code )-128(that )-128(we)]TJ -10.067 -1.2 Td [(don\325t )-85(want )-85(interr)8(upted )-85(by )-85(a )-85(signal.)-585(But )-85(what )-85(if )-85(we )-85(want )-85(to )-85(unblock )-85(a )-85(signal )-85(and )-85(then)]TJ /TT0 1 Tf 0 -1.2 TD (pause)Tj /T1_0 1 Tf 0.2948 Tc (,w)Tj 0 Tc 4.379 0 Td [(aiting )-45(for )-45(the )-45(pr)18(eviously )-45(blocked )-45(signal )-45(to )-45(occur?)-543(Assuming )-45(that )-45(the )-45(signal )-45(is)]TJ /TT0 1 Tf -4.379 -1.2 Td (SIGINT)Tj /T1_0 1 Tf 0.25 Tc (,t)Tj 0 Tc 4.426 0 Td [(he incorr)18(ect way to do this is)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 158.3906 580.2652 Tm [(sigset_t )-1800(newmask,)-600(oldmask;)]TJ 0 -1.902 TD (sigemptyset\(&newmask\);)Tj 0 -1.189 TD (sigaddset\(&newmask, SIGINT\);)Tj 0 -1.902 TD (/* block SIGINT and save current signal mask */)Tj 0 -1.189 TD (if \(sigprocmask\(SIG_BLOCK, &newmask, &oldmask\) < 0\))Tj 2.4 -1.189 Td (err_sys\("SIG_BLOCK error"\);)Tj -2.4 -1.902 Td (/* critical region of code */)Tj 0 -1.902 TD (/* restore signal mask, which unblocks SIGINT */)Tj 0 -1.189 TD (if \(sigprocmask\(SIG_SETMASK, &oldmask, NULL\) < 0\))Tj 2.4 -1.189 Td (err_sys\("SIG_SETMASK error"\);)Tj -2.4 -1.902 Td (/* window is open */)Tj 0 -1.189 TD [(pause\(\); )-600(/*)-600(wait for signal to occur */)]TJ 0 -1.902 TD (/* continue processing */)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5923 395.3565 Tm [(If )-13(the )-13(signal )-13(is )-13(sent )-13(to )-13(the )-13(pr)18(ocess )-13(while )-13(it )-13(is )-13(blocked, )-13(the )-13(signal )-13(delivery )-13(will )-13(be )-13(deferr)10(ed)]TJ 0 -1.2 TD [(until )-136(the )-136(signal )-136(is )-136(unblocked.)]TJ -0.092 Tc 13.936 0 Td [(To )-320(t)]TJ 0 Tc 1.779 0 Td [(he )-136(application, )-136(this )-136(can )-136(look )-136(as )-136(if )-136(the )-136(signal )-136(occurs)]TJ -15.715 -1.2 Td [(between )-220(the )-220(unblocking )-220(and )-220(the)]TJ /TT0 1 Tf 15.555 0 Td (pause)Tj /T1_0 1 Tf 3.47 0 Td [(\(depending )-220(on )-220(how )-220(the )-220(kernel )-220(implements)]TJ -19.025 -1.2 Td [(signals\). )-392(If)-393(this )-143(happens, )-143(or )-143(if )-143(the )-143(signal )-143(does )-143(occur )-143(between )-143(the )-143(unblocking )-143(and )-143(the)]TJ /TT0 1 Tf T* (pause)Tj /T1_0 1 Tf [(,)-272(we)-272(h)-1(ave )-22(a )-22(pr)17(oblem. )-272(Any)-273(occurr)18(ence )-22(of )-22(the )-22(signal )-22(in )-22(this )-22(window )-22(of )-22(time )-22(is )-22(lost,)]TJ -0 -1.2 Td [(in )-55(the )-55(sense )-55(that )-55(we )-55(might )-55(not )-55(see )-55(the )-55(signal )-55(again, )-55(in )-55(which )-55(case )-55(the)]TJ /TT0 1 Tf 31.293 0 Td (pause)Tj /T1_0 1 Tf 3.305 0 Td [(will )-55(block)]TJ -34.598 -1.2 Td (inde\336nitely)Tj 0.5 Tc 4.982 0 Td (.T)Tj 0 Tc 1.363 0 Td [(his is another pr)18(oblem with the earlier unr)18(eliable signals.)]TJ -0.092 Tc -4.545 -1.2 Td [(To )-232(c)]TJ 0 Tc 1.809 0 Td [(orr)18(ect )-48(this )-48(pr)18(oblem, )-48(we )-48(need )-48(a )-48(way )-48(to )-48(both )-48(r)14(estor)]TJ 0.2984 Tc 22.118 0 Td (et)Tj 0 Tc 1.103 0 Td [(he )-48(signal )-48(mask )-48(and )-48(put )-48(the)]TJ -26.83 -1.2 Td [(pr)18(ocess )-404(to )-404(sleep )-404(in )-404(a )-404(single )-404(atomic )-404(operation.)-907(This )-404(featur)18(e)-654(is)-654(p)]TJ -0.018 Tc 31.715 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vided )-404(by )-404(the)]TJ /TT0 1 Tf -32.638 -1.2 Td (sigsuspend)Tj /T1_0 1 Tf 6.25 0 Td (function.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 268.2641 Tm (#include )Tj 0 -2.021 TD (int sigsuspend\(const sigset_t *)Tj /T1_2 1 Tf (sigmask)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 22.923 -2.021 Td (Returns:)Tj /TT3 1 Tf 3.977 0 Td (!)Tj /T1_0 1 Tf 0.25 Tc (1w)Tj 0 Tc 2.133 0 Td (ith)Tj /TT0 1 Tf 1.449 0 Td (errno)Tj /T1_0 1 Tf 3.25 0 Td (set to)Tj /TT0 1 Tf 2.601 0 Td (EINTR)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2274.25 cm 0 0 m 0 499 l 3900 499 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 211.4746 Tm [(The )-208(signal )-208(mask )-208(of )-208(the )-208(pr)16(ocess )-208(is )-208(set )-208(to )-208(the )-208(value )-208(pointed )-208(to )-208(by)]TJ /T1_2 1 Tf 30.718 0 Td (sigmask)Tj /T1_0 1 Tf 0.7084 Tc (.T)Tj 0 Tc 4.793 0 Td [(hen )-208(the)]TJ -35.512 -1.2 Td [(pr)18(ocess )-41(is )-41(suspended )-41(until )-41(a )-41(signal )-41(is )-41(caught )-41(or )-41(until )-41(a )-41(signal )-41(occurs )-41(that )-41(terminates )-41(the)]TJ 0 -1.2 TD [(pr)18(ocess. )-498(If)]TJ 0.4979 Tc 5.461 0 Td (as)Tj 0 Tc 1.422 0 Td [(ignal )-248(is )-248(caught )-248(and )-248(if )-248(the )-248(signal )-248(handler )-248(r)18(eturns, )-248(then)]TJ /TT0 1 Tf 26.117 0 Td (sigsuspend)Tj /T1_0 1 Tf -0.018 Tc -33 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns, )-317(and )-317(the )-317(signal )-317(mask )-317(of )-317(the )-317(pr)18(ocess )-317(is )-317(set )-317(to )-317(its )-317(value )-317(befor)]TJ 0.5668 Tc 32.179 0 Td (et)Tj 0 Tc 1.372 0 Td [(he )-317(call )-317(to)]TJ /TT0 1 Tf -34.407 -1.2 Td (sigsuspend)Tj /T1_0 1 Tf (.)Tj 1.8 -1.2 Td [(Note )-5(that )-5(ther)19(e)-255(is)-255(no)-255(s)1(uccessful )-5(r)18(eturn )-5(fr)18(om )-5(this )-5(function.)-503(If )-4(it )-4(r)18(eturns )-4(to )-4(the )-4(caller)]TJ 0.2545 Tc 36.079 0 Td (,i)Tj 0 Tc 0.795 0 Td (t)Tj -38.674 -1.2 Td [(always r)18(eturns)]TJ /TT3 1 Tf 6.791 0 Td (!)Tj /T1_0 1 Tf 0.25 Tc (1w)Tj 0 Tc 2.133 0 Td (ith)Tj /TT0 1 Tf 1.449 0 Td (errno)Tj /T1_0 1 Tf 3.25 0 Td (set to)Tj /TT0 1 Tf 2.601 0 Td (EINTR)Tj /T1_0 1 Tf 3.25 0 Td [(\(indicating an interr)8(upted system call\).)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47010 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.15)]TJ /TT0 1 Tf 24.886 0 Td (sigsetjmp)Tj /T1_0 1 Tf 5.9 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (siglongjmp)Tj /T1_0 1 Tf 6.5 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (355)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT1 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(Example )195(\321)]TJ /TT2 1 Tf 5.28 0 Td (signal_intr)Tj /TT1 1 Tf 6.878 0 Td (Function)Tj /T1_0 1 Tf -8.558 -2.4 Td (Figur)Tj 0.6273 Tc 2.383 0 Td (e1)Tj 0 Tc 1.606 0 Td [(0.19 )-377(shows )-377(a )-377(version )-377(of )-377(the)]TJ /TT0 1 Tf 14.372 0 Td (signal)Tj /T1_0 1 Tf 4.227 0 Td [(function )-377(that )-377(tries )-377(to )-377(pr)17(event )-377(any)]TJ -22.588 -1.2 Td [(interr)8(upted system calls fr)18(om being r)18(estarted.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6258.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 616.225 Tm (#include "apue.h")Tj 0 -1.902 TD (Sigfunc *)Tj 0 -1.189 TD (signal_intr\(int signo, Sigfunc *func\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(struct sigaction)-2400(act, oact;)]TJ 0 -1.902 TD (act.sa_handler = func;)Tj 0 -1.189 TD (sigemptyset\(&act.sa_mask\);)Tj T* (act.sa_flags = 0;)Tj -2.4 -1.189 Td [(#ifdef )-600(SA_INTERRUPT)]TJ 2.4 -1.189 Td (act.sa_flags |= SA_INTERRUPT;)Tj -2.4 -1.189 Td (#endif)Tj 2.4 -1.189 Td (if \(sigaction\(signo, &act, &oact\) < 0\))Tj 2.4 -1.189 Td (return\(SIG_ERR\);)Tj -2.4 -1.189 Td (return\(oact.sa_handler\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4488.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 249.851 432.7801 Tm (Figure 10.19)Tj /T1_0 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (signal_intr)Tj /T1_0 1 Tf 6.85 0 Td (function)Tj 9.9982 0 0 9.9982 129.5771 408.7844 Tm [(For )-47(impr)18(oved )-47(portability)111(,)-297(we)-297(specify )-47(the)]TJ /TT0 1 Tf 18.275 0 Td (SA_INTERRUPT)Tj /T1_0 1 Tf 7.497 0 Td [(\337ag, )-47(if )-47(de\336ned )-47(by )-47(the )-47(system,)]TJ -25.772 -1.2 Td [(to pr)18(event interr)8(upted system calls fr)18(om being r)18(estarted.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3968.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9971 0 0 11.9971 93.5775 360.7714 Tm (10.15)Tj /TT2 1 Tf 3 0 Td (sigsetjmp)Tj /TT1 1 Tf 5.956 0 Td (and)Tj /TT2 1 Tf 2.334 0 Td (siglongjmp)Tj /TT1 1 Tf 6.556 0 Td (Functions)Tj /T1_0 1 Tf 9.9976 0 0 9.9976 129.5685 336.7772 Tm [(In )-105(Section )-105(7.10, )-105(we )-105(described )-105(the)]TJ /TT0 1 Tf 15.231 0 Td (setjmp)Tj /T1_0 1 Tf 3.955 0 Td (and)Tj /TT0 1 Tf 2.048 0 Td (longjmp)Tj /T1_0 1 Tf 4.555 0 Td [(functions, )-105(which )-105(can )-105(be )-105(used)]TJ -25.79 -1.2 Td [(for )-72(nonlocal )-72(branching.)-572(The)]TJ /TT0 1 Tf 13.003 0 Td (longjmp)Tj /T1_0 1 Tf 4.522 0 Td [(function )-72(is )-72(often )-72(called )-72(fr)18(om )-72(a )-72(signal )-72(handler )-72(to)]TJ -0.018 Tc -17.525 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-112(to )-112(the )-112(main )-112(loop )-112(of )-112(a )-112(pr)17(ogram, )-112(instead )-112(of )-112(r)18(eturning )-112(fr)18(om )-112(the )-112(handler)]TJ 0.6121 Tc 33.775 0 Td (.W)Tj 0.3621 Tc 1.77 0 Td (es)Tj 0 Tc 1.265 0 Td (aw)Tj -37.666 -1.2 Td [(this appr)18(oach in Figur)18(es 10.8 and 10.1)55(1.)]TJ 1.8 -1.2 Td [(Ther)18(e)-461(is)-461(a)-461(p)]TJ -0.018 Tc 5.728 0 Td (ro)Tj 0 Tc 0.923 0 Td [(blem )-211(in )-211(calling)]TJ /TT0 1 Tf 7.416 0 Td (longjmp)Tj /T1_0 1 Tf 0.4608 Tc (,h)Tj 0 Tc 5.493 0 Td (owever)Tj 0.7109 Tc 3.224 0 Td (.W)Tj 0 Tc 1.961 0 Td [(hen )-211(a )-211(signal )-211(is )-211(caught, )-211(the)]TJ -26.546 -1.2 Td [(signal-catching )-6(function )-6(is )-6(enter)18(ed, )-6(with )-6(the )-6(curr)15(ent )-6(signal )-6(automatically )-6(being )-6(added )-6(to)]TJ 0 -1.2 TD [(the )-191(signal )-191(mask )-191(of )-191(the )-191(pr)17(ocess. )-441(This)-441(pr)18(events )-191(subsequent )-191(occurr)18(ences )-191(of )-191(that )-191(signal)]TJ T* [(fr)18(om )-144(interr)8(upting )-144(the )-144(signal )-144(handler)]TJ 0.6438 Tc 16.53 0 Td (.I)Tj 0.3938 Tc 1.231 0 Td (fw)Tj 0 Tc 1.561 0 Td (e)Tj /TT0 1 Tf 0.873 0 Td (longjmp)Tj /T1_0 1 Tf 4.594 0 Td [(out )-144(of )-144(the )-144(signal )-144(handler)]TJ 0.3937 Tc 11.326 0 Td (,w)Tj 0 Tc 1.478 0 Td (hat)Tj -37.592 -1.2 Td [(happens to the signal mask for the pr)18(ocess?)]TJ 7.9981 0 0 7.9981 183.5558 220.805 Tm [(Under )-123(Fr)18(eeBSD )-123(8.0 )-123(and )-123(Mac )-123(OS )-123(X )-123(10.6.8,)]TJ /TT0 1 Tf 19.193 0 Td (setjmp)Tj /T1_0 1 Tf 3.973 0 Td (and)Tj /TT0 1 Tf 2.066 0 Td (longjmp)Tj /T1_0 1 Tf 4.573 0 Td [(save )-123(and )-123(r)17(estor)]TJ 0.3734 Tc 6.937 0 Td (et)Tj 0 Tc 1.178 0 Td [(he )-123(signal)]TJ -37.921 -1.25 Td [(mask. )-296(Linux)-296(3.2.0 )-46(and )-46(Solaris )-46(10, )-46(however)]TJ 0.296 Tc 18.963 0 Td (,d)Tj 0.2959 Tc 1.157 0 Td (on)Tj 0 Tc 1.424 0 Td [(ot )-46(do )-46(this, )-46(although )-46(Linux )-46(supports )-46(an )-46(option)]TJ -21.544 -1.25 Td [(to )-301(pr)18(ovide )-301(BSD )-301(behavior)]TJ 0.8014 Tc 11.743 0 Td (.F)Tj -0.018 Tc 1.607 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD )-301(and )-301(Mac )-301(OS )-301(X )-301(pr)18(ovide )-301(the )-301(functions)]TJ /TT0 1 Tf 21.349 0 Td (_setjmp)Tj /T1_0 1 Tf 4.752 0 Td (and)Tj /TT0 1 Tf -40.307 -1.25 Td (_longjmp)Tj /T1_0 1 Tf 0.25 Tc (,w)Tj 0 Tc 6.134 0 Td [(hich do not save and r)18(estor)]TJ 0.25 Tc 11.95 0 Td (et)Tj 0 Tc 1.055 0 Td (he signal mask.)Tj -0.092 Tc 9.9976 0 0 9.9976 147.5645 168.8175 Tm [(To )-202(a)]TJ 0 Tc 1.835 0 Td [(llow )-18(either )-18(form )-18(of )-18(behavior)]TJ 0.2679 Tc 12.459 0 Td (,P)Tj 0 Tc 1.122 0 Td [(OSIX.1 )-18(does )-18(not )-18(specify )-18(the )-18(ef)18(fect )-18(of)]TJ /TT0 1 Tf 16.224 0 Td (setjmp)Tj /T1_0 1 Tf 3.868 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (longjmp)Tj /T1_0 1 Tf 4.491 0 Td [(on )-41(signal )-41(masks.)-541(Instead, )-41(two )-41(new )-41(functions,)]TJ /TT0 1 Tf 20.585 0 Td (sigsetjmp)Tj /T1_0 1 Tf 5.691 0 Td (and)Tj /TT0 1 Tf 1.984 0 Td (siglongjmp)Tj /T1_0 1 Tf (,)Tj -32.75 -1.2 Td (ar)Tj 0.3594 Tc 0.877 0 Td (ed)Tj 0 Tc 1.449 0 Td [(e\336ned )-109(by )-109(POSIX.1.)-610(These )-109(two )-109(functions )-109(should )-109(always )-109(be )-109(used )-109(when )-109(branching)]TJ -2.326 -1.2 Td [(fr)18(om a signal handler)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47011 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.14)]TJ /TT0 1 Tf 34.003 0 Td (sigaction)Tj /T1_0 1 Tf 5.9 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (349)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(The )-69(pr)18(ocess )-69(blocks)]TJ /TT0 1 Tf 8.74 0 Td (SIGQUIT)Tj /T1_0 1 Tf 0.3189 Tc (,s)Tj 0 Tc 5.193 0 Td [(aving )-69(its )-69(curr)18(ent )-69(signal )-69(mask )-69(\(to )-69(r)19(estor)]TJ 0.3189 Tc 17.395 0 Td (el)Tj 0 Tc 1.089 0 Td [(ater\), )-69(and )-69(then)]TJ -32.417 -1.2 Td [(goes )-174(to )-174(sleep )-174(for )-174(5 )-174(seconds.)-676(Any )-174(occurr)18(ence )-174(of )-174(the )-174(quit )-174(signal )-174(during )-174(this )-174(period )-174(is)]TJ 0 -1.2 TD [(blocked )-294(and )-294(won\325t )-294(be )-294(deliver)18(ed )-294(until )-294(the )-294(signal )-294(is )-294(unblocked.)-794(At )-294(the )-294(end )-294(of )-294(the)]TJ T* (5-second sleep, we check whether the signal is pending and unblock the s\ ignal.)Tj 1.8 -1.2 Td [(Note )-205(that )-205(we )-205(saved )-205(the )-205(old )-205(mask )-205(when )-205(we )-205(blocked )-205(the )-205(signal.)]TJ -0.092 Tc 30.262 0 Td [(To )-389(u)]TJ 0 Tc 2.125 0 Td [(nblock )-205(the)]TJ -34.187 -1.2 Td [(signal, )-16(we )-16(did )-16(a)]TJ /TT0 1 Tf 7.286 0 Td (SIG_SETMASK)Tj /T1_0 1 Tf 6.866 0 Td [(of )-16(the )-16(old )-16(mask.)-518(Alternatively)111(,)-266(we)-266(c)-1(ould)]TJ /TT0 1 Tf 18.248 0 Td (SIG_UNBLOCK)Tj /T1_0 1 Tf -32.4 -1.2 Td [(only )-29(the )-29(signal )-29(that )-29(we )-29(had )-29(blocked.)-529(Be )-29(awar)18(e, )-29(however)77(,)-279(if)-279(we)-279(w)1(rite )-29(a )-29(function )-29(that )-29(can)]TJ 0 -1.2 Td [(be )-219(called )-219(by )-219(others )-219(and )-219(if )-219(we )-219(need )-219(to )-219(block )-219(a )-219(signal )-219(in )-219(our )-219(function, )-219(we )-219(can\325t )-219(use)]TJ /TT0 1 Tf T* (SIG_UNBLOCK)Tj /T1_0 1 Tf 6.959 0 Td [(to )-109(unblock )-109(the )-109(signal.)-611(In )-109(this )-109(case, )-109(we )-109(have )-109(to )-109(use)]TJ /TT0 1 Tf 23.388 0 Td (SIG_SETMASK)Tj /T1_0 1 Tf 6.959 0 Td (and)Tj -0.018 Tc -37.307 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (stor)Tj 0.5104 Tc 1.673 0 Td (et)Tj 0 Tc 1.315 0 Td [(he )-260(signal )-260(mask )-260(to )-260(its )-260(prior )-260(value, )-260(because )-260(it\325s )-260(possible )-260(that )-260(the )-260(caller )-260(had)]TJ -3.844 -1.2 Td [(speci\336cally )-49(blocked )-49(this )-49(signal )-49(befor)]TJ 0.2994 Tc 16.158 0 Td (ec)Tj 0 Tc 1.222 0 Td [(alling )-49(our )-49(function.)]TJ -0.092 Tc 9.16 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-49(see )-49(an )-49(example )-49(of )-49(this)]TJ -27.928 -1.2 Td (in the)Tj /TT0 1 Tf 2.76 0 Td (system)Tj /T1_0 1 Tf 3.85 0 Td (function in Section 10.18.)Tj -4.81 -1.2 Td [(If )-114(we )-114(generate )-114(the )-114(quit )-114(signal )-114(during )-114(this )-114(sleep )-114(period, )-114(the )-114(signal )-114(is )-114(now )-114(pending)]TJ -1.8 -1.2 Td [(and )-181(unblocked, )-181(so )-181(it )-181(is )-181(deliver)18(ed )-181(befor)19(e)]TJ /TT0 1 Tf 18.876 0 Td (sigprocmask)Tj /T1_0 1 Tf -0.018 Tc 7.031 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns. )-431(W)92(e\325ll )-181(see )-181(this )-181(occur)]TJ -26.762 -1.2 Td [(because )-59(the)]TJ /TT0 1 Tf 5.487 0 Td (printf)Tj /T1_0 1 Tf 3.909 0 Td [(in )-59(the )-59(signal )-59(handler )-59(is )-59(output )-59(befor)]TJ 0.3091 Tc 16.207 0 Td (et)Tj 0 Tc 1.114 0 Td (he)Tj /TT0 1 Tf 1.37 0 Td (printf)Tj /T1_0 1 Tf 3.909 0 Td [(that )-59(follows )-59(the)]TJ -31.996 -1.2 Td (call to)Tj /TT0 1 Tf 2.898 0 Td (sigprocmask)Tj /T1_0 1 Tf (.)Tj -1.098 -1.2 Td [(The )-38(pr)18(ocess )-38(then )-38(goes )-38(to )-38(sleep )-38(for )-38(another )-38(5 )-38(seconds.)-542(If )-38(we )-38(generate )-38(the )-38(quit )-38(signal)]TJ -1.8 -1.2 Td [(during )-181(this )-181(sleep )-181(period, )-181(the )-181(signal )-181(should )-181(terminate )-181(the )-181(pr)18(ocess, )-181(since )-181(we )-181(r)18(eset )-181(the)]TJ T* [(handling )-143(of )-143(the )-143(signal )-143(to )-143(its )-143(default )-143(when )-143(we )-143(caught )-143(it.)-649(In )-144(the )-144(following )-144(output, )-144(the)]TJ T* (terminal prints)Tj /TT0 1 Tf 6.866 0 Td (\366\\)Tj /T1_0 1 Tf 1.45 0 Td [(when we input Contr)18(ol-backslash, the terminal quit character:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.591 424.2745 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj -1.2 -1.189 Td (\366\\)Tj /T1_2 1 Tf 16 0 Td (generate signal once \(befor)Tj 0.25 Tc 10.658 0 Td (e5s)Tj 0 Tc 1.778 0 Td (econds ar)Tj 0.25 Tc 3.75 0 Td (eu)Tj 0 Tc 1.195 0 Td (p\))Tj /TT0 1 Tf -33.381 -1.189 Td (SIGQUIT pending)Tj /T1_2 1 Tf 16 0 Td [(after r)18(eturn fr)18(om)]TJ /TT0 1 Tf 7.048 0 Td (sleep)Tj -23.048 -1.189 Td (caught SIGQUIT)Tj /T1_2 1 Tf 16 0 Td (in signal handler)Tj /TT0 1 Tf -16 -1.189 Td (SIGQUIT unblocked)Tj /T1_2 1 Tf 16 0 Td [(after r)18(eturn fr)18(om)]TJ /TT0 1 Tf 7.048 0 Td (sigprocmask)Tj /TT1 1 Tf -23.048 -1.189 Td (\366\\)Tj /TT0 1 Tf (Quit\(coredump\))Tj /T1_2 1 Tf 16 0 Td (generate signal again)Tj /TT0 1 Tf -16 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj -1.2 -1.189 Td (\366\\\366\\\366\\\366\\\366\\\366\\\366\\\366\\\366\\\366\\)Tj /T1_2 1 Tf 16 0 Td (generate signal 10 times \(befor)Tj 0.25 Tc 12.279 0 Td (e5s)Tj 0 Tc 1.778 0 Td (econds ar)Tj 0.25 Tc 3.75 0 Td (eu)Tj 0 Tc 1.195 0 Td (p\))Tj /TT0 1 Tf -35.002 -1.189 Td (SIGQUIT pending)Tj 0 -1.189 TD (caught SIGQUIT)Tj /T1_2 1 Tf 16 0 Td (signal is generated only once)Tj /TT0 1 Tf -16 -1.189 Td (SIGQUIT unblocked)Tj /TT1 1 Tf T* (\366\\)Tj /TT0 1 Tf (Quit\(coredump\))Tj /T1_2 1 Tf 16 0 Td (generate signal again)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 288.5827 Tm [(The )-267(message)]TJ /TT0 1 Tf 6.454 0 Td (Quit\(coredump\))Tj /T1_0 1 Tf 8.917 0 Td [(is )-267(printed )-267(by )-267(the )-267(shell )-267(when )-267(it )-267(sees )-267(that )-267(its )-267(child)]TJ -15.371 -1.2 Td [(terminated )-259(abnormally)]TJ 0.7586 Tc 10.367 0 Td (.N)Tj 0 Tc 1.84 0 Td [(ote )-259(that )-259(when )-259(we )-259(r)10(un )-259(the )-259(pr)18(ogram )-259(the )-259(second )-259(time, )-259(we)]TJ -12.206 -1.2 Td [(generate )-44(the )-44(quit )-44(signal )-44(ten )-44(times )-44(while )-44(the )-44(pr)15(ocess )-44(is )-44(asleep, )-44(yet )-44(the )-44(signal )-44(is )-44(deliver)16(ed)]TJ 0 -1.2 TD [(only )-132(once )-132(to )-132(the )-132(pr)18(ocess )-132(when )-132(it\325s )-132(unblocked.)-632(This )-132(demonstrates )-132(that )-132(signals )-132(ar)]TJ 0.3817 Tc 36.685 0 Td (en)Tj 0 Tc 1.443 0 Td (ot)Tj -38.128 -1.2 Td (queued on this system.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2406.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 11.9986 0 0 11.9986 93.5888 204.5754 Tm (10.14)Tj /TT1 1 Tf 3 0 Td (sigaction)Tj /TT2 1 Tf 5.956 0 Td (Function)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 180.5783 Tm (The)Tj /TT0 1 Tf 1.928 0 Td (sigaction)Tj /T1_0 1 Tf 5.654 0 Td [(function )-4(allows )-4(us )-4(to )-4(examine )-4(or )-4(modify )-4(\(or )-4(both\) )-4(the )-4(action )-4(associated)]TJ -7.583 -1.2 Td [(with )-184(a )-184(particular )-184(signal.)-684(This )-184(function )-184(supersedes )-184(the)]TJ /TT0 1 Tf 25.421 0 Td (signal)Tj /T1_0 1 Tf 4.034 0 Td [(function )-184(fr)18(om )-184(earlier)]TJ -0.018 Tc -29.455 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(leases )-401(of )-401(the )-401(UNIX )-401(System.)-901(Indeed, )-401(at )-401(the )-401(end )-401(of )-401(this )-401(section, )-401(we )-401(show )-401(an)]TJ -0.856 -1.2 Td (implementation of)Tj /TT0 1 Tf 8.439 0 Td (signal)Tj /T1_0 1 Tf 3.85 0 Td (using)Tj /TT0 1 Tf 2.706 0 Td (sigaction)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47012 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.13)]TJ /TT0 1 Tf 33.403 0 Td (sigpending)Tj /T1_0 1 Tf 6.5 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (347)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD (void)Tj 0 -1.189 TD (pr_mask\(const char *str\))Tj T* ({)Tj 2.4 -1.189 Td [(sigset_t )-1800(sigset;)]TJ T* [(int )-4800(errno_save;)]TJ 0 -2.14 TD [(errno_save = errno;)-3000(/* we can be called by signal handlers */)]TJ 0 -1.189 TD (if \(sigprocmask\(0, NULL, &sigset\) < 0\) {)Tj 2.4 -1.189 Td (err_ret\("sigprocmask error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (printf\("%s", str\);)Tj T* (if \(sigismember\(&sigset, SIGINT\)\))Tj 2.4 -1.189 Td (printf\(" SIGINT"\);)Tj -2.4 -1.189 Td (if \(sigismember\(&sigset, SIGQUIT\)\))Tj 2.4 -1.189 Td (printf\(" SIGQUIT"\);)Tj -2.4 -1.189 Td (if \(sigismember\(&sigset, SIGUSR1\)\))Tj 2.4 -1.189 Td (printf\(" SIGUSR1"\);)Tj -2.4 -1.189 Td (if \(sigismember\(&sigset, SIGALRM\)\))Tj 2.4 -1.189 Td (printf\(" SIGALRM"\);)Tj -2.4 -2.14 Td [(/* remaining signals can go here)-1200(*/)]TJ 0 -2.14 TD (printf\("\\n"\);)Tj -2.4 -1.189 Td (})Tj T* [(errno = errno_save;)-3000(/* restore errno */)]TJ -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3551.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 235.5997 339.0573 Tm (Figure 10.14)Tj /T1_0 1 Tf 6.195 0 Td [(Print the signal mask for the pr)18(ocess)]TJ -0.092 Tc 9.9988 0 0 9.9988 129.5846 315.0602 Tm [(To )-529(s)]TJ 0 Tc 2.086 0 Td [(ave )-345(space, )-345(we )-345(don\325t )-345(test )-345(the )-345(signal )-345(mask )-345(for )-345(every )-345(signal )-345(that )-345(we )-345(listed )-345(in)]TJ -2.086 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td [(0.1. )-250(\(See)-250(Exer)18(cise 10.9.\))]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3031.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 11.9978 0 0 11.9978 93.5832 263.4506 Tm (10.13)Tj /TT2 1 Tf 3 0 Td (sigpending)Tj /TT1 1 Tf 6.556 0 Td (Function)Tj /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 239.4549 Tm (The)Tj /TT0 1 Tf 1.966 0 Td (sigpending)Tj /T1_0 1 Tf 6.292 0 Td [(function )-42(r)18(eturns )-42(the )-42(set )-42(of )-42(signals )-42(that )-42(ar)]TJ 0.2924 Tc 18.114 0 Td (eb)Tj 0 Tc 1.324 0 Td [(locked )-42(fr)18(om )-42(delivery )-42(and)]TJ -27.697 -1.2 Td [(curr)18(ently )-60(pending )-60(for )-60(the )-60(calling )-60(pr)16(ocess. )-310(The)-311(set )-60(of )-60(signals )-60(is )-60(r)18(eturned )-60(thr)18(ough )-60(the)]TJ /T1_2 1 Tf 37.889 0 Td (set)Tj /T1_0 1 Tf -37.889 -1.2 Td [(ar)18(gument.)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.5731 196.3627 Tm (#include )Tj 0 -2.14 TD (int sigpending\(sigset_t *)Tj /T1_2 1 Tf (set)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 26.851 -2.14 Td (Returns: 0 if OK,)Tj /TT3 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1534.25 cm 0 0 m 0 520 l 3900 520 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47013 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (346)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm (10.12)Tj /TT1 1 Tf 3 0 Td (sigprocmask)Tj /TT0 1 Tf 7.156 0 Td (Function)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(Recall )-69(fr)18(om )-69(Section )-69(10.8 )-69(that )-69(the )-69(signal )-69(mask )-69(of )-69(a )-69(pr)18(ocess )-69(is )-69(the )-69(set )-69(of )-69(signals )-69(curr)10(ently)]TJ 0 -1.2 TD [(blocked fr)18(om delivery to that pr)17(ocess. )-250(A)-250(pr)18(ocess can examine its signal mask, change its)]TJ 0 -1.2 Td (signal mask, or perform both operations in one step by calling the follo\ wing function.)Tj /TT2 1 Tf 8.9995 0 0 8.9995 147.5913 601.8639 Tm (#include )Tj 0 -2.14 TD (int sigprocmask\(int)Tj /T1_2 1 Tf 12 0 Td (how)Tj /TT2 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.466 0 Td (onst sigset_t *restrict)Tj /T1_2 1 Tf 14.4 0 Td (set)Tj /TT2 1 Tf (,)Tj -20.266 -1.189 Td (sigset_t *restrict)Tj /T1_2 1 Tf 11.4 0 Td (oset)Tj /TT2 1 Tf (\);)Tj /T1_1 1 Tf 5.851 -2.14 Td (Returns: 0 if OK,)Tj /TT3 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5482.25 cm 0 0 m 0 627 l 3900 627 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 532.2161 Tm [(First, )-152(if)]TJ /T1_2 1 Tf 3.671 0 Td (oset)Tj /T1_1 1 Tf 1.957 0 Td [(is )-152(a )-152(non-null )-152(pointer)]TJ 0.4023 Tc 9.378 0 Td (,t)Tj 0 Tc 0.978 0 Td [(he )-152(curr)18(ent )-152(signal )-152(mask )-152(for )-152(the )-152(pr)18(ocess )-152(is )-152(r)15(eturned)]TJ -15.984 -1.2 Td [(thr)18(ough)]TJ /T1_2 1 Tf 3.822 0 Td (oset)Tj /T1_1 1 Tf (.)Tj -2.022 -1.2 Td [(Second, )-192(if)]TJ /T1_2 1 Tf 4.945 0 Td (set)Tj /T1_1 1 Tf 1.553 0 Td [(is )-192(a )-192(non-null )-192(pointer)]TJ 0.4419 Tc 9.497 0 Td (,t)Tj 0 Tc 1.018 0 Td (he)Tj /T1_2 1 Tf 1.503 0 Td (how)Tj /T1_1 1 Tf 2.108 0 Td [(ar)18(gument )-192(indicates )-192(how )-192(the )-192(curr)18(ent)]TJ -22.423 -1.2 Td [(signal )-522(mask )-522(is )-522(modi\336ed.)-1022(Figur)]TJ 0.772 Tc 15.719 0 Td (e1)Tj 0 Tc 1.751 0 Td [(0.13 )-522(describes )-522(the )-522(possible )-522(values )-522(for)]TJ /T1_2 1 Tf 19.614 0 Td (how)Tj /T1_1 1 Tf (.)Tj /TT2 1 Tf -37.084 -1.2 Td (SIG_BLOCK)Tj /T1_1 1 Tf 5.862 0 Td [(is )-212(an )-212(inclusive-OR )-212(operation, )-212(wher)16(eas)]TJ /TT2 1 Tf 18.057 0 Td (SIG_SETMASK)Tj /T1_1 1 Tf 7.062 0 Td [(is )-212(an )-212(assignment.)]TJ -30.982 -1.2 Td (Note that)Tj /TT2 1 Tf 4.416 0 Td (SIGKILL)Tj /T1_1 1 Tf 4.45 0 Td (and)Tj /TT2 1 Tf 1.943 0 Td (SIGSTOP)Tj /T1_1 1 Tf 4.45 0 Td (can\325t be blocked.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1550.25 4523.25 cm 0 0 m 3392 0 l S Q Q BT /T1_2 1 Tf 7.9986 0 0 7.9986 178.7038 444.2 Tm (how)Tj /T1_1 1 Tf 19.706 0 Td (Description)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1550.25 4403.25 cm 0 0 m 3392 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1550.25 4383.25 cm 0 0 m 3392 0 l S Q Q BT /TT2 1 Tf 7.9981 0 0 7.9981 158.9618 430.1767 Tm (SIG_BLOCK)Tj /T1_1 1 Tf 8.1 0 Td [(The new signal mask for the pr)18(ocess is the union of its curr)18(ent signal mask)]TJ 0 -1.25 TD (and the signal set pointed to by)Tj /T1_2 1 Tf 14.12 0 Td (set)Tj /T1_1 1 Tf 0.5 Tc (.T)Tj 0 Tc 2.474 0 Td (hat is,)Tj /T1_2 1 Tf 2.873 0 Td (set)Tj /T1_1 1 Tf 1.361 0 Td (contains the additional)Tj -20.828 -1.25 Td (signals that we want to block.)Tj /TT2 1 Tf -8.1 -1.875 Td (SIG_UNBLOCK)Tj /T1_1 1 Tf 8.1 0 Td [(The new signal mask for the pr)18(ocess is the intersection of its curr)18(ent signal)]TJ T* (mask and the complement of the signal set pointed to by)Tj /T1_2 1 Tf 25.263 0 Td (set)Tj /T1_1 1 Tf 0.5 Tc (.T)Tj 0 Tc 2.474 0 Td (hat is,)Tj /T1_2 1 Tf 2.873 0 Td (set)Tj /T1_1 1 Tf -30.61 -1.25 Td (contains the signals that we want to unblock.)Tj /TT2 1 Tf -8.1 -1.875 Td (SIG_SETMASK)Tj /T1_1 1 Tf 8.1 0 Td [(The new signal mask for the pr)18(ocess is r)18(eplaced by the value of the signal)]TJ T* (set pointed to by)Tj /T1_2 1 Tf 7.646 0 Td (set)Tj /T1_1 1 Tf (.)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1550.25 3463.25 cm 0 0 m 3392 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2178.25 3463.25 cm 0 0 m 0 1060 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4942.25 3463.25 cm 0 0 m 0 1060 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1550.25 3463.25 cm 0 0 m 0 1060 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 191.5265 328.1815 Tm (Figure 10.13)Tj /T1_1 1 Tf -0.092 Tc 6.195 0 Td (Wa)Tj 0 Tc 1.408 0 Td [(ys to change the curr)18(ent signal mask using)]TJ /TT2 1 Tf 19.051 0 Td (sigprocmask)Tj /T1_1 1 Tf 9.997 0 0 9.997 147.556 301.7894 Tm (If)Tj /T1_2 1 Tf 1.072 0 Td (set)Tj /T1_1 1 Tf 1.513 0 Td [(is )-152(a )-152(null )-152(pointer)]TJ 0.4023 Tc 7.335 0 Td (,t)Tj 0 Tc 0.978 0 Td [(he )-152(signal )-152(mask )-152(of )-152(the )-152(pr)18(ocess )-152(is )-152(not )-152(changed, )-152(and)]TJ /T1_2 1 Tf 23.518 0 Td (how)Tj /T1_1 1 Tf 2.068 0 Td (is)Tj -38.285 -1.2 Td [(ignor)18(ed.)]TJ 1.8 -1.2 Td [(After )-121(calling)]TJ /TT2 1 Tf 6.007 0 Td (sigprocmask)Tj /T1_1 1 Tf [(,)-371(if)-371(a)1(ny )-121(unblocked )-121(signals )-121(ar)]TJ 0.3708 Tc 19.576 0 Td (ep)Tj 0 Tc 1.451 0 Td [(ending, )-121(at )-121(least )-121(one )-121(of)]TJ -28.834 -1.2 Td [(these signals is deliver)18(ed to the pr)18(ocess befor)18(e)]TJ /TT2 1 Tf 20.577 0 Td (sigprocmask)Tj /T1_1 1 Tf -0.018 Tc 6.85 0 Td (re)Tj 0 Tc 0.856 0 Td (turns.)Tj 7.9976 0 0 7.9976 183.5447 245.8062 Tm (The)Tj /TT2 1 Tf 1.936 0 Td (sigprocmask)Tj /T1_1 1 Tf 6.862 0 Td [(function )-12(is )-12(de\336ned )-12(only )-12(for )-12(single-thr)19(eaded )-12(pr)18(ocesses. )-262(A)-261(separate )-12(function)]TJ -8.798 -1.25 Td [(is )-5(pr)18(ovided )-5(to )-5(manipulate )-5(a )-5(thr)18(ead\325s )-5(signal )-5(mask )-5(in )-5(a )-5(multithr)16(eaded )-5(pr)18(ocess. )-255(W)92(e\325ll )-5(discuss )-5(this)]TJ T* (in Section 12.8.)Tj /TT0 1 Tf 9.997 0 0 9.997 93.5714 192.2223 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td (Figur)Tj 0.299 Tc 2.383 0 Td (e1)Tj 0 Tc 1.278 0 Td [(0.14 )-49(shows )-49(a )-49(function )-49(that )-49(prints )-49(the )-49(names )-49(of )-49(the )-49(signals )-49(in )-49(the )-49(signal )-49(mask )-49(of)]TJ -3.661 -1.2 Td [(the )-47(calling )-47(pr)17(ocess. )-297(W)]TJ 0.2975 Tc 9.938 0 Td (ec)Tj 0 Tc 1.221 0 Td [(all )-48(this )-48(function )-48(fr)18(om )-48(the )-48(pr)18(ograms )-48(shown )-48(in )-48(Figur)]TJ 0.2976 Tc 22.825 0 Td (e1)Tj 0 Tc 1.277 0 Td [(0.20 )-48(and)]TJ -35.259 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (0.22.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47014 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (344)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(10.11 )-220(Signal)-556(Sets)]TJ /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(We )-216(n)]TJ 0 Tc 2.251 0 Td [(eed )-32(a )-32(data )-32(type )-32(to )-32(r)16(epr)18(esent )-32(multiple )-32(signals)]TJ 0.0833 Tc 19.857 0 Td (\321a)Tj /T1_2 1 Tf 0 Tc 1.866 0 Td [(signal )-32(set)]TJ /T1_1 1 Tf 0.5324 Tc (.W)Tj 0 Tc 5.529 0 Td [(e\325ll )-32(use )-32(this )-32(data )-32(type)]TJ -29.503 -1.2 Td [(with )-25(such )-25(functions )-25(as)]TJ /TT1 1 Tf 10.24 0 Td (sigprocmask)Tj /T1_1 1 Tf 6.875 0 Td [(\(in )-25(the )-25(next )-25(section\) )-25(to )-25(tell )-25(the )-25(kernel )-25(not )-25(to )-25(allow)]TJ -17.115 -1.2 Td [(any )-60(of )-60(the )-60(signals )-60(in )-60(the )-60(set )-60(to )-60(occur)]TJ 0.5597 Tc 16.169 0 Td (.A)Tj 0 Tc 1.588 0 Td [(s)-310(we)-310(m)1(entioned )-60(earlier)]TJ 0.3097 Tc 10.201 0 Td (,t)Tj 0 Tc 0.886 0 Td [(he )-60(number )-60(of )-60(dif)19(fer)18(ent)]TJ -28.843 -1.2 Td [(signals )-17(can )-17(exceed )-17(the )-17(number )-17(of )-17(bits )-17(in )-17(an )-17(integer)]TJ 0.2671 Tc 22.35 0 Td (,s)Tj 0 Tc 0.941 0 Td [(o)-267(in)-267(general )-17(we )-17(can\325t )-17(use )-17(an )-17(integer)]TJ -23.291 -1.2 Td [(to )-27(r)18(epr)18(esent )-27(the )-27(set )-27(with )-27(one )-27(bit )-27(per )-27(signal.)-527(POSIX.1 )-27(de\336nes )-27(the )-27(data )-27(type)]TJ /TT1 1 Tf 33.051 0 Td (sigset_t)Tj /T1_1 1 Tf 5.077 0 Td (to)Tj -38.128 -1.2 Td (contain a signal set and the following \336ve functions to manipulate si\ gnal sets.)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5904 565.866 Tm (#include )Tj 0 -2.021 TD (int sigemptyset\(sigset_t *)Tj /T1_2 1 Tf (set)Tj /TT1 1 Tf (\);)Tj -0 -2.021 Td (int sigfillset\(sigset_t *)Tj /T1_2 1 Tf (set)Tj /TT1 1 Tf (\);)Tj -0 -2.021 Td (int sigaddset\(sigset_t *)Tj /T1_2 1 Tf (set)Tj /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 17.311 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (signo)Tj /TT1 1 Tf (\);)Tj -19.111 -2.021 Td (int sigdelset\(sigset_t *)Tj /T1_2 1 Tf (set)Tj /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 17.311 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (signo)Tj /TT1 1 Tf (\);)Tj /T1_1 1 Tf 4.718 -2.021 Td [(All four r)18(eturn: 0 if OK,)]TJ /TT2 1 Tf 10.635 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT1 1 Tf -34.464 -2.021 Td (int sigismember\(const sigset_t *)Tj /T1_2 1 Tf (set)Tj /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 22.111 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (signo)Tj /TT1 1 Tf (\);)Tj /T1_1 1 Tf -1.494 -2.021 Td [(Returns: 1 if tr)8(ue, 0 if false,)]TJ /TT2 1 Tf 12.047 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4340.25 cm 0 0 m 0 1409 l 3900 1409 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 418.1198 Tm [(The )-44(function)]TJ /TT1 1 Tf 5.968 0 Td (sigemptyset)Tj /T1_1 1 Tf 6.894 0 Td [(initializes )-44(the )-44(signal )-44(set )-44(pointed )-44(to )-44(by)]TJ /T1_2 1 Tf 16.999 0 Td (set)Tj /T1_1 1 Tf 1.405 0 Td [(so )-44(that )-44(all )-44(signals)]TJ -31.265 -1.2 Td (ar)Tj 0.3071 Tc 0.877 0 Td (ee)Tj 0 Tc 1.265 0 Td [(xcluded. )-307(The)-307(function)]TJ /TT1 1 Tf 10.357 0 Td (sigfillset)Tj /T1_1 1 Tf 6.307 0 Td [(initializes )-57(the )-57(signal )-57(set )-57(so )-57(that )-57(all )-57(signals )-57(ar)16(e)]TJ -18.806 -1.2 Td [(included. )-354(All)-353(applications )-104(have )-104(to )-104(call )-104(either)]TJ /TT1 1 Tf 20.72 0 Td (sigemptyset)Tj /T1_1 1 Tf 6.954 0 Td (or)Tj /TT1 1 Tf 1.294 0 Td (sigfillset)Tj /T1_1 1 Tf 6.354 0 Td [(once )-103(for)]TJ -35.322 -1.2 Td [(each )-266(signal )-266(set, )-266(befor)]TJ 0.5158 Tc 9.963 0 Td (eu)Tj 0 Tc 1.598 0 Td [(sing )-266(the )-266(signal )-266(set, )-266(because )-266(we )-266(cannot )-266(assume )-266(that )-266(the )-266(C)]TJ -11.561 -1.2 Td [(initialization )-91(for )-91(external )-91(and )-91(static )-91(variables)]TJ 20.5 0.04 Td (\()Tj 0.333 -0.04 Td (0)Tj 0.5 0.04 Td (\))Tj 0.674 -0.04 Td [(corr)18(esponds )-91(to )-91(the )-91(implementation )-91(of)]TJ -22.008 -1.2 Td (signal sets on a given system.)Tj 1.8 -1.2 Td [(Once )-74(we )-74(have )-74(initialized )-74(a )-74(signal )-74(set, )-74(we )-74(can )-74(add )-74(and )-74(delete )-74(speci\336c )-74(signals )-74(in )-74(the)]TJ -1.8 -1.2 Td [(set. )-353(The)-353(function)]TJ /TT1 1 Tf 8.168 0 Td (sigaddset)Tj /T1_1 1 Tf 5.753 0 Td [(adds )-103(a )-103(single )-103(signal )-103(to )-103(an )-103(existing )-103(set, )-103(and)]TJ /TT1 1 Tf 19.679 0 Td (sigdelset)Tj /T1_1 1 Tf -0.018 Tc -33.6 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(moves )-198(a )-198(single )-198(signal )-198(fr)18(om )-198(a )-198(set.)-698(In )-198(all )-198(the )-198(functions )-198(that )-198(take )-198(a )-198(signal )-198(set )-198(as )-198(an)]TJ -0.856 -1.2 Td [(ar)18(gument, we always pass the addr)18(ess of the signal set as the ar)18(gument.)]TJ /TT0 1 Tf -3.6 -2.76 Td (Implementation)Tj /T1_1 1 Tf 3.6 -2.4 Td [(If )-219(the )-219(implementation )-219(has )-219(fewer )-219(signals )-219(than )-219(bits )-219(in )-219(an )-219(integer)]TJ 0.469 Tc 29.474 0 Td (,as)Tj 0 Tc 2.112 0 Td [(ignal )-219(set )-219(can )-219(be)]TJ -31.586 -1.2 Td [(implemented )-21(using )-21(one )-21(bit )-21(per )-21(signal.)-521(For )-21(the )-21(r)21(emainder )-21(of )-21(this )-21(section, )-21(assume )-21(that )-21(an)]TJ 0 -1.2 TD [(implementation )-133(has )-133(31 )-133(signals )-133(and )-133(32)]TJ 17.242 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-133(integers.)-633(The)]TJ /TT1 1 Tf 8.025 0 Td (sigemptyset)Tj /T1_1 1 Tf 6.983 0 Td [(function )-133(zer)18(os)]TJ -32.584 -1.2 Td [(the )-13(integer)]TJ 0.2629 Tc 4.684 0 Td (,a)Tj 0 Tc 1.013 0 Td [(nd )-13(the)]TJ /TT1 1 Tf 3.106 0 Td (sigfillset)Tj /T1_1 1 Tf 6.263 0 Td [(function )-13(turns )-13(on )-13(all )-13(the )-13(bits )-13(in )-13(the )-13(integer)]TJ 0.513 Tc 18.625 0 Td (.T)Tj 0 Tc 1.376 0 Td [(hese )-13(two)]TJ -35.067 -1.2 Td [(functions can be implemented as macr)18(os in the)]TJ /TT1 1 Tf 20.952 0 Td ()Tj /T1_1 1 Tf 6.25 0 Td (header:)Tj /TT1 1 Tf 8.9989 0 0 8.9989 147.5833 191.7072 Tm [(#define sigemptyset\(ptr\))-1200(\(*\(ptr\) = 0\))]TJ 0 -1.189 TD [(#define sigfillset\(ptr\))-1800(\(*\(ptr\) = \367\(sigset_t\)0, 0\))]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5854 160.8711 Tm [(Note )-47(that)]TJ /TT1 1 Tf 4.51 0 Td (sigfillset)Tj /T1_1 1 Tf 6.297 0 Td [(must )-47(r)18(eturn )-47(0, )-47(in )-47(addition )-47(to )-47(setting )-47(all )-47(the )-47(bits )-47(on )-47(in )-47(the )-47(signal)]TJ -10.808 -1.2 Td [(set, )-175(so )-175(we )-175(use )-175(C\325s )-175(comma )-175(operator)]TJ 0.4247 Tc 16.197 0 Td (,w)Tj 0 Tc 1.509 0 Td [(hich )-175(r)18(eturns )-175(the )-175(value )-175(after )-175(the )-175(comma )-175(as )-175(the)]TJ -17.705 -1.2 Td [(value of the expr)18(ession.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47015 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (338)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Also )-97(understand )-97(that )-97(the )-97(test )-97(for )-97(pr)18(ocess )-97(existence )-97(is )-97(not )-97(atomic.)-596(By )-97(the )-97(time )-97(that)]TJ /TT0 1 Tf -1.8 -1.2 Td (kill)Tj /T1_1 1 Tf -0.018 Tc 2.703 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-53(the )-53(answer )-53(to )-53(the )-53(caller)]TJ 0.3026 Tc 13.029 0 Td (,t)Tj 0 Tc 0.879 0 Td [(he )-53(pr)18(ocess )-53(in )-53(question )-53(might )-53(have )-53(exited, )-53(so )-53(the)]TJ -17.466 -1.2 Td (answer is of limited value.)Tj 1.8 -1.2 Td [(If )-15(the )-15(call )-15(to)]TJ /TT0 1 Tf 5.517 0 Td (kill)Tj /T1_1 1 Tf 2.666 0 Td [(causes )-15(the )-15(signal )-15(to )-15(be )-15(generated )-15(for )-15(the )-15(calling )-15(pr)14(ocess )-16(and )-16(if )-16(the)]TJ -9.983 -1.2 Td [(signal )-56(is )-56(not )-56(blocked, )-56(either)]TJ /T1_2 1 Tf 12.625 0 Td (signo)Tj /T1_1 1 Tf 2.473 0 Td [(or )-56(some )-56(other )-56(pending, )-56(unblocked )-56(signal )-56(is )-56(deliver)18(ed)]TJ -15.098 -1.2 Td [(to )-240(the )-240(pr)18(ocess )-240(befor)17(e)]TJ /TT0 1 Tf 10.282 0 Td (kill)Tj /T1_1 1 Tf -0.018 Tc 2.89 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns. )-490(\(Additional)-491(conditions )-240(occur )-240(with )-240(thr)18(eads; )-240(see)]TJ -14.029 -1.2 Td (Section 12.8 for mor)Tj 0.25 Tc 8.773 0 Td (ei)Tj 0 Tc 1.02 0 Td (nformation.\))Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.595 563.3662 Tm (10.10)Tj /TT2 1 Tf 3 0 Td (alarm)Tj /TT1 1 Tf 3.556 0 Td (and)Tj /TT2 1 Tf 2.334 0 Td (pause)Tj /TT1 1 Tf 3.556 0 Td (Functions)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5924 541.7675 Tm (The)Tj /TT0 1 Tf 2.03 0 Td (alarm)Tj /T1_1 1 Tf 3.356 0 Td [(function )-106(allows )-106(us )-106(to )-106(set )-106(a )-106(timer )-106(that )-106(will )-106(expir)20(e)-356(at)-356(a)-356(s)1(peci\336ed )-106(time )-106(in )-106(the)]TJ -5.386 -1.2 Td [(futur)18(e. )-286(When)-286(the )-36(timer )-36(expir)18(es, )-36(the)]TJ /TT0 1 Tf 16.146 0 Td (SIGALRM)Tj /T1_1 1 Tf 4.486 0 Td [(signal )-36(is )-36(generated.)-536(If )-36(we )-36(ignor)17(e)-286(or)-286(d)-1(on\325t)]TJ -20.632 -1.2 Td [(catch this signal, its default action is to terminate the pr)18(ocess.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5907 498.6701 Tm (#include )Tj 0 -1.902 TD (unsigned int alarm\(unsigned int)Tj /T1_2 1 Tf 19.2 0 Td (seconds)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -5.793 -1.902 Td [(Returns: 0 or number of seconds until pr)18(eviously set alarm)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4599.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 444.0067 Tm (The)Tj /T1_2 1 Tf 2.007 0 Td (seconds)Tj /T1_1 1 Tf 3.407 0 Td [(value )-83(is )-83(the )-83(number )-83(of )-83(clock )-83(seconds )-83(in )-83(the )-83(futur)]TJ 0.3334 Tc 22.208 0 Td (ew)Tj 0 Tc 1.646 0 Td [(hen )-83(the )-83(signal )-83(should)]TJ -29.269 -1.2 Td [(be )-129(generated.)-630(When )-129(that )-129(time )-129(occurs, )-129(the )-129(signal )-129(is )-129(generated )-129(by )-129(the )-129(kernel, )-129(although)]TJ 0 -1.2 TD [(additional )-305(time )-305(could )-305(elapse )-305(befor)]TJ 0.5549 Tc 16.305 0 Td (et)Tj 0 Tc 1.36 0 Td [(he )-305(pr)18(ocess )-305(gets )-305(contr)18(ol )-305(to )-305(handle )-305(the )-305(signal,)]TJ -17.665 -1.2 Td [(because of pr)18(ocessor scheduling delays.)]TJ 7.999 0 0 7.999 183.5775 388.0134 Tm [(Earlier )-5(UNIX )-5(System )-5(implementations )-5(warned )-5(that )-5(the )-5(signal )-5(could )-5(also )-5(be )-5(sent )-5(up )-5(to )-5(1 )-5(second)]TJ 0 -1.25 TD (early)Tj 0.5 Tc 2.11 0 Td (.P)Tj 0 Tc 1.354 0 Td [(OSIX.1 does not allow this behavior)74(.)]TJ 9.9988 0 0 9.9988 147.5818 357.0172 Tm [(Ther)18(e)-445(is)-445(only )-195(one )-195(of )-195(these )-195(alarm )-195(clocks )-195(per )-195(pr)19(ocess. )-445(If,)-445(when )-195(we )-195(call)]TJ /TT0 1 Tf 33.005 0 Td (alarm)Tj /T1_1 1 Tf 0.4449 Tc (,a)Tj 0 Tc -34.805 -1.2 Td [(pr)18(eviously )-163(r)18(egister)18(ed )-163(alarm )-163(clock )-163(for )-163(the )-163(pr)18(ocess )-163(has )-163(not )-163(yet )-163(expir)14(ed, )-164(the )-164(number )-164(of)]TJ 0 -1.2 Td [(seconds )-333(left )-333(for )-333(that )-333(alarm )-333(clock )-333(is )-333(r)20(eturned )-333(as )-333(the )-333(value )-333(of )-333(this )-333(function.)-830(That)]TJ 0 -1.2 TD [(pr)18(eviously r)18(egister)18(ed alarm clock is r)18(eplaced by the new value.)]TJ 1.8 -1.2 Td [(If )-64(a )-64(pr)18(eviously )-64(r)17(egister)18(ed )-64(alarm )-64(clock )-64(for )-64(the )-64(pr)18(ocess )-64(has )-64(not )-64(yet )-64(expir)18(ed )-64(and )-64(if )-64(the)]TJ /T1_2 1 Tf -1.8 -1.2 Td (seconds)Tj /T1_1 1 Tf 3.38 0 Td [(value )-56(is )-56(0, )-56(the )-56(pr)18(evious )-56(alarm )-56(clock )-56(is )-56(canceled.)-559(The )-56(number )-56(of )-56(seconds )-56(left )-56(for)]TJ -3.38 -1.2 Td [(that pr)18(evious alarm clock is still r)18(eturned as the value of the function.)]TJ 1.8 -1.2 Td [(Although )-7(the )-7(default )-7(action )-7(for)]TJ /TT0 1 Tf 14.043 0 Td (SIGALRM)Tj /T1_1 1 Tf 4.457 0 Td [(is )-7(to )-7(terminate )-7(the )-7(pr)18(ocess, )-7(most )-7(pr)17(ocesses)]TJ -20.3 -1.2 Td [(that )-78(use )-78(an )-78(alarm )-78(clock )-78(catch )-78(this )-78(signal.)-580(If )-78(the )-78(pr)18(ocess )-78(then )-78(wants )-78(to )-78(terminate, )-78(it )-78(can)]TJ T* [(perform )-360(whatever )-360(cleanup )-360(is )-360(r)16(equir)18(ed )-360(befor)]TJ 0.6105 Tc 21.125 0 Td (et)Tj 0 Tc 1.416 0 Td [(erminating. )-611(If)-610(we )-361(intend )-361(to )-361(catch)]TJ /TT0 1 Tf -22.54 -1.2 Td (SIGALRM)Tj /T1_1 1 Tf [(,)-283(we)-283(need )-33(to )-33(be )-33(car)18(eful )-33(to )-33(install )-33(its )-33(signal )-33(handler )-33(befor)]TJ 0.2832 Tc 28.95 0 Td (ec)Tj 0 Tc 1.206 0 Td (alling)Tj /TT0 1 Tf 2.794 0 Td (alarm)Tj /T1_1 1 Tf 0.5332 Tc (.I)Tj 0.2832 Tc 4.12 0 Td (fw)Tj 0 Tc 1.45 0 Td (e)Tj -38.521 -1.2 Td (call)Tj /TT0 1 Tf 1.966 0 Td (alarm)Tj /T1_1 1 Tf 3.44 0 Td [(\336rst )-190(and )-190(ar)]TJ 0.4401 Tc 5.2 0 Td (es)Tj 0 Tc 1.343 0 Td (ent)Tj /TT0 1 Tf 1.827 0 Td (SIGALRM)Tj /T1_1 1 Tf 4.64 0 Td (befor)Tj 0.4401 Tc 2.288 0 Td (ew)Tj 0.4402 Tc 1.753 0 Td (ec)Tj 0 Tc 1.363 0 Td [(an )-190(install )-190(the )-190(signal )-190(handler)]TJ 0.4402 Tc 12.945 0 Td (,o)Tj 0 Tc 1.236 0 Td (ur)Tj -38.002 -1.2 Td [(pr)18(ocess will terminate.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 1.924 0 Td (pause)Tj /T1_1 1 Tf 3.25 0 Td [(function suspends the calling pr)18(ocess until a signal is caught.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5824 181.9382 Tm (#include )Tj 0 -1.902 TD (int pause\(void\);)Tj /T1_1 1 Tf 22.923 -1.902 Td (Returns:)Tj /TT3 1 Tf 3.977 0 Td (!)Tj /T1_1 1 Tf 0.25 Tc (1w)Tj 0 Tc 2.133 0 Td (ith)Tj /TT0 1 Tf 1.449 0 Td (errno)Tj /T1_1 1 Tf 3.25 0 Td (set to)Tj /TT0 1 Tf 2.601 0 Td (EINTR)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1432.25 cm 0 0 m 0 477 l 3900 477 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47016 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (336)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(What )-125(happens )-125(if )-125(a )-125(blocked )-125(signal )-125(is )-125(generated )-125(mor)]TJ 0.3752 Tc 23.355 0 Td (et)Tj 0 Tc 1.18 0 Td [(han )-125(once )-125(befor)]TJ 0.3753 Tc 6.754 0 Td (et)Tj 0 Tc 1.18 0 Td [(he )-125(pr)18(ocess)]TJ -34.269 -1.2 Td [(unblocks )-187(the )-187(signal?)-688(POSIX.1 )-187(allows )-187(the )-187(system )-187(to )-187(deliver )-187(the )-187(signal )-187(either )-187(once )-187(or)]TJ 0 -1.2 TD (mor)Tj 0.4646 Tc 1.806 0 Td (et)Tj 0 Tc 1.27 0 Td [(han )-215(once.)-715(If )-215(the )-215(system )-215(delivers )-215(the )-215(signal )-215(mor)]TJ 0.4646 Tc 22.453 0 Td (et)Tj 0 Tc 1.27 0 Td [(han )-215(once, )-215(we )-215(say )-215(that )-215(the)]TJ -26.798 -1.2 Td [(signals )-170(ar)]TJ 0.4197 Tc 4.365 0 Td (eq)Tj 0 Tc 1.459 0 Td [(ueued. )-420(Most)-419(UNIX )-170(systems, )-170(however)]TJ 0.4197 Tc 17.381 0 Td (,d)Tj 0 Tc 1.281 0 Td (o)Tj /T1_2 1 Tf 0.966 0 Td (not)Tj /T1_1 1 Tf 1.753 0 Td [(queue )-170(signals )-170(unless )-170(they)]TJ -27.203 -1.2 Td [(support )-77(the )-77(r)18(eal-time )-77(extensions )-77(to )-77(POSIX.1.)-577(Instead, )-77(the )-77(UNIX )-77(kernel )-77(simply )-77(delivers)]TJ T* (the signal once.)Tj -0.055 Tc 7.9995 0 0 7.9995 183.5897 588.9647 Tm (Wi)Tj 0 Tc 1.236 0 Td [(th )-28(SUSv4, )-28(the )-28(r)18(eal-time )-28(signal )-28(functionality )-28(moved )-28(fr)18(om )-28(the )-28(r)18(eal-time )-28(extensions )-28(to )-28(the )-28(base)]TJ -1.236 -1.25 Td [(speci\336cation. )-297(As)-297(time )-47(goes )-47(on, )-47(mor)]TJ 0.2974 Tc 15.89 0 Td (es)Tj 0 Tc 1.2 0 Td [(ystems )-47(will )-47(support )-47(queueing )-47(signals )-47(even )-47(if )-47(they )-47(don\325t)]TJ -17.09 -1.25 Td [(support the r)18(eal-time extensions.)]TJ -0.092 Tc 14.991 0 Td [(We )-184(d)]TJ 0 Tc 2.248 0 Td (iscuss queueing signals further in Section 10.20.)Tj -17.239 -2.25 Td [(The )-6(manual )-6(pages )-6(for )-6(SVR2 )-6(claimed )-6(that )-6(the)]TJ /TT0 1 Tf 19.952 0 Td (SIGCLD)Tj /T1_1 1 Tf 3.856 0 Td [(signal )-6(was )-6(queued )-6(while )-6(the )-6(pr)18(ocess )-6(was)]TJ -23.808 -1.25 Td [(executing )-180(its)]TJ /TT0 1 Tf 6.177 0 Td (SIGCLD)Tj /T1_1 1 Tf 4.03 0 Td [(signal )-180(handler)]TJ 0.68 Tc 6.44 0 Td (.A)Tj 0 Tc 1.708 0 Td [(lthough )-180(this )-180(might )-180(have )-180(been )-180(tr)8(ue )-180(on )-180(a )-180(conceptual)]TJ -18.355 -1.25 Td [(level, )-202(the )-202(actual )-202(implementation )-202(was )-202(dif)17(fer)18(ent. )-452(Instead,)-452(the )-202(signal )-202(was )-202(r)18(egenerated )-202(by )-202(the)]TJ 0 -1.25 Td [(kernel )-64(as )-64(we )-64(described )-64(in )-64(Section )-64(10.7.)-561(In )-64(SVR3, )-64(the )-64(manual )-64(was )-64(changed )-64(to )-64(indicate )-64(that )-64(the)]TJ /TT0 1 Tf 0 -1.25 TD (SIGCLD)Tj /T1_1 1 Tf 3.994 0 Td [(signal )-143(was )-143(ignor)18(ed )-143(while )-143(the )-143(pr)18(ocess )-143(was )-143(executing )-143(its )-143(signal )-143(handler )-143(for)]TJ /TT0 1 Tf 34.157 0 Td (SIGCLD)Tj /T1_1 1 Tf (.)Tj -38.15 -1.25 Td [(The )-347(SVR4 )-347(manual )-347(r)18(emoved )-347(any )-347(mention )-347(of )-347(what )-347(happens )-347(to)]TJ /TT0 1 Tf 30.45 0 Td (SIGCLD)Tj /T1_1 1 Tf 4.197 0 Td [(signals )-347(that )-347(ar)17(e)]TJ -34.647 -1.25 Td [(generated while a pr)18(ocess is executing its)]TJ /TT0 1 Tf 18.461 0 Td (SIGCLD)Tj /T1_1 1 Tf 3.85 0 Td [(signal handler)74(.)]TJ -22.311 -2.25 Td [(The )-209(SVR4)]TJ /TT0 1 Tf 5.007 0 Td (sigaction)Tj /T1_1 1 Tf 5.4 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.792 -0.04 Td [(manual )-209(page )-209(in )-209(A)74(T&T )-209([1990e] )-209(claims )-209(that )-209(the)]TJ /TT0 1 Tf 21.846 0 Td (SA_SIGINFO)Tj /T1_1 1 Tf 6.459 0 Td (\337ag)Tj -40.336 -1.25 Td (\(Figur)Tj 0.4025 Tc 2.716 0 Td (e1)Tj 0 Tc 1.381 0 Td [(0.16\) )-152(causes )-152(signals )-152(to )-152(be )-152(r)18(eliably )-152(queued.)-652(This )-152(is )-152(wr)14(ong. )-403(Appar)18(ently)]TJ 0.4026 Tc 32.127 0 Td (,t)Tj 0 Tc 0.979 0 Td [(his )-153(featur)18(e)]TJ -37.203 -1.25 Td [(was )-162(partially )-162(implemented )-162(within )-162(the )-162(kernel, )-162(but )-162(it )-162(is )-162(not )-162(enabled )-162(in )-162(SVR4.)-660(Curiously)]TJ 0.4118 Tc 39.951 0 Td (,t)Tj 0 Tc 0.988 0 Td (he)Tj -40.939 -1.25 Td [(SVID didn\325t make the same claims of r)18(eliable queuing.)]TJ 9.9994 0 0 9.9994 147.591 420.9747 Tm [(What )-281(happens )-281(if )-281(mor)]TJ 0.5312 Tc 10.201 0 Td (et)Tj 0 Tc 1.336 0 Td [(han )-281(one )-281(signal )-281(is )-281(r)18(eady )-281(to )-281(be )-281(deliver)17(ed )-281(to )-281(a )-281(pr)17(ocess?)]TJ -13.337 -1.2 Td [(POSIX.1 )-142(does )-142(not )-142(specify )-142(the )-142(or)17(der )-142(in )-142(which )-142(the )-142(signals )-142(ar)]TJ 0.3921 Tc 26.966 0 Td (ed)Tj 0 Tc 1.482 0 Td [(eliver)18(ed )-142(to )-142(the )-142(pr)18(ocess.)]TJ -28.448 -1.2 Td [(The )-178(Rationale )-178(for )-178(POSIX.1 )-178(does )-178(suggest, )-178(however)]TJ 0.428 Tc 22.852 0 Td (,t)Tj 0 Tc 1.004 0 Td [(hat )-178(signals )-178(r)18(elated )-178(to )-178(the )-178(curr)18(ent)]TJ -23.856 -1.2 Td [(state of the pr)18(ocess be deliver)18(ed befor)]TJ 0.25 Tc 16.619 0 Td (eo)Tj 0 Tc 1.275 0 Td [(ther signals.)-500(\()]TJ /TT0 1 Tf (SIGSEGV)Tj /T1_1 1 Tf 10.633 0 Td (is one such signal.\))Tj -26.727 -1.2 Td [(Each )-44(pr)18(ocess )-44(has )-44(a)]TJ /T1_2 1 Tf 8.613 0 Td [(signal )-44(mask)]TJ /T1_1 1 Tf 5.088 0 Td [(that )-44(de\336nes )-44(the )-44(set )-44(of )-44(signals )-44(curr)19(ently )-44(blocked )-44(fr)19(om)]TJ -15.501 -1.2 Td [(delivery )-72(to )-72(that )-72(pr)18(ocess. )-322(W)]TJ 0.322 Tc 12.264 0 Td (ec)Tj 0 Tc 1.245 0 Td [(an )-72(think )-72(of )-72(this )-72(mask )-72(as )-72(having )-72(one )-72(bit )-72(for )-72(each )-72(possible)]TJ -13.509 -1.2 Td [(signal. )-289(If)-290(the )-39(bit )-39(is )-39(on )-39(for )-39(a )-39(given )-39(signal, )-39(that )-39(signal )-39(is )-39(curr)18(ently )-39(blocked.)]TJ 0.2894 Tc 32.822 0 Td (Ap)Tj -0.018 Tc 1.668 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-39(can)]TJ -35.414 -1.2 Td [(examine )-315(and )-315(change )-315(its )-315(curr)16(ent )-315(signal )-315(mask )-315(by )-315(calling)]TJ /TT0 1 Tf 26.973 0 Td (sigprocmask)Tj /T1_1 1 Tf 0.5655 Tc (,w)Tj 0 Tc 8.249 0 Td [(hich )-315(we)]TJ -35.223 -1.2 Td (describe in Section 10.12.)Tj 1.8 -1.2 Td [(Since )-165(it )-165(is )-165(possible )-165(for )-165(the )-165(number )-165(of )-165(signals )-165(to )-165(exceed )-165(the )-165(number )-165(of )-165(bits )-165(in )-165(an)]TJ -1.8 -1.2 Td (integer)Tj 0.4718 Tc 3.034 0 Td (,P)Tj 0 Tc 1.326 0 Td [(OSIX.1 )-222(de\336nes )-222(a )-222(data )-222(type, )-222(called)]TJ /TT0 1 Tf 16.341 0 Td (sigset_t)Tj /T1_1 1 Tf 0.4719 Tc (,t)Tj 0 Tc 5.848 0 Td [(hat )-222(holds )-222(a)]TJ /T1_2 1 Tf 5.778 0 Td [(signal )-222(set)]TJ /T1_1 1 Tf 0.7219 Tc (.T)Tj 0 Tc 5.613 0 Td (he)Tj -37.939 -1.2 Td [(signal )-310(mask, )-310(for )-310(example, )-310(is )-310(stor)18(ed )-310(in )-310(one )-310(of )-310(these )-310(signal )-310(sets.)]TJ -0.092 Tc 31.169 0 Td [(We )-494(d)]TJ 0 Tc 2.558 0 Td [(escribe )-309(\336ve)]TJ -33.727 -1.2 Td [(functions that operate on signal sets in Section 10.1)55(1.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5946 240.9855 Tm (10.9)Tj /TT2 1 Tf 3 0 Td (kill)Tj /TT1 1 Tf 2.956 0 Td (and)Tj /TT2 1 Tf 2.334 0 Td (raise)Tj /TT1 1 Tf 3.556 0 Td (Functions)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.592 216.987 Tm (The)Tj /TT0 1 Tf 2.108 0 Td (kill)Tj /T1_1 1 Tf 2.834 0 Td [(function )-184(sends )-184(a )-184(signal )-184(to )-184(a )-184(pr)18(ocess )-184(or )-184(a )-184(gr)18(oup )-184(of )-184(pr)16(ocesses. )-434(The)]TJ /TT0 1 Tf 31.058 0 Td (raise)Tj /T1_1 1 Tf -36 -1.2 Td [(function allows a pr)18(ocess to send a signal to itself.)]TJ 7.9995 0 0 7.9995 183.5888 184.9889 Tm (The)Tj /TT0 1 Tf 2.004 0 Td (raise)Tj /T1_1 1 Tf 3.33 0 Td [(function )-80(was )-80(originally )-80(de\336ned )-80(by )-80(ISO )-80(C.)-580(POSIX.1 )-80(includes )-80(it )-80(to )-80(align )-80(itself )-80(with)]TJ -5.334 -1.25 Td [(the )-82(ISO )-82(C )-82(standar)18(d, )-82(but )-82(POSIX.1 )-82(extends )-82(the )-82(speci\336cation )-82(of)]TJ /TT0 1 Tf 27.61 0 Td (raise)Tj /T1_1 1 Tf 3.332 0 Td [(to )-82(deal )-82(with )-82(thr)18(eads )-82(\(we)]TJ -30.942 -1.25 Td [(discuss )-171(how )-171(thr)17(eads )-171(interact )-171(with )-171(signals )-171(in )-171(Section )-171(12.8\).)-671(Since )-171(ISO )-171(C )-171(does )-171(not )-171(deal )-171(with)]TJ T* [(multiple )-160(pr)18(ocesses, )-160(it )-160(could )-160(not )-160(de\336ne )-160(a )-160(function, )-160(such )-160(as)]TJ /TT0 1 Tf 27.069 0 Td (kill)Tj /T1_1 1 Tf 0.4101 Tc (,t)Tj 0 Tc 3.386 0 Td [(hat )-160(r)18(equir)18(es )-160(a )-160(pr)18(ocess )-160(ID)]TJ -30.455 -1.25 Td [(ar)18(gument.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47017 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.8)]TJ 23.91 0 Td [(Reliable-Signal )-250(T)92(erminology )-250(and )-250(Semantics)]TJ /T1_1 1 Tf 21.923 0 Td (335)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-116(pr)18(oblem )-116(with )-116(this )-116(pr)16(ogram )-116(is )-116(that )-116(the )-116(call )-116(to)]TJ /TT0 1 Tf 22.817 0 Td (signal)Tj /T1_0 1 Tf 3.966 0 Td [(at )-116(the )-116(beginning )-116(of )-116(the)]TJ -28.583 -1.2 Td [(signal )-364(handler )-364(invokes )-364(item )-364(2 )-364(fr)16(om )-364(the )-364(pr)18(eceding )-364(discussion)]TJ 0.0833 Tc 29.59 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(he )-364(kernel )-364(checks)]TJ -31 -1.2 Td [(whether )-164(a )-164(child )-164(needs )-164(to )-164(be)]TJ /TT0 1 Tf 13.357 0 Td (wait)Tj /T1_0 1 Tf [(ed )-164(for )-164(\(which )-164(is )-164(the )-164(case, )-164(since )-164(we\325r)]TJ 0.4137 Tc 19.113 0 Td (ep)Tj -0.018 Tc 1.494 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cessing )-164(a)]TJ /TT0 1 Tf -34.886 -1.2 Td (SIGCLD)Tj /T1_0 1 Tf 3.977 0 Td [(signal\), )-127(so )-127(it )-127(generates )-127(another )-127(call )-127(to )-127(the )-127(signal )-127(handler)]TJ 0.6271 Tc 25.634 0 Td (.T)Tj 0 Tc 1.49 0 Td [(he )-127(signal )-127(handler)]TJ -31.101 -1.2 Td (calls)Tj /TT0 1 Tf 2.2 0 Td (signal)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 4.6 0 Td [(nd the whole pr)18(ocess starts over again.)]TJ -0.092 Tc -5 -1.2 Td [(To )-241(\336)]TJ 0.3074 Tc 1.979 0 Td (xt)Tj 0 Tc 1.149 0 Td [(his )-57(pr)18(ogram, )-57(we )-57(have )-57(to )-57(move )-57(the )-57(call )-57(to)]TJ /TT0 1 Tf 18.741 0 Td (signal)Tj /T1_0 1 Tf 3.908 0 Td [(after )-57(the )-57(call )-57(to)]TJ /TT0 1 Tf 7.048 0 Td (wait)Tj /T1_0 1 Tf 0.5575 Tc (.B)Tj 0 Tc 3.819 0 Td (y)Tj -38.444 -1.2 Td [(doing )-163(this, )-163(we )-163(call)]TJ /TT0 1 Tf 8.95 0 Td (signal)Tj /T1_0 1 Tf 4.013 0 Td [(after )-163(fetching )-163(the )-163(child\325s )-163(termination )-163(status; )-163(the )-163(signal )-163(is)]TJ -12.963 -1.2 Td (generated again by the kernel only if some other child has since termina\ ted.)Tj 7.9995 0 0 7.9995 183.5891 561.9663 Tm [(POSIX.1 )-286(states )-286(that )-286(when )-286(we )-286(establish )-286(a )-286(signal )-286(handler )-286(for)]TJ /TT0 1 Tf 28.76 0 Td (SIGCHLD)Tj /T1_0 1 Tf 4.736 0 Td [(and )-286(ther)]TJ 0.536 Tc 3.993 0 Td (ee)Tj 0 Tc 1.494 0 Td [(xists )-286(a)]TJ -38.983 -1.25 Td [(terminated )-29(child )-29(we )-29(have )-29(not )-29(yet)]TJ /TT0 1 Tf 15.019 0 Td (wait)Tj /T1_0 1 Tf [(ed )-29(for)74(,)-279(it)-279(is)-279(unspeci\336ed )-29(whether )-29(the )-29(signal )-29(is )-29(generated.)]TJ -15.019 -1.25 Td [(This )-182(allows )-182(the )-182(behavior )-182(described )-182(pr)16(eviously)]TJ 0.6825 Tc 21.166 0 Td (.B)Tj 0 Tc 1.544 0 Td [(ut )-182(since )-182(POSIX.1 )-182(does )-182(not )-182(r)16(eset )-183(a )-183(signal\325s)]TJ -22.709 -1.25 Td [(disposition )-239(to )-239(its )-239(default )-239(when )-239(the )-239(signal )-239(occurs )-239(\(assuming )-239(that )-239(we\325r)]TJ 0.489 Tc 32.542 0 Td (eu)Tj 0 Tc 1.571 0 Td [(sing )-239(the )-239(POSIX.1)]TJ /TT0 1 Tf -34.113 -1.25 Td (sigaction)Tj /T1_0 1 Tf 5.768 0 Td [(function )-118(to )-118(set )-118(its )-118(disposition\), )-118(ther)17(e)-368(is)-368(n)]TJ 0.3684 Tc (on)Tj 0 Tc 19.979 0 Td [(eed )-118(for )-118(us )-118(to )-118(ever )-118(establish )-118(a )-118(signal)]TJ -25.747 -1.25 Td (handler for)Tj /TT0 1 Tf 5.214 0 Td (SIGCHLD)Tj /T1_0 1 Tf 4.45 0 Td [(within that handler)74(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5060.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 473.5432 Tm [(Be )-208(cognizant )-208(of )-208(the)]TJ /TT0 1 Tf 9.517 0 Td (SIGCHLD)Tj /T1_0 1 Tf 4.658 0 Td [(semantics )-208(for )-208(your )-208(implementation.)-708(Be )-208(especially)]TJ -15.975 -1.2 Td [(awar)18(e)-289(of)-289(some )-39(systems )-39(that)]TJ /TT0 1 Tf 12.595 0 Td [(#define )311(SIGCHLD)]TJ /T1_0 1 Tf 8.978 0 Td [(to )-39(be)]TJ /TT0 1 Tf 2.482 0 Td (SIGCLD)Tj /T1_0 1 Tf [(,)-289(or)-289(v)1(ice )-39(versa.)-538(Changing)]TJ -24.054 -1.2 Td [(the )-21(name )-21(may )-21(allow )-21(you )-21(to )-21(compile )-21(a )-21(pr)18(ogram )-21(that )-21(was )-21(written )-21(for )-21(another )-21(system, )-21(but)]TJ 0 -1.2 TD [(if that pr)18(ogram depends on the other semantics, it may not work.)]TJ 7.999 0 0 7.999 183.5783 415.5501 Tm [(Of )-11(the )-11(four )-11(platforms )-11(described )-11(in )-11(this )-11(text, )-11(only )-11(Linux )-11(3.2.0 )-11(and )-11(Solaris )-11(10 )-11(de\336ne)]TJ /TT0 1 Tf 36.272 0 Td (SIGCLD)Tj /T1_0 1 Tf 0.5106 Tc (.O)Tj 0 Tc 5.147 0 Td (n)Tj -41.419 -1.25 Td (these platforms,)Tj /TT0 1 Tf 7.339 0 Td (SIGCLD)Tj /T1_0 1 Tf 3.85 0 Td (is equivalent to)Tj /TT0 1 Tf 7.013 0 Td (SIGCHLD)Tj /T1_0 1 Tf (.)Tj /TT1 1 Tf 11.9986 0 0 11.9986 93.5891 361.1567 Tm [(10.8 )-776(Reliab)10(le-Signal )-278(T)60(erminology )-278(and )-278(Semantics)]TJ /T1_0 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5847 334.7598 Tm [(We )-213(n)]TJ 0 Tc 2.248 0 Td [(eed )-29(to )-29(de\336ne )-29(some )-29(of )-29(the )-29(terms )-29(used )-29(thr)15(oughout )-29(our )-29(discussion )-29(of )-29(signals.)-529(First, )-29(a)]TJ -2.248 -1.2 Td [(signal )-144(is)]TJ /T1_2 1 Tf 4.148 0 Td (generated)Tj /T1_0 1 Tf 4.283 0 Td [(for )-144(a )-144(pr)18(ocess )-144(\(or )-144(sent )-144(to )-144(a )-144(pr)16(ocess\) )-144(when )-144(the )-144(event )-144(that )-144(causes )-144(the)]TJ -8.431 -1.2 Td [(signal )-98(occurs.)-598(The )-98(event )-98(could )-98(be )-98(a )-98(har)21(dwar)]TJ 0.3476 Tc 20.346 0 Td (ee)Tj 0 Tc 1.306 0 Td [(xception )-98(\(e.g., )-98(divide )-98(by )-98(0\), )-98(a )-98(softwar)20(e)]TJ -21.652 -1.2 Td [(condition )-120(\(e.g., )-120(an)]TJ /TT0 1 Tf 8.528 0 Td (alarm)Tj /T1_0 1 Tf 3.37 0 Td [(timer )-120(expiring\), )-120(a )-120(terminal-generated )-120(signal, )-120(or )-120(a )-120(call )-120(to )-120(the)]TJ /TT0 1 Tf -11.898 -1.2 Td (kill)Tj /T1_0 1 Tf 2.82 0 Td [(function. )-420(When)-420(the )-170(signal )-170(is )-170(generated, )-170(the )-170(kernel )-170(usually )-170(sets )-170(a )-170(\337ag )-170(of )-170(some)]TJ -2.82 -1.2 Td [(form in the pr)18(ocess table.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-293(s)]TJ 0 Tc 2.17 0 Td [(ay )-109(that )-109(a )-109(signal )-109(is)]TJ /T1_2 1 Tf 8.443 0 Td [(deliver)18(ed)]TJ /T1_0 1 Tf 3.953 0 Td [(to )-109(a )-109(pr)18(ocess )-109(when )-109(the )-109(action )-109(for )-109(a )-109(signal )-109(is )-109(taken.)]TJ -16.366 -1.2 Td [(During )-36(the )-36(time )-36(between )-36(the )-36(generation )-36(of )-36(a )-36(signal )-36(and )-36(its )-36(delivery)]TJ 0.2857 Tc 29.878 0 Td (,t)Tj 0 Tc 0.862 0 Td [(he )-36(signal )-36(is )-36(said )-36(to)]TJ -30.739 -1.2 Td (be)Tj /T1_2 1 Tf 1.282 0 Td (pending)Tj /T1_0 1 Tf (.)Tj 0.4534 Tc 0.518 -1.2 Td (Ap)Tj -0.018 Tc 1.832 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-203(has )-203(the )-203(option )-203(of)]TJ /T1_2 1 Tf 10.701 0 Td (blocking)Tj /T1_0 1 Tf 3.823 0 Td [(the )-203(delivery )-203(of )-203(a )-203(signal.)-703(If )-203(a )-203(signal )-203(that )-203(is)]TJ -19.08 -1.2 Td [(blocked )-77(is )-77(generated )-77(for )-77(a )-77(pr)18(ocess, )-77(and )-77(if )-77(the )-77(action )-77(for )-77(that )-77(signal )-77(is )-77(either )-77(the )-77(default)]TJ T* [(action )-100(or )-100(to )-100(catch )-100(the )-100(signal, )-100(then )-100(the )-100(signal )-100(r)18(emains )-100(pending )-100(for )-100(the )-100(pr)18(ocess )-100(until )-100(the)]TJ T* [(pr)18(ocess )-33(either )-33(\(a\) )-33(unblocks )-33(the )-33(signal )-33(or )-33(\(b\) )-33(changes )-33(the )-33(action )-33(to )-33(ignor)]TJ 0.2831 Tc 31.467 0 Td (et)Tj 0 Tc 1.088 0 Td [(he )-33(signal.)-533(The)]TJ -32.555 -1.2 Td [(system )-101(determines )-101(what )-101(to )-101(do )-101(with )-101(a )-101(blocked )-101(signal )-101(when )-101(the )-101(signal )-101(is )-101(deliver)18(ed, )-101(not)]TJ T* [(when )-82(it\325s )-82(generated.)-583(This )-83(allows )-83(the )-83(pr)18(ocess )-83(to )-83(change )-83(the )-83(action )-83(for )-83(the )-83(signal )-83(befor)22(e)]TJ T* [(it\325s )-101(deliver)18(ed. )-351(The)]TJ /TT0 1 Tf 8.728 0 Td (sigpending)Tj /T1_0 1 Tf 6.351 0 Td [(function )-101(\(Section )-101(10.13\) )-101(can )-101(be )-101(called )-101(by )-101(a )-101(pr)18(ocess )-101(to)]TJ -15.079 -1.2 Td (determine which signals ar)Tj 0.25 Tc 11.953 0 Td (eb)Tj 0 Tc 1.282 0 Td (locked and pending.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47018 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (352)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (Normally)Tj 0.25 Tc 4.182 0 Td (,t)Tj 0 Tc 0.826 0 Td (he signal handler is called as)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 652.2609 Tm (void handler\(int)Tj /T1_2 1 Tf 10.2 0 Td (signo)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5923 634.2619 Tm (but if the)Tj /TT0 1 Tf 4.243 0 Td (SA_SIGINFO)Tj /T1_1 1 Tf 6.25 0 Td (\337ag is set, the signal handler is called as)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 617.5629 Tm (void handler\(int)Tj /T1_2 1 Tf 10.2 0 Td (signo)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.967 0 Td (iginfo_t *)Tj /T1_2 1 Tf (info)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 9.356 0 Td (oid *)Tj /T1_2 1 Tf (context)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 147.591 599.564 Tm (The)Tj /TT0 1 Tf 2.018 0 Td (siginfo)Tj /T1_1 1 Tf 4.544 0 Td [(str)8(uctur)]TJ 0.3441 Tc 3.49 0 Td (ec)Tj 0 Tc 1.267 0 Td [(ontains )-94(information )-94(about )-94(why )-94(the )-94(signal )-94(was )-94(generated.)]TJ -13.119 -1.2 Td [(An )-362(example )-362(of )-362(what )-362(it )-362(might )-362(look )-362(like )-362(is )-362(shown )-362(below)]TJ 0.8616 Tc 27.451 0 Td (.A)Tj 0 Tc 1.89 0 Td [(ll )-362(POSIX.1-compliant)]TJ -29.341 -1.2 Td [(implementations )-495(must )-495(include )-495(at )-495(least )-495(the)]TJ /TT0 1 Tf 21.725 0 Td (si_signo)Tj /T1_1 1 Tf 5.545 0 Td (and)Tj /TT0 1 Tf 2.438 0 Td (si_code)Tj /T1_1 1 Tf 4.945 0 Td (members.)Tj -34.654 -1.2 Td (Additionally)Tj 0.4846 Tc 5.563 0 Td (,i)Tj 0 Tc 1.026 0 Td [(mplementations )-235(that )-235(ar)]TJ 0.4846 Tc 10.773 0 Td (eX)Tj 0 Tc 1.631 0 Td [(SI )-235(compliant )-235(contain )-235(at )-235(least )-235(the )-235(following)]TJ -18.992 -1.2 Td (\336elds:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.591 533.7981 Tm (struct siginfo {)Tj 1.2 -1.189 Td (int )Tj 7.8 0 Td [(si_signo;)-1200(/* signal number */)]TJ -7.8 -1.189 Td (int )Tj 7.8 0 Td [(si_errno;)-1200(/* if nonzero, errno value from errno.h */)]TJ -7.8 -1.189 Td (int )Tj 7.8 0 Td [(si_code;)-1800(/* additional info \(depends on signal\) */)]TJ -7.8 -1.189 Td [(pid_t )-4200(si_pid;)-2400(/* sending process ID */)]TJ 0 -1.189 TD [(uid_t )-4200(si_uid;)-2400(/* sending process real user ID */)]TJ 0 -1.189 TD [(void )-4200(*si_addr;)-1800(/* address that caused the fault */)]TJ T* (int )Tj 7.8 0 Td [(si_status;)-600(/* exit value or signal number */)]TJ -7.8 -1.189 Td [(union sigval si_value;)-1200(/* application-specific value */)]TJ T* (/* possibly other fields also */)Tj -1.2 -1.189 Td (};)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5921 407.7357 Tm (The)Tj /TT0 1 Tf 1.924 0 Td (sigval)Tj /T1_1 1 Tf 3.85 0 Td (union contains the following \336elds:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 158.3904 389.9665 Tm [(int )-1200(sival_int;)]TJ T* (void *sival_ptr;)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5921 360.1984 Tm [(Applications )-13(pass )-13(an )-13(integer )-13(value )-13(in)]TJ /TT0 1 Tf 16.702 0 Td (si_value.sival_int)Tj /T1_1 1 Tf 11.063 0 Td [(or )-13(pass )-13(a )-13(pointer )-13(value )-13(in)]TJ /TT0 1 Tf -27.765 -1.2 Td (si_value.sival_ptr)Tj /T1_1 1 Tf 11.05 0 Td (when delivering signals.)Tj -9.25 -1.2 Td (Figur)Tj 0.3007 Tc 2.383 0 Td (e1)Tj 0 Tc 1.28 0 Td [(0.17 )-51(shows )-51(values )-51(of)]TJ /TT0 1 Tf 9.504 0 Td (si_code)Tj /T1_1 1 Tf 4.501 0 Td [(for )-51(various )-51(signals, )-51(as )-51(de\336ned )-51(by )-51(the )-51(Single)]TJ -19.467 -1.2 Td [(UNIX Speci\336cation.)-500(Note that implementations may de\336ne additional code values.)]TJ 1.8 -1.2 Td [(If )-60(the )-60(signal )-60(is)]TJ /TT0 1 Tf 6.658 0 Td (SIGCHLD)Tj /T1_1 1 Tf 0.3105 Tc (,t)Tj 0 Tc 5.086 0 Td [(hen )-60(the)]TJ /TT0 1 Tf 3.651 0 Td (si_pid)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.161 0 Td (si_status)Tj /T1_1 1 Tf 0.3104 Tc (,a)Tj 0 Tc 6.46 0 Td (nd)Tj /TT0 1 Tf 1.503 0 Td (si_uid)Tj /T1_1 1 Tf 3.91 0 Td [(\336elds )-60(will )-60(be)]TJ -33.23 -1.2 Td [(set. )-282(If)-281(the )-32(signal )-32(is)]TJ /TT0 1 Tf 8.554 0 Td (SIGBUS)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.132 0 Td (SIGILL)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.132 0 Td (SIGFPE)Tj /T1_1 1 Tf 0.2818 Tc (,o)Tj 0 Tc 4.678 0 Td (r)Tj /TT0 1 Tf 0.677 0 Td (SIGSEGV)Tj /T1_1 1 Tf 0.2818 Tc (,t)Tj 0 Tc 5.058 0 Td [(hen )-32(the)]TJ /TT0 1 Tf 3.594 0 Td (si_addr)Tj /T1_1 1 Tf 4.482 0 Td (contains)Tj -35.305 -1.2 Td [(the )-88(addr)18(ess )-88(r)18(esponsible )-88(for )-88(the )-88(fault, )-88(although )-88(the )-88(addr)21(ess )-87(might )-87(not )-87(be )-87(accurate.)-589(The)]TJ /TT0 1 Tf 0 -1.2 TD (si_errno)Tj /T1_1 1 Tf 5.14 0 Td [(\336eld )-90(contains )-90(the )-90(err)18(or )-90(number )-90(corr)18(esponding )-90(to )-90(the )-90(condition )-90(that )-90(caused)]TJ -5.14 -1.2 Td (the signal to be generated, although its use is implementation de\336ned\ .)Tj 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 1.958 0 Td (context)Tj /T1_1 1 Tf 3.246 0 Td [(ar)18(gument )-34(to )-34(the )-34(signal )-34(handler )-34(is )-34(a )-34(typeless )-34(pointer )-34(that )-34(can )-34(be )-34(cast )-34(to )-34(a)]TJ /TT0 1 Tf -7.004 -1.2 Td (ucontext_t)Tj /T1_1 1 Tf 6.428 0 Td [(str)8(uctur)]TJ 0.4282 Tc 3.49 0 Td (ei)Tj 0 Tc 1.198 0 Td [(dentifying )-178(the )-178(pr)18(ocess )-178(context )-178(at )-178(the )-178(time )-178(of )-178(signal )-178(delivery)109(.)]TJ -11.116 -1.2 Td [(This str)8(uctur)]TJ 0.25 Tc 5.65 0 Td (ec)Tj 0 Tc 1.173 0 Td (ontains at least the following \336elds:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5908 210.4375 Tm [(ucontext_t *uc_link;)-3000(/* pointer to context resumed when */)]TJ 15 -1.189 Td (/* this context returns */)Tj -15 -1.189 Td [(sigset_t )-1800(uc_sigmask;)-1200(/* signals blocked when this context */)]TJ 15 -1.189 Td (/* is active */)Tj -15 -1.189 Td [(stack_t )-2400(uc_stack;)-2400(/* stack used by this context */)]TJ 0 -1.189 TD [(mcontext_t )-600(uc_mcontext;)-600(/* machine-specific representation of */)]TJ 15 -1.189 Td (/* saved context */)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47019 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (350)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -2.14 TD (int sigaction\(int)Tj /T1_2 1 Tf 10.8 0 Td (signo)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.967 0 Td (onst struct sigaction *restrict)Tj /T1_2 1 Tf 19.2 0 Td (act)Tj /TT0 1 Tf (,)Tj -25.567 -1.189 Td (struct sigaction *restrict)Tj /T1_2 1 Tf 16.2 0 Td (oact)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 2.251 -2.14 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6046.25 cm 0 0 m 0 627 l 3900 627 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 588.6094 Tm [(The )-48(ar)18(gument)]TJ /T1_2 1 Tf 6.575 0 Td (signo)Tj /T1_1 1 Tf 2.465 0 Td [(is )-48(the )-48(signal )-48(number )-48(whose )-48(action )-48(we )-48(ar)]TJ 0.2976 Tc 18.068 0 Td (ee)Tj 0 Tc 1.256 0 Td [(xamining )-48(or )-48(modifying.)]TJ -28.364 -1.2 Td [(If )-12(the)]TJ /T1_2 1 Tf 2.581 0 Td (act)Tj /T1_1 1 Tf 1.446 0 Td [(pointer )-12(is )-12(non-null, )-12(we )-12(ar)]TJ 0.2619 Tc 11.233 0 Td (em)Tj 0 Tc 1.624 0 Td [(odifying )-12(the )-12(action.)-512(If )-12(the)]TJ /T1_2 1 Tf 11.709 0 Td (oact)Tj /T1_1 1 Tf 1.89 0 Td [(pointer )-12(is )-12(non-null,)]TJ -30.481 -1.2 Td [(the )-206(system )-206(r)18(eturns )-206(the )-206(pr)18(evious )-206(action )-206(for )-206(the )-206(signal )-206(thr)20(ough )-206(the)]TJ /T1_2 1 Tf 30.905 0 Td (oact)Tj /T1_1 1 Tf 2.084 0 Td (pointer)Tj 0.7057 Tc 3.146 0 Td (.T)Tj 0 Tc 1.569 0 Td (his)Tj -37.703 -1.2 Td [(function uses the following str)8(uctur)18(e:)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5835 533.7757 Tm (struct sigaction {)Tj 1.2 -1.189 Td [(void )-2400(\(*sa_handler\)\(int\);)-1200(/* addr of signal handler, */)]TJ 18 -1.189 Td (/* or SIG_IGN, or SIG_DFL */)Tj -18 -1.189 Td (sigset_t sa_mask;)Tj 18 0 Td (/* additional signals to block */)Tj -18 -1.189 Td [(int )-3000(sa_flags;)]TJ 18 0 Td (/* signal options, Figure 10.16 */)Tj -18 -2.378 Td (/* alternate handler */)Tj 0 -1.189 TD [(void )-2400(\(*sa_sigaction\)\(int,)-600(siginfo_t *, void *\);)]TJ -1.2 -1.189 Td (};)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 147.5835 428.0486 Tm [(When )-303(changing )-303(the )-303(action )-303(for )-303(a )-303(signal, )-303(if )-303(the)]TJ /TT0 1 Tf 22.472 0 Td (sa_handler)Tj /T1_1 1 Tf 6.553 0 Td [(\336eld )-303(contains )-303(the)]TJ -30.825 -1.2 Td [(addr)18(ess )-37(of )-37(a )-37(signal-catching )-37(function )-37(\(as )-37(opposed )-37(to )-37(either )-37(of )-37(the )-37(constants)]TJ /TT0 1 Tf 33.572 0 Td (SIG_IGN)Tj /T1_1 1 Tf 4.487 0 Td (or)Tj /TT0 1 Tf -38.059 -1.2 Td (SIG_DFL)Tj /T1_1 1 Tf [(\), )-46(then )-46(the)]TJ /TT0 1 Tf 9.028 0 Td (sa_mask)Tj /T1_1 1 Tf 4.496 0 Td [(\336eld )-46(speci\336es )-46(a )-46(set )-46(of )-46(signals )-46(that )-46(ar)]TJ 0.2965 Tc 16.096 0 Td (ea)Tj 0 Tc 1.276 0 Td [(dded )-46(to )-46(the )-46(signal)]TJ -30.896 -1.2 Td [(mask )-247(of )-247(the )-247(pr)18(ocess )-247(befor)]TJ 0.4966 Tc 12.198 0 Td (et)Tj 0 Tc 1.302 0 Td [(he )-246(signal-catching )-246(function )-246(is )-246(called.)-746(If )-246(and )-246(when )-246(the)]TJ -13.5 -1.2 Td [(signal-catching )-104(function )-104(r)18(eturns, )-104(the )-104(signal )-104(mask )-104(of )-104(the )-104(pr)18(ocess )-104(is )-104(r)19(eset )-104(to )-104(its )-104(pr)18(evious)]TJ 0 -1.2 Td [(value. )-471(This)-471(way)111(,)-471(we)-471(a)]TJ -0.018 Tc 10.573 0 Td [(re )-257(a)]TJ 0 Tc 1.827 0 Td [(ble )-221(to )-221(block )-221(certain )-221(signals )-221(whenever )-221(a )-221(signal )-221(handler )-221(is)]TJ -12.4 -1.2 Td [(invoked. )-347(The)-346(operating )-97(system )-97(includes )-97(the )-97(signal )-97(being )-97(deliver)20(ed )-97(in )-97(the )-97(signal )-97(mask)]TJ -0 -1.2 Td [(when )-357(the )-357(handler )-357(is )-357(invoked.)-857(Hence, )-357(we )-357(ar)]TJ 0.6072 Tc 21.656 0 Td (eg)Tj 0 Tc 1.642 0 Td [(uaranteed )-357(that )-357(whenever )-357(we )-357(ar)17(e)]TJ -23.298 -1.2 Td [(pr)18(ocessing )-52(a )-52(given )-52(signal, )-52(another )-52(occurr)18(ence )-52(of )-52(that )-52(same )-52(signal )-52(is )-52(blocked )-52(until )-52(we\325r)16(e)]TJ 0 -1.2 Td [(\336nished )-373(pr)18(ocessing )-373(the )-373(\336rst )-373(occurr)16(ence. )-623(Recall)-624(fr)18(om )-373(Section )-373(10.8 )-373(that )-373(additional)]TJ -0 -1.2 Td [(occurr)18(ences )-112(of )-112(the )-112(same )-112(signal )-112(ar)]TJ 0.3618 Tc 15.099 0 Td (eu)Tj 0 Tc 1.444 0 Td [(sually )-112(not )-112(queued.)-612(If )-112(the )-112(signal )-112(occurs )-112(\336ve )-112(times)]TJ -16.543 -1.2 Td [(while )-115(it )-115(is )-115(blocked, )-115(when )-115(we )-115(unblock )-115(the )-115(signal, )-115(the )-115(signal-handling )-115(function )-115(for )-115(that)]TJ 0 -1.2 TD [(signal )-59(will )-59(usually )-59(be )-59(invoked )-59(only )-59(one )-59(time.)-560(\(This )-59(characteristic )-59(was )-59(illustrated )-59(in )-59(the)]TJ T* [(pr)18(evious example.\))]TJ 1.8 -1.2 Td [(Once )-94(we )-94(install )-94(an )-94(action )-94(for )-94(a )-94(given )-94(signal, )-94(that )-94(action )-94(r)18(emains )-94(installed )-94(until )-94(we)]TJ -1.8 -1.2 Td [(explicitly )-51(change )-51(it )-51(by )-51(calling)]TJ /TT0 1 Tf 13.417 0 Td (sigaction)Tj /T1_1 1 Tf 0.5514 Tc (.U)Tj 0 Tc 6.979 0 Td [(nlike )-51(earlier )-51(systems )-51(with )-51(their )-51(unr)16(eliable)]TJ -20.396 -1.2 Td [(signals, )-24(POSIX.1 )-24(r)18(equir)18(es )-24(that )-24(a )-24(signal )-24(handler )-24(r)18(emain )-24(installed )-24(until )-24(explicitly )-24(changed.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 1.935 0 Td (sa_flags)Tj /T1_1 1 Tf 5.061 0 Td [(\336eld )-11(of )-11(the)]TJ /T1_2 1 Tf 5.036 0 Td (act)Tj /T1_1 1 Tf 1.446 0 Td [(str)8(uctur)]TJ 0.2615 Tc 3.49 0 Td (es)Tj 0 Tc 1.164 0 Td [(peci\336es )-11(various )-11(options )-11(for )-11(the )-11(handling )-11(of)]TJ -19.933 -1.2 Td [(this )-269(signal.)-769(Figur)]TJ 0.519 Tc 8.188 0 Td (e1)Tj 0 Tc 1.498 0 Td [(0.16 )-269(details )-269(the )-269(meaning )-269(of )-269(these )-269(options )-269(when )-269(set.)-769(The )-269(SUS)]TJ -9.686 -1.2 Td [(column )-115(contains )-115(\245 )-115(if )-115(the )-115(\337ag )-115(is )-115(de\336ned )-115(as )-115(part )-115(of )-115(the )-115(base )-115(POSIX.1 )-115(speci\336cation, )-115(and)]TJ /T1_0 1 Tf T* (XSI)Tj /T1_1 1 Tf 1.917 0 Td (if it is de\336ned as part of the XSI option.)Tj -0.117 -1.2 Td (The)Tj /TT0 1 Tf 2.448 0 Td (sa_sigaction)Tj /T1_1 1 Tf 7.974 0 Td [(\336eld )-524(is )-524(an )-524(alternative )-524(signal )-524(handler )-524(used )-524(when )-524(the)]TJ /TT0 1 Tf -12.223 -1.2 Td (SA_SIGINFO)Tj /T1_1 1 Tf 6.522 0 Td [(\337ag )-272(is )-272(used )-272(with)]TJ /TT0 1 Tf 8.619 0 Td (sigaction)Tj /T1_1 1 Tf 0.7724 Tc (.I)Tj 0 Tc 6.759 0 Td [(mplementations )-272(might )-272(use )-272(the )-272(same)]TJ -21.9 -1.2 Td [(storage )-135(for )-135(both )-135(the)]TJ /TT0 1 Tf 9.435 0 Td (sa_sigaction)Tj /T1_1 1 Tf 7.585 0 Td [(\336eld )-135(and )-135(the)]TJ /TT0 1 Tf 6.222 0 Td (sa_handler)Tj /T1_1 1 Tf 6.385 0 Td [(\336eld, )-135(so )-135(applications)]TJ -29.627 -1.2 Td (can use only one of these \336elds at a time.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47020 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.5)]TJ 32.299 0 Td [(Interr)8(upted )-250(System )-250(Calls)]TJ /T1_1 1 Tf 13.534 0 Td (329)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(To )-400(p)]TJ -0.018 Tc 2.134 0 Td (re)Tj 0 Tc 0.856 0 Td [(vent )-216(applications )-216(fr)18(om )-216(having )-216(to )-216(handle )-216(interr)8(upted )-216(system )-216(calls, )-216(4.2BSD)]TJ -4.79 -1.2 Td [(intr)18(oduced )-8(the )-8(automatic )-8(r)18(estarting )-8(of )-8(certain )-8(interr)8(upted )-8(system )-8(calls.)-504(The )-8(system )-8(calls)]TJ 0 -1.2 Td [(that )-39(wer)]TJ 0.2886 Tc 3.713 0 Td (ea)Tj 0 Tc 1.268 0 Td [(utomatically )-39(r)18(estarted )-39(ar)19(e)]TJ /TT0 1 Tf 11.696 0 Td (ioctl)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.539 0 Td (read)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 2.939 0 Td (readv)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.539 0 Td (write)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.539 0 Td (writev)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.139 0 Td (wait)Tj /T1_0 1 Tf 0.2885 Tc (,a)Tj 0 Tc 3.439 0 Td (nd)Tj /TT0 1 Tf -37.807 -1.2 Td (waitpid)Tj /T1_0 1 Tf 0.6579 Tc (.A)Tj 0.4079 Tc 5.886 0 Td (sw)Tj 0 Tc 1.666 0 Td [(e\325ve )-158(mentioned, )-158(the )-158(\336rst )-158(\336ve )-158(of )-158(these )-158(functions )-158(ar)]TJ 0.408 Tc 23.056 0 Td (ei)Tj 0 Tc 1.178 0 Td [(nterr)8(upted )-158(by )-158(a)]TJ -31.786 -1.2 Td [(signal )-220(only )-220(if )-220(they )-220(ar)]TJ 0.4704 Tc 9.945 0 Td (eo)Tj 0 Tc 1.495 0 Td [(perating )-220(on )-220(a )-220(slow )-220(device;)]TJ /TT0 1 Tf 12.924 0 Td (wait)Tj /T1_0 1 Tf 2.87 0 Td (and)Tj /TT0 1 Tf 2.163 0 Td (waitpid)Tj /T1_0 1 Tf 4.67 0 Td (ar)Tj 0.4704 Tc 0.877 0 Td (ea)Tj 0 Tc 1.449 0 Td (lways)Tj -36.395 -1.2 Td [(interr)8(upted )-45(when )-45(a )-45(signal )-45(is )-45(caught.)-545(Since )-45(this )-45(caused )-45(a )-45(pr)18(oblem )-45(for )-45(some )-45(applications)]TJ 0 -1.2 TD [(that )-277(didn\325t )-277(want )-277(the )-277(operation )-277(r)17(estarted )-277(if )-277(it )-277(was )-277(interr)8(upted, )-277(4.3BSD )-277(allowed )-277(the)]TJ T* [(pr)18(ocess to disable this featur)18(e)-250(on)-250(a)-250(per)18(-signal basis.)]TJ 7.9995 0 0 7.9995 183.5896 563.9662 Tm [(POSIX.1 )-30(r)18(equir)18(es )-30(an )-30(implementation )-30(to )-30(r)18(estart )-30(system )-30(calls )-30(only )-30(when )-30(the)]TJ /TT0 1 Tf 33.061 0 Td (SA_RESTART)Tj /T1_0 1 Tf 6.28 0 Td [(\337ag )-30(is)]TJ -39.341 -1.25 Td [(in )-73(ef)18(fect )-73(for )-73(the )-73(interr)8(upting )-73(signal.)-573(As )-73(we )-73(will )-73(see )-73(in )-73(Section )-73(10.14, )-73(this )-73(\337ag )-73(is )-73(used )-73(with )-73(the)]TJ /TT0 1 Tf 0 -1.25 TD (sigaction)Tj /T1_0 1 Tf 6.05 0 Td [(function )-400(to )-400(allow )-400(applications )-400(to )-400(r)18(equest )-400(that )-400(interr)8(upted )-400(system )-400(calls )-400(be)]TJ -0.018 Tc -6.05 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (started.)Tj -0.856 -2.375 Td (Historically)Tj 0.3693 Tc 5.076 0 Td (,w)Tj 0 Tc 1.453 0 Td [(hen )-119(using )-119(the)]TJ /TT0 1 Tf 6.594 0 Td (signal)Tj /T1_0 1 Tf 3.969 0 Td [(function )-119(to )-119(establish )-119(a )-119(signal )-119(handler)]TJ 0.3691 Tc 16.805 0 Td (,i)Tj 0 Tc 0.91 0 Td (mplementations)Tj -34.807 -1.25 Td [(varied )-87(with )-87(r)18(espect )-87(to )-87(how )-87(interr)8(upted )-87(system )-87(calls )-87(wer)]TJ 0.3371 Tc 25.347 0 Td (eh)Tj 0 Tc 1.398 0 Td [(andled. )-337(System)]TJ 0.3373 Tc 7.441 0 Td (Vn)Tj 0 Tc 1.641 0 Td [(ever )-87(r)18(estarted)]TJ -35.828 -1.25 Td [(system )-241(calls )-241(by )-241(default.)-741(BSD, )-241(in )-241(contrast, )-241(r)18(estarted )-241(them )-241(if )-241(the )-241(calls )-241(wer)]TJ 0.491 Tc 34.35 0 Td (ei)Tj 0 Tc 1.261 0 Td [(nterr)8(upted )-241(by)]TJ -35.611 -1.25 Td [(signals. )-297(On)-298(Fr)18(eeBSD )-47(8.0, )-47(Linux )-47(3.2.0, )-47(and )-47(Mac )-47(OS )-47(X )-47(10.6.8, )-47(when )-47(signal )-47(handlers )-47(ar)]TJ 0.2976 Tc 37.428 0 Td (ei)Tj 0 Tc 1.068 0 Td (nstalled)Tj -38.496 -1.25 Td [(with )-6(the)]TJ /TT0 1 Tf 3.931 0 Td (signal)Tj /T1_0 1 Tf 3.856 0 Td [(function, )-6(interr)8(upted )-6(system )-6(calls )-6(will )-6(be )-6(r)20(estarted. )-255(The)-256(default )-5(on )-5(Solaris )-5(10,)]TJ -7.787 -1.25 Td [(however)74(,)-409(is)-409(to)-409(r)17(eturn )-159(an )-159(err)18(or )-159(\()]TJ /TT0 1 Tf 14.469 0 Td (EINTR)Tj /T1_0 1 Tf 0.4096 Tc (\)i)Tj 0 Tc 4.034 0 Td [(nstead )-160(when )-160(system )-160(calls )-160(ar)]TJ 0.4096 Tc 12.957 0 Td (ei)Tj 0 Tc 1.18 0 Td [(nterr)8(upted )-160(by )-160(signal)]TJ -32.639 -1.25 Td [(handlers )-305(installed )-305(with )-305(the)]TJ /TT0 1 Tf 13.299 0 Td (signal)Tj /T1_0 1 Tf 4.155 0 Td [(function. )-555(By)-555(using )-305(our )-305(own )-305(implementation )-305(of )-305(the)]TJ /TT0 1 Tf -17.454 -1.25 Td (signal)Tj /T1_0 1 Tf 3.85 0 Td (function \(shown in Figur)Tj 0.25 Tc 11.014 0 Td (e1)Tj 0 Tc 1.229 0 Td [(0.18\), we avoid having to deal with these dif)18(fer)18(ences.)]TJ 9.9994 0 0 9.9994 147.5917 422.9746 Tm [(One )-436(of )-436(the )-436(r)18(easons )-436(4.2BSD )-436(intr)18(oduced )-436(the )-436(automatic )-436(r)18(estart )-436(featur)18(e)-686(is)-686(that)]TJ -1.8 -1.2 Td [(sometimes )-218(we )-218(don\325t )-218(know )-218(that )-218(the )-218(input )-218(or )-218(output )-218(device )-218(is )-218(a )-218(slow )-218(device.)-718(If )-218(the)]TJ 0 -1.2 TD [(pr)18(ogram )-63(we )-63(write )-63(can )-63(be )-63(used )-63(interactively)]TJ 0.3135 Tc 19.465 0 Td (,t)Tj 0 Tc 0.889 0 Td [(hen )-63(it )-63(might )-63(be )-63(r)18(eading )-63(or )-63(writing )-63(a )-63(slow)]TJ -20.355 -1.2 Td [(device, )-33(since )-33(terminals )-33(fall )-33(into )-33(this )-33(category)]TJ 0.5332 Tc 19.683 0 Td (.I)Tj 0 Tc 1.12 0 Td [(f)-283(we)-283(catch )-33(signals )-33(in )-33(this )-33(pr)18(ogram, )-33(and )-33(if)]TJ -20.803 -1.2 Td [(the )-170(system )-170(doesn\325t )-170(pr)18(ovide )-170(the )-170(r)18(estart )-170(capability)]TJ 0.4201 Tc 22.172 0 Td (,t)Tj 0 Tc 0.996 0 Td [(hen )-170(we )-170(have )-170(to )-170(test )-170(every )-170(r)18(ead )-170(or)]TJ -23.168 -1.2 Td [(write for the interr)8(upted err)18(or r)18(eturn and r)18(eissue the r)18(ead or write.)]TJ 1.8 -1.2 Td (Figur)Tj 0.3953 Tc 2.383 0 Td (e1)Tj 0 Tc 1.374 0 Td [(0.3 )-145(summarizes )-145(the )-145(signal )-145(functions )-145(and )-145(their )-145(semantics )-145(pr)16(ovided )-145(by )-145(the)]TJ -5.557 -1.2 Td (various implementations.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1578.25 3226.25 cm 0 0 m 3335 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 425.093 314.5622 Tm [(Automatic r)18(estart)]TJ 0.782 -1.25 Td [(of interr)8(upted)]TJ 0.237 -1.25 Td (system calls?)Tj -33.406 1.25 Td [(Functions)-4287(System)]TJ 16.098 0.625 Td (Signal handler)Tj -0.018 Tc -0.5 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (mains installed)Tj 9.225 1.25 Td (Ability to)Tj -0.75 -1.25 Td (block signals)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1578.25 2906.25 cm 0 0 m 3335 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4913.25 2886.25 cm 0 0 m -3335 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 217.0249 280.5495 Tm [(ISO C, POSIX.1)-3676(unspeci\336ed )-3025(unspeci\336ed)-3372(unspeci\336ed)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2110.25 2766.25 cm 0 0 m 2803 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 217.0119 268.5355 Tm (V7, SVR2, SVR3)Tj 28.647 0 Td (never)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2110.25 2646.25 cm 0 0 m 2803 0 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 216.9989 256.523 Tm (SVR4, Solaris)Tj 28.647 0 Td (never)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2110.25 2526.25 cm 0 0 m 2803 0 l S Q Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 216.9859 244.512 Tm (4.2BSD )Tj 12.708 0 Td (\245)Tj 6.6355 Tc 8.395 0 Td (\245a)Tj 0 Tc 7.741 0 Td (lways)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2110.25 2406.25 cm 0 0 m 2803 0 l S Q Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 216.9728 232.5023 Tm (4.3BSD, 4.4BSD,)Tj 0 -1.25 TD [(Fr)18(eeBSD, Linux,)]TJ /TT0 1 Tf -6.9 2.875 Td (signal)Tj /T1_0 1 Tf 6.9 -4.125 Td (Mac OS X)Tj 12.709 1.25 Td (\245)Tj 8.394 0 Td (\245)Tj 7.222 0 Td (default)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1578.25 2086.25 cm 0 0 m 3335 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1578.25 2066.25 cm 0 0 m 3335 0 l S Q Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 216.9598 198.5047 Tm (POSIX.1, 4.4BSD,)Tj T* [(SVR4, Fr)18(eeBSD,)]TJ T* (Linux, Mac OS X,)Tj T* (Solaris)Tj /TT0 1 Tf -6.9 1.875 Td (sigaction)Tj /T1_0 1 Tf 19.608 0 Td (\245)Tj 8.394 0 Td (\245)Tj 6.952 0 Td (optional)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1578.25 1646.25 cm 0 0 m 3335 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4191.25 1646.25 cm 0 0 m 0 1580 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3575.25 1646.25 cm 0 0 m 0 1580 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2848.25 1646.25 cm 0 0 m 0 1580 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2110.25 1646.25 cm 0 0 m 0 1580 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4913.25 1646.25 cm 0 0 m 0 1580 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1578.25 1646.25 cm 0 0 m 0 1580 l S Q Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 207.1641 146.5209 Tm (Figure 10.3)Tj /T1_0 1 Tf 5.695 0 Td [(Featur)18(es pr)18(ovided by various signal implementations)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47021 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (322)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 195.4083 668.9599 Tm [(These )-778(include)]TJ /TT0 1 Tf 7.934 0 Td (tcsetattr)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 6.678 0 Td (tcsendbreak)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 7.878 0 Td (tcdrain)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 5.478 0 Td (tcflush)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -27.968 -1.2 Td (tcflow)Tj /T1_1 1 Tf 0.539 Tc (,a)Tj 0 Tc 4.889 0 Td (nd)Tj /TT0 1 Tf 1.732 0 Td (tcsetpgrp)Tj /T1_1 1 Tf 0.789 Tc (.W)Tj 0.539 Tc 7.347 0 Td (ed)Tj 0 Tc 1.629 0 Td [(escribe )-289(these )-289(terminal )-289(operations )-289(in)]TJ -15.597 -1.2 Td (Chapter 18.)Tj /TT0 1 Tf -6.582 -1.84 Td (SIGURG)Tj /T1_1 1 Tf 6.582 0 Td [(This )-59(signal )-59(noti\336es )-59(the )-59(pr)17(ocess )-59(that )-59(an )-59(ur)18(gent )-59(condition )-59(has )-59(occurr)16(ed. )-309(It)]TJ 0 -1.2 TD [(is )-80(optionally )-80(generated )-80(when )-80(out-of-band )-80(data )-80(is )-80(r)18(eceived )-80(on )-80(a )-80(network)]TJ T* (connection.)Tj /TT0 1 Tf -6.582 -1.84 Td (SIGUSR1)Tj /T1_1 1 Tf 6.582 0 Td [(This is a user)18(-de\336ned signal, for use in application pr)18(ograms.)]TJ /TT0 1 Tf -6.582 -1.84 Td (SIGUSR2)Tj /T1_1 1 Tf 6.582 0 Td [(This )-336(is )-336(another )-336(user)18(-de\336ned )-336(signal, )-336(similar )-336(to)]TJ /TT0 1 Tf 22.558 0 Td (SIGUSR1)Tj /T1_1 1 Tf 0.5856 Tc (,f)Tj 0 Tc 5.369 0 Td [(or )-336(use )-336(in)]TJ -27.927 -1.2 Td [(application pr)18(ograms.)]TJ /TT0 1 Tf -6.582 -1.84 Td (SIGVTALRM)Tj /T1_1 1 Tf 6.582 0 Td [(This )-410(signal )-410(is )-410(generated )-410(when )-410(a )-410(virtual )-410(interval )-410(timer )-410(set )-410(by )-410(the)]TJ /TT0 1 Tf T* (setitimer)Tj /T1_1 1 Tf 5.4 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td [(function expir)18(es.)]TJ /TT0 1 Tf -13.398 -1.84 Td (SIGWAITING)Tj /T1_1 1 Tf 6.582 0 Td [(This )-166(signal )-166(is )-166(used )-166(internally )-166(by )-166(the )-166(Solaris )-166(thr)20(eads )-166(library)]TJ 0.4159 Tc 27.058 0 Td (,a)Tj 0 Tc 1.166 0 Td [(nd )-166(is )-166(not)]TJ -28.224 -1.2 Td (available for general use.)Tj /TT0 1 Tf -6.582 -1.84 Td (SIGWINCH)Tj /T1_1 1 Tf 6.582 0 Td [(The )-345(kernel )-345(maintains )-345(the )-345(size )-345(of )-345(the )-345(window )-345(associated )-345(with )-345(each)]TJ T* [(terminal )-159(and )-159(pseudo )-159(terminal.)]TJ 0.4091 Tc 14.587 0 Td (Ap)Tj -0.018 Tc 1.788 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-159(can )-159(get )-159(and )-159(set )-159(the )-159(window)]TJ -17.298 -1.2 Td [(size )-137(with )-137(the)]TJ /TT0 1 Tf 6.274 0 Td (ioctl)Tj /T1_1 1 Tf 3.387 0 Td [(function, )-137(which )-137(we )-137(describe )-137(in )-137(Section )-137(18.12.)-634(If )-136(a)]TJ -9.66 -1.2 Td [(pr)18(ocess )-293(changes )-293(the )-293(window )-293(size )-293(fr)18(om )-293(its )-293(pr)18(evious )-293(value )-293(using )-293(the)]TJ /TT0 1 Tf T* (ioctl)Tj /T1_1 1 Tf 3.408 0 Td [(set-window-size )-158(command, )-158(the )-158(kernel )-158(generates )-158(the)]TJ /TT0 1 Tf 24.21 0 Td (SIGWINCH)Tj /T1_1 1 Tf -27.618 -1.2 Td [(signal for the for)18(egr)18(ound pr)18(ocess gr)18(oup.)]TJ /TT0 1 Tf -6.582 -1.84 Td (SIGXCPU)Tj /T1_1 1 Tf 6.582 0 Td [(The )-51(Single )-51(UNIX )-51(Speci\336cation )-51(supports )-51(the )-51(concept )-51(of )-51(r)21(esour)18(ce )-51(limits )-51(as)]TJ -0 -1.2 Td [(part )-27(of )-27(the )-27(XSI )-27(option; )-27(r)18(efer )-27(to )-27(Section )-27(7.1)53(1. )-277(If)-278(the )-27(pr)18(ocess )-27(exceeds )-27(its )-27(soft)]TJ 0 -1.2 Td (CPU time limit, the)Tj /TT0 1 Tf 8.789 0 Td (SIGXCPU)Tj /T1_1 1 Tf 4.45 0 Td (signal is generated.)Tj 7.9995 0 0 7.9995 237.5848 352.1789 Tm [(In )-40(Figur)]TJ 0.2903 Tc 3.592 0 Td (e1)Tj 0 Tc 1.269 0 Td [(0.1, )-40(we )-40(labeled )-40(the )-40(default )-40(action )-40(for)]TJ /TT0 1 Tf 16.543 0 Td (SIGXCPU)Tj /T1_1 1 Tf 4.49 0 Td [(as )-40(either )-40(\324)36(\324terminate\325)37(\325)]TJ -25.894 -1.25 Td [(or )-85(\324)37(\324terminate )-85(with )-85(a )-85(cor)]TJ 0.3349 Tc 10.961 0 Td (e\336)Tj 0 Tc 1.419 0 Td (le.\325)Tj 0.5849 Tc 1.261 0 Td (\325T)Tj 0 Tc 1.476 0 Td [(he )-85(default )-85(depends )-85(on )-85(the )-85(operating )-85(system.)]TJ -15.117 -1.25 Td [(Linux )-36(3.2.0 )-36(and )-36(Solaris )-36(10 )-36(support )-36(a )-36(default )-36(action )-36(of )-36(terminate )-36(with )-36(a )-36(cor)]TJ 0.2865 Tc 32.859 0 Td (e\336)Tj 0 Tc 1.371 0 Td (le,)Tj -34.229 -1.25 Td [(wher)18(eas )-19(Fr)18(eeBSD )-19(8.0 )-19(and )-19(Mac )-19(OS )-19(X )-19(10.6.8 )-19(support )-19(a )-19(default )-19(action )-19(of )-19(terminate)]TJ 0 -1.25 TD [(without )-61(generating )-61(a )-61(cor)]TJ 0.3108 Tc 11.053 0 Td (e\336)Tj 0 Tc 1.395 0 Td [(le. )-311(The)-311(Single )-61(UNIX )-61(Speci\336cation )-61(r)18(equir)18(es )-61(that )-61(the)]TJ -12.448 -1.25 Td [(default )-150(action )-150(be )-150(to )-150(terminate )-150(the )-150(pr)18(ocess )-150(abnormally)]TJ 0.6505 Tc 24.468 0 Td (.W)Tj 0 Tc 1.9 0 Td [(hether )-150(a )-150(cor)]TJ 0.4005 Tc 5.511 0 Td (e\336)Tj 0 Tc 1.485 0 Td [(le )-150(is)]TJ -33.365 -1.25 Td (generated is left up to the implementation.)Tj /TT0 1 Tf 9.9994 0 0 9.9994 129.5912 271.1837 Tm (SIGXFSZ)Tj /T1_1 1 Tf 6.582 0 Td [(This )-48(signal )-48(is )-48(generated )-48(if )-48(the )-48(pr)18(ocess )-48(exceeds )-48(its )-48(soft )-48(\336le )-48(size )-48(limit; )-48(r)22(efer)]TJ 0 -1.2 TD [(to Section 7.1)55(1.)]TJ 7.9995 0 0 7.9995 237.5847 239.1856 Tm [(Just )-80(as )-80(with)]TJ /TT0 1 Tf 5.633 0 Td (SIGXCPU)Tj /T1_1 1 Tf 0.33 Tc (,t)Tj 0 Tc 5.106 0 Td [(he )-80(default )-80(action )-80(taken )-80(with)]TJ /TT0 1 Tf 13.019 0 Td (SIGXFSZ)Tj /T1_1 1 Tf 4.53 0 Td [(depends )-80(on )-80(the)]TJ -28.288 -1.25 Td [(operating )-37(system.)-537(On )-37(Linux )-37(3.2.0 )-37(and )-37(Solaris )-37(10, )-37(the )-37(default )-37(is )-37(to )-37(terminate )-37(the)]TJ 0 -1.25 TD [(pr)18(ocess )-28(and )-28(cr)18(eate )-28(a )-28(cor)]TJ 0.2784 Tc 10.574 0 Td (e\336)Tj 0 Tc 1.362 0 Td [(le. )-278(On)-279(Fr)18(eeBSD )-28(8.0 )-28(and )-28(Mac )-28(OS )-28(X )-28(10.6.8, )-28(the )-28(default)]TJ -11.936 -1.25 Td [(is )-186(to )-186(terminate )-186(the )-186(pr)18(ocess )-186(without )-186(generating )-186(a )-186(cor)]TJ 0.4363 Tc 24.14 0 Td (e\336)Tj 0 Tc 1.52 0 Td [(le. )-436(The)-436(Single )-186(UNIX)]TJ -25.66 -1.25 Td [(Speci\336cation )-373(r)18(equir)18(es )-373(that )-373(the )-373(default )-373(action )-373(be )-373(to )-373(terminate )-373(the )-373(pr)21(ocess)]TJ 0 -1.25 Td (abnormally)Tj 0.5 Tc 4.986 0 Td (.W)Tj 0 Tc 1.75 0 Td (hether a cor)Tj 0.25 Tc 5.21 0 Td (e\336)Tj 0 Tc 1.334 0 Td (le is generated is left up to the implementation.)Tj /TT0 1 Tf 9.9994 0 0 9.9994 129.5919 168.1899 Tm (SIGXRES)Tj /T1_1 1 Tf 6.582 0 Td [(This )-225(signal )-225(is )-225(de\336ned )-225(only )-225(by )-225(Solaris.)-725(It )-225(is )-225(optionally )-225(used )-225(to )-225(notify)]TJ 0 -1.2 TD [(pr)18(ocesses )-395(that )-395(have )-395(exceeded )-395(a )-395(pr)18(econ\336gur)18(ed )-395(r)18(esour)18(ce )-395(value.)-895(The)]TJ T* [(Solaris )-1(r)18(esour)18(ce )-1(contr)18(ol )-1(mechanism )-1(is )-1(a )-1(general )-1(facility )-1(for )-1(contr)18(olling )-1(the)]TJ T* [(use of shar)18(ed r)18(esour)18(ces among independent application sets.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47022 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 710 Tm [(Section )-250(10.2)]TJ 36.477 0 Td [(Signal )-250(Concepts)]TJ /T1_1 1 Tf 9.356 0 Td (317)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7040.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7040.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-37(cor)]TJ 0.2866 Tc 3.328 0 Td (e\336)Tj 0 Tc 1.371 0 Td [(le )-37(will )-37(not )-37(be )-37(generated )-37(if )-37(\(a\) )-37(the )-37(pr)18(ocess )-37(was )-37(set-user)18(-ID )-37(and )-37(the )-37(curr)22(ent)]TJ -6.498 -1.2 Td [(user )-185(is )-185(not )-185(the )-185(owner )-185(of )-185(the )-185(pr)15(ogram )-185(\336le, )-185(\(b\) )-185(the )-185(pr)18(ocess )-185(was )-185(set-gr)18(oup-ID )-185(and )-185(the)]TJ 0 -1.2 TD [(curr)18(ent )-50(user )-50(is )-50(not )-50(the )-50(gr)18(oup )-50(owner )-50(of )-50(the )-50(\336le, )-50(\(c\) )-50(the )-50(user )-50(does )-50(not )-50(have )-50(permission )-50(to)]TJ -0 -1.2 Td [(write )-82(in )-82(the )-82(curr)18(ent )-82(working )-82(dir)19(ectory)]TJ 0.3318 Tc 17.124 0 Td (,\()Tj 0 Tc 0.915 0 Td [(d\) )-82(the )-82(\336le )-82(alr)18(eady )-82(exists )-82(and )-82(the )-82(user )-82(does )-82(not)]TJ -18.039 -1.2 Td [(have )-43(permission )-43(to )-43(write )-43(to )-43(it, )-43(or )-43(\(e\) )-43(the )-43(\336le )-43(is )-43(too )-43(big )-43(\(r)18(ecall )-43(the)]TJ /TT0 1 Tf 28.859 0 Td (RLIMIT_CORE)Tj /T1_0 1 Tf 6.893 0 Td [(limit )-43(in)]TJ -35.752 -1.2 Td [(Section )-102(7.1)55(1\). )-352(The)-351(permissions )-102(of )-102(the)]TJ /TT0 1 Tf 17.111 0 Td (core)Tj /T1_0 1 Tf 2.752 0 Td [(\336le )-102(\(assuming )-102(that )-102(the )-102(\336le )-102(doesn\325t )-102(alr)20(eady)]TJ -19.863 -1.2 Td (exist\) ar)Tj 0.25 Tc 3.496 0 Td (eu)Tj 0 Tc 1.332 0 Td [(sually user)18(-r)18(ead and user)18(-write, although Mac OS X sets only user)18(-r)18(ead.)]TJ -3.028 -1.2 Td [(In )-194(Figur)]TJ 0.4445 Tc 3.746 0 Td (e1)Tj 0 Tc 1.424 0 Td [(0.1, )-194(the )-194(signals )-194(with )-194(a )-194(description )-194(of )-194(\324)34(\324har)18(dwar)]TJ 0.4445 Tc 21.768 0 Td (ef)Tj 0 Tc 1.256 0 Td (ault\325)Tj 0.4445 Tc 1.961 0 Td (\325c)Tj 0 Tc 1.166 0 Td [(orr)18(espond )-194(to)]TJ -33.122 -1.2 Td [(implementation-de\336ned )-256(har)18(dwar)]TJ 0.5057 Tc 15.047 0 Td (ef)Tj 0 Tc 1.318 0 Td [(aults. )-506(Many)-505(of )-256(these )-256(names )-256(ar)]TJ 0.5057 Tc 14.671 0 Td (et)Tj 0 Tc 1.311 0 Td [(aken )-256(fr)18(om )-256(the)]TJ -32.346 -1.2 Td [(original )-53(PDP)]TJ 5.737 0.09 Td (-)Tj -0.055 Tc 0.333 -0.09 Td [(11 )-163(i)]TJ 0 Tc 1.539 0 Td [(mplementation )-53(of )-53(the )-53(UNIX )-53(System.)-555(Check )-53(your )-53(system\325s )-53(manuals )-53(to)]TJ -7.61 -1.2 Td [(determine exactly which type of err)18(or these signals corr)18(espond to.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-184(n)]TJ 0 Tc 2.219 0 Td (ow describe each of these signals in mor)Tj 0.25 Tc 17.727 0 Td (ed)Tj 0 Tc 1.34 0 Td (etail.)Tj /TT0 1 Tf -23.086 -1.84 Td (SIGABRT)Tj /T1_0 1 Tf 6.582 0 Td [(This )-172(signal )-172(is )-172(generated )-172(by )-172(calling )-172(the)]TJ /TT0 1 Tf 18.084 0 Td (abort)Tj /T1_0 1 Tf 3.423 0 Td [(function )-172(\(Section )-172(10.17\).)]TJ -21.507 -1.2 Td [(The pr)18(ocess terminates abnormally)111(.)]TJ /TT0 1 Tf -6.582 -1.84 Td (SIGALRM)Tj /T1_0 1 Tf 6.582 0 Td [(This )-299(signal )-299(is )-299(generated )-299(when )-299(a )-299(timer )-299(set )-299(with )-299(the)]TJ /TT0 1 Tf 25.162 0 Td (alarm)Tj /T1_0 1 Tf 3.549 0 Td (function)Tj -28.711 -1.2 Td [(expir)18(es )-54(\(see )-54(Section )-54(10.10 )-54(for )-54(mor)]TJ 0.3038 Tc 14.924 0 Td (ed)Tj 0 Tc 1.394 0 Td [(etails\). )-304(This)-304(signal )-54(is )-54(also )-54(generated)]TJ -16.318 -1.2 Td (when an interval timer set by the)Tj /TT0 1 Tf 14.837 0 Td (setitimer)Tj /T1_0 1 Tf 5.4 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td [(function expir)18(es.)]TJ /TT0 1 Tf -28.235 -1.84 Td (SIGBUS)Tj /T1_0 1 Tf 6.582 0 Td [(This )-668(signal )-668(indicates )-668(an )-668(implementation-de\336ned )-668(har)16(dwar)]TJ 0.9185 Tc 28.717 0 Td (ef)Tj 0 Tc 1.731 0 Td (ault.)Tj -30.448 -1.2 Td [(Implementations )-17(usually )-17(generate )-17(this )-17(signal )-17(on )-17(certain )-17(types )-17(of )-17(memory)]TJ T* (faults, as we describe in Section 14.8.)Tj /TT0 1 Tf -6.582 -1.84 Td (SIGCANCEL)Tj /T1_0 1 Tf 6.582 0 Td [(This )-231(signal )-231(is )-231(used )-231(internally )-231(by )-231(the )-231(Solaris )-231(thr)20(eads )-231(library)]TJ 0.7309 Tc 27.643 0 Td (.I)Tj 0 Tc 1.318 0 Td [(t)-481(is)-481(not)]TJ -28.961 -1.2 Td (meant for general use.)Tj /TT0 1 Tf -6.582 -1.84 Td (SIGCHLD)Tj /T1_0 1 Tf 6.582 0 Td [(Whenever )-135(a )-135(pr)18(ocess )-135(terminates )-135(or )-135(stops, )-135(the)]TJ /TT0 1 Tf 20.636 0 Td (SIGCHLD)Tj /T1_0 1 Tf 4.585 0 Td [(signal )-135(is )-135(sent )-135(to)]TJ -25.221 -1.2 Td [(the )-140(par)18(ent. )-390(By)-390(default, )-140(this )-140(signal )-140(is )-140(ignor)19(ed, )-140(so )-140(the )-140(par)18(ent )-140(must )-140(catch)]TJ -0 -1.2 Td [(this )-139(signal )-139(if )-139(it )-139(wants )-139(to )-139(be )-139(noti\336ed )-139(whenever )-139(a )-139(child\325s )-139(status )-139(changes.)]TJ T* [(The )-184(normal )-184(action )-184(in )-184(the )-184(signal-catching )-184(function )-184(is )-184(to )-184(call )-184(one )-184(of )-184(the)]TJ /TT0 1 Tf T* (wait)Tj /T1_0 1 Tf 2.65 0 Td [(functions to fetch the child\325s pr)18(ocess ID and termination status.)]TJ -2.65 -1.8 Td [(Earlier )-5(r)18(eleases )-5(of )-5(System )-5(V )-5(had )-5(a )-5(similar )-5(signal )-5(named)]TJ /TT0 1 Tf 24.722 0 Td (SIGCLD)Tj /T1_0 1 Tf 3.855 0 Td (\(without)Tj -28.577 -1.2 Td (the)Tj /TT0 1 Tf 1.784 0 Td (H)Tj /T1_0 1 Tf [(\). )-397(The)-396(semantics )-147(of )-147(this )-147(signal )-147(wer)]TJ 0.3967 Tc 16.676 0 Td (ed)Tj 0 Tc 1.487 0 Td [(if)18(fer)18(ent )-147(fr)18(om )-147(those )-147(of )-147(other)]TJ -19.946 -1.2 Td [(signals, )-78(and )-78(as )-78(far )-78(back )-78(as )-78(SVR2, )-78(the )-78(manual )-78(page )-78(str)13(ongly )-78(discouraged)]TJ T* [(its )-121(use )-121(in )-121(new )-121(pr)16(ograms. )-371(\(Strangely)-372(enough, )-121(this )-121(warning )-121(disappear)17(ed)]TJ -0 -1.2 Td [(in )-316(the )-316(SVR3 )-316(and )-316(SVR4 )-316(versions )-316(of )-316(the )-316(manual )-316(page.\))-816(Applications)]TJ T* [(should )-348(use )-348(the )-348(standar)17(d)]TJ /TT0 1 Tf 12.275 0 Td (SIGCHLD)Tj /T1_0 1 Tf 4.798 0 Td [(signal, )-348(but )-348(be )-348(awar)]TJ 0.5984 Tc 9.414 0 Td (et)Tj 0 Tc 1.403 0 Td [(hat )-348(many)]TJ -27.891 -1.2 Td [(systems )-370(de\336ne)]TJ /TT0 1 Tf 7.511 0 Td (SIGCLD)Tj /T1_0 1 Tf 4.22 0 Td [(to )-370(be )-370(the )-370(same )-370(as)]TJ /TT0 1 Tf 9.599 0 Td (SIGCHLD)Tj /T1_0 1 Tf 4.82 0 Td [(for )-370(backwar)18(d)]TJ -26.149 -1.2 Td (compatibility)Tj 0.6239 Tc 5.788 0 Td (.I)Tj 0.3739 Tc 1.211 0 Td (fy)Tj 0 Tc 1.263 0 Td [(ou )-124(maintain )-124(softwar)]TJ 0.3739 Tc 9.192 0 Td (et)Tj 0 Tc 1.179 0 Td [(hat )-124(uses)]TJ /TT0 1 Tf 4.086 0 Td (SIGCLD)Tj /T1_0 1 Tf 0.3739 Tc (,y)Tj 0 Tc 4.78 0 Td [(ou )-124(need )-124(to)]TJ -27.498 -1.2 Td [(check )-60(your )-60(system\325s )-60(manual )-60(page )-60(to )-60(see )-60(which )-60(semantics )-60(it )-60(follows.)]TJ -0.092 Tc 31.031 0 Td (We)Tj 0 Tc -31.031 -1.2 Td (discuss these two signals in Section 10.7.)Tj /TT0 1 Tf -6.582 -1.84 Td (SIGCONT)Tj /T1_0 1 Tf 6.582 0 Td [(This )-65(job-contr)18(ol )-65(signal )-65(is )-65(sent )-65(to )-65(a )-65(stopped )-65(pr)18(ocess )-65(when )-65(it )-65(is )-65(continued.)]TJ T* [(The )-189(default )-189(action )-189(is )-189(to )-189(continue )-189(a )-189(stopped )-189(pr)18(ocess, )-189(but )-189(to )-189(ignor)]TJ 0.4389 Tc 30.113 0 Td (et)Tj 0 Tc 1.244 0 Td (he)Tj -31.357 -1.2 Td [(signal )-142(if )-142(the )-142(pr)18(ocess )-142(wasn\325t )-142(stopped.)]TJ 0.3925 Tc 17.337 0 Td (Af)Tj 0 Tc 1.504 0 Td [(ull-scr)18(een )-142(editor)]TJ 0.3925 Tc 7.269 0 Td (,f)Tj 0 Tc 0.976 0 Td [(or )-142(example,)]TJ -27.085 -1.2 Td [(might )-208(catch )-208(this )-208(signal )-208(and )-208(use )-208(the )-208(signal )-208(handler )-208(to )-208(make )-208(a )-208(note )-208(to)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(draw the terminal scr)18(een. )-250(See)-250(Section 10.21 for additional details.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47023 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.2)]TJ 36.477 0 Td [(Signal )-250(Concepts)]TJ /T1_1 1 Tf 9.356 0 Td (315)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(We )-269(c)]TJ 0 Tc 2.166 0 Td [(an )-85(tell )-85(the )-85(kernel )-85(to )-85(do )-85(one )-85(of )-85(thr)16(ee )-85(things )-85(when )-85(a )-85(signal )-85(occurs.)]TJ -0.092 Tc 29.828 0 Td [(We )-269(c)]TJ 0 Tc 2.166 0 Td [(all )-85(this)]TJ -35.96 -1.2 Td (the)Tj /T1_2 1 Tf 1.637 0 Td (disposition)Tj /T1_0 1 Tf 4.639 0 Td (of the signal, or the)Tj /T1_2 1 Tf 8.738 0 Td (action)Tj /T1_0 1 Tf 2.712 0 Td (associated with a signal.)Tj -15.926 -2.04 Td [(1. )-633(Ignor)]TJ 0.416 Tc 4.031 0 Td (et)Tj 0 Tc 1.221 0 Td [(he )-166(signal.)-666(This )-166(works )-166(for )-166(most )-166(signals, )-166(but )-166(two )-166(signals )-166(can )-166(never )-166(be)]TJ -3.619 -1.2 Td [(ignor)18(ed:)]TJ /TT0 1 Tf 3.968 0 Td (SIGKILL)Tj /T1_0 1 Tf 4.476 0 Td (and)Tj /TT0 1 Tf 1.969 0 Td (SIGSTOP)Tj /T1_0 1 Tf 0.5257 Tc (.T)Tj 0 Tc 5.589 0 Td [(he )-26(r)18(eason )-26(these )-26(two )-26(signals )-26(can\325t )-26(be )-26(ignor)21(ed)]TJ -16.001 -1.2 Td [(is )-8(to )-8(pr)18(ovide )-8(the )-8(kernel )-8(and )-8(the )-8(super)8(user )-8(with )-8(a )-8(sur)19(e\336r)]TJ 0.258 Tc 24.678 0 Td (ew)Tj 0 Tc 1.571 0 Td [(ay )-8(of )-8(either )-8(killing )-8(or)]TJ -26.249 -1.2 Td [(stopping )-57(any )-57(pr)19(ocess. )-307(Also,)-306(if )-57(we )-57(ignor)]TJ 0.3067 Tc 17.778 0 Td (es)Tj 0 Tc 1.21 0 Td [(ome )-57(of )-57(the )-57(signals )-57(that )-57(ar)]TJ 0.3066 Tc 11.387 0 Td (eg)Tj 0 Tc 1.342 0 Td (enerated)Tj -31.716 -1.2 Td [(by )-80(a )-80(har)19(dwar)]TJ 0.3297 Tc 6.049 0 Td (ee)Tj 0 Tc 1.288 0 Td [(xception )-80(\(such )-80(as )-80(illegal )-80(memory )-80(r)20(efer)18(ence )-80(or )-80(divide )-80(by )-80(0\), )-80(the)]TJ -7.337 -1.2 Td [(behavior of the pr)18(ocess is unde\336ned.)]TJ -1.633 -1.72 Td [(2. )-633(Catch)-537(the )-287(signal.)]TJ -0.092 Tc 10.337 0 Td [(To )-471(d)]TJ 0.5372 Tc 2.215 0 Td (ot)Tj 0 Tc 1.409 0 Td [(his, )-287(we )-287(tell )-287(the )-287(kernel )-287(to )-287(call )-287(a )-287(function )-287(of )-287(ours)]TJ -12.328 -1.2 Td [(whenever )-118(the )-118(signal )-118(occurs.)-617(In )-118(our )-118(function, )-118(we )-118(can )-118(do )-118(whatever )-118(we )-118(want )-118(to)]TJ 0 -1.2 TD [(handle )-240(the )-240(condition.)-740(If )-240(we\325r)]TJ 0.4896 Tc 13.747 0 Td (ew)Tj 0 Tc 1.803 0 Td [(riting )-240(a )-240(command )-240(interpr)19(eter)]TJ 0.4896 Tc 13.515 0 Td (,f)Tj 0 Tc 1.073 0 Td [(or )-240(example,)]TJ -30.137 -1.2 Td [(when )-32(the )-32(user )-32(generates )-32(the )-32(interr)8(upt )-32(signal )-32(at )-32(the )-32(keyboar)15(d, )-32(we )-32(pr)18(obably )-32(want)]TJ T* [(to )-77(r)18(eturn )-77(to )-77(the )-77(main )-77(loop )-77(of )-77(the )-77(pr)16(ogram, )-77(terminating )-77(whatever )-77(command )-77(we)]TJ T* (wer)Tj 0.3955 Tc 1.69 0 Td (ee)Tj 0 Tc 1.354 0 Td [(xecuting )-145(for )-145(the )-145(user)]TJ 0.6456 Tc 9.471 0 Td (.I)Tj 0.3956 Tc 1.233 0 Td (ft)Tj 0 Tc 1.055 0 Td (he)Tj /TT0 1 Tf 1.457 0 Td (SIGCHLD)Tj /T1_0 1 Tf 4.596 0 Td [(signal )-146(is )-146(caught, )-146(it )-146(means )-146(that )-146(a)]TJ -20.854 -1.2 Td [(child )-91(pr)18(ocess )-91(has )-91(terminated, )-91(so )-91(the )-91(signal-catching )-91(function )-91(can )-91(call)]TJ /TT0 1 Tf 31.367 0 Td (waitpid)Tj /T1_0 1 Tf -31.367 -1.2 Td [(to )-132(fetch )-132(the )-132(child\325s )-132(pr)18(ocess )-132(ID )-132(and )-132(termination )-132(status.)-632(As )-132(another )-132(example, )-132(if)]TJ T* [(the )-45(pr)18(ocess )-45(has )-45(cr)18(eated )-45(temporary )-45(\336les, )-45(we )-45(may )-45(want )-45(to )-45(write )-45(a )-45(signal-catching)]TJ T* [(function )-14(for )-14(the)]TJ /TT0 1 Tf 7.16 0 Td (SIGTERM)Tj /T1_0 1 Tf 4.464 0 Td [(signal )-14(\(the )-14(termination )-14(signal )-14(that )-14(is )-14(the )-14(default )-14(signal)]TJ -11.624 -1.2 Td [(sent )-59(by )-59(the)]TJ /TT0 1 Tf 5.235 0 Td (kill)Tj /T1_0 1 Tf 2.709 0 Td [(command\) )-59(to )-59(clean )-59(up )-59(the )-59(temporary )-59(\336les.)-561(Note )-59(that )-59(the )-59(two)]TJ -7.944 -1.2 Td (signals)Tj /TT0 1 Tf 3.318 0 Td (SIGKILL)Tj /T1_0 1 Tf 4.45 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (SIGSTOP)Tj /T1_0 1 Tf 4.45 0 Td (can\325t be caught.)Tj -15.794 -1.72 Td [(3. )-633(Let)-568(the )-318(default )-318(action )-318(apply)]TJ 0.8179 Tc 14.978 0 Td (.E)Tj 0 Tc 1.679 0 Td [(very )-318(signal )-318(has )-318(a )-318(default )-318(action, )-318(shown )-318(in)]TJ -15.024 -1.2 Td (Figur)Tj 0.428 Tc 2.383 0 Td (e1)Tj 0 Tc 1.407 0 Td [(0.1. )-428(Note)-428(that )-178(the )-178(default )-178(action )-178(for )-178(most )-178(signals )-178(is )-178(to )-178(terminate )-178(the)]TJ -3.79 -1.2 Td [(pr)18(ocess.)]TJ -3.433 -2.16 Td (Figur)Tj 0.2769 Tc 2.383 0 Td (e1)Tj 0 Tc 1.256 0 Td [(0.1 )-27(lists )-27(the )-27(names )-27(of )-27(all )-27(the )-27(signals, )-27(an )-27(indication )-27(of )-27(which )-27(systems )-27(support )-27(the)]TJ -3.639 -1.2 Td [(signal, )-54(and )-54(the )-54(default )-54(action )-54(for )-54(the )-54(signal.)-554(The )-54(SUS )-54(column )-54(contains )-54(\245 )-54(if )-54(the )-54(signal )-54(is)]TJ T* [(de\336ned )-89(as )-89(part )-89(of )-89(the )-89(base )-89(POSIX.1 )-89(speci\336cation )-89(and)]TJ /T1_1 1 Tf 24.284 0 Td (XSI)Tj /T1_0 1 Tf 2.006 0 Td [(if )-89(it )-89(is )-89(de\336ned )-89(as )-89(part )-89(of )-89(the)]TJ -26.29 -1.2 Td (XSI option.)Tj 1.8 -1.2 Td [(When )-21(the )-21(default )-21(action )-21(is )-21(labeled )-21(\324)39(\324terminate+cor)18(e,\325)37(\325)-271(it)-271(m)1(eans )-21(that )-21(a )-21(memory )-21(image)]TJ -1.8 -1.2 Td [(of )-168(the )-168(pr)18(ocess )-168(is )-168(left )-168(in )-168(the )-168(\336le )-168(named)]TJ /TT0 1 Tf 18.153 0 Td (core)Tj /T1_0 1 Tf 2.818 0 Td [(of )-168(the )-168(curr)19(ent )-168(working )-168(dir)18(ectory )-168(of )-168(the)]TJ -20.971 -1.2 Td [(pr)18(ocess. )-310(\(Because)-309(the )-60(\336le )-60(is )-60(named)]TJ /TT0 1 Tf 16.058 0 Td (core)Tj /T1_0 1 Tf [(,)-310(it)-310(s)1(hows )-60(how )-60(long )-60(this )-60(featur)]TJ 0.3096 Tc 16.113 0 Td (eh)Tj 0 Tc 1.371 0 Td [(as )-60(been )-60(part)]TJ -33.542 -1.2 Td [(of )-221(the )-221(UNIX )-221(System.\))-719(This )-221(\336le )-221(can )-221(be )-221(used )-221(with )-221(most )-221(UNIX )-221(System )-221(debuggers )-221(to)]TJ T* [(examine the state of the pr)18(ocess at the time it terminated.)]TJ 7.9995 0 0 7.9995 183.5876 248.5851 Tm [(The )-147(generation )-147(of )-147(the)]TJ /TT0 1 Tf 10.263 0 Td (core)Tj /T1_0 1 Tf 2.797 0 Td [(\336le )-147(is )-147(an )-147(implementation )-147(featur)19(e)-397(of)-397(m)1(ost )-147(versions )-147(of )-147(the )-147(UNIX)]TJ -13.06 -1.25 Td [(System. )-647(Although)-647(this )-397(featur)18(e)-647(is)-647(not )-397(part )-397(of )-397(POSIX.1, )-397(it )-397(is )-397(mentioned )-397(as )-397(a )-397(potential)]TJ 0 -1.25 Td (implementation-speci\336c action in the Single UNIX Speci\336cation\325s\ XSI option.)Tj 0 -2.125 TD [(The )-133(name )-133(of )-133(the )-133(cor)]TJ 0.383 Tc 9.283 0 Td (e\336)Tj 0 Tc 1.467 0 Td [(le )-133(varies )-133(among )-133(implementations.)-633(On )-133(Fr)18(eeBSD )-133(8.0, )-133(for )-133(example, )-133(the)]TJ -10.75 -1.25 Td (cor)Tj 0.26 Tc 1.367 0 Td (e\336)Tj 0 Tc 1.344 0 Td [(le )-10(is )-10(named)]TJ /T1_2 1 Tf 5.32 0 Td (cmdname)Tj /T1_0 1 Tf [(.cor)18(e, )-10(wher)18(e)]TJ /T1_2 1 Tf 9.469 0 Td (cmdname)Tj /T1_0 1 Tf 4.112 0 Td [(is )-10(the )-10(name )-10(of )-10(the )-10(command )-10(corr)18(esponding )-10(to)]TJ -21.612 -1.25 Td [(the )-20(pr)18(ocess )-20(that )-20(r)18(eceived )-20(the )-20(signal.)-520(On )-20(Mac )-20(OS )-20(X )-20(10.6.8, )-20(the )-20(cor)]TJ 0.2699 Tc 28.652 0 Td (e\336)Tj 0 Tc 1.354 0 Td [(le )-20(is )-20(named )-20(cor)18(e.)]TJ /T1_2 1 Tf (pid)Tj /T1_0 1 Tf 0.2699 Tc (,w)Tj 0 Tc 10.077 0 Td [(her)18(e)]TJ /T1_2 1 Tf -40.083 -1.25 Td (pid)Tj /T1_0 1 Tf 1.581 0 Td [(is )-53(the )-53(ID )-53(of )-53(the )-53(pr)20(ocess )-53(that )-53(r)18(eceived )-53(the )-53(signal.)-553(\(These )-53(systems )-53(allow )-53(the )-53(cor)]TJ 0.3028 Tc 34.644 0 Td (e\336)Tj 0 Tc 1.387 0 Td [(lename )-53(to)]TJ -37.611 -1.25 Td [(be )-256(con\336gur)18(ed )-256(via )-256(a)]TJ /TT0 1 Tf 9.717 0 Td (sysctl)Tj /T1_0 1 Tf 4.106 0 Td (parameter)Tj 0.7564 Tc 4.484 0 Td (.O)Tj 0.5064 Tc 1.792 0 Td (nL)Tj 0 Tc 1.699 0 Td [(inux )-256(3.2.0, )-256(the )-256(name )-256(is )-256(con\336gur)18(ed )-256(thr)16(ough)]TJ /TT0 1 Tf -21.799 -1.25 Td (/proc/sys/kernel/core_pattern)Tj /T1_0 1 Tf (.\))Tj T* [(Most )-12(implementations )-12(leave )-12(the )-12(cor)]TJ 0.2616 Tc 15.841 0 Td (e\336)Tj 0 Tc 1.346 0 Td [(le )-12(in )-12(the )-12(curr)18(ent )-12(working )-12(dir)18(ectory )-12(of )-12(the )-12(corr)21(esponding)]TJ -17.186 -1.25 Td [(pr)18(ocess; )-250(Mac)-250(OS X places all cor)]TJ 0.25 Tc 14.351 0 Td (e\336)Tj 0 Tc 1.334 0 Td (les in)Tj /TT0 1 Tf 2.567 0 Td (/cores)Tj /T1_0 1 Tf 3.85 0 Td (instead.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47024 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.1)]TJ 21.8583 Tc 4.888 0 Td (1C)Tj 0 Tc 23.067 0 Td [(hanging )-250(User )-250(IDs )-250(and )-250(Gr)18(oup )-250(IDs)]TJ /T1_1 1 Tf 17.878 0 Td (257)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (Figur)Tj 0.25 Tc 2.383 0 Td (e8)Tj 0 Tc 1.229 0 Td [(.18 summarizes the various ways these thr)18(ee user IDs can be changed.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1376.25 6550.25 cm 0 0 m 3739 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 290.4171 646.9224 Tm (exec )Tj 17.178 0 Td (setuid\()Tj /T1_2 1 Tf (uid)Tj /TT0 1 Tf (\))Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2088.25 6430.25 cm 0 0 m 3027 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 223.3998 634.8857 Tm [(set-user)18(-ID bit of)]TJ 3.68 Tc 7.42 0 Td (fs)Tj 0 Tc 4.437 0 Td [(et-user)18(-ID bit on)-2606(super)8(user )-1250(unprivileged)-250(user)]TJ -18.812 0.75 Td (ID)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1376.25 6310.25 cm 0 0 m 3739 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1376.25 6290.25 cm 0 0 m 3739 0 l S Q Q BT /T1_0 1 Tf -0.018 Tc 7.9981 0 0 7.9981 141.594 620.851 Tm (re)Tj 0 Tc 0.856 0 Td [(al user ID)-3994(unchanged )]TJ 19.697 0 Td (unchanged )Tj 11.4 0 Td [(set)-250(to)]TJ /T1_2 1 Tf 2.601 0 Td (uid)Tj /T1_0 1 Tf 3.294 0 Td (unchanged)Tj -37.848 -1.25 Td [(ef)18(fective user ID)-1930(unchanged )]TJ 31.953 0 Td [(set)-250(to)]TJ /T1_2 1 Tf 2.601 0 Td (uid)Tj /T1_0 1 Tf 3.294 0 Td (set to)Tj /T1_2 1 Tf 2.601 0 Td (uid)Tj /T1_0 1 Tf -19.896 0 Td [(set fr)18(om user ID of)]TJ 1.35 -1.25 Td [(pr)18(ogram \336le)]TJ -21.903 -1.25 Td (saved set-user ID)Tj 31.953 0 Td (set to)Tj /T1_2 1 Tf 2.601 0 Td (uid)Tj /T1_0 1 Tf 3.294 0 Td (unchanged)Tj -28.695 0 Td [(copied fr)18(om ef)18(fective)]TJ 1.35 -1.25 Td (user ID)Tj 10.05 1.25 Td [(copied fr)18(om ef)18(fective)]TJ 1.35 -1.25 Td (user ID)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1376.25 5770.25 cm 0 0 m 3739 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4384.25 5770.25 cm 0 0 m 0 660 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3902.25 5770.25 cm 0 0 m 0 780 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3922.25 5770.25 cm 0 0 m 0 780 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3000.25 5770.25 cm 0 0 m 0 660 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2088.25 5770.25 cm 0 0 m 0 780 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5115.25 5770.25 cm 0 0 m 0 780 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1376.25 5770.25 cm 0 0 m 0 780 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 241.8714 558.8323 Tm (Figure 8.18)Tj /T1_0 1 Tf -0.092 Tc 5.695 0 Td (Wa)Tj 0 Tc 1.408 0 Td [(ys to change the thr)18(ee user IDs)]TJ 9.997 0 0 9.997 129.5614 534.8395 Tm [(Note )-34(that )-34(we )-34(can )-34(obtain )-34(only )-34(the )-34(curr)18(ent )-34(value )-34(of )-34(the )-34(r)20(eal )-34(user )-34(ID )-34(and )-34(the )-34(ef)18(fective )-34(user)]TJ 0 -1.2 TD [(ID )-3(with )-3(the )-3(functions)]TJ /TT0 1 Tf 9.674 0 Td (getuid)Tj /T1_0 1 Tf 3.853 0 Td (and)Tj /TT0 1 Tf 1.946 0 Td (geteuid)Tj /T1_0 1 Tf 4.453 0 Td [(fr)18(om )-3(Section )-3(8.2.)]TJ -0.092 Tc 7.841 0 Td [(We )-187(h)]TJ 0 Tc 2.222 0 Td [(ave )-3(no )-3(portable )-3(way)]TJ -29.988 -1.2 Td [(to obtain the curr)18(ent value of the saved set-user)18(-ID.)]TJ 7.9976 0 0 7.9976 183.5448 490.8527 Tm [(Fr)18(eeBSD )-87(8.0 )-87(and )-87(LINUX )-87(3.2.0 )-87(pr)18(ovide )-87(the)]TJ /TT0 1 Tf 19.183 0 Td (getresuid)Tj /T1_0 1 Tf 5.737 0 Td (and)Tj /TT0 1 Tf 2.03 0 Td (getresgid)Tj /T1_0 1 Tf 5.737 0 Td [(functions, )-87(which )-87(can)]TJ -32.687 -1.25 Td [(be used to get the saved set-user)18(-ID and saved set-gr)18(oup-ID, r)18(espectively)111(.)]TJ /TT1 1 Tf 9.997 0 0 9.997 93.5718 450.8647 Tm (setreuid)Tj /TT2 1 Tf 5.078 0 Td (and)Tj /TT1 1 Tf 2.056 0 Td (setregid)Tj /TT2 1 Tf 5.078 0 Td (Functions)Tj /T1_0 1 Tf -8.612 -2.4 Td (Historically)Tj 0.3338 Tc 5.076 0 Td (,B)Tj 0 Tc 1.195 0 Td [(SD )-84(supported )-84(the )-84(swapping )-84(of )-84(the )-84(r)19(eal )-84(user )-84(ID )-84(and )-84(the )-84(ef)18(fective )-84(user )-84(ID)]TJ -6.271 -1.2 Td (with the)Tj /TT0 1 Tf 3.92 0 Td (setreuid)Tj /T1_0 1 Tf 5.05 0 Td (function.)Tj /TT0 1 Tf 8.9973 0 0 8.9973 147.5559 396.9809 Tm (#include )Tj 0 -1.902 TD (int setreuid\(uid_t)Tj /T1_2 1 Tf 11.4 0 Td (ruid)Tj /TT0 1 Tf 0.6 Tc (,u)Tj 0 Tc 3.523 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (euid)Tj /TT0 1 Tf (\);)Tj -17.923 -1.902 Td (int setregid\(gid_t)Tj /T1_2 1 Tf -0.018 Tc 11.4 0 Td (rg)Tj 0 Tc 0.871 0 Td (id)Tj /TT0 1 Tf 0.6 Tc (,g)Tj 0 Tc 2.578 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (egid)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 7.402 -1.902 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT3 1 Tf 9.213 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3412.25 cm 0 0 m 0 649 l 3900 649 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9964 0 0 9.9964 129.5534 326.4225 Tm [(We )-202(c)]TJ 0 Tc 2.099 0 Td [(an )-18(supply )-18(a )-18(value )-18(of)]TJ /TT3 1 Tf 9.314 0 Td (!)Tj /T1_0 1 Tf 0.2679 Tc (1f)Tj 0 Tc 1.65 0 Td [(or )-18(any )-18(of )-18(the )-18(ar)18(guments )-18(to )-18(indicate )-18(that )-18(the )-18(corr)19(esponding)]TJ -13.063 -1.2 Td [(ID should r)18(emain unchanged.)]TJ 1.8 -1.2 Td [(The )-60(r)8(ule )-60(is )-60(simple: )-60(an )-60(unprivileged )-60(user )-60(can )-60(always )-60(swap )-60(between )-60(the )-60(r)18(eal )-60(user )-60(ID)]TJ -1.8 -1.2 Td [(and )-213(the )-213(ef)18(fective )-213(user )-213(ID.)-713(This )-213(allows )-213(a )-213(set-user)15(-ID )-213(pr)18(ogram )-213(to )-213(swap )-213(to )-213(the )-213(user)-76(\325s)]TJ 0 -1.2 TD [(normal )-164(permissions )-164(and )-164(swap )-164(back )-164(again )-164(later )-164(for )-164(set-user)18(-ID )-164(operations.)-664(When )-164(the)]TJ T* [(saved )-88(set-user)18(-ID )-88(featur)]TJ 0.3382 Tc 10.762 0 Td (ew)Tj 0 Tc 1.651 0 Td [(as )-88(intr)18(oduced )-88(with )-88(POSIX.1, )-88(the )-88(r)7(ule )-88(was )-88(enhanced )-88(to )-88(also)]TJ -12.414 -1.2 Td [(allow an unprivileged user to set its ef)18(fective user ID to its saved set-user)18(-ID.)]TJ 7.9971 0 0 7.9971 183.5337 234.4556 Tm (Both)Tj /TT0 1 Tf 2.362 0 Td (setreuid)Tj /T1_0 1 Tf 5.097 0 Td (and)Tj /TT0 1 Tf 1.99 0 Td (setregid)Tj /T1_0 1 Tf 5.097 0 Td (ar)Tj 0.2968 Tc 0.877 0 Td (ei)Tj 0 Tc 1.067 0 Td [(ncluded )-47(in )-47(the )-47(XSI )-47(option )-47(in )-47(POSIX.1.)-547(As )-47(such, )-47(all )-47(UNIX)]TJ -16.488 -1.25 Td (System implementations ar)Tj 0.25 Tc 12.054 0 Td (ee)Tj 0 Tc 1.208 0 Td [(xpected to pr)18(ovide support for them.)]TJ -13.262 -2.5 Td [(4.3BSD )-206(didn\325t )-206(have )-206(the )-206(saved )-206(set-user)18(-ID )-206(featur)]TJ 0.4558 Tc 22.192 0 Td (ed)Tj 0 Tc 1.546 0 Td [(escribed )-206(earlier; )-206(it )-206(used)]TJ /TT0 1 Tf 11.313 0 Td (setreuid)Tj /T1_0 1 Tf 5.256 0 Td (and)Tj /TT0 1 Tf -40.307 -1.25 Td (setregid)Tj /T1_0 1 Tf 5.186 0 Td [(instead. )-386(This)-386(allowed )-136(an )-136(unprivileged )-136(user )-136(to )-136(swap )-136(back )-136(and )-136(forth )-136(between )-136(the)]TJ -5.186 -1.25 Td [(two )-102(values.)-602(Be )-102(awar)18(e, )-102(however)]TJ 0.3525 Tc 14.314 0 Td (,t)Tj 0 Tc 0.929 0 Td [(hat )-102(when )-102(pr)17(ograms )-102(that )-102(used )-102(this )-102(featur)]TJ 0.3524 Tc 18.374 0 Td (es)Tj 0 Tc 1.255 0 Td [(pawned )-102(a )-102(shell,)]TJ -34.871 -1.25 Td [(they )-68(had )-68(to )-68(set )-68(the )-68(r)18(eal )-68(user )-68(ID )-68(to )-68(the )-68(normal )-68(user )-68(ID )-68(befor)]TJ 0.3176 Tc 26.668 0 Td (et)Tj 0 Tc 1.123 0 Td (he)Tj /TT0 1 Tf 1.379 0 Td (exec)Tj /T1_0 1 Tf 0.5676 Tc (.I)Tj 0.3178 Tc 3.555 0 Td (ft)Tj 0 Tc 0.977 0 Td [(hey )-68(didn\325t )-68(do )-68(this,)]TJ -33.701 -1.25 Td [(the )-47(r)18(eal )-47(user )-47(ID )-47(could )-47(be )-47(privileged )-47(\(fr)18(om )-47(the )-47(swap )-47(done )-47(by)]TJ /TT0 1 Tf 27.238 0 Td (setreuid)Tj /T1_0 1 Tf 0.2968 Tc (\)a)Tj 0 Tc 5.93 0 Td [(nd )-47(the )-47(shell )-47(pr)19(ocess)]TJ -33.168 -1.25 Td [(could )-12(call)]TJ /TT0 1 Tf 4.546 0 Td (setreuid)Tj /T1_0 1 Tf 5.062 0 Td [(to )-12(swap )-12(the )-12(two )-12(and )-12(assume )-12(the )-12(permissions )-12(of )-12(the )-12(mor)]TJ 0.2624 Tc 24.753 0 Td (ep)Tj 0 Tc 1.342 0 Td [(rivileged )-12(user)74(.)]TJ -35.703 -1.25 Td [(As )-3(a )-3(defensive )-3(pr)18(ogramming )-3(measur)18(e)-253(to)-253(solve )-3(this )-3(pr)18(oblem, )-3(pr)18(ograms )-3(set )-3(both )-3(the )-3(r)18(eal )-3(user )-3(ID)]TJ -0 -1.25 Td [(and the ef)18(fective user ID to the normal user ID befor)]TJ 0.25 Tc 23.059 0 Td (et)Tj 0 Tc 1.055 0 Td (he call to)Tj /TT0 1 Tf 4.209 0 Td (exec)Tj /T1_0 1 Tf 2.65 0 Td (in the child.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47025 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (252)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm (Historically)Tj 0.2905 Tc 5.076 0 Td (,t)Tj 0 Tc 0.866 0 Td [(he )-40(limit )-40(in )-40(older )-40(System )-40(V )-40(implementations )-40(was )-40(5,120 )-40(bytes.)-545(Older )-41(BSD )-41(systems)]TJ -5.942 -1.25 Td [(had )-45(a )-45(limit )-45(of )-45(20,480 )-45(bytes.)-548(The )-45(limit )-45(in )-45(curr)18(ent )-45(systems )-45(is )-45(much )-45(higher)]TJ 0.5454 Tc 31.972 0 Td (.\()Tj 0 Tc 1.128 0 Td [(See )-45(the )-45(output )-45(fr)17(om)]TJ -33.1 -1.25 Td [(the pr)18(ogram in Figur)]TJ 0.25 Tc 9.251 0 Td (e2)Tj 0 Tc 1.229 0 Td (.14, which is summarized in Figur)Tj 0.25 Tc 15.023 0 Td (e2)Tj 0 Tc 1.229 0 Td (.15.\))Tj -0.092 Tc 9.9994 0 0 9.9994 147.5908 627.9623 Tm [(To )-510(g)]TJ 0 Tc 2.199 0 Td [(et )-326(ar)18(ound )-326(the )-326(limitation )-326(in )-326(ar)19(gument )-326(list )-326(size, )-326(we )-326(can )-326(use )-326(the)]TJ /TT0 1 Tf 30.835 0 Td (xargs)Tj /T1_1 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj -38.667 -1.24 Td [(command )-414(to )-414(br)18(eak )-414(up )-414(long )-414(ar)18(gument )-414(lists.)]TJ -0.092 Tc 22.173 0 Td [(To )-598(l)]TJ 0 Tc 2.022 0 Td [(ook )-414(for )-414(all )-414(the )-414(occurr)19(ences )-414(of)]TJ /TT0 1 Tf -24.195 -1.2 Td (getrlimit)Tj /T1_1 1 Tf 5.65 0 Td (in the man pages on our system, we could use)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.591 587.2648 Tm (find /usr/share/man -type f -print | xargs grep getrlimit)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5921 569.2658 Tm (If the man pages on our system ar)Tj 0.25 Tc 14.973 0 Td (ec)Tj 0 Tc 1.173 0 Td [(ompr)18(essed, however)74(,)-250(we)-250(could try)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.591 552.5668 Tm (find /usr/share/man -type f -print | xargs bzgrep getrlimit)Tj /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5921 534.5679 Tm [(We )-255(u)]TJ 0 Tc 2.311 0 Td [(se )-71(the)]TJ /TT0 1 Tf 2.931 0 Td [(type )279(-f)]TJ /T1_1 1 Tf 4.241 0 Td [(option )-71(to )-71(the)]TJ /TT0 1 Tf 6.113 0 Td (find)Tj /T1_1 1 Tf 2.721 0 Td [(command )-71(to )-71(r)18(estrict )-71(the )-71(list )-71(so )-71(that )-71(it )-71(contains)]TJ -18.316 -1.2 Td [(only )-84(r)18(egular )-84(\336les, )-84(because )-84(the)]TJ /TT0 1 Tf 13.762 0 Td (grep)Tj /T1_1 1 Tf 2.734 0 Td [(commands )-84(can\325t )-84(sear)19(ch )-84(for )-84(patterns )-84(in )-84(dir)20(ectories,)]TJ -16.496 -1.2 Td [(and we want to avoid unnecessary err)18(or messages.)]TJ -0.092 Tc 1.8 -1.2 Td (We)Tj 0 Tc 1.387 0 Td [(\325ve )-107(mentioned )-107(that )-107(the )-107(pr)18(ocess )-107(ID )-107(does )-107(not )-107(change )-107(after )-107(an)]TJ /TT0 1 Tf 27.328 0 Td (exec)Tj /T1_1 1 Tf 0.3571 Tc (,b)Tj 0 Tc 3.56 0 Td [(ut )-107(the )-107(new)]TJ -34.075 -1.2 Td [(pr)18(ogram inherits additional pr)18(operties fr)18(om the calling pr)18(ocess:)]TJ 0.883 Tc 1.8 -2.04 Td (\245P)Tj -0.018 Tc 2.093 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess ID and par)18(ent pr)18(ocess ID)]TJ 0.883 Tc -3.016 -1.6 Td (\245R)Tj 0 Tc 2.157 0 Td [(eal user ID and r)18(eal gr)18(oup ID)]TJ 0.883 Tc -2.157 -1.6 Td (\245S)Tj 0 Tc 2.014 0 Td [(upplementary gr)18(oup IDs)]TJ 0.883 Tc -2.014 -1.6 Td (\245P)Tj -0.018 Tc 2.093 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess gr)18(oup ID)]TJ 0.883 Tc -3.016 -1.6 Td (\245S)Tj 0 Tc 2.014 0 Td (ession ID)Tj 0.883 Tc -2.014 -1.6 Td (\245C)Tj 0 Tc 2.198 0 Td [(ontr)18(olling terminal)]TJ 0.883 Tc -2.198 -1.6 Td (\245T)Tj 0 Tc 2.047 0 Td (ime left until alarm clock)Tj 0.883 Tc -2.047 -1.6 Td (\245C)Tj 0 Tc 2.198 0 Td [(urr)18(ent working dir)18(ectory)]TJ 0.883 Tc -2.198 -1.6 Td (\245R)Tj 0 Tc 2.157 0 Td [(oot dir)18(ectory)]TJ 0.883 Tc -2.157 -1.6 Td (\245F)Tj 0 Tc 2.045 0 Td [(ile mode cr)18(eation mask)]TJ 0.883 Tc -2.045 -1.6 Td (\245F)Tj 0 Tc 2.045 0 Td (ile locks)Tj 0.883 Tc -2.045 -1.6 Td (\245P)Tj -0.018 Tc 2.093 0 Td (ro)Tj 0 Tc 0.923 0 Td (cess signal mask)Tj 0.883 Tc -3.016 -1.6 Td (\245P)Tj 0 Tc 2.093 0 Td (ending signals)Tj 0.883 Tc -2.093 -1.6 Td (\245R)Tj 0 Tc 2.157 0 Td [(esour)18(ce limits)]TJ 0.883 Tc -2.157 -1.6 Td (\245N)Tj 0 Tc 2.32 0 Td (ice value \(on XSI-conformant systems; see Section 8.16\))Tj 0.883 Tc -2.32 -1.6 Td (\245V)Tj 0 Tc 2.119 0 Td (alues for)Tj /TT0 1 Tf 4.071 0 Td (tms_utime)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 5.9 0 Td (tms_stime)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 5.9 0 Td (tms_cutime)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 7 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (tms_cstime)Tj /T1_1 1 Tf -28.233 -2.04 Td [(The )-221(handling )-221(of )-221(open )-221(\336les )-221(depends )-221(on )-221(the )-221(value )-221(of )-221(the )-221(close-on-exec )-221(\337ag )-221(for )-221(each)]TJ 0 -1.2 TD (descriptor)Tj 0.8674 Tc 4.438 0 Td (.R)Tj 0 Tc 1.785 0 Td [(ecall )-367(fr)18(om )-367(Figur)]TJ 0.6174 Tc 7.762 0 Td (e3)Tj 0 Tc 1.596 0 Td [(.7 )-367(and )-367(our )-367(mention )-367(of )-367(the)]TJ /TT0 1 Tf 13.646 0 Td (FD_CLOEXEC)Tj /T1_1 1 Tf 6.617 0 Td [(\337ag )-367(in)]TJ -35.846 -1.2 Td [(Section )-46(3.14 )-46(that )-46(every )-46(open )-46(descriptor )-46(in )-46(a )-46(pr)18(ocess )-46(has )-46(a )-46(close-on-exec )-46(\337ag.)-545(If )-46(this )-46(\337ag)]TJ T* [(is )-150(set, )-150(the )-150(descriptor )-150(is )-150(closed )-150(acr)18(oss )-150(an)]TJ /TT0 1 Tf 18.602 0 Td (exec)Tj /T1_1 1 Tf 0.6502 Tc (.O)Tj 0 Tc 4.086 0 Td [(therwise, )-150(the )-150(descriptor )-150(is )-150(left )-150(open)]TJ -22.688 -1.2 Td [(acr)18(oss )-54(the)]TJ /TT0 1 Tf 4.709 0 Td (exec)Tj /T1_1 1 Tf 0.5537 Tc (.T)Tj 0 Tc 3.817 0 Td [(he )-54(default )-54(is )-54(to )-54(leave )-54(the )-54(descriptor )-54(open )-54(acr)20(oss )-54(the)]TJ /TT0 1 Tf 23.351 0 Td (exec)Tj /T1_1 1 Tf 2.704 0 Td [(unless )-54(we)]TJ -34.581 -1.2 Td (speci\336cally set the close-on-exec \337ag using)Tj /TT0 1 Tf 19.058 0 Td (fcntl)Tj /T1_1 1 Tf (.)Tj -17.258 -1.2 Td [(POSIX.1 )-342(speci\336cally )-342(r)17(equir)18(es )-342(that )-342(open )-342(dir)17(ectory )-343(str)18(eams )-343(\(r)18(ecall )-343(the)]TJ /TT0 1 Tf 33 0 Td (opendir)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47026 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.6)]TJ /TT0 1 Tf 29.686 0 Td (wait)Tj /T1_0 1 Tf 2.9 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (waitpid)Tj /T1_0 1 Tf 4.7 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (239)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(For both functions, the ar)16(gument)]TJ /T1_2 1 Tf 14.83 0 Td (statloc)Tj /T1_0 1 Tf 2.879 0 Td (is a pointer to an integer)Tj 0.5005 Tc 10.676 0 Td (.I)Tj 0.2505 Tc 1.087 0 Td (ft)Tj 0 Tc 0.909 0 Td [(his ar)18(gument is)]TJ -32.181 -1.2 Td [(not )-216(a )-216(null )-216(pointer)]TJ 0.4658 Tc 8.264 0 Td (,t)Tj 0 Tc 1.042 0 Td [(he )-216(termination )-216(status )-216(of )-216(the )-216(terminated )-216(pr)18(ocess )-216(is )-216(stor)20(ed )-216(in )-216(the)]TJ -9.306 -1.2 Td [(location )-68(pointed )-68(to )-68(by )-68(the )-68(ar)17(gument. )-318(If)-319(we )-68(don\325t )-68(car)]TJ 0.3183 Tc 23.648 0 Td (ea)Tj 0 Tc 1.297 0 Td [(bout )-68(the )-68(termination )-68(status, )-68(we)]TJ -24.945 -1.2 Td [(simply pass a null pointer as this ar)18(gument.)]TJ -0.09 Tc 1.8 -1.2 Td (Tr)Tj 0 Tc 0.918 0 Td (aditionally)Tj 0.2969 Tc 4.674 0 Td (,t)Tj 0 Tc 0.873 0 Td [(he )-47(integer )-47(status )-47(that )-47(these )-47(two )-47(functions )-47(r)18(eturn )-47(has )-47(been )-47(de\336ned )-47(by)]TJ -8.265 -1.2 Td [(the )-161(implementation, )-161(with )-161(certain )-161(bits )-161(indicating )-161(the )-161(exit )-161(status )-161(\(for )-161(a )-161(normal )-161(r)16(eturn\),)]TJ 0 -1.2 TD [(other )-212(bits )-212(indicating )-212(the )-212(signal )-212(number )-212(\(for )-212(an )-212(abnormal )-212(r)18(eturn\), )-212(one )-212(bit )-212(indicating)]TJ T* [(whether )-147(a )-147(cor)]TJ 0.3967 Tc 6.337 0 Td (e\336)Tj 0 Tc 1.481 0 Td [(le )-147(was )-147(generated, )-147(and )-147(so )-147(on.)-647(POSIX.1 )-147(speci\336es )-147(that )-147(the )-147(termination)]TJ -7.818 -1.2 Td [(status )-24(is )-24(to )-24(be )-24(looked )-24(at )-24(using )-24(various )-24(macr)18(os )-24(that )-24(ar)]TJ 0.2742 Tc 23.384 0 Td (ed)Tj 0 Tc 1.364 0 Td [(e\336ned )-24(in)]TJ /TT0 1 Tf 4.177 0 Td ()Tj /T1_0 1 Tf 0.5242 Tc (.F)Tj 0 Tc 8.53 0 Td (our)Tj -37.456 -1.2 Td [(mutually )-80(exclusive )-80(macr)18(os )-80(tell )-80(us )-80(how )-80(the )-80(pr)18(ocess )-80(terminated, )-80(and )-80(they )-80(all )-80(begin )-80(with)]TJ /TT0 1 Tf T* (WIF)Tj /T1_0 1 Tf 0.5752 Tc (.B)Tj 0 Tc 3.236 0 Td [(ased )-75(on )-75(which )-75(of )-75(these )-75(four )-75(macr)17(os )-75(is )-75(tr)8(ue, )-75(other )-75(macr)18(os )-75(ar)]TJ 0.3251 Tc 26.811 0 Td (eu)Tj 0 Tc 1.407 0 Td [(sed )-75(to )-75(obtain )-75(the)]TJ -31.454 -1.2 Td [(exit )-44(status, )-44(signal )-44(number)]TJ 0.2945 Tc 11.414 0 Td (,a)Tj 0 Tc 1.044 0 Td [(nd )-44(the )-44(like.)-545(The )-45(four )-45(mutually )-45(exclusive )-45(macr)18(os )-45(ar)]TJ 0.2946 Tc 22.801 0 Td (es)Tj 0 Tc 1.198 0 Td (hown)Tj -36.456 -1.2 Td (in Figur)Tj 0.25 Tc 3.506 0 Td (e8)Tj 0 Tc 1.229 0 Td (.4.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1452.25 5050.25 cm 0 0 m 3588 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 181.3262 496.9404 Tm (Macr)Tj 18.689 Tc 2.267 0 Td (oD)Tj 0 Tc 20.009 0 Td (escription)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1452.25 4930.25 cm 0 0 m 3588 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1452.25 4910.25 cm 0 0 m 3588 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 149.1971 482.9131 Tm (WIFEXITED\()Tj /T1_2 1 Tf (status)Tj /TT0 1 Tf (\))Tj /T1_0 1 Tf -0.09 Tc 12.344 0 Td [(Tr )78(u)]TJ 0 Tc 1.513 0 Td [(e)-250(if)-250(status was r)18(eturned for a child that terminated normally)]TJ 0.5 Tc 26.348 0 Td (.I)Tj 0.25 Tc 1.087 0 Td (nt)Tj 0 Tc 1.158 0 Td (his)Tj -30.106 -1.25 Td (case, we can execute)Tj /TT0 1 Tf 2.25 -1.75 Td (WEXITSTATUS\()Tj /T1_2 1 Tf (status)Tj /TT0 1 Tf (\))Tj /T1_0 1 Tf -2.25 -1.75 Td [(to fetch the low-or)18(der 8 bits of the ar)18(gument that the child passed to)]TJ /TT0 1 Tf 0 -1.25 TD (exit)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 2.9 0 Td (_exit)Tj /T1_0 1 Tf 0.25 Tc (,o)Tj 0 Tc 4.046 0 Td (r)Tj /TT0 1 Tf 0.645 0 Td (_Exit)Tj /T1_0 1 Tf (.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1452.25 4310.25 cm 0 0 m 3588 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 149.1882 422.8985 Tm (WIFSIGNALED\()Tj /T1_2 1 Tf (status)Tj /TT0 1 Tf (\))Tj /T1_0 1 Tf -0.09 Tc 12.344 0 Td [(Tr )78(u)]TJ 0 Tc 1.513 0 Td [(e)-250(if)-250(status was r)18(eturned for a child that terminated abnormally)]TJ 0.25 Tc 27.401 0 Td (,b)Tj 0 Tc 1.053 0 Td (y)Tj -0.018 Tc -29.967 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(ceipt of a signal that it didn\325t catch.)-500(In this case, we can execute)]TJ /TT0 1 Tf 1.394 -1.75 Td (WTERMSIG\()Tj /T1_2 1 Tf (status)Tj /TT0 1 Tf (\))Tj /T1_0 1 Tf -2.25 -1.75 Td (to fetch the signal number that caused the termination.)Tj -0 -1.875 Td (Additionally)Tj 0.25 Tc 5.563 0 Td (,s)Tj 0 Tc 0.924 0 Td (ome implementations \(but not the Single UNIX)Tj -6.487 -1.25 Td [(Speci\336cation\) de\336ne the macr)18(o)]TJ /TT0 1 Tf 2.25 -1.75 Td (WCOREDUMP\()Tj /T1_2 1 Tf (status)Tj /TT0 1 Tf (\))Tj /T1_0 1 Tf -2.25 -1.75 Td [(that r)18(eturns tr)8(ue if a cor)]TJ 0.25 Tc 10.456 0 Td (e\336)Tj 0 Tc 1.334 0 Td [(le of the terminated pr)18(ocess was generated.)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1452.25 3280.25 cm 0 0 m 3588 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 149.1792 319.904 Tm (WIFSTOPPED\()Tj /T1_2 1 Tf (status)Tj /TT0 1 Tf (\))Tj /T1_0 1 Tf -0.09 Tc 12.344 0 Td [(Tr )78(u)]TJ 0 Tc 1.513 0 Td [(e)-250(if)-250(status was r)18(eturned for a child that is curr)18(ently stopped.)-500(In this)]TJ -1.513 -1.25 Td (case, we can execute)Tj /TT0 1 Tf 2.25 -1.75 Td (WSTOPSIG\()Tj /T1_2 1 Tf (status)Tj /TT0 1 Tf (\))Tj /T1_0 1 Tf -2.25 -1.75 Td (to fetch the signal number that caused the child to stop.)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1452.25 2780.25 cm 0 0 m 3588 0 l S Q Q BT /TT0 1 Tf 7.9971 0 0 7.9971 149.1703 269.9028 Tm (WIFCONTINUED\()Tj /T1_2 1 Tf (status)Tj /TT0 1 Tf (\))Tj /T1_0 1 Tf -0.09 Tc 12.344 0 Td [(Tr )78(u)]TJ 0 Tc 1.513 0 Td [(e)-250(if)-250(status was r)18(eturned for a child that has been continued after a)]TJ -1.513 -1.25 Td [(job contr)18(ol stop \(XSI option;)]TJ /TT0 1 Tf 12.596 0 Td (waitpid)Tj /T1_0 1 Tf 4.45 0 Td (only\).)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1452.25 2560.25 cm 0 0 m 3588 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2420.25 2560.25 cm 0 0 m 0 2490 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5040.25 2560.25 cm 0 0 m 0 2490 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1452.25 2560.25 cm 0 0 m 0 2490 l S Q Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 172.6115 237.9001 Tm (Figure 8.4)Tj /T1_0 1 Tf 5.195 0 Td [(Macr)18(os to examine the termination status r)18(eturned by)]TJ /TT0 1 Tf 23.991 0 Td (wait)Tj /T1_0 1 Tf 2.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (waitpid)Tj /T1_0 1 Tf -0.092 Tc 9.9958 0 0 9.9958 129.5459 207.9127 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ll discuss how a pr)18(ocess can be stopped in Section 9.8 when we discuss job contr)18(ol.)]TJ /TT1 1 Tf -4.987 -2.76 Td (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(The )-330(function)]TJ /TT0 1 Tf 6.542 0 Td (pr_exit)Tj /T1_0 1 Tf 4.78 0 Td [(in )-330(Figur)]TJ 0.5803 Tc 3.836 0 Td (e8)Tj 0 Tc 1.559 0 Td [(.5 )-330(uses )-330(the )-330(macr)18(os )-330(fr)18(om )-330(Figur)]TJ 0.5804 Tc 14.665 0 Td (e8)Tj 0 Tc 1.559 0 Td [(.4 )-330(to )-330(print )-330(a)]TJ -32.942 -1.2 Td [(description )-61(of )-61(the )-61(termination )-61(status.)]TJ -0.092 Tc 17.114 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-61(call )-61(this )-61(function )-61(fr)18(om )-61(numer)18(ous )-61(pr)19(ograms)]TJ -18.501 -1.2 Td [(in the text.)-500(Note that this function handles the)]TJ /TT0 1 Tf 20.759 0 Td (WCOREDUMP)Tj /T1_0 1 Tf 5.65 0 Td [(macr)18(o, if it is de\336ned.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47027 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (222)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Envir)18(onment )]TJ 39.241 0 Td [(Chapter)-500(7)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (RLIMIT_RSS)Tj /T1_1 1 Tf 11.4 0 Td [(Maximum )-469(r)18(esident )-469(set )-469(size)]TJ 13.989 0.04 Td (\()Tj 0.333 -0.04 Td (RSS)Tj 1.718 0.04 Td (\))Tj 1.052 -0.04 Td [(in )-469(bytes.)-969(If )-469(available)]TJ -17.092 -1.2 Td [(physical )-411(memory )-411(is )-411(low)]TJ 0.6613 Tc 11.709 0 Td (,t)Tj 0 Tc 1.237 0 Td [(he )-411(kernel )-411(takes )-411(memory )-411(fr)17(om)]TJ -12.946 -1.2 Td [(pr)18(ocesses that exceed their RSS.)]TJ /TT0 1 Tf -11.4 -1.6 Td (RLIMIT_SBSIZE)Tj /T1_1 1 Tf 11.4 0 Td [(The )-118(maximum )-118(size )-118(in )-118(bytes )-118(of )-118(socket )-118(buf)20(fers )-118(that )-118(a )-118(user )-118(can)]TJ 0 -1.2 TD (consume at any given time.)Tj /TT0 1 Tf -11.4 -1.6 Td (RLIMIT_SIGPENDING)Tj /T1_1 1 Tf 11.4 0 Td [(The )-202(maximum )-202(number )-202(of )-202(signals )-202(that )-202(can )-202(be )-202(queued )-202(for )-202(a)]TJ T* [(pr)18(ocess. )-530(This)-531(limit )-280(is )-280(enfor)18(ced )-280(by )-280(the)]TJ /TT0 1 Tf 18.563 0 Td (sigqueue)Tj /T1_1 1 Tf 5.33 0 Td (function)Tj -23.893 -1.2 Td (\(Section 10.20\).)Tj /TT0 1 Tf -11.4 -1.6 Td (RLIMIT_STACK)Tj /T1_1 1 Tf 11.4 0 Td [(The maximum size in bytes of the stack.)-500(See Figur)]TJ 0.25 Tc 22.27 0 Td (e7)Tj 0 Tc 1.229 0 Td (.6.)Tj /TT0 1 Tf -34.899 -1.6 Td (RLIMIT_SWAP)Tj /T1_1 1 Tf 11.4 0 Td [(The )-56(maximum )-56(amount )-56(of )-56(swap )-56(space )-56(in )-56(bytes )-56(that )-56(a )-56(user )-56(can)]TJ T* (consume.)Tj /TT0 1 Tf -11.4 -1.6 Td (RLIMIT_VMEM)Tj /T1_1 1 Tf 11.4 0 Td (This is a synonym for)Tj /TT0 1 Tf 9.778 0 Td (RLIMIT_AS)Tj /T1_1 1 Tf (.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1624.25 4910.25 cm 0 0 m 3243 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 309.2149 482.942 Tm [(Fr)18(eeBSD )-2416(Linux)-2382(Mac OS X)-2198(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-3993(3.2.0)-3618(10.6.8 )-3868(10)]TJ -15.228 0.625 Td (Limit)Tj 9.22 0 Td (XSI)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1624.25 4690.25 cm 0 0 m 3243 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1624.25 4670.25 cm 0 0 m 3243 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 166.41 458.9174 Tm (RLIMIT_AS)Tj /T1_1 1 Tf 5.262 Tc 13.581 0 Td [(\245\245\245 )-356(\245)]TJ /TT0 1 Tf 0 Tc -13.581 -1.25 Td (RLIMIT_CORE)Tj /T1_1 1 Tf 5.262 Tc 13.581 0 Td (\245\245\245\245\245)Tj /TT0 1 Tf 0 Tc -13.581 -1.25 Td (RLIMIT_CPU)Tj /T1_1 1 Tf 5.262 Tc 13.581 0 Td (\245\245\245\245\245)Tj /TT0 1 Tf 0 Tc -13.581 -1.25 Td (RLIMIT_DATA)Tj /T1_1 1 Tf 5.262 Tc 13.581 0 Td (\245\245\245\245\245)Tj /TT0 1 Tf 0 Tc -13.581 -1.25 Td (RLIMIT_FSIZE)Tj /T1_1 1 Tf 5.262 Tc 13.581 0 Td (\245\245\245\245\245)Tj /TT0 1 Tf 0 Tc -13.581 -1.25 Td (RLIMIT_MEMLOCK)Tj /T1_1 1 Tf 5.262 Tc 19.449 0 Td (\245\245\245)Tj /TT0 1 Tf 0 Tc -19.449 -1.25 Td (RLIMIT_MSGQUEUE)Tj /T1_1 1 Tf 25.317 0 Td (\245)Tj /TT0 1 Tf -25.317 -1.25 Td (RLIMIT_NICE)Tj /T1_1 1 Tf 25.317 0 Td (\245)Tj /TT0 1 Tf -25.317 -1.25 Td (RLIMIT_NOFILE)Tj /T1_1 1 Tf 5.262 Tc 13.581 0 Td (\245\245\245\245\245)Tj /TT0 1 Tf 0 Tc -13.581 -1.25 Td (RLIMIT_NPROC)Tj /T1_1 1 Tf 5.262 Tc 19.449 0 Td (\245\245\245)Tj /TT0 1 Tf 0 Tc -19.449 -1.25 Td (RLIMIT_NPTS)Tj /T1_1 1 Tf 19.449 0 Td (\245)Tj /TT0 1 Tf -19.449 -1.25 Td (RLIMIT_RSS)Tj /T1_1 1 Tf 5.262 Tc 19.449 0 Td (\245\245\245)Tj /TT0 1 Tf 0 Tc -19.449 -1.25 Td (RLIMIT_SBSIZE)Tj /T1_1 1 Tf 19.449 0 Td (\245)Tj /TT0 1 Tf -19.449 -1.25 Td (RLIMIT_SIGPENDING)Tj /T1_1 1 Tf 25.317 0 Td (\245)Tj /TT0 1 Tf -25.317 -1.25 Td (RLIMIT_STACK)Tj /T1_1 1 Tf 5.262 Tc 13.581 0 Td (\245\245\245\245\245)Tj /TT0 1 Tf 0 Tc -13.581 -1.25 Td (RLIMIT_SWAP)Tj /T1_1 1 Tf 19.449 0 Td (\245)Tj /TT0 1 Tf -19.449 -1.25 Td (RLIMIT_VMEM)Tj /T1_1 1 Tf 37.053 0 Td (\245)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1624.25 2950.25 cm 0 0 m 3243 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3010.25 2950.25 cm 0 0 m 0 1960 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2540.25 2950.25 cm 0 0 m 0 1960 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4867.25 2950.25 cm 0 0 m 0 1960 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1624.25 2950.25 cm 0 0 m 0 1960 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 254.335 276.9335 Tm (Figure 7.15)Tj /T1_1 1 Tf 5.695 0 Td [(Support for r)18(esour)18(ce limits)]TJ 9.9976 0 0 9.9976 147.5648 249.3401 Tm [(The )-7(r)18(esour)18(ce )-7(limits )-7(af)18(fect )-7(the )-7(calling )-7(pr)18(ocess )-7(and )-7(ar)]TJ 0.257 Tc 22.569 0 Td (ei)Tj 0 Tc 1.027 0 Td [(nherited )-7(by )-7(any )-7(of )-7(its )-7(childr)18(en.)]TJ -25.396 -1.2 Td [(This )-14(means )-14(that )-14(the )-14(setting )-14(of )-14(r)19(esour)18(ce )-14(limits )-14(needs )-14(to )-14(be )-14(built )-14(into )-14(the )-14(shells )-14(to )-14(af)19(fect )-14(all)]TJ -0 -1.2 Td [(our )-136(futur)]TJ 0.3861 Tc 4.172 0 Td (ep)Tj -0.018 Tc 1.466 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cesses. )-386(Indeed,)-386(the )-136(Bourne )-136(shell, )-136(the )-136(GNU )-136(Bourne-again )-136(shell, )-136(and )-136(the)]TJ -6.561 -1.2 Td [(Korn )-77(shell )-77(have )-77(the )-77(built-in)]TJ /TT0 1 Tf 12.736 0 Td (ulimit)Tj /T1_1 1 Tf 3.927 0 Td [(command, )-77(and )-77(the )-77(C )-77(shell )-77(has )-77(the )-77(built-in)]TJ /TT0 1 Tf 19.336 0 Td (limit)Tj /T1_1 1 Tf -36 -1.2 Td [(command. )-270(\(The)]TJ /TT0 1 Tf 7.495 0 Td (umask)Tj /T1_1 1 Tf 3.27 0 Td (and)Tj /TT0 1 Tf 1.963 0 Td (chdir)Tj /T1_1 1 Tf 3.27 0 Td [(functions )-20(also )-20(have )-20(to )-20(be )-20(handled )-20(as )-20(shell )-20(built-ins.\))]TJ /TT1 1 Tf -19.597 -2.4 Td (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(The )-125(pr)18(ogram )-125(in )-125(Figur)]TJ 0.3748 Tc 9.913 0 Td (e7)Tj 0 Tc 1.354 0 Td [(.16 )-125(prints )-125(out )-125(the )-125(curr)18(ent )-125(soft )-125(limit )-125(and )-125(har)]TJ 0.3748 Tc 19.798 0 Td (dl)Tj 0 Tc 1.277 0 Td [(imit )-125(for )-125(all )-125(the)]TJ -0.018 Tc -32.342 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sour)18(ce )-140(limits )-140(supported )-140(on )-140(the )-140(system.)]TJ -0.092 Tc 18.411 0 Td [(To )-324(c)]TJ 0 Tc 1.901 0 Td [(ompile )-140(this )-140(pr)18(ogram )-140(on )-140(all )-140(the )-140(various)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47028 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (212)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Envir)18(onment )]TJ 39.241 0 Td [(Chapter)-500(7)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1853.25 6670.25 cm 0 0 m 2786 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 313.9092 658.9605 Tm [(Fr)18(eeBSD )-1250(Linux )-1250(Mac)-250(OS X)-1500(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-2827(3.2.0)-2735(10.6.8 )-3170(10)]TJ -16.416 0.625 Td [(Function)-1935(ISO C)-1500(POSIX.1)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1853.25 6450.25 cm 0 0 m 2786 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1853.25 6430.25 cm 0 0 m 2786 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 189.2973 634.9238 Tm (getenv)Tj /T1_1 1 Tf 4.032 Tc 7.3 0 Td [(\245\245 )3685(\245)]TJ 4.3795 Tc 14.575 0 Td [(\245\245 )4445(\245)]TJ /TT0 1 Tf 0 Tc -21.875 -1.25 Td (putenv)Tj /T1_1 1 Tf 11.477 0 Td [(XSI )-3917(\245)]TJ 4.3795 Tc 10.398 0 Td [(\245\245 )4445(\245)]TJ /TT0 1 Tf 0 Tc -21.876 -1.25 Td (setenv)Tj /T1_1 1 Tf 4.629 Tc 11.938 0 Td (\245\245)Tj 4.3795 Tc 9.937 0 Td (\245\245)Tj /TT0 1 Tf 0 Tc -21.875 -1.25 Td (unsetenv)Tj /T1_1 1 Tf 4.629 Tc 11.938 0 Td (\245\245)Tj 4.3795 Tc 9.937 0 Td (\245\245)Tj /TT0 1 Tf 0 Tc -21.875 -1.25 Td (clearenv)Tj /T1_1 1 Tf 21.875 0 Td (\245)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1853.25 5910.25 cm 0 0 m 2786 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3079.25 5910.25 cm 0 0 m 0 760 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2337.25 5910.25 cm 0 0 m 0 760 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4639.25 5910.25 cm 0 0 m 0 760 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1853.25 5910.25 cm 0 0 m 0 760 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 221.3801 572.8969 Tm (Figure 7.8)Tj /T1_1 1 Tf 5.195 0 Td [(Support for various envir)18(onment list functions)]TJ -9.923 -3.1 Td (The)Tj /TT0 1 Tf 2.006 0 Td (clearenv)Tj /T1_1 1 Tf 5.132 0 Td [(function )-82(is )-82(not )-82(part )-82(of )-82(the )-82(Single )-82(UNIX )-82(Speci\336cation.)-582(It )-82(is )-82(used )-82(to )-82(r)18(emove )-82(all)]TJ -7.138 -1.25 Td [(entries fr)18(om the envir)18(onment list.)]TJ 9.9982 0 0 9.9982 129.5767 516.1071 Tm [(The pr)18(ototypes for the middle thr)18(ee functions listed in Figur)]TJ 0.25 Tc 26.585 0 Td (e7)Tj 0 Tc 1.229 0 Td [(.8 ar)18(e)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.5732 499.4101 Tm (#include )Tj 0 -1.783 TD (int putenv\(char *)Tj /T1_2 1 Tf (str)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 24.288 -1.783 Td [(Returns: 0 if OK, nonzer)18(o)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -24.288 -1.783 Td (int setenv\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 17.767 0 Td (onst char *)Tj /T1_2 1 Tf (value)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 10.567 0 Td (nt)Tj /T1_2 1 Tf -0.018 Tc 1.8 0 Td (re)Tj 0 Tc 0.76 0 Td (write)Tj /TT0 1 Tf (\);)Tj -30.894 -1.783 Td (int unsetenv\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 25.251 -1.783 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT1 1 Tf 9.213 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4147.25 cm 0 0 m 0 938 l 3900 938 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9976 0 0 9.9976 129.5689 401.1537 Tm [(The operation of these thr)18(ee functions is as follows:)]TJ 0.883 Tc 1.8 -2.04 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.397 0 Td (putenv)Tj /T1_1 1 Tf 3.936 0 Td [(function )-86(takes )-86(a )-86(string )-86(of )-86(the )-86(form)]TJ /T1_2 1 Tf 15.839 0 Td (name=value)Tj /T1_1 1 Tf 5.276 0 Td [(and )-86(places )-86(it )-86(in )-86(the)]TJ -27.06 -1.2 Td [(envir)18(onment list.)-500(If)]TJ /T1_2 1 Tf 8.944 0 Td (name)Tj /T1_1 1 Tf 2.417 0 Td [(alr)18(eady exists, its old de\336nition is \336rst r)18(emoved.)]TJ 0.883 Tc -12.85 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.769 0 Td (setenv)Tj /T1_1 1 Tf 4.308 0 Td [(function )-458(sets)]TJ /T1_2 1 Tf 6.777 0 Td (name)Tj /T1_1 1 Tf 2.875 0 Td (to)Tj /T1_2 1 Tf 1.58 0 Td (value)Tj /T1_1 1 Tf 0.9583 Tc (.I)Tj 0 Tc 3.712 0 Td (f)Tj /T1_2 1 Tf 1.041 0 Td (name)Tj /T1_1 1 Tf 2.875 0 Td [(alr)18(eady )-458(exists )-458(in )-458(the)]TJ -25.552 -1.2 Td [(envir)18(onment, )-19(then )-19(\(a\) )-19(if)]TJ /T1_2 1 Tf -0.018 Tc 10.775 0 Td (re)Tj 0 Tc 0.76 0 Td (write)Tj /T1_1 1 Tf 2.38 0 Td [(is )-18(nonzer)18(o, )-18(the )-18(existing )-18(de\336nition )-18(for)]TJ /T1_2 1 Tf 16.627 0 Td (name)Tj /T1_1 1 Tf 2.436 0 Td [(is )-18(\336rst)]TJ -0.018 Tc -32.978 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(moved; )-160(or )-160(\(b\) )-160(if)]TJ /T1_2 1 Tf -0.018 Tc 7.758 0 Td (re)Tj 0 Tc 0.76 0 Td (write)Tj /T1_1 1 Tf 2.521 0 Td [(is )-160(0, )-160(an )-160(existing )-160(de\336nition )-160(for)]TJ /T1_2 1 Tf 14.06 0 Td (name)Tj /T1_1 1 Tf 2.577 0 Td [(is )-160(not )-160(r)18(emoved,)]TJ /T1_2 1 Tf -28.532 -1.2 Td (name)Tj /T1_1 1 Tf 2.417 0 Td (is not set to the new)Tj /T1_2 1 Tf 9.052 0 Td (value)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 3.167 0 Td [(nd no err)18(or occurs.)]TJ 0.883 Tc -16.125 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.488 0 Td (unsetenv)Tj /T1_1 1 Tf 5.227 0 Td [(function )-177(r)18(emoves )-177(any )-177(de\336nition )-177(of)]TJ /T1_2 1 Tf 16.425 0 Td (name)Tj /T1_1 1 Tf 0.6769 Tc (.I)Tj 0 Tc 3.431 0 Td [(t)-427(is)-427(not )-177(an )-177(err)18(or )-177(if)]TJ -27.183 -1.2 Td (such a de\336nition does not exist.)Tj 7.9981 0 0 7.9981 183.5559 268.7855 Tm [(Note )-21(the )-21(dif)19(fer)18(ence )-21(between)]TJ /TT0 1 Tf 12.773 0 Td (putenv)Tj /T1_1 1 Tf 3.871 0 Td (and)Tj /TT0 1 Tf 1.964 0 Td (setenv)Tj /T1_1 1 Tf 0.5206 Tc (.W)Tj 0 Tc 5.371 0 Td [(her)18(eas)]TJ /TT0 1 Tf 3.112 0 Td (setenv)Tj /T1_1 1 Tf 3.871 0 Td [(must )-21(allocate )-21(memory )-21(to)]TJ -30.961 -1.25 Td [(cr)18(eate )-42(the)]TJ /T1_2 1 Tf 4.576 0 Td (name=value)Tj /T1_1 1 Tf 5.232 0 Td [(string )-42(fr)18(om )-42(its )-42(ar)17(guments,)]TJ /TT0 1 Tf 11.903 0 Td (putenv)Tj /T1_1 1 Tf 3.892 0 Td [(is )-42(fr)18(ee )-42(to )-42(place )-42(the )-42(string )-42(passed )-42(to )-42(it)]TJ -25.604 -1.25 Td [(dir)18(ectly )-81(into )-81(the )-81(envir)19(onment. )-331(Indeed,)-331(many )-81(implementations )-81(do )-81(exactly )-81(this, )-81(so )-81(it )-81(would )-81(be)]TJ -0 -1.25 Td [(an )-124(err)18(or )-124(to )-124(pass)]TJ /TT0 1 Tf 7.592 0 Td (putenv)Tj /T1_1 1 Tf 0.3744 Tc 3.974 0 Td (as)Tj 0 Tc 1.298 0 Td [(tring )-124(allocated )-124(on )-124(the )-124(stack, )-124(since )-124(the )-124(memory )-124(would )-124(be )-124(r)16(eused)]TJ -12.865 -1.25 Td [(after we r)18(eturn fr)18(om the curr)18(ent function.)]TJ 9.9976 0 0 9.9976 147.5638 207.8001 Tm [(It )-87(is )-87(inter)18(esting )-87(to )-87(examine )-87(how )-87(these )-87(functions )-87(must )-87(operate )-87(when )-87(modifying )-87(the)]TJ -1.8 -1.2 Td [(envir)18(onment )-112(list.)-612(Recall )-112(Figur)]TJ 0.3624 Tc 13.667 0 Td (e7)Tj 0 Tc 1.341 0 Td [(.6: )-112(the )-112(envir)18(onment )-112(list)]TJ 0.0833 Tc 10.582 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(he )-112(array )-112(of )-112(pointers )-112(to )-112(the)]TJ -26.999 -1.2 Td (actual)Tj /T1_2 1 Tf 3.009 0 Td (name=value)Tj /T1_1 1 Tf 5.286 0 Td [(strings )167(\321 )167(and)-346(the )-95(envir)18(onment )-95(strings )-95(ar)]TJ 0.3455 Tc 18.194 0 Td (et)Tj 0 Tc 1.151 0 Td [(ypically )-95(stor)18(ed )-95(at )-95(the )-95(top)]TJ -27.639 -1.2 Td [(of )-78(a )-78(pr)18(ocess\325s )-78(memory )-78(space, )-78(above )-78(the )-78(stack.)-578(Deleting )-78(a )-78(string )-78(is )-78(simple; )-78(we )-78(just )-78(\336nd)]TJ 0 -1.2 TD [(the )-132(pointer )-132(in )-132(the )-132(envir)19(onment )-132(list )-132(and )-132(move )-132(all )-132(subsequent )-132(pointers )-132(down )-132(one.)-631(But)]TJ T* [(adding )-24(a )-24(string )-24(or )-24(modifying )-24(an )-24(existing )-24(string )-24(is )-24(mor)]TJ 0.2744 Tc 23.927 0 Td (ed)Tj 0 Tc 1.364 0 Td [(if)18(\336cult. )-274(The)-275(space )-24(at )-24(the )-24(top )-24(of)]TJ -25.292 -1.2 Td [(the )-76(stack )-76(cannot )-76(be )-76(expanded, )-76(because )-76(it )-76(is )-76(often )-76(at )-76(the )-76(top )-76(of )-76(the )-76(addr)18(ess )-76(space )-76(of )-76(the)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47029 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(7.9)]TJ 33.483 0 Td [(Envir)18(onment )-250(V)92(ariables)]TJ /T1_1 1 Tf 12.387 0 Td [(21)37(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Note )-56(that )-56(this )-56(function )-56(r)18(eturns )-56(a )-56(pointer )-56(to )-56(the)]TJ /T1_2 1 Tf 21.162 0 Td (value)Tj /T1_0 1 Tf 2.473 0 Td [(of )-56(a)]TJ /T1_2 1 Tf 1.99 0 Td (name=value)Tj /T1_0 1 Tf 5.246 0 Td [(string. )-306(W)]TJ 0.3056 Tc 4.288 0 Td (es)Tj 0 Tc 1.209 0 Td (hould)Tj -36.367 -1.2 Td [(always )-44(use)]TJ /TT0 1 Tf 5.199 0 Td (getenv)Tj /T1_0 1 Tf 3.894 0 Td [(to )-44(fetch )-44(a )-44(speci\336c )-44(value )-44(fr)18(om )-44(the )-44(envir)18(onment, )-44(instead )-44(of )-44(accessing)]TJ /TT0 1 Tf -9.093 -1.2 Td (environ)Tj /T1_0 1 Tf 4.45 0 Td [(dir)18(ectly)111(.)]TJ -2.65 -1.2 Td [(Some )-548(envir)18(onment )-548(variables )-548(ar)]TJ 0.7979 Tc 15.394 0 Td (ed)Tj 0 Tc 1.888 0 Td [(e\336ned )-548(by )-548(POSIX.1 )-548(in )-548(the )-548(Single )-548(UNIX)]TJ -19.082 -1.2 Td [(Speci\336cation, )-30(wher)18(eas )-30(others )-30(ar)]TJ 0.2804 Tc 14.029 0 Td (ed)Tj 0 Tc 1.37 0 Td [(e\336ned )-30(only )-30(if )-30(the )-30(XSI )-30(option )-30(is )-30(supported.)-534(Figur)]TJ 0.2805 Tc 21.591 0 Td (e7)Tj 0 Tc 1.259 0 Td (.7)Tj -38.25 -1.2 Td [(lists )-230(the )-230(envir)18(onment )-230(variables )-230(de\336ned )-230(by )-230(the )-230(Single )-230(UNIX )-230(Speci\336cation )-230(and )-230(notes)]TJ 0 -1.2 TD [(which )-166(implementations )-166(support )-166(the )-166(variables.)-666(Any )-166(envir)18(onment )-166(variable )-166(de\336ned )-166(by)]TJ T* [(POSIX.1 )-194(is )-194(marked )-194(with )-194(\245; )-194(otherwise, )-194(it )-194(is )-194(part )-194(of )-194(the )-194(XSI )-194(option.)-694(Many )-194(additional)]TJ T* [(implementation-dependent )-9(envir)18(onment )-9(variables )-9(ar)]TJ 0.2591 Tc 23.487 0 Td (eu)Tj 0 Tc 1.341 0 Td [(sed )-9(in )-9(the )-9(four )-9(implementations)]TJ -24.828 -1.2 Td [(described in this book.)-500(Note that ISO C doesn\325t de\336ne any envir)18(onment variables.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 5350.25 cm 0 0 m 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 218.9257 526.9368 Tm [(Fr)18(eeBSD )-135(Linux )-135(Mac)-251(OS X)-385(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-1712(3.2.0)-1621(10.6.8 )-2055(10)]TJ -0.092 Tc -10.835 0.625 Td (Va)Tj 0 Tc 1.13 0 Td [(riable)-1866(POSIX.1)]TJ 32.222 0 Td (Description)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 5130.25 cm 0 0 m 3900 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 5110.25 cm 0 0 m 3900 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 130.6085 502.9095 Tm (COLUMNS)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td (terminal width)Tj /TT0 1 Tf -26.326 -1.25 Td (DATEMSK)Tj /T1_0 1 Tf 8.056 0 Td (XSI )Tj 8.169 0 Td (\245)Tj 3.4495 Tc 3.871 0 Td (\245\245)Tj /TT0 1 Tf 0 Tc 6.23 0 Td (getdate)Tj /T1_0 1 Tf 4.2 0.04 Td (\()Tj 0.333 -0.04 Td (3)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (template \336le pathname)Tj /TT0 1 Tf -31.942 -1.25 Td (HOME)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td [(home dir)18(ectory)]TJ /TT0 1 Tf -26.326 -1.25 Td (LANG)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td (name of locale)Tj /TT0 1 Tf -26.326 -1.25 Td (LC_ALL)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td (name of locale)Tj /TT0 1 Tf -26.326 -1.25 Td (LC_COLLATE)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td (name of locale for collation)Tj /TT0 1 Tf -26.326 -1.25 Td (LC_CTYPE)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td (name of locale for character classi\336cation)Tj /TT0 1 Tf -26.326 -1.25 Td (LC_MESSAGES)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td (name of locale for messages)Tj /TT0 1 Tf -26.326 -1.25 Td (LC_MONETARY)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td (name of locale for monetary editing)Tj /TT0 1 Tf -26.326 -1.25 Td (LC_NUMERIC)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td (name of locale for numeric editing)Tj /TT0 1 Tf -26.326 -1.25 Td (LC_TIME)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td (name of locale for date/time formatting)Tj /TT0 1 Tf -26.326 -1.25 Td (LINES)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td (terminal height)Tj /TT0 1 Tf -26.326 -1.25 Td (LOGNAME)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td (login name)Tj /TT0 1 Tf -26.326 -1.25 Td (MSGVERB)Tj /T1_0 1 Tf 8.056 0 Td [(XSI )-2803(\245)]TJ 3.265 Tc 8.169 0 Td [(\245\245 )3331(\245)]TJ /TT0 1 Tf 0 Tc 10.101 0 Td (fmtmsg)Tj /T1_0 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (3)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td [(message components to pr)18(ocess)]TJ /TT0 1 Tf -31.342 -1.25 Td (NLSPATH)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td (sequence of templates for message catalogs)Tj /TT0 1 Tf -26.326 -1.25 Td (PATH)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td [(list of path pr)18(e\336xes to sear)18(ch for executable \336le)]TJ /TT0 1 Tf -26.326 -1.25 Td (PWD)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td [(absolute pathname of curr)18(ent working dir)18(ectory)]TJ /TT0 1 Tf -26.326 -1.25 Td (SHELL)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td [(name of user)-74(\325s pr)18(eferr)18(ed shell)]TJ /TT0 1 Tf -26.326 -1.25 Td (TERM)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td (terminal type)Tj /TT0 1 Tf -26.326 -1.25 Td (TMPDIR)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td [(pathname of dir)18(ectory for cr)18(eating temporary \336les)]TJ /TT0 1 Tf -26.326 -1.25 Td (TZ)Tj /T1_0 1 Tf 3.5145 Tc 8.517 0 Td (\245\245)Tj 3.265 Tc 7.708 0 Td [(\245\245 )3331(\245)]TJ 0 Tc 10.101 0 Td (time zone information)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 2990.25 cm 0 0 m 3900 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3397.25 2990.25 cm 0 0 m 0 2360 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2174.25 2990.25 cm 0 0 m 0 2360 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1849.25 2990.25 cm 0 0 m 0 2360 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5196.25 2990.25 cm 0 0 m 0 2360 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 2990.25 cm 0 0 m 0 2360 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 191.0941 280.9326 Tm (Figure 7.7)Tj /T1_0 1 Tf 5.195 0 Td [(Envir)18(onment variables de\336ned in the Single UNIX Speci\336cation)]TJ 9.9976 0 0 9.9976 147.5648 244.9412 Tm [(In )-147(addition )-147(to )-147(fetching )-147(the )-147(value )-147(of )-147(an )-147(envir)18(onment )-147(variable, )-147(sometimes )-147(we )-147(may)]TJ -1.8 -1.2 Td [(want )-82(to )-82(set )-82(an )-82(envir)18(onment )-82(variable.)]TJ -0.092 Tc 17.181 0 Td [(We )-266(m)]TJ 0 Tc 2.602 0 Td [(ay )-82(want )-82(to )-82(change )-82(the )-82(value )-82(of )-82(an )-82(existing)]TJ -19.782 -1.2 Td [(variable )-84(or )-84(add )-84(a )-84(new )-84(variable )-84(to )-84(the )-84(envir)18(onment. )-334(\(In)-334(the )-84(next )-84(chapter)]TJ 0.3339 Tc 32.46 0 Td (,w)Tj 0 Tc 1.418 0 Td [(e\325ll )-84(see )-84(that)]TJ -33.878 -1.2 Td [(we )-69(can )-69(af)18(fect )-69(the )-69(envir)18(onment )-69(of )-69(only )-69(the )-69(curr)21(ent )-69(pr)18(ocess )-69(and )-69(any )-69(child )-69(pr)18(ocesses )-69(that)]TJ T* [(we )-138(invoke.)]TJ -0.092 Tc 5.609 0 Td [(We )-322(c)]TJ 0 Tc 2.219 0 Td [(annot )-138(af)18(fect )-138(the )-138(envir)18(onment )-138(of )-138(the )-138(par)18(ent )-138(pr)18(ocess, )-138(which )-138(is )-138(often )-138(a)]TJ -7.828 -1.2 Td [(shell. )-610(Nevertheless,)-610(it )-360(is )-360(still )-360(useful )-360(to )-360(be )-360(able )-360(to )-360(modify )-360(the )-360(envir)20(onment )-360(list.\))]TJ -0 -1.2 Td (Unfortunately)Tj 0.3829 Tc 6.186 0 Td (,n)Tj 0 Tc 1.215 0 Td [(ot )-133(all )-133(systems )-133(support )-133(this )-133(capability)]TJ 0.6328 Tc 16.745 0 Td (.F)Tj 0 Tc 1.439 0 Td (igur)Tj 0.3828 Tc 1.827 0 Td (e7)Tj 0 Tc 1.362 0 Td [(.8 )-133(shows )-133(the )-133(functions)]TJ -28.773 -1.2 Td (that ar)Tj 0.25 Tc 2.861 0 Td (es)Tj 0 Tc 1.153 0 Td [(upported by the various standar)18(ds and implementations.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47030 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (180)Tj /T1_1 1 Tf 3.5 0 Td [(System )-250(Data )-250(Files )-250(and )-250(Information)]TJ 39.241 0 Td [(Chapter )-250(6)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Both )-26(functions )-26(r)18(eturn )-26(a )-26(pointer )-26(to )-26(a)]TJ /TT0 1 Tf 15.979 0 Td (passwd)Tj /T1_1 1 Tf 3.876 0 Td [(str)8(uctur)]TJ 0.2757 Tc 3.49 0 Td (et)Tj 0 Tc 1.081 0 Td [(hat )-26(the )-26(functions )-26(\336ll )-26(in.)-524(This)]TJ -26.225 -1.2 Td [(str)8(uctur)18(e)-671(is)-671(u)1(sually )-421(a)]TJ /TT0 1 Tf 11.135 0 Td (static)Tj /T1_1 1 Tf 4.271 0 Td [(variable )-421(within )-421(the )-421(function, )-421(so )-421(its )-421(contents )-421(ar)21(e)]TJ -15.406 -1.2 Td (overwritten each time we call either of these functions.)Tj 1.8 -1.2 Td [(These )-26(two )-26(POSIX.1 )-26(functions )-26(ar)]TJ 0.2763 Tc 14.065 0 Td (e\336)Tj 0 Tc 1.36 0 Td [(ne )-26(if )-26(we )-26(want )-26(to )-26(look )-26(up )-26(either )-26(a )-26(login )-26(name )-26(or )-26(a)]TJ -17.225 -1.2 Td [(user )-312(ID, )-312(but )-312(some )-312(pr)18(ograms )-312(need )-312(to )-312(go )-312(thr)18(ough )-312(the )-312(entir)]TJ 0.5617 Tc 28.114 0 Td (ep)Tj 0 Tc 1.642 0 Td (asswor)Tj 0.5617 Tc 3.105 0 Td (d\336)Tj 0 Tc 1.778 0 Td [(le. )-562(Thr)18(ee)]TJ -34.638 -1.2 Td (functions can be used for this purpose:)Tj /TT0 1 Tf 17.352 0 Td (getpwent)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 5.3 0 Td (setpwent)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 5.8 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (endpwent)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5904 593.4644 Tm (#include )Tj 0 -1.664 TD (struct passwd *getpwent\(void\);)Tj /T1_1 1 Tf 16.913 -1.664 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or or end of \336le)]TJ /TT0 1 Tf -29.896 -1.664 Td (void setpwent\(void\);)Tj T* (void endpwent\(void\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5291.25 cm 0 0 m 0 734 l 3900 734 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 183.578 508.7189 Tm [(These )-95(thr)18(ee )-95(functions )-95(ar)]TJ 0.3448 Tc 10.862 0 Td (en)Tj 0 Tc 1.406 0 Td [(ot )-95(part )-95(of )-95(the )-95(base )-95(POSIX.1 )-95(standar)20(d. )-345(They)-345(ar)]TJ 0.3449 Tc 20.881 0 Td (ed)Tj 0 Tc 1.435 0 Td [(e\336ned )-95(as )-95(part )-95(of)]TJ -34.584 -1.25 Td [(the )-122(XSI )-122(option )-122(in )-122(the )-122(Single )-122(UNIX )-122(Speci\336cation.)-622(As )-122(such, )-122(all )-122(UNIX )-122(systems )-122(ar)]TJ 0.3721 Tc 35.97 0 Td (ee)Tj 0 Tc 1.33 0 Td [(xpected )-122(to)]TJ -37.3 -1.25 Td [(pr)18(ovide them.)]TJ -0.092 Tc 9.9988 0 0 9.9988 147.5824 468.7237 Tm [(We )-297(c)]TJ 0 Tc 2.194 0 Td (all)Tj /TT0 1 Tf 1.445 0 Td (getpwent)Tj /T1_1 1 Tf 5.163 0 Td [(to )-113(r)18(eturn )-113(the )-113(next )-113(entry )-113(in )-113(the )-113(passwor)]TJ 0.363 Tc 17.769 0 Td (d\336)Tj 0 Tc 1.579 0 Td [(le. )-363(As)-363(with )-113(the )-113(two)]TJ -29.95 -1.2 Td [(POSIX.1 )-70(functions,)]TJ /TT0 1 Tf 8.691 0 Td (getpwent)Tj /T1_1 1 Tf -0.018 Tc 5.121 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-70(a )-70(pointer )-70(to )-70(a )-70(str)6(uctur)]TJ 0.3204 Tc 12.514 0 Td (et)Tj 0 Tc 1.125 0 Td [(hat )-70(it )-70(has )-70(\336lled )-70(in.)-572(This)]TJ -28.307 -1.2 Td [(str)8(uctur)18(e)-315(is)-315(n)-1(ormally )-65(overwritten )-65(each )-65(time )-65(we )-65(call )-65(this )-65(function.)-567(If )-65(this )-65(is )-65(the )-65(\336rst )-65(call)]TJ 0 -1.2 TD [(to )-48(this )-48(function, )-48(it )-48(opens )-48(whatever )-48(\336les )-48(it )-48(uses.)-549(Ther)]TJ 0.2981 Tc 23.441 0 Td (ei)Tj 0 Tc 1.068 0 Td [(s)-298(no)-298(o)]TJ -0.018 Tc (rd)Tj 0 Tc 3.682 0 Td [(er )-48(implied )-48(when )-48(we )-48(use)]TJ -28.191 -1.2 Td [(this )-242(function; )-242(the )-242(entries )-242(can )-242(be )-242(in )-242(any )-242(or)17(der)]TJ 0.4922 Tc 21.283 0 Td (,b)Tj 0 Tc 1.295 0 Td [(ecause )-242(some )-242(systems )-242(use )-242(a )-242(hashed)]TJ -22.578 -1.2 Td (version of the \336le)Tj /TT0 1 Tf 7.923 0 Td (/etc/passwd)Tj /T1_1 1 Tf (.)Tj -6.123 -1.2 Td [(The )-48(function)]TJ /TT0 1 Tf 5.976 0 Td (setpwent)Tj /T1_1 1 Tf -0.018 Tc 5.098 0 Td (re)Tj 0 Tc 0.856 0 Td [(winds )-48(whatever )-48(\336les )-48(it )-48(uses, )-48(and)]TJ /TT0 1 Tf 14.977 0 Td (endpwent)Tj /T1_1 1 Tf 5.098 0 Td [(closes )-48(these)]TJ -33.804 -1.2 Td [(\336les. )-412(When)-413(using)]TJ /TT0 1 Tf 8.635 0 Td (getpwent)Tj /T1_1 1 Tf [(,)-412(we)-412(m)-1(ust )-162(always )-162(be )-162(sur)17(e)-412(to)-412(c)-1(lose )-162(these )-162(\336les )-162(by )-162(calling)]TJ /TT0 1 Tf -8.635 -1.2 Td (endpwent)Tj /T1_1 1 Tf 5.056 0 Td [(when )-5(we\325r)]TJ 0.2554 Tc 4.701 0 Td (et)Tj 0 Tc 1.06 0 Td [(hr)18(ough. )-255(Although)]TJ /TT0 1 Tf 8.521 0 Td (getpwent)Tj /T1_1 1 Tf 5.055 0 Td [(is )-5(smart )-5(enough )-5(to )-5(know )-5(when )-5(it)]TJ -24.393 -1.2 Td (has to open its \336les \(the \336rst time we call it\), it never knows \ when we\325r)Tj 0.25 Tc 31.168 0 Td (et)Tj 0 Tc 1.055 0 Td [(hr)18(ough.)]TJ /TT1 1 Tf -35.823 -2.28 Td (Example)Tj /T1_1 1 Tf 3.6 -1.8 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e6)Tj 0 Tc 1.229 0 Td (.2 shows an implementation of the function)Tj /TT0 1 Tf 19.425 0 Td (getpwnam)Tj /T1_1 1 Tf (.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3128.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 303.2244 Tm (#include )Tj 0 -1.189 TD (#include )Tj T* (#include )Tj 0 -1.783 TD (struct passwd *)Tj 0 -1.189 TD (getpwnam\(const char *name\))Tj T* ({)Tj 2.4 -1.189 Td [(struct passwd)-1200(*ptr;)]TJ 0 -1.783 TD (setpwent\(\);)Tj 0 -1.189 TD (while \(\(ptr = getpwent\(\)\) != NULL\))Tj 2.4 -1.189 Td (if \(strcmp\(name, ptr->pw_name\) == 0\))Tj 2.4 -1.189 Td [(break; )-3000(/*)-600(found a match */)]TJ -4.8 -1.189 Td (endpwent\(\);)Tj T* [(return\(ptr\); )-1800(/*)-600(ptr is NULL if no match found */)]TJ -2.4 -1.189 Td (})Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1487.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 261.0333 135.0456 Tm (Figure 6.2)Tj /T1_1 1 Tf 5.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (getpwnam)Tj /T1_1 1 Tf 5.05 0 Td (function)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47031 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(5.13)]TJ -0.092 Tc 36.416 0 Td (Te)Tj 0 Tc 1 0 Td [(mporary )-250(Files)]TJ /T1_1 1 Tf 8.417 0 Td (169)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(If we execute the pr)18(ogram in Figur)]TJ 0.25 Tc 15.31 0 Td (e5)Tj 0 Tc 1.229 0 Td (.12, we get)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 652.2609 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (/tmp/fileT0Hsu6)Tj 0 -1.189 TD (/tmp/filekmAsYQ)Tj T* (one line of output)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 6082.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 584.1299 Tm [(The )-108(standar)]TJ 0.3579 Tc 5.352 0 Td (dt)Tj 0 Tc 1.295 0 Td [(echnique )-108(often )-108(used )-108(by )-108(the)]TJ /TT0 1 Tf 12.689 0 Td (tmpfile)Tj /T1_0 1 Tf 4.558 0 Td [(function )-108(is )-108(to )-108(cr)18(eate )-108(a )-108(unique)]TJ -25.693 -1.2 Td [(pathname )-114(by )-114(calling)]TJ /TT0 1 Tf 9.611 0 Td (tmpnam)Tj /T1_0 1 Tf 0.3645 Tc (,t)Tj 0 Tc 4.541 0 Td [(hen )-114(cr)18(eate )-114(the )-114(\336le, )-114(and )-114(immediately)]TJ /TT0 1 Tf 16.73 0 Td (unlink)Tj /T1_0 1 Tf 3.964 0 Td [(it. )-364(Recall)]TJ -34.846 -1.2 Td [(fr)18(om )-27(Section )-27(4.15 )-27(that )-27(unlinking )-27(a )-27(\336le )-27(does )-27(not )-27(delete )-27(its )-27(contents )-27(until )-27(the )-27(\336le )-27(is )-27(closed.)]TJ 0 -1.2 TD [(This )-262(way)]TJ 0.5123 Tc 4.201 0 Td (,w)Tj 0 Tc 1.596 0 Td [(hen )-262(the )-262(\336le )-262(is )-262(closed, )-262(either )-262(explicitly )-262(or )-262(on )-262(pr)18(ogram )-262(termination, )-262(the)]TJ -5.798 -1.2 Td (contents of the \336le ar)Tj 0.25 Tc 9.227 0 Td (ed)Tj 0 Tc 1.34 0 Td (eleted.)Tj -8.767 -1.2 Td [(The )-121(Single )-121(UNIX )-121(Speci\336cation )-121(de\336nes )-121(two )-121(additional )-121(functions )-121(as )-121(part )-121(of )-121(the )-121(XSI)]TJ -1.8 -1.2 Td (option for dealing with temporary \336les:)Tj /TT0 1 Tf 17.739 0 Td (mkdtemp)Tj /T1_0 1 Tf 4.45 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (mkstemp)Tj /T1_0 1 Tf (.)Tj 7.999 0 0 7.999 183.5781 492.1409 Tm [(Older )-153(versions )-153(of )-153(the )-153(Single )-153(UNIX )-153(Speci\336cation )-153(de\336ned )-153(the)]TJ /TT0 1 Tf 27.89 0 Td (tempnam)Tj /T1_0 1 Tf 4.603 0 Td [(function )-153(as )-153(a )-153(way )-153(to)]TJ -32.494 -1.25 Td [(cr)18(eate a temporary \336le in a caller)18(-speci\336ed location.)-500(It is marked obsolescent in SUSv4.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5824 457.0451 Tm (#include )Tj 0 -1.783 TD (char *mkdtemp\(char *)Tj /T1_2 1 Tf (template)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 14.689 -1.783 Td [(Returns: pointer to dir)18(ectory name if OK,)]TJ /TT0 1 Tf 18.424 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -35.763 -1.783 Td (int mkstemp\(char *)Tj /T1_2 1 Tf (template)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 21.214 -1.783 Td (Returns: \336le descriptor if OK,)Tj /TT2 1 Tf 13.25 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3884.25 cm 0 0 m 0 777 l 3900 777 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 372.433 Tm (The)Tj /TT0 1 Tf 2.194 0 Td (mkdtemp)Tj /T1_0 1 Tf 4.72 0 Td [(function )-270(cr)18(eates )-270(a )-270(dir)18(ectory )-270(with )-270(a )-270(unique )-270(name, )-270(and )-270(the)]TJ /TT0 1 Tf 27.886 0 Td (mkstemp)Tj /T1_0 1 Tf -34.8 -1.2 Td [(function )-206(cr)18(eates )-206(a )-206(r)18(egular )-206(\336le )-206(with )-206(a )-206(unique )-206(name.)-706(The )-206(name )-206(is )-206(selected )-206(using )-206(the)]TJ /T1_2 1 Tf 0 -1.2 TD (template)Tj /T1_0 1 Tf 3.794 0 Td [(string. )-350(This)-349(string )-100(is )-100(a )-100(pathname )-100(whose )-100(last )-100(six )-100(characters )-100(ar)]TJ 0.3498 Tc 27.727 0 Td (es)Tj 0 Tc 1.253 0 Td [(et )-100(to)]TJ /TT0 1 Tf 2.377 0 Td (XXXXXX)Tj /T1_0 1 Tf (.)Tj -35.15 -1.2 Td [(The )-176(function )-176(r)18(eplaces )-176(these )-176(placeholders )-176(with )-176(dif)20(fer)18(ent )-175(characters )-175(to )-175(cr)18(eate )-175(a )-175(unique)]TJ -0 -1.2 Td [(pathname. )-255(If)-255(successful, )-5(these )-5(functions )-5(modify )-5(the)]TJ /T1_2 1 Tf 23.156 0 Td (template)Tj /T1_0 1 Tf 3.699 0 Td [(string )-5(to )-5(r)18(e\337ect )-5(the )-5(name )-5(of)]TJ -26.855 -1.2 Td (the temporary \336le.)Tj 1.8 -1.2 Td [(The )-89(dir)18(ectory )-89(cr)18(eated )-89(by)]TJ /TT0 1 Tf 11.378 0 Td (mkdtemp)Tj /T1_0 1 Tf 4.539 0 Td [(is )-88(cr)18(eated )-88(with )-88(the )-88(following )-88(access )-88(permission)]TJ -17.717 -1.2 Td [(bits )-46(set:)]TJ /TT0 1 Tf 3.665 0 Td [(S_IRUSR )350(| )350(S_IWUSR )350(| )350(S_IXUSR)]TJ /T1_0 1 Tf 0.546 Tc (.N)Tj 0 Tc 16.427 0 Td [(ote )-46(that )-46(the )-46(\336le )-46(mode )-46(cr)18(eation )-46(mask )-46(of )-46(the)]TJ -20.092 -1.2 Td [(calling )-52(pr)18(ocess )-52(can )-52(r)19(estrict )-52(these )-52(permissions )-52(further)]TJ 0.5517 Tc 23.317 0 Td (.I)Tj 0.3017 Tc 1.139 0 Td (fd)Tj 0 Tc 1.246 0 Td [(ir)18(ectory )-52(cr)18(eation )-52(is )-52(successful,)]TJ /TT0 1 Tf -25.702 -1.2 Td (mkdtemp)Tj /T1_0 1 Tf -0.018 Tc 4.45 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns the name of the new dir)18(ectory)111(.)]TJ -3.506 -1.2 Td (The)Tj /TT0 1 Tf 1.981 0 Td (mkstemp)Tj /T1_0 1 Tf 4.507 0 Td [(function )-57(cr)18(eates )-57(a )-57(r)17(egular )-57(\336le )-57(with )-57(a )-57(unique )-57(name )-57(and )-57(opens )-57(it.)-561(The)]TJ -8.289 -1.2 Td [(\336le )-1(descriptor )-1(r)17(eturned )-1(by)]TJ /TT0 1 Tf 11.853 0 Td (mkstemp)Tj /T1_0 1 Tf 4.451 0 Td [(is )-1(open )-1(for )-1(r)18(eading )-1(and )-1(writing.)-501(The )-1(\336le )-1(cr)18(eated )-1(by)]TJ /TT0 1 Tf -16.304 -1.2 Td (mkstemp)Tj /T1_0 1 Tf 4.45 0 Td [(is cr)18(eated with access permissions)]TJ /TT0 1 Tf 15.269 0 Td [(S_IRUSR )350(| )350(S_IWUSR)]TJ /T1_0 1 Tf (.)Tj -17.919 -1.2 Td (Unlike)Tj /TT0 1 Tf 3.747 0 Td (tmpfile)Tj /T1_0 1 Tf 0.7696 Tc (,t)Tj 0 Tc 5.546 0 Td [(he )-520(temporary )-520(\336le )-520(cr)18(eated )-520(by)]TJ /TT0 1 Tf 15.29 0 Td (mkstemp)Tj /T1_0 1 Tf 4.97 0 Td [(is )-520(not )-520(r)19(emoved)]TJ -31.352 -1.2 Td [(automatically )-50(for )-50(us.)-550(If )-50(we )-50(want )-50(to )-50(r)18(emove )-50(it )-50(fr)18(om )-50(the )-50(\336le )-50(system )-50(namespace, )-50(we )-50(need)]TJ T* (to unlink it ourselves.)Tj 1.8 -1.2 Td [(Use )-150(of)]TJ /TT0 1 Tf 3.361 0 Td (tmpnam)Tj /T1_0 1 Tf 4.001 0 Td (and)Tj /TT0 1 Tf 2.094 0 Td (tempnam)Tj /T1_0 1 Tf 4.601 0 Td [(does )-151(have )-151(at )-151(least )-151(one )-151(drawback: )-151(a )-151(window )-151(exists)]TJ -15.855 -1.2 Td [(between )-21(the )-21(time )-21(that )-21(the )-21(unique )-21(pathname )-21(is )-21(r)17(eturned )-21(and )-21(the )-21(time )-21(that )-21(an )-21(application)]TJ T* [(cr)18(eates )-67(a )-67(\336le )-67(with )-67(that )-67(name.)-567(During )-67(this )-67(timing )-67(window)]TJ 0.3172 Tc 25.828 0 Td (,a)Tj 0 Tc 1.067 0 Td [(nother )-67(pr)18(ocess )-67(can )-67(cr)18(eate )-67(a)]TJ -26.895 -1.2 Td [(\336le )-10(of )-10(the )-10(same )-10(name.)-509(The)]TJ /TT0 1 Tf 12.104 0 Td (tmpfile)Tj /T1_0 1 Tf 4.46 0 Td (and)Tj /TT0 1 Tf 1.953 0 Td (mkstemp)Tj /T1_0 1 Tf 4.46 0 Td [(functions )-10(should )-10(be )-10(used )-10(instead, )-10(as)]TJ -22.977 -1.2 Td [(they don\325t suf)18(fer fr)18(om this pr)18(oblem.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47032 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (168)Tj /T1_1 1 Tf 3.5 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Library)]TJ 34.372 0 Td [(Chapter )-250(5)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (The)Tj /TT0 1 Tf 2.111 0 Td (tmpnam)Tj /T1_1 1 Tf 4.037 0 Td [(function )-187(generates )-187(a )-187(string )-187(that )-187(is )-187(a )-187(valid )-187(pathname )-187(and )-187(that )-187(does )-187(not)]TJ -6.149 -1.2 Td [(match )-57(the )-57(name )-57(of )-57(any )-57(existing )-57(\336le.)-556(This )-57(function )-57(generates )-57(a )-57(dif)19(fer)18(ent )-57(pathname )-57(each)]TJ -0 -1.2 Td (time it is called, up to)Tj /TT0 1 Tf 9.753 0 Td (TMP_MAX)Tj /T1_1 1 Tf 4.45 0 Td (times.)Tj /TT0 1 Tf 3.153 0 Td (TMP_MAX)Tj /T1_1 1 Tf 4.45 0 Td (is de\336ned in)Tj /TT0 1 Tf 5.705 0 Td ()Tj /T1_1 1 Tf (.)Tj 7.9995 0 0 7.9995 183.589 624.9625 Tm [(Although )-113(ISO )-113(C )-113(de\336nes)]TJ /TT0 1 Tf 11.255 0 Td (TMP_MAX)Tj /T1_1 1 Tf 0.3635 Tc (,t)Tj 0 Tc 5.139 0 Td [(he )-113(C )-113(standar)]TJ 0.3635 Tc 5.817 0 Td (dr)Tj 0 Tc 1.352 0 Td [(equir)18(es )-113(only )-113(that )-113(its )-113(value )-113(be )-113(at )-113(least )-113(25.)]TJ -23.563 -1.25 Td (The Single UNIX Speci\336cation, however)Tj 0.2505 Tc 17.703 0 Td (,r)Tj 0 Tc 0.877 0 Td [(equir)18(es that XSI-conforming systems support a value)]TJ -18.58 -1.25 Td [(of )-402(at )-402(least )-402(10,000.)-903(This )-402(minimum )-402(value )-402(allows )-402(an )-402(implementation )-402(to )-402(use )-402(four )-402(digits)]TJ 0 -1.21 TD (\()Tj 0.333 -0.04 Td (0000)Tj 2.083 0.09 Td (\320)Tj 0.583 -0.09 Td (9999)Tj 2 0.04 Td (\))Tj 0.25 Tc 0.333 -0.04 Td (,a)Tj 0 Tc 1 0 Td (lthough most implementations on UNIX systems use alphanumeric characters\ .)Tj -6.333 -2.125 Td (The)Tj /TT0 1 Tf 2.064 0 Td (tmpnam)Tj /T1_1 1 Tf 3.99 0 Td [(function )-140(is )-140(marked )-140(obsolescent )-140(in )-140(SUSv4, )-140(but )-140(the )-140(ISO )-140(C )-140(standar)]TJ 0.3903 Tc 29.404 0 Td (dc)Tj 0 Tc 1.445 0 Td [(ontinues )-140(to)]TJ -36.905 -1.25 Td (support it.)Tj 9.9994 0 0 9.9994 147.5909 549.967 Tm (If)Tj /T1_2 1 Tf 0.936 0 Td (ptr)Tj /T1_1 1 Tf 1.488 0 Td (is)Tj /TT0 1 Tf 0.981 0 Td (NULL)Tj /T1_1 1 Tf 0.2659 Tc (,t)Tj 0 Tc 3.242 0 Td [(he )-16(generated )-16(pathname )-16(is )-16(stor)18(ed )-16(in )-16(a )-16(static )-16(ar)18(ea, )-16(and )-16(a )-16(pointer )-16(to )-16(this)]TJ -8.446 -1.2 Td [(ar)18(ea )-33(is )-33(r)18(eturned )-33(as )-33(the )-33(value )-33(of )-33(the )-33(function.)-533(Subsequent )-33(calls )-33(to)]TJ /TT0 1 Tf 28.998 0 Td (tmpnam)Tj /T1_1 1 Tf 3.883 0 Td [(can )-33(overwrite)]TJ -32.881 -1.2 Td [(this )-62(static )-62(ar)17(ea. )-312(\(Thus,)-313(if )-62(we )-62(call )-62(this )-62(function )-62(mor)]TJ 0.3124 Tc 22.506 0 Td (et)Tj 0 Tc 1.117 0 Td [(han )-62(once )-62(and )-62(we )-62(want )-62(to )-62(save )-62(the)]TJ -23.623 -1.2 Td [(pathname, )-53(we )-53(have )-53(to )-53(save )-53(a )-53(copy )-53(of )-53(the )-53(pathname, )-53(not )-53(a )-53(copy )-53(of )-53(the )-53(pointer)79(.\) )-303(If)]TJ /T1_2 1 Tf 36.76 0 Td (ptr)Tj /T1_1 1 Tf 1.525 0 Td (is)Tj -38.285 -1.2 Td (not)Tj /TT0 1 Tf 1.748 0 Td (NULL)Tj /T1_1 1 Tf [(,)-294(it)-294(is)-294(a)1(ssumed )-44(that )-44(it )-44(points )-44(to )-44(an )-44(array )-44(of )-44(at )-44(least)]TJ /TT0 1 Tf 24.869 0 Td (L_tmpnam)Tj /T1_1 1 Tf 5.094 0 Td [(characters. )-294(\(The)]TJ -31.71 -1.2 Td (constant)Tj /TT0 1 Tf 4.13 0 Td (L_tmpnam)Tj /T1_1 1 Tf 5.2 0 Td [(is )-150(de\336ned )-150(in)]TJ /TT0 1 Tf 6.154 0 Td ()Tj /T1_1 1 Tf [(.\) )-400(The)-399(generated )-150(pathname )-150(is )-150(stor)18(ed )-150(in)]TJ -15.484 -1.2 Td (this array)Tj 0.25 Tc 4.108 0 Td (,a)Tj 0 Tc 1 0 Td (nd)Tj /T1_2 1 Tf 1.443 0 Td (ptr)Tj /T1_1 1 Tf 1.472 0 Td [(is r)18(eturned as the value of the function.)]TJ -6.223 -1.2 Td (The)Tj /TT0 1 Tf 2.427 0 Td (tmpfile)Tj /T1_1 1 Tf 4.953 0 Td [(function )-503(cr)18(eates )-503(a )-503(temporary )-503(binary )-503(\336le )-503(\(type)]TJ /TT0 1 Tf 23.733 0 Td (wb+)Tj /T1_1 1 Tf 0.7528 Tc (\)t)Tj 0 Tc 3.212 0 Td [(hat )-503(is)]TJ -36.124 -1.2 Td [(automatically )-77(r)18(emoved )-77(when )-77(it )-77(is )-77(closed )-77(or )-77(on )-77(pr)16(ogram )-77(termination.)-577(Under )-77(the )-77(UNIX)]TJ 0 -1.2 TD [(System, it makes no dif)18(fer)18(ence that this \336le is a binary \336le.)]TJ /TT1 1 Tf -3.6 -2.4 Td (Example)Tj /T1_1 1 Tf 3.6 -1.8 Td [(The pr)18(ogram in Figur)]TJ 0.25 Tc 9.538 0 Td (e5)Tj 0 Tc 1.229 0 Td (.12 demonstrates these two functions.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3880.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 378.4536 Tm (#include "apue.h")Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(char )-1800(name[L_tmpnam],)-600(line[MAXLINE];)]TJ 0 -1.189 TD [(FILE )-1800(*fp;)]TJ 0 -2.021 TD [(printf\("%s\\n", tmpnam\(NULL\)\);)-4200(/* first temp name */)]TJ T* (tmpnam\(name\); )Tj 21.6 0 Td [(/*)-600(second temp name */)]TJ -21.6 -1.189 Td (printf\("%s\\n", name\);)Tj T* [(if \(\(fp = tmpfile\(\)\) == NULL\))-4200(/* create temp file */)]TJ 2.4 -1.189 Td (err_sys\("tmpfile error"\);)Tj -2.4 -1.189 Td [(fputs\("one line of output\\n", fp\);)-1200(/* write to temp file */)]TJ 0 -1.189 TD (rewind\(fp\); )Tj 21.6 0 Td [(/*)-600(then read it back */)]TJ -21.6 -1.189 Td (if \(fgets\(line, sizeof\(line\), fp\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("fgets error"\);)Tj -2.4 -1.189 Td (fputs\(line, stdout\);)Tj 21.6 0 Td (/* print the line we wrote */)Tj -21.6 -2.021 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1543.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 220.4283 138.3231 Tm (Figure 5.12)Tj /T1_1 1 Tf 5.695 0 Td (Demonstrate)Tj /TT0 1 Tf 5.964 0 Td (tmpnam)Tj /T1_1 1 Tf 3.85 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (tmpfile)Tj /T1_1 1 Tf 4.45 0 Td (functions)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47033 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(5.1)]TJ 31.5943 Tc 4.888 0 Td (1F)Tj 0 Tc 32.65 0 Td [(ormatted )-250(I/O)]TJ /T1_1 1 Tf 8.295 0 Td (163)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 6670.25 cm 0 0 m 3899 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 149.179 658.9605 Tm (Conversion )Tj 24.6 0 Td (Description)Tj -23.021 -1.25 Td (type)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 6450.25 cm 0 0 m 3899 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 6430.25 cm 0 0 m 3899 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 133.648 634.9238 Tm (d)Tj /T1_0 1 Tf 10.5 0 Td (signed decimal, base 10)Tj /TT0 1 Tf -10.5 -1.25 Td (i)Tj /T1_0 1 Tf 10.5 0 Td (signed decimal, base determined by format of input)Tj /TT0 1 Tf -10.5 -1.25 Td (o)Tj /T1_0 1 Tf 10.5 0 Td (unsigned octal \(input optionally signed\))Tj /TT0 1 Tf -10.5 -1.25 Td (u)Tj /T1_0 1 Tf 10.5 0 Td (unsigned decimal, base 10 \(input optionally signed\))Tj /TT0 1 Tf -10.5 -1.25 Td (x,X)Tj /T1_0 1 Tf 10.5 0 Td (unsigned hexadecimal \(input optionally signed\))Tj /TT0 1 Tf -10.5 -1.25 Td (a,A,e,E,f,F,g,G)Tj /T1_0 1 Tf 10.5 0 Td (\337oating-point number)Tj /TT0 1 Tf -10.5 -1.25 Td (c)Tj /T1_0 1 Tf 10.5 0 Td (character \(with)Tj /TT0 1 Tf 6.931 0 Td (l)Tj /T1_0 1 Tf 0.85 0 Td (length modi\336er)Tj 0.25 Tc 6.802 0 Td (,w)Tj 0 Tc 1.334 0 Td (ide character\))Tj /TT0 1 Tf -26.417 -1.25 Td (s)Tj /T1_0 1 Tf 10.5 0 Td (string \(with)Tj /TT0 1 Tf 5.44 0 Td (l)Tj /T1_0 1 Tf 0.85 0 Td (length modi\336er)Tj 0.25 Tc 6.802 0 Td (,w)Tj 0 Tc 1.334 0 Td (ide character string\))Tj /TT0 1 Tf -24.926 -1.25 Td ([)Tj /T1_0 1 Tf 10.5 0 Td (matches a sequence of listed characters, ending with)Tj /TT0 1 Tf 23.362 0 Td (])Tj -33.862 -1.25 Td ([\366)Tj /T1_0 1 Tf 10.5 0 Td (matches all characters except the ones listed, ending with)Tj /TT0 1 Tf 25.528 0 Td (])Tj -36.028 -1.25 Td (p)Tj /T1_0 1 Tf 10.5 0 Td (pointer to a)Tj /TT0 1 Tf 5.342 0 Td (void)Tj -15.842 -1.25 Td (n)Tj /T1_0 1 Tf 10.5 0 Td [(pointer to a signed integer into which is written the number of characte\ rs r)18(ead so far)]TJ /TT0 1 Tf -10.5 -1.25 Td (%)Tj /T1_0 1 Tf 0.25 Tc 10.5 0 Td (a%c)Tj 0 Tc 2.284 0 Td (haracter)Tj /TT0 1 Tf -12.784 -1.25 Td (C)Tj /T1_0 1 Tf 10.5 0 Td (wide character)Tj 6.78 0.04 Td (\()Tj 0.333 -0.04 Td (XSI option, equivalent to)Tj /TT0 1 Tf 11.219 0 Td (lc)Tj /T1_0 1 Tf 1.2 0.04 Td (\))Tj /TT0 1 Tf -30.032 -1.29 Td (S)Tj /T1_0 1 Tf 10.5 0 Td (wide character string)Tj 9.604 0.04 Td (\()Tj 0.333 -0.04 Td (XSI option, equivalent to)Tj /TT0 1 Tf 11.219 0 Td (ls)Tj /T1_0 1 Tf 1.2 0.04 Td (\))Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 4910.25 cm 0 0 m 3899 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2116.25 4910.25 cm 0 0 m 0 1760 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5195.25 4910.25 cm 0 0 m 0 1760 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 4910.25 cm 0 0 m 0 1760 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 193.8051 472.9149 Tm (Figure 5.10)Tj /T1_0 1 Tf 5.695 0 Td (The conversion type component of a conversion speci\336cation)Tj 9.9982 0 0 9.9982 129.5769 445.3198 Tm [(speci\336ers )-61(to )-61(for)18(ce )-61(a )-61(memory )-61(buf)18(fer )-61(to )-61(be )-61(allocated )-61(to )-61(hold )-61(the )-61(converted )-61(string.)-559(In )-61(this)]TJ 0 -1.2 TD [(case, )-233(the )-233(corr)18(esponding )-233(ar)18(gument )-233(should )-233(be )-233(the )-233(addr)18(ess )-233(of )-233(a )-233(pointer )-233(to )-233(which )-233(the)]TJ T* [(addr)18(ess )-335(of )-335(the )-335(allocated )-335(buf)18(fer )-335(will )-335(be )-335(copied.)-834(If )-335(the )-335(call )-335(succeeds, )-335(the )-335(caller )-335(is)]TJ -0.018 Tc -0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sponsible )-148(for )-148(fr)18(eeing )-148(the )-148(buf)18(fer )-148(by )-148(calling )-148(the)]TJ /TT0 1 Tf 21.263 0 Td (free)Tj /T1_0 1 Tf 2.798 0 Td [(function )-148(when )-148(the )-148(buf)18(fer )-148(is )-148(no)]TJ -24.917 -1.2 Td (longer needed.)Tj 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.564 0 Td (scanf)Tj /T1_0 1 Tf 3.89 0 Td [(family )-639(of )-639(functions )-639(also )-639(supports )-639(the )-639(alternative )-639(conversion)]TJ -8.253 -1.2 Td [(speci\336cation )-102(syntax )-102(allowing )-102(the )-102(ar)16(guments )-103(to )-103(be )-103(named )-103(explicitly: )-103(the )-103(sequence)]TJ /T1_2 1 Tf 37.055 0 Td (%n$)Tj /T1_0 1 Tf -0.018 Tc -37.055 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(pr)18(esents )-26(the)]TJ /T1_2 1 Tf 5.631 0 Td (n)Tj /T1_0 1 Tf [(th )-26(ar)18(gument. )-276(W)55(ith )-26(the)]TJ /TT0 1 Tf 10.904 0 Td (printf)Tj /T1_0 1 Tf 3.876 0 Td [(family )-26(of )-26(functions, )-26(the )-26(same )-26(number)19(ed)]TJ -21.267 -1.2 Td [(ar)18(gument )-47(can )-47(be )-47(r)18(efer)18(enced )-47(in )-47(the )-47(format )-47(string )-47(mor)]TJ 0.297 Tc 23.503 0 Td (et)Tj 0 Tc 1.102 0 Td [(han )-47(once.)-547(In )-47(this )-47(case, )-47(however)74(,)]TJ -24.605 -1.2 Td [(the )-204(Single )-204(UNIX )-204(Speci\336cation )-204(states )-204(that )-204(the )-204(behavior )-204(is )-204(unde\336ned )-204(with )-204(the)]TJ /TT0 1 Tf 36 0 Td (scanf)Tj /T1_0 1 Tf -36 -1.2 Td (family of functions.)Tj 1.8 -1.2 Td [(Like )-221(the)]TJ /TT0 1 Tf 4.265 0 Td (printf)Tj /T1_0 1 Tf 4.071 0 Td (family)Tj 0.4706 Tc 2.743 0 Td (,t)Tj 0 Tc 1.047 0 Td (he)Tj /TT0 1 Tf 1.532 0 Td (scanf)Tj /T1_0 1 Tf 3.471 0 Td [(family )-221(supports )-221(functions )-221(that )-221(use )-221(variable)]TJ -18.928 -1.2 Td [(ar)18(gument lists as speci\336ed by)]TJ /TT0 1 Tf 13.279 0 Td ()Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.5737 283.449 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (int vscanf\(const char *restrict)Tj /T1_2 1 Tf 19.2 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.466 0 Td (a_list)Tj /T1_2 1 Tf 4.2 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj -27.866 -2.021 Td (int vfscanf\(FILE *restrict)Tj /T1_2 1 Tf 16.2 0 Td (fp)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf (,)Tj -23.578 -1.189 Td (va_list)Tj /T1_2 1 Tf 4.8 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj -12 -2.021 Td (int vsscanf\(const char *restrict)Tj /T1_2 1 Tf 19.8 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.097 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf (,)Tj -27.697 -1.189 Td (va_list)Tj /T1_2 1 Tf 4.8 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj /T1_0 1 Tf 5.671 -2.021 Td [(All thr)18(ee r)18(eturn: number of input items assigned,)]TJ /TT0 1 Tf -1.983 -1.189 Td (EOF)Tj /T1_0 1 Tf 2.05 0 Td [(if input err)18(or or end of \336le befor)]TJ 0.25 Tc 14.124 0 Td (ea)Tj 0 Tc 1.229 0 Td (ny conversion)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1634.25 cm 0 0 m 0 1291 l 3900 1291 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9976 0 0 9.9976 129.5689 148.7043 Tm [(Refer )-259(to )-259(your )-259(UNIX )-259(system )-259(manual )-259(for )-259(additional )-259(details )-259(on )-259(the)]TJ /TT0 1 Tf 31.249 0 Td (scanf)Tj /T1_0 1 Tf 3.509 0 Td [(family )-259(of)]TJ -34.758 -1.2 Td (functions.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47034 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(5.1)]TJ 31.5943 Tc 4.888 0 Td (1F)Tj 0 Tc 32.65 0 Td [(ormatted )-250(I/O)]TJ /T1_1 1 Tf 8.295 0 Td (161)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1401.25 6670.25 cm 0 0 m 3690 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 144.1154 658.9605 Tm (Conversion )Tj 23.292 0 Td (Description)Tj -21.713 -1.25 Td (type)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1401.25 6450.25 cm 0 0 m 3690 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1401.25 6430.25 cm 0 0 m 3690 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 144.1067 634.9238 Tm (d,i)Tj /T1_0 1 Tf 6.619 0 Td (signed decimal)Tj /TT0 1 Tf -6.619 -1.25 Td (o)Tj /T1_0 1 Tf 6.619 0 Td (unsigned octal)Tj /TT0 1 Tf -6.619 -1.25 Td (u)Tj /T1_0 1 Tf 6.619 0 Td (unsigned decimal)Tj /TT0 1 Tf -6.619 -1.25 Td (x,X)Tj /T1_0 1 Tf 6.619 0 Td (unsigned hexadecimal)Tj /TT0 1 Tf -6.619 -1.25 Td [(f,F )-4219(double)]TJ /T1_0 1 Tf 10.469 0 Td (\337oating-point number)Tj /TT0 1 Tf -10.469 -1.25 Td [(e,E )-4219(double)]TJ /T1_0 1 Tf 10.469 0 Td (\337oating-point number in exponential format)Tj /TT0 1 Tf -10.469 -1.25 Td (g,G)Tj /T1_0 1 Tf 6.619 0 Td [(interpr)18(eted as f, F)92(,)-250(e,)-250(or)-250(E,)-250(depending on value converted)]TJ /TT0 1 Tf -6.619 -1.25 Td [(a,A )-4219(double)]TJ /T1_0 1 Tf 10.469 0 Td (\337oating-point number in hexadecimal exponential format)Tj /TT0 1 Tf -10.469 -1.25 Td (c)Tj /T1_0 1 Tf 6.619 0 Td (character \(with)Tj /TT0 1 Tf 6.931 0 Td (l)Tj /T1_0 1 Tf 0.85 0 Td (length modi\336er)Tj 0.25 Tc 6.802 0 Td (,w)Tj 0 Tc 1.334 0 Td (ide character\))Tj /TT0 1 Tf -22.536 -1.25 Td (s)Tj /T1_0 1 Tf 6.619 0 Td (string \(with)Tj /TT0 1 Tf 5.44 0 Td (l)Tj /T1_0 1 Tf 0.85 0 Td (length modi\336er)Tj 0.25 Tc 6.802 0 Td (,w)Tj 0 Tc 1.334 0 Td (ide character string\))Tj /TT0 1 Tf -21.045 -1.25 Td (p)Tj /T1_0 1 Tf 6.619 0 Td (pointer to a)Tj /TT0 1 Tf 5.342 0 Td (void)Tj -11.961 -1.25 Td (n)Tj /T1_0 1 Tf 6.619 0 Td (pointer to a signed integer into which is written the number of characte\ rs written so far)Tj /TT0 1 Tf -6.619 -1.25 Td (%)Tj /T1_0 1 Tf 0.25 Tc 6.619 0 Td (a%c)Tj 0 Tc 2.284 0 Td (haracter)Tj /TT0 1 Tf -8.903 -1.25 Td (C)Tj /T1_0 1 Tf 6.619 0 Td (wide character)Tj 6.78 0.04 Td (\()Tj 0.333 -0.04 Td (XSI option, equivalent to)Tj /TT0 1 Tf 11.219 0 Td (lc)Tj /T1_0 1 Tf 1.2 0.04 Td (\))Tj /TT0 1 Tf -26.151 -1.29 Td (S)Tj /T1_0 1 Tf 6.619 0 Td (wide character string)Tj 9.604 0.04 Td (\()Tj 0.333 -0.04 Td (XSI option, equivalent to)Tj /TT0 1 Tf 11.219 0 Td (ls)Tj /T1_0 1 Tf 1.2 0.04 Td (\))Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1401.25 4910.25 cm 0 0 m 3690 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1911.25 4910.25 cm 0 0 m 0 1760 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5091.25 4910.25 cm 0 0 m 0 1760 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1401.25 4910.25 cm 0 0 m 0 1760 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 195.8048 472.9149 Tm (Figure 5.9)Tj /T1_0 1 Tf 5.195 0 Td (The conversion type component of a conversion speci\336cation)Tj -0.018 Tc 9.9982 0 0 9.9982 129.5769 446.5196 Tm (re)Tj 0 Tc 0.856 0 Td [(pr)18(esenting )-46(the)]TJ /T1_2 1 Tf 6.677 0 Td (n)Tj /T1_0 1 Tf [(th )-46(ar)18(gument. )-296(Note,)-297(however)]TJ 0.2964 Tc 13.397 0 Td (,t)Tj 0 Tc 0.872 0 Td [(hat )-46(the )-46(two )-46(syntaxes )-46(can\325t )-46(be )-46(mixed )-46(in)]TJ -21.802 -1.2 Td [(the )-174(same )-174(format )-174(speci\336cation.)]TJ -0.055 Tc 14.385 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-174(the )-174(alternative )-174(syntax, )-174(ar)18(guments )-174(ar)]TJ 0.4239 Tc 17.91 0 Td (en)Tj 0 Tc 1.485 0 Td [(umber)18(ed)]TJ -35.015 -1.2 Td [(starting )-74(at )-74(one.)-574(If )-74(either )-74(the )-74(\336eld )-74(width )-74(or )-74(pr)18(ecision )-74(is )-74(to )-74(be )-74(supplied )-74(by )-74(an )-74(ar)17(gument,)]TJ 0 -1.2 TD [(the )-103(asterisk )-103(syntax )-103(is )-103(modi\336ed )-103(to)]TJ /T1_2 1 Tf 15.417 0 Td (*m$)Tj /T1_0 1 Tf 0.353 Tc (,w)Tj 0 Tc 3.104 0 Td [(her)18(e)]TJ /T1_2 1 Tf 2.27 0 Td (m)Tj /T1_0 1 Tf 1.131 0 Td [(speci\336es )-103(the )-103(position )-103(of )-103(the )-103(ar)18(gument)]TJ -21.922 -1.2 Td (supplying the value.)Tj 1.8 -1.2 Td [(The )-121(following )-121(\336ve )-121(variants )-121(of )-121(the)]TJ /TT0 1 Tf 15.671 0 Td (printf)Tj /T1_0 1 Tf 3.971 0 Td [(family )-121(ar)]TJ 0.3715 Tc 4.102 0 Td (es)Tj 0 Tc 1.274 0 Td [(imilar )-121(to )-121(the )-121(pr)18(evious )-121(\336ve,)]TJ -26.819 -1.2 Td [(but the variable ar)18(gument list \()]TJ /TT0 1 Tf (...)Tj /T1_0 1 Tf [(\))-250(is)-250(r)18(eplaced with)]TJ /T1_2 1 Tf 23.327 0 Td [(ar)18(g)]TJ /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.5737 355.436 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (int vprintf\(const char *restrict)Tj /T1_2 1 Tf 19.8 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.466 0 Td (a_list)Tj /T1_2 1 Tf 4.2 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj -28.466 -2.021 Td (int vfprintf\(FILE *restrict)Tj /T1_2 1 Tf 16.8 0 Td (fp)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf (,)Tj -23.578 -1.189 Td (va_list)Tj /T1_2 1 Tf 4.8 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj -12.6 -2.021 Td (int vdprintf\(int)Tj /T1_2 1 Tf 10.2 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.466 0 Td (a_list)Tj /T1_2 1 Tf 4.2 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj /T1_0 1 Tf -30.267 -2.021 Td [(All thr)18(ee r)18(eturn: number of characters output if OK, negative value if output err)18(or)]TJ /TT0 1 Tf -3.177 -2.021 Td (int vsprintf\(char *restrict)Tj /T1_2 1 Tf 16.8 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.097 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf (,)Tj -24.097 -1.189 Td (va_list)Tj /T1_2 1 Tf 4.8 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj /T1_0 1 Tf -10.598 -2.021 Td [(Returns: number of characters stor)18(ed in array if OK, negative value if encoding err)18(or)]TJ /TT0 1 Tf -2.002 -2.021 Td (int vsnprintf\(char *restrict)Tj /T1_2 1 Tf 17.4 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (n)Tj /TT0 1 Tf (,)Tj -15.697 -1.189 Td (const char *restrict)Tj /T1_2 1 Tf 12.6 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.466 0 Td (a_list)Tj /T1_2 1 Tf 4.2 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj /T1_0 1 Tf -20.243 -2.021 Td [(Returns: number of characters that would have been stor)18(ed in array)]TJ 3.676 -1.189 Td [(if buf)18(fer was lar)18(ge enough, negative value if encoding err)18(or)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1520.25 cm 0 0 m 0 2125 l 3900 2125 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9976 0 0 9.9976 129.5689 136.0473 Tm [(We )-184(u)]TJ 0 Tc 2.24 0 Td (se the)Tj /TT0 1 Tf 2.79 0 Td (vsnprintf)Tj /T1_0 1 Tf 5.65 0 Td [(function in the err)18(or r)18(outines in Appendix B.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47035 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (5)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm (Standar)Tj 0.56 Tc 3.714 0 Td (dI)Tj 0 Tc 1.5 0 Td [(/O )-280(Librar)-40(y)]TJ /TT0 1 Tf 12 0 0 12 93.5999 440.4 Tm [(5.1 )-1332(Intr)20(oduction)]TJ /T1_2 1 Tf 10 0 0 10 129.5999 416.4 Tm [(In )-8(this )-8(chapter)75(,)-258(we)-258(d)1(escribe )-8(the )-8(standar)]TJ 0.2577 Tc 17.287 0 Td (dI)Tj 0 Tc 1.206 0 Td [(/O )-8(library)]TJ 0.5077 Tc 4.52 0 Td (.T)Tj 0 Tc 1.371 0 Td [(his )-8(library )-8(is )-8(speci\336ed )-8(by )-8(the )-8(ISO)]TJ 0.2778 Tc -24.383 -1.2 Td (Cs)Tj 0 Tc 1.411 0 Td (tandar)Tj 0.2778 Tc 2.896 0 Td (db)Tj 0 Tc 1.442 0 Td [(ecause )-28(it )-28(has )-28(been )-28(implemented )-28(on )-28(many )-28(operating )-28(systems )-28(other )-28(than )-28(the)]TJ -5.749 -1.2 Td [(UNIX )-32(System.)-531(Additional )-32(interfaces )-32(ar)]TJ 0.2817 Tc 17.39 0 Td (ed)Tj 0 Tc 1.372 0 Td [(e\336ned )-32(as )-32(extensions )-32(to )-32(the )-32(ISO )-32(C )-32(standar)]TJ 0.2817 Tc 18.237 0 Td (db)Tj 0 Tc 1.446 0 Td (y)Tj -38.444 -1.2 Td (the Single UNIX Speci\336cation.)Tj 1.8 -1.2 Td [(The )-93(standar)]TJ 0.3426 Tc 5.337 0 Td (dI)Tj 0 Tc 1.291 0 Td [(/O )-93(library )-93(handles )-93(such )-93(details )-93(as )-93(buf)20(fer )-92(allocation )-92(and )-92(performing)]TJ -8.427 -1.2 Td [(I/O )-27(in )-27(optimal-sized )-27(chunks, )-27(obviating )-27(our )-27(need )-27(to )-27(worry )-27(about )-27(using )-27(the )-27(corr)18(ect )-27(block)]TJ 0 -1.2 TD [(size )-265(\(as )-265(in )-265(Section )-265(3.9\).)-763(This )-264(makes )-264(the )-264(library )-264(easy )-264(to )-264(use, )-264(but )-264(at )-264(the )-264(same )-264(time)]TJ T* [(intr)18(oduces another set of pr)18(oblems if we\325r)]TJ 0.25 Tc 18.447 0 Td (en)Tj 0 Tc 1.311 0 Td (ot cognizant of what\325s going on.)Tj 8 0 0 8 183.6003 312.4 Tm [(The )-58(standar)]TJ 0.3079 Tc 5.302 0 Td (dI)Tj 0 Tc 1.256 0 Td [(/O )-58(library )-58(was )-58(written )-58(by )-58(Dennis )-58(Ritchie )-58(ar)19(ound )-58(1975.)-558(It )-58(was )-58(a )-58(major )-58(r)18(evision)]TJ -6.558 -1.25 Td [(of )-258(the )-258(Portable )-258(I/O )-258(library )-258(written )-258(by )-258(Mike )-258(Lesk.)-758(Surprisingly )-258(little )-258(has )-258(changed )-258(in )-258(the)]TJ 0 -1.25 TD (standar)Tj 0.25 Tc 3.32 0 Td (dI)Tj 0 Tc 1.198 0 Td (/O library after mor)Tj 0.25 Tc 8.962 0 Td (et)Tj 0 Tc 1.055 0 Td (han 35 years.)Tj /TT0 1 Tf 12 0 0 12 93.6001 256.4 Tm [(5.2 )-1332(Streams)-556(and)]TJ /TT1 1 Tf 9.836 0 Td (FILE)Tj /TT0 1 Tf 2.956 0 Td (Objects)Tj /T1_2 1 Tf 10 0 0 10 129.5996 232.4 Tm [(In )-57(Chapter )-57(3, )-57(all )-57(the )-57(I/O )-57(r)18(outines )-57(center)17(ed )-57(on )-57(\336le )-57(descriptors.)-557(When )-57(a )-57(\336le )-57(is )-57(opened, )-57(a)]TJ 0 -1.2 TD [(\336le )-245(descriptor )-245(is )-245(r)17(eturned, )-245(and )-245(that )-245(descriptor )-245(is )-245(then )-245(used )-245(for )-245(all )-245(subsequent )-245(I/O)]TJ T* [(operations. )-376(W)55(ith )-126(the )-126(standar)]TJ 0.3762 Tc 13.17 0 Td (dI)Tj 0 Tc 1.324 0 Td [(/O )-126(library)]TJ 0.3762 Tc 4.638 0 Td (,t)Tj 0 Tc 0.952 0 Td [(he )-126(discussion )-126(centers )-126(on)]TJ /T1_3 1 Tf 11.463 0 Td [(str)18(eams)]TJ /T1_2 1 Tf 0.6263 Tc (.\()Tj 0 Tc 4.302 0 Td [(Do )-126(not)]TJ -35.85 -1.2 Td [(confuse )-157(the )-157(standar)]TJ 0.407 Tc 8.932 0 Td (dI)Tj 0 Tc 1.355 0 Td [(/O )-157(term)]TJ /T1_3 1 Tf 4.289 0 Td [(str)18(eam)]TJ /T1_2 1 Tf 3.111 0 Td [(with )-157(the )-157(STREAMS )-157(I/O )-157(system )-157(that )-157(is )-157(part )-157(of)]TJ -17.687 -1.2 Td [(System )-279(V )-279(and )-279(was )-279(standar)18(dized )-279(in )-279(the )-279(XSI )-279(STREAMS )-279(option )-279(in )-279(the )-279(Single )-279(UNIX)]TJ T* [(Speci\336cation, )-54(but )-54(is )-54(now )-54(marked )-54(obsolescent )-54(in )-54(SUSv4.\))-554(When )-54(we )-54(open )-54(or )-54(cr)18(eate )-54(a )-54(\336le)]TJ T* (with the standar)Tj 0.25 Tc 7.24 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O library)111(,)-250(we)-250(say that we have associated a str)18(eam with the \336le.)]TJ -0.055 Tc -6.638 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-2(the )-2(ASCII )-2(character )-2(set, )-2(a )-2(single )-2(character )-2(is )-2(r)15(epr)18(esented )-2(by )-2(a )-2(single )-2(byte.)]TJ -0.055 Tc 33.82 0 Td (Wi)Tj 0 Tc 1.236 0 Td (th)Tj -38.092 -1.2 Td [(international )-237(character )-237(sets, )-237(a )-237(character )-237(can )-237(be )-237(r)15(epr)18(esented )-237(by )-237(mor)]TJ 0.4874 Tc 31.298 0 Td (et)Tj 0 Tc 1.292 0 Td [(han )-237(one )-237(byte.)]TJ /T1_4 1 Tf 9 0 0 9 506.1001 114 Tm (143)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47036 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 458.337 708 Tm (Contents)Tj /T1_1 1 Tf 5.974 0 Td (xi)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 154.7907 667.9599 Tm (3.15)Tj /TT1 1 Tf 4.68 0 Td (ioctl)Tj /TT0 1 Tf 3.556 0 Td [(Function )-1882(87)]TJ -8.236 -1.3 Td (3.16)Tj /TT1 1 Tf 4.68 0 Td (/dev/fd)Tj /TT0 1 Tf 6.36 0 Td (88)Tj -11.04 -1.3 Td [(3.17 )-2456(Summar)]TJ 2.16 Tc 8.488 0 Td (y9)Tj 0 Tc 3.216 0 Td (0)Tj /TT2 1 Tf -14.224 -2.47 Td [(Chapter )-278(4.)-2032(Files )-278(and )-278(Directories)]TJ 34.674 0 Td (93)Tj /TT0 1 Tf -32.154 -1.82 Td [(4.1 )-3012(Introduction)-2160(93)]TJ 0 -1.3 TD (4.2)Tj /TT1 1 Tf 4.68 0 Td (stat)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 3.234 0 Td (fstat)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 3.834 0 Td (fstatat)Tj /TT0 1 Tf 0.556 Tc (,a)Tj 0 Tc 5.59 0 Td (nd)Tj /TT1 1 Tf 1.668 0 Td (lstat)Tj /TT0 1 Tf 3.556 0 Td [(Functions )-1882(93)]TJ -22.562 -1.3 Td [(4.3 )-3012(File)]TJ -0.12 Tc 6.847 0 Td (Ty)Tj 0 Tc 0.991 0 Td [(pes )-1882(95)]TJ -7.838 -1.3 Td [(4.4 )-3012(Set-User-ID)-556(and )-278(Set-Group-ID)-2160(98)]TJ T* [(4.5 )-3012(File)-556(Access )-278(P)50(er )253(missions)-2160(99)]TJ 0 -1.3 Td [(4.6 )-3012(Ownership)-556(of )-278(Ne)]TJ 0.556 Tc 12.663 0 Td (wF)Tj 0 Tc 1.889 0 Td [(iles )-278(and )-278(Director)-15(ies )-1882(101)]TJ -14.552 -1.3 Td (4.7)Tj /TT1 1 Tf 4.68 0 Td (access)Tj /TT0 1 Tf 4.156 0 Td (and)Tj /TT1 1 Tf 2.224 0 Td (faccessat)Tj /TT0 1 Tf 5.956 0 Td [(Functions )-1882(102)]TJ -17.016 -1.3 Td (4.8)Tj /TT1 1 Tf 4.68 0 Td (umask)Tj /TT0 1 Tf 3.556 0 Td [(Function )-1882(104)]TJ -8.236 -1.3 Td (4.9)Tj /TT1 1 Tf 4.68 0 Td (chmod)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 3.834 0 Td (fchmod)Tj /TT0 1 Tf 0.556 Tc (,a)Tj 0 Tc 4.99 0 Td (nd)Tj /TT1 1 Tf 1.668 0 Td (fchmodat)Tj /TT0 1 Tf 5.356 0 Td [(Functions )-1882(106)]TJ -20.528 -1.3 Td [(4.10 )-2456(Stic)20(ky )-278(Bit)-2160(108)]TJ T* (4.11)Tj /TT1 1 Tf 4.68 0 Td (chown)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 3.834 0 Td (fchown)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 4.434 0 Td (fchownat)Tj /TT0 1 Tf 0.556 Tc (,a)Tj 0 Tc 6.19 0 Td (nd)Tj /TT1 1 Tf 1.668 0 Td (lchown)Tj /TT0 1 Tf -14.326 -1.3 Td [(Functions )-1882(109)]TJ -6.48 -1.3 Td [(4.12 )-2456(File)-556(Siz)]TJ 2.16 Tc 8.221 0 Td (e1)Tj 0 Tc 3.272 0 Td (11)Tj -11.493 -1.3 Td [(4.13 )-2456(File)]TJ -0.12 Tc 6.847 0 Td [(Tr )23(u)]TJ 0 Tc 1.395 0 Td [(ncation )-1882(112)]TJ -8.242 -1.3 Td [(4.14 )-2456(File)-556(Systems )-1882(113)]TJ T* (4.15)Tj /TT1 1 Tf 4.68 0 Td (link)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 3.234 0 Td (linkat)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 4.434 0 Td (unlink)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 4.434 0 Td (unlinkat)Tj /TT0 1 Tf 0.556 Tc (,a)Tj 0 Tc 6.19 0 Td (nd)Tj /TT1 1 Tf 1.668 0 Td (remove)Tj /TT0 1 Tf -18.16 -1.3 Td [(Functions )-1882(116)]TJ -6.48 -1.3 Td (4.16)Tj /TT1 1 Tf 4.68 0 Td (rename)Tj /TT0 1 Tf 4.156 0 Td (and)Tj /TT1 1 Tf 2.224 0 Td (renameat)Tj /TT0 1 Tf 5.356 0 Td [(Functions )-1882(119)]TJ -16.416 -1.3 Td [(4.17 )-2456(Symbolic)-556(Links )-1882(120)]TJ T* [(4.18 )-2456(Creating)-556(and )-278(Reading )-278(Symbolic )-278(Links)-2160(123)]TJ T* [(4.19 )-2456(File)-556(Times )-1882(124)]TJ T* (4.20)Tj /TT1 1 Tf 4.68 0 Td (futimens)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 5.634 0 Td (utimensat)Tj /TT0 1 Tf 0.556 Tc (,a)Tj 0 Tc 6.79 0 Td (nd)Tj /TT1 1 Tf 1.668 0 Td (utimes)Tj /TT0 1 Tf 4.156 0 Td [(Functions )-1882(126)]TJ -22.928 -1.3 Td (4.21)Tj /TT1 1 Tf 4.68 0 Td (mkdir)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 3.834 0 Td (mkdirat)Tj /TT0 1 Tf 0.556 Tc (,a)Tj 0 Tc 5.59 0 Td (nd)Tj /TT1 1 Tf 1.668 0 Td (rmdir)Tj /TT0 1 Tf 3.556 0 Td [(Functions )-1882(129)]TJ -19.328 -1.3 Td [(4.22 )-2456(Reading)-556(Director )263(ies)-2160(130)]TJ 0 -1.3 Td (4.23)Tj /TT1 1 Tf 4.68 0 Td (chdir)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 3.834 0 Td (fchdir)Tj /TT0 1 Tf 0.556 Tc (,a)Tj 0 Tc 4.99 0 Td (nd)Tj /TT1 1 Tf 1.668 0 Td (getcwd)Tj /TT0 1 Tf 4.156 0 Td [(Functions )-1882(135)]TJ -19.328 -1.3 Td [(4.24 )-2456(De)30(vice )-278(Special )-278(Files)-2160(137)]TJ 0 -1.3 Td [(4.25 )-2456(Summar)-30(y)-556(of)-556(File )-278(Access )-278(P)50(er )253(mission)-556(Bits )-1882(140)]TJ -0 -1.3 Td [(4.26 )-2456(Summar)]TJ 2.16 Tc 8.488 0 Td (y1)Tj 0 Tc 3.216 0 Td (40)Tj /TT2 1 Tf -14.224 -2.47 Td [(Chapter )-278(5.)-2032(Standar)]TJ 0.556 Tc 10.903 0 Td (dI)Tj 0 Tc 1.445 0 Td [(/O )-278(Librar)]TJ 16.758 Tc 4.456 0 Td (y1)Tj 0 Tc 17.87 0 Td (43)Tj /TT0 1 Tf -32.154 -1.82 Td [(5.1 )-3012(Introduction)-2160(143)]TJ T* [(5.2 )-3012(Streams)-556(and)]TJ /TT1 1 Tf 11.183 0 Td (FILE)Tj /TT0 1 Tf 2.956 0 Td [(Objects )-1882(143)]TJ -14.139 -1.3 Td [(5.3 )-3012(Standard)-556(Input, )-278(Standard )-278(Output, )-278(and )-278(Standard)]TJ 6.48 -1.3 Td [(Error )-1882(145)]TJ -6.48 -1.3 Td [(5.4 )-3012(Buff)30(er )263(ing)-2160(145)]TJ -0 -1.3 Td [(5.5 )-3012(Opening)]TJ 0.556 Tc 9.016 0 Td (aS)Tj 0 Tc 1.779 0 Td [(tream )-1882(148)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47037 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (148)Tj /T1_1 1 Tf 3.5 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Library)]TJ 34.372 0 Td [(Chapter )-250(5)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(5.5 )-1332(Opening)]TJ 0.556 Tc 7.612 0 Td (aS)Tj 0 Tc 1.779 0 Td (tream)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5921 644.9613 Tm (The)Tj /TT1 1 Tf 1.924 0 Td (fopen)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 3.5 0 Td (freopen)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 5.2 0 Td (nd)Tj /TT1 1 Tf 1.443 0 Td (fdopen)Tj /T1_1 1 Tf 3.85 0 Td (functions open a standar)Tj 0.25 Tc 10.909 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O str)18(eam.)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.591 627.0624 Tm (#include )Tj 0 -2.021 TD (FILE *fopen\(const char *restrict)Tj /T1_2 1 Tf 19.8 0 Td (pathname)Tj /TT1 1 Tf 0.6 Tc (,c)Tj 0 Tc 5.744 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (type)Tj /TT1 1 Tf (\);)Tj -37.544 -2.021 Td (FILE *freopen\(const char *restrict)Tj /T1_2 1 Tf 21 0 Td (pathname)Tj /TT1 1 Tf 0.6 Tc (,c)Tj 0 Tc 5.744 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (type)Tj /TT1 1 Tf (,)Tj -30.344 -1.189 Td (FILE *restrict)Tj /T1_2 1 Tf 9 0 Td (fp)Tj /TT1 1 Tf (\);)Tj -17.4 -2.021 Td (FILE *fdopen\(int)Tj /T1_2 1 Tf 10.2 0 Td (fd)Tj /TT1 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (type)Tj /TT1 1 Tf (\);)Tj /T1_1 1 Tf 4.989 -2.021 Td [(All thr)18(ee r)18(eturn: \336le pointer if OK,)]TJ /TT1 1 Tf 15.346 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5391.25 cm 0 0 m 0 970 l 3900 970 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 524.3771 Tm [(The dif)18(fer)18(ences in these thr)18(ee functions ar)18(e)-250(as)-250(follows:)]TJ 1.8 -2.04 Td [(1. )-633(The)]TJ /TT1 1 Tf 3.557 0 Td (fopen)Tj /T1_1 1 Tf 3.25 0 Td (function opens a speci\336ed \336le.)Tj 1.133 Tc -6.807 -1.6 Td (2T)Tj 0 Tc 2.246 0 Td (he)Tj /TT1 1 Tf 1.413 0 Td (freopen)Tj /T1_1 1 Tf 4.552 0 Td [(function )-102(opens )-102(a )-102(speci\336ed )-102(\336le )-102(on )-102(a )-102(speci\336ed )-102(str)18(eam, )-102(closing )-102(the)]TJ -6.578 -1.2 Td [(str)18(eam )-149(\336rst )-149(if )-149(it )-149(is )-149(alr)18(eady )-149(open.)-649(If )-149(the )-149(str)18(eam )-149(pr)22(eviously )-149(had )-149(an )-149(orientation,)]TJ /TT1 1 Tf -0 -1.2 Td (freopen)Tj /T1_1 1 Tf 4.485 0 Td [(clears )-35(it.)-535(This )-35(function )-35(is )-35(typically )-35(used )-35(to )-35(open )-35(a )-35(speci\336ed )-35(\336le )-35(as )-35(one)]TJ -4.485 -1.2 Td [(of the pr)18(ede\336ned str)18(eams: standar)]TJ 0.25 Tc 15.073 0 Td (di)Tj 0 Tc 1.152 0 Td (nput, standar)Tj 0.25 Tc 5.932 0 Td (do)Tj 0 Tc 1.407 0 Td (utput, or standar)Tj 0.25 Tc 7.47 0 Td (de)Tj 0 Tc 1.34 0 Td [(rr)18(or)74(.)]TJ -34.007 -1.6 Td [(3. )-633(The)]TJ /TT1 1 Tf 3.703 0 Td (fdopen)Tj /T1_1 1 Tf 3.996 0 Td [(function )-146(takes )-146(an )-146(existing )-146(\336le )-146(descriptor)]TJ 0.3957 Tc 18.33 0 Td (,w)Tj 0 Tc 1.48 0 Td [(hich )-146(we )-146(could )-146(obtain)]TJ -25.875 -1.2 Td [(fr)18(om )-165(the)]TJ /TT1 1 Tf 4.356 0 Td (open)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 3.065 0 Td (dup)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 2.465 0 Td (dup2)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 3.065 0 Td (fcntl)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 3.665 0 Td (pipe)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 3.065 0 Td (socket)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 4.265 0 Td (socketpair)Tj /T1_1 1 Tf 0.415 Tc (,o)Tj 0 Tc 7.211 0 Td (r)Tj /TT1 1 Tf 0.81 0 Td (accept)Tj /T1_1 1 Tf -31.967 -1.2 Td [(functions, )-322(and )-322(associates )-322(a )-322(standar)]TJ 0.5718 Tc 16.539 0 Td (dI)Tj 0 Tc 1.52 0 Td [(/O )-322(str)18(eam )-322(with )-322(the )-322(descriptor)]TJ 0.8218 Tc 14.526 0 Td (.T)Tj 0 Tc 1.685 0 Td (his)Tj -34.27 -1.2 Td [(function )-124(is )-124(often )-124(used )-124(with )-124(descriptors )-124(that )-124(ar)]TJ 0.3742 Tc 21.004 0 Td (er)Tj 0 Tc 1.23 0 Td [(eturned )-124(by )-124(the )-124(functions )-124(that)]TJ -22.235 -1.2 Td [(cr)18(eate )-39(pipes )-39(and )-39(network )-39(communication )-39(channels.)-541(Because )-39(these )-39(special )-39(types)]TJ 0 -1.2 Td [(of )-15(\336les )-15(cannot )-15(be )-15(opened )-15(with )-15(the )-15(standar)]TJ 0.2646 Tc 18.581 0 Td (dI)Tj 0 Tc 1.213 0 Td (/O)Tj /TT1 1 Tf 1.657 0 Td (fopen)Tj /T1_1 1 Tf 3.265 0 Td [(function, )-15(we )-15(have )-15(to )-15(call)]TJ -24.715 -1.2 Td [(the )-162(device-speci\336c )-162(function )-162(to )-162(obtain )-162(a )-162(\336le )-162(descriptor)]TJ 0.4119 Tc 24.45 0 Td (,a)Tj 0 Tc 1.162 0 Td [(nd )-162(then )-162(associate )-162(this)]TJ -25.612 -1.2 Td (descriptor with a standar)Tj 0.25 Tc 11.115 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O str)18(eam using)]TJ /TT1 1 Tf 7.587 0 Td (fdopen)Tj /T1_1 1 Tf (.)Tj 7.999 0 0 7.999 183.5785 326.0013 Tm (Both)Tj /TT1 1 Tf 2.396 0 Td (fopen)Tj /T1_1 1 Tf 3.331 0 Td (and)Tj /TT1 1 Tf 2.024 0 Td (freopen)Tj /T1_1 1 Tf 4.531 0 Td (ar)Tj 0.3306 Tc 0.877 0 Td (ep)Tj 0 Tc 1.411 0 Td [(art )-81(of )-81(ISO )-81(C;)]TJ /TT1 1 Tf 6.029 0 Td (fdopen)Tj /T1_1 1 Tf 3.931 0 Td [(is )-80(part )-80(of )-80(POSIX.1, )-80(since )-80(ISO )-80(C )-80(doesn\325t)]TJ -24.528 -1.25 Td (deal with \336le descriptors.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1330.25 2920.25 cm 0 0 m 3831 0 l S Q Q BT /T1_2 1 Tf 7.9986 0 0 7.9986 166.482 283.9889 Tm (type)Tj /T1_1 1 Tf 14.226 0 Td (Description)Tj /TT1 1 Tf 18.405 0 Td (open)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (Flags)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1330.25 2800.25 cm 0 0 m 3831 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1330.25 2780.25 cm 0 0 m 3831 0 l S Q Q BT /TT1 1 Tf 7.9981 0 0 7.9981 137.0391 269.9752 Tm (r)Tj /T1_1 1 Tf 1.2 0 Td (or)Tj /TT1 1 Tf 1.541 0 Td (rb )Tj 29.141 0 Td (O_RDONLY)Tj /T1_1 1 Tf -21.3 0 Td [(open for r)18(eading)]TJ /TT1 1 Tf -10.582 -1.25 Td (w)Tj /T1_1 1 Tf 1.2 0 Td (or)Tj /TT1 1 Tf 1.541 0 Td (wb )Tj 29.141 0 Td (O_WRONLY|O_CREAT|O_TRUNC)Tj /T1_1 1 Tf -21.3 0 Td [(tr)8(uncate to 0 length or cr)18(eate for writing)]TJ /TT1 1 Tf -10.582 -1.25 Td (a)Tj /T1_1 1 Tf 1.2 0 Td (or)Tj /TT1 1 Tf 1.541 0 Td (ab )Tj 29.141 0 Td (O_WRONLY|O_CREAT|O_APPEND)Tj /T1_1 1 Tf -21.3 0 Td (append; open for writing at end of \336le, or)Tj 0 -1.25 TD [(cr)18(eate for writing)]TJ /TT1 1 Tf -10.582 -1.25 Td (r+)Tj /T1_1 1 Tf 1.8 0 Td (or)Tj /TT1 1 Tf 1.541 0 Td (r+b)Tj /T1_1 1 Tf 2.4 0 Td (or)Tj /TT1 1 Tf 1.541 0 Td (rb+ )Tj 24.6 0 Td (O_RDWR)Tj /T1_1 1 Tf -21.3 0 Td [(open for r)18(eading and writing)]TJ /TT1 1 Tf -10.582 -1.25 Td (w+)Tj /T1_1 1 Tf 1.8 0 Td (or)Tj /TT1 1 Tf 1.541 0 Td (w+b)Tj /T1_1 1 Tf 2.4 0 Td (or)Tj /TT1 1 Tf 1.541 0 Td (wb+ )Tj 24.6 0 Td (O_RDWR|O_CREAT|O_TRUNC)Tj /T1_1 1 Tf -21.3 0 Td [(tr)8(uncate to 0 length or cr)18(eate for r)18(eading and)]TJ T* (writing)Tj /TT1 1 Tf -10.582 -1.25 Td (a+)Tj /T1_1 1 Tf 1.8 0 Td (or)Tj /TT1 1 Tf 1.541 0 Td (a+b)Tj /T1_1 1 Tf 2.4 0 Td (or)Tj /TT1 1 Tf 1.541 0 Td (ab+ )Tj 24.6 0 Td (O_RDWR|O_CREAT|O_APPEND)Tj /T1_1 1 Tf -21.3 0 Td [(open or cr)18(eate for r)18(eading and writing at)]TJ T* (end of \336le)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1330.25 1860.25 cm 0 0 m 3831 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3861.25 1860.25 cm 0 0 m 0 1060 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2157.25 1860.25 cm 0 0 m 0 1060 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5161.25 1860.25 cm 0 0 m 0 1060 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1330.25 1860.25 cm 0 0 m 0 1060 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 208.7094 167.9896 Tm (Figure 5.2)Tj /T1_1 1 Tf 5.195 0 Td (The)Tj /T1_2 1 Tf 1.924 0 Td (type)Tj /T1_1 1 Tf 1.972 0 Td [(ar)18(gument for opening a standar)]TJ 0.25 Tc 14.037 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O str)18(eam)]TJ 9.997 0 0 9.997 147.5563 143.9968 Tm [(ISO )-166(C )-166(speci\336es )-166(15 )-166(values )-166(for )-166(the)]TJ /T1_2 1 Tf 15.539 0 Td (type)Tj /T1_1 1 Tf 2.138 0 Td [(ar)18(gument, )-166(shown )-166(in )-166(Figur)]TJ 0.416 Tc 12.028 0 Td (e5)Tj 0 Tc 1.395 0 Td [(.3. )-416(Using)-416(the)]TJ -32.9 -1.2 Td (character)Tj /TT1 1 Tf 4.337 0 Td (b)Tj /T1_1 1 Tf 0.872 0 Td [(as )-22(part )-22(of )-22(the)]TJ /T1_2 1 Tf 6.101 0 Td (type)Tj /T1_1 1 Tf 1.994 0 Td [(allows )-22(the )-22(standar)]TJ 0.2722 Tc 8.137 0 Td (dI)Tj 0 Tc 1.22 0 Td [(/O )-22(system )-22(to )-22(dif)17(fer)18(entiate )-22(between )-22(a)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47038 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(5.4)]TJ 39.668 0 Td [(Buf)18(fering)]TJ /T1_1 1 Tf 6.165 0 Td (145)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(5.3 )-1332(Standar)]TJ 0.556 Tc 6.703 0 Td (dI)Tj 0 Tc 1.445 0 Td [(nput, )-278(Standar)]TJ 0.556 Tc 6.703 0 Td (dO)Tj 0 Tc 1.945 0 Td [(utput, )-278(and )-278(Standar)]TJ 0.556 Tc 9.37 0 Td (dE)Tj 0 Tc 1.834 0 Td [(rr)20(or)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5924 644.9613 Tm [(Thr)18(ee )-82(str)18(eams )-82(ar)]TJ 0.3324 Tc 7.485 0 Td (ep)Tj -0.018 Tc 1.412 0 Td (re)Tj 0 Tc 0.856 0 Td [(de\336ned )-82(and )-82(automatically )-82(available )-82(to )-82(a )-82(pr)16(ocess: )-82(standar)]TJ 0.3323 Tc 25.651 0 Td (di)Tj 0 Tc 1.234 0 Td (nput,)Tj -36.638 -1.2 Td (standar)Tj 0.392 Tc 3.32 0 Td (do)Tj 0 Tc 1.549 0 Td [(utput, )-142(and )-142(standar)]TJ 0.392 Tc 8.506 0 Td (de)Tj 0 Tc 1.482 0 Td [(rr)18(or)]TJ 0.6421 Tc 1.639 0 Td (.T)Tj 0 Tc 1.505 0 Td [(hese )-142(str)18(eams )-142(r)18(efer )-142(to )-142(the )-142(same )-142(\336les )-142(as )-142(the )-142(\336le)]TJ -18.001 -1.2 Td (descriptors)Tj /TT1 1 Tf 5.61 0 Td (STDIN_FILENO)Tj /T1_0 1 Tf (,)Tj /TT1 1 Tf 8.124 0 Td (STDOUT_FILENO)Tj /T1_0 1 Tf 0.674 Tc (,a)Tj 0 Tc 9.224 0 Td (nd)Tj /TT1 1 Tf 1.867 0 Td (STDERR_FILENO)Tj /T1_0 1 Tf 0.674 Tc (,r)Tj 0 Tc 9.101 0 Td [(espectively)111(,)]TJ -33.926 -1.2 Td (which we mentioned in Section 3.2.)Tj 1.8 -1.2 Td [(These )-365(thr)18(ee )-365(standar)]TJ 0.6153 Tc 9.371 0 Td (dI)Tj 0 Tc 1.563 0 Td [(/O )-365(str)18(eams )-365(ar)]TJ 0.6153 Tc 6.913 0 Td (er)Tj 0 Tc 1.471 0 Td [(efer)18(enced )-365(thr)18(ough )-365(the )-365(pr)18(ede\336ned )-365(\336le)]TJ -21.118 -1.2 Td (pointers)Tj /TT1 1 Tf 3.926 0 Td (stdin)Tj /T1_0 1 Tf (,)Tj /TT1 1 Tf 3.532 0 Td (stdout)Tj /T1_0 1 Tf 0.2823 Tc (,a)Tj 0 Tc 4.632 0 Td (nd)Tj /TT1 1 Tf 1.475 0 Td (stderr)Tj /T1_0 1 Tf 0.5323 Tc (.T)Tj 0 Tc 4.995 0 Td [(he )-32(\336le )-32(pointers )-32(ar)]TJ 0.2822 Tc 7.804 0 Td (ed)Tj 0 Tc 1.372 0 Td [(e\336ned )-32(in )-32(the)]TJ /TT1 1 Tf 5.863 0 Td ()Tj /T1_0 1 Tf -33.6 -1.2 Td [(header)74(.)]TJ /TT0 1 Tf 11.9993 0 0 11.9993 93.5945 532.1681 Tm [(5.4 )-1332(Buff)10(ering)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5923 508.1695 Tm [(The )-80(goal )-80(of )-80(the )-80(buf)18(fering )-80(pr)18(ovided )-80(by )-80(the )-80(standar)]TJ 0.3297 Tc 22.475 0 Td (dI)Tj 0 Tc 1.278 0 Td [(/O )-80(library )-80(is )-80(to )-80(use )-80(the )-80(minimum)]TJ -23.752 -1.2 Td [(number )-15(of)]TJ /TT1 1 Tf 4.904 0 Td (read)Tj /T1_0 1 Tf 2.665 0 Td (and)Tj /TT1 1 Tf 1.958 0 Td (write)Tj /T1_0 1 Tf 3.265 0 Td [(calls. )-265(\(Recall)-265(Figur)]TJ 0.2649 Tc 8.369 0 Td (e3)Tj 0 Tc 1.244 0 Td [(.6, )-15(which )-15(showed )-15(the )-15(amount )-15(of )-15(CPU)]TJ -22.405 -1.2 Td [(time )-90(r)18(equir)18(ed )-90(to )-90(perform )-90(I/O )-90(using )-90(various )-90(buf)16(fer )-90(sizes.\))-590(Also, )-90(this )-90(library )-90(tries )-90(to )-90(do)]TJ 0 -1.2 TD [(its )-3(buf)18(fering )-3(automatically )-3(for )-3(each )-3(I/O )-3(str)18(eam, )-3(obviating )-3(the )-3(need )-3(for )-3(the )-3(application )-3(to)]TJ T* [(worry )-314(about )-314(it.)-814(Unfortunately)]TJ 0.564 Tc 14.249 0 Td (,t)Tj 0 Tc 1.14 0 Td [(he )-314(single )-314(aspect )-314(of )-314(the )-314(standar)]TJ 0.564 Tc 14.864 0 Td (dI)Tj 0 Tc 1.512 0 Td [(/O )-314(library )-314(that)]TJ -31.765 -1.2 Td [(generates the most confusion is its buf)18(fering.)]TJ 1.8 -1.2 Td [(Thr)18(ee types of buf)18(fering ar)]TJ 0.25 Tc 11.779 0 Td (ep)Tj -0.018 Tc 1.33 0 Td (ro)Tj 0 Tc 0.923 0 Td (vided:)Tj -14.032 -2.16 Td [(1. )-633(Fully)-489(buf)18(fer)18(ed. )-489(In)-488(this )-239(case, )-239(actual )-239(I/O )-239(takes )-239(place )-239(when )-239(the )-239(standar)]TJ 0.4886 Tc 34.372 0 Td (dI)Tj 0 Tc 1.437 0 Td (/O)Tj -34.175 -1.2 Td [(buf)18(fer )-334(is )-334(\336lled.)-836(Files )-335(r)18(esiding )-335(on )-335(disk )-335(ar)]TJ 0.5846 Tc 19.801 0 Td (en)Tj 0 Tc 1.646 0 Td [(ormally )-335(fully )-335(buf)19(fer)18(ed )-335(by )-335(the)]TJ -21.447 -1.2 Td (standar)Tj 0.2527 Tc 3.32 0 Td (dI)Tj 0 Tc 1.201 0 Td [(/O )-3(library)]TJ 0.5026 Tc 4.515 0 Td (.T)Tj 0 Tc 1.366 0 Td [(he )-3(buf)18(fer )-3(used )-3(is )-3(usually )-3(obtained )-3(by )-3(one )-3(of )-3(the )-3(standar)22(d)]TJ -10.401 -1.2 Td [(I/O )-68(functions )-68(calling)]TJ /TT1 1 Tf 9.769 0 Td (malloc)Tj /T1_0 1 Tf 3.918 0 Td [(\(Section )-68(7.8\) )-68(the )-68(\336rst )-68(time )-68(I/O )-68(is )-68(performed )-68(on )-68(a)]TJ -13.687 -1.2 Td [(str)18(eam.)]TJ 0 -1.8 TD [(The )-100(term)]TJ /T1_2 1 Tf 4.457 0 Td (\337ush)Tj /T1_0 1 Tf 2.34 0 Td [(describes )-100(the )-100(writing )-100(of )-100(a )-100(standar)]TJ 0.3501 Tc 15.211 0 Td (dI)Tj 0 Tc 1.298 0 Td [(/O )-100(buf)18(fer)]TJ 0.6 Tc 4.346 0 Td (.A)Tj 0 Tc 1.978 0 Td [(buf)18(fer )-100(can )-100(be)]TJ -29.631 -1.2 Td [(\337ushed )-56(automatically )-56(by )-56(the )-56(standar)]TJ 0.3063 Tc 16.405 0 Td (dI)Tj 0 Tc 1.254 0 Td [(/O )-56(r)18(outines, )-56(such )-56(as )-56(when )-56(a )-56(buf)18(fer )-56(\336lls,)]TJ -17.659 -1.2 Td [(or )-196(we )-196(can )-196(call )-196(the )-196(function)]TJ /TT1 1 Tf 13.074 0 Td (fflush)Tj /T1_0 1 Tf 4.046 0 Td [(to )-196(\337ush )-196(a )-196(str)19(eam. )-446(Unfortunately)111(,)-446(in)-446(t)1(he)]TJ -17.119 -1.2 Td [(UNIX )-93(envir)18(onment,)]TJ /T1_2 1 Tf 9.241 0 Td (\337ush)Tj /T1_0 1 Tf 2.333 0 Td [(means )-93(two )-93(dif)18(fer)18(ent )-93(things.)-593(In )-93(terms )-93(of )-93(the )-93(standar)19(d)]TJ -11.573 -1.2 Td [(I/O )-14(library)]TJ 0.2643 Tc 4.863 0 Td (,i)Tj 0.2642 Tc 0.805 0 Td (tm)Tj 0 Tc 1.473 0 Td [(eans )-14(writing )-14(out )-14(the )-14(contents )-14(of )-14(a )-14(buf)17(fer)]TJ 0.2642 Tc 17.663 0 Td (,w)Tj 0 Tc 1.348 0 Td [(hich )-14(may )-14(be )-14(partially)]TJ -26.153 -1.2 Td [(\336lled. )-608(In)-608(terms )-358(of )-358(the )-358(terminal )-358(driver)]TJ 0.6079 Tc 18.525 0 Td (,s)Tj 0 Tc 1.282 0 Td [(uch )-358(as )-358(the)]TJ /TT1 1 Tf 5.764 0 Td (tcflush)Tj /T1_0 1 Tf 4.808 0 Td [(function )-358(in)]TJ -30.379 -1.2 Td (Chapter 18, it means to discar)Tj 0.25 Tc 13.096 0 Td (dt)Tj 0 Tc 1.187 0 Td [(he data that\325s alr)18(eady stor)18(ed in a buf)18(fer)74(.)]TJ -15.916 -2.08 Td [(2. )-633(Line)-494(buf)18(fer)18(ed. )-494(In)-494(this )-244(case, )-244(the )-244(standar)]TJ 0.4937 Tc 20.155 0 Td (dI)Tj 0 Tc 1.442 0 Td [(/O )-244(library )-244(performs )-244(I/O )-244(when )-244(a)]TJ -19.963 -1.2 Td [(newline )-24(character )-24(is )-24(encounter)18(ed )-24(on )-24(input )-24(or )-24(output.)-525(This )-24(allows )-24(us )-24(to )-24(output )-24(a)]TJ 0 -1.2 TD [(single )-16(character )-16(at )-16(a )-16(time )-16(\(with )-16(the )-16(standar)]TJ 0.2658 Tc 18.927 0 Td (dI)Tj 0 Tc 1.214 0 Td (/O)Tj /TT1 1 Tf 1.658 0 Td (fputc)Tj /T1_0 1 Tf 3.266 0 Td [(function\), )-16(knowing )-16(that)]TJ -25.065 -1.2 Td [(actual )-23(I/O )-23(will )-23(take )-23(place )-23(only )-23(when )-23(we )-23(\336nish )-23(writing )-23(each )-23(line.)-523(Line )-23(buf)18(fering)]TJ T* [(is )-86(typically )-86(used )-86(on )-86(a )-86(str)18(eam )-86(when )-86(it )-86(r)18(efers )-86(to )-86(a )-86(terminal)]TJ 0.0833 Tc 25.785 0 Td (\321s)Tj 0 Tc 1.507 0 Td (tandar)Tj 0.336 Tc 2.896 0 Td (di)Tj 0 Tc 1.238 0 Td [(nput )-86(and)]TJ -31.426 -1.2 Td (standar)Tj 0.25 Tc 3.32 0 Td (do)Tj 0 Tc 1.407 0 Td (utput, for example.)Tj -4.727 -1.8 Td [(Line )-200(buf)18(fering )-200(comes )-200(with )-200(two )-200(caveats.)-702(First, )-200(the )-200(size )-200(of )-200(the )-200(buf)18(fer )-200(that )-200(the)]TJ T* (standar)Tj 0.2895 Tc 3.32 0 Td (dI)Tj 0 Tc 1.237 0 Td [(/O )-39(library )-39(uses )-39(to )-39(collect )-39(each )-39(line )-39(is )-39(\336xed, )-39(so )-39(I/O )-39(might )-39(take )-39(place )-39(if)]TJ -4.557 -1.2 Td [(we )-408(\336ll )-408(this )-408(buf)18(fer )-408(befor)]TJ 0.6578 Tc 11.72 0 Td (ew)Tj 0 Tc 1.971 0 Td [(riting )-408(a )-408(newline.)-907(Second, )-408(whenever )-408(input )-408(is)]TJ -0.018 Tc -13.691 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quested )-1(thr)18(ough )-1(the )-1(standar)]TJ 0.2515 Tc 12.516 0 Td (dI)Tj 0 Tc 1.199 0 Td [(/O )-1(library )-1(fr)17(om )-1(either )-1(\(a\) )-1(an )-1(unbuf)16(fer)18(ed )-1(str)18(eam)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47039 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (140)Tj /T1_1 1 Tf 3.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.241 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(4.25 )-776(Summar)-10(y)-556(of)-556(File )-278(Access )-278(P)30(ermission )-278(Bits)]TJ /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5922 648.5611 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ve )-368(cover)18(ed )-368(all )-368(the )-368(\336le )-368(access )-368(permission )-368(bits, )-368(some )-368(of )-368(which )-368(serve )-368(multiple)]TJ -1.387 -1.2 Td [(purposes. )-329(Figur)]TJ 0.3289 Tc 7.285 0 Td (e4)Tj 0 Tc 1.308 0 Td [(.26 )-79(summarizes )-79(these )-79(permission )-79(bits )-79(and )-79(their )-79(interpr)18(etation )-79(when)]TJ -8.593 -1.2 Td [(applied to a r)18(egular \336le and a dir)18(ectory)111(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1188.25 6100.25 cm 0 0 m 4019 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 123.6052 601.3278 Tm [(Constant )-1947(Description)]TJ 17.058 0 Td [(Ef)18(fect on r)18(egular \336le)]TJ 19 0 Td [(Ef)18(fect on dir)18(ectory)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1188.25 5974.25 cm 0 0 m 4019 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1188.25 5954.25 cm 0 0 m 4019 0 l S Q Q BT /TT1 1 Tf 7.9986 0 0 7.9986 122.7779 586.6944 Tm (S_ISUID)Tj /T1_1 1 Tf 5.7 0 Td [(set-user)18(-ID)-2953(set ef)18(fective user ID on execution)-3104(\(not used\))]TJ /TT1 1 Tf -5.7 -1.59 Td (S_ISGID)Tj /T1_1 1 Tf 5.7 0 Td [(set-gr)18(oup-ID)-2153(if gr)18(oup-execute set, then set)]TJ 9.192 -1.325 Td [(ef)18(fective gr)18(oup ID on execution;)]TJ 0 -1.325 TD (otherwise, enable mandatory)Tj -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.25 Tc 1.367 0 Td (dl)Tj 0 Tc 1.152 0 Td (ocking \(if supported\))Tj 12.975 3.975 Td [(set gr)18(oup ID of new \336les cr)18(eated in)]TJ 1.35 -1.325 Td [(dir)18(ectory to gr)18(oup ID of dir)18(ectory)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1188.25 5383.25 cm 0 0 m 4019 0 l S Q Q BT /TT1 1 Tf 7.9981 0 0 7.9981 122.7705 529.5529 Tm (S_ISVTX)Tj /T1_1 1 Tf 5.7 0 Td [(sticky bit)-3825(contr)18(ol caching of \336le contents)]TJ 9.192 -1.325 Td (\(if supported\))Tj -0.018 Tc 16.35 1.325 Td (re)Tj 0 Tc 0.856 0 Td [(strict r)18(emoval and r)18(enaming of \336les in)]TJ 0.494 -1.325 Td [(dir)18(ectory)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1188.25 5151.25 cm 0 0 m 4019 0 l S Q Q BT /TT1 1 Tf 7.9976 0 0 7.9976 122.7632 506.3281 Tm (S_IRUSR)Tj /T1_1 1 Tf 5.7 0 Td [(user)18(-r)18(ead)-3659(user permission to r)18(ead \336le)]TJ 25.542 0 Td [(user permission to r)18(ead dir)18(ectory)]TJ 1.35 -1.325 Td (entries)Tj /TT1 1 Tf -32.592 -1.59 Td (S_IWUSR)Tj /T1_1 1 Tf 5.7 0 Td [(user)18(-write)-3301(user permission to write \336le)]TJ 25.542 0 Td [(user permission to r)18(emove and cr)18(eate)]TJ 1.35 -1.325 Td [(\336les in dir)18(ectory)]TJ /TT1 1 Tf -32.592 -1.59 Td (S_IXUSR)Tj /T1_1 1 Tf 5.7 0 Td [(user)18(-execute)-2300(user permission to execute \336le)-4310(user permission to sear)18(ch for given)]TJ 26.892 -1.325 Td [(pathname in dir)18(ectory)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1188.25 4452.25 cm 0 0 m 4019 0 l S Q Q BT /TT1 1 Tf 7.9971 0 0 7.9971 122.7558 436.4828 Tm (S_IRGRP)Tj /T1_1 1 Tf 5.7 0 Td [(gr)18(oup-r)18(ead)-2859(gr)18(oup permission to r)18(ead \336le)-4887(gr)18(oup permission to r)18(ead dir)18(ectory)]TJ 26.892 -1.325 Td (entries)Tj /TT1 1 Tf -32.592 -1.59 Td (S_IWGRP)Tj /T1_1 1 Tf 5.7 0 Td [(gr)18(oup-write)-2501(gr)18(oup permission to write \336le)-4529(gr)18(oup permission to r)18(emove and cr)18(eate)]TJ 26.892 -1.325 Td [(\336les in dir)18(ectory)]TJ /TT1 1 Tf -32.592 -1.59 Td (S_IXGRP)Tj /T1_1 1 Tf 5.7 0 Td [(gr)18(oup-execute)-1500(gr)18(oup permission to execute \336le)-3528(gr)18(oup permission to sear)18(ch for given)]TJ 26.892 -1.325 Td [(pathname in dir)18(ectory)]TJ ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1188.25 3754.25 cm 0 0 m 4019 0 l S Q Q BT /TT1 1 Tf 7.9966 0 0 7.9966 122.7484 366.646 Tm (S_IROTH)Tj /T1_1 1 Tf 5.7 0 Td [(other)18(-r)18(ead)-3232(other permission to r)18(ead \336le)]TJ 25.542 0 Td [(other permission to r)18(ead dir)18(ectory)]TJ 1.35 -1.325 Td (entries)Tj /TT1 1 Tf -32.592 -1.59 Td (S_IWOTH)Tj /T1_1 1 Tf 5.7 0 Td [(other)18(-write)-2874(other permission to write \336le)-4884(other permission to r)18(emove and cr)18(eate)]TJ 26.892 -1.325 Td [(\336les in dir)18(ectory)]TJ /TT1 1 Tf -32.592 -1.59 Td (S_IXOTH)Tj /T1_1 1 Tf 5.7 0 Td [(other)18(-execute)-1873(other permission to execute \336le)-3883(other permission to sear)18(ch for given)]TJ 26.892 -1.325 Td [(pathname in dir)18(ectory)]TJ ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1188.25 3055.25 cm 0 0 m 4019 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3667.25 3055.25 cm 0 0 m 0 3045 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2251.25 3055.25 cm 0 0 m 0 3045 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1624.25 3055.25 cm 0 0 m 0 3045 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5207.25 3055.25 cm 0 0 m 0 3045 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1188.25 3055.25 cm 0 0 m 0 3045 l S Q Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 222.6171 287.422 Tm (Figure 4.26)Tj /T1_1 1 Tf 5.695 0 Td (Summary of \336le access permission bits)Tj 9.9952 0 0 9.9952 129.538 263.4335 Tm [(The \336nal nine constants can also be gr)18(ouped into thr)18(ees, as follows:)]TJ /TT1 1 Tf 8.9957 0 0 8.9957 147.5294 246.7415 Tm (S_IRWXU = S_IRUSR | S_IWUSR | S_IXUSR)Tj 0 -1.189 TD (S_IRWXG = S_IRGRP | S_IWGRP | S_IXGRP)Tj T* (S_IRWXO = S_IROTH | S_IWOTH | S_IXOTH)Tj /TT0 1 Tf 11.9942 0 0 11.9942 93.5553 183.372 Tm [(4.26 )-776(Summar)-10(y)]TJ /T1_1 1 Tf 9.9952 0 0 9.9952 129.538 159.3835 Tm [(This )-86(chapter )-86(has )-86(center)18(ed )-86(on )-86(the)]TJ /TT1 1 Tf 15.049 0 Td (stat)Tj /T1_1 1 Tf 2.736 0 Td [(function. )-336(W)92(e\325ve )-86(gone )-86(thr)18(ough )-86(each )-86(member )-86(in)]TJ -17.785 -1.2 Td (the)Tj /TT1 1 Tf 1.699 0 Td (stat)Tj /T1_1 1 Tf 2.712 0 Td [(str)8(uctur)18(e)-312(in)-312(detail. )-312(This,)-312(in )-62(turn, )-62(led )-62(us )-62(to )-62(examine )-62(all )-62(the )-62(attributes )-62(of )-62(UNIX)]TJ -4.411 -1.2 Td [(\336les )-5(and )-5(dir)18(ectories. )-255(W)92(e\325ve )-5(looked )-5(at )-5(how )-5(\336les )-5(and )-5(dir)19(ectories )-5(might )-5(be )-5(laid )-5(out )-5(in )-5(a )-5(\336le)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47040 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.24)]TJ 34.629 0 Td [(Device )-250(Special )-250(Files)]TJ /T1_1 1 Tf 11.204 0 Td (137)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(char )-1800(*ptr;)]TJ T* [(size_t )-3000(size;)]TJ 0 -1.783 TD (if \(chdir\("/usr/spool/uucppublic"\) < 0\))Tj 2.4 -1.189 Td (err_sys\("chdir failed"\);)Tj -2.4 -1.783 Td [(ptr = path_alloc\(&size\);)-2400(/* our own function */)]TJ 0 -1.189 TD (if \(getcwd\(ptr, size\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("getcwd failed"\);)Tj -2.4 -1.783 Td (printf\("cwd = %s\\n", ptr\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4942.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 250.5219 478.1406 Tm (Figure 4.24)Tj /T1_0 1 Tf 5.695 0 Td (Example of)Tj /TT0 1 Tf 5.26 0 Td (getcwd)Tj /T1_0 1 Tf 3.85 0 Td (function)Tj 9.9988 0 0 9.9988 129.5847 454.1435 Tm [(Note )-84(that)]TJ /TT0 1 Tf 4.583 0 Td (chdir)Tj /T1_0 1 Tf 3.334 0 Td [(follows )-84(the )-84(symbolic )-84(link)]TJ 0.0833 Tc 11.444 0 Td (\321a)Tj 0 Tc 1.583 0 Td [(s)-334(we)-334(e)1(xpect )-84(it )-84(to, )-84(fr)18(om )-84(Figur)]TJ 0.3336 Tc 12.845 0 Td (e4)Tj 0 Tc 1.313 0 Td [(.17 )167(\321 )167(but)]TJ -35.101 -1.2 Td [(when )-94(it )-94(goes )-94(up )-94(the )-94(dir)20(ectory )-94(tr)18(ee,)]TJ /TT0 1 Tf 16.031 0 Td (getcwd)Tj /T1_0 1 Tf 3.944 0 Td [(has )-94(no )-94(idea )-94(when )-94(it )-94(hits )-94(the)]TJ /TT0 1 Tf 13.025 0 Td (/var/spool)Tj /T1_0 1 Tf -33 -1.2 Td [(dir)18(ectory )-31(that )-31(it )-31(is )-31(pointed )-31(to )-31(by )-31(the )-31(symbolic )-31(link)]TJ /TT0 1 Tf 22.411 0 Td (/usr/spool)Tj /T1_0 1 Tf 0.5308 Tc (.T)Tj 0 Tc 7.394 0 Td [(his )-31(is )-31(a )-31(characteristic)]TJ -29.805 -1.2 Td (of symbolic links.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4182.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 147.5734 394.127 Tm (The)Tj /TT0 1 Tf 1.959 0 Td (getcwd)Tj /T1_0 1 Tf 3.885 0 Td [(function )-35(is )-35(useful )-35(when )-35(we )-35(have )-35(an )-35(application )-35(that )-35(needs )-35(to )-35(r)18(eturn )-35(to)]TJ -7.643 -1.2 Td [(the )-41(location )-41(in )-41(the )-41(\336le )-41(system )-41(wher)19(e)-291(it)-291(started )-41(out.)]TJ -0.092 Tc 22.952 0 Td [(We )-225(c)]TJ 0 Tc 2.122 0 Td [(an )-41(save )-41(the )-41(starting )-41(location )-41(by)]TJ -25.074 -1.2 Td (calling)Tj /TT0 1 Tf 3.527 0 Td (getcwd)Tj /T1_0 1 Tf 4.172 0 Td [(befor)18(e)-572(we)-572(c)1(hange )-321(our )-321(working )-321(dir)17(ectory)]TJ 0.8215 Tc 19.299 0 Td (.A)Tj 0 Tc 1.849 0 Td [(fter )-321(we )-321(complete )-321(our)]TJ -28.846 -1.2 Td [(pr)18(ocessing, )-25(we )-25(can )-25(pass )-25(the )-25(pathname )-25(obtained )-25(fr)19(om)]TJ /TT0 1 Tf 23.828 0 Td (getcwd)Tj /T1_0 1 Tf 3.875 0 Td (to)Tj /TT0 1 Tf 1.147 0 Td (chdir)Tj /T1_0 1 Tf 3.275 0 Td [(to )-25(r)18(eturn )-25(to )-25(our)]TJ -32.125 -1.2 Td (starting location in the \336le system.)Tj 1.8 -1.2 Td (The)Tj /TT0 1 Tf 1.925 0 Td (fchdir)Tj /T1_0 1 Tf 3.851 0 Td [(function )-1(pr)18(ovides )-1(us )-1(with )-1(an )-1(easy )-1(way )-1(to )-1(accomplish )-1(this )-1(task.)-505(Instead)]TJ -7.577 -1.2 Td [(of )-18(calling)]TJ /TT0 1 Tf 4.371 0 Td (getcwd)Tj /T1_0 1 Tf [(,)-268(we)-268(c)-1(an)]TJ /TT0 1 Tf 7.494 0 Td (open)Tj /T1_0 1 Tf 2.668 0 Td [(the )-18(curr)18(ent )-18(dir)18(ectory )-18(and )-18(save )-18(the )-18(\336le )-18(descriptor )-18(befor)15(e)]TJ -14.533 -1.2 Td [(we )-73(change )-73(to )-73(a )-73(dif)17(fer)18(ent )-73(location )-73(in )-73(the )-73(\336le )-73(system.)-573(When )-73(we )-73(want )-73(to )-73(r)16(eturn )-73(to )-73(wher)18(e)]TJ -0 -1.2 Td (we started, we can simply pass the \336le descriptor to)Tj /TT0 1 Tf 23.104 0 Td (fchdir)Tj /T1_0 1 Tf (.)Tj /TT1 1 Tf 11.9978 0 0 11.9978 93.5826 264.5504 Tm [(4.24 )-776(De)15(vice )-278(Special )-278(Files)]TJ /T1_0 1 Tf 9.9982 0 0 9.9982 129.5761 242.9543 Tm [(The )-43(two )-43(\336elds)]TJ /TT0 1 Tf 6.668 0 Td (st_dev)Tj /T1_0 1 Tf 3.893 0 Td (and)Tj /TT0 1 Tf 1.986 0 Td (st_rdev)Tj /T1_0 1 Tf 4.493 0 Td (ar)Tj 0.2926 Tc 0.877 0 Td (eo)Tj 0 Tc 1.318 0 Td [(ften )-43(confused.)]TJ -0.092 Tc 6.827 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-43(need )-43(to )-43(use )-43(these )-43(\336elds)]TJ -27.448 -1.2 Td [(in )-16(Section )-16(18.9 )-16(when )-16(we )-16(write )-16(the)]TJ /TT0 1 Tf 15.18 0 Td (ttyname)Tj /T1_0 1 Tf 4.466 0 Td [(function. )-266(The)]TJ -0.008 Tc 6.413 0 Td (ru)Tj 0 Tc 0.99 0 Td [(les )-16(for )-16(their )-16(use )-16(ar)]TJ 0.2659 Tc 7.988 0 Td (es)Tj 0 Tc 1.169 0 Td (imple.)Tj 0.883 Tc -34.405 -2.04 Td (\245E)Tj 0 Tc 2.1 0 Td [(very )-104(\336le )-104(system )-104(is )-104(known )-104(by )-104(its )-104(major )-104(and )-104(minor )-104(device )-104(numbers, )-104(which )-104(ar)22(e)]TJ -0.611 -1.2 Td [(encoded )-47(in )-47(the )-47(primitive )-47(system )-47(data )-47(type)]TJ /TT0 1 Tf 19.207 0 Td (dev_t)Tj /T1_0 1 Tf 0.5473 Tc (.T)Tj 0 Tc 4.41 0 Td [(he )-47(major )-47(number )-47(identi\336es)]TJ -23.617 -1.2 Td [(the )-630(device )-630(driver )-630(and )-630(sometimes )-630(encodes )-630(which )-630(peripheral )-630(boar)]TJ 0.88 Tc 33.348 0 Td (dt)Tj 0 Tc 1.817 0 Td (o)Tj -35.165 -1.2 Td [(communicate )-137(with; )-137(the )-137(minor )-137(number )-137(identi\336es )-137(the )-137(speci\336c )-137(subdevice.)-637(Recall)]TJ 0 -1.2 TD [(fr)18(om )-97(Figur)]TJ 0.3466 Tc 4.869 0 Td (e4)Tj 0 Tc 1.326 0 Td [(.13 )-97(that )-97(a )-97(disk )-97(drive )-97(often )-97(contains )-97(several )-97(\336le )-97(systems.)-593(Each )-97(\336le)]TJ -6.194 -1.2 Td [(system )-52(on )-52(the )-52(same )-52(disk )-52(drive )-52(would )-52(usually )-52(have )-52(the )-52(same )-52(major )-52(number)]TJ 0.3024 Tc 33.677 0 Td (,b)Tj 0 Tc 1.105 0 Td (ut)Tj 0.25 Tc -34.782 -1.2 Td (ad)Tj 0 Tc 1.361 0 Td [(if)18(fer)18(ent minor number)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47041 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.23)]TJ /TT0 1 Tf 25.086 0 Td (chdir)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.75 0 Td (fchdir)Tj /T1_0 1 Tf 0.5 Tc (,a)Tj 0 Tc 4.85 0 Td (nd)Tj /TT0 1 Tf 1.693 0 Td (getcwd)Tj /T1_0 1 Tf 4.1 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (135)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(To )-226(i)]TJ 0 Tc 1.649 0 Td [(llustrate )-41(the)]TJ /TT0 1 Tf 5.605 0 Td (ftw)Tj /T1_0 1 Tf 2.091 0 Td (and)Tj /TT0 1 Tf 1.984 0 Td (nftw)Tj /T1_0 1 Tf 2.691 0 Td [(functions, )-41(we )-41(have )-41(pr)17(ovided )-42(mor)]TJ 0.2916 Tc 14.873 0 Td (eg)Tj 0 Tc 1.327 0 Td [(enerality )-42(in )-42(this)]TJ -32.022 -1.2 Td [(pr)18(ogram )-302(than )-302(needed.)-802(For )-302(example, )-302(the )-302(function)]TJ /TT0 1 Tf 24.045 0 Td (myfunc)Tj /T1_0 1 Tf 4.152 0 Td [(always )-302(r)18(eturns )-302(0, )-302(even)]TJ -28.197 -1.2 Td [(though the function that calls it is pr)18(epar)18(ed to handle a nonzer)]TJ 0.25 Tc 27.563 0 Td (or)Tj 0 Tc 1.173 0 Td (eturn.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 6450.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 618.5258 Tm [(For )-239(additional )-239(information )-239(on )-239(descending )-239(thr)18(ough )-239(a )-239(\336le )-239(system )-239(and )-239(using )-239(this)]TJ -1.8 -1.2 Td [(technique )-417(in )-417(many )-417(standar)]TJ 0.667 Tc 13.061 0 Td (dU)Tj 0 Tc 2.056 0 Td [(NIX )-417(System )-417(commands)-83(\321)]TJ /TT0 1 Tf 12.402 0 Td (find)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.317 0 Td (ls)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 2.117 0 Td (tar)Tj /T1_0 1 Tf 0.6671 Tc (,a)Tj 0 Tc 3.217 0 Td [(nd )-417(so)]TJ -36.17 -1.2 Td [(on )167(\321 )167(r)17(efer to Fowler)]TJ 0.25 Tc 8.757 0 Td (,K)Tj 0 Tc 1.226 0 Td [(orn, and V)111(o)]TJ 5.373 0.04 Td ([)Tj 0.333 -0.04 Td (1989)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td (.)Tj /TT1 1 Tf 11.9986 0 0 11.9986 93.5895 558.533 Tm (4.23)Tj /TT2 1 Tf 3 0 Td (chdir)Tj /TT1 1 Tf (,)Tj /TT2 1 Tf 3.834 0 Td (fchdir)Tj /TT1 1 Tf 0.556 Tc (,a)Tj 0 Tc 4.99 0 Td (nd)Tj /TT2 1 Tf 1.778 0 Td (getcwd)Tj /TT1 1 Tf 4.156 0 Td (Functions)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5848 534.5358 Tm [(Every )-19(pr)18(ocess )-19(has )-19(a )-19(curr)18(ent )-19(working )-19(dir)19(ectory)]TJ 0.5188 Tc 20.4 0 Td (.T)Tj 0 Tc 1.382 0 Td [(his )-19(dir)18(ectory )-19(is )-19(wher)]TJ 0.2688 Tc 9.115 0 Td (et)Tj 0 Tc 1.074 0 Td [(he )-19(sear)18(ch )-19(for )-19(all)]TJ -0.018 Tc -31.971 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(lative )-3(pathnames )-3(starts )-3(\(i.e., )-3(with )-3(all )-3(pathnames )-3(that )-3(do )-3(not )-3(begin )-3(with )-3(a )-3(slash\).)-500(When)]TJ 0.3702 Tc -0.856 -1.2 Td (au)Tj 0 Tc 1.473 0 Td [(ser )-120(logs )-120(in )-120(to )-120(a )-120(UNIX )-120(system, )-120(the )-120(curr)16(ent )-120(working )-120(dir)18(ectory )-120(normally )-120(starts )-120(at )-120(the)]TJ -1.473 -1.2 Td [(dir)18(ectory )-338(speci\336ed )-338(by )-338(the )-338(sixth )-338(\336eld )-338(in )-338(the)]TJ /TT0 1 Tf 21.542 0 Td (/etc/passwd)Tj /T1_0 1 Tf 7.188 0 Td [(\336le )167(\321 )167(the)-588(user )176(\325s)-588(home)]TJ -28.729 -1.2 Td [(dir)18(ectory)]TJ 0.5192 Tc 3.914 0 Td (.T)Tj 0 Tc 1.382 0 Td [(he )-19(curr)18(ent )-19(working )-19(dir)18(ectory )-19(is )-19(an )-19(attribute )-19(of )-19(a )-19(pr)16(ocess; )-19(the )-19(home )-19(dir)18(ectory)]TJ -5.296 -1.2 Td (is an attribute of a login name.)Tj -0.092 Tc 1.8 -1.2 Td [(We )-303(c)]TJ 0 Tc 2.2 0 Td [(an )-119(change )-119(the )-119(curr)18(ent )-119(working )-119(dir)18(ectory )-119(of )-119(the )-119(calling )-119(pr)18(ocess )-119(by )-119(calling )-119(the)]TJ /TT0 1 Tf -4 -1.2 Td (chdir)Tj /T1_0 1 Tf 3.25 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (fchdir)Tj /T1_0 1 Tf 3.85 0 Td (function.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5833 433.8479 Tm (#include )Tj 0 -1.902 TD (int chdir\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf (\);)Tj 0 -1.902 Td (int fchdir\(int)Tj /T1_2 1 Tf 9 0 Td (fd)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 16.251 -1.902 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT3 1 Tf 9.213 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3780.25 cm 0 0 m 0 649 l 3900 649 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9982 0 0 9.9982 129.5767 364.4744 Tm [(We )-303(c)]TJ 0 Tc 2.2 0 Td [(an )-119(specify )-119(the )-119(new )-119(curr)18(ent )-119(working )-119(dir)16(ectory )-119(either )-119(as )-119(a)]TJ /T1_2 1 Tf 26.153 0 Td (pathname)Tj /T1_0 1 Tf 4.313 0 Td [(or )-119(thr)18(ough )-119(an)]TJ -32.666 -1.2 Td [(open \336le descriptor)74(.)]TJ /TT1 1 Tf -3.6 -2.4 Td (Example)Tj /T1_0 1 Tf 3.6 -2.04 Td [(Because )-255(it )-255(is )-255(an )-255(attribute )-255(of )-255(a )-255(pr)18(ocess, )-255(the )-255(curr)16(ent )-255(working )-255(dir)18(ectory )-255(cannot )-255(af)17(fect)]TJ 0 -1.2 TD [(pr)18(ocesses )-497(that )-497(invoke )-497(the )-497(pr)19(ocess )-497(that )-497(executes )-497(the)]TJ /TT0 1 Tf 26.477 0 Td (chdir)Tj /T1_0 1 Tf 0.9966 Tc (.\()Tj -0.092 Tc 4.58 0 Td [(We )-681(d)]TJ 0 Tc 2.745 0 Td [(escribe )-497(the)]TJ -0.018 Tc -33.801 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(lationship )-18(between )-18(pr)18(ocesses )-18(in )-18(mor)]TJ 0.2683 Tc 16.116 0 Td (ed)Tj 0 Tc 1.358 0 Td [(etail )-18(in )-18(Chapter )-18(8.\))-518(As )-18(a )-18(r)18(esult, )-18(the )-18(pr)18(ogram )-18(in)]TJ -18.33 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e4)Tj 0 Tc 1.229 0 Td (.23 doesn\325t do what we might expect.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2649.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9978 0 0 8.9978 129.5689 255.3777 Tm (#include "apue.h")Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (if \(chdir\("/tmp"\) < 0\))Tj 2.4 -1.189 Td (err_sys\("chdir failed"\);)Tj -2.4 -1.189 Td (printf\("chdir to /tmp succeeded\\n"\);)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1586.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 252.8761 142.5752 Tm (Figure 4.23)Tj /T1_0 1 Tf 5.695 0 Td (Example of)Tj /TT0 1 Tf 5.26 0 Td (chdir)Tj /T1_0 1 Tf 3.25 0 Td (function)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47042 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (130)Tj /T1_1 1 Tf 3.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.241 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -1.664 TD (int rmdir\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 26.851 -1.664 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6238.25 cm 0 0 m 0 435 l 3900 435 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 611.4666 Tm [(If )-13(the )-13(link )-13(count )-13(of )-13(the )-13(dir)18(ectory )-13(becomes )-13(0 )-13(with )-13(this )-13(call, )-13(and )-13(if )-13(no )-13(other )-13(pr)21(ocess )-13(has )-13(the)]TJ 0 -1.2 TD [(dir)18(ectory )-262(open, )-262(then )-262(the )-262(space )-262(occupied )-262(by )-262(the )-262(dir)14(ectory )-263(is )-263(fr)19(eed. )-513(If)-512(one )-263(or )-263(mor)19(e)]TJ 0 -1.2 Td [(pr)18(ocesses )-291(have )-291(the )-291(dir)18(ectory )-291(open )-291(when )-291(the )-291(link )-291(count )-291(r)18(eaches )-291(0, )-291(the )-291(last )-291(link )-291(is)]TJ -0.018 Tc 0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(moved )-225(and )-225(the )-225(dot )-225(and )-225(dot-dot )-225(entries )-225(ar)]TJ 0.475 Tc 19.817 0 Td (er)Tj 0 Tc 1.331 0 Td [(emoved )-225(befor)]TJ 0.475 Tc 6.326 0 Td (et)Tj 0 Tc 1.28 0 Td [(his )-225(function )-225(r)18(eturns.)]TJ -29.61 -1.2 Td [(Additionally)111(,)-394(no)-394(n)-1(ew )-144(\336les )-144(can )-144(be )-144(cr)18(eated )-144(in )-144(the )-144(dir)16(ectory)]TJ 0.6443 Tc 26.132 0 Td (.T)Tj 0 Tc 1.507 0 Td [(he )-144(dir)18(ectory )-144(is )-144(not )-144(fr)17(eed,)]TJ -27.639 -1.2 Td (however)Tj 0.4838 Tc 3.806 0 Td (,u)Tj 0 Tc 1.337 0 Td [(ntil )-234(the )-234(last )-234(pr)18(ocess )-234(closes )-234(it.)-733(\(Even )-234(though )-234(some )-234(other )-234(pr)18(ocess )-234(has )-234(the)]TJ -5.143 -1.2 Td [(dir)18(ectory )-27(open, )-27(it )-27(can\325t )-27(be )-27(doing )-27(much )-27(in )-27(the )-27(dir)14(ectory)111(,)-277(as)-277(t)-1(he )-27(dir)18(ectory )-27(had )-27(to )-27(be )-27(empty)]TJ 0 -1.2 Td (for the)Tj /TT0 1 Tf 3.161 0 Td (rmdir)Tj /T1_1 1 Tf 3.25 0 Td (function to succeed.\))Tj /TT2 1 Tf 11.9986 0 0 11.9986 93.5898 496.28 Tm [(4.22 )-776(Reading)-556(Directories)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5854 477.0827 Tm [(Dir)18(ectories )-37(can )-37(be )-37(r)19(ead )-37(by )-37(anyone )-37(who )-37(has )-37(access )-37(permission )-37(to )-37(r)18(ead )-37(the )-37(dir)19(ectory)]TJ 0.5369 Tc 36.673 0 Td (.B)Tj 0 Tc 1.398 0 Td (ut)Tj -38.071 -1.2 Td [(only )-211(the )-211(kernel )-211(can )-211(write )-211(to )-211(a )-211(dir)19(ectory)111(,)-461(to)-461(p)]TJ -0.018 Tc (re)Tj 0 Tc 22.007 0 Td [(serve )-211(\336le )-211(system )-211(sanity)]TJ 0.7107 Tc 10.759 0 Td (.R)Tj 0 Tc 1.629 0 Td [(ecall )-211(fr)18(om)]TJ -34.395 -1.2 Td [(Section )-156(4.5 )-156(that )-156(the )-156(write )-156(permission )-156(bits )-156(and )-156(execute )-156(permission )-156(bits )-156(for )-156(a )-156(dir)23(ectory)]TJ T* [(determine )-327(if )-327(we )-327(can )-327(cr)17(eate )-327(new )-327(\336les )-327(in )-327(the )-327(dir)18(ectory )-327(and )-327(r)18(emove )-327(\336les )-327(fr)18(om )-327(the)]TJ T* [(dir)18(ectory )167(\321 )167(they)-251(don\325t specify if we can write to the dir)18(ectory itself.)]TJ 1.8 -1.2 Td [(The )-51(actual )-51(format )-51(of )-51(a )-51(dir)18(ectory )-51(depends )-51(on )-51(the )-51(UNIX )-51(System )-51(implementation )-51(and)]TJ -1.8 -1.2 Td [(the )-35(design )-35(of )-35(the )-35(\336le )-35(system.)-535(Earlier )-35(systems, )-35(such )-35(as )-35(V)112(ersion )-35(7, )-35(had )-35(a )-35(simple )-35(str)9(uctur)18(e:)]TJ T* [(each )-140(dir)18(ectory )-140(entry )-140(was )-140(16 )-140(bytes, )-140(with )-140(14 )-140(bytes )-140(for )-140(the )-140(\336lename )-140(and )-140(2 )-140(bytes )-140(for )-140(the)]TJ T* [(i-node )-255(number)]TJ 0.7553 Tc 6.768 0 Td (.W)Tj 0 Tc 2.005 0 Td [(hen )-255(longer )-255(\336lenames )-255(wer)]TJ 0.5053 Tc 11.941 0 Td (ea)Tj 0 Tc 1.484 0 Td [(dded )-255(to )-255(4.2BSD, )-255(each )-255(entry )-255(became)]TJ -22.199 -1.2 Td [(variable )-143(length, )-143(which )-143(means )-143(that )-143(any )-143(pr)18(ogram )-143(that )-143(r)18(eads )-143(a )-143(dir)18(ectory )-143(is )-143(now )-143(system)]TJ T* [(dependent. )-395(T)]TJ 0.3947 Tc 6.166 0 Td (os)Tj 0 Tc 1.365 0 Td [(implify )-145(the )-145(pr)18(ocess )-145(of )-145(r)18(eading )-145(a )-145(dir)20(ectory)]TJ 0.3947 Tc 18.985 0 Td (,as)Tj 0 Tc 1.963 0 Td [(et )-145(of )-145(dir)19(ectory )-145(r)18(outines)]TJ -28.479 -1.2 Td (wer)Tj 0.3376 Tc 1.69 0 Td (ed)Tj 0 Tc 1.428 0 Td [(eveloped )-88(and )-88(ar)]TJ 0.3376 Tc 7.296 0 Td (ep)Tj 0 Tc 1.418 0 Td [(art )-88(of )-88(POSIX.1.)-588(Many )-88(implementations )-88(pr)18(event )-88(applications)]TJ -11.831 -1.2 Td [(fr)18(om )-248(using )-248(the)]TJ /TT0 1 Tf 7.475 0 Td (read)Tj /T1_1 1 Tf 2.898 0 Td [(function )-248(to )-248(access )-248(the )-248(contents )-248(of )-248(dir)20(ectories, )-247(ther)18(eby )-247(further)]TJ -10.372 -1.2 Td [(isolating applications fr)18(om the implementation-speci\336c details of dir)18(ectory formats.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5841 305.6033 Tm (#include )Tj 0 -1.664 TD (DIR *opendir\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf (\);)Tj 0 -1.664 Td (DIR *fdopendir\(int)Tj /T1_2 1 Tf 11.4 0 Td (fd)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 9.78 -1.546 Td [(Both r)18(eturn: pointer if OK,)]TJ /TT0 1 Tf 11.933 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -35.763 -1.664 Td (struct dirent *readdir\(DIR *)Tj /T1_2 1 Tf (dp)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 14.565 -1.546 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(at end of dir)18(ectory or err)18(or)]TJ /TT0 1 Tf -27.548 -1.664 Td (void rewinddir\(DIR *)Tj /T1_2 1 Tf (dp)Tj /TT0 1 Tf (\);)Tj T* (int closedir\(DIR *)Tj /T1_2 1 Tf (dp)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 26.851 -1.546 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -34.464 -1.664 Td (long telldir\(DIR *)Tj /T1_2 1 Tf (dp)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 14.648 -1.546 Td [(Returns: curr)18(ent location in dir)18(ectory associated with)]TJ /T1_2 1 Tf 23.685 0 Td (dp)Tj /TT0 1 Tf -38.333 -1.664 Td (void seekdir\(DIR *)Tj /T1_2 1 Tf (dp)Tj /TT0 1 Tf 0.6 Tc (,l)Tj 0 Tc 13.6 0 Td (ong)Tj /T1_2 1 Tf 2.4 0 Td (loc)Tj /TT0 1 Tf (\);)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1406.25 cm 0 0 m 0 1740 l 3900 1740 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47043 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.21)]TJ /TT0 1 Tf 25.086 0 Td (mkdir)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.75 0 Td (mkdirat)Tj /T1_0 1 Tf 0.5 Tc (,a)Tj 0 Tc 5.45 0 Td (nd)Tj /TT0 1 Tf 1.693 0 Td (rmdir)Tj /T1_0 1 Tf 3.5 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (129)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT1 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm (4.21)Tj /TT2 1 Tf 3 0 Td (mkdir)Tj /TT1 1 Tf (,)Tj /TT2 1 Tf 3.834 0 Td (mkdirat)Tj /TT1 1 Tf 0.556 Tc (,a)Tj 0 Tc 5.59 0 Td (nd)Tj /TT2 1 Tf 1.778 0 Td (rmdir)Tj /TT1 1 Tf 3.556 0 Td (Functions)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5919 644.9613 Tm [(Dir)18(ectories )-127(ar)]TJ 0.3766 Tc 6.08 0 Td (ec)Tj -0.018 Tc 1.3 0 Td (re)Tj 0 Tc 0.856 0 Td [(ated )-127(with )-127(the)]TJ /TT0 1 Tf 6.466 0 Td (mkdir)Tj /T1_0 1 Tf 3.377 0 Td (and)Tj /TT0 1 Tf 2.07 0 Td (mkdirat)Tj /T1_0 1 Tf 4.577 0 Td [(functions, )-127(and )-127(deleted )-127(with )-127(the)]TJ /TT0 1 Tf -24.724 -1.2 Td (rmdir)Tj /T1_0 1 Tf 3.25 0 Td (function.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 613.8632 Tm (#include )Tj 0 -2.021 TD (int mkdir\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,m)Tj 0 Tc 18.944 0 Td (ode_t)Tj /T1_2 1 Tf 3.6 0 Td (mode)Tj /TT0 1 Tf (\);)Tj -22.544 -2.021 Td (int mkdirat\(int)Tj /T1_2 1 Tf 9.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,m)Tj 0 Tc 12.344 0 Td (ode_t)Tj /T1_2 1 Tf 3.6 0 Td (mode)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -2.871 -2.021 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT3 1 Tf 9.213 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5548.25 cm 0 0 m 0 681 l 3900 681 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 538.8653 Tm [(These )-221(functions )-221(cr)18(eate )-221(a )-221(new)]TJ 0.4708 Tc 13.499 0 Td (,e)Tj 0 Tc 1.2 0 Td [(mpty )-221(dir)18(ectory)]TJ 0.7208 Tc 6.751 0 Td (.T)Tj 0 Tc 1.584 0 Td [(he )-221(entries )-221(for )-221(dot )-221(and )-221(dot-dot )-221(ar)19(e)]TJ -23.033 -1.2 Td [(cr)18(eated )-96(automatically)]TJ 0.5965 Tc 9.509 0 Td (.T)Tj 0 Tc 1.459 0 Td [(he )-96(speci\336ed )-96(\336le )-96(access )-96(permissions,)]TJ /T1_2 1 Tf 16.407 0 Td (mode)Tj /T1_0 1 Tf 0.3464 Tc (,a)Tj -0.018 Tc 3.207 0 Td [(re )-132(m)]TJ 0 Tc 2.085 0 Td [(odi\336ed )-96(by )-96(the)]TJ -32.668 -1.2 Td [(\336le mode cr)18(eation mask of the pr)18(ocess.)]TJ 0.5514 Tc 1.8 -1.2 Td (Ac)Tj 0 Tc 1.773 0 Td [(ommon )-301(mistake )-301(is )-301(to )-301(specify )-301(the )-301(same)]TJ /T1_2 1 Tf 19.147 0 Td (mode)Tj /T1_0 1 Tf 2.663 0 Td [(as )-301(for )-301(a )-301(\336le: )-301(r)18(ead )-301(and )-301(write)]TJ -25.383 -1.2 Td [(permissions )-55(only)]TJ 0.5554 Tc 7.509 0 Td (.B)Tj 0 Tc 1.416 0 Td [(ut )-55(for )-55(a )-55(dir)17(ectory)111(,)-305(we)-305(n)-1(ormally )-55(want )-55(at )-55(least )-55(one )-55(of )-55(the )-55(execute )-55(bits)]TJ -8.926 -1.2 Td [(enabled, to allow access to \336lenames within the dir)18(ectory)]TJ 0.5 Tc 25.116 0 Td (.\()Tj 0 Tc 1.083 0 Td [(See Exer)18(cise 4.16.\))]TJ -24.399 -1.2 Td [(The )-172(user )-172(ID )-172(and )-172(gr)18(oup )-172(ID )-172(of )-172(the )-172(new )-172(dir)18(ectory )-172(ar)]TJ 0.4225 Tc 23.461 0 Td (ee)Tj 0 Tc 1.381 0 Td [(stablished )-172(accor)18(ding )-172(to )-172(the)]TJ -0.008 Tc -26.641 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td (les we described in Section 4.6.)Tj 7.999 0 0 7.999 183.5783 432.4781 Tm [(Solaris )-138(10 )-138(and )-138(Linux )-138(3.2.0 )-138(also )-138(have )-138(the )-138(new )-138(dir)18(ectory )-138(inherit )-138(the )-138(set-gr)18(oup-ID )-138(bit )-138(fr)18(om )-138(the)]TJ 0 -1.25 TD [(par)18(ent )-208(dir)18(ectory)]TJ 0.7079 Tc 7.237 0 Td (.F)Tj 0 Tc 1.514 0 Td [(iles )-208(cr)18(eated )-208(in )-208(the )-208(new )-208(dir)18(ectory )-208(will )-208(then )-208(inherit )-208(the )-208(gr)18(oup )-208(ID )-208(of )-208(that)]TJ -8.751 -1.25 Td [(dir)18(ectory)]TJ 0.6864 Tc 3.914 0 Td (.W)Tj 0 Tc 1.881 0 Td [(ith )-186(Linux, )-186(the )-186(\336le )-186(system )-186(implementation )-186(determines )-186(whether )-186(this )-186(behavior )-186(is)]TJ -5.795 -1.25 Td [(supported. )-418(For)-417(example, )-168(the)]TJ /TT0 1 Tf 13.64 0 Td (ext2)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.068 0 Td (ext3)Tj /T1_0 1 Tf 0.4176 Tc (,a)Tj 0 Tc 3.568 0 Td (nd)Tj /TT0 1 Tf 1.611 0 Td (ext4)Tj /T1_0 1 Tf 2.818 0 Td [(\336le )-168(systems )-168(allow )-168(this )-168(behavior )-168(to )-168(be)]TJ -24.703 -1.25 Td [(contr)18(olled )-21(by )-21(an )-21(option )-21(to )-21(the)]TJ /TT0 1 Tf 13.46 0 Td (mount)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.604 -0.04 Td [(command. )-271(W)55(ith )-21(the )-21(Linux )-21(implementation )-21(of )-21(the)]TJ /TT0 1 Tf 22.303 0 Td (UFS)Tj /T1_0 1 Tf -40.2 -1.25 Td [(\336le )-14(system, )-14(however)]TJ 0.264 Tc 9.051 0 Td (,t)Tj 0 Tc 0.84 0 Td [(he )-14(behavior )-14(is )-14(not )-14(selectable; )-14(it )-14(inherits )-14(the )-14(set-gr)18(oup-ID )-14(bit )-14(to )-14(mimic )-14(the)]TJ -9.891 -1.25 Td [(historical )-51(BSD )-51(implementation, )-51(wher)]TJ 0.3009 Tc 16.485 0 Td (et)Tj 0 Tc 1.106 0 Td [(he )-51(gr)18(oup )-51(ID )-51(of )-51(a )-51(dir)18(ectory )-51(is )-51(inherited )-51(fr)19(om )-51(the )-51(par)19(ent)]TJ -17.59 -1.25 Td [(dir)18(ectory)111(.)]TJ 0 -2.25 TD (BSD)Tj 1.91 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-256(implementations )-256(don\325t )-256(pr)18(opagate )-256(the )-256(set-gr)18(oup-ID )-256(bit; )-256(they )-256(simply )-256(inherit )-256(the)]TJ -2.243 -1.25 Td [(gr)18(oup )-15(ID )-15(as )-15(a )-15(matter )-15(of )-15(policy)]TJ 0.5146 Tc 13.212 0 Td (.B)Tj 0 Tc 1.376 0 Td [(ecause )-15(Fr)18(eeBSD )-15(8.0 )-15(and )-15(Mac )-15(OS )-15(X )-15(10.6.8 )-15(ar)]TJ 0.2646 Tc 19.035 0 Td (eb)Tj 0 Tc 1.297 0 Td [(ased )-14(on )-14(4.4BSD,)]TJ -34.919 -1.25 Td [(they do not r)18(equir)]TJ 0.2501 Tc 7.991 0 Td (ei)Tj 0 Tc 1.02 0 Td [(nheriting the set-gr)18(oup-ID bit.)-500(On these platforms, newly cr)17(eated \336les and)]TJ -9.012 -1.25 Td [(dir)18(ectories )-238(always )-238(inherit )-238(the )-238(gr)18(oup )-238(ID )-238(of )-238(the )-238(par)18(ent )-238(dir)15(ectory)]TJ 0.4884 Tc 29.335 0 Td (,r)Tj 0 Tc 1.115 0 Td [(egar)18(dless )-238(of )-238(whether )-238(the)]TJ -30.451 -1.25 Td [(set-gr)18(oup-ID bit is set.)]TJ T* [(Earlier )-53(versions )-53(of )-53(the )-53(UNIX )-53(System )-53(did )-53(not )-53(have )-53(the)]TJ /TT0 1 Tf 24.25 0 Td (mkdir)Tj /T1_0 1 Tf 3.303 0 Td [(function; )-53(it )-53(was )-53(intr)18(oduced )-53(with)]TJ -27.553 -1.25 Td [(4.2BSD )-55(and )-55(SVR3.)-555(In )-55(the )-55(earlier )-55(versions, )-55(a )-55(pr)18(ocess )-55(had )-55(to )-55(call )-55(the)]TJ /TT0 1 Tf 30.097 0 Td (mknod)Tj /T1_0 1 Tf 3.305 0 Td [(function )-55(to )-55(cr)18(eate )-55(a)]TJ -33.402 -1.25 Td [(new )-251(dir)18(ectory )167(\321 )167(but)-501(use )-251(of )-251(the)]TJ /TT0 1 Tf 14.845 0 Td (mknod)Tj /T1_0 1 Tf 3.501 0 Td [(function )-251(was )-251(r)18(estricted )-251(to )-251(super)8(user )-251(pr)19(ocesses. )-501(T)92(o)]TJ -18.346 -1.25 Td [(cir)18(cumvent )-62(this )-62(constraint, )-62(the )-62(normal )-62(command )-62(that )-62(cr)18(eated )-62(a )-62(dir)17(ectory)111(,)]TJ /TT0 1 Tf 33.051 0 Td (mkdir)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.312 Tc 0.333 -0.04 Td (,h)Tj 0 Tc 1.144 0 Td [(ad )-62(to )-62(be)]TJ -38.361 -1.25 Td [(owned )-63(by )-63(r)18(oot )-63(with )-63(the )-63(set-user)18(-ID )-63(bit )-63(on.)]TJ -0.092 Tc 19.564 0 Td [(To )-247(c)]TJ -0.018 Tc 1.824 0 Td (re)Tj 0 Tc 0.856 0 Td [(ate )-63(a )-63(dir)18(ectory )-63(fr)18(om )-63(a )-63(pr)18(ocess, )-63(the)]TJ /TT0 1 Tf 15.59 0 Td (mkdir)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj -41.667 -1.29 Td (command had to be invoked with the)Tj /TT0 1 Tf 16.846 0 Td (system)Tj /T1_0 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (3)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (function.)Tj 9.9988 0 0 9.9988 147.5838 214.5043 Tm (The)Tj /TT0 1 Tf 1.962 0 Td (mkdirat)Tj /T1_0 1 Tf 4.488 0 Td [(function )-38(is )-38(similar )-38(to )-38(the)]TJ /TT0 1 Tf 11.195 0 Td (mkdir)Tj /T1_0 1 Tf 3.288 0 Td [(function. )-288(When)-288(the)]TJ /T1_2 1 Tf 9.101 0 Td (fd)Tj /T1_0 1 Tf 1.066 0 Td [(ar)18(gument )-38(has)]TJ -32.9 -1.2 Td [(the )-249(special )-249(value)]TJ /TT0 1 Tf 8.352 0 Td (AT_FDCWD)Tj /T1_0 1 Tf [(,)-499(or)-499(when )-249(the)]TJ /T1_2 1 Tf 11.851 0 Td (pathname)Tj /T1_0 1 Tf 4.443 0 Td [(ar)18(gument )-249(speci\336es )-249(an )-249(absolute)]TJ -24.646 -1.2 Td (pathname,)Tj /TT0 1 Tf 5.173 0 Td (mkdirat)Tj /T1_0 1 Tf 4.67 0 Td [(behaves )-220(exactly )-220(like)]TJ /TT0 1 Tf 9.722 0 Td (mkdir)Tj /T1_0 1 Tf 0.7202 Tc (.O)Tj 0 Tc 4.756 0 Td [(therwise, )-220(the)]TJ /T1_2 1 Tf 6.387 0 Td (fd)Tj /T1_0 1 Tf 1.248 0 Td [(ar)18(gument )-220(is )-220(an)]TJ -31.957 -1.2 Td [(open dir)18(ectory fr)18(om which r)18(elative pathnames will be evaluated.)]TJ 1.8 -1.2 Td [(An )-251(empty )-251(dir)18(ectory )-251(is )-251(deleted )-251(with )-251(the)]TJ /TT0 1 Tf 19.151 0 Td (rmdir)Tj /T1_0 1 Tf 3.501 0 Td [(function. )-501(Recall)-502(that )-251(an )-251(empty)]TJ -24.453 -1.2 Td [(dir)18(ectory is one that contains entries only for dot and dot-dot.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47044 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (126)Tj /T1_1 1 Tf 3.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.241 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm (4.20)Tj /TT1 1 Tf 3 0 Td (futimens)Tj /TT0 1 Tf (,)Tj /TT1 1 Tf 5.634 0 Td (utimensat)Tj /TT0 1 Tf 0.556 Tc (,a)Tj 0 Tc 6.79 0 Td (nd)Tj /TT1 1 Tf 1.778 0 Td (utimes)Tj /TT0 1 Tf 4.156 0 Td (Functions)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5919 644.9613 Tm [(Several )-46(functions )-46(ar)]TJ 0.2965 Tc 8.835 0 Td (ea)Tj 0 Tc 1.276 0 Td [(vailable )-46(to )-46(change )-46(the )-46(access )-46(time )-46(and )-46(the )-46(modi\336cation )-46(time )-46(of )-46(a)]TJ -10.111 -1.2 Td [(\336le. )-488(The)]TJ /TT2 1 Tf 4.525 0 Td (futimens)Tj /T1_1 1 Tf 5.288 0 Td (and)Tj /TT2 1 Tf 2.181 0 Td (utimensat)Tj /T1_1 1 Tf 5.888 0 Td [(functions )-238(pr)18(ovide )-238(nanosecond )-238(granularity )-238(for)]TJ -17.882 -1.2 Td [(specifying )-101(timestamps, )-101(using )-101(the)]TJ /TT2 1 Tf 15.189 0 Td (timespec)Tj /T1_1 1 Tf 5.151 0 Td [(str)8(uctur)]TJ 0.3505 Tc 3.49 0 Td (e\()Tj 0 Tc 1.163 0 Td [(the )-100(same )-100(str)7(uctur)]TJ 0.3505 Tc 7.864 0 Td (eu)Tj 0 Tc 1.433 0 Td [(sed )-100(by )-100(the)]TJ /TT2 1 Tf -34.289 -1.2 Td (stat)Tj /T1_1 1 Tf 2.65 0 Td (family of functions; see Section 4.2\).)Tj /TT2 1 Tf 8.9995 0 0 8.9995 147.5915 586.2648 Tm (#include )Tj 0 -2.021 TD (int futimens\(int)Tj /T1_2 1 Tf 10.2 0 Td (fd)Tj /TT2 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst struct timespec)Tj /T1_2 1 Tf 12.6 0 Td (times[2])Tj /TT2 1 Tf (\);)Tj -25.378 -2.021 Td (int utimensat\(int)Tj /T1_2 1 Tf 10.8 0 Td (fd)Tj /TT2 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (path)Tj /TT2 1 Tf 0.6 Tc (,c)Tj 0 Tc 10.177 0 Td (onst struct timespec)Tj /T1_2 1 Tf 12.6 0 Td (times[2])Tj /TT2 1 Tf (,)Tj -27.755 -1.189 Td (int)Tj /T1_2 1 Tf 2.4 0 Td (\337ag)Tj /TT2 1 Tf (\);)Tj /T1_1 1 Tf 14.451 -2.021 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT3 1 Tf 9.213 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5165.25 cm 0 0 m 0 788 l 3900 788 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 496.9704 Tm [(In )-85(both )-85(functions, )-85(the )-85(\336rst )-85(element )-85(of )-85(the)]TJ /T1_2 1 Tf 18.909 0 Td (times)Tj /T1_1 1 Tf 2.502 0 Td [(array )-85(ar)18(gument )-85(contains )-85(the )-85(access)]TJ -23.211 -1.2 Td [(time, )-83(and )-83(the )-83(second )-83(element )-83(contains )-83(the )-83(modi\336cation )-83(time.)-579(The )-82(two )-82(time )-82(values )-82(ar)16(e)]TJ 0 -1.2 TD [(calendar )-240(times, )-240(which )-240(count )-240(seconds )-240(since )-240(the )-240(Epoch, )-240(as )-240(described )-240(in )-240(Section )-240(1.10.)]TJ T* (Partial seconds ar)Tj 0.25 Tc 7.794 0 Td (ee)Tj 0 Tc 1.208 0 Td [(xpr)18(essed in nanoseconds.)]TJ -0.055 Tc -7.202 -1.2 Td (Ti)Tj 0 Tc 0.849 0 Td (mestamps can be speci\336ed in one of four ways:)Tj -0.849 -2.04 Td [(1. )-633(The)]TJ /T1_2 1 Tf 3.585 0 Td (times)Tj /T1_1 1 Tf 2.445 0 Td [(ar)18(gument )-28(is )-28(a )-28(null )-28(pointer)]TJ 0.5277 Tc 11.545 0 Td (.I)Tj 0.2777 Tc 1.115 0 Td (nt)Tj 0 Tc 1.186 0 Td [(his )-28(case, )-28(both )-28(timestamps )-28(ar)]TJ 0.2776 Tc 12.526 0 Td (es)Tj 0 Tc 1.181 0 Td [(et )-28(to )-28(the)]TJ -31.948 -1.2 Td [(curr)18(ent time.)]TJ -1.633 -1.6 Td [(2. )-633(The)]TJ /T1_2 1 Tf 3.711 0 Td (times)Tj /T1_1 1 Tf 2.571 0 Td [(ar)18(gument )-154(points )-154(to )-154(an )-154(array )-154(of )-154(two)]TJ /TT2 1 Tf 16.79 0 Td (timespec)Tj /T1_1 1 Tf 5.204 0 Td [(str)8(uctur)18(es. )-404(If)-404(either)]TJ /TT2 1 Tf -26.644 -1.2 Td (tv_nsec)Tj /T1_1 1 Tf 4.515 0 Td [(\336eld )-65(has )-65(the )-65(special )-65(value)]TJ /TT2 1 Tf 11.923 0 Td (UTIME_NOW)Tj /T1_1 1 Tf 0.3151 Tc (,t)Tj 0 Tc 6.291 0 Td [(he )-65(corr)18(esponding )-65(timestamp)]TJ -22.729 -1.2 Td [(is set to the curr)18(ent time.)-500(The corr)18(esponding)]TJ /TT2 1 Tf 19.996 0 Td (tv_sec)Tj /T1_1 1 Tf 3.85 0 Td [(\336eld is ignor)18(ed.)]TJ -25.479 -1.6 Td [(3. )-633(The)]TJ /T1_2 1 Tf 3.711 0 Td (times)Tj /T1_1 1 Tf 2.571 0 Td [(ar)18(gument )-154(points )-154(to )-154(an )-154(array )-154(of )-154(two)]TJ /TT2 1 Tf 16.79 0 Td (timespec)Tj /T1_1 1 Tf 5.204 0 Td [(str)8(uctur)18(es. )-404(If)-404(either)]TJ /TT2 1 Tf -26.644 -1.2 Td (tv_nsec)Tj /T1_1 1 Tf 4.753 0 Td [(\336eld )-303(has )-303(the )-303(special )-303(value)]TJ /TT2 1 Tf 13.114 0 Td (UTIME_OMIT)Tj /T1_1 1 Tf 0.5533 Tc (,t)Tj 0 Tc 7.129 0 Td [(hen )-303(the )-303(corr)17(esponding)]TJ -24.997 -1.2 Td [(timestamp is unchanged.)-500(The corr)18(esponding)]TJ /TT2 1 Tf 20.225 0 Td (tv_sec)Tj /T1_1 1 Tf 3.85 0 Td [(\336eld is ignor)18(ed.)]TJ -25.708 -1.6 Td [(4. )-633(The)]TJ /T1_2 1 Tf 3.765 0 Td (times)Tj /T1_1 1 Tf 2.625 0 Td [(ar)18(gument )-208(points )-208(to )-208(an )-208(array )-208(of )-208(two)]TJ /TT2 1 Tf 17.165 0 Td (timespec)Tj /T1_1 1 Tf 5.258 0 Td [(str)8(uctur)18(es )-208(and )-208(the)]TJ /TT2 1 Tf -27.179 -1.2 Td (tv_nsec)Tj /T1_1 1 Tf 4.477 0 Td [(\336eld )-27(contains )-27(a )-27(value )-27(other )-27(than)]TJ /TT2 1 Tf 14.599 0 Td (UTIME_NOW)Tj /T1_1 1 Tf 5.677 0 Td (or)Tj /TT2 1 Tf 1.218 0 Td (UTIME_OMIT)Tj /T1_1 1 Tf 0.527 Tc (.I)Tj 0.277 Tc 7.114 0 Td (nt)Tj 0 Tc 1.185 0 Td (his)Tj -34.27 -1.2 Td [(case, )-465(the )-465(corr)18(esponding )-465(timestamp )-465(is )-465(set )-465(to )-465(the )-465(value )-465(speci\336ed )-465(by )-465(the)]TJ T* [(corr)18(esponding)]TJ /TT2 1 Tf 6.684 0 Td (tv_sec)Tj /T1_1 1 Tf 3.85 0 Td (and)Tj /TT2 1 Tf 1.943 0 Td (tv_nsec)Tj /T1_1 1 Tf 4.45 0 Td (\336elds.)Tj -18.56 -2.04 Td [(The )-58(privileges )-58(r)17(equir)18(ed )-58(to )-58(execute )-58(these )-58(functions )-58(depend )-58(on )-58(the )-58(value )-58(of )-58(the)]TJ /T1_2 1 Tf 35.033 0 Td (times)Tj /T1_1 1 Tf -36.833 -1.2 Td [(ar)18(gument.)]TJ 0.883 Tc 1.8 -2.04 Td (\245I)Tj 0 Tc 1.826 0 Td (f)Tj /T1_2 1 Tf 0.69 0 Td (times)Tj /T1_1 1 Tf 2.524 0 Td [(is )-107(a )-107(null )-107(pointer )-107(or )-107(if )-107(either)]TJ /TT2 1 Tf 12.816 0 Td (tv_nsec)Tj /T1_1 1 Tf 4.557 0 Td [(\336eld )-107(is )-107(set )-107(to)]TJ /TT2 1 Tf 6.229 0 Td (UTIME_NOW)Tj /T1_1 1 Tf 0.3568 Tc (,e)Tj 0 Tc 6.486 0 Td (ither)Tj -33.638 -1.2 Td [(the )-201(ef)18(fective )-201(user )-201(ID )-201(of )-201(the )-201(pr)18(ocess )-201(must )-201(equal )-201(the )-201(owner )-201(ID )-201(of )-201(the )-201(\336le, )-201(the)]TJ T* [(pr)18(ocess )-299(must )-299(have )-299(write )-299(permission )-299(for )-299(the )-299(\336le, )-299(or )-299(the )-299(pr)19(ocess )-299(must )-299(be )-299(a)]TJ 0 -1.2 Td [(super)8(user pr)18(ocess.)]TJ 0.883 Tc -1.489 -1.6 Td (\245I)Tj 0 Tc 1.826 0 Td (f)Tj /T1_2 1 Tf 0.721 0 Td (times)Tj /T1_1 1 Tf 2.555 0 Td [(is )-138(a )-138(non-null )-138(pointer )-138(and )-138(either)]TJ /TT2 1 Tf 14.82 0 Td (tv_nsec)Tj /T1_1 1 Tf 4.588 0 Td [(\336eld )-138(has )-138(a )-138(value )-138(other )-138(than)]TJ /TT2 1 Tf -23.022 -1.2 Td (UTIME_NOW)Tj /T1_1 1 Tf 5.683 0 Td (or)Tj /TT2 1 Tf 1.224 0 Td (UTIME_OMIT)Tj /T1_1 1 Tf 0.2827 Tc (,t)Tj 0 Tc 6.859 0 Td [(he )-33(ef)18(fective )-33(user )-33(ID )-33(of )-33(the )-33(pr)18(ocess )-33(must )-33(equal )-33(the)]TJ -13.765 -1.2 Td [(owner )-42(ID )-42(of )-42(the )-42(\336le, )-42(or )-42(the )-42(pr)18(ocess )-42(must )-42(be )-42(a )-42(super)8(user )-42(pr)18(ocess. )-292(Mer)18(ely )-42(having)]TJ 0 -1.2 Td (write permission for the \336le is not adequate.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47045 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (124)Tj /T1_1 1 Tf 3.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.241 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(These )-192(functions )-192(combine )-192(the )-192(actions )-192(of)]TJ /TT0 1 Tf 18.52 0 Td (open)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.092 0 Td (read)Tj /T1_1 1 Tf 0.4425 Tc (,a)Tj 0 Tc 3.592 0 Td (nd)Tj /TT0 1 Tf 1.636 0 Td (close)Tj /T1_1 1 Tf 0.6925 Tc (.I)Tj 0.4425 Tc 4.279 0 Td (fs)Tj 0 Tc 1.199 0 Td [(uccessful, )-192(they)]TJ -0.018 Tc -32.32 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-98(the )-98(number )-98(of )-98(bytes )-98(placed )-98(into)]TJ /T1_2 1 Tf 17.114 0 Td (buf)Tj /T1_1 1 Tf 0.5983 Tc (.T)Tj 0 Tc 2.758 0 Td [(he )-98(contents )-98(of )-98(the )-98(symbolic )-98(link )-98(that )-98(ar)17(e)]TJ -0.018 Tc -20.728 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (turned in)Tj /T1_2 1 Tf 4.369 0 Td (buf)Tj /T1_1 1 Tf 1.547 0 Td (ar)Tj 0.25 Tc 0.877 0 Td (en)Tj 0 Tc 1.311 0 Td (ot null terminated.)Tj -7.16 -1.2 Td (The)Tj /TT0 1 Tf 1.981 0 Td (readlinkat)Tj /T1_1 1 Tf 6.307 0 Td [(function )-57(behaves )-57(the )-57(same )-57(way )-57(as )-57(the)]TJ /TT0 1 Tf 17.313 0 Td (readlink)Tj /T1_1 1 Tf 5.107 0 Td [(function )-57(when)]TJ -32.509 -1.2 Td (the)Tj /T1_2 1 Tf 1.662 0 Td (pathname)Tj /T1_1 1 Tf 4.219 0 Td [(ar)18(gument )-25(speci\336es )-25(an )-25(absolute )-25(pathname )-25(or )-25(when )-25(the)]TJ /T1_2 1 Tf 24.317 0 Td (fd)Tj /T1_1 1 Tf 1.053 0 Td [(ar)18(gument )-25(has )-25(the)]TJ -31.251 -1.2 Td [(special )-11(value)]TJ /TT0 1 Tf 5.99 0 Td (AT_FDCWD)Tj /T1_1 1 Tf 0.5112 Tc (.H)Tj 0 Tc 6.393 0 Td (owever)Tj 0.2612 Tc 3.224 0 Td (,w)Tj 0 Tc 1.345 0 Td [(hen )-11(the)]TJ /T1_2 1 Tf 3.552 0 Td (fd)Tj /T1_1 1 Tf 1.039 0 Td [(ar)18(gument )-11(is )-11(a )-11(valid )-11(\336le )-11(descriptor )-11(of )-11(an)]TJ -21.544 -1.2 Td [(open )-136(dir)18(ectory )-136(and )-136(the)]TJ /T1_2 1 Tf 10.856 0 Td (pathname)Tj /T1_1 1 Tf 4.33 0 Td [(ar)18(gument )-136(is )-136(a )-136(r)18(elative )-136(pathname, )-136(then)]TJ /TT0 1 Tf 17.815 0 Td (readlinkat)Tj /T1_1 1 Tf -33 -1.2 Td [(evaluates the pathname r)18(elative to the open dir)18(ectory r)18(epr)18(esented by)]TJ /T1_2 1 Tf 30.63 0 Td (fd)Tj /T1_1 1 Tf (.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5937 544.1673 Tm [(4.19 )-776(File)-556(Times)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5915 520.1688 Tm [(In )-203(Section )-203(4.2, )-203(we )-203(discussed )-203(how )-203(the )-203(2008 )-203(version )-203(of )-203(the )-203(Single )-203(UNIX )-203(Speci\336cation)]TJ 0 -1.2 TD [(incr)18(eased )-10(the )-10(r)17(esolution )-10(of )-10(the )-10(time )-10(\336elds )-10(in )-10(the)]TJ /TT0 1 Tf 21.298 0 Td (stat)Tj /T1_1 1 Tf 2.66 0 Td [(str)8(uctur)]TJ 0.2604 Tc 3.49 0 Td (ef)Tj -0.018 Tc 1.072 0 Td (ro)Tj 0.2604 Tc 0.923 0 Td (ms)Tj 0 Tc 1.567 0 Td [(econds )-10(to )-10(seconds)]TJ -31.011 -1.2 Td [(plus )-117(nanoseconds.)-617(The )-117(actual )-117(r)18(esolution )-117(stor)16(ed )-117(with )-117(each )-117(\336le\325s )-117(attributes )-117(depends )-117(on)]TJ T* [(the )-315(\336le )-315(system )-315(implementation.)-815(For )-315(\336le )-315(systems )-315(that )-315(stor)]TJ 0.5651 Tc 27.73 0 Td (et)Tj 0 Tc 1.37 0 Td [(imestamps )-315(in )-315(second)]TJ -29.1 -1.2 Td (granularity)Tj 0.323 Tc 4.884 0 Td (,t)Tj 0 Tc 0.899 0 Td [(he )-73(nanoseconds )-73(\336elds )-73(will )-73(be )-73(\336lled )-73(with )-73(zer)17(os. )-323(For)-323(\336le )-73(systems )-73(that )-73(stor)18(e)]TJ -5.783 -1.2 Td [(timestamps )-284(in )-284(a )-284(r)17(esolution )-284(higher )-284(than )-284(seconds, )-284(the )-284(partial )-284(seconds )-284(value )-284(will )-284(be)]TJ T* [(converted into nanoseconds and r)18(eturned in the nanoseconds \336elds.)]TJ 1.8 -1.2 Td [(Thr)18(ee )-213(time )-213(\336elds )-213(ar)]TJ 0.4633 Tc 9.186 0 Td (em)Tj 0 Tc 1.825 0 Td [(aintained )-213(for )-213(each )-213(\336le.)-714(Their )-213(purpose )-213(is )-213(summarized )-213(in)]TJ -12.811 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e4)Tj 0 Tc 1.229 0 Td (.19.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1763.25 4030.25 cm 0 0 m 2966 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 188.1574 394.9526 Tm (Field )Tj 9.472 0 Td (Description)Tj 13.07 0 Td (Example)Tj /TT0 1 Tf 7.04 0 Td (ls)Tj /T1_1 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (option)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1763.25 3910.25 cm 0 0 m 2966 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1763.25 3890.25 cm 0 0 m 2966 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 180.2595 380.9314 Tm (st_atim)Tj /T1_1 1 Tf 5.7 0 Td (last-access time of \336le data)Tj /TT0 1 Tf 16.169 0 Td (read )Tj 10.854 0 Td (-u)Tj -32.723 -1.25 Td (st_mtim)Tj /T1_1 1 Tf 5.7 0 Td (last-modi\336cation time of \336le data)Tj /TT0 1 Tf 16.169 0 Td (write)Tj /T1_1 1 Tf 9.883 0 Td (default)Tj /TT0 1 Tf -31.751 -1.25 Td (st_ctim)Tj /T1_1 1 Tf 5.7 0 Td (last-change time of i-node status)Tj /TT0 1 Tf 16.169 0 Td [(chmod, chown)-3654(-c)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1763.25 3570.25 cm 0 0 m 2966 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4188.25 3570.25 cm 0 0 m 0 460 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3492.25 3570.25 cm 0 0 m 0 460 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2199.25 3570.25 cm 0 0 m 0 460 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4729.25 3570.25 cm 0 0 m 0 460 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1763.25 3570.25 cm 0 0 m 0 460 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 219.9032 338.9186 Tm (Figure 4.19)Tj /T1_1 1 Tf 5.695 0 Td [(The thr)18(ee time values associated with each \336le)]TJ 9.9976 0 0 9.9976 129.5691 312.525 Tm [(Note )-118(the )-118(dif)18(fer)18(ence )-118(between )-118(the )-118(modi\336cation )-118(time )-118(\()]TJ /TT0 1 Tf 23.592 0 Td (st_mtim)Tj /T1_1 1 Tf 0.3682 Tc (\)a)Tj 0 Tc 5.401 0 Td [(nd )-118(the )-118(changed-status)]TJ -28.994 -1.2 Td [(time )-20(\()]TJ /TT0 1 Tf (st_ctim)Tj /T1_1 1 Tf [(\). )-270(The)-269(modi\336cation )-20(time )-20(indicates )-20(when )-20(the )-20(contents )-20(of )-20(the )-20(\336le )-20(wer)]TJ 0.2697 Tc 36.71 0 Td (el)Tj 0 Tc 1.04 0 Td (ast)Tj -37.75 -1.2 Td [(modi\336ed. )-545(The)-545(changed-status )-295(time )-295(indicates )-295(when )-295(the )-295(i-node )-295(of )-295(the )-295(\336le )-295(was )-295(last)]TJ T* [(modi\336ed. )-540(In)-539(this )-290(chapter)]TJ 0.5396 Tc 11.94 0 Td (,w)Tj 0 Tc 1.624 0 Td [(e\325ve )-290(described )-290(many )-290(operations )-290(that )-290(af)20(fect )-290(the )-290(i-node)]TJ -13.563 -1.2 Td [(without )-132(changing )-132(the )-132(actual )-132(contents )-132(of )-132(the )-132(\336le: )-132(changing )-132(the )-132(\336le )-132(access )-132(permissions,)]TJ T* [(changing )-301(the )-301(user )-301(ID, )-301(changing )-301(the )-301(number )-301(of )-301(links, )-301(and )-301(so )-301(on.)-797(Because )-301(all )-301(the)]TJ T* [(information )-142(in )-142(the )-142(i-node )-142(is )-142(stor)18(ed )-142(separately )-142(fr)18(om )-142(the )-142(actual )-142(contents )-142(of )-142(the )-142(\336le, )-142(we)]TJ T* (need the changed-status time, in addition to the modi\336cation time.)Tj 1.8 -1.2 Td [(Note )-111(that )-111(the )-111(system )-111(does )-111(not )-111(maintain )-111(the )-111(last-access )-111(time )-111(for )-111(an )-111(i-node.)-611(This )-111(is)]TJ -1.8 -1.2 Td (why the functions)Tj /TT0 1 Tf 8.24 0 Td (access)Tj /T1_1 1 Tf 3.85 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (stat)Tj /T1_1 1 Tf 0.25 Tc (,f)Tj 0 Tc 3.233 0 Td [(or example, don\325t change any of the thr)18(ee times.)]TJ -15.466 -1.2 Td [(The )-63(access )-63(time )-63(is )-63(often )-63(used )-63(by )-63(system )-63(administrators )-63(to )-63(delete )-63(\336les )-63(that )-63(have )-63(not)]TJ -1.8 -1.2 Td [(been )-73(accessed )-73(for )-73(a )-73(certain )-73(amount )-73(of )-73(time.)-573(The )-73(classic )-73(example )-73(is )-73(the )-73(r)18(emoval )-73(of )-73(\336les)]TJ T* (named)Tj /TT0 1 Tf 3.552 0 Td (a.out)Tj /T1_1 1 Tf 3.497 0 Td (or)Tj /TT0 1 Tf 1.438 0 Td (core)Tj /T1_1 1 Tf 2.897 0 Td [(that )-247(haven\325t )-247(been )-247(accessed )-247(in )-247(the )-247(past )-247(week.)-747(The)]TJ /TT0 1 Tf 24.05 0 Td (find)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj -38.667 -1.24 Td (command is often used for this type of operation.)Tj 1.8 -1.2 Td [(The )-201(modi\336cation )-201(time )-201(and )-201(the )-201(changed-status )-201(time )-201(can )-201(be )-201(used )-201(to )-201(ar)18(chive )-201(only)]TJ -1.8 -1.2 Td (those \336les that have had their contents modi\336ed or their i-node mo\ di\336ed.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47046 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.18)]TJ 26.08 0 Td [(Cr)18(eating )-250(and )-250(Reading )-250(Symbolic )-250(Links)]TJ /T1_1 1 Tf 19.753 0 Td (123)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 664.2601 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (ln -s /no/such/file myfile)Tj /T1_2 1 Tf 22.8 0 Td [(cr)18(eate a symbolic link)]TJ /TT0 1 Tf -24 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (ls myfile)Tj /TT0 1 Tf -1.2 -1.189 Td (myfile )Tj 24 0 Td (ls)Tj /T1_2 1 Tf 1.8 0 Td (says it\325)Tj 0.25 Tc 2.806 0 Td (st)Tj 0 Tc 0.972 0 Td [(her)18(e)]TJ /TT0 1 Tf -29.578 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (cat myfile)Tj /T1_2 1 Tf 22.8 0 Td (so we try to look at it)Tj /TT0 1 Tf -24 -1.189 Td (cat: myfile: No such file or directory)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l myfile)Tj /T1_2 1 Tf 22.8 0 Td (try)Tj /TT0 1 Tf 1.472 0 Td (-l)Tj /T1_2 1 Tf 1.45 0 Td (option)Tj /TT0 1 Tf -26.922 -1.189 Td [(lrwxrwxrwx )-600(1)-600(sar )-3600(13)-600(Jan 22 00:26 myfile -> /no/such/file)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5921 582.0651 Tm [(The )-180(\336le)]TJ /TT0 1 Tf 3.909 0 Td (myfile)Tj /T1_0 1 Tf 4.03 0 Td [(does )-180(exist, )-180(yet)]TJ /TT0 1 Tf 6.997 0 Td (cat)Tj /T1_0 1 Tf 2.23 0 Td [(says )-180(ther)18(e)-430(is)-430(no)-430(such )-180(\336le, )-180(because)]TJ /TT0 1 Tf 16.159 0 Td (myfile)Tj /T1_0 1 Tf 4.03 0 Td [(is )-180(a)]TJ -37.355 -1.2 Td [(symbolic )-68(link )-68(and )-68(the )-68(\336le )-68(pointed )-68(to )-68(by )-68(the )-68(symbolic )-68(link )-68(doesn\325t )-68(exist.)-574(The)]TJ /TT0 1 Tf 34.59 0 Td (-l)Tj /T1_0 1 Tf 1.519 0 Td (option)Tj -36.109 -1.2 Td (to)Tj /TT0 1 Tf 1.215 0 Td (ls)Tj /T1_0 1 Tf 1.543 0 Td [(gives )-93(us )-93(two )-93(hints: )-93(the )-93(\336rst )-93(character )-93(is )-93(an)]TJ /TT0 1 Tf 19.585 0 Td (l)Tj /T1_0 1 Tf 0.3426 Tc (,w)Tj 0 Tc 2.027 0 Td [(hich )-93(means )-93(a )-93(symbolic )-93(link, )-93(and)]TJ -24.369 -1.2 Td [(the )-120(sequence)]TJ /TT0 1 Tf 6.178 0 Td (->)Tj /T1_0 1 Tf 1.57 0 Td [(also )-120(indicates )-120(a )-120(symbolic )-120(link.)-622(The)]TJ /TT0 1 Tf 16.313 0 Td (ls)Tj /T1_0 1 Tf 1.57 0 Td [(command )-120(has )-120(another )-120(option)]TJ -25.632 -1.2 Td (\()Tj /TT0 1 Tf (-F)Tj /T1_0 1 Tf 0.2846 Tc (\)t)Tj 0 Tc 2.477 0 Td [(hat )-35(appends )-35(an )-35(at-sign )-35(\(@\) )-35(to )-35(\336lenames )-35(that )-35(ar)]TJ 0.2846 Tc 20.716 0 Td (es)Tj 0 Tc 1.188 0 Td [(ymbolic )-35(links, )-35(which )-35(can )-35(help )-35(us)]TJ -24.38 -1.2 Td [(spot symbolic links in a dir)18(ectory listing without the)]TJ /TT0 1 Tf 23.333 0 Td (-l)Tj /T1_0 1 Tf 1.45 0 Td (option.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5221.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 11.9986 0 0 11.9986 93.5888 486.0417 Tm [(4.18 )-776(Creating)-556(and )-278(Reading )-278(Symbolic )-278(Links)]TJ /T1_0 1 Tf 0.25 Tc 9.9988 0 0 9.9988 129.5844 462.0445 Tm (As)Tj 0 Tc 1.452 0 Td [(ymbolic link is cr)18(eated with either the)]TJ /TT0 1 Tf 16.937 0 Td (symlink)Tj /T1_0 1 Tf 4.45 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (symlinkat)Tj /T1_0 1 Tf 5.65 0 Td (function.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5824 440.5471 Tm (#include )Tj 0 -1.902 TD (int symlink\(const char *)Tj /T1_2 1 Tf (actualpath)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 20.439 0 Td (onst char *)Tj /T1_2 1 Tf (sympath)Tj /TT0 1 Tf (\);)Tj -20.439 -1.902 Td (int symlinkat\(const char *)Tj /T1_2 1 Tf (actualpath)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 21.639 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (sympath)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -0.766 -1.902 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT3 1 Tf 9.213 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3847.25 cm 0 0 m 0 649 l 3900 649 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 0.3912 Tc 9.9982 0 0 9.9982 129.5767 366.374 Tm (An)Tj 0 Tc 1.751 0 Td [(ew )-141(dir)18(ectory )-141(entry)111(,)]TJ /T1_2 1 Tf 8.989 0 Td (sympath)Tj /T1_0 1 Tf [(,)-391(is)-391(c)]TJ -0.018 Tc (re)Tj 0 Tc 6.491 0 Td [(ated )-141(that )-141(points )-141(to)]TJ /T1_2 1 Tf 8.856 0 Td (actualpath)Tj /T1_0 1 Tf 0.6411 Tc (.I)Tj 0 Tc 5.467 0 Td [(t)-391(is)-391(not )-141(r)18(equir)18(ed)]TJ -31.555 -1.2 Td (that)Tj /T1_2 1 Tf 2.071 0 Td (actualpath)Tj /T1_0 1 Tf 4.576 0 Td [(exist )-87(when )-87(the )-87(symbolic )-87(link )-87(is )-87(cr)19(eated. )-337(\(W)]TJ 0.3368 Tc 19.638 0 Td (es)Tj 0 Tc 1.24 0 Td [(aw )-87(this )-87(in )-87(the )-87(example )-87(at)]TJ -27.524 -1.2 Td [(the )-155(end )-155(of )-155(the )-155(pr)17(evious )-155(section.\))-655(Also,)]TJ /T1_2 1 Tf 18.262 0 Td (actualpath)Tj /T1_0 1 Tf 4.644 0 Td (and)Tj /T1_2 1 Tf 2.098 0 Td (sympath)Tj /T1_0 1 Tf 3.849 0 Td [(need )-155(not )-155(r)18(eside )-155(in )-155(the)]TJ -28.853 -1.2 Td (same \336le system.)Tj 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.217 0 Td (symlinkat)Tj /T1_0 1 Tf 5.943 0 Td [(function )-293(is )-293(similar )-293(to)]TJ /TT0 1 Tf 10.541 0 Td (symlink)Tj /T1_0 1 Tf 0.543 Tc (,b)Tj 0 Tc 5.546 0 Td [(ut )-293(the)]TJ /T1_2 1 Tf 3.402 0 Td (sympath)Tj /T1_0 1 Tf 3.987 0 Td [(ar)18(gument )-293(is)]TJ -33.436 -1.2 Td [(evaluated )-318(r)18(elative )-318(to )-318(the )-318(dir)18(ectory )-318(r)18(efer)18(enced )-318(by )-318(the )-318(open )-318(\336le )-318(descriptor )-318(for )-318(that)]TJ -0 -1.2 Td [(dir)18(ectory )-78(\(speci\336ed )-78(by )-78(the)]TJ /T1_2 1 Tf 12.1 0 Td (fd)Tj /T1_0 1 Tf 1.106 0 Td [(ar)18(gument\). )-328(If)-328(the)]TJ /T1_2 1 Tf 8.18 0 Td (sympath)Tj /T1_0 1 Tf 3.772 0 Td [(ar)18(gument )-78(speci\336es )-78(an )-78(absolute)]TJ -25.159 -1.2 Td [(pathname )-228(or )-228(if )-228(the)]TJ /T1_2 1 Tf 9.315 0 Td (fd)Tj /T1_0 1 Tf 1.256 0 Td [(ar)18(gument )-228(has )-228(the )-228(special )-228(value)]TJ /TT0 1 Tf 15.055 0 Td (AT_FDCWD)Tj /T1_0 1 Tf 0.4775 Tc (,t)Tj 0 Tc 5.854 0 Td (hen)Tj /TT0 1 Tf 2.12 0 Td (symlinkat)Tj /T1_0 1 Tf -33.6 -1.2 Td (behaves the same way as)Tj /TT0 1 Tf 11.319 0 Td (symlink)Tj /T1_0 1 Tf (.)Tj -9.519 -1.2 Td [(Because )-43(the)]TJ /TT0 1 Tf 5.514 0 Td (open)Tj /T1_0 1 Tf 2.693 0 Td [(function )-43(follows )-43(a )-43(symbolic )-43(link, )-43(we )-43(need )-43(a )-43(way )-43(to )-43(open )-43(the )-43(link)]TJ -10.007 -1.2 Td [(itself )-4(and )-4(r)18(ead )-4(the )-4(name )-4(in )-4(the )-4(link.)-505(The)]TJ /TT0 1 Tf 18.076 0 Td (readlink)Tj /T1_0 1 Tf 5.054 0 Td (and)Tj /TT0 1 Tf 1.947 0 Td (readlinkat)Tj /T1_0 1 Tf 6.254 0 Td [(functions )-4(do )-4(this.)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.5735 224.8995 Tm (#include )Tj T* (ssize_t readlink\(const char* restrict)Tj /T1_2 1 Tf 22.8 0 Td (pathname)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 5.744 0 Td (har *restrict)Tj /T1_2 1 Tf 8.4 0 Td (buf)Tj /TT0 1 Tf (,)Tj -26.744 -1.189 Td (size_t)Tj /T1_2 1 Tf 4.2 0 Td (bufsize)Tj /TT0 1 Tf (\);)Tj -14.4 -1.902 Td (ssize_t readlinkat\(int)Tj /T1_2 1 Tf 13.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char* restrict)Tj /T1_2 1 Tf 12 0 Td (pathname)Tj /TT0 1 Tf (,)Tj -16.978 -1.189 Td (char *restrict)Tj /T1_2 1 Tf 9 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (bufsize)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -10.775 -1.902 Td [(Both r)18(eturn: number of bytes r)18(ead if OK,)]TJ /TT3 1 Tf 18.142 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1477.25 cm 0 0 m 0 862 l 3900 862 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47047 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (120)Tj /T1_1 1 Tf 3.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.241 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(3. )-633(If)-459(either)]TJ /T1_2 1 Tf 5.774 0 Td (oldname)Tj /T1_1 1 Tf 3.848 0 Td (or)Tj /T1_2 1 Tf 1.4 0 Td (newname)Tj /T1_1 1 Tf -0.018 Tc 4.293 0 Td (re)Tj 0 Tc 0.856 0 Td [(fers )-209(to )-209(a )-209(symbolic )-209(link, )-209(then )-209(the )-209(link )-209(itself )-209(is)]TJ -14.538 -1.2 Td [(pr)18(ocessed, not the \336le to which it r)18(esolves.)]TJ -1.633 -1.84 Td [(4. )-633(W)]TJ 0.4277 Tc 2.541 0 Td (ec)Tj 0 Tc 1.351 0 Td [(an\325t )-178(r)18(ename )-178(dot )-178(or )-178(dot-dot.)-676(Mor)]TJ 0.4278 Tc 15.216 0 Td (ep)Tj -0.018 Tc 1.508 0 Td (re)Tj 0 Tc 0.856 0 Td (cisely)Tj 0.4278 Tc 2.374 0 Td (,n)Tj 0 Tc 1.26 0 Td [(either )-178(dot )-178(nor )-178(dot-dot )-178(can)]TJ -23.473 -1.2 Td (appear as the last component of)Tj /T1_2 1 Tf 14.296 0 Td (oldname)Tj /T1_1 1 Tf 3.639 0 Td (or)Tj /T1_2 1 Tf 1.191 0 Td (newname)Tj /T1_1 1 Tf (.)Tj -20.759 -1.84 Td [(5. )-633(As)]TJ 0.4194 Tc 3.254 0 Td (as)Tj 0 Tc 1.343 0 Td [(pecial )-169(case, )-169(if)]TJ /T1_2 1 Tf 6.585 0 Td (oldname)Tj /T1_1 1 Tf 3.808 0 Td (and)Tj /T1_2 1 Tf 2.112 0 Td (newname)Tj /T1_1 1 Tf -0.018 Tc 4.253 0 Td (re)Tj 0 Tc 0.856 0 Td [(fer )-169(to )-169(the )-169(same )-169(\336le, )-169(the )-169(function)]TJ -0.018 Tc -20.58 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (turns successfully without changing anything.)Tj -4.289 -2.4 Td (If)Tj /T1_2 1 Tf 0.965 0 Td (newname)Tj /T1_1 1 Tf 4.129 0 Td [(alr)18(eady )-45(exists, )-45(we )-45(need )-45(permissions )-45(as )-45(if )-45(we )-45(wer)]TJ 0.2954 Tc 21.741 0 Td (ed)Tj 0 Tc 1.385 0 Td [(eleting )-45(it.)-545(Also, )-45(because)]TJ -28.221 -1.2 Td (we\325r)Tj 0.3387 Tc 1.968 0 Td (er)Tj 0 Tc 1.195 0 Td [(emoving )-89(the )-89(dir)18(ectory )-89(entry )-89(for)]TJ /T1_2 1 Tf 14.62 0 Td (oldname)Tj /T1_1 1 Tf 3.728 0 Td [(and )-89(possibly )-89(cr)19(eating )-89(a )-89(dir)18(ectory )-89(entry)]TJ -21.51 -1.2 Td (for)Tj /T1_2 1 Tf 1.885 0 Td (newname)Tj /T1_1 1 Tf [(,)-611(we)-611(n)1(eed )-361(write )-361(permission )-361(and )-361(execute )-361(permission )-361(in )-361(the )-361(dir)21(ectory)]TJ -1.885 -1.2 Td (containing)Tj /T1_2 1 Tf 4.95 0 Td (oldname)Tj /T1_1 1 Tf 3.639 0 Td [(and in the dir)18(ectory containing)]TJ /T1_2 1 Tf 13.928 0 Td (newname)Tj /T1_1 1 Tf (.)Tj -20.717 -1.2 Td (The)Tj /TT0 1 Tf 2.065 0 Td (renameat)Tj /T1_1 1 Tf 5.191 0 Td [(function )-141(pr)18(ovides )-141(the )-141(same )-141(functionality )-141(as )-141(the)]TJ /TT0 1 Tf 21.995 0 Td (rename)Tj /T1_1 1 Tf 3.991 0 Td (function,)Tj -35.043 -1.2 Td [(except )-315(when )-315(either)]TJ /T1_2 1 Tf 9.57 0 Td (oldname)Tj /T1_1 1 Tf 3.954 0 Td (or)Tj /T1_2 1 Tf 1.506 0 Td (newname)Tj /T1_1 1 Tf -0.018 Tc 4.399 0 Td (re)Tj 0 Tc 0.856 0 Td [(fers )-315(to )-315(a )-315(r)18(elative )-315(pathname.)-816(If)]TJ /T1_2 1 Tf 15.326 0 Td (oldname)Tj /T1_1 1 Tf -35.611 -1.2 Td [(speci\336es )-17(a )-17(r)18(elative )-17(pathname, )-17(it )-17(is )-17(evaluated )-17(r)21(elative )-16(to )-16(the )-16(dir)18(ectory )-16(r)16(efer)18(enced )-16(by)]TJ /T1_2 1 Tf 36.75 0 Td (oldfd)Tj /T1_1 1 Tf (.)Tj -36.75 -1.2 Td [(Similarly)111(,)]TJ /T1_2 1 Tf 4.469 0 Td (newname)Tj /T1_1 1 Tf 4.141 0 Td [(is )-58(evaluated )-58(r)18(elative )-58(to )-58(the )-58(dir)18(ectory )-58(r)20(efer)18(enced )-58(by)]TJ /T1_2 1 Tf 22.871 0 Td (newfd)Tj /T1_1 1 Tf 2.753 0 Td (if)Tj /T1_2 1 Tf 0.932 0 Td (newname)Tj /T1_1 1 Tf -35.166 -1.2 Td [(speci\336es )-19(a )-19(r)18(elative )-19(pathname.)-519(Either )-19(the)]TJ /T1_2 1 Tf 18.192 0 Td (oldfd)Tj /T1_1 1 Tf 2.269 0 Td (or)Tj /T1_2 1 Tf 1.21 0 Td (newfd)Tj /T1_1 1 Tf 2.714 0 Td [(ar)18(guments )-19(\(or )-19(both\) )-19(can )-19(be )-19(set )-19(to)]TJ /TT0 1 Tf -24.384 -1.2 Td (AT_FDCWD)Tj /T1_1 1 Tf 5.05 0 Td [(to evaluate the corr)18(esponding pathname r)18(elative to the curr)18(ent dir)18(ectory)111(.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5935 428.1743 Tm [(4.17 )-776(Symbolic)-556(Links)]TJ /T1_1 1 Tf 0.3843 Tc 9.9994 0 0 9.9994 129.5913 404.1757 Tm (As)Tj 0 Tc 1.586 0 Td [(ymbolic )-134(link )-134(is )-134(an )-134(indir)18(ect )-134(pointer )-134(to )-134(a )-134(\336le, )-134(unlike )-134(the )-134(har)]TJ 0.3843 Tc 26.574 0 Td (dl)Tj 0 Tc 1.286 0 Td [(inks )-134(described )-134(in )-134(the)]TJ -29.447 -1.2 Td [(pr)18(evious )-103(section, )-103(which )-103(pointed )-103(dir)19(ectly )-103(to )-103(the )-103(i-node )-103(of )-103(the )-103(\336le.)-603(Symbolic )-103(links )-103(wer)22(e)]TJ 0 -1.2 TD [(intr)18(oduced to get ar)18(ound the limitations of har)]TJ 0.25 Tc 20.548 0 Td (dl)Tj 0 Tc 1.152 0 Td (inks.)Tj 0.883 Tc -19.9 -2.4 Td (\245H)Tj 0 Tc 2.321 0 Td (ar)Tj 0.4399 Tc 0.877 0 Td (dl)Tj 0 Tc 1.342 0 Td [(inks )-190(normally )-190(r)18(equir)]TJ 0.4399 Tc 9.464 0 Td (et)Tj 0 Tc 1.245 0 Td [(hat )-190(the )-190(link )-190(and )-190(the )-190(\336le )-190(r)19(eside )-190(in )-190(the )-190(same )-190(\336le)]TJ -13.76 -1.2 Td (system.)Tj 0.883 Tc -1.489 -1.6 Td (\245O)Tj 0 Tc 2.275 0 Td [(nly )-36(the )-36(super)8(user )-36(can )-36(cr)18(eate )-36(a )-36(har)]TJ 0.286 Tc 15.017 0 Td (dl)Tj 0 Tc 1.188 0 Td [(ink )-36(to )-36(a )-36(dir)18(ectory )-36(\(when )-36(supported )-36(by )-36(the)]TJ -16.991 -1.2 Td (underlying \336le system\).)Tj -3.289 -2.4 Td (Ther)Tj 0.2531 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.232 0 Td [(re )-39(n)]TJ 0.2531 Tc 1.691 0 Td (o\336)Tj 0 Tc 1.404 0 Td [(le )-3(system )-3(limitations )-3(on )-3(a )-3(symbolic )-3(link )-3(and )-3(what )-3(it )-3(points )-3(to, )-3(and )-3(anyone)]TJ -6.378 -1.2 Td [(can )-45(cr)18(eate )-45(a )-45(symbolic )-45(link )-45(to )-45(a )-45(dir)15(ectory)]TJ 0.5453 Tc 17.693 0 Td (.S)Tj 0 Tc 1.32 0 Td [(ymbolic )-45(links )-45(ar)]TJ 0.2953 Tc 7.176 0 Td (et)Tj 0 Tc 1.1 0 Td [(ypically )-45(used )-45(to )-45(\324)36(\324move\325)]TJ 0.2953 Tc 10.638 0 Td (\325a)Tj 0 Tc -37.927 -1.2 Td (\336le or an entir)Tj 0.25 Tc 6.203 0 Td (ed)Tj 0 Tc 1.34 0 Td [(ir)18(ectory hierar)18(chy to another location on a system.)]TJ -5.743 -1.2 Td [(When )-16(using )-16(functions )-16(that )-16(r)18(efer )-16(to )-16(a )-16(\336le )-16(by )-16(name, )-16(we )-16(always )-16(need )-16(to )-16(know )-16(whether)]TJ -1.8 -1.2 Td [(the )-361(function )-361(follows )-361(a )-361(symbolic )-361(link.)-863(If )-361(the )-361(function )-361(follows )-361(a )-361(symbolic )-361(link, )-361(a)]TJ T* [(pathname )-135(ar)18(gument )-135(to )-135(the )-135(function )-135(r)18(efers )-135(to )-135(the )-135(\336le )-135(pointed )-135(to )-135(by )-135(the )-135(symbolic )-135(link.)]TJ T* [(Otherwise, )-84(a )-84(pathname )-84(ar)18(gument )-84(r)16(efers )-84(to )-84(the )-84(link )-84(itself, )-84(not )-84(the )-84(\336le )-84(pointed )-84(to )-84(by )-84(the)]TJ T* [(link. )-345(Figur)]TJ 0.345 Tc 4.948 0 Td (e4)Tj 0 Tc 1.324 0 Td [(.17 )-95(summarizes )-95(whether )-95(the )-95(functions )-95(described )-95(in )-95(this )-95(chapter )-95(follow )-95(a)]TJ -6.272 -1.2 Td [(symbolic )-39(link.)-540(The )-39(functions)]TJ /TT0 1 Tf 13.17 0 Td (mkdir)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.539 0 Td (mkfifo)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.139 0 Td (mknod)Tj /T1_1 1 Tf 0.2893 Tc (,a)Tj 0 Tc 4.039 0 Td (nd)Tj /TT0 1 Tf 1.482 0 Td (rmdir)Tj /T1_1 1 Tf 3.289 0 Td [(do )-39(not )-39(appear )-39(in )-39(this)]TJ -29.66 -1.2 Td [(\336gur)18(e, )-308(as )-308(they )-308(r)18(eturn )-308(an )-308(err)18(or )-308(when )-308(the )-308(pathname )-308(is )-308(a )-308(symbolic )-308(link.)-807(Also, )-308(the)]TJ 0 -1.2 Td [(functions )-212(that )-212(take )-212(a )-212(\336le )-212(descriptor )-212(ar)18(gument, )-212(such )-212(as)]TJ /TT0 1 Tf 25.8 0 Td (fstat)Tj /T1_1 1 Tf 3.462 0 Td (and)Tj /TT0 1 Tf 2.155 0 Td (fchmod)Tj /T1_1 1 Tf 0.4616 Tc (,a)Tj -0.018 Tc 4.812 0 Td [(re )-248(n)]TJ 0 Tc 1.9 0 Td (ot)Tj -38.128 -1.2 Td [(listed, )-327(as )-327(the )-327(function )-327(that )-327(r)18(eturns )-327(the )-327(\336le )-327(descriptor )-327(\(usually)]TJ /TT0 1 Tf 30.256 0 Td (open)Tj /T1_1 1 Tf 0.5772 Tc (\)h)Tj 0 Tc 3.892 0 Td [(andles )-327(the)]TJ -34.149 -1.2 Td [(symbolic )-144(link.)-644(Historically)]TJ 0.3939 Tc 12.072 0 Td (,i)Tj 0 Tc 0.935 0 Td [(mplementations )-144(have )-144(dif)18(fer)18(ed )-144(in )-144(whether)]TJ /TT0 1 Tf 19.334 0 Td (chown)Tj /T1_1 1 Tf 3.394 0 Td (follows)Tj -35.735 -1.2 Td [(symbolic links.)-500(In all modern systems, however)74(,)]TJ /TT0 1 Tf 21.701 0 Td (chown)Tj /T1_1 1 Tf 3.25 0 Td (does follow symbolic links.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47048 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.16)]TJ /TT0 1 Tf 27.923 0 Td (rename)Tj /T1_0 1 Tf 4.1 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (renameat)Tj /T1_0 1 Tf 5.3 0 Td (Functions)Tj /T1_1 1 Tf -0.037 Tc 6.354 0 Td (11)Tj 0 Tc 0.963 0 Td (9)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-253(super)8(user )-253(can )-253(call)]TJ /TT0 1 Tf 11.132 0 Td (unlink)Tj /T1_0 1 Tf 4.103 0 Td (with)Tj /T1_2 1 Tf 2.536 0 Td (pathname)Tj /T1_0 1 Tf 4.447 0 Td [(specifying )-253(a )-253(dir)18(ectory )-253(if )-253(the )-253(\336le)]TJ -24.018 -1.2 Td [(system )-13(supports )-13(it, )-13(but )-13(the )-13(function)]TJ /TT0 1 Tf 16.034 0 Td (rmdir)Tj /T1_0 1 Tf 3.263 0 Td [(should )-13(be )-13(used )-13(instead )-13(to )-13(unlink )-13(a )-13(dir)17(ectory)111(.)]TJ -0.092 Tc -19.297 -1.2 Td [(We )-184(d)]TJ 0 Tc 2.248 0 Td (escribe the)Tj /TT0 1 Tf 4.952 0 Td (rmdir)Tj /T1_0 1 Tf 3.25 0 Td (function in Section 4.21.)Tj -0.092 Tc -8.65 -1.2 Td [(We )-429(c)]TJ 0 Tc 2.326 0 Td [(an )-245(also )-245(unlink )-245(a )-245(\336le )-245(or )-245(a )-245(dir)18(ectory )-245(with )-245(the)]TJ /TT0 1 Tf 21.463 0 Td (remove)Tj /T1_0 1 Tf 4.095 0 Td [(function. )-495(For)]TJ 0.4954 Tc 6.695 0 Td (a\336)Tj 0 Tc 1.6 0 Td (le,)Tj /TT0 1 Tf -37.98 -1.2 Td (remove)Tj /T1_0 1 Tf 3.85 0 Td (is identical to)Tj /TT0 1 Tf 6.152 0 Td (unlink)Tj /T1_0 1 Tf 0.5 Tc (.F)Tj 0 Tc 4.906 0 Td [(or a dir)18(ectory)111(,)]TJ /TT0 1 Tf 6.355 0 Td (remove)Tj /T1_0 1 Tf 3.85 0 Td (is identical to)Tj /TT0 1 Tf 6.152 0 Td (rmdir)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 601.8639 Tm (#include )Tj 0 -1.783 TD (int remove\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 26.851 -1.783 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5653.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 183.578 544.9346 Tm [(ISO )-3(C )-3(speci\336es )-3(the)]TJ /TT0 1 Tf 8.502 0 Td (remove)Tj /T1_0 1 Tf 3.853 0 Td [(function )-3(to )-3(delete )-3(a )-3(\336le.)-503(The )-3(name )-3(was )-3(changed )-3(fr)18(om )-3(the )-3(historical)]TJ -12.355 -1.25 Td [(UNIX )-8(name )-8(of)]TJ /TT0 1 Tf 6.71 0 Td (unlink)Tj /T1_0 1 Tf 3.858 0 Td [(because )-8(most )-8(non-UNIX )-8(systems )-8(that )-8(implement )-8(the )-8(C )-8(standar)]TJ 0.2583 Tc 27.863 0 Td (dd)Tj 0 Tc 1.48 0 Td (idn\325t)Tj -39.912 -1.25 Td (support the concept of links to a \336le at the time.)Tj /TT2 1 Tf 11.9986 0 0 11.9986 93.5886 488.9413 Tm (4.16)Tj /TT3 1 Tf 3 0 Td (rename)Tj /TT2 1 Tf 4.156 0 Td (and)Tj /TT3 1 Tf 2.334 0 Td (renameat)Tj /TT2 1 Tf 5.356 0 Td (Functions)Tj /T1_0 1 Tf 0.25 Tc 9.9988 0 0 9.9988 129.5838 464.9442 Tm (A\336)Tj 0 Tc 1.633 0 Td [(le or a dir)18(ectory is r)18(enamed with either the)]TJ /TT0 1 Tf 19.084 0 Td (rename)Tj /T1_0 1 Tf 3.85 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (renameat)Tj /T1_0 1 Tf 5.05 0 Td (function.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.582 445.8465 Tm (#include )Tj T* (int rename\(const char *)Tj /T1_2 1 Tf (oldname)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 18.989 0 Td (onst char *)Tj /T1_2 1 Tf (newname)Tj /TT0 1 Tf (\);)Tj -18.989 -1.783 Td (int renameat\(int)Tj /T1_2 1 Tf 10.2 0 Td (oldfd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.8 0 Td (onst char *)Tj /T1_2 1 Tf (oldname)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 11.789 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (newfd)Tj /TT0 1 Tf (,)Tj -19.789 -1.189 Td (const char *)Tj /T1_2 1 Tf (newname)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 17.451 -1.783 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT1 1 Tf 9.213 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3825.25 cm 0 0 m 0 724 l 3900 724 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 183.567 362.1848 Tm (The)Tj /TT0 1 Tf 2.213 0 Td (rename)Tj /T1_0 1 Tf 4.139 0 Td [(function )-289(is )-289(de\336ned )-289(by )-289(ISO )-289(C )-289(for )-289(\336les.)-789(\(The )-289(C )-289(standar)]TJ 0.5394 Tc 26.258 0 Td (dd)Tj 0 Tc 1.761 0 Td [(oesn\325t )-289(deal )-289(with)]TJ -34.372 -1.25 Td [(dir)18(ectories.\) )-250(POSIX.1)-250(expanded the de\336nition to include dir)18(ectories and symbolic links.)]TJ 9.9982 0 0 9.9982 147.5731 332.1902 Tm (Ther)Tj 0.3134 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.292 0 Td [(re )-99(s)]TJ 0 Tc 1.593 0 Td [(everal )-63(conditions )-63(to )-63(describe )-63(for )-63(these )-63(functions, )-63(depending )-63(on )-63(whether)]TJ /T1_2 1 Tf -6.737 -1.2 Td (oldname)Tj /T1_0 1 Tf -0.018 Tc 3.823 0 Td (re)Tj 0 Tc 0.856 0 Td [(fers )-184(to )-184(a )-184(\336le, )-184(a )-184(dir)17(ectory)111(,)-434(or)-434(a)-434(symbolic )-184(link.)]TJ -0.092 Tc 21.282 0 Td [(We )-368(m)]TJ 0 Tc 2.704 0 Td [(ust )-184(also )-184(describe )-184(what)]TJ -28.666 -1.2 Td (happens if)Tj /T1_2 1 Tf 4.893 0 Td (newname)Tj /T1_0 1 Tf 4.084 0 Td [(alr)18(eady exists.)]TJ -7.177 -2.16 Td [(1. )-633(If)]TJ /T1_2 1 Tf 2.604 0 Td (oldname)Tj /T1_0 1 Tf 3.69 0 Td [(speci\336es )-51(a )-51(\336le )-51(that )-51(is )-51(not )-51(a )-51(dir)19(ectory)]TJ 0.3009 Tc 16.045 0 Td (,t)Tj 0 Tc 0.877 0 Td [(hen )-51(we )-51(ar)]TJ 0.3009 Tc 4.435 0 Td (er)Tj 0 Tc 1.157 0 Td [(enaming )-51(a )-51(\336le )-51(or )-51(a)]TJ -27.174 -1.2 Td [(symbolic )-138(link.)-638(In )-138(this )-138(case, )-138(if)]TJ /T1_2 1 Tf 13.801 0 Td (newname)Tj /T1_0 1 Tf 4.222 0 Td [(exists, )-138(it )-138(cannot )-138(r)18(efer )-138(to )-138(a )-138(dir)16(ectory)]TJ 0.6382 Tc 15.986 0 Td (.I)Tj 0 Tc 1.225 0 Td (f)Tj /T1_2 1 Tf -35.234 -1.2 Td (newname)Tj /T1_0 1 Tf 4.166 0 Td [(exists )-82(and )-82(is )-82(not )-82(a )-82(dir)19(ectory)111(,)-332(it)-332(is)-332(r)19(emoved, )-82(and)]TJ /T1_2 1 Tf 21.519 0 Td (oldname)Tj /T1_0 1 Tf 3.721 0 Td [(is )-82(r)18(enamed )-82(to)]TJ /T1_2 1 Tf -29.405 -1.2 Td (newname)Tj /T1_0 1 Tf 0.5968 Tc (.W)Tj 0.3468 Tc 5.589 0 Td (em)Tj 0 Tc 1.709 0 Td [(ust )-97(have )-97(write )-97(permission )-97(for )-97(the )-97(dir)18(ectory )-97(containing)]TJ /T1_2 1 Tf 24.88 0 Td (oldname)Tj /T1_0 1 Tf -32.178 -1.2 Td [(and the dir)18(ectory containing)]TJ /T1_2 1 Tf 12.805 0 Td (newname)Tj /T1_0 1 Tf 0.25 Tc (,s)Tj 0 Tc 4.758 0 Td (ince we ar)Tj 0.25 Tc 4.486 0 Td (ec)Tj 0 Tc 1.173 0 Td [(hanging both dir)18(ectories.)]TJ -24.855 -1.84 Td [(2. )-633(If)]TJ /T1_2 1 Tf 2.702 0 Td (oldname)Tj /T1_0 1 Tf 3.788 0 Td [(speci\336es )-149(a )-149(dir)18(ectory)]TJ 0.3992 Tc 8.959 0 Td (,t)Tj 0 Tc 0.975 0 Td [(hen )-149(we )-149(ar)]TJ 0.3993 Tc 4.631 0 Td (er)Tj 0 Tc 1.255 0 Td [(enaming )-149(a )-149(dir)17(ectory)]TJ 0.6493 Tc 9.086 0 Td (.I)Tj 0 Tc 1.236 0 Td (f)Tj /T1_2 1 Tf 0.732 0 Td (newname)Tj /T1_0 1 Tf -31.733 -1.2 Td [(exists, )-47(it )-47(must )-47(r)18(efer )-47(to )-47(a )-47(dir)16(ectory)]TJ 0.2973 Tc 14.696 0 Td (,a)Tj 0 Tc 1.047 0 Td [(nd )-47(that )-47(dir)18(ectory )-47(must )-47(be )-47(empty)]TJ 0.5472 Tc 14.441 0 Td (.\()Tj 0 Tc 1.13 0 Td [(When )-47(we)]TJ -31.314 -1.2 Td [(say )-61(that )-61(a )-61(dir)18(ectory )-61(is )-61(empty)113(,)-311(we)-311(m)1(ean )-61(that )-61(the )-61(only )-61(entries )-61(in )-61(the )-61(dir)18(ectory )-61(ar)21(e)]TJ 0 -1.2 Td [(dot )-6(and )-6(dot-dot.\))-505(If)]TJ /T1_2 1 Tf 9.001 0 Td (newname)Tj /T1_0 1 Tf 4.09 0 Td [(exists )-6(and )-6(is )-6(an )-6(empty )-6(dir)19(ectory)111(,)-256(it)-256(i)]TJ 0.2557 Tc (sr)Tj 0 Tc 16.714 0 Td [(emoved, )-6(and)]TJ /T1_2 1 Tf -29.805 -1.2 Td (oldname)Tj /T1_0 1 Tf 3.659 0 Td [(is )-19(r)18(enamed )-19(to)]TJ /T1_2 1 Tf 6.306 0 Td (newname)Tj /T1_0 1 Tf 0.5195 Tc (.A)Tj 0 Tc 5.381 0 Td (dditionally)Tj 0.2695 Tc 4.785 0 Td (,w)Tj 0 Tc 1.354 0 Td [(hen )-19(we\325r)]TJ 0.2695 Tc 3.881 0 Td (er)Tj 0 Tc 1.125 0 Td [(enaming )-19(a )-19(dir)17(ectory)111(,)]TJ /T1_2 1 Tf -26.491 -1.2 Td (newname)Tj /T1_0 1 Tf 4.297 0 Td [(cannot )-213(contain )-213(a )-213(path )-213(pr)18(e\336x )-213(that )-213(names)]TJ /T1_2 1 Tf 19.182 0 Td (oldname)Tj /T1_0 1 Tf 0.7132 Tc (.F)Tj 0 Tc 4.908 0 Td [(or )-213(example, )-213(we)]TJ -28.388 -1.2 Td [(can\325t )-482(r)18(ename)]TJ /TT0 1 Tf 6.893 0 Td (/usr/foo)Tj /T1_0 1 Tf 5.532 0 Td (to)Tj /TT0 1 Tf 1.604 0 Td (/usr/foo/testdir)Tj /T1_0 1 Tf 0.7318 Tc (,b)Tj 0 Tc 11.135 0 Td [(ecause )-482(the )-482(old )-482(name)]TJ -25.164 -1.2 Td (\()Tj /TT0 1 Tf (/usr/foo)Tj /T1_0 1 Tf [(\))-250(is)-250(a)-250(path pr)18(e\336x of the new name and cannot be r)18(emoved.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47049 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf -0.037 Tc 9 0 0 9 93.6 708 Tm (11)Tj 0 Tc 0.963 0 Td (6)Tj /T1_1 1 Tf 2.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.278 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(number )-102(is )-102(1267 )-102(has )-102(a )-102(type )-102(\336eld )-102(of )-102(\324)35(\324dir)18(ectory\325)]TJ 0.3522 Tc 20.646 0 Td (\325a)Tj 0 Tc 1.13 0 Td [(nd )-102(a )-102(link )-102(count )-102(that )-102(is )-102(gr)18(eater )-102(than )-102(or)]TJ -21.776 -1.2 Td [(equal )-172(to )-172(3.)]TJ -0.092 Tc 5.57 0 Td [(We )-356(k)]TJ 0 Tc 2.365 0 Td [(now )-172(that )-172(this )-172(link )-172(count )-172(is )-172(gr)18(eater )-172(than )-172(or )-172(equal )-172(to )-172(3 )-172(because, )-172(at )-172(a)]TJ -7.935 -1.2 Td [(minimum, )-150(the )-150(i-node )-150(is )-150(pointed )-150(to )-150(fr)18(om )-150(the )-150(dir)21(ectory )-150(entry )-150(that )-150(names )-150(it )-150(\(which )-150(we)]TJ 0 -1.2 TD [(don\325t )-46(show )-46(in )-46(Figur)]TJ 0.296 Tc 8.873 0 Td (e4)Tj 0 Tc 1.275 0 Td [(.15\), )-46(fr)18(om )-46(dot, )-46(and )-46(fr)18(om )-46(dot-dot )-46(in )-46(the)]TJ /TT0 1 Tf 17.464 0 Td (testdir)Tj /T1_1 1 Tf 4.496 0 Td [(dir)18(ectory)]TJ 0.546 Tc 3.914 0 Td (.N)Tj 0 Tc 1.627 0 Td (ote)Tj -37.649 -1.2 Td [(that )-56(every )-56(subdir)18(ectory )-56(in )-56(a )-56(par)18(ent )-56(dir)18(ectory )-56(causes )-56(the )-56(par)18(ent )-56(dir)18(ectory\325s )-56(link )-56(count )-56(to)]TJ T* [(be incr)18(eased by 1.)]TJ 1.8 -1.2 Td [(This )-279(format )-279(is )-279(similar )-279(to )-279(the )-279(classic )-279(format )-279(of )-279(the )-279(UNIX )-279(\336le )-279(system, )-279(which )-279(is)]TJ -1.8 -1.2 Td [(described )-201(in )-201(detail )-201(in )-201(Chapter )-201(4 )-201(of )-201(Bach)]TJ 19.244 0.04 Td ([)Tj 0.333 -0.04 Td (1986)Tj 2 0.04 Td (])Tj 0.7006 Tc 0.333 -0.04 Td (.R)Tj 0 Tc 1.619 0 Td [(efer )-201(to )-201(Chapter )-201(7 )-201(of )-201(McKusick )-201(et)]TJ -23.528 -1.2 Td (al.)Tj 1.377 0.04 Td ([)Tj 0.333 -0.04 Td (1996)Tj 2 0.04 Td (])Tj 0.669 -0.04 Td [(or )-86(Chapter )-86(8 )-86(of )-86(McKusick )-86(and )-86(Neville-Neil)]TJ 19.846 0.04 Td ([)Tj 0.333 -0.04 Td (2005)Tj 2 0.04 Td (])Tj 0.669 -0.04 Td [(for )-86(additional )-86(information)]TJ -27.229 -1.2 Td [(on )-87(the )-87(changes )-87(made )-87(with )-87(the )-87(Berkeley )-87(fast )-87(\336le )-87(system.)-591(See )-87(Chapter )-87(15 )-87(of )-87(McDougall)]TJ T* [(and )-33(Maur)18(o)]TJ 5.231 0.04 Td ([)Tj 0.333 -0.04 Td (2007)Tj 2 0.04 Td (])Tj 0.616 -0.04 Td [(for )-33(details )-33(on)]TJ /TT0 1 Tf 6.172 0 Td (UFS)Tj /T1_1 1 Tf 0.2828 Tc (,t)Tj 0 Tc 2.659 0 Td [(he )-33(Solaris )-33(version )-33(of )-33(the )-33(Berkeley )-33(fast )-33(\336le )-33(system.)]TJ -17.01 -1.2 Td [(For )-156(information )-156(on )-156(the)]TJ /TT0 1 Tf 10.912 0 Td (HFS)Tj /T1_1 1 Tf 2.206 0 Td [(\336le )-156(system )-156(format )-156(used )-156(in )-156(Mac )-156(OS )-156(X, )-156(see )-156(Chapter )-156(12 )-156(of)]TJ -13.119 -1.2 Td (Singh)Tj 2.786 0.04 Td ([)Tj 0.333 -0.04 Td (2006)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td (.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5948 488.9707 Tm (4.15)Tj /TT2 1 Tf 3 0 Td (link)Tj /TT1 1 Tf (,)Tj /TT2 1 Tf 3.234 0 Td (linkat)Tj /TT1 1 Tf (,)Tj /TT2 1 Tf 4.434 0 Td (unlink)Tj /TT1 1 Tf (,)Tj /TT2 1 Tf 4.434 0 Td (unlinkat)Tj /TT1 1 Tf 0.556 Tc (,a)Tj 0 Tc 6.19 0 Td (nd)Tj /TT2 1 Tf 1.778 0 Td (remove)Tj /TT1 1 Tf 4.156 0 Td (Functions)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5929 464.9721 Tm [(As )-37(we )-37(saw )-37(in )-37(the )-37(pr)18(evious )-37(section, )-37(a )-37(\336le )-37(can )-37(have )-37(multiple )-37(dir)18(ectory )-37(entries )-37(pointing )-37(to)]TJ T* [(its )-51(i-node.)]TJ -0.092 Tc 4.985 0 Td [(We )-235(c)]TJ 0 Tc 2.132 0 Td [(an )-51(use )-51(either )-51(the)]TJ /TT0 1 Tf 7.732 0 Td (link)Tj /T1_1 1 Tf 2.701 0 Td [(function )-51(or )-51(the)]TJ /TT0 1 Tf 6.939 0 Td (linkat)Tj /T1_1 1 Tf 3.901 0 Td [(function )-51(to )-51(cr)18(eate )-51(a )-51(link)]TJ -28.391 -1.2 Td (to an existing \336le.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5917 418.2749 Tm (#include )Tj 0 -2.021 TD (int link\(const char *)Tj /T1_2 1 Tf (existingpath)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 19.4 0 Td (onst char *)Tj /T1_2 1 Tf (newpath)Tj /TT0 1 Tf (\);)Tj -19.4 -2.021 Td (int linkat\(int)Tj /T1_2 1 Tf 9 0 Td (efd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.967 0 Td (onst char *)Tj /T1_2 1 Tf (existingpath)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 13.4 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (nfd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.134 0 Td (onst char *)Tj /T1_2 1 Tf (newpath)Tj /TT0 1 Tf (,)Tj -23.701 -1.189 Td (int)Tj /T1_2 1 Tf 2.4 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 16.251 -2.021 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT3 1 Tf 9.213 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3485.25 cm 0 0 m 0 788 l 3900 788 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 328.9905 Tm [(These )-140(functions )-140(cr)18(eate )-140(a )-140(new )-140(dir)18(ectory )-140(entry)110(,)]TJ /T1_2 1 Tf 20.941 0 Td (newpath)Tj /T1_1 1 Tf 0.3902 Tc (,t)Tj 0 Tc 4.41 0 Td [(hat )-140(r)18(efer)18(ences )-140(the )-140(existing )-140(\336le)]TJ /T1_2 1 Tf -25.352 -1.2 Td (existingpath)Tj /T1_1 1 Tf 0.5193 Tc (.I)Tj 0.2693 Tc 6.106 0 Td (ft)Tj 0 Tc 0.928 0 Td (he)Tj /T1_2 1 Tf 1.33 0 Td (newpath)Tj /T1_1 1 Tf 3.713 0 Td [(alr)18(eady )-19(exists, )-19(an )-19(err)18(or )-19(is )-19(r)16(eturned. )-269(Only)-270(the )-19(last )-19(component)]TJ -12.078 -1.2 Td (of the)Tj /T1_2 1 Tf 2.766 0 Td (newpath)Tj /T1_1 1 Tf 3.694 0 Td [(is cr)18(eated. )-250(The)]TJ -0.018 Tc 6.855 0 Td (re)Tj 0 Tc 0.856 0 Td [(st of the path must alr)18(eady exist.)]TJ -0.055 Tc -12.371 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-356(the)]TJ /TT0 1 Tf 3.506 0 Td (linkat)Tj /T1_1 1 Tf 4.206 0 Td [(function, )-356(the )-356(existing )-356(\336le )-356(is )-356(speci\336ed )-356(by )-356(both )-356(the)]TJ /T1_2 1 Tf 24.786 0 Td (efd)Tj /T1_1 1 Tf 1.773 0 Td (and)Tj /T1_2 1 Tf -37.307 -1.2 Td (existingpath)Tj /T1_1 1 Tf 5.305 0 Td [(ar)18(guments, )-55(and )-55(the )-55(new )-55(pathname )-55(is )-55(speci\336ed )-55(by )-55(both )-55(the)]TJ /T1_2 1 Tf 26.613 0 Td (nfd)Tj /T1_1 1 Tf 1.639 0 Td (and)Tj /T1_2 1 Tf 1.998 0 Td (newpath)Tj /T1_1 1 Tf -35.556 -1.2 Td [(ar)18(guments. )-466(By)-466(default, )-216(if )-216(either )-216(pathname )-216(is )-216(r)18(elative, )-216(it )-216(is )-216(evaluated )-216(r)20(elative )-216(to )-216(the)]TJ 0 -1.2 TD [(corr)18(esponding )-243(\336le )-243(descriptor)]TJ 0.7435 Tc 13.234 0 Td (.I)Tj 0.4935 Tc 1.331 0 Td (fe)Tj 0 Tc 1.306 0 Td [(ither )-243(\336le )-243(descriptor )-243(is )-243(set )-243(to)]TJ /TT0 1 Tf 13.737 0 Td (AT_FDCWD)Tj /T1_1 1 Tf 0.4935 Tc (,t)Tj 0 Tc 5.869 0 Td [(hen )-243(the)]TJ -35.477 -1.2 Td [(corr)18(esponding )-23(pathname, )-23(if )-23(it )-23(is )-23(a )-23(r)18(elative )-23(pathname, )-23(is )-23(evaluated )-23(r)14(elative )-23(to )-23(the )-23(curr)17(ent)]TJ T* [(dir)18(ectory)]TJ 0.9047 Tc 3.914 0 Td (.I)Tj 0.6547 Tc 1.492 0 Td (fe)Tj 0 Tc 1.467 0 Td [(ither )-405(pathname )-405(is )-405(absolute, )-405(then )-405(the )-405(corr)18(esponding )-405(\336le )-405(descriptor)]TJ -6.872 -1.2 Td [(ar)18(gument is ignor)18(ed.)]TJ 1.8 -1.2 Td [(When )-163(the )-163(existing )-163(\336le )-163(is )-163(a )-163(symbolic )-163(link, )-163(the)]TJ /T1_2 1 Tf 21.151 0 Td (\337ag)Tj /T1_1 1 Tf 1.902 0 Td [(ar)18(gument )-163(contr)18(ols )-163(whether )-163(the)]TJ /TT0 1 Tf -24.854 -1.2 Td (linkat)Tj /T1_1 1 Tf 3.908 0 Td [(function )-58(cr)18(eates )-58(a )-58(link )-58(to )-58(the )-58(symbolic )-58(link )-58(or )-58(to )-58(the )-58(\336le )-58(to )-58(which )-58(the )-58(symbolic)]TJ -3.908 -1.2 Td [(link )-79(points.)-579(If )-79(the)]TJ /TT0 1 Tf 8.363 0 Td (AT_SYMLINK_FOLLOW)Tj /T1_1 1 Tf 10.529 0 Td [(\337ag )-79(is )-79(set )-79(in )-79(the)]TJ /T1_2 1 Tf 7.514 0 Td (\337ag)Tj /T1_1 1 Tf 1.818 0 Td [(ar)18(gument, )-79(then )-79(a )-79(link )-79(is)]TJ -28.224 -1.2 Td [(cr)18(eated )-21(to )-21(the )-21(tar)18(get )-21(of )-21(the )-21(symbolic )-21(link.)-521(If )-21(this )-21(\337ag )-21(is )-21(clear)]TJ 0.2711 Tc 26.473 0 Td (,t)Tj 0 Tc 0.847 0 Td [(hen )-21(a )-21(link )-21(is )-21(cr)18(eated )-21(to )-21(the)]TJ -27.32 -1.2 Td (symbolic link itself.)Tj 1.8 -1.2 Td [(The )-29(cr)18(eation )-29(of )-29(the )-29(new )-29(dir)18(ectory )-29(entry )-29(and )-29(the )-29(incr)18(ement )-29(of )-29(the )-29(link )-29(count )-29(must )-29(be)]TJ -1.8 -1.2 Td [(an atomic operation.)-500(\(Recall the discussion of atomic operations in Section 3.1)55(1.\))]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47050 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.14)]TJ 38.136 0 Td [(File )-250(Systems)]TJ /T1_1 1 Tf -0.037 Tc 7.734 0 Td (11)Tj 0 Tc 0.963 0 Td (3)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(4.14 )-776(File)-556(Systems)]TJ /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(To )-262(a)]TJ 0 Tc 1.895 0 Td [(ppr)18(eciate )-78(the )-78(concept )-78(of )-78(links )-78(to )-78(a )-78(\336le, )-78(we )-78(need )-78(a )-78(conceptual )-78(understanding )-78(of )-78(the)]TJ -1.895 -1.2 Td [(str)8(uctur)18(e)-278(of)-278(t)-1(he )-28(UNIX )-28(\336le )-28(system.)-528(Understanding )-28(the )-28(dif)15(fer)18(ence )-28(between )-28(an )-28(i-node )-28(and)]TJ 0.25 Tc 0 -1.2 TD (ad)Tj 0 Tc 1.361 0 Td [(ir)18(ectory entry that points to an i-node is also useful.)]TJ -0.092 Tc 0.439 -1.2 Td (Va)Tj 0 Tc 1.13 0 Td [(rious )-235(implementations )-235(of )-235(the )-235(UNIX )-235(\336le )-235(system )-235(ar)]TJ 0.4852 Tc 23.362 0 Td (ei)Tj 0.4851 Tc 1.255 0 Td (nu)Tj 0 Tc 1.67 0 Td [(se )-235(today)]TJ 0.7351 Tc 3.816 0 Td (.S)Tj 0 Tc 1.51 0 Td [(olaris, )-235(for)]TJ -34.544 -1.2 Td [(example, )-52(supports )-52(several )-52(types )-52(of )-52(disk )-52(\336le )-52(systems: )-52(the )-52(traditional )-52(BSD-derived )-52(UNIX)]TJ T* [(\336le )-125(system )-125(\(called)]TJ /TT1 1 Tf 8.542 0 Td (UFS)Tj /T1_0 1 Tf [(\), )-125(a )-125(\336le )-125(system )-125(\(called)]TJ /TT1 1 Tf 12.175 0 Td (PCFS)Tj /T1_0 1 Tf [(\))-375(to)-375(r)18(ead )-125(and )-125(write )-125(DOS-formatted)]TJ -20.717 -1.2 Td [(diskettes, )-323(and )-323(a )-323(\336le )-323(system )-323(\(called)]TJ /TT1 1 Tf 17.215 0 Td (HSFS)Tj /T1_0 1 Tf [(\))-573(to)-573(r)17(ead )-323(CD )-323(\336le )-323(systems.)]TJ -0.092 Tc 15.886 0 Td [(We )-507(s)]TJ 0 Tc 2.384 0 Td [(aw )-323(one)]TJ -35.486 -1.2 Td [(dif)18(fer)18(ence )-108(between )-108(\336le )-108(system )-108(types )-108(in )-108(Figur)]TJ 0.3581 Tc 20.38 0 Td (e2)Tj 0 Tc 1.337 0 Td (.20.)Tj /TT1 1 Tf 2.108 0 Td (UFS)Tj /T1_0 1 Tf 2.158 0 Td [(is )-108(based )-108(on )-108(the )-108(Berkeley )-108(fast)]TJ -25.983 -1.2 Td (\336le system, which we describe in this section.)Tj 7.9995 0 0 7.9995 183.5892 528.9683 Tm [(Each )-116(\336le )-116(system )-116(type )-116(has )-116(its )-116(own )-116(characteristic )-116(featur)19(es )167(\321 )167(and)-366(some )-116(of )-116(these )-116(featur)18(es )-116(can )-116(be)]TJ 0 -1.25 Td [(confusing. )-417(For)-416(example, )-167(most )-167(UNIX )-167(\336le )-167(systems )-167(support )-167(case-sensitive )-167(\336lenames.)-665(Thus, )-167(if)]TJ 0 -1.25 TD [(you )-1(cr)18(eate )-1(one )-1(\336le )-1(named)]TJ /TT1 1 Tf 11.604 0 Td (file.txt)Tj /T1_0 1 Tf 5.051 0 Td [(and )-1(another )-1(named)]TJ /TT1 1 Tf 8.912 0 Td (file.TXT)Tj /T1_0 1 Tf 0.2515 Tc (,t)Tj 0 Tc 5.628 0 Td [(hen )-1(two )-1(distinct )-1(\336les )-1(ar)16(e)]TJ -31.195 -1.25 Td [(cr)18(eated. )-346(On)-346(Mac )-96(OS )-96(X, )-96(however)]TJ 0.3459 Tc 14.738 0 Td (,t)Tj 0 Tc 0.922 0 Td (he)Tj /TT1 1 Tf 1.407 0 Td (HFS)Tj /T1_0 1 Tf 2.146 0 Td [(\336le )-96(system )-96(is )-96(case-pr)18(eserving )-96(with )-96(case-insensitive)]TJ -19.213 -1.25 Td [(comparisons. )-462(Thus,)-462(if )-212(you )-212(cr)18(eate)]TJ /TT1 1 Tf 15.853 0 Td (file.txt)Tj /T1_0 1 Tf 0.4623 Tc (,w)Tj 0 Tc 6.346 0 Td [(hen )-212(you )-212(try )-212(to )-212(cr)17(eate)]TJ /TT1 1 Tf 10.414 0 Td (file.TXT)Tj /T1_0 1 Tf 0.4624 Tc (,y)Tj 0 Tc 6.068 0 Td [(ou )-212(will)]TJ -38.682 -1.25 Td (overwrite)Tj /TT1 1 Tf 4.591 0 Td (file.txt)Tj /T1_0 1 Tf 0.5308 Tc (.H)Tj 0 Tc 6.413 0 Td (owever)Tj 0.2808 Tc 3.224 0 Td (,o)Tj 0 Tc 1.077 0 Td [(nly )-31(the )-31(name )-31(used )-31(when )-31(the )-31(\336le )-31(was )-31(cr)18(eated )-31(is )-31(stor)18(ed )-31(in )-31(the)]TJ -15.304 -1.25 Td [(\336le )-73(system )-73(\(the )-73(case-pr)18(eserving )-73(aspect\).)-573(In )-73(fact, )-73(any )-73(permutation )-73(of )-73(upper)14(case )-73(and )-73(lower)17(case)]TJ 0 -1.25 Td [(letters )-116(in )-116(the )-116(sequence)]TJ /TT1 1 Tf 10.496 0 Td (f)Tj /T1_0 1 Tf (,)Tj /TT1 1 Tf 1.216 0 Td (i)Tj /T1_0 1 Tf (,)Tj /TT1 1 Tf 1.216 0 Td (l)Tj /T1_0 1 Tf (,)Tj /TT1 1 Tf 1.217 0 Td (e)Tj /T1_0 1 Tf (,)Tj /TT1 1 Tf 1.216 0 Td (.)Tj /T1_0 1 Tf (,)Tj /TT1 1 Tf 1.216 0 Td (t)Tj /T1_0 1 Tf (,)Tj /TT1 1 Tf 1.217 0 Td (x)Tj /T1_0 1 Tf (,)Tj /TT1 1 Tf 1.216 0 Td (t)Tj /T1_0 1 Tf 0.966 0 Td [(will )-116(match )-116(when )-116(sear)18(ching )-116(for )-116(the )-116(\336le )-116(\(the )-116(case-)]TJ -19.978 -1.25 Td [(insensitive )-44(comparison )-44(aspect\).)-544(As )-44(a )-44(consequence, )-44(besides)]TJ /TT1 1 Tf 26.443 0 Td (file.txt)Tj /T1_0 1 Tf 5.094 0 Td (and)Tj /TT1 1 Tf 1.987 0 Td (file.TXT)Tj /T1_0 1 Tf 0.2936 Tc (,w)Tj 0.2938 Tc 6.178 0 Td (ec)Tj 0 Tc 1.217 0 Td (an)Tj -40.918 -1.25 Td (access the \336le with the names)Tj /TT1 1 Tf 13.265 0 Td (File.txt)Tj /T1_0 1 Tf (,)Tj /TT1 1 Tf 5.3 0 Td (fILE.tXt)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 5.8 0 Td (nd)Tj /TT1 1 Tf 1.443 0 Td (FiLe.TxT)Tj /T1_0 1 Tf (.)Tj -0.092 Tc 9.9994 0 0 9.9994 147.5921 417.9749 Tm [(We )-429(c)]TJ 0 Tc 2.326 0 Td [(an )-245(think )-245(of )-245(a )-245(disk )-245(drive )-245(being )-245(divided )-245(into )-245(one )-245(or )-245(mor)]TJ 0.495 Tc 26.486 0 Td (ep)Tj 0 Tc 1.575 0 Td [(artitions. )-495(Each)]TJ -32.187 -1.2 Td [(partition )-7(can )-7(contain )-7(a )-7(\336le )-7(system, )-7(as )-7(shown )-7(in )-7(Figur)]TJ 0.2568 Tc 23.331 0 Td (e4)Tj 0 Tc 1.236 0 Td [(.13. )-257(The)-257(i-nodes )-7(ar)]TJ 0.2568 Tc 8.337 0 Td (e\336)Tj 0 Tc 1.341 0 Td (xed)Tj 1.606 0.09 Td (-)Tj 0.333 -0.09 Td (length)Tj -36.184 -1.2 Td (entries that contain most of the information about a \336le.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1302 3432 936 288 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 161.5486 355.7973 Tm (partition)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2238 3432 1224 288 re S Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 269.5195 355.776 Tm (partition)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 3462 3432 1512 288 re S Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 406.2705 355.7546 Tm (partition)Tj -39.244 0 Td (disk drive)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1518 2856 144 288 re S Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1662 2856 144 288 re S Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1806 2856 1080 288 re S Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 205.2104 298.1505 Tm [(cylinder gr)18(oup 0)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 2886 2856 1080 288 re S Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 313.1592 298.1326 Tm [(cylinder gr)18(oup 1)]TJ ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 3966 2856 144 288 re S Q BT /T1_1 1 Tf 0.25 Tc 9.9958 0 0 9.9958 397.3831 298.1148 Tm (...)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 4110 2856 1080 288 re S Q BT /T1_0 1 Tf 0 Tc 7.9962 0 0 7.9962 435.239 298.0969 Tm [(cylinder gr)18(oup)]TJ /T1_2 1 Tf 6.832 0 Td (n)Tj /T1_0 1 Tf -47.255 0 Td (\336le system)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 1806 2280 288 288 re S Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 184.8921 250.5047 Tm (super)Tj 0.056 -1.25 Td (block)Tj 0.122 -1.25 Td (copy)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 2094 2280 288 288 re S Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 219.6682 245.4927 Tm (cg)Tj -0.376 -1.25 Td (info)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 2382 2280 288 288 re S Q BT /T1_0 1 Tf 7.9947 0 0 7.9947 241.0728 245.4779 Tm (i-node)Tj 0.429 -1.25 Td (map)Tj ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J 2670 2280 288 288 re S Q BT /T1_0 1 Tf 7.9942 0 0 7.9942 271.6443 245.4632 Tm (block)Tj -0.382 -1.25 Td (bitmap)Tj ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J 2958 2280 576 288 re S Q BT /T1_0 1 Tf 7.9938 0 0 7.9938 311.2931 240.4524 Tm (i-nodes)Tj ET q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J 3534 2280 864 288 re S Q BT /T1_0 1 Tf 7.9933 0 0 7.9933 376.2798 240.4379 Tm (data blocks)Tj ET q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J 2670 1704 360 288 re S Q BT /T1_0 1 Tf 7.9928 0 0 7.9928 273.3858 182.8753 Tm (i-node)Tj ET q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J 3030 1704 360 288 re S Q BT /T1_0 1 Tf 7.9923 0 0 7.9923 309.3349 182.8644 Tm (i-node)Tj ET q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J 3390 1704 720 288 re S Q BT /T1_1 1 Tf 0.25 Tc 9.9898 0 0 9.9898 368.3741 182.8534 Tm (...)Tj ET q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J 4110 1704 360 288 re S Q BT /T1_0 1 Tf 0 Tc 7.9914 0 0 7.9914 417.1812 182.8424 Tm (i-node)Tj ET q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2202.25 3396.25 cm 0 0 m -34 -12 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.25 3373.25 cm 0 0 m -33 -12 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2066.25 3350.25 cm 0 0 m -34 -11 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1997.25 3327.25 cm 0 0 m -34 -11 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1929.25 3305.25 cm 0 0 m -34 -11 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1860.25 3282.25 cm 0 0 m -33 -12 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1793.25 3260.25 cm 0 0 m -34 -12 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1724.25 3237.25 cm 0 0 m -33 -12 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1656.25 3214.25 cm 0 0 m -34 -12 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1588.25 3191.25 cm 0 0 m -34 -11 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3498.25 3396.25 cm 0 0 m 36 -5 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3568.25 3386.25 cm 0 0 m 36 -4 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3639.25 3377.25 cm 0 0 m 36 -4 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3709.25 3368.25 cm 0 0 m 36 -4 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3779.25 3359.25 cm 0 0 m 36 -4 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3850.25 3350.25 cm 0 0 m 36 -5 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3920.25 3340.25 cm 0 0 m 36 -4 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3991.25 3332.25 cm 0 0 m 36 -5 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4062.25 3322.25 cm 0 0 m 36 -4 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4132.25 3313.25 cm 0 0 m 36 -4 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4202.25 3304.25 cm 0 0 m 36 -5 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4272.25 3295.25 cm 0 0 m 36 -4 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4343.25 3286.25 cm 0 0 m 36 -5 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4414.25 3276.25 cm 0 0 m 36 -4 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4484.25 3267.25 cm 0 0 m 36 -4 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4555.25 3258.25 cm 0 0 m 36 -4 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4625.25 3249.25 cm 0 0 m 36 -4 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4695.25 3240.25 cm 0 0 m 36 -5 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4766.25 3230.25 cm 0 0 m 36 -4 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4836.25 3222.25 cm 0 0 m 36 -5 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4907.25 3212.25 cm 0 0 m 36 -4 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4977.25 3203.25 cm 0 0 m 36 -5 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5048.25 3193.25 cm 0 0 m 36 -4 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5118.25 3184.25 cm 0 0 m 36 -4 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2886.25 2820.25 cm 0 0 m -36 -7 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2816.25 2806.25 cm 0 0 m -35 -7 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2747.25 2792.25 cm 0 0 m -35 -8 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2677.25 2778.25 cm 0 0 m -35 -7 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2607.25 2764.25 cm 0 0 m -35 -7 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2537.25 2750.25 cm 0 0 m -35 -7 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2468.25 2736.25 cm 0 0 m -35 -7 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2398.25 2723.25 cm 0 0 m -35 -8 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2328.25 2708.25 cm 0 0 m -35 -7 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2259.25 2694.25 cm 0 0 m -36 -7 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2190.25 2681.25 cm 0 0 m -36 -7 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2120.25 2666.25 cm 0 0 m -36 -7 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2050.25 2653.25 cm 0 0 m -35 -7 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1980.25 2638.25 cm 0 0 m -35 -7 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1911.25 2625.25 cm 0 0 m -35 -8 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1841.25 2611.25 cm 0 0 m -35 -7 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4002.25 2820.25 cm 0 0 m 31 -19 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4067.25 2780.25 cm 0 0 m 31 -19 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4134.25 2741.25 cm 0 0 m 30 -19 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4199.25 2701.25 cm 0 0 m 31 -19 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4265.25 2662.25 cm 0 0 m 31 -19 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4331.25 2622.25 cm 0 0 m 31 -18 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2958.25 2244.25 cm 0 0 m -29 -22 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2906.25 2205.25 cm 0 0 m -29 -22 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2854.25 2166.25 cm 0 0 m -29 -22 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2802.25 2127.25 cm 0 0 m -29 -21 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2750.25 2088.25 cm 0 0 m -28 -21 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2699.25 2049.25 cm 0 0 m -29 -21 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3570.25 2244.25 cm 0 0 m 35 -9 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3639.25 2226.25 cm 0 0 m 35 -8 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3708.25 2209.25 cm 0 0 m 35 -8 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3777.25 2192.25 cm 0 0 m 35 -9 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3846.25 2175.25 cm 0 0 m 36 -9 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3915.25 2157.25 cm 0 0 m 36 -8 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3984.25 2140.25 cm 0 0 m 36 -9 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4054.25 2123.25 cm 0 0 m 35 -9 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4123.25 2106.25 cm 0 0 m 35 -9 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4192.25 2088.25 cm 0 0 m 35 -8 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4261.25 2071.25 cm 0 0 m 35 -9 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4330.25 2054.25 cm 0 0 m 35 -9 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4398.25 2036.25 cm 0 0 m 36 -8 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1590.25 2928.25 cm 0 0 m 0 -180 l S Q Q q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 141 274.8 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 1410 2748 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1590.25 2748.25 cm 0 0 m -108 0 l S Q Q BT /T1_0 1 Tf 7.9904 0 0 7.9904 93.2802 272.7125 Tm (boot block\(s\))Tj ET q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1734.25 2928.25 cm 0 0 m 0 -360 l S Q Q q 0.9987408 0 0 0.9987408 0 0 cm q 1 0 0 1 155.4 256.8 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0998741 0 0 0.0998741 0 0 cm 1 j 1 J q 1 0 0 1 1554 2568 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1734.25 2568.25 cm 0 0 m -108 0 l S Q Q BT /T1_0 1 Tf 7.9894 0 0 7.9894 112.1159 254.7036 Tm (super block)Tj /T1_1 1 Tf 15.031 -14.03 Td (Figure 4.13)Tj /T1_0 1 Tf 5.695 0 Td (Disk drive, partitions, and a \336le system)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47051 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf -0.037 Tc 9 0 0 9 93.6 708 Tm (11)Tj 0 Tc 0.963 0 Td (2)Tj /T1_1 1 Tf 2.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.278 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 664.2601 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (wc -c core)Tj /TT0 1 Tf -0.6 -1.189 Td (8483248 core)Tj /T1_1 1 Tf 7.9995 0 0 7.9995 183.589 631.1621 Tm (The)Tj /TT0 1 Tf 1.924 0 Td (wc)Tj /T1_1 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (command with the)Tj /TT0 1 Tf 8.619 0 Td (-c)Tj /T1_1 1 Tf 1.45 0 Td (option counts the number of characters \(bytes\) in the \336le.)Tj 9.9994 0 0 9.9994 147.5914 610.1634 Tm [(If )-170(we )-170(make )-170(a )-170(copy )-170(of )-170(this )-170(\336le, )-170(using )-170(a )-170(utility )-170(such )-170(as)]TJ /TT0 1 Tf 25.253 0 Td (cat)Tj /T1_1 1 Tf 1.8 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.4201 Tc 0.333 -0.04 Td (,a)Tj 0 Tc 1.17 0 Td [(ll )-170(these )-170(holes )-170(ar)17(e)]TJ -31.189 -1.2 Td (written out as actual data bytes of 0:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5918 581.4651 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (cat core > core.copy)Tj /TT0 1 Tf -1.2 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l core*)Tj /TT0 1 Tf -1.2 -1.189 Td [(-rw-r--r-- )-600(1)-600(sar )-1200(8483248)-600(Nov 18 12:18 core)]TJ 0 -1.189 TD [(-rw-rw-r-- )-600(1)-600(sar )-1200(8483248)-600(Nov 18 12:27 core.copy)]TJ T* ($)Tj /TT1 1 Tf 1.2 0 Td (du -s core*)Tj /TT0 1 Tf -1.2 -1.189 Td [(272 )-2400(core)]TJ T* [(16592 )-1200(core.copy)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5929 499.27 Tm [(Her)18(e, )-99(the )-99(actual )-99(number )-99(of )-99(bytes )-99(used )-99(by )-99(the )-99(new )-99(\336le )-99(is )-99(8,495,104)]TJ 30.315 0.04 Td (\()Tj 0.333 -0.04 Td (512)Tj /TT2 1 Tf 1.849 0 Td (#)Tj /T1_1 1 Tf 0.898 0 Td (16,592)Tj 2.75 0.04 Td (\))Tj 0.5989 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.462 0 Td (he)Tj -37.94 -1.2 Td [(dif)18(fer)18(ence )-151(between )-151(this )-151(size )-151(and )-151(the )-151(size )-151(r)18(eported )-151(by)]TJ /TT0 1 Tf 24.747 0 Td (ls)Tj /T1_1 1 Tf 1.601 0 Td [(is )-151(caused )-151(by )-151(the )-151(number )-151(of)]TJ -26.348 -1.2 Td (blocks used by the \336le system to hold pointers to the actual data blo\ cks.)Tj 1.8 -1.2 Td [(Inter)18(ested )-68(r)18(eaders )-68(should )-68(r)18(efer )-68(to )-68(Section )-68(4.2 )-68(of )-68(Bach)]TJ 24.003 0.04 Td ([)Tj 0.333 -0.04 Td (1986)Tj 2 0.04 Td (])Tj 0.3185 Tc 0.333 -0.04 Td (,S)Tj 0 Tc 1.094 0 Td [(ections )-68(7.2 )-68(and )-68(7.3 )-68(of)]TJ -29.562 -1.2 Td [(McKusick )-155(et )-155(al.)]TJ 7.496 0.04 Td ([)Tj 0.333 -0.04 Td (1996)Tj 2 0.04 Td (])Tj 0.738 -0.04 Td [(\(or )-155(Sections )-155(8.2 )-155(and )-155(8.3 )-155(in )-155(McKusick )-155(and )-155(Neville-Neil)]TJ 25.184 0.04 Td ([)Tj 0.333 -0.04 Td (2005)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td (\),)Tj -38.417 -1.2 Td [(Section )-289(15.2 )-289(of )-289(McDougall )-289(and )-289(Maur)16(o)]TJ 18.674 0.04 Td ([)Tj 0.333 -0.04 Td (2007)Tj 2 0.04 Td (])Tj 0.5394 Tc 0.333 -0.04 Td (,a)Tj 0 Tc 1.289 0 Td [(nd )-289(Chapter )-289(12 )-289(in )-289(Singh)]TJ 11.891 0.04 Td ([)Tj 0.333 -0.04 Td (2006)Tj 2 0.04 Td (])Tj 0.872 -0.04 Td (for)Tj -37.726 -1.2 Td (additional details on the physical layout of \336les.)Tj /TT3 1 Tf 11.9993 0 0 11.9993 93.5963 393.6764 Tm [(4.13 )-776(File)]TJ -0.08 Tc 5.279 0 Td (Tr)Tj 0 Tc 0.92 0 Td (uncation)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5939 372.0777 Tm [(Sometimes )-87(we )-87(would )-87(like )-87(to )-87(tr)8(uncate )-87(a )-87(\336le )-87(by )-87(chopping )-87(of)]TJ 0.3374 Tc 26.592 0 Td (fd)Tj 0 Tc 1.281 0 Td [(ata )-87(at )-87(the )-87(end )-87(of )-87(the )-87(\336le.)]TJ -27.873 -1.2 Td [(Emptying )-101(a )-101(\336le, )-101(which )-101(we )-101(can )-101(do )-101(with )-101(the)]TJ /TT0 1 Tf 19.837 0 Td (O_TRUNC)Tj /T1_1 1 Tf 4.551 0 Td [(\337ag )-101(to)]TJ /TT0 1 Tf 3.237 0 Td (open)Tj /T1_1 1 Tf [(,)-351(is)-351(a)-351(s)1(pecial )-101(case )-101(of)]TJ -27.625 -1.2 Td [(tr)8(uncation.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.593 331.3801 Tm (#include )Tj 0 -1.902 TD (int truncate\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,o)Tj 0 Tc 20.744 0 Td (ff_t)Tj /T1_2 1 Tf 3 0 Td (length)Tj /TT0 1 Tf (\);)Tj -23.744 -1.902 Td (int ftruncate\(int)Tj /T1_2 1 Tf 10.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,o)Tj 0 Tc 2.578 0 Td (ff_t)Tj /T1_2 1 Tf 3 0 Td (length)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 8.873 -1.902 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT2 1 Tf 9.213 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2755.25 cm 0 0 m 0 649 l 3900 649 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 262.0086 Tm [(These )-73(two )-73(functions )-73(tr)8(uncate )-73(an )-73(existing )-73(\336le )-73(to)]TJ /T1_2 1 Tf 21.441 0 Td (length)Tj /T1_1 1 Tf 2.879 0 Td [(bytes. )-323(If)-323(the )-73(pr)18(evious )-73(size )-73(of )-73(the)]TJ -24.32 -1.2 Td [(\336le )-19(was )-19(gr)18(eater )-19(than)]TJ /T1_2 1 Tf 9.31 0 Td (length)Tj /T1_1 1 Tf 0.2687 Tc (,t)Tj 0 Tc 3.401 0 Td [(he )-19(data )-19(beyond)]TJ /T1_2 1 Tf 7.131 0 Td (length)Tj /T1_1 1 Tf 2.825 0 Td [(is )-19(no )-19(longer )-19(accessible.)-519(Otherwise, )-19(if)]TJ -22.666 -1.2 Td [(the )-108(pr)18(evious )-108(size )-108(was )-108(less )-108(than)]TJ /T1_2 1 Tf 14.482 0 Td (length)Tj /T1_1 1 Tf 0.3582 Tc (,t)Tj 0 Tc 3.49 0 Td [(he )-108(\336le )-108(size )-108(will )-108(incr)18(ease )-108(and )-108(the )-108(data )-108(between)]TJ -17.972 -1.2 Td [(the )-54(old )-54(end )-54(of )-54(\336le )-54(and )-54(the )-54(new )-54(end )-54(of )-54(\336le )-54(will )-54(r)17(ead )-54(as )-54(0 )-54(\(i.e., )-54(a )-54(hole )-54(is )-54(pr)18(obably )-54(cr)18(eated)]TJ 0 -1.2 TD (in the \336le\).)Tj 7.999 0 0 7.999 183.5791 194.0167 Tm [(BSD r)18(eleases prior to 4.4BSD could only make a \336le smaller with)]TJ /TT0 1 Tf 28.682 0 Td (truncate)Tj /T1_1 1 Tf (.)Tj -28.682 -2 Td [(Solaris )-117(also )-117(includes )-117(an )-117(extension )-117(to)]TJ /TT0 1 Tf 16.838 0 Td (fcntl)Tj /T1_1 1 Tf 3.367 0 Td (\()Tj /TT0 1 Tf (F_FREESP)Tj /T1_1 1 Tf 0.3669 Tc (\)t)Tj 0 Tc 6.159 0 Td [(hat )-117(allows )-117(us )-117(to )-117(fr)18(ee )-117(any )-117(part )-117(of )-117(a)]TJ -26.364 -1.25 Td (\336le, not just a chunk at the end of the \336le.)Tj -0.092 Tc 9.9988 0 0 9.9988 147.5837 147.0224 Tm [(We )-213(u)]TJ 0 Tc 2.269 0 Td (se)Tj /TT0 1 Tf 1.182 0 Td (ftruncate)Tj /T1_1 1 Tf 5.679 0 Td [(in )-29(the )-29(pr)19(ogram )-28(shown )-28(in )-28(Figur)]TJ 0.2785 Tc 13.735 0 Td (e1)Tj 0 Tc 1.258 0 Td [(3.6 )-28(when )-28(we )-28(need )-28(to )-28(empty )-28(a)]TJ -25.921 -1.2 Td (\336le after obtaining a lock on the \336le.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47052 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.12)]TJ 39.995 0 Td [(File )-250(Size)]TJ /T1_1 1 Tf -0.037 Tc 5.912 0 Td (111)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 0 Tc 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(4.12 )-776(File)-556(Siz )268(e)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 649.761 Tm (The)Tj /TT1 1 Tf 1.993 0 Td (st_size)Tj /T1_0 1 Tf 4.519 0 Td [(member )-69(of )-69(the)]TJ /TT1 1 Tf 6.894 0 Td (stat)Tj /T1_0 1 Tf 2.719 0 Td [(str)8(uctur)]TJ 0.3187 Tc 3.49 0 Td (ec)Tj 0 Tc 1.242 0 Td [(ontains )-69(the )-69(size )-69(of )-69(the )-69(\336le )-69(in )-69(bytes.)-567(This)]TJ -20.856 -1.2 Td [(\336eld is meaningful only for r)18(egular \336les, dir)18(ectories, and symbolic links.)]TJ 7.9995 0 0 7.9995 183.5894 617.7629 Tm [(Fr)18(eeBSD )-1(8.0, )-1(Mac )-1(OS )-1(X )-1(10.6.8, )-1(and )-1(Solaris )-1(10 )-1(also )-1(de\336ne )-1(the )-1(\336le )-1(size )-1(for )-1(a )-1(pipe )-1(as )-1(the )-1(number )-1(of)]TJ 0 -1.25 TD (bytes that ar)Tj 0.25 Tc 5.449 0 Td (ea)Tj 0 Tc 1.229 0 Td [(vailable for r)18(eading fr)18(om the pipe.)]TJ -0.092 Tc 15.638 0 Td (We)Tj 0 Tc 1.387 0 Td (\325ll discuss pipes in Section 15.2.)Tj 9.9994 0 0 9.9994 147.5918 586.7648 Tm [(For )-9(a )-9(r)18(egular )-9(\336le, )-9(a )-9(\336le )-9(size )-9(of )-9(0 )-9(is )-9(allowed.)]TJ -0.092 Tc 19.386 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-9(get )-9(an )-9(end-of-\336le )-9(indication )-9(on )-9(the)]TJ -22.573 -1.2 Td [(\336rst )-37(r)18(ead )-37(of )-37(the )-37(\336le.)-537(For )-37(a )-37(dir)15(ectory)]TJ 0.2874 Tc 15.781 0 Td (,t)Tj 0 Tc 0.863 0 Td [(he )-37(\336le )-37(size )-37(is )-37(usually )-37(a )-37(multiple )-37(of )-37(a )-37(number)]TJ 0.2875 Tc 19.765 0 Td (,s)Tj 0 Tc 0.961 0 Td (uch)Tj -37.371 -1.2 Td (as 16 or 512.)Tj -0.092 Tc 5.865 0 Td [(We )-184(t)]TJ 0 Tc 1.963 0 Td [(alk about r)18(eading dir)18(ectories in Section 4.22.)]TJ -6.028 -1.2 Td [(For )-277(a )-277(symbolic )-277(link, )-277(the )-277(\336le )-277(size )-277(is )-277(the )-277(number )-277(of )-277(bytes )-277(in )-277(the )-277(\336lename.)-771(For)]TJ -1.8 -1.2 Td (example, in the following case, the \336le size of 7 is the length of th\ e pathname)Tj /TT1 1 Tf 34.098 0 Td (usr/lib)Tj /T1_0 1 Tf (:)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5915 523.2686 Tm [(lrwxrwxrwx )-600(1)-600(root )]TJ 18 0 Td [(7)-600(Sep 25 07:14 lib -> usr/lib)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5926 506.4696 Tm [(\(Note )-39(that )-39(symbolic )-39(links )-39(do )-39(not )-39(contain )-39(the )-39(normal )-39(C )-39(null )-39(byte )-39(at )-39(the )-39(end )-39(of )-39(the )-39(name,)]TJ 0 -1.2 TD (as the length is always speci\336ed by)Tj /TT1 1 Tf 15.74 0 Td (st_size)Tj /T1_0 1 Tf (.\))Tj -13.94 -1.2 Td [(Most )-702(contemporary )-702(UNIX )-702(systems )-702(pr)18(ovide )-702(the )-702(\336elds)]TJ /TT1 1 Tf 28.555 0 Td (st_blksize)Tj /T1_0 1 Tf 6.952 0 Td (and)Tj /TT1 1 Tf -37.307 -1.2 Td (st_blocks)Tj /T1_0 1 Tf 0.5188 Tc (.T)Tj 0 Tc 6.782 0 Td [(he )-19(\336rst )-19(is )-19(the )-19(pr)19(eferr)18(ed )-19(block )-19(size )-19(for )-19(I/O )-19(for )-19(the )-19(\336le, )-19(and )-19(the )-19(latter )-19(is )-19(the)]TJ -6.782 -1.2 Td [(actual )-175(number )-175(of )-175(512)]TJ 9.812 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-175(blocks )-175(that )-175(ar)]TJ 0.4247 Tc 8.613 0 Td (ea)Tj 0 Tc 1.404 0 Td [(llocated. )-425(Recall)-424(fr)18(om )-175(Section )-175(3.9 )-175(that )-175(we)]TJ -20.162 -1.2 Td [(encounter)18(ed )-288(the )-288(minimum )-288(amount )-288(of )-288(time )-288(r)19(equir)18(ed )-288(to )-288(r)18(ead )-288(a )-288(\336le )-288(when )-288(we )-288(used)]TJ /TT1 1 Tf 0 -1.2 Td (st_blksize)Tj /T1_0 1 Tf 6.308 0 Td [(for )-58(the)]TJ /TT1 1 Tf 3.278 0 Td (read)Tj /T1_0 1 Tf 2.708 0 Td [(operations. )-308(The)-309(standar)]TJ 0.3083 Tc 10.801 0 Td (dI)Tj 0 Tc 1.256 0 Td [(/O )-58(library)]TJ 0.3083 Tc 4.57 0 Td (,w)Tj 0 Tc 1.392 0 Td [(hich )-58(we )-58(describe )-58(in)]TJ -30.314 -1.2 Td [(Chapter 5, also tries to r)18(ead or write)]TJ /TT1 1 Tf 16.123 0 Td (st_blksize)Tj /T1_0 1 Tf 6.25 0 Td [(bytes at a time, for ef)18(\336ciency)111(.)]TJ 7.9995 0 0 7.9995 183.5897 402.4759 Tm [(Be )-85(awar)]TJ 0.3353 Tc 3.636 0 Td (et)Tj 0 Tc 1.14 0 Td [(hat )-85(dif)18(fer)18(ent )-85(versions )-85(of )-85(the )-85(UNIX )-85(System )-85(use )-85(units )-85(other )-85(than )-85(512)]TJ 30.218 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-85(blocks )-85(for)]TJ /TT1 1 Tf -35.328 -1.25 Td (st_blocks)Tj /T1_0 1 Tf 0.5 Tc (.U)Tj 0 Tc 6.928 0 Td (se of this value is nonportable.)Tj /TT0 1 Tf 9.9994 0 0 9.9994 93.5948 366.478 Tm (Holes in a File)Tj /T1_0 1 Tf 3.6 -1.8 Td [(In )-170(Section )-170(3.6, )-170(we )-170(mentioned )-170(that )-170(a )-170(r)18(egular )-170(\336le )-170(can )-170(contain )-170(\324)34(\324holes.\325)]TJ 0.6703 Tc 31.266 0 Td (\325W)Tj 0.4202 Tc 1.856 0 Td (es)Tj 0 Tc 1.323 0 Td [(howed )-170(an)]TJ -34.446 -1.2 Td [(example )-80(of )-80(this )-80(in )-80(Figur)]TJ 0.3296 Tc 10.825 0 Td (e3)Tj 0 Tc 1.309 0 Td [(.2. )-330(Holes)-329(ar)]TJ 0.3296 Tc 5.358 0 Td (ec)Tj -0.018 Tc 1.253 0 Td (re)Tj 0 Tc 0.856 0 Td [(ated )-80(by )-80(seeking )-80(past )-80(the )-80(curr)20(ent )-80(end )-80(of )-80(\336le)]TJ -19.601 -1.2 Td [(and writing some data.)-500(As an example, consider the following:)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.5919 307.7815 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (ls -l core)Tj /TT1 1 Tf -1.2 -1.189 Td [(-rw-r--r-- )-600(1)-600(sar )-1200(8483248)-600(Nov 18 12:18 core)]TJ 0 -1.189 TD ($)Tj /TT2 1 Tf 1.2 0 Td (du -s core)Tj /TT1 1 Tf -1.2 -1.189 Td [(272 )-2400(core)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.593 257.6845 Tm [(The )-85(size )-85(of )-85(the )-85(\336le)]TJ /TT1 1 Tf 8.685 0 Td (core)Tj /T1_0 1 Tf 2.735 0 Td [(is )-85(slightly )-85(mor)]TJ 0.3352 Tc 6.508 0 Td (et)Tj 0 Tc 1.14 0 Td [(han )-85(8 )-85(MB, )-85(yet )-85(the)]TJ /TT1 1 Tf 8.395 0 Td (du)Tj /T1_0 1 Tf 1.535 0 Td [(command )-85(r)18(eports )-85(that)]TJ -28.999 -1.2 Td [(the )-300(amount )-300(of )-300(disk )-300(space )-300(used )-300(by )-300(the )-300(\336le )-300(is )-300(272 )-300(512)]TJ 25.786 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-300(blocks )-300(\(139,264 )-300(bytes\).)]TJ -26.119 -1.2 Td (Obviously)Tj 0.25 Tc 4.504 0 Td (,t)Tj 0 Tc 0.826 0 Td (his \336le has many holes.)Tj 7.9995 0 0 7.9995 183.5898 213.6872 Tm (The)Tj /TT1 1 Tf 2.121 0 Td (du)Tj /T1_0 1 Tf 1.647 0 Td [(command )-197(on )-197(many )-197(BSD-derived )-197(systems )-197(r)16(eports )-197(the )-197(number )-197(of )-197(1,024)]TJ 32.473 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-197(blocks.)]TJ -36.575 -1.25 Td [(Solaris )-145(r)18(eports )-145(the )-145(number )-145(of )-145(512)]TJ 15.357 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-145(blocks.)-645(On )-145(Linux, )-145(the )-145(units )-145(r)17(eported )-145(depend )-145(on )-145(the)]TJ -15.69 -1.25 Td [(whether )-70(the)]TJ /TT1 1 Tf 5.704 0 Td (POSIXLY_CORRECT)Tj /T1_0 1 Tf 9.32 0 Td [(envir)18(onment )-70(is )-70(set.)-570(When )-70(it )-70(is )-70(set, )-70(the)]TJ /TT1 1 Tf 17.538 0 Td (du)Tj /T1_0 1 Tf 1.52 0 Td [(command )-70(r)18(eports)]TJ -34.083 -1.25 Td (1,024)Tj 2.25 0.09 Td (-)Tj 0.333 -0.09 Td [(byte block units; when it is not set, the command r)18(eports 512)]TJ 26.756 0.09 Td (-)Tj 0.333 -0.09 Td (byte block units.)Tj 9.9994 0 0 9.9994 147.5921 162.6902 Tm [(As )-90(we )-90(mentioned )-90(in )-90(Section )-90(3.6, )-90(the)]TJ /TT1 1 Tf 16.624 0 Td (read)Tj /T1_0 1 Tf 2.74 0 Td [(function )-90(r)18(eturns )-90(data )-90(bytes )-90(of )-90(0 )-90(for )-90(any)]TJ -21.164 -1.2 Td [(byte )-130(positions )-130(that )-130(have )-130(not )-130(been )-130(written.)-629(If )-130(we )-130(execute )-130(the )-130(following )-130(command, )-130(we)]TJ 0 -1.2 TD [(can see that the normal I/O operations r)18(ead up thr)18(ough the size of the \336le:)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47053 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.1)55(1)]TJ /TT0 1 Tf 19.536 0 Td (chown)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.75 0 Td (fchown)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.35 0 Td (fchownat)Tj /T1_0 1 Tf 0.5 Tc (,a)Tj 0 Tc 6.05 0 Td (nd)Tj /TT0 1 Tf 1.693 0 Td (lchown)Tj /T1_0 1 Tf 4.1 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (109)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(portion )-94(of )-94(a )-94(pr)17(ogram )-94(is )-94(the )-94(machine )-94(instr)7(uctions.\) )-344(The)-344(pr)18(ogram )-94(would )-94(then )-94(load )-94(into)]TJ 0 -1.2 Td [(memory )-288(mor)]TJ 0.5383 Tc 6.086 0 Td (eq)Tj 0 Tc 1.577 0 Td [(uickly )-288(the )-288(next )-288(time )-288(it )-288(was )-288(executed, )-288(because )-288(the )-288(swap )-288(ar)18(ea )-288(was)]TJ -7.664 -1.2 Td [(handled )-227(as )-227(a )-227(contiguous )-227(\336le, )-227(as )-227(compar)18(ed )-227(to )-227(the )-227(possibly )-227(random )-227(location )-227(of )-227(data)]TJ 0 -1.2 TD [(blocks )-334(in )-334(a )-334(normal )-334(UNIX )-334(\336le )-334(system.)-838(The )-335(sticky )-335(bit )-335(was )-335(often )-335(set )-335(for )-335(common)]TJ T* [(application )-352(pr)18(ograms, )-352(such )-352(as )-352(the )-352(text )-352(editor )-352(and )-352(the )-352(passes )-352(of )-352(the )-352(C )-352(compiler)77(.)]TJ T* (Naturally)Tj 0.3171 Tc 4.182 0 Td (,t)Tj 0 Tc 0.893 0 Td (her)Tj 0.3171 Tc 1.438 0 Td (ew)Tj 0 Tc 1.63 0 Td [(as )-67(a )-67(limit )-67(to )-67(the )-67(number )-67(of )-67(sticky )-67(\336les )-67(that )-67(could )-67(be )-67(contained )-67(in )-67(the)]TJ -8.143 -1.2 Td [(swap )-81(ar)18(ea )-81(befor)]TJ 0.3314 Tc 7.166 0 Td (er)Tj 0 Tc 1.197 0 Td [(unning )-81(out )-81(of )-81(swap )-81(space, )-81(but )-81(it )-81(was )-81(a )-81(useful )-81(technique.)-581(The )-81(name)]TJ /T1_2 1 Tf -8.363 -1.2 Td (sticky)Tj /T1_0 1 Tf 2.615 0 Td [(came )-14(about )-14(because )-14(the )-14(text )-14(portion )-14(of )-14(the )-14(\336le )-14(stuck )-14(ar)14(ound )-14(in )-14(the )-14(swap )-14(ar)18(ea )-14(until)]TJ -2.615 -1.2 Td [(the )-173(system )-173(was )-173(r)18(ebooted. )-423(Later)-423(versions )-173(of )-173(the )-173(UNIX )-173(System )-173(r)19(eferr)18(ed )-173(to )-173(this )-173(as )-173(the)]TJ /T1_2 1 Tf 0 -1.2 Td (saved-text)Tj /T1_0 1 Tf 4.401 0 Td [(bit; )-41(hence )-41(the )-41(constant)]TJ /TT0 1 Tf 10.268 0 Td (S_ISVTX)Tj /T1_0 1 Tf 0.5413 Tc (.W)Tj 0 Tc 5.936 0 Td [(ith )-41(today\325s )-41(newer )-41(UNIX )-41(systems, )-41(most )-41(of)]TJ -20.606 -1.2 Td [(which )-324(have )-324(a )-324(virtual )-324(memory )-324(system )-324(and )-324(a )-324(faster )-324(\336le )-324(system, )-324(the )-324(need )-324(for )-324(this)]TJ T* [(technique has disappear)18(ed.)]TJ 1.8 -1.2 Td [(On )-81(contemporary )-81(systems, )-81(the )-81(use )-81(of )-81(the )-81(sticky )-81(bit )-81(has )-81(been )-81(extended.)-585(The )-81(Single)]TJ -1.8 -1.2 Td [(UNIX )-108(Speci\336cation )-108(allows )-108(the )-108(sticky )-108(bit )-108(to )-108(be )-108(set )-108(for )-108(a )-108(dir)16(ectory)]TJ 0.6082 Tc 29.048 0 Td (.I)Tj 0.3581 Tc 1.195 0 Td (ft)Tj 0 Tc 1.017 0 Td [(he )-108(bit )-108(is )-108(set )-108(for )-108(a)]TJ -31.26 -1.2 Td [(dir)18(ectory)]TJ 0.3505 Tc 3.914 0 Td (,a\336)Tj 0 Tc 2.056 0 Td [(le )-100(in )-100(the )-100(dir)18(ectory )-100(can )-100(be )-100(r)18(emoved )-100(or )-100(r)18(enamed )-100(only )-100(if )-100(the )-100(user )-100(has )-100(write)]TJ -5.97 -1.2 Td [(permission for the dir)18(ectory and meets one of the following criteria:)]TJ 0.883 Tc 1.8 -1.68 Td (\245O)Tj 0 Tc 2.275 0 Td (wns the \336le)Tj 0.883 Tc -2.275 -1.24 Td (\245O)Tj 0 Tc 2.275 0 Td [(wns the dir)18(ectory)]TJ 0.883 Tc -2.275 -1.24 Td (\245I)Tj 0.25 Tc 1.826 0 Td (st)Tj 0 Tc 1 0 Td [(he super)8(user)]TJ -4.626 -1.68 Td [(The )-62(dir)18(ectories)]TJ /TT0 1 Tf 6.961 0 Td (/tmp)Tj /T1_0 1 Tf 2.712 0 Td (and)Tj /TT0 1 Tf 2.005 0 Td (/var/tmp)Tj /T1_0 1 Tf 5.112 0 Td (ar)Tj 0.312 Tc 0.877 0 Td (et)Tj 0 Tc 1.117 0 Td [(ypical )-62(candidates )-62(for )-62(the )-62(sticky )-62(bit)]TJ 0.0833 Tc 15.522 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(hey )-62(ar)18(e)]TJ -35.715 -1.2 Td [(dir)18(ectories )-105(in )-105(which )-105(any )-105(user )-105(can )-105(typically )-105(cr)18(eate )-105(\336les.)-610(The )-106(permissions )-106(for )-106(these )-106(two)]TJ -0 -1.2 Td [(dir)18(ectories )-43(ar)]TJ 0.2933 Tc 5.833 0 Td (eo)Tj 0 Tc 1.318 0 Td [(ften )-43(r)18(ead, )-43(write, )-43(and )-43(execute )-43(for )-43(everyone )-43(\(user)]TJ 0.2932 Tc 21.099 0 Td (,g)Tj -0.018 Tc 1.099 0 Td (ro)Tj 0 Tc 0.923 0 Td [(up, )-43(and )-43(other\).)-544(But)]TJ -30.272 -1.2 Td [(users should not be able to delete or r)18(ename \336les owned by others.)]TJ 7.9995 0 0 7.9995 183.5892 374.5775 Tm [(The )-157(saved-text )-157(bit )-157(is )-157(not )-157(part )-157(of )-157(POSIX.1.)-654(It )-157(is )-157(part )-157(of )-157(the )-157(XSI )-157(option )-157(de\336ned )-157(in )-157(the )-157(Single)]TJ 0 -1.25 TD [(UNIX )-245(Speci\336cation, )-245(and )-245(is )-245(supported )-245(by )-245(Fr)18(eeBSD )-245(8.0, )-245(Linux )-245(3.2.0, )-245(Mac )-245(OS )-245(X )-245(10.6.8, )-245(and)]TJ T* (Solaris 10.)Tj 0 -1.875 TD [(Solaris )-98(10 )-98(places )-98(special )-98(meaning )-98(on )-98(the )-98(sticky )-98(bit )-98(if )-98(it )-98(is )-98(set )-98(on )-98(a )-98(r)18(egular )-98(\336le.)-598(In )-98(this )-98(case, )-98(if)]TJ 0 -1.25 TD (none of the execute bits is set, the operating system will not cache the\ contents of the \336le.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5946 297.5821 Tm (4.11)Tj /TT2 1 Tf 3 0 Td (chown)Tj /TT1 1 Tf (,)Tj /TT2 1 Tf 3.834 0 Td (fchown)Tj /TT1 1 Tf (,)Tj /TT2 1 Tf 4.434 0 Td (fchownat)Tj /TT1 1 Tf 0.556 Tc (,a)Tj 0 Tc 6.19 0 Td (nd)Tj /TT2 1 Tf 1.778 0 Td (lchown)Tj /TT1 1 Tf 4.156 0 Td (Functions)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5919 275.9834 Tm (The)Tj /TT0 1 Tf 2.017 0 Td (chown)Tj /T1_0 1 Tf 3.343 0 Td [(functions )-93(allow )-93(us )-93(to )-93(change )-93(a )-93(\336le\325s )-93(user )-93(ID )-93(and )-93(gr)18(oup )-93(ID, )-93(but )-93(if )-93(either )-93(of)]TJ -5.36 -1.2 Td [(the ar)18(guments)]TJ /T1_2 1 Tf 6.617 0 Td (owner)Tj /T1_0 1 Tf 2.75 0 Td (or)Tj /T1_2 1 Tf 1.191 0 Td [(gr)18(oup)]TJ /T1_0 1 Tf 2.621 0 Td (is)Tj /TT3 1 Tf 0.965 0 Td (!)Tj /T1_0 1 Tf [(1, the corr)18(esponding ID is left unchanged.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.591 247.2852 Tm (#include )Tj 0 -1.902 TD (int chown\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,u)Tj 0 Tc 18.944 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (owner)Tj /TT0 1 Tf 0.6 Tc (,g)Tj 0 Tc 4.3 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td [(gr)18(oup)]TJ /TT0 1 Tf (\);)Tj -29.244 -1.902 Td (int fchown\(int)Tj /T1_2 1 Tf 9 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,u)Tj 0 Tc 2.578 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (owner)Tj /TT0 1 Tf 0.6 Tc (,g)Tj 0 Tc 4.3 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td [(gr)18(oup)]TJ /TT0 1 Tf (\);)Tj -21.878 -1.902 Td (int fchownat\(int)Tj /T1_2 1 Tf 10.2 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,u)Tj 0 Tc 12.344 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (owner)Tj /TT0 1 Tf 0.6 Tc (,g)Tj 0 Tc 4.3 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td [(gr)18(oup)]TJ /TT0 1 Tf (,)Tj -27.622 -1.189 Td (int)Tj /T1_2 1 Tf 2.4 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj -10.2 -1.902 Td (int lchown\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,u)Tj 0 Tc 19.544 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (owner)Tj /TT0 1 Tf 0.6 Tc (,g)Tj 0 Tc 4.3 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td [(gr)18(oup)]TJ /TT0 1 Tf (\);)Tj /T1_0 1 Tf -6.015 -1.902 Td [(All four r)18(eturn: 0 if OK,)]TJ /TT3 1 Tf 10.635 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1465.25 cm 0 0 m 0 1098 l 3900 1098 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47054 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (108)Tj /T1_1 1 Tf 3.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.241 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(On )-51(Solaris, )-51(the)]TJ /TT0 1 Tf 6.881 0 Td (ls)Tj /T1_1 1 Tf 1.501 0 Td [(command )-51(displays )-51(an)]TJ /TT0 1 Tf 10.133 0 Td (l)Tj /T1_1 1 Tf 0.901 0 Td [(instead )-51(of )-51(an)]TJ /TT0 1 Tf 6.078 0 Td (S)Tj /T1_1 1 Tf 0.901 0 Td [(to )-51(indicate )-51(that )-51(mandatory )-51(\336le )-51(and)]TJ -0.018 Tc -26.396 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.3633 Tc 1.367 0 Td (dl)Tj 0 Tc 1.265 0 Td [(ocking )-113(has )-113(been )-113(enabled )-113(for )-113(this )-113(\336le.)-613(This )-113(behavior )-113(applies )-113(only )-113(to )-113(r)18(egular )-113(\336les, )-113(but)]TJ -3.488 -1.25 Td [(we\325ll discuss this mor)18(e)-250(in)-250(Section 14.3.)]TJ 9.9994 0 0 9.9994 147.5907 632.962 Tm (Finally)Tj 0.3094 Tc 2.956 0 Td (,n)Tj 0 Tc 1.141 0 Td [(ote )-59(that )-59(the )-59(time )-59(and )-59(date )-59(listed )-59(by )-59(the)]TJ /TT0 1 Tf 17.763 0 Td (ls)Tj /T1_1 1 Tf 1.509 0 Td [(command )-59(did )-59(not )-59(change )-59(after)]TJ -25.17 -1.2 Td [(we )-130(ran )-130(the )-130(pr)18(ogram )-130(in )-130(Figur)]TJ 0.3805 Tc 13.194 0 Td (e4)Tj 0 Tc 1.359 0 Td [(.12. )-380(W)92(e\325ll )-130(see )-130(in )-130(Section )-130(4.19 )-130(that )-130(the)]TJ /TT0 1 Tf 17.36 0 Td (chmod)Tj /T1_1 1 Tf 3.38 0 Td (function)Tj -35.293 -1.2 Td [(updates )-68(only )-68(the )-68(time )-68(that )-68(the )-68(i-node )-68(was )-68(last )-68(changed.)-568(By )-68(default, )-68(the)]TJ /TT0 1 Tf 32.487 0 Td [(ls )267(-l)]TJ /T1_1 1 Tf 3.052 0 Td [(lists )-68(the)]TJ -35.539 -1.2 Td (time when the contents of the \336le wer)Tj 0.25 Tc 16.633 0 Td (el)Tj 0 Tc 1.02 0 Td (ast modi\336ed.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5970.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 572.9312 Tm (The)Tj /TT0 1 Tf 2.191 0 Td (chmod)Tj /T1_1 1 Tf 3.517 0 Td [(functions )-267(automatically )-267(clear )-267(two )-267(of )-267(the )-267(permission )-267(bits )-267(under )-267(the)]TJ -7.508 -1.2 Td (following conditions:)Tj 0.883 Tc 1.8 -1.68 Td (\245O)Tj 0.359 Tc 2.275 0 Td (ns)Tj 0 Tc 1.365 0 Td [(ystems, )-109(such )-109(as )-109(Solaris, )-109(that )-109(place )-109(special )-109(meaning )-109(on )-109(the )-109(sticky )-109(bit )-109(when)]TJ -2.151 -1.2 Td [(used )-48(with )-48(r)18(egular )-48(\336les, )-48(if )-48(we )-48(try )-48(to )-48(set )-48(the )-48(sticky )-48(bit )-48(\()]TJ /TT0 1 Tf 23.78 0 Td (S_ISVTX)Tj /T1_1 1 Tf [(\))-298(on)-298(a)-298(r)17(egular )-48(\336le)]TJ -23.78 -1.2 Td [(and )-55(do )-55(not )-55(have )-55(super)8(user )-55(privileges, )-55(the )-55(sticky )-55(bit )-55(in )-55(the)]TJ /T1_2 1 Tf 26.218 0 Td (mode)Tj /T1_1 1 Tf 2.416 0 Td [(is )-55(automatically)]TJ -28.634 -1.2 Td [(turned )-29(of)18(f. )-279(\(W)]TJ 0.2795 Tc 6.49 0 Td (ed)Tj 0 Tc 1.369 0 Td [(escribe )-29(the )-29(sticky )-29(bit )-29(in )-29(the )-29(next )-29(section.\))]TJ -0.092 Tc 18.543 0 Td [(To )-214(p)]TJ -0.018 Tc 1.948 0 Td (re)Tj 0 Tc 0.856 0 Td [(vent )-30(malicious)]TJ -29.206 -1.2 Td [(users )-181(fr)18(om )-181(setting )-181(the )-181(sticky )-181(bit )-181(and )-181(adversely )-181(af)18(fecting )-181(system )-181(performance,)]TJ 0 -1.2 TD [(only the super)8(user can set the sticky bit of a r)18(egular \336le.)]TJ 7.999 0 0 7.999 183.5781 464.1443 Tm [(In )-220(Fr)18(eeBSD )-220(8.0 )-220(and )-220(Solaris )-220(10, )-220(only )-220(the )-220(super)6(user )-220(can )-220(set )-220(the )-220(sticky )-220(bit )-220(on )-220(a )-220(r)18(egular )-220(\336le.)]TJ 0 -1.25 TD [(Linux 3.2.0)-458(and )-208(Mac )-208(OS )-208(X )-208(10.6.8 )-208(place )-208(no )-208(such )-208(r)18(estriction )-208(on )-208(the )-208(setting )-208(of )-208(the )-208(sticky )-208(bit,)]TJ -0 -1.25 Td [(because )-60(the )-60(bit )-60(has )-60(no )-60(meaning )-60(when )-60(applied )-60(to )-60(r)18(egular )-60(\336les )-60(on )-60(these )-60(systems.)-560(Although )-60(the)]TJ T* [(bit )-275(also )-275(has )-275(no )-275(meaning )-275(when )-275(applied )-275(to )-275(r)19(egular )-275(\336les )-275(on )-275(Fr)18(eeBSD, )-275(everyone )-275(except )-275(the)]TJ T* [(super)8(user is pr)18(evented fr)18(om setting it on a r)18(egular \336le.)]TJ 0.883 Tc 9.9988 0 0 9.9988 147.5823 404.1515 Tm (\245T)Tj 0 Tc 2.102 0 Td [(he )-4(gr)18(oup )-4(ID )-4(of )-4(a )-4(newly )-4(cr)18(eated )-4(\336le )-4(might )-4(potentially )-4(be )-4(a )-4(gr)18(oup )-4(that )-4(the )-4(calling)]TJ -0.613 -1.2 Td [(pr)18(ocess )-207(does )-207(not )-207(belong )-207(to.)-707(Recall )-207(fr)18(om )-207(Section )-207(4.6 )-207(that )-207(it\325s )-207(possible )-207(for )-207(the)]TJ 0 -1.2 TD [(gr)18(oup )-56(ID )-56(of )-56(the )-56(new )-56(\336le )-56(to )-56(be )-56(the )-56(gr)22(oup )-56(ID )-56(of )-56(the )-56(par)18(ent )-56(dir)20(ectory)]TJ 0.5557 Tc 29.739 0 Td (.S)Tj 0 Tc 1.331 0 Td [(peci\336cally)111(,)]TJ -31.07 -1.2 Td [(if )-27(the )-27(gr)17(oup )-27(ID )-27(of )-27(the )-27(new )-27(\336le )-27(does )-27(not )-27(equal )-27(either )-27(the )-27(ef)18(fective )-27(gr)18(oup )-27(ID )-27(of )-27(the)]TJ T* [(pr)18(ocess )-27(or )-27(one )-27(of )-27(the )-27(pr)18(ocess\325s )-27(supplementary )-27(gr)15(oup )-28(IDs )-28(and )-28(if )-28(the )-28(pr)18(ocess )-28(does)]TJ T* [(not )-63(have )-63(super)8(user )-63(privileges, )-63(then )-63(the )-63(set-gr)18(oup-ID )-63(bit )-63(is )-63(automatically )-63(turned)]TJ T* [(of)18(f. )-253(This)-252(pr)18(events )-3(a )-3(user )-3(fr)18(om )-3(cr)18(eating )-3(a )-3(set-gr)20(oup-ID )-3(\336le )-3(owned )-3(by )-3(a )-3(gr)18(oup )-3(that)]TJ -0 -1.2 Td (the user doesn\325t belong to.)Tj 7.999 0 0 7.999 183.5774 300.164 Tm [(Fr)18(eeBSD )-137(8.0 )-137(fails )-137(an )-137(attempt )-137(to )-137(set )-137(the )-137(set-gr)18(oup-ID )-137(in )-137(this )-137(case.)-637(The )-137(other )-137(systems )-137(silently)]TJ 0 -1.25 TD [(turn the bit of)18(f, but don\325t fail the attempt to change the \336le access permissions\ .)]TJ 0 -1.875 TD [(Fr)18(eeBSD )-32(8.0, )-32(Linux )-32(3.2.0, )-32(Mac )-32(OS )-32(X )-32(10.6.8, )-32(and )-32(Solaris )-32(10 )-32(add )-32(another )-32(security )-32(featur)18(e)-282(to)-282(try )-32(to)]TJ -0 -1.25 Td [(pr)18(event )-228(misuse )-228(of )-228(some )-228(of )-228(the )-228(pr)18(otection )-228(bits.)-728(If )-228(a )-228(pr)22(ocess )-227(that )-227(does )-227(not )-227(have )-227(super)6(user)]TJ -0 -1.25 Td [(privileges )-25(writes )-25(to )-25(a )-25(\336le, )-25(the )-25(set-user)18(-ID )-25(and )-25(set-gr)18(oup-ID )-25(bits )-25(ar)]TJ 0.2755 Tc 29.002 0 Td (ea)Tj 0 Tc 1.254 0 Td [(utomatically )-25(turned )-25(of)17(f. )-275(If)]TJ -30.257 -1.25 Td [(malicious )-2(users )-2(\336nd )-2(a )-2(set-gr)18(oup-ID )-2(or )-2(a )-2(set-user)21(-ID )-1(\336le )-1(they )-1(can )-1(write )-1(to, )-1(even )-1(though )-1(they )-1(can)]TJ -0 -1.25 Td (modify the \336le, they lose the special privileges of the \336le.)Tj /TT1 1 Tf 11.9986 0 0 11.9986 93.5876 201.1759 Tm [(4.10 )-776(Stic)20(ky )-278(Bit)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5832 179.5784 Tm (The)Tj /TT0 1 Tf 2.156 0 Td (S_ISVTX)Tj /T1_1 1 Tf 4.682 0 Td [(bit )-232(has )-232(an )-232(inter)18(esting )-232(history)]TJ 0.732 Tc 13.408 0 Td (.O)Tj 0.482 Tc 1.768 0 Td (nv)Tj 0 Tc 1.629 0 Td [(ersions )-232(of )-232(the )-232(UNIX )-232(System )-232(that)]TJ -23.643 -1.2 Td [(pr)18(edated )-219(demand )-219(paging, )-219(this )-219(bit )-219(was )-219(known )-219(as )-219(the)]TJ /T1_2 1 Tf 25.165 0 Td [(sticky )-219(bit)]TJ /T1_1 1 Tf 0.7185 Tc (.I)Tj 0 Tc 5.199 0 Td [(f)-468(it)-468(w)-1(as )-218(set )-218(for )-218(an)]TJ -30.364 -1.2 Td [(executable )-154(pr)18(ogram )-154(\336le, )-154(then )-154(the )-154(\336rst )-154(time )-154(the )-154(pr)18(ogram )-154(was )-154(executed, )-154(a )-154(copy )-154(of )-154(the)]TJ 0 -1.2 TD [(pr)18(ogram\325s )-196(text )-196(was )-196(saved )-196(in )-196(the )-196(swap )-196(ar)19(ea )-196(when )-196(the )-196(pr)18(ocess )-196(terminated.)-696(\(The )-196(text)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47055 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (106)Tj /T1_1 1 Tf 3.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.241 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 664.2601 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (umask)Tj /T1_2 1 Tf 16.4 0 Td [(\336rst print the curr)18(ent \336le mode cr)18(eation mask)]TJ /TT0 1 Tf -17.6 -1.189 Td (002)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (umask -S)Tj /T1_2 1 Tf 16.4 0 Td (print the symbolic form)Tj /TT0 1 Tf -17.6 -1.189 Td (u=rwx,g=rwx,o=rx)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (umask 027)Tj /T1_2 1 Tf 16.4 0 Td [(change the \336le mode cr)18(eation mask)]TJ /TT0 1 Tf -17.6 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (umask -S)Tj /T1_2 1 Tf 16.4 0 Td (print the symbolic form)Tj /TT0 1 Tf -17.6 -1.189 Td (u=rwx,g=rx,o=)Tj /TT2 1 Tf 11.9993 0 0 11.9993 93.5944 572.4656 Tm (4.9)Tj /TT1 1 Tf 3 0 Td (chmod)Tj /TT2 1 Tf (,)Tj /TT1 1 Tf 3.834 0 Td (fchmod)Tj /TT2 1 Tf 0.556 Tc (,a)Tj 0 Tc 4.99 0 Td (nd)Tj /TT1 1 Tf 1.778 0 Td (fchmodat)Tj /TT2 1 Tf 5.356 0 Td (Functions)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5919 554.4667 Tm (The)Tj /TT0 1 Tf 2.226 0 Td (chmod)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.802 0 Td (fchmod)Tj /T1_1 1 Tf 0.5517 Tc (,a)Tj 0 Tc 4.902 0 Td (nd)Tj /TT0 1 Tf 1.745 0 Td (fchmodat)Tj /T1_1 1 Tf 5.352 0 Td [(functions )-302(allow )-302(us )-302(to )-302(change )-302(the )-302(\336le )-302(access)]TJ -18.025 -1.2 Td (permissions for an existing \336le.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5913 528.1683 Tm (#include )Tj 0 -1.783 TD (int chmod\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,m)Tj 0 Tc 18.944 0 Td (ode_t)Tj /T1_2 1 Tf 3.6 0 Td (mode)Tj /TT0 1 Tf (\);)Tj -22.544 -1.783 Td (int fchmod\(int)Tj /T1_2 1 Tf 9 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,m)Tj 0 Tc 2.578 0 Td (ode_t)Tj /T1_2 1 Tf 3.6 0 Td (mode)Tj /TT0 1 Tf (\);)Tj -15.178 -1.783 Td (int fchmodat\(int)Tj /T1_2 1 Tf 10.2 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,m)Tj 0 Tc 12.344 0 Td (ode_t)Tj /T1_2 1 Tf 3.6 0 Td (mode)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.911 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -10.97 -1.783 Td [(All thr)18(ee r)18(eturn: 0 if OK,)]TJ /TT3 1 Tf 11.001 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4595.25 cm 0 0 m 0 777 l 3900 777 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 448.3462 Tm (The)Tj /TT0 1 Tf 2.258 0 Td (chmod)Tj /T1_1 1 Tf 3.584 0 Td [(function )-334(operates )-334(on )-334(the )-334(speci\336ed )-334(\336le, )-334(wher)18(eas )-334(the)]TJ /TT0 1 Tf 25.266 0 Td (fchmod)Tj /T1_1 1 Tf 4.184 0 Td (function)Tj -35.293 -1.2 Td [(operates )-90(on )-90(a )-90(\336le )-90(that )-90(has )-90(alr)17(eady )-90(been )-90(opened.)-591(The)]TJ /TT0 1 Tf 24.273 0 Td (fchmodat)Tj /T1_1 1 Tf 5.14 0 Td [(function )-90(behaves )-90(like)]TJ /TT0 1 Tf -29.414 -1.2 Td (chmod)Tj /T1_1 1 Tf 3.302 0 Td [(when )-52(the)]TJ /T1_2 1 Tf 4.468 0 Td (pathname)Tj /T1_1 1 Tf 4.246 0 Td [(ar)18(gument )-52(is )-52(absolute )-52(or )-52(when )-52(the)]TJ /T1_2 1 Tf 15.361 0 Td (fd)Tj /T1_1 1 Tf 1.08 0 Td [(ar)18(gument )-52(has )-52(the )-52(value)]TJ /TT0 1 Tf -28.457 -1.2 Td (AT_FDCWD)Tj /T1_1 1 Tf 5.115 0 Td [(and )-65(the)]TJ /T1_2 1 Tf 3.709 0 Td (pathname)Tj /T1_1 1 Tf 4.259 0 Td [(ar)18(gument )-65(is )-65(r)19(elative. )-315(Otherwise,)]TJ /TT0 1 Tf 14.934 0 Td (fchmodat)Tj /T1_1 1 Tf 5.115 0 Td [(evaluates )-65(the)]TJ /T1_2 1 Tf -33.131 -1.2 Td (pathname)Tj /T1_1 1 Tf -0.018 Tc 4.559 0 Td (re)Tj 0 Tc 0.856 0 Td [(lative )-364(to )-364(the )-364(open )-364(dir)18(ectory )-364(r)16(efer)18(enced )-364(by )-364(the)]TJ /T1_2 1 Tf 22.995 0 Td (fd)Tj /T1_1 1 Tf 1.392 0 Td [(ar)18(gument. )-614(The)]TJ /T1_2 1 Tf 7.709 0 Td (\337ag)Tj /T1_1 1 Tf -37.511 -1.2 Td [(ar)18(gument )-750(can )-750(be )-750(used )-750(to )-750(change )-750(the )-750(behavior )-750(of)]TJ /TT0 1 Tf 28.169 0 Td (fchmodat)Tj /T1_1 1 Tf 0.0833 Tc 4.883 0 Td (\321w)Tj 0 Tc 1.917 0 Td [(hen )-750(the)]TJ /TT0 1 Tf -34.97 -1.2 Td (AT_SYMLINK_NOFOLLOW)Tj /T1_1 1 Tf 11.65 0 Td (\337ag is set,)Tj /TT0 1 Tf 4.608 0 Td (fchmodat)Tj /T1_1 1 Tf 5.05 0 Td (doesn\325t follow symbolic links.)Tj -0.092 Tc -19.508 -1.2 Td [(To )-256(c)]TJ 0 Tc 1.833 0 Td [(hange )-72(the )-72(permission )-72(bits )-72(of )-72(a )-72(\336le, )-72(the )-72(ef)18(fective )-72(user )-72(ID )-72(of )-72(the )-72(pr)19(ocess )-72(must )-72(be)]TJ -3.633 -1.2 Td [(equal to the owner ID of the \336le, or the pr)18(ocess must have super)8(user permissions.)]TJ 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 1.924 0 Td (mode)Tj /T1_1 1 Tf 2.361 0 Td (is speci\336ed as the bitwise OR of the constants shown in Figur)Tj 0.25 Tc 27.006 0 Td (e4)Tj 0 Tc 1.229 0 Td [(.1)55(1.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2182.25 3288.25 cm 0 0 m 2127 0 l S Q Q BT /T1_2 1 Tf 7.9986 0 0 7.9986 237.7492 320.7423 Tm (mode)Tj /T1_1 1 Tf 12.025 0 Td (Description)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2182.25 3168.25 cm 0 0 m 2127 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2182.25 3148.25 cm 0 0 m 2127 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 222.1827 306.7264 Tm (S_ISUID)Tj /T1_1 1 Tf 7.5 0 Td [(set-user)18(-ID on execution)]TJ /TT0 1 Tf -7.5 -1.25 Td (S_ISGID)Tj /T1_1 1 Tf 7.5 0 Td [(set-gr)18(oup-ID on execution)]TJ /TT0 1 Tf -7.5 -1.25 Td (S_ISVTX)Tj /T1_1 1 Tf 7.5 0 Td (saved-text \(sticky bit\))Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2182.25 2828.25 cm 0 0 m 2127 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 222.1693 274.7176 Tm (S_IRWXU)Tj /T1_1 1 Tf -0.018 Tc 7.5 0 Td (re)Tj 0 Tc 0.856 0 Td (ad, write, and execute by user \(owner\))Tj /TT0 1 Tf -6.556 -1.25 Td (S_IRUSR)Tj /T1_1 1 Tf -0.018 Tc 5.7 0 Td (re)Tj 0 Tc 0.856 0 Td (ad by user \(owner\))Tj /TT0 1 Tf -6.556 -1.25 Td (S_IWUSR)Tj /T1_1 1 Tf 5.7 0 Td (write by user \(owner\))Tj /TT0 1 Tf -5.7 -1.25 Td (S_IXUSR)Tj /T1_1 1 Tf 5.7 0 Td (execute by user \(owner\))Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2182.25 2408.25 cm 0 0 m 2127 0 l S Q Q BT /TT0 1 Tf 7.9971 0 0 7.9971 222.156 232.7162 Tm (S_IRWXG)Tj /T1_1 1 Tf -0.018 Tc 7.5 0 Td (re)Tj 0 Tc 0.856 0 Td [(ad, write, and execute by gr)18(oup)]TJ /TT0 1 Tf -6.556 -1.25 Td (S_IRGRP)Tj /T1_1 1 Tf -0.018 Tc 5.7 0 Td (re)Tj 0 Tc 0.856 0 Td [(ad by gr)18(oup)]TJ /TT0 1 Tf -6.556 -1.25 Td (S_IWGRP)Tj /T1_1 1 Tf 5.7 0 Td [(write by gr)18(oup)]TJ /TT0 1 Tf -5.7 -1.25 Td (S_IXGRP)Tj /T1_1 1 Tf 5.7 0 Td [(execute by gr)18(oup)]TJ ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2182.25 1988.25 cm 0 0 m 2127 0 l S Q Q BT /TT0 1 Tf 7.9966 0 0 7.9966 222.1427 190.7199 Tm (S_IRWXO)Tj /T1_1 1 Tf -0.018 Tc 7.5 0 Td (re)Tj 0 Tc 0.856 0 Td (ad, write, and execute by other \(world\))Tj /TT0 1 Tf -6.556 -1.25 Td (S_IROTH)Tj /T1_1 1 Tf -0.018 Tc 5.7 0 Td (re)Tj 0 Tc 0.856 0 Td (ad by other \(world\))Tj /TT0 1 Tf -6.556 -1.25 Td (S_IWOTH)Tj /T1_1 1 Tf 5.7 0 Td (write by other \(world\))Tj /TT0 1 Tf -5.7 -1.25 Td (S_IXOTH)Tj /T1_1 1 Tf 5.7 0 Td (execute by other \(world\))Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2182.25 1568.25 cm 0 0 m 2127 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2762.25 1568.25 cm 0 0 m 0 1720 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4309.25 1568.25 cm 0 0 m 0 1720 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2182.25 1568.25 cm 0 0 m 0 1720 l S Q Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 191.1442 138.7334 Tm [(Figure 4.1)37(1)]TJ /T1_1 1 Tf 5.658 0 Td (The)Tj /T1_2 1 Tf 1.924 0 Td (mode)Tj /T1_1 1 Tf 2.361 0 Td (constants for)Tj /TT0 1 Tf 5.928 0 Td (chmod)Tj /T1_1 1 Tf 3.25 0 Td [(functions, fr)18(om)]TJ /TT0 1 Tf 7.02 0 Td ()Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47056 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (104)Tj /T1_1 1 Tf 3.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.241 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(In )-302(this )-302(example, )-302(the )-302(set-user)18(-ID )-302(pr)18(ogram )-302(can )-302(determine )-302(that )-302(the )-302(r)18(eal )-302(user )-302(cannot)]TJ 0 -1.2 TD [(normally r)18(ead the \336le, even though the)]TJ /TT0 1 Tf 17.46 0 Td (open)Tj /T1_1 1 Tf 2.65 0 Td (function will succeed.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 6570.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 183.578 636.9236 Tm [(In )-10(the )-10(pr)19(eceding )-10(example )-10(and )-10(in )-10(Chapter )-10(8, )-10(we\325ll )-10(sometimes )-10(switch )-10(to )-10(become )-10(the )-10(super)8(user )-10(to)]TJ 0 -1.25 TD [(demonstrate )-335(how )-335(something )-335(works.)-835(If )-335(you\325r)]TJ 0.5854 Tc 21.394 0 Td (eo)Tj 0.5853 Tc 1.61 0 Td (nam)Tj 0 Tc 3.136 0 Td [(ultiuser )-335(system )-335(and )-335(do )-335(not )-335(have)]TJ -26.14 -1.25 Td [(super)8(user permission, you won\325t be able to duplicate these examples comple\ tely)111(.)]TJ /TT1 1 Tf 11.9986 0 0 11.9986 93.5886 584.9298 Tm (4.8)Tj /TT2 1 Tf 3 0 Td (umask)Tj /TT1 1 Tf 3.556 0 Td (Function)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5842 563.3324 Tm [(Now )-118(that )-118(we\325ve )-118(described )-118(the )-118(nine )-118(permission )-118(bits )-118(associated )-118(with )-118(every )-118(\336le, )-118(we )-118(can)]TJ 0 -1.2 TD [(describe the \336le mode cr)18(eation mask that is associated with every pr)18(ocess.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 1.942 0 Td (umask)Tj /T1_1 1 Tf 3.268 0 Td [(function )-18(sets )-18(the )-18(\336le )-18(mode )-18(cr)18(eation )-18(mask )-18(for )-18(the )-18(pr)18(ocess )-18(and )-18(r)18(eturns )-18(the)]TJ -7.011 -1.2 Td [(pr)18(evious value.)-500(\(This is one of the few functions that doesn\325t have an err)18(or r)18(eturn.\))]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.582 509.4389 Tm (#include )Tj 0 -1.783 TD (mode_t umask\(mode_t)Tj /T1_2 1 Tf 12 0 Td (cmask)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 8.668 -1.783 Td [(Returns: pr)18(evious \336le mode cr)18(eation mask)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4729.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 458.1175 Tm (The)Tj /T1_2 1 Tf 2.116 0 Td (cmask)Tj /T1_1 1 Tf 2.904 0 Td [(ar)18(gument )-191(is )-191(formed )-191(as )-191(the )-191(bitwise )-191(OR )-191(of )-191(any )-191(of )-191(the )-191(nine )-191(constants )-191(fr)12(om)]TJ -5.019 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e4)Tj 0 Tc 1.229 0 Td (.6:)Tj /TT0 1 Tf 1.25 0 Td (S_IRUSR)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.7 0 Td (S_IWUSR)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 5.2 0 Td (nd so on.)Tj -12.962 -1.2 Td [(The )-122(\336le )-122(mode )-122(cr)18(eation )-122(mask )-122(is )-122(used )-122(whenever )-122(the )-122(pr)18(ocess )-122(cr)21(eates )-122(a )-122(new )-122(\336le )-122(or )-122(a)]TJ -1.8 -1.2 Td [(new )-24(dir)18(ectory)]TJ 0.5245 Tc 6.084 0 Td (.\()Tj 0 Tc 1.107 0 Td [(Recall )-24(fr)18(om )-24(Sections )-24(3.3 )-24(and )-24(3.4 )-24(our )-24(description )-24(of )-24(the)]TJ /TT0 1 Tf 24.167 0 Td (open)Tj /T1_1 1 Tf 2.674 0 Td (and)Tj /TT0 1 Tf 1.967 0 Td (creat)Tj /T1_1 1 Tf -36 -1.2 Td [(functions. )-343(Both)-344(accept )-93(a)]TJ /T1_2 1 Tf 11.364 0 Td (mode)Tj /T1_1 1 Tf 2.454 0 Td [(ar)18(gument )-93(that )-93(speci\336es )-93(the )-93(new )-93(\336le\325s )-93(access )-93(permission)]TJ -13.819 -1.2 Td [(bits.\) )-286(W)]TJ 0.286 Tc 3.621 0 Td (ed)Tj 0 Tc 1.376 0 Td [(escribe )-36(how )-36(to )-36(cr)18(eate )-36(a )-36(new )-36(dir)18(ectory )-36(in )-36(Section )-36(4.21.)-536(Any )-36(bits )-36(that )-36(ar)18(e)]TJ /T1_2 1 Tf 31.844 0 Td (on)Tj /T1_1 1 Tf 1.286 0 Td (in)Tj -38.127 -1.2 Td [(the \336le mode cr)18(eation mask ar)]TJ 0.25 Tc 13.316 0 Td (et)Tj 0 Tc 1.055 0 Td (urned)Tj /T1_2 1 Tf 2.92 0 Td (off)Tj /T1_1 1 Tf 1.25 0 Td (in the \336le\325s)Tj /T1_2 1 Tf 5.087 0 Td (mode)Tj /T1_1 1 Tf (.)Tj /TT1 1 Tf -27.228 -2.4 Td (Example)Tj /T1_1 1 Tf 3.6 -2.16 Td [(The )-182(pr)18(ogram )-182(in )-182(Figur)]TJ 0.4322 Tc 10.085 0 Td (e4)Tj 0 Tc 1.411 0 Td [(.9 )-182(cr)18(eates )-182(two )-182(\336les: )-182(one )-182(with )-182(a)]TJ /TT0 1 Tf 14.699 0 Td (umask)Tj /T1_1 1 Tf 3.432 0 Td [(of )-182(0 )-182(and )-182(one )-182(with )-182(a)]TJ /TT0 1 Tf -29.627 -1.2 Td (umask)Tj /T1_1 1 Tf 3.25 0 Td [(that disables all the gr)18(oup and other permission bits.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3214.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9978 0 0 8.9978 129.5689 311.8242 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (#define RWRWRW \(S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH\))Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (umask\(0\);)Tj T* (if \(creat\("foo", RWRWRW\) < 0\))Tj 2.4 -1.189 Td (err_sys\("creat error for foo"\);)Tj -2.4 -1.189 Td (umask\(S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH\);)Tj 0 -1.189 TD (if \(creat\("bar", RWRWRW\) < 0\))Tj 2.4 -1.189 Td (err_sys\("creat error for bar"\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1573.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 254.8755 141.2556 Tm (Figure 4.9)Tj /T1_1 1 Tf 5.195 0 Td (Example of)Tj /TT0 1 Tf 5.26 0 Td (umask)Tj /T1_1 1 Tf 3.25 0 Td (function)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47057 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (102)Tj /T1_1 1 Tf 3.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.241 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(Fr)18(eeBSD )-174(8.0 )-174(and )-174(Mac )-174(OS )-174(X )-174(10.6.8 )-174(always )-174(copy )-174(the )-174(new )-174(\336le\325s )-174(gr)12(oup )-175(ID )-175(fr)18(om )-175(the )-175(dir)20(ectory)111(.)]TJ 0 -1.25 Td [(Several )-157(Linux )-157(\336le )-157(systems )-157(allow )-157(the )-157(choice )-157(between )-157(the )-157(two )-157(options )-157(to )-157(be )-157(selected )-157(using )-157(a)]TJ /TT0 1 Tf 0 -1.25 TD (mount)Tj /T1_1 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.591 -0.04 Td [(command )-8(option.)-508(The )-8(default )-8(behavior )-8(for )-8(Linux )-8(3.2.0 )-8(and )-8(Solaris )-8(10 )-8(is )-8(to )-8(determine)]TJ -4.424 -1.25 Td [(the )-18(gr)18(oup )-18(ID )-18(of )-18(a )-18(new )-18(\336le )-18(depending )-18(on )-18(whether )-18(the )-18(set-gr)18(oup-ID )-18(bit )-18(is )-18(set )-18(for )-18(the )-18(dir)18(ectory )-18(in)]TJ T* [(which )-54(the )-54(\336le )-54(is )-54(cr)18(eated. )-304(If)-304(this )-54(bit )-54(is )-54(set, )-54(the )-54(new )-54(\336le\325s )-54(gr)18(oup )-54(ID )-54(is )-54(copied )-54(fr)18(om )-54(the )-54(dir)18(ectory;)]TJ 0 -1.25 Td [(otherwise, the new \336le\325s gr)18(oup ID is set to the ef)18(fective gr)18(oup ID of the pr)18(ocess.)]TJ 9.9994 0 0 9.9994 147.5913 602.9638 Tm [(Using )-101(the )-101(second )-101(option)]TJ 0.0833 Tc 11.134 0 Td (\321i)Tj 0 Tc 1.374 0 Td [(nheriting )-101(the )-101(dir)18(ectory\325s )-101(gr)18(oup )-101(ID)]TJ 0.0833 Tc 15.481 0 Td (\321a)Tj 0 Tc 1.583 0 Td [(ssur)18(es )-101(us )-101(that )-101(all)]TJ -31.372 -1.2 Td [(\336les )-277(and )-277(dir)18(ectories )-277(cr)17(eated )-278(in )-278(that )-278(dir)18(ectory )-278(will )-278(have )-278(the )-278(same )-278(gr)18(oup )-278(ID )-278(as )-278(the)]TJ 0 -1.2 TD [(dir)18(ectory)]TJ 0.592 Tc 3.914 0 Td (.T)Tj 0 Tc 1.455 0 Td [(his )-92(gr)18(oup )-92(ownership )-92(of )-92(\336les )-92(and )-92(dir)18(ectories )-92(will )-92(then )-92(pr)18(opagate )-92(down )-92(the)]TJ -5.369 -1.2 Td [(hierar)18(chy )-21(fr)18(om )-21(that )-21(point.)-521(This )-21(is )-21(used )-21(in )-21(the )-21(Linux )-21(dir)19(ectory)]TJ /TT0 1 Tf 27.535 0 Td (/var/mail)Tj /T1_1 1 Tf 0.271 Tc (,f)Tj 0 Tc 6.254 0 Td [(or )-21(example.)]TJ 7.9995 0 0 7.9995 183.5885 549.367 Tm [(As )-99(we )-99(mentioned )-99(earlier)]TJ 0.3488 Tc 11.096 0 Td (,t)Tj 0 Tc 0.925 0 Td [(his )-99(option )-99(for )-99(gr)18(oup )-99(ownership )-99(is )-99(the )-99(default )-99(for )-99(Fr)20(eeBSD )-99(8.0 )-99(and)]TJ -12.021 -1.25 Td [(Mac OS X)-313(10.6.8, )-63(but )-63(an )-63(option )-63(for )-63(Linux )-63(and )-63(Solaris.)-563(Under )-63(Solaris )-63(10, )-63(and )-63(by )-63(default )-63(under)]TJ 0 -1.25 TD [(Linux )-19(3.2.0, )-19(we )-19(have )-19(to )-19(enable )-19(the )-19(set-gr)17(oup-ID )-19(bit, )-19(and )-19(the)]TJ /TT0 1 Tf 26.584 0 Td (mkdir)Tj /T1_1 1 Tf 3.269 0 Td [(function )-19(has )-19(to )-19(pr)18(opagate )-19(a)]TJ -29.853 -1.25 Td [(dir)18(ectory\325s set-gr)18(oup-ID bit automatically for this to work.)-500(\(This is described in Section 4.21.\))]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5941 487.3708 Tm (4.7)Tj /TT2 1 Tf 3 0 Td (access)Tj /TT1 1 Tf 4.156 0 Td (and)Tj /TT2 1 Tf 2.334 0 Td (faccessat)Tj /TT1 1 Tf 5.956 0 Td (Functions)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5915 464.5721 Tm [(As )-53(we )-53(described )-53(earlier)]TJ 0.3028 Tc 10.466 0 Td (,w)Tj 0 Tc 1.387 0 Td [(hen )-53(we )-53(open )-53(a )-53(\336le, )-53(the )-53(kernel )-53(performs )-53(its )-53(access )-53(tests )-53(based)]TJ -11.853 -1.2 Td [(on )-245(the )-245(ef)18(fective )-245(user )-245(and )-245(gr)18(oup )-245(IDs.)-745(Sometimes, )-245(however)]TJ 0.4948 Tc 27.388 0 Td (,a)Tj 0 Tc [(pr)18(ocess )-245(wants )-245(to )-245(test)]TJ -27.388 -1.2 Td [(accessibility )-170(based )-170(on )-170(the )-170(r)18(eal )-170(user )-170(and )-170(gr)18(oup )-170(IDs.)-670(This )-170(is )-170(useful )-170(when )-170(a )-170(pr)18(ocess )-170(is)]TJ -0.008 Tc 0 -1.2 TD (ru)Tj 0 Tc 0.99 0 Td [(nning )-41(as )-41(someone )-41(else, )-41(using )-41(either )-41(the )-41(set-user)15(-ID )-41(or )-41(the )-41(set-gr)18(oup-ID )-41(featur)17(e. )-291(Even)]TJ -0.99 -1.2 Td [(though )-72(a )-72(pr)18(ocess )-72(might )-72(be )-72(set-user)18(-ID )-72(to )-72(r)18(oot, )-72(it )-72(might )-72(still )-72(want )-72(to )-72(verify )-72(that )-72(the )-72(r)15(eal)]TJ -0 -1.2 Td [(user )-63(can )-63(access )-63(a )-63(given )-63(\336le.)-561(The)]TJ /TT0 1 Tf 14.852 0 Td (access)Tj /T1_1 1 Tf 3.913 0 Td (and)Tj /TT0 1 Tf 2.006 0 Td (faccessat)Tj /T1_1 1 Tf 5.713 0 Td [(functions )-62(base )-62(their )-62(tests )-62(on)]TJ -26.483 -1.2 Td [(the )-100(r)18(eal )-100(user )-100(and )-100(gr)19(oup )-100(IDs.)-600(\(Replace)]TJ /T1_2 1 Tf 17.59 0 Td (effective)Tj /T1_1 1 Tf 3.591 0 Td (with)Tj /T1_2 1 Tf -0.018 Tc 2.383 0 Td (re)Tj 0 Tc 0.76 0 Td (al)Tj /T1_1 1 Tf 1.072 0 Td [(in )-100(the )-100(four )-100(steps )-100(at )-100(the )-100(end )-100(of)]TJ -25.396 -1.2 Td (Section 4.5.\))Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5903 359.0785 Tm (#include )Tj 0 -1.783 TD (int access\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 19.544 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (mode)Tj /TT0 1 Tf (\);)Tj -21.344 -1.783 Td (int faccessat\(int)Tj /T1_2 1 Tf 10.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 12.344 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (mode)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.911 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -7.982 -1.783 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT3 1 Tf 9.213 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3064.25 cm 0 0 m 0 617 l 3900 617 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 288.1154 Tm (The)Tj /T1_2 1 Tf 1.99 0 Td (mode)Tj /T1_1 1 Tf 2.427 0 Td [(is )-66(either )-66(the )-66(value)]TJ /TT0 1 Tf 8.357 0 Td (F_OK)Tj /T1_1 1 Tf 2.716 0 Td [(to )-66(test )-66(if )-66(a )-66(\336le )-66(exists, )-66(or )-66(the )-66(bitwise )-66(OR )-66(of )-66(any )-66(of )-66(the)]TJ -15.49 -1.2 Td (\337ags shown in Figur)Tj 0.25 Tc 9.062 0 Td (e4)Tj 0 Tc 1.229 0 Td (.7.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2577.25 2621.25 cm 0 0 m 1338 0 l S Q Q BT /T1_2 1 Tf 7.9986 0 0 7.9986 262.8247 254.1043 Tm (mode)Tj /T1_1 1 Tf 7.089 0 Td (Description)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2577.25 2501.25 cm 0 0 m 1338 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2577.25 2481.25 cm 0 0 m 1338 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 261.6532 240.0924 Tm (R_OK)Tj /T1_1 1 Tf 3.9 0 Td [(test for r)18(ead permission)]TJ /TT0 1 Tf -3.9 -1.25 Td (W_OK)Tj /T1_1 1 Tf 3.9 0 Td (test for write permission)Tj /TT0 1 Tf -3.9 -1.25 Td (X_OK)Tj /T1_1 1 Tf 3.9 0 Td (test for execute permission)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2577.25 2161.25 cm 0 0 m 1338 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2869.25 2161.25 cm 0 0 m 0 460 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3915.25 2161.25 cm 0 0 m 0 460 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2577.25 2161.25 cm 0 0 m 0 460 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 205.3864 198.0906 Tm (Figure 4.7)Tj /T1_1 1 Tf 5.195 0 Td (The)Tj /T1_2 1 Tf 1.924 0 Td (mode)Tj /T1_1 1 Tf 2.361 0 Td (\337ags for)Tj /TT0 1 Tf 3.862 0 Td (access)Tj /T1_1 1 Tf 3.85 0 Td [(function, fr)18(om)]TJ /TT0 1 Tf 6.596 0 Td ()Tj /T1_1 1 Tf 9.997 0 0 9.997 147.5561 174.0978 Tm (The)Tj /TT0 1 Tf 2.153 0 Td (faccessat)Tj /T1_1 1 Tf 5.879 0 Td [(function )-229(behaves )-229(like)]TJ /TT0 1 Tf 10.343 0 Td (access)Tj /T1_1 1 Tf 4.079 0 Td [(when )-229(the)]TJ /T1_2 1 Tf 4.822 0 Td (pathname)Tj /T1_1 1 Tf 4.423 0 Td [(ar)18(gument )-229(is)]TJ -33.5 -1.2 Td [(absolute )-52(or )-52(when )-52(the)]TJ /T1_2 1 Tf 9.736 0 Td (fd)Tj /T1_1 1 Tf 1.08 0 Td [(ar)18(gument )-52(has )-52(the )-52(value)]TJ /TT0 1 Tf 10.846 0 Td (AT_FDCWD)Tj /T1_1 1 Tf 5.102 0 Td [(and )-52(the)]TJ /T1_2 1 Tf 3.684 0 Td (pathname)Tj /T1_1 1 Tf 4.246 0 Td [(ar)18(gument)]TJ -34.694 -1.2 Td [(is )-17(r)18(elative. )-267(Otherwise,)]TJ /TT0 1 Tf 10.169 0 Td (faccessat)Tj /T1_1 1 Tf 5.667 0 Td [(evaluates )-17(the)]TJ /T1_2 1 Tf 6.087 0 Td (pathname)Tj /T1_1 1 Tf -0.018 Tc 4.211 0 Td (re)Tj 0 Tc 0.856 0 Td [(lative )-17(to )-17(the )-17(open )-17(dir)19(ectory)]TJ -0.018 Tc -26.989 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(enced by the)]TJ /T1_2 1 Tf 7.03 0 Td (fd)Tj /T1_1 1 Tf 1.028 0 Td [(ar)18(gument.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47058 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.6)]TJ 24.776 0 Td [(Ownership )-250(of )-250(New )-250(Files )-250(and )-250(Dir)18(ectories)]TJ /T1_1 1 Tf 21.057 0 Td (101)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-80(\336le )-80(access )-80(tests )-80(that )-80(the )-80(kernel )-80(performs )-80(each )-80(time )-80(a )-80(pr)18(ocess )-80(opens, )-80(cr)18(eates, )-80(or)]TJ -1.8 -1.2 Td [(deletes )-71(a )-71(\336le )-71(depend )-71(on )-71(the )-71(owners )-71(of )-71(the )-71(\336le )-71(\()]TJ /TT0 1 Tf (st_uid)Tj /T1_0 1 Tf 25.207 0 Td (and)Tj /TT0 1 Tf 2.014 0 Td (st_gid)Tj /T1_0 1 Tf [(\), )-71(the )-71(ef)18(fective )-71(IDs)]TJ -27.221 -1.2 Td [(of )-67(the )-67(pr)18(ocess )-67(\(ef)18(fective )-67(user )-67(ID )-67(and )-67(ef)19(fective )-67(gr)18(oup )-67(ID\), )-67(and )-67(the )-67(supplementary )-67(gr)19(oup)]TJ 0 -1.2 TD [(IDs )-67(of )-67(the )-67(pr)18(ocess, )-67(if )-67(supported.)-567(The )-67(two )-67(owner )-67(IDs )-67(ar)]TJ 0.3168 Tc 24.852 0 Td (ep)Tj -0.018 Tc 1.397 0 Td (ro)Tj 0 Tc 0.923 0 Td [(perties )-67(of )-67(the )-67(\336le, )-67(wher)19(eas)]TJ -27.172 -1.2 Td [(the )-131(two )-131(ef)18(fective )-131(IDs )-131(and )-131(the )-131(supplementary )-131(gr)18(oup )-131(IDs )-131(ar)]TJ 0.3813 Tc 26.666 0 Td (ep)Tj -0.018 Tc 1.461 0 Td (ro)Tj 0 Tc 0.923 0 Td [(perties )-131(of )-131(the )-131(pr)17(ocess.)]TJ -29.05 -1.2 Td [(The tests performed by the kernel ar)18(e)-250(as)-250(follows:)]TJ 1.8 -2.4 Td [(1. )-633(If)-261(the )-11(ef)18(fective )-11(user )-11(ID )-11(of )-11(the )-11(pr)18(ocess )-11(is )-11(0 )-11(\(the )-11(super)8(user\), )-11(access )-11(is )-11(allowed.)-517(This)]TJ 1.633 -1.2 Td [(gives the super)8(user fr)18(ee r)18(ein thr)18(oughout the entir)]TJ 0.25 Tc 21.733 0 Td (e\336)Tj 0 Tc 1.334 0 Td (le system.)Tj -24.7 -1.84 Td [(2. )-633(If)-385(the )-135(ef)18(fective )-135(user )-135(ID )-135(of )-135(the )-135(pr)18(ocess )-135(equals )-135(the )-135(owner )-135(ID )-135(of )-135(the )-135(\336le )-135(\(i.e., )-135(the)]TJ 1.633 -1.2 Td [(pr)18(ocess )-451(owns )-451(the )-451(\336le\), )-451(access )-451(is )-451(allowed )-451(if )-451(the )-451(appr)14(opriate )-451(user )-451(access)]TJ T* [(permission )-232(bit )-232(is )-232(set.)-732(Otherwise, )-232(permission )-232(is )-232(denied.)-734(By)]TJ /T1_2 1 Tf 28.068 0 Td [(appr)18(opriate )-232(access)]TJ -28.068 -1.2 Td [(permission )-152(bit)]TJ /T1_0 1 Tf [(,)-402(we)-402(m)-1(ean )-152(that )-152(if )-152(the )-152(pr)18(ocess )-152(is )-152(opening )-152(the )-152(\336le )-152(for )-152(r)18(eading, )-152(the)]TJ T* [(user)18(-r)18(ead )-226(bit )-226(must )-226(be )-226(on.)-726(If )-226(the )-226(pr)17(ocess )-226(is )-226(opening )-226(the )-226(\336le )-226(for )-226(writing, )-226(the)]TJ 0 -1.2 Td [(user)18(-write bit must be on.)-502(If the pr)18(ocess is executing the \336le, the user)18(-execute bit)]TJ 0 -1.2 Td (must be on.)Tj -1.633 -1.84 Td [(3. )-633(If)-254(the )-4(ef)18(fective )-4(gr)18(oup )-4(ID )-4(of )-4(the )-4(pr)18(ocess )-4(or )-4(one )-4(of )-4(the )-4(supplementary )-4(gr)18(oup )-4(IDs )-4(of)]TJ 1.633 -1.2 Td [(the )-89(pr)18(ocess )-89(equals )-89(the )-89(gr)18(oup )-89(ID )-89(of )-89(the )-89(\336le, )-89(access )-89(is )-89(allowed )-89(if )-89(the )-89(appr)18(opriate)]TJ T* [(gr)18(oup access permission bit is set.)-500(Otherwise, permission is denied.)]TJ -1.633 -1.84 Td [(4. )-633(If)-703(the )-453(appr)18(opriate )-453(other )-453(access )-453(permission )-453(bit )-453(is )-453(set, )-453(access )-453(is )-453(allowed.)]TJ 1.633 -1.2 Td (Otherwise, permission is denied.)Tj -1.633 -2.4 Td [(These )-267(four )-267(steps )-267(ar)]TJ 0.5172 Tc 9.137 0 Td (et)Tj 0 Tc 1.322 0 Td [(ried )-267(in )-267(sequence.)-767(Note )-267(that )-267(if )-267(the )-267(pr)18(ocess )-267(owns )-267(the )-267(\336le)]TJ -12.259 -1.2 Td [(\(step 2\),)-460(access )-210(is )-210(granted )-210(or )-210(denied )-210(based )-210(only )-210(on )-210(the )-210(user )-210(access )-210(permissions; )-210(the)]TJ T* [(gr)18(oup )-111(permissions )-111(ar)]TJ 0.3615 Tc 9.623 0 Td (en)Tj 0 Tc 1.423 0 Td [(ever )-111(looked )-111(at.)-612(Similarly)111(,)-361(if)-361(t)-1(he )-111(pr)18(ocess )-111(does )-111(not )-111(own )-111(the )-111(\336le)]TJ -11.046 -1.2 Td [(but )-182(belongs )-182(to )-182(an )-182(appr)18(opriate )-182(gr)17(oup, )-182(access )-182(is )-182(granted )-182(or )-182(denied )-182(based )-182(only )-182(on )-182(the)]TJ T* [(gr)18(oup access permissions; the other permissions ar)]TJ 0.25 Tc 22.42 0 Td (en)Tj 0 Tc 1.311 0 Td (ot looked at.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5941 301.7819 Tm [(4.6 )-1332(Owner)15(ship )-278(of )-278(Ne)]TJ 0.556 Tc 11.472 0 Td (wF)Tj 0 Tc 1.945 0 Td [(iles )-278(and )-278(Directories)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5918 282.583 Tm [(When )-38(we )-38(described )-38(the )-38(cr)17(eation )-38(of )-38(a )-38(new )-38(\336le )-38(in )-38(Chapter )-38(3 )-38(using )-38(either)]TJ /TT0 1 Tf 31.832 0 Td (open)Tj /T1_0 1 Tf 2.688 0 Td (or)Tj /TT0 1 Tf 1.229 0 Td (creat)Tj /T1_0 1 Tf (,)Tj -35.75 -1.2 Td [(we )-55(never )-55(said )-55(which )-55(values )-55(wer)]TJ 0.305 Tc 14.449 0 Td (ea)Tj 0 Tc 1.284 0 Td [(ssigned )-55(to )-55(the )-55(user )-55(ID )-55(and )-55(gr)18(oup )-55(ID )-55(of )-55(the )-55(new )-55(\336le.)]TJ -0.092 Tc -15.733 -1.2 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-140(see )-140(how )-140(to )-140(cr)20(eate )-139(a )-139(new )-139(dir)18(ectory )-139(in )-139(Section )-139(4.21 )-139(when )-139(we )-139(describe )-139(the)]TJ /TT0 1 Tf 34.613 0 Td (mkdir)Tj /T1_0 1 Tf -36 -1.2 Td [(function. )-258(The)]TJ -0.008 Tc 6.397 0 Td (ru)Tj 0 Tc 0.99 0 Td [(les )-8(for )-8(the )-8(ownership )-8(of )-8(a )-8(new )-8(dir)18(ectory )-8(ar)]TJ 0.2582 Tc 18.831 0 Td (ei)Tj 0 Tc 1.028 0 Td [(dentical )-8(to )-8(the )-8(r)8(ules )-8(in )-8(this)]TJ -27.246 -1.2 Td (section for the ownership of a new \336le.)Tj 1.8 -1.2 Td [(The )-174(user )-174(ID )-174(of )-174(a )-174(new )-174(\336le )-174(is )-174(set )-174(to )-174(the )-174(ef)17(fective )-174(user )-174(ID )-174(of )-174(the )-174(pr)18(ocess. )-424(POSIX.1)]TJ -1.8 -1.2 Td [(allows )-236(an )-236(implementation )-236(to )-236(choose )-236(one )-236(of )-236(the )-236(following )-236(options )-236(to )-236(determine )-236(the)]TJ T* [(gr)18(oup ID of a new \336le:)]TJ 1.8 -1.92 Td [(1. )-633(The)-250(gr)18(oup ID of a new \336le can be the ef)18(fective gr)18(oup ID of the pr)18(ocess.)]TJ 0 -1.6 TD [(2. )-633(The)-281(gr)18(oup )-31(ID )-31(of )-31(a )-31(new )-31(\336le )-31(can )-31(be )-31(the )-31(gr)18(oup )-31(ID )-31(of )-31(the )-31(dir)22(ectory )-31(in )-31(which )-31(the )-31(\336le)]TJ 1.633 -1.2 Td [(is being cr)18(eated.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47059 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.5)]TJ 33.38 0 Td [(File )-250(Access )-250(Permissions)]TJ /T1_1 1 Tf 12.953 0 Td (99)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(When )-76(we )-76(execute )-76(a )-76(pr)17(ogram )-76(\336le, )-76(the )-76(ef)18(fective )-76(user )-76(ID )-76(of )-76(the )-76(pr)18(ocess )-76(is )-76(usually )-76(the)]TJ -0.018 Tc -1.8 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(al )-66(user )-66(ID, )-66(and )-66(the )-66(ef)20(fective )-66(gr)18(oup )-66(ID )-66(is )-66(usually )-66(the )-66(r)18(eal )-66(gr)18(oup )-66(ID.)-562(However)74(,)-316(we)-316(c)1(an)]TJ -0.856 -1.2 Td [(also )-123(set )-123(a )-123(special )-123(\337ag )-123(in )-123(the )-123(\336le\325s )-123(mode )-123(wor)]TJ 0.3727 Tc 20.151 0 Td (d\()Tj /TT0 1 Tf 0 Tc 1.317 0 Td (st_mode)Tj /T1_0 1 Tf 0.3727 Tc (\)t)Tj 0 Tc 5.232 0 Td [(hat )-123(says, )-123(\324)37(\324When )-123(this )-123(\336le )-123(is)]TJ -26.7 -1.2 Td [(executed, )-69(set )-69(the )-69(ef)18(fective )-69(user )-69(ID )-69(of )-69(the )-69(pr)18(ocess )-69(to )-69(be )-69(the )-69(owner )-69(of )-69(the )-69(\336le )-69(\()]TJ /TT0 1 Tf 34.298 0 Td (st_uid)Tj /T1_0 1 Tf [(\).\325)37(\325)]TJ -34.298 -1.2 Td [(Similarly)111(,)-305(we)-305(can )-55(set )-55(another )-55(bit )-55(in )-55(the )-55(\336le\325s )-55(mode )-55(wor)]TJ 0.3052 Tc 24.474 0 Td (dt)Tj 0 Tc 1.242 0 Td [(hat )-55(causes )-55(the )-55(ef)18(fective )-55(gr)17(oup)]TJ -25.716 -1.2 Td [(ID )-78(to )-78(be )-78(the )-78(gr)18(oup )-78(owner )-78(of )-78(the )-78(\336le )-78(\()]TJ /TT0 1 Tf 16.844 0 Td (st_gid)Tj /T1_0 1 Tf [(\). )-328(These)-327(two )-78(bits )-78(in )-78(the )-78(\336le\325s )-78(mode )-78(wor)20(d)]TJ -16.844 -1.2 Td (ar)Tj 0.25 Tc 0.877 0 Td (ec)Tj 0 Tc 1.173 0 Td (alled the)Tj /T1_2 1 Tf 4.059 0 Td (set-user-ID)Tj /T1_0 1 Tf 4.861 0 Td (bit and the)Tj /T1_2 1 Tf 5 0 Td [(set-gr)18(oup-ID)]TJ /T1_0 1 Tf 5.509 0 Td (bit.)Tj -19.679 -1.2 Td [(For )-55(example, )-55(if )-55(the )-55(owner )-55(of )-55(the )-55(\336le )-55(is )-55(the )-55(super)9(user )-55(and )-55(if )-55(the )-55(\336le\325s )-55(set-user)18(-ID )-55(bit)]TJ -1.8 -1.2 Td [(is )-82(set, )-82(then )-82(while )-82(that )-82(pr)18(ogram )-82(\336le )-82(is )-82(r)8(unning )-82(as )-82(a )-82(pr)18(ocess, )-82(it )-82(has )-82(super)8(user )-82(privileges.)]TJ 0 -1.2 TD [(This )-80(happens )-80(r)17(egar)18(dless )-80(of )-80(the )-80(r)18(eal )-80(user )-80(ID )-80(of )-80(the )-80(pr)15(ocess )-80(that )-80(executes )-80(the )-80(\336le.)-580(As )-80(an)]TJ -0 -1.2 Td [(example, )-43(the )-43(UNIX )-43(System )-43(pr)18(ogram )-43(that )-43(allows )-43(anyone )-43(to )-43(change )-43(his )-43(or )-43(her )-43(passwor)18(d,)]TJ /TT0 1 Tf T* (passwd)Tj /T1_0 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.333 -0.04 Td [(,)-281(is)-281(a)-281(set-user)18(-ID )-31(pr)18(ogram. )-281(This)-281(is )-31(r)18(equir)18(ed )-31(so )-31(that )-31(the )-31(pr)18(ogram )-31(can )-31(write )-31(the)]TJ -4.766 -1.2 Td [(new )-129(passwor)18(d)-379(to)-379(the )-129(passwor)]TJ 0.3788 Tc 13.692 0 Td (d\336)Tj 0 Tc 1.595 0 Td [(le, )-129(typically )-129(either)]TJ /TT0 1 Tf 8.564 0 Td (/etc/passwd)Tj /T1_0 1 Tf 6.979 0 Td (or)Tj /TT0 1 Tf 1.32 0 Td (/etc/shadow)Tj /T1_0 1 Tf (,)Tj -32.15 -1.2 Td [(\336les )-111(that )-111(should )-111(be )-111(writable )-111(only )-111(by )-111(the )-111(super)10(user)]TJ 0.6107 Tc 22.969 0 Td (.B)Tj 0 Tc 1.472 0 Td [(ecause )-111(a )-111(pr)19(ocess )-111(that )-111(is )-111(r)9(unning)]TJ -24.44 -1.2 Td [(set-user)18(-ID )-146(to )-146(some )-146(other )-146(user )-146(usually )-146(assumes )-146(extra )-146(permissions, )-146(it )-146(must )-146(be )-146(written)]TJ T* [(car)18(efully)]TJ 0.5 Tc 3.763 0 Td (.W)Tj 0 Tc 1.658 0 Td [(e\325ll discuss these types of pr)18(ograms in mor)]TJ 0.25 Tc 18.826 0 Td (ed)Tj 0 Tc 1.34 0 Td (etail in Chapter 8.)Tj -23.787 -1.2 Td [(Returning )-197(to )-197(the)]TJ /TT0 1 Tf 8.081 0 Td (stat)Tj /T1_0 1 Tf 2.847 0 Td [(function, )-197(the )-197(set-user)19(-ID )-197(bit )-197(and )-197(the )-197(set-gr)18(oup-ID )-197(bit )-197(ar)19(e)]TJ -12.728 -1.2 Td [(contained )-328(in )-328(the )-328(\336le\325s)]TJ /TT0 1 Tf 11.011 0 Td (st_mode)Tj /T1_0 1 Tf 4.778 0 Td [(value. )-578(These)-579(two )-328(bits )-328(can )-328(be )-328(tested )-328(against )-328(the)]TJ -15.79 -1.2 Td (constants)Tj /TT0 1 Tf 4.404 0 Td (S_ISUID)Tj /T1_0 1 Tf 4.45 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (S_ISGID)Tj /T1_0 1 Tf 0.25 Tc (,r)Tj 0 Tc 5.077 0 Td [(espectively)111(.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5943 421.7747 Tm [(4.5 )-1332(File)-556(Access )-278(P)30(ermissions)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.592 403.7758 Tm (The)Tj /TT0 1 Tf 2.015 0 Td (st_mode)Tj /T1_0 1 Tf 4.541 0 Td [(value )-91(also )-91(encodes )-91(the )-91(access )-91(permission )-91(bits )-91(for )-91(the )-91(\336le.)-591(When )-91(we )-91(say)]TJ /T1_2 1 Tf -6.556 -1.2 Td (\336le)Tj /T1_0 1 Tf [(,)-816(we)-816(mean )-566(any )-566(of )-566(the )-566(\336le )-566(types )-566(that )-566(we )-566(described )-566(earlier)]TJ 1.0658 Tc 31.931 0 Td (.A)Tj 0 Tc 2.094 0 Td [(ll )-566(the )-566(\336le)]TJ -34.025 -1.2 Td [(types )167(\321 )167(dir)17(ectories, )-71(character )-71(special )-71(\336les, )-71(and )-71(so )-71(on)]TJ 0.0833 Tc 23.407 0 Td (\321h)Tj 0 Tc 1.665 0 Td [(ave )-71(permissions.)-571(Many )-71(people)]TJ -25.073 -1.2 Td [(think of only r)18(egular \336les as having access permissions.)]TJ 1.8 -1.2 Td (Ther)Tj 0.3072 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.286 0 Td [(re )-93(n)]TJ 0 Tc 1.745 0 Td [(ine )-57(permission )-57(bits )-57(for )-57(each )-57(\336le, )-57(divided )-57(into )-57(thr)16(ee )-57(categories.)-557(They )-57(ar)18(e)]TJ -6.882 -1.2 Td (shown in Figur)Tj 0.25 Tc 6.724 0 Td (e4)Tj 0 Tc 1.229 0 Td (.6.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2620.25 3298.25 cm 0 0 m 1252 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 265.9481 321.7614 Tm (st_mode)Tj /T1_0 1 Tf 4.45 0 Td [(mask )-2453(Meaning)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2620.25 3178.25 cm 0 0 m 1252 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2620.25 3158.25 cm 0 0 m 1252 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 276.3822 307.7446 Tm (S_IRUSR)Tj /T1_0 1 Tf 7.006 0 Td [(user)18(-r)18(ead)]TJ /TT0 1 Tf -7.006 -1.25 Td (S_IWUSR)Tj /T1_0 1 Tf 7.006 0 Td [(user)18(-write)]TJ /TT0 1 Tf -7.006 -1.25 Td (S_IXUSR)Tj /T1_0 1 Tf 7.006 0 Td [(user)18(-execute)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2620.25 2838.25 cm 0 0 m 1252 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 276.3657 275.7338 Tm (S_IRGRP)Tj /T1_0 1 Tf 7.006 0 Td [(gr)18(oup-r)18(ead)]TJ /TT0 1 Tf -7.006 -1.25 Td (S_IWGRP)Tj /T1_0 1 Tf 7.006 0 Td [(gr)18(oup-write)]TJ /TT0 1 Tf -7.006 -1.25 Td (S_IXGRP)Tj /T1_0 1 Tf 7.006 0 Td [(gr)18(oup-execute)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2620.25 2518.25 cm 0 0 m 1252 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 276.3491 243.7269 Tm (S_IROTH)Tj /T1_0 1 Tf 7.006 0 Td [(other)18(-r)18(ead)]TJ /TT0 1 Tf -7.006 -1.25 Td (S_IWOTH)Tj /T1_0 1 Tf 7.006 0 Td [(other)18(-write)]TJ /TT0 1 Tf -7.006 -1.25 Td (S_IXOTH)Tj /T1_0 1 Tf 7.006 0 Td [(other)18(-execute)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2620.25 2198.25 cm 0 0 m 1252 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3265.25 2198.25 cm 0 0 m 0 1100 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3872.25 2198.25 cm 0 0 m 0 1100 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2620.25 2198.25 cm 0 0 m 0 1100 l S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 201.5594 201.7274 Tm (Figure 4.6)Tj /T1_0 1 Tf 5.195 0 Td [(The nine \336le access permission bits, fr)18(om)]TJ /TT0 1 Tf 18.347 0 Td ()Tj /T1_0 1 Tf 9.9964 0 0 9.9964 129.5536 177.736 Tm [(The )-122(term)]TJ /T1_2 1 Tf 4.502 0 Td (user)Tj /T1_0 1 Tf 2.095 0 Td [(in )-122(the )-122(\336rst )-122(thr)18(ee )-122(r)18(ows )-122(in )-122(Figur)]TJ 0.3724 Tc 13.924 0 Td (e4)Tj 0 Tc 1.351 0 Td [(.6 )-122(r)18(efers )-122(to )-122(the )-122(owner )-122(of )-122(the )-122(\336le.)-626(The)]TJ /TT0 1 Tf -21.873 -1.2 Td (chmod)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.846 -0.04 Td [(command, )-262(which )-262(is )-262(typically )-262(used )-262(to )-262(modify )-262(these )-262(nine )-262(permission )-262(bits,)]TJ -4.679 -1.2 Td [(allows )-62(us )-62(to )-62(specify)]TJ /TT0 1 Tf 9.163 0 Td (u)Tj /T1_0 1 Tf 0.912 0 Td [(for )-62(user )-62(\(owner\),)]TJ /TT0 1 Tf 7.864 0 Td (g)Tj /T1_0 1 Tf 0.912 0 Td [(for )-62(gr)18(oup, )-62(and)]TJ /TT0 1 Tf 6.837 0 Td (o)Tj /T1_0 1 Tf 0.912 0 Td [(for )-62(other)]TJ 0.5624 Tc 3.84 0 Td (.S)Tj 0 Tc 1.337 0 Td [(ome )-62(books )-62(r)17(efer)]TJ -31.779 -1.2 Td [(to )-135(these )-135(thr)18(ee )-135(as )-135(owner)]TJ 0.3855 Tc 10.633 0 Td (,g)Tj -0.018 Tc 1.191 0 Td (ro)Tj 0 Tc 0.923 0 Td [(up, )-135(and )-135(world; )-135(this )-135(is )-135(confusing, )-135(as )-135(the)]TJ /TT0 1 Tf 18.418 0 Td (chmod)Tj /T1_0 1 Tf 3.386 0 Td (command)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47060 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (98)Tj /T1_1 1 Tf 3 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.741 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2469.25 6670.25 cm 0 0 m 1554 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 264.9641 658.9605 Tm [(File type)-3500(Count )-1492(Per)18(centage)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2469.25 6550.25 cm 0 0 m 1554 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2469.25 6530.25 cm 0 0 m 1554 0 l S Q Q BT /T1_1 1 Tf -0.018 Tc 7.999 0 0 7.999 250.8859 644.9226 Tm (re)Tj 0 Tc 0.856 0 Td [(gular \336le)-4019(415,803 )-1993(79.77)-250(%)]TJ -0.856 -1.25 Td [(dir)18(ectory )]TJ 9.345 0 Td (62,197)Tj -0.055 Tc 5.048 0 Td (11)Tj 0 Tc 0.945 0 Td (.93)Tj -15.338 -1.25 Td [(symbolic link)-3387(40,018 )-2493(8.25)]TJ 0 -1.25 TD [(character special)-3250(155 )-2493(0.03)]TJ T* (block special)Tj 11.095 0 Td [(47 )-2493(0.01)]TJ -11.095 -1.25 Td (socket )Tj 11.095 0 Td [(45)-2743(0.01)]TJ -11.095 -1.25 Td (FIFO )Tj 11.595 0 Td [(0)-2743(0.00)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2469.25 5810.25 cm 0 0 m 1554 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3537.25 5810.25 cm 0 0 m 0 860 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3157.25 5810.25 cm 0 0 m 0 860 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4023.25 5810.25 cm 0 0 m 0 860 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2469.25 5810.25 cm 0 0 m 0 860 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 223.5278 562.8987 Tm (Figure 4.4)Tj /T1_1 1 Tf 5.195 0 Td [(Counts and per)18(centages of dif)18(fer)18(ent \336le types)]TJ /TT0 1 Tf 11.9978 0 0 11.9978 93.5834 526.9051 Tm [(4.4 )-1332(Set-User)20(-ID )-278(and )-278(Set-Gr)20(oup-ID)]TJ /T1_1 1 Tf 9.9982 0 0 9.9982 129.5766 505.309 Tm [(Every pr)18(ocess has six or mor)]TJ 0.25 Tc 12.635 0 Td (eI)Tj 0 Tc 1.066 0 Td [(Ds associated with it.)-500(These ar)]TJ 0.25 Tc 13.597 0 Td (es)Tj 0 Tc 1.153 0 Td (hown in Figur)Tj 0.25 Tc 6.3 0 Td (e4)Tj 0 Tc 1.229 0 Td (.5.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2025.25 4890.25 cm 0 0 m 2441 0 l S Q Q BT /T1_1 1 Tf -0.018 Tc 7.9981 0 0 7.9981 206.4944 480.8846 Tm (re)Tj 0 Tc 0.856 0 Td (al user ID)Tj -0.018 Tc -0.856 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(al gr)18(oup ID)]TJ 12.082 0.625 Td [(who we r)18(eally ar)18(e)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2025.25 4670.25 cm 0 0 m 2441 0 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 206.482 458.8623 Tm [(ef)18(fective user ID)]TJ T* [(ef)18(fective gr)18(oup ID)-4933(used for \336le access permission checks)]TJ T* [(supplementary gr)18(oup IDs)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2025.25 4350.25 cm 0 0 m 2441 0 l S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 206.4697 426.8463 Tm [(saved set-user)18(-ID)]TJ T* [(saved set-gr)18(oup-ID)]TJ 12.938 0.625 Td (saved by)Tj /TT1 1 Tf 4.188 0 Td (exec)Tj /T1_1 1 Tf 2.65 0 Td (functions)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2025.25 4130.25 cm 0 0 m 2441 0 l 2441 760 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2025.25 4130.25 cm 0 0 m 0 760 l S Q Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 210.1317 394.8341 Tm (Figure 4.5)Tj /T1_1 1 Tf 5.195 0 Td [(User IDs and gr)18(oup IDs associated with each pr)18(ocess)]TJ 0.883 Tc 9.9958 0 0 9.9958 147.5382 370.8442 Tm (\245T)Tj 0 Tc 2.102 0 Td [(he )-47(r)18(eal )-47(user )-47(ID )-47(and )-47(r)18(eal )-47(gr)18(oup )-47(ID )-47(identify )-47(who )-47(we )-47(r)17(eally )-47(ar)18(e. )-297(These)-297(two )-47(\336elds)]TJ -0.613 -1.2 Td (ar)Tj 0.333 Tc 0.877 0 Td (et)Tj 0 Tc 1.138 0 Td [(aken )-83(fr)18(om )-83(our )-83(entry )-83(in )-83(the )-83(passwor)]TJ 0.3329 Tc 16.102 0 Td (d\336)Tj 0 Tc 1.549 0 Td [(le )-83(when )-83(we )-83(log )-83(in.)-582(Normally)]TJ 0.3329 Tc 13.173 0 Td (,t)Tj 0 Tc 0.909 0 Td (hese)Tj -33.747 -1.2 Td [(values )-289(don\325t )-289(change )-289(during )-289(a )-289(login )-289(session, )-289(although )-289(ther)]TJ 0.5389 Tc 27.632 0 Td (ea)Tj -0.018 Tc 1.518 0 Td [(re )-325(w)]TJ 0 Tc 2.229 0 Td [(ays )-289(for )-289(a)]TJ -31.379 -1.2 Td [(super)8(user pr)18(ocess to change them, which we describe in Section 8.1)55(1.)]TJ 0.883 Tc -1.489 -1.48 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-418(ef)18(fective )-418(user )-418(ID, )-418(ef)18(fective )-418(gr)18(oup )-418(ID, )-418(and )-418(supplementary )-418(gr)18(oup )-418(IDs)]TJ -0.613 -1.2 Td [(determine )-131(our )-131(\336le )-131(access )-131(permissions, )-131(as )-131(we )-131(describe )-131(in )-131(the )-131(next )-131(section.)-633(\(W)92(e)]TJ 0 -1.2 TD [(de\336ned supplementary gr)18(oup IDs in Section 1.8.\))]TJ 0.883 Tc -1.489 -1.48 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-207(saved )-207(set-user)18(-ID )-207(and )-207(saved )-207(set-gr)18(oup-ID )-207(contain )-207(copies )-207(of )-207(the )-207(ef)13(fective)]TJ -0.613 -1.2 Td [(user )-140(ID )-140(and )-140(the )-140(ef)20(fective )-140(gr)18(oup )-140(ID, )-140(r)19(espectively)]TJ 0.3897 Tc 21.775 0 Td (,w)Tj 0 Tc 1.474 0 Td [(hen )-140(a )-140(pr)18(ogram )-140(is )-140(executed.)]TJ -0.092 Tc -23.249 -1.2 Td [(We )-466(d)]TJ 0 Tc 2.53 0 Td [(escribe )-282(the )-282(function )-282(of )-282(these )-282(two )-282(saved )-282(values )-282(when )-282(we )-282(describe )-282(the)]TJ /TT1 1 Tf -2.53 -1.2 Td (setuid)Tj /T1_1 1 Tf 3.85 0 Td [(function in Section 8.1)55(1.)]TJ 7.9966 0 0 7.9966 201.5156 222.9064 Tm [(The )-2(saved )-2(IDs )-2(ar)]TJ 0.252 Tc 7.421 0 Td (er)Tj 0 Tc 1.108 0 Td [(equir)18(ed )-2(as )-2(of )-2(the )-2(2001 )-2(version )-2(of )-2(POSIX.1.)-502(They )-2(wer)]TJ 0.252 Tc 23.108 0 Td (eo)Tj 0 Tc 1.277 0 Td [(ptional )-2(in )-2(older)]TJ -32.914 -1.25 Td [(versions )-251(of )-251(POSIX.)-751(An )-251(application )-251(can )-251(test )-251(for )-251(the )-251(constant)]TJ /TT1 1 Tf 28.823 0 Td (_POSIX_SAVED_IDS)Tj /T1_1 1 Tf 10.101 0 Td (at)Tj -38.924 -1.25 Td [(compile )-30(time )-30(or )-30(can )-30(call)]TJ /TT1 1 Tf 10.905 0 Td (sysconf)Tj /T1_1 1 Tf 4.48 0 Td [(with )-30(the)]TJ /TT1 1 Tf 3.979 0 Td (_SC_SAVED_IDS)Tj /T1_1 1 Tf 8.08 0 Td [(ar)18(gument )-30(at )-30(r)8(untime, )-30(to )-30(see)]TJ -27.444 -1.25 Td [(whether the implementation supports this featur)18(e.)]TJ 9.9958 0 0 9.9958 129.5461 170.1285 Tm (Normally)Tj 0.2576 Tc 4.182 0 Td (,t)Tj 0 Tc 0.834 0 Td [(he )-8(ef)18(fective )-8(user )-8(ID )-8(equals )-8(the )-8(r)20(eal )-7(user )-7(ID, )-7(and )-7(the )-7(ef)18(fective )-7(gr)18(oup )-7(ID )-7(equals)]TJ -5.016 -1.2 Td [(the r)18(eal gr)18(oup ID.)]TJ 1.8 -1.2 Td [(Every )-43(\336le )-43(has )-43(an )-43(owner )-43(and )-43(a )-43(gr)15(oup )-43(owner)]TJ 0.5435 Tc 19.39 0 Td (.T)Tj 0 Tc 1.406 0 Td [(he )-43(owner )-43(is )-43(speci\336ed )-43(by )-43(the)]TJ /TT1 1 Tf 12.803 0 Td (st_uid)Tj /T1_1 1 Tf -35.4 -1.2 Td (member of the)Tj /TT1 1 Tf 6.688 0 Td (stat)Tj /T1_1 1 Tf 2.65 0 Td [(str)8(uctur)18(e; the gr)18(oup owner)74(,)-250(by)-250(the)]TJ /TT1 1 Tf 15.297 0 Td (st_gid)Tj /T1_1 1 Tf 3.85 0 Td [(member)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47061 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.3)]TJ 39.633 0 Td [(File )-250(T)90(ypes)]TJ /T1_1 1 Tf 6.7 0 Td (95)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Note )-78(that )-78(most )-78(members )-78(of )-78(the)]TJ /TT0 1 Tf 14.424 0 Td (stat)Tj /T1_0 1 Tf 2.728 0 Td [(str)8(uctur)]TJ 0.3278 Tc 3.49 0 Td (ea)Tj -0.018 Tc 1.307 0 Td [(re )-114(s)]TJ 0 Tc 1.608 0 Td [(peci\336ed )-78(by )-78(a )-78(primitive )-78(system)]TJ -25.356 -1.2 Td [(data )-67(type )-67(\(see )-67(Section )-67(2.8\).)]TJ -0.092 Tc 12.475 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-67(go )-67(thr)18(ough )-67(each )-67(member )-67(of )-67(this )-67(str)7(uctur)18(e)-317(to)-317(examine)]TJ -13.862 -1.2 Td (the attributes of a \336le.)Tj 1.8 -1.2 Td [(The )-31(biggest )-31(user )-31(of )-31(the)]TJ /TT0 1 Tf 10.43 0 Td (stat)Tj /T1_0 1 Tf 2.681 0 Td [(functions )-31(is )-31(pr)18(obably )-31(the)]TJ /TT0 1 Tf 11.333 0 Td [(ls )267(-l)]TJ /T1_0 1 Tf 3.014 0 Td [(command, )-31(to )-31(learn )-31(all)]TJ -29.258 -1.2 Td (the information about a \336le.)Tj /TT1 1 Tf 11.9993 0 0 11.9993 93.5937 587.3648 Tm [(4.3 )-1332(File)]TJ -0.06 Tc 5.279 0 Td (Ty)Tj 0 Tc 1.107 0 Td (pes)Tj /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5915 565.7661 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ve )-28(talked )-28(about )-28(two )-28(dif)18(fer)18(ent )-28(types )-28(of )-28(\336les )-28(so )-28(far: )-28(r)19(egular )-28(\336les )-28(and )-28(dir)18(ectories. )-278(Most)]TJ -1.387 -1.2 Td [(\336les )-141(on )-141(a )-141(UNIX )-141(system )-141(ar)]TJ 0.3912 Tc 11.965 0 Td (ee)Tj 0 Tc 1.349 0 Td [(ither )-141(r)18(egular )-141(\336les )-141(or )-141(dir)18(ectories, )-141(but )-141(ther)]TJ 0.3911 Tc 18.52 0 Td (ea)Tj -0.018 Tc 1.37 0 Td [(re )-177(a)]TJ 0 Tc 1.747 0 Td (dditional)Tj -34.951 -1.2 Td [(types of \336les.)-500(The types ar)18(e)]TJ 1.8 -1.92 Td [(1. )-633(Regular)-309(\336le. )-309(The)-308(most )-59(common )-59(type )-59(of )-59(\336le, )-59(which )-59(contains )-59(data )-59(of )-59(some )-59(form.)]TJ 1.633 -1.2 Td [(Ther)18(e)-376(is)-376(no)-376(d)-1(istinction )-126(to )-126(the )-126(UNIX )-126(kernel )-126(whether )-126(this )-126(data )-126(is )-126(text )-126(or )-126(binary)107(.)]TJ 0 -1.2 Td [(Any )-230(interpr)18(etation )-230(of )-230(the )-230(contents )-230(of )-230(a )-230(r)18(egular )-230(\336le )-230(is )-230(left )-230(to )-230(the )-230(application)]TJ 0 -1.2 TD [(pr)18(ocessing the \336le.)]TJ 7.9995 0 0 7.9995 201.5874 466.572 Tm [(One )-99(notable )-99(exception )-99(to )-99(this )-99(is )-99(with )-99(binary )-99(executable )-99(\336les.)]TJ -0.092 Tc 27.967 0 Td [(To )-283(e)]TJ 0 Tc 1.895 0 Td [(xecute )-99(a )-99(pr)18(ogram, )-99(the)]TJ -29.862 -1.25 Td [(kernel )-102(must )-102(understand )-102(its )-102(format.)-602(All )-102(binary )-102(executable )-102(\336les )-102(conform )-102(to )-102(a )-102(format )-102(that)]TJ 0 -1.25 TD [(allows the kernel to identify wher)18(e)-250(to)-250(load a pr)18(ogram\325s text and data.)]TJ 9.9994 0 0 9.9994 147.5905 425.5745 Tm [(2. )-633(Dir)18(ectory )-246(\336le.)]TJ 0.4963 Tc 8.689 0 Td (A\336)Tj 0 Tc 1.879 0 Td [(le )-246(that )-246(contains )-246(the )-246(names )-246(of )-246(other )-246(\336les )-246(and )-246(pointers )-246(to)]TJ -8.935 -1.2 Td [(information )-37(on )-37(these )-37(\336les.)-537(Any )-37(pr)18(ocess )-37(that )-37(has )-37(r)20(ead )-37(permission )-37(for )-37(a )-37(dir)18(ectory)]TJ 0 -1.2 TD [(\336le )-59(can )-59(r)18(ead )-59(the )-59(contents )-59(of )-59(the )-59(dir)20(ectory)]TJ 0.3086 Tc 18.305 0 Td (,b)Tj 0 Tc 1.112 0 Td [(ut )-59(only )-59(the )-59(kernel )-59(can )-59(write )-59(dir)20(ectly)]TJ -19.416 -1.2 Td [(to )-46(a )-46(dir)18(ectory )-46(\336le.)-547(Pr)18(ocesses )-46(must )-46(use )-46(the )-46(functions )-46(described )-46(in )-46(this )-46(chapter )-46(to)]TJ 0 -1.2 Td [(make changes to a dir)18(ectory)111(.)]TJ -1.633 -1.6 Td [(3. )-633(Block)-251(special )-1(\336le.)]TJ 0.2515 Tc 9.741 0 Td (At)Tj 0 Tc 1.356 0 Td [(ype )-1(of )-1(\336le )-1(pr)18(oviding )-1(buf)16(fer)18(ed )-1(I/O )-1(access )-1(in )-1(\336xed-size )-1(units)]TJ -9.463 -1.2 Td (to devices such as disk drives.)Tj 7.9995 0 0 7.9995 201.5873 329.5802 Tm [(Note )-28(that )-28(Fr)19(eeBSD )-28(no )-28(longer )-28(supports )-28(block )-28(special )-28(\336les.)-528(All )-28(access )-28(to )-28(devices )-28(is )-28(thr)20(ough)]TJ -0 -1.25 Td (the character special interface.)Tj 9.9994 0 0 9.9994 147.5904 295.5823 Tm [(4. )-633(Character)-606(special )-356(\336le.)]TJ 0.606 Tc 12.686 0 Td (At)Tj 0 Tc 1.71 0 Td [(ype )-356(of )-356(\336le )-356(pr)18(oviding )-356(unbuf)18(fer)18(ed )-356(I/O )-356(access )-356(in)]TJ -12.763 -1.2 Td [(variable-sized )-63(units )-63(to )-63(devices.)-565(All )-64(devices )-64(on )-64(a )-64(system )-64(ar)]TJ 0.3136 Tc 26.175 0 Td (ee)Tj 0 Tc 1.272 0 Td [(ither )-64(block )-64(special)]TJ -27.447 -1.2 Td (\336les or character special \336les.)Tj -1.633 -1.6 Td [(5. )-633(FIFO.)]TJ 0.2724 Tc 4.64 0 Td (At)Tj 0 Tc 1.376 0 Td [(ype )-22(of )-22(\336le )-22(used )-22(for )-22(communication )-22(between )-22(pr)15(ocesses. )-272(It\325s)-273(sometimes)]TJ -4.384 -1.2 Td (called a named pipe.)Tj -0.092 Tc 9.643 0 Td [(We )-184(d)]TJ 0 Tc 2.248 0 Td (escribe FIFOs in Section 15.5.)Tj -13.524 -1.6 Td [(6. )-633(Socket.)]TJ 0.3599 Tc 5.369 0 Td (At)Tj 0 Tc 1.464 0 Td [(ype )-110(of )-110(\336le )-110(used )-110(for )-110(network )-110(communication )-110(between )-110(pr)19(ocesses. )-360(A)]TJ -5.2 -1.2 Td [(socket )-8(can )-8(also )-8(be )-8(used )-8(for )-8(non-network )-8(communication )-8(between )-8(pr)14(ocesses )-8(on )-8(a)]TJ T* (single host.)Tj -0.092 Tc 5.501 0 Td [(We )-184(u)]TJ 0 Tc 2.24 0 Td [(se sockets for interpr)18(ocess communication in Chapter 16.)]TJ -9.374 -1.6 Td [(7. )-633(Symbolic)-409(link. )-409(A)-409(type )-159(of )-159(\336le )-159(that )-159(points )-159(to )-159(another )-159(\336le.)]TJ -0.092 Tc 28.099 0 Td [(We )-343(t)]TJ 0 Tc 2.122 0 Td [(alk )-159(mor)]TJ 0.4093 Tc 3.562 0 Td (ea)Tj 0 Tc 1.388 0 Td (bout)Tj -33.539 -1.2 Td (symbolic links in Section 4.17.)Tj -3.433 -1.8 Td [(The )-123(type )-123(of )-123(a )-123(\336le )-123(is )-123(encoded )-123(in )-123(the)]TJ /TT0 1 Tf 16.471 0 Td (st_mode)Tj /T1_0 1 Tf 4.573 0 Td [(member )-123(of )-123(the)]TJ /TT0 1 Tf 7.056 0 Td (stat)Tj /T1_0 1 Tf 2.773 0 Td [(str)8(uctur)18(e. )-373(W)]TJ 0.3726 Tc 5.75 0 Td (ec)Tj 0 Tc 1.296 0 Td (an)Tj -37.918 -1.2 Td [(determine )-81(the )-81(\336le )-81(type )-81(with )-81(the )-81(macr)18(os )-81(shown )-81(in )-81(Figur)]TJ 0.3312 Tc 25.048 0 Td (e4)Tj 0 Tc 1.31 0 Td [(.1. )-331(The)-331(ar)18(gument )-81(to )-81(each )-81(of)]TJ -26.358 -1.2 Td [(these macr)18(os is the)]TJ /TT0 1 Tf 8.566 0 Td (st_mode)Tj /T1_0 1 Tf 4.45 0 Td [(member fr)18(om the)]TJ /TT0 1 Tf 7.948 0 Td (stat)Tj /T1_0 1 Tf 2.65 0 Td [(str)8(uctur)18(e.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47062 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm (4)Tj /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(Files )-280(and )-280(Dir)4(ector )260(ies)]TJ /TT0 1 Tf 12 0 0 12 93.6 446.3998 Tm [(4.1 )-1332(Intr)20(oduction)]TJ /T1_2 1 Tf 10 0 0 10 129.6 424.7998 Tm [(In )-389(the )-389(pr)18(evious )-389(chapter )-389(we )-389(cover)18(ed )-389(the )-389(basic )-389(functions )-389(that )-389(perform )-389(I/O.)-889(The)]TJ 0 -1.2 TD [(discussion )-113(center)18(ed )-113(on )-113(I/O )-113(for )-113(r)18(egular )-113(\336les)]TJ 0.0833 Tc 19.809 0 Td (\321o)Tj 0 Tc 1.629 0 Td [(pening )-113(a )-113(\336le, )-113(and )-113(r)18(eading )-113(or )-113(writing )-113(a)]TJ -21.439 -1.2 Td [(\336le. )-296(W)92(e\325ll )-46(now )-46(look )-46(at )-46(additional )-46(featur)16(es )-47(of )-47(the )-47(\336le )-47(system )-47(and )-47(the )-47(pr)18(operties )-47(of )-47(a )-47(\336le.)]TJ -0.092 Tc -0 -1.2 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-29(start )-29(with )-29(the)]TJ /TT1 1 Tf 7.366 0 Td (stat)Tj /T1_2 1 Tf 2.679 0 Td [(functions )-29(and )-29(go )-29(thr)18(ough )-29(each )-29(member )-29(of )-29(the)]TJ /TT1 1 Tf 20.671 0 Td (stat)Tj /T1_2 1 Tf 2.679 0 Td [(str)8(uctur)18(e,)]TJ -34.781 -1.2 Td [(looking )-181(at )-181(all )-181(the )-181(attributes )-181(of )-181(a )-181(\336le.)-679(In )-181(this )-181(pr)18(ocess, )-181(we\325ll )-181(also )-181(describe )-181(each )-181(of )-181(the)]TJ T* [(functions )-95(that )-95(modify )-95(these )-95(attributes: )-95(change )-95(the )-95(owner)]TJ 0.3452 Tc 25.556 0 Td (,c)Tj 0 Tc 1.039 0 Td [(hange )-95(the )-95(permissions, )-95(and)]TJ -26.596 -1.2 Td [(so )-13(on.)]TJ -0.092 Tc 3.125 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-13(also )-13(look )-13(in )-13(mor)]TJ 0.2633 Tc 8.292 0 Td (ed)Tj 0 Tc 1.353 0 Td [(etail )-13(at )-13(the )-13(str)7(uctur)18(e)-263(of)-263(a)-263(U)-1(NIX )-13(\336le )-13(system )-13(and )-13(symbolic)]TJ -14.157 -1.2 Td [(links. )-452(W)]TJ 0.4521 Tc 4.004 0 Td (e\336)Tj 0 Tc 1.536 0 Td [(nish )-202(this )-202(chapter )-202(with )-202(the )-202(functions )-202(that )-202(operate )-202(on )-202(dir)17(ectories, )-202(and )-202(we)]TJ -5.54 -1.2 Td [(develop a function that descends thr)18(ough a dir)18(ectory hierar)18(chy)111(.)]TJ /TT0 1 Tf 12 0 0 12 93.5998 295.1998 Tm (4.2)Tj /TT2 1 Tf 3 0 Td (stat)Tj /TT0 1 Tf (,)Tj /TT2 1 Tf 3.234 0 Td (fstat)Tj /TT0 1 Tf (,)Tj /TT2 1 Tf 3.834 0 Td (fstatat)Tj /TT0 1 Tf 0.556 Tc (,a)Tj 0 Tc 5.59 0 Td (nd)Tj /TT2 1 Tf 1.778 0 Td (lstat)Tj /TT0 1 Tf 3.556 0 Td (Functions)Tj /T1_2 1 Tf 10 0 0 10 129.5993 273.5998 Tm [(The )-93(discussion )-93(in )-93(this )-93(chapter )-93(centers )-93(on )-93(the )-93(four)]TJ /TT1 1 Tf 22.742 0 Td (stat)Tj /T1_2 1 Tf 2.743 0 Td [(functions )-93(and )-93(the )-93(information)]TJ -25.485 -1.2 Td [(they r)18(eturn.)]TJ /TT1 1 Tf 9 0 0 9 147.5994 243.6998 Tm (#include )Tj 0 -1.902 TD (int stat\(const char *restrict)Tj /T1_3 1 Tf 18 0 Td (pathname)Tj /TT1 1 Tf 0.6 Tc (,s)Tj 0 Tc 5.744 0 Td (truct stat *restrict)Tj /T1_3 1 Tf 12.6 0 Td (buf)Tj /TT1 1 Tf 1.482 0 Td (\);)Tj -37.826 -1.902 Td (int fstat\(int)Tj /T1_3 1 Tf 8.4 0 Td (fd)Tj /TT1 1 Tf 0.6 Tc (,s)Tj 0 Tc 2.578 0 Td (truct stat *)Tj /T1_3 1 Tf (buf)Tj /TT1 1 Tf 8.682 0 Td (\);)Tj -19.66 -1.902 Td (int lstat\(const char *restrict)Tj /T1_3 1 Tf 18.6 0 Td (pathname)Tj /TT1 1 Tf 0.6 Tc (,s)Tj 0 Tc 5.744 0 Td (truct stat *restrict)Tj /T1_3 1 Tf 12.6 0 Td (buf)Tj /TT1 1 Tf 1.482 0 Td (\);)Tj -38.426 -1.902 Td (int fstatat\(int)Tj /T1_3 1 Tf 9.6 0 Td (fd)Tj /TT1 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *restrict)Tj /T1_3 1 Tf 12 0 Td (pathname)Tj /TT1 1 Tf (,)Tj -16.978 -1.189 Td (struct stat *restrict)Tj /T1_3 1 Tf 13.2 0 Td (buf)Tj /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.097 0 Td (nt)Tj /T1_3 1 Tf 1.8 0 Td (\337ag)Tj /TT1 1 Tf 1.537 0 Td (\);)Tj /T1_2 1 Tf -3.005 -1.902 Td [(All four r)18(eturn: 0 if OK,)]TJ /TT3 1 Tf 10.635 0 Td (!)Tj /T1_2 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1429.25 cm 0 0 m 0 1098 l 3900 1098 l 3900 0 l 0 0 l S Q Q BT /T1_4 1 Tf 8.9995 0 0 8.9995 510.5694 113.9932 Tm (93)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47063 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (90)Tj /T1_1 1 Tf 3 0 Td [(File )-250(I/O)]TJ 39.741 0 Td [(Chapter )-250(3)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(3.17 )-776(Summar)-10(y)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 647.3612 Tm [(This )-240(chapter )-240(has )-240(described )-240(the )-240(basic )-240(I/O )-240(functions )-240(pr)19(ovided )-240(by )-240(the )-240(UNIX )-240(System.)]TJ 0 -1.2 TD [(These )-264(ar)]TJ 0.5145 Tc 3.969 0 Td (eo)Tj 0 Tc 1.539 0 Td [(ften )-265(called )-265(the )-265(unbuf)19(fer)18(ed )-265(I/O )-265(functions )-265(because )-265(each)]TJ /TT1 1 Tf 26.122 0 Td (read)Tj /T1_1 1 Tf 2.915 0 Td (or)Tj /TT1 1 Tf 1.456 0 Td (write)Tj /T1_1 1 Tf -36 -1.2 Td [(invokes )-118(a )-118(system )-118(call )-118(into )-118(the )-118(kernel.)-618(Using )-118(only)]TJ /TT1 1 Tf 22.894 0 Td (read)Tj /T1_1 1 Tf 2.768 0 Td (and)Tj /TT1 1 Tf 2.061 0 Td (write)Tj /T1_1 1 Tf [(,)-368(we)-368(looked )-118(at )-118(the)]TJ -27.723 -1.2 Td [(ef)18(fect )-20(of )-20(various )-20(I/O )-20(sizes )-20(on )-20(the )-20(amount )-20(of )-20(time )-20(r)16(equir)18(ed )-20(to )-20(r)18(ead )-20(a )-20(\336le.)]TJ -0.092 Tc 32.283 0 Td [(We )-204(a)]TJ 0 Tc 2.157 0 Td [(lso )-20(looked)]TJ -34.44 -1.2 Td [(at )-6(several )-6(ways )-6(to )-6(\337ush )-6(written )-6(data )-6(to )-6(disk )-6(and )-6(their )-6(ef)18(fect )-6(on )-6(application )-6(performance.)]TJ 1.8 -1.2 Td [(Atomic )-134(operations )-134(wer)]TJ 0.3844 Tc 10.417 0 Td (ei)Tj 0 Tc 1.154 0 Td [(ntr)18(oduced )-134(when )-134(multiple )-134(pr)18(ocesses )-134(append )-134(to )-134(the )-134(same)]TJ -13.371 -1.2 Td [(\336le )-251(and )-251(when )-251(multiple )-251(pr)18(ocesses )-251(cr)18(eate )-251(the )-251(same )-251(\336le.)]TJ -0.092 Tc 26.169 0 Td [(We )-435(a)]TJ 0 Tc 2.388 0 Td [(lso )-251(looked )-251(at )-251(the )-251(data)]TJ -28.557 -1.2 Td [(str)8(uctur)18(es )-195(used )-195(by )-195(the )-195(kernel )-195(to )-195(shar)]TJ 0.4452 Tc 17.214 0 Td (ei)Tj 0 Tc 1.215 0 Td [(nformation )-195(about )-195(open )-195(\336les.)]TJ -0.092 Tc 13.8 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-195(r)18(eturn )-195(to)]TJ -33.616 -1.2 Td [(these data str)8(uctur)18(es later in the text.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-385(a)]TJ 0 Tc 2.338 0 Td [(lso )-201(described )-201(the)]TJ /TT1 1 Tf 8.287 0 Td (ioctl)Tj /T1_1 1 Tf 3.451 0 Td (and)Tj /TT1 1 Tf 2.144 0 Td (fcntl)Tj /T1_1 1 Tf 3.451 0 Td [(functions. )-450(W)]TJ 0.4505 Tc 5.989 0 Td (er)Tj 0 Tc 1.306 0 Td [(eturn )-200(to )-200(both )-200(of )-200(these)]TJ -28.765 -1.2 Td [(functions )-227(later )-227(in )-227(the )-227(book.)-727(In )-227(Chapter )-227(14, )-227(we\325ll )-227(use)]TJ /TT1 1 Tf 25.297 0 Td (fcntl)Tj /T1_1 1 Tf 3.478 0 Td [(for )-227(r)18(ecor)]TJ 0.4775 Tc 3.975 0 Td (dl)Tj 0 Tc 1.379 0 Td [(ocking. )-477(In)]TJ -34.129 -1.2 Td (Chapter 18 and Chapter 19, we\325ll use)Tj /TT1 1 Tf 16.556 0 Td (ioctl)Tj /T1_1 1 Tf 3.25 0 Td (when we deal with terminal devices.)Tj /TT0 1 Tf 11.9993 0 0 11.9993 129.5925 476.9714 Tm [(Ex)10(er)20(cises)]TJ /T1_0 1 Tf 8.9995 0 0 8.9995 129.5925 455.9726 Tm (3.1)Tj /T1_1 1 Tf 2.602 0 Td [(When )-249(r)18(eading )-249(or )-249(writing )-249(a )-249(disk )-249(\336le, )-249(ar)]TJ 0.4993 Tc 18.635 0 Td (et)Tj 0 Tc 1.304 0 Td [(he )-249(functions )-249(described )-249(in )-249(this )-249(chapter )-249(r)16(eally)]TJ -19.939 -1.222 Td [(unbuf)18(fer)18(ed? )-250(Explain.)]TJ /T1_0 1 Tf -2.602 -1.667 Td (3.2)Tj /T1_1 1 Tf -0.074 Tc 2.602 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-76(your )-76(own)]TJ /TT1 1 Tf 6.135 0 Td (dup2)Tj /T1_1 1 Tf 2.726 0 Td [(function )-76(that )-76(behaves )-76(the )-76(same )-76(way )-76(as )-76(the)]TJ /TT1 1 Tf 19.503 0 Td (dup2)Tj /T1_1 1 Tf 2.726 0 Td [(function )-76(described)]TJ -32.411 -1.222 Td (in Section 3.12, without calling the)Tj /TT1 1 Tf 15.416 0 Td (fcntl)Tj /T1_1 1 Tf 3.25 0 Td [(function. )-250(Be)-250(sur)18(e)-250(to)-250(handle err)18(ors corr)18(ectly)111(.)]TJ /T1_0 1 Tf -21.268 -1.667 Td (3.3)Tj /T1_1 1 Tf 2.602 0 Td [(Assume that a pr)18(ocess executes the following thr)18(ee function calls:)]TJ /TT1 1 Tf 2 -1.562 Td (fd1 = open\(path, oflags\);)Tj 0 -1.189 TD (fd2 = dup\(fd1\);)Tj T* (fd3 = open\(path, oflags\);)Tj /T1_1 1 Tf -2 -1.596 Td [(Draw )-220(the )-220(r)18(esulting )-220(pictur)17(e, )-220(similar )-220(to )-220(Figur)]TJ 0.4702 Tc 20.342 0 Td (e3)Tj 0 Tc 1.449 0 Td [(.9. )-470(Which)-470(descriptors )-220(ar)]TJ 0.4702 Tc 11.373 0 Td (ea)Tj -0.018 Tc 1.449 0 Td (ff)Tj 0 Tc 0.648 0 Td [(ected )-220(by )-220(an)]TJ /TT1 1 Tf -35.261 -1.222 Td (fcntl)Tj /T1_1 1 Tf 3.298 0 Td (on)Tj /TT1 1 Tf 1.426 0 Td (fd1)Tj /T1_1 1 Tf 2.098 0 Td [(with )-49(a )-49(command )-49(of)]TJ /TT1 1 Tf 9.055 0 Td (F_SETFD)Tj /T1_1 1 Tf 0.5486 Tc (?W)Tj 0 Tc 6.193 0 Td [(hich )-49(descriptors )-49(ar)]TJ 0.2986 Tc 8.309 0 Td (ea)Tj -0.018 Tc 1.278 0 Td (ff)Tj 0 Tc 0.648 0 Td [(ected )-49(by )-49(an)]TJ /TT1 1 Tf 5.426 0 Td (fcntl)Tj /T1_1 1 Tf -37.731 -1.222 Td (on)Tj /TT1 1 Tf 1.378 0 Td (fd1)Tj /T1_1 1 Tf 2.05 0 Td (with a command of)Tj /TT1 1 Tf 8.861 0 Td (F_SETFL)Tj /T1_1 1 Tf (?)Tj /T1_0 1 Tf -14.891 -1.667 Td (3.4)Tj /T1_1 1 Tf 2.602 0 Td [(The following sequence of code has been observed in various pr)18(ograms:)]TJ /TT1 1 Tf 2 -1.562 Td (dup2\(fd, 0\);)Tj T* (dup2\(fd, 1\);)Tj T* (dup2\(fd, 2\);)Tj T* (if \(fd > 2\))Tj 2.4 -1.189 Td (close\(fd\);)Tj /T1_1 1 Tf -0.092 Tc -4.4 -1.596 Td [(To )-188(s)]TJ 0 Tc 1.745 0 Td [(ee )-4(why )-4(the)]TJ /TT1 1 Tf 5.08 0 Td (if)Tj /T1_1 1 Tf 1.454 0 Td [(test )-4(is )-4(needed, )-4(assume )-4(that)]TJ /TT1 1 Tf 12.079 0 Td (fd)Tj /T1_1 1 Tf 1.454 0 Td [(is )-4(1 )-4(and )-4(draw )-4(a )-4(pictur)17(e)-254(of)-254(what )-4(happens )-4(to)]TJ -21.812 -1.222 Td [(the )-118(thr)18(ee )-118(descriptor )-118(entries )-118(and )-118(the )-118(corr)19(esponding )-118(\336le )-118(table )-118(entry )-118(with )-118(each )-118(call )-118(to)]TJ /TT1 1 Tf 38.081 0 Td (dup2)Tj /T1_1 1 Tf (.)Tj -38.081 -1.222 Td (Then assume that)Tj /TT1 1 Tf 8.053 0 Td (fd)Tj /T1_1 1 Tf 1.45 0 Td [(is 3 and draw the same pictur)18(e.)]TJ /T1_0 1 Tf -12.105 -1.667 Td (3.5)Tj /T1_1 1 Tf 2.602 0 Td (The Bourne shell, Bourne-again shell, and Korn shell notation)Tj /T1_2 1 Tf 2 -1.562 Td (digit1)Tj /TT1 1 Tf 2.472 0 Td (>&)Tj /T1_2 1 Tf 1.283 0 Td (digit2)Tj /T1_1 1 Tf -5.756 -1.596 Td [(says )-52(to )-52(r)19(edir)18(ect )-52(descriptor)]TJ /T1_2 1 Tf 11.879 0 Td (digit1)Tj /T1_1 1 Tf 2.691 0 Td [(to )-52(the )-52(same )-52(\336le )-52(as )-52(descriptor)]TJ /T1_2 1 Tf 13.166 0 Td (digit2)Tj /T1_1 1 Tf 0.5517 Tc (.W)Tj 0 Tc 4.191 0 Td [(hat )-52(is )-52(the )-52(dif)19(fer)18(ence)]TJ -31.926 -1.222 Td [(between )-84(the )-84(two )-84(commands )-84(shown )-84(below?)-584(\(Hint: )-84(The )-84(shells )-84(pr)18(ocess )-84(their )-84(command )-84(lines)]TJ 0 -1.222 TD [(fr)18(om left to right.\))]TJ /TT1 1 Tf 2 -1.562 Td (./a.out > outfile 2>&1)Tj 0 -1.189 TD (./a.out 2>&1 > outfile)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47064 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (88)Tj /T1_1 1 Tf 3 0 Td [(File )-250(I/O)]TJ 39.741 0 Td [(Chapter )-250(3)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm (The)Tj /TT0 1 Tf 2.048 0 Td (ioctl)Tj /T1_1 1 Tf 3.374 0 Td [(function )-124(was )-124(included )-124(in )-124(the )-124(Single )-124(UNIX )-124(Speci\336cation )-124(only )-124(as )-124(an )-124(extension )-124(for)]TJ -5.423 -1.25 Td [(dealing )-35(with )-35(STREAMS )-35(devices)]TJ 14.441 0.04 Td ([)Tj 0.333 -0.04 Td [(Rago )-35(1993)]TJ 4.555 0.04 Td (])Tj 0.2848 Tc 0.333 -0.04 Td (,b)Tj 0 Tc 1.088 0 Td [(ut )-35(it )-35(was )-35(moved )-35(to )-35(obsolescent )-35(status )-35(in )-35(SUSv4.)]TJ -20.749 -1.25 Td [(UNIX )-118(System )-118(implementations )-118(use)]TJ /TT0 1 Tf 16.268 0 Td (ioctl)Tj /T1_1 1 Tf 3.368 0 Td [(for )-118(many )-118(miscellaneous )-118(device )-118(operations.)-618(Some)]TJ -19.636 -1.25 Td [(implementations have even extended it for use with r)18(egular \336les.)]TJ 9.9994 0 0 9.9994 147.5911 618.9629 Tm [(The )-108(pr)18(ototype )-108(that )-108(we )-108(show )-108(corr)18(esponds )-108(to )-108(POSIX.1.)-607(Fr)18(eeBSD )-108(8.0 )-108(and )-108(Mac )-108(OS )-108(X)]TJ -1.8 -1.2 Td [(10.6.8 )-91(declar)]TJ 0.3413 Tc 5.543 0 Td (et)Tj 0 Tc 1.146 0 Td [(he )-91(second )-91(ar)18(gument )-91(as )-91(an)]TJ /TT0 1 Tf 12.165 0 Td [(unsigned )259(long)]TJ /T1_1 1 Tf 0.5912 Tc (.T)Tj 0 Tc 8.995 0 Td [(his )-91(detail )-91(doesn\325t )-91(matter)73(,)]TJ -27.85 -1.2 Td [(since the second ar)18(gument is always a)]TJ /TT0 1 Tf 17.069 0 Td (#define)Tj /T1_1 1 Tf 0.25 Tc (dn)Tj 0 Tc 5.643 0 Td [(ame fr)18(om a header)74(.)]TJ -20.912 -1.2 Td [(For )-18(the )-18(ISO )-18(C )-18(pr)19(ototype, )-18(an )-18(ellipsis )-18(is )-18(used )-18(for )-18(the )-18(r)18(emaining )-18(ar)20(guments. )-268(Normally)111(,)]TJ -1.8 -1.2 Td (however)Tj 0.3235 Tc 3.806 0 Td (,t)Tj 0 Tc 0.9 0 Td [(her)18(e)-323(is)-323(o)-1(nly )-73(one )-73(mor)]TJ 0.3235 Tc 9.314 0 Td (ea)Tj -0.018 Tc 1.302 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument, )-73(and )-73(it\325s )-73(usually )-73(a )-73(pointer )-73(to )-73(a )-73(variable )-73(or )-73(a)]TJ -16.255 -1.2 Td [(str)8(uctur)18(e.)]TJ 1.8 -1.2 Td [(In )-332(this )-332(pr)19(ototype, )-332(we )-332(show )-332(only )-332(the )-332(headers )-332(r)20(equir)18(ed )-332(for )-332(the )-332(function )-332(itself.)]TJ -1.8 -1.2 Td (Normally)Tj 0.5048 Tc 4.182 0 Td (,a)Tj 0 Tc 1.255 0 Td [(dditional )-255(device-speci\336c )-255(headers )-255(ar)]TJ 0.5048 Tc 16.4 0 Td (er)Tj 0 Tc 1.361 0 Td [(equir)18(ed. )-505(For)-505(example, )-255(the)]TJ /TT0 1 Tf 12.802 0 Td (ioctl)Tj /T1_1 1 Tf -36 -1.2 Td [(commands )-247(for )-247(terminal )-247(I/O, )-247(beyond )-247(the )-247(basic )-247(operations )-247(speci\336ed )-247(by )-247(POSIX.1, )-247(all)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td (quir)Tj 0.25 Tc 1.831 0 Td (et)Tj 0 Tc 1.055 0 Td (he)Tj /TT0 1 Tf 1.311 0 Td ()Tj /T1_1 1 Tf 6.85 0 Td [(header)74(.)]TJ -10.103 -1.2 Td [(Each )-306(device )-306(driver )-306(can )-306(de\336ne )-306(its )-306(own )-306(set )-306(of)]TJ /TT0 1 Tf 22.142 0 Td (ioctl)Tj /T1_1 1 Tf 3.556 0 Td [(commands. )-556(The)-557(system,)]TJ -27.499 -1.2 Td (however)Tj 0.2921 Tc 3.806 0 Td (,p)Tj -0.018 Tc 1.143 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vides )-42(generic)]TJ /TT0 1 Tf 6.18 0 Td (ioctl)Tj /T1_1 1 Tf 3.292 0 Td [(commands )-42(for )-42(dif)18(fer)18(ent )-42(classes )-42(of )-42(devices.)-542(Examples)]TJ -15.344 -1.2 Td [(of )-43(some )-43(of )-43(the )-43(categories )-43(for )-43(these )-43(generic)]TJ /TT0 1 Tf 19.048 0 Td (ioctl)Tj /T1_1 1 Tf 3.293 0 Td [(commands )-43(supported )-43(in )-43(Fr)18(eeBSD )-43(ar)20(e)]TJ -22.34 -1.2 Td (summarized in Figur)Tj 0.25 Tc 9.325 0 Td (e3)Tj 0 Tc 1.229 0 Td (.15.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2012.25 4442.25 cm 0 0 m 2468 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 266.592 436.1477 Tm (Constant )Tj 17.297 0 Td [(Number)-250(of)]TJ -16.733 -1.25 Td (names)Tj /TT0 1 Tf 17.458 0 Td (ioctl)Tj /T1_1 1 Tf (s)Tj -24.695 0.625 Td (Category)Tj 15.722 0 Td (Header)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2012.25 4222.25 cm 0 0 m 2468 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2012.25 4202.25 cm 0 0 m 2468 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 205.1751 412.1258 Tm (disk labels)Tj /TT0 1 Tf 7.574 0 Td [(DIOxxx )-1500()]TJ /T1_1 1 Tf 19.836 0 Td (4)Tj -27.41 -1.25 Td (\336le I/O)Tj /TT0 1 Tf 7.574 0 Td [(FIOxxx )-1500()]TJ /T1_1 1 Tf 19.336 0 Td (14)Tj -26.91 -1.25 Td (mag tape I/O)Tj /TT0 1 Tf 7.574 0 Td [(MTIOxxx )-900()]TJ /T1_1 1 Tf -0.055 Tc 19.391 0 Td (11)Tj 0 Tc -26.965 -1.25 Td (socket I/O)Tj /TT0 1 Tf 7.574 0 Td [(SIOxxx )-1500()]TJ /T1_1 1 Tf 19.336 0 Td (73)Tj -26.91 -1.25 Td (terminal I/O)Tj /TT0 1 Tf 7.574 0 Td [(TIOxxx )-1500()]TJ /T1_1 1 Tf 19.336 0 Td (43)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2012.25 3682.25 cm 0 0 m 2468 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3990.25 3682.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3054.25 3682.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2598.25 3682.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4480.25 3682.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2012.25 3682.25 cm 0 0 m 0 760 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 236.2033 350.116 Tm (Figure 3.15)Tj /T1_1 1 Tf 5.695 0 Td [(Common Fr)18(eeBSD)]TJ /TT0 1 Tf 8.45 0 Td (ioctl)Tj /T1_1 1 Tf 3.25 0 Td (operations)Tj 9.9976 0 0 9.9976 147.5648 326.1217 Tm [(The )-143(mag )-143(tape )-143(operations )-143(allow )-143(us )-143(to )-143(write )-143(end-of-\336le )-143(marks )-143(on )-143(a )-143(tape, )-143(r)23(ewind )-143(a)]TJ -1.8 -1.2 Td [(tape, )-100(space )-100(forwar)]TJ 0.3497 Tc 8.288 0 Td (do)Tj 0 Tc 1.507 0 Td [(ver )-100(a )-100(speci\336ed )-100(number )-100(of )-100(\336les )-100(or )-100(r)20(ecor)18(ds, )-100(and )-100(the )-100(like.)-600(None )-100(of)]TJ -9.795 -1.2 Td [(these )-14(operations )-14(is )-14(easily )-14(expr)18(essed )-14(in )-14(terms )-14(of )-14(the )-14(other )-14(functions )-14(in )-14(the )-14(chapter )-14(\()]TJ /TT0 1 Tf 36.35 0 Td (read)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -36.35 -1.2 Td (write)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.567 0 Td (lseek)Tj /T1_1 1 Tf 0.3168 Tc (,a)Tj 0 Tc 4.067 0 Td [(nd )-67(so )-67(on\), )-67(so )-67(the )-67(easiest )-67(way )-67(to )-67(handle )-67(these )-67(devices )-67(has )-67(always )-67(been)]TJ -7.634 -1.2 Td (to access their operations using)Tj /TT0 1 Tf 14.056 0 Td (ioctl)Tj /T1_1 1 Tf (.)Tj -0.092 Tc -12.256 -1.2 Td [(We )-248(u)]TJ 0 Tc 2.304 0 Td [(se )-64(the)]TJ /TT0 1 Tf 2.919 0 Td (ioctl)Tj /T1_1 1 Tf 3.314 0 Td [(function )-64(in )-64(Section )-64(18.12 )-64(to )-64(fetch )-64(and )-64(set )-64(the )-64(size )-64(of )-64(a )-64(terminal\325s)]TJ -10.337 -1.2 Td (window)Tj 0.259 Tc 3.606 0 Td (,a)Tj 0 Tc 1.009 0 Td [(nd )-9(in )-9(Section )-9(19.7 )-9(when )-9(we )-9(access )-9(the )-9(advanced )-9(featur)18(es )-9(of )-9(pseudo )-9(terminals.)]TJ /TT1 1 Tf 11.9971 0 0 11.9971 93.5781 220.5471 Tm (3.16)Tj /TT2 1 Tf 3 0 Td (/dev/fd)Tj /T1_1 1 Tf 9.9976 0 0 9.9976 129.5695 198.9522 Tm [(Newer )-16(systems )-16(pr)18(ovide )-16(a )-16(dir)18(ectory )-16(named)]TJ /TT0 1 Tf 19.183 0 Td (/dev/fd)Tj /T1_1 1 Tf 4.466 0 Td [(whose )-16(entries )-16(ar)]TJ 0.2666 Tc 7.251 0 Td (e\336)Tj 0 Tc 1.351 0 Td [(les )-17(named)]TJ /TT0 1 Tf 4.782 0 Td (0)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 1.117 0 Td (1)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -38.15 -1.2 Td (2)Tj /T1_1 1 Tf 0.399 Tc (,a)Tj 0 Tc 1.749 0 Td [(nd )-149(so )-149(on.)-649(Opening )-149(the )-149(\336le)]TJ /TT0 1 Tf 12.824 0 Td (/dev/fd/)Tj /T1_2 1 Tf (n)Tj /T1_1 1 Tf 5.755 0 Td [(is )-149(equivalent )-149(to )-149(duplicating )-149(descriptor)]TJ /T1_2 1 Tf 17.866 0 Td (n)Tj /T1_1 1 Tf (,)Tj -38.194 -1.2 Td (assuming that descriptor)Tj /T1_2 1 Tf 11.259 0 Td (n)Tj /T1_1 1 Tf 0.806 0 Td (is open.)Tj 7.9981 0 0 7.9981 183.5574 154.9628 Tm (The)Tj /TT0 1 Tf 2.107 0 Td (/dev/fd)Tj /T1_1 1 Tf 4.633 0 Td (featur)Tj 0.4328 Tc 2.618 0 Td (ew)Tj 0 Tc 1.746 0 Td [(as )-183(developed )-183(by )-183(T)92(om )-183(Duf)]TJ 0.4328 Tc 12.068 0 Td (fa)Tj 0 Tc 1.266 0 Td [(nd )-183(appear)18(ed )-183(in )-183(the )-183(8th )-183(Edition )-183(of )-183(the)]TJ -24.437 -1.25 Td [(Resear)18(ch )-68(UNIX )-68(System.)-568(It )-68(is )-68(supported )-68(by )-68(all )-68(of )-68(the )-68(systems )-68(described )-68(in )-68(this )-68(book: )-68(Fr)20(eeBSD)]TJ -0 -1.25 Td [(8.0, Linux 3.2.0, Mac OS X 10.6.8, and Solaris 10.)-500(It is not part of POSIX.1.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47065 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(3.15)]TJ /TT0 1 Tf 36.903 0 Td (ioctl)Tj /T1_0 1 Tf 3.5 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (87)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.018 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm (ro)Tj 0 Tc 0.923 0 Td [(w)-352(in)-352(F)1(igur)]TJ 0.3517 Tc 4.793 0 Td (e3)Tj 0 Tc 1.331 0 Td [(.13, )-102(but )-102(since )-102(the)]TJ /TT0 1 Tf 7.996 0 Td (O_SYNC)Tj /T1_0 1 Tf 3.952 0 Td [(\337ag )-102(isn\325t )-102(having )-102(the )-102(intended )-102(ef)18(fect, )-102(the )-102(last)]TJ -0.018 Tc -18.995 -1.2 Td (ro)Tj 0.25 Tc 0.923 0 Td (wb)Tj 0 Tc 1.637 0 Td [(ehaves the same way as the \336fth r)18(ow)92(.)]TJ -0.76 -1.2 Td (Figur)Tj 0.3299 Tc 2.383 0 Td (e3)Tj 0 Tc 1.309 0 Td [(.14 )-80(shows )-80(timing )-80(r)18(esults )-80(for )-80(the )-80(same )-80(tests )-80(r)9(un )-80(on )-80(Mac )-80(OS )-80(X )-80(10.6.8, )-80(which)]TJ -5.492 -1.2 Td [(uses )-208(the)]TJ /TT0 1 Tf 4.234 0 Td (HFS)Tj /T1_0 1 Tf 2.258 0 Td [(\336le )-208(system.)-708(Note )-208(that )-208(the )-208(times )-208(match )-208(our )-208(expectations: )-208(synchr)14(onous)]TJ -6.492 -1.2 Td [(writes )-50(ar)]TJ 0.3002 Tc 3.926 0 Td (ef)Tj 0 Tc 1.112 0 Td [(ar )-50(mor)]TJ 0.3002 Tc 3.001 0 Td (ee)Tj 0 Tc 1.258 0 Td [(xpensive )-50(than )-50(delayed )-50(writes, )-50(and )-50(using)]TJ /TT0 1 Tf 18.403 0 Td (fsync)Tj /T1_0 1 Tf 3.3 0 Td [(with )-50(synchr)18(onous)]TJ -31.001 -1.2 Td [(writes )-64(makes )-64(very )-64(little )-64(dif)17(fer)18(ence. )-314(Note)-315(also )-64(that )-64(adding )-64(a )-64(call )-64(to)]TJ /TT0 1 Tf 29.978 0 Td (fsync)Tj /T1_0 1 Tf 3.314 0 Td [(at )-64(the )-64(end )-64(of)]TJ -33.293 -1.2 Td [(the )-188(delayed )-188(writes )-188(makes )-188(little )-188(measurable )-188(dif)19(fer)18(ence. )-438(It)-438(is )-188(likely )-188(that )-188(the )-188(operating)]TJ -0 -1.2 Td [(system )-53(\337ushed )-53(pr)18(eviously )-53(written )-53(data )-53(to )-53(disk )-53(as )-53(we )-53(wer)]TJ 0.3031 Tc 25.711 0 Td (ew)Tj 0 Tc 1.616 0 Td [(riting )-53(new )-53(data )-53(to )-53(the )-53(\336le,)]TJ -27.327 -1.2 Td (so by the time that we called)Tj /TT0 1 Tf 12.858 0 Td (fsync)Tj /T1_0 1 Tf 0.25 Tc (,v)Tj 0 Tc 4.065 0 Td (ery little work was left to be done.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1530.25 5530.25 cm 0 0 m 3431 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 350.278 544.9346 Tm [(User CPU)-1500(System CPU)-1500(Clock time)]TJ 0.121 -1.25 Td [(\(seconds\) )-2049(\(seconds\))-2479(\(seconds\))]TJ -15.201 0.625 Td (Operation)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1530.25 5310.25 cm 0 0 m 3431 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1530.25 5290.25 cm 0 0 m 3431 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 157.0437 520.9062 Tm (write)Tj /T1_0 1 Tf 3.25 0 Td (to)Tj /TT0 1 Tf 1.122 0 Td (/dev/null)Tj /T1_0 1 Tf 21.118 0 Td [(0.14 )-4725(1.02)-4905(5.28)]TJ -25.489 -1.25 Td (normal)Tj /TT0 1 Tf 3.447 0 Td (write)Tj /T1_0 1 Tf 3.25 0 Td (to disk \336le)Tj 18.792 0 Td [(0.14 )-4725(3.21)-4405(17.04)]TJ /TT0 1 Tf -25.489 -1.25 Td (write)Tj /T1_0 1 Tf 3.25 0 Td (to disk \336le with)Tj /TT0 1 Tf 7.162 0 Td (O_SYNC)Tj /T1_0 1 Tf 3.85 0 Td (set )Tj 11.227 0 Td [(0.39)-4476(16.89 )-4154(60.82)]TJ /TT0 1 Tf -25.489 -1.25 Td (write)Tj /T1_0 1 Tf 3.25 0 Td (to disk followed by)Tj /TT0 1 Tf 8.794 0 Td (fsync)Tj /T1_0 1 Tf 13.445 0 Td [(0.13 )-4725(3.07)-4405(17.10)]TJ /TT0 1 Tf -25.489 -1.25 Td (write)Tj /T1_0 1 Tf 3.25 0 Td (to disk with)Tj /TT0 1 Tf 5.537 0 Td (O_SYNC)Tj /T1_0 1 Tf 3.85 0 Td (set followed by)Tj /TT0 1 Tf 7.019 0 Td (fsync)Tj /T1_0 1 Tf 5.834 0 Td [(0.39 )-4225(18.18)-4405(62.39)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1530.25 4770.25 cm 0 0 m 3431 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4479.25 4770.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3916.25 4770.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3443.25 4770.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4961.25 4770.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1530.25 4770.25 cm 0 0 m 0 760 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 173.0905 458.8898 Tm (Figure 3.14)Tj /T1_0 1 Tf 5.695 0 Td (Mac OS X)Tj /TT0 1 Tf 4.618 0 Td (HFS)Tj /T1_0 1 Tf 2.05 0 Td [(timing r)18(esults using various synchr)18(onization mechanisms)]TJ 9.9976 0 0 9.9976 147.5649 434.8956 Tm [(Compar)18(e)]TJ /TT0 1 Tf 4.424 0 Td (fsync)Tj /T1_0 1 Tf 3.329 0 Td (and)Tj /TT0 1 Tf 2.022 0 Td (fdatasync)Tj /T1_0 1 Tf 0.3289 Tc (,b)Tj 0 Tc 6.532 0 Td [(oth )-79(of )-79(which )-79(update )-79(a )-79(\336le\325s )-79(contents )-79(when )-79(we)]TJ -18.107 -1.2 Td [(say )-28(so, )-28(with )-28(the)]TJ /TT0 1 Tf 7.233 0 Td (O_SYNC)Tj /T1_0 1 Tf 3.878 0 Td [(\337ag, )-28(which )-28(updates )-28(a )-28(\336le\325s )-28(contents )-28(every )-28(time )-28(we )-28(write )-28(to )-28(the)]TJ -11.112 -1.2 Td [(\336le. )-385(The)-385(performance )-135(of )-135(each )-135(alternative )-135(will )-135(depend )-135(on )-135(many )-135(factors, )-135(including )-135(the)]TJ 0 -1.2 TD [(underlying )-51(operating )-51(system )-51(implementation, )-51(the )-51(speed )-51(of )-51(the )-51(disk )-51(drive, )-51(and )-51(the )-51(type)]TJ T* (of the \336le system.)Tj ET q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3870.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf -0.055 Tc 9.997 0 0 9.997 147.5557 360.4918 Tm (Wi)Tj 0 Tc 1.236 0 Td [(th )-320(this )-320(example, )-320(we )-320(see )-320(the )-320(need )-320(for)]TJ /TT0 1 Tf 18.595 0 Td (fcntl)Tj /T1_0 1 Tf 0.8198 Tc (.O)Tj 0 Tc 4.856 0 Td [(ur )-320(pr)18(ogram )-320(operates )-320(on )-320(a)]TJ -26.486 -1.2 Td [(descriptor )-119(\(standar)]TJ 0.3692 Tc 8.534 0 Td (do)Tj 0 Tc 1.526 0 Td [(utput\), )-119(never )-119(knowing )-119(the )-119(name )-119(of )-119(the )-119(\336le )-119(that )-119(was )-119(opened )-119(on)]TJ -10.06 -1.2 Td [(that )-134(descriptor)]TJ 0.6336 Tc 6.556 0 Td (.W)Tj 0.3836 Tc 1.792 0 Td (ec)Tj 0 Tc 1.307 0 Td [(an\325t )-134(set )-134(the)]TJ /TT0 1 Tf 5.453 0 Td (O_SYNC)Tj /T1_0 1 Tf 3.984 0 Td [(\337ag )-134(when )-134(the )-134(\336le )-134(is )-134(opened, )-134(since )-134(the )-134(shell)]TJ -19.09 -1.2 Td [(opened )-140(the )-140(\336le.)]TJ -0.055 Tc 7.729 0 Td (Wi)Tj 0 Tc 1.236 0 Td (th)Tj /TT0 1 Tf 1.298 0 Td (fcntl)Tj /T1_0 1 Tf [(,)-390(we)-390(can )-140(modify )-140(the )-140(pr)19(operties )-140(of )-140(a )-140(descriptor)]TJ 0.3897 Tc 24.15 0 Td (,k)Tj 0 Tc 1.196 0 Td (nowing)Tj -35.609 -1.2 Td [(only )-259(the )-259(descriptor )-259(for )-259(the )-259(open )-259(\336le.)]TJ -0.092 Tc 18.182 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-259(see )-259(another )-259(need )-259(for)]TJ /TT0 1 Tf 11.623 0 Td (fcntl)Tj /T1_0 1 Tf 3.509 0 Td [(when )-259(we)]TJ -34.701 -1.2 Td [(describe nonblocking pipes \(Section 15.2\), since all we have with a pi\ pe is a descriptor)74(.)]TJ /TT1 1 Tf 11.9964 0 0 11.9964 93.5717 269.3192 Tm (3.15)Tj /TT2 1 Tf 3 0 Td (ioctl)Tj /TT1 1 Tf 3.556 0 Td (Function)Tj /T1_0 1 Tf 9.997 0 0 9.997 129.5609 252.5242 Tm (The)Tj /TT0 1 Tf 2.088 0 Td (ioctl)Tj /T1_0 1 Tf 3.414 0 Td [(function )-164(has )-164(always )-164(been )-164(the )-164(catchall )-164(for )-164(I/O )-164(operations.)-666(Anything )-164(that)]TJ -5.502 -1.2 Td [(couldn\325t )-39(be )-39(expr)18(essed )-39(using )-39(one )-39(of )-39(the )-39(other )-39(functions )-39(in )-39(this )-39(chapter )-39(usually )-39(ended )-39(up)]TJ T* [(being )-183(speci\336ed )-183(with )-183(an)]TJ /TT0 1 Tf 11.242 0 Td (ioctl)Tj /T1_0 1 Tf 0.683 Tc (.T)Tj 0 Tc 4.454 0 Td [(erminal )-183(I/O )-183(was )-183(the )-183(biggest )-183(user )-183(of )-183(this )-183(function.)]TJ -15.696 -1.2 Td [(\(When )-216(we )-216(get )-216(to )-216(Chapter )-216(18, )-216(we\325ll )-216(see )-216(that )-216(POSIX.1 )-216(has )-216(r)16(eplaced )-216(the )-216(terminal )-216(I/O)]TJ T* (operations with separate functions.\))Tj /TT0 1 Tf 8.9973 0 0 8.9973 147.5555 189.0433 Tm [(#include )-3000(/* System V */)]TJ 0 -1.189 TD [(#include )-1200(/* BSD and Linux */)]TJ 0 -1.783 TD (int ioctl\(int)Tj /T1_2 1 Tf 8.4 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf -0.018 Tc 1.8 0 Td (re)Tj 0 Tc 0.76 0 Td (quest)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 3.93 0 Td (..\);)Tj /T1_0 1 Tf 3.365 -1.783 Td (Returns:)Tj /TT3 1 Tf 3.977 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ 0.25 Tc 4.795 0 Td (,s)Tj 0 Tc 0.924 0 Td (omething else if OK)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1418.25 cm 0 0 m 0 563 l 3900 563 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47066 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (132)Tj /T1_1 1 Tf 3.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.241 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(In )-272(SUSv4,)]TJ /TT0 1 Tf 5.106 0 Td (nftw)Tj /T1_1 1 Tf 2.922 0 Td [(is )-272(included )-272(as )-272(part )-272(of )-272(the )-272(XSI )-272(option.)-772(Implementations )-272(ar)]TJ 0.5219 Tc 27.664 0 Td (ei)Tj 0 Tc 1.292 0 Td [(ncluded )-272(in)]TJ -36.984 -1.25 Td [(Fr)18(eeBSD )-142(8.0, )-142(Linux )-142(3.2.0, )-142(Mac )-142(OS )-142(X )-142(10.6.8, )-142(and )-142(Solaris )-142(10.)-642(\(In )-142(SUSv4, )-142(the)]TJ /TT0 1 Tf 34.204 0 Td (ftw)Tj /T1_1 1 Tf 2.192 0 Td [(function )-142(has)]TJ -36.395 -1.25 Td [(been )-294(marked )-294(as )-294(obsolescent.\))-792(BSD)]TJ 16.453 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-294(systems )-294(have )-294(a )-294(dif)20(fer)18(ent )-294(function,)]TJ /TT0 1 Tf 19.721 0 Td (fts)Tj /T1_1 1 Tf 1.8 0.04 Td (\()Tj 0.333 -0.04 Td (3)Tj 0.5 0.04 Td (\))Tj 0.5436 Tc 0.333 -0.04 Td (,t)Tj 0 Tc 1.12 0 Td (hat)Tj -40.592 -1.25 Td [(pr)18(ovides similar functionality)]TJ 0.5 Tc 13.029 0 Td (.I)Tj 0 Tc 1.087 0 Td [(t)-250(is)-250(available in Fr)18(eeBSD 8.0, Linux 3.2.0, and Mac OS X 10.6.8.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6278.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 618.2248 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj 0 -1.902 TD (/* function type that is called for each filename */)Tj 0 -1.189 TD (typedef int Myfunc\(const char *, const struct stat *, int\);)Tj 0 -1.902 TD [(static Myfunc)-1800(myfunc;)]TJ 0 -1.189 TD [(static int)-3600(myftw\(char *, Myfunc *\);)]TJ T* [(static int)-3600(dopath\(Myfunc *\);)]TJ 0 -1.902 TD (static long nreg, ndir, nblk, nchr, nfifo, nslink, nsock, ntot;)Tj T* (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(ret;)]TJ 0 -1.902 TD (if \(argc != 2\))Tj 2.4 -1.189 Td [(err_quit\("usage: )-600(ftw )-600("\);)]TJ -2.4 -1.902 Td [(ret = myftw\(argv[1], myfunc\);)-4200(/* does it all */)]TJ T* (ntot = nreg + ndir + nblk + nchr + nfifo + nslink + nsock;)Tj 0 -1.189 TD (if \(ntot == 0\))Tj 2.4 -1.189 Td [(ntot = 1;)-4200(/* avoid divide by 0; print 0 for all counts */)]TJ -2.4 -1.189 Td (printf\("regular files)Tj 0.6 Tc 13.8 0 Td (=%)Tj 0 Tc 1.8 0 Td (7ld, %5.2f %%\\n", nreg,)Tj -14.4 -1.189 Td (nreg*100.0/ntot\);)Tj -1.2 -1.189 Td [(printf\("directories )-1800(=)-600(%7ld, %5.2f %%\\n", ndir,)]TJ 1.2 -1.189 Td (ndir*100.0/ntot\);)Tj -1.2 -1.189 Td (printf\("block special)Tj 0.6 Tc 13.8 0 Td (=%)Tj 0 Tc 1.8 0 Td (7ld, %5.2f %%\\n", nblk,)Tj -14.4 -1.189 Td (nblk*100.0/ntot\);)Tj -1.2 -1.189 Td (printf\("char special)Tj 0.6 Tc 13.8 0 Td (=%)Tj 0 Tc 1.8 0 Td (7ld, %5.2f %%\\n", nchr,)Tj -14.4 -1.189 Td (nchr*100.0/ntot\);)Tj -1.2 -1.189 Td (printf\("FIFOs )Tj 13.8 0 Td [(=)-600(%7ld, %5.2f %%\\n", nfifo,)]TJ -12.6 -1.189 Td (nfifo*100.0/ntot\);)Tj -1.2 -1.189 Td (printf\("symbolic links = %7ld, %5.2f %%\\n", nslink,)Tj 1.2 -1.189 Td (nslink*100.0/ntot\);)Tj -1.2 -1.189 Td [(printf\("sockets )-4200(=)-600(%7ld, %5.2f %%\\n", nsock,)]TJ 1.2 -1.189 Td (nsock*100.0/ntot\);)Tj -1.2 -1.189 Td (exit\(ret\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*D)Tj 0 Tc 1.8 0 Td (escend through the hierarchy, starting at "pathname".)Tj 0.6 Tc -1.8 -1.189 Td (*T)Tj 0 Tc 1.8 0 Td (he caller\325s func\(\) is called for every file.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (#define FTW_F)Tj 4.2 Tc 9.6 0 Td (1/)Tj 0.6 Tc 5.4 0 Td (*f)Tj 0 Tc 1.8 0 Td (ile other than directory */)Tj -16.8 -1.189 Td (#define FTW_D)Tj 4.2 Tc 9.6 0 Td (2/)Tj 0.6 Tc 5.4 0 Td (*d)Tj 0 Tc 1.8 0 Td (irectory */)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47067 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.22)]TJ 34.82 0 Td [(Reading )-250(Dir)18(ectories)]TJ /T1_1 1 Tf 11.013 0 Td (131)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (The)Tj /TT0 1 Tf 2.425 0 Td (fdopendir)Tj /T1_0 1 Tf 6.151 0 Td [(function )-501(\336rst )-501(appear)18(ed )-501(in )-501(version )-501(4 )-501(of )-501(the )-501(Single )-501(UNIX)]TJ -10.376 -1.2 Td [(Speci\336cation. )-323(It)-322(pr)18(ovides )-73(a )-73(way )-73(to )-73(convert )-73(an )-73(open )-73(\336le )-73(descriptor )-73(into )-73(a)]TJ /TT0 1 Tf 32.908 0 Td (DIR)Tj /T1_0 1 Tf 2.123 0 Td [(str)8(uctur)18(e)]TJ -35.031 -1.2 Td [(for use by the dir)18(ectory handling functions.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.057 0 Td (telldir)Tj /T1_0 1 Tf 4.583 0 Td (and)Tj /TT0 1 Tf 2.076 0 Td (seekdir)Tj /T1_0 1 Tf 4.583 0 Td [(functions )-133(ar)]TJ 0.3832 Tc 5.391 0 Td (en)Tj 0 Tc 1.444 0 Td [(ot )-133(part )-133(of )-133(the )-133(base )-133(POSIX.1 )-133(standar)17(d.)]TJ -21.935 -1.2 Td [(They )-45(ar)]TJ 0.295 Tc 3.402 0 Td (ei)Tj 0 Tc 1.065 0 Td [(ncluded )-45(in )-45(the )-45(XSI )-45(option )-45(in )-45(the )-45(Single )-45(UNIX )-45(Speci\336cation, )-45(so )-45(all )-45(conforming)]TJ -4.467 -1.2 Td (UNIX System implementations ar)Tj 0.25 Tc 14.917 0 Td (ee)Tj 0 Tc 1.208 0 Td [(xpected to pr)18(ovide them.)]TJ -14.325 -1.2 Td [(Recall )-37(our )-37(use )-37(of )-37(several )-37(of )-37(these )-37(functions )-37(in )-37(the )-37(pr)21(ogram )-37(shown )-37(in )-37(Figur)]TJ 0.2866 Tc 33.104 0 Td (e1)Tj 0 Tc 1.266 0 Td [(.3, )-37(our)]TJ -36.169 -1.2 Td [(bar)18(e-bones implementation of the)]TJ /TT0 1 Tf 15.152 0 Td (ls)Tj /T1_0 1 Tf 1.45 0 Td (command.)Tj -14.802 -1.2 Td (The)Tj /TT0 1 Tf 2.292 0 Td (dirent)Tj /T1_0 1 Tf 4.218 0 Td [(str)8(uctur)]TJ 0.6177 Tc 3.49 0 Td (ed)Tj 0 Tc 1.708 0 Td [(e\336ned )-368(in)]TJ /TT0 1 Tf 4.864 0 Td ()Tj /T1_0 1 Tf 6.618 0 Td [(is )-368(implementation )-368(dependent.)]TJ -24.989 -1.2 Td [(Implementations de\336ne the str)8(uctur)18(e)-250(to)-250(contain at least the following two members:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 158.391 544.2673 Tm [(ino_t )-600(d_ino;)]TJ 18 0 Td (/* i-node number */)Tj -18 -1.189 Td [(char )-1200(d_name[];)]TJ 18 0 Td (/* null-terminated filename */)Tj /T1_0 1 Tf 7.9995 0 0 7.9995 183.5895 512.3693 Tm (The)Tj /TT0 1 Tf 2.006 0 Td (d_ino)Tj /T1_0 1 Tf 3.332 0 Td [(entry )-82(is )-82(not )-82(de\336ned )-82(by )-82(POSIX.1, )-82(because )-82(it )-82(is )-82(an )-82(implementation )-82(featur)21(e, )-82(but )-82(it )-82(is)]TJ -5.338 -1.25 Td [(de\336ned )-94(as )-94(part )-94(of )-94(the )-94(XSI )-94(option )-94(in )-94(POSIX.1.)-599(POSIX.1 )-95(de\336nes )-95(only )-95(the)]TJ /TT0 1 Tf 32.532 0 Td (d_name)Tj /T1_0 1 Tf 3.945 0 Td [(entry )-95(in )-95(this)]TJ -36.477 -1.25 Td [(str)8(uctur)18(e.)]TJ 9.9994 0 0 9.9994 147.5916 471.3717 Tm [(Note )-21(that )-21(the )-21(size )-21(of )-21(the)]TJ /TT0 1 Tf 10.891 0 Td (d_name)Tj /T1_0 1 Tf 3.871 0 Td [(entry )-21(isn\325t )-21(speci\336ed, )-21(but )-21(it )-21(is )-21(guaranteed )-21(to )-21(hold )-21(at)]TJ -16.562 -1.2 Td (least)Tj /TT0 1 Tf 2.342 0 Td (NAME_MAX)Tj /T1_0 1 Tf 5.122 0 Td [(characters, )-72(not )-72(including )-72(the )-72(terminating )-72(null )-72(byte )-72(\(r)18(ecall )-72(Figur)]TJ 0.3225 Tc 28.401 0 Td (e2)Tj 0 Tc 1.301 0 Td (.15.\))Tj -37.167 -1.2 Td [(Since )-11(the )-11(\336lename )-11(is )-11(null )-11(terminated, )-11(however)72(,)-261(it)-261(d)-1(oesn\325t )-11(matter )-11(how)]TJ /TT0 1 Tf 30.795 0 Td (d_name)Tj /T1_0 1 Tf 3.861 0 Td [(is )-11(de\336ned)]TJ -34.657 -1.2 Td (in the header)Tj 0.25 Tc 5.732 0 Td (,b)Tj 0 Tc 1.053 0 Td (ecause the array size doesn\325t indicate the length of the \336lename.)Tj -4.985 -1.2 Td (The)Tj /TT0 1 Tf 1.946 0 Td (DIR)Tj /T1_0 1 Tf 2.072 0 Td [(str)8(uctur)18(e)-272(is)-272(an)-272(i)-1(nternal )-22(str)8(uctur)]TJ 0.2725 Tc 13.792 0 Td (eu)Tj 0 Tc 1.354 0 Td [(sed )-22(by )-22(these )-22(seven )-22(functions )-22(to )-22(maintain)]TJ -20.965 -1.2 Td [(information )-35(about )-35(the )-35(dir)18(ectory )-35(being )-35(r)17(ead. )-285(The)-286(purpose )-35(of )-35(the)]TJ /TT0 1 Tf 28.585 0 Td (DIR)Tj /T1_0 1 Tf 2.085 0 Td [(str)8(uctur)18(e)-285(is)-285(s)-1(imilar)]TJ -30.67 -1.2 Td [(to )-15(that )-15(of )-15(the)]TJ /TT0 1 Tf 5.934 0 Td (FILE)Tj /T1_0 1 Tf 2.665 0 Td [(str)8(uctur)]TJ 0.2654 Tc 3.49 0 Td (em)Tj 0 Tc 1.627 0 Td [(aintained )-15(by )-15(the )-15(standar)]TJ 0.2654 Tc 10.774 0 Td (dI)Tj 0 Tc 1.213 0 Td [(/O )-15(library)]TJ 0.2655 Tc 4.527 0 Td (,w)Tj 0 Tc 1.349 0 Td [(hich )-15(we )-15(describe)]TJ -31.581 -1.2 Td (in Chapter 5.)Tj 1.8 -1.2 Td [(The )-66(pointer )-66(to )-66(a)]TJ /TT0 1 Tf 7.531 0 Td (DIR)Tj /T1_0 1 Tf 2.116 0 Td [(str)8(uctur)]TJ 0.3162 Tc 3.49 0 Td (er)Tj 0 Tc 1.172 0 Td [(eturned )-66(by)]TJ /TT0 1 Tf 5.216 0 Td (opendir)Tj /T1_0 1 Tf 4.516 0 Td (and)Tj /TT0 1 Tf 2.009 0 Td (fdopendir)Tj /T1_0 1 Tf 5.716 0 Td [(is )-66(then )-66(used)]TJ -33.567 -1.2 Td [(with )-98(the )-98(other )-98(\336ve )-98(functions.)-597(The)]TJ /TT0 1 Tf 15.789 0 Td (opendir)Tj /T1_0 1 Tf 4.548 0 Td [(function )-98(initializes )-98(things )-98(so )-98(that )-98(the )-98(\336rst)]TJ /TT0 1 Tf -20.337 -1.2 Td (readdir)Tj /T1_0 1 Tf -0.018 Tc 4.531 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-80(the )-80(\336rst )-80(entry )-80(in )-80(the )-80(dir)15(ectory)]TJ 0.5804 Tc 15.962 0 Td (.W)Tj 0 Tc 1.83 0 Td [(hen )-80(the)]TJ /TT0 1 Tf 3.691 0 Td (DIR)Tj /T1_0 1 Tf 2.13 0 Td [(str)8(uctur)18(e)-330(is)-330(c)]TJ -0.018 Tc 5.789 0 Td (re)Tj 0 Tc 0.856 0 Td [(ated )-80(by)]TJ /TT0 1 Tf -35.645 -1.2 Td (fdopendir)Tj /T1_0 1 Tf 0.339 Tc (,t)Tj 0 Tc 6.315 0 Td [(he )-89(\336rst )-89(entry )-89(r)18(eturned )-89(by)]TJ /TT0 1 Tf 11.806 0 Td (readdir)Tj /T1_0 1 Tf 4.539 0 Td [(depends )-89(on )-89(the )-89(\336le )-89(of)18(fset )-89(associated)]TJ -22.66 -1.2 Td [(with )-56(the )-56(\336le )-56(descriptor )-56(passed )-56(to)]TJ /TT0 1 Tf 15.056 0 Td (fdopendir)Tj /T1_0 1 Tf 0.5562 Tc (.N)Tj 0 Tc 7.037 0 Td [(ote )-56(that )-56(the )-56(or)18(dering )-56(of )-56(entries )-56(within)]TJ -22.093 -1.2 Td [(the dir)18(ectory is implementation dependent and is usually not alphabetical.)]TJ /TT1 1 Tf -3.6 -2.4 Td (Example)Tj /T1_0 1 Tf -0.092 Tc 3.6 -2.04 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-27(use )-27(these )-27(dir)18(ectory )-27(r)18(outines )-27(to )-27(write )-27(a )-27(pr)15(ogram )-27(that )-27(traverses )-27(a )-27(\336le )-27(hierar)16(chy)]TJ 0.5275 Tc 35.162 0 Td (.T)Tj 0 Tc 1.391 0 Td (he)Tj -37.939 -1.2 Td [(goal )-255(is )-255(to )-255(pr)18(oduce )-255(a )-255(count )-255(of )-255(the )-255(various )-255(types )-255(of )-255(\336les )-255(shown )-255(in )-255(Figur)]TJ 0.5048 Tc 34.088 0 Td (e4)Tj 0 Tc 1.484 0 Td [(.4. )-505(The)]TJ -35.571 -1.2 Td [(pr)18(ogram )-121(shown )-121(in )-121(Figur)]TJ 0.3709 Tc 11.194 0 Td (e4)Tj 0 Tc 1.35 0 Td [(.22 )-121(takes )-121(a )-121(single )-121(ar)18(gument )167(\321 )167(the)-371(starting )-121(pathname)]TJ 0.0833 Tc 23.679 0 Td (\321a)Tj 0 Tc 1.583 0 Td (nd)Tj -0.018 Tc -37.807 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cursively )-40(descends )-40(the )-40(hierar)18(chy )-40(fr)18(om )-40(that )-40(point.)-540(Solaris )-40(pr)18(ovides )-40(a )-40(function,)]TJ /TT0 1 Tf 34.928 0 Td (ftw)Tj /T1_0 1 Tf 1.8 0.04 Td (\()Tj 0.333 -0.04 Td (3)Tj 0.5 0.04 Td (\))Tj 0.333 -0.04 Td (,)Tj -38.75 -1.2 Td [(that )-138(performs )-138(the )-138(actual )-138(traversal )-138(of )-138(the )-138(hierar)19(chy)]TJ 0.3878 Tc 22.792 0 Td (,c)Tj 0 Tc 1.082 0 Td [(alling )-138(a )-138(user)18(-de\336ned )-138(function )-138(for)]TJ -23.873 -1.2 Td [(each )-59(\336le.)-559(The )-59(pr)18(oblem )-59(with )-59(this )-59(function )-59(is )-59(that )-59(it )-59(calls )-59(the)]TJ /TT0 1 Tf 26.754 0 Td (stat)Tj /T1_0 1 Tf 2.709 0 Td [(function )-59(for )-59(each )-59(\336le,)]TJ -29.463 -1.2 Td [(which )-43(causes )-43(the )-43(pr)18(ogram )-43(to )-43(follow )-43(symbolic )-43(links.)-541(For )-43(example, )-43(if )-43(we )-43(start )-43(at )-43(the )-43(r)19(oot)]TJ 0 -1.2 TD [(and )-188(have )-188(a )-188(symbolic )-188(link )-188(named)]TJ /TT0 1 Tf 15.708 0 Td (/lib)Tj /T1_0 1 Tf 2.838 0 Td [(that )-188(points )-188(to)]TJ /TT0 1 Tf 6.689 0 Td (/usr/lib)Tj /T1_0 1 Tf 0.4376 Tc (,a)Tj 0 Tc 5.988 0 Td [(ll )-188(the )-188(\336les )-188(in )-188(the)]TJ -31.222 -1.2 Td [(dir)18(ectory)]TJ /TT0 1 Tf 4.454 0 Td (/usr/lib)Tj /T1_0 1 Tf 5.229 0 Td (ar)Tj 0.4295 Tc 0.877 0 Td (ec)Tj 0 Tc 1.352 0 Td [(ounted )-179(twice.)]TJ -0.092 Tc 6.88 0 Td [(To )-364(c)]TJ 0 Tc 1.941 0 Td [(orr)18(ect )-180(this )-180(pr)18(oblem, )-180(Solaris )-180(pr)18(ovides )-180(an)]TJ -20.734 -1.2 Td [(additional )-17(function,)]TJ /TT0 1 Tf 9.041 0 Td (nftw)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (3)Tj 0.5 0.04 Td (\))Tj 0.2674 Tc 0.333 -0.04 Td (,w)Tj 0 Tc 1.351 0 Td [(ith )-17(an )-17(option )-17(that )-17(stops )-17(it )-17(fr)18(om )-17(following )-17(symbolic )-17(links.)]TJ -13.958 -1.2 Td [(Although )-21(we )-21(could )-21(use)]TJ /TT0 1 Tf 10.663 0 Td (nftw)Tj /T1_0 1 Tf 0.2712 Tc (,w)Tj 0 Tc 3.755 0 Td [(e\325ll )-21(write )-21(our )-21(own )-21(simple )-21(\336le )-21(walker )-21(to )-21(show )-21(the )-21(use )-21(of)]TJ -14.418 -1.2 Td [(the dir)18(ectory r)18(outines.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47068 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.9)]TJ /TT0 1 Tf 23.886 0 Td (chmod)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.75 0 Td (fchmod)Tj /T1_0 1 Tf 0.5 Tc (,a)Tj 0 Tc 4.85 0 Td (nd)Tj /TT0 1 Tf 1.693 0 Td (fchmodat)Tj /T1_0 1 Tf 5.3 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (107)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Note )-66(that )-66(nine )-66(of )-66(the )-66(entries )-66(in )-66(Figur)]TJ 0.3164 Tc 16.563 0 Td (e4)Tj 0 Tc 1.295 0 Td (.1)Tj 0.3164 Tc 0.695 0 Td (1a)Tj -0.018 Tc 1.316 0 Td [(re )-102(t)]TJ 0 Tc 1.498 0 Td [(he )-66(nine )-66(\336le )-66(access )-66(permission )-66(bits )-66(fr)16(om)]TJ -21.368 -1.2 Td (Figur)Tj 0.5955 Tc 2.383 0 Td (e4)Tj 0 Tc 1.574 0 Td [(.6. )-595(W)92(e\325ve )-345(added )-345(the )-345(two )-345(set-ID )-345(constants )-345(\()]TJ /TT0 1 Tf 21.193 0 Td (S_ISUID)Tj /T1_0 1 Tf 4.796 0 Td (and)Tj /TT0 1 Tf 2.289 0 Td (S_ISGID)Tj /T1_0 1 Tf [(\), )-346(the)]TJ -32.234 -1.2 Td [(saved-text )-27(constant )-27(\()]TJ /TT0 1 Tf 9.177 0 Td (S_ISVTX)Tj /T1_0 1 Tf [(\), )-27(and )-27(the )-27(thr)18(ee )-27(combined )-27(constants )-27(\()]TJ /TT0 1 Tf 20.646 0 Td (S_IRWXU)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.727 0 Td (S_IRWXG)Tj /T1_0 1 Tf (,)Tj -34.55 -1.2 Td (and)Tj /TT0 1 Tf 1.943 0 Td (S_IRWXO)Tj /T1_0 1 Tf (\).)Tj 7.9995 0 0 7.9995 183.5891 615.3631 Tm [(The )-162(saved-text )-162(bit )-162(\()]TJ /TT0 1 Tf (S_ISVTX)Tj /T1_0 1 Tf [(\))-412(is)-412(not )-162(part )-162(of )-162(POSIX.1.)-662(It )-162(is )-162(de\336ned )-162(in )-162(the )-162(XSI )-162(option )-162(in )-162(the)]TJ -0 -1.25 Td (Single UNIX Speci\336cation.)Tj -0.092 Tc 12.221 0 Td [(We )-184(d)]TJ 0 Tc 2.248 0 Td (escribe its purpose in the next section.)Tj /TT1 1 Tf 9.9994 0 0 9.9994 93.5944 585.3649 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.16 Td [(Recall )-38(the )-38(\336nal )-38(state )-38(of )-38(the )-38(\336les)]TJ /TT0 1 Tf 14.173 0 Td (foo)Tj /T1_0 1 Tf 2.088 0 Td (and)Tj /TT0 1 Tf 1.981 0 Td (bar)Tj /T1_0 1 Tf 2.088 0 Td [(when )-38(we )-38(ran )-38(the )-38(pr)19(ogram )-38(in )-38(Figur)]TJ 0.2877 Tc 15.495 0 Td (e4)Tj 0 Tc 1.267 0 Td [(.9 )-38(to)]TJ -37.09 -1.2 Td (demonstrate the)Tj /TT0 1 Tf 7.438 0 Td (umask)Tj /T1_0 1 Tf 3.25 0 Td (function:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5904 537.208 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (ls -l foo bar)Tj /TT0 1 Tf -1.2 -1.189 Td [(-rw------- )-600(1)-600(sar )]TJ 18 0 Td [(0)-600(Dec )-600(7)-600(21:20 bar)]TJ -18 -1.189 Td [(-rw-rw-rw- )-600(1)-600(sar )]TJ 18 0 Td [(0)-600(Dec )-600(7)-600(21:20 foo)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5915 499.95 Tm [(The pr)18(ogram shown in Figur)]TJ 0.25 Tc 12.756 0 Td (e4)Tj 0 Tc 1.229 0 Td (.12 modi\336es the mode of these two \336les.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4904.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 480.8213 Tm (#include "apue.h")Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(struct stat)-3000(statbuf;)]TJ 0 -1.783 TD (/* turn on set-group-ID and turn off group-execute */)Tj 0 -1.783 TD (if \(stat\("foo", &statbuf\) < 0\))Tj 2.4 -1.189 Td (err_sys\("stat error for foo"\);)Tj -2.4 -1.189 Td (if \(chmod\("foo", \(statbuf.st_mode & \367S_IXGRP\) | S_ISGID\) < 0\))Tj 2.4 -1.189 Td (err_sys\("chmod error for foo"\);)Tj -2.4 -1.783 Td (/* set absolute mode to "rw-r--r--" */)Tj 0 -1.783 TD (if \(chmod\("bar", S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH\) < 0\))Tj 2.4 -1.189 Td (err_sys\("chmod error for bar"\);)Tj -2.4 -1.783 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2942.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 252.9065 278.1279 Tm (Figure 4.12)Tj /T1_0 1 Tf 5.695 0 Td (Example of)Tj /TT0 1 Tf 5.26 0 Td (chmod)Tj /T1_0 1 Tf 3.25 0 Td (function)Tj 9.9982 0 0 9.9982 129.577 256.5318 Tm [(After r)8(unning the pr)18(ogram in Figur)]TJ 0.25 Tc 15.645 0 Td (e4)Tj 0 Tc 1.229 0 Td (.12, we see that the \336nal state of the two \336les is)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.5735 241.9742 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (ls -l foo bar)Tj /TT0 1 Tf -1.2 -1.189 Td [(-rw-r--r-- )-600(1)-600(sar )]TJ 18 0 Td [(0)-600(Dec )-600(7)-600(21:20 bar)]TJ -18 -1.189 Td [(-rw-rwSrw- )-600(1)-600(sar )]TJ 18 0 Td [(0)-600(Dec )-600(7)-600(21:20 foo)]TJ /T1_0 1 Tf 9.9982 0 0 9.9982 129.5768 204.7211 Tm [(In )-234(this )-234(example, )-234(we )-234(have )-234(set )-234(the )-234(permissions )-234(of )-234(the )-234(\336le)]TJ /TT0 1 Tf 26.9 0 Td (bar)Tj /T1_0 1 Tf 2.284 0 Td [(to )-234(an )-234(absolute )-234(value,)]TJ -0.018 Tc -29.184 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(gar)18(dless )-244(of )-244(the )-244(curr)18(ent )-244(permission )-244(bits.)-744(For )-244(the )-244(\336le)]TJ /TT0 1 Tf 24.849 0 Td (foo)Tj /T1_0 1 Tf [(,)-494(we)-494(set )-244(the )-244(permissions)]TJ -0.018 Tc -25.705 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(lative )-259(to )-259(their )-259(curr)18(ent )-259(state.)]TJ -0.092 Tc 13.704 0 Td [(To )-443(d)]TJ 0.5091 Tc 2.187 0 Td (ot)Tj 0 Tc 1.381 0 Td [(his, )-259(we )-259(\336rst )-259(call)]TJ /TT0 1 Tf 8.173 0 Td (stat)Tj /T1_0 1 Tf 2.909 0 Td [(to )-259(obtain )-259(the )-259(curr)17(ent)]TJ -29.209 -1.2 Td [(permissions )-87(and )-87(then )-87(modify )-87(them.)]TJ -0.092 Tc 16.675 0 Td [(We )-271(h)]TJ 0 Tc 2.306 0 Td [(ave )-87(explicitly )-87(turned )-87(on )-87(the )-87(set-gr)20(oup-ID )-86(bit)]TJ -18.981 -1.2 Td [(and )-2(turned )-2(of)]TJ 0.2524 Tc 6.055 0 Td (ft)Tj 0 Tc 0.911 0 Td [(he )-2(gr)18(oup-execute )-2(bit.)-502(Note )-2(that )-2(the)]TJ /TT0 1 Tf 15.89 0 Td (ls)Tj /T1_0 1 Tf 1.452 0 Td [(command )-2(lists )-2(the )-2(gr)17(oup-execute)]TJ -24.309 -1.2 Td [(permission )-59(as)]TJ /TT0 1 Tf 6.458 0 Td (S)Tj /T1_0 1 Tf 0.909 0 Td [(to )-59(signify )-59(that )-59(the )-59(set-gr)18(oup-ID )-59(bit )-59(is )-59(set )-59(without )-59(the )-59(gr)18(oup-execute )-59(bit)]TJ -7.367 -1.2 Td (being set.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47069 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (94)Tj /T1_1 1 Tf 3 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.741 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Given )-134(a)]TJ /T1_2 1 Tf 3.948 0 Td (pathname)Tj /T1_1 1 Tf 0.384 Tc (,t)Tj 0 Tc 4.904 0 Td (he)Tj /TT0 1 Tf 1.445 0 Td (stat)Tj /T1_1 1 Tf 2.784 0 Td [(function )-134(r)18(eturns )-134(a )-134(str)8(uctur)18(e)-384(of)-384(information )-134(about )-134(the)]TJ -14.881 -1.2 Td [(named )-52(\336le.)-553(The)]TJ /TT0 1 Tf 7.511 0 Td (fstat)Tj /T1_1 1 Tf 3.302 0 Td [(function )-52(obtains )-52(information )-52(about )-52(the )-52(\336le )-52(that )-52(is )-52(alr)18(eady )-52(open)]TJ -10.813 -1.2 Td [(on )-32(the )-32(descriptor)]TJ /T1_2 1 Tf 7.873 0 Td (fd)Tj /T1_1 1 Tf 0.532 Tc (.T)Tj 0 Tc 2.173 0 Td (he)Tj /TT0 1 Tf 1.343 0 Td (lstat)Tj /T1_1 1 Tf 3.282 0 Td [(function )-32(is )-32(similar )-32(to)]TJ /TT0 1 Tf 9.497 0 Td (stat)Tj /T1_1 1 Tf 0.2819 Tc (,b)Tj 0 Tc 3.485 0 Td [(ut )-32(when )-32(the )-32(named )-32(\336le )-32(is)]TJ 0.5826 Tc -27.652 -1.2 Td (as)Tj 0 Tc 1.507 0 Td [(ymbolic )-333(link,)]TJ /TT0 1 Tf 6.699 0 Td (lstat)Tj /T1_1 1 Tf -0.018 Tc 3.583 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-333(information )-333(about )-333(the )-333(symbolic )-333(link, )-333(not )-333(the )-333(\336le)]TJ -0.018 Tc -12.645 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(enced )-5(by )-5(the )-5(symbolic )-5(link.)-503(\(W)92(e\325ll )-5(need)]TJ /TT0 1 Tf 19.002 0 Td (lstat)Tj /T1_1 1 Tf 3.255 0 Td [(in )-5(Section )-5(4.22 )-5(when )-5(we )-5(walk )-5(down)]TJ 0.25 Tc -23.112 -1.2 Td (ad)Tj 0 Tc 1.361 0 Td [(ir)18(ectory hierar)18(chy)]TJ 0.5 Tc 7.759 0 Td (.W)Tj 0.25 Tc 1.658 0 Td (ed)Tj 0 Tc 1.34 0 Td (escribe symbolic links in mor)Tj 0.25 Tc 12.876 0 Td (ed)Tj 0 Tc 1.34 0 Td (etail in Section 4.17.\))Tj -24.534 -1.2 Td (The)Tj /TT0 1 Tf 2.054 0 Td (fstatat)Tj /T1_1 1 Tf 4.58 0 Td [(function )-130(pr)18(ovides )-130(a )-130(way )-130(to )-130(r)18(eturn )-130(the )-130(\336le )-130(statistics )-130(for )-130(a )-130(pathname)]TJ -0.018 Tc -8.433 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(lative )-312(to )-312(an )-312(open )-312(dir)18(ectory )-312(r)18(epr)18(esented )-312(by )-312(the)]TJ /T1_2 1 Tf 22.844 0 Td (fd)Tj /T1_1 1 Tf 1.34 0 Td [(ar)18(gument. )-562(The)]TJ /T1_2 1 Tf 7.604 0 Td (\337ag)Tj /T1_1 1 Tf 2.051 0 Td [(ar)18(gument)]TJ -34.694 -1.2 Td [(contr)18(ols )-104(whether )-104(symbolic )-104(links )-104(ar)]TJ 0.3544 Tc 15.64 0 Td (ef)Tj 0 Tc 1.166 0 Td [(ollowed; )-104(when )-104(the)]TJ /TT0 1 Tf 8.776 0 Td (AT_SYMLINK_NOFOLLOW)Tj /T1_1 1 Tf 11.755 0 Td (\337ag)Tj -37.336 -1.2 Td [(is )-34(set,)]TJ /TT0 1 Tf 2.761 0 Td (fstatat)Tj /T1_1 1 Tf 4.484 0 Td [(will )-34(not )-34(follow )-34(symbolic )-34(links, )-34(but )-34(rather )-34(r)18(eturns )-34(information )-34(about )-34(the)]TJ -7.245 -1.2 Td [(link )-203(itself.)-703(Otherwise, )-203(the )-203(default )-203(is )-203(to )-203(follow )-203(symbolic )-203(links, )-203(r)18(eturning )-203(information)]TJ 0 -1.2 TD [(about )-235(the )-235(\336le )-235(to )-235(which )-235(the )-235(symbolic )-235(link )-235(points.)-731(If )-234(the)]TJ /T1_2 1 Tf 26.647 0 Td (fd)Tj /T1_1 1 Tf 1.262 0 Td [(ar)18(gument )-234(has )-234(the )-234(value)]TJ /TT0 1 Tf -27.91 -1.2 Td (AT_FDCWD)Tj /T1_1 1 Tf 5.101 0 Td [(and )-51(the)]TJ /T1_2 1 Tf 3.681 0 Td (pathname)Tj /T1_1 1 Tf 4.245 0 Td [(ar)18(gument )-51(is )-51(a )-51(r)18(elative )-51(pathname, )-51(then)]TJ /TT0 1 Tf 17.305 0 Td (fstatat)Tj /T1_1 1 Tf 4.501 0 Td (evaluates)Tj -34.833 -1.2 Td (the)Tj /T1_2 1 Tf 1.7 0 Td (pathname)Tj /T1_1 1 Tf 4.257 0 Td [(ar)18(gument )-63(r)18(elative )-63(to )-63(the )-63(curr)18(ent )-63(dir)17(ectory)]TJ 0.5632 Tc 18.559 0 Td (.I)Tj 0.3132 Tc 1.15 0 Td (ft)Tj 0 Tc 0.972 0 Td (he)Tj /T1_2 1 Tf 1.374 0 Td (pathname)Tj /T1_1 1 Tf 4.257 0 Td [(ar)18(gument )-63(is )-63(an)]TJ -32.271 -1.2 Td [(absolute )-237(pathname, )-237(then )-237(the)]TJ /T1_2 1 Tf 13.728 0 Td (fd)Tj /T1_1 1 Tf 1.265 0 Td [(ar)18(gument )-237(is )-237(ignor)18(ed. )-487(In)-487(these )-237(two )-237(cases,)]TJ /TT0 1 Tf 19.807 0 Td (fstatat)Tj /T1_1 1 Tf -34.8 -1.2 Td (behaves like either)Tj /TT0 1 Tf 8.501 0 Td (stat)Tj /T1_1 1 Tf 2.65 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (lstat)Tj /T1_1 1 Tf 0.25 Tc (,d)Tj 0 Tc 4.111 0 Td (epending on the value of)Tj /T1_2 1 Tf 11.263 0 Td (\337ag)Tj /T1_1 1 Tf (.)Tj -25.916 -1.2 Td (The)Tj /T1_2 1 Tf 1.968 0 Td (buf)Tj /T1_1 1 Tf 1.591 0 Td [(ar)18(gument )-44(is )-44(a )-44(pointer )-44(to )-44(a )-44(str)9(uctur)]TJ 0.2938 Tc 15.366 0 Td (et)Tj 0 Tc 1.099 0 Td [(hat )-44(we )-44(must )-44(supply)]TJ 0.5438 Tc 8.803 0 Td (.T)Tj 0 Tc 1.407 0 Td [(he )-44(functions )-44(\336ll)]TJ -32.033 -1.2 Td [(in )-68(the )-68(str)8(uctur)18(e. )-318(The)-318(de\336nition )-68(of )-68(the )-68(str)8(uctur)]TJ 0.318 Tc 20.698 0 Td (ec)Tj 0 Tc 1.241 0 Td [(an )-68(dif)18(fer )-68(among )-68(implementations, )-68(but)]TJ -21.939 -1.2 Td (it could look like)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5904 434.1342 Tm (struct stat {)Tj 1.2 -1.189 Td (mode_t )Tj 9.6 0 Td [(st_mode;)-2400(/* file type & mode \(permissions\) */)]TJ -9.6 -1.189 Td (ino_t )Tj 9.6 0 Td [(st_ino;)-3000(/* i-node number \(serial number\) */)]TJ -9.6 -1.189 Td (dev_t )Tj 9.6 0 Td [(st_dev;)-3000(/* device number \(file system\) */)]TJ -9.6 -1.189 Td (dev_t )Tj 9.6 0 Td [(st_rdev;)-2400(/* device number for special files */)]TJ -9.6 -1.189 Td [(nlink_t )-4800(st_nlink;)-1800(/* number of links */)]TJ 0 -1.189 TD (uid_t )Tj 9.6 0 Td [(st_uid;)-3000(/* user ID of owner */)]TJ -9.6 -1.189 Td (gid_t )Tj 9.6 0 Td [(st_gid;)-3000(/* group ID of owner */)]TJ -9.6 -1.189 Td (off_t )Tj 9.6 0 Td [(st_size;)-2400(/* size in bytes, for regular files */)]TJ -9.6 -1.189 Td [(struct timespec st_atim;)-2400(/* time of last access */)]TJ T* [(struct timespec st_mtim;)-2400(/* time of last modification */)]TJ T* [(struct timespec st_ctim;)-2400(/* time of last file status change */)]TJ T* [(blksize_t )-3600(st_blksize;)-600(/* best I/O block size */)]TJ T* [(blkcnt_t )-4200(st_blocks;)-1200(/* number of disk blocks allocated */)]TJ -1.2 -1.189 Td (};)Tj /T1_1 1 Tf 7.9995 0 0 7.9995 183.5883 263.1444 Tm (The)Tj /TT0 1 Tf 2.063 0 Td (st_rdev)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.839 0 Td (st_blksize)Tj /T1_1 1 Tf 0.3894 Tc (,a)Tj 0 Tc 7.139 0 Td (nd)Tj /TT0 1 Tf 1.582 0 Td (st_blocks)Tj /T1_1 1 Tf 5.789 0 Td [(\336elds )-139(ar)]TJ 0.3894 Tc 3.676 0 Td (en)Tj 0 Tc 1.45 0 Td [(ot )-139(r)18(equir)18(ed )-139(by )-139(POSIX.1.)-639(They )-139(ar)17(e)]TJ -26.541 -1.25 Td (de\336ned as part of the XSI option in the Single UNIX Speci\336cation.)Tj 9.9994 0 0 9.9994 147.5899 233.1462 Tm (The)Tj /TT0 1 Tf 1.948 0 Td (timespec)Tj /T1_1 1 Tf 5.074 0 Td [(str)8(uctur)]TJ 0.2742 Tc 3.49 0 Td (et)Tj 0 Tc 1.079 0 Td [(ype )-24(de\336nes )-24(time )-24(in )-24(terms )-24(of )-24(seconds )-24(and )-24(nanoseconds.)-527(It)]TJ -13.392 -1.2 Td (includes at least the following \336elds:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5903 204.4479 Tm (time_t tv_sec;)Tj T* [(long )-1200(tv_nsec;)]TJ /T1_1 1 Tf 7.9995 0 0 7.9995 183.5882 172.5498 Tm [(Prior )-84(to )-84(the )-84(2008 )-84(version )-84(of )-84(the )-84(standar)18(d, )-84(the )-84(time )-84(\336elds )-84(wer)]TJ 0.3344 Tc 27.363 0 Td (en)Tj 0 Tc 1.395 0 Td (amed)Tj /TT0 1 Tf 2.807 0 Td (st_atime)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 5.384 0 Td (st_mtime)Tj /T1_1 1 Tf (,)Tj -36.95 -1.25 Td (and)Tj /TT0 1 Tf 2.074 0 Td (st_ctime)Tj /T1_1 1 Tf 0.381 Tc (,a)Tj 0 Tc 5.931 0 Td [(nd )-131(wer)18(e)-381(of)-381(type)]TJ /TT0 1 Tf 7.727 0 Td (time_t)Tj /T1_1 1 Tf 3.981 0 Td [(\(expr)18(essed )-131(in )-131(seconds\).)-631(The)]TJ /TT0 1 Tf 13.137 0 Td (timespec)Tj /T1_1 1 Tf 5.181 0 Td [(str)8(uctur)18(e)]TJ -38.031 -1.25 Td [(enables )-75(higher)18(-r)18(esolution )-75(timestamps.)-576(The )-75(old )-75(names )-75(can )-75(be )-75(de\336ned )-75(in )-75(terms )-75(of )-75(the)]TJ /TT0 1 Tf 38.4 0 Td (tv_sec)Tj /T1_1 1 Tf -38.4 -1.25 Td (members for compatibility)Tj 0.5 Tc 11.658 0 Td (.F)Tj 0 Tc 1.306 0 Td (or example,)Tj /TT0 1 Tf 5.44 0 Td (st_atime)Tj /T1_1 1 Tf 5.05 0 Td (can be de\336ned as)Tj /TT0 1 Tf 7.849 0 Td (st_atim.tv_sec)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47070 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (54)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(For each option, we have thr)18(ee possibilities for a platform\325s support status.)]TJ 0 -1.92 TD [(1. )-633(If)-255(the )-5(symbolic )-5(constant )-5(is )-5(either )-5(unde\336ned )-5(or )-5(de\336ned )-5(to )-5(have )-5(the )-5(value)]TJ /TT0 1 Tf 33.677 0 Td (!)Tj /T1_1 1 Tf [(1, )-5(then)]TJ -32.044 -1.2 Td [(the )-65(corr)18(esponding )-65(option )-65(is )-65(unsupported )-65(by )-65(the )-65(platform )-65(at )-65(compile )-65(time.)-564(It )-65(is)]TJ 0 -1.2 TD [(possible )-275(to )-275(r)8(un )-275(an )-275(old )-275(application )-275(on )-275(a )-275(newer )-275(system )-275(wher)]TJ 0.525 Tc 28.567 0 Td (et)Tj 0 Tc 1.33 0 Td [(he )-275(option)]TJ /T1_2 1 Tf 5.003 0 Td (is)Tj /T1_1 1 Tf -34.9 -1.2 Td [(supported, )-237(so )-237(a )-237(r)8(untime )-237(check )-237(might )-237(indicate )-237(the )-237(option )-237(is )-237(supported )-237(even)]TJ T* (though the option wasn\325t supported at the time the application was co\ mpiled.)Tj -1.633 -1.6 Td [(2. )-633(If)-766(the )-516(symbolic )-516(constant )-516(is )-516(de\336ned )-516(to )-516(be )-516(gr)18(eater )-516(than )-516(zer)18(o, )-516(then )-516(the)]TJ 1.633 -1.2 Td [(corr)18(esponding option is supported.)]TJ -1.633 -1.6 Td [(3. )-633(If)-522(the )-272(symbolic )-272(constant )-272(is )-272(de\336ned )-272(to )-272(be )-272(equal )-272(to )-272(zer)18(o, )-272(then )-272(we )-272(must )-272(call)]TJ /TT1 1 Tf 1.633 -1.2 Td (sysconf)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 5.079 0 Td (pathconf)Tj /T1_1 1 Tf 0.6287 Tc (,o)Tj 0 Tc 6.225 0 Td (r)Tj /TT1 1 Tf 1.024 0 Td (fpathconf)Tj /T1_1 1 Tf 6.029 0 Td [(to )-379(determine )-379(whether )-379(the )-379(option )-379(is)]TJ -18.356 -1.2 Td (supported.)Tj -1.633 -1.92 Td [(The )-104(symbolic )-104(constants )-104(used )-104(with)]TJ /TT1 1 Tf 15.738 0 Td (pathconf)Tj /T1_1 1 Tf 5.154 0 Td (and)Tj /TT1 1 Tf 2.047 0 Td (fpathconf)Tj /T1_1 1 Tf 5.754 0 Td (ar)Tj 0.3543 Tc 0.877 0 Td (es)Tj 0 Tc 1.257 0 Td [(ummarized )-104(in)]TJ -32.628 -1.2 Td (Figur)Tj 0.6083 Tc 2.383 0 Td (e2)Tj 0 Tc 1.587 0 Td [(.18. )-608(Figur)]TJ 0.6083 Tc 4.741 0 Td (e2)Tj 0 Tc 1.587 0 Td [(.19 )-358(summarizes )-358(the )-358(nonobsolete )-358(options )-358(and )-358(their )-358(symbolic)]TJ -10.299 -1.2 Td [(constants )-17(that )-17(can )-17(be )-17(used )-17(with)]TJ /TT1 1 Tf 14.198 0 Td (sysconf)Tj /T1_1 1 Tf [(,)-267(in)-267(addition )-17(to )-17(those )-17(listed )-17(in )-17(Figur)]TJ 0.267 Tc 19.857 0 Td (e2)Tj 0 Tc 1.246 0 Td [(.5. )-267(Note)]TJ -35.301 -1.2 Td (that we omit options associated with utility commands.)Tj 1.8 -1.2 Td [(As )-120(with )-120(the )-120(system )-120(limits, )-120(ther)]TJ 0.3705 Tc 14.086 0 Td (ea)Tj -0.018 Tc 1.349 0 Td [(re )-157(s)]TJ 0 Tc 1.651 0 Td [(everal )-120(points )-120(to )-120(note )-120(r)16(egar)18(ding )-120(how )-120(options)]TJ -18.887 -1.2 Td (ar)Tj 0.25 Tc 0.877 0 Td (et)Tj -0.018 Tc 1.055 0 Td (re)Tj 0 Tc 0.856 0 Td (ated by)Tj /TT1 1 Tf 3.525 0 Td (sysconf)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 4.7 0 Td (pathconf)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 5.8 0 Td (nd)Tj /TT1 1 Tf 1.443 0 Td (fpathconf)Tj /T1_1 1 Tf (.)Tj -16.456 -1.92 Td [(1. )-1133(The)-667(value )-417(r)18(eturned )-417(for)]TJ /TT1 1 Tf 14.039 0 Td (_SC_VERSION)Tj /T1_1 1 Tf 7.267 0 Td [(indicates )-417(the )-417(four)18(-digit )-417(year )-417(and)]TJ -19.173 -1.2 Td [(two-digit )-9(month )-9(of )-9(the )-9(standar)18(d. )-259(This)-259(value )-9(can )-9(be )-9(198808L, )-9(199009L, )-9(199506L,)]TJ -0 -1.2 Td [(or )-106(some )-106(other )-106(value )-106(for )-106(a )-106(later )-106(version )-106(of )-106(the )-106(standar)19(d. )-356(The)-356(value )-106(associated)]TJ T* [(with )-56(V)111(ersion )-56(3 )-56(of )-56(the )-56(Single )-56(UNIX )-56(Speci\336cation )-56(is )-56(2001)55(12L )-56(\(the )-56(2001 )-56(edition )-56(of)]TJ T* [(POSIX.1\). )-255(The)-256(value )-5(associated )-5(with )-5(V)110(ersion )-5(4 )-5(of )-5(the )-5(Single )-5(UNIX )-5(Speci\336cation)]TJ T* (\(the 2008 edition of POSIX.1\) is 200809L.)Tj -2.133 -1.6 Td [(2. )-1133(The)-322(value )-72(r)18(eturned )-72(for)]TJ /TT1 1 Tf 12.658 0 Td (_SC_XOPEN_VERSION)Tj /T1_1 1 Tf 10.522 0 Td [(indicates )-72(the )-72(version )-72(of )-72(the )-72(XSI)]TJ -21.046 -1.2 Td [(that )-160(the )-160(system )-160(supports.)-660(The )-160(value )-160(associated )-160(with )-160(V)111(ersion )-160(3 )-160(of )-160(the )-160(Single)]TJ T* [(UNIX )-133(Speci\336cation )-133(is )-133(600.)-633(The )-133(value )-133(associated )-133(with )-133(V)111(ersion )-133(4 )-133(of )-133(the )-133(Single)]TJ T* (UNIX Speci\336cation \(the 2008 edition of POSIX.1\) is 700.)Tj -2.133 -1.6 Td [(3. )-1133(The)-535(values)]TJ /TT1 1 Tf 7.739 0 Td (_SC_JOB_CONTROL)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 9.785 0 Td (_SC_SAVED_IDS)Tj /T1_1 1 Tf 0.535 Tc (,a)Tj 0 Tc 9.085 0 Td (nd)Tj /TT1 1 Tf 1.728 0 Td (_PC_VDISABLE)Tj /T1_1 1 Tf 7.735 0 Td (no)Tj -33.939 -1.2 Td [(longer )-120(r)18(epr)18(esent )-120(optional )-120(featur)18(es. )-370(Although)-370(XPG4 )-120(and )-120(prior )-120(versions )-120(of )-120(the)]TJ -0 -1.2 Td [(Single )-58(UNIX )-58(Speci\336cation )-58(r)19(equir)18(ed )-58(that )-58(these )-58(featur)18(es )-58(be )-58(supported, )-58(V)111(ersion )-58(3)]TJ T* [(of )-29(the )-29(Single )-29(UNIX )-29(Speci\336cation )-29(is )-29(the )-29(earliest )-29(version )-29(wher)]TJ 0.2786 Tc 26.585 0 Td (et)Tj 0 Tc 1.084 0 Td [(hese )-28(featur)18(es )-28(ar)17(e)]TJ -27.669 -1.2 Td [(no )-296(longer )-296(optional )-296(in )-296(POSIX.1.)-796(These )-296(symbols )-296(ar)]TJ 0.5461 Tc 23.656 0 Td (er)Tj 0 Tc 1.402 0 Td [(etained )-296(for )-296(backwar)18(d)]TJ -25.058 -1.2 Td [(compatibility)111(.)]TJ -2.133 -1.6 Td [(4. )-1133(Platforms)-676(conforming )-426(to )-426(POSIX.1)]TJ 18.162 0.09 Td (-)Tj 0.333 -0.09 Td [(2008 )-426(ar)]TJ 0.676 Tc 3.553 0 Td (ea)Tj 0 Tc 1.655 0 Td [(lso )-426(r)18(equir)18(ed )-426(to )-426(support )-426(the)]TJ -21.57 -1.2 Td (following options:)Tj 0 -1.92 TD (\245)Tj /TT1 1 Tf 1.489 0 Td (_POSIX_ASYNCHRONOUS_IO)Tj /T1_1 1 Tf -1.489 -1.6 Td (\245)Tj /TT1 1 Tf 1.489 0 Td (_POSIX_BARRIERS)Tj /T1_1 1 Tf -1.489 -1.6 Td (\245)Tj /TT1 1 Tf 1.489 0 Td (_POSIX_CLOCK_SELECTION)Tj /T1_1 1 Tf -1.489 -1.6 Td (\245)Tj /TT1 1 Tf 1.489 0 Td (_POSIX_MAPPED_FILES)Tj /T1_1 1 Tf -1.489 -1.6 Td (\245)Tj /TT1 1 Tf 1.489 0 Td (_POSIX_MEMORY_PROTECTION)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47071 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(2.2)]TJ 34.152 0 Td [(UNIX )-250(Standar)18(dization)]TJ /T1_1 1 Tf 12.181 0 Td (31)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1080.25 6670.25 cm 0 0 m 4087 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 148.7791 658.9605 Tm (SUS)Tj -1.536 -1.25 Td (mandatory)Tj -2.954 0.625 Td (Code)Tj 14.218 0 Td (Symbolic constant)Tj 22.519 0 Td (Description)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1080.25 6450.25 cm 0 0 m 4087 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1080.25 6430.25 cm 0 0 m 4087 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 111.9866 634.9238 Tm (ADV)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_ADVISORY_INFO)Tj /T1_0 1 Tf 20.3 0 Td [(advisory information \(r)18(eal-time\))]TJ -28.762 -1.25 Td (CPT)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_CPUTIME)Tj /T1_0 1 Tf 20.3 0 Td [(pr)18(ocess CPU time clocks \(r)18(eal-time\))]TJ -28.762 -1.25 Td [(FSC )-3169(\245)]TJ /TT0 1 Tf 8.462 0 Td (_POSIX_FSYNC)Tj /T1_0 1 Tf 20.3 0 Td [(\336le synchr)18(onization)]TJ -28.762 -1.25 Td (IP6)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_IPV6)Tj /T1_0 1 Tf 20.3 0 Td (IPv6 interfaces)Tj -28.762 -1.25 Td (ML)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_MEMLOCK)Tj /T1_0 1 Tf 20.3 0 Td [(pr)18(ocess memory locking \(r)18(eal-time\))]TJ -28.762 -1.25 Td (MLR)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_MEMLOCK_RANGE)Tj /T1_0 1 Tf 20.3 0 Td [(memory range locking \(r)18(eal-time\))]TJ -28.762 -1.25 Td (MON)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_MONOTONIC_CLOCK)Tj /T1_0 1 Tf 20.3 0 Td [(monotonic clock \(r)18(eal-time\))]TJ -28.762 -1.25 Td (MSG)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_MESSAGE_PASSING)Tj /T1_0 1 Tf 20.3 0 Td [(message passing \(r)18(eal-time\))]TJ -28.762 -1.25 Td (MX)Tj /TT0 1 Tf 0.1666 Tc 8.462 0 Td (__)Tj 0 Tc 1.367 0 Td [(STDC_IEC_559_ )433(_)]TJ /T1_0 1 Tf 18.933 0 Td (IEC 60559 \337oating-point option)Tj -28.762 -1.25 Td (PIO)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_PRIORITIZED_IO)Tj /T1_0 1 Tf 20.3 0 Td (prioritized input and output)Tj -28.762 -1.25 Td (PS)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_PRIORITY_SCHEDULING)Tj /T1_0 1 Tf 20.3 0 Td [(pr)18(ocess scheduling \(r)18(eal-time\))]TJ -28.762 -1.25 Td (RPI)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_THREAD_ROBUST_PRIO_INHERIT)Tj /T1_0 1 Tf -0.018 Tc 20.3 0 Td (ro)Tj 0 Tc 0.923 0 Td [(bust mutex priority inheritance \(r)18(eal-time\))]TJ -29.685 -1.25 Td (RPP)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_THREAD_ROBUST_PRIO_PROTECT)Tj /T1_0 1 Tf -0.018 Tc 20.3 0 Td (ro)Tj 0 Tc 0.923 0 Td [(bust mutex priority pr)18(otection \(r)18(eal-time\))]TJ -29.685 -1.25 Td (RS)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_RAW_SOCKETS)Tj /T1_0 1 Tf 20.3 0 Td (raw sockets)Tj -28.762 -1.25 Td (SHM)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_SHARED_MEMORY_OBJECTS)Tj /T1_0 1 Tf 20.3 0 Td [(shar)18(ed memory objects \(r)18(eal-time\))]TJ -28.762 -1.25 Td (SIO)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_SYNCHRONIZED_IO)Tj /T1_0 1 Tf 20.3 0 Td [(synchr)18(onized input and output \(r)18(eal-time\))]TJ -28.762 -1.25 Td (SPN)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_SPAWN)Tj /T1_0 1 Tf 20.3 0 Td [(spawn \(r)18(eal-time\))]TJ -28.762 -1.25 Td (SS)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_SPORADIC_SERVER)Tj /T1_0 1 Tf 20.3 0 Td [(pr)18(ocess sporadic server \(r)18(eal-time\))]TJ -28.762 -1.25 Td (TCT)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_THREAD_CPUTIME)Tj /T1_0 1 Tf 20.3 0 Td [(thr)18(ead CPU time clocks \(r)18(eal-time\))]TJ -28.762 -1.25 Td (TPI)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_THREAD_PRIO_INHERIT)Tj /T1_0 1 Tf 20.3 0 Td [(nonr)18(obust mutex priority inheritance \(r)18(eal-time\))]TJ -28.762 -1.25 Td (TPP)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_THREAD_PRIO_PROTECT)Tj /T1_0 1 Tf 20.3 0 Td [(nonr)18(obust mutex priority pr)18(otection \(r)18(eal-time\))]TJ -28.762 -1.25 Td (TPS)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_THREAD_PRIORITY_SCHEDULING)Tj /T1_0 1 Tf 20.3 0 Td [(thr)18(ead execution scheduling \(r)18(eal-time\))]TJ -28.762 -1.25 Td [(TSA )-3043(\245)]TJ /TT0 1 Tf 8.462 0 Td (_POSIX_THREAD_ATTR_STACKADDR)Tj /T1_0 1 Tf 20.3 0 Td [(thr)18(ead stack addr)18(ess attribute)]TJ -28.762 -1.25 Td [(TSH )-2989(\245)]TJ /TT0 1 Tf 8.462 0 Td (_POSIX_THREAD_PROCESS_SHARED)Tj /T1_0 1 Tf 20.3 0 Td [(thr)18(ead pr)18(ocess-shar)18(ed synchr)18(onization)]TJ -28.762 -1.25 Td (TSP)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_THREAD_SPORADIC_SERVER)Tj /T1_0 1 Tf 20.3 0 Td [(thr)18(ead sporadic server \(r)18(eal-time\))]TJ -28.762 -1.25 Td [(TSS )-3296(\245)]TJ /TT0 1 Tf 8.462 0 Td (_POSIX_THREAD_ATTR_STACKSIZE)Tj /T1_0 1 Tf 20.3 0 Td [(thr)18(ead stack size addr)18(ess)]TJ -28.762 -1.25 Td (TYM)Tj /TT0 1 Tf 8.462 0 Td (_POSIX_TYPED_MEMORY_OBJECTS)Tj /T1_0 1 Tf 20.3 0 Td [(typed memory objects \(r)18(eal-time\))]TJ -28.762 -1.25 Td [(XSI )-3430(\245)]TJ /TT0 1 Tf 8.462 0 Td (_XOPEN_UNIX)Tj /T1_0 1 Tf 20.3 0 Td (X/Open interfaces)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1080.25 3610.25 cm 0 0 m 4087 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3401.25 3610.25 cm 0 0 m 0 3060 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1777.25 3610.25 cm 0 0 m 0 3060 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1345.25 3610.25 cm 0 0 m 0 3060 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5167.25 3610.25 cm 0 0 m 0 3060 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1080.25 3610.25 cm 0 0 m 0 3060 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 203.2434 342.9383 Tm (Figure 2.5)Tj /T1_0 1 Tf 5.195 0 Td [(POSIX.1 optional interface gr)18(oups and codes)]TJ 9.9982 0 0 9.9982 147.5734 314.1434 Tm [(Several )-118(of )-118(the )-118(interfaces )-118(that )-118(ar)]TJ 0.3681 Tc 14.205 0 Td (eo)Tj 0 Tc 1.393 0 Td [(ptional )-118(for )-118(XSI-conforming )-118(systems )-118(ar)]TJ 0.368 Tc 17.296 0 Td (ed)Tj 0 Tc 1.458 0 Td (ivided)Tj -36.152 -1.2 Td (into)Tj /T1_2 1 Tf 1.995 0 Td [(option gr)18(oups)]TJ /T1_0 1 Tf 5.815 0 Td [(based on common functionality)111(,)-250(as)-250(follows:)]TJ 0.883 Tc -6.01 -2.16 Td (\245E)Tj 0 Tc 2.1 0 Td (ncryption: denoted by the)Tj /TT0 1 Tf 11.703 0 Td (_XOPEN_CRYPT)Tj /T1_0 1 Tf 7.45 0 Td (symbolic constant)Tj 0.883 Tc -21.253 -1.48 Td (\245R)Tj 0 Tc 2.157 0 Td (eal-time: denoted by the)Tj /TT0 1 Tf 10.962 0 Td (_XOPEN_REALTIME)Tj /T1_0 1 Tf 9.25 0 Td (symbolic constant)Tj 0.883 Tc -22.369 -1.48 Td (\245A)Tj 0 Tc 2.267 0 Td [(dvanced r)18(eal-time)]TJ 0.883 Tc -2.267 -1.48 Td (\245R)Tj 0 Tc 2.157 0 Td [(eal-time thr)18(eads: denoted by)]TJ /TT0 1 Tf 12.874 0 Td (_XOPEN_REALTIME_THREADS)Tj /T1_0 1 Tf 0.883 Tc -15.031 -1.48 Td (\245A)Tj 0 Tc 2.267 0 Td [(dvanced r)18(eal-time thr)18(eads)]TJ -2.267 -2.4 Td [(The )-223(Single )-223(UNIX )-223(Speci\336cation )-223(is )-223(a )-223(publication )-223(of )-223(The )-223(Open )-223(Gr)15(oup, )-223(which )-223(was)]TJ -1.8 -1.2 Td [(formed )-58(in )-58(1996 )-58(as )-58(a )-58(mer)18(ger )-58(of )-58(X/Open )-58(and )-58(the )-58(Open )-58(Softwar)]TJ 0.3075 Tc 27.666 0 Td (eF)Tj 0 Tc 1.342 0 Td (oundation)Tj 4.894 0.04 Td (\()Tj 0.333 -0.04 Td (OSF)Tj 1.867 0.04 Td (\))Tj 0.3075 Tc 0.333 -0.04 Td (,b)Tj 0 Tc 1.111 0 Td (oth)Tj -37.546 -1.2 Td [(industry )-370(consortia.)-870(X/Open )-370(used )-370(to )-370(publish )-370(the)]TJ /T1_2 1 Tf 24.121 0 Td [(X/Open )-370(Portability )-370(Guide)]TJ /T1_0 1 Tf 0.6196 Tc 11.276 0 Td (,w)Tj 0 Tc 1.704 0 Td (hich)Tj -37.101 -1.2 Td [(adopted )-47(speci\336c )-47(standar)18(ds )-47(and )-47(\336lled )-47(in )-47(the )-47(gaps )-47(wher)]TJ 0.2972 Tc 24.278 0 Td (ef)Tj 0 Tc 1.109 0 Td [(unctionality )-47(was )-47(missing.)-548(The)]TJ -25.388 -1.2 Td [(goal )-85(of )-85(these )-85(guides )-85(was )-85(to )-85(impr)20(ove )-85(application )-85(portability )-85(beyond )-85(what )-85(was )-85(possible)]TJ 0 -1.2 TD [(by mer)18(ely conforming to published standar)18(ds.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47072 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 436.143 708 Tm (Bibliography)Tj /T1_1 1 Tf 7.773 0 Td (953)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 8.9995 0 0 8.9995 129.5922 669.9598 Tm [(Stonebraker)74(,)-1022(M.)-1022(R)]TJ 1.2722 Tc (.1)Tj 0 Tc 11.443 0 Td [(981. )-1022(\324)37(\324Operating )-772(System )-772(Support )-772(for )-772(Database )-772(Management,\325)35(\325)]TJ /T1_2 1 Tf -8.243 -1.222 Td (Communications of the ACM)Tj /T1_0 1 Tf 0.25 Tc (,v)Tj 0 Tc 13 0 Td (ol. 24, no. 7, pp. 412)Tj 8.75 0.09 Td (\320)Tj 0.583 -0.09 Td (418 \(July\).)Tj 7.9995 0 0 7.9995 179.9896 645.6613 Tm [(Describes operating system services and how they af)18(fect database operation.)]TJ 8.9995 0 0 8.9995 129.5926 628.0623 Tm [(Strang, J.)-500(1986.)]TJ /T1_2 1 Tf 7.217 0 Td [(Pr)18(ogramming with curses)]TJ /T1_0 1 Tf 0.5 Tc (.O)Tj 0 Tc 12.037 0 Td (\325Reilly & Associates, Sebastopol, CA.)Tj 0.25 Tc 7.9995 0 0 7.9995 179.9895 614.7631 Tm (Ab)Tj 0 Tc 1.581 0 Td (ook on the Berkeley version of)Tj /TT0 1 Tf 13.67 0 Td (curses)Tj /T1_0 1 Tf (.)Tj 8.9995 0 0 8.9995 129.5925 597.1642 Tm [(Strang, )-41(J., )-41(Mui, )-41(L., )-41(and )-41(O\325Reilly)]TJ 0.2907 Tc 13.843 0 Td (,T)Tj 0.5407 Tc 1.08 0 Td (.1)Tj 0 Tc 1.291 0 Td (988.)Tj /T1_2 1 Tf 2.291 0 Td [(termcap )-41(& )-41(terminfo, )-41(Third )-41(Edition)]TJ /T1_0 1 Tf 0.5406 Tc 14.153 0 Td (.O)Tj 0 Tc 1.577 0 Td [(\325Reilly )-41(& )-41(Associates,)]TJ -31.034 -1.222 Td (Sebastopol, CA.)Tj 0.25 Tc 7.9995 0 0 7.9995 179.9897 572.8656 Tm (Ab)Tj 0 Tc 1.581 0 Td (ook on)Tj /TT0 1 Tf 3.276 0 Td (termcap)Tj /T1_0 1 Tf 4.45 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (terminfo)Tj /T1_0 1 Tf (.)Tj 8.9995 0 0 8.9995 129.5926 555.2667 Tm [(Sun Micr)18(osystems. )-250(2005.)]TJ /T1_2 1 Tf 11.58 0 Td [(STREAMS Pr)18(ogramming Guide)]TJ /T1_0 1 Tf 0.5 Tc (.S)Tj 0 Tc 14.536 0 Td [(un Micr)18(osystems, Santa Clara, CA.)]TJ 7.9995 0 0 7.9995 179.9896 541.9675 Tm [(Describes STREAMS pr)18(ogramming on the Solaris platform.)]TJ 8.9995 0 0 8.9995 129.5926 524.3685 Tm [(Thompson, )-208(K.)-707(1978. )-458(\324)37(\324UNIX )-208(Implementation,\325)38(\325)]TJ /T1_2 1 Tf 22.048 0 Td [(The )-208(Bell )-208(System )-208(T)111(echnical )-208(Journal)]TJ /T1_0 1 Tf 0.4577 Tc 14.59 0 Td (,v)Tj 0 Tc 1.273 0 Td [(ol. 57,)-458(no. 6,)]TJ -34.711 -1.222 Td (pp. 1931)Tj 3.785 0.09 Td (\320)Tj 0.583 -0.09 Td (1946 \(July\320Aug.\).)Tj 7.9995 0 0 7.9995 179.9896 500.07 Tm [(Describes some of the implementation details of V)111(ersion 7.)]TJ -0.111 Tc 8.9995 0 0 8.9995 129.5926 482.4711 Tm (Vo)Tj 0.3522 Tc 1.157 0 Td (,K)Tj 0 Tc 1.328 0 Td [(iem-Phong. )-352(1996. )-352(\324)37(\324Vmalloc: )-102(A )-102(General )-102(and )-102(Ef)18(\336cient )-102(Memory )-102(Allocator)73(,\325)37(\325)]TJ /T1_2 1 Tf 33.701 0 Td (Softwar)Tj 0.3521 Tc 3.148 0 Td (eP)Tj 0 Tc 1.352 0 Td (ractice)Tj -37.486 -1.222 Td (and Experience)Tj /T1_0 1 Tf 0.25 Tc (,v)Tj 0 Tc 7.223 0 Td (ol. 26, no. 3, pp. 357)Tj 8.75 0.09 Td (\320)Tj 0.583 -0.09 Td (374.)Tj 7.9995 0 0 7.9995 179.9897 458.1725 Tm [(Describes a \337exible memory allocator)74(.)]TJ -0.092 Tc 8.9995 0 0 8.9995 129.5927 440.5736 Tm (We)Tj 0 Tc 1.387 0 Td [(i, )-39(J., )-39(and )-39(Pu, )-39(C.)-540(2005. )-289(\324)37(\324T)18(OCTT)18(OU )-39(V)92(ulnerabilities )-39(in )-39(UNIX_Style )-39(File )-39(Systems: )-39(An )-39(Anatomical)]TJ 1.813 -1.222 Td [(Study)111(,\325)37(\325)]TJ /T1_2 1 Tf 3.587 0 Td [(Pr)18(oceedings )-58(of )-58(the )-58(4th )-58(USENIX )-58(Confer)18(ence )-58(on )-58(File )-58(and )-58(Storage )-58(T)111(echnologoes )-58(\(F)112(AST\32505\))]TJ /T1_0 1 Tf (,)Tj -3.587 -1.222 Td (pp. 155)Tj 3.285 0.09 Td (\320)Tj 0.583 -0.09 Td (167, San Francisco, CA.)Tj 7.9995 0 0 7.9995 179.9893 405.2757 Tm [(Describes T)18(OCTT)18(OU weaknesses in the UNIX \336le system interface.)]TJ -0.092 Tc 8.9995 0 0 8.9995 129.5923 387.6767 Tm (We)Tj 0 Tc 1.387 0 Td [(inber)18(ger)]TJ 0.3802 Tc 3.638 0 Td [(,P)509(.J)]TJ 0.6302 Tc 2.068 0 Td (.1)Tj 0 Tc 1.38 0 Td [(982. )-380(\324)37(\324Making )-130(UNIX )-130(Operating )-130(Systems )-130(Safe )-130(for )-130(Databases,\325)36(\325)]TJ /T1_2 1 Tf 28.098 0 Td [(The )-130(Bell )-130(System)]TJ -0.111 Tc -33.371 -1.222 Td (Te)Tj 0 Tc 0.889 0 Td (chnical Journal)Tj /T1_0 1 Tf 0.25 Tc (,v)Tj 0 Tc 7.185 0 Td (ol. 61, no. 9, pp. 2407)Tj 9.25 0.09 Td (\320)Tj 0.583 -0.09 Td [(2422 \(Nov)111(.\).)]TJ 7.9995 0 0 7.9995 179.9894 363.3782 Tm [(Describes some pr)18(oblems in implementing databases in early UNIX systems.)]TJ -0.092 Tc 8.9995 0 0 8.9995 129.5923 345.7793 Tm (We)Tj 0 Tc 1.387 0 Td [(instock, )-157(C. )-157(B., )-157(and )-157(W)50(ulf, )-157(W)]TJ 0.407 Tc 12.552 0 Td (.A)Tj 0.657 Tc 1.435 0 Td (.1)Tj 0 Tc 1.407 0 Td [(988. )-407(\324)37(\324Quick )-157(Fit: )-157(An )-157(Ef)18(\336cient )-157(Algorithm )-157(for )-157(Heap )-157(Storage)]TJ -13.581 -1.222 Td [(Allocation,\325)37(\325)]TJ /T1_2 1 Tf 5.614 0 Td (SIGPLAN Notices)Tj /T1_0 1 Tf 0.25 Tc (,v)Tj 0 Tc 8.611 0 Td (ol. 23, no. 10, pp. 141)Tj 9.25 0.09 Td (\320)Tj 0.583 -0.09 Td (148.)Tj 7.9995 0 0 7.9995 179.9892 321.4807 Tm (Describes a memory allocation algorithm suitable for a wide variety of a\ pplications.)Tj -0.055 Tc 8.9995 0 0 8.9995 129.5922 303.8818 Tm (Wi)Tj 0 Tc 1.236 0 Td [(lliams, )-106(T)]TJ 0.6058 Tc 3.825 0 Td (.1)Tj 0 Tc 1.356 0 Td [(989. )-356(\324)37(\324Session )-106(Management )-106(in )-106(System )-106(V )-106(Release )-106(4,\325)38(\325)]TJ /T1_2 1 Tf 23.846 0 Td [(Pr)18(oceedings )-106(of )-106(the )-106(1989 )-106(W)20(inter)]TJ -27.063 -1.222 Td [(USENIX Confer)18(ence)]TJ /T1_0 1 Tf 0.25 Tc (,p)Tj 0 Tc 9.575 0 Td (p. 365)Tj 2.684 0.09 Td (\320)Tj 0.583 -0.09 Td (375, San Diego, CA.)Tj 7.9995 0 0 7.9995 179.9891 279.5832 Tm [(Describes )-100(the )-100(session )-100(ar)18(chitectur)18(e)-350(in)-350(SVR4, )-100(on )-100(which )-100(the )-100(POSIX.1 )-100(interfaces )-100(wer)]TJ 0.3498 Tc 36.295 0 Td (eb)Tj 0 Tc 1.382 0 Td [(ased. )-350(This)]TJ -37.676 -1.25 Td [(includes )-217(pr)18(ocess )-217(gr)18(oups, )-217(job )-217(contr)18(ol, )-217(and )-217(contr)18(olling )-217(terminals.)-717(Also )-217(describes )-217(the )-217(security)]TJ 0 -1.25 TD [(concerns of existing appr)18(oaches.)]TJ 8.9995 0 0 8.9995 129.5923 241.9855 Tm [(X/Open. )-250(1989.)]TJ /T1_2 1 Tf 7.221 0 Td (X/Open Portability Guide)Tj /T1_0 1 Tf 0.5 Tc (.P)Tj -0.018 Tc 11.891 0 Td (re)Tj 0 Tc 0.856 0 Td [(ntice Hall, Englewood Clif)18(fs, NJ.)]TJ 0.2769 Tc 7.9995 0 0 7.9995 179.989 228.6863 Tm (As)Tj 0 Tc 1.479 0 Td [(et )-27(of )-27(seven )-27(volumes )-27(covering )-27(commands )-27(and )-27(utilities )-27(\(V)111(ol. )-27(1\), )-27(system )-27(interfaces )-27(and )-27(headers)]TJ -1.479 -1.25 Td [(\(V)111(ol. )-48(2\), )-48(supplementary )-48(de\336nitions )-48(\(V)110(ol. )-48(3\), )-48(pr)18(ogramming )-48(languages )-48(\(V)111(ol. )-48(4\), )-48(data )-48(management)]TJ T* [(\(V)111(ol. )-40(5\), )-40(window )-40(management )-40(\(V)111(ol. )-40(6\), )-40(networking )-40(services )-40(\(V)111(ol. )-40(7\).)-537(Although )-40(out )-40(of )-40(print, )-40(this)]TJ -0 -1.25 Td [(has been r)18(eplaced by the Single UNIX Speci\336cation)]TJ 22.848 0.04 Td ([)Tj 0.333 -0.04 Td [(Open Gr)18(oup 2008)]TJ 7.838 0.04 Td (])Tj 0.333 -0.04 Td (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47073 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (240)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (void)Tj 0 -1.189 TD (pr_exit\(int status\))Tj T* ({)Tj 2.4 -1.189 Td (if \(WIFEXITED\(status\)\))Tj 2.4 -1.189 Td (printf\("normal termination, exit status = %d\\n",)Tj 4.8 -1.189 Td (WEXITSTATUS\(status\)\);)Tj -7.2 -1.189 Td (else if \(WIFSIGNALED\(status\)\))Tj 2.4 -1.189 Td (printf\("abnormal termination, signal number = %d%s\\n",)Tj 4.8 -1.189 Td (WTERMSIG\(status\),)Tj -9.6 -1.189 Td [(#ifdef )-600(WCOREDUMP)]TJ 9.6 -1.189 Td (WCOREDUMP\(status\) ? " \(core file generated\)" : ""\);)Tj -9.6 -1.189 Td (#else)Tj 9.6 -1.189 Td (""\);)Tj -9.6 -1.189 Td (#endif)Tj 2.4 -1.189 Td (else if \(WIFSTOPPED\(status\)\))Tj 2.4 -1.189 Td (printf\("child stopped, signal number = %d\\n",)Tj 4.8 -1.189 Td (WSTOPSIG\(status\)\);)Tj -9.6 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4460.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 237.9634 429.9964 Tm (Figure 8.5)Tj /T1_1 1 Tf 5.195 0 Td (Print a description of the)Tj /TT0 1 Tf 11.204 0 Td (exit)Tj /T1_1 1 Tf 2.65 0 Td (status)Tj -25.848 -3.05 Td [(Fr)18(eeBSD )-96(8.0, )-96(Linux )-96(3.2.0, )-96(Mac )-96(OS )-96(X )-96(10.6.8, )-96(and )-96(Solaris )-96(10 )-96(all )-96(support )-96(the)]TJ /TT0 1 Tf 33.253 0 Td (WCOREDUMP)Tj /T1_1 1 Tf 5.747 0 Td [(macr)18(o.)]TJ -39 -1.25 Td (However)Tj 0.4476 Tc 4.056 0 Td (,s)Tj 0 Tc 1.122 0 Td [(ome )-198(platforms )-198(hide )-198(its )-198(de\336nition )-198(if )-198(the)]TJ /TT0 1 Tf 18.668 0 Td (_POSIX_C_SOURCE)Tj /T1_1 1 Tf 9.448 0 Td [(constant )-197(is )-197(de\336ned)]TJ -33.293 -1.25 Td [(\(r)18(ecall Section 2.7\).)]TJ 9.9988 0 0 9.9988 147.5827 362.6045 Tm [(The )-144(pr)18(ogram )-144(shown )-144(in )-144(Figur)]TJ 0.3939 Tc 13.332 0 Td (e8)Tj 0 Tc 1.373 0 Td [(.6 )-144(calls )-144(the)]TJ /TT0 1 Tf 5.269 0 Td (pr_exit)Tj /T1_1 1 Tf 4.594 0 Td [(function, )-144(demonstrating )-144(the)]TJ -26.367 -1.2 Td [(various values for the termination status.)-500(If we r)8(un the pr)18(ogram in Figur)]TJ 0.25 Tc 32.207 0 Td (e8)Tj 0 Tc 1.229 0 Td (.6, we get)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5826 333.9079 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (normal termination, exit status = 7)Tj T* (abnormal termination, signal number = 6 \(core file generated\))Tj T* (abnormal termination, signal number = 8 \(core file generated\))Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5847 283.8139 Tm [(For )-25(now)92(,)-275(we)-275(p)1(rint )-25(the )-25(signal )-25(number )-25(fr)19(om)]TJ /TT0 1 Tf 18.988 0 Td (WTERMSIG)Tj /T1_1 1 Tf 0.5246 Tc (.W)Tj 0.2746 Tc 6.483 0 Td (ec)Tj 0 Tc 1.198 0 Td [(an )-25(look )-25(at )-25(the)]TJ /TT0 1 Tf 6.332 0 Td ()Tj /T1_1 1 Tf -33 -1.2 Td [(header )-34(to )-34(verify )-34(that)]TJ /TT0 1 Tf 9.406 0 Td (SIGABRT)Tj /T1_1 1 Tf 4.484 0 Td [(has )-34(a )-34(value )-34(of )-34(6 )-34(and )-34(that)]TJ /TT0 1 Tf 11.237 0 Td (SIGFPE)Tj /T1_1 1 Tf 3.884 0 Td [(has )-34(a )-34(value )-34(of )-34(8.)]TJ -0.092 Tc 7.742 0 Td (We)Tj 0 Tc 1.387 0 Td (\325ll)Tj -38.14 -1.2 Td (see a portable way to map a signal number to a descriptive name in Secti\ on 10.22.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2598.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 147.5734 229.8066 Tm [(As )-68(we )-68(mentioned, )-68(if )-68(we )-68(have )-68(mor)]TJ 0.3177 Tc 15.319 0 Td (et)Tj 0 Tc 1.123 0 Td [(han )-68(one )-68(child,)]TJ /TT0 1 Tf 6.693 0 Td (wait)Tj /T1_1 1 Tf -0.018 Tc 2.718 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-68(on )-68(termination )-68(of)]TJ -28.509 -1.2 Td [(any )-167(of )-167(the )-167(childr)19(en. )-417(But)-416(what )-167(if )-167(we )-167(want )-167(to )-167(wait )-167(for )-167(a )-167(speci\336c )-167(pr)22(ocess )-166(to )-166(terminate)]TJ 0 -1.2 Td [(\(assuming )-119(we )-119(know )-119(which )-119(pr)16(ocess )-119(ID )-119(we )-119(want )-119(to )-119(wait )-119(for\)?)-619(In )-119(older )-119(versions )-119(of )-119(the)]TJ 0 -1.2 TD [(UNIX )-80(System, )-80(we )-80(would )-80(have )-80(to )-80(call)]TJ /TT0 1 Tf 17.089 0 Td (wait)Tj /T1_1 1 Tf 2.73 0 Td [(and )-80(compar)]TJ 0.3301 Tc 5.374 0 Td (et)Tj 0 Tc 1.135 0 Td [(he )-80(r)18(eturned )-80(pr)18(ocess )-80(ID )-80(with)]TJ -26.328 -1.2 Td [(the )-139(one )-139(we\325r)]TJ 0.3887 Tc 5.739 0 Td (ei)Tj 0 Tc 1.159 0 Td [(nter)18(ested )-139(in.)-639(If )-139(the )-139(terminated )-139(pr)18(ocess )-139(wasn\325t )-139(the )-139(one )-139(we )-139(wanted, )-139(we)]TJ -6.898 -1.2 Td [(would )-173(have )-173(to )-173(save )-173(the )-173(pr)17(ocess )-173(ID )-173(and )-173(termination )-173(status )-173(and )-173(call)]TJ /TT0 1 Tf 31.438 0 Td (wait)Tj /T1_1 1 Tf 2.823 0 Td [(again. )-423(W)92(e)]TJ -34.261 -1.2 Td [(would )-62(need )-62(to )-62(continue )-62(doing )-62(this )-62(until )-62(the )-62(desir)18(ed )-62(pr)18(ocess )-62(terminated.)-561(The )-62(next )-62(time)]TJ T* [(we )-226(wanted )-226(to )-226(wait )-226(for )-226(a )-226(speci\336c )-226(pr)18(ocess, )-226(we )-226(would )-226(go )-226(thr)17(ough )-226(the )-226(list )-226(of )-226(alr)18(eady)]TJ -0 -1.2 Td [(terminated )-53(pr)18(ocesses )-53(to )-53(see )-53(whether )-53(we )-53(had )-53(alr)16(eady )-53(waited )-53(for )-53(it, )-53(and )-53(if )-53(not, )-53(call)]TJ /TT0 1 Tf 36.6 0 Td (wait)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47074 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (452)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1490.25 6670.25 cm 0 0 m 3512 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 152.9908 658.9605 Tm [(access )-3900(fseeko)]TJ 19.2 0 Td (getwchar )Tj 17.1 0 Td (putwc)Tj -36.3 -1.25 Td [(catclose )-2700(fsetpos)]TJ 19.2 0 Td (glob )Tj 17.1 0 Td (putwchar)Tj -36.3 -1.25 Td [(catgets )-3300(fstat)]TJ 19.2 0 Td (iconv_close )Tj 17.1 0 Td (readdir)Tj -36.3 -1.25 Td [(catopen )-3300(fstatat)]TJ 19.2 0 Td (iconv_open )Tj 17.1 0 Td (readdir_r)Tj -36.3 -1.25 Td [(chmod )-4500(ftell)]TJ 19.2 0 Td (ioctl )Tj 17.1 0 Td (readlink)Tj -36.3 -1.25 Td [(chown )-4500(ftello)]TJ 19.2 0 Td (link )Tj 17.1 0 Td (readlinkat)Tj -36.3 -1.25 Td [(closedir )-2700(futimens)]TJ 19.2 0 Td (linkat )Tj 17.1 0 Td (remove)Tj -36.3 -1.25 Td [(closelog )-2700(fwprintf)]TJ 19.2 0 Td (lio_listio )Tj 17.1 0 Td (rename)Tj -36.3 -1.25 Td [(ctermid )-3300(fwrite)]TJ 19.2 0 Td (localtime )Tj 17.1 0 Td (renameat)Tj -36.3 -1.25 Td [(dbm_close )-2100(fwscanf)]TJ 19.2 0 Td (localtime_r )Tj 17.1 0 Td (rewind)Tj -36.3 -1.25 Td [(dbm_delete )-1500(getaddrinfo)-4500(lockf )]TJ 36.3 0 Td (rewinddir)Tj -36.3 -1.25 Td [(dbm_fetch )-2100(getc)]TJ 19.2 0 Td (lseek )Tj 17.1 0 Td (scandir)Tj -36.3 -1.25 Td [(dbm_nextkey )-900(getc_unlocked)-3300(lstat )]TJ 36.3 0 Td (scanf)Tj -36.3 -1.25 Td [(dbm_open )-2700(getchar)]TJ 19.2 0 Td (mkdir )Tj 17.1 0 Td (seekdir)Tj -36.3 -1.25 Td [(dbm_store )-2100(getchar_unlocked)-1500(mkdirat )]TJ 36.3 0 Td (semop)Tj -36.3 -1.25 Td [(dlclose )-3300(getcwd)]TJ 19.2 0 Td (mkdtemp )Tj 17.1 0 Td (setgrent)Tj -36.3 -1.25 Td [(dlopen )-3900(getdate)]TJ 19.2 0 Td (mkfifo )Tj 17.1 0 Td (sethostent)Tj -36.3 -1.25 Td [(dprintf )-3300(getdelim)]TJ 19.2 0 Td (mkfifoat )Tj 17.1 0 Td (setnetent)Tj -36.3 -1.25 Td [(endgrent )-2700(getgrent)]TJ 19.2 0 Td (mknod )Tj 17.1 0 Td (setprotoent)Tj -36.3 -1.25 Td [(endhostent )-1500(getgrgid)]TJ 19.2 0 Td (mknodat )Tj 17.1 0 Td (setpwent)Tj -36.3 -1.25 Td [(endnetent )-2100(getgrgid_r)]TJ 19.2 0 Td (mkstemp )Tj 17.1 0 Td (setservent)Tj -36.3 -1.25 Td [(endprotoent )-900(getgrnam)]TJ 19.2 0 Td (mktime )Tj 17.1 0 Td (setutxent)Tj -36.3 -1.25 Td [(endpwent )-2700(getgrnam_r)]TJ 19.2 0 Td (nftw )Tj 17.1 0 Td (stat)Tj -36.3 -1.25 Td [(endservent )-1500(gethostent)]TJ 19.2 0 Td (opendir )Tj 17.1 0 Td (strerror)Tj -36.3 -1.25 Td [(endutxent )-2100(gethostid)]TJ 19.2 0 Td (openlog )Tj 17.1 0 Td (strerror_r)Tj -36.3 -1.25 Td [(faccessat )-2100(gethostname)-4500(pathconf )]TJ 36.3 0 Td (strftime)Tj -36.3 -1.25 Td [(fchmod )-3900(getline)]TJ 19.2 0 Td (pclose )Tj 17.1 0 Td (symlink)Tj -36.3 -1.25 Td [(fchmodat )-2700(getlogin)]TJ 19.2 0 Td (perror )Tj 17.1 0 Td (symlinkat)Tj -36.3 -1.25 Td [(fchown )-3900(getlogin_r)]TJ 19.2 0 Td (popen )Tj 17.1 0 Td (sync)Tj -36.3 -1.25 Td [(fchownat )-2700(getnameinfo)-4500(posix_fadvise )]TJ 36.3 0 Td (syslog)Tj -36.3 -1.25 Td [(fclose )-3900(getnetbyaddr)-3900(posix_fallocate )]TJ 36.3 0 Td (tmpfile)Tj -36.3 -1.25 Td [(fcntl )-4500(getnetbyname)-3900(posix_madvise )]TJ 36.3 0 Td (ttyname)Tj -36.3 -1.25 Td [(fflush )-3900(getnetent)]TJ 19.2 0 Td (posix_openpt )Tj 17.1 0 Td (ttyname_r)Tj -36.3 -1.25 Td [(fgetc )-4500(getopt)]TJ 19.2 0 Td (posix_spawn )Tj 17.1 0 Td (tzset)Tj -36.3 -1.25 Td [(fgetpos )-3300(getprotobyname)-2700(posix_spawnp )]TJ 36.3 0 Td (ungetc)Tj -36.3 -1.25 Td [(fgets )-4500(getprotobynumber)-1500(posix_typed_mem_open )-4500(ungetwc)]TJ 0 -1.25 TD [(fgetwc )-3900(getprotoent )-3900(printf)]TJ 36.3 0 Td (unlink)Tj -36.3 -1.25 Td [(fgetws )-3900(getpwent)]TJ 19.2 0 Td (psiginfo )Tj 17.1 0 Td (unlinkat)Tj -36.3 -1.25 Td [(fmtmsg )-3900(getpwnam)]TJ 19.2 0 Td (psignal )Tj 17.1 0 Td (utimensat)Tj -36.3 -1.25 Td [(fopen )-4500(getpwnam_r )-4500(pthread_rwlock_rdlock)-4500(utimes)]TJ T* [(fpathconf )-2100(getpwuid)]TJ 19.2 0 Td [(pthread_rwlock_timedrdlock )-900(vdprintf)]TJ -19.2 -1.25 Td [(fprintf )-3300(getpwuid_r)]TJ 19.2 0 Td [(pthread_rwlock_timedwrlock )-900(vfprintf)]TJ -19.2 -1.25 Td [(fputc )-4500(getservbyname)-3300(pthread_rwlock_wrlock )-3900(vfwprintf)]TJ T* [(fputs )-4500(getservbyport)-3300(putc )]TJ 36.3 0 Td (vprintf)Tj -36.3 -1.25 Td [(fputwc )-3900(getservent)]TJ 19.2 0 Td (putc_unlocked )Tj 17.1 0 Td (vwprintf)Tj -36.3 -1.25 Td [(fputws )-3900(getutxent)]TJ 19.2 0 Td (putchar )Tj 17.1 0 Td (wcsftime)Tj -36.3 -1.25 Td [(fread )-4500(getutxid)]TJ 19.2 0 Td (putchar_unlocked )Tj 17.1 0 Td (wordexp)Tj -36.3 -1.25 Td [(freopen )-3300(getutxline)]TJ 19.2 0 Td (puts )Tj 17.1 0 Td (wprintf)Tj -36.3 -1.25 Td [(fscanf )-3900(getwc)]TJ 19.2 0 Td (pututxline )Tj 17.1 0 Td (wscanf)Tj -36.3 -1.25 Td (fseek)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1490.25 1650.25 cm 0 0 m 3512 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4374.25 1650.25 cm 0 0 m 0 5020 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3006.25 1650.25 cm 0 0 m 0 5020 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2118.25 1650.25 cm 0 0 m 0 5020 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5002.25 1650.25 cm 0 0 m 0 5020 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1490.25 1650.25 cm 0 0 m 0 5020 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 214.3383 146.9824 Tm (Figure 12.15)Tj /T1_1 1 Tf 6.195 0 Td (Optional cancellation points de\336ned by POSIX.1)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47075 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(B.1)]TJ 36.136 0 Td [(Our )-250(Header )-250(File)]TJ /T1_1 1 Tf 9.697 0 Td (897)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm [(int )-3000(send_fd\(int,)-600(int\); )]TJ 26.4 0 Td [(/*)-600(Figure 17.13 */)]TJ -26.4 -1.189 Td [(int )-3000(send_err\(int,)-600(int,)]TJ 10.8 -1.189 Td (const char *\);)Tj 15.6 0 Td (/* Figure 17.12 */)Tj -26.4 -1.189 Td [(int )-3000(serv_listen\(const)-600(char *\);)]TJ 26.4 0 Td (/* Figure 17.8 */)Tj -26.4 -1.189 Td [(int )-3000(serv_accept\(int,)-600(uid_t *\);)]TJ 26.4 0 Td (/* Figure 17.9 */)Tj -26.4 -1.189 Td [(int )-3000(cli_conn\(const)-600(char *\);)]TJ 26.4 0 Td (/* Figure 17.10 */)Tj -26.4 -1.189 Td [(int )-3000(buf_args\(char)-600(*, int \(*func\)\(int,)]TJ 10.8 -1.189 Td (char **\)\);)Tj 15.6 0 Td (/* Figure 17.23 */)Tj -26.4 -2.259 Td [(int )-3000(tty_cbreak\(int\);)]TJ 26.4 0 Td (/* Figure 18.20 */)Tj -26.4 -1.189 Td [(int )-3000(tty_raw\(int\);)]TJ 26.4 0 Td (/* Figure 18.20 */)Tj -26.4 -1.189 Td [(int )-3000(tty_reset\(int\);)]TJ 26.4 0 Td (/* Figure 18.20 */)Tj -26.4 -1.189 Td [(void )-2400(tty_atexit\(void\);)]TJ 26.4 0 Td (/* Figure 18.20 */)Tj -26.4 -1.189 Td [(struct termios)-1200(*tty_termios\(void\); )-4800(/*)-600(Figure 18.20 */)]TJ 0 -2.259 TD [(int )-3000(ptym_open\(char)-600(*, int\);)]TJ 26.4 0 Td (/* Figure 19.9 */)Tj -26.4 -1.189 Td [(int )-3000(ptys_open\(char)-600(*\); )]TJ 26.4 0 Td [(/*)-600(Figure 19.9 */)]TJ -26.4 -1.189 Td [(#ifdef )-600(TIOCGWINSZ)]TJ 0 -1.189 TD [(pid_t )-1800(pty_fork\(int)-600(*, char *, int, const struct termios *,)]TJ 10.8 -1.189 Td [(const struct winsize *\);)-1200(/* Figure 19.10 */)]TJ -10.8 -1.189 Td (#endif)Tj 0 -2.259 TD [(int )-2400(lock_reg\(int,)-600(int, int, off_t, int, off_t\); /* Figure 14.5 */)]TJ 0 -2.259 TD (#define read_lock\(fd, offset, whence, len\) \\)Tj 7.2 -1.189 Td (lock_reg\(\(fd\), F_SETLK, F_RDLCK, \(offset\), \(whence\), \(len\)\))Tj -7.2 -1.189 Td (#define readw_lock\(fd, offset, whence, len\) \\)Tj 7.2 -1.189 Td (lock_reg\(\(fd\), F_SETLKW, F_RDLCK, \(offset\), \(whence\), \(len\)\))Tj -7.2 -1.189 Td (#define write_lock\(fd, offset, whence, len\) \\)Tj 7.2 -1.189 Td (lock_reg\(\(fd\), F_SETLK, F_WRLCK, \(offset\), \(whence\), \(len\)\))Tj -7.2 -1.189 Td (#define writew_lock\(fd, offset, whence, len\) \\)Tj 7.2 -1.189 Td (lock_reg\(\(fd\), F_SETLKW, F_WRLCK, \(offset\), \(whence\), \(len\)\))Tj -7.2 -1.189 Td (#define un_lock\(fd, offset, whence, len\) \\)Tj 7.2 -1.189 Td (lock_reg\(\(fd\), F_SETLK, F_UNLCK, \(offset\), \(whence\), \(len\)\))Tj -7.2 -2.259 Td [(pid_t )-1200(lock_test\(int,)-600(int, off_t, int, off_t\);)-3000(/* Figure 14.6 */)]TJ T* (#define is_read_lockable\(fd, offset, whence, len\) \\)Tj 7.2 -1.189 Td (\(lock_test\(\(fd\), F_RDLCK, \(offset\), \(whence\), \(len\)\) == 0\))Tj -7.2 -1.189 Td (#define is_write_lockable\(fd, offset, whence, len\) \\)Tj 7.2 -1.189 Td (\(lock_test\(\(fd\), F_WRLCK, \(offset\), \(whence\), \(len\)\) == 0\))Tj -7.2 -2.259 Td [(void )-1800(err_msg\(const)-600(char *, ...\);)]TJ 26.4 0 Td (/* Appendix B */)Tj -26.4 -1.189 Td [(void )-1800(err_dump\(const)-600(char *, ...\) __attribute__\(\(noreturn\)\);)]TJ 0 -1.189 TD [(void )-1800(err_quit\(const)-600(char *, ...\) __attribute__\(\(noreturn\)\);)]TJ T* [(void )-1800(err_cont\(int,)-600(const char *, ...\);)]TJ 0 -1.189 TD [(void )-1800(err_exit\(int,)-600(const char *, ...\) __attribute__\(\(noreturn\)\);)]TJ 0 -1.189 TD [(void )-1800(err_ret\(const)-600(char *, ...\);)]TJ 0 -1.189 TD [(void )-1800(err_sys\(const)-600(char *, ...\) __attribute__\(\(noreturn\)\);)]TJ 0 -2.259 TD [(void )-1800(log_msg\(const)-600(char *, ...\);)]TJ 26.4 0 Td (/* Appendix B */)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47076 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Chapter )-250(20)]TJ 39.788 0 Td [(Exer)18(cises)]TJ /T1_1 1 Tf 6.045 0 Td (787)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(29% )-47(and )-47(59% )-47(to )-47(the )-47(clock )-47(time )-47(over )-47(no )-47(locking )-47(and )-47(that )-47(mandatory )-47(locking )-47(adds )-47(about)]TJ 0 -1.2 TD (another 15% over advisory locking.)Tj /TT0 1 Tf 11.9993 0 0 11.9993 129.5922 623.3626 Tm [(Ex)10(er)20(cises)]TJ /T1_1 1 Tf 8.9995 0 0 8.9995 129.5922 604.5637 Tm (20.1)Tj /T1_0 1 Tf 3.065 0 Td [(The )-123(locking )-123(in)]TJ /TT1 1 Tf 6.932 0 Td (_db_dodelete)Tj /T1_0 1 Tf 7.573 0 Td [(is )-123(somewhat )-123(conservative.)-623(For )-123(example, )-123(we )-123(could )-123(allow)]TJ -14.505 -1.222 Td (mor)Tj 0.3062 Tc 1.806 0 Td (ec)Tj 0 Tc 1.229 0 Td [(oncurr)18(ency )-56(by )-56(not )-56(write )-56(locking )-56(the )-56(fr)18(ee )-56(list )-56(until )-56(we )-56(r)16(eally )-56(need )-56(to; )-56(that )-56(is, )-56(the )-56(call)]TJ -3.035 -1.222 Td (to)Tj /TT1 1 Tf 1.807 0 Td (writew_lock)Tj /T1_0 1 Tf 7.535 0 Td [(could )-685(be )-685(moved )-685(between )-685(the )-685(calls )-685(to)]TJ /TT1 1 Tf 21.098 0 Td (_db_writedat)Tj /T1_0 1 Tf 8.135 0 Td (and)Tj /TT1 1 Tf -38.575 -1.222 Td (_db_readptr)Tj /T1_0 1 Tf 0.5 Tc (.W)Tj 0 Tc 8.35 0 Td (hat happens if we do this?)Tj /T1_1 1 Tf -11.415 -1.667 Td (20.2)Tj /T1_0 1 Tf 3.065 0 Td (If)Tj /TT1 1 Tf 0.977 0 Td (db_nextrec)Tj /T1_0 1 Tf 6.307 0 Td [(did )-57(not )-57(r)19(ead )-56(lock )-56(the )-56(fr)18(ee )-56(list )-56(and )-56(a )-56(r)15(ecor)]TJ 0.3064 Tc 18.332 0 Td (dt)Tj 0 Tc 1.243 0 Td [(hat )-56(it )-56(was )-56(r)18(eading )-56(was )-56(also )-56(in)]TJ -26.859 -1.222 Td [(the )-85(pr)18(ocess )-85(of )-85(being )-85(deleted, )-85(describe )-85(how)]TJ /TT1 1 Tf 19.53 0 Td (db_nextrec)Tj /T1_0 1 Tf 6.335 0 Td [(could )-85(r)18(eturn )-85(the )-85(corr)18(ect )-85(key )-85(but)]TJ -25.865 -1.222 Td [(an all-blank \(hence incorr)18(ect\) data r)18(ecor)18(d. )-250(\(Hint:)-250(Look at)]TJ /TT1 1 Tf 25.315 0 Td (_db_dodelete)Tj /T1_0 1 Tf (.\))Tj /T1_1 1 Tf -28.38 -1.667 Td (20.3)Tj /T1_0 1 Tf 3.065 0 Td [(At )-139(the )-139(end )-139(of )-139(Section )-139(20.8, )-139(we )-139(described )-139(the )-139(locking )-139(performed )-139(by)]TJ /TT1 1 Tf 30.987 0 Td (_db_writeidx)Tj /T1_0 1 Tf 7.589 0 Td (and)Tj /TT1 1 Tf -38.576 -1.222 Td (_db_writedat)Tj /T1_0 1 Tf 0.5691 Tc (.W)Tj 0.3191 Tc 8.927 0 Td (es)Tj 0 Tc 1.222 0 Td [(aid )-69(that )-69(this )-69(locking )-69(didn\325t )-69(interfer)]TJ 0.3191 Tc 15.582 0 Td (ew)Tj 0 Tc 1.632 0 Td [(ith )-69(other )-69(r)18(eaders )-69(and )-69(writers)]TJ -27.363 -1.222 Td (except those making calls to)Tj /TT1 1 Tf 12.642 0 Td (db_store)Tj /T1_0 1 Tf 0.5 Tc (.I)Tj 0.25 Tc 5.887 0 Td (st)Tj 0 Tc 1 0 Td [(his tr)8(ue if mandatory locking is being used?)]TJ /T1_1 1 Tf -22.594 -1.667 Td (20.4)Tj /T1_0 1 Tf 3.065 0 Td (How would you integrate the)Tj /TT1 1 Tf 13.373 0 Td (fsync)Tj /T1_0 1 Tf 3.25 0 Td (function into this database library?)Tj /T1_1 1 Tf -19.688 -1.667 Td (20.5)Tj /T1_0 1 Tf 3.065 0 Td (In)Tj /TT1 1 Tf 1.185 0 Td (db_store)Tj /T1_0 1 Tf [(,)-266(we)-266(write )-16(the )-16(data )-16(r)18(ecor)]TJ 0.266 Tc 15.565 0 Td (db)Tj 0 Tc 1.43 0 Td (efor)Tj 0.266 Tc 1.735 0 Td (et)Tj 0 Tc 1.071 0 Td [(he )-16(index )-16(r)18(ecor)18(d. )-266(What)-266(happens )-16(if )-16(you )-16(do )-16(it)]TJ -20.986 -1.222 Td [(in the opposite or)18(der?)]TJ /T1_1 1 Tf -3.065 -1.667 Td (20.6)Tj /T1_0 1 Tf 3.065 0 Td [(Cr)18(eate )-290(a )-290(new )-290(database )-290(and )-290(write )-290(some )-290(number )-290(of )-290(r)19(ecor)18(ds )-290(to )-290(the )-290(database.)]TJ -0.074 Tc 36.811 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-290(a)]TJ -38.132 -1.222 Td [(pr)18(ogram )-18(that )-18(calls)]TJ /TT1 1 Tf 8.347 0 Td (db_nextrec)Tj /T1_0 1 Tf 6.268 0 Td [(to )-18(r)18(ead )-18(each )-18(r)17(ecor)18(d)-268(in)-268(the )-18(database, )-18(and )-18(call)]TJ /TT1 1 Tf 19.713 0 Td (_db_hash)Tj /T1_0 1 Tf 5.068 0 Td (to)Tj -39.396 -1.222 Td [(calculate )-126(the )-126(hash )-126(value )-126(for )-126(each )-126(r)19(ecor)18(d. )-376(Print)]TJ 0.3758 Tc 21.608 0 Td (ah)Tj 0 Tc 1.458 0 Td [(istogram )-126(of )-126(the )-126(number )-126(of )-126(r)19(ecor)18(ds )-126(on)]TJ -23.066 -1.222 Td [(each hash chain.)-500(Is the hashing function in)]TJ /TT1 1 Tf 19.237 0 Td (_db_hash)Tj /T1_0 1 Tf 5.05 0 Td (adequate?)Tj /T1_1 1 Tf -27.352 -1.667 Td (20.7)Tj /T1_0 1 Tf 3.065 0 Td [(Modify )-95(the )-95(database )-95(functions )-95(so )-95(that )-95(the )-95(number )-95(of )-95(hash )-95(chains )-95(in )-95(the )-95(index )-95(\336le )-95(can )-95(be)]TJ 0 -1.222 TD [(speci\336ed when the database is cr)18(eated.)]TJ /T1_1 1 Tf -3.065 -1.667 Td (20.8)Tj /T1_0 1 Tf 3.065 0 Td (Compar)Tj 0.3157 Tc 3.616 0 Td (et)Tj 0 Tc 1.121 0 Td [(he )-66(performance )-66(of )-66(the )-66(database )-66(functions )-66(when )-66(the )-66(database )-66(is )-66(\(a\) )-66(on )-66(the )-66(same)]TJ -4.737 -1.222 Td [(host )-152(as )-152(the )-152(test )-152(pr)18(ogram )-152(and )-152(\(b\) )-152(on )-152(a )-152(dif)14(fer)18(ent )-152(host )-152(accessed )-152(via )-152(NFS.)-652(Does )-152(the )-152(r)16(ecor)18(d)]TJ 0 -1.222 Td [(locking pr)18(ovided by the database library still work?)]TJ /T1_1 1 Tf -3.065 -1.667 Td (20.9)Tj /T1_0 1 Tf 3.065 0 Td [(The )-169(database )-169(r)18(euses )-169(fr)18(ee )-169(list )-169(r)16(ecor)18(ds )-169(only )-169(if )-169(the )-169(sizes )-169(of )-169(the )-169(key )-169(buf)18(fer )-169(and )-169(data )-169(buf)13(fer)]TJ 0 -1.222 Td [(match )-4(the )-4(needed )-4(sizes )-4(exactly)]TJ 0.5042 Tc 13.499 0 Td (.M)Tj 0 Tc 1.7 0 Td [(odify )-4(the )-4(database )-4(to )-4(allow )-4(lar)18(ger )-4(buf)18(fer )-4(sizes )-4(on )-4(the )-4(fr)17(ee)]TJ -15.199 -1.222 Td [(list to satisfy the r)17(equest. )-250(How)-250(do you have to change the persistent format of the database)]TJ 0 -1.222 Td [(to support this featur)18(e?)]TJ /T1_1 1 Tf -3.065 -1.667 Td (20.10)Tj /T1_0 1 Tf 3.065 0 Td [(After )-28(implementing )-28(a )-28(solution )-28(to )-28(Exer)18(cise )-28(20.9, )-28(write )-28(a )-28(tool )-28(to )-28(convert )-28(one )-28(database )-28(format)]TJ 0 -1.222 TD [(to the other)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47077 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.8)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (777)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (655 )Tj 9.6 0 Td (/*)Tj -9.6 -1.189 Td (656 )Tj 10.2 0 Td [(*)-600(Same size data, just replace data record.)]TJ -10.2 -1.189 Td (657 )Tj 10.2 0 Td (*/)Tj -10.2 -1.189 Td (658 )Tj 9.6 0 Td [(_db_writedat\(db,)-600(data, db->datoff, SEEK_SET\);)]TJ -9.6 -1.189 Td (659 )Tj 9.6 0 Td (db->cnt_stor4++;)Tj -9.6 -1.189 Td [(660 )-4800(})]TJ 0 -1.189 TD [(661 )-2400(})]TJ T* [(662 )-2400(rc)]TJ 0.6 Tc 6.6 0 Td (=0)Tj 3 Tc 1.8 0 Td (;/)Tj 0 Tc 4.2 0 Td [(*)-600(OK)-600(*/)]TJ -12.6 -2.021 Td [(663 )-1200(doreturn:)-600(/* unlock hash chain locked by _db_find_and_lock */)]TJ 0 -1.189 TD [(664 )-2400(if)-600(\(un_lock\(db->idxfd, db->chainoff, SEEK_SET, 1\) < 0\))]TJ 0 -1.189 TD [(665 )-4800(err_dump\("db_store:)-600(un_lock error"\);)]TJ T* [(666 )-2400(return\(rc\);)]TJ T* [(667 )-1200(})]TJ 0 -2.021 TD [(668 )-1200(/*)]TJ 0 -1.189 TD [(669 )-1800(*)-600(Try to find a free index record and accompanying data record)]TJ T* [(670 )-1800(*)-600(of the correct sizes.)-1200(We\325re only called by db_store.)]TJ T* [(671 )-1800(*/)]TJ T* [(672 )-1200(static)-600(int)]TJ 0 -1.189 TD [(673 )-1200(_db_findfree\(DB)-600(*db, int keylen, int datlen\))]TJ 0 -1.189 TD [(674 )-1200({)]TJ T* [(675 )-2400(int )-2400(rc;)]TJ T* [(676 )-2400(off_t)-1800(offset, nextoffset, saveoffset;)]TJ 0 -2.021 TD [(677 )-2400(/*)]TJ 0 -1.189 TD [(678 )-3000(*)-600(Lock the free list.)]TJ T* [(679 )-3000(*/)]TJ T* [(680 )-2400(if)-600(\(writew_lock\(db->idxfd, FREE_OFF, SEEK_SET, 1\) < 0\))]TJ T* [(681 )-4800(err_dump\("_db_findfree:)-600(writew_lock error"\);)]TJ 0 -2.021 TD [(682 )-2400(/*)]TJ 0 -1.189 TD [(683 )-3000(*)-600(Read the free list pointer.)]TJ T* [(684 )-3000(*/)]TJ T* [(685 )-2400(saveoffset)]TJ 0.6 Tc 11.4 0 Td (=F)Tj 0 Tc 1.8 0 Td (REE_OFF;)Tj -13.2 -1.189 Td [(686 )-2400(offset)]TJ 0.6 Tc 9 0 Td (=_)Tj 0 Tc 1.8 0 Td (db_readptr\(db, saveoffset\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2930.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 269.0057 Tm [([655 )167(\320 )167(661])-668(Case )-55(4: )-55(An )-55(existing )-55(r)16(ecor)18(d)-305(is)-305(b)-1(eing )-55(r)18(eplaced, )-55(and )-55(the )-55(length )-55(of )-55(the )-55(new )-55(data)]TJ -0.018 Tc 5 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.3133 Tc 1.367 0 Td (de)Tj 0 Tc 1.403 0 Td [(quals )-63(the )-63(length )-63(of )-63(the )-63(existing )-63(data )-63(r)17(ecor)18(d. )-313(This)-313(is )-63(the )-63(easiest )-63(case;)]TJ -3.626 -1.2 Td [(we )-84(simply )-84(r)18(ewrite )-84(the )-84(data )-84(r)19(ecor)]TJ 0.3338 Tc 14.756 0 Td (da)Tj 0 Tc 1.445 0 Td [(nd )-84(incr)18(ement )-84(the )-84(counter )-84(\()]TJ /TT0 1 Tf 12.066 0 Td (cnt_stor4)Tj /T1_0 1 Tf (\))Tj -28.267 -1.2 Td (for this case.)Tj -5 -1.6 Td [([662 )167(\320 )167(667])-668(In )-279(the )-279(normal )-279(case, )-279(we )-279(set )-279(the )-279(r)15(eturn )-279(code )-279(to )-279(indicate )-279(success )-279(and )-279(fall)]TJ 5 -1.2 Td [(thr)18(ough )-177(to )-177(the )-177(common )-177(r)20(eturn )-177(logic.)]TJ -0.092 Tc 17.665 0 Td [(We )-361(u)]TJ 0 Tc 2.417 0 Td [(nlock )-177(the )-177(hash )-177(chain )-177(that )-177(was)]TJ -20.081 -1.2 Td [(locked as a r)18(esult of calling)]TJ /TT0 1 Tf 12.185 0 Td (_db_find_and_lock)Tj /T1_0 1 Tf 10.45 0 Td [(and r)18(eturn to the caller)74(.)]TJ -27.635 -1.6 Td [([668 )167(\320 )167(686])-668(The)]TJ /TT0 1 Tf 6.957 0 Td (_db_findfree)Tj /T1_0 1 Tf 7.483 0 Td [(function )-33(tries )-33(to )-33(\336nd )-33(a )-33(fr)18(ee )-33(index )-33(r)17(ecor)]TJ 0.2831 Tc 17.144 0 Td (da)Tj 0 Tc 1.394 0 Td [(nd )-33(associated)]TJ -27.979 -1.2 Td [(data )-21(r)18(ecor)18(d)-271(of)-271(the )-21(speci\336ed )-21(sizes.)]TJ -0.092 Tc 15.216 0 Td [(We )-205(n)]TJ 0 Tc 2.24 0 Td [(eed )-21(to )-21(write )-21(lock )-21(the )-21(fr)18(ee )-21(list )-21(to )-21(avoid)]TJ -17.456 -1.2 Td [(interfering )-10(with )-10(any )-10(other )-10(pr)18(ocesses )-10(using )-10(the )-10(fr)18(ee )-10(list.)-510(After )-10(locking )-10(the )-10(fr)19(ee)]TJ 0 -1.2 TD [(list, we get the pointer addr)18(ess at the head of the list.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47078 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (772)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(502 )-1200(/*)]TJ 0 -1.189 TD [(503 )-1800(*)-600(Write an index record.)-1200(_db_writedat is called before)]TJ T* [(504 )-1800(*)-600(this function to set the datoff and datlen fields in the)]TJ T* [(505 )-1800(*)-600(DB structure, which we need to write the index record.)]TJ T* [(506 )-1800(*/)]TJ 0 -1.189 TD [(507 )-1200(static)-600(void)]TJ 0 -1.189 TD [(508 )-1200(_db_writeidx\(DB)-600(*db, const char *key,)]TJ T* (509 )Tj 11.4 0 Td [(off_t)-600(offset, int whence, off_t ptrval\))]TJ -11.4 -1.189 Td [(510 )-1200({)]TJ T* [(511 )-2400(struct)-600(iovec )-1800(iov[2];)]TJ T* [(512 )-2400(char)]TJ 14.4 0 Td (asciiptrlen[PTR_SZ + IDXLEN_SZ + 1];)Tj -14.4 -1.189 Td [(513 )-2400(int)]TJ 14.4 0 Td (len;)Tj -14.4 -2.021 Td [(514 )-2400(if)-600(\(\(db->ptrval = ptrval\) < 0 || ptrval > PTR_MAX\))]TJ T* [(515 )-4800(err_quit\("_db_writeidx:)-600(invalid ptr: %d", ptrval\);)]TJ T* [(516 )-2400(sprintf\(db->idxbuf,)-600("%s%c%lld%c%ld\\n", key, SEP,)]TJ T* [(517 )-3600(\(long)-600(long\)db->datoff, SEP, \(long\)db->datlen\);)]TJ T* [(518 )-2400(len)]TJ 0.6 Tc 7.2 0 Td (=s)Tj 0 Tc 1.8 0 Td (trlen\(db->idxbuf\);)Tj -9 -1.189 Td [(519 )-2400(if)-600(\(len < IDXLEN_MIN || len > IDXLEN_MAX\))]TJ 0 -1.189 TD [(520 )-4800(err_dump\("_db_writeidx:)-600(invalid length"\);)]TJ 0 -1.189 TD [(521 )-2400(sprintf\(asciiptrlen,)-600("%*lld%*d", PTR_SZ, \(long long\)ptrval,)]TJ T* [(522 )-3600(IDXLEN_SZ,)-600(len\);)]TJ 0 -2.021 TD [(523 )-2400(/*)]TJ 0 -1.189 TD [(524 )-3000(*)-600(If we\325re appending, we have to lock before doing the lseek)]TJ T* [(525 )-3000(*)-600(and write to make the two an atomic operation.)-1200(If we\325re)]TJ T* [(526 )-3000(*)-600(overwriting an existing record, we don\325t have to lock.)]TJ T* [(527 )-3000(*/)]TJ T* [(528 )-2400(if)-600(\(whence == SEEK_END\))-3000(/* we\325re appending */)]TJ 0 -1.189 TD [(529 )-4800(if)-600(\(writew_lock\(db->idxfd, \(\(db->nhash+1\)*PTR_SZ\)+1,)]TJ 0 -1.189 TD (530 )Tj 8.4 0 Td [(SEEK_SET,)-600(0\) < 0\))]TJ -8.4 -1.189 Td (531 )Tj 9.6 0 Td [(err_dump\("_db_writeidx:)-600(writew_lock error"\);)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3294.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 305.3814 Tm [([502 )167(\320 )167(522])-668(The)]TJ /TT0 1 Tf 7.242 0 Td (_db_writeidx)Tj /T1_1 1 Tf 7.769 0 Td [(function )-318(is )-318(called )-318(to )-318(write )-318(an )-318(index )-318(r)15(ecor)18(d. )-568(After)]TJ -10.011 -1.2 Td [(validating )-27(the )-27(next )-27(pointer )-27(in )-27(the )-27(chain, )-27(we )-27(cr)18(eate )-27(the )-27(index )-27(r)15(ecor)]TJ 0.2773 Tc 28.989 0 Td (da)Tj 0 Tc 1.388 0 Td [(nd )-27(stor)18(e)]TJ -30.378 -1.2 Td [(the )-12(second )-12(half )-12(of )-12(it )-12(in)]TJ /TT0 1 Tf 10.122 0 Td (idxbuf)Tj /T1_1 1 Tf 0.5124 Tc (.W)Tj 0.2624 Tc 5.27 0 Td (en)Tj 0 Tc 1.323 0 Td [(eed )-12(the )-12(size )-12(of )-12(this )-12(portion )-12(of )-12(the )-12(index)]TJ -0.018 Tc -16.716 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(d)-299(to)-299(c)]TJ -0.018 Tc (re)Tj 0 Tc 4.748 0 Td [(ate )-49(the )-49(\336rst )-49(half )-49(of )-49(the )-49(index )-49(r)17(ecor)18(d, )-49(which )-49(we )-49(stor)18(e)-299(in)-299(the )-49(local)]TJ -5.604 -1.2 Td (variable)Tj /TT0 1 Tf 3.824 0 Td (asciiptrlen)Tj /T1_1 1 Tf (.)Tj -3.824 -1.8 Td [(Note )-147(that )-147(we )-147(use )-147(casts )-147(to )-147(for)18(ce )-147(the )-147(size )-147(of )-147(the )-147(ar)18(guments )-147(in )-147(the)]TJ /TT0 1 Tf 29.8 0 Td (sprintf)Tj /T1_1 1 Tf -29.8 -1.2 Td [(statements )-30(to )-30(match )-30(the )-30(format )-30(speci\336cations.)-532(This )-30(is )-30(because )-30(the )-30(size )-30(of )-30(the)]TJ /TT0 1 Tf 0 -1.2 TD (off_t)Tj /T1_1 1 Tf 3.431 0 Td (and)Tj /TT0 1 Tf 2.124 0 Td (size_t)Tj /T1_1 1 Tf 4.031 0 Td [(data )-180(types )-180(can )-180(vary )-180(among )-180(platforms.)-683(Even )-181(a )-181(32)]TJ 22.912 0.09 Td (-)Tj 0.333 -0.09 Td (bit)Tj -32.83 -1.2 Td [(system )-192(can )-192(pr)18(ovide )-192(64)]TJ 10.415 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-192(\336le )-192(of)18(fsets, )-192(so )-192(we )-192(can\325t )-192(make )-192(any )-192(assumptions)]TJ -10.748 -1.2 Td (about the size of the)Tj /TT0 1 Tf 9.125 0 Td (off_t)Tj /T1_1 1 Tf 3.25 0 Td (data type.)Tj -17.375 -1.84 Td [([523 )167(\320 )167(531])-668(As )-71(with)]TJ /TT0 1 Tf 8.877 0 Td (_db_writedat)Tj /T1_1 1 Tf 0.3212 Tc (,t)Tj 0 Tc 8.097 0 Td [(his )-71(function )-71(deals )-71(with )-71(locking )-71(only )-71(when )-71(a )-71(new)]TJ -11.975 -1.2 Td [(index )-209(r)18(ecor)18(d)-459(is)-459(being )-209(appended )-209(to )-209(the )-209(index )-209(\336le.)-710(When)]TJ /TT0 1 Tf 26.8 0 Td (_db_dodelete)Tj /T1_1 1 Tf -26.8 -1.2 Td [(calls )-42(this )-42(function, )-42(we\325r)]TJ 0.2921 Tc 10.374 0 Td (er)Tj 0 Tc 1.148 0 Td [(ewriting )-42(an )-42(existing )-42(index )-42(r)17(ecor)18(d. )-292(In)-292(this )-42(case, )-42(the)]TJ -11.522 -1.2 Td [(caller has write locked the hash chain, so no additional locking is r)18(equir)18(ed.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47079 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.8)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (771)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(472 )-1200(/*)]TJ 0 -1.189 TD [(473 )-1800(*)-600(Write a data record.)-1200(Called by _db_dodelete \(to write)]TJ T* [(474 )-1800(*)-600(the record with blanks\) and db_store.)]TJ T* [(475 )-1800(*/)]TJ T* [(476 )-1200(static)-600(void)]TJ 0 -1.189 TD [(477 )-1200(_db_writedat\(DB)-600(*db, const char *data, off_t offset, int whence\))]TJ 0 -1.189 TD [(478 )-1200({)]TJ T* [(479 )-2400(struct)-600(iovec )-1800(iov[2];)]TJ T* [(480 )-2400(static)-600(char )-2400(newline)]TJ 0.6 Tc 19.2 0 Td (=N)Tj 0 Tc 1.8 0 Td (EWLINE;)Tj -21 -2.021 Td [(481 )-2400(/*)]TJ T* [(482 )-3000(*)-600(If we\325re appending, we have to lock before doing the lseek)]TJ T* [(483 )-3000(*)-600(and write to make the two an atomic operation.)-1200(If we\325re)]TJ T* [(484 )-3000(*)-600(overwriting an existing record, we don\325t have to lock.)]TJ T* [(485 )-3000(*/)]TJ T* [(486 )-2400(if)-600(\(whence == SEEK_END\) /* we\325re appending, lock entire file */)]TJ T* [(487 )-4800(if)-600(\(writew_lock\(db->datfd, 0, SEEK_SET, 0\) < 0\))]TJ T* (488 )Tj 9.6 0 Td [(err_dump\("_db_writedat:)-600(writew_lock error"\);)]TJ -9.6 -2.021 Td [(489 )-2400(if)-600(\(\(db->datoff = lseek\(db->datfd, offset, whence\)\) == -1\))]TJ 0 -1.189 TD [(490 )-4800(err_dump\("_db_writedat:)-600(lseek error"\);)]TJ 0 -1.189 TD [(491 )-2400(db->datlen)]TJ 0.6 Tc 11.4 0 Td (=s)Tj 0 Tc 1.8 0 Td [(trlen\(data\) + 1;)-1200(/* datlen includes newline */)]TJ -13.2 -2.021 Td [(492 )-2400(iov[0].iov_base)]TJ 0.6 Tc 14.4 0 Td (=\()Tj 0 Tc 1.8 0 Td (char *\) data;)Tj -16.2 -1.189 Td [(493 )-2400(iov[0].iov_len)]TJ 0.6 Tc 14.4 0 Td (=d)Tj 0 Tc 1.8 0 Td (b->datlen - 1;)Tj -16.2 -1.189 Td [(494 )-2400(iov[1].iov_base)]TJ 0.6 Tc 14.4 0 Td (=&)Tj 0 Tc 1.8 0 Td (newline;)Tj -16.2 -1.189 Td [(495 )-2400(iov[1].iov_len)]TJ 0.6 Tc 14.4 0 Td (=1)Tj 0 Tc 1.8 0 Td (;)Tj -16.2 -1.189 Td [(496 )-2400(if)-600(\(writev\(db->datfd, &iov[0], 2\) != db->datlen\))]TJ T* [(497 )-4800(err_dump\("_db_writedat:)-600(writev error of data record"\);)]TJ 0 -2.021 TD [(498 )-2400(if)-600(\(whence == SEEK_END\))]TJ 0 -1.189 TD [(499 )-4800(if)-600(\(un_lock\(db->datfd, 0, SEEK_SET, 0\) < 0\))]TJ T* (500 )Tj 9.6 0 Td [(err_dump\("_db_writedat:)-600(un_lock error"\);)]TJ -9.6 -1.189 Td [(501 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3144.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 290.4031 Tm [([472 )167(\320 )167(491])]TJ -0.092 Tc 5 0 Td [(We )-196(c)]TJ 0 Tc 2.093 0 Td (all)Tj /TT0 1 Tf 1.344 0 Td (_db_writedat)Tj /T1_0 1 Tf 7.462 0 Td [(to )-12(write )-12(a )-12(data )-12(r)20(ecor)18(d. )-262(When)-261(we )-12(delete )-12(a )-12(r)19(ecor)18(d, )-12(we)]TJ -10.898 -1.2 Td (use)Tj /TT0 1 Tf 1.944 0 Td (_db_writedat)Tj /T1_0 1 Tf 7.638 0 Td [(to )-188(overwrite )-188(the )-188(r)19(ecor)]TJ 0.4377 Tc 10.105 0 Td (dw)Tj 0 Tc 1.883 0 Td [(ith )-188(blanks;)]TJ /TT0 1 Tf 5.23 0 Td (_db_writedat)Tj /T1_0 1 Tf -26.8 -1.2 Td [(doesn\325t )-76(need )-76(to )-76(lock )-76(the )-76(data )-76(\336le, )-76(because)]TJ /TT0 1 Tf 19.149 0 Td (db_delete)Tj /T1_0 1 Tf 5.726 0 Td [(has )-76(write )-76(locked )-76(the)]TJ -24.875 -1.2 Td [(hash )-266(chain )-266(for )-266(this )-266(r)17(ecor)18(d. )-516(Thus,)-517(no )-266(other )-266(pr)18(ocess )-266(could )-266(be )-266(r)18(eading )-266(or)]TJ 0 -1.2 Td [(writing )-97(this )-97(particular )-97(data )-97(r)20(ecor)18(d. )-347(When)-346(we )-97(cover)]TJ /TT0 1 Tf 23.673 0 Td (db_store)Tj /T1_0 1 Tf 5.147 0 Td [(later )-97(in )-97(this)]TJ -28.82 -1.2 Td [(section, )-112(we\325ll )-112(encounter )-112(the )-112(case )-112(in )-112(which)]TJ /TT0 1 Tf 19.324 0 Td (_db_writedat)Tj /T1_0 1 Tf 7.562 0 Td [(is )-112(appending )-112(to)]TJ -26.886 -1.2 Td (the data \336le and has to lock it.)Tj -0.092 Tc 0 -1.8 TD [(We )-192(s)]TJ 0 Tc 2.069 0 Td [(eek )-8(to )-8(the )-8(location )-8(wher)17(e)-258(we)-258(want )-8(to )-8(write )-8(the )-8(data )-8(r)17(ecor)18(d. )-258(The)-259(amount)]TJ -2.069 -1.2 Td [(to write is the r)18(ecor)]TJ 0.25 Tc 8.522 0 Td (ds)Tj 0 Tc 1.285 0 Td (ize plus 1 byte for the terminating newline we add.)Tj -14.807 -1.6 Td [([492 )167(\320 )167(501])]TJ -0.092 Tc 5 0 Td [(We )-333(s)]TJ 0 Tc 2.21 0 Td [(et )-149(up )-149(the)]TJ /TT0 1 Tf 4.592 0 Td (iovec)Tj /T1_0 1 Tf 3.399 0 Td [(array )-149(and )-149(call)]TJ /TT0 1 Tf 6.761 0 Td (writev)Tj /T1_0 1 Tf 3.999 0 Td [(to )-148(write )-148(the )-148(data )-148(r)16(ecor)]TJ 0.3985 Tc 10.338 0 Td (da)Tj 0 Tc 1.509 0 Td (nd)Tj -32.807 -1.2 Td [(newline. )-294(W)]TJ 0.2937 Tc 5.24 0 Td (ec)Tj 0 Tc 1.217 0 Td [(an\325t )-44(assume )-44(that )-44(the )-44(caller)-74(\325s )-44(buf)18(fer )-44(has )-44(r)18(oom )-44(at )-44(the )-44(end )-44(for )-44(us)]TJ -6.456 -1.2 Td [(to )-8(append )-8(the )-8(newline, )-8(so )-8(we )-8(write )-8(the )-8(newline )-8(fr)18(om )-8(a )-8(separate )-8(buf)14(fer)]TJ 0.5082 Tc 31.001 0 Td (.I)Tj 0.2582 Tc 1.095 0 Td (fw)Tj 0 Tc 1.425 0 Td (e)Tj -33.521 -1.2 Td (ar)Tj 0.25 Tc 0.877 0 Td (ea)Tj 0 Tc 1.229 0 Td [(ppending a r)18(ecor)18(d)-250(to)-250(the \336le, we r)18(elease the lock we acquir)18(ed earlier)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47080 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.8)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (769)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(412 )-1200(/*)]TJ 0 -1.189 TD [(413 )-1800(*)-600(Delete the current record specified by the DB structure.)]TJ T* [(414 )-1800(*)-600(This function is called by db_delete and db_store, after)]TJ T* [(415 )-1800(*)-600(the record has been located by _db_find_and_lock.)]TJ T* [(416 )-1800(*/)]TJ 0 -1.189 TD [(417 )-1200(static)-600(void)]TJ 0 -1.189 TD [(418 )-1200(_db_dodelete\(DB)-600(*db\))]TJ T* [(419 )-1200({)]TJ T* [(420 )-2400(int )-2400(i;)]TJ T* [(421 )-2400(char)-2400(*ptr;)]TJ T* [(422 )-2400(off_t)-1800(freeptr, saveptr;)]TJ 0 -2.021 TD [(423 )-2400(/*)]TJ 0 -1.189 TD [(424 )-3000(*)-600(Set data buffer and key to all blanks.)]TJ T* [(425 )-3000(*/)]TJ T* [(426 )-2400(for)-600(\(ptr = db->datbuf, i = 0; i < db->datlen - 1; i++\))]TJ T* [(427 )-4800(*ptr++)]TJ 0.6 Tc 11.4 0 Td (=S)Tj 0 Tc 1.8 0 Td (PACE;)Tj -13.2 -1.189 Td [(428 )-2400(*ptr)]TJ 0.6 Tc 7.8 0 Td (=0)Tj 1.8 Tc 1.8 0 Td (;/)Tj 0.6 Tc 3 0 Td (*n)Tj 0 Tc 1.8 0 Td (ull terminate for _db_writedat */)Tj -14.4 -1.189 Td [(429 )-2400(ptr)]TJ 0.6 Tc 7.2 0 Td (=d)Tj 0 Tc 1.8 0 Td (b->idxbuf;)Tj -9 -1.189 Td [(430 )-2400(while)-600(\(*ptr\))]TJ T* [(431 )-4800(*ptr++)]TJ 0.6 Tc 11.4 0 Td (=S)Tj 0 Tc 1.8 0 Td (PACE;)Tj -13.2 -2.021 Td [(432 )-2400(/*)]TJ T* [(433 )-3000(*)-600(We have to lock the free list.)]TJ T* [(434 )-3000(*/)]TJ T* [(435 )-2400(if)-600(\(writew_lock\(db->idxfd, FREE_OFF, SEEK_SET, 1\) < 0\))]TJ T* [(436 )-4800(err_dump\("_db_dodelete:)-600(writew_lock error"\);)]TJ 0 -2.021 TD [(437 )-2400(/*)]TJ 0 -1.189 TD [(438 )-3000(*)-600(Write the data record with all blanks.)]TJ T* [(439 )-3000(*/)]TJ T* [(440 )-2400(_db_writedat\(db,)-600(db->datbuf, db->datoff, SEEK_SET\);)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3326.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 308.591 Tm [([412 )167(\320 )167(431])-668(The)]TJ /TT0 1 Tf 6.984 0 Td (_db_dodelete)Tj /T1_0 1 Tf 7.509 0 Td [(function )-60(does )-60(all )-60(the )-60(work )-60(necessary )-60(to )-60(delete )-60(a )-60(r)22(ecor)18(d)]TJ -9.493 -1.2 Td [(fr)18(om )-66(the )-66(database.)-566(\(This )-66(function )-66(is )-66(also )-66(called )-66(by)]TJ /TT0 1 Tf 22.912 0 Td (db_store)Tj /T1_0 1 Tf [(.\) )-316(Most)-315(of )-66(the)]TJ -22.912 -1.2 Td [(function )-21(just )-21(updates )-21(two )-21(linked )-21(lists: )-21(the )-21(fr)21(ee )-21(list )-21(and )-21(the )-21(hash )-21(chain )-21(for )-21(this)]TJ 0 -1.2 TD (key)Tj 0.5151 Tc 1.48 0 Td (.W)Tj 0 Tc 1.765 0 Td [(hen )-15(a )-15(r)18(ecor)18(d)-265(is)-265(deleted, )-15(we )-15(set )-15(its )-15(key )-15(and )-15(data )-15(r)17(ecor)18(d)-265(to)-265(blanks. )-265(This)]TJ -3.245 -1.2 Td (fact is used by)Tj /TT0 1 Tf 6.544 0 Td (db_nextrec)Tj /T1_0 1 Tf 0.25 Tc (,w)Tj 0 Tc 7.334 0 Td (hich we\325ll examine later in this section.)Tj -18.878 -1.6 Td [([432 )167(\320 )167(440])]TJ -0.092 Tc 5 0 Td [(We )-375(c)]TJ 0 Tc 2.271 0 Td (all)Tj /TT0 1 Tf 1.522 0 Td (writew_lock)Tj /T1_0 1 Tf 7.041 0 Td [(to )-191(write )-191(lock )-191(the )-191(fr)18(ee )-191(list.)-691(This )-191(step )-191(pr)18(events )-191(two)]TJ -10.835 -1.2 Td [(pr)18(ocesses )-116(that )-116(ar)]TJ 0.3664 Tc 7.542 0 Td (ed)Tj 0 Tc 1.456 0 Td [(eleting )-116(r)18(ecor)18(ds )-116(at )-116(the )-116(same )-116(time, )-116(on )-116(two )-116(dif)16(fer)18(ent )-116(hash)]TJ -8.998 -1.2 Td [(chains, )-75(fr)18(om )-75(interfering )-75(with )-75(each )-75(other)]TJ 0.5749 Tc 17.837 0 Td (.S)Tj 0 Tc 1.35 0 Td [(ince )-75(we\325ll )-75(add )-75(the )-75(deleted )-75(r)19(ecor)18(d)]TJ -19.187 -1.2 Td [(to )-28(the )-28(fr)18(ee )-28(list, )-28(which )-28(changes )-28(the )-28(fr)18(ee-list )-28(pointer)]TJ 0.2781 Tc 21.9 0 Td (,o)Tj 0 Tc 1.074 0 Td [(nly )-28(one )-28(pr)18(ocess )-28(at )-28(a )-28(time)]TJ -22.974 -1.2 Td (can be doing this.)Tj -0.092 Tc 0 -1.8 TD [(We )-389(w)]TJ 0 Tc 2.676 0 Td [(rite )-205(the )-205(all-blank )-205(data )-205(r)17(ecor)18(d)-455(by)-455(c)-1(alling)]TJ /TT0 1 Tf 18.797 0 Td (_db_writedat)Tj /T1_0 1 Tf 0.7053 Tc (.N)Tj 0 Tc 8.986 0 Td [(ote )-205(that)]TJ -30.46 -1.2 Td [(ther)18(e)-337(is)-337(no)-337(need )-87(for)]TJ /TT0 1 Tf 9.196 0 Td (_db_writedat)Tj /T1_0 1 Tf 7.537 0 Td [(to )-87(lock )-87(the )-87(data )-87(\336le )-87(in )-87(this )-87(case.)-586(Since)]TJ /TT0 1 Tf -16.733 -1.2 Td (db_delete)Tj /T1_0 1 Tf 5.653 0 Td [(has )-3(write )-3(locked )-3(the )-3(hash )-3(chain )-3(for )-3(this )-3(r)15(ecor)18(d, )-3(we )-3(know )-3(that )-3(no)]TJ -5.653 -1.2 Td [(other pr)18(ocess is r)18(eading or writing this particular data r)18(ecor)18(d.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47081 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.8)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (763)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(230 )-1200(/*)]TJ 0 -1.189 TD [(231 )-1800(*)-600(Find the specified record.)-1200(Called by db_delete, db_fetch,)]TJ T* [(232 )-1800(*)-600(and db_store.)-1200(Returns with the hash chain locked.)]TJ T* [(233 )-1800(*/)]TJ T* [(234 )-1200(static)-600(int)]TJ 0 -1.189 TD [(235 )-1200(_db_find_and_lock\(DB)-600(*db, const char *key, int writelock\))]TJ 0 -1.189 TD [(236 )-1200({)]TJ T* [(237 )-2400(off_t)-1800(offset, nextoffset;)]TJ 0 -1.664 TD [(238 )-2400(/*)]TJ 0 -1.189 TD [(239 )-3000(*)-600(Calculate the hash value for this key, then calculate the)]TJ T* [(240 )-3000(*)-600(byte offset of corresponding chain ptr in hash table.)]TJ 0 -1.189 TD [(241 )-3000(*)-600(This is where our search starts.)-1200(First we calculate the)]TJ 0 -1.189 TD [(242 )-3000(*)-600(offset in the hash table for this key.)]TJ T* [(243 )-3000(*/)]TJ T* [(244 )-2400(db->chainoff)]TJ 0.6 Tc 12.6 0 Td (=\()Tj 0 Tc 1.8 0 Td (_db_hash\(db, key\) * PTR_SZ\) + db->hashoff;)Tj -14.4 -1.189 Td [(245 )-2400(db->ptroff)]TJ 0.6 Tc 11.4 0 Td (=d)Tj 0 Tc 1.8 0 Td (b->chainoff;)Tj -13.2 -1.664 Td [(246 )-2400(/*)]TJ 0 -1.189 TD [(247 )-3000(*)-600(We lock the hash chain here.)-1200(The caller must unlock it)]TJ 0 -1.189 TD [(248 )-3000(*)-600(when done.)-1200(Note we lock and unlock only the first byte.)]TJ T* [(249 )-3000(*/)]TJ T* [(250 )-2400(if)-600(\(writelock\) {)]TJ T* [(251 )-4800(if)-600(\(writew_lock\(db->idxfd, db->chainoff, SEEK_SET, 1\) < 0\))]TJ T* (252 )Tj 9.6 0 Td [(err_dump\("_db_find_and_lock:)-600(writew_lock error"\);)]TJ -9.6 -1.189 Td [(253 )-2400(})-600(else {)]TJ T* [(254 )-4800(if)-600(\(readw_lock\(db->idxfd, db->chainoff, SEEK_SET, 1\) < 0\))]TJ T* (255 )Tj 9.6 0 Td [(err_dump\("_db_find_and_lock:)-600(readw_lock error"\);)]TJ -9.6 -1.189 Td [(256 )-2400(})]TJ 0 -1.664 TD [(257 )-2400(/*)]TJ 0 -1.189 TD [(258 )-3000(*)-600(Get the offset in the index file of first record)]TJ T* [(259 )-3000(*)-600(on the hash chain \(can be 0\).)]TJ T* [(260 )-3000(*/)]TJ T* [(261 )-2400(offset)]TJ 0.6 Tc 9 0 Td (=_)Tj 0 Tc 1.8 0 Td (db_readptr\(db, db->ptroff\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3101.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 286.1237 Tm [([230 )167(\320 )167(237])-668(The)]TJ /TT0 1 Tf 6.989 0 Td (_db_find_and_lock)Tj /T1_0 1 Tf 10.515 0 Td [(function )-65(is )-65(used )-65(internally )-65(by )-65(the )-65(library )-65(to )-65(\336nd)]TJ 0.2914 Tc -12.503 -1.2 Td (ar)Tj 0 Tc 1.168 0 Td (ecor)Tj 0.2914 Tc 1.846 0 Td (dg)Tj 0 Tc 1.458 0 Td [(iven )-41(its )-41(key)]TJ 0.5414 Tc 5.021 0 Td (.W)Tj 0.2915 Tc 1.699 0 Td (es)Tj 0 Tc 1.194 0 Td [(et )-41(the)]TJ /TT0 1 Tf 2.775 0 Td (writelock)Tj /T1_0 1 Tf 5.691 0 Td [(parameter )-41(to )-41(a )-41(nonzer)]TJ 0.2915 Tc 9.871 0 Td (ov)Tj 0 Tc 1.403 0 Td (alue)Tj -32.127 -1.2 Td [(if )-88(we )-88(want )-88(to )-88(acquir)]TJ 0.338 Tc 9.178 0 Td (eaw)Tj 0 Tc 2.489 0 Td [(rite )-88(lock )-88(on )-88(the )-88(index )-88(\336le )-88(while )-88(we )-88(sear)18(ch )-88(for )-88(the)]TJ -0.018 Tc -11.667 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(d. )-349(If)-348(we )-99(set)]TJ /TT0 1 Tf 7.085 0 Td (writelock)Tj /T1_0 1 Tf 5.749 0 Td [(to )-99(zer)18(o, )-99(we )-99(r)18(ead )-99(lock )-99(the )-99(index )-99(\336le )-99(while )-99(we)]TJ -13.689 -1.2 Td [(sear)18(ch it.)]TJ -5 -1.6 Td [([238 )167(\320 )167(256])]TJ -0.092 Tc 5 0 Td [(We )-282(p)]TJ -0.018 Tc 2.336 0 Td (re)Tj 0 Tc 0.856 0 Td [(par)18(e)-348(to)-348(traverse )-98(a )-98(hash )-98(chain )-98(in)]TJ /TT0 1 Tf 14.688 0 Td (_db_find_and_lock)Tj /T1_0 1 Tf 0.598 Tc (.W)Tj 0.348 Tc 11.956 0 Td (ec)Tj 0 Tc 1.271 0 Td (onvert)Tj -31.107 -1.2 Td [(the )-79(key )-79(into )-79(a )-79(hash )-79(value, )-79(which )-79(we )-79(use )-79(to )-79(calculate )-79(the )-79(starting )-79(addr)18(ess )-79(of)]TJ 0 -1.2 TD [(the )-131(hash )-131(chain )-131(in )-131(the )-131(\336le )-131(\()]TJ /TT0 1 Tf 12.129 0 Td (chainoff)Tj /T1_0 1 Tf [(\). )-381(W)]TJ 0.3811 Tc 6.922 0 Td (ew)Tj 0 Tc 1.694 0 Td [(ait )-131(for )-131(the )-131(lock )-131(to )-131(be )-131(granted)]TJ -20.745 -1.2 Td (befor)Tj 0.2707 Tc 2.288 0 Td (eg)Tj 0 Tc 1.306 0 Td [(oing )-21(thr)18(ough )-21(the )-21(hash )-21(chain.)-521(Note )-21(that )-21(we )-21(lock )-21(only )-21(the )-21(\336rst )-21(byte )-21(in)]TJ -3.594 -1.2 Td [(the )-47(start )-47(of )-47(the )-47(hash )-47(chain.)-544(This )-46(incr)18(eases )-46(concurr)18(ency )-46(by )-46(allowing )-46(multiple)]TJ T* [(pr)18(ocesses to sear)18(ch dif)18(fer)18(ent hash chains at the same time.)]TJ -5 -1.6 Td [([257 )167(\320 )167(261])]TJ -0.092 Tc 5 0 Td [(We )-376(c)]TJ 0 Tc 2.273 0 Td (all)Tj /TT0 1 Tf 1.524 0 Td (_db_readptr)Tj /T1_0 1 Tf 7.042 0 Td [(to )-192(r)18(ead )-192(the )-192(\336rst )-192(pointer )-192(in )-192(the )-192(hash )-192(chain.)-692(If )-192(this)]TJ -0.018 Tc -10.84 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns zer)18(o, the hash chain is empty)111(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47082 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.8)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (759)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(121 )-2400(if)-600(\(\(oflag & \(O_CREAT | O_TRUNC\)\) == \(O_CREAT | O_TRUNC\)\) {)]TJ 0 -1.189 TD [(122 )-4800(/*)]TJ T* (123 )Tj 7.8 0 Td [(*)-600(If the database was created, we have to initialize)]TJ -7.8 -1.189 Td (124 )Tj 7.8 0 Td [(*)-600(it. )-600(Write)-600(lock the entire file so that we can stat)]TJ -7.8 -1.189 Td (125 )Tj 7.8 0 Td [(*)-600(it, check its size, and initialize it, atomically.)]TJ -7.8 -1.189 Td (126 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(127 )-4800(if)-600(\(writew_lock\(db->idxfd, 0, SEEK_SET, 0\) < 0\))]TJ T* (128 )Tj 9.6 0 Td [(err_dump\("db_open:)-600(writew_lock error"\);)]TJ -9.6 -2.259 Td [(129 )-4800(if)-600(\(fstat\(db->idxfd, &statbuff\) < 0\))]TJ T* (130 )Tj 9.6 0 Td [(err_sys\("db_open:)-600(fstat error"\);)]TJ -9.6 -2.259 Td [(131 )-4800(if)-600(\(statbuff.st_size == 0\) {)]TJ T* (132 )Tj 9.6 0 Td (/*)Tj -9.6 -1.189 Td (133 )Tj 10.2 0 Td [(*)-600(We have to build a list of \(NHASH_DEF + 1\) chain)]TJ -10.2 -1.189 Td (134 )Tj 10.2 0 Td [(*)-600(ptrs with a value of 0.)-1200(The +1 is for the free)]TJ -10.2 -1.189 Td (135 )Tj 10.2 0 Td [(*)-600(list pointer that precedes the hash table.)]TJ -10.2 -1.189 Td (136 )Tj 10.2 0 Td (*/)Tj -10.2 -1.189 Td (137 )Tj 9.6 0 Td [(sprintf\(asciiptr,)-600("%*d", PTR_SZ, 0\);)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4642.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 440.1852 Tm [([121 )167(\320 )167(130])]TJ -0.092 Tc 5 0 Td [(We )-571(e)]TJ 0 Tc 2.503 0 Td [(ncounter )-387(locking )-387(if )-387(the )-387(database )-387(is )-387(being )-387(cr)17(eated. )-637(Consider)-637(two)]TJ -2.503 -1.2 Td [(pr)18(ocesses )-368(trying )-368(to )-368(cr)18(eate )-368(the )-368(same )-368(database )-368(at )-368(about )-368(the )-368(same )-368(time.)]TJ 0 -1.2 TD [(Assume )-65(that )-65(the )-65(\336rst )-65(pr)18(ocess )-65(calls)]TJ /TT0 1 Tf 15.596 0 Td (fstat)Tj /T1_0 1 Tf 3.315 0 Td [(and )-65(is )-65(blocked )-65(by )-65(the )-65(kernel )-65(after)]TJ /TT0 1 Tf -18.911 -1.2 Td (fstat)Tj /T1_0 1 Tf -0.018 Tc 3.347 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns. )-347(The)-348(second )-97(pr)18(ocess )-97(calls)]TJ /TT0 1 Tf 14.572 0 Td (db_open)Tj /T1_0 1 Tf 0.3474 Tc (,\336)Tj 0 Tc 5.402 0 Td [(nds )-97(that )-97(the )-97(length )-97(of)]TJ -24.178 -1.2 Td [(the )-143(index )-143(\336le )-143(is )-143(0, )-143(and )-143(initializes )-143(the )-143(fr)18(ee )-143(list )-143(and )-143(hash )-143(chain.)-648(The )-143(second)]TJ T* [(pr)18(ocess )-175(then )-175(writes )-175(one )-175(r)18(ecor)18(d)-425(to)-425(the )-175(database.)-675(At )-175(this )-175(point, )-175(the )-175(second)]TJ 0 -1.2 Td [(pr)18(ocess )-115(is )-115(blocked, )-115(and )-115(the )-115(\336rst )-115(pr)20(ocess )-115(continues )-115(executing )-115(right )-115(after )-115(the)]TJ 0 -1.2 Td [(call )-63(to)]TJ /TT0 1 Tf 3.023 0 Td (fstat)Tj /T1_0 1 Tf 0.5627 Tc (.T)Tj 0 Tc 4.426 0 Td [(he )-63(\336rst )-63(pr)18(ocess )-63(\336nds )-63(the )-63(size )-63(of )-63(the )-63(index )-63(\336le )-63(to )-63(be )-63(0 )-63(\(since)]TJ /TT0 1 Tf -7.449 -1.2 Td (fstat)Tj /T1_0 1 Tf 3.288 0 Td [(was )-38(called )-38(befor)]TJ 0.2881 Tc 7.238 0 Td (et)Tj 0 Tc 1.093 0 Td [(he )-38(second )-38(pr)18(ocess )-38(initialized )-38(the )-38(index )-38(\336le\), )-38(so )-38(the)]TJ -11.619 -1.2 Td [(\336rst )-3(pr)18(ocess )-3(initializes )-3(the )-3(fr)18(ee )-3(list )-3(and )-3(hash )-3(chain, )-3(wiping )-3(out )-3(the )-3(r)20(ecor)]TJ 0.2528 Tc 31.402 0 Td (dt)Tj 0 Tc 1.19 0 Td (hat)Tj -32.592 -1.2 Td [(the )-54(second )-54(pr)18(ocess )-54(stor)18(ed )-54(in )-54(the )-54(database.)-554(The )-54(way )-54(to )-54(pr)19(event )-54(this )-54(is )-54(to )-54(use)]TJ T* [(locking. )-473(W)]TJ 0.4734 Tc 5.147 0 Td (eu)Tj 0 Tc 1.555 0 Td [(se )-223(the )-223(macr)17(os)]TJ /TT0 1 Tf 6.884 0 Td (readw_lock)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 6.723 0 Td (writew_lock)Tj /T1_0 1 Tf 0.4733 Tc (,a)Tj 0 Tc 7.823 0 Td (nd)Tj /TT0 1 Tf 1.666 0 Td (un_lock)Tj /T1_0 1 Tf -29.8 -1.2 Td [(fr)18(om Section 14.3.)]TJ -5 -1.6 Td [([131 )167(\320 )167(137])-668(If )-235(the )-235(size )-235(of )-235(the )-235(index )-235(\336le )-235(is )-235(0, )-235(we )-235(have )-235(just )-235(cr)16(eated )-235(it, )-235(so )-235(we )-235(need )-235(to)]TJ 5 -1.2 Td [(initialize )-88(the )-88(fr)18(ee )-88(list )-88(and )-88(hash )-88(chain )-88(pointers )-88(it )-88(contains.)-593(Note )-88(that )-88(we )-88(use)]TJ T* [(the )-146(format )-146(string)]TJ /TT0 1 Tf 8.133 0 Td (%*d)Tj /T1_0 1 Tf 2.196 0 Td [(to )-146(convert )-146(a )-146(database )-146(pointer )-146(fr)17(om )-146(an )-146(integer )-146(to )-146(an)]TJ -10.329 -1.2 Td [(ASCII )-160(string.)-660(\(W)92(e\325ll )-160(use )-160(this )-160(type )-160(of )-160(format )-160(again )-160(in)]TJ /TT0 1 Tf 24.697 0 Td (_db_writeidx)Tj /T1_0 1 Tf 7.61 0 Td (and)Tj /TT0 1 Tf -32.307 -1.2 Td (_db_writeptr)Tj /T1_0 1 Tf [(.\) )-337(This)-338(format )-87(tells)]TJ /TT0 1 Tf 16.087 0 Td (sprintf)Tj /T1_0 1 Tf 4.537 0 Td [(to )-87(take )-87(the)]TJ /TT0 1 Tf 5.133 0 Td (PTR_SZ)Tj /T1_0 1 Tf 3.938 0 Td [(ar)18(gument)]TJ -29.694 -1.2 Td [(and )-76(use )-76(it )-76(as )-76(the )-76(minimum )-76(\336eld )-76(width )-76(for )-76(the )-76(next )-76(ar)18(gument, )-76(which )-76(is )-76(0 )-76(in)]TJ T* [(this )-53(instance )-53(\(her)18(e)-303(we)-303(a)]TJ -0.018 Tc [(re )-89(i)]TJ 0 Tc 11.977 0 Td [(nitializing )-53(the )-53(pointers )-53(to )-53(0, )-53(since )-53(we )-53(ar)]TJ 0.3032 Tc 17.686 0 Td (ec)Tj -0.018 Tc 1.226 0 Td (re)Tj 0 Tc 0.856 0 Td (ating)Tj 0.251 Tc -31.745 -1.2 Td (an)Tj 0 Tc 1.333 0 Td [(ew )-1(database\).)-501(This )-1(has )-1(the )-1(ef)18(fect )-1(of )-1(for)18(cing )-1(the )-1(string )-1(cr)18(eated )-1(to )-1(be )-1(at )-1(least)]TJ /TT0 1 Tf -1.333 -1.2 Td (PTR_SZ)Tj /T1_0 1 Tf 3.867 0 Td [(characters )-17(\(padded )-17(on )-17(the )-17(left )-17(with )-17(spaces\).)-518(In)]TJ /TT0 1 Tf 20.973 0 Td (_db_writeidx)Tj /T1_0 1 Tf 7.467 0 Td (and)Tj /TT0 1 Tf -32.307 -1.2 Td (_db_writeptr)Tj /T1_0 1 Tf [(,)-390(we)-390(will )-140(pass )-140(a )-140(pointer )-140(value )-140(instead )-140(of )-140(zer)19(o, )-140(but )-140(we )-140(will)]TJ T* [(\336rst )-123(verify )-123(that )-123(the )-123(pointer )-123(value )-123(isn\325t )-123(gr)16(eater )-123(than)]TJ /TT0 1 Tf 23.511 0 Td (PTR_MAX)Tj /T1_0 1 Tf [(,)-373(to)-373(g)-1(uarantee)]TJ -23.511 -1.2 Td [(that )-83(every )-83(pointer )-83(string )-83(we )-83(write )-83(to )-83(the )-83(database )-83(occupies )-83(exactly)]TJ /TT0 1 Tf 30.4 0 Td (PTR_SZ)Tj /T1_0 1 Tf -30.4 -1.16 Td (\()Tj 0.333 -0.04 Td (7)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (characters.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47083 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.3)]TJ 36.622 0 Td (Recor)Tj 0.5 Tc 2.514 0 Td (dL)Tj 0 Tc 1.722 0 Td (ocking)Tj /T1_1 1 Tf 4.975 0 Td (491)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm ({)Tj 2.4 -1.189 Td (if \(writew_lock\(fd, offset, SEEK_SET, 1\) < 0\))Tj 2.4 -1.189 Td (err_sys\("%s: writew_lock error", name\);)Tj -2.4 -1.189 Td (printf\("%s: got the lock, byte %lld\\n", name, \(long long\)offset\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(fd;)]TJ T* [(pid_t )-1200(pid;)]TJ 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (reate a file and write two bytes to it.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(\(fd = creat\("templock", FILE_MODE\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("creat error"\);)Tj -2.4 -1.189 Td (if \(write\(fd, "ab", 2\) != 2\))Tj 2.4 -1.189 Td (err_sys\("write error"\);)Tj -2.4 -2.021 Td (TELL_WAIT\(\);)Tj 0 -1.189 TD (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(pid == 0\) {)Tj 17.4 0 Td (/* child */)Tj -16.8 -1.189 Td (lockabyte\("child", fd, 0\);)Tj 0 -1.189 TD (TELL_PARENT\(getppid\(\)\);)Tj T* (WAIT_PARENT\(\);)Tj T* (lockabyte\("child", fd, 1\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 17.4 0 Td (/* parent */)Tj -16.8 -1.189 Td (lockabyte\("parent", fd, 1\);)Tj 0 -1.189 TD (TELL_CHILD\(pid\);)Tj 0 -1.189 TD (WAIT_CHILD\(\);)Tj T* (lockabyte\("parent", fd, 0\);)Tj -2.4 -1.189 Td (})Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3006.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 247.2623 284.5948 Tm (Figure 14.7)Tj /T1_0 1 Tf 5.695 0 Td (Example of deadlock detection)Tj 9.9988 0 0 9.9988 129.5846 258.198 Tm [(Running the pr)18(ogram in Figur)]TJ 0.25 Tc 13.365 0 Td (e1)Tj 0 Tc 1.229 0 Td (4.7 gives us)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 241.5 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (parent: got the lock, byte 1)Tj T* (child: got the lock, byte 0)Tj T* (parent: writew_lock error: Resource deadlock avoided)Tj T* (child: got the lock, byte 1)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 180.7073 Tm [(When )-140(a )-140(deadlock )-140(is )-140(detected, )-140(the )-140(kernel )-140(has )-140(to )-140(choose )-140(one )-140(pr)18(ocess )-140(to )-140(r)22(eceive )-140(the)]TJ -1.8 -1.2 Td [(err)18(or )-190(r)18(eturn. )-440(In)-441(this )-190(example, )-190(the )-190(par)16(ent )-190(was )-190(chosen, )-190(but )-190(this )-190(is )-190(an )-190(implementation)]TJ 0 -1.2 Td [(detail. )-418(On)-418(some )-168(systems, )-168(the )-168(child )-168(always )-168(r)18(eceives )-168(the )-168(err)19(or)]TJ 0.6679 Tc 27.979 0 Td (.O)Tj 0.418 Tc 1.704 0 Td (no)Tj 0 Tc 1.546 0 Td [(ther )-168(systems, )-168(the)]TJ -31.229 -1.2 Td [(par)18(ent )-179(always )-179(gets )-179(the )-179(err)17(or)]TJ 0.6792 Tc 12.977 0 Td (.O)Tj 0.4292 Tc 1.715 0 Td (ns)Tj 0 Tc 1.435 0 Td [(ome )-179(systems, )-179(you )-179(might )-179(even )-179(see )-179(the )-179(err)18(ors )-179(split)]TJ -16.127 -1.2 Td [(between the child and the par)18(ent as multiple lock attempts ar)]TJ 0.25 Tc 27.051 0 Td (em)Tj 0 Tc 1.612 0 Td (ade.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1327.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47084 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.3)]TJ 36.622 0 Td (Recor)Tj 0.5 Tc 2.514 0 Td (dL)Tj 0 Tc 1.722 0 Td (ocking)Tj /T1_1 1 Tf 4.975 0 Td (489)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(Example )195(\321 )195(Requesting)-279(and Releasing a Loc)20(k)]TJ /T1_0 1 Tf -0.092 Tc 3.6 -2.4 Td [(To )-206(s)]TJ 0 Tc 1.763 0 Td [(ave )-22(ourselves )-22(fr)18(om )-22(having )-22(to )-22(allocate )-22(an)]TJ /TT1 1 Tf 18.199 0 Td (flock)Tj /T1_0 1 Tf 3.272 0 Td [(str)8(uctur)]TJ 0.2719 Tc 3.49 0 Td (ea)Tj 0 Tc 1.251 0 Td [(nd )-22(\336ll )-22(in )-22(all )-22(the )-22(elements)]TJ -27.975 -1.2 Td (each time, the function)Tj /TT1 1 Tf 10.328 0 Td (lock_reg)Tj /T1_0 1 Tf 5.05 0 Td (in Figur)Tj 0.25 Tc 3.506 0 Td (e1)Tj 0 Tc 1.229 0 Td (4.5 handles all these details.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6258.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 616.225 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (lock_reg\(int fd, int cmd, int type, off_t offset, int whence, off_t len\ \))Tj T* ({)Tj 2.4 -1.189 Td [(struct flock)-2400(lock;)]TJ 0 -1.902 TD [(lock.l_type = type;)-3000(/* F_RDLCK, F_WRLCK, F_UNLCK */)]TJ 0 -1.189 TD [(lock.l_start = offset;)-1200(/* byte offset, relative to l_whence */)]TJ T* (lock.l_whence = whence; /* SEEK_SET, SEEK_CUR, SEEK_END */)Tj T* [(lock.l_len = len;)-4200(/* #bytes \(0 means to EOF\) */)]TJ 0 -1.902 TD (return\(fcntl\(fd, cmd, &lock\)\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4745.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 226.0313 458.4555 Tm (Figure 14.5)Tj /T1_0 1 Tf 5.695 0 Td [(Function to lock or unlock a r)18(egion of a \336le)]TJ 9.9982 0 0 9.9982 129.5769 434.4598 Tm [(Since )-33(most )-33(locking )-33(calls )-33(ar)18(e)-283(to)-283(lock )-33(or )-33(unlock )-33(a )-33(r)18(egion )-33(\(the )-33(command)]TJ /TT1 1 Tf 30.921 0 Td (F_GETLK)Tj /T1_0 1 Tf 4.483 0 Td [(is )-33(rar)18(ely)]TJ -35.404 -1.2 Td [(used\), )-57(we )-57(normally )-57(use )-57(one )-57(of )-57(the )-57(following )-57(\336ve )-57(macr)18(os, )-57(which )-57(ar)]TJ 0.3066 Tc 29.762 0 Td (ed)Tj 0 Tc 1.397 0 Td [(e\336ned )-57(in)]TJ /TT1 1 Tf 4.242 0 Td (apue.h)Tj /T1_0 1 Tf -35.4 -1.2 Td (\(Appendix B\).)Tj /TT1 1 Tf 8.9984 0 0 8.9984 129.5769 388.4181 Tm (#define read_lock\(fd, offset, whence, len\) \\)Tj 7.2 -1.189 Td (lock_reg\(\(fd\), F_SETLK, F_RDLCK, \(offset\), \(whence\), \(len\)\))Tj -7.2 -1.189 Td (#define readw_lock\(fd, offset, whence, len\) \\)Tj 7.2 -1.189 Td (lock_reg\(\(fd\), F_SETLKW, F_RDLCK, \(offset\), \(whence\), \(len\)\))Tj -7.2 -1.189 Td (#define write_lock\(fd, offset, whence, len\) \\)Tj 7.2 -1.189 Td (lock_reg\(\(fd\), F_SETLK, F_WRLCK, \(offset\), \(whence\), \(len\)\))Tj -7.2 -1.189 Td (#define writew_lock\(fd, offset, whence, len\) \\)Tj 7.2 -1.189 Td (lock_reg\(\(fd\), F_SETLKW, F_WRLCK, \(offset\), \(whence\), \(len\)\))Tj -7.2 -1.189 Td (#define un_lock\(fd, offset, whence, len\) \\)Tj 7.2 -1.189 Td (lock_reg\(\(fd\), F_SETLK, F_UNLCK, \(offset\), \(whence\), \(len\)\))Tj /T1_0 1 Tf -0.092 Tc 9.9982 0 0 9.9982 129.5769 268.7896 Tm [(We )-236(h)]TJ 0 Tc 2.271 0 Td [(ave )-52(purposely )-52(de\336ned )-52(the )-52(\336rst )-52(thr)18(ee )-52(ar)18(guments )-52(to )-52(these )-52(macr)18(os )-52(in )-52(the )-52(same )-52(or)22(der)]TJ -2.271 -1.2 Td (as the)Tj /TT1 1 Tf 2.811 0 Td (lseek)Tj /T1_0 1 Tf 3.25 0 Td (function.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2568.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT0 1 Tf 9.9976 0 0 9.9976 93.5775 224.3841 Tm [(Example )195(\321 )195(T)59(esting f)20(or a Loc)20(k)]TJ /T1_0 1 Tf 3.6 -2.4 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (4.6 de\336nes the function)Tj /TT1 1 Tf 10.524 0 Td (lock_test)Tj /T1_0 1 Tf 5.65 0 Td (that we\325ll use to test for a lock.)Tj ET q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1932.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9973 0 0 8.9973 129.5611 183.6819 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD (pid_t)Tj 0 -1.189 TD (lock_test\(int fd, int type, off_t offset, int whence, off_t len\))Tj T* ({)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47085 0 obj <>stream q /Fm0 Do Q BT /Span <>BDC /GS0 gs /T1_0 1 Tf 11 0 0 11 233.7152 451.4845 Tm [(For my par)18(ents, Len & Grace)]TJ EMC ET q 1 0 0 1 47.58 40.02 cm /GS1 gs /Fm1 Do Q endstream endobj 47086 0 obj <> endobj 47087 0 obj <>stream q /Fm0 Do Q BT /Span <>BDC /GS0 gs /T1_0 1 Tf 24 0 0 24 160.4586 542.5719 Tm [(Ad)15(v)20(anced Pr)20(ogramming )]TJ EMC /Span <>BDC ( )Tj EMC /Span <>BDC -0.24 -1.083 Td (in the UNIX)Tj EMC /Span <>BDC /T1_1 1 Tf 9.6 0 0 9.6 282.7029 527.5219 Tm (\256)Tj EMC /Span <>BDC /T1_0 1 Tf 24 0 0 24 290.3828 516.5719 Tm [( En)40(vir)20(onment)]TJ EMC /Span <>BDC /T1_2 1 Tf -2.468 -1.375 Td (Third Edition)Tj EMC ET q 1 0 0 1 47.58 40.02 cm /GS1 gs /Fm1 Do Q endstream endobj 47088 0 obj <> endobj 47089 0 obj <>stream q /Fm0 Do Q BT /Span <>BDC /GS0 gs /T1_0 1 Tf 14 0 0 14 105 609.192 Tm [(Praise f)20(or the Fir)15(st Edition)]TJ EMC /Span <>BDC /T1_1 1 Tf 10 0 0 10 105 568.892 Tm (\223)Tj EMC ET /Span <>BDC BT /T1_2 1 Tf 0.205 Tw 10 0 0 10 110 568.892 Tm [(Advanced Pr)18(ogramming in the UNIX)]TJ ET BT /Span <>BDC /T1_2 1 Tf 10 0 0 10 271.5401 568.892 Tm ( )Tj EMC ET EMC BT /Span <>BDC /T1_2 1 Tf 0 Tw 4 0 0 4 271.9589 573.4919 Tm (\256)Tj EMC /Span <>BDC 0.205 Tw 10 0 0 10 274.9469 568.892 Tm [( Envir)18(onment )]TJ EMC /Span <>BDC /T1_1 1 Tf (is a must-have for any serious C )Tj EMC ET /Span <>BDC BT /Span <>BDC /T1_1 1 Tf 0.063 Tw 10 0 0 10 105 555.892 Tm ( )Tj EMC ET BT /T1_1 1 Tf 10 0 0 10 105 555.892 Tm [(pr)18(ogrammer who works under UNIX. Its depth, thor)18(oughness, and clarity of explana)]TJ ET EMC BT /Span <>BDC /T1_1 1 Tf 0 Tw 10 0 0 10 488.67 555.892 Tm (-)Tj EMC /Span <>BDC -38.367 -1.3 Td [(tion ar)18(e unmatched.\224)]TJ EMC /Span <>BDC 0 -2 TD (\227)Tj EMC /Span <>BDC /T1_2 1 Tf (UniForum Monthly)Tj EMC /Span <>BDC /T1_1 1 Tf 0.046 Tw 0 -3.9 TD [(\223Numer)18(ous )1(r)18(eaders )1(r)18(ecommended )]TJ EMC ET /Span <>BDC BT /T1_2 1 Tf 10 0 0 10 262.7166 483.892 Tm [(Advanced )1(Pr)18(ogramming )1(in )1(the )1(UNIX)]TJ ET BT /Span <>BDC /T1_2 1 Tf 10 0 0 10 417.8568 483.892 Tm ( )Tj EMC ET EMC BT /Span <>BDC /T1_2 1 Tf 0 Tw 4 0 0 4 418.2917 488.492 Tm (\256)Tj EMC /Span <>BDC 0.046 Tw 10 0 0 10 421.2797 483.892 Tm [( )1(Envir)18(onment )]TJ EMC /Span <>BDC /T1_1 1 Tf 0 Tw (by )Tj EMC /Span <>BDC -0.019 Tw -31.628 -1.2 Td [(W)92(. Richar)18(d Stevens \(Addison-W)92(esley\), and I\222m glad they did; I hadn\222t even hear)18(d of this )]TJ EMC /Span <>BDC 0 Tw 38.7 0 Td ( )Tj EMC /Span <>BDC 0.157 Tw -38.7 -1.2 Td [(book, and it\222s been out since 1992. I just got my hands on a copy)111(, and the \037rst few )]TJ EMC ET /Span <>BDC BT /T1_1 1 Tf 0 Tw 10 0 0 10 105 447.892 Tm (chapters)Tj ET BT /Span <>BDC /T1_1 1 Tf 10 0 0 10 142.51 447.892 Tm ( )Tj EMC ET BT /T1_1 1 Tf 10 0 0 10 145.01 447.892 Tm (have been fascinating.\224)Tj ET EMC BT /Span <>BDC /T1_1 1 Tf 10 0 0 10 105 427.892 Tm (\227)Tj EMC /Span <>BDC /T1_2 1 Tf [(Open Systems T)111(oday)]TJ EMC /Span <>BDC /T1_1 1 Tf 0.15 Tw T* [(\223A)55( much mor)18(e r)18(eadable and detailed tr)18(eatment of [UNIX internals] can be found in )]TJ EMC ET /Span <>BDC BT /T1_2 1 Tf 0.252 Tw 10 0 0 10 105 376.892 Tm [(Advanced Pr)18(ogramming in the UNIX)]TJ ET BT /Span <>BDC /T1_2 1 Tf 10 0 0 10 268.42 376.892 Tm ( )Tj EMC ET EMC BT /Span <>BDC /T1_2 1 Tf 0 Tw 4 0 0 4 268.8539 381.492 Tm (\256)Tj EMC /Span <>BDC 0.252 Tw 10 0 0 10 271.8418 376.892 Tm [( Envir)18(onment )]TJ EMC /Span <>BDC /T1_1 1 Tf 6.377 0 Td [(by W)92(. Richar)18(d Stevens \(Addison-)]TJ EMC /Span <>BDC 0.026 Tw -23.061 -1.2 Td [(W)92(esley\). This book )1(includes lots of r)18(ealistic )1(examples, and I \037nd it quite helpful )1(when I )]TJ EMC /Span <>BDC 0 Tw 0 -1.2 TD [(have systems pr)18(ogramming tasks to do.\224)]TJ EMC /Span <>BDC 0 -2 TD (\227)Tj EMC /Span <>BDC /T1_2 1 Tf (RS/Magazine)Tj EMC ET q 1 0 0 1 47.58 40.02 cm /GS1 gs /Fm1 Do Q endstream endobj 47090 0 obj <> endobj 47091 0 obj <>stream q /Fm0 Do Q q /GS0 gs /Fm1 Do Q BT /Span <>BDC /GS1 gs /T1_0 1 Tf -0.026 Tc 14 0 0 14 105 609.192 Tm [(Praise f)20(or )]TJ EMC ET /Span <>BDC BT /T1_1 1 Tf 14 0 0 14 169.1926 609.192 Tm [(Ad)15(v)20(anced Pr)20(ogramming in the UNIX)]TJ ET BT /Span <>BDC /T1_1 1 Tf 14 0 0 14 397.1542 609.192 Tm [( )153( )]TJ EMC ET EMC BT /Span <>BDC /T1_2 1 Tf 0 Tc 5.6 0 0 5.6 399.2553 615.4919 Tm (\256)Tj EMC /Span <>BDC /T1_1 1 Tf -0.026 Tc 14 0 0 14 403.5897 609.192 Tm [( En)40(vir)20(onment,)]TJ EMC /Span <>BDC /T1_0 1 Tf 0 Tc 6.296 0 Td ( )Tj EMC /Span <>BDC /T1_1 1 Tf -27.624 -1.143 Td (Second Edition)Tj EMC /Span <>BDC /T1_3 1 Tf 0.133 Tw 10 0 0 10 105 552.892 Tm [(\223Stephen )1(Rago\222s update )1(is a )1(long )1(over)18(due )1(bene\037t )1(to the )1(community )1(of )1(pr)18(ofessionals )]TJ EMC /Span <>BDC 0.063 Tw 0 -1.3 TD [(using the versatile family of UNIX and UNIX-like operating envir)18(onments. It r)18(emoves )]TJ EMC /Span <>BDC 0.027 Tw T* [(obsolescence and includes newer developments. It also thor)18(oughly updates the context )]TJ EMC /Span <>BDC 0.062 Tw T* [(of all topics, examples, and applications to r)18(ecent r)18(eleases of popular implementations )]TJ EMC /Span <>BDC 0.017 Tw T* [(of UNIX and UNIX-like envir)18(onments. )37(And yet, it does all this while r)18(etaining the style )]TJ EMC /Span <>BDC 0 Tw T* (and taste of the original classic.\224)Tj EMC /Span <>BDC 0 -2 TD [(\227Mukesh Kacker)74(, cofounder and former CT)18(O of Pr)18(onto Networks, Inc.)]TJ EMC /Span <>BDC 0 -3.9 TD [(\223One of the essential classics of UNIX pr)18(ogramming.\224)]TJ EMC /Span <>BDC 0 -2 TD (\227Eric S. Raymond, author of )Tj EMC /Span <>BDC /T1_4 1 Tf [(The Art of UNIX Pr)18(ogramming)]TJ EMC /Span <>BDC /T1_3 1 Tf 0.183 Tw 0 -3.9 TD [(\223This is the de\037nitive )1(r)18(efer)18(ence )1(book for )1(any serious )1(or pr)18(ofessional )1(UNIX systems )]TJ EMC /Span <>BDC 0.148 Tw 0 -1.2 TD [(pr)18(ogrammer)74(. Rago has updated )1(and extended )1(the )1(classic )1(Stevens )1(text while )1(keeping )]TJ EMC ET /Span <>BDC BT /T1_3 1 Tf 0.116 Tw 10 0 0 10 105 345.892 Tm [(tr)8(ue)]TJ ET BT /Span <>BDC /T1_3 1 Tf 10 0 0 10 122.95 345.892 Tm ( )Tj EMC ET BT /T1_3 1 Tf 10 0 0 10 126.61 345.892 Tm [(to the original. The )37(APIs ar)18(e illuminated by clear examples of their use. He also )]TJ ET EMC BT /Span <>BDC /T1_3 1 Tf 0.013 Tw 10 0 0 10 105 333.892 Tm [(mentions many of the pitfalls to look out for when pr)18(ogramming acr)18(oss dif)18(fer)18(ent UNIX )]TJ EMC /Span <>BDC 0.244 Tw T* [(system implementations and points out how to avoid these pitfalls using \ r)18(elevant )]TJ EMC /Span <>BDC 0.275 Tw T* [(standar)18(ds such as POSIX 1003.1, 2004 edition, and the Single UNIX Speci\037cati\ on, )]TJ EMC ET /Span <>BDC BT /T1_3 1 Tf 0 Tw 10 0 0 10 105 297.892 Tm [(V)111(ersion)]TJ ET BT /Span <>BDC /T1_3 1 Tf 10 0 0 10 138.28 297.892 Tm ( )Tj EMC ET BT /T1_3 1 Tf 10 0 0 10 140.78 297.892 Tm (3.\224)Tj ET EMC BT /Span <>BDC /T1_3 1 Tf 10 0 0 10 105 277.892 Tm [(\227Andr)18(ew Josey)111(, Dir)18(ector)74(, Certi\037cation, The Open Gr)18(oup, and )]TJ EMC /Span <>BDC ( )Tj EMC /Span <>BDC T* [(Chair of the POSIX 1003.1 W)92(orking Gr)18(oup)]TJ EMC /Span <>BDC 0 -3.9 TD (\223)Tj EMC ET /Span <>BDC BT /T1_4 1 Tf 0.371 Tw 10 0 0 10 110 226.892 Tm [(Advanced Pr)18(ogramming in the UNIX)]TJ ET BT /Span <>BDC /T1_4 1 Tf 10 0 0 10 278.1801 226.892 Tm ( )Tj EMC ET EMC BT /Span <>BDC /T1_4 1 Tf 0 Tw 4 0 0 4 278.5912 231.492 Tm (\256)Tj EMC /Span <>BDC 0.371 Tw 10 0 0 10 281.5792 226.892 Tm [( Envir)18(onment, Second Edition, )]TJ EMC /Span <>BDC /T1_3 1 Tf 14.207 0 Td (is an essential )Tj EMC /Span <>BDC 0 Tw 6.835 0 Td ( )Tj EMC /Span <>BDC 0.087 Tw -38.7 -1.2 Td [(r)18(efer)18(ence )1(for )1(anyone )1(writing )1(pr)18(ograms )1(for )1(a )1(UNIX )1(system. )1(It\222s )1(the )1(\037rst )1(book )1(I )1(turn )1(to )]TJ EMC /Span <>BDC 0.126 Tw 0 -1.2 TD [(when I want to understand or r)18(e-learn any of the various system interfaces. Stephen )]TJ EMC /Span <>BDC 0.004 Tw T* [(Rago has successfully )1(r)18(evised this )1(book to incorporate )1(newer operating systems )1(such as )]TJ EMC /Span <>BDC 0.071 Tw T* [(GNU/Linux and )37(Apple\222s OS X while keeping tr)8(ue to the \037rst edition in terms of both )]TJ EMC /Span <>BDC 0 Tw T* [(r)18(eadability and usefulness. It will always have a place right next to my \ computer)75(.\224)]TJ EMC /Span <>BDC 0 -2 TD [(\227Dr)74(. Benjamin Kuperman, Swarthmor)18(e College)]TJ EMC ET q 1 0 0 1 47.58 40.02 cm /GS2 gs /Fm2 Do Q endstream endobj 47092 0 obj <> endobj 47093 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (993)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (VSTATUS)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(678)]TJ /TT0 1 Tf -4.617 -1.25 Td (VSTOP)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(678)]TJ /TT0 1 Tf -3.417 -1.25 Td (VSUSP)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(678)]TJ /TT0 1 Tf -3.417 -1.25 Td (vsyslog)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(472)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(472)]TJ /TT0 1 Tf -1.35 -1.25 Td (VT0)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(691)]TJ /TT0 1 Tf -2.217 -1.25 Td (VT1)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(691)]TJ /TT0 1 Tf -2.217 -1.25 Td (VTDLY)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(684, 689, 691)]TJ /TT0 1 Tf -3.417 -1.25 Td (VTIME)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(703)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (705, 707)Tj /TT0 1 Tf -10.063 -1.25 Td (VWERASE)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(678)]TJ /TT0 1 Tf -4.617 -1.25 Td (vwprintf)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -5.217 -1.25 Td (vwrite)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(525)]TJ /TT0 1 Tf -4.017 -4.125 Td (wait)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(231)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (232, 237)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (246, 249, 255, 264,)Tj -10.907 -1.25 Td (267, 280, 282)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (283, 301, 317, 328)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (329, 331,)Tj -14.333 -1.25 Td (333)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (335, 351, 368, 371)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (372, 451, 471, 499,)Tj -10.333 -1.25 Td (546, 588, 936)Tj -1.35 -1.25 Td [(de\336nition of,)-500(238)]TJ -0.092 Tc -1.35 -1.25 Td (Wa)Tj 0 Tc 1.408 0 Td [(it, J. W)92(., )-250(xxxii)]TJ /TT0 1 Tf -1.408 -1.25 Td (wait3)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(245)]TJ -2.067 -1.25 Td [(de\336nition of,)-500(245)]TJ /TT0 1 Tf -1.35 -1.25 Td (wait4)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(245)]TJ -2.067 -1.25 Td [(de\336nition of,)-500(245)]TJ /TT0 1 Tf -1.35 -1.25 Td (WAIT_CHILD)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(247,)-250(362, 491, 532, 539, 577,)]TJ -3.717 -1.25 Td (898, 934)Tj -1.35 -1.25 Td [(de\336nition of,)-500(363, 540)]TJ /TT0 1 Tf -1.35 -1.25 Td (waitid)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(244)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (245, 283, 451)Tj -9.29 -1.25 Td [(de\336nition of,)-500(244)]TJ /TT0 1 Tf -1.35 -1.25 Td (WAIT_PARENT)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(247)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (248, 362, 491, 498,)Tj -10.94 -1.25 Td (532, 539, 577, 898)Tj -1.35 -1.25 Td [(de\336nition of,)-500(363, 540)]TJ /TT0 1 Tf -1.35 -1.25 Td (waitpid)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(1)55(1)]TJ 5.485 0.09 Td (\320)Tj 0.583 -0.09 Td (13, 19, 23, 237)Tj 6.083 0.09 Td (\320)Tj 0.583 -0.09 Td (245, 254,)Tj -14.652 -1.25 Td (261, 265)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (267, 282, 285, 294, 301, 315, 329, 331,)Tj -4.166 -1.25 Td (370)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (371, 451, 498, 538, 545)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (546, 587)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (588,)Tj -16.5 -1.25 Td (618, 935, 937, 939)Tj -1.35 -1.25 Td [(de\336nition of,)-500(238)]TJ /TT0 1 Tf -1.35 -1.25 Td (wall)Tj /T1_0 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(723)]TJ /TT0 1 Tf -2.817 -1.25 Td (wc)Tj /T1_0 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(1)55(12)]TJ /TT0 1 Tf -1.617 -1.25 Td ()Tj /T1_0 1 Tf 5.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7, 144)Tj /TT0 1 Tf -10.039 -1.25 Td (wchar_t)Tj /T1_0 1 Tf 4.617 0 Td [(data type,)-500(59)]TJ /TT0 1 Tf -4.617 -1.25 Td (WCONTINUED)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(242,)-250(244)]TJ /TT0 1 Tf -6.417 -1.25 Td (WCOREDUMP)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(239)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (240)Tj /TT0 1 Tf -12.44 -1.25 Td (wcrtomb)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -4.617 -1.25 Td (wcsftime)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -5.217 -1.25 Td (wcsrtombs)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -5.817 -1.25 Td (wcstombs)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -5.217 -1.25 Td (wctomb)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -4.017 -1.25 Td ()Tj /T1_0 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7)Tj -0.092 Tc -10.639 -1.25 Td (We)Tj 0 Tc 1.387 0 Td [(eks, M. S.,)-500(206, 949)]TJ -0.092 Tc -1.387 -1.25 Td (We)Tj 0 Tc 1.387 0 Td [(i, J.,)-500(65, 953)]TJ -0.092 Tc -1.387 -1.25 Td (We)Tj 0 Tc 1.387 0 Td [(inber)18(ger)]TJ 0.25 Tc 3.638 0 Td [(,P)379(.J)]TJ 0 Tc 1.808 0 Td [(., )-250(76,)-250(262, 743, 947, 953)]TJ -0.092 Tc -6.833 -1.25 Td (We)Tj 0 Tc 1.387 0 Td [(instock, C. B.,)-500(953)]TJ 24.613 65.375 Td (WERASE terminal character)Tj 0.5 Tc 12.431 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 682, 685)Tj 5.083 0.09 Td (\320)Tj 0.583 -0.09 Td (687,)Tj -16.647 -1.25 Td (703)Tj /TT0 1 Tf -2.7 -1.25 Td (WEXITED)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(244)]TJ /TT0 1 Tf -4.617 -1.25 Td (WEXITSTATUS)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(239)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (240)Tj /TT0 1 Tf -13.64 -1.25 Td (who)Tj /T1_0 1 Tf 2.217 0 Td [(pr)18(ogram, )-250(187,)-250(734)]TJ /TT0 1 Tf -2.217 -1.25 Td (WIFCONTINUED)Tj /T1_0 1 Tf 7.617 0 Td [(function, )-250(239)]TJ /TT0 1 Tf -7.617 -1.25 Td (WIFEXITED)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(239)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (240)Tj /TT0 1 Tf -12.44 -1.25 Td (WIFSIGNALED)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(239)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (240)Tj /TT0 1 Tf -13.64 -1.25 Td (WIFSTOPPED)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(239)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (240, 242)Tj -0.055 Tc -13.04 -1.25 Td (Wi)Tj 0 Tc 1.236 0 Td [(lliams, T)74(., )-250(310,)-250(953)]TJ -0.055 Tc -1.236 -1.25 Td (Wi)Tj 0 Tc 1.236 0 Td [(lson, G. A.,)-500(xxxii)]TJ -1.236 -1.25 Td (window size)Tj 1.35 -1.25 Td [(pseudo terminal,)-500(741)]TJ 0 -1.25 TD [(terminal, )-250(31)55(1, 322, 710)]TJ 10.025 0.09 Td (\320)Tj 0.583 -0.09 Td (712, 718, 727, 741)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (742)Tj /TT0 1 Tf -20.125 -1.25 Td (winsize)Tj /T1_0 1 Tf 4.617 0 Td [(str)8(uctur)18(e, )-250(31)55(1, 710)]TJ 8.247 0.09 Td (\320)Tj 0.583 -0.09 Td [(71)55(1, 727, 730, 732,)]TJ -10.747 -1.25 Td (742, 897, 944)Tj -0.055 Tc -2.7 -1.25 Td (Wi)Tj 0 Tc 1.236 0 Td [(nterbottom, P)129(., )-250(229,)-250(952)]TJ /TT0 1 Tf -1.236 -1.25 Td (WNOHANG)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(242,)-250(244)]TJ /TT0 1 Tf -4.617 -1.25 Td (WNOWAIT)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(242,)-250(244)]TJ /TT0 1 Tf -4.617 -1.25 Td (W_OK)Tj /T1_0 1 Tf 2.817 0 Td [(constant, )-250(102)]TJ -0.092 Tc -2.817 -1.25 Td (Wo)Tj 0 Tc 1.454 0 Td [(lf)18(f, R.,)-500(xxxii)]TJ -0.092 Tc -1.454 -1.25 Td (Wo)Tj 0 Tc 1.454 0 Td [(lf)18(f, S.,)-500(xxxii)]TJ /TT0 1 Tf -1.454 -1.25 Td (WORD_BIT)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(38)]TJ /TT0 1 Tf -5.217 -1.25 Td (wordexp)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -4.617 -1.25 Td ()Tj /T1_0 1 Tf 7.017 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj /TT0 1 Tf -11.239 -1.25 Td (worker_thread)Tj /T1_0 1 Tf 8.217 0 Td [(str)8(uctur)18(e, )-250(812)]TJ 6.302 0.09 Td (\320)Tj 0.583 -0.09 Td (813, 828)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (829)Tj -19.269 -1.25 Td [(working dir)18(ectory)111(,)]TJ /T1_2 1 Tf 8.674 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td [(curr)18(ent dir)18(ectory)]TJ -10.091 -1.25 Td [(worm, Internet,)-500(153)]TJ /TT0 1 Tf T* (wprintf)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(452)]TJ -0.074 Tc -4.617 -1.25 Td (Wr)Tj 0 Tc 1.321 0 Td [(ight, G. R.,)-500(xxxii)]TJ -1.321 -1.25 Td (write)Tj 1.35 -1.25 Td [(delayed, )-250(81)]TJ T* (gather)Tj 0.5 Tc 2.764 0 Td (,5)Tj 0 Tc 1.25 0 Td (21, 644)Tj -4.014 -1.25 Td [(synchr)18(onous, )-250(63,)-250(86)]TJ 8.999 0.09 Td (\320)Tj 0.583 -0.09 Td (87)Tj /TT0 1 Tf -10.932 -1.25 Td (write)Tj /T1_0 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(723)]TJ /TT0 1 Tf -3.417 -1.25 Td (write)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(8)]TJ 5.04 0.09 Td (\320)Tj 0.583 -0.09 Td (10, 20)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (21, 59, 61, 63)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (64,)Tj -15.673 -1.25 Td (68)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (69, 72, 77)Tj 4.083 0.09 Td (\320)Tj 0.583 -0.09 Td (79, 86)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (88, 90, 125, 145)Tj 6.583 0.09 Td (\320)Tj 0.583 -0.09 Td (146,)Tj -16.666 -1.25 Td (156, 167, 174, 230)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (231, 234, 247, 328)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (329,)Tj -16.333 -1.25 Td (331, 342)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (343, 378, 382, 451, 474, 482)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (484,)Tj -16.333 -1.25 Td (491, 495)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (498, 502, 505, 509, 513, 517,)Tj -4.166 -1.25 Td (522)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (526, 530)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (532, 537)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (538, 540, 549)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (551,)Tj -16.666 -1.25 Td (553, 555, 560, 565, 587, 590, 592, 610, 614, 620,)Tj T* (643, 654)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (655, 672, 752, 760, 773, 810, 819, 826,)Tj -4.166 -1.25 Td (836, 907)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (908, 921, 925, 934, 936)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (937, 945)Tj -15.683 -1.25 Td [(de\336nition of,)-500(72)]TJ /TT0 1 Tf -1.35 -1.25 Td (write_lock)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(489,)-250(493, 498, 818, 897)]TJ /TT0 1 Tf -6.417 -1.25 Td (writen)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(523)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (524, 644, 732)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (733, 738,)Tj -14.107 -1.25 Td (810)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(81)55(1, 824)]TJ 3.528 0.09 Td (\320)Tj 0.583 -0.09 Td (827, 836, 896)Tj -7.628 -1.25 Td [(de\336nition of,)-500(523)]TJ 7.775 0.09 Td (\320)Tj 0.583 -0.09 Td (524)Tj /TT0 1 Tf -9.709 -1.25 Td (writev)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(41,)-250(43, 329, 451, 481, 521)]TJ 15.04 0.09 Td (\320)Tj 0.583 -0.09 Td (523,)Tj -16.94 -1.25 Td (531)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(532, 592, 61)55(1, 644, 655, 660, 752, 771, 773,)]TJ -2.167 -1.25 Td (832, 836)Tj -1.35 -1.25 Td [(de\336nition of,)-500(521)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47094 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (xxxii)Tj /T1_1 1 Tf 4.166 0 Td [(Pr)18(eface )-250(to )-250(the )-250(First )-250(Edition)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(Ac)20(kno)15(wledgments)]TJ /T1_1 1 Tf 3.6 -2.4 Td [(Once )-16(again )-16(I )-16(am )-16(indebted )-16(to )-16(my )-16(family )-16(for )-16(their )-16(love, )-16(support, )-16(and )-16(many )-16(lost )-16(weekends)]TJ 0 -1.2 TD [(over )-74(the )-74(past )-74(year )-74(and )-74(a )-74(half.)]TJ -0.074 Tc 13.821 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(iting )-74(a )-74(book )-74(is, )-74(in )-74(many )-74(ways, )-74(a )-74(family )-74(af)17(fair)]TJ 0.5742 Tc 20.201 0 Td (.T)Tj 0 Tc 1.437 0 Td (hank)Tj -36.78 -1.2 Td (you Sally)Tj 0.25 Tc 4.007 0 Td (,B)Tj 0 Tc 1.111 0 Td (ill, Ellen, and David.)Tj -3.318 -1.2 Td [(I)-298(am)-298(especially )-48(grateful )-48(to )-48(Brian )-48(Kernighan )-48(for )-48(his )-48(help )-48(in )-48(the )-48(book.)-548(His )-48(numer)22(ous)]TJ -1.8 -1.2 Td [(thor)18(ough )-204(r)18(eviews )-204(of )-204(the )-204(entir)]TJ 0.4539 Tc 13.704 0 Td (em)Tj 0 Tc 1.816 0 Td [(anuscript )-204(and )-204(his )-204(gentle )-204(pr)18(odding )-204(for )-204(better )-204(pr)18(ose)]TJ -15.52 -1.2 Td [(hopefully )-274(show )-274(in )-274(the )-274(\336nal )-274(r)19(esult. )-524(Steve)-524(Rago )-274(was )-274(also )-274(a )-274(gr)18(eat )-274(r)19(esour)18(ce, )-274(both )-274(in)]TJ -0.018 Tc -0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(viewing )-109(the )-109(entir)]TJ 0.3594 Tc 7.759 0 Td (em)Tj 0 Tc 1.721 0 Td [(anuscript )-109(and )-109(answering )-109(many )-109(questions )-109(about )-109(the )-109(details )-109(and)]TJ -10.336 -1.2 Td [(history )-211(of )-211(System )-211(V)]TJ 0.7109 Tc 9.168 0 Td (.M)Tj 0.4609 Tc 1.907 0 Td (yt)Tj 0 Tc 1.343 0 Td [(hanks )-211(to )-211(the )-211(other )-211(technical )-211(r)18(eviewers )-211(used )-211(by )-211(Addison-)]TJ -0.092 Tc -12.418 -1.2 Td (We)Tj 0 Tc 1.387 0 Td (sley)Tj 0.5604 Tc 1.639 0 Td (,w)Tj 0 Tc 1.644 0 Td [(ho )-310(pr)18(ovided )-310(valuable )-310(comments )-310(on )-310(various )-310(portions )-310(of )-310(the )-310(manuscript:)]TJ -4.67 -1.2 Td [(Maury )-111(Bach, )-111(Mark )-111(Ellis, )-111(Jef)]TJ 0.3608 Tc 12.513 0 Td (fG)Tj 0 Tc 1.457 0 Td [(itlin, )-111(Peter )-111(Honeyman, )-111(John )-111(Linderman, )-111(Doug )-111(McIlr)19(oy)111(,)]TJ -13.969 -1.2 Td [(Evi Nemeth, Craig Partridge, Dave Pr)18(esotto, Gary W)55(ilson, and Gary W)74(right.)]TJ 1.8 -1.2 Td [(Keith )-145(Bostic )-145(and )-145(Kirk )-145(McKusick )-145(at )-145(the )-145(U.C. )-145(Berkeley )-145(CSRG )-145(pr)18(ovided )-145(an )-145(account)]TJ -1.8 -1.2 Td [(that )-150(was )-150(used )-150(to )-150(test )-150(the )-150(examples )-150(on )-150(the )-150(latest )-150(BSD )-150(system.)-650(\(Many )-150(thanks )-150(to )-150(Peter)]TJ T* [(Salus )-39(too.\))-539(Sam )-39(Natar)18(os )-39(and )-39(Joachim )-39(Sacksen )-39(at )-39(UHC )-39(pr)22(ovided )-39(the )-39(copy )-39(of )-39(SVR4 )-39(used)]TJ T* (to test the examples.)Tj -0.09 Tc 9.487 0 Td [(Tr )88(e)]TJ 0 Tc 1.379 0 Td (nt Hein helped obtain the alpha and beta copies of BSD/386.)Tj -9.066 -1.2 Td [(Other )-138(friends )-138(have )-138(helped )-138(in )-138(many )-138(small, )-138(but )-138(signi\336cant )-138(ways )-138(over )-138(the )-138(past )-138(few)]TJ -1.8 -1.2 Td [(years: )-12(Paul )-12(Lucchina, )-12(Joe )-12(Godsil, )-12(Jim )-12(Hogue, )-12(Ed )-12(T)92(ankus, )-12(and )-12(Gary )-12(W)75(right. )-262(My)-262(editor )-12(at)]TJ 0 -1.2 Td [(Addison-W)92(esley)]TJ 0.261 Tc 7.202 0 Td (,J)Tj 0 Tc 0.844 0 Td [(ohn )-11(W)92(ait, )-11(has )-11(been )-11(a )-11(gr)18(eat )-11(friend )-11(thr)18(ough )-11(it )-11(all.)-511(He )-11(never )-11(complained)]TJ -8.046 -1.2 Td [(when )-49(the )-49(due )-49(date )-49(slipped )-49(and )-49(the )-49(page )-49(count )-49(kept )-49(incr)17(easing. )-299(A)-299(special )-49(thanks )-49(to )-49(the)]TJ T* [(National )-137(Optical )-137(Astr)18(onomy )-137(Observatories)]TJ 19.837 0.04 Td (\()Tj 0.333 -0.04 Td (NOAO)Tj 3.181 0.04 Td (\))Tj 0.3875 Tc 0.333 -0.04 Td (,e)Tj 0 Tc 1.116 0 Td [(specially )-137(Sidney )-137(W)91(olf)18(f, )-137(Richar)18(d)]TJ -0.092 Tc -24.801 -1.2 Td (Wo)Tj 0 Tc 1.454 0 Td [(lf)18(f, and Steve Grandi, for pr)18(oviding computer time.)]TJ /T1_2 1 Tf 0.346 -1.2 Td (Real)Tj /T1_1 1 Tf 2.206 0 Td [(Unix )-178(books )-178(ar)]TJ 0.4281 Tc 6.525 0 Td (ew)Tj 0 Tc 1.741 0 Td [(ritten )-178(using )-178(tr)18(of)]TJ 0.4281 Tc 7.275 0 Td (fa)Tj 0 Tc 1.261 0 Td [(nd )-178(this )-178(book )-178(follows )-178(that )-178(time-honor)18(ed)]TJ -20.808 -1.2 Td [(tradition. )-327(Camera-r)18(eady )-77(copy )-77(of )-77(the )-77(book )-77(was )-77(pr)19(oduced )-77(by )-77(the )-77(author )-77(using )-77(the )-77(gr)20(of)18(f)]TJ -0 -1.2 Td [(package )-303(written )-303(by )-303(James )-303(Clark.)-804(Many )-303(thanks )-303(to )-303(James )-303(Clark )-303(for )-303(pr)18(oviding )-303(this)]TJ T* [(excellent )-52(system )-52(and )-52(for )-52(his )-52(rapid )-52(r)18(esponse )-52(to )-52(bug )-52(\336xes.)-557(Per)18(haps )-52(someday )-52(I )-52(will )-52(r)16(eally)]TJ -0 -1.2 Td [(understand tr)18(of)]TJ 0.25 Tc 6.927 0 Td (ff)Tj 0 Tc 0.916 0 Td (ooter traps.)Tj 0.4251 Tc -6.043 -1.2 Td (Iw)Tj 0 Tc 1.596 0 Td [(elcome )-175(electr)18(onic )-175(mail )-175(fr)18(om )-175(any )-175(r)18(eaders )-175(with )-175(comments, )-175(suggestions, )-175(or )-175(bug)]TJ -3.396 -1.2 Td (\336xes.)Tj /T1_2 1 Tf -0.111 Tc 0 -3.6 TD (Tu)Tj 0 Tc 1.056 0 Td (cson, Arizona)Tj /T1_1 1 Tf -0.092 Tc 29.433 0 Td [(W. )-184(R)]TJ 0 Tc 2.076 0 Td (ichar)Tj 0.25 Tc 2.194 0 Td (dS)Tj 0 Tc 1.386 0 Td (tevens)Tj /T1_2 1 Tf -36.145 -1.2 Td (April 1992)Tj /TT1 1 Tf 27.6 0 Td (rstevens@kohala.com)Tj -7.2 -1.2 Td (http://www.kohala.com/)Tj 13.2 -0.27 Td (\367)Tj 0.6 0.27 Td (rstevens)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47095 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (836)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(725 )-4800(/*)]TJ 0 -1.189 TD (726 )Tj 7.8 0 Td [(*)-600(Write the headers first.)-1200(Then send the file.)]TJ -7.8 -1.189 Td (727 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(728 )-4800(iov[0].iov_base)]TJ 0.6 Tc 16.8 0 Td (=h)Tj 0 Tc 1.8 0 Td (buf;)Tj -18.6 -1.189 Td [(729 )-4800(iov[0].iov_len)]TJ 0.6 Tc 16.2 0 Td (=h)Tj 0 Tc 1.8 0 Td (len;)Tj -18 -1.189 Td [(730 )-4800(iov[1].iov_base)]TJ 0.6 Tc 16.8 0 Td (=i)Tj 0 Tc 1.8 0 Td (buf;)Tj -18.6 -1.189 Td [(731 )-4800(iov[1].iov_len)]TJ 0.6 Tc 16.2 0 Td (=i)Tj 0 Tc 1.8 0 Td (len;)Tj -18 -1.189 Td [(732 )-4800(if)-600(\(writev\(sockfd, iov, 2\) != hlen + ilen\) {)]TJ T* (733 )Tj 9.6 0 Td [(log_ret\("can\325t)-600(write to printer"\);)]TJ -9.6 -1.189 Td (734 )Tj 9.6 0 Td [(goto)-600(defer;)]TJ -9.6 -1.189 Td [(735 )-4800(})]TJ 0 -1.902 TD [(736 )-4800(if)-600(\(jp->req.flags & PR_TEXT\) {)]TJ 0 -1.189 TD (737 )Tj 9.6 0 Td (/*)Tj -9.6 -1.189 Td (738 )Tj 10.2 0 Td [(*)-600(Hack: allow PostScript to be printed as plain text.)]TJ -10.2 -1.189 Td (739 )Tj 10.2 0 Td (*/)Tj -10.2 -1.189 Td (740 )Tj 9.6 0 Td [(if)-600(\(write\(sockfd, "\\b", 1\) != 1\) {)]TJ -9.6 -1.189 Td (741 )Tj 12 0 Td [(log_ret\("can\325t)-600(write to printer"\);)]TJ -12 -1.189 Td (742 )Tj 12 0 Td [(goto)-600(defer;)]TJ -12 -1.189 Td (743 )Tj 9.6 0 Td (})Tj -9.6 -1.189 Td [(744 )-4800(})]TJ 0 -1.902 TD [(745 )-4800(while)-600(\(\(nr = read\(fd, buf, IOBUFSZ\)\) > 0\) {)]TJ 0 -1.189 TD (746 )Tj 9.6 0 Td [(if)-600(\(\(nw = writen\(sockfd, buf, nr\)\) != nr\) {)]TJ -9.6 -1.189 Td (747 )Tj 12 0 Td [(if)-600(\(nw < 0\))]TJ -12 -1.189 Td (748 )Tj 13.2 0 Td [(log_ret\("can\325t)-600(write to printer"\);)]TJ -13.2 -1.189 Td (749 )Tj 12 0 Td (else)Tj -12 -1.189 Td (750 )Tj 13.2 0 Td [(log_msg\("short)-600(write \(%d/%d\) to printer", nw, nr\);)]TJ -13.2 -1.189 Td (751 )Tj 12 0 Td [(goto)-600(defer;)]TJ -12 -1.189 Td (752 )Tj 9.6 0 Td (})Tj -9.6 -1.189 Td [(753 )-4800(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3422.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 318.2198 Tm [([725 )167(\320 )167(735])]TJ -0.092 Tc 5 0 Td [(We )-235(s)]TJ 0 Tc 2.112 0 Td [(et )-51(the )-51(\336rst )-51(element )-51(of )-51(the)]TJ /TT0 1 Tf 11.535 0 Td (iovec)Tj /T1_1 1 Tf 3.301 0 Td [(array )-51(to )-51(r)18(efer )-51(to )-51(the )-51(HTTP )-51(header )-51(and)]TJ -16.949 -1.2 Td [(the )-47(second )-47(element )-47(to )-47(r)18(efer )-47(to )-47(the )-47(IPP )-47(header)]TJ 0.5467 Tc 20.077 0 Td (.T)Tj 0 Tc 1.41 0 Td [(hen )-47(we )-47(use)]TJ /TT0 1 Tf 5.352 0 Td (writev)Tj /T1_1 1 Tf 3.897 0 Td [(to )-47(send)]TJ -30.735 -1.2 Td [(both )-253(headers )-253(to )-253(the )-253(printer)]TJ 0.7534 Tc 12.745 0 Td (.I)Tj 0.5034 Tc 1.34 0 Td (ft)Tj 0 Tc 1.162 0 Td [(he )-253(write )-253(fails )-253(or )-253(we )-253(write )-253(less )-253(than )-253(we)]TJ -0.018 Tc -15.248 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quested, )-139(we )-139(log )-139(a )-139(message )-139(and )-139(jump )-139(to)]TJ /TT0 1 Tf 18.679 0 Td (defer)Tj /T1_1 1 Tf 0.3888 Tc (,w)Tj 0 Tc 4.473 0 Td [(her)18(e)-389(we)-389(will )-139(clean )-139(up)]TJ -24.007 -1.2 Td (and delay befor)Tj 0.25 Tc 6.918 0 Td (et)Tj 0 Tc 1.055 0 Td (rying again.)Tj -12.973 -1.6 Td [([736 )167(\320 )167(744])-668(Even )-297(if )-297(we )-297(specify )-297(plaintext, )-297(the )-297(Phaser )-297(8560 )-297(will )-297(try )-297(to )-297(autosense )-297(the)]TJ 5 -1.2 Td [(document )-57(format.)]TJ -0.092 Tc 8.57 0 Td [(To )-241(p)]TJ -0.018 Tc 1.975 0 Td (re)Tj 0 Tc 0.856 0 Td [(vent )-57(it )-57(fr)18(om )-57(r)19(ecognizing )-57(the )-57(beginning )-57(of )-57(a )-57(\336le )-57(we)]TJ -11.401 -1.2 Td [(want )-124(to )-124(print )-124(as )-124(plaintext, )-124(the )-124(\336rst )-124(character )-124(we )-124(send )-124(is )-124(a )-124(backspace.)-630(This)]TJ 0 -1.2 TD [(character )-34(doesn\325t )-34(show )-34(up )-34(in )-34(the )-34(printout )-34(and )-34(defeats )-34(the )-34(printer)-77(\325s )-34(ability )-34(to)]TJ T* [(autosense )-88(the )-88(\336le )-88(format.)-586(This )-87(allows )-87(us )-87(to )-87(print )-87(the )-87(sour)18(ce )-87(to )-87(a )-87(PostScript)]TJ T* [(\336le instead of printing the image r)18(esulting fr)18(om the PostScript \336le.)]TJ -5 -1.6 Td [([745 )167(\320 )167(753])]TJ -0.092 Tc 5 0 Td [(We )-327(s)]TJ 0 Tc 2.204 0 Td [(end )-143(the )-143(data )-143(\336le )-143(to )-143(the )-143(printer )-143(in)]TJ /TT0 1 Tf 15.713 0 Td (IOBUFSZ)Tj /T1_1 1 Tf 4.593 0 Td (chunks.)Tj /TT0 1 Tf 4.084 0 Td (write)Tj /T1_1 1 Tf 3.393 0 Td [(can )-143(send)]TJ -29.985 -1.2 Td [(less )-8(than )-8(we )-8(r)17(equested )-8(when )-8(the )-8(socket )-8(buf)18(fers )-8(ar)]TJ 0.2582 Tc 21.943 0 Td (ef)Tj 0 Tc 1.07 0 Td [(ull, )-8(so )-8(we )-8(use)]TJ /TT0 1 Tf 6.257 0 Td (writen)Tj /T1_1 1 Tf 3.858 0 Td (to)Tj -33.128 -1.2 Td [(handle )-138(this )-138(case.)]TJ -0.092 Tc 8.179 0 Td [(We )-322(d)]TJ 0 Tc 2.386 0 Td [(on\325t )-138(worry )-138(about )-138(this )-138(condition )-138(when )-138(we )-138(write )-138(the)]TJ -10.565 -1.2 Td (headers, because they ar)Tj 0.25 Tc 10.772 0 Td (es)Tj 0 Tc 1.153 0 Td [(mall. )-250(However)]TJ 0.25 Tc 6.771 0 Td (,t)Tj 0 Tc 0.826 0 Td [(he \336le to print could be lar)18(ge.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47096 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (832)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(608 )-1200(/*)]TJ 0 -1.189 TD [(609 )-1800(*)-600(Single thread to communicate with the printer.)]TJ T* [(610 )-1800(*)]TJ T* [(611 )-1800(*)-600(LOCKING: acquires and releases joblock and configlock.)]TJ T* [(612 )-1800(*/)]TJ 0 -1.189 TD [(613 )-1200(void)-600(*)]TJ 0 -1.189 TD [(614 )-1200(printer_thread\(void)-600(*arg\))]TJ T* [(615 )-1200({)]TJ T* [(616 )-2400(struct)-600(job )-3000(*jp;)]TJ T* [(617 )-2400(int)]TJ 14.4 0 Td (hlen, ilen, sockfd, fd, nr, nw, extra;)Tj -14.4 -1.189 Td [(618 )-2400(char)]TJ 14.4 0 Td (*icp, *hcp, *p;)Tj -14.4 -1.189 Td [(619 )-2400(struct)-600(ipp_hdr )-600(*hp;)]TJ T* [(620 )-2400(struct)-600(stat )-2400(sbuf;)]TJ T* [(621 )-2400(struct)-600(iovec )-1800(iov[2];)]TJ 0 -1.189 TD [(622 )-2400(char)]TJ 14.4 0 Td (name[FILENMSZ];)Tj -14.4 -1.189 Td [(623 )-2400(char)]TJ 14.4 0 Td (hbuf[HBUFSZ];)Tj -14.4 -1.189 Td [(624 )-2400(char)]TJ 14.4 0 Td (ibuf[IBUFSZ];)Tj -14.4 -1.189 Td [(625 )-2400(char)]TJ 14.4 0 Td (buf[IOBUFSZ];)Tj -14.4 -1.189 Td [(626 )-2400(char)]TJ 14.4 0 Td (str[64];)Tj -14.4 -1.189 Td [(627 )-2400(struct)-600(timespec ts = { 60, 0 };)-3000(/* 1 minute */)]TJ 0 -2.021 TD [(628 )-2400(for)-600(\(;;\) {)]TJ 0 -1.189 TD [(629 )-4800(/*)]TJ T* (630 )Tj 7.8 0 Td [(*)-600(Get a job to print.)]TJ -7.8 -1.189 Td (631 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(632 )-4800(pthread_mutex_lock\(&joblock\);)]TJ T* [(633 )-4800(while)-600(\(jobhead == NULL\) {)]TJ T* (634 )Tj 9.6 0 Td [(log_msg\("printer_thread:)-600(waiting..."\);)]TJ -9.6 -1.189 Td (635 )Tj 9.6 0 Td [(pthread_cond_wait\(&jobwait,)-600(&joblock\);)]TJ -9.6 -1.189 Td [(636 )-4800(})]TJ T* [(637 )-4800(remove_job\(jp)]TJ 0.6 Tc 15.6 0 Td (=j)Tj 0 Tc 1.8 0 Td (obhead\);)Tj -17.4 -1.189 Td [(638 )-4800(log_msg\("printer_thread:)-600(picked up job %d", jp->jobid\);)]TJ T* [(639 )-4800(pthread_mutex_unlock\(&joblock\);)]TJ 0 -1.189 TD [(640 )-4800(update_jobno\(\);)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3048.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 280.7743 Tm [([608 )167(\320 )167(627])-668(The)]TJ /TT0 1 Tf 7.165 0 Td (printer_thread)Tj /T1_1 1 Tf 8.891 0 Td [(function )-241(is )-241(r)7(un )-241(by )-241(the )-241(thr)18(ead )-241(that )-241(communicates)]TJ -11.057 -1.2 Td [(with )-84(the )-84(network )-84(printer)]TJ 0.5843 Tc 11.136 0 Td (.W)Tj 0 Tc 1.742 0 Td [(e\325ll )-84(use)]TJ /TT0 1 Tf 3.514 0 Td (icp)Tj /T1_1 1 Tf 2.134 0 Td (and)Tj /TT0 1 Tf 2.027 0 Td (ibuf)Tj /T1_1 1 Tf 2.734 0 Td [(to )-84(build )-84(the )-84(IPP )-84(header)73(.)]TJ -0.092 Tc -23.288 -1.2 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-140(use)]TJ /TT0 1 Tf 3.147 0 Td (hcp)Tj /T1_1 1 Tf 2.191 0 Td (and)Tj /TT0 1 Tf 2.084 0 Td (hbuf)Tj /T1_1 1 Tf 2.79 0 Td [(to )-140(build )-140(the )-140(HTTP )-140(header)]TJ 0.6404 Tc 11.804 0 Td (.W)Tj 0.3904 Tc 1.798 0 Td (en)Tj 0 Tc 1.451 0 Td [(eed )-140(to )-140(build )-140(the)]TJ -26.652 -1.2 Td [(headers )-211(in )-211(separate )-211(buf)19(fers. )-461(The)-461(HTTP )-211(header )-211(includes )-211(a )-211(length )-211(\336eld )-211(in)]TJ 0 -1.2 TD [(ASCII, )-264(and )-264(we )-264(won\325t )-264(know )-264(how )-264(much )-264(space )-264(to )-264(r)18(eserve )-264(for )-264(it )-264(until )-264(we)]TJ T* [(assemble )-139(the )-139(IPP )-139(header)]TJ 0.6395 Tc 11.105 0 Td (.W)Tj 0 Tc 1.798 0 Td [(e\325ll )-139(use)]TJ /TT0 1 Tf 3.624 0 Td (writev)Tj /T1_1 1 Tf 3.989 0 Td [(to )-139(write )-139(these )-139(two )-139(headers )-139(in)]TJ -20.516 -1.2 Td (one call.)Tj -5 -1.6 Td [([628 )167(\320 )167(640])-668(The )-84(printer )-84(thr)18(ead )-84(r)8(uns )-84(in )-84(an )-84(in\336nite )-84(loop )-84(that )-84(waits )-84(for )-84(jobs )-84(to )-84(transmit )-84(to)]TJ 5 -1.2 Td [(the )-49(printer)]TJ 0.5491 Tc 4.681 0 Td (.W)Tj 0.2992 Tc 1.707 0 Td (eu)Tj 0 Tc 1.381 0 Td [(se )-49(the)]TJ /TT0 1 Tf 2.888 0 Td (joblock)Tj /T1_1 1 Tf 4.499 0 Td [(mutex )-49(to )-49(pr)18(otect )-49(the )-49(list )-49(of )-49(jobs.)-549(If )-49(a )-49(job )-49(is)]TJ -15.157 -1.2 Td [(not )-44(pending, )-44(we )-44(use)]TJ /TT0 1 Tf 9.4 0 Td (pthread_cond_wait)Tj /T1_1 1 Tf 10.494 0 Td [(to )-44(wait )-44(for )-44(one )-44(to )-44(arrive.)-542(When)]TJ 0.3642 Tc -19.894 -1.2 Td (aj)Tj 0 Tc 1.098 0 Td [(ob )-114(is )-114(r)18(eady)111(,)-364(we)-364(r)18(emove )-114(it )-114(fr)18(om )-114(the )-114(list )-114(by )-114(calling)]TJ /TT0 1 Tf 22.663 0 Td (remove_job)Tj /T1_1 1 Tf 0.6143 Tc (.W)Tj 0.3643 Tc 7.772 0 Td (es)Tj 0 Tc 1.267 0 Td (till)Tj -32.801 -1.2 Td [(hold )-174(the )-174(mutex )-174(at )-174(this )-174(point, )-174(so )-174(we )-174(r)18(elease )-174(it )-174(and )-174(call)]TJ /TT0 1 Tf 25.504 0 Td (update_jobno)Tj /T1_1 1 Tf 7.624 0 Td (to)Tj -33.128 -1.2 Td (write the next job number to)Tj /TT0 1 Tf 12.815 0 Td (/var/spool/printer/jobno)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47097 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.8)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (773)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(532 )-2400(/*)]TJ 0 -1.189 TD [(533 )-3000(*)-600(Position the index file and record the offset.)]TJ T* [(534 )-3000(*/)]TJ T* [(535 )-2400(if)-600(\(\(db->idxoff = lseek\(db->idxfd, offset, whence\)\) == -1\))]TJ T* [(536 )-4800(err_dump\("_db_writeidx:)-600(lseek error"\);)]TJ 0 -2.021 TD [(537 )-2400(iov[0].iov_base)]TJ 0.6 Tc 14.4 0 Td (=a)Tj 0 Tc 1.8 0 Td (sciiptrlen;)Tj -16.2 -1.189 Td [(538 )-2400(iov[0].iov_len)]TJ 0.6 Tc 14.4 0 Td (=P)Tj 0 Tc 1.8 0 Td (TR_SZ + IDXLEN_SZ;)Tj -16.2 -1.189 Td [(539 )-2400(iov[1].iov_base)]TJ 0.6 Tc 14.4 0 Td (=d)Tj 0 Tc 1.8 0 Td (b->idxbuf;)Tj -16.2 -1.189 Td [(540 )-2400(iov[1].iov_len)]TJ 0.6 Tc 14.4 0 Td (=l)Tj 0 Tc 1.8 0 Td (en;)Tj -16.2 -1.189 Td [(541 )-2400(if)-600(\(writev\(db->idxfd, &iov[0], 2\) != PTR_SZ + IDXLEN_SZ + len\))]TJ 0 -1.189 TD [(542 )-4800(err_dump\("_db_writeidx:)-600(writev error of index record"\);)]TJ 0 -2.021 TD [(543 )-2400(if)-600(\(whence == SEEK_END\))]TJ 0 -1.189 TD [(544 )-4800(if)-600(\(un_lock\(db->idxfd, \(\(db->nhash+1\)*PTR_SZ\)+1,)]TJ T* (545 )Tj 8.4 0 Td [(SEEK_SET,)-600(0\) < 0\))]TJ -8.4 -1.189 Td (546 )Tj 9.6 0 Td [(err_dump\("_db_writeidx:)-600(un_lock error"\);)]TJ -9.6 -1.189 Td [(547 )-1200(})]TJ 0 -2.021 TD [(548 )-1200(/*)]TJ 0 -1.189 TD [(549 )-1800(*)-600(Write a chain ptr field somewhere in the index file:)]TJ T* [(550 )-1800(*)-600(the free list, the hash table, or in an index record.)]TJ T* [(551 )-1800(*/)]TJ T* [(552 )-1200(static)-600(void)]TJ T* [(553 )-1200(_db_writeptr\(DB)-600(*db, off_t offset, off_t ptrval\))]TJ 0 -1.189 TD [(554 )-1200({)]TJ 0 -1.189 TD [(555 )-2400(char)-2400(asciiptr[PTR_SZ + 1];)]TJ 0 -2.021 TD [(556 )-2400(if)-600(\(ptrval < 0 || ptrval > PTR_MAX\))]TJ 0 -1.189 TD [(557 )-4800(err_quit\("_db_writeptr:)-600(invalid ptr: %d", ptrval\);)]TJ T* [(558 )-2400(sprintf\(asciiptr,)-600("%*lld", PTR_SZ, \(long long\)ptrval\);)]TJ 0 -2.021 TD [(559 )-2400(if)-600(\(lseek\(db->idxfd, offset, SEEK_SET\) == -1\))]TJ 0 -1.189 TD [(560 )-4800(err_dump\("_db_writeptr:)-600(lseek error to ptr field"\);)]TJ 0 -1.189 TD [(561 )-2400(if)-600(\(write\(db->idxfd, asciiptr, PTR_SZ\) != PTR_SZ\))]TJ 0 -1.189 TD [(562 )-4800(err_dump\("_db_writeptr:)-600(write error of ptr field"\);)]TJ 0 -1.189 TD [(563 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2855.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 261.5166 Tm [([532 )167(\320 )167(547])]TJ -0.092 Tc 5 0 Td [(We )-293(s)]TJ 0 Tc 2.17 0 Td [(eek )-109(to )-109(the )-109(location )-109(wher)18(e)-359(we)-359(want )-109(to )-109(write )-109(the )-109(index )-109(r)18(ecor)]TJ 0.359 Tc 26.84 0 Td (da)Tj 0 Tc 1.47 0 Td [(nd )-109(save)]TJ -30.48 -1.2 Td [(this )-79(of)18(fset )-79(in )-79(the)]TJ /TT0 1 Tf 7.623 0 Td (idxoff)Tj /T1_0 1 Tf 3.929 0 Td [(\336eld )-79(of )-79(the)]TJ /TT0 1 Tf 5.24 0 Td (DB)Tj /T1_0 1 Tf 1.529 0 Td [(str)8(uctur)18(e. )-329(Since)-329(we )-79(built )-79(the )-79(index)]TJ -0.018 Tc -18.321 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(d)-279(in)-279(two )-29(separate )-29(buf)18(fers, )-29(we )-29(use)]TJ /TT0 1 Tf 16.386 0 Td (writev)Tj /T1_0 1 Tf 3.879 0 Td [(to )-29(stor)]TJ 0.2791 Tc 2.824 0 Td (ei)Tj 0 Tc 1.049 0 Td [(t)-279(in)-279(the )-29(index )-29(\336le.)-530(If)]TJ -24.994 -1.2 Td [(we )-277(wer)]TJ 0.5267 Tc 3.53 0 Td (ea)Tj 0 Tc 1.506 0 Td [(ppending )-277(to )-277(the )-277(\336le, )-277(we )-277(r)20(elease )-277(the )-277(lock )-277(we )-277(acquir)18(ed )-277(befor)20(e)]TJ -5.035 -1.2 Td [(seeking. )-399(This)-399(makes )-149(the )-149(seek )-149(and )-149(the )-149(write )-149(an )-149(atomic )-149(operation )-149(fr)19(om )-149(the)]TJ 0 -1.2 TD [(perspective )-18(of )-18(concurr)18(ently )-18(r)8(unning )-18(pr)16(ocesses )-18(appending )-18(new )-18(r)17(ecor)18(ds )-18(to )-18(the)]TJ 0 -1.2 Td (same database.)Tj -5 -1.6 Td [([548 )167(\320 )167(563])]TJ /TT0 1 Tf 5 0 Td (_db_writeptr)Tj /T1_0 1 Tf 7.754 0 Td [(is )-304(used )-304(to )-304(write )-304(a )-304(chain )-304(pointer )-304(to )-304(the )-304(index )-304(\336le.)]TJ -0.092 Tc 24.858 0 Td (We)Tj 0 Tc -32.613 -1.2 Td [(validate )-53(that )-53(the )-53(chain )-53(pointer )-53(is )-53(within )-53(bounds, )-53(then )-53(convert )-53(it )-53(to )-53(an )-53(ASCII)]TJ T* [(string. )-250(W)]TJ 0.25 Tc 4.232 0 Td (es)Tj 0 Tc 1.153 0 Td [(eek to the speci\336ed of)18(fset in the index \336le and write the pointer)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47098 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (660)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (if \(writev\(csfd, &iov[0], 3\) != len\) {)Tj 2.4 -1.189 Td (err_ret\("writev error"\);)Tj 0 -1.189 TD (return\(-1\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/* read back descriptor; returned errors handled by write\(\) */)Tj 0 -1.189 TD (return\(recv_fd\(csfd, write\)\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5938.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 243.7387 577.7397 Tm (Figure 17.25)Tj /T1_1 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (csopen)Tj /T1_1 1 Tf 3.85 0 Td (function, version 2)Tj 9.9988 0 0 9.9988 129.5848 553.7425 Tm [(The pr)18(otocol fr)18(om the client to the server r)18(emains the same.)]TJ 1.8 -1.2 Td [(Next, )-208(we\325ll )-208(look )-208(at )-208(the )-208(server)]TJ 0.7083 Tc 13.682 0 Td (.T)Tj 0 Tc 1.571 0 Td [(he )-208(header)]TJ /TT0 1 Tf 5.024 0 Td (opend.h)Tj /T1_1 1 Tf 4.658 0 Td (\(Figur)Tj 0.4584 Tc 2.716 0 Td (e1)Tj 0 Tc 1.437 0 Td [(7.26\) )-208(includes )-208(the)]TJ -30.888 -1.2 Td (standar)Tj 0.25 Tc 3.32 0 Td (dh)Tj 0 Tc 1.443 0 Td [(eaders and declar)18(es the global variables and the function pr)18(ototypes.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5226.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 513.0156 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD (#define CS_OPEN "/tmp/opend.socket" /* well-known name */)Tj 0 -1.189 TD (#define CL_OPEN "open")Tj 21.6 0 Td (/* client\325s request for server */)Tj -21.6 -2.14 Td [(extern int)-1800(debug; )-2400(/*)-600(nonzero if interactive \(not daemon\) */)]TJ T* [(extern char)-1200(errmsg[]; )-600(/*)-600(error message string to return to client */)]TJ T* [(extern int)-1800(oflag; )-2400(/*)-600(open flag: O_xxx ... */)]TJ T* [(extern char *pathname;)-1200(/* of file to open for client */)]TJ 0 -2.14 TD [(typedef struct {)-2400(/* one Client struct per connected client */)]TJ 1.2 -1.189 Td [(int )-1200(fd;)]TJ 10.8 0 Td (/* fd, or -1 if available */)Tj -10.8 -1.189 Td (uid_t uid;)Tj 0.6 Tc -1.2 -1.189 Td (}C)Tj 0 Tc 1.8 0 Td (lient;)Tj -1.8 -2.14 Td [(extern Client)-1800(*client; )-4200(/*)-600(ptr to malloc\325ed array */)]TJ 0 -1.189 TD [(extern int)-4200(client_size; )-1200(/*)]TJ 0.6 Tc 21 0 Td (#e)Tj 0 Tc 1.8 0 Td (ntries in client[] array */)Tj -22.8 -2.14 Td [(int )-3000(cli_args\(int,)-600(char **\);)]TJ T* [(int )-3000(client_add\(int,)-600(uid_t\);)]TJ 0 -1.189 TD [(void )-2400(client_del\(int\);)]TJ 0 -1.189 TD [(void )-2400(loop\(void\);)]TJ T* [(void )-2400(handle_request\(char)-600(*, int, int, uid_t\);)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2729.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 244.2494 256.8453 Tm (Figure 17.26)Tj /T1_1 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (opend.h)Tj /T1_1 1 Tf 4.45 0 Td (header)Tj 0.25 Tc 2.972 0 Td (,v)Tj 0 Tc 1.065 0 Td (ersion 2)Tj 9.9976 0 0 9.9976 147.5641 232.8511 Tm [(Since )-314(this )-314(server )-314(handles )-314(all )-314(clients, )-314(it )-314(must )-314(maintain )-314(the )-314(state )-314(of )-314(each )-314(client)]TJ -1.8 -1.2 Td [(connection. )-499(This)-500(is )-250(done )-250(with )-250(the)]TJ /TT0 1 Tf 16.582 0 Td (client)Tj /T1_1 1 Tf 4.1 0 Td [(array )-250(declar)18(ed )-250(in )-250(the)]TJ /TT0 1 Tf 10.396 0 Td (opend.h)Tj /T1_1 1 Tf 4.7 0 Td [(header)74(.)]TJ -35.778 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td [(7.27 de\336nes thr)18(ee functions that manipulate this array)111(.)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2017.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9973 0 0 8.9973 129.5611 192.1483 Tm [(#include )-1800("opend.h")]TJ 0 -2.14 TD [(#define NALLOC)-1200(10 )-3000(/*)]TJ 0.6 Tc 16.2 0 Td (#c)Tj 0 Tc 1.8 0 Td (lient structs to alloc/realloc for */)Tj -18 -2.14 Td (static void)Tj 0 -1.189 TD [(client_alloc\(void\) )-3000(/*)-600(alloc more entries in the client[] array */)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47099 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.5)]TJ 31.183 0 Td [(An )-250(Open )-250(Server)]TJ 0.5 Tc 7.572 0 Td (,V)Tj 0 Tc 1.361 0 Td [(ersion )-250(1)]TJ /T1_1 1 Tf 5.717 0 Td (655)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (char )Tj 9.6 0 Td (buf[10];)Tj -9.6 -1.189 Td [(struct iovec)-2400(iov[3];)]TJ 0 -1.189 TD [(static int)-3600(fd[2] = { -1, -1 };)]TJ 0 -1.902 TD [(if \(fd[0] < 0\) {)-2400(/* fork/exec our open server first time */)]TJ 2.4 -1.189 Td (if \(fd_pipe\(fd\) < 0\) {)Tj 2.4 -1.189 Td (err_ret\("fd_pipe error"\);)Tj 0 -1.189 TD (return\(-1\);)Tj -2.4 -1.189 Td (})Tj T* (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_ret\("fork error"\);)Tj T* (return\(-1\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(pid == 0\) {)-3600(/* child */)]TJ 0.6 -1.189 Td (close\(fd[0]\);)Tj T* (if \(fd[1] != STDIN_FILENO &&)Tj 1.2 -1.189 Td (dup2\(fd[1], STDIN_FILENO\) != STDIN_FILENO\))Tj 1.2 -1.189 Td (err_sys\("dup2 error to stdin"\);)Tj -2.4 -1.189 Td (if \(fd[1] != STDOUT_FILENO &&)Tj 1.2 -1.189 Td (dup2\(fd[1], STDOUT_FILENO\) != STDOUT_FILENO\))Tj 1.2 -1.189 Td (err_sys\("dup2 error to stdout"\);)Tj -2.4 -1.189 Td (if \(execl\("./opend", "opend", \(char *\)0\) < 0\))Tj 2.4 -1.189 Td (err_sys\("execl error"\);)Tj -4.8 -1.189 Td (})Tj T* (close\(fd[1]\); )Tj 16.8 0 Td [(/*)-600(parent */)]TJ -19.2 -1.189 Td (})Tj T* [(sprintf\(buf, " %d", oflag\);)-3000(/* oflag to ascii */)]TJ 0 -1.189 TD [(iov[0].iov_base = CL_OPEN " ";)-3600(/* string concatenation */)]TJ 0 -1.189 TD [(iov[0].iov_len )-600(=)-600(strlen\(CL_OPEN\) + 1;)]TJ T* (iov[1].iov_base = name;)Tj T* [(iov[1].iov_len )-600(=)-600(strlen\(name\);)]TJ T* (iov[2].iov_base = buf;)Tj T* [(iov[2].iov_len )-600(=)-600(strlen\(buf\) + 1;)-1200(/* +1 for null at end of buf */)]TJ T* (len = iov[0].iov_len + iov[1].iov_len + iov[2].iov_len;)Tj T* (if \(writev\(fd[0], &iov[0], 3\) != len\) {)Tj 2.4 -1.189 Td (err_ret\("writev error"\);)Tj 0 -1.189 TD (return\(-1\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (/* read descriptor, returned errors handled by write\(\) */)Tj 0 -1.189 TD (return\(recv_fd\(fd[0], write\)\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2460.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 243.7387 230.0314 Tm (Figure 17.19)Tj /T1_0 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (csopen)Tj /T1_0 1 Tf 3.85 0 Td (function, version 1)Tj 9.9988 0 0 9.9988 147.5827 206.0343 Tm [(The )-155(child )-155(closes )-155(one )-155(end )-155(of )-155(the )-155(fd-pipe, )-155(and )-155(the )-155(par)17(ent )-155(closes )-155(the )-155(other)]TJ 0.6552 Tc 33.006 0 Td (.F)Tj 0 Tc 1.461 0 Td [(or )-155(the)]TJ -36.267 -1.2 Td [(server )-68(that )-68(it )-68(executes, )-68(the )-68(child )-68(also )-68(duplicates )-68(its )-68(end )-68(of )-68(the )-68(fd-pipe )-68(onto )-68(its )-68(standar)14(d)]TJ 0 -1.2 TD [(input )-296(and )-296(standar)]TJ 0.5464 Tc 8.509 0 Td (do)Tj 0 Tc 1.703 0 Td [(utput. )-546(\(Another)-547(option )-296(would )-296(have )-296(been )-296(to )-296(pass )-296(the )-296(ASCII)]TJ -0.018 Tc -10.212 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(pr)18(esentation of the descriptor)]TJ /TT0 1 Tf 13.291 0 Td (fd[1])Tj /T1_0 1 Tf 3.25 0 Td [(as an ar)18(gument to the server)74(.\))]TJ -15.597 -1.2 Td [(The )-4(par)18(ent )-4(sends )-4(to )-4(the )-4(server )-4(the )-4(r)19(equest )-4(containing )-4(the )-4(pathname )-4(and )-4(open )-4(mode.)]TJ -1.8 -1.2 Td (Finally)Tj 0.2504 Tc 2.956 0 Td (,t)Tj 0 Tc 0.826 0 Td [(he par)18(ent calls)]TJ /TT0 1 Tf 6.627 0 Td (recv_fd)Tj /T1_0 1 Tf 4.45 0 Td [(to r)18(eturn either the descriptor or an err)15(or)]TJ 0.5005 Tc 17.979 0 Td (.I)Tj 0 Tc 1.087 0 Td [(f)-250(an)-250(e)-1(rr)18(or is)]TJ -0.018 Tc -33.926 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turned by the server)74(,)]TJ /TT0 1 Tf 9.405 0 Td (write)Tj /T1_0 1 Tf 3.25 0 Td (is called to output the message to standar)Tj 0.25 Tc 18.282 0 Td (de)Tj 0 Tc 1.34 0 Td [(rr)18(or)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47100 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (644)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(socket )-18(until )-18(it )-18(encounters )-18(a )-18(null )-18(byte.)-519(Any )-18(characters )-18(r)18(ead )-18(up )-18(to )-18(this )-18(point )-18(ar)]TJ 0.2681 Tc 34.074 0 Td (ep)Tj 0 Tc 1.348 0 Td [(assed )-18(to)]TJ -35.422 -1.2 Td [(the )-141(caller)-74(\325s)]TJ /T1_2 1 Tf 5.346 0 Td (userfunc)Tj /T1_1 1 Tf 0.6414 Tc (.T)Tj 0 Tc 5.024 0 Td [(he )-141(next )-141(byte )-141(r)18(ead )-141(by)]TJ /TT0 1 Tf 9.911 0 Td (recv_fd)Tj /T1_1 1 Tf 4.591 0 Td [(is )-141(the )-141(status )-141(byte.)-641(If )-141(the )-141(status)]TJ -24.873 -1.2 Td [(byte is 0, a descriptor was passed; otherwise, ther)18(e)-250(is)-250(no)-250(descriptor to r)18(eceive.)]TJ 1.8 -1.2 Td [(The )-36(function)]TJ /TT0 1 Tf 5.953 0 Td (send_err)Tj /T1_1 1 Tf 5.086 0 Td [(calls )-36(the)]TJ /TT0 1 Tf 3.908 0 Td (send_fd)Tj /T1_1 1 Tf 4.486 0 Td [(function )-36(after )-36(writing )-36(the )-36(err)18(or )-36(message)]TJ -21.233 -1.2 Td [(to the socket.)-500(This is shown in Figur)]TJ 0.25 Tc 16.133 0 Td (e1)Tj 0 Tc 1.229 0 Td (7.12.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6138.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 604.2265 Tm (#include "apue.h")Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*U)Tj 0 Tc 1.8 0 Td (sed when we had planned to send an fd using send_fd\(\),)Tj 0.6 Tc -1.8 -1.189 Td (*b)Tj 0 Tc 1.8 0 Td [(ut encountered an error instead.)-1200(We send the error back)]TJ 0.6 Tc -1.8 -1.189 Td (*u)Tj 0 Tc 1.8 0 Td (sing the send_fd\(\)/recv_fd\(\) protocol.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (int)Tj 0 -1.189 TD (send_err\(int fd, int errcode, const char *msg\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(n;)]TJ 0 -1.902 TD (if \(\(n = strlen\(msg\)\) > 0\))Tj 2.4 -1.189 Td [(if \(writen\(fd, msg, n\) != n\))-2400(/* send the error message */)]TJ 2.4 -1.189 Td (return\(-1\);)Tj -4.8 -1.902 Td (if \(errcode >= 0\))Tj 2.4 -1.189 Td [(errcode = -1;)-1800(/* must be negative */)]TJ -2.4 -1.902 Td (if \(send_fd\(fd, errcode\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.902 Td (return\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3748.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 257.0497 358.7334 Tm (Figure 17.12)Tj /T1_1 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (send_err)Tj /T1_1 1 Tf 5.05 0 Td (function)Tj -0.092 Tc 9.9982 0 0 9.9982 147.5738 334.7377 Tm [(To )-312(e)]TJ 0 Tc 1.924 0 Td [(xchange )-128(\336le )-128(descriptors )-128(using )-128(UNIX )-128(domain )-128(sockets, )-128(we )-128(call )-128(the)]TJ /TT0 1 Tf 29.91 0 Td (sendmsg)Tj /T1_1 1 Tf 4.2 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj -38.667 -1.24 Td (and)Tj /TT0 1 Tf 2.106 0 Td (recvmsg)Tj /T1_1 1 Tf 4.2 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.746 -0.04 Td [(functions )-163(\(Section )-163(16.5\).)-663(Both )-163(functions )-163(take )-163(a )-163(pointer )-163(to )-163(a)]TJ /TT0 1 Tf 27.516 0 Td (msghdr)Tj /T1_1 1 Tf -35.4 -1.2 Td [(str)8(uctur)]TJ 0.2995 Tc 3.49 0 Td (et)Tj 0 Tc 1.104 0 Td [(hat )-50(contains )-50(all )-50(the )-50(information )-50(on )-50(what )-50(to )-50(send )-50(or )-50(r)22(eceive. )-300(The)-299(str)8(uctur)]TJ 0.2996 Tc 32.499 0 Td (eo)Tj 0 Tc 1.325 0 Td (n)Tj -38.418 -1.2 Td (your system might look similar to the following:)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.5742 283.1169 Tm (struct msghdr {)Tj 2.4 -1.189 Td [(void )-4800(*msg_name;)-4800(/* optional address */)]TJ 0 -1.189 TD [(socklen_t )-2400(msg_namelen; )-2400(/*)-600(address size in bytes */)]TJ T* (struct iovec *msg_iov;)Tj 18.6 0 Td (/* array of I/O buffers */)Tj -18.6 -1.189 Td (int )Tj 8.4 0 Td [(msg_iovlen;)-3600(/* number of elements in array */)]TJ -8.4 -1.189 Td [(void )-4800(*msg_control;)-3000(/* ancillary data */)]TJ T* [(socklen_t )-2400(msg_controllen;)-1200(/* number of ancillary bytes */)]TJ T* (int )Tj 8.4 0 Td [(msg_flags;)-4200(/* flags for received message */)]TJ -10.8 -1.189 Td (};)Tj /T1_1 1 Tf 9.9982 0 0 9.9982 147.5742 180.6053 Tm [(The )-231(\336rst )-231(two )-231(elements )-231(ar)]TJ 0.4808 Tc 11.874 0 Td (en)Tj 0 Tc 1.542 0 Td [(ormally )-231(used )-231(for )-231(sending )-231(datagrams )-231(on )-231(a )-231(network)]TJ -15.215 -1.2 Td [(connection, )-153(wher)]TJ 0.4028 Tc 7.747 0 Td (et)Tj 0 Tc 1.208 0 Td [(he )-153(destination )-153(addr)18(ess )-153(can )-153(be )-153(speci\336ed )-153(with )-153(each )-153(datagram.)-651(The)]TJ -8.955 -1.2 Td [(next )-61(two )-61(elements )-61(allow )-61(us )-61(to )-61(specify )-61(an )-61(array )-61(of )-61(buf)15(fers )-61(\(scatter )-61(r)18(ead )-61(or )-61(gather )-61(write\),)]TJ 0 -1.2 TD [(as )-101(we )-101(described )-101(for )-101(the)]TJ /TT0 1 Tf 10.938 0 Td (readv)Tj /T1_1 1 Tf 3.351 0 Td (and)Tj /TT0 1 Tf 2.044 0 Td (writev)Tj /T1_1 1 Tf 3.951 0 Td [(functions )-101(\(Section )-101(14.6\).)-600(The)]TJ /TT0 1 Tf 13.317 0 Td (msg_flags)Tj /T1_1 1 Tf -33.6 -1.2 Td [(\336eld contains \337ags describing the message r)18(eceived, as summarized in Figur)]TJ 0.25 Tc 33.751 0 Td (e1)Tj 0 Tc 1.229 0 Td (6.15.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47101 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.5)]TJ 37.639 0 Td [(Data )-250(T)90(ransfer)]TJ /T1_1 1 Tf 8.231 0 Td [(61)37(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(the )-46(destination )-46(addr)18(ess )-46(is )-46(\336rst )-46(set )-46(by )-46(calling)]TJ /TT0 1 Tf 19.9 0 Td (connect)Tj /T1_0 1 Tf 0.2963 Tc (,s)Tj 0 Tc 5.17 0 Td (o)Tj /TT0 1 Tf 0.842 0 Td (sendto)Tj /T1_0 1 Tf 3.896 0 Td [(gives )-46(us )-46(an )-46(alternate)]TJ -29.809 -1.2 Td (way to send a message.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1188.25 6382.25 cm 0 0 m 3995 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 364.7682 630.1244 Tm [(Fr)18(eeBSD )-1416(Linux)-1382(Mac OS X)-1198(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-2993(3.2.0)-2618(10.6.8 )-2868(10)]TJ -28.579 0.625 Td (Flag)Tj 11.425 0 Td (Description)Tj 11.076 0 Td (POSIX.1)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1188.25 6162.25 cm 0 0 m 3995 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1188.25 6142.25 cm 0 0 m 3995 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 122.7779 606.0909 Tm (MSG_CONFIRM)Tj /T1_0 1 Tf 36.717 0 Td (\245)Tj -27.417 0 Td [(Pr)18(ovide feedback to the link layer)]TJ 1.35 -1.25 Td [(to keep addr)18(ess mapping valid.)]TJ /TT0 1 Tf -10.65 -1.25 Td (MSG_DONTROUTE)Tj /T1_0 1 Tf 4.262 Tc 31.849 0 Td (\245\245\245\245)Tj 0 Tc -22.549 0 Td [(Don\325t r)18(oute packet outside of local)]TJ 1.35 -1.25 Td (network.)Tj /TT0 1 Tf -10.65 -1.25 Td (MSG_DONTWAIT)Tj /T1_0 1 Tf 4.262 Tc 31.849 0 Td (\245\245\245\245)Tj 0 Tc -22.549 0 Td (Enable nonblocking operation)Tj 1.35 -1.25 Td (\(equivalent to using)Tj /TT0 1 Tf 0 -1.25 TD (O_NONBLOCK)Tj /T1_0 1 Tf (\).)Tj /TT0 1 Tf -10.65 -1.25 Td (MSG_EOF)Tj /T1_0 1 Tf 9.13 Tc 31.849 0 Td (\245\245)Tj 0 Tc -22.549 0 Td (Shut the sender side of the socket)Tj 1.35 -1.25 Td (down after sending data.)Tj /TT0 1 Tf -10.65 -1.25 Td (MSG_EOR)Tj /T1_0 1 Tf 4.262 Tc 26.981 0 Td (\245\245\245\245\245)Tj 0 Tc -17.681 0 Td [(Mark the end of the r)18(ecor)]TJ 0.25 Tc 11.195 0 Td (di)Tj 0 Tc 1.152 0 Td (f)Tj -10.997 -1.25 Td [(supported by pr)18(otocol.)]TJ /TT0 1 Tf -10.65 -1.25 Td (MSG_MORE)Tj /T1_0 1 Tf 36.717 0 Td (\245)Tj -27.417 0 Td (Delay sending the packet to allow)Tj 1.35 -1.25 Td (mor)Tj 0.25 Tc 1.806 0 Td (ed)Tj 0 Tc 1.34 0 Td (ata to be written.)Tj /TT0 1 Tf -13.796 -1.25 Td (MSG_NOSIGNAL)Tj /T1_0 1 Tf 4.262 Tc 26.981 0 Td (\245\245\245)Tj 0 Tc -17.681 0 Td (Don\325t generate)Tj /TT0 1 Tf 6.802 0 Td (SIGPIPE)Tj /T1_0 1 Tf 4.45 0 Td (when)Tj -9.902 -1.25 Td (writing to an unconnected)Tj T* (socket.)Tj /TT0 1 Tf -10.65 -1.25 Td (MSG_OOB)Tj /T1_0 1 Tf 4.262 Tc 26.981 0 Td (\245\245\245\245\245)Tj 0 Tc -17.681 0 Td (Send out-of-band data if)Tj 1.35 -1.25 Td [(supported by pr)18(otocol \(see)]TJ T* (Section 16.7\).)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1188.25 4222.25 cm 0 0 m 3995 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4774.25 4222.25 cm 0 0 m 0 2160 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4384.25 4222.25 cm 0 0 m 0 2160 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3995.25 4222.25 cm 0 0 m 0 2160 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3595.25 4222.25 cm 0 0 m 0 2160 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3615.25 4222.25 cm 0 0 m 0 2160 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3216.25 4222.25 cm 0 0 m 0 2160 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1912.25 4222.25 cm 0 0 m 0 2160 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5183.25 4222.25 cm 0 0 m 0 2160 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1188.25 4222.25 cm 0 0 m 0 2160 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 229.5569 404.103 Tm (Figure 16.13)Tj /T1_0 1 Tf 6.195 0 Td (Flags used with)Tj /TT0 1 Tf 7.227 0 Td (send)Tj /T1_0 1 Tf 2.65 0 Td (socket calls)Tj -0.092 Tc 9.9976 0 0 9.9976 147.5648 378.909 Tm [(We )-466(h)]TJ 0 Tc 2.501 0 Td [(ave )-282(one )-282(mor)]TJ 0.5318 Tc 6.021 0 Td (ec)Tj 0 Tc 1.455 0 Td [(hoice )-282(when )-282(transmitting )-282(data )-282(over )-282(a )-282(socket.)]TJ -0.092 Tc 21.721 0 Td [(We )-466(c)]TJ 0 Tc 2.363 0 Td [(an )-282(call)]TJ /TT0 1 Tf -35.86 -1.2 Td (sendmsg)Tj /T1_0 1 Tf 4.563 0 Td [(with )-113(a)]TJ /TT0 1 Tf 3.26 0 Td (msghdr)Tj /T1_0 1 Tf 3.963 0 Td [(str)8(uctur)18(e)-363(to)-363(s)-1(pecify )-113(multiple )-113(buf)18(fers )-113(fr)18(om )-113(which )-113(to )-113(transmit)]TJ -11.787 -1.2 Td (data, similar to the)Tj /TT0 1 Tf 8.521 0 Td (writev)Tj /T1_0 1 Tf 3.85 0 Td (function \(Section 14.6\).)Tj /TT0 1 Tf 8.9978 0 0 8.9978 147.5642 338.2188 Tm (#include )Tj 0 -1.902 TD (ssize_t sendmsg\(int)Tj /T1_2 1 Tf 12 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.262 0 Td (onst struct msghdr *)Tj /T1_2 1 Tf (msg)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 15.467 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ags)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -15.451 -1.902 Td (Returns: number of bytes sent if OK,)Tj /TT1 1 Tf 16.386 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2995.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.997 0 0 9.997 147.5557 285.9742 Tm (POSIX.1 de\336nes the)Tj /TT0 1 Tf 8.986 0 Td (msghdr)Tj /T1_0 1 Tf 3.85 0 Td [(str)8(uctur)18(e)-250(to)-250(have at least the following members:)]TJ /TT0 1 Tf 8.9973 0 0 8.9973 147.556 268.2092 Tm (struct msghdr {)Tj 1.2 -1.189 Td (void )Tj 8.4 0 Td [(*msg_name;)-4800(/* optional address */)]TJ -8.4 -1.189 Td [(socklen_t )-3000(msg_namelen;)-3000(/* address size in bytes */)]TJ 0 -1.189 TD [(struct iovec)-1200(*msg_iov; )-4800(/*)-600(array of I/O buffers */)]TJ 0 -1.189 TD (int )Tj 9 0 Td [(msg_iovlen;)-3600(/* number of elements in array */)]TJ -9 -1.189 Td (void )Tj 8.4 0 Td [(*msg_control;)-3000(/* ancillary data */)]TJ -8.4 -1.189 Td [(socklen_t )-3000(msg_controllen;)-1200(/* number of ancillary bytes */)]TJ T* (int )Tj 9 0 Td [(msg_flags;)-4200(/* flags for received message */)]TJ -9 -1.189 Td (.)Tj 0 -0.476 TD (.)Tj 0 -0.476 TD (.)Tj -1.2 -1.189 Td (};)Tj /T1_0 1 Tf -0.092 Tc 9.997 0 0 9.997 129.5614 144.3171 Tm [(We )-409(s)]TJ 0 Tc 2.286 0 Td [(aw )-225(the)]TJ /TT0 1 Tf 3.671 0 Td (iovec)Tj /T1_0 1 Tf 3.475 0 Td [(str)8(uctur)18(e)-475(in)-475(Section )-225(14.6.)]TJ -0.092 Tc 12.184 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-225(see )-225(the )-225(use )-225(of )-225(ancillary )-225(data )-225(in)]TJ -23.002 -1.2 Td (Section 17.4.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47102 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (592)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(to )-234(cr)18(eate )-234(a )-234(raw )-234(socket )-234(to )-234(pr)18(event )-234(malicious )-234(applications )-234(fr)16(om )-234(cr)18(eating )-234(packets )-234(that)]TJ 0 -1.2 TD (might bypass established security mechanisms.)Tj 1.8 -1.2 Td (Calling)Tj /TT0 1 Tf 3.574 0 Td (socket)Tj /T1_1 1 Tf 3.954 0 Td [(is )-104(similar )-104(to )-104(calling)]TJ /TT0 1 Tf 9.035 0 Td (open)Tj /T1_1 1 Tf 0.6045 Tc (.I)Tj 0.3545 Tc 3.591 0 Td (nb)Tj 0 Tc 1.489 0 Td [(oth )-104(cases, )-104(you )-104(get )-104(a )-104(\336le )-104(descriptor)]TJ -23.445 -1.2 Td [(that )-64(can )-64(be )-64(used )-64(for )-64(I/O.)-564(When )-64(you )-64(ar)]TJ 0.3143 Tc 17.651 0 Td (ed)Tj 0 Tc 1.404 0 Td [(one )-64(using )-64(the )-64(\336le )-64(descriptor)]TJ 0.3143 Tc 12.52 0 Td (,y)Tj 0 Tc 1.12 0 Td [(ou )-64(call)]TJ /TT0 1 Tf 3.304 0 Td (close)Tj /T1_1 1 Tf -36 -1.2 Td [(to r)18(elinquish access to the \336le or socket and fr)18(ee up the \336le descriptor for r)18(euse.)]TJ 1.8 -1.2 Td [(Although )-192(a )-192(socket )-192(descriptor )-192(is )-192(actually )-192(a )-192(\336le )-192(descriptor)]TJ 0.4419 Tc 26.124 0 Td (,y)Tj 0 Tc 1.248 0 Td [(ou )-192(can\325t )-192(use )-192(a )-192(socket)]TJ -29.172 -1.2 Td [(descriptor )-252(with )-252(every )-252(function )-252(that )-252(accepts )-252(a )-252(\336le )-252(descriptor )-252(ar)22(gument. )-501(Figur)]TJ 0.5015 Tc 36.27 0 Td (e1)Tj 0 Tc 1.481 0 Td (6.4)Tj -37.75 -1.2 Td [(summarizes )-312(most )-312(of )-312(the )-312(functions )-312(we\325ve )-312(described )-312(so )-312(far )-312(that )-312(ar)]TJ 0.5621 Tc 31.31 0 Td (eu)Tj 0 Tc 1.644 0 Td [(sed )-312(with )-312(\336le)]TJ -32.954 -1.2 Td [(descriptors )-412(and )-412(describes )-412(how )-412(they )-412(behave )-412(when )-412(used )-412(with )-412(socket )-412(descriptors.)]TJ T* [(Unspeci\336ed )-297(and )-297(implementation-de\336ned )-297(behavior )-297(usually )-297(means )-297(that )-297(the )-297(function)]TJ T* [(doesn\325t )-79(work )-79(with )-79(socket )-79(descriptors.)-579(For )-79(example,)]TJ /TT0 1 Tf 23.623 0 Td (lseek)Tj /T1_1 1 Tf 3.329 0 Td [(doesn\325t )-79(work )-79(with )-79(sockets,)]TJ -26.953 -1.2 Td [(since sockets don\325t support the concept of a \336le of)18(fset.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1357.25 5158.25 cm 0 0 m 3777 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 184.0579 507.7391 Tm (Function )Tj 21.181 0 Td [(Behavior)-250(with socket)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1357.25 5038.25 cm 0 0 m 3777 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1357.25 5018.25 cm 0 0 m 3777 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 139.7388 493.7111 Tm (close)Tj /T1_1 1 Tf 3.25 0 Td (\(Section 3.3\))Tj 13.259 0 Td (deallocates the socket)Tj /TT0 1 Tf -16.509 -1.25 Td (dup)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.3 0 Td (dup2)Tj /T1_1 1 Tf 2.65 0 Td (\(Section 3.12\))Tj 11.559 0 Td (duplicates the \336le descriptor as normal)Tj /TT0 1 Tf -16.509 -1.25 Td (fchdir)Tj /T1_1 1 Tf 3.85 0 Td (\(Section 4.23\))Tj 12.659 0 Td (fails with)Tj /TT0 1 Tf 4.372 0 Td (errno)Tj /T1_1 1 Tf 3.25 0 Td (set to)Tj /TT0 1 Tf 2.601 0 Td (ENOTDIR)Tj -26.732 -1.25 Td (fchmod)Tj /T1_1 1 Tf 3.85 0 Td (\(Section 4.9\))Tj 12.659 0 Td (unspeci\336ed)Tj /TT0 1 Tf -16.509 -1.25 Td (fchown)Tj /T1_1 1 Tf 3.85 0 Td [(\(Section 4.1)55(1\))]TJ 12.659 0 Td (implementation de\336ned)Tj /TT0 1 Tf -16.509 -1.25 Td (fcntl)Tj /T1_1 1 Tf 3.25 0 Td (\(Section 3.14\))Tj 13.259 0 Td (some commands supported, including)Tj /TT0 1 Tf 17.292 0 Td (F_DUPFD)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -15.942 -1.25 Td (F_DUPFD_CLOEXEC)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 9.5 0 Td (F_GETFD)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.7 0 Td (F_GETFL)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.7 0 Td (F_GETOWN)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -18.9 -1.25 Td (F_SETFD)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.7 0 Td (F_SETFL)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 5.2 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (F_SETOWN)Tj -29.202 -1.25 Td (fdatasync)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 5.9 0 Td (fsync)Tj /T1_1 1 Tf 3.25 0 Td [(\(Section 3.13\))-1500(implementation de\336ned)]TJ /TT0 1 Tf -9.15 -1.25 Td (fstat)Tj /T1_1 1 Tf 3.25 0 Td (\(Section 4.2\))Tj 13.259 0 Td (some)Tj /TT0 1 Tf 2.582 0 Td (stat)Tj /T1_1 1 Tf 2.65 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (em)Tj 0 Tc 1.612 0 Td (embers supported, but how left up to the)Tj -8.984 -1.25 Td (implementation)Tj /TT0 1 Tf -17.859 -1.25 Td (ftruncate)Tj /T1_1 1 Tf 5.65 0 Td [(\(Section 4.13\))-5000(unspeci\336ed)]TJ /TT0 1 Tf -5.65 -1.25 Td (ioctl)Tj /T1_1 1 Tf 3.25 0 Td (\(Section 3.15\))Tj 13.259 0 Td (some commands work, depending on underlying device driver)Tj /TT0 1 Tf -16.509 -1.25 Td (lseek)Tj /T1_1 1 Tf 3.25 0 Td (\(Section 3.6\))Tj 13.259 0 Td (implementation de\336ned \(usually fails with)Tj /TT0 1 Tf 19.15 0 Td (errno)Tj /T1_1 1 Tf 3.25 0 Td (set to)Tj /TT0 1 Tf 2.601 0 Td (ESPIPE)Tj /T1_1 1 Tf (\))Tj /TT0 1 Tf -41.51 -1.25 Td (mmap)Tj /T1_1 1 Tf 2.65 0 Td (\(Section 14.8\))Tj 13.859 0 Td (unspeci\336ed)Tj /TT0 1 Tf -16.509 -1.25 Td (poll)Tj /T1_1 1 Tf 2.65 0 Td (\(Section 14.4.2\))Tj 13.859 0 Td (works as expected)Tj /TT0 1 Tf -16.509 -1.25 Td (pread)Tj /T1_1 1 Tf 3.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (pwrite)Tj /T1_1 1 Tf 3.85 0 Td [(\(Section 3.1)55(1\))-1662(fails with)]TJ /TT0 1 Tf 11.838 0 Td (errno)Tj /T1_1 1 Tf 3.25 0 Td (set to)Tj /TT0 1 Tf 2.601 0 Td (ESPIPE)Tj -26.732 -1.25 Td (read)Tj /T1_1 1 Tf 2.65 0 Td (\(Section 3.7\) and)Tj /TT0 1 Tf 7.552 0 Td (readv)Tj /T1_1 1 Tf -8.852 -1.25 Td (\(Section 14.6\))Tj 15.159 1.25 Td (equivalent to)Tj /TT0 1 Tf 6.048 0 Td (recv)Tj /T1_1 1 Tf 2.65 0 Td (\(Section 16.5\) without any \337ags)Tj /TT0 1 Tf -25.207 -2.5 Td (select)Tj /T1_1 1 Tf 3.85 0 Td (\(Section 14.4.1\))Tj 12.659 0 Td (works as expected)Tj /TT0 1 Tf -16.509 -1.25 Td (write)Tj /T1_1 1 Tf 3.25 0 Td (\(Section 3.8\) and)Tj /TT0 1 Tf 7.552 0 Td (writev)Tj /T1_1 1 Tf -9.452 -1.25 Td (\(Section 14.6\))Tj 15.159 1.25 Td (equivalent to)Tj /TT0 1 Tf 6.048 0 Td (send)Tj /T1_1 1 Tf 2.65 0 Td (\(Section 16.5\) without any \337ags)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1357.25 2798.25 cm 0 0 m 3777 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2658.25 2798.25 cm 0 0 m 0 2360 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5134.25 2798.25 cm 0 0 m 0 2360 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1357.25 2798.25 cm 0 0 m 0 2360 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 220.839 261.7372 Tm (Figure 16.4)Tj /T1_1 1 Tf 5.695 0 Td (How \336le descriptor functions act with sockets)Tj 9.9976 0 0 9.9976 147.5648 235.3435 Tm [(Communication )-103(on )-103(a )-103(socket )-103(is )-103(bidir)19(ectional. )-353(W)]TJ 0.3528 Tc 21.411 0 Td (ec)Tj 0 Tc 1.276 0 Td [(an )-103(disable )-103(I/O )-103(on )-103(a )-103(socket )-103(with)]TJ -24.487 -1.2 Td (the)Tj /TT0 1 Tf 1.637 0 Td (shutdown)Tj /T1_1 1 Tf 5.05 0 Td (function.)Tj /TT0 1 Tf 8.9978 0 0 8.9978 147.5654 207.8501 Tm (#include )Tj 0 -1.783 TD (int shutdown\(int)Tj /T1_2 1 Tf 10.2 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.262 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (how)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 10.589 -1.783 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1713.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.997 0 0 9.997 129.5611 158.9523 Tm (If)Tj /T1_2 1 Tf 0.925 0 Td (how)Tj /T1_1 1 Tf 1.921 0 Td (is)Tj /TT0 1 Tf 0.97 0 Td (SHUT_RD)Tj /T1_1 1 Tf 0.2547 Tc (,t)Tj 0 Tc 5.031 0 Td [(hen )-5(r)18(eading )-5(fr)18(om )-5(the )-5(socket )-5(is )-5(disabled.)-503(If)]TJ /T1_2 1 Tf 19.023 0 Td (how)Tj /T1_1 1 Tf 1.921 0 Td (is)Tj /TT0 1 Tf 0.97 0 Td (SHUT_WR)Tj /T1_1 1 Tf 0.2547 Tc (,t)Tj 0 Tc 5.031 0 Td [(hen )-5(we)]TJ -35.789 -1.2 Td [(can\325t )-52(use )-52(the )-52(socket )-52(for )-52(transmitting )-52(data.)]TJ -0.092 Tc 19.104 0 Td [(We )-236(c)]TJ 0 Tc 2.133 0 Td [(an )-52(use)]TJ /TT0 1 Tf 3.192 0 Td (SHUT_RDWR)Tj /T1_1 1 Tf 5.702 0 Td [(to )-52(disable )-52(both )-52(data)]TJ -30.13 -1.2 Td [(transmission and r)18(eception.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47103 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (532)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 129.5922 668.9599 Tm [(Ex)10(er)20(cises)]TJ /T1_0 1 Tf 8.9995 0 0 8.9995 129.5922 647.9611 Tm (14.1)Tj /T1_1 1 Tf -0.074 Tc 3.065 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-179(a )-179(test )-179(pr)18(ogram )-179(that )-179(illustrates )-179(your )-179(system\325s )-179(behavior )-179(when )-179(a )-179(pr)13(ocess )-179(is )-179(blocked)]TJ -1.321 -1.222 Td [(while )-72(trying )-72(to )-72(write )-72(lock )-72(a )-72(range )-72(of )-72(a )-72(\336le )-72(and )-72(additional )-72(r)23(ead)]TJ 28.051 0.09 Td (-)Tj 0.333 -0.09 Td [(lock )-72(r)18(equests )-72(ar)]TJ 0.3216 Tc 7.029 0 Td (em)Tj 0 Tc 1.684 0 Td [(ade. )-322(Is)]TJ -37.096 -1.222 Td [(the pr)18(ocess r)18(equesting a write lock starved by the pr)18(ocesses r)18(ead locking the \336le?)]TJ /T1_0 1 Tf -3.065 -1.667 Td (14.2)Tj /T1_1 1 Tf -0.092 Tc 3.065 0 Td (Ta)Tj 0 Tc 1.021 0 Td [(ke )-47(a )-47(look )-47(at )-47(your )-47(system\325s )-47(headers )-47(and )-47(examine )-47(the )-47(implementation )-47(of)]TJ /TT1 1 Tf 31.974 0 Td (select)Tj /T1_1 1 Tf 3.897 0 Td [(and )-47(the)]TJ -36.892 -1.222 Td (four)Tj /TT1 1 Tf 2.127 0 Td (FD_)Tj /T1_1 1 Tf 2.05 0 Td [(macr)18(os.)]TJ /T1_0 1 Tf -7.242 -1.667 Td (14.3)Tj /T1_1 1 Tf 3.065 0 Td [(The )-89(system )-89(headers )-89(usually )-89(have )-89(a )-89(built-in )-89(limit )-89(on )-89(the )-89(maximum )-89(number )-89(of )-89(descriptors)]TJ 0 -1.222 TD [(that )-201(the)]TJ /TT1 1 Tf 4.023 0 Td (fd_set)Tj /T1_1 1 Tf 4.051 0 Td [(data )-201(type )-201(can )-201(handle.)-701(Assume )-201(that )-201(we )-201(need )-201(to )-201(incr)18(ease )-201(this )-201(limit )-201(to)]TJ -8.074 -1.222 Td [(handle up to 2,048 descriptors.)-500(How can we do this?)]TJ /T1_0 1 Tf -3.065 -1.667 Td (14.4)Tj /T1_1 1 Tf 3.065 0 Td (Compar)Tj 0.3131 Tc 3.616 0 Td (et)Tj 0 Tc 1.118 0 Td [(he )-63(functions )-63(pr)18(ovided )-63(for )-63(signal )-63(sets )-63(\(Section )-63(10.1)55(1\) )-63(and )-63(the)]TJ /TT1 1 Tf 27.109 0 Td (fd_set)Tj /T1_1 1 Tf 3.913 0 Td (descriptor)Tj -35.756 -1.222 Td [(sets. )-250(Also)-250(compar)]TJ 0.25 Tc 8.043 0 Td (et)Tj 0 Tc 1.055 0 Td (he implementation of the two on your system.)Tj /T1_0 1 Tf -12.163 -1.667 Td (14.5)Tj /T1_1 1 Tf 3.065 0 Td [(Implement )-139(the )-139(function)]TJ /TT1 1 Tf 11.121 0 Td (sleep_us)Tj /T1_1 1 Tf 0.3888 Tc (,w)Tj 0 Tc 6.273 0 Td [(hich )-139(is )-139(similar )-139(to)]TJ /TT1 1 Tf 8.116 0 Td (sleep)Tj /T1_1 1 Tf 0.3887 Tc (,b)Tj 0 Tc 4.192 0 Td [(ut )-139(waits )-139(for )-139(a )-139(speci\336ed)]TJ -29.702 -1.222 Td [(number )-63(of )-63(micr)17(oseconds. )-313(Use)-314(either)]TJ /TT1 1 Tf 16.725 0 Td (select)Tj /T1_1 1 Tf 3.913 0 Td (or)Tj /TT1 1 Tf 1.254 0 Td (poll)Tj /T1_1 1 Tf 0.5634 Tc (.C)Tj 0 Tc 3.922 0 Td (ompar)Tj 0.3136 Tc 2.907 0 Td (et)Tj 0 Tc 1.119 0 Td [(his )-64(function )-64(to )-64(the )-64(BSD)]TJ /TT1 1 Tf -29.841 -1.222 Td (usleep)Tj /T1_1 1 Tf 3.85 0 Td (function.)Tj /T1_0 1 Tf -6.915 -1.667 Td (14.6)Tj /T1_1 1 Tf 3.065 0 Td [(Can )-849(you )-849(implement )-849(the )-849(functions)]TJ /TT1 1 Tf 19.322 0 Td (TELL_WAIT)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 6.748 0 Td (TELL_PARENT)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 7.948 0 Td (TELL_CHILD)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf -34.019 -1.222 Td (WAIT_PARENT)Tj /T1_1 1 Tf 0.2817 Tc (,a)Tj 0 Tc 7.632 0 Td (nd)Tj /TT1 1 Tf 1.475 0 Td (WAIT_CHILD)Tj /T1_1 1 Tf 6.282 0 Td [(fr)18(om )-32(Figur)]TJ 0.2818 Tc 4.804 0 Td (e1)Tj 0 Tc 1.261 0 Td [(0.24 )-32(using )-32(advisory )-32(r)19(ecor)]TJ 0.2818 Tc 11.162 0 Td (dl)Tj 0 Tc 1.184 0 Td [(ocking )-32(instead)]TJ -33.799 -1.222 Td [(of signals?)-500(If so, code and test your implementation.)]TJ /T1_0 1 Tf -3.065 -1.667 Td (14.7)Tj /T1_1 1 Tf 3.065 0 Td [(Determine )-86(the )-86(capacity )-86(of )-86(a )-86(pipe )-86(using )-86(nonblocking )-86(writes.)-588(Compar)]TJ 0.3361 Tc 30.964 0 Td (et)Tj 0 Tc 1.141 0 Td [(his )-86(value )-86(with )-86(the)]TJ -32.105 -1.222 Td (value of)Tj /TT1 1 Tf 3.817 0 Td (PIPE_BUF)Tj /T1_1 1 Tf 5.05 0 Td [(fr)18(om Chapter 2.)]TJ /T1_0 1 Tf -11.932 -1.667 Td (14.8)Tj /T1_1 1 Tf 3.065 0 Td [(Rewrite )-81(the )-81(pr)18(ogram )-81(in )-81(Figur)]TJ 0.3308 Tc 13.296 0 Td (e1)Tj 0 Tc 1.31 0 Td [(4.21 )-81(to )-81(make )-81(it )-81(a )-81(\336lter: )-81(r)19(ead )-81(fr)18(om )-81(the )-81(standar)]TJ 0.3309 Tc 20.293 0 Td (di)Tj 0 Tc 1.233 0 Td [(nput )-81(and)]TJ -36.132 -1.222 Td [(write )-144(to )-144(the )-144(standar)]TJ 0.3943 Tc 9.087 0 Td (do)Tj 0 Tc 1.551 0 Td [(utput, )-144(but )-144(use )-144(the )-144(asynchr)18(onous )-144(I/O )-144(interfaces.)-644(What )-144(must )-144(you)]TJ -10.638 -1.222 Td [(change )-175(to )-175(make )-175(it )-175(work )-175(pr)20(operly? )-425(Keep)-424(in )-175(mind )-175(that )-175(you )-175(should )-175(get )-175(the )-175(same )-175(r)22(esults)]TJ -0 -1.222 Td (whether the standar)Tj 0.25 Tc 8.884 0 Td (do)Tj 0 Tc 1.407 0 Td [(utput is attached to a terminal, a pipe, or a r)18(egular \336le.)]TJ /T1_0 1 Tf -13.356 -1.667 Td (14.9)Tj /T1_1 1 Tf 3.065 0 Td [(Recall )-44(Figur)]TJ 0.2944 Tc 5.35 0 Td (e1)Tj 0 Tc 1.273 0 Td [(4.23. )-294(Determine)-295(the )-44(br)18(eak-even )-44(point )-44(on )-44(your )-44(system )-44(wher)]TJ 0.2943 Tc 26.521 0 Td (eu)Tj 0 Tc 1.376 0 Td (sing)Tj /TT1 1 Tf 2.147 0 Td (writev)Tj /T1_1 1 Tf -36.668 -1.222 Td (is faster than copying the data yourself and using a single)Tj /TT1 1 Tf 25.711 0 Td (write)Tj /T1_1 1 Tf (.)Tj /T1_0 1 Tf -28.776 -1.667 Td (14.10)Tj /T1_1 1 Tf 3.065 0 Td [(Run )-46(the )-46(pr)18(ogram )-46(in )-46(Figur)]TJ 0.2961 Tc 11.538 0 Td (e1)Tj 0 Tc 1.275 0 Td [(4.27 )-46(to )-46(copy )-46(a )-46(\336le )-46(and )-46(determine )-46(whether )-46(the )-46(last-access )-46(time)]TJ -12.813 -1.222 Td (for the input \336le is updated.)Tj /T1_0 1 Tf -3.065 -1.667 Td [(14.1)37(1)]TJ /T1_1 1 Tf 3.065 0 Td [(In )-138(the )-138(pr)18(ogram )-138(fr)17(om )-138(Figur)]TJ 0.3883 Tc 12.24 0 Td (e1)Tj 0 Tc 1.367 0 Td (4.27,)Tj /TT1 1 Tf 2.388 0 Td (close)Tj /T1_1 1 Tf 3.388 0 Td [(the )-138(input )-138(\336le )-138(after )-138(calling)]TJ /TT1 1 Tf 12.095 0 Td (mmap)Tj /T1_1 1 Tf 2.788 0 Td [(to )-138(verify )-138(that)]TJ -34.267 -1.222 Td (closing the descriptor does not invalidate the memory-mapped I/O.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47104 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(2.5)]TJ 41.507 0 Td (Limits)Tj /T1_1 1 Tf 4.826 0 Td (43)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1366.25 6670.25 cm 0 0 m 3760 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 154.3747 658.9605 Tm (Name of limit)Tj 17.5 0 Td (Description)Tj /T1_2 1 Tf 17.416 0 Td (name)Tj /T1_0 1 Tf 2.417 0 Td [(ar)18(gument)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1366.25 6550.25 cm 0 0 m 3760 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1366.25 6530.25 cm 0 0 m 3760 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 140.5831 644.9226 Tm (ARG_MAX )Tj 34 0 Td (_SC_ARG_MAX)Tj /T1_0 1 Tf -23.9 0 Td [(maximum length, in bytes, of ar)18(guments to the)]TJ /TT0 1 Tf 20.954 0 Td (exec)Tj /T1_0 1 Tf -18.704 -1.25 Td (functions)Tj /TT0 1 Tf -12.35 -1.25 Td (ATEXIT_MAX )Tj 34 0 Td (_SC_ATEXIT_MAX)Tj /T1_0 1 Tf -23.9 0 Td (maximum number of functions that can be)Tj -0.018 Tc 2.25 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(gister)18(ed with the)]TJ /TT0 1 Tf 7.713 0 Td (atexit)Tj /T1_0 1 Tf 3.85 0 Td (function)Tj /TT0 1 Tf -24.769 -1.25 Td (CHILD_MAX )Tj 34 0 Td (_SC_CHILD_MAX)Tj /T1_0 1 Tf -23.9 0 Td [(maximum number of pr)18(ocesses per r)18(eal user ID)]TJ -10.1 -1.25 Td (clock ticks/second)Tj /TT0 1 Tf 34 0 Td (_SC_CLK_TCK)Tj /T1_0 1 Tf -23.9 0 Td (number of clock ticks per second)Tj /TT0 1 Tf -10.1 -1.25 Td (COLL_WEIGHTS_MAX )Tj 34 0 Td (_SC_COLL_WEIGHTS_MAX)Tj /T1_0 1 Tf -23.9 0 Td (maximum number of weights that can be assigned)Tj 2.25 -1.25 Td (to an entry of the)Tj /TT0 1 Tf 7.808 0 Td (LC_COLLATE)Tj /T1_0 1 Tf 6.25 0 Td [(or)18(der keywor)18(d)]TJ -14.058 -1.25 Td (in the locale de\336nition \336le)Tj /TT0 1 Tf -12.35 -1.25 Td (DELAYTIMER_MAX )Tj 34 0 Td (_SC_DELAYTIMER_MAX)Tj /T1_0 1 Tf -23.9 0 Td [(maximum number of timer expiration overr)8(uns)]TJ /TT0 1 Tf -10.1 -1.25 Td (HOST_NAME_MAX )Tj 34 0 Td (_SC_HOST_NAME_MAX)Tj /T1_0 1 Tf -23.9 0 Td [(maximum length of a host name as r)18(eturned by)]TJ /TT0 1 Tf 2.25 -1.25 Td (gethostname)Tj -12.35 -1.25 Td (IOV_MAX )Tj 34 0 Td (_SC_IOV_MAX)Tj /T1_0 1 Tf -23.9 0 Td (maximum number of)Tj /TT0 1 Tf 9.683 0 Td (iovec)Tj /T1_0 1 Tf 3.25 0 Td [(str)8(uctur)18(es that can be)]TJ -10.683 -1.25 Td (used with)Tj /TT0 1 Tf 4.65 0 Td (readv)Tj /T1_0 1 Tf 3.25 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (writev)Tj -21.441 -1.25 Td (LINE_MAX )Tj 34 0 Td (_SC_LINE_MAX)Tj /T1_0 1 Tf -23.9 0 Td (maximum length of a utility\325s input line)Tj /TT0 1 Tf -10.1 -1.25 Td (LOGIN_NAME_MAX )Tj 34 0 Td (_SC_LOGIN_NAME_MAX)Tj /T1_0 1 Tf -23.9 0 Td (maximum length of a login name)Tj /TT0 1 Tf -10.1 -1.25 Td (NGROUPS_MAX )Tj 34 0 Td (_SC_NGROUPS_MAX)Tj /T1_0 1 Tf -23.9 0 Td (maximum number of simultaneous supplementary)Tj 2.25 -1.25 Td [(pr)18(ocess gr)18(oup IDs per pr)18(ocess)]TJ /TT0 1 Tf -12.35 -1.25 Td (OPEN_MAX )Tj 34 0 Td (_SC_OPEN_MAX)Tj /T1_0 1 Tf -23.9 0 Td (one mor)Tj 0.25 Tc 3.663 0 Td (et)Tj 0 Tc 1.055 0 Td (han the maximum value assigned to a)Tj -2.468 -1.25 Td [(newly cr)18(eated \336le descriptor)]TJ /TT0 1 Tf -12.35 -1.25 Td (PAGESIZE )Tj 34 0 Td (_SC_PAGESIZE)Tj /T1_0 1 Tf -23.9 0 Td (system memory page size, in bytes)Tj /TT0 1 Tf -10.1 -1.25 Td (PAGE_SIZE )Tj 34 0 Td (_SC_PAGE_SIZE)Tj /T1_0 1 Tf -23.9 0 Td (system memory page size, in bytes)Tj /TT0 1 Tf -10.1 -1.25 Td (RE_DUP_MAX )Tj 34 0 Td (_SC_RE_DUP_MAX)Tj /T1_0 1 Tf -23.9 0 Td [(number of r)18(epeated occurr)18(ences of a basic r)18(egular)]TJ 2.25 -1.25 Td [(expr)18(ession permitted by the)]TJ /TT0 1 Tf 12.606 0 Td (regexec)Tj /T1_0 1 Tf 4.45 0 Td (and)Tj /TT0 1 Tf -17.056 -1.25 Td (regcomp)Tj /T1_0 1 Tf 4.45 0 Td (functions when using the interval)Tj -4.45 -1.25 Td (notation)Tj /TT0 1 Tf 3.949 0 Td (\\{m,n\\})Tj -16.299 -1.25 Td (RTSIG_MAX )Tj 34 0 Td (_SC_RTSIG_MAX)Tj /T1_0 1 Tf -23.9 0 Td [(maximum number of r)18(eal-time signals r)18(eserved for)]TJ 2.25 -1.25 Td (application use)Tj /TT0 1 Tf -12.35 -1.25 Td (SEM_NSEMS_MAX )Tj 34 0 Td (_SC_SEM_NSEMS_MAX)Tj /T1_0 1 Tf -23.9 0 Td [(maximum number of semaphor)18(es a pr)18(ocess can use)]TJ 2.25 -1.25 Td (at one time)Tj /TT0 1 Tf -12.35 -1.25 Td (SEM_VALUE_MAX )Tj 34 0 Td (_SC_SEM_VALUE_MAX)Tj /T1_0 1 Tf -23.9 0 Td [(maximum value of a semaphor)18(e)]TJ /TT0 1 Tf -10.1 -1.25 Td (SIGQUEUE_MAX )Tj 34 0 Td (_SC_SIGQUEUE_MAX)Tj /T1_0 1 Tf -23.9 0 Td (maximum number of signals that can be queued for)Tj 0.25 Tc 2.25 -1.25 Td (ap)Tj -0.018 Tc 1.351 0 Td (ro)Tj 0 Tc 0.923 0 Td (cess)Tj /TT0 1 Tf -14.624 -1.25 Td (STREAM_MAX )Tj 34 0 Td (_SC_STREAM_MAX)Tj /T1_0 1 Tf -23.9 0 Td (maximum number of standar)Tj 0.25 Tc 13.003 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O str)18(eams per)]TJ -11.951 -1.25 Td [(pr)18(ocess at any given time; if de\336ned, it must)]TJ 0 -1.25 TD (have the same value as)Tj /TT0 1 Tf 10.411 0 Td (FOPEN_MAX)Tj -22.761 -1.25 Td (SYMLOOP_MAX )Tj 34 0 Td (_SC_SYMLOOP_MAX)Tj /T1_0 1 Tf -23.9 0 Td (number of symbolic links that can be traversed)Tj 2.25 -1.25 Td [(during pathname r)18(esolution)]TJ /TT0 1 Tf -12.35 -1.25 Td (TIMER_MAX )Tj 34 0 Td (_SC_TIMER_MAX)Tj /T1_0 1 Tf -23.9 0 Td [(maximum number of timers per pr)18(ocess)]TJ /TT0 1 Tf -10.1 -1.25 Td (TTY_NAME_MAX )Tj 34 0 Td (_SC_TTY_NAME_MAX)Tj /T1_0 1 Tf -23.9 0 Td (length of a terminal device name, including the)Tj 2.25 -1.25 Td (terminating null)Tj /TT0 1 Tf -12.35 -1.25 Td (TZNAME_MAX )Tj 34 0 Td (_SC_TZNAME_MAX)Tj /T1_0 1 Tf -23.9 0 Td (maximum number of bytes for a time zone name)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1366.25 2310.25 cm 0 0 m 3760 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4106.25 2310.25 cm 0 0 m 0 4360 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2194.25 2310.25 cm 0 0 m 0 4360 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5126.25 2310.25 cm 0 0 m 0 4360 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1366.25 2310.25 cm 0 0 m 0 4360 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 230.9744 212.9617 Tm [(Figure 2.1)37(1)]TJ /T1_0 1 Tf 5.658 0 Td (Limits and)Tj /T1_2 1 Tf 5.019 0 Td (name)Tj /T1_0 1 Tf 2.417 0 Td [(ar)18(guments to)]TJ /TT0 1 Tf 6.102 0 Td (sysconf)Tj /T1_0 1 Tf 9.9982 0 0 9.9982 147.5734 188.966 Tm [(4. )-633(The)]TJ -0.018 Tc 3.603 0 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(enced )-46(\336le )-46(for)]TJ /TT0 1 Tf 7.322 0 Td (_PC_PATH_MAX)Tj /T1_0 1 Tf 7.496 0 Td [(must )-46(be )-46(a )-46(dir)17(ectory)]TJ 0.5462 Tc 8.571 0 Td (.T)Tj 0 Tc 1.409 0 Td [(he )-46(value )-46(r)18(eturned)]TJ -27.624 -1.2 Td [(is )-118(the )-118(maximum )-118(length )-118(of )-118(a )-118(r)20(elative )-118(pathname )-118(when )-118(the )-118(speci\336ed )-118(dir)18(ectory )-118(is)]TJ 0 -1.2 TD [(the )-54(working )-54(dir)18(ectory)]TJ 0.5539 Tc 9.669 0 Td (.\()Tj 0 Tc 1.137 0 Td (Unfortunately)Tj 0.3039 Tc 6.186 0 Td (,t)Tj 0 Tc 0.88 0 Td [(his )-54(isn\325t )-54(the )-54(r)18(eal )-54(maximum )-54(length )-54(of )-54(an)]TJ -17.872 -1.2 Td [(absolute )-300(pathname, )-300(which )-300(is )-300(what )-300(we )-300(want )-300(to )-300(know)]TJ 0.7996 Tc 25.365 0 Td (.W)Tj 0 Tc 1.958 0 Td [(e\325ll )-300(r)18(eturn )-300(to )-300(this)]TJ -27.322 -1.2 Td [(pr)18(oblem in Section 2.5.5.\))]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47105 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (524)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(of )-89(\336le )-89(while )-89(r)18(eading, )-89(we )-89(r)18(eturn )-89(the )-89(number )-89(of )-89(bytes )-89(copied )-89(to )-89(the )-89(caller)-74(\325s )-89(buf)15(fer )-89(if )-89(we)]TJ 0 -1.2 TD [(alr)18(eady r)18(ead some data successfully and have not yet satis\336ed the amount r)18(equested.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6450.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 635.4227 Tm (#include "apue.h")Tj 0 -2.14 TD (ssize_t )Tj 12 0 Td [(/*)-600(Read "n" bytes from a descriptor)-1200(*/)]TJ -12 -1.189 Td (readn\(int fd, void *ptr, size_t n\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(size_t )-3000(nleft;)]TJ T* [(ssize_t )-2400(nread;)]TJ 0 -2.14 TD (nleft = n;)Tj 0 -1.189 TD (while \(nleft > 0\) {)Tj 2.4 -1.189 Td (if \(\(nread = read\(fd, ptr, nleft\)\) < 0\) {)Tj 2.4 -1.189 Td (if \(nleft == n\))Tj 2.4 -1.189 Td (return\(-1\); /* error, return -1 */)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td [(break; )-3000(/*)-600(error, return amount read so far */)]TJ 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(nread == 0\) {)Tj 0.6 -1.189 Td (break; )Tj 9.6 0 Td [(/*)-600(EOF */)]TJ -12 -1.189 Td (})Tj T* (nleft -= nread;)Tj T* [(ptr )-1200(+=)-600(nread;)]TJ -2.4 -1.189 Td (})Tj T* [(return\(n - nleft\);)-3600(/* return >= 0 */)]TJ -2.4 -1.189 Td (})Tj 0 -2.616 TD (ssize_t )Tj 12 0 Td [(/*)-600(Write "n" bytes to a descriptor)-1200(*/)]TJ -12 -1.189 Td (writen\(int fd, const void *ptr, size_t n\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(size_t )-3000(nleft;)]TJ T* [(ssize_t )-2400(nwritten;)]TJ 0 -2.14 TD (nleft = n;)Tj 0 -1.189 TD (while \(nleft > 0\) {)Tj 2.4 -1.189 Td (if \(\(nwritten = write\(fd, ptr, nleft\)\) < 0\) {)Tj 2.4 -1.189 Td (if \(nleft == n\))Tj 2.4 -1.189 Td (return\(-1\); /* error, return -1 */)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td [(break; )-3000(/*)-600(error, return amount written so far */)]TJ 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(nwritten == 0\) {)Tj 0.6 -1.189 Td (break;)Tj -2.4 -1.189 Td (})Tj T* (nleft -= nwritten;)Tj 0 -1.189 TD [(ptr )-1200(+=)-600(nwritten;)]TJ -2.4 -1.189 Td (})Tj T* [(return\(n - nleft\);)-3600(/* return >= 0 */)]TJ -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1642.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 239.3849 148.1513 Tm (Figure 14.24)Tj /T1_1 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (readn)Tj /T1_1 1 Tf 3.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (writen)Tj /T1_1 1 Tf 3.85 0 Td (functions)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47106 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (896)Tj /T1_1 1 Tf 3.5 0 Td [(Miscellaneous )-250(Sour)18(ce )-250(Code)]TJ 38.263 0 Td [(Appendix )-250(B)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm (#if defined\(MACOS\) || !defined\(TIOCGWINSZ\))Tj 0 -1.189 TD (#include )Tj T* (#endif)Tj 0 -2.259 TD [(#include )-3600(/* for convenience */)]TJ 0 -1.189 TD [(#include )-3000(/* for convenience */)]TJ T* [(#include )-3000(/* for offsetof */)]TJ 0 -1.189 TD [(#include )-3000(/* for convenience */)]TJ 0 -1.189 TD [(#include )-3000(/* for convenience */)]TJ T* [(#include )-3000(/* for SIG_ERR */)]TJ 0 -2.259 TD (#define MAXLINE 4096)Tj 19.2 0 Td (/* max line length */)Tj -19.2 -2.259 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*D)Tj 0 Tc 1.8 0 Td (efault file access permissions for new files.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td [(#define FILE_MODE)-1800(\(S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH\))]TJ T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*D)Tj 0 Tc 1.8 0 Td (efault permissions for new directories.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td [(#define DIR_MODE)-2400(\(FILE_MODE | S_IXUSR | S_IXGRP | S_IXOTH\))]TJ T* [(typedef void)-2400(Sigfunc\(int\); )-1200(/*)-600(for signal handlers */)]TJ 0 -2.259 TD [(#define min\(a,b\))-2400(\(\(a\) < \(b\) ? \(a\) : \(b\)\))]TJ 0 -1.189 TD [(#define max\(a,b\))-2400(\(\(a\) > \(b\) ? \(a\) : \(b\)\))]TJ 0 -2.259 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (rototypes for our own functions.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td [(char )-1800(*path_alloc\(size_t)-600(*\); )]TJ 26.4 0 Td [(/*)-600(Figure 2.16 */)]TJ -26.4 -1.189 Td [(long )-2400(open_max\(void\);)]TJ 26.4 0 Td (/* Figure 2.17 */)Tj -26.4 -2.259 Td [(int )-3000(set_cloexec\(int\);)]TJ 26.4 0 Td (/* Figure 13.9 */)Tj -26.4 -1.189 Td [(void )-2400(clr_fl\(int,)-600(int\);)]TJ 0 -1.189 TD [(void )-2400(set_fl\(int,)-600(int\); )]TJ 26.4 0 Td [(/*)-600(Figure 3.12 */)]TJ -26.4 -2.259 Td [(void )-2400(pr_exit\(int\);)]TJ 26.4 0 Td (/* Figure 8.5 */)Tj -26.4 -2.259 Td [(void )-2400(pr_mask\(const)-600(char *\);)]TJ 26.4 0 Td (/* Figure 10.14 */)Tj -26.4 -1.189 Td [(Sigfunc *signal_intr\(int, Sigfunc *\);)-4200(/* Figure 10.19 */)]TJ 0 -2.259 TD [(void )-2400(daemonize\(const)-600(char *\);)]TJ 26.4 0 Td (/* Figure 13.1 */)Tj -26.4 -2.259 Td [(void )-2400(sleep_us\(unsigned)-600(int\); )]TJ 26.4 0 Td [(/*)-600(Exercise 14.5 */)]TJ -26.4 -1.189 Td [(ssize_t )-600(readn\(int,)-600(void *, size_t\);)-4800(/* Figure 14.24 */)]TJ 0 -1.189 TD [(ssize_t )-600(writen\(int,)-600(const void *, size_t\); /* Figure 14.24 */)]TJ 0 -2.259 TD [(int )-3000(fd_pipe\(int)-600(*\); )]TJ 26.4 0 Td [(/*)-600(Figure 17.2 */)]TJ -26.4 -1.189 Td [(int )-3000(recv_fd\(int,)-600(ssize_t \(*func\)\(int,)]TJ 10.2 -1.189 Td [(const void *, size_t\)\);)-2400(/* Figure 17.14 */)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47107 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (827)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(449 )-2400(nw)]TJ 0.6 Tc 6.6 0 Td (=w)Tj 0 Tc 1.8 0 Td (rite\(fd, &req, sizeof\(struct printreq\)\);)Tj -8.4 -1.189 Td [(450 )-2400(if)-600(\(nw != sizeof\(struct printreq\)\) {)]TJ 0 -1.189 TD [(451 )-4800(res.jobid)]TJ 0.6 Tc 13.2 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -15 -1.189 Td [(452 )-4800(if)-600(\(nw < 0\))]TJ T* (453 )Tj 9.6 0 Td (res.retcode)Tj 0.6 Tc 7.2 0 Td (=h)Tj 0 Tc 1.8 0 Td (tonl\(errno\);)Tj -18.6 -1.189 Td [(454 )-4800(else)]TJ T* (455 )Tj 9.6 0 Td (res.retcode)Tj 0.6 Tc 7.2 0 Td (=h)Tj 0 Tc 1.8 0 Td (tonl\(EIO\);)Tj -18.6 -1.189 Td [(456 )-4800(log_msg\("client_thread:)-600(can\325t write %s: %s", name,)]TJ T* (457 )Tj 8.4 0 Td (strerror\(res.retcode\)\);)Tj -8.4 -1.189 Td [(458 )-4800(close\(fd\);)]TJ T* [(459 )-4800(strncpy\(res.msg,)-600(strerror\(res.retcode\), MSGLEN_MAX\);)]TJ T* [(460 )-4800(writen\(sockfd,)-600(&res, sizeof\(struct printresp\)\);)]TJ T* [(461 )-4800(unlink\(name\);)]TJ T* [(462 )-4800(sprintf\(name,)-600("%s/%s/%d", SPOOLDIR, DATADIR, jobid\);)]TJ 0 -1.189 TD [(463 )-4800(unlink\(name\);)]TJ 0 -1.189 TD [(464 )-4800(pthread_exit\(\(void)-600(*\)1\);)]TJ T* [(465 )-2400(})]TJ T* [(466 )-2400(close\(fd\);)]TJ 0 -1.783 TD [(467 )-2400(/*)]TJ 0 -1.189 TD [(468 )-3000(*)-600(Send response to client.)]TJ 0 -1.189 TD [(469 )-3000(*/)]TJ 0 -1.189 TD [(470 )-2400(res.retcode)]TJ 0.6 Tc 12 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -13.8 -1.189 Td [(471 )-2400(res.jobid)]TJ 0.6 Tc 10.8 0 Td (=h)Tj 0 Tc 1.8 0 Td (tonl\(jobid\);)Tj -12.6 -1.189 Td [(472 )-2400(sprintf\(res.msg,)-600("request ID %d", jobid\);)]TJ 0 -1.189 TD [(473 )-2400(writen\(sockfd,)-600(&res, sizeof\(struct printresp\)\);)]TJ 0 -1.783 TD [(474 )-2400(/*)]TJ 0 -1.189 TD [(475 )-3000(*)-600(Notify the printer thread, clean up, and exit.)]TJ 0 -1.189 TD [(476 )-3000(*/)]TJ 0 -1.189 TD [(477 )-2400(log_msg\("adding)-600(job %d to queue", jobid\);)]TJ 0 -1.189 TD [(478 )-2400(add_job\(&req,)-600(jobid\);)]TJ 0 -1.189 TD [(479 )-2400(pthread_cleanup_pop\(1\);)]TJ 0 -1.189 TD [(480 )-2400(return\(\(void)-600(*\)0\);)]TJ 0 -1.189 TD [(481 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3016.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 277.5647 Tm [([449 )167(\320 )167(465])]TJ -0.092 Tc 5 0 Td [(We )-391(w)]TJ 0 Tc 2.678 0 Td [(rite )-207(the)]TJ /TT0 1 Tf 3.793 0 Td (printreq)Tj /T1_0 1 Tf 5.257 0 Td [(str)8(uctur)18(e)-457(to)-457(the )-207(contr)18(ol )-207(\336le.)-707(On )-207(err)17(or)74(,)-457(we)-457(log )-207(a)]TJ -11.728 -1.2 Td [(message, )-7(close )-7(the )-7(descriptor )-7(for )-7(the )-7(contr)18(ol )-7(\336le, )-7(send )-7(a )-7(failur)]TJ 0.2575 Tc 27.041 0 Td (er)Tj 0 Tc 1.114 0 Td [(esponse )-7(back)]TJ -28.154 -1.2 Td [(to the client, r)18(emove the data and contr)18(ol \336les, and terminate the thr)18(ead.)]TJ -5 -1.6 Td [([466 )167(\320 )167(473])]TJ -0.092 Tc 5 0 Td [(We )-186(c)]TJ 0 Tc 2.083 0 Td [(lose )-2(the )-2(\336le )-2(descriptor )-2(for )-2(the )-2(contr)19(ol )-2(\336le )-2(and )-2(send )-2(a )-2(message )-2(containing)]TJ -2.083 -1.2 Td (the job ID and a successful status \()Tj /TT0 1 Tf (retcode)Tj /T1_0 1 Tf 19.629 0 Td (set to 0\) back to the client.)Tj -24.629 -1.6 Td [([474 )167(\320 )167(481])]TJ -0.092 Tc 5 0 Td [(We )-203(c)]TJ 0 Tc 2.1 0 Td (all)Tj /TT0 1 Tf 1.351 0 Td (add_job)Tj /T1_0 1 Tf 4.469 0 Td [(to )-19(add )-19(the )-19(r)19(eceived )-19(job )-19(to )-19(the )-19(list )-19(of )-19(pending )-19(print )-19(jobs )-19(and)]TJ -7.919 -1.2 Td (call)Tj /TT0 1 Tf 2.15 0 Td (pthread_cleanup_pop)Tj /T1_0 1 Tf 12.024 0 Td [(to )-374(complete )-374(the )-374(cleanup )-374(pr)18(ocessing. )-624(The)]TJ -14.174 -1.2 Td [(thr)18(ead terminates when we r)18(eturn.)]TJ 0 -1.56 TD [(Note )-107(that )-107(befor)]TJ 0.3574 Tc 6.919 0 Td (et)Tj 0 Tc 1.162 0 Td [(he )-107(thr)18(ead )-107(exits, )-107(we )-107(must )-107(close )-107(any )-107(\336le )-107(descriptors )-107(we )-107(no)]TJ -8.081 -1.2 Td [(longer )-33(need.)-533(Unlike )-33(with )-33(pr)18(ocess )-33(termination, )-33(\336le )-33(descriptors )-33(ar)]TJ 0.2828 Tc 28.706 0 Td (en)Tj 0 Tc 1.344 0 Td [(ot )-33(closed)]TJ -30.05 -1.2 Td [(automatically )-32(when )-32(a )-32(thr)18(ead )-32(ends )-32(if )-32(other )-32(thr)18(eads )-32(exist )-32(in )-32(the )-32(pr)15(ocess. )-282(If)-283(we)]TJ 0 -1.2 Td [(didn\325t )-43(close )-43(unneeded )-43(\336le )-43(descriptors, )-43(we\325d )-43(eventually )-43(r)8(un )-43(out )-43(of )-43(r)21(esour)18(ces.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47108 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (824)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(352 )-1200(/*)]TJ 0 -1.189 TD [(353 )-1800(*)-600(Accept a print job from a client.)]TJ T* [(354 )-1800(*)]TJ T* [(355 )-1800(*)-600(LOCKING: none.)]TJ T* [(356 )-1800(*/)]TJ 0 -1.189 TD [(357 )-1200(void)-600(*)]TJ 0 -1.189 TD [(358 )-1200(client_thread\(void)-600(*arg\))]TJ T* [(359 )-1200({)]TJ T* [(360 )-2400(int)]TJ 16.8 0 Td (n, fd, sockfd, nr, nw, first;)Tj -16.8 -1.189 Td [(361 )-2400(int32_t)]TJ 16.8 0 Td (jobid;)Tj -16.8 -1.189 Td [(362 )-2400(pthread_t)]TJ 16.8 0 Td (tid;)Tj -16.8 -1.189 Td [(363 )-2400(struct)-600(printreq )-2400(req;)]TJ T* [(364 )-2400(struct)-600(printresp )-1800(res;)]TJ 0 -1.189 TD [(365 )-2400(char)]TJ 16.8 0 Td (name[FILENMSZ];)Tj -16.8 -1.189 Td [(366 )-2400(char)]TJ 16.8 0 Td (buf[IOBUFSZ];)Tj -16.8 -1.783 Td [(367 )-2400(tid)]TJ 0.6 Tc 7.2 0 Td (=p)Tj 0 Tc 1.8 0 Td (thread_self\(\);)Tj -9 -1.189 Td [(368 )-2400(pthread_cleanup_push\(client_cleanup,)-600(\(void *\)\(\(long\)tid\)\);)]TJ 0 -1.189 TD [(369 )-2400(sockfd)]TJ 0.6 Tc 9 0 Td (=\()Tj 0 Tc 1.8 0 Td (long\)arg;)Tj -10.8 -1.189 Td [(370 )-2400(add_worker\(tid,)-600(sockfd\);)]TJ 0 -1.783 TD [(371 )-2400(/*)]TJ 0 -1.189 TD [(372 )-3000(*)-600(Read the request header.)]TJ T* [(373 )-3000(*/)]TJ 0 -1.189 TD [(374 )-2400(if)-600(\(\(n = treadn\(sockfd, &req, sizeof\(struct printreq\), 10\)\) !=)]TJ 0 -1.189 TD [(375 )-3600(sizeof\(struct)-600(printreq\)\) {)]TJ T* [(376 )-4800(res.jobid)]TJ 0.6 Tc 13.2 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -15 -1.189 Td [(377 )-4800(if)-600(\(n < 0\))]TJ T* (378 )Tj 9.6 0 Td (res.retcode)Tj 0.6 Tc 7.2 0 Td (=h)Tj 0 Tc 1.8 0 Td (tonl\(errno\);)Tj -18.6 -1.189 Td [(379 )-4800(else)]TJ T* (380 )Tj 9.6 0 Td (res.retcode)Tj 0.6 Tc 7.2 0 Td (=h)Tj 0 Tc 1.8 0 Td (tonl\(EIO\);)Tj -18.6 -1.189 Td [(381 )-4800(strncpy\(res.msg,)-600(strerror\(res.retcode\), MSGLEN_MAX\);)]TJ 0 -1.189 TD [(382 )-4800(writen\(sockfd,)-600(&res, sizeof\(struct printresp\)\);)]TJ 0 -1.189 TD [(383 )-4800(pthread_exit\(\(void)-600(*\)1\);)]TJ 0 -1.189 TD [(384 )-2400(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3016.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 277.5647 Tm [([352 )167(\320 )167(370])-668(The)]TJ /TT0 1 Tf 7.134 0 Td (client_thread)Tj /T1_1 1 Tf 8.26 0 Td [(is )-210(spawned )-210(fr)18(om )-210(the)]TJ /TT0 1 Tf 10.112 0 Td (main)Tj /T1_1 1 Tf 2.86 0 Td [(thr)18(ead )-210(when )-210(a )-210(connect)]TJ -0.018 Tc -23.365 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quest )-59(is )-59(accepted.)-559(Its )-59(job )-59(is )-59(to )-59(r)18(eceive )-59(the )-59(\336le )-59(to )-59(be )-59(printed )-59(fr)12(om )-59(the )-59(client)]TJ /TT0 1 Tf -0.856 -1.2 Td (print)Tj /T1_1 1 Tf 3.25 0 Td [(command. )-250(W)]TJ 0.25 Tc 6.107 0 Td (ec)Tj -0.018 Tc 1.173 0 Td (re)Tj 0 Tc 0.856 0 Td [(ate a separate thr)18(ead for each client print r)18(equest.)]TJ -11.386 -1.56 Td [(The )-47(\336rst )-47(thing )-47(we )-47(do )-47(is )-47(install )-47(a )-47(thr)19(ead )-47(cleanup )-47(handler )-47(\(see )-47(Section )-47(1)55(1.5 )-47(for)]TJ 0.8423 Tc 0 -1.2 TD (ad)Tj 0 Tc 1.953 0 Td [(iscussion )-592(of )-592(thr)17(ead )-592(cleanup )-592(handlers\).)-1092(The )-592(cleanup )-592(handler )-592(is)]TJ /TT0 1 Tf -1.953 -1.2 Td (client_cleanup)Tj /T1_1 1 Tf 0.3297 Tc (,w)Tj 0 Tc 9.814 0 Td [(hich )-80(we )-80(will )-80(see )-80(later)]TJ 0.5797 Tc 9.537 0 Td (.I)Tj 0.3297 Tc 1.167 0 Td (tt)Tj 0 Tc 0.982 0 Td [(akes )-80(a )-80(single )-80(ar)18(gument: )-80(our)]TJ -21.499 -1.2 Td [(thr)18(ead )-17(ID.)-517(Then )-17(we )-17(call)]TJ /TT0 1 Tf 10.918 0 Td (add_worker)Tj /T1_1 1 Tf 6.267 0 Td [(to )-17(cr)18(eate )-17(a)]TJ /TT0 1 Tf 4.779 0 Td (worker_thread)Tj /T1_1 1 Tf 8.067 0 Td [(str)8(uctur)18(e)]TJ -30.031 -1.2 Td [(and add it to the list of active client thr)18(eads.)]TJ -5 -1.6 Td [([371 )167(\320 )167(384])-668(At )-93(this )-93(point, )-93(we )-93(ar)]TJ 0.3427 Tc 13.884 0 Td (ed)Tj 0 Tc 1.433 0 Td [(one )-93(with )-93(the )-93(thr)18(ead\325s )-93(initialization )-93(tasks, )-93(so )-93(we )-93(r)20(ead)]TJ -10.317 -1.2 Td [(the )-214(r)18(equest )-214(header )-214(fr)18(om )-214(the )-214(client.)-714(If )-214(the )-214(client )-214(sends )-214(less )-214(data )-214(than )-214(we)]TJ T* [(expect )-79(or )-79(we )-79(encounter )-79(an )-79(err)20(or)74(,)-329(we)-329(r)19(espond )-79(with )-79(a )-79(message )-79(indicating )-79(the)]TJ -0.018 Tc 0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ason for the err)18(or and call)]TJ /TT0 1 Tf 11.624 0 Td (pthread_exit)Tj /T1_1 1 Tf 7.45 0 Td [(to terminate the thr)18(ead.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47109 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.051 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td [(81)37(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(107 )-2400(/*)]TJ 0 -1.189 TD [(108 )-3000(*)-600(Now send the file.)]TJ T* [(109 )-3000(*/)]TJ T* [(110 )-2400(while)-600(\(\(nr = read\(fd, buf, IOBUFSZ\)\) != 0\) {)]TJ T* [(111 )-4800(nw)]TJ 0.6 Tc 9 0 Td (=w)Tj 0 Tc 1.8 0 Td (riten\(sockfd, buf, nr\);)Tj -10.8 -1.189 Td [(112 )-4800(if)-600(\(nw != nr\) {)]TJ T* (113 )Tj 9.6 0 Td [(if)-600(\(nw < 0\))]TJ -9.6 -1.189 Td (114 )Tj 12 0 Td [(err_sys\("can\325t)-600(write to print server"\);)]TJ -12 -1.189 Td (115 )Tj 9.6 0 Td (else)Tj -9.6 -1.189 Td (116 )Tj 12 0 Td [(err_quit\("short)-600(write \(%d/%d\) to print server",)]TJ -12 -1.189 Td (117 )Tj 13.2 0 Td [(nw,)-600(nr\);)]TJ -13.2 -1.189 Td [(118 )-4800(})]TJ T* [(119 )-2400(})]TJ 0 -2.021 TD [(120 )-2400(/*)]TJ 0 -1.189 TD [(121 )-3000(*)-600(Read the response.)]TJ T* [(122 )-3000(*/)]TJ T* [(123 )-2400(if)-600(\(\(nr = readn\(sockfd, &res, sizeof\(struct printresp\)\)\) !=)]TJ T* [(124 )-3600(sizeof\(struct)-600(printresp\)\))]TJ 0 -1.189 TD [(125 )-4800(err_sys\("can\325t)-600(read response from server"\);)]TJ 0 -1.189 TD [(126 )-2400(if)-600(\(res.retcode != 0\) {)]TJ T* [(127 )-4800(printf\("rejected:)-600(%s\\n", res.msg\);)]TJ T* [(128 )-4800(exit\(1\);)]TJ T* [(129 )-2400(})-600(else {)]TJ T* [(130 )-4800(printf\("job)-600(ID %ld\\n", \(long\)ntohl\(res.jobid\)\);)]TJ T* [(131 )-2400(})]TJ T* [(132 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3797.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 355.6653 Tm [([107 )167(\320 )167(1)54(19] )-472(After)-313(sending )-62(the )-62(header )-62(to )-62(the )-62(daemon, )-62(we )-62(send )-62(the )-62(\336le )-62(to )-62(be )-62(printed.)]TJ -0.092 Tc 37.613 0 Td (We)Tj -0.018 Tc -32.613 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ad )-5(the )-5(\336le)]TJ /TT0 1 Tf 4.638 0 Td (IOBUFSZ)Tj /T1_0 1 Tf 4.455 0 Td [(bytes )-5(at )-5(a )-5(time )-5(and )-5(use)]TJ /TT0 1 Tf 10.371 0 Td (writen)Tj /T1_0 1 Tf 3.855 0 Td [(to )-5(send )-5(the )-5(data )-5(to )-5(the)]TJ -24.175 -1.2 Td [(daemon. )-456(As)-455(with )-206(the )-206(header)75(,)-456(if)-456(t)1(he )-206(write )-206(fails )-206(or )-206(we )-206(write )-206(less )-206(than )-206(we)]TJ 0 -1.2 Td [(expect, we print an err)18(or message and exit.)]TJ -5 -1.6 Td [([120 )167(\320 )167(132])-668(Once )-111(we )-111(have )-111(sent )-111(the )-111(\336le )-111(to )-111(be )-111(printed )-111(to )-111(the )-111(print )-111(spooling )-111(daemon, )-111(we)]TJ -0.018 Tc 5 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ad )-245(the )-245(daemon\325s )-245(r)18(esponse. )-495(If)-495(the )-245(print )-245(r)18(equest )-245(failed, )-245(the )-245(r)18(eturn )-245(code)]TJ -0.856 -1.2 Td (\()Tj /TT0 1 Tf (retcode)Tj /T1_0 1 Tf 0.3435 Tc (\)w)Tj 0 Tc 6.044 0 Td [(ill )-93(be )-93(nonzer)18(o, )-93(so )-93(we )-93(print )-93(the )-93(textual )-93(err)14(or )-93(message )-93(included)]TJ -6.043 -1.2 Td [(in )-8(the )-8(r)18(esponse. )-258(If)-258(the )-8(r)18(equest )-8(succeeded, )-8(we )-8(print )-8(the )-8(job )-8(ID )-8(so )-8(that )-8(the )-8(user)]TJ 0 -1.2 Td [(knows )-185(how )-185(to )-185(r)18(efer )-185(to )-185(the )-185(r)18(equest )-185(in )-185(the )-185(futur)20(e. )-435(\(W)74(riting )-185(a )-185(command )-185(to)]TJ 0 -1.2 TD [(cancel )-22(a )-22(pending )-22(print )-22(r)20(equest )-22(is )-22(left )-22(as )-22(an )-22(exer)18(cise; )-22(the )-22(job )-22(ID )-22(can )-22(be )-22(used )-22(in)]TJ T* [(the )-205(cancellation )-205(r)18(equest )-205(to )-205(identify )-205(the )-205(job )-205(to )-205(be )-205(r)15(emoved )-205(fr)18(om )-205(the )-205(print)]TJ T* [(queue. )-444(See )-444(Exer)18(cise )-444(21.5.\))-946(When)]TJ /TT0 1 Tf 16.777 0 Td (submit_file)Tj /T1_0 1 Tf -0.018 Tc 7.295 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-445(to )-445(the)]TJ /TT0 1 Tf 6.673 0 Td (main)Tj /T1_0 1 Tf -31.6 -1.2 Td (function, we exit, indicating success.)Tj 0 -1.8 TD [(Note )-166(that )-166(a )-166(successful )-166(r)16(esponse )-166(fr)18(om )-166(the )-166(daemon )-166(does )-166(not )-166(mean )-166(that )-166(the)]TJ 0 -1.2 TD [(printer )-417(was )-417(able )-417(to )-417(print )-417(the )-417(\336le; )-417(it )-417(mer)18(ely )-417(means )-417(that )-417(the )-417(daemon)]TJ T* (successfully added the print job to the queue.)Tj -5 -1.8 Td [(This )-138(completes )-138(our )-138(look )-138(at )-138(the )-138(print )-138(command.)-638(The )-138(last )-138(\336le )-138(we )-138(will )-138(look )-138(at )-138(is )-138(the )-138(C)]TJ T* [(sour)18(ce \336le for the printer spooling daemon.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47110 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (810)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 134.9919 659.4594 Tm [(81 )-2400(req.size)]TJ 0.6 Tc 9.6 0 Td (=h)Tj 0 Tc 1.8 0 Td (tonl\(nbytes\);)Tj -11.4 -2.021 Td [(82 )-2400(if)-600(\(text\))]TJ 0 -1.189 TD [(83 )-4800(req.flags)]TJ 0.6 Tc 12.6 0 Td (=h)Tj 0 Tc 1.8 0 Td (tonl\(PR_TEXT\);)Tj -14.4 -1.189 Td [(84 )-2400(else)]TJ T* [(85 )-4800(req.flags)]TJ 0.6 Tc 12.6 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -14.4 -2.021 Td [(86 )-2400(if)-600(\(\(len = strlen\(fname\)\) >= JOBNM_MAX\) {)]TJ T* [(87 )-4800(/*)]TJ T* (88 )Tj 7.2 0 Td [(*)-600(Truncate the filename \(+-5 accounts for the leading)]TJ -7.2 -1.189 Td (89 )Tj 7.2 0 Td [(*)-600(four characters and the terminating null\).)]TJ -7.2 -1.189 Td (90 )Tj 7.2 0 Td (*/)Tj -7.2 -1.189 Td [(91 )-4800(strcpy\(req.jobnm,)-600("... "\);)]TJ T* [(92 )-4800(strncat\(req.jobnm,)-600(&fname[len-JOBNM_MAX+5], JOBNM_MAX-5\);)]TJ T* [(93 )-2400(})-600(else {)]TJ T* [(94 )-4800(strcpy\(req.jobnm,)-600(fname\);)]TJ T* [(95 )-2400(})]TJ 0 -2.021 TD [(96 )-2400(/*)]TJ 0 -1.189 TD [(97 )-3000(*)-600(Send the header to the server.)]TJ T* [(98 )-3000(*/)]TJ T* [(99 )-2400(nw)]TJ 0.6 Tc 6 0 Td (=w)Tj 0 Tc 1.8 0 Td (riten\(sockfd, &req, sizeof\(struct printreq\)\);)Tj -8.4 -1.189 Td [(100 )-2400(if)-600(\(nw != sizeof\(struct printreq\)\) {)]TJ T* [(101 )-4800(if)-600(\(nw < 0\))]TJ T* (102 )Tj 9.6 0 Td [(err_sys\("can\325t)-600(write to print server"\);)]TJ -9.6 -1.189 Td [(103 )-4800(else)]TJ T* (104 )Tj 9.6 0 Td [(err_quit\("short)-600(write \(%d/%d\) to print server",)]TJ -9.6 -1.189 Td (105 )Tj 10.8 0 Td [(nw,)-600(sizeof\(struct printreq\)\);)]TJ -10.8 -1.189 Td [(106 )-2400(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3647.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 340.6871 Tm [([81 )167(\320 )167(95])]TJ -0.092 Tc 5 0 Td [(We )-244(s)]TJ 0 Tc 2.121 0 Td (tor)Tj 0.3098 Tc 1.249 0 Td (et)Tj 0 Tc 1.115 0 Td [(he )-60(size )-60(of )-60(the )-60(\336le )-60(to )-60(be )-60(printed )-60(in )-60(the )-60(header )-60(after )-60(converting )-60(it )-60(to)]TJ -4.485 -1.2 Td [(network byte or)18(der)]TJ 0.5 Tc 8.466 0 Td (.T)Tj 0 Tc 1.363 0 Td (hen we do the same with the)Tj /TT0 1 Tf 12.956 0 Td (PR_TEXT)Tj /T1_1 1 Tf 4.45 0 Td (\337ag if the \336le is)Tj -27.235 -1.2 Td [(to )-224(be )-224(printed )-224(as )-224(plaintext.)-722(By )-223(translating )-223(these )-223(integers )-223(to )-223(network )-223(byte)]TJ 0 -1.2 TD [(or)18(der)74(,)-377(we)-377(c)-1(an )-127(r)8(un )-127(the )-127(print )-127(command )-127(on )-127(a )-127(client )-127(system )-127(while )-127(the )-127(printer)]TJ -0 -1.2 Td [(spooling )-88(daemon )-88(is )-88(r)8(unning )-88(on )-88(another )-88(computer )-88(system.)-588(If )-88(these )-88(systems)]TJ T* [(use )-195(pr)18(ocessors )-195(with )-195(dif)19(fer)18(ent )-195(byte )-195(or)18(dering, )-195(then )-195(the )-195(commands )-195(will )-195(still)]TJ -0 -1.2 Td [(work. )-250(\(W)]TJ 0.25 Tc 4.322 0 Td (ed)Tj 0 Tc 1.34 0 Td [(iscussed byte or)18(dering in Section 16.3.1.\))]TJ -0.092 Tc -5.662 -1.8 Td [(We )-335(s)]TJ 0 Tc 2.212 0 Td [(et )-151(the )-151(job )-151(name )-151(to )-151(the )-151(name )-151(of )-151(the )-151(\336le )-151(being )-151(printed.)-650(If )-151(the )-151(name )-151(is)]TJ -2.212 -1.2 Td [(longer )-111(than )-111(will )-111(\336t )-111(in )-111(the )-111(job )-111(name )-111(\336eld )-111(in )-111(the )-111(message, )-111(we )-111(copy )-111(only )-111(the)]TJ T* [(last )-16(portion )-16(of )-16(the )-16(name )-16(that )-16(will )-16(\336t.)-516(This )-16(ef)18(fectively )-16(tr)8(uncates )-16(the )-16(beginning)]TJ T* [(portion )-174(of )-174(the )-174(name.)-675(In )-174(this )-174(case, )-174(we )-174(pr)18(epend )-174(an )-174(ellipsis )-174(to )-174(indicate )-174(that)]TJ T* (ther)Tj 0.25 Tc 1.764 0 Td (ew)Tj 0 Tc 1.563 0 Td (er)Tj 0.25 Tc 0.856 0 Td (em)Tj 0 Tc 1.612 0 Td (or)Tj 0.25 Tc 0.923 0 Td (ec)Tj 0 Tc 1.173 0 Td (haracters than would \336t in the \336eld.)Tj -12.891 -1.72 Td [([96 )167(\320 )167(106])]TJ -0.092 Tc 5 0 Td [(We )-298(s)]TJ 0 Tc 2.175 0 Td [(end )-114(the )-114(r)18(equest )-114(header )-114(to )-114(the )-114(daemon )-114(using)]TJ /TT0 1 Tf 20.58 0 Td (writen)Tj /T1_1 1 Tf 0.6139 Tc (.\()Tj 0 Tc 4.797 0 Td [(Recall )-114(that )-114(we)]TJ -27.552 -1.2 Td [(intr)18(oduced )-21(the)]TJ /TT0 1 Tf 6.798 0 Td (writen)Tj /T1_1 1 Tf 3.871 0 Td [(function )-21(in )-21(Figur)]TJ 0.2707 Tc 7.504 0 Td (e1)Tj 0 Tc 1.25 0 Td [(4.24.\) )-271(The)]TJ /TT0 1 Tf 4.798 0 Td (writen)Tj /T1_1 1 Tf 3.871 0 Td [(function )-21(uses)]TJ -28.092 -1.2 Td [(multiple )-17(calls )-17(to)]TJ /TT0 1 Tf 7.387 0 Td (write)Tj /T1_1 1 Tf [(,)-267(if)-267(n)1(ecessary)111(,)-267(to)-267(t)1(ransmit )-17(the )-17(speci\336ed )-17(amount.)-517(If )-17(the)]TJ /TT0 1 Tf -7.387 -1.2 Td (writen)Tj /T1_1 1 Tf 3.993 0 Td [(function )-143(r)18(eturns )-143(an )-143(err)18(or )-143(or )-143(transmits )-143(less )-143(than )-143(we )-143(r)22(equested, )-143(we)]TJ -3.993 -1.2 Td [(print an err)18(or message and exit.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47111 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (738)Tj /T1_1 1 Tf 3.5 0 Td [(Pseudo )-250(T)92(erminals )]TJ 38.741 0 Td [(Chapter)-500(19)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (isatty)Tj /T1_1 1 Tf -0.018 Tc 4.05 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-200(false.)-700(This )-200(means )-200(that )-200(the )-200(line )-200(discipline )-200(above )-200(the )-200(actual )-200(terminal)]TJ -0.018 Tc -4.906 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(mains )-32(in )-32(canonical )-32(mode )-32(with )-32(echo )-32(enabled.)-532(By )-32(specifying )-32(the)]TJ /TT0 1 Tf 28.261 0 Td (-e)Tj /T1_1 1 Tf 1.482 0 Td [(option, )-32(we )-32(turn )-32(of)18(f)]TJ -30.599 -1.2 Td [(echo )-49(in )-49(the )-49(line )-49(discipline )-49(module )-49(above )-49(the )-49(PTY )-49(slave.)-549(If )-49(we )-49(don\325t )-49(do )-49(this, )-49(everything)]TJ 0 -1.2 TD (we type is echoed twice)Tj 0.0833 Tc 10.588 0 Td (\321b)Tj 0.25 Tc 1.636 0 Td (yb)Tj 0 Tc 1.359 0 Td (oth line discipline modules.)Tj -0.092 Tc -11.784 -1.2 Td [(We )-334(a)]TJ 0 Tc 2.287 0 Td [(lso )-150(have )-150(the)]TJ /TT0 1 Tf 5.973 0 Td (-e)Tj /T1_1 1 Tf 1.6 0 Td [(option )-150(turn )-150(of)]TJ 0.3997 Tc 6.458 0 Td (ft)Tj 0 Tc 1.059 0 Td (he)Tj /TT0 1 Tf 1.461 0 Td (ONLCR)Tj /T1_1 1 Tf 3.4 0 Td [(\337ag )-150(in )-150(the)]TJ /TT0 1 Tf 5.123 0 Td (termios)Tj /T1_1 1 Tf 4.6 0 Td [(str)8(uctur)]TJ 0.3997 Tc 3.49 0 Td (et)Tj 0 Tc 1.205 0 Td (o)Tj -38.454 -1.2 Td [(pr)18(event )-56(all )-56(the )-56(output )-56(fr)18(om )-56(the )-56(copr)18(ocess )-56(fr)18(om )-56(being )-56(terminated )-56(with )-56(a )-56(carriage )-56(r)17(eturn)]TJ 0 -1.2 Td (and a newline.)Tj -0.092 Tc 1.8 -1.2 Td (Te)Tj 0 Tc 1 0 Td [(sting )-10(this )-10(example )-10(on )-10(dif)19(fer)18(ent )-10(systems )-10(r)18(evealed )-10(another )-10(pr)19(oblem )-10(that )-10(we )-10(alluded)]TJ -2.8 -1.2 Td [(to )-31(in )-31(Section )-31(14.7 )-31(when )-31(we )-31(described )-31(the)]TJ /TT0 1 Tf 18.398 0 Td (readn)Tj /T1_1 1 Tf 3.281 0 Td (and)Tj /TT0 1 Tf 1.974 0 Td (writen)Tj /T1_1 1 Tf 3.881 0 Td [(functions. )-281(The)-280(amount )-31(of)]TJ -27.534 -1.2 Td [(data )-300(r)18(eturned )-300(by )-300(a)]TJ /TT0 1 Tf 9.597 0 Td (read)Tj /T1_1 1 Tf 0.5498 Tc (,w)Tj 0 Tc 4.034 0 Td [(hen )-300(the )-300(descriptor )-300(r)19(efers )-300(to )-300(something )-300(other )-300(than )-300(an)]TJ -13.631 -1.2 Td [(or)18(dinary )-107(disk )-107(\336le, )-107(can )-107(dif)18(fer )-107(between )-107(implementations.)-607(This )-107(copr)18(ocess )-107(example )-107(using)]TJ /TT0 1 Tf T* (pty)Tj /T1_1 1 Tf 2.115 0 Td [(gave )-65(unexpected )-65(r)18(esults )-65(that )-65(wer)]TJ 0.3154 Tc 14.83 0 Td (et)Tj 0 Tc 1.12 0 Td [(racked )-65(down )-65(to )-65(the)]TJ /TT0 1 Tf 9.079 0 Td (read)Tj /T1_1 1 Tf 2.716 0 Td [(function )-65(on )-65(the )-65(pipe)]TJ -29.859 -1.2 Td [(in )-59(the )-59(pr)18(ogram )-59(fr)18(om )-59(Figur)]TJ 0.3088 Tc 11.875 0 Td (e1)Tj 0 Tc 1.288 0 Td [(5.18, )-59(which )-59(r)18(eturned )-59(less )-59(than )-59(a )-59(line.)-559(The )-59(solution )-59(was )-59(to)]TJ -13.163 -1.2 Td [(not )-2(use )-2(the )-2(pr)18(ogram )-2(shown )-2(in )-2(Figur)]TJ 0.2516 Tc 15.939 0 Td (e1)Tj 0 Tc 1.231 0 Td [(5.18, )-2(but )-2(rather )-2(to )-2(use )-2(the )-2(version )-2(of )-2(this )-2(pr)22(ogram)]TJ -17.169 -1.2 Td [(fr)18(om )-41(Exer)18(cise )-41(15.5 )-41(that )-41(was )-41(modi\336ed )-41(to )-41(use )-41(the )-41(standar)]TJ 0.2911 Tc 24.734 0 Td (dI)Tj 0 Tc 1.239 0 Td [(/O )-41(library)]TJ 0.2911 Tc 4.553 0 Td (,w)Tj 0 Tc 1.375 0 Td [(ith )-41(the )-41(standar)18(d)]TJ -31.901 -1.2 Td [(I/O )-5(str)18(eams )-5(for )-5(both )-5(pipes )-5(set )-5(to )-5(line )-5(buf)20(fering. )-255(W)55(ith )-5(this )-5(appr)18(oach, )-5(the)]TJ /TT0 1 Tf 32.038 0 Td (fgets)Tj /T1_1 1 Tf 3.255 0 Td (function)Tj -35.293 -1.2 Td [(does )-327(as )-327(many)]TJ /TT0 1 Tf 7.236 0 Td (read)Tj /T1_1 1 Tf 0.577 Tc (sa)Tj 0.5769 Tc 3.901 0 Td (sr)Tj 0 Tc 1.378 0 Td [(equir)18(ed )-327(to )-327(obtain )-327(a )-327(complete )-327(line.)-826(The)]TJ /TT0 1 Tf 19.474 0 Td (while)Tj /T1_1 1 Tf 3.577 0 Td [(loop )-327(in)]TJ -35.566 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td [(5.18 assumes that each line sent to the copr)18(ocess causes one line to be r)18(eturned.)]TJ /TT1 1 Tf -7.212 -2.88 Td [(Driving Interactive Pr)20(ograms Noninteractivel)15(y)]TJ /T1_1 1 Tf 3.6 -2.04 Td [(Although )-18(it\325s )-18(tempting )-18(to )-18(think )-18(that)]TJ /TT0 1 Tf 16.178 0 Td (pty)Tj /T1_1 1 Tf 2.068 0 Td [(can )-18(r)8(un )-18(any )-18(copr)18(ocess, )-18(even )-18(a )-18(copr)18(ocess )-18(that )-18(is)]TJ -18.246 -1.2 Td [(interactive, )-240(it )-240(doesn\325t )-240(work.)-741(The )-240(pr)18(oblem )-240(is )-240(that)]TJ /TT0 1 Tf 23.397 0 Td (pty)Tj /T1_1 1 Tf 2.29 0 Td [(just )-240(copies )-240(everything )-240(on )-240(its)]TJ -25.687 -1.2 Td (standar)Tj 0.3578 Tc 3.32 0 Td (di)Tj 0 Tc 1.26 0 Td [(nput )-108(to )-108(the )-108(PTY )-108(and )-108(everything )-108(fr)19(om )-108(the )-108(PTY )-108(to )-108(its )-108(standar)]TJ 0.3579 Tc 27.338 0 Td (do)Tj 0 Tc 1.515 0 Td [(utput, )-108(never)]TJ -33.433 -1.2 Td (looking at what it sends or what it gets back.)Tj 1.8 -1.2 Td [(As )-8(an )-8(example, )-8(we )-8(can )-8(r)8(un )-8(the)]TJ /TT0 1 Tf 13.888 0 Td (telnet)Tj /T1_1 1 Tf 3.858 0 Td [(command )-8(under)]TJ /TT0 1 Tf 7.635 0 Td (pty)Tj /T1_1 1 Tf 0.2581 Tc (,t)Tj 0 Tc 2.634 0 Td [(alking )-8(dir)18(ectly )-8(to )-8(the)]TJ -0.018 Tc -29.816 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (mote host:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5916 339.0797 Tm (pty telnet 192.168.1.3)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5927 321.0807 Tm [(Doing )-51(this )-51(pr)18(ovides )-51(no )-51(bene\336t )-51(over )-51(just )-51(typing)]TJ /TT0 1 Tf 21.314 0 Td [(telnet )-51(192.168.1.3)]TJ /T1_1 1 Tf 0.3015 Tc (,b)Tj 0 Tc 11.956 0 Td [(ut )-51(we )-51(would)]TJ -33.27 -1.2 Td [(like )-64(to )-64(r)8(un )-64(the)]TJ /TT0 1 Tf 6.706 0 Td (telnet)Tj /T1_1 1 Tf 3.914 0 Td [(pr)18(ogram )-64(fr)18(om )-64(a )-64(script, )-64(per)16(haps )-64(to )-64(check )-64(some )-64(condition )-64(on )-64(the)]TJ -0.018 Tc -10.62 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(mote host.)-500(If the \336le)]TJ /TT0 1 Tf 9.294 0 Td (telnet.cmd)Tj /T1_1 1 Tf 6.25 0 Td (contains the four lines)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5917 280.3832 Tm (sar)Tj /T1_2 1 Tf 0 -1.189 TD (passwd)Tj /TT0 1 Tf T* (uptime)Tj T* (exit)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5928 230.2862 Tm [(the )-56(\336rst )-56(line )-56(is )-56(the )-56(user )-56(name )-56(we )-56(use )-56(to )-56(log )-56(in )-56(to )-56(the )-56(r)18(emote )-56(host, )-56(the )-56(second )-56(line )-56(is )-56(the)]TJ 0 -1.2 TD [(passwor)18(d, )-73(the )-73(thir)]TJ 0.3231 Tc 8.176 0 Td (dl)Tj 0 Tc 1.225 0 Td [(ine )-73(is )-73(a )-73(command )-73(we\325d )-73(like )-73(to )-73(r)7(un, )-73(and )-73(the )-73(fourth )-73(line )-73(terminates)]TJ -9.401 -1.2 Td [(the session.)-500(But if we r)8(un this script as)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5921 189.5886 Tm (pty -i < telnet.cmd telnet 192.168.1.3)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5932 171.5897 Tm [(it )-1(doesn\325t )-1(do )-1(what )-1(we )-1(want.)-501(Instead, )-1(the )-1(contents )-1(of )-1(the )-1(\336le)]TJ /TT0 1 Tf 26.571 0 Td (telnet.cmd)Tj /T1_1 1 Tf 6.251 0 Td (ar)Tj 0.2507 Tc 0.877 0 Td (es)Tj 0 Tc 1.154 0 Td [(ent )-1(to )-1(the)]TJ -0.018 Tc -34.853 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(mote )-142(host )-142(befor)19(e)-392(it)-392(h)1(as )-141(a )-141(chance )-141(to )-141(pr)18(ompt )-141(us )-141(for )-141(an )-141(account )-141(name )-141(and )-141(passwor)13(d.)]TJ -0.856 -1.2 Td [(When )-141(it )-141(turns )-141(of)]TJ 0.3911 Tc 7.624 0 Td (fe)Tj 0 Tc 1.203 0 Td [(choing )-141(to )-141(r)18(ead )-141(the )-141(passwor)18(d,)]TJ /TT0 1 Tf 13.75 0 Td (login)Tj /T1_1 1 Tf 3.391 0 Td [(uses )-141(the)]TJ /TT0 1 Tf 4.099 0 Td (tcsetattr)Tj /T1_1 1 Tf 5.791 0 Td (option,)Tj -35.858 -1.2 Td [(which discar)18(ds any data alr)18(eady queued.)-500(Thus, the data we send is thr)18(own away)111(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47112 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (732)Tj /T1_1 1 Tf 3.5 0 Td [(Pseudo )-250(T)92(erminals )]TJ 38.741 0 Td [(Chapter)-500(19)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (Befor)Tj 0.6258 Tc 2.346 0 Td (ec)Tj 0 Tc 1.549 0 Td (alling)Tj /TT0 1 Tf 3.137 0 Td (pty_fork)Tj /T1_1 1 Tf [(,)-626(we)-626(fetch )-376(the )-376(curr)18(ent )-376(values )-376(for )-376(the)]TJ /TT0 1 Tf 23.65 0 Td (termios)Tj /T1_1 1 Tf 4.826 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (winsize)Tj /T1_1 1 Tf 4.466 0 Td [(str)8(uctur)18(es, )-16(passing )-16(these )-16(as )-16(ar)18(guments )-16(to)]TJ /TT0 1 Tf 18.434 0 Td (pty_fork)Tj /T1_1 1 Tf 0.5162 Tc (.T)Tj 0 Tc 6.179 0 Td [(his )-16(way)]TJ 0.2661 Tc 3.342 0 Td (,t)Tj 0 Tc 0.842 0 Td [(he )-16(PTY )-16(slave)]TJ -33.264 -1.2 Td [(assumes the same initial state as the curr)18(ent terminal.)]TJ 1.8 -1.2 Td [(After )-37(r)18(eturning )-37(fr)17(om)]TJ /TT0 1 Tf 9.503 0 Td (pty_fork)Tj /T1_1 1 Tf 0.2874 Tc (,t)Tj 0 Tc 5.663 0 Td [(he )-37(child )-37(optionally )-37(turns )-37(of)]TJ 0.2874 Tc 12.151 0 Td (fe)Tj 0 Tc 1.099 0 Td [(choing )-37(for )-37(the )-37(slave)]TJ -30.217 -1.2 Td [(PTY )-40(and )-40(then )-40(calls)]TJ /TT0 1 Tf 8.656 0 Td (execvp)Tj /T1_1 1 Tf 3.89 0 Td [(to )-40(execute )-40(the )-40(pr)18(ogram )-40(speci\336ed )-40(on )-40(the )-40(command )-40(line.)-540(All)]TJ -0.018 Tc -12.546 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (maining command)Tj 8.384 0.09 Td (-)Tj 0.333 -0.09 Td [(line ar)18(guments ar)]TJ 0.25 Tc 7.75 0 Td (ep)Tj 0 Tc 1.33 0 Td [(assed as ar)18(guments to this pr)18(ogram.)]TJ -16.853 -1.2 Td [(The )-47(par)18(ent )-47(optionally )-47(sets )-47(the )-47(user)-73(\325s )-47(terminal )-47(to )-47(raw )-47(mode.)-547(In )-47(this )-47(case, )-47(the )-47(par)19(ent)]TJ -1.8 -1.2 Td [(also )-9(sets )-9(an )-9(exit )-9(handler )-9(to )-9(r)18(eset )-9(the )-9(terminal )-9(state )-9(when)]TJ /TT0 1 Tf 25.023 0 Td (exit)Tj /T1_1 1 Tf 2.659 0 Td [(is )-9(called.)]TJ -0.092 Tc 4.349 0 Td [(We )-193(d)]TJ 0 Tc 2.257 0 Td [(escribe )-9(the)]TJ /TT0 1 Tf -34.289 -1.2 Td (do_driver)Tj /T1_1 1 Tf 5.65 0 Td (function in the next section.)Tj -3.85 -1.2 Td [(The )-195(par)18(ent )-195(then )-195(calls )-195(the )-195(function)]TJ /TT0 1 Tf 16.22 0 Td (loop)Tj /T1_1 1 Tf 2.845 0 Td (\(Figur)Tj 0.4447 Tc 2.716 0 Td (e1)Tj 0 Tc 1.424 0 Td [(9.12\), )-195(which )-195(copies )-195(everything)]TJ -0.018 Tc -25.004 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ceived )-239(fr)18(om )-239(the )-239(standar)]TJ 0.4886 Tc 11.181 0 Td (di)Tj 0 Tc 1.391 0 Td [(nput )-238(to )-238(the )-238(PTY )-238(master )-238(and )-238(everything )-238(fr)18(om )-238(the )-238(PTY)]TJ -13.427 -1.2 Td [(master )-147(to )-147(standar)]TJ 0.3972 Tc 7.993 0 Td (do)Tj 0 Tc 1.554 0 Td [(utput. )-397(For)-397(variety)111(,)-397(we)-397(have )-147(coded )-147(it )-147(in )-147(two )-147(pr)17(ocesses )-147(this )-147(time,)]TJ -9.548 -1.2 Td [(although a single pr)18(ocess using)]TJ /TT0 1 Tf 14.11 0 Td (select)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.1 0 Td (poll)Tj /T1_1 1 Tf [(,)-250(or)-250(multiple thr)18(eads would also work.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5178.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 508.238 Tm (#include "apue.h")Tj 0 -1.902 TD [(#define BUFFSIZE)-2400(512)]TJ 0 -1.902 TD (static void sig_term\(int\);)Tj 0 -1.189 TD [(static volatile sig_atomic_t)-2400(sigcaught; )-600(/*)-600(set by signal handler */)]TJ 0 -1.902 TD (void)Tj 0 -1.189 TD (loop\(int ptym, int ignoreeof\))Tj T* ({)Tj 2.4 -1.189 Td [(pid_t )-1200(child;)]TJ T* [(int )-2400(nread;)]TJ T* [(char )-1800(buf[BUFFSIZE];)]TJ 0 -1.902 TD (if \(\(child = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(child == 0\) {)-2400(/* child copies stdin to ptym */)]TJ 0.6 -1.189 Td (for \( ; ; \) {)Tj 2.4 -1.189 Td (if \(\(nread = read\(STDIN_FILENO, buf, BUFFSIZE\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("read error from stdin"\);)Tj -2.4 -1.189 Td (else if \(nread == 0\))Tj 2.4 -1.189 Td [(break; )-3000(/*)-600(EOF on stdin means we\325re done */)]TJ -2.4 -1.189 Td (if \(writen\(ptym, buf, nread\) != nread\))Tj 2.4 -1.189 Td (err_sys\("writen error to master pty"\);)Tj -4.8 -1.189 Td (})Tj T* (/*)Tj 0.6 -1.189 Td [(*)-600(We)-600(always terminate when we encounter an EOF on stdin,)]TJ 0.6 Tc 0 -1.189 TD (*b)Tj 0 Tc 1.8 0 Td (ut we notify the parent only if ignoreeof is 0.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(ignoreeof == 0\))Tj 2.4 -1.189 Td [(kill\(getppid\(\), SIGTERM\);)-1800(/* notify parent */)]TJ -2.4 -1.189 Td [(exit\(0\); )-1800(/*)-600(and terminate; child can\325t return */)]TJ -2.4 -1.189 Td (})Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (arent copies ptym to stdout.)Tj -1.8 -1.189 Td (*/)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47113 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (818)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(168 )-1200(/*)]TJ 0 -1.189 TD [(169 )-1800(*)-600(Initialize the job ID file.)-1200(Use a record lock to prevent)]TJ T* [(170 )-1800(*)-600(more than one printer daemon from running at a time.)]TJ T* [(171 )-1800(*)]TJ T* [(172 )-1800(*)-600(LOCKING: none, except for record-lock on job ID file.)]TJ 0 -1.189 TD [(173 )-1800(*/)]TJ 0 -1.189 TD [(174 )-1200(void)]TJ T* [(175 )-1200(init_request\(void\))]TJ T* [(176 )-1200({)]TJ T* [(177 )-2400(int )-2400(n;)]TJ T* [(178 )-2400(char)-2400(name[FILENMSZ];)]TJ 0 -1.902 TD [(179 )-2400(sprintf\(name,)-600("%s/%s", SPOOLDIR, JOBFILE\);)]TJ 0 -1.189 TD [(180 )-2400(jobfd)]TJ 0.6 Tc 8.4 0 Td (=o)Tj 0 Tc 1.8 0 Td (pen\(name, O_CREAT|O_RDWR, S_IRUSR|S_IWUSR\);)Tj -10.2 -1.189 Td [(181 )-2400(if)-600(\(write_lock\(jobfd, 0, SEEK_SET, 0\) < 0\))]TJ T* [(182 )-4800(log_quit\("daemon)-600(already running"\);)]TJ 0 -1.902 TD [(183 )-2400(/*)]TJ 0 -1.189 TD [(184 )-3000(*)-600(Reuse the name buffer for the job counter.)]TJ T* [(185 )-3000(*/)]TJ T* [(186 )-2400(if)-600(\(\(n = read\(jobfd, name, FILENMSZ\)\) < 0\))]TJ T* [(187 )-4800(log_sys\("can\325t)-600(read job file"\);)]TJ T* [(188 )-2400(if)-600(\(n == 0\))]TJ T* [(189 )-4800(nextjob)]TJ 0.6 Tc 12 0 Td (=1)Tj 0 Tc 1.8 0 Td (;)Tj -13.8 -1.189 Td [(190 )-2400(else)]TJ T* [(191 )-4800(nextjob)]TJ 0.6 Tc 12 0 Td (=a)Tj 0 Tc 1.8 0 Td (tol\(name\);)Tj -13.8 -1.189 Td [(192 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3850.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 361.0147 Tm [([168 )167(\320 )167(182])-668(The)]TJ /TT0 1 Tf 6.974 0 Td (init_request)Tj /T1_1 1 Tf 7.5 0 Td [(function )-50(does )-50(two )-50(things: )-50(it )-50(places )-50(a )-50(r)18(ecor)]TJ 0.3 Tc 18.663 0 Td (dl)Tj 0 Tc 1.202 0 Td [(ock )-50(on )-50(the)]TJ -29.339 -1.2 Td [(job )-142(\336le,)]TJ /TT0 1 Tf 3.743 0 Td (/var/spool/printer/jobno)Tj /T1_1 1 Tf 0.3925 Tc (,a)Tj 0 Tc 15.543 0 Td [(nd )-142(it )-142(r)17(eads )-142(the )-142(\336le )-142(to )-142(determine)]TJ -19.286 -1.2 Td [(the )-155(next )-155(job )-155(number )-155(to )-155(assign.)]TJ -0.092 Tc 14.696 0 Td [(We )-339(p)]TJ 0 Tc 2.393 0 Td [(lace )-155(a )-155(write )-155(lock )-155(on )-155(the )-155(entir)]TJ 0.4049 Tc 13.375 0 Td (e\336)Tj 0 Tc 1.489 0 Td [(le )-155(to)]TJ -31.953 -1.2 Td [(indicate )-208(that )-208(the )-208(daemon )-208(is )-208(r)7(unning. )-458(If)-458(someone )-208(tries )-208(to )-208(start )-208(additional)]TJ -0 -1.2 Td [(copies )-132(of )-132(the )-132(printer )-132(spooling )-132(daemon )-132(while )-132(one )-132(is )-132(alr)18(eady )-132(r)8(unning, )-132(these)]TJ 0 -1.2 TD [(additional )-175(daemons )-175(will )-175(fail )-175(to )-175(obtain )-175(the )-175(write )-175(lock )-175(and )-175(will )-175(exit.)-676(Thus,)]TJ T* [(only )-36(one )-36(copy )-36(of )-36(the )-36(daemon )-36(can )-36(be )-36(r)10(unning )-36(at )-36(a )-36(time.)-536(\(Recall )-36(that )-36(we )-36(used)]TJ T* [(this )-316(technique )-316(in )-316(Figur)]TJ 0.5662 Tc 10.924 0 Td (e1)Tj 0 Tc 1.545 0 Td [(3.6; )-316(we )-316(discussed )-316(the)]TJ /TT0 1 Tf 10.776 0 Td (write_lock)Tj /T1_1 1 Tf 6.566 0 Td (macr)Tj 0.5662 Tc 2.204 0 Td (oi)Tj 0 Tc 1.403 0 Td (n)Tj -33.418 -1.2 Td (Section 14.3.\))Tj -5 -1.6 Td [([183 )167(\320 )167(192])-668(The )-322(job )-322(\336le )-322(contains )-322(an )-322(ASCII )-322(integer )-322(string )-322(r)15(epr)18(esenting )-322(the )-322(next )-322(job)]TJ 5 -1.2 Td (number)Tj 0.5557 Tc 3.421 0 Td (.I)Tj 0.3057 Tc 1.143 0 Td (ft)Tj 0 Tc 0.965 0 Td [(he )-56(\336le )-56(was )-56(just )-56(cr)18(eated )-56(and )-56(ther)20(efor)18(e)-306(is)-306(e)1(mpty)111(,)-306(we)-306(s)1(et)]TJ /TT0 1 Tf 24.272 0 Td (nextjob)Tj /T1_1 1 Tf -29.8 -1.2 Td [(to )-17(1.)-517(Otherwise, )-17(we )-17(use)]TJ /TT0 1 Tf 10.873 0 Td (atol)Tj /T1_1 1 Tf 2.667 0 Td [(to )-17(convert )-17(the )-17(string )-17(to )-17(an )-17(integer )-17(and )-17(use )-17(this)]TJ -13.54 -1.2 Td [(value )-13(as )-13(the )-13(next )-13(job )-13(number)]TJ 0.5126 Tc 12.719 0 Td (.W)Tj 0.2626 Tc 1.671 0 Td (el)Tj 0 Tc 1.033 0 Td (eave)Tj /TT0 1 Tf 2.286 0 Td (jobfd)Tj /T1_1 1 Tf 3.263 0 Td [(open )-12(to )-12(the )-12(job )-12(\336le )-12(so )-12(that )-12(we)]TJ -20.97 -1.2 Td [(can )-263(update )-263(the )-263(job )-263(number )-263(as )-263(jobs )-263(ar)]TJ 0.5133 Tc 18.012 0 Td (ec)Tj -0.018 Tc 1.436 0 Td (re)Tj 0 Tc 0.856 0 Td [(ated. )-513(W)]TJ 0.5133 Tc 3.837 0 Td (ec)Tj 0 Tc 1.436 0 Td [(an\325t )-263(close )-263(the )-263(\336le,)]TJ -25.578 -1.2 Td [(because this would r)18(elease the write lock that we\325ve placed on it.)]TJ 0 -1.56 TD [(On )-11(a )-11(system )-11(wher)]TJ 0.2614 Tc 8.016 0 Td (eal)Tj 0 Tc 1.793 0 Td [(ong )-11(integer )-11(is )-11(64 )-11(bits )-11(wide, )-11(we )-11(need )-11(a )-11(buf)18(fer )-11(at )-11(least )-11(21)]TJ -9.809 -1.2 Td [(bytes )-44(in )-44(size )-44(to )-44(\336t )-44(a )-44(string )-44(r)19(epr)18(esenting )-44(the )-44(lar)18(gest )-44(possible )-44(long )-44(integer)]TJ 0.5439 Tc 31.819 0 Td (.W)Tj 0 Tc 1.702 0 Td (e)Tj -33.521 -1.2 Td [(can )-6(safely )-6(r)18(euse )-6(the )-6(\336lename )-6(buf)18(fer)]TJ 0.256 Tc 15.561 0 Td (,b)Tj 0 Tc 1.059 0 Td (ecause)Tj /TT0 1 Tf 3.185 0 Td (FILENMSZ)Tj /T1_1 1 Tf 5.056 0 Td [(is )-6(de\336ned )-6(to )-6(be )-6(64 )-6(in)]TJ /TT0 1 Tf -24.861 -1.2 Td (print.h)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47114 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (498)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (pid_t )Tj 9.6 0 Td (pid;)Tj -9.6 -1.189 Td (char )Tj 9.6 0 Td (buf[5];)Tj -9.6 -1.189 Td [(struct stat)-3000(statbuf;)]TJ 0 -1.783 TD (if \(argc != 2\) {)Tj 2.4 -1.189 Td (fprintf\(stderr, "usage: %s filename\\n", argv[0]\);)Tj 0 -1.189 TD (exit\(1\);)Tj -2.4 -1.189 Td (})Tj T* (if \(\(fd = open\(argv[1], O_RDWR | O_CREAT | O_TRUNC, FILE_MODE\)\) < 0\ \))Tj 2.4 -1.189 Td (err_sys\("open error"\);)Tj -2.4 -1.189 Td (if \(write\(fd, "abcdef", 6\) != 6\))Tj 2.4 -1.189 Td (err_sys\("write error"\);)Tj -2.4 -1.783 Td (/* turn on set-group-ID and turn off group-execute */)Tj T* (if \(fstat\(fd, &statbuf\) < 0\))Tj 2.4 -1.189 Td (err_sys\("fstat error"\);)Tj -2.4 -1.189 Td (if \(fchmod\(fd, \(statbuf.st_mode & \367S_IXGRP\) | S_ISGID\) < 0\))Tj 2.4 -1.189 Td (err_sys\("fchmod error"\);)Tj -2.4 -1.783 Td (TELL_WAIT\(\);)Tj 0 -1.783 TD (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(pid > 0\) {)-1800(/* parent */)]TJ 0.6 -1.189 Td (/* write lock entire file */)Tj 0 -1.189 TD (if \(write_lock\(fd, 0, SEEK_SET, 0\) < 0\))Tj 2.4 -1.189 Td (err_sys\("write_lock error"\);)Tj -2.4 -1.783 Td (TELL_CHILD\(pid\);)Tj 0 -1.783 TD (if \(waitpid\(pid, NULL, 0\) < 0\))Tj 2.4 -1.189 Td (err_sys\("waitpid error"\);)Tj 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 12.6 0 Td (/* child */)Tj -12 -1.189 Td [(WAIT_PARENT\(\); )-3000(/*)-600(wait for parent to set lock */)]TJ T* (set_fl\(fd, O_NONBLOCK\);)Tj T* (/* first let\325s see what error we get if region is locked */)Tj 0 -1.189 TD [(if \(read_lock\(fd, 0, SEEK_SET, 0\) != -1\))-2400(/* no wait */)]TJ 2.4 -1.189 Td (err_sys\("child: read_lock succeeded"\);)Tj -2.4 -1.189 Td (printf\("read_lock of already-locked region returns %d\\n",)Tj 1.2 -1.189 Td (errno\);)Tj -1.2 -1.783 Td (/* now try to read the mandatory locked file */)Tj T* (if \(lseek\(fd, 0, SEEK_SET\) == -1\))Tj 2.4 -1.189 Td (err_sys\("lseek error"\);)Tj -2.4 -1.189 Td (if \(read\(fd, buf, 2\) < 0\))Tj 2.4 -1.189 Td (err_ret\("read failed \(mandatory locking works\)"\);)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (printf\("read OK \(no mandatory locking\), buf = %2.2s\\n",)Tj 1.2 -1.189 Td (buf\);)Tj -6 -1.189 Td (})Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1465.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 207.4711 134.1329 Tm (Figure 14.12)Tj /T1_1 1 Tf 6.195 0 Td (Determine whether mandatory locking is supported)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47115 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.3)]TJ 36.622 0 Td (Recor)Tj 0.5 Tc 2.514 0 Td (dL)Tj 0 Tc 1.722 0 Td (ocking)Tj /T1_1 1 Tf 4.975 0 Td (493)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (Figur)Tj 0.301 Tc 2.383 0 Td (e1)Tj 0 Tc 1.28 0 Td [(4.8 )-51(shows )-51(the )-51(r)18(esulting )-51(data )-51(str)8(uctur)18(es )-51(after )-51(both )-51(the )-51(par)18(ent )-51(and )-51(the )-51(child )-51(have)]TJ -3.663 -1.2 Td (paused.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1341.24 5318 1008 1008 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 138.9193 635.7637 Tm [(par)18(ent pr)18(ocess table entry)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 5750 576 72 re S Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 5678 576 72 re S Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 5606 576 72 re S Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 5462 576 144 re S Q BT /T1_0 1 Tf 0.25 Tc 13.9975 0 0 13.9975 182.9411 551.5407 Tm (...)Tj 0 Tc 6.9987 0 0 6.9987 149.2893 576.7362 Tm (fd1:)Tj 0 -1.029 TD (fd2:)Tj T* (fd3:)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1845.25 5822.25 cm 0 0 m 0 -216 l S Q Q BT /T1_0 1 Tf 6.9983 0 0 6.9983 170.3791 591.0581 Tm (fd)Tj -0.572 -0.714 Td (\337ags)Tj 4.471 0.714 Td (\336le)Tj -0.923 -0.714 Td (pointer)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1341.24 3950 1008 1008 re S Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 141.4775 498.8903 Tm [(child pr)18(ocess table entry)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 1629.24 4382 576 72 re S Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 1629.24 4310 576 72 re S Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 1629.24 4238 576 72 re S Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 1629.24 4094 576 144 re S Q BT /T1_0 1 Tf 0.25 Tc 13.995 0 0 13.995 182.9081 414.6907 Tm (...)Tj 0 Tc 6.9975 0 0 6.9975 149.2625 439.882 Tm (fd1:)Tj 0 -1.029 TD (fd2:)Tj 0 -1.029 TD (fd3:)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1845.25 4454.25 cm 0 0 m 0 -216 l S Q Q BT /T1_0 1 Tf 6.9971 0 0 6.9971 170.3484 454.2092 Tm (fd)Tj -0.572 -0.714 Td (\337ags)Tj 4.471 0.714 Td (\336le)Tj -0.923 -0.714 Td (pointer)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 2925.24 6038 720 144 re S Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 302.1149 608.9476 Tm (\336le status \337ags)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 2925.24 5894 720 144 re S Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 298.3468 594.5189 Tm [(curr)18(ent \336le of)18(fset)]TJ ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 2925.24 5750 720 144 re S Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 301.9987 580.0918 Tm (v-node pointer)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 2925.24 5246 720 144 re S Q BT /T1_0 1 Tf 7.9947 0 0 7.9947 302.0606 529.6903 Tm (\336le status \337ags)Tj ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J 2925.24 5102 720 144 re S Q BT /T1_0 1 Tf 7.9942 0 0 7.9942 298.2931 515.2689 Tm [(curr)18(ent \336le of)18(fset)]TJ ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J 2925.24 4958 720 144 re S Q BT /T1_0 1 Tf 7.9938 0 0 7.9938 301.9444 500.8492 Tm (v-node pointer)Tj 0.112 15.025 Td (\336le table entry)Tj 0 -9.9 TD (\336le table entry)Tj 6.9945 0 0 6.9945 427.5475 556.6057 Tm (v-node information)Tj /TT0 1 Tf 1.085 -2.057 Td (lockf)Tj /T1_0 1 Tf 3.25 0 Td (pointer)Tj /TT0 1 Tf -1.815 -1.543 Td (v_data)Tj /T1_0 1 Tf -2.383 -4.114 Td (i-node information)Tj 0.796 -2.057 Td [(curr)18(ent \336le size)]TJ /TT0 1 Tf 1.287 -1.543 Td (i_vnode)Tj ET q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 5678.25 cm 0 0 m 0 -396 l 720 -396 l 720 0 l 0 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 5138.25 cm 0 0 m 0 -396 l 720 -396 l 720 0 l 0 0 l 720 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 5390.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 5390.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 5390.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 5390.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 5390.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 5390.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 5390.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 5390.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 5390.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 5390.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 4958.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 4958.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 4958.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 4958.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 4958.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 4958.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 4958.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 4958.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 4958.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 4958.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 4850.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 4850.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 4850.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 4850.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 4850.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 4850.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 4850.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 4850.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 4850.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 4850.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 5498.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 5498.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 5498.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 5498.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 5498.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 5498.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 5498.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 5498.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 5498.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 5498.25 cm 0 0 m 36 0 l S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 422.124 515.96 cm 0 0 m -4.392 5.976 l -1.08 7.344 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 4221.2402 5159.6001 cm 0 0 m -43.92 59.76 l -10.8 73.44 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4293.2402 5336 cm 0 0 m -72 0 l -120 0 -132.48 -28.32 -109.44 -84.96 c -74.88 -169.92 l S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 496.284 567.8 cm 0 0 m 3.816 -6.408 l 0.36 -7.416 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 4962.8398 5678 cm 0 0 m 38.16 -64.08 l 3.6 -74.16 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4869.2402 4796 cm 0 0 m 180 0 l 300 0 315.96 145.8 227.88 437.4 c 95.76 874.8 l S Q Q BT /T1_0 1 Tf 7.9923 0 0 7.9923 425.3035 570.492 Tm (v-node table entry)Tj 2.63 -6.75 Td (i-node)Tj ET q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J 3285.24 4130 720 324 re S Q BT /T1_0 1 Tf 7.9918 0 0 7.9918 343.6413 437.7932 Tm (lock header)Tj /TT0 1 Tf 6.9929 0 0 6.9929 335.5445 416.2156 Tm (lockf_entry)Tj /T1_0 1 Tf 6.85 0 Td (list)Tj ET q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3285.25 4238.25 cm 0 0 m 36 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3361.25 4238.25 cm 0 0 m 36 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3437.25 4238.25 cm 0 0 m 36 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3513.25 4238.25 cm 0 0 m 36 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3589.25 4238.25 cm 0 0 m 36 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3665.25 4238.25 cm 0 0 m 36 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3741.25 4238.25 cm 0 0 m 36 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3817.25 4238.25 cm 0 0 m 36 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3893.25 4238.25 cm 0 0 m 36 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3969.25 4238.25 cm 0 0 m 36 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J 2709.24 3770 864 108 re S Q BT /T1_0 1 Tf 7.9914 0 0 7.9914 306.9123 380.2291 Tm (link)Tj ET q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J 2709.24 3662 864 108 re S Q BT /T1_0 1 Tf 7.9909 0 0 7.9909 305.4236 369.4186 Tm (\337ags)Tj ET q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J 2709.24 3554 864 108 re S Q BT /T1_0 1 Tf 7.9904 0 0 7.9904 289.4844 358.6094 Tm [(starting of)18(fset)]TJ ET q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J 2709.24 3446 864 108 re S Q BT /T1_0 1 Tf 7.9899 0 0 7.9899 290.6615 347.8015 Tm [(ending of)18(fset)]TJ ET q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J 2709.24 3338 864 108 re S Q BT /TT0 1 Tf 6.9908 0 0 6.9908 280.6083 336.9949 Tm (lock_owner)Tj /T1_0 1 Tf 6.25 0 Td (pointer)Tj ET q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J 4005.24 3770 864.004 108 re S Q BT /T1_0 1 Tf 7.989 0 0 7.989 436.2416 380.1151 Tm (link)Tj ET q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J 4005.24 3662 864.004 108 re S Q BT /T1_0 1 Tf 7.9885 0 0 7.9885 434.7455 369.3078 Tm (\337ags)Tj ET q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J 4005.24 3554 864.004 108 re S Q BT /T1_0 1 Tf 7.988 0 0 7.988 418.8033 358.5018 Tm [(starting of)18(fset)]TJ ET q 0.0998501 0 0 0.0998501 0 0 cm 3.2 w 1 j 1 J 4005.24 3446 864.004 108 re S Q BT /T1_0 1 Tf 7.9875 0 0 7.9875 419.9723 347.6972 Tm [(ending of)18(fset)]TJ ET q 0.0998441 0 0 0.0998441 0 0 cm 3.2 w 1 j 1 J 4005.24 3338 864.004 108 re S Q BT /TT0 1 Tf 6.9887 0 0 6.9887 409.9144 336.8938 Tm (lock_owner)Tj /T1_0 1 Tf 6.25 0 Td (pointer)Tj ET q 0.0998381 0 0 0.0998381 0 0 cm 3.2 w 1 j 1 J 2781.24 2726 720 324 re S Q BT /T1_0 1 Tf 7.9866 0 0 7.9866 280.2088 297.34 Tm (owner information)Tj 0.295 -2.7 Td [(par)18(ent pr)18(ocess ID)]TJ ET q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2781.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2857.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2933.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3009.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3085.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3161.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3237.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3313.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3389.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3465.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J 4077.24 2726 720 324 re S Q BT /T1_0 1 Tf 7.9861 0 0 7.9861 409.5667 297.3222 Tm (owner information)Tj 0.618 -2.7 Td [(child pr)18(ocess ID)]TJ ET q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4077.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4153.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4229.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4305.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4381.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4457.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4533.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4609.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4685.25 2834.25 cm 0 0 m 36 0 l S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4761.25 2834.25 cm 0 0 m 36 0 l S Q Q BT /TT0 1 Tf 7.9856 0 0 7.9856 335.1202 447.8332 Tm (struct lockf)Tj -8.1 -7.2 Td (struct lockf_entry)Tj 16.2 0 Td (struct lockf_entry)Tj -15.9 -10.35 Td (struct lock_owner)Tj 16.2 0 Td (struct lock_owner)Tj ET q 0.9982016 0 0 0.9982016 0 0 cm q 1 0 0 1 396.924 382.4 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998202 0 0 0.0998202 0 0 cm 1 j 1 J q 1 0 0 1 3969.24 3824 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998202 0 0 0.0998202 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3501.25 3824.25 cm 0 0 m 396 0 l S Q Q q 0.9981417 0 0 0.9981417 0 0 cm q 1 0 0 1 404.124 449 cm 0 0 m 3.816 6.336 l 6.336 3.816 l f Q Q q 0.0998142 0 0 0.0998142 0 0 cm 1 j 1 J q 1 0 0 1 4041.24 4490 cm 0 0 m 38.16 63.36 l 63.36 38.16 l h S Q Q q 0.0998142 0 0 0.0998142 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4242.8398 5444 cm 0 0 m -72 0 l -120 0 -135.6 -141 -118.8 -423 c -102 -705 -110.76 -863.16 -145.08 -897.48 c -196.56 -948.96 l S Q Q q 0.9980818 0 0 0.9980818 0 0 cm q 1 0 0 1 267.324 387.8 cm 0 0 m -5.76 4.68 l -2.88 6.84 l f Q Q q 0.0998082 0 0 0.0998082 0 0 cm 1 j 1 J q 1 0 0 1 2673.24 3878 cm 0 0 m -57.6 46.8 l -28.8 68.4 l h S Q Q q 0.0998082 0 0 0.0998082 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3342.8401 4184 cm 0 0 m -72 0 l -120 0 -237.6 -3 -424.8 -9 c -612 -15 -717.6 -42 -741.6 -90 c -765.6 -138 -760.32 -185.04 -725.76 -231.12 c -673.92 -300.24 l S Q Q q 0.9980219 0 0 0.9980219 0 0 cm q 1 0 0 1 274.524 305 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998022 0 0 0.0998022 0 0 cm 1 j 1 J q 1 0 0 1 2745.24 3050 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2766.8401 3392 cm 0 0 m -72 0 l -120 0 -153.6 -33 -172.8 -99 c -192 -165 -189.6 -222 -165.6 -270 c -141.6 -318 -112.8 -342 -79.2 -342 c -28.8 -342 l S Q Q q 0.997962 0 0 0.997962 0 0 cm q 1 0 0 1 404.124 305 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0997962 0 0 0.0997962 0 0 cm 1 j 1 J q 1 0 0 1 4041.24 3050 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0997962 0 0 0.0997962 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4062.8401 3392 cm 0 0 m -72 0 l -120 0 -153.6 -33 -172.8 -99 c -192 -165 -189.6 -222 -165.6 -270 c -141.6 -318 -112.8 -342 -79.2 -342 c -28.8 -342 l S Q Q q 0.9979021 0 0 0.9979021 0 0 cm q 1 0 0 1 288.924 614.6 cm 0 0 m -4.104 -6.192 l -6.552 -3.528 l f Q Q q 0.0997902 0 0 0.0997902 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 6146 cm 0 0 m -41.04 -61.92 l -65.52 -35.28 l h S Q Q q 0.0997902 0 0 0.0997902 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 5786 cm 0 0 m 180 0 l 300 0 425.16 59.16 555.48 177.48 c 750.96 354.96 l S Q Q q 0.9978423 0 0 0.9978423 0 0 cm q 1 0 0 1 288.924 611 cm 0 0 m -3.816 -6.336 l -6.336 -3.816 l f Q Q q 0.0997842 0 0 0.0997842 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 6110 cm 0 0 m -38.16 -63.36 l -63.36 -38.16 l h S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 5714 cm 0 0 m 180 0 l 300 0 425.16 65.16 555.48 195.48 c 750.96 390.96 l S Q Q q 0.9977824 0 0 0.9977824 0 0 cm q 1 0 0 1 288.924 542.6 cm 0 0 m -7.2 1.872 l -5.472 5.04 l f Q Q q 0.0997782 0 0 0.0997782 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 5426 cm 0 0 m -72 18.72 l -54.72 50.4 l h S Q Q q 0.0997782 0 0 0.0997782 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 5642 cm 0 0 m 180 0 l 300 0 424.92 -35.4 554.76 -106.2 c 749.52 -212.4 l S Q Q q 0.9977225 0 0 0.9977225 0 0 cm q 1 0 0 1 288.924 607.4 cm 0 0 m 0.072 -7.416 l -3.456 -6.552 l f Q Q q 0.0997723 0 0 0.0997723 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 6074 cm 0 0 m 0.72 -74.16 l -34.56 -65.52 l h S Q Q q 0.0997723 0 0 0.0997723 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 4418 cm 0 0 m 180 0 l 300 0 425.76 274.8 557.28 824.4 c 754.56 1648.8 l S Q Q q 0.9976627 0 0 0.9976627 0 0 cm q 1 0 0 1 418.524 571.4 cm 0 0 m -7.344 1.152 l -5.904 4.464 l f Q Q q 0.0997663 0 0 0.0997663 0 0 cm 1 j 1 J q 1 0 0 1 4185.2402 5714 cm 0 0 m -73.44 11.52 l -59.04 44.64 l h S Q Q q 0.0997663 0 0 0.0997663 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3573.24 5822 cm 0 0 m 180 0 l 300 0 400.92 -17.52 482.76 -52.56 c 605.52 -105.12 l S Q Q q 0.9976028 0 0 0.9976028 0 0 cm q 1 0 0 1 418.524 564.2 cm 0 0 m -1.08 -7.344 l -4.392 -5.976 l f Q Q q 0.0997603 0 0 0.0997603 0 0 cm 1 j 1 J q 1 0 0 1 4185.2402 5642 cm 0 0 m -10.8 -73.44 l -43.92 -59.76 l h S Q Q q 0.0997603 0 0 0.0997603 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3573.24 5030 cm 0 0 m 180 0 l 300 0 401.52 100.92 484.56 302.76 c 609.12 605.52 l S Q Q BT /T1_1 1 Tf 7.9803 0 0 7.9803 218.5657 246.7921 Tm (Figure 14.8)Tj /T1_0 1 Tf 5.695 0 Td [(The Fr)18(eeBSD data str)8(uctur)18(es for r)18(ecor)]TJ 0.25 Tc 16.552 0 Td (dl)Tj 0 Tc 1.152 0 Td (ocking)Tj -0.092 Tc 9.9754 0 0 9.9754 147.2375 220.457 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ve )-158(shown )-158(the )-158(data )-158(str)8(uctur)18(es )-158(that )-158(r)18(esult )-158(fr)18(om )-158(the)]TJ /TT0 1 Tf 23.439 0 Td (open)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.058 0 Td (fork)Tj /T1_0 1 Tf 0.4079 Tc (,a)Tj 0 Tc 3.558 0 Td (nd)Tj /TT0 1 Tf 1.601 0 Td (dup)Tj /T1_0 1 Tf 2.208 0 Td (calls)Tj -37.05 -1.2 Td [(earlier )-54(\(Figur)18(es )-54(3.9 )-54(and )-54(8.2\).)-554(What )-54(is )-54(new )-54(her)]TJ 0.3036 Tc 20.36 0 Td (ea)Tj -0.018 Tc 1.283 0 Td [(re )-90(t)]TJ 0 Tc 1.486 0 Td (he)Tj /TT0 1 Tf 1.365 0 Td (lockf)Tj /T1_0 1 Tf 3.304 0 Td [(str)8(uctur)18(es )-54(that )-54(ar)]TJ 0.3036 Tc 7.611 0 Td (el)Tj 0 Tc 1.074 0 Td (inked)Tj -36.481 -1.2 Td [(together )-105(fr)18(om )-105(the )-105(i-node )-105(str)9(uctur)18(e. )-355(Each)]TJ /TT0 1 Tf 18.792 0 Td (lockf)Tj /T1_0 1 Tf 3.355 0 Td [(str)8(uctur)]TJ 0.3548 Tc 3.49 0 Td (ed)Tj 0 Tc 1.445 0 Td [(escribes )-105(one )-105(locked )-105(r)19(egion)]TJ -27.081 -1.2 Td [(\(de\336ned )-51(by )-51(an )-51(of)18(fset )-51(and )-51(length\) )-51(for )-51(a )-51(given )-51(pr)21(ocess. )-301(W)]TJ 0.3008 Tc 25.113 0 Td (es)Tj 0 Tc 1.204 0 Td [(how )-51(two )-51(of )-51(these )-51(str)9(uctur)18(es:)]TJ -26.317 -1.2 Td [(one )-167(for )-167(the )-167(par)18(ent\325s )-167(call )-167(to)]TJ /TT0 1 Tf 12.735 0 Td (write_lock)Tj /T1_0 1 Tf 6.417 0 Td [(and )-167(one )-167(for )-167(the )-167(child\325s )-167(call )-167(to)]TJ /TT0 1 Tf 14.198 0 Td (read_lock)Tj /T1_0 1 Tf (.)Tj -33.35 -1.2 Td [(Each str)8(uctur)]TJ 0.25 Tc 5.877 0 Td (ec)Tj 0 Tc 1.173 0 Td [(ontains the corr)18(esponding pr)18(ocess ID.)]TJ -5.25 -1.2 Td [(In )-132(the )-132(par)18(ent, )-132(closing )-132(any )-132(one )-132(of)]TJ /TT0 1 Tf 15.352 0 Td (fd1)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 2.432 0 Td (fd2)Tj /T1_0 1 Tf 0.3819 Tc (,o)Tj 0 Tc 2.978 0 Td (r)Tj /TT0 1 Tf 0.777 0 Td (fd3)Tj /T1_0 1 Tf 2.182 0 Td [(causes )-132(the )-132(par)18(ent\325s )-132(lock )-132(to )-132(be)]TJ -0.018 Tc -25.521 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(leased. )-267(When)-268(any )-17(one )-17(of )-17(these )-17(thr)16(ee )-17(\336le )-17(descriptors )-17(is )-17(closed, )-17(the )-17(kernel )-17(goes )-17(thr)16(ough)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47116 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 33.857 0 Td [(Chapter )-250(21)-750(Solutions)]TJ /T1_1 1 Tf 11.976 0 Td (945)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 160.2404 668.9599 Tm [(that )-106(it )-106(was )-106(not )-106(blank, )-106(and )-106(then )-106(r)18(ead )-106(the )-106(data )-106(r)14(ecor)18(d, )-106(which )-106(could )-106(be )-106(erased )-106(by)]TJ /TT0 1 Tf 0 -1.2 Td (_db_dodelete)Tj /T1_0 1 Tf 7.829 0 Td [(between )-378(the )-378(calls )-378(to)]TJ /TT0 1 Tf 10.455 0 Td (_db_readidx)Tj /T1_0 1 Tf 7.229 0 Td (and)Tj /TT0 1 Tf 2.321 0 Td (_db_readdat)Tj /T1_0 1 Tf 7.229 0 Td (in)Tj /TT0 1 Tf -35.062 -1.2 Td (db_nextrec)Tj /T1_0 1 Tf (.)Tj /T1_1 1 Tf -3.065 -1.84 Td (20.2)Tj /T1_0 1 Tf 3.065 0 Td [(Assume )-208(that)]TJ /TT0 1 Tf 6.24 0 Td (db_nextrec)Tj /T1_0 1 Tf 6.458 0 Td (calls)Tj /TT0 1 Tf 2.408 0 Td (_db_readidx)Tj /T1_0 1 Tf 0.4576 Tc (,w)Tj 0 Tc 8.142 0 Td [(hich )-208(r)18(eads )-208(the )-208(key )-208(into )-208(the)]TJ -23.247 -1.2 Td [(index )-183(buf)18(fer )-183(for )-183(the )-183(pr)20(ocess. )-433(This)-432(pr)18(ocess )-183(is )-183(then )-183(stopped )-183(by )-183(the )-183(kernel, )-183(and)]TJ 0 -1.2 TD [(another )-43(pr)18(ocess )-43(r)7(uns. )-293(This)-294(other )-43(pr)18(ocess )-43(calls)]TJ /TT0 1 Tf 20.737 0 Td (db_delete)Tj /T1_0 1 Tf 0.2933 Tc (,a)Tj 0 Tc 6.443 0 Td [(nd )-43(the )-43(r)18(ecor)]TJ 0.2932 Tc 5.389 0 Td (db)Tj 0 Tc 1.457 0 Td (eing)Tj -0.018 Tc -34.027 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ad )-18(by )-18(the )-18(other )-18(pr)18(ocess )-18(is )-18(deleted.)-518(Both )-18(its )-18(key )-18(and )-18(its )-18(data )-18(ar)]TJ 0.2678 Tc 27.447 0 Td (er)Tj 0 Tc 1.124 0 Td [(ewritten )-18(in )-18(the)]TJ -29.427 -1.2 Td [(two )-76(\336les )-76(as )-76(all )-76(blanks.)-576(The )-76(\336rst )-76(pr)16(ocess )-76(r)18(esumes )-76(and )-76(calls)]TJ /TT0 1 Tf 26.537 0 Td (_db_readdat)Tj /T1_0 1 Tf 6.926 0 Td [(\(fr)18(om)]TJ /TT0 1 Tf -33.463 -1.2 Td (db_nextrec)Tj /T1_0 1 Tf 0.8376 Tc (\)a)Tj 0 Tc 7.671 0 Td [(nd )-588(r)18(eads )-588(the )-588(all-blank )-588(data )-588(r)20(ecor)18(d. )-838(The)]TJ -0.018 Tc 21.676 0 Td (re)Tj 0 Tc 0.856 0 Td [(ad )-588(lock )-588(by)]TJ /TT0 1 Tf -30.203 -1.2 Td (db_nextrec)Tj /T1_0 1 Tf 6.263 0 Td [(allows )-13(it )-13(to )-13(do )-13(the )-13(r)17(ead )-13(of )-13(the )-13(index )-13(r)18(ecor)18(d, )-13(followed )-13(by )-13(the )-13(r)18(ead )-13(of)]TJ -6.263 -1.2 Td [(the )-344(data )-344(r)18(ecor)18(d, )-344(as )-344(an )-344(atomic )-344(operation )-344(\(with )-344(r)19(egar)18(d)-594(to)-594(other )-344(cooperating)]TJ T* [(pr)18(ocesses using the same database\).)]TJ /T1_1 1 Tf -3.065 -1.84 Td (20.3)Tj /T1_0 1 Tf -0.055 Tc 3.065 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-18(mandatory )-18(locking, )-18(other )-18(r)18(eaders )-18(and )-18(writers )-18(ar)]TJ 0.2683 Tc 22.508 0 Td (ea)Tj -0.018 Tc 1.247 0 Td (ff)Tj 0 Tc 0.648 0 Td [(ected. )-268(Other)]TJ -0.018 Tc 5.943 0 Td (re)Tj 0 Tc 0.856 0 Td [(ads )-18(and)]TJ -32.439 -1.2 Td [(writes )-117(ar)]TJ 0.3669 Tc 3.993 0 Td (eb)Tj 0 Tc 1.399 0 Td [(locked )-117(by )-117(the )-117(kernel )-117(until )-117(the )-117(locks )-117(placed )-117(by)]TJ /TT0 1 Tf 21.283 0 Td (_db_writeidx)Tj /T1_0 1 Tf 7.567 0 Td (and)Tj /TT0 1 Tf -34.242 -1.2 Td (_db_writedat)Tj /T1_0 1 Tf 7.45 0 Td (ar)Tj 0.25 Tc 0.877 0 Td (er)Tj 0 Tc 1.106 0 Td (emoved.)Tj /T1_1 1 Tf -12.498 -1.84 Td (20.5)Tj /T1_0 1 Tf 3.065 0 Td [(By )-155(writing )-155(the )-155(data )-155(r)18(ecor)]TJ 0.4051 Tc 11.609 0 Td (db)Tj 0 Tc 1.569 0 Td (efor)Tj 0.4051 Tc 1.735 0 Td (et)Tj 0 Tc 1.21 0 Td [(he )-155(index )-155(r)18(ecor)18(d, )-155(we )-155(pr)18(otect )-155(ourselves )-155(fr)18(om)]TJ -16.124 -1.2 Td [(generating )-130(a )-130(corr)8(upt )-130(r)18(ecor)18(d)-380(if)-380(the )-130(pr)18(ocess )-130(should )-130(be )-130(killed )-130(in )-130(between )-130(the )-130(two)]TJ 0 -1.2 Td [(writes. )-391(If)-390(the )-141(pr)18(ocess )-141(wer)19(e)-391(to)-391(w)1(rite )-141(the )-141(index )-141(r)19(ecor)]TJ 0.3906 Tc 23.571 0 Td (d\336)Tj 0 Tc 1.607 0 Td [(rst, )-140(but )-140(be )-140(killed )-140(befor)16(e)]TJ -25.178 -1.2 Td [(writing )-199(the )-199(data )-199(r)17(ecor)18(d, )-199(then )-199(we\325d )-199(have )-199(a )-199(valid )-199(index )-199(r)15(ecor)]TJ 0.4494 Tc 27.934 0 Td (dt)Tj 0 Tc 1.386 0 Td [(hat )-199(pointed )-199(to)]TJ -29.32 -1.2 Td (invalid data.)Tj /TT1 1 Tf -6.665 -3.12 Td [(Chapter )-278(21)]TJ /T1_1 1 Tf 3.6 -2.56 Td (21.5)Tj /T1_0 1 Tf 3.065 0 Td (Her)Tj 0.3283 Tc 1.688 0 Td (ea)Tj -0.018 Tc 1.307 0 Td [(re )-114(s)]TJ 0 Tc 1.608 0 Td [(ome )-78(hints.)-578(Ther)]TJ 0.3282 Tc 7.32 0 Td (ea)Tj -0.018 Tc 1.307 0 Td [(re )-114(t)]TJ 0 Tc 1.51 0 Td [(wo )-78(places )-78(to )-78(check )-78(for )-78(queued )-78(jobs: )-78(the )-78(printer)]TJ -14.741 -1.2 Td [(spooling )-25(daemon\325s )-25(queue )-25(and )-25(the )-25(network )-25(printer)-76(\325s )-25(internal )-25(queue.)]TJ -0.092 Tc 30.656 0 Td (Ta)Tj 0 Tc 1.021 0 Td [(ke )-25(car)]TJ 0.2755 Tc 2.631 0 Td (et)Tj 0 Tc 1.081 0 Td (o)Tj -35.389 -1.2 Td [(pr)18(event )-87(one )-87(user )-87(fr)18(om )-87(being )-87(able )-87(to )-87(cancel )-87(someone )-87(else\325s )-87(print )-87(job.)-587(Of )-87(course,)]TJ T* [(the super)8(user should be able to cancel any job.)]TJ /T1_1 1 Tf -3.065 -1.84 Td (21.7)Tj /T1_0 1 Tf -0.092 Tc 3.065 0 Td [(We )-506(d)]TJ 0 Tc 2.57 0 Td [(on\325t )-322(need )-322(to )-322(pr)18(od )-322(the )-322(daemon, )-322(because )-322(we )-322(don\325t )-322(need )-322(to )-322(r)16(er)18(ead )-322(the)]TJ -2.57 -1.2 Td [(con\336guration )-96(\336le )-96(until )-96(we )-96(need )-96(to )-96(print )-96(a )-96(\336le.)-594(The)]TJ /TT0 1 Tf 23.482 0 Td (printer_thread)Tj /T1_0 1 Tf 8.746 0 Td (function)Tj -32.228 -1.2 Td [(checks )-135(whether )-135(it )-135(needs )-135(to )-135(r)19(er)18(ead )-135(the )-135(con\336guration )-135(\336le )-135(befor)]TJ 0.3849 Tc 27.983 0 Td (ee)Tj 0 Tc 1.343 0 Td [(ach )-135(attempt )-135(to)]TJ -29.326 -1.2 Td [(send a job to the printer)74(.)]TJ /T1_1 1 Tf -3.065 -1.84 Td (21.9)Tj /T1_0 1 Tf -0.092 Tc 3.065 0 Td [(We )-259(n)]TJ 0 Tc 2.294 0 Td [(eed )-75(to )-75(null-terminate )-75(the )-75(string )-75(we )-75(write )-75(to )-75(the )-75(job )-75(\336le )-75(\(r)18(ecall )-75(that)]TJ /TT0 1 Tf 30.041 0 Td (strlen)Tj /T1_0 1 Tf -32.335 -1.2 Td [(doesn\325t )-261(include )-261(the )-261(terminating )-261(null )-261(byte )-261(when )-261(it )-261(calculates )-261(the )-261(length )-261(of )-261(a)]TJ T* [(string\). )-315(Ther)]TJ 0.3155 Tc 5.774 0 Td (ea)Tj -0.018 Tc 1.294 0 Td [(re )-102(t)]TJ 0 Tc 1.498 0 Td [(wo )-65(simple )-65(appr)18(oaches: )-65(either )-65(we )-65(can )-65(add )-65(1 )-65(to )-65(the )-65(number )-65(of)]TJ -8.566 -1.2 Td [(bytes )-49(we )-49(write, )-49(or )-49(we )-49(can )-49(use )-49(the)]TJ /TT0 1 Tf 15.288 0 Td (dprintf)Tj /T1_0 1 Tf 4.499 0 Td [(function )-49(instead )-49(of )-49(calling)]TJ /TT0 1 Tf 11.948 0 Td (sprintf)Tj /T1_0 1 Tf -31.735 -1.2 Td (and)Tj /TT0 1 Tf 1.943 0 Td (write)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47117 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 33.857 0 Td [(Chapter )-250(15)-750(Solutions)]TJ /T1_1 1 Tf 11.976 0 Td (937)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 160.2404 668.9599 Tm [(signal )-80(handler)74(,)]TJ /TT0 1 Tf 6.921 0 Td (write)Tj /T1_0 1 Tf 3.33 0 Td [(fails )-80(with)]TJ /TT0 1 Tf 4.533 0 Td (errno)Tj /T1_0 1 Tf 3.33 0 Td [(set )-80(to)]TJ /TT0 1 Tf 2.762 0 Td (EPIPE)Tj /T1_0 1 Tf 0.5804 Tc (.W)Tj 0 Tc 4.775 0 Td (ith)Tj /TT0 1 Tf 1.529 0 Td (poll)Tj /T1_0 1 Tf 0.3304 Tc (,h)Tj 0 Tc 3.562 0 Td (owever)Tj 0.3304 Tc 3.224 0 Td (,t)Tj 0 Tc 0.906 0 Td (he)Tj -34.874 -1.2 Td (behavior varies by platform.)Tj /T1_1 1 Tf -3.065 -1.84 Td (15.8)Tj /T1_0 1 Tf 3.065 0 Td [(Anything )-122(written )-122(by )-122(the )-122(child )-122(to )-122(standar)]TJ 0.3723 Tc 18.626 0 Td (de)Tj 0 Tc 1.462 0 Td [(rr)18(or )-122(appears )-122(wher)18(ever )-122(the )-122(par)17(ent\325s)]TJ -20.088 -1.2 Td (standar)Tj 0.2843 Tc 3.32 0 Td (de)Tj 0 Tc 1.374 0 Td [(rr)18(or )-34(would )-34(appear)]TJ 0.5343 Tc 8.169 0 Td (.T)Tj 0.2843 Tc 1.305 0 Td (os)Tj 0 Tc 1.254 0 Td [(end )-34(standar)]TJ 0.2842 Tc 5.276 0 Td (de)Tj 0 Tc 1.374 0 Td [(rr)18(or )-34(back )-34(to )-34(the )-34(par)18(ent, )-34(include)]TJ -22.073 -1.2 Td [(the shell r)18(edir)18(ection)]TJ /TT0 1 Tf 9.007 0 Td (2>&1)Tj /T1_0 1 Tf 2.65 0 Td (in the)Tj /T1_2 1 Tf 2.76 0 Td (cmdstring)Tj /T1_0 1 Tf (.)Tj /T1_1 1 Tf -17.482 -1.84 Td (15.9)Tj /T1_0 1 Tf 3.065 0 Td (The)Tj /TT0 1 Tf 1.97 0 Td (popen)Tj /T1_0 1 Tf 3.296 0 Td (function)Tj /TT0 1 Tf 4.003 0 Td (fork)Tj /T1_0 1 Tf 0.296 Tc (sac)Tj 0 Tc 4.36 0 Td [(hild, )-46(and )-46(the )-46(child )-46(executes )-46(the )-46(shell.)-546(The )-46(shell )-46(in)]TJ -13.629 -1.2 Td [(turn )-96(calls)]TJ /TT0 1 Tf 4.547 0 Td (fork)Tj /T1_0 1 Tf 0.3457 Tc (,a)Tj 0 Tc 3.496 0 Td [(nd )-96(the )-96(child )-96(of )-96(the )-96(shell )-96(executes )-96(the )-96(command )-96(string.)-593(When)]TJ /T1_2 1 Tf -8.043 -1.2 Td (cmdstring)Tj /T1_0 1 Tf 4.415 0 Td [(terminates, )-35(the )-35(shell )-35(is )-35(waiting )-35(for )-35(this )-35(to )-35(happen.)-539(The )-35(shell )-35(then )-35(exits,)]TJ -4.415 -1.2 Td (which is what the)Tj /TT0 1 Tf 8.077 0 Td (waitpid)Tj /T1_0 1 Tf 4.45 0 Td (in)Tj /TT0 1 Tf 1.123 0 Td (pclose)Tj /T1_0 1 Tf 3.85 0 Td [(is waiting for)74(.)]TJ /T1_1 1 Tf -20.565 -1.84 Td (15.10)Tj /T1_0 1 Tf 3.065 0 Td [(The )-91(trick )-91(is )-91(to)]TJ /TT0 1 Tf 6.637 0 Td (open)Tj /T1_0 1 Tf 2.741 0 Td [(the )-91(FIFO )-91(twice: )-91(once )-91(for )-91(r)18(eading )-91(and )-91(once )-91(for )-91(writing.)]TJ -0.092 Tc 25.17 0 Td (We)Tj 0 Tc -34.548 -1.2 Td [(never )-124(use )-124(the )-124(descriptor )-124(that )-124(is )-124(opened )-124(for )-124(writing, )-124(but )-124(leaving )-124(that )-124(descriptor)]TJ 0 -1.2 TD [(open )-120(pr)18(events )-120(an )-120(end )-120(of )-120(\336le )-120(fr)20(om )-119(being )-119(generated )-119(when )-119(the )-119(number )-119(of )-119(clients)]TJ T* [(goes )-80(fr)18(om )-80(1 )-80(to )-80(0.)-580(Opening )-80(the )-80(FIFO )-80(twice )-80(r)18(equir)18(es )-80(some )-80(car)18(e, )-80(as )-80(a )-80(nonblocking)]TJ /TT0 1 Tf -0 -1.2 Td (open)Tj /T1_0 1 Tf 2.743 0 Td [(is )-93(r)18(equir)18(ed. )-343(W)]TJ 0.343 Tc 6.586 0 Td (eh)Tj 0 Tc 1.404 0 Td [(ave )-93(to )-93(do )-93(a )-93(nonblocking, )-93(r)18(ead-only)]TJ /TT0 1 Tf 16.185 0 Td (open)Tj /T1_0 1 Tf 2.743 0 Td [(\336rst, )-93(followed)]TJ -29.661 -1.2 Td [(by )-137(a )-137(blocking)]TJ /TT0 1 Tf 6.589 0 Td (open)Tj /T1_0 1 Tf 2.787 0 Td [(for )-137(write-only)]TJ 0.6371 Tc 6.183 0 Td (.\()Tj 0 Tc 1.22 0 Td [(If )-137(we )-137(tried )-137(a )-137(nonblocking)]TJ /TT0 1 Tf 12.05 0 Td (open)Tj /T1_0 1 Tf 2.787 0 Td [(for )-137(write-)]TJ -31.616 -1.2 Td [(only )-111(\336rst, )-111(it )-111(would )-111(r)19(eturn )-111(an )-111(err)19(or)74(.\) )-361(W)]TJ 0.3607 Tc 17.705 0 Td (et)Tj 0 Tc 1.166 0 Td [(hen )-111(turn )-111(of)]TJ 0.3607 Tc 5.131 0 Td (fn)Tj 0 Tc 1.276 0 Td [(onblocking )-111(for )-111(the )-111(r)19(ead)]TJ -25.278 -1.2 Td (descriptor)Tj 0.5 Tc 4.438 0 Td (.F)Tj 0 Tc 1.306 0 Td (igur)Tj 0.25 Tc 1.827 0 Td (eC)Tj 0 Tc 1.438 0 Td (.20 shows the code for this.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 4506.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 4506.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 160.2308 441.0461 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD [(#define FIFO)-2400("temp.fifo")]TJ T* (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-2400(fdread,)-600(fdwrite;)]TJ 0 -1.783 TD (unlink\(FIFO\);)Tj 0 -1.189 TD (if \(mkfifo\(FIFO, FILE_MODE\) < 0\))Tj 2.4 -1.189 Td (err_sys\("mkfifo error"\);)Tj -2.4 -1.189 Td (if \(\(fdread = open\(FIFO, O_RDONLY | O_NONBLOCK\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("open error for reading"\);)Tj -2.4 -1.189 Td (if \(\(fdwrite = open\(FIFO, O_WRONLY\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("open error for writing"\);)Tj -2.4 -1.189 Td (clr_fl\(fdread, O_NONBLOCK\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 2490.25 cm 0 0 m 50 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 2490.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 212.9107 233.0061 Tm (Figure C.20)Tj /T1_0 1 Tf 5.917 0 Td [(Opening a FIFO for r)18(eading and writing, without blocking)]TJ /T1_1 1 Tf 9.9982 0 0 9.9982 129.5766 205.0111 Tm [(15.1)37(1)]TJ /T1_0 1 Tf 3.065 0 Td [(Randomly )-210(r)18(eading )-210(a )-210(message )-210(fr)18(om )-210(an )-210(active )-210(queue )-210(would )-210(interfer)]TJ 0.4601 Tc 31.116 0 Td (ew)Tj 0 Tc 1.773 0 Td [(ith )-210(the)]TJ -32.889 -1.2 Td [(client\320server )-78(pr)18(otocol, )-78(as )-78(either )-78(a )-78(client )-78(r)18(equest )-78(or )-78(a )-78(server)-76(\325s )-78(r)18(esponse )-78(would )-78(be)]TJ 0 -1.2 TD [(lost. )-261(T)]TJ 0.2608 Tc 2.869 0 Td (or)Tj 0 Tc 1.184 0 Td [(ead )-11(the )-11(queue, )-11(all )-11(that )-11(is )-11(needed )-11(is )-11(for )-11(the )-11(pr)18(ocess )-11(to )-11(know )-11(the )-11(identi\336er)]TJ -4.053 -1.2 Td [(for the queue and for the queue to allow world-r)18(ead access.)]TJ /T1_1 1 Tf -3.065 -1.84 Td (15.13)Tj /T1_0 1 Tf -0.092 Tc 3.065 0 Td [(We )-241(n)]TJ 0 Tc 2.276 0 Td [(ever )-57(stor)]TJ 0.3074 Tc 3.898 0 Td (ea)Tj 0 Tc 1.286 0 Td [(ctual )-57(addr)18(esses )-57(in )-57(a )-57(shar)18(ed )-57(memory )-57(segment, )-57(since )-57(it\325s )-57(possible)]TJ -7.461 -1.2 Td [(for )-186(the )-186(server )-186(and )-186(all )-186(the )-186(clients )-186(to )-186(attach )-186(the )-186(segment )-186(at )-186(dif)12(fer)18(ent )-186(addr)18(esses.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47118 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (936)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 160.2404 668.9599 Tm [(Then )-87(use)]TJ /TT0 1 Tf 4.435 0 Td (fdopen)Tj /T1_1 1 Tf 3.937 0 Td [(to )-87(associate )-87(the )-87(pipe )-87(descriptors )-87(with )-87(a )-87(standar)]TJ 0.3366 Tc 21.311 0 Td (dI)Tj 0 Tc 1.285 0 Td [(/O )-87(str)18(eam,)]TJ -30.968 -1.2 Td [(and )-31(set )-31(the )-31(str)18(eams )-31(to )-31(be )-31(line )-31(buf)21(fer)18(ed. )-281(Do)-280(this )-31(befor)]TJ 0.2807 Tc 23.556 0 Td (et)Tj 0 Tc 1.086 0 Td (he)Tj /TT0 1 Tf 1.342 0 Td (while)Tj /T1_1 1 Tf 3.281 0 Td [(loop )-31(that )-31(r)19(eads)]TJ -29.264 -1.2 Td [(fr)18(om standar)]TJ 0.25 Tc 5.709 0 Td (di)Tj 0 Tc 1.152 0 Td (nput:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 178.2387 629.3321 Tm (if \(\(fpin = fdopen\(fd2[0], "r"\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("fdopen error"\);)Tj -2.4 -1.189 Td (if \(\(fpout = fdopen\(fd1[1], "w"\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("fdopen error"\);)Tj -2.4 -1.189 Td (if \(setvbuf\(fpin, NULL, _IOLBF, 0\) < 0\))Tj 2.4 -1.189 Td (err_sys\("setvbuf error"\);)Tj -2.4 -1.189 Td (if \(setvbuf\(fpout, NULL, _IOLBF, 0\) < 0\))Tj 2.4 -1.189 Td (err_sys\("setvbuf error"\);)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 160.2398 537.5075 Tm (The)Tj /TT0 1 Tf 1.924 0 Td (write)Tj /T1_1 1 Tf 3.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (read)Tj /T1_1 1 Tf 2.65 0 Td (in the)Tj /TT0 1 Tf 2.76 0 Td (while)Tj /T1_1 1 Tf 3.25 0 Td (loop ar)Tj 0.25 Tc 3.111 0 Td (er)Tj 0 Tc 1.106 0 Td (eplaced with)Tj /TT0 1 Tf 8.9995 0 0 8.9995 178.239 521.8788 Tm (if \(fputs\(line, fpout\) == EOF\))Tj 2.4 -1.189 Td (err_sys\("fputs error to pipe"\);)Tj -2.4 -1.189 Td (if \(fgets\(line, MAXLINE, fpin\) == NULL\) {)Tj 2.4 -1.189 Td (err_msg\("child closed pipe"\);)Tj 0 -1.189 TD (break;)Tj -2.4 -1.189 Td (})Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5919 446.3833 Tm (15.6)Tj /T1_1 1 Tf 3.065 0 Td (The)Tj /TT0 1 Tf 2.124 0 Td (system)Tj /T1_1 1 Tf 4.05 0 Td [(function )-200(calls)]TJ /TT0 1 Tf 6.557 0 Td (wait)Tj /T1_1 1 Tf 0.4501 Tc (,a)Tj 0 Tc 3.6 0 Td [(nd )-200(the )-200(\336rst )-200(child )-200(to )-200(terminate )-200(is )-200(the )-200(child)]TJ -16.331 -1.2 Td [(generated )-6(by)]TJ /TT0 1 Tf 6.029 0 Td (popen)Tj /T1_1 1 Tf 0.5065 Tc (.S)Tj 0 Tc 4.281 0 Td [(ince )-6(that\325s )-6(not )-6(the )-6(child )-6(that)]TJ /TT0 1 Tf 12.565 0 Td (system)Tj /T1_1 1 Tf 3.857 0 Td [(cr)18(eated, )-7(it )-7(calls)]TJ /TT0 1 Tf 6.803 0 Td (wait)Tj /T1_1 1 Tf -33.535 -1.2 Td [(again )-25(and )-25(blocks )-25(until )-25(the)]TJ /TT0 1 Tf 11.791 0 Td (sleep)Tj /T1_1 1 Tf 3.275 0 Td [(is )-25(done.)-525(Then)]TJ /TT0 1 Tf 6.514 0 Td (system)Tj /T1_1 1 Tf -0.018 Tc 3.875 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns. )-275(When)]TJ /TT0 1 Tf 6.023 0 Td (pclose)Tj /T1_1 1 Tf -32.335 -1.2 Td (calls)Tj /TT0 1 Tf 2.352 0 Td (wait)Tj /T1_1 1 Tf [(,)-402(an)-402(e)-1(rr)18(or )-152(is )-152(r)18(eturned, )-152(since )-152(ther)]TJ 0.4024 Tc 17.139 0 Td (ea)Tj -0.018 Tc 1.381 0 Td [(re )-188(n)]TJ 0.4024 Tc 1.84 0 Td (om)Tj 0 Tc 1.831 0 Td (or)Tj 0.4024 Tc 0.923 0 Td (ec)Tj 0 Tc 1.325 0 Td [(hildr)18(en )-152(to)]TJ /TT0 1 Tf 4.89 0 Td (wait)Tj /T1_1 1 Tf 2.802 0 Td [(for)74(.)]TJ -34.485 -1.2 Td (Then)Tj /TT0 1 Tf 2.506 0 Td (pclose)Tj /T1_1 1 Tf -0.018 Tc 3.85 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns an err)18(or)74(.)]TJ /T1_0 1 Tf -10.277 -1.84 Td (15.7)Tj /T1_1 1 Tf 3.065 0 Td [(Although )-110(the )-110(details )-110(vary )-110(by )-110(platform )-110(\(see )-110(Figur)]TJ 0.3601 Tc 22.192 0 Td (eC)Tj 0 Tc 1.548 0 Td (.19\),)Tj /TT0 1 Tf 2.193 0 Td (select)Tj /T1_1 1 Tf 3.96 0 Td [(indicates )-110(that)]TJ -29.893 -1.2 Td [(the )-146(descriptor )-146(is )-146(r)19(eadable. )-396(After)-395(all )-146(the )-146(data )-146(has )-146(been )-146(r)20(ead,)]TJ /TT0 1 Tf 27.79 0 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.796 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-146(0 )-146(to)]TJ -31.441 -1.2 Td [(indicate )-52(the )-52(end )-52(of )-52(\336le.)-551(But )-52(with)]TJ /TT0 1 Tf 15.022 0 Td (poll)Tj /T1_1 1 Tf 0.3017 Tc (,t)Tj 0 Tc 3.278 0 Td (he)Tj /TT0 1 Tf 1.363 0 Td (POLLHUP)Tj /T1_1 1 Tf 4.502 0 Td [(event )-52(is )-52(r)18(eturned, )-52(and )-52(this)]TJ -24.164 -1.2 Td [(can )-84(happen )-84(while )-84(ther)18(e)-334(is)-334(still )-84(data )-84(to )-84(be )-84(r)18(ead. )-334(Once)-334(we )-84(have )-84(r)18(ead )-84(all )-84(the )-84(data,)]TJ 0 -1.2 TD [(however)74(,)]TJ /TT0 1 Tf 4.407 0 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.751 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-101(0 )-101(to )-101(indicate )-101(the )-101(end )-101(of )-101(\336le.)-601(After )-101(all )-101(the )-101(data )-101(has )-101(been)]TJ -0.018 Tc -8.014 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ad, )-43(the)]TJ /TT0 1 Tf 3.335 0 Td (POLLIN)Tj /T1_1 1 Tf 3.893 0 Td [(event )-43(is )-43(not )-43(r)18(eturned, )-43(even )-43(though )-43(we )-43(need )-43(to )-43(issue )-43(a)]TJ /TT0 1 Tf 24.285 0 Td (read)Tj /T1_1 1 Tf 2.693 0 Td (to)Tj -0.018 Tc -35.063 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ceive the end-of-\336le noti\336cation \(the r)18(eturn value of 0\).)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1499.25 2892.25 cm 0 0 m 3656 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 353.7905 281.1763 Tm [(Fr)18(eeBSD )-1725(Linux )-1725(Mac)-250(OS X)-1759(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-3302(3.2.0)-3210(10.6.8 )-3429(10)]TJ -16.773 0.625 Td (Operation)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1499.25 2672.25 cm 0 0 m 3656 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1499.25 2652.25 cm 0 0 m 3656 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 355.0091 257.1637 Tm [(R/W/E )-2847(R)-3990(R/W )-2297(R/W/E)]TJ /TT0 1 Tf -25.145 0 Td (select)Tj /T1_1 1 Tf 3.85 0 Td (on)Tj /TT0 1 Tf 1.378 0 Td (read)Tj /T1_1 1 Tf 2.65 0 Td (end of pipe with)Tj /TT0 1 Tf 7.556 0 Td (write)Tj /T1_1 1 Tf 3.25 0 Td (end closed)Tj 6.463 -1.25 Td [(R/HUP )-2076(HUP)-3408(INV )-3127(HUP)]TJ /TT0 1 Tf -25.146 0 Td (poll)Tj /T1_1 1 Tf 2.65 0 Td (on)Tj /TT0 1 Tf 1.378 0 Td (read)Tj /T1_1 1 Tf 2.65 0 Td (end of pipe with)Tj /TT0 1 Tf 7.556 0 Td (write)Tj /T1_1 1 Tf 3.25 0 Td (end closed)Tj 7.661 -1.25 Td [(R/W/E )-2045(R/W)-3186(R/W )-2905(R/W)]TJ /TT0 1 Tf -25.145 0 Td (select)Tj /T1_1 1 Tf 3.85 0 Td (on)Tj /TT0 1 Tf 1.378 0 Td (write)Tj /T1_1 1 Tf 3.25 0 Td (end of pipe with)Tj /TT0 1 Tf 7.556 0 Td (read)Tj /T1_1 1 Tf 2.65 0 Td (end closed)Tj 6.463 -1.25 Td [(R/HUP )-1406(W/ERR)-2739(INV )-3127(HUP)]TJ /TT0 1 Tf -25.146 0 Td (poll)Tj /T1_1 1 Tf 2.65 0 Td (on)Tj /TT0 1 Tf 1.378 0 Td (write)Tj /T1_1 1 Tf 3.25 0 Td (end of pipe with)Tj /TT0 1 Tf 7.556 0 Td (read)Tj /T1_1 1 Tf 2.65 0 Td (end closed)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1499.25 2232.25 cm 0 0 m 3656 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4776.25 2232.25 cm 0 0 m 0 660 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4306.25 2232.25 cm 0 0 m 0 660 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3902.25 2232.25 cm 0 0 m 0 660 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3478.25 2232.25 cm 0 0 m 0 660 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5155.25 2232.25 cm 0 0 m 0 660 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1499.25 2232.25 cm 0 0 m 0 660 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 241.551 205.1608 Tm (Figure C.19)Tj /T1_1 1 Tf 5.917 0 Td (Pipe behavior with)Tj /TT0 1 Tf 8.669 0 Td (select)Tj /T1_1 1 Tf 3.85 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (poll)Tj /T1_1 1 Tf 9.9976 0 0 9.9976 160.2115 181.1665 Tm [(The )-303(conditions )-303(shown )-303(in )-303(Figur)]TJ 0.5532 Tc 14.754 0 Td (eC)Tj 0 Tc 1.741 0 Td [(.19 )-303(include )-303(R )-303(\(r)17(eadable\), )-303(W )-303(\(writable\), )-303(E)]TJ -16.495 -1.2 Td [(\(exception\), )-73(HUP )-73(\(hangup\), )-73(ERR )-73(\(err)18(or\), )-73(and )-73(INV )-73(\(invalid )-73(\336le )-73(descriptor\).)]TJ -0.055 Tc 33.791 0 Td (Wi)Tj 0 Tc 1.236 0 Td (th)Tj -35.027 -1.2 Td [(an )-188(output )-188(descriptor )-188(that )-188(r)18(efers )-188(to )-188(a )-188(pipe )-188(that )-188(has )-188(been )-188(closed )-188(by )-188(the )-188(r)20(eader)74(,)]TJ /TT0 1 Tf T* (select)Tj /T1_1 1 Tf 3.965 0 Td [(indicates )-115(that )-115(the )-115(descriptor )-115(is )-115(writable.)-613(But )-115(when )-115(we )-115(call)]TJ /TT0 1 Tf 26.968 0 Td (write)Tj /T1_1 1 Tf 0.3648 Tc (,t)Tj 0 Tc 3.941 0 Td (he)Tj /TT0 1 Tf -34.874 -1.2 Td (SIGPIPE)Tj /T1_1 1 Tf 4.581 0 Td [(signal )-131(is )-131(generated.)-631(If )-131(we )-131(either )-131(ignor)]TJ 0.381 Tc 17.439 0 Td (et)Tj 0 Tc 1.186 0 Td [(his )-131(signal )-131(or )-131(r)18(eturn )-131(fr)18(om )-131(its)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47119 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (934)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 6690.25 cm 0 0 m 50 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 160.2404 659.4594 Tm (#include )Tj 0 -1.783 TD (void)Tj 0 -1.189 TD (sleep_us\(unsigned int nusecs\))Tj T* ({)Tj 2.4 -1.189 Td [(struct pollfd)-1800(dummy;)]TJ T* (int )Tj 9.6 0 Td (timeout;)Tj -9.6 -1.783 Td (if \(\(timeout = nusecs / 1000\) <= 0\))Tj 2.4 -1.189 Td (timeout = 1;)Tj -2.4 -1.189 Td (poll\(&dummy, 0, timeout\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 5477.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 5477.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 241.664 531.6342 Tm (Figure C.17)Tj /T1_1 1 Tf 5.917 0 Td (Implementation of)Tj /TT0 1 Tf 8.485 0 Td (sleep_us)Tj /T1_1 1 Tf 5.05 0 Td (using)Tj /TT0 1 Tf 2.706 0 Td (poll)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 160.2308 507.6371 Tm [(As )-363(the )-363(BSD)]TJ /TT0 1 Tf 6.338 0 Td (usleep)Tj /T1_1 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (3)Tj 0.5 0.04 Td (\))Tj 0.946 -0.04 Td [(manual )-363(page )-363(states,)]TJ /TT0 1 Tf 10.063 0 Td (usleep)Tj /T1_1 1 Tf 4.213 0 Td [(uses )-363(the)]TJ /TT0 1 Tf 4.543 0 Td (nanosleep)Tj /T1_1 1 Tf -30.535 -1.2 Td (function, which doesn\325t interfer)Tj 0.25 Tc 13.948 0 Td (ew)Tj 0 Tc 1.563 0 Td [(ith timers set by the calling pr)18(ocess.)]TJ /T1_0 1 Tf -18.576 -1.84 Td (14.6)Tj /T1_1 1 Tf 3.065 0 Td [(No. )-336(What)-337(we )-86(would )-86(like )-86(to )-86(do )-86(is )-86(have)]TJ /TT0 1 Tf 17.999 0 Td (TELL_WAIT)Tj /T1_1 1 Tf 5.736 0 Td [(cr)18(eate )-86(a )-86(temporary )-86(\336le )-86(and)]TJ -23.735 -1.2 Td [(use )-173(1 )-173(byte )-173(for )-173(the )-173(par)18(ent\325s )-173(lock )-173(and )-173(1 )-173(byte )-173(for )-173(the )-173(child\325s )-173(lock.)]TJ /TT0 1 Tf 29.935 0 Td (WAIT_CHILD)Tj /T1_1 1 Tf -29.935 -1.2 Td [(would )-475(have )-475(the )-475(par)18(ent )-475(wait )-475(to )-475(obtain )-475(a )-475(lock )-475(on )-475(the )-475(child\325s )-475(byte, )-475(and)]TJ /TT0 1 Tf 0 -1.2 TD (TELL_PARENT)Tj /T1_1 1 Tf 7.012 0 Td [(would )-162(have )-162(the )-162(child )-162(r)19(elease )-162(the )-162(lock )-162(on )-162(the )-162(child\325s )-162(byte.)-661(The)]TJ -7.012 -1.2 Td [(pr)18(oblem, )-95(however)]TJ 0.3448 Tc 8.131 0 Td (,i)Tj 0.3447 Tc 0.886 0 Td (st)Tj 0 Tc 1.095 0 Td [(hat )-95(calling)]TJ /TT0 1 Tf 5.052 0 Td (fork)Tj /T1_1 1 Tf -0.018 Tc 2.745 0 Td (re)Tj 0 Tc 0.856 0 Td [(leases )-95(all )-95(the )-95(locks )-95(in )-95(the )-95(child, )-95(so )-95(the)]TJ -18.764 -1.2 Td (child can\325t start of)Tj 0.25 Tc 7.931 0 Td (fw)Tj 0 Tc 1.417 0 Td (ith any locks of its own.)Tj /T1_0 1 Tf -12.413 -1.84 Td (14.7)Tj /T1_1 1 Tf 0.25 Tc 3.065 0 Td (As)Tj 0 Tc 1.452 0 Td (olution is shown in Figur)Tj 0.25 Tc 11.124 0 Td (eC)Tj 0 Tc 1.438 0 Td (.18.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 3917.25 cm 0 0 m 50 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 3917.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 160.2212 382.1282 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (int i, n;)Tj T* (int fd[2];)Tj 0 -1.783 TD (if \(pipe\(fd\) < 0\))Tj 2.4 -1.189 Td (err_sys\("pipe error"\);)Tj -2.4 -1.189 Td (set_fl\(fd[1], O_NONBLOCK\);)Tj T* (/* write 1 byte at a time until pipe is full */)Tj 0 -1.189 TD (for \(n = 0; ; n++\) {)Tj 2.4 -1.189 Td (if \(\(i = write\(fd[1], "a", 1\)\) != 1\) {)Tj 2.4 -1.189 Td (printf\("write ret %d, ", i\);)Tj T* (break;)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (printf\("pipe capacity = %d\\n", n\);)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 1580.25 cm 0 0 m 50 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 1580.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 220.884 142.0119 Tm (Figure C.18)Tj /T1_1 1 Tf 5.917 0 Td (Calculation of pipe capacity using nonblocking writes)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47120 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 33.912 0 Td [(Chapter )-250(1)]TJ 0.75 Tc 4.537 0 Td (1S)Tj 0 Tc 1.775 0 Td (olutions)Tj /T1_1 1 Tf 5.609 0 Td (925)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (10.10)Tj /T1_0 1 Tf 3.065 0 Td [(On )-5(one )-5(system )-5(used )-5(by )-5(the )-5(author)]TJ 0.255 Tc 15.088 0 Td (,t)Tj 0 Tc 0.831 0 Td [(he )-5(value )-5(for )-5(the )-5(number )-5(of )-5(seconds )-5(incr)18(eased)]TJ -15.919 -1.2 Td [(by )-106(1 )-106(about )-106(every )-106(60)]TJ 9.118 0.09 Td (\320)Tj 0.583 -0.09 Td [(90 )-106(minutes.)-606(This )-106(skew )-106(occurs )-106(because )-106(each )-106(call )-106(to)]TJ /TT0 1 Tf 23.234 0 Td (sleep)Tj /T1_0 1 Tf -32.935 -1.2 Td [(schedules )-130(an )-130(event )-130(for )-130(a )-130(time )-130(in )-130(the )-130(futur)18(e, )-130(but )-130(is )-130(not )-130(awakened )-130(exactly )-130(when)]TJ 0 -1.2 TD [(that )-117(event )-117(occurs )-117(\(because )-117(of )-117(CPU )-117(scheduling\).)-617(In )-117(addition, )-117(a )-117(\336nite )-117(amount )-117(of)]TJ T* [(time is r)18(equir)18(ed for our pr)18(ocess to start r)8(unning and call)]TJ /TT0 1 Tf 24.979 0 Td (sleep)Tj /T1_0 1 Tf 3.25 0 Td (again.)Tj 0.2809 Tc -28.229 -1.8 Td (Ap)Tj -0.018 Tc 1.66 0 Td (ro)Tj 0 Tc 0.923 0 Td [(gram )-31(such )-31(as )-31(the)]TJ /TT0 1 Tf 7.822 0 Td (cron)Tj /T1_0 1 Tf 2.681 0 Td [(daemon )-31(has )-31(to )-31(fetch )-31(the )-31(curr)18(ent )-31(time )-31(every )-31(minute,)]TJ -13.085 -1.2 Td [(as )-74(well )-74(as )-74(to )-74(set )-74(its )-74(\336rst )-74(sleep )-74(period )-74(so )-74(that )-74(it )-74(wakes )-74(up )-74(at )-74(the )-74(beginning )-74(of )-74(the)]TJ T* [(next )-43(minute.)-543(\(Convert )-43(the )-43(curr)18(ent )-43(time )-43(to )-43(the )-43(local )-43(time )-43(and )-43(look )-43(at )-43(the)]TJ /TT0 1 Tf 32.335 0 Td (tm_sec)Tj /T1_0 1 Tf -32.335 -1.2 Td [(value.\) )-251(Every)-251(minute, )-1(it )-1(sets )-1(the )-1(next )-1(sleep )-1(period )-1(so )-1(that )-1(it\325ll )-1(wake )-1(up )-1(at )-1(the )-1(next)]TJ T* [(minute. )-524(Most)-524(of )-274(the )-274(calls )-274(will )-274(pr)18(obably )-274(be)]TJ /TT0 1 Tf 21.03 0 Td (sleep\(60\))Tj /T1_0 1 Tf 0.524 Tc (,w)Tj 0 Tc 7.008 0 Td [(ith )-274(an )-274(occasional)]TJ /TT0 1 Tf -28.038 -1.2 Td (sleep\(59\))Tj /T1_0 1 Tf 5.85 0 Td [(to )-200(r)18(esynchr)18(onize )-200(with )-200(the )-200(next )-200(minute.)-701(But )-200(if )-200(at )-200(some )-200(point )-200(the)]TJ -5.85 -1.2 Td [(pr)18(ocess )-222(takes )-222(a )-222(long )-222(time )-222(executing )-222(commands )-222(or )-222(if )-222(the )-222(system )-222(gets )-222(heavily)]TJ T* [(loaded )-69(and )-69(scheduling )-69(delays )-69(hold )-69(up )-69(the )-69(pr)19(ocess, )-69(the )-69(sleep )-69(value )-69(can )-69(be )-69(much)]TJ T* (less than 60.)Tj /T1_1 1 Tf -3.065 -1.84 Td [(10.1)37(1)]TJ /T1_0 1 Tf 3.065 0 Td [(Under )-285(Linux )-285(3.2.0, )-285(Mac )-285(OS )-285(X )-285(10.6.8, )-285(and )-285(Solaris )-285(10, )-285(the )-285(signal )-285(handler )-285(for)]TJ /TT0 1 Tf T* (SIGXFSZ)Tj /T1_0 1 Tf 4.559 0 Td [(is )-109(never )-109(called.)-610(But)]TJ /TT0 1 Tf 9.308 0 Td (write)Tj /T1_0 1 Tf -0.018 Tc 3.359 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-109(a )-109(count )-109(of )-109(24 )-109(as )-109(soon )-109(as )-109(the )-109(\336le\325s)]TJ -18.082 -1.2 Td [(size r)18(eaches 1,024 bytes.)]TJ 0 -1.8 TD [(When )-297(the )-297(\336le\325s )-297(size )-297(has )-297(r)18(eached )-297(1,000 )-297(bytes )-297(under )-297(Fr)16(eeBSD )-297(8.0, )-297(the )-297(signal)]TJ 0 -1.2 TD [(handler )-208(is )-208(called )-208(on )-208(the )-208(next )-208(attempt )-208(to )-208(write )-208(100 )-208(bytes, )-208(and )-208(the)]TJ /TT0 1 Tf 30.95 0 Td (write)Tj /T1_0 1 Tf 3.458 0 Td (call)Tj -0.018 Tc -34.409 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj /TT1 1 Tf 2.58 0 Td (!)Tj /T1_0 1 Tf 0.25 Tc (1w)Tj 0 Tc 2.133 0 Td (ith)Tj /TT0 1 Tf 1.449 0 Td (errno)Tj /T1_0 1 Tf 3.25 0 Td (set to)Tj /TT0 1 Tf 2.601 0 Td (EFBIG)Tj /T1_0 1 Tf 3.25 0 Td [(\(\324)37(\324File too big\325)37(\325\).)]TJ -16.119 -1.8 Td [(On )-24(all )-24(four )-24(platforms, )-24(if )-24(we )-24(attempt )-24(an )-24(additional)]TJ /TT0 1 Tf 22.349 0 Td (write)Tj /T1_0 1 Tf 3.274 0 Td [(at )-24(the )-24(curr)18(ent )-24(\336le )-24(of)19(fset)]TJ -25.623 -1.2 Td [(\(the )-84(end )-84(of )-84(the )-84(\336le\), )-84(we )-84(will )-84(r)16(eceive)]TJ /TT0 1 Tf 16.424 0 Td (SIGXFSZ)Tj /T1_0 1 Tf 4.534 0 Td (and)Tj /TT0 1 Tf 2.027 0 Td (write)Tj /T1_0 1 Tf 3.334 0 Td [(will )-84(fail, )-84(r)17(eturning)]TJ /TT1 1 Tf 8.566 0 Td (!)Tj /T1_0 1 Tf (1)Tj -34.886 -1.2 Td (with)Tj /TT0 1 Tf 2.283 0 Td (errno)Tj /T1_0 1 Tf 3.25 0 Td (set to)Tj /TT0 1 Tf 2.601 0 Td (EFBIG)Tj /T1_0 1 Tf (.)Tj /T1_1 1 Tf -11.199 -1.84 Td (10.12)Tj /T1_0 1 Tf 3.065 0 Td [(The )-74(r)18(esults )-74(depend )-74(on )-74(the )-74(implementation )-74(of )-74(the )-74(standar)]TJ 0.3244 Tc 25.717 0 Td (dI)Tj 0 Tc 1.272 0 Td [(/O )-74(library: )-74(how )-74(the)]TJ /TT0 1 Tf -26.99 -1.2 Td (fwrite)Tj /T1_0 1 Tf 3.85 0 Td [(function handles an interr)8(upted)]TJ /TT0 1 Tf 14.338 0 Td (write)Tj /T1_0 1 Tf (.)Tj -18.188 -1.8 Td [(On )-75(Linux )-75(3.2.0, )-75(for )-75(example, )-75(when )-75(we )-75(use )-75(the)]TJ /TT0 1 Tf 21.102 0 Td (fwrite)Tj /T1_0 1 Tf 3.925 0 Td [(function )-75(to )-75(write )-75(a )-75(lar)18(ge)]TJ -25.027 -1.2 Td [(buf)18(fer)]TJ 0.3461 Tc 2.604 0 Td (,t)Tj 0 Tc 0.922 0 Td (he)Tj /TT0 1 Tf 1.407 0 Td (fwrite)Tj /T1_0 1 Tf 3.946 0 Td [(function )-96(calls)]TJ /TT0 1 Tf 6.349 0 Td (write)Tj /T1_0 1 Tf 3.346 0 Td [(dir)18(ectly )-96(for )-96(the )-96(same )-96(number )-96(of )-96(bytes.)]TJ -18.575 -1.2 Td [(While )-91(in )-91(the )-91(middle )-91(of )-91(the)]TJ /TT0 1 Tf 12.383 0 Td (write)Tj /T1_0 1 Tf 3.341 0 Td [(system )-91(call, )-91(the )-91(alarm )-91(\336r)18(es, )-91(but )-91(we )-91(don\325t )-91(see)]TJ -15.725 -1.2 Td [(the )-130(signal )-130(until )-130(the )-130(write )-130(completes.)-632(It )-130(appears )-130(as )-130(if )-130(the )-130(kernel )-130(is )-130(blocking )-130(the)]TJ T* [(signal while we ar)18(e)-250(in)-250(the middle of the)]TJ /TT0 1 Tf 17.732 0 Td (write)Tj /T1_0 1 Tf 3.25 0 Td (system call.)Tj -20.982 -1.8 Td [(In )-108(contrast, )-108(on )-108(Solaris )-108(10, )-108(the)]TJ /TT0 1 Tf 13.596 0 Td (fwrite)Tj /T1_0 1 Tf 3.958 0 Td [(function )-108(calls)]TJ /TT0 1 Tf 6.373 0 Td (write)Tj /T1_0 1 Tf 3.358 0 Td [(in )-108(8 )-108(KB )-108(incr)18(ements)]TJ -27.284 -1.2 Td [(until )-3(the )-3(entir)]TJ 0.2529 Tc 6.041 0 Td (ea)Tj 0 Tc 1.232 0 Td [(mount )-3(is )-3(written.)-503(When )-3(the )-3(alarm )-3(\336r)18(es, )-3(it )-3(is )-3(caught, )-3(interr)9(upting)]TJ -7.273 -1.2 Td [(the )-146(call )-146(to)]TJ /TT0 1 Tf 4.973 0 Td (fwrite)Tj /T1_0 1 Tf 0.646 Tc (.A)Tj 0 Tc 5.274 0 Td [(fter )-146(we )-146(r)18(eturn )-146(fr)18(om )-146(the )-146(signal )-146(handler)74(,)-396(we)-396(r)18(eturn )-146(to )-146(the)]TJ -10.247 -1.2 Td (loop inside the)Tj /TT0 1 Tf 6.799 0 Td (fwrite)Tj /T1_0 1 Tf 3.85 0 Td [(function and continue writing in 8 KB incr)18(ements.)]TJ /TT2 1 Tf -17.314 -4.32 Td [(Chapter )-278(11)]TJ /T1_1 1 Tf -0.037 Tc 3.6 -2.8 Td (11)Tj 0 Tc 0.963 0 Td (.1)Tj /T1_0 1 Tf 0.2529 Tc 2.102 0 Td (Av)Tj 0 Tc 1.596 0 Td [(ersion )-3(of )-3(the )-3(pr)18(ogram )-3(that )-3(allocates )-3(the )-3(memory )-3(dynamically )-3(instead )-3(of )-3(using)]TJ -1.596 -1.2 Td (an automatic variable is shown in Figur)Tj 0.25 Tc 17.514 0 Td (eC)Tj 0 Tc 1.438 0 Td (.12.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47121 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 34.357 0 Td [(Chapter )-250(8)-750(Solutions)]TJ /T1_1 1 Tf 11.476 0 Td (921)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 155.6107 668.9599 Tm [(This )-45(assumes )-45(that )-45(the )-45(standar)]TJ 0.2952 Tc 13.269 0 Td (dI)Tj 0 Tc 1.243 0 Td [(/O )-45(str)18(eam)]TJ /TT0 1 Tf 4.971 0 Td (stdout)Tj /T1_0 1 Tf 3.895 0 Td [(is )-45(closed )-45(when )-45(the )-45(child )-45(calls)]TJ /TT0 1 Tf -23.379 -1.2 Td (exit)Tj /T1_0 1 Tf 0.4384 Tc (,n)Tj 0 Tc 3.67 0 Td [(ot )-188(the )-188(\336le )-188(descriptor)]TJ /TT0 1 Tf 9.9 0 Td (STDOUT_FILENO)Tj /T1_0 1 Tf 0.6884 Tc (.S)Tj 0 Tc 9.263 0 Td [(ome )-188(versions )-188(of )-188(the )-188(standar)16(d)]TJ -22.833 -1.2 Td [(I/O )-9(library )-9(close )-9(the )-9(\336le )-9(descriptor )-9(associated )-9(with )-9(standar)]TJ 0.2589 Tc 26.137 0 Td (do)Tj 0 Tc 1.416 0 Td [(utput, )-9(which )-9(would)]TJ -27.553 -1.2 Td [(cause )-24(the)]TJ /TT0 1 Tf 4.384 0 Td (write)Tj /T1_0 1 Tf 3.274 0 Td [(to )-24(standar)]TJ 0.2736 Tc 4.466 0 Td (do)Tj 0 Tc 1.431 0 Td [(utput )-24(to )-24(also )-24(fail.)-524(In )-24(this )-24(case,)]TJ /TT0 1 Tf 13.561 0 Td (dup)Tj /T1_0 1 Tf 2.074 0 Td (standar)Tj 0.2735 Tc 3.32 0 Td (do)Tj 0 Tc 1.431 0 Td (utput)Tj -33.939 -1.2 Td (to another descriptor)Tj 0.25 Tc 9.22 0 Td (,a)Tj 0 Tc 1 0 Td (nd use this new descriptor for the)Tj /TT0 1 Tf 15.14 0 Td (write)Tj /T1_0 1 Tf (.)Tj /T1_1 1 Tf -27.962 -1.84 Td (8.2)Tj /T1_0 1 Tf 2.602 0 Td (Consider Figur)Tj 0.25 Tc 6.67 0 Td (eC)Tj 0 Tc 1.438 0 Td (.8.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1556.25 5930.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1596.25 5930.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 155.6013 583.429 Tm (#include "apue.h")Tj 0 -2.259 TD (static void f1\(void\), f2\(void\);)Tj T* (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (f1\(\);)Tj T* (f2\(\);)Tj 0 -1.189 TD (_exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -2.259 TD (static void)Tj 0 -1.189 TD (f1\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(pid_t )-1200(pid;)]TJ 0 -2.259 TD (if \(\(pid = vfork\(\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("vfork error"\);)Tj -2.4 -1.189 Td (/* child and parent both return */)Tj -2.4 -1.189 Td (})Tj T* (static void)Tj 0 -1.189 TD (f2\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(char )-1800(buf[1000];)-3600(/* automatic variables */)]TJ 0 -1.189 TD [(int )-2400(i;)]TJ 0 -2.259 TD (for \(i = 0; i < sizeof\(buf\); i++\))Tj 2.4 -1.189 Td (buf[i] = 0;)Tj -4.8 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1556.25 2641.25 cm 0 0 m 50 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1596.25 2641.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 275.6324 248.0733 Tm (Figure C.8)Tj /T1_0 1 Tf 5.417 0 Td [(Incorr)18(ect use of)]TJ /TT0 1 Tf 7.065 0 Td (vfork)Tj /T1_0 1 Tf 9.9982 0 0 9.9982 155.5918 214.4794 Tm (When)Tj /TT0 1 Tf 2.944 0 Td (vfork)Tj /T1_0 1 Tf 3.301 0 Td [(is )-51(called, )-51(the )-51(par)18(ent\325s )-51(stack )-51(pointer )-51(points )-51(to )-51(the )-51(stack )-51(frame )-51(for )-51(the)]TJ /TT0 1 Tf -6.246 -1.2 Td (f1)Tj /T1_0 1 Tf 1.562 0 Td [(function )-112(that )-112(calls)]TJ /TT0 1 Tf 8.476 0 Td (vfork)Tj /T1_0 1 Tf 0.6116 Tc (.F)Tj 0 Tc 4.418 0 Td (igur)Tj 0.3616 Tc 1.827 0 Td (eC)Tj 0 Tc 1.55 0 Td [(.9 )-112(shows )-112(this.)]TJ /TT0 1 Tf 6.768 0 Td (vfork)Tj /T1_0 1 Tf 3.362 0 Td [(causes )-112(the )-112(child )-112(to)]TJ -27.961 -1.2 Td [(execute )-50(\336rst, )-50(and )-50(the )-50(child )-50(r)18(eturns )-50(fr)17(om)]TJ /TT0 1 Tf 18.051 0 Td (f1)Tj /T1_0 1 Tf 0.5501 Tc (.T)Tj 0 Tc 2.613 0 Td [(he )-50(child )-50(then )-50(calls)]TJ /TT0 1 Tf 8.399 0 Td (f2)Tj /T1_0 1 Tf 0.3002 Tc (,a)Tj 0 Tc 2.25 0 Td [(nd )-50(its )-50(stack)]TJ -31.314 -1.2 Td [(frame )-130(overwrites )-130(the )-130(pr)18(evious )-130(stack )-130(frame )-130(for)]TJ /TT0 1 Tf 21.37 0 Td (f1)Tj /T1_0 1 Tf 0.6298 Tc (.T)Tj 0 Tc 2.693 0 Td [(he )-130(child )-130(then )-130(zer)18(os )-130(out )-130(the)]TJ -24.062 -1.2 Td [(automatic )-205(variable)]TJ /TT0 1 Tf 8.902 0 Td (buf)Tj /T1_0 1 Tf 0.4547 Tc (,s)Tj 0 Tc 2.929 0 Td [(etting )-205(1,000 )-205(bytes )-205(of )-205(the )-205(stack )-205(frame )-205(to )-205(0.)-705(The )-205(child)]TJ -0.018 Tc -11.831 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-109(fr)18(om)]TJ /TT0 1 Tf 5.188 0 Td (f2)Tj /T1_0 1 Tf 1.559 0 Td [(and )-109(then )-109(calls)]TJ /TT0 1 Tf 6.69 0 Td (_exit)Tj /T1_0 1 Tf 0.3592 Tc (,b)Tj 0 Tc 4.162 0 Td [(ut )-109(the )-109(contents )-109(of )-109(the )-109(stack )-109(beneath )-109(the)]TJ -18.455 -1.2 Td [(stack )-80(frame )-80(for)]TJ /TT0 1 Tf 7.103 0 Td (main)Tj /T1_0 1 Tf 2.73 0 Td [(have )-80(been )-80(changed.)-579(The )-80(par)18(ent )-80(then )-80(r)18(esumes )-80(after )-80(the )-80(call)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47122 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (908)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 1341.24 5558 1008 1080 re S Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 151.3869 667 Tm [(pr)18(ocess table entry)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1629.24 6062 576 72 re S Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1629.24 5990 576 72 re S Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1629.24 5918 576 72 re S Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1629.24 5702 576 216 re S Q BT /T1_1 1 Tf 0.25 Tc 13.9983 0 0 13.9983 182.952 579.1705 Tm (...)Tj 0 Tc 6.9992 0 0 6.9992 149.2983 607.9666 Tm (fd1:)Tj 0 -1.029 TD (fd2:)Tj T* (fd3:)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1845.25 6134.25 cm 0 0 m 0 -216 l S Q Q BT /T1_1 1 Tf 6.9987 0 0 6.9987 170.3893 622.288 Tm (fd)Tj -0.572 -0.714 Td (\337ags)Tj 4.471 0.714 Td (\336le)Tj -0.923 -0.714 Td (pointer)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2925.24 6494 720 144 re S Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 302.1875 654.6829 Tm (\336le status \337ags)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2925.24 6350 720 144 re S Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 298.4185 640.2479 Tm [(curr)18(ent \336le of)18(fset)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 2925.24 6206 720 144 re S Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 302.0712 625.8147 Tm (v-node pointer)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2925.24 5702 720 144 re S Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 302.1331 575.3983 Tm (\336le status \337ags)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 2925.24 5558 720 144 re S Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 298.3647 560.9707 Tm [(curr)18(ent \336le of)18(fset)]TJ ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 2925.24 5414 720 144 re S Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 302.0169 546.5448 Tm (v-node pointer)Tj 1.406 15.025 Td (\336le table)Tj 6.9962 0 0 6.9962 427.65 616.7069 Tm (v-node information)Tj /TT0 1 Tf 2.52 -2.057 Td (v_data)Tj /T1_1 1 Tf -2.383 -4.114 Td (i-node information)Tj 0.796 -2.057 Td [(curr)18(ent \336le size)]TJ /TT0 1 Tf 1.287 -1.543 Td (i_vnode)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 6278.25 cm 0 0 m 0 -288 l 720 -288 l 720 0 l 0 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 5846.25 cm 0 0 m 0 -396 l 720 -396 l 720 0 l 0 0 l 720 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 6098.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 6098.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 6098.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 6098.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 6098.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 6098.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 6098.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 6098.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 6098.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 6098.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 5666.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 5666.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 5666.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 5666.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 5666.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 5666.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 5666.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 5666.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 5666.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 5666.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 5558.25 cm 0 0 m 36 0 l S Q Q q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 422.124 586.76 cm 0 0 m -5.328 5.184 l -2.232 7.056 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 4221.2402 5867.6001 cm 0 0 m -53.28 51.84 l -22.32 70.56 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4293.2402 6044 cm 0 0 m -90 0 l -150 0 -162.6 -28.32 -127.8 -84.96 c -75.6 -169.92 l S Q Q q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 496.284 627.8 cm 0 0 m 4.032 -6.192 l 0.648 -7.344 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 4962.8398 6278 cm 0 0 m 40.32 -61.92 l 6.48 -73.44 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4869.2402 5504 cm 0 0 m 180 0 l 300 0 315.96 127.92 227.88 383.76 c 95.76 767.52 l S Q Q BT /T1_1 1 Tf 7.9942 0 0 7.9942 435.7501 630.5858 Tm (v-node table)Tj ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 288.924 663.8 cm 0 0 m -2.808 -6.84 l -5.688 -4.68 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 6638 cm 0 0 m -28.08 -68.4 l -56.88 -46.8 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 6098 cm 0 0 m 180 0 l 300 0 425.28 89.04 555.84 267.12 c 751.68 534.24 l S Q Q q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 288.924 660.2 cm 0 0 m -2.592 -6.984 l -5.544 -4.968 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 6602 cm 0 0 m -25.92 -69.84 l -55.44 -49.68 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 6026 cm 0 0 m 180 0 l 300 0 425.28 95.04 555.84 285.12 c 751.68 570.24 l S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 288.924 584.6 cm 0 0 m -7.416 0.144 l -6.48 3.6 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 5846 cm 0 0 m -74.16 1.44 l -64.8 36 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 5954 cm 0 0 m 180 0 l 300 0 424.8 -17.64 554.4 -52.92 c 748.8 -105.84 l S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 418.524 627.8 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 4185.2402 6278 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3573.24 6278 cm 0 0 m 180 0 l 300 0 400.8 0 482.4 0 c 604.8 0 l S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 418.524 624.2 cm 0 0 m -0.576 -7.416 l -3.96 -6.264 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 4185.2402 6242 cm 0 0 m -5.76 -74.16 l -39.6 -62.64 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3573.24 5486 cm 0 0 m 180 0 l 300 0 401.64 124.92 484.92 374.76 c 609.84 749.52 l S Q Q BT /T1_0 1 Tf 7.9918 0 0 7.9918 273.411 515.6737 Tm (Figure C.2)Tj /T1_1 1 Tf 5.417 0 Td (Result of)Tj /TT0 1 Tf 4.17 0 Td (dup)Tj /T1_1 1 Tf 2.05 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (open)Tj /T1_1 1 Tf 9.9898 0 0 9.9898 155.4615 484.5055 Tm (If)Tj /TT0 1 Tf 1.007 0 Td (fd)Tj /T1_1 1 Tf 1.537 0 Td [(is )-87(3, )-87(however)]TJ 0.337 Tc 5.945 0 Td (,a)Tj 0 Tc 1.087 0 Td [(fter )-87(the )-87(thr)18(ee )-87(calls )-87(to)]TJ /TT0 1 Tf 9.671 0 Td (dup2)Tj /T1_1 1 Tf 0.3371 Tc (,f)Tj 0 Tc 3.32 0 Td [(our )-87(descriptors )-87(ar)]TJ 0.3371 Tc 8.031 0 Td (ep)Tj 0 Tc 1.417 0 Td [(ointing )-87(to)]TJ -32.015 -1.2 Td (the same \336le table entry)Tj 0.5 Tc 10.424 0 Td (.I)Tj 0.25 Tc 1.087 0 Td (nt)Tj 0 Tc 1.158 0 Td (his case, we need to close descriptor 3.)Tj /T1_0 1 Tf -15.271 -1.84 Td (3.5)Tj /T1_1 1 Tf 2.602 0 Td [(Since the shells pr)18(ocess their command line fr)18(om left to right, the command)]TJ /TT0 1 Tf 8.9908 0 0 8.9908 173.4433 438.5224 Tm (./a.out > outfile 2>&1)Tj /T1_1 1 Tf 9.9898 0 0 9.9898 155.4616 421.6099 Tm [(\336rst )-310(sets )-310(standar)]TJ 0.5605 Tc 7.844 0 Td (do)Tj 0 Tc 1.717 0 Td [(utput )-310(to)]TJ /TT0 1 Tf 4.452 0 Td (outfile)Tj /T1_1 1 Tf 4.761 0 Td [(and )-310(then)]TJ /TT0 1 Tf 4.783 0 Td (dup)Tj /T1_1 1 Tf 0.5604 Tc (ss)Tj 0 Tc 3.208 0 Td (tandar)Tj 0.5604 Tc 2.896 0 Td (do)Tj 0 Tc 1.717 0 Td [(utput )-310(onto)]TJ -31.379 -1.2 Td [(descriptor )-197(2 )-197(\(standar)]TJ 0.4467 Tc 9.558 0 Td (de)Tj 0 Tc 1.537 0 Td [(rr)18(or\). )-447(The)]TJ -0.018 Tc 5.113 0 Td (re)Tj 0 Tc 0.856 0 Td [(sult )-197(is )-197(that )-197(standar)]TJ 0.4468 Tc 8.753 0 Td (do)Tj 0 Tc 1.604 0 Td [(utput )-197(and )-197(standar)18(d)]TJ -27.421 -1.2 Td [(err)18(or )-43(ar)]TJ 0.2934 Tc 3.362 0 Td (es)Tj 0 Tc 1.196 0 Td [(et )-43(to )-43(the )-43(same )-43(\336le.)-545(Descriptors )-43(1 )-43(and )-43(2 )-43(both )-43(point )-43(to )-43(the )-43(same )-43(\336le )-43(table)]TJ -4.559 -1.2 Td (entry)Tj 0.5 Tc 2.227 0 Td (.W)Tj 0 Tc 1.695 0 Td (ith)Tj /TT0 1 Tf 8.9908 0 0 8.9908 173.4435 370.0329 Tm (./a.out 2>&1 > outfile)Tj /T1_1 1 Tf 9.9898 0 0 9.9898 155.4618 353.12 Tm (however)Tj 0.5877 Tc 3.806 0 Td (,t)Tj 0 Tc 1.164 0 Td (he)Tj /TT0 1 Tf 1.649 0 Td (dup)Tj /T1_1 1 Tf 2.388 0 Td [(is )-338(executed )-338(\336rst, )-338(causing )-338(descriptor )-338(2 )-338(to )-338(be )-338(the )-338(terminal)]TJ -9.006 -1.2 Td [(\(assuming )-318(that )-318(the )-318(command )-318(is )-318(r)8(un )-318(interactively\).)-818(Then )-318(standar)]TJ 0.568 Tc 30.931 0 Td (do)Tj 0 Tc 1.725 0 Td [(utput )-318(is)]TJ -0.018 Tc -32.656 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(dir)18(ected )-146(to )-146(the )-146(\336le)]TJ /TT0 1 Tf 8.838 0 Td (outfile)Tj /T1_1 1 Tf 0.6465 Tc (.T)Tj 0 Tc 5.709 0 Td [(he )-146(r)18(esult )-146(is )-146(that )-146(descriptor )-146(1 )-146(points )-146(to )-146(the )-146(\336le)]TJ -15.403 -1.2 Td [(table )-174(entry )-174(for)]TJ /TT0 1 Tf 7.032 0 Td (outfile)Tj /T1_1 1 Tf 0.4236 Tc (,a)Tj 0 Tc 5.374 0 Td [(nd )-174(descriptor )-174(2 )-174(points )-174(to )-174(the )-174(\336le )-174(table )-174(entry )-174(for )-174(the)]TJ -12.405 -1.2 Td (terminal.)Tj /T1_0 1 Tf -2.602 -1.84 Td (3.6)Tj /T1_1 1 Tf -0.092 Tc 2.602 0 Td (Yo)Tj 0.3937 Tc 1.121 0 Td (uc)Tj 0 Tc 1.441 0 Td [(an )-144(still)]TJ /TT0 1 Tf 3.492 0 Td (lseek)Tj /T1_1 1 Tf 3.394 0 Td (and)Tj /TT0 1 Tf 2.087 0 Td (read)Tj /T1_1 1 Tf 2.794 0 Td [(anywher)18(e)-394(in)-394(the )-144(\336le, )-144(but )-144(a)]TJ /TT0 1 Tf 12.619 0 Td (write)Tj /T1_1 1 Tf 3.394 0 Td (automatically)Tj -0.018 Tc -30.341 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sets )-163(the )-163(\336le )-163(of)18(fset )-163(to )-163(the )-163(end )-163(of )-163(\336le )-163(befor)]TJ 0.4132 Tc 19.03 0 Td (et)Tj 0 Tc 1.218 0 Td [(he )-163(data )-163(is )-163(written.)-664(This )-163(makes )-163(it)]TJ -21.104 -1.2 Td (impossible to)Tj /TT0 1 Tf 6.155 0 Td (write)Tj /T1_1 1 Tf 3.25 0 Td (anywher)Tj 0.25 Tc 3.91 0 Td (eo)Tj 0 Tc 1.275 0 Td (ther than at the end of \336le.)Tj /TT1 1 Tf -20.792 -3.12 Td [(Chapter )-278(4)]TJ /T1_0 1 Tf 3.6 -2.44 Td (4.1)Tj /T1_1 1 Tf 2.602 0 Td (If)Tj /TT0 1 Tf 1.09 0 Td (stat)Tj /T1_1 1 Tf 2.82 0 Td [(is )-170(called, )-170(it )-170(always )-170(tries )-170(to )-170(follow )-170(a )-170(symbolic )-170(link )-170(\(Figur)]TJ 0.4203 Tc 26.058 0 Td (e4)Tj 0 Tc 1.399 0 Td [(.17\), )-170(so )-170(the)]TJ -31.368 -1.2 Td [(pr)18(ogram )-14(will )-14(never )-14(print )-14(a )-14(\336le )-14(type )-14(of )-14(\324)33(\324symbolic )-14(link.\325)]TJ 0.5144 Tc 24.074 0 Td (\325F)Tj 0 Tc 1.348 0 Td [(or )-14(the )-14(example )-14(shown )-14(in)]TJ -25.423 -1.2 Td [(the )-103(text, )-103(wher)18(e)]TJ /TT0 1 Tf 7.094 0 Td (/dev/cdrom)Tj /T1_1 1 Tf 6.353 0 Td [(is )-103(a )-103(symbolic )-103(link )-103(to)]TJ /TT0 1 Tf 9.56 0 Td (/dev/sr0)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 5.403 0 Td (stat)Tj /T1_1 1 Tf -0.018 Tc 2.753 0 Td (re)Tj 0 Tc 0.856 0 Td [(ports )-103(that)]TJ /TT0 1 Tf -32.019 -1.2 Td (/dev/cdrom)Tj /T1_1 1 Tf 6.478 0 Td [(is )-228(a )-228(block )-228(special )-228(\336le, )-228(not )-228(a )-228(symbolic )-228(link.)-726(If )-228(the )-228(symbolic )-228(link)]TJ -6.478 -1.2 Td (points to a nonexistent \336le,)Tj /TT0 1 Tf 12.15 0 Td (stat)Tj /T1_1 1 Tf -0.018 Tc 2.65 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns an err)18(or)74(.)]TJ /T1_0 1 Tf -18.258 -1.84 Td (4.2)Tj /T1_1 1 Tf 2.602 0 Td (All permissions ar)Tj 0.25 Tc 8.077 0 Td (et)Tj 0 Tc 1.055 0 Td [(urned of)18(f:)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47123 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 34.357 0 Td [(Chapter )-250(3)-750(Solutions)]TJ /T1_1 1 Tf 11.476 0 Td (907)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1556.25 6690.25 cm 0 0 m 50 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1596.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 155.6107 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj 0 -2.259 TD [(#define OPEN_MAX_GUESS)-1200(256)]TJ T* (long)Tj 0 -1.189 TD (open_max\(void\))Tj T* ({)Tj 2.4 -1.189 Td (long openmax;)Tj T* (struct rlimit rl;)Tj 0 -2.259 TD (if \(\(openmax = sysconf\(_SC_OPEN_MAX\)\) < 0 ||)Tj 1.2 -1.189 Td (openmax == LONG_MAX\) {)Tj 1.2 -1.189 Td (if \(getrlimit\(RLIMIT_NOFILE, &rl\) < 0\))Tj 2.4 -1.189 Td (err_sys\("can\325t get file limit"\);)Tj -2.4 -1.189 Td (if \(rl.rlim_max == RLIM_INFINITY\))Tj 2.4 -1.189 Td (openmax = OPEN_MAX_GUESS;)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (openmax = rl.rlim_max;)Tj -4.8 -1.189 Td (})Tj 0 -1.189 TD (return\(openmax\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1556.25 4225.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1596.25 4225.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 194.1307 406.4592 Tm (Figure C.1)Tj /T1_0 1 Tf 5.417 0 Td [(Alternative method for identifying the lar)18(gest possible \336le descriptor)]TJ /TT1 1 Tf 9.9988 0 0 9.9988 93.5887 358.465 Tm [(Chapter )-278(3)]TJ /T1_1 1 Tf 3.6 -2.8 Td (3.1)Tj /T1_0 1 Tf 2.602 0 Td [(All )-242(disk )-242(I/O )-242(goes )-242(thr)18(ough )-242(the )-242(kernel\325s )-242(block )-242(buf)18(fers )-242(\(also )-242(called )-242(the )-242(kernel\325s)]TJ 0 -1.2 TD [(buf)18(fer )-58(cache\).)-558(The )-58(exception )-58(to )-58(this )-58(is )-58(I/O )-58(on )-58(a )-58(raw )-58(disk )-58(device, )-58(which )-58(we )-58(ar)23(en\325t)]TJ 0 -1.2 Td [(considering. )-307(\(Some)-307(systems )-57(also )-57(pr)18(ovide )-57(a)]TJ /T1_2 1 Tf 19.555 0 Td [(dir)18(ect )-57(I/O)]TJ /T1_0 1 Tf 4.299 0 Td [(option )-57(to )-57(allow )-57(applications)]TJ -23.854 -1.2 Td [(to )-371(bypass )-371(the )-371(kernel )-371(buf)18(fers, )-371(but )-371(we )-371(ar)18(en\325t )-371(considering )-371(this )-371(option )-371(either)72(.\))]TJ T* [(Chapter )-137(3 )-137(of )-137(Bach)]TJ 8.657 0.04 Td ([)Tj 0.333 -0.04 Td (1986)Tj 2 0.04 Td (])Tj 0.72 -0.04 Td [(describes )-137(the )-137(operation )-137(of )-137(this )-137(buf)17(fer )-137(cache.)-637(Since )-137(the)]TJ -11.71 -1.2 Td [(data )-169(that )-169(we)]TJ /TT0 1 Tf 6.241 0 Td (read)Tj /T1_0 1 Tf 2.819 0 Td (or)Tj /TT0 1 Tf 1.36 0 Td (write)Tj /T1_0 1 Tf 3.419 0 Td [(is )-169(buf)18(fer)18(ed )-169(by )-169(the )-169(kernel, )-169(the )-169(term)]TJ /T1_2 1 Tf 16.397 0 Td [(unbuffer)18(ed )-169(I/O)]TJ /T1_0 1 Tf -0.018 Tc -30.236 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(fers )-286(to )-286(the )-286(lack )-286(of )-286(automatic )-286(buf)18(fering )-286(in )-286(the )-286(user )-286(pr)16(ocess )-286(with )-286(these )-286(two)]TJ -0.856 -1.2 Td [(functions. )-250(Each)]TJ /TT0 1 Tf 7.268 0 Td (read)Tj /T1_0 1 Tf 2.65 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (write)Tj /T1_0 1 Tf 3.25 0 Td (invokes a single system call.)Tj /T1_1 1 Tf -16.961 -1.84 Td (3.3)Tj /T1_0 1 Tf 2.602 0 Td [(Each )-187(call )-187(to)]TJ /TT0 1 Tf 5.846 0 Td (open)Tj /T1_0 1 Tf 2.837 0 Td [(gives )-187(us )-187(a )-187(new )-187(\336le )-187(table )-187(entry)]TJ 0.687 Tc 14.11 0 Td (.H)Tj 0 Tc 1.769 0 Td (owever)Tj 0.437 Tc 3.224 0 Td (,s)Tj 0 Tc 1.111 0 Td [(ince )-187(both)]TJ /TT0 1 Tf 4.677 0 Td (open)Tj /T1_0 1 Tf (s)Tj -0.018 Tc -33.574 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(ence )-31(the )-31(same )-31(\336le, )-31(both )-31(\336le )-31(table )-31(entries )-31(point )-31(to )-31(the )-31(same )-31(v-node )-31(table )-31(entry)114(.)]TJ -0.856 -1.2 Td [(The )-25(call )-25(to)]TJ /TT0 1 Tf 4.898 0 Td (dup)Tj /T1_0 1 Tf -0.018 Tc 2.075 0 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(ences )-25(the )-25(existing )-25(\336le )-25(table )-25(entry)]TJ 0.5253 Tc 15.576 0 Td (.W)Tj 0.2753 Tc 1.683 0 Td (es)Tj 0 Tc 1.178 0 Td [(how )-25(this )-25(in )-25(Figur)]TJ 0.2753 Tc 7.667 0 Td (eC)Tj 0 Tc 1.463 0 Td (.2.)Tj -35.398 -1.2 Td (An)Tj /TT0 1 Tf 1.622 0 Td (F_SETFD)Tj /T1_0 1 Tf 4.462 0 Td (on)Tj /TT0 1 Tf 1.39 0 Td (fd1)Tj /T1_0 1 Tf 2.062 0 Td [(af)18(fects )-12(only )-12(the )-12(\336le )-12(descriptor )-12(\337ags )-12(for)]TJ /TT0 1 Tf 17.264 0 Td (fd1)Tj /T1_0 1 Tf 0.2617 Tc (,b)Tj 0 Tc 2.865 0 Td [(ut )-12(an)]TJ /TT0 1 Tf 2.535 0 Td (F_SETFL)Tj /T1_0 1 Tf -32.198 -1.2 Td (on)Tj /TT0 1 Tf 1.378 0 Td (fd1)Tj /T1_0 1 Tf 2.05 0 Td [(af)18(fects the \336le table entry that both)]TJ /TT0 1 Tf 15.561 0 Td (fd1)Tj /T1_0 1 Tf 2.05 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (fd2)Tj /T1_0 1 Tf 2.05 0 Td (point to.)Tj /T1_1 1 Tf -27.634 -1.84 Td (3.4)Tj /T1_0 1 Tf 2.602 0 Td (If)Tj /TT0 1 Tf 1.163 0 Td (fd)Tj /T1_0 1 Tf 1.693 0 Td [(is )-243(1, )-243(then )-243(the)]TJ /TT0 1 Tf 6.793 0 Td [(dup2\(fd, )267(1\))]TJ /T1_0 1 Tf -0.018 Tc 6.826 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-243(1 )-243(without )-243(closing )-243(\336le )-243(descriptor )-243(1.)]TJ -17.331 -1.2 Td [(\(Remember )-96(our )-96(discussion )-96(of )-96(this )-96(in )-96(Section )-96(3.12.\))-596(After )-96(the )-96(thr)18(ee )-96(calls )-96(to)]TJ /TT0 1 Tf 33.748 0 Td (dup2)Tj /T1_0 1 Tf (,)Tj -33.748 -1.2 Td [(all )-18(thr)18(ee )-18(descriptors )-18(point )-18(to )-18(the )-18(same )-18(\336le )-18(table )-18(entry)]TJ 0.5183 Tc 23.319 0 Td (.N)Tj 0 Tc 1.599 0 Td [(othing )-18(needs )-18(to )-18(be )-18(closed.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47124 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (826)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(414 )-4800(nw)]TJ 0.6 Tc 9 0 Td (=w)Tj 0 Tc 1.8 0 Td (rite\(fd, buf, nr\);)Tj -10.8 -1.189 Td [(415 )-4800(if)-600(\(nw != nr\) {)]TJ 0 -1.189 TD (416 )Tj 9.6 0 Td (res.jobid)Tj 0.6 Tc 6 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -17.4 -1.189 Td (417 )Tj 9.6 0 Td [(if)-600(\(nw < 0\))]TJ -9.6 -1.189 Td (418 )Tj 12 0 Td (res.retcode)Tj 0.6 Tc 7.2 0 Td (=h)Tj 0 Tc 1.8 0 Td (tonl\(errno\);)Tj -21 -1.189 Td (419 )Tj 9.6 0 Td (else)Tj -9.6 -1.189 Td (420 )Tj 12 0 Td (res.retcode)Tj 0.6 Tc 7.2 0 Td (=h)Tj 0 Tc 1.8 0 Td (tonl\(EIO\);)Tj -21 -1.189 Td (421 )Tj 9.6 0 Td [(log_msg\("client_thread:)-600(can\325t write %s: %s", name,)]TJ -9.6 -1.189 Td (422 )Tj 10.8 0 Td (strerror\(res.retcode\)\);)Tj -10.8 -1.189 Td (423 )Tj 9.6 0 Td (close\(fd\);)Tj -9.6 -1.189 Td (424 )Tj 9.6 0 Td [(strncpy\(res.msg,)-600(strerror\(res.retcode\), MSGLEN_MAX\);)]TJ -9.6 -1.189 Td (425 )Tj 9.6 0 Td [(writen\(sockfd,)-600(&res, sizeof\(struct printresp\)\);)]TJ -9.6 -1.189 Td (426 )Tj 9.6 0 Td (unlink\(name\);)Tj -9.6 -1.189 Td (427 )Tj 9.6 0 Td [(pthread_exit\(\(void)-600(*\)1\);)]TJ -9.6 -1.189 Td [(428 )-4800(})]TJ T* [(429 )-2400(})]TJ T* [(430 )-2400(close\(fd\);)]TJ 0 -1.783 TD [(431 )-2400(/*)]TJ 0 -1.189 TD [(432 )-3000(*)-600(Create the control file.)-1200(Then write the)]TJ T* [(433 )-3000(*)-600(print request information to the control)]TJ 0 -1.189 TD [(434 )-3000(*)-600(file.)]TJ 0 -1.189 TD [(435 )-3000(*/)]TJ 0 -1.189 TD [(436 )-2400(sprintf\(name,)-600("%s/%s/%d", SPOOLDIR, REQDIR, jobid\);)]TJ 0 -1.189 TD [(437 )-2400(fd)]TJ 0.6 Tc 6.6 0 Td (=c)Tj 0 Tc 1.8 0 Td (reat\(name, FILEPERM\);)Tj -8.4 -1.189 Td [(438 )-2400(if)-600(\(fd < 0\) {)]TJ 0 -1.189 TD [(439 )-4800(res.jobid)]TJ 0.6 Tc 13.2 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -15 -1.189 Td [(440 )-4800(res.retcode)]TJ 0.6 Tc 14.4 0 Td (=h)Tj 0 Tc 1.8 0 Td (tonl\(errno\);)Tj -16.2 -1.189 Td [(441 )-4800(log_msg\("client_thread:)-600(can\325t create %s: %s", name,)]TJ 0 -1.189 TD (442 )Tj 8.4 0 Td (strerror\(res.retcode\)\);)Tj -8.4 -1.189 Td [(443 )-4800(strncpy\(res.msg,)-600(strerror\(res.retcode\), MSGLEN_MAX\);)]TJ 0 -1.189 TD [(444 )-4800(writen\(sockfd,)-600(&res, sizeof\(struct printresp\)\);)]TJ 0 -1.189 TD [(445 )-4800(sprintf\(name,)-600("%s/%s/%d", SPOOLDIR, DATADIR, jobid\);)]TJ 0 -1.189 TD [(446 )-4800(unlink\(name\);)]TJ 0 -1.189 TD [(447 )-4800(pthread_exit\(\(void)-600(*\)1\);)]TJ T* [(448 )-2400(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2855.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 261.5166 Tm [([414 )167(\320 )167(430])]TJ -0.092 Tc 5 0 Td [(We )-195(w)]TJ 0 Tc 2.482 0 Td [(rite )-11(the )-11(data )-11(that )-11(we )-11(r)18(ead )-11(fr)18(om )-11(the )-11(client )-11(to )-11(the )-11(data )-11(\336le.)-515(If)]TJ /TT0 1 Tf 26.167 0 Td (write)Tj /T1_1 1 Tf 3.261 0 Td (fails,)Tj -31.911 -1.2 Td [(we )-119(log )-119(an )-119(err)18(or )-119(message, )-119(close )-119(the )-119(\336le )-119(descriptor )-119(for )-119(the )-119(data )-119(\336le, )-119(send )-119(an)]TJ 0 -1.2 TD [(err)18(or )-1(message )-1(back )-1(to )-1(the )-1(client, )-1(delete )-1(the )-1(data )-1(\336le, )-1(and )-1(terminate )-1(the )-1(thr)23(ead)]TJ 0 -1.2 Td [(by )-110(calling)]TJ /TT0 1 Tf 4.785 0 Td (pthread_exit)Tj /T1_1 1 Tf 0.6104 Tc (.N)Tj 0 Tc 8.891 0 Td [(ote )-110(that )-110(we )-110(do )-110(not )-110(explicitly )-110(close )-110(the )-110(socket)]TJ -13.676 -1.2 Td [(\336le )-68(descriptor)]TJ 0.5678 Tc 6.131 0 Td (.T)Tj 0 Tc 1.431 0 Td [(his )-68(is )-68(done )-68(for )-68(us )-68(by )-68(our )-68(thr)19(ead )-68(cleanup )-68(handler )-68(as )-68(part )-68(of)]TJ -7.562 -1.2 Td [(the pr)18(ocessing that occurs when we call)]TJ /TT0 1 Tf 17.767 0 Td (pthread_exit)Tj /T1_1 1 Tf (.)Tj -17.767 -1.56 Td [(When )-110(we )-110(r)18(eceive )-110(all )-110(the )-110(data )-110(to )-110(be )-110(printed, )-110(we )-110(close )-110(the )-110(\336le )-110(descriptor )-110(for)]TJ T* (the data \336le.)Tj -5 -1.6 Td [([431 )167(\320 )167(448])-668(Next, )-19(we )-19(cr)17(eate )-19(a )-19(\336le,)]TJ /TT0 1 Tf 14.792 0 Td (/var/spool/printer/reqs/)Tj /T1_2 1 Tf (jobid)Tj /T1_1 1 Tf [(,)-269(to)-269(r)17(emember )-19(the)]TJ -9.792 -1.2 Td [(print )-3(r)18(equest. )-253(If)-254(this )-3(fails, )-3(we )-3(log )-3(an )-3(err)18(or )-3(message, )-3(send )-3(an )-3(err)15(or )-3(r)18(esponse )-3(to)]TJ 0 -1.2 Td [(the client, r)18(emove the data \336le, and terminate the thr)18(ead.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47125 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (819)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(193 )-1200(/*)]TJ 0 -1.189 TD [(194 )-1800(*)-600(Initialize printer information from configuration file.)]TJ T* [(195 )-1800(*)]TJ T* [(196 )-1800(*)-600(LOCKING: none.)]TJ T* [(197 )-1800(*/)]TJ 0 -1.189 TD [(198 )-1200(void)]TJ 0 -1.189 TD [(199 )-1200(init_printer\(void\))]TJ T* [(200 )-1200({)]TJ T* [(201 )-2400(printer)]TJ 0.6 Tc 9.6 0 Td (=g)Tj 0 Tc 1.8 0 Td (et_printaddr\(\);)Tj -11.4 -1.189 Td [(202 )-2400(if)-600(\(printer == NULL\))]TJ T* [(203 )-4800(exit\(1\);)-2400(/* message already logged */)]TJ T* [(204 )-2400(printer_name)]TJ 0.6 Tc 12.6 0 Td (=p)Tj 0 Tc 1.8 0 Td (rinter->ai_canonname;)Tj -14.4 -1.189 Td [(205 )-2400(if)-600(\(printer_name == NULL\))]TJ 0 -1.189 TD [(206 )-4800(printer_name)]TJ 0.6 Tc 15 0 Td (=")Tj 0 Tc 1.8 0 Td (printer";)Tj -16.8 -1.189 Td [(207 )-2400(log_msg\("printer)-600(is %s", printer_name\);)]TJ 0 -1.189 TD [(208 )-1200(})]TJ 0 -1.902 TD [(209 )-1200(/*)]TJ 0 -1.189 TD [(210 )-1800(*)-600(Update the job ID file with the next job number.)]TJ T* [(211 )-1800(*)-600(Doesn\325t handle wrap-around of job number.)]TJ T* [(212 )-1800(*)]TJ 0 -1.189 TD [(213 )-1800(*)-600(LOCKING: none.)]TJ 0 -1.189 TD [(214 )-1800(*/)]TJ T* [(215 )-1200(void)]TJ T* [(216 )-1200(update_jobno\(void\))]TJ T* [(217 )-1200({)]TJ T* [(218 )-2400(char)-2400(buf[32];)]TJ 0 -1.902 TD [(219 )-2400(if)-600(\(lseek\(jobfd, 0, SEEK_SET\) == -1\))]TJ 0 -1.189 TD [(220 )-4800(log_sys\("can\325t)-600(seek in job file"\);)]TJ T* [(221 )-2400(sprintf\(buf,)-600("%d", nextjob\);)]TJ T* [(222 )-2400(if)-600(\(write\(jobfd, buf, strlen\(buf\)\) < 0\))]TJ T* [(223 )-4800(log_sys\("can\325t)-600(update job file"\);)]TJ 0 -1.189 TD [(224 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3101.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 286.1237 Tm [([193 )167(\320 )167(208])-668(The)]TJ /TT0 1 Tf 7.057 0 Td (init_printer)Tj /T1_0 1 Tf 7.583 0 Td [(function )-133(is )-133(used )-133(to )-133(set )-133(the )-133(printer )-133(name )-133(and )-133(addr)14(ess.)]TJ -0.092 Tc -9.641 -1.2 Td [(We )-327(g)]TJ 0 Tc 2.336 0 Td [(et )-143(the )-143(printer )-143(addr)18(ess )-143(by )-143(calling)]TJ /TT0 1 Tf 15.11 0 Td (get_printaddr)Tj /T1_0 1 Tf 8.193 0 Td [(\(fr)18(om)]TJ /TT0 1 Tf 2.865 0 Td (util.c)Tj /T1_0 1 Tf [(\). )-393(If)]TJ -28.504 -1.2 Td [(this )-262(fails, )-262(we )-262(exit.)-761(The)]TJ /TT0 1 Tf 11.369 0 Td (get_printaddr)Tj /T1_0 1 Tf 8.312 0 Td [(function )-262(logs )-262(its )-262(own )-262(message)]TJ -19.681 -1.2 Td [(when )-39(it )-39(is )-39(unable )-39(to )-39(\336nd )-39(the )-39(printer)-74(\325s )-39(addr)16(ess. )-289(If)]TJ 0.2893 Tc 22.208 0 Td (ap)Tj 0 Tc 1.39 0 Td [(rinter )-39(addr)18(ess )-39(is )-39(found,)]TJ -23.598 -1.2 Td (however)Tj 0.618 Tc 3.806 0 Td (,w)Tj 0.6179 Tc 1.702 0 Td (es)Tj 0 Tc 1.521 0 Td [(et )-368(the )-368(printer )-368(name )-368(to )-368(the)]TJ /TT0 1 Tf 13.671 0 Td (ai_canonname)Tj /T1_0 1 Tf 7.818 0 Td [(\336eld )-368(in )-368(the)]TJ /TT0 1 Tf -28.518 -1.2 Td (addrinfo)Tj /T1_0 1 Tf 5.069 0 Td [(str)8(uctur)18(e. )-269(If)-268(this )-19(\336eld )-19(is )-19(null, )-19(we )-19(set )-19(the )-19(printer )-19(name )-19(to )-19(a )-19(default)]TJ -5.069 -1.2 Td [(value )-30(of)]TJ /TT0 1 Tf 3.877 0 Td (printer)Tj /T1_0 1 Tf 0.5299 Tc (.N)Tj 0 Tc 5.811 0 Td [(ote )-30(that )-30(we )-30(log )-30(the )-30(name )-30(of )-30(the )-30(printer )-30(we )-30(ar)]TJ 0.2798 Tc 19.946 0 Td (eu)Tj 0 Tc 1.362 0 Td [(sing )-30(to)]TJ -30.995 -1.2 Td [(aid administrators in diagnosing pr)18(oblems with the spooling system.)]TJ -5 -1.6 Td [([209 )167(\320 )167(224])-668(The)]TJ /TT0 1 Tf 6.957 0 Td (update_jobno)Tj /T1_0 1 Tf 7.483 0 Td [(function )-33(is )-33(used )-33(to )-33(write )-33(the )-33(next )-33(job )-33(number )-33(to )-33(the )-33(job)]TJ -9.44 -1.2 Td (\336le,)Tj /TT0 1 Tf 2.017 0 Td (/var/spool/printer/jobno)Tj /T1_0 1 Tf 0.642 Tc (.W)Tj 0.392 Tc 16.2 0 Td (es)Tj 0 Tc 1.295 0 Td [(eek )-142(to )-142(the )-142(beginning )-142(of )-142(the )-142(\336le,)]TJ -19.512 -1.2 Td [(convert )-1(the )-1(integer )-1(job )-1(number )-1(into )-1(a )-1(string, )-1(and )-1(write )-1(it )-1(to )-1(the )-1(\336le.)-501(On )-1(err)17(or)74(,)]TJ 0 -1.2 TD [(we )-361(log )-361(a )-361(message )-361(and )-361(exit.)-861(The )-361(job )-361(number )-361(incr)18(eases )-361(monotonically;)]TJ T* [(handling wrap-ar)18(ound is left as an exer)18(cise \(see Exer)18(cise 21.9\).)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47126 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (760)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (138 )Tj 9.6 0 Td (hash[0])Tj 0.6 Tc 4.8 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -16.2 -1.189 Td (139 )Tj 9.6 0 Td [(for)-600(\(i = 0; i < NHASH_DEF + 1; i++\))]TJ -9.6 -1.189 Td (140 )Tj 12 0 Td [(strcat\(hash,)-600(asciiptr\);)]TJ -12 -1.189 Td (141 )Tj 9.6 0 Td [(strcat\(hash,)-600("\\n"\);)]TJ -9.6 -1.189 Td (142 )Tj 9.6 0 Td (i)Tj 0.6 Tc 1.2 0 Td (=s)Tj 0 Tc 1.8 0 Td (trlen\(hash\);)Tj -12.6 -1.189 Td (143 )Tj 9.6 0 Td [(if)-600(\(write\(db->idxfd, hash, i\) != i\))]TJ -9.6 -1.189 Td (144 )Tj 12 0 Td [(err_dump\("db_open:)-600(index file init write error"\);)]TJ -12 -1.189 Td [(145 )-4800(})]TJ 0 -1.189 TD [(146 )-4800(if)-600(\(un_lock\(db->idxfd, 0, SEEK_SET, 0\) < 0\))]TJ T* (147 )Tj 9.6 0 Td [(err_dump\("db_open:)-600(un_lock error"\);)]TJ -9.6 -1.189 Td [(148 )-2400(})]TJ T* [(149 )-2400(db_rewind\(db\);)]TJ T* [(150 )-2400(return\(db\);)]TJ T* [(151 )-1200(})]TJ 0 -1.783 TD [(152 )-1200(/*)]TJ 0 -1.189 TD [(153 )-1800(*)-600(Allocate & initialize a DB structure and its buffers.)]TJ 0 -1.189 TD [(154 )-1800(*/)]TJ 0 -1.189 TD [(155 )-1200(static)-600(DB *)]TJ 0 -1.189 TD [(156 )-1200(_db_alloc\(int)-600(namelen\))]TJ 0 -1.189 TD [(157 )-1200({)]TJ 0 -1.189 TD [(158 )-2400(DB)-3600(*db;)]TJ 0 -1.783 TD [(159 )-2400(/*)]TJ 0 -1.189 TD [(160 )-3000(*)-600(Use calloc, to initialize the structure to zero.)]TJ 0 -1.189 TD [(161 )-3000(*/)]TJ 0 -1.189 TD [(162 )-2400(if)-600(\(\(db = calloc\(1, sizeof\(DB\)\)\) == NULL\))]TJ 0 -1.189 TD [(163 )-4800(err_dump\("_db_alloc:)-600(calloc error for DB"\);)]TJ 0 -1.189 TD [(164 )-2400(db->idxfd)]TJ 0.6 Tc 10.8 0 Td (=d)Tj 0 Tc 1.8 0 Td (b->datfd = -1;)Tj 16.2 0 Td (/* descriptors */)Tj -28.8 -1.783 Td [(165 )-2400(/*)]TJ 0 -1.189 TD [(166 )-3000(*)-600(Allocate room for the name.)]TJ T* [(167 )-3000(*)-600(+5 for ".idx" or ".dat" plus null at end.)]TJ 0 -1.189 TD [(168 )-3000(*/)]TJ 0 -1.189 TD [(169 )-2400(if)-600(\(\(db->name = malloc\(namelen + 5\)\) == NULL\))]TJ 0 -1.189 TD [(170 )-4800(err_dump\("_db_alloc:)-600(malloc error for name"\);)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2962.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 272.2153 Tm [([138 )167(\320 )167(151])]TJ -0.092 Tc 5 0 Td [(We )-397(c)]TJ 0 Tc 2.294 0 Td [(ontinue )-213(to )-213(initialize )-213(the )-213(newly )-213(cr)17(eated )-213(database.)]TJ -0.092 Tc 23.104 0 Td [(We )-397(b)]TJ 0 Tc 2.403 0 Td [(uild )-213(the )-213(hash)]TJ -27.802 -1.2 Td [(table )-87(and )-87(write )-87(it )-87(to )-87(the )-87(index )-87(\336le.)-587(Then )-87(we )-87(unlock )-87(the )-87(index )-87(\336le, )-87(r)18(eset )-87(the)]TJ 0 -1.2 TD [(database )-30(\336le )-30(pointers, )-30(and )-30(r)18(eturn )-30(a )-30(pointer )-30(to )-30(the)]TJ /TT0 1 Tf 22.112 0 Td (DB)Tj /T1_1 1 Tf 1.48 0 Td [(str)8(uctur)]TJ 0.2796 Tc 3.49 0 Td (ea)Tj 0.2797 Tc 1.259 0 Td (st)Tj 0 Tc 1.03 0 Td [(he )-30(opaque)]TJ -29.37 -1.2 Td (handle for the caller to use with the other database functions.)Tj -5 -1.6 Td [([152 )167(\320 )167(164])-668(The)]TJ /TT0 1 Tf 6.944 0 Td (_db_alloc)Tj /T1_1 1 Tf 5.67 0 Td [(function )-20(is )-20(called )-20(by)]TJ /TT0 1 Tf 9.228 0 Td (db_open)Tj /T1_1 1 Tf 4.47 0 Td [(to )-20(allocate )-20(storage )-20(for )-20(the)]TJ /TT0 1 Tf 11.487 0 Td (DB)Tj /T1_1 1 Tf -32.8 -1.2 Td [(str)8(uctur)18(e, )-199(an )-199(index )-199(buf)18(fer)]TJ 0.4491 Tc 11.731 0 Td (,a)Tj 0 Tc 1.199 0 Td [(nd )-199(a )-199(data )-199(buf)17(fer)]TJ 0.6992 Tc 7.582 0 Td (.W)Tj 0.4492 Tc 1.857 0 Td (eu)Tj 0 Tc 1.531 0 Td (se)Tj /TT0 1 Tf 1.352 0 Td (calloc)Tj /T1_1 1 Tf 4.049 0 Td [(to )-199(allocate)]TJ -29.302 -1.2 Td [(memory )-44(to )-44(hold )-44(the)]TJ /TT0 1 Tf 9.207 0 Td (DB)Tj /T1_1 1 Tf 1.494 0 Td [(str)8(uctur)]TJ 0.2939 Tc 3.49 0 Td (ea)Tj 0 Tc 1.273 0 Td [(nd )-44(ensur)]TJ 0.2939 Tc 3.952 0 Td (et)Tj 0 Tc 1.099 0 Td [(hat )-44(it )-44(is )-44(initialized )-44(to )-44(all )-44(zer)19(os.)]TJ -20.514 -1.2 Td [(Since )-96(this )-96(has )-96(the )-96(side )-96(ef)16(fect )-96(of )-96(setting )-96(the )-96(database )-96(\336le )-96(descriptors )-96(to )-96(zer)14(o,)]TJ T* [(we need to r)18(eset them to)]TJ /TT1 1 Tf 11.063 0 Td (!)Tj /T1_1 1 Tf [(1)-250(to)-250(indicate that they ar)]TJ 0.25 Tc 11.249 0 Td (en)Tj 0 Tc 1.311 0 Td (ot yet valid.)Tj -28.623 -1.6 Td [([165 )167(\320 )167(170])]TJ -0.092 Tc 5 0 Td [(We )-198(a)]TJ 0 Tc 2.151 0 Td [(llocate )-14(space )-14(to )-14(hold )-14(the )-14(name )-14(of )-14(the )-14(database )-14(\336le.)]TJ -0.092 Tc 22.729 0 Td [(We )-198(u)]TJ 0 Tc 2.254 0 Td [(se )-14(this )-14(buf)18(fer )-14(to)]TJ -27.133 -1.2 Td [(cr)18(eate )-4(both )-4(\336lenames )-4(by )-4(changing )-4(the )-4(suf)18(\336x )-4(to )-4(r)18(efer )-4(to )-4(either )-4(the )-4(index )-4(\336le )-4(or)]TJ T* (the data \336le, as we saw in)Tj /TT0 1 Tf 11.567 0 Td (db_open)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47127 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (672)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(If )-33(we )-33(don\325t )-33(do )-33(anything )-33(special, )-33(canonical )-33(mode )-33(is )-33(the )-33(default.)-533(For )-33(example, )-33(if )-33(the )-33(shell)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(dir)18(ects )-57(standar)]TJ 0.3069 Tc 6.579 0 Td (di)Tj 0 Tc 1.209 0 Td [(nput )-57(to )-57(the )-57(terminal )-57(and )-57(we )-57(use)]TJ /TT0 1 Tf 14.778 0 Td (read)Tj /T1_1 1 Tf 2.707 0 Td (and)Tj /TT0 1 Tf 2 0 Td (write)Tj /T1_1 1 Tf 3.307 0 Td [(to )-57(copy )-57(standar)18(d)]TJ -31.436 -1.2 Td [(input )-90(to )-90(standar)]TJ 0.3399 Tc 7.275 0 Td (do)Tj 0 Tc 1.497 0 Td [(utput, )-90(the )-90(terminal )-90(is )-90(in )-90(canonical )-90(mode, )-90(and )-90(each)]TJ /TT0 1 Tf 23.137 0 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.74 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-90(at)]TJ -35.505 -1.2 Td [(most )-117(one )-117(line.)-618(Pr)18(ograms )-118(that )-118(manipulate )-118(the )-118(entir)]TJ 0.3676 Tc 23.019 0 Td (es)Tj 0 Tc 1.271 0 Td [(cr)18(een, )-118(such )-118(as )-118(the)]TJ /TT0 1 Tf 8.445 0 Td (vi)Tj /T1_1 1 Tf 1.568 0 Td (editor)Tj 0.3676 Tc 2.574 0 Td (,u)Tj 0 Tc 1.221 0 Td (se)Tj -38.097 -1.2 Td [(noncanonical )-411(mode, )-411(since )-411(the )-411(commands )-411(may )-411(be )-411(single )-411(characters )-411(and )-411(ar)]TJ 0.6613 Tc 36.406 0 Td (en)Tj 0 Tc 1.722 0 Td (ot)Tj -38.128 -1.2 Td [(terminated )-52(by )-52(newlines.)-553(Also, )-52(this )-52(editor )-52(doesn\325t )-52(want )-52(pr)18(ocessing )-52(by )-52(the )-52(system )-52(of )-52(the)]TJ T* [(special )-36(characters, )-36(since )-36(they )-36(may )-36(overlap )-36(with )-36(the )-36(editor )-36(commands.)-533(For )-36(example, )-36(the)]TJ T* [(Contr)18(ol)]TJ 3.377 0.09 Td (-)Tj 0.3218 Tc 0.333 -0.09 Td (Dc)Tj 0 Tc 1.54 0 Td [(haracter )-72(is )-72(often )-72(the )-72(end-of-\336le )-72(character )-72(for )-72(the )-72(terminal, )-72(but )-72(it\325s )-72(also )-72(a)]TJ /TT0 1 Tf 32.551 0 Td (vi)Tj /T1_1 1 Tf -37.801 -1.2 Td [(command to scr)18(oll down one-half scr)18(een.)]TJ 7.9995 0 0 7.9995 183.5892 552.9668 Tm [(The )-43(V)111(ersion )-43(7 )-43(and )-43(older )-43(BSD-style )-43(terminal )-43(drivers )-43(supported )-43(thr)18(ee )-43(modes )-43(for )-43(terminal )-43(input:)]TJ 0 -1.25 TD [(\(a\) )-29(cooked )-29(mode )-29(\(the )-29(input )-29(is )-29(collected )-29(into )-29(lines, )-29(and )-29(the )-29(special )-29(characters )-29(ar)]TJ 0.2788 Tc 34.776 0 Td (ep)Tj -0.018 Tc 1.359 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cessed\), )-29(\(b\))]TJ -37.058 -1.25 Td [(raw )-306(mode )-306(\(the )-306(input )-306(is )-306(not )-306(assembled )-306(into )-306(lines, )-306(and )-306(ther)17(e)-556(is)-556(no)-556(p)]TJ -0.018 Tc (ro)Tj 0 Tc 33.779 0 Td [(cessing )-306(of )-306(special)]TJ -33.779 -1.25 Td [(characters\), )-37(and )-37(\(c\) )-37(cbr)19(eak )-37(mode )-37(\(the )-37(input )-37(is )-37(not )-37(assembled )-37(into )-37(lines, )-37(but )-37(some )-37(of )-37(the )-37(special)]TJ T* [(characters )-177(ar)]TJ 0.4266 Tc 5.793 0 Td (ep)Tj -0.018 Tc 1.507 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cessed\). )-427(Figur)]TJ 0.4266 Tc 6.504 0 Td (e1)Tj 0 Tc 1.406 0 Td [(8.20 )-177(shows )-177(a )-177(POSIX.1 )-177(function )-177(that )-177(places )-177(a )-177(terminal )-177(in)]TJ -16.131 -1.25 Td [(cbr)18(eak or raw mode.)]TJ 9.9994 0 0 9.9994 147.591 481.9711 Tm [(POSIX.1 )-45(de\336nes )-45(1)]TJ 0.2952 Tc 7.884 0 Td (1s)Tj 0 Tc 1.219 0 Td [(pecial )-45(input )-45(characters, )-45(9 )-45(of )-45(which )-45(we )-45(can )-45(change.)]TJ -0.092 Tc 22.999 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ve )-45(been)]TJ -35.289 -1.2 Td [(using )-83(some )-83(of )-83(these )-83(thr)16(oughout )-83(the )-83(text)]TJ 0.0833 Tc 18.121 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(he )-83(end-of-\336le )-83(character )-83(\(usually )-83(Contr)17(ol)]TJ 18.029 0.09 Td (-)Tj 0.333 -0.09 Td (D\))Tj -37.893 -1.2 Td [(and )-23(the )-23(suspend )-23(character )-23(\(usually )-23(Contr)20(ol)]TJ 19.21 0.09 Td (-)Tj 0.333 -0.09 Td [(Z\), )-23(for )-23(example.)-522(Section )-23(18.3 )-23(describes )-23(each)]TJ -19.543 -1.2 Td (of these characters.)Tj -0.092 Tc 1.8 -1.2 Td [(We )-258(c)]TJ 0 Tc 2.155 0 Td [(an )-74(think )-74(of )-74(a )-74(terminal )-74(device )-74(as )-74(being )-74(contr)15(olled )-74(by )-74(a )-74(terminal )-74(driver)]TJ 0.3243 Tc 31.202 0 Td (,u)Tj 0 Tc 1.177 0 Td (sually)Tj -36.335 -1.2 Td [(within )-227(the )-227(kernel.)-727(Each )-227(terminal )-227(device )-227(has )-227(an )-227(input )-227(queue )-227(and )-227(an )-227(output )-227(queue,)]TJ 0 -1.2 TD (shown in Figur)Tj 0.25 Tc 6.724 0 Td (e1)Tj 0 Tc 1.229 0 Td (8.1.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1707 3136 1080 216 re S Q BT /T1_1 1 Tf 7.999 0 0 7.999 200.7599 322.6013 Tm (output queue)Tj ET q 0.99988 0 0 0.99988 0 0 cm q 1 0 0 1 285.9 324.4 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099988 0 0 0.099988 0 0 cm 1 j 1 J q 1 0 0 1 2859 3244 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2931.25 3244.25 cm 0 0 m 792 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 302.3656 327.581 Tm (if echo enabled)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 3795 3136 864 216 re S Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 401.0957 322.5626 Tm (input queue)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4659.25 3352.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4724.25 3352.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4788.25 3352.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4853.25 3352.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4918.25 3352.25 cm 0 0 m 36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4983.25 3352.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5019.25 3292.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5019.25 3232.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5019.25 3172.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4954.25 3136.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4889.25 3136.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4824.25 3136.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4760.25 3136.25 cm 0 0 m -36 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4695.25 3136.25 cm 0 0 m -36 0 l S Q Q q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 174.3 281.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 1743 2812 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1743.25 3100.25 cm 0 0 m 0 -216 l S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 144.8878 273.5415 Tm (next character to)Tj -0.314 -1.25 Td (transmit to device)Tj ET q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 275.1 338.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 2751 3388 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2751.25 3460.25 cm 0 0 m 0 216 l S Q Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 250.1229 381.4797 Tm (next character)Tj -0.96 -1.25 Td [(written by pr)18(ocess)]TJ ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 383.1 310 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3831 3100 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3831.25 3028.25 cm 0 0 m 0 -216 l S Q Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 358.0561 273.5087 Tm (next character)Tj -0.018 Tc -0.629 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(ad fr)18(om device)]TJ ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 462.3 367.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 4623 3676 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4623.25 3388.25 cm 0 0 m 0 216 l S Q Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 437.1918 381.434 Tm (next character)Tj -0.018 Tc -0.327 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(ad by pr)18(ocess)]TJ ET q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 379.5 292 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 3795 2920 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3867.25 2920.25 cm 0 0 m 288 0 l S Q Q q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 501.9 292 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 5019 2920 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4947.25 2920.25 cm 0 0 m -288 0 l S Q Q BT /TT0 1 Tf 7.9947 0 0 7.9947 418.8235 290.0485 Tm (MAX_INPUT)Tj /T1_0 1 Tf -28.849 -6.98 Td (Figure 18.1)Tj /T1_1 1 Tf 5.695 0 Td [(Logical pictur)18(e)-250(of)-250(input and output queues for a terminal device)]TJ 9.9934 0 0 9.9934 129.5149 206.6638 Tm (Ther)Tj 0.25 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(s)]TJ 0 Tc 1.53 0 Td [(everal points to consider fr)18(om this pictur)18(e.)]TJ 0.883 Tc -3.01 -2.04 Td (\245I)Tj 0.3263 Tc 1.826 0 Td (fe)Tj 0 Tc 1.138 0 Td [(choing )-76(is )-76(enabled, )-76(ther)17(e)-326(is)-326(an)-326(i)-1(mplied )-76(link )-76(between )-76(the )-76(input )-76(queue )-76(and )-76(the)]TJ -1.475 -1.2 Td (output queue.)Tj 0.883 Tc -1.489 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-124(size )-124(of )-124(the )-124(input )-124(queue,)]TJ /TT0 1 Tf 12.642 0 Td (MAX_INPUT)Tj /T1_1 1 Tf 5.774 0 Td [(\(see )-124(Figur)]TJ 0.374 Tc 4.472 0 Td (e2)Tj 0 Tc 1.353 0 Td [(.12\), )-124(is )-124(\336nite.)-624(When )-124(the)]TJ -24.854 -1.2 Td [(input )-74(queue )-74(for )-74(a )-74(particular )-74(device )-74(\336lls, )-74(the )-74(system )-74(behavior )-74(is )-74(implementation)]TJ T* [(dependent. )-250(Most)-250(UNIX systems echo the bell character when this happens.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47128 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (654)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (The)Tj /TT0 1 Tf 2.081 0 Td (main)Tj /T1_1 1 Tf 2.807 0 Td [(function )-157(\(Figur)]TJ 0.4072 Tc 6.83 0 Td (e1)Tj 0 Tc 1.386 0 Td [(7.18\) )-157(is )-157(a )-157(loop )-157(that )-157(r)17(eads )-157(a )-157(pathname )-157(fr)18(om )-157(standar)17(d)]TJ -14.905 -1.2 Td [(input )-85(and )-85(copies )-85(the )-85(\336le )-85(to )-85(standar)]TJ 0.3351 Tc 15.846 0 Td (do)Tj 0 Tc 1.492 0 Td [(utput. )-335(The)-335(function )-85(calls)]TJ /TT0 1 Tf 11.63 0 Td (csopen)Tj /T1_1 1 Tf 3.935 0 Td [(to )-85(contact )-85(the)]TJ -32.903 -1.2 Td [(open server and r)18(eturn an open descriptor)74(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6378.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 628.2236 Tm [(#include )-1800("open.h")]TJ 0 -1.189 TD [(#include )-1800()]TJ 0 -1.902 TD [(#define BUFFSIZE)-2400(8192)]TJ 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(n,)-600(fd;)]TJ T* [(char )-1800(buf[BUFFSIZE];)]TJ 0 -1.189 TD [(char )-1800(line[MAXLINE];)]TJ 0 -1.902 TD (/* read filename to cat from stdin */)Tj 0 -1.189 TD (while \(fgets\(line, MAXLINE, stdin\) != NULL\) {)Tj 2.4 -1.189 Td (if \(line[strlen\(line\) - 1] == \325\\n\325\))Tj 2.4 -1.189 Td (line[strlen\(line\) - 1] = 0; /* replace newline with null */)Tj -2.4 -1.902 Td (/* open the file */)Tj 0 -1.189 TD (if \(\(fd = csopen\(line, O_RDONLY\)\) < 0\))Tj 2.4 -1.189 Td [(continue; )-1200(/*)-600(csopen\(\) prints error from server */)]TJ -2.4 -1.902 Td (/* and cat to stdout */)Tj T* (while \(\(n = read\(fd, buf, BUFFSIZE\)\) > 0\))Tj 2.4 -1.189 Td (if \(write\(STDOUT_FILENO, buf, n\) != n\))Tj 2.4 -1.189 Td (err_sys\("write error"\);)Tj -4.8 -1.189 Td (if \(n < 0\))Tj 2.4 -1.189 Td (err_sys\("read error"\);)Tj -2.4 -1.189 Td (close\(fd\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3175.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 237.8732 301.4237 Tm (Figure 17.18)Tj /T1_1 1 Tf 6.195 0 Td (The client)Tj /TT0 1 Tf 4.587 0 Td (main)Tj /T1_1 1 Tf 2.65 0 Td (function, version 1)Tj 9.9982 0 0 9.9982 147.5737 277.4281 Tm [(The )-157(function)]TJ /TT0 1 Tf 6.195 0 Td (csopen)Tj /T1_1 1 Tf 4.007 0 Td (\(Figur)Tj 0.4068 Tc 2.716 0 Td (e1)Tj 0 Tc 1.386 0 Td [(7.19\) )-157(does )-157(the)]TJ /TT0 1 Tf 6.75 0 Td (fork)Tj /T1_1 1 Tf 2.807 0 Td (and)Tj /TT0 1 Tf 2.1 0 Td (exec)Tj /T1_1 1 Tf 2.807 0 Td [(of )-157(the )-157(server)]TJ 0.4069 Tc 5.743 0 Td (,a)Tj 0 Tc 1.157 0 Td (fter)Tj -37.467 -1.2 Td [(cr)18(eating the fd-pipe.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2583.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9978 0 0 8.9978 129.5689 248.7173 Tm [(#include )-1800("open.h")]TJ 0 -1.189 TD [(#include )-1800()-3000(/* struct iovec */)]TJ 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*O)Tj 0 Tc 1.8 0 Td (pen the file by sending the "name" and "oflag" to the)Tj 0.6 Tc -1.8 -1.189 Td (*c)Tj 0 Tc 1.8 0 Td (onnection server and reading a file descriptor back.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (int)Tj 0 -1.189 TD (csopen\(char *name, int oflag\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (pid_t )Tj 9.6 0 Td (pid;)Tj -9.6 -1.189 Td (int )Tj 9.6 0 Td (len;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47129 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.4)]TJ 32.736 0 Td [(Passing )-250(File )-250(Descriptors)]TJ /T1_1 1 Tf 13.097 0 Td (643)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 1413.24 5486 1008 1152 re S Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 158.5865 667 Tm [(pr)18(ocess table entry)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1701.24 6134 576 72 re S Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1701.24 6062 576 72 re S Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1701.24 5990 576 72 re S Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1701.24 5918 576 72 re S Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1701.24 5630 576 288 re S Q BT /T1_0 1 Tf 0.25 Tc 13.9983 0 0 13.9983 190.1512 575.5709 Tm (...)Tj 0 Tc 6.9992 0 0 6.9992 154.7476 615.1662 Tm (fd 0:)Tj 0 -1.029 TD (fd 1:)Tj T* (fd 2:)Tj T* (fd 3:)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1917.25 6206.25 cm 0 0 m 0 -288 l S Q Q BT /T1_0 1 Tf 6.9987 0 0 6.9987 177.588 629.4867 Tm (fd)Tj -0.572 -0.714 Td (\337ags)Tj 4.471 0.714 Td (\336le)Tj -0.923 -0.714 Td (pointer)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 1413.24 3974 1008 1152 re S Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 158.5579 515.7162 Tm [(pr)18(ocess table entry)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1701.24 4694 576 72 re S Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1701.24 4622 576 72 re S Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1701.24 4550 576 72 re S Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1701.24 4478 576 72 re S Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1701.24 4406 576 72 re S Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1701.24 4118 576 288 re S Q BT /T1_0 1 Tf 0.25 Tc 13.9958 0 0 13.9958 190.117 424.3127 Tm (...)Tj 0 Tc 6.9979 0 0 6.9979 154.7198 471.0986 Tm (fd 0:)Tj 0 -1.029 TD (fd 1:)Tj 0 -1.029 TD (fd 2:)Tj 0 -1.029 TD (fd 3:)Tj 0 -1.029 TD (fd 4:)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1917.25 4766.25 cm 0 0 m 0 -360 l S Q Q BT /T1_0 1 Tf 6.9975 0 0 6.9975 177.5561 485.4252 Tm (fd)Tj -0.572 -0.714 Td (\337ags)Tj 4.471 0.714 Td (\336le)Tj -0.923 -0.714 Td (pointer)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2925.24 5918 720 144 re S Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 302.1331 596.9892 Tm (\336le status \337ags)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 2925.24 5774 720 144 re S Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 298.3647 582.5603 Tm [(curr)18(ent \336le of)18(fset)]TJ ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 2925.24 5630 720 144 re S Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 302.0169 568.1331 Tm (v-node pointer)Tj 1.406 5.125 Td (\336le table)Tj 6.9962 0 0 6.9962 420.4539 566.3341 Tm (v-node information)Tj /TT0 1 Tf 2.52 -2.057 Td (v_data)Tj /T1_0 1 Tf -2.383 -4.114 Td (i-node information)Tj 0.796 -2.057 Td [(curr)18(ent \336le size)]TJ /TT0 1 Tf 1.287 -1.543 Td (i_vnode)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4149.25 5774.25 cm 0 0 m 0 -288 l 720 -288 l 720 0 l 0 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4149.25 5342.25 cm 0 0 m 0 -396 l 720 -396 l 720 0 l 0 0 l 720 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4149.25 5594.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4225.25 5594.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4301.25 5594.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4377.25 5594.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4453.25 5594.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4529.25 5594.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4605.25 5594.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4681.25 5594.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4757.25 5594.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4833.25 5594.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4149.25 5162.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4225.25 5162.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4301.25 5162.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4377.25 5162.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4453.25 5162.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4529.25 5162.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4605.25 5162.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4681.25 5162.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4757.25 5162.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4833.25 5162.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4149.25 5054.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4225.25 5054.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4301.25 5054.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4377.25 5054.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4453.25 5054.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4529.25 5054.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4605.25 5054.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4681.25 5054.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4757.25 5054.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4833.25 5054.25 cm 0 0 m 36 0 l S Q Q q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 414.924 536.36 cm 0 0 m -5.328 5.184 l -2.232 7.056 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 4149.2402 5363.6001 cm 0 0 m -53.28 51.84 l -22.32 70.56 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.2402 5540 cm 0 0 m -90 0 l -150 0 -162.6 -28.32 -127.8 -84.96 c -75.6 -169.92 l S Q Q q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 489.084 577.4 cm 0 0 m 4.032 -6.192 l 0.648 -7.344 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 4890.8398 5774 cm 0 0 m 40.32 -61.92 l 6.48 -73.44 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4797.2402 5000 cm 0 0 m 180 0 l 300 0 315.96 127.92 227.88 383.76 c 95.76 767.52 l S Q Q BT /T1_0 1 Tf 7.9942 0 0 7.9942 428.5553 580.2221 Tm (v-node table)Tj ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 288.924 606.2 cm 0 0 m -6.264 -3.96 l -7.416 -0.576 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 6062 cm 0 0 m -62.64 -39.6 l -74.16 -5.76 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2205.24 5954 cm 0 0 m 180 0 l 300 0 412.92 17.64 518.76 52.92 c 677.52 105.84 l S Q Q q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 288.924 602.6 cm 0 0 m 0.288 -7.416 l -3.24 -6.696 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 6026 cm 0 0 m 2.88 -74.16 l -32.4 -66.96 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2205.24 4442 cm 0 0 m 180 0 l 300 0 413.76 262.8 521.28 788.4 c 682.56 1576.8 l S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 411.324 577.4 cm 0 0 m -6.048 -4.32 l -7.416 -1.008 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 4113.2402 5774 cm 0 0 m -60.48 -43.2 l -74.16 -10.08 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3573.24 5702 cm 0 0 m 180 0 l 300 0 388.92 11.52 446.76 34.56 c 533.52 69.12 l S Q Q BT /T1_1 1 Tf 7.9928 0 0 7.9928 188.5023 371.8652 Tm [(Figure 17.1)37(1)]TJ /T1_0 1 Tf 6.158 0 Td [(Passing an open \336le fr)18(om the top pr)18(ocess to the bottom pr)18(ocess)]TJ 0.413 Tc 9.991 0 0 9.991 147.4674 344.29 Tm (Ap)Tj -0.018 Tc 1.792 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-163(\(normally )-163(a )-163(server\) )-163(that )-163(wants )-163(to )-163(pass )-163(a )-163(descriptor )-163(to )-163(another )-163(pr)17(ocess)]TJ -4.515 -1.2 Td [(calls )-92(either)]TJ /TT0 1 Tf 5.186 0 Td (send_fd)Tj /T1_0 1 Tf 4.542 0 Td (or)Tj /TT0 1 Tf 1.283 0 Td (send_err)Tj /T1_0 1 Tf 0.5919 Tc (.T)Tj 0 Tc 6.255 0 Td [(he )-92(pr)18(ocess )-92(waiting )-92(to )-92(r)18(eceive )-92(the )-92(descriptor )-92(\(the)]TJ -17.266 -1.2 Td (client\) calls)Tj /TT0 1 Tf 5.196 0 Td (recv_fd)Tj /T1_0 1 Tf (.)Tj -3.396 -1.2 Td (The)Tj /TT0 1 Tf 2.238 0 Td (send_fd)Tj /T1_0 1 Tf 4.764 0 Td [(function )-314(sends )-314(the )-314(descriptor)]TJ /T1_2 1 Tf 14.382 0 Td (fd_to_send)Tj /T1_0 1 Tf 4.953 0 Td [(acr)18(oss )-314(using )-314(the )-314(UNIX)]TJ -28.137 -1.2 Td [(domain )-150(socket )-150(r)17(epr)18(esented )-150(by)]TJ /T1_2 1 Tf 14.113 0 Td (fd)Tj /T1_0 1 Tf 0.6504 Tc (.T)Tj 0 Tc 2.291 0 Td (he)Tj /TT0 1 Tf 1.461 0 Td (send_err)Tj /T1_0 1 Tf 5.2 0 Td [(function )-150(sends )-150(the)]TJ /T1_2 1 Tf 8.815 0 Td (errmsg)Tj /T1_0 1 Tf 3.234 0 Td (using)Tj /T1_2 1 Tf 2.856 0 Td (fd)Tj /T1_0 1 Tf (,)Tj -37.972 -1.2 Td (followed by the)Tj /T1_2 1 Tf 7.177 0 Td (status)Tj /T1_0 1 Tf 2.694 0 Td [(byte. )-250(The)-250(value of)]TJ /T1_2 1 Tf 8.405 0 Td (status)Tj /T1_0 1 Tf 2.694 0 Td (must be in the range)Tj /TT1 1 Tf 9.29 0 Td (!)Tj /T1_0 1 Tf 0.25 Tc (1t)Tj 0 Tc 1.625 0 Td [(hr)18(ough)]TJ /TT1 1 Tf 3.496 0 Td (!)Tj /T1_0 1 Tf (255.)Tj -33.581 -1.2 Td [(Clients )-339(call)]TJ /TT0 1 Tf 5.807 0 Td (recv_fd)Tj /T1_0 1 Tf 4.789 0 Td [(to )-339(r)18(eceive )-339(a )-339(descriptor)]TJ 0.8395 Tc 10.692 0 Td (.I)Tj 0.5895 Tc 1.426 0 Td (fa)Tj 0 Tc 1.423 0 Td [(ll )-339(is )-339(OK )-339(\(the )-339(sender )-339(called)]TJ /TT0 1 Tf -25.937 -1.2 Td (send_fd)Tj /T1_0 1 Tf [(\), )-383(the )-383(non-negative )-383(descriptor )-383(is )-383(r)20(eturned )-382(as )-382(the )-382(value )-382(of )-382(the )-382(function.)]TJ 0 -1.2 TD [(Otherwise, )-12(the )-12(value )-12(r)18(eturned )-12(is )-12(the)]TJ /T1_2 1 Tf 16.198 0 Td (status)Tj /T1_0 1 Tf 2.706 0 Td [(that )-12(was )-12(sent )-12(by)]TJ /TT0 1 Tf 7.461 0 Td (send_err)Tj /T1_0 1 Tf 5.062 0.04 Td (\()Tj 0.2622 Tc 0.333 -0.04 Td (an)Tj 0 Tc 1.344 0 Td [(egative )-12(value)]TJ -33.104 -1.2 Td [(in )-36(the )-36(range)]TJ /TT1 1 Tf 5.63 0 Td (!)Tj /T1_0 1 Tf 0.2861 Tc (1t)Tj 0 Tc 1.661 0 Td [(hr)18(ough)]TJ /TT1 1 Tf 3.532 0 Td (!)Tj /T1_0 1 Tf (255)Tj 2.049 0.04 Td (\))Tj 0.5361 Tc 0.333 -0.04 Td (.A)Tj 0 Tc 1.564 0 Td [(dditionally)111(,)-286(if)-286(an)-286(err)18(or )-36(message )-36(was )-36(sent )-36(by )-36(the )-36(server)74(,)]TJ -14.77 -1.2 Td [(the )-108(client\325s)]TJ /T1_2 1 Tf 5.218 0 Td (userfunc)Tj /T1_0 1 Tf 3.878 0 Td [(is )-108(called )-108(to )-108(pr)18(ocess )-108(the )-108(message.)-608(The )-108(\336rst )-108(ar)19(gument )-108(to)]TJ /T1_2 1 Tf 25.311 0 Td (userfunc)Tj /T1_0 1 Tf 3.878 0 Td (is)Tj -38.285 -1.2 Td [(the )-262(constant)]TJ /TT0 1 Tf 6.141 0 Td (STDERR_FILENO)Tj /T1_0 1 Tf 0.5119 Tc (,f)Tj 0 Tc 8.895 0 Td [(ollowed )-262(by )-262(a )-262(pointer )-262(to )-262(the )-262(err)18(or )-262(message )-262(and )-262(its)]TJ -15.036 -1.2 Td [(length. )-420(The)]TJ -0.018 Tc 5.831 0 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-170(value )-170(fr)17(om)]TJ /T1_2 1 Tf 7.744 0 Td (userfunc)Tj /T1_0 1 Tf 3.94 0 Td [(is )-170(the )-170(number )-170(of )-170(bytes )-170(written )-170(or )-170(a )-170(negative)]TJ -18.371 -1.2 Td [(number on err)18(or)]TJ 0.5 Tc 7.241 0 Td (.O)Tj 0 Tc 1.536 0 Td (ften, the client speci\336es the normal)Tj /TT0 1 Tf 15.601 0 Td (write)Tj /T1_0 1 Tf 3.25 0 Td (function as the)Tj /T1_2 1 Tf 6.768 0 Td (userfunc)Tj /T1_0 1 Tf (.)Tj -0.092 Tc -32.596 -1.2 Td [(We )-314(i)]TJ 0 Tc 2.058 0 Td [(mplement )-129(our )-129(own )-129(pr)18(otocol )-129(that )-129(is )-129(used )-129(by )-129(these )-129(thr)18(ee )-129(functions.)]TJ -0.092 Tc 30.721 0 Td [(To )-314(s)]TJ 0 Tc 1.871 0 Td [(end )-129(a)]TJ -36.449 -1.2 Td [(descriptor)74(,)]TJ /TT0 1 Tf 4.948 0 Td (send_fd)Tj /T1_0 1 Tf 4.46 0 Td [(sends )-10(two )-10(bytes )-10(of )-10(0, )-10(followed )-10(by )-10(the )-10(actual )-10(descriptor)]TJ 0.5104 Tc 24.066 0 Td (.T)Tj 0.2604 Tc 1.281 0 Td (os)Tj 0 Tc 1.23 0 Td [(end )-10(an)]TJ -35.986 -1.2 Td [(err)18(or)74(,)]TJ /TT0 1 Tf 2.769 0 Td (send_err)Tj /T1_0 1 Tf 5.201 0 Td [(sends )-151(the)]TJ /T1_2 1 Tf 4.708 0 Td (errmsg)Tj /T1_0 1 Tf 0.4007 Tc (,f)Tj 0 Tc 3.818 0 Td [(ollowed )-151(by )-151(a )-151(byte )-151(of )-151(0, )-151(followed )-151(by )-151(the )-151(absolute)]TJ -16.495 -1.2 Td [(value )-29(of )-29(the)]TJ /T1_2 1 Tf 5.54 0 Td (status)Tj /T1_0 1 Tf 2.723 0 Td (byte)Tj 2.193 0.04 Td (\()Tj 0.2787 Tc 0.333 -0.04 Td (1t)Tj 0 Tc 1.105 0 Td [(hr)18(ough )-29(255)]TJ 5.025 0.04 Td (\))Tj 0.5287 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.392 0 Td (he)Tj /TT0 1 Tf 1.34 0 Td (recv_fd)Tj /T1_0 1 Tf 4.479 0 Td [(function )-29(r)18(eads )-29(everything )-29(on )-29(the)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47130 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (620)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-195(other )-195(choice )-195(we )-195(have )-195(is )-195(to )-195(deal )-195(with )-195(the )-195(err)18(or )-195(by )-195(letting )-195(the )-195(user )-195(r)18(etry )-195(the)]TJ -1.8 -1.2 Td [(command. )-807(For)-807(simple )-557(applications )-557(this )-557(might )-557(be )-557(adequate, )-557(but )-557(for )-557(complex)]TJ 0 -1.2 TD [(applications )-253(it )-253(usually )-253(isn\325t )-253(a )-253(viable )-253(alternative.)-753(Thus, )-253(it )-253(is )-253(generally )-253(better )-253(to )-253(use)]TJ T* (connection-oriented sockets in this case.)Tj 1.8 -1.2 Td [(The )-208(drawbacks )-208(to )-208(connection-oriented )-208(sockets )-208(ar)]TJ 0.4582 Tc 22.594 0 Td (et)Tj 0 Tc 1.263 0 Td [(hat )-208(mor)]TJ 0.4582 Tc 3.672 0 Td (ew)Tj 0 Tc 1.771 0 Td [(ork )-208(and )-208(time )-208(ar)17(e)]TJ -31.101 -1.2 Td [(needed )-110(to )-110(establish )-110(a )-110(connection, )-110(and )-110(each )-110(connection )-110(consumes )-110(mor)]TJ 0.3602 Tc 31.509 0 Td (er)Tj 0 Tc 1.216 0 Td [(esour)18(ces )-110(fr)18(om)]TJ -32.725 -1.2 Td (the operating system.)Tj /TT0 1 Tf -3.6 -3.12 Td [(Example )195(\321 )195(Connectionless)-279(Client)]TJ /T1_1 1 Tf 3.6 -2.16 Td [(The )-97(pr)18(ogram )-97(in )-97(Figur)]TJ 0.3471 Tc 9.829 0 Td (e1)Tj 0 Tc 1.326 0 Td [(6.19 )-97(is )-97(a )-97(version )-97(of )-97(the)]TJ /TT1 1 Tf 10.596 0 Td (uptime)Tj /T1_1 1 Tf 3.947 0 Td [(client )-97(command )-97(that )-97(uses )-97(the)]TJ -25.698 -1.2 Td (datagram socket interface.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5250.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 515.4371 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj T* (#include )Tj 0 -2.14 TD [(#define BUFLEN)-3600(128)]TJ 0 -1.189 TD [(#define TIMEOUT)-3000(20)]TJ 0 -2.14 TD (void)Tj 0 -1.189 TD (sigalrm\(int signo\))Tj 0 -1.189 TD ({)Tj T* (})Tj 0 -2.14 TD (void)Tj 0 -1.189 TD (print_uptime\(int sockfd, struct addrinfo *aip\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(n;)]TJ T* [(char )-1800(buf[BUFLEN];)]TJ 0 -2.14 TD (buf[0] = 0;)Tj 0 -1.189 TD (if \(sendto\(sockfd, buf, 1, 0, aip->ai_addr, aip->ai_addrlen\) < 0\))Tj 2.4 -1.189 Td (err_sys\("sendto error"\);)Tj -2.4 -1.189 Td (alarm\(TIMEOUT\);)Tj T* (if \(\(n = recvfrom\(sockfd, buf, BUFLEN, 0, NULL, NULL\)\) < 0\) {)Tj 2.4 -1.189 Td (if \(errno != EINTR\))Tj 2.4 -1.189 Td (alarm\(0\);)Tj -2.4 -1.189 Td (err_sys\("recv error"\);)Tj -2.4 -1.189 Td (})Tj T* (alarm\(0\);)Tj T* (write\(STDOUT_FILENO, buf, n\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td [(struct addrinfo)-3000(*ailist, *aip;)]TJ T* [(struct addrinfo)-3000(hint;)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47131 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (614)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(Example )195(\321 )195(Connection-Oriented)-279(Client)]TJ /T1_1 1 Tf 3.6 -2.16 Td (Figur)Tj 0.4038 Tc 2.383 0 Td (e1)Tj 0 Tc 1.383 0 Td [(6.16 )-154(shows )-154(a )-154(client )-154(command )-154(that )-154(communicates )-154(with )-154(a )-154(server )-154(to )-154(obtain )-154(the)]TJ -3.766 -1.2 Td [(output )-151(fr)18(om )-151(a )-151(system\325s)]TJ /TT1 1 Tf 11.043 0 Td (uptime)Tj /T1_1 1 Tf 4.001 0 Td [(command. )-401(W)]TJ 0.4012 Tc 6.258 0 Td (ec)Tj 0 Tc 1.324 0 Td [(all )-151(this )-151(service )-151(\324)36(\324r)18(emote )-151(uptime\325)]TJ 0.4012 Tc 14.42 0 Td (\325\()Tj 0 Tc 1.012 0 Td (or)Tj -0.037 Tc -38.059 -1.2 Td (\324\324)Tj -0.008 Tc 0.519 0 Td (ru)Tj 0 Tc 0.99 0 Td (ptime\325)Tj 0.25 Tc 2.821 0 Td (\325f)Tj 0 Tc 0.861 0 Td (or short\).)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6162.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 606.6262 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj T* (#include )Tj 0 -1.902 TD [(#define BUFLEN)-3600(128)]TJ 0 -1.902 TD (extern int connect_retry\(int, int, int, const struct sockaddr *,)Tj 2.4 -1.189 Td (socklen_t\);)Tj -2.4 -1.902 Td (void)Tj 0 -1.189 TD (print_uptime\(int sockfd\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(n;)]TJ T* [(char )-1800(buf[BUFLEN];)]TJ 0 -1.902 TD (while \(\(n = recv\(sockfd, buf, BUFLEN, 0\)\) > 0\))Tj 2.4 -1.189 Td (write\(STDOUT_FILENO, buf, n\);)Tj -2.4 -1.189 Td (if \(n < 0\))Tj 2.4 -1.189 Td (err_sys\("recv error"\);)Tj -4.8 -1.189 Td (})Tj T* (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td (struct addrinfo *ailist, *aip;)Tj T* (struct addrinfo hint;)Tj T* (int )Tj 9.6 0 Td [(sockfd,)-600(err;)]TJ -9.6 -1.902 Td (if \(argc != 2\))Tj 2.4 -1.189 Td (err_quit\("usage: ruptime hostname"\);)Tj -2.4 -1.189 Td (memset\(&hint, 0, sizeof\(hint\)\);)Tj T* (hint.ai_socktype = SOCK_STREAM;)Tj T* (hint.ai_canonname = NULL;)Tj T* (hint.ai_addr = NULL;)Tj 0 -1.189 TD (hint.ai_next = NULL;)Tj 0 -1.189 TD (if \(\(err = getaddrinfo\(argv[1], "ruptime", &hint, &ailist\)\) != 0\))Tj 2.4 -1.189 Td (err_quit\("getaddrinfo error: %s", gai_strerror\(err\)\);)Tj -2.4 -1.189 Td (for \(aip = ailist; aip != NULL; aip = aip->ai_next\) {)Tj 2.4 -1.189 Td (if \(\(sockfd = connect_retry\(aip->ai_family, SOCK_STREAM, 0,)Tj 1.2 -1.189 Td (aip->ai_addr, aip->ai_addrlen\)\) < 0\) {)Tj 1.2 -1.189 Td (err = errno;)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (print_uptime\(sockfd\);)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47132 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.5)]TJ 41.174 0 Td (FIFOs)Tj /T1_1 1 Tf 4.659 0 Td (555)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 151.1789 631.0021 Tm (input)Tj 0.514 -1.25 Td (\336le)Tj ET q 0.99994 0 0 0.99994 0 0 cm q 1 0 0 1 211.2 627.8 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099994 0 0 0.099994 0 0 cm 1 j 1 J q 1 0 0 1 2112 6278 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1752.25 6278.25 cm 0 0 m 288 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2112 6134 432 288 re S Q BT /TT0 1 Tf 7.999 0 0 7.999 220.7735 625.9649 Tm (prog1)Tj ET q 0.99988 0 0 0.99988 0 0 cm q 1 0 0 1 290.4 627.8 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099988 0 0 0.099988 0 0 cm 1 j 1 J q 1 0 0 1 2904 6278 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2544.25 6278.25 cm 0 0 m 288 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2904 6134 432 288 re S Q BT /TT0 1 Tf 7.9986 0 0 7.9986 304.7451 625.9273 Tm (tee)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 3876 6422 360 144 re S Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 396.5648 647.4846 Tm (FIFO)Tj ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 459.6 649.4 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 4596 6494 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4236.25 6494.25 cm 0 0 m 288 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 4596 6350 432 288 re S Q BT /TT0 1 Tf 7.9976 0 0 7.9976 469.0593 647.4457 Tm (prog3)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 3840 5846 432 288 re S Q BT /TT0 1 Tf 7.9971 0 0 7.9971 393.4583 597.025 Tm (prog2)Tj ET q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 384 599 cm 0 0 m -7.128 2.016 l -5.328 5.112 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3840 5990 cm 0 0 m -71.28 20.16 l -53.28 51.12 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3336.25 6278.25 cm 0 0 m 441 -252 l S Q Q q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 387.6 649.4 cm 0 0 m -6.048 -4.32 l -7.416 -1.008 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3876 6494 cm 0 0 m -60.48 -43.2 l -74.16 -10.08 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3336.25 6278.25 cm 0 0 m 473 189 l S Q Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 184.1916 559.1315 Tm (Figure 15.21)Tj /T1_0 1 Tf 6.195 0 Td (Using a FIFO and)Tj /TT0 1 Tf 8.059 0 Td (tee)Tj /T1_0 1 Tf 2.05 0 Td [(to send a str)18(eam to two dif)18(fer)18(ent pr)18(ocesses)]TJ 9.9952 0 0 9.9952 129.5379 535.1431 Tm [(FIFO )-186(that )-186(the )-186(server )-186(cr)19(eates. )-436(\(By)]TJ -0.037 Tc 15.737 0 Td (\324\324)Tj 0 Tc 0.519 0 Td [(well-known,\325)37(\325)-436(we)-436(mean )-186(that )-186(the )-186(pathname )-186(of )-186(the)]TJ -16.256 -1.2 Td [(FIFO )-26(is )-26(known )-26(to )-26(all )-26(the )-26(clients )-26(that )-26(need )-26(to )-26(contact )-26(the )-26(server)72(.\) )-276(Figur)]TJ 0.2762 Tc 31.01 0 Td (e1)Tj 0 Tc 1.255 0 Td [(5.22 )-26(shows )-26(this)]TJ -32.265 -1.2 Td (arrangement.)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 2310 3286 432 288 re S Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 242.8168 341.0558 Tm (client)Tj /T1_1 1 Tf 0.25 Tc 9.9946 0 0 9.9946 318.1781 341.0558 Tm (...)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 3750 3286 432 288 re S Q BT /T1_0 1 Tf 0 Tc 7.9952 0 0 7.9952 386.7159 341.0353 Tm (client)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 2994 4078 504 216 re S Q BT /T1_0 1 Tf 7.9947 0 0 7.9947 303.0879 421.5617 Tm (well-known)Tj 1.547 -1.25 Td (FIFO)Tj ET q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 324.6 465.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 3246 4654 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 4294.25 cm 0 0 m 0 288 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J 3030 4654 432 288 re S Q BT /T1_0 1 Tf 7.9942 0 0 7.9942 313.4262 477.6959 Tm (server)Tj /TT0 1 Tf -1.292 -4.05 Td (read)Tj /T1_0 1 Tf -0.018 Tc 2.9 0 Td (re)Tj 0 Tc 0.856 0 Td (quests)Tj ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 316.176 407.8 cm 0 0 m -4.536 -5.904 l -6.768 -3.096 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 3161.76 4078 cm 0 0 m -45.36 -59.04 l -67.68 -30.96 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2526.25 3574.25 cm 0 0 m 579 459 l S Q Q BT /TT0 1 Tf 6.2651 4.9648 -4.9648 6.2651 260.5077 367.6561 Tm (write)Tj /T1_0 1 Tf -0.018 Tc 3.25 -0 Td (re)Tj 0 Tc 0.856 0 Td (quests)Tj ET q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 333.024 407.8 cm 0 0 m 6.768 -3.096 l 4.536 -5.904 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 3330.24 4078 cm 0 0 m 67.68 -30.96 l 45.36 -59.04 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3386.25 4033.25 cm 0 0 m 580 -459 l S Q Q BT /TT0 1 Tf 6.2647 -4.9645 4.9645 6.2647 344.7982 401.9982 Tm (write)Tj /T1_0 1 Tf -0.018 Tc 3.25 0 Td (re)Tj 0 Tc 0.856 0 Td (quests)Tj /T1_1 1 Tf 7.9933 0 0 7.9933 213.2448 303.1452 Tm (Figure 15.22)Tj /T1_0 1 Tf 6.195 0 Td [(Clients sending r)18(equests to a server using a FIFO)]TJ 9.9916 0 0 9.9916 129.4914 279.1654 Tm [(Since )-188(ther)]TJ 0.4376 Tc 4.523 0 Td (ea)Tj -0.018 Tc 1.417 0 Td [(re )-224(m)]TJ 0 Tc 2.177 0 Td [(ultiple )-187(writers )-187(for )-187(the )-187(FIFO, )-187(the )-187(r)18(equests )-187(sent )-187(by )-187(the )-187(clients )-187(to )-187(the)]TJ -8.116 -1.2 Td [(server )-93(need )-93(to )-93(be )-93(less )-93(than)]TJ /TT0 1 Tf 12.456 0 Td (PIPE_BUF)Tj /T1_0 1 Tf 5.143 0 Td [(bytes )-93(in )-93(size.)-593(This )-93(pr)19(events )-93(any )-93(interleaving )-93(of)]TJ -17.599 -1.2 Td (the client)Tj /TT0 1 Tf 4.3 0 Td (write)Tj /T1_0 1 Tf (s.)Tj -2.5 -1.2 Td [(The )-54(pr)18(oblem )-54(in )-54(using )-54(FIFOs )-54(for )-54(this )-54(type )-54(of )-54(client\320server )-54(communication )-54(is )-54(how )-54(to)]TJ -1.8 -1.2 Td [(send )-149(r)18(eplies )-149(back )-149(fr)18(om )-149(the )-149(server )-149(to )-149(each )-149(client.)]TJ 0.3988 Tc 22.732 0 Td (As)Tj 0 Tc 1.601 0 Td [(ingle )-149(FIFO )-149(can\325t )-149(be )-149(used, )-149(as )-149(the)]TJ -24.333 -1.2 Td [(clients )-261(would )-261(never )-261(know )-261(when )-261(to )-261(r)18(ead )-261(their )-261(r)18(esponse )-261(versus )-261(r)18(esponses )-261(for )-261(other)]TJ 0 -1.2 TD [(clients. )-436(One)-436(solution )-186(is )-186(for )-186(each )-186(client )-186(to )-186(send )-186(its )-186(pr)18(ocess )-186(ID )-186(with )-186(the )-186(r)16(equest. )-436(The)]TJ 0 -1.2 Td [(server )-8(then )-8(cr)18(eates )-8(a )-8(unique )-8(FIFO )-8(for )-8(each )-8(client, )-8(using )-8(a )-8(pathname )-8(based )-8(on )-8(the )-8(client\325s)]TJ T* [(pr)18(ocess )-729(ID.)-1228(For )-729(example, )-729(the )-729(server )-729(can )-729(cr)18(eate )-729(a )-729(FIFO )-729(with )-729(the )-729(name)]TJ /TT0 1 Tf 0 -1.2 Td (/tmp/serv1.XXXXX)Tj /T1_0 1 Tf 0.5551 Tc (,w)Tj 0 Tc 11.239 0 Td [(her)18(e)]TJ /TT0 1 Tf 2.472 0 Td (XXXXX)Tj /T1_0 1 Tf 3.555 0 Td [(is )-305(r)18(eplaced )-305(with )-305(the )-305(client\325s )-305(pr)18(ocess )-305(ID.)-806(This)]TJ -17.266 -1.2 Td (arrangement is shown in Figur)Tj 0.25 Tc 13.616 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.23.)Tj -13.045 -1.2 Td [(This )-109(arrangement )-109(works, )-109(although )-109(it )-109(is )-109(impossible )-109(for )-109(the )-109(server )-109(to )-109(tell )-109(whether )-109(a)]TJ -1.8 -1.2 Td [(client )-212(crashes.)]TJ 0.4622 Tc 7.085 0 Td (Ac)Tj 0 Tc 1.684 0 Td [(lient )-212(crash )-212(leaves )-212(the )-212(client-speci\336c )-212(FIFO )-212(in )-212(the )-212(\336le )-212(system.)-713(The)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47133 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.4)]TJ 38.38 0 Td [(Copr)18(ocesses)]TJ /T1_1 1 Tf 7.453 0 Td (551)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (})Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (static void)Tj 0 -1.189 TD (sig_pipe\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("SIGPIPE caught\\n"\);)Tj T* (exit\(1\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5713.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 242.9628 555.2724 Tm (Figure 15.18)Tj /T1_0 1 Tf 6.195 0 Td [(Pr)18(ogram to drive the)]TJ /TT0 1 Tf 9.461 0 Td (add2)Tj /T1_0 1 Tf 2.65 0 Td (\336lter)Tj 9.9988 0 0 9.9988 147.5824 531.2752 Tm [(Her)18(e, )-18(we )-18(cr)18(eate )-18(two )-18(pipes, )-18(with )-18(the )-18(par)18(ent )-18(and )-18(the )-18(child )-18(closing )-18(the )-18(ends )-18(they )-18(don\325t)]TJ -1.8 -1.2 Td [(need. )-257(W)]TJ 0.2575 Tc 3.816 0 Td (eh)Tj 0 Tc 1.319 0 Td [(ave )-8(to )-8(use )-8(two )-8(pipes: )-8(one )-8(for )-8(the )-8(standar)]TJ 0.2576 Tc 17.923 0 Td (di)Tj 0 Tc 1.16 0 Td [(nput )-8(of )-8(the )-8(copr)18(ocess )-8(and )-8(one )-8(for)]TJ -24.217 -1.2 Td [(its )-152(standar)]TJ 0.4022 Tc 4.763 0 Td (do)Tj 0 Tc 1.559 0 Td [(utput. )-402(The)-402(child )-152(then )-152(calls)]TJ /TT0 1 Tf 12.782 0 Td (dup2)Tj /T1_0 1 Tf 2.802 0 Td [(to )-152(move )-152(the )-152(pipe )-152(descriptors )-152(onto )-152(its)]TJ -21.906 -1.2 Td (standar)Tj 0.25 Tc 3.32 0 Td (di)Tj 0 Tc 1.152 0 Td (nput and standar)Tj 0.25 Tc 7.625 0 Td (do)Tj 0 Tc 1.407 0 Td (utput, befor)Tj 0.25 Tc 5.247 0 Td (ec)Tj 0 Tc 1.173 0 Td (alling)Tj /TT0 1 Tf 2.761 0 Td (execl)Tj /T1_0 1 Tf (.)Tj -20.885 -1.2 Td [(If )-400(we )-400(compile )-400(and )-400(r)8(un )-400(the )-400(pr)16(ogram )-400(in )-400(Figur)]TJ 0.6505 Tc 22.487 0 Td (e1)Tj 0 Tc 1.629 0 Td [(5.18, )-400(it )-400(works )-400(as )-400(expected.)]TJ -25.917 -1.2 Td [(Furthermor)18(e, )-234(if )-234(we)]TJ /TT0 1 Tf 9.261 0 Td (kill)Tj /T1_0 1 Tf 2.884 0 Td (the)Tj /TT0 1 Tf 1.871 0 Td (add2)Tj /T1_0 1 Tf 2.884 0 Td [(copr)18(ocess )-234(while )-234(the )-234(pr)17(ogram )-234(in )-234(Figur)]TJ 0.4844 Tc 17.685 0 Td (e1)Tj 0 Tc 1.463 0 Td [(5.18 )-234(is)]TJ -36.051 -1.2 Td [(waiting )-58(for )-58(our )-58(input )-58(and )-58(then )-58(enter )-58(two )-58(numbers, )-58(the )-58(signal )-58(handler )-58(is )-58(invoked )-58(when)]TJ 0 -1.2 TD [(the pr)18(ogram writes to the pipe that has no r)18(eader)]TJ 0.5 Tc 21.61 0 Td (.\()Tj 0 Tc 1.083 0 Td [(See Exer)18(cise 15.4.\))]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4473.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 9.9982 0 0 9.9982 93.5832 411.265 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(In )-98(the )-98(copr)18(ocess)]TJ /TT0 1 Tf 7.636 0 Td (add2)Tj /T1_0 1 Tf 2.748 0 Td (\(Figur)Tj 0.3482 Tc 2.716 0 Td (e1)Tj 0 Tc 1.327 0 Td [(5.17\), )-98(we )-98(purposely )-98(used )-98(low-level )-98(I/O )-98(\(UNIX )-98(system)]TJ -14.427 -1.2 Td (calls\):)Tj /TT0 1 Tf 2.946 0 Td (read)Tj /T1_0 1 Tf 2.813 0 Td (and)Tj /TT0 1 Tf 2.106 0 Td (write)Tj /T1_0 1 Tf 0.6625 Tc (.W)Tj 0 Tc 4.912 0 Td [(hat )-162(happens )-162(if )-162(we )-162(r)16(ewrite )-162(this )-162(copr)18(ocess )-162(to )-162(use )-162(standar)16(d)]TJ -12.776 -1.2 Td [(I/O? )-250(Figur)]TJ 0.25 Tc 5.056 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.19 shows the new version.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3561.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9978 0 0 8.9978 129.5689 346.5548 Tm (#include "apue.h")Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(int1,)-600(int2;)]TJ T* [(char )-1800(line[MAXLINE];)]TJ 0 -2.14 TD (while \(fgets\(line, MAXLINE, stdin\) != NULL\) {)Tj 2.4 -1.189 Td (if \(sscanf\(line, "%d%d", &int1, &int2\) == 2\) {)Tj 2.4 -1.189 Td (if \(printf\("%d\\n", int1 + int2\) == EOF\))Tj 2.4 -1.189 Td (err_sys\("printf error"\);)Tj 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (if \(printf\("invalid args\\n"\) == EOF\))Tj 2.4 -1.189 Td (err_sys\("printf error"\);)Tj -4.8 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1535.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 217.0629 137.4757 Tm (Figure 15.19)Tj /T1_0 1 Tf 6.195 0 Td (Filter to add two numbers, using standar)Tj 0.25 Tc 18.083 0 Td (dI)Tj 0 Tc 1.198 0 Td (/O)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47134 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.4)]TJ 38.38 0 Td [(Copr)18(ocesses)]TJ /T1_1 1 Tf 7.453 0 Td (549)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2274 6086 576 432 re S Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 3642 6086 576 432 re S Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 244.7253 655.0007 Tm [(par)18(ent)]TJ 14.822 0 Td [(child \(copr)18(ocess\))]TJ /TT0 1 Tf -13.889 -1.975 Td (fd1[1])Tj -0 -2.7 Td (fd2[0])Tj /T1_2 1 Tf 14.5 2.7 Td (stdin)Tj 0 -2.7 TD (stdout)Tj ET q 0.99994 0 0 0.99994 0 0 cm q 1 0 0 1 364.2 641 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099994 0 0 0.099994 0 0 cm 1 j 1 J q 1 0 0 1 3642 6410 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2850.25 6410.25 cm 0 0 m 720 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 314.6742 644.1627 Tm (pipe1)Tj ET q 0.99988 0 0 0.99988 0 0 cm q 1 0 0 1 285 619.4 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099988 0 0 0.099988 0 0 cm 1 j 1 J q 1 0 0 1 2850 6194 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 6194.25 cm 0 0 m -720 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 314.6554 612.5297 Tm (pipe2)Tj /T1_1 1 Tf -19.893 -3.655 Td (Figure 15.16)Tj /T1_0 1 Tf 6.195 0 Td [(Driving a copr)18(ocess by writing its standar)]TJ 0.25 Tc 18.484 0 Td (di)Tj 0 Tc 1.152 0 Td [(nput and r)18(eading its standar)]TJ 0.25 Tc 12.562 0 Td (do)Tj 0 Tc 1.407 0 Td (utput)Tj 9.9982 0 0 9.9982 147.5735 553.3006 Tm [(The )-56(pr)18(ogram )-56(in )-56(Figur)]TJ 0.306 Tc 9.706 0 Td (e1)Tj 0 Tc 1.285 0 Td [(5.17 )-56(is )-56(a )-56(simple )-56(copr)18(ocess )-56(that )-56(r)18(eads )-56(two )-56(numbers )-56(fr)18(om )-56(its)]TJ -12.791 -1.2 Td (standar)Tj 0.5865 Tc 3.32 0 Td (di)Tj 0 Tc 1.489 0 Td [(nput, )-337(computes )-337(their )-337(sum, )-337(and )-337(writes )-337(the )-337(sum )-337(to )-337(its )-337(standar)]TJ 0.5866 Tc 29.739 0 Td (do)Tj 0 Tc 1.744 0 Td (utput.)Tj -36.291 -1.2 Td [(\(Copr)18(ocesses )-37(usually )-37(do )-37(mor)]TJ 0.2867 Tc 12.877 0 Td (ei)Tj 0 Tc 1.057 0 Td [(nter)18(esting )-37(work )-37(than )-37(we )-37(illustrate )-37(her)20(e. )-287(This)-286(example )-37(is)]TJ -13.934 -1.2 Td [(admittedly )-348(contrived )-348(so )-348(that )-348(we )-348(can )-348(study )-348(the )-348(plumbing )-348(needed )-348(to )-348(connect )-348(the)]TJ 0 -1.2 TD [(pr)18(ocesses.\))]TJ ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4982.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9978 0 0 8.9978 129.5689 488.5817 Tm (#include "apue.h")Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(n,)-600(int1, int2;)]TJ T* [(char )-1800(line[MAXLINE];)]TJ 0 -2.14 TD (while \(\(n = read\(STDIN_FILENO, line, MAXLINE\)\) > 0\) {)Tj 2.4 -1.189 Td [(line[n] = 0;)-4800(/* null terminate */)]TJ 0 -1.189 TD (if \(sscanf\(line, "%d%d", &int1, &int2\) == 2\) {)Tj 2.4 -1.189 Td (sprintf\(line, "%d\\n", int1 + int2\);)Tj 0.6 Tc T* (n=s)Tj 0 Tc 3 0 Td (trlen\(line\);)Tj -3 -1.189 Td (if \(write\(STDOUT_FILENO, line, n\) != n\))Tj 2.4 -1.189 Td (err_sys\("write error"\);)Tj 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (if \(write\(STDOUT_FILENO, "invalid args\\n", 13\) != 13\))Tj 2.4 -1.189 Td (err_sys\("write error"\);)Tj -4.8 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2635.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 241.2076 247.4038 Tm (Figure 15.17)Tj /T1_0 1 Tf 6.195 0 Td (Simple \336lter to add two numbers)Tj -0.092 Tc 9.997 0 0 9.997 129.5613 222.2113 Tm [(We )-184(c)]TJ 0 Tc 2.081 0 Td [(ompile this pr)18(ogram and leave the executable in the \336le)]TJ /TT0 1 Tf 24.771 0 Td (add2)Tj /T1_0 1 Tf (.)Tj -25.052 -1.2 Td [(The )-9(pr)18(ogram )-9(in )-9(Figur)]TJ 0.2595 Tc 9.566 0 Td (e1)Tj 0 Tc 1.239 0 Td [(5.18 )-9(invokes )-9(the)]TJ /TT0 1 Tf 7.359 0 Td (add2)Tj /T1_0 1 Tf 2.659 0 Td [(copr)18(ocess )-9(after )-9(r)18(eading )-9(two )-9(numbers)]TJ -22.623 -1.2 Td [(fr)18(om its standar)]TJ 0.25 Tc 7 0 Td (di)Tj 0 Tc 1.152 0 Td [(nput. )-250(The)-250(value fr)18(om the copr)18(ocess is written to its standar)]TJ 0.25 Tc 26.216 0 Td (do)Tj 0 Tc 1.407 0 Td (utput.)Tj ET q 0.09997 0 0 0.09997 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1911.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9968 0 0 8.9968 129.5534 181.5116 Tm (#include "apue.h")Tj 0 -2.14 TD [(static void sig_pipe\(int\);)-3600(/* our signal handler */)]TJ T* (int)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47135 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (540)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -2.259 TD [(static int)-1200(pfd1[2], pfd2[2];)]TJ T* (void)Tj 0 -1.189 TD (TELL_WAIT\(void\))Tj T* ({)Tj 2.4 -1.189 Td (if \(pipe\(pfd1\) < 0 || pipe\(pfd2\) < 0\))Tj 2.4 -1.189 Td (err_sys\("pipe error"\);)Tj -4.8 -1.189 Td (})Tj 0 -2.259 TD (void)Tj 0 -1.189 TD (TELL_PARENT\(pid_t pid\))Tj T* ({)Tj 2.4 -1.189 Td (if \(write\(pfd2[1], "c", 1\) != 1\))Tj 2.4 -1.189 Td (err_sys\("write error"\);)Tj -4.8 -1.189 Td (})Tj 0 -2.259 TD (void)Tj 0 -1.189 TD (WAIT_PARENT\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(char )-1800(c;)]TJ 0 -2.259 TD (if \(read\(pfd1[0], &c, 1\) != 1\))Tj 2.4 -1.189 Td (err_sys\("read error"\);)Tj -2.4 -2.259 Td (if \(c != \325p\325\))Tj 2.4 -1.189 Td (err_quit\("WAIT_PARENT: incorrect data"\);)Tj -4.8 -1.189 Td (})Tj T* (void)Tj 0 -1.189 TD (TELL_CHILD\(pid_t pid\))Tj T* ({)Tj 2.4 -1.189 Td (if \(write\(pfd1[1], "p", 1\) != 1\))Tj 2.4 -1.189 Td (err_sys\("write error"\);)Tj -4.8 -1.189 Td (})Tj 0 -2.259 TD (void)Tj 0 -1.189 TD (WAIT_CHILD\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(char )-1800(c;)]TJ 0 -2.259 TD (if \(read\(pfd2[0], &c, 1\) != 1\))Tj 2.4 -1.189 Td (err_sys\("read error"\);)Tj -2.4 -2.259 Td (if \(c != \325c\325\))Tj 2.4 -1.189 Td (err_quit\("WAIT_CHILD: incorrect data"\);)Tj -4.8 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1625.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 220.6855 146.4804 Tm (Figure 15.7)Tj /T1_1 1 Tf 5.695 0 Td [(Routines to let a par)18(ent and child synchr)18(onize)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47136 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (538)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(Consider )-98(a )-98(pr)18(ogram )-98(that )-98(displays )-98(some )-98(output )-98(that )-98(it )-98(has )-98(cr)21(eated, )-98(one )-98(page )-98(at )-98(a )-98(time.)]TJ 0 -1.2 TD [(Rather )-62(than )-62(r)19(einvent )-62(the )-62(pagination )-62(done )-62(by )-62(several )-62(UNIX )-62(system )-62(utilities, )-62(we )-62(want )-62(to)]TJ T* [(invoke )-93(the )-93(user)-74(\325s )-93(favorite )-93(pager)]TJ 0.5929 Tc 14.347 0 Td (.T)Tj 0.3429 Tc 1.364 0 Td (oa)Tj 0 Tc 1.389 0 Td [(void )-93(writing )-93(all )-93(the )-93(data )-93(to )-93(a )-93(temporary )-93(\336le )-93(and)]TJ -17.099 -1.2 Td (calling)Tj /TT1 1 Tf 3.236 0 Td (system)Tj /T1_1 1 Tf 3.881 0 Td [(to )-31(display )-31(that )-31(\336le, )-31(we )-31(want )-31(to )-31(pipe )-31(the )-31(output )-31(dir)18(ectly )-31(to )-31(the )-31(pager)]TJ 0.5307 Tc 30.036 0 Td (.T)Tj 0 Tc 1.302 0 Td (o)Tj -38.454 -1.2 Td [(do )-85(this, )-85(we )-85(cr)18(eate )-85(a )-85(pipe,)]TJ /TT1 1 Tf 11.678 0 Td (fork)Tj /T1_1 1 Tf 0.3345 Tc 2.734 0 Td (ac)Tj 0 Tc 1.279 0 Td [(hild )-84(pr)18(ocess, )-84(set )-84(up )-84(the )-84(child\325s )-84(standar)]TJ 0.3345 Tc 17.388 0 Td (di)Tj 0 Tc 1.236 0 Td [(nput )-84(to )-84(be)]TJ -34.315 -1.2 Td [(the )-11(r)18(ead )-11(end )-11(of )-11(the )-11(pipe, )-11(and)]TJ /TT1 1 Tf 13.038 0 Td (exec)Tj /T1_1 1 Tf 2.661 0 Td [(the )-11(user)-74(\325s )-11(pager )-11(pr)17(ogram. )-261(Figur)]TJ 0.2615 Tc 14.382 0 Td (e1)Tj 0 Tc 1.241 0 Td [(5.6 )-11(shows )-11(how )-11(to)]TJ -31.321 -1.2 Td [(do )-67(this.)-567(\(This )-67(example )-67(takes )-67(a )-67(command)]TJ 18.408 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-67(ar)18(gument )-67(to )-67(specify )-67(the )-67(name )-67(of )-67(a )-67(\336le )-67(to)]TJ -18.741 -1.2 Td (display)Tj 0.6303 Tc 3.163 0 Td (.O)Tj 0 Tc 1.666 0 Td [(ften, )-130(a )-130(pr)18(ogram )-130(of )-130(this )-130(type )-130(would )-130(alr)16(eady )-130(have )-130(the )-130(data )-130(to )-130(display )-130(to )-130(the)]TJ -4.829 -1.2 Td [(terminal in memory)111(.\))]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5418.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 532.2351 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD [(#define DEF_PAGER)-1800("/bin/more" )-2400(/*)-600(default pager program */)]TJ 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-2400(n;)]TJ T* [(int )-2400(fd[2];)]TJ T* [(pid_t )-1200(pid;)]TJ T* [(char )-1800(*pager,)-600(*argv0;)]TJ T* [(char )-1800(line[MAXLINE];)]TJ T* [(FILE )-1800(*fp;)]TJ 0 -1.902 TD (if \(argc != 2\))Tj 2.4 -1.189 Td (err_quit\("usage: a.out "\);)Tj -2.4 -1.902 Td (if \(\(fp = fopen\(argv[1], "r"\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("can\325t open %s", argv[1]\);)Tj -2.4 -1.189 Td (if \(pipe\(fd\) < 0\))Tj 2.4 -1.189 Td (err_sys\("pipe error"\);)Tj -2.4 -1.902 Td (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(pid > 0\) {)Tj 29.4 0 Td (/* parent */)Tj -28.8 -1.189 Td [(close\(fd[0]\); )-3600(/*)-600(close read end */)]TJ 0 -1.902 TD (/* parent copies argv[1] to pipe */)Tj 0 -1.189 TD (while \(fgets\(line, MAXLINE, fp\) != NULL\) {)Tj 0.6 Tc 2.4 -1.189 Td (n=s)Tj 0 Tc 3 0 Td (trlen\(line\);)Tj -3 -1.189 Td (if \(write\(fd[1], line, n\) != n\))Tj 2.4 -1.189 Td (err_sys\("write error to pipe"\);)Tj -4.8 -1.189 Td (})Tj T* (if \(ferror\(fp\)\))Tj 2.4 -1.189 Td (err_sys\("fgets error"\);)Tj -2.4 -1.902 Td [(close\(fd[1]\); )-1200(/*)-600(close write end of pipe for reader */)]TJ 0 -1.902 TD (if \(waitpid\(pid, NULL, 0\) < 0\))Tj 2.4 -1.189 Td (err_sys\("waitpid error"\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47137 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.2)]TJ 41.434 0 Td (Pipes)Tj /T1_1 1 Tf 4.399 0 Td (537)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(2. )-633(If)-343(we)]TJ /TT0 1 Tf 4.302 0 Td (write)Tj /T1_0 1 Tf 3.343 0 Td [(to )-93(a )-93(pipe )-93(whose )-93(r)18(ead )-93(end )-93(has )-93(been )-93(closed, )-93(the )-93(signal)]TJ /TT0 1 Tf 24.297 0 Td (SIGPIPE)Tj /T1_0 1 Tf 4.543 0 Td (is)Tj -34.852 -1.2 Td [(generated. )-342(If)-342(we )-92(either )-92(ignor)]TJ 0.3417 Tc 13.161 0 Td (et)Tj 0 Tc 1.147 0 Td [(he )-92(signal )-92(or )-92(catch )-92(it )-92(and )-92(r)18(eturn )-92(fr)18(om )-92(the )-92(signal)]TJ -14.308 -1.2 Td [(handler)74(,)]TJ /TT0 1 Tf 3.866 0 Td (write)Tj /T1_0 1 Tf -0.018 Tc 3.25 0 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj /TT1 1 Tf 2.58 0 Td (!)Tj /T1_0 1 Tf 0.25 Tc (1w)Tj 0 Tc 2.133 0 Td (ith)Tj /TT0 1 Tf 1.449 0 Td (errno)Tj /T1_0 1 Tf 3.25 0 Td (set to)Tj /TT0 1 Tf 2.601 0 Td (EPIPE)Tj /T1_0 1 Tf (.)Tj -21.618 -2.04 Td [(When )-279(we\325r)]TJ 0.529 Tc 5.14 0 Td (ew)Tj 0 Tc 1.842 0 Td [(riting )-279(to )-279(a )-279(pipe )-279(\(or )-279(FIFO\), )-279(the )-279(constant)]TJ /TT0 1 Tf 19.226 0 Td (PIPE_BUF)Tj /T1_0 1 Tf 5.329 0 Td [(speci\336es )-279(the)]TJ -33.337 -1.2 Td [(kernel\325s )-116(pipe )-116(buf)17(fer )-116(size.)-616(A)]TJ /TT0 1 Tf 12.937 0 Td (write)Tj /T1_0 1 Tf 3.366 0 Td (of)Tj /TT0 1 Tf 1.245 0 Td (PIPE_BUF)Tj /T1_0 1 Tf 5.166 0 Td [(bytes )-116(or )-116(less )-116(will )-116(not )-116(be )-116(interleaved)]TJ -22.715 -1.2 Td [(with )-229(the)]TJ /TT0 1 Tf 4.377 0 Td (write)Tj /T1_0 1 Tf 0.4788 Tc (sf)Tj -0.018 Tc 4.236 0 Td (ro)Tj 0.4788 Tc 0.923 0 Td (mo)Tj 0 Tc 1.908 0 Td [(ther )-229(pr)18(ocesses )-229(to )-229(the )-229(same )-229(pipe )-229(\(or )-229(FIFO\).)-729(But )-229(if )-229(multiple)]TJ -11.444 -1.2 Td [(pr)18(ocesses )-46(ar)]TJ 0.2962 Tc 5.371 0 Td (ew)Tj 0 Tc 1.609 0 Td [(riting )-46(to )-46(a )-46(pipe )-46(\(or )-46(FIFO\), )-46(and )-46(if )-46(we)]TJ /TT0 1 Tf 16.172 0 Td (write)Tj /T1_0 1 Tf 3.296 0 Td (mor)Tj 0.2961 Tc 1.806 0 Td (et)Tj 0 Tc 1.101 0 Td (han)Tj /TT0 1 Tf 1.96 0 Td (PIPE_BUF)Tj /T1_0 1 Tf 5.096 0 Td (bytes,)Tj -36.412 -1.2 Td [(the )-87(data )-87(might )-87(be )-87(interleaved )-87(with )-87(the )-87(data )-87(fr)18(om )-87(the )-87(other )-87(writers.)]TJ -0.092 Tc 30.889 0 Td [(We )-271(c)]TJ 0 Tc 2.168 0 Td [(an )-87(determine)]TJ -33.056 -1.2 Td (the value of)Tj /TT0 1 Tf 5.454 0 Td (PIPE_BUF)Tj /T1_0 1 Tf 5.05 0 Td (by using)Tj /TT0 1 Tf 4.065 0 Td (pathconf)Tj /T1_0 1 Tf 5.05 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (fpathconf)Tj /T1_0 1 Tf 5.65 0 Td [(\(r)18(ecall Figur)]TJ 0.25 Tc 5.348 0 Td (e2)Tj 0 Tc 1.229 0 Td (.12\).)Tj /TT2 1 Tf -36.637 -2.76 Td (Example)Tj /T1_0 1 Tf 3.6 -2.16 Td (Figur)Tj 0.3207 Tc 2.383 0 Td (e1)Tj 0 Tc 1.3 0 Td [(5.5 )-71(shows )-71(the )-71(code )-71(to )-71(cr)20(eate )-71(a )-71(pipe )-71(between )-71(a )-71(par)18(ent )-71(and )-71(its )-71(child )-71(and )-71(to )-71(send)]TJ -3.683 -1.2 Td (data down the pipe.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4962.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 486.6406 Tm (#include "apue.h")Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-2400(n;)]TJ T* [(int )-2400(fd[2];)]TJ T* [(pid_t )-1200(pid;)]TJ T* [(char )-1800(line[MAXLINE];)]TJ 0 -1.902 TD (if \(pipe\(fd\) < 0\))Tj 2.4 -1.189 Td (err_sys\("pipe error"\);)Tj -2.4 -1.189 Td (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(pid > 0\) {)-4200(/* parent */)]TJ 0.6 -1.189 Td (close\(fd[0]\);)Tj 0 -1.189 TD (write\(fd[1], "hello world\\n", 12\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 15 0 Td (/* child */)Tj -14.4 -1.189 Td (close\(fd[1]\);)Tj 0.6 Tc T* (n=r)Tj 0 Tc 3 0 Td (ead\(fd[0], line, MAXLINE\);)Tj -3 -1.189 Td (write\(STDOUT_FILENO, line, n\);)Tj -2.4 -1.189 Td (})Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2443.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 227.0351 228.3169 Tm (Figure 15.5)Tj /T1_0 1 Tf 5.695 0 Td [(Send data fr)18(om par)18(ent to child over a pipe)]TJ 9.9982 0 0 9.9982 129.5769 204.3212 Tm [(Note that the pipe dir)18(ection her)]TJ 0.25 Tc 13.91 0 Td (em)Tj 0 Tc 1.612 0 Td (atches the orientation shown in Figur)Tj 0.25 Tc 16.48 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.4.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2043.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9976 0 0 9.9976 147.5646 180.3147 Tm [(In )-427(the )-427(pr)18(evious )-427(example, )-427(we )-427(called)]TJ /TT0 1 Tf 18.183 0 Td (read)Tj /T1_0 1 Tf 3.077 0 Td (and)Tj /TT0 1 Tf 2.37 0 Td (write)Tj /T1_0 1 Tf 3.677 0 Td [(dir)18(ectly )-427(on )-427(the )-427(pipe)]TJ -29.107 -1.2 Td [(descriptors. )-290(What)-291(is )-40(mor)]TJ 0.2903 Tc 11.236 0 Td (ei)Tj 0 Tc 1.06 0 Td [(nter)18(esting )-40(is )-40(to )-40(duplicate )-40(the )-40(pipe )-40(descriptors )-40(onto )-40(standar)16(d)]TJ -12.296 -1.2 Td [(input )-188(or )-188(standar)]TJ 0.4383 Tc 7.541 0 Td (do)Tj 0 Tc 1.595 0 Td [(utput. )-438(Often,)-439(the )-188(child )-188(then )-188(r)8(uns )-188(some )-188(other )-188(pr)18(ogram, )-188(and )-188(that)]TJ -9.136 -1.2 Td [(pr)18(ogram )-7(can )-7(either )-7(r)18(ead )-7(fr)18(om )-7(its )-7(standar)]TJ 0.2572 Tc 17.946 0 Td (di)Tj 0 Tc 1.159 0 Td [(nput )-7(\(the )-7(pipe )-7(that )-7(we )-7(cr)18(eated\) )-7(or )-7(write )-7(to )-7(its)]TJ -19.105 -1.2 Td (standar)Tj 0.25 Tc 3.32 0 Td (do)Tj 0 Tc 1.407 0 Td (utput \(the pipe\).)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47138 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (530)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(We )-239(\336)]TJ 0 Tc 2.297 0 Td [(rst )-55(open )-55(both )-55(\336les )-55(and )-55(then )-55(call)]TJ /TT0 1 Tf 14.479 0 Td (fstat)Tj /T1_1 1 Tf 3.305 0 Td [(to )-55(obtain )-55(the )-55(size )-55(of )-55(the )-55(input )-55(\336le.)]TJ -0.092 Tc 15.733 0 Td (We)Tj 0 Tc -37.613 -1.2 Td [(need )-70(this )-70(size )-70(for )-70(the )-70(call )-70(to)]TJ /TT0 1 Tf 12.769 0 Td (mmap)Tj /T1_1 1 Tf 2.72 0 Td [(for )-70(the )-70(input )-70(\336le, )-70(and )-70(we )-70(also )-70(need )-70(to )-70(set )-70(the )-70(size )-70(of)]TJ -15.489 -1.2 Td [(the )-36(output )-36(\336le.)]TJ -0.092 Tc 7.125 0 Td [(We )-220(c)]TJ 0 Tc 2.117 0 Td (all)Tj /TT0 1 Tf 1.368 0 Td (ftruncate)Tj /T1_1 1 Tf 5.686 0 Td [(to )-36(set )-36(the )-36(size )-36(of )-36(the )-36(output )-36(\336le.)-536(If )-36(we )-36(don\325t )-36(set )-36(the)]TJ -16.297 -1.2 Td [(output )-42(\336le\325s )-42(size, )-42(the )-42(call )-42(to)]TJ /TT0 1 Tf 12.561 0 Td (mmap)Tj /T1_1 1 Tf 2.692 0 Td [(for )-42(the )-42(output )-42(\336le )-42(is )-42(successful, )-42(but )-42(the )-42(\336rst )-42(r)22(efer)18(ence)]TJ -15.253 -1.2 Td [(to the associated memory r)18(egion generates a)]TJ /TT0 1 Tf 19.847 0 Td (SIGBUS)Tj /T1_1 1 Tf 3.85 0 Td (signal.)Tj -0.092 Tc -21.897 -1.2 Td [(We )-192(t)]TJ 0 Tc 1.971 0 Td [(hen )-8(call)]TJ /TT0 1 Tf 3.685 0 Td (mmap)Tj /T1_1 1 Tf 2.658 0 Td [(for )-8(each )-8(\336le, )-8(to )-8(map )-8(the )-8(\336le )-8(into )-8(memory)]TJ 0.2579 Tc 17.961 0 Td (,a)Tj 0 Tc 1.008 0 Td [(nd )-8(\336nally )-8(call)]TJ /TT0 1 Tf 6.318 0 Td (memcpy)Tj /T1_1 1 Tf -35.4 -1.2 Td [(to )-14(copy )-14(data )-14(fr)18(om )-14(the )-14(input )-14(buf)18(fer )-14(to )-14(the )-14(output )-14(buf)19(fer)]TJ 0.5139 Tc 24.07 0 Td (.W)Tj 0.2639 Tc 1.672 0 Td (ec)Tj 0 Tc 1.187 0 Td [(opy )-14(at )-14(most )-14(1 )-14(GB )-14(of )-14(data )-14(at)]TJ 0.2688 Tc -26.929 -1.2 Td (at)Tj 0 Tc 1.095 0 Td [(ime )-19(to )-19(limit )-19(the )-19(amount )-19(of )-19(memory )-19(we )-19(use )-19(\(it )-19(might )-19(not )-19(be )-19(possible )-19(to )-19(map )-19(the )-19(entir)20(e)]TJ -1.095 -1.2 Td [(contents )-297(of )-297(a )-297(very )-297(lar)18(ge )-297(\336le )-297(if )-297(the )-297(system )-297(doesn\325t )-297(have )-297(enough )-297(memory\).)-802(Befor)18(e)]TJ 0 -1.2 TD [(mapping the next sections of the \336les, we unmap the pr)18(evious sections.)]TJ 1.8 -1.2 Td [(As )-260(the )-260(bytes )-260(of )-260(data )-260(ar)]TJ 0.5096 Tc 11.168 0 Td (ef)Tj 0 Tc 1.322 0 Td [(etched )-260(fr)18(om )-260(the )-260(input )-260(buf)18(fer )-260(\()]TJ /TT0 1 Tf 14.409 0 Td (src)Tj /T1_1 1 Tf [(\), )-260(the )-260(input )-260(\336le )-260(is)]TJ -28.699 -1.2 Td [(automatically )-128(r)18(ead )-128(by )-128(the )-128(kernel; )-128(as )-128(the )-128(data )-128(is )-128(stor)18(ed )-128(in )-128(the )-128(output )-128(buf)18(fer )-128(\()]TJ /TT0 1 Tf 34.852 0 Td (dst)Tj /T1_1 1 Tf [(\), )-128(the)]TJ -34.852 -1.2 Td (data is automatically written to the output \336le.)Tj 7.9995 0 0 7.9995 183.5884 504.9697 Tm [(Exactly )-276(when )-276(the )-276(data )-276(is )-276(written )-276(to )-276(the )-276(\336le )-276(depends )-276(on )-276(the )-276(system\325s )-276(page )-276(management)]TJ 0 -1.25 TD [(algorithms. )-356(Some)-355(systems )-106(have )-106(daemons )-106(that )-106(write )-106(dirty )-106(pages )-106(to )-106(disk )-106(slowly )-106(over )-106(time.)-601(If)]TJ -0 -1.25 Td [(we )-112(want )-112(to )-112(ensur)]TJ 0.3618 Tc 7.977 0 Td (et)Tj 0 Tc 1.167 0 Td [(hat )-112(the )-112(data )-112(is )-112(safely )-112(written )-112(to )-112(the )-112(\336le, )-112(we )-112(need )-112(to )-112(call)]TJ /TT0 1 Tf 25.712 0 Td (msync)Tj /T1_1 1 Tf 3.362 0 Td [(with )-112(the)]TJ /TT0 1 Tf -38.218 -1.25 Td (MS_SYNC)Tj /T1_1 1 Tf 4.45 0 Td (\337ag befor)Tj 0.25 Tc 4.202 0 Td (ee)Tj 0 Tc 1.208 0 Td (xiting.)Tj 9.9994 0 0 9.9994 147.5903 452.9728 Tm [(Let\325s )-15(compar)]TJ 0.2648 Tc 5.734 0 Td (et)Tj 0 Tc 1.07 0 Td [(his )-15(memory-mapped )-15(\336le )-15(copy )-15(to )-15(a )-15(copy )-15(that )-15(is )-15(done )-15(by )-15(calling)]TJ /TT0 1 Tf 27.996 0 Td (read)Tj /T1_1 1 Tf -36.6 -1.2 Td (and)Tj /TT0 1 Tf 2.022 0 Td (write)Tj /T1_1 1 Tf 3.329 0 Td [(\(with )-79(a )-79(buf)18(fer )-79(size )-79(of )-79(8,192\).)-581(Figur)]TJ 0.3294 Tc 15.559 0 Td (e1)Tj 0 Tc 1.308 0 Td [(4.28 )-79(shows )-79(the )-79(r)17(esults. )-329(The)-330(times )-79(ar)18(e)]TJ -22.22 -1.2 Td [(given )-61(in )-61(seconds )-61(and )-61(the )-61(size )-61(of )-61(the )-61(\336le )-61(copied )-61(was )-61(300 )-61(MB.)-561(Note )-61(that )-61(we )-61(don\325t )-61(synch)]TJ 0 -1.2 TD (the data to disk befor)Tj 0.25 Tc 9.366 0 Td (ee)Tj 0 Tc 1.208 0 Td (xiting.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1815.25 3934.25 cm 0 0 m 2861 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 262.4525 385.3538 Tm (Linux 3.2.0)Tj 5.103 0.04 Td (\()Tj 0.333 -0.04 Td (Intel x86)Tj 3.781 0.04 Td (\))Tj 5.472 -0.04 Td (Solaris 10)Tj 4.472 0.04 Td (\()Tj 0.333 -0.04 Td [(SP)92(ARC)]TJ 3.192 0.04 Td (\))Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2443.25 3814.25 cm 0 0 m 2233 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 254.7901 373.3328 Tm [(User )-1808(System)-1824(Clock )-2132(User)-2058(System )-1573(Clock)]TJ -7.612 0.75 Td (Operation)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1815.25 3694.25 cm 0 0 m 2861 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1815.25 3674.25 cm 0 0 m 2861 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 185.5235 359.3138 Tm (read/write)Tj /T1_1 1 Tf 8.821 0 Td [(0.01 )-2693(0.54)-3193(5.67 )-2443(0.29 )-2443(10.60)-2443(43.67)]TJ /TT0 1 Tf -8.822 -1.25 Td (mmap/memcpy)Tj /T1_1 1 Tf 8.821 0 Td [(0.08 )-2693(0.65)-2693(22.54 )-2443(1.89)-3193(8.56 )-2193(38.42)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1815.25 3454.25 cm 0 0 m 2861 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4321.25 3454.25 cm 0 0 m 0 360 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3945.25 3454.25 cm 0 0 m 0 360 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3570.25 3454.25 cm 0 0 m 0 480 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3194.25 3454.25 cm 0 0 m 0 360 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2819.25 3454.25 cm 0 0 m 0 360 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2443.25 3454.25 cm 0 0 m 0 480 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4676.25 3454.25 cm 0 0 m 0 480 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1815.25 3454.25 cm 0 0 m 0 480 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 189.2712 327.3018 Tm (Figure 14.28)Tj /T1_1 1 Tf -0.055 Tc 6.195 0 Td (Ti)Tj 0 Tc 0.849 0 Td [(ming r)18(esults comparing)]TJ /TT0 1 Tf 10.784 0 Td (read/write)Tj /T1_1 1 Tf 6.25 0 Td (versus)Tj /TT0 1 Tf 3.14 0 Td (mmap/memcpy)Tj /T1_1 1 Tf 9.997 0 0 9.997 147.5553 298.5104 Tm [(For )-44(both )-44(Linux )-44(3.2.0 )-44(and )-44(Solaris )-44(10, )-44(the )-44(total )-44(CPU )-44(time )-44(\(user)]TJ /TT1 1 Tf 27.105 0 Td (+)Tj /T1_1 1 Tf 0.716 0 Td [(system\) )-44(is )-44(almost )-44(the)]TJ -29.62 -1.2 Td [(same )-166(for )-166(both )-166(appr)17(oaches. )-416(On)-416(Solaris, )-166(copying )-166(using)]TJ /TT0 1 Tf 25.073 0 Td (mmap)Tj /T1_1 1 Tf 2.816 0 Td (and)Tj /TT0 1 Tf 2.109 0 Td (memcpy)Tj /T1_1 1 Tf 4.016 0 Td [(takes )-166(mor)18(e)]TJ -34.014 -1.2 Td [(user )-159(time )-159(but )-159(less )-159(system )-159(time )-159(than )-159(copying )-159(using)]TJ /TT0 1 Tf 23.754 0 Td (read)Tj /T1_1 1 Tf 2.809 0 Td (and)Tj /TT0 1 Tf 2.102 0 Td (write)Tj /T1_1 1 Tf 0.659 Tc (.O)Tj 0.409 Tc 4.695 0 Td (nL)Tj 0 Tc 1.602 0 Td [(inux, )-159(the)]TJ -0.018 Tc -34.962 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sults )-86(ar)]TJ 0.336 Tc 3.281 0 Td (es)Tj 0 Tc 1.239 0 Td [(imilar )-86(for )-86(the )-86(user )-86(time, )-86(but )-86(the )-86(system )-86(time )-86(for )-86(using)]TJ /TT0 1 Tf 24.808 0 Td (read)Tj /T1_1 1 Tf 2.736 0 Td (and)Tj /TT0 1 Tf 2.029 0 Td (write)Tj /T1_1 1 Tf 3.336 0 Td (is)Tj -38.285 -1.2 Td [(slightly )-72(better )-72(than )-72(using)]TJ /TT0 1 Tf 11.609 0 Td (mmap)Tj /T1_1 1 Tf 2.722 0 Td (and)Tj /TT0 1 Tf 2.015 0 Td (memcpy)Tj /T1_1 1 Tf 0.5719 Tc (.T)Tj 0 Tc 5.035 0 Td [(he )-72(two )-72(versions )-72(do )-72(the )-72(same )-72(work, )-72(but)]TJ -21.38 -1.2 Td [(they go about it dif)18(fer)18(ently)111(.)]TJ 1.8 -1.2 Td [(The )-112(major )-112(dif)17(fer)18(ence )-112(is )-112(that )-112(with)]TJ /TT0 1 Tf 15.279 0 Td (read)Tj /T1_1 1 Tf 2.762 0 Td (and)Tj /TT0 1 Tf 2.055 0 Td (write)Tj /T1_1 1 Tf [(,)-362(we)-362(e)-1(xecute )-112(a )-112(lot )-112(mor)]TJ 0.3624 Tc 13.17 0 Td (es)Tj 0 Tc 1.265 0 Td (ystem)Tj -36.332 -1.2 Td [(calls )-130(and )-130(do )-130(mor)]TJ 0.3802 Tc 7.747 0 Td (ec)Tj 0 Tc 1.303 0 Td [(opying )-130(than )-130(with)]TJ /TT0 1 Tf 8.296 0 Td (mmap)Tj /T1_1 1 Tf 2.78 0 Td (and)Tj /TT0 1 Tf 2.073 0 Td (memcpy)Tj /T1_1 1 Tf 0.6302 Tc (.W)Tj 0 Tc 5.425 0 Td (ith)Tj /TT0 1 Tf 1.579 0 Td (read)Tj /T1_1 1 Tf 2.78 0 Td (and)Tj /TT0 1 Tf 2.073 0 Td (write)Tj /T1_1 1 Tf 0.3803 Tc (,w)Tj 0 Tc 4.464 0 Td (e)Tj -38.521 -1.2 Td [(copy )-43(the )-43(data )-43(fr)18(om )-43(the )-43(kernel\325s )-43(buf)17(fer )-43(to )-43(the )-43(application\325s )-43(buf)18(fer )-43(\()]TJ /TT0 1 Tf (read)Tj /T1_1 1 Tf [(\), )-43(and )-43(then )-43(copy)]TJ T* [(the )-132(data )-132(fr)18(om )-132(the )-132(application\325s )-132(buf)18(fer )-132(to )-132(the )-132(kernel\325s )-132(buf)14(fer )-133(\()]TJ /TT0 1 Tf (write)Tj /T1_1 1 Tf [(\). )-383(W)55(ith)]TJ /TT0 1 Tf 34.524 0 Td (mmap)Tj /T1_1 1 Tf 2.783 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (memcpy)Tj /T1_1 1 Tf [(,)-415(we)-415(copy )-165(the )-165(data )-165(dir)18(ectly )-165(fr)18(om )-165(one )-165(kernel )-165(buf)18(fer )-165(mapped )-165(into )-165(our )-165(addr)18(ess)]TJ -0 -1.2 Td [(space )-6(into )-6(another )-6(kernel )-6(buf)17(fer )-6(mapped )-6(into )-6(our )-6(addr)18(ess )-6(space.)-506(This )-6(copying )-6(occurs )-6(as)]TJ 0.3816 Tc T* (ar)Tj 0 Tc 1.259 0 Td [(esult )-132(of )-132(page )-132(fault )-132(handling )-132(when )-132(we )-132(r)21(efer)18(ence )-131(memory )-131(pages )-131(that )-131(don\325t )-131(yet )-131(exist)]TJ -1.259 -1.2 Td [(\(ther)18(e)-270(is)-270(o)1(ne )-20(fault )-20(per )-20(page )-20(r)18(ead )-20(and )-20(one )-20(fault )-20(per )-20(page )-20(written\).)-516(If )-20(the )-20(over)18(head )-20(for )-20(the)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47139 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (522)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.16 Td [(In )-417(Section )-417(20.8, )-417(in )-417(the )-417(function)]TJ /TT1 1 Tf 16.08 0 Td (_db_writeidx)Tj /T1_1 1 Tf [(,)-667(we)-667(need )-417(to )-417(write )-417(two )-417(buf)18(fers)]TJ -16.08 -1.2 Td [(consecutively )-30(to )-30(a )-30(\336le.)-530(The )-30(second )-30(buf)18(fer )-30(to )-30(output )-30(is )-30(an )-30(ar)18(gument )-30(passed )-30(by )-30(the )-30(caller)80(,)]TJ 0 -1.2 TD [(and )-15(the )-15(\336rst )-15(buf)18(fer )-15(is )-15(one )-15(we )-15(cr)20(eate, )-15(containing )-15(the )-15(length )-15(of )-15(the )-15(second )-15(buf)18(fer )-15(and )-15(a )-15(\336le)]TJ T* [(of)18(fset of other information in the \336le.)-500(Ther)]TJ 0.25 Tc 18.841 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(t)]TJ 0 Tc 1.432 0 Td [(hr)18(ee ways we can do this.)]TJ -19.702 -1.8 Td [(1. )-633(Call)]TJ /TT1 1 Tf 3.674 0 Td (write)Tj /T1_1 1 Tf 3.25 0 Td [(twice, once for each buf)18(fer)74(.)]TJ -6.924 -1.6 Td [(2. )-633(Allocate)]TJ 0.3682 Tc 5.656 0 Td (ab)Tj 0 Tc 1.421 0 Td [(uf)18(fer )-118(of )-118(our )-118(own )-118(that )-118(is )-118(lar)17(ge )-118(enough )-118(to )-118(contain )-118(both )-118(buf)18(fers, )-118(and)]TJ -5.444 -1.2 Td [(copy both into the new buf)18(fer)]TJ 0.5 Tc 13.035 0 Td (.W)Tj 0.25 Tc 1.658 0 Td (et)Tj 0 Tc 1.055 0 Td (hen call)Tj /TT1 1 Tf 3.669 0 Td (write)Tj /T1_1 1 Tf 3.25 0 Td [(once for this new buf)18(fer)74(.)]TJ -24.3 -1.6 Td [(3. )-633(Call)]TJ /TT1 1 Tf 3.674 0 Td (writev)Tj /T1_1 1 Tf 3.85 0 Td [(to output both buf)18(fers.)]TJ -9.324 -1.8 Td [(The )-10(solution )-10(we )-10(use )-10(in )-10(Section )-10(20.8 )-10(is )-10(to )-10(use)]TJ /TT1 1 Tf 19.616 0 Td (writev)Tj /T1_1 1 Tf 0.2605 Tc (,b)Tj 0 Tc 4.664 0 Td [(ut )-10(it\325s )-10(instr)7(uctive )-11(to )-11(compar)19(e)-261(it)-261(t)1(o)]TJ -24.28 -1.2 Td (the other two solutions.)Tj 1.8 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td [(4.23 shows the r)18(esults fr)18(om the thr)18(ee methods just described.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1578.25 4862.25 cm 0 0 m 3336 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 295.2086 478.1426 Tm (Linux)Tj 2.853 0.04 Td (\()Tj 0.333 -0.04 Td (Intel x86)Tj 3.781 0.04 Td (\))Tj 6.229 -0.04 Td (Mac OS X)Tj 4.618 0.04 Td (\()Tj 0.333 -0.04 Td (Intel x86)Tj 3.781 0.04 Td (\))Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2681.25 4742.25 cm 0 0 m 2233 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 278.5459 466.1161 Tm [(User )-1808(System)-1824(Clock )-2132(User)-2058(System )-1573(Clock)]TJ -10.582 0.75 Td (Operation)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1578.25 4622.25 cm 0 0 m 3336 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1578.25 4602.25 cm 0 0 m 3336 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 161.7692 452.0915 Tm (two)Tj /TT1 1 Tf 1.956 0 Td (write)Tj /T1_1 1 Tf 9.3815 Tc (s0)Tj 0 Tc 13.306 0 Td [(.06 )-2693(2.04 )-2693(2.13 )-2693(0.85 )-2693(8.33)-2693(13.83)]TJ -15.262 -1.25 Td [(buf)18(fer copy)]TJ 0.25 Tc 4.964 0 Td (,t)Tj 0 Tc 0.826 0 Td (hen one)Tj /TT1 1 Tf 3.75 0 Td (write)Tj /T1_1 1 Tf 5.221 0 Td [(0.03 )-2693(1.13 )-2693(1.16 )-2693(0.70 )-2693(4.87)-3193(9.25)]TJ -14.762 -1.25 Td (one)Tj /TT1 1 Tf 1.857 0 Td (writev)Tj /T1_1 1 Tf 12.905 0 Td [(0.04 )-2693(1.21 )-2693(1.26 )-2693(0.43 )-2693(5.34)-3193(9.24)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1578.25 4282.25 cm 0 0 m 3336 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4558.25 4282.25 cm 0 0 m 0 460 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4183.25 4282.25 cm 0 0 m 0 460 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3807.25 4282.25 cm 0 0 m 0 580 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3432.25 4282.25 cm 0 0 m 0 460 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3056.25 4282.25 cm 0 0 m 0 460 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2681.25 4282.25 cm 0 0 m 0 580 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4914.25 4282.25 cm 0 0 m 0 580 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1578.25 4282.25 cm 0 0 m 0 580 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 200.6638 410.077 Tm (Figure 14.23)Tj /T1_1 1 Tf -0.055 Tc 6.195 0 Td (Ti)Tj 0 Tc 0.849 0 Td [(ming r)18(esults comparing)]TJ /TT1 1 Tf 10.784 0 Td (writev)Tj /T1_1 1 Tf 3.85 0 Td (and other techniques)Tj 9.997 0 0 9.997 129.5618 383.6849 Tm [(The )-68(test )-68(pr)17(ogram )-68(that )-68(we )-68(measur)18(ed )-68(output )-68(a )-68(100)]TJ 22.041 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-68(header )-68(followed )-68(by )-68(200 )-68(bytes )-68(of)]TJ -22.374 -1.2 Td [(data. )-304(This)-304(was )-54(done )-54(1,048,576 )-54(times, )-54(generating )-54(a )-54(300-megabyte )-54(\336le.)-556(The )-54(test )-54(pr)17(ogram)]TJ -0 -1.2 Td [(has )-55(thr)18(ee )-55(separate )-55(cases)]TJ 0.0833 Tc 10.721 0 Td (\321o)Tj 0 Tc 1.629 0 Td [(ne )-55(for )-55(each )-55(of )-55(the )-55(techniques )-55(measur)20(ed )-54(in )-54(Figur)]TJ 0.3045 Tc 21.425 0 Td (e1)Tj 0 Tc 1.284 0 Td [(4.23. )-304(W)92(e)]TJ -35.059 -1.2 Td (used)Tj /TT1 1 Tf 2.544 0 Td (times)Tj /T1_1 1 Tf 3.427 0 Td [(\(Section )-177(8.17\) )-177(to )-177(obtain )-177(the )-177(user )-177(CPU )-177(time, )-177(system )-177(CPU )-177(time, )-177(and )-177(wall)]TJ -5.97 -1.2 Td (clock time befor)Tj 0.25 Tc 7.048 0 Td (ea)Tj 0 Tc 1.229 0 Td [(nd after the writes.)-500(All thr)18(ee times ar)]TJ 0.25 Tc 16.495 0 Td (es)Tj 0 Tc 1.153 0 Td (hown in seconds.)Tj -24.125 -1.2 Td [(As )-125(we )-125(expect, )-125(the )-125(system )-125(time )-125(incr)18(eases )-125(when )-125(we )-125(call)]TJ /TT1 1 Tf 25.137 0 Td (write)Tj /T1_1 1 Tf 3.375 0 Td [(twice, )-125(compar)18(ed )-125(to)]TJ -30.312 -1.2 Td (calling either)Tj /TT1 1 Tf 6.007 0 Td (write)Tj /T1_1 1 Tf 3.25 0 Td (or)Tj /TT1 1 Tf 1.191 0 Td (writev)Tj /T1_1 1 Tf 3.85 0 Td [(once. )-250(This)-250(corr)18(elates with the r)18(esults in Figur)]TJ 0.25 Tc 20.072 0 Td (e3)Tj 0 Tc 1.229 0 Td (.6.)Tj -33.799 -1.2 Td [(Next, )-3(note )-3(that )-3(the )-3(sum )-3(of )-3(the )-3(CPU )-3(times )-3(\(user )-3(plus )-3(system\) )-3(is )-3(slightly )-3(less )-3(when )-3(we)]TJ -1.8 -1.2 Td [(do )-17(a )-17(buf)17(fer )-17(copy )-17(followed )-17(by )-17(a )-17(single)]TJ /TT1 1 Tf 16.784 0 Td (write)Tj /T1_1 1 Tf 3.267 0 Td [(compar)18(ed )-17(to )-17(a )-17(single )-17(call )-17(to)]TJ /TT1 1 Tf 12.438 0 Td (writev)Tj /T1_1 1 Tf 0.5173 Tc (.W)Tj 0 Tc 5.312 0 Td (ith)Tj -37.801 -1.2 Td [(the )-148(single)]TJ /TT1 1 Tf 4.807 0 Td (write)Tj /T1_1 1 Tf [(,)-398(we)-398(c)-1(opy )-148(the )-148(buf)18(fers )-148(to )-148(a )-148(staging )-148(buf)16(fer )-148(at )-148(user )-148(level, )-148(and )-148(then )-148(the)]TJ -4.807 -1.2 Td [(kernel )-47(will )-47(copy )-47(the )-47(data )-47(to )-47(its )-47(internal )-47(buf)18(fers )-47(when )-47(we )-47(call)]TJ /TT1 1 Tf 27.302 0 Td (write)Tj /T1_1 1 Tf 0.547 Tc (.W)Tj 0 Tc 4.742 0 Td (ith)Tj /TT1 1 Tf 1.496 0 Td (writev)Tj /T1_1 1 Tf 0.297 Tc (,w)Tj 0 Tc 4.981 0 Td (e)Tj -38.521 -1.2 Td [(should )-59(do )-59(less )-59(copying, )-59(because )-59(the )-59(kernel )-59(only )-59(needs )-59(to )-59(copy )-59(the )-59(data )-59(dir)17(ectly )-59(into )-59(its)]TJ T* [(staging )-285(buf)18(fers. )-535(The)-535(\336xed )-285(cost )-285(of )-285(using)]TJ /TT1 1 Tf 19.543 0 Td (writev)Tj /T1_1 1 Tf 4.135 0 Td [(for )-285(such )-285(small )-285(amounts )-285(of )-285(data,)]TJ -23.678 -1.2 Td [(however)74(,)-309(is)-309(g)]TJ -0.018 Tc (re)Tj 0 Tc 6.801 0 Td [(ater )-59(than )-59(the )-59(bene\336t.)-559(As )-59(the )-59(amount )-59(of )-59(data )-59(we )-59(need )-59(to )-59(copy )-59(incr)15(eases,)]TJ -6.801 -1.2 Td [(the )-206(mor)]TJ 0.4562 Tc 3.649 0 Td (ee)Tj 0 Tc 1.414 0 Td [(xpensive )-206(it )-206(will )-206(be )-206(to )-206(copy )-206(the )-206(buf)18(fers )-206(in )-206(our )-206(pr)18(ogram, )-206(and )-206(the)]TJ /TT1 1 Tf 30.337 0 Td (writev)Tj /T1_1 1 Tf -35.4 -1.2 Td (alternative will be mor)Tj 0.25 Tc 10.029 0 Td (ea)Tj 0 Tc 1.229 0 Td (ttractive.)Tj 7.9976 0 0 7.9976 183.5464 186.1441 Tm [(Don\325t )-8(infer )-8(too )-8(much )-8(about )-8(the )-8(r)18(elative )-8(performance )-8(of )-8(Linux )-8(and )-8(Mac )-8(OS )-8(X )-8(fr)18(om )-8(the )-8(numbers)]TJ 0 -1.25 TD [(shown )-103(in )-103(Figur)]TJ 0.3534 Tc 6.931 0 Td (e1)Tj 0 Tc 1.332 0 Td [(4.23. )-353(The)-354(two )-103(computers )-103(wer)]TJ 0.3534 Tc 13.435 0 Td (ev)Tj 0 Tc 1.397 0 Td [(ery )-103(dif)18(fer)18(ent: )-103(they )-103(had )-103(dif)17(fer)18(ent )-103(pr)18(ocessor)]TJ -23.095 -1.25 Td [(generations, )-83(dif)18(fer)18(ent )-83(amounts )-83(of )-83(RAM, )-83(and )-83(disks )-83(with )-83(dif)18(fer)18(ent )-83(speeds.)]TJ -0.092 Tc 33.261 0 Td [(To )-267(d)]TJ 0 Tc 2.011 0 Td [(o)-333(an)-333(apples-to-)]TJ -35.272 -1.25 Td [(apples )-52(comparison )-52(of )-52(one )-52(operating )-52(system )-52(to )-52(another)]TJ 0.3021 Tc 24.285 0 Td (,w)Tj 0.302 Tc 1.386 0 Td (en)Tj 0 Tc 1.363 0 Td [(eed )-52(to )-52(use )-52(the )-52(same )-52(har)18(dwar)]TJ 0.302 Tc 12.911 0 Td (ef)Tj 0 Tc 1.114 0 Td (or)Tj -41.059 -1.25 Td (each operating system.)Tj ET q 0.09997 0 0 0.09997 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1322.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47140 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.5)]TJ 35.16 0 Td [(Asynchr)18(onous )-250(I/O)]TJ /T1_1 1 Tf 10.673 0 Td (517)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (if \(argc != 3\))Tj 2.4 -1.189 Td (err_quit\("usage: rot13 infile outfile"\);)Tj -2.4 -1.189 Td (if \(\(ifd = open\(argv[1], O_RDONLY\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("can\325t open %s", argv[1]\);)Tj -2.4 -1.189 Td (if \(\(ofd = open\(argv[2], O_RDWR|O_CREAT|O_TRUNC, FILE_MODE\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("can\325t create %s", argv[2]\);)Tj -2.4 -2.14 Td (while \(\(n = read\(ifd, buf, BSZ\)\) > 0\) {)Tj 2.4 -1.189 Td (for \(i = 0; i < n; i++\))Tj 2.4 -1.189 Td (buf[i] = translate\(buf[i]\);)Tj -2.4 -1.189 Td (if \(\(nw = write\(ofd, buf, n\)\) != n\) {)Tj 2.4 -1.189 Td (if \(nw < 0\))Tj 2.4 -1.189 Td (err_sys\("write failed"\);)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (err_quit\("short write \(%d/%d\)", nw, n\);)Tj -4.8 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (fsync\(ofd\);)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4558.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 248.7861 439.7262 Tm (Figure 14.20)Tj /T1_0 1 Tf -0.09 Tc 6.195 0 Td (Tr)Tj 0 Tc 0.918 0 Td (anslate a \336le using ROT)Tj 10.5 0.09 Td (-)Tj 0.333 -0.09 Td (13)Tj 9.9988 0 0 9.9988 147.5827 415.7291 Tm [(The )-59(I/O )-59(portion )-59(of )-59(the )-59(pr)18(ogram )-59(is )-59(straightforwar)18(d: )-59(we )-59(r)18(ead )-59(a )-59(block )-59(fr)18(om )-59(the )-59(input)]TJ -1.8 -1.2 Td [(\336le, )-68(translate )-68(it, )-68(and )-68(then )-68(write )-68(the )-68(block )-68(to )-68(the )-68(output )-68(\336le.)]TJ -0.092 Tc 27.033 0 Td [(We )-252(r)]TJ 0 Tc 2.082 0 Td [(epeat )-68(this )-68(until )-68(we )-68(hit)]TJ -29.115 -1.2 Td [(the )-206(end )-206(of )-206(\336le )-206(and)]TJ /TT0 1 Tf 9.288 0 Td (read)Tj /T1_0 1 Tf -0.018 Tc 2.856 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-206(zer)18(o. )-456(The)-457(pr)18(ogram )-206(in )-206(Figur)]TJ 0.4563 Tc 15.802 0 Td (e1)Tj 0 Tc 1.435 0 Td [(4.21 )-206(shows )-206(how )-206(to)]TJ -30.237 -1.2 Td [(perform the same task using the equivalent asynchr)18(onous I/O functions.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3726.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 363.0126 Tm (#include "apue.h")Tj T* (#include )Tj T* (#include )Tj T* (#include )Tj T* (#include )Tj 0 -2.14 TD (#define BSZ 4096)Tj 0 -1.189 TD (#define NBUF 8)Tj 0 -2.14 TD (enum rwop {)Tj 2.4 -1.189 Td (UNUSED = 0,)Tj 0 -1.189 TD (READ_PENDING = 1,)Tj 0 -1.189 TD (WRITE_PENDING = 2)Tj -2.4 -1.189 Td (};)Tj 0 -2.14 TD (struct buf {)Tj 2.4 -1.189 Td [(enum rwop)-3000(op;)]TJ 0 -1.189 TD (int )Tj 8.4 0 Td (last;)Tj -8.4 -1.189 Td [(struct aiocb)-1200(aiocb;)]TJ T* (unsigned char data[BSZ];)Tj -2.4 -1.189 Td (};)Tj 0 -2.14 TD (struct buf bufs[NBUF];)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47141 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.5)]TJ 35.16 0 Td [(Asynchr)18(onous )-250(I/O)]TJ /T1_1 1 Tf 10.673 0 Td (513)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -1.902 TD (int aio_fsync\(int)Tj /T1_2 1 Tf 10.8 0 Td (op)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 2.744 0 Td (truct aiocb *)Tj /T1_2 1 Tf (aiocb)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 13.307 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6195.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 605.9873 Tm (The)Tj /TT0 1 Tf 2.002 0 Td (aio_fildes)Tj /T1_0 1 Tf 6.328 0 Td [(\336eld )-78(in )-78(the )-78(AIO )-78(contr)18(ol )-78(block )-78(indicates )-78(the )-78(\336le )-78(whose )-78(asynchr)18(onous)]TJ -8.33 -1.2 Td [(writes )-103(ar)]TJ 0.3528 Tc 3.979 0 Td (es)Tj 0 Tc 1.256 0 Td [(ynched. )-353(If)-353(the)]TJ /T1_2 1 Tf 6.869 0 Td (op)Tj /T1_0 1 Tf 1.297 0 Td [(ar)18(gument )-103(is )-103(set )-103(to)]TJ /TT0 1 Tf 8.534 0 Td (O_DSYNC)Tj /T1_0 1 Tf 0.3529 Tc (,t)Tj 0 Tc 5.129 0 Td [(hen )-103(the )-103(operation )-103(behaves)]TJ -27.063 -1.2 Td [(like )-10(a )-10(call )-10(to)]TJ /TT0 1 Tf 5.553 0 Td (fdatasync)Tj /T1_0 1 Tf 0.5096 Tc (.O)Tj 0 Tc 6.946 0 Td [(therwise, )-10(if)]TJ /T1_2 1 Tf 5.203 0 Td (op)Tj /T1_0 1 Tf 1.204 0 Td [(is )-10(set )-10(to)]TJ /TT0 1 Tf 3.595 0 Td (O_SYNC)Tj /T1_0 1 Tf 0.2595 Tc (,t)Tj 0 Tc 4.436 0 Td [(he )-9(operation )-9(behaves )-9(like )-9(a)]TJ -26.936 -1.2 Td (call to)Tj /TT0 1 Tf 2.898 0 Td (fsync)Tj /T1_0 1 Tf (.)Tj -1.098 -1.2 Td [(Like )-124(the)]TJ /TT0 1 Tf 4.071 0 Td (aio_read)Tj /T1_0 1 Tf 5.174 0 Td (and)Tj /TT0 1 Tf 2.067 0 Td (aio_write)Tj /T1_0 1 Tf 5.774 0 Td [(functions, )-124(the)]TJ /TT0 1 Tf 6.515 0 Td (aio_fsync)Tj /T1_0 1 Tf 5.774 0 Td [(operation )-124(r)18(eturns)]TJ -31.174 -1.2 Td [(when )-219(the )-219(synch )-219(is )-219(scheduled.)-719(The )-219(data )-219(won\325t )-219(be )-219(persistent )-219(until )-219(the )-219(asynchr)19(onous)]TJ 0 -1.2 TD [(synch )-77(completes.)-577(The )-77(AIO )-77(contr)18(ol )-77(block )-77(contr)18(ols )-77(how )-77(we )-77(ar)]TJ 0.3267 Tc 27.266 0 Td (en)Tj 0 Tc 1.388 0 Td [(oti\336ed, )-77(just )-77(as )-77(with )-77(the)]TJ /TT0 1 Tf -28.654 -1.2 Td (aio_read)Tj /T1_0 1 Tf 5.05 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (aio_write)Tj /T1_0 1 Tf 5.65 0 Td (functions.)Tj -0.092 Tc -10.843 -1.2 Td [(To )-496(d)]TJ 0 Tc 2.24 0 Td [(etermine )-312(the )-312(completion )-312(status )-312(of )-312(an )-312(asynchr)18(onous )-312(r)18(ead, )-312(write, )-312(or )-312(synch)]TJ -4.04 -1.2 Td (operation, we need to call the)Tj /TT0 1 Tf 13.265 0 Td (aio_error)Tj /T1_0 1 Tf 5.65 0 Td (function.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5815 481.3022 Tm (#include )Tj 0 -1.902 TD (int aio_error\(const struct aiocb *)Tj /T1_2 1 Tf (aiocb)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 28.788 -1.902 Td (Returns: \(see following\))Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4426.25 cm 0 0 m 0 477 l 3900 477 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 429.0428 Tm [(The r)18(eturn value tells us one of four things.)]TJ /TT0 1 Tf 1.8 -1.8 Td (0)Tj /T1_0 1 Tf 7.483 0 Td [(The )-155(asynchr)18(onous )-155(operation )-155(completed )-155(successfully)]TJ 0.6552 Tc 23.591 0 Td (.W)Tj 0.4052 Tc 1.813 0 Td (en)Tj 0 Tc 1.466 0 Td [(eed )-155(to)]TJ -26.871 -1.2 Td [(call )-81(the)]TJ /TT0 1 Tf 3.576 0 Td (aio_return)Tj /T1_0 1 Tf 6.331 0 Td [(function )-81(to )-81(obtain )-81(the )-81(r)18(eturn )-81(value )-81(fr)18(om )-81(the)]TJ -9.907 -1.2 Td (operation.)Tj /TT1 1 Tf -7.483 -1.6 Td (!)Tj /T1_0 1 Tf 6.434 Tc (1T)Tj 0 Tc 8.096 0 Td (he call to)Tj /TT0 1 Tf 4.209 0 Td (aio_error)Tj /T1_0 1 Tf 5.65 0 Td [(failed. )-250(In)-250(this case,)]TJ /TT0 1 Tf 8.644 0 Td (errno)Tj /T1_0 1 Tf 3.25 0 Td [(tells us why)111(.)]TJ /TT0 1 Tf -29.849 -1.6 Td (EINPROGRESS)Tj /T1_0 1 Tf 7.483 0 Td [(The asynchr)18(onous r)18(ead, write, or synch is still pending.)]TJ /T1_2 1 Tf -7.483 -1.6 Td [(anything )-133(else)]TJ /T1_0 1 Tf 7.616 0 Td [(Any )-133(other )-133(r)18(eturn )-133(value )-133(gives )-133(us )-133(the )-133(err)18(or )-133(code )-133(corr)18(esponding )-133(to)]TJ -0.133 -1.2 Td [(the failed asynchr)18(onous operation.)]TJ -7.483 -1.8 Td [(If )-73(the )-73(asynchr)18(onous )-73(operation )-73(succeeded, )-73(we )-73(can )-73(call )-73(the)]TJ /TT0 1 Tf 25.975 0 Td (aio_return)Tj /T1_0 1 Tf 6.323 0 Td [(function )-73(to)]TJ -34.098 -1.2 Td [(get the asynchr)18(onous operation\325s r)18(eturn value.)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.5737 280.3695 Tm (#include )Tj 0 -1.902 TD (ssize_t aio_return\(const struct aiocb *)Tj /T1_2 1 Tf (aiocb)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 28.788 -1.902 Td (Returns: \(see following\))Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2417.25 cm 0 0 m 0 477 l 3900 477 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9976 0 0 9.9976 129.5689 228.1252 Tm [(Until )-63(the )-63(asynchr)18(onous )-63(operation )-63(completes, )-63(we )-63(need )-63(to )-63(be )-63(car)19(eful )-63(to )-63(avoid )-63(calling )-63(the)]TJ /TT0 1 Tf 0 -1.2 TD (aio_return)Tj /T1_0 1 Tf 6.418 0 Td [(function. )-418(The)]TJ -0.018 Tc 6.717 0 Td (re)Tj 0 Tc 0.856 0 Td [(sults )-168(ar)]TJ 0.4181 Tc 3.363 0 Td (eu)Tj 0 Tc 1.5 0 Td [(nde\336ned )-168(until )-168(the )-168(operation )-168(completes.)]TJ -0.092 Tc 18.759 0 Td (We)Tj 0 Tc -37.613 -1.2 Td [(also )-275(need )-275(to )-275(be )-275(car)18(eful )-275(to )-275(call)]TJ /TT0 1 Tf 14.917 0 Td (aio_return)Tj /T1_0 1 Tf 6.525 0 Td [(only )-275(one )-275(time )-275(per )-275(asynchr)18(onous )-275(I/O)]TJ -21.443 -1.2 Td [(operation. )-435(Once)-436(we )-185(call )-185(this )-185(function, )-185(the )-185(operating )-185(system )-185(is )-185(fr)15(ee )-185(to )-185(deallocate )-185(the)]TJ -0.018 Tc 0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.25 Tc 1.367 0 Td (dc)Tj 0 Tc 1.305 0 Td [(ontaining the I/O operation\325s r)18(eturn value.)]TJ -1.728 -1.2 Td (The)Tj /TT0 1 Tf 1.967 0 Td (aio_return)Tj /T1_0 1 Tf 6.294 0 Td [(function )-43(will )-43(r)17(eturn)]TJ /TT1 1 Tf 9.057 0 Td (!)Tj /T1_0 1 Tf 0.2935 Tc (1a)Tj 0 Tc 1.843 0 Td [(nd )-43(set)]TJ /TT0 1 Tf 3.009 0 Td (errno)Tj /T1_0 1 Tf 3.294 0 Td (if)Tj /TT0 1 Tf 0.918 0 Td (aio_return)Tj /T1_0 1 Tf 6.294 0 Td [(itself )-43(fails.)]TJ -34.474 -1.2 Td [(Otherwise, )-78(it )-78(will )-78(r)18(eturn )-78(the )-78(r)18(esults )-78(of )-78(the )-78(asynchr)18(onous )-78(operation.)-578(In )-78(this )-78(case, )-78(it )-78(will)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(turn )-3(whatever)]TJ /TT0 1 Tf 6.571 0 Td (read)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 2.903 0 Td (write)Tj /T1_0 1 Tf 0.2526 Tc (,o)Tj 0 Tc 4.049 0 Td (r)Tj /TT0 1 Tf 0.648 0 Td (fsync)Tj /T1_0 1 Tf 3.253 0 Td [(would )-3(have )-3(r)19(eturned )-3(on )-3(success )-3(if )-3(one )-3(of )-3(those)]TJ -18.279 -1.2 Td (functions had been called.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47142 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.4)]TJ 35.831 0 Td [(I/O )-250(Multiplexing)]TJ /T1_1 1 Tf 10.002 0 Td (505)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-27(r)18(eason )-27(we )-27(have )-27(to )-27(add )-27(1 )-27(to )-27(the )-27(maximum )-27(descriptor )-27(number )-27(is )-27(that )-27(descriptors)]TJ -1.8 -1.2 Td [(start )-53(at )-53(0, )-53(and )-53(the )-53(\336rst )-53(ar)18(gument )-53(is )-53(r)18(eally )-53(a )-53(count )-53(of )-53(the )-53(number )-53(of )-53(descriptors )-53(to )-53(check)]TJ 0 -1.2 TD (\(starting with descriptor 0\).)Tj /TT0 1 Tf 7.9995 0 0 7.9995 193.7884 603.2036 Tm (readset:)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2418 5942 216 216 re S Q BT /TT0 1 Tf 7.999 0 0 7.999 250.17 603.1676 Tm (1)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2634 5942 216 216 re S Q BT /TT0 1 Tf 7.9986 0 0 7.9986 271.7511 603.1314 Tm (0)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2850 5942 216 216 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 293.3296 603.0952 Tm (0)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 3066 5942 216 216 re S Q BT /TT0 1 Tf 7.9976 0 0 7.9976 314.9055 603.059 Tm (1)Tj ET q 0.9997 0 0 0.9997 0 0 cm 0.699 g 328.2 594.2 129.6 21.6 re f Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 3282 5942 1296 216 re S Q BT /TT0 1 Tf 7.9971 0 0 7.9971 191.3311 559.8384 Tm (writeset:)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2418 5510 216 216 re S Q BT /TT0 1 Tf 7.9966 0 0 7.9966 250.0949 559.8048 Tm (0)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 2634 5510 216 216 re S Q BT /TT0 1 Tf 7.9962 0 0 7.9962 271.6696 559.7712 Tm (1)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 2850 5510 216 216 re S Q BT /TT0 1 Tf 7.9957 0 0 7.9957 293.2416 559.7377 Tm (1)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 3066 5510 216 216 re S Q BT /TT0 1 Tf 7.9952 0 0 7.9952 314.8111 559.7041 Tm (0)Tj ET q 0.9994002 0 0 0.9994002 0 0 cm 0.699 g 328.2 551 129.6 21.6 re f Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 3282 5510 1296 216 re S Q BT /T1_0 1 Tf 7.9947 0 0 7.9947 245.6618 618.6316 Tm [(fd 0)-1006(fd 1)-1006(fd 2)-1006(fd 3)]TJ ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3282.25 5870.25 cm 0 0 m 0 -72 l S Q Q q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 349.8 583.4 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 3498 5834 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3282.25 5834.25 cm 0 0 m 144 0 l S Q Q BT /T1_0 1 Tf 7.9938 0 0 7.9938 349.875 581.1865 Tm (none of these bits ar)Tj 0.25 Tc 8.829 0 Td (el)Tj 0 Tc 1.02 0 Td (ooked at)Tj ET q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 328.2 547.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 3282 5474 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3282.25 5258.25 cm 0 0 m 0 144 l S Q Q BT /T1_2 1 Tf 7.9933 0 0 7.9933 307.5176 518.6042 Tm (maxfdp1)Tj /T1_0 1 Tf 0.25 Tc 3.75 0 Td (=4)Tj /T1_1 1 Tf 0 Tc -12.705 -2.605 Td (Figure 14.16)Tj /T1_0 1 Tf 6.195 -0 Td (Example descriptor sets for)Tj /TT0 1 Tf 12.32 0 Td (select)Tj /T1_0 1 Tf 9.9916 0 0 9.9916 147.4765 466.6077 Tm (Ther)Tj 0.25 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(t)]TJ 0 Tc 1.432 0 Td [(hr)18(ee possible r)18(eturn values fr)18(om)]TJ /TT0 1 Tf 14.539 0 Td (select)Tj /T1_0 1 Tf (.)Tj -19.251 -1.92 Td [(1. )-633(A)]TJ -0.018 Tc 2.956 0 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-295(value )-295(of)]TJ /TT1 1 Tf 6.857 0 Td (!)Tj /T1_0 1 Tf 0.5447 Tc (1m)Tj 0 Tc 2.477 0 Td [(eans )-295(that )-295(an )-295(err)18(or )-295(occurr)19(ed. )-545(This)-544(can )-295(happen, )-295(for)]TJ -11.512 -1.2 Td [(example, )-97(if )-97(a )-97(signal )-97(is )-97(caught )-97(befor)]TJ 0.3473 Tc 15.865 0 Td (ea)Tj 0 Tc 1.326 0 Td [(ny )-97(of )-97(the )-97(speci\336ed )-97(descriptors )-97(ar)]TJ 0.3473 Tc 14.887 0 Td (er)Tj 0 Tc 1.203 0 Td [(eady)111(.)]TJ -33.282 -1.2 Td (In this case, none of the descriptor sets will be modi\336ed.)Tj -1.633 -1.6 Td [(2. )-633(A)]TJ -0.018 Tc 2.81 0 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-149(value )-149(of )-149(0 )-149(means )-149(that )-149(no )-149(descriptors )-149(ar)]TJ 0.399 Tc 20.458 0 Td (er)Tj 0 Tc 1.255 0 Td (eady)Tj 0.649 Tc 2.035 0 Td (.T)Tj 0 Tc 1.512 0 Td [(his )-149(happens )-149(if )-149(the)]TJ -27.293 -1.2 Td [(time )-98(limit )-98(expir)18(es )-98(befor)]TJ 0.3483 Tc 10.561 0 Td (ea)Tj 0 Tc 1.327 0 Td [(ny )-98(of )-98(the )-98(descriptors )-98(ar)]TJ 0.3482 Tc 10.61 0 Td (er)Tj 0 Tc 1.204 0 Td (eady)Tj 0.5982 Tc 2.035 0 Td (.W)Tj 0 Tc 1.848 0 Td [(hen )-98(this )-98(happens,)]TJ -27.586 -1.2 Td [(all the descriptor sets will be zer)18(oed out.)]TJ -1.633 -1.6 Td [(3. )-633(A)-309(positive )-59(r)18(eturn )-59(value )-59(speci\336es )-59(the )-59(number )-59(of )-59(descriptors )-59(that )-59(ar)]TJ 0.3092 Tc 31.281 0 Td (er)Tj 0 Tc 1.165 0 Td (eady)Tj 0.5592 Tc 2.035 0 Td (.T)Tj 0 Tc 1.422 0 Td (his)Tj -34.27 -1.2 Td [(value )-285(is )-285(the )-285(sum )-285(of )-285(the )-285(descriptors )-285(r)18(eady )-285(in )-285(all )-285(thr)18(ee )-285(sets, )-285(so )-285(if )-285(the )-285(same)]TJ T* [(descriptor )-58(is )-58(r)18(eady )-58(to )-58(be )-58(r)18(ead)]TJ /T1_2 1 Tf 13.469 0 Td (and)Tj /T1_0 1 Tf 1.808 0 Td [(written, )-58(it )-58(will )-58(be )-58(counted )-58(twice )-58(in )-58(the )-58(r)18(eturn)]TJ -15.277 -1.2 Td [(value. )-756(The)-755(only )-506(bits )-506(left )-506(on )-506(in )-506(the )-506(thr)18(ee )-506(descriptor )-506(sets )-506(ar)]TJ 0.7557 Tc 30.596 0 Td (et)Tj 0 Tc 1.561 0 Td [(he )-506(bits)]TJ -32.156 -1.2 Td [(corr)18(esponding to the descriptors that ar)]TJ 0.25 Tc 17.49 0 Td (er)Tj 0 Tc 1.106 0 Td [(eady)111(.)]TJ -0.092 Tc -20.229 -2.16 Td [(We )-184(n)]TJ 0 Tc 2.219 0 Td (ow need to be mor)Tj 0.25 Tc 8.241 0 Td (es)Tj 0 Tc 1.153 0 Td [(peci\336c about what \324)37(\324r)18(eady\325)]TJ 0.25 Tc 11.667 0 Td (\325m)Tj 0 Tc 1.411 0 Td (eans.)Tj 0.883 Tc -24.691 -2.16 Td (\245A)Tj 0 Tc 2.692 0 Td [(descriptor )-175(in )-175(the )-175(r)18(ead )-175(set )-175(\()]TJ /T1_2 1 Tf -0.018 Tc 12.426 0 Td (re)Tj 0 Tc 0.76 0 Td (adfds)Tj /T1_0 1 Tf [(\))-425(is)-425(consider)18(ed )-175(r)18(eady )-175(if )-175(a)]TJ /TT0 1 Tf 14.2 0 Td (read)Tj /T1_0 1 Tf 2.825 0 Td [(fr)18(om )-175(that)]TJ -31.413 -1.2 Td (descriptor won\325t block.)Tj 0.883 Tc -1.489 -1.6 Td (\245A)Tj 0 Tc 2.685 0 Td [(descriptor )-168(in )-168(the )-168(write )-168(set )-168(\()]TJ /T1_2 1 Tf (writefds)Tj /T1_0 1 Tf [(\))-418(is)-418(consider)18(ed )-168(r)18(eady )-168(if )-168(a)]TJ /TT0 1 Tf 28.073 0 Td (write)Tj /T1_0 1 Tf 3.418 0 Td [(to )-168(that)]TJ -32.687 -1.2 Td (descriptor won\325t block.)Tj 0.883 Tc -1.489 -1.6 Td (\245A)Tj 0 Tc 2.622 0 Td [(descriptor )-105(in )-105(the )-105(exception )-105(set )-105(\()]TJ /T1_2 1 Tf 14.375 0 Td (exceptfds)Tj /T1_0 1 Tf [(\))-355(is)-355(c)-1(onsider)18(ed )-105(r)18(eady )-105(if )-105(an )-105(exception)]TJ -15.508 -1.2 Td [(condition )-334(is )-334(pending )-334(on )-334(that )-334(descriptor)]TJ 0.8337 Tc 18.855 0 Td (.C)Tj 0 Tc 1.793 0 Td [(urr)18(ently)111(,)-584(an)-584(e)1(xception )-334(condition)]TJ -20.647 -1.2 Td [(corr)18(esponds )-29(to )-29(either )-29(the )-29(arrival )-29(of )-29(out-of-band )-29(data )-29(on )-29(a )-29(network )-29(connection )-29(or)]TJ T* [(certain )-218(conditions )-218(occurring )-218(on )-218(a )-218(pseudo )-218(terminal )-218(that )-218(has )-218(been )-218(placed )-218(into)]TJ T* [(packet mode.)-500(\(Section 15.10 of Stevens)]TJ 17.46 0.04 Td ([)Tj 0.333 -0.04 Td (1990)Tj 2 0.04 Td (])Tj 0.583 -0.04 Td (describes this latter condition.\))Tj 0.883 Tc -21.865 -1.6 Td (\245F)Tj 0 Tc 2.045 0 Td [(ile )-146(descriptors )-146(for )-146(r)18(egular )-146(\336les )-146(always )-146(r)18(eturn )-146(r)18(eady )-146(for )-146(r)18(eading, )-146(writing, )-146(and)]TJ -0.556 -1.2 Td (exception conditions.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47143 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.3)]TJ 36.622 0 Td (Recor)Tj 0.5 Tc 2.514 0 Td (dL)Tj 0 Tc 1.722 0 Td (ocking)Tj /T1_1 1 Tf 4.975 0 Td (495)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Assuming )-124(that )-124(we )-124(ar)19(e)-374(at)-374(end )-124(of )-124(\336le )-124(when )-124(we )-124(perform )-124(the )-124(\336rst)]TJ /TT0 1 Tf 29.114 0 Td (write)Tj /T1_0 1 Tf 0.3737 Tc (,t)Tj 0 Tc 3.95 0 Td [(his )-124(operation)]TJ -33.063 -1.2 Td [(will )-28(extend )-28(the )-28(\336le )-28(by )-28(one )-28(byte, )-28(and )-28(that )-28(byte )-28(will )-28(be )-28(locked.)-533(The )-28(unlock )-28(operation )-28(that)]TJ 0 -1.2 TD [(follows )-124(has )-124(the )-124(ef)18(fect )-124(of )-124(r)17(emoving )-124(the )-124(locks )-124(for )-124(futur)]TJ 0.3741 Tc 24.223 0 Td (ew)Tj 0 Tc 1.687 0 Td [(rites )-124(that )-124(append )-124(data )-124(to )-124(the)]TJ -25.91 -1.2 Td [(\336le, )-92(but )-92(it )-92(leaves )-92(a )-92(lock )-92(on )-92(the )-92(last )-92(byte )-92(in )-92(the )-92(\336le.)-596(When )-92(the )-92(second )-92(write )-92(occurs, )-92(the)]TJ T* [(end )-21(of )-21(\336le )-21(is )-21(extended )-21(by )-21(one )-21(byte, )-21(but )-21(this )-21(byte )-21(is )-21(not )-21(locked.)-522(The )-21(state )-21(of )-21(the )-21(\336le )-21(locks)]TJ T* (for this sequence of steps is shown in Figur)Tj 0.25 Tc 19.019 0 Td (e1)Tj 0 Tc 1.229 0 Td (4.10.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 3606 5342 504 360 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 378.7545 560.3727 Tm (\336rst)Tj -0.082 -1.25 Td (byte)Tj -0.66 -1.25 Td (written)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3606.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3535.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3465.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3394.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3324.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3253.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3182.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3113.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3042.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2971.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2901.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2830.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2760.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2689.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2619.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2548.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2478.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2407.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2336.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2267.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2196.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2125.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2055.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1984.25 5702.25 cm 0 0 m -36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 5702.25 cm 0 0 m -36 0 l -36 -36 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 5637.25 cm 0 0 m 0 -36 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 5572.25 cm 0 0 m 0 -36 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 5507.25 cm 0 0 m 0 -36 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 5443.25 cm 0 0 m 0 -36 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 5378.25 cm 0 0 m 0 -36 l 36 -36 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1948.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2019.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2089.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2160.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2231.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2301.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2371.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2442.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2512.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2583.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2653.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2724.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2794.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2865.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2935.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3006.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3077.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3146.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3217.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3288.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3358.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3429.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3499.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3570.25 5342.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3606.25 5774.25 cm 0 0 m 0 144 l S Q Q q 0.99982 0 0 0.99982 0 0 cm q 1 0 0 1 360.6 584.6 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099982 0 0 0.099982 0 0 cm 1 j 1 J q 1 0 0 1 3606 5846 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 425.4 584.6 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 4254 5846 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3678.25 5846.25 cm 0 0 m 504 0 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 381.1776 587.6637 Tm (locked)Tj -19.557 -4.675 Td (state of \336le after \336rst)Tj /TT0 1 Tf 9.342 0 Td (write)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 3606 4550 504 360 re S Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 378.6637 481.0668 Tm (\336rst)Tj -0.082 -1.25 Td (byte)Tj -0.66 -1.25 Td (written)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 4110 4550 504 360 re S Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 423.678 481.0379 Tm (second)Tj 0.586 -1.25 Td (byte)Tj -0.66 -1.25 Td (written)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3606.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3535.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3465.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3394.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3324.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3253.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3182.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3113.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3042.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2971.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2901.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2830.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2760.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2689.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2619.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2548.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2478.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2407.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2336.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2267.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2196.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2125.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2055.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1984.25 4910.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 4910.25 cm 0 0 m -36 0 l -36 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4845.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4780.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4715.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4651.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4586.25 cm 0 0 m 0 -36 l 36 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1948.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2019.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2089.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2160.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2231.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2301.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2371.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2442.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2512.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2583.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2653.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2724.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2794.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2865.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2935.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3006.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3077.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3146.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3217.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3288.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3358.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3429.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3499.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3570.25 4550.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3606.25 4982.25 cm 0 0 m 0 144 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 4982.25 cm 0 0 m 0 144 l S Q Q q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 360.6 505.4 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3606 5054 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 411 505.4 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 4110 5054 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3678.25 5054.25 cm 0 0 m 360 0 l S Q Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 373.8676 508.3349 Tm (locked)Tj -19.326 -4.675 Td (state of \336le after second)Tj /TT0 1 Tf 10.678 0 Td (write)Tj /T1_1 1 Tf -5.862 -5.18 Td (Figure 14.10)Tj /T1_0 1 Tf 6.195 0 Td (File range lock diagram)Tj 9.994 0 0 9.994 147.5119 401.9585 Tm [(When )-125(a )-125(portion )-125(of )-125(a )-125(\336le )-125(is )-125(locked, )-125(the )-125(kernel )-125(converts )-125(the )-125(of)18(fset )-125(speci\336ed )-125(into )-125(an)]TJ -1.8 -1.2 Td [(absolute )-46(\336le )-46(of)17(fset. )-296(In)-297(addition )-46(to )-46(specifying )-46(an )-46(absolute )-46(\336le )-46(of)18(fset )-46(\()]TJ /TT0 1 Tf 30.321 0 Td (SEEK_SET)Tj /T1_0 1 Tf (\),)Tj /TT0 1 Tf 5.679 0 Td (fcntl)Tj /T1_0 1 Tf -36 -1.2 Td [(allows )-53(us )-53(to )-53(specify )-53(this )-53(of)18(fset )-53(r)18(elative )-53(to )-53(a )-53(point )-53(in )-53(the )-53(\336le: )-53(curr)18(ent )-53(\()]TJ /TT0 1 Tf 30.648 0 Td (SEEK_CUR)Tj /T1_0 1 Tf [(\))-303(or)-303(end)]TJ -30.648 -1.2 Td [(of )-27(\336le )-27(\()]TJ /TT0 1 Tf 3.142 0 Td (SEEK_END)Tj /T1_0 1 Tf [(\). )-277(The)-278(kernel )-27(needs )-27(to )-27(r)18(emember )-27(the )-27(locks )-27(independent )-27(of )-27(the )-27(curr)14(ent)]TJ -3.142 -1.2 Td [(\336le )-210(of)18(fset )-210(or )-210(end )-210(of )-210(\336le, )-210(because )-210(the )-210(curr)20(ent )-210(of)18(fset )-210(and )-210(end )-210(of )-210(\336le )-210(can )-210(change, )-210(and)]TJ T* [(changes to these attributes shouldn\325t af)18(fect the state of existing locks.)]TJ 1.8 -1.2 Td [(If )-56(we )-56(intended )-56(to )-56(r)18(emove )-56(the )-56(lock )-56(covering )-56(the )-56(byte )-56(we )-56(wr)18(ote )-56(in )-56(the )-56(\336rst )-56(write, )-56(we)]TJ -1.8 -1.2 Td [(could )-15(have )-15(speci\336ed )-15(the )-15(length )-15(as)]TJ /TT1 1 Tf 15.273 0 Td (!)Tj /T1_0 1 Tf [(1. )-265(Negative)-265(length )-15(values )-15(r)18(epr)18(esent )-15(the )-15(bytes )-15(befor)17(e)]TJ -15.273 -1.2 Td [(the speci\336ed of)18(fset.)]TJ /TT2 1 Tf -3.6 -2.88 Td [(Ad)15(visor )268(y)-278(ver)15(sus Mandator)]TJ 0.278 Tc 12.549 0 Td (yL)Tj 0 Tc 1.445 0 Td [(oc)20(king)]TJ /T1_0 1 Tf -10.394 -2.4 Td [(Consider )-58(a )-58(library )-58(of )-58(database )-58(access )-58(r)18(outines. )-308(If)-308(all )-58(the )-58(functions )-58(in )-58(the )-58(library )-58(handle)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.3925 Tc 1.367 0 Td (dl)Tj 0 Tc 1.294 0 Td [(ocking )-142(in )-142(a )-142(consistent )-142(way)]TJ 0.3925 Tc 12.121 0 Td (,t)Tj 0 Tc 0.969 0 Td [(hen )-142(we )-142(say )-142(that )-142(any )-142(set )-142(of )-142(pr)15(ocesses )-143(using )-143(these)]TJ -16.607 -1.2 Td [(functions )-96(to )-96(access )-96(a )-96(database )-96(ar)18(e)]TJ /T1_2 1 Tf 15.543 0 Td [(cooperating )-96(pr)18(ocesses)]TJ /T1_0 1 Tf 0.5959 Tc (.I)Tj 0 Tc 9.88 0 Td [(t)-346(is)-346(feasible )-96(for )-96(these )-96(database)]TJ -25.423 -1.2 Td [(access )-93(functions )-93(to )-93(use )-93(advisory )-93(locking )-93(if )-93(they )-93(ar)]TJ 0.3427 Tc 22.564 0 Td (et)Tj 0 Tc 1.148 0 Td [(he )-93(only )-93(ones )-93(being )-93(used )-93(to )-93(access)]TJ -23.711 -1.2 Td [(the )-113(database.)-613(But )-113(advisory )-113(locking )-113(doesn\325t )-113(pr)18(event )-113(some )-113(other )-113(pr)22(ocess )-112(that )-112(has )-112(write)]TJ T* [(permission )-175(for )-175(the )-175(database )-175(\336le )-175(fr)18(om )-175(writing )-175(whatever )-175(it )-175(wants )-175(to )-175(the )-175(database )-175(\336le.)]TJ T* [(This )-21(r)18(ogue )-21(pr)18(ocess )-21(would )-21(be )-21(an )-21(uncooperating )-21(pr)18(ocess, )-21(since )-21(it\325s )-21(not )-21(using )-21(the )-21(accepted)]TJ T* (method \(the library of database functions\) to access the database.)Tj 1.8 -1.2 Td [(Mandatory )-184(locking )-184(causes )-184(the )-184(kernel )-184(to )-184(check )-184(every)]TJ /TT0 1 Tf 24.597 0 Td (open)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.084 0 Td (read)Tj /T1_0 1 Tf 0.4344 Tc (,a)Tj 0 Tc 3.584 0 Td (nd)Tj /TT0 1 Tf 1.627 0 Td (write)Tj /T1_0 1 Tf 3.434 0 Td (to)Tj -38.128 -1.2 Td [(verify )-398(that )-398(the )-398(calling )-398(pr)20(ocess )-397(isn\325t )-397(violating )-397(a )-397(lock )-397(on )-397(the )-397(\336le )-397(being )-397(accessed.)]TJ T* (Mandatory locking is sometimes called)Tj /T1_2 1 Tf 17.544 0 Td [(enfor)18(cement-mode locking)]TJ /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47144 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (484)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 670.2598 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out < /etc/services 2>stderr.out)Tj /T1_2 1 Tf 26.8 0 Td (output to terminal)Tj 0 -1.189 TD (lots of output to terminal ...)Tj /TT0 1 Tf -28 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (cat stderr.out)Tj /TT0 1 Tf -1.2 -1.189 Td (read 500000 bytes)Tj T* (nwrite = 999, errno = 0)Tj 0 -1.189 TD (nwrite = -1, errno = 35)Tj 0 -1.189 TD (nwrite = -1, errno = 35)Tj T* (nwrite = -1, errno = 35)Tj T* (nwrite = -1, errno = 35)Tj T* (nwrite = 1001, errno = 0)Tj T* (nwrite = -1, errno = 35)Tj T* (nwrite = 1002, errno = 0)Tj T* (nwrite = 1004, errno = 0)Tj T* (nwrite = 1003, errno = 0)Tj 0 -1.189 TD (nwrite = 1003, errno = 0)Tj 0 -1.189 TD (nwrite = 1005, errno = 0)Tj T* (nwrite = -1, errno = 35)Tj /T1_2 1 Tf 28 0 Td [(61 of these err)18(ors)]TJ /TT0 1 Tf -26.2 -0.713 Td (.)Tj 0 -0.476 TD (.)Tj T* (.)Tj -1.8 -1.189 Td (nwrite = 1006, errno = 0)Tj 0 -1.189 TD (nwrite = 1004, errno = 0)Tj 0 -1.189 TD (nwrite = 1005, errno = 0)Tj 0 -1.189 TD (nwrite = 1006, errno = 0)Tj T* (nwrite = -1, errno = 35)Tj /T1_2 1 Tf 28 0 Td [(108 of these err)18(ors)]TJ /TT0 1 Tf -26.2 -0.713 Td (.)Tj 0 -0.476 TD (.)Tj T* (.)Tj -1.8 -1.189 Td (nwrite = 1006, errno = 0)Tj 0 -1.189 TD (nwrite = 1005, errno = 0)Tj 0 -1.189 TD (nwrite = 1005, errno = 0)Tj T* (nwrite = -1, errno = 35)Tj /T1_2 1 Tf 28 0 Td [(681 of these err)18(ors)]TJ /TT0 1 Tf -26.2 -0.713 Td (.)Tj 0 -0.476 TD (.)Tj T* (.)Tj /T1_2 1 Tf 26.2 -1.189 Td (and so on ...)Tj /TT0 1 Tf -28 -1.189 Td (nwrite = 347, errno = 0)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 318.441 Tm [(On )-235(this )-235(system, )-235(the)]TJ /TT0 1 Tf 9.66 0 Td (errno)Tj /T1_1 1 Tf 3.485 0 Td [(of )-235(35 )-235(is)]TJ /TT0 1 Tf 4.049 0 Td (EAGAIN)Tj /T1_1 1 Tf 0.7351 Tc (.T)Tj 0 Tc 5.198 0 Td [(he )-235(amount )-235(of )-235(data )-235(accepted )-235(by )-235(the)]TJ -22.393 -1.2 Td [(terminal )-70(driver )-70(varies )-70(fr)18(om )-70(system )-70(to )-70(system.)-573(The )-70(r)18(esults )-70(will )-70(also )-70(vary )-70(depending )-70(on)]TJ 0 -1.2 TD [(how )-62(you )-62(ar)]TJ 0.3117 Tc 5.167 0 Td (el)Tj 0 Tc 1.082 0 Td [(ogged )-62(in )-62(to )-62(the )-62(system: )-62(on )-62(the )-62(system )-62(console, )-62(on )-62(a )-62(har)21(d-wir)18(ed )-62(terminal,)]TJ -6.249 -1.2 Td [(on )-167(a )-167(network )-167(connection )-167(using )-167(a )-167(pseudo )-167(terminal.)-667(If )-167(you )-167(ar)]TJ 0.4173 Tc 28.059 0 Td (er)Tj 0 Tc 1.283 0 Td [(unning )-167(a )-167(windowing)]TJ -29.342 -1.2 Td (system on your terminal, you ar)Tj 0.25 Tc 14.149 0 Td (ea)Tj 0 Tc 1.229 0 Td [(lso going thr)18(ough a pseudo terminal device.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2704.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 241.631 Tm [(In )-40(this )-40(example, )-40(the )-40(pr)18(ogram )-40(issues )-40(mor)]TJ 0.2899 Tc 17.976 0 Td (et)Tj 0 Tc 1.095 0 Td [(han )-40(9,000)]TJ /TT0 1 Tf 4.494 0 Td (write)Tj /T1_1 1 Tf 3.29 0 Td [(calls, )-40(even )-40(though )-40(only)]TJ -28.655 -1.2 Td [(500 )-1(ar)]TJ 0.2513 Tc 2.628 0 Td (en)Tj 0 Tc 1.312 0 Td [(eeded )-1(to )-1(output )-1(the )-1(data.)-501(The )-1(r)18(est )-1(just )-1(r)18(eturn )-1(an )-1(err)15(or)]TJ 0.5013 Tc 23.702 0 Td (.T)Tj 0 Tc 1.364 0 Td [(his )-1(type )-1(of )-1(loop, )-1(called)]TJ /T1_2 1 Tf -29.007 -1.2 Td (polling)Tj /T1_1 1 Tf 0.2672 Tc (,i)Tj 0.2673 Tc 3.642 0 Td (saw)Tj 0 Tc 2.293 0 Td [(aste )-17(of )-17(CPU )-17(time )-17(on )-17(a )-17(multiuser )-17(system.)-517(In )-17(Section )-17(14.4, )-17(we\325ll )-17(see )-17(that )-17(I/O)]TJ -5.935 -1.2 Td (multiplexing with a nonblocking descriptor is a mor)Tj 0.25 Tc 23.055 0 Td (ee)Tj -0.018 Tc 1.208 0 Td (f\336)Tj 0 Tc 0.92 0 Td (cient way to do this.)Tj -23.383 -1.2 Td [(Sometimes, )-91(we )-91(can )-91(avoid )-91(using )-91(nonblocking )-91(I/O )-91(by )-91(designing )-91(our )-91(applications )-91(to)]TJ -1.8 -1.2 Td [(use )-48(multiple )-48(thr)18(eads )-48(\(see )-48(Chapter )-48(1)56(1\). )-298(W)]TJ 0.2979 Tc 18.35 0 Td (ec)Tj 0 Tc 1.221 0 Td [(an )-48(allow )-48(individual )-48(thr)18(eads )-48(to )-48(block )-48(in )-48(I/O)]TJ -19.571 -1.2 Td [(calls )-23(if )-23(we )-23(can )-23(continue )-23(to )-23(make )-23(pr)19(ogr)18(ess )-23(in )-23(other )-23(thr)19(eads. )-273(This)-273(can )-23(sometimes )-23(simplify)]TJ T* [(the )-199(design, )-199(as )-199(we )-199(shall )-199(see )-199(in )-199(Chapter )-199(21; )-199(at )-199(other )-199(times, )-199(however)]TJ 0.4487 Tc 30.999 0 Td (,t)Tj 0 Tc 1.025 0 Td [(he )-199(over)18(head )-199(of)]TJ -32.024 -1.2 Td [(synchr)18(onization can add mor)]TJ 0.25 Tc 12.933 0 Td (ec)Tj 0 Tc 1.173 0 Td [(omplexity than is saved fr)18(om using thr)18(eads.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47145 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (482)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 0.883 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (\245C)Tj 0 Tc 2.198 0 Td (ertain)Tj /TT0 1 Tf 2.823 0 Td (ioctl)Tj /T1_1 1 Tf 3.25 0 Td (operations)Tj 0.883 Tc -8.271 -1.6 Td (\245S)Tj 0 Tc 2.014 0 Td [(ome of the interpr)18(ocess communication functions \(Chapter 15\))]TJ -0.092 Tc -3.814 -2.04 Td [(We )-234(a)]TJ 0 Tc 2.187 0 Td [(lso )-50(said )-50(that )-50(system )-50(calls )-50(r)18(elated )-50(to )-50(disk )-50(I/O )-50(ar)]TJ 0.2998 Tc 20.984 0 Td (en)Tj 0 Tc 1.361 0 Td [(ot )-50(consider)18(ed )-50(slow)]TJ 0.2998 Tc 8.319 0 Td (,e)Tj 0 Tc 1.029 0 Td [(ven )-50(though)]TJ -33.879 -1.2 Td [(the r)18(ead or write of a disk \336le can block the caller temporarily)111(.)]TJ 1.8 -1.2 Td [(Nonblocking )-39(I/O )-39(lets )-39(us )-39(issue )-39(an )-39(I/O )-39(operation, )-39(such )-39(as )-39(an)]TJ /TT0 1 Tf 26.842 0 Td (open)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.939 0 Td (read)Tj /T1_1 1 Tf 0.2891 Tc (,o)Tj 0 Tc 3.485 0 Td (r)Tj /TT0 1 Tf 0.684 0 Td (write)Tj /T1_1 1 Tf (,)Tj -35.75 -1.2 Td [(and )-162(not )-162(have )-162(it )-162(block )-162(for)16(ever)]TJ 0.6626 Tc 13.442 0 Td (.I)Tj 0.4126 Tc 1.25 0 Td (ft)Tj 0 Tc 1.072 0 Td [(he )-163(operation )-163(cannot )-163(be )-163(completed, )-163(the )-163(call )-163(r)21(eturns)]TJ -15.764 -1.2 Td [(immediately with an err)18(or noting that the operation would have blocked.)]TJ 1.8 -1.2 Td (Ther)Tj 0.25 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(t)]TJ 0 Tc 1.432 0 Td [(wo ways to specify nonblocking I/O for a given descriptor)74(.)]TJ -4.712 -2.04 Td [(1. )-633(If)-487(we )-237(call)]TJ /TT0 1 Tf 6.603 0 Td (open)Tj /T1_1 1 Tf 2.887 0 Td [(to )-237(get )-237(the )-237(descriptor)74(,)-487(we)-487(can )-237(specify )-237(the)]TJ /TT0 1 Tf 19.559 0 Td (O_NONBLOCK)Tj /T1_1 1 Tf 6.487 0 Td (\337ag)Tj -33.903 -1.2 Td (\(Section 3.3\).)Tj -1.633 -1.6 Td [(2. )-633(For)]TJ 0.2646 Tc 3.395 0 Td (ad)Tj 0 Tc 1.376 0 Td [(escriptor )-15(that )-15(is )-15(alr)18(eady )-15(open, )-15(we )-15(call)]TJ /TT0 1 Tf 16.813 0 Td (fcntl)Tj /T1_1 1 Tf 3.265 0 Td [(to )-15(turn )-15(on )-15(the)]TJ /TT0 1 Tf 6.352 0 Td (O_NONBLOCK)Tj /T1_1 1 Tf -29.567 -1.2 Td [(\336le )-123(status )-123(\337ag )-123(\(Section )-123(3.14\).)-621(Figur)]TJ 0.3726 Tc 15.997 0 Td (e3)Tj 0 Tc 1.352 0 Td [(.12 )-123(shows )-123(a )-123(function )-123(that )-123(we )-123(can )-123(call )-123(to)]TJ -17.349 -1.2 Td [(turn on any of the \336le status \337ags for a descriptor)74(.)]TJ 7.9995 0 0 7.9995 183.5898 480.1712 Tm [(Earlier )-169(versions )-169(of )-169(System )-169(V )-169(used )-169(the )-169(\337ag)]TJ /TT0 1 Tf 19.981 0 Td (O_NDELAY)Tj /T1_1 1 Tf 5.219 0 Td [(to )-169(specify )-169(nonblocking )-169(mode.)-668(These)]TJ -25.2 -1.25 Td [(versions )-52(of )-52(System )-52(V )-52(r)18(eturned )-52(a )-52(value )-52(of )-52(0 )-52(fr)18(om )-52(the)]TJ /TT0 1 Tf 23.52 0 Td (read)Tj /T1_1 1 Tf 2.702 0 Td [(function )-52(if )-52(ther)]TJ 0.3021 Tc 6.7 0 Td (ew)Tj 0 Tc 1.615 0 Td [(asn\325t )-52(any )-52(data )-52(to)]TJ -34.537 -1.25 Td [(be )-225(r)18(ead. )-475(Since)-475(this )-225(use )-225(of )-225(a )-225(r)18(eturn )-225(value )-225(of )-225(0 )-225(overlapped )-225(with )-225(the )-225(normal )-225(UNIX )-225(System)]TJ -0 -1.25 Td [(convention )-96(of )-96(0 )-96(meaning )-96(the )-96(end )-96(of )-96(\336le, )-96(POSIX.1 )-96(chose )-96(to )-96(pr)18(ovide )-96(a )-96(nonblocking )-96(\337ag )-96(with )-96(a)]TJ 0 -1.25 TD [(dif)18(fer)18(ent )-83(name )-83(and )-83(dif)18(fer)18(ent )-83(semantics.)-583(Indeed, )-83(with )-83(these )-83(older )-83(versions )-83(of )-83(System )-83(V)]TJ 0.3333 Tc 38.94 0 Td (,w)Tj 0 Tc 1.417 0 Td (hen)Tj -40.357 -1.25 Td [(we )-203(get )-203(a )-203(r)18(eturn )-203(of )-203(0 )-203(fr)18(om)]TJ /TT0 1 Tf 12.625 0 Td (read)Tj /T1_1 1 Tf [(,)-453(we)-453(don\325t )-203(know )-203(whether )-203(the )-203(call )-203(would )-203(have )-203(blocked )-203(or)]TJ -12.625 -1.25 Td [(whether )-62(the )-62(end )-62(of )-62(\336le )-62(was )-62(encounter)20(ed. )-312(W)92(e\325ll )-62(see )-62(that )-62(POSIX.1 )-62(r)19(equir)18(es )-62(that)]TJ /TT0 1 Tf 35.165 0 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.712 0 Td (re)Tj 0 Tc 0.856 0 Td (turn)Tj /TT1 1 Tf 2.218 0 Td (!)Tj /T1_1 1 Tf (1)Tj -40.951 -1.25 Td (with)Tj /TT0 1 Tf 2.423 0 Td (errno)Tj /T1_1 1 Tf 3.39 0 Td [(set )-140(to)]TJ /TT0 1 Tf 2.881 0 Td (EAGAIN)Tj /T1_1 1 Tf 3.99 0 Td [(if )-140(ther)18(e)-390(is)-390(n)]TJ 0.39 Tc (od)Tj 0 Tc 6.881 0 Td [(ata )-140(to )-140(r)18(ead )-140(fr)18(om )-140(a )-140(nonblocking )-140(descriptor)]TJ 0.64 Tc 19.111 0 Td (.S)Tj 0 Tc 1.415 0 Td (ome)Tj -40.092 -1.25 Td [(platforms )-371(derived )-371(fr)18(om )-371(System )-371(V )-371(support )-371(both )-371(the )-371(older)]TJ /TT0 1 Tf 28.587 0 Td (O_NDELAY)Tj /T1_1 1 Tf 5.421 0 Td [(and )-371(the )-371(POSIX.1)]TJ /TT0 1 Tf -34.009 -1.25 Td (O_NONBLOCK)Tj /T1_1 1 Tf 0.4505 Tc (,b)Tj 0 Tc 7.254 0 Td [(ut )-200(in )-200(this )-200(text )-200(we\325ll )-200(use )-200(only )-200(the )-200(POSIX.1 )-200(featur)14(e. )-450(The)-451(older)]TJ /TT0 1 Tf 28.781 0 Td (O_NDELAY)Tj /T1_1 1 Tf 5.25 0 Td (is)Tj -41.285 -1.25 Td (intended for backwar)Tj 0.25 Tc 9.499 0 Td (dc)Tj 0 Tc 1.305 0 Td (ompatibility and should not be used in new applications.)Tj -10.804 -2.5 Td [(4.3BSD )-281(pr)18(ovided )-281(the)]TJ /TT0 1 Tf 10.22 0 Td (FNDELAY)Tj /T1_1 1 Tf 4.731 0 Td [(\337ag )-281(for)]TJ /TT0 1 Tf 3.999 0 Td (fcntl)Tj /T1_1 1 Tf 0.5306 Tc (,a)Tj 0 Tc 4.281 0 Td [(nd )-281(its )-281(semantics )-281(wer)]TJ 0.5308 Tc 9.869 0 Td (es)Tj 0 Tc 1.434 0 Td [(lightly )-281(dif)18(fer)18(ent.)]TJ -34.533 -1.25 Td [(Instead )-51(of )-51(af)18(fecting )-51(only )-51(the )-51(\336le )-51(status )-51(\337ags )-51(for )-51(the )-51(descriptor)]TJ 0.3015 Tc 27.506 0 Td (,t)Tj 0 Tc 0.877 0 Td [(he )-51(\337ags )-51(for )-51(either )-51(the )-51(terminal)]TJ -28.384 -1.25 Td [(device )-137(or )-137(the )-137(socket )-137(wer)]TJ 0.3873 Tc 11.211 0 Td (ea)Tj 0 Tc 1.366 0 Td [(lso )-137(changed )-137(to )-137(be )-137(nonblocking, )-137(ther)18(eby )-137(af)18(fecting )-137(all )-137(users )-137(of )-137(the)]TJ -12.577 -1.25 Td [(terminal )-11(or )-11(socket, )-11(not )-11(just )-11(the )-11(users )-11(sharing )-11(the )-11(same )-11(\336le )-11(table )-11(entry )-11(\(4.3BSD )-11(nonblocking )-11(I/O)]TJ T* [(worked )-59(only )-59(on )-59(terminals )-59(and )-59(sockets\).)-559(Also, )-59(4.3BSD )-59(r)19(eturned)]TJ /TT0 1 Tf 28.501 0 Td (EWOULDBLOCK)Tj /T1_1 1 Tf 6.909 0 Td [(if )-59(an )-59(operation)]TJ -35.41 -1.25 Td [(on )-51(a )-51(nonblocking )-51(descriptor )-51(could )-51(not )-51(complete )-51(without )-51(blocking.)]TJ -0.092 Tc 30.2 0 Td (To)Tj 0 Tc 1.067 0 Td (day)Tj 0.3006 Tc 1.556 0 Td (,B)Tj 0 Tc 1.162 0 Td (SD)Tj 1.299 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-51(systems)]TJ -35.616 -1.25 Td [(pr)18(ovide )-89(the )-89(POSIX.1)]TJ /TT0 1 Tf 9.543 0 Td (O_NONBLOCK)Tj /T1_1 1 Tf 6.339 0 Td [(\337ag )-89(and )-89(de\336ne)]TJ /TT0 1 Tf 7.131 0 Td (EWOULDBLOCK)Tj /T1_1 1 Tf 6.939 0 Td [(to )-89(be )-89(the )-89(same )-89(as)]TJ /TT0 1 Tf 8.197 0 Td (EAGAIN)Tj /T1_1 1 Tf (.)Tj -38.15 -1.25 Td [(These )-450(systems )-450(pr)18(ovide )-450(nonblocking )-450(semantics )-450(consistent )-450(with )-450(other )-450(POSIX-compatible)]TJ T* [(systems: )-283(changes )-283(in )-283(\336le )-283(status )-283(\337ags )-283(af)17(fect )-283(all )-283(users )-283(of )-283(the )-283(same )-283(\336le )-283(table )-283(entry)]TJ 0.5334 Tc 37.846 0 Td (,b)Tj 0 Tc 1.336 0 Td [(ut )-283(ar)18(e)]TJ -39.182 -1.25 Td [(independent )-87(of )-87(accesses )-87(to )-87(the )-87(same )-87(device )-87(thr)18(ough )-87(other )-87(\336le )-87(table )-87(entries.)-590(\(Refer )-87(to )-87(Figur)18(es)]TJ 0 -1.25 Td (3.7 and 3.9.\))Tj /TT2 1 Tf 9.9994 0 0 9.9994 93.5962 226.1864 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(Let\325s )-94(look )-94(at )-94(an )-94(example )-94(of )-94(nonblocking )-94(I/O.)-594(The )-94(pr)18(ogram )-94(in )-94(Figur)]TJ 0.3444 Tc 30.926 0 Td (e1)Tj 0 Tc 1.323 0 Td [(4.1 )-94(r)18(eads )-94(up )-94(to)]TJ -32.25 -1.2 Td [(500,000 )-88(bytes )-88(fr)17(om )-88(the )-88(standar)]TJ 0.3382 Tc 13.787 0 Td (di)Tj 0 Tc 1.24 0 Td [(nput )-88(and )-88(attempts )-88(to )-88(write )-88(it )-88(to )-88(the )-88(standar)]TJ 0.3382 Tc 19.769 0 Td (do)Tj 0 Tc 1.495 0 Td (utput.)Tj -36.291 -1.2 Td [(The )-146(standar)]TJ 0.3963 Tc 5.39 0 Td (do)Tj 0 Tc 1.553 0 Td [(utput )-146(is )-146(\336rst )-146(set )-146(to )-146(be )-146(nonblocking.)-646(The )-146(output )-146(is )-146(in )-146(a )-146(loop, )-146(with )-146(the)]TJ -0.018 Tc -6.944 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sults )-187(of )-187(each)]TJ /TT0 1 Tf 6.264 0 Td (write)Tj /T1_1 1 Tf 3.437 0 Td [(being )-187(printed )-187(on )-187(the )-187(standar)]TJ 0.4374 Tc 13.331 0 Td (de)Tj 0 Tc 1.527 0 Td [(rr)18(or)]TJ 0.6874 Tc 1.639 0 Td (.T)Tj 0 Tc 1.55 0 Td [(he )-187(function)]TJ /TT0 1 Tf 5.643 0 Td (clr_fl)Tj /T1_1 1 Tf 4.037 0 Td (is)Tj -38.285 -1.2 Td [(similar )-238(to )-238(the )-238(function)]TJ /TT0 1 Tf 10.991 0 Td (set_fl)Tj /T1_1 1 Tf 4.088 0 Td [(that )-238(we )-238(showed )-238(in )-238(Figur)]TJ 0.4876 Tc 11.729 0 Td (e3)Tj 0 Tc 1.467 0 Td [(.12. )-488(This)-487(new )-238(function)]TJ -28.275 -1.2 Td [(simply clears one or mor)18(e)-250(of)-250(the \337ag bits.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47146 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (382)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 8.9995 0 0 8.9995 129.5922 669.9598 Tm (10.10)Tj /T1_1 1 Tf -0.074 Tc 3.065 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-121(a )-121(pr)18(ogram )-121(that )-121(calls)]TJ /TT0 1 Tf 10.994 0 Td (sleep\(60\))Tj /T1_1 1 Tf 5.771 0 Td [(in )-121(an )-121(in\336nite )-121(loop.)-621(Every )-121(\336ve )-121(times )-121(thr)16(ough )-121(the)]TJ -18.086 -1.222 Td [(loop )-58(\(every )-58(5 )-58(minutes\), )-58(fetch )-58(the )-58(curr)19(ent )-58(time )-58(of )-58(day )-58(and )-58(print )-58(the)]TJ /TT0 1 Tf 30.019 0 Td (tm_sec)Tj /T1_1 1 Tf 3.908 0 Td [(\336eld. )-308(Run)-307(the)]TJ -33.927 -1.222 Td [(pr)18(ogram )-220(overnight )-220(and )-220(explain )-220(the )-220(r)20(esults. )-470(How)-469(would )-220(a )-220(pr)18(ogram )-220(such )-220(as )-220(the)]TJ /TT0 1 Tf 37.868 0 Td (cron)Tj /T1_1 1 Tf -37.868 -1.222 Td [(daemon, which r)8(uns every minute on the minute, handle this situation?)]TJ /T1_0 1 Tf -3.065 -1.667 Td [(10.1)37(1)]TJ /T1_1 1 Tf 3.065 0 Td [(Modify )-104(Figur)]TJ 0.3541 Tc 6.02 0 Td (e3)Tj 0 Tc 1.333 0 Td [(.5 )-104(as )-104(follows: )-104(\(a\) )-104(change)]TJ /TT0 1 Tf 11.269 0 Td (BUFFSIZE)Tj /T1_1 1 Tf 5.154 0 Td [(to )-104(100; )-104(\(b\) )-104(catch )-104(the)]TJ /TT0 1 Tf 9.294 0 Td (SIGXFSZ)Tj /T1_1 1 Tf 4.554 0 Td (signal)Tj -37.624 -1.222 Td [(using )-210(the)]TJ /TT0 1 Tf 4.763 0 Td (signal_intr)Tj /T1_1 1 Tf 7.06 0 Td [(function, )-210(printing )-210(a )-210(message )-210(when )-210(it\325s )-210(caught, )-210(and )-210(r)19(eturning)]TJ -11.822 -1.222 Td [(fr)18(om )-6(the )-6(signal )-6(handler; )-6(and )-6(\(c\) )-6(print )-6(the )-6(r)18(eturn )-6(value )-6(fr)18(om)]TJ /TT0 1 Tf 26.4 0 Td (write)Tj /T1_1 1 Tf 3.256 0 Td [(if )-6(the )-6(r)18(equested )-6(number)]TJ -29.656 -1.222 Td [(of )-136(bytes )-136(wasn\325t )-136(written.)-638(Modify )-137(the )-137(soft)]TJ /TT0 1 Tf 18.899 0 Td (RLIMIT_FSIZE)Tj /T1_1 1 Tf -0.018 Tc 7.587 0 Td (re)Tj 0 Tc 0.856 0 Td [(sour)18(ce )-137(limit )-137(\(Section )-137(7.1)55(1\) )-137(to)]TJ -27.341 -1.222 Td [(1,024 )-58(bytes )-58(and )-58(r)8(un )-58(your )-58(new )-58(pr)18(ogram, )-58(copying )-58(a )-58(\336le )-58(that )-58(is )-58(lar)17(ger )-58(than )-58(1,024 )-58(bytes.)-558(\(T)90(ry)]TJ 0 -1.222 Td [(to )-172(set )-172(the )-172(soft )-172(r)20(esour)18(ce )-172(limit )-172(fr)18(om )-172(your )-172(shell.)-670(If )-172(you )-172(can\325t )-172(do )-172(this )-172(fr)18(om )-172(your )-172(shell, )-172(call)]TJ /TT0 1 Tf -0 -1.222 Td (setrlimit)Tj /T1_1 1 Tf 5.765 0 Td [(dir)18(ectly )-115(fr)18(om )-115(the )-115(pr)17(ogram.\) )-365(Run)-366(this )-115(pr)18(ogram )-115(on )-115(the )-115(dif)17(fer)18(ent )-115(systems )-115(that)]TJ -5.766 -1.222 Td [(you have access to.)-500(What happens and why?)]TJ /T1_0 1 Tf -3.065 -1.667 Td (10.12)Tj /T1_1 1 Tf -0.074 Tc 3.065 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-28(a )-28(pr)18(ogram )-28(that )-28(calls)]TJ /TT0 1 Tf 10.53 0 Td (fwrite)Tj /T1_1 1 Tf 3.878 0 Td [(with )-28(a )-28(lar)17(ge )-28(buf)18(fer )-28(\(about )-28(one )-28(gigabyte\).)-530(Befor)]TJ 0.2784 Tc 20.827 0 Td (ec)Tj 0 Tc 1.201 0 Td (alling)Tj /TT0 1 Tf -37.757 -1.222 Td (fwrite)Tj /T1_1 1 Tf 0.2757 Tc (,c)Tj 0 Tc 4.57 0 Td (all)Tj /TT0 1 Tf 1.358 0 Td (alarm)Tj /T1_1 1 Tf 3.276 0 Td [(to )-26(schedule )-26(a )-26(signal )-26(in )-26(1 )-26(second.)-526(In )-26(your )-26(signal )-26(handler)]TJ 0.2756 Tc 24.673 0 Td (,p)Tj 0 Tc 1.127 0 Td [(rint )-26(that )-26(the)]TJ -35.002 -1.222 Td [(signal was caught and r)18(eturn. )-250(Does)-250(the call to)]TJ /TT0 1 Tf 20.626 0 Td (fwrite)Tj /T1_1 1 Tf 3.85 0 Td [(complete? )-250(What\325s)-250(happening?)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47147 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (378)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.783 TD [(#define BUFFSIZE)-2400(1024)]TJ 0 -1.783 TD (static void)Tj 0 -1.189 TD (sig_tstp\(int signo\) /* signal handler for SIGTSTP */)Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(sigset_t )-1800(mask;)]TJ 0 -1.783 TD (/* ... move cursor to lower left corner, reset tty mode ... */)Tj 0 -1.783 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*U)Tj 0 Tc 1.8 0 Td (nblock SIGTSTP, since it\325s blocked while we\325re handling it.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (sigemptyset\(&mask\);)Tj 0 -1.189 TD (sigaddset\(&mask, SIGTSTP\);)Tj 0 -1.189 TD (sigprocmask\(SIG_UNBLOCK, &mask, NULL\);)Tj 0 -1.783 TD [(signal\(SIGTSTP, SIG_DFL\);)-1800(/* reset disposition to default */)]TJ 0 -1.783 TD [(kill\(getpid\(\), SIGTSTP\);)-2400(/* and send the signal to ourself */)]TJ T* (/* we won\325t return from the kill until we\325re continued */)Tj T* [(signal\(SIGTSTP, sig_tstp\);)-1200(/* reestablish signal handler */)]TJ T* (/* ... reset tty mode, redraw screen ... */)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(n;)]TJ T* [(char )-1800(buf[BUFFSIZE];)]TJ 0 -1.783 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*O)Tj 0 Tc 1.8 0 Td (nly catch SIGTSTP if we\325re running with a job-control shell.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(signal\(SIGTSTP, SIG_IGN\) == SIG_DFL\))Tj 2.4 -1.189 Td (signal\(SIGTSTP, sig_tstp\);)Tj -2.4 -1.783 Td (while \(\(n = read\(STDIN_FILENO, buf, BUFFSIZE\)\) > 0\))Tj 2.4 -1.189 Td (if \(write\(STDOUT_FILENO, buf, n\) != n\))Tj 2.4 -1.189 Td (err_sys\("write error"\);)Tj -4.8 -1.783 Td (if \(n < 0\))Tj 2.4 -1.189 Td (err_sys\("read error"\);)Tj -2.4 -1.783 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2053.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 255.4733 189.2753 Tm (Figure 10.31)Tj /T1_1 1 Tf 6.195 0 Td (How to handle)Tj /TT0 1 Tf 6.879 0 Td (SIGTSTP)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5846 165.2782 Tm [(When )-19(the )-19(pr)18(ogram )-19(in )-19(Figur)]TJ 0.2691 Tc 12.22 0 Td (e1)Tj 0 Tc 1.248 0 Td [(0.31 )-19(starts, )-19(it )-19(arranges )-19(to )-19(catch )-19(the)]TJ /TT0 1 Tf 15.282 0 Td (SIGTSTP)Tj /T1_1 1 Tf 4.469 0 Td [(signal )-19(only )-19(if)]TJ -33.219 -1.2 Td [(the )-2(signal\325s )-2(disposition )-2(is)]TJ /TT0 1 Tf 11.389 0 Td (SIG_DFL)Tj /T1_1 1 Tf 0.502 Tc (.T)Tj 0 Tc 5.565 0 Td [(he )-2(r)18(eason )-2(is )-2(that )-2(when )-2(the )-2(pr)18(ogram )-2(is )-2(started )-2(by )-2(a)]TJ -16.954 -1.2 Td [(shell )-110(that )-110(doesn\325t )-110(support )-110(job )-110(contr)19(ol )-110(\()]TJ /TT0 1 Tf (/bin/sh)Tj /T1_1 1 Tf 0.3597 Tc (,f)Tj 0 Tc 22.622 0 Td [(or )-110(example\), )-110(the )-110(signal\325s )-110(disposition)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47148 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.10)]TJ /TT0 1 Tf 30.286 0 Td (alarm)Tj /T1_0 1 Tf 3.5 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (pause)Tj /T1_0 1 Tf 3.5 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (343)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Her)18(e, )-149(we )-149(speci\336cally )-149(want )-149(a )-149(slow )-149(system )-149(call )-149(to )-149(be )-149(interr)9(upted. )-399(W)92(e\325ll )-149(see )-149(a )-149(portable)]TJ 0 -1.2 Td (way to do this in Section 10.14.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 6570.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 9.9988 0 0 9.9988 93.5888 632.924 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.04 Td [(Let\325s )-120(r)18(edo )-120(the )-120(pr)18(eceding )-120(example )-120(using)]TJ /TT0 1 Tf 18.365 0 Td (longjmp)Tj /T1_0 1 Tf 0.6202 Tc (.T)Tj 0 Tc 5.683 0 Td [(his )-120(way)111(,)-370(we)-370(don\325t )-120(need )-120(to )-120(worry)]TJ -24.048 -1.2 Td [(about whether a slow system call is interr)8(upted.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5934.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 583.7939 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD [(static void)-3000(sig_alrm\(int\);)]TJ 0 -1.189 TD [(static jmp_buf)-1200(env_alrm;)]TJ 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(n;)]TJ T* [(char )-1800(line[MAXLINE];)]TJ 0 -2.14 TD (if \(signal\(SIGALRM, sig_alrm\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("signal\(SIGALRM\) error"\);)Tj -2.4 -1.189 Td (if \(setjmp\(env_alrm\) != 0\))Tj 2.4 -1.189 Td (err_quit\("read timeout"\);)Tj -2.4 -2.14 Td (alarm\(10\);)Tj 0 -1.189 TD (if \(\(n = read\(STDIN_FILENO, line, MAXLINE\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("read error"\);)Tj -2.4 -1.189 Td (alarm\(0\);)Tj 0 -2.14 TD (write\(STDOUT_FILENO, line, n\);)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (static void)Tj 0 -1.189 TD (sig_alrm\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td (longjmp\(env_alrm, 1\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2709.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 219.8632 254.8768 Tm [(Figure 10.1)37(1)]TJ /T1_0 1 Tf 6.158 0 Td (Calling)Tj /TT0 1 Tf 3.47 0 Td (read)Tj /T1_0 1 Tf 2.65 0 Td (with a timeout, using)Tj /TT0 1 Tf 9.693 0 Td (longjmp)Tj /T1_0 1 Tf 9.9976 0 0 9.9976 129.5693 230.8826 Tm [(This )-119(version )-119(works )-119(as )-119(expected, )-119(r)18(egar)18(dless )-119(of )-119(whether )-119(the )-119(system )-119(r)18(estarts )-119(interr)7(upted)]TJ -0 -1.2 Td [(system )-27(calls.)-528(Realize, )-27(however)]TJ 0.2773 Tc 13.638 0 Td (,t)Tj 0 Tc 0.853 0 Td [(hat )-27(we )-27(still )-27(have )-27(the )-27(pr)18(oblem )-27(of )-27(interactions )-27(with )-27(other)]TJ -14.491 -1.2 Td (signal handlers, as in Figur)Tj 0.25 Tc 11.938 0 Td (e1)Tj 0 Tc 1.229 0 Td (0.8.)Tj ET q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2069.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.997 0 0 9.997 147.5557 178.0846 Tm [(If )-141(we )-141(want )-141(to )-141(set )-141(a )-141(time )-141(limit )-141(on )-141(an )-141(I/O )-141(operation, )-141(we )-141(need )-141(to )-141(use)]TJ /TT0 1 Tf 31.435 0 Td (longjmp)Tj /T1_0 1 Tf 0.3907 Tc (,a)Tj 0 Tc 5.341 0 Td (s)Tj -38.576 -1.2 Td [(shown )-45(pr)18(eviously)]TJ 0.2948 Tc 7.885 0 Td (,w)Tj 0 Tc 1.379 0 Td [(hile )-45(r)18(ecognizing )-45(its )-45(possible )-45(interaction )-45(with )-45(other )-45(signal )-45(handlers.)]TJ -9.264 -1.2 Td [(Another )-11(option )-11(is )-11(to )-11(use )-11(the)]TJ /TT0 1 Tf 12.624 0 Td (select)Tj /T1_0 1 Tf 3.861 0 Td (or)Tj /TT0 1 Tf 1.202 0 Td (poll)Tj /T1_0 1 Tf 2.661 0 Td [(functions, )-10(described )-10(in )-10(Sections )-10(14.4.1 )-10(and)]TJ -20.346 -1.2 Td (14.4.2.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47149 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (342)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Example)Tj /T1_1 1 Tf 0.2678 Tc 3.6 -2.4 Td (Ac)Tj 0 Tc 1.49 0 Td [(ommon )-18(use )-18(for)]TJ /TT1 1 Tf 7.023 0 Td (alarm)Tj /T1_1 1 Tf 0.2678 Tc (,i)Tj 0.2679 Tc 3.809 0 Td (na)Tj 0 Tc 1.35 0 Td [(ddition )-18(to )-18(implementing )-18(the)]TJ /TT1 1 Tf 12.833 0 Td (sleep)Tj /T1_1 1 Tf 3.268 0 Td [(function, )-18(is )-18(to )-18(put )-18(an)]TJ -29.772 -1.2 Td [(upper )-309(time )-309(limit )-309(on )-309(operations )-309(that )-309(can )-309(block.)-809(For )-309(example, )-309(if )-309(we )-309(have )-309(a)]TJ /TT1 1 Tf 36.6 0 Td (read)Tj /T1_1 1 Tf -36.6 -1.2 Td [(operation )-55(on )-55(a )-55(device )-55(that )-55(can )-55(block )-55(\(a )-55(\324)35(\324slow\325)]TJ 0.3053 Tc 20.543 0 Td (\325d)Tj 0 Tc 1.194 0 Td [(evice, )-55(as )-55(described )-55(in )-55(Section )-55(10.5\), )-55(we)]TJ -21.737 -1.2 Td [(might )-353(want )-353(the)]TJ /TT1 1 Tf 8.075 0 Td (read)Tj /T1_1 1 Tf 3.003 0 Td [(to )-353(time )-353(out )-353(after )-353(some )-353(amount )-353(of )-353(time.)-851(The )-353(pr)18(ogram )-353(in)]TJ -11.078 -1.2 Td (Figur)Tj 0.3177 Tc 2.383 0 Td (e1)Tj 0 Tc 1.297 0 Td [(0.10 )-68(does )-68(this, )-68(r)18(eading )-68(one )-68(line )-68(fr)18(om )-68(standar)]TJ 0.3177 Tc 20.012 0 Td (di)Tj 0 Tc 1.22 0 Td [(nput )-68(and )-68(writing )-68(it )-68(to )-68(standar)20(d)]TJ -24.911 -1.2 Td (output.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5730.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 563.4314 Tm (#include "apue.h")Tj 0 -2.021 TD (static void sig_alrm\(int\);)Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-2400(n;)]TJ 0 -1.189 TD [(char )-1800(line[MAXLINE];)]TJ 0 -2.021 TD (if \(signal\(SIGALRM, sig_alrm\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("signal\(SIGALRM\) error"\);)Tj -2.4 -2.021 Td (alarm\(10\);)Tj 0 -1.189 TD (if \(\(n = read\(STDIN_FILENO, line, MAXLINE\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("read error"\);)Tj -2.4 -1.189 Td (alarm\(0\);)Tj 0 -2.021 TD (write\(STDOUT_FILENO, line, n\);)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (static void)Tj 0 -1.189 TD (sig_alrm\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td (/* nothing to do, just return to interrupt the read */)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2997.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 249.3471 283.7069 Tm (Figure 10.10)Tj /T1_1 1 Tf 6.195 0 Td (Calling)Tj /TT1 1 Tf 3.47 0 Td (read)Tj /T1_1 1 Tf 2.65 0 Td (with a timeout)Tj 9.9982 0 0 9.9982 129.5771 259.7112 Tm [(This )-225(sequence )-225(of )-225(code )-225(is )-225(common )-225(in )-225(UNIX )-225(applications, )-225(but )-225(this )-225(pr)18(ogram )-225(has )-225(two)]TJ 0 -1.2 TD [(pr)18(oblems.)]TJ 1.8 -1.92 Td [(1. )-633(The)-415(pr)18(ogram )-165(in )-165(Figur)]TJ 0.4151 Tc 11.666 0 Td (e1)Tj 0 Tc 1.394 0 Td [(0.10 )-165(has )-165(one )-165(of )-165(the )-165(same )-165(\337aws )-165(that )-165(we )-165(described )-165(in)]TJ -11.427 -1.2 Td (Figur)Tj 0.2516 Tc 2.383 0 Td (e1)Tj 0 Tc 1.231 0 Td [(0.7: )-2(a )-2(race )-2(condition )-2(between )-2(the )-2(\336rst )-2(call )-2(to)]TJ /TT1 1 Tf 19.568 0 Td (alarm)Tj /T1_1 1 Tf 3.251 0 Td [(and )-1(the )-1(call )-1(to)]TJ /TT1 1 Tf 6.484 0 Td (read)Tj /T1_1 1 Tf (.)Tj -32.917 -1.2 Td [(If )-37(the )-37(kernel )-37(blocks )-37(the )-37(pr)18(ocess )-37(between )-37(these )-37(two )-37(function )-37(calls )-37(for )-37(longer )-37(than)]TJ T* [(the )-1(alarm )-1(period, )-1(the)]TJ /TT1 1 Tf 9.52 0 Td (read)Tj /T1_1 1 Tf 2.651 0 Td [(could )-1(block )-1(for)18(ever)]TJ 0.5011 Tc 8.487 0 Td (.M)Tj 0 Tc 1.697 0 Td [(ost )-1(operations )-1(of )-1(this )-1(type )-1(use)]TJ 0.6952 Tc -22.356 -1.2 Td (al)Tj 0 Tc 1.486 0 Td [(ong )-445(alarm )-445(period, )-445(such )-445(as )-445(a )-445(minute )-445(or )-445(mor)16(e, )-445(making )-445(this )-445(unlikely;)]TJ -1.486 -1.2 Td (nevertheless, it is a race condition.)Tj -1.633 -1.6 Td [(2. )-633(If)-281(system )-31(calls )-31(ar)]TJ 0.2813 Tc 9.066 0 Td (ea)Tj 0 Tc 1.26 0 Td [(utomatically )-31(r)18(estarted, )-31(the)]TJ /TT1 1 Tf 11.955 0 Td (read)Tj /T1_1 1 Tf 2.681 0 Td [(is )-31(not )-31(interr)8(upted )-31(when )-31(the)]TJ /TT1 1 Tf -23.329 -1.2 Td (SIGALRM)Tj /T1_1 1 Tf 4.45 0 Td [(signal handler r)18(eturns. )-250(In)-250(this case, the timeout does nothing.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47150 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.6)]TJ 34.642 0 Td [(Reentrant )-250(Functions)]TJ /T1_1 1 Tf 11.191 0 Td (331)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1334.25 6670.25 cm 0 0 m 3824 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 137.3918 658.9605 Tm (abort )Tj 9.3 0 Td [(faccessat)-2700(linkat )]TJ 19.8 0 Td [(select)-4500(socketpair)]TJ -29.1 -1.25 Td (accept )Tj 9.3 0 Td [(fchmod)-4500(listen )]TJ 19.8 0 Td [(sem_post)-3300(stat)]TJ -29.1 -1.25 Td (access )Tj 9.3 0 Td [(fchmodat)-3300(lseek )]TJ 19.8 0 Td (send)Tj 8.1 0 Td (symlink)Tj -37.2 -1.25 Td [(aio_error )-3300(fchown)-4500(lstat )]TJ 29.1 0 Td [(sendmsg)-3900(symlinkat)]TJ -29.1 -1.25 Td [(aio_return )-2700(fchownat )-2700(mkdir)]TJ 29.1 0 Td [(sendto )-3900(tcdrain)]TJ -29.1 -1.25 Td [(aio_suspend )-2100(fcntl)]TJ 17.4 0 Td (mkdirat )Tj 11.7 0 Td [(setgid)-4500(tcflow)]TJ -29.1 -1.25 Td (alarm )Tj 9.3 0 Td [(fdatasync)-2700(mkfifo )]TJ 19.8 0 Td [(setpgid)-3900(tcflush)]TJ -29.1 -1.25 Td (bind )Tj 9.3 0 Td [(fexecve)-3900(mkfifoat )]TJ 19.8 0 Td [(setsid)-4500(tcgetattr)]TJ -29.1 -1.25 Td [(cfgetispeed )-2100(fork)]TJ 17.4 0 Td (mknod )Tj 11.7 0 Td [(setsockopt)-2100(tcgetpgrp)]TJ -29.1 -1.25 Td [(cfgetospeed )-2100(fstat)]TJ 17.4 0 Td (mknodat )Tj 11.7 0 Td [(setuid)-4500(tcsendbreak)]TJ -29.1 -1.25 Td [(cfsetispeed )-2100(fstatat)-3900(open )]TJ 29.1 0 Td [(shutdown)-3300(tcsetattr)]TJ -29.1 -1.25 Td [(cfsetospeed )-2100(fsync)]TJ 17.4 0 Td (openat )Tj 11.7 0 Td [(sigaction)-2700(tcsetpgrp)]TJ -29.1 -1.25 Td (chdir )Tj 9.3 0 Td [(ftruncate)-2700(pause )]TJ 19.8 0 Td [(sigaddset)-2700(time)]TJ -29.1 -1.25 Td (chmod )Tj 9.3 0 Td [(futimens)-3300(pipe )]TJ 19.8 0 Td [(sigdelset)-2700(timer_getoverrun)]TJ -29.1 -1.25 Td (chown )Tj 9.3 0 Td [(getegid)-3900(poll )]TJ 19.8 0 Td [(sigemptyset)-1500(timer_gettime)]TJ -29.1 -1.25 Td [(clock_gettime )-900(geteuid)-3900(posix_trace_event )-900(sigfillset)-2100(timer_settime)]TJ 0 -1.25 TD (close )Tj 9.3 0 Td [(getgid)-4500(pselect )]TJ 19.8 0 Td [(sigismember)-1500(times)]TJ -29.1 -1.25 Td [(connect )-4500(getgroups)-2700(raise )]TJ 29.1 0 Td [(signal)-4500(umask)]TJ -29.1 -1.25 Td (creat )Tj 9.3 0 Td [(getpeername)-1500(read )]TJ 19.8 0 Td [(sigpause)-3300(uname)]TJ -29.1 -1.25 Td (dup )Tj 9.3 0 Td [(getpgrp)-3900(readlink )]TJ 19.8 0 Td [(sigpending)-2100(unlink)]TJ -29.1 -1.25 Td (dup2 )Tj 9.3 0 Td [(getpid)-4500(readlinkat )]TJ 19.8 0 Td [(sigprocmask)-1500(unlinkat)]TJ -29.1 -1.25 Td (execl )Tj 9.3 0 Td [(getppid)-3900(recv )]TJ 19.8 0 Td [(sigqueue)-3300(utime)]TJ -29.1 -1.25 Td (execle )Tj 9.3 0 Td [(getsockname)-1500(recvfrom )]TJ 19.8 0 Td [(sigset)-4500(utimensat)]TJ -29.1 -1.25 Td (execv )Tj 9.3 0 Td [(getsockopt)-2100(recvmsg )]TJ 19.8 0 Td [(sigsuspend)-2100(utimes)]TJ -29.1 -1.25 Td (execve )Tj 9.3 0 Td [(getuid)-4500(rename )]TJ 19.8 0 Td (sleep)Tj 8.1 0 Td (wait)Tj -37.2 -1.25 Td (_Exit )Tj 9.3 0 Td (kill)Tj 8.1 0 Td (renameat )Tj 11.7 0 Td [(sockatmark)-2100(waitpid)]TJ -29.1 -1.25 Td (_exit )Tj 9.3 0 Td (link)Tj 8.1 0 Td (rmdir )Tj 11.7 0 Td [(socket)-4500(write)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1334.25 3950.25 cm 0 0 m 3824 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4290.25 3950.25 cm 0 0 m 0 2720 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 3950.25 cm 0 0 m 0 2720 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3950.25 cm 0 0 m 0 2720 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2058.25 3950.25 cm 0 0 m 0 2720 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5158.25 3950.25 cm 0 0 m 0 2720 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1334.25 3950.25 cm 0 0 m 0 2720 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 194.7486 376.9548 Tm (Figure 10.4)Tj /T1_0 1 Tf 5.695 0 Td [(Reentrant functions that may be called fr)18(om a signal handler)]TJ 9.9988 0 0 9.9988 129.5846 345.7585 Tm [(stor)18(ed )-288(in)]TJ /TT0 1 Tf 4.711 0 Td (main)Tj /T1_0 1 Tf 0.7876 Tc (.T)Tj 0 Tc 4.051 0 Td [(her)18(efor)18(e, )-288(as )-288(a )-288(general )-288(r)10(ule, )-287(when )-287(calling )-287(the )-287(functions )-287(listed )-287(in)]TJ -8.762 -1.2 Td (Figur)Tj 0.3068 Tc 2.383 0 Td (e1)Tj 0 Tc 1.286 0 Td [(0.4 )-57(fr)18(om )-57(a )-57(signal )-57(handler)75(,)-307(we)-307(should )-57(save )-57(and )-57(r)18(estor)18(e)]TJ /TT0 1 Tf 24.257 0 Td (errno)Tj /T1_0 1 Tf 0.5569 Tc (.\()Tj 0 Tc 4.14 0 Td [(Be )-57(awar)]TJ 0.3069 Tc 3.608 0 Td (et)Tj 0 Tc 1.112 0 Td [(hat )-57(a)]TJ -36.785 -1.2 Td [(commonly )-176(caught )-176(signal )-176(is)]TJ /TT0 1 Tf 12.806 0 Td (SIGCHLD)Tj /T1_0 1 Tf 0.4262 Tc (,a)Tj 0 Tc 5.376 0 Td [(nd )-176(its )-176(signal )-176(handler )-176(usually )-176(calls )-176(one )-176(of )-176(the)]TJ /TT0 1 Tf -18.182 -1.2 Td (wait)Tj /T1_0 1 Tf 2.65 0 Td [(functions. )-250(All)-250(the)]TJ /TT0 1 Tf 8.128 0 Td (wait)Tj /T1_0 1 Tf 2.65 0 Td (functions can change)Tj /TT0 1 Tf 9.55 0 Td (errno)Tj /T1_0 1 Tf (.\))Tj -21.178 -1.2 Td [(Note )-237(that)]TJ /TT0 1 Tf 4.889 0 Td (longjmp)Tj /T1_0 1 Tf 4.687 0 Td [(\(Section )-237(7.10\) )-237(and)]TJ /TT0 1 Tf 8.762 0 Td (siglongjmp)Tj /T1_0 1 Tf 6.487 0 Td [(\(Section )-237(10.15\) )-237(ar)]TJ 0.4866 Tc 7.959 0 Td (em)Tj 0 Tc 1.849 0 Td (issing)Tj -36.432 -1.2 Td [(fr)18(om )-168(Figur)]TJ 0.4185 Tc 4.941 0 Td (e1)Tj 0 Tc 1.397 0 Td [(0.4, )-168(because )-168(the )-168(signal )-168(may )-168(have )-168(occurr)15(ed )-168(while )-168(the )-168(main )-168(r)18(outine )-168(was)]TJ -6.338 -1.2 Td [(updating )-81(a )-81(data )-81(str)7(uctur)18(e)-331(in)-331(a)-331(n)-1(onr)18(eentrant )-81(way)]TJ 0.5813 Tc 21.703 0 Td (.T)Tj 0 Tc 1.444 0 Td [(his )-81(data )-81(str)7(uctur)]TJ 0.3313 Tc 7.387 0 Td (ec)Tj 0 Tc 1.254 0 Td [(ould )-81(be )-81(left )-81(half)]TJ -31.788 -1.2 Td [(updated )-142(if )-142(we )-142(call)]TJ /TT0 1 Tf 8.761 0 Td (siglongjmp)Tj /T1_0 1 Tf 6.392 0 Td [(instead )-142(of )-142(r)18(eturning )-142(fr)18(om )-142(the )-142(signal )-142(handler)]TJ 0.6418 Tc 20.17 0 Td (.I)Tj 0 Tc 1.229 0 Td [(f)-392(it)-392(i)1(s)]TJ -36.552 -1.2 Td [(going )-158(to )-158(do )-158(such )-158(things )-158(as )-158(update )-158(global )-158(data )-158(str)11(uctur)18(es, )-158(as )-158(we )-158(describe )-158(her)19(e, )-158(while)]TJ 0 -1.2 Td (catching signals that cause)Tj /TT0 1 Tf 11.978 0 Td (sigsetjmp)Tj /T1_0 1 Tf 5.65 0 Td (to be executed, an application needs to block the)Tj -17.628 -1.2 Td [(signals while updating the data str)8(uctur)18(es.)]TJ /TT1 1 Tf -3.6 -3.12 Td (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td (Figur)Tj 0.4372 Tc 2.383 0 Td (e1)Tj 0 Tc 1.416 0 Td [(0.5 )-187(shows )-187(a )-187(pr)18(ogram )-187(that )-187(calls )-187(the )-187(nonr)17(eentrant )-187(function)]TJ /TT0 1 Tf 26.887 0 Td (getpwnam)Tj /T1_0 1 Tf 5.237 0 Td [(fr)18(om )-187(a)]TJ -35.923 -1.2 Td [(signal )-397(handler )-397(that )-397(is )-397(called )-397(every )-397(second.)]TJ -0.092 Tc 21.736 0 Td [(We )-581(d)]TJ 0 Tc 2.645 0 Td [(escribe )-397(the)]TJ /TT0 1 Tf 5.745 0 Td (alarm)Tj /T1_0 1 Tf 3.647 0 Td [(function )-397(in)]TJ -33.773 -1.2 Td (Section 10.10.)Tj -0.092 Tc 6.443 0 Td [(We )-184(u)]TJ 0 Tc 2.24 0 Td [(se it her)18(e)-250(to)-250(generate a)]TJ /TT0 1 Tf 10.105 0 Td (SIGALRM)Tj /T1_0 1 Tf 4.45 0 Td (signal every second.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47151 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (328)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(To )-223(s)]TJ 0 Tc 1.78 0 Td [(upport )-39(this )-39(featur)17(e, )-39(the )-39(system )-39(calls )-39(ar)]TJ 0.2894 Tc 17.084 0 Td (ed)Tj 0 Tc 1.379 0 Td [(ivided )-39(into )-39(two )-39(categories: )-39(the )-39(\324)35(\324slow\325)37(\325)]TJ -22.044 -1.2 Td [(system )-85(calls )-85(and )-85(all )-85(the )-85(others.)-585(The )-85(slow )-85(system )-85(calls )-85(ar)]TJ 0.3346 Tc 25.491 0 Td (et)Tj 0 Tc 1.14 0 Td [(hose )-85(that )-85(can )-85(block )-85(for)20(ever)74(.)]TJ -26.631 -1.2 Td [(Included in this category ar)18(e)]TJ 0.883 Tc 1.8 -1.8 Td (\245R)Tj 0 Tc 2.157 0 Td [(eads )-27(that )-27(can )-27(block )-27(the )-27(caller )-27(for)18(ever )-27(if )-27(data )-27(isn\325t )-27(pr)19(esent )-27(with )-27(certain )-27(\336le )-27(types)]TJ -0.668 -1.2 Td (\(pipes, terminal devices, and network devices\))Tj 0.883 Tc -1.489 -1.6 Td (\245W)Tj 0 Tc 2.415 0 Td [(rites )-33(that )-33(can )-33(block )-33(the )-33(caller )-33(for)18(ever )-33(if )-33(the )-33(data )-33(can\325t )-33(be )-33(accepted )-33(immediately)]TJ -0.926 -1.2 Td (by these same \336le types)Tj 0.883 Tc -1.489 -1.6 Td (\245O)Tj 0 Tc 2.275 0 Td [(pens )-210(on )-210(certain )-210(\336le )-210(types )-210(that )-210(block )-210(the )-210(caller )-210(until )-210(some )-210(condition )-210(occurs)]TJ -0.786 -1.2 Td [(\(such )-111(as )-111(a )-111(terminal )-111(device )-111(open )-111(waiting )-111(until )-111(an )-111(attached )-111(modem )-111(answers )-111(the)]TJ 0 -1.2 TD (phone\))Tj 0.883 Tc -1.489 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.331 0 Td (pause)Tj /T1_1 1 Tf 3.27 0 Td [(function )-20(\(which )-20(by )-20(de\336nition )-20(puts )-20(the )-20(calling )-20(pr)17(ocess )-20(to )-20(sleep )-20(until )-20(a)]TJ -5.214 -1.2 Td (signal is caught\) and the)Tj /TT0 1 Tf 11.033 0 Td (wait)Tj /T1_1 1 Tf 2.65 0 Td (function)Tj 0.883 Tc -15.172 -1.6 Td (\245C)Tj 0 Tc 2.198 0 Td (ertain)Tj /TT0 1 Tf 2.823 0 Td (ioctl)Tj /T1_1 1 Tf 3.25 0 Td (operations)Tj 0.883 Tc -8.271 -1.6 Td (\245S)Tj 0 Tc 2.014 0 Td [(ome of the interpr)18(ocess communication functions \(Chapter 15\))]TJ -3.814 -1.8 Td [(The )-288(notable )-288(exception )-288(to )-288(these )-288(slow )-288(system )-288(calls )-288(is )-288(anything )-288(r)13(elated )-288(to )-288(disk )-288(I/O.)]TJ T* [(Although )-34(a )-34(r)19(ead )-34(or )-34(a )-34(write )-34(of )-34(a )-34(disk )-34(\336le )-34(can )-34(block )-34(the )-34(caller )-34(temporarily )-34(\(while )-34(the )-34(disk)]TJ T* [(driver )-150(queues )-150(the )-150(r)18(equest )-150(and )-150(then )-150(the )-150(r)21(equest )-149(is )-149(executed\), )-149(unless )-149(a )-149(har)16(dwar)]TJ 0.3995 Tc 35.93 0 Td (ee)Tj 0 Tc 1.357 0 Td [(rr)18(or)]TJ -37.287 -1.2 Td [(occurs, the I/O operation always r)18(eturns and unblocks the caller quickly)111(.)]TJ 1.8 -1.2 Td [(One )-102(condition )-102(that )-102(is )-102(handled )-102(by )-102(interr)5(upted )-103(system )-103(calls, )-103(for )-103(example, )-103(is )-103(when )-103(a)]TJ -1.8 -1.2 Td [(pr)18(ocess )-52(initiates )-52(a )-52(r)18(ead )-52(fr)18(om )-52(a )-52(terminal )-52(device )-52(and )-52(the )-52(user )-52(at )-52(the )-52(terminal )-52(walks )-52(away)]TJ T* [(fr)18(om )-10(the )-10(terminal )-10(for )-10(an )-10(extended )-10(period.)-507(In )-10(this )-10(example, )-10(the )-10(pr)18(ocess )-10(could )-10(be )-10(blocked)]TJ T* [(for hours or days and would r)18(emain so unless the system was taken down.)]TJ 7.9995 0 0 7.9995 183.5896 364.9781 Tm [(POSIX.1 )-132(semantics )-132(for )-132(interr)9(upted)]TJ /TT0 1 Tf 15.902 0 Td (read)Tj /T1_1 1 Tf 0.3816 Tc (sa)Tj 0 Tc 3.706 0 Td (nd)Tj /TT0 1 Tf 1.575 0 Td (write)Tj /T1_1 1 Tf 0.3816 Tc (sc)Tj 0 Tc 4.25 0 Td [(hanged )-132(with )-132(the )-132(2001 )-132(version )-132(of )-132(the)]TJ -25.432 -1.25 Td [(standar)18(d. )-453(Earlier)-452(versions )-203(gave )-203(implementations )-203(a )-203(choice )-203(of )-203(how )-203(to )-203(deal )-203(with)]TJ /TT0 1 Tf 37.03 0 Td (read)Tj /T1_1 1 Tf 0.4529 Tc (sa)Tj 0 Tc 3.777 0 Td (nd)Tj /TT0 1 Tf -40.807 -1.25 Td (write)Tj /T1_1 1 Tf 0.4118 Tc (st)Tj 0 Tc 4.162 0 Td [(hat )-162(have )-162(pr)18(ocessed )-162(partial )-162(amounts )-162(of )-162(data.)-660(If)]TJ /TT0 1 Tf 21.967 0 Td (read)Tj /T1_1 1 Tf 2.812 0 Td [(has )-162(r)18(eceived )-162(and )-162(transferr)19(ed)]TJ -28.94 -1.25 Td [(data )-8(to )-8(an )-8(application\325s )-8(buf)18(fer)]TJ 0.2581 Tc 13.203 0 Td (,b)Tj 0 Tc 1.061 0 Td [(ut )-8(has )-8(not )-8(yet )-8(r)18(eceived )-8(all )-8(that )-8(the )-8(application )-8(r)18(equested )-8(and )-8(is)]TJ -14.264 -1.25 Td [(then )-185(interr)8(upted, )-185(the )-185(operating )-185(system )-185(could )-185(either )-185(fail )-185(the )-185(system )-185(call, )-185(with)]TJ /TT0 1 Tf 36.029 0 Td (errno)Tj /T1_1 1 Tf 3.435 0 Td [(set )-185(to)]TJ /TT0 1 Tf -39.464 -1.25 Td (EINTR)Tj /T1_1 1 Tf [(,)-430(or)-430(allow )-180(the )-180(system )-180(call )-180(to )-180(succeed, )-180(r)18(eturning )-180(the )-180(partial )-180(amount )-180(of )-180(data )-180(r)15(eceived.)]TJ 0 -1.25 Td (Similarly)Tj 0.2935 Tc 3.912 0 Td (,i)Tj 0 Tc 0.835 0 Td (f)Tj /TT0 1 Tf 0.627 0 Td (write)Tj /T1_1 1 Tf 3.294 0 Td [(is )-43(interr)8(upted )-43(after )-43(transferring )-43(some )-43(of )-43(the )-43(data )-43(in )-43(an )-43(application\325s )-43(buf)13(fer)74(,)]TJ -8.666 -1.25 Td [(the )-85(operation )-85(system )-85(could )-85(either )-85(fail )-85(the )-85(system )-85(call, )-85(with)]TJ /TT0 1 Tf 26.847 0 Td (errno)Tj /T1_1 1 Tf 3.335 0 Td [(set )-85(to)]TJ /TT0 1 Tf 2.771 0 Td (EINTR)Tj /T1_1 1 Tf [(,)-335(or)-335(allow )-85(the)]TJ -32.954 -1.25 Td [(system )-566(call )-566(to )-566(succeed, )-566(r)17(eturning )-566(the )-566(partial )-566(amount )-566(of )-566(data )-566(written.)-1068(Historically)111(,)]TJ 0 -1.25 Td [(implementations )-551(derived )-551(fr)18(om )-551(System )-551(V )-551(fail )-551(the )-551(system )-551(call, )-551(wher)18(eas )-551(BSD-derived)]TJ 0 -1.25 TD [(implementations )-149(r)18(eturn )-149(partial )-149(success.)]TJ -0.055 Tc 18.489 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-149(the )-149(2001 )-149(version )-149(of )-149(the )-149(POSIX.1 )-149(standar)15(d, )-149(the)]TJ -19.725 -1.25 Td (BSD-style semantics ar)Tj 0.25 Tc 10.049 0 Td (er)Tj 0 Tc 1.106 0 Td [(equir)18(ed.)]TJ 9.9994 0 0 9.9994 147.5924 234.9859 Tm [(The )-57(pr)18(oblem )-57(with )-57(interr)9(upted )-57(system )-57(calls )-57(is )-57(that )-57(we )-57(now )-57(have )-57(to )-57(handle )-57(the )-57(err)20(or)]TJ -0.018 Tc -1.8 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-83(explicitly)]TJ 0.5832 Tc 6.214 0 Td (.T)Tj 0 Tc 1.446 0 Td [(he )-83(typical )-83(code )-83(sequence )-83(\(assuming )-83(a )-83(r)17(ead )-83(operation )-83(and )-83(assuming)]TJ -8.516 -1.2 Td [(that we want to r)18(estart the r)18(ead even if it\325s interr)8(upted\) would be)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5929 194.2883 Tm (again:)Tj 2.4 -1.189 Td (if \(\(n = read\(fd, buf, BUFFSIZE\)\) < 0\) {)Tj 2.4 -1.189 Td (if \(errno == EINTR\))Tj 2.4 -1.189 Td [(goto again;)-3000(/* just an interrupted system call */)]TJ -2.4 -1.189 Td (/* handle other errors */)Tj -2.4 -1.189 Td (})Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47152 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.9)]TJ 36.334 0 Td [(Race )-250(Conditions)]TJ /T1_1 1 Tf 9.499 0 Td (247)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(We )-287(a)]TJ 0 Tc 2.24 0 Td [(ssume )-103(that )-103(the )-103(header)]TJ /TT0 1 Tf 10.393 0 Td (apue.h)Tj /T1_0 1 Tf 3.953 0 Td [(de\336nes )-103(whatever )-103(variables )-103(ar)]TJ 0.3533 Tc 13.275 0 Td (er)Tj 0 Tc 1.209 0 Td [(equir)18(ed. )-353(The)-354(\336ve)]TJ -0.018 Tc -31.07 -1.2 Td (ro)Tj 0 Tc 0.923 0 Td (utines)Tj /TT0 1 Tf 3.051 0 Td (TELL_WAIT)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 5.996 0 Td (TELL_PARENT)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 7.196 0 Td (TELL_CHILD)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 6.596 0 Td (WAIT_PARENT)Tj /T1_0 1 Tf 0.3465 Tc (,a)Tj 0 Tc 7.696 0 Td (nd)Tj /TT0 1 Tf 1.539 0 Td (WAIT_CHILD)Tj /T1_0 1 Tf -33 -1.2 Td [(can be either macr)18(os or functions.)]TJ -0.092 Tc 1.8 -1.2 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-247(show )-247(various )-247(ways )-247(to )-247(implement )-247(these)]TJ /TT0 1 Tf 20.341 0 Td (TELL)Tj /T1_0 1 Tf 2.897 0 Td (and)Tj /TT0 1 Tf 2.19 0 Td (WAIT)Tj /T1_0 1 Tf -0.018 Tc 2.897 0 Td (ro)Tj 0 Tc 0.923 0 Td [(utines )-247(in )-247(later)]TJ -32.436 -1.2 Td [(chapters: )-143(Section )-143(10.16 )-143(shows )-143(an )-143(implementation )-143(using )-143(signals; )-143(Figur)]TJ 0.3932 Tc 31.699 0 Td (e1)Tj 0 Tc 1.372 0 Td [(5.7 )-143(shows )-143(an)]TJ -33.072 -1.2 Td [(implementation using pipes.)-500(Let\325s look at an example that uses these \336ve r)18(outines.)]TJ /TT1 1 Tf -3.6 -3.36 Td (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(The )-111(pr)18(ogram )-111(in )-111(Figur)]TJ 0.3614 Tc 9.872 0 Td (e8)Tj 0 Tc 1.34 0 Td [(.12 )-111(outputs )-111(two )-111(strings: )-111(one )-111(fr)18(om )-111(the )-111(child )-111(and )-111(one )-111(fr)18(om )-111(the)]TJ -11.213 -1.2 Td [(par)18(ent. )-253(The)-253(pr)18(ogram )-3(contains )-3(a )-3(race )-3(condition )-3(because )-3(the )-3(output )-3(depends )-3(on )-3(the )-3(or)20(der)]TJ 0 -1.2 Td [(in )-177(which )-177(the )-177(pr)18(ocesses )-177(ar)]TJ 0.4273 Tc 11.777 0 Td (er)Tj 0 Tc 1.293 0 Td [(un )-177(by )-177(the )-177(kernel )-177(and )-177(the )-177(length )-177(of )-177(time )-177(for )-177(which )-177(each)]TJ -13.07 -1.2 Td [(pr)18(ocess r)8(uns.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5034.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 493.8397 Tm (#include "apue.h")Tj 0 -1.902 TD (static void charatatime\(char *\);)Tj T* (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(pid_t )-1200(pid;)]TJ 0 -1.902 TD (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(pid == 0\) {)Tj 0.6 -1.189 Td (charatatime\("output from child\\n"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (charatatime\("output from parent\\n"\);)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (static void)Tj 0 -1.189 TD (charatatime\(char *str\))Tj T* ({)Tj 2.4 -1.189 Td [(char )-1800(*ptr;)]TJ T* [(int )-2400(c;)]TJ 0 -1.902 TD (setbuf\(stdout, NULL\);)Tj 19.2 0 Td (/* set unbuffered */)Tj -19.2 -1.189 Td (for \(ptr = str; \(c = *ptr++\) != 0; \))Tj 2.4 -1.189 Td (putc\(c, stdout\);)Tj -4.8 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2109.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 248.0513 194.8629 Tm (Figure 8.12)Tj /T1_0 1 Tf 5.695 0 Td [(Pr)18(ogram with a race condition)]TJ -0.092 Tc 9.9982 0 0 9.9982 129.5769 168.4677 Tm [(We )-300(s)]TJ 0 Tc 2.177 0 Td [(et )-116(the )-116(standar)]TJ 0.366 Tc 6.244 0 Td (do)Tj 0 Tc 1.523 0 Td [(utput )-116(unbuf)18(fer)18(ed, )-116(so )-116(every )-116(character )-116(output )-116(generates )-116(a)]TJ /TT0 1 Tf 25.806 0 Td (write)Tj /T1_0 1 Tf (.)Tj -35.75 -1.2 Td [(The )-78(goal )-78(in )-78(this )-78(example )-78(is )-78(to )-78(allow )-78(the )-78(kernel )-78(to )-78(switch )-78(between )-78(the )-78(two )-78(pr)17(ocesses )-78(as)]TJ 0 -1.2 TD [(often )-168(as )-168(possible )-168(to )-168(demonstrate )-168(the )-168(race )-168(condition.)-672(\(If )-168(we )-168(didn\325t )-168(do )-168(this, )-168(we )-168(might)]TJ T* [(never )-196(see )-196(the )-196(type )-196(of )-196(output )-196(that )-196(follows.)-696(Not )-196(seeing )-196(the )-196(err)18(oneous )-196(output )-196(doesn\325t)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47153 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.3)]TJ /TT0 1 Tf 37.003 0 Td (fork)Tj /T1_0 1 Tf 2.9 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (231)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(communication )-123(is )-123(r)18(equir)18(ed. )-373(In)-373(the )-123(pr)18(ogram )-123(shown )-123(in )-123(Figur)]TJ 0.3729 Tc 27.284 0 Td (e8)Tj 0 Tc 1.352 0 Td [(.1, )-123(we )-123(simply )-123(have )-123(the)]TJ -28.636 -1.2 Td [(par)18(ent )-99(put )-99(itself )-99(to )-99(sleep )-99(for )-99(2 )-99(seconds, )-99(to )-99(let )-99(the )-99(child )-99(execute.)-602(Ther)18(e)-349(is)-349(no)-349(g)-1(uarantee)]TJ 0 -1.2 Td [(that )-187(the )-187(length )-187(of )-187(this )-187(delay )-187(is )-187(adequate, )-187(and )-187(we )-187(talk )-187(about )-187(this )-187(and )-187(other )-187(types )-187(of)]TJ 0 -1.2 TD [(synchr)18(onization )-138(in )-138(Section )-138(8.9 )-138(when )-138(we )-138(discuss )-138(race )-138(conditions.)-639(In )-138(Section )-138(10.16, )-138(we)]TJ T* [(show how to use signals to synchr)18(onize a par)18(ent and a child after a)]TJ /TT0 1 Tf 29.839 0 Td (fork)Tj /T1_0 1 Tf (.)Tj -28.039 -1.2 Td [(When )-163(we )-163(write )-163(to )-163(standar)]TJ 0.4129 Tc 12.125 0 Td (do)Tj 0 Tc 1.57 0 Td [(utput, )-163(we )-163(subtract )-163(1 )-163(fr)18(om )-163(the )-163(size )-163(of)]TJ /TT0 1 Tf 17.495 0 Td (buf)Tj /T1_0 1 Tf 2.213 0 Td [(to )-163(avoid)]TJ -35.202 -1.2 Td [(writing )-7(the )-7(terminating )-7(null )-7(byte.)-507(Although)]TJ /TT0 1 Tf 19.86 0 Td (strlen)Tj /T1_0 1 Tf 3.857 0 Td [(will )-7(calculate )-7(the )-7(length )-7(of )-7(a )-7(string)]TJ -23.717 -1.2 Td [(not )-52(including )-52(the )-52(terminating )-52(null )-52(byte,)]TJ /TT0 1 Tf 18.048 0 Td (sizeof)Tj /T1_0 1 Tf 3.902 0 Td [(calculates )-52(the )-52(size )-52(of )-52(the )-52(buf)17(fer)]TJ 0.3023 Tc 13.765 0 Td (,w)Tj 0 Tc 1.386 0 Td (hich)Tj -37.101 -1.2 Td [(does )-321(include )-321(the )-321(terminating )-321(null )-321(byte.)-821(Another )-321(dif)21(fer)18(ence )-321(is )-321(that )-321(using)]TJ /TT0 1 Tf 35.4 0 Td (strlen)Tj /T1_0 1 Tf -0.018 Tc -35.4 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(es )-16(a )-16(function )-16(call, )-16(wher)19(eas)]TJ /TT0 1 Tf 13.721 0 Td (sizeof)Tj /T1_0 1 Tf 3.866 0 Td [(calculates )-16(the )-16(buf)18(fer )-16(length )-16(at )-16(compile )-16(time, )-16(as)]TJ -18.443 -1.2 Td [(the buf)18(fer is initialized with a known string and its size is \336xed.)]TJ 1.8 -1.2 Td [(Note )-104(the )-104(interaction )-104(of)]TJ /TT0 1 Tf 10.626 0 Td (fork)Tj /T1_0 1 Tf 2.754 0 Td [(with )-104(the )-104(I/O )-104(functions )-104(in )-104(the )-104(pr)18(ogram )-104(in )-104(Figur)]TJ 0.3541 Tc 21.487 0 Td (e8)Tj 0 Tc 1.333 0 Td (.1.)Tj -38 -1.2 Td [(Recall )-34(fr)18(om )-34(Chapter )-34(3 )-34(that )-34(the)]TJ /TT0 1 Tf 13.73 0 Td (write)Tj /T1_0 1 Tf 3.284 0 Td [(function )-34(is )-34(not )-34(buf)18(fer)18(ed. )-284(Because)]TJ /TT0 1 Tf 15.086 0 Td (write)Tj /T1_0 1 Tf 3.284 0 Td [(is )-34(called)]TJ -35.385 -1.2 Td (befor)Tj 0.3183 Tc 2.288 0 Td (et)Tj 0 Tc 1.123 0 Td (he)Tj /TT0 1 Tf 1.379 0 Td (fork)Tj /T1_0 1 Tf 0.3183 Tc (,i)Tj 0 Tc 3.259 0 Td [(ts )-68(data )-68(is )-68(written )-68(once )-68(to )-68(standar)]TJ 0.3184 Tc 14.788 0 Td (do)Tj 0 Tc 1.475 0 Td [(utput. )-318(The)-319(standar)]TJ 0.3184 Tc 8.59 0 Td (dI)Tj 0 Tc 1.266 0 Td [(/O )-68(library)111(,)]TJ -34.169 -1.2 Td [(however)74(,)-250(is)-250(b)-1(uf)18(fer)18(ed. )-250(Recall)-250(fr)18(om Section 5.12 that standar)]TJ 0.2502 Tc 25.832 0 Td (do)Tj 0 Tc 1.407 0 Td [(utput is line buf)17(fer)18(ed if it\325s)]TJ -27.239 -1.2 Td [(connected )-342(to )-342(a )-342(terminal )-342(device; )-342(otherwise, )-342(it\325s )-342(fully )-342(buf)17(fer)18(ed. )-592(When)-592(we )-342(r)8(un )-342(the)]TJ -0 -1.2 Td [(pr)18(ogram )-120(interactively)111(,)-370(we)-370(get )-120(only )-120(a )-120(single )-120(copy )-120(of )-120(the )-120(\336rst)]TJ /TT0 1 Tf 27.528 0 Td (printf)Tj /T1_0 1 Tf 3.97 0 Td [(line, )-120(because )-120(the)]TJ -31.498 -1.2 Td (standar)Tj 0.2832 Tc 3.32 0 Td (do)Tj 0 Tc 1.44 0 Td [(utput )-33(buf)18(fer )-33(is )-33(\337ushed )-33(by )-33(the )-33(newline.)-533(When )-33(we )-33(r)16(edir)18(ect )-33(standar)]TJ 0.2833 Tc 29.185 0 Td (do)Tj 0 Tc 1.44 0 Td [(utput )-33(to)]TJ 0.3084 Tc -35.386 -1.2 Td (a\336)Tj 0 Tc 1.413 0 Td [(le, )-58(however)74(,)-308(we)-308(g)-1(et )-58(two )-58(copies )-58(of )-58(the)]TJ /TT0 1 Tf 16.974 0 Td (printf)Tj /T1_0 1 Tf 3.908 0 Td [(line. )-308(In)-309(this )-58(second )-58(case, )-58(the)]TJ /TT0 1 Tf 13.105 0 Td (printf)Tj /T1_0 1 Tf -35.4 -1.2 Td (befor)Tj 0.3356 Tc 2.288 0 Td (et)Tj 0 Tc 1.141 0 Td (he)Tj /TT0 1 Tf 1.397 0 Td (fork)Tj /T1_0 1 Tf 2.736 0 Td [(is )-86(called )-86(once, )-86(but )-86(the )-86(line )-86(r)18(emains )-86(in )-86(the )-86(buf)22(fer )-86(when)]TJ /TT0 1 Tf 24.787 0 Td (fork)Tj /T1_0 1 Tf 2.736 0 Td [(is )-86(called.)]TJ -35.083 -1.2 Td [(This )-103(buf)18(fer )-103(is )-103(then )-103(copied )-103(into )-103(the )-103(child )-103(when )-103(the )-103(par)18(ent\325s )-103(data )-103(space )-103(is )-103(copied )-103(to )-103(the)]TJ T* [(child. )-276(Both)-277(the )-26(par)18(ent )-26(and )-26(the )-26(child )-26(now )-26(have )-26(a )-26(standar)]TJ 0.2765 Tc 25.008 0 Td (dI)Tj 0 Tc 1.224 0 Td [(/O )-26(buf)18(fer )-26(with )-26(this )-26(line )-26(in )-26(it.)]TJ -26.232 -1.2 Td [(The )-71(second)]TJ /TT0 1 Tf 5.402 0 Td (printf)Tj /T1_0 1 Tf 0.3211 Tc (,r)Tj 0 Tc 4.566 0 Td [(ight )-71(befor)]TJ 0.3211 Tc 4.364 0 Td (et)Tj 0 Tc 1.126 0 Td (he)Tj /TT0 1 Tf 1.382 0 Td (exit)Tj /T1_0 1 Tf 0.3211 Tc (,j)Tj 0 Tc 3.205 0 Td [(ust )-71(appends )-71(its )-71(data )-71(to )-71(the )-71(existing )-71(buf)18(fer)74(.)]TJ -20.046 -1.2 Td [(When each pr)18(ocess terminates, its copy of the buf)18(fer is \336nally \337ushed.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3930.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 9.9988 0 0 9.9988 93.5888 364.1563 Tm (File Sharing)Tj /T1_0 1 Tf 3.6 -2.4 Td [(When )-30(we )-30(r)18(edir)18(ect )-30(the )-30(standar)]TJ 0.28 Tc 13.167 0 Td (do)Tj 0 Tc 1.437 0 Td [(utput )-30(of )-30(the )-30(par)18(ent )-30(fr)18(om )-30(the )-30(pr)18(ogram )-30(in )-30(Figur)]TJ 0.28 Tc 20.47 0 Td (e8)Tj 0 Tc 1.259 0 Td [(.1, )-30(the)]TJ -36.333 -1.2 Td [(child\325s )-64(standar)]TJ 0.3143 Tc 6.555 0 Td (do)Tj 0 Tc 1.471 0 Td [(utput )-64(is )-64(also )-64(r)17(edir)18(ected. )-314(Indeed,)-315(one )-64(characteristic )-64(of)]TJ /TT0 1 Tf 24.099 0 Td (fork)Tj /T1_0 1 Tf 2.714 0 Td [(is )-64(that )-64(all)]TJ -34.84 -1.2 Td [(\336le )-343(descriptors )-343(that )-343(ar)]TJ 0.5934 Tc 10.702 0 Td (eo)Tj 0 Tc 1.618 0 Td [(pen )-343(in )-343(the )-343(par)18(ent )-343(ar)]TJ 0.5933 Tc 10.038 0 Td (ed)Tj 0 Tc 1.683 0 Td [(uplicated )-343(in )-343(the )-343(child.)]TJ -0.092 Tc 11.498 0 Td [(We )-527(s)]TJ 0 Tc 2.404 0 Td (ay)Tj -0.037 Tc -37.944 -1.2 Td (\324\324)Tj 0 Tc 0.519 0 Td (duplicated\325)Tj 0.262 Tc 4.998 0 Td (\325b)Tj 0 Tc 1.093 0 Td [(ecause )-12(it\325s )-12(as )-12(if )-12(the)]TJ /TT0 1 Tf 8.493 0 Td (dup)Tj /T1_0 1 Tf 2.062 0 Td [(function )-12(had )-12(been )-12(called )-12(for )-12(each )-12(descriptor)]TJ 0.5121 Tc 19.399 0 Td (.T)Tj 0 Tc 1.375 0 Td (he)Tj -37.939 -1.2 Td [(par)18(ent )-32(and )-32(the )-32(child )-32(shar)]TJ 0.2823 Tc 11.176 0 Td (ea\336)Tj 0 Tc 2.149 0 Td [(le )-32(table )-32(entry )-32(for )-32(every )-32(open )-32(descriptor )-32(\(r)16(ecall )-32(Figur)]TJ 0.2822 Tc 23.081 0 Td (e3)Tj 0 Tc 1.261 0 Td (.9\).)Tj -35.867 -1.2 Td [(Consider )-17(a )-17(pr)18(ocess )-17(that )-17(has )-17(thr)18(ee )-17(dif)18(fer)18(ent )-17(\336les )-17(opened )-17(for )-17(standar)]TJ 0.2672 Tc 29.47 0 Td (di)Tj 0 Tc 1.169 0 Td [(nput, )-17(standar)18(d)]TJ -32.44 -1.2 Td [(output, )-76(and )-76(standar)]TJ 0.3262 Tc 8.92 0 Td (de)Tj 0 Tc 1.416 0 Td [(rr)18(or)]TJ 0.5762 Tc 1.639 0 Td (.O)Tj 0.3262 Tc 1.612 0 Td (nr)Tj 0 Tc 1.285 0 Td [(eturn )-76(fr)18(om)]TJ /TT0 1 Tf 5.176 0 Td (fork)Tj /T1_0 1 Tf [(,)-326(we)-326(have )-76(the )-76(arrangement )-76(shown )-76(in)]TJ -20.049 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e8)Tj 0 Tc 1.229 0 Td (.2.)Tj -1.812 -1.2 Td [(It )-98(is )-98(important )-98(that )-98(the )-98(par)18(ent )-98(and )-98(the )-98(child )-98(shar)]TJ 0.3478 Tc 22.126 0 Td (et)Tj 0 Tc 1.153 0 Td [(he )-98(same )-98(\336le )-98(of)19(fset. )-348(Consider)-348(a)]TJ -25.079 -1.2 Td [(pr)18(ocess )-161(that)]TJ /TT0 1 Tf 5.851 0 Td (fork)Tj /T1_0 1 Tf 0.4109 Tc (sac)Tj 0 Tc 4.59 0 Td [(hild, )-161(then)]TJ /TT0 1 Tf 4.816 0 Td (wait)Tj /T1_0 1 Tf 0.4109 Tc (sf)Tj 0 Tc 3.568 0 Td [(or )-161(the )-161(child )-161(to )-161(complete.)-661(Assume )-161(that )-161(both)]TJ -18.824 -1.2 Td [(pr)18(ocesses )-44(write )-44(to )-44(standar)]TJ 0.2944 Tc 11.598 0 Td (do)Tj 0 Tc 1.451 0 Td [(utput )-44(as )-44(part )-44(of )-44(their )-44(normal )-44(pr)16(ocessing. )-294(If)-295(the )-44(par)18(ent )-44(has)]TJ -13.05 -1.2 Td [(its )-104(standar)]TJ 0.3538 Tc 4.715 0 Td (do)Tj 0 Tc 1.511 0 Td [(utput )-104(r)18(edir)18(ected )-104(\(by )-104(a )-104(shell, )-104(per)18(haps\), )-104(it )-104(is )-104(essential )-104(that )-104(the )-104(par)18(ent\325s )-104(\336le)]TJ -6.226 -1.2 Td [(of)18(fset )-105(be )-105(updated )-105(by )-105(the )-105(child )-105(when )-105(the )-105(child )-105(writes )-105(to )-105(standar)]TJ 0.3547 Tc 28.827 0 Td (do)Tj 0 Tc 1.512 0 Td [(utput. )-355(In)-354(this )-105(case,)]TJ -30.338 -1.2 Td [(the )-30(child )-30(can )-30(write )-30(to )-30(standar)]TJ 0.2803 Tc 13.05 0 Td (do)Tj 0 Tc 1.437 0 Td [(utput )-30(while )-30(the )-30(par)18(ent )-30(is)]TJ /TT0 1 Tf 11.304 0 Td (wait)Tj /T1_0 1 Tf [(ing )-30(for )-30(it; )-30(on )-30(completion)]TJ -25.792 -1.2 Td [(of )-5(the )-5(child, )-5(the )-5(par)17(ent )-5(can )-5(continue )-5(writing )-5(to )-5(standar)]TJ 0.2553 Tc 24.13 0 Td (do)Tj 0 Tc 1.412 0 Td [(utput, )-5(knowing )-5(that )-5(its )-5(output)]TJ -25.543 -1.2 Td [(will )-34(be )-34(appended )-34(to )-34(whatever )-34(the )-34(child )-34(wr)17(ote. )-284(If)-284(the )-34(par)18(ent )-34(and )-34(the )-34(child )-34(did )-34(not )-34(shar)17(e)]TJ 0 -1.2 Td [(the )-92(same )-92(\336le )-92(of)18(fset, )-92(this )-92(type )-92(of )-92(interaction )-92(would )-92(be )-92(mor)]TJ 0.3425 Tc 26.094 0 Td (ed)Tj 0 Tc 1.433 0 Td [(if)18(\336cult )-92(to )-92(accomplish )-92(and)]TJ -27.526 -1.2 Td [(would r)18(equir)]TJ 0.25 Tc 5.822 0 Td (ee)Tj 0 Tc 1.208 0 Td [(xplicit actions by the par)18(ent.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47154 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (230)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Example)Tj /T1_1 1 Tf 3.6 -1.92 Td [(The )-129(pr)18(ogram )-129(in )-129(Figur)]TJ 0.379 Tc 9.925 0 Td (e8)Tj 0 Tc 1.358 0 Td [(.1 )-129(demonstrates )-129(the)]TJ /TT1 1 Tf 9.249 0 Td (fork)Tj /T1_1 1 Tf 2.779 0 Td [(function, )-129(showing )-129(how )-129(changes )-129(to)]TJ -23.311 -1.2 Td [(variables )-22(in )-22(a )-22(child )-22(pr)18(ocess )-22(do )-22(not )-22(af)20(fect )-22(the )-22(value )-22(of )-22(the )-22(variables )-22(in )-22(the )-22(par)18(ent )-22(pr)20(ocess.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6306.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 621.0245 Tm (#include "apue.h")Tj 0 -1.783 TD [(int )-2400(globvar)]TJ 0.6 Tc 9.6 0 Td (=6)Tj 4.8 Tc 1.8 0 Td (;/)Tj 0.6 Tc 6 0 Td (*e)Tj 0 Tc 1.8 0 Td (xternal variable in initialized data */)Tj -19.2 -1.189 Td [(char )-1800(buf[])-600(=)-600("a)-600(write to stdout\\n";)]TJ 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-2400(var;)-4800(/* automatic variable on the stack */)]TJ T* [(pid_t )-1200(pid;)]TJ 0 -1.783 TD (var = 88;)Tj 0 -1.189 TD (if \(write\(STDOUT_FILENO, buf, sizeof\(buf\)-1\) != sizeof\(buf\)-1\))Tj 2.4 -1.189 Td (err_sys\("write error"\);)Tj -2.4 -1.189 Td [(printf\("before fork\\n"\);)-2400(/* we don\325t flush stdout */)]TJ 0 -1.783 TD (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(pid == 0\) {)-3600(/* child */)]TJ 0.6 -1.189 Td (globvar++; )Tj 14.4 0 Td [(/*)-600(modify variables */)]TJ -14.4 -1.189 Td (var++;)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (sleep\(2\); )Tj 14.4 0 Td [(/*)-600(parent */)]TJ -16.8 -1.189 Td (})Tj T* (printf\("pid = %ld, glob = %d, var = %d\\n", \(long\)getpid\(\), globvar\ ,)Tj 1.2 -1.189 Td (var\);)Tj -1.2 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3434.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 257.3057 327.3891 Tm (Figure 8.1)Tj /T1_1 1 Tf 5.195 0 Td (Example of)Tj /TT1 1 Tf 5.26 0 Td (fork)Tj /T1_1 1 Tf 2.65 0 Td (function)Tj 9.9982 0 0 9.9982 129.577 303.3934 Tm [(If we execute this pr)18(ogram, we get)]TJ /TT1 1 Tf 8.9984 0 0 8.9984 147.5737 289.906 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (./a.out)Tj /TT1 1 Tf 0.6 Tc -1.2 -1.189 Td (aw)Tj 0 Tc 1.8 0 Td (rite to stdout)Tj -1.8 -1.189 Td (before fork)Tj 0 -1.189 TD (pid = 430, glob = 7, var = 89)Tj /T1_2 1 Tf 20 0 Td (child\325)Tj 0.25 Tc 2.186 0 Td (sv)Tj 0 Tc 1.139 0 Td (ariables wer)Tj 0.25 Tc 4.806 0 Td (ec)Tj 0 Tc 1.046 0 Td (hanged)Tj /TT1 1 Tf -29.177 -1.189 Td (pid = 429, glob = 6, var = 88)Tj /T1_2 1 Tf 20 0 Td [(par)18(ent\325)]TJ 0.25 Tc 2.816 0 Td (sc)Tj 0 Tc 1.046 0 Td (opy was not changed)Tj /TT1 1 Tf -23.862 -1.189 Td ($)Tj /TT2 1 Tf 1.2 0 Td (./a.out > temp.out)Tj /TT1 1 Tf -1.2 -1.189 Td ($)Tj /TT2 1 Tf 1.2 0 Td (cat temp.out)Tj /TT1 1 Tf 0.6 Tc -1.2 -1.189 Td (aw)Tj 0 Tc 1.8 0 Td (rite to stdout)Tj -1.8 -1.189 Td (before fork)Tj 0 -1.189 TD (pid = 432, glob = 7, var = 89)Tj T* (before fork)Tj 0 -1.189 TD (pid = 431, glob = 6, var = 88)Tj /T1_1 1 Tf 9.9982 0 0 9.9982 129.5771 157.4405 Tm [(In )-55(general, )-55(we )-55(never )-55(know )-55(whether )-55(the )-55(child )-55(starts )-55(executing )-55(befor)]TJ 0.3053 Tc 30.078 0 Td (et)Tj 0 Tc 1.11 0 Td [(he )-55(par)18(ent, )-55(or )-55(vice)]TJ -31.188 -1.2 Td [(versa. )-510(The)-511(or)18(der )-260(depends )-260(on )-260(the )-260(scheduling )-260(algorithm )-260(used )-260(by )-260(the )-260(kernel.)-760(If )-260(it\325s)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(quir)18(ed )-66(that )-66(the )-66(child )-66(and )-66(par)19(ent )-66(synchr)18(onize )-66(their )-66(actions, )-66(some )-66(form )-66(of )-66(interpr)19(ocess)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47155 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (146)Tj /T1_1 1 Tf 3.5 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Library)]TJ 34.372 0 Td [(Chapter )-250(5)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 163.9202 668.9599 Tm [(or )-16(\(b\) )-16(a )-16(line-buf)17(fer)18(ed )-16(str)18(eam )-16(\(that )-16(r)17(equir)18(es )-16(data )-16(to )-16(be )-16(r)16(equested )-17(fr)18(om )-17(the )-17(kernel\),)]TJ /T1_2 1 Tf -0 -1.2 Td (all)Tj /T1_1 1 Tf 1.329 0 Td [(line-buf)18(fer)18(ed )-79(output )-79(str)18(eams )-79(ar)]TJ 0.3288 Tc 14.008 0 Td (e\337)Tj 0 Tc 1.416 0 Td [(ushed. )-329(The)]TJ -0.018 Tc 5.531 0 Td (re)Tj 0 Tc 0.856 0 Td [(ason )-79(for )-79(the )-79(quali\336er )-79(on )-79(\(b\))]TJ -23.139 -1.2 Td [(is )-128(that )-128(the )-128(r)18(equested )-128(data )-128(may )-128(alr)19(eady )-128(be )-128(in )-128(the )-128(buf)18(fer)]TJ 0.3779 Tc 25.038 0 Td (,w)Tj 0 Tc 1.462 0 Td [(hich )-128(doesn\325t )-128(r)18(equir)18(e)]TJ -26.5 -1.2 Td [(data )-250(to )-250(be )-250(r)18(ead )-250(fr)18(om )-250(the )-250(kernel.)-750(Obviously)]TJ 0.5 Tc 20.62 0 Td (,a)Tj 0 Tc 1.25 0 Td [(ny )-250(input )-250(fr)18(om )-250(an )-250(unbuf)18(fer)18(ed)]TJ -21.87 -1.2 Td [(str)18(eam, item \(a\), r)18(equir)18(es data to be obtained fr)18(om the kernel.)]TJ -1.633 -2.08 Td [(3. )-633(Unbuf)18(fer)18(ed. )-463(The)-463(standar)]TJ 0.4628 Tc 13.163 0 Td (dI)Tj 0 Tc 1.411 0 Td [(/O )-213(library )-213(does )-213(not )-213(buf)18(fer )-213(the )-213(characters.)-712(If )-213(we)]TJ -12.94 -1.2 Td [(write )-216(15 )-216(characters )-216(with )-216(the )-216(standar)]TJ 0.4664 Tc 16.886 0 Td (dI)Tj 0 Tc 1.414 0 Td (/O)Tj /TT0 1 Tf 1.858 0 Td (fputs)Tj /T1_1 1 Tf 3.466 0 Td [(function, )-216(for )-216(example, )-216(we)]TJ -23.625 -1.2 Td [(expect )-122(these )-122(15 )-122(characters )-122(to )-122(be )-122(output )-122(as )-122(soon )-122(as )-122(possible, )-122(pr)18(obably )-122(with )-122(the)]TJ /TT0 1 Tf 0 -1.2 TD (write)Tj /T1_1 1 Tf 3.25 0 Td [(function fr)18(om Section 3.8.)]TJ -3.25 -1.8 Td [(The )-2(standar)]TJ 0.2525 Tc 5.246 0 Td (de)Tj 0 Tc 1.342 0 Td [(rr)18(or )-2(str)18(eam, )-2(for )-2(example, )-2(is )-2(normally )-2(unbuf)15(fer)18(ed )-2(so )-2(that )-2(any )-2(err)16(or)]TJ -6.589 -1.2 Td [(messages )-315(ar)]TJ 0.5653 Tc 5.611 0 Td (ed)Tj 0 Tc 1.655 0 Td [(isplayed )-315(as )-315(quickly )-315(as )-315(possible, )-315(r)17(egar)18(dless )-315(of )-315(whether )-315(they)]TJ -7.267 -1.2 Td (contain a newline.)Tj -3.433 -2.16 Td [(ISO C r)18(equir)18(es the following buf)18(fering characteristics:)]TJ 0.883 Tc 1.8 -2.16 Td (\245S)Tj 0 Tc 2.014 0 Td (tandar)Tj 0.2677 Tc 2.896 0 Td (di)Tj 0 Tc 1.17 0 Td [(nput )-18(and )-18(standar)]TJ 0.2677 Tc 7.66 0 Td (do)Tj 0 Tc 1.425 0 Td [(utput )-18(ar)]TJ 0.2677 Tc 3.604 0 Td (ef)Tj 0 Tc 1.08 0 Td [(ully )-18(buf)18(fer)18(ed, )-18(if )-18(and )-18(only )-18(if )-18(they )-18(do )-18(not)]TJ -0.018 Tc -18.359 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (fer to an interactive device.)Tj 0.883 Tc -2.345 -1.6 Td (\245S)Tj 0 Tc 2.014 0 Td (tandar)Tj 0.25 Tc 2.896 0 Td (de)Tj 0 Tc 1.34 0 Td [(rr)18(or is never fully buf)18(fer)18(ed.)]TJ -6.25 -2.16 Td [(This, )-234(however)]TJ 0.4843 Tc 6.45 0 Td (,d)Tj 0 Tc 1.345 0 Td [(oesn\325t )-234(tell )-234(us )-234(whether )-234(standar)]TJ 0.4844 Tc 13.983 0 Td (di)Tj 0 Tc 1.386 0 Td [(nput )-234(and )-234(standar)]TJ 0.4844 Tc 8.094 0 Td (do)Tj 0 Tc 1.641 0 Td [(utput )-234(ar)18(e)]TJ -34.7 -1.2 Td [(unbuf)18(fer)18(ed )-81(or )-81(line )-81(buf)19(fer)18(ed )-81(if )-81(they )-81(r)18(efer )-81(to )-81(an )-81(interactive )-81(device )-81(and )-81(whether )-81(standar)21(d)]TJ -0 -1.2 Td [(err)18(or )-279(should )-279(be )-279(unbuf)17(fer)18(ed )-279(or )-279(line )-279(buf)17(fer)18(ed. )-529(Most)-530(implementations )-279(default )-279(to )-279(the)]TJ -0 -1.2 Td [(following types of buf)18(fering:)]TJ 0.883 Tc 1.8 -2.16 Td (\245S)Tj 0 Tc 2.014 0 Td (tandar)Tj 0.25 Tc 2.896 0 Td (de)Tj 0 Tc 1.34 0 Td [(rr)18(or is always unbuf)18(fer)18(ed.)]TJ 0.883 Tc -6.25 -1.6 Td (\245A)Tj 0 Tc 2.267 0 Td [(ll )-87(other )-87(str)18(eams )-87(ar)]TJ 0.3375 Tc 8.213 0 Td (el)Tj 0 Tc 1.107 0 Td [(ine )-87(buf)18(fer)18(ed )-87(if )-87(they )-87(r)17(efer )-87(to )-87(a )-87(terminal )-87(device; )-87(otherwise,)]TJ -10.098 -1.2 Td (they ar)Tj 0.25 Tc 3.07 0 Td (ef)Tj 0 Tc 1.062 0 Td [(ully buf)18(fer)18(ed.)]TJ 7.9995 0 0 7.9995 183.5863 326.1804 Tm [(The )-8(four )-8(platforms )-8(discussed )-8(in )-8(this )-8(book )-8(follow )-8(these )-8(conventions )-8(for )-8(standar)]TJ 0.258 Tc 34.787 0 Td (dI)Tj 0 Tc 1.206 0 Td [(/O )-8(buf)18(fering:)]TJ -35.993 -1.25 Td (standar)Tj 0.3103 Tc 3.32 0 Td (de)Tj 0 Tc 1.4 0 Td [(rr)18(or )-60(is )-60(unbuf)18(fer)18(ed, )-60(str)18(eams )-60(open )-60(to )-60(terminal )-60(devices )-60(ar)]TJ 0.3101 Tc 24.504 0 Td (el)Tj 0 Tc 1.08 0 Td [(ine )-60(buf)18(fer)18(ed, )-60(and )-60(all )-60(other)]TJ -30.305 -1.25 Td [(str)18(eams ar)]TJ 0.25 Tc 4.54 0 Td (ef)Tj 0 Tc 1.062 0 Td [(ully buf)18(fer)18(ed.)]TJ -0.092 Tc 9.9994 0 0 9.9994 129.5892 283.183 Tm [(We )-184(e)]TJ 0 Tc 2.116 0 Td (xplor)Tj 0.25 Tc 2.331 0 Td (es)Tj 0 Tc 1.153 0 Td (tandar)Tj 0.25 Tc 2.896 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O buf)18(fering in mor)]TJ 0.25 Tc 8.928 0 Td (ed)Tj 0 Tc 1.34 0 Td (etail in Section 5.12 and Figur)Tj 0.25 Tc 13.029 0 Td (e5)Tj 0 Tc 1.229 0 Td [(.1)55(1.)]TJ -32.42 -1.2 Td [(If )-29(we )-29(don\325t )-29(like )-29(these )-29(defaults )-29(for )-29(any )-29(given )-29(str)18(eam, )-29(we )-29(can )-29(change )-29(the )-29(buf)18(fering )-29(by)]TJ -1.8 -1.2 Td (calling either the)Tj /TT0 1 Tf 7.644 0 Td (setbuf)Tj /T1_1 1 Tf 3.85 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (setvbuf)Tj /T1_1 1 Tf 4.45 0 Td (function.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5888 241.2855 Tm (#include )Tj 0 -2.021 TD (void setbuf\(FILE *restrict)Tj /T1_2 1 Tf 16.2 0 Td (fp)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (har *restrict)Tj /T1_2 1 Tf 8.4 0 Td (buf)Tj /TT0 1 Tf 1.482 0 Td (\);)Tj -28.66 -2.021 Td (int setvbuf\(FILE *restrict)Tj /T1_2 1 Tf 16.2 0 Td (fp)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (har *restrict)Tj /T1_2 1 Tf 8.4 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.097 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (mode)Tj /TT0 1 Tf (,)Tj -24.875 -1.189 Td (size_t)Tj /T1_2 1 Tf 4.2 0 Td (size)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 12.888 -2.021 Td [(Returns: 0 if OK, nonzer)18(o)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1715.25 cm 0 0 m 0 788 l 3900 788 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 156.8112 Tm [(These )-75(functions )-75(must )-75(be )-75(called)]TJ /T1_2 1 Tf 14.219 0 Td (after)Tj /T1_1 1 Tf 2.158 0 Td [(the )-75(str)18(eam )-75(has )-75(been )-75(opened )-75(\(obviously)]TJ 0.3253 Tc 17.497 0 Td (,s)Tj 0 Tc 0.999 0 Td [(ince )-75(each)]TJ -0.018 Tc -34.874 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(es )-246(a )-246(valid )-246(\336le )-246(pointer )-246(as )-246(its )-246(\336rst )-246(ar)18(gument\) )-246(but)]TJ /T1_2 1 Tf 24.88 0 Td [(befor)18(e)]TJ /T1_1 1 Tf 2.83 0 Td [(any )-246(other )-246(operation )-246(is)]TJ -28.566 -1.2 Td [(performed on the str)18(eam.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47156 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.19)]TJ 39.081 0 Td [(File )-250(T)55(imes)]TJ /T1_1 1 Tf 6.752 0 Td (125)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (The)Tj /TT0 1 Tf 1.941 0 Td (ls)Tj /T1_0 1 Tf 1.467 0 Td [(command )-17(displays )-17(or )-17(sorts )-17(only )-17(on )-17(one )-17(of )-17(the )-17(thr)18(ee )-17(time )-17(values.)-517(By )-17(default,)]TJ -5.208 -1.2 Td [(when )-15(invoked )-15(with )-15(either )-15(the)]TJ /TT0 1 Tf 13.406 0 Td (-l)Tj /T1_0 1 Tf 1.465 0 Td [(or )-15(the)]TJ /TT0 1 Tf 2.858 0 Td (-t)Tj /T1_0 1 Tf 1.465 0 Td [(option, )-15(it )-15(uses )-15(the )-15(modi\336cation )-15(time )-15(of )-15(a )-15(\336le.)]TJ -19.194 -1.2 Td (The)Tj /TT0 1 Tf 1.959 0 Td (-u)Tj /T1_0 1 Tf 1.486 0 Td [(option )-35(causes )-35(the)]TJ /TT0 1 Tf 8.009 0 Td (ls)Tj /T1_0 1 Tf 1.486 0 Td [(command )-36(to )-36(use )-36(the )-36(access )-36(time, )-36(and )-36(the)]TJ /TT0 1 Tf 18.523 0 Td (-c)Tj /T1_0 1 Tf 1.486 0 Td [(option )-36(causes)]TJ -32.948 -1.2 Td (it to use the changed-status time.)Tj 1.8 -1.2 Td (Figur)Tj 0.2929 Tc 2.383 0 Td (e4)Tj 0 Tc 1.272 0 Td [(.20 )-43(summarizes )-43(the )-43(ef)18(fects )-43(of )-43(the )-43(various )-43(functions )-43(that )-43(we\325ve )-43(described )-43(on)]TJ -5.455 -1.2 Td [(these )-122(thr)18(ee )-122(times.)-622(Recall )-122(fr)18(om )-122(Section )-122(4.14 )-122(that )-122(a )-122(dir)15(ectory )-122(is )-122(simply )-122(a )-122(\336le )-122(containing)]TJ 0 -1.2 TD [(dir)18(ectory )-364(entries: )-364(\336lenames )-364(and )-364(associated )-364(i-node )-364(numbers.)-861(Adding, )-363(deleting, )-363(or)]TJ -0 -1.2 Td [(modifying )-367(these )-367(dir)18(ectory )-367(entries )-367(can )-367(af)16(fect )-367(the )-367(thr)18(ee )-367(times )-367(associated )-367(with )-367(that)]TJ T* [(dir)18(ectory)]TJ 0.625 Tc 3.914 0 Td (.T)Tj 0 Tc 1.488 0 Td [(his )-125(is )-125(why )-125(Figur)]TJ 0.3749 Tc 7.492 0 Td (e4)Tj 0 Tc 1.354 0 Td [(.20 )-125(contains )-125(one )-125(column )-125(for )-125(the )-125(thr)18(ee )-125(times )-125(associated)]TJ -14.248 -1.2 Td [(with )-144(the )-144(\336le )-144(or )-144(dir)18(ectory )-144(and )-144(another )-144(column )-144(for )-144(the )-144(thr)19(ee )-144(times )-144(associated )-144(with )-144(the)]TJ T* [(par)18(ent )-185(dir)18(ectory )-185(of )-185(the )-185(r)18(efer)18(enced )-185(\336le )-185(or )-185(dir)18(ectory)]TJ 0.6848 Tc 23.07 0 Td (.F)Tj 0 Tc 1.491 0 Td [(or )-185(example, )-185(cr)18(eating )-185(a )-185(new )-185(\336le)]TJ -24.561 -1.2 Td [(af)18(fects )-56(the )-56(dir)18(ectory )-56(that )-56(contains )-56(the )-56(new )-56(\336le, )-56(and )-56(it )-56(af)22(fects )-56(the )-56(i-node )-56(for )-56(the )-56(new )-56(\336le.)]TJ T* [(Reading )-10(or )-10(writing )-10(a )-10(\336le, )-10(however)]TJ 0.26 Tc 15.134 0 Td (,a)Tj -0.018 Tc 1.01 0 Td (ff)Tj 0 Tc 0.648 0 Td [(ects )-10(only )-10(the )-10(i-node )-10(of )-10(the )-10(\336le )-10(and )-10(has )-10(no )-10(ef)18(fect )-10(on)]TJ -16.792 -1.2 Td [(the dir)18(ectory)111(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1376.25 4992.25 cm 0 0 m 3739 0 l S Q Q BT /T1_0 1 Tf 6.9992 0 0 6.9992 322.4263 490.9411 Tm [(Par)18(ent dir)18(ectory)]TJ -20.175 -1.429 Td (Function )Tj 11.575 0 Td [(Refer)18(enced \336le)-1919(of r)18(efer)18(enced \336le)-1790(Section )]TJ 27.786 0 Td (Note)Tj -27.116 -1.429 Td [(or dir)18(ectory )-3428(or)-250(dir)18(ectory)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2541.25 4672.25 cm 0 0 m 1245 0 l S Q Q BT /T1_0 1 Tf 2.273 Tc 6.9987 0 0 6.9987 262.6607 458.9174 Tm [(am )2495(c)-220(am )2495(c)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1376.25 4552.25 cm 0 0 m 3739 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1376.25 4532.25 cm 0 0 m 3739 0 l S Q Q BT /TT0 1 Tf 0 Tc 6.9983 0 0 6.9983 141.1271 444.8932 Tm (chmod)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.5 0 Td (fchmod)Tj /T1_0 1 Tf 12.0853 Tc 19.74 0 Td (\2454)Tj 0 Tc 13.191 0 Td (.9)Tj /TT0 1 Tf -36.431 -1.429 Td (chown)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.5 0 Td (fchown)Tj /T1_0 1 Tf 12.0853 Tc 19.74 0 Td (\2454)Tj 0 Tc 13.191 0 Td [(.1)55(1)]TJ /TT0 1 Tf -36.431 -1.429 Td (creat)Tj /T1_0 1 Tf 2.3586 Tc 17.311 0 Td [(\245\245\245 )-356(\245\245)]TJ 0 Tc 18.62 0 Td (3.4)Tj /TT0 1 Tf 4.012 0 Td (O_CREAT)Tj /T1_0 1 Tf 4.45 0 Td (new \336le)Tj /TT0 1 Tf -44.394 -1.429 Td (creat)Tj /T1_0 1 Tf 2.3586 Tc 20.275 0 Td (\245\245 )Tj 15.656 0 Td (3)Tj 0 Tc 0.5 0 Td (.4)Tj /TT0 1 Tf 3.512 0 Td (O_TRUNC)Tj /T1_0 1 Tf 4.45 0 Td (existing \336le)Tj /TT0 1 Tf -44.394 -1.429 Td (exec)Tj /T1_0 1 Tf 18.0144 Tc 17.311 0 Td (\2458)Tj 0 Tc 19.12 0 Td (.10)Tj /TT0 1 Tf -36.431 -1.429 Td (lchown)Tj /T1_0 1 Tf 12.0853 Tc 23.24 0 Td (\2454)Tj 0 Tc 13.191 0 Td [(.1)55(1)]TJ /TT0 1 Tf -36.431 -1.429 Td (link)Tj /T1_0 1 Tf 5.3231 Tc 23.24 0 Td (\245\245)Tj 3.1916 Tc 8.894 0 Td (\2454)Tj 0 Tc 4.298 0 Td [(.15 )-2012(par)18(ent of second ar)18(gument)]TJ /TT0 1 Tf -36.431 -1.429 Td (mkdir)Tj /T1_0 1 Tf 2.3586 Tc 17.311 0 Td [(\245\245\245 )-356(\245\245)]TJ 0 Tc 18.62 0 Td (4.21)Tj /TT0 1 Tf -35.931 -1.429 Td (mkfifo)Tj /T1_0 1 Tf 2.3586 Tc 17.311 0 Td [(\245\245\245 )-356(\245\245)]TJ 0 Tc 18.12 0 Td (15.5)Tj /TT0 1 Tf -35.431 -1.429 Td (open)Tj /T1_0 1 Tf 2.3586 Tc 17.311 0 Td [(\245\245\245 )-356(\245\245)]TJ 0 Tc 18.62 0 Td (3.3)Tj /TT0 1 Tf 4.012 0 Td (O_CREAT)Tj /T1_0 1 Tf 4.45 0 Td (new \336le)Tj /TT0 1 Tf -44.394 -1.429 Td (open)Tj /T1_0 1 Tf 2.3586 Tc 20.275 0 Td (\245\245 )Tj 15.656 0 Td (3)Tj 0 Tc 0.5 0 Td (.3)Tj /TT0 1 Tf 3.512 0 Td (O_TRUNC)Tj /T1_0 1 Tf 4.45 0 Td (existing \336le)Tj /TT0 1 Tf -44.394 -1.429 Td (pipe)Tj /T1_0 1 Tf 2.3586 Tc 17.311 0 Td (\245\245\245 )Tj 18.12 0 Td (1)Tj 0 Tc 0.5 0 Td (5.2)Tj /TT0 1 Tf -35.931 -1.429 Td (read)Tj /T1_0 1 Tf 18.0144 Tc 17.311 0 Td (\2453)Tj 0 Tc 19.12 0 Td (.7)Tj /TT0 1 Tf -36.431 -1.429 Td (remove)Tj /T1_0 1 Tf 5.3231 Tc 23.24 0 Td (\245\245)Tj 3.1916 Tc 8.894 0 Td (\2454)Tj 0 Tc 4.298 0 Td [(.15 )-2012(r)18(emove \336le =)]TJ /TT0 1 Tf 9.572 0 Td (unlink)Tj -46.004 -1.429 Td (remove)Tj /T1_0 1 Tf 2.3586 Tc 29.169 0 Td [(\245\245 )1776(4)]TJ 0 Tc 7.262 0 Td [(.15 )-2012(r)18(emove dir)18(ectory =)]TJ /TT0 1 Tf 12.222 0 Td (rmdir)Tj -48.654 -1.429 Td (rename)Tj /T1_0 1 Tf 5.3231 Tc 23.24 0 Td (\245\245)Tj 3.1916 Tc 8.894 0 Td (\2454)Tj 0 Tc 4.298 0 Td [(.16 )-2012(for)-250(both ar)18(guments)]TJ /TT0 1 Tf -36.431 -1.429 Td (rmdir)Tj /T1_0 1 Tf 2.3586 Tc 29.169 0 Td [(\245\245 )1776(4)]TJ 0 Tc 7.262 0 Td (.21)Tj /TT0 1 Tf -36.431 -1.429 Td (truncate)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 5.3 0 Td (ftruncate)Tj /T1_0 1 Tf 2.3586 Tc 14.975 0 Td (\245\245 )Tj 15.656 0 Td (4)Tj 0 Tc 0.5 0 Td (.13)Tj /TT0 1 Tf -36.431 -1.429 Td (unlink)Tj /T1_0 1 Tf 5.3231 Tc 23.24 0 Td (\245\245)Tj 3.1916 Tc 8.894 0 Td (\2454)Tj 0 Tc 4.298 0 Td (.15)Tj /TT0 1 Tf -36.431 -1.429 Td (utimes)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.1 0 Td (utimensat)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 5.9 0 Td (futimens)Tj /T1_0 1 Tf 2.3586 Tc 7.311 0 Td (\245\245\245 )Tj 18.62 0 Td (4)Tj 0 Tc 0.5 0 Td (.20)Tj /TT0 1 Tf -36.431 -1.429 Td (write)Tj /T1_0 1 Tf 2.3586 Tc 20.275 0 Td (\245\245 )Tj 15.656 0 Td (3)Tj 0 Tc 0.5 0 Td (.8)Tj ET q 0.099976 0 0 0.099976 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1376.25 2412.25 cm 0 0 m 3739 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4155.25 2412.25 cm 0 0 m 0 2580 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3786.25 2412.25 cm 0 0 m 0 2580 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3163.25 2412.25 cm 0 0 m 0 2580 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2541.25 2412.25 cm 0 0 m 0 2580 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 5115.25 2412.25 cm 0 0 m 0 2580 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1376.25 2412.25 cm 0 0 m 0 2580 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 159.84 222.9331 Tm (Figure 4.20)Tj /T1_0 1 Tf 5.695 0 Td [(Ef)18(fect of various functions on the access, modi\336cation, and changed-sta\ tus times)]TJ 9.997 0 0 9.997 129.5613 198.9403 Tm (\(The)Tj /TT0 1 Tf 2.777 0 Td (mkdir)Tj /T1_0 1 Tf 3.77 0 Td (and)Tj /TT0 1 Tf 2.463 0 Td (rmdir)Tj /T1_0 1 Tf 3.77 0 Td [(functions )-520(ar)]TJ 0.7702 Tc 5.778 0 Td (ec)Tj 0 Tc 1.693 0 Td [(over)18(ed )-520(in )-520(Section )-520(4.21.)-1021(The)]TJ /TT0 1 Tf 14.898 0 Td (utimes)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf -35.15 -1.2 Td (utimensat)Tj /T1_0 1 Tf 0.2926 Tc (,a)Tj 0 Tc 6.443 0 Td (nd)Tj /TT0 1 Tf 1.486 0 Td (futimens)Tj /T1_0 1 Tf 5.093 0 Td [(functions )-43(ar)]TJ 0.2926 Tc 5.301 0 Td (ec)Tj 0 Tc 1.216 0 Td [(over)18(ed )-43(in )-43(the )-43(next )-43(section.)-541(The )-42(seven)]TJ /TT0 1 Tf 17.063 0 Td (exec)Tj /T1_0 1 Tf -36.6 -1.2 Td [(functions )-39(ar)]TJ 0.2894 Tc 5.297 0 Td (ed)Tj 0 Tc 1.379 0 Td [(escribed )-39(in )-39(Section )-39(8.10.)]TJ -0.092 Tc 11.15 0 Td [(We )-224(d)]TJ 0 Tc 2.288 0 Td [(escribe )-39(the)]TJ /TT0 1 Tf 5.031 0 Td (mkfifo)Tj /T1_0 1 Tf 3.889 0 Td (and)Tj /TT0 1 Tf 1.982 0 Td (pipe)Tj /T1_0 1 Tf 2.689 0 Td [(functions )-39(in)]TJ -33.707 -1.2 Td (Chapter 15.\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47157 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (86)Tj /T1_1 1 Tf 3 0 Td [(File )-250(I/O)]TJ 39.741 0 Td [(Chapter )-250(3)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (If we add the line)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 651.191 Tm (set_fl\(STDOUT_FILENO, O_SYNC\);)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 632.1223 Tm [(to )-132(the )-132(beginning )-132(of )-132(the )-132(pr)18(ogram )-132(shown )-132(in )-132(Figur)]TJ 0.3821 Tc 22.136 0 Td (e3)Tj 0 Tc 1.361 0 Td [(.5, )-132(we\325ll )-132(turn )-132(on )-132(the )-132(synchr)18(onous-)]TJ -23.497 -1.2 Td [(write )-165(\337ag.)-665(This )-165(causes )-165(each)]TJ /TT0 1 Tf 13.354 0 Td (write)Tj /T1_1 1 Tf 3.415 0 Td [(to )-165(wait )-165(for )-165(the )-165(data )-165(to )-165(be )-165(written )-165(to )-165(disk )-165(befor)16(e)]TJ -0.018 Tc -16.769 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turning. )-255(Normally)-255(in )-5(the )-5(UNIX )-5(System, )-5(a)]TJ /TT0 1 Tf 18.728 0 Td (write)Tj /T1_1 1 Tf 3.255 0 Td [(only )-5(queues )-5(the )-5(data )-5(for )-5(writing; )-5(the)]TJ -22.838 -1.2 Td [(actual )-35(disk )-35(write )-35(operation )-35(can )-35(take )-35(place )-35(sometime )-35(later)]TJ 0.5351 Tc 25.347 0 Td (.A)Tj 0 Tc 1.848 0 Td [(database )-35(system )-35(is )-35(a )-35(likely)]TJ -27.195 -1.2 Td [(candidate )-94(for )-94(using)]TJ /TT0 1 Tf 9.108 0 Td (O_SYNC)Tj /T1_1 1 Tf [(,)-344(so)-344(t)-1(hat )-94(it )-94(knows )-94(on )-94(r)18(eturn )-94(fr)18(om )-94(a)]TJ /TT0 1 Tf 19.742 0 Td (write)Tj /T1_1 1 Tf 3.344 0 Td [(that )-94(the )-94(data )-94(is)]TJ -32.194 -1.2 Td [(actually on the disk, in case of an abnormal system failur)18(e.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-484(e)]TJ 0 Tc 2.416 0 Td [(xpect )-300(the)]TJ /TT0 1 Tf 4.853 0 Td (O_SYNC)Tj /T1_1 1 Tf 4.15 0 Td [(\337ag )-300(to )-300(incr)18(ease )-300(the )-300(system )-300(and )-300(clock )-300(times )-300(when )-300(the)]TJ -13.219 -1.2 Td [(pr)18(ogram )-62(r)8(uns. )-312(T)]TJ 0.3124 Tc 7.5 0 Td (ot)Tj 0 Tc 1.184 0 Td [(est )-62(this, )-62(we )-62(can )-62(r)8(un )-62(the )-62(pr)18(ogram )-62(in )-62(Figur)]TJ 0.3124 Tc 18.513 0 Td (e3)Tj 0 Tc 1.291 0 Td [(.5, )-62(copying )-62(492.6 )-62(MB )-62(of)]TJ -28.489 -1.2 Td [(data )-157(fr)18(om )-157(one )-157(\336le )-157(on )-157(disk )-157(to )-157(another )-157(and )-157(compar)]TJ 0.4068 Tc 23.054 0 Td (et)Tj 0 Tc 1.212 0 Td [(his )-157(with )-157(a )-157(version )-157(that )-157(does )-157(the)]TJ -24.266 -1.2 Td [(same )-69(thing )-69(with )-69(the)]TJ /TT0 1 Tf 9.32 0 Td (O_SYNC)Tj /T1_1 1 Tf 3.919 0 Td [(\337ag )-69(set.)-569(The )-69(r)18(esults )-69(fr)17(om )-69(a )-69(Linux )-69(system )-69(using )-69(the)]TJ /TT0 1 Tf 23.36 0 Td (ext4)Tj /T1_1 1 Tf -36.6 -1.2 Td (\336le system ar)Tj 0.25 Tc 5.844 0 Td (es)Tj 0 Tc 1.153 0 Td (hown in Figur)Tj 0.25 Tc 6.3 0 Td (e3)Tj 0 Tc 1.229 0 Td (.13.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1530.25 4897.25 cm 0 0 m 3431 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 350.278 481.7022 Tm [(User CPU)-1500(System CPU)-1500(Clock time)]TJ 0.121 -1.25 Td [(\(seconds\) )-2049(\(seconds\))-2479(\(seconds\))]TJ -15.201 0.625 Td (Operation)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1530.25 4677.25 cm 0 0 m 3431 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1530.25 4657.25 cm 0 0 m 3431 0 l S Q Q BT /T1_1 1 Tf -0.018 Tc 7.9986 0 0 7.9986 157.0437 457.6776 Tm (re)Tj 0 Tc 0.856 0 Td [(ad time fr)18(om Figur)]TJ 0.25 Tc 8.362 0 Td (e3)Tj 0 Tc 1.229 0 Td (.6 for)Tj /TT0 1 Tf 2.524 0 Td (BUFFSIZE)Tj /T1_1 1 Tf 0.25 Tc 5.05 0 Td (=4)Tj 0 Tc 1.356 0 Td [(,096 )-4112(0.03)-4726(0.58 )-4904(8.62)]TJ -19.377 -1.25 Td (normal)Tj /TT0 1 Tf 3.447 0 Td (write)Tj /T1_1 1 Tf 3.25 0 Td (to disk \336le)Tj 18.793 0 Td [(0.00 )-4475(1.05)]TJ 13.38 0 Td (9.70)Tj /TT0 1 Tf -38.87 -1.25 Td (write)Tj /T1_1 1 Tf 3.25 0 Td (to disk \336le with)Tj /TT0 1 Tf 7.162 0 Td (O_SYNC)Tj /T1_1 1 Tf 3.85 0 Td (set )Tj 11.227 0 Td [(0.02)-4726(1.09 )-4404(10.28)]TJ /TT0 1 Tf -25.489 -1.25 Td (write)Tj /T1_1 1 Tf 3.25 0 Td (to disk followed by)Tj /TT0 1 Tf 8.794 0 Td (fdatasync)Tj /T1_1 1 Tf 13.445 0 Td [(0.02 )-4475(1.14)-4655(17.93)]TJ /TT0 1 Tf -25.489 -1.25 Td (write)Tj /T1_1 1 Tf 3.25 0 Td (to disk followed by)Tj /TT0 1 Tf 8.794 0 Td (fsync)Tj /T1_1 1 Tf 13.445 0 Td [(0.00 )-4475(1.19)-4655(18.17)]TJ /TT0 1 Tf -25.489 -1.25 Td (write)Tj /T1_1 1 Tf 3.25 0 Td (to disk with)Tj /TT0 1 Tf 5.537 0 Td (O_SYNC)Tj /T1_1 1 Tf 3.85 0 Td (set followed by)Tj /TT0 1 Tf 7.019 0 Td (fsync)Tj /T1_1 1 Tf 5.833 0 Td [(0.02 )-4475(1.15)-4655(17.88)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1530.25 4037.25 cm 0 0 m 3431 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4479.25 4037.25 cm 0 0 m 0 860 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3916.25 4037.25 cm 0 0 m 0 860 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3443.25 4037.25 cm 0 0 m 0 860 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4961.25 4037.25 cm 0 0 m 0 860 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1530.25 4037.25 cm 0 0 m 0 860 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 177.7493 385.6674 Tm (Figure 3.13)Tj /T1_1 1 Tf 5.695 0 Td (Linux)Tj /TT0 1 Tf 2.853 0 Td (ext4)Tj /T1_1 1 Tf 2.65 0 Td [(timing r)18(esults using various synchr)18(onization mechanisms)]TJ 9.9976 0 0 9.9976 147.5646 358.074 Tm [(The )-20(six )-20(r)18(ows )-20(in )-20(Figur)]TJ 0.2698 Tc 9.421 0 Td (e3)Tj 0 Tc 1.249 0 Td [(.13 )-20(wer)]TJ 0.2699 Tc 3.21 0 Td (ea)Tj 0 Tc 1.249 0 Td [(ll )-20(measur)18(ed )-20(with )-20(a)]TJ /TT0 1 Tf 8.551 0 Td (BUFFSIZE)Tj /T1_1 1 Tf 5.07 0 Td [(of )-20(4,096 )-20(bytes.)-520(The)]TJ -0.018 Tc -30.549 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sults )-450(in )-450(Figur)]TJ 0.6997 Tc 6.723 0 Td (e3)Tj 0 Tc 1.679 0 Td [(.6 )-450(wer)]TJ 0.6997 Tc 3.14 0 Td (em)Tj 0 Tc 2.062 0 Td [(easur)18(ed )-450(while )-450(r)18(eading )-450(a )-450(disk )-450(\336le )-450(and )-450(writing )-450(to)]TJ /TT0 1 Tf -14.459 -1.2 Td (/dev/null)Tj /T1_1 1 Tf [(,)-254(so)-254(t)-1(her)]TJ 0.2543 Tc 8.893 0 Td (ew)Tj 0 Tc 1.567 0 Td [(as )-4(no )-4(disk )-4(output.)-505(The )-4(second )-4(r)18(ow )-4(in )-4(Figur)]TJ 0.2544 Tc 19.247 0 Td (e3)Tj 0 Tc 1.233 0 Td [(.13 )-4(corr)18(esponds )-4(to)]TJ -0.018 Tc -30.94 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ading )-145(a )-145(disk )-145(\336le )-145(and )-145(writing )-145(to )-145(another )-145(disk )-145(\336le.)-650(This )-145(is )-145(why )-145(the )-145(\336rst )-145(and )-145(second)]TJ -0.018 Tc -0.856 -1.2 Td (ro)Tj 0 Tc 0.923 0 Td [(ws )-121(in )-121(Figur)]TJ 0.3714 Tc 5.257 0 Td (e3)Tj 0 Tc 1.35 0 Td [(.13 )-121(ar)]TJ 0.3714 Tc 2.498 0 Td (ed)Tj 0 Tc 1.461 0 Td [(if)18(fer)18(ent. )-371(The)-372(system )-121(time )-121(incr)18(eases )-121(when )-121(we )-121(write )-121(to )-121(a )-121(disk)]TJ -11.49 -1.2 Td [(\336le, )-99(because )-99(the )-99(kernel )-99(now )-99(copies )-99(the )-99(data )-99(fr)18(om )-99(our )-99(pr)17(ocess )-99(and )-99(queues )-99(the )-99(data )-99(for)]TJ 0 -1.2 TD [(writing )-58(by )-58(the )-58(disk )-58(driver)]TJ 0.5577 Tc 11.546 0 Td (.W)Tj 0.3077 Tc 1.716 0 Td (ee)Tj 0 Tc 1.266 0 Td [(xpect )-58(the )-58(clock )-58(time )-58(to )-58(incr)18(ease )-58(as )-58(well )-58(when )-58(we )-58(write)]TJ -14.527 -1.2 Td (to a disk \336le.)Tj 1.8 -1.2 Td [(When )-132(we )-132(enable )-132(synchr)18(onous )-132(writes, )-132(the )-132(system )-132(and )-132(clock )-132(times )-132(should )-132(incr)14(ease)]TJ -1.8 -1.2 Td (signi\336cantly)Tj 0.5485 Tc 5.337 0 Td (.A)Tj 0.2985 Tc 1.576 0 Td (st)Tj 0 Tc 1.049 0 Td [(he )-48(thir)]TJ 0.2985 Tc 2.936 0 Td (dr)Tj 0 Tc 1.286 0 Td [(ow )-48(shows, )-48(the )-48(system )-48(time )-48(for )-48(writing )-48(synchr)15(onously )-49(is )-49(not)]TJ -12.184 -1.2 Td [(much )-75(mor)]TJ 0.3247 Tc 4.643 0 Td (ee)Tj 0 Tc 1.283 0 Td [(xpensive )-75(than )-75(when )-75(we )-75(used )-75(delayed )-75(writes.)-575(This )-75(implies )-75(that )-75(the )-75(Linux)]TJ -5.925 -1.2 Td [(operating )-237(system )-237(is )-237(doing )-237(the )-237(same )-237(amount )-237(of )-237(work )-237(for )-237(delayed )-237(and )-237(synchr)14(onous)]TJ T* [(writes )-11(\(which )-11(is )-11(unlikely\), )-11(or )-11(else )-11(the)]TJ /TT0 1 Tf 16.592 0 Td (O_SYNC)Tj /T1_1 1 Tf 3.861 0 Td [(\337ag )-11(isn\325t )-11(having )-11(the )-11(desir)17(ed )-11(ef)18(fect. )-261(In)-261(this)]TJ -20.453 -1.2 Td [(case, )-55(the )-55(Linux )-55(operating )-55(system )-55(isn\325t )-55(allowing )-55(us )-55(to )-55(set )-55(the)]TJ /TT0 1 Tf 27.115 0 Td (O_SYNC)Tj /T1_1 1 Tf 3.905 0 Td [(\337ag )-55(using)]TJ /TT0 1 Tf 4.73 0 Td (fcntl)Tj /T1_1 1 Tf (,)Tj -35.75 -1.2 Td [(instead )-165(failing )-165(without )-165(r)18(eturning )-165(an )-165(err)16(or )-165(\(but )-165(it )-165(would )-165(have )-165(honor)18(ed )-165(the )-165(\337ag )-165(if )-165(we)]TJ T* (wer)Tj 0.25 Tc 1.69 0 Td (ea)Tj 0 Tc 1.229 0 Td (ble to specify it when the \336le was opened\).)Tj -1.119 -1.2 Td [(The )-45(clock )-45(time )-45(in )-45(the )-45(last )-45(thr)16(ee )-45(r)18(ows )-45(r)18(e\337ects )-45(the )-45(extra )-45(time )-45(needed )-45(to )-45(wait )-45(for )-45(all )-45(of)]TJ -1.8 -1.2 Td [(the )-44(writes )-44(to )-44(be )-44(committed )-44(to )-44(disk.)-545(After )-44(writing )-44(a )-44(\336le )-44(synchr)18(onously)111(,)-294(we)-294(expect )-44(that )-44(a)]TJ -0 -1.2 Td [(call )-115(to)]TJ /TT0 1 Tf 3.129 0 Td (fsync)Tj /T1_1 1 Tf 3.366 0 Td [(will )-115(have )-115(no )-115(ef)17(fect. )-366(This)-365(case )-116(is )-116(supposed )-116(to )-116(be )-116(r)20(epr)18(esented )-116(by )-116(the )-116(last)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47158 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(3.6)]TJ /TT0 1 Tf 36.903 0 Td (lseek)Tj /T1_0 1 Tf 3.5 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (69)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (if \(lseek\(fd, 16384, SEEK_SET\) == -1\))Tj 2.4 -1.189 Td (err_sys\("lseek error"\);)Tj -2.4 -1.189 Td (/* offset now = 16384 */)Tj 0 -2.021 TD (if \(write\(fd, buf2, 10\) != 10\))Tj 2.4 -1.189 Td (err_sys\("buf2 write error"\);)Tj -2.4 -1.189 Td (/* offset now = 16394 */)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5756.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 254.1255 559.5518 Tm (Figure 3.2)Tj /T1_0 1 Tf 5.195 0 Td [(Cr)18(eate a \336le with a hole in it)]TJ 9.9988 0 0 9.9988 129.5846 535.5547 Tm [(Running this pr)18(ogram gives us)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5825 517.787 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l file.hole)Tj /T1_2 1 Tf 18.8 0 Td (check its size)Tj /TT0 1 Tf -20 -1.189 Td [(-rw-r--r-- )-600(1)-600(sar )-3600(16394)-600(Nov 25 01:01 file.hole)]TJ 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (od -c file.hole)Tj /T1_2 1 Tf 18.8 0 Td (let\325)Tj 0.25 Tc 1.223 0 Td (sl)Tj 0 Tc 0.917 0 Td (ook at the actual contents)Tj /TT0 1 Tf -22.14 -1.189 Td [(0000000 )-1200(a)]TJ 1.2 Tc 7.8 0 Td (bcdefghij)Tj 0 Tc 15.6 0 Td (\\0 \\0 \\0 \\0 \\0 \\0)Tj -23.4 -1.189 Td [(0000020 )-600(\\0)-600(\\0 \\0 \\0 \\0 \\0 \\0 \\0 \\0 \\0 \\0 \\0 \\0 \\0 \\0 \\0)]TJ 0 -1.189 TD (*)Tj 0 -1.189 TD [(0040000 )-1200(A)]TJ 1.2 Tc 7.8 0 Td (BCDEFGHIJ)Tj 0 Tc -7.8 -1.189 Td (0040012)Tj /T1_0 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5847 413.1292 Tm [(We )-197(u)]TJ 0 Tc 2.253 0 Td [(se )-13(the)]TJ /TT0 1 Tf 2.816 0 Td (od)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.596 -0.04 Td [(command )-13(to )-13(look )-13(at )-13(the )-13(contents )-13(of )-13(the )-13(\336le.)-514(The)]TJ /TT0 1 Tf 21.628 0 Td (-c)Tj /T1_0 1 Tf 1.463 0 Td [(\337ag )-13(tells )-13(it )-13(to )-13(print)]TJ -30.789 -1.2 Td [(the )-88(contents )-88(as )-88(characters.)]TJ -0.092 Tc 12.361 0 Td [(We )-272(c)]TJ 0 Tc 2.169 0 Td [(an )-88(see )-88(that )-88(the )-88(unwritten )-88(bytes )-88(in )-88(the )-88(middle )-88(ar)]TJ 0.338 Tc 21.686 0 Td (er)Tj 0 Tc 1.194 0 Td (ead)Tj -37.41 -1.2 Td [(back )-62(as )-62(zer)18(o. )-312(The)-312(seven-digit )-62(number )-62(at )-62(the )-62(beginning )-62(of )-62(each )-62(line )-62(is )-62(the )-62(byte )-62(of)18(fset )-62(in)]TJ 0 -1.2 TD (octal.)Tj -0.092 Tc 1.8 -1.2 Td [(To )-263(p)]TJ -0.018 Tc 1.997 0 Td (ro)Tj 0 Tc 0.923 0 Td [(ve )-79(that )-79(ther)18(e)-329(is)-329(r)18(eally )-79(a )-79(hole )-79(in )-79(the )-79(\336le, )-79(let\325s )-79(compar)]TJ 0.3288 Tc 23.279 0 Td (et)Tj 0 Tc 1.134 0 Td [(he )-79(\336le )-79(we )-79(just )-79(cr)18(eated)]TJ -29.132 -1.2 Td (with a \336le of the same size, but without holes:)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 335.3687 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (ls -ls file.hole file.nohole)Tj /T1_2 1 Tf 19.2 0 Td (compar)Tj 0.25 Tc 2.944 0 Td (es)Tj 0 Tc 1.028 0 Td (izes)Tj /TT0 1 Tf 0.6 Tc -23.172 -1.189 Td (8-)Tj 0 Tc 1.8 0 Td [(rw-r--r-- )-600(1)-600(sar )-3600(16394)-600(Nov 25 01:01 file.hole)]TJ -2.4 -1.189 Td (20 -rw-r--r--)Tj 0.6 Tc 9 0 Td (1s)Tj 0 Tc 1.8 0 Td [(ar )-3600(16394)-600(Nov 25 01:03 file.nohole)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5845 294.9036 Tm [(Although )-110(both )-110(\336les )-110(ar)]TJ 0.3596 Tc 10.026 0 Td (et)Tj 0 Tc 1.165 0 Td [(he )-110(same )-110(size, )-110(the )-110(\336le )-110(without )-110(holes )-110(consumes )-110(20 )-110(disk )-110(blocks,)]TJ -11.19 -1.2 Td [(wher)18(eas the \336le with holes consumes only 8 blocks.)]TJ 1.8 -1.2 Td [(In )-115(this )-115(example, )-115(we )-115(call )-115(the)]TJ /TT0 1 Tf 12.956 0 Td (write)Tj /T1_0 1 Tf 3.365 0 Td [(function )-115(\(Section )-115(3.8\).)]TJ -0.092 Tc 10.41 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-115(have )-115(mor)18(e)-365(to)-365(say)]TJ -29.918 -1.2 Td (about \336les with holes in Section 4.12.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2589.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 147.5734 231.2974 Tm [(Because )-513(the )-513(of)18(fset )-513(addr)18(ess )-513(that)]TJ /TT0 1 Tf 16.323 0 Td (lseek)Tj /T1_0 1 Tf 3.763 0 Td [(uses )-513(is )-513(r)19(epr)18(esented )-513(by )-513(an)]TJ /TT0 1 Tf 13.864 0 Td (off_t)Tj /T1_0 1 Tf (,)Tj -35.75 -1.2 Td [(implementations )-14(ar)]TJ 0.2643 Tc 8.625 0 Td (ea)Tj 0 Tc 1.243 0 Td [(llowed )-14(to )-14(support )-14(whatever )-14(size )-14(is )-14(appr)16(opriate )-14(on )-14(their )-14(particular)]TJ -9.869 -1.2 Td [(platform. )-265(Most)-266(platforms )-15(today )-15(pr)18(ovide )-15(two )-15(sets )-15(of )-15(interfaces )-15(to )-15(manipulate )-15(\336le )-15(of)15(fsets:)]TJ 0 -1.2 Td (one set that uses 32)Tj 8.5 0.09 Td (-)Tj 0.333 -0.09 Td [(bit \336le of)18(fsets and another set that uses 64)]TJ 18.388 0.09 Td (-)Tj 0.333 -0.09 Td [(bit \336le of)18(fsets.)]TJ -25.754 -1.2 Td [(The )-65(Single )-65(UNIX )-65(Speci\336cation )-65(pr)16(ovides )-65(a )-65(way )-65(for )-65(applications )-65(to )-65(determine )-65(which)]TJ -1.8 -1.2 Td [(envir)18(onments )-110(ar)]TJ 0.3605 Tc 7.353 0 Td (es)Tj 0 Tc 1.264 0 Td [(upported )-110(thr)18(ough )-110(the)]TJ /TT0 1 Tf 10.203 0 Td (sysconf)Tj /T1_0 1 Tf 4.561 0 Td [(function )-110(\(Section )-110(2.5.4\).)-611(Figur)]TJ 0.3605 Tc 13.531 0 Td (e3)Tj 0 Tc 1.339 0 Td (.3)Tj -38.25 -1.2 Td (summarizes the)Tj /TT0 1 Tf 7.269 0 Td (sysconf)Tj /T1_0 1 Tf 4.45 0 Td (constants that ar)Tj 0.25 Tc 7.265 0 Td (ed)Tj 0 Tc 1.34 0 Td (e\336ned.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47159 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (68)Tj /T1_1 1 Tf 3 0 Td [(File )-250(I/O)]TJ 39.741 0 Td [(Chapter )-250(3)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(If we invoke this pr)18(ogram interactively)111(,)-250(we)-250(get)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 652.2609 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out < /etc/passwd)Tj /TT0 1 Tf -1.2 -1.189 Td (seek OK)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (cat < /etc/passwd | ./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (cannot seek)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out < /var/spool/cron/FIFO)Tj /TT0 1 Tf -1.2 -1.189 Td (cannot seek)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5915.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 567.4319 Tm (Normally)Tj 0.5169 Tc 4.182 0 Td (,a\336)Tj 0 Tc 2.389 0 Td [(le\325s )-267(curr)18(ent )-267(of)18(fset )-267(must )-267(be )-267(a )-267(non-negative )-267(integer)]TJ 0.7668 Tc 23.342 0 Td (.I)Tj 0 Tc 1.354 0 Td [(t)-517(is)-517(possible,)]TJ -33.066 -1.2 Td (however)Tj 0.4472 Tc 3.806 0 Td (,t)Tj 0 Tc 1.023 0 Td [(hat )-197(certain )-197(devices )-197(could )-197(allow )-197(negative )-197(of)17(fsets. )-447(But)-448(for )-197(r)18(egular )-197(\336les, )-197(the)]TJ -4.829 -1.2 Td [(of)18(fset )-15(must )-15(be )-15(non-negative.)-515(Because )-15(negative )-15(of)18(fsets )-15(ar)]TJ 0.2649 Tc 24.909 0 Td (ep)Tj 0 Tc 1.345 0 Td [(ossible, )-15(we )-15(should )-15(be )-15(car)18(eful)]TJ -26.253 -1.2 Td [(to )-138(compar)]TJ 0.3878 Tc 4.611 0 Td (et)Tj 0 Tc 1.193 0 Td [(he )-138(r)18(eturn )-138(value )-138(fr)19(om)]TJ /TT0 1 Tf 9.951 0 Td (lseek)Tj /T1_1 1 Tf 3.388 0 Td [(as )-138(being )-138(equal )-138(to )-138(or )-138(not )-138(equal )-138(to)]TJ /TT2 1 Tf 15.493 0 Td (!)Tj /T1_1 1 Tf [(1, )-138(rather)]TJ -34.636 -1.2 Td (than testing whether it is less than 0.)Tj 7.999 0 0 7.999 183.5779 501.4398 Tm (The)Tj /TT0 1 Tf 1.924 0 Td (/dev/kmem)Tj /T1_1 1 Tf 5.65 0 Td [(device on Fr)18(eeBSD for the Intel x86 pr)18(ocessor supports negative of)18(fsets.)]TJ -7.574 -1.75 Td [(Because )-176(the )-176(of)18(fset )-176(\()]TJ /TT0 1 Tf 8.96 0 Td (off_t)Tj /T1_1 1 Tf [(\))-426(is)-426(a)-426(s)1(igned )-176(data )-176(type )-176(\(Figur)]TJ 0.4258 Tc 16.66 0 Td (e2)Tj 0 Tc 1.405 0 Td [(.21\), )-176(we )-176(lose )-176(a )-176(factor )-176(of )-176(2 )-176(in )-176(the)]TJ -27.025 -1.25 Td [(maximum \336le size.)-500(If)]TJ /TT0 1 Tf 9.798 0 Td (off_t)Tj /T1_1 1 Tf 3.25 0 Td (is a 32)Tj 2.715 0.09 Td (-)Tj 0.333 -0.09 Td (bit integer)Tj 0.25 Tc 4.454 0 Td (,t)Tj 0 Tc 0.826 0 Td (he maximum \336le size is 2)Tj 4.9994 0 0 4.9994 443.7862 481.4422 Tm (31)Tj /TT2 1 Tf 7.999 0 0 7.999 448.7856 477.4427 Tm (!)Tj /T1_1 1 Tf 0.25 Tc (1b)Tj 0 Tc 1.852 0 Td (ytes.)Tj /TT0 1 Tf 9.9988 0 0 9.9988 147.5818 459.4449 Tm (lseek)Tj /T1_1 1 Tf 3.316 0 Td [(only )-66(r)18(ecor)18(ds )-66(the )-66(curr)17(ent )-67(\336le )-67(of)18(fset )-67(within )-67(the )-67(kernel)]TJ 0.0833 Tc 23.315 0 Td (\321i)Tj 0.3166 Tc 1.374 0 Td (td)Tj 0 Tc 1.254 0 Td [(oes )-67(not )-67(cause )-67(any)]TJ -31.059 -1.2 Td [(I/O to take place.)-500(This of)18(fset is then used by the next r)18(ead or write operation.)]TJ 1.8 -1.2 Td [(The )-151(\336le\325s )-151(of)18(fset )-151(can )-151(be )-151(gr)18(eater )-151(than )-151(the )-151(\336le\325s )-151(curr)18(ent )-151(size, )-151(in )-151(which )-151(case )-151(the )-151(next)]TJ /TT0 1 Tf -1.8 -1.2 Td (write)Tj /T1_1 1 Tf 3.267 0 Td [(to )-17(the )-17(\336le )-17(will )-17(extend )-17(the )-17(\336le.)-517(This )-17(is )-17(r)16(eferr)18(ed )-17(to )-17(as )-17(cr)18(eating )-17(a )-17(hole )-17(in )-17(a )-17(\336le )-17(and )-17(is)]TJ -3.267 -1.2 Td [(allowed. )-250(Any)-250(bytes in a \336le that have not been written ar)]TJ 0.25 Tc 25.321 0 Td (er)Tj 0 Tc 1.106 0 Td (ead back as 0.)Tj 0.2997 Tc -24.627 -1.2 Td (Ah)Tj 0 Tc 1.66 0 Td [(ole )-50(in )-50(a )-50(\336le )-50(isn\325t )-50(r)20(equir)18(ed )-50(to )-50(have )-50(storage )-50(backing )-50(it )-50(on )-50(disk.)-548(Depending )-50(on )-50(the)]TJ -3.46 -1.2 Td [(\336le )-143(system )-143(implementation, )-143(when )-143(you )-143(write )-143(after )-143(seeking )-143(past )-143(the )-143(end )-143(of )-143(a )-143(\336le, )-143(new)]TJ 0 -1.2 TD [(disk )-137(blocks )-137(might )-137(be )-137(allocated )-137(to )-137(stor)]TJ 0.3874 Tc 17.223 0 Td (et)Tj 0 Tc 1.192 0 Td [(he )-137(data, )-137(but )-137(ther)17(e)-387(is)-387(n)]TJ 0.3873 Tc 10.207 0 Td (on)Tj 0 Tc 1.515 0 Td [(eed )-137(to )-137(allocate )-137(disk)]TJ -30.138 -1.2 Td (blocks for the data between the old end of \336le and the location wher)Tj 0.25 Tc 30.033 0 Td (ey)Tj 0 Tc 1.285 0 Td (ou start writing.)Tj /TT3 1 Tf -34.918 -2.16 Td (Example)Tj /T1_1 1 Tf 3.6 -2.04 Td [(The pr)18(ogram shown in Figur)]TJ 0.25 Tc 12.756 0 Td (e3)Tj 0 Tc 1.229 0 Td [(.2 cr)18(eates a \336le with a hole in it.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3143.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 304.7441 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD [(char )-1800(buf1[])]TJ 0.6 Tc 9 0 Td (=")Tj 0 Tc 1.8 0 Td (abcdefghij";)Tj -10.8 -1.189 Td [(char )-1800(buf2[])]TJ 0.6 Tc 9 0 Td (=")Tj 0 Tc 1.8 0 Td (ABCDEFGHIJ";)Tj -10.8 -2.021 Td (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(fd;)]TJ 0 -2.021 TD (if \(\(fd = creat\("file.hole", FILE_MODE\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("creat error"\);)Tj -2.4 -2.021 Td (if \(write\(fd, buf1, 10\) != 10\))Tj 2.4 -1.189 Td (err_sys\("buf1 write error"\);)Tj -2.4 -1.189 Td (/* offset now = 10 */)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47160 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (64)Tj /T1_1 1 Tf 3 0 Td [(File )-250(I/O)]TJ 39.741 0 Td [(Chapter )-250(3)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (O_TTY_INIT)Tj /T1_1 1 Tf 7.2 0 Td [(When )-306(opening )-306(a )-306(terminal )-306(device )-306(that )-306(is )-306(not )-306(alr)20(eady )-306(open, )-306(set )-306(the)]TJ 0 -1.2 TD [(nonstandar)18(d)]TJ /TT0 1 Tf 5.918 0 Td (termios)Tj /T1_1 1 Tf 4.477 0 Td [(parameters )-27(to )-27(values )-27(that )-27(r)19(esult )-27(in )-27(behavior )-27(that)]TJ -10.395 -1.2 Td [(conforms )-163(to )-163(the )-163(Single )-163(UNIX )-163(Speci\336cation.)]TJ -0.092 Tc 20.364 0 Td [(We )-348(d)]TJ 0 Tc 2.412 0 Td [(iscuss )-164(the)]TJ /TT0 1 Tf 4.824 0 Td (termios)Tj /T1_1 1 Tf -27.6 -1.2 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ew)Tj 0 Tc 1.563 0 Td (hen we discuss terminal I/O in Chapter 18.)Tj -12.253 -2.04 Td [(The )-51(following )-51(two )-51(\337ags )-51(ar)]TJ 0.3013 Tc 11.82 0 Td (ea)Tj 0 Tc 1.28 0 Td [(lso )-51(optional.)-551(They )-51(ar)]TJ 0.3013 Tc 9.455 0 Td (ep)Tj 0 Tc 1.381 0 Td [(art )-51(of )-51(the )-51(synchr)17(onized )-51(input )-51(and)]TJ -23.937 -1.2 Td (output option of the Single UNIX Speci\336cation \(and thus POSIX.1\).)Tj /TT0 1 Tf 0 -2.28 TD (O_DSYNC)Tj /T1_1 1 Tf 7.2 0 Td [(Have )-46(each)]TJ /TT0 1 Tf 4.973 0 Td (write)Tj /T1_1 1 Tf 3.296 0 Td [(wait )-46(for )-46(physical )-46(I/O )-46(to )-46(complete, )-46(but )-46(don\325t )-46(wait )-46(for)]TJ -8.27 -1.2 Td [(\336le )-122(attributes )-122(to )-122(be )-122(updated )-122(if )-122(they )-122(don\325t )-122(af)16(fect )-122(the )-122(ability )-122(to )-122(r)18(ead )-122(the)]TJ 0 -1.2 TD (data just written.)Tj 7.9995 0 0 7.9995 219.587 533.768 Tm (The)Tj /TT0 1 Tf 1.972 0 Td (O_DSYNC)Tj /T1_1 1 Tf 4.498 0 Td (and)Tj /TT0 1 Tf 1.991 0 Td (O_SYNC)Tj /T1_1 1 Tf 3.898 0 Td [(\337ags )-48(ar)]TJ 0.2976 Tc 3.263 0 Td (es)Tj 0 Tc 1.201 0 Td (imilar)Tj 0.2976 Tc 2.577 0 Td (,b)Tj 0 Tc 1.101 0 Td [(ut )-48(subtly )-48(dif)19(fer)18(ent. )-298(The)]TJ /TT0 1 Tf 10.84 0 Td (O_DSYNC)Tj /T1_1 1 Tf 4.498 0 Td (\337ag)Tj -35.836 -1.25 Td [(af)18(fects )-13(a )-13(\336le\325s )-13(attributes )-13(only )-13(when )-13(they )-13(need )-13(to )-13(be )-13(updated )-13(to )-13(r)18(e\337ect )-13(a )-13(change )-13(in )-13(the)]TJ 0 -1.25 TD [(\336le\325s )-24(data )-24(\(for )-24(example, )-24(update )-24(the )-24(\336le\325s )-24(size )-24(to )-24(r)18(e\337ect )-24(mor)]TJ 0.2736 Tc 26.025 0 Td (ed)Tj 0 Tc 1.364 0 Td [(ata\). )-274(W)55(ith )-24(the)]TJ /TT0 1 Tf 6.511 0 Td (O_SYNC)Tj /T1_1 1 Tf -33.9 -1.25 Td [(\337ag, )-115(data )-115(and )-115(attributes )-115(ar)]TJ 0.3654 Tc 12.106 0 Td (ea)Tj 0 Tc 1.344 0 Td [(lways )-115(updated )-115(synchr)17(onously)]TJ 0.6154 Tc 13.469 0 Td (.W)Tj 0 Tc 1.865 0 Td [(hen )-115(overwriting )-115(an)]TJ -28.785 -1.25 Td [(existing )-204(part )-204(of )-204(a )-204(\336le )-204(opened )-204(with )-204(the)]TJ /TT0 1 Tf 18.392 0 Td (O_DSYNC)Tj /T1_1 1 Tf 4.654 0 Td [(\337ag, )-204(the )-204(\336le )-204(times )-204(wouldn\325t )-204(be)]TJ -23.046 -1.25 Td [(updated )-22(synchr)18(onously)]TJ 0.5216 Tc 10.405 0 Td (.I)Tj 0.2716 Tc 1.109 0 Td (nc)Tj 0 Tc 1.298 0 Td [(ontrast, )-22(if )-22(we )-22(had )-22(opened )-22(the )-22(\336le )-22(with )-22(the)]TJ /TT0 1 Tf 18.904 0 Td (O_SYNC)Tj /T1_1 1 Tf 3.871 0 Td (\337ag,)Tj -35.586 -1.25 Td (every)Tj /TT0 1 Tf 2.93 0 Td (write)Tj /T1_1 1 Tf 3.456 0 Td [(to )-206(the )-206(\336le )-206(would )-206(update )-206(the )-206(\336le\325s )-206(times )-206(befor)]TJ 0.4563 Tc 21.443 0 Td (et)Tj 0 Tc 1.261 0 Td (he)Tj /TT0 1 Tf 1.517 0 Td (write)Tj /T1_1 1 Tf -0.018 Tc 3.456 0 Td (re)Tj 0 Tc 0.856 0 Td (turns,)Tj -0.018 Tc -34.92 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(gar)18(dless of whether we wer)]TJ 0.25 Tc 12.221 0 Td (ew)Tj 0 Tc 1.563 0 Td (riting over existing bytes or appending to the \336le.)Tj /TT0 1 Tf 9.9994 0 0 9.9994 129.5923 439.7736 Tm (O_RSYNC)Tj /T1_1 1 Tf 7.2 0 Td [(Have )-20(each)]TJ /TT0 1 Tf 4.921 0 Td (read)Tj /T1_1 1 Tf 2.67 0 Td [(operation )-20(on )-20(the )-20(\336le )-20(descriptor )-20(wait )-20(until )-20(any )-20(pending)]TJ -7.59 -1.2 Td (writes for the same portion of the \336le ar)Tj 0.25 Tc 17.501 0 Td (ec)Tj 0 Tc 1.173 0 Td (omplete.)Tj 7.9995 0 0 7.9995 219.587 407.7755 Tm [(Solaris )-98(10 )-98(supports )-98(all )-98(thr)18(ee )-98(synchr)18(onization )-98(\337ags.)-596(Historically)]TJ 0.3479 Tc 28.444 0 Td (,F)Tj -0.018 Tc 1.154 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD )-98(\(and )-98(thus)]TJ -30.454 -1.25 Td [(Mac )-104(OS )-104(X\) )-104(have )-104(used )-104(the)]TJ /TT0 1 Tf 11.956 0 Td (O_FSYNC)Tj /T1_1 1 Tf 4.554 0 Td [(\337ag, )-104(which )-104(has )-104(the )-104(same )-104(behavior )-104(as)]TJ /TT0 1 Tf 17.14 0 Td (O_SYNC)Tj /T1_1 1 Tf (.)Tj -33.65 -1.25 Td [(Because )-104(the )-104(two )-104(\337ags )-104(ar)]TJ 0.3545 Tc 11.016 0 Td (ee)Tj 0 Tc 1.312 0 Td [(quivalent, )-105(they )-105(de\336ne )-105(the )-105(\337ags )-105(to )-105(have )-105(the )-105(same )-105(value.)]TJ -12.329 -1.25 Td [(Fr)18(eeBSD )-190(8.0 )-190(doesn\325t )-190(support )-190(the)]TJ /TT0 1 Tf 15.379 0 Td (O_DSYNC)Tj /T1_1 1 Tf 4.64 0 Td (or)Tj /TT0 1 Tf 1.381 0 Td (O_RSYNC)Tj /T1_1 1 Tf 4.64 0 Td [(\337ags. )-440(Mac)-439(OS )-190(X )-190(doesn\325t)]TJ -26.039 -1.25 Td [(support )-57(the)]TJ /TT0 1 Tf 5.498 0 Td (O_RSYNC)Tj /T1_1 1 Tf 4.507 0 Td [(\337ag, )-57(but )-57(de\336nes )-57(the)]TJ /TT0 1 Tf 9.192 0 Td (O_DSYNC)Tj /T1_1 1 Tf 4.507 0 Td [(\337ag, )-57(tr)18(eating )-57(it )-57(the )-57(same )-57(as )-57(the)]TJ /TT0 1 Tf -23.704 -1.25 Td (O_SYNC)Tj /T1_1 1 Tf 3.979 0 Td [(\337ag. )-379(Linux)-379(3.2.0 )-129(supports )-129(the)]TJ /TT0 1 Tf 13.969 0 Td (O_DSYNC)Tj /T1_1 1 Tf 4.579 0 Td [(\337ag, )-129(but )-129(tr)18(eats )-129(the)]TJ /TT0 1 Tf 8.73 0 Td (O_RSYNC)Tj /T1_1 1 Tf 4.579 0 Td (\337ag)Tj -35.836 -1.25 Td (the same as)Tj /TT0 1 Tf 5.347 0 Td (O_SYNC)Tj /T1_1 1 Tf (.)Tj 9.9994 0 0 9.9994 147.591 326.7804 Tm [(The )-113(\336le )-113(descriptor )-113(r)18(eturned )-113(by)]TJ /TT0 1 Tf 14.336 0 Td (open)Tj /T1_1 1 Tf 2.763 0 Td (and)Tj /TT0 1 Tf 2.056 0 Td (openat)Tj /T1_1 1 Tf 3.963 0 Td [(is )-113(guaranteed )-113(to )-113(be )-113(the )-113(lowest-)]TJ -24.917 -1.2 Td [(number)18(ed )-47(unused )-47(descriptor)]TJ 0.5472 Tc 12.901 0 Td (.T)Tj 0 Tc 1.41 0 Td [(his )-47(fact )-47(is )-47(used )-47(by )-47(some )-47(applications )-47(to )-47(open )-47(a )-47(new )-47(\336le)]TJ -14.312 -1.2 Td [(on )-210(standar)]TJ 0.4601 Tc 4.908 0 Td (di)Tj 0 Tc 1.362 0 Td [(nput, )-210(standar)]TJ 0.4601 Tc 6.142 0 Td (do)Tj 0 Tc 1.617 0 Td [(utput, )-210(or )-210(standar)]TJ 0.4601 Tc 7.89 0 Td (de)Tj 0 Tc 1.55 0 Td [(rr)18(or)]TJ 0.7101 Tc 1.639 0 Td (.F)Tj 0 Tc 1.516 0 Td [(or )-210(example, )-210(an )-210(application)]TJ -26.625 -1.2 Td [(might )-93(close )-93(standar)]TJ 0.3434 Tc 8.829 0 Td (do)Tj 0 Tc 1.5 0 Td [(utput )167(\321 )167(normally)]TJ 0.3434 Tc 7.559 0 Td (,\336)Tj 0 Tc 1.198 0 Td [(le )-93(descriptor )-93(1)]TJ 0.0833 Tc 6.552 0 Td (\321a)Tj 0 Tc 1.583 0 Td [(nd )-93(then )-93(open )-93(another )-93(\336le,)]TJ -27.222 -1.2 Td [(knowing )-49(that )-49(it )-49(will )-49(be )-49(opened )-49(on )-49(\336le )-49(descriptor )-49(1.)]TJ -0.092 Tc 23.338 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-49(see )-49(a )-49(better )-49(way )-49(to )-49(guarantee)]TJ -24.725 -1.2 Td [(that )-183(a )-183(\336le )-183(is )-183(open )-183(on )-183(a )-183(given )-183(descriptor )-183(in )-183(Section )-183(3.12, )-183(when )-183(we )-183(explor)]TJ 0.4326 Tc 33.869 0 Td (et)Tj 0 Tc 1.238 0 Td (he)Tj /TT0 1 Tf 1.494 0 Td (dup2)Tj /T1_1 1 Tf -36.6 -1.2 Td (function.)Tj 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 1.942 0 Td (fd)Tj /T1_1 1 Tf 1.046 0 Td [(parameter )-18(distinguishes )-18(the)]TJ /TT0 1 Tf 12.633 0 Td (openat)Tj /T1_1 1 Tf 3.868 0 Td [(function )-18(fr)18(om )-18(the)]TJ /TT0 1 Tf 8.037 0 Td (open)Tj /T1_1 1 Tf 2.668 0 Td [(function. )-268(Ther)18(e)]TJ -31.995 -1.2 Td (ar)Tj 0.25 Tc 0.877 0 Td (et)Tj 0 Tc 1.055 0 Td [(hr)18(ee possibilities:)]TJ -1.932 -2.16 Td [(1. )-633(The)]TJ /T1_2 1 Tf 3.598 0 Td (path)Tj /T1_1 1 Tf 2.068 0 Td [(parameter )-41(speci\336es )-41(an )-41(absolute )-41(pathname.)-539(In )-40(this )-40(case, )-40(the)]TJ /T1_2 1 Tf 26.703 0 Td (fd)Tj /T1_1 1 Tf 1.069 0 Td [(parameter )-40(is)]TJ -31.804 -1.2 Td [(ignor)18(ed and the)]TJ /TT0 1 Tf 7.272 0 Td (openat)Tj /T1_1 1 Tf 3.85 0 Td (function behaves like the)Tj /TT0 1 Tf 11.293 0 Td (open)Tj /T1_1 1 Tf 2.65 0 Td (function.)Tj -26.698 -1.6 Td [(2. )-633(The)]TJ /T1_2 1 Tf 3.795 0 Td (path)Tj /T1_1 1 Tf 2.265 0 Td [(parameter )-238(speci\336es )-238(a )-238(r)18(elative )-238(pathname )-238(and )-238(the)]TJ /T1_2 1 Tf 23.062 0 Td (fd)Tj /T1_1 1 Tf 1.266 0 Td [(parameter )-238(is )-238(a )-238(\336le)]TJ -28.755 -1.2 Td [(descriptor )-157(that )-157(speci\336es )-157(the )-157(starting )-157(location )-157(in )-157(the )-157(\336le )-157(system )-157(wher)]TJ 0.4073 Tc 31.378 0 Td (et)Tj 0 Tc 1.212 0 Td [(he )-157(r)18(elative)]TJ -32.59 -1.2 Td [(pathname )-32(is )-32(to )-32(be )-32(evaluated.)-533(The)]TJ /T1_2 1 Tf 15.294 0 Td (fd)Tj /T1_1 1 Tf 1.06 0 Td [(parameter )-32(is )-32(obtained )-32(by )-32(opening )-32(the )-32(dir)16(ectory)]TJ -16.354 -1.2 Td (wher)Tj 0.25 Tc 2.272 0 Td (et)Tj 0 Tc 1.055 0 Td [(he r)18(elative pathname is to be evaluated.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47161 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(3.3)]TJ /TT0 1 Tf 30.786 0 Td (open)Tj /T1_0 1 Tf 2.9 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (openat)Tj /T1_0 1 Tf 4.1 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (63)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 219.5868 670.9597 Tm [(The )-36(purpose )-36(of )-36(the)]TJ /TT0 1 Tf 8.732 0 Td (O_SEARCH)Tj /T1_0 1 Tf 5.086 0 Td [(constant )-36(is )-36(to )-36(evaluate )-36(sear)18(ch )-36(permissions )-36(at )-36(the )-36(time)]TJ 0.3884 Tc -13.817 -1.25 Td (ad)Tj 0 Tc 1.499 0 Td [(ir)18(ectory )-138(is )-138(opened.)-638(Further )-138(operations )-138(using )-138(the )-138(dir)18(ectory\325s )-138(\336le )-138(descriptor )-138(will)]TJ -1.499 -1.25 Td [(not )-281(r)18(eevaluate )-281(permission )-281(to )-281(sear)17(ch )-281(the )-281(dir)17(ectory)]TJ 0.7814 Tc 23.136 0 Td (.N)Tj 0 Tc 1.862 0 Td [(one )-281(of )-281(the )-281(versions )-281(of )-281(the)]TJ -24.998 -1.25 Td [(operating systems cover)18(ed in this book support)]TJ /TT0 1 Tf 21.236 0 Td (O_SEARCH)Tj /T1_0 1 Tf 5.05 0 Td (yet.)Tj 9.9994 0 0 9.9994 129.5921 618.9629 Tm [(One )-233(and )-233(only )-233(one )-233(of )-233(the )-233(pr)19(evious )-233(\336ve )-233(constants )-233(must )-233(be )-233(speci\336ed.)-733(The )-233(following)]TJ 0 -1.2 TD (constants ar)Tj 0.25 Tc 5.281 0 Td (eo)Tj 0 Tc 1.275 0 Td (ptional:)Tj /TT0 1 Tf -6.556 -2.4 Td (O_APPEND)Tj /T1_0 1 Tf 7.2 0 Td [(Append )-177(to )-177(the )-177(end )-177(of )-177(\336le )-177(on )-177(each )-177(write.)]TJ -0.092 Tc 19.64 0 Td [(We )-361(d)]TJ 0 Tc 2.425 0 Td [(escribe )-177(this )-177(option )-177(in)]TJ -22.065 -1.2 Td [(detail in Section 3.1)55(1.)]TJ /TT0 1 Tf -7.2 -1.6 Td (O_CLOEXEC)Tj /T1_0 1 Tf 7.2 0 Td [(Set )-254(the)]TJ /TT0 1 Tf 3.725 0 Td (FD_CLOEXEC)Tj /T1_0 1 Tf 6.504 0 Td [(\336le )-254(descriptor )-254(\337ag.)]TJ -0.092 Tc 9.563 0 Td [(We )-438(d)]TJ 0 Tc 2.502 0 Td [(iscuss )-254(\336le )-254(descriptor)]TJ -22.295 -1.2 Td (\337ags in Section 3.14.)Tj /TT0 1 Tf -7.2 -1.6 Td (O_CREAT)Tj /T1_0 1 Tf 7.2 0 Td [(Cr)18(eate )-63(the )-63(\336le )-63(if )-63(it )-63(doesn\325t )-63(exist.)-563(This )-63(option )-63(r)15(equir)18(es )-63(a )-63(thir)]TJ 0.3134 Tc 26.57 0 Td (da)Tj -0.018 Tc 1.424 0 Td (rg)Tj 0 Tc 0.933 0 Td (ument)Tj -28.927 -1.2 Td [(to )-56(the)]TJ /TT0 1 Tf 2.871 0 Td (open)Tj /T1_0 1 Tf 2.706 0 Td [(function )-56(\(a )-56(fourth )-56(ar)18(gument )-56(to )-56(the)]TJ /TT0 1 Tf 15.724 0 Td (openat)Tj /T1_0 1 Tf 3.906 0 Td [(function\) )167(\321 )167(the)]TJ /T1_2 1 Tf -25.206 -1.2 Td (mode)Tj /T1_0 1 Tf 0.3031 Tc (,w)Tj 0 Tc 3.498 0 Td [(hich )-53(speci\336es )-53(the )-53(access )-53(permission )-53(bits )-53(of )-53(the )-53(new )-53(\336le.)]TJ 25.326 0.04 Td (\()Tj 0.333 -0.04 Td (When)Tj -29.157 -1.2 Td [(we )-77(describe )-77(a )-77(\336le\325s )-77(access )-77(permission )-77(bits )-77(in )-77(Section )-77(4.5, )-77(we\325ll )-77(see )-77(how)]TJ T* [(to )-25(specify )-25(the)]TJ /T1_2 1 Tf 6.214 0 Td (mode)Tj /T1_0 1 Tf 2.386 0 Td [(and )-25(how )-25(it )-25(can )-25(be )-25(modi\336ed )-25(by )-25(the)]TJ /TT0 1 Tf 15.556 0 Td (umask)Tj /T1_0 1 Tf 3.276 0 Td [(value )-26(of )-26(a)]TJ -27.432 -1.2 Td [(pr)18(ocess.\))]TJ /TT0 1 Tf -7.2 -1.6 Td (O_DIRECTORY)Tj /T1_0 1 Tf 7.2 0 Td [(Generate an err)18(or if)]TJ /T1_2 1 Tf 8.901 0 Td (path)Tj /T1_0 1 Tf 2.027 0 Td [(doesn\325t r)18(efer to a dir)18(ectory)111(.)]TJ /TT0 1 Tf -18.128 -1.6 Td (O_EXCL)Tj /T1_0 1 Tf 7.2 0 Td [(Generate )-252(an )-252(err)18(or )-252(if)]TJ /TT0 1 Tf 9.908 0 Td (O_CREAT)Tj /T1_0 1 Tf 4.702 0 Td [(is )-252(also )-252(speci\336ed )-252(and )-252(the )-252(\336le )-252(alr)19(eady)]TJ -14.61 -1.2 Td [(exists. )-365(This)-366(test )-115(for )-115(whether )-115(the )-115(\336le )-115(alr)17(eady )-115(exists )-115(and )-115(the )-115(cr)18(eation )-115(of)]TJ -0 -1.2 Td [(the )-159(\336le )-159(if )-159(it )-159(doesn\325t )-159(exist )-159(is )-159(an )-159(atomic )-159(operation.)]TJ -0.092 Tc 22.929 0 Td [(We )-343(d)]TJ 0 Tc 2.407 0 Td [(escribe )-159(atomic)]TJ -25.336 -1.2 Td (operations in mor)Tj 0.25 Tc 7.869 0 Td (ed)Tj 0 Tc 1.34 0 Td [(etail in Section 3.1)55(1.)]TJ /TT0 1 Tf -16.409 -1.6 Td (O_NOCTTY)Tj /T1_0 1 Tf 7.2 0 Td (If)Tj /T1_2 1 Tf 1.137 0 Td (path)Tj /T1_0 1 Tf -0.018 Tc 2.244 0 Td (re)Tj 0 Tc 0.856 0 Td [(fers )-217(to )-217(a )-217(terminal )-217(device, )-217(do )-217(not )-217(allocate )-217(the )-217(device )-217(as )-217(the)]TJ -4.237 -1.2 Td [(contr)18(olling )-514(terminal )-514(for )-514(this )-514(pr)19(ocess. )-764(W)]TJ 0.7636 Tc 19.997 0 Td (et)Tj 0 Tc 1.569 0 Td [(alk )-514(about )-514(contr)19(olling)]TJ -21.566 -1.2 Td (terminals in Section 9.6.)Tj /TT0 1 Tf -7.2 -1.6 Td (O_NOFOLLOW)Tj /T1_0 1 Tf 7.2 0 Td [(Generate )-38(an )-38(err)18(or )-38(if)]TJ /T1_2 1 Tf 9.054 0 Td (path)Tj /T1_0 1 Tf -0.018 Tc 2.065 0 Td (re)Tj 0 Tc 0.856 0 Td [(fers )-38(to )-38(a )-38(symbolic )-38(link.)]TJ -0.092 Tc 10.653 0 Td [(We )-222(d)]TJ 0 Tc 2.286 0 Td [(iscuss )-38(symbolic)]TJ -24.914 -1.2 Td (links in Section 4.17.)Tj /TT0 1 Tf -7.2 -1.6 Td (O_NONBLOCK)Tj /T1_0 1 Tf 7.2 0 Td (If)Tj /T1_2 1 Tf 1.049 0 Td (path)Tj /T1_0 1 Tf -0.018 Tc 2.156 0 Td (re)Tj 0 Tc 0.856 0 Td [(fers )-129(to )-129(a )-129(FIFO, )-129(a )-129(block )-129(special )-129(\336le, )-129(or )-129(a )-129(character )-129(special )-129(\336le,)]TJ -4.061 -1.2 Td [(this )-104(option )-104(sets )-104(the )-104(nonblocking )-104(mode )-104(for )-104(both )-104(the )-104(opening )-104(of )-104(the )-104(\336le)]TJ T* (and subsequent I/O.)Tj -0.092 Tc 9.705 0 Td [(We )-184(d)]TJ 0 Tc 2.248 0 Td (escribe this mode in Section 14.2.)Tj 7.9995 0 0 7.9995 219.5863 270.9837 Tm [(In )-78(earlier )-78(r)18(eleases )-78(of )-78(System )-78(V)]TJ 0.3279 Tc 13.507 0 Td (,t)Tj 0 Tc 0.904 0 Td (he)Tj /TT0 1 Tf 1.389 0 Td (O_NDELAY)Tj /T1_0 1 Tf 5.128 0 Td [(\(no )-78(delay\) )-78(\337ag )-78(was )-78(intr)19(oduced. )-328(This)]TJ -20.928 -1.25 Td [(option )-145(is )-145(similar )-145(to )-145(the)]TJ /TT0 1 Tf 10.914 0 Td (O_NONBLOCK)Tj /T1_0 1 Tf 6.395 0 Td [(\(nonblocking\) )-145(option, )-145(but )-145(an )-145(ambiguity )-145(was)]TJ -17.309 -1.25 Td [(intr)18(oduced )-55(in )-55(the )-55(r)18(eturn )-55(value )-55(fr)18(om )-55(a )-55(r)18(ead )-55(operation.)-555(The )-55(no-delay )-55(option )-55(causes )-55(a)]TJ -0.018 Tc 0 -1.25 TD (re)Tj 0 Tc 0.856 0 Td [(ad )-39(operation )-39(to )-39(r)18(eturn )-39(0 )-39(if )-39(ther)16(e)-289(is)-289(no)-289(d)-1(ata )-39(to )-39(be )-39(r)18(ead )-39(fr)18(om )-39(a )-39(pipe, )-39(FIFO, )-39(or )-39(device,)]TJ -0.856 -1.25 Td [(but )-184(this )-184(con\337icts )-184(with )-184(a )-184(r)18(eturn )-184(value )-184(of )-184(0, )-184(indicating )-184(an )-184(end )-184(of )-184(\336le.)-679(SVR4)]TJ 34.6 0.09 Td (-)Tj 0.333 -0.09 Td (based)Tj -34.933 -1.25 Td [(systems )-440(still )-440(support )-440(the )-440(no-delay )-440(option, )-440(with )-440(the )-440(old )-440(semantics, )-440(but )-440(new)]TJ T* (applications should use the nonblocking option instead.)Tj /TT0 1 Tf 9.9994 0 0 9.9994 129.5912 186.9888 Tm (O_SYNC)Tj /T1_0 1 Tf 7.2 0 Td [(Have )-212(each)]TJ /TT0 1 Tf 5.306 0 Td (write)Tj /T1_0 1 Tf 3.463 0 Td [(wait )-212(for )-212(physical )-212(I/O )-212(to )-212(complete, )-212(including )-212(I/O)]TJ -8.769 -1.2 Td [(necessary )-155(to )-155(update )-155(\336le )-155(attributes )-155(modi\336ed )-155(as )-155(a )-155(r)14(esult )-156(of )-156(the)]TJ /TT0 1 Tf 28.55 0 Td (write)Tj /T1_0 1 Tf (.)Tj -0.092 Tc -28.55 -1.2 Td [(We )-184(u)]TJ 0 Tc 2.24 0 Td (se this option in Section 3.14.)Tj /TT0 1 Tf -9.44 -1.6 Td (O_TRUNC)Tj /T1_0 1 Tf 7.2 0 Td [(If )-76(the )-76(\336le )-76(exists )-76(and )-76(if )-76(it )-76(is )-76(successfully )-76(opened )-76(for )-76(either )-76(write-only )-76(or)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(ad\320write, tr)8(uncate its length to 0.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47162 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(2.9)]TJ 30.11 0 Td [(Dif)18(fer)18(ences )-250(Between )-250(Standar)18(ds)]TJ /T1_1 1 Tf 16.223 0 Td (59)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1569.25 6670.25 cm 0 0 m 3353 0 l S Q Q BT /T1_0 1 Tf -0.09 Tc 7.9995 0 0 7.9995 181.1011 658.9605 Tm (Ty)Tj 0 Tc 1.079 0 Td (pe )Tj 18.63 0 Td (Description)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1569.25 6550.25 cm 0 0 m 3353 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1569.25 6530.25 cm 0 0 m 3353 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 160.9287 644.9226 Tm (clock_t)Tj /T1_0 1 Tf 8.7 0 Td [(counter of clock ticks \(pr)18(ocess time\) \(Section 1.10\))]TJ /TT0 1 Tf -8.7 -1.25 Td (comp_t)Tj /T1_0 1 Tf 8.7 0 Td [(compr)18(essed clock ticks \(not de\336ned by POSIX.1; see Section 8.14\))]TJ /TT0 1 Tf -8.7 -1.25 Td (dev_t)Tj /T1_0 1 Tf 8.7 0 Td (device numbers \(major and minor\) \(Section 4.24\))Tj /TT0 1 Tf -8.7 -1.25 Td (fd_set)Tj /T1_0 1 Tf 8.7 0 Td (\336le descriptor sets \(Section 14.4.1\))Tj /TT0 1 Tf -8.7 -1.25 Td (fpos_t)Tj /T1_0 1 Tf 8.7 0 Td (\336le position \(Section 5.10\))Tj /TT0 1 Tf -8.7 -1.25 Td (gid_t)Tj /T1_0 1 Tf 8.7 0 Td [(numeric gr)18(oup IDs)]TJ /TT0 1 Tf -8.7 -1.25 Td (ino_t)Tj /T1_0 1 Tf 8.7 0 Td (i-node numbers \(Section 4.14\))Tj /TT0 1 Tf -8.7 -1.25 Td (mode_t)Tj /T1_0 1 Tf 8.7 0 Td [(\336le type, \336le cr)18(eation mode \(Section 4.5\))]TJ /TT0 1 Tf -8.7 -1.25 Td (nlink_t)Tj /T1_0 1 Tf 8.7 0 Td [(link counts for dir)18(ectory entries \(Section 4.14\))]TJ /TT0 1 Tf -8.7 -1.25 Td (off_t)Tj /T1_0 1 Tf 8.7 0 Td [(\336le sizes and of)18(fsets \(signed\) \()]TJ /TT0 1 Tf (lseek)Tj /T1_0 1 Tf 0.25 Tc (,S)Tj 0 Tc 17.25 0 Td (ection 3.6\))Tj /TT0 1 Tf -25.95 -1.25 Td (pid_t)Tj /T1_0 1 Tf 8.7 0 Td [(pr)18(ocess IDs and pr)18(ocess gr)18(oup IDs \(signed\) \(Sections 8.2 and 9.4\))]TJ /TT0 1 Tf -8.7 -1.25 Td (pthread_t)Tj /T1_0 1 Tf 8.7 0 Td [(thr)18(ead IDs \(Section 1)55(1.3\))]TJ /TT0 1 Tf -8.7 -1.25 Td (ptrdiff_t)Tj /T1_0 1 Tf -0.018 Tc 8.7 0 Td (re)Tj 0 Tc 0.856 0 Td (sult of subtracting two pointers \(signed\))Tj /TT0 1 Tf -9.556 -1.25 Td (rlim_t)Tj /T1_0 1 Tf -0.018 Tc 8.7 0 Td (re)Tj 0 Tc 0.856 0 Td [(sour)18(ce limits \(Section 7.1)55(1\))]TJ /TT0 1 Tf -9.556 -1.25 Td (sig_atomic_t)Tj /T1_0 1 Tf 8.7 0 Td (data type that can be accessed atomically \(Section 10.15\))Tj /TT0 1 Tf -8.7 -1.25 Td (sigset_t)Tj /T1_0 1 Tf 8.7 0 Td [(signal set \(Section 10.1)55(1\))]TJ /TT0 1 Tf -8.7 -1.25 Td (size_t)Tj /T1_0 1 Tf 8.7 0 Td (sizes of objects \(such as strings\) \(unsigned\) \(Section 3.7\))Tj /TT0 1 Tf -8.7 -1.25 Td (ssize_t)Tj /T1_0 1 Tf 8.7 0 Td [(functions that r)18(eturn a count of bytes \(signed\) \()]TJ /TT0 1 Tf (read)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 23.687 0 Td (write)Tj /T1_0 1 Tf 0.25 Tc (,S)Tj 0 Tc 4.025 0 Td (ection 3.7\))Tj /TT0 1 Tf -36.412 -1.25 Td (time_t)Tj /T1_0 1 Tf 8.7 0 Td (counter of seconds of calendar time \(Section 1.10\))Tj /TT0 1 Tf -8.7 -1.25 Td (uid_t)Tj /T1_0 1 Tf 8.7 0 Td (numeric user IDs)Tj /TT0 1 Tf -8.7 -1.25 Td (wchar_t)Tj /T1_0 1 Tf 8.7 0 Td [(can r)18(epr)18(esent all distinct character codes)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1569.25 4410.25 cm 0 0 m 3353 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2245.25 4410.25 cm 0 0 m 0 2260 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4922.25 4410.25 cm 0 0 m 0 2260 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1569.25 4410.25 cm 0 0 m 0 2260 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 225.3634 422.9239 Tm (Figure 2.21)Tj /T1_0 1 Tf 5.695 0 Td (Some common primitive system data types)Tj 9.9982 0 0 9.9982 129.5769 392.9293 Tm [(convert )-115(this )-115(value )-115(to )-115(seconds, )-115(we )-115(divide )-115(it )-115(by)]TJ /TT0 1 Tf 21.202 0 Td (CLOCKS_PER_SEC)Tj /T1_0 1 Tf 0.365 Tc (,w)Tj 0 Tc 9.849 0 Td [(hich )-115(is )-115(de\336ned )-115(in)]TJ -31.051 -1.2 Td (the)Tj /TT0 1 Tf 1.72 0 Td ()Tj /T1_0 1 Tf 5.133 0 Td (header)Tj 0.5827 Tc 2.972 0 Td (.P)Tj 0 Tc 1.437 0 Td [(OSIX.1 )-83(de\336nes )-83(the )-83(function)]TJ /TT0 1 Tf 12.67 0 Td (times)Tj /T1_0 1 Tf 3.333 0 Td [(that )-83(r)18(eturns )-83(both )-83(the )-83(CPU)]TJ -27.264 -1.2 Td [(time )-115(\(for )-115(the )-115(caller )-115(and )-115(all )-115(its )-115(terminated )-115(childr)15(en\) )-115(and )-115(the )-115(clock )-115(time.)-615(All )-115(these )-115(time)]TJ 0 -1.2 TD [(values )-163(ar)18(e)]TJ /TT0 1 Tf 5.045 0 Td (clock_t)Tj /T1_0 1 Tf 4.614 0 Td [(values. )-413(The)]TJ /TT0 1 Tf 5.863 0 Td (sysconf)Tj /T1_0 1 Tf 4.614 0 Td [(function )-164(is )-164(used )-164(to )-164(obtain )-164(the )-164(number )-164(of)]TJ -20.135 -1.2 Td [(clock )-6(ticks )-6(per )-6(second )-6(for )-6(use )-6(with )-6(the )-6(r)18(eturn )-6(values )-6(fr)18(om )-6(the)]TJ /TT0 1 Tf 27.305 0 Td (times)Tj /T1_0 1 Tf 3.256 0 Td [(function. )-256(What)-256(we)]TJ -30.56 -1.2 Td [(have )-36(is )-36(the )-36(same )-36(data )-36(type )-36(\()]TJ /TT0 1 Tf (clock_t)Tj /T1_0 1 Tf 0.2861 Tc (\)u)Tj 0 Tc 17.884 0 Td [(sed )-36(to )-36(hold )-36(measur)18(ements )-36(of )-36(time )-36(de\336ned )-36(with)]TJ -17.884 -1.2 Td [(dif)18(fer)18(ent )-194(units )-194(by )-194(ISO )-194(C )-194(and )-194(POSIX.1.)-694(The )-194(dif)15(fer)18(ence )-194(can )-194(be )-194(seen )-194(in )-194(Solaris, )-194(wher)16(e)]TJ /TT0 1 Tf 0 -1.2 Td (clock)Tj /T1_0 1 Tf -0.018 Tc 3.291 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-41(micr)18(oseconds )-41(\(hence)]TJ /TT0 1 Tf 12.152 0 Td (CLOCKS_PER_SEC)Tj /T1_0 1 Tf 8.691 0 Td [(is )-41(1 )-41(million\), )-41(wher)19(eas)]TJ /TT0 1 Tf 9.811 0 Td (sysconf)Tj /T1_0 1 Tf -0.018 Tc -34.8 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-114(the )-114(value )-114(100 )-114(for )-114(clock )-114(ticks )-114(per )-114(second.)-618(Thus )-114(we )-114(must )-114(take )-114(car)]TJ 0.3644 Tc 32.003 0 Td (ew)Tj 0 Tc 1.677 0 Td [(hen )-114(using)]TJ -34.536 -1.2 Td (variables of type)Tj /TT0 1 Tf 7.589 0 Td (clock_t)Tj /T1_0 1 Tf 4.45 0 Td [(so that we don\325t mix variables with dif)18(fer)18(ent units.)]TJ -10.239 -1.2 Td [(Another )-98(ar)18(ea )-98(of )-98(potential )-98(con\337ict )-98(is )-98(when )-98(the )-98(ISO )-98(C )-98(standar)]TJ 0.348 Tc 27.341 0 Td (ds)Tj 0 Tc 1.383 0 Td [(peci\336es )-98(a )-98(function,)]TJ -30.524 -1.2 Td [(but )-136(doesn\325t )-136(specify )-136(it )-136(as )-136(str)18(ongly )-136(as )-136(POSIX.1 )-136(does.)-639(This )-136(is )-136(the )-136(case )-136(for )-136(functions )-136(that)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td (quir)Tj 0.3835 Tc 1.831 0 Td (ead)Tj 0 Tc 2.357 0 Td [(if)18(fer)18(ent )-133(implementation )-133(in )-133(a )-133(POSIX )-133(envir)18(onment )-133(\(with )-133(multiple )-133(pr)14(ocesses\))]TJ -5.044 -1.2 Td [(than )-296(in )-296(an )-296(ISO )-296(C )-296(envir)18(onment )-296(\(wher)]TJ 0.5463 Tc 17.877 0 Td (ev)Tj 0 Tc 1.59 0 Td [(ery )-296(little )-296(can )-296(be )-296(assumed )-296(about )-296(the )-296(host)]TJ -19.467 -1.2 Td [(operating )-375(system\).)-875(Nevertheless, )-375(POSIX-compliant )-375(systems )-375(implement )-375(the )-375(ISO )-375(C)]TJ T* [(function )-20(for )-20(compatibility)]TJ 0.5197 Tc 11.308 0 Td (.T)Tj 0 Tc 1.383 0 Td (he)Tj /TT0 1 Tf 1.331 0 Td (signal)Tj /T1_0 1 Tf 3.87 0 Td [(function )-20(is )-20(an )-20(example.)-519(If )-20(we )-20(unknowingly )-20(use)]TJ -17.891 -1.2 Td (the)Tj /TT0 1 Tf 1.66 0 Td (signal)Tj /T1_0 1 Tf 3.873 0 Td [(function )-23(pr)18(ovided )-23(by )-23(Solaris )-23(\(hoping )-23(to )-23(write )-23(portable )-23(code )-23(that )-23(can )-23(be )-23(r)9(un)]TJ -5.533 -1.2 Td [(in )-259(ISO )-259(C )-259(envir)18(onments )-259(and )-259(under )-259(older )-259(UNIX )-259(systems\), )-259(it )-259(will )-259(pr)16(ovide )-259(semantics)]TJ T* [(dif)18(fer)18(ent )-207(fr)18(om )-207(the )-207(POSIX.1)]TJ /TT0 1 Tf 12.814 0 Td (sigaction)Tj /T1_0 1 Tf 5.857 0 Td [(function. )-457(W)92(e\325ll )-207(have )-207(mor)19(e)-457(to)-457(s)1(ay )-207(about )-207(the)]TJ /TT0 1 Tf -18.671 -1.2 Td (signal)Tj /T1_0 1 Tf 3.85 0 Td (function in Chapter 10.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47163 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(19.3)]TJ 27.958 0 Td [(Opening )-250(Pseudo-T)92(erminal )-250(Devices)]TJ /T1_1 1 Tf 17.875 0 Td (723)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (The)Tj /T1_2 1 Tf 2.038 0 Td (o\337ag)Tj /T1_0 1 Tf 2.297 0 Td [(ar)18(gument )-114(is )-114(a )-114(bitmask )-114(that )-114(speci\336es )-114(how )-114(the )-114(master )-114(device )-114(is )-114(to )-114(be )-114(opened,)]TJ -4.336 -1.2 Td [(similar )-180(to )-180(the )-180(same )-180(ar)19(gument )-180(used )-180(with)]TJ /TT0 1 Tf 19.084 0 Td (open)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.6796 Tc 0.333 -0.04 Td (.N)Tj 0 Tc 1.761 0 Td [(ot )-180(all )-180(open )-180(\337ags )-180(ar)]TJ 0.4296 Tc 8.845 0 Td (es)Tj 0 Tc 1.333 0 Td (upported,)Tj -34.588 -1.2 Td (however)Tj 0.5763 Tc 3.806 0 Td (.W)Tj 0 Tc 1.771 0 Td (ith)Tj /TT0 1 Tf 1.525 0 Td (posix_openpt)Tj /T1_0 1 Tf [(,)-326(we)-326(c)-1(an )-76(specify)]TJ /TT0 1 Tf 14.722 0 Td (O_RDWR)Tj /T1_0 1 Tf 3.926 0 Td [(to )-76(open )-76(the )-76(master )-76(device )-76(for)]TJ -0.018 Tc -25.751 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ading )-76(and )-76(writing, )-76(and )-76(we )-76(can )-76(specify)]TJ /TT0 1 Tf 17.703 0 Td (O_NOCTTY)Tj /T1_0 1 Tf 5.126 0 Td [(to )-76(pr)18(event )-76(the )-76(master )-76(device )-76(fr)16(om)]TJ -23.685 -1.2 Td [(becoming )-29(a )-29(contr)18(olling )-29(terminal )-29(for )-29(the )-29(caller)]TJ 0.5288 Tc 20.072 0 Td (.A)Tj 0 Tc 1.557 0 Td [(ll )-29(other )-29(open )-29(\337ags )-29(r)18(esult )-29(in )-29(unspeci\336ed)]TJ -21.629 -1.2 Td [(behavior)74(.)]TJ 1.8 -1.2 Td (Befor)Tj 0.2784 Tc 2.346 0 Td (eas)Tj 0 Tc 1.96 0 Td [(lave )-28(pseudo )-28(terminal )-28(device )-28(can )-28(be )-28(used, )-28(its )-28(permissions )-28(need )-28(to )-28(be )-28(set )-28(so)]TJ -6.106 -1.2 Td [(that )-9(it )-9(is )-9(accessible )-9(to )-9(applications.)-507(The)]TJ /TT0 1 Tf 17.649 0 Td (grantpt)Tj /T1_0 1 Tf 4.459 0 Td [(function )-9(does )-9(just )-9(this.)-508(It )-9(sets )-9(the )-9(user)]TJ -22.108 -1.2 Td [(ID )-37(of )-37(the )-37(slave\325s )-37(device )-37(node )-37(to )-37(the )-37(caller)-74(\325s )-37(r)18(eal )-37(user )-37(ID )-37(and )-37(sets )-37(the )-37(node\325s )-37(gr)21(oup )-37(ID )-37(to)]TJ 0 -1.2 TD [(an )-232(unspeci\336ed )-232(value, )-232(usually )-232(some )-232(gr)17(oup )-232(that )-232(has )-232(access )-232(to )-232(terminal )-232(devices.)-734(The)]TJ T* [(permissions )-3(ar)]TJ 0.2529 Tc 6.47 0 Td (es)Tj 0 Tc 1.156 0 Td [(et )-3(to )-3(allow )-3(r)18(ead )-3(and )-3(write )-3(access )-3(to )-3(individual )-3(owners )-3(and )-3(write )-3(access)]TJ -7.626 -1.2 Td [(to gr)18(oup owners)]TJ 7.565 0.04 Td (\()Tj 0.333 -0.04 Td (0620)Tj 2 0.04 Td (\))Tj 0.333 -0.04 Td (.)Tj -8.431 -1.2 Td [(Implementations )-182(commonly )-182(set )-182(the )-182(gr)17(oup )-182(ownership )-182(of )-182(the )-182(slave )-182(PTY )-182(device )-182(to)]TJ -1.8 -1.2 Td [(gr)18(oup)]TJ /TT0 1 Tf 3.182 0 Td (tty)Tj /T1_0 1 Tf 0.7492 Tc (.P)Tj -0.018 Tc 3.403 0 Td (ro)Tj 0 Tc 0.923 0 Td [(grams )-249(that )-249(need )-249(permission )-249(to )-249(write )-249(to )-249(all )-249(active )-249(terminals )-249(on )-249(the)]TJ -7.508 -1.2 Td [(system )-18(ar)]TJ 0.2682 Tc 4.237 0 Td (es)Tj 0 Tc 1.171 0 Td [(et-gr)18(oup-ID )-18(to )-18(the )-18(gr)17(oup)]TJ /TT0 1 Tf 11.28 0 Td (tty)Tj /T1_0 1 Tf 0.5182 Tc (.E)Tj 0 Tc 3.179 0 Td [(xamples )-18(of )-18(such )-18(pr)17(ograms )-18(ar)18(e)]TJ /TT0 1 Tf 13.605 0 Td (wall)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.601 -0.04 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (write)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.5975 Tc 0.333 -0.04 Td (.B)Tj 0 Tc 1.459 0 Td [(ecause )-97(the )-97(gr)17(oup )-97(write )-97(permission )-97(is )-97(enabled )-97(on )-97(slave )-97(PTY )-97(devices, )-97(these)]TJ -5.625 -1.2 Td [(pr)18(ograms can write to them.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5922 460.2724 Tm (#include )Tj 0 -1.902 TD (int grantpt\(int)Tj /T1_2 1 Tf 9.6 0 Td (fd)Tj /TT0 1 Tf (\);)Tj -9.6 -1.902 Td (int unlockpt\(int)Tj /T1_2 1 Tf 10.2 0 Td (fd)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 12.817 -1.902 Td [(Both r)18(eturn: 0 on success,)]TJ /TT1 1 Tf 11.447 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4044.25 cm 0 0 m 0 649 l 3900 649 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9988 0 0 9.9988 147.5823 390.8931 Tm [(To )-242(c)]TJ 0 Tc 1.819 0 Td [(hange )-58(permission )-58(on )-58(the )-58(slave )-58(device )-58(node,)]TJ /TT0 1 Tf 19.885 0 Td (grantpt)Tj /T1_0 1 Tf 4.508 0 Td [(might )-58(need )-58(to)]TJ /TT0 1 Tf 6.586 0 Td (fork)Tj /T1_0 1 Tf 2.708 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (exec)Tj /T1_0 1 Tf 0.2755 Tc 2.676 0 Td (as)Tj 0 Tc 1.199 0 Td [(et-user)18(-ID )-25(pr)18(ogram )-25(\()]TJ /TT0 1 Tf 9.207 0 Td (/usr/lib/pt_chmod)Tj /T1_0 1 Tf 10.476 0 Td [(on )-25(Solaris, )-25(for )-25(example\).)-525(Thus, )-25(the)]TJ -23.557 -1.2 Td (behavior is unspeci\336ed if the caller is catching)Tj /TT0 1 Tf 20.596 0 Td (SIGCHLD)Tj /T1_0 1 Tf (.)Tj -18.796 -1.2 Td (The)Tj /TT0 1 Tf 1.95 0 Td (unlockpt)Tj /T1_0 1 Tf 5.076 0 Td [(function )-26(is )-26(used )-26(to )-26(grant )-26(access )-26(to )-26(the )-26(slave )-26(pseudo )-26(terminal )-26(device,)]TJ -8.827 -1.2 Td [(ther)18(eby )-113(allowing )-113(applications )-113(to )-113(open )-113(the )-113(device.)-613(By )-113(pr)18(eventing )-113(others )-113(fr)18(om )-113(opening)]TJ 0 -1.2 TD [(the )-3(slave )-3(device, )-3(applications )-3(setting )-3(up )-3(the )-3(devices )-3(have )-3(an )-3(opportunity )-3(to )-3(initialize )-3(the)]TJ T* [(slave and master devices pr)18(operly befor)]TJ 0.25 Tc 17.636 0 Td (et)Tj 0 Tc 1.055 0 Td (hey can be used.)Tj -16.891 -1.2 Td [(Note )-89(that )-89(in )-89(both)]TJ /TT0 1 Tf 8.151 0 Td (grantpt)Tj /T1_0 1 Tf 4.539 0 Td (and)Tj /TT0 1 Tf 2.032 0 Td (unlockpt)Tj /T1_0 1 Tf 0.3388 Tc (,t)Tj 0 Tc 5.715 0 Td [(he )-89(\336le )-89(descriptor )-89(ar)19(gument )-89(is )-89(the )-89(\336le)]TJ -22.237 -1.2 Td (descriptor associated with the master pseudo terminal device.)Tj 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.039 0 Td (ptsname)Tj /T1_0 1 Tf 4.565 0 Td [(function )-115(is )-115(used )-115(to )-115(\336nd )-115(the )-115(pathname )-115(of )-115(the )-115(slave )-115(pseudo )-115(terminal)]TJ -8.403 -1.2 Td [(device, )-97(given )-97(the )-97(\336le )-97(descriptor )-97(of )-97(the )-97(master)]TJ 0.5972 Tc 20.496 0 Td (.T)Tj 0 Tc 1.46 0 Td [(his )-97(allows )-97(applications )-97(to )-97(identify )-97(the)]TJ -21.956 -1.2 Td [(slave )-206(independent )-206(of )-206(any )-206(particular )-206(conventions )-206(that )-206(might )-206(be )-206(followed )-206(by )-206(a )-206(given)]TJ T* [(platform. )-359(Note)-359(that )-109(the )-109(name )-109(r)18(eturned )-109(might )-109(be )-109(stor)18(ed )-109(in )-109(static )-109(memory)112(,)-359(so)-359(it)-359(c)1(an )-109(be)]TJ -0 -1.2 Td (overwritten on successive calls.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5827 218.2138 Tm (#include )Tj 0 -1.902 TD (char *ptsname\(int)Tj /T1_2 1 Tf 10.8 0 Td (fd)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 2.392 -1.902 Td (Returns: pointer to name of PTY slave if OK,)Tj /TT0 1 Tf 19.921 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1795.25 cm 0 0 m 0 477 l 3900 477 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 147.5734 165.9701 Tm (Figur)Tj 0.708 Tc 2.383 0 Td (e1)Tj 0 Tc 1.687 0 Td [(9.8 )-458(summarizes )-458(the )-458(pseudo )-458(terminal )-458(functions )-458(in )-458(the )-458(Single )-458(UNIX)]TJ -5.87 -1.2 Td [(Speci\336cation )-17(and )-17(indicates )-17(which )-17(functions )-17(ar)]TJ 0.2673 Tc 20.352 0 Td (es)Tj 0 Tc 1.17 0 Td [(upported )-17(by )-17(the )-17(platforms )-17(discussed )-17(in)]TJ -21.523 -1.2 Td (this text.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47164 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (829)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(520 )-1200(/*)]TJ 0 -1.189 TD [(521 )-1800(*)-600(Cancellation routine for the worker thread.)]TJ T* [(522 )-1800(*)]TJ T* [(523 )-1800(*)-600(LOCKING: acquires and releases workerlock.)]TJ T* [(524 )-1800(*/)]TJ 0 -1.189 TD [(525 )-1200(void)]TJ 0 -1.189 TD [(526 )-1200(client_cleanup\(void)-600(*arg\))]TJ T* [(527 )-1200({)]TJ T* [(528 )-2400(struct)-600(worker_thread )-1800(*wtp;)]TJ T* [(529 )-2400(pthread_t)]TJ 19.2 0 Td (tid;)Tj -19.2 -2.14 Td [(530 )-2400(tid)]TJ 0.6 Tc 7.2 0 Td (=\()Tj 0 Tc 1.8 0 Td (pthread_t\)\(\(long\)arg\);)Tj -9 -1.189 Td [(531 )-2400(pthread_mutex_lock\(&workerlock\);)]TJ T* [(532 )-2400(for)-600(\(wtp = workers; wtp != NULL; wtp = wtp->next\) {)]TJ T* [(533 )-4800(if)-600(\(wtp->tid == tid\) {)]TJ T* (534 )Tj 9.6 0 Td [(if)-600(\(wtp->next != NULL\))]TJ -9.6 -1.189 Td (535 )Tj 12 0 Td (wtp->next->prev)Tj 0.6 Tc 9.6 0 Td (=w)Tj 0 Tc 1.8 0 Td (tp->prev;)Tj -23.4 -1.189 Td (536 )Tj 9.6 0 Td [(if)-600(\(wtp->prev != NULL\))]TJ -9.6 -1.189 Td (537 )Tj 12 0 Td (wtp->prev->next)Tj 0.6 Tc 9.6 0 Td (=w)Tj 0 Tc 1.8 0 Td (tp->next;)Tj -23.4 -1.189 Td (538 )Tj 9.6 0 Td (else)Tj -9.6 -1.189 Td (539 )Tj 12 0 Td (workers)Tj 0.6 Tc 4.8 0 Td (=w)Tj 0 Tc 1.8 0 Td (tp->next;)Tj -18.6 -1.189 Td (540 )Tj 9.6 0 Td (break;)Tj -9.6 -1.189 Td [(541 )-4800(})]TJ T* [(542 )-2400(})]TJ T* [(543 )-2400(pthread_mutex_unlock\(&workerlock\);)]TJ T* [(544 )-2400(if)-600(\(wtp != NULL\) {)]TJ T* [(545 )-4800(close\(wtp->sockfd\);)]TJ 0 -1.189 TD [(546 )-4800(free\(wtp\);)]TJ 0 -1.189 TD [(547 )-2400(})]TJ T* [(548 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3465.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 322.4993 Tm [([520 )167(\320 )167(542])-668(The)]TJ /TT0 1 Tf 7.301 0 Td (client_cleanup)Tj /T1_0 1 Tf 9.027 0 Td [(function )-377(is )-377(the )-377(thr)18(ead )-377(cleanup )-377(handler )-377(for )-377(the)]TJ -11.327 -1.2 Td [(worker )-153(thr)18(eads )-153(that )-153(communicate )-153(with )-153(client )-153(commands.)-653(This )-153(function )-153(is)]TJ 0 -1.2 TD [(called )-21(when )-21(the )-21(thr)18(ead )-21(calls)]TJ /TT0 1 Tf 12.659 0 Td (pthread_exit)Tj /T1_0 1 Tf 0.2707 Tc (,c)Tj 0 Tc 8.165 0 Td (alls)Tj /TT0 1 Tf 1.777 0 Td (pthread_cleanup_pop)Tj /T1_0 1 Tf -22.6 -1.2 Td [(with )-374(a )-374(nonzer)]TJ 0.6244 Tc 6.848 0 Td (oa)Tj -0.018 Tc 1.67 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument, )-374(or )-374(r)18(esponds )-374(to )-374(a )-374(cancellation )-374(r)16(equest. )-624(The)]TJ -9.451 -1.2 Td [(ar)18(gument is the thr)18(ead ID of the thr)18(ead terminating.)]TJ -0.092 Tc 0 -1.8 TD [(We )-258(l)]TJ 0 Tc 2.002 0 Td [(ock )-74(the)]TJ /TT0 1 Tf 3.581 0 Td (workerlock)Tj /T1_0 1 Tf 6.324 0 Td [(mutex )-74(and )-74(sear)18(ch )-74(the )-74(list )-74(of )-74(worker )-74(thr)18(eads )-74(until)]TJ -11.907 -1.2 Td [(we )-248(\336nd )-248(a )-248(matching )-248(thr)18(ead )-248(ID.)-748(When )-248(we )-248(\336nd )-248(a )-248(match, )-248(we )-248(r)20(emove )-248(the)]TJ 0 -1.2 TD [(worker thr)18(ead str)8(uctur)]TJ 0.25 Tc 10.07 0 Td (ef)Tj -0.018 Tc 1.062 0 Td (ro)Tj 0.25 Tc 0.923 0 Td (mt)Tj 0 Tc 1.459 0 Td [(he list and stop the sear)18(ch.)]TJ -18.514 -1.72 Td [([543 )167(\320 )167(548])]TJ -0.092 Tc 5 0 Td [(We )-269(u)]TJ 0 Tc 2.325 0 Td [(nlock )-85(the)]TJ /TT0 1 Tf 4.476 0 Td (workerlock)Tj /T1_0 1 Tf 6.335 0 Td [(mutex, )-85(close )-85(the )-85(socket )-85(\336le )-85(descriptor )-85(used )-85(by)]TJ -13.137 -1.2 Td [(the )-37(thr)18(ead )-37(to )-37(communicate )-37(with )-37(the )-37(client, )-37(and )-37(fr)18(ee )-37(the )-37(memory )-37(backing )-37(the)]TJ /TT0 1 Tf T* (worker_thread)Tj /T1_0 1 Tf 8.05 0 Td [(str)8(uctur)18(e.)]TJ -8.05 -1.8 Td [(Since )-311(we )-311(try )-311(to )-311(acquir)]TJ 0.5612 Tc 10.803 0 Td (et)Tj 0 Tc 1.366 0 Td (he)Tj /TT0 1 Tf 1.622 0 Td (workerlock)Tj /T1_0 1 Tf 6.561 0 Td [(mutex, )-311(if )-311(a )-311(thr)18(ead )-311(r)18(eaches )-311(a)]TJ -20.352 -1.2 Td [(cancellation )-19(point )-19(while )-19(the)]TJ /TT0 1 Tf 12.562 0 Td (kill_workers)Tj /T1_0 1 Tf 7.469 0 Td [(function )-19(is )-19(still )-19(walking )-19(the )-19(list,)]TJ -20.031 -1.2 Td [(we )-40(will )-40(have )-40(to )-40(wait )-40(until)]TJ /TT0 1 Tf 11.804 0 Td (kill_workers)Tj /T1_0 1 Tf -0.018 Tc 7.49 0 Td (re)Tj 0 Tc 0.856 0 Td [(leases )-40(the )-40(mutex )-40(befor)17(e)-290(we)-290(c)-1(an)]TJ -20.151 -1.2 Td [(pr)18(oceed.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47165 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (828)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(482 )-1200(/*)]TJ 0 -1.189 TD [(483 )-1800(*)-600(Add a worker to the list of worker threads.)]TJ T* [(484 )-1800(*)]TJ T* [(485 )-1800(*)-600(LOCKING: acquires and releases workerlock.)]TJ T* [(486 )-1800(*/)]TJ 0 -1.189 TD [(487 )-1200(void)]TJ 0 -1.189 TD [(488 )-1200(add_worker\(pthread_t)-600(tid, int sockfd\))]TJ T* [(489 )-1200({)]TJ T* [(490 )-2400(struct)-600(worker_thread )-1800(*wtp;)]TJ 0 -1.902 TD [(491 )-2400(if)-600(\(\(wtp = malloc\(sizeof\(struct worker_thread\)\)\) == NULL\) {)]TJ 0 -1.189 TD [(492 )-4800(log_ret\("add_worker:)-600(can\325t malloc"\);)]TJ 0 -1.189 TD [(493 )-4800(pthread_exit\(\(void)-600(*\)1\);)]TJ 0 -1.189 TD [(494 )-2400(})]TJ T* [(495 )-2400(wtp->tid)]TJ 0.6 Tc 10.2 0 Td (=t)Tj 0 Tc 1.8 0 Td (id;)Tj -12 -1.189 Td [(496 )-2400(wtp->sockfd)]TJ 0.6 Tc 12 0 Td (=s)Tj 0 Tc 1.8 0 Td (ockfd;)Tj -13.8 -1.189 Td [(497 )-2400(pthread_mutex_lock\(&workerlock\);)]TJ T* [(498 )-2400(wtp->prev)]TJ 0.6 Tc 10.8 0 Td (=N)Tj 0 Tc 1.8 0 Td (ULL;)Tj -12.6 -1.189 Td [(499 )-2400(wtp->next)]TJ 0.6 Tc 10.8 0 Td (=w)Tj 0 Tc 1.8 0 Td (orkers;)Tj -12.6 -1.189 Td [(500 )-2400(if)-600(\(workers == NULL\))]TJ T* [(501 )-4800(workers)]TJ 0.6 Tc 12 0 Td (=w)Tj 0 Tc 1.8 0 Td (tp;)Tj -13.8 -1.189 Td [(502 )-2400(else)]TJ T* [(503 )-4800(workers->prev)]TJ 0.6 Tc 15.6 0 Td (=w)Tj 0 Tc 1.8 0 Td (tp;)Tj -17.4 -1.189 Td [(504 )-2400(pthread_mutex_unlock\(&workerlock\);)]TJ T* [(505 )-1200(})]TJ 0 -1.902 TD [(506 )-1200(/*)]TJ 0 -1.189 TD [(507 )-1800(*)-600(Cancel \(kill\) all outstanding workers.)]TJ T* [(508 )-1800(*)]TJ T* [(509 )-1800(*)-600(LOCKING: acquires and releases workerlock.)]TJ T* [(510 )-1800(*/)]TJ T* [(511 )-1200(void)]TJ T* [(512 )-1200(kill_workers\(void\))]TJ 0 -1.189 TD [(513 )-1200({)]TJ 0 -1.189 TD [(514 )-2400(struct)-600(worker_thread )-1800(*wtp;)]TJ 0 -1.902 TD [(515 )-2400(pthread_mutex_lock\(&workerlock\);)]TJ 0 -1.189 TD [(516 )-2400(for)-600(\(wtp = workers; wtp != NULL; wtp = wtp->next\))]TJ T* [(517 )-4800(pthread_cancel\(wtp->tid\);)]TJ T* [(518 )-2400(pthread_mutex_unlock\(&workerlock\);)]TJ T* [(519 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2395.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 215.5121 Tm [([482 )167(\320 )167(505])]TJ /TT0 1 Tf 5 0 Td (add_worker)Tj /T1_1 1 Tf 6.296 0 Td [(adds )-46(a)]TJ /TT0 1 Tf 3.238 0 Td (worker_thread)Tj /T1_1 1 Tf 8.096 0 Td [(str)8(uctur)18(e)-296(to)-296(the )-46(list )-46(of )-46(active )-46(thr)18(eads.)]TJ -0.092 Tc -17.63 -1.2 Td [(We )-402(a)]TJ 0 Tc 2.355 0 Td [(llocate )-218(memory )-218(for )-218(the )-218(str)8(uctur)18(e, )-218(initialize )-218(it, )-218(lock )-218(the)]TJ /TT0 1 Tf 25.645 0 Td (workerlock)Tj /T1_1 1 Tf -28 -1.2 Td [(mutex, add the str)8(uctur)18(e)-250(to)-250(the head of the list, and unlock the mutex.)]TJ -5 -1.6 Td [([506 )167(\320 )167(519])-668(The)]TJ /TT0 1 Tf 7.059 0 Td (kill_workers)Tj /T1_1 1 Tf 7.586 0 Td [(function )-135(walks )-135(the )-135(list )-135(of )-135(worker )-135(thr)18(eads )-135(and )-135(cancels)]TJ -9.645 -1.2 Td [(each )-118(one.)]TJ -0.092 Tc 4.848 0 Td [(We )-302(h)]TJ 0 Tc 2.337 0 Td [(old )-118(the)]TJ /TT0 1 Tf 3.571 0 Td (workerlock)Tj /T1_1 1 Tf 6.368 0 Td [(mutex )-118(while )-118(we )-118(walk )-118(the )-118(list.)-617(Recall)]TJ -17.123 -1.2 Td (that)Tj /TT0 1 Tf 2.187 0 Td (pthread_cancel)Tj /T1_1 1 Tf 8.853 0 Td [(mer)18(ely )-203(schedules )-203(a )-203(thr)18(ead )-203(for )-203(cancellation; )-203(actual)]TJ -11.04 -1.2 Td [(cancellation happens when each thr)18(ead r)18(eaches the next cancellation point.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47166 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (813)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(38 )-1200(/*)]TJ 0 -1.189 TD [(39 )-1800(*)-600(Needed for logging.)]TJ T* [(40 )-1800(*/)]TJ T* [(41 )-1200(int)]TJ 16.8 0 Td (log_to_stderr = 0;)Tj -16.8 -1.902 Td [(42 )-1200(/*)]TJ T* [(43 )-1800(*)-600(Printer-related stuff.)]TJ T* [(44 )-1800(*/)]TJ T* [(45 )-1200(struct)-600(addrinfo )-4200(*printer;)]TJ T* [(46 )-1200(char)]TJ 16.8 0 Td (*printer_name;)Tj -16.8 -1.189 Td [(47 )-1200(pthread_mutex_t)-4800(configlock = PTHREAD_MUTEX_INITIALIZER;)]TJ T* [(48 )-1200(int)]TJ 16.8 0 Td (reread;)Tj -16.8 -1.902 Td [(49 )-1200(/*)]TJ T* [(50 )-1800(*)-600(Thread-related stuff.)]TJ 0 -1.189 TD [(51 )-1800(*/)]TJ 0 -1.189 TD [(52 )-1200(struct)-600(worker_thread )-1200(*workers;)]TJ T* [(53 )-1200(pthread_mutex_t)-4800(workerlock = PTHREAD_MUTEX_INITIALIZER;)]TJ T* [(54 )-1200(sigset_t)]TJ 16.8 0 Td (mask;)Tj -16.8 -1.902 Td [(55 )-1200(/*)]TJ T* [(56 )-1800(*)-600(Job-related stuff.)]TJ T* [(57 )-1800(*/)]TJ T* [(58 )-1200(struct)-600(job )]TJ 16.8 0 Td [(*jobhead,)-600(*jobtail;)]TJ -16.8 -1.189 Td [(59 )-1200(int)]TJ 16.8 0 Td (jobfd;)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4107.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 386.6916 Tm [([38 )167(\320 )167(41])-668(Our )-192(logging )-192(functions )-192(r)18(equir)]TJ 0.4419 Tc 17.306 0 Td (et)Tj 0 Tc 1.247 0 Td [(hat )-192(we )-192(de\336ne )-192(the)]TJ /TT0 1 Tf 8.632 0 Td (log_to_stderr)Tj /T1_0 1 Tf 8.242 0 Td (variable)Tj -31.426 -1.2 Td [(and )-86(set )-86(it )-86(to )-86(0 )-86(to )-86(for)18(ce )-86(log )-86(messages )-86(to )-86(be )-86(sent )-86(to )-86(the )-86(system )-86(log )-86(instead )-86(of )-86(to)]TJ 0 -1.2 TD [(the )-88(standar)]TJ 0.3378 Tc 5.045 0 Td (de)Tj 0 Tc 1.428 0 Td [(rr)18(or)]TJ 0.5878 Tc 1.639 0 Td (.I)Tj 0 Tc 1.175 0 Td (n)Tj /TT0 1 Tf 0.92 0 Td (print.c)Tj /T1_0 1 Tf [(,)-338(we)-338(de\336ned)]TJ /TT0 1 Tf 10.143 0 Td (log_to_stderr)Tj /T1_0 1 Tf 8.138 0 Td [(and )-88(set )-88(it )-88(to )-88(1,)]TJ -28.487 -1.2 Td [(even )-106(though )-106(we )-106(don\325t )-106(use )-106(the )-106(log )-106(functions )-106(in )-106(the )-106(user )-106(command.)]TJ -0.092 Tc 30.761 0 Td [(We )-291(c)]TJ 0 Tc 2.188 0 Td (ould)Tj -32.948 -1.2 Td [(have )-70(avoided )-70(this )-70(by )-70(splitting )-70(the )-70(utility )-70(functions )-70(into )-70(two )-70(separate )-70(\336les: )-70(one)]TJ T* (for the server and one for the client commands.)Tj -4 -1.6 Td [([42 )167(\320 )167(48])]TJ -0.092 Tc 4 0 Td [(We )-185(u)]TJ 0 Tc 2.241 0 Td [(se )-1(the )-1(global )-1(variable)]TJ /TT0 1 Tf 9.606 0 Td (printer)Tj /T1_0 1 Tf 4.451 0 Td [(to )-1(hold )-1(the )-1(network )-1(addr)18(ess )-1(of )-1(the )-1(printer)73(.)]TJ -0.092 Tc -16.298 -1.2 Td [(We )-313(s)]TJ 0 Tc 2.19 0 Td (tor)Tj 0.3791 Tc 1.249 0 Td (et)Tj 0 Tc 1.184 0 Td [(he )-129(host )-129(name )-129(of )-129(the )-129(printer )-129(in)]TJ /TT0 1 Tf 14.245 0 Td (printer_name)Tj /T1_0 1 Tf 0.6291 Tc (.T)Tj 0 Tc 8.692 0 Td (he)Tj /TT0 1 Tf 1.44 0 Td (configlock)Tj /T1_0 1 Tf -29 -1.2 Td [(mutex )-131(pr)18(otects )-131(access )-131(to )-131(the)]TJ /TT0 1 Tf 13.211 0 Td (reread)Tj /T1_0 1 Tf 3.981 0 Td [(variable, )-131(which )-131(is )-131(used )-131(to )-131(indicate )-131(that)]TJ -17.192 -1.2 Td [(the )-242(daemon )-242(needs )-242(to )-242(r)17(er)18(ead )-242(the )-242(con\336guration )-242(\336le, )-242(pr)18(esumably )-242(because )-242(an)]TJ 0 -1.2 Td [(administrator changed the printer or its network addr)18(ess.)]TJ -4 -1.6 Td [([49 )167(\320 )167(54])-668(Next, )-13(we )-13(de\336ne )-13(the )-13(thr)18(ead-r)18(elated )-13(variables.)]TJ -0.092 Tc 24.205 0 Td [(We )-197(u)]TJ 0 Tc 2.253 0 Td (se)Tj /TT0 1 Tf 1.166 0 Td (workers)Tj /T1_0 1 Tf 4.463 0 Td [(as )-13(the )-13(head )-13(of )-13(a)]TJ -28.086 -1.2 Td [(doubly )-145(linked )-145(list )-145(of )-145(thr)18(eads )-145(that )-145(ar)]TJ 0.3949 Tc 16.46 0 Td (er)Tj 0 Tc 1.251 0 Td [(eceiving )-145(\336les )-145(fr)18(om )-145(clients.)-645(This )-145(list )-145(is)]TJ -17.711 -1.2 Td [(pr)18(otected )-58(by )-58(the )-58(mutex)]TJ /TT0 1 Tf 10.726 0 Td (workerlock)Tj /T1_0 1 Tf 0.5583 Tc (.T)Tj 0 Tc 7.421 0 Td [(he )-58(signal )-58(mask )-58(used )-58(by )-58(the )-58(thr)18(eads )-58(is)]TJ -18.147 -1.2 Td (held in the variable)Tj /TT0 1 Tf 8.797 0 Td (mask)Tj /T1_0 1 Tf (.)Tj -12.797 -1.6 Td [([55 )167(\320 )167(59])-668(For )-86(the )-86(list )-86(of )-86(pending )-86(jobs, )-86(we )-86(de\336ne)]TJ /TT0 1 Tf 21.559 0 Td (jobhead)Tj /T1_0 1 Tf 4.536 0 Td [(to )-86(be )-86(the )-86(start )-86(of )-86(the )-86(list )-86(and)]TJ /TT0 1 Tf -22.095 -1.2 Td (jobtail)Tj /T1_0 1 Tf 4.52 0 Td [(to )-70(be )-70(the )-70(tail )-70(of )-70(the )-70(list.)-570(This )-70(list )-70(is )-70(also )-70(doubly )-70(linked, )-70(but )-70(we )-70(need)]TJ -4.52 -1.2 Td [(to )-20(add )-20(jobs )-20(to )-20(the )-20(end )-20(of )-20(the )-20(list, )-20(so )-20(we )-20(must )-20(r)23(emember )-20(a )-20(pointer )-20(to )-20(the )-20(list )-20(tail.)]TJ -0.055 Tc T* (Wi)Tj 0 Tc 1.236 0 Td [(th )-77(the )-77(list )-77(of )-77(worker )-77(thr)18(eads, )-77(the )-77(or)18(der )-77(doesn\325t )-77(matter)74(,)-327(so)-327(we)-327(can )-77(add )-77(them)]TJ -1.236 -1.2 Td [(to )-98(the )-98(head )-98(of )-98(the )-98(list )-98(and )-98(don\325t )-98(need )-98(to )-98(r)13(emember )-99(the )-99(tail )-99(pointer)75(.)]TJ /TT0 1 Tf 30.936 0 Td (jobfd)Tj /T1_0 1 Tf 3.349 0 Td (is)Tj -34.285 -1.2 Td (the \336le descriptor for the job \336le.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47167 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (812)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 1.8 Tc 8.9995 0 0 8.9995 134.9919 659.4594 Tm (1/)Tj 0 Tc 3 0 Td (*)Tj 2.4 Tc -3 -1.189 Td (2*)Tj 0 Tc 4.2 0 Td (Print server daemon.)Tj 2.4 Tc -4.2 -1.189 Td (3*)Tj 0 Tc 3.6 0 Td (/)Tj 1.8 Tc -3.6 -1.189 Td (4#)Tj 0 Tc 3 0 Td (include "apue.h")Tj 1.8 Tc -3 -1.189 Td (5#)Tj 0 Tc 3 0 Td (include )Tj 1.8 Tc -3 -1.189 Td (6#)Tj 0 Tc 3 0 Td (include )Tj 1.8 Tc -3 -1.189 Td (7#)Tj 0 Tc 3 0 Td (include )Tj 1.8 Tc -3 -1.189 Td (8#)Tj 0 Tc 3 0 Td (include )Tj 1.8 Tc -3 -1.189 Td (9#)Tj 0 Tc 3 0 Td (include )Tj -3.6 -1.189 Td [(10 )-1200(#include)-600()]TJ 0 -1.189 TD [(11 )-1200(#include)-600()]TJ T* [(12 )-1200(#include)-600()]TJ 0 -2.14 TD [(13 )-1200(#include)-600("print.h")]TJ 0 -1.189 TD [(14 )-1200(#include)-600("ipp.h")]TJ 0 -2.14 TD [(15 )-1200(/*)]TJ 0 -1.189 TD [(16 )-1800(*)-600(These are for the HTTP response from the printer.)]TJ T* [(17 )-1800(*/)]TJ T* [(18 )-1200(#define)-600(HTTP_INFO\(x\) )-1200(\(\(x\))-600(>= 100 && \(x\) <= 199\))]TJ T* [(19 )-1200(#define)-600(HTTP_SUCCESS\(x\) \(\(x\) >= 200 && \(x\) <= 299\))]TJ 0 -2.14 TD [(20 )-1200(/*)]TJ 0 -1.189 TD [(21 )-1800(*)-600(Describes a print job.)]TJ T* [(22 )-1800(*/)]TJ T* [(23 )-1200(struct)-600(job {)]TJ T* [(24 )-3000(struct)-600(job )-3000(*next; )-3000(/*)-600(next in list */)]TJ T* [(25 )-3000(struct)-600(job )-3000(*prev; )-3000(/*)-600(previous in list */)]TJ T* [(26 )-3000(int32_t)]TJ 15 0 Td [(jobid; )-2400(/*)-600(job ID */)]TJ -15 -1.189 Td [(27 )-3000(struct)-600(printreq )-600(req;)-4200(/* copy of print request */)]TJ T* [(28 )-1200(};)]TJ 0 -2.14 TD [(29 )-1200(/*)]TJ 0 -1.189 TD [(30 )-1800(*)-600(Describes a thread processing a client request.)]TJ T* [(31 )-1800(*/)]TJ 0 -1.189 TD [(32 )-1200(struct)-600(worker_thread {)]TJ 0 -1.189 TD [(33 )-3000(struct)-600(worker_thread )-600(*next;)-2400(/* next in list */)]TJ T* [(34 )-3000(struct)-600(worker_thread )-600(*prev;)-2400(/* previous in list */)]TJ T* [(35 )-3000(pthread_t)]TJ 18.6 0 Td [(tid; )-2400(/*)-600(thread ID */)]TJ -18.6 -1.189 Td [(36 )-3000(int)]TJ 18.6 0 Td [(sockfd; )-600(/*)-600(socket */)]TJ -18.6 -1.189 Td [(37 )-1200(};)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2352.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 211.2326 Tm [([1 )167(\320 )167(19])-1168(The )-77(printer )-77(spooling )-77(daemon )-77(includes )-77(the )-77(IPP )-77(header )-77(\336le )-77(that )-77(we )-77(saw )-77(earlier)68(,)]TJ 4 -1.2 Td [(because )-403(the )-403(daemon )-403(needs )-403(to )-403(communicate )-403(with )-403(the )-403(printer )-403(using )-403(this)]TJ 0 -1.2 TD [(pr)18(otocol. )-267(The)]TJ /TT0 1 Tf 6.385 0 Td (HTTP_INFO)Tj /T1_1 1 Tf 5.667 0 Td (and)Tj /TT0 1 Tf 1.96 0 Td (HTTP_SUCCESS)Tj /T1_1 1 Tf 7.467 0 Td [(macr)18(os )-17(de\336ne )-17(the )-17(status )-17(of )-17(the)]TJ -21.479 -1.2 Td [(HTTP )-40(r)18(equest )-40(\(r)19(ecall )-39(that )-39(IPP )-39(is )-39(built )-39(on )-39(top )-39(of )-39(HTTP\).)-539(Section )-39(10 )-39(in )-39(RFC )-39(2616)]TJ T* (de\336nes the HTTP status codes.)Tj -4 -1.6 Td [([20 )167(\320 )167(37])-668(The)]TJ /TT0 1 Tf 5.979 0 Td (job)Tj /T1_1 1 Tf 2.106 0 Td (and)Tj /TT0 1 Tf 1.999 0 Td (worker_thread)Tj /T1_1 1 Tf 8.106 0 Td [(str)8(uctur)18(es )-55(ar)]TJ 0.3055 Tc 5.576 0 Td (eu)Tj 0 Tc 1.387 0 Td [(sed )-56(by )-56(the )-56(spooling )-56(daemon )-56(to)]TJ -21.152 -1.2 Td [(keep track of print jobs and thr)18(eads accepting print r)18(equests, r)18(espectively)111(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47168 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(2.2)]TJ 34.152 0 Td [(UNIX )-250(Standar)18(dization)]TJ /T1_1 1 Tf 12.181 0 Td (29)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1380.25 6670.25 cm 0 0 m 3731 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 218.0229 658.9605 Tm [(Fr)18(eeBSD )-250(Linux )-250(Mac)-250(OS X)-500(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-1827(3.2.0)-1735(10.6.8 )-2170(10)]TJ -7.923 0.625 Td (Header)Tj 30.014 0 Td (Description)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1380.25 6450.25 cm 0 0 m 3731 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1380.25 6430.25 cm 0 0 m 3731 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 142.019 634.9238 Tm ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245a)Tj 0 Tc 2.789 0 Td [(synchr)18(onous I/O)]TJ /TT0 1 Tf -25.744 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj /TT0 1 Tf 2.289 0 Td (cpio)Tj /T1_0 1 Tf 2.65 0 Td [(ar)18(chive values)]TJ /TT0 1 Tf -27.894 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245d)Tj 0 Tc 2.9 0 Td [(ir)18(ectory entries \(Section 4.22\))]TJ /TT0 1 Tf -25.855 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245d)Tj 0 Tc 2.9 0 Td (ynamic linking)Tj /TT0 1 Tf -25.855 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245\336)Tj 0 Tc 2.894 0 Td [(le contr)18(ol \(Section 3.14\))]TJ /TT0 1 Tf -25.849 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245\336)Tj 0 Tc 2.894 0 Td (lename-matching types)Tj /TT0 1 Tf -25.849 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245p)Tj 0 Tc 2.89 0 Td (athname pattern-matching and generation)Tj /TT0 1 Tf -25.845 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245g)Tj -0.018 Tc 2.845 0 Td (ro)Tj 0 Tc 0.923 0 Td (up \336le \(Section 6.4\))Tj /TT0 1 Tf -26.723 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245c)Tj 0 Tc 2.733 0 Td (odeset conversion utility)Tj /TT0 1 Tf -25.688 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245l)Tj 0 Tc 2.58 0 Td (anguage information constants)Tj /TT0 1 Tf -25.535 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245m)Tj 0 Tc 3.172 0 Td (onetary types and functions)Tj /TT0 1 Tf -26.127 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245n)Tj 0 Tc 2.871 0 Td (etwork database operations)Tj /TT0 1 Tf -25.826 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245m)Tj 0 Tc 3.172 0 Td (essage catalogs)Tj /TT0 1 Tf -26.127 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245p)Tj 0 Tc 2.89 0 Td (oll function \(Section 14.4.2\))Tj /TT0 1 Tf -25.845 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245t)Tj 0 Tc 2.615 0 Td [(hr)18(eads \(Chapters 1)]TJ 0.25 Tc 8.267 0 Td (1a)Tj 0 Tc 1.25 0 Td (nd 12\))Tj /TT0 1 Tf -35.087 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245p)Tj 0 Tc 2.89 0 Td (asswor)Tj 0.25 Tc 3.105 0 Td (d\336)Tj 0 Tc 1.466 0 Td (le \(Section 6.2\))Tj /TT0 1 Tf -30.416 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245r)Tj 0 Tc 2.666 0 Td [(egular expr)18(essions)]TJ /TT0 1 Tf -25.621 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245e)Tj 0 Tc 2.768 0 Td (xecution scheduling)Tj /TT0 1 Tf -25.723 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245s)Tj 0 Tc 2.713 0 Td [(emaphor)18(es)]TJ /TT0 1 Tf -25.668 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245s)Tj 0 Tc 2.713 0 Td (tring operations)Tj /TT0 1 Tf -25.668 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj /TT0 1 Tf 2.289 0 Td (tar)Tj /T1_0 1 Tf 2.05 0 Td [(ar)18(chive values)]TJ /TT0 1 Tf -27.294 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245t)Tj 0 Tc 2.615 0 Td (erminal I/O \(Chapter 18\))Tj /TT0 1 Tf -25.57 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245s)Tj 0 Tc 2.713 0 Td (ymbolic constants)Tj /TT0 1 Tf -25.668 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245w)Tj 0 Tc 3.123 0 Td [(or)18(d-expansion de\336nitions)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1380.25 4010.25 cm 0 0 m 3731 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 142.0104 392.9293 Tm ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245I)Tj 0 Tc 2.626 0 Td (nternet de\336nitions \(Chapter 16\))Tj /TT0 1 Tf -25.581 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245s)Tj 0 Tc 2.713 0 Td (ocket local interfaces \(Chapter 16\))Tj /TT0 1 Tf -25.668 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245I)Tj 0 Tc 2.626 0 Td [(nternet addr)18(ess family \(Section 16.3\))]TJ /TT0 1 Tf -25.581 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245T)Tj 0 Tc 2.812 0 Td [(ransmission Contr)18(ol Pr)18(otocol de\336nitions)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1380.25 3590.25 cm 0 0 m 3731 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 142.0019 350.9158 Tm ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245m)Tj 0 Tc 3.172 0 Td (emory management declarations)Tj /TT0 1 Tf -26.127 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj /TT0 1 Tf 2.289 0 Td (select)Tj /T1_0 1 Tf 3.85 0 Td (function \(Section 14.4.1\))Tj /TT0 1 Tf -29.094 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245s)Tj 0 Tc 2.713 0 Td (ockets interface \(Chapter 16\))Tj /TT0 1 Tf -25.668 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245\336)Tj 0 Tc 2.894 0 Td (le status \(Chapter 4\))Tj /TT0 1 Tf -25.849 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245\336)Tj 0 Tc 2.894 0 Td (le system information)Tj /TT0 1 Tf -25.849 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245p)Tj -0.018 Tc 2.89 0 Td (ro)Tj 0 Tc 0.923 0 Td (cess times \(Section 8.17\))Tj /TT0 1 Tf -26.768 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245p)Tj 0 Tc 2.89 0 Td (rimitive system data types \(Section 2.8\))Tj /TT0 1 Tf -25.845 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245U)Tj 0 Tc 3.067 0 Td (NIX domain socket de\336nitions \(Section 17.2\))Tj /TT0 1 Tf -26.022 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245s)Tj 0 Tc 2.713 0 Td (ystem name \(Section 6.9\))Tj /TT0 1 Tf -25.668 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 11.098 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245p)Tj -0.018 Tc 2.89 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess contr)18(ol \(Section 8.6\))]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1380.25 2570.25 cm 0 0 m 3731 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3420.25 2570.25 cm 0 0 m 0 4100 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2160.25 2570.25 cm 0 0 m 0 4100 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5111.25 2570.25 cm 0 0 m 0 4100 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1380.25 2570.25 cm 0 0 m 0 4100 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 216.751 238.9283 Tm (Figure 2.2)Tj /T1_0 1 Tf 5.195 0 Td [(Requir)18(ed headers de\336ned by the POSIX standar)18(d)]TJ 9.997 0 0 9.997 129.5613 212.5362 Tm [(each )-94(functional )-94(ar)18(ea )-94(and )-94(highlight )-94(text )-94(describing )-94(aspects )-94(of )-94(the )-94(standar)]TJ 0.3439 Tc 32.604 0 Td (dt)Tj 0 Tc 1.281 0 Td [(hat )-94(depend)]TJ -33.885 -1.2 Td [(on the support of a particular option.)-500(Many options deal with r)18(eal-time extensions.)]TJ 1.8 -1.2 Td [(POSIX.1 )-208(does )-208(not )-208(include )-208(the )-208(notion )-208(of )-208(a )-208(super)6(user)]TJ 0.7082 Tc 24.11 0 Td (.I)Tj 0 Tc 1.295 0 Td [(nstead, )-208(certain )-208(operations)]TJ -0.018 Tc -27.205 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (quir)Tj 0.2795 Tc 1.831 0 Td (e\324)Tj 0 Tc 0.999 0 Td [(\324appr)18(opriate )-29(privileges,\325)]TJ 0.2795 Tc 10.637 0 Td (\325a)Tj 0 Tc 1.058 0 Td [(lthough )-30(POSIX.1 )-30(leaves )-30(the )-30(de\336nition )-30(of )-30(this )-30(term )-30(up)]TJ -15.382 -1.2 Td [(to )-191(the )-191(implementation.)-691(UNIX )-191(systems )-191(that )-191(conform )-191(to )-191(the )-191(Department )-191(of )-191(Defense\325s)]TJ 0 -1.2 TD [(security )-228(guidelines )-228(have )-228(many )-228(levels )-228(of )-228(security)]TJ 0.7278 Tc 22.454 0 Td (.I)Tj 0.4779 Tc 1.315 0 Td (nt)Tj 0 Tc 1.386 0 Td [(his )-228(text, )-228(however)74(,)-478(we)-478(use )-228(the)]TJ -25.155 -1.2 Td [(traditional terminology and r)18(efer to operations that r)18(equir)]TJ 0.25 Tc 25.599 0 Td (es)Tj 0 Tc 1.153 0 Td [(uper)8(user privilege.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47169 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (944)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(Chapter )-278(19)]TJ /T1_0 1 Tf 3.6 -2.8 Td (19.1)Tj /T1_1 1 Tf 3.065 0 Td [(Both )-195(servers,)]TJ /TT1 1 Tf 6.366 0 Td (telnetd)Tj /T1_1 1 Tf 4.645 0 Td (and)Tj /TT1 1 Tf 2.138 0 Td (rlogind)Tj /T1_1 1 Tf 0.4451 Tc (,r)Tj 0 Tc 5.282 0 Td [(un )-195(with )-195(super)8(user )-195(privileges, )-195(so )-195(their)]TJ -18.431 -1.2 Td (calls to)Tj /TT1 1 Tf 3.322 0 Td (chown)Tj /T1_1 1 Tf 3.25 0 Td (and)Tj /TT1 1 Tf 1.943 0 Td (chmod)Tj /T1_1 1 Tf 3.25 0 Td (succeed.)Tj /T1_0 1 Tf -14.83 -1.84 Td (19.2)Tj /T1_1 1 Tf 3.065 0 Td (Execute)Tj /TT1 1 Tf 4.256 0 Td [(pty )267(-n )267(stty )267(-a)]TJ /T1_1 1 Tf 8.398 0 Td [(to )-548(pr)18(event )-548(the )-548(slave\325s)]TJ /TT1 1 Tf 11.822 0 Td (termios)Tj /T1_1 1 Tf 4.998 0 Td [(str)8(uctur)]TJ 0.7983 Tc 3.49 0 Td (ea)Tj 0 Tc 1.777 0 Td (nd)Tj /TT1 1 Tf -34.742 -1.2 Td (winsize)Tj /T1_1 1 Tf 4.45 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ef)Tj -0.018 Tc 1.062 0 Td (ro)Tj 0.25 Tc 0.923 0 Td (mb)Tj 0 Tc 1.686 0 Td (eing initialized.)Tj /T1_0 1 Tf -14.676 -1.84 Td (19.4)Tj /T1_1 1 Tf 3.065 0 Td (Unfortunately)Tj 0.4107 Tc 6.186 0 Td (,t)Tj 0 Tc 0.987 0 Td (he)Tj /TT1 1 Tf 1.472 0 Td (F_SETFL)Tj /T1_1 1 Tf 4.611 0 Td [(command )-161(of)]TJ /TT1 1 Tf 6.15 0 Td (fcntl)Tj /T1_1 1 Tf 3.411 0 Td [(doesn\325t )-161(allow )-161(the )-161(r)19(ead\320write)]TJ -22.816 -1.2 Td (status to be changed.)Tj /T1_0 1 Tf -3.065 -1.84 Td (19.5)Tj /T1_1 1 Tf 3.065 0 Td (Ther)Tj 0.3313 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.31 0 Td [(re )-117(t)]TJ 0 Tc 1.513 0 Td [(hr)18(ee )-81(pr)18(ocess )-81(gr)17(oups:)]TJ 9.563 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.664 -0.04 Td [(the )-81(login )-81(shell,)]TJ 6.964 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.664 -0.04 Td (the)Tj /TT1 1 Tf 1.718 0 Td (pty)Tj /T1_1 1 Tf 2.131 0 Td [(par)18(ent )-81(and )-81(child,)]TJ -28.246 -1.2 Td (and)Tj 2.04 0.04 Td (\()Tj 0.333 -0.04 Td (3)Tj 0.5 0.04 Td (\))Tj 0.68 -0.04 Td (the)Tj /TT1 1 Tf 1.734 0 Td (cat)Tj /T1_1 1 Tf 2.147 0 Td [(pr)18(ocess. )-347(The)-347(\336rst )-97(two )-97(pr)18(ocess )-97(gr)18(oups )-97(constitute )-97(a )-97(session )-97(with)]TJ -7.434 -1.2 Td [(the )-117(login )-117(shell )-117(as )-117(the )-117(session )-117(leader)]TJ 0.6166 Tc 16.082 0 Td (.T)Tj 0 Tc 1.48 0 Td [(he )-117(second )-117(session )-117(contains )-117(only )-117(the)]TJ /TT1 1 Tf 16.574 0 Td (cat)Tj /T1_1 1 Tf -34.135 -1.2 Td [(pr)18(ocess. )-298(The)-299(\336rst )-48(pr)18(ocess )-48(gr)18(oup )-48(\(the )-48(login )-48(shell\) )-48(is )-48(a )-48(backgr)15(ound )-48(pr)18(ocess )-48(gr)17(oup,)]TJ 0 -1.2 Td (and the other two ar)Tj 0.25 Tc 8.991 0 Td (ef)Tj 0 Tc 1.062 0 Td [(or)18(egr)18(ound pr)18(ocess gr)18(oups.)]TJ /T1_0 1 Tf -13.118 -1.84 Td (19.6)Tj /T1_1 1 Tf 3.065 0 Td (First,)Tj /TT1 1 Tf 2.508 0 Td (cat)Tj /T1_1 1 Tf 2.066 0 Td [(terminates )-16(when )-16(it )-16(r)18(eceives )-16(the )-16(end )-16(of )-16(\336le )-16(fr)17(om )-16(its )-16(line )-16(discipline.)-516(This)]TJ -4.574 -1.2 Td [(causes )-157(the )-157(PTY )-157(slave )-157(to )-157(terminate, )-157(which )-157(causes )-157(the )-157(PTY )-157(master )-157(to )-157(terminate.)]TJ 0 -1.2 TD [(This )-106(in )-106(turn )-106(generates )-106(an )-106(end )-106(of )-106(\336le )-106(for )-106(the)]TJ /TT1 1 Tf 20.134 0 Td (pty)Tj /T1_1 1 Tf 2.156 0 Td [(par)18(ent )-106(that\325s )-106(r)18(eading )-106(fr)18(om )-106(the)]TJ -22.29 -1.2 Td [(PTY )-197(master)]TJ 0.6975 Tc 5.264 0 Td (.T)Tj 0 Tc 1.561 0 Td [(he )-197(par)18(ent )-197(sends)]TJ /TT1 1 Tf 7.788 0 Td (SIGTERM)Tj /T1_1 1 Tf 4.647 0 Td [(to )-197(the )-197(child, )-197(so )-197(the )-197(child )-197(terminates)]TJ -19.261 -1.2 Td [(next. )-352(\(The)-353(child )-102(doesn\325t )-102(catch )-102(this )-102(signal.\))-604(Finally)]TJ 0.3525 Tc 22.695 0 Td (,t)Tj 0 Tc 0.929 0 Td [(he )-102(par)18(ent )-102(calls)]TJ /TT1 1 Tf 6.933 0 Td (exit\(0\))Tj /T1_1 1 Tf 4.552 0 Td (at)Tj -35.109 -1.2 Td (the end of the)Tj /TT1 1 Tf 6.325 0 Td (main)Tj /T1_1 1 Tf 2.65 0 Td (function.)Tj -8.975 -1.8 Td [(The r)18(elevant output fr)18(om the pr)18(ogram shown in Figur)]TJ 0.25 Tc 23.886 0 Td (e8)Tj 0 Tc 1.229 0 Td (.29 is)Tj /TT1 1 Tf 8.9995 0 0 8.9995 178.2399 388.6767 Tm [(cat )-3600(e)]TJ 2.4 Tc 7.2 0 Td (=2)Tj 0 Tc 3.6 0 Td [(70, chars =)-3000(274, stat =)-1800(0:)]TJ -10.8 -1.189 Td [(pty )-3600(e)]TJ 2.4 Tc 7.2 0 Td (=2)Tj 0 Tc 3.6 0 Td [(62, chars =)-3600(40, stat =)-1200(15: F)-3000(X)]TJ -10.8 -1.189 Td [(pty )-3600(e)]TJ 2.4 Tc 7.2 0 Td (=2)Tj 0 Tc 3.6 0 Td [(88, chars =)-3000(188, stat =)-1800(0:)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5928 342.8794 Tm (19.7)Tj /T1_1 1 Tf 3.065 0 Td [(This )-41(can )-41(be )-41(done )-41(with )-41(the )-41(shell\325s)]TJ /TT1 1 Tf 14.912 0 Td (echo)Tj /T1_1 1 Tf 2.691 0 Td [(command )-41(and )-41(the)]TJ /TT1 1 Tf 8.402 0 Td (date)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.624 -0.04 Td [(command, )-41(all)]TJ -29.863 -1.2 Td (in a subshell:)Tj /TT1 1 Tf 8.9995 0 0 8.9995 178.2399 316.3208 Tm (#!/bin/sh)Tj 0.6 Tc 0 -1.189 TD (\(e)Tj 0 Tc 1.8 0 Td (cho "Script started on " `date`;)Tj -0.6 -1.189 Td (pty "${SHELL:-/bin/sh}";)Tj T* (echo "Script done on " `date` \) | tee typescript)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5928 263.0346 Tm (19.8)Tj /T1_1 1 Tf 3.065 0 Td [(The )-20(line )-20(discipline )-20(above )-20(the )-20(PTY )-20(slave )-20(has )-20(echo )-20(enabled, )-20(so )-20(whatever)]TJ /TT1 1 Tf 31.473 0 Td (pty)Tj /T1_1 1 Tf -0.018 Tc 2.071 0 Td (re)Tj 0 Tc 0.856 0 Td (ads)Tj -34.4 -1.2 Td [(on )-54(its )-54(standar)]TJ 0.3037 Tc 6.096 0 Td (di)Tj 0 Tc 1.206 0 Td [(nput )-54(and )-54(writes )-54(to )-54(the )-54(PTY )-54(master )-54(gets )-54(echoed )-54(by )-54(default.)-551(This)]TJ -7.302 -1.2 Td [(echoing )-111(is )-111(done )-111(by )-111(the )-111(line )-111(discipline )-111(module )-111(above )-111(the )-111(slave )-111(even )-111(though )-111(the)]TJ 0 -1.2 TD [(pr)18(ogram \()]TJ /TT1 1 Tf (ttyname)Tj /T1_1 1 Tf 0.25 Tc (\)n)Tj 0 Tc 9.806 0 Td [(ever r)18(eads the data.)]TJ /TT0 1 Tf -16.471 -3.12 Td [(Chapter )-278(20)]TJ /T1_0 1 Tf 3.6 -2.56 Td (20.1)Tj /T1_1 1 Tf 3.065 0 Td [(Our )-138(conservative )-138(locking )-138(in)]TJ /TT1 1 Tf 13.073 0 Td (_db_dodelete)Tj /T1_1 1 Tf 7.589 0 Td [(is )-138(meant )-138(to )-138(avoid )-138(race )-138(conditions)]TJ -20.661 -1.2 Td (with)Tj /TT1 1 Tf 2.289 0 Td (db_nextrec)Tj /T1_1 1 Tf 0.5065 Tc (.I)Tj 0.2564 Tc 7.094 0 Td (ft)Tj 0 Tc 0.915 0 Td [(he )-6(call )-6(to)]TJ /TT1 1 Tf 4.228 0 Td (_db_writedat)Tj /T1_1 1 Tf 7.456 0 Td (wer)Tj 0.2564 Tc 1.69 0 Td (en)Tj 0 Tc 1.317 0 Td [(ot )-6(pr)18(otected )-6(with )-6(a )-6(write)]TJ -24.99 -1.2 Td [(lock, )-264(it )-264(would )-264(be )-264(possible )-264(to )-264(erase )-264(the )-264(data )-264(r)22(ecor)]TJ 0.5136 Tc 23.548 0 Td (dw)Tj 0 Tc 1.959 0 Td (hile)Tj /TT1 1 Tf 2.157 0 Td (db_nextrec)Tj /T1_1 1 Tf 6.514 0 Td (was)Tj -0.018 Tc -34.177 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ading )-126(that )-126(data )-126(r)17(ecor)18(d:)]TJ /TT1 1 Tf 10.8 0 Td (db_nextrec)Tj /T1_1 1 Tf 6.376 0 Td [(would )-126(r)18(ead )-126(an )-126(index )-126(r)17(ecor)18(d, )-126(determine)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47170 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (742)Tj /T1_1 1 Tf 3.5 0 Td [(Pseudo )-250(T)92(erminals )]TJ 38.741 0 Td [(Chapter)-500(19)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 129.5922 668.9599 Tm [(Ex)10(er)20(cises)]TJ /T1_0 1 Tf 8.9995 0 0 8.9995 129.5922 647.9611 Tm (19.1)Tj /T1_1 1 Tf 3.065 0 Td [(When )-31(we )-31(r)18(emotely )-31(log )-31(in )-31(to )-31(a )-31(BSD )-31(system )-31(using )-31(either)]TJ /TT1 1 Tf 24.632 0 Td (telnet)Tj /T1_1 1 Tf 3.881 0 Td (or)Tj /TT1 1 Tf 1.222 0 Td (rlogin)Tj /T1_1 1 Tf 0.2811 Tc (,t)Tj 0 Tc 4.457 0 Td [(he )-31(ownership)]TJ -34.192 -1.222 Td [(of )-115(the )-115(PTY )-115(slave )-115(and )-115(its )-115(permissions )-115(ar)]TJ 0.3649 Tc 17.914 0 Td (es)Tj 0 Tc 1.268 0 Td [(et, )-115(as )-115(we )-115(described )-115(in )-115(Section )-115(19.3.)-615(How )-115(does)]TJ -19.182 -1.222 Td (this happen?)Tj /T1_0 1 Tf -3.065 -1.667 Td (19.2)Tj /T1_1 1 Tf 3.065 0 Td [(Use )-150(the)]TJ /TT1 1 Tf 3.869 0 Td (pty)Tj /T1_1 1 Tf 2.2 0 Td [(pr)18(ogram )-150(to )-150(determine )-150(the )-150(values )-150(used )-150(by )-150(your )-150(system )-150(to )-150(initialize )-150(a )-150(slave)]TJ -6.069 -1.222 Td (PTY\325s)Tj /TT1 1 Tf 2.836 0 Td (termios)Tj /T1_1 1 Tf 4.45 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ea)Tj 0 Tc 1.229 0 Td (nd)Tj /TT1 1 Tf 1.443 0 Td (winsize)Tj /T1_1 1 Tf 4.45 0 Td [(str)8(uctur)18(e.)]TJ /T1_0 1 Tf -20.963 -1.667 Td (19.3)Tj /T1_1 1 Tf 3.065 0 Td (Recode the)Tj /TT1 1 Tf 5.114 0 Td (loop)Tj /T1_1 1 Tf 2.65 0 Td (function \(Figur)Tj 0.25 Tc 6.673 0 Td (e1)Tj 0 Tc 1.229 0 Td [(9.12\) as a single pr)18(ocess using either)]TJ /TT1 1 Tf 16.183 0 Td (select)Tj /T1_1 1 Tf 3.85 0 Td (or)Tj /TT1 1 Tf 1.191 0 Td (poll)Tj /T1_1 1 Tf (.)Tj /T1_0 1 Tf -39.955 -1.667 Td (19.4)Tj /T1_1 1 Tf 3.065 0 Td [(In )-361(the )-361(child )-361(pr)19(ocess )-361(after)]TJ /TT1 1 Tf 12.906 0 Td (pty_fork)Tj /T1_1 1 Tf -0.018 Tc 5.411 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns, )-361(standar)]TJ 0.6106 Tc 6.511 0 Td (di)Tj 0 Tc 1.513 0 Td [(nput, )-361(standar)]TJ 0.6106 Tc 6.293 0 Td (do)Tj 0 Tc 1.768 0 Td [(utput, )-361(and)]TJ -35.256 -1.222 Td (standar)Tj 0.27 Tc 3.32 0 Td (de)Tj 0 Tc 1.36 0 Td [(rr)18(or )-20(ar)]TJ 0.2701 Tc 2.86 0 Td (ea)Tj 0 Tc 1.249 0 Td [(ll )-20(open )-20(for )-20(r)18(ead\320write. )-270(Can)-270(you )-20(change )-20(standar)]TJ 0.2701 Tc 21.206 0 Td (di)Tj 0 Tc 1.172 0 Td [(nput )-20(to )-20(be )-20(r)18(ead-only)]TJ -31.167 -1.222 Td (and the other two to be write-only?)Tj /T1_0 1 Tf -3.065 -1.667 Td (19.5)Tj /T1_1 1 Tf 3.065 0 Td [(In )-64(Figur)]TJ 0.3144 Tc 3.616 0 Td (e1)Tj 0 Tc 1.293 0 Td [(9.13, )-64(identify )-64(which )-64(pr)18(ocess )-64(gr)18(oups )-64(ar)16(e)-314(in)-314(t)-1(he )-64(for)18(egr)18(ound )-64(and )-64(which )-64(ar)17(e)-314(in)-314(t)-1(he)]TJ -4.91 -1.222 Td [(backgr)18(ound, and identify the session leaders.)]TJ /T1_0 1 Tf -3.065 -1.667 Td (19.6)Tj /T1_1 1 Tf 3.065 0 Td [(In )-159(Figur)]TJ 0.4092 Tc 3.711 0 Td (e1)Tj 0 Tc 1.388 0 Td [(9.13, )-159(in )-159(what )-159(or)18(der )-159(do )-159(the )-159(pr)18(ocesses )-159(terminate )-159(when )-159(we )-159(type )-159(the )-159(end-of-\336le)]TJ -5.099 -1.222 Td [(character? )-250(V)111(erify this with pr)18(ocess accounting, if possible.)]TJ /T1_0 1 Tf -3.065 -1.667 Td (19.7)Tj /T1_1 1 Tf 3.065 0 Td (The)Tj /TT1 1 Tf 1.997 0 Td (script)Tj /T1_1 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.656 -0.04 Td [(pr)18(ogram )-73(normally )-73(adds )-73(to )-73(the )-73(beginning )-73(of )-73(the )-73(output )-73(\336le )-73(a )-73(line )-73(with )-73(the)]TJ -7.086 -1.222 Td [(starting )-145(time, )-145(and )-145(to )-145(the )-145(end )-145(of )-145(the )-145(output )-145(\336le )-145(another )-145(line )-145(with )-145(the )-145(ending )-145(time.)-641(Add)]TJ 0 -1.222 TD [(these featur)18(es to the simple shell script that we showed.)]TJ /T1_0 1 Tf -3.065 -1.667 Td (19.8)Tj /T1_1 1 Tf 3.065 0 Td [(Explain )-208(why )-208(the )-208(contents )-208(of )-208(the )-208(\336le)]TJ /TT1 1 Tf 17.308 0 Td (data)Tj /T1_1 1 Tf 2.858 0 Td (ar)Tj 0.458 Tc 0.877 0 Td (eo)Tj 0 Tc 1.483 0 Td [(utput )-208(to )-208(the )-208(terminal )-208(in )-208(the )-208(following)]TJ -22.526 -1.222 Td [(example, )-191(even )-191(though )-191(the )-191(pr)17(ogram)]TJ /TT1 1 Tf 16.75 0 Td (ttyname)Tj /T1_1 1 Tf 4.641 0 Td (\(Figur)Tj 0.4412 Tc 2.716 0 Td (e1)Tj 0 Tc 1.42 0 Td [(8.16\) )-191(only )-191(generates )-191(output )-191(and)]TJ -25.528 -1.222 Td [(never r)18(eads its input.)]TJ /TT1 1 Tf 2 -1.8 Td ($)Tj /TT2 1 Tf 1.2 0 Td (cat data)Tj /T1_2 1 Tf 0.25 Tc 14.8 0 Td (a\336)Tj 0 Tc 1.222 0 Td (le with two lines)Tj /TT1 1 Tf -17.222 -1.189 Td (hello,)Tj 0 -1.189 TD (world)Tj T* ($)Tj /TT2 1 Tf 1.2 0 Td (pty -i < data ttyname)Tj /T1_2 1 Tf 14.8 0 Td (-i says ignor)Tj 0.25 Tc 4.982 0 Td (ee)Tj 0 Tc 1.028 0 Td (of on stdin)Tj /TT1 1 Tf -22.01 -1.189 Td (hello,)Tj /T1_2 1 Tf 16 0 Td (wher)Tj 0.25 Tc 1.982 0 Td (ed)Tj 0 Tc 1.139 0 Td [(id these two lines come fr)18(om?)]TJ /TT1 1 Tf -19.121 -1.189 Td (world)Tj 0 -1.189 TD (fd 0: /dev/ttys005)Tj /T1_2 1 Tf 16 0 Td [(we expect these thr)18(ee lines fr)18(om ttyname)]TJ /TT1 1 Tf -16 -1.189 Td (fd 1: /dev/ttys005)Tj 0 -1.189 TD (fd 2: /dev/ttys005)Tj /T1_0 1 Tf -5.065 -2.278 Td (19.9)Tj /T1_1 1 Tf -0.074 Tc 3.065 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-70(a )-70(pr)18(ogram )-70(that )-70(calls)]TJ /TT1 1 Tf 10.737 0 Td (pty_fork)Tj /T1_1 1 Tf 5.12 0 Td [(and )-70(have )-70(the )-70(child)]TJ /TT1 1 Tf 8.704 0 Td (exec)Tj /T1_1 1 Tf 2.72 0 Td [(another )-70(pr)18(ogram )-70(that )-70(you)]TJ -28.602 -1.222 Td [(will )-109(write.)-609(The )-109(new )-109(pr)18(ogram )-109(that )-109(the )-109(child)]TJ /TT1 1 Tf 20.173 0 Td (exec)Tj /T1_1 1 Tf 0.3592 Tc (sm)Tj 0 Tc 4.066 0 Td [(ust )-109(catch)]TJ /TT1 1 Tf 4.368 0 Td (SIGTERM)Tj /T1_1 1 Tf 4.559 0 Td (and)Tj /TT1 1 Tf 2.052 0 Td (SIGWINCH)Tj /T1_1 1 Tf (.)Tj -35.218 -1.222 Td [(When )-1(it )-1(catches )-1(a )-1(signal, )-1(the )-1(pr)21(ogram should print that it did; for the latter signal, it should)]TJ 0 -1.222 TD [(also )-132(print )-132(the )-132(terminal\325s )-132(window )-132(size.)-632(Then )-132(have )-132(the )-132(par)14(ent )-133(pr)18(ocess )-133(send )-133(the)]TJ /TT1 1 Tf 36.068 0 Td (SIGTERM)Tj /T1_1 1 Tf -36.068 -1.222 Td [(signal )-126(to )-126(the )-126(pr)18(ocess )-126(gr)18(oup )-126(of )-126(the )-126(PTY )-126(slave )-126(with )-126(the)]TJ /TT1 1 Tf 24.844 0 Td (ioctl)Tj /T1_1 1 Tf 3.376 0 Td [(command )-126(we )-126(described )-126(in)]TJ -28.219 -1.222 Td [(Section )-118(19.7.)-618(Read )-118(back )-118(fr)18(om )-118(the )-118(slave )-118(to )-118(verify )-118(that )-118(the )-118(signal )-118(was )-118(caught.)-615(Follow )-118(this)]TJ 0 -1.222 TD [(with )-96(the )-96(par)18(ent )-96(setting )-96(the )-96(window )-96(size )-96(of )-96(the )-96(PTY )-96(slave, )-96(and )-96(then )-96(r)18(ead )-96(back )-96(the )-96(slave\325s)]TJ 0 -1.222 TD [(output )-309(again.)-809(Have )-309(the )-309(par)18(ent)]TJ /TT1 1 Tf 15.358 0 Td (exit)Tj /T1_1 1 Tf 2.959 0 Td [(and )-309(determine )-309(whether )-309(the )-309(slave )-309(pr)18(ocess )-309(also)]TJ -18.317 -1.222 Td (terminates; if so, how does it terminate?)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47171 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (730)Tj /T1_1 1 Tf 3.5 0 Td [(Pseudo )-250(T)92(erminals )]TJ 38.741 0 Td [(Chapter)-500(19)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm [(struct termios)-1200(orig_termios;)]TJ 0 -1.189 TD [(struct winsize)-1200(size;)]TJ 0 -2.021 TD (interactive = isatty\(STDIN_FILENO\);)Tj 0 -1.189 TD (ignoreeof = 0;)Tj T* (noecho = 0;)Tj 0 -1.189 TD (verbose = 0;)Tj 0 -1.189 TD (driver = NULL;)Tj 0 -2.021 TD [(opterr = 0;)-3000(/* don\325t want getopt\(\) writing to stderr */)]TJ 0 -1.189 TD (while \(\(c = getopt\(argc, argv, OPTSTR\)\) != EOF\) {)Tj 2.4 -1.189 Td (switch \(c\) {)Tj T* [(case \325d\325:)-4200(/* driver for stdin/stdout */)]TJ 2.4 -1.189 Td (driver = optarg;)Tj T* (break;)Tj -2.4 -2.021 Td [(case \325e\325:)-4200(/* noecho for slave pty\325s line discipline */)]TJ 2.4 -1.189 Td (noecho = 1;)Tj T* (break;)Tj -2.4 -2.021 Td [(case \325i\325:)-4200(/* ignore EOF on standard input */)]TJ 2.4 -1.189 Td (ignoreeof = 1;)Tj T* (break;)Tj -2.4 -2.021 Td [(case \325n\325:)-4200(/* not interactive */)]TJ 2.4 -1.189 Td (interactive = 0;)Tj T* (break;)Tj -2.4 -2.021 Td [(case \325v\325:)-4200(/* verbose */)]TJ 2.4 -1.189 Td (verbose = 1;)Tj T* (break;)Tj -2.4 -2.021 Td (case \325?\325:)Tj 2.4 -1.189 Td (err_quit\("unrecognized option: -%c", optopt\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj T* (if \(optind >= argc\))Tj 2.4 -1.189 Td (err_quit\("usage: pty [ -d driver -einv ] program [ arg ... ]"\);)Tj -2.4 -2.021 Td [(if \(interactive\) {)-1200(/* fetch current termios and window size */)]TJ 2.4 -1.189 Td (if \(tcgetattr\(STDIN_FILENO, &orig_termios\) < 0\))Tj 2.4 -1.189 Td (err_sys\("tcgetattr error on stdin"\);)Tj -2.4 -1.189 Td (if \(ioctl\(STDIN_FILENO, TIOCGWINSZ, \(char *\) &size\) < 0\))Tj 2.4 -1.189 Td (err_sys\("TIOCGWINSZ error"\);)Tj -2.4 -1.189 Td (pid = pty_fork\(&fdm, slave_name, sizeof\(slave_name\),)Tj 1.2 -1.189 Td (&orig_termios, &size\);)Tj 0.6 Tc -3.6 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (pid = pty_fork\(&fdm, slave_name, sizeof\(slave_name\),)Tj 1.2 -1.189 Td (NULL, NULL\);)Tj -3.6 -1.189 Td (})Tj 0 -2.021 TD (if \(pid < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47172 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(19.4)]TJ /TT0 1 Tf 34.603 0 Td (pty_fork)Tj /T1_0 1 Tf 5.3 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (727)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (pid_t pty_fork\(int *)Tj /T1_2 1 Tf (ptrfdm)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 16.578 0 Td (har *)Tj /T1_2 1 Tf (slave_name)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 9.467 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (slave_namesz)Tj /TT0 1 Tf (,)Tj -18.845 -1.189 Td (const struct termios *)Tj /T1_2 1 Tf (slave_termios)Tj /TT0 1 Tf (,)Tj 0 -1.189 TD (const struct winsize *)Tj /T1_2 1 Tf (slave_winsize)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 3.903 -2.021 Td [(Returns: 0 in child, pr)18(ocess ID of child in par)18(ent,)]TJ /TT1 1 Tf 21.561 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5853.25 cm 0 0 m 0 820 l 3900 820 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 569.3517 Tm [(The \336le descriptor of the PTY master is r)18(eturned thr)18(ough the)]TJ /T1_2 1 Tf 26.994 0 Td (ptrfdm)Tj /T1_0 1 Tf 3.028 0 Td [(pointer)74(.)]TJ -28.222 -1.2 Td (If)Tj /T1_2 1 Tf 0.945 0 Td (slave_name)Tj /T1_0 1 Tf 4.942 0 Td [(is )-25(non-null, )-25(the )-25(name )-25(of )-25(the )-25(slave )-25(device )-25(is )-25(stor)18(ed )-25(at )-25(that )-25(location.)-525(The)]TJ -7.687 -1.2 Td [(caller is r)18(esponsible for allocating the storage pointed to by this ar)18(gument.)]TJ 1.8 -1.2 Td [(If )-114(the )-114(pointer)]TJ /T1_2 1 Tf 6.37 0 Td (slave_termios)Tj /T1_0 1 Tf 5.864 0 Td [(is )-114(non-null, )-114(the )-114(system )-114(uses )-114(the )-114(r)17(efer)18(enced )-114(str)8(uctur)]TJ 0.3642 Tc 23.25 0 Td (et)Tj 0 Tc 1.169 0 Td (o)Tj -38.454 -1.2 Td [(initialize )-62(the )-62(terminal )-62(line )-62(discipline )-62(of )-62(the )-62(slave.)-562(If )-62(this )-62(pointer )-62(is )-62(null, )-62(the )-62(system )-62(sets)]TJ 0 -1.2 TD [(the )-136(slave\325s)]TJ /TT0 1 Tf 5.119 0 Td (termios)Tj /T1_0 1 Tf 4.586 0 Td [(str)8(uctur)18(e)-386(to)-386(an)-386(i)1(mplementation-de\336ned )-136(initial )-136(state.)-635(Similarly)]TJ 0.3856 Tc 28.036 0 Td (,i)Tj 0 Tc 0.927 0 Td (f)Tj -38.667 -1.2 Td (the)Tj /T1_2 1 Tf 1.932 0 Td (slave_winsize)Tj /T1_0 1 Tf 6.101 0 Td [(pointer )-295(is )-295(non-null, )-295(the )-295(r)17(efer)18(enced )-295(str)8(uctur)]TJ 0.5452 Tc 20.238 0 Td (ei)Tj 0 Tc 1.315 0 Td [(nitializes )-295(the )-295(slave\325s)]TJ -29.587 -1.2 Td [(window size.)-500(If this pointer is null, the)]TJ /TT0 1 Tf 17.524 0 Td (winsize)Tj /T1_0 1 Tf 4.45 0 Td [(str)8(uctur)18(e)-250(is)-250(normally initialized to 0.)]TJ -20.174 -1.2 Td (Figur)Tj 0.531 Tc 2.383 0 Td (e1)Tj 0 Tc 1.51 0 Td [(9.10 )-281(shows )-281(the )-281(code )-281(for )-281(this )-281(function.)-781(It )-281(works )-281(on )-281(all )-281(four )-281(platforms)]TJ -5.693 -1.2 Td (described in this text, calling the)Tj /TT0 1 Tf 14.522 0 Td (ptym_open)Tj /T1_0 1 Tf 5.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (ptys_open)Tj /T1_0 1 Tf 5.65 0 Td (functions.)Tj -25.965 -1.2 Td [(After )-23(opening )-23(the )-23(PTY )-23(master)72(,)]TJ /TT0 1 Tf 13.77 0 Td (fork)Tj /T1_0 1 Tf 2.674 0 Td [(is )-23(called.)-523(As )-23(we )-23(mentioned )-23(befor)18(e, )-23(we )-23(want )-23(to)]TJ -18.243 -1.2 Td [(wait )-101(to )-101(call)]TJ /TT0 1 Tf 5.401 0 Td (ptys_open)Tj /T1_0 1 Tf 5.751 0 Td [(until )-101(in )-101(the )-101(child )-101(and )-101(after )-101(calling)]TJ /TT0 1 Tf 15.708 0 Td (setsid)Tj /T1_0 1 Tf 3.951 0 Td [(to )-101(establish )-101(a )-101(new)]TJ -30.811 -1.2 Td [(session. )-264(When)-265(it )-14(calls)]TJ /TT0 1 Tf 9.938 0 Td (setsid)Tj /T1_0 1 Tf 0.2645 Tc (,t)Tj 0 Tc 4.441 0 Td [(he )-14(child )-14(is )-14(not )-14(a )-14(pr)18(ocess )-14(gr)18(oup )-14(leader)71(,)-264(so)-264(t)-1(he )-14(thr)18(ee )-14(steps)]TJ -14.379 -1.2 Td [(listed )-175(in )-175(Section )-175(9.5 )-175(occur: )-175(\(a\) )-175(a )-175(new )-175(session )-175(is )-175(cr)19(eated )-175(with )-175(the )-175(child )-175(as )-175(the )-175(session)]TJ T* (leader)Tj 0.4503 Tc 2.681 0 Td (,\()Tj 0 Tc 1.033 0 Td [(b\) )-200(a )-200(new )-200(pr)18(ocess )-200(gr)18(oup )-200(is )-200(cr)18(eated )-200(for )-200(the )-200(child, )-200(and )-200(\(c\) )-200(the )-200(child )-200(loses )-200(any)]TJ -3.714 -1.2 Td [(association )-35(it )-35(might )-35(have )-35(had )-35(with )-35(its )-35(pr)18(evious )-35(contr)18(olling )-35(terminal.)-535(Under )-35(Linux, )-35(Mac)]TJ T* [(OS )-64(X, )-64(and )-64(Solaris, )-64(the )-64(slave )-64(becomes )-64(the )-64(contr)18(olling )-64(terminal )-64(of )-64(this )-64(new )-64(session )-64(when)]TJ /TT0 1 Tf T* (ptys_open)Tj /T1_0 1 Tf 6.061 0 Td [(is )-411(called.)-911(Under )-411(Fr)18(eeBSD, )-411(we )-411(have )-411(to )-411(use )-411(the)]TJ /TT0 1 Tf 23.878 0 Td [(TIOCSCTTY )-61(ioctl)]TJ /T1_0 1 Tf -29.939 -1.2 Td [(command )-309(to )-309(allocate )-309(the )-309(contr)18(olling )-309(terminal.)-811(\(Recall )-309(Figur)]TJ 0.5594 Tc 28.468 0 Td (e9)Tj 0 Tc 1.538 0 Td [(.8 )167(\321 )167(the)-560(other )-309(thr)18(ee)]TJ -30.007 -1.2 Td (platforms also support)Tj /TT0 1 Tf 10.306 0 Td (TIOCSCTTY)Tj /T1_0 1 Tf 0.25 Tc (,b)Tj 0 Tc 6.453 0 Td [(ut we need to call it only on Fr)18(eeBSD.\))]TJ -14.959 -1.2 Td [(The )-31(two )-31(str)8(uctur)18(es)]TJ /TT0 1 Tf 8.616 0 Td (termios)Tj /T1_0 1 Tf 4.481 0 Td (and)Tj /TT0 1 Tf 1.974 0 Td (winsize)Tj /T1_0 1 Tf 4.481 0 Td (ar)Tj 0.2809 Tc 0.877 0 Td (et)Tj 0 Tc 1.086 0 Td [(hen )-31(initialized )-31(in )-31(the )-31(child.)-530(Finally)111(,)]TJ -23.314 -1.2 Td [(the )-344(slave )-344(\336le )-344(descriptor )-344(is )-344(duplicated )-344(onto )-344(standar)]TJ 0.5938 Tc 24.482 0 Td (di)Tj 0 Tc 1.496 0 Td [(nput, )-344(standar)]TJ 0.5939 Tc 6.276 0 Td (do)Tj 0 Tc 1.751 0 Td [(utput, )-344(and)]TJ -34.004 -1.2 Td (standar)Tj 0.271 Tc 3.32 0 Td (de)Tj 0 Tc 1.361 0 Td [(rr)18(or )-21(in )-21(the )-21(child.)-521(This )-21(means )-21(that )-21(whatever )-21(pr)18(ocess )-21(the )-21(caller)]TJ /TT0 1 Tf 27.427 0 Td (exec)Tj /T1_0 1 Tf 0.271 Tc (sf)Tj -0.018 Tc 3.428 0 Td (ro)Tj 0.271 Tc 0.923 0 Td (mt)Tj 0 Tc 1.48 0 Td (he)Tj -37.939 -1.2 Td [(child )-281(will )-281(have )-281(these )-281(thr)18(ee )-281(descriptors )-281(connected )-281(to )-281(the )-281(slave )-281(PTY )-281(\(its )-281(contr)12(olling)]TJ T* (terminal\).)Tj 1.8 -1.2 Td [(After )-147(the )-147(call )-147(to)]TJ /TT0 1 Tf 7.684 0 Td (fork)Tj /T1_0 1 Tf 0.3971 Tc (,t)Tj 0 Tc 3.373 0 Td [(he )-147(par)18(ent )-147(just )-147(r)18(eturns )-147(the )-147(PTY )-147(master )-147(descriptor )-147(and )-147(the)]TJ -12.858 -1.2 Td [(pr)18(ocess )-80(ID )-80(of )-80(the )-80(child.)-580(In )-80(the )-80(next )-80(section, )-80(we )-80(use )-80(the)]TJ /TT0 1 Tf 25.112 0 Td (pty_fork)Tj /T1_0 1 Tf 5.13 0 Td [(function )-80(in )-80(the)]TJ /TT0 1 Tf 6.958 0 Td (pty)Tj /T1_0 1 Tf -37.2 -1.2 Td [(pr)18(ogram.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2346.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 225.0785 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD (pid_t)Tj 0 -1.189 TD (pty_fork\(int *ptrfdm, char *slave_name, int slave_namesz,)Tj 5.4 -1.189 Td (const struct termios *slave_termios,)Tj T* (const struct winsize *slave_winsize\))Tj -5.4 -1.189 Td ({)Tj 2.4 -1.189 Td [(int )-2400(fdm,)-600(fds;)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47173 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.12)]TJ -0.092 Tc 33.324 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(W)55(indow )-250(Size)]TJ /T1_1 1 Tf 11.546 0 Td [(71)37(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 0.883 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (\245O)Tj 0 Tc 2.275 0 Td [(ther )-182(than )-182(storing )-182(the )-182(curr)18(ent )-182(value )-182(of )-182(the )-182(str)8(uctur)]TJ 0.432 Tc 23.135 0 Td (ea)Tj 0 Tc 1.411 0 Td [(nd )-182(generating )-182(a )-182(signal)]TJ -25.332 -1.2 Td [(when )-327(the )-327(value )-327(changes, )-327(the )-327(kernel )-327(does )-327(nothing )-327(else )-327(with )-327(this )-327(str)5(uctur)18(e.)]TJ 0 -1.2 TD [(Interpr)18(eting the str)8(uctur)18(e)-250(is)-250(entir)18(ely up to the application.)]TJ -3.289 -2.04 Td [(This )-25(featur)]TJ 0.2752 Tc 4.803 0 Td (ei)Tj 0.2753 Tc 1.045 0 Td (sp)Tj -0.018 Tc 1.3 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vided )-25(to )-25(notify )-25(applications )-25(\(such )-25(as )-25(the)]TJ /TT0 1 Tf 18.084 0 Td (vi)Tj /T1_0 1 Tf 1.475 0 Td [(editor\) )-25(when )-25(the )-25(window)]TJ -27.631 -1.2 Td [(size )-139(changes.)-639(When )-139(it )-139(r)19(eceives )-139(the )-139(signal, )-139(the )-139(application )-139(can )-139(fetch )-139(the )-139(new )-139(size )-139(and)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(draw the scr)18(een.)]TJ /TT1 1 Tf -4.456 -2.4 Td (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td (Figur)Tj 0.3777 Tc 2.383 0 Td (e1)Tj 0 Tc 1.357 0 Td [(8.22 )-128(shows )-128(a )-128(pr)18(ogram )-128(that )-128(prints )-128(the )-128(curr)18(ent )-128(window )-128(size )-128(and )-128(goes )-128(to )-128(sleep.)]TJ -3.74 -1.2 Td [(Each )-96(time )-96(the )-96(window )-96(size )-96(changes,)]TJ /TT0 1 Tf 16.788 0 Td (SIGWINCH)Tj /T1_0 1 Tf 5.146 0 Td [(is )-96(caught )-96(and )-96(the )-96(new )-96(size )-96(is )-96(printed.)]TJ -0.092 Tc -21.934 -1.2 Td [(We )-184(h)]TJ 0 Tc 2.219 0 Td [(ave to terminate this pr)18(ogram with a signal.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5214.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 511.8376 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#ifndef TIOCGWINSZ)Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#endif)Tj 0 -2.14 TD (static void)Tj 0 -1.189 TD (pr_winsize\(int fd\))Tj T* ({)Tj 2.4 -1.189 Td [(struct winsize)-1200(size;)]TJ 0 -2.14 TD (if \(ioctl\(fd, TIOCGWINSZ, \(char *\) &size\) < 0\))Tj 2.4 -1.189 Td (err_sys\("TIOCGWINSZ error"\);)Tj -2.4 -1.189 Td (printf\("%d rows, %d columns\\n", size.ws_row, size.ws_col\);)Tj -2.4 -1.189 Td (})Tj T* (static void)Tj 0 -1.189 TD (sig_winch\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("SIGWINCH received\\n"\);)Tj T* (pr_winsize\(STDIN_FILENO\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (if \(isatty\(STDIN_FILENO\) == 0\))Tj 2.4 -1.189 Td (exit\(1\);)Tj -2.4 -1.189 Td (if \(signal\(SIGWINCH, sig_winch\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("signal error"\);)Tj -2.4 -1.189 Td [(pr_winsize\(STDIN_FILENO\); )-1200(/*)-600(print initial size */)]TJ T* (for \( ; ; \))Tj 16.8 0 Td (/* and sleep forever */)Tj -14.4 -1.189 Td (pause\(\);)Tj -4.8 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1625.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 267.4119 146.5316 Tm (Figure 18.22)Tj /T1_0 1 Tf 6.195 0 Td (Print window size)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47174 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(9.1)]TJ 27.0753 Tc 4.888 0 Td (1F)Tj -0.018 Tc 28.131 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD )-250(Implementation)]TJ /T1_1 1 Tf 11.995 0 Td [(31)37(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (\245)Tj /TT0 1 Tf 1.489 0 Td (s_leader)Tj /T1_0 1 Tf 5.05 0 Td (is a pointer to the)Tj /TT0 1 Tf 7.944 0 Td (proc)Tj /T1_0 1 Tf 2.65 0 Td [(str)8(uctur)18(e)-250(of)-250(the session leader)74(.)]TJ -17.133 -1.72 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (s_ttyvp)Tj /T1_0 1 Tf 4.45 0 Td (is a pointer to the)Tj /TT0 1 Tf 7.944 0 Td (vnode)Tj /T1_0 1 Tf 3.25 0 Td [(str)8(uctur)18(e)-250(of)-250(the contr)18(olling terminal.)]TJ -17.133 -1.72 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (s_ttyp)Tj /T1_0 1 Tf 3.85 0 Td (is a pointer to the)Tj /TT0 1 Tf 7.944 0 Td (tty)Tj /T1_0 1 Tf 2.05 0 Td [(str)8(uctur)18(e)-250(of)-250(the contr)18(olling terminal.)]TJ -15.333 -1.72 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (s_sid)Tj /T1_0 1 Tf 3.276 0 Td [(is )-26(the )-26(session )-26(ID.)-526(Recall )-26(that )-26(the )-26(concept )-26(of )-26(a )-26(session )-26(ID )-26(is )-26(not )-26(part )-26(of )-26(the)]TJ -3.276 -1.2 Td (Single UNIX Speci\336cation.)Tj -1.489 -2.16 Td (When)Tj /TT0 1 Tf 3.042 0 Td (setsid)Tj /T1_0 1 Tf 3.999 0 Td [(is )-149(called, )-149(a )-149(new)]TJ /TT0 1 Tf 7.571 0 Td (session)Tj /T1_0 1 Tf 4.599 0 Td [(str)8(uctur)]TJ 0.3987 Tc 3.49 0 Td (ei)Tj 0.3986 Tc 1.169 0 Td (sa)Tj 0 Tc 1.323 0 Td [(llocated )-149(within )-149(the )-149(kernel.)]TJ -26.991 -1.2 Td (Now)Tj /TT0 1 Tf 2.518 0 Td (s_count)Tj /T1_0 1 Tf 4.506 0 Td [(is )-57(set )-57(to )-57(1,)]TJ /TT0 1 Tf 4.792 0 Td (s_leader)Tj /T1_0 1 Tf 5.107 0 Td [(is )-57(set )-57(to )-57(point )-57(to )-57(the)]TJ /TT0 1 Tf 9.261 0 Td (proc)Tj /T1_0 1 Tf 2.707 0 Td [(str)8(uctur)18(e)-307(of)-307(t)1(he )-57(calling)]TJ -28.89 -1.2 Td [(pr)18(ocess,)]TJ /TT0 1 Tf 4.024 0 Td (s_sid)Tj /T1_0 1 Tf 3.479 0 Td [(is )-229(set )-229(to )-229(the )-229(pr)18(ocess )-229(ID, )-229(and)]TJ /TT0 1 Tf 13.906 0 Td (s_ttyvp)Tj /T1_0 1 Tf 4.679 0 Td (and)Tj /TT0 1 Tf 2.172 0 Td (s_ttyp)Tj /T1_0 1 Tf 4.079 0 Td (ar)Tj 0.479 Tc 0.877 0 Td (es)Tj 0 Tc 1.382 0 Td [(et )-229(to )-229(null)]TJ -34.598 -1.2 Td [(pointers, since the new session doesn\325t have a contr)18(olling terminal.)]TJ 1.8 -1.2 Td [(Let\325s )-172(move )-172(to )-172(the)]TJ /TT0 1 Tf 8.538 0 Td (tty)Tj /T1_0 1 Tf 2.222 0 Td [(str)8(uctur)18(e. )-422(The)-422(kernel )-172(contains )-172(one )-172(of )-172(these )-172(str)8(uctur)18(es )-172(for)]TJ -12.56 -1.2 Td [(each )-153(terminal )-153(device )-153(and )-153(each )-153(pseudo )-153(terminal )-153(device.)-650(\(W)]TJ 0.4026 Tc 27.161 0 Td (et)Tj 0 Tc 1.208 0 Td [(alk )-153(mor)]TJ 0.4025 Tc 3.556 0 Td (ea)Tj 0 Tc 1.381 0 Td [(bout )-152(pseudo)]TJ -33.306 -1.2 Td (terminals in Chapter 19.\))Tj 1.8 -2.16 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (t_session)Tj /T1_0 1 Tf 5.994 0 Td [(points )-344(to )-344(the)]TJ /TT0 1 Tf 6.812 0 Td (session)Tj /T1_0 1 Tf 4.794 0 Td [(str)8(uctur)]TJ 0.5944 Tc 3.49 0 Td (et)Tj 0 Tc 1.399 0 Td [(hat )-344(has )-344(this )-344(terminal )-344(as )-344(its)]TJ -22.49 -1.2 Td [(contr)18(olling )-350(terminal.)-850(\(Note )-350(that )-350(the)]TJ /TT0 1 Tf 17.714 0 Td (tty)Tj /T1_0 1 Tf 2.4 0 Td [(str)8(uctur)]TJ 0.5998 Tc 3.49 0 Td (ep)Tj 0 Tc 1.68 0 Td [(oints )-350(to )-350(the)]TJ /TT0 1 Tf 6.227 0 Td (session)Tj /T1_0 1 Tf -31.511 -1.2 Td [(str)8(uctur)18(e, )-78(and )-78(vice )-78(versa.\))-578(This )-78(pointer )-78(is )-78(used )-78(by )-78(the )-78(terminal )-78(to )-78(send )-78(a )-78(hang-)]TJ 0 -1.2 TD (up signal to the session leader if the terminal loses carrier \(Figur)Tj 0.25 Tc 28.319 0 Td (e9)Tj 0 Tc 1.229 0 Td (.7\).)Tj -31.037 -1.72 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (t_pgrp)Tj /T1_0 1 Tf 3.855 0 Td [(points )-5(to )-5(the)]TJ /TT0 1 Tf 5.795 0 Td (pgrp)Tj /T1_0 1 Tf 2.655 0 Td [(str)8(uctur)]TJ 0.2553 Tc 3.49 0 Td (eo)Tj 0.2552 Tc 1.28 0 Td (ft)Tj 0 Tc 0.914 0 Td [(he )-5(for)18(egr)18(ound )-5(pr)18(ocess )-5(gr)18(oup. )-255(This)-255(\336eld)]TJ -17.99 -1.2 Td [(is )-86(used )-86(by )-86(the )-86(terminal )-86(driver )-86(to )-86(send )-86(signals )-86(to )-86(the )-86(for)19(egr)18(ound )-86(pr)18(ocess )-86(gr)18(oup.)]TJ 0 -1.2 Td [(The )-120(thr)18(ee )-120(signals )-120(generated )-120(by )-120(entering )-120(special )-120(characters )-120(\(interr)8(upt, )-120(quit, )-120(and)]TJ T* (suspend\) ar)Tj 0.25 Tc 5.184 0 Td (es)Tj 0 Tc 1.153 0 Td [(ent to the for)18(egr)18(ound pr)18(ocess gr)18(oup.)]TJ -7.826 -1.72 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (t_termios)Tj /T1_0 1 Tf 5.968 0 Td [(is )-318(a )-318(str)7(uctur)]TJ 0.5683 Tc 5.842 0 Td (ec)Tj 0 Tc 1.491 0 Td [(ontaining )-318(all )-318(the )-318(special )-318(characters )-318(and )-318(r)16(elated)]TJ -13.301 -1.2 Td [(information )-19(for )-19(this )-19(terminal, )-19(such )-19(as )-19(baud )-19(rate, )-19(whether )-19(echo )-19(is )-19(enabled, )-19(and )-19(so)]TJ T* [(on. )-250(W)92(e\325ll r)18(eturn to this str)8(uctur)18(e)-250(in)-250(Chapter 18.)]TJ -1.489 -1.72 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (t_winsize)Tj /T1_0 1 Tf 5.666 0 Td [(is )-16(a)]TJ /TT0 1 Tf 1.748 0 Td (winsize)Tj /T1_0 1 Tf 4.466 0 Td [(str)8(uctur)]TJ 0.2665 Tc 3.49 0 Td (et)Tj 0 Tc 1.071 0 Td [(hat )-16(contains )-16(the )-16(curr)18(ent )-16(size )-16(of )-16(the )-16(terminal)]TJ -16.442 -1.2 Td (window)Tj 0.5702 Tc 3.606 0 Td (.W)Tj 0 Tc 1.82 0 Td [(hen )-70(the )-70(size )-70(of )-70(the )-70(terminal )-70(window )-70(changes, )-70(the)]TJ /TT0 1 Tf 22.521 0 Td (SIGWINCH)Tj /T1_0 1 Tf 5.12 0 Td (signal)Tj -33.067 -1.2 Td [(is )-204(sent )-204(to )-204(the )-204(for)18(egr)18(ound )-204(pr)18(ocess )-204(gr)18(oup. )-454(W)]TJ 0.4541 Tc 20.36 0 Td (es)Tj 0 Tc 1.357 0 Td [(how )-204(how )-204(to )-204(set )-204(and )-204(fetch )-204(the)]TJ -21.717 -1.2 Td [(terminal\325s curr)18(ent window size in Section 18.12.)]TJ -0.092 Tc -3.289 -2.16 Td [(To )-205(\336)]TJ 0 Tc 1.943 0 Td [(nd )-21(the )-21(for)18(egr)18(ound )-21(pr)18(ocess )-21(gr)18(oup )-21(of )-21(a )-21(particular )-21(session, )-21(the )-21(kernel )-21(has )-21(to )-21(start )-21(with)]TJ -1.943 -1.2 Td [(the )-82(session )-82(str)7(uctur)18(e, )-83(follow)]TJ /TT0 1 Tf 12.947 0 Td (s_ttyp)Tj /T1_0 1 Tf 3.933 0 Td [(to )-83(get )-83(to )-83(the )-83(contr)18(olling )-83(terminal\325s)]TJ /TT0 1 Tf 15.769 0 Td (tty)Tj /T1_0 1 Tf 2.133 0 Td [(str)8(uctur)18(e,)]TJ -34.781 -1.2 Td [(and )-71(then )-71(follow)]TJ /TT0 1 Tf 7.466 0 Td (t_pgrp)Tj /T1_0 1 Tf 3.921 0 Td [(to )-71(get )-71(to )-71(the )-71(for)18(egr)18(ound )-71(pr)18(ocess )-71(gr)18(oup\325s)]TJ /TT0 1 Tf 18.428 0 Td (pgrp)Tj /T1_0 1 Tf 2.721 0 Td [(str)8(uctur)18(e. )-321(The)]TJ /TT0 1 Tf -32.536 -1.2 Td (pgrp)Tj /T1_0 1 Tf 2.65 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ec)Tj 0 Tc 1.173 0 Td [(ontains the information for a particular pr)18(ocess gr)18(oup.)]TJ -5.513 -2.16 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (pg_id)Tj /T1_0 1 Tf 3.25 0 Td [(is the pr)18(ocess gr)18(oup ID.)]TJ -4.739 -1.72 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (pg_session)Tj /T1_0 1 Tf 6.496 0 Td [(points )-246(to )-246(the)]TJ /TT0 1 Tf 6.516 0 Td (session)Tj /T1_0 1 Tf 4.696 0 Td [(str)8(uctur)]TJ 0.4958 Tc 3.49 0 Td (ef)Tj 0 Tc 1.308 0 Td [(or )-246(the )-246(session )-246(to )-246(which )-246(this)]TJ -22.506 -1.2 Td [(pr)18(ocess gr)18(oup belongs.)]TJ -1.489 -1.72 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (pg_members)Tj /T1_0 1 Tf 6.309 0 Td [(is )-59(a )-59(pointer )-59(to )-59(the )-59(list )-59(of)]TJ /TT0 1 Tf 11.068 0 Td (proc)Tj /T1_0 1 Tf 2.709 0 Td [(str)8(uctur)18(es )-59(that )-59(ar)]TJ 0.3089 Tc 7.622 0 Td (em)Tj 0 Tc 1.671 0 Td [(embers )-59(of )-59(this)]TJ -29.378 -1.2 Td [(pr)18(ocess )-244(gr)18(oup. )-494(The)]TJ /TT0 1 Tf 9.635 0 Td (p_pglist)Tj /T1_0 1 Tf 5.294 0 Td [(str)8(uctur)]TJ 0.4944 Tc 3.49 0 Td (ei)Tj 0.4945 Tc 1.264 0 Td (nt)Tj 0 Tc 1.403 0 Td (hat)Tj /TT0 1 Tf 1.903 0 Td (proc)Tj /T1_0 1 Tf 2.894 0 Td [(str)8(uctur)18(e)-494(is)-494(a)-494(d)-1(oubly)]TJ -25.884 -1.2 Td [(linked )-45(list )-45(entry )-45(that )-45(points )-45(to )-45(both )-45(the )-45(next )-45(pr)18(ocess )-45(and )-45(the )-45(pr)18(evious )-45(pr)18(ocess )-45(in)]TJ T* [(the )-19(gr)18(oup, )-19(and )-19(so )-19(on, )-19(until )-19(a )-19(null )-19(pointer )-19(is )-19(encounter)18(ed )-19(in )-19(the)]TJ /TT0 1 Tf 27.925 0 Td (proc)Tj /T1_0 1 Tf 2.669 0 Td [(str)8(uctur)]TJ 0.2693 Tc 3.49 0 Td (eo)Tj 0 Tc 1.294 0 Td (f)Tj -35.378 -1.2 Td [(the last pr)18(ocess in the gr)18(oup.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47175 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (718)Tj /T1_1 1 Tf 3.5 0 Td [(Pseudo )-250(T)92(erminals )]TJ 38.741 0 Td [(Chapter)-500(19)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2166 5306 576 252 re S Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 229.5142 546.4072 Tm (network)Tj -0.944 -1.25 Td (device driver)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2958 5306 576 252 re S Q BT /T1_1 1 Tf 7.999 0 0 7.999 303.9995 541.375 Tm (PTY master)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 3750 5306 576 252 re S Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 386.1585 541.3425 Tm (PTY slave)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2166 5774 576 252 re S Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 231.4524 588.0988 Tm (TCP/IP)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 3750 5774 576 252 re S Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 388.6954 593.062 Tm (terminal)Tj -1.225 -1.25 Td (line discipline)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5018.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5088.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5157.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5227.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5296.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5366.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5436.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5506.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5576.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5646.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5715.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5785.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5854.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5924.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5994.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 6064.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 6134.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2093.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2164.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2235.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2305.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2377.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2447.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2519.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2589.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2660.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2731.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2802.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2873.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2944.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3015.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3086.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3156.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3228.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3299.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3370.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3441.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3511.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3583.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3653.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3725.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3795.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3866.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3937.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4008.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4079.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4150.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4292.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4362.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4434.25 6170.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 6100.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 6030.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5960.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5890.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5821.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5751.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5682.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5612.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5542.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5472.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5402.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5332.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5263.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5193.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5124.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5054.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4398.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4328.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4257.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4186.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4115.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4044.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3973.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3902.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3831.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3761.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3689.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3619.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3547.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3477.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3406.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3335.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3264.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3192.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3122.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3051.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2980.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2909.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2838.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2767.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2696.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2625.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2555.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2483.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2413.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2341.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2271.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2200.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2129.25 5018.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2058.25 5018.25 cm 0 0 m -36 0 l S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 448.8384 557.4393 Tm (kernel)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2370.48 6386 959.758 252 re S Q BT /TT0 1 Tf 7.9966 0 0 7.9966 268.0874 654.1652 Tm (rlogind)Tj /T1_1 1 Tf 0.731 -1.25 Td (server)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 3822 6386 432 252 re S Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 394.5466 654.1259 Tm (login)Tj 0.1 -1.25 Td (shell)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 382.2 651.2 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3822 6512 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3330.25 6512.25 cm 0 0 m 420 0 l S Q Q BT /TT0 1 Tf 7.9957 0 0 7.9957 347.7881 654.0867 Tm (fork)Tj -1.45 -1.25 Td (exec)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.9 0 Td (exec)Tj ET q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 235.824 555.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 2358.24 5558 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2358.25 5774.25 cm 0 0 m 0 -144 l S Q Q q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 254.976 577.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 2549.76 5774 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2550.25 5702.25 cm 0 0 m 0 -144 l S Q Q q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 394.224 555.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 3942.24 5558 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3942.25 5774.25 cm 0 0 m 0 -144 l S Q Q q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 413.376 577.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 4133.7598 5774 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4134.25 5702.25 cm 0 0 m 0 -144 l S Q Q q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 396.6 602.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 3966 6026 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3966.25 6386.25 cm 0 0 m 0 -288 l S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 411 638.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 4110 6386 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 6314.25 cm 0 0 m 0 -288 l S Q Q BT /T1_2 1 Tf 7.9928 0 0 7.9928 372.2248 630.832 Tm (stdout)Tj 0.166 -1.25 Td (stderr)Tj 5.089 1.25 Td (stdin)Tj ET q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 394.224 516.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 3942.24 5162 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3942.25 5306.25 cm 0 0 m 0 -72 l S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 334.176 530.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 3341.76 5306 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3342.25 5234.25 cm 0 0 m 0 -72 l S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 334.176 516.2 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 3341.76 5162 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3942.25 5162.25 cm 0 0 m -528 0 l S Q Q q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 413.376 530.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 4133.7598 5306 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4134.25 5234.25 cm 0 0 m 0 -144 l S Q Q q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 315.024 509 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 3150.24 5090 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3150.25 5306.25 cm 0 0 m 0 -144 l S Q Q q 0.9988007 0 0 0.9988007 0 0 cm q 1 0 0 1 413.376 509 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998801 0 0 0.0998801 0 0 cm 1 j 1 J q 1 0 0 1 4133.7598 5090 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3150.25 5090.25 cm 0 0 m 912 0 l S Q Q q 0.9987408 0 0 0.9987408 0 0 cm q 1 0 0 1 235.824 602.6 cm 0 0 m 2.016 7.128 l 5.184 5.328 l f Q Q q 0.0998741 0 0 0.0998741 0 0 cm 1 j 1 J q 1 0 0 1 2358.24 6026 cm 0 0 m 20.16 71.28 l 51.84 53.28 l h S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2562.25 6386.25 cm 0 0 m -169 -298 l S Q Q q 0.9986808 0 0 0.9986808 0 0 cm q 1 0 0 1 275.424 638.6 cm 0 0 m -2.016 -7.128 l -5.184 -5.328 l f Q Q q 0.0998681 0 0 0.0998681 0 0 cm 1 j 1 J q 1 0 0 1 2754.24 6386 cm 0 0 m -20.16 -71.28 l -51.84 -53.28 l h S Q Q q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2550.25 6026.25 cm 0 0 m 168 297 l S Q Q q 0.9986209 0 0 0.9986209 0 0 cm q 1 0 0 1 315.024 555.8 cm 0 0 m -3.456 6.552 l 0.072 7.416 l f Q Q q 0.0998621 0 0 0.0998621 0 0 cm 1 j 1 J q 1 0 0 1 3150.24 5558 cm 0 0 m -34.56 65.52 l 0.72 74.16 l h S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2946.25 6386.25 cm 0 0 m 186 -758 l S Q Q q 0.998561 0 0 0.998561 0 0 cm q 1 0 0 1 313.8 638.6 cm 0 0 m 3.456 -6.552 l -0.072 -7.416 l f Q Q q 0.0998561 0 0 0.0998561 0 0 cm 1 j 1 J q 1 0 0 1 3138 6386 cm 0 0 m 34.56 -65.52 l -0.72 -74.16 l h S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3342.25 5558.25 cm 0 0 m -187 758 l S Q Q q 0.9985011 0 0 0.9985011 0 0 cm q 1 0 0 1 245.4 530.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998501 0 0 0.0998501 0 0 cm 1 j 1 J q 1 0 0 1 2454 5306 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9984412 0 0 0.9984412 0 0 cm q 1 0 0 1 245.4 480.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998441 0 0 0.0998441 0 0 cm 1 j 1 J q 1 0 0 1 2454 4802 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2454.25 5234.25 cm 0 0 m 0 -360 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2166.25 4802.25 cm 0 0 m 0 0 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2202.25 4802.25 cm 0 0 m 0 0 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2238.25 4802.25 cm 0 0 m 0 0 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2274.25 4802.25 cm 0 0 m 0 0 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2310.25 4802.25 cm 0 0 m 0 0 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2346.25 4802.25 cm 0 0 m 0 0 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2382.25 4802.25 cm 0 0 m 0 0 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2418.25 4802.25 cm 0 0 m 0 0 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2454.25 4802.25 cm 0 0 m 0 0 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2490.25 4802.25 cm 0 0 m 0 0 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2526.25 4802.25 cm 0 0 m 0 0 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2562.25 4802.25 cm 0 0 m 0 0 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2598.25 4802.25 cm 0 0 m 0 0 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2634.25 4802.25 cm 0 0 m 0 0 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2670.25 4802.25 cm 0 0 m 0 0 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2706.25 4802.25 cm 0 0 m 0 0 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2742.25 4802.25 cm 0 0 m 0 0 l S Q Q BT /T1_1 1 Tf 7.9871 0 0 7.9871 230.1548 472.6736 Tm (network)Tj /T1_0 1 Tf -1.335 -3.055 Td (Figure 19.3)Tj /T1_1 1 Tf 5.695 0 Td [(Arrangement of pr)18(ocesses for)]TJ /TT0 1 Tf 13.306 -0 Td (rlogind)Tj /T1_1 1 Tf 4.45 0 Td (server)Tj 0.3694 Tc 9.9838 0 0 9.9838 147.3612 415.9258 Tm (Ak)Tj 0 Tc 1.703 0 Td [(ey )-119(point )-119(in )-119(Figur)]TJ 0.3694 Tc 7.745 0 Td (e1)Tj 0 Tc 1.348 0 Td [(9.3 )-119(is )-119(that )-119(the )-119(pr)18(ocess )-119(driving )-119(the )-119(PTY )-119(master )-119(is )-119(normally)]TJ -0.018 Tc -12.597 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ading )-127(and )-127(writing )-127(another )-127(I/O )-127(str)18(eam )-127(at )-127(the )-127(same )-127(time.)-627(In )-127(this )-127(example, )-127(the )-127(other)]TJ -0.856 -1.2 Td [(I/O )-69(str)18(eam )-69(is )-69(the )-69(TCP/IP )-69(box.)-569(This )-69(implies )-69(that )-69(the )-69(pr)13(ocess )-70(must )-70(be )-70(using )-70(some )-70(form)]TJ 0 -1.2 TD [(of )-124(I/O )-124(multiplexing )-124(\(Section )-124(14.4\), )-124(such )-124(as)]TJ /TT0 1 Tf 19.775 0 Td (select)Tj /T1_1 1 Tf 3.974 0 Td (or)Tj /TT0 1 Tf 1.315 0 Td (poll)Tj /T1_1 1 Tf [(,)-374(or)-374(m)-1(ust )-124(be )-124(divided )-124(into)]TJ -25.065 -1.2 Td [(two pr)18(ocesses or thr)18(eads.)]TJ /TT1 1 Tf -3.6 -3.36 Td [(Windo)15(wing System T)60(erminal Em)20(ulation)]TJ /T1_1 1 Tf -0.055 Tc 3.6 -2.4 Td (Wi)Tj 0 Tc 1.236 0 Td [(ndowing )-47(systems )-47(typically )-47(pr)17(ovide )-47(a )-47(terminal )-47(emulator )-47(so )-47(that )-47(we )-47(can )-47(use )-47(a )-47(shell )-47(to)]TJ -0.008 Tc -1.236 -1.2 Td (ru)Tj 0.3418 Tc 0.99 0 Td (no)Tj 0 Tc 1.47 0 Td [(ur )-92(pr)18(ograms )-92(fr)18(om )-92(a )-92(familiar )-92(command)]TJ 17.561 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-92(envir)18(onment. )-342(The)-342(terminal )-92(emulator)]TJ -20.354 -1.2 Td [(acts )-70(as )-70(an )-70(intermediary )-70(between )-70(a )-70(shell )-70(and )-70(the )-70(window )-70(manager)]TJ 0.57 Tc 29.586 0 Td (.E)Tj 0 Tc 1.431 0 Td [(ach )-70(shell )-70(executes)]TJ -31.017 -1.2 Td [(in )-15(its )-15(own )-15(window)]TJ 0.5153 Tc 8.278 0 Td (.T)Tj 0 Tc 1.378 0 Td [(his )-15(arrangement )-15(\(with )-15(two )-15(shells )-15(r)8(unning )-15(in )-15(dif)16(fer)18(ent )-15(windows\) )-15(is)]TJ -9.656 -1.2 Td (shown in Figur)Tj 0.25 Tc 6.724 0 Td (e1)Tj 0 Tc 1.229 0 Td (9.4.)Tj -6.153 -1.2 Td [(The )-3(shell )-3(r)8(uns )-3(with )-3(its )-3(standar)]TJ 0.2529 Tc 13.396 0 Td (di)Tj 0 Tc 1.155 0 Td [(nput, )-3(standar)]TJ 0.2529 Tc 5.935 0 Td (do)Tj 0 Tc 1.41 0 Td [(utput, )-3(and )-3(standar)]TJ 0.253 Tc 8.228 0 Td (de)Tj 0 Tc 1.343 0 Td [(rr)18(or )-3(attached)]TJ -33.266 -1.2 Td [(to )-92(the )-92(slave )-92(side )-92(of )-92(the )-92(PTY)]TJ 0.5917 Tc 12.413 0 Td (.T)Tj 0 Tc 1.455 0 Td [(he )-92(terminal )-92(emulator )-92(pr)18(ogram )-92(opens )-92(the )-92(master )-92(side )-92(of)]TJ -13.868 -1.2 Td [(the )-254(PTY)]TJ 0.7537 Tc 3.664 0 Td (.B)Tj 0 Tc 1.615 0 Td [(esides )-254(acting )-254(as )-254(an )-254(interface )-254(to )-254(the )-254(windowing )-254(subsystem, )-254(the )-254(terminal)]TJ -5.278 -1.2 Td [(emulator )-211(is )-211(r)18(esponsible )-211(for )-211(emulating )-211(a )-211(particular )-211(type )-211(of )-211(terminal, )-211(which )-211(means )-211(it)]TJ T* [(needs )-48(to )-48(r)18(espond )-48(to )-48(the )-48(escape )-48(codes )-48(associated )-48(with )-48(the )-48(type )-48(of )-48(device )-48(it )-48(is )-48(emulating.)]TJ T* (These codes ar)Tj 0.25 Tc 6.458 0 Td (el)Tj 0 Tc 1.02 0 Td (isted in the)Tj /TT0 1 Tf 5.141 0 Td (termcap)Tj /T1_1 1 Tf 4.45 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (terminfo)Tj /T1_1 1 Tf 5.05 0 Td (databases.)Tj -22.262 -1.2 Td [(When )-20(a )-20(user )-20(r)18(esizes )-20(a )-20(terminal )-20(emulator )-20(window)]TJ 0.2696 Tc 21.781 0 Td (,t)Tj 0 Tc 0.846 0 Td [(he )-20(window )-20(manager )-20(informs )-20(the)]TJ -24.427 -1.2 Td [(terminal )-114(emulator)]TJ 0.6138 Tc 8.06 0 Td (.T)Tj 0 Tc 1.477 0 Td [(he )-114(terminal )-114(emulator )-114(issues )-114(a)]TJ /TT0 1 Tf 13.795 0 Td [(TIOCSWINSZ )236(ioctl)]TJ /T1_1 1 Tf 9.728 0 Td [(command )-114(on)]TJ -33.059 -1.2 Td [(the )-133(master )-133(side )-133(of )-133(the )-133(PTY )-133(to )-133(set )-133(the )-133(window )-133(size )-133(for )-133(the )-133(slave )-133(side.)-633(If )-133(the )-133(new )-133(size)]TJ T* [(dif)18(fers )-179(fr)18(om )-179(the )-179(curr)19(ent )-179(size, )-179(the )-179(kernel )-179(sends )-179(a)]TJ /TT0 1 Tf 22.572 0 Td (SIGWINCH)Tj /T1_1 1 Tf 5.229 0 Td [(signal )-179(to )-179(the )-179(for)19(egr)18(ound)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47176 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (734)Tj /T1_1 1 Tf 3.5 0 Td [(Pseudo )-250(T)92(erminals )]TJ 38.741 0 Td [(Chapter)-500(19)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 666.4 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (who)Tj /TT0 1 Tf -1.2 -1.189 Td [(sar )-600(console )-600(May)-600(19 16:47)]TJ 0 -1.189 TD [(sar )-600(ttys000 )-600(May)-600(19 16:47)]TJ T* [(sar )-600(ttys001 )-600(May)-600(19 16:48)]TJ T* [(sar )-600(ttys002 )-600(May)-600(19 16:48)]TJ 0 -1.189 TD [(sar )-600(ttys003 )-600(May)-600(19 16:49)]TJ 0 -1.189 TD [(sar )-600(ttys004 )-600(May)-600(19 16:49)]TJ /T1_2 1 Tf 20 0 Td [(ttys004 is the highest PTY curr)18(ently in use)]TJ /TT0 1 Tf -20 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (pty ttyname)Tj /T1_2 1 Tf 18.8 0 Td [(run pr)18(ogram in Figur)]TJ 0.25 Tc 8.772 0 Td (e1)Tj 0 Tc 1.139 0 Td [(8.16 fr)18(om PTY)]TJ /TT0 1 Tf -29.911 -1.189 Td (fd 0: /dev/ttys005)Tj /T1_2 1 Tf 20 0 Td (ttys005 is the next available PTY)Tj /TT0 1 Tf -20 -1.189 Td (fd 1: /dev/ttys005)Tj T* (fd 2: /dev/ttys005)Tj /TT1 1 Tf 9.9994 0 0 9.9994 93.5946 531.5483 Tm (utmp)Tj /TT2 1 Tf 2.678 0 Td (File)Tj /T1_1 1 Tf 0.922 -2.16 Td [(In )-56(Section )-56(6.8, )-56(we )-56(described )-56(the)]TJ /TT0 1 Tf 14.433 0 Td (utmp)Tj /T1_1 1 Tf 2.706 0 Td [(\336le )-56(that )-56(r)19(ecor)18(ds )-56(all )-56(users )-56(curr)18(ently )-56(logged )-56(in )-56(to )-56(a)]TJ -17.139 -1.2 Td [(UNIX )-31(system.)-531(The )-31(question )-31(is )-31(whether )-31(a )-31(user )-31(r)8(unning )-31(a )-31(pr)18(ogram )-31(on )-31(a )-31(pseudo )-31(terminal)]TJ 0 -1.2 TD [(is )-180(consider)18(ed )-180(logged )-180(in.)-680(In )-180(the )-180(case )-180(of )-180(r)18(emote )-180(logins, )-180(with)]TJ /TT0 1 Tf 27.797 0 Td (telnetd)Tj /T1_1 1 Tf 4.63 0 Td (and)Tj /TT0 1 Tf 2.123 0 Td (rlogind)Tj /T1_1 1 Tf (,)Tj -34.55 -1.2 Td [(obviously )-6(an )-6(entry )-6(should )-6(be )-6(made )-6(in )-6(the)]TJ /TT0 1 Tf 18.666 0 Td (utmp)Tj /T1_1 1 Tf 2.656 0 Td [(\336le )-6(for )-6(the )-6(user )-6(logged )-6(in )-6(on )-6(the )-6(pseudo)]TJ -21.322 -1.2 Td [(terminal. )-269(Ther)18(e)-269(is)-269(l)1(ittle )-19(agr)18(eement, )-19(however)]TJ 0.2687 Tc 19.557 0 Td (,w)Tj 0 Tc 1.353 0 Td [(hether )-19(users )-19(r)8(unning )-19(a )-19(shell )-19(on )-19(a )-19(pseudo)]TJ -20.909 -1.2 Td [(terminal )-221(fr)18(om )-221(a )-221(window )-221(system )-221(or )-221(fr)18(om )-221(a )-221(pr)18(ogram, )-221(such )-221(as)]TJ /TT0 1 Tf 29.024 0 Td (script)Tj /T1_1 1 Tf 0.4713 Tc (,s)Tj 0 Tc 4.745 0 Td [(hould )-221(have)]TJ -33.77 -1.2 Td [(entries )-167(made )-167(in )-167(the)]TJ /TT0 1 Tf 9.377 0 Td (utmp)Tj /T1_1 1 Tf 2.817 0 Td [(\336le. )-417(Some)-417(systems )-167(r)18(ecor)]TJ 0.4168 Tc 11.298 0 Td (dt)Tj 0 Tc 1.354 0 Td [(hese; )-167(others )-167(don\325t.)-667(If )-167(a )-167(system)]TJ -24.845 -1.2 Td [(doesn\325t )-70(r)18(ecor)]TJ 0.3201 Tc 5.789 0 Td (dt)Tj 0 Tc 1.257 0 Td [(hese )-70(entries )-70(in )-70(the)]TJ /TT0 1 Tf 8.48 0 Td (utmp)Tj /T1_1 1 Tf 2.72 0 Td [(\336le, )-70(the)]TJ /TT0 1 Tf 3.652 0 Td (who)Tj /T1_1 1 Tf 1.8 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.653 -0.04 Td [(pr)18(ogram )-70(normally )-70(won\325t )-70(show)]TJ -25.185 -1.2 Td [(the corr)18(esponding pseudo terminals as being used.)]TJ 1.8 -1.2 Td [(Unless )-54(the)]TJ /TT0 1 Tf 4.973 0 Td (utmp)Tj /T1_1 1 Tf 2.704 0 Td [(\336le )-54(has )-54(other)18(-write )-54(permission )-54(enabled )-54(\(which )-54(is )-54(consider)18(ed )-54(to )-54(be)]TJ 0.324 Tc -9.477 -1.2 Td (as)Tj 0 Tc 1.248 0 Td [(ecurity )-74(hole\), )-74(random )-74(pr)18(ograms )-74(that )-74(use )-74(pseudo )-74(terminals )-74(won\325t )-74(be )-74(able )-74(to )-74(write )-74(to)]TJ -1.248 -1.2 Td (this \336le.)Tj /TT2 1 Tf -3.6 -2.88 Td [(Job Contr)20(ol Interaction)]TJ /T1_1 1 Tf 3.6 -2.16 Td [(If we r)8(un a job-contr)18(ol shell under)]TJ /TT0 1 Tf 15.32 0 Td (pty)Tj /T1_1 1 Tf [(,)-250(it)-250(works normally)]TJ 0.5 Tc 10.105 0 Td (.F)Tj 0 Tc 1.306 0 Td (or example,)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5925 310.8615 Tm (pty ksh)Tj /T1_1 1 Tf -0.008 Tc 9.9994 0 0 9.9994 129.5936 292.8626 Tm (ru)Tj 0 Tc 0.99 0 Td [(ns )-49(the )-49(Korn )-49(shell )-49(under)]TJ /TT0 1 Tf 10.872 0 Td (pty)Tj /T1_1 1 Tf 0.5486 Tc (.W)Tj 0.2986 Tc 3.507 0 Td (ec)Tj 0 Tc 1.222 0 Td [(an )-49(r)8(un )-49(pr)19(ograms )-48(under )-48(this )-48(new )-48(shell )-48(and )-48(use )-48(job)]TJ -16.59 -1.2 Td [(contr)18(ol )-94(just )-94(as )-94(we )-94(do )-94(with )-94(our )-94(login )-94(shell.)-592(But )-94(if )-94(we )-94(r)8(un )-94(an )-94(interactive )-94(pr)18(ogram )-94(other)]TJ T* [(than a job-contr)18(ol shell under)]TJ /TT0 1 Tf 13.255 0 Td (pty)Tj /T1_1 1 Tf [(,)-250(as)-250(in)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5927 252.1651 Tm (pty cat)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5938 234.1661 Tm [(everything )-153(is )-153(\336ne )-153(until )-153(we )-153(type )-153(the )-153(job-contr)18(ol )-153(suspend )-153(character)]TJ 0.653 Tc 30.067 0 Td (.A)Tj 0.403 Tc 1.681 0 Td (tt)Tj 0 Tc 1.055 0 Td [(hat )-153(point, )-153(the)]TJ -32.803 -1.2 Td [(job-contr)18(ol )-48(character )-48(is )-48(echoed )-48(as)]TJ /TT0 1 Tf 15.113 0 Td (\366Z)Tj /T1_1 1 Tf 1.498 0 Td [(and )-48(is )-48(ignor)18(ed. )-298(Under)-298(earlier )-48(BSD)]TJ 15.425 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-48(systems,)]TJ -32.369 -1.2 Td (the)Tj /TT0 1 Tf 1.703 0 Td (cat)Tj /T1_1 1 Tf 2.116 0 Td [(pr)18(ocess )-66(terminates, )-66(the)]TJ /TT0 1 Tf 10.564 0 Td (pty)Tj /T1_1 1 Tf 2.116 0 Td [(pr)18(ocess )-66(terminates, )-66(and )-66(we\325r)]TJ 0.3157 Tc 12.838 0 Td (eb)Tj 0 Tc 1.348 0 Td [(ack )-66(to )-66(our )-66(original)]TJ -30.685 -1.2 Td [(shell. )-519(T)]TJ 0.5192 Tc 3.607 0 Td (ou)Tj 0 Tc 1.668 0 Td [(nderstand )-269(what\325s )-269(going )-269(on )-269(her)17(e, )-269(we )-269(need )-269(to )-269(examine )-269(all )-269(the )-269(pr)16(ocesses)]TJ -5.275 -1.2 Td [(involved, )-9(their )-9(pr)18(ocess )-9(gr)18(oups, )-9(and )-9(sessions.)-507(Figur)]TJ 0.2586 Tc 22.627 0 Td (e1)Tj 0 Tc 1.238 0 Td [(9.13 )-9(shows )-9(the )-9(arrangement )-9(when)]TJ /TT0 1 Tf -23.865 -1.2 Td [(pty )267(cat)]TJ /T1_1 1 Tf 4.183 0 Td [(is r)8(unning.)]TJ -2.383 -1.2 Td [(When )-290(we )-290(type )-290(the )-290(suspend )-290(character )-290(\(Contr)20(ol)]TJ 22.042 0.09 Td (-)Tj 0.333 -0.09 Td [(Z\), )-290(it )-290(is )-290(r)18(ecognized )-290(by )-290(the )-290(line)]TJ -24.175 -1.2 Td [(discipline )-143(module )-143(beneath )-143(the)]TJ /TT0 1 Tf 14.18 0 Td (cat)Tj /T1_1 1 Tf 2.193 0 Td [(pr)18(ocess, )-143(since)]TJ /TT0 1 Tf 6.552 0 Td (pty)Tj /T1_1 1 Tf 2.193 0 Td [(puts )-143(the )-143(terminal )-143(\(beneath )-143(the)]TJ /TT0 1 Tf -25.118 -1.2 Td (pty)Tj /T1_1 1 Tf 2.265 0 Td [(par)18(ent\) )-215(into )-215(raw )-215(mode.)-715(But )-215(the )-215(kernel )-215(won\325t )-215(stop )-215(the)]TJ /TT0 1 Tf 25.897 0 Td (cat)Tj /T1_1 1 Tf 2.265 0 Td [(pr)18(ocess, )-215(because )-215(it)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47177 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (682)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (ST)Tj -0.074 Tc 1.064 0 Td (AT)Tj 0 Tc 1.317 0 Td [(US )-1514(The)-333(BSD )-83(status-r)18(equest )-83(character)]TJ 0.5834 Tc 17.826 0 Td (.T)Tj 0 Tc 1.446 0 Td [(his )-83(character )-83(is )-83(r)18(ecognized )-83(on )-83(input )-83(in)]TJ -16.206 -1.2 Td [(extended, )-410(canonical )-410(mode )-410(\(both)]TJ /TT0 1 Tf 16.014 0 Td (IEXTEN)Tj /T1_1 1 Tf 4.26 0 Td (and)Tj /TT0 1 Tf 2.354 0 Td (ICANON)Tj /T1_1 1 Tf 4.261 0 Td [(\337ags )-410(set\) )-410(and)]TJ -26.888 -1.2 Td [(generates )-403(the)]TJ /TT0 1 Tf 6.913 0 Td (SIGINFO)Tj /T1_1 1 Tf 4.853 0 Td [(signal, )-403(which )-403(is )-403(sent )-403(to )-403(all )-403(pr)18(ocesses )-403(in )-403(the)]TJ -11.765 -1.2 Td [(for)18(egr)18(ound )-475(pr)18(ocess )-475(gr)18(oup )-475(\(r)18(efer )-475(to )-475(Figur)]TJ 0.7252 Tc 20.265 0 Td (e9)Tj 0 Tc 1.704 0 Td [(.7\). )-725(Additionally)111(,)-725(if)-725(t)-1(he)]TJ /TT0 1 Tf -21.969 -1.2 Td (NOKERNINFO)Tj /T1_1 1 Tf 6.354 0 Td [(\337ag )-104(is )-104(not )-104(set, )-104(status )-104(information )-104(on )-104(the )-104(for)16(egr)18(ound )-104(pr)18(ocess)]TJ -6.354 -1.2 Td [(gr)18(oup )-301(is )-301(displayed )-301(on )-301(the )-301(terminal.)-801(This )-301(character )-301(is )-301(discar)18(ded )-301(when)]TJ 0 -1.2 TD [(pr)18(ocessed \(i.e., it is not passed to the pr)18(ocess\).)]TJ -5.448 -1.84 Td [(ST)18(OP )-2688(The)-278(stop )-28(character)]TJ 0.528 Tc 13.566 0 Td (.T)Tj 0 Tc 1.391 0 Td [(his )-28(character )-28(is )-28(r)18(ecognized )-28(on )-28(input )-28(if )-28(the)]TJ /TT0 1 Tf 18.708 0 Td (IXON)Tj /T1_1 1 Tf 2.678 0 Td [(\337ag )-28(is)]TJ -30.895 -1.2 Td [(set )-183(and )-183(is )-183(automatically )-183(generated )-183(as )-183(output )-183(if )-183(the)]TJ /TT0 1 Tf 23.935 0 Td (IXOFF)Tj /T1_1 1 Tf 3.433 0 Td [(\337ag )-183(is )-183(set.)-682(A)]TJ -0.018 Tc -27.368 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ceived )-113(ST)18(OP )-113(character )-113(with)]TJ /TT0 1 Tf 12.927 0 Td (IXON)Tj /T1_1 1 Tf 2.763 0 Td [(set )-113(stops )-113(the )-113(output.)-611(In )-112(this )-112(case, )-112(the)]TJ -16.546 -1.2 Td [(ST)18(OP )-176(character )-176(is )-176(discar)18(ded )-176(when )-176(pr)17(ocessed )-176(\(i.e., )-176(it )-176(is )-176(not )-176(passed )-176(to )-176(the)]TJ T* [(pr)18(ocess\). )-568(The)-568(stopped )-318(output )-318(is )-318(r)18(estarted )-318(when )-318(a )-318(ST)73(AR)]TJ 0.5682 Tc 27.023 0 Td (Tc)Tj 0 Tc 1.625 0 Td [(haracter )-318(is)]TJ -28.648 -1.2 Td [(enter)18(ed.)]TJ 0 -1.8 TD (When)Tj /TT0 1 Tf 3.099 0 Td (IXOFF)Tj /T1_1 1 Tf 3.456 0 Td [(is )-206(set, )-206(the )-206(terminal )-206(driver )-206(automatically )-206(generates )-206(a )-206(ST)20(OP)]TJ -6.555 -1.2 Td [(character to pr)18(event the input buf)18(fer fr)18(om over\337owing.)]TJ -5.448 -1.84 Td [(SUSP )-2766(The)-317(suspend )-67(job-contr)18(ol )-67(character)]TJ 0.5675 Tc 20.567 0 Td (.T)Tj 0 Tc 1.431 0 Td [(his )-67(character )-67(is )-67(r)18(ecognized )-67(on )-67(input )-67(if)]TJ -16.55 -1.2 Td [(job )-68(contr)18(ol )-68(is )-68(supported )-68(and )-68(if )-68(the)]TJ /TT0 1 Tf 15.674 0 Td (ISIG)Tj /T1_1 1 Tf 2.718 0 Td [(\337ag )-68(is )-68(set.)-568(The )-68(suspend )-68(character)]TJ -18.392 -1.2 Td [(generates )-403(the)]TJ /TT0 1 Tf 6.913 0 Td (SIGTSTP)Tj /T1_1 1 Tf 4.853 0 Td [(signal, )-403(which )-403(is )-403(sent )-403(to )-403(all )-403(pr)18(ocesses )-403(in )-403(the)]TJ -11.765 -1.2 Td [(for)18(egr)18(ound )-81(pr)18(ocess )-81(gr)18(oup )-81(\(r)18(efer )-81(to )-81(Figur)]TJ 0.3313 Tc 18.296 0 Td (e9)Tj 0 Tc 1.31 0 Td [(.7\). )-331(This)-332(character )-81(is )-81(discar)17(ded)]TJ -19.606 -1.2 Td [(when pr)18(ocessed \(i.e., it is not passed to the pr)18(ocess\).)]TJ -5.448 -1.84 Td [(WERASE )-1005(The)-717(wor)18(d-erase )-467(character)]TJ 0.9667 Tc 17.524 0 Td (.T)Tj 0 Tc 1.83 0 Td [(his )-467(character )-467(is )-467(r)19(ecognized )-467(on )-467(input )-467(in)]TJ -13.906 -1.2 Td [(extended, )-57(canonical )-57(mode )-57(\(both)]TJ /TT0 1 Tf 14.6 0 Td (IEXTEN)Tj /T1_1 1 Tf 3.907 0 Td (and)Tj /TT0 1 Tf 2 0 Td (ICANON)Tj /T1_1 1 Tf 3.907 0 Td [(\337ags )-57(set\) )-57(and )-57(causes)]TJ -24.414 -1.2 Td [(the )-163(pr)18(evious )-163(wor)18(d)-413(to)-413(b)]TJ 0.4128 Tc (ee)Tj 0 Tc 12.088 0 Td [(rased. )-413(First,)-413(it )-163(skips )-163(backwar)]TJ 0.4128 Tc 13.479 0 Td (do)Tj 0 Tc 1.57 0 Td [(ver )-163(any )-163(white)]TJ -27.137 -1.2 Td [(space )-343(\(spaces )-343(or )-343(tabs\), )-343(then )-343(skips )-343(backwar)]TJ 0.5935 Tc 20.57 0 Td (do)Tj 0 Tc 1.751 0 Td [(ver )-343(the )-343(pr)18(evious )-343(token,)]TJ -22.32 -1.2 Td [(leaving )-5(the )-5(cursor )-5(positioned )-5(wher)]TJ 0.2548 Tc 15.447 0 Td (et)Tj 0 Tc 1.06 0 Td [(he )-5(\336rst )-5(character )-5(of )-5(the )-5(pr)18(evious )-5(token)]TJ -16.506 -1.2 Td [(was )-337(located.)-837(Normally)]TJ 0.587 Tc 10.811 0 Td (,t)Tj 0 Tc 1.163 0 Td [(he )-337(pr)18(evious )-337(token )-337(ends )-337(when )-337(a )-337(white )-337(space)]TJ -11.974 -1.2 Td [(character )-35(is )-35(encounter)18(ed. )-285(W)]TJ 0.2849 Tc 12.551 0 Td (ec)Tj 0 Tc 1.208 0 Td [(an )-35(change )-35(this )-35(behavior)]TJ 0.2849 Tc 10.54 0 Td (,h)Tj 0 Tc 1.117 0 Td [(owever)74(,)-285(by)-285(setting)]TJ -25.415 -1.2 Td (the)Tj /TT0 1 Tf 1.719 0 Td (ALTWERASE)Tj /T1_1 1 Tf 5.732 0 Td [(\337ag. )-332(This)-332(\337ag )-82(causes )-82(the )-82(pr)18(evious )-82(token )-82(to )-82(end )-82(when )-82(the)]TJ -7.451 -1.2 Td [(\336rst )-98(nonalphanumeric )-98(character )-98(is )-98(encounter)18(ed. )-348(The)-348(wor)18(d-erase )-98(character)]TJ -0 -1.2 Td [(is discar)18(ded when pr)18(ocessed \(i.e., it is not passed to the pr)18(ocess\).)]TJ -3.648 -1.92 Td [(Another )-225(\324)37(\324character )176(\325)]TJ 0.4749 Tc 9.062 0 Td (\325t)Tj 0 Tc 1.079 0 Td [(hat )-225(we )-225(need )-225(to )-225(de\336ne )-225(for )-225(terminal )-225(devices )-225(is )-225(the )-225(BREAK)]TJ -11.941 -1.2 Td (character)Tj 0.6504 Tc 3.991 0 Td (.B)Tj 0 Tc 1.511 0 Td [(REAK )-150(is )-150(not )-150(r)18(eally )-150(a )-150(character)]TJ 0.4004 Tc 13.939 0 Td (,b)Tj 0 Tc 1.203 0 Td [(ut )-150(rather )-150(a )-150(condition )-150(that )-150(occurs )-150(during)]TJ -20.645 -1.2 Td [(asynchr)18(onous )-148(serial )-148(data )-148(transmission.)]TJ 0.3983 Tc 18.244 0 Td (AB)Tj 0 Tc 1.787 0 Td [(REAK )-148(condition )-148(is )-148(signaled )-148(to )-148(the )-148(device)]TJ -20.031 -1.2 Td (driver in various ways, depending on the serial interface.)Tj 7.9995 0 0 7.9995 183.59 220.5868 Tm [(Most )-191(old )-191(serial )-191(terminals )-191(have )-191(a )-191(key )-191(labeled )-191(BREAK )-191(that )-191(generates )-191(the )-191(BREAK )-191(condition,)]TJ 0 -1.25 TD [(which )-130(is )-130(why )-130(most )-130(people )-130(think )-130(of )-130(BREAK )-130(as )-130(a )-130(character)]TJ 0.6306 Tc 26.426 0 Td (.S)Tj 0 Tc 1.406 0 Td [(ome )-131(newer )-131(terminal )-131(keyboar)19(ds)]TJ -27.832 -1.25 Td [(don\325t )-90(have )-90(a )-90(BREAK )-90(key)113(.)-340(On)-340(P)1(Cs, )-90(the )-90(br)18(eak )-90(key )-90(might )-90(be )-90(mapped )-90(for )-90(another )-90(purpose.)-586(For)]TJ 0 -1.25 Td [(example, the W)55(indows command interpr)18(eter can be interr)8(upted by pr)18(essing Contr)18(ol)]TJ 37.156 0.09 Td (-)Tj 0.333 -0.09 Td (BREAK.)Tj 9.9994 0 0 9.9994 147.5924 168.5899 Tm [(For )-112(asynchr)18(onous )-112(serial )-112(data )-112(transmission, )-112(a )-112(BREAK )-112(is )-112(a )-112(sequence )-112(of )-112(zer)20(o-valued)]TJ -1.8 -1.2 Td [(bits )-246(that )-246(continues )-246(for )-246(longer )-246(than )-246(the )-246(time )-246(r)19(equir)18(ed )-246(to )-246(send )-246(one )-246(byte.)-746(The )-246(entir)19(e)]TJ 0 -1.2 TD [(sequence )-131(of )-131(zer)18(o-valued )-131(bits )-131(is )-131(consider)20(ed )-131(a )-131(single )-131(BREAK.)-631(In )-131(Section )-131(18.8, )-131(we\325ll )-131(see)]TJ T* (how to send a BREAK with the)Tj /TT0 1 Tf 13.994 0 Td (tcsendbreak)Tj /T1_1 1 Tf 6.85 0 Td (function.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47178 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 24 0 0 24 129.6 545.576 Tm [(Bibliogra )260(ph)30(y)]TJ /T1_1 1 Tf 9 0 0 9 129.6 435.4 Tm [(Accetta, )-177(M., )-177(Bar)18(on, )-177(R., )-177(Bolosky)]TJ 0.4271 Tc 14.154 0 Td (,W)Tj 0 Tc 1.585 0 Td [(., )-177(Golub, )-177(D., )-177(Rashid, )-177(R., )-177(T)92(evanian, )-177(A., )-177(and )-177(Y)92(oung, )-177(M.)-678(1986.)]TJ -0.037 Tc -12.539 -1.222 Td (\324\324)Tj 0 Tc 0.519 0 Td [(Mach: )-335(A )-335(New )-335(Kernel )-335(Foundation )-335(for )-335(UNIX )-335(Development,\325)36(\325)]TJ /T1_2 1 Tf 29.081 0 Td [(Pr)18(oceedings )-335(of )-335(the )-335(1986)]TJ -29.6 -1.222 Td [(Summer USENIX Confer)18(ence)]TJ /T1_1 1 Tf 0.25 Tc (,p)Tj 0 Tc 13.271 0 Td (p. 93)Tj 2.184 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (3, Atlanta, GA.)Tj 0.25 Tc 8 0 0 8 180 400.1 Tm (Ap)Tj 0 Tc 1.629 0 Td [(aper intr)18(oducing the Mach operating system.)]TJ 9 0 0 9 129.6 383.6 Tm [(Adams, )-157(J., )-157(Bustos, )-157(D., )-157(Hahn, )-157(S., )-157(Powell, )-157(D., )-157(and )-157(Praza, )-157(L.)-659(2005. )-407(\324)37(\324Solaris )-157(Service )-157(Management)]TJ 3.2 -1.222 Td [(Facility: )-394(Modern )-394(System )-394(Startup )-394(and )-394(Administration,\325)36(\325)]TJ /T1_2 1 Tf 26.686 0 Td [(Pr)18(oceedings )-394(of )-394(the )-394(19th )-394(Lar)18(ge)]TJ -26.686 -1.222 Td [(Installation System Administration Confer)18(ence \(LISA)55(\32505\))]TJ /T1_1 1 Tf 0.25 Tc (,p)Tj 0 Tc 24.492 0 Td (p. 225)Tj 2.684 0.09 Td (\320)Tj 0.583 -0.09 Td (236, San Diego, CA.)Tj 0.5751 Tc 8 0 0 8 180.0007 348.3 Tm (Ap)Tj 0 Tc 1.954 0 Td [(aper )-325(describing )-325(the )-325(Service )-325(Management )-325(Facility)]TJ 23.705 0.04 Td (\()Tj 0.333 -0.04 Td (SMF)Tj 2.027 0.04 Td (\))Tj 0.908 -0.04 Td [(in )-325(Solaris, )-325(which )-325(pr)18(ovides )-325(a)]TJ -28.927 -1.25 Td [(framework )-91(for )-91(starting )-91(and )-91(monitoring )-91(administrative )-91(pr)19(ocesses, )-91(and )-91(r)18(ecovering )-91(fr)18(om )-91(failur)19(es)]TJ 0 -1.25 TD [(af)18(fecting the services they pr)18(ovide.)]TJ 9 0 0 9 129.6004 311.8 Tm [(Adobe )-105(Systems )-105(Inc.)-606(1999.)]TJ /T1_2 1 Tf 12.368 0 Td [(PostScript )-105(Language )-105(Refer)18(ence )-105(Manual, )-105(Third )-105(Edition)]TJ /T1_1 1 Tf 0.6053 Tc 22.547 0 Td (.A)Tj 0 Tc 1.633 0 Td [(ddison-W)92(esley,)]TJ -33.348 -1.222 Td (Reading, MA.)Tj 8 0 0 8 180.0006 287.5 Tm [(The language r)18(efer)18(ence manual for PostScript.)]TJ 9 0 0 9 129.6006 271 Tm [(Aho, )-264(A. )-264(V)129(., )-264(Kernighan, )-264(B. )-264(W)92(., )-264(and )-264(W)92(einber)18(ger)]TJ 0.514 Tc 21.805 0 Td [(,P)643(.J)]TJ 0.764 Tc 2.336 0 Td (.1)Tj 0 Tc 1.514 0 Td (988.)Tj /T1_2 1 Tf 2.514 0 Td [(The )-264(A)55(WK )-264(Pr)18(ogramming )-264(Language)]TJ /T1_1 1 Tf (.)Tj -24.969 -1.222 Td [(Addison-W)92(esley, Reading, MA.)]TJ 0.4123 Tc 8 0 0 8 180.0008 246.7 Tm (Ac)Tj 0 Tc 1.634 0 Td [(omplete )-162(book )-162(on )-162(the )-162(awk )-162(pr)18(ogramming )-162(language.)-664(The )-162(version )-162(of )-162(awk )-162(described )-162(in )-162(this)]TJ -1.634 -1.25 Td [(book is sometimes called \324)37(\324nawk\325)]TJ 0.25 Tc 14.499 0 Td (\325\()Tj 0 Tc 0.861 0 Td (for new awk\).)Tj 9 0 0 9 129.6005 220.2 Tm [(Andrade, )-245(J. )-245(M., )-245(Car)18(ges, )-245(M. )-245(T)74(., )-245(and )-245(Kovach, )-245(K. )-245(R.)-741(1989. )-494(\324)37(\324Building )-244(a )-244(T)90(ransaction )-244(Pr)17(ocessing)]TJ 3.2 -1.222 Td [(System )-14(on )-14(UNIX )-14(Systems,\325)38(\325)]TJ /T1_2 1 Tf 12.374 0 Td [(Pr)18(oceedings )-14(of )-14(the )-14(1989 )-14(USENIX )-14(T)113(ransaction )-14(Pr)18(ocessing )-14(W)21(orkshop)]TJ /T1_1 1 Tf (,)Tj -12.374 -1.222 Td (pp. 13)Tj 2.785 0.09 Td (\320)Tj 0.583 -0.09 Td [(22, Pittsbur)18(gh, P)92(A.)]TJ 0.25 Tc 8 0 0 8 180.0002 184.9 Tm (Ad)Tj 0 Tc 1.639 0 Td [(escription of the A)74(T&T T)90(uxedo T)90(ransaction Pr)18(ocessing System.)]TJ 9 0 0 9 129.6003 168.4 Tm [(Arnold, )-283(J. )-283(Q.)-783(1986. )-533(\324)37(\324Shar)18(ed )-283(Libraries )-283(on )-283(UNIX )-283(System )-283(V)130(,\325)37(\325)]TJ /T1_2 1 Tf 28.978 0 Td [(Pr)18(oceedings )-283(of )-283(the )-283(1986 )-283(Summer)]TJ -25.778 -1.222 Td [(USENIX Confer)18(ence)]TJ /T1_1 1 Tf 0.25 Tc (,p)Tj 0 Tc 9.575 0 Td (p. 395)Tj 2.684 0.09 Td (\320)Tj 0.583 -0.09 Td (404, Atlanta, GA.)Tj 8 0 0 8 180.0006 144.1 Tm [(Describes the implementation of shar)18(ed libraries in SVR3.)]TJ /T1_3 1 Tf 9 0 0 9 506.1006 115 Tm (947)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47179 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (xviii)Tj /T1_1 1 Tf 4.055 0 Td (Contents)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 154.7907 667.9599 Tm [(21.5 )-2456(Source)-556(Code )-1882(795)]TJ 0 -1.3 TD [(21.6 )-2456(Summar)]TJ 2.16 Tc 8.488 0 Td (y8)Tj 0 Tc 3.216 0 Td (43)Tj /TT1 1 Tf -14.224 -2.47 Td [(Appendix )-278(A.)-1088(Function )-278(Pr)20(ototypes )]TJ 34.118 0 Td (845)Tj -34.118 -2.99 Td [(Appendix )-278(B.)-1088(Miscellaneous )-278(Sour)20(ce )-278(Code)]TJ 34.118 0 Td (895)Tj /TT0 1 Tf -0.02 Tc -31.598 -1.82 Td (B.)Tj 3.199 Tc 0.925 0 Td (1O)Tj 0 Tc 4.533 0 Td [(ur )-278(Header )-278(File)-2160(895)]TJ -0.02 Tc -5.458 -1.3 Td (B.)Tj 3.199 Tc 0.925 0 Td (2S)Tj 0 Tc 4.422 0 Td [(tandard )-278(Error )-278(Routines)-2160(898)]TJ /TT1 1 Tf -7.867 -2.47 Td [(Appendix )-278(C.)-1088(Solutions )-278(to )-278(Selected )-278(Ex)10(er)20(cises )]TJ 34.118 0 Td (905)Tj -34.118 -2.99 Td [(Bib)10(liograph)]TJ 28.036 Tc 5.526 0 Td (y9)Tj 0 Tc 29.148 0 Td (47)Tj -34.674 -2.47 Td (Inde)Tj 31.521 Tc 2.041 0 Td (x9)Tj 0 Tc 32.633 0 Td (55)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47180 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 24 0 0 24 129.6 545.576 Tm [(Inde)20(x)]TJ /T1_1 1 Tf 10 0 0 10 129.6 482.3998 Tm [(The )-127(function )-127(subentries )-127(labeled )-127(\324)37(\324de\336nition )-127(of)]TJ -0.037 Tc 20.794 0 Td [(\325\325 )-202(p)]TJ 0 Tc 1.498 0 Td [(oint )-128(to )-128(wher)]TJ 0.3776 Tc 5.644 0 Td (et)Tj 0 Tc 1.183 0 Td [(he )-128(function )-128(pr)19(ototype)]TJ -29.119 -1.2 Td [(appears )-27(and, )-27(when )-27(applicable, )-27(to )-27(the )-27(sour)18(ce )-27(code )-27(for )-27(the )-27(function.)-527(Functions )-27(de\336ned )-27(in)]TJ 0 -1.2 TD [(the )-44(text )-44(that )-44(ar)]TJ 0.2943 Tc 6.528 0 Td (eu)Tj 0 Tc 1.376 0 Td [(sed )-44(in )-44(later )-44(examples, )-44(such )-44(as )-44(the)]TJ /TT0 1 Tf 15.226 0 Td (set_fl)Tj /T1_1 1 Tf 3.894 0 Td [(function )-44(in )-44(Figur)]TJ 0.2944 Tc 7.552 0 Td (e3)Tj 0 Tc 1.273 0 Td [(.12, )-44(ar)18(e)]TJ -35.85 -1.2 Td [(included )-53(in )-53(this )-53(index.)-553(The )-53(de\336nitions )-53(of )-53(functions )-53(that )-53(ar)]TJ 0.3031 Tc 26.147 0 Td (ep)Tj 0 Tc 1.383 0 Td [(art )-53(of )-53(the )-53(lar)18(ger )-53(examples)]TJ -27.53 -1.16 Td (\()Tj 0.333 -0.04 Td [(Chapters )-39(17, )-39(19, )-39(20, )-39(and )-39(21)]TJ 11.903 0.04 Td (\))Tj 0.622 -0.04 Td (ar)Tj 0.2888 Tc 0.877 0 Td (ea)Tj 0 Tc 1.268 0 Td [(lso )-39(included )-39(to )-39(help )-39(in )-39(going )-39(thr)18(ough )-39(these )-39(examples.)]TJ -15.003 -1.2 Td [(Also, )-97(signi\336cant )-97(functions )-97(and )-97(constants )-97(that )-97(occur )-97(in )-97(any )-97(of )-97(the )-97(examples )-97(in )-97(the )-97(text,)]TJ T* [(such )-66(as)]TJ /TT0 1 Tf 3.609 0 Td (select)Tj /T1_1 1 Tf 3.916 0 Td (and)Tj /TT0 1 Tf 2.009 0 Td (poll)Tj /T1_1 1 Tf 0.3159 Tc (,a)Tj -0.018 Tc 3.466 0 Td [(re )-102(a)]TJ 0 Tc 1.672 0 Td [(lso )-66(included )-66(in )-66(this )-66(index.)]TJ -0.09 Tc 12.228 0 Td (Tr)Tj 0 Tc 0.918 0 Td [(ivial )-66(functions )-66(that )-66(occur)]TJ -27.817 -1.2 Td [(fr)18(equently)]TJ 0.2596 Tc 4.475 0 Td (,s)Tj 0 Tc 0.934 0 Td [(uch )-10(as)]TJ /TT0 1 Tf 3.072 0 Td (printf)Tj /T1_1 1 Tf 0.2596 Tc (,a)Tj -0.018 Tc 4.61 0 Td [(re )-46(s)]TJ 0 Tc 1.54 0 Td [(ometimes )-10(not )-10(r)19(efer)18(enced )-10(when )-10(they )-10(occur )-10(in )-10(examples.)]TJ /TT0 1 Tf 8 0 0 8 129.6009 358.3998 Tm (#!)Tj /T1_1 1 Tf 1.367 0 Td (,)Tj /T1_2 1 Tf 0.75 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td [(interpr)18(eter \336le)]TJ /TT0 1 Tf -3.534 -1.25 Td (.)Tj /T1_1 1 Tf 0.767 0 Td (,)Tj /T1_2 1 Tf 0.75 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td [(curr)18(ent dir)18(ectory)]TJ /TT0 1 Tf -2.934 -1.25 Td (..)Tj /T1_1 1 Tf 1.367 0 Td (,)Tj /T1_2 1 Tf 0.75 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td [(par)18(ent dir)18(ectory)]TJ -3.534 -1.25 Td [(2.9BSD, )-250(234)]TJ 0 -1.25 TD [(386BSD, )-250(xxxi,)-250(34)]TJ T* [(4.1BSD, )-250(525)]TJ T* [(4.2BSD, )-250(18,)-250(34, 81, 121, 129)]TJ 11.993 0.09 Td (\320)Tj 0.583 -0.09 Td (130, 183, 277, 326, 329,)Tj -9.877 -1.25 Td (469, 502, 508, 521, 525, 589)Tj -2.7 -1.25 Td [(4.3BSD, )-250(xxxi,)-250(33)]TJ 7.332 0.09 Td (\320)Tj 0.583 -0.09 Td (34, 36, 49, 201, 257, 267, 289, 313,)Tj -5.216 -1.25 Td (318, 329, 366, 482, 535, 735, 898, 951)Tj -1.35 -1.25 Td [(Reno, )-250(xxxi,)-250(34, 76)]TJ -0.092 Tc -0 -1.25 Td (Ta)Tj 0 Tc 1.021 0 Td [(hoe, )-250(xxxi,)-250(34, 951)]TJ -2.371 -1.25 Td [(4.4BSD, )-250(xxvi,)-250(xxxi, 21, 34, 74, 1)55(12, 121, 129, 149,)]TJ 2.7 -1.25 Td (234, 329, 535, 589, 735, 744, 951)Tj /TT0 1 Tf -2.7 -4.75 Td (a2ps)Tj /T1_1 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(842)]TJ /TT0 1 Tf -2.817 -1.25 Td (abort)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(198,)-250(236, 241, 272, 275, 313,)]TJ -0.717 -1.25 Td (317)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (319, 331, 365)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (367, 381, 447, 900)Tj -9.683 -1.25 Td [(de\336nition of,)-500(365)]TJ 7.775 0.09 Td (\320)Tj 0.583 -0.09 Td (366)Tj -9.709 -1.25 Td [(absolute pathname,)-500(5, 8, 43, 50, 64, 136, 141)]TJ 19.258 0.09 Td (\320)Tj 0.583 -0.09 Td (142,)Tj -17.141 -1.25 Td [(260, 553, 91)55(1)]TJ /TT0 1 Tf 23.3 27.25 Td (accept)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(148,)-250(331, 451, 608)]TJ 12.04 0.09 Td (\320)Tj 0.583 -0.09 Td (609, 615, 617,)Tj -13.94 -1.25 Td (635, 639)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (640, 648, 817)Tj -5.516 -1.25 Td [(de\336nition of,)-500(608)]TJ /TT0 1 Tf -1.35 -1.25 Td (access)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(102)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (104, 121, 124, 331, 452)Tj -9.29 -1.25 Td [(de\336nition of,)-500(102)]TJ -1.35 -1.25 Td [(Accetta, M.,)-500(35)]TJ T* (accounting)Tj 1.35 -1.25 Td [(login, )-250(186)]TJ 4.599 0.09 Td (\320)Tj 0.583 -0.09 Td (187)Tj -5.183 -1.25 Td [(pr)18(ocess, )-250(269)]TJ 5.628 0.09 Td (\320)Tj 0.583 -0.09 Td (275)Tj /TT0 1 Tf -7.561 -1.25 Td (acct)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(269)]TJ /TT0 1 Tf -2.817 -1.25 Td (acct)Tj /T1_1 1 Tf 2.817 0 Td [(str)8(uctur)18(e, )-250(270,)-250(273)]TJ /TT0 1 Tf -2.817 -1.25 Td (acctcom)Tj /T1_1 1 Tf 4.617 0 Td [(pr)18(ogram, )-250(269)]TJ /TT0 1 Tf -4.617 -1.25 Td (accton)Tj /T1_1 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(269,)-250(274)]TJ /TT0 1 Tf -4.017 -1.25 Td (ACORE)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(271,)-250(273)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (274)Tj -12.063 -1.25 Td [(Adams, J.,)-500(293)]TJ /TT0 1 Tf T* (add_job)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(814,)-250(820, 823, 827)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(820)]TJ /TT0 1 Tf -1.35 -1.25 Td (add_option)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(831,)-250(834)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(831)]TJ -1.35 -1.25 Td [(addr)18(essing, socket,)-500(593)]TJ 10.463 0.09 Td (\320)Tj 0.583 -0.09 Td (605)Tj /TT0 1 Tf -11.047 -1.25 Td (addrinfo)Tj /T1_1 1 Tf 5.217 0 Td [(str)8(uctur)18(e, )-250(599)]TJ 6.302 0.09 Td (\320)Tj 0.583 -0.09 Td (603, 614, 616, 618, 620,)Tj -9.402 -1.25 Td (622, 800, 802, 804, 807, 813)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (814, 816, 819, 833)Tj /T1_3 1 Tf 9 0 0 9 506.1001 115.9998 Tm (955)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47181 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (833)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(641 )-4800(/*)]TJ 0 -1.189 TD (642 )Tj 7.8 0 Td [(*)-600(Check for a change in the config file.)]TJ -7.8 -1.189 Td (643 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(644 )-4800(pthread_mutex_lock\(&configlock\);)]TJ T* [(645 )-4800(if)-600(\(reread\) {)]TJ 0 -1.189 TD (646 )Tj 9.6 0 Td (freeaddrinfo\(printer\);)Tj -9.6 -1.189 Td (647 )Tj 9.6 0 Td (printer)Tj 0.6 Tc 4.8 0 Td (=N)Tj 0 Tc 1.8 0 Td (ULL;)Tj -16.2 -1.189 Td (648 )Tj 9.6 0 Td (printer_name)Tj 0.6 Tc 7.8 0 Td (=N)Tj 0 Tc 1.8 0 Td (ULL;)Tj -19.2 -1.189 Td (649 )Tj 9.6 0 Td (reread)Tj 0.6 Tc 4.2 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -15.6 -1.189 Td (650 )Tj 9.6 0 Td (pthread_mutex_unlock\(&configlock\);)Tj -9.6 -1.189 Td (651 )Tj 9.6 0 Td (init_printer\(\);)Tj -9.6 -1.189 Td [(652 )-4800(})-600(else {)]TJ 0 -1.189 TD (653 )Tj 9.6 0 Td (pthread_mutex_unlock\(&configlock\);)Tj -9.6 -1.189 Td [(654 )-4800(})]TJ 0 -1.902 TD [(655 )-4800(/*)]TJ 0 -1.189 TD (656 )Tj 7.8 0 Td [(*)-600(Send job to printer.)]TJ -7.8 -1.189 Td (657 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(658 )-4800(sprintf\(name,)-600("%s/%s/%d", SPOOLDIR, DATADIR, jp->jobid\);)]TJ T* [(659 )-4800(if)-600(\(\(fd = open\(name, O_RDONLY\)\) < 0\) {)]TJ T* (660 )Tj 9.6 0 Td [(log_msg\("job)-600(%d canceled - can\325t open %s: %s",)]TJ -9.6 -1.189 Td (661 )Tj 10.8 0 Td [(jp->jobid,)-600(name, strerror\(errno\)\);)]TJ -10.8 -1.189 Td (662 )Tj 9.6 0 Td (free\(jp\);)Tj -9.6 -1.189 Td (663 )Tj 9.6 0 Td (continue;)Tj -9.6 -1.189 Td [(664 )-4800(})]TJ T* [(665 )-4800(if)-600(\(fstat\(fd, &sbuf\) < 0\) {)]TJ 0 -1.189 TD (666 )Tj 9.6 0 Td [(log_msg\("job)-600(%d canceled - can\325t fstat %s: %s",)]TJ -9.6 -1.189 Td (667 )Tj 10.8 0 Td [(jp->jobid,)-600(name, strerror\(errno\)\);)]TJ -10.8 -1.189 Td (668 )Tj 9.6 0 Td (free\(jp\);)Tj -9.6 -1.189 Td (669 )Tj 9.6 0 Td (close\(fd\);)Tj -9.6 -1.189 Td (670 )Tj 9.6 0 Td (continue;)Tj -9.6 -1.189 Td [(671 )-4800(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3273.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 303.2416 Tm [([641 )167(\320 )167(654])-668(Now )-50(that )-50(we )-50(have )-50(a )-50(job )-50(to )-50(print, )-50(we )-50(check )-50(for )-50(a )-50(change )-50(in )-50(the )-50(con\336guration)]TJ 5 -1.2 Td [(\336le. )-265(W)]TJ 0.265 Tc 3.048 0 Td (el)Tj 0 Tc 1.035 0 Td [(ock )-15(the)]TJ /TT0 1 Tf 3.463 0 Td (configlock)Tj /T1_0 1 Tf 6.265 0 Td [(mutex )-15(and )-15(check )-15(the)]TJ /TT0 1 Tf 9.452 0 Td (reread)Tj /T1_0 1 Tf 3.865 0 Td [(variable. )-265(If)-265(it )-15(is)]TJ -27.129 -1.2 Td [(nonzer)18(o, )-251(then )-251(we )-251(fr)18(ee )-251(the )-251(old )-251(printer)]TJ /TT0 1 Tf 18.224 0 Td (addrinfo)Tj /T1_0 1 Tf 5.301 0 Td [(list, )-251(clear )-251(the )-251(pointers,)]TJ -23.525 -1.2 Td [(unlock )-426(the )-426(mutex, )-426(and )-426(call)]TJ /TT0 1 Tf 14.068 0 Td (init_printer)Tj /T1_0 1 Tf 7.877 0 Td [(to )-427(r)18(einitialize )-427(the )-427(printer)]TJ -21.944 -1.2 Td [(information. )-446(Since)-446(only )-196(this )-196(context )-196(looks )-196(at )-196(and )-196(potentially )-196(changes )-196(the)]TJ 0 -1.2 TD [(printer )-131(information )-131(after )-131(the)]TJ /TT0 1 Tf 13.29 0 Td (main)Tj /T1_0 1 Tf 2.781 0 Td [(thr)18(ead )-131(initialized )-131(it, )-131(we )-131(don\325t )-131(need )-131(any)]TJ -16.071 -1.2 Td [(synchr)18(onization )-255(other )-255(than )-255(using )-255(the)]TJ /TT0 1 Tf 17.815 0 Td (configlock)Tj /T1_0 1 Tf 6.505 0 Td [(mutex )-255(to )-255(pr)18(otect )-255(the)]TJ -24.32 -1.2 Td (state of the)Tj /TT0 1 Tf 5.071 0 Td (reread)Tj /T1_0 1 Tf 3.85 0 Td (\337ag.)Tj -8.921 -1.56 Td [(Note )-62(that )-62(although )-62(we )-62(acquir)]TJ 0.3122 Tc 13.238 0 Td (ea)Tj 0 Tc 1.291 0 Td [(nd )-62(r)18(elease )-62(two )-62(dif)17(fer)18(ent )-62(mutex )-62(locks )-62(in )-62(this)]TJ -14.53 -1.2 Td [(function, )-32(we )-32(never )-32(hold )-32(both )-32(at )-32(the )-32(same )-32(time, )-32(so )-32(we )-32(don\325t )-32(need )-32(to )-32(establish)]TJ 0.25 Tc T* (al)Tj 0 Tc 1.041 0 Td [(ock hierar)18(chy \(Section 1)55(1.6.2\).)]TJ -6.041 -1.6 Td [([655 )167(\320 )167(671])-668(If )-314(we )-314(can\325t )-314(open )-314(the )-314(data )-314(\336le, )-314(we )-314(log )-314(an )-314(err)18(or )-314(message, )-314(fr)18(ee )-314(the)]TJ /TT0 1 Tf 37.2 0 Td (job)Tj /T1_0 1 Tf -32.2 -1.2 Td [(str)8(uctur)18(e, )-157(and )-157(continue.)-657(After )-157(opening )-157(the )-157(\336le, )-157(we )-157(call)]TJ /TT0 1 Tf 25.723 0 Td (fstat)Tj /T1_0 1 Tf 3.407 0 Td [(to )-156(\336nd )-156(the)]TJ -29.13 -1.2 Td [(size of the \336le.)-500(If this fails, we log an err)18(or message, clean up, and continue.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47182 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (816)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(122 )-2400(FD_ZERO\(&rendezvous\);)]TJ 0 -1.189 TD [(123 )-2400(maxfd)]TJ 0.6 Tc 8.4 0 Td (=-)Tj 0 Tc 1.8 0 Td (1;)Tj -10.2 -1.189 Td [(124 )-2400(for)-600(\(aip = ailist; aip != NULL; aip = aip->ai_next\) {)]TJ T* [(125 )-4800(if)-600(\(\(sockfd = initserver\(SOCK_STREAM, aip->ai_addr,)]TJ T* (126 )Tj 8.4 0 Td [(aip->ai_addrlen,)-600(QLEN\)\) >= 0\) {)]TJ -8.4 -1.189 Td (127 )Tj 9.6 0 Td [(FD_SET\(sockfd,)-600(&rendezvous\);)]TJ -9.6 -1.189 Td (128 )Tj 9.6 0 Td [(if)-600(\(sockfd > maxfd\))]TJ -9.6 -1.189 Td (129 )Tj 12 0 Td (maxfd)Tj 0.6 Tc 3.6 0 Td (=s)Tj 0 Tc 1.8 0 Td (ockfd;)Tj -17.4 -1.189 Td [(130 )-4800(})]TJ T* [(131 )-2400(})]TJ T* [(132 )-2400(if)-600(\(maxfd == -1\))]TJ T* [(133 )-4800(log_quit\("service)-600(not enabled"\);)]TJ 0 -2.021 TD [(134 )-2400(pwdp)]TJ 0.6 Tc 7.8 0 Td (=g)Tj 0 Tc 1.8 0 Td (etpwnam\(LPNAME\);)Tj -9.6 -1.189 Td [(135 )-2400(if)-600(\(pwdp == NULL\))]TJ 0 -1.189 TD [(136 )-4800(log_sys\("can\325t)-600(find user %s", LPNAME\);)]TJ T* [(137 )-2400(if)-600(\(pwdp->pw_uid == 0\))]TJ T* [(138 )-4800(log_quit\("user)-600(%s is privileged", LPNAME\);)]TJ T* [(139 )-2400(if)-600(\(setgid\(pwdp->pw_gid\) < 0 || setuid\(pwdp->pw_uid\) < 0\))]TJ 0 -1.189 TD [(140 )-4800(log_sys\("can\325t)-600(change IDs to user %s", LPNAME\);)]TJ 0 -2.021 TD [(141 )-2400(init_request\(\);)]TJ 0 -1.189 TD [(142 )-2400(init_printer\(\);)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4257.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 401.6698 Tm [([122 )167(\320 )167(131])]TJ -0.092 Tc 5 0 Td [(We )-199(c)]TJ 0 Tc 2.096 0 Td [(lear )-15(the)]TJ /TT0 1 Tf 3.582 0 Td [(rendezvous )335(fd_set)]TJ /T1_1 1 Tf 10.13 0 Td [(variable )-15(that )-15(we )-15(will )-15(use )-15(with)]TJ /TT0 1 Tf 13.456 0 Td (select)Tj /T1_1 1 Tf 3.865 0 Td (to)Tj -33.128 -1.2 Td [(wait )-9(for )-9(client )-9(connect )-9(r)16(equests. )-259(W)]TJ 0.2594 Tc 15.418 0 Td (ei)Tj 0 Tc 1.029 0 Td [(nitialize )-9(the )-9(maximum )-9(\336le )-9(descriptor )-9(to)]TJ /TT1 1 Tf -16.447 -1.2 Td (!)Tj /T1_1 1 Tf [(1)-495(so)-495(that )-245(the )-245(\336rst )-245(\336le )-245(descriptor )-245(we )-245(allocate )-245(is )-245(sur)19(e)-495(to)-495(be)-495(g)]TJ -0.018 Tc (re)Tj 0 Tc 29.815 0 Td [(ater )-245(than)]TJ /TT0 1 Tf -29.815 -1.2 Td (maxfd)Tj /T1_1 1 Tf 0.5456 Tc (.F)Tj 0 Tc 4.352 0 Td [(or )-46(each )-46(network )-46(addr)18(ess )-46(on )-46(which )-46(we )-46(need )-46(to )-46(pr)22(ovide )-45(service, )-45(we)]TJ -4.352 -1.2 Td (call)Tj /TT0 1 Tf 1.919 0 Td (initserver)Tj /T1_1 1 Tf 6.393 0 Td [(\(fr)18(om )-143(Figur)]TJ 0.3934 Tc 5.248 0 Td (e1)Tj 0 Tc 1.372 0 Td [(6.22\) )-143(to )-143(allocate )-143(and )-143(initialize )-143(a )-143(socket.)-646(If)]TJ /TT0 1 Tf -14.934 -1.2 Td (initserver)Tj /T1_1 1 Tf 6.456 0 Td [(succeeds, )-206(we )-206(add )-206(the )-206(\336le )-206(descriptor )-206(to )-206(the)]TJ /TT0 1 Tf 20.371 0 Td (fd_set)Tj /T1_1 1 Tf [(;)-456(if)-456(it)-456(i)1(s)]TJ -26.827 -1.2 Td [(gr)18(eater than the maximum, we set)]TJ /TT0 1 Tf 15.34 0 Td (maxfd)Tj /T1_1 1 Tf 3.25 0 Td [(equal to the socket \336le descriptor)74(.)]TJ -23.59 -1.6 Td [([132 )167(\320 )167(133])-668(If)]TJ /TT0 1 Tf 6.04 0 Td (maxfd)Tj /T1_1 1 Tf 3.37 0 Td [(is )-120(still)]TJ /TT1 1 Tf 3.077 0 Td (!)Tj /T1_1 1 Tf 0.3697 Tc (1a)Tj 0 Tc 1.919 0 Td [(fter )-120(stepping )-120(thr)19(ough )-120(the )-120(list )-120(of)]TJ /TT0 1 Tf 14.782 0 Td (addrinfo)Tj /T1_1 1 Tf 5.17 0 Td [(str)8(uctur)18(es,)]TJ -29.357 -1.2 Td (we can\325t enable the printer spooling service, so we log a message and\ exit.)Tj -5 -1.6 Td [([134 )167(\320 )167(140])-668(Our )-87(daemon )-87(needs )-87(super)8(user )-87(privileges )-87(to )-87(bind )-87(a )-87(socket )-87(to )-87(a )-87(r)21(eserved )-87(port)]TJ 5 -1.2 Td (number)Tj 0.5798 Tc 3.421 0 Td (.N)Tj 0 Tc 1.661 0 Td [(ow )-80(that )-80(this )-80(is )-80(done, )-80(we )-80(can )-80(lower )-80(its )-80(privileges )-80(by )-80(changing )-80(its)]TJ -5.082 -1.2 Td [(user )-167(and )-167(gr)18(oup )-167(IDs )-167(to )-167(the )-167(ones )-167(associated )-167(with )-167(the)]TJ /TT0 1 Tf 24.235 0 Td (LPNAME)Tj /T1_1 1 Tf 4.017 0 Td [(account. )-417(W)92(e)]TJ -28.252 -1.2 Td [(follow )-96(the )-96(principles )-96(of )-96(least )-96(privilege )-96(to )-96(avoid )-96(exposing )-96(the )-96(system )-96(to )-96(any)]TJ 0 -1.2 TD [(potential )-307(vulnerabilities )-307(in )-307(the )-307(daemon.)]TJ -0.092 Tc 19.447 0 Td [(We )-491(c)]TJ 0 Tc 2.388 0 Td (all)Tj /TT0 1 Tf 1.639 0 Td (getpwnam)Tj /T1_1 1 Tf 5.357 0 Td [(to )-307(\336nd )-307(the)]TJ -28.83 -1.2 Td (passwor)Tj 0.2881 Tc 3.706 0 Td (de)Tj 0 Tc 1.378 0 Td [(ntry )-38(for )-38(the )-38(daemon.)-538(If )-38(no )-38(such )-38(user )-38(account )-38(exists, )-38(or )-38(if )-38(it )-38(exists)]TJ -5.084 -1.2 Td [(with )-116(the )-116(same )-116(user )-116(ID )-116(as )-116(the )-116(super)10(user)74(,)-366(we)-366(l)1(og )-116(an )-116(err)18(or )-116(message )-116(and )-116(exit.)]TJ -0 -1.2 Td [(Otherwise, )-30(we )-30(change )-30(both )-30(the )-30(r)18(eal )-30(and )-30(ef)18(fective )-30(IDs )-30(by )-30(calling)]TJ /TT0 1 Tf 28.427 0 Td (setgid)Tj /T1_1 1 Tf 3.88 0 Td (and)Tj /TT0 1 Tf -32.307 -1.2 Td (setuid)Tj /T1_1 1 Tf 0.561 Tc (.T)Tj 0.311 Tc 4.932 0 Td (oa)Tj 0 Tc 1.357 0 Td [(void )-61(exposing )-61(our )-61(system, )-61(we )-61(choose )-61(to )-61(pr)18(ovide )-61(no )-61(service )-61(at)]TJ -6.289 -1.2 Td [(all if we can\325t r)18(educe our privileges.)]TJ -5 -1.6 Td [([141 )167(\320 )167(142])]TJ -0.092 Tc 5 0 Td [(We )-337(c)]TJ 0 Tc 2.234 0 Td (all)Tj /TT0 1 Tf 1.485 0 Td (init_request)Tj /T1_1 1 Tf 7.603 0 Td [(to )-153(initialize )-153(the )-153(job )-153(r)18(equests )-153(and )-153(ensur)]TJ 0.4032 Tc 17.683 0 Td (et)Tj 0 Tc 1.208 0 Td [(hat )-153(only)]TJ -30.214 -1.2 Td [(one )-32(copy )-32(of )-32(the )-32(daemon )-32(is )-32(r)8(unning, )-32(and )-32(we )-32(call)]TJ /TT0 1 Tf 21.522 0 Td (init_printer)Tj /T1_1 1 Tf 7.482 0 Td [(to )-32(initialize)]TJ -29.004 -1.2 Td (the printer information \(we\325ll see both of these functions shortly\)\ .)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47183 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (814)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(60 )-1200(int32_t)]TJ 16.8 0 Td (nextjob;)Tj -16.8 -1.189 Td [(61 )-1200(pthread_mutex_t)-4800(joblock = PTHREAD_MUTEX_INITIALIZER;)]TJ 0 -1.189 TD [(62 )-1200(pthread_cond_t)]TJ 16.8 0 Td (jobwait = PTHREAD_COND_INITIALIZER;)Tj -16.8 -1.783 Td [(63 )-1200(/*)]TJ T* [(64 )-1800(*)-600(Function prototypes.)]TJ T* [(65 )-1800(*/)]TJ T* [(66 )-1200(void)-4200(init_request\(void\);)]TJ T* [(67 )-1200(void)-4200(init_printer\(void\);)]TJ T* [(68 )-1200(void)-4200(update_jobno\(void\);)]TJ 0 -1.189 TD [(69 )-1200(int32_t)-2400(get_newjobno\(void\);)]TJ 0 -1.189 TD [(70 )-1200(void)-4200(add_job\(struct printreq *, int32_t\);)]TJ T* [(71 )-1200(void)-4200(replace_job\(struct job *\);)]TJ T* [(72 )-1200(void)-4200(remove_job\(struct job *\);)]TJ T* [(73 )-1200(void)-4200(build_qonstart\(void\);)]TJ T* [(74 )-1200(void)-4200(*client_thread\(void *\);)]TJ 0 -1.189 TD [(75 )-1200(void)-4200(*printer_thread\(void *\);)]TJ 0 -1.189 TD [(76 )-1200(void)-4200(*signal_thread\(void *\);)]TJ 0 -1.189 TD [(77 )-1200(ssize_t)-2400(readmore\(int, char **, int, int *\);)]TJ 0 -1.189 TD [(78 )-1200(int)-4800(printer_status\(int, struct job *\);)]TJ 0 -1.189 TD [(79 )-1200(void)-4200(add_worker\(pthread_t, int\);)]TJ 0 -1.189 TD [(80 )-1200(void)-4200(kill_workers\(void\);)]TJ 0 -1.189 TD [(81 )-1200(void)-4200(client_cleanup\(void *\);)]TJ 0 -1.783 TD [(82 )-1200(/*)]TJ 0 -1.189 TD [(83 )-1800(*)-600(Main print server thread.)-1200(Accepts connect requests from)]TJ T* [(84 )-1800(*)-600(clients and spawns additional threads to service requests.)]TJ 0 -1.189 TD [(85 )-1800(*)]TJ 0 -1.189 TD [(86 )-1800(*)-600(LOCKING: none.)]TJ 0 -1.189 TD [(87 )-1800(*/)]TJ 0 -1.189 TD [(88 )-1200(int)]TJ T* [(89 )-1200(main\(int)-600(argc, char *argv[]\))]TJ 0 -1.189 TD [(90 )-1200({)]TJ 0 -1.189 TD [(91 )-3000(pthread_t)]TJ 16.8 0 Td (tid;)Tj -16.8 -1.189 Td [(92 )-3000(struct)-600(addrinfo )-2400(*ailist,)-600(*aip;)]TJ 0 -1.189 TD [(93 )-3000(int)]TJ 16.8 0 Td (sockfd, err, i, n, maxfd;)Tj -16.8 -1.189 Td [(94 )-3000(char)]TJ 16.8 0 Td (*host;)Tj -16.8 -1.189 Td [(95 )-3000(fd_set)]TJ 16.8 0 Td (rendezvous, rset;)Tj -16.8 -1.189 Td [(96 )-3000(struct)-600(sigaction )-1800(sa;)]TJ 0 -1.189 TD [(97 )-3000(struct)-600(passwd )-3600(*pwdp;)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2481.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 224.0711 Tm [([60 )167(\320 )167(62])]TJ /TT0 1 Tf 4 0 Td (nextjob)Tj /T1_1 1 Tf 4.563 0 Td [(is )-113(the )-113(ID )-113(of )-113(the )-113(next )-113(print )-113(job )-113(to )-113(be )-113(r)19(eceived. )-363(The)]TJ /TT0 1 Tf 23.068 0 Td (joblock)Tj /T1_1 1 Tf 4.563 0 Td (mutex)Tj -32.193 -1.2 Td [(pr)18(otects )-212(the )-212(linked )-212(list )-212(of )-212(jobs, )-212(as )-212(well )-212(as )-212(the )-212(condition )-212(r)20(epr)18(esented )-212(by )-212(the)]TJ /TT0 1 Tf 0 -1.2 TD (jobwait)Tj /T1_1 1 Tf 4.45 0 Td (condition variable.)Tj -8.45 -1.6 Td [([63 )167(\320 )167(81])]TJ -0.092 Tc 4 0 Td [(We )-398(d)]TJ 0 Tc 2.462 0 Td (eclar)Tj 0.4639 Tc 2.091 0 Td (et)Tj 0 Tc 1.269 0 Td [(he )-214(function )-214(pr)18(ototypes )-214(for )-214(the )-214(r)18(emaining )-214(functions )-214(in )-214(this )-214(\336le.)]TJ -5.822 -1.2 Td [(Doing )-327(this )-327(up )-327(fr)19(ont )-327(allows )-327(us )-327(to )-327(place )-327(the )-327(functions )-327(in )-327(the )-327(\336le )-327(without)]TJ T* [(worrying about the or)18(der in which each is called.)]TJ -4 -1.6 Td [([82 )167(\320 )167(97])-668(The)]TJ /TT0 1 Tf 5.995 0 Td (main)Tj /T1_1 1 Tf 2.721 0 Td [(function )-71(for )-71(the )-71(printer )-71(spooling )-71(daemon )-71(has )-71(two )-71(tasks )-71(to )-71(perform:)]TJ -4.717 -1.2 Td [(initialize the daemon and then pr)18(ocess connect r)18(equests fr)18(om clients.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47184 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (807)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(The command used to submit a print job is shown next.)-500(The C sour)18(ce \336le is)]TJ /TT0 1 Tf 33.652 0 Td (print.c)Tj /T1_0 1 Tf (.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6570.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 1.8 Tc 8.9989 0 0 8.9989 134.9838 647.4213 Tm (1/)Tj 0 Tc 3 0 Td (*)Tj 2.4 Tc -3 -1.189 Td (2*)Tj 0 Tc 4.2 0 Td [(The client command for printing documents.)-1200(Opens the file)]TJ 2.4 Tc -4.2 -1.189 Td (3*)Tj 0 Tc 4.2 0 Td [(and sends it to the printer spooling daemon.)-1200(Usage:)]TJ -4.2 -1.189 Td [(4)-2400(*)-2400( print [-t] filename)]TJ 2.4 Tc 0 -1.189 TD (5*)Tj 0 Tc 3.6 0 Td (/)Tj 1.8 Tc -3.6 -1.189 Td (6#)Tj 0 Tc 3 0 Td (include "apue.h")Tj 1.8 Tc -3 -1.189 Td (7#)Tj 0 Tc 3 0 Td (include "print.h")Tj 1.8 Tc -3 -1.189 Td (8#)Tj 0 Tc 3 0 Td (include )Tj 1.8 Tc -3 -1.189 Td (9#)Tj 0 Tc 3 0 Td (include )Tj -3.6 -2.14 Td [(10 )-1200(/*)]TJ T* [(11 )-1800(*)-600(Needed for logging funtions.)]TJ T* [(12 )-1800(*/)]TJ T* [(13 )-1200(int)-600(log_to_stderr = 1;)]TJ 0 -2.14 TD [(14 )-1200(void)-600(submit_file\(int, int, const char *, size_t, int\);)]TJ 0 -2.14 TD [(15 )-1200(int)]TJ 0 -1.189 TD [(16 )-1200(main\(int)-600(argc, char *argv[]\))]TJ T* [(17 )-1200({)]TJ T* [(18 )-3000(int)]TJ 14.4 0 Td (fd, sfd, err, text, c;)Tj -14.4 -1.189 Td [(19 )-3000(struct)-600(stat )-2400(sbuf;)]TJ 0 -1.189 TD [(20 )-3000(char)]TJ 14.4 0 Td (*host;)Tj -14.4 -1.189 Td [(21 )-3000(struct)-600(addrinfo *ailist, *aip;)]TJ 0 -2.14 TD [(22 )-3000(err)]TJ 0.6 Tc 7.2 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -9 -1.189 Td [(23 )-3000(text)]TJ 0.6 Tc 7.8 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -9.6 -1.189 Td [(24 )-3000(while)-600(\(\(c = getopt\(argc, argv, "t"\)\) != -1\) {)]TJ 0 -1.189 TD (25 )Tj 7.2 0 Td [(switch)-600(\(c\) {)]TJ -7.2 -1.189 Td (26 )Tj 7.2 0 Td [(case)-600(\325t\325:)]TJ -7.2 -1.189 Td (27 )Tj 9.6 0 Td (text)Tj 0.6 Tc 3 0 Td (=1)Tj 0 Tc 1.8 0 Td (;)Tj -14.4 -1.189 Td (28 )Tj 9.6 0 Td (break;)Tj -9.6 -2.14 Td (29 )Tj 7.2 0 Td [(case)-600(\325?\325:)]TJ -7.2 -1.189 Td (30 )Tj 9.6 0 Td (err)Tj 0.6 Tc 2.4 0 Td (=1)Tj 0 Tc 1.8 0 Td (;)Tj -13.8 -1.189 Td (31 )Tj 9.6 0 Td (break;)Tj -9.6 -1.189 Td (32 )Tj 7.2 0 Td (})Tj -7.2 -1.189 Td [(33 )-3000(})]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2575.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 233.456 Tm [([1 )167(\320 )167(14])]TJ -0.092 Tc 4 0 Td [(We )-244(n)]TJ 0 Tc 2.279 0 Td [(eed )-60(to )-60(de\336ne )-60(an )-60(integer )-60(called)]TJ /TT0 1 Tf 13.864 0 Td (log_to_stderr)Tj /T1_0 1 Tf 8.11 0 Td [(to )-60(be )-60(able )-60(to )-60(use )-60(the )-60(log)]TJ -24.254 -1.2 Td [(functions )-14(in )-14(our )-14(library)]TJ 0.5145 Tc 10.211 0 Td (.I)Tj 0.2646 Tc 1.101 0 Td (ft)Tj 0 Tc 0.924 0 Td [(his )-15(integer )-15(is )-15(set )-15(to )-15(a )-15(nonzer)]TJ 0.2646 Tc 12.375 0 Td (ov)Tj 0 Tc 1.376 0 Td [(alue, )-15(err)18(or )-15(messages)]TJ -25.987 -1.2 Td [(will )-68(be )-68(sent )-68(to )-68(the )-68(standar)]TJ 0.318 Tc 11.719 0 Td (de)Tj 0 Tc 1.408 0 Td [(rr)18(or )-68(str)18(eam )-68(instead )-68(of )-68(to )-68(a )-68(log )-68(\336le.)-568(Although )-68(we)]TJ -13.127 -1.2 Td [(don\325t )-373(use )-373(any )-373(logging )-373(functions )-373(in)]TJ /TT0 1 Tf 17.609 0 Td (print.c)Tj /T1_0 1 Tf [(,)-623(we)-623(do)-623(l)-1(ink)]TJ /TT0 1 Tf 11.134 0 Td (util.o)Tj /T1_0 1 Tf 4.224 0 Td (with)Tj /TT0 1 Tf -32.967 -1.2 Td (print.o)Tj /T1_0 1 Tf 4.737 0 Td [(to )-287(build )-287(the )-287(executable)]TJ /TT0 1 Tf 11.427 0 Td (print)Tj /T1_0 1 Tf 3.537 0 Td [(command, )-287(and)]TJ /TT0 1 Tf 7.466 0 Td (util.c)Tj /T1_0 1 Tf 4.137 0 Td (contains)Tj -31.305 -1.2 Td (functions for both user commands and daemons.)Tj -4 -1.6 Td [([15 )167(\320 )167(33])]TJ -0.092 Tc 4 0 Td [(We )-198(s)]TJ 0 Tc 2.075 0 Td [(upport )-14(one )-14(option,)]TJ /TT0 1 Tf 8.614 0 Td (-t)Tj /T1_0 1 Tf 0.2644 Tc (,t)Tj 0.2645 Tc 2.04 0 Td (of)Tj 0 Tc 1.144 0 Td [(or)18(ce )-14(the )-14(\336le )-14(to )-14(be )-14(printed )-14(as )-14(text )-14(\(instead )-14(of )-14(as )-14(a)]TJ -13.873 -1.2 Td [(PostScript )-39(pr)18(ogram, )-39(for )-39(example\).)]TJ -0.092 Tc 15.602 0 Td [(We )-223(u)]TJ 0 Tc 2.279 0 Td [(se )-39(the)]TJ /TT0 1 Tf 2.868 0 Td (getopt)Tj /T1_0 1 Tf 3.889 0 Td [(function )-39(\(intr)18(oduced )-39(in)]TJ -24.639 -1.2 Td [(Section 17.6\) to pr)18(ocess the command options.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47185 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (804)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(64 )-1200(/*)]TJ 0 -1.189 TD [(65 )-1800(*)-600(Return the host name running the print server or NULL on error.)]TJ T* [(66 )-1800(*)]TJ T* [(67 )-1800(*)-600(LOCKING: none.)]TJ T* [(68 )-1800(*/)]TJ 0 -1.189 TD [(69 )-1200(char)-600(*)]TJ 0 -1.189 TD [(70 )-1200(get_printserver\(void\))]TJ T* [(71 )-1200({)]TJ T* [(72 )-3000(return\(scan_configfile\("printserver"\)\);)]TJ T* [(73 )-1200(})]TJ 0 -1.902 TD [(74 )-1200(/*)]TJ 0 -1.189 TD [(75 )-1800(*)-600(Return the address of the network printer or NULL on error.)]TJ 0 -1.189 TD [(76 )-1800(*)]TJ T* [(77 )-1800(*)-600(LOCKING: none.)]TJ T* [(78 )-1800(*/)]TJ T* [(79 )-1200(struct)-600(addrinfo *)]TJ T* [(80 )-1200(get_printaddr\(void\))]TJ T* [(81 )-1200({)]TJ T* [(82 )-3000(int)]TJ 14.4 0 Td (err;)Tj -14.4 -1.189 Td [(83 )-3000(char)]TJ 14.4 0 Td (*p;)Tj -14.4 -1.189 Td [(84 )-3000(struct)-600(addrinfo *ailist;)]TJ 0 -1.902 TD [(85 )-3000(if)-600(\(\(p = scan_configfile\("printer"\)\) != NULL\) {)]TJ 0 -1.189 TD (86 )Tj 7.2 0 Td [(if)-600(\(\(err = getaddrlist\(p, "ipp", &ailist\)\) != 0\) {)]TJ -7.2 -1.189 Td (87 )Tj 9.6 0 Td [(log_msg\("no)-600(address information for %s", p\);)]TJ -9.6 -1.189 Td (88 )Tj 9.6 0 Td (return\(NULL\);)Tj -9.6 -1.189 Td (89 )Tj 7.2 0 Td (})Tj -7.2 -1.189 Td (90 )Tj 7.2 0 Td (return\(ailist\);)Tj -7.2 -1.189 Td [(91 )-3000(})]TJ 0 -1.189 TD [(92 )-3000(log_msg\("no)-600(printer address specified"\);)]TJ T* [(93 )-3000(return\(NULL\);)]TJ T* [(94 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3208.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 296.8224 Tm [([64 )167(\320 )167(73])-668(The)]TJ /TT0 1 Tf 6.247 0 Td (get_printserver)Tj /T1_1 1 Tf 9.574 0 Td [(function )-324(is )-324(simply )-324(a )-324(wrapper )-324(function )-324(that )-324(calls)]TJ /TT0 1 Tf -11.821 -1.2 Td (scan_configfile)Tj /T1_1 1 Tf 9.573 0 Td [(to )-323(\336nd )-323(the )-323(name )-323(of )-323(the )-323(computer )-323(system )-323(wher)]TJ 0.5726 Tc 22.989 0 Td (et)Tj 0 Tc 1.378 0 Td (he)Tj -33.939 -1.2 Td [(printer spooling daemon is r)8(unning.)]TJ -4 -1.6 Td [([74 )167(\320 )167(94])]TJ -0.092 Tc 4 0 Td [(We )-496(u)]TJ 0 Tc 2.552 0 Td [(se )-312(the)]TJ /TT0 1 Tf 3.414 0 Td (get_printaddr)Tj /T1_1 1 Tf 8.362 0 Td [(function )-312(to )-312(get )-312(the )-312(addr)18(ess )-312(of )-312(the )-312(network)]TJ -14.328 -1.2 Td (printer)Tj 0.6844 Tc 2.995 0 Td (.I)Tj 0 Tc 1.271 0 Td [(t)-434(is)-434(s)-1(imilar )-184(to )-184(the )-184(pr)18(evious )-184(function )-184(except )-184(that )-184(when )-184(we )-184(\336nd )-184(the)]TJ -4.266 -1.2 Td [(name )-225(of )-225(the )-225(printer )-225(in )-225(the )-225(con\336guration )-225(\336le, )-225(we )-225(use )-225(the )-225(name )-225(to )-225(\336nd )-225(the)]TJ 0 -1.2 TD [(corr)18(esponding network addr)18(ess.)]TJ 0 -1.56 TD (Both)Tj /TT0 1 Tf 2.369 0 Td (get_printserver)Tj /T1_1 1 Tf 9.304 0 Td (and)Tj /TT0 1 Tf 1.997 0 Td (get_printaddr)Tj /T1_1 1 Tf 8.104 0 Td (call)Tj /TT0 1 Tf 1.83 0 Td (scan_configfile)Tj /T1_1 1 Tf 0.5541 Tc (.I)Tj 0.3041 Tc 10.141 0 Td (fi)Tj 0 Tc 0.928 0 Td (t)Tj -34.674 -1.2 Td [(can\325t )-37(open )-37(the )-37(printer )-37(con\336guration )-37(\336le,)]TJ /TT0 1 Tf 18.117 0 Td (scan_configfile)Tj /T1_1 1 Tf 9.287 0 Td (calls)Tj /TT0 1 Tf 2.237 0 Td (log_sys)Tj /T1_1 1 Tf 4.487 0 Td (to)Tj -34.128 -1.2 Td [(print )-53(an )-53(err)18(or )-53(message )-53(and )-53(exit.)-550(Although)]TJ /TT0 1 Tf 19.401 0 Td (get_printserver)Tj /T1_1 1 Tf 9.303 0 Td [(is )-52(meant )-52(to )-52(be)]TJ -28.703 -1.2 Td [(called )-20(fr)18(om )-20(a )-20(client )-20(command )-20(and)]TJ /TT0 1 Tf 15.433 0 Td (get_printaddr)Tj /T1_1 1 Tf 8.071 0 Td [(is )-20(meant )-20(to )-20(be )-20(called )-20(fr)16(om)]TJ -23.503 -1.2 Td [(the )-64(daemon, )-64(having )-64(both )-64(call)]TJ /TT0 1 Tf 13.419 0 Td (log_sys)Tj /T1_1 1 Tf 4.514 0 Td [(is )-64(OK, )-64(because )-64(we )-64(can )-64(arrange )-64(for )-64(the)]TJ -17.933 -1.2 Td [(log )-20(functions )-20(to )-20(print )-20(to )-20(the )-20(standar)]TJ 0.2697 Tc 15.788 0 Td (de)Tj 0 Tc 1.36 0 Td [(rr)18(or )-20(instead )-20(of )-20(to )-20(the )-20(log )-20(\336le )-20(by )-20(setting )-20(a)]TJ -17.148 -1.2 Td (global variable.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47186 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (802)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (The next \336le we will look at is)Tj /TT0 1 Tf 13.452 0 Td (util.c)Tj /T1_1 1 Tf 0.25 Tc (,t)Tj 0 Tc 4.426 0 Td [(he \336le containing utility r)18(outines.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6570.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 1.8 Tc 8.9989 0 0 8.9989 134.9838 647.4213 Tm (1#)Tj 0 Tc 3 0 Td (include "apue.h")Tj 1.8 Tc -3 -1.189 Td (2#)Tj 0 Tc 3 0 Td (include "print.h")Tj 1.8 Tc -3 -1.189 Td (3#)Tj 0 Tc 3 0 Td (include )Tj 1.8 Tc -3 -1.189 Td (4#)Tj 0 Tc 3 0 Td (include )Tj 1.8 Tc -3 -2.021 Td (5#)Tj 0 Tc 3 0 Td (define MAXCFGLINE 512)Tj 1.8 Tc -3 -1.189 Td (6#)Tj 0 Tc 3 0 Td [(define MAXKWLEN)-1800(16)]TJ 1.8 Tc -3 -1.189 Td (7#)Tj 0 Tc 3 0 Td [(define MAXFMTLEN)-1200(16)]TJ 1.8 Tc -3 -2.021 Td (8/)Tj 0 Tc 3 0 Td (*)Tj 2.4 Tc -3 -1.189 Td (9*)Tj 0 Tc 4.2 0 Td (Get the address list for the given host and service and)Tj -4.8 -1.189 Td [(10 )-1800(*)-600(return through ailistpp.)-1200(Returns 0 on success or an error)]TJ 0 -1.189 TD [(11 )-1800(*)-600(code on failure.)-1200(Note that we do not set errno if we)]TJ T* [(12 )-1800(*)-600(encounter an error.)]TJ T* [(13 )-1800(*)]TJ T* [(14 )-1800(*)-600(LOCKING: none.)]TJ T* [(15 )-1800(*/)]TJ T* [(16 )-1200(int)]TJ T* [(17 )-1200(getaddrlist\(const)-600(char *host, const char *service,)]TJ T* [(18 )-2400(struct)-600(addrinfo **ailistpp\))]TJ 0 -1.189 TD [(19 )-1200({)]TJ 0 -1.189 TD [(20 )-3000(int)]TJ 14.4 0 Td (err;)Tj -14.4 -1.189 Td [(21 )-3000(struct)-600(addrinfo hint;)]TJ 0 -2.021 TD [(22 )-3000(hint.ai_flags)]TJ 0.6 Tc 13.2 0 Td (=A)Tj 0 Tc 1.8 0 Td (I_CANONNAME;)Tj -15 -1.189 Td [(23 )-3000(hint.ai_family)]TJ 0.6 Tc 13.8 0 Td (=A)Tj 0 Tc 1.8 0 Td (F_INET;)Tj -15.6 -1.189 Td [(24 )-3000(hint.ai_socktype)]TJ 0.6 Tc 15 0 Td (=S)Tj 0 Tc 1.8 0 Td (OCK_STREAM;)Tj -16.8 -1.189 Td [(25 )-3000(hint.ai_protocol)]TJ 0.6 Tc 15 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -16.8 -1.189 Td [(26 )-3000(hint.ai_addrlen)]TJ 0.6 Tc 14.4 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -16.2 -1.189 Td [(27 )-3000(hint.ai_canonname)]TJ 0.6 Tc 15.6 0 Td (=N)Tj 0 Tc 1.8 0 Td (ULL;)Tj -17.4 -1.189 Td [(28 )-3000(hint.ai_addr)]TJ 0.6 Tc 12.6 0 Td (=N)Tj 0 Tc 1.8 0 Td (ULL;)Tj -14.4 -1.189 Td [(29 )-3000(hint.ai_next)]TJ 0.6 Tc 12.6 0 Td (=N)Tj 0 Tc 1.8 0 Td (ULL;)Tj -14.4 -1.189 Td [(30 )-3000(err)]TJ 0.6 Tc 7.2 0 Td (=g)Tj 0 Tc 1.8 0 Td (etaddrinfo\(host, service, &hint, ailistpp\);)Tj -9 -1.189 Td [(31 )-3000(return\(err\);)]TJ 0 -1.189 TD [(32 )-1200(})]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2885.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 264.4804 Tm [([1 )167(\320 )167(7])]TJ -0.092 Tc 4 0 Td [(We )-262(\336)]TJ 0 Tc 2.32 0 Td [(rst )-78(de\336ne )-78(the )-78(limits )-78(needed )-78(by )-78(the )-78(functions )-78(in )-78(this )-78(\336le.)]TJ /TT0 1 Tf 25.638 0 Td (MAXCFGLINE)Tj /T1_1 1 Tf 6.328 0 Td (is)Tj -34.285 -1.2 Td [(the )-97(maximum )-97(size )-97(of )-97(a )-97(line )-97(in )-97(the )-97(printer )-97(con\336guration )-97(\336le,)]TJ /TT0 1 Tf 27.405 0 Td (MAXKWLEN)Tj /T1_1 1 Tf 5.147 0 Td [(is )-97(the)]TJ -32.551 -1.2 Td [(maximum )-113(size )-113(of )-113(a )-113(keywor)19(d)-363(in)-363(the )-113(con\336guration )-113(\336le, )-113(and)]TJ /TT0 1 Tf 26.773 0 Td (MAXFMTLEN)Tj /T1_1 1 Tf 5.763 0 Td [(is )-113(the)]TJ -32.535 -1.2 Td (maximum size of the format string we pass to)Tj /TT0 1 Tf 20.46 0 Td (sscanf)Tj /T1_1 1 Tf (.)Tj -24.46 -1.6 Td [([8 )167(\320 )167(32])-1168(The )-400(\336rst )-400(function )-400(is)]TJ /TT0 1 Tf 14.445 0 Td (getaddrlist)Tj /T1_1 1 Tf 0.8997 Tc (.I)Tj 0 Tc 8.087 0 Td [(t)-650(is)-650(a)-650(w)1(rapper )-400(for)]TJ /TT0 1 Tf 9.869 0 Td (getaddrinfo)Tj /T1_1 1 Tf -28.4 -1.2 Td [(\(Section )-364(16.3.3\), )-364(since )-364(we )-364(always )-364(call)]TJ /TT0 1 Tf 18.457 0 Td (getaddrinfo)Tj /T1_1 1 Tf 7.214 0 Td [(with )-364(the )-364(same )-364(hint)]TJ -25.671 -1.2 Td [(str)8(uctur)18(e. )-507(Note)-508(that )-257(we )-257(do )-257(not )-257(need )-257(mutex )-257(locking )-257(in )-257(this )-257(function.)-762(The)]TJ /TT0 1 Tf 0 -1.2 Td (LOCKING)Tj /T1_1 1 Tf 4.696 0 Td [(comment )-246(at )-246(the )-246(beginning )-246(of )-246(each )-246(function )-246(is )-246(intended )-246(only )-246(for)]TJ -4.696 -1.2 Td [(documenting )-162(multithr)18(eaded )-162(locking.)-663(This )-162(comment )-162(lists )-162(the )-162(assumptions, )-162(if)]TJ 0 -1.2 TD (any)Tj 0.3243 Tc 1.527 0 Td (,t)Tj 0 Tc 0.9 0 Td [(hat )-74(ar)]TJ 0.3243 Tc 2.609 0 Td (em)Tj 0 Tc 1.686 0 Td [(ade )-74(r)18(egar)18(ding )-74(the )-74(locking, )-74(tells )-74(which )-74(locks )-74(the )-74(function )-74(might)]TJ -6.723 -1.2 Td [(acquir)18(e)-250(or)-250(r)18(elease, and tells which locks must be held to call the function.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47187 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (800)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(22 )-1200(#define)-600(FILENMSZ )-4200(64)]TJ 0 -1.189 TD [(23 )-1200(#define)-600(FILEPERM )-4200(\(S_IRUSR|S_IWUSR\))]TJ 0 -2.021 TD [(24 )-1200(#define)-600(USERNM_MAX )-3000(64)]TJ 0 -1.189 TD [(25 )-1200(#define)-600(JOBNM_MAX )-3600(256)]TJ T* [(26 )-1200(#define)-600(MSGLEN_MAX )-3000(512)]TJ 0 -2.021 TD [(27 )-1200(#ifndef)-600(HOST_NAME_MAX)]TJ 0 -1.189 TD [(28 )-1200(#define)-600(HOST_NAME_MAX )-1200(256)]TJ T* [(29 )-1200(#endif)]TJ 0 -2.021 TD [(30 )-1200(#define)-600(IPP_PORT )-4200(631)]TJ 0 -1.189 TD [(31 )-1200(#define)-600(QLEN )]TJ 17.4 0 Td (10)Tj -17.4 -2.021 Td [(32 )-1200(#define)-600(IBUFSZ )]TJ 17.4 0 Td [(512)-2400(/* IPP header buffer size */)]TJ -17.4 -1.189 Td [(33 )-1200(#define)-600(HBUFSZ )]TJ 17.4 0 Td [(512)-2400(/* HTTP header buffer size */)]TJ -17.4 -1.189 Td [(34 )-1200(#define)-600(IOBUFSZ )-4800(8192)-1800(/* data buffer size */)]TJ 0 -2.021 TD [(35 )-1200(#ifndef)-600(ETIME)]TJ 0 -1.189 TD [(36 )-1200(#define)-600(ETIME ETIMEDOUT)]TJ T* [(37 )-1200(#endif)]TJ 0 -2.021 TD [(38 )-1200(extern)-600(int getaddrlist\(const char *, const char *,)]TJ 0 -1.189 TD [(39 )-2400(struct)-600(addrinfo **\);)]TJ 0 -1.189 TD [(40 )-1200(extern)-600(char *get_printserver\(void\);)]TJ T* [(41 )-1200(extern)-600(struct addrinfo *get_printaddr\(void\);)]TJ T* [(42 )-1200(extern)-600(ssize_t tread\(int, void *, size_t, unsigned int\);)]TJ T* [(43 )-1200(extern)-600(ssize_t treadn\(int, void *, size_t, unsigned int\);)]TJ T* [(44 )-1200(extern)-600(int connect_retry\(int, int, int, const struct sockaddr *,)]TJ T* [(45 )-2400(socklen_t\);)]TJ T* [(46 )-1200(extern)-600(int initserver\(int, const struct sockaddr *, socklen_t,)]TJ T* [(47 )-2400(int\);)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3422.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 318.2198 Tm [([22 )167(\320 )167(34])-668(Next, )-8(we )-8(de\336ne )-8(limits )-8(and )-8(constants.)]TJ /TT0 1 Tf 20.873 0 Td (FILEPERM)Tj /T1_1 1 Tf 5.058 0 Td [(is )-8(the )-8(permissions )-8(used )-8(when)]TJ -21.931 -1.2 Td [(cr)18(eating )-25(copies )-25(of )-25(\336les )-25(submitted )-25(to )-25(be )-25(printed.)-529(The )-25(permissions )-25(ar)]TJ 0.2754 Tc 29.849 0 Td (er)Tj 0 Tc 1.131 0 Td (estrictive)Tj -30.98 -1.2 Td [(because )-209(we )-209(don\325t )-209(want )-209(or)18(dinary )-209(users )-209(to )-209(be )-209(able )-209(to )-209(r)18(ead )-209(each )-209(other)-74(\325s )-209(\336les)]TJ 0 -1.2 TD [(while )-286(they )-286(ar)]TJ 0.5365 Tc 6.37 0 Td (ew)Tj 0 Tc 1.849 0 Td [(aiting )-286(to )-286(be )-286(printed.)]TJ -0.092 Tc 10.381 0 Td [(We )-470(d)]TJ 0 Tc 2.534 0 Td (e\336ne)Tj /TT0 1 Tf 2.681 0 Td (HOST_NAME_MAX)Tj /T1_1 1 Tf 8.336 0 Td [(as )-286(the)]TJ -32.153 -1.2 Td [(lar)18(gest )-83(host )-83(name )-83(we )-83(will )-83(support )-83(if )-83(we )-83(ar)]TJ 0.3331 Tc 19.27 0 Td (eu)Tj 0 Tc 1.415 0 Td [(nable )-83(to )-83(determine )-83(the )-83(system\325s)]TJ -20.685 -1.2 Td (limit with)Tj /TT0 1 Tf 4.615 0 Td (sysconf)Tj /T1_1 1 Tf (.)Tj -4.615 -1.8 Td [(IPP )-71(is )-71(de\336ned )-71(to )-71(use )-71(port )-71(631.)-570(The)]TJ /TT0 1 Tf 16.114 0 Td (QLEN)Tj /T1_1 1 Tf 2.721 0 Td [(is )-71(the )-71(backlog )-71(parameter )-71(we )-71(pass )-71(to)]TJ /TT0 1 Tf -18.835 -1.2 Td (listen)Tj /T1_1 1 Tf 3.85 0 Td (\(see Section 16.4 for details\).)Tj -7.85 -1.72 Td [([35 )167(\320 )167(37])-668(Some )-123(platforms )-123(don\325t )-123(de\336ne )-123(the )-123(err)17(or)]TJ /TT0 1 Tf 21.649 0 Td (ETIME)Tj /T1_1 1 Tf [(,)-373(so)-373(we)-373(d)-1(e\336ne )-123(it )-123(to )-123(an )-123(alternate)]TJ -17.649 -1.2 Td [(err)18(or )-23(code )-23(that )-23(makes )-23(sense )-23(for )-23(these )-23(systems.)-523(This )-23(is )-23(the )-23(err)18(or )-23(code )-23(we )-23(r)15(eturn)]TJ 0 -1.2 Td [(when )-63(a )-63(r)18(ead )-63(times )-63(out )-63(\(we )-63(don\325t )-63(want )-63(the )-63(server )-63(to )-63(block )-63(inde\336nitely )-63(r)15(eading)]TJ T* [(fr)18(om a socket\).)]TJ -4 -1.72 Td [([38 )167(\320 )167(47])-668(Next, )-177(we )-177(declar)]TJ 0.4266 Tc 11.27 0 Td (ea)Tj 0 Tc 1.406 0 Td [(ll )-177(the )-177(public )-177(r)18(outines )-177(contained )-177(in)]TJ /TT0 1 Tf 16.174 0 Td (util.c)Tj /T1_1 1 Tf 4.027 0 Td [(\(we\325ll )-176(look )-176(at)]TJ -28.876 -1.2 Td [(these )-6(shortly\).)-506(Note )-6(that )-6(the)]TJ /TT0 1 Tf 12.825 0 Td (connect_retry)Tj /T1_1 1 Tf 8.056 0 Td [(function, )-6(fr)18(om )-6(Figur)]TJ 0.2558 Tc 8.991 0 Td (e1)Tj 0 Tc 1.235 0 Td [(6.1)55(1, )-6(and)]TJ -31.106 -1.2 Td (the)Tj /TT0 1 Tf 1.637 0 Td (initserver)Tj /T1_1 1 Tf 6.25 0 Td [(function, fr)18(om Figur)]TJ 0.25 Tc 8.979 0 Td (e1)Tj 0 Tc 1.229 0 Td (6.22, ar)Tj 0.25 Tc 3.127 0 Td (en)Tj 0 Tc 1.311 0 Td (ot included in)Tj /TT0 1 Tf 6.407 0 Td (util.c)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47188 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (622)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(Example )195(\321 )195(Connectionless)-279(Ser )268(ver)]TJ /T1_1 1 Tf 3.6 -1.68 Td [(The pr)18(ogram in Figur)]TJ 0.25 Tc 9.538 0 Td (e1)Tj 0 Tc 1.229 0 Td (6.20 is the datagram version of the)Tj /TT1 1 Tf 15.421 0 Td (uptime)Tj /T1_1 1 Tf 3.85 0 Td [(server)74(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6462.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 636.6226 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj T* (#include )Tj T* (#include )Tj 0 -1.783 TD [(#define BUFLEN)-3600(128)]TJ 0 -1.189 TD [(#define MAXADDRLEN)-1200(256)]TJ 0 -1.783 TD (#ifndef HOST_NAME_MAX)Tj 0 -1.189 TD (#define HOST_NAME_MAX 256)Tj T* (#endif)Tj 0 -1.783 TD (extern int initserver\(int, const struct sockaddr *, socklen_t, int\);)Tj 0 -1.783 TD (void)Tj 0 -1.189 TD (serve\(int sockfd\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td (n;)Tj -9.6 -1.189 Td [(socklen_t )-3600(alen;)]TJ T* (FILE )Tj 9.6 0 Td (*fp;)Tj -9.6 -1.189 Td (char )Tj 9.6 0 Td (buf[BUFLEN];)Tj -9.6 -1.189 Td (char )Tj 9.6 0 Td (abuf[MAXADDRLEN];)Tj -9.6 -1.189 Td (struct sockaddr *addr = \(struct sockaddr *\)abuf;)Tj 0 -1.783 TD (set_cloexec\(sockfd\);)Tj 0 -1.189 TD (for \(;;\) {)Tj 2.4 -1.189 Td (alen = MAXADDRLEN;)Tj T* (if \(\(n = recvfrom\(sockfd, buf, BUFLEN, 0, addr, &alen\)\) < 0\) {)Tj 2.4 -1.189 Td (syslog\(LOG_ERR, "ruptimed: recvfrom error: %s",)Tj 1.2 -1.189 Td (strerror\(errno\)\);)Tj -1.2 -1.189 Td (exit\(1\);)Tj -2.4 -1.189 Td (})Tj T* (if \(\(fp = popen\("/usr/bin/uptime", "r"\)\) == NULL\) {)Tj 2.4 -1.189 Td (sprintf\(buf, "error: %s\\n", strerror\(errno\)\);)Tj T* (sendto\(sockfd, buf, strlen\(buf\), 0, addr, alen\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (if \(fgets\(buf, BUFLEN, fp\) != NULL\))Tj 2.4 -1.189 Td (sendto\(sockfd, buf, strlen\(buf\), 0, addr, alen\);)Tj -2.4 -1.189 Td (pclose\(fp\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (struct addrinfo *ailist, *aip;)Tj T* (struct addrinfo hint;)Tj 0 -1.189 TD (int )Tj 9.6 0 Td [(sockfd,)-600(err, n;)]TJ -9.6 -1.189 Td (char )Tj 9.6 0 Td (*host;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47189 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (618)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 194.3883 670.2598 Tm (exit\(1\);)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (syslog\(LOG_ERR, "ruptimed: fork error: %s",)Tj 1.2 -1.189 Td (strerror\(errno\)\);)Tj -1.2 -1.189 Td (exit\(1\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(pid == 0\) {)-1200(/* child */)]TJ 0.6 -1.189 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*T)Tj 0 Tc 1.8 0 Td (he parent called daemonize \(Figure 13.1\), so)Tj 0.6 Tc -1.8 -1.189 Td (*S)Tj 0 Tc 1.8 0 Td (TDIN_FILENO, STDOUT_FILENO, and STDERR_FILENO)Tj 0.6 Tc -1.8 -1.189 Td (*a)Tj 0 Tc 1.8 0 Td [(re already open to /dev/null.)-1200(Thus, the call to)]TJ 0.6 Tc -1.8 -1.189 Td (*c)Tj 0 Tc 1.8 0 Td (lose doesn\325t need to be protected by checks that)Tj 0.6 Tc -1.8 -1.189 Td (*c)Tj 0 Tc 1.8 0 Td (lfd isn\325t already equal to one of these values.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(dup2\(clfd, STDOUT_FILENO\) != STDOUT_FILENO ||)Tj 1.2 -1.189 Td (dup2\(clfd, STDERR_FILENO\) != STDERR_FILENO\) {)Tj 1.2 -1.189 Td (syslog\(LOG_ERR, "ruptimed: unexpected error"\);)Tj T* (exit\(1\);)Tj -2.4 -1.189 Td (})Tj T* (close\(clfd\);)Tj T* (execl\("/usr/bin/uptime", "uptime", \(char *\)0\);)Tj T* (syslog\(LOG_ERR, "ruptimed: unexpected return from exec: %s",)Tj 1.2 -1.189 Td (strerror\(errno\)\);)Tj 0.6 Tc -3.6 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse {)-4800(/* parent */)]TJ 0.6 -1.189 Td (close\(clfd\);)Tj T* (waitpid\(pid, &status, 0\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td (struct addrinfo *ailist, *aip;)Tj T* (struct addrinfo hint;)Tj T* (int )Tj 9.6 0 Td [(sockfd,)-600(err, n;)]TJ -9.6 -1.189 Td (char )Tj 9.6 0 Td (*host;)Tj -9.6 -2.021 Td (if \(argc != 1\))Tj 2.4 -1.189 Td (err_quit\("usage: ruptimed"\);)Tj -2.4 -1.189 Td (if \(\(n = sysconf\(_SC_HOST_NAME_MAX\)\) < 0\))Tj 0.6 Tc 2.4 -1.189 Td (n=H)Tj 0 Tc 3 0 Td [(OST_NAME_MAX; )-600(/*)-600(best guess */)]TJ -5.4 -1.189 Td (if \(\(host = malloc\(n\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("malloc error"\);)Tj -2.4 -1.189 Td (if \(gethostname\(host, n\) < 0\))Tj 2.4 -1.189 Td (err_sys\("gethostname error"\);)Tj -2.4 -1.189 Td (daemonize\("ruptimed"\);)Tj 0 -1.189 TD (memset\(&hint, 0, sizeof\(hint\)\);)Tj 0 -1.189 TD (hint.ai_flags = AI_CANONNAME;)Tj T* (hint.ai_socktype = SOCK_STREAM;)Tj T* (hint.ai_canonname = NULL;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47190 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (616)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 194.3883 670.2598 Tm (sprintf\(buf, "error: %s\\n", strerror\(errno\)\);)Tj 0 -1.189 TD (send\(clfd, buf, strlen\(buf\), 0\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (while \(fgets\(buf, BUFLEN, fp\) != NULL\))Tj 2.4 -1.189 Td (send\(clfd, buf, strlen\(buf\), 0\);)Tj -2.4 -1.189 Td (pclose\(fp\);)Tj -2.4 -1.189 Td (})Tj T* (close\(clfd\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td (struct addrinfo *ailist, *aip;)Tj T* (struct addrinfo hint;)Tj T* (int )Tj 9.6 0 Td [(sockfd,)-600(err, n;)]TJ -9.6 -1.189 Td (char )Tj 9.6 0 Td (*host;)Tj -9.6 -1.902 Td (if \(argc != 1\))Tj 2.4 -1.189 Td (err_quit\("usage: ruptimed"\);)Tj -2.4 -1.189 Td (if \(\(n = sysconf\(_SC_HOST_NAME_MAX\)\) < 0\))Tj 0.6 Tc 2.4 -1.189 Td (n=H)Tj 0 Tc 3 0 Td [(OST_NAME_MAX; )-600(/*)-600(best guess */)]TJ -5.4 -1.189 Td (if \(\(host = malloc\(n\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("malloc error"\);)Tj -2.4 -1.189 Td (if \(gethostname\(host, n\) < 0\))Tj 2.4 -1.189 Td (err_sys\("gethostname error"\);)Tj -2.4 -1.189 Td (daemonize\("ruptimed"\);)Tj T* (memset\(&hint, 0, sizeof\(hint\)\);)Tj 0 -1.189 TD (hint.ai_flags = AI_CANONNAME;)Tj 0 -1.189 TD (hint.ai_socktype = SOCK_STREAM;)Tj T* (hint.ai_canonname = NULL;)Tj T* (hint.ai_addr = NULL;)Tj T* (hint.ai_next = NULL;)Tj T* (if \(\(err = getaddrinfo\(host, "ruptime", &hint, &ailist\)\) != 0\) {)Tj 2.4 -1.189 Td (syslog\(LOG_ERR, "ruptimed: getaddrinfo error: %s",)Tj 1.2 -1.189 Td (gai_strerror\(err\)\);)Tj -1.2 -1.189 Td (exit\(1\);)Tj -2.4 -1.189 Td (})Tj T* (for \(aip = ailist; aip != NULL; aip = aip->ai_next\) {)Tj 2.4 -1.189 Td (if \(\(sockfd = initserver\(SOCK_STREAM, aip->ai_addr,)Tj 1.2 -1.189 Td (aip->ai_addrlen, QLEN\)\) >= 0\) {)Tj 1.2 -1.189 Td (serve\(sockfd\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj T* (exit\(1\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1711.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 225.5409 155.1404 Tm (Figure 16.17)Tj /T1_1 1 Tf 6.195 0 Td [(Server pr)18(ogram to pr)18(ovide system uptime)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47191 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.3)]TJ 38.7 0 Td [(Addr)18(essing)]TJ /T1_1 1 Tf 7.133 0 Td (603)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm (void)Tj 0 -1.189 TD (print_flags\(struct addrinfo *aip\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("flags"\);)Tj T* (if \(aip->ai_flags == 0\) {)Tj 2.4 -1.189 Td (printf\(" 0"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (if \(aip->ai_flags & AI_PASSIVE\))Tj 2.4 -1.189 Td (printf\(" passive"\);)Tj -2.4 -1.189 Td (if \(aip->ai_flags & AI_CANONNAME\))Tj 2.4 -1.189 Td (printf\(" canon"\);)Tj -2.4 -1.189 Td (if \(aip->ai_flags & AI_NUMERICHOST\))Tj 2.4 -1.189 Td (printf\(" numhost"\);)Tj -2.4 -1.189 Td (if \(aip->ai_flags & AI_NUMERICSERV\))Tj 2.4 -1.189 Td (printf\(" numserv"\);)Tj -2.4 -1.189 Td (if \(aip->ai_flags & AI_V4MAPPED\))Tj 2.4 -1.189 Td (printf\(" v4mapped"\);)Tj -2.4 -1.189 Td (if \(aip->ai_flags & AI_ALL\))Tj 2.4 -1.189 Td (printf\(" all"\);)Tj -4.8 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(struct addrinfo)-3000(*ailist, *aip;)]TJ T* [(struct addrinfo)-3000(hint;)]TJ 0 -1.189 TD [(struct sockaddr_in)-1200(*sinp;)]TJ 0 -1.189 TD (const char)Tj 12 0 Td (*addr;)Tj -12 -1.189 Td (int )Tj 12 0 Td (err;)Tj -12 -1.189 Td (char )Tj 12 0 Td (abuf[INET_ADDRSTRLEN];)Tj -12 -2.14 Td (if \(argc != 3\))Tj 2.4 -1.189 Td (err_quit\("usage: %s nodename service", argv[0]\);)Tj -2.4 -1.189 Td (hint.ai_flags = AI_CANONNAME;)Tj 0 -1.189 TD (hint.ai_family = 0;)Tj T* (hint.ai_socktype = 0;)Tj T* (hint.ai_protocol = 0;)Tj T* (hint.ai_addrlen = 0;)Tj T* (hint.ai_canonname = NULL;)Tj T* (hint.ai_addr = NULL;)Tj T* (hint.ai_next = NULL;)Tj 0 -1.189 TD (if \(\(err = getaddrinfo\(argv[1], argv[2], &hint, &ailist\)\) != 0\))Tj 2.4 -1.189 Td (err_quit\("getaddrinfo error: %s", gai_strerror\(err\)\);)Tj -2.4 -1.189 Td (for \(aip = ailist; aip != NULL; aip = aip->ai_next\) {)Tj 2.4 -1.189 Td (print_flags\(aip\);)Tj 0 -1.189 TD (print_family\(aip\);)Tj T* (print_type\(aip\);)Tj T* (print_protocol\(aip\);)Tj T* (printf\("\\n\\thost %s", aip->ai_canonname?aip->ai_canonname:"-"\);)Tj T* (if \(aip->ai_family == AF_INET\) {)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47192 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.3)]TJ 38.7 0 Td [(Addr)18(essing)]TJ /T1_1 1 Tf 7.133 0 Td (599)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(number )-536(with)]TJ /TT0 1 Tf 7.1 0 Td (getservbyname)Tj /T1_0 1 Tf 0.7862 Tc (,m)Tj 0 Tc 9.719 0 Td [(ap )-536(a )-536(port )-536(number )-536(to )-536(a )-536(service )-536(name )-536(with)]TJ /TT0 1 Tf -16.82 -1.2 Td (getservbyport)Tj /T1_0 1 Tf [(,)-250(or)-250(scan the services database sequentially with)]TJ /TT0 1 Tf 29.137 0 Td (getservent)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 636.6618 Tm (#include )Tj 0 -2.14 TD (struct servent *getservbyname\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 29.167 0 Td (onst char *)Tj /T1_2 1 Tf [(pr)18(oto)]TJ /TT0 1 Tf (\);)Tj -29.167 -2.14 Td (struct servent *getservbyport\(int)Tj /T1_2 1 Tf 20.4 0 Td (port)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.466 0 Td (onst char *)Tj /T1_2 1 Tf [(pr)18(oto)]TJ /TT0 1 Tf (\);)Tj -23.866 -2.14 Td (struct servent *getservent\(void\);)Tj /T1_0 1 Tf 21.885 -2.14 Td [(All r)18(eturn: pointer if OK,)]TJ /TT0 1 Tf 11.228 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -35.763 -2.14 Td (void setservent\(int)Tj /T1_2 1 Tf 12 0 Td (stayopen)Tj /TT0 1 Tf (\);)Tj -12 -2.14 Td (void endservent\(void\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5166.25 cm 0 0 m 0 1291 l 3900 1291 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 499.4801 Tm (The)Tj /TT0 1 Tf 1.924 0 Td (servent)Tj /T1_0 1 Tf 4.45 0 Td [(str)8(uctur)18(e)-250(is)-250(de\336ned to have at least the following members:)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5821 482.7817 Tm (struct servent {)Tj 1.2 -1.189 Td [(char )-1200(*s_name;)-3000(/* service name */)]TJ 0 -1.189 TD [(char )-600(**s_aliases; )-600(/*)-600(pointer to alternate service name array */)]TJ 0 -1.189 TD [(int )-2400(s_port; )-2400(/*)-600(port number */)]TJ 0 -1.189 TD [(char )-1200(*s_proto;)-2400(/* name of protocol */)]TJ 0 -1.189 TD (.)Tj 0 -0.476 TD (.)Tj 0 -0.476 TD (.)Tj -1.2 -1.189 Td (};)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 147.5821 392.0332 Tm [(POSIX.1 )-91(de\336nes )-91(several )-91(new )-91(functions )-91(to )-91(allow )-91(an )-91(application )-91(to )-91(map )-91(fr)20(om )-91(a )-91(host)]TJ -1.8 -1.2 Td [(name )-151(and )-151(a )-151(service )-151(name )-151(to )-151(an )-151(addr)18(ess, )-151(and )-151(vice )-151(versa.)-651(These )-151(functions )-151(r)18(eplace )-151(the)]TJ 0 -1.2 TD (older)Tj /TT0 1 Tf 2.572 0 Td (gethostbyname)Tj /T1_0 1 Tf 8.05 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (gethostbyaddr)Tj /T1_0 1 Tf 8.05 0 Td (functions.)Tj -18.815 -1.2 Td (The)Tj /TT0 1 Tf 1.938 0 Td (getaddrinfo)Tj /T1_0 1 Tf 6.864 0 Td [(function )-14(allows )-14(us )-14(to )-14(map )-14(a )-14(host )-14(name )-14(and )-14(a )-14(service )-14(name )-14(to )-14(an)]TJ -10.602 -1.2 Td [(addr)18(ess.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.582 323.7413 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD (int getaddrinfo\(const char *restrict)Tj /T1_2 1 Tf 22.2 0 Td (host)Tj /TT0 1 Tf (,)Tj -12.6 -1.189 Td (const char *restrict)Tj /T1_2 1 Tf 12.6 0 Td (service)Tj /TT0 1 Tf (,)Tj -12.6 -1.189 Td (const struct addrinfo *restrict)Tj /T1_2 1 Tf 19.2 0 Td (hint)Tj /TT0 1 Tf (,)Tj -19.2 -1.189 Td (struct addrinfo **restrict)Tj /T1_2 1 Tf -0.018 Tc 16.2 0 Td (re)Tj 0 Tc 0.76 0 Td (s)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -7.044 -2.14 Td (Returns: 0 if OK, nonzer)Tj 0.25 Tc 10.679 0 Td (oe)Tj 0 Tc 1.275 0 Td [(rr)18(or code on err)18(or)]TJ /TT0 1 Tf -31.47 -2.14 Td (void freeaddrinfo\(struct addrinfo *)Tj /T1_2 1 Tf (ai)Tj /TT0 1 Tf (\);)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2187.25 cm 0 0 m 0 1141 l 3900 1141 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9982 0 0 9.9982 129.5767 201.5637 Tm [(We )-279(n)]TJ 0 Tc 2.314 0 Td [(eed )-95(to )-95(pr)18(ovide )-95(the )-95(host )-95(name, )-95(the )-95(service )-95(name, )-95(or )-95(both.)-595(If )-95(we )-95(pr)18(ovide )-95(only )-95(one)]TJ -2.314 -1.2 Td [(name, )-66(the )-66(other )-66(should )-66(be )-66(a )-66(null )-66(pointer)]TJ 0.5665 Tc 18.126 0 Td (.T)Tj 0 Tc 1.429 0 Td [(he )-66(host )-66(name )-66(can )-66(be )-66(either )-66(a )-66(node )-66(name )-66(or)]TJ -19.556 -1.2 Td [(the host addr)18(ess in dotted-decimal notation.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.029 0 Td (getaddrinfo)Tj /T1_0 1 Tf 6.955 0 Td [(function )-105(r)18(eturns )-105(a )-105(linked )-105(list )-105(of)]TJ /TT0 1 Tf 14.545 0 Td (addrinfo)Tj /T1_0 1 Tf 5.155 0 Td [(str)8(uctur)18(es. )-355(W)]TJ 0.3551 Tc 6.156 0 Td (ec)Tj 0 Tc 1.278 0 Td (an)Tj -37.918 -1.2 Td (use)Tj /TT0 1 Tf 1.868 0 Td (freeaddrinfo)Tj /T1_0 1 Tf 7.562 0 Td [(to )-112(fr)18(ee )-112(one )-112(or )-112(mor)18(e)-362(of)-362(these )-112(str)8(uctur)18(es, )-112(depending )-112(on )-112(how )-112(many)]TJ -9.43 -1.2 Td [(str)8(uctur)18(es ar)]TJ 0.25 Tc 5.52 0 Td (el)Tj 0 Tc 1.02 0 Td (inked together using the)Tj /TT0 1 Tf 11.051 0 Td (ai_next)Tj /T1_0 1 Tf 4.45 0 Td [(\336eld in the str)8(uctur)18(es.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47193 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (831)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(581 )-1200(/*)]TJ 0 -1.189 TD [(582 )-1800(*)-600(Add an option to the IPP header.)]TJ T* [(583 )-1800(*)]TJ T* [(584 )-1800(*)-600(LOCKING: none.)]TJ T* [(585 )-1800(*/)]TJ 0 -1.189 TD [(586 )-1200(char)-600(*)]TJ 0 -1.189 TD [(587 )-1200(add_option\(char)-600(*cp, int tag, char *optname, char *optval\))]TJ T* [(588 )-1200({)]TJ T* [(589 )-2400(int )-2400(n;)]TJ T* [(590 )-2400(union)-600({)]TJ T* [(591 )-4800(int16_t)-600(s;)]TJ T* [(592 )-4800(char)-600(c[2];)]TJ T* [(593 )-2400(})-4200(u;)]TJ 0 -2.021 TD [(594 )-2400(*cp++)]TJ 0.6 Tc 8.4 0 Td (=t)Tj 0 Tc 1.8 0 Td (ag;)Tj -10.2 -1.189 Td [(595 )-2400(n)]TJ 0.6 Tc 6 0 Td (=s)Tj 0 Tc 1.8 0 Td (trlen\(optname\);)Tj -7.8 -1.189 Td [(596 )-2400(u.s)]TJ 0.6 Tc 7.2 0 Td (=h)Tj 0 Tc 1.8 0 Td (tons\(n\);)Tj -9 -1.189 Td [(597 )-2400(*cp++)]TJ 0.6 Tc 8.4 0 Td (=u)Tj 0 Tc 1.8 0 Td (.c[0];)Tj -10.2 -1.189 Td [(598 )-2400(*cp++)]TJ 0.6 Tc 8.4 0 Td (=u)Tj 0 Tc 1.8 0 Td (.c[1];)Tj -10.2 -1.189 Td [(599 )-2400(strcpy\(cp,)-600(optname\);)]TJ 0 -1.189 TD [(600 )-2400(cp)-600(+= n;)]TJ T* [(601 )-2400(n)]TJ 0.6 Tc 6 0 Td (=s)Tj 0 Tc 1.8 0 Td (trlen\(optval\);)Tj -7.8 -1.189 Td [(602 )-2400(u.s)]TJ 0.6 Tc 7.2 0 Td (=h)Tj 0 Tc 1.8 0 Td (tons\(n\);)Tj -9 -1.189 Td [(603 )-2400(*cp++)]TJ 0.6 Tc 8.4 0 Td (=u)Tj 0 Tc 1.8 0 Td (.c[0];)Tj -10.2 -1.189 Td [(604 )-2400(*cp++)]TJ 0.6 Tc 8.4 0 Td (=u)Tj 0 Tc 1.8 0 Td (.c[1];)Tj -10.2 -1.189 Td [(605 )-2400(strcpy\(cp,)-600(optval\);)]TJ T* [(606 )-2400(return\(cp)]TJ 0.6 Tc 10.8 0 Td (+n)Tj 0 Tc 1.8 0 Td (\);)Tj -12.6 -1.189 Td [(607 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 344.9666 Tm [([581 )167(\320 )167(593])-668(The)]TJ /TT0 1 Tf 7.031 0 Td (add_option)Tj /T1_0 1 Tf 6.357 0 Td [(function )-106(is )-106(used )-106(to )-106(add )-106(an )-106(option )-106(to )-106(the )-106(IPP )-106(header )-106(that)]TJ -8.387 -1.2 Td [(we )-25(build )-25(to )-25(send )-25(to )-25(the )-25(printer)]TJ 0.5251 Tc 13.535 0 Td (.R)Tj 0 Tc 1.443 0 Td [(ecall )-25(fr)18(om )-25(Figur)]TJ 0.2751 Tc 7.077 0 Td (e2)Tj 0 Tc 1.254 0 Td [(1.4 )-25(that )-25(the )-25(format )-25(of )-25(an)]TJ -23.309 -1.2 Td [(attribute )-68(is )-68(a )-68(1)]TJ 6.469 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-68(tag )-68(describing )-68(the )-68(type )-68(of )-68(the )-68(attribute, )-68(followed )-68(by )-68(the)]TJ -6.802 -1.2 Td [(length )-32(of )-32(the )-32(attribute )-32(name )-32(stor)18(ed )-32(in )-32(binary )-32(as )-32(a )-32(2)]TJ 22.582 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-32(integer)]TJ 0.2821 Tc 5.23 0 Td (,f)Tj 0 Tc 0.865 0 Td [(ollowed )-32(by)]TJ -29.011 -1.2 Td (the name, the size of the attribute value, and \336nally the value itsel\ f.)Tj 0 -1.56 TD [(IPP )-342(makes )-342(no )-342(attempt )-342(to )-342(contr)20(ol )-342(the )-342(alignment )-342(of )-342(the )-342(binary )-342(integers)]TJ 0 -1.2 TD [(embedded )-68(in )-68(the )-68(header)]TJ 0.5685 Tc 10.894 0 Td (.S)Tj 0 Tc 1.344 0 Td [(ome )-68(pr)18(ocessor )-68(ar)17(chitectur)18(es, )-68(such )-68(as )-68(the )-68(SP)90(ARC,)]TJ -12.237 -1.2 Td [(can\325t )-143(load )-143(an )-143(integer )-143(fr)18(om )-143(an )-143(arbitrary )-143(addr)16(ess. )-393(This)-393(means )-143(that )-143(we )-143(can\325t)]TJ T* (stor)Tj 0.4876 Tc 1.673 0 Td (et)Tj 0 Tc 1.293 0 Td [(he )-238(integers )-238(in )-238(the )-238(header )-238(by )-238(casting )-238(a )-238(pointer )-238(to)]TJ /TT0 1 Tf 23.6 0 Td (int16_t)Tj /T1_0 1 Tf 4.688 0 Td [(to )-238(the)]TJ -31.253 -1.2 Td [(addr)18(ess )-57(in )-57(the )-57(header )-57(wher)]TJ 0.3068 Tc 12.231 0 Td (et)Tj 0 Tc 1.112 0 Td [(he )-57(integer )-57(is )-57(to )-57(be )-57(stor)19(ed. )-307(Instead,)-307(we )-57(need )-57(to)]TJ -13.343 -1.2 Td [(copy )-327(the )-327(integer )-327(1 )-327(byte )-327(at )-327(a )-327(time.)-831(This )-328(is )-328(why )-328(we )-328(de\336ne )-328(the)]TJ /TT0 1 Tf 31 0 Td (union)Tj /T1_0 1 Tf -31 -1.2 Td (containing a 16)Tj 6.7 0.09 Td (-)Tj 0.333 -0.09 Td (bit integer and 2 bytes.)Tj -12.033 -1.6 Td [([594 )167(\320 )167(607])]TJ -0.092 Tc 5 0 Td [(We )-186(s)]TJ 0 Tc 2.063 0 Td (tor)Tj 0.2515 Tc 1.249 0 Td (et)Tj 0 Tc 1.056 0 Td [(he )-1(tag )-1(in )-1(the )-1(header )-1(and )-1(convert )-1(the )-1(length )-1(of )-1(the )-1(attribute )-1(name )-1(to)]TJ -4.368 -1.2 Td [(network )-23(byte )-23(or)19(der)]TJ 0.5227 Tc 8.511 0 Td (.W)Tj 0.2727 Tc 1.681 0 Td (ec)Tj 0 Tc 1.196 0 Td [(opy )-23(the )-23(length )-23(1 )-23(byte )-23(at )-23(a )-23(time )-23(to )-23(the )-23(header)]TJ 0.5228 Tc 19.583 0 Td (.T)Tj 0 Tc 1.386 0 Td (hen)Tj -32.357 -1.2 Td [(we )-120(copy )-120(the )-120(attribute )-120(name.)]TJ -0.092 Tc 13.442 0 Td [(We )-304(r)]TJ 0 Tc 2.134 0 Td [(epeat )-120(this )-120(pr)18(ocess )-120(for )-120(the )-120(attribute )-120(value)]TJ -15.577 -1.2 Td [(and )-231(r)18(eturn )-231(the )-231(addr)18(ess )-231(in )-231(the )-231(header )-231(wher)]TJ 0.4809 Tc 20.212 0 Td (et)Tj 0 Tc 1.286 0 Td [(he )-231(next )-231(part )-231(of )-231(the )-231(header)]TJ -21.497 -1.2 Td (should begin.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47194 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (834)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(672 )-4800(if)-600(\(\(sockfd = connect_retry\(AF_INET, SOCK_STREAM, 0,)]TJ 0 -1.189 TD (673 )Tj 8.4 0 Td [(printer->ai_addr,)-600(printer->ai_addrlen\)\) < 0\) {)]TJ -8.4 -1.189 Td (674 )Tj 9.6 0 Td [(log_msg\("job)-600(%d deferred - can\325t contact printer: %s",)]TJ -9.6 -1.189 Td (675 )Tj 10.8 0 Td [(jp->jobid,)-600(strerror\(errno\)\);)]TJ -10.8 -1.189 Td (676 )Tj 9.6 0 Td [(goto)-600(defer;)]TJ -9.6 -1.189 Td [(677 )-4800(})]TJ 0 -2.021 TD [(678 )-4800(/*)]TJ 0 -1.189 TD (679 )Tj 7.8 0 Td [(*)-600(Set up the IPP header.)]TJ -7.8 -1.189 Td (680 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(681 )-4800(icp)]TJ 0.6 Tc 9.6 0 Td (=i)Tj 0 Tc 1.8 0 Td (buf;)Tj -11.4 -1.189 Td [(682 )-4800(hp)]TJ 0.6 Tc 9 0 Td (=\()Tj 0 Tc 1.8 0 Td (struct ipp_hdr *\)icp;)Tj -10.8 -1.189 Td [(683 )-4800(hp->major_version)]TJ 0.6 Tc 18 0 Td (=1)Tj 0 Tc 1.8 0 Td (;)Tj -19.8 -1.189 Td [(684 )-4800(hp->minor_version)]TJ 0.6 Tc 18 0 Td (=1)Tj 0 Tc 1.8 0 Td (;)Tj -19.8 -1.189 Td [(685 )-4800(hp->operation)]TJ 0.6 Tc 15.6 0 Td (=h)Tj 0 Tc 1.8 0 Td (tons\(OP_PRINT_JOB\);)Tj -17.4 -1.189 Td [(686 )-4800(hp->request_id)]TJ 0.6 Tc 16.2 0 Td (=h)Tj 0 Tc 1.8 0 Td (tonl\(jp->jobid\);)Tj -18 -1.189 Td [(687 )-4800(icp)-600(+= offsetof\(struct ipp_hdr, attr_group\);)]TJ T* [(688 )-4800(*icp++)]TJ 0.6 Tc 11.4 0 Td (=T)Tj 0 Tc 1.8 0 Td (AG_OPERATION_ATTR;)Tj -13.2 -1.189 Td [(689 )-4800(icp)]TJ 0.6 Tc 9.6 0 Td (=a)Tj 0 Tc 1.8 0 Td (dd_option\(icp, TAG_CHARSET, "attributes-charset",)Tj -11.4 -1.189 Td (690 )Tj 8.4 0 Td ("utf-8"\);)Tj -8.4 -1.189 Td [(691 )-4800(icp)]TJ 0.6 Tc 9.6 0 Td (=a)Tj 0 Tc 1.8 0 Td (dd_option\(icp, TAG_NATULANG,)Tj -11.4 -1.189 Td (692 )Tj 8.4 0 Td [("attributes-natural-language",)-600("en-us"\);)]TJ -8.4 -1.189 Td [(693 )-4800(sprintf\(str,)-600("http://%s/ipp", printer_name\);)]TJ T* [(694 )-4800(icp)]TJ 0.6 Tc 9.6 0 Td (=a)Tj 0 Tc 1.8 0 Td (dd_option\(icp, TAG_URI, "printer-uri", str\);)Tj -11.4 -1.189 Td [(695 )-4800(icp)]TJ 0.6 Tc 9.6 0 Td (=a)Tj 0 Tc 1.8 0 Td (dd_option\(icp, TAG_NAMEWOLANG,)Tj -11.4 -1.189 Td (696 )Tj 8.4 0 Td [("requesting-user-name",)-600(jp->req.usernm\);)]TJ -8.4 -1.189 Td [(697 )-4800(icp)]TJ 0.6 Tc 9.6 0 Td (=a)Tj 0 Tc 1.8 0 Td (dd_option\(icp, TAG_NAMEWOLANG, "job-name",)Tj -11.4 -1.189 Td (698 )Tj 8.4 0 Td (jp->req.jobnm\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 344.9666 Tm [([672 )167(\320 )167(677])]TJ -0.092 Tc 5 0 Td [(We )-301(o)]TJ 0 Tc 2.3 0 Td [(pen )-117(a )-117(str)18(eam )-117(socket )-117(connected )-117(to )-117(the )-117(printer)]TJ 0.617 Tc 20.242 0 Td (.I)Tj 0.367 Tc 1.204 0 Td (ft)Tj 0 Tc 1.026 0 Td (he)Tj /TT0 1 Tf 1.428 0 Td (connect_retry)Tj /T1_1 1 Tf -26.2 -1.2 Td [(call )-106(fails, )-106(we )-106(jump )-106(down )-106(to)]TJ /TT0 1 Tf 12.832 0 Td (defer)Tj /T1_1 1 Tf 0.3564 Tc (,w)Tj 0 Tc 4.44 0 Td (her)Tj 0.3564 Tc 1.438 0 Td (ew)Tj 0.3563 Tc 1.669 0 Td (ew)Tj 0 Tc 1.669 0 Td [(ill )-106(clean )-106(up, )-106(delay)]TJ 0.3563 Tc 8.018 0 Td (,a)Tj 0 Tc 1.106 0 Td [(nd )-106(try)]TJ -31.174 -1.2 Td [(again later)74(.)]TJ -5 -1.72 Td [([678 )167(\320 )167(698])-668(Next, )-21(we )-21(set )-21(up )-21(the )-21(IPP )-21(header)]TJ 0.5208 Tc 18.677 0 Td (.T)Tj 0 Tc 1.384 0 Td [(he )-21(operation )-21(is )-21(a )-21(print-job )-21(r)19(equest. )-271(W)]TJ 0.2708 Tc 16.684 0 Td (eu)Tj 0 Tc 1.353 0 Td (se)Tj /TT0 1 Tf -33.097 -1.2 Td (htons)Tj /T1_1 1 Tf 3.363 0 Td [(to )-113(convert )-113(the )-113(2)]TJ 7.184 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-113(operation )-113(ID )-113(fr)18(om )-113(host )-113(to )-113(network )-113(byte )-113(or)21(der)]TJ -10.879 -1.2 Td (and)Tj /TT0 1 Tf 2.109 0 Td (htonl)Tj /T1_1 1 Tf 3.416 0 Td [(to )-166(convert )-166(the )-166(4)]TJ 7.346 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-166(job )-166(ID )-166(fr)17(om )-167(host )-167(to )-167(network )-167(byte )-167(or)20(der)74(.)]TJ -13.205 -1.2 Td [(After )-113(the )-113(initial )-113(portion )-113(of )-113(the )-113(header)76(,)-363(we)-363(s)1(et )-112(the )-112(tag )-112(value )-112(to )-112(indicate )-112(that)]TJ -0 -1.2 Td [(operation )-177(attributes )-177(follow)]TJ 0.6773 Tc 12.093 0 Td (.W)Tj 0.4273 Tc 1.835 0 Td (ec)Tj 0 Tc 1.35 0 Td (all)Tj /TT0 1 Tf 1.509 0 Td (add_option)Tj /T1_1 1 Tf 6.427 0 Td [(to )-177(add )-177(attributes )-177(to )-177(the)]TJ -23.215 -1.2 Td [(message. )-349(Figur)]TJ 0.3489 Tc 6.977 0 Td (e2)Tj 0 Tc 1.328 0 Td [(1.5 )-99(lists )-99(the )-99(r)18(equir)18(ed )-99(and )-99(optional )-99(attributes )-99(for )-99(print-job)]TJ -0.018 Tc -8.305 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quests; )-247(the )-247(\336rst )-247(thr)18(ee )-247(ar)]TJ 0.4971 Tc 11.311 0 Td (er)Tj 0 Tc 1.353 0 Td [(equir)18(ed. )-497(W)]TJ 0.4971 Tc 5.305 0 Td (es)Tj 0 Tc 1.4 0 Td [(pecify )-247(the )-247(character )-247(set )-247(to )-247(be)]TJ -20.225 -1.2 Td (UTF)Tj 1.947 0.09 Td (-)Tj 0.333 -0.09 Td [(8, )-60(which )-60(the )-60(printer )-60(must )-60(support.)]TJ -0.092 Tc 16.029 0 Td [(We )-244(s)]TJ 0 Tc 2.121 0 Td [(pecify )-60(the )-60(language )-60(as)]TJ /TT0 1 Tf 10.32 0 Td (en-us)Tj /T1_1 1 Tf (,)Tj -30.75 -1.2 Td [(which )-266(r)18(epr)18(esents )-266(U.S. )-266(English.)-766(Another )-266(r)18(equir)18(ed )-266(attribute )-266(is )-266(the )-266(printer)]TJ 0 -1.2 Td [(Universal )-61(Resour)18(ce )-61(Identi\336er)]TJ 13.364 0.04 Td (\()Tj 0.333 -0.04 Td (URI)Tj 1.783 0.04 Td (\))Tj 0.333 -0.04 Td [(;)-311(we)-311(set )-61(it )-61(to)]TJ /TT0 1 Tf 5.837 0 Td (http://)Tj /T1_2 1 Tf (printer_name)Tj /TT0 1 Tf (/ipp)Tj /T1_1 1 Tf (.)Tj -21.649 -1.8 Td (The)Tj /TT0 1 Tf 1.992 0 Td (requesting-user-name)Tj /T1_1 1 Tf 12.318 0 Td [(attribute )-68(is )-68(r)18(ecommended, )-68(but )-68(not )-68(r)18(equir)18(ed.)]TJ -14.31 -1.2 Td (The)Tj /TT0 1 Tf 1.981 0 Td (job-name)Tj /T1_1 1 Tf 5.107 0 Td [(attribute )-57(is )-57(optional.)-557(Recall )-57(that )-57(the)]TJ /TT0 1 Tf 16.331 0 Td (print)Tj /T1_1 1 Tf 3.307 0 Td [(command )-57(sends)]TJ -26.724 -1.2 Td [(the )-172(name )-172(of )-172(the )-172(\336le )-172(being )-172(printed )-172(as )-172(the )-172(job )-172(name, )-172(which )-172(can )-172(help )-172(users)]TJ 0 -1.2 TD (distinguish among multiple pending jobs.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47195 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (820)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(225 )-1200(/*)]TJ 0 -1.189 TD [(226 )-1800(*)-600(Get the next job number.)]TJ T* [(227 )-1800(*)]TJ T* [(228 )-1800(*)-600(LOCKING: acquires and releases joblock.)]TJ T* [(229 )-1800(*/)]TJ 0 -1.189 TD [(230 )-1200(int32_t)]TJ 0 -1.189 TD [(231 )-1200(get_newjobno\(void\))]TJ T* [(232 )-1200({)]TJ T* [(233 )-2400(int32_t)-600(jobid;)]TJ 0 -2.14 TD [(234 )-2400(pthread_mutex_lock\(&joblock\);)]TJ 0 -1.189 TD [(235 )-2400(jobid)]TJ 0.6 Tc 8.4 0 Td (=n)Tj 0 Tc 1.8 0 Td (extjob++;)Tj -10.2 -1.189 Td [(236 )-2400(if)-600(\(nextjob <= 0\))]TJ T* [(237 )-4800(nextjob)]TJ 0.6 Tc 12 0 Td (=1)Tj 0 Tc 1.8 0 Td (;)Tj -13.8 -1.189 Td [(238 )-2400(pthread_mutex_unlock\(&joblock\);)]TJ T* [(239 )-2400(return\(jobid\);)]TJ T* [(240 )-1200(})]TJ 0 -2.14 TD [(241 )-1200(/*)]TJ 0 -1.189 TD [(242 )-1800(*)-600(Add a new job to the list of pending jobs.)-1200(Then signal)]TJ T* [(243 )-1800(*)-600(the printer thread that a job is pending.)]TJ T* [(244 )-1800(*)]TJ 0 -1.189 TD [(245 )-1800(*)-600(LOCKING: acquires and releases joblock.)]TJ 0 -1.189 TD [(246 )-1800(*/)]TJ T* [(247 )-1200(void)]TJ T* [(248 )-1200(add_job\(struct)-600(printreq *reqp, int32_t jobid\))]TJ T* [(249 )-1200({)]TJ T* [(250 )-2400(struct)-600(job )-600(*jp;)]TJ 0 -2.14 TD [(251 )-2400(if)-600(\(\(jp = malloc\(sizeof\(struct job\)\)\) == NULL\))]TJ 0 -1.189 TD [(252 )-4800(log_sys\("malloc)-600(failed"\);)]TJ 0 -1.189 TD [(253 )-2400(memcpy\(&jp->req,)-600(reqp, sizeof\(struct printreq\)\);)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3294.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 305.3814 Tm [([225 )167(\320 )167(240])-668(The)]TJ /TT0 1 Tf 7.063 0 Td (get_newjobno)Tj /T1_1 1 Tf 7.589 0 Td [(function )-139(is )-139(used )-139(to )-139(get )-139(the )-139(next )-139(job )-139(number)]TJ 0.6395 Tc 19.931 0 Td (.W)Tj 0.3895 Tc 1.798 0 Td (e\336)Tj 0 Tc 1.474 0 Td (rst)Tj -32.855 -1.2 Td [(lock )-104(the)]TJ /TT0 1 Tf 3.932 0 Td (joblock)Tj /T1_1 1 Tf 4.554 0 Td [(mutex. )-354(W)]TJ 0.354 Tc 4.569 0 Td (ei)Tj 0 Tc 1.124 0 Td [(ncr)18(ement )-104(the)]TJ /TT0 1 Tf 6.247 0 Td (nextjob)Tj /T1_1 1 Tf 4.554 0 Td [(variable )-104(and )-104(handle)]TJ -24.98 -1.2 Td [(the )-81(case )-81(wher)19(e)-331(it)-331(w)1(raps )-81(ar)18(ound. )-331(Then)-330(we )-81(unlock )-81(the )-81(mutex )-81(and )-81(r)20(eturn )-81(the)]TJ 0 -1.2 TD (value)Tj /TT0 1 Tf 2.914 0 Td (nextjob)Tj /T1_1 1 Tf 4.676 0 Td [(had )-226(befor)18(e)-476(we)-476(incr)18(emented )-226(it.)-726(Multiple )-226(thr)18(eads )-226(can )-226(call)]TJ /TT0 1 Tf -7.59 -1.2 Td (get_newjobno)Tj /T1_1 1 Tf 7.498 0 Td [(at )-48(the )-48(same )-48(time; )-48(we )-48(need )-48(to )-48(serialize )-48(access )-48(to )-48(the )-48(next )-48(job)]TJ -7.498 -1.2 Td [(number )-69(so )-69(that )-69(each )-69(thr)18(ead )-69(gets )-69(a )-69(unique )-69(job )-69(number)]TJ 0.5691 Tc 24.108 0 Td (.\()Tj 0 Tc 1.152 0 Td [(Refer )-69(to )-69(Figur)]TJ 0.319 Tc 6.247 0 Td (e1)Tj 0 Tc 1.243 0 Td (1.9)Tj -32.75 -1.2 Td [(to see what could happen if we don\325t serialize the thr)18(eads in this case.\))]TJ -5 -1.6 Td [([241 )167(\320 )167(253])-668(The)]TJ /TT0 1 Tf 7.004 0 Td (add_job)Tj /T1_1 1 Tf 4.531 0 Td [(function )-80(is )-80(used )-80(to )-80(add )-80(a )-80(new )-80(print )-80(r)14(equest )-81(to )-81(the )-81(end )-81(of )-81(the)]TJ -6.535 -1.2 Td [(list )-36(of )-36(pending )-36(print )-36(jobs.)]TJ -0.092 Tc 11.793 0 Td [(We )-220(s)]TJ 0 Tc 2.097 0 Td [(tart )-36(by )-36(allocating )-36(space )-36(for )-36(the)]TJ /TT0 1 Tf 13.806 0 Td (job)Tj /T1_1 1 Tf 2.086 0 Td [(str)8(uctur)18(e.)]TJ -29.781 -1.2 Td [(If )-12(this )-12(fails, )-12(we )-12(log )-12(an )-12(err)18(or )-12(message )-12(and )-12(exit.)-515(At )-12(this )-12(point, )-12(the )-12(print )-12(r)16(equest)]TJ T* [(is )-151(stor)18(ed )-151(safely )-151(on )-151(disk; )-151(when )-151(the )-151(printer )-151(spooling )-151(daemon )-151(is )-151(r)20(estarted, )-151(it)]TJ T* [(will )-16(pick )-16(the )-16(r)18(equest )-16(up.)-516(After )-16(we )-16(allocate )-16(memory )-16(for )-16(the )-16(new )-16(job, )-16(we )-16(copy)]TJ T* [(the )-269(r)18(equest )-269(str)8(uctur)]TJ 0.5192 Tc 9.163 0 Td (ef)Tj -0.018 Tc 1.331 0 Td (ro)Tj 0.5192 Tc 0.923 0 Td (mt)Tj 0 Tc 1.728 0 Td [(he )-269(client )-269(into )-269(the )-269(job )-269(str)7(uctur)18(e. )-519(Recall)-519(fr)18(om)]TJ /TT0 1 Tf -13.146 -1.2 Td (print.h)Tj /T1_1 1 Tf 4.479 0 Td [(that )-28(a)]TJ /TT0 1 Tf 2.791 0 Td (job)Tj /T1_1 1 Tf 2.079 0 Td [(str)8(uctur)]TJ 0.2785 Tc 3.49 0 Td (ec)Tj 0 Tc 1.201 0 Td [(onsists )-28(of )-28(a )-28(pair )-28(of )-28(list )-28(pointers, )-28(a )-28(job )-28(ID, )-28(and)]TJ 0.25 Tc -14.04 -1.2 Td (ac)Tj 0 Tc 1.194 0 Td (opy of the)Tj /TT0 1 Tf 4.719 0 Td (printreq)Tj /T1_1 1 Tf 5.05 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (es)Tj 0 Tc 1.153 0 Td (ent to us by the client)Tj /TT0 1 Tf 9.695 0 Td (print)Tj /T1_1 1 Tf 3.25 0 Td (command.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47196 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (823)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(318 )-2400(while)-600(\(\(entp = readdir\(dirp\)\) != NULL\) {)]TJ 0 -1.189 TD [(319 )-4800(/*)]TJ T* (320 )Tj 7.8 0 Td [(*)-600(Skip "." and "..")]TJ -7.8 -1.189 Td (321 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(322 )-4800(if)-600(\(strcmp\(entp->d_name, "."\) == 0 ||)]TJ 0 -1.189 TD (323 )Tj 8.4 0 Td [(strcmp\(entp->d_name,)-600(".."\) == 0\))]TJ -8.4 -1.189 Td (324 )Tj 9.6 0 Td (continue;)Tj -9.6 -1.783 Td [(325 )-4800(/*)]TJ 0 -1.189 TD (326 )Tj 7.8 0 Td [(*)-600(Read the request structure.)]TJ -7.8 -1.189 Td (327 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(328 )-4800(sprintf\(fname,)-600("%s/%s/%s", SPOOLDIR, REQDIR, entp->d_name\);)]TJ T* [(329 )-4800(if)-600(\(\(fd = open\(fname, O_RDONLY\)\) < 0\))]TJ T* (330 )Tj 9.6 0 Td (continue;)Tj -9.6 -1.189 Td [(331 )-4800(nr)]TJ 0.6 Tc 9 0 Td (=r)Tj 0 Tc 1.8 0 Td (ead\(fd, &req, sizeof\(struct printreq\)\);)Tj -10.8 -1.189 Td [(332 )-4800(if)-600(\(nr != sizeof\(struct printreq\)\) {)]TJ 0 -1.189 TD (333 )Tj 9.6 0 Td [(if)-600(\(nr < 0\))]TJ -9.6 -1.189 Td (334 )Tj 12 0 Td (err)Tj 0.6 Tc 2.4 0 Td (=e)Tj 0 Tc 1.8 0 Td (rrno;)Tj -16.2 -1.189 Td (335 )Tj 9.6 0 Td (else)Tj -9.6 -1.189 Td (336 )Tj 12 0 Td (err)Tj 0.6 Tc 2.4 0 Td (=E)Tj 0 Tc 1.8 0 Td (IO;)Tj -16.2 -1.189 Td (337 )Tj 9.6 0 Td (close\(fd\);)Tj -9.6 -1.189 Td (338 )Tj 9.6 0 Td [(log_msg\("build_qonstart:)-600(can\325t read %s: %s",)]TJ -9.6 -1.189 Td (339 )Tj 10.8 0 Td [(fname,)-600(strerror\(err\)\);)]TJ -10.8 -1.189 Td (340 )Tj 9.6 0 Td (unlink\(fname\);)Tj -9.6 -1.189 Td (341 )Tj 9.6 0 Td [(sprintf\(fname,)-600("%s/%s/%s", SPOOLDIR, DATADIR,)]TJ -9.6 -1.189 Td (342 )Tj 10.8 0 Td (entp->d_name\);)Tj -10.8 -1.189 Td (343 )Tj 9.6 0 Td (unlink\(fname\);)Tj -9.6 -1.189 Td (344 )Tj 9.6 0 Td (continue;)Tj -9.6 -1.189 Td [(345 )-4800(})]TJ 0 -1.189 TD [(346 )-4800(jobid)]TJ 0.6 Tc 10.8 0 Td (=a)Tj 0 Tc 1.8 0 Td (tol\(entp->d_name\);)Tj -12.6 -1.189 Td [(347 )-4800(log_msg\("adding)-600(job %d to queue", jobid\);)]TJ 0 -1.189 TD [(348 )-4800(add_job\(&req,)-600(jobid\);)]TJ 0 -1.189 TD [(349 )-2400(})]TJ 0 -1.189 TD [(350 )-2400(closedir\(dirp\);)]TJ T* [(351 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2962.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 272.2153 Tm [([318 )167(\320 )167(324])]TJ -0.092 Tc 5 0 Td [(We )-190(r)]TJ 0 Tc 2.019 0 Td [(ead )-5(each )-5(entry )-5(in )-5(the )-5(dir)16(ectory)]TJ 0.2555 Tc 13.384 0 Td (,o)Tj 0 Tc 1.051 0 Td [(ne )-5(at )-5(a )-5(time.)]TJ -0.092 Tc 5.888 0 Td [(We )-190(s)]TJ 0 Tc 2.066 0 Td [(kip )-5(the )-5(entries )-5(for )-5(dot)]TJ -24.41 -1.2 Td (and dot-dot.)Tj -5 -1.6 Td [([325 )167(\320 )167(345])-668(For )-272(each )-272(entry)111(,)-522(we)-522(c)]TJ -0.018 Tc 14.825 0 Td (re)Tj 0 Tc 0.856 0 Td [(ate )-272(the )-272(full )-272(pathname )-272(of )-272(the )-272(\336le )-272(and )-272(open )-272(it )-272(for)]TJ -0.018 Tc -10.681 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ading. )-320(If)-321(the)]TJ /TT0 1 Tf 6.058 0 Td (open)Tj /T1_0 1 Tf 2.72 0 Td [(call )-70(fails, )-70(we )-70(just )-70(skip )-70(the )-70(\336le.)-573(Otherwise, )-70(we )-70(r)18(ead )-70(the)]TJ /TT0 1 Tf -9.635 -1.2 Td (printreq)Tj /T1_0 1 Tf 5.194 0 Td [(str)8(uctur)]TJ 0.3943 Tc 3.49 0 Td (es)Tj 0 Tc 1.297 0 Td [(tor)18(ed )-144(in )-144(it.)-644(If )-144(we )-144(don\325t )-144(r)16(ead )-144(the )-144(entir)]TJ 0.3944 Tc 17.219 0 Td (es)Tj 0 Tc 1.297 0 Td [(tr)8(uctur)18(e, )-144(we)]TJ -28.498 -1.2 Td [(close )-87(the )-87(\336le, )-87(log )-87(an )-87(err)18(or )-87(message, )-87(and )-87(unlink )-87(the )-87(\336le.)-587(Then )-87(we )-87(cr)18(eate )-87(the)]TJ 0 -1.2 TD [(full pathname of the corr)18(esponding data \336le and unlink it, too.)]TJ -5 -1.6 Td [([346 )167(\320 )167(351])-668(If )-215(we )-215(wer)]TJ 0.4651 Tc 9.603 0 Td (ea)Tj 0 Tc 1.444 0 Td [(ble )-215(to )-215(r)18(ead )-215(a )-215(complete)]TJ /TT0 1 Tf 11.037 0 Td (printreq)Tj /T1_0 1 Tf 5.265 0 Td [(str)8(uctur)18(e, )-215(we )-215(convert )-215(the)]TJ -22.349 -1.2 Td [(\336lename )-63(into )-63(a )-63(job )-63(ID )-63(\(the )-63(name )-63(of )-63(the )-63(\336le )-63(is )-63(its )-63(job )-63(ID\), )-63(log )-63(a )-63(message, )-63(and)]TJ T* [(then )-144(add )-144(the )-144(r)17(equest )-144(to )-144(the )-144(list )-144(of )-144(pending )-144(print )-144(jobs.)-644(When )-144(we )-144(ar)]TJ 0.3943 Tc 30.909 0 Td (ed)Tj 0 Tc 1.484 0 Td (one)Tj -0.018 Tc -32.393 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ading )-35(the )-35(dir)18(ectory)111(,)]TJ /TT0 1 Tf 8.945 0 Td (readdir)Tj /T1_0 1 Tf 4.485 0 Td [(will )-35(r)18(eturn)]TJ /TT0 1 Tf 5.038 0 Td (NULL)Tj /T1_0 1 Tf 0.2847 Tc (,a)Tj 0 Tc 3.435 0 Td [(nd )-35(we )-35(close )-35(the )-35(dir)19(ectory)]TJ -22.759 -1.2 Td [(and r)18(eturn.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47197 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (274)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(BSD-derived )-303(platforms )-303(don\325t )-303(support )-303(the)]TJ /TT0 1 Tf 19.962 0 Td (ac_stat)Tj /T1_1 1 Tf 4.753 0 Td [(member)74(,)-553(so)-553(we)-553(d)1(e\336ne )-303(the)]TJ /TT0 1 Tf -26.515 -1.2 Td (HAS_AC_STAT)Tj /T1_1 1 Tf 7.091 0 Td [(constant )-241(on )-241(the )-241(platforms )-241(that )-241(do )-241(support )-241(this )-241(member)]TJ 0.7406 Tc 26.077 0 Td (.B)Tj 0 Tc 1.602 0 Td [(asing )-241(the)]TJ -34.769 -1.2 Td [(de\336ned )-1(symbol )-1(on )-1(the )-1(featur)]TJ 0.2506 Tc 12.755 0 Td (ei)Tj 0 Tc 1.021 0 Td [(nstead )-1(of )-1(on )-1(the )-1(platform )-1(makes )-1(the )-1(code )-1(r)18(ead )-1(better )-1(and)]TJ -13.776 -1.2 Td [(allows )-399(us )-399(to )-399(modify )-399(the )-399(pr)18(ogram )-399(simply )-399(by )-399(adding )-399(the )-399(new )-399(de\336nition )-399(to )-399(our)]TJ 0 -1.2 TD [(compilation command.)-500(The alternative would be to use)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 604.2637 Tm (#if !defined\(BSD\) && !defined\(MACOS\))Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5923 586.2648 Tm (which becomes unwieldy as we port our application to additional platform\ s.)Tj -0.092 Tc 1.8 -1.2 Td [(We )-224(d)]TJ 0 Tc 2.288 0 Td [(e\336ne )-39(similar )-39(constants )-39(to )-39(determine )-39(whether )-39(the )-39(platform )-39(supports )-39(the)]TJ /TT0 1 Tf 31.912 0 Td (ACORE)Tj /T1_1 1 Tf -36 -1.2 Td (and)Tj /TT0 1 Tf 2.135 0 Td (AXSIG)Tj /T1_1 1 Tf 3.442 0 Td [(accounting )-192(\337ags.)]TJ -0.092 Tc 8.346 0 Td [(We )-376(c)]TJ 0 Tc 2.273 0 Td [(an\325t )-192(use )-192(the )-192(\337ag )-192(symbols )-192(themselves, )-192(because )-192(on)]TJ -16.195 -1.2 Td (Linux, they ar)Tj 0.25 Tc 6.173 0 Td (ed)Tj 0 Tc 1.34 0 Td (e\336ned as)Tj /TT0 1 Tf 4.18 0 Td (enum)Tj /T1_1 1 Tf 2.65 0 Td (values, which we can\325t use in a)Tj /TT0 1 Tf 13.917 0 Td (#ifdef)Tj /T1_1 1 Tf 3.85 0 Td [(expr)18(ession.)]TJ -0.092 Tc -30.31 -1.2 Td [(To )-184(p)]TJ 0 Tc 1.918 0 Td (erform our test, we do the following:)Tj -1.918 -2.4 Td [(1. )-633(Become)-431(super)8(user )-181(and )-181(enable )-181(accounting, )-181(with )-181(the)]TJ /TT0 1 Tf 25.607 0 Td (accton)Tj /T1_1 1 Tf 4.031 0 Td [(command. )-431(Note)]TJ -28.005 -1.2 Td [(that )-189(when )-189(this )-189(command )-189(terminates, )-189(accounting )-189(should )-189(be )-189(on; )-189(ther)15(efor)18(e, )-189(the)]TJ T* [(\336rst r)18(ecor)18(d)-250(in)-250(the accounting \336le should be fr)18(om this command.)]TJ -1.633 -1.84 Td [(2. )-633(Exit)-543(the )-293(super)8(user )-293(shell )-293(and )-293(r)10(un )-293(the )-293(pr)18(ogram )-293(in )-293(Figur)]TJ 0.5427 Tc 27.876 0 Td (e8)Tj 0 Tc 1.522 0 Td [(.28. )-543(This)-542(should)]TJ -27.765 -1.2 Td [(append )-14(six )-14(r)18(ecor)18(ds )-14(to )-14(the )-14(accounting )-14(\336le: )-14(one )-14(for )-14(the )-14(super)6(user )-14(shell, )-14(one )-14(for )-14(the)]TJ 0 -1.2 Td [(test par)18(ent, and one for each of the four test childr)18(en.)]TJ 0.3083 Tc 0 -1.8 TD (An)Tj 0 Tc 1.668 0 Td [(ew )-58(pr)18(ocess )-58(is )-58(not )-58(cr)18(eated )-58(by )-58(the)]TJ /TT0 1 Tf 14.647 0 Td (execl)Tj /T1_1 1 Tf 3.308 0 Td [(in )-58(the )-58(second )-58(child.)-559(Ther)]TJ 0.3083 Tc 11.349 0 Td (ei)Tj 0.3084 Tc 1.078 0 Td (so)Tj 0 Tc 1.278 0 Td [(nly )-58(a)]TJ -33.33 -1.2 Td [(single accounting r)18(ecor)]TJ 0.25 Tc 10.22 0 Td (df)Tj 0 Tc 1.194 0 Td (or the second child.)Tj -13.047 -1.84 Td [(3. )-633(Become)-396(super)8(user )-146(and )-146(turn )-146(accounting )-146(of)17(f. )-396(Since)-397(accounting )-146(is )-146(of)]TJ 0.3962 Tc 31.975 0 Td (fw)Tj 0 Tc 1.563 0 Td [(hen )-146(this)]TJ /TT0 1 Tf -31.905 -1.2 Td (accton)Tj /T1_1 1 Tf 3.85 0 Td (command terminates, it should not appear in the accounting \336le.)Tj -5.483 -1.84 Td [(4. )-633(Run)-322(the )-72(pr)18(ogram )-72(in )-72(Figur)]TJ 0.3221 Tc 13.275 0 Td (e8)Tj 0 Tc 1.301 0 Td [(.29 )-72(to )-72(print )-72(the )-72(selected )-72(\336elds )-72(fr)18(om )-72(the )-72(accounting)]TJ -12.943 -1.2 Td (\336le.)Tj -3.433 -2.4 Td [(The )-128(output )-128(fr)18(om )-128(step )-128(4 )-128(follows.)]TJ -0.092 Tc 15.184 0 Td [(We )-313(h)]TJ 0 Tc 2.348 0 Td [(ave )-128(appended )-128(the )-128(description )-128(of )-128(the )-128(pr)18(ocess )-128(in)]TJ -17.532 -1.2 Td [(italics to selected lines, for the discussion later)74(.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 140.3914 304.3817 Tm [(accton )-1800(e)]TJ 3.6 Tc 7.2 0 Td (=1)Tj 0.6 Tc 4.8 0 Td (,c)Tj 0 Tc 1.8 0 Td [(hars =)-3000(336, stat =)-1800(0: )-3600(S)]TJ -13.8 -1.189 Td [(sh )-4200(e)]TJ 1.8 Tc 7.2 0 Td (=1)Tj 0 Tc 3 0 Td [(550, chars =)-1800(20168, stat =)-1800(0: )-3600(S)]TJ -10.2 -1.189 Td [(dd )-4200(e)]TJ 3.6 Tc 7.2 0 Td (=2)Tj 0.6 Tc 4.8 0 Td (,c)Tj 0 Tc 1.8 0 Td [(hars =)-2400(1585, stat =)-1800(0:)]TJ /T1_2 1 Tf 22.2 0 Td (second child)Tj /TT0 1 Tf -36 -1.189 Td [(a.out )-2400(e)]TJ 2.4 Tc 7.2 0 Td (=2)Tj 0 Tc 3.6 0 Td [(02, chars =)-4200(0, stat =)-1800(0:)]TJ /T1_2 1 Tf 25.2 0 Td [(par)18(ent)]TJ /TT0 1 Tf -36 -1.189 Td [(a.out )-2400(e)]TJ 2.4 Tc 7.2 0 Td (=4)Tj 0 Tc 3.6 0 Td [(20, chars =)-4200(0, stat = 134:)-3000(F)]TJ /T1_2 1 Tf 25.2 0 Td (\336rst child)Tj /TT0 1 Tf -36 -1.189 Td [(a.out )-2400(e)]TJ 2.4 Tc 7.2 0 Td (=6)Tj 0 Tc 3.6 0 Td [(00, chars =)-4200(0, stat =)-1800(9: )-2400(F)]TJ /T1_2 1 Tf 25.2 0 Td (fourth child)Tj /TT0 1 Tf -36 -1.189 Td [(a.out )-2400(e)]TJ 2.4 Tc 7.2 0 Td (=8)Tj 0 Tc 3.6 0 Td [(01, chars =)-4200(0, stat =)-1800(0: )-2400(F)]TJ /T1_2 1 Tf 25.2 0 Td (third child)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 147.5909 222.1867 Tm [(For )-278(this )-278(system, )-278(the )-278(elapsed )-278(time )-278(values )-278(ar)]TJ 0.5279 Tc 20.647 0 Td (em)Tj 0 Tc 1.89 0 Td [(easur)18(ed )-278(in )-278(units )-278(of )-278(clock )-278(ticks.)]TJ -24.337 -1.2 Td (Figur)Tj 0.3485 Tc 2.383 0 Td (e2)Tj 0 Tc 1.327 0 Td [(.15 )-98(shows )-98(that )-98(this )-98(system )-98(generates )-98(100 )-98(clock )-98(ticks )-98(per )-98(second.)-603(For )-98(example,)]TJ -3.711 -1.2 Td (the)Tj /TT0 1 Tf 1.69 0 Td (sleep\(2\))Tj /T1_1 1 Tf 5.103 0 Td [(in )-53(the )-53(par)18(ent )-53(corr)18(esponds )-53(to )-53(the )-53(elapsed )-53(time )-53(of )-53(202 )-53(clock )-53(ticks.)-553(For )-53(the)]TJ -6.794 -1.2 Td [(\336rst )-204(child, )-204(the)]TJ /TT0 1 Tf 6.969 0 Td (sleep\(4\))Tj /T1_1 1 Tf 5.254 0 Td [(becomes )-204(420 )-204(clock )-204(ticks.)-704(Note )-204(that )-204(the )-204(amount )-204(of )-204(time )-204(a)]TJ -12.224 -1.2 Td [(pr)18(ocess )-3(sleeps )-3(is )-3(not )-3(exact.)-501(\(W)92(e\325ll )-3(r)18(eturn )-3(to )-3(the)]TJ /TT0 1 Tf 20.802 0 Td (sleep)Tj /T1_1 1 Tf 3.253 0 Td [(function )-3(in )-3(Chapter )-3(10.\))-503(Also, )-3(the)]TJ -24.055 -1.2 Td (calls to)Tj /TT0 1 Tf 3.322 0 Td (fork)Tj /T1_1 1 Tf 2.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (exit)Tj /T1_1 1 Tf 2.65 0 Td (take some amount of time.)Tj -8.765 -1.2 Td [(Note )-5(that )-5(the)]TJ /TT0 1 Tf 6.069 0 Td (ac_stat)Tj /T1_1 1 Tf 4.456 0 Td [(member )-5(is )-5(not )-5(the )-5(tr)8(ue )-5(termination )-5(status )-5(of )-5(the )-5(pr)18(ocess, )-5(but)]TJ -12.325 -1.2 Td [(rather )-411(corr)18(esponds )-411(to )-411(a )-411(portion )-411(of )-411(the )-411(termination )-411(status )-411(that )-411(we )-411(discussed )-411(in)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47198 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.14)]TJ 34.883 0 Td [(Pr)18(ocess )-250(Accounting)]TJ /T1_1 1 Tf 10.95 0 Td (273)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm (#endif)Tj 0 -1.189 TD (#if !defined\(HAS_AXSIG\))Tj T* (#define AXSIG 0)Tj T* (#endif)Tj 0 -1.783 TD (#if !defined\(BSD\))Tj 0 -1.189 TD (static unsigned long)Tj T* [(compt2ulong\(comp_t comptime\))-2400(/* convert comp_t to unsigned long */)]TJ T* ({)Tj 2.4 -1.189 Td [(unsigned long)-1800(val;)]TJ 0 -1.189 TD (int )Tj 9.6 0 Td (exp;)Tj -9.6 -1.783 Td [(val = comptime & 0x1fff;)-2400(/* 13-bit fraction */)]TJ 0 -1.189 TD (exp = \(comptime >> 13\) & 7; /* 3-bit exponent \(0-7\) */)Tj T* (while \(exp-- > 0\))Tj 2.4 -1.189 Td (val *= 8;)Tj -2.4 -1.189 Td (return\(val\);)Tj -2.4 -1.189 Td (})Tj T* (#endif)Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td [(struct acct)-3000(acdata;)]TJ T* (FILE )Tj 9.6 0 Td (*fp;)Tj -9.6 -1.783 Td (if \(argc != 2\))Tj 2.4 -1.189 Td (err_quit\("usage: pracct filename"\);)Tj -2.4 -1.189 Td (if \(\(fp = fopen\(argv[1], "r"\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("can\325t open %s", argv[1]\);)Tj -2.4 -1.189 Td (while \(fread\(&acdata, sizeof\(acdata\), 1, fp\) == 1\) {)Tj 2.4 -1.189 Td (printf\(FMT, \(int\)sizeof\(acdata.ac_comm\),)Tj 2.4 -1.189 Td (\(int\)sizeof\(acdata.ac_comm\), acdata.ac_comm,)Tj -7.2 -1.189 Td (#if defined\(BSD\))Tj 7.2 -1.189 Td (acdata.ac_etime, acdata.ac_io,)Tj -7.2 -1.189 Td (#else)Tj 7.2 -1.189 Td (compt2ulong\(acdata.ac_etime\), compt2ulong\(acdata.ac_io\),)Tj -7.2 -1.189 Td (#endif)Tj T* (#if defined\(HAS_AC_STAT\))Tj 7.2 -1.189 Td (\(unsigned char\) acdata.ac_stat,)Tj -7.2 -1.189 Td (#endif)Tj 7.2 -1.189 Td (acdata.ac_flag & ACORE ? \325D\325 : \325 \325,)Tj T* (acdata.ac_flag & AXSIG ? \325X\325 : \325 \325,)Tj 0 -1.189 TD (acdata.ac_flag & AFORK ? \325F\325 : \325 \325,)Tj 0 -1.189 TD (acdata.ac_flag & ASU)Tj 0.6 Tc 13.8 0 Td (?\325)Tj 0 Tc 1.8 0 Td (S\325 : \325 \325\);)Tj -20.4 -1.189 Td (})Tj T* (if \(ferror\(fp\)\))Tj 2.4 -1.189 Td (err_sys\("read error"\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1626.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 214.5023 146.5814 Tm (Figure 8.29)Tj /T1_0 1 Tf 5.695 0 Td [(Print selected \336elds fr)18(om system\325s accounting \336le)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47199 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.14)]TJ 34.883 0 Td [(Pr)18(ocess )-250(Accounting)]TJ /T1_1 1 Tf 10.95 0 Td (271)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 6670.25 cm 0 0 m 3987 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 374.8375 658.9605 Tm [(Fr)18(eeBSD )-1416(Linux)-1382(Mac OS X)-1198(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-2993(3.2.0)-2618(10.6.8 )-2868(10)]TJ /TT0 1 Tf -31.433 0.625 Td (ac_flag)Tj /T1_0 1 Tf 14.461 0 Td (Description)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 6450.25 cm 0 0 m 3987 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 6430.25 cm 0 0 m 3987 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 133.584 634.9238 Tm (AFORK)Tj /T1_0 1 Tf 5.7 0 Td [(pr)18(ocess is the r)18(esult of)]TJ /TT0 1 Tf 10.026 0 Td (fork)Tj /T1_0 1 Tf 0.25 Tc (,b)Tj 0 Tc 3.453 0 Td (ut never called)Tj /TT0 1 Tf 6.795 0 Td (exec)Tj /T1_0 1 Tf 4.262 Tc 5.781 0 Td (\245\245\245\245)Tj /TT0 1 Tf 0 Tc -31.755 -1.25 Td (ASU)Tj /T1_0 1 Tf 5.7 0 Td [(pr)18(ocess used super)8(user privileges)]TJ 4.262 Tc 30.923 0 Td (\245\245\245)Tj /TT0 1 Tf 0 Tc -36.623 -1.25 Td (ACORE)Tj /T1_0 1 Tf 5.7 0 Td [(pr)18(ocess dumped cor)]TJ 16.626 Tc 8.95 0 Td (e\245)Tj 4.262 Tc 21.973 0 Td (\245\245)Tj /TT0 1 Tf 0 Tc -36.623 -1.25 Td (AXSIG)Tj /T1_0 1 Tf 5.7 0 Td [(pr)18(ocess was killed by a signal)]TJ 4.262 Tc 26.055 0 Td (\245\245\245)Tj /TT0 1 Tf 0 Tc -31.755 -1.25 Td (AEXPND)Tj /T1_0 1 Tf 5.7 0 Td (expanded accounting entry)Tj 40.659 0 Td (\245)Tj /TT0 1 Tf -46.359 -1.25 Td (ANVER)Tj /T1_0 1 Tf 5.7 0 Td [(new r)18(ecor)]TJ 0.25 Tc 4.368 0 Td (df)Tj 0 Tc 1.194 0 Td (ormat )Tj 20.493 0 Td (\245)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 5810.25 cm 0 0 m 3987 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3666.25 5810.25 cm 0 0 m 0 860 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1732.25 5810.25 cm 0 0 m 0 860 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5283.25 5810.25 cm 0 0 m 0 860 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1296.25 5810.25 cm 0 0 m 0 860 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 223.7877 562.8987 Tm (Figure 8.26)Tj /T1_0 1 Tf -0.092 Tc 5.695 0 Td (Va)Tj 0 Tc 1.13 0 Td (lues for)Tj /TT0 1 Tf 3.571 0 Td (ac_flag)Tj /T1_0 1 Tf 4.45 0 Td [(fr)18(om accounting r)18(ecor)18(d)]TJ /TT0 1 Tf 9.9982 0 0 9.9982 129.5767 538.903 Tm (exec)Tj /T1_0 1 Tf [(s)-397(B,)-397(then )-147(B)]TJ /TT0 1 Tf 7.852 0 Td (exec)Tj /T1_0 1 Tf [(s)-397(C,)-397(and )-147(C)]TJ /TT0 1 Tf 7.772 0 Td (exit)Tj /T1_0 1 Tf 0.0833 Tc (s\321o)Tj 0 Tc 4.537 0 Td [(nly )-147(a )-147(single )-147(accounting )-147(r)19(ecor)18(d)-397(is)-397(written.)]TJ -20.161 -1.2 Td [(The )-131(command )-131(name )-131(in )-131(the )-131(r)18(ecor)]TJ 0.381 Tc 14.955 0 Td (dc)Tj 0 Tc 1.436 0 Td [(orr)18(esponds )-131(to )-131(pr)18(ogram )-131(C, )-131(but )-131(the )-131(CPU )-131(times, )-131(for)]TJ -16.391 -1.2 Td (example, ar)Tj 0.25 Tc 5.126 0 Td (et)Tj 0 Tc 1.055 0 Td [(he sum for pr)18(ograms A, B, and C.)]TJ /TT1 1 Tf -9.781 -2.4 Td (Example)Tj /T1_0 1 Tf -0.092 Tc 3.6 -1.92 Td [(To )-223(h)]TJ 0 Tc 1.938 0 Td [(ave )-39(some )-39(accounting )-39(data )-39(to )-39(examine, )-39(we\325ll )-39(cr)18(eate )-39(a )-39(test )-39(pr)18(ogram )-39(to )-39(implement )-39(the)]TJ -1.938 -1.2 Td (diagram shown in Figur)Tj 0.25 Tc 10.71 0 Td (e8)Tj 0 Tc 1.229 0 Td (.27.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 1446 4018 432 360 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 146.9647 422.9385 Tm (sleep)Tj 3 0.04 Td (\()Tj 0.6 -0.04 Td (2)Tj 0.6 0.04 Td (\))Tj -4.2 -1.29 Td (exit)Tj 2.4 0.04 Td (\()Tj 0.6 -0.04 Td (2)Tj 0.6 0.04 Td (\))Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2238 3838 432 360 re S Q BT /TT0 1 Tf 7.9976 0 0 7.9976 226.1321 404.9185 Tm (sleep)Tj 3 0.04 Td (\()Tj 0.6 -0.04 Td (4)Tj 0.6 0.04 Td (\))Tj -4.2 -1.29 Td (abort\(\))Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 3030 3658 432 360 re S Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 3822 3478 432 360 re S Q BT /TT0 1 Tf 7.9971 0 0 7.9971 384.4616 368.9072 Tm (sleep)Tj 3 0.04 Td (\()Tj 0.6 -0.04 Td (8)Tj 0.6 0.04 Td (\))Tj -4.2 -1.29 Td (exit)Tj 2.4 0.04 Td (\()Tj 0.6 -0.04 Td (0)Tj 0.6 0.04 Td (\))Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 4614 3298 432 360 re S Q BT /TT0 1 Tf 7.9966 0 0 7.9966 463.6052 350.8926 Tm (sleep)Tj 3 0.04 Td (\()Tj 0.6 -0.04 Td (6)Tj 0.6 0.04 Td (\))Tj -4.2 -1.29 Td (kill\(\))Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 3030 2866 432 360 re S Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 154.6657 440.8283 Tm [(par)18(ent)]TJ 9.223 -2.25 Td (\336rst child)Tj 9.232 -2.25 Td (second child)Tj 10.35 -2.25 Td (thir)Tj 0.25 Tc 1.576 0 Td (dc)Tj 0 Tc 1.305 0 Td (hild)Tj 6.72 -2.25 Td (fourth child)Tj /TT0 1 Tf -19.273 -5.4 Td (/bin/dd)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 220.2 413.824 cm 0 0 m -7.056 2.304 l -5.184 5.328 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 2202 4138.2402 cm 0 0 m -70.56 23.04 l -51.84 53.28 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 4318.25 cm 0 0 m 227 -142 l S Q Q BT /TT0 1 Tf 6.7803 -4.2377 4.2377 6.7803 199.2694 430.4265 Tm (fork)Tj ET q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 299.4 395.824 cm 0 0 m -7.056 2.304 l -5.184 5.328 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 2994 3958.24 cm 0 0 m -70.56 23.04 l -51.84 53.28 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 4138.25 cm 0 0 m 227 -142 l S Q Q BT /TT0 1 Tf 6.7799 -4.2375 4.2375 6.7799 278.4099 412.4115 Tm (fork)Tj ET q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 378.6 377.824 cm 0 0 m -7.056 2.304 l -5.184 5.328 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 3786 3778.24 cm 0 0 m -70.56 23.04 l -51.84 53.28 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3498.25 3958.25 cm 0 0 m 227 -142 l S Q Q BT /TT0 1 Tf 6.7795 -4.2372 4.2372 6.7795 357.5409 394.3986 Tm (fork)Tj ET q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 457.8 359.824 cm 0 0 m -7.056 2.304 l -5.184 5.328 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 4578 3598.24 cm 0 0 m -70.56 23.04 l -51.84 53.28 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4290.25 3778.25 cm 0 0 m 227 -142 l S Q Q BT /TT0 1 Tf 6.7791 -4.2369 4.2369 6.7791 436.6625 376.3879 Tm (fork)Tj ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 324.6 333.4 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 3246 3334 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 3622.25 cm 0 0 m 0 -216 l S Q Q BT /TT0 1 Tf 7.9938 0 0 7.9938 329.1432 345.7702 Tm (execl)Tj /T1_1 1 Tf -12.53 -10.28 Td (Figure 8.27)Tj /T1_0 1 Tf 5.695 0 Td [(Pr)18(ocess str)8(uctur)]TJ 0.25 Tc 7.038 0 Td (ef)Tj 0 Tc 1.062 0 Td (or accounting example)Tj 9.9922 0 0 9.9922 129.4991 239.6132 Tm [(The )-49(sour)18(ce )-49(for )-49(the )-49(test )-49(pr)18(ogram )-49(is )-49(shown )-49(in )-49(Figur)]TJ 0.2988 Tc 22.249 0 Td (e8)Tj 0 Tc 1.278 0 Td [(.28. )-299(It)-299(calls)]TJ /TT0 1 Tf 5.259 0 Td (fork)Tj /T1_0 1 Tf 2.699 0 Td [(four )-49(times.)-549(Each)]TJ -31.485 -1.2 Td [(child does something dif)18(fer)18(ent and then terminates.)]TJ ET q 0.099922 0 0 0.099922 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2206.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9924 0 0 8.9924 129.4912 210.9217 Tm (#include "apue.h")Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(pid_t )-1200(pid;)]TJ 0 -1.783 TD (if \(\(pid = fork\(\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47200 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (270)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 133.192 664.2601 Tm [(typedef )-600(u_short)-600(comp_t; )-600(/*)-600(3-bit base 8 exponent; 13-bit fraction */)]TJ 0 -1.783 TD [(struct )-600(acct)]TJ 0 -1.189 TD ({)Tj 1.2 -1.189 Td [(char )-1200(ac_flag;)-2400(/* flag \(see Figure 8.26\) */)]TJ T* [(char )-1200(ac_stat;)-2400(/* termination status \(signal & core flag only\) */)]TJ 11.4 -1.189 Td (/* \(Solaris only\) */)Tj -11.4 -1.189 Td [(uid_t )-600(ac_uid;)-3000(/* real user ID */)]TJ T* [(gid_t )-600(ac_gid;)-3000(/* real group ID */)]TJ T* [(dev_t )-600(ac_tty;)-3000(/* controlling terminal */)]TJ 0 -1.189 TD [(time_t ac_btime;)-1800(/* starting calendar time */)]TJ 0 -1.189 TD [(comp_t ac_utime;)-1800(/* user CPU time */)]TJ T* [(comp_t ac_stime;)-1800(/* system CPU time */)]TJ T* [(comp_t ac_etime;)-1800(/* elapsed time */)]TJ T* [(comp_t ac_mem;)-3000(/* average memory usage */)]TJ T* [(comp_t ac_io;)-3600(/* bytes transferred \(by read and write\) */)]TJ 11.4 -1.189 Td (/* "blocks" on BSD systems */)Tj -11.4 -1.189 Td [(comp_t ac_rw;)-3600(/* blocks read or written */)]TJ 11.4 -1.189 Td (/* \(not present on BSD systems\) */)Tj -11.4 -1.189 Td [(char )-1200(ac_comm[8];)-600(/* command name: [8] for Solaris, */)]TJ 11.4 -1.189 Td (/* [10] for Mac OS X, [16] for FreeBSD, and */)Tj T* (/* [17] for Linux */)Tj -12.6 -1.189 Td (};)Tj /T1_1 1 Tf -0.055 Tc 9.9994 0 0 9.9994 147.5911 411.9452 Tm (Ti)Tj 0 Tc 0.849 0 Td [(mes )-155(ar)]TJ 0.4054 Tc 3.068 0 Td (er)Tj 0 Tc 1.261 0 Td [(ecor)18(ded )-155(in )-155(units )-155(of )-155(clock )-155(ticks )-155(on )-155(most )-155(platforms, )-155(but )-155(Fr)14(eeBSD )-155(stor)18(es)]TJ -6.979 -1.2 Td [(micr)18(oseconds )-432(instead.)-931(The)]TJ /TT0 1 Tf 13.483 0 Td (ac_flag)Tj /T1_1 1 Tf 4.882 0 Td [(member )-432(r)18(ecor)18(ds )-432(certain )-432(events )-432(during )-432(the)]TJ -18.364 -1.2 Td [(execution of the pr)18(ocess. )-250(These)-250(events ar)]TJ 0.25 Tc 18.136 0 Td (ed)Tj 0 Tc 1.34 0 Td (escribed in Figur)Tj 0.25 Tc 7.432 0 Td (e8)Tj 0 Tc 1.229 0 Td (.26.)Tj -26.337 -1.2 Td [(The )-185(data )-185(r)18(equir)18(ed )-185(for )-185(the )-185(accounting )-185(r)18(ecor)18(d, )-185(such )-185(as )-185(CPU )-185(times )-185(and )-185(number )-185(of)]TJ -1.8 -1.2 Td [(characters )-379(transferr)18(ed, )-380(is )-380(kept )-380(by )-380(the )-380(kernel )-380(in )-380(the )-380(pr)18(ocess )-380(table )-380(and )-380(initialized)]TJ 0 -1.2 TD [(whenever )-20(a )-20(new )-20(pr)18(ocess )-20(is )-20(cr)18(eated, )-20(as )-20(in )-20(the )-20(child )-20(after )-20(a)]TJ /TT0 1 Tf 25.444 0 Td (fork)Tj /T1_1 1 Tf 0.5202 Tc (.E)Tj 0 Tc 3.781 0 Td [(ach )-20(accounting )-20(r)18(ecor)18(d)]TJ -29.226 -1.2 Td [(is written when the pr)18(ocess terminates.)-500(This has two consequences.)]TJ 1.8 -1.2 Td [(First, )-35(we )-35(don\325t )-35(get )-35(accounting )-35(r)16(ecor)18(ds )-35(for )-35(pr)17(ocesses )-36(that )-36(never )-36(terminate.)-534(Pr)18(ocesses)]TJ -1.8 -1.2 Td (like)Tj /TT0 1 Tf 1.874 0 Td (init)Tj /T1_1 1 Tf 2.658 0 Td [(that )-7(r)8(un )-7(for )-7(the )-7(lifetime )-7(of )-7(the )-7(system )-7(don\325t )-7(generate )-7(accounting )-7(r)14(ecor)18(ds. )-257(This)]TJ -4.532 -1.2 Td (also applies to kernel daemons, which normally don\325t exit.)Tj 1.8 -1.2 Td [(Second, )-437(the )-437(or)18(der )-437(of )-437(the )-437(r)17(ecor)18(ds )-437(in )-437(the )-437(accounting )-437(\336le )-437(corr)18(esponds )-437(to )-437(the)]TJ -1.8 -1.2 Td [(termination )-76(or)18(der )-76(of )-76(the )-76(pr)18(ocesses, )-76(not )-76(the )-76(or)18(der )-76(in )-76(which )-76(they )-76(wer)]TJ 0.326 Tc 30.397 0 Td (es)Tj 0 Tc 1.229 0 Td [(tarted. )-326(T)]TJ 0.326 Tc 3.984 0 Td (ok)Tj 0 Tc 1.428 0 Td (now)Tj -37.038 -1.2 Td [(the )-166(starting )-166(or)18(der)74(,)-416(we)-416(would )-166(have )-166(to )-166(go )-166(thr)18(ough )-166(the )-166(accounting )-166(\336le )-166(and )-166(sort )-166(by )-166(the)]TJ 0 -1.2 Td [(starting )-13(calendar )-13(time.)-513(But )-13(this )-13(isn\325t )-13(perfect, )-13(since )-13(calendar )-13(times )-13(ar)20(e)-263(in)-263(units )-13(of )-13(seconds)]TJ -0 -1.2 Td [(\(Section )-124(1.10\), )-124(and )-124(it\325s )-124(possible )-124(for )-124(many )-124(pr)15(ocesses )-124(to )-124(be )-124(started )-124(in )-124(any )-124(given )-124(second.)]TJ T* (Alternatively)Tj 0.274 Tc 5.748 0 Td (,t)Tj 0 Tc 0.85 0 Td [(he )-24(elapsed )-24(time )-24(is )-24(given )-24(in )-24(clock )-24(ticks, )-24(which )-24(ar)]TJ 0.274 Tc 21.134 0 Td (eu)Tj 0 Tc 1.356 0 Td [(sually )-24(between )-24(60 )-24(and)]TJ -29.088 -1.2 Td [(128 )-7(ticks )-7(per )-7(second.)-506(But )-7(we )-7(don\325t )-7(know )-7(the )-7(ending )-7(time )-7(of )-7(a )-7(pr)18(ocess; )-7(all )-7(we )-7(know )-7(is )-7(its)]TJ T* [(starting )-118(time )-118(and )-118(ending )-118(or)19(der)]TJ 0.6176 Tc 13.978 0 Td (.T)Tj 0 Tc 1.481 0 Td [(hus, )-118(even )-118(though )-118(the )-118(elapsed )-118(time )-118(is )-118(mor)]TJ 0.3676 Tc 19.004 0 Td (ea)Tj 0 Tc 1.347 0 Td (ccurate)Tj -35.809 -1.2 Td [(than )-237(the )-237(starting )-237(time, )-237(we )-237(still )-237(can\325t )-237(r)20(econstr)8(uct )-237(the )-237(exact )-237(starting )-237(or)18(der )-237(of )-237(various)]TJ 0 -1.2 Td [(pr)18(ocesses, given the data in the accounting \336le.)]TJ 1.8 -1.2 Td [(The )-169(accounting )-169(r)18(ecor)18(ds )-169(corr)18(espond )-169(to )-169(pr)18(ocesses, )-169(not )-169(pr)17(ograms. )-419(A)-419(new )-169(r)18(ecor)]TJ 0.4191 Tc 35.455 0 Td (di)Tj 0 Tc 1.321 0 Td (s)Tj -38.576 -1.2 Td [(initialized )-7(by )-7(the )-7(kernel )-7(for )-7(the )-7(child )-7(after )-7(a)]TJ /TT0 1 Tf 19.461 0 Td (fork)Tj /T1_1 1 Tf 0.2575 Tc (,n)Tj 0 Tc 3.489 0 Td [(ot )-7(when )-7(a )-7(new )-7(pr)18(ogram )-7(is )-7(executed.)]TJ -22.951 -1.2 Td (Although)Tj /TT0 1 Tf 4.631 0 Td (exec)Tj /T1_1 1 Tf 2.767 0 Td [(doesn\325t )-117(cr)18(eate )-117(a )-117(new )-117(accounting )-117(r)19(ecor)18(d, )-117(the )-117(command )-117(name )-117(changes,)]TJ -7.398 -1.2 Td [(and )-2(the)]TJ /TT0 1 Tf 3.585 0 Td (AFORK)Tj /T1_1 1 Tf 3.252 0 Td [(\337ag )-2(is )-2(clear)17(ed. )-252(This)-253(means )-2(that )-2(if )-2(we )-2(have )-2(a )-2(chain )-2(of )-2(thr)18(ee )-2(pr)14(ograms )167(\321 )167(A)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47201 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.17)]TJ 36.78 0 Td [(Symbolic )-250(Links)]TJ /T1_1 1 Tf 9.053 0 Td (121)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(Symbolic )-2(links )-2(wer)]TJ 0.2523 Tc 8.427 0 Td (ei)Tj 0 Tc 1.022 0 Td [(ntr)18(oduced )-2(with )-2(4.2BSD.)-503(Initially)111(,)]TJ /TT0 1 Tf 14.885 0 Td (chown)Tj /T1_0 1 Tf 3.252 0 Td [(didn\325t )-2(follow )-2(symbolic )-2(links, )-2(but)]TJ -27.587 -1.25 Td [(this )-47(behavior )-47(was )-47(changed )-47(in )-47(4.4BSD.)-545(System )-47(V )-47(included )-47(support )-47(for )-47(symbolic )-47(links )-47(in )-47(SVR4,)]TJ 0 -1.25 TD [(but )-4(diver)18(ged )-4(fr)18(om )-4(the )-4(original )-4(BSD )-4(behavior )-4(by )-4(implementing)]TJ /TT0 1 Tf 27.889 0 Td (chown)Tj /T1_0 1 Tf 3.254 0 Td [(to )-4(follow )-4(symbolic )-4(links.)]TJ -31.143 -1.25 Td [(In )-121(older )-121(versions )-121(of )-121(Linux )-121(\(those )-121(befor)]TJ 0.3713 Tc 17.634 0 Td (ev)Tj 0 Tc 1.415 0 Td [(ersion )-121(2.1.81\),)]TJ /TT0 1 Tf 6.543 0 Td (chown)Tj /T1_0 1 Tf 3.371 0 Td [(didn\325t )-121(follow )-121(symbolic )-121(links.)]TJ -28.964 -1.25 Td [(Fr)18(om )-207(version )-207(2.1.81 )-207(onwar)17(d,)]TJ /TT0 1 Tf 13.674 0 Td (chown)Tj /T1_0 1 Tf 3.457 0 Td [(follows )-207(symbolic )-207(links.)]TJ -0.055 Tc 11.269 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-207(Fr)18(eeBSD )-207(8.0, )-207(Mac )-207(OS )-207(X)]TJ -29.636 -1.25 Td [(10.6.8, )-428(and )-428(Solaris )-428(10,)]TJ /TT0 1 Tf 11.378 0 Td (chown)Tj /T1_0 1 Tf 3.678 0 Td [(follows )-428(symbolic )-428(links.)-928(All )-428(of )-428(these )-428(platforms )-428(pr)15(ovide)]TJ -15.056 -1.25 Td (implementations of)Tj /TT0 1 Tf 8.863 0 Td (lchown)Tj /T1_0 1 Tf 3.85 0 Td (to change the ownership of symbolic links themselves.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2332.25 5880.25 cm 0 0 m 1827 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 287.6215 579.9304 Tm [(Does not follow)-3265(Follows)]TJ 0.53 -1.25 Td [(symbolic link)-2560(symbolic link)]TJ -6.83 0.625 Td (Function)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2332.25 5660.25 cm 0 0 m 1827 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2332.25 5640.25 cm 0 0 m 1827 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 237.2133 555.8999 Tm (access)Tj /T1_0 1 Tf 18.024 0 Td (\245)Tj /TT0 1 Tf -18.024 -1.25 Td (chdir)Tj /T1_0 1 Tf 18.024 0 Td (\245)Tj /TT0 1 Tf -18.024 -1.25 Td (chmod)Tj /T1_0 1 Tf 18.024 0 Td (\245)Tj /TT0 1 Tf -18.024 -1.25 Td (chown)Tj /T1_0 1 Tf 18.024 0 Td (\245)Tj /TT0 1 Tf -18.024 -1.25 Td (creat)Tj /T1_0 1 Tf 18.024 0 Td (\245)Tj /TT0 1 Tf -18.024 -1.25 Td (exec)Tj /T1_0 1 Tf 18.024 0 Td (\245)Tj /TT0 1 Tf -18.024 -1.25 Td (lchown)Tj /T1_0 1 Tf 9.506 0 Td (\245)Tj /TT0 1 Tf -9.506 -1.25 Td (link)Tj /T1_0 1 Tf 18.024 0 Td (\245)Tj /TT0 1 Tf -18.024 -1.25 Td (lstat)Tj /T1_0 1 Tf 9.506 0 Td (\245)Tj /TT0 1 Tf -9.506 -1.25 Td (open)Tj /T1_0 1 Tf 18.024 0 Td (\245)Tj /TT0 1 Tf -18.024 -1.25 Td (opendir)Tj /T1_0 1 Tf 18.024 0 Td (\245)Tj /TT0 1 Tf -18.024 -1.25 Td (pathconf)Tj /T1_0 1 Tf 18.024 0 Td (\245)Tj /TT0 1 Tf -18.024 -1.25 Td (readlink)Tj /T1_0 1 Tf 9.506 0 Td (\245)Tj /TT0 1 Tf -9.506 -1.25 Td (remove)Tj /T1_0 1 Tf 9.506 0 Td (\245)Tj /TT0 1 Tf -9.506 -1.25 Td (rename)Tj /T1_0 1 Tf 9.506 0 Td (\245)Tj /TT0 1 Tf -9.506 -1.25 Td (stat)Tj /T1_0 1 Tf 18.024 0 Td (\245)Tj /TT0 1 Tf -18.024 -1.25 Td (truncate)Tj /T1_0 1 Tf 18.024 0 Td (\245)Tj /TT0 1 Tf -18.024 -1.25 Td (unlink)Tj /T1_0 1 Tf 9.506 0 Td (\245)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2332.25 3820.25 cm 0 0 m 1827 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3498.25 3820.25 cm 0 0 m 0 2060 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2816.25 3820.25 cm 0 0 m 0 2060 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4159.25 3820.25 cm 0 0 m 0 2060 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2332.25 3820.25 cm 0 0 m 0 2060 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 215.5683 363.9126 Tm (Figure 4.17)Tj /T1_0 1 Tf -0.09 Tc 5.695 0 Td [(Tr )88(e)]TJ 0 Tc 1.379 0 Td (atment of symbolic links by various functions)Tj 9.9976 0 0 9.9976 147.5648 336.3193 Tm [(One )-145(exception )-145(to )-145(the )-145(behavior )-145(summarized )-145(in )-145(Figur)]TJ 0.3954 Tc 23.874 0 Td (e4)Tj 0 Tc 1.374 0 Td [(.17 )-145(occurs )-145(when )-145(the)]TJ /TT0 1 Tf 9.552 0 Td (open)Tj /T1_0 1 Tf -36.6 -1.2 Td [(function )-150(is )-150(called )-150(with )-150(both)]TJ /TT0 1 Tf 13.077 0 Td (O_CREAT)Tj /T1_0 1 Tf 4.6 0 Td (and)Tj /TT0 1 Tf 2.093 0 Td (O_EXCL)Tj /T1_0 1 Tf 4 0 Td [(set. )-400(In)-400(this )-150(case, )-150(if )-150(the )-150(pathname)]TJ -0.018 Tc -23.769 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(fers )-143(to )-143(a )-143(symbolic )-143(link,)]TJ /TT0 1 Tf 10.925 0 Td (open)Tj /T1_0 1 Tf 2.793 0 Td [(will )-143(fail )-143(with)]TJ /TT0 1 Tf 6.333 0 Td (errno)Tj /T1_0 1 Tf 3.393 0 Td [(set )-143(to)]TJ /TT0 1 Tf 2.886 0 Td (EEXIST)Tj /T1_0 1 Tf 0.6427 Tc (.T)Tj 0 Tc 5.106 0 Td [(his )-143(behavior )-143(is)]TJ -32.292 -1.2 Td [(intended )-8(to )-8(close )-8(a )-8(security )-8(hole )-8(so )-8(that )-8(privileged )-8(pr)14(ocesses )-8(can\325t )-8(be )-8(fooled )-8(into )-8(writing)]TJ 0 -1.2 TD [(to the wr)18(ong \336les.)]TJ /TT1 1 Tf -3.6 -2.52 Td (Example)Tj /T1_0 1 Tf 3.6 -2.28 Td [(It )-210(is )-210(possible )-210(to )-210(intr)19(oduce )-210(loops )-210(into )-210(the )-210(\336le )-210(system )-210(by )-210(using )-210(symbolic )-210(links.)-707(Most)]TJ 0 -1.2 Td [(functions )-297(that )-297(look )-297(up )-297(a )-297(pathname )-297(r)18(eturn )-297(an)]TJ /TT0 1 Tf 22.18 0 Td (errno)Tj /T1_0 1 Tf 3.547 0 Td (of)Tj /TT0 1 Tf 1.426 0 Td (ELOOP)Tj /T1_0 1 Tf 3.547 0 Td [(when )-297(this )-297(occurs.)]TJ -30.7 -1.2 Td (Consider the following commands:)Tj /TT0 1 Tf 8.9978 0 0 8.9978 147.5656 199.6521 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (mkdir foo)Tj /T1_2 1 Tf 17.2 0 Td [(make a new dir)18(ectory)]TJ /TT0 1 Tf -18.4 -1.189 Td ($)Tj /TT2 1 Tf 1.2 0 Td (touch foo/a)Tj /T1_2 1 Tf 17.2 0 Td [(cr)18(eate a 0-length \336le)]TJ /TT0 1 Tf -18.4 -1.189 Td ($)Tj /TT2 1 Tf 1.2 0 Td (ln -s ../foo foo/testdir)Tj /T1_2 1 Tf 17.2 0 Td [(cr)18(eate a symbolic link)]TJ /TT0 1 Tf -18.4 -1.189 Td ($)Tj /TT2 1 Tf 1.2 0 Td (ls -l foo)Tj /TT0 1 Tf -1.2 -1.189 Td (total 0)Tj 0 -1.189 TD [(-rw-r----- )-600(1)-600(sar )]TJ 16.8 0 Td [(0)-600(Jan 22 00:16 a)]TJ -16.8 -1.189 Td [(lrwxrwxrwx )-600(1)-600(sar )]TJ 16.8 0 Td [(6)-600(Jan 22 00:16 testdir -> ../foo)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47202 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (608)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(If )-310(the )-310(socket )-310(descriptor )-310(is )-310(in )-310(nonblocking )-310(mode, )-310(which )-310(we )-310(discuss )-310(further )-310(in)]TJ -1.8 -1.2 Td [(Section )-386(16.8,)]TJ /TT0 1 Tf 6.465 0 Td (connect)Tj /T1_1 1 Tf 4.836 0 Td [(will )-386(r)18(eturn)]TJ /TT1 1 Tf 5.741 0 Td (!)Tj /T1_1 1 Tf 0.6358 Tc (1w)Tj 0 Tc 2.519 0 Td (ith)Tj /TT0 1 Tf 1.835 0 Td (errno)Tj /T1_1 1 Tf 3.636 0 Td [(set )-386(to )-386(the )-386(special )-386(err)18(or )-386(code)]TJ /TT0 1 Tf -25.03 -1.2 Td (EINPROGRESS)Tj /T1_1 1 Tf 6.929 0 Td [(if )-79(the )-79(connection )-79(can\325t )-79(be )-79(established )-79(immediately)]TJ 0.5793 Tc 22.41 0 Td (.T)Tj 0 Tc 1.442 0 Td [(he )-79(application )-79(can)]TJ -30.781 -1.2 Td [(use )-124(either)]TJ /TT0 1 Tf 4.807 0 Td (poll)Tj /T1_1 1 Tf 2.774 0 Td (or)Tj /TT0 1 Tf 1.315 0 Td (select)Tj /T1_1 1 Tf 3.974 0 Td [(to )-124(determine )-124(when )-124(the )-124(\336le )-124(descriptor )-124(is )-124(writable.)-627(At )-124(this)]TJ -12.871 -1.2 Td (point, the connection is complete.)Tj 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.166 0 Td (connect)Tj /T1_1 1 Tf 4.692 0 Td [(function )-242(can )-242(also )-242(be )-242(used )-242(with )-242(a )-242(connectionless )-242(network )-242(service)]TJ -8.659 -1.2 Td (\()Tj /TT0 1 Tf (SOCK_DGRAM)Tj /T1_1 1 Tf [(\). )-311(This)-310(might )-61(seem )-61(like )-61(a )-61(contradiction, )-61(but )-61(it )-61(is )-61(an )-61(optimization )-61(instead.)]TJ 0 -1.2 TD [(If )-45(we )-45(call)]TJ /TT0 1 Tf 4.393 0 Td (connect)Tj /T1_1 1 Tf 4.495 0 Td [(with )-45(a)]TJ /TT0 1 Tf 3.123 0 Td (SOCK_DGRAM)Tj /T1_1 1 Tf 6.295 0 Td [(socket, )-45(the )-45(destination )-45(addr)19(ess )-45(of )-45(all )-45(messages)]TJ -18.306 -1.2 Td [(we )-20(send )-20(is )-20(set )-20(to )-20(the )-20(addr)16(ess )-20(we )-20(speci\336ed )-20(in )-20(the)]TJ /TT0 1 Tf 21.519 0 Td (connect)Tj /T1_1 1 Tf 4.47 0 Td [(call, )-20(r)18(elieving )-20(us )-20(fr)18(om )-20(having)]TJ -25.989 -1.2 Td [(to )-75(pr)18(ovide )-75(the )-75(addr)19(ess )-75(every )-75(time )-75(we )-75(transmit )-75(a )-75(message.)-575(In )-75(addition, )-75(we )-75(will )-75(r)21(eceive)]TJ 0 -1.2 Td [(datagrams only fr)18(om the addr)18(ess we\325ve speci\336ed.)]TJ 0.5037 Tc 1.8 -1.2 Td (As)Tj 0 Tc 1.706 0 Td [(erver )-254(announces )-254(that )-254(it )-254(is )-254(willing )-254(to )-254(accept )-254(connect )-254(r)18(equests )-254(by )-254(calling )-254(the)]TJ /TT0 1 Tf -3.506 -1.2 Td (listen)Tj /T1_1 1 Tf 3.85 0 Td (function.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.591 509.4694 Tm (#include )Tj 0 -1.783 TD (int listen\(int)Tj /T1_2 1 Tf 9 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.262 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (backlog)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 11.789 -1.783 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4729.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 460.5447 Tm (The)Tj /T1_2 1 Tf 2.376 0 Td (backlog)Tj /T1_1 1 Tf 3.682 0 Td [(ar)18(gument )-452(pr)18(ovides )-452(a )-452(hint )-452(to )-452(the )-452(system )-452(r)18(egar)18(ding )-452(the )-452(number )-452(of)]TJ -6.058 -1.2 Td [(outstanding )-232(connect )-232(r)18(equests )-232(that )-232(it )-232(should )-232(enqueue )-232(on )-232(behalf )-232(of )-232(the )-232(pr)18(ocess. )-482(The)]TJ 0 -1.2 TD [(actual )-8(value )-8(is )-8(determined )-8(by )-8(the )-8(system, )-8(but )-8(the )-8(upper )-8(limit )-8(is )-8(speci\336ed )-8(as)]TJ /TT0 1 Tf 33.6 0 Td (SOMAXCONN)Tj /T1_1 1 Tf -33.6 -1.2 Td (in)Tj /TT0 1 Tf 1.123 0 Td ()Tj /T1_1 1 Tf (.)Tj 7.999 0 0 7.999 183.5779 404.5514 Tm [(On )-84(Solaris, )-84(the)]TJ /TT0 1 Tf 6.979 0 Td (SOMAXCONN)Tj /T1_1 1 Tf 5.734 0 Td [(value )-84(in)]TJ /TT0 1 Tf 3.979 0 Td ()Tj /T1_1 1 Tf 8.734 0 Td [(is )-84(ignor)18(ed. )-334(The)-334(particular )-84(maximum)]TJ -25.427 -1.25 Td [(depends on the implementation of each pr)18(otocol. )-250(For)-250(TCP)]TJ 0.25 Tc 25.717 0 Td (,t)Tj 0 Tc 0.826 0 Td (he default is 128.)Tj 9.9988 0 0 9.9988 147.5826 372.5553 Tm [(Once )-178(the )-178(queue )-178(is )-178(full, )-178(the )-178(system )-178(will )-178(r)18(eject )-178(additional )-178(connect )-178(r)18(equests, )-178(so )-178(the)]TJ /T1_2 1 Tf -1.8 -1.2 Td (backlog)Tj /T1_1 1 Tf 3.298 0 Td [(value )-68(must )-68(be )-68(chosen )-68(based )-68(on )-68(the )-68(expected )-68(load )-68(of )-68(the )-68(server )-68(and )-68(the )-68(amount)]TJ -3.298 -1.2 Td [(of pr)18(ocessing it must do to accept a connect r)18(equest and start the service.)]TJ 1.8 -1.2 Td [(Once )-44(a )-44(server )-44(has )-44(called)]TJ /TT0 1 Tf 11.119 0 Td (listen)Tj /T1_1 1 Tf 0.2938 Tc (,t)Tj 0 Tc 4.47 0 Td [(he )-44(socket )-44(used )-44(can )-44(r)19(eceive )-44(connect )-44(r)19(equests. )-294(W)92(e)]TJ -17.389 -1.2 Td (use the)Tj /TT0 1 Tf 3.393 0 Td (accept)Tj /T1_1 1 Tf 3.85 0 Td [(function to r)18(etrieve a connect r)18(equest and convert it into a connection.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5831 309.0629 Tm (#include )Tj 0 -1.783 TD (int accept\(int)Tj /T1_2 1 Tf 9 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 4.262 0 Td (truct sockaddr *restrict)Tj /T1_2 1 Tf 15 0 Td (addr)Tj /TT0 1 Tf (,)Tj -21.662 -1.189 Td (socklen_t *restrict)Tj /T1_2 1 Tf 12 0 Td (len)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -1.077 -1.783 Td (Returns: \336le \(socket\) descriptor if OK,)Tj /TT1 1 Tf 16.941 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2618.25 cm 0 0 m 0 563 l 3900 563 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 249.4551 Tm [(The )-120(\336le )-120(descriptor )-120(r)18(eturned )-120(by)]TJ /TT0 1 Tf 14.37 0 Td (accept)Tj /T1_1 1 Tf 3.97 0 Td [(is )-120(a )-120(socket )-120(descriptor )-120(that )-120(is )-120(connected )-120(to )-120(the)]TJ -18.34 -1.2 Td [(client )-122(that )-122(called)]TJ /TT0 1 Tf 7.879 0 Td (connect)Tj /T1_1 1 Tf 0.622 Tc (.T)Tj 0 Tc 5.685 0 Td [(his )-122(new )-122(socket )-122(descriptor )-122(has )-122(the )-122(same )-122(socket )-122(type )-122(and)]TJ -13.564 -1.2 Td [(addr)18(ess )-90(family )-90(as )-90(the )-90(original )-90(socket )-90(\()]TJ /T1_2 1 Tf 17.194 0 Td (sockfd)Tj /T1_1 1 Tf [(\). )-340(The)-341(original )-91(socket )-91(passed )-91(to)]TJ /TT0 1 Tf 17.15 0 Td (accept)Tj /T1_1 1 Tf 3.941 0 Td (is)Tj -38.285 -1.2 Td [(not )-93(associated )-93(with )-93(the )-93(connection, )-93(but )-93(instead )-93(r)18(emains )-93(available )-93(to )-93(r)18(eceive )-93(additional)]TJ 0 -1.2 TD [(connect r)18(equests.)]TJ 1.8 -1.2 Td [(If )-24(we )-24(don\325t )-24(car)]TJ 0.274 Tc 6.469 0 Td (ea)Tj 0 Tc 1.253 0 Td [(bout )-24(the )-24(client\325s )-24(identity)111(,)-274(we)-274(can )-24(set )-24(the)]TJ /T1_2 1 Tf 17.779 0 Td (addr)Tj /T1_1 1 Tf 2.107 0 Td (and)Tj /T1_2 1 Tf 1.967 0 Td (len)Tj /T1_1 1 Tf 1.497 0 Td [(parameters )-24(to)]TJ /TT0 1 Tf -32.872 -1.2 Td (NULL)Tj /T1_1 1 Tf 0.5564 Tc (.O)Tj 0 Tc 3.992 0 Td [(therwise, )-56(befor)]TJ 0.3064 Tc 6.654 0 Td (ec)Tj 0 Tc 1.229 0 Td (alling)Tj /TT0 1 Tf 2.817 0 Td (accept)Tj /T1_1 1 Tf [(,)-306(we)-306(n)-1(eed )-56(to )-56(set )-56(the)]TJ /T1_2 1 Tf 12.64 0 Td (addr)Tj /T1_1 1 Tf 2.139 0 Td [(parameter )-56(to )-56(a )-56(buf)17(fer)]TJ -29.473 -1.2 Td [(lar)18(ge )-53(enough )-53(to )-53(hold )-53(the )-53(addr)18(ess )-53(and )-53(set )-53(the )-53(integer )-53(pointed )-53(to )-53(by)]TJ /T1_2 1 Tf 30.042 0 Td (len)Tj /T1_1 1 Tf 1.526 0 Td [(to )-53(the )-53(size )-53(of )-53(the)]TJ -31.568 -1.2 Td [(buf)18(fer )-170(in )-170(bytes.)-670(On )-170(r)16(eturn,)]TJ /TT0 1 Tf 12.871 0 Td (accept)Tj /T1_1 1 Tf 4.02 0 Td [(will )-170(\336ll )-170(in )-170(the )-170(client\325s )-170(addr)18(ess )-170(in )-170(the )-170(buf)18(fer )-170(and)]TJ -16.891 -1.2 Td (update the integer pointed to by)Tj /T1_2 1 Tf 14.532 0 Td (len)Tj /T1_1 1 Tf 1.473 0 Td [(to r)18(e\337ect the size of the addr)18(ess.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47203 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (817)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(143 )-2400(err)]TJ 0.6 Tc 7.2 0 Td (=p)Tj 0 Tc 1.8 0 Td (thread_create\(&tid, NULL, printer_thread, NULL\);)Tj -9 -1.189 Td [(144 )-2400(if)-600(\(err == 0\))]TJ 0 -1.189 TD [(145 )-4800(err)]TJ 0.6 Tc 9.6 0 Td (=p)Tj 0 Tc 1.8 0 Td (thread_create\(&tid, NULL, signal_thread, NULL\);)Tj -11.4 -1.189 Td [(146 )-2400(if)-600(\(err != 0\))]TJ T* [(147 )-4800(log_exit\(err,)-600("can\325t create thread"\);)]TJ 0 -1.189 TD [(148 )-2400(build_qonstart\(\);)]TJ 0 -1.902 TD [(149 )-2400(log_msg\("daemon)-600(initialized"\);)]TJ 0 -1.902 TD [(150 )-2400(for)-600(\(;;\) {)]TJ 0 -1.189 TD [(151 )-4800(rset)]TJ 0.6 Tc 10.2 0 Td (=r)Tj 0 Tc 1.8 0 Td (endezvous;)Tj -12 -1.189 Td [(152 )-4800(if)-600(\(select\(maxfd+1, &rset, NULL, NULL, NULL\) < 0\))]TJ T* (153 )Tj 9.6 0 Td [(log_sys\("select)-600(failed"\);)]TJ -9.6 -1.189 Td [(154 )-4800(for)-600(\(i = 0; i <= maxfd; i++\) {)]TJ T* (155 )Tj 9.6 0 Td [(if)-600(\(FD_ISSET\(i, &rset\)\) {)]TJ -9.6 -1.189 Td (156 )Tj 12 0 Td (/*)Tj -12 -1.189 Td (157 )Tj 12.6 0 Td [(*)-600(Accept the connection and handle the request.)]TJ -12.6 -1.189 Td (158 )Tj 12.6 0 Td (*/)Tj -12.6 -1.189 Td (159 )Tj 12 0 Td [(if)-600(\(\(sockfd = accept\(i, NULL, NULL\)\) < 0\))]TJ -12 -1.189 Td (160 )Tj 14.4 0 Td [(log_ret\("accept)-600(failed"\);)]TJ -14.4 -1.189 Td (161 )Tj 12 0 Td [(pthread_create\(&tid,)-600(NULL, client_thread,)]TJ -12 -1.189 Td (162 )Tj 13.2 0 Td [(\(void)-600(*\)\(\(long\)sockfd\)\);)]TJ -13.2 -1.189 Td (163 )Tj 9.6 0 Td (})Tj -9.6 -1.189 Td [(164 )-4800(})]TJ 0 -1.189 TD [(165 )-2400(})]TJ 0 -1.189 TD [(166 )-2400(exit\(1\);)]TJ T* [(167 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3850.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 361.0147 Tm [([143 )167(\320 )167(149])]TJ -0.092 Tc 5 0 Td [(We )-224(c)]TJ -0.018 Tc 2.121 0 Td (re)Tj 0 Tc 0.856 0 Td [(ate )-40(one )-40(thr)18(ead )-40(to )-40(handle )-40(signals )-40(and )-40(one )-40(thr)18(ead )-40(to )-40(communicate )-40(with)]TJ -2.977 -1.2 Td [(the )-219(printer)]TJ 0.7194 Tc 4.851 0 Td (.\()Tj 0 Tc 1.302 0 Td [(By )-219(r)18(estricting )-219(printer )-219(communication )-219(to )-219(one )-219(thr)18(ead, )-219(we )-219(can)]TJ -6.154 -1.2 Td [(simplify )-221(the )-221(locking )-221(of )-221(the )-221(printer)20(-r)18(elated )-221(data )-221(str)9(uctur)18(es.\) )-471(Then)-470(we )-221(call)]TJ /TT0 1 Tf 0 -1.2 Td (build_qonstart)Tj /T1_0 1 Tf 8.818 0 Td [(to )-168(sear)18(ch )-168(the )-168(dir)19(ectories )-168(in)]TJ /TT0 1 Tf 12.69 0 Td (/var/spool/printer)Tj /T1_0 1 Tf 11.218 0 Td (for)Tj -32.726 -1.2 Td [(any )-274(pending )-274(jobs.)-775(For )-274(each )-274(job )-274(that )-274(we )-274(\336nd )-274(on )-274(disk, )-274(we )-274(will )-274(cr)18(eate )-274(a)]TJ 0 -1.2 TD [(str)8(uctur)18(e)-406(to)-406(l)-1(et )-156(the )-156(printer )-156(thr)17(ead )-156(know )-156(that )-156(it )-156(should )-156(send )-156(the )-156(\336le )-156(to )-156(the)]TJ -0 -1.2 Td (printer)Tj 0.7281 Tc 2.995 0 Td (.A)Tj 0.4781 Tc 1.756 0 Td (tt)Tj 0 Tc 1.13 0 Td [(his )-228(point, )-228(we )-228(ar)]TJ 0.4781 Tc 7.517 0 Td (ed)Tj 0 Tc 1.568 0 Td [(one )-228(setting )-228(up )-228(the )-228(daemon, )-228(so )-228(we )-228(log )-228(a)]TJ -14.967 -1.2 Td [(message to indicate that the daemon has initialized successfully)111(.)]TJ -5 -1.6 Td [([150 )167(\320 )167(167])]TJ -0.092 Tc 5 0 Td [(We )-347(c)]TJ 0 Tc 2.244 0 Td [(opy )-163(the)]TJ /TT0 1 Tf 3.917 0 Td [(rendezvous )187(fd_set)]TJ /T1_0 1 Tf 10.427 0 Td [(str)8(uctur)]TJ 0.4134 Tc 3.49 0 Td (et)Tj 0 Tc 1.218 0 Td (o)Tj /TT0 1 Tf 0.959 0 Td (rset)Tj /T1_0 1 Tf 2.813 0 Td [(and )-163(call)]TJ /TT0 1 Tf 4.046 0 Td (select)Tj /T1_0 1 Tf 4.013 0 Td (to)Tj -33.128 -1.2 Td [(wait )-174(for )-174(one )-174(of )-174(the )-174(\336le )-174(descriptors )-174(to )-174(become )-174(r)17(eadable. )-424(W)]TJ 0.424 Tc 27.104 0 Td (eh)Tj 0 Tc 1.485 0 Td [(ave )-174(to )-174(copy)]TJ /TT0 1 Tf -28.589 -1.2 Td (rendezvous)Tj /T1_0 1 Tf 0.4153 Tc (,b)Tj 0 Tc 7.218 0 Td (ecause)Tj /TT0 1 Tf 3.344 0 Td (select)Tj /T1_0 1 Tf 4.015 0 Td [(will )-165(modify )-165(the)]TJ /TT0 1 Tf 7.56 0 Td (fd_set)Tj /T1_0 1 Tf 4.015 0 Td [(str)8(uctur)]TJ 0.4154 Tc 3.49 0 Td (et)Tj 0 Tc 1.22 0 Td [(hat )-165(we)]TJ -30.864 -1.2 Td [(pass )-98(to )-98(it )-98(to )-98(include )-98(only )-98(those )-98(\336le )-98(descriptors )-98(that )-98(satisfy )-98(the )-98(event.)-593(Since)]TJ T* [(the )-1(sockets )-1(have )-1(been )-1(initialized )-1(for )-1(use )-1(by )-1(a )-1(server)]TJ 0.251 Tc 22.569 0 Td (,ar)Tj 0 Tc 1.629 0 Td [(eadable )-1(\336le )-1(descriptor)]TJ -24.198 -1.2 Td [(means )-129(that )-129(a )-129(connect )-129(r)19(equest )-129(is )-129(pending.)-628(After)]TJ /TT0 1 Tf 22.01 0 Td (select)Tj /T1_0 1 Tf -0.018 Tc 3.979 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns, )-129(we )-129(check)]TJ /TT0 1 Tf -26.845 -1.2 Td (rset)Tj /T1_0 1 Tf 2.684 0 Td [(for )-34(a )-34(r)18(eadable )-34(\336le )-34(descriptor)]TJ 0.5343 Tc 12.514 0 Td (.I)Tj 0 Tc 1.121 0 Td [(f)-284(we)-284(\336)-1(nd )-34(one, )-34(we )-34(call)]TJ /TT0 1 Tf 9.846 0 Td (accept)Tj /T1_0 1 Tf 3.884 0 Td [(to )-34(accept)]TJ -30.05 -1.2 Td [(the )-59(connection.)-559(If )-59(this )-59(fails, )-59(we )-59(log )-59(an )-59(err)20(or )-59(message )-59(and )-59(continue )-59(checking)]TJ T* [(for )-94(mor)]TJ 0.344 Tc 3.424 0 Td (er)Tj 0 Tc 1.2 0 Td [(eadable )-94(\336le )-94(descriptors.)-594(Otherwise, )-94(we )-94(cr)18(eate )-94(a )-94(thr)18(ead )-94(to )-94(handle)]TJ -4.624 -1.2 Td [(the )-58(client )-58(connection.)-557(The)]TJ /TT0 1 Tf 12.027 0 Td (main)Tj /T1_0 1 Tf 2.708 0 Td [(thr)18(ead )-58(loops, )-58(farming )-58(r)18(equests )-58(out )-58(to )-58(other)]TJ -14.735 -1.2 Td [(thr)18(eads for pr)18(ocessing, and should never r)18(each the)]TJ /TT0 1 Tf 22.566 0 Td (exit)Tj /T1_0 1 Tf 2.65 0 Td (statement.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47204 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (648)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 172.7896 670.2598 Tm (for \(ptr = buf; ptr < &buf[nr]; \) {)Tj 2.4 -1.189 Td (if \(*ptr++ == 0\) {)Tj 2.4 -1.189 Td (if \(ptr != &buf[nr-1]\))Tj 2.4 -1.189 Td (err_dump\("message format error"\);)Tj -2.4 -1.189 Td [(status = *ptr & 0xFF;)-1800(/* prevent sign extension */)]TJ 0 -1.189 TD (if \(status == 0\) {)Tj 2.4 -1.189 Td (if \(msg.msg_controllen != CONTROLLEN\))Tj 2.4 -1.189 Td (err_dump\("status = 0 but no fd"\);)Tj -2.4 -1.189 Td (newfd = *\(int *\)CMSG_DATA\(cmptr\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (newfd = -status;)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (nr -= 2;)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj T* (if \(nr > 0 && \(*userfunc\)\(STDERR_FILENO, buf, nr\) != nr\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td [(if \(status >= 0\))-2400(/* final data has arrived */)]TJ 2.4 -1.189 Td [(return\(newfd\); )-600(/*)-600(descriptor, or -status */)]TJ -4.8 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4515.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 203.6836 435.4467 Tm (Figure 17.14)Tj /T1_1 1 Tf 6.195 0 Td (Receiving a \336le descriptor over a UNIX domain socket)Tj 9.9988 0 0 9.9988 129.5846 411.4496 Tm [(Note )-144(that )-144(we )-144(ar)]TJ 0.3937 Tc 7.287 0 Td (ea)Tj 0 Tc 1.373 0 Td [(lways )-144(pr)18(epar)18(ed )-144(to )-144(r)18(eceive )-144(a )-144(descriptor )-144(\(we )-144(set)]TJ /TT0 1 Tf 21.653 0 Td (msg_control)Tj /T1_1 1 Tf 6.994 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (msg_controllen)Tj /T1_1 1 Tf 8.945 0 Td (befor)Tj 0.5451 Tc 2.288 0 Td (ee)Tj 0 Tc 1.503 0 Td [(ach )-295(call )-295(to)]TJ /TT0 1 Tf 5.559 0 Td (recvmsg)Tj /T1_1 1 Tf [(\), )-295(but )-295(only )-295(if)]TJ /TT0 1 Tf 11.044 0 Td (msg_controllen)Tj /T1_1 1 Tf 8.945 0 Td (is)Tj -38.285 -1.2 Td [(nonzer)18(o)-250(on)-250(r)18(eturn did we actually r)18(eceive a descriptor)74(.)]TJ 1.8 -1.2 Td [(Recall )-51(the )-51(hoops )-51(we )-51(needed )-51(to )-51(jump )-51(thr)18(ough )-51(to )-51(determine )-51(the )-51(identity )-51(of )-51(the )-51(caller)]TJ -1.8 -1.2 Td [(in )-37(the)]TJ /TT0 1 Tf 2.834 0 Td (serv_accept)Tj /T1_1 1 Tf 6.887 0 Td [(function )-37(\(Figur)]TJ 0.2868 Tc 6.71 0 Td (e1)Tj 0 Tc 1.266 0 Td [(7.9\). )-287(It)-287(would )-37(have )-37(been )-37(better )-37(for )-37(the )-37(kernel )-37(to)]TJ -17.696 -1.2 Td [(pass )-164(us )-164(the )-164(cr)18(edentials )-164(of )-164(the )-164(caller )-164(on )-164(r)18(eturn )-164(fr)18(om )-164(the )-164(call )-164(to)]TJ /TT0 1 Tf 29.026 0 Td (accept)Tj /T1_1 1 Tf 0.6638 Tc (.S)Tj 0 Tc 5.039 0 Td [(ome )-164(UNIX)]TJ -34.065 -1.2 Td [(domain )-542(socket )-542(implementations )-542(pr)17(ovide )-542(similar )-542(functionality )-542(when )-542(exchanging)]TJ 0 -1.2 TD [(messages, but their interfaces dif)18(fer)74(.)]TJ 7.999 0 0 7.999 183.5784 307.4621 Tm [(Fr)18(eeBSD )-256(8.0 )-256(and )-256(Linux )-256(3.2.0 )-256(pr)18(ovide )-256(support )-256(for )-256(sending )-256(cr)18(edentials )-256(over )-256(UNIX )-256(domain)]TJ 0 -1.25 Td [(sockets, )-99(but )-99(they )-99(do )-99(it )-99(dif)17(fer)18(ently)]TJ 0.5993 Tc 14.923 0 Td (.M)Tj 0 Tc 1.795 0 Td [(ac )-99(OS )-99(X )-99(10.6.8 )-99(is )-99(derived )-99(in )-99(part )-99(fr)18(om )-99(Fr)18(eeBSD, )-99(but )-99(has)]TJ -16.718 -1.25 Td [(cr)18(edential )-16(passing )-16(disabled.)-516(Solaris )-16(10 )-16(doesn\325t )-16(support )-16(sending )-16(cr)17(edentials )-16(over )-16(UNIX )-16(domain)]TJ -0 -1.25 Td [(sockets. )-365(However)74(,)-365(it)-365(supports )-115(the )-115(ability )-115(to )-115(obtain )-115(the )-115(cr)18(edentials )-115(of )-115(a )-115(pr)18(ocess )-115(passing )-115(a )-115(\336le)]TJ 0 -1.25 Td [(descriptor over a STREAMS pipe, although we do not discuss the details h\ er)18(e.)]TJ -0.055 Tc 9.9988 0 0 9.9988 147.5828 245.4695 Tm (Wi)Tj 0 Tc 1.236 0 Td [(th Fr)18(eeBSD, cr)18(edentials ar)]TJ 0.25 Tc 11.39 0 Td (et)Tj 0 Tc 1.055 0 Td (ransmitted as a)Tj /TT0 1 Tf 6.991 0 Td (cmsgcred)Tj /T1_1 1 Tf 5.05 0 Td [(str)8(uctur)18(e:)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5832 228.7715 Tm (#define CMGROUP_MAX 16)Tj 0 -1.783 TD (struct cmsgcred {)Tj 2.4 -1.189 Td [(pid_t )-600(cmcred_pid;)]TJ 21.6 0 Td (/* sender\325s process ID */)Tj -21.6 -1.189 Td [(uid_t )-600(cmcred_uid;)]TJ 21.6 0 Td (/* sender\325s real UID */)Tj -21.6 -1.189 Td [(uid_t )-600(cmcred_euid;)]TJ 21.6 0 Td (/* sender\325s effective UID */)Tj -21.6 -1.189 Td [(gid_t )-600(cmcred_gid;)]TJ 21.6 0 Td (/* sender\325s real GID */)Tj -21.6 -1.189 Td [(short )-600(cmcred_ngroups;)]TJ 21.6 0 Td (/* number of groups */)Tj -21.6 -1.189 Td [(gid_t )-600(cmcred_groups[CMGROUP_MAX]; )-600(/*)-600(groups */)]TJ -2.4 -1.189 Td (};)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47205 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (640)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-211(server )-211(blocks )-211(in )-211(the )-211(call )-211(to)]TJ /TT0 1 Tf 15.109 0 Td (accept)Tj /T1_1 1 Tf 0.4609 Tc (,w)Tj 0 Tc 5.145 0 Td [(aiting )-211(for )-211(a )-211(client )-211(to )-211(call)]TJ /TT0 1 Tf 11.896 0 Td (cli_conn)Tj /T1_1 1 Tf (.)Tj -33.95 -1.2 Td (When)Tj /TT0 1 Tf 3.002 0 Td (accept)Tj /T1_1 1 Tf -0.018 Tc 3.959 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns, )-109(its )-109(r)17(eturn )-109(value )-109(is )-109(a )-109(brand-new )-109(descriptor )-109(that )-109(is )-109(connected )-109(to)]TJ -7.818 -1.2 Td [(the )-119(client.)-618(Additionally)]TJ 0.3687 Tc 10.6 0 Td (,t)Tj 0 Tc 0.945 0 Td [(he )-119(pathname )-119(that )-119(the )-119(client )-119(assigned )-119(to )-119(its )-119(socket )-119(\(the )-119(name)]TJ -11.545 -1.2 Td [(that )-258(contained )-258(the )-258(client\325s )-258(pr)18(ocess )-258(ID\) )-258(is )-258(r)19(eturned )-258(by)]TJ /TT0 1 Tf 25.582 0 Td (accept)Tj /T1_1 1 Tf 0.5077 Tc (,t)Tj 0 Tc 4.684 0 Td [(hr)18(ough )-258(the )-258(second)]TJ -30.266 -1.2 Td [(ar)18(gument )-185(\(the )-185(pointer )-185(to )-185(the)]TJ /TT0 1 Tf 13.682 0 Td (sockaddr_un)Tj /T1_1 1 Tf 7.036 0 Td [(str)8(uctur)18(e\). )-435(W)]TJ 0.4355 Tc 6.146 0 Td (ec)Tj 0 Tc 1.359 0 Td [(opy )-185(this )-185(pathname )-185(and)]TJ -28.221 -1.2 Td (ensur)Tj 0.4204 Tc 2.465 0 Td (et)Tj 0 Tc 1.225 0 Td [(hat )-170(it )-170(is )-170(null )-170(terminated )-170(\(if )-170(the )-170(pathname )-170(takes )-170(up )-170(all )-170(available )-170(space )-170(in )-170(the)]TJ /TT0 1 Tf -3.69 -1.2 Td (sun_path)Tj /T1_1 1 Tf 5.399 0 Td [(member )-349(of )-349(the)]TJ /TT0 1 Tf 7.735 0 Td (sockaddr_un)Tj /T1_1 1 Tf 7.199 0 Td [(str)8(uctur)18(e, )-349(ther)]TJ 0.599 Tc 6.582 0 Td (ew)Tj 0 Tc 1.912 0 Td [(on\325t )-349(be )-349(r)18(oom )-349(for )-349(the)]TJ -28.827 -1.2 Td [(terminating )-210(null )-210(byte\).)-710(Then )-210(we )-210(call)]TJ /TT0 1 Tf 17.583 0 Td (stat)Tj /T1_1 1 Tf 2.861 0 Td [(to )-210(verify )-210(that )-210(the )-210(pathname )-210(is )-210(indeed )-210(a)]TJ -20.443 -1.2 Td [(socket )-49(and )-49(that )-49(the )-49(permissions )-49(allow )-49(only )-49(user)19(-r)18(ead, )-49(user)18(-write, )-49(and )-49(user)18(-execute. )-299(W)92(e)]TJ 0 -1.2 Td [(also )-54(verify )-54(that )-54(the )-54(thr)18(ee )-54(times )-54(associated )-54(with )-54(the )-54(socket )-54(ar)20(e)-304(no)-304(older )-54(than )-54(30 )-54(seconds.)]TJ -0 -1.2 Td [(\(Recall )-139(fr)18(om )-139(Section )-139(6.10 )-139(that )-139(the)]TJ /TT0 1 Tf 15.542 0 Td (time)Tj /T1_1 1 Tf 2.789 0 Td [(function )-139(r)18(eturns )-139(the )-139(curr)18(ent )-139(time )-139(and )-139(date )-139(in)]TJ -18.331 -1.2 Td (seconds past the Epoch.\))Tj 1.8 -1.2 Td [(If )-15(all )-15(these )-15(checks )-15(ar)]TJ 0.2648 Tc 8.908 0 Td (eO)Tj 0 Tc 1.53 0 Td [(K, )-15(we )-15(assume )-15(that )-15(the )-15(identity )-15(of )-15(the )-15(client )-15(\(its )-15(ef)18(fective )-15(user)]TJ -12.237 -1.2 Td [(ID\) )-44(is )-44(the )-44(owner )-44(of )-44(the )-44(socket.)-544(Although )-44(this )-44(check )-44(isn\325t )-44(perfect, )-44(it\325s )-44(the )-44(best )-44(we )-44(can )-44(do)]TJ 0 -1.2 TD [(with )-60(curr)18(ent )-60(systems.)-560(\(It )-60(would )-60(be )-60(better )-60(if )-60(the )-60(kernel )-60(r)18(eturned )-60(the )-60(ef)18(fective )-60(user )-60(ID )-60(to)]TJ T* [(us thr)18(ough a parameter to)]TJ /TT0 1 Tf 11.779 0 Td (accept)Tj /T1_1 1 Tf (.\))Tj -9.979 -1.2 Td [(The )-120(client )-120(initiates )-120(the )-120(connection )-120(to )-120(the )-120(server )-120(by )-120(calling )-120(the)]TJ /TT0 1 Tf 28.323 0 Td (cli_conn)Tj /T1_1 1 Tf 5.17 0 Td (function)Tj -35.293 -1.2 Td (\(Figur)Tj 0.25 Tc 2.716 0 Td (e1)Tj 0 Tc 1.229 0 Td (7.10\).)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4578.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 448.2452 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj T* (#include )Tj 0 -1.902 TD [(#define CLI_PATH)-2400("/var/tmp/")]TJ 0 -1.189 TD [(#define CLI_PERM)-2400(S_IRWXU )-4800(/*)-600(rwx for user only */)]TJ 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (reate a client endpoint and connect to a server.)Tj 0.6 Tc -1.8 -1.189 Td (*R)Tj 0 Tc 1.8 0 Td (eturns fd if all OK, <0 on error.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (int)Tj 0 -1.189 TD (cli_conn\(const char *name\))Tj T* ({)Tj 2.4 -1.189 Td (int )Tj 12 0 Td [(fd,)-600(len, err, rval;)]TJ -12 -1.189 Td [(struct sockaddr_un)-1200(un, sun;)]TJ T* (int )Tj 12 0 Td (do_unlink)Tj 0.6 Tc 6 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -19.8 -1.902 Td (if \(strlen\(name\) >= sizeof\(un.sun_path\)\) {)Tj 2.4 -1.189 Td (errno = ENAMETOOLONG;)Tj T* (return\(-1\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (/* create a UNIX domain stream socket */)Tj 0 -1.189 TD (if \(\(fd = socket\(AF_UNIX, SOCK_STREAM, 0\)\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.902 Td (/* fill socket address structure with our address */)Tj T* (memset\(&un, 0, sizeof\(un\)\);)Tj T* (un.sun_family = AF_UNIX;)Tj T* (sprintf\(un.sun_path, "%s%05ld", CLI_PATH, \(long\)getpid\(\)\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47206 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.3)]TJ 34.529 0 Td [(Unique )-250(Connections)]TJ /T1_1 1 Tf 11.304 0 Td (639)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (if \(\(name = malloc\(sizeof\(un.sun_path + 1\)\)\) == NULL\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td (len = sizeof\(un\);)Tj 0 -1.189 TD (if \(\(clifd = accept\(listenfd, \(struct sockaddr *\)&un, &len\)\) < 0\)\ {)Tj 2.4 -1.189 Td (free\(name\);)Tj 0 -1.189 TD [(return\(-2\); )-2400(/*)-600(often errno=EINTR, if signal caught */)]TJ -2.4 -1.189 Td (})Tj 0 -1.902 TD (/* obtain the client\325s uid from its calling address */)Tj 0 -1.189 TD (len -= offsetof\(struct sockaddr_un, sun_path\); /* len of pathname */)Tj T* (memcpy\(name, un.sun_path, len\);)Tj T* (name[len] = 0;)Tj 14.4 0 Td (/* null terminate */)Tj -14.4 -1.189 Td (if \(stat\(name, &statbuf\) < 0\) {)Tj 2.4 -1.189 Td (rval = -3;)Tj T* (goto errout;)Tj -2.4 -1.189 Td (})Tj -2.4 -1.902 Td [(#ifdef )-600(S_ISSOCK)-2400(/* not defined for SVR4 */)]TJ 2.4 -1.189 Td (if \(S_ISSOCK\(statbuf.st_mode\) == 0\) {)Tj 2.4 -1.189 Td [(rval = -4;)-3600(/* not a socket */)]TJ 0 -1.189 TD (goto errout;)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (#endif)Tj 2.4 -1.902 Td (if \(\(statbuf.st_mode & \(S_IRWXG | S_IRWXO\)\) ||)Tj 2.4 -1.189 Td (\(statbuf.st_mode & S_IRWXU\) != S_IRWXU\) {)Tj 1.2 -1.189 Td [(rval = -5;)-2400(/* is not rwx------ */)]TJ T* (goto errout;)Tj -3.6 -1.189 Td (})Tj 0 -1.902 TD (staletime = time\(NULL\) - STALE;)Tj 0 -1.189 TD (if \(statbuf.st_atime < staletime ||)Tj 2.4 -1.189 Td (statbuf.st_ctime < staletime ||)Tj T* (statbuf.st_mtime < staletime\) {)Tj 1.2 -1.189 Td [(rval = -6;)-2400(/* i-node is too old */)]TJ T* (goto errout;)Tj -3.6 -1.189 Td (})Tj 0 -1.902 TD (if \(uidptr != NULL\))Tj 2.4 -1.189 Td [(*uidptr = statbuf.st_uid;)-1800(/* return uid of caller */)]TJ -2.4 -1.189 Td [(unlink\(name\); )-3600(/*)-600(we\325re done with pathname now */)]TJ 0 -1.189 TD (free\(name\);)Tj 0 -1.189 TD (return\(clifd\);)Tj -2.4 -1.902 Td (errout:)Tj 2.4 -1.189 Td (err = errno;)Tj 0 -1.189 TD (close\(clifd\);)Tj T* (free\(name\);)Tj T* (errno = err;)Tj T* (return\(rval\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1562.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 251.8658 141.362 Tm (Figure 17.9)Tj /T1_0 1 Tf 5.695 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (serv_accept)Tj /T1_0 1 Tf 6.85 0 Td (function)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47207 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.5)]TJ 37.602 0 Td [(Data )-250(T)90(ransfer)]TJ /T1_1 1 Tf 8.231 0 Td (617)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(To )-376(\336)]TJ 0 Tc 2.114 0 Td [(nd )-192(its )-192(addr)17(ess, )-192(the )-192(server )-192(needs )-192(to )-192(get )-192(the )-192(name )-192(of )-192(the )-192(host )-192(on )-192(which )-192(it )-192(is)]TJ -0.008 Tc -3.914 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td [(nning. )-78(If )-78(the )-78(maximum )-78(host )-78(name )-78(length )-78(is )-78(indeterminate, )-78(we )-78(use)]TJ /TT0 1 Tf 30.21 0 Td (HOST_NAME_MAX)Tj /T1_0 1 Tf -31.2 -1.2 Td [(instead. )-275(If)-275(the )-25(system )-25(doesn\325t )-25(de\336ne)]TJ /TT0 1 Tf 16.514 0 Td (HOST_NAME_MAX)Tj /T1_0 1 Tf [(,)-275(we)-275(de\336ne )-25(it )-25(ourselves.)-525(POSIX.1)]TJ -0.018 Tc -16.514 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(es )-207(the )-207(maximum )-207(host )-207(name )-207(length )-207(to )-207(be )-207(at )-207(least )-207(255 )-207(bytes, )-207(not )-207(including )-207(the)]TJ -0.856 -1.2 Td [(terminating )-146(null, )-146(so )-146(we )-146(de\336ne)]TJ /TT0 1 Tf 14.25 0 Td (HOST_NAME_MAX)Tj /T1_0 1 Tf 8.196 0 Td [(to )-146(be )-146(256 )-146(to )-146(include )-146(the )-146(terminating)]TJ -22.446 -1.2 Td (null.)Tj 1.8 -1.2 Td [(The )-101(server )-101(gets )-101(the )-101(host )-101(name )-101(by )-101(calling)]TJ /TT0 1 Tf 18.774 0 Td (gethostname)Tj /T1_0 1 Tf 6.951 0 Td [(and )-101(looks )-101(up )-101(the )-101(addr)20(ess)]TJ -27.524 -1.2 Td [(for )-236(the )-236(r)18(emote )-236(uptime )-236(service.)-736(Multiple )-236(addr)18(esses )-236(can )-236(be )-236(r)18(eturned, )-236(but )-236(we )-236(simply)]TJ 0 -1.2 TD [(choose )-41(the )-41(\336rst )-41(one )-41(for )-41(which )-41(we )-41(can )-41(establish )-41(a )-41(passive )-41(socket )-41(endpoint )-41(\(i.e., )-41(one )-41(used)]TJ T* [(only to listen for connect r)18(equests\). )-250(Handling)-250(multiple addr)18(esses is left as an exer)18(cise.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-190(u)]TJ 0 Tc 2.246 0 Td [(se )-6(the)]TJ /TT0 1 Tf 2.801 0 Td (initserver)Tj /T1_0 1 Tf 6.256 0 Td [(function )-6(fr)18(om )-6(Figur)]TJ 0.2557 Tc 8.74 0 Td (e1)Tj 0 Tc 1.235 0 Td [(6.12 )-6(to )-6(initialize )-6(the )-6(socket )-6(endpoint)]TJ -23.078 -1.2 Td [(on )-12(which )-12(we )-12(will )-12(wait )-12(for )-12(connect )-12(r)17(equests )-12(to )-12(arrive.)-513(\(Actually)111(,)-262(we)-262(u)-1(se )-12(the )-12(version )-12(fr)17(om)]TJ 0 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (6.22; we\325ll see why when we discuss socket options in Section 16.6.\)\ )Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5250.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 9.9988 0 0 9.9988 93.5888 493.7407 Tm [(Example )195(\321 )195(Alternative)-279(Connection-Oriented Ser)-10(ver)]TJ /T1_0 1 Tf 3.6 -2.16 Td [(Pr)18(eviously)111(,)-568(we)-568(stated )-318(that )-318(using )-318(\336le )-318(descriptors )-318(to )-318(access )-318(sockets )-318(was )-318(signi\336cant,)]TJ T* [(because )-238(it )-238(allowed )-238(pr)18(ograms )-238(that )-238(knew )-238(nothing )-238(about )-238(networking )-238(to )-238(be )-238(used )-238(in )-238(a)]TJ T* [(networked )-9(envir)18(onment. )-259(The)-260(version )-10(of )-10(the )-10(server )-10(shown )-10(in )-10(Figur)]TJ 0.2596 Tc 29.519 0 Td (e1)Tj 0 Tc 1.239 0 Td [(6.18 )-10(illustrates )-10(this)]TJ -30.758 -1.2 Td [(point. )-416(Instead)-415(of )-166(r)18(eading )-166(the )-166(output )-166(of )-166(the)]TJ /TT0 1 Tf 20.364 0 Td (uptime)Tj /T1_0 1 Tf 4.016 0 Td [(command )-166(and )-166(sending )-166(it )-166(to )-166(the)]TJ -24.379 -1.2 Td [(client, )-287(the )-287(server )-287(arranges )-287(to )-287(have )-287(the )-287(standar)]TJ 0.5369 Tc 22.081 0 Td (do)Tj 0 Tc 1.694 0 Td [(utput )-287(and )-287(standar)]TJ 0.5369 Tc 8.546 0 Td (de)Tj 0 Tc 1.627 0 Td [(rr)18(or )-287(of )-287(the)]TJ /TT0 1 Tf -33.947 -1.2 Td (uptime)Tj /T1_0 1 Tf 3.85 0 Td (command be the socket endpoint connected to the client.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4050.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 395.4278 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (#define QLEN 10)Tj 0 -2.021 TD (#ifndef HOST_NAME_MAX)Tj 0 -1.189 TD (#define HOST_NAME_MAX 256)Tj T* (#endif)Tj 0 -2.021 TD (extern int initserver\(int, const struct sockaddr *, socklen_t, int\);)Tj 0 -2.021 TD (void)Tj 0 -1.189 TD (serve\(int sockfd\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-2400(clfd,)-600(status;)]TJ T* [(pid_t )-1200(pid;)]TJ 0 -2.021 TD (set_cloexec\(sockfd\);)Tj 0 -1.189 TD (for \(;;\) {)Tj 2.4 -1.189 Td (if \(\(clfd = accept\(sockfd, NULL, NULL\)\) < 0\) {)Tj 2.4 -1.189 Td (syslog\(LOG_ERR, "ruptimed: accept error: %s",)Tj 1.2 -1.189 Td (strerror\(errno\)\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47208 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.5)]TJ 37.602 0 Td [(Data )-250(T)90(ransfer)]TJ /T1_1 1 Tf 8.231 0 Td (615)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (err_exit\(err, "can\325t connect to %s", argv[1]\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6548.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 224.1171 638.7223 Tm (Figure 16.16)Tj /T1_0 1 Tf 6.195 0 Td [(Client command to get uptime fr)18(om server)]TJ 9.9988 0 0 9.9988 129.5846 614.7252 Tm [(This )-140(pr)18(ogram )-140(connects )-140(to )-140(a )-140(server)]TJ 0.3899 Tc 15.58 0 Td (,r)Tj 0 Tc 1.017 0 Td [(eads )-140(the )-140(string )-140(sent )-140(by )-140(the )-140(server)]TJ 0.3899 Tc 15.284 0 Td (,a)Tj 0 Tc 1.14 0 Td [(nd )-140(prints )-140(the)]TJ -33.021 -1.2 Td [(string )-108(on )-108(the )-108(standar)]TJ 0.3577 Tc 9.482 0 Td (do)Tj 0 Tc 1.515 0 Td [(utput. )-358(Since)-358(we\325r)]TJ 0.3578 Tc 7.964 0 Td (eu)Tj 0 Tc 1.44 0 Td [(sing )-108(a)]TJ /TT0 1 Tf 3.069 0 Td (SOCK_STREAM)Tj /T1_0 1 Tf 6.958 0 Td [(socket, )-108(we )-108(can\325t )-108(be)]TJ -30.427 -1.2 Td [(guaranteed )-53(that )-53(we )-53(will )-53(r)18(ead )-53(the )-53(entir)]TJ 0.3034 Tc 17.014 0 Td (es)Tj 0 Tc 1.206 0 Td [(tring )-53(in )-53(one )-53(call )-53(to)]TJ /TT0 1 Tf 8.545 0 Td (recv)Tj /T1_0 1 Tf [(,)-303(so)-303(we)-303(n)-1(eed )-53(to )-53(r)17(epeat)]TJ -26.766 -1.2 Td [(the call until it r)18(eturns 0.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.025 0 Td (getaddrinfo)Tj /T1_0 1 Tf 6.951 0 Td [(function )-101(might )-101(r)18(eturn )-101(mor)]TJ 0.3515 Tc 11.967 0 Td (et)Tj 0 Tc 1.156 0 Td [(han )-101(one )-101(candidate )-101(addr)18(ess )-101(for )-101(us)]TJ -23.9 -1.2 Td [(to )-37(use )-37(if )-37(the )-37(server )-37(supports )-37(multiple )-37(network )-37(interfaces )-37(or )-37(multiple )-37(network )-37(pr)19(otocols.)]TJ -0.092 Tc 0 -1.2 TD [(We )-283(t)]TJ 0 Tc 2.061 0 Td [(ry )-99(each )-99(one )-99(in )-99(turn, )-99(giving )-99(up )-99(when )-99(we )-99(\336nd )-99(one )-99(that )-99(allows )-99(us )-99(to )-99(connect )-99(to )-99(the)]TJ -2.061 -1.2 Td [(service. )-654(W)]TJ 0.6544 Tc 5.139 0 Td (eu)Tj 0 Tc 1.736 0 Td [(se )-404(the)]TJ /TT0 1 Tf 3.599 0 Td (connect_retry)Tj /T1_0 1 Tf 8.454 0 Td [(function )-404(fr)18(om )-404(Figur)]TJ 0.6543 Tc 9.538 0 Td (e1)Tj 0 Tc 1.633 0 Td [(6.1)55(1)-654(to)-654(e)-1(stablish )-404(a)]TJ -30.1 -1.2 Td [(connection with the server)74(.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5188.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 9.9982 0 0 9.9982 93.5832 487.5112 Tm [(Example )195(\321 )195(Connection-Oriented)-279(Ser )268(ver)]TJ /T1_0 1 Tf 3.6 -2.16 Td (Figur)Tj 0.2701 Tc 2.383 0 Td (e1)Tj 0 Tc 1.249 0 Td [(6.17 )-20(shows )-20(the )-20(server )-20(that )-20(pr)18(ovides )-20(the)]TJ /TT0 1 Tf 17.59 0 Td (uptime)Tj /T1_0 1 Tf 3.87 0 Td [(command\325s )-20(output )-20(to )-20(the )-20(client)]TJ -25.092 -1.2 Td [(pr)18(ogram fr)18(om Figur)]TJ 0.25 Tc 8.88 0 Td (e1)Tj 0 Tc 1.229 0 Td (6.16.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4468.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9978 0 0 8.9978 129.5689 437.1931 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj T* (#include )Tj T* (#include )Tj 0 -1.902 TD [(#define BUFLEN)-1200(128)]TJ 0 -1.189 TD (#define QLEN 10)Tj 0 -1.902 TD (#ifndef HOST_NAME_MAX)Tj 0 -1.189 TD (#define HOST_NAME_MAX 256)Tj 0 -1.189 TD (#endif)Tj 0 -1.902 TD (extern int initserver\(int, const struct sockaddr *, socklen_t, int\);)Tj T* (void)Tj 0 -1.189 TD (serve\(int sockfd\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-2400(clfd;)]TJ T* [(FILE )-1800(*fp;)]TJ T* [(char )-1800(buf[BUFLEN];)]TJ 0 -1.902 TD (set_cloexec\(sockfd\);)Tj 0 -1.189 TD (for \(;;\) {)Tj 2.4 -1.189 Td (if \(\(clfd = accept\(sockfd, NULL, NULL\)\) < 0\) {)Tj 2.4 -1.189 Td (syslog\(LOG_ERR, "ruptimed: accept error: %s",)Tj 1.2 -1.189 Td (strerror\(errno\)\);)Tj -1.2 -1.189 Td (exit\(1\);)Tj -2.4 -1.189 Td (})Tj T* (set_cloexec\(clfd\);)Tj T* (if \(\(fp = popen\("/usr/bin/uptime", "r"\)\) == NULL\) {)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47209 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.4)]TJ 31.974 0 Td [(Connection )-250(Establishment)]TJ /T1_1 1 Tf 13.859 0 Td (609)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(If )-52(no )-52(connect )-52(r)18(equests )-52(ar)]TJ 0.3019 Tc 10.958 0 Td (ep)Tj 0 Tc 1.382 0 Td (ending,)Tj /TT0 1 Tf 3.653 0 Td (accept)Tj /T1_0 1 Tf 3.902 0 Td [(will )-52(block )-52(until )-52(one )-52(arrives.)-551(If)]TJ /T1_2 1 Tf 13.827 0 Td (sockfd)Tj /T1_0 1 Tf 2.764 0 Td (is)Tj -38.285 -1.2 Td [(in )-275(nonblocking )-275(mode,)]TJ /TT0 1 Tf 10.746 0 Td (accept)Tj /T1_0 1 Tf 4.125 0 Td [(will )-275(r)18(eturn)]TJ /TT1 1 Tf 5.519 0 Td (!)Tj /T1_0 1 Tf 0.5249 Tc (1a)Tj 0 Tc 2.074 0 Td [(nd )-275(set)]TJ /TT0 1 Tf 3.472 0 Td (errno)Tj /T1_0 1 Tf 3.525 0 Td [(to )-275(either)]TJ /TT0 1 Tf 4.474 0 Td (EAGAIN)Tj /T1_0 1 Tf 4.125 0 Td (or)Tj /TT0 1 Tf -38.059 -1.2 Td (EWOULDBLOCK)Tj /T1_0 1 Tf (.)Tj 7.9995 0 0 7.9995 183.5889 624.9625 Tm (All four platforms discussed in this text de\336ne)Tj /TT0 1 Tf 20.746 0 Td (EAGAIN)Tj /T1_0 1 Tf 3.85 0 Td (to be the same as)Tj /TT0 1 Tf 7.751 0 Td (EWOULDBLOCK)Tj /T1_0 1 Tf (.)Tj 9.9994 0 0 9.9994 147.5908 602.9638 Tm [(If )-165(a )-165(server )-165(calls)]TJ /TT0 1 Tf 7.519 0 Td (accept)Tj /T1_0 1 Tf 4.016 0 Td [(and )-165(no )-165(connect )-165(r)18(equest )-165(is )-165(pr)18(esent, )-165(the )-165(server )-165(will )-165(block)]TJ -13.335 -1.2 Td [(until )-110(one )-110(arrives.)-609(Alternatively)]TJ 0.3596 Tc 14.076 0 Td (,as)Tj 0 Tc 1.893 0 Td [(erver )-110(can )-110(use )-110(either)]TJ /TT0 1 Tf 9.335 0 Td (poll)Tj /T1_0 1 Tf 2.76 0 Td (or)Tj /TT0 1 Tf 1.301 0 Td (select)Tj /T1_0 1 Tf 3.96 0 Td [(to )-110(wait )-110(for )-110(a)]TJ -33.324 -1.2 Td [(connect )-205(r)18(equest )-205(to )-205(arrive.)-705(In )-205(this )-205(case, )-205(a )-205(socket )-205(with )-205(pending )-205(connect )-205(r)12(equests )-205(will)]TJ 0 -1.2 TD [(appear to be r)18(eadable.)]TJ /TT2 1 Tf -3.6 -3.12 Td (Example)Tj /T1_0 1 Tf 3.6 -2.16 Td (Figur)Tj 0.2987 Tc 2.383 0 Td (e1)Tj 0 Tc 1.278 0 Td [(6.12 )-49(shows )-49(a )-49(function )-49(we )-49(can )-49(use )-49(to )-49(allocate )-49(and )-49(initialize )-49(a )-49(socket )-49(for )-49(use )-49(by )-49(a)]TJ -3.661 -1.2 Td [(server pr)18(ocess.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4950.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 485.4407 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (initserver\(int type, const struct sockaddr *addr, socklen_t alen,)Tj 1.2 -1.189 Td (int qlen\))Tj -1.2 -1.189 Td ({)Tj 2.4 -1.189 Td (int fd;)Tj T* (int err = 0;)Tj 0 -1.902 TD (if \(\(fd = socket\(addr->sa_family, type, 0\)\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td (if \(bind\(fd, addr, alen\) < 0\))Tj 2.4 -1.189 Td (goto errout;)Tj -2.4 -1.189 Td (if \(type == SOCK_STREAM || type == SOCK_SEQPACKET\) {)Tj 2.4 -1.189 Td (if \(listen\(fd, qlen\) < 0\))Tj 2.4 -1.189 Td (goto errout;)Tj -4.8 -1.189 Td (})Tj 0 -1.189 TD (return\(fd\);)Tj -2.4 -1.902 Td (errout:)Tj 2.4 -1.189 Td (err = errno;)Tj T* (close\(fd\);)Tj T* (errno = err;)Tj T* (return\(-1\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2153.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 218.5527 199.3021 Tm (Figure 16.12)Tj /T1_0 1 Tf 6.195 0 Td (Initialize a socket endpoint for use by a server)Tj -0.092 Tc 9.9982 0 0 9.9982 147.5736 175.3064 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ll )-114(see )-114(that )-114(TCP )-114(has )-114(some )-114(strange )-114(r)6(ules )-114(r)18(egar)18(ding )-114(addr)18(ess )-114(r)18(euse )-114(that )-114(make )-114(this)]TJ -3.187 -1.2 Td [(example )-77(inadequate.)-577(Figur)]TJ 0.3268 Tc 12.217 0 Td (e1)Tj 0 Tc 1.306 0 Td [(6.22 )-77(shows )-77(a )-77(version )-77(of )-77(this )-77(function )-77(that )-77(bypasses )-77(these)]TJ -0.008 Tc -13.522 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td (les, solving the major drawback with this version.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1513.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47210 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 34.394 0 Td [(Chapter )-250(5)-750(Solutions)]TJ /T1_1 1 Tf 11.476 0 Td [(91)37(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.018 Tc 9.9994 0 0 9.9994 155.6107 668.9599 Tm (re)Tj 0 Tc 0.856 0 Td (stor)Tj 0.3832 Tc 1.673 0 Td (et)Tj 0 Tc 1.188 0 Td [(he )-133(modi\336cation )-133(time )-133(fr)17(om )-133(the )-133(ar)18(chive; )-133(instead, )-133(the )-133(modi\336cation )-133(time )-133(is)]TJ -3.717 -1.2 Td [(set )-35(to )-35(the )-35(time )-35(of )-35(extraction.)-535(In )-35(all )-35(cases )-35(with)]TJ /TT0 1 Tf 20.405 0 Td (tar)Tj /T1_0 1 Tf 0.2848 Tc (,t)Tj 0 Tc 2.661 0 Td [(he )-35(access )-35(time )-35(after )-35(extraction)]TJ -23.066 -1.2 Td (will be the time of extraction.)Tj 0 -1.8 TD [(In )-161(contrast,)]TJ /TT0 1 Tf 5.533 0 Td (cpio)Tj /T1_0 1 Tf 2.811 0 Td [(sets )-161(the )-161(access )-161(time )-161(and )-161(the )-161(modi\336cation )-161(time )-161(to )-161(the )-161(time )-161(of)]TJ -8.344 -1.2 Td [(extraction. )-348(By)-349(default, )-98(it )-98(doesn\325t )-98(try )-98(to )-98(set )-98(the )-98(modi\336cation )-98(time )-98(to )-98(the )-98(value )-98(on)]TJ 0 -1.2 TD [(the )-264(ar)18(chive. )-514(The)]TJ /TT0 1 Tf 8.342 0 Td (-m)Tj /T1_0 1 Tf 1.714 0 Td [(option )-264(to)]TJ /TT0 1 Tf 4.793 0 Td (cpio)Tj /T1_0 1 Tf 2.914 0 Td [(has )-264(it )-264(set )-264(both )-264(the )-264(access )-264(time )-264(and )-264(the)]TJ -17.763 -1.2 Td [(modi\336cation time to the value that was ar)18(chived.)]TJ /T1_1 1 Tf -2.602 -1.84 Td (4.16)Tj /T1_0 1 Tf 2.602 0 Td [(The )-123(kernel )-123(has )-123(no )-123(inher)18(ent )-123(limit )-123(on )-123(the )-123(depth )-123(of )-123(a )-123(dir)18(ectory )-123(tr)22(ee. )-373(Nevertheless,)]TJ T* [(many )-180(commands )-180(will )-180(fail )-180(on )-180(pathnames )-180(that )-180(exceed)]TJ /TT0 1 Tf 24.705 0 Td (PATH_MAX)Tj /T1_0 1 Tf 0.6803 Tc (.T)Tj 0 Tc 6.343 0 Td [(he )-180(pr)18(ogram)]TJ -31.049 -1.2 Td [(shown )-131(in )-131(Figur)]TJ 0.3811 Tc 6.986 0 Td (eC)Tj 0 Tc 1.569 0 Td [(.3 )-131(cr)18(eates )-131(a )-131(dir)18(ectory )-131(tr)18(ee )-131(that )-131(is )-131(1,000 )-131(levels )-131(deep, )-131(with )-131(each)]TJ -8.555 -1.2 Td [(level )-300(being )-300(a )-300(45-character )-300(name.)]TJ -0.092 Tc 16.156 0 Td [(We )-484(a)]TJ -0.018 Tc 2.437 0 Td [(re )-336(a)]TJ 0 Tc 1.906 0 Td [(ble )-300(to )-300(cr)18(eate )-300(this )-300(str)10(uctur)18(e)-550(on)-550(a)1(ll)]TJ -20.498 -1.2 Td [(platforms; )-116(however)74(,)-366(we)-366(cannot )-116(obtain )-116(the )-116(absolute )-116(pathname )-116(of )-116(the )-116(dir)18(ectory )-116(at)]TJ -0 -1.2 Td [(the )-168(1,000th )-168(level )-168(using)]TJ /TT0 1 Tf 10.78 0 Td (getcwd)Tj /T1_0 1 Tf 4.018 0 Td [(on )-168(all )-168(platforms.)-669(On )-168(Mac )-168(OS )-168(X )-168(10.6.8, )-168(we )-168(can)]TJ -14.798 -1.2 Td [(never )-97(get)]TJ /TT0 1 Tf 4.554 0 Td (getcwd)Tj /T1_0 1 Tf 3.947 0 Td [(to )-96(succeed )-96(while )-96(in )-96(the )-96(dir)18(ectory )-96(at )-96(the )-96(end )-96(of )-96(this )-96(long )-96(path.)]TJ -8.501 -1.2 Td [(The )-154(pr)18(ogram )-154(is )-154(able )-154(to )-154(r)18(etrieve )-154(the )-154(pathname )-154(on )-154(Fr)20(eeBSD )-154(8.0, )-154(Linux )-154(3.2.0, )-154(and)]TJ T* [(Solaris )-47(10, )-47(but )-47(we )-47(have )-47(to )-47(call)]TJ /TT0 1 Tf 13.623 0 Td (realloc)Tj /T1_0 1 Tf 4.497 0 Td [(numer)18(ous )-47(times )-47(to )-47(obtain )-47(a )-47(buf)18(fer )-47(that )-47(is)]TJ -18.12 -1.2 Td [(lar)18(ge enough.)-500(Running this pr)18(ogram on Linux 3.2.0 gives us)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 173.6083 447.8731 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (getcwd failed, size = 4096: Numerical result out of range)Tj 0 -1.189 TD (getcwd failed, size = 4196: Numerical result out of range)Tj T* (...)Tj /T1_2 1 Tf 16 0 Td (418 mor)Tj 0.25 Tc 3.343 0 Td (el)Tj 0 Tc 0.917 0 Td (ines)Tj /TT0 1 Tf -20.26 -1.189 Td (getcwd failed, size = 45896: Numerical result out of range)Tj 0 -1.189 TD (getcwd failed, size = 45996: Numerical result out of range)Tj 0 -1.189 TD (length = 46004)Tj /T1_2 1 Tf 16 -1.189 Td [(the 46,004-byte pathname is printed her)18(e)]TJ /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 155.6096 354.9787 Tm [(We )-250(a)]TJ -0.018 Tc 2.203 0 Td [(re )-102(n)]TJ 0 Tc 1.754 0 Td [(ot )-66(able )-66(to )-66(ar)18(chive )-66(this )-66(dir)18(ectory)]TJ 0.3162 Tc 13.923 0 Td (,h)Tj 0 Tc 1.148 0 Td (owever)Tj 0.3162 Tc 3.224 0 Td (,u)Tj 0 Tc 1.169 0 Td (sing)Tj /TT0 1 Tf 2.169 0 Td (cpio)Tj /T1_0 1 Tf 0.5662 Tc (.I)Tj 0.3162 Tc 3.553 0 Td (tc)Tj 0 Tc 1.086 0 Td [(omplains )-66(that)]TJ -30.23 -1.2 Td [(many )-285(of )-285(the )-285(\336lenames )-285(ar)]TJ 0.5351 Tc 12.047 0 Td (et)Tj 0 Tc 1.34 0 Td [(oo )-285(long.)-785(In )-285(fact,)]TJ /TT0 1 Tf 8.479 0 Td (cpio)Tj /T1_0 1 Tf 2.935 0 Td [(is )-285(unable )-285(to )-285(ar)18(chive )-285(this)]TJ -24.802 -1.2 Td [(dir)18(ectory )-133(on )-133(all )-133(four )-133(platforms.)-633(In )-133(contrast, )-133(we )-133(can )-133(ar)20(chive )-133(this )-133(dir)18(ectory )-133(using)]TJ /TT0 1 Tf -0 -1.2 Td (tar)Tj /T1_0 1 Tf 2.06 0 Td [(on )-10(Fr)18(eeBSD )-10(8.0, )-10(Linux )-10(3.2.0, )-10(and )-10(Mac )-10(OS )-10(X )-10(10.6.8.)-510(However)74(,)-260(we)-260(a)]TJ -0.018 Tc [(re )-46(u)]TJ 0 Tc 30.801 0 Td [(nable )-10(to)]TJ -32.861 -1.2 Td [(extract the dir)18(ectory hierar)18(chy fr)18(om the ar)18(chive on Linux 3.2.0.)]TJ /T1_1 1 Tf -2.602 -1.84 Td (4.17)Tj /T1_0 1 Tf 2.602 0 Td (The)Tj /TT0 1 Tf 2.096 0 Td (/dev)Tj /T1_0 1 Tf 2.821 0 Td [(dir)18(ectory )-172(has )-172(write )-172(permissions )-172(turned )-172(of)20(f)-422(to)-422(p)]TJ -0.018 Tc 21.81 0 Td (re)Tj 0 Tc 0.856 0 Td [(vent )-172(a )-172(normal )-172(user)]TJ -27.583 -1.2 Td [(fr)18(om )-312(r)18(emoving )-312(the )-312(\336lenames )-312(in )-312(the )-312(dir)20(ectory)]TJ 0.8115 Tc 21.592 0 Td (.T)Tj 0 Tc 1.674 0 Td [(his )-311(means )-311(that )-311(the)]TJ /TT0 1 Tf 9.532 0 Td (unlink)Tj /T1_0 1 Tf -32.798 -1.2 Td (attempt fails.)Tj /TT2 1 Tf -6.202 -2.88 Td [(Chapter )-278(5)]TJ /T1_1 1 Tf 3.6 -2.56 Td (5.2)Tj /T1_0 1 Tf 2.602 0 Td (The)Tj /TT0 1 Tf 1.964 0 Td (fgets)Tj /T1_0 1 Tf 3.29 0 Td [(function )-40(r)18(eads )-40(up )-40(thr)18(ough )-40(and )-40(including )-40(the )-40(next )-40(newline)]TJ /T1_2 1 Tf 26.252 0 Td (or)Tj /T1_0 1 Tf 1.123 0 Td [(until )-40(the)]TJ -32.628 -1.2 Td [(buf)18(fer )-209(is )-209(full)]TJ 6.288 0.04 Td (\()Tj 0.333 -0.04 Td [(leaving )-209(r)18(oom, )-209(of )-209(course, )-209(for )-209(the )-209(terminating )-209(null)]TJ 22.737 0.04 Td (\))Tj 0.7089 Tc 0.333 -0.04 Td (.A)Tj 0 Tc 1.737 0 Td (lso,)Tj /TT0 1 Tf 1.97 0 Td (fputs)Tj /T1_0 1 Tf -33.398 -1.2 Td [(writes )-103(everything )-103(in )-103(the )-103(buf)18(fer )-103(until )-103(it )-103(hits )-103(a )-103(null )-103(byte; )-103(it )-103(doesn\325t )-103(car)]TJ 0.3531 Tc 31.036 0 Td (ew)Tj 0 Tc 1.666 0 Td [(hether )-103(a)]TJ -32.702 -1.2 Td [(newline )-144(is )-144(in )-144(the )-144(buf)16(fer)]TJ 0.6444 Tc 10.695 0 Td (.S)Tj 0 Tc 1.419 0 Td [(o, )-144(if)]TJ /TT0 1 Tf 2.209 0 Td (MAXLINE)Tj /T1_0 1 Tf 4.594 0 Td [(is )-144(too )-144(small, )-144(both )-144(functions )-144(still )-144(work;)]TJ -18.918 -1.2 Td (they\325r)Tj 0.25 Tc 2.598 0 Td (ej)Tj 0 Tc 0.963 0 Td (ust called mor)Tj 0.25 Tc 6.275 0 Td (eo)Tj 0 Tc 1.275 0 Td [(ften than they would be if the buf)18(fer wer)]TJ 0.25 Tc 17.949 0 Td (el)Tj 0 Tc 1.02 0 Td [(ar)18(ger)74(.)]TJ -30.08 -1.8 Td [(If )-19(either )-19(of )-19(these )-19(functions )-19(r)18(emoved )-19(or )-19(added )-19(the )-19(newline )-19(\(as)]TJ /TT0 1 Tf 27.357 0 Td (gets)Tj /T1_0 1 Tf 2.669 0 Td (and)Tj /TT0 1 Tf 1.962 0 Td (puts)Tj /T1_0 1 Tf 2.669 0 Td (do\),)Tj -34.658 -1.2 Td (we would have to ensur)Tj 0.25 Tc 10.661 0 Td (et)Tj 0 Tc 1.055 0 Td [(hat our buf)18(fer was big enough for the lar)18(gest line.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47211 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (142)Tj /T1_1 1 Tf 3.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.241 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 8.9995 0 0 8.9995 129.5922 669.9598 Tm (4.15)Tj /T1_1 1 Tf 2.602 0 Td [(Examine )-451(the )-451(ar)18(chive )-451(formats )-451(used )-451(by )-451(the)]TJ /TT0 1 Tf 21.417 0 Td (cpio)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 1.035 -0.04 Td (and)Tj /TT0 1 Tf 2.395 0 Td (tar)Tj /T1_1 1 Tf 1.8 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 1.035 -0.04 Td [(commands. )-702(\(These)]TJ -31.747 -1.222 Td [(descriptions )-61(ar)]TJ 0.3112 Tc 6.602 0 Td (eu)Tj 0 Tc 1.393 0 Td [(sually )-61(found )-61(in )-61(Section )-61(5 )-61(of )-61(the)]TJ /T1_2 1 Tf 14.35 0 Td [(UNIX )-61(Pr)18(ogrammer )213(\325)]TJ 0.3111 Tc 8.275 0 Td (sM)Tj 0 Tc 1.644 0 Td (anual)Tj /T1_1 1 Tf [(.\) )-311(How)-311(many)]TJ -32.265 -1.222 Td [(of )-27(the )-27(thr)18(ee )-27(possible )-27(time )-27(values )-27(ar)]TJ 0.2769 Tc 15.497 0 Td (es)Tj 0 Tc 1.18 0 Td [(aved )-27(for )-27(each )-27(\336le?)-527(When )-27(a )-27(\336le )-27(is )-27(r)19(estor)18(ed, )-27(what )-27(value)]TJ -16.677 -1.222 Td (do you think the access time is set to, and why?)Tj /T1_0 1 Tf -2.602 -1.667 Td (4.16)Tj /T1_1 1 Tf 2.602 0 Td [(Does )-65(the )-65(UNIX )-65(System )-65(have )-65(a )-65(fundamental )-65(limitation )-65(on )-65(the )-65(depth )-65(of )-65(a )-65(dir)18(ectory )-65(tr)12(ee? )-315(T)92(o)]TJ 0 -1.222 Td [(\336nd )-117(out, )-117(write )-117(a )-117(pr)18(ogram )-117(that )-117(cr)18(eates )-117(a )-117(dir)18(ectory )-117(and )-117(then )-117(changes )-117(to )-117(that )-117(dir)24(ectory)111(,)-367(in)-367(a)]TJ -0 -1.222 Td [(loop. )-329(Make)-329(certain )-79(that )-79(the )-79(length )-79(of )-79(the )-79(absolute )-79(pathname )-79(of )-79(the )-79(leaf )-79(of )-79(this )-79(dir)21(ectory )-79(is)]TJ 0 -1.222 Td [(gr)18(eater )-102(than )-102(your )-102(system\325s)]TJ /TT0 1 Tf 12.405 0 Td (PATH_MAX)Tj /T1_1 1 Tf 5.152 0 Td [(limit. )-352(Can)-353(you )-102(call)]TJ /TT0 1 Tf 9.014 0 Td (getcwd)Tj /T1_1 1 Tf 3.952 0 Td [(to )-102(fetch )-102(the )-102(dir)17(ectory\325s)]TJ -30.524 -1.222 Td [(pathname? )-347(How)-347(do )-97(the )-97(standar)]TJ 0.3468 Tc 14.61 0 Td (dU)Tj 0 Tc 1.736 0 Td [(NIX )-97(System )-97(tools )-97(deal )-97(with )-97(this )-97(long )-97(pathname?)-595(Can)]TJ -16.346 -1.222 Td [(you ar)18(chive the dir)18(ectory using either)]TJ /TT0 1 Tf 16.863 0 Td (tar)Tj /T1_1 1 Tf 2.05 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (cpio)Tj /T1_1 1 Tf (?)Tj /T1_0 1 Tf -22.706 -1.789 Td (4.17)Tj /T1_1 1 Tf 2.602 0 Td [(In )-75(Section )-75(3.16, )-75(we )-75(described )-75(the)]TJ /TT0 1 Tf 15.047 0 Td (/dev/fd)Tj /T1_1 1 Tf 4.525 0 Td [(featur)18(e. )-325(For)-324(any )-75(user )-75(to )-75(be )-75(able )-75(to )-75(access )-75(these)]TJ -19.572 -1.222 Td [(\336les, )-215(their )-215(permissions )-215(must )-215(be)]TJ /TT0 1 Tf 15.057 0 Td (rw-rw-rw-)Tj /T1_1 1 Tf 0.7154 Tc (.S)Tj 0 Tc 6.89 0 Td [(ome )-215(pr)18(ograms )-215(that )-215(cr)18(eate )-215(an )-215(output )-215(\336le)]TJ -21.948 -1.222 Td [(delete the \336le \336rst, in case it alr)18(eady exists, ignoring the r)18(eturn code:)]TJ /TT0 1 Tf 2 -1.8 Td (unlink\(path\);)Tj 0 -1.189 TD (if \(\(fd = creat\(path, FILE_MODE\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\(...\);)Tj /T1_1 1 Tf -4.4 -1.833 Td (What happens if)Tj /TT0 1 Tf 7.551 0 Td (path)Tj /T1_1 1 Tf 2.65 0 Td (is)Tj /TT0 1 Tf 0.965 0 Td (/dev/fd/1)Tj /T1_1 1 Tf (?)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47212 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Chapter )-250(4)]TJ 39.788 0 Td [(Exer)18(cises)]TJ /T1_1 1 Tf 6.045 0 Td (141)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(system, )-299(and )-299(we\325ve )-299(seen )-299(how )-299(to )-299(navigate )-299(the )-299(\336le )-299(system )-299(namespace.)]TJ 0.5492 Tc 33.555 0 Td (At)Tj 0 Tc 1.653 0 Td [(hor)18(ough)]TJ -35.208 -1.2 Td [(understanding )-175(of )-175(all )-175(the )-175(pr)17(operties )-175(of )-175(\336les )-175(and )-175(dir)18(ectories )-175(and )-175(all )-175(the )-175(functions )-175(that)]TJ 0 -1.2 TD [(operate on them is essential to UNIX pr)18(ogramming.)]TJ /TT0 1 Tf 11.9993 0 0 11.9993 129.5922 590.9645 Tm [(Ex)10(er)20(cises)]TJ /T1_1 1 Tf 8.9995 0 0 8.9995 129.5922 566.666 Tm (4.1)Tj /T1_0 1 Tf 2.602 0 Td [(Modify )-7(the )-7(pr)18(ogram )-7(in )-7(Figur)]TJ 0.2574 Tc 12.814 0 Td (e4)Tj 0 Tc 1.236 0 Td [(.3 )-7(to )-7(use)]TJ /TT1 1 Tf 3.9 0 Td (stat)Tj /T1_0 1 Tf 2.657 0 Td [(instead )-7(of)]TJ /TT1 1 Tf 4.607 0 Td (lstat)Tj /T1_0 1 Tf 0.5074 Tc (.W)Tj 0 Tc 4.757 0 Td [(hat )-7(changes )-7(if )-7(one )-7(of )-7(the)]TJ -29.972 -1.222 Td (command)Tj 4.449 0.09 Td (-)Tj 0.333 -0.09 Td [(line ar)18(guments is a symbolic link?)]TJ /T1_1 1 Tf -7.384 -1.789 Td (4.2)Tj /T1_0 1 Tf 2.602 0 Td [(What )-95(happens )-95(if )-95(the )-95(\336le )-95(mode )-95(cr)16(eation )-95(mask )-95(is )-95(set )-95(to )-95(777 )-95(\(octal\)?)]TJ -0.111 Tc 30.263 0 Td (Ve)Tj 0 Tc 1.09 0 Td [(rify )-95(the )-95(r)18(esults )-95(using)]TJ -31.353 -1.222 Td (your shell\325s)Tj /TT1 1 Tf 5.369 0 Td (umask)Tj /T1_0 1 Tf 3.25 0 Td (command.)Tj /T1_1 1 Tf -11.221 -1.789 Td (4.3)Tj /T1_0 1 Tf -0.111 Tc 2.602 0 Td (Ve)Tj 0 Tc 1.09 0 Td [(rify )-123(that )-123(turning )-123(of)]TJ 0.3734 Tc 8.625 0 Td (fu)Tj 0 Tc 1.309 0 Td [(ser)18(-r)18(ead )-123(permission )-123(for )-123(a )-123(\336le )-123(that )-123(you )-123(own )-123(denies )-123(your )-123(access )-123(to)]TJ -11.025 -1.222 Td (the \336le.)Tj /T1_1 1 Tf -2.602 -1.789 Td (4.4)Tj /T1_0 1 Tf 2.602 0 Td [(Run the pr)18(ogram in Figur)]TJ 0.25 Tc 11.354 0 Td (e4)Tj 0 Tc 1.229 0 Td (.9)Tj /T1_2 1 Tf 1 0 Td (after)Tj /T1_0 1 Tf 2.083 0 Td [(cr)18(eating the \336les)]TJ /TT1 1 Tf 7.491 0 Td (foo)Tj /T1_0 1 Tf 2.05 0 Td (and)Tj /TT1 1 Tf 1.943 0 Td (bar)Tj /T1_0 1 Tf 0.5 Tc (.W)Tj 0 Tc 3.55 0 Td (hat happens?)Tj /T1_1 1 Tf -33.302 -1.789 Td (4.5)Tj /T1_0 1 Tf 2.602 0 Td [(In )-78(Section )-78(4.12, )-78(we )-78(said )-78(that )-78(a )-78(\336le )-78(size )-78(of )-78(0 )-78(is )-78(valid )-78(for )-78(a )-78(r)18(egular )-78(\336le.)]TJ -0.092 Tc 31.326 0 Td [(We )-262(a)]TJ 0 Tc 2.215 0 Td [(lso )-78(said )-78(that )-78(the)]TJ /TT1 1 Tf -33.541 -1.222 Td (st_size)Tj /T1_0 1 Tf 4.524 0 Td [(\336eld )-74(is )-74(de\336ned )-74(for )-74(dir)18(ectories )-74(and )-74(symbolic )-74(links.)-574(Should )-74(we )-74(ever )-74(see )-74(a )-74(\336le )-74(size)]TJ -4.524 -1.222 Td [(of 0 for a dir)18(ectory or a symbolic link?)]TJ /T1_1 1 Tf -2.602 -1.789 Td (4.6)Tj /T1_0 1 Tf -0.074 Tc 2.602 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-28(a )-28(utility )-28(like)]TJ /TT1 1 Tf 7.008 0 Td (cp)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.611 -0.04 Td [(that )-28(copies )-28(a )-28(\336le )-28(containing )-28(holes, )-28(without )-28(writing )-28(the )-28(bytes )-28(of )-28(0 )-28(to)]TJ -10.973 -1.222 Td (the output \336le.)Tj /T1_1 1 Tf -2.602 -1.789 Td (4.7)Tj /T1_0 1 Tf 2.602 0 Td [(Note )-369(in )-369(the )-369(output )-369(fr)19(om )-369(the)]TJ /TT1 1 Tf 14.685 0 Td (ls)Tj /T1_0 1 Tf 1.819 0 Td [(command )-369(in )-369(Section )-369(4.12 )-369(that )-369(the )-369(\336les)]TJ /TT1 1 Tf 19.516 0 Td (core)Tj /T1_0 1 Tf 3.019 0 Td (and)Tj /TT1 1 Tf -39.038 -1.222 Td (core.copy)Tj /T1_0 1 Tf 5.744 0 Td [(have )-94(dif)18(fer)18(ent )-94(access )-94(permissions.)-595(If )-94(the)]TJ /TT1 1 Tf 18.597 0 Td (umask)Tj /T1_0 1 Tf 3.344 0 Td [(value )-94(didn\325t )-94(change )-94(between)]TJ -27.686 -1.222 Td [(the cr)18(eation of the two \336les, explain how the dif)18(fer)18(ence could have occurr)18(ed.)]TJ /T1_1 1 Tf -2.602 -1.789 Td (4.8)Tj /T1_0 1 Tf 2.602 0 Td [(When )-32(r)8(unning )-32(the )-32(pr)18(ogram )-32(in )-32(Figur)]TJ 0.2823 Tc 16.139 0 Td (e4)Tj 0 Tc 1.261 0 Td [(.16, )-32(we )-32(check )-32(the )-32(available )-32(disk )-32(space )-32(with )-32(the)]TJ /TT1 1 Tf 20.965 0 Td (df)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj -40.398 -1.262 Td [(command. )-250(Why)-250(didn\325t we use the)]TJ /TT1 1 Tf 15.492 0 Td (du)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (command?)Tj /T1_1 1 Tf -20.71 -1.789 Td (4.9)Tj /T1_0 1 Tf 2.602 0 Td [(In )-83(Figur)]TJ 0.333 Tc 3.635 0 Td (e4)Tj 0 Tc 1.312 0 Td [(.20, )-83(we )-83(show )-83(the)]TJ /TT1 1 Tf 7.918 0 Td (unlink)Tj /T1_0 1 Tf 3.933 0 Td [(function )-83(as )-83(modifying )-83(the )-83(changed-status )-83(time )-83(of )-83(the)]TJ -16.798 -1.222 Td [(\336le itself.)-500(How can this happen?)]TJ /T1_1 1 Tf -2.602 -1.789 Td (4.10)Tj /T1_0 1 Tf 2.602 0 Td [(In )-103(Section )-103(4.22, )-103(how )-103(does )-103(the )-103(system\325s )-103(limit )-103(on )-103(the )-103(number )-103(of )-103(open )-103(\336les )-103(af)12(fect )-103(the)]TJ /TT1 1 Tf 37.732 0 Td (myftw)Tj /T1_0 1 Tf -37.732 -1.222 Td (function?)Tj /T1_1 1 Tf -2.602 -1.789 Td [(4.1)37(1)]TJ /T1_0 1 Tf 2.602 0 Td [(In )-69(Section )-69(4.22, )-69(our )-69(version )-69(of)]TJ /TT1 1 Tf 13.728 0 Td (ftw)Tj /T1_0 1 Tf 2.119 0 Td [(never )-69(changes )-69(its )-69(dir)19(ectory)]TJ 0.5686 Tc 11.978 0 Td (.M)Tj 0 Tc 1.765 0 Td [(odify )-69(this )-69(r)18(outine )-69(so )-69(that)]TJ -29.589 -1.222 Td [(each )-95(time )-95(it )-95(encounters )-95(a )-95(dir)16(ectory)111(,)-345(it)-345(u)-1(ses )-95(the)]TJ /TT1 1 Tf 21.168 0 Td (chdir)Tj /T1_0 1 Tf 3.345 0 Td [(function )-95(to )-95(change )-95(to )-95(that )-95(dir)16(ectory)111(,)]TJ -24.513 -1.222 Td [(allowing )-65(it )-65(to )-65(use )-65(the )-65(\336lename )-65(and )-65(not )-65(the )-65(pathname )-65(for )-65(each )-65(call )-65(to)]TJ /TT1 1 Tf 31.172 0 Td (lstat)Tj /T1_0 1 Tf 0.5656 Tc (.W)Tj 0 Tc 4.816 0 Td [(hen )-66(all )-66(the)]TJ -35.988 -1.222 Td [(entries )-42(in )-42(a )-42(dir)18(ectory )-42(have )-42(been )-42(pr)20(ocessed, )-42(execute)]TJ /TT1 1 Tf 22.887 0 Td (chdir\(".."\))Tj /T1_0 1 Tf 0.5416 Tc (.C)Tj 0 Tc 8.101 0 Td (ompar)Tj 0.2916 Tc 2.907 0 Td (et)Tj 0 Tc 1.097 0 Td [(he )-42(time )-42(used)]TJ -34.991 -1.222 Td (by this version and the version in the text.)Tj /T1_1 1 Tf -2.602 -1.789 Td (4.12)Tj /T1_0 1 Tf 2.602 0 Td [(Each )-156(pr)18(ocess )-156(also )-156(has )-156(a )-156(r)18(oot )-156(dir)18(ectory )-156(that )-156(is )-156(used )-156(for )-156(r)18(esolution )-156(of )-156(absolute )-156(pathnames.)]TJ 0 -1.222 TD [(This )-61(r)18(oot )-61(dir)18(ectory )-61(can )-61(be )-61(changed )-61(with )-61(the)]TJ /TT1 1 Tf 19.947 0 Td (chroot)Tj /T1_0 1 Tf 3.911 0 Td [(function. )-311(Look)-310(up )-61(the )-61(description )-61(for)]TJ -23.858 -1.222 Td [(this function in your manuals.)-500(When might this function be useful?)]TJ /T1_1 1 Tf -2.602 -1.789 Td (4.13)Tj /T1_0 1 Tf 2.602 0 Td (How can you set only one of the two time values with the)Tj /TT1 1 Tf 25.737 0 Td (utimes)Tj /T1_0 1 Tf 3.85 0 Td (function?)Tj /T1_1 1 Tf -32.189 -1.789 Td (4.14)Tj /T1_0 1 Tf 2.602 0 Td [(Some )-177(versions )-177(of )-177(the)]TJ /TT1 1 Tf 10.112 0 Td (finger)Tj /T1_0 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.76 -0.04 Td [(command )-177(output )-177(\324)37(\324New )-177(mail )-177(r)19(eceived )-177(...\325)]TJ 0.4268 Tc 18.931 0 Td (\325a)Tj 0 Tc 1.205 0 Td [(nd )-177(\324)37(\324unr)18(ead)]TJ -35.441 -1.222 Td [(since )-27(...\325)]TJ 0.5264 Tc 3.488 0 Td (\325w)Tj 0 Tc 1.638 0 Td (her)Tj 0.2764 Tc 1.438 0 Td (e.)Tj 0 Tc 1.005 0 Td [(.. )-26(ar)]TJ 0.2764 Tc 1.653 0 Td (et)Tj 0 Tc 1.081 0 Td [(he )-26(corr)18(esponding )-26(times )-26(and )-26(dates.)-526(How )-26(can )-26(the )-26(pr)18(ogram )-26(determine)]TJ -10.304 -1.222 Td (these two times and dates?)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47213 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (136)Tj /T1_1 1 Tf 3.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.241 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(If we compile this pr)18(ogram, call the executable)]TJ /TT0 1 Tf 20.832 0 Td (mycd)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 3.4 0 Td [(nd r)8(un it, we get the following:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 657.0606 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (pwd)Tj /TT0 1 Tf -1.2 -1.189 Td (/usr/lib)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (mycd)Tj /TT0 1 Tf -1.2 -1.189 Td (chdir to /tmp succeeded)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (pwd)Tj /TT0 1 Tf -1.2 -1.189 Td (/usr/lib)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 590.3646 Tm [(The )-216(curr)18(ent )-216(working )-216(dir)18(ectory )-216(for )-216(the )-216(shell )-216(that )-216(executed )-216(the)]TJ /TT0 1 Tf 29.111 0 Td (mycd)Tj /T1_1 1 Tf 2.866 0 Td [(pr)18(ogram )-216(didn\325t)]TJ -31.977 -1.2 Td [(change. )-279(This)-278(is )-29(a )-29(side )-29(ef)19(fect )-29(of )-29(the )-29(way )-29(that )-29(the )-29(shell )-29(executes )-29(pr)20(ograms. )-279(Each)-278(pr)18(ogram)]TJ 0 -1.2 TD [(is )-85(r)8(un )-85(in )-85(a )-85(separate )-85(pr)18(ocess, )-85(so )-85(the )-85(curr)18(ent )-85(working )-85(dir)19(ectory )-85(of )-85(the )-85(shell )-85(is )-85(unaf)19(fected)]TJ T* [(by )-169(the )-169(call )-169(to)]TJ /TT0 1 Tf 6.57 0 Td (chdir)Tj /T1_1 1 Tf 3.419 0 Td [(in )-169(the )-169(pr)18(ogram. )-419(For)-419(this )-169(r)18(eason, )-169(the)]TJ /TT0 1 Tf 17.217 0 Td (chdir)Tj /T1_1 1 Tf 3.419 0 Td [(function )-169(has )-169(to )-169(be)]TJ -30.625 -1.2 Td [(called dir)18(ectly fr)18(om the shell, so the)]TJ /TT0 1 Tf 15.941 0 Td (cd)Tj /T1_1 1 Tf 1.45 0 Td (command is built into the shells.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5424.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 517.1379 Tm [(Because )-82(the )-82(kernel )-82(must )-82(maintain )-82(knowledge )-82(of )-82(the )-82(curr)15(ent )-82(working )-82(dir)17(ectory)]TJ 0.3325 Tc 35.304 0 Td (,w)Tj 0 Tc 1.416 0 Td (e)Tj -38.521 -1.2 Td [(should )-33(be )-33(able )-33(to )-33(fetch )-33(its )-33(curr)18(ent )-33(value.)-530(Unfortunately)]TJ 0.2826 Tc 24.58 0 Td (,t)Tj 0 Tc 0.859 0 Td [(he )-33(kernel )-33(doesn\325t )-33(maintain )-33(the)]TJ -25.438 -1.2 Td [(full )-381(pathname )-381(of )-381(the )-381(dir)18(ectory)]TJ 0.8811 Tc 14.675 0 Td (.I)Tj 0 Tc 1.468 0 Td [(nstead, )-381(the )-381(kernel )-381(keeps )-381(information )-381(about )-381(the)]TJ -16.143 -1.2 Td [(dir)18(ectory)]TJ 0.25 Tc 3.914 0 Td (,s)Tj 0 Tc 0.924 0 Td [(uch as a pointer to the dir)18(ectory\325s v-node.)]TJ 7.999 0 0 7.999 183.578 463.5444 Tm [(The )-18(Linux )-18(kernel )-18(can )-18(determine )-18(the )-18(full )-18(pathname.)-518(Its )-18(components )-18(ar)]TJ 0.2683 Tc 31.027 0 Td (ed)Tj 0 Tc 1.358 0 Td [(istributed )-18(thr)18(oughout)]TJ -32.386 -1.25 Td [(the )-108(mount )-108(table )-108(and )-108(the )-108(dcache )-108(table, )-108(and )-108(ar)]TJ 0.3585 Tc 20.452 0 Td (er)Tj 0 Tc 1.214 0 Td [(eassembled, )-108(for )-108(example, )-108(when )-108(you )-108(r)18(ead )-108(the)]TJ /TT0 1 Tf -21.666 -1.25 Td (/proc/self/cwd)Tj /T1_1 1 Tf 8.65 0 Td (symbolic link.)Tj 9.9988 0 0 9.9988 147.5823 425.5489 Tm [(What )-124(we )-124(need )-124(is )-124(a )-124(function )-124(that )-124(starts )-124(at )-124(the )-124(curr)21(ent )-124(working )-124(dir)18(ectory )-124(\(dot\) )-124(and)]TJ -1.8 -1.2 Td [(works )-65(its )-65(way )-65(up )-65(the )-65(dir)18(ectory )-65(hierar)17(chy)]TJ 0.3152 Tc 18.288 0 Td (,u)Tj 0 Tc 1.168 0 Td [(sing )-65(dot-dot )-65(to )-65(move )-65(up )-65(one )-65(level.)-565(At )-65(each)]TJ -19.456 -1.2 Td [(level, )-34(the )-34(function )-34(r)18(eads )-34(the )-34(dir)19(ectory )-34(entries )-34(until )-34(it )-34(\336nds )-34(the )-34(name )-34(that )-34(corr)18(esponds )-34(to)]TJ T* [(the )-142(i-node )-142(of )-142(the )-142(dir)18(ectory )-142(that )-142(it )-142(just )-142(came )-142(fr)14(om. )-392(Repeating)-393(this )-142(pr)18(ocedur)]TJ 0.3925 Tc 34.256 0 Td (eu)Tj 0 Tc 1.474 0 Td [(ntil )-142(the)]TJ -0.018 Tc -35.731 -1.2 Td (ro)Tj 0 Tc 0.923 0 Td [(ot )-387(is )-387(encounter)18(ed )-387(yields )-387(the )-387(entir)]TJ 0.6365 Tc 16.372 0 Td (ea)Tj 0 Tc 1.616 0 Td [(bsolute )-386(pathname )-386(of )-386(the )-386(curr)18(ent )-386(working)]TJ -18.91 -1.2 Td [(dir)18(ectory)]TJ 0.5 Tc 3.914 0 Td (.F)Tj 0 Tc 1.306 0 Td (ortunately)Tj 0.25 Tc 4.493 0 Td (,af)Tj 0 Tc 1.583 0 Td [(unction alr)18(eady exists that does this work for us.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.583 351.2578 Tm (#include )Tj 0 -1.783 TD (char *getcwd\(char *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 14.497 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (size)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 6.606 -1.783 Td (Returns:)Tj /T1_2 1 Tf 3.977 0 Td (buf)Tj /T1_1 1 Tf 1.547 0 Td (if OK,)Tj /TT0 1 Tf 2.886 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3147.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9982 0 0 9.9982 129.5767 303.5454 Tm [(We )-307(m)]TJ 0 Tc 2.643 0 Td [(ust )-123(pass )-123(to )-123(this )-123(function )-123(the )-123(addr)18(ess )-123(of )-123(a )-123(buf)14(fer)74(,)]TJ /T1_2 1 Tf 22.284 0 Td (buf)Tj /T1_1 1 Tf 0.3734 Tc (,a)Tj 0 Tc 2.42 0 Td [(nd )-123(its)]TJ /T1_2 1 Tf 2.981 0 Td (size)Tj /T1_1 1 Tf 1.873 0 Td [(\(in )-123(bytes\).)-624(The)]TJ -32.202 -1.2 Td [(buf)18(fer )-23(must )-23(be )-23(lar)18(ge )-23(enough )-23(to )-23(accommodate )-23(the )-23(absolute )-23(pathname )-23(plus )-23(a )-23(terminating)]TJ 0 -1.2 TD [(null )-25(byte, )-25(or )-25(else )-25(an )-25(err)17(or )-25(will )-25(be )-25(r)17(eturned. )-275(\(Recall)-276(the )-25(discussion )-25(of )-25(allocating )-25(space )-25(for)]TJ 0.25 Tc -0 -1.2 Td (am)Tj 0 Tc 1.633 0 Td (aximum-sized pathname in Section 2.5.5.\))Tj 7.9986 0 0 7.9986 183.5675 249.955 Tm [(Some )-59(older )-59(implementations )-59(of)]TJ /TT0 1 Tf 14.355 0 Td (getcwd)Tj /T1_1 1 Tf 3.909 0 Td [(allow )-59(the )-59(\336rst )-59(ar)18(gument)]TJ /T1_2 1 Tf 11.142 0 Td (buf)Tj /T1_1 1 Tf 1.606 0 Td [(to )-59(be)]TJ /TT0 1 Tf 2.522 0 Td (NULL)Tj /T1_1 1 Tf 0.5591 Tc (.I)Tj 0.3091 Tc 3.546 0 Td (nt)Tj 0 Tc 1.217 0 Td [(his )-59(case,)]TJ -38.297 -1.25 Td [(the )-165(function )-165(calls)]TJ /TT0 1 Tf 8.288 0 Td (malloc)Tj /T1_1 1 Tf 4.015 0 Td [(to )-165(allocate)]TJ /T1_2 1 Tf 5.079 0 Td (size)Tj /T1_1 1 Tf 1.915 0 Td [(number )-165(of )-165(bytes )-165(dynamically)]TJ 0.6648 Tc 13.35 0 Td (.T)Tj 0 Tc 1.528 0 Td [(his )-165(is )-165(not )-165(part )-165(of)]TJ -34.174 -1.25 Td (POSIX.1 or the Single UNIX Speci\336cation and should be avoided.)Tj /TT2 1 Tf 9.9982 0 0 9.9982 93.5838 209.9622 Tm (Example)Tj /T1_1 1 Tf 3.6 -1.92 Td [(The )-153(pr)18(ogram )-153(in )-153(Figur)]TJ 0.4034 Tc 9.998 0 Td (e4)Tj 0 Tc 1.382 0 Td [(.24 )-153(changes )-153(to )-153(a )-153(speci\336c )-153(dir)16(ectory )-153(and )-153(then )-153(calls)]TJ /TT0 1 Tf 22.744 0 Td (getcwd)Tj /T1_1 1 Tf 4.003 0 Td (to)Tj -38.128 -1.2 Td [(print the working dir)18(ectory)]TJ 0.5 Tc 12.006 0 Td (.I)Tj 0 Tc 1.087 0 Td [(f)-250(we)-250(r)8(un the pr)18(ogram, we get)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.5738 165.6702 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (cwd = /var/spool/uucppublic)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l /usr/spool)Tj /TT0 1 Tf -1.2 -1.189 Td [(lrwxrwxrwx )-600(1)-600(root )-600(12)-600(Jan 31 07:57 /usr/spool -> ../var/spool)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47214 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (50)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(POSIX.1 )-98(tries )-98(to )-98(help )-98(with )-98(the)]TJ /TT0 1 Tf 13.918 0 Td (PATH_MAX)Tj /T1_1 1 Tf 5.148 0 Td [(value, )-98(but )-98(if )-98(this )-98(value )-98(is )-98(indeterminate,)]TJ -20.866 -1.2 Td (we\325r)Tj 0.3216 Tc 1.968 0 Td (es)Tj 0 Tc 1.225 0 Td [(till )-72(out )-72(of )-72(luck.)-570(Figur)]TJ 0.3215 Tc 9.616 0 Td (e2)Tj 0 Tc 1.301 0 Td [(.16 )-71(shows )-71(a )-71(function )-71(that )-71(we\325ll )-71(use )-71(thr)18(oughout )-71(this )-71(text)]TJ -14.11 -1.2 Td (to allocate storage dynamically for a pathname.)Tj 1.8 -1.2 Td [(If )-70(the )-70(constant)]TJ /TT0 1 Tf 6.749 0 Td (PATH_MAX)Tj /T1_1 1 Tf 5.121 0 Td [(is )-71(de\336ned )-71(in)]TJ /TT0 1 Tf 5.917 0 Td ()Tj /T1_1 1 Tf 0.3206 Tc (,t)Tj 0 Tc 6.897 0 Td [(hen )-71(we\325r)]TJ 0.3206 Tc 3.932 0 Td (ea)Tj 0 Tc 1.3 0 Td [(ll )-71(set.)-571(If )-71(it\325s )-71(not,)]TJ -31.714 -1.2 Td [(then )-10(we )-10(need )-10(to )-10(call)]TJ /TT0 1 Tf 9.131 0 Td (pathconf)Tj /T1_1 1 Tf 0.5101 Tc (.T)Tj 0 Tc 6.173 0 Td [(he )-10(value )-10(r)18(eturned )-10(by)]TJ /TT0 1 Tf 9.5 0 Td (pathconf)Tj /T1_1 1 Tf 5.06 0 Td [(is )-10(the )-10(maximum )-10(size)]TJ -29.865 -1.2 Td [(of )-72(a )-72(r)18(elative )-72(pathname )-72(when )-72(the )-72(\336rst )-72(ar)21(gument )-72(is )-72(the )-72(working )-72(dir)19(ectory)111(,)-322(so)-322(we)-322(s)1(pecify)]TJ 0 -1.2 Td [(the )-225(r)18(oot )-225(as )-225(the )-225(\336rst )-225(ar)18(gument )-225(and )-225(add )-225(1 )-225(to )-225(the )-225(r)18(esult. )-475(If)]TJ /TT0 1 Tf 27.568 0 Td (pathconf)Tj /T1_1 1 Tf 5.275 0 Td [(indicates )-225(that)]TJ /TT0 1 Tf -32.843 -1.2 Td (PATH_MAX)Tj /T1_1 1 Tf 5.05 0 Td (is indeterminate, we have to punt and just guess a value.)Tj -0.111 Tc -3.25 -1.2 Td (Ve)Tj 0 Tc 1.09 0 Td [(rsions )-31(of )-31(POSIX.1 )-31(prior )-31(to )-31(2001 )-31(wer)]TJ 0.2809 Tc 15.685 0 Td (eu)Tj 0 Tc 1.363 0 Td [(nclear )-31(as )-31(to )-31(whether)]TJ /TT0 1 Tf 9.288 0 Td (PATH_MAX)Tj /T1_1 1 Tf 5.081 0 Td [(included )-31(a)]TJ -34.307 -1.2 Td [(null )-25(byte )-25(at )-25(the )-25(end )-25(of )-25(the )-25(pathname.)-526(If )-25(the )-25(operating )-25(system )-25(implementation )-25(conforms)]TJ 0 -1.2 TD [(to )-107(one )-107(of )-107(these )-107(prior )-107(versions )-107(and )-107(doesn\325t )-107(conform )-107(to )-107(any )-107(version )-107(of )-107(the )-107(Single )-107(UNIX)]TJ T* [(Speci\336cation )-88(\(which)]TJ /T1_2 1 Tf 9.377 0 Td (does)Tj /T1_1 1 Tf -0.018 Tc 2.06 0 Td (re)Tj 0 Tc 0.856 0 Td (quir)Tj 0.3383 Tc 1.831 0 Td (et)Tj 0 Tc 1.143 0 Td [(he )-88(terminating )-88(null )-88(byte )-88(to )-88(be )-88(included\), )-88(we )-88(need )-88(to)]TJ -15.267 -1.2 Td (add 1 to the amount of memory we allocate for a pathname, just to be on \ the safe side.)Tj 1.8 -1.2 Td [(The )-73(corr)18(ect )-73(way )-73(to )-73(handle )-73(the )-73(case )-73(of )-73(an )-73(indeterminate )-73(r)18(esult )-73(depends )-73(on )-73(how )-73(the)]TJ -1.8 -1.2 Td [(allocated )-241(space )-241(is )-241(being )-241(used.)-740(If )-241(we )-241(ar)]TJ 0.4907 Tc 18.524 0 Td (ea)Tj 0 Tc 1.47 0 Td [(llocating )-241(space )-241(for )-241(a )-241(call )-241(to)]TJ /TT0 1 Tf 13.391 0 Td (getcwd)Tj /T1_1 1 Tf 0.4907 Tc (,f)Tj 0 Tc 4.674 0 Td (or)Tj -38.059 -1.2 Td [(example )167(\321 )167(to)]TJ -0.018 Tc 6.387 0 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-350(the )-350(absolute )-350(pathname )-350(of )-350(the )-350(curr)19(ent )-350(working )-350(dir)18(ectory; )-350(see)]TJ -7.243 -1.2 Td [(Section )-65(4.23)]TJ 0.0833 Tc 5.342 0 Td (\321a)Tj 0 Tc 1.583 0 Td [(nd )-65(if )-65(the )-65(allocated )-65(space )-65(is )-65(too )-65(small, )-65(an )-65(err)18(or )-65(is )-65(r)18(eturned )-65(and)]TJ /TT0 1 Tf 28.045 0 Td (errno)Tj /T1_1 1 Tf 3.315 0 Td (is)Tj -38.285 -1.2 Td [(set )-178(to)]TJ /TT0 1 Tf 2.958 0 Td (ERANGE)Tj /T1_1 1 Tf 0.6784 Tc (.W)Tj 0.4284 Tc 5.436 0 Td (ec)Tj 0 Tc 1.351 0 Td [(ould )-178(then )-178(incr)17(ease )-178(the )-178(allocated )-178(space )-178(by )-178(calling)]TJ /TT0 1 Tf 22.911 0 Td (realloc)Tj /T1_1 1 Tf 4.629 0 Td (\(see)Tj -37.285 -1.2 Td [(Section )-74(7.8 )-74(and )-74(Exer)18(cise )-74(4.16\) )-74(and )-74(try )-74(again.)]TJ -0.092 Tc 20.328 0 Td [(We )-258(c)]TJ 0 Tc 2.155 0 Td [(ould )-73(keep )-73(doing )-73(this )-73(until )-73(the )-73(call )-73(to)]TJ /TT0 1 Tf -22.482 -1.2 Td (getcwd)Tj /T1_1 1 Tf 3.85 0 Td (succeeded.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4314.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 421.8484 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD [(#ifdef )-600(PATH_MAX)]TJ 0 -1.189 TD (static long pathmax = PATH_MAX;)Tj 0 -1.189 TD (#else)Tj T* (static long pathmax = 0;)Tj T* (#endif)Tj 0 -2.14 TD (static long posix_version = 0;)Tj 0 -1.189 TD (static long xsi_version = 0;)Tj 0 -2.14 TD (/* If PATH_MAX is indeterminate, no guarantee this is adequate */)Tj 0 -1.189 TD [(#define PATH_MAX_GUESS)-1200(1024)]TJ 0 -2.14 TD (char *)Tj 0 -1.189 TD (path_alloc\(size_t *sizep\) /* also return allocated size, if nonnull */\ )Tj T* ({)Tj 2.4 -1.189 Td [(char )-1800(*ptr;)]TJ T* [(size_t )-600(size;)]TJ 0 -2.14 TD (if \(posix_version == 0\))Tj 2.4 -1.189 Td (posix_version = sysconf\(_SC_VERSION\);)Tj -2.4 -2.14 Td (if \(xsi_version == 0\))Tj 2.4 -1.189 Td (xsi_version = sysconf\(_SC_XOPEN_VERSION\);)Tj -2.4 -2.14 Td [(if \(pathmax == 0\) {)-3000(/* first time through */)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47215 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1.4)]TJ 35.273 0 Td [(Files )-250(and )-250(Dir)18(ectories)]TJ /T1_1 1 Tf 11.56 0 Td (5)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(The )-59(Resear)18(ch )-59(UNIX )-59(System )-59(and )-59(some )-59(older )-59(UNIX )-59(System )-59(V )-59(\336le )-59(systems )-59(r)18(estricted )-59(a )-59(\336lename)]TJ 0 -1.25 TD [(to )-323(14 )-323(characters.)-823(BSD )-323(versions )-323(extended )-323(this )-323(limit )-323(to )-323(255 )-323(characters.)]TJ -0.092 Tc 33.929 0 Td (To)Tj 0 Tc 1.067 0 Td (day)Tj 0.573 Tc 1.556 0 Td (,a)Tj 0 Tc 1.323 0 Td [(lmost )-323(all)]TJ -37.875 -1.25 Td [(commer)18(cial UNIX \336le systems support at least 255-character \336lenames.)]TJ /TT0 1 Tf -0.03 Tc 9.9994 0 0 9.9994 93.5943 622.9626 Tm (Pa)Tj 0 Tc 1.193 0 Td (thname)Tj /T1_0 1 Tf 0.2895 Tc 2.407 -2.04 Td (As)Tj 0 Tc 1.491 0 Td [(equence )-39(of )-39(one )-39(or )-39(mor)]TJ 0.2895 Tc 10.017 0 Td (e\336)Tj 0 Tc 1.374 0 Td [(lenames, )-39(separated )-39(by )-39(slashes )-39(and )-39(optionally )-39(starting )-39(with)]TJ 0.4127 Tc -12.882 -1.2 Td (as)Tj 0 Tc 1.337 0 Td [(lash, )-163(forms )-163(a)]TJ /T1_2 1 Tf 6.366 0 Td (pathname)Tj /T1_0 1 Tf 0.6627 Tc (.A)Tj 0 Tc 6.047 0 Td [(pathname )-163(that )-163(begins )-163(with )-163(a )-163(slash )-163(is )-163(called )-163(an)]TJ /T1_2 1 Tf 21.953 0 Td (absolute)Tj -35.704 -1.2 Td (pathname)Tj /T1_0 1 Tf 0.4663 Tc (;o)Tj 0 Tc 5.206 0 Td [(therwise, )-216(it\325s )-216(called )-216(a)]TJ /T1_2 1 Tf -0.018 Tc 10.36 0 Td (re)Tj 0 Tc 0.76 0 Td [(lative )-216(pathname)]TJ /T1_0 1 Tf 0.7163 Tc (.R)Tj 0 Tc 8.267 0 Td [(elative )-216(pathnames )-216(r)17(efer )-216(to )-216(\336les)]TJ -0.018 Tc -24.593 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(lative )-251(to )-251(the )-251(curr)18(ent )-251(dir)16(ectory)]TJ 0.7515 Tc 13.837 0 Td (.T)Tj 0 Tc 1.614 0 Td [(he )-252(name )-252(for )-252(the )-252(r)18(oot )-252(of )-252(the )-252(\336le )-252(system )-252(\()]TJ /TT1 1 Tf 19.541 0 Td (/)Tj /T1_0 1 Tf [(\))-502(is)-502(a)]TJ -35.849 -1.2 Td (special-case absolute pathname that has no \336lename component.)Tj /TT0 1 Tf -3.6 -2.88 Td (Example)Tj /T1_0 1 Tf 3.6 -2.04 Td [(Listing )-221(the )-221(names )-221(of )-221(all )-221(the )-221(\336les )-221(in )-221(a )-221(dir)18(ectory )-221(is )-221(not )-221(dif)13(\336cult. )-471(Figur)]TJ 0.4713 Tc 32.547 0 Td (e1)Tj 0 Tc 1.45 0 Td [(.3 )-221(shows )-221(a)]TJ -33.997 -1.2 Td [(bar)18(e-bones implementation of the)]TJ /TT1 1 Tf 15.152 0 Td (ls)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (command.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4862.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 476.6418 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td (DIR )Tj 9.6 0 Td (*dp;)Tj -9.6 -1.189 Td [(struct dirent)-1800(*dirp;)]TJ 0 -2.14 TD (if \(argc != 2\))Tj 2.4 -1.189 Td (err_quit\("usage: ls directory_name"\);)Tj -2.4 -2.14 Td (if \(\(dp = opendir\(argv[1]\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("can\325t open %s", argv[1]\);)Tj -2.4 -1.189 Td (while \(\(dirp = readdir\(dp\)\) != NULL\))Tj 2.4 -1.189 Td (printf\("%s\\n", dirp->d_name\);)Tj -2.4 -2.14 Td (closedir\(dp\);)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2771.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 252.5025 261.111 Tm (Figure 1.3)Tj /T1_0 1 Tf 5.195 0 Td [(List all the \336les in a dir)18(ectory)]TJ 9.9982 0 0 9.9982 147.5736 237.1153 Tm [(The )-129(notation)]TJ /TT1 1 Tf 6.132 0 Td (ls)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.712 -0.04 Td [(is )-130(the )-130(normal )-130(way )-130(to )-130(r)20(efer)18(ence )-130(a )-130(particular )-130(entry )-130(in )-130(the )-130(UNIX)]TJ -10.677 -1.2 Td [(system )-133(manuals.)-633(It )-133(r)18(efers )-133(to )-133(the )-133(entry )-133(for)]TJ /TT1 1 Tf 19.462 0 Td (ls)Tj /T1_0 1 Tf 1.583 0 Td [(in )-133(Section )-133(1.)-633(The )-133(sections )-133(ar)]TJ 0.3832 Tc 13.049 0 Td (en)Tj 0 Tc 1.444 0 Td (ormally)Tj -35.538 -1.2 Td [(number)18(ed )-508(1 )-508(thr)18(ough )-508(8, )-508(and )-508(all )-508(the )-508(entries )-508(within )-508(each )-508(section )-508(ar)]TJ 0.758 Tc 33.745 0 Td (ea)Tj 0 Tc 1.737 0 Td (rranged)Tj -35.482 -1.2 Td (alphabetically)Tj 0.6089 Tc 6.094 0 Td (.T)Tj 0 Tc 1.472 0 Td [(hr)18(oughout )-109(this )-109(text, )-109(we )-109(assume )-109(that )-109(you )-109(have )-109(a )-109(copy )-109(of )-109(the )-109(manuals)]TJ -7.566 -1.2 Td (for your UNIX system.)Tj 7.9986 0 0 7.9986 183.5672 169.1276 Tm (Historically)Tj 0.3228 Tc 5.076 0 Td (,U)Tj 0 Tc 1.351 0 Td [(NIX )-73(systems )-73(lumped )-73(all )-73(eight )-73(sections )-73(together )-73(into )-73(what )-73(was )-73(called )-73(the)]TJ /T1_2 1 Tf 32.963 0 Td (UNIX)Tj -39.389 -1.25 Td [(Pr)18(ogrammer )213(\325)]TJ 0.4875 Tc 5.353 0 Td (sM)Tj 0 Tc 1.821 0 Td (anual)Tj /T1_0 1 Tf 0.7375 Tc (.A)Tj 0.4875 Tc 4.043 0 Td (st)Tj 0 Tc 1.237 0 Td [(he )-237(page )-237(count )-237(incr)18(eased, )-237(the )-237(tr)18(end )-237(changed )-237(to )-237(distributing )-237(the)]TJ -12.454 -1.25 Td [(sections )-164(among )-164(separate )-164(manuals: )-164(one )-164(for )-164(users, )-164(one )-164(for )-164(pr)18(ogrammers, )-164(and )-164(one )-164(for )-164(system)]TJ 0 -1.25 TD (administrators, for example.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47216 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (366)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(4.3BSD )-143(generated )-143(the)]TJ /TT0 1 Tf 10.132 0 Td (SIGILL)Tj /T1_1 1 Tf 3.993 0 Td [(signal. )-393(Befor)]TJ 0.3926 Tc 5.883 0 Td (ed)Tj 0 Tc 1.483 0 Td [(oing )-143(this, )-143(the )-143(4.3BSD )-143(function )-143(unblocked )-143(the)]TJ -21.49 -1.25 Td [(signal )-241(and )-241(r)17(eset )-241(its )-241(disposition )-241(to)]TJ /TT0 1 Tf 16.217 0 Td (SIG_DFL)Tj /T1_1 1 Tf 4.691 0 Td [(\(terminate )-241(with)]TJ /TT0 1 Tf 7.61 0 Td (core)Tj /T1_1 1 Tf 2.891 0 Td [(\336le\). )-491(This)-492(pr)18(evented )-241(a)]TJ -31.409 -1.25 Td [(pr)18(ocess fr)18(om either ignoring the signal or catching it.)]TJ 0 -2.125 TD (Historically)Tj 0.4448 Tc 5.076 0 Td (,i)Tj 0 Tc 0.986 0 Td [(mplementations )-195(of)]TJ /TT0 1 Tf 8.962 0 Td (abort)Tj /T1_1 1 Tf 3.445 0 Td [(have )-195(dif)18(fer)18(ed )-195(in )-195(how )-195(they )-195(deal )-195(with )-195(standar)]TJ 0.4448 Tc 20.747 0 Td (dI)Tj 0 Tc 1.393 0 Td (/O)Tj -40.608 -1.25 Td [(str)18(eams. )-498(For)-498(defensive )-248(pr)18(ogramming )-248(and )-248(impr)18(oved )-248(portability)111(,)-498(if)-498(we)-498(want )-248(standar)]TJ 0.4979 Tc 39.162 0 Td (dI)Tj 0 Tc 1.446 0 Td (/O)Tj -40.608 -1.25 Td [(str)18(eams )-41(to )-41(be )-41(\337ushed, )-41(we )-41(speci\336cally )-41(do )-41(it )-41(befor)]TJ 0.2915 Tc 21.507 0 Td (ec)Tj 0 Tc 1.214 0 Td (alling)Tj /TT0 1 Tf 2.803 0 Td (abort)Tj /T1_1 1 Tf 0.5415 Tc (.W)Tj 0 Tc 4.7 0 Td [(e)-291(do)-291(t)-1(his )-41(in )-41(the)]TJ /TT0 1 Tf 6.976 0 Td (err_dump)Tj /T1_1 1 Tf -37.2 -1.25 Td (function \(Appendix B\).)Tj T* [(Since )-7(most )-7(UNIX )-7(System )-7(implementations )-7(of)]TJ /TT0 1 Tf 20.211 0 Td (tmpfile)Tj /T1_1 1 Tf 4.457 0 Td (call)Tj /TT0 1 Tf 1.783 0 Td (unlink)Tj /T1_1 1 Tf 3.857 0 Td [(immediately )-7(after )-7(cr)18(eating)]TJ -30.308 -1.25 Td (the \336le, the ISO C warning about temporary \336les does not usually c\ oncern us.)Tj /TT1 1 Tf 9.9994 0 0 9.9994 93.5943 552.9668 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (0.25 shows an implementation of the)Tj /TT0 1 Tf 16.468 0 Td (abort)Tj /T1_1 1 Tf 3.25 0 Td (function as speci\336ed by POSIX.1.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5218.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 512.2375 Tm (#include )Tj 0 -1.189 TD (#include )Tj T* (#include )Tj T* (#include )Tj 0 -2.14 TD (void)Tj 0 -1.189 TD [(abort\(void\) )-4800(/*)-600(POSIX-style abort\(\) function */)]TJ T* ({)Tj 2.4 -1.189 Td (sigset_t )Tj 12 0 Td (mask;)Tj -12 -1.189 Td [(struct sigaction)-2400(action;)]TJ 0 -2.14 TD (/* Caller can\325t ignore SIGABRT, if so reset to default */)Tj 0 -1.189 TD (sigaction\(SIGABRT, NULL, &action\);)Tj 0 -1.189 TD (if \(action.sa_handler == SIG_IGN\) {)Tj 2.4 -1.189 Td (action.sa_handler = SIG_DFL;)Tj 0 -1.189 TD (sigaction\(SIGABRT, &action, NULL\);)Tj -2.4 -1.189 Td (})Tj T* (if \(action.sa_handler == SIG_DFL\))Tj 2.4 -1.189 Td (fflush\(NULL\); )Tj 14.4 0 Td [(/*)-600(flush all open stdio streams */)]TJ -16.8 -2.14 Td (/* Caller can\325t block SIGABRT; make sure it\325s unblocked */)Tj T* (sigfillset\(&mask\);)Tj 0 -1.189 TD [(sigdelset\(&mask, SIGABRT\);)-1200(/* mask has only SIGABRT turned off */)]TJ 0 -1.189 TD (sigprocmask\(SIG_SETMASK, &mask, NULL\);)Tj T* [(kill\(getpid\(\), SIGABRT\);)-2400(/* send the signal */)]TJ 0 -2.14 TD (/* If we\325re here, process caught SIGABRT and returned */)Tj 0 -1.189 TD (fflush\(NULL\); )Tj 16.8 0 Td [(/*)-600(flush all open stdio streams */)]TJ -16.8 -1.189 Td (action.sa_handler = SIG_DFL;)Tj T* [(sigaction\(SIGABRT, &action, NULL\);)-1200(/* reset to default */)]TJ T* [(sigprocmask\(SIG_SETMASK, &mask, NULL\);)-1200(/* just in case ... */)]TJ T* (kill\(getpid\(\), SIGABRT\);)Tj 24 0 Td (/* and one more time */)Tj -24 -1.189 Td [(exit\(1\); )-1800(/*)-600(this should never be executed ... */)]TJ -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1629.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 238.1611 146.9315 Tm (Figure 10.25)Tj /T1_1 1 Tf 6.195 0 Td (Implementation of POSIX.1)Tj /TT0 1 Tf 12.404 0 Td (abort)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47217 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (900)Tj /T1_1 1 Tf 3.5 0 Td [(Miscellaneous )-250(Sour)18(ce )-250(Code)]TJ 38.263 0 Td [(Appendix )-250(B)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (va_end\(ap\);)Tj 0 -1.189 TD (exit\(1\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*N)Tj 0 Tc 1.8 0 Td (onfatal error unrelated to a system call.)Tj 0.6 Tc -1.8 -1.189 Td (*E)Tj 0 Tc 1.8 0 Td (rror code passed as explict parameter.)Tj 0.6 Tc -1.8 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (rint a message and return.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (err_cont\(int error, const char *fmt, ...\))Tj T* ({)Tj 2.4 -1.189 Td [(va_list )-2400(ap;)]TJ 0 -2.021 TD (va_start\(ap, fmt\);)Tj 0 -1.189 TD (err_doit\(1, error, fmt, ap\);)Tj T* (va_end\(ap\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*F)Tj 0 Tc 1.8 0 Td (atal error unrelated to a system call.)Tj 0.6 Tc -1.8 -1.189 Td (*E)Tj 0 Tc 1.8 0 Td (rror code passed as explict parameter.)Tj 0.6 Tc -1.8 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (rint a message and terminate.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (err_exit\(int error, const char *fmt, ...\))Tj T* ({)Tj 2.4 -1.189 Td [(va_list )-2400(ap;)]TJ 0 -2.021 TD (va_start\(ap, fmt\);)Tj 0 -1.189 TD (err_doit\(1, error, fmt, ap\);)Tj 0 -1.189 TD (va_end\(ap\);)Tj T* (exit\(1\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*F)Tj 0 Tc 1.8 0 Td (atal error related to a system call.)Tj 0.6 Tc -1.8 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (rint a message, dump core, and terminate.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (err_dump\(const char *fmt, ...\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(va_list )-2400(ap;)]TJ 0 -2.021 TD (va_start\(ap, fmt\);)Tj 0 -1.189 TD (err_doit\(1, errno, fmt, ap\);)Tj T* (va_end\(ap\);)Tj T* [(abort\(\); )-4200(/*)-600(dump core and terminate */)]TJ T* [(exit\(1\); )-4200(/*)-600(shouldn\325t get here */)]TJ -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*N)Tj 0 Tc 1.8 0 Td (onfatal error unrelated to a system call.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47218 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.6)]TJ 34.349 0 Td [(Thr)18(ead)]TJ 3.162 0.09 Td (-)Tj 0.333 -0.09 Td [(Speci\336c )-250(Data)]TJ /T1_1 1 Tf 7.989 0 Td (447)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.018 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm (ro)Tj 0 Tc 0.923 0 Td (utines,)Tj /TT0 1 Tf 3.234 0 Td (errno)Tj /T1_0 1 Tf 3.279 0 Td [(is )-29(r)18(ede\336ned )-29(as )-29(thr)18(ead-private )-29(data.)-529(Thus )-29(one )-29(thr)18(ead )-29(making )-29(a )-29(call )-29(that)]TJ -7.436 -1.2 Td (sets)Tj /TT0 1 Tf 1.903 0 Td (errno)Tj /T1_0 1 Tf 3.25 0 Td [(doesn\325t af)18(fect the value of)]TJ /TT0 1 Tf 11.597 0 Td (errno)Tj /T1_0 1 Tf 3.25 0 Td [(for the other thr)18(eads in the pr)18(ocess.)]TJ -18.2 -1.2 Td [(Recall )-148(that )-148(all )-148(thr)18(eads )-148(in )-148(a )-148(pr)18(ocess )-148(have )-148(access )-148(to )-148(the )-148(entir)]TJ 0.398 Tc 26.989 0 Td (ea)Tj 0 Tc 1.377 0 Td [(ddr)18(ess )-148(space )-148(of )-148(the)]TJ -30.166 -1.2 Td [(pr)18(ocess. )-340(Other)-341(than )-90(using )-90(r)18(egisters, )-90(ther)17(e)-340(is)-340(no)-340(w)-1(ay )-90(for )-90(one )-90(thr)18(ead )-90(to )-90(pr)18(event )-90(another)]TJ 0 -1.2 Td [(fr)18(om )-187(accessing )-187(its )-187(data.)-687(This )-187(is )-187(tr)8(ue )-187(even )-187(for )-187(thr)14(ead-speci\336c )-188(data.)-688(Even )-188(though )-188(the)]TJ 0 -1.2 TD [(underlying )-128(implementation )-128(doesn\325t )-128(pr)18(event )-128(access, )-128(the )-128(functions )-128(pr)18(ovided )-128(to )-128(manage)]TJ T* [(thr)18(ead-speci\336c )-22(data )-22(pr)18(omote )-22(data )-22(separation )-22(among )-22(thr)16(eads )-22(by )-22(making )-22(it )-22(mor)]TJ 0.2725 Tc 34.762 0 Td (ed)Tj 0 Tc 1.362 0 Td [(if)18(\336cult)]TJ -36.125 -1.2 Td [(for thr)18(eads to gain access to thr)18(ead-speci\336c data fr)18(om other thr)18(eads.)]TJ 1.8 -1.2 Td (Befor)Tj 0.3358 Tc 2.346 0 Td (ea)Tj 0 Tc 1.315 0 Td [(llocating )-86(thr)18(ead-speci\336c )-86(data, )-86(we )-86(need )-86(to )-86(cr)18(eate )-86(a)]TJ /T1_2 1 Tf 22.637 0 Td (key)Tj /T1_0 1 Tf 1.669 0 Td [(to )-86(associate )-86(with )-86(the)]TJ -29.767 -1.2 Td [(data. )-631(The)-632(key )-381(will )-381(be )-381(used )-381(to )-381(gain )-381(access )-381(to )-381(the )-381(thr)18(ead-speci\336c )-381(data.)]TJ -0.092 Tc 35.475 0 Td [(We )-566(u)]TJ 0 Tc 2.621 0 Td (se)Tj /TT0 1 Tf -38.097 -1.2 Td (pthread_key_create)Tj /T1_0 1 Tf 11.05 0 Td [(to cr)18(eate such a key)111(.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 140.3916 532.2681 Tm (#include )Tj 0 -1.902 TD (int pthread_key_create\(pthread_key_t *)Tj /T1_2 1 Tf (keyp)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 26.433 0 Td (oid \(*)Tj /T1_2 1 Tf (destructor)Tj /TT0 1 Tf (\)\(void *\)\);)Tj /T1_0 1 Tf -3.552 -1.902 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4935.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 480.0024 Tm [(The )-43(key )-43(cr)18(eated )-43(is )-43(stor)18(ed )-43(in )-43(the )-43(memory )-43(location )-43(pointed )-43(to )-43(by)]TJ /T1_2 1 Tf 28.419 0 Td (keyp)Tj /T1_0 1 Tf 0.5428 Tc (.T)Tj 0 Tc 3.239 0 Td [(he )-43(same )-43(key )-43(can)]TJ -31.658 -1.2 Td [(be )-340(used )-340(by )-340(all )-340(thr)18(eads )-340(in )-340(the )-340(pr)18(ocess, )-340(but )-340(each )-340(thr)18(ead )-340(will )-340(associate )-340(a )-340(dif)18(fer)18(ent)]TJ 0 -1.2 TD [(thr)18(ead-speci\336c )-30(data )-30(addr)18(ess )-30(with )-30(the )-30(key)]TJ 0.5297 Tc 18.157 0 Td (.W)Tj 0 Tc 1.78 0 Td [(hen )-30(the )-30(key )-30(is )-30(cr)18(eated, )-30(the )-30(data )-30(addr)18(ess )-30(for)]TJ -19.937 -1.2 Td [(each thr)18(ead is set to a null value.)]TJ 1.8 -1.2 Td [(In )-410(addition )-410(to )-410(cr)18(eating )-410(a )-410(key)110(,)]TJ /TT0 1 Tf 15.296 0 Td (pthread_key_create)Tj /T1_0 1 Tf 11.46 0 Td [(associates )-410(an )-410(optional)]TJ -28.556 -1.2 Td [(destr)8(uctor )-14(function )-14(with )-14(the )-14(key)]TJ 0.514 Tc 14.204 0 Td (.W)Tj 0 Tc 1.764 0 Td [(hen )-14(the )-14(thr)18(ead )-14(exits, )-14(if )-14(the )-14(data )-14(addr)18(ess )-14(has )-14(been )-14(set)]TJ -15.968 -1.2 Td [(to )-90(a )-90(non-null )-90(value, )-90(the )-90(destr)10(uctor )-90(function )-90(is )-90(called )-90(with )-90(the )-90(data )-90(addr)18(ess )-90(as )-90(the )-90(only)]TJ T* [(ar)18(gument. )-378(If)]TJ /T1_2 1 Tf 6.231 0 Td (destructor)Tj /T1_0 1 Tf 4.507 0 Td [(is )-128(null, )-128(then )-128(no )-128(destr)10(uctor )-127(function )-127(is )-127(associated )-127(with )-127(the )-127(key)108(.)]TJ -10.738 -1.2 Td [(When )-98(the )-98(thr)18(ead )-98(exits )-98(normally)]TJ 0.3485 Tc 14.268 0 Td (,e)Tj 0 Tc 1.077 0 Td [(ither )-98(by )-98(calling)]TJ /TT0 1 Tf 7.183 0 Td (pthread_exit)Tj /T1_0 1 Tf 7.549 0 Td [(or )-98(by )-98(r)18(eturning, )-98(the)]TJ -30.076 -1.2 Td [(destr)8(uctor )-157(is )-157(called.)-657(Also, )-157(if )-157(the )-157(thr)18(ead )-157(is )-157(canceled, )-157(the )-157(destr)12(uctor )-156(is )-156(called, )-156(but )-156(only)]TJ -0 -1.2 Td [(after )-103(the )-103(last )-103(cleanup )-103(handler )-103(r)17(eturns. )-353(But)-354(if )-103(the )-103(thr)18(ead )-103(calls)]TJ /TT0 1 Tf 27.849 0 Td (exit)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.003 0 Td (_exit)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.603 0 Td (_Exit)Tj /T1_0 1 Tf 0.3533 Tc (,o)Tj 0 Tc 4.149 0 Td (r)Tj /TT0 1 Tf -38.605 -1.2 Td (abort)Tj /T1_0 1 Tf [(,)-250(or)-250(otherwise exits abnormally)]TJ 0.25 Tc 16.569 0 Td (,t)Tj 0 Tc 0.826 0 Td [(he destr)8(uctor is not called.)]TJ -15.595 -1.2 Td [(Thr)18(eads )-213(typically )-213(use)]TJ /TT0 1 Tf 10.337 0 Td (malloc)Tj /T1_0 1 Tf 4.063 0 Td [(to )-213(allocate )-213(memory )-213(for )-213(their )-213(thr)18(ead-speci\336c )-213(data.)]TJ -16.2 -1.2 Td [(The )-223(destr)8(uctor )-223(function )-223(usually )-223(fr)18(ees )-223(the )-223(memory )-223(that )-223(was )-223(allocated.)-723(If )-223(the )-223(thr)17(ead)]TJ -0 -1.2 Td [(exited )-187(without )-187(fr)18(eeing )-187(the )-187(memory)]TJ 0.437 Tc 16.073 0 Td (,t)Tj 0 Tc 1.013 0 Td [(hen )-187(the )-187(memory )-187(would )-187(be )-187(lost)]TJ 0.0833 Tc 14.544 0 Td (\321l)Tj 0 Tc 1.374 0 Td [(eaked )-187(by )-187(the)]TJ -33.005 -1.2 Td [(pr)18(ocess.)]TJ 0.3674 Tc 1.8 -1.2 Td (At)Tj 0 Tc 1.471 0 Td [(hr)18(ead )-117(can )-117(allocate )-117(multiple )-117(keys )-117(for )-117(thr)16(ead-speci\336c )-117(data.)-617(Each )-117(key )-117(can )-117(have )-117(a)]TJ -3.271 -1.2 Td [(destr)8(uctor )-67(associated )-67(with )-67(it.)-569(Ther)]TJ 0.3174 Tc 15.557 0 Td (ec)Tj 0 Tc 1.24 0 Td [(an )-67(be )-67(a )-67(dif)17(fer)18(ent )-67(destr)8(uctor )-67(function )-67(for )-67(each )-67(key)109(,)]TJ -16.797 -1.2 Td [(or )-14(all )-14(of )-14(the )-14(keys )-14(can )-14(use )-14(the )-14(same )-14(function.)-514(Each )-14(operating )-14(system )-14(implementation )-14(can)]TJ T* [(place )-72(a )-72(limit )-72(on )-72(the )-72(number )-72(of )-72(keys )-72(a )-72(pr)18(ocess )-72(can )-72(allocate )-72(\(r)18(ecall)]TJ /TT0 1 Tf 29.4 0 Td (PTHREAD_KEYS_MAX)Tj /T1_0 1 Tf -29.4 -1.2 Td [(fr)18(om Figur)]TJ 0.25 Tc 4.772 0 Td (e1)Tj 0 Tc 1.229 0 Td (2.1\).)Tj -4.201 -1.2 Td [(When )-201(a )-201(thr)18(ead )-201(exits, )-201(the )-201(destr)6(uctors )-201(for )-201(its )-201(thr)18(ead-speci\336c )-201(data )-201(ar)]TJ 0.4515 Tc 30.795 0 Td (ec)Tj 0 Tc 1.374 0 Td [(alled )-201(in )-201(an)]TJ -33.97 -1.2 Td [(implementation-de\336ned )-87(or)18(der)]TJ 0.5866 Tc 13.431 0 Td (.I)Tj 0 Tc 1.174 0 Td [(t)-337(is)-337(p)1(ossible )-86(for )-86(the )-86(destr)8(uctor )-86(to )-86(call )-86(another )-86(function)]TJ -14.604 -1.2 Td [(that )-50(cr)18(eates )-50(new )-50(thr)18(ead-speci\336c )-50(data )-50(and )-50(associate )-50(it )-50(with )-50(the )-50(key)]TJ 0.5506 Tc 29.24 0 Td (.A)Tj 0 Tc 1.579 0 Td [(fter )-51(all )-51(destr)9(uctors)]TJ -30.819 -1.2 Td (ar)Tj 0.4941 Tc 0.877 0 Td (ec)Tj 0 Tc 1.417 0 Td [(alled, )-244(the )-244(system )-244(will )-244(check )-244(whether )-244(any )-244(non-null )-244(thr)18(ead-speci\336c )-244(values )-244(wer)17(e)]TJ -2.294 -1.2 Td [(associated )-32(with )-32(the )-32(keys )-32(and, )-32(if )-32(so, )-32(call )-32(the )-32(destr)8(uctors )-32(again.)-532(This )-32(pr)18(ocess )-32(r)18(epeats )-32(until)]TJ T* [(either )-161(all )-161(keys )-161(for )-161(the )-161(thr)18(ead )-161(have )-161(null )-161(thr)21(ead-speci\336c )-160(data )-160(values )-160(or )-160(a )-160(maximum )-160(of)]TJ /TT0 1 Tf T* (PTHREAD_DESTRUCTOR_ITERATIONS)Tj /T1_0 1 Tf 17.65 0 Td (\(Figur)Tj 0.25 Tc 2.716 0 Td (e1)Tj 0 Tc 1.229 0 Td (2.1\) attempts have been made.)Tj -0.092 Tc -19.795 -1.2 Td [(We )-328(c)]TJ 0 Tc 2.225 0 Td [(an )-144(br)18(eak )-144(the )-144(association )-144(of )-144(a )-144(key )-144(with )-144(the )-144(thr)18(ead-speci\336c )-144(data )-144(values )-144(for )-144(all)]TJ -4.025 -1.2 Td [(thr)18(eads by calling)]TJ /TT0 1 Tf 8.113 0 Td (pthread_key_delete)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47219 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.2)]TJ 36.477 0 Td [(Signal )-250(Concepts)]TJ /T1_1 1 Tf 9.356 0 Td (319)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (SIGINT)Tj /T1_0 1 Tf 6.582 0 Td [(This )-321(signal )-321(is )-321(generated )-321(by )-321(the )-321(terminal )-321(driver )-321(when )-321(we )-321(pr)18(ess )-321(the)]TJ 0 -1.2 TD [(interr)8(upt )-221(key )-221(\(often )-221(DELETE )-221(or )-221(Contr)19(ol)]TJ 18.683 0.09 Td (-)Tj 0.333 -0.09 Td [(C\). )-471(This)-471(signal )-221(is )-221(sent )-221(to )-221(all)]TJ -19.017 -1.2 Td [(pr)18(ocesses )-235(in )-235(the )-235(for)18(egr)18(ound )-235(pr)18(ocess )-235(gr)18(oup )-235(\(r)18(efer )-235(to )-235(Figur)]TJ 0.4849 Tc 26.976 0 Td (e9)Tj 0 Tc 1.464 0 Td [(.9\). )-485(This)]TJ -28.44 -1.2 Td [(signal )-6(is )-6(often )-6(used )-6(to )-6(terminate )-6(a )-6(r)5(unaway )-6(pr)18(ogram, )-6(especially )-6(when )-6(it\325s)]TJ T* [(generating a lot of unwanted output on the scr)18(een.)]TJ /TT0 1 Tf -6.582 -1.84 Td (SIGIO)Tj /T1_0 1 Tf 6.582 0 Td [(This )-341(signal )-341(indicates )-341(an )-341(asynchr)18(onous )-341(I/O )-341(event.)]TJ -0.092 Tc 24.547 0 Td [(We )-525(d)]TJ 0 Tc 2.589 0 Td [(iscuss )-341(it )-341(in)]TJ -27.136 -1.2 Td (Section 14.5.2.)Tj 7.9995 0 0 7.9995 237.5855 570.5658 Tm [(In )-38(Figur)]TJ 0.288 Tc 3.59 0 Td (e1)Tj 0 Tc 1.267 0 Td [(0.1, )-38(we )-38(labeled )-38(the )-38(default )-38(action )-38(for)]TJ /TT0 1 Tf 16.526 0 Td (SIGIO)Tj /T1_0 1 Tf 3.288 0 Td [(as )-38(either )-38(\324)37(\324terminate\325)]TJ 0.2879 Tc 9.073 0 Td (\325o)Tj 0 Tc 1.112 0 Td (r)Tj -0.037 Tc -34.855 -1.25 Td (\324\324)Tj 0 Tc 0.519 0 Td [(ignor)18(e.\325)]TJ 0.564 Tc 3.322 0 Td (\325U)Tj 0 Tc 1.62 0 Td (nfortunately)Tj 0.314 Tc 5.408 0 Td (,t)Tj 0 Tc 0.89 0 Td [(he )-64(default )-64(depends )-64(on )-64(the )-64(system.)-564(Under )-64(System )-64(V)129(,)]TJ /TT0 1 Tf -11.759 -1.25 Td (SIGIO)Tj /T1_0 1 Tf 3.29 0 Td [(is )-40(identical )-40(to)]TJ /TT0 1 Tf 6.273 0 Td (SIGPOLL)Tj /T1_0 1 Tf [(,)-290(so)-290(i)-1(ts )-40(default )-40(action )-40(is )-40(to )-40(terminate )-40(the )-40(pr)15(ocess.)]TJ -9.564 -1.25 Td (Under BSD, the default is to ignor)Tj 0.25 Tc 14.974 0 Td (et)Tj 0 Tc 1.055 0 Td (he signal.)Tj -16.029 -1.875 Td [(Linux )-98(3.2.0 )-98(and )-98(Solaris )-98(10 )-98(de\336ne)]TJ /TT0 1 Tf 15.11 0 Td (SIGIO)Tj /T1_0 1 Tf 3.348 0 Td [(to )-98(be )-98(the )-98(same )-98(value )-98(as)]TJ /TT0 1 Tf 11.025 0 Td (SIGPOLL)Tj /T1_0 1 Tf 0.3478 Tc (,s)Tj 0 Tc 5.222 0 Td (o)Tj -34.704 -1.25 Td [(the )-21(default )-21(behavior )-21(is )-21(to )-21(terminate )-21(the )-21(pr)15(ocess. )-271(On)-272(Fr)18(eeBSD )-21(8.0 )-21(and )-21(Mac )-21(OS )-21(X)]TJ 0 -1.25 TD (10.6.8, the default is to ignor)Tj 0.25 Tc 12.469 0 Td (et)Tj 0 Tc 1.055 0 Td (he signal.)Tj /TT0 1 Tf 9.9994 0 0 9.9994 129.5913 484.5709 Tm (SIGIOT)Tj /T1_0 1 Tf 6.582 0 Td [(This indicates an implementation-de\336ned har)18(dwar)]TJ 0.25 Tc 22.481 0 Td (ef)Tj 0 Tc 1.062 0 Td (ault.)Tj 7.9995 0 0 7.9995 237.5846 464.5721 Tm [(The )-2(name )-2(IOT )-2(comes )-2(fr)18(om )-2(the )-2(PDP)]TJ 15.648 0.09 Td (-)Tj -0.055 Tc 0.333 -0.09 Td [(11 )-112(m)]TJ 0 Tc 2.08 0 Td [(nemonic )-2(for )-2(the )-2(\324)38(\324input/output )-2(TRAP\325)37(\325)]TJ -18.06 -1.25 Td [(instr)8(uction. )-299(Earlier)-298(versions )-49(of )-49(System )-49(V )-49(generated )-49(this )-49(signal )-49(fr)20(om )-49(the)]TJ /TT0 1 Tf 32.25 0 Td (abort)Tj /T1_0 1 Tf -32.25 -1.25 Td (function.)Tj /TT0 1 Tf 4.457 0 Td (SIGABRT)Tj /T1_0 1 Tf 4.45 0 Td (is now used for this purpose.)Tj -8.907 -1.875 Td [(On )-1(Fr)18(eeBSD )-1(8.0, )-1(Linux )-1(3.2.0, )-1(Mac )-1(OS )-1(X )-1(10.6.8, )-1(and )-1(Solaris )-1(10,)]TJ /TT0 1 Tf 27.066 0 Td (SIGIOT)Tj /T1_0 1 Tf 3.851 0 Td [(is )-1(de\336ned)]TJ -30.917 -1.25 Td (to be the same value as)Tj /TT0 1 Tf 10.439 0 Td (SIGABRT)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 9.9994 0 0 9.9994 129.5912 398.5761 Tm (SIGJVM1)Tj /T1_0 1 Tf 0.25 Tc 6.582 0 Td (As)Tj 0 Tc 1.452 0 Td [(ignal r)18(eserved for use by the Java virtual machine on Solaris.)]TJ /TT0 1 Tf -8.034 -1.84 Td (SIGJVM2)Tj /T1_0 1 Tf 6.582 0 Td [(Another signal r)18(eserved for use by the Java virtual machine on Solaris.)]TJ /TT0 1 Tf -6.582 -1.84 Td (SIGKILL)Tj /T1_0 1 Tf 6.582 0 Td [(This )-52(signal )-52(is )-52(one )-52(of )-52(the )-52(two )-52(that )-52(can\325t )-52(be )-52(caught )-52(or )-52(ignor)22(ed. )-302(It)-301(pr)18(ovides)]TJ 0 -1.2 Td (the system administrator with a sur)Tj 0.25 Tc 15.736 0 Td (ew)Tj 0 Tc 1.563 0 Td [(ay to kill any pr)18(ocess.)]TJ /TT0 1 Tf -23.881 -1.84 Td (SIGLOST)Tj /T1_0 1 Tf 6.582 0 Td [(This )-70(signal )-70(is )-70(used )-70(to )-70(notify )-70(a )-70(pr)19(ocess )-70(r)8(unning )-70(on )-70(a )-70(Solaris )-70(NFSv4 )-70(client)]TJ 0 -1.2 TD [(system that a lock could not be r)18(eacquir)18(ed during r)18(ecovery)111(.)]TJ /TT0 1 Tf -6.582 -1.84 Td (SIGLWP)Tj /T1_0 1 Tf 6.582 0 Td [(This )-246(signal )-246(is )-246(used )-246(internally )-246(by )-246(the )-246(Solaris )-246(thr)16(eads )-246(library; )-246(it )-246(is )-246(not)]TJ T* [(available )-66(for )-66(general )-66(use.)-566(On )-66(Fr)18(eeBSD,)]TJ /TT0 1 Tf 17.847 0 Td (SIGLWP)Tj /T1_0 1 Tf 3.916 0 Td [(is )-66(de\336ned )-66(to )-66(be )-66(an )-66(alias)]TJ -21.763 -1.2 Td (for)Tj /TT0 1 Tf 1.524 0 Td (SIGTHR)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf -8.106 -1.84 Td (SIGPIPE)Tj /T1_0 1 Tf 6.582 0 Td [(If )-239(we )-239(write )-239(to )-239(a )-239(pipeline )-239(but )-239(the )-239(r)16(eader )-239(has )-239(terminated,)]TJ /TT0 1 Tf 27.014 0 Td (SIGPIPE)Tj /T1_0 1 Tf 4.689 0 Td (is)Tj -31.703 -1.2 Td [(generated. )-671(W)]TJ 0.6706 Tc 6.486 0 Td (ed)Tj 0 Tc 1.761 0 Td [(escribe )-421(pipes )-421(in )-421(Section )-421(15.2.)-921(This )-421(signal )-421(is )-421(also)]TJ -8.246 -1.2 Td [(generated )-83(when )-83(a )-83(pr)18(ocess )-83(writes )-83(to )-83(a )-83(socket )-83(of )-83(type)]TJ /TT0 1 Tf 23.751 0 Td (SOCK_STREAM)Tj /T1_0 1 Tf 6.933 0 Td (that)Tj -30.684 -1.2 Td (is no longer connected.)Tj -0.092 Tc 10.685 0 Td [(We )-184(d)]TJ 0 Tc 2.248 0 Td (escribe sockets in Chapter 16.)Tj /TT0 1 Tf -19.515 -1.84 Td (SIGPOLL)Tj /T1_0 1 Tf 6.582 0 Td [(This )-61(signal )-61(is )-61(marked )-61(obsolescent )-61(in )-61(SUSv4, )-61(so )-61(it )-61(might )-61(be )-61(r)17(emoved )-61(in )-61(a)]TJ T* (futur)Tj 0.2829 Tc 2.242 0 Td (ev)Tj 0 Tc 1.327 0 Td [(ersion )-33(of )-33(the )-33(standar)18(d. )-283(It)-283(can )-33(be )-33(generated )-33(when )-33(a )-33(speci\336c )-33(event)]TJ -3.569 -1.2 Td [(occurs )-283(on )-283(a )-283(pollable )-283(device.)]TJ -0.092 Tc 14.07 0 Td [(We )-467(d)]TJ 0 Tc 2.531 0 Td [(escribe )-283(this )-283(signal )-283(with )-283(the)]TJ /TT0 1 Tf 13.417 0 Td (poll)Tj /T1_0 1 Tf -30.018 -1.2 Td [(function )-122(in )-122(Section )-122(14.4.2.)]TJ /TT0 1 Tf 12.259 0 Td (SIGPOLL)Tj /T1_0 1 Tf 4.572 0 Td [(originated )-121(with )-121(SVR3, )-121(and )-121(loosely)]TJ -16.831 -1.2 Td [(corr)18(esponds to the BSD)]TJ /TT0 1 Tf 10.598 0 Td (SIGIO)Tj /T1_0 1 Tf 3.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (SIGURG)Tj /T1_0 1 Tf 3.85 0 Td (signals.)Tj 7.9995 0 0 7.9995 237.5851 136.1918 Tm (On Linux and Solaris,)Tj /TT0 1 Tf 9.886 0 Td (SIGPOLL)Tj /T1_0 1 Tf 4.45 0 Td (is de\336ned to have the same value as)Tj /TT0 1 Tf 16.115 0 Td (SIGIO)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47220 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (272)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm [(else if \(pid != 0\) {)-4800(/* parent */)]TJ 2.4 -1.189 Td (sleep\(2\);)Tj 0 -1.189 TD (exit\(2\); )Tj 14.4 0 Td [(/*)-600(terminate with exit status 2 */)]TJ -16.8 -1.189 Td (})Tj 0 -1.783 TD (if \(\(pid = fork\(\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj -2.4 -1.189 Td [(else if \(pid != 0\) {)-4800(/* first child */)]TJ 2.4 -1.189 Td (sleep\(4\);)Tj 0 -1.189 TD (abort\(\); )Tj 14.4 0 Td [(/*)-600(terminate with core dump */)]TJ -16.8 -1.189 Td (})Tj 0 -1.783 TD (if \(\(pid = fork\(\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj -2.4 -1.189 Td [(else if \(pid != 0\) {)-4800(/* second child */)]TJ 2.4 -1.189 Td (execl\("/bin/dd", "dd", "if=/etc/passwd", "of=/dev/null", NULL\);)Tj 0 -1.189 TD (exit\(7\); )Tj 14.4 0 Td [(/*)-600(shouldn\325t get here */)]TJ -16.8 -1.189 Td (})Tj 0 -1.783 TD (if \(\(pid = fork\(\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj -2.4 -1.189 Td [(else if \(pid != 0\) {)-4800(/* third child */)]TJ 2.4 -1.189 Td (sleep\(8\);)Tj 0 -1.189 TD (exit\(0\); )Tj 14.4 0 Td [(/*)-600(normal exit */)]TJ -16.8 -1.189 Td (})Tj 0 -1.783 TD (sleep\(6\); )Tj 16.8 0 Td [(/*)-600(fourth child */)]TJ -16.8 -1.189 Td [(kill\(getpid\(\), SIGKILL\);)-2400(/* terminate w/signal, no core dump */)]TJ 0 -1.189 TD (exit\(6\); )Tj 16.8 0 Td [(/*)-600(shouldn\325t get here */)]TJ -19.2 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3766.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 236.4316 360.5557 Tm (Figure 8.28)Tj /T1_1 1 Tf 5.695 0 Td [(Pr)18(ogram to generate accounting data)]TJ -0.092 Tc 9.9988 0 0 9.9988 147.5825 336.5586 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ll )-131(r)8(un )-131(the )-131(test )-131(pr)18(ogram )-131(on )-131(Solaris )-131(and )-131(then )-131(use )-131(the )-131(pr)21(ogram )-131(in )-131(Figur)]TJ 0.3808 Tc 31.95 0 Td (e8)Tj 0 Tc 1.36 0 Td [(.29 )-131(to)]TJ -36.497 -1.2 Td [(print out selected \336elds fr)18(om the accounting r)18(ecor)18(ds.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3174.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 307.8426 Tm (#include "apue.h")Tj T* (#include )Tj 0 -1.783 TD [(#if defined\(BSD\))-2400(/* different structure in FreeBSD */)]TJ 0 -1.189 TD (#define acct acctv2)Tj T* (#define ac_flag ac_trailer.ac_flag)Tj T* (#define FMT "%-*.*s)Tj 0.6 Tc 12.6 0 Td (e=%)Tj 0 Tc 3 0 Td (.0f, chars = %.0f, %c %c %c %c\\n")Tj -15.6 -1.189 Td (#elif defined\(HAS_AC_STAT\))Tj T* (#define FMT "%-*.*s)Tj 0.6 Tc 12.6 0 Td (e=%)Tj 0 Tc 3 0 Td (6ld, chars = %7ld, stat = %3u: %c %c %c %c\\n")Tj -15.6 -1.189 Td (#else)Tj 0 -1.189 TD (#define FMT "%-*.*s)Tj 0.6 Tc 12.6 0 Td (e=%)Tj 0 Tc 3 0 Td (6ld, chars = %7ld, %c %c %c %c\\n")Tj -15.6 -1.189 Td (#endif)Tj 0 -1.189 TD (#if defined\(LINUX\))Tj T* [(#define acct acct_v3)-2400(/* different structure in Linux */)]TJ T* (#endif)Tj 0 -1.783 TD (#if !defined\(HAS_ACORE\))Tj 0 -1.189 TD (#define ACORE 0)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47221 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.6)]TJ /TT0 1 Tf 29.686 0 Td (wait)Tj /T1_0 1 Tf 2.9 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (waitpid)Tj /T1_0 1 Tf 4.7 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (241)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(pid_t )-1200(pid;)]TJ T* [(int )-2400(status;)]TJ 0 -1.783 TD (if \(\(pid = fork\(\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj -2.4 -1.189 Td (else if \(pid == 0\))Tj 19.2 0 Td (/* child */)Tj -16.8 -1.189 Td (exit\(7\);)Tj -2.4 -1.783 Td [(if \(wait\(&status\) != pid\))-4200(/* wait for child */)]TJ 2.4 -1.189 Td (err_sys\("wait error"\);)Tj -2.4 -1.189 Td (pr_exit\(status\); )Tj 19.2 0 Td [(/*)-600(and print its status */)]TJ -19.2 -1.783 Td (if \(\(pid = fork\(\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj -2.4 -1.189 Td (else if \(pid == 0\))Tj 19.2 0 Td (/* child */)Tj -16.8 -1.189 Td (abort\(\); )Tj 16.8 0 Td [(/*)-600(generates SIGABRT */)]TJ -19.2 -1.783 Td [(if \(wait\(&status\) != pid\))-4200(/* wait for child */)]TJ 2.4 -1.189 Td (err_sys\("wait error"\);)Tj -2.4 -1.189 Td (pr_exit\(status\); )Tj 19.2 0 Td [(/*)-600(and print its status */)]TJ -19.2 -1.783 Td (if \(\(pid = fork\(\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj -2.4 -1.189 Td (else if \(pid == 0\))Tj 19.2 0 Td (/* child */)Tj -16.8 -1.189 Td (status /= 0;)Tj 16.8 0 Td (/* divide by 0 generates SIGFPE */)Tj -19.2 -1.783 Td [(if \(wait\(&status\) != pid\))-4200(/* wait for child */)]TJ 2.4 -1.189 Td (err_sys\("wait error"\);)Tj -2.4 -1.189 Td (pr_exit\(status\); )Tj 19.2 0 Td [(/*)-600(and print its status */)]TJ -19.2 -1.783 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3016.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 241.0151 285.5637 Tm (Figure 8.6)Tj /T1_0 1 Tf 5.195 0 Td (Demonstrate various)Tj /TT0 1 Tf 9.538 0 Td (exit)Tj /T1_0 1 Tf 2.65 0 Td (statuses)Tj 9.9988 0 0 9.9988 129.5845 259.1669 Tm [(again. )-338(What)-338(we )-88(need )-88(is )-88(a )-88(function )-88(that )-88(waits )-88(for )-88(a )-88(speci\336c )-88(pr)19(ocess. )-338(This)-338(functionality)]TJ 0 -1.2 Td [(\(and mor)18(e\) is pr)18(ovided by the POSIX.1)]TJ /TT0 1 Tf 17.355 0 Td (waitpid)Tj /T1_0 1 Tf 4.45 0 Td (function.)Tj -20.005 -1.2 Td [(The interpr)18(etation of the)]TJ /T1_2 1 Tf 11.041 0 Td (pid)Tj /T1_0 1 Tf 1.528 0 Td [(ar)18(gument for)]TJ /TT0 1 Tf 6.08 0 Td (waitpid)Tj /T1_0 1 Tf 4.45 0 Td (depends on its value:)Tj /T1_2 1 Tf -23.099 -1.8 Td (pid)Tj /TT0 1 Tf 1.778 0 Td (==)Tj /TT1 1 Tf 1.7 0 Td (!)Tj /T1_0 1 Tf 2.649 Tc (1W)Tj 0 Tc 4.606 0 Td [(aits )-64(for )-64(any )-64(child )-64(pr)20(ocess. )-314(In)-313(this )-64(r)18(espect,)]TJ /TT0 1 Tf 18.898 0 Td (waitpid)Tj /T1_0 1 Tf 4.514 0 Td [(is )-64(equivalent)]TJ -24.319 -1.2 Td (to)Tj /TT0 1 Tf 1.122 0 Td (wait)Tj /T1_0 1 Tf (.)Tj /T1_2 1 Tf -8.298 -1.6 Td (pid)Tj /TT0 1 Tf 1.778 0 Td (>)Tj /T1_0 1 Tf 3.798 Tc 1.1 0 Td (0W)Tj 0 Tc 5.206 0 Td [(aits for the child whose pr)18(ocess ID equals)]TJ /T1_2 1 Tf 18.549 0 Td (pid)Tj /T1_0 1 Tf (.)Tj /T1_2 1 Tf -26.633 -1.6 Td (pid)Tj /TT0 1 Tf 1.778 0 Td (==)Tj /T1_0 1 Tf 3.198 Tc 1.7 0 Td (0W)Tj 0 Tc 4.606 0 Td [(aits )-262(for )-262(any )-262(child )-262(whose )-262(pr)18(ocess )-262(gr)18(oup )-262(ID )-262(equals )-262(that )-262(of )-262(the)]TJ -0.908 -1.2 Td [(calling pr)18(ocess. )-250(\(W)]TJ 0.25 Tc 8.491 0 Td (ed)Tj 0 Tc 1.34 0 Td [(iscuss pr)18(ocess gr)18(oups in Section 9.4.\))]TJ /T1_2 1 Tf -17.007 -1.6 Td (pid)Tj /TT0 1 Tf 1.778 0 Td (<)Tj /TT1 1 Tf 1.1 0 Td (!)Tj /T1_0 1 Tf 3.249 Tc (1W)Tj 0 Tc 5.206 0 Td [(aits )-202(for )-202(any )-202(child )-202(whose )-202(pr)18(ocess )-202(gr)18(oup )-202(ID )-202(equals )-202(the )-202(absolute)]TJ -0.908 -1.2 Td (value of)Tj /T1_2 1 Tf 3.817 0 Td (pid)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47222 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (842)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (923 )Tj 12 0 Td (})Tj -12 -1.189 Td (924 )Tj 9.6 0 Td (})Tj -9.6 -2.021 Td (925 )Tj 9.6 0 Td (hp)Tj 0.6 Tc 1.8 0 Td (=\()Tj 0 Tc 1.8 0 Td (struct ipp_hdr *\)cp;)Tj -13.2 -1.189 Td (926 )Tj 9.6 0 Td (i)Tj 0.6 Tc 1.2 0 Td (=n)Tj 0 Tc 1.8 0 Td (tohs\(hp->status\);)Tj -12.6 -1.189 Td (927 )Tj 9.6 0 Td (jobid)Tj 0.6 Tc 3.6 0 Td (=n)Tj 0 Tc 1.8 0 Td (tohl\(hp->request_id\);)Tj -15 -2.021 Td (928 )Tj 9.6 0 Td [(if)-600(\(jobid != jp->jobid\) {)]TJ -9.6 -1.189 Td (929 )Tj 12 0 Td (/*)Tj -12 -1.189 Td (930 )Tj 12.6 0 Td [(*)-600(Different jobs.)-1200(Ignore it.)]TJ -12.6 -1.189 Td (931 )Tj 12.6 0 Td (*/)Tj -12.6 -1.189 Td (932 )Tj 12 0 Td [(log_msg\("jobid)-600(%d status code %d", jobid, i\);)]TJ -12 -1.189 Td (933 )Tj 12 0 Td (break;)Tj -12 -1.189 Td (934 )Tj 9.6 0 Td (})Tj -9.6 -2.021 Td (935 )Tj 9.6 0 Td [(if)-600(\(STATCLASS_OK\(i\)\))]TJ -9.6 -1.189 Td (936 )Tj 12 0 Td (success)Tj 0.6 Tc 4.8 0 Td (=1)Tj 0 Tc 1.8 0 Td (;)Tj -18.6 -1.189 Td (937 )Tj 9.6 0 Td (break;)Tj -9.6 -1.189 Td [(938 )-4800(})]TJ 0 -1.189 TD [(939 )-2400(})]TJ 0 -2.021 TD [(940 )-1200(out:)]TJ 0 -1.189 TD [(941 )-2400(free\(bp\);)]TJ T* [(942 )-2400(if)-600(\(nr < 0\) {)]TJ T* [(943 )-4800(log_msg\("jobid)-600(%d: error reading printer response: %s",)]TJ T* (944 )Tj 8.4 0 Td [(jobid,)-600(strerror\(errno\)\);)]TJ -8.4 -1.189 Td [(945 )-2400(})]TJ T* [(946 )-2400(return\(success\);)]TJ T* [(947 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3679.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 343.8967 Tm [([923 )167(\320 )167(927])]TJ -0.092 Tc 5 0 Td [(We )-273(g)]TJ 0 Tc 2.282 0 Td [(et )-89(the )-89(status )-89(and )-89(job )-89(ID )-89(fr)18(om )-89(the )-89(IPP )-89(header )-89(in )-89(the )-89(message.)-589(Both )-89(ar)21(e)]TJ -2.282 -1.2 Td [(stor)18(ed )-73(as )-73(integers )-73(in )-73(network )-73(byte )-73(or)19(der)74(,)-323(so)-323(w)]TJ 0.3228 Tc (en)Tj 0 Tc 22.079 0 Td [(eed )-73(to )-73(convert )-73(them )-73(to )-73(the)]TJ -22.079 -1.2 Td [(host byte or)18(der by calling)]TJ /TT0 1 Tf 11.514 0 Td (ntohs)Tj /T1_1 1 Tf 3.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (ntohl)Tj /T1_1 1 Tf 0.25 Tc (,r)Tj 0 Tc 3.877 0 Td [(espectively)111(.)]TJ -25.584 -1.6 Td [([928 )167(\320 )167(939])-668(If )-22(the )-22(job )-22(IDs )-22(don\325t )-22(match, )-22(then )-22(this )-22(is )-22(not )-22(our )-22(r)14(esponse, )-22(so )-22(we )-22(log )-22(a )-22(message)]TJ 5 -1.2 Td [(and )-106(br)18(eak )-106(out )-106(of )-106(the )-106(outer)]TJ /TT0 1 Tf 12.382 0 Td (while)Tj /T1_1 1 Tf 3.356 0 Td [(loop. )-356(If)-355(the )-106(IPP )-106(status )-106(indicates )-106(success,)]TJ -15.737 -1.2 Td [(then we save the r)18(eturn value and br)18(eak out of the loop.)]TJ -5 -1.6 Td [([940 )167(\320 )167(947])-668(Befor)18(e)-321(we)-321(r)17(eturn, )-71(we )-71(fr)18(ee )-71(the )-71(buf)18(fer )-71(we )-71(used )-71(to )-71(hold )-71(the )-71(r)18(esponse )-71(message.)]TJ -0.092 Tc 5 -1.2 Td [(We )-184(r)]TJ 0 Tc 2.014 0 Td [(eturn 1 if the print r)18(equest was successful and 0 if it failed.)]TJ -5.214 -2.4 Td [(This )-78(concludes )-78(our )-78(look )-78(at )-78(the )-78(extended )-78(example )-78(in )-78(this )-78(chapter)]TJ 0.5777 Tc 28.888 0 Td (.T)Tj 0 Tc 1.441 0 Td [(he )-78(pr)18(ograms )-78(in)]TJ -32.129 -1.2 Td [(this )-76(chapter )-76(wer)]TJ 0.3262 Tc 7.292 0 Td (et)Tj 0 Tc 1.131 0 Td [(ested )-76(with )-76(a )-76(Xer)18(ox )-76(Phaser )-76(8560 )-76(network-attached )-76(PostScript )-76(printer)72(.)]TJ -8.423 -1.2 Td (Unfortunately)Tj 0.5973 Tc 6.186 0 Td (,t)Tj 0 Tc 1.173 0 Td [(his )-347(printer )-347(doesn\325t )-347(disable )-347(its )-347(autosense )-347(featur)]TJ 0.5973 Tc 22.367 0 Td (ew)Tj 0 Tc 1.91 0 Td [(hen )-347(we )-347(set )-347(the)]TJ -31.636 -1.2 Td [(document )-53(format )-53(to)]TJ /TT0 1 Tf 9.238 0 Td (text/plain)Tj /T1_1 1 Tf 0.553 Tc (.T)Tj 0 Tc 7.416 0 Td [(his )-53(led )-53(us )-53(to )-53(use )-53(a )-53(hack )-53(to )-53(trick )-53(the )-53(printer )-53(so )-53(that)]TJ -16.654 -1.2 Td [(it )-150(wouldn\325t )-150(autosense )-150(the )-150(document )-150(format )-150(when )-150(we )-150(wanted )-150(to )-150(tr)14(eat )-150(a )-150(document )-150(as)]TJ 0 -1.2 TD [(plaintext. )-364(An)-364(alternative )-114(is )-114(to )-114(print )-114(the )-114(sour)18(ce )-114(to )-114(a )-114(PostScript )-114(pr)18(ogram )-114(using )-114(a )-114(utility)]TJ T* (such as)Tj /TT0 1 Tf 3.477 0 Td (a2ps)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.25 Tc 0.333 -0.04 Td (,w)Tj 0 Tc 1.334 0 Td [(hich encapsulates the PostScript pr)18(ogram befor)]TJ 0.25 Tc 20.817 0 Td (ep)Tj 0 Tc 1.33 0 Td (rinting.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47223 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 436.143 708 Tm (Bibliography)Tj /T1_1 1 Tf 7.773 0 Td (951)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 8.9995 0 0 8.9995 129.5922 669.9598 Tm [(Lef)18(\337er)74(,)-568(S.)-568(J., )-318(McKusick, )-318(M. )-318(K., )-318(Kar)18(els, )-318(M. )-318(J., )-318(and )-318(Quarterman, )-318(J. )-318(S.)-819(1989.)]TJ /T1_2 1 Tf 36.307 0 Td [(The )-318(Design )-318(and)]TJ -33.107 -1.222 Td (Implementation of the 4.3BSD UNIX Operating System)Tj /T1_0 1 Tf 0.5 Tc (.A)Tj 0 Tc 24.279 0 Td [(ddison-W)92(esley, Reading, MA.)]TJ 7.9995 0 0 7.9995 179.9891 645.6613 Tm [(An )-227(entir)]TJ 0.477 Tc 3.892 0 Td (eb)Tj 0 Tc 1.509 0 Td [(ook )-227(on )-227(the )-227(4.3BSD )-227(operating )-227(system.)-727(This )-227(book )-227(describes )-227(the )-227(T)92(ahoe )-227(r)18(elease )-227(of)]TJ -5.401 -1.25 Td [(4.3BSD. )-250(Curr)18(ently out of print.)]TJ 8.9995 0 0 8.9995 129.5921 619.1628 Tm [(Lennert, )-540(D.)-1041(1987. )-790(\324)37(\324How )-540(to )-540(W)73(rite )-540(a )-540(UNIX )-540(Daemon,\325)36(\325)]TJ /T1_2 1 Tf 28.257 0 Td (;login:)Tj /T1_0 1 Tf 0.7904 Tc (,v)Tj 0 Tc 4.161 0 Td [(ol. 12,)-790(no. 4,)-790(pp. 17)]TJ 9.331 0.09 Td (\320)Tj 0.583 -0.09 Td (23)Tj -39.133 -1.222 Td (\(July/August\).)Tj 7.9995 0 0 7.9995 179.9888 594.8643 Tm (Describes how to write a daemon in the UNIX System.)Tj 8.9995 0 0 8.9995 129.5918 578.3653 Tm [(Libes, )-69(D.)-568(1990. )-319(\324)38(\324expect: )-69(Curing )-69(Those )-69(Uncontr)19(ollable )-68(Fits )-68(of )-68(Interaction,\325)36(\325)]TJ /T1_2 1 Tf 33.6 0 Td [(Pr)18(oceedings )-68(of )-68(the )-68(1990)]TJ -30.4 -1.222 Td [(Summer USENIX Confer)18(ence)]TJ /T1_0 1 Tf 0.25 Tc (,p)Tj 0 Tc 13.271 0 Td (p. 183)Tj 2.684 0.09 Td (\320)Tj 0.583 -0.09 Td (192, Anaheim, CA.)Tj 0.25 Tc 7.9995 0 0 7.9995 179.9885 554.0668 Tm (Ad)Tj 0 Tc 1.639 0 Td (escription of the)Tj /TT0 1 Tf 7.395 0 Td (expect)Tj /T1_0 1 Tf 3.85 0 Td [(pr)18(ogram and its implementation.)]TJ 8.9995 0 0 8.9995 129.5918 537.5677 Tm [(Libes, )-61(D.)-560(1991. )-311(\324)37(\324expect: )-61(Scripts )-61(for )-61(Contr)18(olling )-61(Interactive )-61(Pr)19(ocesses,\325)37(\325)]TJ /T1_2 1 Tf 31.864 0 Td [(Computing )-61(Systems)]TJ /T1_0 1 Tf 0.3108 Tc (,v)Tj 0 Tc 9.383 0 Td (ol. 4,)Tj -38.046 -1.222 Td (no. 2, pp. 99)Tj 5.413 0.09 Td (\320)Tj 0.583 -0.09 Td (125 \(Spring\).)Tj 7.9995 0 0 7.9995 179.9885 513.2692 Tm [(This paper pr)18(esents numer)18(ous)]TJ /TT0 1 Tf 13.675 0 Td (expect)Tj /T1_0 1 Tf 3.85 0 Td (scripts.)Tj 8.9995 0 0 8.9995 129.5915 496.7702 Tm [(Libes, D.)-500(1994.)]TJ /T1_2 1 Tf 7.132 0 Td (Exploring Expect)Tj /T1_0 1 Tf 0.5 Tc (.O)Tj 0 Tc 8.582 0 Td (\325Reilly & Associates, Sebastopol, CA.)Tj 0.25 Tc 7.9995 0 0 7.9995 179.9885 483.471 Tm (Ac)Tj 0 Tc 1.472 0 Td (omplete book on using the)Tj /TT0 1 Tf 12.027 0 Td (expect)Tj /T1_0 1 Tf 3.85 0 Td [(pr)18(ogram.)]TJ 8.9995 0 0 8.9995 129.5917 466.972 Tm [(Lions, )-155(J.)-654(1977.)]TJ /T1_2 1 Tf 0.4047 Tc 7.251 0 Td (AC)Tj 0 Tc 1.794 0 Td [(ommentary )-155(on )-155(the )-155(UNIX )-155(Operating )-155(System)]TJ /T1_0 1 Tf 0.6547 Tc 18.579 0 Td (.A)Tj 0 Tc 1.609 0 Td [(T&T )-155(Bell )-155(Laboratories, )-155(Murray)]TJ -26.033 -1.222 Td (Hill, NJ.)Tj 7.9995 0 0 7.9995 179.9882 442.6734 Tm [(Describes )-29(the )-29(sour)18(ce )-29(code )-29(of )-29(the )-29(6th )-29(Edition )-29(UNIX )-29(System.)]TJ -0.092 Tc 26.634 0 Td (Av)Tj 0 Tc 1.251 0 Td [(ailable )-29(only )-29(to )-29(A)74(T&T )-29(employees,)]TJ -27.884 -1.25 Td [(contractors, and interns, although copies leaked outside of A)74(T&T)74(.)]TJ 8.9995 0 0 8.9995 129.591 416.175 Tm [(Lions, )-95(J.)-595(1996.)]TJ /T1_2 1 Tf 7.072 0 Td [(Lions\325 )-95(Commentary )-95(on )-95(UNIX )-95(6th )-95(Edition)]TJ /T1_0 1 Tf 0.595 Tc (.P)Tj 0 Tc 18.897 0 Td [(eer)18(-to-Peer )-95(Communications, )-95(San )-95(Jose,)]TJ -22.769 -1.222 Td (CA.)Tj 7.9995 0 0 7.9995 179.9876 391.8765 Tm (Describes the 6th Edition UNIX System in a publicly available version of\ the 1977 classic.)Tj 8.9995 0 0 8.9995 129.5906 375.3775 Tm [(Litwin, )-44(W)]TJ 0.5441 Tc 4.387 0 Td (.1)Tj 0 Tc 1.294 0 Td [(980. )-294(\324)37(\324Linear )-44(Hashing: )-44(A )-44(New )-44(T)92(ool )-44(for )-44(File )-44(and )-44(T)91(able )-44(Addr)18(essing,\325)37(\325)]TJ /T1_2 1 Tf 30.285 0 Td [(Pr)18(oceedings )-44(of )-44(the)]TJ -32.767 -1.222 Td [(6th International Confer)18(ence on V)92(ery Lar)18(ge Databases)]TJ /T1_0 1 Tf 0.25 Tc (,p)Tj 0 Tc 22.954 0 Td (p. 212)Tj 2.684 0.09 Td (\320)Tj 0.583 -0.09 Td [(223, Montr)18(eal, Canada.)]TJ 0.25 Tc 7.9995 0 0 7.9995 179.9873 351.0789 Tm (Ap)Tj 0 Tc 1.629 0 Td (aper describing the linear hashing technique.)Tj 8.9995 0 0 8.9995 129.5903 334.5799 Tm [(McKusick, )-393(M. )-393(K., )-393(Bostic, )-393(K., )-393(Kar)18(els, )-393(M. )-393(J., )-393(and )-393(Quarterman, )-393(J. )-393(S.)-892(1996.)]TJ /T1_2 1 Tf 36.158 0 Td [(The )-393(Design )-393(and)]TJ -32.958 -1.222 Td (Implementation of the 4.4BSD Operating System)Tj /T1_0 1 Tf 0.5 Tc (.A)Tj 0 Tc 21.418 0 Td [(ddison-W)92(esley, Reading, MA.)]TJ 7.9995 0 0 7.9995 179.9872 310.2814 Tm (An entir)Tj 0.25 Tc 3.665 0 Td (eb)Tj 0 Tc 1.282 0 Td (ook on the 4.4BSD operating system.)Tj 8.9995 0 0 8.9995 129.5902 293.7824 Tm [(McKusick, )-204(M. )-204(K., )-204(and )-204(Neville-Neil, )-204(G. )-204(V)]TJ 0.7038 Tc 18.83 0 Td (.2)Tj 0 Tc 1.454 0 Td (005.)Tj /T1_2 1 Tf 2.454 0 Td [(The )-204(Design )-204(and )-204(Implementation )-204(of )-204(the )-204(Fr)19(eeBSD)]TJ -19.537 -1.222 Td (Operating System)Tj /T1_0 1 Tf 0.5 Tc (.A)Tj 0 Tc 8.89 0 Td [(ddison-W)92(esley, Boston, MA.)]TJ 7.9995 0 0 7.9995 179.9872 269.4838 Tm (An entir)Tj 0.25 Tc 3.665 0 Td (eb)Tj 0 Tc 1.282 0 Td [(ook on the Fr)18(eeBSD operating system, version 5.2.)]TJ 8.9995 0 0 8.9995 129.5902 252.9848 Tm [(McDougall, )-40(R., )-40(and )-40(Maur)18(o, )-40(J.)-539(2007.)]TJ /T1_2 1 Tf 16.356 0 Td [(Solaris )-40(Internals: )-40(Solaris )-40(10 )-40(and )-40(OpenSolaris )-40(Kernel )-40(Ar)19(chitectur)18(e,)]TJ -13.156 -1.222 Td (Second Edition)Tj /T1_0 1 Tf 0.5 Tc (.P)Tj -0.018 Tc 7.456 0 Td (re)Tj 0 Tc 0.856 0 Td (ntice Hall, Upper Saddle River)Tj 0.25 Tc 13.481 0 Td (,N)Tj 0 Tc 1.331 0 Td (J.)Tj 0.25 Tc 7.9995 0 0 7.9995 179.9869 228.6863 Tm (Ab)Tj 0 Tc 1.581 0 Td [(ook on the internals of the Solaris 10 operating system.)-500(Also covers OpenSolaris.)]TJ 8.9995 0 0 8.9995 129.5899 212.1873 Tm [(Morris, )-192(R., )-192(and )-192(Thompson, )-192(K.)-694(1979. )-442(\324)37(\324UNIX )-192(Passwor)]TJ 0.4423 Tc 24.798 0 Td (dS)Tj 0 Tc 1.578 0 Td [(ecurity)111(,\325)37(\325)]TJ /T1_2 1 Tf 4.194 0 Td [(Communications )-192(of )-192(the )-192(ACM)]TJ /T1_0 1 Tf 12.512 0 Td (,)Tj -39.883 -1.222 Td [(vol. 22, no. 1)55(1, pp. 594)]TJ 9.76 0.09 Td (\320)Tj 0.583 -0.09 Td [(597 \(Nov)111(.\).)]TJ 0.25 Tc 7.9995 0 0 7.9995 179.9867 187.8887 Tm (Ad)Tj 0 Tc 1.639 0 Td (escription of the history of the design of the passwor)Tj 0.25 Tc 23.196 0 Td (ds)Tj 0 Tc 1.285 0 Td (cheme used in UNIX Systems.)Tj 8.9995 0 0 8.9995 129.5899 171.3897 Tm [(Nemeth, )-65(E., )-65(Snyder)]TJ 0.3147 Tc 8.644 0 Td (,G)Tj 0 Tc 1.328 0 Td [(., )-65(Seebass, )-65(S., )-65(and )-65(Hein, )-65(T)]TJ 0.3147 Tc 11.398 0 Td (.R)Tj 0.5647 Tc 1.233 0 Td (.2)Tj 0 Tc 1.315 0 Td (001.)Tj /T1_2 1 Tf 2.315 0 Td [(UNIX )-65(System )-65(Administration )-65(Handbook,)]TJ -23.032 -1.222 Td (Third Edition)Tj /T1_0 1 Tf 0.5 Tc (.P)Tj -0.018 Tc 6.882 0 Td (re)Tj 0 Tc 0.856 0 Td (ntice Hall, Upper Saddle River)Tj 0.25 Tc 13.481 0 Td (,N)Tj 0 Tc 1.331 0 Td (J.)Tj 0.25 Tc 7.9995 0 0 7.9995 179.9863 147.0912 Tm (Ab)Tj 0 Tc 1.581 0 Td (ook with many details on administering a UNIX system.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47224 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(19.6)]TJ 32.654 0 Td [(Using )-250(the)]TJ /TT0 1 Tf 5.018 0 Td (pty)Tj /T1_0 1 Tf 2.3 0 Td [(Pr)18(ogram)]TJ /T1_1 1 Tf 5.861 0 Td (735)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2562 5090 576 252 re S Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 268.9959 524.8085 Tm (terminal)Tj -0.929 -1.25 Td (device driver)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 3354 5090 576 252 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 343.5948 519.7776 Tm (PTY master)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 4146 5090 576 252 re S Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 425.7514 519.7464 Tm (PTY slave)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2562 5558 576 252 re S Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 269.9472 571.5028 Tm (terminal)Tj -1.225 -1.25 Td (line discipline)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 4146 5558 576 252 re S Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 428.2835 571.4685 Tm (terminal)Tj -1.225 -1.25 Td (line discipline)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 2634 6170 432 252 re S Q BT /TT0 1 Tf 7.9971 0 0 7.9971 277.7 632.6122 Tm (pty)Tj /T1_0 1 Tf -0.533 -1.25 Td [(par)18(ent)]TJ ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 3426 6170 432 252 re S Q BT /TT0 1 Tf 7.9966 0 0 7.9966 356.8501 632.5743 Tm (pty)Tj /T1_0 1 Tf -0.21 -1.25 Td (child)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 1842 6170 432 252 re S Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 196.6416 632.5363 Tm (login)Tj 0.1 -1.25 Td (shell)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 4218 6170 432 252 re S Q BT /TT0 1 Tf 7.9957 0 0 7.9957 435.9645 627.501 Tm (cat)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1770.25 6098.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1770.25 6170.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1770.25 6242.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1770.25 6314.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1770.25 6386.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1770.25 6458.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1837.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1904.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1972.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2040.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2107.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2174.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2242.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2310.25 6494.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 6422.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 6350.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 6278.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 6206.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 6134.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2278.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2210.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2143.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2076.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2008.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1940.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1873.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1806.25 6098.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 5.9964 0 0 5.9964 187.0038 652.2485 Tm [(pr)18(ocess gr)18(oup)]TJ ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2562.25 6098.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2562.25 6170.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2562.25 6242.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2562.25 6314.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2562.25 6386.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2562.25 6458.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2632.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2702.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2772.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2842.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2912.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2982.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3053.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3123.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3192.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3263.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3333.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3403.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3473.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3543.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3614.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3684.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3753.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3824.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3894.25 6494.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3930.25 6422.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3930.25 6350.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3930.25 6278.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3930.25 6206.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3930.25 6134.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3860.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3789.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3720.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3650.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3579.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3509.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3439.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3369.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3299.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3228.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3159.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3089.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3018.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2948.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2878.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2808.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2738.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2668.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2598.25 6098.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 5.996 0 0 5.996 305.7142 652.2094 Tm [(pr)18(ocess gr)18(oup)]TJ ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 6098.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 6170.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 6242.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 6314.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 6386.25 cm 0 0 m 0 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 6458.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4213.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4280.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4348.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4416.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4483.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4551.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4618.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4686.25 6494.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4722.25 6422.25 cm 0 0 m 0 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4722.25 6350.25 cm 0 0 m 0 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4722.25 6278.25 cm 0 0 m 0 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4722.25 6206.25 cm 0 0 m 0 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4722.25 6134.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4654.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4587.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4519.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4452.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4384.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4317.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4249.25 6098.25 cm 0 0 m -36 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4182.25 6098.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 5.9957 0 0 5.9957 424.4103 652.1703 Tm [(pr)18(ocess gr)18(oup)]TJ ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1698.25 5954.25 cm 0 0 m 0 108 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1698.25 6146.25 cm 0 0 m 0 108 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1698.25 6338.25 cm 0 0 m 0 108 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1698.25 6530.25 cm 0 0 m 0 108 l 108 108 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1917.25 6638.25 cm 0 0 m 108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2137.25 6638.25 cm 0 0 m 108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2357.25 6638.25 cm 0 0 m 108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2576.25 6638.25 cm 0 0 m 108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2796.25 6638.25 cm 0 0 m 108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3015.25 6638.25 cm 0 0 m 108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3235.25 6638.25 cm 0 0 m 108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3455.25 6638.25 cm 0 0 m 108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3674.25 6638.25 cm 0 0 m 108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3894.25 6638.25 cm 0 0 m 108 0 l 108 -108 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4002.25 6446.25 cm 0 0 m 0 -108 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4002.25 6254.25 cm 0 0 m 0 -108 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4002.25 6062.25 cm 0 0 m 0 -108 l -108 -108 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3782.25 5954.25 cm 0 0 m -108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3563.25 5954.25 cm 0 0 m -108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3343.25 5954.25 cm 0 0 m -108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3123.25 5954.25 cm 0 0 m -108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2904.25 5954.25 cm 0 0 m -108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2684.25 5954.25 cm 0 0 m -108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2465.25 5954.25 cm 0 0 m -108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2245.25 5954.25 cm 0 0 m -108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2025.25 5954.25 cm 0 0 m -108 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1806.25 5954.25 cm 0 0 m -108 0 l S Q Q BT /T1_0 1 Tf 7.9938 0 0 7.9938 272.1077 666.5199 Tm (session)Tj ET q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4074.25 5954.25 cm 0 0 m 0 108 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4074.25 6146.25 cm 0 0 m 0 108 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4074.25 6338.25 cm 0 0 m 0 108 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4074.25 6530.25 cm 0 0 m 0 108 l 108 108 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4278.25 6638.25 cm 0 0 m 108 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4482.25 6638.25 cm 0 0 m 108 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4686.25 6638.25 cm 0 0 m 108 0 l 108 -108 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4794.25 6446.25 cm 0 0 m 0 -108 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4794.25 6254.25 cm 0 0 m 0 -108 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4794.25 6062.25 cm 0 0 m 0 -108 l -108 -108 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4590.25 5954.25 cm 0 0 m -108 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4386.25 5954.25 cm 0 0 m -108 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4182.25 5954.25 cm 0 0 m -108 0 l S Q Q BT /T1_0 1 Tf 7.9933 0 0 7.9933 430.3583 666.4799 Tm (session)Tj ET q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 275.424 534.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 2754.24 5342 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2754.25 5558.25 cm 0 0 m 0 -144 l S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 294.576 555.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 2945.76 5558 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2946.25 5486.25 cm 0 0 m 0 -144 l S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 433.824 534.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 4338.2402 5342 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4338.25 5558.25 cm 0 0 m 0 -144 l S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 452.976 555.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 4529.7598 5558 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4530.25 5486.25 cm 0 0 m 0 -144 l S Q Q q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 277.8 581 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 2778 5810 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 6170.25 cm 0 0 m 0 -288 l S Q Q q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 292.2 617 cm 0 0 m 6.336 -3.888 l 3.744 -6.408 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 2922 6170 cm 0 0 m 63.36 -38.88 l 37.44 -64.08 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3738.25 5342.25 cm 0 0 m -766 777 l S Q Q q 0.9988007 0 0 0.9988007 0 0 cm q 1 0 0 1 436.2 581 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998801 0 0 0.0998801 0 0 cm 1 j 1 J q 1 0 0 1 4362 5810 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4362.25 6170.25 cm 0 0 m 0 -288 l S Q Q q 0.9987408 0 0 0.9987408 0 0 cm q 1 0 0 1 450.6 617 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998741 0 0 0.0998741 0 0 cm 1 j 1 J q 1 0 0 1 4506 6170 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4506.25 6098.25 cm 0 0 m 0 -288 l S Q Q q 0.9986808 0 0 0.9986808 0 0 cm q 1 0 0 1 357 534.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998681 0 0 0.0998681 0 0 cm 1 j 1 J q 1 0 0 1 3570 5342 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3570.25 6170.25 cm 0 0 m 0 -756 l S Q Q q 0.9986209 0 0 0.9986209 0 0 cm q 1 0 0 1 371.4 617 cm 0 0 m -5.76 -4.68 l -7.272 -1.44 l f Q Q q 0.0998621 0 0 0.0998621 0 0 cm 1 j 1 J q 1 0 0 1 3714 6170 cm 0 0 m -57.6 -46.8 l -72.72 -14.4 l h S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2946.25 5810.25 cm 0 0 m 702 330 l S Q Q q 0.998561 0 0 0.998561 0 0 cm q 1 0 0 1 433.824 494.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998561 0 0 0.0998561 0 0 cm 1 j 1 J q 1 0 0 1 4338.2402 4946 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4338.25 5090.25 cm 0 0 m 0 -72 l S Q Q q 0.9985011 0 0 0.9985011 0 0 cm q 1 0 0 1 373.776 509 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998501 0 0 0.0998501 0 0 cm 1 j 1 J q 1 0 0 1 3737.76 5090 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998501 0 0 0.0998501 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3738.25 5018.25 cm 0 0 m 0 -72 l S Q Q q 0.9984412 0 0 0.9984412 0 0 cm q 1 0 0 1 373.776 494.6 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0998441 0 0 0.0998441 0 0 cm 1 j 1 J q 1 0 0 1 3737.76 4946 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4338.25 4946.25 cm 0 0 m -528 0 l S Q Q q 0.9983813 0 0 0.9983813 0 0 cm q 1 0 0 1 452.976 509 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998381 0 0 0.0998381 0 0 cm 1 j 1 J q 1 0 0 1 4529.7598 5090 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998381 0 0 0.0998381 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4530.25 5018.25 cm 0 0 m 0 -144 l S Q Q q 0.9983214 0 0 0.9983214 0 0 cm q 1 0 0 1 354.624 487.4 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998321 0 0 0.0998321 0 0 cm 1 j 1 J q 1 0 0 1 3546.24 4874 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3546.25 5090.25 cm 0 0 m 0 -144 l S Q Q q 0.9982615 0 0 0.9982615 0 0 cm q 1 0 0 1 452.976 487.4 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998261 0 0 0.0998261 0 0 cm 1 j 1 J q 1 0 0 1 4529.7598 4874 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3546.25 4874.25 cm 0 0 m 912 0 l S Q Q q 0.9982016 0 0 0.9982016 0 0 cm q 1 0 0 1 285 509 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998202 0 0 0.0998202 0 0 cm 1 j 1 J q 1 0 0 1 2850 5090 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9981417 0 0 0.9981417 0 0 cm q 1 0 0 1 285 480.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998142 0 0 0.0998142 0 0 cm 1 j 1 J q 1 0 0 1 2850 4802 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998142 0 0 0.0998142 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2850.25 5018.25 cm 0 0 m 0 -144 l S Q Q q 0.0998142 0 0 0.0998142 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3066 4676 cm 0 0 m 0 -69.59 -96.71 -126 -216 -126 c -335.29 -126 -432 -69.59 -432 0 c -432 69.59 -335.29 126 -216 126 c -96.71 126 0 69.59 0 0 c h S Q Q BT /T1_0 1 Tf 7.9847 0 0 7.9847 269.5739 469.9368 Tm (user at a)Tj -0.01 -1.25 Td (terminal)Tj /T1_1 1 Tf -5.349 -3.88 Td (Figure 19.13)Tj /T1_0 1 Tf 6.195 0 Td [(Pr)18(ocess gr)18(oups and sessions for)]TJ /TT0 1 Tf 14.216 0 Td [(pty )267(cat)]TJ /T1_0 1 Tf 9.9808 0 0 9.9808 129.3514 400.231 Tm [(belongs )-186(to )-186(an )-186(orphaned )-186(pr)16(ocess )-187(gr)18(oup )-187(\(Section )-187(9.10\).)-687(The )-187(par)18(ent )-187(of)]TJ /TT0 1 Tf 31.988 0 Td (cat)Tj /T1_0 1 Tf 2.237 0 Td [(is )-187(the)]TJ /TT0 1 Tf 2.975 0 Td (pty)Tj /T1_0 1 Tf -37.2 -1.2 Td [(par)18(ent, and it belongs to another session.)]TJ 1.8 -1.2 Td (Historically)Tj 0.2705 Tc 5.076 0 Td (,i)Tj 0 Tc 0.811 0 Td [(mplementations )-20(have )-20(handled )-20(this )-20(condition )-20(dif)16(fer)18(ently)]TJ 0.5205 Tc 24.698 0 Td (.P)Tj 0 Tc 1.374 0 Td [(OSIX.1 )-20(says)]TJ -33.761 -1.2 Td [(only )-94(that )-94(the)]TJ /TT0 1 Tf 6.128 0 Td (SIGTSTP)Tj /T1_0 1 Tf 4.544 0 Td [(signal )-94(can\325t )-94(be )-94(deliver)18(ed )-94(to )-94(the )-94(pr)17(ocess. )-344(Systems)-344(derived )-94(fr)18(om)]TJ -10.672 -1.2 Td [(4.3BSD )-50(deliver)18(ed)]TJ /TT0 1 Tf 7.942 0 Td (SIGKILL)Tj /T1_0 1 Tf 4.5 0 Td [(instead, )-50(which )-50(the )-50(pr)18(ocess )-50(can\325t )-50(even )-50(catch.)-548(In )-50(4.4BSD, )-50(this)]TJ -12.442 -1.2 Td [(behavior )-23(was )-23(changed )-23(to )-23(conform )-23(to )-23(POSIX.1.)-523(Instead )-23(of )-23(sending)]TJ /TT0 1 Tf 29.457 0 Td (SIGKILL)Tj /T1_0 1 Tf 0.273 Tc (,t)Tj 0 Tc 5.049 0 Td [(he )-23(4.4BSD)]TJ -34.506 -1.2 Td [(kernel )-53(silently )-53(discar)18(ds )-53(the)]TJ /TT0 1 Tf 12.303 0 Td (SIGTSTP)Tj /T1_0 1 Tf 4.503 0 Td [(signal )-53(if )-53(it )-53(has )-53(the )-53(default )-53(disposition )-53(and )-53(is )-53(to )-53(be)]TJ -16.805 -1.2 Td [(deliver)18(ed )-158(to )-158(a )-158(pr)18(ocess )-158(in )-158(an )-158(orphaned )-158(pr)18(ocess )-158(gr)17(oup. )-408(Most)-408(curr)18(ent )-158(implementations)]TJ -0 -1.2 Td [(follow this behavior)74(.)]TJ 1.8 -1.2 Td [(When )-67(we )-67(use)]TJ /TT0 1 Tf 6.414 0 Td (pty)Tj /T1_0 1 Tf 2.117 0 Td [(to )-67(r)8(un )-67(a )-67(job-contr)18(ol )-67(shell, )-67(the )-67(jobs )-67(invoked )-67(by )-67(this )-67(new )-67(shell )-67(ar)16(e)]TJ -10.331 -1.2 Td [(never )-214(members )-214(of )-214(an )-214(orphaned )-214(pr)18(ocess )-214(gr)20(oup, )-214(because )-214(the )-214(job-contr)18(ol )-214(shell )-214(always)]TJ 0 -1.2 TD [(belongs )-190(to )-190(the )-190(same )-190(session.)-690(In )-190(that )-190(case, )-190(the )-190(Contr)14(ol)]TJ 25.124 0.09 Td (-)Tj 0.4404 Tc 0.333 -0.09 Td (Zt)Tj 0 Tc 1.433 0 Td [(hat )-190(we )-190(type )-190(is )-190(sent )-190(to )-190(the)]TJ -26.89 -1.2 Td [(pr)18(ocess invoked by the shell, not to the shell itself.)]TJ 1.8 -1.2 Td [(The )-247(only )-247(way )-247(to )-247(avoid )-247(this )-247(inability )-247(of )-247(the )-247(pr)18(ocess )-247(invoked )-247(by)]TJ /TT0 1 Tf 30.49 0 Td (pty)Tj /T1_0 1 Tf 2.297 0 Td [(to )-247(handle)]TJ -34.586 -1.2 Td [(job-contr)18(ol signals is to add yet another command)]TJ 22.127 0.09 Td (-)Tj 0.333 -0.09 Td (line \337ag to)Tj /TT0 1 Tf 4.93 0 Td (pty)Tj /T1_0 1 Tf 0.2503 Tc (,t)Tj 0 Tc 2.626 0 Td [(elling it to r)17(ecognize)]TJ -30.016 -1.2 Td [(the )-28(job )-28(contr)18(ol )-28(suspend )-28(character )-28(itself )-28(\(in )-28(the)]TJ /TT0 1 Tf 20.584 0 Td (pty)Tj /T1_0 1 Tf 2.078 0 Td [(child\) )-28(instead )-28(of )-28(letting )-28(the )-28(character)]TJ -22.662 -1.2 Td [(get all the way thr)18(ough to the other line discipline.)]TJ /TT1 1 Tf -0.04 Tc -3.6 -2.76 Td (Wa)Tj 0 Tc 1.46 0 Td [(tc)10(hing the Output of Long-Running Pr)20(ograms)]TJ /T1_0 1 Tf 2.14 -2.04 Td [(Another )-269(example )-269(of )-269(job )-269(contr)18(ol )-269(interaction )-269(with )-269(the)]TJ /TT0 1 Tf 25.096 0 Td (pty)Tj /T1_0 1 Tf 2.319 0 Td [(pr)18(ogram )-269(is )-269(found )-269(in )-269(the)]TJ -27.416 -1.2 Td [(con\336guration )-145(illustrated )-145(in )-145(Figur)]TJ 0.3952 Tc 14.955 0 Td (e1)Tj 0 Tc 1.374 0 Td [(9.7. )-395(If)-395(we )-145(r)8(un )-145(the )-145(pr)18(ogram )-145(that )-145(generates )-145(output)]TJ -16.329 -1.2 Td (slowly as)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47225 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.2)]TJ 41.434 0 Td (Pipes)Tj /T1_1 1 Tf 4.399 0 Td (535)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Despite )-63(these )-63(limitations, )-63(half-duplex )-63(pipes )-63(ar)]TJ 0.3135 Tc 20.645 0 Td (es)Tj 0 Tc 1.216 0 Td [(till )-64(the )-64(most )-64(commonly )-64(used )-64(form)]TJ -23.662 -1.2 Td [(of )-177(IPC.)-677(Every )-177(time )-177(you )-177(type )-177(a )-177(sequence )-177(of )-177(commands )-177(in )-177(a )-177(pipeline )-177(for )-177(the )-177(shell )-177(to)]TJ 0 -1.2 TD [(execute, )-101(the )-101(shell )-101(cr)18(eates )-101(a )-101(separate )-101(pr)18(ocess )-101(for )-101(each )-101(command )-101(and )-101(links )-101(the )-101(standar)22(d)]TJ T* [(output of one pr)18(ocess to the standar)]TJ 0.25 Tc 15.865 0 Td (di)Tj 0 Tc 1.152 0 Td (nput of the next using a pipe.)Tj 0.25 Tc -15.217 -1.2 Td (Ap)Tj 0 Tc 1.629 0 Td [(ipe is cr)18(eated by calling the)]TJ /TT0 1 Tf 12.253 0 Td (pipe)Tj /T1_0 1 Tf 2.65 0 Td (function.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5906 604.2637 Tm (#include )Tj 0 -1.783 TD (int pipe\(int)Tj /T1_2 1 Tf 7.8 0 Td (fd[2])Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 19.051 -1.783 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5677.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf -0.09 Tc 9.9988 0 0 9.9988 129.5844 554.1335 Tm (Tw)Tj 0.2718 Tc 1.357 0 Td (o\336)Tj 0 Tc 1.423 0 Td [(le )-22(descriptors )-22(ar)]TJ 0.2718 Tc 7.127 0 Td (er)Tj 0 Tc 1.128 0 Td [(eturned )-22(thr)18(ough )-22(the)]TJ /T1_2 1 Tf 9.249 0 Td (fd)Tj /T1_0 1 Tf 1.05 0 Td [(ar)18(gument:)]TJ /T1_2 1 Tf 4.828 0 Td (fd[0])Tj /T1_0 1 Tf 2.216 0 Td [(is )-22(open )-22(for )-22(r)19(eading, )-22(and)]TJ /T1_2 1 Tf -28.377 -1.2 Td (fd[1])Tj /T1_0 1 Tf 2.194 0 Td [(is open for writing.)-500(The output of)]TJ /T1_2 1 Tf 15.28 0 Td (fd[1])Tj /T1_0 1 Tf 2.194 0 Td (is the input for)Tj /T1_2 1 Tf 6.779 0 Td (fd[0])Tj /T1_0 1 Tf (.)Tj 7.999 0 0 7.999 183.578 522.1373 Tm [(Originally )-36(in )-36(4.3BSD )-36(and )-36(4.4BSD, )-36(pipes )-36(wer)]TJ 0.2864 Tc 19.479 0 Td (ei)Tj 0 Tc 1.056 0 Td [(mplemented )-36(using )-36(UNIX )-36(domain )-36(sockets.)-538(Even)]TJ -20.536 -1.25 Td [(though )-59(UNIX )-59(domain )-59(sockets )-59(ar)]TJ 0.3091 Tc 14.534 0 Td (ef)Tj 0 Tc 1.121 0 Td [(ull )-59(duplex )-59(by )-59(default, )-59(these )-59(operating )-59(systems )-59(hobbled )-59(the)]TJ -15.655 -1.25 Td [(sockets used with pipes so that they operated in half-duplex mode only)111(.)]TJ 0 -1.875 TD [(POSIX.1 )-45(allows )-45(for )-45(implementations )-45(to )-45(support )-45(full-duplex )-45(pipes.)-545(For )-45(these )-45(implementations,)]TJ /T1_2 1 Tf 0 -1.25 TD (fd[0])Tj /T1_0 1 Tf 2.194 0 Td (and)Tj /T1_2 1 Tf 1.943 0 Td (fd[1])Tj /T1_0 1 Tf 2.194 0 Td (ar)Tj 0.25 Tc 0.877 0 Td (eo)Tj 0 Tc 1.275 0 Td [(pen for both r)18(eading and writing.)]TJ -0.09 Tc 9.9988 0 0 9.9988 147.5827 457.1451 Tm (Tw)Tj 0.3588 Tc 1.357 0 Td (ow)Tj 0 Tc 1.739 0 Td [(ays )-109(to )-109(pictur)]TJ 0.3588 Tc 5.712 0 Td (eah)Tj 0 Tc 2.279 0 Td [(alf-duplex )-109(pipe )-109(ar)]TJ 0.3587 Tc 8.124 0 Td (es)Tj 0 Tc 1.262 0 Td [(hown )-109(in )-109(Figur)]TJ 0.3587 Tc 6.517 0 Td (e1)Tj 0 Tc 1.338 0 Td [(5.2. )-359(The)-358(left )-109(half )-109(of)]TJ -30.127 -1.2 Td [(the )-59(\336gur)]TJ 0.3088 Tc 3.837 0 Td (es)Tj 0 Tc 1.212 0 Td [(hows )-59(the )-59(two )-59(ends )-59(of )-59(the )-59(pipe )-59(connected )-59(in )-59(a )-59(single )-59(pr)19(ocess. )-309(The)-309(right )-59(half)]TJ -5.049 -1.2 Td (of the \336gur)Tj 0.25 Tc 4.907 0 Td (ee)Tj 0 Tc 1.208 0 Td [(mphasizes that the data in the pipe \337ows thr)18(ough the kernel.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1650.84 3704 720 360 re S Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 303.4654 386.5704 Tm (or)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 3774.84 3704 720 360 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 171.0429 373.5503 Tm [(fd[0])-1500(fd[1])]TJ ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 183.084 370.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 1830.84 3704 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1830.84 3696.8 cm 0 0 m 0 -68.4 l 0 -114 30 -148.8 90 -172.8 c 150 -196.8 210 -196.8 270 -172.8 c 330 -148.8 360 -112.8 360 -64.8 c 360 7.2 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 179.2462 409.5171 Tm [(user pr)18(ocess)]TJ 26.55 0 Td [(user pr)18(ocess)]TJ /TT0 1 Tf -1.027 -4.5 Td [(fd[0])-1500(fd[1])]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 3702.84 2912 864 432 re S Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 402.2112 284.3376 Tm (kernel)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 3846.84 3056 576 144 re S Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 405.4257 310.9094 Tm (pipe)Tj ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 395.484 370.4 cm 0 0 m -4.32 -6.048 l -6.624 -3.312 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3954.8401 3704 cm 0 0 m -43.2 -60.48 l -66.24 -33.12 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3949.0801 3699.6799 cm 0 0 m -339.12 -285.84 l -565.2 -476.4 -582.24 -571.68 -390.24 -571.68 c -102.24 -571.68 l S Q Q q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 442.284 312.8 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 4422.8398 3128 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4314.8398 3704 cm 0 0 m 342 -288 l 570 -480 589.2 -576 399.6 -576 c 115.2 -576 l S Q Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 236.2124 265.8564 Tm (Figure 15.2)Tj /T1_0 1 Tf -0.09 Tc 5.695 0 Td (Tw)Tj 0.25 Tc 1.357 0 Td (ow)Tj 0 Tc 1.63 0 Td (ays to view a half-duplex pipe)Tj 9.9946 0 0 9.9946 147.5202 239.4706 Tm (The)Tj /TT0 1 Tf 1.95 0 Td (fstat)Tj /T1_0 1 Tf 3.276 0 Td [(function )-26(\(Section )-26(4.2\) )-26(r)18(eturns )-26(a )-26(\336le )-26(type )-26(of )-26(FIFO )-26(for )-26(the )-26(\336le )-26(descriptor )-26(of)]TJ -7.027 -1.2 Td (either end of a pipe.)Tj -0.092 Tc 9.325 0 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td (an test for a pipe with the)Tj /TT0 1 Tf 11.553 0 Td (S_ISFIFO)Tj /T1_0 1 Tf 5.05 0 Td [(macr)18(o.)]TJ 7.9957 0 0 7.9957 183.501 207.4879 Tm [(POSIX.1 )-125(states )-125(that )-125(the)]TJ /TT0 1 Tf 10.768 0 Td (st_size)Tj /T1_0 1 Tf 4.575 0 Td [(member )-125(of )-125(the)]TJ /TT0 1 Tf 7.062 0 Td (stat)Tj /T1_0 1 Tf 2.775 0 Td [(str)8(uctur)]TJ 0.3748 Tc 3.49 0 Td (ei)Tj 0.3749 Tc 1.145 0 Td (su)Tj 0 Tc 1.402 0 Td [(nde\336ned )-125(for )-125(pipes.)-625(But)]TJ -31.216 -1.25 Td [(when )-96(the)]TJ /TT0 1 Tf 4.556 0 Td (fstat)Tj /T1_0 1 Tf 3.346 0 Td [(function )-96(is )-96(applied )-96(to )-96(the )-96(\336le )-96(descriptor )-96(for )-96(the )-96(r)18(ead )-96(end )-96(of )-96(the )-96(pipe, )-96(many)]TJ -7.903 -1.25 Td [(systems )-211(stor)]TJ 0.4609 Tc 5.65 0 Td (ei)Tj 0 Tc 1.231 0 Td (n)Tj /TT0 1 Tf 1.043 0 Td (st_size)Tj /T1_0 1 Tf 4.661 0 Td [(the )-211(number )-211(of )-211(bytes )-211(available )-211(for )-211(r)18(eading )-211(in )-211(the )-211(pipe.)-711(This )-211(is,)]TJ -12.584 -1.25 Td (however)Tj 0.25 Tc 3.806 0 Td (,n)Tj 0 Tc 1.082 0 Td (onportable.)Tj 0.3232 Tc 9.9946 0 0 9.9946 147.5197 157.5149 Tm (Ap)Tj 0 Tc 1.702 0 Td [(ipe )-73(in )-73(a )-73(single )-73(pr)17(ocess )-73(is )-73(next )-73(to )-73(useless.)-573(Normally)]TJ 0.3231 Tc 22.866 0 Td (,t)Tj 0 Tc 0.899 0 Td [(he )-73(pr)18(ocess )-73(that )-73(calls)]TJ /TT0 1 Tf 9.332 0 Td (pipe)Tj /T1_0 1 Tf -36.6 -1.2 Td [(then )-165(calls)]TJ /TT0 1 Tf 4.75 0 Td (fork)Tj /T1_0 1 Tf 0.4154 Tc (,c)Tj -0.018 Tc 3.509 0 Td (re)Tj 0 Tc 0.856 0 Td [(ating )-165(an )-165(IPC )-165(channel )-165(fr)16(om )-165(the )-165(par)18(ent )-165(to )-165(the )-165(child, )-165(or )-165(vice )-165(versa.)]TJ -9.115 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.3 shows this scenario.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47226 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(5.5)]TJ 35.366 0 Td [(Opening )-250(a )-250(Str)18(eam)]TJ /T1_1 1 Tf 10.467 0 Td (149)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(text )-156(\336le )-156(and )-156(a )-156(binary )-156(\336le.)-656(Since )-156(the )-156(UNIX )-156(kernel )-156(doesn\325t )-156(dif)22(fer)18(entiate )-156(between )-156(these)]TJ -0 -1.2 Td (types of \336les, specifying the character)Tj /TT0 1 Tf 16.823 0 Td (b)Tj /T1_0 1 Tf 0.85 0 Td (as part of the)Tj /T1_2 1 Tf 6.012 0 Td (type)Tj /T1_0 1 Tf 1.972 0 Td [(has no ef)18(fect.)]TJ -0.055 Tc -23.857 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td (th)Tj /TT0 1 Tf 1.192 0 Td (fdopen)Tj /T1_0 1 Tf 0.2839 Tc (,t)Tj 0 Tc 4.46 0 Td [(he )-34(meanings )-34(of )-34(the)]TJ /T1_2 1 Tf 8.759 0 Td (type)Tj /T1_0 1 Tf 2.006 0 Td [(ar)18(gument )-34(dif)18(fer )-34(slightly)]TJ 0.5338 Tc 10.504 0 Td (.T)Tj 0 Tc 1.397 0 Td [(he )-34(descriptor )-34(has)]TJ -31.353 -1.2 Td [(alr)18(eady )-5(been )-5(opened, )-5(so )-5(opening )-5(for )-5(writing )-5(does )-5(not )-5(tr)8(uncate )-5(the )-5(\336le.)-505(\(If )-5(the )-5(descriptor)]TJ 0 -1.2 TD [(was )-317(cr)18(eated )-317(by )-317(the)]TJ /TT0 1 Tf 9.737 0 Td (open)Tj /T1_0 1 Tf 2.967 0 Td [(function, )-317(for )-317(example, )-317(and )-317(the )-317(\336le )-317(alr)19(eady )-317(existed, )-317(the)]TJ /TT0 1 Tf -12.704 -1.2 Td (O_TRUNC)Tj /T1_0 1 Tf 4.673 0 Td [(\337ag )-223(would )-223(contr)18(ol )-223(whether )-223(the )-223(\336le )-223(was )-223(tr)8(uncated. )-473(The)]TJ /TT0 1 Tf 26.547 0 Td (fdopen)Tj /T1_0 1 Tf 4.073 0 Td (function)Tj -35.293 -1.2 Td [(cannot )-133(simply )-133(tr)8(uncate )-133(any )-133(\336le )-133(it )-133(opens )-133(for )-133(writing.\))-629(Also, )-132(the )-132(standar)]TJ 0.3825 Tc 32.521 0 Td (dI)Tj 0 Tc 1.33 0 Td [(/O )-132(append)]TJ -33.852 -1.2 Td [(mode cannot cr)18(eate the \336le \(since the \336le has to exist if a descriptor r)18(efers to it\).)]TJ 1.8 -1.2 Td [(When )-60(a )-60(\336le )-60(is )-60(opened )-60(with )-60(a )-60(type )-60(of )-60(append, )-60(each )-60(write )-60(will )-60(take )-60(place )-60(at )-60(the )-60(then)]TJ -1.8 -1.2 Td [(curr)18(ent )-207(end )-207(of )-207(\336le.)-707(If )-207(multiple )-207(pr)18(ocesses )-207(open )-207(the )-207(same )-207(\336le )-207(with )-207(the )-207(standar)]TJ 0.457 Tc 36.203 0 Td (dI)Tj 0 Tc 1.405 0 Td (/O)Tj -37.608 -1.2 Td [(append mode, the data fr)18(om each pr)18(ocess will be corr)18(ectly written to the \336le.)]TJ -0.111 Tc 7.9995 0 0 7.9995 183.5885 528.9683 Tm (Ve)Tj 0 Tc 1.09 0 Td [(rsions )-51(of)]TJ /TT0 1 Tf 4.143 0 Td (fopen)Tj /T1_0 1 Tf 3.301 0 Td [(fr)18(om )-51(Berkeley )-51(befor)]TJ 0.301 Tc 8.875 0 Td (e4)Tj 0 Tc 1.28 0 Td [(.4BSD )-51(and )-51(the )-51(simple )-51(version )-51(shown )-51(on )-51(page )-51(177 )-51(of)]TJ -18.689 -1.25 Td [(Kernighan )-47(and )-47(Ritchie)]TJ 10.359 0.04 Td ([)Tj 0.333 -0.04 Td (1988)Tj 2 0.04 Td (])Tj 0.63 -0.04 Td [(do )-47(not )-47(handle )-47(the )-47(append )-47(mode )-47(corr)17(ectly)]TJ 0.5473 Tc 18.467 0 Td (.T)Tj 0 Tc 1.41 0 Td [(hese )-47(versions )-47(do )-47(an)]TJ /TT0 1 Tf -33.199 -1.25 Td (lseek)Tj /T1_0 1 Tf 3.359 0 Td [(to )-109(the )-109(end )-109(of )-109(\336le )-109(when )-109(the )-109(str)18(eam )-109(is )-109(opened.)]TJ -0.092 Tc 21.143 0 Td [(To )-293(c)]TJ 0 Tc 1.87 0 Td [(orr)18(ectly )-109(support )-109(the )-109(append )-109(mode)]TJ -26.373 -1.25 Td [(when )-23(multiple )-23(pr)18(ocesses )-23(ar)]TJ 0.2735 Tc 12.138 0 Td (ei)Tj 0 Tc 1.044 0 Td [(nvolved, )-23(the )-23(\336le )-23(must )-23(be )-23(opened )-23(with )-23(the)]TJ /TT0 1 Tf 18.825 0 Td (O_APPEND)Tj /T1_0 1 Tf 5.073 0 Td [(\337ag, )-23(which)]TJ -37.08 -1.25 Td [(we )-201(discussed )-201(in )-201(Section )-201(3.3.)-702(Doing )-201(an)]TJ /TT0 1 Tf 18.43 0 Td (lseek)Tj /T1_0 1 Tf 3.451 0 Td (befor)Tj 0.4514 Tc 2.288 0 Td (ee)Tj 0 Tc 1.409 0 Td [(ach )-201(write )-201(won\325t )-201(work )-201(either)73(,)-451(as)-451(w)-1(e)]TJ -25.579 -1.25 Td [(discussed in Section 3.1)55(1.)]TJ 9.9994 0 0 9.9994 147.5899 458.9725 Tm [(When )-235(a )-235(\336le )-235(is )-235(opened )-235(for )-235(r)20(eading )-234(and )-234(writing )-234(\(the )-234(plus )-234(sign )-234(in )-234(the)]TJ /T1_2 1 Tf 32.705 0 Td (type)Tj /T1_0 1 Tf [(\), )-234(two)]TJ -0.018 Tc -34.505 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(strictions apply)111(.)]TJ 0.883 Tc 0.944 -1.8 Td (\245O)Tj 0 Tc 2.275 0 Td [(utput )-157(cannot )-157(be )-157(dir)18(ectly )-157(followed )-157(by )-157(input )-157(without )-157(an )-157(intervening)]TJ /TT0 1 Tf 31.075 0 Td (fflush)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf -31.861 -1.2 Td (fseek)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.5 0 Td (fsetpos)Tj /T1_0 1 Tf 0.25 Tc (,o)Tj 0 Tc 5.246 0 Td (r)Tj /TT0 1 Tf 0.645 0 Td (rewind)Tj /T1_0 1 Tf (.)Tj 0.883 Tc -10.88 -1.36 Td (\245I)Tj 0 Tc 1.826 0 Td [(nput )-236(cannot )-236(be )-236(dir)18(ectly )-236(followed )-236(by )-236(output )-236(without )-236(an )-236(intervening)]TJ /TT0 1 Tf 32.124 0 Td (fseek)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf -32.461 -1.2 Td (fsetpos)Tj /T1_0 1 Tf 0.25 Tc (,o)Tj 0 Tc 5.246 0 Td (r)Tj /TT0 1 Tf 0.645 0 Td (rewind)Tj /T1_0 1 Tf [(,)-250(or)-250(an)-250(input operation that encounters an end of \336le.)]TJ -0.092 Tc -7.38 -1.8 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td [(an summarize the six ways to open a str)18(eam fr)18(om Figur)]TJ 0.25 Tc 24.563 0 Td (e5)Tj 0 Tc 1.229 0 Td (.2 in Figur)Tj 0.25 Tc 4.506 0 Td (e5)Tj 0 Tc 1.229 0 Td (.3.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1950.25 3546.25 cm 0 0 m 2592 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 240.6831 346.5584 Tm (Restriction)Tj /TT0 1 Tf 2.1 Tc 11.785 0 Td (rwa)Tj 0 Tc 7.8 0 Td [(r+ )-900(w+ )-900(a+)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1950.25 3426.25 cm 0 0 m 2592 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1950.25 3406.25 cm 0 0 m 2592 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 198.9762 332.5401 Tm [(\336le must alr)18(eady exist)]TJ 7.494 Tc 16.994 0 Td (\245\245)Tj 0 Tc -16.994 -1.25 Td [(pr)18(evious contents of \336le discar)18(ded )-4247(\245)]TJ 27.794 0 Td (\245)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1950.25 3186.25 cm 0 0 m 2592 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 198.9642 310.5255 Tm [(str)18(eam can be r)18(ead )]TJ 16.994 0 Td (\245)Tj 2.094 Tc 8.1 0 Td (\245\245\245)Tj 0 Tc -25.094 -1.25 Td [(str)18(eam can be written)]TJ 2.094 Tc 19.694 0 Td (\245\245\245\245\245)Tj 0 Tc -19.694 -1.25 Td [(str)18(eam can be written only at end)]TJ 7.494 Tc 22.394 0 Td (\245\245)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1950.25 2866.25 cm 0 0 m 2592 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4346.25 2866.25 cm 0 0 m 0 680 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4130.25 2866.25 cm 0 0 m 0 680 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3914.25 2866.25 cm 0 0 m 0 680 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3698.25 2866.25 cm 0 0 m 0 680 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3482.25 2866.25 cm 0 0 m 0 680 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3266.25 2866.25 cm 0 0 m 0 680 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4542.25 2866.25 cm 0 0 m 0 680 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1950.25 2866.25 cm 0 0 m 0 680 l S Q Q BT /T1_1 1 Tf 0 Tc 7.9976 0 0 7.9976 233.25 268.5194 Tm (Figure 5.3)Tj /T1_0 1 Tf 5.195 0 Td (Six ways to open a standar)Tj 0.25 Tc 11.796 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O str)18(eam)]TJ 9.997 0 0 9.997 129.5613 244.5266 Tm [(Note )-47(that )-47(if )-47(a )-47(new )-47(\336le )-47(is )-47(cr)18(eated )-47(by )-47(specifying )-47(a)]TJ /T1_2 1 Tf 21.671 0 Td (type)Tj /T1_0 1 Tf 2.019 0 Td [(of )-47(either)]TJ /TT0 1 Tf 4.024 0 Td (w)Tj /T1_0 1 Tf 0.897 0 Td (or)Tj /TT0 1 Tf 1.238 0 Td (a)Tj /T1_0 1 Tf [(,)-297(we)-297(a)]TJ -0.018 Tc 3.256 0 Td [(re )-83(n)]TJ 0 Tc 1.735 0 Td [(ot )-47(able )-47(to)]TJ -34.84 -1.2 Td [(specify )-93(the )-93(\336le\325s )-93(access )-93(permission )-93(bits, )-93(as )-93(we )-93(wer)]TJ 0.3432 Tc 22.74 0 Td (ea)Tj 0 Tc 1.322 0 Td [(ble )-93(to )-93(do )-93(with )-93(the)]TJ /TT0 1 Tf 8.488 0 Td (open)Tj /T1_0 1 Tf 2.743 0 Td (function)Tj -35.293 -1.2 Td [(and )-95(the)]TJ /TT0 1 Tf 3.77 0 Td (creat)Tj /T1_0 1 Tf 3.345 0 Td [(function )-95(in )-95(Chapter )-95(3.)-595(POSIX.1 )-95(r)18(equir)18(es )-95(implementations )-95(to )-95(cr)18(eate )-95(the)]TJ -7.115 -1.2 Td (\336le with the following permissions bit set:)Tj /TT0 1 Tf 8.9973 0 0 8.9973 147.5556 191.8424 Tm (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)Tj /T1_0 1 Tf 9.997 0 0 9.997 129.561 173.8478 Tm [(Recall )-11(fr)18(om )-11(Section )-11(4.8, )-11(however)]TJ 0.2611 Tc 14.355 0 Td (,t)Tj 0 Tc 0.837 0 Td [(hat )-11(we )-11(can )-11(r)18(estrict )-11(these )-11(permissions )-11(by )-11(adjusting )-11(our)]TJ /TT0 1 Tf -15.193 -1.2 Td (umask)Tj /T1_0 1 Tf 3.25 0 Td (value.)Tj -1.45 -1.2 Td [(By )-63(default, )-63(the )-63(str)17(eam )-63(that )-63(is )-63(opened )-63(is )-63(fully )-63(buf)15(fer)18(ed, )-63(unless )-63(it )-63(r)18(efers )-63(to )-63(a )-63(terminal)]TJ -1.8 -1.2 Td [(device, )-97(in )-97(which )-97(case )-97(it )-97(is )-97(line )-97(buf)17(fer)18(ed. )-347(Once)-347(the )-97(str)18(eam )-97(is )-97(opened, )-97(but )-97(befor)18(e)-347(we)-347(do)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47227 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (76)Tj /T1_1 1 Tf 3 0 Td [(File )-250(I/O)]TJ 39.741 0 Td [(Chapter )-250(3)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(The )-290(v-node )-290(was )-290(invented )-290(to )-290(pr)18(ovide )-290(support )-290(for )-290(multiple )-290(\336le )-290(system )-290(types )-290(on )-290(a )-290(single)]TJ 0 -1.25 TD [(computer )-27(system.)-527(This )-27(work )-27(was )-27(done )-27(independently )-27(by )-27(Peter )-27(W)91(einber)18(ger )-27(\(Bell )-27(Laboratories\))]TJ -0 -1.25 Td [(and )-157(Bill )-157(Joy )-157(\(Sun )-157(Micr)19(osystems\). )-407(Sun)-407(called )-157(this )-157(the )-157(V)55(irtual )-157(File )-157(System )-157(and )-157(called )-157(the )-157(\336le)]TJ -0 -1.25 Td [(system\320independent )-30(portion )-30(of )-30(the )-30(i-node )-30(the )-30(v-node)]TJ 24.074 0.04 Td ([)Tj 0.333 -0.04 Td [(Kleiman )-30(1986)]TJ 6.032 0.04 Td (])Tj 0.5303 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.393 0 Td [(he )-30(v-node )-30(pr)18(opagated)]TJ -32.166 -1.25 Td [(thr)18(ough )-19(various )-19(vendor )-19(implementations )-19(as )-19(support )-19(for )-19(Sun\325s )-19(Network )-19(File )-19(System)]TJ 37.396 0.04 Td (\()Tj 0.333 -0.04 Td (NFS)Tj 1.912 0.04 Td (\))Tj 0.602 -0.04 Td (was)Tj -40.242 -1.25 Td [(added. )-288(The)-288(\336rst )-38(r)18(elease )-38(fr)18(om )-38(Berkeley )-38(to )-38(pr)18(ovide )-38(v-nodes )-38(was )-38(the )-38(4.3BSD )-38(Reno )-38(r)18(elease, )-38(when)]TJ T* (NFS was added.)Tj 0 -1.875 TD [(In )-88(SVR4, )-88(the )-88(v-node )-88(r)18(eplaced )-88(the )-88(\336le )-88(system\320independent )-88(i-node )-88(of )-88(SVR3.)-593(Solaris )-88(is )-88(derived)]TJ 0 -1.25 TD [(fr)18(om SVR4 and, ther)18(efor)18(e, uses v-nodes.)]TJ 0 -1.875 TD [(Instead )-338(of )-338(splitting )-338(the )-338(data )-338(str)8(uctur)18(es )-338(into )-338(a )-338(v-node )-338(and )-338(an )-338(i-node, )-338(Linux )-338(uses )-338(a )-338(\336le)]TJ -0 -1.25 Td (system\320independent i-node and a \336le system\320dependent i-node.)Tj 9.9994 0 0 9.9994 147.5908 540.9675 Tm [(If )-421(two )-421(independent )-421(pr)18(ocesses )-421(have )-421(the )-421(same )-421(\336le )-421(open, )-421(we )-421(could )-421(have )-421(the)]TJ -1.8 -1.2 Td (arrangement shown in Figur)Tj 0.25 Tc 12.651 0 Td (e3)Tj 0 Tc 1.229 0 Td (.8.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1341.24 3966 1008 1008 re S Q BT /T1_1 1 Tf 7.999 0 0 7.999 151.3778 500.5799 Tm [(pr)18(ocess table entry)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 4614 576 72 re S Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 4542 576 72 re S Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 4470 576 72 re S Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 4398 576 72 re S Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 4110 576 288 re S Q BT /T1_1 1 Tf 0.25 Tc 13.9975 0 0 13.9975 182.9411 423.5637 Tm (...)Tj 0 Tc 6.9987 0 0 6.9987 147.5396 463.1562 Tm (fd 0:)Tj 0 -1.029 TD (fd 1:)Tj 0 -1.029 TD (fd 2:)Tj 0 -1.029 TD (fd 3:)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1845.25 4686.25 cm 0 0 m 0 -288 l S Q Q BT /T1_1 1 Tf 6.9983 0 0 6.9983 170.3791 477.4854 Tm (fd)Tj -0.572 -0.714 Td (\337ags)Tj 4.471 0.714 Td (\336le)Tj -0.923 -0.714 Td (pointer)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1341.24 2670 1008 1008 re S Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 151.3506 370.9287 Tm [(pr)18(ocess table entry)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 1629.24 3390 576 72 re S Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 1629.24 3318 576 72 re S Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 1629.24 3246 576 72 re S Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 1629.24 3174 576 72 re S Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 1629.24 3102 576 72 re S Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 1629.24 2814 576 288 re S Q BT /T1_1 1 Tf 0.25 Tc 13.995 0 0 13.995 182.9081 293.9342 Tm (...)Tj 0 Tc 6.9975 0 0 6.9975 147.5131 340.7173 Tm (fd 0:)Tj 0 -1.029 TD (fd 1:)Tj 0 -1.029 TD (fd 2:)Tj T* (fd 3:)Tj T* (fd 4:)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1845.25 3462.25 cm 0 0 m 0 -360 l S Q Q BT /T1_1 1 Tf 6.9971 0 0 6.9971 170.3484 355.0508 Tm (fd)Tj -0.572 -0.714 Td (\337ags)Tj 4.471 0.714 Td (\336le)Tj -0.923 -0.714 Td (pointer)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 2925.24 4254 720 144 re S Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 302.1149 430.6332 Tm (\336le status \337ags)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 2925.24 4110 720 144 re S Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 298.3468 416.2152 Tm [(curr)18(ent \336le of)18(fset)]TJ ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 2925.24 3966 720 144 re S Q BT /T1_1 1 Tf 7.9952 0 0 7.9952 301.9987 401.7988 Tm (v-node pointer)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 2925.24 3462 720 144 re S Q BT /T1_1 1 Tf 7.9947 0 0 7.9947 302.0606 351.408 Tm (\336le status \337ags)Tj ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J 2925.24 3318 720 144 re S Q BT /T1_1 1 Tf 7.9942 0 0 7.9942 298.2931 336.9973 Tm [(curr)18(ent \336le of)18(fset)]TJ ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J 2925.24 3174 720 144 re S Q BT /T1_1 1 Tf 7.9938 0 0 7.9938 301.9444 322.5883 Tm (v-node pointer)Tj 0.112 15.025 Td (\336le table entry)Tj 0 -9.9 TD (\336le table entry)Tj 6.9945 0 0 6.9945 427.5475 371.15 Tm (v-node information)Tj /TT0 1 Tf 2.52 -2.057 Td (v_data)Tj /T1_1 1 Tf -2.383 -4.114 Td (i-node information)Tj 0.796 -2.057 Td [(curr)18(ent \336le size)]TJ /TT0 1 Tf 1.287 -1.543 Td (i_vnode)Tj ET q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 3822.25 cm 0 0 m 0 -288 l 720 -288 l 720 0 l 0 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 3390.25 cm 0 0 m 0 -396 l 720 -396 l 720 0 l 0 0 l 720 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 3642.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 3642.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 3642.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 3642.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 3642.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 3642.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 3642.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 3642.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 3642.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 3642.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 3210.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 3210.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 3210.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 3210.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 3210.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 3210.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 3210.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 3210.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 3210.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 3210.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 3102.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 3102.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 3102.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 3102.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 3102.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 3102.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 3102.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 3102.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 3102.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 3102.25 cm 0 0 m 36 0 l S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 422.124 341.16 cm 0 0 m -5.328 5.184 l -2.232 7.056 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 4221.2402 3411.6001 cm 0 0 m -53.28 51.84 l -22.32 70.56 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4293.2402 3588 cm 0 0 m -90 0 l -150 0 -162.6 -28.32 -127.8 -84.96 c -75.6 -169.92 l S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 496.284 382.2 cm 0 0 m 4.032 -6.192 l 0.648 -7.344 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 4962.8398 3822 cm 0 0 m 40.32 -61.92 l 6.48 -73.44 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4869.2402 3048 cm 0 0 m 180 0 l 300 0 315.96 127.92 227.88 383.76 c 95.76 767.52 l S Q Q BT /T1_1 1 Tf 7.9923 0 0 7.9923 425.3035 385.0701 Tm (v-node table entry)Tj 2.63 -5.4 Td (i-node)Tj ET q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 288.924 439.8 cm 0 0 m -7.344 -1.152 l -6.984 2.448 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 4398 cm 0 0 m -73.44 -11.52 l -69.84 24.48 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 4434 cm 0 0 m 180 0 l 300 0 424.8 -5.88 554.4 -17.64 c 748.8 -35.28 l S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 288.924 357 cm 0 0 m -3.528 -6.552 l -6.192 -4.104 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 3570 cm 0 0 m -35.28 -65.52 l -61.92 -41.04 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 3138 cm 0 0 m 180 0 l 300 0 425.16 71.16 555.48 213.48 c 750.96 426.96 l S Q Q q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 418.524 382.2 cm 0 0 m -6.624 3.312 l -4.248 6.048 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 4185.2402 3822 cm 0 0 m -66.24 33.12 l -42.48 60.48 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3573.24 4038 cm 0 0 m 180 0 l 300 0 401.04 -35.16 483.12 -105.48 c 606.24 -210.96 l S Q Q q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 418.524 378.6 cm 0 0 m -1.44 -7.272 l -4.68 -5.76 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 4185.2402 3786 cm 0 0 m -14.4 -72.72 l -46.8 -57.6 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3573.24 3246 cm 0 0 m 180 0 l 300 0 401.52 88.92 484.56 266.76 c 609.12 533.52 l S Q Q BT /T1_0 1 Tf 7.9904 0 0 7.9904 212.5128 241.51 Tm (Figure 3.8)Tj /T1_1 1 Tf -0.09 Tc 5.195 0 Td (Tw)Tj 0.25 Tc 1.357 0 Td (oi)Tj 0 Tc 1.087 0 Td [(ndependent pr)18(ocesses with the same \336le open)]TJ -0.092 Tc 9.988 0 0 9.988 129.4448 211.546 Tm [(We )-358(a)]TJ 0 Tc 2.311 0 Td [(ssume )-174(her)]TJ 0.4242 Tc 4.675 0 Td (et)Tj 0 Tc 1.229 0 Td [(hat )-174(the )-174(\336rst )-174(pr)18(ocess )-174(has )-174(the )-174(\336le )-174(open )-174(on )-174(descriptor )-174(3 )-174(and )-174(that )-174(the)]TJ -8.215 -1.2 Td [(second )-37(pr)18(ocess )-37(has )-37(that )-37(same )-37(\336le )-37(open )-37(on )-37(descriptor )-37(4.)-541(Each )-37(pr)18(ocess )-37(that )-37(opens )-37(the )-37(\336le)]TJ 0 -1.2 TD [(gets )-61(its )-61(own )-61(\336le )-61(table )-61(entry)]TJ 0.3111 Tc 12.095 0 Td (,b)Tj 0 Tc 1.114 0 Td [(ut )-61(only )-61(a )-61(single )-61(v-node )-61(table )-61(entry )-61(is )-61(r)17(equir)18(ed )-61(for )-61(a )-61(given)]TJ -13.209 -1.2 Td [(\336le. )-303(One)]TJ -0.018 Tc 4.328 0 Td (re)Tj 0 Tc 0.856 0 Td [(ason )-53(each )-53(pr)18(ocess )-53(gets )-53(its )-53(own )-53(\336le )-53(table )-53(entry )-53(is )-53(so )-53(that )-53(each )-53(pr)15(ocess )-53(has )-53(its)]TJ -5.184 -1.2 Td [(own curr)18(ent of)18(fset for the \336le.)]TJ 1.8 -1.2 Td [(Given )-74(these )-74(data )-74(str)9(uctur)18(es, )-74(we )-74(now )-74(need )-74(to )-74(be )-74(mor)]TJ 0.3237 Tc 23.599 0 Td (es)Tj 0 Tc 1.227 0 Td [(peci\336c )-74(about )-74(what )-74(happens)]TJ -26.626 -1.2 Td [(with certain operations that we\325ve alr)18(eady described.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47228 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (898)Tj /T1_1 1 Tf 3.5 0 Td [(Miscellaneous )-250(Sour)18(ce )-250(Code)]TJ 38.263 0 Td [(Appendix )-250(B)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm [(void )-1800(log_open\(const)-600(char *, int, int\);)]TJ 0 -1.189 TD [(void )-1800(log_quit\(const)-600(char *, ...\) __attribute__\(\(noreturn\)\);)]TJ T* [(void )-1800(log_ret\(const)-600(char *, ...\);)]TJ T* [(void )-1800(log_sys\(const)-600(char *, ...\) __attribute__\(\(noreturn\)\);)]TJ T* [(void )-1800(log_exit\(int,)-600(const char *, ...\) __attribute__\(\(noreturn\)\);)]TJ 0 -2.259 TD [(void )-1800(TELL_WAIT\(void\);)-4800(/* parent/child from Section 8.9 */)]TJ 0 -1.189 TD [(void )-1800(TELL_PARENT\(pid_t\);)]TJ 0 -1.189 TD [(void )-1800(TELL_CHILD\(pid_t\);)]TJ T* [(void )-1800(WAIT_PARENT\(void\);)]TJ T* [(void )-1800(WAIT_CHILD\(void\);)]TJ 0 -2.259 TD [(#endif )-600(/*)-600(_APUE_H */)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5392.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 266.4 523.1762 Tm (Figure B.1)Tj /T1_1 1 Tf 5.362 0 Td (Our header:)Tj /TT0 1 Tf 5.58 0 Td (apue.h)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5843 495.5795 Tm [(The )-22(r)18(easons )-22(we )-22(include )-22(our )-22(header )-22(befor)]TJ 0.2719 Tc 18.129 0 Td (ea)Tj 0 Tc 1.251 0 Td [(ll )-22(the )-22(normal )-22(system )-22(headers )-22(ar)19(e)-272(to)-272(allow )-22(us)]TJ -19.38 -1.2 Td [(to )-253(de\336ne )-253(anything )-253(that )-253(might )-253(be )-253(r)19(equir)18(ed )-253(by )-253(headers )-253(befor)]TJ 0.5029 Tc 28.176 0 Td (et)Tj 0 Tc 1.308 0 Td [(hey )-253(ar)]TJ 0.5029 Tc 2.997 0 Td (ei)Tj 0 Tc 1.273 0 Td [(ncluded, )-253(to)]TJ -33.754 -1.2 Td [(contr)18(ol )-292(the )-292(or)18(der )-292(in )-292(which )-292(header )-292(\336les )-292(ar)]TJ 0.5419 Tc 20.028 0 Td (ei)Tj 0 Tc 1.312 0 Td [(ncluded, )-292(and )-292(to )-292(allow )-292(us )-292(to )-292(r)19(ede\336ne)]TJ -21.34 -1.2 Td [(anything that needs to be \336xed up to hide the dif)18(fer)18(ences between systems.)]TJ /TT1 1 Tf 11.9986 0 0 11.9986 93.5888 419.9886 Tm [(B.2 )-1166(Standar)]TJ 0.556 Tc 6.703 0 Td (dE)Tj 0 Tc 1.834 0 Td [(rr)20(or )-278(Routines)]TJ /T1_1 1 Tf -0.09 Tc 9.9988 0 0 9.9988 129.5844 395.9915 Tm (Tw)Tj 0.4216 Tc 1.357 0 Td (os)Tj 0 Tc 1.392 0 Td [(ets )-172(of )-172(err)18(or )-172(functions )-172(ar)]TJ 0.4217 Tc 10.994 0 Td (eu)Tj 0 Tc 1.504 0 Td [(sed )-172(in )-172(most )-172(of )-172(the )-172(examples )-172(thr)18(oughout )-172(the )-172(text )-172(to)]TJ -15.247 -1.2 Td [(handle )-151(err)18(or )-151(conditions.)-651(One )-151(set )-151(begins )-151(with)]TJ /TT0 1 Tf 21.181 0 Td (err_)Tj /T1_1 1 Tf 2.801 0 Td [(and )-151(outputs )-151(an )-151(err)18(or )-151(message )-151(to)]TJ -23.982 -1.2 Td (standar)Tj 0.343 Tc 3.32 0 Td (de)Tj 0 Tc 1.433 0 Td [(rr)18(or)]TJ 0.593 Tc 1.639 0 Td (.T)Tj 0 Tc 1.456 0 Td [(he )-93(other )-93(set )-93(begins )-93(with)]TJ /TT0 1 Tf 11.252 0 Td (log_)Tj /T1_1 1 Tf 2.743 0 Td [(and )-93(is )-93(intended )-93(for )-93(daemon )-93(pr)18(ocesses)]TJ -21.843 -1.2 Td [(\(Chapter 13\) that pr)18(obably have no contr)18(olling terminal.)]TJ 1.8 -1.2 Td [(The )-20(r)18(eason )-20(for )-20(de\336ning )-20(our )-20(own )-20(err)20(or )-19(functions )-19(is )-19(to )-19(let )-19(us )-19(write )-19(our )-19(err)18(or )-19(handling)]TJ -1.8 -1.2 Td (with a single line of C code, as in)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5825 317.1611 Tm (if \()Tj /T1_2 1 Tf [(err)18(or condition)]TJ /TT0 1 Tf (\))Tj 4.8 -1.189 Td (err_dump\()Tj /T1_2 1 Tf [(printf format with any number of ar)18(guments)]TJ /TT0 1 Tf (\);)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5846 286.3246 Tm (instead of)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5825 267.4871 Tm (if \()Tj /T1_2 1 Tf [(err)18(or condition)]TJ /TT0 1 Tf 0.6 Tc (\){)Tj 0 Tc 4.8 -1.189 Td [(char )-600(buf[200];)]TJ 0 -2.378 TD (sprintf\(buf,)Tj /T1_2 1 Tf 7.8 0 Td [(printf format with any number of ar)18(guments)]TJ /TT0 1 Tf (\);)Tj -7.8 -1.189 Td (perror\(buf\);)Tj 0 -1.189 TD (abort\(\);)Tj -4.8 -1.189 Td (})Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5846 183.157 Tm [(Our )-261(err)18(or )-261(functions )-261(use )-261(the )-261(variable-length )-261(ar)20(gument )-261(list )-261(facility )-261(fr)18(om )-261(ISO )-261(C.)-759(See)]TJ 0 -1.2 TD [(Section )-1(7.3 )-1(of )-1(Kernighan )-1(and )-1(Ritchie)]TJ 16.296 0.04 Td ([)Tj 0.333 -0.04 Td (1988)Tj 2 0.04 Td (])Tj 0.584 -0.04 Td [(for )-1(additional )-1(details.)-501(Be )-1(awar)]TJ 0.251 Tc 13.55 0 Td (et)Tj 0 Tc 1.056 0 Td [(hat )-1(this )-1(ISO)]TJ 0.3378 Tc -33.819 -1.2 Td (Cf)Tj 0 Tc 1.38 0 Td [(acility )-88(dif)18(fers )-88(fr)18(om )-88(the)]TJ /TT0 1 Tf 10.424 0 Td (varargs)Tj /T1_1 1 Tf 4.538 0 Td [(facility )-88(pr)18(ovided )-88(by )-88(earlier )-88(systems )-88(\(such )-88(as )-88(SVR3)]TJ -16.342 -1.2 Td [(and )-61(4.3BSD\).)-561(The )-61(names )-61(of )-61(the )-61(macr)18(os )-61(ar)]TJ 0.3115 Tc 18.725 0 Td (et)Tj 0 Tc 1.116 0 Td [(he )-61(same, )-61(but )-61(the )-61(ar)18(guments )-61(to )-61(some )-61(of )-61(the)]TJ -19.842 -1.2 Td [(macr)18(os have changed.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47229 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (318)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (SIGEMT)Tj /T1_1 1 Tf 6.582 0 Td [(This indicates an implementation-de\336ned har)18(dwar)]TJ 0.25 Tc 22.481 0 Td (ef)Tj 0 Tc 1.062 0 Td (ault.)Tj 7.9995 0 0 7.9995 237.5855 648.9611 Tm [(The )-153(name )-153(EMT )-153(comes )-153(fr)20(om )-153(the )-153(PDP)]TJ 16.988 0.09 Td (-)Tj -0.055 Tc 0.333 -0.09 Td [(11 )-263(\324)]TJ 0 Tc 1.589 0 Td [(\324emulator )-153(trap\325)]TJ 0.4028 Tc 6.767 0 Td (\325i)Tj 0 Tc 0.972 0 Td [(nstr)8(uction. )-403(Not)-402(all)]TJ -26.648 -1.25 Td [(platforms )-179(support )-179(this )-179(signal.)-680(On )-179(Linux, )-179(for )-179(example,)]TJ /TT0 1 Tf 25.49 0 Td (SIGEMT)Tj /T1_1 1 Tf 4.029 0 Td [(is )-179(supported)]TJ -29.52 -1.25 Td [(only for selected ar)18(chitectur)18(es, such as SP)92(ARC, MIPS, and P)92(A)]TJ 26.998 0.09 Td (-)Tj 0.333 -0.09 Td (RISC.)Tj /TT0 1 Tf 9.9994 0 0 9.9994 129.5923 607.9635 Tm (SIGFPE)Tj /T1_1 1 Tf 6.582 0 Td [(This )-105(signals )-105(an )-105(arithmetic )-105(exception, )-105(such )-105(as )-105(divide )-105(by )-105(0, )-105(\337oating-point)]TJ 0 -1.2 TD (over\337ow)Tj 0.25 Tc 3.881 0 Td (,a)Tj 0 Tc 1 0 Td (nd so on.)Tj /TT0 1 Tf -11.463 -1.84 Td (SIGFREEZE)Tj /T1_1 1 Tf 6.582 0 Td [(This )-80(signal )-80(is )-80(de\336ned )-80(only )-80(by )-80(Solaris.)-582(It )-80(is )-80(used )-80(to )-80(notify )-80(pr)18(ocesses )-80(that)]TJ T* [(need )-4(to )-4(take )-4(special )-4(action )-4(befor)]TJ 0.2543 Tc 14.163 0 Td (ef)Tj -0.018 Tc 1.066 0 Td (re)Tj 0 Tc 0.856 0 Td [(ezing )-4(the )-4(system )-4(state, )-4(such )-4(as )-4(might)]TJ -16.085 -1.2 Td (happen when a system goes into hibernation or suspended mode.)Tj /TT0 1 Tf -6.582 -1.84 Td (SIGHUP)Tj /T1_1 1 Tf 6.582 0 Td [(This )-132(signal )-132(is )-132(sent )-132(to )-132(the )-132(contr)18(olling )-132(pr)18(ocess )-132(\(session )-132(leader\) )-132(associated)]TJ T* [(with )-181(a )-181(contr)18(olling )-181(terminal )-181(if )-181(a )-181(disconnect )-181(is )-181(detected )-181(by )-181(the )-181(terminal)]TJ T* [(interface. )-379(Referring)-380(to )-129(Figur)]TJ 0.3794 Tc 12.9 0 Td (e9)Tj 0 Tc 1.358 0 Td [(.13, )-129(we )-129(see )-129(that )-129(the )-129(signal )-129(is )-129(sent )-129(to )-129(the)]TJ -14.259 -1.2 Td [(pr)18(ocess )-235(pointed )-235(to )-235(by )-235(the)]TJ /TT0 1 Tf 12.526 0 Td (s_leader)Tj /T1_1 1 Tf 5.285 0 Td [(\336eld )-235(in )-235(the)]TJ /TT0 1 Tf 5.702 0 Td (session)Tj /T1_1 1 Tf 4.685 0 Td [(str)8(uctur)18(e.)]TJ -28.199 -1.2 Td [(This )-76(signal )-76(is )-76(generated )-76(for )-76(this )-76(condition )-76(only )-76(if )-76(the )-76(terminal\325s)]TJ /TT0 1 Tf 28.818 0 Td (CLOCAL)Tj /T1_1 1 Tf -28.818 -1.2 Td [(\337ag )-203(is )-203(not )-203(set.)-703(\(The)]TJ /TT0 1 Tf 9.833 0 Td (CLOCAL)Tj /T1_1 1 Tf 4.053 0 Td [(\337ag )-203(for )-203(a )-203(terminal )-203(is )-203(set )-203(if )-203(the )-203(attached)]TJ -13.886 -1.2 Td [(terminal )-98(is )-98(local.)-598(The )-98(\337ag )-98(tells )-98(the )-98(terminal )-98(driver )-98(to )-98(ignor)]TJ 0.3481 Tc 26.759 0 Td (ea)Tj 0 Tc 1.327 0 Td [(ll )-98(modem)]TJ -28.086 -1.2 Td (status lines.)Tj -0.092 Tc 5.67 0 Td [(We )-184(d)]TJ 0 Tc 2.248 0 Td (escribe how to set this \337ag in Chapter 18.\))Tj -7.918 -1.8 Td [(Note )-285(that )-285(the )-285(session )-285(leader )-285(that )-285(r)18(eceives )-285(this )-285(signal )-285(may )-285(be )-285(in )-285(the)]TJ T* [(backgr)18(ound; )-46(see )-46(Figur)]TJ 0.2964 Tc 9.936 0 Td (e9)Tj 0 Tc 1.275 0 Td [(.7 )-46(for )-46(an )-46(example.)-548(This )-46(dif)18(fers )-46(fr)18(om )-46(the )-46(normal)]TJ -11.211 -1.2 Td [(terminal-generated )-346(signals )-346(\(interr)8(upt, )-346(quit, )-346(and )-346(suspend\), )-346(which )-346(ar)19(e)]TJ T* [(always deliver)18(ed to the for)18(egr)18(ound pr)18(ocess gr)18(oup.)]TJ 0 -1.8 TD [(This )-18(signal )-18(is )-18(also )-18(generated )-18(if )-18(the )-18(session )-18(leader )-18(terminates.)-518(In )-18(this )-18(case,)]TJ 0 -1.2 TD [(the signal is sent to each pr)18(ocess in the for)18(egr)18(ound pr)18(ocess gr)18(oup.)]TJ 0 -1.8 TD [(This )-10(signal )-10(is )-10(commonly )-10(used )-10(to )-10(notify )-10(daemon )-10(pr)14(ocesses )-11(\(Chapter )-11(13\) )-11(to)]TJ 0 -1.2 TD [(r)18(er)18(ead )-190(their )-190(con\336guration )-190(\336les.)-690(The )-190(r)20(eason)]TJ /TT0 1 Tf 20.391 0 Td (SIGHUP)Tj /T1_1 1 Tf 4.04 0 Td [(is )-190(chosen )-190(for )-190(this)]TJ -24.43 -1.2 Td [(task )-64(is )-64(that )-64(a )-64(daemon )-64(should )-64(not )-64(have )-64(a )-64(contr)18(olling )-64(terminal )-64(and )-64(would)]TJ T* [(normally never r)18(eceive this signal.)]TJ /TT0 1 Tf -6.582 -1.84 Td (SIGILL)Tj /T1_1 1 Tf 6.582 0 Td [(This )-152(signal )-152(indicates )-152(that )-152(the )-152(pr)18(ocess )-152(has )-152(executed )-152(an )-152(illegal )-152(har)22(dwar)18(e)]TJ T* [(instr)8(uction.)]TJ 7.9995 0 0 7.9995 237.5856 262.7842 Tm [(4.3BSD )-85(generated )-85(this )-85(signal )-85(fr)18(om )-85(the)]TJ /TT0 1 Tf 17.372 0 Td (abort)Tj /T1_1 1 Tf 3.335 0 Td (function.)Tj /TT0 1 Tf 4.542 0 Td (SIGABRT)Tj /T1_1 1 Tf 4.535 0 Td [(is )-85(now )-85(used)]TJ -29.785 -1.25 Td (for this purpose.)Tj /TT0 1 Tf 9.9994 0 0 9.9994 129.5918 231.7861 Tm (SIGINFO)Tj /T1_1 1 Tf 6.582 0 Td [(This )-143(BSD )-143(signal )-143(is )-143(generated )-143(by )-143(the )-143(terminal )-143(driver )-143(when )-143(we )-143(type )-143(the)]TJ T* [(status )-165(key )-165(\(often )-165(Contr)19(ol)]TJ 11.414 0.09 Td (-)Tj 0.333 -0.09 Td [(T\). )-415(This)-414(signal )-165(is )-165(sent )-165(to )-165(all )-165(pr)18(ocesses )-165(in )-165(the)]TJ -11.747 -1.2 Td [(for)18(egr)18(ound )-263(pr)18(ocess )-263(gr)17(oup )-263(\(r)18(efer )-263(to )-263(Figur)]TJ 0.5132 Tc 19.205 0 Td (e9)Tj 0 Tc 1.492 0 Td [(.9\). )-513(This)-513(signal )-263(normally)]TJ -20.697 -1.2 Td [(causes )-93(status )-93(information )-93(on )-93(pr)16(ocesses )-94(in )-94(the )-94(for)19(egr)18(ound )-94(pr)18(ocess )-94(gr)19(oup)]TJ -0 -1.2 Td (to be displayed on the terminal.)Tj 7.9995 0 0 7.9995 237.5846 163.7902 Tm [(Linux )-35(doesn\325t )-35(pr)19(ovide )-35(support )-35(for)]TJ /TT0 1 Tf 15.512 0 Td (SIGINFO)Tj /T1_1 1 Tf 0.2846 Tc (,a)Tj 0 Tc 5.235 0 Td [(lthough )-35(the )-35(symbol )-35(is )-35(de\336ned )-35(to)]TJ -20.747 -1.25 Td [(be )-164(the )-164(same )-164(value )-164(as)]TJ /TT0 1 Tf 10.138 0 Td (SIGPWR)Tj /T1_1 1 Tf 4.014 0 Td [(on )-164(the )-164(Alpha )-164(platform.)-664(This )-164(is )-164(most )-164(likely )-164(to)]TJ -14.153 -1.25 Td [(pr)18(ovide some level of compatibility with softwar)]TJ 0.25 Tc 21.558 0 Td (ed)Tj 0 Tc 1.34 0 Td (eveloped for OSF/1.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47230 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(9.2)]TJ -0.092 Tc 36.381 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(Logins)]TJ /T1_1 1 Tf 8.452 0 Td (289)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2746.32 6422 576 216 re S Q BT /TT0 1 Tf 7.9995 0 0 7.9995 293.8144 651.2009 Tm (init)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2746.32 5918 576 216 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 285.0658 600.7679 Tm (login shell)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2746.32 5414 576 216 re S Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 288.3921 555.34 Tm (terminal)Tj -1.054 -1.25 Td (device driver)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3304.3201 5018 cm 0 0 m 0 -59.64 -120.89 -108 -270 -108 c -419.11 -108 -540 -59.64 -540 0 c -540 59.64 -419.11 108 -270 108 c -120.89 108 0 59.64 0 0 c h S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 288.4548 504.9188 Tm (user at a)Tj -0.01 -1.25 Td (terminal)Tj ET q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3034.25 6415.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3034.25 6379.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3034.25 6345.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3034.25 6309.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3034.25 6275.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3034.25 6240.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3034.25 6205.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3034.25 6170.25 cm 0 0 m 0 0 l S Q Q q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 303.432 613.4 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 3034.3201 6134 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3034.25 6206.25 cm 0 0 m 0 0 l S Q Q q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 303.432 591.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3034.3201 5918 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 303.432 563 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3034.3201 5630 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3034.25 5846.25 cm 0 0 m 0 -144 l S Q Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 309.2835 575.3638 Tm (fd 0, 1, 2)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 303.432 541.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3034.3201 5414 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 303.432 512.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 3034.3201 5126 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3034.25 5342.25 cm 0 0 m 0 -144 l S Q Q BT /T1_2 1 Tf 7.9952 0 0 7.9952 283.262 666.6399 Tm [(pr)18(ocess ID 1)]TJ ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3434.6399 6376.6401 cm 0 0 m 0 24.65 -19.99 44.64 -44.64 44.64 c S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3434.25 6376.25 cm 0 0 m 0 -76 l 23 -98 l 1 -121 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3434.25 6255.25 cm 0 0 m 0 -76 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3390 6134 cm 0 0 m 24.65 0 44.64 19.99 44.64 44.64 c S Q Q BT /T1_0 1 Tf 7.9947 0 0 7.9947 347.5385 625.6269 Tm [(thr)18(ough)]TJ /TT0 1 Tf 3.822 0 Td (getty)Tj /T1_0 1 Tf 3.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (login)Tj ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3434.6399 5369.3599 cm 0 0 m 0 24.65 -19.99 44.64 -44.64 44.64 c S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3434.25 5369.25 cm 0 0 m 0 -76 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3434.25 5292.25 cm 0 0 m 23 -22 l 1 -45 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3434.25 5247.25 cm 0 0 m 0 -76 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3390 5126 cm 0 0 m 24.65 0 44.64 19.99 44.64 44.64 c S Q Q BT /T1_0 1 Tf 7.9942 0 0 7.9942 347.5177 524.862 Tm [(har)18(d-wir)18(ed connection)]TJ /T1_1 1 Tf -20.547 -7.43 Td (Figure 9.3)Tj /T1_0 1 Tf 5.195 0 Td [(Arrangement of pr)18(ocesses after everything is set for a terminal login)]TJ 9.9928 0 0 9.9928 147.4937 437.8848 Tm [(Our )-182(login )-182(shell )-182(now )-182(r)18(eads )-182(its )-182(start-up )-182(\336les )-182(\()]TJ /TT0 1 Tf 20.605 0 Td (.profile)Tj /T1_0 1 Tf 5.232 0 Td [(for )-182(the )-182(Bourne )-182(shell )-182(and)]TJ -27.636 -1.2 Td [(Korn )-59(shell;)]TJ /TT0 1 Tf 5.184 0 Td (.bash_profile)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 8.359 0 Td (.bash_login)Tj /T1_0 1 Tf 0.3091 Tc (,o)Tj 0 Tc 7.705 0 Td (r)Tj /TT0 1 Tf 0.704 0 Td (.profile)Tj /T1_0 1 Tf 5.109 0 Td [(for )-59(the )-59(GNU )-59(Bourne-again)]TJ -27.062 -1.2 Td [(shell; )-175(and)]TJ /TT0 1 Tf 4.861 0 Td (.cshrc)Tj /T1_0 1 Tf 4.026 0 Td (and)Tj /TT0 1 Tf 2.119 0 Td (.login)Tj /T1_0 1 Tf 4.026 0 Td [(for )-175(the )-175(C )-175(shell\).)-677(These )-176(start-up )-176(\336les )-176(usually )-176(change)]TJ -15.031 -1.2 Td [(some )-104(of )-104(the )-104(envir)18(onment )-104(variables )-104(and )-104(add )-104(many )-104(other )-104(variables )-104(to )-104(the )-104(envir)17(onment.)]TJ 0 -1.2 TD [(For )-105(example, )-105(most )-105(users )-105(set )-105(their )-105(own)]TJ /TT0 1 Tf 17.749 0 Td (PATH)Tj /T1_0 1 Tf 2.755 0 Td [(and )-105(often )-105(pr)18(ompt )-105(for )-105(the )-105(actual )-105(terminal)]TJ -20.504 -1.2 Td [(type )-24(\()]TJ /TT0 1 Tf (TERM)Tj /T1_0 1 Tf [(\). )-274(When)-273(the )-24(start-up )-24(\336les )-24(ar)]TJ 0.2735 Tc 17.384 0 Td (ed)Tj 0 Tc 1.364 0 Td [(one, )-23(we )-23(\336nally )-23(get )-23(the )-23(shell\325s )-23(pr)18(ompt )-23(and )-23(can)]TJ -18.747 -1.2 Td (enter commands.)Tj /TT1 1 Tf -3.6 -2.88 Td [(Mac OS X T)60(erminal Logins)]TJ /T1_0 1 Tf 3.6 -2.4 Td [(On )-137(Mac )-137(OS )-137(X, )-137(the )-137(terminal )-137(login )-137(pr)21(ocess )-137(follows )-137(essentially )-137(the )-137(same )-137(steps )-137(as )-137(in )-137(the)]TJ T* [(BSD )-220(login )-220(pr)18(ocess, )-220(since )-220(Mac )-220(OS )-220(X )-220(is )-220(based )-220(in )-220(part )-220(on )-220(Fr)16(eeBSD. )-470(W)55(ith )-220(Mac )-220(OS )-220(X,)]TJ T* (however)Tj 0.25 Tc 3.806 0 Td (,t)Tj 0 Tc 0.826 0 Td (her)Tj 0.25 Tc 1.438 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(s)]TJ 0 Tc 1.53 0 Td [(ome dif)18(fer)18(ences:)]TJ 0.883 Tc -7.029 -2.4 Td (\245T)Tj 0 Tc 2.102 0 Td (he work of)Tj /TT0 1 Tf 5.021 0 Td (init)Tj /T1_0 1 Tf 2.65 0 Td (is performed by)Tj /TT0 1 Tf 7.296 0 Td (launchd)Tj /T1_0 1 Tf (.)Tj 0.883 Tc -17.069 -1.6 Td (\245W)Tj 0.25 Tc 2.397 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(p)-18(re)]TJ 0 Tc 2.563 0 Td [(sented with a graphical-based login scr)18(een fr)18(om the start.)]TJ /TT1 1 Tf -11.589 -2.88 Td [(Lin)10(ux T)60(erminal Logins)]TJ /T1_0 1 Tf 3.6 -2.4 Td [(The )-183(Linux )-183(login )-183(pr)18(ocedur)18(e)-433(is)-433(very )-183(similar )-183(to )-183(the )-183(BSD )-183(pr)18(ocedur)18(e. )-433(Indeed,)-433(the )-183(Linux)]TJ /TT0 1 Tf 0 -1.2 Td (login)Tj /T1_0 1 Tf 3.405 0 Td [(command )-155(is )-155(derived )-155(fr)18(om )-155(the )-155(4.3BSD)]TJ /TT0 1 Tf 17.708 0 Td (login)Tj /T1_0 1 Tf 3.404 0 Td [(command. )-404(The)-405(main )-154(dif)18(fer)18(ence)]TJ -24.518 -1.2 Td [(between )-212(the )-212(BSD )-212(login )-212(pr)18(ocedur)]TJ 0.4621 Tc 15.181 0 Td (ea)Tj 0 Tc 1.441 0 Td [(nd )-212(the )-212(Linux )-212(login )-212(pr)18(ocedur)18(e)-462(is)-462(in)-462(t)-1(he )-212(way )-212(the)]TJ -16.623 -1.2 Td (terminal con\336guration is speci\336ed.)Tj 1.8 -1.2 Td [(Some )-300(Linux )-300(distributions )-300(ship )-300(with )-300(a )-300(version )-300(of )-300(the)]TJ /TT0 1 Tf 25.628 0 Td (init)Tj /T1_0 1 Tf 2.95 0 Td [(pr)18(ogram )-300(that )-300(uses)]TJ -30.378 -1.2 Td [(administrative )-176(\336les )-176(patterned )-176(after )-176(System )-176(V\325s)]TJ /TT0 1 Tf 21.766 0 Td (init)Tj /T1_0 1 Tf 2.826 0 Td [(\336le )-176(formats.)-676(On )-176(these )-176(systems,)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47231 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.13)]TJ /TT0 1 Tf 35.803 0 Td (system)Tj /T1_0 1 Tf 4.1 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (267)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(status;)]TJ 0 -2.14 TD (if \(\(status = system\("date"\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("system\(\) error"\);)Tj -2.4 -2.14 Td (pr_exit\(status\);)Tj T* (if \(\(status = system\("nosuchcommand"\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("system\(\) error"\);)Tj -2.4 -2.14 Td (pr_exit\(status\);)Tj T* (if \(\(status = system\("who; exit 44"\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("system\(\) error"\);)Tj -2.4 -2.14 Td (pr_exit\(status\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4150.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 251.1339 398.9701 Tm (Figure 8.23)Tj /T1_0 1 Tf 5.695 0 Td (Calling the)Tj /TT0 1 Tf 5.107 0 Td (system)Tj /T1_0 1 Tf 3.85 0 Td (function)Tj 9.9988 0 0 9.9988 147.5824 367.7739 Tm [(Earlier )-133(systems, )-133(including )-133(SVR3.2 )-133(and )-133(4.3BSD, )-133(didn\325t )-133(have )-133(the)]TJ /TT0 1 Tf 28.91 0 Td (waitpid)Tj /T1_0 1 Tf 4.583 0 Td (function)Tj -35.293 -1.2 Td [(available. )-250(Instead,)-250(the par)18(ent waited for the child, using a statement such as)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 169.1798 336.6776 Tm (while \(\(lastpid = wait\(&status\)\) != pid && lastpid != -1\))Tj 2.4 -1.189 Td (;)Tj /T1_0 1 Tf 0.2916 Tc 9.9988 0 0 9.9988 129.5845 305.5813 Tm (Ap)Tj -0.018 Tc 1.671 0 Td (ro)Tj 0 Tc 0.923 0 Td [(blem )-42(occurs )-42(if )-42(the )-42(pr)18(ocess )-42(that )-42(calls)]TJ /TT0 1 Tf 16.093 0 Td (system)Tj /T1_0 1 Tf 3.892 0 Td [(has )-41(spawned )-41(its )-41(own )-41(childr)18(en )-41(befor)16(e)]TJ -22.578 -1.2 Td (calling)Tj /TT0 1 Tf 3.26 0 Td (system)Tj /T1_0 1 Tf 0.5554 Tc (.B)Tj 0 Tc 5.016 0 Td [(ecause )-55(the)]TJ /TT0 1 Tf 4.927 0 Td (while)Tj /T1_0 1 Tf 3.305 0 Td [(statement )-55(above )-55(keeps )-55(looping )-55(until )-55(the )-55(child )-55(that)]TJ -16.509 -1.2 Td [(was )-4(generated )-4(by)]TJ /TT0 1 Tf 8.035 0 Td (system)Tj /T1_0 1 Tf 3.854 0 Td [(terminates, )-3(if )-3(any )-3(childr)18(en )-3(of )-3(the )-3(pr)18(ocess )-3(terminate )-3(befor)]TJ 0.2535 Tc 24.992 0 Td (et)Tj 0 Tc 1.059 0 Td (he)Tj -37.939 -1.2 Td [(pr)18(ocess )-174(identi\336ed )-174(by)]TJ /TT0 1 Tf 9.952 0 Td (pid)Tj /T1_0 1 Tf 0.4242 Tc (,t)Tj 0 Tc 2.8 0 Td [(hen )-174(the )-174(pr)18(ocess )-174(ID )-174(and )-174(termination )-174(status )-174(of )-174(these )-174(other)]TJ -12.752 -1.2 Td [(childr)18(en )-182(ar)]TJ 0.4323 Tc 4.966 0 Td (ed)Tj 0 Tc 1.522 0 Td [(iscar)18(ded )-182(by )-182(the)]TJ /TT0 1 Tf 7.53 0 Td (while)Tj /T1_0 1 Tf 3.432 0 Td [(statement. )-432(Indeed,)-432(this )-182(inability )-182(to)]TJ /TT0 1 Tf 16.511 0 Td (wait)Tj /T1_0 1 Tf 2.832 0 Td [(for )-182(a)]TJ -36.794 -1.2 Td [(speci\336c )-184(child )-184(is )-184(one )-184(of )-184(the )-184(r)18(easons )-184(given )-184(in )-184(the )-184(POSIX.1 )-184(Rationale )-184(for )-184(including )-184(the)]TJ /TT0 1 Tf 0 -1.2 TD (waitpid)Tj /T1_0 1 Tf 4.641 0 Td [(function. )-441(W)92(e\325ll )-191(see )-191(in )-191(Section )-191(15.3 )-191(that )-191(the )-191(same )-191(pr)16(oblem )-191(occurs )-191(with )-191(the)]TJ /TT0 1 Tf -4.641 -1.2 Td (popen)Tj /T1_0 1 Tf 3.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (pclose)Tj /T1_0 1 Tf 3.85 0 Td [(functions if the system doesn\325t pr)18(ovide a)]TJ /TT0 1 Tf 18.2 0 Td (waitpid)Tj /T1_0 1 Tf 4.45 0 Td (function.)Tj /TT1 1 Tf -35.293 -3.12 Td [(Set-User)20(-ID Pr)20(ograms)]TJ /T1_0 1 Tf 3.6 -2.4 Td [(What )-245(happens )-245(if )-245(we )-245(call)]TJ /TT0 1 Tf 12.114 0 Td (system)Tj /T1_0 1 Tf 4.095 0 Td [(fr)18(om )-245(a )-245(set-user)18(-ID )-245(pr)19(ogram? )-495(Doing)-495(so )-245(cr)18(eates )-245(a)]TJ -16.208 -1.2 Td [(security )-41(hole )-41(and )-41(should )-41(never )-41(be )-41(attempted.)-544(Figur)]TJ 0.2914 Tc 23.152 0 Td (e8)Tj 0 Tc 1.27 0 Td [(.24 )-41(shows )-41(a )-41(simple )-41(pr)16(ogram )-41(that)]TJ -24.422 -1.2 Td (just calls)Tj /TT0 1 Tf 4.037 0 Td (system)Tj /T1_0 1 Tf 3.85 0 Td (for its command)Tj 7.264 0.09 Td (-)Tj 0.333 -0.09 Td [(line ar)18(gument.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47232 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(7.3)]TJ 34.639 0 Td [(Pr)18(ocess )-250(T)92(ermination)]TJ /T1_1 1 Tf 11.194 0 Td (201)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(These )-17(exit )-17(handlers )-17(\336rst )-17(appear)17(ed )-17(in )-17(the )-17(ANSI )-17(C )-17(Standar)17(d)-267(in)-267(1989. )-267(Systems)-268(that )-17(pr)18(edate )-17(ANSI)]TJ 0 -1.25 Td [(C, such as SVR3 and 4.3BSD, did not pr)18(ovide these exit handlers.)]TJ 0 -2.5 TD [(ISO )-250(C )-250(r)18(equir)18(es )-250(that )-250(systems )-250(support )-250(at )-250(least )-250(32 )-250(exit )-250(handlers, )-250(but )-250(implementations )-250(often)]TJ 0 -1.25 TD [(support )-367(mor)]TJ 0.6169 Tc 5.919 0 Td (e\()Tj 0 Tc 1.429 0 Td [(see )-367(Figur)]TJ 0.6169 Tc 4.382 0 Td (e2)Tj 0 Tc 1.596 0 Td [(.15\). )-617(The)]TJ /TT0 1 Tf 4.991 0 Td (sysconf)Tj /T1_0 1 Tf 4.817 0 Td [(function )-367(can )-367(be )-367(used )-367(to )-367(determine )-367(the)]TJ -23.133 -1.25 Td [(maximum )-7(number )-7(of )-7(exit )-7(handlers )-7(supported )-7(by )-7(a )-7(given )-7(platform, )-7(as )-7(illustrated )-7(in )-7(Figur)]TJ 0.2574 Tc 39.263 0 Td (e2)Tj 0 Tc 1.236 0 Td (.14.)Tj -0.055 Tc 9.9994 0 0 9.9994 147.591 597.9641 Tm (Wi)Tj 0 Tc 1.236 0 Td [(th )-190(ISO )-190(C )-190(and )-190(POSIX.1,)]TJ /TT0 1 Tf 11.079 0 Td (exit)Tj /T1_0 1 Tf 2.84 0 Td [(\336rst )-190(calls )-190(the )-190(exit )-190(handlers )-190(and )-190(then )-190(closes )-190(\(via)]TJ /TT0 1 Tf -16.955 -1.2 Td (fclose)Tj /T1_0 1 Tf 0.3126 Tc (\)a)Tj 0 Tc 4.746 0 Td [(ll )-63(open )-63(str)19(eams. )-313(POSIX.1)-312(extends )-63(the )-63(ISO )-63(C )-63(standar)19(d)-313(by)-313(s)1(pecifying )-63(that )-63(any)]TJ -4.746 -1.2 Td [(exit )-147(handlers )-147(installed )-147(will )-147(be )-147(clear)18(ed )-147(if )-147(the )-147(pr)18(ogram )-147(calls )-147(any )-147(of )-147(the)]TJ /TT0 1 Tf 32.074 0 Td (exec)Tj /T1_0 1 Tf 2.797 0 Td [(family )-147(of)]TJ -34.87 -1.2 Td [(functions. )-338(Figur)]TJ 0.3382 Tc 7.352 0 Td (e7)Tj 0 Tc 1.317 0 Td [(.2 )-88(summarizes )-88(how )-88(a )-88(C )-88(pr)18(ogram )-88(is )-88(started )-88(and )-88(the )-88(various )-88(ways )-88(it)]TJ -8.669 -1.2 Td (can terminate.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2022 4764 432 288 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 216.1701 493.9807 Tm (user)Tj -1.115 -1.25 Td (functions)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2022 4188 432 288 re S Q BT /TT0 1 Tf 7.9986 0 0 7.9986 214.1614 436.3614 Tm (main)Tj /T1_0 1 Tf -0.654 -1.25 Td (function)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2022 3612 432 288 re S Q BT /T1_0 1 Tf 0.25 Tc 7.9981 0 0 7.9981 205.8826 378.7491 Tm (Cs)Tj 0 Tc 1.383 0 Td (tart-up)Tj -0.018 Tc -0.752 -1.25 Td (ro)Tj 0 Tc 0.923 0 Td (utine)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 3030 4188 432 288 re S Q BT /TT0 1 Tf 7.9976 0 0 7.9976 314.9055 436.3091 Tm (exit)Tj /T1_0 1 Tf -0.654 -1.25 Td (function)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 3930 4764 504 144 re S Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 396.8491 481.6666 Tm (exit handler)Tj /TT0 1 Tf 0.6 Tc 9.9964 0 0 9.9964 403.0547 463.673 Tm (...)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 3930 4404 504 144 re S Q BT /T1_0 1 Tf 0 Tc 7.9966 0 0 7.9966 396.8253 445.6528 Tm (exit handler)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 3930 3828 504 288 re S Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 394.3707 400.2478 Tm (standar)Tj 0.25 Tc 3.32 0 Td (dI)Tj 0 Tc 1.198 0 Td (/O)Tj -3.313 -1.25 Td (cleanup)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 216.6 390 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 2166 3900 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2166.25 3972.25 cm 0 0 m 0 216 l S Q Q BT /T1_0 1 Tf -0.018 Tc 0 6.9962 -6.9962 0 213.2448 396.269 Tm (re)Tj 0 Tc 0.856 0 Td (turn)Tj ET q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 216.6 447.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 2166 4476 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2166.25 4548.25 cm 0 0 m 0 216 l S Q Q BT /T1_0 1 Tf -0.018 Tc 0 6.9958 -6.9958 0 213.232 453.8106 Tm (re)Tj 0 Tc 0.856 0 Td (turn)Tj ET q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 231 418.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 2310 4188 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2310.25 3900.25 cm 0 0 m 0 216 l S Q Q BT /T1_0 1 Tf 0 6.9954 -6.9954 0 237.6031 397.0469 Tm (call)Tj ET q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 231 476.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 2310 4764 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2310.25 4476.25 cm 0 0 m 0 216 l S Q Q BT /T1_0 1 Tf 0 6.995 -6.995 0 237.5889 454.5816 Tm (call)Tj ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 223.8 361.2 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 2238 3612 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2238.25 3540.25 cm 0 0 m 0 -504 l S Q Q BT /TT0 1 Tf 7.9938 0 0 7.9938 225.6239 325.3861 Tm (exec)Tj ET q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 324.6 303.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 3246 3036 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 4188.25 cm 0 0 m 0 -1080 l S Q Q BT /TT0 1 Tf 7.9933 0 0 7.9933 324.9269 394.3086 Tm (_exit)Tj /T1_0 1 Tf 1.029 -1.25 Td (or)Tj /TT0 1 Tf -1.029 -1.25 Td (_Exit)Tj ET q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 159 490.8 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 1590 4908 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 4908.25 cm 0 0 m -360 0 l S Q Q BT /TT0 1 Tf 7.9928 0 0 7.9928 163.0532 516.5749 Tm (_exit)Tj /T1_0 1 Tf 1.029 -1.25 Td (or)Tj /TT0 1 Tf -1.029 -1.25 Td (_Exit)Tj 0 -4.7 TD (_exit)Tj /T1_0 1 Tf 1.029 -1.25 Td (or)Tj /TT0 1 Tf -1.029 -1.25 Td (_Exit)Tj ET q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 159 303.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 1590 3036 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1590.25 4908.25 cm 0 0 m 0 -1800 l S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 173.4 433.2 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 1734 4332 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 4332.25 cm 0 0 m -216 0 l S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 173.4 303.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 1734 3036 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1734.25 4332.25 cm 0 0 m 0 -1224 l S Q Q q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 303 443.496 cm 0 0 m -6.696 3.168 l -4.392 5.976 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 3030 4434.96 cm 0 0 m -66.96 31.68 l -43.92 59.76 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2454.25 4908.25 cm 0 0 m 520 -428 l S Q Q BT /TT0 1 Tf 6.1748 -5.0721 5.0721 6.1748 268.5317 475.167 Tm (exit)Tj /T1_0 1 Tf 4.6311 -3.8041 3.8041 4.6311 252.369 475.517 Tm [(\(does not r)18(eturn\))]TJ ET q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 303 433.2 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 3030 4332 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2454.25 4332.25 cm 0 0 m 504 0 l S Q Q BT /TT0 1 Tf 7.9904 0 0 7.9904 264.2827 435.9166 Tm (exit)Tj /T1_0 1 Tf 5.9928 0 0 5.9928 251.5717 425.9286 Tm [(\(does not r)18(eturn\))]TJ ET q 0.9988007 0 0 0.9988007 0 0 cm q 1 0 0 1 303 422.904 cm 0 0 m -4.392 -5.976 l -6.696 -3.168 l f Q Q q 0.0998801 0 0 0.0998801 0 0 cm 1 j 1 J q 1 0 0 1 3030 4229.04 cm 0 0 m -43.92 -59.76 l -66.96 -31.68 l h S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2454.25 3756.25 cm 0 0 m 520 427 l S Q Q BT /TT0 1 Tf 6.174 5.0715 -5.0715 6.174 264.3916 395.1997 Tm (exit)Tj /T1_0 1 Tf 4.6306 3.8036 -3.8036 4.6306 260.9096 379.4146 Tm [(\(does not r)18(eturn\))]TJ ET q 0.9987408 0 0 0.9987408 0 0 cm q 1 0 0 1 393 485.976 cm 0 0 m -4.104 -6.192 l -6.552 -3.528 l f Q Q q 0.0998741 0 0 0.0998741 0 0 cm 1 j 1 J q 1 0 0 1 3930 4859.7598 cm 0 0 m -41.04 -61.92 l -65.52 -35.28 l h S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3462.25 4435.25 cm 0 0 m 414 376 l S Q Q BT /T1_0 1 Tf 4.4352 4.0291 -4.0291 4.4352 367.9879 467.4725 Tm (call)Tj ET q 0.9986808 0 0 0.9986808 0 0 cm q 1 0 0 1 346.2 439.392 cm 0 0 m 4.176 6.12 l 6.552 3.456 l f Q Q q 0.0998681 0 0 0.0998681 0 0 cm 1 j 1 J q 1 0 0 1 3462 4393.9199 cm 0 0 m 41.76 61.2 l 65.52 34.56 l h S Q Q q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3516.25 4441.25 cm 0 0 m 414 370 l S Q Q BT /T1_0 1 Tf -0.018 Tc 4.4674 3.9929 -3.9929 4.4674 371.8864 453.0823 Tm (re)Tj 0 Tc 0.856 0 Td (turn)Tj ET q 0.9986209 0 0 0.9986209 0 0 cm q 1 0 0 1 393 449.976 cm 0 0 m -6.336 -3.888 l -7.416 -0.432 l f Q Q q 0.0998621 0 0 0.0998621 0 0 cm 1 j 1 J q 1 0 0 1 3930 4499.7598 cm 0 0 m -63.36 -38.88 l -74.16 -4.32 l h S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3462.25 4353.25 cm 0 0 m 399 126 l S Q Q BT /T1_0 1 Tf 5.7146 1.8002 -1.8002 5.7146 363.7358 443.7076 Tm (call)Tj ET q 0.998561 0 0 0.998561 0 0 cm q 1 0 0 1 346.2 431.112 cm 0 0 m 6.408 3.816 l 7.416 0.36 l f Q Q q 0.0998561 0 0 0.0998561 0 0 cm 1 j 1 J q 1 0 0 1 3462 4311.1201 cm 0 0 m 64.08 38.16 l 74.16 3.6 l h S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3531.25 4332.25 cm 0 0 m 399 119 l S Q Q BT /T1_0 1 Tf -0.018 Tc 5.7378 1.7234 -1.7234 5.7378 363.064 428.6665 Tm (re)Tj 0 Tc 0.856 0 Td (turn)Tj ET q 0.9985011 0 0 0.9985011 0 0 cm q 1 0 0 1 393 399.288 cm 0 0 m -7.128 2.16 l -5.256 5.256 l f Q Q q 0.0998501 0 0 0.0998501 0 0 cm 1 j 1 J q 1 0 0 1 3930 3992.8799 cm 0 0 m -71.28 21.6 l -52.56 52.56 l h S Q Q q 0.0998501 0 0 0.0998501 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3462.25 4270.25 cm 0 0 m 406 -241 l S Q Q BT /T1_0 1 Tf 5.1519 -3.0571 3.0571 5.1519 366.7434 417.583 Tm (call)Tj ET q 0.9984412 0 0 0.9984412 0 0 cm q 1 0 0 1 346.2 422.904 cm 0 0 m 7.128 -2.16 l 5.256 -5.256 l f Q Q q 0.0998441 0 0 0.0998441 0 0 cm 1 j 1 J q 1 0 0 1 3462 4229.04 cm 0 0 m 71.28 -21.6 l 52.56 -52.56 l h S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3524.25 4192.25 cm 0 0 m 406 -241 l S Q Q BT /T1_0 1 Tf -0.018 Tc 5.1515 -3.0569 3.0569 5.1515 358.4428 406.7635 Tm (re)Tj 0 Tc 0.856 0 Td (turn)Tj ET q 0.0998381 0 0 0.0998381 0 0 cm 3.2 w 1 j 1 J 1446 2460 3600 576 re S Q BT /T1_0 1 Tf 11.9799 0 0 11.9799 307.3911 272.5817 Tm (kernel)Tj ET q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 3468.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 3538.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 3609.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 3679.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 3750.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 3821.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 3890.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 3961.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4032.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4102.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4173.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4243.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4314.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4384.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4455.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4525.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4596.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4667.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4737.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4807.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4878.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 4948.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 5019.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 5089.25 cm 0 0 m 0 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 5160.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1950.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2094.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2166.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2238.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2310.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2454.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2526.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2598.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2742.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2814.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2886.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2958.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3030.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3102.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3174.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3318.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3390.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3462.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3606.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3678.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3894.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3966.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4038.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4182.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4254.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4326.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4398.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5196.25 cm 0 0 m 36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4542.25 5196.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 5125.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 5055.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 4984.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 4914.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 4843.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 4772.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 4703.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 4632.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 4561.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 4491.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 4420.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 4350.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 4279.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 4209.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 4138.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 4068.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 3997.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 3926.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 3857.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 3786.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 3715.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 3645.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 3574.25 cm 0 0 m 0 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 3504.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4506.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4434.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4362.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4290.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4218.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4074.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4002.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3930.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3858.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3714.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3570.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3498.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3426.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3282.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3210.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3066.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2994.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2922.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2850.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2634.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2562.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2490.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2418.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2274.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2202.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2130.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2058.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1986.25 3468.25 cm 0 0 m -36 0 l S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1914.25 3468.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9861 0 0 7.9861 459.0006 430.6899 Tm [(user pr)18(ocess)]TJ /T1_1 1 Tf -30.628 -26.33 Td (Figure 7.2)Tj /T1_0 1 Tf 5.195 0 Td [(How a C pr)18(ogram is started and how it terminates)]TJ 9.9826 0 0 9.9826 129.3749 190.4683 Tm [(The )-21(only )-21(way )-21(a )-21(pr)18(ogram )-21(can )-21(be )-21(executed )-21(by )-21(the )-21(kernel )-21(is )-21(if )-21(one )-21(of )-21(the)]TJ /TT0 1 Tf 31.213 0 Td (exec)Tj /T1_0 1 Tf 2.671 0 Td [(functions )-21(is)]TJ -33.884 -1.2 Td [(called. )-264(The)-263(only )-14(way )-14(a )-14(pr)18(ocess )-14(can )-14(voluntarily )-14(terminate )-14(is )-14(if)]TJ /TT0 1 Tf 27.423 0 Td (_exit)Tj /T1_0 1 Tf 3.264 0 Td (or)Tj /TT0 1 Tf 1.205 0 Td (_Exit)Tj /T1_0 1 Tf 3.264 0 Td [(is )-14(called,)]TJ -35.155 -1.2 Td [(either )-193(explicitly )-193(or )-193(implicitly )-193(\(by )-193(calling)]TJ /TT0 1 Tf 18.898 0 Td (exit)Tj /T1_0 1 Tf [(\). )-443(A)-443(pr)18(ocess )-193(can )-193(also )-193(be )-193(involuntarily)]TJ -18.898 -1.2 Td (terminated by a signal \(not shown in Figur)Tj 0.25 Tc 18.886 0 Td (e7)Tj 0 Tc 1.229 0 Td (.2\).)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47233 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (508)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-294(\336rst )-294(four )-294(r)18(ows )-294(of )-294(Figur)]TJ 0.5444 Tc 13.467 0 Td (e1)Tj 0 Tc 1.523 0 Td [(4.17 )-294(test )-294(for )-294(r)17(eadability)]TJ 0.5444 Tc 10.876 0 Td (,t)Tj 0 Tc 1.12 0 Td [(he )-294(next )-294(thr)18(ee )-294(test )-294(for)]TJ -28.786 -1.2 Td (writability)Tj 0.489 Tc 4.543 0 Td (,a)Tj 0 Tc 1.239 0 Td [(nd )-239(the )-239(\336nal )-239(thr)18(ee )-239(ar)]TJ 0.489 Tc 9.634 0 Td (ef)Tj 0 Tc 1.301 0 Td [(or )-239(exception )-239(conditions.)-739(The )-239(last )-239(thr)18(ee )-239(r)18(ows )-239(in)]TJ -16.717 -1.2 Td (Figur)Tj 0.5623 Tc 2.383 0 Td (e1)Tj 0 Tc 1.541 0 Td [(4.17 )-312(ar)]TJ 0.5623 Tc 3.189 0 Td (es)Tj 0 Tc 1.465 0 Td [(et )-312(by )-312(the )-312(kernel )-312(on )-312(r)17(eturn. )-562(These)-563(thr)18(ee )-312(values )-312(ar)]TJ 0.5622 Tc 24.093 0 Td (er)Tj 0 Tc 1.418 0 Td [(eturned )-312(in)]TJ /TT0 1 Tf -34.09 -1.2 Td (revents)Tj /T1_1 1 Tf 4.473 0 Td [(when )-23(the )-23(condition )-23(occurs, )-23(even )-23(if )-23(they )-23(wer)18(en\325t )-23(speci\336ed )-23(in )-23(the)]TJ /TT0 1 Tf 28.417 0 Td (events)Tj /T1_1 1 Tf 3.873 0 Td (\336eld.)Tj 7.9995 0 0 7.9995 183.5888 609.9634 Tm [(The )-15(poll )-15(event )-15(names )-15(containing )-15(the )-15(term)]TJ /T1_2 1 Tf 18.724 0 Td (BAND)Tj /T1_1 1 Tf -0.018 Tc 3.154 0 Td (re)Tj 0 Tc 0.856 0 Td [(fer )-14(to )-14(priority )-14(bands )-14(in )-14(STREAMS.)-514(Refer )-14(to)]TJ -22.734 -1.25 Td (Rago)Tj 2.52 0.04 Td ([)Tj 0.333 -0.04 Td (1993)Tj 2 0.04 Td (])Tj 0.583 -0.04 Td (for mor)Tj 0.25 Tc 3.33 0 Td (ei)Tj 0 Tc 1.02 0 Td (nformation about STREAMS and priority bands.)Tj 9.9994 0 0 9.9994 147.5913 576.9654 Tm [(When )-43(a )-43(descriptor )-43(is )-43(hung )-43(up )-43(\()]TJ /TT0 1 Tf 13.987 0 Td (POLLHUP)Tj /T1_1 1 Tf [(\), )-43(we )-43(can )-43(no )-43(longer )-43(write )-43(to )-43(the )-43(descriptor)76(.)]TJ -15.787 -1.2 Td (Ther)Tj 0.25 Tc 2.051 0 Td (em)Tj 0 Tc 1.612 0 Td (ay)Tj 0.25 Tc 0.945 0 Td (,h)Tj 0 Tc 1.082 0 Td (owever)Tj 0.25 Tc 3.224 0 Td (,s)Tj 0 Tc 0.924 0 Td [(till be data to be r)18(ead fr)18(om the descriptor)74(.)]TJ -8.038 -1.2 Td [(The )-59(\336nal )-59(ar)18(gument )-59(to)]TJ /TT0 1 Tf 10.065 0 Td (poll)Tj /T1_1 1 Tf 2.709 0 Td [(speci\336es )-59(how )-59(long )-59(we )-59(want )-59(to )-59(wait.)-558(As )-59(with)]TJ /TT0 1 Tf 20.576 0 Td (select)Tj /T1_1 1 Tf (,)Tj -35.15 -1.2 Td (ther)Tj 0.25 Tc 1.764 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(t)]TJ 0 Tc 1.432 0 Td [(hr)18(ee cases.)]TJ /T1_2 1 Tf -2.625 -1.72 Td (timeout)Tj /TT0 1 Tf 3.611 0 Td (==)Tj /TT1 1 Tf 1.7 0 Td (!)Tj /T1_1 1 Tf (1)Tj -0.092 Tc -3.511 -1.32 Td (Wa)Tj 0 Tc 1.408 0 Td [(it )-112(for)18(ever)]TJ 0.6123 Tc 4.079 0 Td (.\()Tj 0 Tc 1.195 0 Td [(Some )-112(systems )-112(de\336ne )-112(the )-112(constant)]TJ /TT0 1 Tf 15.634 0 Td (INFTIM)Tj /T1_1 1 Tf 3.962 0 Td (in)Tj /TT0 1 Tf 1.235 0 Td ()Tj /T1_1 1 Tf 6.962 0 Td (as)Tj /TT1 1 Tf -34.476 -1.2 Td (!)Tj /T1_1 1 Tf [(1.\) )-311(W)]TJ 0.3107 Tc 3.101 0 Td (er)Tj 0 Tc 1.167 0 Td [(eturn )-61(when )-61(one )-61(of )-61(the )-61(speci\336ed )-61(descriptors )-61(is )-61(r)20(eady )-61(or )-61(when )-61(a )-61(signal)]TJ -4.267 -1.2 Td [(is caught.)-500(If a signal is caught,)]TJ /TT0 1 Tf 13.766 0 Td (poll)Tj /T1_1 1 Tf -0.018 Tc 2.65 0 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj /TT1 1 Tf 2.58 0 Td (!)Tj /T1_1 1 Tf 0.25 Tc (1w)Tj 0 Tc 2.133 0 Td (ith)Tj /TT0 1 Tf 1.449 0 Td (errno)Tj /T1_1 1 Tf 3.25 0 Td (set to)Tj /TT0 1 Tf 2.601 0 Td (EINTR)Tj /T1_1 1 Tf (.)Tj /T1_2 1 Tf -31.085 -1.72 Td (timeout)Tj /TT0 1 Tf 3.611 0 Td (==)Tj /T1_1 1 Tf 1.7 0 Td (0)Tj -3.511 -1.32 Td [(Don\325t )-30(wait.)-530(All )-30(the )-30(speci\336ed )-30(descriptors )-30(ar)]TJ 0.2798 Tc 19.13 0 Td (et)Tj 0 Tc 1.085 0 Td [(ested, )-30(and )-30(we )-30(r)19(eturn )-30(immediately)111(.)]TJ -20.215 -1.2 Td [(This )-106(is )-106(a )-106(way )-106(to )-106(poll )-106(the )-106(system )-106(to )-106(\336nd )-106(out )-106(the )-106(status )-106(of )-106(multiple )-106(descriptors,)]TJ 0 -1.2 TD (without blocking in the call to)Tj /TT0 1 Tf 13.485 0 Td (poll)Tj /T1_1 1 Tf (.)Tj /T1_2 1 Tf -15.285 -1.72 Td (timeout)Tj /TT0 1 Tf 3.611 0 Td (>)Tj /T1_1 1 Tf 1.1 0 Td (0)Tj -0.092 Tc -2.911 -1.32 Td (Wa)Tj 0 Tc 1.408 0 Td (it)Tj /T1_2 1 Tf 0.992 0 Td (timeout)Tj /T1_1 1 Tf 3.486 0 Td [(milliseconds. )-375(W)]TJ 0.3748 Tc 7.34 0 Td (er)Tj 0 Tc 1.231 0 Td [(eturn )-125(when )-125(one )-125(of )-125(the )-125(speci\336ed )-125(descriptors )-125(is)]TJ -0.018 Tc -14.456 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ady )-234(or )-234(when )-234(the)]TJ /T1_2 1 Tf 8.407 0 Td (timeout)Tj /T1_1 1 Tf 3.595 0 Td [(expir)18(es. )-484(If)-483(the)]TJ /T1_2 1 Tf 7.175 0 Td (timeout)Tj /T1_1 1 Tf 3.595 0 Td [(expir)18(es )-234(befor)]TJ 0.4837 Tc 5.939 0 Td (ea)Tj 0 Tc 1.463 0 Td [(ny )-234(of )-234(the)]TJ -31.029 -1.2 Td [(descriptors )-239(is )-239(r)17(eady)]TJ 0.4895 Tc 9.042 0 Td (,t)Tj 0 Tc 1.066 0 Td [(he )-239(r)18(eturn )-239(value )-239(is )-239(0.)-739(\(If )-239(your )-239(system )-239(doesn\325t )-239(pr)14(ovide)]TJ -10.108 -1.2 Td [(millisecond r)18(esolution,)]TJ /T1_2 1 Tf 10.348 0 Td (timeout)Tj /T1_1 1 Tf 3.361 0 Td [(is r)18(ounded up to the near)18(est supported value.\))]TJ -15.509 -1.92 Td [(It )-169(is )-169(important )-169(to )-169(r)18(ealize )-169(the )-169(dif)20(fer)18(ence )-169(between )-169(an )-169(end )-169(of )-169(\336le )-169(and )-169(a )-169(hangup.)-665(If)]TJ -1.8 -1.2 Td (we\325r)Tj 0.4552 Tc 1.968 0 Td (ee)Tj 0 Tc 1.413 0 Td [(ntering )-205(data )-205(fr)18(om )-205(the )-205(terminal )-205(and )-205(type )-205(the )-205(end-of-\336le )-205(character)72(,)]TJ /TT0 1 Tf 30.849 0 Td (POLLIN)Tj /T1_1 1 Tf 4.055 0 Td (is)Tj -38.285 -1.2 Td [(turned )-110(on )-110(so )-110(we )-110(can )-110(r)18(ead )-110(the )-110(end-of-\336le )-110(indication )-110(\()]TJ /TT0 1 Tf 23.913 0 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.76 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-110(0\).)]TJ /TT0 1 Tf 4.382 0 Td (POLLHUP)Tj /T1_1 1 Tf 4.56 0 Td [(is )-110(not)]TJ -36.471 -1.2 Td [(turned )-58(on )-58(in)]TJ /TT0 1 Tf 5.922 0 Td (revents)Tj /T1_1 1 Tf 0.5582 Tc (.I)Tj 0.3082 Tc 5.345 0 Td (fw)Tj 0 Tc 1.475 0 Td (e\325r)Tj 0.3082 Tc 1.134 0 Td (er)Tj 0 Tc 1.164 0 Td [(eading )-58(fr)18(om )-58(a )-58(modem )-58(and )-58(the )-58(telephone )-58(line )-58(is )-58(hung)]TJ -15.04 -1.2 Td [(up, we\325ll r)18(eceive the)]TJ /TT0 1 Tf 9.128 0 Td (POLLHUP)Tj /T1_1 1 Tf 4.45 0 Td (noti\336cation.)Tj -11.778 -1.2 Td [(As )-220(with)]TJ /TT0 1 Tf 4.175 0 Td (select)Tj /T1_1 1 Tf 0.4702 Tc (,w)Tj 0 Tc 5.154 0 Td [(hether )-220(a )-220(descriptor )-220(is )-220(blocking )-220(doesn\325t )-220(af)17(fect )-220(whether)]TJ /TT0 1 Tf 25.47 0 Td (poll)Tj /T1_1 1 Tf -36.6 -1.2 Td (blocks.)Tj /TT2 1 Tf -3.6 -3.12 Td (Interruptibility of)Tj /TT3 1 Tf 8.223 0 Td (select)Tj /TT2 1 Tf 3.878 0 Td (and)Tj /TT3 1 Tf 2.056 0 Td (poll)Tj /T1_1 1 Tf -10.557 -2.16 Td [(When )-66(the )-66(automatic )-66(r)18(estarting )-66(of )-66(interr)8(upted )-66(system )-66(calls )-66(was )-66(intr)21(oduced )-66(with )-66(4.2BSD)]TJ T* [(\(Section )-124(10.5\), )-124(the)]TJ /TT0 1 Tf 8.369 0 Td (select)Tj /T1_1 1 Tf 3.974 0 Td [(function )-124(was )-124(never )-124(r)17(estarted. )-374(This)-375(characteristic )-124(continues)]TJ -12.344 -1.2 Td [(with )-182(most )-182(systems )-182(even )-182(if )-182(the)]TJ /TT0 1 Tf 14.436 0 Td (SA_RESTART)Tj /T1_1 1 Tf 6.432 0 Td [(option )-182(is )-182(speci\336ed.)-682(But )-182(under )-182(SVR4, )-182(if)]TJ /TT0 1 Tf -20.868 -1.2 Td (SA_RESTART)Tj /T1_1 1 Tf 6.355 0 Td [(was )-105(speci\336ed, )-105(even)]TJ /TT0 1 Tf 9.112 0 Td (select)Tj /T1_1 1 Tf 3.955 0 Td (and)Tj /TT0 1 Tf 2.048 0 Td (poll)Tj /T1_1 1 Tf 2.755 0 Td (wer)Tj 0.355 Tc 1.69 0 Td (ea)Tj 0 Tc 1.334 0 Td [(utomatically )-105(r)18(estarted. )-355(T)92(o)]TJ -27.249 -1.2 Td [(pr)18(event )-133(this )-133(fr)18(om )-133(catching )-133(us )-133(when )-133(we )-133(port )-133(softwar)20(e)-383(to)-383(systems )-133(derived )-133(fr)18(om )-133(SVR4,)]TJ -0 -1.2 Td [(we\325ll )-50(always )-50(use )-50(the)]TJ /TT0 1 Tf 9.373 0 Td (signal_intr)Tj /T1_1 1 Tf 6.9 0 Td [(function )-50(\(Figur)]TJ 0.3003 Tc 6.723 0 Td (e1)Tj 0 Tc 1.279 0 Td [(0.19\) )-50(if )-50(the )-50(signal )-50(could )-50(interr)7(upt)]TJ 0.25 Tc -24.275 -1.2 Td (ac)Tj 0 Tc 1.194 0 Td (all to)Tj /TT0 1 Tf 2.454 0 Td (select)Tj /T1_1 1 Tf 3.85 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (poll)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47234 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.16)]TJ 35.071 0 Td [(Pr)18(ocess )-250(Scheduling)]TJ /T1_1 1 Tf 10.762 0 Td (277)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (The)Tj /T1_2 1 Tf 1.996 0 Td (incr)Tj /T1_0 1 Tf 1.952 0 Td [(ar)18(gument )-72(is )-72(added )-72(to )-72(the )-72(nice )-72(value )-72(of )-72(the )-72(calling )-72(pr)21(ocess. )-322(If)]TJ /T1_2 1 Tf 27.872 0 Td (incr)Tj /T1_0 1 Tf 1.952 0 Td [(is )-72(too )-72(lar)19(ge,)]TJ -33.771 -1.2 Td [(the )-29(system )-29(silently )-29(r)18(educes )-29(it )-29(to )-29(the )-29(maximum )-29(legal )-29(value.)-530(Similarly)]TJ 0.2791 Tc 30.329 0 Td (,i)Tj 0 Tc 0.82 0 Td (f)Tj /T1_2 1 Tf 0.612 0 Td (incr)Tj /T1_0 1 Tf 1.909 0 Td [(is )-29(too )-29(small,)]TJ -33.67 -1.2 Td [(the )-251(system )-251(silently )-251(incr)18(eases )-251(it )-251(to )-251(the )-251(minimum )-251(legal )-251(value.)-750(Because)]TJ /TT0 1 Tf 33.116 0 Td (!)Tj /T1_0 1 Tf [(1)-501(is)-501(a)-501(legal)]TJ -33.116 -1.2 Td [(successful )-24(r)18(eturn )-24(value, )-24(we )-24(need )-24(to )-24(clear)]TJ /TT1 1 Tf 18.282 0 Td (errno)Tj /T1_0 1 Tf 3.274 0 Td (befor)Tj 0.2741 Tc 2.288 0 Td (ec)Tj 0 Tc 1.197 0 Td (alling)Tj /TT1 1 Tf 2.785 0 Td (nice)Tj /T1_0 1 Tf 2.674 0 Td [(and )-24(check )-24(its )-24(value)]TJ -30.5 -1.2 Td (if)Tj /TT1 1 Tf 0.931 0 Td (nice)Tj /T1_0 1 Tf -0.018 Tc 2.707 0 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj /TT0 1 Tf 2.637 0 Td (!)Tj /T1_0 1 Tf [(1. )-307(If)-307(the )-57(call )-57(to)]TJ /TT1 1 Tf 7.538 0 Td (nice)Tj /T1_0 1 Tf 2.707 0 Td [(succeeds )-57(and )-57(the )-57(r)19(eturn )-57(value )-57(is)]TJ /TT0 1 Tf 14.743 0 Td (!)Tj /T1_0 1 Tf [(1, )-57(then)]TJ /TT1 1 Tf 3.881 0 Td (errno)Tj /T1_0 1 Tf -36 -1.2 Td [(will still be zer)18(o. )-250(If)]TJ /TT1 1 Tf 8.684 0 Td (errno)Tj /T1_0 1 Tf 3.25 0 Td [(is nonzer)18(o, it means that the call to)]TJ /TT1 1 Tf 15.581 0 Td (nice)Tj /T1_0 1 Tf 2.65 0 Td (failed.)Tj -28.365 -1.2 Td (The)Tj /TT1 1 Tf 1.952 0 Td (getpriority)Tj /T1_0 1 Tf 6.878 0 Td [(function )-28(can )-28(be )-28(used )-28(to )-28(get )-28(the )-28(nice )-28(value )-28(for )-28(a )-28(pr)18(ocess, )-28(just )-28(like)]TJ -10.63 -1.2 Td (the)Tj /TT1 1 Tf 1.708 0 Td (nice)Tj /T1_0 1 Tf 2.721 0 Td [(function. )-321(However)74(,)]TJ /TT1 1 Tf 9.155 0 Td (getpriority)Tj /T1_0 1 Tf 6.921 0 Td [(can )-71(also )-71(get )-71(the )-71(nice )-71(value )-71(for )-71(a )-71(gr)17(oup )-71(of)]TJ -0.018 Tc -20.506 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(lated pr)18(ocesses.)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.5921 556.2666 Tm (#include )Tj 0 -1.902 TD (int getpriority\(int)Tj /T1_2 1 Tf 12 0 Td (which)Tj /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.207 0 Td (d_t)Tj /T1_2 1 Tf 2.4 0 Td (who)Tj /TT1 1 Tf (\);)Tj /T1_0 1 Tf -9.863 -1.902 Td (Returns: nice value between)Tj /TT0 1 Tf 12.693 0 Td (!)Tj /TT1 1 Tf (NZERO)Tj /T1_0 1 Tf 3.799 0 Td (and)Tj /TT1 1 Tf 1.943 0 Td (NZERO)Tj /TT0 1 Tf (!)Tj /TT1 1 Tf (1)Tj /T1_0 1 Tf 4.399 0 Td (if OK,)Tj /TT0 1 Tf 2.886 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5175.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 503.9995 Tm (The)Tj /T1_2 1 Tf 2.009 0 Td (which)Tj /T1_0 1 Tf 2.742 0 Td [(ar)18(gument )-85(can )-85(take )-85(on )-85(one )-85(of )-85(thr)16(ee )-85(values:)]TJ /TT1 1 Tf 19.345 0 Td (PRIO_PROCESS)Tj /T1_0 1 Tf 7.536 0 Td [(to )-85(indicate )-85(a)]TJ -33.433 -1.2 Td [(pr)18(ocess,)]TJ /TT1 1 Tf 3.828 0 Td (PRIO_PGRP)Tj /T1_0 1 Tf 5.683 0 Td [(to )-33(indicate )-33(a )-33(pr)18(ocess )-33(gr)18(oup, )-33(and)]TJ /TT1 1 Tf 14.516 0 Td (PRIO_USER)Tj /T1_0 1 Tf 5.683 0 Td [(to )-33(indicate )-33(a )-33(user )-33(ID.)]TJ -29.71 -1.2 Td (The)Tj /T1_2 1 Tf 2.286 0 Td (which)Tj /T1_0 1 Tf 3.019 0 Td [(ar)18(gument )-362(contr)18(ols )-362(how )-362(the)]TJ /T1_2 1 Tf 13.641 0 Td (who)Tj /T1_0 1 Tf 2.278 0 Td [(ar)18(gument )-362(is )-362(interpr)18(eted )-362(and )-362(the)]TJ /T1_2 1 Tf 16.109 0 Td (who)Tj /T1_0 1 Tf -37.334 -1.2 Td [(ar)18(gument )-101(selects )-101(the )-101(pr)18(ocess )-101(or )-101(pr)18(ocesses )-101(of )-101(inter)19(est. )-351(If)-351(the)]TJ /T1_2 1 Tf 27.223 0 Td (who)Tj /T1_0 1 Tf 2.017 0 Td [(ar)18(gument )-101(is )-101(0, )-101(then )-101(it)]TJ -29.24 -1.2 Td [(indicates )-192(the )-192(calling )-192(pr)17(ocess, )-192(pr)18(ocess )-192(gr)18(oup, )-192(or )-192(user )-192(\(depending )-192(on )-192(the )-192(value )-192(of )-192(the)]TJ /T1_2 1 Tf 0 -1.2 TD (which)Tj /T1_0 1 Tf 2.704 0 Td [(ar)18(gument\). )-297(When)]TJ /T1_2 1 Tf 8.376 0 Td (which)Tj /T1_0 1 Tf 2.704 0 Td [(is )-47(set )-47(to)]TJ /TT1 1 Tf 3.708 0 Td (PRIO_USER)Tj /T1_0 1 Tf 5.697 0 Td (and)Tj /T1_2 1 Tf 1.99 0 Td (who)Tj /T1_0 1 Tf 1.963 0 Td [(is )-47(0, )-47(the )-47(r)17(eal )-47(user )-47(ID )-47(of )-47(the)]TJ -27.143 -1.2 Td [(calling )-21(pr)18(ocess )-21(is )-21(used.)-523(When )-22(the)]TJ /T1_2 1 Tf 15.241 0 Td (which)Tj /T1_0 1 Tf 2.679 0 Td [(ar)18(gument )-22(applies )-22(to )-22(mor)]TJ 0.2716 Tc 10.986 0 Td (et)Tj 0 Tc 1.077 0 Td [(han )-22(one )-22(pr)18(ocess, )-22(the)]TJ -29.982 -1.2 Td [(highest priority \(lowest value\) of all the applicable pr)18(ocesses is r)18(eturned.)]TJ 1.8 -1.2 Td (The)Tj /TT1 1 Tf 2.027 0 Td (setpriority)Tj /T1_0 1 Tf 6.953 0 Td [(function )-103(can )-103(be )-103(used )-103(to )-103(set )-103(the )-103(priority )-103(of )-103(a )-103(pr)22(ocess, )-102(a )-102(pr)17(ocess)]TJ -10.779 -1.2 Td [(gr)18(oup, or all the pr)18(ocesses belonging to a particular user ID.)]TJ /TT1 1 Tf 8.9989 0 0 8.9989 147.5824 379.3145 Tm (#include )Tj 0 -1.902 TD (int setpriority\(int)Tj /T1_2 1 Tf 12 0 Td (which)Tj /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.207 0 Td (d_t)Tj /T1_2 1 Tf 2.4 0 Td (who)Tj /TT1 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.466 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (value)Tj /TT1 1 Tf (\);)Tj /T1_0 1 Tf 2.978 -1.902 Td (Returns: 0 if OK,)Tj /TT0 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3406.25 cm 0 0 m 0 477 l 3900 477 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 327.0611 Tm (The)Tj /T1_2 1 Tf 1.958 0 Td (which)Tj /T1_0 1 Tf 2.691 0 Td (and)Tj /T1_2 1 Tf 1.976 0 Td (who)Tj /T1_0 1 Tf 1.949 0 Td [(ar)18(guments )-33(ar)]TJ 0.2835 Tc 5.891 0 Td (et)Tj 0 Tc 1.089 0 Td [(he )-33(same )-33(as )-33(in )-33(the)]TJ /TT1 1 Tf 7.949 0 Td (getpriority)Tj /T1_0 1 Tf 6.884 0 Td [(function. )-283(The)]TJ /T1_2 1 Tf 6.448 0 Td (value)Tj /T1_0 1 Tf -36.833 -1.2 Td (is added to)Tj /TT1 1 Tf 5.149 0 Td (NZERO)Tj /T1_0 1 Tf 3.25 0 Td (and this becomes the new nice value.)Tj 7.9986 0 0 7.9986 183.5676 295.0669 Tm (The)Tj /TT1 1 Tf 2.001 0 Td (nice)Tj /T1_0 1 Tf 2.727 0 Td [(system )-77(call )-77(originated )-77(with )-77(an )-77(early )-77(PDP)]TJ 18.475 0.09 Td (-)Tj -0.055 Tc 0.333 -0.09 Td [(11 )-187(v)]TJ 0 Tc 1.837 0 Td [(ersion )-77(of )-77(the )-77(Resear)18(ch )-77(UNIX )-77(System.)]TJ -25.373 -1.25 Td (The)Tj /TT1 1 Tf 1.924 0 Td (getpriority)Tj /T1_0 1 Tf 6.85 0 Td (and)Tj /TT1 1 Tf 1.943 0 Td (setpriority)Tj /T1_0 1 Tf 6.85 0 Td (functions originated with 4.2BSD.)Tj 9.9982 0 0 9.9982 147.5743 264.0725 Tm [(The )-68(Single )-68(UNIX )-68(Speci\336cation )-68(leaves )-68(it )-68(up )-68(to )-68(the )-68(implementation )-68(whether )-68(the )-68(nice)]TJ -1.8 -1.2 Td [(value )-39(is )-39(inherited )-39(by )-39(a )-39(child )-39(pr)20(ocess )-38(after )-38(a)]TJ /TT1 1 Tf 19.442 0 Td (fork)Tj /T1_0 1 Tf 0.5385 Tc (.H)Tj 0 Tc 4.021 0 Td (owever)Tj 0.2885 Tc 3.224 0 Td (,X)Tj 0 Tc 1.206 0 Td [(SI-compliant )-38(systems )-38(ar)17(e)]TJ -0.018 Tc -27.892 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(ed to pr)18(eserve the nice value acr)18(oss a call to)]TJ /TT1 1 Tf 21.326 0 Td (exec)Tj /T1_0 1 Tf (.)Tj 0.2788 Tc 7.9986 0 0 7.9986 183.5681 220.0804 Tm (Ac)Tj 0 Tc 1.501 0 Td [(hild )-29(pr)18(ocess )-29(inherits )-29(the )-29(nice )-29(value )-29(fr)18(om )-29(its )-29(par)18(ent )-29(pr)18(ocess )-29(in )-29(Fr)18(eeBSD )-29(8.0, )-29(Linux )-29(3.2.0, )-29(Mac)]TJ -1.501 -1.25 Td (OS X 10.6.8, and Solaris 10.)Tj /TT2 1 Tf 9.9982 0 0 9.9982 93.5843 182.4871 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(The )-50(pr)18(ogram )-50(in )-50(Figur)]TJ 0.3 Tc 9.688 0 Td (e8)Tj 0 Tc 1.279 0 Td [(.30 )-50(measur)18(es )-50(the )-50(ef)18(fect )-50(of )-50(adjusting )-50(the )-50(nice )-50(value )-50(of )-50(a )-50(pr)18(ocess.)]TJ -0.09 Tc -10.967 -1.2 Td (Tw)Tj 0.2774 Tc 1.357 0 Td (op)Tj -0.018 Tc 1.424 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cesses )-27(r)8(un )-27(in )-27(parallel, )-27(each )-27(incr)16(ementing )-27(its )-27(own )-27(counter)]TJ 0.5275 Tc 25.117 0 Td (.T)Tj 0 Tc 1.391 0 Td [(he )-27(par)18(ent )-27(r)8(uns )-27(with)]TJ -30.212 -1.2 Td [(the )-12(default )-12(nice )-12(value, )-12(and )-12(the )-12(child )-12(r)8(uns )-12(with )-12(an )-12(adjusted )-12(nice )-12(value )-12(as )-12(speci\336ed )-12(by )-12(the)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47235 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (386)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1860 5342 cm 0 0 m 0 -159.05 -64.47 -288 -144 -288 c -223.53 -288 -288 -159.05 -288 0 c -288 159.05 -223.53 288 -144 288 c -64.47 288 0 159.05 0 0 c h S Q Q BT /T1_1 1 Tf 0 Tc 7.9995 0 0 7.9995 160.0904 537.4078 Tm [(thr)18(ead)]TJ 1.187 -1.25 Td (2)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2249.52 5905.7598 cm 0 0 m 0 -159.05 -64.47 -288 -144 -288 c -223.53 -288 -288 -159.05 -288 0 c -288 159.06 -223.53 288 -144 288 c -64.47 288 0 159.06 0 0 c h S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 199.0281 593.7447 Tm [(thr)18(ead)]TJ 1.187 -1.25 Td (1)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2249.52 4778.2402 cm 0 0 m 0 -159.05 -64.47 -288 -144 -288 c -223.53 -288 -288 -159.05 -288 0 c -288 159.06 -223.53 288 -144 288 c -64.47 288 0 159.06 0 0 c h S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 199.0162 480.9774 Tm [(thr)18(ead)]TJ 1.187 -1.25 Td (3)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2544 4910 360 864 re S Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 263.0129 537.311 Tm (work)Tj -0.197 -1.25 Td (queue)Tj ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 290.4 534.2 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 2904 5342 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 312 534.2 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 3120 5342 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2976.25 5342.25 cm 0 0 m 72 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 3120 5054 288 576 re S Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 320.9524 532.2484 Tm (job)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3120.25 5486.25 cm 0 0 m 288 0 l S Q Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 316.3711 551.6083 Tm (TID 1)Tj ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 340.8 534.2 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3408 5342 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 362.4 534.2 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3624 5342 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3480.25 5342.25 cm 0 0 m 72 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 3624 5054 288 576 re S Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 371.2675 532.1526 Tm (job)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3624.25 5486.25 cm 0 0 m 288 0 l S Q Q BT /T1_1 1 Tf 7.9952 0 0 7.9952 366.6839 551.509 Tm (TID 3)Tj ET q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 391.2 534.2 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 3912 5342 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 412.8 534.2 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 4128 5342 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3984.25 5342.25 cm 0 0 m 72 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J 4128 5054 288 576 re S Q BT /T1_1 1 Tf 7.9942 0 0 7.9942 421.5644 532.0568 Tm (job)Tj ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4128.25 5486.25 cm 0 0 m 288 0 l S Q Q BT /T1_1 1 Tf 7.9938 0 0 7.9938 416.9786 551.4097 Tm (TID 2)Tj ET q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 441.6 534.2 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 4416 5342 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 463.2 534.2 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 4632 5342 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4488.25 5342.25 cm 0 0 m 72 0 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J 4632 5054 288 576 re S Q BT /T1_1 1 Tf 7.9928 0 0 7.9928 471.8431 531.961 Tm (job)Tj ET q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4632.25 5486.25 cm 0 0 m 288 0 l S Q Q BT /T1_1 1 Tf 7.9923 0 0 7.9923 467.2552 551.3105 Tm (TID 3)Tj ET q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3336 6350 cm 0 0 m 0 -159.05 -64.47 -288 -144 -288 c -223.53 -288 -288 -159.05 -288 0 c -288 159.05 -223.53 288 -144 288 c -64.47 288 0 159.05 0 0 c h S Q Q BT /T1_1 1 Tf 7.9918 0 0 7.9918 306.8588 637.5893 Tm (master)Tj 0.066 -1.25 Td [(thr)18(ead)]TJ ET q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 186 534.2 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 1860 5342 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2544.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2508.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2472.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2436.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2400.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2364.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2328.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2292.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2256.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2220.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2184.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2148.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2112.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2076.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2040.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2004.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1968.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1932.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 220.776 570.2 cm 0 0 m 7.056 -2.376 l 5.112 -5.4 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 2207.76 5702 cm 0 0 m 70.56 -23.76 l 51.12 -54 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2544.25 5486.25 cm 0 0 m 0 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2513.25 5505.25 cm 0 0 m 0 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2483.25 5525.25 cm 0 0 m 0 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2452.25 5545.25 cm 0 0 m 0 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2421.25 5564.25 cm 0 0 m 0 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2390.25 5584.25 cm 0 0 m 0 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2360.25 5604.25 cm 0 0 m 0 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2329.25 5623.25 cm 0 0 m 0 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2299.25 5643.25 cm 0 0 m 0 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2268.25 5663.25 cm 0 0 m 0 0 l S Q Q q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 220.776 498.2 cm 0 0 m 5.112 5.4 l 7.056 2.376 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 2207.76 4982 cm 0 0 m 51.12 54 l 70.56 23.76 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2544.25 5198.25 cm 0 0 m 0 0 l S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2513.25 5178.25 cm 0 0 m 0 0 l S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2483.25 5158.25 cm 0 0 m 0 0 l S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2452.25 5139.25 cm 0 0 m 0 0 l S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2421.25 5119.25 cm 0 0 m 0 0 l S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2390.25 5099.25 cm 0 0 m 0 0 l S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2360.25 5080.25 cm 0 0 m 0 0 l S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2329.25 5060.25 cm 0 0 m 0 0 l S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2299.25 5040.25 cm 0 0 m 0 0 l S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2268.25 5021.25 cm 0 0 m 0 0 l S Q Q q 0.9988007 0 0 0.9988007 0 0 cm q 1 0 0 1 290.4 577.4 cm 0 0 m 1.584 7.272 l 4.824 5.688 l f Q Q q 0.0998801 0 0 0.0998801 0 0 cm 1 j 1 J q 1 0 0 1 2904 5774 cm 0 0 m 15.84 72.72 l 48.24 56.88 l h S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3090.25 6146.25 cm 0 0 m 0 0 l S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3074.25 6115.25 cm 0 0 m 0 0 l S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3059.25 6085.25 cm 0 0 m 0 0 l S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3043.25 6054.25 cm 0 0 m 0 0 l S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3028.25 6023.25 cm 0 0 m 0 0 l S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3013.25 5992.25 cm 0 0 m 0 0 l S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2997.25 5962.25 cm 0 0 m 0 0 l S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2982.25 5931.25 cm 0 0 m 0 0 l S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2966.25 5900.25 cm 0 0 m 0 0 l S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2951.25 5869.25 cm 0 0 m 0 0 l S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2936.25 5838.25 cm 0 0 m 0 0 l S Q Q BT /T1_0 1 Tf 7.9899 0 0 7.9899 261.758 423.2903 Tm [(Figure 1)37(1.1)]TJ /T1_1 1 Tf -0.092 Tc 6.25 0 Td (Wo)Tj 0 Tc 1.454 0 Td (rk queue example)Tj 9.9874 0 0 9.9874 129.4368 399.3205 Tm [(The )-164(memory )-164(location )-164(pointed )-164(to )-164(by)]TJ /T1_2 1 Tf 16.841 0 Td (tidp)Tj /T1_1 1 Tf 2.025 0 Td [(is )-164(set )-164(to )-164(the )-164(thr)20(ead )-163(ID )-163(of )-163(the )-163(newly )-163(cr)16(eated)]TJ -18.865 -1.2 Td [(thr)18(ead )-267(when)]TJ /TT0 1 Tf 6.387 0 Td (pthread_create)Tj /T1_1 1 Tf -0.018 Tc 8.917 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-267(successfully)]TJ 0.7674 Tc 8.052 0 Td (.T)Tj 0 Tc 1.63 0 Td (he)Tj /T1_2 1 Tf 1.578 0 Td (attr)Tj /T1_1 1 Tf 2.016 0 Td [(ar)18(gument )-267(is )-267(used )-267(to)]TJ -29.438 -1.2 Td [(customize )-137(various )-137(thr)18(ead )-137(attributes.)]TJ -0.092 Tc 16.967 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-137(cover )-137(thr)17(ead )-137(attributes )-137(in )-137(Section )-137(12.3, )-137(but)]TJ -18.354 -1.2 Td (for now)Tj 0.25 Tc 3.394 0 Td (,w)Tj 0 Tc 1.334 0 Td (e\325ll set this to)Tj /TT0 1 Tf 6.063 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(to cr)18(eate a thr)18(ead with the default attributes.)]TJ -11.641 -1.2 Td [(The )-182(newly )-182(cr)18(eated )-182(thr)18(ead )-182(starts )-182(r)7(unning )-182(at )-182(the )-182(addr)18(ess )-182(of )-182(the)]TJ /T1_2 1 Tf 29.145 0 Td (start_rtn)Tj /T1_1 1 Tf 4.098 0 Td (function.)Tj -35.043 -1.2 Td [(This )-102(function )-102(takes )-102(a )-102(single )-102(ar)17(gument,)]TJ /T1_2 1 Tf 17.694 0 Td [(ar)18(g)]TJ /T1_1 1 Tf 0.3521 Tc (,w)Tj 0 Tc 2.751 0 Td [(hich )-102(is )-102(a )-102(typeless )-102(pointer)]TJ 0.6021 Tc 11.248 0 Td (.I)Tj 0.3521 Tc 1.189 0 Td (fy)Tj 0 Tc 1.241 0 Td [(ou )-102(need )-102(to)]TJ -34.124 -1.2 Td [(pass )-30(mor)]TJ 0.2805 Tc 4.036 0 Td (et)Tj 0 Tc 1.086 0 Td [(han )-30(one )-30(ar)18(gument )-30(to )-30(the)]TJ /T1_2 1 Tf 11.239 0 Td (start_rtn)Tj /T1_1 1 Tf 3.947 0 Td [(function, )-31(then )-31(you )-31(need )-31(to )-31(stor)]TJ 0.2806 Tc 13.73 0 Td (et)Tj 0 Tc 1.086 0 Td [(hem )-31(in )-31(a)]TJ -35.122 -1.2 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ea)Tj 0 Tc 1.229 0 Td [(nd pass the addr)18(ess of the str)8(uctur)]TJ 0.25 Tc 15.211 0 Td (ei)Tj 0 Tc 1.02 0 Td (n)Tj /T1_2 1 Tf 0.832 0 Td [(ar)18(g)]TJ /T1_1 1 Tf (.)Tj -19.982 -1.2 Td [(When )-204(a )-204(thr)18(ead )-204(is )-204(cr)18(eated, )-204(ther)19(e)-454(is)-454(no)-454(guarantee )-204(which )-204(will )-204(r)8(un )-204(\336rst: )-204(the )-204(newly)]TJ -1.8 -1.2 Td [(cr)18(eated )-33(thr)18(ead )-33(or )-33(the )-33(calling )-33(thr)16(ead. )-283(The)-284(newly )-33(cr)18(eated )-33(thr)18(ead )-33(has )-33(access )-33(to )-33(the )-33(pr)15(ocess)]TJ 0 -1.2 Td [(addr)18(ess )-153(space )-153(and )-153(inherits )-153(the )-153(calling )-153(thr)18(ead\325s )-153(\337oating-point )-153(envir)18(onment )-153(and )-153(signal)]TJ 0 -1.2 TD (mask; however)Tj 0.25 Tc 6.669 0 Td (,t)Tj 0 Tc 0.826 0 Td [(he set of pending signals for the thr)18(ead is clear)18(ed.)]TJ -5.695 -1.2 Td [(Note )-84(that )-84(the )-84(pthr)18(ead )-84(functions )-84(usually )-84(r)18(eturn )-84(an )-84(err)18(or )-84(code )-84(when )-84(they )-84(fail.)-583(They)]TJ -1.8 -1.2 Td [(don\325t )-247(set)]TJ /TT0 1 Tf 4.567 0 Td (errno)Tj /T1_1 1 Tf 3.497 0 Td [(like )-247(the )-247(other )-247(POSIX )-247(functions.)-747(The )-247(per)16(-thr)18(ead )-247(copy )-247(of)]TJ /TT0 1 Tf 26.724 0 Td (errno)Tj /T1_1 1 Tf 3.497 0 Td (is)Tj -38.285 -1.2 Td [(pr)18(ovided )-116(only )-116(for )-116(compatibility )-116(with )-116(existing )-116(functions )-116(that )-116(use )-116(it.)]TJ -0.055 Tc 30.876 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-116(thr)18(eads, )-116(it )-116(is)]TJ -32.112 -1.2 Td [(cleaner )-112(to )-112(r)18(eturn )-112(the )-112(err)18(or )-112(code )-112(fr)18(om )-112(the )-112(function, )-112(ther)18(eby )-112(r)18(estricting )-112(the )-112(scope )-112(of )-112(the)]TJ T* [(err)18(or )-234(to )-234(the )-234(function )-234(that )-234(caused )-234(it, )-234(instead )-234(of )-234(r)22(elying )-234(on )-234(some )-234(global )-234(state )-234(that )-234(is)]TJ 0 -1.2 Td [(changed as a side ef)18(fect of the function.)]TJ /TT1 1 Tf -3.6 -2.4 Td (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(Although )-173(ther)18(e)-423(is)-423(no)-423(p)-1(ortable )-173(way )-173(to )-173(print )-173(the )-173(thr)18(ead )-173(ID, )-173(we )-173(can )-173(write )-173(a )-173(small )-173(test)]TJ 0 -1.2 Td [(pr)18(ogram )-263(that )-263(does, )-263(to )-263(gain )-263(some )-263(insight )-263(into )-263(how )-263(thr)17(eads )-263(work.)-763(The )-263(pr)18(ogram )-263(in)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47236 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1.3)]TJ 39.716 0 Td [(Logging )-250(In)]TJ /T1_1 1 Tf 7.117 0 Td (3)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Shells)Tj /T1_0 1 Tf 3.6 -2.4 Td [(Once )-127(we )-127(log )-127(in, )-127(some )-127(system )-127(information )-127(messages )-127(ar)]TJ 0.377 Tc 24.881 0 Td (et)Tj 0 Tc 1.182 0 Td [(ypically )-127(displayed, )-127(and )-127(then)]TJ -26.063 -1.2 Td [(we )-433(can )-433(type )-433(commands )-433(to )-433(the )-433(shell )-433(pr)21(ogram. )-683(\(Some)-682(systems )-433(start )-433(a )-433(window)]TJ 0 -1.2 Td [(management )-57(pr)18(ogram )-57(when )-57(you )-57(log )-57(in, )-57(but )-57(you )-57(generally )-57(end )-57(up )-57(with )-57(a )-57(shell )-57(r)7(unning)]TJ 0 -1.2 TD [(in )-30(one )-30(of )-30(the )-30(windows.\))-528(A)]TJ /T1_2 1 Tf 12.157 0 Td (shell)Tj /T1_0 1 Tf 2.114 0 Td [(is )-30(a )-30(command)]TJ 6.223 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-30(interpr)18(eter )-30(that )-30(r)18(eads )-30(user )-30(input )-30(and)]TJ -20.827 -1.2 Td [(executes )-289(commands.)-789(The )-289(user )-289(input )-289(to )-289(a )-289(shell )-289(is )-289(normally )-289(fr)13(om )-289(the )-289(terminal )-289(\(an)]TJ T* [(interactive )-100(shell\) )-100(or )-100(sometimes )-100(fr)18(om )-100(a )-100(\336le )-100(\(called )-100(a)]TJ /T1_2 1 Tf 23.365 0 Td [(shell )-100(script)]TJ /T1_0 1 Tf [(\). )-350(The)-350(common )-100(shells )-100(in)]TJ -23.365 -1.2 Td (use ar)Tj 0.25 Tc 2.633 0 Td (es)Tj 0 Tc 1.153 0 Td (ummarized in Figur)Tj 0.25 Tc 8.901 0 Td (e1)Tj 0 Tc 1.229 0 Td (.2.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1491.25 5540.25 cm 0 0 m 3510 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 175.4669 545.9345 Tm (Name )Tj 8.688 0 Td [(Path)-3289(Fr)18(eeBSD 8.0)-1595(Linux 3.2.0)-1500(Mac OS X 10.6.8)-1500(Solaris 10)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1491.25 5420.25 cm 0 0 m 3510 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1491.25 5400.25 cm 0 0 m 3510 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 153.0524 531.9042 Tm (Bourne shell)Tj /TT1 1 Tf 9.795 0 Td (/bin/sh)Tj /T1_0 1 Tf 6.0665 Tc 9.343 0 Td (\245\245)Tj 0 Tc 11.498 0 Td (copy of)Tj /TT1 1 Tf 3.526 0 Td (bash)Tj /T1_0 1 Tf 6.304 0 Td (\245)Tj -40.466 -1.25 Td (Bourne-again shell)Tj /TT1 1 Tf 9.795 0 Td (/bin/bash)Tj /T1_0 1 Tf 7.804 0 Td [(optional )-4278(\245)]TJ 6.564 Tc 15.697 0 Td (\245\245)Tj 0.25 Tc -33.296 -1.25 Td (Cs)Tj 0 Tc 1.383 0 Td (hell)Tj /TT1 1 Tf 8.412 0 Td (/bin/csh)Tj /T1_0 1 Tf 6.9 0 Td (link to)Tj /TT1 1 Tf 3.092 0 Td (tcsh)Tj /T1_0 1 Tf 4.485 0 Td [(optional )-2648(link)-250(to)]TJ /TT1 1 Tf 9.673 0 Td (tcsh)Tj /T1_0 1 Tf 6.521 0 Td (\245)Tj -40.466 -1.25 Td (Korn shell)Tj /TT1 1 Tf 9.795 0 Td (/bin/ksh)Tj /T1_0 1 Tf 7.804 0 Td [(optional )-2739(optional)]TJ 6.564 Tc 15.697 0 Td (\245\245)Tj 0 Tc -33.296 -1.25 Td (TENEX C shell)Tj /TT1 1 Tf 9.795 0 Td (/bin/tcsh)Tj /T1_0 1 Tf 4.528 Tc 9.343 0 Td (\245o)Tj 0 Tc 5.68 0 Td (ptional )Tj 8.478 0 Td (\245)Tj 7.17 0 Td (\245)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1491.25 4880.25 cm 0 0 m 3510 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4563.25 4880.25 cm 0 0 m 0 660 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3874.25 4880.25 cm 0 0 m 0 660 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3366.25 4880.25 cm 0 0 m 0 660 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2806.25 4880.25 cm 0 0 m 0 660 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2254.25 4880.25 cm 0 0 m 0 660 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5001.25 4880.25 cm 0 0 m 0 660 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1491.25 4880.25 cm 0 0 m 0 660 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 234.7077 469.8872 Tm (Figure 1.2)Tj /T1_0 1 Tf 5.195 0 Td (Common shells used on UNIX systems)Tj 9.9976 0 0 9.9976 129.5691 445.893 Tm [(The )-63(system )-63(knows )-63(which )-63(shell )-63(to )-63(execute )-63(for )-63(us )-63(based )-63(on )-63(the )-63(\336nal )-63(\336eld )-63(in )-63(our )-63(entry )-63(in)]TJ T* (the passwor)Tj 0.25 Tc 5.343 0 Td (d\336)Tj 0 Tc 1.466 0 Td (le.)Tj -5.009 -1.2 Td [(The )-150(Bourne )-150(shell, )-150(developed )-150(by )-150(Steve )-150(Bourne )-150(at )-150(Bell )-150(Labs, )-150(has )-150(been )-150(in )-150(use )-150(since)]TJ -0.111 Tc -1.8 -1.2 Td (Ve)Tj 0 Tc 1.09 0 Td [(rsion )-453(7 )-453(and )-453(is )-453(pr)18(ovided )-453(with )-453(almost )-453(every )-453(UNIX )-453(system )-453(in )-453(existence.)-951(The)]TJ -1.09 -1.2 Td [(contr)18(ol-\337ow constr)8(ucts of the Bourne shell ar)]TJ 0.25 Tc 19.865 0 Td (er)Tj 0 Tc 1.106 0 Td (eminiscent of Algol 68.)Tj -19.171 -1.2 Td [(The )-22(C )-22(shell, )-22(developed )-22(by )-22(Bill )-22(Joy )-22(at )-22(Berkeley)107(,)-272(is)-272(p)]TJ -0.018 Tc 22.242 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vided )-23(with )-23(all )-23(the )-23(BSD )-23(r)20(eleases.)]TJ -24.965 -1.2 Td (Additionally)Tj 0.3886 Tc 5.563 0 Td (,t)Tj 0 Tc 0.965 0 Td [(he )-139(C )-139(shell )-139(was )-139(pr)20(ovided )-138(by )-138(A)74(T&T )-138(with )-138(System )-138(V/386 )-138(Release )-138(3.2 )-138(and)]TJ -6.528 -1.2 Td [(was )-98(also )-98(included )-98(in )-98(System )-98(V )-98(Release )-98(4)]TJ 18.822 0.04 Td (\()Tj 0.333 -0.04 Td (SVR4)Tj 2.415 0.04 Td (\))Tj 0.5979 Tc 0.333 -0.04 Td (.\()Tj -0.092 Tc 1.181 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-98(have )-98(mor)18(e)-348(to)-348(say )-98(about )-98(these)]TJ -24.471 -1.2 Td [(dif)18(fer)18(ent )-25(versions )-25(of )-25(the )-25(UNIX )-25(System )-25(in )-25(the )-25(next )-25(chapter)78(.\) )-275(The)]TJ 0.2745 Tc 28.514 0 Td (Cs)Tj 0 Tc 1.407 0 Td [(hell )-24(was )-24(built )-24(on )-24(the)]TJ -29.922 -1.2 Td [(6th )-52(Edition )-52(shell, )-52(not )-52(the )-52(Bourne )-52(shell.)-551(Its )-52(contr)18(ol )-52(\337ow )-52(looks )-52(mor)]TJ 0.3019 Tc 29.283 0 Td (el)Tj 0 Tc 1.072 0 Td [(ike )-52(the )-52(C )-52(language,)]TJ -30.355 -1.2 Td [(and )-264(it )-264(supports )-264(additional )-264(featur)18(es )-264(that )-264(wer)18(en\325t )-264(pr)18(ovided )-264(by )-264(the )-264(Bourne )-264(shell: )-264(job)]TJ T* [(contr)18(ol, a history mechanism, and command)]TJ 19.692 0.09 Td (-)Tj 0.333 -0.09 Td (line editing.)Tj -18.225 -1.2 Td [(The )-46(Korn )-46(shell )-46(is )-46(consider)18(ed )-46(a )-46(successor )-46(to )-46(the )-46(Bourne )-46(shell )-46(and )-46(was )-46(\336rst )-46(pr)18(ovided)]TJ -1.8 -1.2 Td [(with )-37(SVR4.)-537(The )-37(Korn )-37(shell, )-37(developed )-37(by )-37(David )-37(Korn )-37(at )-37(Bell )-37(Labs, )-37(r)8(uns )-37(on )-37(most )-37(UNIX)]TJ T* [(systems, )-12(but )-12(befor)]TJ 0.2619 Tc 8.06 0 Td (eS)Tj 0 Tc 1.266 0 Td [(VR4 )-12(was )-12(usually )-12(an )-12(extra-cost )-12(add-on, )-12(so )-12(it )-12(is )-12(not )-12(as )-12(widespr)19(ead )-12(as)]TJ -9.326 -1.2 Td [(the )-57(other )-57(two )-57(shells.)-557(It )-57(is )-57(upwar)]TJ 0.3066 Tc 14.545 0 Td (dc)Tj 0 Tc 1.362 0 Td [(ompatible )-56(with )-56(the )-56(Bourne )-56(shell )-56(and )-56(includes )-56(those)]TJ -15.906 -1.2 Td [(featur)18(es that made the C shell popular: job contr)18(ol, command)]TJ 27.072 0.09 Td (-)Tj 0.333 -0.09 Td (line editing, and so on.)Tj -25.605 -1.2 Td [(The )-112(Bourne-again )-112(shell )-112(is )-112(the )-112(GNU )-112(shell )-112(pr)19(ovided )-112(with )-112(all )-112(Linux )-112(systems.)-612(It )-112(was)]TJ -1.8 -1.2 Td [(designed )-165(to )-165(be )-165(POSIX )-165(conformant, )-165(while )-165(still )-165(r)18(emaining )-165(compatible )-165(with )-165(the )-165(Bourne)]TJ T* [(shell. )-250(It)-250(supports featur)18(es fr)18(om both the C shell and the Korn shell.)]TJ 1.8 -1.2 Td [(The )-255(TENEX )-255(C )-255(shell )-255(is )-255(an )-255(enhanced )-255(version )-255(of )-255(the )-255(C )-255(shell.)-751(It )-255(borr)18(ows )-255(several)]TJ -1.8 -1.2 Td [(featur)18(es, )-84(such )-84(as )-84(command )-84(completion, )-84(fr)18(om )-84(the )-84(TENEX )-84(operating )-84(system )-84(\(developed)]TJ T* [(in )-22(1972 )-22(at )-22(Bolt )-22(Beranek )-22(and )-22(Newman\).)-522(The )-22(TENEX )-22(C )-22(shell )-22(adds )-22(many )-22(featur)19(es )-22(to )-22(the )-22(C)]TJ T* [(shell and is often used as a r)18(eplacement for the C shell.)]TJ 1.8 -1.2 Td [(The )-165(shell )-165(was )-165(standar)18(dized )-165(in )-165(the )-165(POSIX )-165(1003.2 )-165(standar)19(d. )-415(The)-415(speci\336cation )-165(was)]TJ -1.8 -1.2 Td [(based on featur)18(es fr)18(om the Korn shell and Bourne shell.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47237 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm [(Appendix )-277(C)]TJ /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(Solutions )-280(to )-280(Selected)]TJ 0 -1.667 TD [(Ex)20(er)7(cises)]TJ /TT0 1 Tf 10 0 0 10 93.6 374.4 Tm [(Chapter )-278(1)]TJ /T1_2 1 Tf 3.6 -2.8 Td (1.1)Tj /T1_3 1 Tf 2.602 0 Td [(For )-35(this )-35(exer)18(cise, )-35(we )-35(use )-35(the )-35(following )-35(two )-35(ar)18(guments )-35(for )-35(the)]TJ /TT1 1 Tf 27.564 0 Td (ls)Tj /T1_3 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.618 -0.04 Td (command:)Tj /TT1 1 Tf 4.984 0 Td (-i)Tj /T1_3 1 Tf -35.198 -1.2 Td [(prints )-133(the )-133(i-node )-133(number )-133(of )-133(the )-133(\336le )-133(or )-133(dir)14(ectory )-134(\(we )-134(say )-134(mor)]TJ 0.3836 Tc 28.101 0 Td (ea)Tj 0 Tc 1.363 0 Td [(bout )-134(i-nodes )-134(in)]TJ -29.463 -1.2 Td [(Section )-83(4.14\), )-83(and)]TJ /TT1 1 Tf 8.219 0 Td (-d)Tj /T1_3 1 Tf 1.533 0 Td [(prints )-83(information )-83(about )-83(a )-83(dir)17(ectory )-83(instead )-83(of )-83(information)]TJ -9.752 -1.2 Td [(on all the \336les in the dir)18(ectory)111(.)]TJ 0 -2.16 TD (Execute the following:)Tj /TT1 1 Tf 9 0 0 9 173.6198 269.9602 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (ls -ldi /etc/. /etc/..)Tj /TT1 1 Tf 19.6 0 Td (-i)Tj /T1_4 1 Tf 1.8 0 Td (says print i-node number)Tj /TT1 1 Tf -22 -1.189 Td [(162561 drwxr-xr-x)-1200(66 root)-2400(4096 Feb)]TJ 0.6 Tc 24 0 Td (50)Tj 0 Tc 1.8 0 Td (3:59 /etc/./)Tj 0.6 Tc -22.8 -1.189 Td (2d)Tj 0 Tc 1.8 0 Td [(rwxr-xr-x )-600(19)-600(root )-1800(4096)-600(Jan 15 07:25 /etc/../)]TJ -5.4 -1.189 Td ($)Tj /TT2 1 Tf 1.2 0 Td (ls -ldi /. /..)Tj /T1_4 1 Tf 19.6 0 Td (both)Tj /TT1 1 Tf 1.99 0 Td (.)Tj /T1_4 1 Tf 0.85 0 Td (and)Tj /TT1 1 Tf 1.75 0 Td (..)Tj /T1_4 1 Tf 1.45 0 Td (have i-node number 2)Tj /TT1 1 Tf 0.6 Tc -23.24 -1.189 Td (2d)Tj 0 Tc 1.8 0 Td [(rwxr-xr-x )-600(19)-600(root )-1800(4096)-600(Jan 15 07:25 /./)]TJ 0.6 Tc -1.8 -1.189 Td (2d)Tj 0 Tc 1.8 0 Td [(rwxr-xr-x )-600(19)-600(root )-1800(4096)-600(Jan 15 07:25 /../)]TJ /T1_2 1 Tf 10 0 0 10 129.6 189.92 Tm (1.2)Tj /T1_3 1 Tf 2.602 0 Td [(The )-406(UNIX )-406(System )-406(is )-406(a )-406(multipr)16(ogramming, )-407(or )-407(multitasking, )-407(system.)-905(Other)]TJ 0 -1.2 TD [(pr)18(ocesses wer)]TJ 0.25 Tc 6.138 0 Td (er)Tj 0 Tc 1.116 0 Td [(unning at the time this pr)18(ogram was r)8(un.)]TJ /T1_2 1 Tf -9.856 -1.84 Td (1.3)Tj /T1_3 1 Tf 2.602 0 Td [(Since )-85(the)]TJ /T1_4 1 Tf 4.379 0 Td (msg)Tj /T1_3 1 Tf 2.002 0 Td [(ar)18(gument )-85(to)]TJ /TT1 1 Tf 5.848 0 Td (perror)Tj /T1_3 1 Tf 3.935 0 Td [(is )-85(a )-85(pointer)74(,)]TJ /TT1 1 Tf 5.617 0 Td (perror)Tj /T1_3 1 Tf 3.935 0 Td [(could )-85(modify )-85(the )-85(string)]TJ -25.716 -1.2 Td (that)Tj /T1_4 1 Tf 2.184 0 Td (msg)Tj /T1_3 1 Tf 2.117 0 Td [(points )-200(to.)-700(The )-200(quali\336er)]TJ /TT1 1 Tf 11.34 0 Td (const)Tj /T1_3 1 Tf 0.4499 Tc (,h)Tj 0 Tc 4.282 0 Td (owever)Tj 0.4499 Tc 3.224 0 Td (,s)Tj 0 Tc 1.124 0 Td [(ays )-200(that)]TJ /TT1 1 Tf 4.114 0 Td (perror)Tj /T1_3 1 Tf 4.05 0 Td [(does )-200(not)]TJ -32.434 -1.2 Td [(modify )-375(what )-375(the )-375(pointer )-375(points )-375(to.)-875(On )-375(the )-375(other )-375(hand, )-375(the )-375(err)18(or )-375(number)]TJ /T1_2 1 Tf 9 0 0 9 506.0997 114.0001 Tm (905)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47238 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm [(Appendix )-277(B)]TJ /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(Miscellaneous )-280(Sour)7(ce )-280(Code)]TJ /TT0 1 Tf 12 0 0 12 93.6 415.2 Tm [(B.1 )-1166(Our)-556(Header )-278(File)]TJ /T1_2 1 Tf 10 0 0 10 129.6 391.2 Tm [(Most )-77(pr)18(ograms )-77(in )-77(the )-77(text )-77(include )-77(the )-77(header)]TJ /TT1 1 Tf 20.781 0 Td (apue.h)Tj /T1_2 1 Tf 0.327 Tc (,s)Tj 0 Tc 4.601 0 Td [(hown )-77(in )-77(Figur)]TJ 0.327 Tc 6.454 0 Td (eB)Tj 0 Tc 1.417 0 Td [(.1. )-327(It)-327(de\336nes)]TJ -33.253 -1.2 Td (constants \(such as)Tj /TT1 1 Tf 8.214 0 Td (MAXLINE)Tj /T1_2 1 Tf 0.25 Tc (\)a)Tj 0 Tc 5.283 0 Td [(nd pr)18(ototypes for our own functions.)]TJ -11.697 -1.2 Td [(Most )-119(pr)18(ograms )-119(need )-119(to )-119(include )-119(the )-119(following )-119(headers:)]TJ /TT1 1 Tf 25.181 0 Td ()Tj /T1_2 1 Tf (,)Tj /TT1 1 Tf 6.019 0 Td ()Tj /T1_2 1 Tf -33 -1.2 Td [(\(for )-354(the)]TJ /TT1 1 Tf 4.202 0 Td (exit)Tj /T1_2 1 Tf 3.004 0 Td [(function )-354(pr)18(ototype\), )-354(and)]TJ /TT1 1 Tf 12.153 0 Td ()Tj /T1_2 1 Tf 6.604 0 Td [(\(for )-354(all )-354(the )-354(standar)]TJ 0.6041 Tc 9.208 0 Td (dU)Tj 0 Tc 1.993 0 Td (NIX)Tj -37.165 -1.2 Td [(function )-16(pr)18(ototypes\). )-266(So)-266(our )-16(header )-16(automatically )-16(includes )-16(these )-16(system )-16(headers, )-16(along)]TJ -0 -1.2 Td (with)Tj /TT1 1 Tf 2.283 0 Td ()Tj /T1_2 1 Tf 0.5 Tc (.T)Tj 0 Tc 7.363 0 Td [(his also r)18(educes the size of all the pr)18(ogram listings in the text.)]TJ ET q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3204.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9995 0 0 8.9995 129.5922 310.8803 Tm (/*)Tj 0.6 Tc 0.6 -1.189 Td (*O)Tj 0 Tc 1.8 0 Td (ur own header, to be included before all standard system headers.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (#ifndef _APUE_H)Tj 0 -1.189 TD (#define _APUE_H)Tj 0 -2.259 TD (#define _POSIX_C_SOURCE 200809L)Tj T* [(#if defined\(SOLARIS\))-4800(/* Solaris 10 */)]TJ 0 -1.189 TD (#define _XOPEN_SOURCE 600)Tj T* (#else)Tj T* (#define _XOPEN_SOURCE 700)Tj T* (#endif)Tj 0 -2.259 TD [(#include )-3600(/* some systems still require this */)]TJ 0 -1.189 TD (#include )Tj 0 -1.189 TD [(#include )-2400(/* for winsize */)]TJ /T1_3 1 Tf 41.833 -3.068 Td (895)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47239 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 30 0 0 30 129.6 650.4 Tm [(Appendix )-277(A)]TJ /T1_1 1 Tf 24 0 0 24 129.6 545.576 Tm [(Function )-280(Pr)15(ototypes)]TJ /T1_2 1 Tf 10 0 0 10 129.6 422.4 Tm [(This )-190(appendix )-190(contains )-190(the )-190(function )-190(pr)20(ototypes )-190(for )-190(the )-190(standar)]TJ 0.4398 Tc 29.161 0 Td (dI)Tj 0 Tc 1.388 0 Td [(SO )-190(C, )-190(POSIX, )-190(and)]TJ -30.549 -1.2 Td [(UNIX )-15(System )-15(functions )-15(described )-15(in )-15(the )-15(text.)-516(Often, )-15(we )-15(want )-15(to )-15(see )-15(only )-15(the )-15(ar)17(guments)]TJ 0 -1.2 TD [(to )-6(a )-6(function )-6(\(\324)37(\324Which )-6(ar)17(gument )-6(is )-6(the )-6(\336le )-6(pointer )-6(for)]TJ /TT0 1 Tf 23.67 0 Td (fgets)Tj /T1_2 1 Tf [(?\325)37(\325\) )-256(or)-257(only )-6(the )-6(r)18(eturn )-6(value)]TJ -23.67 -1.2 Td [(\(\324)37(\324Does)]TJ /TT0 1 Tf 3.514 0 Td (sprintf)Tj /T1_2 1 Tf -0.018 Tc 4.639 0 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-189(a )-189(pointer )-189(or )-189(a )-189(count?\325)38(\325\). )-439(These)-439(pr)18(ototypes )-189(also )-189(show )-189(which)]TJ -9.009 -1.2 Td [(headers )-143(need )-143(to )-143(be )-143(included )-143(to )-143(obtain )-143(the )-143(de\336nitions )-143(of )-143(any )-143(special )-143(constants )-143(and )-143(to)]TJ T* [(obtain the ISO C function pr)18(ototype to help detect any compile-time err)18(ors.)]TJ 1.8 -1.2 Td [(The )-84(page )-84(number )-84(r)17(efer)18(ence )-84(for )-84(each )-84(function )-84(pr)18(ototype )-84(appears )-84(to )-84(the )-84(right )-84(of )-84(the)]TJ -1.8 -1.2 Td [(\336rst )-240(header )-240(\336le )-240(listed )-240(for )-240(the )-240(function.)-738(The )-240(page )-240(number )-240(r)19(efer)18(ence )-240(gives )-240(the )-240(page)]TJ 0 -1.2 Td [(containing )-26(the )-26(pr)18(ototype )-26(for )-26(the )-26(function.)-526(That )-26(page )-26(should )-26(be )-26(consulted )-26(for )-26(additional)]TJ T* (information on the function.)Tj 1.8 -1.2 Td [(Some )-51(functions )-51(ar)]TJ 0.3013 Tc 8.044 0 Td (es)Tj 0 Tc 1.204 0 Td [(upported )-51(by )-51(only )-51(a )-51(few )-51(of )-51(the )-51(platforms )-51(described )-51(in )-51(this )-51(text.)]TJ -11.048 -1.2 Td [(In )-86(addition, )-86(some )-86(platforms )-86(support )-86(function )-86(\337ags )-86(that )-86(other )-86(platforms )-86(don\325t )-86(support.)]TJ T* [(In )-137(these )-137(cases, )-137(we )-137(usually )-137(list )-137(the )-137(platforms )-137(for )-137(which )-137(support )-137(is )-137(pr)17(ovided. )-387(In)]TJ 0.3872 Tc 36.467 0 Td (af)Tj 0 Tc 1.22 0 Td (ew)Tj -37.687 -1.2 Td [(cases, however)74(,)-250(we)-250(list platforms that lack support.)]TJ /TT0 1 Tf 8 0 0 8 129.6003 230.4 Tm (void)Tj /TT1 1 Tf 6 0 Td (abort)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_2 1 Tf 28.125 0 Td (p. 365)Tj -28.125 -1.5 Td [(This function never r)18(eturns)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (accept)Tj /TT0 1 Tf (\(int)Tj /T1_3 1 Tf 6.6 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 4.262 0 Td (truct sockaddr *restrict)Tj /T1_3 1 Tf 15 0 Td (addr)Tj /TT0 1 Tf (,)Tj -21.662 -1.25 Td (socklen_t *restrict)Tj /T1_3 1 Tf 12 0 Td (len)Tj /TT0 1 Tf (\);)Tj -8.7 -1.5 Td ()Tj /T1_2 1 Tf 28.125 0 Td (p. 608)Tj -28.125 -1.5 Td (Returns: \336le \(socket\) descriptor if OK,)Tj /TT2 1 Tf 16.941 0 Td (!)Tj /T1_2 1 Tf [(1)-250(on)-250(err)18(or)]TJ /T1_4 1 Tf 9 0 0 9 506.1006 116 Tm (845)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47240 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Chapter )-250(21)]TJ 39.788 0 Td [(Exer)18(cises)]TJ /T1_1 1 Tf 6.045 0 Td (843)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 93.5944 668.9599 Tm [(21.6 )-776(Summar)-10(y)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 644.9613 Tm [(This )-140(chapter )-140(has )-140(examined )-140(in )-140(detail )-140(two )-140(complete )-140(pr)18(ograms: )-140(a )-140(print )-140(spooler )-140(daemon)]TJ 0 -1.2 TD [(that )-31(sends )-31(a )-31(print )-31(job )-31(to )-31(a )-31(network )-31(printer )-31(and )-31(a )-31(command )-31(that )-31(can )-31(be )-31(used )-31(to )-31(submit )-31(a)]TJ T* [(job )-191(to )-191(be )-191(printed )-191(to )-191(the )-191(spooling )-191(daemon.)-691(This )-191(has )-191(given )-191(us )-191(a )-191(chance )-191(to )-191(see )-191(many)]TJ T* [(featur)18(es )-270(that )-270(we )-270(described )-270(in )-270(earlier )-270(chapters )-270(used )-270(in )-270(r)18(eal )-270(pr)18(ograms: )-270(thr)18(eads, )-270(I/O)]TJ T* [(multiplexing, \336le I/O, r)18(eading dir)18(ectories, socket I/O, and signals.)]TJ /TT0 1 Tf 11.9993 0 0 11.9993 129.5922 554.9667 Tm [(Ex)10(er)20(cises)]TJ /T1_1 1 Tf 8.9995 0 0 8.9995 129.5922 533.968 Tm (21.1)Tj /T1_0 1 Tf -0.09 Tc 3.065 0 Td (Tr)Tj 0 Tc 0.918 0 Td [(anslate )-66(the )-66(IPP )-66(err)18(or )-66(code )-66(values )-66(listed )-66(in)]TJ /TT1 1 Tf 18.987 0 Td (ipp.h)Tj /T1_0 1 Tf 3.316 0 Td [(into )-66(err)18(or )-66(messages.)-566(Then )-66(modify )-66(the)]TJ -23.221 -1.222 Td [(print )-32(spooler )-32(daemon )-32(to )-32(log )-32(a )-32(message )-32(at )-32(the )-32(end )-32(of )-32(the)]TJ /TT1 1 Tf 25.12 0 Td (printer_status)Tj /T1_0 1 Tf 8.682 0 Td [(function )-32(when)]TJ -33.802 -1.222 Td [(the IPP header indicates a printer err)18(or)74(.)]TJ /T1_1 1 Tf -3.065 -1.667 Td (21.2)Tj /T1_0 1 Tf 3.065 0 Td [(Add )-107(support )-107(to )-107(the)]TJ /TT1 1 Tf 9.185 0 Td (print)Tj /T1_0 1 Tf 3.357 0 Td [(command )-107(and )-107(the)]TJ /TT1 1 Tf 8.601 0 Td (printd)Tj /T1_0 1 Tf 3.957 0 Td [(daemon )-107(to )-107(allow )-107(users )-107(to )-107(r)16(equest)]TJ -25.101 -1.222 Td [(double-sided printing.)-500(Do the same for landscape and portrait page orientation.)]TJ /T1_1 1 Tf -3.065 -1.667 Td (21.3)Tj /T1_0 1 Tf 3.065 0 Td [(Modify )-79(the )-79(print )-79(spooler )-79(daemon )-79(so )-79(that )-79(when )-79(it )-79(starts, )-79(it )-79(contacts )-79(the )-79(printer )-79(to )-79(\336nd )-79(out)]TJ 0 -1.222 TD [(which )-60(featur)18(es )-60(ar)]TJ 0.3104 Tc 7.752 0 Td (es)Tj 0 Tc 1.213 0 Td [(upported )-61(by )-61(the )-61(printer )-61(so )-61(that )-61(the )-61(daemon )-61(doesn\325t )-61(r)18(equest )-61(an )-61(option)]TJ -8.965 -1.222 Td (that isn\325t supported.)Tj /T1_1 1 Tf -3.065 -1.667 Td (21.4)Tj /T1_0 1 Tf -0.074 Tc 3.065 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite a command to r)18(eport on the status of pending print jobs.)]TJ /T1_1 1 Tf -4.386 -1.667 Td (21.5)Tj /T1_0 1 Tf -0.074 Tc 3.065 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-143(a )-143(command )-143(to )-143(cancel )-143(a )-143(pending )-143(print )-143(job.)-639(Use )-142(the )-142(job )-142(ID )-142(as )-142(the )-142(ar)18(gument )-142(to )-142(the)]TJ -1.321 -1.222 Td [(command )-105(to )-105(specify )-105(which )-105(job )-105(to )-105(cancel.)-605(How )-105(can )-105(you )-105(pr)18(event )-105(one )-105(user )-105(fr)15(om )-105(canceling)]TJ T* [(another user)-74(\325s print jobs?)]TJ /T1_1 1 Tf -3.065 -1.667 Td (21.6)Tj /T1_0 1 Tf 3.065 0 Td [(Add )-28(support )-28(for )-28(multiple )-28(printers )-28(to )-28(the )-28(printer )-28(spooler)]TJ 0.528 Tc 24.788 0 Td (.I)Tj 0 Tc 1.115 0 Td [(nclude )-28(a )-28(way )-28(to )-28(move )-28(print )-28(jobs)]TJ -25.903 -1.222 Td [(fr)18(om one printer to another)74(.)]TJ /T1_1 1 Tf -3.065 -1.667 Td (21.7)Tj /T1_0 1 Tf 3.065 0 Td [(In )-137(the )-137(printer )-137(daemon, )-137(explain )-137(why )-137(we )-137(don\325t )-137(need )-137(to )-137(pr)18(od )-137(the )-137(printer )-137(thr)18(ead )-137(when )-137(the)]TJ T* [(signal handling thr)18(ead catches)]TJ /TT1 1 Tf 13.713 0 Td (SIGHUP)Tj /T1_0 1 Tf 3.85 0 Td (and sets)Tj /TT1 1 Tf 3.846 0 Td (reread)Tj /T1_0 1 Tf 3.85 0 Td (to 1.)Tj /T1_1 1 Tf -28.324 -1.667 Td (21.8)Tj /T1_0 1 Tf 3.065 0 Td [(In )-34(the)]TJ /TT1 1 Tf 2.874 0 Td (printer_status)Tj /T1_0 1 Tf 8.684 0 Td [(function, )-34(we )-34(sear)18(ch )-34(for )-34(the )-34(length )-34(of )-34(the )-34(IPP )-34(message )-34(by )-34(looking)]TJ -11.558 -1.222 Td [(for )-63(the)]TJ /TT1 1 Tf 3.287 0 Td (Content-Length)Tj /T1_0 1 Tf 8.713 0 Td [(HTTP )-63(attribute.)-563(This )-63(technique )-63(won\325t )-63(work )-63(with )-63(a )-63(printer )-63(that)]TJ -0.018 Tc -12 -1.222 Td (re)Tj 0 Tc 0.856 0 Td [(sponds )-220(using )-220(a )-220(chunked )-220(transfer )-220(encoding.)-721(Check )-220(RFC )-220(2616 )-220(to )-220(see )-220(how )-220(a )-220(chunked)]TJ -0.856 -1.222 Td [(message )-16(is )-16(formatted )-16(and )-16(then )-16(modify)]TJ /TT1 1 Tf 17.335 0 Td (printer_status)Tj /T1_0 1 Tf 8.666 0 Td [(to )-16(support )-16(this )-16(form )-16(of )-16(r)19(esponse)]TJ -26.001 -1.222 Td (as well.)Tj /T1_1 1 Tf -3.065 -1.667 Td (21.9)Tj /T1_0 1 Tf 3.065 0 Td [(In )-309(the)]TJ /TT1 1 Tf 3.425 0 Td (update_jobno)Tj /T1_0 1 Tf 7.759 0 Td [(function, )-309(when )-309(the )-309(next )-309(job )-309(number )-309(wraps )-309(ar)18(ound )-309(fr)18(om )-309(the)]TJ -11.184 -1.222 Td [(maximum )-131(positive )-131(value )-131(to )-131(1 )-131(\(see)]TJ /TT1 1 Tf 15.891 0 Td (get_newjobno)Tj /T1_0 1 Tf 7.581 0 Td [(to )-131(see )-131(how )-131(this )-131(can )-131(happen\), )-131(we )-131(can)]TJ -23.472 -1.222 Td [(write )-231(a )-231(smaller )-231(number )-231(over )-231(a )-231(lar)15(ger )-231(one.)-731(This )-231(can )-231(r)18(esult )-231(in )-231(the )-231(daemon )-231(r)18(eading )-231(an)]TJ T* [(incorr)18(ect number when it r)18(estarts. )-250(What)-250(is a simple solution to this pr)18(oblem?)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47241 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (795)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(names )-230(ar)]TJ 0.4798 Tc 4.225 0 Td (el)Tj 0 Tc 1.25 0 Td [(isted )-230(in)]TJ /TT0 1 Tf 3.964 0 Td (/etc/hosts)Tj /T1_0 1 Tf 6.48 0 Td [(or )-230(r)18(egister)18(ed )-230(with )-230(whatever )-230(name )-230(service )-230(we )-230(ar)19(e)]TJ -15.918 -1.2 Td [(using, so that we can translate the names to network addr)18(esses.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-263(c)]TJ 0 Tc 2.16 0 Td [(an )-79(r)8(un )-79(the)]TJ /TT0 1 Tf 5.027 0 Td (print)Tj /T1_0 1 Tf 3.329 0 Td [(command )-79(on )-79(the )-79(same )-79(machine )-79(wher)]TJ 0.3287 Tc 16.926 0 Td (et)Tj 0 Tc 1.134 0 Td [(he )-79(printer )-79(spooling)]TJ -30.376 -1.2 Td [(daemon )-60(is )-60(r)8(unning, )-60(or )-60(we )-60(can )-60(r)8(un )-60(it )-60(fr)18(om )-60(any )-60(machine )-60(on )-60(the )-60(same )-60(network.)]TJ -0.092 Tc 35.328 0 Td [(We )-244(o)]TJ 0 Tc 2.243 0 Td (nly)Tj -37.571 -1.2 Td [(need )-120(to )-120(con\336gur)]TJ 0.3696 Tc 7.475 0 Td (et)Tj 0 Tc 1.175 0 Td (he)Tj /TT0 1 Tf 1.431 0 Td (printserver)Tj /T1_0 1 Tf 6.97 0 Td [(\336eld )-119(in)]TJ /TT0 1 Tf 3.598 0 Td (/etc/printer.conf)Tj /T1_0 1 Tf 10.57 0 Td [(in )-119(the )-119(latter )-119(case,)]TJ -31.217 -1.2 Td [(because only the daemon needs to know the name of the printer)74(.)]TJ /TT1 1 Tf -3.6 -2.88 Td (Security)Tj /T1_0 1 Tf 3.6 -2.16 Td [(Pr)18(ograms )-191(that )-191(r)8(un )-191(with )-191(super)8(user )-191(privileges )-191(have )-191(the )-191(potential )-191(to )-191(open )-191(a )-191(computer)]TJ 0 -1.2 TD [(system )-205(up )-205(to )-205(attack.)-705(Such )-205(pr)18(ograms )-205(usually )-205(ar)18(en\325t )-205(mor)]TJ 0.4546 Tc 26.009 0 Td (ev)Tj 0 Tc 1.499 0 Td [(ulnerable )-204(than )-204(any )-204(other)]TJ -27.507 -1.2 Td [(pr)18(ogram, )-182(but )-182(when )-182(compr)17(omised )-182(can )-182(lead )-182(to )-182(attackers )-182(obtaining )-182(full )-182(access )-182(to )-182(your)]TJ 0 -1.2 Td (system.)Tj 1.8 -1.2 Td [(The )-54(printer )-54(spooling )-54(daemon )-54(in )-54(this )-54(chapter )-54(starts )-54(out )-54(with )-54(super)8(user )-54(privileges )-54(in)]TJ -1.8 -1.2 Td [(this )-56(example )-56(to )-56(be )-56(able )-56(to )-56(bind )-56(a )-56(socket )-56(to )-56(a )-56(privileged )-56(TCP )-56(port )-56(number)]TJ 0.5559 Tc 32.71 0 Td (.T)Tj 0.3059 Tc 1.327 0 Td (om)Tj 0 Tc 1.735 0 Td [(ake )-56(the)]TJ -35.772 -1.2 Td (daemon less vulnerable to attack, we can)Tj 0.883 Tc 1.8 -1.8 Td (\245D)Tj 0 Tc 2.263 0 Td [(esign )-59(the )-59(daemon )-59(to )-59(conform )-59(to )-59(the )-59(principles )-59(of )-59(least )-59(privilege )-59(\(Section )-59(8.1)56(1\).)]TJ -0.774 -1.2 Td [(After )-55(we )-55(obtain )-55(a )-55(socket )-55(bound )-55(to )-55(a )-55(privileged )-55(port )-55(addr)15(ess, )-55(we )-55(can )-55(change )-55(the)]TJ T* [(user )-267(and )-267(gr)19(oup )-267(IDs )-267(of )-267(the )-267(daemon )-267(to )-267(something )-267(other )-267(than)]TJ /TT0 1 Tf 29.221 0 Td (root)Tj /T1_0 1 Tf 2.917 0 Td (\()Tj /TT0 1 Tf (lp)Tj /T1_0 1 Tf 0.5166 Tc (,f)Tj 0 Tc 2.633 0 Td (or)Tj -34.77 -1.2 Td [(example\). )-285(All)-286(the )-35(\336les )-35(and )-35(dir)18(ectories )-35(used )-35(to )-35(stor)]TJ 0.2854 Tc 22.429 0 Td (eq)Tj 0 Tc 1.324 0 Td [(ueued )-35(print )-35(jobs )-35(should )-35(be)]TJ -23.753 -1.2 Td [(owned )-67(by )-67(this )-67(nonprivileged )-67(user)]TJ 0.5671 Tc 15.148 0 Td (.T)Tj 0 Tc 1.43 0 Td [(his )-67(way)]TJ 0.3171 Tc 3.393 0 Td (,t)Tj 0 Tc 0.893 0 Td [(he )-67(daemon, )-67(if )-67(compr)18(omised, )-67(will)]TJ -20.865 -1.2 Td [(pr)18(ovide )-119(the )-119(attacker )-119(with )-119(access )-119(only )-119(to )-119(the )-119(printing )-119(subsystem.)-619(This )-119(is )-119(still )-119(a)]TJ T* [(concern, )-196(but )-196(it )-196(is )-196(far )-196(less )-196(serious )-196(than )-196(an )-196(attacker )-196(getting )-196(full )-196(access )-196(to )-196(your)]TJ T* (system.)Tj 0.883 Tc -1.489 -1.6 Td (\245A)Tj 0 Tc 2.267 0 Td [(udit )-66(the )-66(daemon\325s )-66(sour)18(ce )-66(code )-66(for )-66(all )-66(known )-66(potential )-66(vulnerabilities, )-66(such )-66(as)]TJ -0.778 -1.2 Td [(buf)18(fer overr)8(uns.)]TJ 0.883 Tc -1.489 -1.6 Td (\245L)Tj 0 Tc 2.1 0 Td [(og )-132(unexpected )-132(or )-132(suspicious )-132(behavior )-132(so )-132(that )-132(an )-132(administrator )-132(can )-132(take )-132(note)]TJ -0.611 -1.2 Td [(and investigate further)74(.)]TJ /TT1 1 Tf 11.9993 0 0 11.9993 93.5951 292.5824 Tm [(21.5 )-776(Sour)20(ce )-278(Code)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5929 268.5839 Tm [(The )-20(sour)18(ce )-20(code )-20(for )-20(this )-20(chapter )-20(comprises )-20(\336ve )-20(\336les, )-20(not )-20(including )-20(some )-20(of )-20(the )-20(common)]TJ T* [(library r)18(outines we\325ve used in earlier chapters:)]TJ /TT0 1 Tf 1.8 -1.8 Td (ipp.h)Tj /T1_0 1 Tf 6 0 Td (Header \336le containing IPP de\336nitions)Tj /TT0 1 Tf -6 -1.6 Td (print.h)Tj /T1_0 1 Tf 6 0 Td [(Header )-83(containing )-83(common )-83(constants, )-83(data )-83(str)9(uctur)]TJ 0.3328 Tc 23.376 0 Td (ed)Tj 0 Tc 1.423 0 Td [(e\336nitions, )-83(and)]TJ -24.798 -1.2 Td [(utility r)18(outine declarations)]TJ /TT0 1 Tf -6 -1.6 Td (util.c)Tj /T1_0 1 Tf 6 0 Td [(Utility r)18(outines used by the two pr)18(ograms)]TJ /TT0 1 Tf -6 -1.6 Td (print.c)Tj /T1_0 1 Tf 6 0 Td [(The C sour)18(ce \336le for the command used to print a \336le)]TJ /TT0 1 Tf -6 -1.6 Td (printd.c)Tj /T1_0 1 Tf 6 0 Td [(The C sour)18(ce \336le for the printer spooling daemon)]TJ -0.092 Tc -7.8 -1.8 Td [(We )-184(w)]TJ 0 Tc 2.471 0 Td [(ill study each \336le in the or)18(der listed.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47242 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (262)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Example)Tj /T1_1 1 Tf 0.522 Tc 3.6 -2.4 Td (Ac)Tj 0 Tc 1.744 0 Td [(ommon )-272(use )-272(for )-272(the )-272(optional )-272(ar)18(gument )-272(following )-272(the )-272(interpr)18(eter)]TJ /T1_2 1 Tf 30.681 0 Td (pathname)Tj /T1_1 1 Tf 4.466 0 Td [(is )-272(to)]TJ -36.891 -1.2 Td [(specify )-138(the)]TJ /TT1 1 Tf 5.292 0 Td (-f)Tj /T1_1 1 Tf 1.588 0 Td [(option )-138(for )-138(pr)18(ograms )-138(that )-138(support )-138(this )-138(option.)-638(For )-138(example, )-138(an)]TJ /TT1 1 Tf 29.154 0 Td (awk)Tj /T1_1 1 Tf 1.8 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj -38.667 -1.24 Td [(pr)18(ogram can be executed as)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.5914 604.2637 Tm (awk -f myfile)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5925 586.2648 Tm (which tells)Tj /TT1 1 Tf 5.044 0 Td (awk)Tj /T1_1 1 Tf 2.05 0 Td [(to r)18(ead the)]TJ /TT1 1 Tf 4.976 0 Td (awk)Tj /T1_1 1 Tf 2.05 0 Td [(pr)18(ogram fr)18(om the \336le)]TJ /TT1 1 Tf 9.759 0 Td (myfile)Tj /T1_1 1 Tf (.)Tj 7.9995 0 0 7.9995 183.5891 566.266 Tm [(Systems )-129(derived )-129(fr)18(om )-129(UNIX )-129(System )-129(V )-129(often )-129(include )-129(two )-129(versions )-129(of )-129(the)]TJ /TT1 1 Tf 33.507 0 Td (awk)Tj /T1_1 1 Tf 2.179 0 Td [(language. )-379(On)]TJ -35.686 -1.25 Td [(these )-377(systems,)]TJ /TT1 1 Tf 7.309 0 Td (awk)Tj /T1_1 1 Tf 2.427 0 Td [(is )-377(often )-377(called )-377(\324)38(\324old)]TJ /TT1 1 Tf 10.071 0 Td (awk)Tj /T1_1 1 Tf -0.037 Tc [(\325\325 )-451(a)]TJ 0 Tc 3.446 0 Td [(nd )-377(corr)18(esponds )-377(to )-377(the )-377(original )-377(version)]TJ -23.252 -1.25 Td [(distributed )-2(with )-2(V)111(ersion )-2(7.)-502(In )-2(contrast,)]TJ /TT1 1 Tf 17.497 0 Td (nawk)Tj /T1_1 1 Tf 2.652 0 Td (\(new)Tj /TT1 1 Tf 2.48 0 Td (awk)Tj /T1_1 1 Tf 0.2525 Tc (\)c)Tj 0 Tc 2.829 0 Td [(ontains )-2(numer)18(ous )-2(enhancements )-2(and)]TJ -25.459 -1.25 Td [(corr)18(esponds )-29(to )-29(the )-29(language )-29(described )-29(in )-29(Aho, )-29(Kernighan, )-29(and )-29(W)91(einber)18(ger)]TJ 33.597 0.04 Td ([)Tj 0.333 -0.04 Td (1988)Tj 2 0.04 Td (])Tj 0.529 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.392 0 Td [(his )-29(newer)]TJ -37.655 -1.25 Td [(version )-66(pr)18(ovides )-66(access )-66(to )-66(the )-66(command)]TJ 18.177 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-66(ar)18(guments, )-66(which )-66(we )-66(need )-66(for )-66(the )-66(example )-66(that)]TJ -18.51 -1.25 Td [(follows. )-250(Solaris)-250(10 pr)18(ovides both versions.)]TJ 0 -2.125 TD (The)Tj /TT1 1 Tf 1.942 0 Td (awk)Tj /T1_1 1 Tf 2.068 0 Td [(pr)18(ogram )-18(is )-18(one )-18(of )-18(the )-18(utilities )-18(included )-18(by )-18(POSIX )-18(in )-18(its )-18(1003.2 )-18(standar)18(d, )-18(which )-18(is )-18(now)]TJ -4.011 -1.25 Td [(part )-175(of )-175(the )-175(base )-175(POSIX.1 )-175(speci\336cation )-175(in )-175(the )-175(Single )-175(UNIX )-175(Speci\336cation.)-675(This )-175(utility )-175(is )-175(also)]TJ 0 -1.25 TD [(based on the language described in Aho, Kernighan, and W)92(einber)18(ger)]TJ 30.7 0.04 Td ([)Tj 0.333 -0.04 Td (1988)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td (.)Tj -33.366 -2.125 Td [(The )-122(version )-122(of)]TJ /TT1 1 Tf 6.95 0 Td (awk)Tj /T1_1 1 Tf 2.172 0 Td [(in )-122(Mac )-122(OS )-122(X )-122(10.6.8 )-122(is )-122(based )-122(on )-122(the )-122(Bell )-122(Laboratories )-122(version, )-122(which )-122(has)]TJ -9.122 -1.25 Td [(been )-63(placed )-63(in )-63(the )-63(public )-63(domain.)-562(Fr)18(eeBSD )-63(8.0 )-63(and )-63(some )-63(Linux )-63(distributions )-63(ship )-63(with )-63(GNU)]TJ /TT1 1 Tf 0 -1.25 Td (awk)Tj /T1_1 1 Tf 0.2519 Tc (,c)Tj 0 Tc 2.746 0 Td (alled)Tj /TT1 1 Tf 2.424 0 Td (gawk)Tj /T1_1 1 Tf 0.2519 Tc (,w)Tj 0 Tc 3.736 0 Td [(hich )-2(is )-2(linked )-2(to )-2(the )-2(name)]TJ /TT1 1 Tf 11.638 0 Td (awk)Tj /T1_1 1 Tf (.)Tj /TT1 1 Tf 2.552 0 Td (gawk)Tj /T1_1 1 Tf 2.652 0 Td [(conforms )-2(to )-2(the )-2(POSIX )-2(standar)18(d, )-2(but)]TJ -25.747 -1.25 Td [(also )-4(includes )-4(other )-4(extensions.)-504(Because )-4(they )-4(ar)]TJ 0.2546 Tc 20.85 0 Td (em)Tj 0 Tc 1.617 0 Td (or)Tj 0.2546 Tc 0.923 0 Td (eu)Tj 0 Tc 1.337 0 Td (p-to-date,)Tj /TT1 1 Tf 4.56 0 Td (gawk)Tj /T1_1 1 Tf 2.655 0 Td [(and )-5(the )-5(version )-5(of)]TJ /TT1 1 Tf 8.26 0 Td (awk)Tj /T1_1 1 Tf -40.2 -1.25 Td [(fr)18(om )-56(Bell )-56(Laboratories )-56(ar)]TJ 0.306 Tc 11.172 0 Td (ep)Tj -0.018 Tc 1.386 0 Td (re)Tj 0 Tc 0.856 0 Td [(ferr)18(ed )-56(to )-56(either)]TJ /TT1 1 Tf 7.016 0 Td (nawk)Tj /T1_1 1 Tf 2.706 0 Td [(or )-56(old)]TJ /TT1 1 Tf 3.001 0 Td (awk)Tj /T1_1 1 Tf 0.5559 Tc (.\()Tj 0 Tc 2.939 0 Td [(The )-56(Bell )-56(Labs )-56(version )-56(of)]TJ /TT1 1 Tf 11.124 0 Td (awk)Tj /T1_1 1 Tf -40.2 -1.25 Td (is available at)Tj /TT1 1 Tf 6.261 0 Td (http://cm.bell-labs.com/cm/cs/awkbook/index.html)Tj /T1_1 1 Tf (.\))Tj 9.9994 0 0 9.9994 129.5914 390.2766 Tm (Using the)Tj /TT1 1 Tf 4.518 0 Td (-f)Tj /T1_1 1 Tf 1.45 0 Td [(option with an interpr)18(eter \336le lets us write)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.5903 373.5776 Tm (#!/bin/awk -f)Tj /T1_2 1 Tf 0 -1.189 TD [(\(awk pr)18(ogram follows in the interpr)18(eter \336le\))]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5914 344.8793 Tm (For example, Figur)Tj 0.25 Tc 8.379 0 Td (e8)Tj 0 Tc 1.229 0 Td (.21 shows)Tj /TT1 1 Tf 4.56 0 Td (/usr/local/bin/awkexample)Tj /T1_1 1 Tf 15.25 0 Td [(\(an interpr)18(eter \336le\).)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3377.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 328.1596 Tm (#!/usr/bin/awk -f)Tj 0.6 Tc 0 -1.189 TD (#N)Tj 0 Tc 1.8 0 Td (ote: on Solaris, use nawk instead)Tj -1.8 -1.189 Td (BEGIN {)Tj 2.4 -1.189 Td (for \(i = 0; i < ARGC; i++\))Tj 2.4 -1.189 Td (printf "ARGV[%d] = %s\\n", i, ARGV[i])Tj -2.4 -1.189 Td (exit)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2592.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 235.2616 243.1542 Tm (Figure 8.21)Tj /T1_1 1 Tf 5.695 0 Td (An)Tj /TT1 1 Tf 1.61 0 Td (awk)Tj /T1_1 1 Tf 2.05 0 Td [(pr)18(ogram as an interpr)18(eter \336le)]TJ 9.9982 0 0 9.9982 129.577 219.1585 Tm [(If )-313(one )-313(of )-313(the )-313(path )-313(pr)18(e\336xes )-313(is)]TJ /TT1 1 Tf 14.689 0 Td (/usr/local/bin)Tj /T1_1 1 Tf [(,)-563(we)-563(can )-313(execute )-313(the )-313(pr)18(ogram )-313(in)]TJ -14.689 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e8)Tj 0 Tc 1.229 0 Td (.21 \(assuming that we\325ve turned on the execute bit for the \336le\) \ as)Tj /TT1 1 Tf 8.9984 0 0 8.9984 147.5738 190.4637 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (awkexample file1 FILENAME2 f3)Tj /TT1 1 Tf -1.2 -1.189 Td (ARGV[0] = awk)Tj 0 -1.189 TD (ARGV[1] = file1)Tj T* (ARGV[2] = FILENAME2)Tj T* (ARGV[3] = f3)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47243 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(3.3)]TJ /TT0 1 Tf 30.786 0 Td (open)Tj /T1_0 1 Tf 2.9 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (openat)Tj /T1_0 1 Tf 4.1 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (65)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(3. )-633(The)]TJ /T1_2 1 Tf 3.81 0 Td (path)Tj /T1_0 1 Tf 2.28 0 Td [(parameter )-253(speci\336es )-253(a )-253(r)18(elative )-253(pathname )-253(and )-253(the)]TJ /T1_2 1 Tf 23.17 0 Td (fd)Tj /T1_0 1 Tf 1.281 0 Td [(parameter )-253(has )-253(the)]TJ -28.909 -1.2 Td [(special )-199(value)]TJ /TT0 1 Tf 6.367 0 Td (AT_FDCWD)Tj /T1_0 1 Tf 0.6993 Tc (.I)Tj 0.4493 Tc 6.086 0 Td (nt)Tj 0 Tc 1.357 0 Td [(his )-199(case, )-199(the )-199(pathname )-199(is )-199(evaluated )-199(starting )-199(in )-199(the)]TJ -13.81 -1.2 Td [(curr)18(ent )-27(working )-27(dir)18(ectory )-27(and )-27(the)]TJ /TT0 1 Tf 15.455 0 Td (openat)Tj /T1_0 1 Tf 3.877 0 Td [(function )-27(behaves )-27(like )-27(the)]TJ /TT0 1 Tf 11.401 0 Td (open)Tj /T1_0 1 Tf 2.677 0 Td (function.)Tj -33.243 -1.8 Td (The)Tj /TT0 1 Tf 2.064 0 Td (openat)Tj /T1_0 1 Tf 3.99 0 Td [(function )-140(is )-140(one )-140(of )-140(a )-140(class )-140(of )-140(functions )-140(added )-140(to )-140(the )-140(latest )-140(version )-140(of)]TJ -7.854 -1.2 Td [(POSIX.1 )-375(to )-375(addr)18(ess )-375(two )-375(pr)18(oblems. )-625(First,)-625(it )-375(gives )-375(thr)18(eads )-375(a )-375(way )-375(to )-375(use )-375(r)18(elative)]TJ 0 -1.2 Td [(pathnames )-202(to )-202(open )-202(\336les )-202(in )-202(dir)19(ectories )-202(other )-202(than )-202(the )-202(curr)18(ent )-202(working )-202(dir)20(ectory)]TJ 0.7017 Tc 36.846 0 Td (.A)Tj 0 Tc 1.73 0 Td (s)Tj -38.576 -1.2 Td [(we\325ll )-54(see )-54(in )-54(Chapter )-54(1)55(1, )-54(all )-54(thr)18(eads )-54(in )-54(the )-54(same )-54(pr)17(ocess )-54(shar)]TJ 0.3042 Tc 26.665 0 Td (et)Tj 0 Tc 1.109 0 Td [(he )-54(same )-54(curr)18(ent )-54(working)]TJ -27.774 -1.2 Td [(dir)18(ectory)111(,)-336(so)-336(this )-86(makes )-86(it )-86(dif)18(\336cult )-86(for )-86(multiple )-86(thr)18(eads )-86(in )-86(the )-86(same )-86(pr)18(ocess )-86(to )-86(work )-86(in)]TJ 0 -1.2 TD [(dif)18(fer)18(ent )-18(dir)18(ectories )-18(at )-18(the )-18(same )-18(time.)-516(Second, )-18(it )-18(pr)18(ovides )-18(a )-18(way )-18(to )-18(avoid )-18(time-of-check-)]TJ -0 -1.2 Td (to-time-of-use)Tj 6.485 0.04 Td (\()Tj -0.018 Tc 0.333 -0.04 Td (TO)Tj 0 Tc 1.381 0 Td [(CTT)18(OU)]TJ 3.481 0.04 Td (\))Tj 0.583 -0.04 Td [(err)18(ors.)]TJ -10.463 -1.2 Td [(The )-72(basic )-72(idea )-72(behind )-72(T)16(OCTT)18(OU )-72(err)18(ors )-72(is )-72(that )-72(a )-72(pr)18(ogram )-72(is )-72(vulnerable )-72(if )-72(it )-72(makes)]TJ -1.8 -1.2 Td [(two )-133(\336le-based )-133(function )-133(calls )-133(wher)]TJ 0.3836 Tc 15.444 0 Td (et)Tj 0 Tc 1.189 0 Td [(he )-134(second )-134(call )-134(depends )-134(on )-134(the )-134(r)18(esults )-134(of )-134(the )-134(\336rst)]TJ -16.633 -1.2 Td [(call. )-392(Because)-393(the )-142(two )-142(calls )-142(ar)]TJ 0.3923 Tc 13.448 0 Td (en)Tj 0 Tc 1.453 0 Td [(ot )-142(atomic, )-142(the )-142(\336le )-142(can )-142(change )-142(between )-142(the )-142(two )-142(calls,)]TJ -14.901 -1.2 Td [(ther)18(eby )-68(invalidating )-68(the )-68(r)17(esults )-68(of )-68(the )-68(\336rst )-68(call, )-68(leading )-68(to )-68(a )-68(pr)18(ogram )-68(err)14(or)]TJ 0.5684 Tc 33.319 0 Td (.T)Tj 0 Tc 1.413 0 Td [(OCTT)18(OU)]TJ -34.733 -1.2 Td [(err)18(ors )-71(in )-71(the )-71(\336le )-71(system )-71(namespace )-71(generally )-71(deal )-71(with )-71(attempts )-71(to )-71(subvert )-71(\336le )-71(system)]TJ T* [(permissions )-203(by )-203(tricking )-203(a )-203(privileged )-203(pr)18(ogram )-203(into )-203(either )-203(r)18(educing )-203(permissions )-203(on )-203(a)]TJ T* [(privileged )-134(\336le )-134(or )-134(modifying )-134(a )-134(privileged )-134(\336le )-134(to )-134(open )-134(up )-134(a )-134(security )-134(hole.)]TJ -0.092 Tc 33.654 0 Td (We)Tj 0.3842 Tc 1.387 0 Td (ia)Tj 0 Tc 1.175 0 Td [(nd )-134(Pu)]TJ -36.216 -1.16 Td ([)Tj 0.333 -0.04 Td (2005)Tj 2 0.04 Td (])Tj 0.583 -0.04 Td [(discuss T)18(OCTT)18(OU weaknesses in the UNIX \336le system interface.)]TJ /TT1 1 Tf -6.516 -2.4 Td [(Filename and P)30(athname T)80(runcation)]TJ /T1_0 1 Tf 3.6 -1.8 Td [(What )-24(happens )-24(if)]TJ /TT0 1 Tf 7.624 0 Td (NAME_MAX)Tj /T1_0 1 Tf 5.074 0 Td [(is )-24(14 )-24(and )-24(we )-24(try )-24(to )-24(cr)18(eate )-24(a )-24(new )-24(\336le )-24(in )-24(the )-24(curr)18(ent )-24(dir)14(ectory)]TJ -12.698 -1.2 Td [(with )-23(a )-23(\336lename )-23(containing )-23(15 )-23(characters?)]TJ -0.09 Tc 18.875 0 Td (Tr)Tj 0 Tc 0.918 0 Td (aditionally)Tj 0.2734 Tc 4.674 0 Td (,e)Tj 0 Tc 1.002 0 Td [(arly )-23(r)18(eleases )-23(of )-23(System )-23(V)]TJ 0.2734 Tc 10.954 0 Td (,s)Tj 0 Tc 0.947 0 Td (uch)Tj -37.371 -1.2 Td [(as )-259(SVR2, )-259(allowed )-259(this )-259(to )-259(happen, )-259(silently )-259(tr)11(uncating )-259(the )-259(\336lename )-259(beyond )-259(the )-259(14th)]TJ T* (character)Tj 0.5242 Tc 3.991 0 Td (.B)Tj 0 Tc 1.385 0 Td [(SD-derived )-24(systems, )-24(in )-24(contrast, )-24(r)18(eturned )-24(an )-24(err)18(or )-24(status, )-24(with)]TJ /TT0 1 Tf 27.975 0 Td (errno)Tj /T1_0 1 Tf 3.274 0 Td [(set )-24(to)]TJ /TT0 1 Tf -36.625 -1.2 Td (ENAMETOOLONG)Tj /T1_0 1 Tf 0.5894 Tc (.S)Tj 0 Tc 8.564 0 Td [(ilently )-89(tr)8(uncating )-89(the )-89(\336lename )-89(pr)18(esents )-89(a )-89(pr)18(oblem )-89(that )-89(af)18(fects )-89(mor)14(e)]TJ -8.564 -1.2 Td [(than )-28(simply )-28(the )-28(cr)18(eation )-28(of )-28(new )-28(\336les.)-527(If)]TJ /TT0 1 Tf 17.933 0 Td (NAME_MAX)Tj /T1_0 1 Tf 5.078 0 Td [(is )-28(14 )-28(and )-28(a )-28(\336le )-28(exists )-28(whose )-28(name )-28(is)]TJ -23.011 -1.2 Td [(exactly )-60(14 )-60(characters, )-60(any )-60(function )-60(that )-60(accepts )-60(a )-60(pathname )-60(ar)18(gument, )-60(such )-60(as)]TJ /TT0 1 Tf 35.349 0 Td (open)Tj /T1_0 1 Tf 2.71 0 Td (or)Tj /TT0 1 Tf -38.059 -1.2 Td (stat)Tj /T1_0 1 Tf 0.3433 Tc (,h)Tj 0 Tc 3.575 0 Td [(as )-93(no )-93(way )-93(to )-93(determine )-93(what )-93(the )-93(original )-93(name )-93(of )-93(the )-93(\336le )-93(was, )-93(as )-93(the )-93(original)]TJ -3.575 -1.2 Td [(name might have been tr)8(uncated.)]TJ -0.055 Tc 1.8 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-22(POSIX.1, )-22(the )-22(constant)]TJ /TT0 1 Tf 11.032 0 Td (_POSIX_NO_TRUNC)Tj /T1_0 1 Tf 9.272 0 Td [(determines )-22(whether )-22(long )-22(\336lenames)]TJ -23.34 -1.2 Td [(and )-25(long )-25(components )-25(of )-25(pathnames )-25(ar)]TJ 0.2747 Tc 17.088 0 Td (et)Tj -0.008 Tc 1.08 0 Td (ru)Tj 0 Tc 0.99 0 Td [(ncated )-25(or )-25(an )-25(err)18(or )-25(is )-25(r)20(eturned. )-275(As)-274(we )-25(saw )-25(in)]TJ -19.158 -1.2 Td [(Chapter )-161(2, )-161(this )-161(value )-161(can )-161(vary )-161(based )-161(on )-161(the )-161(type )-161(of )-161(the )-161(\336le )-161(system, )-161(and )-161(we )-161(can )-161(use)]TJ /TT0 1 Tf T* (fpathconf)Tj /T1_0 1 Tf 5.65 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (pathconf)Tj /T1_0 1 Tf 5.05 0 Td [(to query a dir)18(ectory to see which behavior is supported.)]TJ 7.9995 0 0 7.9995 183.5891 254.9847 Tm [(Whether )-136(an )-136(err)17(or )-136(is )-136(r)18(eturned )-136(is )-136(lar)18(gely )-136(historical.)-636(For )-136(example, )-136(SVR4)]TJ 31.814 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-136(systems )-136(do )-136(not)]TJ -32.147 -1.25 Td [(generate )-124(an )-124(err)19(or )-124(for )-124(the )-124(traditional )-124(System )-124(V )-124(\336le )-124(system,)]TJ /TT0 1 Tf 26.761 0 Td (S5)Tj /T1_0 1 Tf 0.6239 Tc (.F)Tj 0 Tc 2.63 0 Td [(or )-124(the )-124(BSD-style )-124(\336le )-124(system)]TJ -29.39 -1.25 Td [(\(known )-146(as)]TJ /TT0 1 Tf 5.15 0 Td (UFS)Tj /T1_0 1 Tf [(\), )-146(however)]TJ 0.3965 Tc 6.585 0 Td (,S)Tj 0 Tc 1.171 0 Td (VR4)Tj 1.89 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-146(systems )-146(do )-146(generate )-146(an )-146(err)16(or)]TJ 0.6465 Tc 16.218 0 Td (.F)Tj 0 Tc 1.452 0 Td (igur)Tj 0.3965 Tc 1.827 0 Td (e2)Tj 0 Tc 1.375 0 Td [(.20 )-146(illustrates)]TJ -36.004 -1.25 Td [(another )-105(example: )-105(Solaris )-105(will )-105(r)18(eturn )-105(an )-105(err)18(or )-105(for)]TJ /TT0 1 Tf 22.239 0 Td (UFS)Tj /T1_0 1 Tf 0.3553 Tc (,b)Tj 0 Tc 2.958 0 Td [(ut )-105(not )-105(for)]TJ /TT0 1 Tf 4.723 0 Td (PCFS)Tj /T1_0 1 Tf 0.3553 Tc (,t)Tj 0 Tc 3.331 0 Td [(he )-105(DOS-compatible)]TJ -33.252 -1.25 Td [(\336le )-132(system, )-132(as )-132(DOS )-132(silently )-132(tr)8(uncates )-132(\336lenames )-132(that )-132(don\325t )-132(\336t )-132(in )-132(an )-132(8.3 )-132(format.)-634(BSD-derived)]TJ 0 -1.25 TD [(systems and Linux always r)18(eturn an err)18(or)74(.)]TJ 9.9994 0 0 9.9994 147.5912 185.9888 Tm (If)Tj /TT0 1 Tf 1.094 0 Td (_POSIX_NO_TRUNC)Tj /T1_0 1 Tf 9.424 0 Td [(is )-174(in )-174(ef)19(fect,)]TJ /TT0 1 Tf 5.485 0 Td (errno)Tj /T1_0 1 Tf 3.424 0 Td [(is )-174(set )-174(to)]TJ /TT0 1 Tf 4.087 0 Td (ENAMETOOLONG)Tj /T1_0 1 Tf 0.4236 Tc (,a)Tj 0 Tc 8.374 0 Td [(nd )-174(an )-174(err)19(or)]TJ -33.686 -1.2 Td [(status is r)18(eturned if any \336lename component of the pathname exceeds)]TJ /TT0 1 Tf 31.141 0 Td (NAME_MAX)Tj /T1_0 1 Tf (.)Tj 7.9995 0 0 7.9995 183.5894 155.9906 Tm [(Most )-283(modern )-283(\336le )-283(systems )-283(support )-283(a )-283(maximum )-283(of )-283(255 )-283(characters )-283(for )-283(\336lenames.)-778(Because)]TJ T* [(\336lenames )-75(ar)]TJ 0.3255 Tc 5.446 0 Td (eu)Tj 0 Tc 1.408 0 Td [(sually )-76(shorter )-76(than )-76(this )-76(limit, )-76(this )-76(constraint )-76(tends )-76(to )-76(not )-76(pr)18(esent )-76(pr)18(oblems )-76(for)]TJ -6.853 -1.25 Td (most applications.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47244 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 436.143 708 Tm (Bibliography)Tj /T1_1 1 Tf 7.773 0 Td (949)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 8.9995 0 0 8.9995 129.5922 669.9598 Tm [(Comer)74(,)-288(D.)-288(E)]TJ 0.5379 Tc (.1)Tj 0 Tc 6.687 0 Td [(979. )-288(\324)37(\324The )-38(Ubiquitous )-38(B)]TJ 10.642 0.09 Td (-)Tj -0.09 Tc 0.333 -0.09 Td [(Tr )88(e)]TJ 0 Tc 1.379 0 Td [(e,\325)37(\325)]TJ /T1_2 1 Tf 1.536 0 Td [(ACM )-38(Computing )-38(Surveys)]TJ /T1_0 1 Tf 0.2878 Tc (,v)Tj 0 Tc 11.902 0 Td [(ol. 1)55(1, )-38(no.)-250(2, )-38(pp.)-250(121)]TJ 8.771 0.09 Td (\320)Tj 0.583 -0.09 Td (137)Tj -38.633 -1.222 Td (\(June\).)Tj 0.25 Tc 7.9995 0 0 7.9995 179.9893 645.6613 Tm (Ag)Tj 0 Tc 1.584 0 Td [(ood, compr)18(ehensive paper on B-tr)18(ees.)]TJ 8.9995 0 0 8.9995 129.5923 626.9624 Tm [(Date, )-184(C. )-184(J.)-684(2004.)]TJ /T1_2 1 Tf 8.357 0 Td [(An )-184(Intr)18(oduction )-184(to )-184(Database )-184(Systems, )-184(Eighth )-184(Edition)]TJ /T1_0 1 Tf 0.6841 Tc (.A)Tj 0 Tc 24.472 0 Td [(ddison-W)92(esley, )-184(Boston,)]TJ -29.629 -1.222 Td (MA.)Tj 0.25 Tc 7.9995 0 0 7.9995 179.9891 602.6638 Tm (Ac)Tj 0 Tc 1.472 0 Td [(ompr)18(ehensive overview of database systems.)]TJ 8.9995 0 0 8.9995 129.5921 583.965 Tm [(Evans, )-208(J.)-708(2006. )-458(\324)37(\324A )-208(Scalable )-208(Concurr)18(ent)]TJ /TT0 1 Tf 18.937 0 Td (malloc)Tj /T1_0 1 Tf 4.058 0 Td [(Implementation )-208(for )-208(Fr)18(eeBSD,\325)37(\325)]TJ /T1_2 1 Tf 14.324 0 Td [(Pr)18(oceedings )-208(of)]TJ -34.119 -1.222 Td (BSDCan)Tj /T1_0 1 Tf (.)Tj 0.3681 Tc 7.9995 0 0 7.9995 179.9891 559.6664 Tm (Ap)Tj 0 Tc 1.747 0 Td [(aper )-118(describing )-118(the)]TJ /TT0 1 Tf 9.092 0 Td (jemalloc)Tj /T1_0 1 Tf 5.168 0 Td [(implementation )-118(of )-118(the )-118(dynamic )-118(memory )-118(allocation )-118(library)]TJ -16.008 -1.25 Td [(used in Fr)18(eeBSD.)]TJ 8.9995 0 0 8.9995 129.5921 530.9681 Tm [(Fagin, )-150(R., )-150(Niever)18(gelt, )-150(J., )-150(Pippenger)]TJ 0.3999 Tc 15.774 0 Td (,N)Tj 0 Tc 1.481 0 Td [(., )-150(and )-150(Str)18(ong, )-150(H. )-150(R.)-649(1979. )-400(\324)37(\324Extendible )-150(Hashing)]TJ 0.0833 Tc 22.012 0 Td [(\321A )17(F)]TJ 0 Tc 2.817 0 Td (ast)Tj -38.883 -1.222 Td [(Access )-522(Method )-522(for )-522(Dynamic )-522(Files,\325)37(\325)]TJ /T1_2 1 Tf 18.458 0 Td [(ACM )-522(T)111(ransactions )-522(on )-522(Databases)]TJ /T1_0 1 Tf 0.7722 Tc (,v)Tj 0 Tc 16.439 0 Td [(ol. 4,)-772(no. 3,)]TJ -34.896 -1.222 Td (pp. 315)Tj 3.285 0.09 Td (\320)Tj 0.583 -0.09 Td (344 \(September\).)Tj 0.25 Tc 7.9995 0 0 7.9995 179.9887 495.6703 Tm (Ap)Tj 0 Tc 1.629 0 Td (aper describing the extendible hashing technique.)Tj 8.9995 0 0 8.9995 129.5917 476.9714 Tm [(Fowler)74(,)-299(G.)-299(S., )-49(Korn, )-49(D. )-49(G., )-49(and )-49(V)111(o, )-49(K. )-49(P)]TJ 0.5491 Tc 17.344 0 Td (.1)Tj 0 Tc 1.299 0 Td [(989. )-299(\324)37(\324An )-49(Ef)18(\336cient )-49(File )-49(Hierar)18(chy )-49(W)92(alker)74(,\325)37(\325)]TJ /T1_2 1 Tf 19.224 0 Td [(Pr)18(oceeding )-49(of)]TJ -34.667 -1.222 Td [(the 1989 Summer USENIX Confer)18(ence)]TJ /T1_0 1 Tf 0.25 Tc (,p)Tj 0 Tc 16.993 0 Td (p. 173)Tj 2.684 0.09 Td (\320)Tj 0.583 -0.09 Td [(188, Baltimor)18(e, MD.)]TJ 7.9995 0 0 7.9995 179.9891 452.6728 Tm [(Describes an alternative library function to traverse a \336le system hi\ erar)18(chy)111(.)]TJ 8.9995 0 0 8.9995 129.5921 433.974 Tm [(Gallmeister)74(,)-607(B.)-607(O)]TJ 0.8574 Tc 8.16 0 Td (.1)Tj 0 Tc 1.607 0 Td (995.)Tj /T1_2 1 Tf 2.607 0 Td [(POSIX.4: )-357(Pr)18(ogramming )-357(for )-357(the )-357(Real )-357(W)18(orld)]TJ /T1_0 1 Tf 0.8574 Tc (.O)Tj 0 Tc 21.226 0 Td [(\325Reilly )-357(& )-357(Associates,)]TJ -30.4 -1.222 Td (Sebastopol, CA.)Tj 7.9995 0 0 7.9995 179.9893 409.6754 Tm [(Describes the r)18(eal-time interfaces in the POSIX standar)18(d.)]TJ 8.9995 0 0 8.9995 129.5923 390.9765 Tm [(Gar\336nkel, )-256(S., )-256(Spaf)17(for)18(d, )-256(G., )-256(and )-256(Schwartz, )-256(A.)-758(2003.)]TJ /T1_2 1 Tf 24.645 0 Td [(Practical )-256(UNIX )-256(& )-256(Internet )-256(Security)]TJ 0.5063 Tc 15.654 0 Td (,T)Tj 0 Tc 1.367 0 Td (hird)Tj -38.466 -1.222 Td (Edition)Tj /T1_0 1 Tf 0.5 Tc (.O)Tj 0 Tc 4.536 0 Td (\325Reilly & Associates, Sebastopol, CA.)Tj 0.25 Tc 7.9995 0 0 7.9995 179.989 366.678 Tm (Ad)Tj 0 Tc 1.639 0 Td [(etailed book on UNIX System security)111(.)]TJ 8.9995 0 0 8.9995 129.592 347.9791 Tm (Ghemawat, S., and Menage, P)Tj 0.5 Tc 13.102 0 Td (.2)Tj 0 Tc 1.25 0 Td [(005. )-250(\324)37(\324TCMalloc: Thr)18(ead)]TJ 10.771 0.09 Td (-)Tj 0.333 -0.09 Td [(Caching Malloc.\325)37(\325)]TJ 0.4073 Tc 7.9995 0 0 7.9995 179.9893 334.6799 Tm (Ab)Tj 0 Tc 1.738 0 Td [(rief )-157(description )-157(of )-157(Google\325s)]TJ /TT0 1 Tf 12.879 0 Td (TCMalloc)Tj /T1_0 1 Tf 5.207 0 Td [(memory )-157(allocator)]TJ 0.6573 Tc 7.914 0 Td (.T)Tj 0 Tc 1.52 0 Td [(he )-157(description )-157(is )-157(available )-157(at)]TJ /TT0 1 Tf -29.259 -1.25 Td (http://goog-perftools.sourceforge.net/doc/tcmalloc.html)Tj /T1_0 1 Tf (.)Tj 8.9995 0 0 8.9995 129.5922 305.9816 Tm [(Gingell, )-253(R. )-253(A., )-253(Lee, )-253(M., )-253(Dang, )-253(X. )-253(T)74(., )-253(and )-253(W)92(eeks, )-253(M. )-253(S.)-752(1987. )-503(\324)37(\324Shar)18(ed )-253(Libraries )-253(in )-253(SunOS,\325)37(\325)]TJ /T1_2 1 Tf 3.2 -1.222 Td [(Pr)18(oceedings of the 1987 Summer USENIX Confer)18(ence)]TJ /T1_0 1 Tf 0.25 Tc (,p)Tj 0 Tc 23.049 0 Td (p. 131)Tj 2.684 0.09 Td (\320)Tj 0.583 -0.09 Td (145, Phoenix, AZ.)Tj 7.9995 0 0 7.9995 179.9898 281.6831 Tm [(Describes the implementation of shar)18(ed libraries in SunOS.)]TJ 8.9995 0 0 8.9995 129.5928 262.9842 Tm [(Gingell, )-51(R. )-51(A., )-51(Moran, )-51(J. )-51(P)129(., )-51(and )-51(Shannon, )-51(W)]TJ 0.3009 Tc 19.633 0 Td (.A)Tj 0.5509 Tc 1.329 0 Td (.1)Tj 0 Tc 1.301 0 Td [(987. )-301(\324)37(\324V)55(irtual )-51(Memory )-51(Ar)18(chitectur)18(e)-301(in)-301(SunOS,\325)37(\325)]TJ /T1_2 1 Tf -19.063 -1.222 Td [(Pr)18(oceedings of the 1987 Summer USENIX Confer)18(ence)]TJ /T1_0 1 Tf 0.25 Tc (,p)Tj 0 Tc 23.049 0 Td (p. 81)Tj 2.184 0.09 Td (\320)Tj 0.583 -0.09 Td (94, Phoenix, AZ.)Tj 7.9995 0 0 7.9995 179.99 238.6857 Tm [(Describes )-224(the )-224(initial )-224(implementation )-224(of )-224(the)]TJ /TT0 1 Tf 20.393 0 Td (mmap)Tj /T1_0 1 Tf 2.874 0 Td [(function )-224(and )-224(r)18(elated )-224(issues )-224(in )-224(the )-224(virtual)]TJ -23.267 -1.25 Td (memory design.)Tj 8.9995 0 0 8.9995 129.593 209.9874 Tm [(Goodheart, B.)-500(1991.)]TJ /T1_2 1 Tf 9.359 0 Td (UNIX Curses Explained)Tj /T1_0 1 Tf 0.5 Tc (.P)Tj -0.018 Tc 11.3 0 Td (re)Tj 0 Tc 0.856 0 Td [(ntice Hall, Englewood Clif)18(fs, NJ.)]TJ 0.25 Tc 7.9995 0 0 7.9995 179.9898 196.6882 Tm (Ac)Tj 0 Tc 1.472 0 Td [(omplete r)18(efer)18(ence on terminfo and the)]TJ /TT0 1 Tf 17.177 0 Td (curses)Tj /T1_0 1 Tf 3.85 0 Td (library)Tj 0.5 Tc 2.87 0 Td (.C)Tj 0 Tc 1.459 0 Td [(urr)18(ently out of print.)]TJ 8.9995 0 0 8.9995 129.5931 177.9893 Tm [(Hume, )-270(A. )-270(G.)-771(1988. )-520(\324)37(\324A )-270(T)92(ale )-270(of )-270(T)90(wo )-270(Gr)17(eps,\325)37(\325)]TJ /T1_2 1 Tf 21.804 0 Td (Softwar)Tj 0.5203 Tc 3.148 0 Td (eP)Tj 0 Tc 1.52 0 Td [(ractice )-270(and )-270(Experience)]TJ /T1_0 1 Tf 0.5203 Tc 9.596 0 Td (,v)Tj 0 Tc 1.335 0 Td [(ol. 18,)-520(no. 1)55(1,)]TJ -34.203 -1.222 Td (pp. 1063)Tj 3.785 0.09 Td (\320)Tj 0.583 -0.09 Td (1072.)Tj 7.9995 0 0 7.9995 179.99 153.6908 Tm [(An inter)18(esting paper that discusses performance impr)18(ovements in)]TJ /TT0 1 Tf 29.453 0 Td (grep)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47245 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(2.2)]TJ 34.152 0 Td [(UNIX )-250(Standar)18(dization)]TJ /T1_1 1 Tf 12.181 0 Td (27)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1080.25 6670.25 cm 0 0 m 4092 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 178.3893 658.9605 Tm [(Fr)18(eeBSD )-250(Linux )-250(Mac)-250(OS X)-500(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-1827(3.2.0)-1735(10.6.8 )-2170(10)]TJ -7.323 0.625 Td (Header)Tj 32.267 0 Td (Description)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1080.25 6450.25 cm 0 0 m 4092 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1080.25 6430.25 cm 0 0 m 4092 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 111.9866 634.9238 Tm ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245v)Tj 0 Tc 2.854 0 Td [(erify pr)18(ogram assertion)]TJ /TT0 1 Tf -24.609 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245c)Tj 0 Tc 2.733 0 Td (omplex arithmetic support)Tj /TT0 1 Tf -24.488 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245c)Tj 0 Tc 2.733 0 Td (haracter classi\336cation and mapping support)Tj /TT0 1 Tf -24.488 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245e)Tj 0 Tc 2.768 0 Td [(rr)18(or codes \(Section 1.7\))]TJ /TT0 1 Tf -24.523 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245\337)Tj 0 Tc 2.897 0 Td [(oating-point envir)18(onment)]TJ /TT0 1 Tf -24.652 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245\337)Tj 0 Tc 2.897 0 Td (oating-point constants and characteristics)Tj /TT0 1 Tf -24.652 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245i)Tj 0 Tc 2.58 0 Td (nteger type format conversion)Tj /TT0 1 Tf -24.335 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245m)Tj 0 Tc 3.172 0 Td [(acr)18(os for assignment, r)18(elational, and unary operators)]TJ /TT0 1 Tf -24.927 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245i)Tj 0 Tc 2.58 0 Td (mplementation constants \(Section 2.5\))Tj /TT0 1 Tf -24.335 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245l)Tj 0 Tc 2.58 0 Td [(ocale categories and r)18(elated de\336nitions)]TJ /TT0 1 Tf -24.335 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245m)Tj 0 Tc 3.172 0 Td (athematical function and type declarations and constants)Tj /TT0 1 Tf -24.927 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245n)Tj 0 Tc 2.871 0 Td (onlocal goto \(Section 7.10\))Tj /TT0 1 Tf -24.626 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245s)Tj 0 Tc 2.713 0 Td (ignals \(Chapter 10\))Tj /TT0 1 Tf -24.468 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245v)Tj 0 Tc 2.854 0 Td [(ariable ar)18(gument lists)]TJ /TT0 1 Tf -24.609 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245B)Tj 0 Tc 2.9 0 Td (oolean type and values)Tj /TT0 1 Tf -24.655 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245s)Tj 0 Tc 2.713 0 Td (tandar)Tj 0.25 Tc 2.896 0 Td (dd)Tj 0 Tc 1.472 0 Td (e\336nitions)Tj /TT0 1 Tf -28.836 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245i)Tj 0 Tc 2.58 0 Td (nteger types)Tj /TT0 1 Tf -24.335 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245s)Tj 0 Tc 2.713 0 Td (tandar)Tj 0.25 Tc 2.896 0 Td (dI)Tj 0 Tc 1.198 0 Td (/O library \(Chapter 5\))Tj /TT0 1 Tf -28.562 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245u)Tj 0 Tc 2.892 0 Td (tility functions)Tj /TT0 1 Tf -24.647 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245s)Tj 0 Tc 2.713 0 Td (tring operations)Tj /TT0 1 Tf -24.468 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245t)Tj 0 Tc 2.615 0 Td [(ype-generic math macr)18(os)]TJ /TT0 1 Tf -24.37 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245t)Tj 0 Tc 2.615 0 Td (ime and date \(Section 6.10\))Tj /TT0 1 Tf -24.37 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245e)Tj 0 Tc 2.768 0 Td (xtended multibyte and wide character support)Tj /TT0 1 Tf -24.523 -1.25 Td ()Tj /T1_0 1 Tf 3.096 Tc 9.898 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245w)Tj 0 Tc 3.123 0 Td (ide character classi\336cation and mapping support)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1080.25 4010.25 cm 0 0 m 4092 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3023.25 4010.25 cm 0 0 m 0 2660 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1764.25 4010.25 cm 0 0 m 0 2660 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5172.25 4010.25 cm 0 0 m 0 2660 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1080.25 4010.25 cm 0 0 m 0 2660 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 212.6977 382.9311 Tm (Figure 2.1)Tj /T1_0 1 Tf 5.195 0 Td [(Headers de\336ned by the ISO C standar)18(d)]TJ 9.9982 0 0 9.9982 129.5769 357.7356 Tm [(pr)18(ovide )-212(if )-212(it )-212(is )-212(to )-212(be )-212(\324)37(\324POSIX )-212(compliant,\325)]TJ 0.462 Tc 18.957 0 Td (\325a)Tj 0 Tc 1.24 0 Td [(nd )-212(has )-212(been )-212(adopted )-212(by )-212(most )-212(computer)]TJ -20.197 -1.2 Td [(vendors. )-429(Although)-429(the )-179(1003.1 )-179(standar)18(d)-429(is)-429(based )-179(on )-179(the )-179(UNIX )-179(operating )-179(system, )-179(the)]TJ 0 -1.2 Td (standar)Tj 0.519 Tc 3.32 0 Td (di)Tj 0.5189 Tc 1.421 0 Td (sn)Tj 0 Tc 1.525 0 Td [(ot )-269(r)18(estricted )-269(to )-269(UNIX )-269(and )-269(UNIX)]TJ 15.41 0.09 Td (-)Tj 0.333 -0.09 Td [(like )-269(systems.)-769(Indeed, )-269(some )-269(vendors)]TJ -22.008 -1.2 Td [(supplying )-249(pr)18(oprietary )-249(operating )-249(systems )-249(claim )-249(that )-249(these )-249(systems )-249(have )-249(been )-249(made)]TJ 0 -1.2 TD [(POSIX compliant, while still leaving all their pr)18(oprietary featur)18(es in place.)]TJ 1.8 -1.2 Td [(Because )-237(the )-237(1003.1 )-237(standar)]TJ 0.4872 Tc 12.459 0 Td (ds)Tj 0 Tc 1.522 0 Td [(peci\336es )-237(an)]TJ /T1_2 1 Tf 5.379 0 Td (interface)Tj /T1_0 1 Tf 3.95 0 Td [(and )-237(not )-237(an)]TJ /T1_2 1 Tf 5.69 0 Td (implementation)Tj /T1_0 1 Tf 0.4871 Tc (,n)Tj 0 Tc 7.653 0 Td (o)Tj -38.454 -1.2 Td [(distinction )-87(is )-87(made )-87(between )-87(system )-87(calls )-87(and )-87(library )-87(functions.)-589(All )-87(the )-87(r)18(outines )-87(in )-87(the)]TJ T* (standar)Tj 0.25 Tc 3.32 0 Td (da)Tj -0.018 Tc 1.361 0 Td [(re )-36(c)]TJ 0 Tc 1.55 0 Td (alled)Tj /T1_2 1 Tf 2.422 0 Td (functions)Tj /T1_0 1 Tf (.)Tj -6.853 -1.2 Td [(Standar)18(ds )-133(ar)]TJ 0.3827 Tc 5.716 0 Td (ec)Tj 0 Tc 1.306 0 Td [(ontinually )-133(evolving, )-133(and )-133(the )-133(1003.1 )-133(standar)20(d)-383(is)-383(no)-383(e)1(xception. )-383(The)]TJ -8.821 -1.2 Td [(1988 )-520(version, )-520(IEEE )-520(Standar)]TJ 0.7701 Tc 13.433 0 Td (d1)Tj 0 Tc 1.881 0 Td (003.1)Tj 2.25 0.09 Td (-)Tj 0.333 -0.09 Td [(1988, )-520(was )-520(modi\336ed )-520(and )-520(submitted )-520(to )-520(the)]TJ -17.897 -1.2 Td [(International )-242(Or)18(ganization )-242(for )-242(Standar)18(dization. )-492(No)-492(new )-242(interfaces )-242(or )-242(featur)18(es )-242(wer)18(e)]TJ 0 -1.2 Td [(added, )-298(but )-298(the )-298(text )-298(was )-298(r)19(evised. )-548(The)]TJ -0.018 Tc 18.571 0 Td (re)Tj 0 Tc 0.856 0 Td [(sulting )-298(document )-298(was )-298(published )-298(as )-298(IEEE)]TJ -19.427 -1.2 Td (Standar)Tj 0.7204 Tc 3.421 0 Td (d1)Tj 0 Tc 1.831 0 Td (003.1)Tj 2.25 0.09 Td (-)Tj 0.333 -0.09 Td (1990)Tj 2.72 0.04 Td ([)Tj 0.333 -0.04 Td [(IEEE )-470(1990)]TJ 4.89 0.04 Td (])Tj 0.9703 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.833 0 Td [(his )-470(is )-470(also )-470(International )-470(Standar)]TJ 0.7203 Tc 15.812 0 Td (dI)Tj 0 Tc 1.668 0 Td (SO/IEC)Tj -35.426 -1.2 Td (9945)Tj 2 0.09 Td (-)Tj 0.333 -0.09 Td [(1:1990. )-356(This)-356(standar)]TJ 0.356 Tc 9.192 0 Td (dw)Tj 0 Tc 1.801 0 Td [(as )-106(commonly )-106(r)18(eferr)18(ed )-106(to )-106(as)]TJ /T1_2 1 Tf 12.761 0 Td (POSIX.1)Tj /T1_0 1 Tf 0.356 Tc (,at)Tj 0 Tc 5.538 0 Td [(erm )-106(which )-106(we\325ll)]TJ -31.625 -1.2 Td [(use in this text to r)18(efer to the dif)18(fer)18(ent versions of the standar)18(d.)]TJ 1.8 -1.2 Td [(The )-186(IEEE )-186(1003.1 )-186(working )-186(gr)18(oup )-186(continued )-186(to )-186(make )-186(changes )-186(to )-186(the )-186(standar)17(d. )-436(In)]TJ -1.8 -1.2 Td [(1996, )-209(a )-209(r)18(evised )-209(version )-209(of )-209(the )-209(IEEE )-209(1003.1 )-209(standar)]TJ 0.4592 Tc 23.438 0 Td (dw)Tj 0 Tc 1.904 0 Td [(as )-209(published.)-709(It )-209(included )-209(the)]TJ -25.342 -1.2 Td (1003.1)Tj 2.75 0.09 Td (-)Tj 0.333 -0.09 Td [(1990 )-38(standar)18(d, )-38(the )-38(1003.1b-1993 )-38(r)18(eal-time )-38(extensions )-38(standar)18(d, )-38(and )-38(the )-38(interfaces)]TJ -3.083 -1.2 Td [(for )-64(multithr)18(eaded )-64(pr)18(ogramming, )-64(called)]TJ /T1_2 1 Tf 17.925 0 Td [(pthr)18(eads)]TJ /T1_0 1 Tf 3.74 0 Td [(for )-64(POSIX )-64(thr)18(eads. )-314(This)-314(version )-64(of )-64(the)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47246 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (144)Tj /T1_1 1 Tf 3.5 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Library)]TJ 34.372 0 Td [(Chapter )-250(5)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (Standar)Tj 0.4121 Tc 3.421 0 Td (dI)Tj 0 Tc 1.36 0 Td [(/O )-162(\336le )-162(str)18(eams )-162(can )-162(be )-162(used )-162(with )-162(both )-162(single-byte )-162(and )-162(multibyte )-162(\(\324)35(\324wide\325)37(\325\))]TJ -4.781 -1.2 Td [(character )-104(sets.)]TJ 0.3537 Tc 6.925 0 Td (As)Tj 0 Tc 1.556 0 Td [(tr)18(eam\325s )-104(orientation )-104(determines )-104(whether )-104(the )-104(characters )-104(that )-104(ar)]TJ 0.3536 Tc 27.719 0 Td (er)Tj 0 Tc 1.21 0 Td (ead)Tj -37.41 -1.2 Td [(and )-112(written )-112(ar)]TJ 0.362 Tc 6.527 0 Td (es)Tj 0 Tc 1.265 0 Td [(ingle )-112(byte )-112(or )-112(multibyte.)-612(Initially)]TJ 0.362 Tc 14.664 0 Td (,w)Tj 0 Tc 1.446 0 Td [(hen )-112(a )-112(str)18(eam )-112(is )-112(cr)18(eated, )-112(it )-112(has )-112(no)]TJ -23.902 -1.2 Td [(orientation. )-332(If)]TJ 0.3321 Tc 6.698 0 Td (am)Tj 0 Tc 1.715 0 Td [(ultibyte )-82(I/O )-82(function )-82(\(see)]TJ /TT0 1 Tf 11.904 0 Td ()Tj /T1_1 1 Tf [(\))-332(is)-332(used )-82(on )-82(a )-82(str)18(eam )-82(without)]TJ -20.318 -1.2 Td [(orientation, )-141(the )-141(str)18(eam\325s )-141(orientation )-141(is )-141(set )-141(to )-141(wide )-141(oriented.)-637(If )-141(a )-141(byte )-141(I/O )-141(function )-141(is)]TJ 0 -1.2 TD [(used )-136(on )-136(a )-136(str)19(eam )-136(without )-136(orientation, )-136(the )-136(str)18(eam\325s )-136(orientation )-136(is )-136(set )-136(to )-136(byte )-136(oriented.)]TJ T* [(Only )-356(two )-356(functions )-356(can )-356(change )-356(the )-356(orientation )-356(once )-356(set.)-857(The)]TJ /TT0 1 Tf 30.487 0 Td (freopen)Tj /T1_1 1 Tf 4.806 0 Td (function)Tj -35.293 -1.2 Td [(\(discussed )-69(shortly\) )-69(will )-69(clear )-69(a )-69(str)20(eam\325s )-68(orientation; )-68(the)]TJ /TT0 1 Tf 25.153 0 Td (fwide)Tj /T1_1 1 Tf 3.319 0 Td [(function )-68(can )-68(be )-68(used )-68(to)]TJ -28.472 -1.2 Td [(set a str)18(eam\325s orientation.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.592 556.2666 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (int fwide\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 12.178 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (mode)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 6.103 -1.783 Td [(Returns: positive if str)18(eam is wide oriented,)]TJ 4.023 -1.189 Td [(negative if str)18(eam is byte oriented,)]TJ 0.01 -1.189 Td [(or 0 if str)18(eam has no orientation)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4876.25 cm 0 0 m 0 777 l 3900 777 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 474.0431 Tm (The)Tj /TT0 1 Tf 2.188 0 Td (fwide)Tj /T1_1 1 Tf 3.514 0 Td [(function )-264(performs )-264(dif)18(fer)18(ent )-264(tasks, )-264(depending )-264(on )-264(the )-264(value )-264(of )-264(the)]TJ /T1_2 1 Tf 31.187 0 Td (mode)Tj /T1_1 1 Tf -36.889 -1.2 Td [(ar)18(gument.)]TJ 0.883 Tc 1.8 -2.4 Td (\245I)Tj 0.3777 Tc 1.826 0 Td (ft)Tj 0 Tc 1.037 0 Td (he)Tj /T1_2 1 Tf 1.439 0 Td (mode)Tj /T1_1 1 Tf 2.489 0 Td [(ar)18(gument )-128(is )-128(negative,)]TJ /TT0 1 Tf 10.182 0 Td (fwide)Tj /T1_1 1 Tf 3.378 0 Td [(will )-128(try )-128(to )-128(make )-128(the )-128(speci\336ed )-128(str)20(eam)]TJ -18.861 -1.2 Td (byte oriented.)Tj 0.883 Tc -1.489 -1.6 Td (\245I)Tj 0.3973 Tc 1.826 0 Td (ft)Tj 0 Tc 1.056 0 Td (he)Tj /T1_2 1 Tf 1.458 0 Td (mode)Tj /T1_1 1 Tf 2.508 0 Td [(ar)18(gument )-147(is )-147(positive,)]TJ /TT0 1 Tf 9.986 0 Td (fwide)Tj /T1_1 1 Tf 3.397 0 Td [(will )-147(try )-147(to )-147(make )-147(the )-147(speci\336ed )-147(str)16(eam)]TJ -18.743 -1.2 Td (wide oriented.)Tj 0.883 Tc -1.489 -1.6 Td (\245I)Tj 0.3428 Tc 1.826 0 Td (ft)Tj 0 Tc 1.002 0 Td (he)Tj /T1_2 1 Tf 1.404 0 Td (mode)Tj /T1_1 1 Tf 2.454 0 Td [(ar)18(gument )-93(is )-93(zer)18(o,)]TJ /TT0 1 Tf 8.201 0 Td (fwide)Tj /T1_1 1 Tf 3.343 0 Td [(will )-93(not )-93(try )-93(to )-93(set )-93(the )-93(orientation, )-93(but )-93(will)]TJ -16.74 -1.2 Td [(still r)18(eturn a value identifying the str)18(eam\325s orientation.)]TJ -1.489 -2.4 Td [(Note )-10(that)]TJ /TT0 1 Tf 4.436 0 Td (fwide)Tj /T1_1 1 Tf 3.26 0 Td [(will )-10(not )-10(change )-10(the )-10(orientation )-10(of )-10(a )-10(str)19(eam )-10(that )-10(is )-10(alr)18(eady )-10(oriented.)]TJ -9.496 -1.2 Td [(Also )-119(note )-119(that )-119(ther)19(e)-369(is)-369(no)-369(e)1(rr)18(or )-119(r)18(eturn. )-369(Consider)-368(what )-119(would )-119(happen )-119(if )-119(the )-119(str)18(eam )-119(is)]TJ 0 -1.2 Td [(invalid. )-351(The)-351(only )-101(r)18(ecourse )-101(we )-101(have )-101(is )-101(to )-101(clear)]TJ /TT0 1 Tf 21.323 0 Td (errno)Tj /T1_1 1 Tf 3.351 0 Td (befor)Tj 0.3513 Tc 2.288 0 Td (ec)Tj 0 Tc 1.274 0 Td (alling)Tj /TT0 1 Tf 2.862 0 Td (fwide)Tj /T1_1 1 Tf 3.351 0 Td [(and )-101(check)]TJ -34.451 -1.2 Td [(the )-5(value )-5(of)]TJ /TT0 1 Tf 5.471 0 Td (errno)Tj /T1_1 1 Tf 3.256 0 Td [(when )-5(we )-5(r)17(eturn. )-255(Thr)18(oughout )-5(the )-5(r)18(est )-5(of )-5(this )-5(book, )-5(we )-5(will )-5(deal )-5(only)]TJ -8.726 -1.2 Td [(with byte-oriented str)18(eams.)]TJ 1.8 -1.2 Td [(When )-115(we )-115(open )-115(a )-115(str)18(eam, )-115(the )-115(standar)]TJ 0.3652 Tc 16.801 0 Td (dI)Tj 0 Tc 1.313 0 Td [(/O )-115(function)]TJ /TT0 1 Tf 5.829 0 Td (fopen)Tj /T1_1 1 Tf 3.365 0 Td [(\(Section )-115(5.5\) )-115(r)18(eturns )-115(a)]TJ -29.109 -1.2 Td [(pointer )-272(to )-272(a)]TJ /TT0 1 Tf 6.158 0 Td (FILE)Tj /T1_1 1 Tf 2.922 0 Td [(object. )-522(This)-522(object )-272(is )-272(normally )-272(a )-272(str)8(uctur)]TJ 0.522 Tc 19.455 0 Td (et)Tj 0 Tc 1.327 0 Td [(hat )-272(contains )-272(all )-272(the)]TJ -29.862 -1.2 Td [(information )-337(r)18(equir)18(ed )-338(by )-338(the )-338(standar)]TJ 0.5876 Tc 17.218 0 Td (dI)Tj 0 Tc 1.536 0 Td [(/O )-338(library )-338(to )-338(manage )-338(the )-338(str)18(eam: )-338(the )-338(\336le)]TJ -18.754 -1.2 Td [(descriptor )-20(used )-20(for )-20(actual )-20(I/O, )-20(a )-20(pointer )-20(to )-20(a )-20(buf)18(fer )-20(for )-20(the )-20(str)18(eam, )-20(the )-20(size )-20(of )-20(the )-20(buf)25(fer)74(,)]TJ 0.25 Tc 0 -1.2 TD (ac)Tj 0 Tc 1.194 0 Td [(ount of the number of characters curr)18(ently in the buf)18(fer)74(,)-250(an)-250(err)18(or \337ag, and the like.)]TJ 0.606 -1.2 Td [(Application )-29(softwar)]TJ 0.2795 Tc 8.871 0 Td (es)Tj 0 Tc 1.183 0 Td [(hould )-30(never )-30(need )-30(to )-30(examine )-30(a)]TJ /TT0 1 Tf 14.064 0 Td (FILE)Tj /T1_1 1 Tf 2.68 0 Td [(object. )-280(T)]TJ 0.2796 Tc 3.883 0 Td (or)Tj 0 Tc 1.203 0 Td [(efer)18(ence )-30(the)]TJ -33.681 -1.2 Td [(str)18(eam, )-291(we )-291(pass )-291(its)]TJ /TT0 1 Tf 9.706 0 Td (FILE)Tj /T1_1 1 Tf 2.941 0 Td [(pointer )-291(as )-291(an )-291(ar)18(gument )-291(to )-291(each )-291(standar)]TJ 0.5409 Tc 18.974 0 Td (dI)Tj 0 Tc 1.489 0 Td [(/O )-291(function.)]TJ -33.11 -1.2 Td [(Thr)18(oughout )-54(this )-54(text, )-54(we\325ll )-54(r)18(efer )-54(to )-54(a )-54(pointer )-54(to )-54(a)]TJ /TT0 1 Tf 22.091 0 Td (FILE)Tj /T1_1 1 Tf 2.704 0 Td [(object, )-54(the )-54(type)]TJ /TT0 1 Tf 7.092 0 Td [(FILE )267(*)]TJ /T1_1 1 Tf [(,)-304(as)-304(a)]TJ /T1_2 1 Tf 5.918 0 Td (\336le)Tj -37.805 -1.2 Td (pointer)Tj /T1_1 1 Tf (.)Tj 1.8 -1.2 Td [(Thr)18(oughout )-124(this )-124(chapter)73(,)-374(we)-374(d)-1(escribe )-124(the )-124(standar)]TJ 0.3742 Tc 22.402 0 Td (dI)Tj 0 Tc 1.322 0 Td [(/O )-124(library )-124(in )-124(the )-124(context )-124(of )-124(a)]TJ -25.524 -1.2 Td [(UNIX )-29(system.)-529(As )-29(we )-29(mentioned, )-29(this )-29(library )-29(has )-29(been )-29(ported )-29(to )-29(a )-29(wide )-29(variety )-29(of )-29(other)]TJ T* [(operating )-580(systems.)]TJ -0.092 Tc 9.953 0 Td [(To )-765(p)]TJ -0.018 Tc 2.499 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vide )-580(some )-580(insight )-580(about )-580(how )-580(this )-580(library )-580(can )-580(be)]TJ -13.375 -1.2 Td (implemented, we will talk about its typical implementation on a UNIX sys\ tem.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47247 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 33.857 0 Td [(Chapter )-250(16)-750(Solutions)]TJ /T1_1 1 Tf 11.976 0 Td (939)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (16.3)Tj /T1_0 1 Tf 3.065 0 Td [(For )-106(each )-106(endpoint )-106(we )-106(will )-106(be )-106(listening )-106(on, )-106(we )-106(need )-106(to )-106(bind )-106(the )-106(pr)23(oper )-105(addr)18(ess)]TJ 0 -1.2 Td [(and )-7(r)18(ecor)18(d)-257(an)-257(e)-1(ntry )-7(in )-7(an)]TJ /TT0 1 Tf 11.447 0 Td (fd_set)Tj /T1_0 1 Tf 3.858 0 Td [(str)8(uctur)]TJ 0.2575 Tc 3.49 0 Td (ec)Tj 0 Tc 1.181 0 Td [(orr)18(esponding )-7(to )-7(each )-7(\336le )-7(descriptor)72(.)]TJ -0.092 Tc -19.975 -1.2 Td [(We )-202(w)]TJ 0 Tc 2.489 0 Td [(ill )-18(use)]TJ /TT0 1 Tf 2.915 0 Td (select)Tj /T1_0 1 Tf 3.868 0 Td [(to )-18(wait )-18(for )-18(connect )-18(r)19(equests )-18(to )-18(arrive )-18(on )-18(multiple )-18(endpoints.)]TJ -9.271 -1.2 Td [(Recall )-34(fr)18(om )-34(Section )-34(16.4 )-34(that )-34(a )-34(passive )-34(endpoint )-34(will )-34(appear )-34(to )-34(be )-34(r)20(eadable )-34(when)]TJ 0.4417 Tc 0 -1.2 TD (ac)Tj 0 Tc 1.386 0 Td [(onnect )-192(r)18(equest )-192(arrives )-192(on )-192(it.)-692(When )-192(a )-192(connect )-192(r)18(equest )-192(does )-192(arrive, )-192(we )-192(will)]TJ -1.386 -1.2 Td [(accept the r)18(equest and pr)18(ocess it as befor)18(e.)]TJ /T1_1 1 Tf -3.065 -1.84 Td (16.5)Tj /T1_0 1 Tf 3.065 0 Td [(In )-192(the)]TJ /TT0 1 Tf 3.189 0 Td (main)Tj /T1_0 1 Tf 2.842 0 Td [(pr)18(ocedur)18(e, )-192(we )-192(need )-192(to )-192(arrange )-192(to )-192(catch)]TJ /TT0 1 Tf 18.771 0 Td (SIGCHLD)Tj /T1_0 1 Tf 4.642 0 Td [(by )-192(calling )-192(our)]TJ /TT0 1 Tf -29.444 -1.2 Td (signal)Tj /T1_0 1 Tf 3.859 0 Td [(function )-9(\(Figur)]TJ 0.2591 Tc 6.682 0 Td (e1)Tj 0 Tc 1.238 0 Td [(0.18\), )-9(which )-9(will )-9(use)]TJ /TT0 1 Tf 9.315 0 Td (sigaction)Tj /T1_0 1 Tf 5.659 0 Td [(to )-9(install )-9(the )-9(handler)]TJ -26.754 -1.2 Td [(specifying )-18(the )-18(r)18(estartable )-18(system )-18(call )-18(option.)-518(Next, )-18(we )-18(need )-18(to )-18(r)22(emove )-18(the )-18(call )-18(to)]TJ /TT0 1 Tf T* (waitpid)Tj /T1_0 1 Tf 4.724 0 Td [(fr)18(om )-274(our)]TJ /TT0 1 Tf 4.731 0 Td (serve)Tj /T1_0 1 Tf 3.524 0 Td [(function. )-524(After)]TJ /TT0 1 Tf 7.566 0 Td (fork)Tj /T1_0 1 Tf [(ing )-274(the )-274(child )-274(to )-274(service )-274(the)]TJ -0.018 Tc -20.544 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quest, )-291(the )-291(par)18(ent )-291(closes )-291(the )-291(new )-291(\336le )-291(descriptor )-291(and )-291(r)18(esumes )-291(listening )-291(for)]TJ -0.856 -1.2 Td [(additional )-105(connect )-105(r)17(equests. )-355(Finally)111(,)-355(we)-355(n)-1(eed )-105(a )-105(signal )-105(handler )-105(for)]TJ /TT0 1 Tf 30.206 0 Td (SIGCHLD)Tj /T1_0 1 Tf 0.3553 Tc (,a)Tj 0 Tc 5.305 0 Td (s)Tj -35.511 -1.2 Td (follows:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 178.2382 501.8699 Tm (void)Tj 0 -1.189 TD (sigchld\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td (while \(waitpid\(\(pid_t\)-1, NULL, WNOHANG\) > 0\))Tj 2.4 -1.189 Td (;)Tj -4.8 -1.189 Td (})Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5911 426.3744 Tm (16.6)Tj /T1_0 1 Tf -0.092 Tc 3.065 0 Td [(To )-197(e)]TJ 0 Tc 1.809 0 Td [(nable )-13(asynchr)18(onous )-13(socket )-13(I/O, )-13(we )-13(need )-13(to )-13(establish )-13(socket )-13(ownership )-13(using)]TJ -1.809 -1.2 Td (the)Tj /TT0 1 Tf 1.699 0 Td [(F_SETOWN )288(fcntl)]TJ /T1_0 1 Tf 8.424 0 Td [(command, )-62(and )-62(then )-62(enable )-62(asynchr)18(onous )-62(signaling )-62(using)]TJ -10.123 -1.2 Td (the)Tj /TT0 1 Tf 1.981 0 Td [(FIOASYNC )6(ioctl)]TJ /T1_0 1 Tf 8.989 0 Td [(command. )-594(T)]TJ 0.5944 Tc 6.064 0 Td (od)Tj 0 Tc 1.751 0 Td [(isable )-344(asynchr)18(onous )-344(socket )-344(I/O, )-344(we)]TJ -18.786 -1.2 Td [(simply )-86(need )-86(to )-86(disable )-86(asynchr)18(onous )-86(signaling.)-586(The )-86(r)15(eason )-86(we )-86(mix)]TJ /TT0 1 Tf 30.906 0 Td (fcntl)Tj /T1_0 1 Tf 3.336 0 Td (and)Tj /TT0 1 Tf -34.242 -1.2 Td (ioctl)Tj /T1_0 1 Tf 3.424 0 Td [(commands )-174(is )-174(to )-174(\336nd )-174(the )-174(methods )-174(that )-174(ar)]TJ 0.4239 Tc 19.074 0 Td (em)Tj 0 Tc 1.786 0 Td [(ost )-174(portable.)-674(The )-174(code )-174(is)]TJ -24.283 -1.2 Td (shown in Figur)Tj 0.25 Tc 6.724 0 Td (eC)Tj 0 Tc 1.438 0 Td (.23.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 3592.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 3592.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 160.2308 349.657 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#if defined\(BSD\) || defined\(MACOS\) || defined\(SOLARIS\))Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#endif)Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (setasync\(int sockfd\))Tj T* ({)Tj 2.4 -1.189 Td (int n;)Tj 0 -2.021 TD (if \(fcntl\(sockfd, F_SETOWN, getpid\(\)\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj 0.6 Tc -2.4 -1.189 Td (n=1)Tj 0 Tc 3 0 Td (;)Tj -3 -1.189 Td (if \(ioctl\(sockfd, FIOASYNC, &n\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td (return\(0\);)Tj -2.4 -1.189 Td (})Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47248 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 33.857 0 Td [(Chapter )-250(15)-750(Solutions)]TJ /T1_1 1 Tf 11.976 0 Td (935)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 160.2404 668.9599 Tm (The following table shows the values calculated for our four platforms.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2638.25 6526.25 cm 0 0 m 1522 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 280.7553 644.5227 Tm [(Platform )-2870(Pipe)-250(Capacity \(bytes\))]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2638.25 6406.25 cm 0 0 m 1522 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2638.25 6386.25 cm 0 0 m 1522 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 267.7808 630.4865 Tm [(Fr)18(eeBSD 8.0)]TJ 11.946 0 Td (65,536)Tj -11.946 -1.25 Td (Linux 3.2.0)Tj 11.946 0 Td (65,536)Tj -11.946 -1.25 Td [(Mac OS X 10.6.8)-4828(16,384)]TJ 0 -1.25 TD (Solaris 10)Tj 11.946 0 Td (16,384)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2638.25 5966.25 cm 0 0 m 1522 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3307.25 5966.25 cm 0 0 m 0 560 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4160.25 5966.25 cm 0 0 m 0 560 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2638.25 5966.25 cm 0 0 m 0 560 l S Q Q BT /T1_0 1 Tf 9.9976 0 0 9.9976 160.2115 575.2619 Tm [(These )-327(values )-327(can )-327(dif)18(fer )-327(fr)18(om )-327(the )-327(corr)19(esponding)]TJ /TT0 1 Tf 23.387 0 Td (PIPE_BUF)Tj /T1_0 1 Tf 5.377 0 Td [(values, )-327(because)]TJ /TT0 1 Tf -28.764 -1.2 Td (PIPE_BUF)Tj /T1_0 1 Tf 5.07 0 Td [(is )-20(de\336ned )-20(to )-20(be )-20(the )-20(maximum )-20(amount )-20(of )-20(data )-20(that )-20(can )-20(be )-20(written )-20(to )-20(a)]TJ -5.07 -1.2 Td (pipe)Tj /T1_2 1 Tf 2.454 0 Td (atomically)Tj /T1_0 1 Tf 0.732 Tc (.H)Tj 0 Tc 5.998 0 Td [(er)18(e, )-232(we )-232(calculate )-232(the )-232(amount )-232(of )-232(data )-232(that )-232(a )-232(pipe )-232(can )-232(hold)]TJ -8.452 -1.2 Td (independent of any atomicity constraints.)Tj /T1_1 1 Tf -3.065 -1.84 Td (14.10)Tj /T1_0 1 Tf 3.065 0 Td [(Whether )-108(the )-108(pr)18(ogram )-108(in )-108(Figur)]TJ 0.3582 Tc 13.777 0 Td (e1)Tj 0 Tc 1.337 0 Td [(4.27 )-108(updates )-108(the )-108(last-access )-108(time )-108(for )-108(the )-108(input)]TJ -15.114 -1.2 Td [(\336le )-26(depends )-26(on )-26(the )-26(operating )-26(system )-26(and )-26(the )-26(type )-26(of )-26(\336le )-26(system )-26(in )-26(which )-26(the )-26(\336le)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(sides. )-486(On)-486(all )-236(four )-236(platforms, )-236(the )-236(last-access )-236(time )-236(is )-236(updated )-236(when )-236(the )-236(\336le)]TJ -0.018 Tc -0.856 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (sides in the default \336le system type for the given operating system.)Tj /TT1 1 Tf -7.521 -3.36 Td [(Chapter )-278(15)]TJ /T1_1 1 Tf 3.6 -2.56 Td (15.1)Tj /T1_0 1 Tf 3.065 0 Td [(If )-79(the )-79(write )-79(end )-79(of )-79(the )-79(pipe )-79(is )-79(never )-79(closed, )-79(the )-79(r)18(eader )-79(never )-79(sees )-79(an )-79(end )-79(of )-79(\336le.)]TJ T* [(The pager pr)18(ogram blocks for)18(ever r)18(eading fr)18(om its standar)]TJ 0.25 Tc 25.947 0 Td (di)Tj 0 Tc 1.152 0 Td (nput.)Tj /T1_1 1 Tf -30.164 -1.84 Td (15.2)Tj /T1_0 1 Tf 3.065 0 Td [(The )-1(par)18(ent )-1(terminates )-1(right )-1(after )-1(writing )-1(the )-1(last )-1(line )-1(to )-1(the )-1(pipe.)-501(The )-1(r)18(ead )-1(end )-1(of)]TJ T* [(the )-132(pipe )-132(is )-132(automatically )-132(closed )-132(when )-132(the )-132(par)15(ent )-132(terminates.)-632(But )-132(the )-132(par)18(ent )-132(is)]TJ T* [(pr)18(obably )-7(r)8(unning )-7(ahead )-7(of )-7(the )-7(child )-7(by )-7(one )-7(pipe )-7(buf)17(fer)]TJ 0.2571 Tc 24.323 0 Td (,s)Tj 0 Tc 0.931 0 Td [(ince )-7(the )-7(child )-7(\(the )-7(pager)]TJ -25.254 -1.2 Td [(pr)18(ogram\) )-73(is )-73(waiting )-73(for )-73(us )-73(to )-73(look )-73(at )-73(a )-73(page )-73(of )-73(output.)-578(If )-73(we\325r)]TJ 0.3233 Tc 28.086 0 Td (er)Tj 0 Tc 1.189 0 Td [(unning )-73(a )-73(shell,)]TJ -29.275 -1.2 Td [(such )-71(as )-71(the )-71(Korn )-71(shell, )-71(with )-71(interactive )-71(command)]TJ 22.339 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-71(editing )-71(enabled, )-71(the )-71(shell)]TJ -22.672 -1.2 Td [(pr)18(obably )-115(changes )-115(the )-115(terminal )-115(mode )-115(when )-115(our )-115(par)15(ent )-115(terminates )-115(and )-115(the )-115(shell)]TJ T* [(prints )-9(a )-9(pr)18(ompt. )-259(This)-259(undoubtedly )-9(interfer)18(es )-9(with )-9(the )-9(pager )-9(pr)18(ogram, )-9(which )-9(has)]TJ T* [(also )-238(modi\336ed )-238(the )-238(terminal )-238(mode.)-738(\(Most )-238(pager )-238(pr)15(ograms )-238(set )-238(the )-238(terminal )-238(to)]TJ T* [(noncanonical mode when awaiting input to pr)18(oceed to the next page.\))]TJ /T1_1 1 Tf -3.065 -1.84 Td (15.3)Tj /T1_0 1 Tf 3.065 0 Td (The)Tj /TT0 1 Tf 2.001 0 Td (popen)Tj /T1_0 1 Tf 3.328 0 Td [(function )-77(r)18(eturns )-77(a )-77(\336le )-77(pointer )-77(because )-77(the )-77(shell )-77(is )-77(executed.)-582(But )-78(the)]TJ -5.329 -1.2 Td (shell can\325t execute the nonexistent command, so it prints)Tj /TT0 1 Tf 8.9978 0 0 8.9978 178.2072 253.3091 Tm (sh: line 1: ./a.out: No such file or directory)Tj /T1_0 1 Tf 9.9976 0 0 9.9976 160.2115 236.3831 Tm [(on )-173(the )-173(standar)]TJ 0.4234 Tc 6.682 0 Td (de)Tj 0 Tc 1.513 0 Td [(rr)18(or )-173(and )-173(terminates )-173(with )-173(an )-173(exit )-173(status )-173(of )-173(127 )-173(\(although )-173(the)]TJ -8.195 -1.2 Td [(value )-133(depends )-133(on )-133(the )-133(type )-133(of )-133(shell\).)]TJ /TT0 1 Tf 17.163 0 Td (pclose)Tj /T1_0 1 Tf -0.018 Tc 3.983 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-133(the )-133(termination )-133(status )-133(of)]TJ -22.002 -1.2 Td [(the command as it is r)18(eturned by)]TJ /TT0 1 Tf 14.803 0 Td (waitpid)Tj /T1_0 1 Tf (.)Tj /T1_1 1 Tf -17.868 -1.84 Td (15.4)Tj /T1_0 1 Tf 3.065 0 Td [(When )-29(the )-29(par)18(ent )-29(terminates, )-29(look )-29(at )-29(its )-29(termination )-29(status )-29(with )-29(the )-29(shell.)-526(For )-29(the)]TJ T* [(Bourne )-40(shell, )-40(Bourne-again )-40(shell, )-40(and )-40(Korn )-40(shell, )-40(the )-40(command )-40(is)]TJ /TT0 1 Tf 29.538 0 Td [(echo )267($?)]TJ /T1_0 1 Tf 0.54 Tc (.T)Tj 0 Tc 5.336 0 Td (he)Tj -34.874 -1.2 Td [(number printed is 128 plus the signal number)74(.)]TJ /T1_1 1 Tf -3.065 -1.84 Td (15.5)Tj /T1_0 1 Tf 3.065 0 Td (First add the declaration)Tj /TT0 1 Tf 8.9978 0 0 8.9978 178.2075 135.9775 Tm [(FILE )-1800(*fpin,)-600(*fpout;)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47249 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (546)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Note )-284(that )-284(our)]TJ /TT0 1 Tf 7.062 0 Td (open_max)Tj /T1_1 1 Tf 5.334 0 Td [(function )-284(fr)18(om )-284(Figur)]TJ 0.534 Tc 9.297 0 Td (e2)Tj 0 Tc 1.513 0 Td [(.17 )-284(can )-284(r)18(eturn )-284(a )-284(guess )-284(of )-284(the)]TJ -25.006 -1.2 Td [(maximum )-1(number )-1(of )-1(open )-1(\336les )-1(if )-1(this )-1(value )-1(is )-1(indeterminate )-1(for )-1(the )-1(system.)]TJ -0.092 Tc 34.087 0 Td [(We )-186(n)]TJ 0 Tc 2.221 0 Td [(eed )-1(to)]TJ -36.307 -1.2 Td [(be )-43(car)18(eful )-43(not )-43(to )-43(use )-43(a )-43(pipe )-43(\336le )-43(descriptor )-43(whose )-43(value )-43(is )-43(lar)12(ger )-44(than )-44(\(or )-44(equal )-44(to\) )-44(what)]TJ 0 -1.2 TD (the)Tj /TT0 1 Tf 1.66 0 Td (open_max)Tj /T1_1 1 Tf 5.073 0 Td [(function )-23(r)18(eturns. )-273(In)]TJ /TT0 1 Tf 9.13 0 Td (popen)Tj /T1_1 1 Tf [(,)-273(if)-273(t)1(he )-23(value )-23(r)19(eturned )-23(by)]TJ /TT0 1 Tf 14.296 0 Td (open_max)Tj /T1_1 1 Tf 5.073 0 Td (happens)Tj -35.231 -1.2 Td [(to )-69(be )-69(too )-69(small, )-69(we )-69(close )-69(the )-69(pipe )-69(\336le )-69(descriptors, )-69(set)]TJ /TT0 1 Tf 24.118 0 Td (errno)Tj /T1_1 1 Tf 3.319 0 Td (to)Tj /TT0 1 Tf 1.191 0 Td (EMFILE)Tj /T1_1 1 Tf 3.919 0 Td [(to )-69(indicate )-69(too)]TJ -32.548 -1.2 Td [(many )-341(\336le )-341(descriptors )-341(ar)]TJ 0.591 Tc 11.482 0 Td (eo)Tj 0 Tc 1.616 0 Td [(pen, )-341(and )-341(r)18(eturn)]TJ /TT1 1 Tf 8.14 0 Td (!)Tj /T1_1 1 Tf [(1. )-591(In)]TJ /TT0 1 Tf 3.65 0 Td (pclose)Tj /T1_1 1 Tf [(,)-591(if)-591(the )-341(\336le )-341(descriptor)]TJ -24.888 -1.2 Td [(corr)18(esponding )-173(to )-173(the )-173(\336le )-173(pointer )-173(ar)18(gument )-173(is )-173(lar)18(ger )-173(than )-173(expected, )-173(we )-173(set)]TJ /TT0 1 Tf 34.705 0 Td (errno)Tj /T1_1 1 Tf 3.423 0 Td (to)Tj /TT0 1 Tf -38.128 -1.2 Td (EINVAL)Tj /T1_1 1 Tf 3.85 0 Td [(and r)18(eturn)]TJ /TT1 1 Tf 4.955 0 Td (!)Tj /T1_1 1 Tf (1.)Tj -7.005 -1.2 Td (Calling)Tj /TT0 1 Tf 3.576 0 Td (pipe)Tj /T1_1 1 Tf 2.756 0 Td (and)Tj /TT0 1 Tf 2.049 0 Td (fork)Tj /T1_1 1 Tf 2.756 0 Td [(and )-105(then )-105(duplicating )-105(the )-105(appr)16(opriate )-105(descriptors )-105(for )-105(each)]TJ -12.935 -1.2 Td [(pr)18(ocess in the)]TJ /TT0 1 Tf 6.305 0 Td (popen)Tj /T1_1 1 Tf 3.25 0 Td [(function is similar to what we did earlier in this chapter)74(.)]TJ -7.755 -1.2 Td [(POSIX.1 )-67(r)18(equir)18(es )-67(that)]TJ /TT0 1 Tf 9.943 0 Td (popen)Tj /T1_1 1 Tf 3.317 0 Td [(close )-67(any )-67(str)18(eams )-67(that )-67(ar)]TJ 0.3167 Tc 11.112 0 Td (es)Tj 0 Tc 1.22 0 Td [(till )-67(open )-67(in )-67(the )-67(child )-67(fr)20(om)]TJ -27.391 -1.2 Td [(pr)18(evious )-113(calls )-113(to)]TJ /TT0 1 Tf 7.797 0 Td (popen)Tj /T1_1 1 Tf 0.6131 Tc (.T)Tj 0 Tc 4.384 0 Td [(o)-363(do)-363(this, )-113(we )-113(go )-113(thr)18(ough )-113(the)]TJ /TT0 1 Tf 13.492 0 Td (childpid)Tj /T1_1 1 Tf 5.163 0 Td [(array )-113(in )-113(the )-113(child,)]TJ -30.836 -1.2 Td (closing any descriptors that ar)Tj 0.25 Tc 13.319 0 Td (es)Tj 0 Tc 1.153 0 Td (till open.)Tj -12.672 -1.2 Td [(What )-401(happens )-401(if )-401(the )-401(caller )-401(of)]TJ /TT0 1 Tf 15.371 0 Td (pclose)Tj /T1_1 1 Tf 4.251 0 Td [(has )-401(established )-401(a )-401(signal )-401(handler )-401(for)]TJ /TT0 1 Tf -21.422 -1.2 Td (SIGCHLD)Tj /T1_1 1 Tf 0.5942 Tc (?T)Tj 0 Tc 5.851 0 Td [(he )-94(call )-94(to)]TJ /TT0 1 Tf 4.492 0 Td (waitpid)Tj /T1_1 1 Tf 4.544 0 Td [(fr)18(om)]TJ /TT0 1 Tf 2.483 0 Td (pclose)Tj /T1_1 1 Tf 3.944 0 Td [(would )-94(r)18(eturn )-94(an )-94(err)18(or )-94(of)]TJ /TT0 1 Tf 11.521 0 Td (EINTR)Tj /T1_1 1 Tf 0.5941 Tc (.S)Tj 0 Tc 4.369 0 Td (ince)Tj -37.204 -1.2 Td [(the )-22(caller )-22(is )-22(allowed )-22(to )-22(catch )-22(this )-22(signal )-22(\(or )-22(any )-22(other )-22(signal )-22(that )-22(might )-22(interr)8(upt )-22(the )-22(call)]TJ T* (to)Tj /TT0 1 Tf 1.122 0 Td (waitpid)Tj /T1_1 1 Tf (\), we simply call)Tj /TT0 1 Tf 11.668 0 Td (waitpid)Tj /T1_1 1 Tf 4.45 0 Td [(again if it is interr)8(upted by a caught signal.)]TJ -15.44 -1.2 Td [(Note )-118(that )-118(if )-118(the )-118(application )-118(calls)]TJ /TT0 1 Tf 15.056 0 Td (waitpid)Tj /T1_1 1 Tf 4.568 0 Td [(and )-118(obtains )-118(the )-118(exit )-118(status )-118(of )-118(the )-118(child)]TJ -21.424 -1.2 Td [(cr)18(eated )-97(by)]TJ /TT0 1 Tf 5.019 0 Td (popen)Tj /T1_1 1 Tf [(,)-347(we)-347(will )-97(call)]TJ /TT0 1 Tf 9.184 0 Td (waitpid)Tj /T1_1 1 Tf 4.547 0 Td [(when )-97(the )-97(application )-97(calls)]TJ /TT0 1 Tf 12.175 0 Td (pclose)Tj /T1_1 1 Tf 0.347 Tc (,\336)Tj 0 Tc 4.802 0 Td [(nd )-97(that)]TJ -35.726 -1.2 Td [(the )-3(child )-3(no )-3(longer )-3(exists, )-3(and )-3(r)19(eturn)]TJ /TT1 1 Tf 16.518 0 Td (!)Tj /T1_1 1 Tf 0.2529 Tc (1w)Tj 0 Tc 2.136 0 Td (ith)Tj /TT0 1 Tf 1.452 0 Td (errno)Tj /T1_1 1 Tf 3.253 0 Td [(set )-3(to)]TJ /TT0 1 Tf 2.607 0 Td (ECHILD)Tj /T1_1 1 Tf 0.5028 Tc (.T)Tj 0 Tc 4.966 0 Td [(his )-3(is )-3(the )-3(behavior)]TJ -0.018 Tc -30.932 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(ed by POSIX.1 in this situation.)]TJ 7.9995 0 0 7.9995 183.5869 408.9755 Tm [(Some )-101(early )-101(versions )-101(of)]TJ /TT0 1 Tf 10.644 0 Td (pclose)Tj /T1_1 1 Tf -0.018 Tc 3.951 0 Td (re)Tj 0 Tc 0.856 0 Td [(turned )-101(an )-101(err)18(or )-101(of)]TJ /TT0 1 Tf 8.554 0 Td (EINTR)Tj /T1_1 1 Tf 3.351 0 Td [(if )-101(a )-101(signal )-101(interr)7(upted )-101(the)]TJ /TT0 1 Tf 11.992 0 Td (wait)Tj /T1_1 1 Tf (.)Tj -39.35 -1.25 Td [(Also, )-109(some )-109(early )-109(versions )-109(of)]TJ /TT0 1 Tf 13.22 0 Td (pclose)Tj /T1_1 1 Tf 3.959 0 Td [(blocked )-109(or )-109(ignor)18(ed )-109(the )-109(signals)]TJ /TT0 1 Tf 14.111 0 Td (SIGINT)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.209 0 Td (SIGQUIT)Tj /T1_1 1 Tf 0.3585 Tc (,a)Tj 0 Tc 5.309 0 Td (nd)Tj /TT0 1 Tf -40.807 -1.25 Td (SIGHUP)Tj /T1_1 1 Tf 3.85 0 Td (during the)Tj /TT0 1 Tf 4.925 0 Td (wait)Tj /T1_1 1 Tf 0.5 Tc (.T)Tj 0 Tc 3.763 0 Td (his is not allowed by POSIX.1.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3830.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 346.9584 Tm [(Note )-70(that)]TJ /TT0 1 Tf 4.557 0 Td (popen)Tj /T1_1 1 Tf 3.32 0 Td [(should )-70(never )-70(be )-70(called )-70(by )-70(a )-70(set-user)16(-ID )-70(or )-70(set-gr)18(oup-ID )-70(pr)17(ogram.)]TJ -9.677 -1.2 Td (When it executes the command,)Tj /TT0 1 Tf 14.346 0 Td (popen)Tj /T1_1 1 Tf 3.25 0 Td (does the equivalent of)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5824 318.2618 Tm (execl\("/bin/sh", "sh", "-c",)Tj /T1_2 1 Tf 17.4 0 Td (command)Tj /TT0 1 Tf 0.6 Tc (,N)Tj 0 Tc 5.707 0 Td (ULL\);)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 300.264 Tm [(which )-74(executes )-74(the )-74(shell )-74(and)]TJ /T1_2 1 Tf 13.251 0 Td (command)Tj /T1_1 1 Tf 4.231 0 Td [(with )-74(the )-74(envir)18(onment )-74(inherited )-74(by )-74(the )-74(caller)]TJ 0.5743 Tc 19.916 0 Td (.A)Tj 0 Tc -37.398 -1.2 Td [(malicious )-149(user )-149(can )-149(manipulate )-149(the )-149(envir)20(onment )-148(so )-148(that )-148(the )-148(shell )-148(executes )-148(commands)]TJ T* [(other )-219(than )-219(those )-219(intended, )-219(with )-219(the )-219(elevated )-219(permissions )-219(granted )-219(by )-219(the )-219(set-ID )-219(\336le)]TJ T* (mode.)Tj 1.8 -1.2 Td [(One )-208(thing )-208(that)]TJ /TT0 1 Tf 7.293 0 Td (popen)Tj /T1_1 1 Tf 3.458 0 Td [(is )-208(especially )-208(well )-208(suited )-208(for )-208(is )-208(executing )-208(simple )-208(\336lters )-208(to)]TJ -12.551 -1.2 Td [(transform )-250(the )-250(input )-250(or )-250(output )-250(of )-250(the )-250(r)8(unning )-250(command.)-751(Such )-250(is )-250(the )-250(case )-250(when )-250(a)]TJ T* (command wants to build its own pipeline.)Tj /TT2 1 Tf -3.6 -3 Td (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(Consider )-65(an )-65(application )-65(that )-65(writes )-65(a )-65(pr)18(ompt )-65(to )-65(standar)]TJ 0.3155 Tc 25.125 0 Td (do)Tj 0 Tc 1.472 0 Td [(utput )-65(and )-65(r)18(eads )-65(a )-65(line )-65(fr)16(om)]TJ -26.597 -1.2 Td (standar)Tj 0.4365 Tc 3.32 0 Td (di)Tj 0 Tc 1.339 0 Td [(nput. )-436(W)55(ith )-187(the)]TJ /TT0 1 Tf 7.453 0 Td (popen)Tj /T1_1 1 Tf 3.437 0 Td [(function, )-187(we )-187(can )-187(interpose )-187(a )-187(pr)18(ogram )-187(between )-187(the)]TJ -15.548 -1.2 Td [(application )-18(and )-18(its )-18(input )-18(to )-18(transform )-18(the )-18(input.)-515(Figur)]TJ 0.2676 Tc 24.18 0 Td (e1)Tj 0 Tc 1.247 0 Td [(5.13 )-18(shows )-18(the )-18(arrangement )-18(of)]TJ -25.426 -1.2 Td [(pr)18(ocesses in this situation.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47250 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.3)]TJ /TT0 1 Tf 29.686 0 Td (popen)Tj /T1_0 1 Tf 3.5 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (pclose)Tj /T1_0 1 Tf 4.1 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (545)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (})Tj 0 -2.259 TD (childpid[fileno\(fp\)] = pid; /* remember child pid for this fd */)Tj 0 -1.189 TD (return\(fp\);)Tj -2.4 -1.189 Td (})Tj 0 -2.259 TD (int)Tj 0 -1.189 TD (pclose\(FILE *fp\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(fd,)-600(stat;)]TJ T* [(pid_t )-1200(pid;)]TJ 0 -2.259 TD (if \(childpid == NULL\) {)Tj 2.4 -1.189 Td (errno = EINVAL;)Tj 0 -1.189 TD [(return\(-1\); )-2400(/*)-600(popen\(\) has never been called */)]TJ -2.4 -1.189 Td (})Tj 0 -2.259 TD (fd = fileno\(fp\);)Tj 0 -1.189 TD (if \(fd >= maxfd\) {)Tj 2.4 -1.189 Td (errno = EINVAL;)Tj 0 -1.189 TD [(return\(-1\); )-2400(/*)-600(invalid file descriptor */)]TJ -2.4 -1.189 Td (})Tj T* (if \(\(pid = childpid[fd]\) == 0\) {)Tj 2.4 -1.189 Td (errno = EINVAL;)Tj T* [(return\(-1\); )-2400(/*)-600(fp wasn\325t opened by popen\(\) */)]TJ -2.4 -1.189 Td (})Tj 0 -2.259 TD (childpid[fd] = 0;)Tj 0 -1.189 TD (if \(fclose\(fp\) == EOF\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -2.259 Td (while \(waitpid\(pid, &stat, 0\) < 0\))Tj 2.4 -1.189 Td (if \(errno != EINTR\))Tj 2.4 -1.189 Td (return\(-1\); /* error other than EINTR from waitpid\(\) */)Tj -4.8 -2.259 Td [(return\(stat\); )-1200(/*)-600(return child\325s termination status */)]TJ -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2878.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 239.3993 271.7564 Tm (Figure 15.12)Tj /T1_0 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (popen)Tj /T1_0 1 Tf 3.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (pclose)Tj /T1_0 1 Tf 3.85 0 Td (functions)Tj 9.9988 0 0 9.9988 129.5839 247.7593 Tm [(Although )-144(the )-144(cor)]TJ 0.3943 Tc 7.807 0 Td (eo)Tj 0 Tc 1.419 0 Td (f)Tj /TT0 1 Tf 0.727 0 Td (popen)Tj /T1_0 1 Tf 3.394 0 Td [(is )-144(similar )-144(to )-144(the )-144(code )-144(we\325ve )-144(used )-144(earlier )-144(in )-144(this )-144(chapter)71(,)]TJ -13.348 -1.2 Td (ther)Tj 0.2781 Tc 1.764 0 Td (ea)Tj -0.018 Tc 1.257 0 Td [(re )-64(m)]TJ 0 Tc 2.017 0 Td [(any )-28(details )-28(that )-28(we )-28(need )-28(to )-28(take )-28(car)]TJ 0.2781 Tc 15.759 0 Td (eo)Tj 0 Tc 1.303 0 Td [(f. )-278(First,)-278(each )-28(time)]TJ /TT0 1 Tf 8.171 0 Td (popen)Tj /T1_0 1 Tf 3.278 0 Td [(is )-28(called, )-28(we)]TJ -33.55 -1.2 Td [(have )-23(to )-23(r)18(emember )-23(the )-23(pr)18(ocess )-23(ID )-23(of )-23(the )-23(child )-23(that )-23(we )-23(cr)18(eate )-23(and )-23(either )-23(its )-23(\336le )-23(descriptor)]TJ 0 -1.2 TD (or)Tj /TT0 1 Tf 1.398 0 Td (FILE)Tj /T1_0 1 Tf 2.857 0 Td (pointer)Tj 0.7068 Tc 3.146 0 Td (.W)Tj 0.4568 Tc 1.865 0 Td (ec)Tj 0 Tc 1.38 0 Td [(hoose )-207(to )-207(save )-207(the )-207(child\325s )-207(pr)18(ocess )-207(ID )-207(in )-207(the )-207(array)]TJ /TT0 1 Tf 23.305 0 Td (childpid)Tj /T1_0 1 Tf (,)Tj -33.95 -1.2 Td [(which )-50(we )-50(index )-50(by )-50(the )-50(\336le )-50(descriptor)]TJ 0.5499 Tc 16.634 0 Td (.T)Tj 0 Tc 1.413 0 Td [(his )-50(way)]TJ 0.2999 Tc 3.376 0 Td (,w)Tj 0 Tc 1.384 0 Td (hen)Tj /TT0 1 Tf 1.943 0 Td (pclose)Tj /T1_0 1 Tf 3.9 0 Td [(is )-50(called )-50(with )-50(the)]TJ /TT0 1 Tf 7.951 0 Td (FILE)Tj /T1_0 1 Tf -36.6 -1.2 Td [(pointer )-255(as )-255(its )-255(ar)18(gument, )-255(we )-255(call )-255(the )-255(standar)]TJ 0.5051 Tc 20.822 0 Td (dI)Tj 0 Tc 1.453 0 Td [(/O )-255(function)]TJ /TT0 1 Tf 6.109 0 Td (fileno)Tj /T1_0 1 Tf 4.105 0 Td [(to )-255(get )-255(the )-255(\336le)]TJ -32.49 -1.2 Td [(descriptor )-271(and )-271(then )-271(have )-271(the )-271(child )-271(pr)20(ocess )-271(ID )-271(for )-271(the )-271(call )-271(to)]TJ /TT0 1 Tf 29.619 0 Td (waitpid)Tj /T1_0 1 Tf 0.7706 Tc (.S)Tj 0 Tc 5.746 0 Td [(ince )-271(it\325s)]TJ -35.364 -1.2 Td [(possible )-57(for )-57(a )-57(given )-57(pr)18(ocess )-57(to )-57(call)]TJ /TT0 1 Tf 15.695 0 Td (popen)Tj /T1_0 1 Tf 3.307 0 Td (mor)Tj 0.3067 Tc 1.806 0 Td (et)Tj 0 Tc 1.112 0 Td [(han )-57(once, )-57(we )-57(dynamically )-57(allocate )-57(the)]TJ /TT0 1 Tf -21.92 -1.2 Td (childpid)Tj /T1_0 1 Tf 5.215 0 Td [(array )-165(\(the )-165(\336rst )-165(time)]TJ /TT0 1 Tf 9.454 0 Td (popen)Tj /T1_0 1 Tf 3.415 0 Td [(is )-165(called\), )-165(with )-165(r)18(oom )-165(for )-165(as )-165(many )-165(childr)18(en )-165(as)]TJ -18.083 -1.2 Td (ther)Tj 0.25 Tc 1.764 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(\336)]TJ 0 Tc 1.711 0 Td (le descriptors.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47251 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.18)]TJ /TT0 1 Tf 35.803 0 Td (system)Tj /T1_0 1 Tf 4.1 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (371)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(POSIX.1 )-31(states )-31(that )-31(if)]TJ /TT0 1 Tf 9.629 0 Td (wait)Tj /T1_0 1 Tf 2.681 0 Td (or)Tj /TT0 1 Tf 1.222 0 Td (waitpid)Tj /T1_0 1 Tf -0.018 Tc 4.481 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-31(the )-31(status )-31(of )-31(a )-31(child )-31(pr)18(ocess )-31(while)]TJ /TT0 1 Tf 17.936 0 Td (SIGCHLD)Tj /T1_0 1 Tf 4.481 0 Td (is)Tj -41.285 -1.25 Td [(pending, )-144(then)]TJ /TT0 1 Tf 6.709 0 Td (SIGCHLD)Tj /T1_0 1 Tf 4.594 0 Td [(should )-144(not )-144(be )-144(deliver)18(ed )-144(to )-144(the )-144(pr)18(ocess )-144(unless )-144(the )-144(status )-144(of )-144(another)]TJ -11.303 -1.25 Td [(child )-27(pr)18(ocess )-27(is )-27(also )-27(available.)-528(Fr)18(eeBSD )-27(8.0, )-27(Mac )-27(OS )-27(X )-27(10.6.8, )-27(and )-27(Solaris )-27(10 )-27(all )-27(implement )-27(this)]TJ 0 -1.25 TD [(semantic. )-643(Linux)-644(3.2.0, )-393(however)]TJ 0.6435 Tc 15.019 0 Td (,d)Tj 0 Tc 1.504 0 Td [(oesn\325t )167(\321)]TJ /TT0 1 Tf 3.802 0 Td (SIGCHLD)Tj /T1_0 1 Tf -0.018 Tc 4.843 0 Td (re)Tj 0 Tc 0.856 0 Td [(mains )-393(pending )-393(after )-393(the)]TJ /TT0 1 Tf 12.376 0 Td (system)Tj /T1_0 1 Tf -38.4 -1.25 Td [(function )-35(calls)]TJ /TT0 1 Tf 6.227 0 Td (waitpid)Tj /T1_0 1 Tf 0.2848 Tc (;w)Tj 0 Tc 5.569 0 Td [(hen )-35(the )-35(signal )-35(is )-35(unblocked, )-35(it )-35(is )-35(deliver)18(ed )-35(to )-35(the )-35(caller)]TJ 0.5348 Tc 24.251 0 Td (.I)Tj 0 Tc 1.122 0 Td [(f)-285(we)-285(c)1(alled)]TJ /TT0 1 Tf -37.168 -1.25 Td (wait)Tj /T1_0 1 Tf 2.712 0 Td [(in )-61(the)]TJ /TT0 1 Tf 2.883 0 Td (sig_chld)Tj /T1_0 1 Tf 5.112 0 Td [(function )-62(in )-62(Figur)]TJ 0.3116 Tc 7.586 0 Td (e1)Tj 0 Tc 1.291 0 Td [(0.26, )-62(a )-62(Linux )-62(system )-62(would )-62(r)20(eturn)]TJ /TT1 1 Tf 15.712 0 Td (!)Tj /T1_0 1 Tf 0.3116 Tc (1w)Tj 0 Tc 2.195 0 Td (ith)Tj /TT0 1 Tf 1.511 0 Td (errno)Tj /T1_0 1 Tf -39 -1.25 Td [(set )-28(to)]TJ /TT0 1 Tf 2.657 0 Td (ECHILD)Tj /T1_0 1 Tf 0.2781 Tc (,s)Tj 0 Tc 4.552 0 Td [(ince )-28(the)]TJ /TT0 1 Tf 3.739 0 Td (system)Tj /T1_0 1 Tf 3.878 0 Td [(function )-28(alr)18(eady )-28(r)18(etrieved )-28(the )-28(termination )-28(status )-28(of )-28(the )-28(child.)]TJ 9.9994 0 0 9.9994 147.5918 589.9646 Tm [(Many older texts show the ignoring of the interr)8(upt and quit signals as follows:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 169.1905 573.2656 Tm (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(pid == 0\) {)Tj 0.6 -1.189 Td (/* child */)Tj 0 -1.189 TD (execl\(...\);)Tj 0 -1.189 TD (_exit\(127\);)Tj -2.4 -1.189 Td (})Tj 0 -2.378 TD (/* parent */)Tj 0 -1.189 TD (old_intr = signal\(SIGINT, SIG_IGN\);)Tj T* (old_quit = signal\(SIGQUIT, SIG_IGN\);)Tj T* (waitpid\(pid, &status, 0\))Tj T* (signal\(SIGINT, old_intr\);)Tj T* (signal\(SIGQUIT, old_quit\);)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5929 416.175 Tm [(The )-128(pr)18(oblem )-128(with )-128(this )-128(sequence )-128(of )-128(code )-128(is )-128(that )-128(we )-128(have )-128(no )-128(guarantee )-128(after )-128(the)]TJ /TT0 1 Tf 36.6 0 Td (fork)Tj /T1_0 1 Tf -0.018 Tc -36.6 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(gar)18(ding )-108(whether )-108(the )-108(par)18(ent )-108(or )-108(child )-108(r)8(uns )-108(\336rst.)-608(If )-108(the )-108(child )-108(r)8(uns )-108(\336rst )-108(and )-108(the )-108(par)19(ent)]TJ -0.856 -1.2 Td [(doesn\325t )-5(r)8(un )-5(for )-5(some )-5(time )-5(after)72(,)-255(an)-255(i)-1(nterr)8(upt )-5(signal )-5(might )-5(be )-5(generated )-5(befor)]TJ 0.2555 Tc 33.758 0 Td (et)Tj 0 Tc 1.06 0 Td [(he )-5(par)18(ent)]TJ -34.818 -1.2 Td [(is )-203(able )-203(to )-203(change )-203(its )-203(disposition )-203(to )-203(be )-203(ignor)15(ed. )-453(For)-454(this )-203(r)18(eason, )-203(in )-203(Figur)]TJ 0.4534 Tc 33.801 0 Td (e1)Tj 0 Tc 1.432 0 Td [(0.28, )-203(we)]TJ -35.234 -1.2 Td (change the disposition of the signals befor)Tj 0.25 Tc 18.585 0 Td (et)Tj 0 Tc 1.055 0 Td (he)Tj /TT0 1 Tf 1.311 0 Td (fork)Tj /T1_0 1 Tf (.)Tj -19.151 -1.2 Td [(Note )-80(that )-80(we )-80(have )-80(to )-80(r)18(eset )-80(the )-80(dispositions )-80(of )-80(these )-80(two )-80(signals )-80(in )-80(the )-80(child )-80(befor)14(e)]TJ -1.8 -1.2 Td [(the )-54(call )-54(to)]TJ /TT0 1 Tf 4.697 0 Td (execl)Tj /T1_0 1 Tf 0.554 Tc (.T)Tj 0 Tc 4.417 0 Td [(his )-54(allows)]TJ /TT0 1 Tf 4.791 0 Td (execl)Tj /T1_0 1 Tf 3.304 0 Td [(to )-54(change )-54(their )-54(dispositions )-54(to )-54(the )-54(default, )-54(based)]TJ -17.209 -1.2 Td [(on the caller)-74(\325s dispositions, as we described in Section 8.10.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3322.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 9.9988 0 0 9.9988 93.5888 299.764 Tm [(Return V)60(alue fr)20(om)]TJ /TT3 1 Tf 8.866 0 Td (system)Tj /T1_0 1 Tf -5.266 -2.4 Td [(The )-47(r)18(eturn )-47(value )-47(fr)18(om)]TJ /TT0 1 Tf 10.201 0 Td (system)Tj /T1_0 1 Tf 3.897 0 Td [(is )-47(the )-47(termination )-47(status )-47(of )-47(the )-47(shell, )-47(which )-47(isn\325t )-47(always)]TJ -14.099 -1.2 Td [(the )-106(termination )-106(status )-106(of )-106(the )-106(command )-106(string.)]TJ -0.092 Tc 21.475 0 Td [(We )-291(s)]TJ 0 Tc 2.168 0 Td [(aw )-107(some )-107(examples )-107(in )-107(Figur)]TJ 0.3566 Tc 12.521 0 Td (e8)Tj 0 Tc 1.336 0 Td (.23,)Tj -37.5 -1.2 Td [(and )-106(the )-106(r)18(esults )-106(wer)17(e)-356(as)-356(we)-356(e)-1(xpected: )-106(if )-106(we )-106(execute )-106(a )-106(simple )-106(command, )-106(such )-106(as)]TJ /TT0 1 Tf 36.35 0 Td (date)Tj /T1_0 1 Tf (,)Tj -36.35 -1.2 Td [(the )-435(termination )-435(status )-435(is )-435(0.)-935(Executing )-435(the )-435(shell )-435(command)]TJ /TT0 1 Tf 29.384 0 Td [(exit )267(44)]TJ /T1_0 1 Tf 4.619 0 Td [(gave )-435(us )-435(a)]TJ -34.002 -1.2 Td [(termination status of 44.)-500(What happens with signals?)]TJ 1.8 -1.2 Td [(Let\325s )-68(r)8(un )-68(the )-68(pr)18(ogram )-68(in )-68(Figur)]TJ 0.3177 Tc 13.78 0 Td (e8)Tj 0 Tc 1.297 0 Td [(.24 )-68(and )-68(send )-68(some )-68(signals )-68(to )-68(the )-68(command )-68(that\325s)]TJ -16.876 -1.2 Td (executing:)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5824 187.0775 Tm ($)Tj /TT3 1 Tf 1.2 0 Td (tsys "sleep 30")Tj -1.2 -1.189 Td (\366C)Tj /TT0 1 Tf (normal termination, exit status = 130)Tj /T1_2 1 Tf 24.8 0 Td [(we pr)18(ess the interrupt key)]TJ /TT0 1 Tf -24.8 -1.189 Td ($)Tj /TT3 1 Tf 1.2 0 Td (tsys "sleep 30")Tj -1.2 -1.189 Td (\366\\)Tj /TT0 1 Tf (sh: 946 Quit)Tj /T1_2 1 Tf 24.8 0 Td [(we pr)18(ess the quit key)]TJ /TT0 1 Tf -24.8 -1.189 Td (normal termination, exit status = 131)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47252 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (370)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (if \(sigaction\(SIGINT, &ignore, &saveintr\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td (if \(sigaction\(SIGQUIT, &ignore, &savequit\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td [(sigemptyset\(&chldmask\); )-4800(/*)-600(now block SIGCHLD */)]TJ 0 -1.189 TD (sigaddset\(&chldmask, SIGCHLD\);)Tj 0 -1.189 TD (if \(sigprocmask\(SIG_BLOCK, &chldmask, &savemask\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -2.14 Td (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td [(status = -1;)-2400(/* probably out of processes */)]TJ 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(pid == 0\) {)Tj 17.4 0 Td (/* child */)Tj -16.8 -1.189 Td (/* restore previous signal actions & reset signal mask */)Tj T* (sigaction\(SIGINT, &saveintr, NULL\);)Tj T* (sigaction\(SIGQUIT, &savequit, NULL\);)Tj T* (sigprocmask\(SIG_SETMASK, &savemask, NULL\);)Tj 0 -2.14 TD (execl\("/bin/sh", "sh", "-c", cmdstring, \(char *\)0\);)Tj 0 -1.189 TD [(_exit\(127\); )-2400(/*)-600(exec error */)]TJ 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 17.4 0 Td (/* parent */)Tj -16.8 -1.189 Td (while \(waitpid\(pid, &status, 0\) < 0\))Tj 2.4 -1.189 Td (if \(errno != EINTR\) {)Tj 2.4 -1.189 Td (status = -1; /* error other than EINTR from waitpid\(\) */)Tj 0 -1.189 TD (break;)Tj -2.4 -1.189 Td (})Tj -4.8 -1.189 Td (})Tj 0 -2.14 TD (/* restore previous signal actions & reset signal mask */)Tj 0 -1.189 TD (if \(sigaction\(SIGINT, &saveintr, NULL\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td (if \(sigaction\(SIGQUIT, &savequit, NULL\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td (if \(sigprocmask\(SIG_SETMASK, &savemask, NULL\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -2.14 Td (return\(status\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2888.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 206.0313 272.8263 Tm (Figure 10.28)Tj /T1_1 1 Tf 6.195 0 Td [(Corr)18(ect POSIX.1 implementation of)]TJ /TT0 1 Tf 15.884 0 Td (system)Tj /T1_1 1 Tf 3.85 0 Td (function)Tj 9.9988 0 0 9.9988 129.5846 245.2296 Tm [(If )-2(we )-2(link )-2(the )-2(pr)18(ogram )-2(in )-2(Figur)]TJ 0.252 Tc 13.716 0 Td (e1)Tj 0 Tc 1.231 0 Td [(0.26 )-2(with )-2(this )-2(implementation )-2(of )-2(the)]TJ /TT0 1 Tf 16.244 0 Td (system)Tj /T1_1 1 Tf 3.852 0 Td (function,)Tj -35.043 -1.2 Td [(the r)18(esulting binary dif)18(fers fr)18(om the last \(\337awed\) one in the following ways.)]TJ 1.8 -2.04 Td [(1. )-633(No)-476(signal )-226(is )-226(sent )-226(to )-226(the )-226(calling )-226(pr)18(ocess )-226(when )-226(we )-226(type )-226(the )-226(interr)8(upt )-226(or )-226(quit)]TJ 1.633 -1.2 Td [(character)74(.)]TJ -1.633 -1.6 Td [(2. )-633(When)-555(the)]TJ /TT0 1 Tf 6.774 0 Td (ed)Tj /T1_1 1 Tf 1.755 0 Td [(command )-305(exits,)]TJ /TT0 1 Tf 7.846 0 Td (SIGCHLD)Tj /T1_1 1 Tf 4.755 0 Td [(is )-305(not )-305(sent )-305(to )-305(the )-305(calling )-305(pr)17(ocess.)]TJ -19.497 -1.2 Td [(Instead, )-76(it )-76(is )-76(blocked )-76(until )-76(we )-76(unblock )-76(it )-76(in )-76(the )-76(last )-76(call )-76(to)]TJ /TT0 1 Tf 26.357 0 Td (sigprocmask)Tj /T1_1 1 Tf 0.3262 Tc (,a)Tj 0 Tc 7.676 0 Td (fter)Tj -34.034 -1.2 Td (the)Tj /TT0 1 Tf 2.152 0 Td (system)Tj /T1_1 1 Tf 4.365 0 Td [(function )-515(r)18(etrieves )-515(the )-515(child\325s )-515(termination )-515(status )-515(by )-515(calling)]TJ /TT0 1 Tf -6.516 -1.2 Td (waitpid)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47253 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(9.8)]TJ 38.524 0 Td [(Job )-250(Contr)18(ol)]TJ /T1_1 1 Tf 7.309 0 Td (301)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 670.2598 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (fg %1)Tj /T1_2 1 Tf 14.8 0 Td [(bring job number 1 into the for)18(egr)18(ound)]TJ /TT0 1 Tf -16 -1.189 Td (cat > temp.foo)Tj /T1_2 1 Tf 16 0 Td [(the shell tells us which job is now in the for)18(egr)18(ound)]TJ /TT1 1 Tf -16 -1.189 Td (hello, world)Tj /T1_2 1 Tf 16 0 Td (enter one line)Tj /TT1 1 Tf -16 -1.189 Td (\366D)Tj /T1_2 1 Tf 16 0 Td (type the end-of-\336le character)Tj /TT0 1 Tf -16 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (cat temp.foo)Tj /T1_2 1 Tf 14.8 0 Td (check that the one line was put into the \336le)Tj /TT0 1 Tf -16 -1.189 Td (hello, world)Tj /T1_0 1 Tf 7.9995 0 0 7.9995 183.589 595.5643 Tm [(Note )-189(that )-189(this )-189(example )-189(doesn\325t )-189(work )-189(on )-189(Mac )-189(OS )-189(X )-189(10.6.8.)-694(When )-189(we )-189(try )-189(to )-189(bring )-189(the)]TJ /TT0 1 Tf 40.201 0 Td (cat)Tj /T1_0 1 Tf -40.201 -1.25 Td [(command )-125(into )-125(the )-125(for)19(egr)18(ound, )-125(the)]TJ /TT0 1 Tf 16.101 0 Td (read)Tj /T1_0 1 Tf 2.775 0 Td [(fails )-125(with)]TJ /TT0 1 Tf 4.621 0 Td (errno)Tj /T1_0 1 Tf 3.375 0 Td [(set )-125(to)]TJ /TT0 1 Tf 2.85 0 Td (EINTR)Tj /T1_0 1 Tf 0.6248 Tc (.S)Tj 0 Tc 4.4 0 Td [(ince )-125(Mac )-125(OS )-125(X )-125(is)]TJ -34.122 -1.25 Td [(based on Fr)18(eeBSD, and Fr)18(eeBSD works as expected, this must be a bug in Mac OS X.)]TJ 9.9994 0 0 9.9994 129.5923 553.5668 Tm [(The )-216(shell )-216(starts )-216(the)]TJ /TT0 1 Tf 9.387 0 Td (cat)Tj /T1_0 1 Tf 2.266 0 Td [(pr)18(ocess )-216(in )-216(the )-216(backgr)18(ound, )-216(but )-216(when)]TJ /TT0 1 Tf 17.888 0 Td (cat)Tj /T1_0 1 Tf 2.266 0 Td [(tries )-216(to )-216(r)18(ead )-216(its)]TJ -31.807 -1.2 Td (standar)Tj 0.5187 Tc 3.32 0 Td (di)Tj 0 Tc 1.421 0 Td [(nput )-269(\(the )-269(contr)18(olling )-269(terminal\), )-269(the )-269(terminal )-269(driver)]TJ 0.5188 Tc 23.902 0 Td (,k)Tj 0 Tc 1.325 0 Td [(nowing )-269(that )-269(it )-269(is )-269(a)]TJ -29.968 -1.2 Td [(backgr)18(ound )-17(job, )-17(sends )-17(the)]TJ /TT0 1 Tf 11.884 0 Td (SIGTTIN)Tj /T1_0 1 Tf 4.467 0 Td [(signal )-16(to )-16(the )-16(backgr)18(ound )-16(job.)-516(The )-16(shell )-16(detects )-16(this)]TJ -16.351 -1.2 Td [(change )-30(in )-30(status )-30(of )-30(its )-30(child )-30(\(r)17(ecall )-30(our )-30(discussion )-30(of )-30(the)]TJ /TT0 1 Tf 25.006 0 Td (wait)Tj /T1_0 1 Tf 2.68 0 Td (and)Tj /TT0 1 Tf 1.973 0 Td (waitpid)Tj /T1_0 1 Tf 4.48 0 Td [(function )-30(in)]TJ -34.14 -1.2 Td [(Section )-88(8.6\) )-88(and )-88(tells )-88(us )-88(that )-88(the )-88(job )-88(has )-88(been )-88(stopped.)]TJ -0.092 Tc 25.171 0 Td [(We )-272(t)]TJ 0 Tc 2.051 0 Td [(hen )-88(move )-88(the )-88(stopped )-88(job)]TJ -27.223 -1.2 Td [(into )-137(the )-137(for)18(egr)18(ound )-137(with )-137(the )-137(shell\325s)]TJ /TT0 1 Tf 16.653 0 Td (fg)Tj /T1_0 1 Tf 1.587 0 Td [(command. )-387(\(Refer)-387(to )-137(the )-137(manual )-137(page )-137(for )-137(the)]TJ -18.24 -1.2 Td [(shell )-68(that )-68(you )-68(ar)]TJ 0.3183 Tc 7.338 0 Td (eu)Tj 0 Tc 1.4 0 Td [(sing )-68(for )-68(all )-68(the )-68(details )-68(on )-68(its )-68(job )-68(contr)18(ol )-68(commands, )-68(such )-68(as)]TJ /TT0 1 Tf 27.05 0 Td (fg)Tj /T1_0 1 Tf 1.518 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (bg)Tj /T1_0 1 Tf 0.3432 Tc (,a)Tj 0 Tc 2.293 0 Td [(nd )-93(the )-93(various )-93(ways )-93(to )-93(identify )-93(the )-93(dif)17(fer)18(ent )-93(jobs.\))-593(Doing )-93(this )-93(causes )-93(the )-93(shell )-93(to)]TJ -2.293 -1.2 Td [(place )-146(the )-146(job )-146(into )-146(the )-146(for)19(egr)18(ound )-146(pr)18(ocess )-146(gr)18(oup )-146(\()]TJ /TT0 1 Tf 22.655 0 Td (tcsetpgrp)Tj /T1_0 1 Tf 0.3958 Tc (\)a)Tj 0 Tc 6.629 0 Td [(nd )-146(send )-146(the )-146(continue)]TJ -29.284 -1.2 Td [(signal )-10(\()]TJ /TT0 1 Tf (SIGCONT)Tj /T1_0 1 Tf [(\))-260(to)-260(the )-10(pr)18(ocess )-10(gr)18(oup. )-260(Since)-260(it )-10(is )-10(now )-10(in )-10(the )-10(for)18(egr)18(ound )-10(pr)18(ocess )-10(gr)18(oup,)]TJ -0 -1.2 Td [(the job can r)18(ead fr)18(om the contr)18(olling terminal.)]TJ 1.8 -1.2 Td [(What )-199(happens )-199(if )-199(a )-199(backgr)18(ound )-199(job )-199(sends )-199(its )-199(output )-199(to )-199(the )-199(contr)16(olling )-199(terminal?)]TJ -1.8 -1.2 Td [(This )-323(is )-323(an )-323(option )-323(that )-323(we )-323(can )-323(allow )-323(or )-323(disallow)]TJ 0.8232 Tc 23.43 0 Td (.N)Tj 0 Tc 1.904 0 Td [(ormally)111(,)-573(we)-573(use )-323(the)]TJ /TT0 1 Tf 10.1 0 Td (stty)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj -38.667 -1.24 Td [(command )-216(to )-216(change )-216(this )-216(option.)-717(\(W)92(e\325ll )-216(see )-216(in )-216(Chapter )-216(18 )-216(how )-216(we )-216(can )-216(change )-216(this)]TJ 0 -1.2 Td [(option fr)18(om a pr)18(ogram.\) )-250(The)-250(following example shows how this works:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5915 368.8779 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (cat temp.foo &)Tj /T1_2 1 Tf 12.4 0 Td [(execute in backgr)18(ound)]TJ /TT0 1 Tf -13.6 -1.189 Td [([1] )-2400(1719)]TJ 0.6 Tc 0 -1.189 TD ($h)Tj 0 Tc 1.8 0 Td (ello, world)Tj /T1_2 1 Tf 11.8 0 Td [(the output fr)18(om the backgr)18(ound job appears after the pr)18(ompt)]TJ T* [(we pr)18(ess RETURN)]TJ /TT0 1 Tf -13.6 -1.189 Td [([1] +)-1200(Done )-3600(cat)-600(temp.foo &)]TJ 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (stty tostop)Tj /T1_2 1 Tf 12.4 0 Td [(disable ability of backgr)18(ound jobs to output to contr)18(olling terminal)]TJ /TT0 1 Tf -13.6 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (cat temp.foo &)Tj /T1_2 1 Tf 12.4 0 Td [(try it again in the backgr)18(ound)]TJ /TT0 1 Tf -13.6 -1.189 Td [([1] )-2400(1721)]TJ 0 -1.189 TD ($)Tj /T1_2 1 Tf 13.6 0 Td [(we pr)18(ess RETURN and \336nd the job is stopped)]TJ /TT0 1 Tf -13.6 -1.189 Td [([1] + Stopped\(SIGTTOU\))-3600(cat temp.foo &)]TJ T* ($)Tj /TT1 1 Tf 1.2 0 Td (fg %1)Tj /T1_2 1 Tf -0.018 Tc 12.4 0 Td (re)Tj 0 Tc 0.76 0 Td [(sume stopped job in the for)18(egr)18(ound)]TJ /TT0 1 Tf -14.36 -1.189 Td (cat temp.foo)Tj /T1_2 1 Tf 13.6 0 Td [(the shell tells us which job is now in the for)18(egr)18(ound)]TJ /TT0 1 Tf -13.6 -1.189 Td (hello, world)Tj /T1_2 1 Tf 13.6 0 Td [(and her)18(e)-250(is)-250(its output)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5925 222.4866 Tm [(When )-97(we )-97(disallow )-97(backgr)18(ound )-97(jobs )-97(fr)18(om )-97(writing )-97(to )-97(the )-97(contr)20(olling )-97(terminal,)]TJ /TT0 1 Tf 35.146 0 Td (cat)Tj /T1_0 1 Tf 2.147 0 Td (will)Tj -37.293 -1.2 Td [(block )-26(when )-26(it )-26(tries )-26(to )-26(write )-26(to )-26(its )-26(standar)]TJ 0.2761 Tc 18.038 0 Td (do)Tj 0 Tc 1.433 0 Td [(utput, )-26(because )-26(the )-26(terminal )-26(driver )-26(identi\336es)]TJ -19.471 -1.2 Td [(the )-63(write )-63(as )-63(coming )-63(fr)17(om )-63(a )-63(backgr)18(ound )-63(pr)18(ocess )-63(and )-63(sends )-63(the )-63(job )-63(the)]TJ /TT0 1 Tf 31.592 0 Td (SIGTTOU)Tj /T1_0 1 Tf 4.513 0 Td (signal.)Tj -36.106 -1.2 Td [(As )-112(with )-112(the )-112(pr)19(evious )-111(example, )-111(when )-111(we )-111(use )-111(the )-111(shell\325s)]TJ /TT0 1 Tf 25.574 0 Td (fg)Tj /T1_0 1 Tf 1.561 0 Td [(command )-111(to )-111(bring )-111(the )-111(job)]TJ -27.136 -1.2 Td [(into the for)18(egr)18(ound, the job completes.)]TJ 1.8 -1.2 Td (Figur)Tj 0.65 Tc 2.383 0 Td (e9)Tj 0 Tc 1.629 0 Td [(.9 )-400(summarizes )-400(some )-400(of )-400(the )-400(featur)18(es )-400(of )-400(job )-400(contr)18(ol )-400(that )-400(we\325ve )-400(been)]TJ -5.812 -1.2 Td [(describing. )-298(The)-298(solid )-48(lines )-48(thr)18(ough )-48(the )-48(terminal )-48(driver )-48(box )-48(mean )-48(that )-48(the )-48(terminal )-48(I/O)]TJ -0 -1.2 Td [(and )-108(the )-108(terminal-generated )-108(signals )-108(ar)]TJ 0.358 Tc 16.944 0 Td (ea)Tj 0 Tc 1.337 0 Td [(lways )-108(connected )-108(fr)18(om )-108(the )-108(for)18(egr)18(ound )-108(pr)18(ocess)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47254 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (294)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Relationships)]TJ 39.241 0 Td [(Chapter )-250(9)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -1.902 TD (pid_t getpgid\(pid_t)Tj /T1_2 1 Tf 12 0 Td (pid)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 7.762 -1.902 Td [(Returns: pr)18(ocess gr)18(oup ID if OK,)]TJ /TT1 1 Tf 14.702 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6195.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 603.5876 Tm (If)Tj /T1_2 1 Tf 0.92 0 Td (pid)Tj /T1_1 1 Tf 1.528 0 Td [(is 0, the pr)18(ocess gr)18(oup ID of the calling pr)18(ocess is r)18(eturned. )-250(Thus)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 172.5794 585.8194 Tm (getpgid\(0\);)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5845 566.7518 Tm (is equivalent to)Tj /TT0 1 Tf 8.9989 0 0 8.9989 172.5794 548.984 Tm (getpgrp\(\);)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 147.5824 529.9164 Tm [(Each )-50(pr)18(ocess )-50(gr)18(oup )-50(can )-50(have )-50(a )-50(pr)16(ocess )-50(gr)18(oup )-50(leader)]TJ 0.5504 Tc 23.329 0 Td (.T)Tj 0 Tc 1.413 0 Td [(he )-50(leader )-50(is )-50(identi\336ed )-50(by )-50(its)]TJ -26.542 -1.2 Td [(pr)18(ocess gr)18(oup ID being equal to its pr)18(ocess ID.)]TJ 1.8 -1.2 Td [(It )-5(is )-5(possible )-5(for )-5(a )-5(pr)18(ocess )-5(gr)18(oup )-5(leader )-5(to )-5(cr)18(eate )-5(a )-5(pr)18(ocess )-5(gr)18(oup, )-5(cr)18(eate )-5(pr)18(ocesses )-5(in)]TJ -1.8 -1.2 Td [(the )-150(gr)18(oup, )-150(and )-150(then )-150(terminate.)-650(The )-150(pr)18(ocess )-150(gr)20(oup )-150(still )-150(exists, )-150(as )-150(long )-150(as )-150(at )-150(least )-150(one)]TJ 0 -1.2 TD [(pr)18(ocess )-218(is )-218(in )-218(the )-218(gr)18(oup, )-218(r)17(egar)18(dless )-218(of )-218(whether )-218(the )-218(gr)18(oup )-218(leader )-218(terminates.)-718(This )-218(is)]TJ T* [(called )-168(the )-168(pr)18(ocess )-168(gr)18(oup )-168(lifetime)]TJ 0.0833 Tc 15.108 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(he )-168(period )-168(of )-168(time )-168(that )-168(begins )-168(when )-168(the )-168(gr)20(oup )-168(is)]TJ -16.517 -1.2 Td [(cr)18(eated )-34(and )-34(ends )-34(when )-34(the )-34(last )-34(r)19(emaining )-34(pr)18(ocess )-34(leaves )-34(the )-34(gr)19(oup. )-284(The)-284(last )-34(r)18(emaining)]TJ 0 -1.2 Td [(pr)18(ocess in the pr)18(ocess gr)18(oup can either terminate or enter some other pr)18(ocess gr)18(oup.)]TJ 0.2941 Tc 1.8 -1.2 Td (Ap)Tj -0.018 Tc 1.673 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-44(joins )-44(an )-44(existing )-44(pr)18(ocess )-44(gr)18(oup )-44(or )-44(cr)17(eates )-44(a )-44(new )-44(pr)18(ocess )-44(gr)18(oup )-44(by )-44(calling)]TJ /TT0 1 Tf -4.396 -1.2 Td (setpgid)Tj /T1_1 1 Tf 0.5201 Tc (.\()Tj 0 Tc 5.303 0 Td [(In )-20(the )-20(next )-20(section, )-20(we\325ll )-20(see )-20(that)]TJ /TT0 1 Tf 14.731 0 Td (setsid)Tj /T1_1 1 Tf 3.87 0 Td [(also )-20(cr)18(eates )-20(a )-20(new )-20(pr)18(ocess )-20(gr)18(oup.\))]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5829 402.8317 Tm (#include )Tj 0 -1.902 TD (int setpgid\(pid_t)Tj /T1_2 1 Tf 10.8 0 Td (pid)Tj /TT0 1 Tf 0.6 Tc (,p)Tj 0 Tc 3.078 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (pgid)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 9.973 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3641.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 348.1773 Tm [(This )-78(function )-78(sets )-78(the )-78(pr)18(ocess )-78(gr)18(oup )-78(ID )-78(to)]TJ /T1_2 1 Tf 19.242 0 Td (pgid)Tj /T1_1 1 Tf 2.106 0 Td [(in )-78(the )-78(pr)18(ocess )-78(whose )-78(pr)18(ocess )-78(ID )-78(equals)]TJ /T1_2 1 Tf -21.348 -1.2 Td (pid)Tj /T1_1 1 Tf 0.6846 Tc (.I)Tj 0.4346 Tc 2.55 0 Td (ft)Tj 0 Tc 1.094 0 Td [(he )-185(two )-185(ar)18(guments )-185(ar)]TJ 0.4346 Tc 9.678 0 Td (ee)Tj 0 Tc 1.393 0 Td [(qual, )-185(the )-185(pr)18(ocess )-185(speci\336ed )-185(by)]TJ /T1_2 1 Tf 14.102 0 Td (pid)Tj /T1_1 1 Tf 1.712 0 Td [(becomes )-184(a )-184(pr)17(ocess)]TJ -30.528 -1.2 Td [(gr)18(oup )-5(leader)]TJ 0.5047 Tc 5.619 0 Td (.I)Tj 0 Tc 1.092 0 Td (f)Tj /T1_2 1 Tf 0.588 0 Td (pid)Tj /T1_1 1 Tf 1.533 0 Td [(is )-5(0, )-5(the )-5(pr)18(ocess )-5(ID )-5(of )-5(the )-5(caller )-5(is )-5(used.)-505(Also, )-5(if)]TJ /T1_2 1 Tf 21.225 0 Td (pgid)Tj /T1_1 1 Tf 2.033 0 Td [(is )-5(0, )-5(the )-5(pr)19(ocess)]TJ -32.089 -1.2 Td (ID speci\336ed by)Tj /T1_2 1 Tf 6.904 0 Td (pid)Tj /T1_1 1 Tf 1.528 0 Td [(is used as the pr)18(ocess gr)18(oup ID.)]TJ 0.5662 Tc -6.632 -1.2 Td (Ap)Tj -0.018 Tc 1.945 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-316(can )-316(set )-316(the )-316(pr)17(ocess )-316(gr)18(oup )-316(ID )-316(of )-316(only )-316(itself )-316(or )-316(any )-316(of )-316(its )-316(childr)17(en.)]TJ -4.668 -1.2 Td [(Furthermor)18(e, )-64(it )-64(can\325t )-64(change )-64(the )-64(pr)17(ocess )-64(gr)18(oup )-64(ID )-64(of )-64(one )-64(of )-64(its )-64(childr)18(en )-64(after )-64(that )-64(child)]TJ -0 -1.2 Td (has called one of the)Tj /TT0 1 Tf 9.245 0 Td (exec)Tj /T1_1 1 Tf 2.65 0 Td (functions.)Tj -10.095 -1.2 Td [(In )-51(most )-51(job-contr)18(ol )-51(shells, )-51(this )-51(function )-51(is )-51(called )-51(after )-51(a)]TJ /TT0 1 Tf 24.818 0 Td (fork)Tj /T1_1 1 Tf 2.701 0 Td [(to )-51(have )-51(the )-51(par)18(ent )-51(set)]TJ -29.319 -1.2 Td [(the )-98(pr)18(ocess )-98(gr)18(oup )-98(ID )-98(of )-98(the )-98(child, )-98(and )-98(to )-98(have )-98(the )-98(child )-98(set )-98(its )-98(own )-98(pr)18(ocess )-98(gr)18(oup )-98(ID.)]TJ 0 -1.2 TD [(One )-76(of )-76(these )-76(calls )-76(is )-76(r)18(edundant, )-76(but )-76(by )-76(doing )-76(both, )-76(we )-76(ar)]TJ 0.3255 Tc 25.808 0 Td (eg)Tj 0 Tc 1.361 0 Td [(uaranteed )-75(that )-75(the )-75(child )-75(is)]TJ -27.168 -1.2 Td [(placed )-15(into )-15(its )-15(own )-15(pr)18(ocess )-15(gr)18(oup )-15(befor)]TJ 0.2653 Tc 17.532 0 Td (ee)Tj 0 Tc 1.223 0 Td [(ither )-15(pr)18(ocess )-15(assumes )-15(that )-15(this )-15(has )-15(happened.)]TJ -18.755 -1.2 Td [(If )-128(we )-128(didn\325t )-128(do )-128(this, )-128(we )-128(would )-128(have )-128(a )-128(race )-128(condition, )-128(since )-128(the )-128(child\325s )-128(pr)17(ocess )-128(gr)18(oup)]TJ 0 -1.2 Td [(membership would depend on which pr)18(ocess executes \336rst.)]TJ 1.8 -1.2 Td [(When )-187(we )-187(discuss )-187(signals, )-187(we\325ll )-187(see )-187(how )-187(we )-187(can )-187(send )-187(a )-187(signal )-187(to )-187(either )-187(a )-187(single)]TJ -1.8 -1.2 Td [(pr)18(ocess )-39(\(identi\336ed )-39(by )-39(its )-39(pr)18(ocess )-39(ID\) )-39(or )-39(a )-39(pr)18(ocess )-39(gr)18(oup )-39(\(identi\336ed )-39(by )-39(its )-39(pr)18(ocess )-39(gr)11(oup)]TJ 0 -1.2 Td [(ID\). )-398(Similarly)]TJ 0.3979 Tc 6.254 0 Td (,t)Tj 0 Tc 0.974 0 Td (he)Tj /TT0 1 Tf 1.459 0 Td (waitpid)Tj /T1_1 1 Tf 4.598 0 Td [(function )-148(fr)18(om )-148(Section )-148(8.6 )-148(lets )-148(us )-148(wait )-148(for )-148(either )-148(a )-148(single)]TJ -13.285 -1.2 Td [(pr)18(ocess or one pr)18(ocess fr)18(om a speci\336ed pr)18(ocess gr)18(oup.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47255 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.13)]TJ /TT0 1 Tf 35.803 0 Td (system)Tj /T1_0 1 Tf 4.1 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (265)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -2.14 TD (int system\(const char *)Tj /T1_2 1 Tf (cmdstring)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 30.355 -2.14 Td (Returns: \(see below\))Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6153.25 cm 0 0 m 0 520 l 3900 520 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 595.7085 Tm (If)Tj /T1_2 1 Tf 0.965 0 Td (cmdstring)Tj /T1_0 1 Tf 4.425 0 Td [(is )-45(a )-45(null )-45(pointer)73(,)]TJ /TT0 1 Tf 7.56 0 Td (system)Tj /T1_0 1 Tf -0.018 Tc 3.895 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-45(nonzer)]TJ 0.2954 Tc 5.691 0 Td (oo)Tj 0 Tc 1.387 0 Td [(nly )-45(if )-45(a )-45(command )-45(pr)16(ocessor)]TJ -26.581 -1.2 Td [(is )-130(available.)-630(This )-130(featur)]TJ 0.3799 Tc 10.853 0 Td (ed)Tj 0 Tc 1.47 0 Td [(etermines )-130(whether )-130(the)]TJ /TT0 1 Tf 10.542 0 Td (system)Tj /T1_0 1 Tf 3.98 0 Td [(function )-130(is )-130(supported )-130(on )-130(a)]TJ -26.844 -1.2 Td [(given operating system.)-500(Under the UNIX System,)]TJ /TT0 1 Tf 22.379 0 Td (system)Tj /T1_0 1 Tf 3.85 0 Td (is always available.)Tj -24.429 -1.2 Td (Because)Tj /TT0 1 Tf 3.934 0 Td (system)Tj /T1_0 1 Tf 3.994 0 Td [(is )-144(implemented )-144(by )-144(calling)]TJ /TT0 1 Tf 12.26 0 Td (fork)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.044 0 Td (exec)Tj /T1_0 1 Tf 0.394 Tc (,a)Tj 0 Tc 3.544 0 Td (nd)Tj /TT0 1 Tf 1.587 0 Td (waitpid)Tj /T1_0 1 Tf 0.394 Tc (,t)Tj 0 Tc 5.17 0 Td (her)Tj 0.394 Tc 1.438 0 Td (ea)Tj -0.018 Tc 1.373 0 Td (re)Tj 0 Tc -38.144 -1.2 Td [(thr)18(ee types of r)18(eturn values.)]TJ 1.8 -2.04 Td [(1. )-633(If)-304(either )-54(the)]TJ /TT0 1 Tf 7.153 0 Td (fork)Tj /T1_0 1 Tf 2.704 0 Td [(fails )-54(or)]TJ /TT0 1 Tf 3.388 0 Td (waitpid)Tj /T1_0 1 Tf -0.018 Tc 4.504 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-54(an )-54(err)18(or )-54(other )-54(than)]TJ /TT0 1 Tf 11.442 0 Td (EINTR)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.554 0 Td (system)Tj /T1_0 1 Tf -0.018 Tc -31.967 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj /TT1 1 Tf 2.58 0 Td (!)Tj /T1_0 1 Tf 0.25 Tc (1w)Tj 0 Tc 2.133 0 Td (ith)Tj /TT0 1 Tf 1.449 0 Td (errno)Tj /T1_0 1 Tf 3.25 0 Td [(set to indicate the err)18(or)74(.)]TJ -11.901 -1.84 Td [(2. )-633(If)-280(the)]TJ /TT0 1 Tf 4.251 0 Td (exec)Tj /T1_0 1 Tf 2.681 0 Td [(fails, )-30(implying )-30(that )-30(the )-30(shell )-30(can\325t )-30(be )-30(executed, )-30(the )-30(r)14(eturn )-30(value )-30(is )-30(as)]TJ -5.298 -1.2 Td (if the shell had executed)Tj /TT0 1 Tf 10.958 0 Td (exit\(127\))Tj /T1_0 1 Tf (.)Tj -12.591 -1.84 Td [(3. )-633(Otherwise,)-366(all )-116(thr)18(ee )-116(functions)-82(\321)]TJ /TT0 1 Tf 16.198 0 Td (fork)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.016 0 Td (exec)Tj /T1_0 1 Tf 0.3656 Tc (,a)Tj 0 Tc 3.516 0 Td (nd)Tj /TT0 1 Tf 1.559 0 Td (waitpid)Tj /T1_0 1 Tf 0.0833 Tc 4.283 0 Td (\321s)Tj 0 Tc 1.507 0 Td [(ucceed, )-116(and )-116(the)]TJ -0.018 Tc -28.446 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-127(value )-127(fr)19(om)]TJ /TT0 1 Tf 7.613 0 Td (system)Tj /T1_0 1 Tf 3.977 0 Td [(is )-127(the )-127(termination )-127(status )-127(of )-127(the )-127(shell, )-127(in )-127(the )-127(format)]TJ -12.446 -1.2 Td (speci\336ed for)Tj /TT0 1 Tf 5.708 0 Td (waitpid)Tj /T1_0 1 Tf (.)Tj 7.999 0 0 7.999 201.576 421.3294 Tm [(Some )-264(older )-264(implementations )-264(of)]TJ /TT0 1 Tf 15.176 0 Td (system)Tj /T1_0 1 Tf -0.018 Tc 4.114 0 Td (re)Tj 0 Tc 0.856 0 Td [(turned )-264(an )-264(err)18(or )-264(\()]TJ /TT0 1 Tf 8.146 0 Td (EINTR)Tj /T1_0 1 Tf 0.5144 Tc (\)i)Tj 0 Tc 4.138 0 Td (f)Tj /TT0 1 Tf 0.847 0 Td (waitpid)Tj /T1_0 1 Tf 4.714 0 Td (was)Tj -37.992 -1.25 Td [(interr)8(upted )-18(by )-18(a )-18(caught )-18(signal.)-518(Because )-18(ther)16(e)-268(is)-268(no)-268(s)-1(trategy )-18(that )-18(an )-18(application )-18(can )-18(use )-18(to)]TJ -0.018 Tc 0 -1.25 TD (re)Tj 0 Tc 0.856 0 Td [(cover )-167(fr)18(om )-167(this )-167(type )-167(of )-167(err)18(or )-167(\(the )-167(pr)15(ocess )-167(ID )-167(of )-167(the )-167(child )-167(is )-167(hidden )-167(fr)18(om )-167(the )-167(caller\),)]TJ -0.856 -1.25 Td [(POSIX )-166(later )-166(added )-166(the )-166(r)20(equir)18(ement )-166(that)]TJ /TT0 1 Tf 18.773 0 Td (system)Tj /T1_0 1 Tf 4.016 0 Td [(not )-166(r)18(eturn )-165(an )-165(err)18(or )-165(in )-165(this )-165(case.)-668(\(W)92(e)]TJ -22.788 -1.25 Td [(discuss interr)8(upted system calls in Section 10.5.\))]TJ 9.9988 0 0 9.9988 147.5824 357.3371 Tm (Figur)Tj 0.2875 Tc 2.383 0 Td (e8)Tj 0 Tc 1.266 0 Td [(.22 )-38(shows )-38(an )-38(implementation )-38(of )-38(the)]TJ /TT0 1 Tf 16.194 0 Td (system)Tj /T1_0 1 Tf 3.888 0 Td [(function. )-288(The)-287(one )-38(featur)]TJ 0.2876 Tc 10.969 0 Td (et)Tj 0 Tc 1.093 0 Td (hat)Tj -37.592 -1.2 Td [(it )-381(doesn\325t )-381(handle )-381(is )-381(signals.)]TJ -0.092 Tc 14.344 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-381(update )-381(this )-381(function )-381(with )-381(signal )-381(handling )-381(in)]TJ -15.731 -1.2 Td (Section 10.18.)Tj 1.8 -1.2 Td [(The )-19(shell\325s)]TJ /TT0 1 Tf 4.981 0 Td (-c)Tj /T1_0 1 Tf 1.469 0 Td [(option )-19(tells )-19(it )-19(to )-19(take )-19(the )-19(next )-19(command)]TJ 17.676 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-19(ar)18(gument\321)]TJ /T1_2 1 Tf (cmdstring)Tj /T1_0 1 Tf 0.2692 Tc (,i)Tj 0 Tc 12.158 0 Td (n)Tj -38.418 -1.2 Td [(this )-2(case)]TJ 0.0833 Tc 3.806 0 Td (\321a)Tj 0.2524 Tc 1.583 0 Td (si)Tj 0 Tc 0.967 0 Td [(ts )-2(command )-2(input )-2(instead )-2(of )-2(r)18(eading )-2(fr)18(om )-2(standar)]TJ 0.2523 Tc 22.315 0 Td (di)Tj 0 Tc 1.154 0 Td [(nput )-2(or )-2(fr)18(om )-2(a )-2(given)]TJ -29.826 -1.2 Td [(\336le. )-525(The)-526(shell )-275(parses )-275(this )-275(null-terminated )-275(C )-275(string )-275(and )-275(br)18(eaks )-275(it )-275(up )-275(into )-275(separate)]TJ 0 -1.2 TD (command)Tj 4.449 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-58(ar)18(guments )-58(for )-58(the )-58(command.)-558(The )-58(actual )-58(command )-58(string )-58(that )-58(is )-58(passed)]TJ -4.782 -1.2 Td [(to )-207(the )-207(shell )-207(can )-207(contain )-207(any )-207(valid )-207(shell )-207(commands.)-709(For )-207(example, )-207(input )-207(and )-207(output)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(dir)18(ection using)]TJ /TT0 1 Tf 6.903 0 Td (<)Tj /T1_0 1 Tf 0.85 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (>)Tj /T1_0 1 Tf 0.85 0 Td (can be used.)Tj -9.602 -1.2 Td [(If )-329(we )-329(didn\325t )-329(use )-329(the )-329(shell )-329(to )-329(execute )-329(the )-329(command, )-329(but )-329(tried )-329(to )-329(execute )-329(the)]TJ -1.8 -1.2 Td [(command )-173(ourself, )-173(it )-173(would )-173(be )-173(mor)]TJ 0.4227 Tc 16.224 0 Td (ed)Tj 0 Tc 1.513 0 Td [(if)18(\336cult. )-423(First,)-422(we )-173(would )-173(want )-173(to )-173(call)]TJ /TT0 1 Tf 17.414 0 Td (execlp)Tj /T1_0 1 Tf (,)Tj -35.15 -1.2 Td [(instead )-38(of)]TJ /TT0 1 Tf 4.667 0 Td (execl)Tj /T1_0 1 Tf [(,)-288(to)-288(u)1(se )-38(the)]TJ /TT0 1 Tf 8.166 0 Td (PATH)Tj /T1_0 1 Tf 2.688 0 Td [(variable, )-38(like )-38(the )-38(shell.)]TJ -0.092 Tc 10.545 0 Td [(We )-222(w)]TJ 0 Tc 2.509 0 Td [(ould )-38(also )-38(have )-38(to )-38(br)20(eak)]TJ -28.575 -1.2 Td [(up )-124(the )-124(null-terminated )-124(C )-124(string )-124(into )-124(separate )-124(command)]TJ 25.363 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-124(ar)18(guments )-124(for )-124(the )-124(call )-124(to)]TJ /TT0 1 Tf -25.696 -1.2 Td (execlp)Tj /T1_0 1 Tf 0.5 Tc (.F)Tj 0 Tc 4.906 0 Td [(inally)111(,)-250(we)-250(wouldn\325t be able to use any of the shell metacharacters.)]TJ -3.106 -1.2 Td [(Note )-64(that )-64(we )-64(call)]TJ /TT0 1 Tf 8.01 0 Td (_exit)Tj /T1_0 1 Tf 3.314 0 Td [(instead )-64(of)]TJ /TT0 1 Tf 4.72 0 Td (exit)Tj /T1_0 1 Tf 0.5638 Tc (.W)Tj 0 Tc 4.122 0 Td [(e)-314(do)-314(this )-64(to )-64(pr)18(event )-64(any )-64(standar)]TJ 0.3138 Tc 14.381 0 Td (dI)Tj 0 Tc 1.262 0 Td (/O)Tj -37.608 -1.2 Td [(buf)18(fers, )-123(which )-123(would )-123(have )-123(been )-123(copied )-123(fr)18(om )-123(the )-123(par)18(ent )-123(to )-123(the )-123(child )-123(acr)22(oss )-123(the)]TJ /TT0 1 Tf 36.35 0 Td (fork)Tj /T1_0 1 Tf (,)Tj -36.35 -1.2 Td [(fr)18(om being \337ushed in the child.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47256 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.12)]TJ 36.516 0 Td [(Interpr)18(eter )-250(Files)]TJ /T1_1 1 Tf 9.317 0 Td (261)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(Let\325s )-109(look )-109(at )-109(an )-109(example )-109(to )-109(see )-109(what )-109(the )-109(kernel )-109(does )-109(with )-109(the )-109(ar)18(guments )-109(to )-109(the)]TJ /TT1 1 Tf 36.6 0 Td (exec)Tj /T1_0 1 Tf -36.6 -1.2 Td [(function )-4(when )-4(the )-4(\336le )-4(being )-4(executed )-4(is )-4(an )-4(interpr)17(eter )-4(\336le )-4(and )-4(the )-4(optional )-4(ar)18(gument )-4(on)]TJ 0 -1.2 TD [(the )-21(\336rst )-21(line )-21(of )-21(the )-21(interpr)18(eter )-21(\336le.)-521(The )-21(pr)18(ogram )-21(in )-21(Figur)]TJ 0.2714 Tc 25.153 0 Td (e8)Tj 0 Tc 1.25 0 Td (.20)Tj /TT1 1 Tf 1.521 0 Td (exec)Tj /T1_0 1 Tf [(s)-271(an)-271(i)-1(nterpr)18(eter )-21(\336le.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6138.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 604.2265 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(pid_t )-1200(pid;)]TJ 0 -1.902 TD (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(pid == 0\) {)Tj 17.4 0 Td (/* child */)Tj -16.8 -1.189 Td (if \(execl\("/home/sar/bin/testinterp",)Tj 6 -1.189 Td ("testinterp", "myarg1", "MY ARG2", \(char *\)0\) < 0\))Tj -3.6 -1.189 Td (err_sys\("execl error"\);)Tj -4.8 -1.189 Td (})Tj 0 -1.189 TD [(if \(waitpid\(pid, NULL, 0\) < 0\))-1200(/* parent */)]TJ 2.4 -1.189 Td (err_sys\("waitpid error"\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4154.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 230.2545 399.3861 Tm (Figure 8.20)Tj /T1_0 1 Tf 0.25 Tc 5.695 0 Td (Ap)Tj -0.018 Tc 1.629 0 Td (ro)Tj 0 Tc 0.923 0 Td (gram that)Tj /TT1 1 Tf 4.568 0 Td (exec)Tj /T1_0 1 Tf [(s)-250(an)-250(interpr)18(eter \336le)]TJ 9.9982 0 0 9.9982 129.5762 375.3904 Tm [(The )-16(following )-16(shows )-16(the )-16(contents )-16(of )-16(the )-16(one-line )-16(interpr)14(eter )-16(\336le )-16(that )-16(is )-16(executed )-16(and )-16(the)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(sult fr)18(om r)8(unning the pr)18(ogram in Figur)]TJ 0.25 Tc 17.367 0 Td (e8)Tj 0 Tc 1.229 0 Td (.20:)Tj /TT1 1 Tf 8.9984 0 0 8.9984 147.5728 346.6956 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (cat /home/sar/bin/testinterp)Tj /TT1 1 Tf -1.2 -1.189 Td (#!/home/sar/bin/echoarg foo)Tj 0 -1.189 TD ($)Tj /TT2 1 Tf 1.2 0 Td (./a.out)Tj /TT1 1 Tf -1.2 -1.189 Td (argv[0]: /home/sar/bin/echoarg)Tj T* (argv[1]: foo)Tj 0 -1.189 TD (argv[2]: /home/sar/bin/testinterp)Tj 0 -1.189 TD (argv[3]: myarg1)Tj T* (argv[4]: MY ARG2)Tj /T1_0 1 Tf 9.9982 0 0 9.9982 129.5761 253.8123 Tm [(The )-509(pr)18(ogram)]TJ /TT1 1 Tf 7.051 0 Td (echoarg)Tj /T1_0 1 Tf 4.959 0 Td [(\(the )-509(interpr)18(eter\) )-509(just )-509(echoes )-509(each )-509(of )-509(its )-509(command)]TJ 25.014 0.09 Td (-)Tj 0.333 -0.09 Td (line)Tj -37.357 -1.2 Td [(ar)18(guments. )-265(\(This)-265(is )-15(the )-15(pr)18(ogram )-15(fr)18(om )-15(Figur)]TJ 0.265 Tc 19.545 0 Td (e7)Tj 0 Tc 1.244 0 Td [(.4.\) )-265(Note)-265(that )-15(when )-15(the )-15(kernel)]TJ /TT1 1 Tf 13.735 0 Td (exec)Tj /T1_0 1 Tf 0.265 Tc (st)Tj 0 Tc 3.415 0 Td (he)Tj -37.939 -1.2 Td [(interpr)18(eter )-167(\()]TJ /TT1 1 Tf (/home/sar/bin/echoarg)Tj /T1_0 1 Tf (\),)Tj /TT1 1 Tf 19.08 0 Td (argv[0])Tj /T1_0 1 Tf 4.617 0 Td [(is )-167(the)]TJ /T1_2 1 Tf 2.936 0 Td (pathname)Tj /T1_0 1 Tf 4.361 0 Td [(of )-167(the )-167(interpr)18(eter)74(,)]TJ /TT1 1 Tf -30.994 -1.2 Td (argv[1])Tj /T1_0 1 Tf 4.855 0 Td [(is )-405(the )-405(optional )-405(ar)18(gument )-405(fr)18(om )-405(the )-405(interpr)18(eter )-405(\336le, )-405(and )-405(the )-405(r)16(emaining)]TJ -4.855 -1.2 Td [(ar)18(guments )-24(ar)]TJ 0.2745 Tc 5.881 0 Td (et)Tj 0 Tc 1.079 0 Td (he)Tj /T1_2 1 Tf 1.336 0 Td (pathname)Tj /T1_0 1 Tf 4.219 0 Td (\()Tj /TT1 1 Tf (/home/sar/bin/testinterp)Tj /T1_0 1 Tf 0.2746 Tc (\)a)Tj 0 Tc 15.841 0 Td [(nd )-25(the )-25(second )-25(and )-25(thir)20(d)]TJ -28.356 -1.2 Td [(ar)18(guments )-13(fr)18(om )-13(the )-13(call )-13(to)]TJ /TT1 1 Tf 11.971 0 Td (execl)Tj /T1_0 1 Tf 3.263 0 Td [(in )-13(the )-13(pr)18(ogram )-13(shown )-13(in )-13(Figur)]TJ 0.2632 Tc 13.659 0 Td (e8)Tj 0 Tc 1.242 0 Td [(.20 )-13(\()]TJ /TT1 1 Tf (myarg1)Tj /T1_0 1 Tf 5.709 0 Td (and)Tj /TT1 1 Tf 1.956 0 Td (MY)Tj -37.8 -1.2 Td (ARG2)Tj /T1_0 1 Tf [(\). )-254(Both)]TJ /TT1 1 Tf 5.807 0 Td (argv[1])Tj /T1_0 1 Tf 4.454 0 Td (and)Tj /TT1 1 Tf 1.948 0 Td (argv[2])Tj /T1_0 1 Tf 4.455 0 Td [(fr)18(om )-5(the )-5(call )-5(to)]TJ /TT1 1 Tf 6.942 0 Td (execl)Tj /T1_0 1 Tf 3.255 0 Td [(have )-5(been )-5(shifted )-5(right )-5(two)]TJ -26.861 -1.2 Td [(positions. )-374(Note)-374(that )-124(the )-124(kernel )-124(takes )-124(the)]TJ /T1_2 1 Tf 18.907 0 Td (pathname)Tj /T1_0 1 Tf 4.318 0 Td [(fr)18(om )-124(the)]TJ /TT1 1 Tf 4.274 0 Td (execl)Tj /T1_0 1 Tf 3.374 0 Td [(call )-124(instead )-124(of )-124(the)]TJ -30.873 -1.2 Td [(\336rst )-29(ar)18(gument )-29(\()]TJ /TT1 1 Tf 6.948 0 Td (testinterp)Tj /T1_0 1 Tf [(\), )-29(on )-29(the )-29(assumption )-29(that )-29(the)]TJ /T1_2 1 Tf 19.076 0 Td (pathname)Tj /T1_0 1 Tf 4.224 0 Td [(might )-29(contain )-29(mor)17(e)]TJ -30.247 -1.2 Td [(information than the \336rst ar)18(gument.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1458.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47257 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (254)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(The pr)18(ogram in Figur)]TJ 0.25 Tc 9.538 0 Td (e8)Tj 0 Tc 1.229 0 Td (.16 demonstrates the)Tj /TT1 1 Tf 9.362 0 Td (exec)Tj /T1_1 1 Tf 2.65 0 Td (functions.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6342.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 624.624 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD [(char )-1800(*env_init[])]TJ 0.6 Tc 12 0 Td (={")Tj 0 Tc 3 0 Td (USER=unknown", "PATH=/tmp", NULL };)Tj -15 -2.14 Td (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(pid_t )-1200(pid;)]TJ 0 -2.14 TD (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(pid == 0\) {)-1200(/* specify pathname, specify environment */)]TJ 0.6 -1.189 Td (if \(execle\("/home/sar/bin/echoall", "echoall", "myarg1",)Tj 4.8 -1.189 Td ("MY ARG2", \(char *\)0, env_init\) < 0\))Tj -2.4 -1.189 Td (err_sys\("execle error"\);)Tj -4.8 -1.189 Td (})Tj T* (if \(waitpid\(pid, NULL, 0\) < 0\))Tj 2.4 -1.189 Td (err_sys\("wait error"\);)Tj -2.4 -2.14 Td (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(pid == 0\) {)-1200(/* specify filename, inherit environment */)]TJ 0.6 -1.189 Td (if \(execlp\("echoall", "echoall", "only 1 arg", \(char *\)0\) < 0\))Tj 2.4 -1.189 Td (err_sys\("execlp error"\);)Tj -4.8 -1.189 Td (})Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3224.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 253.6103 306.3828 Tm (Figure 8.16)Tj /T1_1 1 Tf 5.695 0 Td (Example of)Tj /TT1 1 Tf 5.26 0 Td (exec)Tj /T1_1 1 Tf 2.65 0 Td (functions)Tj -0.092 Tc 9.9982 0 0 9.9982 147.5737 278.7878 Tm [(We )-273(\336)]TJ 0 Tc 2.331 0 Td [(rst )-89(call)]TJ /TT1 1 Tf 3.348 0 Td (execle)Tj /T1_1 1 Tf 0.3387 Tc (,w)Tj 0 Tc 5.023 0 Td [(hich )-89(r)18(equir)18(es )-89(a )-89(pathname )-89(and )-89(a )-89(speci\336c )-89(envir)20(onment. )-339(The)]TJ -12.502 -1.2 Td [(next )-23(call )-23(is )-23(to)]TJ /TT1 1 Tf 6.107 0 Td (execlp)Tj /T1_1 1 Tf 0.2728 Tc (,w)Tj 0 Tc 4.957 0 Td [(hich )-23(uses )-23(a )-23(\336lename )-23(and )-23(passes )-23(the )-23(caller)-74(\325s )-23(envir)18(onment )-23(to )-23(the)]TJ -11.064 -1.2 Td [(new )-380(pr)18(ogram. )-630(The)-630(only )-380(r)18(eason )-380(the )-380(call )-380(to)]TJ /TT1 1 Tf 21.634 0 Td (execlp)Tj /T1_1 1 Tf 4.23 0 Td [(works )-380(is )-380(that )-380(the )-380(dir)18(ectory)]TJ /TT1 1 Tf -25.864 -1.2 Td (/home/sar/bin)Tj /T1_1 1 Tf 8.233 0 Td [(is )-183(one )-183(of )-183(the )-183(curr)18(ent )-183(path )-183(pr)19(e\336xes. )-433(Note)-433(also )-183(that )-183(we )-183(set )-183(the )-183(\336rst)]TJ -8.233 -1.2 Td [(ar)18(gument,)]TJ /TT1 1 Tf 5.191 0 Td (argv[0])Tj /T1_1 1 Tf 4.835 0 Td [(in )-385(the )-385(new )-385(pr)19(ogram, )-385(to )-385(be )-385(the )-385(\336lename )-385(component )-385(of )-385(the)]TJ -10.025 -1.2 Td [(pathname. )-504(Some)-503(shells )-254(set )-254(this )-254(ar)18(gument )-254(to )-254(be )-254(the )-254(complete )-254(pathname.)-750(This )-254(is )-254(a)]TJ 0 -1.2 TD [(convention )-26(only; )-26(we )-26(can )-26(set)]TJ /TT1 1 Tf 12.617 0 Td (argv[0])Tj /T1_1 1 Tf 4.476 0 Td [(to )-26(any )-26(string )-26(we )-26(like.)-527(The)]TJ /TT1 1 Tf 11.845 0 Td (login)Tj /T1_1 1 Tf 3.276 0 Td [(command )-26(does)]TJ -32.215 -1.2 Td [(this when it executes the shell.)-503(Befor)]TJ 0.2506 Tc 16.27 0 Td (ee)Tj 0 Tc 1.209 0 Td [(xecuting )-1(the )-1(shell,)]TJ /TT1 1 Tf 8.253 0 Td (login)Tj /T1_1 1 Tf 3.251 0 Td [(adds )-1(a )-1(dash )-1(as )-1(a )-1(pr)20(e\336x)]TJ -28.982 -1.2 Td (to)Tj /TT1 1 Tf 1.132 0 Td (argv[0])Tj /T1_1 1 Tf 4.46 0 Td [(to )-10(indicate )-10(to )-10(the )-10(shell )-10(that )-10(it )-10(is )-10(being )-10(invoked )-10(as )-10(a )-10(login )-10(shell.)]TJ 0.26 Tc 27.777 0 Td (Al)Tj 0 Tc 1.329 0 Td [(ogin )-10(shell)]TJ -34.699 -1.2 Td [(will execute the start-up pr)18(o\336le commands, wher)18(eas a nonlogin shell will not.)]TJ 1.8 -1.2 Td [(The )-241(pr)18(ogram)]TJ /TT1 1 Tf 6.515 0 Td (echoall)Tj /T1_1 1 Tf 4.691 0 Td [(that )-241(is )-241(executed )-241(twice )-241(in )-241(the )-241(pr)15(ogram )-242(in )-242(Figur)]TJ 0.4916 Tc 22.066 0 Td (e8)Tj 0 Tc 1.471 0 Td [(.16 )-242(is)]TJ -36.543 -1.2 Td [(shown )-13(in )-13(Figur)]TJ 0.2633 Tc 6.751 0 Td (e8)Tj 0 Tc 1.242 0 Td [(.17. )-263(It)-264(is )-13(a )-13(trivial )-13(pr)18(ogram )-13(that )-13(echoes )-13(all )-13(its )-13(command)]TJ 24.038 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-13(ar)18(guments)]TJ -32.364 -1.2 Td (and its entir)Tj 0.25 Tc 5.289 0 Td (ee)Tj 0 Tc 1.208 0 Td [(nvir)18(onment list.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47258 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1.9)]TJ 41.164 0 Td (Signals)Tj /T1_1 1 Tf 5.169 0 Td (19)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.055 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(11 )-216(l)]TJ 0 Tc 1.591 0 Td [(ines )-105(to )-105(the )-105(pr)18(ogram )-105(in )-105(Figur)]TJ 0.3555 Tc 12.927 0 Td (e1)Tj 0 Tc 1.334 0 Td [(.7 )-105(gives )-105(us )-105(the )-105(version )-105(in )-105(Figur)]TJ 0.3554 Tc 14.15 0 Td (e1)Tj 0 Tc 1.334 0 Td [(.10. )-355(\(The)]TJ -0.055 Tc 4.468 0 Td [(11 )-215(n)]TJ 0 Tc 1.882 0 Td (ew)Tj -37.687 -1.2 Td (lines ar)Tj 0.25 Tc 3.194 0 Td (ei)Tj 0 Tc 1.02 0 Td (ndicated with a plus sign at the beginning of the line.\))Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6462.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 140.3832 636.6226 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0.6 Tc -1.2 -2.378 Td (+s)Tj 0 Tc 1.8 0 Td [(tatic void sig_int\(int\);)-4200(/* our signal-catching function */)]TJ -1.8 -1.189 Td (+)Tj 1.2 -1.189 Td (int)Tj T* (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(char )-1800(buf[MAXLINE];)-1800(/* from apue.h */)]TJ T* [(pid_t )-1200(pid;)]TJ T* [(int )-2400(status;)]TJ 3 Tc -3.6 -2.378 Td (+i)Tj 0.6 Tc 4.2 0 Td (f\()Tj 0 Tc 1.8 0 Td (signal\(SIGINT, sig_int\) == SIG_ERR\))Tj 5.4 Tc -6 -1.189 Td (+e)Tj 0 Tc 6.6 0 Td (rr_sys\("signal error"\);)Tj -6.6 -1.189 Td (+)Tj 3.6 -1.189 Td [(printf\("%% "\);)-1200(/* print prompt \(printf requires %% to print %\) */)]TJ T* (while \(fgets\(buf, MAXLINE, stdin\) != NULL\) {)Tj 2.4 -1.189 Td (if \(buf[strlen\(buf\) - 1] == \325\\n\325\))Tj 2.4 -1.189 Td (buf[strlen\(buf\) - 1] = 0; /* replace newline with null */)Tj -2.4 -2.378 Td (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(pid == 0\) {)-3600(/* child */)]TJ 0.6 -1.189 Td (execlp\(buf, buf, \(char *\)0\);)Tj T* (err_ret\("couldn\325t execute: %s", buf\);)Tj T* (exit\(127\);)Tj -2.4 -1.189 Td (})Tj 0 -2.378 TD (/* parent */)Tj 0 -1.189 TD (if \(\(pid = waitpid\(pid, &status, 0\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("waitpid error"\);)Tj -2.4 -1.189 Td (printf\("%% "\);)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj -1.2 -1.189 Td (+)Tj 0.6 Tc 0 -1.189 TD (+v)Tj 0 Tc 1.8 0 Td (oid)Tj 0.6 Tc -1.8 -1.189 Td (+s)Tj 0 Tc 1.8 0 Td (ig_int\(int signo\))Tj 0.6 Tc -1.8 -1.189 Td (+{)Tj 3 Tc 0 -1.189 TD (+p)Tj 0 Tc 4.2 0 Td (rintf\("interrupt\\n%% "\);)Tj 0.6 Tc -4.2 -1.189 Td (+})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2039.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 0 Tc 7.9986 0 0 7.9986 203.2114 187.8642 Tm (Figure 1.10)Tj /T1_0 1 Tf 5.695 0 Td [(Read commands fr)18(om standar)]TJ 0.25 Tc 13.34 0 Td (di)Tj 0 Tc 1.152 0 Td (nput and execute them)Tj 9.9982 0 0 9.9982 147.5726 156.6698 Tm [(In )-43(Chapter )-43(10, )-43(we\325ll )-43(take )-43(a )-43(long )-43(look )-43(at )-43(signals, )-43(as )-43(most )-43(nontrivial )-43(applications )-43(deal)]TJ -1.8 -1.2 Td (with them.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1447.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47259 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1.6)]TJ 33.154 0 Td [(Pr)18(ograms )-250(and )-250(Pr)18(ocesses)]TJ /T1_1 1 Tf 13.179 0 Td (13)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 162.4803 668.9599 Tm [(and )-37(r)18(eturns )-37(0 )-37(to )-37(the )-37(child.)-535(Because)]TJ /TT0 1 Tf 15.904 0 Td (fork)Tj /T1_0 1 Tf 2.687 0 Td [(cr)18(eates )-37(a )-37(new )-37(pr)18(ocess, )-37(we )-37(say )-37(that )-37(it )-37(is)]TJ -18.59 -1.2 Td (called once)Tj 0.0833 Tc 5 0 Td (\321b)Tj 0.25 Tc 1.636 0 Td (yt)Tj 0 Tc 1.132 0 Td [(he par)18(ent )167(\321 )167(but)]TJ -0.018 Tc 7.075 0 Td (re)Tj 0 Tc 0.856 0 Td (turns twice)Tj 0.0833 Tc 5.037 0 Td (\321i)Tj 0.25 Tc 1.374 0 Td (nt)Tj 0 Tc 1.158 0 Td [(he par)18(ent and in the child.)]TJ 0.883 Tc -24.758 -1.6 Td (\245I)Tj 0.3912 Tc 1.826 0 Td (nt)Tj 0 Tc 1.299 0 Td [(he )-141(child, )-141(we )-141(call)]TJ /TT0 1 Tf 7.934 0 Td (execlp)Tj /T1_0 1 Tf 3.991 0 Td [(to )-141(execute )-141(the )-141(command )-141(that )-141(was )-141(r)18(ead )-141(fr)18(om )-141(the)]TJ -13.562 -1.2 Td (standar)Tj 0.3125 Tc 3.32 0 Td (di)Tj 0 Tc 1.214 0 Td [(nput. )-312(This)]TJ -0.018 Tc 5.147 0 Td (re)Tj 0 Tc 0.856 0 Td [(places )-62(the )-62(child )-62(pr)18(ocess )-62(with )-62(the )-62(new )-62(pr)18(ogram )-62(\336le.)-566(The)]TJ -10.537 -1.2 Td [(combination )-161(of)]TJ /TT0 1 Tf 7.244 0 Td (fork)Tj /T1_0 1 Tf 2.811 0 Td [(followed )-161(by)]TJ /TT0 1 Tf 5.861 0 Td (exec)Tj /T1_0 1 Tf 2.811 0 Td [(is )-161(called )-161(spawning )-161(a )-161(new )-161(pr)18(ocess )-161(on)]TJ -18.727 -1.2 Td [(some )-81(operating )-81(systems.)-581(In )-81(the )-81(UNIX )-81(System, )-81(the )-81(two )-81(parts )-81(ar)]TJ 0.3308 Tc 28.51 0 Td (es)Tj 0 Tc 1.234 0 Td [(eparated )-81(into)]TJ -29.744 -1.2 Td (individual functions.)Tj -0.092 Tc 9.767 0 Td (We)Tj 0 Tc 1.387 0 Td (\325ll say a lot mor)Tj 0.25 Tc 6.809 0 Td (ea)Tj 0 Tc 1.229 0 Td (bout these functions in Chapter 8.)Tj 0.883 Tc -20.681 -1.6 Td (\245B)Tj 0 Tc 2.1 0 Td [(ecause )-233(the )-233(child )-233(calls)]TJ /TT0 1 Tf 10.418 0 Td (execlp)Tj /T1_0 1 Tf 4.083 0 Td [(to )-233(execute )-233(the )-233(new )-233(pr)17(ogram )-233(\336le, )-233(the )-233(par)17(ent)]TJ -15.113 -1.2 Td [(wants )-239(to )-239(wait )-239(for )-239(the )-239(child )-239(to )-239(terminate.)-739(This )-239(is )-239(done )-239(by )-239(calling)]TJ /TT0 1 Tf 31.261 0 Td (waitpid)Tj /T1_0 1 Tf (,)Tj -31.261 -1.2 Td [(specifying )-42(which )-42(pr)18(ocess )-42(to )-42(wait )-42(for: )-42(the)]TJ /TT0 1 Tf 18.362 0 Td (pid)Tj /T1_0 1 Tf 2.092 0 Td [(ar)18(gument, )-42(which )-42(is )-42(the )-42(pr)18(ocess )-42(ID)]TJ -20.454 -1.2 Td [(of )-145(the )-145(child.)-645(The)]TJ /TT0 1 Tf 8.239 0 Td (waitpid)Tj /T1_0 1 Tf 4.595 0 Td [(function )-145(also )-145(r)18(eturns )-145(the )-145(termination )-145(status )-145(of )-145(the)]TJ -12.835 -1.2 Td [(child )167(\321 )167(the)]TJ /TT0 1 Tf 5.048 0 Td (status)Tj /T1_0 1 Tf 3.875 0 Td [(variable )167(\321 )167(but)-276(in )-25(this )-25(simple )-25(pr)18(ogram, )-25(we )-25(don\325t )-25(do )-25(anything)]TJ -8.923 -1.2 Td (with this value.)Tj -0.092 Tc 7.344 0 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td (ould examine it to determine how the child terminated.)Tj 0.883 Tc -10.914 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-445(most )-445(fundamental )-445(limitation )-445(of )-445(this )-445(pr)20(ogram )-444(is )-444(that )-444(we )-444(can\325t )-444(pass)]TJ -0.613 -1.2 Td [(ar)18(guments )-11(to )-11(the )-11(command )-11(we )-11(execute.)]TJ -0.092 Tc 18.144 0 Td [(We )-195(c)]TJ 0 Tc 2.092 0 Td [(an\325t, )-11(for )-11(example, )-11(specify )-11(the )-11(name)]TJ -20.236 -1.2 Td [(of )-15(a )-15(dir)18(ectory )-15(to )-15(list.)]TJ -0.092 Tc 9.432 0 Td [(We )-199(c)]TJ 0 Tc 2.096 0 Td [(an )-15(execute)]TJ /TT0 1 Tf 4.937 0 Td (ls)Tj /T1_0 1 Tf 1.465 0 Td [(only )-15(on )-15(the )-15(working )-15(dir)19(ectory)]TJ 0.5147 Tc 13.223 0 Td (.T)Tj 0.2647 Tc 1.286 0 Td (oa)Tj 0 Tc 1.311 0 Td (llow)Tj -33.749 -1.2 Td [(ar)18(guments )-25(would )-25(r)17(equir)]TJ 0.2754 Tc 10.853 0 Td (et)Tj 0 Tc 1.08 0 Td [(hat )-25(we )-25(parse )-25(the )-25(input )-25(line, )-25(separating )-25(the )-25(ar)14(guments)]TJ -11.933 -1.2 Td [(by )-49(some )-49(convention, )-49(pr)18(obably )-49(spaces )-49(or )-49(tabs, )-49(and )-49(then )-49(pass )-49(each )-49(ar)17(gument )-49(as )-49(a)]TJ 0 -1.2 TD [(separate )-28(parameter )-28(to )-28(the)]TJ /TT0 1 Tf 11.634 0 Td (execlp)Tj /T1_0 1 Tf 3.878 0 Td [(function. )-278(Nevertheless,)-278(this )-28(pr)18(ogram )-28(is )-28(still )-28(a)]TJ -15.512 -1.2 Td [(useful demonstration of the UNIX System\325s pr)18(ocess contr)18(ol functions.)]TJ -3.289 -2.4 Td [(If )-192(we )-192(r)8(un )-192(this )-192(pr)16(ogram, )-192(we )-192(get )-192(the )-192(following )-192(r)17(esults. )-442(Note)-443(that )-192(our )-192(pr)18(ogram )-192(has )-192(a)]TJ -0 -1.2 Td [(dif)18(fer)18(ent pr)18(ompt )167(\321 )167(the)-251(per)18(cent sign)]TJ 0.0833 Tc 15.655 0 Td (\321t)Tj 0.25 Tc 1.409 0 Td (od)Tj 0 Tc 1.407 0 Td [(istinguish it fr)18(om the shell\325s pr)18(ompt.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5905 373.0674 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (%)Tj /TT1 1 Tf 1.2 0 Td (date)Tj /TT0 1 Tf -1.2 -1.189 Td (Sat Jan 21 19:42:07 EST 2012)Tj 0 -1.189 TD (%)Tj /TT1 1 Tf 1.2 0 Td (who)Tj /TT0 1 Tf -1.2 -1.189 Td [(sar )-3000(console)-1200(Jan )-600(1)-600(14:59)]TJ 0 -1.189 TD [(sar )-3000(ttys000)-1200(Jan )-600(1)-600(14:59)]TJ 0 -1.189 TD [(sar )-3000(ttys001)-1200(Jan 15 15:28)]TJ 0 -1.189 TD (%)Tj /TT1 1 Tf 1.2 0 Td (pwd)Tj /TT0 1 Tf -1.2 -1.189 Td (/home/sar/bk/apue/3e)Tj 0 -1.189 TD (%)Tj /TT1 1 Tf 1.2 0 Td (ls)Tj /TT0 1 Tf -1.2 -1.189 Td (Makefile)Tj T* (a.out)Tj T* (shell1.c)Tj T* (%)Tj /TT1 1 Tf 1.2 0 Td (\366D)Tj /T1_2 1 Tf 22.8 0 Td (type the end-of-\336le character)Tj /TT0 1 Tf -24 -1.189 Td ($)Tj /T1_2 1 Tf 24 0 Td [(the r)18(egular shell pr)18(ompt)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2117.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 183.578 191.687 Tm [(The )-353(notation)]TJ /TT0 1 Tf 6.58 0 Td (\366D)Tj /T1_0 1 Tf 1.803 0 Td [(is )-353(used )-353(to )-353(indicate )-353(a )-353(contr)18(ol )-353(character)]TJ 0.8534 Tc 18.451 0 Td (.C)Tj 0 Tc 1.812 0 Td [(ontr)18(ol )-353(characters )-353(ar)]TJ 0.6034 Tc 9.241 0 Td (es)Tj 0 Tc 1.506 0 Td (pecial)Tj -39.394 -1.25 Td [(characters )-165(formed )-165(by )-165(holding )-165(down )-165(the )-165(contr)18(ol )-165(key)]TJ 0.0833 Tc 23.953 0 Td (\321o)Tj 0 Tc 1.629 0 Td [(ften )-165(labeled)]TJ /TT0 1 Tf 5.753 0 Td (Control)Tj /T1_0 1 Tf 4.615 0 Td (or)Tj /TT0 1 Tf 1.356 0 Td (Ctrl)Tj /T1_0 1 Tf 0.0833 Tc 2.483 0 Td (\321o)Tj 0 Tc 1.629 0 Td (n)Tj -41.418 -1.25 Td [(your )-225(keyboar)]TJ 0.4748 Tc 6.142 0 Td (da)Tj 0 Tc 1.586 0 Td [(nd )-225(then )-225(pr)19(essing )-225(another )-225(key )-225(at )-225(the )-225(same )-225(time.)-722(Contr)18(ol)]TJ 26.524 0.09 Td (-)Tj 0.333 -0.09 Td [(D, )-225(or)]TJ /TT0 1 Tf 2.914 0 Td (\366D)Tj /T1_0 1 Tf [(,)-475(is)-475(t)1(he)]TJ -37.499 -1.25 Td [(default )-361(end-of-\336le )-361(character)]TJ 0.8615 Tc 12.949 0 Td (.W)Tj 0 Tc 2.019 0 Td [(e\325ll )-361(see )-361(many )-361(mor)]TJ 0.6115 Tc 8.883 0 Td (ec)Tj 0 Tc 1.535 0 Td [(ontr)18(ol )-362(characters )-362(when )-362(we )-362(discuss)]TJ -25.385 -1.25 Td (terminal I/O in Chapter 18.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47260 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1.6)]TJ 33.191 0 Td [(Pr)18(ograms )-250(and )-250(Pr)18(ocesses)]TJ /T1_1 1 Tf -0.037 Tc 13.179 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 0 Tc 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(Pr)20(ocesses and Pr)20(ocess ID)]TJ /T1_0 1 Tf 3.6 -1.92 Td [(An )-8(executing )-8(instance )-8(of )-8(a )-8(pr)18(ogram )-8(is )-8(called )-8(a)]TJ /T1_2 1 Tf 20.65 0 Td [(pr)18(ocess)]TJ /T1_0 1 Tf 0.2576 Tc (,a)Tj 0 Tc [(term )-7(used )-7(on )-7(almost )-7(every )-7(page)]TJ -20.65 -1.2 Td [(of )-13(this )-13(text.)-513(Some )-13(operating )-13(systems )-13(use )-13(the )-13(term)]TJ /T1_2 1 Tf 22.213 0 Td (task)Tj /T1_0 1 Tf 1.873 0 Td [(to )-13(r)18(efer )-13(to )-13(a )-13(pr)18(ogram )-13(that )-13(is )-13(being)]TJ -24.086 -1.2 Td (executed.)Tj 1.8 -1.2 Td [(The )-160(UNIX )-160(System )-160(guarantees )-160(that )-160(every )-160(pr)16(ocess )-160(has )-160(a )-160(unique )-160(numeric )-160(identi\336er)]TJ -1.8 -1.2 Td (called the)Tj /T1_2 1 Tf 4.503 0 Td [(pr)18(ocess ID)]TJ /T1_0 1 Tf 0.5 Tc (.T)Tj 0 Tc 5.613 0 Td [(he pr)18(ocess ID is always a non-negative integer)74(.)]TJ /TT0 1 Tf -13.716 -2.4 Td (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(The pr)18(ogram in Figur)]TJ 0.25 Tc 9.538 0 Td (e1)Tj 0 Tc 1.229 0 Td [(.6 prints its pr)18(ocess ID.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5466.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 537.0346 Tm (#include "apue.h")Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("hello world from process ID %ld\\n", \(long\)getpid\(\)\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4595.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 268.8076 443.4582 Tm (Figure 1.6)Tj /T1_0 1 Tf 5.195 0 Td [(Print the pr)18(ocess ID)]TJ 9.9982 0 0 9.9982 129.5769 419.4625 Tm [(If we compile this pr)18(ogram into the \336le)]TJ /TT1 1 Tf 17.506 0 Td (a.out)Tj /T1_0 1 Tf 3.25 0 Td (and execute it, we have)Tj /TT1 1 Tf 8.9984 0 0 8.9984 147.5736 400.6261 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (./a.out)Tj /TT1 1 Tf -1.2 -1.189 Td (hello world from process ID 851)Tj T* ($)Tj /TT2 1 Tf 1.2 0 Td (./a.out)Tj /TT1 1 Tf -1.2 -1.189 Td (hello world from process ID 854)Tj /T1_0 1 Tf 9.9982 0 0 9.9982 129.5769 348.3957 Tm [(When )-99(this )-99(pr)18(ogram )-99(r)8(uns, )-99(it )-99(calls )-99(the )-99(function)]TJ /TT1 1 Tf 20.824 0 Td (getpid)Tj /T1_0 1 Tf 3.949 0 Td [(to )-99(obtain )-99(its )-99(pr)18(ocess )-99(ID.)-599(As )-99(we)]TJ -24.773 -1.2 Td [(shall )-33(see )-33(later)73(,)]TJ /TT1 1 Tf 6.487 0 Td (getpid)Tj /T1_0 1 Tf -0.018 Tc 3.883 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-33(a)]TJ /TT1 1 Tf 3.397 0 Td (pid_t)Tj /T1_0 1 Tf 3.283 0 Td [(data )-33(type.)]TJ -0.092 Tc 4.966 0 Td [(We )-217(d)]TJ 0 Tc 2.281 0 Td [(on\325t )-33(know )-33(its )-33(size; )-33(all )-33(we )-33(know)]TJ -25.153 -1.2 Td [(is )-60(that )-60(the )-60(standar)17(ds )-61(guarantee )-61(that )-61(it )-61(will )-61(\336t )-61(in )-61(a )-61(long )-61(integer)]TJ 0.5606 Tc 27.709 0 Td (.B)Tj 0 Tc 1.422 0 Td [(ecause )-61(we )-61(have )-61(to )-61(tell)]TJ /TT1 1 Tf -29.131 -1.2 Td (printf)Tj /T1_0 1 Tf 3.874 0 Td [(the )-23(size )-23(of )-23(each )-23(ar)18(gument )-23(to )-23(be )-23(printed, )-23(we )-23(have )-23(to )-23(cast )-23(the )-23(value )-23(to )-23(the )-23(lar)12(gest)]TJ -3.874 -1.2 Td [(data )-18(type )-18(that )-18(it )-18(might )-18(use )-18(\(in )-18(this )-18(case, )-18(a )-18(long )-18(integer\).)-514(Although )-18(most )-18(pr)18(ocess )-18(IDs )-18(will)]TJ 0 -1.2 TD (\336t in an)Tj /TT1 1 Tf 3.636 0 Td (int)Tj /T1_0 1 Tf 0.25 Tc (,u)Tj 0 Tc 2.903 0 Td (sing a)Tj /TT1 1 Tf 2.853 0 Td (long)Tj /T1_0 1 Tf 2.65 0 Td [(pr)18(omotes portability)111(.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2884.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT0 1 Tf 9.9976 0 0 9.9976 93.5775 254.7968 Tm [(Pr)20(ocess Contr)20(ol)]TJ /T1_0 1 Tf 3.6 -2.4 Td (Ther)Tj 0.2906 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.27 0 Td [(re )-77(t)]TJ 0 Tc 1.473 0 Td [(hr)18(ee )-41(primary )-41(functions )-41(for )-41(pr)20(ocess )-41(contr)18(ol:)]TJ /TT1 1 Tf 19.344 0 Td (fork)Tj /T1_0 1 Tf (,)Tj /TT1 1 Tf 2.941 0 Td (exec)Tj /T1_0 1 Tf 0.2907 Tc (,a)Tj 0 Tc 3.441 0 Td (nd)Tj /TT1 1 Tf 1.484 0 Td (waitpid)Tj /T1_0 1 Tf 0.5407 Tc (.\()Tj 0 Tc 5.324 0 Td (The)Tj /TT1 1 Tf -37.326 -1.2 Td (exec)Tj /T1_0 1 Tf 2.714 0 Td [(function )-64(has )-64(seven )-64(variants, )-64(but )-64(we )-64(often )-64(r)18(efer )-64(to )-64(them )-64(collectively )-64(as )-64(simply )-64(the)]TJ /TT1 1 Tf -2.714 -1.2 Td (exec)Tj /T1_0 1 Tf 2.65 0 Td (function.\))Tj /TT0 1 Tf -6.25 -2.4 Td (Example)Tj /T1_0 1 Tf 3.6 -2.04 Td [(The )-240(pr)18(ocess )-240(contr)18(ol )-240(featur)18(es )-240(of )-240(the )-240(UNIX )-240(System )-240(ar)]TJ 0.4903 Tc 24.473 0 Td (ed)Tj 0 Tc 1.58 0 Td [(emonstrated )-240(using )-240(a )-240(simple)]TJ -26.053 -1.2 Td [(pr)18(ogram )-301(\(Figur)]TJ 0.5512 Tc 7.125 0 Td (e1)Tj 0 Tc 1.53 0 Td [(.7\) )-301(that )-301(r)18(eads )-301(commands )-301(fr)18(om )-301(standar)]TJ 0.5512 Tc 18.296 0 Td (di)Tj 0 Tc 1.453 0 Td [(nput )-301(and )-301(executes )-301(the)]TJ -28.405 -1.2 Td [(commands. )-250(This)-250(is a bar)18(e-bones implementation of a shell)]TJ 25.83 0.09 Td (-)Tj 0.333 -0.09 Td [(like pr)18(ogram.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47261 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.16)]TJ /TT0 1 Tf 33.403 0 Td (sigsuspend)Tj /T1_0 1 Tf 6.5 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (363)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.783 TD (static volatile sig_atomic_t sigflag; /* set nonzero by sig handler */)Tj 0 -1.189 TD (static sigset_t newmask, oldmask, zeromask;)Tj 0 -1.783 TD (static void)Tj 0 -1.189 TD [(sig_usr\(int signo\))-1200(/* one signal handler for SIGUSR1 and SIGUSR2 */)]TJ 0 -1.189 TD ({)Tj 2.4 -1.189 Td (sigflag = 1;)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (void)Tj 0 -1.189 TD (TELL_WAIT\(void\))Tj T* ({)Tj 2.4 -1.189 Td (if \(signal\(SIGUSR1, sig_usr\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("signal\(SIGUSR1\) error"\);)Tj -2.4 -1.189 Td (if \(signal\(SIGUSR2, sig_usr\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("signal\(SIGUSR2\) error"\);)Tj -2.4 -1.189 Td (sigemptyset\(&zeromask\);)Tj T* (sigemptyset\(&newmask\);)Tj 0 -1.189 TD (sigaddset\(&newmask, SIGUSR1\);)Tj 0 -1.189 TD (sigaddset\(&newmask, SIGUSR2\);)Tj 0 -1.783 TD (/* Block SIGUSR1 and SIGUSR2, and save current signal mask */)Tj 0 -1.189 TD (if \(sigprocmask\(SIG_BLOCK, &newmask, &oldmask\) < 0\))Tj 2.4 -1.189 Td (err_sys\("SIG_BLOCK error"\);)Tj -4.8 -1.189 Td (})Tj 0 -1.783 TD (void)Tj 0 -1.189 TD (TELL_PARENT\(pid_t pid\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(kill\(pid, SIGUSR2\);)-3000(/* tell parent we\325re done */)]TJ -2.4 -1.189 Td (})Tj 0 -1.783 TD (void)Tj 0 -1.189 TD (WAIT_PARENT\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (while \(sigflag == 0\))Tj 2.4 -1.189 Td [(sigsuspend\(&zeromask\); )-600(/*)-600(and wait for parent */)]TJ -2.4 -1.189 Td (sigflag = 0;)Tj 0 -1.783 TD (/* Reset signal mask to original value */)Tj 0 -1.189 TD (if \(sigprocmask\(SIG_SETMASK, &oldmask, NULL\) < 0\))Tj 2.4 -1.189 Td (err_sys\("SIG_SETMASK error"\);)Tj -4.8 -1.189 Td (})Tj 0 -1.783 TD (void)Tj 0 -1.189 TD (TELL_CHILD\(pid_t pid\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (kill\(pid, SIGUSR1\);)Tj 16.8 0 Td (/* tell child we\325re done */)Tj -19.2 -1.189 Td (})Tj 0 -1.783 TD (void)Tj 0 -1.189 TD (WAIT_CHILD\(void\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47262 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.9)]TJ 36.454 0 Td [(Shar)18(ed )-250(Memory)]TJ /T1_1 1 Tf 9.379 0 Td (577)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj 0 -1.902 TD [(#define NLOOPS)-3600(1000)]TJ 0 -1.189 TD [(#define SIZE)-4800(sizeof\(long\) )-1800(/*)-600(size of shared memory area */)]TJ 0 -1.902 TD (static int)Tj 0 -1.189 TD (update\(long *ptr\))Tj T* ({)Tj 2.4 -1.189 Td [(return\(\(*ptr\)++\); )-1200(/*)-600(return value before increment */)]TJ -2.4 -1.189 Td (})Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(fd,)-600(i, counter;)]TJ T* [(pid_t )-1200(pid;)]TJ 0 -1.189 TD [(void )-1800(*area;)]TJ 0 -1.902 TD (if \(\(fd = open\("/dev/zero", O_RDWR\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("open error"\);)Tj -2.4 -1.189 Td (if \(\(area = mmap\(0, SIZE, PROT_READ | PROT_WRITE, MAP_SHARED,)Tj 1.2 -1.189 Td (fd, 0\)\) == MAP_FAILED\))Tj 1.2 -1.189 Td (err_sys\("mmap error"\);)Tj -2.4 -1.189 Td [(close\(fd\); )-3000(/*)-600(can close /dev/zero now that it\325s mapped */)]TJ 0 -1.902 TD (TELL_WAIT\(\);)Tj 0 -1.902 TD (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(pid > 0\) {)Tj 17.4 0 Td (/* parent */)Tj -16.8 -1.189 Td (for \(i = 0; i < NLOOPS; i += 2\) {)Tj 2.4 -1.189 Td (if \(\(counter = update\(\(long *\)area\)\) != i\))Tj 2.4 -1.189 Td (err_quit\("parent: expected %d, got %d", i, counter\);)Tj -2.4 -1.902 Td (TELL_CHILD\(pid\);)Tj 0 -1.189 TD (WAIT_CHILD\(\);)Tj -2.4 -1.189 Td (})Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 17.4 0 Td (/* child */)Tj -16.8 -1.189 Td (for \(i = 1; i < NLOOPS + 1; i += 2\) {)Tj 2.4 -1.189 Td (WAIT_PARENT\(\);)Tj 0 -1.902 TD (if \(\(counter = update\(\(long *\)area\)\) != i\))Tj 2.4 -1.189 Td (err_quit\("child: expected %d, got %d", i, counter\);)Tj -2.4 -1.902 Td (TELL_PARENT\(getppid\(\)\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1518.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 169.6396 135.7817 Tm (Figure 15.33)Tj /T1_0 1 Tf 6.195 0 Td [(IPC between par)18(ent and child using memory mapped I/O of)]TJ /TT0 1 Tf 27.14 0 Td (/dev/zero)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47263 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.2)]TJ 41.434 0 Td (Pipes)Tj /T1_1 1 Tf 4.399 0 Td (539)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 172.7896 670.2598 Tm (exit\(0\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 27 0 Td (/* child */)Tj -26.4 -1.189 Td [(close\(fd[1]\); )-1200(/*)-600(close write end */)]TJ 0 -1.189 TD (if \(fd[0] != STDIN_FILENO\) {)Tj 2.4 -1.189 Td (if \(dup2\(fd[0], STDIN_FILENO\) != STDIN_FILENO\))Tj 2.4 -1.189 Td (err_sys\("dup2 error to stdin"\);)Tj -2.4 -1.189 Td [(close\(fd[0]\); )-1200(/*)-600(don\325t need this after dup2 */)]TJ -2.4 -1.189 Td (})Tj 0 -1.902 TD (/* get arguments for execl\(\) */)Tj 0 -1.189 TD (if \(\(pager = getenv\("PAGER"\)\) == NULL\))Tj 2.4 -1.189 Td (pager = DEF_PAGER;)Tj -2.4 -1.189 Td (if \(\(argv0 = strrchr\(pager, \325/\325\)\) != NULL\))Tj 2.4 -1.189 Td [(argv0++; )-4200(/*)-600(step past rightmost slash */)]TJ -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td [(argv0 = pager;)-1200(/* no slash in pager */)]TJ -2.4 -1.902 Td (if \(execl\(pager, argv0, \(char *\)0\) < 0\))Tj 2.4 -1.189 Td (err_sys\("execl error for %s", pager\);)Tj -4.8 -1.189 Td (})Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4493.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 253.5976 433.307 Tm (Figure 15.6)Tj /T1_0 1 Tf 5.695 0 Td [(Copy \336le to pager pr)18(ogram)]TJ 9.9988 0 0 9.9988 147.5825 409.3099 Tm (Befor)Tj 0.4045 Tc 2.346 0 Td (ec)Tj 0 Tc 1.327 0 Td (alling)Tj /TT0 1 Tf 2.916 0 Td (fork)Tj /T1_0 1 Tf [(,)-404(we)-404(c)]TJ -0.018 Tc 5.216 0 Td (re)Tj 0 Tc 0.856 0 Td [(ate )-155(a )-155(pipe.)-655(After )-155(the)]TJ /TT0 1 Tf 9.998 0 Td (fork)Tj /T1_0 1 Tf 0.4046 Tc (,t)Tj 0 Tc 3.381 0 Td [(he )-155(par)18(ent )-155(closes )-155(its )-155(r)20(ead)]TJ -27.84 -1.2 Td [(end, )-91(and )-91(the )-91(child )-91(closes )-91(its )-91(write )-91(end.)-591(The )-91(child )-91(then )-91(calls)]TJ /TT0 1 Tf 27.267 0 Td (dup2)Tj /T1_0 1 Tf 2.741 0 Td [(to )-91(have )-91(its )-91(standar)19(d)]TJ -30.008 -1.2 Td [(input )-117(be )-117(the )-117(r)18(ead )-117(end )-117(of )-117(the )-117(pipe.)-617(When )-117(the )-117(pager )-117(pr)18(ogram )-117(is )-117(executed, )-117(its )-117(standar)15(d)]TJ 0 -1.2 TD [(input will be the r)18(ead end of the pipe.)]TJ 1.8 -1.2 Td [(When )-53(we )-53(duplicate )-53(one )-53(descriptor )-53(onto )-53(another )-53(\()]TJ /TT0 1 Tf 22.088 0 Td (fd[0])Tj /T1_0 1 Tf 3.304 0 Td [(onto )-53(standar)]TJ 0.3035 Tc 5.624 0 Td (di)Tj 0 Tc 1.206 0 Td [(nput )-53(in )-53(the)]TJ -34.021 -1.2 Td [(child\), )-47(we )-47(have )-47(to )-47(be )-47(car)18(eful )-47(that )-47(the )-47(descriptor )-47(doesn\325t )-47(alr)18(eady )-47(have )-47(the )-47(desir)18(ed )-47(value.)]TJ T* [(If )-177(the )-177(descriptor )-177(alr)18(eady )-177(had )-177(the )-177(desir)18(ed )-177(value )-177(and )-177(we )-177(called)]TJ /TT0 1 Tf 28.99 0 Td (dup2)Tj /T1_0 1 Tf 2.827 0 Td (and)Tj /TT0 1 Tf 2.12 0 Td (close)Tj /T1_0 1 Tf 0.4267 Tc (,t)Tj 0 Tc 4.003 0 Td (he)Tj -37.939 -1.2 Td [(single )-92(copy )-92(of )-92(the )-92(descriptor )-92(would )-92(be )-92(closed.)-592(\(Recall )-92(the )-92(operation )-92(of)]TJ /TT0 1 Tf 32.398 0 Td (dup2)Tj /T1_0 1 Tf 2.742 0 Td [(when )-92(its)]TJ -35.14 -1.2 Td [(two )-54(ar)18(guments )-54(ar)]TJ 0.3044 Tc 7.922 0 Td (ee)Tj 0 Tc 1.262 0 Td [(qual, )-54(discussed )-54(in )-54(Section )-54(3.12.\))-554(In )-54(this )-54(pr)18(ogram, )-54(if )-54(standar)]TJ 0.3043 Tc 26.498 0 Td (di)Tj 0 Tc 1.206 0 Td (nput)Tj -36.888 -1.2 Td [(had )-110(not )-110(been )-110(opened )-110(by )-110(the )-110(shell, )-110(the)]TJ /TT0 1 Tf 17.616 0 Td (fopen)Tj /T1_0 1 Tf 3.36 0 Td [(at )-110(the )-110(beginning )-110(of )-110(the )-110(pr)18(ogram )-110(should)]TJ -20.975 -1.2 Td [(have )-188(used )-188(descriptor )-188(0, )-188(the )-188(lowest )-188(unused )-188(descriptor)]TJ 0.4382 Tc 24.599 0 Td (,s)Tj 0 Tc 1.112 0 Td (o)Tj /TT0 1 Tf 0.984 0 Td (fd[0])Tj /T1_0 1 Tf 3.438 0 Td [(should )-188(never )-188(equal)]TJ -30.134 -1.2 Td (standar)Tj 0.4736 Tc 3.32 0 Td (di)Tj 0 Tc 1.376 0 Td [(nput. )-474(Nevertheless,)-473(whenever )-224(we )-224(call)]TJ /TT0 1 Tf 18.218 0 Td (dup2)Tj /T1_0 1 Tf 2.874 0 Td (and)Tj /TT0 1 Tf 2.167 0 Td (close)Tj /T1_0 1 Tf 3.474 0 Td [(to )-224(duplicate )-224(one)]TJ -31.428 -1.2 Td [(descriptor )-278(onto )-278(another)]TJ 0.5277 Tc 10.903 0 Td (,w)Tj 0 Tc 1.612 0 Td [(e\325ll )-278(always )-278(compar)]TJ 0.5276 Tc 8.85 0 Td (et)Tj 0 Tc 1.333 0 Td [(he )-278(descriptors )-278(\336rst, )-278(as )-278(a )-278(defensive)]TJ -22.698 -1.2 Td [(pr)18(ogramming measur)18(e.)]TJ 1.8 -1.2 Td [(Note )-61(how )-61(we )-61(try )-61(to )-61(use )-61(the )-61(envir)18(onment )-61(variable)]TJ /TT0 1 Tf 22.566 0 Td (PAGER)Tj /T1_0 1 Tf 3.311 0 Td [(to )-61(obtain )-61(the )-61(name )-61(of )-61(the)]TJ -27.677 -1.2 Td [(user )176(\325s)-319(pager )-69(pr)18(ogram. )-319(If)-319(this )-69(doesn\325t )-69(work, )-69(we )-69(use )-69(a )-69(default.)-569(This )-69(is )-69(a )-69(common )-69(usage)]TJ 0 -1.2 Td [(of envir)18(onment variables.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2173.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 9.9982 0 0 9.9982 93.5832 188.5251 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(Recall )-259(the )-259(\336ve )-259(functions)]TJ /TT0 1 Tf 11.874 0 Td (TELL_WAIT)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 6.159 0 Td (TELL_PARENT)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 7.359 0 Td (TELL_CHILD)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 6.759 0 Td (WAIT_PARENT)Tj /T1_0 1 Tf (,)Tj -32.15 -1.2 Td (and)Tj /TT0 1 Tf 2.149 0 Td (WAIT_CHILD)Tj /T1_0 1 Tf 6.456 0 Td [(fr)18(om )-206(Section )-206(8.9.)-706(In )-206(Figur)]TJ 0.4557 Tc 12.207 0 Td (e1)Tj 0 Tc 1.435 0 Td [(0.24, )-206(we )-206(showed )-206(an )-206(implementation)]TJ -22.246 -1.2 Td [(using signals.)-500(Figur)]TJ 0.25 Tc 8.907 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.7 shows an implementation using pipes.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47264 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (362)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 172.7896 670.2598 Tm (err_sys\("signal\(SIGQUIT\) error"\);)Tj -2.4 -1.902 Td (sigemptyset\(&zeromask\);)Tj 0 -1.189 TD (sigemptyset\(&newmask\);)Tj T* (sigaddset\(&newmask, SIGQUIT\);)Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*B)Tj 0 Tc 1.8 0 Td (lock SIGQUIT and save current signal mask.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(sigprocmask\(SIG_BLOCK, &newmask, &oldmask\) < 0\))Tj 2.4 -1.189 Td (err_sys\("SIG_BLOCK error"\);)Tj -2.4 -1.902 Td (while \(quitflag == 0\))Tj 2.4 -1.189 Td (sigsuspend\(&zeromask\);)Tj -2.4 -1.902 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*S)Tj 0 Tc 1.8 0 Td (IGQUIT has been caught and is now blocked; do whatever.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (quitflag = 0;)Tj T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*R)Tj 0 Tc 1.8 0 Td (eset signal mask which unblocks SIGQUIT.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(sigprocmask\(SIG_SETMASK, &oldmask, NULL\) < 0\))Tj 2.4 -1.189 Td (err_sys\("SIG_SETMASK error"\);)Tj -2.4 -1.902 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4023.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 199.1081 386.2326 Tm (Figure 10.23)Tj /T1_1 1 Tf 6.195 0 Td (Using)Tj /TT0 1 Tf 2.881 0 Td (sigsuspend)Tj /T1_1 1 Tf 6.25 0 Td (to wait for a global variable to be set)Tj 9.9988 0 0 9.9988 129.5846 362.2355 Tm [(Sample output fr)18(om this pr)18(ogram is)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5825 345.5375 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj -1.2 -1.189 Td (\366C)Tj /T1_2 1 Tf 12 0 Td (type the interrupt character)Tj /TT0 1 Tf -12 -1.189 Td (interrupt)Tj /TT1 1 Tf 0 -1.189 TD (\366C)Tj /T1_2 1 Tf 12 0 Td (type the interrupt character again)Tj /TT0 1 Tf -12 -1.189 Td (interrupt)Tj /TT1 1 Tf 0 -1.189 TD (\366C)Tj /T1_2 1 Tf 12 0 Td (and again)Tj /TT0 1 Tf -12 -1.189 Td (interrupt)Tj /TT1 1 Tf 0 -1.189 TD (\366\\)Tj /TT0 1 Tf 1.8 0 Td ($)Tj /T1_2 1 Tf 10.2 0 Td (now terminate with the quit character)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2647.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 183.567 241.0356 Tm [(For )-22(portability )-22(between )-22(non-POSIX )-22(systems )-22(that )-22(support )-22(ISO )-22(C )-22(and )-22(POSIX.1 )-22(systems, )-22(the )-22(only)]TJ 0 -1.25 TD [(thing )-402(we )-402(should )-402(do )-402(within )-402(a )-402(signal )-402(handler )-402(is )-402(assign )-402(a )-402(value )-402(to )-402(a )-402(variable )-402(of )-402(type)]TJ /TT0 1 Tf T* (sig_atomic_t)Tj /T1_1 1 Tf 0.0833 Tc 7.283 0 Td (\321n)Tj 0 Tc 1.665 0 Td [(othing )-70(else.)-569(POSIX.1 )-70(goes )-70(further )-70(and )-70(speci\336es )-70(a )-70(list )-70(of )-70(functions )-70(that )-70(ar)21(e)]TJ -8.948 -1.25 Td [(safe )-48(to )-48(call )-48(fr)18(om )-48(within )-48(a )-48(signal )-48(handler )-48(\(Figur)]TJ 0.2985 Tc 20.867 0 Td (e1)Tj 0 Tc 1.277 0 Td [(0.4\), )-48(but )-48(if )-48(we )-48(do )-48(this, )-48(our )-48(code )-48(may )-48(not )-48(r)3(un)]TJ -22.144 -1.25 Td [(corr)18(ectly on non-POSIX systems.)]TJ /TT2 1 Tf 9.9982 0 0 9.9982 93.5831 177.0471 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.04 Td [(As )-200(another )-200(example )-200(of )-200(signals, )-200(we )-200(show )-200(how )-200(signals )-200(can )-200(be )-200(used )-200(to )-200(synchr)15(onize )-200(a)]TJ 0 -1.2 TD [(par)18(ent )-34(and )-34(child.)-534(Figur)]TJ 0.284 Tc 10.512 0 Td (e1)Tj 0 Tc 1.263 0 Td [(0.24 )-34(shows )-34(implementations )-34(of )-34(the )-34(\336ve )-34(r)18(outines)]TJ /TT0 1 Tf 21.575 0 Td (TELL_WAIT)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -33.35 -1.2 Td (TELL_PARENT)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 7.1 0 Td (TELL_CHILD)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 6.5 0 Td (WAIT_PARENT)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 7.6 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (WAIT_CHILD)Tj /T1_1 1 Tf 6.25 0 Td [(fr)18(om Section 8.9.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47265 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (248)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(mean )-88(that )-88(the )-88(race )-88(condition )-88(doesn\325t )-88(exist; )-88(it )-88(simply )-88(means )-88(that )-88(we )-88(can\325t )-88(see )-88(it )-88(on )-88(this)]TJ 0 -1.2 TD [(particular system.\))-500(The following actual output shows how the r)18(esults can vary:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 640.2616 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (ooutput from child)Tj 0 -1.189 TD (utput from parent)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (ooutput from child)Tj 0 -1.189 TD (utput from parent)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (output from child)Tj T* (output from parent)Tj /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5922 536.6678 Tm [(We )-194(n)]TJ 0 Tc 2.229 0 Td [(eed )-10(to )-10(change )-10(the )-10(pr)18(ogram )-10(in )-10(Figur)]TJ 0.2596 Tc 15.643 0 Td (e8)Tj 0 Tc 1.239 0 Td [(.12 )-10(to )-10(use )-10(the)]TJ /TT0 1 Tf 6.053 0 Td (TELL)Tj /T1_1 1 Tf 2.66 0 Td (and)Tj /TT0 1 Tf 1.953 0 Td (WAIT)Tj /T1_1 1 Tf 2.66 0 Td [(functions. )-260(The)]TJ -32.435 -1.2 Td [(pr)18(ogram in Figur)]TJ 0.25 Tc 7.614 0 Td (e8)Tj 0 Tc 1.229 0 Td [(.13 does this.)-500(The lines pr)18(eceded by a plus sign ar)]TJ 0.25 Tc 22.013 0 Td (en)Tj 0 Tc 1.311 0 Td (ew lines.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5175.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 140.3832 507.938 Tm (#include "apue.h")Tj 0 -1.783 TD (static void charatatime\(char *\);)Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(pid_t )-1200(pid;)]TJ 3 Tc -3.6 -1.783 Td (+T)Tj 0 Tc 4.2 0 Td (ELL_WAIT\(\);)Tj -4.2 -1.189 Td (+)Tj 3.6 -1.189 Td (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(pid == 0\) {)Tj 5.4 Tc -5.4 -1.189 Td (+W)Tj 0 Tc 6.6 0 Td [(AIT_PARENT\(\); )-3000(/*)-600(parent goes first */)]TJ -0.6 -1.189 Td (charatatime\("output from child\\n"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (charatatime\("output from parent\\n"\);)Tj 5.4 Tc -6 -1.189 Td (+T)Tj 0 Tc 6.6 0 Td (ELL_CHILD\(pid\);)Tj -3 -1.189 Td (})Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (static void)Tj 0 -1.189 TD (charatatime\(char *str\))Tj T* ({)Tj 2.4 -1.189 Td [(char )-1800(*ptr;)]TJ T* [(int )-2400(c;)]TJ 0 -1.783 TD (setbuf\(stdout, NULL\);)Tj 19.2 0 Td (/* set unbuffered */)Tj -19.2 -1.189 Td (for \(ptr = str; \(c = *ptr++\) != 0; \))Tj 2.4 -1.189 Td (putc\(c, stdout\);)Tj -4.8 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1875.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 212.3778 171.5171 Tm (Figure 8.13)Tj /T1_1 1 Tf 5.695 0 Td (Modi\336cation of Figur)Tj 0.25 Tc 9.45 0 Td (e8)Tj 0 Tc 1.229 0 Td (.12 to avoid race condition)Tj 9.9982 0 0 9.9982 129.5769 147.5214 Tm [(When )-9(we )-9(r)8(un )-9(this )-9(pr)18(ogram, )-9(the )-9(output )-9(is )-9(as )-9(we )-9(expect; )-9(ther)20(e)-259(is)-259(no)-259(i)1(ntermixing )-9(of )-9(output)]TJ 0 -1.2 TD [(fr)18(om the two pr)18(ocesses.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47266 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.3)]TJ 36.622 0 Td (Recor)Tj 0.5 Tc 2.514 0 Td (dL)Tj 0 Tc 1.722 0 Td (ocking)Tj /T1_1 1 Tf 4.975 0 Td (499)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(This )-3(pr)18(ogram )-3(cr)17(eates )-3(a )-3(\336le )-3(and )-3(enables )-3(mandatory )-3(locking )-3(for )-3(the )-3(\336le.)-503(The )-3(pr)14(ogram)]TJ -1.8 -1.2 Td [(then )-3(splits )-3(into )-3(par)18(ent )-3(and )-3(child, )-3(with )-3(the )-3(par)18(ent )-3(obtaining )-3(a )-3(write )-3(lock )-3(on )-3(the )-3(entir)]TJ 0.2533 Tc 36.643 0 Td (e\336)Tj 0 Tc 1.337 0 Td (le.)Tj -37.98 -1.2 Td [(The )-87(child )-87(\336rst )-87(sets )-87(its )-87(descriptor )-87(to )-87(be )-87(nonblocking )-87(and )-87(then )-87(attempts )-87(to )-87(obtain )-87(a )-87(r)20(ead)]TJ 0 -1.2 TD [(lock )-102(on )-102(the )-102(\336le, )-102(expecting )-102(to )-102(get )-102(an )-102(err)16(or)]TJ 0.6022 Tc 18.502 0 Td (.T)Tj 0 Tc 1.465 0 Td [(his )-102(lets )-102(us )-102(see )-102(whether )-102(the )-102(system )-102(r)17(eturns)]TJ /TT0 1 Tf -19.967 -1.2 Td (EACCES)Tj /T1_0 1 Tf 3.915 0 Td (or)Tj /TT0 1 Tf 1.256 0 Td (EAGAIN)Tj /T1_0 1 Tf 0.565 Tc (.N)Tj 0 Tc 5.246 0 Td [(ext, )-65(the )-65(child )-65(r)18(ewinds )-65(the )-65(\336le )-65(and )-65(tries )-65(to)]TJ /TT0 1 Tf 18.852 0 Td (read)Tj /T1_0 1 Tf 2.715 0 Td [(fr)18(om )-65(the )-65(\336le.)-565(If)]TJ -31.984 -1.2 Td [(mandatory )-92(locking )-92(is )-92(pr)18(ovided, )-92(the)]TJ /TT0 1 Tf 16.307 0 Td (read)Tj /T1_0 1 Tf 2.742 0 Td [(should )-92(r)18(eturn)]TJ /TT0 1 Tf 6.503 0 Td (EACCES)Tj /T1_0 1 Tf 3.942 0 Td (or)Tj /TT0 1 Tf 1.283 0 Td (EAGAIN)Tj /T1_0 1 Tf 3.942 0 Td [(\(since )-92(the)]TJ -34.718 -1.2 Td [(descriptor )-49(is )-49(nonblocking\).)-549(Otherwise, )-49(the)]TJ /TT0 1 Tf 19.316 0 Td (read)Tj /T1_0 1 Tf -0.018 Tc 2.699 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-49(the )-49(data )-49(that )-49(it )-49(r)19(ead. )-299(Running)]TJ -22.871 -1.2 Td [(this pr)18(ogram under Solaris 10 \(which supports mandatory locking\) gives us)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 129.5924 568.2659 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out temp.lock)Tj /TT0 1 Tf -1.2 -1.189 Td (read_lock of already-locked region returns 11)Tj 0 -1.189 TD (read failed \(mandatory locking works\): Resource temporarily unavailabl\ e)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5924 528.8683 Tm [(If )-81(we )-81(look )-81(at )-81(either )-81(the )-81(system\325s )-81(headers )-81(or )-81(the)]TJ /TT0 1 Tf 21.591 0 Td (intro)Tj /T1_0 1 Tf [(\(2\) )-81(manual )-81(page, )-81(we )-81(see )-81(that )-81(an)]TJ /TT0 1 Tf -21.591 -1.2 Td (errno)Tj /T1_0 1 Tf 3.25 0 Td (of 1)Tj 0.25 Tc 1.574 0 Td (1c)Tj 0 Tc 1.194 0 Td [(orr)18(esponds to)]TJ /TT0 1 Tf 6.357 0 Td (EAGAIN)Tj /T1_0 1 Tf 0.5 Tc (.U)Tj 0 Tc 5.128 0 Td [(nder Fr)18(eeBSD 8.0, we get)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 129.592 500.17 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out temp.lock)Tj /TT0 1 Tf -1.2 -1.189 Td (read_lock of already-locked region returns 35)Tj T* (read OK \(no mandatory locking\), buf = ab)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.592 460.7724 Tm [(Her)18(e, an)]TJ /TT0 1 Tf 3.999 0 Td (errno)Tj /T1_0 1 Tf 3.25 0 Td [(of 35 corr)18(esponds to)]TJ /TT0 1 Tf 9.18 0 Td (EAGAIN)Tj /T1_0 1 Tf 0.5 Tc (.M)Tj 0 Tc 5.296 0 Td (andatory locking is not supported.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4608.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 9.9988 0 0 9.9988 93.5888 431.9482 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.16 Td [(Let\325s )-79(r)18(eturn )-79(to )-79(the )-79(\336rst )-79(question )-79(posed )-79(in )-79(this )-79(section: )-79(what )-79(happens )-79(when )-79(two )-79(people)]TJ 0 -1.2 TD [(edit )-97(the )-97(same )-97(\336le )-97(at )-97(the )-97(same )-97(time?)-597(The )-97(normal )-97(UNIX )-97(System )-97(text )-97(editors )-97(do )-97(not )-97(use)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.2513 Tc 1.367 0 Td (dl)Tj 0 Tc 1.153 0 Td [(ocking, )-1(so )-1(the )-1(answer )-1(is )-1(still )-1(that )-1(the )-1(\336nal )-1(r)18(esult )-1(of )-1(the )-1(\336le )-1(corr)18(esponds )-1(to )-1(the )-1(last)]TJ -3.376 -1.2 Td [(pr)18(ocess that wr)18(ote the \336le.)]TJ 1.8 -1.2 Td [(Some )-47(versions )-47(of )-47(the)]TJ /TT0 1 Tf 9.592 0 Td (vi)Tj /T1_0 1 Tf 1.497 0 Td [(editor )-47(use )-47(advisory )-47(r)19(ecor)]TJ 0.2967 Tc 11.155 0 Td (dl)Tj 0 Tc 1.199 0 Td [(ocking. )-297(Even)-296(if )-47(we )-47(wer)]TJ 0.2968 Tc 10.526 0 Td (eu)Tj 0 Tc 1.379 0 Td (sing)Tj -37.147 -1.2 Td [(one )-121(of )-121(these )-121(versions )-121(of)]TJ /TT0 1 Tf 11.214 0 Td (vi)Tj /T1_0 1 Tf 0.3707 Tc (,i)Tj 0.3706 Tc 2.112 0 Td (ts)Tj 0 Tc 1.121 0 Td [(till )-121(doesn\325t )-121(pr)18(event )-121(users )-121(fr)18(om )-121(r)8(unning )-121(another )-121(editor)]TJ -14.447 -1.2 Td [(that doesn\325t use advisory r)18(ecor)]TJ 0.25 Tc 13.597 0 Td (dl)Tj 0 Tc 1.152 0 Td (ocking.)Tj -12.949 -1.2 Td [(If )-195(the )-195(system )-195(pr)18(ovides )-195(mandatory )-195(r)16(ecor)]TJ 0.4455 Tc 18.393 0 Td (dl)Tj 0 Tc 1.347 0 Td [(ocking, )-196(we )-196(could )-196(modify )-196(our )-196(favorite)]TJ -21.54 -1.2 Td [(editor )-20(to )-20(use )-20(it )-20(\(if )-20(we )-20(have )-20(the )-20(editor)-72(\325s )-20(sour)18(ce )-20(code\).)-520(Not )-20(having )-20(the )-20(sour)18(ce )-20(code )-20(for )-20(the)]TJ T* [(editor)74(,)-271(we)-271(might )-21(try )-21(the )-21(following.)]TJ -0.092 Tc 15.835 0 Td [(We )-205(w)]TJ 0 Tc 2.492 0 Td [(rite )-21(our )-21(own )-21(pr)18(ogram )-21(that )-21(is )-21(a )-21(fr)18(ont )-21(end )-21(to)]TJ /TT0 1 Tf 19.223 0 Td (vi)Tj /T1_0 1 Tf (.)Tj -37.55 -1.2 Td [(This )-318(pr)18(ogram )-318(immediately )-318(calls)]TJ /TT0 1 Tf 15.58 0 Td (fork)Tj /T1_0 1 Tf 0.5679 Tc (,a)Tj 0 Tc 3.718 0 Td [(nd )-318(the )-318(par)18(ent )-318(just )-318(waits )-318(for )-318(the )-318(child )-318(to)]TJ -19.298 -1.2 Td [(complete. )-347(The)-347(child )-97(opens )-97(the )-97(\336le )-97(speci\336ed )-97(on )-97(the )-97(command )-97(line, )-97(enables )-97(mandatory)]TJ T* [(locking, )-234(obtains )-234(a )-234(write )-234(lock )-234(on )-234(the )-234(entir)]TJ 0.4837 Tc 19.357 0 Td (e\336)Tj 0 Tc 1.568 0 Td [(le, )-234(and )-234(then )-234(executes)]TJ /TT0 1 Tf 10.367 0 Td (vi)Tj /T1_0 1 Tf 0.7337 Tc (.W)Tj 0 Tc 3.184 0 Td (hile)Tj /TT0 1 Tf 2.127 0 Td (vi)Tj /T1_0 1 Tf 1.684 0 Td (is)Tj -0.008 Tc -38.285 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td [(nning, )-12(the )-12(\336le )-12(is )-12(write )-12(locked, )-12(so )-12(other )-12(users )-12(can\325t )-12(modify )-12(it.)-514(When)]TJ /TT0 1 Tf 29.964 0 Td (vi)Tj /T1_0 1 Tf 1.462 0 Td [(terminates, )-12(the)]TJ -32.416 -1.2 Td [(par)18(ent\325s)]TJ /TT0 1 Tf 3.817 0 Td (wait)Tj /T1_0 1 Tf -0.018 Tc 2.65 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns and our fr)18(ont end terminates.)]TJ 0.4037 Tc -5.523 -1.2 Td (As)Tj 0 Tc 1.606 0 Td [(mall )-154(fr)18(ont-end )-154(pr)19(ogram )-154(of )-154(this )-154(type )-154(can )-154(be )-154(written, )-154(but )-154(it )-154(doesn\325t )-154(work.)-650(The)]TJ -3.406 -1.2 Td [(pr)18(oblem )-7(is )-7(that )-7(it )-7(is )-7(common )-7(practice )-7(for )-7(editors )-7(to )-7(r)18(ead )-7(their )-7(input )-7(\336le )-7(and )-7(then )-7(close )-7(it.)]TJ 0.2713 Tc T* (Al)Tj 0 Tc 1.34 0 Td [(ock )-21(is )-21(r)18(eleased )-21(on )-21(a )-21(\336le )-21(whenever )-21(a )-21(descriptor )-21(that )-21(r)15(efer)18(ences )-21(that )-21(\336le )-21(is )-21(closed.)-522(As )-21(a)]TJ -0.018 Tc -1.34 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sult, )-6(when )-6(the )-6(editor )-6(closes )-6(the )-6(\336le )-6(after )-6(r)20(eading )-6(its )-6(contents, )-6(the )-6(lock )-6(is )-6(gone.)-505(Ther)]TJ 0.2558 Tc 36.694 0 Td (ei)Tj 0 Tc 1.026 0 Td (s)Tj -38.576 -1.2 Td [(no way to pr)18(event this fr)18(om happening in the fr)18(ont-end pr)18(ogram.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1824.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9982 0 0 9.9982 147.5734 158.3715 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ll )-17(use )-17(r)18(ecor)]TJ 0.267 Tc 5.123 0 Td (dl)Tj 0 Tc 1.169 0 Td [(ocking )-17(in )-17(Chapter )-17(20 )-17(in )-17(our )-17(database )-17(library )-17(to )-17(pr)18(ovide )-17(concurr)18(ent)]TJ -9.479 -1.2 Td [(access )-46(to )-46(multiple )-46(pr)17(ocesses. )-296(W)92(e\325ll )-46(also )-46(pr)18(ovide )-46(some )-46(timing )-46(measur)18(ements )-46(to )-46(see )-46(how)]TJ -0.018 Tc 0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.25 Tc 1.367 0 Td (dl)Tj 0 Tc 1.152 0 Td [(ocking af)18(fects a pr)18(ocess.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47267 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(13.4)]TJ 37.311 0 Td [(Err)18(or )-250(Logging)]TJ /T1_1 1 Tf 8.522 0 Td (471)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1417.25 6634.25 cm 0 0 m 3658 0 l S Q Q BT /T1_2 1 Tf 7.9995 0 0 7.9995 159.4544 655.3607 Tm (option)Tj /T1_0 1 Tf 5.777 0 Td (XSI )Tj 17.552 0 Td (Description)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1417.25 6514.25 cm 0 0 m 3658 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1417.25 6494.25 cm 0 0 m 3658 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 145.6665 641.323 Tm (LOG_CONS)Tj /T1_0 1 Tf 7.962 0 Td [(\245)-1961(If the log message can\325t be sent to)]TJ /TT0 1 Tf 17.608 0 Td (syslogd)Tj /T1_0 1 Tf 4.45 0 Td (via the UNIX domain datagram,)Tj -18.14 -1.25 Td (the message is written to the console instead.)Tj /TT0 1 Tf -11.879 -1.625 Td (LOG_NDELAY)Tj /T1_0 1 Tf 7.962 0 Td [(\245)-1961(Open the UNIX domain datagram socket to the)]TJ /TT0 1 Tf 23.733 0 Td (syslogd)Tj /T1_0 1 Tf 4.45 0 Td (daemon)Tj -24.266 -1.25 Td [(immediately; don\325t wait until the \336rst message is logged.)-500(Normally)]TJ 0.25 Tc 29.795 0 Td (,t)Tj 0 Tc 0.826 0 Td (he)Tj -30.621 -1.25 Td (socket is not opened until the \336rst message is logged.)Tj /TT0 1 Tf -11.879 -1.625 Td (LOG_NOWAIT)Tj /T1_0 1 Tf 7.962 0 Td [(\245)-1961(Do not wait for child pr)18(ocesses that might have been cr)18(eated in the pr)18(ocess of)]TJ 3.917 -1.25 Td [(logging the message.)-500(This pr)18(events con\337icts with applications that catch)]TJ /TT0 1 Tf 0 -1.25 TD (SIGCHLD)Tj /T1_0 1 Tf 0.25 Tc (,s)Tj 0 Tc 5.124 0 Td [(ince the application might have r)18(etrieved the child\325s status by)]TJ -5.124 -1.25 Td (the time that)Tj /TT0 1 Tf 5.85 0 Td (syslog)Tj /T1_0 1 Tf 3.85 0 Td (calls)Tj /TT0 1 Tf 2.2 0 Td (wait)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf -23.779 -1.625 Td (LOG_ODELAY)Tj /T1_0 1 Tf 7.962 0 Td [(\245)-1961(Delay the opening of the connection to the)]TJ /TT0 1 Tf 21.538 0 Td (syslogd)Tj /T1_0 1 Tf 4.45 0 Td (daemon until the \336rst)Tj -22.071 -1.25 Td (message is logged.)Tj /TT0 1 Tf -11.879 -1.625 Td (LOG_PERROR)Tj /T1_0 1 Tf -0.074 Tc 10.529 0 Td (Wr)Tj 0 Tc 1.321 0 Td (ite the log message to standar)Tj 0.25 Tc 13.063 0 Td (de)Tj 0 Tc 1.34 0 Td [(rr)18(or in addition to sending it to)]TJ /TT0 1 Tf 13.98 0 Td (syslogd)Tj /T1_0 1 Tf (.)Tj -28.354 -1.25 Td (\(Unavailable on Solaris.\))Tj /TT0 1 Tf -11.879 -1.625 Td (LOG_PID)Tj /T1_0 1 Tf 7.962 0 Td [(\245)-1961(Log the pr)18(ocess ID with each message.)-500(This is intended for daemons that)]TJ /TT0 1 Tf 3.917 -1.25 Td (fork)Tj /T1_0 1 Tf 0.25 Tc 2.65 0 Td (ac)Tj 0 Tc 1.194 0 Td [(hild pr)18(ocess to handle dif)18(fer)18(ent r)18(equests \(as compar)18(ed to)]TJ -3.844 -1.25 Td (daemons, such as)Tj /TT0 1 Tf 8.002 0 Td (syslogd)Tj /T1_0 1 Tf 0.25 Tc (,t)Tj 0 Tc 5.026 0 Td (hat never call)Tj /TT0 1 Tf 6.184 0 Td (fork)Tj /T1_0 1 Tf (\).)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1417.25 4724.25 cm 0 0 m 3658 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2239.25 4724.25 cm 0 0 m 0 1910 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1997.25 4724.25 cm 0 0 m 0 1910 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5075.25 4724.25 cm 0 0 m 0 1910 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1417.25 4724.25 cm 0 0 m 0 1910 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 241.7405 454.3182 Tm (Figure 13.3)Tj /T1_0 1 Tf 5.695 0 Td (The)Tj /T1_2 1 Tf 1.924 0 Td (option)Tj /T1_0 1 Tf 2.805 0 Td [(ar)18(gument for)]TJ /TT0 1 Tf 6.08 0 Td (openlog)Tj /T1_0 1 Tf 9.9982 0 0 9.9982 147.5734 426.7232 Tm (The)Tj /T1_2 1 Tf 2.083 0 Td (format)Tj /T1_0 1 Tf 3.075 0 Td [(ar)18(gument )-159(and )-159(any )-159(r)18(emaining )-159(ar)18(guments )-159(ar)]TJ 0.4089 Tc 19.829 0 Td (ep)Tj 0 Tc 1.489 0 Td [(assed )-159(to )-159(the)]TJ /TT0 1 Tf 5.924 0 Td (vsprintf)Tj /T1_0 1 Tf -34.2 -1.2 Td [(function )-1(for )-1(formatting.)-501(Any )-1(occurr)17(ences )-1(of )-1(the )-1(characters)]TJ /TT0 1 Tf 26.117 0 Td (%m)Tj /T1_0 1 Tf 1.451 0 Td (in)Tj /T1_2 1 Tf 1.124 0 Td (format)Tj /T1_0 1 Tf 2.917 0 Td (ar)Tj 0.2512 Tc 0.877 0 Td (e\336)Tj 0 Tc 1.335 0 Td [(rst )-1(r)18(eplaced)]TJ -33.822 -1.2 Td [(with the err)18(or message string \()]TJ /TT0 1 Tf (strerror)Tj /T1_0 1 Tf 0.25 Tc (\)c)Tj 0 Tc 19.341 0 Td [(orr)18(esponding to the value of)]TJ /TT0 1 Tf 12.816 0 Td (errno)Tj /T1_0 1 Tf (.)Tj -30.357 -1.2 Td (The)Tj /TT0 1 Tf 1.981 0 Td (setlogmask)Tj /T1_0 1 Tf 6.307 0 Td [(function )-57(can )-57(be )-57(used )-57(to )-57(set )-57(the )-57(log )-57(priority )-57(mask )-57(for )-57(the )-57(pr)23(ocess.)]TJ -10.087 -1.2 Td [(This )-97(function )-97(r)18(eturns )-97(the )-97(pr)18(evious )-97(mask.)-597(When )-97(the )-97(log )-97(priority )-97(mask )-97(is )-97(set, )-97(messages)]TJ 0 -1.2 TD (ar)Tj 0.2725 Tc 0.877 0 Td (en)Tj 0 Tc 1.334 0 Td [(ot )-22(logged )-22(unless )-22(their )-22(priority )-22(is )-22(set )-22(in )-22(the )-22(log )-22(priority )-22(mask.)-522(Note )-22(that )-22(attempts )-22(to)]TJ -2.211 -1.2 Td [(set the log priority mask to 0 will have no ef)18(fect.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.069 0 Td (logger)Tj /T1_0 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.728 -0.04 Td [(pr)18(ogram )-145(is )-145(also )-145(pr)18(ovided )-145(by )-145(many )-145(systems )-145(as )-145(a )-145(way )-145(to )-145(send )-145(log)]TJ -9.029 -1.2 Td [(messages )-139(to )-139(the)]TJ /TT0 1 Tf 7.594 0 Td (syslog)Tj /T1_0 1 Tf 3.989 0 Td (facility)Tj 0.6387 Tc 2.921 0 Td (.S)Tj 0 Tc 1.414 0 Td [(ome )-139(implementations )-139(allow )-139(optional )-139(ar)18(guments )-139(to)]TJ -15.918 -1.2 Td [(this )-431(pr)18(ogram, )-431(specifying )-431(the)]TJ /T1_2 1 Tf 14.397 0 Td (facility)Tj /T1_0 1 Tf (,)Tj /T1_2 1 Tf 3.727 0 Td (level)Tj /T1_0 1 Tf 0.6805 Tc (,a)Tj 0 Tc 3.264 0 Td (nd)Tj /T1_2 1 Tf 1.874 0 Td (ident)Tj /T1_0 1 Tf 0.6805 Tc (,a)Tj 0 Tc 3.487 0 Td [(lthough )-430(the )-430(Single )-430(UNIX)]TJ -26.749 -1.2 Td [(Speci\336cation )-56(doesn\325t )-56(de\336ne )-56(any )-56(options.)-555(The)]TJ /TT0 1 Tf 20.599 0 Td (logger)Tj /T1_0 1 Tf 3.906 0 Td [(command )-56(is )-56(intended )-56(for )-56(a )-56(shell)]TJ -24.505 -1.2 Td [(script r)8(unning noninteractively that needs to generate log messages.)]TJ /TT1 1 Tf -3.6 -2.4 Td (Example)Tj /T1_0 1 Tf 3.6 -2.16 Td (In a \(hypothetical\) line printer spooler daemon, you might encounter t\ he sequence)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.5738 234.598 Tm (openlog\("lpd", LOG_PID, LOG_LPR\);)Tj 0 -1.189 TD (syslog\(LOG_ERR, "open error for %s: %m", filename\);)Tj /T1_0 1 Tf 9.9982 0 0 9.9982 129.5771 208.0425 Tm [(The )-170(\336rst )-170(call )-170(sets )-170(the)]TJ /T1_2 1 Tf 10.089 0 Td (ident)Tj /T1_0 1 Tf 2.476 0 Td [(string )-170(to )-170(the )-170(pr)19(ogram )-170(name, )-170(speci\336es )-170(that )-170(the )-170(pr)18(ocess )-170(ID)]TJ -12.564 -1.2 Td [(should )-6(always )-6(be )-6(printed, )-6(and )-6(sets )-6(the )-6(default)]TJ /T1_2 1 Tf 20.651 0 Td (facility)Tj /T1_0 1 Tf 3.052 0 Td [(to )-6(the )-6(line )-6(printer )-6(system.)-506(The )-6(call)]TJ -23.702 -1.2 Td (to)Tj /TT0 1 Tf 1.339 0 Td (syslog)Tj /T1_0 1 Tf 4.066 0 Td [(speci\336es )-216(an )-216(err)17(or )-216(condition )-216(and )-216(a )-216(message )-216(string.)-716(If )-216(we )-216(had )-216(not )-216(called)]TJ /TT0 1 Tf -5.405 -1.2 Td (openlog)Tj /T1_0 1 Tf 0.25 Tc (,t)Tj 0 Tc 5.026 0 Td (he second call could have been)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.5743 157.4914 Tm (syslog\(LOG_ERR | LOG_LPR, "open error for %s: %m", filename\);)Tj /T1_0 1 Tf 9.9982 0 0 9.9982 129.5776 141.6345 Tm [(Her)18(e, we specify the)]TJ /T1_2 1 Tf 9.245 0 Td (priority)Tj /T1_0 1 Tf 3.361 0 Td [(ar)18(gument as a combination of a)]TJ /T1_2 1 Tf 14.153 0 Td (level)Tj /T1_0 1 Tf 2.084 0 Td (and a)Tj /T1_2 1 Tf 2.693 0 Td (facility)Tj /T1_0 1 Tf (.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1416.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47268 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (372)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(When )-189(we )-189(terminate )-189(the)]TJ /TT0 1 Tf 11.361 0 Td (sleep)Tj /T1_1 1 Tf 3.439 0 Td [(call )-189(with )-189(the )-189(interr)7(upt )-189(signal, )-189(the)]TJ /TT0 1 Tf 15.853 0 Td (pr_exit)Tj /T1_1 1 Tf 4.639 0 Td (function)Tj -35.293 -1.2 Td (\(Figur)Tj 0.3477 Tc 2.716 0 Td (e8)Tj 0 Tc 1.327 0 Td [(.5\) )-98(thinks )-98(that )-98(it )-98(terminated )-98(normally)]TJ 0.5977 Tc 16.738 0 Td (.T)Tj 0 Tc 1.461 0 Td [(he )-98(same )-98(thing )-98(happens )-98(when )-98(we )-98(kill)]TJ -22.242 -1.2 Td (the)Tj /TT0 1 Tf 1.682 0 Td (sleep)Tj /T1_1 1 Tf 3.295 0 Td [(call )-45(with )-45(the )-45(quit )-45(key)]TJ 0.5455 Tc 9.388 0 Td (.A)Tj 0.2955 Tc 1.574 0 Td (st)Tj 0 Tc 1.046 0 Td [(his )-45(example )-45(demonstrates, )-45(the )-45(Bourne )-45(shell )-45(has )-45(a)]TJ -16.984 -1.2 Td [(poorly )-316(documented )-316(featur)19(e)-566(in)-566(w)1(hich )-316(its )-316(termination )-316(status )-316(is )-316(128 )-316(plus )-316(the )-316(signal)]TJ 0 -1.2 Td (number)Tj 0.2738 Tc 3.421 0 Td (,w)Tj 0 Tc 1.358 0 Td [(hen )-24(the )-24(command )-24(it )-24(was )-24(executing )-24(is )-24(terminated )-24(by )-24(a )-24(signal.)]TJ -0.092 Tc 27.482 0 Td [(We )-208(c)]TJ 0 Tc 2.105 0 Td [(an )-24(see )-24(this)]TJ -34.365 -1.2 Td [(with the shell interactively)111(.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5916 590.1248 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (sh)Tj /T1_2 1 Tf 18.8 0 Td (make sur)Tj 0.25 Tc 3.621 0 Td (ew)Tj 0 Tc 1.361 0 Td (e\325r)Tj 0.25 Tc 1.038 0 Td (er)Tj 0 Tc 1.028 0 Td (unning the Bourne shell)Tj /TT0 1 Tf -27.048 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (sh -c "sleep 30")Tj -1.2 -1.189 Td (\366C)Tj /T1_2 1 Tf 20 0 Td [(pr)18(ess the interrupt key)]TJ /TT0 1 Tf -20 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (echo $?)Tj /T1_2 1 Tf 18.8 0 Td (print termination status of last command)Tj /TT0 1 Tf -20 -1.189 Td (130)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (sh -c "sleep 30")Tj -1.2 -1.189 Td (\366\\)Tj /TT0 1 Tf (sh: 962 Quit - core dumped)Tj /T1_2 1 Tf 20 0 Td [(pr)18(ess the quit key)]TJ /TT0 1 Tf -20 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (echo $?)Tj /T1_2 1 Tf 18.8 0 Td (print termination status of last command)Tj /TT0 1 Tf -20 -1.189 Td (131)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (exit)Tj /T1_2 1 Tf 18.8 0 Td (leave Bourne shell)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5927 473.6916 Tm [(On )-158(the )-158(system )-158(being )-158(used,)]TJ /TT0 1 Tf 12.715 0 Td (SIGINT)Tj /T1_1 1 Tf 4.008 0 Td [(has )-158(a )-158(value )-158(of )-158(2 )-158(and)]TJ /TT0 1 Tf 9.964 0 Td (SIGQUIT)Tj /T1_1 1 Tf 4.608 0 Td [(has )-158(a )-158(value )-158(of )-158(3,)]TJ -31.295 -1.2 Td (giving us the shell\325s termination statuses of 130 and 131.)Tj 1.8 -1.2 Td [(Let\325s )-21(try )-21(a )-21(similar )-21(example, )-21(but )-21(this )-21(time )-21(we\325ll )-21(send )-21(a )-21(signal )-21(dir)16(ectly )-21(to )-21(the )-21(shell )-21(and)]TJ -1.8 -1.2 Td [(see what is r)18(eturned by)]TJ /TT0 1 Tf 10.55 0 Td (system)Tj /T1_1 1 Tf (:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5916 418.8551 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (tsys "sleep 30" &)Tj /T1_2 1 Tf 20.4 0 Td [(start it in backgr)18(ound this time)]TJ /TT0 1 Tf -21.6 -1.189 Td (9257)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (ps -f)Tj /T1_2 1 Tf 20.4 0 Td [(look at the pr)18(ocess IDs)]TJ /TT0 1 Tf -18.6 -1.189 Td [(UID )-1200(PID)-1200(PPID )-600(TTY)-3600(TIME CMD)]TJ T* [(sar )-600(9260)-1800(949 )-600(pts/5)-2400(0:00 ps -f)]TJ 0 -1.189 TD [(sar )-600(9258 )-600(9257 )-600(pts/5)-2400(0:00 sh -c sleep 30)]TJ 0 -1.189 TD [(sar )-1200(949 )-1200(947)-1200(pts/5 )-1800(0:01)-600(/bin/sh)]TJ T* [(sar )-600(9257)-1800(949 )-600(pts/5)-2400(0:00 tsys sleep 30)]TJ T* [(sar )-600(9259 )-600(9258 )-600(pts/5)-2400(0:00 sleep 30)]TJ -3 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (kill -KILL 9258)Tj /T1_2 1 Tf 20.4 0 Td (kill the shell itself)Tj /TT0 1 Tf -21.6 -1.189 Td (abnormal termination, signal number = 9)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5927 291.7225 Tm [(Her)18(e, )-105(we )-105(can )-105(see )-105(that )-105(the )-105(r)18(eturn )-105(value )-105(fr)14(om)]TJ /TT0 1 Tf 20.297 0 Td (system)Tj /T1_1 1 Tf -0.018 Tc 3.955 0 Td (re)Tj 0 Tc 0.856 0 Td [(ports )-105(an )-105(abnormal )-105(termination)]TJ -25.109 -1.2 Td [(only when the shell itself terminates abnormally)111(.)]TJ 7.9995 0 0 7.9995 183.5898 258.7245 Tm [(Other )-179(shells )-179(behave )-179(dif)18(fer)18(ently )-179(when )-179(handling )-179(terminal-generated )-179(signals, )-179(such )-179(as)]TJ /TT0 1 Tf 38.4 0 Td (SIGINT)Tj /T1_1 1 Tf -38.4 -1.25 Td (and)Tj /TT0 1 Tf 1.948 0 Td (SIGQUIT)Tj /T1_1 1 Tf 0.5045 Tc (.W)Tj 0 Tc 5.9 0 Td (ith)Tj /TT0 1 Tf 1.454 0 Td (bash)Tj /T1_1 1 Tf 2.654 0 Td (and)Tj /TT0 1 Tf 1.948 0 Td (dash)Tj /T1_1 1 Tf 0.2545 Tc (,f)Tj 0 Tc 3.237 0 Td [(or )-4(example, )-4(pr)18(essing )-4(the )-4(interr)6(upt )-4(or )-4(quit )-4(key )-4(will )-4(r)16(esult)]TJ -17.14 -1.25 Td [(in )-271(an )-271(exit )-271(status )-271(indicating )-271(abnormal )-271(termination )-271(with )-271(the )-271(corr)18(esponding )-271(signal )-271(number)69(.)]TJ 0 -1.25 TD [(However)74(,)-418(if)-418(we)-418(\336nd )-168(our )-168(pr)18(ocess )-168(executing)]TJ /TT0 1 Tf 20.083 0 Td (sleep)Tj /T1_1 1 Tf 3.418 0 Td [(and )-168(send )-168(it )-168(a )-168(signal )-168(dir)18(ectly)111(,)-418(so)-418(that )-168(the)]TJ -23.501 -1.25 Td [(signal )-80(goes )-80(only )-80(to )-80(the )-80(individual )-80(pr)18(ocess )-80(instead )-80(of )-80(the )-80(entir)]TJ 0.3301 Tc 27.649 0 Td (ef)Tj 0 Tc 1.142 0 Td [(or)18(egr)18(ound )-80(pr)18(ocess )-80(gr)18(oup, )-80(we)]TJ -28.791 -1.25 Td [(will )-170(\336nd )-170(that )-170(these )-170(shells )-170(behave )-170(like )-170(the )-170(Bourne )-170(shell )-170(and )-170(exit )-170(with )-170(a )-170(normal )-170(termination)]TJ T* [(status of 128 plus the signal number)74(.)]TJ 9.9994 0 0 9.9994 147.5924 175.7295 Tm [(When )-232(writing )-232(pr)18(ograms )-232(that )-232(use )-232(the)]TJ /TT0 1 Tf 17.72 0 Td (system)Tj /T1_1 1 Tf 4.082 0 Td [(function, )-232(be )-232(sur)18(e)-482(to)-482(interpr)18(et )-232(the)]TJ -0.018 Tc -23.602 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-233(value )-233(corr)18(ectly)]TJ 0.7329 Tc 9.057 0 Td (.I)Tj 0.4829 Tc 1.32 0 Td (fy)Tj 0 Tc 1.372 0 Td [(ou )-233(call)]TJ /TT0 1 Tf 3.641 0 Td (fork)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.133 0 Td (exec)Tj /T1_1 1 Tf 0.4828 Tc (,a)Tj 0 Tc 3.633 0 Td (nd)Tj /TT0 1 Tf 1.676 0 Td (wait)Tj /T1_1 1 Tf 2.883 0 Td [(yourself, )-233(the )-233(termination)]TJ -27.569 -1.2 Td (status is not the same as if you call)Tj /TT0 1 Tf 15.474 0 Td (system)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47269 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (368)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -2.259 TD (static void)Tj 0 -1.189 TD (sig_int\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("caught SIGINT\\n"\);)Tj -2.4 -1.189 Td (})Tj 0 -2.259 TD (static void)Tj 0 -1.189 TD (sig_chld\(int signo\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (printf\("caught SIGCHLD\\n"\);)Tj -2.4 -1.189 Td (})Tj 0 -2.259 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (if \(signal\(SIGINT, sig_int\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("signal\(SIGINT\) error"\);)Tj -2.4 -1.189 Td (if \(signal\(SIGCHLD, sig_chld\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("signal\(SIGCHLD\) error"\);)Tj -2.4 -1.189 Td (if \(system\("/bin/ed"\) < 0\))Tj 2.4 -1.189 Td (err_sys\("system\(\) error"\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4011.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 232.3641 385.0618 Tm (Figure 10.26)Tj /T1_1 1 Tf 6.195 0 Td (Using)Tj /TT0 1 Tf 2.881 0 Td (system)Tj /T1_1 1 Tf 3.85 0 Td (to invoke the)Tj /TT0 1 Tf 6.028 0 Td (ed)Tj /T1_1 1 Tf 1.45 0 Td (editor)Tj 9.9988 0 0 9.9988 129.5844 361.0647 Tm [(par)18(ent )-56(should )-56(be )-56(blocked )-56(while )-56(the)]TJ /TT0 1 Tf 16.132 0 Td (system)Tj /T1_1 1 Tf 3.906 0 Td [(function )-56(is )-56(executing.)-556(Indeed, )-56(this )-56(is )-56(what)]TJ -20.038 -1.2 Td [(POSIX.1 )-95(speci\336es.)-595(Otherwise, )-95(when )-95(the )-95(child )-95(cr)18(eated )-95(by)]TJ /TT0 1 Tf 25.929 0 Td (system)Tj /T1_1 1 Tf 3.945 0 Td [(terminates, )-95(it )-95(would)]TJ -29.873 -1.2 Td [(fool )-149(the )-149(caller )-149(of)]TJ /TT0 1 Tf 7.976 0 Td (system)Tj /T1_1 1 Tf 3.999 0 Td [(into )-149(thinking )-149(that )-149(one )-149(of )-149(its )-149(own )-149(childr)18(en )-149(terminated.)-646(The)]TJ -11.975 -1.2 Td [(caller )-160(would )-160(then )-160(use )-160(one )-160(of )-160(the)]TJ /TT0 1 Tf 15.502 0 Td (wait)Tj /T1_1 1 Tf 2.81 0 Td [(functions )-160(to )-160(get )-160(the )-160(termination )-160(status )-160(of )-160(the)]TJ -18.311 -1.2 Td [(child, )-187(ther)18(eby )-187(pr)18(eventing )-187(the)]TJ /TT0 1 Tf 13.794 0 Td (system)Tj /T1_1 1 Tf 4.037 0 Td [(function )-187(fr)18(om )-187(being )-187(able )-187(to )-187(obtain )-187(the )-187(child\325s)]TJ -17.832 -1.2 Td [(termination status for its r)18(eturn value.)]TJ 1.8 -1.2 Td [(If )-11(we )-11(r)8(un )-11(the )-11(pr)18(ogram )-11(again, )-11(this )-11(time )-11(sending )-11(the )-11(editor )-11(an )-11(interr)4(upt )-11(signal, )-11(we )-11(get)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5818 272.3753 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj -1.2 -1.189 Td (a)Tj /T1_2 1 Tf 12 0 Td (append text to the editor)Tj -0.055 Tc 9.813 0 Td [(\325s )-110(b)]TJ 0 Tc 1.325 0 Td (uffer)Tj /TT1 1 Tf -23.138 -1.189 Td (hello, world)Tj T* (.)Tj /T1_2 1 Tf 12 0 Td (period on a line by itself stops append mode)Tj /TT1 1 Tf -12 -1.189 Td (1,$p)Tj /T1_2 1 Tf 12 0 Td [(print \336rst thr)18(ough last lines to see what\325)]TJ 0.25 Tc 16.149 0 Td (st)Tj 0 Tc 0.972 0 Td [(her)18(e)]TJ /TT0 1 Tf -29.121 -1.189 Td (hello, world)Tj /TT1 1 Tf 0.6 Tc T* (wt)Tj 0 Tc 1.8 0 Td (emp.foo)Tj /T1_2 1 Tf 10.2 0 Td (write the buffer to a \336le)Tj /TT0 1 Tf -12 -1.189 Td (13)Tj /T1_2 1 Tf 12 0 Td [(editor says it wr)18(ote 13 bytes)]TJ /TT1 1 Tf -12 -1.189 Td (\366C)Tj /T1_2 1 Tf 12 0 Td (type the interrupt character)Tj /TT0 1 Tf -12 -1.189 Td (?)Tj /T1_2 1 Tf 12 0 Td (editor catches signal, prints question mark)Tj /TT0 1 Tf -12 -1.189 Td (caught SIGINT)Tj /T1_2 1 Tf 12 0 Td [(and so does the par)18(ent pr)18(ocess)]TJ /TT1 1 Tf -12 -1.189 Td (q)Tj /T1_2 1 Tf 12 0 Td (leave editor)Tj /TT0 1 Tf -12 -1.189 Td (caught SIGCHLD)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47270 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (246)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(We )-329(s)]TJ 0 Tc 2.206 0 Td [(aw )-144(a )-144(potential )-144(race )-144(condition )-144(in )-144(the )-144(pr)18(ogram )-144(in )-144(Figur)]TJ 0.3945 Tc 24.737 0 Td (e8)Tj 0 Tc 1.374 0 Td [(.8 )-144(when )-144(the )-144(second)]TJ -30.116 -1.2 Td [(child )-82(printed )-82(its )-82(par)18(ent )-82(pr)18(ocess )-82(ID.)-582(If )-82(the )-82(second )-82(child )-82(r)5(uns )-82(befor)]TJ 0.3322 Tc 29.617 0 Td (et)Tj 0 Tc 1.137 0 Td [(he )-82(\336rst )-82(child, )-82(then)]TJ -30.754 -1.2 Td [(its )-67(par)18(ent )-67(pr)18(ocess )-67(will )-67(be )-67(the )-67(\336rst )-67(child.)-567(But )-67(if )-67(the )-67(\336rst )-67(child )-67(r)7(uns )-67(\336rst )-67(and )-67(has )-67(enough)]TJ 0 -1.2 TD [(time )-40(to)]TJ /TT0 1 Tf 3.432 0 Td (exit)Tj /T1_1 1 Tf 0.2904 Tc (,t)Tj 0 Tc 3.266 0 Td [(hen )-40(the )-40(par)17(ent )-40(pr)18(ocess )-40(of )-40(the )-40(second )-40(child )-40(is)]TJ /TT0 1 Tf 20.089 0 Td (init)Tj /T1_1 1 Tf 0.5403 Tc (.E)Tj 0 Tc 3.801 0 Td [(ven )-40(calling)]TJ /TT0 1 Tf 5.162 0 Td (sleep)Tj /T1_1 1 Tf (,)Tj -35.75 -1.2 Td [(as )-3(we )-3(did, )-3(guarantees )-3(nothing.)-503(If )-3(the )-3(system )-3(was )-3(heavily )-3(loaded, )-3(the )-3(second )-3(child )-3(could)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(sume )-52(after)]TJ /TT0 1 Tf 5.025 0 Td (sleep)Tj /T1_1 1 Tf -0.018 Tc 3.302 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns, )-52(befor)]TJ 0.3016 Tc 5.17 0 Td (et)Tj 0 Tc 1.107 0 Td [(he )-51(\336rst )-51(child )-51(has )-51(a )-51(chance )-51(to )-51(r)5(un. )-301(Pr)18(oblems )-51(of )-51(this)]TJ -16.315 -1.2 Td [(form can be dif)18(\336cult to debug because they tend to work \324)37(\324most of the time.\325)37(\325)]TJ 0.4214 Tc 1.8 -1.2 Td (Ap)Tj -0.018 Tc 1.8 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-171(that )-171(wants )-171(to )-171(wait )-171(for )-171(a )-171(child )-171(to )-171(terminate )-171(must )-171(call )-171(one )-171(of )-171(the)]TJ /TT0 1 Tf 32.076 0 Td (wait)Tj /T1_1 1 Tf -36.6 -1.2 Td [(functions. )-292(If)]TJ 0.292 Tc 5.885 0 Td (ap)Tj -0.018 Tc 1.393 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-42(wants )-42(to )-42(wait )-42(for )-42(its )-42(par)18(ent )-42(to )-42(terminate, )-42(as )-42(in )-42(the )-42(pr)18(ogram )-42(fr)19(om)]TJ -8.201 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e8)Tj 0 Tc 1.229 0 Td (.8, a loop of the following form could be used:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5919 544.2673 Tm (while \(getppid\(\) != 1\))Tj 2.4 -1.189 Td (sleep\(1\);)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.593 515.5691 Tm [(The )-155(pr)18(oblem )-155(with )-155(this )-155(type )-155(of )-155(loop, )-155(called)]TJ /T1_2 1 Tf 19.991 0 Td (polling)Tj /T1_1 1 Tf [(,)-405(is)-405(that )-155(it )-155(wastes )-155(CPU )-155(time, )-155(as )-155(the)]TJ -19.991 -1.2 Td (caller is awakened every second to test the condition.)Tj -0.092 Tc 1.8 -1.2 Td [(To )-299(a)]TJ 0 Tc 1.932 0 Td [(void )-115(race )-115(conditions )-115(and )-115(to )-115(avoid )-115(polling, )-115(some )-115(form )-115(of )-115(signaling )-115(is )-115(r)23(equir)18(ed)]TJ -3.732 -1.2 Td [(between )-48(multiple )-48(pr)18(ocesses. )-298(Signals)-298(can )-48(be )-48(used )-48(for )-48(this )-48(purpose, )-48(and )-48(we )-48(describe )-48(one)]TJ 0 -1.2 Td [(way )-32(to )-32(do )-32(this )-32(in )-32(Section )-32(10.16.)]TJ -0.092 Tc 14.33 0 Td (Va)Tj 0 Tc 1.13 0 Td [(rious )-32(forms )-32(of )-32(interpr)18(ocess )-32(communication)]TJ 19.417 0.04 Td (\()Tj 0.333 -0.04 Td (IPC)Tj 1.65 0.04 Td (\))Tj 0.615 -0.04 Td (can)Tj -37.474 -1.2 Td (also be used.)Tj -0.092 Tc 6.16 0 Td (We)Tj 0 Tc 1.387 0 Td (\325ll discuss some of these options in Chapters 15 and 17.)Tj -5.747 -1.2 Td [(For )-32(a )-32(par)18(ent )-32(and )-32(child )-32(r)18(elationship, )-32(we )-32(often )-32(have )-32(the )-32(following )-32(scenario.)-531(After )-32(the)]TJ /TT0 1 Tf -1.8 -1.2 Td (fork)Tj /T1_1 1 Tf 0.4086 Tc (,b)Tj 0 Tc 3.612 0 Td [(oth )-159(the )-159(par)18(ent )-159(and )-159(the )-159(child )-159(have )-159(something )-159(to )-159(do.)-655(For )-158(example, )-158(the )-158(par)17(ent)]TJ -3.612 -1.2 Td [(could )-35(update )-35(a )-35(r)17(ecor)18(d)-285(in)-285(a)-285(l)-1(og )-35(\336le )-35(with )-35(the )-35(child\325s )-35(pr)18(ocess )-35(ID, )-35(and )-35(the )-35(child )-35(might )-35(have)]TJ 0 -1.2 Td [(to )-13(cr)18(eate )-13(a )-13(\336le )-13(for )-13(the )-13(par)20(ent. )-263(In)-262(this )-13(example, )-13(we )-13(r)19(equir)]TJ 0.2627 Tc 24.809 0 Td (et)Tj 0 Tc 1.068 0 Td [(hat )-13(each )-13(pr)18(ocess )-13(tell )-13(the )-13(other)]TJ -25.876 -1.2 Td [(when )-183(it )-183(has )-183(\336nished )-183(its )-183(initial )-183(set )-183(of )-183(operations, )-183(and )-183(that )-183(each )-183(wait )-183(for )-183(the )-183(other )-183(to)]TJ T* (complete, befor)Tj 0.25 Tc 6.837 0 Td (eh)Tj 0 Tc 1.311 0 Td [(eading of)18(f)-250(on)-250(its own.)-500(The following code illustrates this scenario:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5921 366.878 Tm [(#include )-600("apue.h")]TJ 0 -1.902 TD [(TELL_WAIT\(\); )-1800(/*)-600(set things up for TELL_xxx & WAIT_xxx */)]TJ T* (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(pid == 0\) {)Tj 18.6 0 Td (/* child */)Tj -18 -1.902 Td (/* child does whatever is necessary ... */)Tj T* [(TELL_PARENT\(getppid\(\)\); )-2400(/*)-600(tell parent we\325re done */)]TJ 0 -1.189 TD (WAIT_PARENT\(\); )Tj 16.8 0 Td [(/*)-600(and wait for parent */)]TJ -16.8 -1.902 Td (/* and the child continues on its way ... */)Tj 0 -1.902 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj T* (/* parent does whatever is necessary ... */)Tj T* (TELL_CHILD\(pid\); )Tj 16.8 0 Td [(/*)-600(tell child we\325re done */)]TJ -16.8 -1.189 Td (WAIT_CHILD\(\); )Tj 16.8 0 Td [(/*)-600(and wait for child */)]TJ -16.8 -1.902 Td (/* and the parent continues on its way ... */)Tj T* (exit\(0\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47271 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (232)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 1341.24 5558 1008 1080 re S Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 138.9277 667 Tm [(par)18(ent pr)18(ocess table entry)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1629.24 6062 576 72 re S Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1629.24 5990 576 72 re S Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1629.24 5918 576 72 re S Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1629.24 5702 576 216 re S Q BT /T1_1 1 Tf 0.25 Tc 13.9983 0 0 13.9983 182.952 579.1705 Tm (...)Tj 0 Tc 6.9992 0 0 6.9992 147.5485 607.9666 Tm (fd 0:)Tj 0 -1.029 TD (fd 1:)Tj T* (fd 2:)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1845.25 6134.25 cm 0 0 m 0 -216 l S Q Q BT /T1_1 1 Tf 6.9987 0 0 6.9987 170.3893 622.288 Tm (fd)Tj -0.572 -0.714 Td (\337ags)Tj 4.471 0.714 Td (\336le)Tj -0.923 -0.714 Td (pointer)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 1341.24 4118 1008 1080 re S Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 141.486 522.9145 Tm [(child pr)18(ocess table entry)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1629.24 4622 576 72 re S Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1629.24 4550 576 72 re S Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1629.24 4478 576 72 re S Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1629.24 4262 576 216 re S Q BT /T1_1 1 Tf 0.25 Tc 13.9958 0 0 13.9958 182.9191 435.1094 Tm (...)Tj 0 Tc 6.9979 0 0 6.9979 147.5219 463.9012 Tm (fd 0:)Tj 0 -1.029 TD (fd 1:)Tj 0 -1.029 TD (fd 2:)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1845.25 4694.25 cm 0 0 m 0 -216 l S Q Q BT /T1_1 1 Tf 6.9975 0 0 6.9975 170.3587 478.2278 Tm (fd)Tj -0.572 -0.714 Td (\337ags)Tj 4.471 0.714 Td (\336le)Tj -0.923 -0.714 Td (pointer)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2925.24 6494 720 144 re S Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 302.1331 654.565 Tm (\336le status \337ags)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 2925.24 6350 720 144 re S Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 298.3647 640.1327 Tm [(curr)18(ent \336le of)18(fset)]TJ ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 2925.24 6206 720 144 re S Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 302.0169 625.702 Tm (v-node pointer)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 2925.24 5702 720 144 re S Q BT /T1_1 1 Tf 7.9952 0 0 7.9952 302.0787 575.2947 Tm (\336le status \337ags)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 2925.24 5558 720 144 re S Q BT /T1_1 1 Tf 7.9947 0 0 7.9947 298.311 560.8697 Tm [(curr)18(ent \336le of)18(fset)]TJ ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J 2925.24 5414 720 144 re S Q BT /T1_1 1 Tf 7.9942 0 0 7.9942 301.9625 546.4464 Tm (v-node pointer)Tj ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J 2925.24 4910 720 144 re S Q BT /T1_1 1 Tf 7.9938 0 0 7.9938 302.0243 496.0529 Tm (\336le status \337ags)Tj ET q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J 2925.24 4766 720 144 re S Q BT /T1_1 1 Tf 7.9933 0 0 7.9933 298.2574 481.6352 Tm [(curr)18(ent \336le of)18(fset)]TJ ET q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J 2925.24 4622 720 144 re S Q BT /T1_1 1 Tf 7.9928 0 0 7.9928 301.9082 467.2193 Tm (v-node pointer)Tj 1.406 24.925 Td (\336le table)Tj 6.9937 0 0 6.9937 427.4961 652.4525 Tm (v-node information)Tj /TT0 1 Tf 2.52 -2.057 Td (v_data)Tj /T1_1 1 Tf -2.383 -4.114 Td (i-node information)Tj 0.796 -2.057 Td [(curr)18(ent \336le size)]TJ /TT0 1 Tf 1.287 -1.543 Td (i_vnode)Tj ET q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 6638.25 cm 0 0 m 0 -288 l 720 -288 l 720 0 l 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 6206.25 cm 0 0 m 0 -396 l 720 -396 l 720 0 l 0 0 l 720 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 6458.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 6458.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 6458.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 6458.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 6458.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 6458.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 6458.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 6458.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 6458.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 6458.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 6026.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 6026.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 6026.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 6026.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 6026.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 6026.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 6026.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 6026.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 6026.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 6026.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 5918.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 5918.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 5918.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 5918.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 5918.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 5918.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 5918.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 5918.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 5918.25 cm 0 0 m 36 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 5918.25 cm 0 0 m 36 0 l S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 422.124 622.76 cm 0 0 m -5.328 5.184 l -2.232 7.056 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 4221.2402 6227.6001 cm 0 0 m -53.28 51.84 l -22.32 70.56 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4293.2402 6404 cm 0 0 m -90 0 l -150 0 -162.6 -28.32 -127.8 -84.96 c -75.6 -169.92 l S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 496.284 663.8 cm 0 0 m 4.032 -6.192 l 0.648 -7.344 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 4962.8398 6638 cm 0 0 m 40.32 -61.92 l 6.48 -73.44 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4869.2402 5864 cm 0 0 m 180 0 l 300 0 315.96 127.92 227.88 383.76 c 95.76 767.52 l S Q Q BT /T1_1 1 Tf 6.9924 0 0 6.9924 427.4191 533.6633 Tm (v-node information)Tj /TT0 1 Tf 2.52 -2.057 Td (v_data)Tj /T1_1 1 Tf -2.383 -4.114 Td (i-node information)Tj 0.796 -2.057 Td [(curr)18(ent \336le size)]TJ /TT0 1 Tf 1.287 -1.543 Td (i_vnode)Tj ET q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 5450.25 cm 0 0 m 0 -288 l 720 -288 l 720 0 l 0 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 5018.25 cm 0 0 m 0 -396 l 720 -396 l 720 0 l 0 0 l 720 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 5270.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 4838.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 4838.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 4838.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 4838.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 4838.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 4838.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 4838.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 4838.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 4838.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 4838.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 4730.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 4730.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 4730.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 4730.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 4730.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 4730.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 4730.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 4730.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 4730.25 cm 0 0 m 36 0 l S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 4730.25 cm 0 0 m 36 0 l S Q Q q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 422.124 503.96 cm 0 0 m -5.328 5.184 l -2.232 7.056 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 4221.2402 5039.6001 cm 0 0 m -53.28 51.84 l -22.32 70.56 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4293.2402 5216 cm 0 0 m -90 0 l -150 0 -162.6 -28.32 -127.8 -84.96 c -75.6 -169.92 l S Q Q q 0.9988007 0 0 0.9988007 0 0 cm q 1 0 0 1 496.284 545 cm 0 0 m 4.032 -6.192 l 0.648 -7.344 l f Q Q q 0.0998801 0 0 0.0998801 0 0 cm 1 j 1 J q 1 0 0 1 4962.8398 5450 cm 0 0 m 40.32 -61.92 l 6.48 -73.44 l h S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4869.2402 4676 cm 0 0 m 180 0 l 300 0 315.96 127.92 227.88 383.76 c 95.76 767.52 l S Q Q BT /T1_1 1 Tf 6.9912 0 0 6.9912 427.3422 414.9169 Tm (v-node information)Tj /TT0 1 Tf 2.52 -2.057 Td (v_data)Tj /T1_1 1 Tf -2.383 -4.114 Td (i-node information)Tj 0.796 -2.057 Td [(curr)18(ent \336le size)]TJ /TT0 1 Tf 1.287 -1.543 Td (i_vnode)Tj ET q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 4262.25 cm 0 0 m 0 -288 l 720 -288 l 720 0 l 0 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 3830.25 cm 0 0 m 0 -396 l 720 -396 l 720 0 l 0 0 l 720 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 4082.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 4082.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 4082.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 4082.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 4082.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 4082.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 4082.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 4082.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 4082.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 4082.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 3650.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 3650.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 3650.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 3650.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 3650.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 3650.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 3650.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 3650.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 3650.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 3650.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 3542.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 3542.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 3542.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 3542.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 3542.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 3542.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 3542.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 3542.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 3542.25 cm 0 0 m 36 0 l S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 3542.25 cm 0 0 m 36 0 l S Q Q q 0.9986808 0 0 0.9986808 0 0 cm q 1 0 0 1 422.124 385.16 cm 0 0 m -5.328 5.184 l -2.232 7.056 l f Q Q q 0.0998681 0 0 0.0998681 0 0 cm 1 j 1 J q 1 0 0 1 4221.2402 3851.6001 cm 0 0 m -53.28 51.84 l -22.32 70.56 l h S Q Q q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4293.2402 4028 cm 0 0 m -90 0 l -150 0 -162.6 -28.32 -127.8 -84.96 c -75.6 -169.92 l S Q Q q 0.9986209 0 0 0.9986209 0 0 cm q 1 0 0 1 496.284 426.2 cm 0 0 m 4.032 -6.192 l 0.648 -7.344 l f Q Q q 0.0998621 0 0 0.0998621 0 0 cm 1 j 1 J q 1 0 0 1 4962.8398 4262 cm 0 0 m 40.32 -61.92 l 6.48 -73.44 l h S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4869.2402 3488 cm 0 0 m 180 0 l 300 0 315.96 127.92 227.88 383.76 c 95.76 767.52 l S Q Q BT /T1_1 1 Tf 7.9885 0 0 7.9885 435.4365 666.0801 Tm (v-node table)Tj ET q 0.998561 0 0 0.998561 0 0 cm q 1 0 0 1 288.924 660.2 cm 0 0 m -3.024 -6.768 l -5.832 -4.536 l f Q Q q 0.0998561 0 0 0.0998561 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 6602 cm 0 0 m -30.24 -67.68 l -58.32 -45.36 l h S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 6098 cm 0 0 m 180 0 l 300 0 425.28 83.04 555.84 249.12 c 751.68 498.24 l S Q Q q 0.9985011 0 0 0.9985011 0 0 cm q 1 0 0 1 288.924 586.04 cm 0 0 m -7.344 1.152 l -5.976 4.464 l f Q Q q 0.0998501 0 0 0.0998501 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 5860.3999 cm 0 0 m -73.44 11.52 l -59.76 44.64 l h S Q Q q 0.0998501 0 0 0.0998501 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 6026 cm 0 0 m 180 0 l 300 0 424.92 -27.12 554.76 -81.36 c 749.52 -162.72 l S Q Q q 0.9984412 0 0 0.9984412 0 0 cm q 1 0 0 1 288.924 506.84 cm 0 0 m -4.608 5.832 l -1.296 7.272 l f Q Q q 0.0998441 0 0 0.0998441 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 5068.3999 cm 0 0 m -46.08 58.32 l -12.96 72.72 l h S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 5954 cm 0 0 m 180 0 l 300 0 425.52 -146.52 556.56 -439.56 c 753.12 -879.12 l S Q Q q 0.9983813 0 0 0.9983813 0 0 cm q 1 0 0 1 288.924 656.6 cm 0 0 m 0.288 -7.416 l -3.24 -6.696 l f Q Q q 0.0998381 0 0 0.0998381 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 6566 cm 0 0 m 2.88 -74.16 l -32.4 -66.96 l h S Q Q q 0.0998381 0 0 0.0998381 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 4658 cm 0 0 m 180 0 l 300 0 425.76 316.8 557.28 950.4 c 754.56 1900.8 l S Q Q q 0.9983214 0 0 0.9983214 0 0 cm q 1 0 0 1 288.924 583.16 cm 0 0 m -0.432 -7.416 l -3.888 -6.336 l f Q Q q 0.0998321 0 0 0.0998321 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 5831.6001 cm 0 0 m -4.32 -74.16 l -38.88 -63.36 l h S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 4586 cm 0 0 m 180 0 l 300 0 425.64 206.4 556.92 619.2 c 753.84 1238.4 l S Q Q q 0.9982615 0 0 0.9982615 0 0 cm q 1 0 0 1 288.924 503.96 cm 0 0 m -2.88 -6.84 l -5.76 -4.68 l f Q Q q 0.0998261 0 0 0.0998261 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 5039.6001 cm 0 0 m -28.8 -68.4 l -57.6 -46.8 l h S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 4514 cm 0 0 m 180 0 l 300 0 425.28 86.64 555.84 259.92 c 751.68 519.84 l S Q Q q 0.9982016 0 0 0.9982016 0 0 cm q 1 0 0 1 418.524 660.2 cm 0 0 m -3.024 -6.768 l -5.832 -4.536 l f Q Q q 0.0998202 0 0 0.0998202 0 0 cm 1 j 1 J q 1 0 0 1 4185.2402 6602 cm 0 0 m -30.24 -67.68 l -58.32 -45.36 l h S Q Q q 0.0998202 0 0 0.0998202 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3573.24 6278 cm 0 0 m 180 0 l 300 0 401.28 53.04 483.84 159.12 c 607.68 318.24 l S Q Q q 0.9981417 0 0 0.9981417 0 0 cm q 1 0 0 1 418.524 543.56 cm 0 0 m -7.416 -0.36 l -6.696 3.168 l f Q Q q 0.0998142 0 0 0.0998142 0 0 cm 1 j 1 J q 1 0 0 1 4185.2402 5435.6001 cm 0 0 m -74.16 -3.6 l -66.96 31.68 l h S Q Q q 0.0998142 0 0 0.0998142 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3573.24 5486 cm 0 0 m 180 0 l 300 0 400.8 -8.16 482.4 -24.48 c 604.8 -48.96 l S Q Q q 0.9980818 0 0 0.9980818 0 0 cm q 1 0 0 1 418.524 426.2 cm 0 0 m -5.184 5.328 l -2.088 7.128 l f Q Q q 0.0998082 0 0 0.0998082 0 0 cm 1 j 1 J q 1 0 0 1 4185.2402 4262 cm 0 0 m -51.84 53.28 l -20.88 71.28 l h S Q Q q 0.0998082 0 0 0.0998082 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3573.24 4694 cm 0 0 m 180 0 l 300 0 401.4 -70.92 484.2 -212.76 c 608.4 -425.52 l S Q Q BT /T1_0 1 Tf 7.9842 0 0 7.9842 201.3849 317.5706 Tm (Figure 8.2)Tj /T1_1 1 Tf 5.195 0 Td [(Sharing of open \336les between par)18(ent and child after)]TJ /TT0 1 Tf 23.109 0 Td (fork)Tj /T1_1 1 Tf 9.9802 0 0 9.9802 147.3082 291.2228 Tm [(If )-366(both )-366(par)18(ent )-366(and )-366(child )-366(write )-366(to )-366(the )-366(same )-366(descriptor)]TJ 0.6158 Tc 26.305 0 Td (,w)Tj 0 Tc 1.7 0 Td [(ithout )-366(any )-366(form )-366(of)]TJ -29.805 -1.2 Td [(synchr)18(onization, )-209(such )-209(as )-209(having )-209(the )-209(par)18(ent)]TJ /TT0 1 Tf 20.439 0 Td (wait)Tj /T1_1 1 Tf 2.859 0 Td [(for )-209(the )-209(child, )-209(their )-209(output )-209(will )-209(be)]TJ -23.298 -1.2 Td [(intermixed )-22(\(assuming )-22(it\325s )-22(a )-22(descriptor )-22(that )-22(was )-22(open )-22(befor)]TJ 0.2716 Tc 25.941 0 Td (et)Tj 0 Tc 1.077 0 Td (he)Tj /TT0 1 Tf 1.333 0 Td (fork)Tj /T1_1 1 Tf [(\). )-272(Although)-271(this )-22(is)]TJ -28.35 -1.2 Td [(possible )167(\321 )167(we)-251(saw it in Figur)]TJ 0.25 Tc 12.72 0 Td (e8)Tj 0 Tc 1.229 0 Td [(.2 )167(\321 )167(it\325s)-251(not the normal mode of operation.)]TJ -12.149 -1.2 Td (Ther)Tj 0.25 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(t)]TJ 0 Tc 1.432 0 Td (wo normal cases for handling the descriptors after a)Tj /TT0 1 Tf 23.223 0 Td (fork)Tj /T1_1 1 Tf (.)Tj -27.935 -1.68 Td [(1. )-633(The)-253(par)18(ent )-3(waits )-3(for )-3(the )-3(child )-3(to )-3(complete.)-503(In )-3(this )-3(case, )-3(the )-3(par)18(ent )-3(does )-3(not )-3(need)]TJ 1.633 -1.2 Td [(to )-247(do )-247(anything )-247(with )-247(its )-247(descriptors.)-747(When )-247(the )-247(child )-247(terminates, )-247(any )-247(of )-247(the)]TJ 0 -1.2 TD [(shar)18(ed )-15(descriptors )-15(that )-15(the )-15(child )-15(r)18(ead )-15(fr)18(om )-15(or )-15(wr)19(ote )-15(to )-15(will )-15(have )-15(their )-15(\336le )-15(of)18(fsets)]TJ 0 -1.2 Td [(updated accor)18(dingly)111(.)]TJ -1.633 -1.6 Td [(2. )-633(Both)-438(the )-188(par)18(ent )-188(and )-188(the )-188(child )-188(go )-188(their )-188(own )-188(ways.)-684(Her)18(e, )-187(after )-187(the)]TJ /TT0 1 Tf 32.725 0 Td (fork)Tj /T1_1 1 Tf 0.4375 Tc (,t)Tj 0 Tc 3.414 0 Td (he)Tj -34.506 -1.2 Td [(par)18(ent )-115(closes )-115(the )-115(descriptors )-115(that )-115(it )-115(doesn\325t )-115(need, )-115(and )-115(the )-115(child )-115(does )-115(the )-115(same)]TJ T* [(thing. )-541(This)-542(way)]TJ 0.5414 Tc 7.609 0 Td (,n)Tj 0 Tc 1.373 0 Td [(either )-291(interfer)18(es )-291(with )-291(the )-291(other)-74(\325s )-291(open )-291(descriptors.)-794(This)]TJ -8.982 -1.2 Td (scenario is often found with network servers.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47272 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.1)]TJ 28.7243 Tc 5.388 0 Td (1N)Tj 0 Tc 30.055 0 Td [(oncanonical )-250(Mode)]TJ /T1_1 1 Tf 10.39 0 Td (707)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 0.6 Tc 8.9995 0 0 8.9995 156.5906 670.2598 Tm (*O)Tj 0 Tc 1.8 0 Td (utput processing off.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (buf.c_oflag &= \367\(OPOST\);)Tj 0 -2.14 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (ase B: 1 byte at a time, no timer.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (buf.c_cc[VMIN] = 1;)Tj 0 -1.189 TD (buf.c_cc[VTIME] = 0;)Tj 0 -1.189 TD (if \(tcsetattr\(fd, TCSAFLUSH, &buf\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -2.14 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*V)Tj 0 Tc 1.8 0 Td [(erify that the changes stuck.)-1200(tcsetattr can return 0 on)]TJ 0.6 Tc -1.8 -1.189 Td (*p)Tj 0 Tc 1.8 0 Td (artial success.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(tcgetattr\(fd, &buf\) < 0\) {)Tj 2.4 -1.189 Td (err = errno;)Tj T* (tcsetattr\(fd, TCSAFLUSH, &save_termios\);)Tj 0 -1.189 TD (errno = err;)Tj T* (return\(-1\);)Tj -2.4 -1.189 Td (})Tj T* (if \(\(buf.c_lflag & \(ECHO | ICANON | IEXTEN | ISIG\)\) ||)Tj 1.2 -1.189 Td (\(buf.c_iflag & \(BRKINT | ICRNL | INPCK | ISTRIP | IXON\)\) ||)Tj T* (\(buf.c_cflag & \(CSIZE | PARENB | CS8\)\) != CS8 ||)Tj T* (\(buf.c_oflag & OPOST\) || buf.c_cc[VMIN] != 1 ||)Tj T* (buf.c_cc[VTIME] != 0\) {)Tj 1.2 -1.189 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*O)Tj 0 Tc 1.8 0 Td [(nly some of the changes were made.)-1200(Restore the)]TJ 0.6 Tc -1.8 -1.189 Td (*o)Tj 0 Tc 1.8 0 Td (riginal settings.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (tcsetattr\(fd, TCSAFLUSH, &save_termios\);)Tj T* (errno = EINVAL;)Tj T* (return\(-1\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (ttystate = RAW;)Tj 0 -1.189 TD (ttysavefd = fd;)Tj T* (return\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (int)Tj 0 -1.189 TD [(tty_reset\(int fd\))-4200(/* restore terminal\325s mode */)]TJ T* ({)Tj 2.4 -1.189 Td (if \(ttystate == RESET\))Tj 2.4 -1.189 Td (return\(0\);)Tj -2.4 -1.189 Td (if \(tcsetattr\(fd, TCSAFLUSH, &save_termios\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td (ttystate = RESET;)Tj 0 -1.189 TD (return\(0\);)Tj -2.4 -1.189 Td (})Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47273 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.1)]TJ 28.7243 Tc 5.388 0 Td (1N)Tj 0 Tc 30.055 0 Td [(oncanonical )-250(Mode)]TJ /T1_1 1 Tf 10.39 0 Td (705)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.09 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (Tw)Tj 0.3449 Tc 1.357 0 Td (oa)Tj 0 Tc 1.391 0 Td [(dditional )-95(functions )-95(ar)]TJ 0.3449 Tc 9.747 0 Td (ep)Tj -0.018 Tc 1.425 0 Td (ro)Tj 0 Tc 0.923 0 Td (vided:)Tj /TT0 1 Tf 3.152 0 Td (tty_atexit)Tj /T1_0 1 Tf 6.345 0 Td [(can )-95(be )-95(established )-95(as )-95(an )-95(exit)]TJ -26.139 -1.2 Td [(handler )-23(to )-23(ensur)]TJ 0.2728 Tc 7.323 0 Td (et)Tj 0 Tc 1.078 0 Td [(hat )-23(the )-23(terminal )-23(mode )-23(is )-23(r)18(eset )-23(by)]TJ /TT0 1 Tf 14.88 0 Td (exit)Tj /T1_0 1 Tf 0.2728 Tc (,a)Tj 0 Tc 3.423 0 Td (nd)Tj /TT0 1 Tf 1.466 0 Td (tty_termios)Tj /T1_0 1 Tf -0.018 Tc 6.873 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-23(a)]TJ -35.897 -1.2 Td (pointer to the original canonical mode)Tj /TT0 1 Tf 17.13 0 Td (termios)Tj /T1_0 1 Tf 4.45 0 Td [(str)8(uctur)18(e.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6318.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 622.2243 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj 0 -2.14 TD [(static struct termios)-4200(save_termios;)]TJ 0 -1.189 TD (static int)Tj 16.8 0 Td (ttysavefd = -1;)Tj -16.8 -1.189 Td [(static enum { RESET, RAW, CBREAK })-1200(ttystate = RESET;)]TJ 0 -2.14 TD (int)Tj 0 -1.189 TD [(tty_cbreak\(int fd\))-1200(/* put terminal into a cbreak mode */)]TJ T* ({)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td (err;)Tj -9.6 -1.189 Td [(struct termios)-1200(buf;)]TJ 0 -2.14 TD (if \(ttystate != RESET\) {)Tj 2.4 -1.189 Td (errno = EINVAL;)Tj 0 -1.189 TD (return\(-1\);)Tj -2.4 -1.189 Td (})Tj T* (if \(tcgetattr\(fd, &buf\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td (save_termios = buf; /* structure copy */)Tj 0 -2.14 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*E)Tj 0 Tc 1.8 0 Td (cho off, canonical mode off.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (buf.c_lflag &= \367\(ECHO | ICANON\);)Tj T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (ase B: 1 byte at a time, no timer.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (buf.c_cc[VMIN] = 1;)Tj 0 -1.189 TD (buf.c_cc[VTIME] = 0;)Tj 0 -1.189 TD (if \(tcsetattr\(fd, TCSAFLUSH, &buf\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -2.14 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*V)Tj 0 Tc 1.8 0 Td [(erify that the changes stuck.)-1200(tcsetattr can return 0 on)]TJ 0.6 Tc -1.8 -1.189 Td (*p)Tj 0 Tc 1.8 0 Td (artial success.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(tcgetattr\(fd, &buf\) < 0\) {)Tj 2.4 -1.189 Td (err = errno;)Tj T* (tcsetattr\(fd, TCSAFLUSH, &save_termios\);)Tj 0 -1.189 TD (errno = err;)Tj 0 -1.189 TD (return\(-1\);)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (if \(\(buf.c_lflag & \(ECHO | ICANON\)\) || buf.c_cc[VMIN] != 1 ||)Tj 1.2 -1.189 Td (buf.c_cc[VTIME] != 0\) {)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47274 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (684)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(All )-70(the )-70(\337ags )-70(listed )-70(specify )-70(one )-70(or )-70(mor)]TJ 0.3199 Tc 16.979 0 Td (eb)Tj 0 Tc 1.352 0 Td [(its )-70(that )-70(we )-70(turn )-70(on )-70(or )-70(clear)]TJ 0.3199 Tc 12.017 0 Td (,u)Tj 0 Tc 1.173 0 Td [(nless )-70(we )-70(call)]TJ -33.321 -1.2 Td [(the )-168(\337ag )-168(a)]TJ /T1_2 1 Tf 4.805 0 Td (mask)Tj /T1_1 1 Tf 0.6681 Tc (.A)Tj 0 Tc 4.169 0 Td [(mask )-168(de\336nes )-168(multiple )-168(bits )-168(gr)18(ouped )-168(together )-168(fr)17(om )-168(which )-168(a )-168(set )-168(of)]TJ -8.975 -1.2 Td [(values )-6(is )-6(de\336ned.)]TJ -0.092 Tc 8.213 0 Td [(We )-190(h)]TJ 0 Tc 2.225 0 Td [(ave )-6(a )-6(de\336ned )-6(name )-6(for )-6(the )-6(mask )-6(and )-6(a )-6(name )-6(for )-6(each )-6(value.)-510(For)]TJ -10.438 -1.2 Td [(example, )-127(to )-127(set )-127(the )-127(character )-127(size, )-127(we )-127(\336rst )-127(zer)]TJ 0.377 Tc 20.931 0 Td (ot)Tj 0 Tc 1.249 0 Td [(he )-127(bits )-127(using )-127(the )-127(character)18(-size )-127(mask)]TJ /TT0 1 Tf -22.18 -1.2 Td (CSIZE)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 4 0 Td (nd then set one of the values)Tj /TT0 1 Tf 12.876 0 Td (CS5)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.3 0 Td (CS6)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.3 0 Td (CS7)Tj /T1_1 1 Tf 0.25 Tc (,o)Tj 0 Tc 2.846 0 Td (r)Tj /TT0 1 Tf 0.645 0 Td (CS8)Tj /T1_1 1 Tf (.)Tj -23.167 -1.2 Td [(The )-10(six )-10(delay )-10(values )-10(supported )-10(by )-10(Linux )-10(and )-10(Solaris )-10(ar)]TJ 0.2599 Tc 24.383 0 Td (ea)Tj 0 Tc 1.239 0 Td [(lso )-10(masks:)]TJ /TT0 1 Tf 4.818 0 Td (BSDLY)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.51 0 Td (CRDLY)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -35.75 -1.2 Td (FFDLY)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.596 0 Td (NLDLY)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.596 0 Td (TABDLY)Tj /T1_1 1 Tf 0.3455 Tc (,a)Tj 0 Tc 4.696 0 Td (nd)Tj /TT0 1 Tf 1.539 0 Td (VTDLY)Tj /T1_1 1 Tf 0.5955 Tc (.R)Tj 0 Tc 4.514 0 Td [(efer )-95(to )-95(the)]TJ /TT0 1 Tf 4.981 0 Td (termio)Tj /T1_1 1 Tf [(\(7I\) )-95(manual )-95(page )-95(on )-95(Solaris)]TJ -22.92 -1.2 Td [(for )-70(the )-70(length )-70(of )-70(each )-70(delay )-70(value.)-567(In )-69(all )-69(cases, )-69(a )-69(delay )-69(mask )-69(of )-69(0 )-69(means )-69(no )-69(delay)]TJ 0.5695 Tc 36.691 0 Td (.I)Tj 0.3195 Tc 1.156 0 Td (fa)Tj 0 Tc -37.848 -1.2 Td [(delay )-137(is )-137(speci\336ed, )-137(the)]TJ /TT0 1 Tf 10.27 0 Td (OFILL)Tj /T1_1 1 Tf 3.387 0 Td (and)Tj /TT0 1 Tf 2.08 0 Td (OFDEL)Tj /T1_1 1 Tf 3.387 0 Td [(\337ags )-137(determine )-137(whether )-137(the )-137(driver )-137(does )-137(an)]TJ -19.124 -1.2 Td (actual delay or whether \336ll characters ar)Tj 0.25 Tc 17.772 0 Td (et)Tj 0 Tc 1.055 0 Td (ransmitted instead.)Tj /TT1 1 Tf -22.427 -2.4 Td (Example)Tj /T1_1 1 Tf 3.6 -1.92 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (8.1)Tj 0.25 Tc 1.195 0 Td (1d)Tj 0 Tc 1.361 0 Td (emonstrates the use of these masks to extract a value and to set a value\ .)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5106.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 501.0389 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(struct termios)-1200(term;)]TJ 0 -1.783 TD (if \(tcgetattr\(STDIN_FILENO, &term\) < 0\))Tj 2.4 -1.189 Td (err_sys\("tcgetattr error"\);)Tj -2.4 -1.783 Td (switch \(term.c_cflag & CSIZE\) {)Tj 0 -1.189 TD (case CS5:)Tj 2.4 -1.189 Td (printf\("5 bits/byte\\n"\);)Tj T* (break;)Tj -2.4 -1.189 Td (case CS6:)Tj 2.4 -1.189 Td (printf\("6 bits/byte\\n"\);)Tj T* (break;)Tj -2.4 -1.189 Td (case CS7:)Tj 2.4 -1.189 Td (printf\("7 bits/byte\\n"\);)Tj T* (break;)Tj -2.4 -1.189 Td (case CS8:)Tj 2.4 -1.189 Td (printf\("8 bits/byte\\n"\);)Tj T* (break;)Tj -2.4 -1.189 Td (default:)Tj 2.4 -1.189 Td (printf\("unknown bits/byte\\n"\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD [(term.c_cflag &= \367CSIZE;)-3000(/* zero out the bits */)]TJ 0 -1.189 TD [(term.c_cflag |= CS8;)-4800(/* set 8 bits/byte */)]TJ T* (if \(tcsetattr\(STDIN_FILENO, TCSANOW, &term\) < 0\))Tj 2.4 -1.189 Td (err_sys\("tcsetattr error"\);)Tj -2.4 -1.783 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1592.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 226.9152 144.422 Tm [(Figure 18.1)37(1)]TJ /T1_1 1 Tf 6.158 0 Td (Example of)Tj /TT0 1 Tf 5.26 0 Td (tcgetattr)Tj /T1_1 1 Tf 5.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (tcsetattr)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1384.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47275 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (992)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (unlink)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(1)55(14, 1)55(16)]TJ 7.93 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (9, 121)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (122, 125, 141,)Tj -13.942 -1.25 Td (169)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (170, 331, 366, 452, 497, 553, 637, 639, 641,)Tj -2.167 -1.25 Td (823, 826)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(827, 837, 909, 91)55(1, 937, 942)]TJ -5.516 -1.25 Td (de\336nition of,)Tj -0.055 Tc 6.192 0 Td (11)Tj 0 Tc 0.945 0 Td (7)Tj /TT0 1 Tf -8.487 -1.25 Td (unlinkat)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(1)55(16)]TJ 5.985 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (9, 331, 452)Tj -11.38 -1.25 Td (de\336nition of,)Tj -0.055 Tc 6.192 0 Td (11)Tj 0 Tc 0.945 0 Td (7)Tj /TT0 1 Tf -8.487 -1.25 Td (un_lock)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(489,)-250(759)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (760, 762, 768,)Tj -10.54 -1.25 Td (770)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (771, 773, 777)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (778, 780, 897)Tj /TT0 1 Tf -11.033 -1.25 Td (unlockpt)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(723)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (725)Tj -10.49 -1.25 Td [(de\336nition of,)-500(723)]TJ -1.35 -1.25 Td [(Unrau, R.,)-500(174, 531, 950)]TJ 0 -1.25 TD [(unr)18(eliable signals,)-500(326)]TJ 10.097 0.09 Td (\320)Tj 0.583 -0.09 Td (327)Tj /TT0 1 Tf -10.681 -1.25 Td (unsetenv)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(212,)-250(442)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(212)]TJ /TT0 1 Tf -1.35 -1.25 Td (update)Tj /T1_1 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(81)]TJ /TT0 1 Tf -4.017 -1.25 Td (update_jobno)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(814,)-250(819, 832, 843)]TJ -6.267 -1.25 Td [(de\336nition of,)-500(819)]TJ -1.35 -1.25 Td [(Upstart, )-250(290)]TJ /TT0 1 Tf T* (uptime)Tj /T1_1 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(614)]TJ 6.191 0.09 Td (\320)Tj 0.583 -0.09 Td (615, 617, 619)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (620,)Tj -14.258 -1.25 Td (622)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (623, 628)Tj /TT0 1 Tf 0.1666 Tc -4.866 -1.25 Td (__)Tj 0 Tc 1.367 0 Td (USE_BSD)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(473)]TJ /TT0 1 Tf -5.983 -1.25 Td (USER)Tj /T1_1 1 Tf 2.817 0 Td [(envir)18(onment variable,)-500(210, 288)]TJ -2.817 -1.25 Td [(user ID,)-500(16, 255)]TJ 7.095 0.09 Td (\320)Tj 0.583 -0.09 Td (260)Tj -6.329 -1.25 Td [(ef)18(fective, )-250(98)]TJ 5.544 0.09 Td (\320)Tj 0.583 -0.09 Td (99, 101)Tj 3.083 0.09 Td (\320)Tj 0.583 -0.09 Td [(102, 106, 1)55(10, 126, 140,)]TJ -8.444 -1.25 Td (228, 233, 253, 256)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (260, 276, 286, 288, 337, 381,)Tj -8.166 -1.25 Td (558, 562, 568, 573, 586)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (587, 637, 640, 809, 918)Tj -0.018 Tc -11.517 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(al, )-250(39)]TJ 2.624 0.09 Td (\320)Tj 0.583 -0.09 Td (40, 43, 98)Tj 4.083 0.09 Td (\320)Tj 0.583 -0.09 Td (99, 102, 221, 228, 233,)Tj -7.38 -1.25 Td (252)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (253, 256)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (260, 270, 276, 286, 288, 337,)Tj -6.333 -1.25 Td (381, 585, 924)Tj /TT0 1 Tf -2.7 -1.25 Td (USHRT_MAX)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(37)]TJ /TT0 1 Tf -5.817 -1.25 Td (usleep)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(532,)-250(934)]TJ -4.017 -1.25 Td [(UTC \(Coor)18(dinated Universal T)55(ime\), )-250(20,)-250(189, 192,)]TJ 2.7 -1.25 Td (196)Tj /TT0 1 Tf -2.7 -1.25 Td (utime)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(127,)-250(331, 910)]TJ /TT0 1 Tf -3.417 -1.25 Td (UTIME_NOW)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(126)]TJ /TT0 1 Tf -5.817 -1.25 Td (utimensat)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(125)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (128, 331, 452, 910)Tj -11.09 -1.25 Td [(de\336nition of,)-500(126)]TJ /TT0 1 Tf -1.35 -1.25 Td (UTIME_OMIT)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(126)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (127)Tj /TT0 1 Tf -13.063 -1.25 Td (utimes)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(125)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (128, 141, 331, 452, 910)Tj -9.29 -1.25 Td [(de\336nition of,)-500(127)]TJ /TT0 1 Tf -1.35 -1.25 Td (utmp)Tj /T1_1 1 Tf 2.817 0 Td [(\336le, )-250(186)]TJ 3.708 0.09 Td (\320)Tj 0.583 -0.09 Td (187, 276, 312, 734, 923, 930)Tj /TT0 1 Tf -7.108 -1.25 Td (utmp)Tj /T1_1 1 Tf 2.817 0 Td [(str)8(uctur)18(e, )-250(187)]TJ /TT0 1 Tf -2.817 -1.25 Td (utmpx)Tj /T1_1 1 Tf 3.417 0 Td [(\336le, )-250(187)]TJ /TT0 1 Tf -3.417 -1.25 Td ()Tj /T1_1 1 Tf 5.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (0)Tj /TT0 1 Tf -10.039 -1.25 Td (utsname)Tj /T1_1 1 Tf 4.617 0 Td [(str)8(uctur)18(e, )-250(187)]TJ 6.302 0.09 Td (\320)Tj 0.583 -0.09 Td (188, 196)Tj -11.502 -1.25 Td [(UUCP \(Unix-to-Unix Copy\),)-500(188)]TJ /TT0 1 Tf T* (uucp)Tj /T1_1 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(500)]TJ -2.817 -4.75 Td [(V7, )-250(329,)-250(726)]TJ /TT0 1 Tf T* (va_arg)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(758)]TJ /TT0 1 Tf -4.017 -1.25 Td (va_end)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(758,)-250(899)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (903)Tj /TT0 1 Tf 13.36 64.75 Td (va_list)Tj /T1_1 1 Tf 4.617 0 Td [(data type,)-500(758, 899)]TJ 8.482 0.09 Td (\320)Tj 0.583 -0.09 Td (903)Tj /TT0 1 Tf -13.682 -1.25 Td (/var/account/acct)Tj /T1_1 1 Tf 10.617 0 Td [(\336le, )-250(269)]TJ /TT0 1 Tf -10.617 -1.25 Td (/var/adm/pacct)Tj /T1_1 1 Tf 8.817 0 Td [(\336le, )-250(269)]TJ /TT0 1 Tf -8.817 -1.25 Td ()Tj /T1_1 1 Tf 7.017 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,1)Tj 0 Tc 1.25 0 Td (62)Tj -11.239 -1.25 Td (variables)Tj 1.35 -1.25 Td [(automatic, )-250(205,)-250(215, 217, 219, 226)]TJ T* [(global, )-250(219)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td (gister)Tj 0.5 Tc 2.397 0 Td (,2)Tj 0 Tc 1.25 0 Td (17)Tj -4.503 -1.25 Td [(static, )-250(219)]TJ T* [(volatile, )-250(217,)-250(219, 340, 357)]TJ /TT0 1 Tf -1.35 -1.25 Td (/var/log/account/pacct)Tj /T1_1 1 Tf 13.617 0 Td [(\336le, )-250(269)]TJ /TT0 1 Tf -13.617 -1.25 Td (/var/log/wtmp)Tj /T1_1 1 Tf 8.217 0 Td [(\336le, )-250(187)]TJ /TT0 1 Tf -8.217 -1.25 Td (/var/run/utmp)Tj /T1_1 1 Tf 8.217 0 Td [(\336le, )-250(187)]TJ /TT0 1 Tf -8.217 -1.25 Td (va_start)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(758,)-250(899)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (903)Tj /TT0 1 Tf -13.84 -1.25 Td (VDISCARD)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(678)]TJ /TT0 1 Tf -5.217 -1.25 Td (vdprintf)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(161,)-250(452)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(161)]TJ /TT0 1 Tf -1.35 -1.25 Td (VDSUSP)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(678)]TJ /TT0 1 Tf -4.017 -1.25 Td (VEOF)Tj /T1_1 1 Tf 2.817 0 Td [(constant, )-250(678)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (679, 704)Tj /TT0 1 Tf -9.463 -1.25 Td (VEOL)Tj /T1_1 1 Tf 2.817 0 Td [(constant, )-250(678,)-250(704)]TJ /TT0 1 Tf -2.817 -1.25 Td (VEOL2)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(678)]TJ /TT0 1 Tf -3.417 -1.25 Td (VERASE)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(678)]TJ /TT0 1 Tf -4.017 -1.25 Td (VERASE2)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(678)]TJ /TT0 1 Tf -4.617 -1.25 Td (vfork)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(229,)-250(234)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (236, 283, 921)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (922)Tj /TT0 1 Tf -18.207 -1.25 Td (vfprintf)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(161,)-250(452)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(161)]TJ /TT0 1 Tf -1.35 -1.25 Td (vfscanf)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(163)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(163)]TJ /TT0 1 Tf -1.35 -1.25 Td (vfwprintf)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -5.817 -1.25 Td (vi)Tj /T1_1 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(377,)-250(497, 499, 672, 71)55(1)]TJ 14.136 0.09 Td (\320)Tj 0.583 -0.09 Td (713, 943)Tj /TT0 1 Tf -16.336 -1.25 Td (VINTR)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(678)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (679)Tj /TT0 1 Tf -10.063 -1.25 Td (vipw)Tj /T1_1 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(179)]TJ /TT0 1 Tf -2.817 -1.25 Td (VKILL)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(678)]TJ /TT0 1 Tf -3.417 -1.25 Td (VLNEXT)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(678)]TJ /TT0 1 Tf -4.017 -1.25 Td (VMIN)Tj /T1_1 1 Tf 2.817 0 Td [(constant, )-250(703)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (705, 707)Tj -9.463 -1.25 Td [(v-node, )-250(74)]TJ 4.949 0.09 Td (\320)Tj 0.583 -0.09 Td (76, 78, 136, 312, 642, 907, 950)Tj /TT0 1 Tf -5.533 -1.25 Td (vnode)Tj /T1_1 1 Tf 3.417 0 Td [(str)8(uctur)18(e, )-250(31)55(1)]TJ 6.247 0.09 Td (\320)Tj 0.583 -0.09 Td (312)Tj -0.111 Tc -10.247 -1.25 Td (Vo)Tj 0 Tc 1.157 0 Td [(,)-250(K.)-250(P)129(., )-250(135,)-250(174, 949)]TJ 8.784 0.09 Td (\320)Tj 0.583 -0.09 Td (950, 953)Tj -10.524 -1.25 Td [(volatile variables,)-500(217, 219, 340, 357)]TJ /TT0 1 Tf -0 -1.25 Td (vprintf)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(161,)-250(452)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(161)]TJ /TT0 1 Tf -1.35 -1.25 Td (VQUIT)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(678)]TJ /TT0 1 Tf -3.417 -1.25 Td (vread)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(525)]TJ /TT0 1 Tf -3.417 -1.25 Td (VREPRINT)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(678)]TJ /TT0 1 Tf -5.217 -1.25 Td (vscanf)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(163)]TJ -2.667 -1.25 Td [(de\336nition of,)-500(163)]TJ /TT0 1 Tf -1.35 -1.25 Td (vsnprintf)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(161,)-250(901)]TJ -4.467 -1.25 Td [(de\336nition of,)-500(161)]TJ /TT0 1 Tf -1.35 -1.25 Td (vsprintf)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(161,)-250(471)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(161)]TJ /TT0 1 Tf -1.35 -1.25 Td (vsscanf)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(163)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(163)]TJ /TT0 1 Tf -1.35 -1.25 Td (VSTART)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(678)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47276 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(B.2)]TJ 32.558 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dE)Tj 0 Tc 1.722 0 Td [(rr)18(or )-250(Routines)]TJ /T1_1 1 Tf 8.132 0 Td (901)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 0.6 Tc 8.9995 0 0 8.9995 134.9919 670.2598 Tm (*P)Tj 0 Tc 1.8 0 Td (rint a message and return.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (err_msg\(const char *fmt, ...\))Tj T* ({)Tj 2.4 -1.189 Td [(va_list )-2400(ap;)]TJ 0 -2.021 TD (va_start\(ap, fmt\);)Tj 0 -1.189 TD (err_doit\(0, 0, fmt, ap\);)Tj T* (va_end\(ap\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*F)Tj 0 Tc 1.8 0 Td (atal error unrelated to a system call.)Tj 0.6 Tc -1.8 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (rint a message and terminate.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (err_quit\(const char *fmt, ...\))Tj T* ({)Tj 2.4 -1.189 Td [(va_list )-2400(ap;)]TJ 0 -2.021 TD (va_start\(ap, fmt\);)Tj 0 -1.189 TD (err_doit\(0, 0, fmt, ap\);)Tj T* (va_end\(ap\);)Tj T* (exit\(1\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (rint a message and return to caller.)Tj 0.6 Tc -1.8 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (aller specifies "errnoflag".)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (static void)Tj 0 -1.189 TD (err_doit\(int errnoflag, int error, const char *fmt, va_list ap\))Tj T* ({)Tj 2.4 -1.189 Td [(char )-1800(buf[MAXLINE];)]TJ 0 -2.021 TD (vsnprintf\(buf, MAXLINE-1, fmt, ap\);)Tj 0 -1.189 TD (if \(errnoflag\))Tj 2.4 -1.189 Td (snprintf\(buf+strlen\(buf\), MAXLINE-strlen\(buf\)-1, ": %s",)Tj 1.2 -1.189 Td (strerror\(error\)\);)Tj -3.6 -1.189 Td (strcat\(buf, "\\n"\);)Tj T* [(fflush\(stdout\); )-2400(/*)-600(in case stdout and stderr are the same */)]TJ T* (fputs\(buf, stderr\);)Tj T* [(fflush\(NULL\); )-3600(/*)-600(flushes all stdio output streams */)]TJ -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2107.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 224.3691 194.7256 Tm (Figure B.3)Tj /T1_0 1 Tf 5.362 0 Td [(Err)18(or functions that output to standar)]TJ 0.25 Tc 16.636 0 Td (de)Tj 0 Tc 1.34 0 Td [(rr)18(or)]TJ 9.9988 0 0 9.9988 147.5823 170.7285 Tm (Figur)Tj 0.3832 Tc 2.383 0 Td (eB)Tj 0 Tc 1.473 0 Td [(.4 )-133(shows )-133(the)]TJ /TT0 1 Tf 6.097 0 Td (log_XXX)Tj /T1_0 1 Tf 4.583 0 Td [(err)18(or )-133(functions.)-633(These )-133(r)18(equir)]TJ 0.3833 Tc 13.237 0 Td (et)Tj 0 Tc 1.188 0 Td [(he )-133(caller )-133(to )-133(de\336ne)]TJ -30.761 -1.2 Td [(the )-222(variable)]TJ /TT0 1 Tf 5.905 0 Td (log_to_stderr)Tj /T1_0 1 Tf 8.272 0 Td [(and )-222(set )-222(it )-222(nonzer)18(o)-472(if)-472(the )-222(pr)18(ocess )-222(is )-222(not )-222(r)8(unning )-222(as )-222(a)]TJ -14.177 -1.2 Td [(daemon. )-759(In)-759(this )-509(case, )-509(the )-509(err)18(or )-509(messages )-509(ar)]TJ 0.759 Tc 22.678 0 Td (es)Tj 0 Tc 1.662 0 Td [(ent )-509(to )-509(standar)]TJ 0.759 Tc 7.097 0 Td (de)Tj 0 Tc 1.849 0 Td [(rr)18(or)]TJ 1.009 Tc 1.639 0 Td (.I)Tj 0.759 Tc 1.596 0 Td (ft)Tj 0 Tc 1.418 0 Td (he)Tj /TT0 1 Tf -37.939 -1.2 Td (log_to_stderr)Tj /T1_0 1 Tf 8.05 0 Td (\337ag is 0, the)Tj /TT0 1 Tf 5.516 0 Td (syslog)Tj /T1_0 1 Tf 3.85 0 Td (facility \(Section 13.4\) is used.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47277 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.15)]TJ /TT0 1 Tf 24.886 0 Td (sigsetjmp)Tj /T1_0 1 Tf 5.9 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (siglongjmp)Tj /T1_0 1 Tf 6.5 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (357)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm ({)Tj 2.4 -1.189 Td [(time_t )-600(starttime;)]TJ 0 -1.783 TD (if \(canjump == 0\))Tj 2.4 -1.189 Td [(return; )-2400(/*)-600(unexpected signal, ignore */)]TJ -2.4 -1.783 Td (pr_mask\("starting sig_usr1: "\);)Tj 0 -1.783 TD (alarm\(3\); )Tj 14.4 0 Td [(/*)-600(SIGALRM in 3 seconds */)]TJ -14.4 -1.189 Td (starttime = time\(NULL\);)Tj 0 -1.189 TD (for \( ; ; \))Tj 14.4 0 Td (/* busy wait for 5 seconds */)Tj -12 -1.189 Td (if \(time\(NULL\) > starttime + 5\))Tj 2.4 -1.189 Td (break;)Tj -4.8 -1.783 Td (pr_mask\("finishing sig_usr1: "\);)Tj 0 -1.783 TD (canjump = 0;)Tj 0 -1.189 TD [(siglongjmp\(jmpbuf, 1\);)-1200(/* jump back to main, don\325t return */)]TJ -2.4 -1.189 Td (})Tj 0 -1.783 TD (static void)Tj 0 -1.189 TD (sig_alrm\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td (pr_mask\("in sig_alrm: "\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4408.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 198.6602 424.748 Tm (Figure 10.20)Tj /T1_0 1 Tf 6.195 0 Td (Example of signal masks,)Tj /TT0 1 Tf 11.441 0 Td (sigsetjmp)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 6.4 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (siglongjmp)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 147.5827 400.7509 Tm [(This )-346(pr)18(ogram )-346(demonstrates )-346(another )-346(technique )-346(that )-346(should )-346(be )-346(used )-346(whenever)]TJ /TT0 1 Tf -1.8 -1.2 Td (siglongjmp)Tj /T1_0 1 Tf 6.269 0 Td [(is )-18(called )-18(fr)18(om )-18(a )-18(signal )-18(handler)]TJ 0.5185 Tc 13.323 0 Td (.W)Tj 0.2685 Tc 1.676 0 Td (es)Tj 0 Tc 1.171 0 Td [(et )-18(the )-18(variable)]TJ /TT0 1 Tf 6.571 0 Td (canjump)Tj /T1_0 1 Tf 4.469 0 Td [(to )-18(a )-18(nonzer)17(o)]TJ -33.479 -1.2 Td [(value )-246(only )-246(after )-246(we\325ve )-246(called)]TJ /TT0 1 Tf 14.18 0 Td (sigsetjmp)Tj /T1_0 1 Tf 0.7466 Tc (.T)Tj 0 Tc 7.01 0 Td [(his )-247(variable )-247(is )-247(examined )-247(in )-247(the )-247(signal)]TJ -21.189 -1.2 Td (handler)Tj 0.2637 Tc 3.366 0 Td (,a)Tj 0 Tc 1.014 0 Td (nd)Tj /TT0 1 Tf 1.457 0 Td (siglongjmp)Tj /T1_0 1 Tf 6.264 0 Td [(is )-14(called )-14(only )-14(if )-14(the )-14(\337ag)]TJ /TT0 1 Tf 10.563 0 Td (canjump)Tj /T1_0 1 Tf 4.464 0 Td [(is )-14(nonzer)18(o. )-264(This)-263(technique)]TJ -27.126 -1.2 Td [(pr)18(ovides )-35(pr)18(otection )-35(against )-35(the )-35(signal )-35(handler )-35(being )-35(called )-35(at )-35(some )-35(earlier )-35(or )-35(later )-35(time,)]TJ 0 -1.2 TD [(when )-104(the )-104(jump )-104(buf)18(fer )-104(hasn\325t )-104(been )-104(initialized )-104(by)]TJ /TT0 1 Tf 22.042 0 Td (sigsetjmp)Tj /T1_0 1 Tf 0.604 Tc (.\()Tj 0 Tc 6.587 0 Td [(In )-104(this )-104(trivial )-104(pr)18(ogram,)]TJ -28.629 -1.2 Td [(we )-41(terminate )-41(quickly )-41(after )-41(the)]TJ /TT0 1 Tf 13.753 0 Td (siglongjmp)Tj /T1_0 1 Tf 0.2916 Tc (,b)Tj 0 Tc 7.095 0 Td [(ut )-42(in )-42(lar)18(ger )-42(pr)18(ograms, )-42(the )-42(signal )-42(handler)]TJ -20.847 -1.2 Td [(may )-161(r)18(emain )-161(installed )-161(long )-161(after )-161(the)]TJ /TT0 1 Tf 16.707 0 Td (siglongjmp)Tj /T1_0 1 Tf [(.\) )-411(Pr)18(oviding )-161(this )-161(type )-161(of )-161(pr)18(otection)]TJ -16.707 -1.2 Td [(usually )-25(isn\325t )-25(r)17(equir)18(ed )-25(with)]TJ /TT0 1 Tf 12.081 0 Td (longjmp)Tj /T1_0 1 Tf 4.476 0 Td [(in )-26(normal )-26(C )-26(code )-26(\(as )-26(opposed )-26(to )-26(a )-26(signal )-26(handler\).)]TJ -16.557 -1.2 Td [(Since )-48(a )-48(signal )-48(can )-48(occur )-48(at)]TJ /T1_2 1 Tf 12.037 0 Td (any)Tj /T1_0 1 Tf 1.798 0 Td [(time, )-48(however)74(,)-298(we)-298(need )-48(the )-48(added )-48(pr)18(otection )-48(in )-48(a )-48(signal)]TJ -13.835 -1.2 Td [(handler)74(.)]TJ 1.8 -1.2 Td [(Her)18(e, )-9(we )-9(use )-9(the )-9(data )-9(type)]TJ /TT0 1 Tf 12.077 0 Td (sig_atomic_t)Tj /T1_0 1 Tf 0.2592 Tc (,w)Tj 0 Tc 8.543 0 Td [(hich )-9(is )-9(de\336ned )-9(by )-9(the )-9(ISO )-9(C )-9(standar)17(d)]TJ -22.42 -1.2 Td [(to )-158(be )-158(the )-158(type )-158(of )-158(variable )-158(that )-158(can )-158(be )-158(written )-158(without )-158(being )-158(interr)10(upted. )-408(By)-408(this )-158(we)]TJ 0 -1.2 Td [(mean )-32(that )-32(a )-32(variable )-32(of )-32(this )-32(type )-32(should )-32(not )-32(extend )-32(acr)22(oss )-32(page )-32(boundaries )-32(on )-32(a )-32(system)]TJ T* [(with )-330(virtual )-330(memory )-330(and )-330(can )-330(be )-330(accessed )-330(with )-330(a )-330(single )-330(machine )-330(instr)12(uction, )-329(for)]TJ T* [(example. )-356(W)]TJ 0.3558 Tc 5.513 0 Td (ea)Tj 0 Tc 1.335 0 Td [(lways )-106(include )-106(the )-106(ISO )-106(type )-106(quali\336er)]TJ /TT0 1 Tf 16.762 0 Td (volatile)Tj /T1_0 1 Tf 5.156 0 Td [(for )-106(these )-106(data )-106(types )-106(as)]TJ -28.765 -1.2 Td [(well, )-90(since )-90(the )-90(variable )-90(is )-90(being )-90(accessed )-90(by )-90(two )-90(dif)19(fer)18(ent )-90(thr)18(eads )-90(of )-90(contr)18(ol: )-90(the)]TJ /TT0 1 Tf 36.6 0 Td (main)Tj /T1_0 1 Tf -36.6 -1.2 Td [(function )-349(and )-349(the )-349(asynchr)18(onously )-349(executing )-349(signal )-349(handler)]TJ 0.8492 Tc 27.681 0 Td (.F)Tj 0 Tc 1.655 0 Td (igur)Tj 0.5992 Tc 1.827 0 Td (e1)Tj 0 Tc 1.578 0 Td [(0.21 )-349(shows )-349(a)]TJ -32.742 -1.2 Td [(timeline )-188(for )-188(this )-188(pr)19(ogram. )-438(W)]TJ 0.4377 Tc 13.536 0 Td (ec)Tj 0 Tc 1.361 0 Td [(an )-188(divide )-188(Figur)]TJ 0.4377 Tc 7.188 0 Td (e1)Tj 0 Tc 1.417 0 Td [(0.21 )-188(into )-188(thr)18(ee )-188(parts: )-188(the )-188(left )-188(part)]TJ -23.502 -1.2 Td [(\(corr)18(esponding )-112(to)]TJ /TT0 1 Tf 8.363 0 Td (main)Tj /T1_0 1 Tf [(\), )-112(the )-112(center )-112(part )-112(\()]TJ /TT0 1 Tf 10.677 0 Td (sig_usr1)Tj /T1_0 1 Tf [(\), )-112(and )-112(the )-112(right )-112(part )-112(\()]TJ /TT0 1 Tf 14.577 0 Td (sig_alrm)Tj /T1_0 1 Tf (\).)Tj -33.617 -1.2 Td [(While )-236(the )-236(pr)18(ocess )-236(is )-236(executing )-236(in )-236(the )-236(left )-236(part, )-236(its )-236(signal )-236(mask )-236(is )-236(0 )-236(\(no )-236(signals )-236(ar)19(e)]TJ T* [(blocked\). )-552(While)-552(executing )-302(in )-302(the )-302(center )-302(part, )-302(its )-302(signal )-302(mask )-302(is)]TJ /TT0 1 Tf 31.105 0 Td (SIGUSR1)Tj /T1_0 1 Tf 0.8021 Tc (.W)Tj 0 Tc 6.252 0 Td (hile)Tj -37.357 -1.2 Td (executing in the right part, its signal mask is)Tj /TT0 1 Tf 19.771 0 Td (SIGUSR1|SIGALRM)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47278 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (340)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Earlier )-208(implementations )-208(of)]TJ /TT0 1 Tf 12.699 0 Td (sleep)Tj /T1_1 1 Tf 3.458 0 Td [(looked )-208(like )-208(our )-208(pr)18(ogram, )-208(with )-208(pr)18(oblems )-208(1 )-208(and )-208(2)]TJ -16.157 -1.2 Td [(corr)18(ected )-313(as )-313(described.)-812(Ther)]TJ 0.5627 Tc 13.551 0 Td (ea)Tj -0.018 Tc 1.542 0 Td [(re )-349(t)]TJ 0 Tc 1.745 0 Td [(wo )-313(ways )-313(to )-313(corr)18(ect )-313(pr)18(oblem )-313(3.)-813(The )-313(\336rst )-313(uses)]TJ /TT0 1 Tf -16.837 -1.2 Td (setjmp)Tj /T1_1 1 Tf 0.5068 Tc (,w)Tj 0 Tc 5.191 0 Td [(hich )-257(we )-257(show )-257(in )-257(the )-257(next )-257(example.)-755(The )-257(other )-257(uses)]TJ /TT0 1 Tf 25.01 0 Td (sigprocmask)Tj /T1_1 1 Tf 7.107 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (sigsuspend)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 7 0 Td (nd we describe it in Section 10.19.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 6330.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 9.9988 0 0 9.9988 93.5888 599.3281 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(The )-31(SVR2 )-31(implementation )-31(of)]TJ /TT0 1 Tf 13.151 0 Td (sleep)Tj /T1_1 1 Tf 3.281 0 Td (used)Tj /TT0 1 Tf 2.398 0 Td (setjmp)Tj /T1_1 1 Tf 3.881 0 Td (and)Tj /TT0 1 Tf 1.974 0 Td (longjmp)Tj /T1_1 1 Tf 4.481 0 Td [(\(Section )-31(7.10\) )-31(to )-31(avoid)]TJ -29.164 -1.2 Td [(the )-27(race )-27(condition )-27(described )-27(in )-27(pr)18(oblem )-27(3 )-27(of )-27(the )-27(pr)18(evious )-27(example.)]TJ 0.277 Tc 30.261 0 Td (As)Tj 0 Tc 1.479 0 Td [(imple )-27(version )-27(of)]TJ -31.74 -1.2 Td [(this )-272(function, )-272(called)]TJ /TT0 1 Tf 9.763 0 Td (sleep2)Tj /T1_1 1 Tf [(,)-522(is)-522(shown )-272(in )-272(Figur)]TJ 0.5221 Tc 12.878 0 Td (e1)Tj 0 Tc 1.501 0 Td [(0.8. )-522(\(T)]TJ 0.5221 Tc 3.126 0 Td (or)Tj 0 Tc 1.445 0 Td [(educe )-272(the )-272(size )-272(of )-272(this)]TJ -28.713 -1.2 Td [(example, we don\325t handle pr)18(oblems 1 and 2 described earlier)74(.\))]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5322.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 522.6049 Tm [(#include )-1800()]TJ 0 -1.189 TD [(#include )-1800()]TJ T* [(#include )-1800()]TJ 0 -2.14 TD [(static jmp_buf)-1200(env_alrm;)]TJ T* (static void)Tj 0 -1.189 TD (sig_alrm\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td (longjmp\(env_alrm, 1\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (unsigned int)Tj 0 -1.189 TD (sleep2\(unsigned int seconds\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (if \(signal\(SIGALRM, sig_alrm\) == SIG_ERR\))Tj 2.4 -1.189 Td (return\(seconds\);)Tj -2.4 -1.189 Td (if \(setjmp\(env_alrm\) == 0\) {)Tj 2.4 -1.189 Td [(alarm\(seconds\); )-2400(/*)-600(start the timer */)]TJ T* (pause\(\); )Tj 12 0 Td [(/*)-600(next caught signal wakes us up */)]TJ -14.4 -1.189 Td (})Tj T* [(return\(alarm\(0\)\); )-3600(/*)-600(turn off timer, return unslept time */)]TJ -2.4 -1.189 Td (})Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2889.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 219.6713 272.8525 Tm (Figure 10.8)Tj /T1_1 1 Tf 5.695 0 Td (Another \(imperfect\) implementation of)Tj /TT0 1 Tf 17.524 0 Td (sleep)Tj /T1_1 1 Tf 9.9976 0 0 9.9976 129.5691 248.8583 Tm (The)Tj /TT0 1 Tf 1.991 0 Td (sleep2)Tj /T1_1 1 Tf 3.917 0 Td [(function )-67(avoids )-67(the )-67(race )-67(condition )-67(fr)18(om )-67(Figur)]TJ 0.3174 Tc 20.494 0 Td (e1)Tj 0 Tc 1.296 0 Td [(0.7. )-317(Even)-318(if )-67(the)]TJ /TT0 1 Tf 7.268 0 Td (pause)Tj /T1_1 1 Tf 3.318 0 Td (is)Tj -38.285 -1.2 Td (never executed, the)Tj /TT0 1 Tf 8.824 0 Td (sleep2)Tj /T1_1 1 Tf 3.85 0 Td [(function r)18(eturns when the)]TJ /TT0 1 Tf 11.757 0 Td (SIGALRM)Tj /T1_1 1 Tf 4.45 0 Td (occurs.)Tj -27.081 -1.2 Td (Ther)Tj 0.33 Tc 2.051 0 Td (ei)Tj 0 Tc 1.1 0 Td [(s, )-80(however)]TJ 0.3299 Tc 4.81 0 Td (,a)Tj 0 Tc 1.08 0 Td [(nother )-80(subtle )-80(pr)18(oblem )-80(with )-80(the)]TJ /TT0 1 Tf 14.386 0 Td (sleep2)Tj /T1_1 1 Tf 3.93 0 Td [(function )-80(that )-80(involves)]TJ -29.156 -1.2 Td [(its )-56(interaction )-56(with )-56(other )-56(signals.)-556(If )-56(the)]TJ /TT0 1 Tf 17.934 0 Td (SIGALRM)Tj /T1_1 1 Tf 4.506 0 Td [(interr)8(upts )-56(some )-56(other )-56(signal )-56(handler)72(,)]TJ -22.44 -1.2 Td [(then )-62(when )-62(we )-62(call)]TJ /TT0 1 Tf 8.531 0 Td (longjmp)Tj /T1_1 1 Tf [(,)-312(we)-312(a)1(bort )-62(the )-62(other )-62(signal )-62(handler)]TJ 0.5615 Tc 19.678 0 Td (.F)Tj 0 Tc 1.367 0 Td (igur)Tj 0.3115 Tc 1.827 0 Td (e1)Tj 0 Tc 1.291 0 Td [(0.9 )-61(shows )-61(this)]TJ -32.694 -1.2 Td [(scenario. )-407(The)-407(loop )-157(in )-157(the)]TJ /TT0 1 Tf 12.113 0 Td (SIGINT)Tj /T1_1 1 Tf 4.007 0 Td [(handler )-157(was )-157(written )-157(so )-157(that )-157(it )-157(executes )-157(for )-157(longer)]TJ -16.12 -1.2 Td [(than )-44(5 )-44(seconds )-44(on )-44(one )-44(of )-44(the )-44(systems )-44(used )-44(by )-44(the )-44(author)]TJ 0.5442 Tc 25.245 0 Td (.W)Tj 0.2942 Tc 1.702 0 Td (es)Tj 0 Tc 1.197 0 Td [(imply )-44(want )-44(it )-44(to )-44(execute)]TJ -28.145 -1.2 Td [(longer )-7(than )-7(the )-7(ar)17(gument )-7(to)]TJ /TT0 1 Tf 12.69 0 Td (sleep2)Tj /T1_1 1 Tf 0.5073 Tc (.T)Tj 0 Tc 4.97 0 Td [(he )-7(integer)]TJ /TT0 1 Tf 4.684 0 Td (k)Tj /T1_1 1 Tf 0.857 0 Td [(is )-7(declar)18(ed )-7(as)]TJ /TT0 1 Tf 6.203 0 Td (volatile)Tj /T1_1 1 Tf 5.057 0 Td [(to )-7(pr)18(event)]TJ -34.462 -1.2 Td [(an optimizing compiler fr)18(om discar)18(ding the loop.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47279 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(7.10)]TJ /TT0 1 Tf 28.486 0 Td (setjmp)Tj /T1_0 1 Tf 4.1 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (longjmp)Tj /T1_0 1 Tf 4.7 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (219)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(If )-372(we )-372(compile )-372(and )-372(test )-372(the )-372(pr)18(ogram )-372(in )-372(Figur)]TJ 0.6223 Tc 22.245 0 Td (e7)Tj 0 Tc 1.601 0 Td [(.13, )-372(with )-372(and )-372(without )-372(compiler)]TJ -23.847 -1.2 Td [(optimizations, the r)18(esults ar)]TJ 0.25 Tc 12.295 0 Td (ed)Tj 0 Tc 1.34 0 Td [(if)18(fer)18(ent:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.591 640.2616 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (gcc testjmp.c)Tj /T1_2 1 Tf 16.4 0 Td (compile without any optimization)Tj /TT0 1 Tf -17.6 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (in f1\(\):)Tj 0 -1.189 TD (globval = 95, autoval = 96, regival = 97, volaval = 98, statval = 99)Tj T* (after longjmp:)Tj 0 -1.189 TD (globval = 95, autoval = 96, regival = 97, volaval = 98, statval = 99)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (gcc -O testjmp.c)Tj /T1_2 1 Tf 16.4 0 Td (compile with full optimization)Tj /TT0 1 Tf -17.6 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (in f1\(\):)Tj T* (globval = 95, autoval = 96, regival = 97, volaval = 98, statval = 99)Tj T* (after longjmp:)Tj T* (globval = 95, autoval = 2, regival = 3, volaval = 98, statval = 99)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5921 504.5697 Tm [(Note )-134(that )-134(the )-134(optimizations )-134(don\325t )-134(af)17(fect )-134(the )-134(global, )-134(static, )-134(and )-134(volatile )-134(variables; )-134(their)]TJ 0 -1.2 TD [(values )-17(after )-17(the)]TJ /TT0 1 Tf 7.083 0 Td (longjmp)Tj /T1_0 1 Tf 4.467 0 Td (ar)Tj 0.2671 Tc 0.877 0 Td (et)Tj 0 Tc 1.072 0 Td [(he )-17(last )-17(values )-17(that )-17(they )-17(assumed.)-517(The)]TJ /TT0 1 Tf 17.109 0 Td (setjmp)Tj /T1_0 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (3)Tj 0.5 0.04 Td (\))Tj 0.6 -0.04 Td (manual)Tj -35.641 -1.2 Td [(page )-121(on )-121(one )-121(system )-121(states )-121(that )-121(variables )-121(stor)19(ed )-121(in )-121(memory )-121(will )-121(have )-121(values )-121(as )-121(of )-121(the)]TJ T* [(time )-199(of )-199(the)]TJ /TT0 1 Tf 5.593 0 Td (longjmp)Tj /T1_0 1 Tf 0.4494 Tc (,w)Tj 0 Tc 5.733 0 Td [(her)18(eas )-199(variables )-199(in )-199(the )-199(CPU )-199(and )-199(\337oating-point )-199(r)18(egisters )-199(ar)15(e)]TJ -0.018 Tc -11.327 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(stor)18(ed )-31(to )-31(their )-31(values )-31(when)]TJ /TT0 1 Tf 12.453 0 Td (setjmp)Tj /T1_0 1 Tf 3.881 0 Td [(was )-31(called.)-531(This )-31(is )-31(indeed )-31(what )-31(we )-31(see )-31(when )-31(we)]TJ -0.008 Tc -17.19 -1.2 Td (ru)Tj 0.3789 Tc 0.99 0 Td (nt)Tj 0 Tc 1.287 0 Td [(he )-129(pr)18(ogram )-129(in )-129(Figur)]TJ 0.3789 Tc 9.312 0 Td (e7)Tj 0 Tc 1.358 0 Td [(.13. )-379(W)55(ithout )-129(optimization, )-129(all )-129(\336ve )-129(variables )-129(ar)]TJ 0.3788 Tc 21.181 0 Td (es)Tj 0 Tc 1.282 0 Td [(tor)18(ed )-129(in)]TJ -35.409 -1.2 Td [(memory )-88(\(the)]TJ /TT0 1 Tf 6.138 0 Td (register)Tj /T1_0 1 Tf 5.138 0 Td [(hint )-88(is )-88(ignor)18(ed )-88(for)]TJ /TT0 1 Tf 8.565 0 Td (regival)Tj /T1_0 1 Tf [(\). )-338(When)-338(we )-88(enable )-88(optimization,)]TJ -19.841 -1.2 Td (both)Tj /TT0 1 Tf 2.307 0 Td (autoval)Tj /T1_0 1 Tf 4.5 0 Td (and)Tj /TT0 1 Tf 1.993 0 Td (regival)Tj /T1_0 1 Tf 4.5 0 Td [(go )-50(into )-50(r)18(egisters, )-50(even )-50(though )-50(the )-50(former )-50(wasn\325t )-50(declar)20(ed)]TJ /TT0 1 Tf -13.3 -1.2 Td (register)Tj /T1_0 1 Tf 0.251 Tc (,a)Tj 0 Tc 5.801 0 Td [(nd )-1(the)]TJ /TT0 1 Tf 3.082 0 Td (volatile)Tj /T1_0 1 Tf 5.051 0 Td [(variable )-1(stays )-1(in )-1(memory)]TJ 0.501 Tc 11.061 0 Td (.T)Tj 0 Tc 1.364 0 Td [(he )-1(important )-1(thing )-1(to )-1(r)18(ealize)]TJ -26.359 -1.2 Td [(with )-287(this )-287(example )-287(is )-287(that )-287(you )-287(must )-287(use )-287(the)]TJ /TT0 1 Tf 21.517 0 Td (volatile)Tj /T1_0 1 Tf 5.336 0 Td [(attribute )-286(if )-286(you\325r)]TJ 0.5365 Tc 7.856 0 Td (ew)Tj 0 Tc 1.849 0 Td (riting)Tj -36.559 -1.2 Td [(portable )-76(code )-76(that )-76(uses )-76(nonlocal )-76(jumps.)-576(Anything )-76(else )-76(can )-76(change )-76(fr)22(om )-76(one )-76(system )-76(to)]TJ T* (the next.)Tj 1.8 -1.2 Td (Some)Tj /TT0 1 Tf 2.758 0 Td (printf)Tj /T1_0 1 Tf 3.925 0 Td [(format )-75(strings )-75(in )-75(Figur)]TJ 0.3247 Tc 10.211 0 Td (e7)Tj 0 Tc 1.304 0 Td [(.13 )-75(ar)]TJ 0.3247 Tc 2.452 0 Td (el)Tj 0 Tc 1.095 0 Td [(onger )-75(than )-75(will )-75(\336t )-75(comfortably )-75(for)]TJ -23.544 -1.2 Td [(display )-32(in )-32(a )-32(pr)18(ogramming )-32(text.)-532(Instead )-32(of )-32(making )-32(multiple )-32(calls )-32(to)]TJ /TT0 1 Tf 30.16 0 Td (printf)Tj /T1_0 1 Tf [(,)-282(we)-282(r)18(ely )-32(on)]TJ -30.16 -1.2 Td [(ISO C\325s string concatenation featur)18(e, wher)]TJ 0.25 Tc 18.65 0 Td (et)Tj 0 Tc 1.055 0 Td (he sequence)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5907 321.0807 Tm ("string1" "string2")Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5918 304.2817 Tm (is equivalent to)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5907 288.7827 Tm ("string1string2")Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2840.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9988 0 0 9.9988 147.5823 259.9688 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ll )-53(r)18(eturn )-53(to )-53(these )-53(two )-53(functions,)]TJ /TT0 1 Tf 14.691 0 Td (setjmp)Tj /T1_0 1 Tf 3.903 0 Td (and)Tj /TT0 1 Tf 1.996 0 Td (longjmp)Tj /T1_0 1 Tf [(,)-303(in)-303(C)-1(hapter )-53(10 )-53(when )-53(we)]TJ -23.778 -1.2 Td (discuss signal handlers and their signal versions:)Tj /TT0 1 Tf 21.845 0 Td (sigsetjmp)Tj /T1_0 1 Tf 5.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (siglongjmp)Tj /T1_0 1 Tf (.)Tj /TT2 1 Tf -0.04 Tc -33.038 -2.88 Td (Po)Tj 0 Tc 1.238 0 Td [(tential Pr)20(ob)10(lem with A)30(utomatic V)60(ariab)10(les)]TJ /T1_0 1 Tf 2.362 -2.16 Td [(Having )-153(looked )-153(at )-153(the )-153(way )-153(stack )-153(frames )-153(ar)]TJ 0.4026 Tc 19.417 0 Td (eu)Tj 0 Tc 1.485 0 Td [(sually )-153(handled, )-153(it )-153(is )-153(worth )-153(looking )-153(at )-153(a)]TJ -20.902 -1.2 Td [(potential )-68(err)18(or )-68(in )-68(dealing )-68(with )-68(automatic )-68(variables.)-568(The )-68(basic )-68(r)6(ule )-68(is )-68(that )-68(an )-68(automatic)]TJ T* [(variable )-85(can )-85(never )-85(be )-85(r)16(efer)18(enced )-85(after )-85(the )-85(function )-85(that )-85(declar)18(ed )-85(it )-85(r)15(eturns. )-335(Numer)18(ous)]TJ 0 -1.2 Td [(warnings about this can be found thr)18(oughout the UNIX System manuals.)]TJ 1.8 -1.2 Td (Figur)Tj 0.3366 Tc 2.383 0 Td (e7)Tj 0 Tc 1.316 0 Td [(.14 )-87(shows )-87(a )-87(function )-87(called)]TJ /TT0 1 Tf 12.566 0 Td (open_data)Tj /T1_0 1 Tf 5.737 0 Td [(that )-87(opens )-87(a )-87(standar)]TJ 0.3367 Tc 9.196 0 Td (dI)Tj 0 Tc 1.285 0 Td [(/O )-87(str)18(eam)]TJ -34.282 -1.2 Td [(and sets the buf)18(fering for the str)18(eam.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47280 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(7.10)]TJ /TT0 1 Tf 28.486 0 Td (setjmp)Tj /T1_0 1 Tf 4.1 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (longjmp)Tj /T1_0 1 Tf 4.7 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (217)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (When)Tj /TT0 1 Tf 2.955 0 Td (main)Tj /T1_0 1 Tf 2.712 0 Td [(is )-62(executed, )-62(we )-62(call)]TJ /TT0 1 Tf 8.991 0 Td (setjmp)Tj /T1_0 1 Tf 0.3123 Tc (,w)Tj 0 Tc 4.996 0 Td [(hich )-62(r)18(ecor)18(ds )-62(whatever )-62(information )-62(it )-62(needs)]TJ -19.655 -1.2 Td [(to )-288(in )-288(the )-288(variable)]TJ /TT0 1 Tf 8.86 0 Td (jmpbuffer)Tj /T1_0 1 Tf 5.938 0 Td [(and )-288(r)18(eturns )-288(0.)]TJ -0.092 Tc 7.495 0 Td [(We )-473(t)]TJ 0 Tc 2.251 0 Td [(hen )-288(call)]TJ /TT0 1 Tf 4.246 0 Td (do_line)Tj /T1_0 1 Tf 0.5385 Tc (,w)Tj 0 Tc 5.822 0 Td [(hich )-288(calls)]TJ /TT0 1 Tf -34.612 -1.2 Td (cmd_add)Tj /T1_0 1 Tf 0.542 Tc (,a)Tj 0 Tc 5.492 0 Td [(nd )-292(assume )-292(that )-292(an )-292(err)18(or )-292(of )-292(some )-292(form )-292(is )-292(detected.)-792(Befor)]TJ 0.542 Tc 27.618 0 Td (et)Tj 0 Tc 1.347 0 Td [(he )-292(call )-292(to)]TJ /TT0 1 Tf -34.457 -1.2 Td (longjmp)Tj /T1_0 1 Tf 4.496 0 Td (in)Tj /TT0 1 Tf 1.169 0 Td (cmd_add)Tj /T1_0 1 Tf 0.2957 Tc (,t)Tj 0 Tc 5.072 0 Td [(he )-46(stack )-46(looks )-46(like )-46(that )-46(in )-46(Figur)]TJ 0.2957 Tc 14.055 0 Td (e7)Tj 0 Tc 1.275 0 Td [(.10. )-296(But)]TJ /TT0 1 Tf 3.881 0 Td (longjmp)Tj /T1_0 1 Tf 4.496 0 Td [(causes )-46(the)]TJ -34.443 -1.2 Td [(stack )-62(to )-62(be )-62(\324)37(\324unwound\325)]TJ 0.3121 Tc 10.211 0 Td (\325b)Tj 0 Tc 1.143 0 Td [(ack )-62(to )-62(the)]TJ /TT0 1 Tf 4.695 0 Td (main)Tj /T1_0 1 Tf 2.712 0 Td [(function, )-62(thr)18(owing )-62(away )-62(the )-62(stack )-62(frames )-62(for)]TJ /TT0 1 Tf -18.762 -1.2 Td (cmd_add)Tj /T1_0 1 Tf 4.509 0 Td (and)Tj /TT0 1 Tf 2.001 0 Td (do_line)Tj /T1_0 1 Tf 4.509 0 Td (\(Figur)Tj 0.3086 Tc 2.716 0 Td (e7)Tj 0 Tc 1.288 0 Td [(.12\). )-309(Calling)]TJ /TT0 1 Tf 5.92 0 Td (longjmp)Tj /T1_0 1 Tf 4.509 0 Td [(causes )-59(the)]TJ /TT0 1 Tf 4.878 0 Td (setjmp)Tj /T1_0 1 Tf 3.909 0 Td (in)Tj /TT0 1 Tf 1.182 0 Td (main)Tj /T1_0 1 Tf 2.709 0 Td (to)Tj -0.018 Tc -38.128 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn, but this time it r)18(eturns with a value of 1 \(the second ar)18(gument for)]TJ /TT0 1 Tf 31.529 0 Td (longjmp)Tj /T1_0 1 Tf (\).)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 3030 5126 720 576 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 318.6018 544.5746 Tm (stack frame)Tj 0.583 -1.25 Td (for)Tj /TT0 1 Tf 1.524 0 Td (main)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3030.25 5126.25 cm 0 0 m 0 -648 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5126.25 cm 0 0 m 0 -648 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 246.4836 563.3386 Tm (bottom of stack)Tj 16.309 0 Td [(higher addr)18(ess)]TJ 0 -14.405 TD [(lower addr)18(ess)]TJ ET q 0.99982 0 0 0.99982 0 0 cm q 1 0 0 1 274.2 447.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099982 0 0 0.099982 0 0 cm 1 j 1 J q 1 0 0 1 2742 4478 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2742.25 4766.25 cm 0 0 m 0 -216 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 217.1399 465.3283 Tm [(dir)18(ection of)]TJ -0.645 -1.25 Td [(stack gr)18(owth)]TJ /T1_1 1 Tf 1.779 -4.555 Td (Figure 7.12)Tj /T1_0 1 Tf 5.695 -0 Td (Stack frame after)Tj /TT0 1 Tf 7.724 0 Td (longjmp)Tj /T1_0 1 Tf 4.45 -0 Td (has been called)Tj /TT1 1 Tf -0.03 Tc 9.9976 0 0 9.9976 93.5777 373.3106 Tm (Au)Tj 0 Tc 1.303 0 Td (tomatic, Register)Tj 0.278 Tc 8.053 0 Td (,a)Tj 0 Tc 1.112 0 Td [(nd V)90(olatile V)60(ariab)10(les)]TJ /T1_0 1 Tf -0.092 Tc -6.868 -2.4 Td (We)Tj 0 Tc 1.387 0 Td (\325ve seen what the stack looks like after calling)Tj /TT0 1 Tf 20.383 0 Td (longjmp)Tj /T1_0 1 Tf 0.5 Tc (.T)Tj 0 Tc 5.563 0 Td [(he next question is, \324)37(\324What)]TJ -27.333 -1.2 Td (ar)Tj 0.3651 Tc 0.877 0 Td (et)Tj 0 Tc 1.17 0 Td [(he )-115(states )-115(of )-115(the )-115(automatic )-115(variables )-115(and )-115(r)17(egister )-115(variables )-115(in )-115(the)]TJ /TT0 1 Tf 29.517 0 Td (main)Tj /T1_0 1 Tf 2.765 0 Td [(function?\325)37(\325)]TJ -34.33 -1.2 Td [(When )-146(we )-146(r)18(eturn )-146(to)]TJ /TT0 1 Tf 9.173 0 Td (main)Tj /T1_0 1 Tf 2.796 0 Td [(as )-146(a )-146(r)18(esult )-146(of )-146(the)]TJ /TT0 1 Tf 8.169 0 Td (longjmp)Tj /T1_0 1 Tf [(,)-396(do)-396(these )-146(variables )-146(have )-146(values)]TJ -20.138 -1.2 Td [(corr)18(esponding )-135(to )-135(those )-135(when )-135(the)]TJ /TT0 1 Tf 15.453 0 Td (setjmp)Tj /T1_0 1 Tf 3.985 0 Td [(was )-135(pr)18(eviously )-135(called )-135(\(i.e., )-135(ar)]TJ 0.3852 Tc 13.378 0 Td (et)Tj 0 Tc 1.19 0 Td [(heir )-135(values)]TJ -0.018 Tc -34.006 -1.2 Td (ro)Tj 0 Tc 0.923 0 Td [(lled )-113(back\), )-113(or )-113(ar)]TJ 0.3629 Tc 7.215 0 Td (et)Tj 0 Tc 1.168 0 Td [(heir )-113(values )-113(left )-113(alone )-113(so )-113(that )-113(their )-113(values )-113(ar)]TJ 0.3628 Tc 19.855 0 Td (ew)Tj 0 Tc 1.676 0 Td [(hatever )-113(they )-113(wer)18(e)]TJ -30.837 -1.2 Td (when)Tj /TT0 1 Tf 3.119 0 Td (do_line)Tj /T1_0 1 Tf 4.842 0 Td [(was )-392(called )-392(\(which )-392(caused)]TJ /TT0 1 Tf 13.067 0 Td (cmd_add)Tj /T1_0 1 Tf 4.842 0 Td [(to )-392(be )-392(called, )-392(which )-392(caused)]TJ /TT0 1 Tf -25.869 -1.2 Td (longjmp)Tj /T1_0 1 Tf 5.127 0 Td [(to )-677(be )-677(called\)?)-1177(Unfortunately)]TJ 0.9271 Tc 14.514 0 Td (,t)Tj 0 Tc 1.503 0 Td [(he )-677(answer )-677(is )-677(\324)37(\324It )-677(depends.\325)]TJ 1.1771 Tc 14.158 0 Td (\325M)Tj 0 Tc 2.401 0 Td (ost)Tj -37.704 -1.2 Td [(implementations )-19(do )-19(not )-19(try )-19(to )-19(r)18(oll )-19(back )-19(these )-19(automatic )-19(variables )-19(and )-19(r)18(egister )-19(variables,)]TJ 0 -1.2 TD [(but )-5(the )-5(standar)18(ds )-5(say )-5(only )-5(that )-5(their )-5(values )-5(ar)]TJ 0.255 Tc 20.265 0 Td (ei)Tj 0 Tc 1.025 0 Td [(ndeterminate. )-255(If)-255(you )-5(have )-5(an )-5(automatic)]TJ -21.29 -1.2 Td [(variable )-322(that )-322(you )-322(don\325t )-322(want )-322(r)18(olled )-322(back, )-322(de\336ne )-322(it )-322(with )-322(the)]TJ /TT0 1 Tf 29.579 0 Td (volatile)Tj /T1_0 1 Tf 5.372 0 Td (attribute.)Tj -0.092 Tc -34.951 -1.2 Td (Va)Tj 0 Tc 1.13 0 Td (riables that ar)Tj 0.25 Tc 6.044 0 Td (ed)Tj 0 Tc 1.34 0 Td [(eclar)18(ed as global or static ar)]TJ 0.25 Tc 12.221 0 Td (el)Tj 0 Tc 1.02 0 Td (eft alone when)Tj /TT0 1 Tf 6.763 0 Td (longjmp)Tj /T1_0 1 Tf 4.45 0 Td (is executed.)Tj /TT1 1 Tf -36.568 -4.2 Td (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(The )-106(pr)18(ogram )-106(in )-106(Figur)]TJ 0.356 Tc 9.856 0 Td (e7)Tj 0 Tc 1.335 0 Td [(.13 )-106(demonstrates )-106(the )-106(dif)18(fer)18(ent )-106(behavior )-106(that )-106(can )-106(be )-106(seen )-106(with)]TJ -11.191 -1.2 Td [(automatic, global, r)18(egister)]TJ 0.25 Tc 11.409 0 Td (,s)Tj 0 Tc 0.924 0 Td (tatic, and volatile variables after calling)Tj /TT0 1 Tf 17.605 0 Td (longjmp)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47281 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (950)Tj /T1_1 1 Tf 3.5 0 Td (Bibliography)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 8.9995 0 0 8.9995 129.5922 669.9598 Tm [(IEEE. )-453(1990.)]TJ /T1_2 1 Tf 6.075 0 Td [(Information )-203(T)111(echnology )167(\321 )167(Portable)-453(Operating )-203(System )-203(Interface)]TJ 26.762 0.04 Td (\()Tj 0.333 -0.04 Td (POSIX)Tj 3 0.04 Td (\))Tj 0.786 -0.04 Td [(Part )-203(1: )-203(System)]TJ -33.756 -1.222 Td [(Application Pr)18(ogram Interface)]TJ 12.545 0.04 Td (\()Tj 0.333 -0.04 Td (API)Tj 1.666 0.04 Td (\))Tj 0.583 -0.04 Td ([C Language].)Tj /T1_1 1 Tf 6.778 0 Td (IEEE \(Dec.\).)Tj 7.9995 0 0 7.9995 179.9891 645.6613 Tm [(This )-195(was )-195(the )-195(\336rst )-195(of )-195(the )-195(POSIX )-195(standar)21(ds, )-195(and )-195(it )-195(de\336ned )-195(the )-195(C )-195(language )-195(systems )-195(interface)]TJ 0 -1.25 TD [(standar)18(d, )-35(based )-35(on )-35(the )-35(UNIX )-35(operating )-35(system.)-535(It )-35(is )-35(often )-35(called )-35(POSIX.1.)-535(It )-35(is )-35(now )-35(part )-35(of )-35(the)]TJ T* [(Single UNIX Speci\336cation published by The Open Gr)18(oup)]TJ 25.527 0.04 Td ([)Tj 0.333 -0.04 Td (2008)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td (.)Tj 8.9995 0 0 8.9995 129.5923 609.1634 Tm [(ISO. )-250(1999.)]TJ /T1_2 1 Tf 5.148 0 Td (International Standard ISO/IEC 9899)Tj 0.0833 Tc 15.462 0 Td (\321P)Tj -0.018 Tc 1.694 0 Td (ro)Tj 0 Tc 0.815 0 Td (gramming Language C.)Tj /T1_1 1 Tf 10.585 0 Td (ISO/IEC.)Tj 7.9995 0 0 7.9995 179.989 595.8642 Tm [(The )-26(of)18(\336cial )-26(standar)]TJ 0.2756 Tc 8.537 0 Td (df)Tj 0 Tc 1.22 0 Td [(or )-26(the )-26(C )-26(language )-26(and )-26(the )-26(standar)]TJ 0.2756 Tc 15.158 0 Td (dl)Tj 0 Tc 1.178 0 Td [(ibraries. )-276(Although)-275(this )-26(was )-26(r)19(eplaced)]TJ -26.092 -1.25 Td [(by )-22(a )-22(new )-22(version )-22(of )-22(the )-22(standar)16(d)-272(in)-272(201)55(1, )-22(the )-22(systems )-22(described )-22(in )-22(this )-22(book )-22(still )-22(conform )-22(to )-22(the)]TJ 0 -1.25 Td [(1999 version of the standar)18(d.)]TJ 0 -1.875 TD [(PDF )-142(versions )-142(of )-142(this )-142(standar)]TJ 0.3924 Tc 13.031 0 Td (dc)Tj 0 Tc 1.447 0 Td [(an )-142(be )-142(pur)18(chased )-142(online )-142(at )-142(either)]TJ /TT0 1 Tf 15.238 0 Td (http://www.ansi.org)Tj /T1_1 1 Tf 11.792 0 Td (or)Tj /TT0 1 Tf -41.509 -1.25 Td (http://www.iso.org)Tj /T1_1 1 Tf (.)Tj 8.9995 0 0 8.9995 129.5917 533.268 Tm [(ISO. )-1099(201)55(1.)]TJ /T1_2 1 Tf 6.792 0 Td [(International )-849(Standard )-849(ISO/IEC )-849(9899, )-849(Information )-849(T)110(echnology )167(\321 )167(Pr)17(ogramming)]TJ -3.592 -1.222 Td [(Languages )167(\321 )167(C.)]TJ /T1_1 1 Tf 7.418 0 Td (ISO/IEC.)Tj 7.9995 0 0 7.9995 179.9886 508.9695 Tm [(The )-77(latest )-77(version )-77(of )-77(the )-77(of)18(\336cial )-77(standar)]TJ 0.3273 Tc 17.843 0 Td (df)Tj 0 Tc 1.271 0 Td [(or )-77(the )-77(C )-77(language )-77(and )-77(the )-77(standar)]TJ 0.3274 Tc 15.467 0 Td (dl)Tj 0 Tc 1.229 0 Td [(ibraries, )-77(which)]TJ -0.018 Tc -35.812 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (places the 1999 version.)Tj -0.856 -1.875 Td [(PDF )-142(versions )-142(of )-142(this )-142(standar)]TJ 0.3924 Tc 13.032 0 Td (dc)Tj 0 Tc 1.447 0 Td [(an )-142(be )-142(pur)17(chased )-142(online )-142(at )-142(either)]TJ /TT0 1 Tf 15.238 0 Td (http://www.ansi.org)Tj /T1_1 1 Tf 11.792 0 Td (or)Tj /TT0 1 Tf -41.509 -1.25 Td (http://www.iso.org)Tj /T1_1 1 Tf (.)Tj 8.9995 0 0 8.9995 129.5914 456.3726 Tm [(Kernighan, )-350(B. )-350(W)92(., )-350(and )-350(Pike, )-350(R.)-851(1984.)]TJ /T1_2 1 Tf 18.954 0 Td [(The )-350(UNIX )-350(Pr)18(ogramming )-350(Envir)17(onment)]TJ /T1_1 1 Tf 0.8502 Tc (.P)Tj -0.018 Tc 18.637 0 Td (re)Tj 0 Tc 0.856 0 Td [(ntice )-350(Hall,)]TJ -35.247 -1.222 Td [(Englewood Clif)18(fs, NJ.)]TJ 0.312 Tc 7.9995 0 0 7.9995 179.9884 432.0741 Tm (Ag)Tj 0 Tc 1.646 0 Td [(eneral )-62(r)18(efer)18(ence )-62(for )-62(additional )-62(details )-62(on )-62(UNIX )-62(pr)18(ogramming. )-312(This)-312(book )-62(covers )-62(numer)18(ous)]TJ -1.646 -1.25 Td (UNIX commands and utilities, such as)Tj /TT0 1 Tf 17.228 0 Td (grep)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.9 0 Td (sed)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.3 0 Td (awk)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 2.8 0 Td (nd the Bourne shell.)Tj 8.9995 0 0 8.9995 129.5912 404.4757 Tm [(Kernighan, )-49(B. )-49(W)92(., )-49(and )-49(Ritchie, )-49(D. )-49(M.)-547(1988.)]TJ /T1_2 1 Tf 19.596 0 Td [(The )-49(C )-49(Pr)18(ogramming )-49(Language, )-49(Second )-49(Edition)]TJ /T1_1 1 Tf 0.5488 Tc 19.357 0 Td (.P)Tj -0.018 Tc 1.403 0 Td (re)Tj 0 Tc 0.856 0 Td (ntice)Tj -38.011 -1.222 Td [(Hall, Englewood Clif)18(fs, NJ.)]TJ 0.2864 Tc 7.9995 0 0 7.9995 179.9882 380.1772 Tm (Ab)Tj 0 Tc 1.617 0 Td [(ook )-36(on )-36(the )-36(ANSI )-36(standar)]TJ 0.2864 Tc 11.1 0 Td (dv)Tj 0 Tc 1.462 0 Td [(ersion )-36(of )-36(the )-36(C )-36(pr)17(ogramming )-36(language.)-536(Appendix )-36(B )-36(contains )-36(a)]TJ -14.179 -1.25 Td [(description of the libraries de\336ned by the ANSI standar)18(d.)]TJ 8.9995 0 0 8.9995 129.591 352.5788 Tm [(Kerrisk, M.)-500(2010.)]TJ /T1_2 1 Tf 8.212 0 Td [(The Linux Pr)18(ogramming Interface)]TJ /T1_1 1 Tf 0.5 Tc (.N)Tj 0.25 Tc 15.444 0 Td (oS)Tj 0 Tc 1.321 0 Td [(tartch Pr)18(ess, San Francisco, CA.)]TJ 7.9995 0 0 7.9995 179.9878 339.2796 Tm [(If )-56(you )-56(thought )-56(this )-56(book )-56(was )-56(long, )-56(her)16(e)-306(is)-306(o)-1(ne )-56(that )-56(is )-56(half )-56(again )-56(as )-56(big, )-56(but )-56(focuses )-56(only )-56(on )-56(the)]TJ 0 -1.25 Td [(Linux pr)18(ogramming interface.)]TJ 8.9995 0 0 8.9995 129.5911 311.6813 Tm [(Kleiman, )-170(S. )-170(R.)-669(1986. )-420(\324)37(\324Vnodes: )-170(An )-170(Ar)19(chitectur)]TJ 0.4197 Tc 21.483 0 Td (ef)Tj 0 Tc 1.232 0 Td [(or )-170(Multiple )-170(File )-170(System )-170(T)90(ypes )-170(in )-170(Sun )-170(Unix,\325)39(\325)]TJ /T1_2 1 Tf -19.515 -1.222 Td [(Pr)18(oceedings of the 1986 Summer USENIX Confer)18(ence)]TJ /T1_1 1 Tf 0.25 Tc (,p)Tj 0 Tc 23.049 0 Td (p. 238)Tj 2.684 0.09 Td (\320)Tj 0.583 -0.09 Td (247, Atlanta, GA.)Tj 0.25 Tc 7.9995 0 0 7.9995 179.9885 287.3828 Tm (Ad)Tj 0 Tc 1.639 0 Td (escription of the original v-node implementation.)Tj 8.9995 0 0 8.9995 129.5914 269.7838 Tm [(Knuth, )-215(D. )-215(E.)-714(1998.)]TJ /T1_2 1 Tf 9.563 0 Td [(The )-215(Art )-215(of )-215(Computer )-215(Pr)18(ogramming, )-215(V)74(olume )-215(3: )-215(Sorting )-215(and )-215(Sear)18(ching, )-215(Second)]TJ -6.363 -1.222 Td (Edition)Tj /T1_1 1 Tf 0.5 Tc (.A)Tj 0 Tc 4.528 0 Td [(ddison-W)92(esley, Boston, MA.)]TJ 7.9995 0 0 7.9995 179.9883 245.4853 Tm [(Describes sorting and sear)18(ching algorithms.)]TJ 8.9995 0 0 8.9995 129.5914 227.8863 Tm [(Korn, )-48(D. )-48(G., )-48(and )-48(V)111(o, )-48(K. )-48(P)]TJ 0.5476 Tc 11.122 0 Td (.1)Tj 0 Tc 1.298 0 Td [(991. )-298(\324)38(\324SFIO: )-48(Safe/Fast )-48(String/File )-48(IO,\325)38(\325)]TJ /T1_2 1 Tf 17.5 0 Td [(Pr)18(oceedings )-47(of )-47(the )-47(1991 )-47(Summer)]TJ -26.72 -1.222 Td [(USENIX Confer)18(ence)]TJ /T1_1 1 Tf 0.25 Tc (,p)Tj 0 Tc 9.575 0 Td (p. 235)Tj 2.684 0.09 Td (\320)Tj 0.583 -0.09 Td (255, Nashville, TN.)Tj 0.6094 Tc 7.9995 0 0 7.9995 179.9881 203.5878 Tm (Ad)Tj 0 Tc 1.998 0 Td [(escription )-359(of )-359(an )-359(alternative )-359(to )-359(the )-359(standar)]TJ 0.6094 Tc 20.309 0 Td (dI)Tj 0 Tc 1.557 0 Td [(/O )-359(library)]TJ 0.8595 Tc 4.871 0 Td (.T)Tj 0 Tc 1.723 0 Td [(he )-359(library )-359(is )-359(available )-359(at)]TJ /TT0 1 Tf -30.459 -1.25 Td (http://www.research.att.com/sw/tools/sfio)Tj /T1_1 1 Tf (.)Tj 8.9995 0 0 8.9995 129.5912 175.9894 Tm (Krieger)Tj 0.3854 Tc 3.247 0 Td (,O)Tj 0 Tc 1.421 0 Td [(., )-135(Stumm, )-135(M., )-135(and )-135(Unrau, )-135(R.)-638(1992. )-385(\324)37(\324Exploiting )-135(the )-135(Advantages )-135(of )-135(Mapped )-135(Files )-135(for)]TJ -1.468 -1.222 Td [(Str)18(eam )-92(I/O,\325)37(\325)]TJ /T1_2 1 Tf 6.273 0 Td [(Pr)18(oceedings )-92(of )-92(the )-92(1992 )-92(W)20(inter )-92(USENIX )-92(Confer)15(ence)]TJ /T1_1 1 Tf 0.3424 Tc (,p)Tj 0 Tc 23.119 0 Td (p. 27)Tj 2.184 0.09 Td (\320)Tj 0.583 -0.09 Td [(42, )-92(San )-92(Francisco,)]TJ -32.159 -1.222 Td (CA.)Tj 7.9995 0 0 7.9995 179.9882 140.6916 Tm (An alternative to the standar)Tj 0.25 Tc 12.673 0 Td (dI)Tj 0 Tc 1.198 0 Td (/O library based on mapped \336les.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47282 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (78)Tj /T1_1 1 Tf 3 0 Td [(File )-250(I/O)]TJ 39.741 0 Td [(Chapter )-250(3)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(This )-127(works )-127(\336ne )-127(for )-127(a )-127(single )-127(pr)15(ocess, )-128(but )-128(pr)18(oblems )-128(arise )-128(if )-128(multiple )-128(pr)18(ocesses )-128(use )-128(this)]TJ 0 -1.2 TD [(technique )-1(to )-1(append )-1(to )-1(the )-1(same )-1(\336le.)-501(\(This )-1(scenario )-1(can )-1(arise )-1(if )-1(multiple )-1(instances )-1(of )-1(the)]TJ T* [(same pr)18(ogram ar)]TJ 0.25 Tc 7.521 0 Td (ea)Tj 0 Tc 1.229 0 Td (ppending messages to a log \336le, for example.\))Tj -6.95 -1.2 Td [(Assume )-91(that )-91(two )-91(independent )-91(pr)18(ocesses, )-91(A )-91(and )-91(B, )-91(ar)]TJ 0.3413 Tc 24.041 0 Td (ea)Tj 0 Tc 1.32 0 Td [(ppending )-91(to )-91(the )-91(same )-91(\336le.)]TJ -27.162 -1.2 Td [(Each )-33(has )-33(opened )-33(the )-33(\336le )-33(but)]TJ /T1_2 1 Tf 12.886 0 Td (without)Tj /T1_1 1 Tf 3.449 0 Td (the)Tj /TT0 1 Tf 1.671 0 Td (O_APPEND)Tj /T1_1 1 Tf 5.084 0 Td [(\337ag. )-283(This)-284(gives )-33(us )-33(the )-33(same )-33(pictur)16(e)]TJ -23.089 -1.2 Td [(as )-93(Figur)]TJ 0.3435 Tc 3.651 0 Td (e3)Tj 0 Tc 1.322 0 Td [(.8. )-343(Each)-344(pr)18(ocess )-93(has )-93(its )-93(own )-93(\336le )-93(table )-93(entry)]TJ 0.3435 Tc 19.69 0 Td (,b)Tj 0 Tc 1.146 0 Td [(ut )-93(they )-93(shar)]TJ 0.3435 Tc 5.442 0 Td (eas)Tj 0 Tc 2.09 0 Td [(ingle )-93(v-node)]TJ -33.342 -1.2 Td [(table )-54(entry)]TJ 0.554 Tc 4.68 0 Td (.A)Tj 0 Tc 1.582 0 Td [(ssume )-54(that )-54(pr)18(ocess )-54(A )-54(does )-54(the)]TJ /TT0 1 Tf 13.891 0 Td (lseek)Tj /T1_1 1 Tf 3.304 0 Td [(and )-54(that )-54(this )-54(sets )-54(the )-54(curr)18(ent )-54(of)18(fset)]TJ -23.457 -1.2 Td [(for )-106(the )-106(\336le )-106(for )-106(pr)18(ocess )-106(A )-106(to )-106(byte )-106(of)20(fset )-106(1,500 )-106(\(the )-106(curr)18(ent )-106(end )-106(of )-106(\336le\).)-606(Then )-106(the )-106(kernel)]TJ T* [(switches )-148(pr)18(ocesses, )-148(and )-148(B )-148(continues )-148(r)8(unning. )-398(Pr)18(ocess )-148(B )-148(then )-148(does )-148(the)]TJ /TT0 1 Tf 32.619 0 Td (lseek)Tj /T1_1 1 Tf 0.398 Tc (,w)Tj 0 Tc 4.482 0 Td (hich)Tj -37.101 -1.2 Td [(sets )-61(the )-61(curr)17(ent )-62(of)18(fset )-62(for )-62(the )-62(\336le )-62(for )-62(pr)18(ocess )-62(B )-62(to )-62(byte )-62(of)18(fset )-62(1,500 )-62(also )-62(\(the )-62(curr)18(ent )-62(end)]TJ T* [(of )-33(\336le\).)-533(Then )-33(B )-33(calls)]TJ /TT0 1 Tf 9.317 0 Td (write)Tj /T1_1 1 Tf 0.2826 Tc (,w)Tj 0 Tc 4.367 0 Td [(hich )-33(incr)18(ements )-33(B\325s )-33(curr)18(ent )-33(\336le )-33(of)20(fset )-32(for )-32(the )-32(\336le )-32(to )-32(1,600.)]TJ -13.684 -1.2 Td [(Because )-41(the )-41(\336le\325s )-41(size )-41(has )-41(been )-41(extended, )-41(the )-41(kernel )-41(also )-41(updates )-41(the )-41(curr)22(ent )-41(\336le )-41(size )-41(in)]TJ T* [(the )-67(v-node )-67(to )-67(1,600.)-567(Then )-67(the )-67(kernel )-67(switches )-67(pr)18(ocesses )-67(and )-67(A )-67(r)19(esumes. )-317(When)]TJ 0.3169 Tc 35.955 0 Td (Ac)Tj 0 Tc 1.539 0 Td (alls)Tj /TT0 1 Tf -37.494 -1.2 Td (write)Tj /T1_1 1 Tf 0.3608 Tc (,t)Tj 0 Tc 3.937 0 Td [(he )-111(data )-111(is )-111(written )-111(starting )-111(at )-111(the )-111(curr)18(ent )-111(\336le )-111(of)18(fset )-111(for )-111(A, )-111(which )-111(is )-111(byte )-111(of)20(fset)]TJ -3.937 -1.2 Td [(1,500. )-250(This)-250(overwrites the data that B wr)18(ote to the \336le.)]TJ 1.8 -1.2 Td [(The )-138(pr)18(oblem )-138(her)18(e)-388(is)-388(that )-138(our )-138(logical )-138(operation )-138(of )-138(\324)38(\324position )-138(to )-138(the )-138(end )-138(of )-138(\336le )-138(and)]TJ -1.8 -1.2 Td (write\325)Tj 0.2995 Tc 2.566 0 Td (\325r)Tj 0 Tc 0.954 0 Td [(equir)18(es )-49(two )-49(separate )-49(function )-49(calls )-49(\(as )-49(we\325ve )-49(shown )-49(it\).)-549(The )-49(solution )-49(is )-49(to )-49(have)]TJ -3.521 -1.2 Td [(the )-175(positioning )-175(to )-175(the )-175(curr)18(ent )-175(end )-175(of )-175(\336le )-175(and )-175(the )-175(write )-175(be )-175(an )-175(atomic )-175(operation )-175(with)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(gar)18(d)-465(to)-465(other )-215(pr)18(ocesses. )-465(Any)-465(operation )-215(that )-215(r)18(equir)18(es )-215(mor)]TJ 0.4651 Tc 26.975 0 Td (et)Tj 0 Tc 1.27 0 Td [(han )-215(one )-215(function )-215(call)]TJ -29.101 -1.2 Td [(cannot )-133(be )-133(atomic, )-133(as )-133(ther)19(e)-383(is)-383(always )-133(the )-133(possibility )-133(that )-133(the )-133(kernel )-133(might )-133(temporarily)]TJ 0 -1.2 Td [(suspend the pr)18(ocess between the two function calls \(as we assumed pr)18(eviously\).)]TJ 1.8 -1.2 Td [(The )-278(UNIX )-278(System )-278(pr)18(ovides )-278(an )-278(atomic )-278(way )-278(to )-278(do )-278(this )-278(operation )-278(if )-278(we )-278(set )-278(the)]TJ /TT0 1 Tf -1.8 -1.2 Td (O_APPEND)Tj /T1_1 1 Tf 5.211 0 Td [(\337ag )-161(when )-161(a )-161(\336le )-161(is )-161(opened.)-661(As )-161(we )-161(described )-161(in )-161(the )-161(pr)15(evious )-161(section, )-161(this)]TJ -5.211 -1.2 Td [(causes )-37(the )-37(kernel )-37(to )-37(position )-37(the )-37(\336le )-37(to )-37(its )-37(curr)18(ent )-37(end )-37(of )-37(\336le )-37(befor)]TJ 0.2873 Tc 29.352 0 Td (ee)Tj 0 Tc 1.245 0 Td (ach)Tj /TT0 1 Tf 1.813 0 Td (write)Tj /T1_1 1 Tf 0.5373 Tc (.W)Tj 0.2873 Tc 4.695 0 Td (en)Tj 0 Tc 1.348 0 Td (o)Tj -38.454 -1.2 Td (longer have to call)Tj /TT0 1 Tf 8.373 0 Td (lseek)Tj /T1_1 1 Tf 3.25 0 Td (befor)Tj 0.25 Tc 2.288 0 Td (ee)Tj 0 Tc 1.208 0 Td (ach)Tj /TT0 1 Tf 1.776 0 Td (write)Tj /T1_1 1 Tf (.)Tj /TT1 1 Tf -20.495 -3.12 Td (pread)Tj /TT2 1 Tf 3.278 0 Td (and)Tj /TT1 1 Tf 2.056 0 Td (pwrite)Tj /TT2 1 Tf 3.878 0 Td (Functions)Tj /T1_1 1 Tf -5.612 -2.4 Td [(The )-149(Single )-149(UNIX )-149(Speci\336cation )-149(includes )-149(two )-149(functions )-149(that )-149(allow )-149(applications )-149(to )-149(seek)]TJ T* (and perform I/O atomically:)Tj /TT0 1 Tf 12.932 0 Td (pread)Tj /T1_1 1 Tf 3.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (pwrite)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5921 297.0822 Tm (#include )Tj 0 -2.14 TD (ssize_t pread\(int)Tj /T1_2 1 Tf 10.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 2.578 0 Td (oid *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 6.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT0 1 Tf 0.6 Tc (,o)Tj 0 Tc 4.43 0 Td (ff_t)Tj /T1_2 1 Tf 3 0 Td (offset)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -16.497 -2.14 Td [(Returns: number of bytes r)18(ead, 0 if end of \336le,)]TJ /TT3 1 Tf 20.456 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -34.464 -2.378 Td (ssize_t pwrite\(int)Tj /T1_2 1 Tf 11.4 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst void *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 9.697 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT0 1 Tf 0.6 Tc (,o)Tj 0 Tc 4.43 0 Td (ff_t)Tj /T1_2 1 Tf 3 0 Td (offset)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -18.049 -2.14 Td (Returns: number of bytes written if OK,)Tj /TT3 1 Tf 17.808 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2134.25 cm 0 0 m 0 927 l 3900 927 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 199.896 Tm (Calling)Tj /TT0 1 Tf 3.559 0 Td (pread)Tj /T1_1 1 Tf 3.339 0 Td [(is )-89(equivalent )-89(to )-89(calling)]TJ /TT0 1 Tf 10.576 0 Td (lseek)Tj /T1_1 1 Tf 3.34 0 Td [(followed )-90(by )-90(a )-90(call )-90(to)]TJ /TT0 1 Tf 9.636 0 Td (read)Tj /T1_1 1 Tf 0.3396 Tc (,w)Tj 0 Tc 3.824 0 Td [(ith )-90(the)]TJ -36.074 -1.2 Td (following exceptions.)Tj 0.883 Tc 1.8 -2.4 Td (\245T)Tj 0 Tc 2.102 0 Td [(her)18(e)-250(is)-250(no)-250(way to interr)8(upt the two operations that occur when we call)]TJ /TT0 1 Tf 31.277 0 Td (pread)Tj /T1_1 1 Tf (.)Tj 0.883 Tc -33.379 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he curr)18(ent \336le of)18(fset is not updated.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47283 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(6.2)]TJ 37.396 0 Td (Passwor)Tj 0.5 Tc 3.709 0 Td (dF)Tj 0 Tc 1.667 0 Td (ile)Tj /T1_1 1 Tf 3.061 0 Td (179)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 0.883 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (\245T)Tj 0 Tc 2.102 0 Td (her)Tj 0.3434 Tc 1.438 0 Td (ea)Tj -0.018 Tc 1.322 0 Td [(re )-129(s)]TJ 0 Tc 1.623 0 Td [(everal )-93(alternatives )-93(to )-93(using)]TJ /TT0 1 Tf 12.569 0 Td (/dev/null)Tj /T1_0 1 Tf 5.744 0 Td [(to )-93(pr)18(event )-93(a )-93(particular )-93(user)]TJ -23.309 -1.2 Td [(fr)18(om )-169(logging )-169(in )-169(to )-169(a )-169(system.)-669(For )-169(example,)]TJ /TT0 1 Tf 20.205 0 Td (/bin/false)Tj /T1_0 1 Tf 6.419 0 Td [(is )-169(often )-169(used )-169(as )-169(the)]TJ -26.625 -1.2 Td [(login )-275(shell.)-776(It )-275(simply )-275(exits )-275(with )-275(an )-275(unsuccessful )-275(\(nonzer)18(o\) )-275(status; )-275(the )-275(shell)]TJ 0 -1.2 TD [(evaluates )-95(the )-95(exit )-95(status )-95(as )-95(false.)-593(It )-95(is )-95(also )-95(common )-95(to )-95(see)]TJ /TT0 1 Tf 26.633 0 Td (/bin/true)Tj /T1_0 1 Tf 5.745 0 Td [(used )-95(to)]TJ -32.377 -1.2 Td [(disable )-39(an )-39(account; )-39(it )-39(simply )-39(exits )-39(with )-39(a )-39(successful )-39(\(zer)18(o\) )-39(status.)-539(Some )-39(systems)]TJ T* [(pr)18(ovide )-13(the)]TJ /TT0 1 Tf 5.384 0 Td (nologin)Tj /T1_0 1 Tf 4.463 0 Td [(command, )-13(which )-13(prints )-13(a )-13(customizable )-13(err)18(or )-13(message )-13(and)]TJ -9.847 -1.2 Td (exits with a nonzer)Tj 0.25 Tc 8.385 0 Td (oe)Tj 0 Tc 1.275 0 Td (xit status.)Tj 0.883 Tc -11.149 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.421 0 Td (nobody)Tj /T1_0 1 Tf 3.959 0 Td [(user )-109(name )-109(can )-109(be )-109(used )-109(to )-109(allow )-109(people )-109(to )-109(log )-109(in )-109(to )-109(a )-109(system, )-109(but)]TJ -5.993 -1.2 Td [(with )-171(a )-171(user )-171(ID)]TJ 7.228 0.04 Td (\()Tj 0.333 -0.04 Td (65534)Tj 2.5 0.04 Td (\))Tj 0.754 -0.04 Td [(and )-171(gr)18(oup )-171(ID)]TJ 6.749 0.04 Td (\()Tj 0.333 -0.04 Td (65534)Tj 2.5 0.04 Td (\))Tj 0.754 -0.04 Td [(that )-171(pr)18(ovide )-171(no )-171(privileges.)-670(The)]TJ -21.15 -1.2 Td [(only )-19(\336les )-19(that )-19(this )-19(user )-19(ID )-19(and )-19(gr)18(oup )-19(ID )-19(can )-19(access )-19(ar)]TJ 0.2691 Tc 23.708 0 Td (et)Tj 0 Tc 1.074 0 Td [(hose )-19(that )-19(ar)]TJ 0.2692 Tc 5.18 0 Td (er)Tj 0 Tc 1.125 0 Td [(eadable )-19(or)]TJ -31.088 -1.2 Td [(writable )-4(by )-4(the )-4(world.)-506(\(This )-4(appr)18(oach )-4(assumes )-4(that )-4(ther)]TJ 0.2543 Tc 25.006 0 Td (ea)Tj -0.018 Tc 1.233 0 Td [(re )-40(n)]TJ 0.2543 Tc 1.692 0 Td (o\336)Tj 0 Tc 1.405 0 Td [(les )-4(speci\336cally)]TJ -29.337 -1.2 Td [(owned by user ID 65534 or gr)18(oup ID 65534, which should be the case.\))]TJ 0.883 Tc -1.489 -1.6 Td (\245S)Tj 0 Tc 2.014 0 Td [(ome )-489(systems )-489(that )-489(pr)19(ovide )-489(the)]TJ /TT0 1 Tf 15.709 0 Td (finger)Tj /T1_0 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 1.072 -0.04 Td [(command )-489(support )-489(additional)]TJ -21.739 -1.2 Td [(information )-34(in )-34(the )-34(comment )-34(\336eld.)-532(Each )-33(of )-33(these )-33(\336elds )-33(is )-33(separated )-33(by )-33(a )-33(comma:)]TJ T* [(the )-49(user)-74(\325s )-49(name, )-49(of)18(\336ce )-49(location, )-49(of)16(\336ce )-49(phone )-49(number)]TJ 0.2995 Tc 23.619 0 Td (,a)Tj 0 Tc 1.049 0 Td [(nd )-49(home )-49(phone )-49(number)73(.)]TJ -24.669 -1.2 Td [(Additionally)111(,)-479(an)-479(ampersand )-229(in )-229(the )-229(comment )-229(\336eld )-229(is )-229(r)18(eplaced )-229(with )-229(the )-229(login)]TJ T* [(name \(capitalized\) by some utilities.)-500(For example, we could have)]TJ /TT0 1 Tf 7.9995 0 0 7.9995 169.6802 453.3427 Tm (sar:x:205:105:Steve Rago, SF 5-121, 555-1111, 555-2222:/home/sar:/bin/sh\ )Tj /T1_0 1 Tf 9.9994 0 0 9.9994 162.4807 436.4136 Tm (Then we could use)Tj /TT0 1 Tf 8.57 0 Td (finger)Tj /T1_0 1 Tf 3.85 0 Td (to print information about Steve Rago.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 180.4796 420.7849 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (finger -p sar)Tj /TT0 1 Tf -1.2 -1.189 Td (Login: sar)Tj 19.2 0 Td (Name: Steve Rago)Tj -19.2 -1.189 Td (Directory: /home/sar)Tj 19.2 0 Td (Shell: /bin/sh)Tj -19.2 -1.189 Td [(Office: )-600(SF)-600(5-121, )-600(555-1111)-2400(Home Phone:)-1200(555-2222)]TJ 0 -1.189 TD (On since Mon Jan 19 03:57 \(EST\) on ttyv0 \(messages off\))Tj 0 -1.189 TD (No Mail.)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 162.4807 350.359 Tm [(Even )-32(if )-32(your )-32(system )-32(doesn\325t )-32(support )-32(the)]TJ /TT0 1 Tf 18.154 0 Td (finger)Tj /T1_0 1 Tf 3.882 0 Td [(command, )-32(these )-32(\336elds )-32(can )-32(still)]TJ -22.036 -1.2 Td [(go )-335(into )-335(the )-335(comment )-335(\336eld, )-335(since )-335(that )-335(\336eld )-335(is )-335(simply )-335(a )-335(comment )-335(and )-335(not)]TJ 0 -1.2 TD [(interpr)18(eted by system utilities.)]TJ -1.489 -1.8 Td [(Some )-273(systems )-273(pr)18(ovide )-273(the)]TJ /TT0 1 Tf 12.897 0 Td (vipw)Tj /T1_0 1 Tf 2.923 0 Td [(command )-273(to )-273(allow )-273(administrators )-273(to )-273(edit )-273(the)]TJ -17.62 -1.2 Td (passwor)Tj 0.3465 Tc 3.706 0 Td (d\336)Tj 0 Tc 1.562 0 Td [(le. )-346(The)]TJ /TT0 1 Tf 3.637 0 Td (vipw)Tj /T1_0 1 Tf 2.746 0 Td [(command )-96(serializes )-96(changes )-96(to )-96(the )-96(passwor)]TJ 0.3465 Tc 19.788 0 Td (d\336)Tj 0 Tc 1.562 0 Td [(le )-96(and )-96(makes)]TJ -33.002 -1.2 Td (sur)Tj 0.331 Tc 1.404 0 Td (et)Tj 0 Tc 1.136 0 Td [(hat )-81(any )-81(additional )-81(\336les )-81(ar)]TJ 0.331 Tc 11.595 0 Td (ec)Tj 0 Tc 1.254 0 Td [(onsistent )-81(with )-81(the )-81(changes )-81(made.)-581(It )-81(is )-81(also )-81(common)]TJ -15.389 -1.2 Td [(for systems to pr)18(ovide similar functionality thr)18(ough graphical user interfaces.)]TJ 1.8 -1.2 Td [(POSIX.1 )-314(de\336nes )-314(two )-314(functions )-314(to )-314(fetch )-314(entries )-314(fr)18(om )-314(the )-314(passwor)]TJ 0.5642 Tc 31.009 0 Td (d\336)Tj 0 Tc 1.78 0 Td [(le. )-564(These)]TJ -34.589 -1.2 Td [(functions allow us to look up an entry given a user)-74(\325s login name or numerical user ID.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5915 231.6661 Tm (#include )Tj 0 -1.902 TD (struct passwd *getpwuid\(uid_t)Tj /T1_2 1 Tf 18 0 Td (uid)Tj /TT0 1 Tf (\);)Tj -18 -1.902 Td (struct passwd *getpwnam\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 21.18 -1.902 Td [(Both r)18(eturn: pointer if OK,)]TJ /TT0 1 Tf 11.933 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1758.25 cm 0 0 m 0 649 l 3900 649 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 162.3005 Tm (The)Tj /TT0 1 Tf 2.07 0 Td (getpwuid)Tj /T1_0 1 Tf 5.196 0 Td [(function )-146(is )-146(used )-146(by )-146(the)]TJ /TT0 1 Tf 11.015 0 Td (ls)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.729 -0.04 Td [(pr)18(ogram )-146(to )-146(map )-146(the )-146(numerical )-146(user )-146(ID)]TJ -21.043 -1.2 Td [(contained )-30(in )-30(an )-30(i-node )-30(into )-30(a )-30(user)-74(\325s )-30(login )-30(name.)-531(The)]TJ /TT0 1 Tf 23.765 0 Td (getpwnam)Tj /T1_0 1 Tf 5.08 0 Td [(function )-30(is )-30(used )-30(by )-30(the)]TJ /TT0 1 Tf -28.845 -1.2 Td (login)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td [(pr)18(ogram when we enter our login name.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47284 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.3)]TJ 32.499 0 Td [(Special )-250(Input )-250(Characters)]TJ /T1_1 1 Tf 13.334 0 Td (679)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td (Befor)Tj 0.3497 Tc 2.346 0 Td (ed)Tj 0 Tc 1.44 0 Td [(escribing )-100(all )-100(the )-100(special )-100(characters )-100(in )-100(detail, )-100(let\325s )-100(look )-100(at )-100(a )-100(small )-100(pr)22(ogram )-100(that)]TJ -3.786 -1.2 Td [(changes )-11(them.)-511(The )-11(pr)18(ogram )-11(in )-11(Figur)]TJ 0.2614 Tc 16.432 0 Td (e1)Tj 0 Tc 1.24 0 Td [(8.10 )-11(disables )-11(the )-11(interr)8(upt )-11(character )-11(and )-11(sets )-11(the)]TJ -17.672 -1.2 Td [(end-of-\336le character to Contr)18(ol)]TJ 13.656 0.09 Td (-)Tj 0.333 -0.09 Td (B.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6102.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 600.6269 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.259 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(struct termios)-1200(term;)]TJ 0 -1.189 TD (long )Tj 9.6 0 Td (vdisable;)Tj -9.6 -2.259 Td (if \(isatty\(STDIN_FILENO\) == 0\))Tj 2.4 -1.189 Td (err_quit\("standard input is not a terminal device"\);)Tj -2.4 -2.259 Td (if \(\(vdisable = fpathconf\(STDIN_FILENO, _PC_VDISABLE\)\) < 0\))Tj 2.4 -1.189 Td (err_quit\("fpathconf error or _POSIX_VDISABLE not in effect"\);)Tj -2.4 -2.259 Td (if \(tcgetattr\(STDIN_FILENO, &term\) < 0\) /* fetch tty state */)Tj 2.4 -1.189 Td (err_sys\("tcgetattr error"\);)Tj -2.4 -2.259 Td [(term.c_cc[VINTR] = vdisable;)-2400(/* disable INTR character */)]TJ 0 -1.189 TD [(term.c_cc[VEOF] )-600(=)-600(2; )]TJ 19.2 0 Td [(/*)-600(EOF is Control-B */)]TJ -19.2 -2.259 Td (if \(tcsetattr\(STDIN_FILENO, TCSAFLUSH, &term\) < 0\))Tj 2.4 -1.189 Td (err_sys\("tcsetattr error"\);)Tj -2.4 -2.259 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3359.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 194.345 319.8304 Tm (Figure 18.10)Tj /T1_0 1 Tf 6.195 0 Td [(Disable interr)8(upt character and change end-of-\336le character)]TJ 9.9982 0 0 9.9982 129.5769 289.8358 Tm [(Note the following points r)18(egar)18(ding this pr)18(ogram.)]TJ 0.883 Tc 1.8 -2.04 Td (\245W)Tj 0.3722 Tc 2.397 0 Td (em)Tj 0 Tc 1.734 0 Td [(odify )-122(the )-122(terminal )-122(characters )-122(only )-122(if )-122(standar)]TJ 0.3723 Tc 20.112 0 Td (di)Tj 0 Tc 1.274 0 Td [(nput )-122(is )-122(a )-122(terminal )-122(device.)]TJ -0.092 Tc -24.029 -1.2 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td (all)Tj /TT1 1 Tf 1.332 0 Td (isatty)Tj /T1_0 1 Tf 3.85 0 Td (\(Section 18.9\) to check this.)Tj 0.883 Tc -8.752 -1.6 Td (\245W)Tj 0.25 Tc 2.397 0 Td (ef)Tj 0 Tc 1.062 0 Td (etch the)Tj /TT1 1 Tf 3.718 0 Td (_POSIX_VDISABLE)Tj /T1_0 1 Tf 9.25 0 Td (value using)Tj /TT1 1 Tf 5.394 0 Td (fpathconf)Tj /T1_0 1 Tf (.)Tj 0.883 Tc -21.821 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-156(function)]TJ /TT1 1 Tf 5.58 0 Td (tcgetattr)Tj /T1_0 1 Tf 5.806 0 Td [(\(Section )-156(18.4\) )-156(fetches )-156(a)]TJ /TT1 1 Tf 10.8 0 Td (termios)Tj /T1_0 1 Tf 4.606 0 Td [(str)8(uctur)]TJ 0.4059 Tc 3.49 0 Td (ef)Tj -0.018 Tc 1.218 0 Td (ro)Tj 0.4059 Tc 0.923 0 Td (mt)Tj 0 Tc 1.615 0 Td (he)Tj -34.65 -1.2 Td [(kernel. )-535(After)-535(we\325ve )-285(modi\336ed )-285(this )-285(str)7(uctur)18(e, )-285(we )-285(call)]TJ /TT1 1 Tf 25.217 0 Td (tcsetattr)Tj /T1_0 1 Tf 5.935 0 Td [(to )-285(set )-285(the)]TJ -31.152 -1.2 Td [(attributes. )-268(The)-268(only )-18(attributes )-18(that )-18(change )-18(ar)]TJ 0.2682 Tc 19.958 0 Td (et)Tj 0 Tc 1.073 0 Td [(he )-18(ones )-18(we )-18(speci\336cally )-18(modi\336ed.)]TJ 0.883 Tc -22.52 -1.6 Td (\245D)Tj 0 Tc 2.263 0 Td [(isabling )-99(the )-99(interr)8(upt )-99(key )-99(is )-99(dif)18(fer)18(ent )-99(fr)18(om )-99(ignoring )-99(the )-99(interr)8(upt )-99(signal.)-600(The)]TJ -0.774 -1.2 Td [(pr)18(ogram )-184(in )-184(Figur)]TJ 0.4338 Tc 7.982 0 Td (e1)Tj 0 Tc 1.413 0 Td [(8.10 )-184(simply )-184(disables )-184(the )-184(special )-184(character )-184(that )-184(causes )-184(the)]TJ -9.395 -1.2 Td [(terminal )-54(driver )-54(to )-54(generate)]TJ /TT1 1 Tf 12.368 0 Td (SIGINT)Tj /T1_0 1 Tf 0.5543 Tc (.W)Tj 0.3043 Tc 5.312 0 Td (ec)Tj 0 Tc 1.227 0 Td [(an )-54(still )-54(use )-54(the)]TJ /TT1 1 Tf 6.815 0 Td (kill)Tj /T1_0 1 Tf 2.704 0 Td [(function )-54(to )-54(send)]TJ -28.427 -1.2 Td [(the signal to the pr)18(ocess.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1495.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47285 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 33.857 0 Td [(Chapter )-250(18)-750(Solutions)]TJ /T1_1 1 Tf 11.976 0 Td (943)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 178.2393 670.2598 Tm (if \(\(cmptr = calloc\(1, CMSG_LEN\(2*sizeof\(int\)\)\)\) == NULL\))Tj 3.406 -1.189 Td (err_sys\("calloc error"\);)Tj -3.406 -1.189 Td (msg.msg_control = cmptr;)Tj 0 -1.189 TD (msg.msg_controllen = CMSG_LEN\(2*sizeof\(int\)\);)Tj T* (/* continue initializing msghdr... */)Tj 0 -1.189 TD (cmptr->cmsg_len = CMSG_LEN\(2*sizeof\(int\)\);)Tj 0 -1.189 TD (cmptr->cmsg_level = SOL_SOCKET;)Tj T* (cmptr->cmsg_type = SCM_RIGHTS;)Tj T* (ip = \(int *\)CMSG_DATA\(cmptr\);)Tj T* (*ip++ = fd1;)Tj T* (*ip = fd2;)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 160.2404 546.3371 Tm [(This )-189(appr)18(oach )-190(works )-190(on )-190(all )-190(four )-190(platforms )-190(cover)18(ed )-190(in )-190(this )-190(book.)-690(The )-190(second)]TJ 0 -1.2 TD (option is to pack two separate)Tj /TT0 1 Tf 13.49 0 Td (cmsghdr)Tj /T1_0 1 Tf 4.45 0 Td [(str)8(uctur)18(es into a single message:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 178.2393 518.7087 Tm (struct msghdr msg;)Tj 0 -1.189 TD (struct cmsghdr *cmptr;)Tj 0 -2.021 TD (if \(\(cmptr = calloc\(1, 2*CMSG_LEN\(sizeof\(int\)\)\)\) == NULL\))Tj 3.406 -1.189 Td (err_sys\("calloc error"\);)Tj -3.406 -1.189 Td (msg.msg_control = cmptr;)Tj 0 -1.189 TD (msg.msg_controllen = 2*CMSG_LEN\(sizeof\(int\)\);)Tj T* (/* continue initializing msghdr... */)Tj T* (cmptr->cmsg_len = CMSG_LEN\(sizeof\(int\)\);)Tj T* (cmptr->cmsg_level = SOL_SOCKET;)Tj 0 -1.189 TD (cmptr->cmsg_type = SCM_RIGHTS;)Tj 0 -1.189 TD (*\(int *\)CMSG_DATA\(cmptr\) = fd1;)Tj T* (cmptr = CMPTR_NXTHDR\(&msg, cmptr\);)Tj T* (cmptr->cmsg_len = CMSG_LEN\(sizeof\(int\)\);)Tj T* (cmptr->cmsg_level = SOL_SOCKET;)Tj T* (cmptr->cmsg_type = SCM_RIGHTS;)Tj T* (*\(int *\)CMSG_DATA\(cmptr\) = fd2;)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 160.2404 333.7995 Tm [(Unlike the \336rst appr)18(oach, this method works only on Fr)18(eeBSD 8.0.)]TJ /TT1 1 Tf -6.665 -3.6 Td [(Chapter )-278(18)]TJ /T1_1 1 Tf 3.6 -2.8 Td (18.1)Tj /T1_0 1 Tf 3.065 0 Td [(Note )-50(that )-50(you )-50(have )-50(to )-50(terminate )-50(the)]TJ /TT0 1 Tf 16.367 0 Td (reset)Tj /T1_0 1 Tf 3.3 0 Td [(command )-50(with )-50(a )-50(line )-50(feed )-50(character)74(,)]TJ -19.667 -1.2 Td [(not a r)18(eturn, since the terminal is in noncanonical mode.)]TJ /T1_1 1 Tf -3.065 -1.84 Td (18.2)Tj /T1_0 1 Tf 3.065 0 Td [(It )-146(builds )-146(a )-146(table )-146(for )-146(each )-146(of )-146(the )-146(128 )-146(characters )-146(and )-146(sets )-146(the )-146(high-or)18(der )-146(bit )-146(\(the)]TJ 0 -1.2 TD [(parity )-75(bit\) )-75(accor)18(ding )-75(to )-75(the )-75(user)-76(\325s )-75(speci\336cation.)-575(It )-75(then )-75(uses )-75(8)]TJ 27.807 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-75(I/O, )-75(handling)]TJ -28.14 -1.2 Td (the parity generation itself.)Tj /T1_1 1 Tf -3.065 -1.84 Td (18.3)Tj /T1_0 1 Tf 3.065 0 Td [(If )-123(you )-123(happen )-123(to )-123(be )-123(on )-123(a )-123(windowing )-123(terminal, )-123(you )-123(don\325t )-123(need )-123(to )-123(log )-123(in )-123(twice.)]TJ -0.092 Tc T* (Yo)Tj 0.5043 Tc 1.121 0 Td (uc)Tj 0 Tc 1.551 0 Td [(an )-254(do )-254(this )-254(experiment )-254(between )-254(two )-254(separate )-254(windows.)-754(Under )-254(Solaris,)]TJ -2.672 -1.2 Td (execute)Tj /TT0 1 Tf 3.866 0 Td [(stty )267(-a)]TJ /T1_0 1 Tf 4.474 0 Td [(with )-290(standar)]TJ 0.5404 Tc 5.893 0 Td (di)Tj 0 Tc 1.442 0 Td [(nput )-290(r)18(edir)18(ected )-290(fr)18(om )-290(the )-290(terminal )-290(window)]TJ -0.008 Tc -15.676 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td (nning)Tj /TT0 1 Tf 2.843 0 Td (vi)Tj /T1_0 1 Tf 0.5003 Tc (.T)Tj 0 Tc 2.563 0 Td (his shows that)Tj /TT0 1 Tf 6.592 0 Td (vi)Tj /T1_0 1 Tf 1.45 0 Td (sets MIN to 1 and TIME to 1.)Tj 0.2502 Tc 13.213 0 Td (Ac)Tj 0 Tc 1.472 0 Td (all to)Tj /TT0 1 Tf 2.454 0 Td (read)Tj /T1_0 1 Tf 2.65 0 Td (will)Tj -34.228 -1.2 Td [(wait )-168(for )-168(at )-168(least )-168(one )-168(character )-168(to )-168(be )-168(typed, )-168(but )-168(after )-168(that )-168(character )-168(is )-168(enter)17(ed,)]TJ /TT0 1 Tf T* (read)Tj /T1_0 1 Tf 2.67 0 Td [(waits )-19(only )-19(one-tenth )-19(of )-19(a )-19(second )-19(for )-19(additional )-19(characters )-19(befor)]TJ 0.2695 Tc 28.076 0 Td (er)Tj 0 Tc 1.126 0 Td (eturning.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47286 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.3)]TJ 36.622 0 Td (Recor)Tj 0.5 Tc 2.514 0 Td (dL)Tj 0 Tc 1.722 0 Td (ocking)Tj /T1_1 1 Tf 4.975 0 Td (497)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 162.4803 668.9599 Tm [(wr)18(ote )-90(the )-90(new )-90(contents )-90(to )-90(a )-90(temporary )-90(\336le, )-90(r)21(emoved )-89(the )-89(original )-89(\336le, )-89(and )-89(then)]TJ -0.018 Tc 0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(named )-5(the )-5(temporary )-5(\336le )-5(to )-5(be )-5(the )-5(original )-5(\336le.)-505(The )-5(mandatory )-5(r)13(ecor)]TJ 0.2555 Tc 30.723 0 Td (dl)Tj 0 Tc 1.157 0 Td (ocking)Tj -32.736 -1.2 Td [(has no ef)18(fect on the)]TJ /TT0 1 Tf 8.775 0 Td (unlink)Tj /T1_0 1 Tf 3.85 0 Td (function, which allowed this to happen.)Tj 7.9995 0 0 7.9995 201.5877 624.9625 Tm [(Under )-90(Fr)18(eeBSD )-90(8.0 )-90(and )-90(Solaris )-90(10, )-90(we )-90(can )-90(obtain )-90(the )-90(system )-90(call )-90(trace )-90(of )-90(a )-90(pr)18(ocess )-90(with)]TJ 0 -1.25 TD (the)Tj /TT0 1 Tf 1.86 0 Td (truss)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.806 -0.04 Td [(command. )-473(Linux)-473(3.2.0 )-223(pr)18(ovides )-223(the)]TJ /TT0 1 Tf 17.197 0 Td (strace)Tj /T1_0 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.806 -0.04 Td [(command )-223(for )-223(the )-223(same)]TJ -28.935 -1.25 Td [(purpose. )-313(Mac)-312(OS )-63(X )-63(10.6.8 )-63(pr)18(ovides )-63(the)]TJ /TT0 1 Tf 17.986 0 Td (dtruss)Tj /T1_0 1 Tf [(\(1m\) )-63(command )-63(to )-63(trace )-63(system )-63(calls, )-63(but)]TJ -17.986 -1.25 Td [(its use r)18(equir)18(es super)8(user privileges.)]TJ 0.883 Tc 9.9994 0 0 9.9994 147.5909 573.9656 Tm (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.326 0 Td (vi)Tj /T1_0 1 Tf 1.465 0 Td [(editor )-15(was )-15(never )-15(able )-15(to )-15(edit )-15(the )-15(\336le.)-515(It )-15(could )-15(r)18(ead )-15(the )-15(\336le\325s )-15(contents, )-15(but)]TJ -3.404 -1.2 Td [(whenever )-128(we )-128(tried )-128(to )-128(write )-128(new )-128(data )-128(to )-128(the )-128(\336le,)]TJ /TT0 1 Tf 22.505 0 Td (EAGAIN)Tj /T1_0 1 Tf 3.978 0 Td [(was )-128(r)18(eturned. )-378(If)-378(we)]TJ -26.483 -1.2 Td [(tried )-44(to )-44(append )-44(new )-44(data )-44(to )-44(the )-44(\336le, )-44(the)]TJ /TT0 1 Tf 18.1 0 Td (write)Tj /T1_0 1 Tf 3.294 0 Td [(blocked. )-294(This)-295(behavior )-44(fr)18(om)]TJ /TT0 1 Tf 13.117 0 Td (vi)Tj /T1_0 1 Tf -34.511 -1.2 Td (is what we expect.)Tj 0.883 Tc -1.489 -1.72 Td (\245U)Tj 0 Tc 2.267 0 Td [(sing )-167(the )-167(Korn )-167(shell\325s)]TJ /TT0 1 Tf 9.926 0 Td (>)Tj /T1_0 1 Tf 1.017 0 Td (and)Tj /TT0 1 Tf 2.11 0 Td (>>)Tj /T1_0 1 Tf 1.617 0 Td [(operators )-167(to )-167(overwrite )-167(or )-167(append )-167(to )-167(the )-167(\336le)]TJ -0.018 Tc -15.449 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sulted in the err)18(or \324)37(\324cannot cr)18(eate.\325)37(\325)]TJ 0.883 Tc -2.345 -1.72 Td (\245U)Tj 0 Tc 2.267 0 Td [(sing )-102(the )-102(same )-102(two )-102(operators )-102(with )-102(the )-102(Bourne )-102(shell )-102(r)18(esulted )-102(in )-102(an )-102(err)18(or )-102(for)]TJ /TT0 1 Tf 34.083 0 Td (>)Tj /T1_0 1 Tf (,)Tj -34.861 -1.2 Td [(but )-161(the)]TJ /TT0 1 Tf 3.691 0 Td (>>)Tj /T1_0 1 Tf 1.611 0 Td [(operator )-161(just )-161(blocked )-161(until )-161(the )-161(mandatory )-161(lock )-161(was )-161(r)18(emoved, )-161(and)]TJ -5.302 -1.2 Td [(then )-84(pr)18(oceeded. )-334(\(The)-335(dif)18(fer)18(ence )-84(in )-84(the )-84(handling )-84(of )-84(the )-84(append )-84(operator )-84(occurs)]TJ -0 -1.2 Td [(because )-163(the )-163(Korn )-163(shell)]TJ /TT0 1 Tf 10.838 0 Td (open)Tj /T1_0 1 Tf 0.4132 Tc (st)Tj 0 Tc 3.563 0 Td [(he )-163(\336le )-163(with)]TJ /TT0 1 Tf 5.709 0 Td (O_CREAT)Tj /T1_0 1 Tf 4.613 0 Td (and)Tj /TT0 1 Tf 2.106 0 Td (O_APPEND)Tj /T1_0 1 Tf 0.4131 Tc (,a)Tj 0 Tc 5.963 0 Td [(nd )-163(we)]TJ -32.792 -1.2 Td [(mentioned )-283(earlier )-283(that )-283(specifying)]TJ /TT0 1 Tf 16.034 0 Td (O_CREAT)Tj /T1_0 1 Tf 4.733 0 Td [(generates )-283(an )-283(err)17(or)]TJ 0.7835 Tc 8.487 0 Td (.T)Tj 0 Tc 1.646 0 Td [(he )-283(Bourne)]TJ -30.9 -1.2 Td [(shell, )-133(however)]TJ 0.3831 Tc 6.506 0 Td (,d)Tj 0 Tc 1.244 0 Td [(oesn\325t )-133(specify)]TJ /TT0 1 Tf 6.529 0 Td (O_CREAT)Tj /T1_0 1 Tf 4.583 0 Td [(if )-133(the )-133(\336le )-133(alr)18(eady )-133(exists, )-133(so )-133(the)]TJ /TT0 1 Tf 14.449 0 Td (open)Tj /T1_0 1 Tf -33.311 -1.2 Td (succeeds but the next)Tj /TT0 1 Tf 9.68 0 Td (write)Tj /T1_0 1 Tf 3.25 0 Td (blocks.\))Tj -16.219 -2.04 Td [(Results )-36(will )-36(vary)]TJ 0.2863 Tc 7.4 0 Td (,d)Tj 0 Tc 1.147 0 Td [(epending )-36(on )-36(the )-36(version )-36(of )-36(the )-36(operating )-36(system )-36(you )-36(ar)]TJ 0.2864 Tc 24.772 0 Td (eu)Tj 0 Tc 1.368 0 Td [(sing. )-286(The)]TJ -34.687 -1.2 Td [(bottom )-277(line, )-277(as )-277(demonstrated )-277(by )-277(this )-277(exer)16(cise, )-277(is )-277(to )-277(be )-277(wary )-277(of )-277(mandatory )-277(r)17(ecor)18(d)]TJ 0 -1.2 TD [(locking. )-250(As)-250(seen with the)]TJ /TT0 1 Tf 11.602 0 Td (ed)Tj /T1_0 1 Tf 1.45 0 Td [(example, it can be cir)18(cumvented.)]TJ -11.252 -1.2 Td [(Mandatory )-64(r)18(ecor)]TJ 0.3142 Tc 7.499 0 Td (dl)Tj 0 Tc 1.216 0 Td [(ocking )-64(can )-64(also )-64(be )-64(used )-64(by )-64(a )-64(malicious )-64(user )-64(to )-64(hold )-64(a )-64(r)18(ead )-64(lock)]TJ -10.515 -1.2 Td [(on )-34(a )-34(\336le )-34(that )-34(is )-34(publicly )-34(r)20(eadable. )-284(This)-283(can )-34(pr)18(event )-34(anyone )-34(fr)18(om )-34(writing )-34(to )-34(the )-34(\336le.)-531(\(Of)]TJ T* [(course, )-106(the )-106(\336le )-106(has )-106(to )-106(have )-106(mandatory )-106(r)16(ecor)]TJ 0.3564 Tc 20.023 0 Td (dl)Tj 0 Tc 1.258 0 Td [(ocking )-106(enabled )-106(for )-106(this )-106(to )-106(occur)]TJ 0.3564 Tc 14.379 0 Td (,w)Tj 0 Tc 1.44 0 Td (hich)Tj -37.101 -1.2 Td [(may )-122(r)18(equir)]TJ 0.3724 Tc 4.998 0 Td (et)Tj 0 Tc 1.177 0 Td [(he )-122(user )-122(to )-122(be )-122(able )-122(to )-122(change )-122(the )-122(permission )-122(bits )-122(of )-122(the )-122(\336le.\))-622(Consider )-122(a)]TJ -6.176 -1.2 Td [(database )-169(\336le )-169(that )-169(is )-169(world )-169(r)16(eadable )-169(and )-169(has )-169(mandatory )-169(r)16(ecor)]TJ 0.4195 Tc 28.28 0 Td (dl)Tj 0 Tc 1.321 0 Td [(ocking )-169(enabled.)-669(If )-169(a)]TJ -29.602 -1.2 Td [(malicious )-24(user )-24(wer)18(e)-274(to)-274(hold )-24(a )-24(r)18(ead )-24(lock )-24(on )-24(the )-24(entir)]TJ 0.2738 Tc 22.858 0 Td (e\336)Tj 0 Tc 1.358 0 Td [(le, )-24(the )-24(\336le )-24(could )-24(not )-24(be )-24(written )-24(to)]TJ -24.215 -1.2 Td [(by other pr)18(ocesses.)]TJ /TT1 1 Tf -3.6 -2.64 Td (Example)Tj /T1_0 1 Tf -0.092 Tc 3.6 -2.16 Td [(We )-369(c)]TJ 0 Tc 2.266 0 Td [(an )-185(r)8(un )-185(the )-185(pr)18(ogram )-185(in )-185(Figur)]TJ 0.435 Tc 13.33 0 Td (e1)Tj 0 Tc 1.414 0 Td [(4.12 )-185(to )-185(determine )-185(whether )-185(our )-185(system )-185(supports)]TJ -17.01 -1.2 Td (mandatory locking.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2240.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 214.4733 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj T* (#include )Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td (fd;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47287 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (922)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 155.6107 668.9599 Tm (to)Tj /TT0 1 Tf 1.136 0 Td (vfork)Tj /T1_1 1 Tf 3.264 0 Td [(and )-14(does )-14(a )-14(r)18(eturn )-14(fr)19(om)]TJ /TT0 1 Tf 10.473 0 Td (f1)Tj /T1_1 1 Tf 0.5138 Tc (.T)Tj 0 Tc 2.577 0 Td [(he )-14(r)18(eturn )-14(information )-14(is )-14(often )-14(stor)18(ed )-14(in )-14(the)]TJ -17.449 -1.2 Td [(stack )-40(frame, )-40(and )-40(that )-40(information )-40(has )-40(pr)19(obably )-40(been )-40(modi\336ed )-40(by )-40(the )-40(child.)-539(After)]TJ 0 -1.2 TD [(the )-487(par)18(ent )-487(r)18(esumes, )-487(what )-487(happens )-487(with )-487(this )-487(example )-487(depends )-487(on )-487(many)]TJ T* [(implementation )-256(featur)18(es )-256(of )-256(your )-256(UNIX )-256(system )-256(\(wher)]TJ 0.5056 Tc 24.904 0 Td (ei)Tj 0.5057 Tc 1.276 0 Td (nt)Tj 0 Tc 1.414 0 Td [(he )-256(stack )-256(frame )-256(the)]TJ -0.018 Tc -27.593 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-167(information )-167(is )-167(stor)18(ed, )-167(what )-167(information )-167(in )-167(the )-167(stack )-167(frame )-167(is )-167(wiped )-167(out)]TJ -0.856 -1.2 Td [(when )-156(the )-156(automatic )-156(variables )-156(ar)]TJ 0.4058 Tc 14.781 0 Td (em)Tj 0 Tc 1.768 0 Td [(odi\336ed, )-156(and )-156(so )-156(on\).)-656(The )-156(normal )-156(r)18(esult )-156(is )-156(a)]TJ /TT0 1 Tf -16.549 -1.2 Td (core)Tj /T1_1 1 Tf 2.65 0 Td [(\336le, but your r)18(esults may dif)18(fer)74(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 3174 5366 720 360 re S Q BT /T1_1 1 Tf 7.999 0 0 7.999 333 557.7731 Tm (stack frame)Tj 0.583 -1.25 Td (for)Tj /TT0 1 Tf 1.524 0 Td (main)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 3174 5006 720 360 re S Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 332.9801 521.7461 Tm (stack frame)Tj 1.183 -1.25 Td (for)Tj /TT0 1 Tf 1.524 0 Td (f1)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3174.25 5006.25 cm 0 0 m 0 -144 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3894.25 5006.25 cm 0 0 m 0 -144 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 260.8654 565.7042 Tm (bottom of stack)Tj ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 288.6 486.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 2886 4862 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2886.25 5150.25 cm 0 0 m 0 -216 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 231.5225 503.6889 Tm [(dir)18(ection of)]TJ -0.645 -1.25 Td [(stack gr)18(owth)]TJ /T1_0 1 Tf 3.477 -4.555 Td (Figure C.9)Tj /T1_1 1 Tf 5.417 0 Td (Stack frames when)Tj /TT0 1 Tf 8.592 0 Td (vfork)Tj /T1_1 1 Tf 3.25 0 Td (is called)Tj /T1_0 1 Tf 9.997 0 0 9.997 129.5607 424.4728 Tm (8.4)Tj /T1_1 1 Tf 2.602 0 Td [(In )-32(Figur)]TJ 0.2818 Tc 3.584 0 Td (e8)Tj 0 Tc 1.261 0 Td [(.13, )-32(we )-32(have )-32(the )-32(par)18(ent )-32(write )-32(its )-32(output )-32(\336rst.)-532(When )-32(the )-32(par)18(ent )-32(is )-32(done,)]TJ -4.845 -1.2 Td [(the )-115(child )-115(writes )-115(its )-115(output, )-115(but )-115(we )-115(let )-115(the )-115(par)16(ent )-115(terminate.)-615(Whether )-115(the )-115(par)17(ent)]TJ T* [(terminates )-127(or )-127(whether )-127(the )-127(child )-127(\336nishes )-127(its )-127(output )-127(\336rst )-127(depends )-127(on )-127(the )-127(kernel\325s)]TJ T* [(scheduling )-336(of )-336(the )-336(two )-336(pr)18(ocesses )-336(\(another )-336(race )-336(condition\).)-836(When )-336(the )-336(par)21(ent)]TJ T* [(terminates, )-284(the )-284(shell )-284(starts )-284(up )-284(the )-284(next )-284(pr)18(ogram, )-284(and )-284(this )-284(next )-284(pr)17(ogram )-284(can)]TJ T* (interfer)Tj 0.25 Tc 3.262 0 Td (ew)Tj 0 Tc 1.563 0 Td [(ith the output fr)18(om the pr)18(evious child.)]TJ -0.092 Tc -4.825 -1.8 Td [(We )-252(c)]TJ 0 Tc 2.149 0 Td [(an )-68(pr)18(event )-68(this )-68(fr)18(om )-68(happening )-68(by )-68(not )-68(letting )-68(the )-68(par)19(ent )-68(terminate )-68(until )-68(the)]TJ -2.149 -1.2 Td [(child )-87(has )-87(also )-87(\336nished )-87(its )-87(output.)-587(Replace )-87(the )-87(code )-87(following )-87(the)]TJ /TT0 1 Tf 29.903 0 Td (fork)Tj /T1_1 1 Tf 2.737 0 Td [(with )-87(the)]TJ -32.641 -1.2 Td (following:)Tj /TT0 1 Tf 8.9973 0 0 8.9973 173.5675 305.8084 Tm (else if \(pid == 0\) {)Tj 2.4 -1.189 Td (WAIT_PARENT\(\); )Tj 14.4 0 Td [(/*)-600(parent goes first */)]TJ -14.4 -1.189 Td (charatatime\("output from child\\n"\);)Tj 0 -1.189 TD (TELL_PARENT\(getppid\(\)\); /* tell parent we\325re done */)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (charatatime\("output from parent\\n"\);)Tj T* [(TELL_CHILD\(pid\); )-4200(/*)-600(tell child we\325re done */)]TJ T* (WAIT_CHILD\(\); )Tj 14.4 0 Td [(/*)-600(wait for child to finish */)]TJ -16.8 -1.189 Td (})Tj /T1_1 1 Tf -0.092 Tc 9.997 0 0 9.997 155.5729 202.2395 Tm [(We )-275(w)]TJ 0 Tc 2.562 0 Td [(on\325t )-91(see )-91(this )-91(happen )-91(if )-91(we )-91(let )-91(the )-91(child )-91(go )-91(\336rst, )-91(since )-91(the )-91(shell )-91(doesn\325t )-91(start)]TJ -2.562 -1.2 Td [(the next pr)18(ogram until the par)18(ent terminates.)]TJ /T1_0 1 Tf -2.602 -1.96 Td (8.5)Tj /T1_1 1 Tf 2.602 0 Td [(The )-161(same )-161(value )-161(\()]TJ /TT0 1 Tf 7.963 0 Td (/home/sar/bin/testinterp)Tj /T1_1 1 Tf 0.4108 Tc (\)i)Tj 0.4107 Tc 15.435 0 Td (sp)Tj 0 Tc 1.436 0 Td [(rinted )-161(for)]TJ /TT0 1 Tf 4.779 0 Td (argv[2])Tj /T1_1 1 Tf 0.6607 Tc (.T)Tj 0 Tc 5.724 0 Td (he)Tj -0.018 Tc -35.337 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ason )-99(is )-99(that)]TJ /TT0 1 Tf 5.547 0 Td (execlp)Tj /T1_1 1 Tf 3.949 0 Td [(ends )-99(up )-99(calling)]TJ /TT0 1 Tf 7.301 0 Td (execve)Tj /T1_1 1 Tf 3.949 0 Td [(with )-99(the )-99(same)]TJ /T1_2 1 Tf 6.753 0 Td (pathname)Tj /T1_1 1 Tf 4.293 0 Td [(as )-99(when)]TJ -32.648 -1.2 Td (we call)Tj /TT0 1 Tf 3.339 0 Td (execl)Tj /T1_1 1 Tf 3.25 0 Td [(dir)18(ectly)]TJ 0.5 Tc 3.264 0 Td (.R)Tj 0 Tc 1.418 0 Td (ecall Figur)Tj 0.25 Tc 4.638 0 Td (e8)Tj 0 Tc 1.229 0 Td (.15.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47288 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (704)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Case C:)-500(MIN == 0, TIME > 0)]TJ 1.8 -1.56 Td [(TIME )-60(speci\336es )-60(a )-60(r)17(ead )-60(timer )-60(that )-60(is )-60(started )-60(when)]TJ /TT0 1 Tf 21.876 0 Td (read)Tj /T1_1 1 Tf 2.711 0 Td [(is )-60(called.)-561(\(Compar)]TJ 0.3105 Tc 8.401 0 Td (et)Tj 0 Tc 1.116 0 Td (his)Tj -34.103 -1.2 Td [(to )-23(case )-23(A, )-23(in )-23(which )-23(a )-23(nonzer)]TJ 0.2732 Tc 12.558 0 Td (oT)Tj 0 Tc 1.432 0 Td [(IME )-23(r)18(epr)18(esented )-23(an )-23(interbyte )-23(timer )-23(that )-23(was )-23(not)]TJ -13.99 -1.2 Td [(started )-66(until )-66(the )-66(\336rst )-66(byte )-66(was )-66(r)20(eceived.\) )-316(The)]TJ /TT0 1 Tf 20.721 0 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.716 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-66(when )-66(a )-66(single )-66(byte)]TJ -24.293 -1.2 Td [(is r)18(eceived or when the timer expir)18(es. )-250(If)-250(the timer expir)18(es,)]TJ /TT0 1 Tf 25.884 0 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.65 0 Td (re)Tj 0 Tc 0.856 0 Td (turns 0.)Tj -31.19 -1.84 Td [(Case D:)-500(MIN == 0, TIME == 0)]TJ 1.8 -1.56 Td [(If )-54(some )-54(data )-54(is )-54(available,)]TJ /TT0 1 Tf 11.395 0 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.704 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-54(up )-54(to )-54(the )-54(number )-54(of )-54(bytes )-54(r)17(equested. )-304(If)]TJ -14.955 -1.2 Td (no data is available,)Tj /TT0 1 Tf 9 0 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.65 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns 0 immediately)111(.)]TJ -16.106 -2.04 Td [(Realize )-113(in )-113(all )-113(these )-113(cases )-113(that )-113(MIN )-113(is )-113(only )-113(a )-113(minimum.)-616(If )-113(the )-113(pr)18(ogram )-113(r)18(equests )-113(mor)16(e)]TJ 0 -1.2 TD [(than )-94(MIN )-94(bytes )-94(of )-94(data, )-94(it\325s )-94(possible )-94(to )-94(r)18(eceive )-94(up )-94(to )-94(the )-94(r)18(equested )-94(amount.)-594(This )-94(also)]TJ T* (applies to cases C and D, in which MIN is 0.)Tj 1.8 -1.2 Td (Figur)Tj 0.2551 Tc 2.383 0 Td (e1)Tj 0 Tc 1.234 0 Td [(8.19 )-5(summarizes )-5(the )-5(four )-5(cases )-5(for )-5(noncanonical )-5(input.)-505(In )-5(this )-5(\336gur)16(e,)]TJ /T1_2 1 Tf 30.953 0 Td (nbytes)Tj /T1_1 1 Tf -36.37 -1.2 Td (is the thir)Tj 0.25 Tc 4.178 0 Td (da)Tj -0.018 Tc 1.361 0 Td (rg)Tj 0 Tc 0.933 0 Td (ument to)Tj /TT0 1 Tf 4.245 0 Td (read)Tj /T1_1 1 Tf 2.65 0 Td [(\(the maximum number of bytes to r)18(eturn\).)]TJ 7.9995 0 0 7.9995 265.381 476.9714 Tm [(MIN )-250(> )-250(0)]TJ 16.497 0 Td [(MIN )-250(== )-250(0)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2151.25 4730.25 cm 0 0 m 2668 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 167.3039 439.9472 Tm [(TIME )-250(> )-250(0)]TJ /T1_0 1 Tf 6.719 3.125 Td (A:)Tj /TT0 1 Tf 1.278 0 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.65 0 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj 2.58 0.04 Td ([)Tj 0.333 -0.04 Td (MIN,)Tj /T1_2 1 Tf 2.614 0 Td (nbytes)Tj /T1_1 1 Tf 2.63 0.04 Td (])Tj -9.791 -1.29 Td (befor)Tj 0.25 Tc 2.288 0 Td (et)Tj 0 Tc 1.055 0 Td [(imer expir)18(es;)]TJ /TT0 1 Tf -5.215 -1.25 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.65 0 Td (re)Tj 0 Tc 0.856 0 Td (turns [1, MIN\))Tj -1.634 -1.25 Td [(if timer expir)18(es.)]TJ -3.15 -1.75 Td [(\(TIME = interbyte timer)74(.)]TJ 0 -1.25 TD [(Caller can block inde\336nitely)111(.\))]TJ /T1_0 1 Tf 16.8 6.75 Td (C:)Tj /TT0 1 Tf 1.222 0 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.65 0 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj 2.58 0.04 Td ([)Tj 0.333 -0.04 Td (1,)Tj /T1_2 1 Tf 1 0 Td (nbytes)Tj /T1_1 1 Tf 2.63 0.04 Td (])Tj -8.121 -1.29 Td (befor)Tj 0.25 Tc 2.288 0 Td (et)Tj 0 Tc 1.055 0 Td [(imer expir)18(es;)]TJ /TT0 1 Tf -5.271 -1.25 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.65 0 Td (re)Tj 0 Tc 0.856 0 Td (turns 0)Tj -1.578 -1.25 Td [(if timer expir)18(es.)]TJ -3.15 -1.75 Td (\(TIME =)Tj /TT0 1 Tf 3.946 0 Td (read)Tj /T1_1 1 Tf 2.65 0 Td [(timer)74(.\))]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2151.25 4070.25 cm 0 0 m 2668 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 167.2939 388.93 Tm [(TIME )-250(== )-250(0)]TJ /T1_0 1 Tf 6.719 1.25 Td (B)Tj /T1_1 1 Tf (:)Tj /TT0 1 Tf 1.167 0 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.65 0 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj 2.58 0.04 Td ([)Tj 0.333 -0.04 Td (MIN,)Tj /T1_2 1 Tf 2.614 0 Td (nbytes)Tj /T1_1 1 Tf 2.63 0.04 Td (])Tj -9.68 -1.29 Td (when available.)Tj -3.15 -1.75 Td [(\(Caller can block inde\336nitely)111(.\))]TJ /T1_0 1 Tf 16.8 3 Td (D)Tj /T1_1 1 Tf (:)Tj /TT0 1 Tf 1.333 0 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.65 0 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj 2.58 0.04 Td ([)Tj 0.333 -0.04 Td (0,)Tj /T1_2 1 Tf 1 0 Td (nbytes)Tj /T1_1 1 Tf 2.63 0.04 Td (])Tj -8.232 -1.29 Td [(immediately)111(.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2151.25 3710.25 cm 0 0 m 2668 0 l 2668 1020 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3495.25 3710.25 cm 0 0 m 0 1020 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2151.25 3710.25 cm 0 0 m 0 1020 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 240.0104 350.9158 Tm (Figure 18.19)Tj /T1_1 1 Tf 6.195 0 Td (Four cases for noncanonical input)Tj -13.253 -3.25 Td [(Be )-7(awar)]TJ 0.2569 Tc 3.558 0 Td (et)Tj 0 Tc 1.062 0 Td [(hat )-7(POSIX.1 )-7(allows )-7(the )-7(subscripts)]TJ /TT0 1 Tf 15.119 0 Td (VMIN)Tj /T1_1 1 Tf 2.657 0 Td (and)Tj /TT0 1 Tf 1.95 0 Td (VTIME)Tj /T1_1 1 Tf 3.257 0 Td [(to )-7(have )-7(the )-7(same )-7(values )-7(as)]TJ /TT0 1 Tf 11.998 0 Td (VEOF)Tj /T1_1 1 Tf -39.6 -1.25 Td (and)Tj /TT0 1 Tf 2.243 0 Td (VEOL)Tj /T1_1 1 Tf 0.5499 Tc (,r)Tj 0 Tc 3.577 0 Td (espectively)Tj 0.7999 Tc 4.824 0 Td (.I)Tj 0 Tc 1.387 0 Td [(ndeed, )-300(Solaris )-300(does )-300(this )-300(for )-300(backwar)]TJ 0.55 Tc 17.454 0 Td (dc)Tj 0 Tc 1.605 0 Td [(ompatibility )-300(with )-300(older)]TJ -31.09 -1.25 Td [(versions )-512(of )-512(System )-512(V)]TJ 1.0116 Tc 10.656 0 Td (.T)Tj 0 Tc 1.875 0 Td [(his )-512(cr)18(eates )-512(a )-512(portability )-512(pr)20(oblem, )-511(however)]TJ 1.0115 Tc 21.096 0 Td (.I)Tj 0.7615 Tc 1.598 0 Td (ng)Tj 0 Tc 1.9 0 Td [(oing )-511(fr)18(om)]TJ -37.125 -1.25 Td [(noncanonical )-19(to )-19(canonical )-19(mode, )-19(we )-19(must )-19(now )-19(r)20(estor)18(e)]TJ /TT0 1 Tf 24.38 0 Td (VEOF)Tj /T1_1 1 Tf 2.669 0 Td (and)Tj /TT0 1 Tf 1.962 0 Td (VEOL)Tj /T1_1 1 Tf 2.669 0 Td [(as )-19(well.)-518(If)]TJ /TT0 1 Tf 4.795 0 Td (VMIN)Tj /T1_1 1 Tf 2.669 0 Td (equals)Tj /TT0 1 Tf -39.143 -1.25 Td (VEOF)Tj /T1_1 1 Tf 2.886 0 Td [(and )-236(we )-236(don\325t )-236(r)18(estor)]TJ 0.4861 Tc 9.336 0 Td (et)Tj 0 Tc 1.291 0 Td [(heir )-236(values, )-236(when )-236(we )-236(set)]TJ /TT0 1 Tf 12.309 0 Td (VMIN)Tj /T1_1 1 Tf 2.886 0 Td [(to )-236(its )-236(typical )-236(value )-236(of )-236(1, )-236(the)]TJ -28.708 -1.25 Td [(end-of-\336le )-100(character )-100(becomes )-100(Contr)19(ol)]TJ 16.891 0.09 Td (-)Tj 0.333 -0.09 Td [(A. )-350(The)-349(easiest )-100(way )-100(ar)19(ound )-100(this )-100(pr)18(oblem )-100(is )-100(to )-100(save )-100(the)]TJ -17.224 -1.25 Td [(entir)18(e)]TJ /TT0 1 Tf 2.823 0 Td (termios)Tj /T1_1 1 Tf 4.489 0 Td [(str)8(uctur)]TJ 0.289 Tc 3.49 0 Td (ew)Tj 0 Tc 1.602 0 Td [(hen )-39(going )-39(into )-39(noncanonical )-39(mode )-39(and )-39(r)19(estor)18(e)-289(it)-289(when )-39(going )-39(back)]TJ -12.404 -1.25 Td (to canonical mode.)Tj /TT1 1 Tf 9.9976 0 0 9.9976 93.5777 230.9446 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(The )-77(pr)18(ogram )-77(in )-77(Figur)]TJ 0.3274 Tc 9.77 0 Td (e1)Tj 0 Tc 1.306 0 Td [(8.20 )-77(de\336nes )-77(the)]TJ /TT0 1 Tf 7.299 0 Td (tty_cbreak)Tj /T1_1 1 Tf 6.327 0 Td (and)Tj /TT0 1 Tf 2.02 0 Td (tty_raw)Tj /T1_1 1 Tf 4.527 0 Td [(functions )-77(that )-77(set)]TJ -31.251 -1.2 Td [(the )-173(terminal )-173(in)]TJ /T1_2 1 Tf 7.277 0 Td [(cbr)18(eak )-173(mode)]TJ /T1_1 1 Tf 5.475 0 Td (and)Tj /T1_2 1 Tf 2.116 0 Td [(raw )-173(mode)]TJ /T1_1 1 Tf 0.6731 Tc (.\()Tj 0 Tc 5.345 0 Td [(The )-173(terms)]TJ /T1_2 1 Tf 5.027 0 Td [(cbr)18(eak)]TJ /T1_1 1 Tf 2.941 0 Td (and)Tj /T1_2 1 Tf 2.116 0 Td (raw)Tj /T1_1 1 Tf 1.978 0 Td [(come )-173(fr)18(om )-173(the)]TJ -0.111 Tc -32.276 -1.2 Td (Ve)Tj 0 Tc 1.09 0 Td [(rsion )-6(7 )-6(terminal )-6(driver)75(.\) )-256(W)]TJ 0.2557 Tc 11.911 0 Td (ec)Tj 0 Tc 1.179 0 Td [(an )-6(r)18(eset )-6(the )-6(terminal )-6(to )-6(its )-6(original )-6(state )-6(\(the )-6(state )-6(befor)20(e)]TJ -14.18 -1.2 Td (either of these functions was called\) by calling the function)Tj /TT0 1 Tf 26.217 0 Td (tty_reset)Tj /T1_1 1 Tf (.)Tj -24.417 -1.2 Td [(If )-77(we\325ve )-77(called)]TJ /TT0 1 Tf 6.902 0 Td (tty_cbreak)Tj /T1_1 1 Tf [(,)-327(we)-327(need )-77(to )-77(call)]TJ /TT0 1 Tf 13.746 0 Td (tty_reset)Tj /T1_1 1 Tf 5.727 0 Td (befor)Tj 0.3268 Tc 2.288 0 Td (ec)Tj 0 Tc 1.25 0 Td (alling)Tj /TT0 1 Tf 2.838 0 Td (tty_raw)Tj /T1_1 1 Tf (.)Tj -34.55 -1.2 Td [(The )-264(same )-264(goes )-264(for )-264(calling)]TJ /TT0 1 Tf 12.765 0 Td (tty_cbreak)Tj /T1_1 1 Tf 6.514 0 Td [(after )-264(calling)]TJ /TT0 1 Tf 6.016 0 Td (tty_raw)Tj /T1_1 1 Tf 0.7641 Tc (.T)Tj 0 Tc 5.827 0 Td [(his )-264(impr)18(oves )-264(the)]TJ -31.122 -1.2 Td [(chances that the terminal will be left in a usable state if we encounter\ any err)18(ors.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47289 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(B.2)]TJ 32.558 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dE)Tj 0 Tc 1.722 0 Td [(rr)18(or )-250(Routines)]TJ /T1_1 1 Tf 8.132 0 Td (903)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (va_end\(ap\);)Tj 0 -1.189 TD (exit\(2\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*N)Tj 0 Tc 1.8 0 Td (onfatal error unrelated to a system call.)Tj 0.6 Tc -1.8 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (rint a message and return.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (log_msg\(const char *fmt, ...\))Tj T* ({)Tj 2.4 -1.189 Td [(va_list )-2400(ap;)]TJ 0 -2.021 TD (va_start\(ap, fmt\);)Tj 0 -1.189 TD (log_doit\(0, 0, LOG_ERR, fmt, ap\);)Tj T* (va_end\(ap\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*F)Tj 0 Tc 1.8 0 Td (atal error unrelated to a system call.)Tj 0.6 Tc -1.8 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (rint a message and terminate.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (log_quit\(const char *fmt, ...\))Tj T* ({)Tj 2.4 -1.189 Td [(va_list )-2400(ap;)]TJ 0 -2.021 TD (va_start\(ap, fmt\);)Tj 0 -1.189 TD (log_doit\(0, 0, LOG_ERR, fmt, ap\);)Tj T* (va_end\(ap\);)Tj T* (exit\(2\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*F)Tj 0 Tc 1.8 0 Td (atal error related to a system call.)Tj 0.6 Tc -1.8 -1.189 Td (*E)Tj 0 Tc 1.8 0 Td (rror number passed as an explicit parameter.)Tj 0.6 Tc -1.8 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (rint a message and terminate.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (log_exit\(int error, const char *fmt, ...\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(va_list )-2400(ap;)]TJ 0 -2.021 TD (va_start\(ap, fmt\);)Tj 0 -1.189 TD (log_doit\(1, error, LOG_ERR, fmt, ap\);)Tj T* (va_end\(ap\);)Tj T* (exit\(2\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (rint a message and return to caller.)Tj 0.6 Tc -1.8 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (aller specifies "errnoflag" and "priority".)Tj -1.8 -1.189 Td (*/)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47290 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(B.2)]TJ 32.558 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dE)Tj 0 Tc 1.722 0 Td [(rr)18(or )-250(Routines)]TJ /T1_1 1 Tf 8.132 0 Td (899)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (Figur)Tj 0.25 Tc 2.383 0 Td (eB)Tj 0 Tc 1.34 0 Td [(.2 summarizes the dif)18(fer)18(ences between the various err)18(or functions.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1683.25 6502.25 cm 0 0 m 3125 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 175.8029 642.1229 Tm [(Function )-1685(Adds)-250(string fr)18(om)]TJ /TT0 1 Tf 13.752 0 Td (strerror)Tj /T1_0 1 Tf 1.5 Tc (?P)Tj 0 Tc 7.348 0 Td (arameter to)Tj /TT0 1 Tf 5.329 0 Td (strerror)Tj /T1_0 1 Tf -0.092 Tc 6.3 0 Td (Te)Tj 0 Tc 1 0 Td (rminate?)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1683.25 6382.25 cm 0 0 m 3125 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1683.25 6362.25 cm 0 0 m 3125 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 172.313 628.0869 Tm (err_dump)Tj /T1_0 1 Tf 12.136 0 Td (yes)Tj /TT0 1 Tf 12.662 0 Td [(errno )-4766(abort\(\);)]TJ -24.797 -1.25 Td (err_exit)Tj /T1_0 1 Tf 12.136 0 Td (yes )Tj 10.138 0 Td [(explicit)-250(parameter)]TJ /TT0 1 Tf 10.89 0 Td (exit)Tj 2.4 0.04 Td (\()Tj 0.6 -0.04 Td (1)Tj 0.6 0.04 Td (\))Tj 0.6 -0.04 Td (;)Tj -37.364 -1.25 Td (err_msg)Tj /T1_0 1 Tf 12.302 0 Td (no)Tj /TT0 1 Tf 20.862 0 Td (return;)Tj -33.164 -1.25 Td (err_quit)Tj /T1_0 1 Tf 12.302 0 Td (no)Tj /TT0 1 Tf 20.862 0 Td (exit)Tj 2.4 0.04 Td (\()Tj 0.6 -0.04 Td (1)Tj 0.6 0.04 Td (\))Tj 0.6 -0.04 Td (;)Tj -37.364 -1.25 Td (err_ret)Tj /T1_0 1 Tf 12.136 0 Td (yes)Tj /TT0 1 Tf 12.662 0 Td [(errno )-4766(return;)]TJ -24.797 -1.25 Td (err_sys)Tj /T1_0 1 Tf 12.136 0 Td (yes)Tj /TT0 1 Tf 12.662 0 Td [(errno )-4766(exit)]TJ 10.767 0.04 Td (\()Tj 0.6 -0.04 Td (1)Tj 0.6 0.04 Td (\))Tj 0.6 -0.04 Td (;)Tj -37.364 -1.25 Td (err_cont)Tj /T1_0 1 Tf 12.136 0 Td (yes )Tj 10.138 0 Td [(explicit)-250(parameter)]TJ /TT0 1 Tf 10.89 0 Td (return;)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1683.25 5642.25 cm 0 0 m 3125 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 172.3026 556.0665 Tm (log_msg)Tj /T1_0 1 Tf 12.302 0 Td (no)Tj /TT0 1 Tf 20.862 0 Td (return;)Tj -33.164 -1.25 Td (log_quit)Tj /T1_0 1 Tf 12.302 0 Td (no)Tj /TT0 1 Tf 20.863 0 Td (exit)Tj 2.4 0.04 Td (\()Tj 0.6 -0.04 Td (2)Tj 0.6 0.04 Td (\))Tj 0.6 -0.04 Td (;)Tj -37.364 -1.25 Td (log_ret)Tj /T1_0 1 Tf 12.136 0 Td (yes)Tj /TT0 1 Tf 12.662 0 Td [(errno )-4766(return;)]TJ -24.797 -1.25 Td (log_sys)Tj /T1_0 1 Tf 12.136 0 Td (yes)Tj /TT0 1 Tf 12.662 0 Td [(errno )-4766(exit)]TJ 10.767 0.04 Td (\()Tj 0.6 -0.04 Td (2)Tj 0.6 0.04 Td (\))Tj 0.6 -0.04 Td (;)Tj -37.364 -1.25 Td (log_exit)Tj /T1_0 1 Tf 12.136 0 Td (yes )Tj 10.138 0 Td [(explicit)-250(parameter)]TJ /TT0 1 Tf 10.89 0 Td (exit)Tj 2.4 0.04 Td (\()Tj 0.6 -0.04 Td (2)Tj 0.6 0.04 Td (\))Tj 0.6 -0.04 Td (;)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1683.25 5122.25 cm 0 0 m 3125 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4316.25 5122.25 cm 0 0 m 0 1380 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3338.25 5122.25 cm 0 0 m 0 1380 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2167.25 5122.25 cm 0 0 m 0 1380 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4808.25 5122.25 cm 0 0 m 0 1380 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1683.25 5122.25 cm 0 0 m 0 1380 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 251.9244 494.0518 Tm (Figure B.2)Tj /T1_0 1 Tf 5.362 0 Td (Our standar)Tj 0.25 Tc 5.354 0 Td (de)Tj 0 Tc 1.34 0 Td [(rr)18(or functions)]TJ 9.997 0 0 9.997 147.5557 464.0608 Tm (Figur)Tj 0.25 Tc 2.383 0 Td (eB)Tj 0 Tc 1.34 0 Td [(.3 shows the err)18(or functions that output to standar)]TJ 0.25 Tc 22.201 0 Td (de)Tj 0 Tc 1.34 0 Td [(rr)18(or)74(.)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4570.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9968 0 0 8.9968 129.5534 447.3379 Tm (#include "apue.h")Tj 0 -1.189 TD [(#include )-3600(/* for definition of errno */)]TJ T* [(#include )-3000(/* ISO C variable aruments */)]TJ 0 -2.021 TD (static void err_doit\(int, int, const char *, va_list\);)Tj T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*N)Tj 0 Tc 1.8 0 Td (onfatal error related to a system call.)Tj 0.6 Tc -1.8 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (rint a message and return.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (err_ret\(const char *fmt, ...\))Tj T* ({)Tj 2.4 -1.189 Td [(va_list )-2400(ap;)]TJ 0 -2.021 TD (va_start\(ap, fmt\);)Tj 0 -1.189 TD (err_doit\(1, errno, fmt, ap\);)Tj T* (va_end\(ap\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*F)Tj 0 Tc 1.8 0 Td (atal error related to a system call.)Tj 0.6 Tc -1.8 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (rint a message and terminate.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (err_sys\(const char *fmt, ...\))Tj T* ({)Tj 2.4 -1.189 Td [(va_list )-2400(ap;)]TJ 0 -2.021 TD (va_start\(ap, fmt\);)Tj 0 -1.189 TD (err_doit\(1, errno, fmt, ap\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47291 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (758)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 134.9919 659.4594 Tm [(94 )-2400(db->nhash)]TJ 0.6 Tc 11.4 0 Td (=N)Tj 0 Tc 1.8 0 Td (HASH_DEF;/* hash table size */)Tj -13.2 -1.189 Td [(95 )-2400(db->hashoff)]TJ 0.6 Tc 11.4 0 Td (=H)Tj 0 Tc 1.8 0 Td (ASH_OFF; /* offset in index file of hash table */)Tj -13.2 -1.189 Td [(96 )-2400(strcpy\(db->name,)-600(pathname\);)]TJ 0 -1.189 TD [(97 )-2400(strcat\(db->name,)-600(".idx"\);)]TJ 0 -2.259 TD [(98 )-2400(if)-600(\(oflag & O_CREAT\) {)]TJ 0 -1.189 TD [(99 )-4800(va_list)-600(ap;)]TJ -0.6 -2.259 Td [(100 )-4800(va_start\(ap,)-600(oflag\);)]TJ 0 -1.189 TD [(101 )-4800(mode)]TJ 0.6 Tc 10.2 0 Td (=v)Tj 0 Tc 1.8 0 Td (a_arg\(ap, int\);)Tj -12 -1.189 Td [(102 )-4800(va_end\(ap\);)]TJ 0 -2.259 TD [(103 )-4800(/*)]TJ 0 -1.189 TD (104 )Tj 7.8 0 Td [(*)-600(Open index file and data file.)]TJ -7.8 -1.189 Td (105 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(106 )-4800(db->idxfd)]TJ 0.6 Tc 13.2 0 Td (=o)Tj 0 Tc 1.8 0 Td (pen\(db->name, oflag, mode\);)Tj -15 -1.189 Td [(107 )-4800(strcpy\(db->name)]TJ 0.6 Tc 16.8 0 Td (+l)Tj 0 Tc 1.8 0 Td (en, ".dat"\);)Tj -18.6 -1.189 Td [(108 )-4800(db->datfd)]TJ 0.6 Tc 13.2 0 Td (=o)Tj 0 Tc 1.8 0 Td (pen\(db->name, oflag, mode\);)Tj -15 -1.189 Td [(109 )-2400(})-600(else {)]TJ T* [(110 )-4800(/*)]TJ 0 -1.189 TD (111 )Tj 7.8 0 Td [(*)-600(Open index file and data file.)]TJ -7.8 -1.189 Td (112 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(113 )-4800(db->idxfd)]TJ 0.6 Tc 13.2 0 Td (=o)Tj 0 Tc 1.8 0 Td (pen\(db->name, oflag\);)Tj -15 -1.189 Td [(114 )-4800(strcpy\(db->name)]TJ 0.6 Tc 16.8 0 Td (+l)Tj 0 Tc 1.8 0 Td (en, ".dat"\);)Tj -18.6 -1.189 Td [(115 )-4800(db->datfd)]TJ 0.6 Tc 13.2 0 Td (=o)Tj 0 Tc 1.8 0 Td (pen\(db->name, oflag\);)Tj -15 -1.189 Td [(116 )-2400(})]TJ 0 -2.259 TD [(117 )-2400(if)-600(\(db->idxfd < 0 || db->datfd < 0\) {)]TJ 0 -1.189 TD [(118 )-4800(_db_free\(db\);)]TJ T* [(119 )-4800(return\(NULL\);)]TJ T* [(120 )-2400(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3380.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 313.9403 Tm [([94 )167(\320 )167(97])]TJ -0.092 Tc 5 0 Td [(We )-305(c)]TJ 0 Tc 2.202 0 Td [(ontinue )-121(to )-121(initialize )-121(the)]TJ /TT0 1 Tf 10.995 0 Td (DB)Tj /T1_1 1 Tf 1.571 0 Td [(str)8(uctur)18(e. )-371(The)-371(pathname )-121(passed )-121(in )-121(by )-121(the)]TJ -14.769 -1.2 Td [(caller )-148(speci\336es )-148(the )-148(pr)18(e\336x )-148(of )-148(the )-148(database )-148(\336lenames.)]TJ -0.092 Tc 24.196 0 Td [(We )-332(a)]TJ 0 Tc 2.285 0 Td [(ppend )-148(the )-148(suf)18(\336x)]TJ /TT0 1 Tf -26.48 -1.2 Td (.idx)Tj /T1_1 1 Tf 2.65 0 Td [(to cr)18(eate the name for the database index \336le.)]TJ -7.65 -1.6 Td [([98 )167(\320 )167(108])-1168(If )-57(the )-57(caller )-57(wants )-57(to )-57(cr)20(eate )-56(the )-56(database )-56(\336les, )-56(we )-56(use )-56(the )-56(variable )-56(ar)14(gument)]TJ 5 -1.2 Td [(functions )-93(fr)18(om)]TJ /TT0 1 Tf 6.956 0 Td ()Tj /T1_1 1 Tf 6.343 0 Td [(to )-93(\336nd )-93(the )-93(optional )-93(thir)]TJ 0.3428 Tc 10.687 0 Td (da)Tj -0.018 Tc 1.454 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument. )-343(Then)-343(we)]TJ -26.372 -1.2 Td (use)Tj /TT0 1 Tf 1.982 0 Td (open)Tj /T1_1 1 Tf 2.876 0 Td [(to )-226(cr)18(eate )-226(and )-226(open )-226(the )-226(index )-226(\336le )-226(and )-226(data )-226(\336le.)-726(Note )-226(that )-226(the)]TJ -4.859 -1.2 Td [(\336lename )-68(of )-68(the )-68(data )-68(\336le )-68(starts )-68(with )-68(the )-68(same )-68(pr)18(e\336x )-68(as )-68(the )-68(index )-68(\336le )-68(but )-68(has)]TJ /TT0 1 Tf 0 -1.2 TD (.dat)Tj /T1_1 1 Tf 2.65 0 Td [(as a suf)18(\336x instead.)]TJ -7.65 -1.6 Td [([109 )167(\320 )167(1)54(16] )-472(If)-378(the )-127(caller )-127(doesn\325t )-127(specify )-127(the)]TJ /TT0 1 Tf 19.482 0 Td (O_CREAT)Tj /T1_1 1 Tf 4.577 0 Td [(\337ag, )-127(then )-127(we\325r)]TJ 0.3772 Tc 6.606 0 Td (eo)Tj 0 Tc 1.402 0 Td [(pening )-127(existing)]TJ -27.067 -1.2 Td [(database \336les.)-500(In this case, we simply call)]TJ /TT0 1 Tf 18.716 0 Td (open)Tj /T1_1 1 Tf 2.65 0 Td [(with two ar)18(guments.)]TJ -26.366 -1.6 Td [([1)55(17 )167(\320 )167(120])-723(If )-99(an )-99(err)18(or )-99(occurs )-99(while )-99(we )-99(ar)]TJ 0.3491 Tc 18.561 0 Td (eo)Tj 0 Tc 1.374 0 Td [(pening )-99(or )-99(cr)18(eating )-99(either )-99(database )-99(\336le, )-99(we)]TJ -14.935 -1.2 Td (call)Tj /TT0 1 Tf 1.962 0 Td (_db_free)Tj /T1_1 1 Tf 5.236 0 Td [(to )-186(clean )-186(up )-186(the)]TJ /TT0 1 Tf 7.501 0 Td (DB)Tj /T1_1 1 Tf 1.636 0 Td [(str)8(uctur)]TJ 0.4356 Tc 3.49 0 Td (ea)Tj 0 Tc 1.415 0 Td [(nd )-186(then )-186(r)19(eturn)]TJ /TT0 1 Tf 7.231 0 Td (NULL)Tj /T1_1 1 Tf 2.836 0 Td [(to )-186(the)]TJ -31.305 -1.2 Td (caller)Tj 0.6517 Tc 2.326 0 Td (.I)Tj 0.4017 Tc 1.239 0 Td (fo)Tj 0 Tc 1.281 0 Td (ne)Tj /TT0 1 Tf 1.463 0 Td (open)Tj /T1_1 1 Tf 2.802 0 Td [(succeeded )-152(and )-152(one )-152(failed,)]TJ /TT0 1 Tf 12.236 0 Td (_db_free)Tj /T1_1 1 Tf 5.202 0 Td [(will )-152(take )-152(car)]TJ 0.4018 Tc 5.693 0 Td (eo)Tj 0 Tc 1.427 0 Td (f)Tj -33.667 -1.2 Td [(closing the open \336le descriptor)74(,)-250(as)-250(we)-250(shall see shortly)111(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47292 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (226)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Envir)18(onment )]TJ 39.241 0 Td [(Chapter)-500(7)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 129.5922 668.9599 Tm [(Ex)10(er)20(cises)]TJ /T1_0 1 Tf 8.9995 0 0 8.9995 129.5922 647.9611 Tm (7.1)Tj /T1_1 1 Tf 2.602 0 Td [(On )-91(an )-91(Intel )-91(x86 )-91(system )-91(under )-91(Linux, )-91(if )-91(we )-91(execute )-91(the )-91(pr)18(ogram )-91(that )-91(prints )-91(\324)37(\324hello, )-91(world\325)32(\325)]TJ 0 -1.222 TD [(and )-154(do )-154(not )-154(call)]TJ /TT1 1 Tf 7.446 0 Td (exit)Tj /T1_1 1 Tf 2.804 0 Td (or)Tj /TT1 1 Tf 1.345 0 Td (return)Tj /T1_1 1 Tf 0.404 Tc (,t)Tj 0 Tc 4.58 0 Td [(he )-154(termination )-154(status )-154(of )-154(the )-154(pr)17(ogram )167(\321 )167(which)-405(we )-154(can)]TJ -16.175 -1.222 Td (examine with the shell)Tj 0.0833 Tc 10.05 0 Td (\321i)Tj 0.25 Tc 1.374 0 Td (s1)Tj 0 Tc 1.174 0 Td [(3. )-250(Why?)]TJ /T1_0 1 Tf -15.201 -1.667 Td (7.2)Tj /T1_1 1 Tf 2.602 0 Td [(When is the output fr)18(om the)]TJ /TT1 1 Tf 12.776 0 Td (printf)Tj /T1_1 1 Tf [(s)-250(in)-250(Figur)]TJ 0.25 Tc 7.78 0 Td (e7)Tj 0 Tc 1.229 0 Td (.3 actually output?)Tj /T1_0 1 Tf -24.387 -1.667 Td (7.3)Tj /T1_1 1 Tf 2.602 0 Td [(Is )-265(ther)]TJ 0.5154 Tc 3.04 0 Td (ea)Tj 0 Tc 1.494 0 Td [(ny )-265(way )-265(for )-265(a )-265(function )-265(that )-265(is )-265(called )-265(by)]TJ /TT1 1 Tf 19.321 0 Td (main)Tj /T1_1 1 Tf 2.915 0 Td [(to )-265(examine )-265(the )-265(command)]TJ 11.984 0.09 Td (-)Tj 0.333 -0.09 Td (line)Tj -39.088 -1.222 Td [(ar)18(guments )-61(without )-61(\(a\) )-61(passing)]TJ /TT1 1 Tf 14.026 0 Td (argc)Tj /T1_1 1 Tf 2.711 0 Td (and)Tj /TT1 1 Tf 2.004 0 Td (argv)Tj /T1_1 1 Tf 2.711 0 Td [(as )-61(ar)18(guments )-61(fr)18(om)]TJ /TT1 1 Tf 8.727 0 Td (main)Tj /T1_1 1 Tf 2.711 0 Td [(to )-61(the )-61(function )-61(or)]TJ -32.891 -1.222 Td (\(b\) having)Tj /TT1 1 Tf 4.795 0 Td (main)Tj /T1_1 1 Tf 2.65 0 Td (copy)Tj /TT1 1 Tf 2.397 0 Td (argc)Tj /T1_1 1 Tf 2.65 0 Td (and)Tj /TT1 1 Tf 1.943 0 Td (argv)Tj /T1_1 1 Tf 2.65 0 Td (into global variables?)Tj /T1_0 1 Tf -19.687 -1.667 Td (7.4)Tj /T1_1 1 Tf 2.602 0 Td [(Some )-67(UNIX )-67(system )-67(implementations )-67(purposely )-67(arrange )-67(that, )-67(when )-67(a )-67(pr)19(ogram )-67(is )-67(executed,)]TJ T* [(location 0 in the data segment is not accessible.)-500(Why?)]TJ /T1_0 1 Tf -2.602 -1.667 Td (7.5)Tj /T1_1 1 Tf 2.602 0 Td [(Use )-159(the)]TJ /TT1 1 Tf 3.885 0 Td (typedef)Tj /T1_1 1 Tf 4.609 0 Td [(facility )-159(of )-159(C )-159(to )-159(de\336ne )-159(a )-159(new )-159(data )-159(type)]TJ /TT1 1 Tf 18.219 0 Td (Exitfunc)Tj /T1_1 1 Tf 5.209 0 Td [(for )-159(an )-159(exit )-159(handler)75(.)]TJ -31.921 -1.222 Td [(Redo the pr)18(ototype for)]TJ /TT1 1 Tf 10.323 0 Td (atexit)Tj /T1_1 1 Tf 3.85 0 Td (using this data type.)Tj /T1_0 1 Tf -16.775 -1.667 Td (7.6)Tj /T1_1 1 Tf 2.602 0 Td [(If )-1(we )-1(allocate )-1(an )-1(array )-1(of)]TJ /TT1 1 Tf 11.176 0 Td (long)Tj /T1_1 1 Tf 0.2514 Tc (su)Tj 0 Tc 3.678 0 Td (sing)Tj /TT1 1 Tf 2.104 0 Td (calloc)Tj /T1_1 1 Tf [(,)-251(is)-251(t)-1(he )-1(array )-1(initialized )-1(to )-1(0?)-503(If )-1(we )-1(allocate )-1(an)]TJ -16.959 -1.222 Td (array of pointers using)Tj /TT1 1 Tf 10.325 0 Td (calloc)Tj /T1_1 1 Tf [(,)-250(is)-250(the array initialized to null pointers?)]TJ /T1_0 1 Tf -12.927 -1.667 Td (7.7)Tj /T1_1 1 Tf 2.602 0 Td [(In )-35(the )-35(output )-35(fr)18(om )-35(the)]TJ /TT1 1 Tf 10.262 0 Td (size)Tj /T1_1 1 Tf 2.685 0 Td [(command )-35(at )-35(the )-35(end )-35(of )-35(Section )-35(7.6, )-35(why )-35(ar)18(en\325t )-35(any )-35(sizes )-35(given)]TJ -12.947 -1.222 Td (for the heap and the stack?)Tj /T1_0 1 Tf -2.602 -1.667 Td (7.8)Tj /T1_1 1 Tf 2.602 0 Td [(In )-79(Section )-79(7.7, )-79(the )-79(two )-79(\336le )-79(sizes)]TJ 14.499 0.04 Td (\()Tj 0.333 -0.04 Td [(879443 )-79(and )-79(8378)]TJ 7.351 0.04 Td (\))Tj 0.662 -0.04 Td [(don\325t )-79(equal )-79(the )-79(sums )-79(of )-79(their )-79(r)19(espective)]TJ -22.845 -1.222 Td [(text and data sizes.)-500(Why?)]TJ /T1_0 1 Tf -2.602 -1.667 Td (7.9)Tj /T1_1 1 Tf 2.602 0 Td [(In )-89(Section )-89(7.7, )-89(why )-89(does )-89(the )-89(size )-89(of )-89(the )-89(executable )-89(\336le )-89(dif)23(fer )-89(so )-89(dramatically )-89(when )-89(we )-89(use)]TJ 0 -1.222 TD [(shar)18(ed libraries for such a trivial pr)18(ogram?)]TJ /T1_0 1 Tf -2.602 -1.667 Td (7.10)Tj /T1_1 1 Tf 2.602 0 Td [(At )-18(the )-18(end )-18(of )-18(Section )-18(7.10, )-18(we )-18(showed )-18(how )-18(a )-18(function )-18(can\325t )-18(r)19(eturn )-18(a )-18(pointer )-18(to )-18(an )-18(automatic)]TJ 0 -1.222 TD [(variable. )-250(Is)-250(the following code corr)18(ect?)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1530.25 3854.25 cm 0 0 m 45 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1551.25 3854.25 cm 0 0 m 45 0 l 90 0 l 135 0 l 180 0 l 225 0 l 270 0 l 315 0 l 360 0 l 405 0 l 450 0 l 495 0 l 540 0 l 585 0 l 630 0 l 675 0 l 720 0 l 765 0 l 810 0 l 855 0 l 900 0 l 945 0 l 990 0 l 1035 0 l 1080 0 l 1125 0 l 1170 0 l 1215 0 l 1260 0 l 1305 0 l 1350 0 l 1395 0 l 1440 0 l 1485 0 l 1530 0 l 1575 0 l 1620 0 l 1665 0 l 1710 0 l 1755 0 l 1800 0 l 1845 0 l 1890 0 l 1935 0 l 1980 0 l 2025 0 l 2070 0 l 2115 0 l 2160 0 l 2205 0 l 2250 0 l 2295 0 l 2340 0 l 2385 0 l 2430 0 l 2475 0 l 2520 0 l 2565 0 l 2610 0 l 2655 0 l 2700 0 l 2745 0 l 2790 0 l 2835 0 l 2880 0 l 2925 0 l 2970 0 l 3015 0 l 3060 0 l 3105 0 l 3150 0 l 3195 0 l 3240 0 l 3285 0 l 3330 0 l 3375 0 l 3420 0 l 3465 0 l 3510 0 l 3555 0 l 3600 0 l 3645 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 152.9996 375.7539 Tm (int)Tj 0 -1.189 TD (f1\(int val\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(num)]TJ 0.6 Tc 7.2 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -9 -1.189 Td [(int )-2400(*ptr)]TJ 0.6 Tc 7.8 0 Td (=&)Tj 0 Tc 1.8 0 Td (num;)Tj -9.6 -2.021 Td (if \(val == 0\) {)Tj 2.4 -1.189 Td [(int )-2400(val;)]TJ 0 -2.021 TD (val = 5;)Tj 0 -1.189 TD (ptr = &val;)Tj -2.4 -1.189 Td (})Tj T* (return\(*ptr + 1\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1530.25 2387.25 cm 0 0 m 45 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1551.25 2387.25 cm 0 0 m 45 0 l 90 0 l 135 0 l 180 0 l 225 0 l 270 0 l 315 0 l 360 0 l 405 0 l 450 0 l 495 0 l 540 0 l 585 0 l 630 0 l 675 0 l 720 0 l 765 0 l 810 0 l 855 0 l 900 0 l 945 0 l 990 0 l 1035 0 l 1080 0 l 1125 0 l 1170 0 l 1215 0 l 1260 0 l 1305 0 l 1350 0 l 1395 0 l 1440 0 l 1485 0 l 1530 0 l 1575 0 l 1620 0 l 1665 0 l 1710 0 l 1755 0 l 1800 0 l 1845 0 l 1890 0 l 1935 0 l 1980 0 l 2025 0 l 2070 0 l 2115 0 l 2160 0 l 2205 0 l 2250 0 l 2295 0 l 2340 0 l 2385 0 l 2430 0 l 2475 0 l 2520 0 l 2565 0 l 2610 0 l 2655 0 l 2700 0 l 2745 0 l 2790 0 l 2835 0 l 2880 0 l 2925 0 l 2970 0 l 3015 0 l 3060 0 l 3105 0 l 3150 0 l 3195 0 l 3240 0 l 3285 0 l 3330 0 l 3375 0 l 3420 0 l 3465 0 l 3510 0 l 3555 0 l 3600 0 l 3645 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47293 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(7.10)]TJ /TT0 1 Tf 28.486 0 Td (setjmp)Tj /T1_0 1 Tf 4.1 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (longjmp)Tj /T1_0 1 Tf 4.7 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (215)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 3102 5882 720 576 re S Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 325.8204 620.2028 Tm (stack frame)Tj 0.583 -1.25 Td (for)Tj /TT0 1 Tf 1.524 0 Td (main)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 3102 5594 720 288 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 325.8009 576.9708 Tm (stack frame)Tj -0.317 -1.25 Td (for)Tj /TT0 1 Tf 1.524 0 Td (do_line)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 3102 5234 720 360 re S Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 325.7814 544.542 Tm (stack frame)Tj -0.317 -1.25 Td (for)Tj /TT0 1 Tf 1.524 0 Td (cmd_add)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3102.25 5234.25 cm 0 0 m 0 -144 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 5234.25 cm 0 0 m 0 -144 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 253.6671 638.8866 Tm (bottom of stack)Tj 16.309 0 Td [(higher addr)18(ess)]TJ 0 -16.205 TD [(lower addr)18(ess)]TJ ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 281.4 509 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 2814 5090 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2814.25 5378.25 cm 0 0 m 0 -216 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 224.3247 526.482 Tm [(dir)18(ection of)]TJ -0.645 -1.25 Td [(stack gr)18(owth)]TJ /T1_1 1 Tf 0.667 -4.555 Td (Figure 7.10)Tj /T1_0 1 Tf 5.695 0 Td (Stack frames after)Tj /TT0 1 Tf 8.148 0 Td (cmd_add)Tj /T1_0 1 Tf 4.45 0 Td (has been called)Tj 9.997 0 0 9.997 129.5611 456.063 Tm [(Storage )-180(for )-180(the )-180(automatic )-180(variables )-180(is )-180(within )-180(the )-180(stack )-180(frame )-180(for )-180(each )-180(function.)-677(The)]TJ 0 -1.2 TD (array)Tj /TT0 1 Tf 2.765 0 Td (line)Tj /T1_0 1 Tf 2.819 0 Td [(is )-169(in )-169(the )-169(stack )-169(frame )-169(for)]TJ /TT0 1 Tf 11.605 0 Td (main)Tj /T1_0 1 Tf 0.4195 Tc (,t)Tj 0 Tc 3.396 0 Td [(he )-169(integer)]TJ /TT0 1 Tf 5.008 0 Td (cmd)Tj /T1_0 1 Tf 2.22 0 Td [(is )-169(in )-169(the )-169(stack )-169(frame )-169(for)]TJ /TT0 1 Tf -27.813 -1.2 Td (do_line)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 5.2 0 Td (nd the integer)Tj /TT0 1 Tf 6.438 0 Td (token)Tj /T1_0 1 Tf 3.25 0 Td (is in the stack frame for)Tj /TT0 1 Tf 10.589 0 Td (cmd_add)Tj /T1_0 1 Tf (.)Tj -23.677 -1.2 Td [(As )-157(we\325ve )-157(said, )-157(this )-157(type )-157(of )-157(arrangement )-157(of )-157(the )-157(stack )-157(is )-157(typical, )-157(but )-157(not )-157(r)24(equir)18(ed.)]TJ -1.8 -1.2 Td [(Stacks )-137(do )-137(not )-137(have )-137(to )-137(gr)18(ow )-137(towar)]TJ 0.3871 Tc 15.602 0 Td (dl)Tj 0 Tc 1.289 0 Td [(ower )-137(memory )-137(addr)18(esses. )-387(On)-387(systems )-137(that )-137(don\325t)]TJ -16.891 -1.2 Td [(have )-103(built-in )-103(har)17(dwar)]TJ 0.3535 Tc 9.884 0 Td (es)Tj 0 Tc 1.256 0 Td [(upport )-103(for )-103(stacks, )-103(a )-103(C )-103(implementation )-103(might )-103(use )-103(a )-103(linked )-103(list)]TJ -11.141 -1.2 Td (for its stack frames.)Tj 1.8 -1.2 Td [(The )-66(coding )-66(pr)18(oblem )-66(that\325s )-66(often )-66(encounter)18(ed )-66(with )-66(pr)20(ograms )-66(like )-66(the )-66(one )-66(shown )-66(in)]TJ -1.8 -1.2 Td (Figur)Tj 0.4696 Tc 2.383 0 Td (e7)Tj 0 Tc 1.449 0 Td [(.9 )-220(is )-220(how )-220(to )-220(handle )-220(nonfatal )-220(err)20(ors. )-469(For)-470(example, )-219(if )-219(the)]TJ /TT0 1 Tf 26.792 0 Td (cmd_add)Tj /T1_0 1 Tf 4.669 0 Td (function)Tj -35.293 -1.2 Td [(encounters )-31(an )-31(err)18(or )167(\321 )167(say)110(,)-281(an)-281(invalid )-31(number)]TJ 0.0833 Tc 20.116 0 Td (\321i)Tj 0.2811 Tc 1.374 0 Td (tm)Tj 0 Tc 1.49 0 Td [(ight )-31(want )-31(to )-31(print )-31(an )-31(err)18(or )-31(message,)]TJ -22.98 -1.2 Td (ignor)Tj 0.3095 Tc 2.352 0 Td (et)Tj 0 Tc 1.114 0 Td [(he )-59(r)18(est )-59(of )-59(the )-59(input )-59(line, )-59(and )-59(r)18(eturn )-59(to )-59(the)]TJ /TT0 1 Tf 19.038 0 Td (main)Tj /T1_0 1 Tf 2.709 0 Td [(function )-59(to )-59(r)18(ead )-59(the )-59(next )-59(input)]TJ -25.214 -1.2 Td [(line. )-259(But)-259(when )-9(we\325r)]TJ 0.2592 Tc 8.906 0 Td (ed)Tj 0 Tc 1.349 0 Td [(eeply )-9(nested )-9(numer)18(ous )-9(levels )-9(down )-9(fr)17(om )-9(the)]TJ /TT0 1 Tf 20.247 0 Td (main)Tj /T1_0 1 Tf 2.659 0 Td [(function, )-9(this)]TJ -33.161 -1.2 Td [(is )-64(dif)18(\336cult )-64(to )-64(do )-64(in )-64(C.)-564(\(In )-64(this )-64(example, )-64(the)]TJ /TT0 1 Tf 19.712 0 Td (cmd_add)Tj /T1_0 1 Tf 4.514 0 Td [(function )-64(is )-64(only )-64(two )-64(levels )-64(down)]TJ -24.226 -1.2 Td [(fr)18(om)]TJ /TT0 1 Tf 2.53 0 Td (main)Tj /T1_0 1 Tf 0.3913 Tc (,b)Tj 0 Tc 3.594 0 Td [(ut )-141(it\325s )-141(not )-141(uncommon )-141(to )-141(be )-141(\336ve )-141(or )-141(mor)]TJ 0.3914 Tc 18.202 0 Td (el)Tj 0 Tc 1.161 0 Td [(evels )-141(down )-141(fr)18(om )-141(the )-141(point )-141(to)]TJ -25.488 -1.2 Td [(which )-109(we )-109(want )-109(to )-109(r)17(eturn.\) )-359(It)-360(becomes )-109(messy )-109(if )-109(we )-109(have )-109(to )-109(code )-109(each )-109(function )-109(with )-109(a)]TJ 0 -1.2 Td [(special r)18(eturn value that tells it to r)18(eturn one level.)]TJ 1.8 -1.2 Td [(The )-92(solution )-92(to )-92(this )-92(pr)18(oblem )-92(is )-92(to )-92(use )-92(a )-92(nonlocal)]TJ /TT0 1 Tf 22.302 0 Td (goto)Tj /T1_0 1 Tf 0.342 Tc (:t)Tj 0 Tc 3.318 0 Td (he)Tj /TT0 1 Tf 1.403 0 Td (setjmp)Tj /T1_0 1 Tf 3.942 0 Td (and)Tj /TT0 1 Tf 2.035 0 Td (longjmp)Tj /T1_0 1 Tf -34.8 -1.2 Td [(functions. )-414(The)-415(adjective )-164(\324)37(\324nonlocal\325)]TJ 0.4143 Tc 16.019 0 Td (\325i)Tj 0 Tc 0.983 0 Td [(ndicates )-164(that )-164(we\325r)]TJ 0.4142 Tc 8.188 0 Td (en)Tj 0 Tc 1.475 0 Td [(ot )-164(doing )-164(a )-164(normal )-164(C)]TJ /TT0 1 Tf 9.935 0 Td (goto)Tj /T1_0 1 Tf -36.6 -1.2 Td [(statement )-57(within )-57(a )-57(function; )-57(instead, )-57(we\325r)]TJ 0.3071 Tc 18.654 0 Td (eb)Tj 0 Tc 1.339 0 Td [(ranching )-57(back )-57(thr)18(ough )-57(the )-57(call )-57(frames )-57(to )-57(a)]TJ -19.994 -1.2 Td [(function that is in the call path of the curr)18(ent function.)]TJ /TT0 1 Tf 8.9973 0 0 8.9973 147.5565 209.0371 Tm (#include )Tj 0 -2.378 TD (int setjmp\(jmp_buf)Tj /T1_2 1 Tf 11.4 0 Td (env)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -3.712 -2.378 Td [(Returns: 0 if called dir)18(ectly)]TJ 0.25 Tc 11.731 0 Td (,n)Tj 0 Tc 1.082 0 Td [(onzer)18(o)-250(if)-250(r)18(eturning fr)18(om a call to)]TJ /TT0 1 Tf 14.632 0 Td (longjmp)Tj -35.133 -2.378 Td (void longjmp\(jmp_buf)Tj /T1_2 1 Tf 12.6 0 Td (env)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.245 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (val)Tj /TT0 1 Tf (\);)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1404.25 cm 0 0 m 0 777 l 3900 777 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47294 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(7.6)]TJ 28.437 0 Td [(Memory )-250(Layout )-250(of )-250(a )-250(C )-250(Pr)18(ogram)]TJ /T1_1 1 Tf 17.396 0 Td (205)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 0.883 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (\245I)Tj 0 Tc 1.826 0 Td [(nitialized )-235(data )-235(segment, )-235(usually )-235(called )-235(simply )-235(the )-235(data )-235(segment, )-235(containing)]TJ -0.337 -1.2 Td [(variables )-208(that )-208(ar)]TJ 0.4576 Tc 7.524 0 Td (es)Tj 0 Tc 1.361 0 Td [(peci\336cally )-208(initialized )-208(in )-208(the )-208(pr)20(ogram. )-458(For)-457(example, )-208(the )-208(C)]TJ -8.885 -1.2 Td (declaration)Tj /TT0 1 Tf 8.9995 0 0 8.9995 180.479 626.1226 Tm [(int )-1200(maxcount)]TJ 0.6 Tc 9 0 Td (=9)Tj 0 Tc 1.8 0 Td (9;)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 162.4801 605.9836 Tm [(appearing )-11(outside )-11(any )-11(function )-11(causes )-11(this )-11(variable )-11(to )-11(be )-11(stor)18(ed )-11(in )-11(the )-11(initialized)]TJ 0 -1.2 TD (data segment with its initial value.)Tj 0.883 Tc -1.489 -1.96 Td (\245U)Tj 0 Tc 2.267 0 Td [(ninitialized )-262(data )-262(segment, )-262(often )-262(called )-262(the )-262(\324)34(\324bss\325)]TJ 0.5125 Tc 22.456 0 Td (\325s)Tj 0 Tc 1.214 0 Td [(egment, )-262(named )-262(after )-262(an)]TJ -24.448 -1.2 Td [(ancient )-160(assembler )-160(operator )-160(that )-160(stood )-160(for )-160(\324)39(\324block )-160(started )-160(by )-160(symbol.\325)]TJ 0.6596 Tc 31.391 0 Td (\325D)Tj 0 Tc 1.712 0 Td [(ata )-160(in)]TJ -33.103 -1.2 Td [(this )-1(segment )-1(is )-1(initialized )-1(by )-1(the )-1(kernel )-1(to )-1(arithmetic )-1(0 )-1(or )-1(null )-1(pointers )-1(befor)]TJ 0.2513 Tc 33.594 0 Td (et)Tj 0 Tc 1.056 0 Td (he)Tj -34.65 -1.2 Td [(pr)18(ogram starts executing.)-500(The C declaration)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 180.4789 519.549 Tm [(long )-1200(sum[1000];)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 162.48 499.41 Tm [(appearing )-439(outside )-439(any )-439(function )-439(causes )-439(this )-439(variable )-439(to )-439(be )-439(stor)14(ed )-439(in )-439(the)]TJ T* (uninitialized data segment.)Tj 0.883 Tc -1.489 -1.96 Td (\245S)Tj 0 Tc 2.014 0 Td [(tack, )-1(wher)]TJ 0.2511 Tc 4.599 0 Td (ea)Tj 0 Tc 1.23 0 Td [(utomatic )-1(variables )-1(ar)]TJ 0.2511 Tc 9.296 0 Td (es)Tj 0 Tc 1.154 0 Td [(tor)18(ed, )-1(along )-1(with )-1(information )-1(that )-1(is )-1(saved)]TJ -16.804 -1.2 Td [(each )-185(time )-185(a )-185(function )-185(is )-185(called.)-685(Each )-185(time )-185(a )-185(function )-185(is )-185(called, )-185(the )-185(addr)18(ess )-185(of)]TJ T* [(wher)18(e)-307(to)-307(r)17(eturn )-57(to )-57(and )-57(certain )-57(information )-57(about )-57(the )-57(caller)-77(\325s )-58(envir)18(onment, )-58(such)]TJ T* [(as )-227(some )-227(of )-227(the )-227(machine )-227(r)20(egisters, )-226(ar)]TJ 0.4765 Tc 17.02 0 Td (es)Tj 0 Tc 1.379 0 Td [(aved )-226(on )-226(the )-226(stack.)-726(The )-226(newly )-226(called)]TJ -18.4 -1.2 Td [(function )-296(then )-296(allocates )-296(r)17(oom )-296(on )-296(the )-296(stack )-296(for )-296(its )-296(automatic )-296(and )-296(temporary)]TJ T* [(variables. )-294(This)-295(is )-44(how )-44(r)18(ecursive )-44(functions )-44(in )-44(C )-44(can )-44(work.)-544(Each )-44(time )-44(a )-44(r)15(ecursive)]TJ 0 -1.2 Td [(function )-137(calls )-137(itself, )-137(a )-137(new )-137(stack )-137(frame )-137(is )-137(used, )-137(so )-137(one )-137(set )-137(of )-137(variables )-137(doesn\325t)]TJ T* (interfer)Tj 0.25 Tc 3.262 0 Td (ew)Tj 0 Tc 1.563 0 Td [(ith the variables fr)18(om another instance of the function.)]TJ 0.883 Tc -6.314 -1.96 Td (\245H)Tj 0 Tc 2.321 0 Td [(eap, )-116(wher)]TJ 0.3657 Tc 4.468 0 Td (ed)Tj 0 Tc 1.456 0 Td [(ynamic )-116(memory )-116(allocation )-116(usually )-116(takes )-116(place.)-614(Historically)]TJ 0.3656 Tc 26.953 0 Td (,t)Tj 0 Tc 0.942 0 Td (he)Tj -34.65 -1.2 Td (heap has been located between the uninitialized data and the stack.)Tj -3.289 -2.4 Td (Figur)Tj 0.2956 Tc 2.383 0 Td (e7)Tj 0 Tc 1.275 0 Td [(.6 )-46(shows )-46(the )-46(typical )-46(arrangement )-46(of )-46(these )-46(segments.)-543(This )-46(is )-46(a )-46(logical )-46(pictur)]TJ 0.2957 Tc 33.689 0 Td (eo)Tj 0 Tc 1.321 0 Td (f)Tj -38.667 -1.2 Td [(how )-83(a )-83(pr)18(ogram )-83(looks; )-83(ther)18(e)-333(is)-333(no)-333(r)18(equir)18(ement )-83(that )-83(a )-83(given )-83(implementation )-83(arrange )-83(its)]TJ -0 -1.2 Td [(memory )-87(in )-87(this )-87(fashion.)-589(Nevertheless, )-88(this )-88(gives )-88(us )-88(a )-88(typical )-88(arrangement )-88(to )-88(describe.)]TJ -0.055 Tc T* (Wi)Tj 0 Tc 1.236 0 Td [(th )-417(Linux )-417(on )-417(a )-417(32)]TJ 8.807 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-417(Intel )-417(x86 )-417(pr)18(ocessor)]TJ 0.6668 Tc 10.864 0 Td (,t)Tj 0 Tc 1.243 0 Td [(he )-417(text )-417(segment )-417(starts )-417(at )-417(location)]TJ /TT0 1 Tf -22.482 -1.2 Td (0x08048000)Tj /T1_0 1 Tf 0.3776 Tc (,a)Tj 0 Tc 7.128 0 Td [(nd )-128(the )-128(bottom )-128(of )-128(the )-128(stack )-128(starts )-128(just )-128(below)]TJ /TT0 1 Tf 20.36 0 Td (0xC0000000)Tj /T1_0 1 Tf 0.6277 Tc (.\()Tj 0 Tc 7.211 0 Td [(The )-128(stack)]TJ -34.699 -1.2 Td [(gr)18(ows )-6(fr)18(om )-6(higher)18(-number)18(ed )-6(addr)18(esses )-6(to )-6(lower)18(-number)18(ed )-6(addr)18(esses )-6(on )-6(this )-6(particular)]TJ -0 -1.2 Td [(ar)18(chitectur)18(e.\) )-253(The)-253(unused )-3(virtual )-3(addr)18(ess )-3(space )-3(between )-3(the )-3(top )-3(of )-3(the )-3(heap )-3(and )-3(the )-3(top)]TJ -0 -1.2 Td [(of the stack is lar)18(ge.)]TJ 7.9995 0 0 7.9995 183.5883 221.8271 Tm [(Several )-300(mor)]TJ 0.55 Tc 5.59 0 Td (es)Tj 0 Tc 1.453 0 Td [(egment )-300(types )-300(exist )-300(in )-300(an)]TJ /TT0 1 Tf 12.432 0 Td (a.out)Tj /T1_0 1 Tf 0.5499 Tc (,c)Tj 0 Tc 4.244 0 Td [(ontaining )-300(the )-300(symbol )-300(table, )-300(debugging)]TJ -23.719 -1.25 Td [(information, )-326(linkage )-326(tables )-326(for )-326(dynamic )-326(shar)16(ed )-326(libraries, )-326(and )-326(the )-326(like.)-826(These )-326(additional)]TJ 0 -1.25 TD [(sections don\325t get loaded as part of the pr)18(ogram\325s image executed by a pr)18(ocess.)]TJ 9.9994 0 0 9.9994 147.5903 178.8297 Tm [(Note )-177(fr)18(om )-177(Figur)]TJ 0.4275 Tc 7.559 0 Td (e7)Tj 0 Tc 1.406 0 Td [(.6 )-177(that )-177(the )-177(contents )-177(of )-177(the )-177(uninitialized )-177(data )-177(segment )-177(ar)]TJ 0.4274 Tc 25.875 0 Td (en)Tj 0 Tc 1.488 0 Td (ot)Tj -38.128 -1.2 Td [(stor)18(ed )-97(in )-97(the )-97(pr)17(ogram )-97(\336le )-97(on )-97(disk, )-97(because )-97(the )-97(kernel )-97(sets )-97(the )-97(contents )-97(to )-97(0 )-97(befor)]TJ 0.3474 Tc 36.787 0 Td (et)Tj 0 Tc 1.152 0 Td (he)Tj -37.939 -1.2 Td [(pr)18(ogram )-53(starts )-53(r)7(unning. )-303(The)-304(only )-53(portions )-53(of )-53(the )-53(pr)16(ogram )-53(that )-53(need )-53(to )-53(be )-53(saved )-53(in )-53(the)]TJ -0 -1.2 Td [(pr)18(ogram \336le ar)]TJ 0.25 Tc 6.61 0 Td (et)Tj 0 Tc 1.055 0 Td (he text segment and the initialized data.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47295 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (162)Tj /T1_1 1 Tf 3.5 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Library)]TJ 34.372 0 Td [(Chapter )-250(5)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Refer )-304(to )-304(Section )-304(7.3 )-304(of )-304(Kernighan )-304(and )-304(Ritchie)]TJ 22.446 0.04 Td ([)Tj 0.333 -0.04 Td (1988)Tj 2 0.04 Td (])Tj 0.887 -0.04 Td [(for )-304(additional )-304(details )-304(on)]TJ -27.466 -1.2 Td [(handling )-331(variable-length )-331(ar)18(gument )-331(lists )-331(with )-331(ISO )-331(Standar)]TJ 0.5816 Tc 27.371 0 Td (dC)Tj 0.8316 Tc 1.902 0 Td (.B)Tj 0.5816 Tc 1.693 0 Td (ea)Tj 0 Tc 1.561 0 Td (war)Tj 0.5816 Tc 1.711 0 Td (et)Tj 0 Tc 1.387 0 Td [(hat )-332(the)]TJ -35.623 -1.2 Td [(variable-length )-77(ar)18(gument )-77(list )-77(r)18(outines )-77(pr)18(ovided )-77(with )-77(ISO )-77(C)]TJ 0.0833 Tc 26.83 0 Td (\321t)Tj 0 Tc 1.409 0 Td (he)Tj /TT0 1 Tf 1.388 0 Td ()Tj /T1_1 1 Tf 6.327 0 Td (header)Tj -35.954 -1.2 Td [(and )-26(its )-26(associated )-26(r)17(outines )167(\321 )167(dif)17(fer )-26(fr)18(om )-26(the)]TJ /TT0 1 Tf 19.682 0 Td ()Tj /T1_1 1 Tf -0.018 Tc 6.876 0 Td (ro)Tj 0 Tc 0.923 0 Td [(utines )-26(that )-26(wer)]TJ 0.2765 Tc 6.682 0 Td (ep)Tj -0.018 Tc 1.356 0 Td (ro)Tj 0 Tc 0.923 0 Td (vided)Tj -36.443 -1.2 Td (with older UNIX systems.)Tj /TT1 1 Tf -3.6 -3.12 Td (Formatted Input)Tj /T1_1 1 Tf 3.6 -2.16 Td [(Formatted input is handled by the thr)18(ee)]TJ /TT0 1 Tf 17.885 0 Td (scanf)Tj /T1_1 1 Tf 3.25 0 Td (functions.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 140.3918 551.4669 Tm (#include )Tj 0 -1.902 TD (int scanf\(const char *restrict)Tj /T1_2 1 Tf 18.6 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 4.466 0 Td (..\);)Tj -23.066 -1.902 Td (int fscanf\(FILE *restrict)Tj /T1_2 1 Tf 15.6 0 Td (fp)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 4.466 0 Td (..\);)Tj -34.644 -1.902 Td (int sscanf\(const char *restrict)Tj /T1_2 1 Tf 19.2 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.097 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 4.466 0 Td (..\);)Tj /T1_1 1 Tf -21.092 -1.902 Td [(All thr)18(ee r)18(eturn: number of input items assigned,)]TJ /TT0 1 Tf -1.983 -1.189 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td [(if input err)18(or or end of \336le befor)]TJ 0.25 Tc 14.124 0 Td (ea)Tj 0 Tc 1.229 0 Td (ny conversion)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4678.25 cm 0 0 m 0 927 l 3900 927 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 454.2655 Tm (The)Tj /TT0 1 Tf 1.959 0 Td (scanf)Tj /T1_1 1 Tf 3.286 0 Td [(family )-35(is )-35(used )-35(to )-35(parse )-35(an )-35(input )-35(string )-35(and )-35(convert )-35(character )-35(sequences )-35(into)]TJ -5.245 -1.2 Td [(variables )-47(of )-47(speci\336ed )-47(types.)-547(The )-47(ar)16(guments )-47(following )-47(the )-47(format )-47(contain )-47(the )-47(addr)15(esses)]TJ 0 -1.2 TD [(of the variables to initialize with the r)18(esults of the conversions.)]TJ 1.8 -1.2 Td [(The )-54(format )-54(speci\336cation )-54(contr)18(ols )-54(how )-54(the )-54(ar)18(guments )-54(ar)]TJ 0.3041 Tc 24.811 0 Td (ec)Tj 0 Tc 1.227 0 Td [(onverted )-54(for )-54(assignment.)]TJ -27.838 -1.2 Td [(The )-113(per)18(cent )-113(sign )-113(\(%\) )-113(indicates )-113(the )-113(beginning )-113(of )-113(a )-113(conversion )-113(speci\336cation.)-612(Except )-113(for)]TJ T* [(the )-153(conversion )-153(speci\336cations )-153(and )-153(white )-153(space, )-153(other )-153(characters )-153(in )-153(the )-153(format )-153(have )-153(to)]TJ T* [(match )-80(the )-80(input.)-580(If )-80(a )-80(character )-80(doesn\325t )-80(match, )-80(pr)18(ocessing )-80(stops, )-80(leaving )-80(the )-80(r)12(emainder)]TJ T* [(of the input unr)18(ead.)]TJ 1.8 -1.2 Td (Ther)Tj 0.2893 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.268 0 Td [(re )-75(t)]TJ 0 Tc 1.471 0 Td [(hr)18(ee )-39(optional )-39(components )-39(to )-39(a )-39(conversion )-39(speci\336cation, )-39(shown )-39(in )-39(squar)15(e)]TJ -6.591 -1.2 Td (brackets below:)Tj /TT0 1 Tf 1.8 -2.16 Td (%[*][fldwidth][m][lenmodifier]convtype)Tj /T1_1 1 Tf -1.8 -2.16 Td [(The )-203(optional )-203(leading )-203(asterisk )-203(is )-203(used )-203(to )-203(suppr)21(ess )-203(conversion.)-703(Input )-203(is )-203(converted )-203(as)]TJ T* [(speci\336ed )-137(by )-137(the )-137(r)18(est )-137(of )-137(the )-137(conversion )-137(speci\336cation, )-137(but )-137(the )-137(r)18(esult )-137(is )-137(not )-137(stor)18(ed )-137(in )-137(an)]TJ T* [(ar)18(gument.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.062 0 Td (fldwidth)Tj /T1_1 1 Tf 5.188 0 Td [(component )-138(speci\336es )-138(the )-138(maximum )-138(\336eld )-138(width )-138(in )-138(characters.)-636(The)]TJ /TT0 1 Tf -9.05 -1.2 Td (lenmodifier)Tj /T1_1 1 Tf 6.953 0 Td [(component )-103(speci\336es )-103(the )-103(size )-103(of )-103(the )-103(ar)19(gument )-103(to )-103(be )-103(initialized )-103(with )-103(the)]TJ -0.018 Tc -6.953 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sult )-16(of )-16(the )-16(conversion.)-515(The )-16(same )-16(length )-16(modi\336ers )-16(supported )-16(by )-16(the)]TJ /TT0 1 Tf 30.279 0 Td (printf)Tj /T1_1 1 Tf 3.866 0 Td [(family )-16(of)]TJ -35.001 -1.2 Td [(functions )-23(ar)]TJ 0.273 Tc 5.281 0 Td (es)Tj 0 Tc 1.176 0 Td [(upported )-23(by )-23(the)]TJ /TT0 1 Tf 7.477 0 Td (scanf)Tj /T1_1 1 Tf 3.273 0 Td [(family )-23(of )-23(functions )-23(\(see )-23(Figur)]TJ 0.273 Tc 13.054 0 Td (e5)Tj 0 Tc 1.252 0 Td [(.8 )-23(for )-23(a )-23(list )-23(of )-23(the)]TJ -31.513 -1.2 Td (length modi\336ers\).)Tj 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.111 0 Td (convtype)Tj /T1_1 1 Tf 5.237 0 Td [(\336eld )-187(is )-187(similar )-187(to )-187(the )-187(conversion )-187(type )-187(\336eld )-187(used )-187(by )-187(the)]TJ /TT0 1 Tf 26.253 0 Td (printf)Tj /T1_1 1 Tf -35.4 -1.2 Td (family)Tj 0.3532 Tc 2.743 0 Td (,b)Tj 0 Tc 1.156 0 Td [(ut )-103(ther)]TJ 0.3532 Tc 3.046 0 Td (ea)Tj -0.018 Tc 1.332 0 Td [(re )-139(s)]TJ 0 Tc 1.633 0 Td [(ome )-103(dif)18(fer)18(ences. )-353(One)-353(dif)18(fer)18(ence )-103(is )-103(that )-103(r)18(esults )-103(that )-103(ar)]TJ 0.3531 Tc 24.268 0 Td (es)Tj 0 Tc 1.256 0 Td [(tor)18(ed )-103(in)]TJ -35.435 -1.2 Td [(unsigned )-311(types )-311(can )-311(optionally )-311(be )-311(signed )-311(on )-311(input.)-811(For )-311(example,)]TJ /TT2 1 Tf 31.686 0 Td (!)Tj /T1_1 1 Tf 0.5614 Tc (1w)Tj 0 Tc 2.444 0 Td [(ill )-311(scan )-311(as)]TJ -34.13 -1.2 Td [(4294967295 )-239(into )-239(an )-239(unsigned )-239(integer)]TJ 0.739 Tc 16.945 0 Td (.F)Tj 0 Tc 1.545 0 Td (igur)Tj 0.489 Tc 1.827 0 Td (e5)Tj 0 Tc 1.468 0 Td [(.10 )-239(summarizes )-239(the )-239(conversion )-239(types)]TJ -21.785 -1.2 Td (supported by the)Tj /TT0 1 Tf 7.832 0 Td (scanf)Tj /T1_1 1 Tf 3.25 0 Td (family of functions.)Tj -9.282 -1.2 Td [(The )-88(optional)]TJ /TT0 1 Tf 6.033 0 Td (m)Tj /T1_1 1 Tf 0.938 0 Td [(character )-88(between )-88(the )-88(\336eld )-88(width )-88(and )-88(the )-88(length )-88(modi\336er )-88(is )-88(called)]TJ -8.77 -1.2 Td (the)Tj /T1_2 1 Tf 1.784 0 Td [(assignment-allocation )-147(character)]TJ /T1_1 1 Tf 0.6466 Tc (.I)Tj 0.3966 Tc 14.183 0 Td (tc)Tj 0 Tc 1.167 0 Td [(an )-146(be )-146(used )-146(with )-146(the)]TJ /TT0 1 Tf 9.634 0 Td (%c)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 1.846 0 Td (%s)Tj /T1_1 1 Tf 0.3965 Tc (,a)Tj 0 Tc 2.346 0 Td (nd)Tj /TT0 1 Tf 1.589 0 Td (%[)Tj /T1_1 1 Tf 1.596 0 Td (conversion)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47296 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (188)Tj /T1_1 1 Tf 3.5 0 Td [(System )-250(Data )-250(Files )-250(and )-250(Information)]TJ 39.241 0 Td [(Chapter )-250(6)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 664.2601 Tm (struct utsname {)Tj 1.2 -1.189 Td [(char )-600(sysname[];)-2400(/* name of the operating system */)]TJ 0 -1.189 TD [(char )-600(nodename[];)-1800(/* name of this node */)]TJ T* [(char )-600(release[];)-2400(/* current release of operating system */)]TJ T* [(char )-600(version[];)-2400(/* current version of this release */)]TJ 0 -1.189 TD [(char )-600(machine[];)-2400(/* name of hardware type */)]TJ -1.2 -1.189 Td (};)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 582.0651 Tm [(Each )-61(string )-61(is )-61(null )-61(terminated.)-560(The )-61(maximum )-61(name )-61(lengths, )-61(including )-61(the )-61(terminating)]TJ 0 -1.2 TD [(null )-3(byte, )-3(supported )-3(by )-3(the )-3(four )-3(platforms )-3(discussed )-3(in )-3(this )-3(book )-3(ar)]TJ 0.2527 Tc 29.854 0 Td (el)Tj 0 Tc 1.023 0 Td [(isted )-3(in )-3(Figur)]TJ 0.2527 Tc 5.892 0 Td (e6)Tj 0 Tc 1.232 0 Td (.7.)Tj -38.001 -1.2 Td [(The )-160(information )-160(in )-160(the)]TJ /TT0 1 Tf 10.851 0 Td (utsname)Tj /T1_1 1 Tf 4.61 0 Td [(str)8(uctur)]TJ 0.4104 Tc 3.49 0 Td (ec)Tj 0 Tc 1.333 0 Td [(an )-160(usually )-160(be )-160(printed )-160(with )-160(the)]TJ /TT0 1 Tf 14.549 0 Td (uname)Tj /T1_1 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj -38.667 -1.24 Td (command.)Tj 7.9995 0 0 7.9995 183.589 526.0684 Tm [(POSIX.1 )-142(warns )-142(that )-142(the)]TJ /TT0 1 Tf 11.092 0 Td (nodename)Tj /T1_1 1 Tf 5.192 0 Td [(element )-142(may )-142(not )-142(be )-142(adequate )-142(to )-142(r)19(efer)18(ence )-142(the )-142(host )-142(on )-142(a)]TJ -16.284 -1.25 Td [(communications )-97(network.)-597(This )-97(function )-97(is )-97(fr)18(om )-97(System )-97(V)]TJ 0.3473 Tc 26.251 0 Td (,a)Tj 0 Tc 1.097 0 Td [(nd )-97(in )-97(older )-97(days, )-97(the)]TJ /TT0 1 Tf 9.852 0 Td (nodename)Tj /T1_1 1 Tf -37.2 -1.25 Td [(element was adequate for r)18(efer)18(encing the host on a UUCP network.)]TJ 0 -2.125 TD [(Realize )-274(also )-274(that )-274(the )-274(information )-274(in )-274(this )-274(str)8(uctur)]TJ 0.5241 Tc 23.019 0 Td (ed)Tj 0 Tc 1.614 0 Td [(oes )-274(not )-274(give )-274(any )-274(information )-274(on )-274(the)]TJ -24.633 -1.25 Td [(POSIX.1 level.)-500(This should be obtained using)]TJ /TT0 1 Tf 20.367 0 Td (_POSIX_VERSION)Tj /T1_1 1 Tf [(,)-250(as)-250(described in Section 2.6.)]TJ -20.367 -2.125 Td (Finally)Tj 0.4139 Tc 2.956 0 Td (,t)Tj 0 Tc 0.99 0 Td [(his )-164(function )-164(gives )-164(us )-164(a )-164(way )-164(only )-164(to )-164(fetch )-164(the )-164(information )-164(in )-164(the )-164(str)10(uctur)18(e; )-164(ther)]TJ 0.4139 Tc 36.446 0 Td (ei)Tj 0 Tc 1.184 0 Td (s)Tj -41.576 -1.25 Td (nothing speci\336ed by POSIX.1 about initializing this information.)Tj 9.9994 0 0 9.9994 147.5904 429.0743 Tm (Historically)Tj 0.4093 Tc 5.076 0 Td (,B)Tj 0 Tc 1.27 0 Td [(SD-derived )-159(systems )-159(pr)17(ovided )-159(the)]TJ /TT0 1 Tf 15.684 0 Td (gethostname)Tj /T1_1 1 Tf 7.009 0 Td [(function )-159(to )-159(r)17(eturn)]TJ -30.84 -1.2 Td [(only )-170(the )-170(name )-170(of )-170(the )-170(host.)-669(This )-170(name )-170(is )-170(usually )-170(the )-170(name )-170(of )-170(the )-170(host )-170(on )-170(a )-170(TCP/IP)]TJ 0 -1.2 TD (network.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5907 385.9768 Tm (#include )Tj 0 -2.021 TD (int gethostname\(char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 17.167 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (namelen)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 7.884 -2.021 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3451.25 cm 0 0 m 0 499 l 3900 499 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 329.1805 Tm (The)Tj /T1_2 1 Tf 1.942 0 Td (namelen)Tj /T1_1 1 Tf 3.658 0 Td [(ar)18(gument )-18(speci\336es )-18(the )-18(size )-18(of )-18(the)]TJ /T1_2 1 Tf 15.009 0 Td (name)Tj /T1_1 1 Tf 2.435 0 Td [(buf)18(fer)]TJ 0.5181 Tc 2.604 0 Td (.I)Tj 0.2681 Tc 1.105 0 Td (fe)Tj 0 Tc 1.08 0 Td [(nough )-18(space )-18(is )-18(pr)18(ovided,)]TJ -27.833 -1.2 Td [(the )-132(string )-132(r)18(eturned )-132(thr)18(ough)]TJ /T1_2 1 Tf 12.913 0 Td (name)Tj /T1_1 1 Tf 2.549 0 Td [(is )-132(null )-132(terminated.)-632(If )-132(insuf)18(\336cient )-132(r)18(oom )-132(is )-132(pr)18(ovided,)]TJ -15.462 -1.2 Td [(however)74(,)-250(it)-250(is)-250(unspeci\336ed whether the string is null terminated.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 1.938 0 Td (gethostname)Tj /T1_1 1 Tf 6.864 0 Td [(function, )-14(which )-14(is )-14(now )-14(de\336ned )-14(as )-14(part )-14(of )-14(POSIX.1, )-14(speci\336es )-14(that)]TJ -10.602 -1.2 Td [(the )-352(maximum )-352(host )-352(name )-352(length )-352(is)]TJ /TT0 1 Tf 17.411 0 Td (HOST_NAME_MAX)Tj /T1_1 1 Tf 0.852 Tc (.F)Tj 0 Tc 9.458 0 Td (igur)Tj 0.602 Tc 1.827 0 Td (e6)Tj 0 Tc 1.581 0 Td [(.7 )-352(summarizes )-352(the)]TJ -30.277 -1.2 Td [(maximum name lengths supported by the four implementations cover)18(ed in this book.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2003.25 2502.25 cm 0 0 m 2486 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 315.4152 242.1764 Tm (Maximum name length)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2631.25 2382.25 cm 0 0 m 1858 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 271.3149 230.1648 Tm [(Fr)18(eeBSD )-2416(Linux)-2382(Mac OS X)-2198(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-3993(3.2.0)-3618(10.6.8 )-3868(10)]TJ -8.297 1.375 Td (Interface)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2003.25 2162.25 cm 0 0 m 2486 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2003.25 2142.25 cm 0 0 m 2486 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 204.2507 206.1581 Tm (uname)Tj /T1_1 1 Tf 9.534 0 Td [(256 )-4368(65 )-4368(256)-4368(257)]TJ /TT0 1 Tf -9.534 -1.25 Td (gethostname)Tj /T1_1 1 Tf 9.534 0 Td [(256 )-4368(64 )-4368(256)-4368(256)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2003.25 1922.25 cm 0 0 m 2486 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4039.25 1922.25 cm 0 0 m 0 460 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3570.25 1922.25 cm 0 0 m 0 460 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3100.25 1922.25 cm 0 0 m 0 460 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2631.25 1922.25 cm 0 0 m 0 580 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4489.25 1922.25 cm 0 0 m 0 580 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2003.25 1922.25 cm 0 0 m 0 580 l S Q Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 244.6639 174.1573 Tm (Figure 6.7)Tj /T1_1 1 Tf 5.195 0 Td (System identi\336cation name limits)Tj 9.9964 0 0 9.9964 147.5471 150.1659 Tm [(If )-104(the )-104(host )-104(is )-104(connected )-104(to )-104(a )-104(TCP/IP )-104(network, )-104(the )-104(host )-104(name )-104(is )-104(normally )-104(the )-104(fully)]TJ -1.8 -1.2 Td (quali\336ed domain name of the host.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47297 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (930)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 160.2404 668.9599 Tm [(The )-84(r)18(esults )-84(depend )-84(on )-84(the )-84(platform.)-584(Recall )-84(that)]TJ /TT0 1 Tf 21.928 0 Td (daemonize)Tj /T1_1 1 Tf 5.734 0 Td [(closes )-84(all )-84(open )-84(\336le)]TJ -27.661 -1.2 Td [(descriptors )-66(and )-66(then )-66(r)18(eopens )-66(the )-66(\336rst )-66(thr)18(ee )-66(to)]TJ /TT0 1 Tf 20.87 0 Td (/dev/null)Tj /T1_1 1 Tf 0.5665 Tc (.T)Tj 0 Tc 6.829 0 Td [(his )-66(means )-66(that )-66(the)]TJ -27.699 -1.2 Td [(pr)18(ocess )-38(won\325t )-38(have )-38(a )-38(contr)18(olling )-38(terminal, )-38(so)]TJ /TT0 1 Tf 20.302 0 Td (getlogin)Tj /T1_1 1 Tf 5.088 0 Td [(won\325t )-38(be )-38(able )-38(to )-38(look )-38(in)]TJ -25.39 -1.2 Td (the)Tj /TT0 1 Tf 1.744 0 Td (utmp)Tj /T1_1 1 Tf 2.757 0 Td [(\336le )-107(for )-107(the )-107(pr)18(ocess\325s )-107(login )-107(entry)]TJ 0.6074 Tc 14.313 0 Td (.T)Tj 0 Tc 1.47 0 Td [(hus, )-107(on )-107(Linux )-107(3.2.0 )-107(and )-107(Solaris )-107(10,)]TJ -20.285 -1.2 Td (we \336nd that a daemon has no login name.)Tj 0 -1.8 TD [(Under )-43(Fr)18(eeBSD )-43(8.0 )-43(and )-43(Mac )-43(OS )-43(X )-43(10.6.8, )-43(however)]TJ 0.2934 Tc 22.361 0 Td (,t)Tj 0 Tc 0.869 0 Td [(he )-43(login )-43(name )-43(is )-43(maintained)]TJ -23.23 -1.2 Td [(in )-88(the )-88(pr)18(ocess )-88(table )-88(and )-88(copied )-88(acr)18(oss )-88(a)]TJ /TT0 1 Tf 18.287 0 Td (fork)Tj /T1_1 1 Tf 0.5879 Tc (.T)Tj 0 Tc 3.851 0 Td [(his )-88(means )-88(that )-88(the )-88(pr)18(ocess )-88(can)]TJ -22.138 -1.2 Td [(always )-17(get )-17(the )-17(login )-17(name, )-17(unless )-17(the )-17(par)17(ent )-17(didn\325t )-17(have )-17(one )-17(to )-17(start )-17(out )-17(\(such )-17(as)]TJ /TT0 1 Tf 0 -1.2 TD (init)Tj /T1_1 1 Tf 2.65 0 Td (when the system is bootstrapped\).)Tj /TT1 1 Tf -9.315 -3.36 Td [(Chapter )-278(14)]TJ /T1_0 1 Tf 3.6 -2.8 Td (14.1)Tj /T1_1 1 Tf 3.065 0 Td [(The test pr)18(ogram is shown in Figur)]TJ 0.25 Tc 15.526 0 Td (eC)Tj 0 Tc 1.438 0 Td (.15.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 4982.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 4982.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 160.2308 488.6404 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj 0 -2.14 TD (void)Tj 0 -1.189 TD (sigint\(int signo\))Tj T* ({)Tj T* (})Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (pid_t pid1, pid2, pid3;)Tj 0 -1.189 TD (int fd;)Tj 0 -2.14 TD (setbuf\(stdout, NULL\);)Tj 0 -1.189 TD (signal_intr\(SIGINT, sigint\);)Tj 0 -2.14 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (reate a file.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(\(fd = open\("lockfile", O_RDWR|O_CREAT, 0666\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("can\325t open/create lockfile"\);)Tj -2.4 -2.14 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*R)Tj 0 Tc 1.8 0 Td (ead-lock the file.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(\(pid1 = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork failed"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(pid1 == 0\) { /* child */)Tj 0.6 -1.189 Td (if \(lock_reg\(fd, F_SETLK, F_RDLCK, 0, SEEK_SET, 0\) < 0\))Tj 2.4 -1.189 Td (err_sys\("child 1: can\325t read-lock file"\);)Tj -2.4 -1.189 Td (printf\("child 1: obtained read lock on file\\n"\);)Tj 0 -1.189 TD (pause\(\);)Tj T* (printf\("child 1: exit after pause\\n"\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47298 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.20)]TJ /TT0 1 Tf 21.486 0 Td (futimens)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 5.55 0 Td (utimensat)Tj /T1_0 1 Tf 0.5 Tc (,a)Tj 0 Tc 6.65 0 Td (nd)Tj /TT0 1 Tf 1.693 0 Td (utimes)Tj /T1_0 1 Tf 4.1 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (127)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 0.883 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (\245I)Tj 0 Tc 1.826 0 Td (f)Tj /T1_2 1 Tf 0.688 0 Td (times)Tj /T1_0 1 Tf 2.522 0 Td [(is )-105(a )-105(non-null )-105(pointer )-105(and )-105(both)]TJ /TT0 1 Tf 14.074 0 Td (tv_nsec)Tj /T1_0 1 Tf 4.555 0 Td [(\336elds )-105(ar)]TJ 0.3547 Tc 3.642 0 Td (es)Tj 0 Tc 1.258 0 Td [(et )-105(to)]TJ /TT0 1 Tf 2.386 0 Td (UTIME_OMIT)Tj /T1_0 1 Tf (,)Tj -29.461 -1.2 Td (no permissions checks ar)Tj 0.25 Tc 11.024 0 Td (ep)Tj 0 Tc 1.33 0 Td (erformed.)Tj -0.055 Tc -13.843 -2.04 Td (Wi)Tj 0 Tc 1.236 0 Td (th)Tj /TT0 1 Tf 1.314 0 Td (futimens)Tj /T1_0 1 Tf 0.4057 Tc (,y)Tj 0 Tc 6.012 0 Td [(ou )-156(need )-156(to )-156(open )-156(the )-156(\336le )-156(to )-156(change )-156(its )-156(times.)-654(The)]TJ /TT0 1 Tf 23.239 0 Td (utimensat)Tj /T1_0 1 Tf -33.6 -1.2 Td [(function )-145(pr)18(ovides )-145(a )-145(way )-145(to )-145(change )-145(a )-145(\336le\325s )-145(times )-145(using )-145(the )-145(\336le\325s )-145(name.)-646(The)]TJ /T1_2 1 Tf 35.056 0 Td (pathname)Tj /T1_0 1 Tf -35.056 -1.2 Td [(ar)18(gument )-42(is )-42(evaluated )-42(r)18(elative )-42(to )-42(the)]TJ /T1_2 1 Tf 16.692 0 Td (fd)Tj /T1_0 1 Tf 1.07 0 Td [(ar)18(gument, )-42(which )-42(is )-42(either )-42(a )-42(\336le )-42(descriptor )-42(of )-42(an)]TJ -17.762 -1.2 Td [(open )-32(dir)18(ectory )-32(or )-32(the )-32(special )-32(value)]TJ /TT0 1 Tf 15.72 0 Td (AT_FDCWD)Tj /T1_0 1 Tf 5.082 0 Td [(to )-32(for)18(ce )-32(evaluation )-32(r)18(elative )-32(to )-32(the )-32(curr)19(ent)]TJ -20.802 -1.2 Td [(dir)18(ectory )-54(of )-54(the )-54(calling )-54(pr)17(ocess. )-304(If)]TJ /T1_2 1 Tf 15.537 0 Td (pathname)Tj /T1_0 1 Tf 4.248 0 Td [(speci\336es )-54(an )-54(absolute )-54(pathname, )-54(then )-54(the)]TJ /T1_2 1 Tf 18.436 0 Td (fd)Tj /T1_0 1 Tf -38.222 -1.2 Td [(ar)18(gument is ignor)18(ed.)]TJ 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 2.261 0 Td (\337ag)Tj /T1_0 1 Tf 2.076 0 Td [(ar)18(gument )-337(to)]TJ /TT0 1 Tf 6.353 0 Td (utimensat)Tj /T1_0 1 Tf 5.987 0 Td [(can )-337(be )-337(used )-337(to )-337(further )-337(modify )-337(the )-337(default)]TJ -18.478 -1.2 Td (behavior)Tj 0.528 Tc 3.837 0 Td (.I)Tj 0.278 Tc 1.115 0 Td (ft)Tj 0 Tc 0.937 0 Td (he)Tj /TT0 1 Tf 1.339 0 Td (AT_SYMLINK_NOFOLLOW)Tj /T1_0 1 Tf 11.678 0 Td [(\337ag )-28(is )-28(set, )-28(then )-28(the )-28(times )-28(of )-28(the )-28(symbolic )-28(link)]TJ -18.906 -1.2 Td [(itself )-32(ar)]TJ 0.2823 Tc 3.303 0 Td (ec)Tj 0 Tc 1.205 0 Td [(hanged )-32(\(if )-32(the )-32(pathname )-32(r)18(efers )-32(to )-32(a )-32(symbolic )-32(link\).)-535(The )-32(default )-32(behavior )-32(is )-32(to)]TJ -4.509 -1.2 Td [(follow a symbolic link and modify the times of the \336le to which the l\ ink r)18(efers.)]TJ 1.8 -1.2 Td (Both)Tj /TT0 1 Tf 2.666 0 Td (futimens)Tj /T1_0 1 Tf 5.401 0 Td (and)Tj /TT0 1 Tf 2.294 0 Td (utimensat)Tj /T1_0 1 Tf 6.001 0 Td (ar)Tj 0.601 Tc 0.877 0 Td (ei)Tj 0 Tc 1.371 0 Td [(ncluded )-351(in )-351(POSIX.1.)]TJ 0.601 Tc 10.466 0 Td (At)Tj 0 Tc 1.705 0 Td (hir)Tj 0.601 Tc 1.25 0 Td (df)Tj 0 Tc 1.545 0 Td (unction,)Tj /TT0 1 Tf -35.376 -1.2 Td (utimes)Tj /T1_0 1 Tf [(,)-250(is)-250(included in the Single UNIX Speci\336cation as part of the XSI option.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5897 487.8707 Tm (#include )Tj 0 -1.902 TD (int utimes\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 19.544 0 Td (onst struct timeval)Tj /T1_2 1 Tf 12 0 Td (times[2])Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -4.693 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4491.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 435.6077 Tm (The)Tj /TT0 1 Tf 2.015 0 Td (utimes)Tj /T1_0 1 Tf 3.941 0 Td [(function )-91(operates )-91(on )-91(a )-91(pathname.)-591(The)]TJ /T1_2 1 Tf 17.759 0 Td (times)Tj /T1_0 1 Tf 2.508 0 Td [(ar)18(gument )-91(is )-91(a )-91(pointer )-91(to)]TJ -28.023 -1.2 Td [(an )-424(array )-424(of )-424(two )-424(timestamps)]TJ 0.0833 Tc 13.931 0 Td (\321a)Tj 0 Tc 1.583 0 Td [(ccess )-424(time )-424(and )-424(modi\336cation )-424(time)]TJ 0.0833 Tc 16.272 0 Td (\321b)Tj 0 Tc 1.636 0 Td [(ut )-424(they )-424(ar)17(e)]TJ -33.423 -1.2 Td [(expr)18(essed in seconds and micr)18(oseconds:)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5822 392.7727 Tm (struct timeval {)Tj 4.8 -1.189 Td [(time_t tv_sec;)-2400(/* seconds */)]TJ 0 -1.189 TD [(long )-1200(tv_usec; )-1200(/*)-600(microseconds */)]TJ -4.8 -1.189 Td (};)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 147.5822 340.5391 Tm [(Note )-507(that )-507(we )-507(ar)]TJ 0.7574 Tc 8.379 0 Td (eu)Tj 0 Tc 1.839 0 Td [(nable )-507(to )-507(specify )-507(a )-507(value )-507(for )-507(the )-507(changed-status )-507(time,)]TJ /TT0 1 Tf -12.018 -1.2 Td (st_ctim)Tj /T1_0 1 Tf [(\321the )-18(time )-18(the )-18(i-node )-18(was )-18(last )-18(changed)]TJ 0.0833 Tc 21.54 0 Td (\321a)Tj 0.2681 Tc 1.583 0 Td (st)Tj 0 Tc 1.018 0 Td [(his )-18(\336eld )-18(is )-18(automatically )-18(updated)]TJ -24.141 -1.2 Td (when the)Tj /TT0 1 Tf 4.364 0 Td (utime)Tj /T1_0 1 Tf 3.25 0 Td (function is called.)Tj -5.814 -1.2 Td [(On )-116(some )-116(versions )-116(of )-116(the )-116(UNIX )-116(System, )-116(the)]TJ /TT0 1 Tf 20.047 0 Td (touch)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.699 -0.04 Td [(command )-116(uses )-116(one )-116(of )-116(these)]TJ -26.379 -1.2 Td [(functions. )-446(Also,)-446(the )-196(standar)]TJ 0.4461 Tc 12.965 0 Td (da)Tj -0.018 Tc 1.557 0 Td (rc)Tj 0 Tc 0.821 0 Td [(hive )-196(pr)18(ograms,)]TJ /TT0 1 Tf 7.341 0 Td (tar)Tj /T1_0 1 Tf 1.8 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.779 -0.04 Td (and)Tj /TT0 1 Tf 2.139 0 Td (cpio)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.4461 Tc 0.333 -0.04 Td (,o)Tj 0 Tc 1.242 0 Td [(ptionally )-196(call)]TJ -33.044 -1.2 Td [(these functions to set a \336le\325s times to the time values saved when\ the \336le was ar)18(chived.)]TJ /TT2 1 Tf -3.6 -2.64 Td (Example)Tj /T1_0 1 Tf 3.6 -1.92 Td [(The )-174(pr)18(ogram )-174(shown )-174(in )-174(Figur)]TJ 0.424 Tc 13.452 0 Td (e4)Tj 0 Tc 1.403 0 Td [(.21 )-174(tr)8(uncates )-174(\336les )-174(to )-174(zer)]TJ 0.424 Tc 11.044 0 Td (ol)Tj 0 Tc 1.261 0 Td [(ength )-174(using )-174(the)]TJ /TT0 1 Tf 7.64 0 Td (O_TRUNC)Tj /T1_0 1 Tf -34.8 -1.2 Td [(option )-20(of )-20(the)]TJ /TT0 1 Tf 5.969 0 Td (open)Tj /T1_0 1 Tf 2.67 0 Td [(function, )-20(but )-20(does )-20(not )-20(change )-20(their )-20(access )-20(time )-20(or )-20(modi\336cation )-20(time.)]TJ -0.092 Tc -8.639 -1.2 Td [(To )-203(d)]TJ 0.2691 Tc 1.947 0 Td (ot)Tj 0 Tc 1.141 0 Td [(his, )-19(the )-19(pr)18(ogram )-19(\336rst )-19(obtains )-19(the )-19(times )-19(with )-19(the)]TJ /TT0 1 Tf 21.396 0 Td (stat)Tj /T1_0 1 Tf 2.669 0 Td [(function, )-19(tr)8(uncates )-19(the )-19(\336le,)]TJ -27.153 -1.2 Td [(and then r)18(esets the times with the)]TJ /TT0 1 Tf 15.131 0 Td (futimens)Tj /T1_0 1 Tf 5.05 0 Td (function.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1918.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 182.2462 Tm (#include "apue.h")Tj T* (#include )Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47299 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (128)Tj /T1_1 1 Tf 3.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.241 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm ({)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td [(i,)-600(fd;)]TJ -9.6 -1.189 Td [(struct stat)-3000(statbuf;)]TJ 0 -1.189 TD (struct timespec times[2];)Tj 0 -2.14 TD (for \(i = 1; i < argc; i++\) {)Tj 2.4 -1.189 Td [(if \(stat\(argv[i], &statbuf\) < 0\) {)-1200(/* fetch current times */)]TJ 2.4 -1.189 Td (err_ret\("%s: stat error", argv[i]\);)Tj 0 -1.189 TD (continue;)Tj -2.4 -1.189 Td (})Tj T* (if \(\(fd = open\(argv[i], O_RDWR | O_TRUNC\)\) < 0\) { /* truncate */)Tj 2.4 -1.189 Td (err_ret\("%s: open error", argv[i]\);)Tj T* (continue;)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (times[0] = statbuf.st_atim;)Tj 0 -1.189 TD (times[1] = statbuf.st_mtim;)Tj T* [(if \(futimens\(fd, times\) < 0\))-4800(/* reset times */)]TJ 2.4 -1.189 Td (err_ret\("%s: futimens error", argv[i]\);)Tj -2.4 -1.189 Td (close\(fd\);)Tj -2.4 -1.189 Td (})Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4429.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 245.7225 426.8878 Tm (Figure 4.21)Tj /T1_1 1 Tf 5.695 0 Td (Example of)Tj /TT0 1 Tf 5.26 0 Td (futimens)Tj /T1_1 1 Tf 5.05 0 Td (function)Tj -0.092 Tc 9.9988 0 0 9.9988 129.5847 398.0912 Tm [(We )-185(c)]TJ 0 Tc 2.082 0 Td [(an )-1(demonstrate )-1(the )-1(pr)18(ogram )-1(in )-1(Figur)]TJ 0.2509 Tc 16.388 0 Td (e4)Tj 0 Tc 1.23 0 Td [(.21 )-1(on )-1(Linux )-1(with )-1(the )-1(following )-1(commands:)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5825 378.9935 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l changemod times)Tj /T1_2 1 Tf 18 0 Td (look at sizes and last-modi\336cation times)Tj /TT0 1 Tf -19.2 -1.189 Td [(-rwxr-xr-x )-600(1)-600(sar )-1200(13792)-600(Jan 22 01:26 changemod)]TJ T* [(-rwxr-xr-x )-600(1)-600(sar )-1200(13824)-600(Jan 22 01:26 times)]TJ T* ($)Tj /TT1 1 Tf 1.2 0 Td (ls -lu changemod times)Tj /T1_2 1 Tf 18 0 Td (look at last-access times)Tj /TT0 1 Tf -19.2 -1.189 Td [(-rwxr-xr-x )-600(1)-600(sar )-1200(13792)-600(Jan 22 22:22 changemod)]TJ 0 -1.189 TD [(-rwxr-xr-x )-600(1)-600(sar )-1200(13824)-600(Jan 22 22:22 times)]TJ 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (date)Tj /T1_2 1 Tf 18 0 Td (print today\325)Tj 0.25 Tc 4.75 0 Td (sd)Tj 0 Tc 1.139 0 Td (ate)Tj /TT0 1 Tf -25.089 -1.189 Td (Fri Jan 27 20:53:46 EST 2012)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out changemod times)Tj /T1_2 1 Tf 18 0 Td [(run the pr)18(ogram in Figur)]TJ 0.25 Tc 10.244 0 Td (e4)Tj 0 Tc 1.139 0 Td (.21)Tj /TT0 1 Tf -30.583 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l changemod times)Tj /T1_2 1 Tf 18 0 Td [(and check the r)18(esults)]TJ /TT0 1 Tf -19.2 -1.189 Td [(-rwxr-xr-x )-600(1)-600(sar )-3600(0)-600(Jan 22 01:26 changemod)]TJ T* [(-rwxr-xr-x )-600(1)-600(sar )-3600(0)-600(Jan 22 01:26 times)]TJ T* ($)Tj /TT1 1 Tf 1.2 0 Td (ls -lu changemod times)Tj /T1_2 1 Tf 18 0 Td (check the last-access times also)Tj /TT0 1 Tf -19.2 -1.189 Td [(-rwxr-xr-x )-600(1)-600(sar )-3600(0)-600(Jan 22 22:22 changemod)]TJ 0 -1.189 TD [(-rwxr-xr-x )-600(1)-600(sar )-3600(0)-600(Jan 22 22:22 times)]TJ 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (ls -lc changemod times)Tj /T1_2 1 Tf 18 0 Td (and the changed-status times)Tj /TT0 1 Tf -19.2 -1.189 Td [(-rwxr-xr-x )-600(1)-600(sar )-3600(0)-600(Jan 27 20:53 changemod)]TJ T* [(-rwxr-xr-x )-600(1)-600(sar )-3600(0)-600(Jan 27 20:53 times)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5851 176.7178 Tm [(As )-214(we )-214(would )-214(expect, )-214(the )-214(last-modi\336cation )-214(times )-214(and )-214(the )-214(last-access )-214(times )-214(have )-214(not)]TJ 0 -1.2 TD [(changed. )-585(The)-585(changed-status )-335(times, )-335(however)]TJ 0.5849 Tc 21.417 0 Td (,h)Tj 0 Tc 1.417 0 Td [(ave )-335(changed )-335(to )-335(the )-335(time )-335(that )-335(the)]TJ -22.833 -1.2 Td [(pr)18(ogram was r)8(un.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1527.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47300 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (192)Tj /T1_1 1 Tf 3.5 0 Td [(System )-250(Data )-250(Files )-250(and )-250(Information)]TJ 39.241 0 Td [(Chapter )-250(6)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -1.902 TD (struct tm *gmtime\(const time_t *)Tj /T1_2 1 Tf (calptr)Tj /TT0 1 Tf (\);)Tj T* (struct tm *localtime\(const time_t *)Tj /T1_2 1 Tf (calptr)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 14.216 -1.902 Td [(Both r)18(eturn: pointer to br)18(oken-down time,)]TJ /TT0 1 Tf 18.897 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6024.25 cm 0 0 m 0 649 l 3900 649 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 588.8693 Tm [(The )-81(dif)18(fer)18(ence )-81(between)]TJ /TT0 1 Tf 10.79 0 Td (localtime)Tj /T1_1 1 Tf 5.731 0 Td (and)Tj /TT0 1 Tf 2.024 0 Td (gmtime)Tj /T1_1 1 Tf 3.931 0 Td [(is )-81(that )-81(the )-81(\336rst )-81(converts )-81(the )-81(calendar)]TJ -22.476 -1.2 Td [(time )-57(to )-57(the )-57(local )-57(time, )-57(taking )-57(into )-57(account )-57(the )-57(local )-57(time )-57(zone )-57(and )-57(daylight )-57(saving )-57(time)]TJ 0 -1.2 TD [(\337ag, )-97(wher)18(eas )-97(the )-97(latter )-97(converts )-97(the )-97(calendar )-97(time )-97(into )-97(a )-97(br)18(oken-down )-97(time )-97(expr)17(essed)]TJ 0 -1.2 Td (as UTC.)Tj 1.8 -1.2 Td [(The )-200(function)]TJ /TT0 1 Tf 6.281 0 Td (mktime)Tj /T1_1 1 Tf 4.05 0 Td [(takes )-200(a )-200(br)18(oken-down )-200(time, )-200(expr)18(essed )-200(as )-200(a )-200(local )-200(time, )-200(and)]TJ -12.131 -1.2 Td (converts it into a)Tj /TT0 1 Tf 7.623 0 Td (time_t)Tj /T1_1 1 Tf 3.85 0 Td (value.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5821 512.1785 Tm (#include )Tj 0 -1.902 TD (time_t mktime\(struct tm *)Tj /T1_2 1 Tf (tmptr)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 21.32 -1.902 Td (Returns: calendar time if OK,)Tj /TT1 1 Tf 13.144 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4735.25 cm 0 0 m 0 477 l 3900 477 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 147.5734 459.9172 Tm (The)Tj /TT0 1 Tf 1.936 0 Td (strftime)Tj /T1_1 1 Tf 5.061 0 Td [(function )-11(is )-11(a)]TJ /TT0 1 Tf 5.706 0 Td (printf)Tj /T1_1 1 Tf [(-like )-11(function )-11(for )-11(time )-11(values.)-511(It )-11(is )-11(complicated)]TJ -14.504 -1.2 Td [(by the multitude of ar)18(guments available to customize the string it pr)18(oduces.)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.5731 431.2224 Tm (#include )Tj T* (size_t strftime\(char *restrict)Tj /T1_2 1 Tf 18.6 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (maxsize)Tj /TT0 1 Tf (,)Tj -15.697 -1.189 Td (const char *restrict)Tj /T1_2 1 Tf 12.6 0 Td (format)Tj /TT0 1 Tf (,)Tj -12.6 -1.189 Td (const struct tm *restrict)Tj /T1_2 1 Tf 15.6 0 Td (tmptr)Tj /TT0 1 Tf (\);)Tj -25.2 -1.902 Td (size_t strftime_l\(char *restrict)Tj /T1_2 1 Tf 19.8 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (maxsize)Tj /TT0 1 Tf (,)Tj -16.897 -1.189 Td (const char *restrict)Tj /T1_2 1 Tf 12.6 0 Td (format)Tj /TT0 1 Tf (,)Tj -12.6 -1.189 Td (const struct tm *restrict)Tj /T1_2 1 Tf 15.6 0 Td (tmptr)Tj /TT0 1 Tf 0.6 Tc (,l)Tj 0 Tc 4.133 0 Td (ocale_t)Tj /T1_2 1 Tf 4.8 0 Td (locale)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -25.554 -1.902 Td [(Both r)18(eturn: number of characters stor)18(ed in array if r)18(oom, 0 otherwise)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3326.25 cm 0 0 m 0 1077 l 3900 1077 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf -0.09 Tc 7.9981 0 0 7.9981 183.5559 311.0653 Tm (Tw)Tj 0.336 Tc 1.357 0 Td (oo)Tj 0 Tc 1.428 0 Td [(lder )-86(functions,)]TJ /TT0 1 Tf 6.829 0 Td (asctime)Tj /T1_1 1 Tf 4.536 0 Td (and)Tj /TT0 1 Tf 2.029 0 Td (ctime)Tj /T1_1 1 Tf 0.336 Tc (,c)Tj 0 Tc 4.03 0 Td [(an )-86(be )-86(used )-86(to )-86(pr)18(oduce )-86(a )-86(26)]TJ 12.28 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-86(printable )-86(string)]TJ -32.822 -1.25 Td [(similar )-188(to )-188(the )-188(default )-188(output )-188(of )-188(the)]TJ /TT0 1 Tf 16.812 0 Td (date)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.771 -0.04 Td [(command. )-438(However)]TJ 0.4379 Tc 9.443 0 Td (,t)Tj 0 Tc 1.014 0 Td [(hese )-188(functions )-188(ar)]TJ 0.4379 Tc 7.848 0 Td (en)Tj 0 Tc 1.499 0 Td (ow)Tj -40.62 -1.25 Td (marked obsolescent, because they ar)Tj 0.25 Tc 16.07 0 Td (es)Tj 0 Tc 1.153 0 Td [(usceptible to buf)18(fer over\337ow pr)18(oblems.)]TJ 9.9976 0 0 9.9976 129.5692 270.0752 Tm (The)Tj /TT0 1 Tf 1.988 0 Td (strftime)Tj /T1_1 1 Tf 5.114 0 Td (and)Tj /TT0 1 Tf 2.007 0 Td (strftime_l)Tj /T1_1 1 Tf 6.314 0 Td [(functions )-64(ar)]TJ 0.3143 Tc 5.322 0 Td (et)Tj 0 Tc 1.119 0 Td [(he )-64(same, )-64(except )-64(that )-64(the)]TJ /TT0 1 Tf 11.134 0 Td (strftime_l)Tj /T1_1 1 Tf -33 -1.2 Td [(function )-34(allows )-34(the )-34(caller )-34(to )-34(specify )-34(the )-34(locale )-34(as )-34(an )-34(ar)20(gument. )-284(The)]TJ /TT0 1 Tf 30.21 0 Td (strftime)Tj /T1_1 1 Tf 5.084 0 Td (function)Tj -35.293 -1.2 Td (uses the locale speci\336ed by the)Tj /TT0 1 Tf 13.798 0 Td (TZ)Tj /T1_1 1 Tf 1.45 0 Td [(envir)18(onment variable.)]TJ -13.448 -1.2 Td (The)Tj /T1_2 1 Tf 1.987 0 Td (tmptr)Tj /T1_1 1 Tf 2.646 0 Td [(ar)18(gument )-63(is )-63(the )-63(time )-63(value )-63(to )-63(format, )-63(speci\336ed )-63(by )-63(a )-63(pointer )-63(to )-63(a )-63(br)12(oken-)]TJ -6.434 -1.2 Td [(down )-87(time )-87(value.)-587(The )-87(formatted )-87(r)18(esult )-87(is )-87(stor)18(ed )-87(in )-87(the )-87(array)]TJ /T1_2 1 Tf 27.857 0 Td (buf)Tj /T1_1 1 Tf 1.634 0 Td [(whose )-87(size )-87(is)]TJ /T1_2 1 Tf 6.286 0 Td (maxsize)Tj /T1_1 1 Tf -35.778 -1.2 Td [(characters. )-422(If)-422(the )-172(size )-172(of )-172(the )-172(r)18(esult, )-172(including )-172(the )-172(terminating )-172(null, )-172(\336ts )-172(in )-172(the )-172(buf)17(fer)74(,)]TJ 0 -1.2 TD [(these )-34(functions )-34(r)18(eturn )-34(the )-34(number )-34(of )-34(characters )-34(stor)18(ed )-34(in)]TJ /T1_2 1 Tf 25.629 0 Td (buf)Tj /T1_1 1 Tf 0.2844 Tc (,e)Tj 0 Tc 2.31 0 Td [(xcluding )-34(the )-34(terminating)]TJ -27.939 -1.2 Td [(null. )-250(Otherwise,)-250(these functions r)18(eturn 0.)]TJ 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 2.073 0 Td (format)Tj /T1_1 1 Tf 3.065 0 Td [(ar)18(gument )-149(contr)18(ols )-149(the )-149(formatting )-149(of )-149(the )-149(time )-149(value.)-649(Like )-149(the)]TJ /TT0 1 Tf 28.462 0 Td (printf)Tj /T1_1 1 Tf -35.4 -1.2 Td [(functions, )-305(conversion )-305(speci\336ers )-305(ar)]TJ 0.5549 Tc 15.919 0 Td (eg)Tj 0 Tc 1.59 0 Td [(iven )-305(as )-305(a )-305(per)18(cent )-305(sign )-305(followed )-305(by )-305(a )-305(special)]TJ -17.509 -1.2 Td (character)Tj 0.5035 Tc 3.991 0 Td (.A)Tj 0 Tc 1.531 0 Td [(ll )-3(other )-3(characters )-3(in )-3(the)]TJ /T1_2 1 Tf 10.927 0 Td (format)Tj /T1_1 1 Tf 2.919 0 Td [(string )-3(ar)]TJ 0.2535 Tc 3.704 0 Td (ec)Tj 0 Tc 1.176 0 Td [(opied )-3(to )-3(the )-3(output.)]TJ -0.09 Tc 9.306 0 Td (Tw)Tj 0.2535 Tc 1.357 0 Td (op)Tj 0 Tc 1.401 0 Td [(er)18(cent)]TJ -36.313 -1.2 Td [(signs )-307(in )-307(a )-307(r)18(ow )-307(generate )-307(a )-307(single )-307(per)18(cent )-307(sign )-307(in )-307(the )-307(output.)-812(Unlike )-307(the)]TJ /TT0 1 Tf 35.4 0 Td (printf)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47301 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (924)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(Chapter )-278(10)]TJ /T1_0 1 Tf 3.6 -2.8 Td (10.1)Tj /T1_1 1 Tf 3.065 0 Td [(The )-51(pr)18(ogram )-51(terminates )-51(the )-51(\336rst )-51(time )-51(we )-51(send )-51(it )-51(a )-51(signal.)-551(The )-51(r)18(eason )-51(is )-51(that )-51(the)]TJ /TT1 1 Tf 0 -1.2 TD (pause)Tj /T1_1 1 Tf 3.25 0 Td [(function r)18(eturns whenever a signal is caught.)]TJ /T1_0 1 Tf -6.315 -1.84 Td (10.3)Tj /T1_1 1 Tf 3.065 0 Td (Figur)Tj 0.25 Tc 2.383 0 Td (eC)Tj 0 Tc 1.438 0 Td (.1)Tj 0.25 Tc 0.695 0 Td (1s)Tj 0 Tc 1.174 0 Td (hows the stack frames.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1878 5286 576 360 re S Q BT /T1_1 1 Tf 7.999 0 0 7.999 196.2165 549.774 Tm (stack frame)Tj 0.583 -1.25 Td (for)Tj /TT1 1 Tf 1.524 0 Td (main)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1878.25 5286.25 cm 0 0 m 0 -144 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2454.25 5286.25 cm 0 0 m 0 -144 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2598 5286 576 360 re S Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 268.1917 549.741 Tm (stack frame)Tj 0.583 -1.25 Td (for)Tj /TT1 1 Tf 1.524 0 Td (main)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2598 4926 576 360 re S Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 268.1756 513.7167 Tm (stack frame)Tj -0.017 -1.25 Td (for)Tj /TT1 1 Tf 1.524 0 Td (sleep2)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2598 4566 576 360 re S Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 268.1595 477.6967 Tm (stack frame)Tj -0.317 -1.25 Td (for)Tj /TT1 1 Tf 1.524 0 Td (sig_int)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2598.25 4566.25 cm 0 0 m 0 -144 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3174.25 4566.25 cm 0 0 m 0 -144 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 3318 5286 576 360 re S Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 340.1175 549.6421 Tm (stack frame)Tj 0.583 -1.25 Td (for)Tj /TT1 1 Tf 1.524 0 Td (main)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 3318 4926 576 360 re S Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 340.0971 513.6242 Tm (stack frame)Tj -0.017 -1.25 Td (for)Tj /TT1 1 Tf 1.524 0 Td (sleep2)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 3318 4566 576 360 re S Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 340.0767 477.6107 Tm (stack frame)Tj -0.317 -1.25 Td (for)Tj /TT1 1 Tf 1.524 0 Td (sig_int)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 3318 4206 576 360 re S Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 340.0563 441.6015 Tm (stack frame)Tj -0.617 -1.25 Td (for)Tj /TT1 1 Tf 1.524 0 Td (sig_alrm)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3318.25 4206.25 cm 0 0 m 0 -144 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3894.25 4206.25 cm 0 0 m 0 -144 l S Q Q q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 393 510.6 cm 0 0 m 4.32 -6.048 l 1.008 -7.344 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 3930 5106 cm 0 0 m 43.2 -60.48 l 10.08 -73.44 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3858.01 4386 cm 0 0 m 88.86 122.78 136.7 270.48 136.7 422.05 c 136.7 500.6 123.84 578.63 98.64 653.03 c S Q Q BT /TT1 1 Tf 7.9947 0 0 7.9947 397.5375 450.9423 Tm (longjmp)Tj ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J 4146 5286 576 360 re S Q BT /T1_1 1 Tf 7.9942 0 0 7.9942 422.7355 549.4442 Tm (stack frame)Tj 0.583 -1.25 Td (for)Tj /TT1 1 Tf 1.524 0 Td (main)Tj ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J 4146 4926 576 360 re S Q BT /T1_1 1 Tf 7.9938 0 0 7.9938 422.7101 513.4393 Tm (stack frame)Tj -0.017 -1.25 Td (for)Tj /TT1 1 Tf 1.524 0 Td (sleep2)Tj ET q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 4926.25 cm 0 0 m 0 -144 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4722.25 4926.25 cm 0 0 m 0 -144 l S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 475.8 546.6 cm 0 0 m 3.456 -6.552 l -0.072 -7.416 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 4758 5466 cm 0 0 m 34.56 -65.52 l -0.72 -74.16 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4686.0098 5106 cm 0 0 m 59.25 66.03 92.02 151.63 92.02 240.35 c 92.02 257.01 90.86 273.66 88.56 290.16 c S Q Q BT /T1_1 1 Tf -0.018 Tc 7.9928 0 0 7.9928 481.4305 531.3615 Tm (re)Tj 0 Tc 0.856 0 Td (turn to)Tj /TT1 1 Tf -0.114 -1.25 Td (main)Tj /T1_1 1 Tf -41.79 5.3 Td (bottom)Tj 0.026 -1.25 Td (of stack)Tj ET q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 173.4 507 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 1734 5070 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1734.25 5286.25 cm 0 0 m 0 -144 l S Q Q BT /T1_1 1 Tf 7.9923 0 0 7.9923 269.4452 581.6813 Tm [(pr)18(ocessing)]TJ /TT1 1 Tf 0.562 -1.25 Td (SIGINT)Tj /T1_1 1 Tf 8.438 1.25 Td [(pr)18(ocessing)]TJ /TT1 1 Tf 0.262 -1.25 Td (SIGALRM)Tj /T1_1 1 Tf 11.434 1.25 Td (after)Tj /TT1 1 Tf -1.083 -1.25 Td (longjmp)Tj /T1_0 1 Tf -22.428 -23.905 Td [(Figure C.1)37(1)]TJ /T1_1 1 Tf 5.88 0 Td (Stack frames befor)Tj 0.25 Tc 8.153 0 Td (ea)Tj 0 Tc 1.229 0 Td (nd after)Tj /TT1 1 Tf 3.726 0 Td (longjmp)Tj /T1_1 1 Tf 9.9904 0 0 9.9904 160.0957 351.862 Tm (The)Tj /TT1 1 Tf 2.175 0 Td (longjmp)Tj /T1_1 1 Tf 4.701 0 Td [(fr)18(om)]TJ /TT1 1 Tf 2.64 0 Td (sig_alrm)Tj /T1_1 1 Tf 5.301 0 Td [(back )-251(to)]TJ /TT1 1 Tf 3.927 0 Td (sleep2)Tj /T1_1 1 Tf 4.101 0 Td [(ef)18(fectively )-251(aborts )-251(the )-251(call )-251(to)]TJ /TT1 1 Tf -22.844 -1.2 Td (sig_int)Tj /T1_1 1 Tf 0.5 Tc (.F)Tj -0.018 Tc 5.506 0 Td (ro)Tj 0.25 Tc 0.923 0 Td (mt)Tj 0 Tc 1.459 0 Td (his point,)Tj /TT1 1 Tf 4.393 0 Td (sleep2)Tj /T1_1 1 Tf -0.018 Tc 3.85 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns to main \(r)18(ecall Figur)]TJ 0.25 Tc 11.556 0 Td (e1)Tj 0 Tc 1.229 0 Td (0.8\).)Tj /T1_0 1 Tf -32.837 -1.84 Td (10.4)Tj /T1_1 1 Tf -0.092 Tc 3.065 0 Td [(We )-218(a)]TJ 0 Tc 2.171 0 Td [(gain )-34(have )-34(a )-34(race )-34(condition, )-34(this )-34(time )-34(between )-34(the )-34(\336rst )-34(call )-34(to)]TJ /TT1 1 Tf 27.117 0 Td (alarm)Tj /T1_1 1 Tf 3.284 0 Td [(and )-34(the)]TJ -32.571 -1.2 Td [(call )-279(to)]TJ /TT1 1 Tf 3.457 0 Td (setjmp)Tj /T1_1 1 Tf 0.7795 Tc (.I)Tj 0.5295 Tc 4.966 0 Td (ft)Tj 0 Tc 1.189 0 Td [(he )-279(pr)18(ocess )-280(is )-280(blocked )-280(by )-280(the )-280(kernel )-280(between )-280(these )-280(two)]TJ -9.612 -1.2 Td [(function )-132(calls, )-132(the )-132(alarm )-132(goes )-132(of)18(f, )-132(the )-132(signal )-132(handler )-132(is )-132(called, )-132(and)]TJ /TT1 1 Tf 30.638 0 Td (longjmp)Tj /T1_1 1 Tf 4.582 0 Td (is)Tj -35.22 -1.2 Td [(called. )-300(But)-300(since)]TJ /TT1 1 Tf 7.775 0 Td (setjmp)Tj /T1_1 1 Tf 3.9 0 Td [(was )-50(never )-50(called, )-50(the )-50(buf)19(fer)]TJ /TT1 1 Tf 12.688 0 Td (env_alrm)Tj /T1_1 1 Tf 5.1 0 Td [(is )-50(not )-50(set.)-550(The)]TJ -29.463 -1.2 Td [(operation )-61(of)]TJ /TT1 1 Tf 5.767 0 Td (longjmp)Tj /T1_1 1 Tf 4.511 0 Td [(is )-61(unde\336ned )-61(if )-61(its )-61(jump )-61(buf)18(fer )-61(has )-61(not )-61(been )-61(initialized )-61(by)]TJ /TT1 1 Tf -10.278 -1.2 Td (setjmp)Tj /T1_1 1 Tf (.)Tj /T1_0 1 Tf -3.065 -1.84 Td (10.5)Tj /T1_1 1 Tf 3.065 0 Td [(See )-120(\324)37(\324Implementing )-120(Softwar)]TJ 0.3701 Tc 12.473 0 Td (eT)Tj 0 Tc 1.407 0 Td [(imers\325)37(\325)-370(by)-370(Don )-120(Libes )-120(\()]TJ /T1_2 1 Tf 0.3701 Tc (CU)Tj 0 Tc 11.989 0 Td [(sers )-120(Journal)]TJ /T1_1 1 Tf 0.3701 Tc (,v)Tj 0 Tc 6.111 0 Td [(ol. )-120(8, )-120(no.)]TJ -0.055 Tc -31.98 -1.2 Td (11)Tj 0.5312 Tc 0.945 0 Td (,N)Tj 0 Tc 1.612 0 Td (ov)Tj 0.5312 Tc 1 0 Td (.1)Tj 0 Tc 1.281 0 Td [(990\) )-281(for )-281(an )-281(example.)]TJ 0.5311 Tc 10.563 0 Td (Ac)Tj 0 Tc 1.753 0 Td [(opy )-281(of )-281(this )-281(paper )-281(is )-281(available )-281(online )-281(at)]TJ /TT1 1 Tf -17.154 -1.2 Td (http://www.kohala.com/start/libes.timers.txt)Tj /T1_1 1 Tf (.)Tj /T1_0 1 Tf -3.065 -1.84 Td (10.7)Tj /T1_1 1 Tf 3.065 0 Td [(If )-24(we )-24(simply )-24(called)]TJ /TT1 1 Tf 8.741 0 Td (_exit)Tj /T1_1 1 Tf 0.2741 Tc (,t)Tj 0 Tc 3.85 0 Td [(he )-24(termination )-24(status )-24(of )-24(the )-24(pr)18(ocess )-24(would )-24(not )-24(show)]TJ -12.591 -1.2 Td (that it was terminated by the)Tj /TT1 1 Tf 12.977 0 Td (SIGABRT)Tj /T1_1 1 Tf 4.45 0 Td (signal.)Tj /T1_0 1 Tf -20.492 -1.84 Td (10.8)Tj /T1_1 1 Tf 3.065 0 Td [(If )-50(the )-50(signal )-50(was )-50(sent )-50(by )-50(a )-50(pr)18(ocess )-50(owned )-50(by )-50(some )-50(other )-50(user)]TJ 0.3002 Tc 27.424 0 Td (,t)Tj 0 Tc 0.876 0 Td [(he )-50(pr)18(ocess )-50(has )-50(to)]TJ -28.301 -1.2 Td [(be )-27(set-user)18(-ID )-27(to )-27(either )-27(r)18(oot )-27(or )-27(to )-27(the )-27(owner )-27(of )-27(the )-27(r)18(eceiving )-27(pr)18(ocess, )-27(or )-27(the)]TJ /TT1 1 Tf 33.535 0 Td (kill)Tj /T1_1 1 Tf -33.535 -1.2 Td [(attempt )-133(won\325t )-133(work.)-632(Ther)18(efor)18(e, )-133(the )-133(r)18(eal )-133(user )-133(ID )-133(pr)18(ovides )-133(mor)]TJ 0.3827 Tc 28.544 0 Td (ei)Tj 0 Tc 1.153 0 Td [(nformation )-133(to)]TJ -29.696 -1.2 Td [(the r)18(eceiver of the signal.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47302 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.9)]TJ /TT0 1 Tf 30.886 0 Td (kill)Tj /T1_0 1 Tf 2.9 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (raise)Tj /T1_0 1 Tf 3.5 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (337)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -1.902 TD (int kill\(pid_t)Tj /T1_2 1 Tf 9 0 Td (pid)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.078 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (signo)Tj /TT0 1 Tf (\);)Tj -13.878 -1.902 Td (int raise\(int)Tj /T1_2 1 Tf 8.4 0 Td (signo)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 16.851 -1.902 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT1 1 Tf 9.213 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6024.25 cm 0 0 m 0 649 l 3900 649 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 588.8693 Tm (The call)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 572.1717 Tm (raise\(signo\);)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 554.1739 Tm (is equivalent to the call)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 537.4755 Tm (kill\(getpid\(\), signo\);)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 519.4777 Tm (Ther)Tj 0.25 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(f)]TJ 0 Tc 1.439 0 Td [(our dif)18(fer)18(ent conditions for the)]TJ /T1_2 1 Tf 13.891 0 Td (pid)Tj /T1_0 1 Tf 1.528 0 Td [(ar)18(gument to)]TJ /TT0 1 Tf 5.678 0 Td (kill)Tj /T1_0 1 Tf (.)Tj /T1_2 1 Tf -25.816 -2.16 Td (pid)Tj /TT0 1 Tf 1.778 0 Td (>)Tj /T1_0 1 Tf 2.915 Tc 1.1 0 Td (0T)Tj 0 Tc 4.028 0 Td [(he signal is sent to the pr)18(ocess whose pr)18(ocess ID is)]TJ /T1_2 1 Tf 22.521 0 Td (pid)Tj /T1_0 1 Tf (.)Tj /T1_2 1 Tf -29.427 -1.96 Td (pid)Tj /TT0 1 Tf 1.778 0 Td (==)Tj /T1_0 1 Tf 2.315 Tc 1.7 0 Td (0T)Tj 0 Tc 3.428 0 Td [(he )-209(signal )-209(is )-209(sent )-209(to )-209(all )-209(pr)18(ocesses )-209(whose )-209(pr)18(ocess )-209(gr)14(oup )-209(ID )-209(equals )-209(the)]TJ -0.613 -1.2 Td [(pr)18(ocess )-75(gr)18(oup )-75(ID )-75(of )-75(the )-75(sender )-75(and )-75(for )-75(which )-75(the )-75(sender )-75(has )-75(permission)]TJ 0 -1.2 TD [(to )-498(send )-498(the )-498(signal.)-998(Note )-498(that )-498(the )-498(term)]TJ /T1_2 1 Tf 20.867 0 Td [(all )-498(pr)18(ocesses)]TJ /T1_0 1 Tf 6.163 0 Td [(excludes )-498(an)]TJ -27.03 -1.2 Td [(implementation-de\336ned )-573(set )-573(of )-573(system )-573(pr)18(ocesses. )-823(For)-823(most )-573(UNIX)]TJ 0 -1.2 Td [(systems, )-163(this )-163(set )-163(of )-163(system )-163(pr)18(ocesses )-163(includes )-163(the )-163(kernel )-163(pr)18(ocesses )-163(and)]TJ /TT0 1 Tf T* (init)Tj /T1_0 1 Tf 2.65 0 Td (\(pid 1\).)Tj /T1_2 1 Tf -8.943 -1.96 Td (pid)Tj /TT0 1 Tf 1.778 0 Td (<)Tj /T1_0 1 Tf 2.915 Tc 1.1 0 Td (0T)Tj 0 Tc 4.028 0 Td [(he )-209(signal )-209(is )-209(sent )-209(to )-209(all )-209(pr)18(ocesses )-209(whose )-209(pr)18(ocess )-209(gr)18(oup )-209(ID )-209(equals )-209(the)]TJ -0.613 -1.2 Td [(absolute )-23(value )-23(of)]TJ /T1_2 1 Tf 7.859 0 Td (pid)Tj /T1_0 1 Tf 1.551 0 Td [(and )-24(for )-24(which )-24(the )-24(sender )-24(has )-24(permission )-24(to )-24(send )-24(the)]TJ -9.411 -1.2 Td [(signal. )-343(Again,)-342(the )-93(set )-93(of )-93(all )-93(pr)18(ocesses )-93(excludes )-93(certain )-93(system )-93(pr)20(ocesses,)]TJ 0 -1.2 Td [(as described earlier)74(.)]TJ /T1_2 1 Tf -6.293 -1.96 Td (pid)Tj /TT0 1 Tf 1.778 0 Td (==)Tj /TT1 1 Tf 1.7 0 Td (!)Tj /T1_0 1 Tf 1.766 Tc (1T)Tj 0 Tc 3.428 0 Td [(he )-52(signal )-52(is )-52(sent )-52(to )-52(all )-52(pr)18(ocesses )-52(on )-52(the )-52(system )-52(for )-52(which )-52(the )-52(sender )-52(has)]TJ -0.613 -1.2 Td [(permission )-162(to )-162(send )-162(the )-162(signal.)-662(As )-162(befor)18(e, )-162(the )-162(set )-162(of )-162(pr)17(ocesses )-162(excludes)]TJ T* [(certain system pr)18(ocesses.)]TJ -4.493 -2.16 Td [(As )-304(we\325ve )-304(mentioned, )-304(a )-304(pr)18(ocess )-304(needs )-304(permission )-304(to )-304(send )-304(a )-304(signal )-304(to )-304(another)]TJ -1.8 -1.2 Td [(pr)18(ocess. )-287(The)-287(super)8(user )-37(can )-37(send )-37(a )-37(signal )-37(to )-37(any )-37(pr)17(ocess. )-287(For)-287(other )-37(users, )-37(the )-37(basic )-37(r)8(ule)]TJ -0 -1.2 Td [(is )-19(that )-19(the )-19(r)18(eal )-19(or )-19(ef)18(fective )-19(user )-19(ID )-19(of )-19(the )-19(sender )-19(has )-19(to )-19(equal )-19(the )-19(r)21(eal )-19(or )-19(ef)18(fective )-19(user )-19(ID)]TJ T* [(of )-77(the )-77(r)17(eceiver)]TJ 0.5774 Tc 6.356 0 Td (.I)Tj 0.3274 Tc 1.164 0 Td (ft)Tj 0 Tc 0.986 0 Td [(he )-77(implementation )-77(supports)]TJ /TT0 1 Tf 13.023 0 Td (_POSIX_SAVED_IDS)Tj /T1_0 1 Tf 9.927 0 Td [(\(as )-77(POSIX.1 )-77(now)]TJ -0.018 Tc -31.457 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(es\), )-20(the )-20(saved )-20(set-user)18(-ID )-20(of )-20(the )-20(r)18(eceiver )-20(is )-20(checked )-20(instead )-20(of )-20(its )-20(ef)18(fective )-20(user )-20(ID.)]TJ -0.856 -1.2 Td [(One )-293(special )-293(case )-293(for )-293(the )-293(permission )-293(testing )-293(also )-293(exists: )-293(if )-293(the )-293(signal )-293(being )-293(sent )-293(is)]TJ /TT0 1 Tf T* (SIGCONT)Tj /T1_0 1 Tf 0.25 Tc (,ap)Tj -0.018 Tc 6.051 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess can send it to any other pr)18(ocess in the same session.)]TJ -5.174 -1.2 Td [(POSIX.1 )-52(de\336nes )-52(signal )-52(number )-52(0 )-52(as )-52(the )-52(null )-52(signal.)-552(If )-52(the)]TJ /T1_2 1 Tf 26.086 0 Td (signo)Tj /T1_0 1 Tf 2.469 0 Td [(ar)18(gument )-52(is )-52(0, )-52(then)]TJ -30.355 -1.2 Td [(the )-6(normal )-6(err)18(or )-6(checking )-6(is )-6(performed )-6(by)]TJ /TT0 1 Tf 19.049 0 Td (kill)Tj /T1_0 1 Tf 0.2562 Tc (,b)Tj 0 Tc 3.459 0 Td [(ut )-6(no )-6(signal )-6(is )-6(sent.)-506(This )-6(technique )-6(is)]TJ -22.509 -1.2 Td [(often )-63(used )-63(to )-63(determine )-63(if )-63(a )-63(speci\336c )-63(pr)18(ocess )-63(still )-63(exists.)-567(If )-63(we )-63(send )-63(the )-63(pr)18(ocess )-63(the )-63(null)]TJ T* [(signal )-206(and )-206(it )-206(doesn\325t )-206(exist,)]TJ /TT0 1 Tf 12.766 0 Td (kill)Tj /T1_0 1 Tf -0.018 Tc 2.856 0 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj /TT1 1 Tf 2.786 0 Td (!)Tj /T1_0 1 Tf 0.456 Tc (1a)Tj 0 Tc 2.005 0 Td (nd)Tj /TT0 1 Tf 1.649 0 Td (errno)Tj /T1_0 1 Tf 3.456 0 Td [(is )-206(set )-206(to)]TJ /TT0 1 Tf 4.184 0 Td (ESRCH)Tj /T1_0 1 Tf 0.706 Tc (.B)Tj 0.456 Tc 4.567 0 Td (ea)Tj 0 Tc 1.435 0 Td [(war)18(e,)]TJ -36.56 -1.2 Td (however)Tj 0.4546 Tc 3.806 0 Td (,t)Tj 0 Tc 1.031 0 Td [(hat )-205(UNIX )-205(systems )-205(r)18(ecycle )-205(pr)18(ocess )-205(IDs )-205(after )-205(some )-205(amount )-205(of )-205(time, )-205(so )-205(the)]TJ -4.837 -1.2 Td [(existence )-125(of )-125(a )-125(pr)18(ocess )-125(with )-125(a )-125(given )-125(pr)18(ocess )-125(ID )-125(does )-125(not )-125(necessarily )-125(mean )-125(that )-125(it\325s )-125(the)]TJ T* [(pr)18(ocess that you think it is.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47303 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (288)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Relationships)]TJ 39.241 0 Td [(Chapter )-250(9)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.018 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm (re)Tj 0 Tc 0.856 0 Td [(sult )-283(to )-283(the)]TJ /TT0 1 Tf 5.503 0 Td (pw_passwd)Tj /T1_1 1 Tf 5.933 0 Td [(\336eld )-283(fr)18(om )-283(our )-283(shadow )-283(passwor)]TJ 0.5333 Tc 15.005 0 Td (d\336)Tj 0 Tc 1.749 0 Td [(le )-283(entry)]TJ 0.7833 Tc 3.53 0 Td (.I)Tj 0.5333 Tc 1.37 0 Td (ft)Tj 0 Tc 1.192 0 Td [(he )-283(login)]TJ -35.14 -1.2 Td [(attempt )-67(fails )-67(because )-67(of )-67(an )-67(invalid )-67(passwor)]TJ 0.3169 Tc 19.461 0 Td (d\()Tj 0 Tc 1.261 0 Td [(after )-67(a )-67(few )-67(tries\),)]TJ /TT0 1 Tf 7.944 0 Td (login)Tj /T1_1 1 Tf 3.317 0 Td (calls)Tj /TT0 1 Tf 2.267 0 Td (exit)Tj /T1_1 1 Tf 2.717 0 Td (with)Tj -36.967 -1.2 Td [(an )-47(ar)18(gument )-47(of )-47(1.)-547(This )-47(termination )-47(will )-47(be )-47(noticed )-47(by )-47(the )-47(par)18(ent )-47(\()]TJ /TT0 1 Tf 29.655 0 Td (init)Tj /T1_1 1 Tf [(\), )-47(and )-47(it )-47(will )-47(do)]TJ -29.655 -1.2 Td (another)Tj /TT0 1 Tf 3.69 0 Td (fork)Tj /T1_1 1 Tf 2.68 0 Td [(followed )-30(by )-30(an)]TJ /TT0 1 Tf 6.963 0 Td (exec)Tj /T1_1 1 Tf 2.68 0 Td (of)Tj /TT0 1 Tf 1.159 0 Td (getty)Tj /T1_1 1 Tf 0.2803 Tc (,s)Tj 0 Tc 3.954 0 Td [(tarting )-30(the )-30(pr)17(ocedur)]TJ 0.2803 Tc 8.962 0 Td (eo)Tj 0 Tc 1.305 0 Td [(ver )-30(again )-30(for )-30(this)]TJ -31.394 -1.2 Td (terminal.)Tj 1.8 -1.2 Td [(This )-170(is )-170(the )-170(traditional )-170(authentication )-170(pr)18(ocedur)]TJ 0.4201 Tc 21.187 0 Td (eu)Tj 0 Tc 1.502 0 Td [(sed )-170(on )-170(UNIX )-170(systems.)-670(Modern)]TJ -24.49 -1.2 Td [(UNIX )-106(systems, )-106(however)]TJ 0.3557 Tc 10.896 0 Td (,h)Tj 0 Tc 1.188 0 Td [(ave )-106(evolved )-106(to )-106(support )-106(multiple )-106(authentication )-106(pr)20(ocedur)18(es.)]TJ -12.084 -1.2 Td [(For )-32(example, )-32(Fr)18(eeBSD, )-32(Linux, )-32(Mac )-32(OS )-32(X, )-32(and )-32(Solaris )-32(all )-32(support )-32(a )-32(mor)]TJ 0.2819 Tc 31.45 0 Td (e\337)Tj 0 Tc 1.369 0 Td [(exible )-32(scheme)]TJ -32.819 -1.2 Td [(known )-94(as )-94(P)92(AM )-94(\(Pluggable )-94(Authentication )-94(Modules\).)]TJ -0.092 Tc 24.478 0 Td (PA)Tj 0.3439 Tc 1.29 0 Td (Ma)Tj 0 Tc 1.79 0 Td [(llows )-94(an )-94(administrator )-94(to)]TJ -27.558 -1.2 Td (con\336gur)Tj 0.376 Tc 3.713 0 Td (et)Tj 0 Tc 1.181 0 Td [(he )-126(authentication )-126(methods )-126(to )-126(be )-126(used )-126(to )-126(access )-126(services )-126(that )-126(ar)]TJ 0.376 Tc 28.77 0 Td (ew)Tj 0 Tc 1.689 0 Td [(ritten )-126(to)]TJ -35.353 -1.2 Td [(use the P)92(AM library)111(.)]TJ 1.8 -1.2 Td [(If )-205(our )-205(application )-205(needs )-205(to )-205(verify )-205(that )-205(a )-205(user )-205(has )-205(the )-205(appr)18(opriate )-205(permission )-205(to)]TJ -1.8 -1.2 Td [(perform )-431(a )-431(task, )-431(we )-431(can )-431(either )-431(har)]TJ 0.6815 Tc 17.127 0 Td (dc)Tj 0 Tc 1.736 0 Td [(ode )-431(the )-431(authentication )-431(mechanism )-431(in )-431(the)]TJ -18.863 -1.2 Td [(application )-366(or )-366(use )-366(the )-366(P)93(AM )-366(library )-366(to )-366(give )-366(us )-366(the )-366(equivalent )-366(functionality)]TJ 0.8657 Tc 36.21 0 Td (.T)Tj 0 Tc 1.729 0 Td (he)Tj -37.939 -1.2 Td [(advantage )-402(to )-402(using )-402(P)91(AM )-402(is )-402(that )-402(administrators )-402(can )-402(con\336gur)]TJ 0.6525 Tc 29.585 0 Td (ed)Tj 0 Tc 1.742 0 Td [(if)18(fer)18(ent )-402(ways )-402(to)]TJ -31.327 -1.2 Td [(authenticate users for dif)18(fer)18(ent tasks, based on the local site policies.)]TJ 1.8 -1.2 Td [(If we log in corr)18(ectly)111(,)]TJ /TT0 1 Tf 9.496 0 Td (login)Tj /T1_1 1 Tf 3.25 0 Td (will)Tj 0.883 Tc -12.746 -1.92 Td (\245C)Tj 0 Tc 2.198 0 Td [(hange to our home dir)18(ectory \()]TJ /TT0 1 Tf (chdir)Tj /T1_1 1 Tf (\))Tj 0.883 Tc -2.198 -1.6 Td (\245C)Tj 0 Tc 2.198 0 Td (hange the ownership of our terminal device \()Tj /TT0 1 Tf (chown)Tj /T1_1 1 Tf [(\))-250(so)-250(we)-250(own it)]TJ 0.883 Tc -2.198 -1.6 Td (\245C)Tj 0 Tc 2.198 0 Td [(hange )-19(the )-19(access )-19(permissions )-19(for )-19(our )-19(terminal )-19(device )-19(so )-19(we )-19(have )-19(permission )-19(to)]TJ -0.018 Tc -0.709 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ad fr)18(om and write to it)]TJ 0.883 Tc -2.345 -1.6 Td (\245S)Tj 0 Tc 2.014 0 Td [(et our gr)18(oup IDs by calling)]TJ /TT0 1 Tf 12.131 0 Td (setgid)Tj /T1_1 1 Tf 3.85 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (initgroups)Tj /T1_1 1 Tf 0.883 Tc -19.938 -1.6 Td (\245I)Tj 0 Tc 1.826 0 Td [(nitialize )-154(the )-154(envir)18(onment )-154(with )-154(all )-154(the )-154(information )-154(that)]TJ /TT0 1 Tf 25.372 0 Td (login)Tj /T1_1 1 Tf 3.404 0 Td [(has: )-154(our )-154(home)]TJ -29.113 -1.2 Td [(dir)18(ectory )-68(\()]TJ /TT0 1 Tf (HOME)Tj /T1_1 1 Tf [(\), )-68(shell )-68(\()]TJ /TT0 1 Tf (SHELL)Tj /T1_1 1 Tf [(\), )-68(user )-68(name )-68(\()]TJ /TT0 1 Tf (USER)Tj /T1_1 1 Tf 22.627 0 Td (and)Tj /TT0 1 Tf 2.011 0 Td (LOGNAME)Tj /T1_1 1 Tf [(\), )-68(and )-68(a )-68(default)]TJ -24.638 -1.2 Td (path \()Tj /TT0 1 Tf (PATH)Tj /T1_1 1 Tf (\))Tj 0.883 Tc -1.489 -1.6 Td (\245C)Tj 0 Tc 2.198 0 Td (hange to our user ID \()Tj /TT0 1 Tf (setuid)Tj /T1_1 1 Tf 0.25 Tc (\)a)Tj 0 Tc 14.393 0 Td (nd invoke our login shell, as in)Tj /TT0 1 Tf 8.9995 0 0 8.9995 180.4812 325.0805 Tm (execl\("/bin/sh", "-sh", \(char *\)0\);)Tj /T1_1 1 Tf 7.9995 0 0 7.9995 183.5911 305.0817 Tm [(The )-2(minus )-2(sign )-2(as )-2(the )-2(\336rst )-2(character )-2(of)]TJ /TT0 1 Tf 17.333 0 Td (argv[0])Tj /T1_1 1 Tf 4.452 0 Td [(is )-2(a )-2(\337ag )-2(to )-2(all )-2(the )-2(shells )-2(that )-2(indicates )-2(they )-2(ar)16(e)]TJ -21.785 -1.25 Td [(being )-63(invoked )-63(as )-63(a )-63(login )-63(shell.)-563(The )-63(shells )-63(can )-63(look )-63(at )-63(this )-63(character )-63(and )-63(modify )-63(their )-63(start-up)]TJ 0 -1.25 TD [(accor)18(dingly)111(.)]TJ 9.9994 0 0 9.9994 147.5932 267.084 Tm (The)Tj /TT0 1 Tf 2.156 0 Td (login)Tj /T1_1 1 Tf 3.482 0 Td [(pr)18(ogram )-232(r)18(eally )-232(does )-232(mor)]TJ 0.4825 Tc 11.665 0 Td (et)Tj 0 Tc 1.288 0 Td [(han )-232(we\325ve )-232(described )-232(her)17(e. )-482(It)-483(optionally)]TJ -20.392 -1.2 Td [(prints )-138(the )-138(message-of-the-day )-138(\336le, )-138(checks )-138(for )-138(new )-138(mail, )-138(and )-138(performs )-138(other )-138(tasks.)-635(In)]TJ 0 -1.2 TD (this chapter)Tj 0.25 Tc 5.126 0 Td (,w)Tj 0 Tc 1.334 0 Td (e\325r)Tj 0.25 Tc 1.134 0 Td (ei)Tj 0 Tc 1.02 0 Td [(nter)18(ested only in the featur)18(es that we\325ve described.)]TJ -6.814 -1.2 Td [(Recall )-149(fr)18(om )-149(our )-149(discussion )-149(of )-149(the)]TJ /TT0 1 Tf 15.655 0 Td (setuid)Tj /T1_1 1 Tf 3.999 0 Td [(function )-149(in )-149(Section )-149(8.1)]TJ 0.3989 Tc 10.165 0 Td (1t)Tj 0 Tc 1.225 0 Td [(hat )-149(since )-149(it )-149(is)]TJ -32.843 -1.2 Td [(called )-204(by )-204(a )-204(super)8(user )-204(pr)16(ocess,)]TJ /TT0 1 Tf 14.437 0 Td (setuid)Tj /T1_1 1 Tf 4.054 0 Td [(changes )-204(all )-204(thr)17(ee )-204(user )-204(IDs: )-204(the )-204(r)18(eal )-204(user )-204(ID,)]TJ -18.491 -1.2 Td [(ef)18(fective )-110(user )-110(ID, )-110(and )-110(saved )-110(set-user)17(-ID. )-360(The)-361(call )-110(to)]TJ /TT0 1 Tf 23.949 0 Td (setgid)Tj /T1_1 1 Tf 3.96 0 Td [(that )-110(was )-110(done )-110(earlier )-110(by)]TJ /TT0 1 Tf -27.909 -1.2 Td (login)Tj /T1_1 1 Tf 3.25 0 Td [(has the same ef)18(fect on all thr)18(ee gr)18(oup IDs.)]TJ -1.45 -1.2 Td [(At )-76(this )-76(point, )-76(our )-76(login )-76(shell )-76(is )-76(r)8(unning. )-326(Its)-326(par)18(ent )-76(pr)18(ocess )-76(ID )-76(is )-76(the )-76(original)]TJ /TT0 1 Tf 34.8 0 Td (init)Tj /T1_1 1 Tf -36.6 -1.2 Td [(pr)18(ocess )-68(\(pr)18(ocess )-68(ID )-68(1\), )-68(so )-68(when )-68(our )-68(login )-68(shell )-68(terminates,)]TJ /TT0 1 Tf 26.559 0 Td (init)Tj /T1_1 1 Tf 2.718 0 Td [(is )-68(noti\336ed )-68(\(it )-68(is )-68(sent )-68(a)]TJ /TT0 1 Tf -29.277 -1.2 Td (SIGCHLD)Tj /T1_1 1 Tf 4.608 0 Td [(signal\) )-158(and )-158(it )-158(starts )-158(the )-158(whole )-158(pr)16(ocedur)]TJ 0.4082 Tc 18.289 0 Td (eo)Tj 0 Tc 1.433 0 Td [(ver )-158(again )-158(for )-158(this )-158(terminal.)-659(File)]TJ -24.33 -1.2 Td [(descriptors )-5(0, )-5(1, )-5(and )-5(2 )-5(for )-5(our )-5(login )-5(shell )-5(ar)]TJ 0.2552 Tc 18.954 0 Td (es)Tj 0 Tc 1.158 0 Td [(et )-5(to )-5(the )-5(terminal )-5(device.)-506(Figur)]TJ 0.2552 Tc 13.839 0 Td (e9)Tj 0 Tc 1.234 0 Td [(.3 )-5(shows)]TJ -35.185 -1.2 Td (this arrangement.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47304 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (286)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Relationships)]TJ 39.241 0 Td [(Chapter )-250(9)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(common )-90(devices )-90(on )-90(PDP)]TJ 11.308 0.09 Td (-)Tj -0.055 Tc 0.333 -0.09 Td (11)Tj 0.3403 Tc 0.945 0 Td (sw)Tj 0 Tc 1.598 0 Td (er)Tj 0.3403 Tc 0.856 0 Td (eD)Tj 0 Tc 1.593 0 Td (H)Tj 0.832 0.09 Td (-)Tj -0.055 Tc 0.333 -0.09 Td (11)Tj 0.3403 Tc 0.945 0 Td (sa)Tj 0 Tc 1.264 0 Td [(nd )-90(DZ)]TJ 2.974 0.09 Td (-)Tj -0.055 Tc 0.333 -0.09 Td (11)Tj 0 Tc 0.945 0 Td [(s. )-340(A)-341(host )-90(had )-90(a )-90(\336xed )-90(number )-90(of)]TJ -24.26 -1.2 Td [(these )-458(terminal )-458(devices, )-458(so )-458(ther)]TJ 0.7076 Tc 15.145 0 Td (ew)Tj 0 Tc 2.021 0 Td [(as )-458(a )-458(known )-458(upper )-458(limit )-458(on )-458(the )-458(number )-458(of)]TJ -17.165 -1.2 Td (simultaneous logins.)Tj 1.8 -1.2 Td [(As )-306(bitmapped )-306(graphical )-306(terminals )-306(became )-306(available, )-306(windowing )-306(systems )-306(wer)14(e)]TJ -1.8 -1.2 Td [(developed )-509(to )-509(pr)18(ovide )-509(users )-509(with )-509(new )-509(ways )-509(to )-509(interact )-509(with )-509(host )-509(computers.)]TJ 0 -1.2 TD [(Applications )-53(wer)]TJ 0.3033 Tc 7.668 0 Td (ed)Tj 0 Tc 1.393 0 Td [(eveloped )-53(to )-53(cr)18(eate )-53(\324)37(\324terminal )-53(windows\325)36(\325)-303(to)-303(e)-1(mulate )-53(character)18(-based)]TJ -9.062 -1.2 Td [(terminals, )-248(allowing )-248(users )-248(to )-248(interact )-248(with )-248(hosts )-248(in )-248(familiar )-248(ways )-248(\(i.e., )-248(via )-248(the )-248(shell)]TJ T* (command line\).)Tj -0.092 Tc 1.8 -1.2 Td (To)Tj 0 Tc 1.067 0 Td (day)Tj 0.4527 Tc 1.556 0 Td (,s)Tj 0 Tc 1.127 0 Td [(ome )-203(platforms )-203(allow )-203(you )-203(to )-203(start )-203(a )-203(windowing )-203(system )-203(after )-203(logging )-203(in,)]TJ -5.55 -1.2 Td [(wher)18(eas )-230(other )-230(platforms )-230(automatically )-230(start )-230(the )-230(windowing )-230(system )-230(for )-230(you.)-730(In )-230(the)]TJ T* [(latter )-77(case, )-77(you )-77(might )-77(still )-77(have )-77(to )-77(log )-77(in, )-77(depending )-77(on )-77(how )-77(the )-77(windowing )-77(system )-77(is)]TJ T* [(con\336gur)18(ed \(some windowing systems can be con\336gur)18(ed to log you in automatically\).)]TJ 1.8 -1.2 Td [(The )-145(pr)18(ocedur)]TJ 0.3951 Tc 6.107 0 Td (et)Tj 0 Tc 1.2 0 Td [(hat )-145(we )-145(now )-145(describe )-145(is )-145(used )-145(to )-145(log )-145(in )-145(to )-145(a )-145(UNIX )-145(system )-145(using )-145(a)]TJ -9.107 -1.2 Td [(terminal. )-331(The)-331(pr)18(ocedur)18(e)-331(is)-331(similar )-81(r)18(egar)18(dless )-81(of )-81(the )-81(type )-81(of )-81(terminal )-81(we )-81(use)]TJ 0.0833 Tc 34.474 0 Td (\321i)Tj 0.331 Tc 1.374 0 Td (tc)Tj 0 Tc 1.101 0 Td (ould)Tj -36.949 -1.2 Td [(be )-69(a )-69(character)18(-based )-69(terminal, )-69(a )-69(graphical )-69(terminal )-69(emulating )-69(a )-69(simple )-69(character)18(-based)]TJ T* [(terminal, or a graphical terminal r)8(unning a windowing system.)]TJ /TT0 1 Tf -3.6 -2.4 Td [(BSD T)60(erminal Logins)]TJ /T1_1 1 Tf 3.6 -2.4 Td [(The )-101(BSD )-101(terminal )-101(login )-101(pr)20(ocedur)]TJ 0.3506 Tc 15.037 0 Td (eh)Tj 0 Tc 1.412 0 Td [(as )-101(not )-101(changed )-101(much )-101(over )-101(the )-101(past )-101(35 )-101(years.)-598(The)]TJ -16.449 -1.2 Td [(system )-88(administrator )-88(cr)18(eates )-88(a )-88(\336le, )-88(usually)]TJ /TT1 1 Tf 19.611 0 Td (/etc/ttys)Tj /T1_1 1 Tf 0.3378 Tc (,t)Tj 0 Tc 6.314 0 Td [(hat )-88(has )-88(one )-88(line )-88(per )-88(terminal)]TJ -25.925 -1.2 Td [(device. )-286(Each)-286(line )-36(speci\336es )-36(the )-36(name )-36(of )-36(the )-36(device )-36(and )-36(other )-36(parameters )-36(that )-36(ar)]TJ 0.2862 Tc 35.195 0 Td (ep)Tj 0 Tc 1.366 0 Td (assed)Tj -36.562 -1.2 Td [(to )-134(the)]TJ /TT1 1 Tf 3.027 0 Td (getty)Tj /T1_1 1 Tf 3.384 0 Td [(pr)18(ogram. )-384(One)-384(parameter )-134(is )-134(the )-134(baud )-134(rate )-134(of )-134(the )-134(terminal, )-134(for )-134(example.)]TJ -6.41 -1.2 Td [(When )-9(the )-9(system )-9(is )-9(bootstrapped, )-9(the )-9(kernel )-9(cr)18(eates )-9(pr)18(ocess )-9(ID )-9(1, )-9(the)]TJ /TT1 1 Tf 30.844 0 Td (init)Tj /T1_1 1 Tf 2.659 0 Td [(pr)18(ocess, )-9(and)]TJ -33.503 -1.2 Td [(it )-21(is)]TJ /TT1 1 Tf 1.875 0 Td (init)Tj /T1_1 1 Tf 2.671 0 Td [(that )-21(brings )-21(the )-21(system )-21(up )-21(in )-21(multiuser )-21(mode.)-523(The)]TJ /TT1 1 Tf 22.521 0 Td (init)Tj /T1_1 1 Tf 2.671 0 Td [(pr)18(ocess )-21(r)18(eads )-21(the )-21(\336le)]TJ /TT1 1 Tf -29.738 -1.2 Td (/etc/ttys)Tj /T1_1 1 Tf 5.661 0 Td [(and, )-11(for )-11(every )-11(terminal )-11(device )-11(that )-11(allows )-11(a )-11(login, )-11(does )-11(a)]TJ /TT1 1 Tf 25.376 0 Td (fork)Tj /T1_1 1 Tf 2.661 0 Td [(followed )-11(by)]TJ -33.699 -1.2 Td (an)Tj /TT1 1 Tf 1.332 0 Td (exec)Tj /T1_1 1 Tf 2.65 0 Td [(of the pr)18(ogram)]TJ /TT1 1 Tf 6.874 0 Td (getty)Tj /T1_1 1 Tf 0.5 Tc (.T)Tj 0 Tc 4.363 0 Td [(his gives us the pr)18(ocesses shown in Figur)]TJ 0.25 Tc 18.198 0 Td (e9)Tj 0 Tc 1.229 0 Td (.1.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2836.32 2474 432 216 re S Q BT /TT1 1 Tf 7.999 0 0 7.999 295.5965 256.4092 Tm (init)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2836.32 3122 432 216 re S Q BT /TT1 1 Tf 7.9986 0 0 7.9986 295.5788 321.1822 Tm (init)Tj /T1_2 1 Tf -1.3 1.975 Td [(pr)18(ocess ID 1)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2836.32 2042 432 216 re S Q BT /TT1 1 Tf 7.9981 0 0 7.9981 293.1616 213.1888 Tm (getty)Tj ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 305.232 269 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 3052.3201 2690 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3052.25 3122.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3052.25 3057.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3052.25 2992.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3052.25 2927.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3052.25 2863.25 cm 0 0 m 0 -36 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3052.25 2798.25 cm 0 0 m 0 -36 l S Q Q BT /TT1 1 Tf 7.9976 0 0 7.9976 309.939 288.7534 Tm (fork)Tj ET q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 272.832 297.8 cm 0 0 m 4.968 5.472 l 6.984 2.448 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 2728.3201 2978 cm 0 0 m 49.68 54.72 l 69.84 24.48 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2944.25 3122.25 cm 0 0 m -30 -20 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2881.25 3080.25 cm 0 0 m -31 -20 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2818.25 3038.25 cm 0 0 m -30 -21 l S Q Q q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 337.632 297.8 cm 0 0 m -6.984 2.52 l -4.968 5.544 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3376.3201 2978 cm 0 0 m -69.84 25.2 l -49.68 55.44 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3160.25 3122.25 cm 0 0 m 30 -20 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3223.25 3080.25 cm 0 0 m 31 -20 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3286.25 3038.25 cm 0 0 m 30 -21 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3524.6399 3076.6399 cm 0 0 m 0 24.65 -19.99 44.64 -44.64 44.64 c S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3524.25 3076.25 cm 0 0 m 0 -148 l 23 -170 l 1 -193 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3524.25 2883.25 cm 0 0 m 0 -148 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3480 2690 cm 0 0 m 24.65 0 44.64 19.99 44.64 44.64 c S Q Q BT /TT1 1 Tf 7.9966 0 0 7.9966 356.6182 293.7166 Tm (fork)Tj /T1_1 1 Tf 0.25 Tc (so)Tj 0 Tc 3.62 0 Td (nce)Tj -3.62 -1.25 Td (per terminal)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3524.6399 2428.6399 cm 0 0 m 0 24.65 -19.99 44.64 -44.64 44.64 c S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3524.25 2428.25 cm 0 0 m 0 -40 l 23 -62 l 1 -85 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3524.25 2343.25 cm 0 0 m 0 -40 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3480 2258 cm 0 0 m 24.65 0 44.64 19.99 44.64 44.64 c S Q Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 356.5968 239.7249 Tm (each child)Tj /TT1 1 Tf 0 -1.25 TD (exec)Tj /T1_1 1 Tf (s)Tj /TT1 1 Tf 3.074 0 Td (getty)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 305.232 225.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3052.3201 2258 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3052.25 2474.25 cm 0 0 m 0 -144 l S Q Q BT /TT1 1 Tf 7.9957 0 0 7.9957 309.8646 234.7132 Tm (exec)Tj /T1_0 1 Tf -12.207 -6.605 Td (Figure 9.1)Tj /T1_1 1 Tf 5.195 0 Td [(Pr)18(ocesses invoked by)]TJ /TT1 1 Tf 9.69 0 Td (init)Tj /T1_1 1 Tf 2.65 0 Td (to allow terminal logins)Tj 9.9946 0 0 9.9946 129.5302 157.9145 Tm [(All )-16(the )-16(pr)18(ocesses )-16(shown )-16(in )-16(Figur)]TJ 0.2664 Tc 14.501 0 Td (e9)Tj 0 Tc 1.245 0 Td [(.1 )-16(have )-16(a )-16(r)18(eal )-16(user )-16(ID )-16(of )-16(0 )-16(and )-16(an )-16(ef)14(fective )-16(user )-16(ID )-16(of)]TJ 0.4273 Tc -15.746 -1.2 Td (0\()Tj 0 Tc 1.26 0 Td [(i.e., )-177(they )-177(all )-177(have )-177(super)8(user )-177(privileges\).)-679(The)]TJ /TT1 1 Tf 20.936 0 Td (init)Tj /T1_1 1 Tf 2.827 0 Td [(pr)18(ocess )-177(also)]TJ /TT1 1 Tf 5.911 0 Td (exec)Tj /T1_1 1 Tf 0.4273 Tc (st)Tj 0 Tc 3.577 0 Td (he)Tj /TT1 1 Tf 1.488 0 Td (getty)Tj /T1_1 1 Tf -36 -1.2 Td [(pr)18(ogram with an empty envir)18(onment.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47305 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (256)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(In )-57(general, )-57(we )-57(try )-57(to )-57(use )-57(the)]TJ /T1_2 1 Tf 12.956 0 Td (least-privilege)Tj /T1_1 1 Tf 5.974 0 Td [(model )-57(when )-57(we )-57(design )-57(our )-57(applications.)]TJ -20.73 -1.2 Td [(Accor)18(ding )-243(to )-243(this )-243(model, )-243(our )-243(pr)18(ograms )-243(should )-243(use )-243(the )-243(least )-243(privilege )-243(necessary )-243(to)]TJ 0 -1.2 TD [(accomplish )-99(any )-99(given )-99(task.)-599(This )-99(r)18(educes )-99(the )-99(risk )-99(that )-99(security )-99(might )-99(be )-99(compr)16(omised)]TJ T* [(by )-387(a )-387(malicious )-387(user )-387(trying )-387(to )-387(trick )-387(our )-387(pr)17(ograms )-387(into )-387(using )-387(their )-387(privileges )-387(in)]TJ T* (unintended ways.)Tj -0.092 Tc 1.8 -1.2 Td [(We )-478(c)]TJ 0 Tc 2.375 0 Td [(an )-294(set )-294(the )-294(r)18(eal )-294(user )-294(ID )-294(and )-294(ef)18(fective )-294(user )-294(ID )-294(with )-294(the)]TJ /TT0 1 Tf 26.724 0 Td (setuid)Tj /T1_1 1 Tf 4.144 0 Td (function.)Tj -35.043 -1.2 Td [(Similarly)111(,)-422(we)-422(c)-1(an )-172(set )-172(the )-172(r)18(eal )-172(gr)18(oup )-172(ID )-172(and )-172(the )-172(ef)14(fective )-172(gr)18(oup )-172(ID )-172(with )-172(the)]TJ /TT0 1 Tf 35.4 0 Td (setgid)Tj /T1_1 1 Tf -35.4 -1.2 Td (function.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 565.866 Tm (#include )Tj 0 -1.783 TD (int setuid\(uid_t)Tj /T1_2 1 Tf 10.2 0 Td (uid)Tj /TT0 1 Tf (\);)Tj -10.2 -1.783 Td (int setgid\(gid_t)Tj /T1_2 1 Tf 10.2 0 Td (gid)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 15.051 -1.783 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT1 1 Tf 9.213 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5132.25 cm 0 0 m 0 617 l 3900 617 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 497.2903 Tm (Ther)Tj 0.3715 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.351 0 Td [(re )-158(r)]TJ 0 Tc 1.614 0 Td [(ules )-121(for )-121(who )-121(can )-121(change )-121(the )-121(IDs.)-625(Let\325s )-122(consider )-122(only )-122(the )-122(user )-122(ID )-122(for )-122(now)95(.)]TJ -5.016 -1.2 Td [(\(Everything we describe for the user ID also applies to the gr)18(oup ID.\))]TJ 1.8 -2.04 Td [(1. )-633(If)-367(the )-117(pr)18(ocess )-117(has )-117(super)8(user )-117(privileges, )-117(the)]TJ /TT0 1 Tf 21.468 0 Td (setuid)Tj /T1_1 1 Tf 3.967 0 Td [(function )-117(sets )-117(the )-117(r)18(eal )-117(user)]TJ -23.802 -1.2 Td [(ID, ef)18(fective user ID, and saved set-user)18(-ID to)]TJ /T1_2 1 Tf 20.367 0 Td (uid)Tj /T1_1 1 Tf (.)Tj -22 -1.6 Td [(2. )-633(If)-331(the )-81(pr)18(ocess )-81(does )-81(not )-81(have )-81(super)8(user )-81(privileges, )-81(but)]TJ /T1_2 1 Tf 26.1 0 Td (uid)Tj /T1_1 1 Tf 1.665 0 Td [(equals )-81(either )-81(the )-81(r)19(eal)]TJ -26.132 -1.2 Td [(user )-87(ID )-87(or )-87(the )-87(saved )-87(set-user)19(-ID,)]TJ /TT0 1 Tf 15.079 0 Td (setuid)Tj /T1_1 1 Tf 3.937 0 Td [(sets )-87(only )-87(the )-87(ef)18(fective )-87(user )-87(ID )-87(to)]TJ /T1_2 1 Tf 14.967 0 Td (uid)Tj /T1_1 1 Tf (.)Tj -33.983 -1.2 Td [(The r)18(eal user ID and the saved set-user)18(-ID ar)]TJ 0.25 Tc 19.758 0 Td (en)Tj 0 Tc 1.311 0 Td (ot changed.)Tj -22.702 -1.6 Td [(3. )-633(If)-481(neither )-231(of )-231(these )-231(two )-231(conditions )-231(is )-231(tr)9(ue,)]TJ /TT0 1 Tf 21.561 0 Td (errno)Tj /T1_1 1 Tf 3.481 0 Td [(is )-231(set )-231(to)]TJ /TT0 1 Tf 4.258 0 Td (EPERM)Tj /T1_1 1 Tf 3.481 0 Td (and)Tj /TT1 1 Tf 2.174 0 Td (!)Tj /T1_1 1 Tf 0.4808 Tc (1i)Tj 0 Tc 1.821 0 Td (s)Tj -0.018 Tc -35.143 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (turned.)Tj -4.289 -2.04 Td [(Her)18(e, )-57(we )-57(ar)]TJ 0.3071 Tc 5.221 0 Td (ea)Tj 0 Tc 1.286 0 Td [(ssuming )-57(that)]TJ /TT0 1 Tf 6.111 0 Td (_POSIX_SAVED_IDS)Tj /T1_1 1 Tf 9.907 0 Td [(is )-57(tr)8(ue. )-307(If)-307(this )-57(featur)]TJ 0.307 Tc 9.149 0 Td (ei)Tj 0 Tc 1.077 0 Td [(sn\325t )-57(pr)18(ovided,)]TJ -32.752 -1.2 Td [(then delete all pr)18(eceding r)18(efer)18(ences to the saved set-user)18(-ID.)]TJ 7.999 0 0 7.999 183.5775 332.5101 Tm [(The )-51(saved )-51(IDs )-51(ar)]TJ 0.3009 Tc 7.568 0 Td (eam)Tj 0 Tc 2.464 0 Td [(andatory )-51(featur)18(e)-301(in)-301(the )-51(2001 )-51(version )-51(of )-51(POSIX.1.)-551(They )-51(wer)]TJ 0.301 Tc 26.332 0 Td (eo)Tj 0 Tc 1.326 0 Td [(ptional )-51(in)]TJ -37.689 -1.25 Td [(older )-369(versions )-369(of )-369(POSIX.)]TJ -0.092 Tc 12.804 0 Td [(To )-554(s)]TJ 0 Tc 2.11 0 Td [(ee )-369(whether )-369(an )-369(implementation )-369(supports )-369(this )-369(featur)18(e, )-369(an)]TJ -14.915 -1.25 Td [(application )-162(can )-162(test )-162(for )-162(the )-162(constant)]TJ /TT0 1 Tf 16.919 0 Td (_POSIX_SAVED_IDS)Tj /T1_1 1 Tf 10.012 0 Td [(at )-162(compile )-162(time )-162(or )-162(call)]TJ /TT0 1 Tf 10.869 0 Td (sysconf)Tj /T1_1 1 Tf -37.8 -1.25 Td (with the)Tj /TT0 1 Tf 3.92 0 Td (_SC_SAVED_IDS)Tj /T1_1 1 Tf 8.05 0 Td [(ar)18(gument at r)8(untime.)]TJ -0.092 Tc 9.9988 0 0 9.9988 147.5822 282.5161 Tm [(We )-184(c)]TJ 0 Tc 2.081 0 Td [(an make a few statements about the thr)18(ee user IDs that the kernel maintains.)]TJ -2.081 -2.04 Td [(1. )-633(Only)]TJ 0.3523 Tc 4.2 0 Td (as)Tj 0 Tc 1.276 0 Td [(uper)8(user )-102(pr)18(ocess )-102(can )-102(change )-102(the )-102(r)18(eal )-102(user )-102(ID.)-604(Normally)]TJ 0.3523 Tc 25.481 0 Td (,t)Tj 0 Tc 0.928 0 Td [(he )-102(r)18(eal )-102(user)]TJ -30.253 -1.2 Td [(ID )-45(is )-45(set )-45(by )-45(the)]TJ /TT0 1 Tf 7.028 0 Td (login)Tj /T1_1 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.628 -0.04 Td [(pr)18(ogram )-45(when )-45(we )-45(log )-45(in )-45(and )-45(never )-45(changes.)-548(Because)]TJ /TT0 1 Tf -11.489 -1.2 Td (login)Tj /T1_1 1 Tf 3.25 0 Td [(is a super)8(user pr)18(ocess, it sets all thr)18(ee user IDs when it calls)]TJ /TT0 1 Tf 26.48 0 Td (setuid)Tj /T1_1 1 Tf (.)Tj -31.363 -1.6 Td [(2. )-633(The)-263(ef)18(fective )-13(user )-13(ID )-13(is )-13(set )-13(by )-13(the)]TJ /TT0 1 Tf 16.575 0 Td (exec)Tj /T1_1 1 Tf 2.663 0 Td [(functions )-13(only )-13(if )-13(the )-13(set-user)18(-ID )-13(bit )-13(is )-13(set)]TJ -17.605 -1.2 Td [(for )-3(the )-3(pr)18(ogram )-3(\336le.)-503(If )-3(the )-3(set-user)20(-ID )-3(bit )-3(is )-3(not )-3(set, )-3(the)]TJ /TT0 1 Tf 24.577 0 Td (exec)Tj /T1_1 1 Tf 2.653 0 Td [(functions )-3(leave )-3(the)]TJ -27.23 -1.2 Td [(ef)18(fective )-48(user )-48(ID )-48(as )-48(its )-48(curr)18(ent )-48(value.)]TJ -0.092 Tc 16.917 0 Td [(We )-232(c)]TJ 0 Tc 2.129 0 Td [(an )-48(call)]TJ /TT0 1 Tf 3.204 0 Td (setuid)Tj /T1_1 1 Tf 3.898 0 Td [(at )-48(any )-48(time )-48(to )-48(set )-48(the)]TJ -26.147 -1.2 Td [(ef)18(fective )-107(user )-107(ID )-107(to )-107(either )-107(the )-107(r)18(eal )-107(user )-107(ID )-107(or )-107(the )-107(saved )-107(set-user)13(-ID. )-357(Naturally)111(,)]TJ -0 -1.2 Td [(we can\325t set the ef)18(fective user ID to any random value.)]TJ -1.633 -1.6 Td [(3. )-633(The)-310(saved )-60(set-user)18(-ID )-60(is )-60(copied )-60(fr)16(om )-60(the )-60(ef)18(fective )-60(user )-60(ID )-60(by)]TJ /TT0 1 Tf 29.235 0 Td (exec)Tj /T1_1 1 Tf 0.5604 Tc (.I)Tj 0.3104 Tc 3.547 0 Td (ft)Tj 0 Tc 0.969 0 Td [(he )-60(\336le\325s)]TJ -32.119 -1.2 Td [(set-user)18(-ID )-116(bit )-116(is )-116(set, )-116(this )-116(copy )-116(is )-116(saved )-116(after)]TJ /TT0 1 Tf 20.648 0 Td (exec)Tj /T1_1 1 Tf 2.766 0 Td [(stor)18(es )-116(the )-116(ef)18(fective )-116(user )-116(ID)]TJ -23.415 -1.2 Td [(fr)18(om the \336le\325s user ID.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47306 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.10)]TJ /TT0 1 Tf 36.579 0 Td (exec)Tj /T1_0 1 Tf 2.9 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (253)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(function )-176(fr)18(om )-176(Section )-176(4.22\) )-176(be )-176(closed )-176(acr)18(oss )-176(an)]TJ /TT0 1 Tf 22.158 0 Td (exec)Tj /T1_0 1 Tf 0.6765 Tc (.T)Tj 0 Tc 3.939 0 Td [(his )-176(is )-176(normally )-176(done )-176(by )-176(the)]TJ /TT0 1 Tf -26.097 -1.2 Td (opendir)Tj /T1_0 1 Tf 4.829 0 Td [(function )-379(calling)]TJ /TT0 1 Tf 7.92 0 Td (fcntl)Tj /T1_0 1 Tf 3.629 0 Td [(to )-379(set )-379(the )-379(close-on-exec )-379(\337ag )-379(for )-379(the )-379(descriptor)]TJ -16.377 -1.2 Td [(corr)18(esponding to the open dir)18(ectory str)18(eam.)]TJ 1.8 -1.2 Td [(Note )-74(that )-74(the )-74(r)18(eal )-74(user )-74(ID )-74(and )-74(the )-74(r)20(eal )-74(gr)18(oup )-74(ID )-74(r)18(emain )-74(the )-74(same )-74(acr)18(oss )-74(the)]TJ /TT0 1 Tf 34.55 0 Td (exec)Tj /T1_0 1 Tf (,)Tj -36.35 -1.2 Td [(but )-34(the )-34(ef)18(fective )-34(IDs )-34(can )-34(change, )-34(depending )-34(on )-34(the )-34(status )-34(of )-34(the )-34(set-user)18(-ID )-34(and )-34(the )-34(set-)]TJ 0 -1.2 TD [(gr)18(oup-ID )-111(bits )-111(for )-111(the )-111(pr)18(ogram )-111(\336le )-111(that )-111(is )-111(executed.)-611(If )-111(the )-111(set-user)17(-ID )-111(bit )-111(is )-111(set )-111(for )-111(the)]TJ 0 -1.2 Td [(new )-365(pr)18(ogram, )-365(the )-365(ef)18(fective )-365(user )-365(ID )-365(becomes )-365(the )-365(owner )-365(ID )-365(of )-365(the )-365(pr)17(ogram )-365(\336le.)]TJ T* [(Otherwise, )-147(the )-147(ef)17(fective )-148(user )-148(ID )-148(is )-148(not )-148(changed )-148(\(it\325s )-148(not )-148(set )-148(to )-148(the )-148(r)18(eal )-148(user )-148(ID\).)-642(The)]TJ -0 -1.2 Td [(gr)18(oup ID is handled in the same way)111(.)]TJ 1.8 -1.2 Td [(In )-5(many )-5(UNIX )-5(system )-5(implementations, )-5(only )-5(one )-5(of )-5(these )-5(seven )-5(functions,)]TJ /TT0 1 Tf 33.35 0 Td (execve)Tj /T1_0 1 Tf (,)Tj -35.15 -1.2 Td [(is )-10(a )-10(system )-10(call )-10(within )-10(the )-10(kernel.)-509(The )-10(other )-10(six )-10(ar)]TJ 0.2599 Tc 22.116 0 Td (ej)Tj 0 Tc 0.973 0 Td [(ust )-10(library )-10(functions )-10(that )-10(eventually)]TJ -23.089 -1.2 Td [(invoke )-59(this )-59(system )-59(call.)]TJ -0.092 Tc 10.996 0 Td [(We )-243(c)]TJ 0 Tc 2.14 0 Td [(an )-59(illustrate )-59(the )-59(r)18(elationship )-59(among )-59(these )-59(seven )-59(functions)]TJ -13.136 -1.2 Td (as shown in Figur)Tj 0.25 Tc 7.898 0 Td (e8)Tj 0 Tc 1.229 0 Td (.15.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1599 4802 540 216 re S Q BT /TT0 1 Tf 7.999 0 0 7.999 172.4793 489.1813 Tm (execlp)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2751 4802 540 216 re S Q BT /TT0 1 Tf 7.9986 0 0 7.9986 287.6482 489.1519 Tm (execl)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 3903 4802 540 216 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 402.8033 489.1226 Tm (execle)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 1599 4226 540 216 re S Q BT /TT0 1 Tf 7.9976 0 0 7.9976 172.4483 431.5105 Tm (execvp)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 2751 4226 540 216 re S Q BT /TT0 1 Tf 7.9971 0 0 7.9971 287.5964 431.4846 Tm (execv)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 3903 4226 540 216 re S Q BT /TT0 1 Tf 7.9966 0 0 7.9966 402.7308 436.4566 Tm (execve)Tj /T1_0 1 Tf -0.967 -1.25 Td (\(system call\))Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 3903 3470 540 216 re S Q BT /TT0 1 Tf 7.9962 0 0 7.9962 400.3078 355.8691 Tm (fexecve)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 186.9 444.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 1869 4442 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1869.25 4802.25 cm 0 0 m 0 -288 l S Q Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 188.798 460.1914 Tm (build)Tj /T1_2 1 Tf 2.599 0 Td [(ar)18(gv)]TJ ET q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 302.1 444.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 3021 4442 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3021.25 4802.25 cm 0 0 m 0 -288 l S Q Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 303.9176 460.1638 Tm (build)Tj /T1_2 1 Tf 2.599 0 Td [(ar)18(gv)]TJ ET q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 417.3 444.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 4173 4442 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4173.25 4802.25 cm 0 0 m 0 -288 l S Q Q BT /T1_0 1 Tf 7.9947 0 0 7.9947 419.0233 460.1362 Tm (build)Tj /T1_2 1 Tf 2.599 0 Td [(ar)18(gv)]TJ ET q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 275.1 433.4 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 2751 4334 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2139.25 4334.25 cm 0 0 m 540 0 l S Q Q BT /T1_0 1 Tf 7.9942 0 0 7.9942 230.2062 436.3257 Tm (try each)Tj /TT0 1 Tf -0.848 -1.25 Td (PATH)Tj /T1_0 1 Tf 2.65 0 Td [(pr)18(e\336x)]TJ ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 390.3 433.4 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 3903 4334 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3291.25 4334.25 cm 0 0 m 540 0 l S Q Q BT /T1_0 1 Tf 7.9938 0 0 7.9938 353.4002 436.2995 Tm (use)Tj /TT0 1 Tf -1.347 -1.25 Td (environ)Tj ET q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 417.3 422.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 4173 4226 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4173.25 3686.25 cm 0 0 m 0 468 l S Q Q BT /T1_0 1 Tf 7.9933 0 0 7.9933 418.9479 403.5009 Tm [(build path fr)18(om)]TJ /TT0 1 Tf 0 -1.25 TD (/proc/self/fd)Tj /T1_0 1 Tf T* (alias)Tj /T1_1 1 Tf -23.763 -7.755 Td (Figure 8.15)Tj /T1_0 1 Tf 5.695 0 Td (Relationship of the seven)Tj /TT0 1 Tf 11.376 0 Td (exec)Tj /T1_0 1 Tf 2.65 0 Td (functions)Tj 9.9916 0 0 9.9916 129.4912 290.3562 Tm [(In )-301(this )-301(arrangement, )-301(the )-301(library )-301(functions)]TJ /TT0 1 Tf 20.272 0 Td (execlp)Tj /T1_0 1 Tf 4.151 0 Td (and)Tj /TT0 1 Tf 2.244 0 Td (execvp)Tj /T1_0 1 Tf 4.151 0 Td [(pr)18(ocess )-301(the)]TJ /TT0 1 Tf 5.783 0 Td (PATH)Tj /T1_0 1 Tf -36.6 -1.2 Td [(envir)18(onment )-130(variable, )-130(looking )-130(for )-130(the )-130(\336rst )-130(path )-130(pr)17(e\336x )-130(that )-130(contains )-130(an )-130(executable )-130(\336le)]TJ -0 -1.2 Td (named)Tj /T1_2 1 Tf 3.314 0 Td (\336lename)Tj /T1_0 1 Tf 0.509 Tc (.T)Tj 0 Tc 4.734 0 Td (he)Tj /TT0 1 Tf 1.32 0 Td (fexecve)Tj /T1_0 1 Tf 4.459 0 Td [(library )-9(function )-9(uses)]TJ /TT0 1 Tf 9.395 0 Td (/proc)Tj /T1_0 1 Tf 3.259 0 Td [(to )-9(convert )-9(the )-9(\336le )-9(descriptor)]TJ -26.481 -1.2 Td [(ar)18(gument into a pathname that can be used by)]TJ /TT0 1 Tf 20.772 0 Td (execve)Tj /T1_0 1 Tf 3.85 0 Td [(to execute the pr)18(ogram.)]TJ 7.9933 0 0 7.9933 183.4458 234.4032 Tm [(This )-89(describes )-89(how)]TJ /TT0 1 Tf 8.988 0 Td (fexecve)Tj /T1_0 1 Tf 4.539 0 Td [(is )-89(implemented )-89(in )-89(Fr)18(eeBSD )-89(8.0 )-89(and )-89(Linux )-89(3.2.0.)-589(Other )-89(systems)]TJ -13.527 -1.25 Td [(might )-160(take )-160(a )-160(dif)19(fer)18(ent )-160(appr)18(oach. )-410(For)-409(example, )-160(a )-160(system )-160(without)]TJ /TT0 1 Tf 30.135 0 Td (/proc)Tj /T1_0 1 Tf 3.41 0 Td (or)Tj /TT0 1 Tf 1.351 0 Td (/dev/fd)Tj /T1_0 1 Tf 4.61 0 Td (could)Tj -39.505 -1.25 Td (implement)Tj /TT0 1 Tf 5.071 0 Td (fexecve)Tj /T1_0 1 Tf 4.456 0 Td [(as )-5(a )-5(system )-5(call )-5(veneer )-5(that )-5(translates )-5(the )-5(\336le )-5(descriptor )-5(ar)18(gument )-5(into )-5(an)]TJ -9.526 -1.25 Td [(i-node )-292(pointer)]TJ 0.542 Tc 6.53 0 Td (,i)Tj 0 Tc 1.083 0 Td (mplement)Tj /TT0 1 Tf 5.066 0 Td (execve)Tj /T1_0 1 Tf 4.142 0 Td [(as )-292(a )-292(system )-292(call )-292(veneer )-292(that )-292(translates )-292(the )-292(pathname)]TJ -16.821 -1.25 Td [(ar)18(gument )-190(into )-190(an )-190(i-node )-190(pointer)]TJ 0.4399 Tc 14.881 0 Td (,a)Tj 0 Tc 1.19 0 Td [(nd )-190(place )-190(all )-190(the )-190(r)19(est )-190(of )-190(the)]TJ /TT0 1 Tf 12.928 0 Td (exec)Tj /T1_0 1 Tf 2.84 0 Td [(code )-190(common )-190(to )-190(both)]TJ /TT0 1 Tf -31.838 -1.25 Td (execve)Tj /T1_0 1 Tf 3.901 0 Td (and)Tj /TT0 1 Tf 1.994 0 Td (fexecve)Tj /T1_0 1 Tf 4.501 0 Td [(in )-51(a )-51(separate )-51(function )-51(to )-51(be )-51(called )-51(with )-51(an )-51(i-node )-51(pointer )-51(for )-51(the )-51(\336le )-51(to)]TJ -10.396 -1.25 Td (be executed.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47307 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.3)]TJ /TT0 1 Tf 37.003 0 Td (fork)Tj /T1_0 1 Tf 2.9 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (233)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Besides )-48(the )-48(open )-48(\336les, )-48(numer)18(ous )-48(other )-48(pr)18(operties )-48(of )-48(the )-48(par)18(ent )-48(ar)]TJ 0.298 Tc 29.295 0 Td (ei)Tj 0 Tc 1.068 0 Td [(nherited )-48(by )-48(the)]TJ -32.163 -1.2 Td (child:)Tj 0.883 Tc 1.8 -1.56 Td (\245R)Tj 0 Tc 2.157 0 Td [(eal user ID, r)18(eal gr)18(oup ID, ef)18(fective user ID, and ef)18(fective gr)18(oup ID)]TJ 0.883 Tc -2.157 -1.36 Td (\245S)Tj 0 Tc 2.014 0 Td [(upplementary gr)18(oup IDs)]TJ 0.883 Tc -2.014 -1.36 Td (\245P)Tj -0.018 Tc 2.093 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess gr)18(oup ID)]TJ 0.883 Tc -3.016 -1.36 Td (\245S)Tj 0 Tc 2.014 0 Td (ession ID)Tj 0.883 Tc -2.014 -1.36 Td (\245C)Tj 0 Tc 2.198 0 Td [(ontr)18(olling terminal)]TJ 0.883 Tc -2.198 -1.36 Td (\245T)Tj 0 Tc 2.102 0 Td [(he set-user)18(-ID and set-gr)18(oup-ID \337ags)]TJ 0.883 Tc -2.102 -1.36 Td (\245C)Tj 0 Tc 2.198 0 Td [(urr)18(ent working dir)18(ectory)]TJ 0.883 Tc -2.198 -1.36 Td (\245R)Tj 0 Tc 2.157 0 Td [(oot dir)18(ectory)]TJ 0.883 Tc -2.157 -1.36 Td (\245F)Tj 0 Tc 2.045 0 Td [(ile mode cr)18(eation mask)]TJ 0.883 Tc -2.045 -1.36 Td (\245S)Tj 0 Tc 2.014 0 Td (ignal mask and dispositions)Tj 0.883 Tc -2.014 -1.36 Td (\245T)Tj 0 Tc 2.102 0 Td (he close-on-exec \337ag for any open \336le descriptors)Tj 0.883 Tc -2.102 -1.36 Td (\245E)Tj 0 Tc 2.1 0 Td [(nvir)18(onment)]TJ 0.883 Tc -2.1 -1.36 Td (\245A)Tj 0 Tc 2.267 0 Td [(ttached shar)18(ed memory segments)]TJ 0.883 Tc -2.267 -1.36 Td (\245M)Tj 0 Tc 2.435 0 Td (emory mappings)Tj 0.883 Tc -2.435 -1.36 Td (\245R)Tj 0 Tc 2.157 0 Td [(esour)18(ce limits)]TJ -3.957 -1.68 Td [(The dif)18(fer)18(ences between the par)18(ent and child ar)18(e)]TJ 0.883 Tc 1.8 -1.56 Td (\245T)Tj 0 Tc 2.102 0 Td [(he r)18(eturn values fr)18(om)]TJ /TT0 1 Tf 9.824 0 Td (fork)Tj /T1_0 1 Tf 2.65 0 Td (ar)Tj 0.25 Tc 0.877 0 Td (ed)Tj 0 Tc 1.34 0 Td [(if)18(fer)18(ent.)]TJ 0.883 Tc -16.793 -1.36 Td (\245T)Tj 0 Tc 2.102 0 Td [(he pr)18(ocess IDs ar)]TJ 0.25 Tc 7.518 0 Td (ed)Tj 0 Tc 1.34 0 Td [(if)18(fer)18(ent.)]TJ 0.883 Tc -10.96 -1.36 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-7(two )-7(pr)18(ocesses )-7(have )-7(dif)17(fer)18(ent )-7(par)18(ent )-7(pr)18(ocess )-7(IDs: )-7(the )-7(par)18(ent )-7(pr)18(ocess )-7(ID )-7(of )-7(the)]TJ -0.613 -1.2 Td [(child is the par)18(ent; the par)18(ent pr)18(ocess ID of the par)18(ent doesn\325t change.)]TJ 0.883 Tc -1.489 -1.36 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-180(child\325s)]TJ /TT0 1 Tf 4.842 0 Td (tms_utime)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 6.08 0 Td (tms_stime)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 6.08 0 Td (tms_cutime)Tj /T1_0 1 Tf 0.4301 Tc (,a)Tj 0 Tc 7.18 0 Td (nd)Tj /TT0 1 Tf 1.623 0 Td (tms_cstime)Tj /T1_0 1 Tf 6.43 0 Td (values)Tj -32.849 -1.2 Td (ar)Tj 0.25 Tc 0.877 0 Td (es)Tj 0 Tc 1.153 0 Td (et to 0 \(these times ar)Tj 0.25 Tc 9.33 0 Td (ed)Tj 0 Tc 1.34 0 Td (iscussed in Section 8.17\).)Tj 0.883 Tc -14.189 -1.36 Td (\245F)Tj 0 Tc 2.045 0 Td [(ile locks set by the par)18(ent ar)]TJ 0.25 Tc 12.289 0 Td (en)Tj 0 Tc 1.311 0 Td (ot inherited by the child.)Tj 0.883 Tc -15.645 -1.36 Td (\245P)Tj 0 Tc 2.093 0 Td (ending alarms ar)Tj 0.25 Tc 7.471 0 Td (ec)Tj 0 Tc 1.173 0 Td [(lear)18(ed for the child.)]TJ 0.883 Tc -10.737 -1.36 Td (\245T)Tj 0 Tc 2.102 0 Td (he set of pending signals for the child is set to the empty set.)Tj -3.902 -1.68 Td [(Many of these featur)18(es haven\325t been discussed yet)]TJ 0.0833 Tc 22.184 0 Td (\321w)Tj 0 Tc 1.917 0 Td (e\325ll cover them in later chapters.)Tj -22.302 -1.2 Td [(The )-90(two )-90(main )-90(r)18(easons )-90(for)]TJ /TT0 1 Tf 11.944 0 Td (fork)Tj /T1_0 1 Tf 2.74 0 Td [(to )-90(fail )-90(ar)]TJ 0.3403 Tc 3.845 0 Td (e\()Tj 0 Tc 1.152 0 Td [(a\) )-90(if )-90(too )-90(many )-90(pr)18(ocesses )-90(ar)]TJ 0.3404 Tc 12.173 0 Td (ea)Tj 0 Tc 1.319 0 Td [(lr)18(eady )-90(in)]TJ -34.973 -1.2 Td [(the )-4(system, )-4(which )-4(usually )-4(means )-4(that )-4(something )-4(else )-4(is )-4(wr)17(ong, )-4(or )-4(\(b\) )-4(if )-4(the )-4(total )-4(number)]TJ 0 -1.2 TD [(of )-21(pr)18(ocesses )-21(for )-21(this )-21(r)17(eal )-21(user )-21(ID )-21(exceeds )-21(the )-21(system\325s )-21(limit.)-521(Recall )-21(fr)18(om )-21(Figur)]TJ 0.2713 Tc 34.55 0 Td (e2)Tj 0 Tc 1.25 0 Td (.1)Tj 0.2713 Tc 0.695 0 Td (1t)Tj 0 Tc 1.097 0 Td (hat)Tj /TT0 1 Tf -37.592 -1.2 Td (CHILD_MAX)Tj /T1_0 1 Tf 5.673 0 Td [(speci\336es )-23(the )-23(maximum )-23(number )-23(of )-23(simultaneous )-23(pr)20(ocesses )-23(per )-23(r)18(eal )-23(user )-23(ID.)]TJ -3.873 -1.2 Td (Ther)Tj 0.25 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(t)]TJ 0 Tc 1.432 0 Td (wo uses for)Tj /TT0 1 Tf 5.334 0 Td (fork)Tj /T1_0 1 Tf (:)Tj -10.046 -1.56 Td [(1. )-633(When)]TJ 0.3942 Tc 4.67 0 Td (ap)Tj -0.018 Tc 1.495 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-144(wants )-144(to )-144(duplicate )-144(itself )-144(so )-144(that )-144(the )-144(par)18(ent )-144(and )-144(the )-144(child )-144(can)]TJ -5.455 -1.2 Td [(each )-151(execute )-151(dif)19(fer)18(ent )-150(sections )-150(of )-150(code )-150(at )-150(the )-150(same )-150(time.)-650(This )-150(is )-150(common )-150(for)]TJ T* [(network )-18(servers)]TJ 0.0833 Tc 7.23 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(he )-18(par)18(ent )-18(waits )-18(for )-18(a )-18(service )-18(r)18(equest )-18(fr)18(om )-18(a )-18(client.)-518(When )-18(the)]TJ -0.018 Tc -8.639 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quest )-38(arrives, )-38(the )-38(par)18(ent )-38(calls)]TJ /TT0 1 Tf 13.334 0 Td (fork)Tj /T1_0 1 Tf 2.688 0 Td [(and )-38(lets )-38(the )-38(child )-38(handle )-38(the )-38(r)17(equest. )-288(The)]TJ -16.878 -1.2 Td [(par)18(ent goes back to waiting for the next service r)18(equest to arrive.)]TJ -1.633 -1.6 Td [(2. )-633(When)]TJ 0.4859 Tc 4.762 0 Td (ap)Tj -0.018 Tc 1.587 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-236(wants )-236(to )-236(execute )-236(a )-236(dif)19(fer)18(ent )-236(pr)18(ogram. )-486(This)-486(is )-236(common )-236(for)]TJ -5.639 -1.2 Td [(shells. )-327(In)-328(this )-77(case, )-77(the )-77(child )-77(does )-77(an)]TJ /TT0 1 Tf 16.998 0 Td (exec)Tj /T1_0 1 Tf 2.728 0 Td [(\(which )-77(we )-77(describe )-77(in )-77(Section )-77(8.10\))]TJ -19.726 -1.2 Td [(right after it r)18(eturns fr)18(om the)]TJ /TT0 1 Tf 13.012 0 Td (fork)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47308 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (228)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(kernel )-46(and )-46(is )-46(known )-46(as )-46(a )-46(system )-46(pr)19(ocess. )-296(Pr)18(ocess )-46(ID )-46(1 )-46(is )-46(usually )-46(the)]TJ /TT0 1 Tf 31.021 0 Td (init)Tj /T1_1 1 Tf 2.696 0 Td [(pr)18(ocess )-46(and)]TJ -33.716 -1.2 Td [(is )-12(invoked )-12(by )-12(the )-12(kernel )-12(at )-12(the )-12(end )-12(of )-12(the )-12(bootstrap )-12(pr)21(ocedur)18(e. )-262(The)-262(pr)18(ogram )-12(\336le )-12(for )-12(this)]TJ 0 -1.2 Td [(pr)18(ocess )-80(was)]TJ /TT0 1 Tf 5.714 0 Td (/etc/init)Tj /T1_1 1 Tf 5.73 0 Td [(in )-80(older )-80(versions )-80(of )-80(the )-80(UNIX )-80(System )-80(and )-80(is)]TJ /TT0 1 Tf 20.353 0 Td (/sbin/init)Tj /T1_1 1 Tf 6.33 0 Td (in)Tj -38.127 -1.2 Td [(newer )-146(versions.)-646(This )-146(pr)18(ocess )-146(is )-146(r)18(esponsible )-146(for )-146(bringing )-146(up )-146(a )-146(UNIX )-146(system )-146(after )-146(the)]TJ 0 -1.2 TD [(kernel )-81(has )-81(been )-81(bootstrapped.)]TJ /TT0 1 Tf 14.115 0 Td (init)Tj /T1_1 1 Tf 2.731 0 Td [(usually )-81(r)18(eads )-81(the )-81(system-dependent )-81(initialization)]TJ -16.846 -1.2 Td [(\336les )167(\321 )167(the)]TJ /TT0 1 Tf 4.893 0 Td (/etc/rc*)Tj /T1_1 1 Tf 5.34 0 Td [(\336les )-290(or)]TJ /TT0 1 Tf 3.821 0 Td (/etc/inittab)Tj /T1_1 1 Tf 7.74 0 Td [(and )-290(the )-290(\336les )-290(in)]TJ /TT0 1 Tf 7.913 0 Td (/etc/init.d)Tj /T1_1 1 Tf (\321and)Tj -29.707 -1.2 Td [(brings )-49(the )-49(system )-49(to )-49(a )-49(certain )-49(state, )-49(such )-49(as )-49(multiuser)]TJ 0.5494 Tc 23.867 0 Td (.T)Tj 0 Tc 1.412 0 Td (he)Tj /TT0 1 Tf 1.36 0 Td (init)Tj /T1_1 1 Tf 2.699 0 Td [(pr)18(ocess )-49(never )-49(dies.)-550(It)]TJ -29.339 -1.2 Td [(is )-211(a )-211(normal )-211(user )-211(pr)16(ocess, )-212(not )-212(a )-212(system )-212(pr)18(ocess )-212(within )-212(the )-212(kernel, )-212(like )-212(the )-212(swapper)78(,)]TJ -0 -1.2 Td [(although )-184(it )-184(does )-184(r)8(un )-184(with )-184(super)8(user )-184(privileges.)-684(Later )-184(in )-184(this )-184(chapter)]TJ 0.4337 Tc 31.932 0 Td (,w)Tj 0 Tc 1.518 0 Td [(e\325ll )-184(see )-184(how)]TJ /TT0 1 Tf -33.45 -1.2 Td (init)Tj /T1_1 1 Tf 2.65 0 Td [(becomes the par)18(ent pr)18(ocess of any orphaned child pr)18(ocess.)]TJ 7.9995 0 0 7.9995 183.5891 540.9675 Tm [(In )-59(Mac )-59(OS )-59(X )-59(10.4, )-59(the)]TJ /TT0 1 Tf 10.029 0 Td (init)Tj /T1_1 1 Tf 2.709 0 Td [(pr)18(ocess )-59(was )-59(r)18(eplaced )-59(with )-59(the)]TJ /TT0 1 Tf 13.801 0 Td (launchd)Tj /T1_1 1 Tf 4.509 0 Td [(pr)18(ocess, )-59(which )-59(performs)]TJ -31.048 -1.25 Td [(the )-30(same )-30(set )-30(of )-30(tasks )-30(as)]TJ /TT0 1 Tf 10.618 0 Td (init)Tj /T1_1 1 Tf 0.2805 Tc (,b)Tj 0 Tc 3.483 0 Td [(ut )-30(has )-30(expanded )-30(functionality)]TJ 0.5304 Tc 13.215 0 Td (.S)Tj 0 Tc 1.305 0 Td [(ee )-30(Section )-30(5.10 )-30(in )-30(Singh)]TJ 10.712 0.04 Td ([)Tj 0.333 -0.04 Td (2006)Tj 2 0.04 Td (])Tj -41.667 -1.29 Td (for a discussion of how)Tj /TT0 1 Tf 10.505 0 Td (launchd)Tj /T1_1 1 Tf 4.45 0 Td (operates.)Tj 9.9994 0 0 9.9994 147.5908 499.97 Tm [(Each )-33(UNIX )-33(System )-33(implementation )-33(has )-33(its )-33(own )-33(set )-33(of )-33(kernel )-33(pr)18(ocesses )-33(that )-33(pr)18(ovide)]TJ -1.8 -1.2 Td [(operating )-110(system )-110(services.)-610(For )-110(example, )-110(on )-110(some )-110(virtual )-110(memory )-110(implementations )-110(of)]TJ T* [(the )-278(UNIX )-278(System, )-278(pr)18(ocess )-278(ID )-278(2 )-278(is )-278(the)]TJ /T1_2 1 Tf 18.675 0 Td (pagedaemon)Tj /T1_1 1 Tf 0.778 Tc (.T)Tj 0 Tc 6.585 0 Td [(his )-278(pr)18(ocess )-278(is )-278(r)18(esponsible )-278(for)]TJ -25.26 -1.2 Td (supporting the paging of the virtual memory system.)Tj 1.8 -1.2 Td [(In )-210(addition )-210(to )-210(the )-210(pr)18(ocess )-210(ID, )-210(ther)]TJ 0.4601 Tc 16.117 0 Td (ea)Tj -0.018 Tc 1.439 0 Td [(re )-246(o)]TJ 0 Tc 1.862 0 Td [(ther )-210(identi\336ers )-210(for )-210(every )-210(pr)18(ocess. )-460(The)]TJ -21.218 -1.2 Td [(following functions r)18(eturn these identi\336ers.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 417.275 Tm (#include )Tj 0 -2.14 TD (pid_t getpid\(void\);)Tj /T1_1 1 Tf 22.821 -2.14 Td [(Returns: pr)18(ocess ID of calling pr)18(ocess)]TJ /TT0 1 Tf -22.821 -2.14 Td (pid_t getppid\(void\);)Tj /T1_1 1 Tf 19.706 -2.14 Td [(Returns: par)18(ent pr)18(ocess ID of calling pr)18(ocess)]TJ /TT0 1 Tf -19.706 -2.14 Td (uid_t getuid\(void\);)Tj /T1_1 1 Tf 22.318 -2.14 Td [(Returns: r)18(eal user ID of calling pr)18(ocess)]TJ /TT0 1 Tf -22.318 -2.14 Td (uid_t geteuid\(void\);)Tj /T1_1 1 Tf 20.254 -2.14 Td [(Returns: ef)18(fective user ID of calling pr)18(ocess)]TJ /TT0 1 Tf -20.254 -2.14 Td (gid_t getgid\(void\);)Tj /T1_1 1 Tf 21.536 -2.14 Td [(Returns: r)18(eal gr)18(oup ID of calling pr)18(ocess)]TJ /TT0 1 Tf -21.536 -2.14 Td (gid_t getegid\(void\);)Tj /T1_1 1 Tf 19.472 -2.14 Td [(Returns: ef)18(fective gr)18(oup ID of calling pr)18(ocess)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1817.25 cm 0 0 m 0 2446 l 3900 2446 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 162.1605 Tm [(Note )-25(that )-25(none )-25(of )-25(these )-25(functions )-25(has )-25(an )-25(err)18(or )-25(r)18(eturn. )-275(W)92(e\325ll )-25(r)18(eturn )-25(to )-25(the )-25(par)18(ent )-25(pr)18(ocess)]TJ 0 -1.2 Td [(ID )-84(in )-84(the )-84(next )-84(section )-84(when )-84(we )-84(discuss )-84(the)]TJ /TT0 1 Tf 19.766 0 Td (fork)Tj /T1_1 1 Tf 2.734 0 Td [(function. )-333(The)]TJ -0.018 Tc 6.548 0 Td (re)Tj 0 Tc 0.856 0 Td [(al )-83(and )-83(ef)18(fective )-83(user)]TJ -29.904 -1.2 Td [(and gr)18(oup IDs wer)]TJ 0.25 Tc 8.351 0 Td (ed)Tj 0 Tc 1.34 0 Td (iscussed in Section 4.4.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47309 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(7.1)55(1)]TJ /TT0 1 Tf 25.486 0 Td (getrlimit)Tj /T1_0 1 Tf 5.9 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (setrlimit)Tj /T1_0 1 Tf 5.9 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (221)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Thr)18(ee r)8(ules govern the changing of the r)18(esour)18(ce limits.)]TJ 1.8 -2.4 Td [(1. )-633(A)-250(pr)18(ocess can change its soft limit to a value less than or equal to its har\ )]TJ 0.25 Tc 33.291 0 Td (dl)Tj 0 Tc 1.152 0 Td (imit.)Tj -34.443 -1.6 Td [(2. )-633(A)-400(pr)18(ocess )-150(can )-150(lower )-150(its )-150(har)]TJ 0.4001 Tc 14.278 0 Td (dl)Tj 0 Tc 1.302 0 Td [(imit )-150(to )-150(a )-150(value )-150(gr)18(eater )-150(than )-150(or )-150(equal )-150(to )-150(its )-150(soft)]TJ -13.947 -1.2 Td [(limit. )-250(This)-250(lowering of the har)]TJ 0.25 Tc 13.441 0 Td (dl)Tj 0 Tc 1.152 0 Td [(imit is irr)18(eversible for normal users.)]TJ -16.226 -1.6 Td [(3. )-633(Only)]TJ 0.25 Tc 4.098 0 Td (as)Tj 0 Tc 1.174 0 Td [(uper)8(user pr)18(ocess can raise a har)]TJ 0.25 Tc 14.09 0 Td (dl)Tj 0 Tc 1.152 0 Td (imit.)Tj -22.314 -2.4 Td (An in\336nite limit is speci\336ed by the constant)Tj /TT0 1 Tf 19.473 0 Td (RLIM_INFINITY)Tj /T1_0 1 Tf (.)Tj -17.673 -1.2 Td (The)Tj /T1_2 1 Tf -0.018 Tc 2.138 0 Td (re)Tj 0 Tc 0.76 0 Td [(sour)18(ce)]TJ /T1_0 1 Tf 3.02 0 Td [(ar)18(gument )-214(takes )-214(on )-214(one )-214(of )-214(the )-214(following )-214(values.)-712(Figur)]TJ 0.4637 Tc 25.317 0 Td (e7)Tj 0 Tc 1.443 0 Td [(.15 )-214(shows)]TJ -34.477 -1.2 Td [(which )-265(limits )-265(ar)]TJ 0.5149 Tc 7.146 0 Td (ed)Tj 0 Tc 1.605 0 Td [(e\336ned )-265(by )-265(the )-265(Single )-265(UNIX )-265(Speci\336cation )-265(and )-265(supported )-265(by )-265(each)]TJ -8.751 -1.2 Td (implementation.)Tj /TT0 1 Tf 0 -2.4 TD (RLIMIT_AS)Tj /T1_0 1 Tf 11.4 0 Td [(The )-320(maximum )-320(size )-320(in )-320(bytes )-320(of )-320(a )-320(pr)18(ocess\325s )-320(total )-320(available)]TJ 0 -1.2 TD (memory)Tj 0.54 Tc 3.631 0 Td (.T)Tj 0 Tc 1.403 0 Td [(his )-40(af)18(fects )-40(the)]TJ /TT0 1 Tf 6.375 0 Td (sbrk)Tj /T1_0 1 Tf 2.69 0 Td [(function )-40(\(Section )-40(1.1)55(1\) )-40(and )-40(the)]TJ /TT0 1 Tf -14.099 -1.2 Td (mmap)Tj /T1_0 1 Tf 2.65 0 Td (function \(Section 14.8\).)Tj /TT0 1 Tf -14.05 -1.6 Td (RLIMIT_CORE)Tj /T1_0 1 Tf 11.4 0 Td [(The )-3(maximum )-3(size )-3(in )-3(bytes )-3(of )-3(a )-3(cor)]TJ 0.2531 Tc 15.656 0 Td (e\336)Tj 0 Tc 1.337 0 Td [(le. )-253(A)-253(limit )-3(of )-3(0 )-3(pr)18(events)]TJ -16.993 -1.2 Td [(the cr)18(eation of a cor)]TJ 0.25 Tc 8.678 0 Td (e\336)Tj 0 Tc 1.334 0 Td (le.)Tj /TT0 1 Tf -21.412 -1.6 Td (RLIMIT_CPU)Tj /T1_0 1 Tf 11.4 0 Td [(The )-202(maximum )-202(amount )-202(of )-202(CPU )-202(time )-202(in )-202(seconds.)-699(When )-202(the)]TJ T* [(soft )-331(limit )-331(is )-331(exceeded, )-331(the)]TJ /TT0 1 Tf 13.066 0 Td (SIGXCPU)Tj /T1_0 1 Tf 4.781 0 Td [(signal )-331(is )-331(sent )-331(to )-331(the)]TJ -17.847 -1.2 Td [(pr)18(ocess.)]TJ /TT0 1 Tf -11.4 -1.6 Td (RLIMIT_DATA)Tj /T1_0 1 Tf 11.4 0 Td [(The )-123(maximum )-123(size )-123(in )-123(bytes )-123(of )-123(the )-123(data )-123(segment: )-123(the )-123(sum )-123(of)]TJ T* [(the )-572(initialized )-572(data, )-572(uninitialized )-572(data, )-572(and )-572(heap )-572(fr)18(om)]TJ T* (Figur)Tj 0.25 Tc 2.383 0 Td (e7)Tj 0 Tc 1.229 0 Td (.6.)Tj /TT0 1 Tf -15.012 -1.6 Td (RLIMIT_FSIZE)Tj /T1_0 1 Tf 11.4 0 Td [(The )-253(maximum )-253(size )-253(in )-253(bytes )-253(of )-253(a )-253(\336le )-253(that )-253(may )-253(be )-253(cr)14(eated.)]TJ T* [(When )-370(the )-370(soft )-370(limit )-370(is )-370(exceeded, )-370(the )-370(pr)18(ocess )-370(is )-370(sent )-370(the)]TJ /TT0 1 Tf T* (SIGXFSZ)Tj /T1_0 1 Tf 4.45 0 Td (signal.)Tj /TT0 1 Tf -15.85 -1.6 Td (RLIMIT_MEMLOCK)Tj /T1_0 1 Tf 11.4 0 Td [(The )-54(maximum )-54(amount )-54(of )-54(memory )-54(in )-54(bytes )-54(that )-54(a )-54(pr)18(ocess )-54(can)]TJ T* (lock into memory using)Tj /TT0 1 Tf 10.78 0 Td (mlock)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.333 -0.04 Td (.)Tj /TT0 1 Tf -26.346 -1.6 Td (RLIMIT_MSGQUEUE)Tj /T1_0 1 Tf 11.4 0 Td [(The )-54(maximum )-54(amount )-54(of )-54(memory )-54(in )-54(bytes )-54(that )-54(a )-54(pr)18(ocess )-54(can)]TJ T* (allocate for POSIX message queues.)Tj /TT0 1 Tf -11.4 -1.6 Td (RLIMIT_NICE)Tj /T1_0 1 Tf 11.4 0 Td [(The )-54(limit )-54(to )-54(which )-54(a )-54(pr)19(ocess\325s )-54(nice )-54(value )-54(\(Section )-54(8.16\) )-54(can )-54(be)]TJ T* [(raised to af)18(fect its scheduling priority)111(.)]TJ /TT0 1 Tf -11.4 -1.6 Td (RLIMIT_NOFILE)Tj /T1_0 1 Tf 11.4 0 Td [(The )-170(maximum )-170(number )-170(of )-170(open )-170(\336les )-170(per )-170(pr)20(ocess. )-420(Changing)]TJ T* [(this )-83(limit )-83(af)18(fects )-83(the )-83(value )-83(r)18(eturned )-83(by )-83(the)]TJ /TT0 1 Tf 19.36 0 Td (sysconf)Tj /T1_0 1 Tf 4.533 0 Td (function)Tj -23.893 -1.2 Td [(for )-739(its)]TJ /TT0 1 Tf 4.294 0 Td (_SC_OPEN_MAX)Tj /T1_0 1 Tf 8.189 0 Td [(ar)18(gument )-739(\(Section )-739(2.5.4\).)-1240(See)]TJ -12.483 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e2)Tj 0 Tc 1.229 0 Td (.17 also.)Tj /TT0 1 Tf -15.012 -1.6 Td (RLIMIT_NPROC)Tj /T1_0 1 Tf 11.4 0 Td [(The )-216(maximum )-216(number )-216(of )-216(child )-216(pr)18(ocesses )-216(per )-216(r)19(eal )-216(user )-216(ID.)]TJ T* [(Changing )-859(this )-859(limit )-859(af)18(fects )-859(the )-859(value )-859(r)18(eturned )-859(for)]TJ /TT0 1 Tf T* (_SC_CHILD_MAX)Tj /T1_0 1 Tf 8.05 0 Td (by the)Tj /TT0 1 Tf 2.996 0 Td (sysconf)Tj /T1_0 1 Tf 4.45 0 Td (function \(Section 2.5.4\).)Tj /TT0 1 Tf -26.896 -1.6 Td (RLIMIT_NPTS)Tj /T1_0 1 Tf 11.4 0 Td [(The )-71(maximum )-71(number )-71(of )-71(pseudo )-71(terminals )-71(\(Chapter )-71(19\) )-71(that)]TJ 0.25 Tc T* (au)Tj 0 Tc 1.353 0 Td (ser can have open at one time.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47310 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (40)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(These )-4(minimum )-4(values )-4(do )-4(not )-4(change )-4(fr)19(om )-4(one )-4(system )-4(to )-4(another)]TJ 0.5039 Tc 29.193 0 Td (.T)Tj 0 Tc 1.367 0 Td [(hey )-4(specify )-4(the)]TJ -32.36 -1.2 Td [(most )-58(r)18(estrictive )-58(values )-58(for )-58(these )-58(featur)20(es. )-308(A)-307(conforming )-58(POSIX.1 )-58(implementation )-58(must)]TJ 0 -1.2 Td [(pr)18(ovide )-236(values )-236(that )-236(ar)18(e)-486(at)-486(least )-236(this )-236(lar)18(ge. )-486(This)-486(is )-236(why )-236(they )-236(ar)]TJ 0.486 Tc 29.843 0 Td (ec)Tj 0 Tc 1.409 0 Td [(alled )-236(minimums,)]TJ -31.252 -1.2 Td [(although )-66(their )-66(names )-66(all )-66(contain)]TJ /TT0 1 Tf 14.859 0 Td (MAX)Tj /T1_1 1 Tf 0.5658 Tc (.A)Tj 0 Tc 3.394 0 Td [(lso, )-66(to )-66(ensur)]TJ 0.3157 Tc 5.479 0 Td (ep)Tj 0 Tc 1.396 0 Td (ortability)Tj 0.3157 Tc 3.964 0 Td (,as)Tj 0 Tc 1.805 0 Td [(trictly )-66(conforming)]TJ -30.897 -1.2 Td [(application )-96(must )-96(not )-96(r)17(equir)]TJ 0.3463 Tc 12.389 0 Td (eal)Tj 0 Tc 1.963 0 Td [(ar)18(ger )-96(value.)]TJ -0.092 Tc 5.938 0 Td [(We )-280(d)]TJ 0 Tc 2.344 0 Td [(escribe )-96(what )-96(each )-96(of )-96(these )-96(constants)]TJ -0.018 Tc -22.633 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(fers to as we pr)18(oceed thr)18(ough the text.)]TJ 0.3065 Tc 7.9995 0 0 7.9995 183.5888 585.3649 Tm (As)Tj 0 Tc 1.508 0 Td [(trictly )-56(conforming )-56(POSIX )-56(application )-56(is )-56(dif)16(fer)18(ent )-56(fr)18(om )-56(an )-56(application )-56(that )-56(is )-56(mer)18(ely )-56(POSIX)]TJ -1.508 -1.25 Td [(conforming. )-358(A)-358(POSIX-conforming )-108(application )-108(uses )-108(only )-108(interfaces )-108(de\336ned )-108(in )-108(IEEE )-108(Standar)17(d)]TJ 0 -1.25 TD (1003.1)Tj 2.75 0.09 Td (-)Tj 0.333 -0.09 Td [(2008. )-353(A)-354(strictly )-103(conforming )-103(POSIX )-103(application )-103(must )-103(meet )-103(further )-103(r)15(estrictions, )-103(such )-103(as)]TJ -3.083 -1.25 Td [(not )-25(r)18(elying )-26(on )-26(any )-26(unde\336ned )-26(behavior)]TJ 0.2756 Tc 17.119 0 Td (,n)Tj 0 Tc 1.108 0 Td [(ot )-26(using )-26(any )-26(obsolescent )-26(interfaces, )-26(and )-26(not )-26(r)21(equiring)]TJ -18.227 -1.25 Td [(values of constants lar)18(ger than the minimums shown in Figur)]TJ 0.25 Tc 27.184 0 Td (e2)Tj 0 Tc 1.229 0 Td (.8.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1400.25 5218.25 cm 0 0 m 3692 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 166.808 513.7383 Tm (Name )Tj 15.045 0 Td (Description)Tj 14.935 0 Td (Minimum acceptable value)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1400.25 5098.25 cm 0 0 m 3692 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1400.25 5078.25 cm 0 0 m 3692 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 143.9741 499.71 Tm (ARG_MAX )Tj 32.55 0 Td (_POSIX_ARG_MAX)Tj /T1_1 1 Tf -22.65 0 Td [(maximum length of ar)18(guments to)]TJ /TT0 1 Tf 15.106 0 Td (exec)Tj /T1_1 1 Tf -12.856 -1.25 Td (functions)Tj /TT0 1 Tf -12.15 -1.25 Td (ATEXIT_MAX)Tj /T1_1 1 Tf 32.55 0 Td (32)Tj -22.65 0 Td (maximum number of functions that can be)Tj -0.018 Tc 2.25 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(gister)18(ed with the)]TJ /TT0 1 Tf 7.713 0 Td (atexit)Tj /T1_1 1 Tf 3.85 0 Td (function)Tj /TT0 1 Tf -24.569 -1.25 Td (CHILD_MAX )Tj 32.55 0 Td (_POSIX_CHILD_MAX)Tj /T1_1 1 Tf -22.65 0 Td [(maximum number of child pr)18(ocesses per r)18(eal)]TJ 2.25 -1.25 Td (user ID)Tj /TT0 1 Tf -12.15 -1.25 Td (DELAYTIMER_MAX )Tj 32.55 0 Td (_POSIX_DELAYTIMER_MAX)Tj /T1_1 1 Tf -22.65 0 Td [(maximum number of timer expiration overr)8(uns)]TJ /TT0 1 Tf -9.9 -1.25 Td (HOST_NAME_MAX )Tj 32.55 0 Td (_POSIX_HOST_NAME_MAX)Tj /T1_1 1 Tf -22.65 0 Td [(maximum length of a host name as r)18(eturned by)]TJ /TT0 1 Tf 2.25 -1.25 Td (gethostname)Tj -12.15 -1.25 Td (LOGIN_NAME_MAX )Tj 32.55 0 Td (_POSIX_LOGIN_NAME_MAX)Tj /T1_1 1 Tf -22.65 0 Td (maximum length of a login name)Tj /TT0 1 Tf -9.9 -1.25 Td (OPEN_MAX )Tj 32.55 0 Td (_POSIX_OPEN_MAX)Tj /T1_1 1 Tf -22.65 0 Td (one mor)Tj 0.25 Tc 3.663 0 Td (et)Tj 0 Tc 1.055 0 Td (han the maximum value assigned to)Tj 0.25 Tc -2.468 -1.25 Td (an)Tj 0 Tc 1.332 0 Td [(ewly cr)18(eated \336le descriptor)]TJ /TT0 1 Tf -13.482 -1.25 Td (PAGESIZE)Tj /T1_1 1 Tf 32.55 0 Td (1)Tj -22.65 0 Td (system memory page size, in bytes)Tj /TT0 1 Tf -9.9 -1.25 Td (RTSIG_MAX )Tj 32.55 0 Td (_POSIX_RTSIG_MAX)Tj /T1_1 1 Tf -22.65 0 Td [(maximum number of r)18(eal-time signals r)18(eserved)]TJ 2.25 -1.25 Td (for application use)Tj /TT0 1 Tf -12.15 -1.25 Td (SEM_NSEMS_MAX )Tj 32.55 0 Td (_POSIX_SEM_NSEMS_MAX)Tj /T1_1 1 Tf -22.65 0 Td [(maximum number of semaphor)18(es a pr)18(ocess can)]TJ 2.25 -1.25 Td (use)Tj /TT0 1 Tf -12.15 -1.25 Td (SEM_VALUE_MAX )Tj 32.55 0 Td (_POSIX_SEM_VALUE_MAX)Tj /T1_1 1 Tf -22.65 0 Td [(maximum value of a semaphor)18(e)]TJ /TT0 1 Tf -9.9 -1.25 Td (SIGQUEUE_MAX )Tj 32.55 0 Td (_POSIX_SIGQUEUE_MAX)Tj /T1_1 1 Tf -22.65 0 Td (maximum number of signals that can be)Tj 2.25 -1.25 Td [(queued for a pr)18(ocess)]TJ /TT0 1 Tf -12.15 -1.25 Td (STREAM_MAX )Tj 32.55 0 Td (_POSIX_STREAM_MAX)Tj /T1_1 1 Tf -22.65 0 Td (maximum number of standar)Tj 0.25 Tc 13.003 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O str)18(eams a)]TJ -11.951 -1.25 Td [(pr)18(ocess can have open at once)]TJ /TT0 1 Tf -12.15 -1.25 Td (SYMLOOP_MAX )Tj 32.55 0 Td (_POSIX_SYMLOOP_MAX)Tj /T1_1 1 Tf -22.65 0 Td (number of symbolic links that can be traversed)Tj 2.25 -1.25 Td [(during pathname r)18(esolution)]TJ /TT0 1 Tf -12.15 -1.25 Td (TIMER_MAX )Tj 32.55 0 Td (_POSIX_TIMER_MAX)Tj /T1_1 1 Tf -22.65 0 Td [(maximum number of timers per pr)18(ocess)]TJ /TT0 1 Tf -9.9 -1.25 Td (TTY_NAME_MAX )Tj 32.55 0 Td (_POSIX_TTY_NAME_MAX)Tj /T1_1 1 Tf -22.65 0 Td (length of a terminal device name, including the)Tj 2.25 -1.25 Td (terminating null)Tj /TT0 1 Tf -12.15 -1.25 Td (TZNAME_MAX )Tj 32.55 0 Td (_POSIX_TZNAME_MAX)Tj /T1_1 1 Tf -22.65 0 Td (number of bytes for the name of a time zone)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1400.25 2258.25 cm 0 0 m 3692 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3984.25 2258.25 cm 0 0 m 0 2960 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2172.25 2258.25 cm 0 0 m 0 2960 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5092.25 2258.25 cm 0 0 m 0 2960 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1400.25 2258.25 cm 0 0 m 0 2960 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 209.7577 207.7501 Tm (Figure 2.9)Tj /T1_1 1 Tf 5.195 0 Td [(POSIX.1 r)8(untime invariant values fr)18(om)]TJ /TT0 1 Tf 17.503 0 Td ()Tj /T1_1 1 Tf 9.9976 0 0 9.9976 147.5638 180.1568 Tm (Unfortunately)Tj 0.5006 Tc 6.186 0 Td (,s)Tj 0 Tc 1.175 0 Td [(ome )-251(of )-251(these )-251(invariant )-251(minimum )-251(values )-251(ar)]TJ 0.5006 Tc 20.268 0 Td (et)Tj 0 Tc 1.306 0 Td [(oo )-251(small )-251(to )-251(be )-251(of)]TJ -30.734 -1.2 Td [(practical )-110(use.)-610(For )-110(example, )-110(most )-110(UNIX )-110(systems )-110(today )-110(pr)20(ovide )-110(far )-110(mor)]TJ 0.3599 Tc 32.243 0 Td (et)Tj 0 Tc 1.165 0 Td [(han )-110(20 )-110(open)]TJ -33.408 -1.2 Td [(\336les )-83(per )-83(pr)17(ocess. )-333(Also,)-334(the )-83(minimum )-83(limit )-83(of )-83(256 )-83(for)]TJ /TT0 1 Tf 24.228 0 Td (_POSIX_PATH_MAX)Tj /T1_1 1 Tf 9.333 0 Td [(is )-83(too )-83(small.)]TJ -33.562 -1.2 Td [(Pathnames )-263(can )-263(exceed )-263(this )-263(limit.)-763(This )-263(means )-263(that )-263(we )-263(can\325t )-263(use )-263(the )-263(two )-263(constants)]TJ /TT0 1 Tf 0 -1.2 TD (_POSIX_OPEN_MAX)Tj /T1_1 1 Tf 9.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (_POSIX_PATH_MAX)Tj /T1_1 1 Tf 9.25 0 Td (as array sizes at compile time.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47311 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(2.5)]TJ 41.507 0 Td (Limits)Tj /T1_1 1 Tf 4.826 0 Td (39)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(4. )-633(Runtime)-701(incr)18(easable )-451(values:)]TJ /TT0 1 Tf 15.599 0 Td (CHARCLASS_NAME_MAX)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 11.751 0 Td (COLL_WEIGHTS_MAX)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf -25.717 -1.2 Td (LINE_MAX)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 5.3 0 Td (NGROUPS_MAX)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 7.6 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (RE_DUP_MAX)Tj /T1_0 1 Tf -15.976 -1.6 Td [(5. )-633(Runtime)-290(invariant )-40(values, )-40(possibly )-40(indeterminate: )-40(the )-40(17 )-40(constants )-40(in )-40(Figur)]TJ 0.2905 Tc 35.181 0 Td (e2)Tj 0 Tc 1.269 0 Td (.9)Tj -34.817 -1.2 Td [(\(plus )-11(an )-11(additional )-11(four )-11(constants )-11(intr)16(oduced )-12(in )-12(Section )-12(12.2 )-12(and )-12(thr)18(ee )-12(constants)]TJ 0 -1.2 TD [(intr)18(oduced in Section 14.5\))]TJ -1.633 -1.6 Td [(6. )-633(Other)-1202(invariant )-952(values:)]TJ /TT0 1 Tf 14.951 0 Td (NL_ARGMAX)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 6.852 0 Td (NL_MSGMAX)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 6.852 0 Td (NL_SETMAX)Tj /T1_0 1 Tf 1.202 Tc (,a)Tj 0 Tc 7.352 0 Td (nd)Tj /TT0 1 Tf -34.374 -1.2 Td (NL_TEXTMAX)Tj /T1_0 1 Tf -1.633 -1.6 Td [(7. )-633(Pathname)-1255(variable )-1005(values:)]TJ /TT0 1 Tf 16.54 0 Td (FILESIZEBITS)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 8.705 0 Td (LINK_MAX)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 6.305 0 Td (MAX_CANON)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf -29.917 -1.2 Td (MAX_INPUT)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 5.9 0 Td (NAME_MAX)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 5.3 0 Td (PATH_MAX)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 5.3 0 Td (PIPE_BUF)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 5.8 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (SYMLINK_MAX)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1320.25 5350.25 cm 0 0 m 3852 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 175.6069 526.9368 Tm (Name )Tj 11.068 0 Td [(Description:)-250(minimum acceptable value for maximum ...)]TJ -0.092 Tc 28.502 0 Td (Va)Tj 0 Tc 1.13 0 Td (lue)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1320.25 5230.25 cm 0 0 m 3852 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1320.25 5210.25 cm 0 0 m 3852 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 135.9755 512.9077 Tm (_POSIX_ARG_MAX)Tj /T1_0 1 Tf 44.9 0 Td (4,096)Tj -30.8 0 Td [(length of ar)18(guments to)]TJ /TT0 1 Tf 10.297 0 Td (exec)Tj /T1_0 1 Tf 2.65 0 Td (functions)Tj /TT0 1 Tf -27.047 -1.25 Td (_POSIX_CHILD_MAX)Tj /T1_0 1 Tf 46.15 0 Td (25)Tj -32.05 0 Td [(number of child pr)18(ocesses at a time per r)18(eal user ID)]TJ /TT0 1 Tf -14.1 -1.25 Td (_POSIX_DELAYTIMER_MAX)Tj /T1_0 1 Tf 46.15 0 Td (32)Tj -32.05 0 Td [(number of timer expiration overr)8(uns)]TJ /TT0 1 Tf -14.1 -1.25 Td (_POSIX_HOST_NAME_MAX)Tj /T1_0 1 Tf 45.65 0 Td (255)Tj -31.55 0 Td [(length of a host name as r)18(eturned by)]TJ /TT0 1 Tf 16.402 0 Td (gethostname)Tj -30.502 -1.25 Td (_POSIX_LINK_MAX)Tj /T1_0 1 Tf 46.65 0 Td (8)Tj -32.55 0 Td (number of links to a \336le)Tj /TT0 1 Tf -14.1 -1.25 Td (_POSIX_LOGIN_NAME_MAX)Tj /T1_0 1 Tf 46.65 0 Td (9)Tj -32.55 0 Td (length of a login name)Tj /TT0 1 Tf -14.1 -1.25 Td (_POSIX_MAX_CANON)Tj /T1_0 1 Tf 45.65 0 Td (255)Tj -31.55 0 Td (number of bytes on a terminal\325s canonical input queue)Tj /TT0 1 Tf -14.1 -1.25 Td (_POSIX_MAX_INPUT)Tj /T1_0 1 Tf 45.65 0 Td (255)Tj -31.55 0 Td (space available on a terminal\325s input queue)Tj /TT0 1 Tf -14.1 -1.25 Td (_POSIX_NAME_MAX)Tj /T1_0 1 Tf 46.15 0 Td (14)Tj -32.05 0 Td (number of bytes in a \336lename, not including the terminating null)Tj /TT0 1 Tf -14.1 -1.25 Td (_POSIX_NGROUPS_MAX)Tj /T1_0 1 Tf 46.65 0 Td (8)Tj -32.55 0 Td [(number of simultaneous supplementary gr)18(oup IDs per pr)18(ocess)]TJ /TT0 1 Tf -14.1 -1.25 Td (_POSIX_OPEN_MAX)Tj /T1_0 1 Tf 46.15 0 Td (20)Tj -32.05 0 Td [(maximum number of open \336les per pr)18(ocess)]TJ /TT0 1 Tf -14.1 -1.25 Td (_POSIX_PATH_MAX)Tj /T1_0 1 Tf 45.65 0 Td (256)Tj -31.55 0 Td (number of bytes in a pathname, including the terminating null)Tj /TT0 1 Tf -14.1 -1.25 Td (_POSIX_PIPE_BUF)Tj /T1_0 1 Tf 45.65 0 Td (512)Tj -31.55 0 Td (number of bytes that can be written atomically to a pipe)Tj /TT0 1 Tf -14.1 -1.25 Td (_POSIX_RE_DUP_MAX)Tj /T1_0 1 Tf 45.65 0 Td (255)Tj -31.55 0 Td [(number of r)18(epeated occurr)18(ences of a basic r)18(egular expr)18(ession)]TJ 2.25 -1.25 Td (permitted by the)Tj /TT0 1 Tf 7.637 0 Td (regexec)Tj /T1_0 1 Tf 4.45 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (regcomp)Tj /T1_0 1 Tf 4.45 0 Td (functions when)Tj -18.48 -1.25 Td (using the interval notation)Tj /TT0 1 Tf 11.971 0 Td (\\{m,n\\})Tj -28.321 -1.25 Td (_POSIX_RTSIG_MAX)Tj /T1_0 1 Tf 46.65 0 Td (8)Tj -32.55 0 Td [(number of r)18(eal-time signal numbers r)18(eserved for applications)]TJ /TT0 1 Tf -14.1 -1.25 Td (_POSIX_SEM_NSEMS_MAX)Tj /T1_0 1 Tf 45.65 0 Td (256)Tj -31.55 0 Td [(number of semaphor)18(es a pr)18(ocess can have in use at one time)]TJ /TT0 1 Tf -14.1 -1.25 Td (_POSIX_SEM_VALUE_MAX)Tj /T1_0 1 Tf 44.4 0 Td (32,767)Tj -30.3 0 Td (value a semaphor)Tj 0.25 Tc 7.83 0 Td (ec)Tj 0 Tc 1.173 0 Td (an hold)Tj /TT0 1 Tf -23.103 -1.25 Td (_POSIX_SIGQUEUE_MAX)Tj /T1_0 1 Tf 46.15 0 Td (32)Tj -32.05 0 Td [(number of queued signals a pr)18(ocess can send and have pending)]TJ /TT0 1 Tf -14.1 -1.25 Td (_POSIX_SSIZE_MAX)Tj /T1_0 1 Tf 44.4 0 Td (32,767)Tj -30.3 0 Td [(value that can be stor)18(ed in)]TJ /TT0 1 Tf 11.866 0 Td (ssize_t)Tj /T1_0 1 Tf 4.45 0 Td (object)Tj /TT0 1 Tf -30.416 -1.25 Td (_POSIX_STREAM_MAX)Tj /T1_0 1 Tf 46.65 0 Td (8)Tj -32.55 0 Td (number of standar)Tj 0.25 Tc 8.194 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O str)18(eams a pr)18(ocess can have open at once)]TJ /TT0 1 Tf -23.492 -1.25 Td (_POSIX_SYMLINK_MAX)Tj /T1_0 1 Tf 45.65 0 Td (255)Tj -31.55 0 Td (number of bytes in a symbolic link)Tj /TT0 1 Tf -14.1 -1.25 Td (_POSIX_SYMLOOP_MAX)Tj /T1_0 1 Tf 46.65 0 Td (8)Tj -32.55 0 Td (number of symbolic links that can be traversed during pathname)Tj -0.018 Tc 2.25 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (solution)Tj /TT0 1 Tf -17.206 -1.25 Td (_POSIX_TIMER_MAX)Tj /T1_0 1 Tf 46.15 0 Td (32)Tj -32.05 0 Td [(number of timers per pr)18(ocess)]TJ /TT0 1 Tf -14.1 -1.25 Td (_POSIX_TTY_NAME_MAX)Tj /T1_0 1 Tf 46.65 0 Td (9)Tj -32.55 0 Td (length of a terminal device name, including the terminating null)Tj /TT0 1 Tf -14.1 -1.25 Td (_POSIX_TZNAME_MAX)Tj /T1_0 1 Tf 46.65 0 Td (6)Tj -32.55 0 Td (number of bytes for the name of a time zone)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1320.25 2390.25 cm 0 0 m 3852 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4852.25 2390.25 cm 0 0 m 0 2960 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2428.25 2390.25 cm 0 0 m 0 2960 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5172.25 2390.25 cm 0 0 m 0 2960 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1320.25 2390.25 cm 0 0 m 0 2960 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 223.4224 220.947 Tm (Figure 2.8)Tj /T1_0 1 Tf 5.195 0 Td [(POSIX.1 minimum values fr)18(om)]TJ /TT0 1 Tf 14.086 0 Td ()Tj /T1_0 1 Tf 9.9976 0 0 9.9976 129.5691 190.9542 Tm [(Of )-26(these )-26(limits )-26(and )-26(constants, )-26(some )-26(may )-26(be )-26(de\336ned )-26(in)]TJ /TT0 1 Tf 24.319 0 Td ()Tj /T1_0 1 Tf 0.2765 Tc (,a)Tj 0 Tc 7.026 0 Td [(nd )-26(others )-26(may )-26(or)]TJ -31.346 -1.2 Td [(may )-269(not )-269(be )-269(de\336ned, )-269(depending )-269(on )-269(certain )-269(conditions.)]TJ -0.092 Tc 26.275 0 Td [(We )-453(d)]TJ 0 Tc 2.517 0 Td [(escribe )-269(the )-269(limits )-269(and)]TJ -28.792 -1.2 Td [(constants )-269(that )-269(may )-269(or )-269(may )-269(not )-269(be )-269(de\336ned )-269(in )-269(Section )-269(2.5.4, )-269(when )-269(we )-269(describe )-269(the)]TJ /TT0 1 Tf T* (sysconf)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.8 0 Td (pathconf)Tj /T1_0 1 Tf 0.35 Tc (,a)Tj 0 Tc 5.9 0 Td (nd)Tj /TT0 1 Tf 1.543 0 Td (fpathconf)Tj /T1_0 1 Tf 5.75 0 Td [(functions. )-350(The)-350(25 )-100(minimum )-100(values )-100(ar)]TJ 0.35 Tc 17.21 0 Td (es)Tj 0 Tc 1.253 0 Td (hown)Tj -36.456 -1.2 Td (in Figur)Tj 0.25 Tc 3.506 0 Td (e2)Tj 0 Tc 1.229 0 Td (.8.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47312 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (918)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(Chapter )-278(6)]TJ /T1_0 1 Tf 3.6 -2.56 Td (6.1)Tj /T1_1 1 Tf 2.602 0 Td [(The )-306(functions )-306(to )-306(access )-306(the )-306(shadow )-306(passwor)]TJ 0.5565 Tc 21.321 0 Td (d\336)Tj 0 Tc 1.772 0 Td [(le )-306(on )-306(Linux )-306(and )-306(Solaris )-306(ar)16(e)]TJ -23.093 -1.2 Td [(discussed )-52(in )-52(Section )-52(6.3.)]TJ -0.092 Tc 11.335 0 Td [(We )-236(c)]TJ 0 Tc 2.133 0 Td [(an\325t )-52(use )-52(the )-52(value )-52(r)18(eturned )-52(in )-52(the)]TJ /TT1 1 Tf 15.242 0 Td (pw_passwd)Tj /T1_1 1 Tf 5.702 0 Td (\336eld)Tj -34.412 -1.2 Td [(by )-10(the )-10(functions )-10(described )-10(in )-10(Section )-10(6.2 )-10(to )-10(compar)15(e)-260(an)-260(e)-1(ncrypted )-10(passwor)18(d, )-10(since)]TJ -0 -1.2 Td [(that )-20(\336eld )-20(is )-20(not )-20(the )-20(encrypted )-20(passwor)15(d. )-270(Instead,)-271(we )-20(need )-20(to )-20(\336nd )-20(the )-20(user)-74(\325s )-20(entry)]TJ 0 -1.2 Td (in the shadow \336le and use its encrypted passwor)Tj 0.25 Tc 21.551 0 Td (d\336)Tj 0 Tc 1.466 0 Td (eld.)Tj -23.017 -1.8 Td [(On )-80(Fr)18(eeBSD )-80(and )-80(Mac )-80(OS )-80(X, )-80(the )-80(passwor)]TJ 0.3296 Tc 18.38 0 Td (d\336)Tj 0 Tc 1.546 0 Td [(le )-80(is )-80(shadowed )-80(automatically)]TJ 0.5796 Tc 13.007 0 Td (.I)Tj 0.3296 Tc 1.167 0 Td (nt)Tj 0 Tc 1.238 0 Td (he)Tj /TT1 1 Tf -35.337 -1.2 Td (passwd)Tj /T1_1 1 Tf 4.076 0 Td [(str)8(uctur)]TJ 0.4759 Tc 3.49 0 Td (er)Tj 0 Tc 1.332 0 Td [(eturned )-226(by)]TJ /TT1 1 Tf 5.536 0 Td (getpwnam)Tj /T1_1 1 Tf 5.276 0 Td (and)Tj /TT1 1 Tf 2.169 0 Td (getpwuid)Tj /T1_1 1 Tf 5.276 0 Td [(on )-226(Fr)18(eeBSD )-226(8.0, )-226(the)]TJ /TT1 1 Tf -27.154 -1.2 Td (pw_passwd)Tj /T1_1 1 Tf 6.025 0 Td [(\336eld )-375(contains )-375(the )-375(encrypted )-375(passwor)18(d, )-375(but )-375(only )-375(if )-375(the )-375(caller)-70(\325s)]TJ -6.025 -1.2 Td [(ef)18(fective )-295(user )-295(ID )-295(is )-295(0.)-794(On )-295(Mac )-295(OS )-295(X )-295(10.6.8, )-295(the )-295(encrypted )-295(passwor)19(d)-545(is)-545(not)]TJ -0 -1.2 Td (accessible using these interfaces.)Tj /T1_0 1 Tf -2.602 -1.84 Td (6.2)Tj /T1_1 1 Tf 2.602 0 Td [(The )-204(pr)18(ogram )-204(in )-204(Figur)]TJ 0.4544 Tc 10.151 0 Td (eC)Tj 0 Tc 1.642 0 Td [(.5 )-204(prints )-204(the )-204(encrypted )-204(passwor)17(d)-454(on)-454(L)-1(inux )-204(3.2.0 )-204(and)]TJ -11.794 -1.2 Td [(Solaris )-198(10.)-698(Unless )-198(this )-198(pr)18(ogram )-198(is )-198(r)8(un )-198(with )-198(super)8(user )-198(permissions, )-198(the )-198(call )-198(to)]TJ /TT1 1 Tf 0 -1.2 TD (getspnam)Tj /T1_1 1 Tf 5.05 0 Td [(fails with an err)18(or of)]TJ /TT1 1 Tf 9.275 0 Td (EACCES)Tj /T1_1 1 Tf (.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1556.25 4798.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1596.25 4798.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 155.6013 470.2426 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD (int)Tj 0 -1.189 TD [(main\(void\) )-3000(/*)-600(Linux/Solaris version */)]TJ T* ({)Tj 2.4 -1.189 Td (struct spwd *ptr;)Tj 0 -2.14 TD (if \(\(ptr = getspnam\("sar"\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("getspnam error"\);)Tj -2.4 -1.189 Td (printf\("sp_pwdp = %s\\n", ptr->sp_pwdp == NULL ||)Tj 1.2 -1.189 Td [(ptr->sp_pwdp[0] == 0 ?)-1200("\(null\)" : ptr->sp_pwdp\);)]TJ -1.2 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1556.25 3307.25 cm 0 0 m 50 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1596.25 3307.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 226.1973 314.6214 Tm (Figure C.5)Tj /T1_1 1 Tf 5.417 0 Td (Print encrypted passwor)Tj 0.25 Tc 10.877 0 Td (du)Tj 0 Tc 1.464 0 Td (nder Linux and Solaris)Tj 9.9982 0 0 9.9982 155.592 285.8265 Tm [(Under )-116(Fr)18(eeBSD )-116(8.0, )-116(the )-116(pr)18(ogram )-116(in )-116(Figur)]TJ 0.3661 Tc 18.844 0 Td (eC)Tj 0 Tc 1.554 0 Td [(.6 )-116(prints )-116(the )-116(encrypted )-116(passwor)]TJ 0.366 Tc 14.399 0 Td (di)Tj 0 Tc 1.268 0 Td (f)Tj -36.065 -1.2 Td [(the )-41(pr)18(ogram )-41(is )-41(r)8(un )-41(with )-41(super)8(user )-41(permissions.)-541(Otherwise, )-41(the )-41(value )-41(r)18(eturned )-41(in)]TJ /TT1 1 Tf 0 -1.2 TD (pw_passwd)Tj /T1_1 1 Tf 5.666 0 Td [(is )-16(an )-16(asterisk.)-516(On )-16(Mac )-16(OS )-16(X )-16(10.6.8, )-16(asterisks )-16(ar)]TJ 0.2664 Tc 20.772 0 Td (ep)Tj 0 Tc 1.346 0 Td [(rinted )-16(r)18(egar)18(dless )-16(of)]TJ -27.784 -1.2 Td [(the permissions with which it is r)8(un.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1556.25 2427.25 cm 0 0 m 50 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1596.25 2427.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l S Q Q BT /TT1 1 Tf 8.9978 0 0 8.9978 155.5827 233.121 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD (int)Tj 0 -1.189 TD [(main\(void\) )-3000(/*)-600(FreeBSD/Mac OS X version */)]TJ 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(struct passwd)-1800(*ptr;)]TJ 0 -2.14 TD (if \(\(ptr = getpwnam\("sar"\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("getpwnam error"\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47313 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (809)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (53 )Tj 7.2 0 Td [(})-600(else {)]TJ -7.2 -1.189 Td (54 )Tj 9.6 0 Td [(submit_file\(fd,)-600(sfd, argv[optind], sbuf.st_size, text\);)]TJ -9.6 -1.189 Td (55 )Tj 9.6 0 Td (exit\(0\);)Tj -9.6 -1.189 Td (56 )Tj 7.2 0 Td (})Tj -7.2 -1.189 Td [(57 )-3000(})]TJ 0 -1.189 TD [(58 )-3000(err_exit\(err,)-600("print: can\325t contact %s", host\);)]TJ 0 -1.189 TD [(59 )-1200(})]TJ 0 -2.14 TD [(60 )-1200(/*)]TJ 0 -1.189 TD [(61 )-1800(*)-600(Send a file to the printer daemon.)]TJ 0 -1.189 TD [(62 )-1800(*/)]TJ T* [(63 )-1200(void)]TJ T* [(64 )-1200(submit_file\(int)-600(fd, int sockfd, const char *fname, size_t nbytes,)]TJ T* (65 )Tj 10.2 0 Td [(int)-600(text\))]TJ -10.2 -1.189 Td [(66 )-1200({)]TJ T* [(67 )-3000(int)]TJ 16.8 0 Td (nr, nw, len;)Tj -16.8 -1.189 Td [(68 )-3000(struct)-600(passwd )-3600(*pwd;)]TJ T* [(69 )-3000(struct)-600(printreq )-2400(req;)]TJ 0 -1.189 TD [(70 )-3000(struct)-600(printresp )-1800(res;)]TJ 0 -1.189 TD [(71 )-3000(char)]TJ 16.8 0 Td (buf[IOBUFSZ];)Tj -16.8 -2.14 Td [(72 )-3000(/*)]TJ 0 -1.189 TD [(73 )-3600(*)-600(First build the header.)]TJ 0 -1.189 TD [(74 )-3600(*/)]TJ T* [(75 )-3000(if)-600(\(\(pwd = getpwuid\(geteuid\(\)\)\) == NULL\) {)]TJ T* (76 )Tj 7.2 0 Td [(strcpy\(req.usernm,)-600("unknown"\);)]TJ -7.2 -1.189 Td [(77 )-3000(})-600(else {)]TJ T* (78 )Tj 7.2 0 Td [(strncpy\(req.usernm,)-600(pwd->pw_name, USERNM_MAX-1\);)]TJ -7.2 -1.189 Td (79 )Tj 7.2 0 Td (req.usernm[USERNM_MAX-1])Tj 0.6 Tc 15 0 Td (=\325)Tj 0 Tc 1.8 0 Td (\\0\325;)Tj -24 -1.189 Td [(80 )-3000(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3487.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 324.639 Tm [([53 )167(\320 )167(59])-668(If )-559(we )-559(ar)]TJ 0.809 Tc 8.478 0 Td (ea)Tj 0 Tc 1.788 0 Td [(ble )-559(to )-559(connect )-559(to )-559(the )-559(printer )-559(spooling )-559(daemon, )-559(we )-559(call)]TJ /TT0 1 Tf -6.266 -1.2 Td (submit_file)Tj /T1_0 1 Tf 6.945 0 Td [(to )-95(transmit )-95(the )-95(\336le )-95(we )-95(want )-95(to )-95(print )-95(to )-95(the )-95(daemon.)-595(Then )-95(we)]TJ -6.945 -1.2 Td [(exit )-163(with )-163(a )-163(value )-163(of )-163(0 )-163(to )-163(indicate )-163(success.)-663(If )-163(we )-163(can\325t )-163(connect )-163(to )-163(any )-163(of )-163(the)]TJ 0 -1.2 TD [(addr)18(esses, )-3(we )-3(call)]TJ /TT0 1 Tf 8.177 0 Td (err_exit)Tj /T1_0 1 Tf 5.053 0 Td [(to )-3(print )-3(an )-3(err)18(or )-3(message )-3(and )-3(exit )-3(with )-3(a )-3(value )-3(of)]TJ -13.23 -1.2 Td [(1)-294(to)-294(i)1(ndicate )-44(failur)18(e. )-294(\(Appendix)]TJ 0.2937 Tc 14.531 0 Td (Bc)Tj 0 Tc 1.349 0 Td [(ontains )-44(the )-44(sour)18(ce )-44(code )-44(for)]TJ /TT0 1 Tf 12.334 0 Td (err_exit)Tj /T1_0 1 Tf 5.094 0 Td (and)Tj -33.307 -1.2 Td [(the other err)18(or r)18(outines.\))]TJ -4 -1.6 Td [([60 )167(\320 )167(80])-668(The)]TJ /TT0 1 Tf 5.943 0 Td (submit_file)Tj /T1_0 1 Tf 6.869 0 Td [(function )-19(sends )-19(a )-19(print )-19(r)19(equest )-19(to )-19(the )-19(daemon )-19(and )-19(r)18(eads )-19(the)]TJ -0.018 Tc -8.812 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sponse. )-346(First,)-347(we )-96(build )-96(the)]TJ /TT0 1 Tf 12.58 0 Td (printreq)Tj /T1_0 1 Tf -0.018 Tc 5.146 0 Td (re)Tj 0 Tc 0.856 0 Td [(quest )-97(header)]TJ 0.5966 Tc 5.711 0 Td (.W)Tj 0.3466 Tc 1.755 0 Td (eu)Tj 0 Tc 1.429 0 Td (se)Tj /TT0 1 Tf 1.25 0 Td (geteuid)Tj /T1_0 1 Tf 4.547 0 Td (to)Tj -34.128 -1.2 Td [(get )-20(the )-20(caller)-74(\325s )-20(ef)19(fective )-19(user )-19(ID )-19(and )-19(pass )-19(this )-19(to)]TJ /TT0 1 Tf 21.479 0 Td (getpwuid)Tj /T1_0 1 Tf 5.069 0 Td [(to )-19(look )-19(for )-19(the )-19(user)]TJ -26.549 -1.2 Td [(in )-70(the )-70(system\325s )-70(passwor)]TJ 0.3199 Tc 10.72 0 Td (d\336)Tj 0 Tc 1.536 0 Td [(le. )-320(W)]TJ 0.3199 Tc 2.498 0 Td (ec)Tj 0 Tc 1.243 0 Td [(opy )-70(the )-70(user)-74(\325s )-70(name )-70(to )-70(the )-70(r)19(equest )-70(header)]TJ -15.996 -1.2 Td [(or )-5(use )-5(the )-5(string)]TJ /TT0 1 Tf 7.429 0 Td (unknown)Tj /T1_0 1 Tf 4.455 0 Td [(if )-5(we )-5(can\325t )-5(identify )-5(the )-5(user)]TJ 0.5051 Tc 12.025 0 Td (.W)Tj 0.2551 Tc 1.663 0 Td (eu)Tj 0 Tc 1.337 0 Td (se)Tj /TT0 1 Tf 1.158 0 Td (strncpy)Tj /T1_0 1 Tf 4.455 0 Td (when)Tj -32.523 -1.2 Td [(copying )-74(the )-74(name )-74(fr)18(om )-74(the )-74(passwor)]TJ 0.3242 Tc 16.26 0 Td (d\336)Tj 0 Tc 1.54 0 Td [(le )-74(to )-74(avoid )-74(writing )-74(past )-74(the )-74(end )-74(of )-74(the)]TJ -17.8 -1.2 Td [(user )-82(name )-82(buf)18(fer )-82(in )-82(the )-82(r)17(equest )-82(header)]TJ 0.5821 Tc 17.496 0 Td (.I)Tj 0.3321 Tc 1.169 0 Td (ft)Tj 0 Tc 0.991 0 Td [(he )-82(name )-82(is )-82(longer )-82(than )-82(the )-82(size )-82(of)]TJ -19.656 -1.2 Td [(the )-139(buf)18(fer)74(,)]TJ /TT0 1 Tf 5.018 0 Td (strncpy)Tj /T1_0 1 Tf 4.589 0 Td [(won\325t )-139(stor)]TJ 0.3886 Tc 4.628 0 Td (eat)Tj 0 Tc 2.082 0 Td [(erminating )-139(null )-139(byte )-139(in )-139(the )-139(buf)20(fer)74(,)-389(so)-389(w)1(e)]TJ -16.317 -1.2 Td (need to do it ourselves.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47314 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.3)]TJ 34.529 0 Td [(Unique )-250(Connections)]TJ /T1_1 1 Tf 11.304 0 Td (637)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (The)Tj /TT0 1 Tf 2.035 0 Td (serv_listen)Tj /T1_0 1 Tf 6.961 0 Td [(function )-111(\(Figur)]TJ 0.3607 Tc 6.784 0 Td (e1)Tj 0 Tc 1.34 0 Td [(7.8\) )-111(can )-111(be )-111(used )-111(by )-111(a )-111(server )-111(to )-111(announce )-111(its)]TJ -18.919 -1.2 Td [(willingness )-34(to )-34(listen )-34(for )-34(client )-34(connect )-34(r)17(equests )-34(on )-34(a )-34(well-known )-34(name )-34(\(some )-34(pathname)]TJ 0 -1.2 TD [(in )-59(the )-59(\336le )-59(system\).)-560(Clients )-59(will )-59(use )-59(this )-59(name )-59(when )-59(they )-59(want )-59(to )-59(connect )-59(to )-59(the )-59(server)70(.)]TJ T* [(The )-86(r)18(eturn )-86(value )-86(is )-86(the )-86(server)-74(\325s )-86(UNIX )-86(domain )-86(socket )-86(used )-86(to )-86(r)18(eceive )-86(client )-86(connection)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td (quests.)Tj 0.944 -1.2 Td (The)Tj /TT0 1 Tf 2.035 0 Td (serv_accept)Tj /T1_0 1 Tf 6.961 0 Td [(function )-111(\(Figur)]TJ 0.3608 Tc 6.784 0 Td (e1)Tj 0 Tc 1.34 0 Td [(7.9\) )-111(is )-111(used )-111(by )-111(a )-111(server )-111(to )-111(wait )-111(for )-111(a )-111(client\325s)]TJ -18.919 -1.2 Td [(connect )-153(r)18(equest )-153(to )-153(arrive.)-655(When )-154(one )-154(arrives, )-154(the )-154(system )-154(automatically )-154(cr)18(eates )-154(a )-154(new)]TJ T* [(UNIX )-11(domain )-11(socket, )-11(connects )-11(it )-11(to )-11(the )-11(client\325s )-11(socket, )-11(and )-11(r)20(eturns )-11(the )-11(new )-11(socket )-11(to )-11(the)]TJ T* (server)Tj 0.5266 Tc 2.663 0 Td (.A)Tj 0 Tc 1.555 0 Td (dditionally)Tj 0.2766 Tc 4.785 0 Td (,t)Tj 0 Tc 0.853 0 Td [(he )-27(ef)18(fective )-27(user )-27(ID )-27(of )-27(the )-27(client )-27(is )-27(stor)18(ed )-27(in )-27(the )-27(memory )-27(to )-27(which)]TJ /T1_2 1 Tf -9.855 -1.2 Td (uidptr)Tj /T1_0 1 Tf 2.806 0 Td (points.)Tj 0.348 Tc -1.006 -1.2 Td (Ac)Tj 0 Tc 1.57 0 Td [(lient )-98(calls)]TJ /TT0 1 Tf 4.615 0 Td (cli_conn)Tj /T1_0 1 Tf 5.148 0 Td (\(Figur)Tj 0.348 Tc 2.716 0 Td (e1)Tj 0 Tc 1.327 0 Td [(7.10\) )-98(to )-98(connect )-98(to )-98(a )-98(server)]TJ 0.598 Tc 12.133 0 Td (.T)Tj 0 Tc 1.461 0 Td (he)Tj /T1_2 1 Tf 1.409 0 Td (name)Tj /T1_0 1 Tf 2.515 0 Td [(ar)18(gument)]TJ -34.694 -1.2 Td [(speci\336ed )-12(by )-12(the )-12(client )-12(must )-12(be )-12(the )-12(same )-12(name )-12(that )-12(was )-12(advertised )-12(by )-12(the )-12(server)-74(\325s )-12(call )-12(to)]TJ /TT0 1 Tf T* (serv_listen)Tj /T1_0 1 Tf 0.5 Tc (.O)Tj 0.25 Tc 8.136 0 Td (nr)Tj 0 Tc 1.209 0 Td [(eturn, the client gets a \336le descriptor connected to the server)74(.)]TJ -7.545 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (7.8 shows the)Tj /TT0 1 Tf 6.197 0 Td (serv_listen)Tj /T1_0 1 Tf 6.85 0 Td (function.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5058.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 496.2394 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj T* (#include )Tj 0 -2.021 TD [(#define QLEN)-2400(10)]TJ T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (reate a server endpoint of a connection.)Tj 0.6 Tc -1.8 -1.189 Td (*R)Tj 0 Tc 1.8 0 Td (eturns fd if all OK, <0 on error.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (int)Tj 0 -1.189 TD (serv_listen\(const char *name\))Tj T* ({)Tj 2.4 -1.189 Td (int )Tj 12 0 Td [(fd,)-600(len, err, rval;)]TJ -12 -1.189 Td [(struct sockaddr_un)-1200(un;)]TJ 0 -2.021 TD (if \(strlen\(name\) >= sizeof\(un.sun_path\)\) {)Tj 2.4 -1.189 Td (errno = ENAMETOOLONG;)Tj 0 -1.189 TD (return\(-1\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/* create a UNIX domain stream socket */)Tj 0 -1.189 TD (if \(\(fd = socket\(AF_UNIX, SOCK_STREAM, 0\)\) < 0\))Tj 2.4 -1.189 Td (return\(-2\);)Tj -2.4 -2.021 Td [(unlink\(name\); )-1200(/*)-600(in case it already exists */)]TJ 0 -2.021 TD (/* fill in socket address structure */)Tj 0 -1.189 TD (memset\(&un, 0, sizeof\(un\)\);)Tj T* (un.sun_family = AF_UNIX;)Tj T* (strcpy\(un.sun_path, name\);)Tj T* (len = offsetof\(struct sockaddr_un, sun_path\) + strlen\(name\);)Tj 0 -2.021 TD (/* bind the name to the descriptor */)Tj 0 -1.189 TD (if \(bind\(fd, \(struct sockaddr *\)&un, len\) < 0\) {)Tj 2.4 -1.189 Td (rval = -3;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47315 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (586)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 163.9202 668.9599 Tm [(with )-66(a )-66(key )-66(of)]TJ /TT0 1 Tf 6.268 0 Td (IPC_PRIVATE)Tj /T1_1 1 Tf 0.5663 Tc (.T)Tj 0 Tc 8.029 0 Td [(he )-66(server )-66(also )-66(has )-66(its )-66(own )-66(queue, )-66(with )-66(a )-66(key )-66(or)]TJ -14.298 -1.2 Td [(identi\336er )-111(known )-111(to )-111(all )-111(clients.)-613(The )-111(client )-111(sends )-111(its )-111(\336rst )-111(r)18(equest )-111(to )-111(the )-111(server)-78(\325s)]TJ 0 -1.2 TD [(well-known )-80(queue, )-80(and )-80(this )-80(r)18(equest )-80(must )-80(contain )-80(the )-80(message )-80(queue )-80(ID )-80(of )-80(the)]TJ T* [(client\325s )-94(queue.)-594(The )-94(server )-94(sends )-94(its )-94(\336rst )-94(r)18(esponse )-94(to )-94(the )-94(client\325s )-94(queue, )-94(and )-94(all)]TJ T* (futur)Tj 0.25 Tc 2.242 0 Td (er)Tj 0 Tc 1.106 0 Td [(equests and r)18(esponses ar)]TJ 0.25 Tc 10.951 0 Td (ee)Tj 0 Tc 1.208 0 Td (xchanged on this queue.)Tj -15.507 -2.16 Td [(One )-114(pr)18(oblem )-114(with )-114(this )-114(technique )-114(is )-114(that )-114(each )-114(client-speci\336c )-114(queue )-114(usually )-114(has)]TJ T* [(only )-112(a )-112(single )-112(message )-112(on )-112(it: )-112(a )-112(r)18(equest )-112(for )-112(the )-112(server )-112(or )-112(a )-112(r)18(esponse )-112(for )-112(a )-112(client.)]TJ T* [(This )-43(seems )-43(wasteful )-43(of )-43(a )-43(limited )-43(systemwide )-43(r)19(esour)18(ce )-43(\(a )-43(message )-43(queue\), )-43(and )-43(a)]TJ -0 -1.2 Td [(FIFO )-258(can )-258(be )-258(used )-258(instead.)-758(Another )-258(pr)18(oblem )-258(is )-258(that )-258(the )-258(server )-258(has )-258(to )-258(r)14(ead)]TJ T* [(messages )-434(fr)18(om )-434(multiple )-434(queues.)-932(Neither)]TJ /TT0 1 Tf 20.522 0 Td (select)Tj /T1_1 1 Tf 4.284 0 Td (nor)Tj /TT0 1 Tf 2.206 0 Td (poll)Tj /T1_1 1 Tf 3.084 0 Td [(works )-433(with)]TJ -30.096 -1.2 Td (message queues.)Tj -3.433 -2.4 Td [(Either )-36(of )-36(these )-36(two )-36(techniques )-36(using )-36(message )-36(queues )-36(can )-36(be )-36(implemented )-36(using )-36(shar)20(ed)]TJ T* [(memory segments and a synchr)18(onization method \(a semaphor)18(e)-250(or)-250(r)18(ecor)]TJ 0.25 Tc 31.762 0 Td (dl)Tj 0 Tc 1.152 0 Td (ocking\).)Tj -31.114 -1.2 Td [(The )-117(pr)18(oblem )-117(with )-117(this )-117(type )-117(of )-117(client\320server )-117(r)18(elationship )-117(\(the )-117(client )-117(and )-117(the )-117(server)]TJ -1.8 -1.2 Td [(being )-74(unr)18(elated )-74(pr)18(ocesses\) )-74(is )-74(for )-74(the )-74(server )-74(to )-74(identify )-74(the )-74(client )-74(accurately)]TJ 0.5742 Tc 33.487 0 Td (.U)Tj 0 Tc 1.602 0 Td [(nless )-74(the)]TJ -35.089 -1.2 Td [(server )-37(is )-37(performing )-37(a )-37(nonprivileged )-37(operation, )-37(it )-37(is )-37(essential )-37(that )-37(the )-37(server )-37(know )-37(who)]TJ T* [(the )-257(client )-257(is.)-757(This )-257(is )-257(r)18(equir)18(ed, )-257(for )-257(example, )-257(if )-257(the )-257(server )-257(is )-257(a )-257(set-user)18(-ID )-257(pr)16(ogram.)]TJ T* [(Although )-74(all )-74(these )-74(forms )-74(of )-74(IPC )-74(go )-74(thr)21(ough )-73(the )-73(kernel, )-73(ther)17(e)-323(is)-323(no)-323(f)-1(acility )-73(pr)18(ovided )-73(by)]TJ 0 -1.2 Td [(them to have the kernel identify the sender)74(.)]TJ -0.055 Tc 1.8 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-14(message )-14(queues, )-14(if )-14(a )-14(single )-14(queue )-14(is )-14(used )-14(between )-14(the )-14(client )-14(and )-14(the )-14(server )-14(\(so)]TJ -3.036 -1.2 Td (that only a single message is on the queue at a time, for example\), the\ )Tj /TT0 1 Tf 30.833 0 Td (msg_lspid)Tj /T1_1 1 Tf 5.65 0 Td (of the)Tj -36.484 -1.2 Td [(queue )-142(contains )-142(the )-142(pr)18(ocess )-142(ID )-142(of )-142(the )-142(other )-142(pr)15(ocess. )-392(But)-393(when )-142(writing )-142(the )-142(server)]TJ 0.3925 Tc 37.045 0 Td (,w)Tj 0 Tc 1.476 0 Td (e)Tj -38.521 -1.2 Td [(want )-73(the )-73(ef)18(fective )-73(user )-73(ID )-73(of )-73(the )-73(client, )-73(not )-73(its )-73(pr)17(ocess )-73(ID.)-573(Ther)18(e)-323(is)-323(no)-323(portable )-73(way )-73(to)]TJ -0 -1.2 Td [(obtain )-39(the )-39(ef)18(fective )-39(user )-39(ID, )-39(given )-39(the )-39(pr)18(ocess )-39(ID.)-538(\(Naturally)]TJ 0.2889 Tc 27.039 0 Td (,t)Tj 0 Tc 0.865 0 Td [(he )-39(kernel )-39(maintains )-39(both)]TJ -27.904 -1.2 Td [(values in the pr)18(ocess table entry)]TJ 0.2503 Tc 14.044 0 Td (,b)Tj 0 Tc 1.053 0 Td [(ut other than r)8(ummaging ar)18(ound thr)18(ough the kernel\325s)]TJ -15.098 -1.2 Td [(memory)111(,)-250(we)-250(can\325t obtain one, given the other)74(.\))]TJ -0.092 Tc 1.8 -1.2 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-67(use )-67(the )-67(following )-67(technique )-67(in )-67(Section )-67(17.2 )-67(to )-67(allow )-67(the )-67(server )-67(to )-67(identify )-67(the)]TJ -3.187 -1.2 Td [(client. )-315(The)-316(same )-65(technique )-65(can )-65(be )-65(used )-65(with )-65(FIFOs, )-65(message )-65(queues, )-65(semaphor)18(es, )-65(and)]TJ T* [(shar)18(ed )-43(memory)]TJ 0.5434 Tc 6.897 0 Td (.F)Tj 0 Tc 1.349 0 Td [(or )-43(the )-43(following )-43(description, )-43(assume )-43(that )-43(FIFOs )-43(ar)]TJ 0.2935 Tc 22.475 0 Td (eb)Tj 0 Tc 1.326 0 Td [(eing )-43(used, )-43(as )-43(in)]TJ -32.048 -1.2 Td (Figur)Tj 0.307 Tc 2.383 0 Td (e1)Tj 0 Tc 1.286 0 Td [(5.23. )-307(The)-307(client )-57(must )-57(cr)18(eate )-57(its )-57(own )-57(FIFO )-57(and )-57(set )-57(the )-57(\336le )-57(access )-57(permissions )-57(of)]TJ -3.669 -1.2 Td [(the )-99(FIFO )-99(so )-99(that )-99(only )-99(user)19(-r)18(ead )-99(and )-99(user)18(-write )-99(ar)]TJ 0.3489 Tc 22.386 0 Td (eo)Tj 0 Tc 1.374 0 Td [(n. )-349(W)]TJ 0.349 Tc 2.339 0 Td (ea)Tj 0 Tc 1.328 0 Td [(ssume )-99(that )-99(the )-99(server )-99(has)]TJ -27.427 -1.2 Td [(super)8(user )-79(privileges )-79(\(or )-79(else )-79(it )-79(pr)18(obably )-79(wouldn\325t )-79(car)]TJ 0.3292 Tc 24.005 0 Td (ea)Tj 0 Tc 1.308 0 Td [(bout )-79(the )-79(client\325s )-79(tr)8(ue )-79(identity\),)]TJ -25.313 -1.2 Td [(so )-46(the )-46(server )-46(can )-46(still )-46(r)18(ead )-46(and )-46(write )-46(to )-46(this )-46(FIFO.)-545(When )-46(the )-46(server )-46(r)18(eceives )-46(the )-46(client\325s)]TJ T* [(\336rst )-113(r)18(equest )-113(on )-113(the )-113(server)-74(\325s )-113(well-known )-113(FIFO )-113(\(which )-113(must )-113(contain )-113(the )-113(identity )-113(of )-113(the)]TJ T* [(client-speci\336c )-96(FIFO\), )-96(the )-96(server )-96(calls )-96(either)]TJ /TT0 1 Tf 19.552 0 Td (stat)Tj /T1_1 1 Tf 2.746 0 Td (or)Tj /TT0 1 Tf 1.287 0 Td (fstat)Tj /T1_1 1 Tf 3.346 0 Td [(on )-96(the )-96(client-speci\336c )-96(FIFO.)]TJ -26.929 -1.2 Td [(The )-54(server )-54(assumes )-54(that )-54(the )-54(ef)17(fective )-54(user )-54(ID )-54(of )-54(the )-54(client )-54(is )-54(the )-54(owner )-54(of )-54(the )-54(FIFO )-54(\(the)]TJ /TT0 1 Tf T* (st_uid)Tj /T1_1 1 Tf 4.01 0 Td [(\336eld )-160(of )-160(the)]TJ /TT0 1 Tf 5.481 0 Td (stat)Tj /T1_1 1 Tf 2.81 0 Td [(str)8(uctur)18(e\). )-410(The)-409(server )-160(veri\336es )-160(that )-160(only )-160(the )-160(user)20(-r)18(ead )-160(and)]TJ -12.3 -1.2 Td [(user)18(-write )-172(permissions )-172(ar)]TJ 0.4224 Tc 11.603 0 Td (ee)Tj 0 Tc 1.38 0 Td [(nabled. )-422(As)-423(another )-172(check, )-172(the )-172(server )-172(should )-172(look )-172(at )-172(the)]TJ -12.983 -1.2 Td [(thr)18(ee )-62(times )-62(associated )-62(with )-62(the )-62(FIFO )-62(\(the)]TJ /TT0 1 Tf 18.749 0 Td (st_atime)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 5.362 0 Td (st_mtime)Tj /T1_1 1 Tf 0.3119 Tc (,a)Tj 0 Tc 5.862 0 Td (nd)Tj /TT0 1 Tf 1.505 0 Td (st_ctime)Tj /T1_1 1 Tf 5.112 0 Td (\336elds)Tj -36.59 -1.2 Td [(of )-48(the)]TJ /TT0 1 Tf 2.863 0 Td (stat)Tj /T1_1 1 Tf 2.698 0 Td [(str)8(uctur)18(e\) )-48(to )-48(verify )-48(that )-48(they )-48(ar)]TJ 0.2984 Tc 13.839 0 Td (er)Tj 0 Tc 1.154 0 Td [(ecent )-48(\(no )-48(older )-48(than )-48(15 )-48(or )-48(30 )-48(seconds, )-48(for)]TJ -20.555 -1.2 Td [(example\). )-347(If)]TJ 0.3474 Tc 5.947 0 Td (am)Tj 0 Tc 1.73 0 Td [(alicious )-97(client )-97(can )-97(cr)18(eate )-97(a )-97(FIFO )-97(with )-97(someone )-97(else )-97(as )-97(the )-97(owner )-97(and)]TJ -7.677 -1.2 Td [(set )-44(the )-44(\336le\325s )-44(permission )-44(bits )-44(to )-44(user)20(-r)18(ead )-44(and )-44(user)18(-write )-44(only)]TJ 0.2937 Tc 26.999 0 Td (,t)Tj 0 Tc 0.87 0 Td [(hen )-44(the )-44(system )-44(has )-44(other)]TJ -27.869 -1.2 Td [(fundamental security pr)18(oblems.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47316 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.9)]TJ 36.454 0 Td [(Shar)18(ed )-250(Memory)]TJ /T1_1 1 Tf 9.379 0 Td (573)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (\245)Tj /TT0 1 Tf 1.489 0 Td (shm_lpid)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 5.3 0 Td (shm_nattch)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 6.5 0 Td (shm_atime)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 6.4 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (shm_dtime)Tj /T1_0 1 Tf 5.65 0 Td (ar)Tj 0.25 Tc 0.877 0 Td (ea)Tj 0 Tc 1.229 0 Td (ll set to 0.)Tj -28.888 -1.6 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (shm_ctime)Tj /T1_0 1 Tf 5.65 0 Td [(is set to the curr)18(ent time.)]TJ -7.139 -1.6 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (shm_segsz)Tj /T1_0 1 Tf 5.65 0 Td (is set to the)Tj /T1_2 1 Tf 5.203 0 Td (size)Tj /T1_0 1 Tf -0.018 Tc 1.75 0 Td (re)Tj 0 Tc 0.856 0 Td (quested.)Tj -14.948 -1.8 Td (The)Tj /T1_2 1 Tf 2.466 0 Td (size)Tj /T1_0 1 Tf 2.292 0 Td [(parameter )-542(is )-542(the )-542(size )-542(of )-542(the )-542(shar)20(ed )-542(memory )-542(segment )-542(in )-542(bytes.)]TJ -6.557 -1.2 Td [(Implementations )-34(will )-34(usually )-34(r)17(ound )-34(up )-34(this )-34(size )-34(to )-34(a )-34(multiple )-34(of )-34(the )-34(system\325s )-34(page )-34(size,)]TJ 0 -1.2 TD [(but )-209(if )-209(an )-209(application )-209(speci\336es)]TJ /T1_2 1 Tf 14.201 0 Td (size)Tj /T1_0 1 Tf 1.959 0 Td [(as )-209(a )-209(value )-209(other )-209(than )-209(an )-209(integral )-209(multiple )-209(of )-209(the)]TJ -16.16 -1.2 Td [(system\325s )-60(page )-60(size, )-60(the )-60(r)18(emainder )-60(of )-60(the )-60(last )-60(page )-60(will )-60(be )-60(unavailable )-60(for )-60(use.)-560(If )-60(a )-60(new)]TJ T* [(segment )-138(is )-138(being )-138(cr)18(eated )-138(\(typically )-138(by )-138(the )-138(server\), )-138(we )-138(must )-138(specify )-138(its)]TJ /T1_2 1 Tf 32.498 0 Td (size)Tj /T1_0 1 Tf 0.6378 Tc (.I)Tj 0 Tc 2.725 0 Td [(f)-388(we)-388(a)]TJ -0.018 Tc (re)Tj -35.222 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(encing )-1(an )-1(existing )-1(segment )-1(\(a )-1(client\), )-1(we )-1(can )-1(specify)]TJ /T1_2 1 Tf 24.45 0 Td (size)Tj /T1_0 1 Tf 1.75 0 Td [(as 0.)-500(When a new segment)]TJ -27.057 -1.2 Td [(is cr)18(eated, the contents of the segment ar)]TJ 0.25 Tc 17.899 0 Td (ei)Tj 0 Tc 1.02 0 Td [(nitialized with zer)18(os.)]TJ -17.119 -1.2 Td (The)Tj /TT0 1 Tf 1.924 0 Td (shmctl)Tj /T1_0 1 Tf 3.85 0 Td [(function is the catchall for various shar)18(ed memory operations.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 518.2689 Tm (#include )Tj 0 -1.902 TD (int shmctl\(int)Tj /T1_2 1 Tf 9 0 Td (shmid)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.245 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (cmd)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.485 0 Td (truct shmid_ds *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 11.082 0 Td (\);)Tj /T1_0 1 Tf -2.761 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4795.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 466.0041 Tm (The)Tj /T1_2 1 Tf 2.028 0 Td (cmd)Tj /T1_0 1 Tf 2.039 0 Td [(ar)18(gument )-104(speci\336es )-104(one )-104(of )-104(the )-104(following )-104(\336ve )-104(commands )-104(to )-104(be )-104(performed,)]TJ -5.867 -1.2 Td (on the segment speci\336ed by)Tj /T1_2 1 Tf 12.537 0 Td (shmid)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf -10.737 -2.04 Td (IPC_STAT)Tj /T1_0 1 Tf 6 0 Td [(Fetch )-328(the)]TJ /TT0 1 Tf 4.931 0 Td (shmid_ds)Tj /T1_0 1 Tf 5.378 0 Td [(str)8(uctur)]TJ 0.5784 Tc 3.49 0 Td (ef)Tj 0 Tc 1.39 0 Td [(or )-328(this )-328(segment, )-328(storing )-328(it )-328(in )-328(the)]TJ -15.19 -1.2 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ep)Tj 0 Tc 1.33 0 Td (ointed to by)Tj /T1_2 1 Tf 5.566 0 Td (buf)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf -16.386 -1.72 Td (IPC_SET)Tj /T1_0 1 Tf 6 0 Td [(Set )-123(the )-123(following )-123(thr)18(ee )-123(\336elds )-123(fr)18(om )-123(the )-123(str)8(uctur)]TJ 0.3732 Tc 21.268 0 Td (ep)Tj 0 Tc 1.453 0 Td [(ointed )-123(to )-123(by)]TJ /T1_2 1 Tf 5.936 0 Td (buf)Tj /T1_0 1 Tf 1.67 0 Td (in)Tj -30.327 -1.2 Td (the)Tj /TT0 1 Tf 1.656 0 Td (shmid_ds)Tj /T1_0 1 Tf 5.069 0 Td [(str)8(uctur)]TJ 0.2686 Tc 3.49 0 Td (ea)Tj 0 Tc 1.248 0 Td [(ssociated )-19(with )-19(this )-19(shar)18(ed )-19(memory )-19(segment:)]TJ /TT0 1 Tf -11.462 -1.2 Td (shm_perm.uid)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 8.549 0 Td (shm_perm.gid)Tj /T1_0 1 Tf 1.0992 Tc (,a)Tj 0 Tc 9.049 0 Td (nd)Tj /TT0 1 Tf 2.292 0 Td (shm_perm.mode)Tj /T1_0 1 Tf 1.3493 Tc (.T)Tj 0 Tc 10.012 0 Td (his)Tj -29.903 -1.2 Td [(command )-94(can )-94(be )-94(executed )-94(only )-94(by )-94(a )-94(pr)15(ocess )-94(whose )-94(ef)18(fective )-94(user )-94(ID)]TJ 0 -1.2 TD (equals)Tj /TT0 1 Tf 3.423 0 Td (shm_perm.cuid)Tj /T1_0 1 Tf 8.366 0 Td (or)Tj /TT0 1 Tf 1.506 0 Td (shm_perm.uid)Tj /T1_0 1 Tf 7.766 0 Td [(or )-315(by )-315(a )-315(pr)18(ocess )-315(with)]TJ -21.06 -1.2 Td [(super)8(user privileges.)]TJ /TT0 1 Tf -6 -1.72 Td (IPC_RMID)Tj /T1_0 1 Tf 6 0 Td [(Remove )-150(the )-150(shar)18(ed )-150(memory )-150(segment )-150(set )-150(fr)18(om )-150(the )-150(system.)-650(Since )-150(an)]TJ T* [(attachment )-266(count )-266(is )-266(maintained )-266(for )-266(shar)18(ed )-266(memory )-266(segments )-266(\(the)]TJ /TT0 1 Tf T* (shm_nattch)Tj /T1_0 1 Tf 6.48 0 Td [(\336eld )-230(in )-230(the)]TJ /TT0 1 Tf 5.685 0 Td (shmid_ds)Tj /T1_0 1 Tf 5.28 0 Td [(str)8(uctur)18(e\), )-230(the )-230(segment )-230(is )-230(not)]TJ -0.018 Tc -17.445 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(moved )-388(until )-388(the )-388(last )-388(pr)16(ocess )-388(using )-388(the )-388(segment )-388(terminates )-388(or)]TJ -0.856 -1.2 Td [(detaches )-241(it.)-741(Regar)18(dless )-241(of )-241(whether )-241(the )-241(segment )-241(is )-241(still )-241(in )-241(use, )-241(the)]TJ T* [(segment\325s )-206(identi\336er )-206(is )-206(immediately )-206(r)18(emoved )-206(so )-206(that)]TJ /TT0 1 Tf 24.633 0 Td (shmat)Tj /T1_0 1 Tf 3.456 0 Td [(can )-206(no)]TJ -28.09 -1.2 Td [(longer )-79(attach )-79(the )-79(segment.)-579(This )-79(command )-79(can )-79(be )-79(executed )-79(only )-79(by )-79(a)]TJ T* [(pr)18(ocess )-710(whose )-710(ef)18(fective )-710(user )-710(ID )-710(equals)]TJ /TT0 1 Tf 21.499 0 Td (shm_perm.cuid)Tj /T1_0 1 Tf 8.76 0 Td (or)Tj /TT0 1 Tf -30.259 -1.2 Td (shm_perm.uid)Tj /T1_0 1 Tf 7.45 0 Td [(or by a pr)18(ocess with super)8(user privileges.)]TJ -0.09 Tc -15.25 -2.04 Td (Tw)Tj 0.3737 Tc 1.357 0 Td (oa)Tj 0 Tc 1.42 0 Td [(dditional )-124(commands )-124(ar)]TJ 0.3737 Tc 10.546 0 Td (ep)Tj -0.018 Tc 1.454 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vided )-124(by )-124(Linux )-124(and )-124(Solaris, )-124(but )-124(ar)]TJ 0.3736 Tc 15.785 0 Td (en)Tj 0 Tc 1.435 0 Td [(ot )-124(part )-124(of )-124(the)]TJ -32.919 -1.2 Td (Single UNIX Speci\336cation.)Tj /TT0 1 Tf 1.8 -2.04 Td (SHM_LOCK)Tj /T1_0 1 Tf 7.2 0 Td [(Lock )-97(the )-97(shar)18(ed )-97(memory )-97(segment )-97(in )-97(memory)]TJ 0.597 Tc 20.574 0 Td (.T)Tj 0 Tc 1.46 0 Td [(his )-97(command )-97(can)]TJ -22.034 -1.2 Td [(be executed only by the super)8(user)74(.)]TJ /TT0 1 Tf -7.2 -1.72 Td (SHM_UNLOCK)Tj /T1_0 1 Tf 7.2 0 Td [(Unlock )-444(the )-444(shar)18(ed )-444(memory )-444(segment.)-946(This )-444(command )-444(can )-444(be)]TJ T* [(executed only by the super)8(user)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47317 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (568)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Note that the optional ar)18(gument is the actual union, not a pointer to the union.)]TJ 7.9995 0 0 7.9995 183.589 648.9611 Tm [(Usually )-249(our )-249(application )-249(must )-249(de\336ne )-249(the)]TJ /TT0 1 Tf 19.331 0 Td (semun)Tj /T1_1 1 Tf 3.499 0 Td [(union. )-499(However)74(,)-499(on)-499(F)]TJ -0.018 Tc 10.59 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD )-249(8.0, )-249(this )-249(is)]TJ -34.277 -1.25 Td (de\336ned for us in)Tj /TT0 1 Tf 7.541 0 Td ()Tj /T1_1 1 Tf (.)Tj 9.9994 0 0 9.9994 147.591 617.9629 Tm (The)Tj /T1_2 1 Tf 1.953 0 Td (cmd)Tj /T1_1 1 Tf 1.964 0 Td [(ar)18(gument )-29(speci\336es )-29(one )-29(of )-29(the )-29(following )-29(ten )-29(commands )-29(to )-29(be )-29(performed )-29(on)]TJ -5.718 -1.2 Td [(the )-121(set )-121(speci\336ed )-121(by)]TJ /T1_2 1 Tf 9.142 0 Td (semid)Tj /T1_1 1 Tf 0.6206 Tc (.T)Tj 0 Tc 3.818 0 Td [(he )-121(\336ve )-121(commands )-121(that )-121(r)18(efer )-121(to )-121(one )-121(particular )-121(semaphor)21(e)]TJ -12.959 -1.2 Td [(value )-59(use)]TJ /T1_2 1 Tf 4.563 0 Td (semnum)Tj /T1_1 1 Tf 3.756 0 Td [(to )-59(specify )-59(one )-59(member )-59(of )-59(the )-59(set.)-559(The )-59(value )-59(of)]TJ /T1_2 1 Tf 21.36 0 Td (semnum)Tj /T1_1 1 Tf 3.756 0 Td [(is )-59(between )-59(0)]TJ -33.434 -1.2 Td (and)Tj /T1_2 1 Tf 1.943 0 Td (nsems)Tj /TT1 1 Tf 2.668 0 Td (!)Tj /T1_2 1 Tf 0.716 0 Td (1)Tj /T1_1 1 Tf 0.25 Tc (,i)Tj 0 Tc 1.291 0 Td (nclusive.)Tj /TT0 1 Tf -4.817 -1.8 Td (IPC_STAT)Tj /T1_1 1 Tf 6 0 Td [(Fetch )-142(the)]TJ /TT0 1 Tf 4.559 0 Td (semid_ds)Tj /T1_1 1 Tf 5.192 0 Td [(str)8(uctur)]TJ 0.3923 Tc 3.49 0 Td (ef)Tj 0 Tc 1.204 0 Td [(or )-142(this )-142(set, )-142(storing )-142(it )-142(in )-142(the )-142(str)6(uctur)18(e)]TJ -14.445 -1.2 Td (pointed to by)Tj /T1_2 1 Tf 6.167 0 Td [(ar)18(g.buf)]TJ /T1_1 1 Tf (.)Tj /TT0 1 Tf -12.167 -1.6 Td (IPC_SET)Tj /T1_1 1 Tf 6 0 Td [(Set )-30(the)]TJ /TT0 1 Tf 3.277 0 Td (sem_perm.uid)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 7.73 0 Td (sem_perm.gid)Tj /T1_1 1 Tf 0.28 Tc (,a)Tj 0 Tc 8.23 0 Td (nd)Tj /TT0 1 Tf 1.473 0 Td (sem_perm.mode)Tj /T1_1 1 Tf 8.08 0 Td (\336elds)Tj -28.79 -1.2 Td [(fr)18(om )-190(the )-190(str)9(uctur)]TJ 0.4397 Tc 7.895 0 Td (ep)Tj 0 Tc 1.52 0 Td [(ointed )-190(to )-190(by)]TJ /T1_2 1 Tf 6.135 0 Td [(ar)18(g.buf)]TJ /T1_1 1 Tf 3.302 0 Td [(in )-190(the)]TJ /TT0 1 Tf 3.139 0 Td (semid_ds)Tj /T1_1 1 Tf 5.24 0 Td [(str)8(uctur)18(e)]TJ -27.231 -1.2 Td [(associated )-189(with )-189(this )-189(set.)-690(This )-189(command )-189(can )-189(be )-189(executed )-189(only )-189(by )-189(a)]TJ 0 -1.2 TD [(pr)18(ocess )-710(whose )-710(ef)18(fective )-710(user )-710(ID )-710(equals)]TJ /TT0 1 Tf 21.499 0 Td (sem_perm.cuid)Tj /T1_1 1 Tf 8.76 0 Td (or)Tj /TT0 1 Tf -30.259 -1.2 Td (sem_perm.uid)Tj /T1_1 1 Tf 7.45 0 Td [(or by a pr)18(ocess with super)8(user privileges.)]TJ /TT0 1 Tf -13.45 -1.6 Td (IPC_RMID)Tj /T1_1 1 Tf 6 0 Td [(Remove )-495(the )-495(semaphor)]TJ 0.7454 Tc 10.89 0 Td (es)Tj 0 Tc 1.648 0 Td [(et )-495(fr)18(om )-495(the )-495(system.)-997(This )-495(r)18(emoval )-495(is)]TJ -12.538 -1.2 Td [(immediate. )-393(Any)-393(other )-143(pr)18(ocess )-143(still )-143(using )-143(the )-143(semaphor)]TJ 0.3931 Tc 25.392 0 Td (ew)Tj 0 Tc 1.706 0 Td [(ill )-143(get )-143(an)]TJ -27.098 -1.2 Td [(err)18(or )-212(of)]TJ /TT0 1 Tf 3.996 0 Td (EIDRM)Tj /T1_1 1 Tf 3.462 0 Td [(on )-212(its )-212(next )-212(attempted )-212(operation )-212(on )-212(the )-212(semaphor)15(e.)]TJ -7.458 -1.2 Td [(This )-22(command )-22(can )-22(be )-22(executed )-22(only )-22(by )-22(a )-22(pr)18(ocess )-22(whose )-22(ef)18(fective )-22(user)]TJ T* [(ID )-129(equals)]TJ /TT0 1 Tf 4.726 0 Td (sem_perm.cuid)Tj /T1_1 1 Tf 8.179 0 Td (or)Tj /TT0 1 Tf 1.32 0 Td (sem_perm.uid)Tj /T1_1 1 Tf 7.579 0 Td [(or )-129(by )-129(a )-129(pr)17(ocess )-129(with)]TJ -21.805 -1.2 Td [(super)8(user privileges.)]TJ /TT0 1 Tf -6 -1.6 Td (GETVAL)Tj /T1_1 1 Tf 6 0 Td (Return the value of)Tj /TT0 1 Tf 8.757 0 Td (semval)Tj /T1_1 1 Tf 3.85 0 Td (for the member)Tj /T1_2 1 Tf 7.083 0 Td (semnum)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf -25.69 -1.6 Td (SETVAL)Tj /T1_1 1 Tf 6 0 Td [(Set )-337(the )-337(value )-337(of)]TJ /TT0 1 Tf 8.383 0 Td (semval)Tj /T1_1 1 Tf 4.187 0 Td [(for )-337(the )-337(member)]TJ /T1_2 1 Tf 8.095 0 Td (semnum)Tj /T1_1 1 Tf 0.8372 Tc (.T)Tj 0 Tc 5.146 0 Td [(he )-337(value )-337(is)]TJ -25.812 -1.2 Td (speci\336ed by)Tj /T1_2 1 Tf 5.543 0 Td [(ar)18(g.val)]TJ /T1_1 1 Tf (.)Tj /TT0 1 Tf -11.543 -1.6 Td (GETPID)Tj /T1_1 1 Tf 6 0 Td (Return the value of)Tj /TT0 1 Tf 8.757 0 Td (sempid)Tj /T1_1 1 Tf 3.85 0 Td (for the member)Tj /T1_2 1 Tf 7.083 0 Td (semnum)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf -25.69 -1.6 Td (GETNCNT)Tj /T1_1 1 Tf 6 0 Td (Return the value of)Tj /TT0 1 Tf 8.757 0 Td (semncnt)Tj /T1_1 1 Tf 4.45 0 Td (for the member)Tj /T1_2 1 Tf 7.083 0 Td (semnum)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf -26.29 -1.6 Td (GETZCNT)Tj /T1_1 1 Tf 6 0 Td (Return the value of)Tj /TT0 1 Tf 8.757 0 Td (semzcnt)Tj /T1_1 1 Tf 4.45 0 Td (for the member)Tj /T1_2 1 Tf 7.083 0 Td (semnum)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf -26.29 -1.6 Td (GETALL)Tj /T1_1 1 Tf 6 0 Td [(Fetch )-99(all )-99(the )-99(semaphor)]TJ 0.3492 Tc 10.296 0 Td (ev)Tj 0 Tc 1.393 0 Td [(alues )-99(in )-99(the )-99(set.)-600(These )-99(values )-99(ar)]TJ 0.3493 Tc 14.698 0 Td (es)Tj 0 Tc 1.252 0 Td [(tor)18(ed )-99(in)]TJ -27.639 -1.2 Td (the array pointed to by)Tj /T1_2 1 Tf 10.4 0 Td [(ar)18(g.array)]TJ /T1_1 1 Tf (.)Tj /TT0 1 Tf -16.4 -1.6 Td (SETALL)Tj /T1_1 1 Tf 6 0 Td [(Set )-184(all )-184(the )-184(semaphor)]TJ 0.4339 Tc 9.493 0 Td (ev)Tj 0 Tc 1.478 0 Td [(alues )-184(in )-184(the )-184(set )-184(to )-184(the )-184(values )-184(pointed )-184(to )-184(by)]TJ /T1_2 1 Tf -10.971 -1.2 Td [(ar)18(g.array)]TJ /T1_1 1 Tf (.)Tj -7.8 -1.8 Td [(For )-91(all )-91(the)]TJ /TT0 1 Tf 4.989 0 Td (GET)Tj /T1_1 1 Tf 2.141 0 Td [(commands )-91(other )-91(than)]TJ /TT0 1 Tf 10.214 0 Td (GETALL)Tj /T1_1 1 Tf 0.341 Tc (,t)Tj 0 Tc 4.517 0 Td [(he )-91(function )-91(r)18(eturns )-91(the )-91(corr)18(esponding)]TJ -21.861 -1.2 Td [(value. )-269(For)-269(the )-19(r)18(emaining )-19(commands, )-19(the )-19(r)19(eturn )-19(value )-19(is )-19(0 )-19(if )-19(the )-19(call )-19(succeeds.)-519(On )-19(err)21(or)74(,)]TJ 0 -1.2 Td (the)Tj /TT0 1 Tf 1.637 0 Td (semctl)Tj /T1_1 1 Tf 3.85 0 Td (function sets)Tj /TT0 1 Tf 5.86 0 Td (errno)Tj /T1_1 1 Tf 3.25 0 Td [(and r)18(eturns)]TJ /TT1 1 Tf 5.379 0 Td (!)Tj /T1_1 1 Tf (1.)Tj -18.176 -1.2 Td [(The )-13(function)]TJ /TT0 1 Tf 5.908 0 Td (semop)Tj /T1_1 1 Tf 3.263 0 Td [(atomically )-13(performs )-13(an )-13(array )-13(of )-13(operations )-13(on )-13(a )-13(semaphor)]TJ 0.2634 Tc 25.807 0 Td (es)Tj 0 Tc 1.166 0 Td (et.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5922 194.4883 Tm (#include )Tj 0 -1.783 TD (int semop\(int)Tj /T1_2 1 Tf 8.4 0 Td (semid)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 4.134 0 Td (truct sembuf)Tj /T1_2 1 Tf 7.8 0 Td (semoparray)Tj /TT0 1 Tf ([], size_t)Tj /T1_2 1 Tf 11.266 0 Td (nops)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -4.749 -1.783 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1579.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 145.5825 Tm (The)Tj /T1_2 1 Tf 1.984 0 Td (semoparray)Tj /T1_1 1 Tf 4.976 0 Td [(ar)18(gument )-60(is )-60(a )-60(pointer )-60(to )-60(an )-60(array )-60(of )-60(semaphor)]TJ 0.3095 Tc 20.789 0 Td (eo)Tj 0 Tc 1.334 0 Td [(perations, )-59(r)18(epr)18(esented)]TJ -29.082 -1.2 Td (by)Tj /TT0 1 Tf 1.359 0 Td (sembuf)Tj /T1_1 1 Tf 3.85 0 Td [(str)8(uctur)18(es:)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47318 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf -0.037 Tc 9 0 0 9 93.6 708 Tm (11)Tj 0 Tc 0.963 0 Td (0)Tj /T1_1 1 Tf 2.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.278 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(These )-105(four )-105(functions )-105(operate )-105(similarly )-105(unless )-105(the )-105(r)15(efer)18(enced )-105(\336le )-105(is )-105(a )-105(symbolic )-105(link.)-607(In)]TJ 0 -1.2 Td [(that )-105(case,)]TJ /TT0 1 Tf 4.542 0 Td (lchown)Tj /T1_1 1 Tf 3.955 0 Td (and)Tj /TT0 1 Tf 2.048 0 Td (fchownat)Tj /T1_1 1 Tf 5.155 0 Td [(\(with )-105(the)]TJ /TT0 1 Tf 4.464 0 Td (AT_SYMLINK_NOFOLLOW)Tj /T1_1 1 Tf 11.755 0 Td [(\337ag )-105(set\) )-105(change)]TJ -31.92 -1.2 Td (the owners of the symbolic link itself, not the \336le pointed to by the\ symbolic link.)Tj 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.041 0 Td (fchown)Tj /T1_1 1 Tf 3.967 0 Td [(function )-117(changes )-117(the )-117(ownership )-117(of )-117(the )-117(open )-117(\336le )-117(r)20(efer)18(enced )-117(by )-117(the)]TJ /T1_2 1 Tf 30.415 0 Td (fd)Tj /T1_1 1 Tf -38.222 -1.2 Td [(ar)18(gument. )-293(Since)-293(it )-43(operates )-43(on )-43(a )-43(\336le )-43(that )-43(is )-43(alr)18(eady )-43(open, )-43(it )-43(can\325t )-43(be )-43(used )-43(to )-43(change )-43(the)]TJ 0 -1.2 TD (ownership of a symbolic link.)Tj 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.03 0 Td (fchownat)Tj /T1_1 1 Tf 5.156 0 Td [(function )-106(behaves )-106(like )-106(either)]TJ /TT0 1 Tf 12.883 0 Td (chown)Tj /T1_1 1 Tf 3.356 0 Td (or)Tj /TT0 1 Tf 1.297 0 Td (lchown)Tj /T1_1 1 Tf 3.956 0 Td [(when )-106(the)]TJ /T1_2 1 Tf 4.577 0 Td (pathname)Tj /T1_1 1 Tf -35.056 -1.2 Td [(ar)18(gument )-301(is )-301(absolute )-301(or )-301(when )-301(the)]TJ /T1_2 1 Tf 16.852 0 Td (fd)Tj /T1_1 1 Tf 1.329 0 Td [(ar)18(gument )-300(has )-300(the )-300(value)]TJ /TT0 1 Tf 11.839 0 Td (AT_FDCWD)Tj /T1_1 1 Tf 5.351 0 Td [(and )-300(the)]TJ /T1_2 1 Tf -35.37 -1.2 Td (pathname)Tj /T1_1 1 Tf 4.509 0 Td [(ar)18(gument )-314(is )-314(r)17(elative. )-565(In)-564(these )-315(cases,)]TJ /TT0 1 Tf 17.946 0 Td (fchownat)Tj /T1_1 1 Tf 5.365 0 Td [(acts )-315(like)]TJ /TT0 1 Tf 4.44 0 Td (lchown)Tj /T1_1 1 Tf 4.165 0 Td [(if )-315(the)]TJ /TT0 1 Tf -36.424 -1.2 Td (AT_SYMLINK_NOFOLLOW)Tj /T1_1 1 Tf 11.953 0 Td [(\337ag )-303(is )-303(set )-303(in )-303(the)]TJ /T1_2 1 Tf 8.635 0 Td (\337ag)Tj /T1_1 1 Tf 2.042 0 Td [(ar)18(gument, )-303(or )-303(it )-303(acts )-303(like)]TJ /TT0 1 Tf 12.192 0 Td (chown)Tj /T1_1 1 Tf 3.553 0 Td (if)Tj -38.376 -1.2 Td (the)Tj /TT0 1 Tf 1.895 0 Td (AT_SYMLINK_NOFOLLOW)Tj /T1_1 1 Tf 11.908 0 Td [(\337ag )-258(is )-258(clear)]TJ 0.7582 Tc 5.43 0 Td (.W)Tj 0 Tc 2.008 0 Td [(hen )-258(the)]TJ /T1_2 1 Tf 4.046 0 Td (fd)Tj /T1_1 1 Tf 1.286 0 Td [(ar)18(gument )-258(is )-258(set )-258(to )-258(the )-258(\336le)]TJ -26.575 -1.2 Td [(descriptor )-228(of )-228(an )-228(open )-228(dir)18(ectory )-228(and )-228(the)]TJ /T1_2 1 Tf 19.133 0 Td (pathname)Tj /T1_1 1 Tf 4.422 0 Td [(ar)18(gument )-228(is )-228(a )-228(r)18(elative )-228(pathname,)]TJ /TT0 1 Tf -23.556 -1.2 Td (fchownat)Tj /T1_1 1 Tf 5.05 0 Td (evaluates the)Tj /T1_2 1 Tf 6.054 0 Td (pathname)Tj /T1_1 1 Tf -0.018 Tc 4.194 0 Td (re)Tj 0 Tc 0.856 0 Td [(lative to the open dir)18(ectory)111(.)]TJ -14.354 -1.2 Td (Historically)Tj 0.7341 Tc 5.076 0 Td (,B)Tj 0 Tc 1.595 0 Td (SD)Tj 1.299 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-484(systems )-484(have )-484(enfor)18(ced )-484(the )-484(r)18(estriction )-484(that )-484(only )-484(the)]TJ -10.103 -1.2 Td [(super)8(user )-14(can )-14(change )-14(the )-14(ownership )-14(of )-14(a )-14(\336le.)-514(This )-14(is )-14(to )-14(pr)18(event )-14(users )-14(fr)18(om )-14(giving )-14(away)]TJ T* [(their )-233(\336les )-233(to )-233(others, )-233(ther)18(eby )-233(defeating )-233(any )-233(disk )-233(space )-233(quota )-233(r)14(estrictions. )-483(System)]TJ -0.129 Tc 38.157 0 Td (V,)Tj 0 Tc -38.157 -1.2 Td (however)Tj 0.25 Tc 3.806 0 Td (,h)Tj 0 Tc 1.082 0 Td (as allowed all users to change the ownership of any \336les they own.)Tj 7.9995 0 0 7.9995 183.5903 456.9726 Tm [(POSIX.1 )-1222(allows )-1222(either )-1222(form )-1222(of )-1222(operation, )-1222(depending )-1222(on )-1222(the )-1222(value )-1222(of)]TJ /TT0 1 Tf 0 -1.25 TD (_POSIX_CHOWN_RESTRICTED)Tj /T1_1 1 Tf (.)Tj -0.055 Tc 0 -1.875 TD (Wi)Tj 0 Tc 1.236 0 Td [(th )-88(Solaris )-88(10, )-88(this )-88(functionality )-88(is )-88(a )-88(con\336guration )-88(option, )-88(whose )-88(default )-88(value )-88(is )-88(to )-88(enfor)16(ce)]TJ -1.236 -1.25 Td [(the )-227(r)18(estriction. )-477(Fr)18(eeBSD )-227(8.0, )-227(Linux )-227(3.2.0, )-227(and )-227(Mac )-227(OS )-227(X )-227(10.6.8 )-227(always )-227(enfor)18(ce )-227(the)]TJ /TT0 1 Tf 39 0 Td (chown)Tj /T1_1 1 Tf -0.018 Tc -39 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (striction.)Tj 9.9994 0 0 9.9994 129.5934 390.9765 Tm [(Recall )-87(fr)18(om )-87(Section )-87(2.6 )-87(that )-87(the)]TJ /TT0 1 Tf 14.401 0 Td (_POSIX_CHOWN_RESTRICTED)Tj /T1_1 1 Tf 14.138 0 Td [(constant )-88(can )-88(optionally)]TJ -28.539 -1.2 Td [(be )-202(de\336ned )-202(in )-202(the )-202(header)]TJ /TT0 1 Tf 11.965 0 Td ()Tj /T1_1 1 Tf 0.452 Tc (,a)Tj 0 Tc 7.202 0 Td [(nd )-202(can )-202(always )-202(be )-202(queried )-202(using )-202(either )-202(the)]TJ /TT0 1 Tf -19.167 -1.2 Td (pathconf)Tj /T1_1 1 Tf 5.378 0 Td [(function )-328(or )-328(the)]TJ /TT0 1 Tf 7.77 0 Td (fpathconf)Tj /T1_1 1 Tf 5.978 0 Td [(function. )-578(Also)]TJ -0.018 Tc 7.403 0 Td (re)Tj 0 Tc 0.856 0 Td [(call )-328(that )-328(this )-328(option )-328(can)]TJ -27.385 -1.2 Td [(depend )-92(on )-92(the )-92(r)17(efer)18(enced )-92(\336le; )-92(it )-92(can )-92(be )-92(enabled )-92(or )-92(disabled )-92(on )-92(a )-92(per )-92(\336le )-92(system )-92(basis.)]TJ -0.092 Tc 0 -1.2 TD (We)Tj 0 Tc 1.387 0 Td [(\325ll )-260(use )-260(the )-260(phrase )-260(\324)35(\324if)]TJ /TT0 1 Tf 10.43 0 Td (_POSIX_CHOWN_RESTRICTED)Tj /T1_1 1 Tf 14.311 0 Td [(is )-261(in )-261(ef)19(fect,\325)37(\325)-511(to)-511(m)1(ean )-261(\324)37(\324if )-261(it)]TJ -26.127 -1.2 Td [(applies )-49(to )-49(the )-49(particular )-49(\336le )-49(that )-49(we\325r)]TJ 0.2994 Tc 16.665 0 Td (et)Tj 0 Tc 1.104 0 Td [(alking )-49(about,\325)]TJ 0.2994 Tc 6.094 0 Td (\325r)Tj 0 Tc 0.954 0 Td [(egar)18(dless )-49(of )-49(whether )-49(this )-49(actual)]TJ -24.819 -1.2 Td [(constant is de\336ned in the header)74(.)]TJ 1.8 -1.2 Td (If)Tj /TT0 1 Tf 0.92 0 Td (_POSIX_CHOWN_RESTRICTED)Tj /T1_1 1 Tf 14.05 0 Td [(is in ef)18(fect for the speci\336ed \336le, then)]TJ -14.97 -1.92 Td [(1. )-633(Only)]TJ 0.25 Tc 4.098 0 Td (as)Tj 0 Tc 1.174 0 Td [(uper)8(user pr)18(ocess can change the user ID of the \336le.)]TJ -5.272 -1.6 Td [(2. )-633(A)-300(nonsuper)8(user )-50(pr)18(ocess )-50(can )-50(change )-50(the )-50(gr)18(oup )-50(ID )-50(of )-50(the )-50(\336le )-50(if )-50(the )-50(pr)13(ocess )-50(owns)]TJ 1.633 -1.2 Td [(the )-51(\336le )-51(\(the )-51(ef)18(fective )-51(user )-51(ID )-51(equals )-51(the )-51(user )-51(ID )-51(of )-51(the )-51(\336le\),)]TJ /T1_2 1 Tf 26.593 0 Td (owner)Tj /T1_1 1 Tf 2.801 0 Td [(is )-50(speci\336ed )-50(as)]TJ /TT1 1 Tf -29.393 -1.2 Td (!)Tj /T1_1 1 Tf [(1)-254(or)-254(equals )-4(the )-4(user )-4(ID )-4(of )-4(the )-4(\336le, )-4(and)]TJ /T1_2 1 Tf 17.37 0 Td [(gr)18(oup)]TJ /T1_1 1 Tf 2.625 0 Td [(equals )-4(either )-4(the )-4(ef)18(fective )-4(gr)18(oup )-4(ID)]TJ -19.995 -1.2 Td [(of the pr)18(ocess or one of the pr)18(ocess\325s supplementary gr)18(oup IDs.)]TJ -3.433 -1.92 Td [(This )-80(means )-80(that )-80(when)]TJ /TT0 1 Tf 10.31 0 Td (_POSIX_CHOWN_RESTRICTED)Tj /T1_1 1 Tf 14.13 0 Td [(is )-80(in )-80(ef)18(fect, )-80(you )-80(can\325t )-80(change )-80(the)]TJ -24.44 -1.2 Td [(user )-110(ID )-110(of )-110(your )-110(\336les.)]TJ -0.092 Tc 10.089 0 Td (Yo)Tj 0.3599 Tc 1.121 0 Td (uc)Tj 0 Tc 1.407 0 Td [(an )-110(change )-110(the )-110(gr)18(oup )-110(ID )-110(of )-110(\336les )-110(that )-110(you )-110(own, )-110(but )-110(only )-110(to)]TJ -12.617 -1.2 Td [(gr)18(oups that you belong to.)]TJ 1.8 -1.2 Td [(If )-315(these )-315(functions )-315(ar)]TJ 0.5652 Tc 9.664 0 Td (ec)Tj 0 Tc 1.488 0 Td [(alled )-315(by )-315(a )-315(pr)17(ocess )-315(other )-315(than )-315(a )-315(super)8(user )-315(pr)18(ocess, )-315(on)]TJ -12.952 -1.2 Td [(successful r)18(eturn, both the set-user)18(-ID and the set-gr)18(oup-ID bits ar)]TJ 0.25 Tc 29.254 0 Td (ec)Tj 0 Tc 1.173 0 Td [(lear)18(ed.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47319 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.5)]TJ 37.602 0 Td [(Data )-250(T)90(ransfer)]TJ /T1_1 1 Tf 8.231 0 Td (619)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (hint.ai_addr = NULL;)Tj 0 -1.189 TD (hint.ai_next = NULL;)Tj T* (if \(\(err = getaddrinfo\(host, "ruptime", &hint, &ailist\)\) != 0\) {)Tj 2.4 -1.189 Td (syslog\(LOG_ERR, "ruptimed: getaddrinfo error: %s",)Tj 1.2 -1.189 Td (gai_strerror\(err\)\);)Tj -1.2 -1.189 Td (exit\(1\);)Tj -2.4 -1.189 Td (})Tj T* (for \(aip = ailist; aip != NULL; aip = aip->ai_next\) {)Tj 2.4 -1.189 Td (if \(\(sockfd = initserver\(SOCK_STREAM, aip->ai_addr,)Tj 1.2 -1.189 Td (aip->ai_addrlen, QLEN\)\) >= 0\) {)Tj 1.2 -1.189 Td (serve\(sockfd\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (exit\(1\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5050.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 187.5255 488.9403 Tm (Figure 16.18)Tj /T1_0 1 Tf 6.195 0 Td [(Server pr)18(ogram illustrating command writing dir)18(ectly to socket)]TJ 9.9988 0 0 9.9988 129.5846 464.9432 Tm [(Instead )-73(of )-73(using)]TJ /TT0 1 Tf 7.562 0 Td (popen)Tj /T1_0 1 Tf 3.323 0 Td [(to )-73(r)8(un )-73(the)]TJ /TT0 1 Tf 4.799 0 Td (uptime)Tj /T1_0 1 Tf 3.923 0 Td [(command )-73(and )-73(r)18(eading )-73(the )-73(output )-73(fr)18(om )-73(the)]TJ -19.607 -1.2 Td [(pipe )-252(connected )-252(to )-252(the )-252(command\325s )-252(standar)]TJ 0.5019 Tc 19.704 0 Td (do)Tj 0 Tc 1.659 0 Td [(utput, )-252(we )-252(use)]TJ /TT0 1 Tf 7.033 0 Td (fork)Tj /T1_0 1 Tf 2.902 0 Td [(to )-252(cr)18(eate )-252(a )-252(child)]TJ -31.299 -1.2 Td [(pr)18(ocess )-3(and )-3(then )-3(use)]TJ /TT0 1 Tf 9.475 0 Td (dup2)Tj /T1_0 1 Tf 2.653 0 Td [(to )-3(arrange )-3(that )-3(the )-3(child\325s )-3(copy )-3(of)]TJ /TT0 1 Tf 15.118 0 Td (STDIN_FILENO)Tj /T1_0 1 Tf 7.453 0 Td [(is )-3(open )-3(to)]TJ /TT0 1 Tf -34.699 -1.2 Td (/dev/null)Tj /T1_0 1 Tf 5.905 0 Td [(and )-255(that )-255(both)]TJ /TT0 1 Tf 6.949 0 Td (STDOUT_FILENO)Tj /T1_0 1 Tf 8.305 0 Td (and)Tj /TT0 1 Tf 2.198 0 Td (STDERR_FILENO)Tj /T1_0 1 Tf 8.305 0 Td (ar)Tj 0.505 Tc 0.877 0 Td (eo)Tj 0 Tc 1.53 0 Td [(pen )-255(to )-255(the)]TJ -34.069 -1.2 Td [(socket )-230(endpoint.)-730(When )-230(we )-230(execute)]TJ /TT0 1 Tf 16.977 0 Td (uptime)Tj /T1_0 1 Tf 0.4805 Tc (,t)Tj 0 Tc 4.656 0 Td [(he )-230(command )-230(writes )-230(the )-230(r)18(esults )-230(to )-230(its)]TJ -21.634 -1.2 Td (standar)Tj 0.449 Tc 3.32 0 Td (do)Tj 0 Tc 1.606 0 Td [(utput, )-199(which )-199(is )-199(connected )-199(to )-199(the )-199(socket, )-199(and )-199(the )-199(data )-199(is )-199(sent )-199(back )-199(to )-199(the)]TJ /TT0 1 Tf -4.926 -1.2 Td (ruptime)Tj /T1_0 1 Tf 4.45 0 Td (client command.)Tj -2.65 -1.2 Td [(The )-120(par)18(ent )-120(can )-120(safely )-120(close )-120(the )-120(\336le )-120(descriptor )-120(connected )-120(to )-120(the )-120(client, )-120(because )-120(the)]TJ -1.8 -1.2 Td [(child )-61(still )-61(has )-61(it )-61(open.)-561(The )-61(par)18(ent )-61(waits )-61(for )-61(the )-61(child )-61(to )-61(complete )-61(befor)]TJ 0.3106 Tc 31.714 0 Td (ep)Tj -0.018 Tc 1.391 0 Td (ro)Tj 0 Tc 0.923 0 Td [(ceeding, )-61(so)]TJ -34.027 -1.2 Td [(that )-184(the )-184(child )-184(doesn\325t )-184(become )-184(a )-184(zombie.)-685(Since )-184(it )-184(shouldn\325t )-184(take )-184(too )-184(long )-184(to )-184(r)8(un )-184(the)]TJ /TT0 1 Tf 0 -1.2 TD (uptime)Tj /T1_0 1 Tf 3.962 0 Td [(command, )-112(the )-112(par)18(ent )-112(can )-112(af)19(for)18(d)-362(to)-362(w)1(ait )-112(for )-112(the )-112(child )-112(to )-112(exit )-112(befor)]TJ 0.3617 Tc 29.975 0 Td (ea)Tj 0 Tc 1.341 0 Td (ccepting)Tj -35.277 -1.2 Td [(the next connect r)17(equest. )-250(This)-251(strategy might not be appr)18(opriate if the child takes a long)]TJ 0 -1.2 Td [(time, however)74(.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3210.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 147.5734 292.1464 Tm [(The )-219(pr)18(evious )-219(examples )-219(have )-219(used )-219(connection-oriented )-219(sockets.)-719(But )-219(how )-219(do )-219(we)]TJ -1.8 -1.2 Td [(choose )-45(the )-45(appr)18(opriate )-45(type?)-545(When )-45(do )-45(we )-45(use )-45(a )-45(connection-oriented )-45(socket, )-45(and )-45(when)]TJ T* [(do )-68(we )-68(use )-68(a )-68(connectionless )-68(socket?)-568(The )-68(answer )-68(depends )-68(on )-68(how )-68(much )-68(work )-68(we )-68(want)]TJ T* [(to do and how much tolerance we have for err)18(ors.)]TJ -0.055 Tc 1.8 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-5(a )-5(connectionless )-5(socket, )-5(packets )-5(can )-5(arrive )-5(out )-5(of )-5(or)19(der)74(,)-255(so)-255(if)-255(w)]TJ 0.2548 Tc (ec)Tj 0 Tc 29.957 0 Td [(an\325t )-5(\336t )-5(all )-5(our)]TJ -32.993 -1.2 Td [(data )-232(in )-232(one )-232(packet, )-232(we )-232(will )-232(have )-232(to )-232(worry )-232(about )-232(or)14(dering )-232(in )-232(our )-232(application.)-734(The)]TJ T* [(maximum )-133(packet )-133(size )-133(is )-133(a )-133(characteristic )-133(of )-133(the )-133(communication )-133(pr)15(otocol. )-383(Also,)-383(with )-133(a)]TJ 0 -1.2 Td [(connectionless )-54(socket, )-54(the )-54(packets )-54(can )-54(be )-54(lost.)-554(If )-54(our )-54(application )-54(can\325t )-54(tolerate )-54(this )-54(loss,)]TJ T* (we should use connection-oriented sockets.)Tj -0.092 Tc 1.8 -1.2 Td (To)Tj 0 Tc 1.067 0 Td [(lerating )-4(packet )-4(loss )-4(means )-4(that )-4(we )-4(have )-4(two )-4(choices.)-504(If )-4(we )-4(intend )-4(to )-4(have )-4(r)22(eliable)]TJ -2.867 -1.2 Td [(communication )-545(with )-545(our )-545(peer)73(,)-795(we)-795(h)-1(ave )-546(to )-546(number )-546(our )-546(packets )-546(and )-546(r)20(equest)]TJ -0.018 Tc -0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(transmission )-172(fr)18(om )-172(the )-172(peer )-172(application )-172(when )-172(we )-172(detect )-172(a )-172(missing )-172(packet.)]TJ -0.092 Tc 34.574 0 Td [(We )-356(a)]TJ 0 Tc 2.309 0 Td (lso)Tj -37.739 -1.2 Td [(have )-116(to )-116(identify )-116(duplicate )-116(packets )-116(and )-116(discar)]TJ 0.3664 Tc 20.481 0 Td (dt)Tj 0 Tc 1.303 0 Td [(hem, )-116(since )-116(a )-116(packet )-116(might )-116(be )-116(delayed)]TJ -21.785 -1.2 Td [(and appear to be lost, but show up after we have r)18(equested r)18(etransmission.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47320 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(19.3)]TJ 27.958 0 Td [(Opening )-250(Pseudo-T)92(erminal )-250(Devices)]TJ /T1_1 1 Tf 17.875 0 Td (725)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm (int)Tj 0 -1.189 TD (ptym_open\(char *pts_name, int pts_namesz\))Tj T* ({)Tj 2.4 -1.189 Td [(char )-1800(*ptr;)]TJ T* [(int )-2400(fdm,)-600(err;)]TJ 0 -2.021 TD (if \(\(fdm = posix_openpt\(O_RDWR\)\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td [(if \(grantpt\(fdm\) < 0\))-4200(/* grant access to slave */)]TJ 2.4 -1.189 Td (goto errout;)Tj -2.4 -1.189 Td [(if \(unlockpt\(fdm\) < 0\))-3600(/* clear slave\325s lock flag */)]TJ 2.4 -1.189 Td (goto errout;)Tj -2.4 -1.189 Td [(if \(\(ptr = ptsname\(fdm\)\) == NULL\))-1800(/* get slave\325s name */)]TJ 2.4 -1.189 Td (goto errout;)Tj -2.4 -2.021 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*R)Tj 0 Tc 1.8 0 Td [(eturn name of slave.)-1200(Null terminate to handle)]TJ 0.6 Tc -1.8 -1.189 Td (*c)Tj 0 Tc 1.8 0 Td (ase where strlen\(ptr\) > pts_namesz.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (strncpy\(pts_name, ptr, pts_namesz\);)Tj 0 -1.189 TD (pts_name[pts_namesz - 1] = \325\\0\325;)Tj 0 -1.189 TD (return\(fdm\); )Tj 14.4 0 Td [(/*)-600(return fd of master */)]TJ -16.8 -1.189 Td (errout:)Tj 2.4 -1.189 Td (err = errno;)Tj T* (close\(fdm\);)Tj T* (errno = err;)Tj T* (return\(-1\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (ptys_open\(char *pts_name\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (int fds;)Tj -2.4 -1.189 Td (#if defined\(SOLARIS\))Tj 2.4 -1.189 Td (int err, setup;)Tj -2.4 -1.189 Td (#endif)Tj 2.4 -2.021 Td (if \(\(fds = open\(pts_name, O_RDWR\)\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -4.8 -2.021 Td (#if defined\(SOLARIS\))Tj 2.4 -1.189 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (heck if stream is already set up by autopush facility.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(\(setup = ioctl\(fds, I_FIND, "ldterm"\)\) < 0\))Tj 2.4 -1.189 Td (goto errout;)Tj -2.4 -2.021 Td (if \(setup == 0\) {)Tj 2.4 -1.189 Td (if \(ioctl\(fds, I_PUSH, "ptem"\) < 0\))Tj 2.4 -1.189 Td (goto errout;)Tj -2.4 -1.189 Td (if \(ioctl\(fds, I_PUSH, "ldterm"\) < 0\))Tj 2.4 -1.189 Td (goto errout;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47321 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (780)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(751 )-2400(/*)]TJ 0 -1.189 TD [(752 )-3000(*)-600(We read lock the free list so that we don\325t read)]TJ T* [(753 )-3000(*)]TJ 0.6 Tc 6.6 0 Td (ar)Tj 0 Tc 1.8 0 Td (ecord in the middle of its being deleted.)Tj -8.4 -1.189 Td [(754 )-3000(*/)]TJ T* [(755 )-2400(if)-600(\(readw_lock\(db->idxfd, FREE_OFF, SEEK_SET, 1\) < 0\))]TJ 0 -1.189 TD [(756 )-4800(err_dump\("db_nextrec:)-600(readw_lock error"\);)]TJ 0 -2.259 TD [(757 )-2400(do)-600({)]TJ 0 -1.189 TD [(758 )-4800(/*)]TJ T* (759 )Tj 7.8 0 Td [(*)-600(Read next sequential index record.)]TJ -7.8 -1.189 Td (760 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(761 )-4800(if)-600(\(_db_readidx\(db, 0\) < 0\) {)]TJ T* (762 )Tj 9.6 0 Td (ptr)Tj 0.6 Tc 2.4 0 Td (=N)Tj 0 Tc 1.8 0 Td [(ULL; )-2400(/*)-600(end of index file, EOF */)]TJ -13.8 -1.189 Td (763 )Tj 9.6 0 Td [(goto)-600(doreturn;)]TJ -9.6 -1.189 Td [(764 )-4800(})]TJ 0 -2.259 TD [(765 )-4800(/*)]TJ 0 -1.189 TD (766 )Tj 7.8 0 Td [(*)-600(Check if key is all blank \(empty record\).)]TJ -7.8 -1.189 Td (767 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(768 )-4800(ptr)]TJ 0.6 Tc 9.6 0 Td (=d)Tj 0 Tc 1.8 0 Td (b->idxbuf;)Tj -11.4 -1.189 Td [(769 )-4800(while)-600(\(\(c = *ptr++\) != 0)-1200(&& )-600(c)-600(== SPACE\))]TJ T* (770 )Tj 9.6 0 Td [(;)-1800(/* skip until null byte or nonblank */)]TJ -9.6 -1.189 Td [(771 )-2400(})-600(while \(c == 0\);)-1800(/* loop until a nonblank key is found */)]TJ 0 -2.259 TD [(772 )-2400(if)-600(\(key != NULL\))]TJ 0 -1.189 TD [(773 )-4800(strcpy\(key,)-600(db->idxbuf\); )-1800(/*)-600(return key */)]TJ T* [(774 )-2400(ptr)]TJ 0.6 Tc 7.2 0 Td (=_)Tj 0 Tc 1.8 0 Td [(db_readdat\(db\); )-600(/*)-600(return pointer to data buffer */)]TJ -9 -1.189 Td [(775 )-2400(db->cnt_nextrec++;)]TJ 0 -2.259 TD [(776 )-1200(doreturn:)]TJ 0 -1.189 TD [(777 )-2400(if)-600(\(un_lock\(db->idxfd, FREE_OFF, SEEK_SET, 1\) < 0\))]TJ 0 -1.189 TD [(778 )-4800(err_dump\("db_nextrec:)-600(un_lock error"\);)]TJ 0 -1.189 TD [(779 )-2400(return\(ptr\);)]TJ T* [(780 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3059.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 281.8442 Tm [([751 )167(\320 )167(756])]TJ -0.092 Tc 5 0 Td [(We )-230(\336)]TJ 0 Tc 2.288 0 Td [(rst )-46(need )-46(to )-46(r)19(ead )-46(lock )-46(the )-46(fr)18(ee )-46(list )-46(so )-46(that )-46(no )-46(other )-46(pr)18(ocesses )-46(can )-46(r)21(emove)]TJ 0.25 Tc -2.288 -1.2 Td (ar)Tj 0 Tc 1.127 0 Td (ecor)Tj 0.25 Tc 1.846 0 Td (dw)Tj 0 Tc 1.695 0 Td (hile we ar)Tj 0.25 Tc 4.333 0 Td (er)Tj 0 Tc 1.106 0 Td (eading it.)Tj -15.107 -1.84 Td [([757 )167(\320 )167(771])]TJ -0.092 Tc 5 0 Td [(We )-271(c)]TJ 0 Tc 2.168 0 Td (all)Tj /TT0 1 Tf 1.419 0 Td (_db_readidx)Tj /T1_1 1 Tf 6.937 0 Td [(to )-87(r)18(ead )-87(the )-87(next )-87(r)17(ecor)18(d. )-337(W)]TJ 0.3373 Tc 12.057 0 Td (ep)Tj 0 Tc 1.417 0 Td [(ass )-87(in )-87(an )-87(of)18(fset )-87(of )-87(0 )-87(to)]TJ -23.999 -1.2 Td (tell)Tj /TT0 1 Tf 1.682 0 Td (_db_readidx)Tj /T1_1 1 Tf 6.895 0 Td [(to )-45(continue )-45(r)18(eading )-45(fr)18(om )-45(the )-45(curr)18(ent )-45(of)17(fset. )-295(Since)-295(we )-45(ar)18(e)]TJ -0.018 Tc -8.577 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ading )-188(the )-188(index )-188(\336le )-188(sequentially)111(,)-438(we)-438(can )-188(come )-188(acr)18(oss )-188(r)18(ecor)18(ds )-188(that )-188(have)]TJ -0.856 -1.2 Td [(been )-96(deleted.)]TJ -0.092 Tc 6.561 0 Td [(We )-280(w)]TJ 0 Tc 2.567 0 Td [(ant )-96(to )-96(r)18(eturn )-96(only )-96(valid )-96(r)17(ecor)18(ds, )-96(so )-96(we )-96(skip )-96(any )-96(r)18(ecor)18(d)]TJ -9.129 -1.2 Td [(whose )-49(key )-49(is )-49(all )-49(spaces )-49(\(r)18(ecall )-49(that)]TJ /TT0 1 Tf 15.67 0 Td (_db_dodelete)Tj /T1_1 1 Tf 7.499 0 Td [(clears )-49(a )-49(key )-49(by )-49(setting )-49(it)]TJ -23.169 -1.2 Td (to all spaces\).)Tj -5 -1.84 Td [([772 )167(\320 )167(780])-668(When )-255(we )-255(\336nd )-255(a )-255(valid )-255(key)110(,)-505(we)-505(c)-1(opy )-255(it )-255(to )-255(the )-255(caller)-75(\325s )-255(buf)18(fer )-255(if )-255(one )-255(was)]TJ 5 -1.2 Td [(supplied. )-307(Then)-308(we )-57(r)18(ead )-58(the )-58(data )-58(r)19(ecor)]TJ 0.3076 Tc 17.329 0 Td (da)Tj 0 Tc 1.419 0 Td [(nd )-58(set )-58(the )-58(r)18(eturn )-58(value )-58(to )-58(point )-58(to)]TJ -18.748 -1.2 Td [(the )-252(internal )-252(buf)18(fer )-252(containing )-252(the )-252(data )-252(r)15(ecor)18(d. )-502(W)]TJ 0.5025 Tc 23.294 0 Td (ei)Tj 0 Tc 1.272 0 Td [(ncr)18(ement )-252(a )-252(statistics)]TJ -24.567 -1.2 Td (counter)Tj 0.25 Tc 3.301 0 Td (,u)Tj 0 Tc 1.103 0 Td [(nlock the fr)18(ee list, and r)18(eturn the pointer to the data r)18(ecor)18(d.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47322 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (778)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(687 )-2400(while)-600(\(offset != 0\) {)]TJ 0 -1.189 TD [(688 )-4800(nextoffset)]TJ 0.6 Tc 13.8 0 Td (=_)Tj 0 Tc 1.8 0 Td (db_readidx\(db, offset\);)Tj -15.6 -1.189 Td [(689 )-4800(if)-600(\(strlen\(db->idxbuf\) == keylen && db->datlen == datlen\))]TJ T* (690 )Tj 9.6 0 Td [(break;)-3600(/* found a match */)]TJ -9.6 -1.189 Td [(691 )-4800(saveoffset)]TJ 0.6 Tc 13.8 0 Td (=o)Tj 0 Tc 1.8 0 Td (ffset;)Tj -15.6 -1.189 Td [(692 )-4800(offset)]TJ 0.6 Tc 11.4 0 Td (=n)Tj 0 Tc 1.8 0 Td (extoffset;)Tj -13.2 -1.189 Td [(693 )-2400(})]TJ 0 -2.021 TD [(694 )-2400(if)-600(\(offset == 0\) {)]TJ 0 -1.189 TD [(695 )-4800(rc)]TJ 0.6 Tc 9 0 Td (=-)Tj 0 Tc 1.8 0 Td [(1; )-1800(/*)-600(no match found */)]TJ -10.8 -1.189 Td [(696 )-2400(})-600(else {)]TJ T* [(697 )-4800(/*)]TJ T* (698 )Tj 7.8 0 Td [(*)-600(Found a free record with matching sizes.)]TJ -7.8 -1.189 Td (699 )Tj 7.8 0 Td [(*)-600(The index record was read in by _db_readidx above,)]TJ -7.8 -1.189 Td (700 )Tj 7.8 0 Td [(*)-600(which sets db->ptrval.)-1200(Also, saveoffset points to)]TJ -7.8 -1.189 Td (701 )Tj 7.8 0 Td [(*)-600(the chain ptr that pointed to this empty record on)]TJ -7.8 -1.189 Td (702 )Tj 7.8 0 Td [(*)-600(the free list.)-1200(We set this chain ptr to db->ptrval,)]TJ -7.8 -1.189 Td (703 )Tj 7.8 0 Td [(*)-600(which removes the empty record from the free list.)]TJ -7.8 -1.189 Td (704 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(705 )-4800(_db_writeptr\(db,)-600(saveoffset, db->ptrval\);)]TJ T* [(706 )-4800(rc)]TJ 0.6 Tc 9 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -10.8 -2.021 Td [(707 )-4800(/*)]TJ T* (708 )Tj 7.8 0 Td [(*)-600(Notice also that _db_readidx set both db->idxoff)]TJ -7.8 -1.189 Td (709 )Tj 7.8 0 Td [(*)-600(and db->datoff.)-1200(This is used by the caller, db_store,)]TJ -7.8 -1.189 Td (710 )Tj 7.8 0 Td [(*)-600(to write the new index record and data record.)]TJ -7.8 -1.189 Td (711 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(712 )-2400(})]TJ 0 -2.021 TD [(713 )-2400(/*)]TJ 0 -1.189 TD [(714 )-3000(*)-600(Unlock the free list.)]TJ T* [(715 )-3000(*/)]TJ T* [(716 )-2400(if)-600(\(un_lock\(db->idxfd, FREE_OFF, SEEK_SET, 1\) < 0\))]TJ T* [(717 )-4800(err_dump\("_db_findfree:)-600(un_lock error"\);)]TJ 0 -1.189 TD [(718 )-2400(return\(rc\);)]TJ 0 -1.189 TD [(719 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2898.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 265.7961 Tm [([687 )167(\320 )167(693])-668(The)]TJ /TT0 1 Tf 7 0 Td (while)Tj /T1_1 1 Tf 3.326 0 Td [(loop )-76(in)]TJ /TT0 1 Tf 3.509 0 Td (_db_findfree)Tj /T1_1 1 Tf 7.526 0 Td [(goes )-76(thr)18(ough )-76(the )-76(fr)18(ee )-76(list, )-76(looking )-76(for )-76(a)]TJ -0.018 Tc -16.361 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.2724 Tc 1.367 0 Td (dw)Tj 0 Tc 1.717 0 Td [(ith )-22(matching )-22(key )-22(and )-22(data )-22(sizes.)-524(In )-22(this )-22(simple )-22(implementation, )-22(we)]TJ -0.018 Tc -3.94 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(use )-240(a )-240(deleted )-240(r)18(ecor)]TJ 0.4899 Tc 8.975 0 Td (do)Tj 0 Tc 1.647 0 Td [(nly )-240(if )-240(the )-240(key )-240(length )-240(and )-240(data )-240(length )-240(equal )-240(the)]TJ -11.478 -1.2 Td [(lengths )-25(for )-25(the )-25(new )-25(r)18(ecor)]TJ 0.2749 Tc 11.119 0 Td (db)Tj 0 Tc 1.439 0 Td [(eing )-25(inserted.)-525(Ther)]TJ 0.2748 Tc 8.596 0 Td (ea)Tj -0.018 Tc 1.254 0 Td [(re )-61(a )-61(v)]TJ 0 Tc 2.471 0 Td [(ariety )-25(of )-25(better )-25(ways)]TJ -24.878 -1.2 Td [(to r)18(euse this deleted space, in exchange for added complexity)111(.)]TJ -5 -1.6 Td [([694 )167(\320 )167(712])-668(If )-85(we )-85(can\325t )-85(\336nd )-85(an )-85(available )-85(r)15(ecor)18(d)-335(of)-335(t)-1(he )-85(r)18(equested )-85(key )-85(and )-85(data )-85(sizes, )-85(we)]TJ 5 -1.2 Td [(set )-206(the )-206(r)18(eturn )-206(code )-206(to )-206(indicate )-206(failur)18(e. )-456(Otherwise,)-456(we )-206(write )-206(the )-206(pr)18(evious)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(cor)18(d\325s )-81(chain )-81(pointer )-81(to )-81(point )-81(to )-81(the )-81(next )-81(chain )-81(pointer )-81(value )-81(of )-81(the )-81(r)13(ecor)18(d)]TJ -0.856 -1.2 Td [(we have found.)-500(This r)18(emoves the r)18(ecor)]TJ 0.25 Tc 17.387 0 Td (df)Tj -0.018 Tc 1.194 0 Td (ro)Tj 0.25 Tc 0.923 0 Td (mt)Tj 0 Tc 1.459 0 Td [(he fr)18(ee list.)]TJ -25.963 -1.6 Td [([713 )167(\320 )167(719])-668(Once )-192(we )-192(ar)]TJ 0.4423 Tc 10.366 0 Td (ed)Tj 0 Tc 1.532 0 Td [(one )-192(with )-192(the )-192(fr)18(ee )-192(list, )-192(we )-192(r)18(elease )-192(the )-192(write )-192(lock.)-695(Then )-192(we)]TJ -0.018 Tc -6.898 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn the status to the caller)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47323 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (770)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(441 )-2400(/*)]TJ 0 -1.189 TD [(442 )-3000(*)-600(Read the free list pointer.)-1200(Its value becomes the)]TJ T* [(443 )-3000(*)-600(chain ptr field of the deleted index record.)-1200(This means)]TJ T* [(444 )-3000(*)-600(the deleted record becomes the head of the free list.)]TJ T* [(445 )-3000(*/)]TJ 0 -1.189 TD [(446 )-2400(freeptr)]TJ 0.6 Tc 9.6 0 Td (=_)Tj 0 Tc 1.8 0 Td (db_readptr\(db, FREE_OFF\);)Tj -11.4 -1.783 Td [(447 )-2400(/*)]TJ 0 -1.189 TD [(448 )-3000(*)-600(Save the contents of index record chain ptr,)]TJ T* [(449 )-3000(*)-600(before it\325s rewritten by _db_writeidx.)]TJ 0 -1.189 TD [(450 )-3000(*/)]TJ 0 -1.189 TD [(451 )-2400(saveptr)]TJ 0.6 Tc 9.6 0 Td (=d)Tj 0 Tc 1.8 0 Td (b->ptrval;)Tj -11.4 -1.783 Td [(452 )-2400(/*)]TJ T* [(453 )-3000(*)-600(Rewrite the index record.)-1200(This also rewrites the length)]TJ 0 -1.189 TD [(454 )-3000(*)-600(of the index record, the data offset, and the data length,)]TJ 0 -1.189 TD [(455 )-3000(*)-600(none of which has changed, but that\325s OK.)]TJ T* [(456 )-3000(*/)]TJ T* [(457 )-2400(_db_writeidx\(db,)-600(db->idxbuf, db->idxoff, SEEK_SET, freeptr\);)]TJ 0 -1.783 TD [(458 )-2400(/*)]TJ 0 -1.189 TD [(459 )-3000(*)-600(Write the new free list pointer.)]TJ 0 -1.189 TD [(460 )-3000(*/)]TJ 0 -1.189 TD [(461 )-2400(_db_writeptr\(db,)-600(FREE_OFF, db->idxoff\);)]TJ 0 -1.783 TD [(462 )-2400(/*)]TJ 0 -1.189 TD [(463 )-3000(*)-600(Rewrite the chain ptr that pointed to this record being)]TJ T* [(464 )-3000(*)-600(deleted. )-600(Recall)-600(that _db_find_and_lock sets db->ptroff to)]TJ 0 -1.189 TD [(465 )-3000(*)-600(point to this chain ptr.)-1200(We set this chain ptr to the)]TJ 0 -1.189 TD [(466 )-3000(*)-600(contents of the deleted record\325s chain ptr, saveptr.)]TJ 0 -1.189 TD [(467 )-3000(*/)]TJ 0 -1.189 TD [(468 )-2400(_db_writeptr\(db,)-600(db->ptroff, saveptr\);)]TJ 0 -1.189 TD [(469 )-2400(if)-600(\(un_lock\(db->idxfd, FREE_OFF, SEEK_SET, 1\) < 0\))]TJ 0 -1.189 TD [(470 )-4800(err_dump\("_db_dodelete:)-600(un_lock error"\);)]TJ 0 -1.189 TD [(471 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3123.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 288.2634 Tm [([441 )167(\320 )167(461])]TJ -0.092 Tc 5 0 Td [(We )-190(r)]TJ 0 Tc 2.019 0 Td [(ead )-5(the )-5(fr)17(ee-list )-5(pointer )-5(and )-5(then )-5(update )-5(the )-5(index )-5(r)15(ecor)18(d)-255(so)-255(t)-1(hat )-5(its )-5(next)]TJ -0.018 Tc -2.02 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.3747 Tc 1.367 0 Td (dp)Tj 0 Tc 1.587 0 Td [(ointer )-125(is )-125(set )-125(to )-125(the )-125(\336rst )-125(r)20(ecor)]TJ 0.3747 Tc 13.043 0 Td (do)Tj 0.3748 Tc 1.532 0 Td (nt)Tj 0 Tc 1.283 0 Td [(he )-125(fr)18(ee )-125(list.)-625(\(If )-125(the )-125(fr)18(ee )-125(list )-125(was)]TJ -19.667 -1.2 Td (empty)Tj 0.3231 Tc 2.734 0 Td (,t)Tj 0 Tc 0.899 0 Td [(his )-73(new )-73(chain )-73(pointer )-73(is )-73(0.\))]TJ -0.092 Tc 12.798 0 Td [(We )-257(h)]TJ 0 Tc 2.292 0 Td [(ave )-73(alr)18(eady )-73(clear)18(ed )-73(the )-73(key)]TJ 0.573 Tc 12.198 0 Td (.T)Tj 0 Tc 1.436 0 Td (hen)Tj -32.357 -1.2 Td [(we )-176(update )-176(the )-176(fr)18(ee-list )-176(pointer )-176(with )-176(the )-176(of)19(fset )-176(of )-176(the )-176(index )-176(r)18(ecor)18(d)-426(we)-426(a)]TJ -0.018 Tc (re)Tj 0 Tc 0 -1.2 Td [(deleting. )-307(This)-307(means )-57(that )-57(the )-57(fr)18(ee )-57(list )-57(is )-57(handled )-57(on )-57(a )-57(last-in, )-57(\336rst-out )-57(basis;)]TJ 0 -1.2 TD [(that )-127(is, )-127(deleted )-127(r)18(ecor)18(ds )-127(ar)]TJ 0.377 Tc 11.618 0 Td (ea)Tj 0 Tc 1.356 0 Td [(dded )-127(to )-127(the )-127(fr)18(ont )-127(of )-127(the )-127(fr)18(ee )-127(list )-127(\(although )-127(we)]TJ -0.018 Tc -12.974 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(move entries fr)18(om the fr)18(ee list on a \336rst-\336t basis\).)]TJ -0.092 Tc -0.856 -1.8 Td [(We )-191(d)]TJ 0 Tc 2.255 0 Td [(on\325t )-7(have )-7(a )-7(separate )-7(fr)18(ee )-7(list )-7(for )-7(each )-7(\336le.)-506(When )-7(we )-7(add )-7(a )-7(deleted )-7(index)]TJ -0.018 Tc -2.255 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(d)-286(to)-286(the )-36(fr)18(ee )-36(list, )-36(the )-36(index )-36(r)17(ecor)]TJ 0.2863 Tc 15.58 0 Td (ds)Tj 0 Tc 1.321 0 Td [(till )-36(points )-36(to )-36(the )-36(deleted )-36(data )-36(r)16(ecor)18(d.)]TJ -17.757 -1.2 Td (Ther)Tj 0.25 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(b)]TJ 0 Tc 1.659 0 Td [(etter ways to do this, in exchange for added complexity)111(.)]TJ -9.939 -1.6 Td [([462 )167(\320 )167(471])]TJ -0.092 Tc 5 0 Td [(We )-241(u)]TJ 0 Tc 2.297 0 Td [(pdate )-57(the )-57(pr)18(evious )-57(r)19(ecor)18(d)-307(in)-307(the )-57(hash )-57(chain )-57(to )-57(point )-57(to )-57(the )-57(r)19(ecor)]TJ 0.3067 Tc 28.753 0 Td (da)Tj 0 Tc 1.418 0 Td (fter)Tj -32.467 -1.2 Td [(the )-179(one )-179(we )-179(ar)]TJ 0.4289 Tc 6.471 0 Td (ed)Tj 0 Tc 1.519 0 Td [(eleting, )-179(thus )-179(r)18(emoving )-179(the )-179(deleted )-179(r)19(ecor)]TJ 0.4289 Tc 18.499 0 Td (df)Tj -0.018 Tc 1.373 0 Td (ro)Tj 0.429 Tc 0.923 0 Td (mt)Tj 0 Tc 1.638 0 Td [(he )-179(hash)]TJ -30.422 -1.2 Td [(chain. )-250(Finally)111(,)-250(we)-250(unlock the fr)18(ee list.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47324 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (768)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(377 )-1200(/*)]TJ 0 -1.189 TD [(378 )-1800(*)-600(Read the current data record into the data buffer.)]TJ T* [(379 )-1800(*)-600(Return a pointer to the null-terminated data buffer.)]TJ T* [(380 )-1800(*/)]TJ T* [(381 )-1200(static)-600(char *)]TJ 0 -1.189 TD [(382 )-1200(_db_readdat\(DB)-600(*db\))]TJ 0 -1.189 TD [(383 )-1200({)]TJ T* [(384 )-2400(if)-600(\(lseek\(db->datfd, db->datoff, SEEK_SET\) == -1\))]TJ T* [(385 )-4800(err_dump\("_db_readdat:)-600(lseek error"\);)]TJ T* [(386 )-2400(if)-600(\(read\(db->datfd, db->datbuf, db->datlen\) != db->datlen\))]TJ T* [(387 )-4800(err_dump\("_db_readdat:)-600(read error"\);)]TJ T* [(388 )-2400(if)-600(\(db->datbuf[db->datlen-1] != NEWLINE\))-2400(/* sanity check */)]TJ T* [(389 )-4800(err_dump\("_db_readdat:)-600(missing newline"\);)]TJ 0 -1.189 TD [(390 )-2400(db->datbuf[db->datlen-1])-600(=)-600(0;)-600(/*)-600(replace newline with null */)]TJ 0 -1.189 TD [(391 )-2400(return\(db->datbuf\); )-2400(/*)-600(return pointer to data record */)]TJ 0 -1.189 TD [(392 )-1200(})]TJ 0 -1.783 TD [(393 )-1200(/*)]TJ 0 -1.189 TD [(394 )-1800(*)-600(Delete the specified record.)]TJ 0 -1.189 TD [(395 )-1800(*/)]TJ 0 -1.189 TD [(396 )-1200(int)]TJ T* [(397 )-1200(db_delete\(DBHANDLE)-600(h, const char *key\))]TJ 0 -1.189 TD [(398 )-1200({)]TJ 0 -1.189 TD [(399 )-2400(DB)-3600(*db = h;)]TJ 0 -1.189 TD [(400 )-2400(int )-2400(rc)]TJ 0.6 Tc 11.4 0 Td (=0)Tj 5.4 Tc 1.8 0 Td (;/)Tj 0.6 Tc 6.6 0 Td (*a)Tj 0 Tc 1.8 0 Td (ssume record will be found */)Tj -21.6 -1.783 Td [(401 )-2400(if)-600(\(_db_find_and_lock\(db, key, 1\) == 0\) {)]TJ 0 -1.189 TD [(402 )-4800(_db_dodelete\(db\);)]TJ 0 -1.189 TD [(403 )-4800(db->cnt_delok++;)]TJ 0 -1.189 TD [(404 )-2400(})-600(else {)]TJ 0 -1.189 TD [(405 )-4800(rc)]TJ 0.6 Tc 9 0 Td (=-)Tj 0 Tc 1.8 0 Td (1; )Tj 8.4 0 Td [(/*)-600(not found */)]TJ -19.2 -1.189 Td [(406 )-4800(db->cnt_delerr++;)]TJ 0 -1.189 TD [(407 )-2400(})]TJ T* [(408 )-2400(if)-600(\(un_lock\(db->idxfd, db->chainoff, SEEK_SET, 1\) < 0\))]TJ 0 -1.189 TD [(409 )-4800(err_dump\("db_delete:)-600(un_lock error"\);)]TJ 0 -1.189 TD [(410 )-2400(return\(rc\);)]TJ 0 -1.189 TD [(411 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2802.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 256.1673 Tm [([377 )167(\320 )167(392])-668(The)]TJ /TT0 1 Tf 6.999 0 Td (_db_readdat)Tj /T1_1 1 Tf 6.925 0 Td [(function )-75(populates )-75(the)]TJ /TT0 1 Tf 10.439 0 Td (datbuf)Tj /T1_1 1 Tf 3.925 0 Td [(\336eld )-75(in )-75(the)]TJ /TT0 1 Tf 5.22 0 Td (DB)Tj /T1_1 1 Tf 1.525 0 Td [(str)8(uctur)18(e)]TJ -30.031 -1.2 Td [(with )-25(the )-25(contents )-25(of )-25(the )-25(data )-25(r)20(ecor)18(d, )-25(expecting )-25(that )-25(the)]TJ /TT0 1 Tf 24.558 0 Td (datoff)Tj /T1_1 1 Tf 3.875 0 Td (and)Tj /TT0 1 Tf 1.968 0 Td (datlen)Tj /T1_1 1 Tf -30.4 -1.2 Td [(\336elds will have been pr)18(operly initialized alr)18(eady)111(.)]TJ -5 -1.6 Td [([393 )167(\320 )167(41)54(1] )-472(The)]TJ /TT0 1 Tf 7.069 0 Td (db_delete)Tj /T1_1 1 Tf 5.794 0 Td [(function )-144(is )-144(used )-144(to )-144(delete )-144(a )-144(r)15(ecor)]TJ 0.3946 Tc 15.166 0 Td (dg)Tj 0 Tc 1.562 0 Td [(iven )-145(its )-145(key)]TJ 0.6446 Tc 5.227 0 Td (.W)Tj 0.3946 Tc 1.803 0 Td (eu)Tj 0 Tc 1.477 0 Td (se)Tj /TT0 1 Tf -33.097 -1.2 Td (_db_find_and_lock)Tj /T1_1 1 Tf 10.923 0 Td [(to )-473(determine )-473(whether )-473(the )-473(r)18(ecor)]TJ 0.7231 Tc 15.576 0 Td (de)Tj 0 Tc 1.813 0 Td [(xists )-473(in )-473(the)]TJ -28.313 -1.2 Td [(database. )-265(If)-265(it )-15(does, )-15(we )-15(call)]TJ /TT0 1 Tf 12.419 0 Td (_db_dodelete)Tj /T1_1 1 Tf 7.465 0 Td [(to )-15(do )-15(the )-15(work )-15(needed )-15(to )-15(delete)]TJ -19.884 -1.2 Td [(the )-103(r)18(ecor)18(d. )-353(The)-354(thir)]TJ 0.3534 Tc 9.031 0 Td (da)Tj -0.018 Tc 1.464 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument )-103(to)]TJ /TT0 1 Tf 4.452 0 Td (_db_find_and_lock)Tj /T1_1 1 Tf 10.553 0 Td [(contr)18(ols )-103(whether)]TJ -26.434 -1.2 Td [(the )-179(chain )-179(is )-179(r)19(ead )-179(locked )-179(or )-179(write )-179(locked.)-678(Her)18(e)-429(we)-429(a)]TJ -0.018 Tc [(re )-215(re)]TJ 0 Tc 26.496 0 Td [(questing )-179(a )-179(write)]TJ -26.496 -1.2 Td [(lock, )-83(since )-83(we )-83(will )-83(potentially )-83(change )-83(the )-83(list.)-587(Since)]TJ /TT0 1 Tf 23.8 0 Td (_db_find_and_lock)Tj /T1_1 1 Tf -0.018 Tc -23.8 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-90(with )-90(the )-90(lock )-90(still )-90(held, )-90(we )-90(need )-90(to )-90(unlock )-90(it, )-90(r)17(egar)18(dless )-90(of )-90(whether)]TJ -0.856 -1.2 Td [(the r)18(ecor)]TJ 0.25 Tc 3.86 0 Td (dw)Tj 0 Tc 1.695 0 Td (as found.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47325 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (762)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(200 )-2400(if)-600(\(db->idxbuf != NULL\))]TJ 0 -1.189 TD [(201 )-4800(free\(db->idxbuf\);)]TJ T* [(202 )-2400(if)-600(\(db->datbuf != NULL\))]TJ T* [(203 )-4800(free\(db->datbuf\);)]TJ T* [(204 )-2400(if)-600(\(db->name != NULL\))]TJ 0 -1.189 TD [(205 )-4800(free\(db->name\);)]TJ 0 -1.189 TD [(206 )-2400(free\(db\);)]TJ T* [(207 )-1200(})]TJ 0 -2.021 TD [(208 )-1200(/*)]TJ 0 -1.189 TD [(209 )-1800(*)-600(Fetch a record.)-1200(Return a pointer to the null-terminated data.)]TJ 0 -1.189 TD [(210 )-1800(*/)]TJ T* [(211 )-1200(char)-600(*)]TJ T* [(212 )-1200(db_fetch\(DBHANDLE)-600(h, const char *key\))]TJ T* [(213 )-1200({)]TJ T* [(214 )-2400(DB)-3600(*db = h;)]TJ T* [(215 )-2400(char)-2400(*ptr;)]TJ 0 -2.021 TD [(216 )-2400(if)-600(\(_db_find_and_lock\(db, key, 0\) < 0\) {)]TJ 0 -1.189 TD [(217 )-4800(ptr)]TJ 0.6 Tc 9.6 0 Td (=N)Tj 0 Tc 1.8 0 Td (ULL; )Tj 10.2 0 Td [(/*)-600(error, record not found */)]TJ -21.6 -1.189 Td [(218 )-4800(db->cnt_fetcherr++;)]TJ T* [(219 )-2400(})-600(else {)]TJ T* [(220 )-4800(ptr)]TJ 0.6 Tc 9.6 0 Td (=_)Tj 0 Tc 1.8 0 Td [(db_readdat\(db\); )-600(/*)-600(return pointer to data */)]TJ -11.4 -1.189 Td [(221 )-4800(db->cnt_fetchok++;)]TJ T* [(222 )-2400(})]TJ 0 -2.021 TD [(223 )-2400(/*)]TJ 0 -1.189 TD [(224 )-3000(*)-600(Unlock the hash chain that _db_find_and_lock locked.)]TJ T* [(225 )-3000(*/)]TJ T* [(226 )-2400(if)-600(\(un_lock\(db->idxfd, db->chainoff, SEEK_SET, 1\) < 0\))]TJ T* [(227 )-4800(err_dump\("db_fetch:)-600(un_lock error"\);)]TJ T* [(228 )-2400(return\(ptr\);)]TJ T* [(229 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3219.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 297.8922 Tm [([200 )167(\320 )167(207])-668(Next, )-98(we )-98(fr)18(ee )-98(any )-98(dynamically )-98(allocated )-98(buf)20(fers. )-348(W)]TJ 0.3477 Tc 28.458 0 Td (ec)Tj 0 Tc 1.271 0 Td [(an )-98(safely )-98(pass )-98(a )-98(null)]TJ -24.729 -1.2 Td [(pointer )-71(to)]TJ /TT0 1 Tf 4.734 0 Td (free)Tj /T1_1 1 Tf [(,)-321(so)-321(we)-321(d)-1(on\325t )-71(need )-71(to )-71(check )-71(the )-71(value )-71(of )-71(each )-71(buf)16(fer )-71(pointer)]TJ -4.734 -1.2 Td [(befor)18(ehand, )-50(but )-50(we )-50(do )-50(so )-50(anyway )-50(because )-50(we )-50(consider )-50(it )-50(better )-50(style )-50(to )-50(fr)18(ee)]TJ 0 -1.2 Td [(only )-174(those )-174(objects )-174(that )-174(we )-174(allocated.)-676(\(Not )-174(all )-174(deallocator )-174(functions )-174(ar)]TJ 0.4245 Tc 32.173 0 Td (ea)Tj 0 Tc 1.404 0 Td (s)Tj -33.576 -1.2 Td [(for)18(giving as)]TJ /TT0 1 Tf 5.521 0 Td (free)Tj /T1_1 1 Tf [(.\) )-250(Finally)111(,)-250(we)-250(f)]TJ -0.018 Tc (re)Tj 0.25 Tc 9.691 0 Td (et)Tj 0 Tc 1.055 0 Td (he memory backing the)Tj /TT0 1 Tf 10.672 0 Td (DB)Tj /T1_1 1 Tf 1.45 0 Td [(str)8(uctur)18(e.)]TJ -33.389 -1.6 Td [([208 )167(\320 )167(218])-668(The)]TJ /TT0 1 Tf 6.943 0 Td (db_fetch)Tj /T1_1 1 Tf 5.069 0 Td [(function )-19(is )-19(used )-19(to )-19(r)18(ead )-19(a )-19(r)18(ecor)]TJ 0.2689 Tc 13.715 0 Td (dg)Tj 0 Tc 1.436 0 Td [(iven )-19(its )-19(key)]TJ 0.5189 Tc 4.976 0 Td (.W)Tj 0.2689 Tc 1.677 0 Td (e\336)Tj 0 Tc 1.353 0 Td [(rst )-19(try )-19(to)]TJ -30.168 -1.2 Td [(\336nd )-266(the )-266(r)17(ecor)18(d)-516(by)-516(c)-1(alling)]TJ /TT0 1 Tf 12.665 0 Td (_db_find_and_lock)Tj /T1_1 1 Tf 0.7664 Tc (.I)Tj 0.5164 Tc 11.553 0 Td (ft)Tj 0 Tc 1.175 0 Td [(he )-266(r)18(ecor)]TJ 0.5164 Tc 3.8 0 Td (dc)Tj 0 Tc 1.571 0 Td [(an\325t )-266(be)]TJ -30.766 -1.2 Td [(found, )-158(we )-158(set )-158(the )-158(r)18(eturn )-158(value )-158(\()]TJ /TT0 1 Tf 14.836 0 Td (ptr)Tj /T1_1 1 Tf 0.4081 Tc (\)t)Tj 0 Tc 2.867 0 Td (o)Tj /TT0 1 Tf 0.954 0 Td (NULL)Tj /T1_1 1 Tf 2.808 0 Td [(and )-158(incr)18(ement )-158(the )-158(count )-158(of)]TJ -21.465 -1.2 Td [(unsuccessful )-141(r)18(ecor)]TJ 0.3906 Tc 8.268 0 Td (ds)Tj 0 Tc 1.426 0 Td [(ear)18(ches. )-391(Because)]TJ /TT0 1 Tf 8.106 0 Td (_db_find_and_lock)Tj /T1_1 1 Tf -0.018 Tc 10.591 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-141(with)]TJ -29.246 -1.2 Td [(the database index \336le locked, we can\325t r)18(eturn until we unlock it.)]TJ -5 -1.6 Td [([219 )167(\320 )167(229])-668(If )-36(the )-36(r)18(ecor)18(d)-286(is)-286(found, )-36(we )-36(call)]TJ /TT0 1 Tf 18.373 0 Td (_db_readdat)Tj /T1_1 1 Tf 6.886 0 Td [(to )-36(r)18(ead )-36(the )-36(corr)18(esponding )-36(data)]TJ -0.018 Tc -20.259 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.4539 Tc 1.367 0 Td (da)Tj 0 Tc 1.565 0 Td [(nd )-204(incr)18(ement )-204(the )-204(count )-204(of )-204(the )-204(successful )-204(r)19(ecor)]TJ 0.4539 Tc 21.659 0 Td (ds)Tj 0 Tc 1.489 0 Td [(ear)18(ches. )-454(Befor)18(e)]TJ -0.018 Tc -26.936 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turning, )-116(we )-116(unlock )-116(the )-116(index )-116(\336le )-116(by )-116(calling)]TJ /TT0 1 Tf 20.151 0 Td (un_lock)Tj /T1_1 1 Tf 0.6156 Tc (.T)Tj 0 Tc 5.679 0 Td [(hen )-116(we )-116(r)18(eturn )-116(a)]TJ -26.685 -1.2 Td [(pointer to the r)18(ecor)]TJ 0.25 Tc 8.452 0 Td (df)Tj 0 Tc 1.194 0 Td (ound \(or)Tj /TT0 1 Tf 4.116 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(if the r)18(ecor)]TJ 0.25 Tc 4.734 0 Td (dw)Tj 0 Tc 1.695 0 Td (asn\325t found\).)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47326 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.15)]TJ /TT0 1 Tf 15.823 0 Td (link)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.15 0 Td (linkat)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.35 0 Td (unlink)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.35 0 Td (unlinkat)Tj /T1_0 1 Tf 0.5 Tc (,a)Tj 0 Tc 6.05 0 Td (nd)Tj /TT0 1 Tf 1.693 0 Td (remove)Tj /T1_0 1 Tf 4.1 0 Td (Functions)Tj /T1_1 1 Tf -0.037 Tc 6.354 0 Td (11)Tj 0 Tc 0.963 0 Td (7)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Most )-217(implementations )-217(r)17(equir)]TJ 0.4673 Tc 13.348 0 Td (et)Tj 0 Tc 1.272 0 Td [(hat )-217(both )-217(pathnames )-217(be )-217(on )-217(the )-217(same )-217(\336le )-217(system,)]TJ -16.42 -1.2 Td [(although )-116(POSIX.1 )-116(allows )-116(an )-116(implementation )-116(to )-116(support )-116(linking )-116(acr)18(oss )-116(\336le )-116(systems.)-614(If)]TJ 0 -1.2 TD [(an )-117(implementation )-117(supports )-117(the )-117(cr)18(eation )-117(of )-117(har)]TJ 0.3671 Tc 21.535 0 Td (dl)Tj 0 Tc 1.269 0 Td [(inks )-117(to )-117(dir)18(ectories, )-117(it )-117(is )-117(r)18(estricted )-117(to)]TJ -22.804 -1.2 Td [(only )-10(the )-10(super)8(user)]TJ 0.5098 Tc 8.203 0 Td (.T)Tj 0 Tc 1.373 0 Td [(his )-10(constraint )-10(exists )-10(because )-10(such )-10(har)]TJ 0.2599 Tc 16.466 0 Td (dl)Tj 0 Tc 1.162 0 Td [(inks )-10(can )-10(cause )-10(loops )-10(in )-10(the)]TJ -27.203 -1.2 Td [(\336le )-68(system, )-68(which )-68(most )-68(utilities )-68(that )-68(pr)19(ocess )-68(the )-68(\336le )-68(system )-68(ar)18(en\325t )-68(capable )-68(of )-68(handling.)]TJ T* (\(W)Tj 0.352 Tc 1.241 0 Td (es)Tj 0 Tc 1.255 0 Td [(how )-102(an )-102(example )-102(of )-102(a )-102(loop )-102(intr)18(oduced )-102(by )-102(a )-102(symbolic )-102(link )-102(in )-102(Section )-102(4.17.\))-602(Many)]TJ -2.496 -1.2 Td (\336le system implementations disallow har)Tj 0.25 Tc 18.198 0 Td (dl)Tj 0 Tc 1.152 0 Td [(inks to dir)18(ectories for this r)18(eason.)]TJ -0.092 Tc -17.55 -1.2 Td [(To )-184(r)]TJ 0 Tc 1.694 0 Td [(emove an existing dir)18(ectory entry)111(,)-250(we)-250(call the)]TJ /TT0 1 Tf 20.227 0 Td (unlink)Tj /T1_0 1 Tf 3.85 0 Td (function.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5907 562.2663 Tm (#include )Tj 0 -2.021 TD (int unlink\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf (\);)Tj 0 -2.021 Td (int unlinkat\(int)Tj /T1_2 1 Tf 10.2 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 12.344 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -1.671 -2.021 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT1 1 Tf 9.213 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5032.25 cm 0 0 m 0 681 l 3900 681 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 483.672 Tm [(These )-182(functions )-182(r)19(emove )-182(the )-182(dir)18(ectory )-182(entry )-182(and )-182(decr)18(ement )-182(the )-182(link )-182(count )-182(of )-182(the )-182(\336le)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(fer)18(enced )-155(by)]TJ /T1_2 1 Tf 5.703 0 Td (pathname)Tj /T1_0 1 Tf 0.655 Tc (.I)Tj 0.405 Tc 5.186 0 Td (ft)Tj 0 Tc 1.064 0 Td (her)Tj 0.405 Tc 1.438 0 Td (ea)Tj -0.018 Tc 1.384 0 Td [(re )-191(o)]TJ 0 Tc 1.807 0 Td [(ther )-155(links )-155(to )-155(the )-155(\336le, )-155(the )-155(data )-155(in )-155(the )-155(\336le )-155(is )-155(still)]TJ -17.438 -1.2 Td [(accessible thr)18(ough the other links.)-500(The \336le is not changed if an err)18(or occurs.)]TJ 1.8 -1.2 Td [(As )-87(mentioned )-87(earlier)75(,)-337(to)-337(u)1(nlink )-87(a )-87(\336le, )-87(we )-87(must )-87(have )-87(write )-87(permission )-87(and )-87(execute)]TJ -1.8 -1.2 Td [(permission )-150(in )-150(the )-150(dir)18(ectory )-150(containing )-150(the )-150(dir)18(ectory )-150(entry)109(,)-400(as)-400(it)-400(is)-400(t)-1(he )-150(dir)18(ectory )-150(entry)]TJ 0 -1.2 Td [(that )-90(we )-90(will )-90(be )-90(r)17(emoving. )-340(Also,)-340(as )-90(mentioned )-90(in )-90(Section )-90(4.10, )-90(if )-90(the )-90(sticky )-90(bit )-90(is )-90(set )-90(in)]TJ T* [(this )-180(dir)18(ectory )-180(we )-180(must )-180(have )-180(write )-180(permission )-180(for )-180(the )-180(dir)18(ectory )-180(and )-180(meet )-180(one )-180(of )-180(the)]TJ T* (following criteria:)Tj 0.883 Tc 1.8 -2.04 Td (\245O)Tj 0 Tc 2.275 0 Td (wn the \336le)Tj 0.883 Tc -2.275 -1.6 Td (\245O)Tj 0 Tc 2.275 0 Td [(wn the dir)18(ectory)]TJ 0.883 Tc -2.275 -1.6 Td (\245H)Tj 0 Tc 2.321 0 Td [(ave super)8(user privileges)]TJ -2.321 -2.04 Td [(Only )-163(when )-163(the )-163(link )-163(count )-163(r)17(eaches )-163(0 )-163(can )-163(the )-163(contents )-163(of )-163(the )-163(\336le )-163(be )-163(deleted.)-664(One)]TJ -1.8 -1.2 Td [(other )-213(condition )-213(pr)18(events )-213(the )-213(contents )-213(of )-213(a )-213(\336le )-213(fr)18(om )-213(being )-213(deleted: )-213(as )-213(long )-213(as )-213(some)]TJ T* [(pr)18(ocess )-162(has )-162(the )-162(\336le )-162(open, )-162(its )-162(contents )-162(will )-162(not )-162(be )-162(deleted.)-662(When )-162(a )-162(\336le )-162(is )-162(closed, )-162(the)]TJ T* [(kernel )-74(\336rst )-74(checks )-74(the )-74(count )-74(of )-74(the )-74(number )-74(of )-74(pr)18(ocesses )-74(that )-74(have )-74(the )-74(\336le )-74(open.)-574(If )-74(this)]TJ T* [(count )-6(has )-6(r)18(eached )-6(0, )-6(the )-6(kernel )-6(then )-6(checks )-6(the )-6(link )-6(count; )-6(if )-6(it )-6(is )-6(0, )-6(the )-6(\336le\325s )-6(contents )-6(ar)14(e)]TJ T* (deleted.)Tj 1.8 -1.2 Td [(If )-278(the)]TJ /T1_2 1 Tf 3.112 0 Td (pathname)Tj /T1_0 1 Tf 4.472 0 Td [(ar)18(gument )-278(is )-278(a )-278(r)19(elative )-278(pathname, )-278(then )-278(the)]TJ /TT0 1 Tf 20.582 0 Td (unlinkat)Tj /T1_0 1 Tf 5.328 0 Td (function)Tj -35.293 -1.2 Td [(evaluates )-169(the )-169(pathname )-169(r)18(elative )-169(to )-169(the )-169(dir)18(ectory )-169(r)19(epr)18(esented )-169(by )-169(the)]TJ /T1_2 1 Tf 31.497 0 Td (fd)Tj /T1_0 1 Tf 1.197 0 Td [(\336le )-169(descriptor)]TJ -32.694 -1.2 Td [(ar)18(gument. )-488(If)-489(the)]TJ /T1_2 1 Tf 8.328 0 Td (fd)Tj /T1_0 1 Tf 1.266 0 Td [(ar)18(gument )-238(is )-238(set )-238(to )-238(the )-238(value)]TJ /TT0 1 Tf 13.877 0 Td (AT_FDCWD)Tj /T1_0 1 Tf 0.4885 Tc (,t)Tj 0 Tc 5.864 0 Td [(hen )-238(the )-238(pathname )-238(is)]TJ -29.336 -1.2 Td [(evaluated )-335(r)18(elative )-335(to )-335(the )-335(curr)18(ent )-335(working )-335(dir)18(ectory )-335(of )-335(the )-335(calling )-335(pr)22(ocess. )-584(If)-585(the)]TJ /T1_2 1 Tf 0 -1.2 Td (pathname)Tj /T1_0 1 Tf 4.194 0 Td [(ar)18(gument is an absolute pathname, then the)]TJ /T1_2 1 Tf 19.634 0 Td (fd)Tj /T1_0 1 Tf 1.028 0 Td [(ar)18(gument is ignor)18(ed.)]TJ -23.056 -1.2 Td (The)Tj /T1_2 1 Tf 2.249 0 Td (\337ag)Tj /T1_0 1 Tf 2.064 0 Td [(ar)18(gument )-325(gives )-325(callers )-325(a )-325(way )-325(to )-325(change )-325(the )-325(default )-325(behavior )-325(of )-325(the)]TJ /TT0 1 Tf -6.114 -1.2 Td (unlinkat)Tj /T1_0 1 Tf 5.077 0 Td [(function. )-277(When)-276(the)]TJ /TT0 1 Tf 9.067 0 Td (AT_REMOVEDIR)Tj /T1_0 1 Tf 7.477 0 Td [(\337ag )-26(is )-26(set, )-26(then )-26(the)]TJ /TT0 1 Tf 8.596 0 Td (unlinkat)Tj /T1_0 1 Tf 5.076 0 Td (function)Tj -35.293 -1.2 Td [(can )-164(be )-164(used )-164(to )-164(r)18(emove )-164(a )-164(dir)16(ectory)]TJ 0.4144 Tc 15.776 0 Td (,s)Tj 0 Tc 1.088 0 Td [(imilar )-164(to )-164(using)]TJ /TT0 1 Tf 7.222 0 Td (rmdir)Tj /T1_0 1 Tf 0.6645 Tc (.I)Tj 0.4145 Tc 4.251 0 Td (ft)Tj 0 Tc 1.074 0 Td [(his )-164(\337ag )-164(is )-164(clear)]TJ 0.4145 Tc 6.954 0 Td (,t)Tj 0 Tc 0.991 0 Td (hen)Tj /TT0 1 Tf -37.357 -1.2 Td (unlinkat)Tj /T1_0 1 Tf 5.05 0 Td (operates like)Tj /TT0 1 Tf 5.867 0 Td (unlink)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47327 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (942)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 181.8391 670.2598 Tm (for \(;;\) {)Tj 2.4 -1.189 Td (if \(poll\(pfd, NQ, -1\) < 0\))Tj 2.4 -1.189 Td (err_sys\("poll error"\);)Tj -2.4 -1.189 Td (for \(i = 0; i < NQ; i++\) {)Tj 2.4 -1.189 Td (if \(pfd[i].revents & POLLIN\) {)Tj 2.4 -1.189 Td (if \(\(n = read\(pfd[i].fd, &c, sizeof\(char\)\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("read error"\);)Tj -2.4 -1.189 Td (ti[i].m.mtext[ti[i].len] = 0;)Tj 0 -1.189 TD (printf\("queue id %d, message %s\\n", qid[i],)Tj 1.2 -1.189 Td (ti[i].m.mtext\);)Tj -1.2 -1.189 Td (pthread_mutex_lock\(&ti[i].mutex\);)Tj T* (pthread_cond_signal\(&ti[i].ready\);)Tj T* (pthread_mutex_unlock\(&ti[i].mutex\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 4750.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 4750.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 257.0022 458.9839 Tm (Figure C.24)Tj /T1_1 1 Tf 5.917 0 Td (Poll for XSI messages using pipes)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5843 430.9873 Tm (17.3)Tj /T1_1 1 Tf 3.065 0 Td (A)Tj /T1_2 1 Tf 1.077 0 Td (declaration)Tj /T1_1 1 Tf 4.761 0 Td [(speci\336es )-49(the )-49(attributes )-49(\(such )-49(as )-49(the )-49(data )-49(type\) )-49(of )-49(a )-49(set )-49(of )-49(identi\336ers.)]TJ -5.838 -1.2 Td (If the declaration also causes storage to be allocated, it is called a)Tj /T1_2 1 Tf 28.723 0 Td (de\336nition)Tj /T1_1 1 Tf (.)Tj -28.723 -1.8 Td [(In )-111(the)]TJ /TT0 1 Tf 3.027 0 Td (opend.h)Tj /T1_1 1 Tf 4.561 0 Td [(header)74(,)-361(we)-361(d)1(eclar)]TJ 0.3607 Tc 7.958 0 Td (et)Tj 0 Tc 1.166 0 Td [(he )-111(thr)18(ee )-111(global )-111(variables )-111(with )-111(the)]TJ /TT0 1 Tf 15.623 0 Td (extern)Tj /T1_1 1 Tf -32.335 -1.2 Td [(storage )-193(class.)-693(These )-193(declarations )-193(do )-193(not )-193(cause )-193(storage )-193(to )-193(be )-193(allocated )-193(for )-193(the)]TJ 0 -1.2 TD [(variables. )-353(In)-354(the)]TJ /TT0 1 Tf 7.864 0 Td (main.c)Tj /T1_1 1 Tf 3.953 0 Td [(\336le, )-103(we )-103(de\336ne )-103(the )-103(thr)17(ee )-103(global )-103(variables.)-604(Sometimes,)]TJ -11.817 -1.2 Td [(we\325ll )-23(also )-23(initialize )-23(a )-23(global )-23(variable )-23(when )-23(we )-23(de\336ne )-23(it, )-23(but )-23(we )-23(typically )-23(let )-23(the )-23(C)]TJ T* [(default apply)111(.)]TJ /T1_0 1 Tf -3.065 -1.84 Td (17.5)Tj /T1_1 1 Tf 3.065 0 Td (Both)Tj /TT0 1 Tf 2.416 0 Td (select)Tj /T1_1 1 Tf 3.951 0 Td (and)Tj /TT0 1 Tf 2.044 0 Td (poll)Tj /T1_1 1 Tf -0.018 Tc 2.751 0 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-101(the )-101(number )-101(of )-101(r)18(eady )-101(descriptors )-101(as )-101(the )-101(value )-101(of)]TJ -12.019 -1.2 Td [(the )-64(function.)-565(The )-65(loop )-65(that )-65(goes )-65(thr)18(ough )-65(the)]TJ /TT0 1 Tf 20.467 0 Td (client)Tj /T1_1 1 Tf 3.915 0 Td [(array )-65(can )-65(terminate )-65(when)]TJ -24.381 -1.2 Td [(the number of r)18(eady descriptors has been pr)18(ocessed.)]TJ /T1_0 1 Tf -3.065 -1.84 Td (17.6)Tj /T1_1 1 Tf 3.065 0 Td [(The )-87(\336rst )-87(pr)18(oblem )-87(with )-87(the )-87(pr)18(oposed )-87(solution )-87(is )-87(that )-87(ther)14(e)-337(is)-337(a)-337(r)-1(ace )-87(between )-87(the)]TJ T* [(call )-223(to)]TJ /TT0 1 Tf 3.343 0 Td (stat)Tj /T1_1 1 Tf 2.873 0 Td [(and )-223(the )-223(call )-223(to)]TJ /TT0 1 Tf 7.368 0 Td (unlink)Tj /T1_1 1 Tf 4.073 0 Td (wher)Tj 0.4727 Tc 2.272 0 Td (et)Tj 0 Tc 1.278 0 Td [(he )-223(\336le )-223(can )-223(change.)-723(The )-223(second)]TJ -21.206 -1.2 Td [(pr)18(oblem )-201(is )-201(that )-201(if )-201(the )-201(name )-201(is )-201(a )-201(symbolic )-201(link )-201(pointing )-201(to )-201(the )-201(UNIX )-201(domain)]TJ T* [(socket )-80(\336le, )-80(then)]TJ /TT0 1 Tf 7.358 0 Td (stat)Tj /T1_1 1 Tf 2.73 0 Td [(will )-80(r)18(eport )-80(that )-80(the )-80(name )-80(is )-80(a )-80(socket )-80(\(r)18(ecall )-80(that )-80(the)]TJ /TT0 1 Tf 23.448 0 Td (stat)Tj /T1_1 1 Tf -33.535 -1.2 Td [(function )-211(follows )-211(symbolic )-211(links\), )-211(but )-211(when )-211(we )-211(call)]TJ /TT0 1 Tf 24.171 0 Td (unlink)Tj /T1_1 1 Tf [(,)-461(we)-461(will )-211(actually)]TJ -0.018 Tc -24.171 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(move )-142(the )-142(symbolic )-142(link )-142(instead )-142(of )-142(the )-142(socket )-142(\336le.)]TJ -0.092 Tc 23.223 0 Td [(To )-326(s)]TJ 0 Tc 1.883 0 Td [(olve )-142(this )-142(pr)18(oblem, )-142(we)]TJ -25.962 -1.2 Td (should use)Tj /TT0 1 Tf 5.063 0 Td (lstat)Tj /T1_1 1 Tf 3.25 0 Td (instead of)Tj /TT0 1 Tf 4.592 0 Td (stat)Tj /T1_1 1 Tf 0.25 Tc (,b)Tj 0 Tc 3.453 0 Td [(ut this doesn\325t solve the \336rst pr)18(oblem.)]TJ /T1_0 1 Tf -19.423 -1.84 Td (17.7)Tj /T1_1 1 Tf 3.065 0 Td [(The )-55(\336rst )-55(option )-55(is )-55(to )-55(send )-55(both )-55(\336le )-55(descriptors )-55(in )-55(one )-55(contr)18(ol )-55(message.)-555(Each )-55(\336le)]TJ T* [(descriptor )-187(is )-187(stor)18(ed )-187(in )-187(adjacent )-187(memory )-187(locations.)-687(The )-187(following )-187(code )-187(shows)]TJ T* (this:)Tj /TT0 1 Tf 8.9989 0 0 8.9989 178.2294 162.1894 Tm (struct msghdr msg;)Tj 0 -1.189 TD (struct cmsghdr *cmptr;)Tj T* (int *ip;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47328 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 34.357 0 Td [(Chapter )-250(4)-750(Solutions)]TJ /T1_1 1 Tf 11.476 0 Td (909)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 173.6096 665.3301 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (umask 777)Tj /TT0 1 Tf -1.2 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (date > temp.foo)Tj /TT0 1 Tf -1.2 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l temp.foo)Tj /TT0 1 Tf -1.2 -1.189 Td [(---------- )-600(1)-600(sar )-4800(29)-600(Feb )-600(5)-600(14:06 temp.foo)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 613.3734 Tm (4.3)Tj /T1_0 1 Tf 2.602 0 Td [(The following shows what happens when user)18(-r)18(ead permission is turned of)18(f:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 173.6095 597.7442 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (date > foo)Tj /TT0 1 Tf -1.2 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (chmod u-r foo)Tj /T1_2 1 Tf 18.8 0 Td [(turn off user-r)18(ead permission)]TJ /TT0 1 Tf -20 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l foo)Tj /T1_2 1 Tf 18.8 0 Td (verify the \336le\325)Tj 0.25 Tc 5.474 0 Td (sp)Tj 0 Tc 1.139 0 Td (ermissions)Tj /TT0 1 Tf -26.613 -1.189 Td [(--w-r--r-- )-600(1)-600(sar )-4800(29)-600(Feb )-600(5)-600(14:21 foo)]TJ 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (cat foo)Tj /T1_2 1 Tf 18.8 0 Td [(and try to r)18(ead it)]TJ /TT0 1 Tf -20 -1.189 Td (cat: foo: Permission denied)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5924 524.3884 Tm (4.4)Tj /T1_0 1 Tf 2.602 0 Td [(If )-52(we )-52(try)]TJ 0.3017 Tc 3.752 0 Td (,u)Tj 0 Tc 1.155 0 Td [(sing )-52(either)]TJ /TT0 1 Tf 5.008 0 Td (open)Tj /T1_0 1 Tf 2.702 0 Td (or)Tj /TT0 1 Tf 1.243 0 Td (creat)Tj /T1_0 1 Tf [(,)-302(to)-302(c)]TJ -0.018 Tc 5.169 0 Td (re)Tj 0 Tc 0.856 0 Td [(ate )-52(a )-52(\336le )-52(that )-52(alr)18(eady )-52(exists, )-52(the )-52(\336le\325s)]TJ -19.885 -1.2 Td [(access )-323(permission )-323(bits )-323(ar)]TJ 0.5729 Tc 11.821 0 Td (en)Tj 0 Tc 1.634 0 Td [(ot )-323(changed.)]TJ -0.092 Tc 6.272 0 Td [(We )-507(c)]TJ 0 Tc 2.404 0 Td [(an )-323(verify )-323(this )-323(by )-323(r)8(unning )-323(the)]TJ -22.13 -1.2 Td [(pr)18(ogram fr)18(om Figur)]TJ 0.25 Tc 8.88 0 Td (e4)Tj 0 Tc 1.229 0 Td (.9:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 173.61 484.7611 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (rm foo bar)Tj /T1_2 1 Tf 16.4 0 Td [(delete the \336les in case they alr)18(eady exist)]TJ /TT0 1 Tf -17.6 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (date > foo)Tj /T1_2 1 Tf 16.4 0 Td [(cr)18(eate them with some data)]TJ /TT0 1 Tf -17.6 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (date > bar)Tj /TT0 1 Tf -1.2 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (chmod a-r foo bar)Tj /T1_2 1 Tf 16.4 0 Td [(turn off all r)18(ead permissions)]TJ /TT0 1 Tf -17.6 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l foo bar)Tj /T1_2 1 Tf 16.4 0 Td (verify their permissions)Tj /TT0 1 Tf -17.6 -1.189 Td [(--w------- )-600(1)-600(sar )-4800(29)-600(Feb )-600(5)-600(14:25 bar)]TJ 0 -1.189 TD [(--w------- )-600(1)-600(sar )-4800(29)-600(Feb )-600(5)-600(14:25 foo)]TJ 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /T1_2 1 Tf 16.4 0 Td [(run pr)18(ogram fr)18(om Figur)]TJ 0.25 Tc 9.809 0 Td (e4)Tj 0 Tc 1.139 0 Td (.9)Tj /TT0 1 Tf -28.548 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l foo bar)Tj /T1_2 1 Tf 16.4 0 Td (check permissions and sizes)Tj /TT0 1 Tf -17.6 -1.189 Td [(--w------- )-600(1)-600(sar )]TJ 16.2 0 Td [(0)-600(Feb )-600(5)-600(14:26 bar)]TJ -16.2 -1.189 Td [(--w------- )-600(1)-600(sar )]TJ 16.2 0 Td [(0)-600(Feb )-600(5)-600(14:26 foo)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 155.6112 360.8384 Tm (Note that the permissions didn\325t change but that the \336les wer)Tj 0.25 Tc 27.077 0 Td (et)Tj -0.008 Tc 1.055 0 Td (ru)Tj 0 Tc 0.99 0 Td (ncated.)Tj /T1_1 1 Tf -31.724 -1.84 Td (4.5)Tj /T1_0 1 Tf 2.602 0 Td [(The )-42(size )-42(of )-42(a )-42(dir)18(ectory )-42(should )-42(never )-42(be )-42(0, )-42(since )-42(ther)]TJ 0.292 Tc 23.015 0 Td (es)Tj 0 Tc 1.195 0 Td [(hould )-42(always )-42(be )-42(entries )-42(for)]TJ -24.21 -1.2 Td [(dot )-133(and )-133(dot-dot.)-632(The )-133(size )-133(of )-133(a )-133(symbolic )-133(link )-133(is )-133(the )-133(number )-133(of )-133(characters )-133(in )-133(the)]TJ 0 -1.2 TD [(pathname )-21(contained )-21(in )-21(the )-21(symbolic )-21(link, )-21(and )-21(this )-21(pathname )-21(must )-21(always )-21(contain)]TJ T* [(at least one character)74(.)]TJ /T1_1 1 Tf -2.602 -1.84 Td (4.7)Tj /T1_0 1 Tf 2.602 0 Td [(The )-12(kernel )-12(has )-12(a )-12(default )-12(setting )-12(for )-12(the )-12(\336le )-12(access )-12(permission )-12(bits )-12(when )-12(it )-12(cr)18(eates )-12(a)]TJ T* (new)Tj /TT0 1 Tf 2.283 0 Td (core)Tj /T1_0 1 Tf 2.788 0 Td [(\336le. )-388(In)-388(this )-138(example, )-138(it )-138(was)]TJ /TT0 1 Tf 13.118 0 Td (rw-r--r--)Tj /T1_0 1 Tf 0.6378 Tc (.T)Tj 0 Tc 6.901 0 Td [(his )-138(default )-138(value )-138(may )-138(or)]TJ -25.089 -1.2 Td [(may )-57(not )-57(be )-57(modi\336ed )-57(by )-57(the)]TJ /TT0 1 Tf 12.788 0 Td (umask)Tj /T1_0 1 Tf 3.307 0 Td [(value. )-307(The)-307(shell )-57(also )-57(has )-57(a )-57(default )-57(setting )-57(for)]TJ -16.095 -1.2 Td [(the )-136(\336le )-136(access )-136(permission )-136(bits )-136(when )-136(it )-136(cr)20(eates )-136(a )-136(new )-136(\336le )-136(for )-136(r)20(edir)18(ection. )-386(In)-385(this)]TJ T* [(example, )-159(it )-159(was)]TJ /TT0 1 Tf 7.603 0 Td (rw-rw-rw-)Tj /T1_0 1 Tf 0.4096 Tc (,a)Tj 0 Tc 6.56 0 Td [(nd )-160(this )-160(value )-160(is )-160(always )-160(modi\336ed )-160(by )-160(our )-160(curr)21(ent)]TJ /TT0 1 Tf -14.162 -1.2 Td (umask)Tj /T1_0 1 Tf 0.5 Tc (.I)Tj 0.25 Tc 4.087 0 Td (nt)Tj 0 Tc 1.158 0 Td (his example, our)Tj /TT0 1 Tf 7.59 0 Td (umask)Tj /T1_0 1 Tf 3.25 0 Td (was 02.)Tj /T1_1 1 Tf -18.687 -1.84 Td (4.8)Tj /T1_0 1 Tf -0.092 Tc 2.602 0 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td (an\325t use)Tj /TT0 1 Tf 3.692 0 Td (du)Tj /T1_0 1 Tf 0.25 Tc (,b)Tj 0 Tc 2.253 0 Td [(ecause it r)18(equir)18(es either the name of the \336le, as in)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 173.6102 195.0882 Tm (du tempfile)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 155.6113 179.2289 Tm [(or a dir)18(ectory name, as in)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 173.6102 164.67 Tm (du .)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 155.6113 148.8108 Tm [(But )-25(when )-25(the)]TJ /TT0 1 Tf 6.229 0 Td (unlink)Tj /T1_0 1 Tf 3.875 0 Td [(function )-25(r)18(eturns, )-25(the )-25(dir)18(ectory )-25(entry )-25(for)]TJ /TT0 1 Tf 17.816 0 Td (tempfile)Tj /T1_0 1 Tf 5.075 0 Td [(is )-25(gone.)]TJ -32.995 -1.2 Td (The)Tj /TT0 1 Tf 2.099 0 Td [(du )267(.)]TJ /T1_0 1 Tf 2.558 0 Td [(command )-174(just )-174(shown )-174(would )-174(not )-174(account )-174(for )-174(the )-174(space )-174(still )-174(taken )-174(by)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47329 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (837)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(754 )-4800(if)-600(\(nr < 0\) {)]TJ 0 -1.189 TD (755 )Tj 9.6 0 Td [(log_ret\("can\325t)-600(read %s", name\);)]TJ -9.6 -1.189 Td (756 )Tj 9.6 0 Td [(goto)-600(defer;)]TJ -9.6 -1.189 Td [(757 )-4800(})]TJ 0 -1.783 TD [(758 )-4800(/*)]TJ 0 -1.189 TD (759 )Tj 7.8 0 Td [(*)-600(Read the response from the printer.)]TJ -7.8 -1.189 Td (760 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(761 )-4800(if)-600(\(printer_status\(sockfd, jp\)\) {)]TJ T* (762 )Tj 9.6 0 Td (unlink\(name\);)Tj -9.6 -1.189 Td (763 )Tj 9.6 0 Td [(sprintf\(name,)-600("%s/%s/%d", SPOOLDIR, REQDIR, jp->jobid\);)]TJ -9.6 -1.189 Td (764 )Tj 9.6 0 Td (unlink\(name\);)Tj -9.6 -1.189 Td (765 )Tj 9.6 0 Td (free\(jp\);)Tj -9.6 -1.189 Td (766 )Tj 9.6 0 Td (jp)Tj 0.6 Tc 1.8 0 Td (=N)Tj 0 Tc 1.8 0 Td (ULL;)Tj -13.2 -1.189 Td [(767 )-4800(})]TJ T* [(768 )-1200(defer:)]TJ T* [(769 )-4800(close\(fd\);)]TJ T* [(770 )-4800(if)-600(\(sockfd >= 0\))]TJ T* (771 )Tj 9.6 0 Td (close\(sockfd\);)Tj -9.6 -1.189 Td [(772 )-4800(if)-600(\(jp != NULL\) {)]TJ T* (773 )Tj 9.6 0 Td (replace_job\(jp\);)Tj -9.6 -1.189 Td (774 )Tj 9.6 0 Td [(nanosleep\(&ts,)-600(NULL\);)]TJ -9.6 -1.189 Td [(775 )-4800(})]TJ T* [(776 )-2400(})]TJ 0 -1.189 TD [(777 )-1200(})]TJ 0 -1.783 TD [(778 )-1200(/*)]TJ 0 -1.189 TD [(779 )-1800(*)-600(Read data from the printer, possibly increasing the buffer.)]TJ 0 -1.189 TD [(780 )-1800(*)-600(Returns offset of end of data in buffer or -1 on failure.)]TJ 0 -1.189 TD [(781 )-1800(*)]TJ 0 -1.189 TD [(782 )-1800(*)-600(LOCKING: none.)]TJ 0 -1.189 TD [(783 )-1800(*/)]TJ 0 -1.189 TD [(784 )-1200(ssize_t)]TJ 0 -1.189 TD [(785 )-1200(readmore\(int)-600(sockfd, char **bpp, int off, int *bszp\))]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3123.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 288.2634 Tm [([754 )167(\320 )167(757])-668(When )-144(we )-144(r)19(each )-144(the )-144(end )-144(of )-144(the )-144(\336le,)]TJ /TT0 1 Tf 21.438 0 Td (read)Tj /T1_0 1 Tf 2.794 0 Td [(will )-144(r)18(eturn )-144(0.)-643(However)]TJ 0.3938 Tc 10.706 0 Td (,i)Tj 0 Tc 0.935 0 Td (f)Tj /TT0 1 Tf 0.727 0 Td (read)Tj /T1_0 1 Tf -31.6 -1.2 Td [(fails, we log an err)18(or message and jump to)]TJ /TT0 1 Tf 18.95 0 Td (defer)Tj /T1_0 1 Tf (.)Tj -23.95 -1.6 Td [([758 )167(\320 )167(767])-668(After )-119(sending )-119(the )-119(\336le )-119(to )-119(the )-119(printer)72(,)-369(we)-369(c)-1(all)]TJ /TT0 1 Tf 25.266 0 Td (printer_status)Tj /T1_0 1 Tf 8.769 0 Td [(to )-119(r)18(ead )-119(the)]TJ -29.035 -1.2 Td [(printer )176(\325s)]TJ -0.018 Tc 4.193 0 Td (re)Tj 0 Tc 0.856 0 Td [(sponse )-98(to )-98(our )-98(r)18(equest. )-348(On)-348(success,)]TJ /TT0 1 Tf 16.169 0 Td (printer_status)Tj /T1_0 1 Tf -0.018 Tc 8.748 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-98(a)]TJ -30.822 -1.2 Td (nonzer)Tj 0.4021 Tc 3.066 0 Td (ov)Tj 0 Tc 1.513 0 Td [(alue )-152(and )-152(we )-152(delete )-152(the )-152(data )-152(and )-152(contr)18(ol )-152(\336les.)-653(Then )-152(we )-152(fr)18(ee )-152(the)]TJ /TT0 1 Tf -4.579 -1.2 Td (job)Tj /T1_0 1 Tf 2.05 0 Td [(str)8(uctur)18(e, set its pointer to)]TJ /TT0 1 Tf 11.831 0 Td (NULL)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 3.4 0 Td [(nd fall thr)18(ough to the)]TJ /TT0 1 Tf 9.689 0 Td (defer)Tj /T1_0 1 Tf 3.25 0 Td (label.)Tj -35.22 -1.6 Td [([768 )167(\320 )167(777])-668(At )-59(the)]TJ /TT0 1 Tf 8.109 0 Td (defer)Tj /T1_0 1 Tf 3.309 0 Td [(label, )-59(we )-59(close )-59(the )-59(\336le )-59(descriptor )-59(for )-59(the )-59(open )-59(data )-59(\336le.)-559(If )-59(the)]TJ -6.418 -1.2 Td [(socket )-200(descriptor )-200(is )-200(valid, )-200(we )-200(close )-200(it.)-698(On )-200(err)18(or)74(,)]TJ /TT0 1 Tf 22.907 0 Td (jp)Tj /T1_0 1 Tf 1.65 0 Td [(will )-200(point )-200(to )-200(the )-200(job)]TJ -24.557 -1.2 Td [(str)8(uctur)]TJ 0.3411 Tc 3.49 0 Td (ef)Tj 0 Tc 1.153 0 Td [(or )-91(the )-91(job )-91(we )-91(ar)]TJ 0.3412 Tc 7.216 0 Td (et)Tj 0 Tc 1.146 0 Td [(rying )-91(to )-91(print, )-91(so )-91(we )-91(place )-91(the )-91(job )-91(back )-91(on )-91(the)]TJ -13.005 -1.2 Td [(head )-30(of )-30(the )-30(pending )-30(job )-30(list )-30(and )-30(delay )-30(for )-30(1 )-30(minute.)-532(On )-30(success,)]TJ /TT0 1 Tf 28.875 0 Td (jp)Tj /T1_0 1 Tf 1.48 0 Td (is)Tj /TT0 1 Tf 0.995 0 Td (NULL)Tj /T1_0 1 Tf (,)Tj -31.35 -1.2 Td (so we simply go back to the top of the loop to get the next job to print\ .)Tj -5 -1.6 Td [([778 )167(\320 )167(785])-668(The)]TJ /TT0 1 Tf 7.029 0 Td (readmore)Tj /T1_0 1 Tf 5.155 0 Td [(function )-105(is )-105(used )-105(to )-105(r)18(ead )-105(part )-105(of )-105(the )-105(r)16(esponse )-105(message )-105(fr)17(om)]TJ -7.185 -1.2 Td [(the printer)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47330 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.3)]TJ 34.529 0 Td [(Unique )-250(Connections)]TJ /T1_1 1 Tf 11.304 0 Td (641)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (len = offsetof\(struct sockaddr_un, sun_path\) + strlen\(un.sun_path\);)Tj 0 -1.902 TD [(unlink\(un.sun_path\); )-4200(/*)-600(in case it already exists */)]TJ 0 -1.189 TD (if \(bind\(fd, \(struct sockaddr *\)&un, len\) < 0\) {)Tj 2.4 -1.189 Td (rval = -2;)Tj T* (goto errout;)Tj -2.4 -1.189 Td (})Tj T* (if \(chmod\(un.sun_path, CLI_PERM\) < 0\) {)Tj 2.4 -1.189 Td (rval = -3;)Tj T* (do_unlink = 1;)Tj T* (goto errout;)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (/* fill socket address structure with server\325s address */)Tj 0 -1.189 TD (memset\(&sun, 0, sizeof\(sun\)\);)Tj T* (sun.sun_family = AF_UNIX;)Tj T* (strcpy\(sun.sun_path, name\);)Tj T* (len = offsetof\(struct sockaddr_un, sun_path\) + strlen\(name\);)Tj T* (if \(connect\(fd, \(struct sockaddr *\)&sun, len\) < 0\) {)Tj 2.4 -1.189 Td (rval = -4;)Tj 0 -1.189 TD (do_unlink = 1;)Tj 0 -1.189 TD (goto errout;)Tj -2.4 -1.189 Td (})Tj T* (return\(fd\);)Tj -2.4 -1.902 Td (errout:)Tj 2.4 -1.189 Td (err = errno;)Tj 0 -1.189 TD (close\(fd\);)Tj 0 -1.189 TD (if \(do_unlink\))Tj 2.4 -1.189 Td (unlink\(un.sun_path\);)Tj -2.4 -1.189 Td (errno = err;)Tj T* (return\(rval\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3359.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 257.0651 319.9006 Tm (Figure 17.10)Tj /T1_0 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (cli_conn)Tj /T1_0 1 Tf 5.05 0 Td (function)Tj -0.092 Tc 9.9988 0 0 9.9988 129.5848 295.9035 Tm [(We )-301(c)]TJ 0 Tc 2.198 0 Td (all)Tj /TT0 1 Tf 1.449 0 Td (socket)Tj /T1_0 1 Tf 3.967 0 Td [(to )-117(cr)18(eate )-117(the )-117(client\325s )-117(end )-117(of )-117(a )-117(UNIX )-117(domain )-117(socket.)]TJ -0.092 Tc 24.002 0 Td [(We )-301(t)]TJ 0 Tc 2.08 0 Td [(hen )-117(\336ll )-117(in )-117(a)]TJ /TT0 1 Tf -33.696 -1.2 Td (sockaddr_un)Tj /T1_0 1 Tf 6.85 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ew)Tj 0 Tc 1.563 0 Td (ith a client-speci\336c name.)Tj -0.092 Tc -10.103 -1.2 Td [(We )-274(d)]TJ 0 Tc 2.338 0 Td [(on\325t )-90(let )-90(the )-90(system )-90(choose )-90(a )-90(default )-90(addr)18(ess )-90(for )-90(us, )-90(because )-90(the )-90(server )-90(would)]TJ -4.138 -1.2 Td [(be )-30(unable )-30(to )-30(distinguish )-30(one )-30(client )-30(fr)16(om )-30(another )-30(\(if )-30(we )-30(don\325t )-30(explicitly )-30(bind )-30(a )-30(name )-30(to )-30(a)]TJ 0 -1.2 TD [(UNIX )-72(domain )-72(socket, )-72(the )-72(kernel )-72(implicitly )-72(binds )-72(an )-72(addr)20(ess )-72(to )-72(it )-72(on )-72(our )-72(behalf )-72(and )-72(no)]TJ T* [(\336le )-191(is )-191(cr)18(eated )-191(in )-191(the )-191(\336le )-191(system )-191(to )-191(r)20(epr)18(esent )-191(the )-191(socket\).)-690(Instead, )-191(we )-191(bind )-191(our )-191(own)]TJ -0 -1.2 Td [(addr)18(ess )167(\321 )167(a)-449(step )-198(we )-198(usually )-198(don\325t )-198(take )-198(when )-198(developing )-198(a )-198(client )-198(pr)15(ogram )-198(that )-198(uses)]TJ -0 -1.2 Td (sockets.)Tj 1.8 -1.2 Td [(The )-92(last )-92(\336ve )-92(characters )-92(of )-92(the )-92(pathname )-92(we )-92(bind )-92(ar)]TJ 0.3425 Tc 23.381 0 Td (em)Tj 0 Tc 1.704 0 Td [(ade )-93(fr)18(om )-93(the )-93(pr)18(ocess )-93(ID )-93(of)]TJ -26.886 -1.2 Td [(the )-32(client.)]TJ -0.092 Tc 4.865 0 Td [(We )-216(c)]TJ 0 Tc 2.113 0 Td (all)Tj /TT0 1 Tf 1.364 0 Td (unlink)Tj /T1_0 1 Tf 0.2823 Tc (,j)Tj 0 Tc 4.366 0 Td [(ust )-32(in )-32(case )-32(the )-32(pathname )-32(alr)17(eady )-32(exists.)]TJ -0.092 Tc 18.163 0 Td [(We )-216(t)]TJ 0 Tc 1.995 0 Td [(hen )-32(call)]TJ /TT0 1 Tf 3.733 0 Td (bind)Tj /T1_0 1 Tf -36.6 -1.2 Td [(to )-68(assign )-68(a )-68(name )-68(to )-68(the )-68(client\325s )-68(socket.)-569(This )-68(cr)18(eates )-68(a )-68(socket )-68(\336le )-68(in )-68(the )-68(\336le )-68(system )-68(with)]TJ T* [(the )-23(same )-23(name )-23(as )-23(the )-23(bound )-23(pathname.)]TJ -0.092 Tc 18.184 0 Td [(We )-207(c)]TJ 0 Tc 2.104 0 Td (all)Tj /TT0 1 Tf 1.355 0 Td (chmod)Tj /T1_0 1 Tf 3.273 0 Td [(to )-23(turn )-23(of)]TJ 0.2726 Tc 4.184 0 Td (fa)Tj 0 Tc 1.106 0 Td [(ll )-23(permissions )-23(other)]TJ -30.205 -1.2 Td [(than )-44(user)18(-r)18(ead, )-44(user)18(-write, )-44(and )-44(user)18(-execute. )-294(In)]TJ /TT0 1 Tf 21.631 0 Td (serv_accept)Tj /T1_0 1 Tf 0.2939 Tc (,t)Tj 0 Tc 7.47 0 Td [(he )-44(server )-44(checks )-44(these)]TJ -29.101 -1.2 Td [(permissions and the user ID of the socket to verify the client\325s iden\ tity)111(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47331 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (170)Tj /T1_1 1 Tf 3.5 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Library)]TJ 34.372 0 Td [(Chapter )-250(5)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(The )-223(pr)18(ogram )-223(in )-223(Figur)]TJ 0.4728 Tc 10.206 0 Td (e5)Tj 0 Tc 1.452 0 Td [(.13 )-223(shows )-223(how )-223(to )-223(use )-223(\(and )-223(how )-223(not )-223(to )-223(use\) )-223(the)]TJ /TT1 1 Tf 23.142 0 Td (mkstemp)Tj /T1_1 1 Tf -34.8 -1.2 Td (function.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6210.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 611.4256 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD (void make_temp\(char *template\);)Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(\))Tj T* ({)Tj 2.4 -1.189 Td [(char )-1800(good_template[])]TJ 0.6 Tc 14.4 0 Td (=")Tj 0 Tc 1.8 0 Td (/tmp/dirXXXXXX"; /* right way */)Tj -16.2 -1.189 Td [(char )-1800(*bad_template)]TJ 0.6 Tc 13.2 0 Td (=")Tj 0 Tc 1.8 0 Td [(/tmp/dirXXXXXX"; )-1200(/*)-600(wrong way*/)]TJ -15 -1.902 Td (printf\("trying to create first temp file...\\n"\);)Tj T* (make_temp\(good_template\);)Tj 0 -1.189 TD (printf\("trying to create second temp file...\\n"\);)Tj 0 -1.189 TD (make_temp\(bad_template\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (void)Tj 0 -1.189 TD (make_temp\(char *template\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-4800(fd;)]TJ T* (struct stat sbuf;)Tj 0 -1.902 TD (if \(\(fd = mkstemp\(template\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("can\325t create temp file"\);)Tj -2.4 -1.189 Td (printf\("temp name = %s\\n", template\);)Tj 0 -1.189 TD (close\(fd\);)Tj 0 -1.189 TD (if \(stat\(template, &sbuf\) < 0\) {)Tj 2.4 -1.189 Td (if \(errno == ENOENT\))Tj 2.4 -1.189 Td (printf\("file doesn\325t exist\\n"\);)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (err_sys\("stat failed"\);)Tj 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (printf\("file exists\\n"\);)Tj 0 -1.189 TD (unlink\(template\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2322.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 245.2918 216.1591 Tm (Figure 5.13)Tj /T1_1 1 Tf 5.695 0 Td (Demonstrate)Tj /TT1 1 Tf 5.964 0 Td (mkstemp)Tj /T1_1 1 Tf 4.45 0 Td (function)Tj 9.9982 0 0 9.9982 129.577 192.1634 Tm [(If we execute the pr)18(ogram in Figur)]TJ 0.25 Tc 15.31 0 Td (e5)Tj 0 Tc 1.229 0 Td (.13, we get)Tj /TT1 1 Tf 8.9984 0 0 8.9984 147.5735 175.4664 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (./a.out)Tj /TT1 1 Tf -1.2 -1.189 Td (trying to create first temp file...)Tj 0 -1.189 TD (temp name = /tmp/dirUmBT7h)Tj T* (file exists)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47332 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (122)Tj /T1_1 1 Tf 3.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.241 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(This )-104(cr)18(eates )-104(a )-104(dir)17(ectory)]TJ /TT0 1 Tf 10.881 0 Td (foo)Tj /T1_1 1 Tf 2.154 0 Td [(that )-104(contains )-104(the )-104(\336le)]TJ /TT0 1 Tf 9.608 0 Td (a)Tj /T1_1 1 Tf 0.954 0 Td [(and )-104(a )-104(symbolic )-104(link )-104(that )-104(points )-104(to)]TJ /TT0 1 Tf -23.598 -1.2 Td (foo)Tj /T1_1 1 Tf 0.5175 Tc (.W)Tj 0.2675 Tc 3.476 0 Td (es)Tj 0 Tc 1.171 0 Td [(how )-17(this )-17(arrangement )-17(in )-17(Figur)]TJ 0.2675 Tc 13.588 0 Td (e4)Tj 0 Tc 1.246 0 Td [(.18, )-17(drawing )-17(a )-17(dir)18(ectory )-17(as )-17(a )-17(cir)18(cle )-17(and )-17(a )-17(\336le)]TJ -19.48 -1.2 Td [(as a squar)18(e.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3426 6098 cm 0 0 m 0 -99.41 -80.59 -180 -180 -180 c -279.41 -180 -360 -99.41 -360 0 c -360 99.41 -279.41 180 -180 180 c -80.59 180 0 99.41 0 0 c h S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 317.3619 607.967 Tm (foo)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2526 5378 360 360 re S Q BT /TT0 1 Tf 7.9986 0 0 7.9986 268.1517 553.9403 Tm (a)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3966 5558 cm 0 0 m 0 -99.41 -80.59 -180 -180 -180 c -279.41 -180 -360 -99.41 -360 0 c -360 99.41 -279.41 180 -180 180 c -80.59 180 0 99.41 0 0 c h S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 361.7132 553.907 Tm (testdir)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3105.25 5985.25 cm 0 0 m -309 -247 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3373.25 5970.25 cm 0 0 m 285 -285 l S Q Q q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 342.6 609.8 cm 0 0 m 7.344 1.08 l 6.984 -2.52 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 3426 6098 cm 0 0 m 73.44 10.8 l 69.84 -25.2 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786 5738 cm 0 0 m 0.01 1.2 0.02 2.41 0.02 3.62 c 0.02 14.43 -0.47 25.23 -1.44 36 c S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3778.0801 5813.6099 cm 0 0 m -2.54 11.66 -5.67 23.2 -9.36 34.55 c S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3754.3201 5886.3198 cm 0 0 m -4.99 10.82 -10.52 21.4 -16.57 31.68 c S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3715.4399 5951.8501 cm 0 0 m -6.98 9.47 -14.44 18.61 -22.32 27.36 c S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3664.3201 6008 cm 0 0 m -8.98 7.9 -18.36 15.36 -28.08 22.32 c S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3602.3999 6051.9199 cm 0 0 m -10.52 5.81 -21.35 11.11 -32.4 15.84 c S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3532.5601 6082.1602 cm 0 0 m -11.6 3.47 -23.38 6.36 -35.28 8.64 c S Q Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 226.7144 512.4155 Tm (Figure 4.18)Tj /T1_1 1 Tf 5.695 0 Td (Symbolic link)Tj /TT0 1 Tf 6.309 0 Td (testdir)Tj /T1_1 1 Tf 4.45 0 Td [(that cr)18(eates a loop)]TJ 9.9964 0 0 9.9964 129.5535 483.6259 Tm [(If )-231(we )-231(write )-231(a )-231(simple )-231(pr)18(ogram )-231(that )-231(uses )-231(the )-231(standar)]TJ 0.4813 Tc 24.338 0 Td (df)Tj 0 Tc 1.425 0 Td (unction)Tj /TT0 1 Tf 3.855 0 Td (ftw)Tj /T1_1 1 Tf 1.8 0.04 Td (\()Tj 0.333 -0.04 Td (3)Tj 0.5 0.04 Td (\))Tj 0.814 -0.04 Td [(on )-231(Solaris )-231(to)]TJ -33.066 -1.2 Td [(descend thr)18(ough a \336le hierar)18(chy)]TJ 0.25 Tc 14.172 0 Td (,p)Tj 0 Tc 1.101 0 Td [(rinting each pathname encounter)18(ed, the output is)]TJ /TT0 1 Tf 8.9968 0 0 8.9968 147.5475 457.0752 Tm (foo)Tj 0 -1.189 TD (foo/a)Tj 0 -1.189 TD (foo/testdir)Tj 0 -1.189 TD (foo/testdir/a)Tj 0 -1.189 TD (foo/testdir/testdir)Tj 0 -1.189 TD (foo/testdir/testdir/a)Tj T* (foo/testdir/testdir/testdir)Tj 0 -1.189 TD (foo/testdir/testdir/testdir/a)Tj /T1_1 1 Tf 1.8 -1.189 Td (\(many mor)Tj 0.25 Tc 4.91 0 Td (el)Tj 0 Tc 1.02 0 Td (ines until we encounter an)Tj /TT0 1 Tf 11.95 0 Td (ELOOP)Tj /T1_1 1 Tf 3.25 0 Td [(err)18(or\))]TJ 9.9964 0 0 9.9964 129.5538 353.5117 Tm [(In )-241(Section )-241(4.22, )-241(we )-241(pr)18(ovide )-241(our )-241(own )-241(version )-241(of )-241(the)]TJ /TT0 1 Tf 24.863 0 Td (ftw)Tj /T1_1 1 Tf 2.291 0 Td [(function )-241(that )-241(uses)]TJ /TT0 1 Tf 8.846 0 Td (lstat)Tj /T1_1 1 Tf -36 -1.2 Td (instead of)Tj /TT0 1 Tf 4.592 0 Td (stat)Tj /T1_1 1 Tf [(,)-250(to)-250(p)]TJ -0.018 Tc (re)Tj 0 Tc 5.479 0 Td [(vent it fr)18(om following symbolic links.)]TJ 7.9971 0 0 7.9971 183.5342 321.5232 Tm [(Note )-317(that )-317(on )-317(Linux, )-317(the)]TJ /TT0 1 Tf 12.121 0 Td (ftw)Tj /T1_1 1 Tf 2.367 0 Td (and)Tj /TT0 1 Tf 2.26 0 Td (nftw)Tj /T1_1 1 Tf 2.967 0 Td [(functions )-317(r)18(ecor)]TJ 0.5674 Tc 6.921 0 Td (da)Tj 0 Tc 1.678 0 Td [(ll )-317(dir)18(ectories )-317(seen )-317(and )-317(avoid)]TJ -28.316 -1.25 Td [(pr)18(ocessing a dir)18(ectory mor)]TJ 0.25 Tc 11.805 0 Td (et)Tj 0 Tc 1.055 0 Td [(han once, so they don\325t display this behavior)74(.)]TJ 0.357 Tc 9.9964 0 0 9.9964 147.5471 291.534 Tm (Al)Tj 0 Tc 1.426 0 Td [(oop )-107(of )-107(this )-107(form )-107(is )-107(easy )-107(to )-107(r)18(emove. )-357(W)]TJ 0.357 Tc 17.491 0 Td (ec)Tj 0 Tc 1.28 0 Td (an)Tj /TT0 1 Tf 1.439 0 Td (unlink)Tj /T1_1 1 Tf 3.957 0 Td [(the )-107(\336le)]TJ /TT0 1 Tf 3.476 0 Td (foo/testdir)Tj /T1_1 1 Tf 0.357 Tc (,a)Tj 0 Tc 7.707 0 Td (s)Tj /TT0 1 Tf -38.576 -1.2 Td (unlink)Tj /T1_1 1 Tf 3.904 0 Td [(does )-54(not )-54(follow )-54(a )-54(symbolic )-54(link.)-554(But )-54(if )-54(we )-54(cr)18(eate )-54(a )-54(har)]TJ 0.3039 Tc 24.447 0 Td (dl)Tj 0 Tc 1.206 0 Td [(ink )-54(that )-54(forms )-54(a )-54(loop)]TJ -29.557 -1.2 Td [(of )-53(this )-53(type, )-53(its )-53(r)17(emoval )-53(is )-53(much )-53(mor)]TJ 0.3034 Tc 16.552 0 Td (ed)Tj 0 Tc 1.393 0 Td [(if)18(\336cult. )-303(This)-304(is )-53(why )-53(the)]TJ /TT0 1 Tf 10.876 0 Td (link)Tj /T1_1 1 Tf 2.703 0 Td [(function )-53(will )-53(not)]TJ -31.525 -1.2 Td (form a har)Tj 0.25 Tc 4.616 0 Td (dl)Tj 0 Tc 1.152 0 Td [(ink to a dir)18(ectory unless the pr)18(ocess has super)8(user privileges.)]TJ 7.9971 0 0 7.9971 183.5342 235.5542 Tm [(Indeed, )-86(Rich )-86(Stevens )-86(did )-86(this )-86(on )-86(his )-86(own )-86(system )-86(as )-86(an )-86(experiment )-86(while )-86(writing )-86(the )-86(original)]TJ 0 -1.25 TD [(version )-68(of )-68(this )-68(section.)-568(The )-68(\336le )-68(system )-68(got )-68(corr)8(upted )-68(and )-68(the )-68(normal)]TJ /TT0 1 Tf 31.432 0 Td (fsck)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.651 -0.04 Td [(utility )-68(couldn\325t)]TJ -35.317 -1.25 Td [(\336x )-25(things.)-525(The )-25(depr)18(ecated )-25(tools)]TJ /TT0 1 Tf 14.471 0 Td (clri)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (8)Tj 0.5 0.04 Td (\))Tj 0.608 -0.04 Td (and)Tj /TT0 1 Tf 1.968 0 Td (dcheck)Tj /T1_1 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (8)Tj 0.5 0.04 Td (\))Tj 0.608 -0.04 Td (wer)Tj 0.275 Tc 1.69 0 Td (en)Tj 0 Tc 1.336 0 Td [(eeded )-25(to )-25(r)18(epair )-25(the )-25(\336le )-25(system.)]TJ -28.347 -1.875 Td [(The )-187(need )-187(for )-187(har)]TJ 0.437 Tc 7.869 0 Td (dl)Tj 0 Tc 1.339 0 Td [(inks )-187(to )-187(dir)18(ectories )-187(has )-187(long )-187(since )-187(passed.)]TJ -0.055 Tc 19.688 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-187(symbolic )-187(links )-187(and )-187(the)]TJ /TT0 1 Tf -30.132 -1.25 Td (mkdir)Tj /T1_1 1 Tf 3.25 0 Td [(function, ther)18(e)-250(is)-250(no)-250(longer any need for users to cr)18(eate har)]TJ 0.25 Tc 25.966 0 Td (dl)Tj 0 Tc 1.152 0 Td [(inks to dir)18(ectories.)]TJ 9.9964 0 0 9.9964 147.5466 170.5776 Tm [(When )-174(we )-174(open )-174(a )-174(\336le, )-174(if )-174(the )-174(pathname )-174(passed )-174(to)]TJ /TT0 1 Tf 22.901 0 Td (open)Tj /T1_1 1 Tf 2.824 0 Td [(speci\336es )-174(a )-174(symbolic )-174(link,)]TJ /TT0 1 Tf -27.524 -1.2 Td (open)Tj /T1_1 1 Tf 2.789 0 Td [(follows )-138(the )-138(link )-138(to )-138(the )-138(speci\336ed )-138(\336le.)-638(If )-138(the )-138(\336le )-138(pointed )-138(to )-138(by )-138(the )-138(symbolic )-138(link)]TJ -2.789 -1.2 Td [(doesn\325t )-43(exist,)]TJ /TT0 1 Tf 6.119 0 Td (open)Tj /T1_1 1 Tf -0.018 Tc 2.693 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-43(an )-43(err)17(or )-43(saying )-43(that )-43(it )-43(can\325t )-43(open )-43(the )-43(\336le.)-543(This )-43(r)18(esponse )-43(can)]TJ -9.668 -1.2 Td [(confuse users who ar)18(en\325t familiar with symbolic links.)-500(For example,)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47333 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf -0.037 Tc 9 0 0 9 93.6 708 Tm (11)Tj 0 Tc 0.963 0 Td (4)Tj /T1_1 1 Tf 2.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.278 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(If )-39(we )-39(examine )-39(the )-39(i-node )-39(and )-39(data )-39(block )-39(portion )-39(of )-39(a )-39(cylinder )-39(gr)18(oup )-39(in )-39(mor)]TJ 0.2889 Tc 33.684 0 Td (ed)Tj 0 Tc 1.379 0 Td (etail,)Tj -36.862 -1.2 Td (we could have the arrangement shown in Figur)Tj 0.25 Tc 20.972 0 Td (e4)Tj 0 Tc 1.229 0 Td (.14.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 2.8 w 1 j 1 J 1662 6048 720 216 re S Q BT /T1_1 1 Tf 6.9992 0 0 6.9992 183.145 613.9863 Tm (i-node array)Tj ET q 0.99988 0 0 0.99988 0 0 cm 0.699 g 238.2 604.8 14.4 21.6 re f Q q 0.099988 0 0 0.099988 0 0 cm 2.8 w 1 j 1 J 2382 6048 144 216 re S Q q 0.099988 0 0 0.099988 0 0 cm 2.8 w 1 j 1 J 2526 6048 288 216 re S Q BT /T1_1 1 Tf 6.9987 0 0 6.9987 260.1742 618.4487 Tm (data)Tj -0.227 -1.286 Td (block)Tj ET q 0.99982 0 0 0.99982 0 0 cm 0.699 g 281.4 604.8 14.4 21.6 re f Q q 0.099982 0 0 0.099982 0 0 cm 2.8 w 1 j 1 J 2814 6048 144 216 re S Q q 0.099982 0 0 0.099982 0 0 cm 2.8 w 1 j 1 J 2958 6048 288 216 re S Q BT /T1_1 1 Tf 6.9983 0 0 6.9983 303.3482 618.4116 Tm (data)Tj -0.227 -1.286 Td (block)Tj ET q 0.99976 0 0 0.99976 0 0 cm 0.699 g 324.6 604.8 28.8 21.6 re f Q q 0.099976 0 0 0.099976 0 0 cm 2.8 w 1 j 1 J 3246 6048 288 216 re S Q q 0.099976 0 0 0.099976 0 0 cm 2.8 w 1 j 1 J 3534 6048 288 216 re S Q BT /T1_1 1 Tf 6.9979 0 0 6.9979 353.6069 618.3745 Tm [(dir)18(ectory)]TJ 0.817 -1.286 Td (block)Tj ET q 0.9997 0 0 0.9997 0 0 cm 0.699 g 382.2 604.8 36 21.6 re f Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J 3822 6048 360 216 re S Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J 4182 6048 288 216 re S Q BT /T1_1 1 Tf 6.9975 0 0 6.9975 425.6677 618.3374 Tm (data)Tj -0.227 -1.286 Td (block)Tj ET q 0.9996401 0 0 0.9996401 0 0 cm 0.699 g 447 604.8 14.4 21.6 re f Q q 0.099964 0 0 0.099964 0 0 cm 2.8 w 1 j 1 J 4470 6048 144 216 re S Q q 0.099964 0 0 0.099964 0 0 cm 2.8 w 1 j 1 J 4614 6048 288 216 re S Q BT /T1_1 1 Tf 6.9971 0 0 6.9971 461.5191 618.3003 Tm [(dir)18(ectory)]TJ 0.817 -1.286 Td (block)Tj ET q 0.9995801 0 0 0.9995801 0 0 cm 0.699 g 490.2 604.8 14.4 21.6 re f Q q 0.099958 0 0 0.099958 0 0 cm 2.8 w 1 j 1 J 4902 6048 144 216 re S Q q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 238.2 633.6 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 2382 6336 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2454.25 6336.25 cm 0 0 m 648 0 l S Q Q q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 504.6 633.6 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 5046 6336 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4974.25 6336.25 cm 0 0 m -648 0 l S Q Q BT /T1_1 1 Tf 6.9958 0 0 6.9958 321.2172 631.6809 Tm [(dir)18(ectory blocks and data blocks)]TJ ET q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J 1446 5364 216 216 re S Q BT /T1_1 1 Tf 6.9954 0 0 6.9954 145.357 545.3 Tm (i-node)Tj ET q 0.099934 0 0 0.099934 0 0 cm 2.8 w 1 j 1 J 1662 5364 216 216 re S Q BT /T1_1 1 Tf 6.995 0 0 6.995 166.9328 545.2673 Tm (i-node)Tj ET q 0.9992802 0 0 0.9992802 0 0 cm 0.699 g 187.8 536.4 28.8 21.6 re f Q q 0.099928 0 0 0.099928 0 0 cm 2.8 w 1 j 1 J 1878 5364 288 216 re S Q q 0.099928 0 0 0.099928 0 0 cm 2.8 w 1 j 1 J 2166 5364 216 216 re S Q BT /T1_1 1 Tf 6.9945 0 0 6.9945 217.2834 545.2345 Tm (i-node)Tj ET q 0.9992203 0 0 0.9992203 0 0 cm 0.699 g 238.2 536.4 28.8 21.6 re f Q q 0.099922 0 0 0.099922 0 0 cm 2.8 w 1 j 1 J 2382 5364 288 216 re S Q q 0.099922 0 0 0.099922 0 0 cm 2.8 w 1 j 1 J 2670 5364 216 216 re S Q BT /T1_1 1 Tf 6.9941 0 0 6.9941 267.6281 545.2018 Tm (i-node)Tj ET q 0.099916 0 0 0.099916 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1647.25 6012.25 cm 0 0 m -15 -33 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1619.25 5951.25 cm 0 0 m -16 -32 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1590.25 5891.25 cm 0 0 m -15 -33 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1562.25 5830.25 cm 0 0 m -15 -32 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1533.25 5769.25 cm 0 0 m -15 -32 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1504.25 5709.25 cm 0 0 m -15 -33 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1475.25 5648.25 cm 0 0 m -15 -32 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2709.25 5744.25 cm 0 0 m 27 -25 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2766.25 5692.25 cm 0 0 m 27 -24 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2823.25 5640.25 cm 0 0 m 27 -24 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2452.25 5981.25 cm 0 0 m -34 31 l S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 267 604.8 cm 0 0 m -3.672 -6.408 l -6.264 -3.888 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 2670 6048 cm 0 0 m -36.72 -64.08 l -62.64 -38.88 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2220.25 5580.25 cm 0 0 m 400 416 l S Q Q BT /T1_1 1 Tf 4.8471 5.041 -5.041 4.8471 226.1588 566.3151 Tm (\336rst data block)Tj ET q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 310.2 604.8 cm 0 0 m -5.4 -5.112 l -7.2 -1.944 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 3102 6048 cm 0 0 m -54 -51.12 l -72 -19.44 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2274.25 5580.25 cm 0 0 m 765 432 l S Q Q BT /T1_1 1 Tf 6.0877 3.4409 -3.4409 6.0877 242.985 569.7675 Tm (second data block)Tj ET q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 432.6 604.8 cm 0 0 m -6.624 -3.384 l -7.416 0.144 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 4326 6048 cm 0 0 m -66.24 -33.84 l -74.16 1.44 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2328.25 5580.25 cm 0 0 m 1928 451 l S Q Q BT /T1_1 1 Tf 6.8081 1.5947 -1.5947 6.8081 295.0612 575.0686 Tm (thir)Tj 0.25 Tc 1.576 0 Td (dd)Tj 0 Tc 1.472 0 Td (ata block)Tj ET q 0.0998921 0 0 0.0998921 0 0 cm 2.8 w 1 j 1 J 3318 5112 720 432 re S Q q 0.9988606 0 0 0.9988606 0 0 cm 0.699 g 331.8 540 72 14.4 re f Q q 0.0998861 0 0 0.0998861 0 0 cm 2.8 w 1 j 1 J 3318 5400 720 144 re S Q q 0.0998861 0 0 0.0998861 0 0 cm 2.8 w 1 j 1 J 3318 5256 216 144 re S Q BT /T1_1 1 Tf 4.994 0 0 4.994 335.0926 534.1187 Tm (i-node)Tj -0.326 -1.4 Td (number)Tj ET q 0.0998801 0 0 0.0998801 0 0 cm 2.8 w 1 j 1 J 3534 5256 504 144 re S Q BT /T1_1 1 Tf 6.9912 0 0 6.9912 364.7741 530.591 Tm (\336lename)Tj ET q 0.9987408 0 0 0.9987408 0 0 cm 0.699 g 331.8 511.2 72 14.4 re f Q q 0.0998741 0 0 0.0998741 0 0 cm 2.8 w 1 j 1 J 3318 5112 720 144 re S Q q 0.0998741 0 0 0.0998741 0 0 cm 2.8 w 1 j 1 J 4182 4896 720 432 re S Q q 0.9986808 0 0 0.9986808 0 0 cm 0.699 g 418.2 511.2 72 21.6 re f Q q 0.0998681 0 0 0.0998681 0 0 cm 2.8 w 1 j 1 J 4182 5112 720 216 re S Q q 0.0998681 0 0 0.0998681 0 0 cm 2.8 w 1 j 1 J 4182 4968 216 144 re S Q BT /T1_1 1 Tf 4.9931 0 0 4.9931 421.3132 505.2622 Tm (i-node)Tj -0.326 -1.4 Td (number)Tj ET q 0.0998621 0 0 0.0998621 0 0 cm 2.8 w 1 j 1 J 4398 4968 504 144 re S Q BT /T1_1 1 Tf 6.9899 0 0 6.9899 450.9841 501.737 Tm (\336lename)Tj ET q 0.998561 0 0 0.998561 0 0 cm 0.699 g 418.2 489.6 72 7.2 re f Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J 4182 4896 720 72 re S Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3519.25 6012.25 cm 0 0 m -14 -33 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3491.25 5946.25 cm 0 0 m -15 -34 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3462.25 5879.25 cm 0 0 m -15 -34 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3433.25 5812.25 cm 0 0 m -14 -33 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3404.25 5746.25 cm 0 0 m -14 -33 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3375.25 5679.25 cm 0 0 m -14 -33 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3347.25 5613.25 cm 0 0 m -15 -33 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3836.25 6012.25 cm 0 0 m 15 -33 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3865.25 5946.25 cm 0 0 m 14 -34 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3894.25 5879.25 cm 0 0 m 14 -34 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3923.25 5812.25 cm 0 0 m 14 -33 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3951.25 5746.25 cm 0 0 m 15 -33 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3980.25 5679.25 cm 0 0 m 15 -33 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4009.25 5613.25 cm 0 0 m 14 -33 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4599.25 6012.25 cm 0 0 m -18 -30 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4561.25 5950.25 cm 0 0 m -19 -30 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4522.25 5888.25 cm 0 0 m -18 -30 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4484.25 5827.25 cm 0 0 m -19 -31 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4446.25 5765.25 cm 0 0 m -19 -30 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4407.25 5703.25 cm 0 0 m -19 -30 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4369.25 5641.25 cm 0 0 m -19 -30 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4330.25 5580.25 cm 0 0 m -19 -30 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4292.25 5518.25 cm 0 0 m -19 -30 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4254.25 5456.25 cm 0 0 m -19 -30 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4215.25 5394.25 cm 0 0 m -19 -30 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4902.25 6012.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4902.25 5935.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4902.25 5859.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4902.25 5782.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4902.25 5706.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4902.25 5629.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4902.25 5553.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4902.25 5476.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4902.25 5400.25 cm 0 0 m 0 -36 l S Q Q q 0.9985011 0 0 0.9985011 0 0 cm q 1 0 0 1 232.8 536.4 cm 0 0 m 6.912 -2.808 l 4.824 -5.688 l f Q Q q 0.0998501 0 0 0.0998501 0 0 cm 1 j 1 J q 1 0 0 1 2328 5364 cm 0 0 m 69.12 -28.08 l 48.24 -56.88 l h S Q Q q 0.0998501 0 0 0.0998501 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3325.2 5328 cm 0 0 m -219.6 -90 l -366 -150 -499.2 -168 -619.2 -144 c -739.2 -120 -831.24 -84.72 -895.32 -38.16 c -991.44 31.68 l S Q Q q 0.9984412 0 0 0.9984412 0 0 cm q 1 0 0 1 222 536.4 cm 0 0 m 5.112 -5.4 l 1.944 -7.2 l f Q Q q 0.0998441 0 0 0.0998441 0 0 cm 1 j 1 J q 1 0 0 1 2220 5364 cm 0 0 m 51.12 -54 l 19.44 -72 l h S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4189.2002 5040 cm 0 0 m -651.6 -18 l -1086 -30 -1387.2 -24 -1555.2 0 c -1723.2 24 -1833.6 82.92 -1886.4 176.76 c -1965.6 317.52 l S Q Q BT /T1_0 1 Tf 7.9871 0 0 7.9871 202.8311 462.6499 Tm (Figure 4.14)Tj /T1_1 1 Tf 5.695 0 Td [(Cylinder gr)18(oup\325s i-nodes and data blocks in mor)]TJ 0.25 Tc 21.438 0 Td (ed)Tj 0 Tc 1.34 0 Td (etail)Tj 9.9838 0 0 9.9838 129.3893 433.8965 Tm [(Note the following points fr)18(om Figur)]TJ 0.25 Tc 16.381 0 Td (e4)Tj 0 Tc 1.229 0 Td (.14.)Tj 0.883 Tc -17.61 -1.92 Td (\245T)Tj 0 Tc 2.012 0 Td [(wo )-69(dir)18(ectory )-69(entries )-69(point )-69(to )-69(the )-69(same )-69(i-node )-69(entry)]TJ 0.5694 Tc 22.896 0 Td (.E)Tj 0 Tc 1.43 0 Td [(very )-69(i-node )-69(has )-69(a )-69(link )-69(count)]TJ -24.85 -1.2 Td [(that )-139(contains )-139(the )-139(number )-139(of )-139(dir)16(ectory )-139(entries )-139(that )-139(point )-139(to )-139(it.)-639(Only )-139(when )-139(the )-139(link)]TJ 0 -1.2 TD [(count )-85(goes )-85(to )-85(0 )-85(can )-85(the )-85(\336le )-85(be )-85(deleted )-85(\(ther)18(eby )-85(r)18(eleasing )-85(the )-85(data )-85(blocks )-85(associated)]TJ T* [(with )-46(the )-46(\336le\).)-546(This )-46(is )-46(why )-46(the )-46(operation )-46(of )-46(\324)37(\324unlinking )-46(a )-46(\336le\325)]TJ 0.2962 Tc 26.985 0 Td (\325d)Tj 0 Tc 1.185 0 Td [(oes )-46(not )-46(always )-46(mean)]TJ -0.037 Tc -28.17 -1.2 Td (\324\324)Tj 0 Tc 0.519 0 Td [(deleting )-30(the )-30(blocks )-30(associated )-30(with )-30(the )-30(\336le.\325)]TJ 0.5299 Tc 19.326 0 Td (\325T)Tj 0 Tc 1.421 0 Td [(his )-30(is )-30(why )-30(the )-30(function )-30(that )-30(r)19(emoves)]TJ 0.3083 Tc -21.266 -1.2 Td (ad)Tj 0 Tc 1.419 0 Td [(ir)18(ectory )-58(entry )-58(is )-58(called)]TJ /TT0 1 Tf 10.316 0 Td (unlink)Tj /T1_1 1 Tf 0.3082 Tc (,n)Tj 0 Tc 4.74 0 Td [(ot )-58(delete.)-558(In )-58(the)]TJ /TT0 1 Tf 7.576 0 Td (stat)Tj /T1_1 1 Tf 2.708 0 Td [(str)8(uctur)18(e, )-58(the )-58(link )-58(count)]TJ -26.759 -1.2 Td [(is )-76(contained )-76(in )-76(the)]TJ /TT0 1 Tf 8.64 0 Td (st_nlink)Tj /T1_1 1 Tf 5.126 0 Td (member)Tj 0.576 Tc 3.598 0 Td (.I)Tj 0 Tc 1.163 0 Td [(ts )-76(primitive )-76(system )-76(data )-76(type )-76(is)]TJ /TT0 1 Tf 14.534 0 Td (nlink_t)Tj /T1_1 1 Tf (.)Tj -33.061 -1.2 Td [(These )-39(types )-39(of )-39(links )-39(ar)]TJ 0.2889 Tc 10.019 0 Td (ec)Tj 0 Tc 1.212 0 Td [(alled )-39(har)]TJ 0.2889 Tc 3.92 0 Td (dl)Tj 0 Tc 1.191 0 Td [(inks. )-289(Recall)-289(fr)18(om )-39(Section )-39(2.5.2 )-39(that )-39(the )-39(POSIX.1)]TJ -16.341 -1.2 Td (constant)Tj /TT0 1 Tf 3.98 0 Td (LINK_MAX)Tj /T1_1 1 Tf 5.05 0 Td (speci\336es the maximum value for a \336le\325s link count.)Tj 0.883 Tc -10.519 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-208(other )-208(type )-208(of )-208(link )-208(is )-208(called )-208(a)]TJ /T1_2 1 Tf 15.445 0 Td [(symbolic )-208(link)]TJ /T1_1 1 Tf 0.7081 Tc (.W)Tj 0 Tc 7.454 0 Td [(ith )-208(a )-208(symbolic )-208(link, )-208(the )-208(actual)]TJ -23.512 -1.2 Td [(contents )-131(of )-131(the )-131(\336le)]TJ 0.0833 Tc 8.577 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(he )-131(data )-131(blocks)]TJ 0.0833 Tc 6.658 0 Td (\321s)Tj 0 Tc 1.507 0 Td (tor)Tj 0.3813 Tc 1.249 0 Td (et)Tj 0 Tc 1.186 0 Td [(he )-131(name )-131(of )-131(the )-131(\336le )-131(that )-131(the )-131(symbolic)]TJ -20.587 -1.2 Td [(link )-117(points )-117(to.)-618(In )-117(the )-117(following )-117(example, )-117(the )-117(\336lename )-117(in )-117(the )-117(dir)18(ectory )-117(entry )-117(is )-117(the)]TJ T* [(thr)18(ee-character string)]TJ /TT0 1 Tf 9.715 0 Td (lib)Tj /T1_1 1 Tf 2.05 0 Td [(and the 7 bytes of data in the \336le ar)18(e)]TJ /TT0 1 Tf 16.225 0 Td (usr/lib)Tj /T1_1 1 Tf (:)Tj /TT0 1 Tf 8.9854 0 0 8.9854 162.2251 250.2942 Tm [(lrwxrwxrwx )-600(1)-600(root )-3000(7)-600(Sep 25 07:14 lib -> usr/lib)]TJ /T1_1 1 Tf 9.9838 0 0 9.9838 144.2542 232.3233 Tm [(The )-20(\336le )-20(type )-20(in )-20(the )-20(i-node )-20(would )-20(be)]TJ /TT0 1 Tf 16.188 0 Td (S_IFLNK)Tj /T1_1 1 Tf 4.47 0 Td [(so )-20(that )-20(the )-20(system )-20(knows )-20(that )-20(this )-20(is )-20(a)]TJ -20.657 -1.2 Td (symbolic link.)Tj 0.883 Tc -1.489 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-97(i-node )-97(contains )-97(all )-97(the )-97(information )-97(about )-97(the )-97(\336le: )-97(the )-97(\336le )-97(type, )-97(the )-97(\336le\325s )-97(access)]TJ -0.613 -1.2 Td [(permission )-17(bits, )-17(the )-17(size )-17(of )-17(the )-17(\336le, )-17(pointers )-17(to )-17(the )-17(\336le\325s )-17(data )-17(blocks, )-17(and )-17(so )-17(on.)-510(Most)]TJ T* [(of )-3(the )-3(information )-3(in )-3(the)]TJ /TT0 1 Tf 11.067 0 Td (stat)Tj /T1_1 1 Tf 2.653 0 Td [(str)8(uctur)18(e)-253(is)-253(o)-1(btained )-3(fr)18(om )-3(the )-3(i-node.)-503(Only )-3(two )-3(items)]TJ -13.72 -1.2 Td [(of )-9(inter)18(est )-9(ar)]TJ 0.2595 Tc 5.559 0 Td (es)Tj 0 Tc 1.163 0 Td [(tor)18(ed )-9(in )-9(the )-9(dir)18(ectory )-9(entry: )-9(the )-9(\336lename )-9(and )-9(the )-9(i-node )-9(number)]TJ 0.5095 Tc 28.356 0 Td (.T)Tj 0 Tc 1.372 0 Td (he)Tj -36.45 -1.2 Td [(other )-65(items)]TJ 0.0833 Tc 5.129 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(he )-65(length )-65(of )-65(the )-65(\336lename )-65(and )-65(the )-65(length )-65(of )-65(the )-65(dir)17(ectory )-65(r)18(ecor)]TJ 0.0833 Tc 27.838 0 Td (d\321a)Tj -0.018 Tc 2.278 0 Td (re)Tj 0 Tc -36.655 -1.2 Td [(not of inter)18(est to this discussion.)-500(The data type for the i-node number is)]TJ /TT0 1 Tf 32.038 0 Td (ino_t)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47334 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (991)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 140.3916 670.9597 Tm (read/write)Tj /T1_0 1 Tf 6.417 0 Td (versus)Tj /TT0 1 Tf 3.14 0 Td (mmap)Tj /T1_0 1 Tf 0.5 Tc 2.567 0 Td (,5)Tj 0 Tc 1.25 0 Td (30)Tj -13.373 -1.25 Td (standar)Tj 0.25 Tc 3.32 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O versus unbuf)18(fer)18(ed I/O,)-500(155)]TJ -4.518 -1.25 Td (STREAMS)Tj 4.666 0.09 Td (-)Tj 0.333 -0.09 Td [(based pipes,)-500(565)]TJ -4.999 -1.25 Td [(synchr)18(onization mechanisms,)-500(86)]TJ 14.704 0.09 Td (\320)Tj 0.583 -0.09 Td (87)Tj -15.288 -1.25 Td [(UNIX domain sockets,)-500(565)]TJ /TT0 1 Tf 0 -1.25 TD (writev)Tj /T1_0 1 Tf 4.017 0 Td [(versus other techniques,)-500(522)]TJ -5.367 -1.25 Td [(timing comparison, mutex,)-500(571)]TJ -0.018 Tc 1.35 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.25 Tc 1.367 0 Td (dl)Tj 0 Tc 1.152 0 Td [(ocking, )-250(571)]TJ -3.375 -1.25 Td (semaphor)Tj 0.25 Tc 4.392 0 Td (el)Tj 0 Tc 1.02 0 Td [(ocking, )-250(571,)-250(583)]TJ /TT0 1 Tf -6.762 -1.25 Td (TIOCGWINSZ)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(710)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td [(71)55(1, 719, 730, 897)]TJ /TT0 1 Tf -13.063 -1.25 Td (TIOCPKT)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(740)]TJ /TT0 1 Tf -4.617 -1.25 Td (TIOCREMOTE)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(741)]TJ /TT0 1 Tf -6.417 -1.25 Td (TIOCSCTTY)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(297)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (298, 727)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (728)Tj /TT0 1 Tf -16.63 -1.25 Td (TIOCSIG)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(741)]TJ /TT0 1 Tf -4.617 -1.25 Td (TIOCSIGNAL)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(741)]TJ /TT0 1 Tf -6.417 -1.25 Td (TIOCSWINSZ)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(710,)-250(718, 728, 741)]TJ /TT0 1 Tf -6.417 -1.25 Td (tip)Tj /T1_0 1 Tf 2.217 0 Td [(pr)18(ogram, )-250(713)]TJ /TT0 1 Tf -2.217 -1.25 Td (tm)Tj /T1_0 1 Tf 1.617 0 Td [(str)8(uctur)18(e, )-250(191,)-250(194, 408, 919)]TJ /TT0 1 Tf -1.617 -1.25 Td (TMPDIR)Tj /T1_0 1 Tf 4.017 0 Td [(envir)18(onment variable,)-500(21)55(1)]TJ /TT0 1 Tf -4.017 -1.25 Td (tmpfile)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(167)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (171, 366, 452)Tj -9.89 -1.25 Td [(de\336nition of,)-500(167)]TJ /TT0 1 Tf -1.35 -1.25 Td (TMP_MAX)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(38,)-250(168)]TJ /TT0 1 Tf -4.617 -1.25 Td (tmpnam)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(38,)-250(167)]TJ 7.54 0.09 Td (\320)Tj 0.583 -0.09 Td (171, 442)Tj -10.79 -1.25 Td [(de\336nition of,)-500(167)]TJ /TT0 1 Tf -1.35 -1.25 Td (tms)Tj /T1_0 1 Tf 2.217 0 Td [(str)8(uctur)18(e, )-250(280)]TJ 6.302 0.09 Td (\320)Tj 0.583 -0.09 Td (281)Tj -0.018 Tc -9.102 -1.25 Td (TO)Tj 0 Tc 1.381 0 Td [(CTT)18(OU err)18(or)]TJ 0.5 Tc 5.849 0 Td (,6)Tj 0 Tc 1.25 0 Td (5, 250, 953)Tj -0.092 Tc -8.48 -1.25 Td (To)Tj 0 Tc 1.067 0 Td [(rvalds, L.,)-500(35)]TJ /TT0 1 Tf -1.067 -1.25 Td (TOSTOP)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(676,)-250(691)]TJ /TT0 1 Tf -4.017 -1.25 Td (touch)Tj /T1_0 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(127)]TJ -3.417 -1.25 Td [(tracing system calls,)-500(497)]TJ T* [(transactions, database,)-500(952)]TJ /TT0 1 Tf T* (TRAP_BRKPT)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (TRAP_TRACE)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (tread)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(800,)-250(805)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (806, 825, 838)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (839)Tj -16.857 -1.25 Td [(de\336nition of,)-500(805)]TJ /TT0 1 Tf -1.35 -1.25 Td (treadn)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(800,)-250(806, 824)]TJ -2.667 -1.25 Td [(de\336nition of,)-500(806)]TJ -0.09 Tc -1.35 -1.25 Td (Tr)Tj 0 Tc 0.918 0 Td (ickey)Tj 0.25 Tc 2.215 0 Td (,H)Tj 0 Tc 1.332 0 Td [(., )-250(229,)-250(952)]TJ /TT0 1 Tf -4.465 -1.25 Td (truncate)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(1)55(12, 121, 125, 474)]TJ -3.867 -1.25 Td (de\336nition of,)Tj -0.055 Tc 6.192 0 Td (11)Tj 0 Tc 0.945 0 Td (2)Tj -8.487 -1.25 Td [(tr)8(uncation)]TJ 1.35 -1.25 Td [(\336le, )-250(1)55(12)]TJ T* [(\336lename, )-250(65)]TJ 5.652 0.09 Td (\320)Tj 0.583 -0.09 Td (66)Tj -6.235 -1.25 Td [(pathname, )-250(65)]TJ 6.286 0.09 Td (\320)Tj 0.583 -0.09 Td (66)Tj /TT0 1 Tf -8.22 -1.25 Td (truss)Tj /T1_0 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(497)]TJ /TT0 1 Tf -3.417 -1.25 Td (ttcompat)Tj /T1_0 1 Tf 5.217 0 Td [(STREAMS module,)-500(716, 726)]TJ /TT0 1 Tf -5.217 -1.25 Td (tty)Tj /T1_0 1 Tf 2.217 0 Td [(str)8(uctur)18(e, )-250(31)55(1)]TJ /TT0 1 Tf -2.217 -1.25 Td (tty_atexit)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(705,)-250(731, 897)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(708)]TJ /TT0 1 Tf -1.35 -1.25 Td (tty_cbreak)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(704,)-250(709, 897)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(705)]TJ /TT0 1 Tf -1.35 -1.25 Td (ttymon)Tj /T1_0 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(290)]TJ /TT0 1 Tf -4.017 -1.25 Td (ttyname)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(137,)-250(276, 442, 452, 695)]TJ 14.04 0.09 Td (\320)Tj 0.583 -0.09 Td (696, 699)Tj 8.11 65 Td [(de\336nition of,)-500(695, 698)]TJ /TT0 1 Tf -1.35 -1.25 Td (TTY_NAME_MAX)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(40,)-250(43, 49)]TJ /TT0 1 Tf -7.617 -1.25 Td (ttyname_r)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(443,)-250(452)]TJ /TT0 1 Tf -5.817 -1.25 Td (tty_raw)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(704,)-250(709, 713, 731, 897)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(706)]TJ /TT0 1 Tf -1.35 -1.25 Td (tty_reset)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(704,)-250(709, 897)]TJ -4.467 -1.25 Td [(de\336nition of,)-500(707)]TJ /TT0 1 Tf -1.35 -1.25 Td (tty_termios)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(705,)-250(897)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(708)]TJ /TT0 1 Tf -1.35 -1.25 Td (type)Tj /T1_0 1 Tf 2.817 0 Td [(attribute, )-250(431)]TJ /TT0 1 Tf -2.817 -1.25 Td (typescript)Tj /T1_0 1 Tf 6.417 0 Td [(\336le, )-250(719,)-250(737)]TJ /TT0 1 Tf -6.417 -1.25 Td (TZ)Tj /T1_0 1 Tf 1.617 0 Td [(envir)18(onment variable,)-500(190, 192, 195)]TJ 15.849 0.09 Td (\320)Tj 0.583 -0.09 Td [(196, 21)55(1,)]TJ -15.349 -1.25 Td (919)Tj /TT0 1 Tf -2.7 -1.25 Td (TZNAME_MAX)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(40,)-250(43, 49)]TJ /TT0 1 Tf -6.417 -1.25 Td (tzset)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(452)]TJ -3.417 -6 Td [(Ubuntu, )-250(xxii,)-250(7, 26, 35, 290)]TJ /TT0 1 Tf T* (UCHAR_MAX)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(37)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (38)Tj /TT0 1 Tf -11.963 -1.25 Td (ucontext_t)Tj /T1_0 1 Tf 6.417 0 Td [(str)8(uctur)18(e, )-250(352)]TJ /TT0 1 Tf -6.417 -1.25 Td (ucred)Tj /T1_0 1 Tf 3.417 0 Td [(str)8(uctur)18(e, )-250(649,)-250(651)]TJ /TT0 1 Tf -3.417 -1.25 Td (UFS)Tj /T1_0 1 Tf 2.217 0 Td [(\336le system,)-500(49, 57, 65, 1)55(13, 1)55(16, 129)]TJ -2.217 -1.25 Td (UID,)Tj /T1_2 1 Tf 2.639 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td (user ID)Tj /TT0 1 Tf -4.056 -1.25 Td (uid_t)Tj /T1_0 1 Tf 3.417 0 Td [(data type,)-500(59)]TJ /TT0 1 Tf -3.417 -1.25 Td (uint16_t)Tj /T1_0 1 Tf 5.217 0 Td [(data type,)-500(595)]TJ /TT0 1 Tf -5.217 -1.25 Td (uint32_t)Tj /T1_0 1 Tf 5.217 0 Td [(data type,)-500(595)]TJ /TT0 1 Tf -5.217 -1.25 Td (UINT_MAX)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(37)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (38)Tj /TT0 1 Tf -11.363 -1.25 Td (ulimit)Tj /T1_0 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(53,)-250(222)]TJ /TT0 1 Tf -4.017 -1.25 Td (ULLONG_MAX)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(37)]TJ /TT0 1 Tf -6.417 -1.25 Td (ULONG_MAX)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(37)]TJ -5.817 -1.25 Td [(UltraSP)92(ARC, )-250(xxii,)-250(xxvii)]TJ /TT0 1 Tf T* (umask)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(104)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (107, 222, 331, 466)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (467)Tj -16.857 -1.25 Td [(de\336nition of,)-500(104)]TJ /TT0 1 Tf -1.35 -1.25 Td (umask)Tj /T1_0 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(105,)-250(141)]TJ /TT0 1 Tf -3.417 -1.25 Td (uname)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(187,)-250(196, 331)]TJ -2.067 -1.25 Td [(de\336nition of,)-500(187)]TJ /TT0 1 Tf -1.35 -1.25 Td (uname)Tj /T1_0 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(188,)-250(196)]TJ -3.417 -1.25 Td [(unbuf)18(fer)18(ed I/O,)-500(8, 61)]TJ 9.747 0.09 Td (\320)Tj 0.583 -0.09 Td (91)Tj -10.331 -1.25 Td [(unbuf)18(fer)18(ed I/O timing, standar)]TJ 0.25 Tc 13.913 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O versus,)-500(155)]TJ /TT0 1 Tf -15.111 -1.25 Td (ungetc)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(151)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (152, 452)Tj -9.29 -1.25 Td [(de\336nition of,)-500(151)]TJ /TT0 1 Tf -1.35 -1.25 Td (ungetwc)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(452)]TJ -4.617 -1.25 Td [(uninitialized data segment,)-500(205)]TJ /TT0 1 Tf T* ()Tj /T1_0 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,9)Tj 0.25 Tc 1.25 0 Td (,2)Tj 0 Tc 1 0 Td [(9, 53, 62, 1)55(10, 442, 501,)]TJ -8.939 -1.25 Td (755, 895)Tj -2.7 -1.25 Td [(UNIX Ar)18(chitectur)18(e, )-250(1)]TJ 9.702 0.09 Td (\320)Tj 0.583 -0.09 Td (2)Tj -10.286 -1.25 Td [(UNIX domain sockets,)-500(629)]TJ 12.058 0.09 Td (\320)Tj 0.583 -0.09 Td (642)Tj -11.291 -1.25 Td [(timing, )-250(565)]TJ -1.35 -1.25 Td [(UNIX System implementations,)-500(33)]TJ T* [(Unix-to-Unix Copy)111(,)]TJ /T1_2 1 Tf 9.173 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td (UUCP)Tj -10.59 -1.25 Td [(UnixW)92(ar)18(e, )-250(35)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47335 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 356.322 708 Tm [(Pr)18(eface )-250(to )-250(the )-250(Second )-250(Edition)]TJ /T1_1 1 Tf 15.92 0 Td (xxvii)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(via )-62(a )-62(serial )-62(or )-62(parallel )-62(port.)-562(Most )-62(PostScript )-62(printers )-62(today )-62(ar)]TJ 0.3118 Tc 27.645 0 Td (ea)Tj 0 Tc 1.291 0 Td [(ccessed )-62(via )-62(a )-62(network,)]TJ -28.936 -1.2 Td [(so )-26(I\325ve )-26(changed )-26(the )-26(case )-26(study )-26(that )-26(deals )-26(with )-26(PostScript )-26(printer )-26(communication )-26(to )-26(take)]TJ 0 -1.2 TD (this into account.)Tj 1.8 -1.2 Td [(The )-229(chapter )-229(on )-229(modem )-229(communication )-229(is )-229(less )-229(r)18(elevant )-229(these )-229(days.)-725(So )-228(that )-228(the)]TJ -1.8 -1.2 Td [(original )-221(material )-221(is )-221(not )-221(lost, )-221(however)75(,)-471(it)-471(is)-471(a)1(vailable )-221(on )-221(the )-221(book\325s )-221(W)92(eb )-221(site )-221(in )-221(two)]TJ 0 -1.2 Td [(formats: )-451(PostScript )-451(\()]TJ /TT0 1 Tf 9.873 0 Td (http://www.apuebook.com/lostchapter/modem.ps)Tj /T1_0 1 Tf 0.7006 Tc (\)a)Tj 0 Tc 27.934 0 Td (nd)Tj -37.807 -1.2 Td (PDF \()Tj /TT0 1 Tf (http://www.apuebook.com/lostchapter/modem.pdf)Tj /T1_0 1 Tf (\).)Tj 1.8 -1.2 Td [(The )-427(sour)18(ce )-427(code )-427(for )-427(the )-427(examples )-427(shown )-427(in )-427(this )-427(book )-427(is )-427(also )-427(available )-427(at)]TJ /TT0 1 Tf -1.8 -1.2 Td (www.apuebook.com)Tj /T1_0 1 Tf 0.5 Tc (.M)Tj 0 Tc 11.296 0 Td [(ost of the examples have been r)8(un on four platforms:)]TJ -9.496 -1.92 Td [(1. )-633(Fr)18(eeBSD )-148(5.2.1, )-148(a )-148(derivative )-148(of )-148(the )-148(4.4BSD )-148(r)20(elease )-148(fr)18(om )-148(the )-148(Computer )-148(Systems)]TJ 1.633 -1.2 Td [(Resear)18(ch )-74(Gr)18(oup )-74(at )-74(the )-74(University )-74(of )-74(California )-74(at )-74(Berkeley)]TJ 0.324 Tc 26.213 0 Td (,r)Tj 0 Tc 0.961 0 Td [(unning )-74(on )-74(an )-74(Intel)]TJ -27.174 -1.2 Td [(Pentium pr)18(ocessor)]TJ -1.633 -1.6 Td [(2. )-633(Linux)-275(2.4.22 )-25(\(the )-25(Mandrake )-25(9.2 )-25(distribution\), )-25(a )-25(fr)18(ee )-25(UNIX)]TJ 27.081 0.09 Td (-)Tj 0.333 -0.09 Td [(like )-25(operating )-25(system,)]TJ -0.008 Tc -25.781 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td [(nning on Intel Pentium pr)18(ocessors)]TJ -2.623 -1.6 Td [(3. )-633(Solaris)-254(9, )-4(a )-4(derivative )-4(of )-4(System )-4(V )-4(Release )-4(4 )-4(fr)18(om )-4(Sun )-4(Micr)18(osystems, )-4(r)8(unning )-4(on)]TJ 0.25 Tc 1.633 -1.2 Td (a6)Tj 0 Tc 1.25 0 Td (4)Tj 0.5 0.09 Td (-)Tj 0.333 -0.09 Td [(bit UltraSP)92(ARC IIi pr)18(ocessor)]TJ -3.716 -1.6 Td [(4. )-633(Darwin)-776(7.4.0, )-526(an )-526(operating )-526(envir)19(onment )-525(based )-525(on )-525(Fr)18(eeBSD )-525(and )-525(Mach,)]TJ 1.633 -1.2 Td [(supported by Apple Mac OS X, version 10.3, on a PowerPC pr)18(ocessor)]TJ /TT1 1 Tf -7.033 -2.88 Td [(Ac)20(kno)15(wledgments)]TJ /T1_0 1 Tf 3.6 -2.16 Td [(Rich )-107(Stevens )-107(wr)18(ote )-107(the )-107(\336rst )-107(edition )-107(of )-107(this )-107(book )-107(on )-107(his )-107(own, )-107(and )-107(it )-107(became )-107(an )-107(instant)]TJ T* (classic.)Tj 0.3275 Tc 1.8 -1.2 Td (Ic)Tj 0 Tc 1.109 0 Td [(ouldn\325t )-77(have )-77(updated )-77(this )-77(book )-77(without )-77(the )-77(support )-77(of )-77(my )-77(family)]TJ 0.5775 Tc 29.645 0 Td (.T)Tj 0 Tc 1.441 0 Td [(hey )-77(put )-77(up)]TJ -33.994 -1.2 Td [(with )-390(piles )-390(of )-390(papers )-390(scatter)18(ed )-390(about )-390(the )-390(house )-390(\(well, )-390(mor)18(e)-640(so)-640(than )-390(usual\), )-390(my)]TJ T* [(monopolizing )-218(most )-218(of )-218(the )-218(computers )-218(in )-218(the )-218(house, )-218(and )-218(lots )-218(of )-218(hours )-218(with )-218(my )-218(face)]TJ T* [(buried )-182(behind )-182(a )-182(computer )-182(terminal.)-683(My )-182(wife, )-182(Jeanne, )-182(even )-182(helped )-182(out )-182(by )-182(installing)]TJ T* (Linux for me on one of the test machines.)Tj 1.8 -1.2 Td [(The )-58(technical )-58(r)18(eviewers )-58(suggested )-58(many )-58(impr)18(ovements )-58(and )-58(helped )-58(make )-58(sur)]TJ 0.3078 Tc 34.679 0 Td (et)Tj 0 Tc 1.113 0 Td (hat)Tj -37.592 -1.2 Td [(the )-6(content )-6(was )-6(accurate.)-506(Many )-6(thanks )-6(to )-6(David )-6(Bausum, )-6(David )-6(Bor)18(eham, )-6(Keith )-6(Bostic,)]TJ T* [(Mark )-335(Ellis, )-335(Phil )-335(Howar)18(d, )-335(Andr)18(ew )-335(Josey)]TJ 0.5847 Tc 19.084 0 Td (,M)Tj 0 Tc 1.781 0 Td [(ukesh )-335(Kacker)]TJ 0.5847 Tc 6.255 0 Td (,B)Tj 0 Tc 1.446 0 Td [(rian )-335(Kernighan, )-335(Bengt)]TJ -28.566 -1.2 Td [(Kleber)18(g, Ben Kuperman, Eric Raymond, and Andy Rudof)18(f.)]TJ 1.8 -1.2 Td [(I\325d )-269(also )-269(like )-269(to )-269(thank )-269(Andy )-269(Rudof)]TJ 0.5192 Tc 16.407 0 Td (ff)Tj 0 Tc 1.185 0 Td [(or )-269(answering )-269(questions )-269(about )-269(Solaris )-269(and)]TJ -19.392 -1.2 Td [(Dennis )-21(Ritchie )-21(for )-21(digging )-21(up )-21(old )-21(papers )-21(and )-21(answering )-21(history )-21(questions.)-521(Once )-21(again,)]TJ T* [(the )-80(staf)18(f)-330(at)-330(Addison-W)92(esley )-80(was )-80(gr)18(eat )-80(to )-80(work )-80(with.)-581(Thanks )-80(to )-80(T)89(yrr)18(ell )-80(Albaugh, )-80(Mary)]TJ 0 -1.2 Td [(Franz, )-161(John )-161(Fuller)]TJ 0.411 Tc 8.189 0 Td (,K)Tj 0 Tc 1.387 0 Td [(ar)18(en )-161(Gettman, )-161(Jessica )-161(Goldstein, )-161(Nor)18(een )-161(Regina, )-161(and )-161(John )-161(W)92(ait.)]TJ -9.576 -1.2 Td (My thanks to Evelyn Pyle for the \336ne job of copyediting.)Tj 1.8 -1.2 Td [(As )-257(Rich )-257(did, )-257(I )-257(also )-257(welcome )-257(electr)20(onic )-257(mail )-257(fr)18(om )-257(any )-257(r)18(eaders )-257(with )-257(comments,)]TJ -1.8 -1.2 Td (suggestions, or bug \336xes.)Tj /T1_2 1 Tf -0.02 Tc 0 -3.36 TD (Wa)Tj 0 Tc 1.368 0 Td [(rr)18(en, New Jersey)]TJ /T1_0 1 Tf 30.26 0 Td (Stephen A. Rago)Tj /T1_2 1 Tf -31.628 -1.2 Td (April 2005)Tj /TT0 1 Tf 29.4 0 Td (sar@apuebook.com)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47336 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (xxii)Tj /T1_1 1 Tf 3.666 0 Td [(Pr)18(eface)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 0.883 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (\245I)Tj 0.2663 Tc 1.826 0 Td (n2)Tj 0 Tc 1.348 0 Td [(01)55(1, )-16(the )-16(C )-16(standar)]TJ 0.2664 Tc 7.91 0 Td (dw)Tj 0 Tc 1.711 0 Td [(as )-16(updated, )-16(but )-16(because )-16(systems )-16(haven\325t )-16(caught )-16(up )-16(yet)]TJ -11.307 -1.2 Td [(with the changes, we still r)18(efer to the 1999 version in this text.)]TJ -3.289 -1.8 Td [(Most )-19(notably)]TJ 0.2694 Tc 5.754 0 Td (,t)Tj 0 Tc 0.845 0 Td [(he )-19(platforms )-19(used )-19(in )-19(the )-19(second )-19(edition )-19(have )-19(become )-19(out-of-date.)-523(In )-19(this)]TJ -6.6 -1.2 Td (book, the thir)Tj 0.25 Tc 5.914 0 Td (de)Tj 0 Tc 1.34 0 Td (dition, I cover the following platforms:)Tj -5.454 -1.8 Td [(1. )-633(Fr)18(eeBSD )-167(8.0, )-167(a )-167(descendant )-167(of )-167(the )-167(4.4BSD )-167(r)18(elease )-167(fr)18(om )-167(the )-167(Computer )-167(Systems)]TJ 1.633 -1.2 Td [(Resear)18(ch )-82(Gr)18(oup )-82(at )-82(the )-82(University )-82(of )-82(California )-82(at )-82(Berkeley)]TJ 0.3318 Tc 26.275 0 Td (,r)Tj 0 Tc 0.969 0 Td [(unning )-82(on )-82(a )-82(32)]TJ 6.819 0.09 Td (-)Tj 0.333 -0.09 Td (bit)Tj -34.397 -1.2 Td [(Intel Pentium pr)18(ocessor)74(.)]TJ -1.633 -1.6 Td [(2. )-633(Linux)-338(3.2.0 )-88(\(the )-88(Ubuntu )-88(12.04 )-88(distribution\), )-88(a )-88(fr)18(ee )-88(UNIX)]TJ 26.956 0.09 Td (-)Tj 0.333 -0.09 Td [(like )-88(operating )-88(system,)]TJ -0.008 Tc -25.656 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td (nning on a 64)Tj 5.971 0.09 Td (-)Tj 0.333 -0.09 Td [(bit Intel Cor)18(e)-250(i5)-250(p)]TJ -0.018 Tc (ro)Tj 0 Tc 8.611 0 Td [(cessor)74(.)]TJ -17.538 -1.6 Td [(3. )-633(Apple)-407(Mac )-157(OS )-157(X, )-157(version )-157(10.6.8)]TJ 16.724 0.04 Td (\()Tj 0.333 -0.04 Td [(Darwin )-157(10.8.0)]TJ 6.283 0.04 Td (\))Tj 0.74 -0.04 Td [(on )-157(a )-157(64)]TJ 3.442 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-157(Intel )-157(Cor)]TJ 0.4067 Tc 5.631 0 Td (e2D)Tj 0 Tc 2.566 0 Td (uo)Tj -34.418 -1.2 Td [(pr)18(ocessor)]TJ 0.669 Tc 4.162 0 Td (.\()Tj 0 Tc 1.252 0 Td [(Darwin )-169(is )-169(based )-169(on )-169(Fr)18(eeBSD )-169(and )-169(Mach.\))]TJ 0.4191 Tc 19.518 0 Td (Ic)Tj 0 Tc 1.2 0 Td [(hose )-169(to )-169(switch )-169(to )-169(an)]TJ -26.132 -1.2 Td [(Intel )-128(platform )-128(instead )-128(of )-128(continuing )-128(with )-128(one )-128(based )-128(on )-128(the )-128(PowerPC, )-128(because)]TJ 0 -1.2 TD [(the )-193(latest )-193(versions )-193(of )-193(Mac )-193(OS )-193(X )-193(ar)19(e)-443(no)-443(longer )-193(being )-193(ported )-193(to )-193(the )-193(PowerPC)]TJ -0 -1.2 Td [(platform. )-377(The)-378(drawback )-127(to )-127(this )-127(choice )-127(is )-127(that )-127(the )-127(pr)18(ocessors )-127(cover)18(ed )-127(ar)]TJ 0.3774 Tc 32.749 0 Td (en)Tj 0 Tc 1.438 0 Td (ow)Tj -34.187 -1.2 Td [(slanted )-8(in )-8(favor )-8(of )-8(Intel.)-508(When )-8(discussing )-8(issues )-8(of )-8(heter)21(ogeneity)111(,)-258(it)-258(is)-258(h)1(elpful )-8(to)]TJ -0 -1.2 Td [(have )-41(pr)18(ocessors )-41(with )-41(dif)18(fer)18(ent )-41(characteristics, )-41(such )-41(as )-41(byte )-41(or)18(dering )-41(and )-41(integer)]TJ -0 -1.2 Td (size.)Tj -1.633 -1.6 Td [(4. )-633(Solaris)-455(10, )-205(a )-205(derivative )-205(of )-205(System )-205(V )-205(Release )-205(4 )-205(fr)18(om )-205(Sun )-205(Micr)14(osystems )-205(\(now)]TJ 1.633 -1.2 Td [(Oracle\), r)8(unning on a 64)]TJ 10.689 0.09 Td (-)Tj 0.333 -0.09 Td [(bit UltraSP)92(ARC IIi pr)18(ocessor)74(.)]TJ /TT0 1 Tf -18.055 -3.6 Td [(Chang )268(es)-278(fr)20(om the Second Edition)]TJ /T1_1 1 Tf 3.6 -2.4 Td [(One )-206(of )-206(the )-206(biggest )-206(changes )-206(to )-206(the )-206(Single )-206(UNIX )-206(Speci\336cation )-206(in )-206(POSIX.1)]TJ 33.653 0.09 Td (-)Tj 0.333 -0.09 Td [(2008 )-206(is )-206(the)]TJ -33.986 -1.2 Td [(demotion )-41(of )-41(the )-41(STREAMS-r)18(elated )-41(interfaces )-41(to )-41(obsolescent )-41(status.)-541(This )-41(is )-41(the )-41(\336rst )-41(step)]TJ T* (befor)Tj 0.2616 Tc 2.288 0 Td (et)Tj 0 Tc 1.067 0 Td [(hese )-12(interfaces )-12(ar)]TJ 0.2616 Tc 7.617 0 Td (er)Tj 0 Tc 1.118 0 Td [(emoved )-12(entir)18(ely )-11(in )-11(a )-11(futur)]TJ 0.2615 Tc 11.605 0 Td (ev)Tj 0 Tc 1.306 0 Td [(ersion )-11(of )-11(the )-11(standar)17(d. )-261(Because)]TJ -25 -1.2 Td [(of )-45(this, )-45(I )-45(have )-45(r)19(eluctantly )-45(r)18(emoved )-45(the )-45(STREAMS )-45(content )-45(fr)18(om )-45(this )-45(edition )-45(of )-45(the )-45(book.)]TJ T* [(This )-337(is )-337(an )-337(unfortunate )-337(change, )-337(because )-337(the )-337(STREAMS )-337(interfaces )-337(pr)15(ovided )-337(a )-337(nice)]TJ T* [(contrast )-113(to )-113(the )-113(socket )-113(interfaces, )-113(and )-113(in )-113(many )-113(ways )-113(wer)]TJ 0.3631 Tc 25.439 0 Td (em)Tj 0 Tc 1.725 0 Td (or)Tj 0.3631 Tc 0.923 0 Td (e\337)Tj 0 Tc 1.45 0 Td [(exible. )-363(Admittedly)]TJ 0.3631 Tc 8.513 0 Td (,I)Tj 0 Tc -38.05 -1.2 Td [(am )-111(not )-111(entir)18(ely )-111(unbiased )-111(when )-111(it )-111(comes )-111(to )-111(the )-111(STREAMS )-111(mechanism, )-111(but )-111(ther)14(e)-361(is)-361(no)]TJ T* [(debating the r)18(educed r)18(ole it is playing in curr)18(ent systems:)]TJ 0.883 Tc 1.8 -1.8 Td (\245L)Tj 0 Tc 2.1 0 Td [(inux )-39(doesn\325t )-39(include )-39(STREAMS )-39(in )-39(its )-39(base )-39(system, )-39(although )-39(packages)]TJ 31.357 0.04 Td (\()Tj 0.333 -0.04 Td [(LiS )-39(and)]TJ -32.301 -1.2 Td (OpenSS7)Tj 3.998 0.04 Td (\))Tj 0.583 -0.04 Td (ar)Tj 0.25 Tc 0.877 0 Td (ea)Tj 0 Tc 1.229 0 Td [(vailable to add this functionality)111(.)]TJ 0.883 Tc -8.176 -1.6 Td (\245A)Tj 0 Tc 2.267 0 Td [(lthough )-15(Solaris )-15(10 )-15(includes )-15(STREAMS, )-15(Solaris )-15(1)]TJ 0.2652 Tc 21.107 0 Td (1u)Tj 0 Tc 1.368 0 Td [(ses )-15(a )-15(socket )-15(implementation)]TJ -23.253 -1.2 Td (that is not built on top of STREAMS.)Tj 0.883 Tc -1.489 -1.6 Td (\245M)Tj 0 Tc 2.435 0 Td (ac OS X doesn\325t include support for STREAMS.)Tj 0.883 Tc -2.435 -1.6 Td (\245F)Tj -0.018 Tc 2.045 0 Td (re)Tj 0 Tc 0.856 0 Td (eBSD doesn\325t include support for STREAMS \(and never did\).)Tj -4.701 -1.8 Td [(So )-55(with )-55(the )-55(r)17(emoval )-56(of )-56(the )-56(STREAMS-r)18(elated )-56(material, )-56(an )-56(opportunity )-56(exists )-56(to )-56(r)22(eplace)]TJ -0 -1.2 Td [(it with new topics, such as POSIX asynchr)18(onous I/O.)]TJ 1.8 -1.2 Td [(In )-18(the )-18(second )-18(edition, )-18(the )-18(Linux )-18(version )-18(cover)17(ed )-18(was )-18(based )-18(on )-18(the )-18(2.4 )-18(version )-18(of )-18(the)]TJ -1.8 -1.2 Td [(sour)18(ce. )-355(In)-354(this )-105(edition, )-105(I )-105(have )-105(updated )-105(the )-105(version )-105(of )-105(Linux )-105(to )-105(3.2.)-602(One )-105(of )-105(the )-105(lar)19(gest)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47337 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.8)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (755)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(The )-161(next )-161(\336le )-161(is)]TJ /TT0 1 Tf 7.312 0 Td (db.c)Tj /T1_0 1 Tf 0.4111 Tc (,t)Tj 0 Tc 3.387 0 Td [(he )-161(C )-161(sour)18(ce )-161(\336le )-161(for )-161(the )-161(library)]TJ 0.6611 Tc 14.016 0 Td (.F)Tj 0 Tc 1.467 0 Td [(or )-161(simplicity)111(,)-411(we)-411(include )-161(all)]TJ -26.182 -1.2 Td [(functions )-59(in )-59(a )-59(single )-59(\336le.)-559(This )-59(has )-59(the )-59(advantage )-59(that )-59(we )-59(can )-59(hide )-59(private )-59(functions )-59(by)]TJ 0 -1.2 TD (declaring them as)Tj /TT0 1 Tf 8.093 0 Td (static)Tj /T1_0 1 Tf (.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6330.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 1.8 Tc 8.9989 0 0 8.9989 134.9838 623.4242 Tm (1#)Tj 0 Tc 3 0 Td (include "apue.h")Tj 1.8 Tc -3 -1.189 Td (2#)Tj 0 Tc 3 0 Td (include "apue_db.h")Tj 1.8 Tc -3 -1.189 Td (3#)Tj 0 Tc 3 0 Td [(include )-3000(/* open & db_open flags */)]TJ 1.8 Tc -3 -1.189 Td (4#)Tj 0 Tc 3 0 Td (include )Tj 1.8 Tc -3 -1.189 Td (5#)Tj 0 Tc 3 0 Td (include )Tj 1.8 Tc -3 -1.189 Td (6#)Tj 0 Tc 3 0 Td [(include )-1800(/* struct iovec */)]TJ 1.8 Tc -3 -2.021 Td (7/)Tj 0 Tc 3 0 Td (*)Tj 2.4 Tc -3 -1.189 Td (8*)Tj 0 Tc 4.2 0 Td (Internal index file constants.)Tj 2.4 Tc -4.2 -1.189 Td (9*)Tj 0 Tc 4.2 0 Td (These are used to construct records in the)Tj -4.8 -1.189 Td [(10 )-1800(*)-600(index file and data file.)]TJ 0 -1.189 TD [(11 )-1800(*/)]TJ T* [(12 )-1200(#define)-600(IDXLEN_SZ )-2400(4)-2400(/* index record length \(ASCII chars\) */)]TJ T* [(13 )-1200(#define)-600(SEP )-4800(\325:\325)-2400(/* separator char in index record */)]TJ T* [(14 )-1200(#define)-600(SPACE )-3600(\325)]TJ 2.4 Tc 16.2 0 Td (\325/)Tj 0.6 Tc 3.6 0 Td (*s)Tj 0 Tc 1.8 0 Td (pace character */)Tj -21.6 -1.189 Td [(15 )-1200(#define)-600(NEWLINE )-2400(\325\\n\325)-1800(/* newline character */)]TJ 0 -2.021 TD [(16 )-1200(/*)]TJ 0 -1.189 TD [(17 )-1800(*)-600(The following definitions are for hash chains and free)]TJ T* [(18 )-1800(*)-600(list chain in the index file.)]TJ 0 -1.189 TD [(19 )-1800(*/)]TJ 0 -1.189 TD [(20 )-1200(#define)-600(PTR_SZ )-4200(7)-2400(/* size of ptr field in hash chain */)]TJ T* [(21 )-1200(#define)-600(PTR_MAX 9999999)-2400(/* max file offset = 10**PTR_SZ - 1 */)]TJ T* [(22 )-1200(#define)-600(NHASH_DEF )-1200(137)-2400(/* default hash table size */)]TJ T* [(23 )-1200(#define)-600(FREE_OFF )-3000(0)-2400(/* free list offset in index file */)]TJ T* [(24 )-1200(#define)-600(HASH_OFF PTR_SZ)-2400(/* hash table offset in index file */)]TJ 0 -2.021 TD [(25 )-1200(typedef)-600(unsigned long)-1200(DBHASH; /* hash values */)]TJ 0 -1.189 TD [(26 )-1200(typedef)-600(unsigned long)-1200(COUNT; )-600(/*)-600(unsigned counter */)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3287.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 304.6732 Tm [([1 )167(\320 )167(6])]TJ -0.092 Tc 4 0 Td [(We )-338(i)]TJ 0 Tc 2.081 0 Td (nclude)Tj /TT0 1 Tf 3.414 0 Td (apue.h)Tj /T1_0 1 Tf 4.004 0 Td [(because )-153(we )-153(use )-153(some )-153(of )-153(the )-153(functions )-153(fr)18(om )-153(our )-153(private)]TJ -9.499 -1.2 Td (library)Tj 0.7855 Tc 2.87 0 Td (.I)Tj 0.5355 Tc 1.372 0 Td (nt)Tj 0 Tc 1.444 0 Td (urn,)Tj /TT0 1 Tf 2.366 0 Td (apue.h)Tj /T1_0 1 Tf 4.136 0 Td [(includes )-286(several )-286(standar)]TJ 0.5356 Tc 11.249 0 Td (dh)Tj 0 Tc 1.729 0 Td [(eader )-286(\336les, )-286(including)]TJ /TT0 1 Tf -25.165 -1.2 Td ()Tj /T1_0 1 Tf 6.236 0 Td (and)Tj /TT0 1 Tf 2.529 0 Td ()Tj /T1_0 1 Tf 1.0857 Tc (.W)Tj 0.8357 Tc 8.244 0 Td (ei)Tj 0 Tc 1.606 0 Td (nclude)Tj /TT0 1 Tf 3.846 0 Td ()Tj /T1_0 1 Tf 6.836 0 Td [(because )-586(the)]TJ /TT0 1 Tf -29.295 -1.2 Td (db_open)Tj /T1_0 1 Tf 5.133 0 Td [(function )-683(uses )-683(the )-683(variable-ar)18(gument )-683(functions )-683(declar)18(ed )-683(by)]TJ /TT0 1 Tf -5.133 -1.2 Td ()Tj /T1_0 1 Tf (.)Tj -4 -1.6 Td [([7 )167(\320 )167(26])-1168(The )-373(size )-373(of )-373(an )-373(index )-373(r)19(ecor)18(d)-623(is)-623(speci\336ed )-373(by)]TJ /TT0 1 Tf 26.006 0 Td (IDXLEN_SZ)Tj /T1_0 1 Tf 0.8729 Tc (.W)Tj 0.6229 Tc 7.431 0 Td (eu)Tj 0 Tc 1.705 0 Td [(se )-373(some)]TJ -31.142 -1.2 Td [(characters, )-121(such )-121(as )-121(colon )-121(and )-121(newline, )-121(as )-121(delimiters )-121(in )-121(the )-121(database.)]TJ -0.092 Tc 31.736 0 Td [(We )-305(u)]TJ 0 Tc 2.361 0 Td (se)Tj -34.097 -1.2 Td [(the space character as \324)37(\324white out\325)]TJ 0.25 Tc 14.821 0 Td (\325w)Tj 0 Tc 1.362 0 Td [(hen we delete a r)18(ecor)18(d.)]TJ -16.183 -1.8 Td [(Some )-216(of )-216(the )-216(values )-216(that )-216(we )-216(have )-216(de\336ned )-216(as )-216(constants )-216(could )-216(also )-216(be )-216(made)]TJ 0 -1.2 TD [(variable, )-167(with )-167(some )-167(added )-167(complexity )-167(in )-167(the )-167(implementation.)-667(For )-167(example,)]TJ T* [(we )-35(set )-35(the )-35(size )-35(of )-35(the )-35(hash )-35(table )-35(to )-35(137 )-35(entries.)]TJ 0.2847 Tc 21.106 0 Td (Ab)Tj 0 Tc 1.616 0 Td [(etter )-35(technique )-35(would )-35(be )-35(to)]TJ -22.721 -1.2 Td [(let )-113(the )-113(caller )-113(specify )-113(this )-113(as )-113(an )-113(ar)18(gument )-113(to)]TJ /TT0 1 Tf 20.082 0 Td (db_open)Tj /T1_0 1 Tf 0.3627 Tc (,b)Tj 0 Tc 5.366 0 Td [(ased )-113(on )-113(the )-113(expected)]TJ -25.448 -1.2 Td [(size )-42(of )-42(the )-42(database.)]TJ -0.092 Tc 9.52 0 Td [(We )-226(w)]TJ 0 Tc 2.513 0 Td [(ould )-42(then )-42(have )-42(to )-42(stor)]TJ 0.2917 Tc 9.858 0 Td (et)Tj 0 Tc 1.097 0 Td [(his )-42(size )-42(at )-42(the )-42(beginning )-42(of)]TJ -22.987 -1.2 Td (the index \336le.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47338 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.4)]TJ 35.831 0 Td [(I/O )-250(Multiplexing)]TJ /T1_1 1 Tf 10.002 0 Td (501)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(network )-3(connection )-3(is )-3(disconnected )-3(by )-3(the)]TJ /TT0 1 Tf 19.089 0 Td (telnetd)Tj /T1_0 1 Tf 4.453 0 Td [(daemon\), )-3(then )-3(the )-3(child )-3(terminates)]TJ -23.543 -1.2 Td [(and )-39(the )-39(par)18(ent )-39(is )-39(noti\336ed )-39(by )-39(the)]TJ /TT0 1 Tf 14.62 0 Td (SIGCHLD)Tj /T1_0 1 Tf 4.489 0 Td [(signal. )-289(But)-289(if )-39(the )-39(par)18(ent )-39(terminates )-39(\(the )-39(user)]TJ -19.11 -1.2 Td [(enters )-121(an )-121(end-of-\336le )-121(character )-121(at )-121(the )-121(terminal\), )-121(then )-121(the )-121(par)16(ent )-121(has )-121(to )-121(tell )-121(the )-121(child )-121(to)]TJ 0 -1.2 TD [(stop. )-360(W)]TJ 0.3602 Tc 3.665 0 Td (ec)Tj 0 Tc 1.283 0 Td [(an )-110(use )-110(a )-110(signal )-110(for )-110(this )-110(\()]TJ /TT0 1 Tf 11.123 0 Td (SIGUSR1)Tj /T1_0 1 Tf 0.3602 Tc (,f)Tj 0 Tc 5.143 0 Td [(or )-110(example\), )-110(but )-110(it )-110(does )-110(complicate )-110(the)]TJ -21.215 -1.2 Td [(pr)18(ogram somewhat.)]TJ 1.8 -1.2 Td [(Instead )-32(of )-32(two )-32(pr)18(ocesses, )-32(we )-32(could )-32(use )-32(two )-32(thr)18(eads )-32(in )-32(a )-32(single )-32(pr)16(ocess. )-282(This)-283(avoids)]TJ -1.8 -1.2 Td [(the )-28(termination )-28(complexity)]TJ 0.2781 Tc 11.966 0 Td (,b)Tj 0 Tc 1.081 0 Td [(ut )-28(r)18(equir)18(es )-28(that )-28(we )-28(deal )-28(with )-28(synchr)18(onization )-28(between )-28(the)]TJ -13.047 -1.2 Td [(thr)18(eads, which could add mor)]TJ 0.25 Tc 13.305 0 Td (ec)Tj 0 Tc 1.173 0 Td (omplexity than it saves.)Tj -0.092 Tc -12.678 -1.2 Td [(We )-243(c)]TJ 0 Tc 2.14 0 Td [(ould )-59(use )-59(nonblocking )-59(I/O )-59(in )-59(a )-59(single )-59(pr)18(ocess )-59(by )-59(setting )-59(both )-59(descriptors )-59(to )-59(be)]TJ -3.94 -1.2 Td [(nonblocking )-5(and )-5(issuing )-5(a)]TJ /TT0 1 Tf 11.912 0 Td (read)Tj /T1_0 1 Tf 2.655 0 Td [(on )-5(the )-5(\336rst )-5(descriptor)]TJ 0.5046 Tc 9.467 0 Td (.I)Tj 0.2546 Tc 1.092 0 Td (fd)Tj 0 Tc 1.199 0 Td [(ata )-5(is )-5(pr)18(esent, )-5(we )-5(r)18(ead )-5(it )-5(and)]TJ -26.323 -1.2 Td [(pr)18(ocess )-17(it.)-517(If )-17(ther)]TJ 0.2671 Tc 7.647 0 Td (ei)Tj 0 Tc 1.037 0 Td [(s)-267(no)-267(data )-17(to )-17(r)18(ead, )-17(the )-17(call )-17(r)18(eturns )-17(immediately)]TJ 0.5172 Tc 20.294 0 Td (.W)Tj 0.2672 Tc 1.675 0 Td (et)Tj 0 Tc 1.072 0 Td [(hen )-17(do )-17(the )-17(same)]TJ -31.725 -1.2 Td [(thing )-109(with )-109(the )-109(second )-109(descriptor)]TJ 0.6092 Tc 14.718 0 Td (.A)Tj 0 Tc 1.637 0 Td [(fter )-109(this, )-109(we )-109(wait )-109(for )-109(some )-109(amount )-109(of )-109(time )-109(\(a )-109(few)]TJ -16.355 -1.2 Td [(seconds, )-24(per)18(haps\) )-24(and )-24(then )-24(try )-24(to )-24(r)18(ead )-24(fr)18(om )-24(the )-24(\336rst )-24(descriptor )-24(again.)-524(This )-24(type )-24(of )-24(loop)]TJ T* [(is )-48(called)]TJ /T1_2 1 Tf 3.926 0 Td (polling)Tj /T1_0 1 Tf 0.5477 Tc (.T)Tj 0 Tc 4.245 0 Td [(he )-48(pr)18(oblem )-48(is )-48(that )-48(it )-48(wastes )-48(CPU )-48(time.)-548(Most )-48(of )-48(the )-48(time, )-48(ther)]TJ 0.2976 Tc 27.486 0 Td (ew)Tj 0 Tc 1.611 0 Td (on\325t)Tj -37.268 -1.2 Td [(be )-99(data )-99(to )-99(r)18(ead, )-99(so )-99(we )-99(waste )-99(time )-99(performing )-99(the)]TJ /TT0 1 Tf 22.819 0 Td (read)Tj /T1_0 1 Tf 2.749 0 Td [(system )-99(calls.)]TJ -0.092 Tc 6.24 0 Td [(We )-283(a)]TJ 0 Tc 2.236 0 Td [(lso )-99(have )-99(to)]TJ -34.043 -1.2 Td [(guess )-96(how )-96(long )-96(to )-96(wait )-96(each )-96(time )-96(ar)19(ound )-96(the )-96(loop.)-596(Although )-96(it )-96(works )-96(on )-96(any )-96(system)]TJ T* (that supports nonblocking I/O, polling should be avoided on a multitaski\ ng system.)Tj 1.8 -1.2 Td [(Another )-12(technique )-12(is )-12(called)]TJ /T1_2 1 Tf 12.411 0 Td [(asynchr)18(onous )-12(I/O)]TJ /T1_0 1 Tf 0.5117 Tc (.W)Tj 0 Tc 8.931 0 Td [(ith )-12(this )-12(technique, )-12(we )-12(tell )-12(the )-12(kernel)]TJ -23.143 -1.2 Td [(to )-82(notify )-82(us )-82(with )-82(a )-82(signal )-82(when )-82(a )-82(descriptor )-82(is )-82(r)18(eady )-82(for )-82(I/O.)-583(Ther)]TJ 0.3321 Tc 30.308 0 Td (ea)Tj -0.018 Tc 1.311 0 Td [(re )-118(t)]TJ 0 Tc 1.514 0 Td [(wo )-82(pr)18(oblems)]TJ -33.133 -1.2 Td [(with )-369(this )-369(appr)18(oach. )-619(First,)-619(although )-369(systems )-369(pr)18(ovide )-369(their )-369(own )-369(limited )-369(forms )-369(of)]TJ T* [(asynchr)18(onous )-433(I/O, )-433(POSIX )-433(chose )-433(to )-433(standar)18(dize )-433(a )-433(dif)17(fer)18(ent )-433(set )-433(of )-433(interfaces, )-433(so)]TJ -0 -1.2 Td [(portability )-203(can )-203(be )-203(an )-203(issue.)-702(\(In )-203(the )-203(past, )-203(POSIX )-203(asynchr)18(onous )-203(I/O )-203(was )-203(an )-203(optional)]TJ T* [(facility )-62(in )-62(the )-62(Single )-62(UNIX )-62(Speci\336cation, )-62(but )-62(these )-62(interfaces )-62(ar)]TJ 0.3115 Tc 28.219 0 Td (er)Tj 0 Tc 1.167 0 Td [(equir)18(ed )-61(as )-61(of )-61(SUSv4.\))]TJ -29.387 -1.2 Td [(System )-38(V )-38(pr)18(ovides )-38(the)]TJ /TT0 1 Tf 10.346 0 Td (SIGPOLL)Tj /T1_0 1 Tf 4.488 0 Td [(signal )-38(to )-38(support )-38(a )-38(limited )-38(form )-38(of )-38(asynchr)21(onous )-38(I/O,)]TJ -14.834 -1.2 Td [(but )-163(this )-163(signal )-163(works )-163(only )-163(if )-163(the )-163(descriptor )-163(r)21(efers )-162(to )-162(a )-162(STREAMS )-162(device.)-662(BSD )-162(has )-162(a)]TJ T* [(similar )-131(signal,)]TJ /TT0 1 Tf 6.731 0 Td (SIGIO)Tj /T1_0 1 Tf 0.3811 Tc (,b)Tj 0 Tc 4.184 0 Td [(ut )-131(it )-131(has )-131(similar )-131(limitations: )-131(it )-131(works )-131(only )-131(on )-131(descriptors )-131(that)]TJ -0.018 Tc -10.915 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (fer to terminal devices or networks.)Tj 0.944 -1.2 Td [(The )-214(second )-214(pr)18(oblem )-214(with )-214(this )-214(technique )-214(is )-214(that )-214(the )-214(limited )-214(forms )-214(use )-214(only )-214(one)]TJ -1.8 -1.2 Td [(signal )-37(per )-37(pr)18(ocess )-37(\()]TJ /TT0 1 Tf 8.609 0 Td (SIGPOLL)Tj /T1_0 1 Tf 4.487 0 Td (or)Tj /TT0 1 Tf 1.228 0 Td (SIGIO)Tj /T1_0 1 Tf [(\). )-287(If)-288(we )-37(enable )-37(this )-37(signal )-37(for )-37(two )-37(descriptors )-37(\(in)]TJ -14.325 -1.2 Td [(the )-36(example )-36(we\325ve )-36(been )-36(talking )-36(about, )-36(r)18(eading )-36(fr)18(om )-36(two )-36(descriptors\), )-36(the )-36(occurr)18(ence )-36(of)]TJ T* [(the )-579(signal )-579(doesn\325t )-579(tell )-579(us )-579(which )-579(descriptor )-579(is )-579(r)20(eady)]TJ 1.0788 Tc 26.693 0 Td (.A)Tj 0 Tc 2.107 0 Td [(lthough )-579(the )-579(POSIX.1)]TJ -28.8 -1.2 Td [(asynchr)18(onous )-84(I/O )-84(interfaces )-84(allow )-84(us )-84(to )-84(select )-84(which )-84(signal )-84(to )-84(use )-84(for )-84(noti\336cation, )-84(the)]TJ T* [(number )-193(of )-193(signals )-193(we )-193(can )-193(use )-193(is )-193(still )-193(far )-193(less )-193(than )-193(the )-193(number )-193(of )-193(possible )-193(open )-193(\336le)]TJ T* [(descriptors. )-425(T)]TJ 0.4247 Tc 6.382 0 Td (od)Tj 0 Tc 1.582 0 Td [(etermine )-175(which )-175(descriptor )-175(is )-175(r)20(eady)111(,)-425(we)-425(w)1(ould )-175(need )-175(to )-175(set )-175(each )-175(\336le)]TJ -7.963 -1.2 Td [(descriptor )-318(to )-318(nonblocking )-318(mode )-318(and )-318(try )-318(the )-318(descriptors )-318(in )-318(sequence.)]TJ -0.092 Tc 33.824 0 Td [(We )-502(d)]TJ 0 Tc 2.566 0 Td (iscuss)Tj -36.39 -1.2 Td [(asynchr)18(onous I/O in Section 14.5.)]TJ 0.4649 Tc 1.8 -1.2 Td (Ab)Tj 0 Tc 1.796 0 Td [(etter )-215(technique )-215(is )-215(to )-215(use)]TJ /T1_2 1 Tf 11.768 0 Td [(I/O )-215(multiplexing)]TJ /T1_0 1 Tf 0.7148 Tc (.T)Tj 0 Tc 8.582 0 Td [(o)-465(do)-465(this, )-215(we )-215(build )-215(a )-215(list )-215(of )-215(the)]TJ -23.946 -1.2 Td [(descriptors )-240(that )-240(we )-240(ar)]TJ 0.4897 Tc 10.329 0 Td (ei)Tj 0 Tc 1.26 0 Td [(nter)18(ested )-240(in )-240(\(usually )-240(mor)]TJ 0.4898 Tc 11.832 0 Td (et)Tj 0 Tc 1.295 0 Td [(han )-240(one )-240(descriptor\) )-240(and )-240(call )-240(a)]TJ -24.716 -1.2 Td [(function )-318(that )-318(doesn\325t )-318(r)19(eturn )-317(until )-317(one )-317(of )-317(the )-317(descriptors )-317(is )-317(r)18(eady )-317(for )-317(I/O.)-822(Thr)18(ee)]TJ T* [(functions )167(\321)]TJ /TT0 1 Tf 5.298 0 Td (poll)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 2.966 0 Td (pselect)Tj /T1_0 1 Tf 0.3158 Tc (,a)Tj 0 Tc 5.266 0 Td (nd)Tj /TT0 1 Tf 1.509 0 Td (select)Tj /T1_0 1 Tf 0.0833 Tc 3.683 0 Td (\321a)Tj 0 Tc 1.583 0 Td [(llow )-66(us )-66(to )-66(perform )-66(I/O )-66(multiplexing.)-565(On)]TJ -0.018 Tc -20.304 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn fr)18(om these functions, we ar)]TJ 0.25 Tc 14.156 0 Td (et)Tj 0 Tc 1.055 0 Td (old which descriptors ar)Tj 0.25 Tc 10.744 0 Td (er)Tj 0 Tc 1.106 0 Td (eady for I/O.)Tj 7.9995 0 0 7.9995 183.5886 165.99 Tm [(POSIX )-110(speci\336es )-110(that)]TJ /TT0 1 Tf 9.479 0 Td ()Tj /T1_0 1 Tf 8.76 0 Td [(be )-110(included )-110(to )-110(pull )-110(the )-110(information )-110(for)]TJ /TT0 1 Tf 18.056 0 Td (select)Tj /T1_0 1 Tf 3.96 0 Td (into)Tj -40.255 -1.25 Td [(your )-201(pr)18(ogram. )-451(Older)-451(systems )-201(r)18(equir)]TJ 0.4509 Tc 17.027 0 Td (et)Tj 0 Tc 1.256 0 Td [(hat )-201(you )-201(include)]TJ /TT0 1 Tf 7.767 0 Td ()Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 8.501 0 Td ()Tj /T1_0 1 Tf (,)Tj -34.55 -1.25 Td (and)Tj /TT0 1 Tf 1.943 0 Td ()Tj /T1_0 1 Tf 0.5 Tc (.C)Tj 0 Tc 7.459 0 Td (heck the)Tj /TT0 1 Tf 3.948 0 Td (select)Tj /T1_0 1 Tf 3.85 0 Td (manual page to see what your system supports.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47339 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1.5)]TJ 36.446 0 Td [(Input )-250(and )-250(Output)]TJ /T1_1 1 Tf 10.387 0 Td (9)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.783 TD [(#define BUFFSIZE)-2400(4096)]TJ 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-2400(n;)]TJ 0 -1.189 TD [(char )-1800(buf[BUFFSIZE];)]TJ 0 -1.783 TD (while \(\(n = read\(STDIN_FILENO, buf, BUFFSIZE\)\) > 0\))Tj 2.4 -1.189 Td (if \(write\(STDOUT_FILENO, buf, n\) != n\))Tj 2.4 -1.189 Td (err_sys\("write error"\);)Tj -4.8 -1.783 Td (if \(n < 0\))Tj 2.4 -1.189 Td (err_sys\("read error"\);)Tj -2.4 -1.783 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4888.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 232.5761 472.7913 Tm (Figure 1.4)Tj /T1_0 1 Tf 5.195 0 Td (Copy standar)Tj 0.25 Tc 5.982 0 Td (di)Tj 0 Tc 1.152 0 Td (nput to standar)Tj 0.25 Tc 6.804 0 Td (do)Tj 0 Tc 1.407 0 Td (utput)Tj 9.9988 0 0 9.9988 129.5844 448.7941 Tm (The)Tj /TT0 1 Tf 1.983 0 Td ()Tj /T1_0 1 Tf 6.309 0 Td (header)Tj 0.3093 Tc 2.972 0 Td (,i)Tj 0 Tc 0.85 0 Td [(ncluded )-59(by)]TJ /TT0 1 Tf 5.349 0 Td (apue.h)Tj /T1_0 1 Tf 0.3093 Tc (,a)Tj 0 Tc 4.659 0 Td [(nd )-59(the )-59(two )-59(constants)]TJ /TT0 1 Tf 9.677 0 Td (STDIN_FILENO)Tj /T1_0 1 Tf -31.8 -1.2 Td (and)Tj /TT0 1 Tf 2.128 0 Td (STDOUT_FILENO)Tj /T1_0 1 Tf 8.235 0 Td (ar)Tj 0.4351 Tc 0.877 0 Td (ep)Tj 0 Tc 1.515 0 Td [(art )-185(of )-185(the )-185(POSIX )-185(standar)]TJ 0.4352 Tc 11.466 0 Td (d\()Tj 0 Tc 1.379 0 Td [(about )-185(which )-185(we\325ll )-185(have )-185(a )-185(lot)]TJ -25.601 -1.2 Td [(mor)18(e)-302(to)-302(say )-52(in )-52(the )-52(next )-52(chapter\).)-551(This )-52(header )-52(contains )-52(function )-52(pr)18(ototypes )-52(for )-52(many )-52(of)]TJ -0 -1.2 Td (the UNIX system services, such as the)Tj /TT0 1 Tf 16.957 0 Td (read)Tj /T1_0 1 Tf 2.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (write)Tj /T1_0 1 Tf 3.25 0 Td (functions that we call.)Tj -23 -1.2 Td [(The )-135(constants)]TJ /TT0 1 Tf 6.599 0 Td (STDIN_FILENO)Tj /T1_0 1 Tf 7.585 0 Td (and)Tj /TT0 1 Tf 2.078 0 Td (STDOUT_FILENO)Tj /T1_0 1 Tf 8.185 0 Td (ar)Tj 0.3854 Tc 0.877 0 Td (ed)Tj 0 Tc 1.475 0 Td [(e\336ned )-135(in)]TJ /TT0 1 Tf 4.4 0 Td ()Tj /T1_0 1 Tf -33 -1.2 Td [(and )-109(specify )-109(the )-109(\336le )-109(descriptors )-109(for )-109(standar)]TJ 0.3587 Tc 19.266 0 Td (di)Tj 0 Tc 1.261 0 Td [(nput )-109(and )-109(standar)]TJ 0.3587 Tc 7.842 0 Td (do)Tj 0 Tc 1.516 0 Td [(utput. )-359(These)-358(values)]TJ -29.885 -1.2 Td (ar)Tj 0.2611 Tc 0.877 0 Td (e0a)Tj 0 Tc 2.001 0 Td [(nd )-11(1, )-11(r)18(espectively)111(,)-261(as)-261(r)18(equir)18(ed )-11(by )-11(POSIX.1, )-11(but )-11(we\325ll )-11(use )-11(the )-11(names )-11(for )-11(r)16(eadability)111(.)]TJ -1.078 -1.2 Td [(In )-87(Section )-87(3.9, )-87(we\325ll )-87(examine )-87(the)]TJ /TT0 1 Tf 14.927 0 Td (BUFFSIZE)Tj /T1_0 1 Tf 5.137 0 Td [(constant )-87(in )-87(detail, )-87(seeing )-87(how )-87(various)]TJ -21.864 -1.2 Td [(values )-176(af)18(fect )-176(the )-176(ef)18(\336ciency )-176(of )-176(the )-176(pr)17(ogram. )-426(Regar)18(dless )-176(of )-176(the )-176(value )-176(of )-176(this )-176(constant,)]TJ 0 -1.2 Td (however)Tj 0.25 Tc 3.806 0 Td (,t)Tj 0 Tc 0.826 0 Td [(his pr)18(ogram still copies any r)18(egular \336le.)]TJ -2.832 -1.2 Td (The)Tj /TT0 1 Tf 1.957 0 Td (read)Tj /T1_0 1 Tf 2.683 0 Td [(function )-33(r)18(eturns )-33(the )-33(number )-33(of )-33(bytes )-33(that )-33(ar)]TJ 0.2827 Tc 19.582 0 Td (er)Tj 0 Tc 1.139 0 Td [(ead, )-33(and )-33(this )-33(value )-33(is )-33(used)]TJ -27.16 -1.2 Td [(as )-104(the )-104(number )-104(of )-104(bytes )-104(to )-104(write.)-604(When )-104(the )-104(end )-104(of )-104(the )-104(input )-104(\336le )-104(is )-104(encounter)21(ed,)]TJ /TT0 1 Tf 36.6 0 Td (read)Tj /T1_0 1 Tf -0.018 Tc -36.6 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-92(0 )-92(and )-92(the )-92(pr)16(ogram )-92(stops.)-592(If )-92(a )-92(r)18(ead )-92(err)18(or )-92(occurs,)]TJ /TT0 1 Tf 24.79 0 Td (read)Tj /T1_0 1 Tf -0.018 Tc 2.742 0 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj /TT1 1 Tf 2.672 0 Td (!)Tj /T1_0 1 Tf [(1. )-342(Most)-343(of )-92(the)]TJ -31.916 -1.2 Td [(system functions r)18(eturn)]TJ /TT1 1 Tf 10.735 0 Td (!)Tj /T1_0 1 Tf 0.25 Tc (1w)Tj 0 Tc 2.133 0 Td [(hen an err)18(or occurs.)]TJ -11.068 -1.2 Td [(If we compile the pr)18(ogram into the standar)]TJ 0.25 Tc 18.965 0 Td (dn)Tj 0 Tc 1.443 0 Td (ame \()Tj /TT0 1 Tf (a.out)Tj /T1_0 1 Tf 0.25 Tc (\)a)Tj 0 Tc 6.528 0 Td (nd execute it as)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5817 265.1861 Tm (./a.out > data)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5838 248.258 Tm (standar)Tj 0.4973 Tc 3.32 0 Td (di)Tj 0 Tc 1.399 0 Td [(nput )-247(is )-247(the )-247(terminal, )-247(standar)]TJ 0.4973 Tc 13.52 0 Td (do)Tj 0 Tc 1.654 0 Td [(utput )-247(is )-247(r)17(edir)18(ected )-247(to )-247(the )-247(\336le)]TJ /TT0 1 Tf 14.266 0 Td (data)Tj /T1_0 1 Tf 0.4974 Tc (,a)Tj 0 Tc 3.647 0 Td (nd)Tj -37.807 -1.2 Td (standar)Tj 0.2721 Tc 3.32 0 Td (de)Tj 0 Tc 1.362 0 Td [(rr)18(or )-22(is )-22(also )-22(the )-22(terminal.)-522(If )-22(this )-22(output )-22(\336le )-22(doesn\325t )-22(exist, )-22(the )-22(shell )-22(cr)17(eates )-22(it )-22(by)]TJ -4.682 -1.2 Td [(default. )-268(The)-267(pr)18(ogram )-18(copies )-18(lines )-18(that )-18(we )-18(type )-18(to )-18(the )-18(standar)]TJ 0.2676 Tc 27.291 0 Td (do)Tj 0 Tc 1.425 0 Td [(utput )-18(until )-18(we )-18(type )-18(the)]TJ -28.716 -1.2 Td [(end-of-\336le character \(usually Contr)18(ol)]TJ 16.385 0.09 Td (-)Tj 0.333 -0.09 Td (D\).)Tj -14.918 -1.2 Td [(If we r)8(un)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5815 184.6359 Tm (./a.out < infile > outfile)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5836 167.7079 Tm (then the \336le named)Tj /TT0 1 Tf 8.786 0 Td (infile)Tj /T1_0 1 Tf 3.85 0 Td (will be copied to the \336le named)Tj /TT0 1 Tf 14.15 0 Td (outfile)Tj /T1_0 1 Tf (.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1677.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 147.5734 143.7021 Tm [(In Chapter 3, we describe the unbuf)18(fer)18(ed I/O functions in mor)]TJ 0.25 Tc 27.611 0 Td (ed)Tj 0 Tc 1.34 0 Td (etail.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47340 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(5.6)]TJ 29.496 0 Td [(Reading )-250(and )-250(W)74(riting )-250(a )-250(Str)18(eam)]TJ /T1_1 1 Tf 16.337 0 Td (151)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(The )-179(function)]TJ /TT0 1 Tf 6.239 0 Td (getchar)Tj /T1_0 1 Tf 4.629 0 Td [(is )-179(de\336ned )-179(to )-179(be )-179(equivalent )-179(to)]TJ /TT0 1 Tf 14.109 0 Td (getc\(stdin\))Tj /T1_0 1 Tf 0.6791 Tc (.T)Tj 0 Tc 8.142 0 Td [(he )-179(dif)18(fer)18(ence)]TJ -33.12 -1.2 Td (between)Tj /TT0 1 Tf 4.001 0 Td (getc)Tj /T1_0 1 Tf 2.669 0 Td (and)Tj /TT0 1 Tf 1.962 0 Td (fgetc)Tj /T1_0 1 Tf 3.269 0 Td [(is )-19(that)]TJ /TT0 1 Tf 2.987 0 Td (getc)Tj /T1_0 1 Tf 2.669 0 Td [(can )-19(be )-19(implemented )-19(as )-19(a )-19(macr)18(o, )-19(wher)19(eas)]TJ /TT0 1 Tf 18.444 0 Td (fgetc)Tj /T1_0 1 Tf -36 -1.2 Td [(cannot be implemented as a macr)18(o. )-250(This)-250(means thr)18(ee things.)]TJ 1.8 -1.92 Td [(1. )-633(The)-306(ar)18(gument )-56(to)]TJ /TT0 1 Tf 9.404 0 Td (getc)Tj /T1_0 1 Tf 2.706 0 Td [(should )-56(not )-56(be )-56(an )-56(expr)16(ession )-56(with )-56(side )-56(ef)18(fects, )-56(because )-56(it)]TJ -10.478 -1.2 Td (could be evaluated mor)Tj 0.25 Tc 10.437 0 Td (et)Tj 0 Tc 1.055 0 Td (han once.)Tj -13.125 -1.6 Td [(2. )-633(Since)]TJ /TT0 1 Tf 4.216 0 Td (fgetc)Tj /T1_0 1 Tf 3.263 0 Td [(is )-13(guaranteed )-13(to )-13(be )-13(a )-13(function, )-13(we )-13(can )-13(take )-13(its )-13(addr)22(ess. )-263(This)-262(allows)]TJ -5.846 -1.2 Td [(us to pass the addr)18(ess of)]TJ /TT0 1 Tf 11.04 0 Td (fgetc)Tj /T1_0 1 Tf 3.25 0 Td [(as an ar)18(gument to another function.)]TJ -15.923 -1.6 Td [(3. )-633(Calls)-282(to)]TJ /TT0 1 Tf 5.285 0 Td (fgetc)Tj /T1_0 1 Tf 3.282 0 Td [(pr)18(obably )-32(take )-32(longer )-32(than )-32(calls )-32(to)]TJ /TT0 1 Tf 15.193 0 Td (getc)Tj /T1_0 1 Tf [(,)-282(as)-282(it)-282(u)-1(sually )-32(takes )-32(mor)18(e)]TJ -22.127 -1.2 Td (time to call a function.)Tj -1.633 -2.04 Td [(These )-52(thr)18(ee )-52(functions )-52(r)18(eturn )-52(the )-52(next )-52(character )-52(as )-52(an)]TJ /TT0 1 Tf 23.794 0 Td [(unsigned )298(char)]TJ /T1_0 1 Tf 7.805 0 Td [(converted )-52(to)]TJ -33.399 -1.2 Td (an)Tj /TT0 1 Tf 1.399 0 Td (int)Tj /T1_0 1 Tf 0.5667 Tc (.T)Tj 0 Tc 3.23 0 Td [(he )-67(r)18(eason )-67(for )-67(specifying )-67(unsigned )-67(is )-67(so )-67(that )-67(the )-67(high-or)21(der )-67(bit, )-67(if )-67(set, )-67(doesn\325t)]TJ -4.628 -1.2 Td [(cause )-64(the )-64(r)18(eturn )-64(value )-64(to )-64(be )-64(negative.)-566(The )-64(r)18(eason )-64(for )-64(r)18(equiring )-64(an )-64(integer )-64(r)18(eturn )-64(value)]TJ 0 -1.2 TD [(is )-144(so )-144(that )-144(all )-144(possible )-144(character )-144(values )-144(can )-144(be )-144(r)18(eturned, )-144(along )-144(with )-144(an )-144(indication )-144(that)]TJ T* [(either )-106(an )-106(err)18(or )-106(occurr)18(ed )-106(or )-106(the )-106(end )-106(of )-106(\336le )-106(has )-106(been )-106(encounter)20(ed. )-356(The)-356(constant)]TJ /TT0 1 Tf 35.971 0 Td (EOF)Tj /T1_0 1 Tf 2.156 0 Td (in)Tj /TT0 1 Tf -38.127 -1.2 Td ()Tj /T1_0 1 Tf 5.661 0 Td [(is )-11(r)18(equir)18(ed )-11(to )-11(be )-11(a )-11(negative )-11(value.)-511(Its )-11(value )-11(is )-11(often)]TJ /TT1 1 Tf 22.989 0 Td (!)Tj /T1_0 1 Tf [(1. )-261(This)]TJ -0.018 Tc 3.981 0 Td (re)Tj 0 Tc 0.856 0 Td [(pr)18(esentation)]TJ -33.487 -1.2 Td [(also )-281(means )-281(that )-281(we )-281(cannot )-281(stor)]TJ 0.5306 Tc 14.982 0 Td (et)Tj 0 Tc 1.336 0 Td [(he )-281(r)18(eturn )-281(value )-281(fr)19(om )-281(these )-281(thr)18(ee )-281(functions )-281(in )-281(a)]TJ -16.318 -1.2 Td (character variable and later compar)Tj 0.25 Tc 15.674 0 Td (et)Tj 0 Tc 1.055 0 Td (his value with the constant)Tj /TT0 1 Tf 12.135 0 Td (EOF)Tj /T1_0 1 Tf (.)Tj -27.064 -1.2 Td [(Note )-49(that )-49(these )-49(functions )-49(r)18(eturn )-49(the )-49(same )-49(value )-49(whether )-49(an )-49(err)18(or )-49(occurs )-49(or )-49(the )-49(end)]TJ -1.8 -1.2 Td [(of )-24(\336le )-24(is )-24(r)17(eached. )-274(T)]TJ 0.2745 Tc 8.56 0 Td (od)Tj 0 Tc 1.431 0 Td [(istinguish )-24(between )-24(the )-24(two, )-24(we )-24(must )-24(call )-24(either)]TJ /TT0 1 Tf 21.268 0 Td (ferror)Tj /T1_0 1 Tf 3.875 0 Td (or)Tj /TT0 1 Tf 1.216 0 Td (feof)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5904 411.4753 Tm (#include )Tj 0 -2.021 TD (int ferror\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj -0 -2.021 Td (int feof\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 10.531 -2.021 Td [(Both r)18(eturn: nonzer)]TJ 0.25 Tc 8.643 0 Td (o\()Tj 0 Tc 1.129 0 Td [(tr)8(ue\) if condition is tr)8(ue, 0 \(false\) otherwise)]TJ /TT0 1 Tf -20.303 -2.021 Td (void clearerr\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3342.25 cm 0 0 m 0 863 l 3900 863 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 319.5017 Tm (In most implementations, two \337ags ar)Tj 0.25 Tc 16.753 0 Td (em)Tj 0 Tc 1.612 0 Td [(aintained for each str)18(eam in the)]TJ /TT0 1 Tf 14.19 0 Td (FILE)Tj /T1_0 1 Tf 2.65 0 Td (object:)Tj 0.75 Tc -33.405 -1.8 Td (\245A)Tj 0.25 Tc 2.134 0 Td (ne)Tj 0 Tc 1.311 0 Td [(rr)18(or \337ag)]TJ 0.75 Tc -3.445 -1.2 Td (\245A)Tj 0.25 Tc 2.134 0 Td (ne)Tj 0 Tc 1.311 0 Td (nd-of-\336le \337ag)Tj -5.245 -1.8 Td (Both \337ags ar)Tj 0.25 Tc 5.53 0 Td (ec)Tj 0 Tc 1.173 0 Td [(lear)18(ed by calling)]TJ /TT0 1 Tf 7.551 0 Td (clearerr)Tj /T1_0 1 Tf (.)Tj -12.454 -1.2 Td [(After r)18(eading fr)18(om a str)18(eam, we can push back characters by calling)]TJ /TT0 1 Tf 30.24 0 Td (ungetc)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5821 241.6114 Tm (#include )Tj 0 -2.021 TD (int ungetc\(int)Tj /T1_2 1 Tf 9 0 Td (c)Tj /TT0 1 Tf 0.6 Tc (,F)Tj 0 Tc 2.207 0 Td (ILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 14.986 -2.021 Td (Returns:)Tj /T1_2 1 Tf 3.977 0 Td (c)Tj /T1_0 1 Tf 0.657 0 Td (if OK,)Tj /TT0 1 Tf 2.886 0 Td (EOF)Tj /T1_0 1 Tf 2.05 0 Td [(on err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2007.25 cm 0 0 m 0 499 l 3900 499 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 186.0265 Tm [(The )-55(characters )-55(that )-55(ar)]TJ 0.3055 Tc 9.691 0 Td (ep)Tj 0 Tc 1.386 0 Td [(ushed )-55(back )-55(ar)]TJ 0.3054 Tc 6.24 0 Td (er)Tj 0 Tc 1.161 0 Td [(eturned )-55(by )-55(subsequent )-55(r)18(eads )-55(on )-55(the )-55(str)18(eam )-55(in)]TJ -0.018 Tc -18.477 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(verse )-225(or)18(der )-225(of )-225(their )-225(pushing.)-724(Be )-225(awar)18(e, )-225(however)]TJ 0.4748 Tc 23 0 Td (,t)Tj 0 Tc 1.051 0 Td [(hat )-225(although )-225(ISO )-225(C )-225(allows )-225(an)]TJ -24.907 -1.2 Td [(implementation )-77(to )-77(support )-77(any )-77(amount )-77(of )-77(pushback, )-77(an )-77(implementation )-77(is )-77(r)19(equir)18(ed )-77(to)]TJ 0 -1.2 TD [(pr)18(ovide )-3(only )-3(a )-3(single )-3(character )-3(of )-3(pushback.)]TJ -0.092 Tc 20.048 0 Td [(We )-187(s)]TJ 0 Tc 2.064 0 Td [(hould )-3(not )-3(count )-3(on )-3(mor)]TJ 0.2534 Tc 10.535 0 Td (et)Tj 0 Tc 1.058 0 Td [(han )-3(a )-3(single)]TJ -33.706 -1.2 Td [(character)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47341 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(5.8)]TJ 32.745 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Ef)18(\336ciency)]TJ /T1_1 1 Tf 8.219 0 Td (155)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1586.25 6670.25 cm 0 0 m 3320 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 286.7268 658.9605 Tm [(User CPU)-1500(System CPU)-1500(Clock time)-2615(Bytes of)]TJ 0.121 -1.25 Td [(\(seconds\) )-2049(\(seconds\))-2479(\(seconds\) )-1549(pr)18(ogram text)]TJ -10.594 0.625 Td (Function)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1586.25 6450.25 cm 0 0 m 3320 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1586.25 6430.25 cm 0 0 m 3320 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 162.5885 634.9238 Tm [(best time fr)18(om Figur)]TJ 0.25 Tc 9.033 0 Td (e3)Tj 0 Tc 1.229 0 Td (.6 )Tj 7.088 0 Td [(0.05)-4726(0.29 )-4654(3.18)]TJ /TT0 1 Tf -17.35 -1.25 Td (fgets)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.85 0 Td (fputs)Tj /T1_0 1 Tf 13.501 0 Td [(2.27 )-4475(0.30)-4905(3.49 )-4390(143)]TJ /TT0 1 Tf -17.35 -1.25 Td (getc)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.25 0 Td (putc)Tj /T1_0 1 Tf 14.101 0 Td [(8.45 )-4475(0.29)-4405(10.33 )-4445(1)55(14)]TJ /TT0 1 Tf -17.351 -1.25 Td (fgetc)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.85 0 Td (fputc)Tj /T1_0 1 Tf 13.501 0 Td [(8.16 )-4475(0.40)-4405(10.18 )-4445(1)55(14)]TJ -17.351 -1.25 Td [(single byte time fr)18(om Figur)]TJ 0.25 Tc 12.038 0 Td (e3)Tj 0 Tc 1.229 0 Td [(.6 )-2083(134.61)-3726(249.94 )-3654(394.95)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1586.25 5910.25 cm 0 0 m 3320 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4345.25 5910.25 cm 0 0 m 0 760 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3843.25 5910.25 cm 0 0 m 0 760 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3281.25 5910.25 cm 0 0 m 0 760 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2807.25 5910.25 cm 0 0 m 0 760 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4906.25 5910.25 cm 0 0 m 0 760 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1586.25 5910.25 cm 0 0 m 0 760 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 227.4631 572.8969 Tm (Figure 5.6)Tj /T1_0 1 Tf -0.055 Tc 5.195 0 Td (Ti)Tj 0 Tc 0.849 0 Td [(ming r)18(esults using standar)]TJ 0.25 Tc 11.762 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O r)18(outines)]TJ 9.9982 0 0 9.9982 129.5772 544.102 Tm [(time )-57(version )-57(is )-57(executed )-57(3,144,984 )-57(times.)-557(In )-57(the)]TJ /TT0 1 Tf 21.576 0 Td (read)Tj /T1_0 1 Tf 2.707 0 Td [(version, )-57(its )-57(loop )-57(is )-57(executed )-57(only)]TJ -24.282 -1.2 Td [(25,224 )-116(times )-116(\(for )-116(a )-116(buf)18(fer )-116(size )-116(of )-116(4,096\).)-616(This )-116(dif)20(fer)18(ence )-116(in )-116(clock )-116(times )-116(stems )-116(fr)18(om )-116(the)]TJ -0 -1.2 Td [(dif)18(fer)18(ence )-295(in )-295(user )-295(times )-295(and )-295(the )-295(dif)17(fer)18(ence )-295(in )-295(the )-295(times )-295(spent )-295(waiting )-295(for )-295(I/O )-295(to)]TJ -0 -1.2 Td (complete, as the system times ar)Tj 0.25 Tc 14.232 0 Td (ec)Tj 0 Tc 1.173 0 Td (omparable.)Tj -13.605 -1.2 Td [(The )-276(system )-276(CPU )-276(time )-276(is )-276(about )-276(the )-276(same )-276(as )-276(befor)18(e, )-276(because )-276(r)18(oughly )-276(the )-276(same)]TJ -1.8 -1.2 Td [(number )-99(of )-99(kernel )-99(r)18(equests )-99(ar)]TJ 0.3488 Tc 13.1 0 Td (eb)Tj 0 Tc 1.381 0 Td [(eing )-99(made.)-599(One )-99(advantage )-99(of )-99(using )-99(the )-99(standar)]TJ 0.3488 Tc 21.831 0 Td (dI)Tj 0 Tc 1.297 0 Td (/O)Tj -0.018 Tc -37.608 -1.2 Td (ro)Tj 0 Tc 0.923 0 Td [(utines )-139(is )-139(that )-139(we )-139(don\325t )-139(have )-139(to )-139(worry )-139(about )-139(buf)18(fering )-139(or )-139(choosing )-139(the )-139(optimal )-139(I/O)]TJ -0.923 -1.2 Td [(size. )-307(W)92(e)-307(do)-307(h)1(ave )-57(to )-57(determine )-57(the )-57(maximum )-57(line )-57(size )-57(for )-57(the )-57(version )-57(that )-57(uses)]TJ /TT0 1 Tf 35.75 0 Td (fgets)Tj /T1_0 1 Tf (,)Tj -35.75 -1.2 Td (but that\325s easier than trying to choose the optimal I/O size.)Tj 1.8 -1.2 Td [(The )-115(\336nal )-115(column )-115(in )-115(Figur)]TJ 0.3651 Tc 11.717 0 Td (e5)Tj 0 Tc 1.344 0 Td [(.6 )-115(is )-115(the )-115(number )-115(of )-115(bytes )-115(of )-115(text )-115(space)]TJ 0.0833 Tc 17.542 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(he )-115(machine)]TJ -33.813 -1.2 Td [(instr)8(uctions )-73(generated )-73(by )-73(the )-73(C )-73(compiler)]TJ 0.0833 Tc 18.464 0 Td (\321f)Tj 0 Tc 1.416 0 Td [(or )-73(each )-73(of )-73(the)]TJ /TT0 1 Tf 6.503 0 Td (main)Tj /T1_0 1 Tf 2.723 0 Td [(functions. )-323(W)]TJ 0.3227 Tc 5.862 0 Td (ec)Tj 0 Tc 1.246 0 Td [(an )-73(see)]TJ -36.213 -1.2 Td [(that )-34(the )-34(version )-34(using)]TJ /TT0 1 Tf 9.996 0 Td (getc)Tj /T1_0 1 Tf 2.684 0 Td (and)Tj /TT0 1 Tf 1.977 0 Td (putc)Tj /T1_0 1 Tf 2.684 0 Td [(takes )-34(the )-34(same )-34(amount )-34(of )-34(space )-34(as )-34(the )-34(one )-34(using)]TJ -17.342 -1.2 Td (the)Tj /TT0 1 Tf 1.687 0 Td (fgetc)Tj /T1_0 1 Tf 3.3 0 Td (and)Tj /TT0 1 Tf 1.993 0 Td (fputc)Tj /T1_0 1 Tf 3.3 0 Td [(functions. )-300(Usually)111(,)]TJ /TT0 1 Tf 8.814 0 Td (getc)Tj /T1_0 1 Tf 2.7 0 Td (and)Tj /TT0 1 Tf 1.993 0 Td (putc)Tj /T1_0 1 Tf 2.7 0 Td (ar)Tj 0.3004 Tc 0.877 0 Td (ei)Tj 0 Tc 1.07 0 Td [(mplemented )-50(as )-50(macr)17(os,)]TJ -28.437 -1.2 Td (but in the GNU C library implementation the macr)Tj 0.25 Tc 22.455 0 Td (os)Tj 0 Tc 1.22 0 Td (imply expands to a function call.)Tj -21.875 -1.2 Td [(The )-173(version )-173(using )-173(line-at-a-time )-173(I/O )-173(is )-173(almost )-173(twice )-173(as )-173(fast )-173(as )-173(the )-173(version )-173(using)]TJ -1.8 -1.2 Td [(character)18(-at-a-time )-232(I/O.)-732(If )-232(the)]TJ /TT0 1 Tf 14.566 0 Td (fgets)Tj /T1_0 1 Tf 3.482 0 Td (and)Tj /TT0 1 Tf 2.175 0 Td (fputs)Tj /T1_0 1 Tf 3.482 0 Td [(functions )-232(ar)]TJ 0.4822 Tc 5.49 0 Td (ei)Tj 0 Tc 1.252 0 Td [(mplemented )-232(using)]TJ /TT0 1 Tf -30.448 -1.2 Td (getc)Tj /T1_0 1 Tf 2.7 0 Td (and)Tj /TT0 1 Tf 1.993 0 Td (putc)Tj /T1_0 1 Tf 2.7 0 Td [(\(see )-50(Section )-50(7.7 )-50(of )-50(Kernighan )-50(and )-50(Ritchie)]TJ 18.603 0.04 Td ([)Tj 0.333 -0.04 Td (1988)Tj 2 0.04 Td (])Tj 0.2999 Tc 0.333 -0.04 Td (,f)Tj 0 Tc 0.883 0 Td [(or )-50(example\), )-50(then )-50(we)]TJ -29.545 -1.2 Td [(would )-93(expect )-93(the )-93(timing )-93(to )-93(be )-93(similar )-93(to )-93(the)]TJ /TT0 1 Tf 20.376 0 Td (getc)Tj /T1_0 1 Tf 2.744 0 Td [(version. )-344(Actually)111(,)-344(we)-344(m)1(ight )-94(expect)]TJ -23.119 -1.2 Td [(the )-44(line-at-a-time )-44(version )-44(to )-44(take )-44(longer)]TJ 0.2943 Tc 17.596 0 Td (,s)Tj 0 Tc 0.968 0 Td [(ince )-44(we )-44(would )-44(be )-44(adding )-44(the )-44(over)16(head )-44(of )-44(200)]TJ -18.564 -1.2 Td [(million )-69(extra )-69(function )-69(calls )-69(to )-69(the )-69(existing )-69(6 )-69(million )-69(ones.)-569(What )-69(is )-69(happening )-69(with )-69(this)]TJ 0 -1.2 TD [(example )-50(is )-50(that )-50(the )-50(line-at-a-time )-50(functions )-50(ar)]TJ 0.2998 Tc 20.339 0 Td (ei)Tj 0 Tc 1.07 0 Td [(mplemented )-50(using)]TJ /TT0 1 Tf 8.67 0 Td (memccpy)Tj /T1_0 1 Tf 4.2 0.04 Td (\()Tj 0.333 -0.04 Td (3)Tj 0.5 0.04 Td (\))Tj 0.5498 Tc 0.333 -0.04 Td (.O)Tj 0 Tc 1.586 0 Td (ften,)Tj -37.03 -1.2 Td (the)Tj /TT0 1 Tf 1.668 0 Td (memccpy)Tj /T1_0 1 Tf 4.481 0 Td [(function )-31(is )-31(implemented )-31(in )-31(assembly )-31(language )-31(instead )-31(of )-31(C, )-31(for )-31(ef)14(\336ciency)111(.)]TJ -4.35 -1.2 Td [(The )-50(last )-50(point )-50(of )-50(inter)17(est )-50(with )-50(these )-50(timing )-50(numbers )-50(is )-50(that )-50(the)]TJ /TT0 1 Tf 28.333 0 Td (fgetc)Tj /T1_0 1 Tf 3.3 0 Td [(version )-50(is )-50(so)]TJ -33.433 -1.2 Td [(much )-214(faster )-214(than )-214(the)]TJ /TT0 1 Tf 10.2 0 Td (BUFFSIZE=1)Tj /T1_0 1 Tf 6.464 0 Td [(version )-214(fr)18(om )-214(Figur)]TJ 0.4637 Tc 8.731 0 Td (e3)Tj 0 Tc 1.443 0 Td [(.6. )-464(Both)-463(involve )-214(the )-214(same)]TJ -26.838 -1.2 Td [(number )-118(of )-118(function )-118(calls)]TJ 0.0833 Tc 11.218 0 Td (\321a)Tj 0 Tc 1.583 0 Td [(bout )-118(200 )-118(million)]TJ 0.0833 Tc 7.522 0 Td (\321y)Tj 0 Tc 1.639 0 Td [(et )-118(the)]TJ /TT0 1 Tf 2.927 0 Td (fgetc)Tj /T1_0 1 Tf 3.368 0 Td [(version )-118(is )-118(mor)]TJ 0.3677 Tc 6.538 0 Td (et)Tj 0 Tc 1.173 0 Td [(han )-118(16)]TJ -35.968 -1.2 Td [(times )-22(faster )-22(in )-22(terms )-22(of )-22(user )-22(CPU )-22(time )-22(and )-22(almost )-22(39 )-22(times )-22(faster )-22(in )-22(terms )-22(of )-22(clock )-22(time.)]TJ T* [(The )-50(dif)18(fer)18(ence )-50(is )-50(that )-50(the )-50(version )-50(using)]TJ /TT0 1 Tf 17.737 0 Td (read)Tj /T1_0 1 Tf 2.7 0 Td [(executes )-50(200 )-50(million )-50(function )-50(calls, )-50(which)]TJ -20.436 -1.2 Td [(in )-97(turn )-97(execute )-97(200 )-97(million )-97(system )-97(calls.)]TJ -0.055 Tc 18.748 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-97(the)]TJ /TT0 1 Tf 2.988 0 Td (fgetc)Tj /T1_0 1 Tf 3.347 0 Td [(version, )-97(we )-97(still )-97(execute )-97(200)]TJ -26.319 -1.2 Td [(million )-62(function )-62(calls, )-62(but )-62(this )-62(translates )-62(into )-62(only )-62(25,224 )-62(system )-62(calls.)-562(System )-62(calls )-62(ar)19(e)]TJ T* (usually much mor)Tj 0.25 Tc 8.086 0 Td (ee)Tj 0 Tc 1.208 0 Td [(xpensive than or)18(dinary function calls.)]TJ -7.494 -1.2 Td [(As )-33(a )-33(disclaimer)]TJ 0.2832 Tc 6.803 0 Td (,y)Tj 0 Tc 1.089 0 Td [(ou )-33(should )-33(be )-33(awar)]TJ 0.2832 Tc 8.299 0 Td (et)Tj 0 Tc 1.088 0 Td [(hat )-33(these )-33(timing )-33(r)18(esults )-33(ar)]TJ 0.2832 Tc 11.561 0 Td (ev)Tj 0 Tc 1.327 0 Td [(alid )-33(only )-33(on )-33(the)]TJ -31.967 -1.2 Td [(single )-65(system )-65(they )-65(wer)]TJ 0.3152 Tc 10.294 0 Td (er)Tj 0 Tc 1.181 0 Td [(un )-65(on.)-565(The )-65(r)17(esults )-65(depend )-65(on )-65(many )-65(implementation )-65(featur)18(es)]TJ -11.475 -1.2 Td [(that )-6(ar)18(en\325t )-6(the )-6(same )-6(on )-6(every )-6(UNIX )-6(system.)-506(Nevertheless, )-6(having )-6(a )-6(set )-6(of )-6(numbers )-6(such)]TJ T* [(as )-272(these, )-272(and )-272(explaining )-272(why )-272(the )-272(various )-272(versions )-272(dif)20(fer)]TJ 0.5217 Tc 26.759 0 Td (,h)Tj 0 Tc 1.354 0 Td [(elps )-272(us )-272(understand )-272(the)]TJ -28.113 -1.2 Td [(system )-112(better)]TJ 0.6121 Tc 5.938 0 Td (.F)Tj -0.018 Tc 1.418 0 Td (ro)Tj 0.3621 Tc 0.923 0 Td (mt)Tj 0 Tc 1.571 0 Td [(his )-112(section )-112(and )-112(Section )-112(3.9, )-112(we\325ve )-112(learned )-112(that )-112(the )-112(standar)]TJ 0.3622 Tc 26.448 0 Td (dI)Tj 0 Tc 1.31 0 Td (/O)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47342 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Chapter )-250(3)]TJ 40.288 0 Td [(Exer)18(cises)]TJ /T1_1 1 Tf 6.045 0 Td (91)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 8.9995 0 0 8.9995 129.5922 669.9598 Tm (3.6)Tj /T1_0 1 Tf 2.602 0 Td [(If )-24(you)]TJ /TT0 1 Tf 2.922 0 Td (open)Tj /T1_0 1 Tf 0.2737 Tc 2.674 0 Td (a\336)Tj 0 Tc 1.379 0 Td [(le )-24(for )-24(r)18(ead\320write )-24(with )-24(the )-24(append )-24(\337ag, )-24(can )-24(you )-24(still)]TJ /TT0 1 Tf 23.135 0 Td (read)Tj /T1_0 1 Tf 2.674 0 Td [(fr)18(om )-24(anywher)]TJ 0.2737 Tc 6.323 0 Td (ei)Tj 0 Tc 1.044 0 Td (n)Tj -40.149 -1.222 Td [(the )-195(\336le )-195(using)]TJ /TT0 1 Tf 6.554 0 Td (lseek)Tj /T1_0 1 Tf 0.6954 Tc (?C)Tj 0 Tc 4.848 0 Td [(an )-195(you )-195(use)]TJ /TT0 1 Tf 5.629 0 Td (lseek)Tj /T1_0 1 Tf 3.445 0 Td [(to )-195(r)18(eplace )-195(existing )-195(data )-195(in )-195(the )-195(\336le?)]TJ -0.074 Tc 16.891 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-195(a)]TJ -38.69 -1.222 Td [(pr)18(ogram to verify this.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47343 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.8)]TJ /TT0 1 Tf 36.403 0 Td (umask)Tj /T1_0 1 Tf 3.5 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (105)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(If we r)8(un this pr)18(ogram, we can see how the permission bits have been set.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 655.4709 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (umask)Tj /T1_2 1 Tf 16.4 0 Td [(\336rst print the curr)18(ent \336le mode cr)18(eation mask)]TJ /TT0 1 Tf -17.6 -1.189 Td (002)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l foo bar)Tj /TT0 1 Tf -1.2 -1.189 Td [(-rw------- )-600(1)-600(sar )]TJ 18 0 Td [(0)-600(Dec )-600(7)-600(21:20 bar)]TJ -18 -1.189 Td [(-rw-rw-rw- )-600(1)-600(sar )]TJ 18 0 Td [(0)-600(Dec )-600(7)-600(21:20 foo)]TJ -18 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (umask)Tj /T1_2 1 Tf 16.4 0 Td [(see if the \336le mode cr)18(eation mask changed)]TJ /TT0 1 Tf -17.6 -1.189 Td (002)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5746.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 555.3434 Tm [(Most )-130(users )-130(of )-130(UNIX )-130(systems )-130(never )-130(deal )-130(with )-130(their)]TJ /TT0 1 Tf 23.485 0 Td (umask)Tj /T1_0 1 Tf 3.38 0 Td [(value. )-380(It)-381(is )-130(usually )-130(set)]TJ -28.665 -1.2 Td [(once, )-227(on )-227(login, )-227(by )-227(the )-227(shell\325s )-227(start-up )-227(\336le, )-227(and )-227(never )-227(changed.)-727(Nevertheless, )-227(when)]TJ 0 -1.2 TD [(writing )-321(pr)18(ograms )-321(that )-321(cr)17(eate )-321(new )-321(\336les, )-321(if )-321(we )-321(want )-321(to )-321(ensur)]TJ 0.5714 Tc 29.07 0 Td (et)Tj 0 Tc 1.376 0 Td [(hat )-321(speci\336c )-321(access)]TJ -30.446 -1.2 Td [(permission )-205(bits )-205(ar)]TJ 0.4555 Tc 8.298 0 Td (ee)Tj 0 Tc 1.414 0 Td [(nabled, )-205(we )-205(must )-205(modify )-205(the)]TJ /TT0 1 Tf 13.7 0 Td (umask)Tj /T1_0 1 Tf 3.455 0 Td [(value )-205(while )-205(the )-205(pr)18(ocess )-205(is)]TJ -0.008 Tc -26.866 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td [(nning. )-327(For)-327(example, )-77(if )-77(we )-77(want )-77(to )-77(ensur)]TJ 0.3269 Tc 18.393 0 Td (et)Tj 0 Tc 1.132 0 Td [(hat )-77(anyone )-77(can )-77(r)18(ead )-77(a )-77(\336le, )-77(we )-77(should )-77(set)]TJ -20.515 -1.2 Td (the)Tj /TT0 1 Tf 1.876 0 Td (umask)Tj /T1_0 1 Tf 3.489 0 Td [(to )-239(0.)-739(Otherwise, )-239(the)]TJ /TT0 1 Tf 10.063 0 Td (umask)Tj /T1_0 1 Tf 3.489 0 Td [(value )-239(that )-239(is )-239(in )-239(ef)18(fect )-239(when )-239(our )-239(pr)18(ocess )-239(is)]TJ -0.008 Tc -18.918 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td [(nning can cause permission bits to be turned of)18(f.)]TJ 0.81 -1.2 Td [(In )-14(the )-14(pr)18(eceding )-14(example, )-14(we )-14(use )-14(the )-14(shell\325s)]TJ /TT0 1 Tf 19.816 0 Td (umask)Tj /T1_0 1 Tf 3.264 0 Td [(command )-14(to )-14(print )-14(the )-14(\336le )-14(mode)]TJ -24.881 -1.2 Td [(cr)18(eation )-116(mask )-116(both )-116(befor)18(e)-366(we)-366(r)8(un )-116(the )-116(pr)18(ogram )-116(and )-116(after )-116(it )-116(completes.)-617(This )-116(shows )-116(us)]TJ 0 -1.2 Td [(that )-150(changing )-150(the )-150(\336le )-150(mode )-150(cr)18(eation )-150(mask )-150(of )-150(a )-150(pr)18(ocess )-150(doesn\325t )-150(af)18(fect )-150(the )-150(mask )-150(of )-150(its)]TJ T* [(par)18(ent )-37(\(often )-37(a )-37(shell\).)-537(All )-37(of )-37(the )-37(shells )-37(have )-37(a )-37(built-in)]TJ /TT0 1 Tf 24.036 0 Td (umask)Tj /T1_0 1 Tf 3.287 0 Td [(command )-37(that )-37(we )-37(can )-37(use)]TJ -27.323 -1.2 Td [(to set or print the curr)18(ent \336le mode cr)18(eation mask.)]TJ 1.8 -1.2 Td [(Users )-108(can )-108(set )-108(the)]TJ /TT0 1 Tf 8.073 0 Td (umask)Tj /T1_0 1 Tf 3.358 0 Td [(value )-108(to )-108(contr)18(ol )-108(the )-108(default )-108(permissions )-108(on )-108(the )-108(\336les )-108(they)]TJ -13.231 -1.2 Td [(cr)18(eate. )-316(This)-316(value )-66(is )-66(expr)18(essed )-66(in )-66(octal, )-66(with )-66(one )-66(bit )-66(r)19(epr)18(esenting )-66(one )-66(permission )-66(to )-66(be)]TJ -0 -1.2 Td [(masked )-349(of)18(f, )-349(as )-349(shown )-349(in )-349(Figur)]TJ 0.5994 Tc 15.042 0 Td (e4)Tj 0 Tc 1.578 0 Td [(.10. )-599(Permissions)-600(can )-349(be )-349(denied )-349(by )-349(setting )-349(the)]TJ -16.62 -1.2 Td [(corr)18(esponding )-320(bits.)-820(Some )-320(common)]TJ /TT0 1 Tf 17.123 0 Td (umask)Tj /T1_0 1 Tf 3.57 0 Td [(values )-319(ar)]TJ 0.5695 Tc 4.309 0 Td (e0)Tj 0 Tc 1.549 0 Td [(02 )-319(to )-319(pr)18(event )-319(others )-319(fr)16(om)]TJ -26.55 -1.2 Td [(writing )-135(your )-135(\336les, )-135(022 )-135(to )-135(pr)18(event )-135(gr)18(oup )-135(members )-135(and )-135(others )-135(fr)16(om )-135(writing )-135(your )-135(\336les,)]TJ T* [(and )-150(027 )-150(to )-150(pr)18(event )-150(gr)18(oup )-150(members )-150(fr)18(om )-150(writing )-150(your )-150(\336les )-150(and )-150(others )-150(fr)18(om )-150(r)14(eading,)]TJ T* (writing, or executing your \336les.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2738.25 3266.25 cm 0 0 m 1015 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 277.798 318.5527 Tm [(Mask bit)-2703(Meaning)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2738.25 3146.25 cm 0 0 m 1015 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2738.25 3126.25 cm 0 0 m 1015 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 283.5639 304.5369 Tm (0400)Tj /T1_0 1 Tf 4.623 0 Td [(user)18(-r)18(ead)]TJ /TT0 1 Tf -4.623 -1.25 Td (0200)Tj /T1_0 1 Tf 4.623 0 Td [(user)18(-write)]TJ /TT0 1 Tf -4.623 -1.25 Td (0100)Tj /T1_0 1 Tf 4.623 0 Td [(user)18(-execute)]TJ /TT0 1 Tf -4.623 -1.25 Td (0040)Tj /T1_0 1 Tf 4.623 0 Td [(gr)18(oup-r)18(ead)]TJ /TT0 1 Tf -4.623 -1.25 Td (0020)Tj /T1_0 1 Tf 4.623 0 Td [(gr)18(oup-write)]TJ /TT0 1 Tf -4.623 -1.25 Td (0010)Tj /T1_0 1 Tf 4.623 0 Td [(gr)18(oup-execute)]TJ /TT0 1 Tf -4.623 -1.25 Td (0004)Tj /T1_0 1 Tf 4.623 0 Td [(other)18(-r)18(ead)]TJ /TT0 1 Tf -4.623 -1.25 Td (0002)Tj /T1_0 1 Tf 4.623 0 Td [(other)18(-write)]TJ /TT0 1 Tf -4.623 -1.25 Td (0001)Tj /T1_0 1 Tf 4.623 0 Td [(other)18(-execute)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2738.25 2206.25 cm 0 0 m 1015 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3146.25 2206.25 cm 0 0 m 0 1060 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3753.25 2206.25 cm 0 0 m 0 1060 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2738.25 2206.25 cm 0 0 m 0 1060 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 235.6533 202.5492 Tm (Figure 4.10)Tj /T1_0 1 Tf 5.695 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (umask)Tj /T1_0 1 Tf 3.25 0 Td (\336le access permission bits)Tj 9.997 0 0 9.997 147.5561 182.1553 Tm [(The )-390(Single )-390(UNIX )-390(Speci\336cation )-390(r)18(equir)18(es )-390(that )-390(the)]TJ /TT0 1 Tf 23.835 0 Td (umask)Tj /T1_0 1 Tf 3.64 0 Td [(command )-390(support )-390(a)]TJ -29.275 -1.2 Td [(symbolic )-208(mode )-208(of )-208(operation.)-708(Unlike )-208(the )-208(octal )-208(format, )-208(the )-208(symbolic )-208(format )-208(speci\336es)]TJ T* [(which )-192(permissions )-192(ar)19(e)-442(to)-442(be)-442(a)1(llowed )-192(\(i.e., )-192(clear )-192(in )-192(the )-192(\336le )-192(cr)18(eation )-192(mask\) )-192(instead )-192(of)]TJ -0 -1.2 Td [(which )-56(ones )-56(ar)17(e)-306(to)-306(be)-306(d)-1(enied )-56(\(i.e., )-56(set )-56(in )-56(the )-56(\336le )-56(cr)18(eation )-56(mask\).)-559(Compar)]TJ 0.3064 Tc 32.135 0 Td (eb)Tj 0 Tc 1.338 0 Td [(oth )-56(forms )-56(of)]TJ -33.473 -1.2 Td [(the command, shown below)92(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47344 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(13.3)]TJ 37.573 0 Td [(Coding )-250(Rules)]TJ /T1_1 1 Tf 8.26 0 Td (467)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 163.9202 668.9599 Tm [(terminal )-299(device, )-299(ther)18(e)-549(is)-549(nowher)]TJ 0.5488 Tc 15.419 0 Td (ef)Tj 0 Tc 1.361 0 Td [(or )-299(output )-299(to )-299(be )-299(displayed, )-299(nor )-299(is )-299(ther)19(e)]TJ -16.78 -1.2 Td [(anywher)18(e)-413(to)-413(r)18(eceive )-163(input )-163(fr)18(om )-163(an )-163(interactive )-163(user)]TJ 0.663 Tc 23.395 0 Td (.E)Tj 0 Tc 1.524 0 Td [(ven )-163(if )-163(the )-163(daemon )-163(was)]TJ -24.919 -1.2 Td [(started )-24(fr)18(om )-24(an )-24(interactive )-24(session, )-24(the )-24(daemon )-24(r)10(uns )-24(in )-24(the )-24(backgr)18(ound, )-24(and )-24(the)]TJ 0 -1.2 TD [(login )-78(session )-78(can )-78(terminate )-78(without )-78(af)18(fecting )-78(the )-78(daemon.)-576(If )-78(other )-78(users )-78(log )-78(in)]TJ T* [(on )-308(the )-308(same )-308(terminal )-308(device, )-308(we )-308(wouldn\325t )-308(want )-308(output )-308(fr)18(om )-308(the )-308(daemon)]TJ T* [(showing )-160(up )-160(on )-160(the )-160(terminal, )-160(and )-160(the )-160(users )-160(wouldn\325t )-160(expect )-160(their )-160(input )-160(to )-160(be)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td (ad by the daemon.)Tj /TT0 1 Tf -7.889 -2.88 Td (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td (Figur)Tj 0.3234 Tc 2.383 0 Td (e1)Tj 0 Tc 1.302 0 Td [(3.1 )-73(shows )-73(a )-73(function )-73(that )-73(can )-73(be )-73(called )-73(fr)15(om )-73(a )-73(pr)18(ogram )-73(that )-73(wants )-73(to )-73(initialize)]TJ -3.685 -1.2 Td (itself as a daemon.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5250.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 515.4371 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj T* (#include )Tj 0 -1.902 TD (void)Tj 0 -1.189 TD (daemonize\(const char *cmd\))Tj T* ({)Tj 2.4 -1.189 Td (int )Tj 12 0 Td [(i,)-600(fd0, fd1, fd2;)]TJ -12 -1.189 Td (pid_t )Tj 12 0 Td (pid;)Tj -12 -1.189 Td [(struct rlimit)-4200(rl;)]TJ T* [(struct sigaction)-2400(sa;)]TJ 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (lear file creation mask.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (umask\(0\);)Tj T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*G)Tj 0 Tc 1.8 0 Td (et maximum number of file descriptors.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(getrlimit\(RLIMIT_NOFILE, &rl\) < 0\))Tj 2.4 -1.189 Td (err_quit\("%s: can\325t get file limit", cmd\);)Tj -2.4 -1.902 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*B)Tj 0 Tc 1.8 0 Td (ecome a session leader to lose controlling TTY.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(\(pid = fork\(\)\) < 0\))Tj 2.4 -1.189 Td (err_quit\("%s: can\325t fork", cmd\);)Tj -2.4 -1.189 Td (else if \(pid != 0\) /* parent */)Tj 2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (setsid\(\);)Tj T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*E)Tj 0 Tc 1.8 0 Td (nsure future opens won\325t allocate controlling TTYs.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (sa.sa_handler = SIG_IGN;)Tj 0 -1.189 TD (sigemptyset\(&sa.sa_mask\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47345 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.4)]TJ 32.736 0 Td [(Passing )-250(File )-250(Descriptors)]TJ /T1_1 1 Tf 13.097 0 Td (651)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm [(#define CREDSTRUCT)-3600(ucred)]TJ 0 -1.189 TD (#define CR_UID)Tj 14.4 0 Td (uid)Tj -14.4 -1.189 Td (#define CREDOPT)Tj 14.4 0 Td (SO_PASSCRED)Tj -14.4 -1.189 Td [(#define SCM_CREDTYPE)-2400(SCM_CREDENTIALS)]TJ T* (#else)Tj 0 -1.189 TD (#error passing credentials is unsupported!)Tj 0 -1.189 TD (#endif)Tj 0 -1.783 TD (/* size of control buffer to send/recv one file descriptor */)Tj 0 -1.189 TD [(#define RIGHTSLEN)-1800(CMSG_LEN\(sizeof\(int\)\))]TJ 0 -1.189 TD [(#define CREDSLEN)-2400(CMSG_LEN\(sizeof\(struct CREDSTRUCT\)\))]TJ 0 -1.189 TD [(#define CONTROLLEN)-1200(\(RIGHTSLEN + CREDSLEN\))]TJ 0 -1.783 TD [(static struct cmsghdr)-1800(*cmptr = NULL;)-3600(/* malloc\325ed first time */)]TJ 0 -1.783 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*R)Tj 0 Tc 1.8 0 Td [(eceive a file descriptor from a server process.)-1200(Also, any data)]TJ 0.6 Tc -1.8 -1.189 Td (*r)Tj 0 Tc 1.8 0 Td (eceived is passed to \(*userfunc\)\(STDERR_FILENO, buf, nbytes\).)Tj -1.8 -1.189 Td [(*)-600(We)-600(have a 2-byte protocol for receiving the fd from send_fd\(\).)]TJ 0 -1.189 TD (*/)Tj -0.6 -1.189 Td (int)Tj T* (recv_ufd\(int fd, uid_t *uidptr,)Tj 5.4 -1.189 Td (ssize_t \(*userfunc\)\(int, const void *, size_t\)\))Tj -5.4 -1.189 Td ({)Tj 2.4 -1.189 Td [(struct cmsghdr)-3600(*cmp;)]TJ T* [(struct CREDSTRUCT)-1800(*credp;)]TJ T* (char )Tj 12 0 Td (*ptr;)Tj -12 -1.189 Td (char )Tj 12 0 Td (buf[MAXLINE];)Tj -12 -1.189 Td [(struct iovec)-4800(iov[1];)]TJ 0 -1.189 TD [(struct msghdr)-4200(msg;)]TJ 0 -1.189 TD (int )Tj 12 0 Td (nr;)Tj -12 -1.189 Td (int )Tj 12 0 Td (newfd)Tj 0.6 Tc 3.6 0 Td (=-)Tj 0 Tc 1.8 0 Td (1;)Tj -17.4 -1.189 Td (int )Tj 12 0 Td (status)Tj 0.6 Tc 4.2 0 Td (=-)Tj 0 Tc 1.8 0 Td (1;)Tj -20.4 -1.189 Td (#if defined\(CREDOPT\))Tj 2.4 -1.189 Td (const int)Tj 12 0 Td (on = 1;)Tj -12 -1.783 Td (if \(setsockopt\(fd, SOL_SOCKET, CREDOPT, &on, sizeof\(int\)\) < 0\) {)Tj 2.4 -1.189 Td (err_ret\("setsockopt error"\);)Tj T* (return\(-1\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (#endif)Tj 2.4 -1.189 Td (for \( ; ; \) {)Tj 2.4 -1.189 Td (iov[0].iov_base = buf;)Tj 0 -1.189 TD [(iov[0].iov_len )-600(=)-600(sizeof\(buf\);)]TJ 0 -1.189 TD [(msg.msg_iov )-2400(=)-600(iov;)]TJ T* [(msg.msg_iovlen )-600(=)-600(1;)]TJ T* [(msg.msg_name )-1800(=)-600(NULL;)]TJ T* (msg.msg_namelen = 0;)Tj T* (if \(cmptr == NULL && \(cmptr = malloc\(CONTROLLEN\)\) == NULL\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td [(msg.msg_control )-1800(=)-600(cmptr;)]TJ T* (msg.msg_controllen = CONTROLLEN;)Tj 0 -1.189 TD (if \(\(nr = recvmsg\(fd, &msg, 0\)\) < 0\) {)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47346 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.4)]TJ 32.736 0 Td [(Passing )-250(File )-250(Descriptors)]TJ /T1_1 1 Tf 13.097 0 Td (649)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(When )-320(we )-320(transmit )-320(cr)17(edentials, )-320(we )-320(need )-320(to )-320(r)18(eserve )-320(space )-320(only )-320(for )-320(the)]TJ /TT0 1 Tf 34.2 0 Td (cmsgcred)Tj /T1_0 1 Tf -34.2 -1.2 Td [(str)8(uctur)18(e. )-424(The)-424(kernel )-174(will )-174(\336ll )-174(in )-174(this )-174(str)7(uctur)]TJ 0.4243 Tc 20.775 0 Td (ef)Tj 0 Tc 1.236 0 Td [(or )-174(us )-174(to )-174(pr)18(event )-174(an )-174(application )-174(fr)16(om)]TJ -22.011 -1.2 Td [(pr)18(etending to have a dif)18(fer)18(ent identity)111(.)]TJ 1.8 -1.2 Td [(On Linux, cr)18(edentials ar)]TJ 0.25 Tc 10.652 0 Td (et)Tj 0 Tc 1.055 0 Td (ransmitted as a)Tj /TT0 1 Tf 6.991 0 Td (ucred)Tj /T1_0 1 Tf 3.25 0 Td [(str)8(uctur)18(e:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5914 617.3329 Tm (struct ucred {)Tj 2.4 -1.189 Td [(pid_t )-600(pid; )-600(/*)-600(sender\325s process ID */)]TJ 0 -1.189 TD [(uid_t )-600(uid; )-600(/*)-600(sender\325s user ID */)]TJ T* [(gid_t )-600(gid; )-600(/*)-600(sender\325s group ID */)]TJ -2.4 -1.189 Td (};)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5925 556.5365 Tm [(Unlike )-211(Fr)18(eeBSD, )-211(Linux )-211(r)17(equir)18(es )-211(that )-211(we )-211(initialize )-211(this )-211(str)7(uctur)]TJ 0.4613 Tc 28.913 0 Td (eb)Tj 0 Tc 1.493 0 Td (efor)Tj 0.4613 Tc 1.735 0 Td (et)Tj 0 Tc 1.266 0 Td (ransmission.)Tj -33.408 -1.2 Td (The kernel will ensur)Tj 0.2502 Tc 9.379 0 Td (et)Tj 0 Tc 1.055 0 Td [(hat applications either use values that corr)18(espond to the caller or)]TJ -10.434 -1.2 Td [(have the appr)18(opriate privilege to use other values.)]TJ 1.8 -1.2 Td (Figur)Tj 0.302 Tc 2.383 0 Td (e1)Tj 0 Tc 1.281 0 Td [(7.15 )-52(shows )-52(the)]TJ /TT0 1 Tf 6.853 0 Td (send_fd)Tj /T1_0 1 Tf 4.502 0 Td [(function )-52(updated )-52(to )-52(include )-52(the )-52(cr)18(edentials )-52(of )-52(the)]TJ -16.819 -1.2 Td [(sending pr)18(ocess.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5013.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 491.81 Tm (#include "apue.h")Tj T* (#include )Tj 0 -1.783 TD (#if defined\(SCM_CREDS\))Tj 19.2 0 Td (/* BSD interface */)Tj -19.2 -1.189 Td [(#define CREDSTRUCT)-3600(cmsgcred)]TJ 0 -1.189 TD [(#define SCM_CREDTYPE)-2400(SCM_CREDS)]TJ T* [(#elif defined\(SCM_CREDENTIALS\))-1200(/* Linux interface */)]TJ T* [(#define CREDSTRUCT)-3600(ucred)]TJ T* [(#define SCM_CREDTYPE)-2400(SCM_CREDENTIALS)]TJ T* (#else)Tj 0 -1.189 TD (#error passing credentials is unsupported!)Tj 0 -1.189 TD (#endif)Tj 0 -1.783 TD (/* size of control buffer to send/recv one file descriptor */)Tj 0 -1.189 TD [(#define RIGHTSLEN)-1800(CMSG_LEN\(sizeof\(int\)\))]TJ 0 -1.189 TD [(#define CREDSLEN)-2400(CMSG_LEN\(sizeof\(struct CREDSTRUCT\)\))]TJ 0 -1.189 TD [(#define CONTROLLEN)-1200(\(RIGHTSLEN + CREDSLEN\))]TJ 0 -1.783 TD [(static struct cmsghdr)-1800(*cmptr = NULL;)-1200(/* malloc\325ed first time */)]TJ 0 -1.783 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (ass a file descriptor to another process.)Tj -1.8 -1.189 Td [(*)-600(If)-600(fd<0, then -fd is sent back instead as the error status.)]TJ 0 -1.189 TD (*/)Tj -0.6 -1.189 Td (int)Tj 0 -1.189 TD (send_fd\(int fd, int fd_to_send\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(struct CREDSTRUCT)-1800(*credp;)]TJ T* [(struct cmsghdr)-3600(*cmp;)]TJ T* [(struct iovec)-4800(iov[1];)]TJ T* [(struct msghdr)-4200(msg;)]TJ T* (char )Tj 12 0 Td [(buf[2];)-600(/* send_fd/recv_ufd 2-byte protocol */)]TJ -12 -1.783 Td (iov[0].iov_base = buf;)Tj T* [(iov[0].iov_len )-600(=)-600(2;)]TJ T* [(msg.msg_iov )-2400(=)-600(iov;)]TJ T* [(msg.msg_iovlen )-600(=)-600(1;)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47347 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1.4)]TJ 35.273 0 Td [(Files )-250(and )-250(Dir)18(ectories)]TJ /T1_1 1 Tf 11.56 0 Td (7)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(the )-126(comments )-126(in)]TJ /T1_2 1 Tf 7.956 0 Td (italics)Tj /T1_0 1 Tf 0.6263 Tc (.T)Tj 0 Tc 3.896 0 Td [(he )-126(dollar )-126(sign )-126(that )-126(pr)17(ecedes )-126(our )-126(input )-126(is )-126(the )-126(pr)18(ompt )-126(that )-126(is)]TJ -11.852 -1.2 Td (printed by the shell.)Tj -0.092 Tc 9.348 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll always show the shell pr)18(ompt as a dollar sign.)]TJ -8.935 -1.2 Td [(Note )-91(that )-91(the )-91(dir)18(ectory )-91(listing )-91(is )-91(not )-91(in )-91(alphabetical )-91(or)14(der)]TJ 0.5914 Tc 25.897 0 Td (.T)Tj 0 Tc 1.454 0 Td (he)Tj /TT0 1 Tf 1.402 0 Td (ls)Tj /T1_0 1 Tf 1.541 0 Td [(command )-91(sorts)]TJ -32.095 -1.2 Td (the names befor)Tj 0.25 Tc 7.043 0 Td (ep)Tj 0 Tc 1.33 0 Td (rinting them.)Tj -6.573 -1.2 Td (Ther)Tj 0.25 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(m)]TJ 0 Tc 1.989 0 Td (any details to consider in this 20)Tj 14.2 0.09 Td (-)Tj 0.333 -0.09 Td [(line pr)18(ogram.)]TJ 0.883 Tc -21.602 -1.8 Td (\245F)Tj 0 Tc 2.045 0 Td [(irst, )-119(we )-119(include )-119(a )-119(header )-119(of )-119(our )-119(own:)]TJ /TT0 1 Tf 17.437 0 Td (apue.h)Tj /T1_0 1 Tf 0.6196 Tc (.W)Tj 0.3696 Tc 5.378 0 Td (ei)Tj 0 Tc 1.14 0 Td [(nclude )-120(this )-120(header )-120(in )-120(almost)]TJ -24.51 -1.2 Td [(every )-28(pr)18(ogram )-28(in )-28(this )-28(text.)-528(This )-28(header )-28(includes )-28(some )-28(standar)]TJ 0.2781 Tc 27.811 0 Td (ds)Tj 0 Tc 1.313 0 Td [(ystem )-28(headers )-28(and)]TJ -29.124 -1.2 Td [(de\336nes )-201(numer)18(ous )-201(constants )-201(and )-201(function )-201(pr)18(ototypes )-201(that )-201(we )-201(use )-201(thr)18(oughout )-201(the)]TJ 0 -1.2 TD (examples in the text.)Tj 0.25 Tc 9.58 0 Td (Al)Tj 0 Tc 1.319 0 Td (isting of this header is in Appendix B.)Tj 0.883 Tc -12.388 -1.84 Td (\245N)Tj 0 Tc 2.32 0 Td [(ext, )-20(we )-20(include )-20(a )-20(system )-20(header)73(,)]TJ /TT0 1 Tf 14.621 0 Td (dirent.h)Tj /T1_0 1 Tf [(,)-270(to)-270(pick )-20(up )-20(the )-20(function )-20(pr)18(ototypes )-20(for)]TJ /TT0 1 Tf -15.452 -1.2 Td (opendir)Tj /T1_0 1 Tf 4.555 0 Td (and)Tj /TT0 1 Tf 2.048 0 Td (readdir)Tj /T1_0 1 Tf [(,)-355(in)-355(addition )-105(to )-105(the )-105(de\336nition )-105(of )-105(the)]TJ /TT0 1 Tf 20.76 0 Td (dirent)Tj /T1_0 1 Tf 3.955 0 Td [(str)8(uctur)18(e. )-355(On)]TJ -31.319 -1.2 Td [(some )-11(systems, )-11(the )-11(de\336nitions )-11(ar)]TJ 0.2607 Tc 14.142 0 Td (es)Tj 0 Tc 1.164 0 Td [(plit )-11(into )-11(multiple )-11(header )-11(\336les.)-511(For )-11(example, )-11(in )-11(the)]TJ -15.306 -1.2 Td [(Ubuntu )-96(12.04 )-96(Linux )-96(distribution,)]TJ /TT0 1 Tf 15.173 0 Td (/usr/include/dirent.h)Tj /T1_0 1 Tf 12.946 0 Td [(declar)18(es )-96(the )-96(function)]TJ -28.119 -1.2 Td [(pr)18(ototypes )-13(and )-13(includes)]TJ /TT0 1 Tf 10.989 0 Td (bits/dirent.h)Tj /T1_0 1 Tf 0.2629 Tc (,w)Tj 0 Tc 9.147 0 Td [(hich )-13(de\336nes )-13(the)]TJ /TT0 1 Tf 7.255 0 Td (dirent)Tj /T1_0 1 Tf 3.863 0 Td [(str)8(uctur)]TJ 0.2628 Tc 3.49 0 Td (e\()Tj 0 Tc 1.075 0 Td (and)Tj -35.818 -1.2 Td [(is actually stor)18(ed in)]TJ /TT0 1 Tf 8.862 0 Td (/usr/include/x86_64-linux-gnu/bits)Tj /T1_0 1 Tf (\).)Tj 0.883 Tc -10.351 -1.84 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-340(declaration )-340(of )-340(the)]TJ /TT0 1 Tf 10.651 0 Td (main)Tj /T1_0 1 Tf 2.99 0 Td [(function )-340(uses )-340(the )-340(style )-340(supported )-340(by )-340(the )-340(ISO )-340(C)]TJ -14.254 -1.2 Td [(standar)18(d. )-250(\(W)92(e\325ll have mor)18(e)-250(to)-250(say about the ISO C standar)18(d)-250(in)-250(the next chapter)74(.\))]TJ 0.883 Tc -1.489 -1.84 Td (\245W)Tj 0.2508 Tc 2.397 0 Td (et)Tj 0 Tc 1.056 0 Td [(ake )-1(an )-1(ar)18(gument )-1(fr)18(om )-1(the )-1(command )-1(line,)]TJ /TT0 1 Tf 18.547 0 Td (argv[1])Tj /T1_0 1 Tf [(,)-251(as)-251(the )-1(name )-1(of )-1(the )-1(dir)19(ectory)]TJ -20.51 -1.2 Td [(to )-174(list.)-673(In )-174(Chapter )-174(7, )-174(we\325ll )-174(look )-174(at )-174(how )-174(the)]TJ /TT0 1 Tf 20.489 0 Td (main)Tj /T1_0 1 Tf 2.824 0 Td [(function )-174(is )-174(called )-174(and )-174(how )-174(the)]TJ -23.312 -1.2 Td (command)Tj 4.449 0.09 Td (-)Tj 0.333 -0.09 Td [(line ar)18(guments and envir)18(onment variables ar)]TJ 0.25 Tc 19.883 0 Td (ea)Tj 0 Tc 1.229 0 Td [(ccessible to the pr)18(ogram.)]TJ 0.883 Tc -27.383 -1.84 Td (\245B)Tj 0 Tc 2.1 0 Td [(ecause )-257(the )-257(actual )-257(format )-257(of )-257(dir)18(ectory )-257(entries )-257(varies )-257(fr)20(om )-257(one )-257(UNIX )-257(system )-257(to)]TJ -0.611 -1.2 Td [(another)74(,)-262(we)-262(use )-12(the )-12(functions)]TJ /TT0 1 Tf 13.232 0 Td (opendir)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.712 0 Td (readdir)Tj /T1_0 1 Tf 0.2618 Tc (,a)Tj 0 Tc 5.212 0 Td (nd)Tj /TT0 1 Tf 1.455 0 Td (closedir)Tj /T1_0 1 Tf 5.062 0 Td [(to )-12(manipulate )-12(the)]TJ -29.672 -1.2 Td [(dir)18(ectory)111(.)]TJ 0.883 Tc -1.489 -1.84 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.335 0 Td (opendir)Tj /T1_0 1 Tf 4.474 0 Td [(function )-24(r)18(eturns )-24(a )-24(pointer )-24(to )-24(a)]TJ /TT0 1 Tf 13.629 0 Td (DIR)Tj /T1_0 1 Tf 2.074 0 Td [(str)8(uctur)18(e, )-24(and )-24(we )-24(pass )-24(this )-24(pointer)]TJ -22.124 -1.2 Td [(to )-104(the)]TJ /TT0 1 Tf 2.967 0 Td (readdir)Tj /T1_0 1 Tf 4.554 0 Td [(function. )-354(W)]TJ 0.3543 Tc 5.469 0 Td (ed)Tj 0 Tc 1.444 0 Td [(on\325t )-104(car)]TJ 0.3543 Tc 3.407 0 Td (ew)Tj 0 Tc 1.667 0 Td [(hat\325s )-104(in )-104(the)]TJ /TT0 1 Tf 5.433 0 Td (DIR)Tj /T1_0 1 Tf 2.154 0 Td [(str)8(uctur)18(e. )-354(W)]TJ 0.3543 Tc 5.731 0 Td (et)Tj 0 Tc 1.159 0 Td [(hen )-104(call)]TJ /TT0 1 Tf -33.988 -1.2 Td (readdir)Tj /T1_0 1 Tf 4.572 0 Td [(in )-122(a )-122(loop, )-122(to )-122(r)18(ead )-122(each )-122(dir)18(ectory )-122(entry)]TJ 0.6224 Tc 17.31 0 Td (.T)Tj 0 Tc 1.485 0 Td (he)Tj /TT0 1 Tf 1.433 0 Td (readdir)Tj /T1_0 1 Tf 4.572 0 Td [(function )-122(r)18(eturns )-122(a)]TJ -29.373 -1.2 Td [(pointer )-8(to )-8(a)]TJ /TT0 1 Tf 5.367 0 Td (dirent)Tj /T1_0 1 Tf 3.858 0 Td [(str)8(uctur)]TJ 0.2583 Tc 3.49 0 Td (eo)Tj -0.074 Tc 1.283 0 Td [(r, )-156(w)]TJ 0 Tc 1.663 0 Td [(hen )-8(it\325s )-8(\336nished )-8(with )-8(the )-8(dir)17(ectory)]TJ 0.2583 Tc 15.162 0 Td (,an)Tj 0 Tc 1.849 0 Td [(ull )-8(pointer)74(.)]TJ -32.672 -1.2 Td [(All )-326(we )-326(examine )-326(in )-326(the)]TJ /TT0 1 Tf 11.542 0 Td (dirent)Tj /T1_0 1 Tf 4.176 0 Td [(str)8(uctur)18(e)-576(is)-576(the )-326(name )-326(of )-326(each )-326(dir)18(ectory )-326(entry)]TJ -15.718 -1.2 Td (\()Tj /TT0 1 Tf (d_name)Tj /T1_0 1 Tf [(\). )-386(Using)-386(this )-136(name, )-136(we )-136(could )-136(then )-136(call )-136(the)]TJ /TT0 1 Tf 23.879 0 Td (stat)Tj /T1_0 1 Tf 2.786 0 Td [(function )-136(\(Section )-136(4.2\) )-136(to)]TJ -26.665 -1.2 Td (determine all the attributes of the \336le.)Tj 0.883 Tc -1.489 -1.84 Td (\245W)Tj 0.259 Tc 2.397 0 Td (ec)Tj 0 Tc 1.182 0 Td [(all )-9(two )-9(functions )-9(of )-9(our )-9(own )-9(to )-9(handle )-9(the )-9(err)18(ors:)]TJ /TT0 1 Tf 22.064 0 Td (err_sys)Tj /T1_0 1 Tf 4.459 0 Td (and)Tj /TT0 1 Tf 1.952 0 Td (err_quit)Tj /T1_0 1 Tf 0.509 Tc (.W)Tj 0 Tc 6.467 0 Td (e)Tj -37.032 -1.2 Td [(can )-61(see )-61(fr)18(om )-61(the )-61(pr)18(eceding )-61(output )-61(that )-61(the)]TJ /TT0 1 Tf 19.468 0 Td (err_sys)Tj /T1_0 1 Tf 4.511 0 Td [(function )-61(prints )-61(an )-61(informative)]TJ -23.979 -1.2 Td [(message )-181(describing )-181(what )-181(type )-181(of )-181(err)18(or )-181(was )-181(encounter)18(ed )-181(\(\324)37(\324Permission )-181(denied\325)]TJ 0.4315 Tc 35.861 0 Td (\325o)Tj 0 Tc 1.256 0 Td (r)Tj -0.037 Tc -37.116 -1.2 Td (\324\324)Tj 0 Tc 0.519 0 Td [(Not )-443(a )-443(dir)17(ectory\325)37(\325\). )-693(These)-694(two )-443(err)18(or )-443(functions )-443(ar)]TJ 0.6936 Tc 23.917 0 Td (es)Tj 0 Tc 1.597 0 Td [(hown )-444(and )-444(described )-444(in)]TJ -26.033 -1.2 Td (Appendix B.)Tj -0.092 Tc 6.07 0 Td [(We )-184(a)]TJ 0 Tc 2.137 0 Td (lso talk mor)Tj 0.25 Tc 5.24 0 Td (ea)Tj 0 Tc 1.229 0 Td [(bout err)18(or handling in Section 1.7.)]TJ 0.883 Tc -16.165 -1.84 Td (\245W)Tj 0 Tc 2.489 0 Td [(hen )-110(the )-110(pr)18(ogram )-110(is )-110(done, )-110(it )-110(calls )-110(the )-110(function)]TJ /TT0 1 Tf 20.975 0 Td (exit)Tj /T1_0 1 Tf 2.76 0 Td [(with )-110(an )-110(ar)18(gument )-110(of )-110(0.)-611(The)]TJ -24.736 -1.2 Td (function)Tj /TT0 1 Tf 4.049 0 Td (exit)Tj /T1_0 1 Tf 2.742 0 Td [(terminates )-92(a )-92(pr)18(ogram. )-342(By)-342(convention, )-92(an )-92(ar)18(gument )-92(of )-92(0 )-92(means )-92(OK,)]TJ -6.791 -1.2 Td [(and )-4(an )-4(ar)18(gument )-4(between )-4(1 )-4(and )-4(255 )-4(means )-4(that )-4(an )-4(err)21(or )-4(occurr)18(ed. )-254(In)-253(Section )-4(8.5, )-4(we)]TJ T* [(show )-77(how )-77(any )-77(pr)17(ogram, )-78(such )-78(as )-78(a )-78(shell )-78(or )-78(a )-78(pr)18(ogram )-78(that )-78(we )-78(write, )-78(can )-78(obtain )-78(the)]TJ /TT0 1 Tf T* (exit)Tj /T1_0 1 Tf 2.65 0 Td [(status of a pr)18(ogram that it executes.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1502.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47348 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 34.357 0 Td [(Chapter )-250(7)-750(Solutions)]TJ /T1_1 1 Tf 11.476 0 Td (919)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 177.2094 670.2598 Tm (printf\("pw_passwd = %s\\n", ptr->pw_passwd == NULL ||)Tj 1.2 -1.189 Td [(ptr->pw_passwd[0] == 0 ?)-1200("\(null\)" : ptr->pw_passwd\);)]TJ -1.2 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1556.25 6334.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1596.25 6334.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 215.8361 617.3249 Tm (Figure C.6)Tj /T1_0 1 Tf 5.417 0 Td (Print encrypted passwor)Tj 0.25 Tc 10.877 0 Td (du)Tj 0 Tc 1.464 0 Td [(nder Fr)18(eeBSD and Mac OS X)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 586.9286 Tm (6.5)Tj /T1_0 1 Tf 2.602 0 Td [(The )-63(pr)18(ogram )-63(shown )-63(in )-63(Figur)]TJ 0.3128 Tc 13.007 0 Td (eC)Tj 0 Tc 1.501 0 Td [(.7 )-63(prints )-63(the )-63(date )-63(in )-63(a )-63(format )-63(similar )-63(to )-63(the)]TJ /TT0 1 Tf 19.49 0 Td (date)Tj /T1_0 1 Tf -33.998 -1.2 Td (command.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1556.25 5678.25 cm 0 0 m 50 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1596.25 5678.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 155.592 558.1975 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.259 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(time_t )-3000(caltime;)]TJ 0 -1.189 TD [(struct tm)-1800(*tm;)]TJ 0 -1.189 TD [(char )-4200(line[MAXLINE];)]TJ 0 -2.259 TD (if \(\(caltime = time\(NULL\)\) == -1\))Tj 2.4 -1.189 Td (err_sys\("time error"\);)Tj -2.4 -1.189 Td (if \(\(tm = localtime\(&caltime\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("localtime error"\);)Tj -2.4 -1.189 Td (if \(strftime\(line, MAXLINE, "%a %b %d %X %Z %Y\\n", tm\) == 0\))Tj 2.4 -1.189 Td (err_sys\("strftime error"\);)Tj -2.4 -1.189 Td (fputs\(line, stdout\);)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1556.25 3630.25 cm 0 0 m 50 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1596.25 3630.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 221.7208 346.9537 Tm (Figure C.7)Tj /T1_0 1 Tf 5.417 0 Td (Print the time and date in a format similar to)Tj /TT0 1 Tf 19.976 0 Td (date)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 9.9976 0 0 9.9976 155.5827 318.1606 Tm [(Running this pr)18(ogram gives us)]TJ /TT0 1 Tf 8.9978 0 0 8.9978 173.5783 301.4646 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /T1_2 1 Tf 19.6 0 Td [(author )213(\325)]TJ 0.25 Tc 2.926 0 Td (sd)Tj 0 Tc 1.139 0 Td (efault is US/Eastern)Tj /TT0 1 Tf -24.865 -1.189 Td (Wed Jul 25 22:58:32 EDT 2012)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (TZ=US/Mountain ./a.out)Tj /T1_2 1 Tf 19.6 0 Td (U.S. Mountain time zone)Tj /TT0 1 Tf -20.8 -1.189 Td (Wed Jul 25 20:58:32 MDT 2012)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (TZ=Japan ./a.out)Tj /T1_2 1 Tf 19.6 0 Td (Japan)Tj /TT0 1 Tf -20.8 -1.189 Td (Thu Jul 26 11:58:32 JST 2012)Tj /TT2 1 Tf 9.9976 0 0 9.9976 93.5778 210.7864 Tm [(Chapter )-278(7)]TJ /T1_1 1 Tf 3.6 -2.8 Td (7.1)Tj /T1_0 1 Tf 2.602 0 Td [(It )-104(appears )-104(that )-104(the )-104(r)18(eturn )-104(value )-104(fr)15(om)]TJ /TT0 1 Tf 17.105 0 Td (printf)Tj /T1_0 1 Tf 3.954 0 Td [(\(the )-104(number )-104(of )-104(characters )-104(output\))]TJ -21.059 -1.2 Td [(becomes )-56(the )-56(r)18(eturn )-56(value )-56(of)]TJ /TT0 1 Tf 12.803 0 Td (main)Tj /T1_0 1 Tf 0.5557 Tc (.T)Tj 0.3057 Tc 3.727 0 Td (ov)Tj 0 Tc 1.417 0 Td [(erify )-56(this )-56(theory)]TJ 0.3057 Tc 7.061 0 Td (,c)Tj 0 Tc 1 0 Td [(hange )-56(the )-56(length )-56(of )-56(the)]TJ -26.007 -1.2 Td [(string )-82(printed )-82(and )-82(see )-82(if )-82(the )-82(new )-82(length )-82(matches )-82(the )-82(r)19(eturn )-82(value.)-582(Note )-82(that )-82(not)]TJ 0 -1.2 TD [(all )-4(systems )-4(exhibit )-4(this )-4(pr)18(operty)]TJ 0.5041 Tc 14.045 0 Td (.A)Tj 0 Tc 1.532 0 Td [(lso )-4(note )-4(that )-4(if )-4(you )-4(enable )-4(the )-4(ISO )-4(C )-4(extensions)]TJ -15.578 -1.2 Td (in)Tj /TT0 1 Tf 1.123 0 Td (gcc)Tj /T1_0 1 Tf 0.25 Tc (,t)Tj 0 Tc 2.626 0 Td [(hen the r)18(eturn value is always 0, as r)18(equir)18(ed by the standar)18(d.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47349 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(6.10)]TJ -0.055 Tc 32.431 0 Td (Ti)Tj 0 Tc 0.849 0 Td [(me )-250(and )-250(Date )-250(Routines)]TJ /T1_1 1 Tf 12.553 0 Td (195)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (The)Tj /TT0 1 Tf 1.985 0 Td (strptime)Tj /T1_0 1 Tf 5.111 0 Td [(function )-61(is )-61(the )-61(inverse )-61(of)]TJ /TT0 1 Tf 11.46 0 Td (strftime)Tj /T1_0 1 Tf 0.5613 Tc (.I)Tj 0.3113 Tc 5.948 0 Td (tt)Tj 0 Tc 0.963 0 Td [(akes )-61(a )-61(string )-61(and )-61(converts)]TJ -27.268 -1.2 Td [(it into a br)18(oken-down time.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5915 637.8617 Tm (#include )Tj 0 -1.902 TD (char *strptime\(const char *restrict)Tj /T1_2 1 Tf 21.6 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.097 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf (,)Tj -27.697 -1.189 Td (struct tm *restrict)Tj /T1_2 1 Tf 12 0 Td (tmptr)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -15.131 -1.902 Td (Returns: pointer to one character past last character parsed,)Tj /TT0 1 Tf 26.458 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td (otherwise)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5884.25 cm 0 0 m 0 585 l 3900 585 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 572.4913 Tm (The)Tj /T1_2 1 Tf 1.924 0 Td (format)Tj /T1_0 1 Tf 2.916 0 Td [(ar)18(gument describes the format of the string in the buf)18(fer pointed to by the)]TJ /T1_2 1 Tf 32.862 0 Td (buf)Tj /T1_0 1 Tf -37.703 -1.2 Td [(ar)18(gument. )-522(The)-522(format )-272(speci\336cation )-272(is )-272(similar)]TJ 0.5222 Tc 21.323 0 Td (,a)Tj 0 Tc 1.272 0 Td [(lthough )-272(it )-272(dif)18(fers )-272(slightly )-272(fr)17(om )-272(the)]TJ -22.595 -1.2 Td [(speci\336cation )-117(for )-117(the)]TJ /TT0 1 Tf 9.294 0 Td (strftime)Tj /T1_0 1 Tf 5.167 0 Td [(function. )-367(The)-367(conversion )-117(speci\336ers )-117(for )-117(the)]TJ /TT0 1 Tf 19.739 0 Td (strptime)Tj /T1_0 1 Tf -34.2 -1.2 Td (function ar)Tj 0.25 Tc 4.834 0 Td (es)Tj 0 Tc 1.153 0 Td (ummarized in Figur)Tj 0.25 Tc 8.901 0 Td (e6)Tj 0 Tc 1.229 0 Td (.12.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2161.25 5225.25 cm 0 0 m 2170 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 220.0604 514.4674 Tm (Format )Tj 12.839 0 Td (Description)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2161.25 5105.25 cm 0 0 m 2170 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2161.25 5085.25 cm 0 0 m 2170 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 228.0693 500.4399 Tm (%a)Tj /T1_0 1 Tf 3.703 0 Td [(abbr)18(eviated or full weekday name)]TJ /TT0 1 Tf -3.703 -1.25 Td (%A)Tj /T1_0 1 Tf 3.703 0 Td (same as)Tj /TT0 1 Tf 3.71 0 Td (%a)Tj -7.413 -1.25 Td (%b)Tj /T1_0 1 Tf 3.703 0 Td [(abbr)18(eviated or full month name)]TJ /TT0 1 Tf -3.703 -1.25 Td (%B)Tj /T1_0 1 Tf 3.703 0 Td (same as)Tj /TT0 1 Tf 3.71 0 Td (%b)Tj -7.413 -1.25 Td (%c)Tj /T1_0 1 Tf 3.703 0 Td (date and time)Tj /TT0 1 Tf -3.703 -1.25 Td (%C)Tj /T1_0 1 Tf 3.703 0 Td (all but the last two digits of the year)Tj /TT0 1 Tf -3.703 -1.25 Td (%d)Tj /T1_0 1 Tf 3.703 0 Td (day of the month: [01)Tj 9.518 0.09 Td (\320)Tj 0.583 -0.09 Td (31])Tj /TT0 1 Tf -13.805 -1.25 Td (%D)Tj /T1_0 1 Tf 3.703 0 Td (date)Tj 2.166 0.04 Td ([)Tj 0.333 -0.04 Td (MM/DD/YY)Tj 5.986 0.04 Td (])Tj /TT0 1 Tf -12.188 -1.29 Td (%e)Tj /T1_0 1 Tf 3.703 0 Td (same as)Tj /TT0 1 Tf 3.71 0 Td (%d)Tj -7.413 -1.25 Td (%h)Tj /T1_0 1 Tf 3.703 0 Td (same as)Tj /TT0 1 Tf 3.71 0 Td (%b)Tj -7.413 -1.25 Td (%H)Tj /T1_0 1 Tf 3.703 0 Td (hour of the day \(24-hour format\): [00)Tj 16.333 0.09 Td (\320)Tj 0.583 -0.09 Td (23])Tj /TT0 1 Tf -20.619 -1.25 Td (%I)Tj /T1_0 1 Tf 3.703 0 Td (hour of the day \(12-hour format\): [01)Tj 16.333 0.09 Td (\320)Tj 0.583 -0.09 Td (12])Tj /TT0 1 Tf -20.619 -1.25 Td (%j)Tj /T1_0 1 Tf 3.703 0 Td (day of the year: [001)Tj 9.029 0.09 Td (\320)Tj 0.583 -0.09 Td (366])Tj /TT0 1 Tf -13.316 -1.25 Td (%m)Tj /T1_0 1 Tf 3.703 0 Td (month: [01)Tj 4.835 0.09 Td (\320)Tj 0.583 -0.09 Td (12])Tj /TT0 1 Tf -9.121 -1.25 Td (%M)Tj /T1_0 1 Tf 3.703 0 Td (minute: [00)Tj 5.08 0.09 Td (\320)Tj 0.583 -0.09 Td (59])Tj /TT0 1 Tf -9.367 -1.25 Td (%n)Tj /T1_0 1 Tf 3.703 0 Td (any white space)Tj /TT0 1 Tf -3.703 -1.25 Td (%p)Tj /T1_0 1 Tf 3.703 0 Td (AM/PM)Tj /TT0 1 Tf -3.703 -1.25 Td (%r)Tj /T1_0 1 Tf 3.703 0 Td (locale\325s time \(12-hour format, AM/PM notation\))Tj /TT0 1 Tf -3.703 -1.25 Td (%R)Tj /T1_0 1 Tf 3.703 0 Td (time as)Tj /TT0 1 Tf 3.403 0 Td (%H:%M)Tj -7.106 -1.25 Td (%S)Tj /T1_0 1 Tf 3.703 0 Td (second: [00)Tj 5.002 0.09 Td (\320)Tj 0.583 -0.09 Td (60])Tj /TT0 1 Tf -9.288 -1.25 Td (%t)Tj /T1_0 1 Tf 3.703 0 Td (any white space)Tj /TT0 1 Tf -3.703 -1.25 Td (%T)Tj /T1_0 1 Tf 3.703 0 Td (time as)Tj /TT0 1 Tf 3.403 0 Td (%H:%M:%S)Tj -7.106 -1.25 Td (%U)Tj /T1_0 1 Tf 3.703 0 Td (Sunday week number: [00)Tj 11.636 0.09 Td (\320)Tj 0.583 -0.09 Td (53])Tj /TT0 1 Tf -15.923 -1.25 Td (%w)Tj /T1_0 1 Tf 3.703 0 Td (weekday: [0 = Sunday)Tj 0.25 Tc 9.72 0 Td (,0)Tj 0 Tc 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (6])Tj /TT0 1 Tf -15.089 -1.25 Td (%W)Tj /T1_0 1 Tf 3.703 0 Td (Monday week number: [00)Tj 12 0.09 Td (\320)Tj 0.583 -0.09 Td (53])Tj /TT0 1 Tf -16.286 -1.25 Td (%x)Tj /T1_0 1 Tf 3.703 0 Td (locale\325s date)Tj /TT0 1 Tf -3.703 -1.25 Td (%X)Tj /T1_0 1 Tf 3.703 0 Td (locale\325s time)Tj /TT0 1 Tf -3.703 -1.25 Td (%y)Tj /T1_0 1 Tf 3.703 0 Td (last two digits of year: [00)Tj 11.471 0.09 Td (\320)Tj 0.583 -0.09 Td (99])Tj /TT0 1 Tf -15.758 -1.25 Td (%Y)Tj /T1_0 1 Tf 3.703 0 Td (year)Tj /TT0 1 Tf -3.703 -1.25 Td (%%)Tj /T1_0 1 Tf 3.703 0 Td [(translates to a per)18(cent sign)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2161.25 2065.25 cm 0 0 m 2170 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2517.25 2065.25 cm 0 0 m 0 3160 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4331.25 2065.25 cm 0 0 m 0 3160 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2161.25 2065.25 cm 0 0 m 0 3160 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 237.4088 188.5034 Tm (Figure 6.12)Tj /T1_0 1 Tf 5.695 0 Td (Conversion speci\336ers for)Tj /TT0 1 Tf 11.285 0 Td (strptime)Tj /T1_0 1 Tf -0.092 Tc 9.997 0 0 9.997 147.556 164.5106 Tm [(We )-210(m)]TJ 0 Tc 2.546 0 Td [(entioned )-26(that )-26(the )-26(thr)17(ee )-26(functions )-26(in )-26(Figur)]TJ 0.2762 Tc 18.304 0 Td (e6)Tj 0 Tc 1.255 0 Td [(.9 )-26(with )-26(dashed )-26(lines )-26(wer)]TJ 0.2762 Tc 10.852 0 Td (ea)Tj -0.018 Tc 1.255 0 Td (ff)Tj 0 Tc 0.648 0 Td (ected)Tj -36.661 -1.2 Td [(by )-79(the)]TJ /TT0 1 Tf 3.154 0 Td (TZ)Tj /T1_0 1 Tf 1.529 0 Td [(envir)18(onment )-79(variable:)]TJ /TT0 1 Tf 10.174 0 Td (localtime)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 5.979 0 Td (mktime)Tj /T1_0 1 Tf 0.3292 Tc (,a)Tj 0 Tc 4.679 0 Td (nd)Tj /TT0 1 Tf 1.522 0 Td (strftime)Tj /T1_0 1 Tf 0.5792 Tc (.I)Tj 0.3292 Tc 5.966 0 Td (fd)Tj 0 Tc 1.273 0 Td [(e\336ned, )-79(the)]TJ -34.278 -1.2 Td [(value )-24(of )-24(this )-24(envir)19(onment )-24(variable )-24(is )-24(used )-24(by )-24(these )-24(functions )-24(instead )-24(of )-24(the )-24(default )-24(time)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47350 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (190)Tj /T1_1 1 Tf 3.5 0 Td [(System )-250(Data )-250(Files )-250(and )-250(Information)]TJ 39.241 0 Td [(Chapter )-250(6)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(When )-292(the )-292(clock )-292(ID )-292(is )-292(set )-292(to)]TJ /TT0 1 Tf 14.031 0 Td (CLOCK_REALTIME)Tj /T1_1 1 Tf 0.5418 Tc (,t)Tj 0 Tc 9.518 0 Td (he)Tj /TT0 1 Tf 1.603 0 Td (clock_gettime)Tj /T1_1 1 Tf 8.342 0 Td (function)Tj -35.293 -1.2 Td [(pr)18(ovides )-100(similar )-100(functionality )-100(to )-100(the)]TJ /TT0 1 Tf 16.651 0 Td (time)Tj /T1_1 1 Tf 2.75 0 Td [(function, )-100(except )-100(with)]TJ /TT0 1 Tf 9.886 0 Td (clock_gettime)Tj /T1_1 1 Tf 0.3503 Tc (,w)Tj 0 Tc 9.234 0 Td (e)Tj -38.521 -1.2 Td [(might be able to get a higher)18(-r)18(esolution time value if the system supports it.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-383(c)]TJ 0 Tc 2.28 0 Td [(an )-199(use )-199(the)]TJ /TT0 1 Tf 5.322 0 Td (clock_getres)Tj /T1_1 1 Tf 7.649 0 Td [(function )-199(to )-199(determine )-199(the )-199(r)18(esolution )-199(of )-199(a )-199(given)]TJ -17.05 -1.2 Td (system clock.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5914 603.0638 Tm (#include )Tj 0 -1.783 TD (int clock_getres\(clockid_t)Tj /T1_2 1 Tf 16.2 0 Td (clock_id)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 5.058 0 Td (truct timespec *)Tj /T1_2 1 Tf (tsp)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 5.593 -1.783 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5665.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 551.7338 Tm (The)Tj /TT0 1 Tf 2.013 0 Td (clock_getres)Tj /T1_1 1 Tf 7.539 0 Td [(function )-89(initializes )-89(the)]TJ /TT0 1 Tf 10.378 0 Td (timespec)Tj /T1_1 1 Tf 5.139 0 Td [(str)8(uctur)]TJ 0.3393 Tc 3.49 0 Td (ep)Tj 0 Tc 1.419 0 Td [(ointed )-89(to )-89(by )-89(the)]TJ /T1_2 1 Tf -31.779 -1.2 Td (tsp)Tj /T1_1 1 Tf 1.526 0 Td [(ar)18(gument )-54(to )-54(the )-54(r)18(esolution )-54(of )-54(the )-54(clock )-54(corr)18(esponding )-54(to )-54(the)]TJ /T1_2 1 Tf 27.306 0 Td (clock_id)Tj /T1_1 1 Tf 3.562 0 Td [(ar)18(gument. )-304(For)]TJ -32.393 -1.2 Td [(example, )-45(if )-45(the )-45(r)18(esolution )-45(is )-45(1 )-45(millisecond, )-45(then )-45(the)]TJ /TT0 1 Tf 23.085 0 Td (tv_sec)Tj /T1_1 1 Tf 3.895 0 Td [(\336eld )-45(will )-45(contain )-45(0 )-45(and )-45(the)]TJ /TT0 1 Tf -26.98 -1.2 Td (tv_nsec)Tj /T1_1 1 Tf 4.45 0 Td (\336eld will contain the value 1000000.)Tj -0.092 Tc -2.65 -1.2 Td [(To )-184(s)]TJ 0 Tc 1.741 0 Td (et the time for a particular clock, we can call the)Tj /TT0 1 Tf 21.324 0 Td (clock_settime)Tj /T1_1 1 Tf 8.05 0 Td (function.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 485.8417 Tm (#include )Tj T* (int clock_settime\(clockid_t)Tj /T1_2 1 Tf 16.8 0 Td (clock_id)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 5.058 0 Td (onst struct timespec *)Tj /T1_2 1 Tf (tsp)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 4.993 -1.783 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4493.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9982 0 0 9.9982 129.5767 434.5218 Tm [(We )-356(n)]TJ 0 Tc 2.391 0 Td [(eed )-172(the )-172(appr)18(opriate )-172(privileges )-172(to )-172(change )-172(a )-172(clock\325s )-172(time.)-673(Some )-172(clocks, )-172(however)74(,)]TJ -2.391 -1.2 Td (can\325t be modi\336ed.)Tj 7.9986 0 0 7.9986 183.5669 402.5275 Tm [(Historically)111(,)-329(on)-329(implementations )-79(derived )-79(fr)18(om )-79(System )-79(V)]TJ 0.3291 Tc 25.269 0 Td (,t)Tj 0 Tc 0.905 0 Td (he)Tj /TT0 1 Tf 1.39 0 Td (stime)Tj /T1_1 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.662 -0.04 Td [(function )-79(was )-79(called )-79(to)]TJ -32.059 -1.25 Td [(set the system time, wher)18(eas BSD-derived systems used)]TJ /TT0 1 Tf 24.919 0 Td (settimeofday)Tj /T1_1 1 Tf 7.2 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.333 -0.04 Td (.)Tj -0.111 Tc 9.9982 0 0 9.9982 147.5738 371.5331 Tm (Ve)Tj 0 Tc 1.09 0 Td [(rsion )-357(4 )-357(of )-357(the )-357(Single )-357(UNIX )-357(Speci\336cation )-357(speci\336es )-357(that )-357(the)]TJ /TT0 1 Tf 28.91 0 Td (gettimeofday)Tj /T1_1 1 Tf -31.8 -1.2 Td [(function )-29(is )-29(now )-29(obsolescent.)-528(However)]TJ 0.2788 Tc 17.149 0 Td (,al)Tj 0 Tc 1.599 0 Td [(ot )-29(of )-29(pr)18(ograms )-29(still )-29(use )-29(it, )-29(because )-29(it )-29(pr)20(ovides)]TJ -18.747 -1.2 Td [(gr)18(eater r)18(esolution \(up to a micr)18(osecond\) than the)]TJ /TT0 1 Tf 21.823 0 Td (time)Tj /T1_1 1 Tf 2.65 0 Td (function.)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.574 329.6407 Tm (#include )Tj T* (int gettimeofday\(struct timeval *restrict)Tj /T1_2 1 Tf 25.2 0 Td (tp)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 2.633 0 Td (oid *restrict)Tj /T1_2 1 Tf 8.4 0 Td (tzp)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -4.732 -1.783 Td (Returns: 0 always)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2931.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9976 0 0 9.9976 129.5689 278.3332 Tm [(The )-66(only )-66(legal )-66(value )-66(for)]TJ /T1_2 1 Tf 11.06 0 Td (tzp)Tj /T1_1 1 Tf 1.593 0 Td (is)Tj /TT0 1 Tf 1.031 0 Td (NULL)Tj /T1_1 1 Tf 0.3163 Tc (;o)Tj 0 Tc 3.512 0 Td [(ther )-66(values )-66(r)18(esult )-66(in )-66(unspeci\336ed )-66(behavior)]TJ 0.5662 Tc 18.554 0 Td (.S)Tj 0 Tc 1.341 0 Td (ome)Tj -37.092 -1.2 Td [(platforms )-159(support )-159(the )-159(speci\336cation )-159(of )-159(a )-159(time )-159(zone )-159(thr)18(ough )-159(the )-159(use )-159(of)]TJ /T1_2 1 Tf 32.427 0 Td (tzp)Tj /T1_1 1 Tf 0.4086 Tc (,b)Tj 0 Tc 2.489 0 Td [(ut )-159(this )-159(is)]TJ -34.916 -1.2 Td (implementation speci\336c and not de\336ned by the Single UNIX Speci\336\ cation.)Tj 1.8 -1.2 Td (The)Tj /TT0 1 Tf 1.925 0 Td (gettimeofday)Tj /T1_1 1 Tf 7.451 0 Td [(function )-1(stor)18(es )-1(the )-1(curr)18(ent )-1(time )-1(as )-1(measur)20(ed )-1(fr)18(om )-1(the )-1(Epoch )-1(in)]TJ -11.175 -1.2 Td [(the )-88(memory )-88(pointed )-88(to )-88(by)]TJ /T1_2 1 Tf 12.234 0 Td (tp)Tj /T1_1 1 Tf 0.5876 Tc (.T)Tj 0 Tc 2.284 0 Td [(his )-88(time )-88(is )-88(r)19(epr)18(esented )-88(as )-88(a)]TJ /TT0 1 Tf 12.655 0 Td (timeval)Tj /T1_1 1 Tf 4.538 0 Td [(str)8(uctur)18(e, )-88(which)]TJ -31.71 -1.2 Td [(stor)18(es seconds and micr)18(oseconds.)]TJ 1.8 -1.2 Td [(Once )-33(we )-33(have )-33(the )-33(integer )-33(value )-33(that )-33(counts )-33(the )-33(number )-33(of )-33(seconds )-33(since )-33(the )-33(Epoch,)]TJ -1.8 -1.2 Td [(we )-38(normally )-38(call )-38(a )-38(function )-38(to )-38(convert )-38(it )-38(to )-38(a )-38(br)14(oken-down )-38(time )-38(str)7(uctur)18(e, )-38(and )-38(then )-38(call)]TJ 0 -1.2 TD [(another )-170(function )-170(to )-170(generate )-170(a )-170(human-r)18(eadable )-170(time )-170(and )-170(date.)-674(Figur)]TJ 0.4204 Tc 31.813 0 Td (e6)Tj 0 Tc 1.399 0 Td [(.9 )-170(shows )-170(the)]TJ -0.018 Tc -33.212 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(lationships between the various time functions.)-501(\(The thr)18(ee functions in this \336gur)]TJ 0.2502 Tc 35.681 0 Td (et)Tj 0 Tc 1.055 0 Td (hat)Tj -37.592 -1.2 Td (ar)Tj 0.3465 Tc 0.877 0 Td (es)Tj 0 Tc 1.249 0 Td [(hown )-96(with )-96(dashed )-96(lines)-84(\321)]TJ /TT0 1 Tf 12.057 0 Td (localtime)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 5.996 0 Td (mktime)Tj /T1_1 1 Tf 0.3464 Tc (,a)Tj 0 Tc 4.696 0 Td (nd)Tj /TT0 1 Tf 1.539 0 Td (strftime)Tj /T1_1 1 Tf 0.0833 Tc 4.883 0 Td (\321a)Tj -0.018 Tc 1.583 0 Td [(re )-132(a)]TJ 0 Tc 1.702 0 Td [(ll )-96(af)18(fected)]TJ -34.585 -1.2 Td [(by )-166(the)]TJ /TT0 1 Tf 3.329 0 Td (TZ)Tj /T1_1 1 Tf 1.616 0 Td [(envir)18(onment )-166(variable, )-166(which )-166(we )-166(describe )-166(later )-166(in )-166(this )-166(section.)-666(The )-166(dotted)]TJ -4.945 -1.2 Td [(lines show how the calendar time is obtained fr)18(om time-r)18(elated str)8(uctur)18(es.\))]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47351 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(19.6)]TJ 32.654 0 Td [(Using )-250(the)]TJ /TT0 1 Tf 5.018 0 Td (pty)Tj /T1_0 1 Tf 2.3 0 Td [(Pr)18(ogram)]TJ /T1_1 1 Tf 5.861 0 Td (737)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(In )-320(this )-320(example, )-320(we )-320(assume )-320(that )-320(the)]TJ /TT0 1 Tf 18.278 0 Td (SHELL)Tj /T1_0 1 Tf 3.57 0 Td [(variable )-320(is )-320(the )-320(Korn )-320(shell )-320(\(pr)18(obably)]TJ /TT0 1 Tf -21.848 -1.2 Td (/bin/ksh)Tj /T1_0 1 Tf [(\). )-335(As)-335(we )-85(mentioned )-85(earlier)74(,)]TJ /TT0 1 Tf 17.607 0 Td (script)Tj /T1_0 1 Tf 3.935 0 Td [(copies )-85(only )-85(what )-85(is )-85(output )-85(by )-85(the )-85(new)]TJ -21.542 -1.2 Td [(shell )-51(\(and )-51(any )-51(pr)18(ocesses )-51(that )-51(it )-51(invokes\), )-51(but )-51(since )-51(the )-51(line )-51(discipline )-51(module )-51(above )-51(the)]TJ 0 -1.2 TD [(PTY )-214(slave )-214(normally )-214(has )-214(echo )-214(enabled, )-214(most )-214(of )-214(what )-214(we )-214(type )-214(is )-214(also )-214(written )-214(to )-214(the)]TJ /TT0 1 Tf T* (typescript)Tj /T1_0 1 Tf 6.25 0 Td (\336le.)Tj /TT1 1 Tf -9.85 -3.36 Td [(Running Copr)20(ocesses)]TJ /T1_0 1 Tf 3.6 -2.4 Td [(In )-2(Figur)]TJ 0.2516 Tc 3.554 0 Td (e1)Tj 0 Tc 1.231 0 Td [(5.18, )-2(the )-2(copr)18(ocess )-2(couldn\325t )-2(use )-2(the )-2(standar)]TJ 0.2516 Tc 19.076 0 Td (dI)Tj 0 Tc 1.2 0 Td [(/O )-1(functions, )-1(because )-1(standar)17(d)]TJ -25.059 -1.2 Td [(input )-1(and )-1(standar)]TJ 0.2512 Tc 7.918 0 Td (do)Tj 0 Tc 1.408 0 Td [(utput )-1(do )-1(not )-1(r)17(efer )-1(to )-1(a )-1(terminal, )-1(so )-1(the )-1(standar)]TJ 0.2513 Tc 20.44 0 Td (dI)Tj 0 Tc 1.199 0 Td [(/O )-1(functions )-1(tr)17(eat)]TJ -30.966 -1.2 Td [(them as fully buf)18(fer)18(ed. )-250(If)-250(we r)8(un the copr)18(ocess under)]TJ /TT0 1 Tf 23.915 0 Td (pty)Tj /T1_0 1 Tf 2.05 0 Td [(by r)18(eplacing the line)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5902 523.7385 Tm (if \(execl\("./add2", "add2", \(char *\)0\) < 0\))Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5913 506.8094 Tm (with)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5902 491.1806 Tm (if \(execl\("./pty", "pty", "-e", "add2", \(char *\)0\) < 0\))Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5913 474.2515 Tm [(the pr)18(ogram now works, even if the copr)18(ocess uses standar)]TJ 0.25 Tc 26.113 0 Td (dI)Tj 0 Tc 1.198 0 Td (/O.)Tj -25.511 -1.2 Td (Figur)Tj 0.2747 Tc 2.383 0 Td (e1)Tj 0 Tc 1.254 0 Td [(9.15 )-25(shows )-25(the )-25(arrangement )-25(of )-25(pr)18(ocesses )-25(when )-25(we )-25(r)8(un )-25(the )-25(copr)18(ocess )-25(with )-25(a)]TJ -5.437 -1.2 Td [(pseudo )-70(terminal )-70(as )-70(its )-70(input )-70(and )-70(output.)-571(It )-70(is )-70(an )-70(expansion )-70(of )-70(Figur)]TJ 0.3203 Tc 30.663 0 Td (e1)Tj 0 Tc 1.299 0 Td [(9.6, )-70(showing )-70(all)]TJ -31.962 -1.2 Td [(the )-272(pr)18(ocess )-272(connections )-272(and )-272(data )-272(\337ow)]TJ 0.772 Tc 18.064 0 Td (.T)Tj 0 Tc 1.635 0 Td [(he )-272(box )-272(labeled )-272(\324)37(\324driving )-272(pr)18(ogram\325)37(\325)-522(is)-522(the)]TJ -19.699 -1.2 Td [(pr)18(ogram fr)18(om Figur)]TJ 0.25 Tc 8.88 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.18, with the)Tj /TT0 1 Tf 6.17 0 Td (execl)Tj /T1_0 1 Tf 3.25 0 Td [(changed as described pr)18(eviously)111(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1650.12 3622.8 959.758 252 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 183.418 373.0752 Tm [(driving pr)18(ogram)]TJ ET q 0.99988 0 0 0.99988 0 0 cm q 1 0 0 1 289.788 374.88 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099988 0 0 0.099988 0 0 cm 1 j 1 J q 1 0 0 1 2897.8799 3748.8 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2610.25 3749.25 cm 0 0 m 216 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 265.7402 378.0519 Tm (fork)Tj 0 -1.25 TD (exec)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2897.88 3622.8 432 252 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 304.115 378.0293 Tm (pty)Tj /T1_0 1 Tf -0.532 -1.25 Td [(par)18(ent)]TJ ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 361.788 374.88 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 3617.8799 3748.8 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3330.25 3749.25 cm 0 0 m 216 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 337.6867 368.0096 Tm (fork)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 3617.88 3622.8 432 252 re S Q BT /TT0 1 Tf 7.9971 0 0 7.9971 376.0526 377.9839 Tm (pty)Tj /T1_0 1 Tf -0.209 -1.25 Td (child)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 4337.88 3622.8 432 252 re S Q BT /TT0 1 Tf 7.9966 0 0 7.9966 445.6008 377.9612 Tm (add2)Tj /T1_0 1 Tf -1.275 -1.25 Td [(\(copr)18(ocess\))]TJ ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 1650.12 3010.8 576 252 re S Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 178.7382 316.7679 Tm (terminal)Tj -1.225 -1.25 Td (line discipline)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 1650.12 2542.8 576 252 re S Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 177.728 269.9742 Tm (terminal)Tj -0.929 -1.25 Td (device driver)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 4265.88 3010.8 576 252 re S Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 440.1358 316.7299 Tm (terminal)Tj -1.225 -1.25 Td (line discipline)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 4265.88 2542.8 576 252 re S Q BT /T1_0 1 Tf 7.9947 0 0 7.9947 437.5271 264.9451 Tm (PTY slave)Tj ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J 3185.88 2542.8 576 252 re S Q BT /T1_0 1 Tf 7.9942 0 0 7.9942 326.5888 264.9292 Tm (PTY master)Tj ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 433.788 374.88 cm 0 0 m -6.48 3.6 l -4.032 6.192 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 4337.8799 3748.8 cm 0 0 m -64.8 36 l -40.32 61.92 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3329.8799 3784.8 cm 0 0 m 144 117 l 240 195 360 234 504 234 c 648 234 767.16 189.84 861.48 101.52 c 1002.96 -30.96 l S Q Q BT /TT0 1 Tf 7.9938 0 0 7.9938 361.9056 403.4052 Tm (fork)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 2.9 0 Td (exec)Tj ET q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 184.236 279.48 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 1842.36 2794.8 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1842.25 3011.25 cm 0 0 m 0 -144 l S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 203.388 301.08 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 2033.88 3010.8 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2034.25 2939.25 cm 0 0 m 0 -144 l S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 445.812 279.48 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 4458.1201 2794.8 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4458.25 3011.25 cm 0 0 m 0 -144 l S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 465.036 301.08 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 4650.3599 3010.8 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4650.25 2939.25 cm 0 0 m 0 -144 l S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 184.236 326.28 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 1842.36 3262.8 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1842.25 3623.25 cm 0 0 m 0 -288 l S Q Q q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 203.388 362.28 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 2033.88 3622.8 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2034.25 3551.25 cm 0 0 m 0 -288 l S Q Q q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 448.188 326.28 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 4481.8799 3262.8 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4482.25 3623.25 cm 0 0 m 0 -288 l S Q Q q 0.9988007 0 0 0.9988007 0 0 cm q 1 0 0 1 462.588 362.28 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998801 0 0 0.0998801 0 0 cm 1 j 1 J q 1 0 0 1 4625.8799 3622.8 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4626.25 3551.25 cm 0 0 m 0 -288 l S Q Q q 0.9987408 0 0 0.9987408 0 0 cm q 1 0 0 1 337.812 279.48 cm 0 0 m 1.368 7.272 l 4.608 5.76 l f Q Q q 0.0998741 0 0 0.0998741 0 0 cm 1 j 1 J q 1 0 0 1 3378.1201 2794.8 cm 0 0 m 13.68 72.72 l 46.08 57.6 l h S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3762.25 3623.25 cm 0 0 m -354 -763 l S Q Q q 0.9986808 0 0 0.9986808 0 0 cm q 1 0 0 1 318.588 362.28 cm 0 0 m 4.68 -5.76 l 1.44 -7.272 l f Q Q q 0.0998681 0 0 0.0998681 0 0 cm 1 j 1 J q 1 0 0 1 3185.8799 3622.8 cm 0 0 m 46.8 -57.6 l 14.4 -72.72 l h S Q Q q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3216.25 3557.25 cm 0 0 m 353 -762 l S Q Q q 0.9986209 0 0 0.9986209 0 0 cm q 1 0 0 1 445.812 239.88 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998621 0 0 0.0998621 0 0 cm 1 j 1 J q 1 0 0 1 4458.1201 2398.8 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4458.25 2543.25 cm 0 0 m 0 -72 l S Q Q q 0.998561 0 0 0.998561 0 0 cm q 1 0 0 1 357.036 254.28 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998561 0 0 0.0998561 0 0 cm 1 j 1 J q 1 0 0 1 3570.3601 2542.8 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3570.25 2471.25 cm 0 0 m 0 -72 l S Q Q q 0.9985011 0 0 0.9985011 0 0 cm q 1 0 0 1 357.036 239.88 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0998501 0 0 0.0998501 0 0 cm 1 j 1 J q 1 0 0 1 3570.3601 2398.8 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.0998501 0 0 0.0998501 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4458.25 2399.25 cm 0 0 m -816 0 l S Q Q q 0.9984412 0 0 0.9984412 0 0 cm q 1 0 0 1 465.036 254.28 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998441 0 0 0.0998441 0 0 cm 1 j 1 J q 1 0 0 1 4650.3599 2542.8 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4650.25 2471.25 cm 0 0 m 0 -144 l S Q Q q 0.9983813 0 0 0.9983813 0 0 cm q 1 0 0 1 337.812 232.68 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998381 0 0 0.0998381 0 0 cm 1 j 1 J q 1 0 0 1 3378.1201 2326.8 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998381 0 0 0.0998381 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3378.25 2543.25 cm 0 0 m 0 -144 l S Q Q q 0.9983214 0 0 0.9983214 0 0 cm q 1 0 0 1 465.036 232.68 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998321 0 0 0.0998321 0 0 cm 1 j 1 J q 1 0 0 1 4650.3599 2326.8 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3378.25 2327.25 cm 0 0 m 1200 0 l S Q Q q 0.9982615 0 0 0.9982615 0 0 cm q 1 0 0 1 304.188 340.68 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998261 0 0 0.0998261 0 0 cm 1 j 1 J q 1 0 0 1 3041.8799 3406.8 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3042.25 3623.25 cm 0 0 m 0 -144 l S Q Q q 0.9982016 0 0 0.9982016 0 0 cm q 1 0 0 1 241.836 362.28 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998202 0 0 0.0998202 0 0 cm 1 j 1 J q 1 0 0 1 2418.3601 3622.8 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998202 0 0 0.0998202 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2418.25 3551.25 cm 0 0 m 0 -144 l S Q Q q 0.9981417 0 0 0.9981417 0 0 cm q 1 0 0 1 241.836 340.68 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0998142 0 0 0.0998142 0 0 cm 1 j 1 J q 1 0 0 1 2418.3601 3406.8 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.0998142 0 0 0.0998142 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3042.25 3407.25 cm 0 0 m -553 0 l S Q Q BT /T1_0 1 Tf 7.9847 0 0 7.9847 262.6193 343.2603 Tm (pipe2)Tj ET q 0.9980818 0 0 0.9980818 0 0 cm q 1 0 0 1 390.588 362.28 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998082 0 0 0.0998082 0 0 cm 1 j 1 J q 1 0 0 1 3905.8799 3622.8 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998082 0 0 0.0998082 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3906.25 3551.25 cm 0 0 m 0 -216 l S Q Q q 0.9980219 0 0 0.9980219 0 0 cm q 1 0 0 1 222.612 333.48 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998022 0 0 0.0998022 0 0 cm 1 j 1 J q 1 0 0 1 2226.1201 3334.8 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2226.25 3623.25 cm 0 0 m 0 -216 l S Q Q q 0.997962 0 0 0.997962 0 0 cm q 1 0 0 1 390.588 333.48 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0997962 0 0 0.0997962 0 0 cm 1 j 1 J q 1 0 0 1 3905.8799 3334.8 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0997962 0 0 0.0997962 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2226.25 3335.25 cm 0 0 m 1608 0 l S Q Q BT /T1_0 1 Tf 7.9832 0 0 7.9832 262.572 326.0346 Tm (pipe1)Tj ET q 0.9979021 0 0 0.9979021 0 0 cm q 1 0 0 1 193.812 254.28 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0997902 0 0 0.0997902 0 0 cm 1 j 1 J q 1 0 0 1 1938.12 2542.8 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9978423 0 0 0.9978423 0 0 cm q 1 0 0 1 193.812 232.68 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0997842 0 0 0.0997842 0 0 cm 1 j 1 J q 1 0 0 1 1938.12 2326.8 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1938.25 2471.25 cm 0 0 m 0 -72 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2154.1201 2200.8 cm 0 0 m 0 -69.59 -96.71 -126 -216 -126 c -335.29 -126 -432 -69.59 -432 0 c -432 69.59 -335.29 126 -216 126 c -96.71 126 0 69.59 0 0 c h S Q Q BT /T1_0 1 Tf 7.9823 0 0 7.9823 178.5073 222.8248 Tm (user at a)Tj -0.01 -1.25 Td (terminal)Tj /T1_1 1 Tf 0.12 -3.43 Td (Figure 19.15)Tj /T1_0 1 Tf 6.195 0 Td [(Running a copr)18(ocess with a pseudo terminal as its input and output)]TJ 9.9778 0 0 9.9778 147.2729 159.1265 Tm [(This )-23(example )-23(shows )-23(the )-23(need )-23(for )-23(the)]TJ /TT0 1 Tf 16.582 0 Td (-e)Tj /T1_0 1 Tf 1.474 0 Td [(\(no )-23(echo\) )-23(option )-23(for )-23(the)]TJ /TT0 1 Tf 10.766 0 Td (pty)Tj /T1_0 1 Tf 2.074 0 Td [(pr)18(ogram. )-273(The)]TJ /TT0 1 Tf -32.694 -1.2 Td (pty)Tj /T1_0 1 Tf 2.072 0 Td [(pr)18(ogram )-22(is )-22(not )-22(r)8(unning )-22(interactively)]TJ 0.2719 Tc 16.112 0 Td (,b)Tj 0 Tc 1.075 0 Td [(ecause )-22(its )-22(standar)]TJ 0.2719 Tc 7.834 0 Td (di)Tj 0 Tc 1.174 0 Td [(nput )-22(is )-22(not )-22(connected )-22(to)]TJ 0.4039 Tc -28.266 -1.2 Td (at)Tj 0 Tc 1.23 0 Td [(erminal. )-404(In)-404(Figur)]TJ 0.4039 Tc 8.031 0 Td (e1)Tj 0 Tc 1.383 0 Td [(9.1)55(1, )-154(the)]TJ /TT0 1 Tf 4.14 0 Td (interactive)Tj /T1_0 1 Tf 7.004 0 Td [(\337ag )-154(defaults )-154(to )-154(false, )-154(since )-154(the )-154(call )-154(to)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47352 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(19.2)]TJ 39.439 0 Td (Overview)Tj /T1_1 1 Tf 6.394 0 Td (719)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2670 6386 1152 252 re S Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 293.2104 649.401 Tm (window manager)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2670 5846 1152 252 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 292.4849 595.3685 Tm (terminal emulator)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 4182 5846 432 252 re S Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 431.4543 595.3328 Tm (shell)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 3341.76 4766 576 252 re S Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 342.3298 487.323 Tm (PTY master)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 4110 5234 576 252 re S Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 424.6846 539.0782 Tm (terminal)Tj -1.225 -1.25 Td (line discipline)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 4110 4766 576 252 re S Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 422.076 487.2645 Tm (PTY slave)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 1878 5846 432 252 re S Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 201.0475 595.19 Tm (shell)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 2574.24 4766 576 252 re S Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 265.5325 487.2061 Tm (PTY master)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 1806 5234 576 252 re S Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 194.307 538.9489 Tm (terminal)Tj -1.225 -1.25 Td (line discipline)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 1806 4766 576 252 re S Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 191.7129 487.1476 Tm (PTY slave)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 4478.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 4552.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 4627.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 4701.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 4775.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 4850.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 4924.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 4998.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 5073.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 5147.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 5222.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 5296.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 5371.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 5445.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 5520.25 cm 0 0 m 0 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 5594.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1733.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1804.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1876.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1946.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2017.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2089.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2160.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2231.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2303.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2374.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2445.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2516.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2587.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2658.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2730.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2801.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2872.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2943.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3014.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3085.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3156.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3228.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3299.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3370.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3442.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3512.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3583.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3655.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3726.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3797.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3869.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3940.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4011.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4082.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4153.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4224.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4296.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4367.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4438.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4509.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4580.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4651.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4722.25 5630.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4794.25 5630.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 5556.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 5481.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 5407.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 5332.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 5258.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 5183.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 5109.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 5034.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 4960.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 4886.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 4811.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 4737.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 4663.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 4588.25 cm 0 0 m 0 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 4514.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4758.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4687.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4616.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4545.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4474.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4403.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4332.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4260.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4189.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4118.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4047.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3976.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3905.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3833.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3762.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3691.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3619.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3548.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3478.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3406.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3335.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3264.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3192.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3121.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3050.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2979.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2908.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2837.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2766.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2694.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2623.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2552.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2481.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2410.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2339.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2267.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2196.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2125.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2053.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1982.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1912.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1840.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1769.25 4478.25 cm 0 0 m -36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1698.25 4478.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9947 0 0 7.9947 484.68 503.3077 Tm (kernel)Tj -7.874 13.675 Td (window 2)Tj -28.8 0 Td (window 1)Tj ET q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 418.2 597.2 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 4182 5972 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 5972.25 cm 0 0 m 288 0 l S Q Q BT /TT0 1 Tf 7.9942 0 0 7.9942 390.3189 600.0078 Tm (fork)Tj 0 -1.25 TD (exec)Tj ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 430.224 501.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 4302.2402 5018 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4302.25 5234.25 cm 0 0 m 0 -144 l S Q Q q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 449.376 523.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 4493.7598 5234 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4494.25 5162.25 cm 0 0 m 0 -144 l S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 353.4 501.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 3534 5018 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 5090.25 cm 0 0 m 0 756 l S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 372.624 584.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 3726.24 5846 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3726.25 5018.25 cm 0 0 m 0 756 l S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 432.6 548.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 4326 5486 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4326.25 5846.25 cm 0 0 m 0 -288 l S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 447 584.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 4470 5846 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.25 5774.25 cm 0 0 m 0 -288 l S Q Q BT /T1_2 1 Tf 7.9914 0 0 7.9914 408.119 576.7767 Tm (stdout)Tj 0.166 -1.25 Td (stderr)Tj 5.089 1.25 Td (stdin)Tj ET q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 430.224 462.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 4302.2402 4622 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4302.25 4766.25 cm 0 0 m 0 -72 l S Q Q q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 372.624 476.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 3726.24 4766 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3726.25 4694.25 cm 0 0 m 0 -72 l S Q Q q 0.9988007 0 0 0.9988007 0 0 cm q 1 0 0 1 372.624 462.2 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0998801 0 0 0.0998801 0 0 cm 1 j 1 J q 1 0 0 1 3726.24 4622 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4302.25 4622.25 cm 0 0 m -504 0 l S Q Q q 0.9987408 0 0 0.9987408 0 0 cm q 1 0 0 1 449.376 476.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998741 0 0 0.0998741 0 0 cm 1 j 1 J q 1 0 0 1 4493.7598 4766 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4494.25 4694.25 cm 0 0 m 0 -144 l S Q Q q 0.9986808 0 0 0.9986808 0 0 cm q 1 0 0 1 353.4 455 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998681 0 0 0.0998681 0 0 cm 1 j 1 J q 1 0 0 1 3534 4550 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 4766.25 cm 0 0 m 0 -144 l S Q Q q 0.9986209 0 0 0.9986209 0 0 cm q 1 0 0 1 449.376 455 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998621 0 0 0.0998621 0 0 cm 1 j 1 J q 1 0 0 1 4493.7598 4550 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 4550.25 cm 0 0 m 888 0 l S Q Q q 0.998561 0 0 0.998561 0 0 cm q 1 0 0 1 231 597.2 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0998561 0 0 0.0998561 0 0 cm 1 j 1 J q 1 0 0 1 2310 5972 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 5972.25 cm 0 0 m -288 0 l S Q Q BT /TT0 1 Tf 7.988 0 0 7.988 239.0412 599.54 Tm (fork)Tj T* (exec)Tj ET q 0.9985011 0 0 0.9985011 0 0 cm q 1 0 0 1 199.824 501.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998501 0 0 0.0998501 0 0 cm 1 j 1 J q 1 0 0 1 1998.24 5018 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998501 0 0 0.0998501 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1998.25 5234.25 cm 0 0 m 0 -144 l S Q Q q 0.9984412 0 0 0.9984412 0 0 cm q 1 0 0 1 218.976 523.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998441 0 0 0.0998441 0 0 cm 1 j 1 J q 1 0 0 1 2189.76 5234 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2190.25 5162.25 cm 0 0 m 0 -144 l S Q Q q 0.9983813 0 0 0.9983813 0 0 cm q 1 0 0 1 276.576 501.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998381 0 0 0.0998381 0 0 cm 1 j 1 J q 1 0 0 1 2765.76 5018 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998381 0 0 0.0998381 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2766.25 5090.25 cm 0 0 m 0 756 l S Q Q q 0.9983214 0 0 0.9983214 0 0 cm q 1 0 0 1 295.8 584.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998321 0 0 0.0998321 0 0 cm 1 j 1 J q 1 0 0 1 2958 5846 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2958.25 5018.25 cm 0 0 m 0 756 l S Q Q q 0.9982615 0 0 0.9982615 0 0 cm q 1 0 0 1 202.2 548.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998261 0 0 0.0998261 0 0 cm 1 j 1 J q 1 0 0 1 2022 5486 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2022.25 5846.25 cm 0 0 m 0 -288 l S Q Q q 0.9982016 0 0 0.9982016 0 0 cm q 1 0 0 1 216.6 584.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998202 0 0 0.0998202 0 0 cm 1 j 1 J q 1 0 0 1 2166 5846 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998202 0 0 0.0998202 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2166.25 5774.25 cm 0 0 m 0 -288 l S Q Q BT /T1_2 1 Tf 7.9851 0 0 7.9851 177.8289 576.327 Tm (stdout)Tj 0.166 -1.25 Td (stderr)Tj 5.089 1.25 Td (stdin)Tj ET q 0.9981417 0 0 0.9981417 0 0 cm q 1 0 0 1 199.824 455 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998142 0 0 0.0998142 0 0 cm 1 j 1 J q 1 0 0 1 1998.24 4550 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998142 0 0 0.0998142 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1998.25 4766.25 cm 0 0 m 0 -144 l S Q Q q 0.9980818 0 0 0.9980818 0 0 cm q 1 0 0 1 295.8 476.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998082 0 0 0.0998082 0 0 cm 1 j 1 J q 1 0 0 1 2958 4766 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998082 0 0 0.0998082 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2958.25 4694.25 cm 0 0 m 0 -144 l S Q Q q 0.9980219 0 0 0.9980219 0 0 cm q 1 0 0 1 295.8 455 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998022 0 0 0.0998022 0 0 cm 1 j 1 J q 1 0 0 1 2958 4550 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1998.25 4550.25 cm 0 0 m 888 0 l S Q Q q 0.997962 0 0 0.997962 0 0 cm q 1 0 0 1 218.976 476.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0997962 0 0 0.0997962 0 0 cm 1 j 1 J q 1 0 0 1 2189.76 4766 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0997962 0 0 0.0997962 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2190.25 4694.25 cm 0 0 m 0 -72 l S Q Q q 0.9979021 0 0 0.9979021 0 0 cm q 1 0 0 1 276.576 462.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0997902 0 0 0.0997902 0 0 cm 1 j 1 J q 1 0 0 1 2765.76 4622 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0997902 0 0 0.0997902 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2766.25 4766.25 cm 0 0 m 0 -72 l S Q Q q 0.9978423 0 0 0.9978423 0 0 cm q 1 0 0 1 218.976 462.2 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0997842 0 0 0.0997842 0 0 cm 1 j 1 J q 1 0 0 1 2189.76 4622 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2766.25 4622.25 cm 0 0 m -504 0 l S Q Q q 0.9977824 0 0 0.9977824 0 0 cm q 1 0 0 1 324.6 638.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0997782 0 0 0.0997782 0 0 cm 1 j 1 J q 1 0 0 1 3246 6386 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9977225 0 0 0.9977225 0 0 cm q 1 0 0 1 324.6 609.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0997723 0 0 0.0997723 0 0 cm 1 j 1 J q 1 0 0 1 3246 6098 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0997723 0 0 0.0997723 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 6314.25 cm 0 0 m 0 -144 l S Q Q BT /T1_1 1 Tf 7.9813 0 0 7.9813 214.2181 421.6122 Tm (Figure 19.4)Tj /T1_0 1 Tf 5.695 0 Td [(Arrangement of pr)18(ocesses for windowing system)]TJ 9.9766 0 0 9.9766 129.2973 392.8796 Tm [(pr)18(ocess )-44(gr)18(oup )-44(of )-44(the )-44(PTY )-44(slave.)-544(If )-44(the )-44(application )-44(needs )-44(to )-44(r)18(edraw )-44(the )-44(scr)18(een )-44(when )-44(the)]TJ 0 -1.2 TD [(window )-171(is )-171(r)18(esized, )-171(it )-171(can )-171(catch )-171(the)]TJ /TT0 1 Tf 16.595 0 Td (SIGWINCH)Tj /T1_0 1 Tf 5.221 0 Td [(signal, )-171(issue )-171(the)]TJ /TT0 1 Tf 7.764 0 Td [(TIOCGWINSZ )179(ioctl)]TJ /T1_0 1 Tf -29.579 -1.2 Td [(command to get the new scr)18(een dimensions, and r)18(edraw the scr)18(een.)]TJ /TT1 1 Tf -3.6 -3.24 Td (script)Tj /TT2 1 Tf 3.878 0 Td [(Pr)20(ogram)]TJ /T1_0 1 Tf -0.278 -2.4 Td (The)Tj /TT0 1 Tf 1.926 0 Td (script)Tj /T1_0 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.585 -0.04 Td [(pr)18(ogram )-2(that )-2(is )-2(supplied )-2(with )-2(most )-2(UNIX )-2(systems )-2(makes )-2(a )-2(copy )-2(in )-2(a )-2(\336le)]TJ -6.943 -1.2 Td [(of )-6(everything )-6(that )-6(is )-6(input )-6(and )-6(output )-6(during )-6(a )-6(terminal )-6(session.)-506(The )-6(pr)18(ogram )-6(does )-6(this)]TJ T* [(by )-354(placing )-354(itself )-354(between )-354(the )-354(terminal )-354(and )-354(a )-354(new )-354(invocation )-354(of )-354(our )-354(login )-354(shell.)]TJ T* (Figur)Tj 0.6378 Tc 2.383 0 Td (e1)Tj 0 Tc 1.617 0 Td [(9.5 )-388(details )-388(the )-388(interactions )-388(involved )-388(in )-388(the)]TJ /TT0 1 Tf 21.399 0 Td (script)Tj /T1_0 1 Tf 4.238 0 Td [(pr)18(ogram. )-638(Her)18(e, )-388(we)]TJ -29.636 -1.2 Td [(speci\336cally )-121(show )-121(that )-121(the)]TJ /TT0 1 Tf 11.917 0 Td (script)Tj /T1_0 1 Tf 3.971 0 Td [(pr)18(ogram )-121(is )-121(normally )-121(r)8(un )-121(fr)18(om )-121(a )-121(login )-121(shell, )-121(which)]TJ -15.888 -1.2 Td (then waits for)Tj /TT0 1 Tf 6.368 0 Td (script)Tj /T1_0 1 Tf 3.85 0 Td (to terminate.)Tj -8.418 -1.2 Td (While)Tj /TT0 1 Tf 2.985 0 Td (script)Tj /T1_0 1 Tf 3.942 0 Td [(is )-92(r)8(unning, )-92(everything )-92(output )-92(by )-92(the )-92(terminal )-92(line )-92(discipline )-92(above)]TJ -8.727 -1.2 Td [(the )-269(PTY )-269(slave )-269(is )-269(copied )-269(to )-269(the )-269(script )-269(\336le )-269(\(usually )-269(called)]TJ /TT0 1 Tf 27.262 0 Td (typescript)Tj /T1_0 1 Tf [(\). )-519(Since)-520(our)]TJ -27.262 -1.2 Td [(keystr)18(okes )-273(ar)]TJ 0.5232 Tc 6.123 0 Td (en)Tj 0 Tc 1.584 0 Td [(ormally )-273(echoed )-273(by )-273(that )-273(line )-273(discipline )-273(module, )-273(the )-273(script )-273(\336le )-273(also)]TJ -7.707 -1.2 Td [(contains )-25(our )-25(input.)-524(The )-25(script )-25(\336le )-25(won\325t )-25(contain )-25(any )-25(passwor)18(ds )-25(that )-25(we )-25(enter)]TJ 0.2748 Tc 34.419 0 Td (,h)Tj 0 Tc 1.107 0 Td [(owever)74(,)]TJ -35.526 -1.2 Td [(since passwor)18(ds ar)18(en\325t echoed.)]TJ 7.9813 0 0 7.9813 183.1715 170.9994 Tm [(While )-39(writing )-39(the )-39(\336rst )-39(edition )-39(of )-39(this )-39(book, )-39(Rich )-39(Stevens )-39(used )-39(the)]TJ /TT0 1 Tf 29.472 0 Td (script)Tj /T1_0 1 Tf 3.889 0 Td [(pr)18(ogram )-39(to )-39(captur)18(e)]TJ -33.362 -1.25 Td [(the )-261(output )-261(of )-261(the )-261(example )-261(pr)16(ograms. )-511(This)-512(avoided )-261(typographical )-261(err)18(ors )-261(that )-261(could )-261(have)]TJ 0 -1.25 Td [(occurr)18(ed )-205(if )-205(he )-205(had )-205(copied )-205(the )-205(pr)18(ogram )-205(output )-205(by )-205(hand.)-705(The )-205(drawback )-205(to )-205(using)]TJ /TT0 1 Tf 38.15 0 Td (script)Tj /T1_0 1 Tf (,)Tj -38.15 -1.25 Td [(however)74(,)-250(is)-250(having to deal with contr)18(ol characters that ar)]TJ 0.25 Tc 25.095 0 Td (ep)Tj -0.018 Tc 1.33 0 Td (re)Tj 0 Tc 0.856 0 Td (sent in the script \336le.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47353 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (708)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm (void)Tj 0 -1.189 TD [(tty_atexit\(void\) )-4200(/*)-600(can be set up by atexit\(tty_atexit\) */)]TJ T* ({)Tj 2.4 -1.189 Td (if \(ttysavefd >= 0\))Tj 2.4 -1.189 Td (tty_reset\(ttysavefd\);)Tj -4.8 -1.189 Td (})Tj 0 -2.14 TD (struct termios *)Tj 0 -1.189 TD [(tty_termios\(void\) )-3600(/*)-600(let caller see original tty state */)]TJ 0 -1.189 TD ({)Tj 2.4 -1.189 Td (return\(&save_termios\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5499.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 237.6035 533.8749 Tm (Figure 18.20)Tj /T1_1 1 Tf 6.195 0 Td [(Set terminal mode to cbr)18(eak or raw)]TJ 9.9988 0 0 9.9988 129.5846 497.8792 Tm [(Our de\336nition of cbr)18(eak mode is the following:)]TJ 0.883 Tc 1.8 -2.04 Td (\245N)Tj 0 Tc 2.32 0 Td [(oncanonical )-214(mode.)-714(As )-214(we )-214(mentioned )-214(at )-214(the )-214(beginning )-214(of )-214(this )-214(section, )-214(this)]TJ -0.831 -1.2 Td [(mode )-227(turns )-227(of)]TJ 0.4769 Tc 6.664 0 Td (fs)Tj 0 Tc 1.234 0 Td [(ome )-227(input )-227(character )-227(pr)18(ocessing. )-477(It)-477(does )-227(not )-227(turn )-227(of)]TJ 0.477 Tc 24.359 0 Td (fs)Tj 0 Tc 1.234 0 Td (ignal)Tj -33.491 -1.2 Td [(handling, )-257(so )-257(the )-257(user )-257(can )-257(always )-257(type )-257(one )-257(of )-257(the )-257(characters )-257(that )-257(triggers )-257(a)]TJ 0 -1.2 TD [(terminal-generated )-132(signal.)-632(Be )-132(awar)]TJ 0.3818 Tc 16.077 0 Td (et)Tj 0 Tc 1.187 0 Td [(hat )-132(the )-132(caller )-132(should )-132(catch )-132(these )-132(signals;)]TJ -17.264 -1.2 Td [(otherwise, )-110(ther)18(e\325s )-110(a )-110(chance )-110(that )-110(the )-110(signal )-110(will )-110(terminate )-110(the )-110(pr)17(ogram, )-110(and )-110(the)]TJ T* [(terminal will be left in cbr)18(eak mode.)]TJ 0 -1.68 TD [(As )-241(a )-241(general )-241(r)8(ule, )-241(whenever )-241(we )-241(write )-241(a )-241(pr)18(ogram )-241(that )-241(changes )-241(the )-241(terminal)]TJ 0 -1.2 TD [(mode, )-65(we )-65(should )-65(catch )-65(most )-65(signals.)-565(This )-65(allows )-65(us )-65(to )-65(r)17(eset )-65(the )-65(terminal )-65(mode)]TJ T* (befor)Tj 0.25 Tc 2.288 0 Td (et)Tj 0 Tc 1.055 0 Td (erminating.)Tj 0.883 Tc -4.832 -1.6 Td (\245E)Tj 0 Tc 2.1 0 Td [(cho of)18(f.)]TJ 0.883 Tc -2.1 -1.6 Td (\245O)Tj 0 Tc 2.275 0 Td [(ne )-4(byte )-4(at )-4(a )-4(time )-4(input.)]TJ -0.092 Tc 10.705 0 Td [(To )-188(d)]TJ 0.2536 Tc 1.932 0 Td (ot)Tj 0 Tc 1.126 0 Td [(his, )-4(we )-4(set )-4(MIN )-4(to )-4(1 )-4(and )-4(TIME )-4(to )-4(0.)-504(This )-4(is )-4(case)]TJ 0.25 Tc -14.548 -1.2 Td (Bf)Tj -0.018 Tc 1.194 0 Td (ro)Tj 0.25 Tc 0.923 0 Td (mF)Tj 0 Tc 1.689 0 Td (igur)Tj 0.25 Tc 1.827 0 Td (e1)Tj 0 Tc 1.229 0 Td [(8.19. )-250(A)]TJ /TT0 1 Tf 3.528 0 Td (read)Tj /T1_1 1 Tf 2.65 0 Td [(won\325t r)18(eturn until at least one byte is available.)]TJ -0.092 Tc -16.329 -2.04 Td [(We )-184(d)]TJ 0 Tc 2.248 0 Td (e\336ne raw mode as follows:)Tj 0.883 Tc -0.448 -2.04 Td (\245N)Tj 0 Tc 2.32 0 Td [(oncanonical )-371(mode.)]TJ -0.092 Tc 9.57 0 Td [(We )-555(a)]TJ 0 Tc 2.508 0 Td [(lso )-371(turn )-371(of)]TJ 0.6213 Tc 5.271 0 Td (fp)Tj -0.018 Tc 1.555 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cessing )-371(of )-371(the )-371(signal-generating)]TJ -20.658 -1.2 Td [(characters )-411(\()]TJ /TT0 1 Tf (ISIG)Tj /T1_1 1 Tf 0.6606 Tc (\)a)Tj 0 Tc 9.376 0 Td [(nd )-411(the )-411(extended )-411(input )-411(character )-411(pr)20(ocessing )-411(\()]TJ /TT0 1 Tf (IEXTEN)Tj /T1_1 1 Tf (\).)Tj -9.376 -1.2 Td [(Additionally)111(,)-250(we)-250(d)-1(isable a BREAK character fr)16(om generating a signal, by turning)]TJ 0 -1.2 Td [(of)18(f)]TJ /TT0 1 Tf 1.444 0 Td (BRKINT)Tj /T1_1 1 Tf (.)Tj 0.883 Tc -2.933 -1.48 Td (\245E)Tj 0 Tc 2.1 0 Td [(cho of)18(f.)]TJ 0.883 Tc -2.1 -1.6 Td (\245W)Tj 0.4814 Tc 2.397 0 Td (ed)Tj 0 Tc 1.571 0 Td [(isable )-231(the )-231(CR-to-NL )-231(mapping )-231(on )-231(input )-231(\()]TJ /TT0 1 Tf 19.048 0 Td (ICRNL)Tj /T1_1 1 Tf [(\), )-231(input )-231(parity )-231(detection)]TJ -21.528 -1.2 Td (\()Tj /TT0 1 Tf (INPCK)Tj /T1_1 1 Tf [(\), )-196(the )-196(stripping )-196(of )-196(the )-196(eighth )-196(bit )-196(on )-196(input )-196(\()]TJ /TT0 1 Tf 23.503 0 Td (ISTRIP)Tj /T1_1 1 Tf [(\), )-196(and )-196(output )-196(\337ow)]TJ -23.503 -1.2 Td [(contr)18(ol \()]TJ /TT0 1 Tf (IXON)Tj /T1_1 1 Tf (\).)Tj 0.883 Tc -1.489 -1.6 Td (\245E)Tj 0 Tc 2.1 0 Td (ight-bit characters \()Tj /TT0 1 Tf (CS8)Tj /T1_1 1 Tf (\), and parity checking is disabled \()Tj /TT0 1 Tf (PARENB)Tj /T1_1 1 Tf (\).)Tj 0.883 Tc -2.1 -1.6 Td (\245A)Tj 0 Tc 2.267 0 Td [(ll output pr)18(ocessing is disabled \()]TJ /TT0 1 Tf (OPOST)Tj /T1_1 1 Tf (\).)Tj 0.883 Tc -2.267 -1.6 Td (\245O)Tj 0 Tc 2.275 0 Td (ne byte at a time input \(MIN = 1, TIME = 0\).)Tj -4.075 -2.04 Td [(The pr)18(ogram in Figur)]TJ 0.25 Tc 9.538 0 Td (e1)Tj 0 Tc 1.229 0 Td [(8.21 tests raw and cbr)18(eak modes.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47354 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.1)]TJ 28.7243 Tc 5.388 0 Td (1N)Tj 0 Tc 30.055 0 Td [(oncanonical )-250(Mode)]TJ /T1_1 1 Tf 10.39 0 Td (709)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.783 TD (static void)Tj 0 -1.189 TD (sig_catch\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("signal caught\\n"\);)Tj T* (tty_reset\(STDIN_FILENO\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(i;)]TJ T* [(char )-1800(c;)]TJ 0 -1.783 TD [(if \(signal\(SIGINT, sig_catch\) == SIG_ERR\))-1800(/* catch signals */)]TJ 2.4 -1.189 Td (err_sys\("signal\(SIGINT\) error"\);)Tj -2.4 -1.189 Td (if \(signal\(SIGQUIT, sig_catch\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("signal\(SIGQUIT\) error"\);)Tj -2.4 -1.189 Td (if \(signal\(SIGTERM, sig_catch\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("signal\(SIGTERM\) error"\);)Tj -2.4 -1.783 Td (if \(tty_raw\(STDIN_FILENO\) < 0\))Tj 2.4 -1.189 Td (err_sys\("tty_raw error"\);)Tj -2.4 -1.189 Td (printf\("Enter raw mode characters, terminate with DELETE\\n"\);)Tj 0 -1.189 TD (while \(\(i = read\(STDIN_FILENO, &c, 1\)\) == 1\) {)Tj 2.4 -1.189 Td [(if \(\(c &= 255\) == 0177\))-3000(/* 0177 = ASCII DELETE */)]TJ 2.4 -1.189 Td (break;)Tj -2.4 -1.189 Td (printf\("%o\\n", c\);)Tj -2.4 -1.189 Td (})Tj T* (if \(tty_reset\(STDIN_FILENO\) < 0\))Tj 2.4 -1.189 Td (err_sys\("tty_reset error"\);)Tj -2.4 -1.189 Td (if \(i <= 0\))Tj 2.4 -1.189 Td (err_sys\("read error"\);)Tj -2.4 -1.189 Td (if \(tty_cbreak\(STDIN_FILENO\) < 0\))Tj 2.4 -1.189 Td (err_sys\("tty_cbreak error"\);)Tj -2.4 -1.189 Td (printf\("\\nEnter cbreak mode characters, terminate with SIGINT\\n"\);)Tj 0 -1.189 TD (while \(\(i = read\(STDIN_FILENO, &c, 1\)\) == 1\) {)Tj 2.4 -1.189 Td [(c)-600(&=)-600(255;)]TJ 0 -1.189 TD (printf\("%o\\n", c\);)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (if \(tty_reset\(STDIN_FILENO\) < 0\))Tj 2.4 -1.189 Td (err_sys\("tty_reset error"\);)Tj -2.4 -1.189 Td (if \(i <= 0\))Tj 2.4 -1.189 Td (err_sys\("read error"\);)Tj -2.4 -1.783 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1678.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 235.7077 151.8298 Tm (Figure 18.21)Tj /T1_0 1 Tf -0.092 Tc 6.195 0 Td (Te)Tj 0 Tc 1 0 Td [(st raw and cbr)18(eak terminal modes)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47355 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (706)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 172.7896 670.2598 Tm (/*)Tj 0.6 Tc 0.6 -1.189 Td (*O)Tj 0 Tc 1.8 0 Td [(nly some of the changes were made.)-1200(Restore the)]TJ 0.6 Tc -1.8 -1.189 Td (*o)Tj 0 Tc 1.8 0 Td (riginal settings.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (tcsetattr\(fd, TCSAFLUSH, &save_termios\);)Tj 0 -1.189 TD (errno = EINVAL;)Tj 0 -1.189 TD (return\(-1\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (ttystate = CBREAK;)Tj 0 -1.189 TD (ttysavefd = fd;)Tj T* (return\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (int)Tj 0 -1.189 TD [(tty_raw\(int fd\))-3000(/* put terminal into a raw mode */)]TJ T* ({)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td (err;)Tj -9.6 -1.189 Td [(struct termios)-1200(buf;)]TJ 0 -2.14 TD (if \(ttystate != RESET\) {)Tj 2.4 -1.189 Td (errno = EINVAL;)Tj 0 -1.189 TD (return\(-1\);)Tj -2.4 -1.189 Td (})Tj T* (if \(tcgetattr\(fd, &buf\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td (save_termios = buf; /* structure copy */)Tj 0 -2.14 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*E)Tj 0 Tc 1.8 0 Td (cho off, canonical mode off, extended input)Tj 0.6 Tc -1.8 -1.189 Td (*p)Tj 0 Tc 1.8 0 Td (rocessing off, signal chars off.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (buf.c_lflag &= \367\(ECHO | ICANON | IEXTEN | ISIG\);)Tj T* (/*)Tj 0.6 -1.189 Td [(*)-600(No)-600(SIGINT on BREAK, CR-to-NL off, input parity)]TJ 0.6 Tc 0 -1.189 TD (*c)Tj 0 Tc 1.8 0 Td (heck off, don\325t strip 8th bit on input, output)Tj 0.6 Tc -1.8 -1.189 Td (*f)Tj 0 Tc 1.8 0 Td (low control off.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (buf.c_iflag &= \367\(BRKINT | ICRNL | INPCK | ISTRIP | IXON\);)Tj 0 -2.14 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (lear size bits, parity checking off.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (buf.c_cflag &= \367\(CSIZE | PARENB\);)Tj T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*S)Tj 0 Tc 1.8 0 Td (et 8 bits/char.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (buf.c_cflag |= CS8;)Tj T* (/*)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47356 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(19.5)]TJ /TT0 1 Tf 37.672 0 Td (pty)Tj /T1_0 1 Tf 2.3 0 Td [(Pr)18(ogram)]TJ /T1_1 1 Tf 5.861 0 Td (731)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 0.6 Tc 8.9995 0 0 8.9995 151.1909 670.2598 Tm (}e)Tj 0 Tc 1.8 0 Td [(lse if \(pid == 0\) {)-3600(/* child */)]TJ 0.6 -1.189 Td (if \(noecho\))Tj 2.4 -1.189 Td [(set_noecho\(STDIN_FILENO\); )-1200(/*)-600(stdin is slave pty */)]TJ -2.4 -2.021 Td (if \(execvp\(argv[optind], &argv[optind]\) < 0\))Tj 2.4 -1.189 Td (err_sys\("can\325t execute: %s", argv[optind]\);)Tj -4.8 -1.189 Td (})Tj 0 -2.021 TD (if \(verbose\) {)Tj 2.4 -1.189 Td (fprintf\(stderr, "slave name = %s\\n", slave_name\);)Tj 0 -1.189 TD (if \(driver != NULL\))Tj 2.4 -1.189 Td (fprintf\(stderr, "driver = %s\\n", driver\);)Tj -4.8 -1.189 Td (})Tj 0 -2.021 TD (if \(interactive && driver == NULL\) {)Tj 2.4 -1.189 Td [(if \(tty_raw\(STDIN_FILENO\) < 0\))-1200(/* user\325s tty to raw mode */)]TJ 2.4 -1.189 Td (err_sys\("tty_raw error"\);)Tj -2.4 -1.189 Td [(if \(atexit\(tty_atexit\) < 0\))-3000(/* reset user\325s tty on exit */)]TJ 2.4 -1.189 Td (err_sys\("atexit error"\);)Tj -4.8 -1.189 Td (})Tj T* (if \(driver\))Tj 2.4 -1.189 Td [(do_driver\(driver\); )-600(/*)-600(changes our stdin/stdout */)]TJ -2.4 -2.021 Td [(loop\(fdm, ignoreeof\);)-1800(/* copies stdin -> ptym, ptym -> stdout */)]TJ T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj T* (static void)Tj 0 -1.189 TD [(set_noecho\(int fd\))-3600(/* turn off echo \(for slave pty\) */)]TJ T* ({)Tj 2.4 -1.189 Td [(struct termios)-1200(stermios;)]TJ 0 -2.021 TD (if \(tcgetattr\(fd, &stermios\) < 0\))Tj 2.4 -1.189 Td (err_sys\("tcgetattr error"\);)Tj -2.4 -2.021 Td (stermios.c_lflag &= \367\(ECHO | ECHOE | ECHOK | ECHONL\);)Tj T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*A)Tj 0 Tc 1.8 0 Td (lso turn off NL to CR/NL mapping on output.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (stermios.c_oflag &= \367\(ONLCR\);)Tj T* (if \(tcsetattr\(fd, TCSANOW, &stermios\) < 0\))Tj 2.4 -1.189 Td (err_sys\("tcsetattr error"\);)Tj -4.8 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2086.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 229.5405 192.5859 Tm [(Figure 19.1)37(1)]TJ /T1_0 1 Tf 6.158 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (main)Tj /T1_0 1 Tf 2.65 0 Td (function for the)Tj /TT0 1 Tf 7.118 0 Td (pty)Tj /T1_0 1 Tf 2.05 0 Td [(pr)18(ogram)]TJ 9.9988 0 0 9.9988 129.5848 168.5888 Tm [(In )-99(the )-99(next )-99(section, )-99(we\325ll )-99(look )-99(at )-99(the )-99(various )-99(command)]TJ 24.792 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-99(options )-99(when )-99(we )-99(examine)]TJ -25.125 -1.2 Td [(dif)18(fer)18(ent )-54(uses )-54(of )-54(the)]TJ /TT0 1 Tf 9.203 0 Td (pty)Tj /T1_0 1 Tf 2.104 0 Td [(pr)18(ogram. )-304(The)]TJ /TT0 1 Tf 6.639 0 Td (getopt)Tj /T1_0 1 Tf 3.904 0 Td [(function )-54(helps )-54(us )-54(parse )-54(command)]TJ 15.174 0.09 Td (-)Tj 0.333 -0.09 Td (line)Tj -37.357 -1.2 Td [(ar)18(guments )-15(in )-15(a )-15(consistent )-15(manner)]TJ 0.5154 Tc 14.936 0 Td (.T)Tj 0.2654 Tc 1.286 0 Td (oe)Tj 0 Tc 1.29 0 Td [(nfor)18(ce )-15(POSIX )-15(behavior )-15(on )-15(Linux )-15(systems, )-15(we )-15(set)]TJ -17.512 -1.2 Td (the \336rst character of the option string to a plus sign.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47357 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.5)]TJ 38.822 0 Td (Reentrancy)Tj /T1_1 1 Tf 7.011 0 Td (443)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(thr)18(ead-safe )-173(versions )-173(of )-173(these )-173(functions.)-673(The )-173(functions )-173(have )-173(the )-173(same )-173(names )-173(as )-173(their)]TJ 0 -1.2 TD [(non-thr)18(ead-safe )-93(r)18(elatives, )-93(but )-93(with )-93(an)]TJ /TT0 1 Tf 17.283 0 Td (_r)Tj /T1_0 1 Tf 1.543 0 Td [(appended )-93(at )-93(the )-93(end )-93(of )-93(the )-93(name, )-93(signifying)]TJ -18.826 -1.2 Td [(that )-225(these )-225(versions )-225(ar)]TJ 0.4749 Tc 10.032 0 Td (er)Tj 0 Tc 1.331 0 Td [(eentrant. )-475(Many)-475(functions )-225(ar)]TJ 0.4749 Tc 13.186 0 Td (en)Tj 0 Tc 1.536 0 Td [(ot )-225(thr)18(ead-safe, )-225(because )-225(they)]TJ -0.018 Tc -26.084 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-119(data )-119(stor)18(ed )-119(in )-119(a )-119(static )-119(memory )-119(buf)15(fer)]TJ 0.6195 Tc 19.223 0 Td (.T)Tj 0 Tc 1.482 0 Td [(hey )-119(ar)]TJ 0.3694 Tc 2.863 0 Td (em)Tj 0 Tc 1.731 0 Td [(ade )-119(thr)18(ead-safe )-119(by )-119(changing)]TJ -26.156 -1.2 Td [(their interfaces to r)18(equir)]TJ 0.25 Tc 10.635 0 Td (et)Tj 0 Tc 1.055 0 Td [(hat the caller pr)18(ovide its own buf)18(fer)74(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2642.25 5974.25 cm 0 0 m 1208 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 268.1678 589.3293 Tm [(getgrgid_r )-900(localtime_r)]TJ 0 -1.25 TD [(getgrnam_r )-900(readdir_r)]TJ T* [(getlogin_r )-900(strerror_r)]TJ T* [(getpwnam_r )-900(strtok_r)]TJ T* [(getpwuid_r )-900(ttyname_r)]TJ T* (gmtime_r)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2642.25 5354.25 cm 0 0 m 1208 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3222.25 5354.25 cm 0 0 m 0 620 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3850.25 5354.25 cm 0 0 m 0 620 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2642.25 5354.25 cm 0 0 m 0 620 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 241.4285 517.3069 Tm (Figure 12.10)Tj /T1_0 1 Tf 6.195 0 Td [(Alternative thr)18(ead-safe functions)]TJ 9.9982 0 0 9.9982 147.5736 488.5121 Tm [(If )-347(a )-347(function )-347(is )-347(r)18(eentrant )-347(with )-347(r)18(espect )-347(to )-347(multiple )-347(thr)18(eads, )-347(we )-347(say )-347(that )-347(it )-347(is)]TJ -1.8 -1.2 Td [(thr)18(ead-safe. )-556(This)-556(doesn\325t )-306(tell )-306(us, )-306(however)]TJ 0.5559 Tc 19.85 0 Td (,w)Tj 0 Tc 1.64 0 Td [(hether )-306(the )-306(function )-306(is )-306(r)18(eentrant )-306(with)]TJ -0.018 Tc -21.489 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(spect )-105(to )-105(signal )-105(handlers.)]TJ -0.092 Tc 11.575 0 Td [(We )-289(s)]TJ 0 Tc 2.166 0 Td [(ay )-105(that )-105(a )-105(function )-105(that )-105(is )-105(safe )-105(to )-105(be )-105(r)16(eenter)18(ed )-105(fr)18(om )-105(an)]TJ -14.597 -1.2 Td [(asynchr)18(onous )-30(signal )-30(handler )-30(is)]TJ /T1_2 1 Tf 14.085 0 Td [(async-signal )-30(safe)]TJ /T1_0 1 Tf 0.5299 Tc (.W)Tj 0.2799 Tc 8.542 0 Td (es)Tj 0 Tc 1.183 0 Td [(aw )-30(the )-30(async-signal )-30(safe )-30(functions)]TJ -23.809 -1.2 Td (in Figur)Tj 0.25 Tc 3.506 0 Td (e1)Tj 0 Tc 1.229 0 Td [(0.4 when we discussed r)18(eentrant functions in Section 10.6.)]TJ -2.935 -1.2 Td [(In )-262(addition )-262(to )-262(the )-262(functions )-262(listed )-262(in )-262(Figur)]TJ 0.5116 Tc 20.326 0 Td (e1)Tj 0 Tc 1.491 0 Td [(2.10, )-262(POSIX.1 )-262(pr)19(ovides )-262(a )-262(way )-262(to)]TJ -23.617 -1.2 Td (manage)Tj /TT0 1 Tf 4.377 0 Td (FILE)Tj /T1_0 1 Tf 3.277 0 Td [(objects )-627(in )-627(a )-627(thr)18(ead-safe )-627(way)]TJ 1.1272 Tc 14.611 0 Td (.Y)Tj 0 Tc 1.952 0 Td [(ou )-627(can )-627(use)]TJ /TT0 1 Tf 6.812 0 Td (flockfile)Tj /T1_0 1 Tf 6.277 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (ftrylockfile)Tj /T1_0 1 Tf 7.684 0 Td [(to )-234(obtain )-234(a )-234(lock )-234(associated )-234(with )-234(a )-234(given)]TJ /TT0 1 Tf 19.433 0 Td (FILE)Tj /T1_0 1 Tf 2.884 0 Td [(object. )-484(This)-485(lock )-234(is)]TJ -0.018 Tc -30.002 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cursive: )-191(you )-191(can )-191(acquir)17(e)-441(it)-441(again, )-191(while )-191(you )-191(alr)17(eady )-191(hold )-191(it, )-191(without )-191(deadlocking.)]TJ -0.856 -1.2 Td [(Although )-39(the )-39(exact )-39(implementation )-39(of )-39(the )-39(lock )-39(is )-39(unspeci\336ed, )-39(all )-39(standar)]TJ 0.289 Tc 32.454 0 Td (dI)Tj 0 Tc 1.237 0 Td [(/O )-39(r)18(outines)]TJ -33.691 -1.2 Td [(that )-175(manipulate)]TJ /TT0 1 Tf 7.641 0 Td (FILE)Tj /T1_0 1 Tf 2.826 0 Td [(objects )-175(ar)]TJ 0.4255 Tc 4.309 0 Td (er)Tj 0 Tc 1.281 0 Td [(equir)18(ed )-175(to )-175(behave )-175(as )-175(if )-175(they )-175(call)]TJ /TT0 1 Tf 15.425 0 Td (flockfile)Tj /T1_0 1 Tf 5.825 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (funlockfile)Tj /T1_0 1 Tf 6.85 0 Td [(internally)111(.)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.5739 338.639 Tm (#include )Tj 0 -2.14 TD (int ftrylockfile\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 17.37 -2.14 Td [(Returns: 0 if OK, nonzer)18(o)-250(if)-250(lock can\325t be acquir)18(ed)]TJ /TT0 1 Tf -17.37 -2.14 Td (void flockfile\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj -0 -2.14 Td (void funlockfile\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2571.25 cm 0 0 m 0 906 l 3900 906 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9976 0 0 9.9976 147.5646 242.4018 Tm [(Although )-86(the )-86(standar)]TJ 0.3362 Tc 9.643 0 Td (dI)Tj 0 Tc 1.284 0 Td [(/O )-86(r)18(outines )-86(might )-86(be )-86(implemented )-86(to )-86(be )-86(thr)18(ead-safe )-86(fr)16(om)]TJ -12.728 -1.2 Td [(the )-221(perspective )-221(of )-221(their )-221(own )-221(internal )-221(data )-221(str)7(uctur)18(es, )-221(it )-221(is )-221(still )-221(useful )-221(to )-221(expose )-221(the)]TJ 0 -1.2 Td [(locking )-64(to )-64(applications.)-565(This )-64(allows )-64(applications )-64(to )-64(compose )-64(multiple )-64(calls )-64(to )-64(standar)14(d)]TJ 0 -1.2 TD [(I/O )-221(functions )-221(into )-221(atomic )-221(sequences.)-723(Of )-221(course, )-221(when )-221(dealing )-221(with )-221(multiple)]TJ /TT0 1 Tf 36.6 0 Td (FILE)Tj /T1_0 1 Tf -36.6 -1.2 Td [(objects, you need to bewar)18(e)-250(of)-250(potential deadlocks and to or)18(der your locks car)18(efully)111(.)]TJ 1.8 -1.2 Td [(If )-90(the )-90(standar)]TJ 0.3405 Tc 6.058 0 Td (dI)Tj 0 Tc 1.289 0 Td [(/O )-90(r)18(outines )-91(acquir)]TJ 0.3406 Tc 8.476 0 Td (et)Tj 0 Tc 1.146 0 Td [(heir )-91(own )-91(locks, )-91(then )-91(we )-91(can )-91(r)8(un )-91(into )-91(serious)]TJ -18.768 -1.2 Td [(performance )-16(degradation )-16(when )-16(doing )-16(character)18(-at-a-time )-16(I/O.)-516(In )-16(this )-16(situation, )-16(we )-16(end)]TJ T* [(up )-172(acquiring )-172(and )-172(r)18(eleasing )-172(a )-172(lock )-172(for )-172(every )-172(character )-172(r)18(ead )-172(or )-172(written.)]TJ -0.092 Tc 32.953 0 Td [(To )-356(a)]TJ 0 Tc 1.989 0 Td [(void )-172(this)]TJ -34.942 -1.2 Td [(over)18(head, )-22(unlocked )-22(versions )-22(of )-22(the )-22(character)18(-based )-22(standar)]TJ 0.2716 Tc 26.37 0 Td (dI)Tj 0 Tc 1.22 0 Td [(/O )-22(r)18(outines )-22(ar)]TJ 0.2716 Tc 6.44 0 Td (ea)Tj 0 Tc 1.251 0 Td (vailable.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47358 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (698)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 183.589 670.2598 Tm (strcmp\(pathname, "/dev/stdout"\) == 0 ||)Tj 0 -1.189 TD (strcmp\(pathname, "/dev/stderr"\) == 0\))Tj 1.2 -1.189 Td (continue;)Tj -2.4 -1.189 Td (if \(stat\(pathname, &devstat\) < 0\))Tj 2.4 -1.189 Td (continue;)Tj -2.4 -1.189 Td (if \(S_ISDIR\(devstat.st_mode\)\) {)Tj 2.4 -1.189 Td (add\(pathname\);)Tj T* (continue;)Tj -2.4 -1.189 Td (})Tj T* (if \(devstat.st_ino == fdstatp->st_ino &&)Tj 1.2 -1.189 Td [(devstat.st_dev == fdstatp->st_dev\) {)-1200(/* found a match */)]TJ 1.2 -1.189 Td (closedir\(dp\);)Tj T* (return\(pathname\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (closedir\(dp\);)Tj 0 -1.189 TD (return\(NULL\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (char *)Tj 0 -1.189 TD (ttyname\(int fd\))Tj T* ({)Tj 2.4 -1.189 Td [(struct stat)-3000(fdstat;)]TJ T* [(struct devdir)-1800(*ddp;)]TJ T* (char )Tj 9.6 0 Td (*rval;)Tj -9.6 -2.021 Td (if \(isatty\(fd\) == 0\))Tj 2.4 -1.189 Td (return\(NULL\);)Tj -2.4 -1.189 Td (if \(fstat\(fd, &fdstat\) < 0\))Tj 2.4 -1.189 Td (return\(NULL\);)Tj -2.4 -1.189 Td (if \(S_ISCHR\(fdstat.st_mode\) == 0\))Tj 2.4 -1.189 Td (return\(NULL\);)Tj -2.4 -2.021 Td (rval = searchdir\("/dev", &fdstat\);)Tj 0 -1.189 TD (if \(rval == NULL\) {)Tj 2.4 -1.189 Td (for \(ddp = head; ddp != NULL; ddp = ddp->d_next\))Tj 2.4 -1.189 Td (if \(\(rval = searchdir\(ddp->d_name, &fdstat\)\) != NULL\))Tj 2.4 -1.189 Td (break;)Tj -7.2 -1.189 Td (})Tj 0 -2.021 TD (cleanup\(\);)Tj 0 -1.189 TD (return\(rval\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2214.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 217.5499 205.4243 Tm (Figure 18.15)Tj /T1_1 1 Tf 6.195 0 Td (Implementation of POSIX.1)Tj /TT0 1 Tf 12.404 0 Td (ttyname)Tj /T1_1 1 Tf 4.45 0 Td (function)Tj 9.9988 0 0 9.9988 147.5825 181.4272 Tm [(The )-172(technique )-172(is )-172(to )-172(r)18(ead )-172(the)]TJ /TT0 1 Tf 13.493 0 Td (/dev)Tj /T1_1 1 Tf 2.822 0 Td [(dir)18(ectory)]TJ 0.4219 Tc 3.914 0 Td (,l)Tj 0 Tc 0.963 0 Td [(ooking )-172(for )-172(an )-172(entry )-172(with )-172(the )-172(same)]TJ -22.992 -1.2 Td [(device )-51(number )-51(and )-51(i-node )-51(number)]TJ 0.5509 Tc 15.524 0 Td (.R)Tj 0 Tc 1.469 0 Td [(ecall )-51(fr)18(om )-51(Section )-51(4.24 )-51(that )-51(each )-51(\336le )-51(system )-51(has )-51(a)]TJ -16.992 -1.2 Td [(unique )-94(device )-94(number )-94(\(the)]TJ /TT0 1 Tf 12.579 0 Td (st_dev)Tj /T1_1 1 Tf 3.944 0 Td [(\336eld )-94(in )-94(the)]TJ /TT0 1 Tf 5.279 0 Td (stat)Tj /T1_1 1 Tf 2.744 0 Td [(str)8(uctur)18(e, )-94(fr)18(om )-94(Section )-94(4.2\), )-94(and)]TJ -24.546 -1.2 Td [(each )-11(dir)18(ectory )-11(entry )-11(in )-11(that )-11(\336le )-11(system )-11(has )-11(a )-11(unique )-11(i-node )-11(number )-11(\(the)]TJ /TT0 1 Tf 32.019 0 Td (st_ino)Tj /T1_1 1 Tf 3.861 0 Td [(\336eld )-11(in)]TJ -35.88 -1.2 Td (the)Tj /TT0 1 Tf 1.762 0 Td (stat)Tj /T1_1 1 Tf 2.775 0 Td [(str)8(uctur)18(e\). )-375(W)]TJ 0.3752 Tc 6.085 0 Td (ea)Tj 0 Tc 1.354 0 Td [(ssume )-125(in )-125(this )-125(function )-125(that )-125(when )-125(we )-125(hit )-125(a )-125(matching )-125(device)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47359 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.9)]TJ -0.092 Tc 33.471 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(Identi\336cation)]TJ /T1_1 1 Tf 11.362 0 Td (695)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Note )-55(that )-55(we )-55(can\325t )-55(pr)18(otect )-55(against )-55(overr)10(unning )-55(the )-55(caller)-74(\325s )-55(buf)19(fer)]TJ 0.3048 Tc 29.115 0 Td (,b)Tj 0 Tc 1.108 0 Td [(ecause )-55(we )-55(have)]TJ -32.022 -1.2 Td (no way to determine its size.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 6570.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf -0.09 Tc 9.9988 0 0 9.9988 147.5823 630.5243 Tm (Tw)Tj 0.4716 Tc 1.357 0 Td (of)Tj 0 Tc 1.351 0 Td [(unctions )-222(that )-222(ar)]TJ 0.4716 Tc 7.352 0 Td (em)Tj 0 Tc 1.834 0 Td (or)Tj 0.4717 Tc 0.923 0 Td (ei)Tj 0 Tc 1.242 0 Td [(nter)18(esting )-222(for )-222(a )-222(UNIX )-222(system )-222(ar)20(e)]TJ /TT0 1 Tf 16.087 0 Td (isatty)Tj /T1_0 1 Tf 0.4717 Tc (,w)Tj 0 Tc 5.156 0 Td (hich)Tj -0.018 Tc -37.101 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-51(tr)8(ue )-51(if )-51(a )-51(\336le )-51(descriptor )-51(r)18(efers )-51(to )-51(a )-51(terminal )-51(device, )-51(and)]TJ /TT0 1 Tf 27.172 0 Td (ttyname)Tj /T1_0 1 Tf 0.3015 Tc (,w)Tj 0 Tc 5.586 0 Td [(hich )-51(r)18(eturns)]TJ -33.614 -1.2 Td [(the pathname of the terminal device that is open on a \336le descriptor)74(.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 587.4295 Tm (#include )Tj 0 -2.14 TD (int isatty\(int)Tj /T1_2 1 Tf 9 0 Td (fd)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 6.606 -2.14 Td [(Returns: 1 \(tr)8(ue\) if terminal device, 0 \(false\) otherwise)]TJ /TT0 1 Tf -15.606 -2.14 Td (char *ttyname\(int)Tj /T1_2 1 Tf 10.8 0 Td (fd)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 3.665 -2.14 Td (Returns: pointer to pathname of terminal,)Tj /TT0 1 Tf 18.648 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5059.25 cm 0 0 m 0 906 l 3900 906 l 3900 0 l 0 0 l S Q Q BT /TT1 1 Tf 9.9982 0 0 9.9982 93.5832 468.3757 Tm [(Example )195(\321)]TJ /TT2 1 Tf 5.28 0 Td (isatty)Tj /TT1 1 Tf 3.878 0 Td (Function)Tj /T1_0 1 Tf -5.558 -2.4 Td (The)Tj /TT0 1 Tf 1.933 0 Td (isatty)Tj /T1_0 1 Tf 3.859 0 Td [(function )-9(is )-9(trivial )-9(to )-9(implement, )-9(as )-9(we )-9(show )-9(in )-9(Figur)]TJ 0.2594 Tc 23.231 0 Td (e1)Tj 0 Tc 1.238 0 Td [(8.13. )-259(W)]TJ 0.2594 Tc 3.417 0 Td (es)Tj 0 Tc 1.162 0 Td [(imply )-9(try)]TJ -34.841 -1.2 Td [(one )-85(of )-85(the )-85(terminal-speci\336c )-85(functions )-85(\(that )-85(doesn\325t )-85(change )-85(anything )-85(if )-85(it )-85(succeeds\) )-85(and)]TJ 0 -1.2 TD [(look at the r)18(eturn value.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4132.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9978 0 0 8.9978 129.5689 403.6621 Tm [(#include )-1800()]TJ 0 -2.14 TD (int)Tj 0 -1.189 TD (isatty\(int fd\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(struct termios)-1200(ts;)]TJ 0 -2.14 TD (return\(tcgetattr\(fd, &ts\) != -1\); /* true if no error \(is a tty\) *\ /)Tj -2.4 -1.189 Td (})Tj ET q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3176.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 219.91 301.5475 Tm (Figure 18.13)Tj /T1_0 1 Tf 6.195 0 Td (Implementation of POSIX.1)Tj /TT0 1 Tf 12.404 0 Td (isatty)Tj /T1_0 1 Tf 3.85 0 Td (function)Tj -0.092 Tc 9.997 0 0 9.997 147.5559 271.5565 Tm [(We )-184(t)]TJ 0 Tc 1.963 0 Td (est our)Tj /TT0 1 Tf 3.273 0 Td (isatty)Tj /T1_0 1 Tf 3.85 0 Td [(function with the pr)18(ogram in Figur)]TJ 0.25 Tc 15.491 0 Td (e1)Tj 0 Tc 1.229 0 Td (8.14.)Tj ET q 0.09997 0 0 0.09997 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2644.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9968 0 0 8.9968 129.5534 254.8452 Tm (#include "apue.h")Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("fd 0: %s\\n", isatty\(0\) ? "tty" : "not a tty"\);)Tj T* (printf\("fd 1: %s\\n", isatty\(1\) ? "tty" : "not a tty"\);)Tj T* (printf\("fd 2: %s\\n", isatty\(2\) ? "tty" : "not a tty"\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099964 0 0 0.099964 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1570.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 254.9369 140.9868 Tm (Figure 18.14)Tj /T1_0 1 Tf -0.092 Tc 6.195 0 Td (Te)Tj 0 Tc 1 0 Td (st the)Tj /TT0 1 Tf 2.637 0 Td (isatty)Tj /T1_0 1 Tf 3.85 0 Td (function)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47360 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.9)]TJ -0.092 Tc 33.471 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(Identi\336cation)]TJ /T1_1 1 Tf 11.362 0 Td (699)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(number )-160(and )-160(matching )-160(i-node )-160(number)]TJ 0.4096 Tc 17.253 0 Td (,w)Tj 0 Tc 1.494 0 Td [(e\325ve )-159(located )-159(the )-159(desir)18(ed )-159(dir)18(ectory )-159(entry)]TJ 0.6595 Tc 17.956 0 Td (.W)Tj 0 Tc 1.817 0 Td (e)Tj -38.521 -1.2 Td [(could )-169(also )-169(verify )-169(that )-169(the )-169(two )-169(entries )-169(have )-169(matching)]TJ /TT0 1 Tf 24.742 0 Td (st_rdev)Tj /T1_0 1 Tf 4.619 0 Td [(\336elds )-169(\(the )-169(major )-169(and)]TJ -29.361 -1.2 Td [(minor )-328(device )-328(numbers )-328(for )-328(the )-328(terminal )-328(device\) )-328(and )-328(that )-328(the )-328(dir)18(ectory )-328(entry )-328(is )-328(a)]TJ 0 -1.2 TD [(character )-216(special )-216(\336le.)-715(However)]TJ 0.4656 Tc 14.423 0 Td (,s)Tj 0 Tc 1.14 0 Td [(ince )-216(we\325ve )-216(alr)19(eady )-216(veri\336ed )-216(that )-216(the )-216(\336le )-216(descriptor)]TJ -15.562 -1.2 Td [(ar)18(gument )-133(is )-133(both )-133(a )-133(terminal )-133(device )-133(and )-133(a )-133(character )-133(special )-133(\336le, )-133(and )-133(since )-133(a )-133(matching)]TJ T* [(device )-94(number )-94(and )-94(i-node )-94(number )-94(pair )-94(is )-94(unique )-94(on )-94(a )-94(UNIX )-94(system, )-94(ther)13(e)-344(is)-344(no)-344(n)-1(eed)]TJ -0 -1.2 Td (for the additional comparisons.)Tj 1.8 -1.2 Td [(The )-67(name )-67(of )-67(our )-67(terminal )-67(might )-67(r)18(eside )-67(in )-67(a )-67(subdir)18(ectory )-67(in)]TJ /TT0 1 Tf 26.926 0 Td (/dev)Tj /T1_0 1 Tf 0.567 Tc (.T)Tj 0 Tc 3.83 0 Td [(hus, )-67(we )-67(might)]TJ -32.556 -1.2 Td [(need )-90(to )-90(sear)18(ch )-90(the )-90(entir)]TJ 0.3402 Tc 10.632 0 Td (e\336)Tj 0 Tc 1.424 0 Td [(le )-90(system )-90(tr)18(ee )-90(under)]TJ /TT0 1 Tf 9.554 0 Td (/dev)Tj /T1_0 1 Tf 0.5902 Tc (.W)Tj 0.3402 Tc 4.148 0 Td (es)Tj 0 Tc 1.243 0 Td [(kip )-90(several )-90(dir)18(ectories )-90(that)]TJ -27.001 -1.2 Td [(might )-65(pr)18(oduce )-65(incorr)18(ect )-65(or )-65(odd)]TJ 14.153 0.09 Td (-)Tj 0.333 -0.09 Td [(looking )-65(r)18(esults:)]TJ /TT0 1 Tf 7.173 0 Td (/dev/.)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.165 0 Td (/dev/..)Tj /T1_0 1 Tf 0.3153 Tc (,a)Tj 0 Tc 5.265 0 Td (nd)Tj /TT0 1 Tf 1.508 0 Td (/dev/fd)Tj /T1_0 1 Tf 0.5653 Tc (.W)Tj 0 Tc 5.923 0 Td (e)Tj -38.521 -1.2 Td [(also )-141(skip )-141(the )-141(aliases)]TJ /TT0 1 Tf 9.493 0 Td (/dev/stdin)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 6.641 0 Td (/dev/stdout)Tj /T1_0 1 Tf 0.3909 Tc (,a)Tj 0 Tc 7.741 0 Td (nd)Tj /TT0 1 Tf 1.584 0 Td (/dev/stderr)Tj /T1_0 1 Tf 0.3909 Tc (,s)Tj 0 Tc 7.665 0 Td [(ince )-141(they )-141(ar)18(e)]TJ -33.123 -1.2 Td (symbolic links to \336les in)Tj /TT0 1 Tf 10.926 0 Td (/dev/fd)Tj /T1_0 1 Tf (.)Tj -0.092 Tc -9.126 -1.2 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td [(an test this implementation with the pr)18(ogram shown in Figur)]TJ 0.25 Tc 27.072 0 Td (e1)Tj 0 Tc 1.229 0 Td (8.16.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5178.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 508.238 Tm (#include "apue.h")Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (char *name;)Tj 0 -1.902 TD (if \(isatty\(0\)\) {)Tj 2.4 -1.189 Td (name = ttyname\(0\);)Tj 0 -1.189 TD (if \(name == NULL\))Tj 2.4 -1.189 Td (name = "undefined";)Tj 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (name = "not a tty";)Tj -2.4 -1.189 Td (})Tj T* (printf\("fd 0: %s\\n", name\);)Tj 0 -1.902 TD (if \(isatty\(1\)\) {)Tj 2.4 -1.189 Td (name = ttyname\(1\);)Tj 0 -1.189 TD (if \(name == NULL\))Tj 2.4 -1.189 Td (name = "undefined";)Tj 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (name = "not a tty";)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (printf\("fd 1: %s\\n", name\);)Tj 0 -1.902 TD (if \(isatty\(2\)\) {)Tj 2.4 -1.189 Td (name = ttyname\(2\);)Tj 0 -1.189 TD (if \(name == NULL\))Tj 2.4 -1.189 Td (name = "undefined";)Tj 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (name = "not a tty";)Tj -2.4 -1.189 Td (})Tj T* (printf\("fd 2: %s\\n", name\);)Tj 0 -1.902 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1504.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 252.5985 134.3738 Tm (Figure 18.16)Tj /T1_0 1 Tf -0.092 Tc 6.195 0 Td (Te)Tj 0 Tc 1 0 Td (st the)Tj /TT0 1 Tf 2.637 0 Td (ttyname)Tj /T1_0 1 Tf 4.45 0 Td (function)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47361 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (696)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(When we r)8(un the pr)18(ogram fr)18(om Figur)]TJ 0.25 Tc 16.795 0 Td (e1)Tj 0 Tc 1.229 0 Td (8.14, we get the following output:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 652.2609 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (fd 0: tty)Tj 0 -1.189 TD (fd 1: tty)Tj T* (fd 2: tty)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out /dev/null)Tj /TT0 1 Tf -1.2 -1.189 Td (fd 0: not a tty)Tj T* (fd 1: tty)Tj T* (fd 2: not a tty)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5714.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 9.9988 0 0 9.9988 93.5888 535.3358 Tm [(Example )195(\321)]TJ /TT1 1 Tf 5.28 0 Td (ttyname)Tj /TT2 1 Tf 4.478 0 Td (Function)Tj /T1_1 1 Tf -6.158 -2.4 Td (The)Tj /TT0 1 Tf 2.14 0 Td (ttyname)Tj /T1_1 1 Tf 4.666 0 Td [(function )-216(\(Figur)]TJ 0.4659 Tc 6.889 0 Td (e1)Tj 0 Tc 1.445 0 Td [(8.15\) )-216(is )-216(longer)74(,)-466(as)-466(w)]TJ 0.4658 Tc (eh)Tj 0 Tc 10.971 0 Td [(ave )-216(to )-216(sear)18(ch )-216(all )-216(the )-216(device)]TJ -26.111 -1.2 Td (entries, looking for a match.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4922.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 482.6121 Tm [(#include )-1800()]TJ T* [(#include )-1800()]TJ T* [(#include )-1800()]TJ T* [(#include )-1800()]TJ T* [(#include )-1800()]TJ 0 -1.189 TD [(#include )-1800()]TJ 0 -1.189 TD [(#include )-1800()]TJ 0 -2.021 TD (struct devdir {)Tj 2.4 -1.189 Td [(struct devdir)-1800(*d_next;)]TJ 0 -1.189 TD (char )Tj 9.6 0 Td (*d_name;)Tj -12 -1.189 Td (};)Tj 0 -2.021 TD [(static struct devdir)-2400(*head;)]TJ 0 -1.189 TD [(static struct devdir)-2400(*tail;)]TJ T* (static char)Tj 14.4 0 Td (pathname[_POSIX_PATH_MAX + 1];)Tj -14.4 -2.021 Td (static void)Tj T* (add\(char *dirname\))Tj T* ({)Tj 2.4 -1.189 Td [(struct devdir)-1800(*ddp;)]TJ T* (int )Tj 9.6 0 Td (len;)Tj -9.6 -2.021 Td (len = strlen\(dirname\);)Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*S)Tj 0 Tc 1.8 0 Td (kip ., .., and /dev/fd.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(\(dirname[len-1] == \325.\325\) && \(dirname[len-2] == \325/\325 ||\ )Tj 1.2 -1.189 Td (\(dirname[len-2] == \325.\325 && dirname[len-3] == \325/\325\)\)\))Tj 1.2 -1.189 Td (return;)Tj -2.4 -1.189 Td (if \(strcmp\(dirname, "/dev/fd"\) == 0\))Tj 2.4 -1.189 Td (return;)Tj -2.4 -1.189 Td (if \(\(ddp = malloc\(sizeof\(struct devdir\)\)\) == NULL\))Tj 2.4 -1.189 Td (return;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47362 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (716)Tj /T1_1 1 Tf 3.5 0 Td [(Pseudo )-250(T)92(erminals )]TJ 38.741 0 Td [(Chapter)-500(19)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 3354 5774 612 252 re S Q BT /T1_1 1 Tf -0.018 Tc 7.9995 0 0 7.9995 340.0396 593.2044 Tm (re)Tj 0 Tc 0.856 0 Td (ad and write)Tj 0.321 -1.25 Td (functions)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 3354 5306 612 252 re S Q BT /T1_1 1 Tf 7.999 0 0 7.999 350.9699 546.3744 Tm (terminal)Tj -1.225 -1.25 Td (line discipline)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 3354 4838 612 252 re S Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 336.8954 499.5501 Tm (pseudo terminal)Tj 2.501 -1.25 Td (slave)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2526 4838 612 252 re S Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 254.095 499.5201 Tm (pseudo terminal)Tj 2.127 -1.25 Td (master)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2526 5774 612 252 re S Q BT /T1_1 1 Tf -0.018 Tc 7.9976 0 0 7.9976 257.1828 593.062 Tm (re)Tj 0 Tc 0.856 0 Td (ad and write)Tj 0.321 -1.25 Td (functions)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 3444 6386 432 252 re S Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 358.267 654.2044 Tm (user)Tj -0.697 -1.25 Td [(pr)18(ocess)]TJ ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2616 6386 432 252 re S Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 275.4803 654.1652 Tm (user)Tj -0.697 -1.25 Td [(pr)18(ocess)]TJ ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 344.4 651.2 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3444 6512 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3048.25 6512.25 cm 0 0 m 324 0 l S Q Q BT /TT0 1 Tf 7.9962 0 0 7.9962 314.8488 654.1259 Tm (fork)Tj 0 -1.25 TD (exec)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 366 602.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3660 6026 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 366 638.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 3660 6386 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3660.25 6098.25 cm 0 0 m 0 216 l S Q Q q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 283.2 602.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 2832 6026 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 283.2 638.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 2832 6386 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2832.25 6098.25 cm 0 0 m 0 216 l S Q Q q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 272.976 509 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 2729.76 5090 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2730.25 5162.25 cm 0 0 m 0 612 l S Q Q q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 293.424 577.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 2934.24 5774 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2934.25 5090.25 cm 0 0 m 0 612 l S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 355.776 555.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 3557.76 5558 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3558.25 5774.25 cm 0 0 m 0 -144 l S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 376.224 577.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 3762.24 5774 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3762.25 5558.25 cm 0 0 m 0 144 l S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 355.776 509 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 3557.76 5090 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3558.25 5306.25 cm 0 0 m 0 -144 l S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 376.224 530.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 3762.24 5306 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3762.25 5090.25 cm 0 0 m 0 144 l S Q Q q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 355.776 469.4 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 3557.76 4694 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3558.25 4838.25 cm 0 0 m 0 -72 l S Q Q q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 293.424 483.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 2934.24 4838 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2934.25 4766.25 cm 0 0 m 0 -72 l S Q Q q 0.9988007 0 0 0.9988007 0 0 cm q 1 0 0 1 293.424 469.4 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0998801 0 0 0.0998801 0 0 cm 1 j 1 J q 1 0 0 1 2934.24 4694 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3558.25 4694.25 cm 0 0 m -553 0 l S Q Q q 0.9987408 0 0 0.9987408 0 0 cm q 1 0 0 1 376.224 483.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998741 0 0 0.0998741 0 0 cm 1 j 1 J q 1 0 0 1 3762.24 4838 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3762.25 4766.25 cm 0 0 m 0 -144 l S Q Q q 0.9986808 0 0 0.9986808 0 0 cm q 1 0 0 1 272.976 462.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998681 0 0 0.0998681 0 0 cm 1 j 1 J q 1 0 0 1 2729.76 4622 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2730.25 4838.25 cm 0 0 m 0 -144 l S Q Q q 0.9986209 0 0 0.9986209 0 0 cm q 1 0 0 1 376.224 462.2 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998621 0 0 0.0998621 0 0 cm 1 j 1 J q 1 0 0 1 3762.24 4622 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2730.25 4622.25 cm 0 0 m 959 0 l S Q Q BT /T1_2 1 Tf 7.9885 0 0 7.9885 371.4647 630.9308 Tm (stdin, stdout, stderr)Tj ET q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 4550.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 4622.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 4694.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 4766.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 4838.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 4910.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 4982.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5054.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5126.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5198.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5270.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5342.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5414.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5486.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5558.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5630.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5702.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5774.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5846.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5918.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5990.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 6062.25 cm 0 0 m 0 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 6134.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2452.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2523.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2593.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2664.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2735.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2805.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2875.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2946.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3016.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3087.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3157.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3228.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3298.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3369.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3439.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3510.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3581.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3651.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3721.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3792.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3862.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3933.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4003.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4074.25 6170.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 6098.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 6026.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5954.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5882.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5810.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5738.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5666.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5594.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5522.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5450.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5378.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5306.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5234.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5162.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5090.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 5018.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 4946.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 4874.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 4802.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 4730.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 4658.25 cm 0 0 m 0 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 4586.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4039.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3969.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3898.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3828.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3757.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3686.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3617.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3546.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3475.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3405.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3334.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3264.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3193.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3123.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3052.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2982.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2911.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2840.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2771.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2700.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2629.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2559.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2488.25 4550.25 cm 0 0 m -36 0 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2418.25 4550.25 cm 0 0 m -36 0 l S Q Q BT /T1_1 1 Tf 7.988 0 0 7.988 412.3809 533.4392 Tm (kernel)Tj /T1_0 1 Tf -26.736 -12.905 Td (Figure 19.1)Tj /T1_1 1 Tf -0.09 Tc 5.695 0 Td (Ty)Tj 0 Tc 1.079 0 Td [(pical arrangement of pr)18(ocesses using a pseudo terminal)]TJ 0.883 Tc 9.985 0 0 9.985 147.379 402.7953 Tm (\245N)Tj 0 Tc 2.32 0 Td (ormally)Tj 0.2718 Tc 3.351 0 Td (,ap)Tj -0.018 Tc 1.895 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-22(opens )-22(the )-22(pseudo )-22(terminal )-22(master )-22(and )-22(then )-22(calls)]TJ /TT0 1 Tf 23.866 0 Td (fork)Tj /T1_1 1 Tf 0.5217 Tc (.T)Tj 0 Tc 3.785 0 Td (he)Tj -34.65 -1.2 Td [(child )-43(establishes )-43(a )-43(new )-43(session, )-43(opens )-43(the )-43(corr)18(esponding )-43(pseudo )-43(terminal )-43(slave,)]TJ 0 -1.2 TD [(duplicates )-364(the )-364(\336le )-364(descriptor )-364(to )-364(the )-364(standar)]TJ 0.6145 Tc 21.11 0 Td (di)Tj 0 Tc 1.516 0 Td [(nput, )-364(standar)]TJ 0.6145 Tc 6.296 0 Td (do)Tj 0 Tc 1.771 0 Td [(utput, )-364(and)]TJ -30.695 -1.2 Td (standar)Tj 0.4328 Tc 3.32 0 Td (de)Tj 0 Tc 1.523 0 Td [(rr)18(or)]TJ 0.4328 Tc 1.639 0 Td (,a)Tj 0 Tc 1.183 0 Td [(nd )-183(then )-183(calls)]TJ /TT0 1 Tf 6.41 0 Td (exec)Tj /T1_1 1 Tf 0.6828 Tc (.T)Tj 0 Tc 3.946 0 Td [(he )-183(pseudo )-183(terminal )-183(slave )-183(becomes )-183(the)]TJ -18.021 -1.2 Td [(contr)18(olling terminal for the child pr)18(ocess.)]TJ 0.883 Tc -1.489 -1.36 Td (\245I)Tj 0.3473 Tc 1.826 0 Td (ta)Tj 0 Tc 1.173 0 Td [(ppears )-97(to )-97(the )-97(user )-97(pr)17(ocess )-97(above )-97(the )-97(slave )-97(that )-97(its )-97(standar)]TJ 0.3472 Tc 26.311 0 Td (di)Tj 0 Tc 1.249 0 Td [(nput, )-97(standar)18(d)]TJ -29.071 -1.2 Td [(output, )-95(and )-95(standar)]TJ 0.3448 Tc 8.958 0 Td (de)Tj 0 Tc 1.435 0 Td [(rr)18(or )-95(ar)]TJ 0.3448 Tc 2.935 0 Td (eat)Tj 0 Tc 1.995 0 Td [(erminal )-95(device.)-595(The )-95(pr)18(ocess )-95(can )-95(issue )-95(all )-95(the)]TJ -15.322 -1.2 Td [(terminal )-9(I/O )-9(functions )-9(fr)17(om )-9(Chapter )-9(18 )-9(on )-9(these )-9(descriptors.)-509(But )-9(since )-9(the )-9(slave)]TJ T* [(isn\325t )-178(a )-178(r)18(eal )-178(terminal )-178(device, )-178(functions )-178(that )-178(don\325t )-178(make )-178(sense )-178(\(e.g., )-178(change )-178(the)]TJ T* [(baud rate, send a br)18(eak character)]TJ 0.25 Tc 14.519 0 Td (,s)Tj 0 Tc 0.924 0 Td (et odd parity\) ar)Tj 0.25 Tc 7.202 0 Td (ej)Tj 0 Tc 0.963 0 Td [(ust ignor)18(ed.)]TJ 0.883 Tc -25.097 -1.36 Td (\245A)Tj 0 Tc 2.267 0 Td [(nything )-156(written )-156(to )-156(the )-156(master )-156(appears )-156(as )-156(input )-156(to )-156(the )-156(slave, )-156(and )-156(vice )-156(versa.)]TJ -0.778 -1.2 Td [(Indeed, )-48(all )-48(the )-48(input )-48(to )-48(the )-48(slave )-48(comes )-48(fr)14(om )-49(the )-49(user )-49(pr)18(ocess )-49(above )-49(the )-49(pseudo)]TJ T* [(terminal )-156(master)]TJ 0.6563 Tc 7.086 0 Td (.T)Tj 0 Tc 1.519 0 Td [(his )-156(behaves )-156(like )-156(a )-156(bidir)17(ectional )-156(pipe, )-156(but )-156(with )-156(the )-156(terminal)]TJ -8.606 -1.2 Td [(line )-145(discipline )-145(module )-145(above )-145(the )-145(slave, )-145(we )-145(have )-145(additional )-145(capabilities )-145(over )-145(a)]TJ T* (plain pipe.)Tj -3.289 -1.56 Td (Figur)Tj 0.2815 Tc 2.383 0 Td (e1)Tj 0 Tc 1.261 0 Td [(9.1 )-31(shows )-31(what )-31(a )-31(pseudo )-31(terminal )-31(looks )-31(like )-31(on )-31(a )-31(Fr)18(eeBSD, )-31(Mac )-31(OS )-31(X, )-31(or )-31(Linux)]TJ -3.644 -1.2 Td [(system. )-250(In)-250(Section 19.3, we show how to open these devices.)]TJ 1.8 -1.2 Td [(Under )-491(Solaris, )-491(a )-491(pseudo )-491(terminal )-491(is )-491(built )-491(using )-491(the )-491(STREAMS )-491(subsystem.)]TJ -1.8 -1.2 Td (Figur)Tj 0.3593 Tc 2.383 0 Td (e1)Tj 0 Tc 1.338 0 Td [(9.2 )-109(details )-109(the )-109(arrangement )-109(of )-109(the )-109(pseudo )-109(terminal )-109(STREAMS )-109(modules )-109(under)]TJ -3.721 -1.2 Td [(Solaris. )-286(The)-287(two )-36(STREAMS )-36(modules )-36(that )-36(ar)]TJ 0.2865 Tc 19.685 0 Td (es)Tj 0 Tc 1.189 0 Td [(hown )-37(as )-37(dashed )-37(boxes )-37(ar)]TJ 0.2866 Tc 11.216 0 Td (eo)Tj 0 Tc 1.312 0 Td [(ptional. )-287(The)]TJ /TT0 1 Tf -33.403 -1.2 Td (pckt)Tj /T1_1 1 Tf 2.866 0 Td (and)Tj /TT0 1 Tf 2.159 0 Td (ptem)Tj /T1_1 1 Tf 2.866 0 Td [(modules )-216(help )-216(pr)18(ovide )-216(semantics )-216(speci\336c )-216(to )-216(pseudo )-216(terminals.)-715(The)]TJ -7.891 -1.2 Td [(other )-231(two )-231(modules )-231(\()]TJ /TT0 1 Tf (ldterm)Tj /T1_1 1 Tf 13.728 0 Td (and)Tj /TT0 1 Tf 2.174 0 Td (ttcompat)Tj /T1_1 1 Tf 0.4809 Tc (\)p)Tj -0.018 Tc 6.215 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vide )-231(line )-231(discipline )-231(pr)18(ocessing. )-481(In)]TJ -23.039 -1.2 Td (Section 19.3, we show how to build this arrangement of STREAMS modules.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47363 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (806)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(120 )-1200(/*)]TJ 0 -1.189 TD [(121 )-1800(*)-600("Timed" read - timout specifies the number of seconds to wait)]TJ T* [(122 )-1800(*)-600(per read call before giving up, but read exactly nbytes bytes.)]TJ T* [(123 )-1800(*)-600(Returns number of bytes read or -1 on error.)]TJ T* [(124 )-1800(*)]TJ 0 -1.189 TD [(125 )-1800(*)-600(LOCKING: none.)]TJ 0 -1.189 TD [(126 )-1800(*/)]TJ T* [(127 )-1200(ssize_t)]TJ T* [(128 )-1200(treadn\(int)-600(fd, void *buf, size_t nbytes, unsigned int timout\))]TJ T* [(129 )-1200({)]TJ T* [(130 )-2400(size_t)-1200(nleft;)]TJ T* [(131 )-2400(ssize_t)-600(nread;)]TJ 0 -2.14 TD [(132 )-2400(nleft)]TJ 0.6 Tc 8.4 0 Td (=n)Tj 0 Tc 1.8 0 Td (bytes;)Tj -10.2 -1.189 Td [(133 )-2400(while)-600(\(nleft > 0\) {)]TJ 0 -1.189 TD [(134 )-4800(if)-600(\(\(nread = tread\(fd, buf, nleft, timout\)\) < 0\) {)]TJ T* (135 )Tj 9.6 0 Td [(if)-600(\(nleft == nbytes\))]TJ -9.6 -1.189 Td (136 )Tj 12 0 Td [(return\(-1\);)-600(/* error, return -1 */)]TJ -12 -1.189 Td (137 )Tj 9.6 0 Td (else)Tj -9.6 -1.189 Td (138 )Tj 12 0 Td [(break;)-3600(/* error, return amount read so far */)]TJ -12 -1.189 Td [(139 )-4800(})-600(else if \(nread == 0\) {)]TJ T* (140 )Tj 9.6 0 Td (break;)Tj 9.6 0 Td (/* EOF */)Tj -19.2 -1.189 Td [(141 )-4800(})]TJ T* [(142 )-4800(nleft)-600(-= nread;)]TJ T* [(143 )-4800(buf)-600(+= nread;)]TJ T* [(144 )-2400(})]TJ T* [(145 )-2400(return\(nbytes)]TJ 0.6 Tc 13.2 0 Td (-n)Tj 0 Tc 1.8 0 Td [(left\); )-3000(/*)-600(return >= 0 */)]TJ -15 -1.189 Td [(146 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3679.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 343.8967 Tm [([120 )167(\320 )167(146])]TJ -0.092 Tc 5 0 Td [(We )-240(a)]TJ 0 Tc 2.193 0 Td [(lso )-55(pr)18(ovide )-56(a )-56(variation )-56(of)]TJ /TT0 1 Tf 11.634 0 Td (tread)Tj /T1_1 1 Tf 0.3056 Tc (,c)Tj 0 Tc 4 0 Td (alled)Tj /TT0 1 Tf 2.478 0 Td (treadn)Tj /T1_1 1 Tf 0.3056 Tc (,t)Tj 0 Tc 4.482 0 Td [(hat )-56(r)18(eads )-56(exactly )-56(the)]TJ -24.785 -1.2 Td [(number )-68(of )-68(bytes )-68(r)18(equested. )-318(This)-318(is )-68(similar )-68(to )-68(the)]TJ /TT0 1 Tf 22.37 0 Td (readn)Tj /T1_1 1 Tf 3.318 0 Td [(function )-68(described)]TJ -25.688 -1.2 Td [(in Section 14.7, but with the addition of the timeout parameter)74(.)]TJ -0.092 Tc 0 -1.8 TD [(To )-262(r)]TJ 0 Tc 1.772 0 Td [(ead )-78(exactly)]TJ /T1_2 1 Tf 5.358 0 Td (nbytes)Tj /T1_1 1 Tf 2.958 0 Td [(bytes, )-78(we )-78(have )-78(to )-78(be )-78(pr)19(epar)18(ed )-78(to )-78(make )-78(multiple )-78(calls)]TJ -10.088 -1.2 Td (to)Tj /TT0 1 Tf 1.373 0 Td (read)Tj /T1_1 1 Tf 0.7513 Tc (.T)Tj 0 Tc 4.014 0 Td [(he )-251(dif)18(\336cult )-251(part )-251(is )-251(trying )-251(to )-251(apply )-251(a )-251(single )-251(timeout )-251(value )-251(to)]TJ -5.388 -1.2 Td [(multiple )-72(calls )-72(to)]TJ /TT0 1 Tf 7.553 0 Td (read)Tj /T1_1 1 Tf 0.572 Tc (.W)Tj 0.322 Tc 4.13 0 Td (ed)Tj 0 Tc 1.412 0 Td [(on\325t )-72(want )-72(to )-72(use )-72(an )-72(alarm, )-72(because )-72(signals )-72(can)]TJ -13.095 -1.2 Td [(be )-129(messy )-129(to )-129(deal )-129(with )-129(in )-129(multithr)16(eaded )-129(applications.)]TJ -0.092 Tc 24.748 0 Td [(We )-313(c)]TJ 0 Tc 2.21 0 Td [(an\325t )-129(r)18(ely )-129(on )-129(the)]TJ -26.958 -1.2 Td [(system )-76(updating )-76(the)]TJ /TT0 1 Tf 9.526 0 Td (timeval)Tj /T1_1 1 Tf 4.526 0 Td [(str)8(uctur)18(e)-326(on)-326(r)19(eturn )-76(fr)18(om)]TJ /TT0 1 Tf 11.301 0 Td (select)Tj /T1_1 1 Tf 3.926 0 Td [(to )-76(indicate)]TJ -29.278 -1.2 Td [(the )-350(amount )-350(of )-350(time )-350(left, )-350(because )-350(many )-350(platforms )-350(do )-350(not )-350(support )-350(this)]TJ 0 -1.2 TD [(behavior )-270(\(Section )-270(14.4.1\).)-770(Thus, )-270(we )-270(compr)18(omise )-270(and )-270(de\336ne )-270(the )-270(timeout)]TJ T* [(value )-18(in )-18(this )-18(case )-18(to )-18(apply )-18(to )-18(an )-18(individual)]TJ /TT0 1 Tf 19.2 0 Td (read)Tj /T1_1 1 Tf 2.668 0 Td [(call. )-267(Instead)-268(of )-17(limiting )-17(the)]TJ -21.868 -1.2 Td [(total )-11(amount )-11(of )-11(time )-11(we )-11(wait, )-11(it )-11(limits )-11(the )-11(amount )-11(of )-11(time )-11(we\325ll )-11(wait )-11(in )-11(every)]TJ T* [(iteration )-38(of )-38(the )-38(loop.)-538(The )-38(maximum )-38(time )-38(we )-38(can )-38(wait )-38(is )-38(bounded )-38(by )-38(\()]TJ /T1_2 1 Tf 31.37 0 Td (nbytes)Tj /TT1 1 Tf -31.37 -1.2 Td (#)Tj /T1_2 1 Tf 0.799 0 Td (timout)Tj /T1_1 1 Tf 0.25 Tc (\)s)Tj 0 Tc 3.729 0 Td [(econds \(worst case, we\325ll r)18(eceive only 1 byte at a time\).)]TJ -0.092 Tc -4.528 -1.8 Td [(We )-200(u)]TJ 0 Tc 2.256 0 Td (se)Tj /TT0 1 Tf 1.169 0 Td (nleft)Tj /T1_1 1 Tf 3.266 0 Td [(to )-16(r)18(ecor)]TJ 0.2657 Tc 3.361 0 Td (dt)Tj 0 Tc 1.203 0 Td [(he )-16(number )-16(of )-16(bytes )-16(r)18(emaining )-16(to )-16(be )-16(r)20(ead. )-266(If)]TJ /TT0 1 Tf 19.746 0 Td (tread)Tj /T1_1 1 Tf -31 -1.2 Td [(fails )-79(and )-79(we )-79(have )-79(r)18(eceived )-79(data )-79(in )-79(a )-79(pr)18(evious )-79(iteration, )-79(we )-79(br)20(eak )-79(out )-79(of )-79(the)]TJ /TT0 1 Tf T* (while)Tj /T1_1 1 Tf 3.25 0 Td [(loop and r)18(eturn the number of bytes r)18(ead; otherwise, we r)18(eturn)]TJ /TT1 1 Tf 28.186 0 Td (!)Tj /T1_1 1 Tf (1.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47364 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (805)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 134.9919 659.4594 Tm [(95 )-1200(/*)]TJ 0 -1.189 TD [(96 )-1800(*)-600("Timed" read - timout specifies the # of seconds to wait before)]TJ T* [(97 )-1800(*)-600(giving up \(5th argument to select controls how long to wait for)]TJ T* [(98 )-1800(*)-600(data to be readable\).)-1200(Returns # of bytes read or -1 on error.)]TJ T* [(99 )-1800(*)]TJ -0.6 -1.189 Td [(100 )-1800(*)-600(LOCKING: none.)]TJ T* [(101 )-1800(*/)]TJ T* [(102 )-1200(ssize_t)]TJ T* [(103 )-1200(tread\(int)-600(fd, void *buf, size_t nbytes, unsigned int timout\))]TJ T* [(104 )-1200({)]TJ T* [(105 )-2400(int)]TJ 14.4 0 Td (nfds;)Tj -14.4 -1.189 Td [(106 )-2400(fd_set)]TJ 14.4 0 Td (readfds;)Tj -14.4 -1.189 Td [(107 )-2400(struct)-600(timeval )-600(tv;)]TJ 0 -1.902 TD [(108 )-2400(tv.tv_sec)]TJ 0.6 Tc 10.8 0 Td (=t)Tj 0 Tc 1.8 0 Td (imout;)Tj -12.6 -1.189 Td [(109 )-2400(tv.tv_usec)]TJ 0.6 Tc 11.4 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -13.2 -1.189 Td [(110 )-2400(FD_ZERO\(&readfds\);)]TJ 0 -1.189 TD [(111 )-2400(FD_SET\(fd,)-600(&readfds\);)]TJ T* [(112 )-2400(nfds)]TJ 0.6 Tc 7.8 0 Td (=s)Tj 0 Tc 1.8 0 Td (elect\(fd+1, &readfds, NULL, NULL, &tv\);)Tj -9.6 -1.189 Td [(113 )-2400(if)-600(\(nfds <= 0\) {)]TJ T* [(114 )-4800(if)-600(\(nfds == 0\))]TJ 0 -1.189 TD (115 )Tj 9.6 0 Td (errno)Tj 0.6 Tc 3.6 0 Td (=E)Tj 0 Tc 1.8 0 Td (TIME;)Tj -15 -1.189 Td [(116 )-4800(return\(-1\);)]TJ 0 -1.189 TD [(117 )-2400(})]TJ T* [(118 )-2400(return\(read\(fd,)-600(buf, nbytes\)\);)]TJ T* [(119 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3915.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 367.4339 Tm [([95 )167(\320 )167(107])]TJ -0.092 Tc 5 0 Td [(We )-211(p)]TJ -0.018 Tc 2.265 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vide )-27(a )-27(function )-27(called)]TJ /TT0 1 Tf 9.877 0 Td (tread)Tj /T1_0 1 Tf 3.277 0 Td [(to )-27(r)18(ead )-27(a )-27(speci\336ed )-27(number )-27(of )-27(bytes, )-27(but)]TJ -16.343 -1.2 Td [(block )-143(for )-143(at )-143(most)]TJ /T1_2 1 Tf 8.243 0 Td (timout)Tj /T1_0 1 Tf 3.116 0 Td [(seconds )-143(befor)]TJ 0.3935 Tc 6.191 0 Td (eg)Tj 0 Tc 1.429 0 Td [(iving )-143(up.)-643(This )-143(function )-143(is )-143(useful)]TJ -18.978 -1.2 Td [(when )-126(r)18(eading )-126(fr)18(om )-126(a )-126(socket )-126(or )-126(a )-126(pipe.)-628(If )-126(we )-126(don\325t )-126(r)18(eceive )-126(data )-126(befor)]TJ 0.3764 Tc 31.757 0 Td (et)Tj 0 Tc 1.181 0 Td (he)Tj -32.939 -1.2 Td [(speci\336ed )-263(time )-263(limit, )-263(we )-263(r)16(eturn)]TJ /TT1 1 Tf 14.888 0 Td (!)Tj /T1_0 1 Tf 0.5135 Tc (1w)Tj 0 Tc 2.396 0 Td (ith)Tj /TT0 1 Tf 1.712 0 Td (errno)Tj /T1_0 1 Tf 3.514 0 Td [(set )-263(to)]TJ /TT0 1 Tf 3.128 0 Td (ETIME)Tj /T1_0 1 Tf 0.7634 Tc (.I)Tj 0.5134 Tc 4.35 0 Td (fd)Tj 0 Tc 1.457 0 Td [(ata )-263(is)]TJ -31.446 -1.2 Td [(available )-1(within )-1(the )-1(time )-1(limit, )-1(we )-1(r)18(eturn )-1(at )-1(most)]TJ /T1_2 1 Tf 21.915 0 Td (nbytes)Tj /T1_0 1 Tf 2.881 0 Td [(bytes )-1(of )-1(data, )-1(but )-1(we)]TJ -24.796 -1.2 Td [(can r)18(eturn less than r)18(equested if all the data doesn\325t arrive in time.)]TJ -0.092 Tc 0 -1.8 TD [(We )-329(u)]TJ 0 Tc 2.385 0 Td (se)Tj /TT0 1 Tf 1.298 0 Td (tread)Tj /T1_0 1 Tf 3.395 0 Td [(to )-145(pr)18(event )-145(denial-of-service )-145(attacks )-145(on )-145(the )-145(printer )-145(spooling)]TJ -7.079 -1.2 Td [(daemon. )-382(A)-381(malicious )-132(user )-132(might )-132(r)19(epeatedly )-132(try )-132(to )-132(connect )-132(to )-132(the )-132(daemon)]TJ -0 -1.2 Td [(without )-1(sending )-1(it )-1(data, )-1(just )-1(to )-1(pr)18(event )-1(other )-1(users )-1(fr)18(om )-1(being )-1(able )-1(to )-1(submit)]TJ 0 -1.2 TD [(print )-71(jobs.)-571(By )-71(giving )-71(up )-71(after )-71(a )-71(r)15(easonable )-71(amount )-71(of )-71(time, )-71(we )-71(pr)18(event )-71(this)]TJ T* [(fr)18(om )-52(happening.)-553(The )-52(tricky )-52(part )-52(is )-52(selecting )-52(a )-52(suitable )-52(timeout )-52(value )-52(that )-52(is)]TJ T* [(lar)18(ge )-110(enough )-110(to )-110(pr)18(event )-110(pr)20(ematur)]TJ 0.3596 Tc 15.416 0 Td (ef)Tj 0 Tc 1.172 0 Td [(ailur)18(es )-110(when )-110(the )-110(system )-110(is )-110(under )-110(load)]TJ -16.588 -1.2 Td [(and )-166(tasks )-166(ar)]TJ 0.4165 Tc 5.633 0 Td (et)Tj 0 Tc 1.221 0 Td [(aking )-166(longer )-166(to )-166(complete.)-666(If )-166(we )-166(choose )-166(a )-166(value )-166(that )-166(is )-166(too)]TJ -6.854 -1.2 Td [(lar)18(ge, )-174(however)74(,)-424(we)-424(might )-174(enable )-174(denial-of-service )-174(attacks )-174(by )-174(allowing )-174(the)]TJ 0 -1.2 Td [(daemon to consume too many r)18(esour)18(ces to pr)18(ocess the pending r)18(equests.)]TJ -5 -1.72 Td [([108 )167(\320 )167(1)54(19] )-472(W)]TJ 0.2823 Tc 5.908 0 Td (eu)Tj 0 Tc 1.364 0 Td (se)Tj /TT0 1 Tf 1.185 0 Td (select)Tj /T1_0 1 Tf 3.882 0 Td [(to )-32(wait )-32(for )-32(the )-32(speci\336ed )-32(\336le )-32(descriptor )-32(to )-32(be )-32(r)16(eadable. )-282(If)-282(the)]TJ -7.34 -1.2 Td [(time )-116(limit )-116(expir)18(es )-116(befor)]TJ 0.3658 Tc 10.613 0 Td (ed)Tj 0 Tc 1.456 0 Td [(ata )-116(is )-116(available )-116(to )-116(be )-116(r)19(ead,)]TJ /TT0 1 Tf 12.327 0 Td (select)Tj /T1_0 1 Tf -0.018 Tc 3.966 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-116(0, )-116(so)]TJ -29.218 -1.2 Td [(we )-49(set)]TJ /TT0 1 Tf 3.141 0 Td (errno)Tj /T1_0 1 Tf 3.299 0 Td (to)Tj /TT0 1 Tf 1.171 0 Td (ETIME)Tj /T1_0 1 Tf 3.299 0 Td [(in )-49(this )-49(case.)-550(If)]TJ /TT0 1 Tf 6.71 0 Td (select)Tj /T1_0 1 Tf 3.899 0 Td [(fails )-49(or )-49(times )-49(out, )-49(we )-49(r)17(eturn)]TJ /TT1 1 Tf -21.52 -1.2 Td (!)Tj /T1_0 1 Tf [(1. )-250(Otherwise,)-250(we r)18(eturn whatever data is available.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47365 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (839)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(821 )-2400(success)]TJ 0.6 Tc 9.6 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -11.4 -1.189 Td [(822 )-2400(bufsz)]TJ 0.6 Tc 8.4 0 Td (=I)Tj 0 Tc 1.8 0 Td (OBUFSZ;)Tj -10.2 -1.189 Td [(823 )-2400(if)-600(\(\(bp = malloc\(IOBUFSZ\)\) == NULL\))]TJ 0 -1.189 TD [(824 )-4800(log_sys\("printer_status:)-600(can\325t allocate read buffer"\);)]TJ 0 -2.021 TD [(825 )-2400(while)-600(\(\(nr = tread\(sfd, bp, bufsz, 5\)\) > 0\) {)]TJ 0 -1.189 TD [(826 )-4800(/*)]TJ T* (827 )Tj 7.8 0 Td [(*)-600(Find the status.)-1200(Response starts with "HTTP/x.y")]TJ -7.8 -1.189 Td (828 )Tj 7.8 0 Td [(*)-600(so we can skip the first 8 characters.)]TJ -7.8 -1.189 Td (829 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(830 )-4800(cp)-600(=)-600(bp)-600(+)-600(8;)]TJ T* [(831 )-4800(datsz)]TJ 0.6 Tc 10.8 0 Td (=n)Tj 0 Tc 1.8 0 Td (r;)Tj -12.6 -1.189 Td [(832 )-4800(while)-600(\(isspace\(\(int\)*cp\)\))]TJ T* (833 )Tj 9.6 0 Td (cp++;)Tj -9.6 -1.189 Td [(834 )-4800(statcode)]TJ 0.6 Tc 12.6 0 Td (=c)Tj 0 Tc 1.8 0 Td (p;)Tj -14.4 -1.189 Td [(835 )-4800(while)-600(\(isdigit\(\(int\)*cp\)\))]TJ T* (836 )Tj 9.6 0 Td (cp++;)Tj -9.6 -1.189 Td [(837 )-4800(if)-600(\(cp == statcode\) { /* Bad format; log it and move on */)]TJ T* (838 )Tj 9.6 0 Td (log_msg\(bp\);)Tj -9.6 -1.189 Td [(839 )-4800(})-600(else {)]TJ T* (840 )Tj 9.6 0 Td (*cp++)Tj 0.6 Tc 3.6 0 Td (=\325)Tj 0 Tc 1.8 0 Td (\\0\325;)Tj -15 -1.189 Td (841 )Tj 9.6 0 Td (reason)Tj 0.6 Tc 4.2 0 Td (=c)Tj 0 Tc 1.8 0 Td (p;)Tj -15.6 -1.189 Td (842 )Tj 9.6 0 Td [(while)-600(\(*cp != \325\\r\325 && *cp != \325\\n\325\))]TJ -9.6 -1.189 Td (843 )Tj 12 0 Td (cp++;)Tj -12 -1.189 Td (844 )Tj 9.6 0 Td (*cp)Tj 0.6 Tc 2.4 0 Td (=\325)Tj 0 Tc 1.8 0 Td (\\0\325;)Tj -13.8 -1.189 Td (845 )Tj 9.6 0 Td (code)Tj 0.6 Tc 3 0 Td (=a)Tj 0 Tc 1.8 0 Td (toi\(statcode\);)Tj -14.4 -1.189 Td (846 )Tj 9.6 0 Td [(if)-600(\(HTTP_INFO\(code\)\))]TJ -9.6 -1.189 Td (847 )Tj 12 0 Td (continue;)Tj -12 -1.189 Td (848 )Tj 9.6 0 Td [(if)-600(\(!HTTP_SUCCESS\(code\)\) { /* probable error: log it */)]TJ -9.6 -1.189 Td (849 )Tj 12 0 Td (bp[datsz])Tj 0.6 Tc 6 0 Td (=\325)Tj 0 Tc 1.8 0 Td (\\0\325;)Tj -19.8 -1.189 Td (850 )Tj 12 0 Td [(log_msg\("error:)-600(%s", reason\);)]TJ -12 -1.189 Td (851 )Tj 12 0 Td (break;)Tj -12 -1.189 Td (852 )Tj 9.6 0 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3155.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 291.473 Tm [([821 )167(\320 )167(838])]TJ -0.092 Tc 5 0 Td [(We )-321(a)]TJ 0 Tc 2.274 0 Td [(llocate )-137(a )-137(buf)18(fer )-137(and )-137(r)16(ead )-137(fr)18(om )-137(the )-137(printer)]TJ 0.3875 Tc 18.948 0 Td (,e)Tj 0 Tc 1.116 0 Td [(xpecting )-137(a )-137(r)18(esponse )-137(to )-137(be)]TJ -22.339 -1.2 Td [(available )-180(within )-180(about )-180(5 )-180(seconds.)]TJ -0.092 Tc 16.067 0 Td [(We )-365(s)]TJ 0 Tc 2.241 0 Td [(kip )-180(the)]TJ /TT0 1 Tf 3.696 0 Td (HTTP/1.1)Tj /T1_0 1 Tf 5.23 0 Td [(string )-180(and )-180(any)]TJ -27.234 -1.2 Td [(white )-40(space )-40(that )-40(starts )-40(the )-40(message.)-540(The )-40(numeric )-40(status )-40(code )-40(should )-40(follow)93(.)]TJ 0 -1.2 TD (If it doesn\325t, we log the contents of the message.)Tj -5 -1.72 Td [([839 )167(\320 )167(844])-668(If )-46(we )-46(have )-46(found )-46(a )-46(numeric )-46(status )-46(code )-46(in )-46(the )-46(r)18(esponse, )-46(we )-46(convert )-46(the )-46(\336rst)]TJ 5 -1.2 Td [(nondigit )-180(character )-180(following )-180(the )-180(status )-180(code )-180(to )-180(a )-180(null )-180(byte )-180(\(this )-180(character)]TJ T* [(should )-170(be )-170(some )-170(form )-170(of )-170(white )-170(space\).)-670(The )-170(r)20(eason )-170(string )-170(\(a )-170(text )-170(message\))]TJ T* [(should )-165(follow)]TJ 0.6655 Tc 6.221 0 Td (.W)Tj 0.4155 Tc 1.824 0 Td (es)Tj 0 Tc 1.319 0 Td [(ear)18(ch )-165(for )-165(the )-165(terminating )-165(carriage )-165(r)16(eturn )-166(or )-166(line )-166(feed,)]TJ -9.363 -1.2 Td (also terminating the text string with a null byte.)Tj -5 -1.72 Td [([845 )167(\320 )167(852])]TJ -0.092 Tc 5 0 Td [(We )-199(c)]TJ 0 Tc 2.096 0 Td [(all )-15(the)]TJ /TT0 1 Tf 2.999 0 Td (atoi)Tj /T1_0 1 Tf 2.665 0 Td [(function )-15(to )-15(convert )-15(the )-15(status )-15(code )-15(string )-15(into )-15(an )-15(integer)]TJ 0.5149 Tc 24.805 0 Td (.I)Tj 0 Tc 1.102 0 Td (f)Tj -33.667 -1.2 Td [(this )-66(is )-66(an )-66(informational )-66(message )-66(only)113(,)-316(we)-316(ignor)18(e)-316(it)-316(and )-66(continue )-66(the )-66(loop )-66(to)]TJ -0.018 Tc -0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ad )-7(mor)18(e. )-257(W)]TJ 0.2567 Tc 5.317 0 Td (ee)Tj 0 Tc 1.215 0 Td [(xpect )-7(to )-7(see )-7(either )-7(a )-7(success )-7(message )-7(or )-7(an )-7(err)18(or )-7(message.)-503(If)]TJ -7.388 -1.2 Td [(we get an err)18(or message, we log the err)18(or and br)18(eak out of the loop.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47366 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (838)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(786 )-1200({)]TJ 0 -1.189 TD [(787 )-2400(ssize_t)-600(nr;)]TJ T* [(788 )-2400(char)-2400(*bp = *bpp;)]TJ T* [(789 )-2400(int )-2400(bsz)]TJ 0.6 Tc 12 0 Td (=*)Tj 0 Tc 1.8 0 Td (bszp;)Tj -13.8 -1.783 Td [(790 )-2400(if)-600(\(off >= bsz\) {)]TJ T* [(791 )-4800(bsz)-600(+= IOBUFSZ;)]TJ T* [(792 )-4800(if)-600(\(\(bp = realloc\(*bpp, bsz\)\) == NULL\))]TJ T* (793 )Tj 9.6 0 Td [(log_sys\("readmore:)-600(can\325t allocate bigger read buffer"\);)]TJ -9.6 -1.189 Td [(794 )-4800(*bszp)]TJ 0.6 Tc 10.8 0 Td (=b)Tj 0 Tc 1.8 0 Td (sz;)Tj -12.6 -1.189 Td [(795 )-4800(*bpp)]TJ 0.6 Tc 10.2 0 Td (=b)Tj 0 Tc 1.8 0 Td (p;)Tj -12 -1.189 Td [(796 )-2400(})]TJ T* [(797 )-2400(if)-600(\(\(nr = tread\(sockfd, &bp[off], bsz-off, 1\)\) > 0\))]TJ T* [(798 )-4800(return\(off+nr\);)]TJ T* [(799 )-2400(else)]TJ T* [(800 )-4800(return\(-1\);)]TJ T* [(801 )-1200(})]TJ 0 -1.783 TD [(802 )-1200(/*)]TJ 0 -1.189 TD [(803 )-1800(*)-600(Read and parse the response from the printer.)-1200(Return 1)]TJ 0 -1.189 TD [(804 )-1800(*)-600(if the request was successful, and 0 otherwise.)]TJ 0 -1.189 TD [(805 )-1800(*)]TJ 0 -1.189 TD [(806 )-1800(*)-600(LOCKING: none.)]TJ 0 -1.189 TD [(807 )-1800(*/)]TJ 0 -1.189 TD [(808 )-1200(int)]TJ T* [(809 )-1200(printer_status\(int)-600(sfd, struct job *jp\))]TJ 0 -1.189 TD [(810 )-1200({)]TJ 0 -1.189 TD [(811 )-2400(int)]TJ 14.4 0 Td (i, success, code, len, found, bufsz, datsz;)Tj -14.4 -1.189 Td [(812 )-2400(int32_t)]TJ 14.4 0 Td (jobid;)Tj -14.4 -1.189 Td [(813 )-2400(ssize_t)]TJ 14.4 0 Td (nr;)Tj -14.4 -1.189 Td [(814 )-2400(char)]TJ 14.4 0 Td (*bp, *cp, *statcode, *reason, *contentlen;)Tj -14.4 -1.189 Td [(815 )-2400(struct)-600(ipp_hdr )-600(*hp;)]TJ 0 -1.783 TD [(816 )-2400(/*)]TJ 0 -1.189 TD [(817 )-3000(*)-600(Read the HTTP header followed by the IPP response header.)]TJ 0 -1.189 TD [(818 )-3000(*)-600(They can be returned in multiple read attempts.)-1200(Use the)]TJ 0 -1.189 TD [(819 )-3000(*)-600(Content-Length specifier to determine how much to read.)]TJ 0 -1.189 TD [(820 )-3000(*/)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2748.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 250.8179 Tm [([786 )167(\320 )167(801])-668(If )-49(we\325r)18(e)-299(at)-299(the )-49(end )-49(of )-49(the )-49(buf)19(fer)74(,)-299(we)-299(r)18(eallocate )-49(a )-49(bigger )-49(buf)18(fer )-49(and )-49(r)18(eturn )-49(the)]TJ 5 -1.2 Td [(new )-331(starting )-331(addr)18(ess )-331(and )-331(size )-331(thr)18(ough )-331(the)]TJ /TT0 1 Tf 21.133 0 Td (bpp)Tj /T1_1 1 Tf 2.381 0 Td (and)Tj /TT0 1 Tf 2.274 0 Td (bszp)Tj /T1_1 1 Tf 2.981 0 Td (parameters,)Tj -0.018 Tc -28.768 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (spectively)Tj 0.5621 Tc 4.345 0 Td (.W)Tj 0.3121 Tc 1.72 0 Td (er)Tj 0 Tc 1.168 0 Td [(ead )-62(as )-62(much )-62(as )-62(the )-62(buf)18(fer )-62(will )-62(hold, )-62(starting )-62(at )-62(the )-62(end )-62(of)]TJ -8.089 -1.2 Td [(the )-109(data )-109(alr)18(eady )-109(in )-109(the )-109(buf)16(fer)]TJ 0.3595 Tc 13.3 0 Td (,a)Tj 0 Tc 1.109 0 Td [(nd )-109(r)18(eturn )-110(the )-110(new )-110(end-of-data )-110(of)18(fset )-110(in )-110(the)]TJ -14.409 -1.2 Td [(buf)18(fer)]TJ 0.5 Tc 2.604 0 Td (.I)Tj 0.25 Tc 1.087 0 Td (ft)Tj 0 Tc 0.909 0 Td (he)Tj /TT0 1 Tf 1.311 0 Td (read)Tj /T1_1 1 Tf 2.65 0 Td [(fails or the timeout expir)18(es, we r)18(eturn)]TJ /TT1 1 Tf 16.863 0 Td (!)Tj /T1_1 1 Tf (1.)Tj -30.424 -1.6 Td [([802 )167(\320 )167(820])-668(The)]TJ /TT0 1 Tf 7.057 0 Td (printer_status)Tj /T1_1 1 Tf 8.784 0 Td [(function )-133(r)18(eads )-133(the )-133(printer)-75(\325s )-133(r)18(esponse )-133(to )-133(a )-133(print-job)]TJ -0.018 Tc -10.841 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quest. )-513(W)]TJ 0.5131 Tc 4.313 0 Td (ed)Tj 0 Tc 1.603 0 Td [(on\325t )-263(know )-263(how )-263(the )-263(printer )-263(will )-263(r)18(espond; )-263(it )-263(might )-263(send )-263(a)]TJ -0.018 Tc -6.772 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sponse )-61(in )-61(multiple )-61(messages, )-61(send )-61(the )-61(complete )-61(r)18(esponse )-61(in )-61(one )-61(message,)]TJ -0.856 -1.2 Td [(or )-132(include )-132(intermediate )-132(acknowledgements, )-132(such )-132(as )-132(HTTP)]TJ /TT0 1 Tf 27.018 0 Td [(100 )218(Continue)]TJ /T1_1 1 Tf -27.018 -1.2 Td [(messages. )-250(W)]TJ 0.25 Tc 5.827 0 Td (en)Tj 0 Tc 1.311 0 Td (eed to handle all these possibilities.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47367 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (825)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(385 )-2400(req.size)]TJ 0.6 Tc 10.2 0 Td (=n)Tj 0 Tc 1.8 0 Td (tohl\(req.size\);)Tj -12 -1.189 Td [(386 )-2400(req.flags)]TJ 0.6 Tc 10.8 0 Td (=n)Tj 0 Tc 1.8 0 Td (tohl\(req.flags\);)Tj -12.6 -1.783 Td [(387 )-2400(/*)]TJ 0 -1.189 TD [(388 )-3000(*)-600(Create the data file.)]TJ T* [(389 )-3000(*/)]TJ T* [(390 )-2400(jobid)]TJ 0.6 Tc 8.4 0 Td (=g)Tj 0 Tc 1.8 0 Td (et_newjobno\(\);)Tj -10.2 -1.189 Td [(391 )-2400(sprintf\(name,)-600("%s/%s/%d", SPOOLDIR, DATADIR, jobid\);)]TJ T* [(392 )-2400(fd)]TJ 0.6 Tc 6.6 0 Td (=c)Tj 0 Tc 1.8 0 Td (reat\(name, FILEPERM\);)Tj -8.4 -1.189 Td [(393 )-2400(if)-600(\(fd < 0\) {)]TJ 0 -1.189 TD [(394 )-4800(res.jobid)]TJ 0.6 Tc 13.2 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -15 -1.189 Td [(395 )-4800(res.retcode)]TJ 0.6 Tc 14.4 0 Td (=h)Tj 0 Tc 1.8 0 Td (tonl\(errno\);)Tj -16.2 -1.189 Td [(396 )-4800(log_msg\("client_thread:)-600(can\325t create %s: %s", name,)]TJ 0 -1.189 TD (397 )Tj 8.4 0 Td (strerror\(res.retcode\)\);)Tj -8.4 -1.189 Td [(398 )-4800(strncpy\(res.msg,)-600(strerror\(res.retcode\), MSGLEN_MAX\);)]TJ T* [(399 )-4800(writen\(sockfd,)-600(&res, sizeof\(struct printresp\)\);)]TJ 0 -1.189 TD [(400 )-4800(pthread_exit\(\(void)-600(*\)1\);)]TJ 0 -1.189 TD [(401 )-2400(})]TJ 0 -1.783 TD [(402 )-2400(/*)]TJ 0 -1.189 TD [(403 )-3000(*)-600(Read the file and store it in the spool directory.)]TJ 0 -1.189 TD [(404 )-3000(*)-600(Try to figure out if the file is a PostScript file)]TJ T* [(405 )-3000(*)-600(or a plain text file.)]TJ T* [(406 )-3000(*/)]TJ 0 -1.189 TD [(407 )-2400(first)]TJ 0.6 Tc 8.4 0 Td (=1)Tj 0 Tc 1.8 0 Td (;)Tj -10.2 -1.189 Td [(408 )-2400(while)-600(\(\(nr = tread\(sockfd, buf, IOBUFSZ, 20\)\) > 0\) {)]TJ 0 -1.189 TD [(409 )-4800(if)-600(\(first\) {)]TJ 0 -1.189 TD (410 )Tj 9.6 0 Td (first)Tj 0.6 Tc 3.6 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -15 -1.189 Td (411 )Tj 9.6 0 Td [(if)-600(\(strncmp\(buf, "%!PS", 4\) != 0\))]TJ -9.6 -1.189 Td (412 )Tj 12 0 Td [(req.flags)-600(|= PR_TEXT;)]TJ -12 -1.189 Td [(413 )-4800(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3444.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 320.3596 Tm [([385 )167(\320 )167(401])]TJ -0.092 Tc 5 0 Td [(We )-186(c)]TJ 0 Tc 2.083 0 Td [(onvert )-2(the )-2(integer )-2(\336elds )-2(in )-2(the )-2(r)19(equest )-2(header )-2(to )-2(host )-2(byte )-2(or)18(der )-2(and )-2(call)]TJ /TT0 1 Tf -2.083 -1.2 Td (get_newjobno)Tj /T1_0 1 Tf 7.547 0 Td [(to )-97(r)18(eserve )-97(the )-97(next )-97(job )-97(ID )-97(for )-97(this )-97(print )-97(r)18(equest. )-347(W)]TJ 0.347 Tc 23.022 0 Td (ec)Tj -0.018 Tc 1.27 0 Td (re)Tj 0 Tc 0.856 0 Td (ate)Tj -32.695 -1.2 Td [(the )-78(job )-78(data )-78(\336le, )-78(named)]TJ /TT0 1 Tf 10.975 0 Td (/var/spool/printer/data/)Tj /T1_2 1 Tf (jobid)Tj /T1_0 1 Tf 0.3276 Tc (,w)Tj 0 Tc 17.775 0 Td [(her)18(e)]TJ /T1_2 1 Tf 2.245 0 Td (jobid)Tj /T1_0 1 Tf 2.291 0 Td (is)Tj -33.285 -1.2 Td [(the )-14(r)18(equest\325s )-14(job )-14(ID.)]TJ -0.092 Tc 9.337 0 Td [(We )-198(u)]TJ 0 Tc 2.254 0 Td [(se )-14(permissions )-14(that )-14(pr)18(event )-14(others )-14(fr)18(om )-14(being )-14(able)]TJ -0.018 Tc -11.591 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ad )-63(the )-63(\336les )-63(\()]TJ /TT0 1 Tf 5.57 0 Td (FILEPERM)Tj /T1_0 1 Tf 5.113 0 Td [(is )-63(de\336ned )-63(as)]TJ /TT0 1 Tf 5.946 0 Td (S_IRUSR|S_IWUSR)Tj /T1_0 1 Tf 9.313 0 Td (in)Tj /TT0 1 Tf 1.186 0 Td (print.h)Tj /T1_0 1 Tf [(\). )-313(If)]TJ -27.984 -1.2 Td [(we )-2(can\325t )-2(cr)18(eate )-2(the )-2(\336le, )-2(we )-2(log )-2(an )-2(err)16(or )-2(message, )-2(send )-2(a )-2(failur)]TJ 0.2521 Tc 27.052 0 Td (er)Tj 0 Tc 1.108 0 Td [(esponse )-2(back)]TJ -28.16 -1.2 Td [(to the client, and terminate the thr)18(ead by calling)]TJ /TT0 1 Tf 21.452 0 Td (pthread_exit)Tj /T1_0 1 Tf (.)Tj -26.452 -1.6 Td [([402 )167(\320 )167(413])]TJ -0.092 Tc 5 0 Td [(We )-320(r)]TJ 0 Tc 2.15 0 Td [(ead )-136(the )-136(\336le )-136(contents )-136(fr)18(om )-136(the )-136(client, )-136(with )-136(the )-136(intention )-136(of )-136(writing )-136(the)]TJ -2.15 -1.2 Td [(contents )-294(out )-294(to )-294(our )-294(private )-294(copy )-294(of )-294(the )-294(data )-294(\336le.)-795(But )-294(befor)18(e)-544(we)-544(write)]TJ -0 -1.2 Td [(anything, )-102(we )-102(need )-102(to )-102(check )-102(if )-102(this )-102(is )-102(a )-102(PostScript )-102(\336le )-102(the )-102(\336rst )-102(time )-102(thr)19(ough)]TJ 0 -1.2 TD [(the )-23(loop.)-524(If )-23(the )-23(\336le )-23(doesn\325t )-23(begin )-23(with )-23(the )-23(pattern)]TJ /TT0 1 Tf 22.371 0 Td (%!PS)Tj /T1_0 1 Tf [(,)-273(we)-273(can )-23(assume )-23(that)]TJ -22.371 -1.2 Td [(the )-53(\336le )-53(is )-53(plaintext, )-53(so )-53(we )-53(set )-53(the)]TJ /TT0 1 Tf 14.964 0 Td (PR_TEXT)Tj /T1_0 1 Tf 4.503 0 Td [(\337ag )-53(in )-53(the )-53(r)18(equest )-53(header )-53(in )-53(this)]TJ -19.467 -1.2 Td [(case. )-387(\(Recall)-387(that )-137(the )-137(client )-137(can )-137(also )-137(set )-137(this )-137(\337ag )-137(if )-137(the)]TJ /TT0 1 Tf 25.347 0 Td (-t)Tj /T1_0 1 Tf 1.587 0 Td [(\337ag )-137(is )-137(included)]TJ -26.935 -1.2 Td [(when )-63(the)]TJ /TT0 1 Tf 4.49 0 Td (print)Tj /T1_0 1 Tf 3.313 0 Td [(command )-63(is )-63(executed.\))-563(Although )-63(PostScript )-63(pr)18(ograms )-63(ar)18(e)]TJ -7.803 -1.2 Td [(not )-355(r)18(equir)18(ed )-355(to )-355(start )-355(with )-355(the )-355(pattern)]TJ /TT0 1 Tf 18.937 0 Td (%!PS)Tj /T1_0 1 Tf 0.6048 Tc (,t)Tj 0 Tc 3.581 0 Td [(he )-355(document )-355(formatting)]TJ -22.517 -1.2 Td (guidelines \(Adobe Systems)Tj 12.274 0.04 Td ([)Tj 0.333 -0.04 Td (1999)Tj 2 0.04 Td (])Tj 0.25 Tc 0.333 -0.04 Td (\)s)Tj 0 Tc 1.007 0 Td [(tr)18(ongly r)18(ecommends that they do.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47368 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.14)]TJ /TT0 1 Tf 34.003 0 Td (sigaction)Tj /T1_0 1 Tf 5.9 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (353)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (The)Tj /TT0 1 Tf 1.964 0 Td (uc_stack)Tj /T1_0 1 Tf 5.09 0 Td [(\336eld )-40(describes )-40(the )-40(stack )-40(used )-40(by )-40(the )-40(curr)18(ent )-40(context.)-540(It )-40(contains )-40(at )-40(least)]TJ -7.054 -1.2 Td (the following members:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 639.1917 Tm [(void )-600(*ss_sp;)-2400(/* stack base or pointer */)]TJ 0 -1.189 TD [(size_t ss_size;)-1200(/* stack size */)]TJ T* [(int )-1800(ss_flags;)-600(/* flags */)]TJ /T1_0 1 Tf 7.9995 0 0 7.9995 183.589 593.1246 Tm [(When )-44(an )-44(implementation )-44(supports )-44(the )-44(r)19(eal-time )-44(signal )-44(extensions, )-44(signal )-44(handlers )-44(established)]TJ 0 -1.25 TD [(with )-134(the)]TJ /TT0 1 Tf 4.187 0 Td (SA_SIGINFO)Tj /T1_0 1 Tf 6.384 0 Td [(\337ag )-134(will )-134(r)19(esult )-134(in )-134(signals )-134(being )-134(queued )-134(r)19(eliably)]TJ 0.6338 Tc 21.521 0 Td (.A)Tj 0 Tc 2.046 0 Td [(separate )-134(range )-134(of)]TJ -0.018 Tc -34.137 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(served )-257(signal )-257(numbers )-257(is )-257(available )-257(for )-257(r)18(eal-time )-257(application )-257(use.)-757(Applications )-257(can )-257(pass)]TJ -0.856 -1.25 Td (information along with the signal by using the)Tj /TT0 1 Tf 20.766 0 Td (sigqueue)Tj /T1_0 1 Tf 5.05 0 Td (function \(Section 10.20\).)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1515.25 5411.25 cm 0 0 m 3461 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 161.3686 533.096 Tm [(Signal )-4705(Code)]TJ 26.302 0 Td (Reason)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1515.25 5291.25 cm 0 0 m 3461 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1515.25 5271.25 cm 0 0 m 3461 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 201.1318 519.0666 Tm (ILL_ILLOPC)Tj /T1_0 1 Tf 9.3 0 Td (illegal opcode)Tj /TT0 1 Tf -9.3 -1.25 Td (ILL_ILLOPN)Tj /T1_0 1 Tf 9.3 0 Td (illegal operand)Tj /TT0 1 Tf -9.3 -1.25 Td (ILL_ILLADR)Tj /T1_0 1 Tf 9.3 0 Td [(illegal addr)18(essing mode)]TJ /TT0 1 Tf -9.3 -1.25 Td (ILL_ILLTRP)Tj /T1_0 1 Tf 9.3 0 Td (illegal trap)Tj /TT0 1 Tf -9.3 -1.25 Td (ILL_PRVOPC)Tj /T1_0 1 Tf 9.3 0 Td (privileged opcode)Tj /TT0 1 Tf -9.3 -1.25 Td (ILL_PRVREG)Tj /T1_0 1 Tf 9.3 0 Td [(privileged r)18(egister)]TJ /TT0 1 Tf -9.3 -1.25 Td (ILL_COPROC)Tj /T1_0 1 Tf 9.3 0 Td [(copr)18(ocessor err)18(or)]TJ /TT0 1 Tf -9.3 -1.25 Td (ILL_BADSTK)Tj /T1_0 1 Tf 9.3 0 Td [(internal stack err)18(or)]TJ /TT0 1 Tf -15 4.375 Td (SIGILL)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1515.25 4451.25 cm 0 0 m 3461 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 201.1197 437.0551 Tm (FPE_INTDIV)Tj /T1_0 1 Tf 9.3 0 Td [(integer divide by zer)18(o)]TJ /TT0 1 Tf -9.3 -1.25 Td (FPE_INTOVF)Tj /T1_0 1 Tf 9.3 0 Td (integer over\337ow)Tj /TT0 1 Tf -9.3 -1.25 Td (FPE_FLTDIV)Tj /T1_0 1 Tf 9.3 0 Td [(\337oating-point divide by zer)18(o)]TJ /TT0 1 Tf -9.3 -1.25 Td (FPE_FLTOVF)Tj /T1_0 1 Tf 9.3 0 Td (\337oating-point over\337ow)Tj /TT0 1 Tf -9.3 -1.25 Td (FPE_FLTUND)Tj /T1_0 1 Tf 9.3 0 Td (\337oating-point under\337ow)Tj /TT0 1 Tf -9.3 -1.25 Td (FPE_FLTRES)Tj /T1_0 1 Tf 9.3 0 Td [(\337oating-point inexact r)18(esult)]TJ /TT0 1 Tf -9.3 -1.25 Td (FPE_FLTINV)Tj /T1_0 1 Tf 9.3 0 Td (invalid \337oating-point operation)Tj /TT0 1 Tf -9.3 -1.25 Td (FPE_FLTSUB)Tj /T1_0 1 Tf 9.3 0 Td (subscript out of range)Tj /TT0 1 Tf -15 4.375 Td (SIGFPE)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1515.25 3631.25 cm 0 0 m 3461 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 201.1077 355.0535 Tm (SEGV_MAPERR)Tj /T1_0 1 Tf 9.3 0 Td [(addr)18(ess not mapped to object)]TJ /TT0 1 Tf -9.3 -1.25 Td (SEGV_ACCERR)Tj /T1_0 1 Tf 9.3 0 Td (invalid permissions for mapped object)Tj /TT0 1 Tf -15 0.625 Td (SIGSEGV)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1515.25 3411.25 cm 0 0 m 3461 0 l S Q Q BT /TT0 1 Tf 7.9971 0 0 7.9971 201.0956 333.0401 Tm (BUS_ADRALN)Tj /T1_0 1 Tf 9.3 0 Td [(invalid addr)18(ess alignment)]TJ /TT0 1 Tf -9.3 -1.25 Td (BUS_ADRERR)Tj /T1_0 1 Tf 9.3 0 Td [(nonexistent physical addr)18(ess)]TJ /TT0 1 Tf -9.3 -1.25 Td (BUS_OBJERR)Tj /T1_0 1 Tf 9.3 0 Td [(object-speci\336c har)18(dwar)]TJ 0.25 Tc 10.234 0 Td (ee)Tj 0 Tc 1.208 0 Td [(rr)18(or)]TJ /TT0 1 Tf -26.442 1.25 Td (SIGBUS)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1515.25 3091.25 cm 0 0 m 3461 0 l S Q Q BT /TT0 1 Tf 7.9966 0 0 7.9966 201.0835 301.0335 Tm (TRAP_BRKPT)Tj /T1_0 1 Tf 9.3 0 Td [(pr)18(ocess br)18(eakpoint trap)]TJ /TT0 1 Tf -9.3 -1.25 Td (TRAP_TRACE)Tj /T1_0 1 Tf 9.3 0 Td [(pr)18(ocess trace trap)]TJ /TT0 1 Tf -15 0.625 Td (SIGTRAP)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1515.25 2871.25 cm 0 0 m 3461 0 l S Q Q BT /TT0 1 Tf 7.9962 0 0 7.9962 201.0715 279.026 Tm (CLD_EXITED)Tj /T1_0 1 Tf 9.3 0 Td (child has exited)Tj /TT0 1 Tf -9.3 -1.25 Td (CLD_KILLED)Tj /T1_0 1 Tf 9.3 0 Td [(child has terminated abnormally \(no cor)18(e\))]TJ /TT0 1 Tf -9.3 -1.25 Td (CLD_DUMPED)Tj /T1_0 1 Tf 9.3 0 Td [(child has terminated abnormally with cor)18(e)]TJ /TT0 1 Tf -9.3 -1.25 Td (CLD_TRAPPED)Tj /T1_0 1 Tf 9.3 0 Td (traced child has trapped)Tj /TT0 1 Tf -9.3 -1.25 Td (CLD_STOPPED)Tj /T1_0 1 Tf 9.3 0 Td (child has stopped)Tj /TT0 1 Tf -9.3 -1.25 Td (CLD_CONTINUED)Tj /T1_0 1 Tf 9.3 0 Td (stopped child has continued)Tj /TT0 1 Tf -15 3.125 Td (SIGCHLD)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1515.25 2251.25 cm 0 0 m 3461 0 l S Q Q BT /TT0 1 Tf 7.9957 0 0 7.9957 201.0594 217.0428 Tm (SI_USER)Tj /T1_0 1 Tf 9.3 0 Td (signal sent by)Tj /TT0 1 Tf 6.314 0 Td (kill)Tj -15.614 -1.25 Td (SI_QUEUE)Tj /T1_0 1 Tf 9.3 0 Td (signal sent by)Tj /TT0 1 Tf 6.314 0 Td (sigqueue)Tj -15.614 -1.25 Td (SI_TIMER)Tj /T1_0 1 Tf 9.3 0 Td (expiration of a timer set by)Tj /TT0 1 Tf 12.118 0 Td (timer_settime)Tj -21.418 -1.25 Td (SI_ASYNCIO)Tj /T1_0 1 Tf 9.3 0 Td [(completion of asynchr)18(onous I/O r)18(equest)]TJ /TT0 1 Tf -9.3 -1.25 Td (SI_MESGQ)Tj /T1_0 1 Tf 9.3 0 Td [(arrival of a message on a message queue \(r)18(eal-time extension\))]TJ /TT0 1 Tf -15 2.5 Td (Any)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1515.25 1731.25 cm 0 0 m 3461 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2695.25 1731.25 cm 0 0 m 0 3680 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1951.25 1731.25 cm 0 0 m 0 3680 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4976.25 1731.25 cm 0 0 m 0 3680 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1515.25 1731.25 cm 0 0 m 0 3680 l S Q Q BT /T1_1 1 Tf 7.9952 0 0 7.9952 256.2982 155.0669 Tm (Figure 10.17)Tj /TT0 1 Tf 6.195 0 Td (siginfo_t)Tj /T1_0 1 Tf 5.65 0 Td (code values)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47369 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (250)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-351(\336rst )-351(dif)18(fer)18(ence )-351(in )-351(these )-351(functions )-351(is )-351(that )-351(the )-351(\336rst )-351(four )-351(take )-351(a )-351(pathname)]TJ -1.8 -1.2 Td [(ar)18(gument, )-4(the )-4(next )-4(two )-4(take )-4(a )-4(\336lename )-4(ar)17(gument, )-4(and )-4(the )-4(last )-4(one )-4(takes )-4(a )-4(\336le )-4(descriptor)]TJ -0 -1.2 Td [(ar)18(gument. )-250(When)-250(a)]TJ /T1_2 1 Tf 8.699 0 Td (\336lename)Tj /T1_1 1 Tf 3.612 0 Td [(ar)18(gument is speci\336ed,)]TJ 0.883 Tc -10.511 -2.16 Td (\245I)Tj 0 Tc 1.826 0 Td (f)Tj /T1_2 1 Tf 0.583 0 Td (\336lename)Tj /T1_1 1 Tf 3.612 0 Td (contains a slash, it is taken as a pathname.)Tj 0.883 Tc -6.021 -1.6 Td (\245O)Tj 0 Tc 2.275 0 Td [(therwise, )-100(the )-100(executable )-100(\336le )-100(is )-100(sear)18(ched )-100(for )-100(in )-100(the )-100(dir)22(ectories )-99(speci\336ed )-99(by )-99(the)]TJ /TT0 1 Tf -0.786 -1.2 Td (PATH)Tj /T1_1 1 Tf 2.65 0 Td [(envir)18(onment variable.)]TJ -5.939 -2.16 Td (The)Tj /TT0 1 Tf 2.003 0 Td (PATH)Tj /T1_1 1 Tf 2.729 0 Td [(variable )-79(contains )-79(a )-79(list )-79(of )-79(dir)18(ectories, )-79(called )-79(path )-79(pr)18(e\336xes, )-79(that )-79(ar)]TJ 0.3287 Tc 29.146 0 Td (es)Tj 0 Tc 1.232 0 Td (eparated)Tj -35.109 -1.2 Td [(by colons.)-500(For example, the)]TJ /T1_2 1 Tf 12.575 0 Td (name=value)Tj /T1_1 1 Tf 5.19 0 Td [(envir)18(onment string)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 543.9975 Tm (PATH=/bin:/usr/bin:/usr/local/bin/:.)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5923 524.9287 Tm [(speci\336es )-102(four )-102(dir)17(ectories )-102(to )-102(sear)17(ch. )-352(The)-353(last )-102(path )-102(pr)18(e\336x )-102(speci\336es )-102(the )-102(curr)18(ent )-102(dir)16(ectory)111(.)]TJ -0 -1.2 Td [(\(A )-71(zer)18(o-length )-71(pr)18(e\336x )-71(also )-71(means )-71(the )-71(curr)20(ent )-71(dir)18(ectory)]TJ 0.5707 Tc 24.12 0 Td (.I)Tj 0.3207 Tc 1.158 0 Td (tc)Tj 0 Tc 1.091 0 Td [(an )-71(be )-71(speci\336ed )-71(as )-71(a )-71(colon )-71(at)]TJ -26.369 -1.2 Td (the beginning of the)Tj /T1_2 1 Tf 9.125 0 Td (value)Tj /T1_1 1 Tf 0.25 Tc (,t)Tj 0 Tc 2.993 0 Td [(wo colons in a r)18(ow)92(,)-250(or)-250(a)-250(colon at the end of the)]TJ /T1_2 1 Tf 20.752 0 Td (value)Tj /T1_1 1 Tf (.\))Tj 7.9995 0 0 7.9995 183.5896 479.9314 Tm (Ther)Tj 0.4173 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.396 0 Td [(re )-203(s)]TJ 0 Tc 1.697 0 Td [(ecurity )-167(r)18(easons )-167(for)]TJ /T1_2 1 Tf 8.951 0 Td (never)Tj /T1_1 1 Tf 2.64 0 Td [(including )-167(the )-167(curr)18(ent )-167(dir)18(ectory )-167(in )-167(the )-167(sear)18(ch )-167(path.)-668(See)]TJ -16.736 -1.25 Td (Gar\336nkel et al.)Tj 6.767 0.04 Td ([)Tj 0.333 -0.04 Td (2003)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td (.)Tj 9.9994 0 0 9.9994 147.5915 449.9332 Tm [(If )-66(either)]TJ /TT0 1 Tf 3.853 0 Td (execlp)Tj /T1_1 1 Tf 3.916 0 Td (or)Tj /TT0 1 Tf 1.257 0 Td (execvp)Tj /T1_1 1 Tf 3.916 0 Td [(\336nds )-66(an )-66(executable )-66(\336le )-66(using )-66(one )-66(of )-66(the )-66(path )-66(pr)21(e\336xes,)]TJ -14.741 -1.2 Td [(but )-9(the )-9(\336le )-9(isn\325t )-9(a )-9(machine )-9(executable )-9(that )-9(was )-9(generated )-9(by )-9(the )-9(link )-9(editor)]TJ 0.2594 Tc 33.137 0 Td (,t)Tj 0 Tc 0.835 0 Td [(he )-9(function)]TJ -33.973 -1.2 Td [(assumes )-100(that )-100(the )-100(\336le )-100(is )-100(a )-100(shell )-100(script )-100(and )-100(tries )-100(to )-100(invoke)]TJ /TT0 1 Tf 25.694 0 Td (/bin/sh)Tj /T1_1 1 Tf 4.55 0 Td [(with )-100(the)]TJ /T1_2 1 Tf 4.12 0 Td (\336lename)Tj /T1_1 1 Tf 3.712 0 Td (as)Tj -38.076 -1.2 Td (input to the shell.)Tj -0.055 Tc 1.8 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td (th)Tj /TT0 1 Tf 1.253 0 Td (fexecve)Tj /T1_1 1 Tf [(,)-345(we)-345(a)-1(void )-95(the )-95(issue )-95(of )-95(\336nding )-95(the )-95(corr)16(ect )-95(executable )-95(\336le )-95(altogether)]TJ -4.289 -1.2 Td [(and )-10(r)18(ely )-10(on )-10(the )-10(caller )-10(to )-10(do )-10(this.)-510(By )-10(using )-10(a )-10(\336le )-10(descriptor)]TJ 0.2601 Tc 25.52 0 Td (,t)Tj 0 Tc 0.836 0 Td [(he )-10(caller )-10(can )-10(verify )-10(the )-10(\336le )-10(is)]TJ -26.356 -1.2 Td [(in )-36(fact )-36(the )-36(intended )-36(\336le )-36(and )-36(execute )-36(it )-36(without )-36(a )-36(race.)-534(Otherwise, )-36(a )-36(malicious )-36(user )-36(with)]TJ 0 -1.2 TD [(appr)18(opriate )-87(privileges )-87(could )-87(r)18(eplace )-87(the )-87(executable )-87(\336le )-87(\(or )-87(a )-87(portion )-87(of )-87(the )-87(path )-87(to )-87(the)]TJ T* [(executable )-37(\336le\) )-37(after )-37(it )-37(has )-37(been )-37(located )-37(and )-37(veri\336ed, )-37(but )-37(befor)]TJ 0.2868 Tc 27.831 0 Td (et)Tj 0 Tc 1.092 0 Td [(he )-37(caller )-37(can )-37(execute )-37(it)]TJ -28.923 -1.2 Td [(\(r)18(ecall the discussion of T)18(OCTT)18(OU err)18(ors in Section 3.3\).)]TJ 1.8 -1.2 Td [(The )-15(next )-15(dif)19(fer)18(ence )-15(concerns )-15(the )-15(passing )-15(of )-15(the )-15(ar)18(gument )-15(list )-15(\()]TJ /TT0 1 Tf 27.511 0 Td (l)Tj /T1_1 1 Tf 0.865 0 Td [(stands )-15(for )-15(list )-15(and)]TJ /TT0 1 Tf 8.224 0 Td (v)Tj /T1_1 1 Tf -38.4 -1.2 Td [(stands )-220(for )-220(vector\).)-720(The )-220(functions)]TJ /TT0 1 Tf 15.883 0 Td (execl)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.72 0 Td (execlp)Tj /T1_1 1 Tf 0.4697 Tc (,a)Tj 0 Tc 4.82 0 Td (nd)Tj /TT0 1 Tf 1.663 0 Td (execle)Tj /T1_1 1 Tf -0.018 Tc 4.07 0 Td (re)Tj 0 Tc 0.856 0 Td (quir)Tj 0.4696 Tc 1.831 0 Td (ee)Tj 0 Tc 1.428 0 Td [(ach )-220(of )-220(the)]TJ -34.269 -1.2 Td (command)Tj 4.449 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-149(ar)18(guments )-149(to )-149(the )-149(new )-149(pr)18(ogram )-149(to )-149(be )-149(speci\336ed )-149(as )-149(separate )-149(ar)20(guments.)]TJ -0.092 Tc -4.782 -1.2 Td [(We )-338(m)]TJ 0 Tc 2.674 0 Td [(ark )-154(the )-154(end )-154(of )-154(the )-154(ar)18(guments )-154(with )-154(a )-154(null )-154(pointer)]TJ 0.6538 Tc 22.587 0 Td (.F)Tj 0 Tc 1.46 0 Td [(or )-154(the )-154(other )-154(four )-154(functions)]TJ -26.721 -1.2 Td (\()Tj /TT0 1 Tf (execv)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.895 0 Td (execvp)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.162 0 Td (execve)Tj /T1_1 1 Tf 0.3122 Tc (,a)Tj 0 Tc 4.662 0 Td (nd)Tj /TT0 1 Tf 1.505 0 Td (fexecve)Tj /T1_1 1 Tf [(\), )-62(we )-62(have )-62(to )-62(build )-62(an )-62(array )-62(of )-62(pointers )-62(to )-62(the)]TJ -14.225 -1.2 Td [(ar)18(guments, and the addr)18(ess of this array is the ar)18(gument to these thr)18(ee functions.)]TJ 1.8 -1.2 Td (Befor)Tj 0.6351 Tc 2.346 0 Td (eu)Tj 0 Tc 1.717 0 Td [(sing )-385(ISO )-385(C )-385(pr)18(ototypes, )-385(the )-385(normal )-385(way )-385(to )-385(show )-385(the )-385(command)]TJ 31.161 0.09 Td (-)Tj 0.333 -0.09 Td (line)Tj -37.357 -1.2 Td [(ar)18(guments for the thr)18(ee functions)]TJ /TT0 1 Tf 15.015 0 Td (execl)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.5 0 Td (execle)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 4.6 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (execlp)Tj /T1_1 1 Tf 3.85 0 Td (was)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5916 228.1762 Tm (char *)Tj /T1_2 1 Tf [(ar)18(g0)]TJ /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 7.215 0 Td (har *)Tj /T1_2 1 Tf [(ar)18(g1)]TJ /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 6.615 0 Td (.., char *)Tj /T1_2 1 Tf [(ar)18(gn)]TJ /TT0 1 Tf 0.6 Tc (,\()Tj 0 Tc 9.671 0 Td (char *\)0)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5932 209.1075 Tm [(This )-14(syntax )-14(explicitly )-14(shows )-14(that )-14(the )-14(\336nal )-14(command)]TJ 23.109 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-14(ar)18(gument )-14(is )-14(followed )-14(by )-14(a )-14(null)]TJ -23.442 -1.2 Td (pointer)Tj 0.5291 Tc 3.146 0 Td (.I)Tj 0.2791 Tc 1.116 0 Td (ft)Tj 0 Tc 0.938 0 Td [(his )-29(null )-29(pointer )-29(is )-29(speci\336ed )-29(by )-29(the )-29(constant)]TJ /TT0 1 Tf 19.392 0 Td (0)Tj /T1_1 1 Tf [(,)-279(we)-279(must )-29(cast )-29(it )-29(to )-29(a )-29(pointer; )-29(if)]TJ -24.592 -1.2 Td [(we )-122(don\325t, )-122(it\325s )-122(interpr)18(eted )-122(as )-122(an )-122(integer )-122(ar)18(gument. )-372(If)-372(the )-122(size )-122(of )-122(an )-122(integer )-122(is )-122(dif)17(fer)18(ent)]TJ T* [(fr)18(om the size of a)]TJ /TT0 1 Tf 7.849 0 Td [(char )267(*)]TJ /T1_1 1 Tf 0.25 Tc (,t)Tj 0 Tc 4.159 0 Td [(he actual ar)18(guments to the)]TJ /TT0 1 Tf 11.964 0 Td (exec)Tj /T1_1 1 Tf 2.65 0 Td [(function will be wr)18(ong.)]TJ -24.822 -1.2 Td [(The )-50(\336nal )-50(dif)18(fer)18(ence )-50(is )-50(the )-50(passing )-50(of )-50(the )-50(envir)17(onment )-50(list )-50(to )-50(the )-50(new )-50(pr)18(ogram. )-300(The)]TJ -1.8 -1.2 Td [(thr)18(ee )-39(functions )-39(whose )-39(names )-39(end )-39(in )-39(an)]TJ /TT0 1 Tf 17.757 0 Td (e)Tj /T1_1 1 Tf 0.889 0 Td (\()Tj /TT0 1 Tf (execle)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.472 0 Td (execve)Tj /T1_1 1 Tf 0.289 Tc (,a)Tj 0 Tc 4.639 0 Td (nd)Tj /TT0 1 Tf 1.482 0 Td (fexecve)Tj /T1_1 1 Tf 0.289 Tc (\)a)Tj 0 Tc 5.322 0 Td [(llow )-39(us )-39(to)]TJ -34.561 -1.2 Td [(pass )-263(a )-263(pointer )-263(to )-263(an )-263(array )-263(of )-263(pointers )-263(to )-263(the )-263(envir)19(onment )-263(strings.)-763(The )-263(other )-263(four)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47370 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.17)]TJ 37.4 0 Td [(Pr)18(ocess )-250(T)55(imes)]TJ /T1_1 1 Tf 8.433 0 Td (281)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD (static void pr_times\(clock_t, struct tms *, struct tms *\);)Tj 0 -1.189 TD (static void do_cmd\(char *\);)Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(i;)]TJ 0 -1.902 TD (setbuf\(stdout, NULL\);)Tj 0 -1.189 TD (for \(i = 1; i < argc; i++\))Tj 2.4 -1.189 Td [(do_cmd\(argv[i]\); )-1800(/*)-600(once for each command-line arg */)]TJ -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (static void)Tj 0 -1.189 TD [(do_cmd\(char *cmd\))-4200(/* execute and time the "cmd" */)]TJ T* ({)Tj 2.4 -1.189 Td [(struct tms)-1200(tmsstart, tmsend;)]TJ 0 -1.189 TD [(clock_t )-2400(start,)-600(end;)]TJ 0 -1.189 TD [(int )-4800(status;)]TJ 0 -1.902 TD (printf\("\\ncommand: %s\\n", cmd\);)Tj 0 -1.902 TD [(if \(\(start = times\(&tmsstart\)\) == -1\))-1800(/* starting values */)]TJ 2.4 -1.189 Td (err_sys\("times error"\);)Tj -2.4 -1.902 Td (if \(\(status = system\(cmd\)\) < 0\))Tj 24 0 Td (/* execute command */)Tj -21.6 -1.189 Td (err_sys\("system\(\) error"\);)Tj -2.4 -1.902 Td [(if \(\(end = times\(&tmsend\)\) == -1\))-4200(/* ending values */)]TJ 2.4 -1.189 Td (err_sys\("times error"\);)Tj -2.4 -1.902 Td (pr_times\(end-start, &tmsstart, &tmsend\);)Tj 0 -1.189 TD (pr_exit\(status\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (static void)Tj 0 -1.189 TD (pr_times\(clock_t real, struct tms *tmsstart, struct tms *tmsend\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(static long)-3000(clktck = 0;)]TJ 0 -1.902 TD [(if \(clktck == 0\))-2400(/* fetch clock ticks per second first time */)]TJ 2.4 -1.189 Td (if \(\(clktck = sysconf\(_SC_CLK_TCK\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("sysconf error"\);)Tj -4.8 -1.902 Td [(printf\(" )-600(real: )-600(%7.2f\\n",)-600(real / \(double\) clktck\);)]TJ 0 -1.189 TD [(printf\(" )-600(user: )-600(%7.2f\\n",)]TJ 1.2 -1.189 Td (\(tmsend->tms_utime - tmsstart->tms_utime\) / \(double\) clktck\);)Tj -1.2 -1.189 Td [(printf\(" )-600(sys:)-1800(%7.2f\\n",)]TJ 1.2 -1.189 Td (\(tmsend->tms_stime - tmsstart->tms_stime\) / \(double\) clktck\);)Tj -1.2 -1.189 Td [(printf\(" )-600(child)-600(user: )-600(%7.2f\\n",)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47371 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (408)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 0 Tc 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (int err;)Tj T* (struct timespec tout;)Tj T* (struct tm *tmp;)Tj T* (char buf[64];)Tj 0 -1.189 TD (pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;)Tj 0 -2.021 TD (pthread_mutex_lock\(&lock\);)Tj 0 -1.189 TD (printf\("mutex is locked\\n"\);)Tj T* (clock_gettime\(CLOCK_REALTIME, &tout\);)Tj T* (tmp = localtime\(&tout.tv_sec\);)Tj T* (strftime\(buf, sizeof\(buf\), "%r", tmp\);)Tj T* (printf\("current time is %s\\n", buf\);)Tj T* [(tout.tv_sec += 10;)-1200(/* 10 seconds from now */)]TJ T* (/* caution: this could lead to deadlock */)Tj 0 -1.189 TD (err = pthread_mutex_timedlock\(&lock, &tout\);)Tj 0 -1.189 TD (clock_gettime\(CLOCK_REALTIME, &tout\);)Tj T* (tmp = localtime\(&tout.tv_sec\);)Tj T* (strftime\(buf, sizeof\(buf\), "%r", tmp\);)Tj T* (printf\("the time is now %s\\n", buf\);)Tj T* (if \(err == 0\))Tj 2.4 -1.189 Td (printf\("mutex locked again!\\n"\);)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (printf\("can\325t lock mutex again: %s\\n", strerror\(err\)\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3401.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 232.8481 324.0791 Tm [(Figure 1)37(1.13)]TJ /T1_1 1 Tf 6.25 0 Td (Using)Tj /TT0 1 Tf 2.881 0 Td (pthread_mutex_timedlock)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 300.082 Tm [(Her)18(e)-250(is)-250(the output fr)18(om the pr)18(ogram in Figur)]TJ 0.25 Tc 19.914 0 Td (e1)Tj 0 Tc 1.174 0 Td (1.13.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5822 283.384 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (mutex is locked)Tj T* (current time is 11:41:58 AM)Tj T* (the time is now 11:42:08 AM)Tj T* (can\325t lock mutex again: Connection timed out)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 147.5822 222.5913 Tm [(This )-287(pr)18(ogram )-287(deliberately )-287(locks )-287(a )-287(mutex )-287(it )-287(alr)15(eady )-287(owns )-287(to )-287(demonstrate )-287(how)]TJ /TT0 1 Tf -1.8 -1.2 Td (pthread_mutex_timedlock)Tj /T1_1 1 Tf 14.216 0 Td [(works. )-416(This)-416(strategy )-166(is )-166(not )-166(r)18(ecommended )-166(in )-166(practice,)]TJ -14.216 -1.2 Td (because it can lead to deadlock.)Tj 1.8 -1.2 Td [(Note )-103(that )-103(the )-103(time )-103(blocked )-103(can )-103(vary )-103(for )-103(several )-103(r)18(easons: )-103(the )-103(start )-103(time )-103(could )-103(have)]TJ -1.8 -1.2 Td [(been )-111(in )-111(the )-111(middle )-111(of )-111(a )-111(second, )-111(the )-111(r)15(esolution )-111(of )-111(the )-111(system\325s )-111(clock )-111(might )-111(not )-111(be )-111(\336ne)]TJ 0 -1.2 TD [(enough )-1(to )-1(support )-1(the )-1(r)18(esolution )-1(of )-1(our )-1(timeout, )-1(or )-1(scheduling )-1(delays )-1(could )-1(pr)22(olong )-1(the)]TJ T* [(amount of time until the pr)18(ogram continues execution.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1506.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47372 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (194)Tj /T1_1 1 Tf 3.5 0 Td [(System )-250(Data )-250(Files )-250(and )-250(Information)]TJ 39.241 0 Td [(Chapter )-250(6)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(containing )-96(the )-96(\336rst )-96(day )-96(in )-96(January )-96(has )-96(four )-96(or )-96(mor)]TJ 0.3462 Tc 23.093 0 Td (ed)Tj 0 Tc 1.436 0 Td [(ays )-96(in )-96(the )-96(new )-96(year)]TJ 0.3462 Tc 8.876 0 Td (,t)Tj 0 Tc 0.922 0 Td [(hen )-96(this )-96(is)]TJ -34.327 -1.2 Td [(tr)18(eated )-28(as )-28(week )-28(1.)-528(Otherwise, )-28(it )-28(is )-28(tr)21(eated )-28(as )-28(the )-28(last )-28(week )-28(of )-28(the )-28(pr)18(evious )-28(year)]TJ 0.5277 Tc 35.019 0 Td (.I)Tj 0.2777 Tc 1.115 0 Td (nb)Tj 0 Tc 1.413 0 Td (oth)Tj -37.546 -1.2 Td [(cases, Monday is tr)18(eated as the \336rst day of the week.)]TJ 1.8 -1.2 Td [(As )-393(with)]TJ /TT0 1 Tf 4.522 0 Td (printf)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.494 0 Td (strftime)Tj /T1_1 1 Tf 5.444 0 Td [(supports )-393(modi\336ers )-393(for )-393(some )-393(of )-393(the )-393(conversion)]TJ -16.259 -1.2 Td [(speci\336ers. )-279(The)]TJ /TT0 1 Tf 6.875 0 Td (E)Tj /T1_1 1 Tf 0.879 0 Td (and)Tj /TT0 1 Tf 1.972 0 Td (O)Tj /T1_1 1 Tf 0.879 0 Td [(modi\336ers )-29(can )-29(be )-29(used )-29(to )-29(generate )-29(an )-29(alternative )-29(format )-29(if )-29(one )-29(is)]TJ -10.605 -1.2 Td (supported by the locale.)Tj 7.9995 0 0 7.9995 183.5891 588.9647 Tm (Some systems support additional, nonstandar)Tj 0.25 Tc 20.274 0 Td (de)Tj 0 Tc 1.34 0 Td (xtensions to the)Tj /T1_2 1 Tf 7.179 0 Td (format)Tj /T1_1 1 Tf 2.916 0 Td (string for)Tj /TT0 1 Tf 4.348 0 Td (strftime)Tj /T1_1 1 Tf (.)Tj /TT1 1 Tf 9.9994 0 0 9.9994 93.5945 555.3667 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td (Figur)Tj 0.287 Tc 2.383 0 Td (e6)Tj 0 Tc 1.266 0 Td (.1)Tj 0.287 Tc 0.695 0 Td (1s)Tj 0 Tc 1.211 0 Td [(hows )-37(how )-37(to )-37(use )-37(several )-37(of )-37(the )-37(time )-37(functions )-37(discussed )-37(in )-37(this )-37(chapter)]TJ 0.537 Tc 31.739 0 Td (.I)Tj 0 Tc 1.124 0 Td (n)Tj -38.418 -1.2 Td [(particular)74(,)-298(it)-298(s)-1(hows )-48(how)]TJ /TT0 1 Tf 11.105 0 Td (strftime)Tj /T1_1 1 Tf 5.099 0 Td [(can )-49(be )-49(used )-49(to )-49(print )-49(a )-49(string )-49(containing )-49(the )-49(curr)22(ent)]TJ -16.204 -1.2 Td (date and time.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5002.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 490.6401 Tm (#include )Tj 0 -1.189 TD (#include )Tj T* (#include )Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (time_t t;)Tj T* (struct tm *tmp;)Tj T* (char buf1[16];)Tj 0 -1.189 TD (char buf2[64];)Tj 0 -2.021 TD (time\(&t\);)Tj 0 -1.189 TD (tmp = localtime\(&t\);)Tj T* (if \(strftime\(buf1, 16, "time and date: %r, %a %b %d, %Y", tmp\) == 0\)\ )Tj 2.4 -1.189 Td (printf\("buffer length 16 is too small\\n"\);)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (printf\("%s\\n", buf1\);)Tj -2.4 -1.189 Td (if \(strftime\(buf2, 64, "time and date: %r, %a %b %d, %Y", tmp\) == 0\)\ )Tj 2.4 -1.189 Td (printf\("buffer length 64 is too small\\n"\);)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (printf\("%s\\n", buf2\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2462.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 248.8232 230.1766 Tm [(Figure 6.1)37(1)]TJ /T1_1 1 Tf 5.658 0 Td (Using the)Tj /TT0 1 Tf 4.518 0 Td (strftime)Tj /T1_1 1 Tf 5.05 0 Td (function)Tj 9.9982 0 0 9.9982 129.5769 206.1809 Tm [(Recall )-24(the )-24(r)18(elationship )-24(of )-24(the )-24(various )-24(time )-24(functions )-24(shown )-24(in )-24(Figur)]TJ 0.2738 Tc 30.012 0 Td (e6)Tj 0 Tc 1.253 0 Td [(.9. )-274(Befor)18(e)-274(we)-274(c)1(an)]TJ -31.265 -1.2 Td [(print )-21(the )-21(time )-21(in )-21(a )-21(human-r)19(eadable )-21(format, )-21(we )-21(need )-21(to )-21(get )-21(the )-21(time )-21(and )-21(convert )-21(it )-21(into )-21(a)]TJ 0 -1.2 TD [(br)18(oken-down time str)8(uctur)18(e. )-250(Sample)-250(output fr)18(om Figur)]TJ 0.25 Tc 24.753 0 Td (e6)Tj 0 Tc 1.229 0 Td (.1)Tj 0.25 Tc 0.695 0 Td (1i)Tj 0 Tc 1.041 0 Td (s)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.5741 165.4882 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (buffer length 16 is too small)Tj 0 -1.189 TD (time and date: 11:12:35 PM, Thu Jan 19, 2012)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1325.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47373 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(6.10)]TJ -0.055 Tc 32.431 0 Td (Ti)Tj 0 Tc 0.849 0 Td [(me )-250(and )-250(Date )-250(Routines)]TJ /T1_1 1 Tf 12.553 0 Td (191)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 313.4532 429.2142 Tm (kernel)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2922 4958 648 216 re S Q BT /TT0 1 Tf 7.999 0 0 7.999 310.1628 509.7788 Tm (time_t)Tj /T1_0 1 Tf -1.548 -1.25 Td (\(calendar time\))Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 4110 4994 504 144 re S Q BT /TT0 1 Tf 7.9986 0 0 7.9986 416.9249 504.7491 Tm (timespec)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2850 5786 792 216 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 302.9273 592.4978 Tm (struct tm)Tj /T1_0 1 Tf -1.747 -1.25 Td [(\(br)18(oken-down time\))]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 3534 6434 792 144 re S Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 363.9988 648.6454 Tm (formatted string)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 2382 6434 432 144 re S Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 249.4142 648.6065 Tm (string)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 1878 4994 504 144 re S Q BT /TT0 1 Tf 7.9966 0 0 7.9966 196.1176 504.628 Tm (timeval)Tj ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 324.6 495.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3246 4958 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 4382.25 cm 0 0 m 0 504 l S Q Q BT /TT0 1 Tf 7.9962 0 0 7.9962 329.2419 465.0167 Tm (time)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 436.2 499.4 cm 0 0 m -5.112 -5.328 l -7.056 -2.304 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 4362 4994 cm 0 0 m -51.12 -53.28 l -70.56 -23.04 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3390.25 4382.25 cm 0 0 m 911 574 l S Q Q BT /TT0 1 Tf 7.9957 0 0 7.9957 392.1882 464.9888 Tm (clock_gettime)Tj ET q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 213 499.4 cm 0 0 m 7.056 -2.304 l 5.112 -5.328 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 2130 4994 cm 0 0 m 70.56 -23.04 l 51.12 -53.28 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3102.25 4382.25 cm 0 0 m -911 574 l S Q Q BT /TT0 1 Tf 7.9952 0 0 7.9952 196.682 464.9609 Tm (gettimeofday)Tj ET q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 357 506.6 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 3570 5066 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4110.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4074.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4038.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4002.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3966.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3930.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3894.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3858.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3822.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3786.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3750.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3714.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3678.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3642.25 5066.25 cm 0 0 m 0 0 l S Q Q BT /TT0 1 Tf 7.9947 0 0 7.9947 369.3561 499.5102 Tm (tv_sec)Tj ET q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 292.2 506.6 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 2922 5066 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2382.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2418.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2454.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2490.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2526.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2562.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2598.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2634.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2670.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2706.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2742.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2778.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2814.25 5066.25 cm 0 0 m 0 0 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2850.25 5066.25 cm 0 0 m 0 0 l S Q Q BT /TT0 1 Tf 7.9942 0 0 7.9942 250.6195 499.4802 Tm (tv_sec)Tj ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 303 578.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 3030 5786 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3030.25 5174.25 cm 0 0 m 0 540 l S Q Q BT /TT0 1 Tf 0 7.9938 -7.9938 0 299.5263 533.1839 Tm (gmtime)Tj ET q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 313.8 578.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 3138 5786 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 5174.25 cm 0 0 m 0 36 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 5246.25 cm 0 0 m 0 36 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 5318.25 cm 0 0 m 0 36 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 5390.25 cm 0 0 m 0 36 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 5462.25 cm 0 0 m 0 36 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 5534.25 cm 0 0 m 0 36 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 5606.25 cm 0 0 m 0 36 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 5678.25 cm 0 0 m 0 36 l S Q Q BT /TT0 1 Tf 0 7.9933 -7.9933 0 320.2908 525.958 Tm (localtime)Tj ET q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 346.2 517.4 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 3462 5174 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3462.25 5246.25 cm 0 0 m 0 36 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3462.25 5318.25 cm 0 0 m 0 36 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3462.25 5390.25 cm 0 0 m 0 36 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3462.25 5462.25 cm 0 0 m 0 36 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3462.25 5534.25 cm 0 0 m 0 36 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3462.25 5606.25 cm 0 0 m 0 36 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3462.25 5678.25 cm 0 0 m 0 36 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3462.25 5750.25 cm 0 0 m 0 36 l S Q Q BT /TT0 1 Tf 0 7.9928 -7.9928 0 352.6425 533.12 Tm (mktime)Tj ET q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 298.176 600.2 cm 0 0 m -6.12 4.176 l -3.456 6.552 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 2981.76 6002 cm 0 0 m -61.2 41.76 l -34.56 65.52 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2598.25 6434.25 cm 0 0 m 336 -378 l S Q Q BT /TT0 1 Tf 5.3098 -5.9736 5.9736 5.3098 268.4322 637.6905 Tm (strptime)Tj ET q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 379.824 643.4 cm 0 0 m -4.536 -5.832 l -6.768 -3.024 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 3798.24 6434 cm 0 0 m -45.36 -58.32 l -67.68 -30.24 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 6002.25 cm 0 0 m 28 22 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3304.25 6047.25 cm 0 0 m 28 22 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3362.25 6093.25 cm 0 0 m 28 23 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3421.25 6139.25 cm 0 0 m 28 22 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3479.25 6185.25 cm 0 0 m 28 22 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3537.25 6230.25 cm 0 0 m 28 22 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3596.25 6276.25 cm 0 0 m 28 22 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3654.25 6321.25 cm 0 0 m 28 23 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3713.25 6368.25 cm 0 0 m 28 22 l S Q Q BT /TT0 1 Tf 6.2936 4.9255 -4.9255 6.2936 330.9413 608.9385 Tm (strftime)Tj ET q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 406.176 643.4 cm 0 0 m -4.536 -5.832 l -6.768 -3.024 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 4061.76 6434 cm 0 0 m -45.36 -58.32 l -67.68 -30.24 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3510.25 6002.25 cm 0 0 m 495 387 l S Q Q BT /TT0 1 Tf 6.2932 4.9252 -4.9252 6.2932 353.541 605.9472 Tm (strftime_l)Tj /T1_1 1 Tf 7.9914 0 0 7.9914 229.4481 398.1697 Tm (Figure 6.9)Tj /T1_0 1 Tf 5.195 0 Td (Relationship of the various time functions)Tj 9.9892 0 0 9.9892 147.4409 371.7982 Tm [(The )-176(two )-176(functions)]TJ /TT0 1 Tf 8.79 0 Td (localtime)Tj /T1_0 1 Tf 5.826 0 Td (and)Tj /TT0 1 Tf 2.119 0 Td (gmtime)Tj /T1_0 1 Tf 4.026 0 Td [(convert )-176(a )-176(calendar )-176(time )-176(into )-176(what\325s)]TJ -22.561 -1.2 Td [(called a br)18(oken-down time, a)]TJ /TT0 1 Tf 13.094 0 Td (tm)Tj /T1_0 1 Tf 1.45 0 Td [(str)8(uctur)18(e.)]TJ /TT0 1 Tf 8.9903 0 0 8.9903 147.4408 339.5331 Tm [(struct tm {)-3600(/* a broken-down time */)]TJ 1.2 -1.189 Td [(int )-600(tm_sec;)-1800(/* seconds after the minute: [0 - 60] */)]TJ 0 -1.189 TD [(int )-600(tm_min;)-1800(/* minutes after the hour: [0 - 59] */)]TJ T* [(int )-600(tm_hour; )-600(/*)-600(hours after midnight: [0 - 23] */)]TJ T* [(int )-600(tm_mday; )-600(/*)-600(day of the month: [1 - 31] */)]TJ 0 -1.189 TD [(int )-600(tm_mon;)-1800(/* months since January: [0 - 11] */)]TJ 0 -1.189 TD [(int )-600(tm_year; )-600(/*)-600(years since 1900 */)]TJ T* [(int )-600(tm_wday; )-600(/*)-600(days since Sunday: [0 - 6] */)]TJ T* [(int )-600(tm_yday; )-600(/*)-600(days since January 1: [0 - 365] */)]TJ T* [(int )-600(tm_isdst;)-600(/* daylight saving time flag: <0, 0, >0 */)]TJ -1.2 -1.189 Td (};)Tj /T1_0 1 Tf 9.9892 0 0 9.9892 129.4602 214.668 Tm [(The )-83(r)18(eason )-83(that )-83(the )-83(seconds )-83(can )-83(be )-83(gr)16(eater )-83(than )-83(59 )-83(is )-83(to )-83(allow )-83(for )-83(a )-83(leap )-83(second.)-585(Note)]TJ 0 -1.2 TD [(that )-6(all )-6(the )-6(\336elds )-6(except )-6(the )-6(day )-6(of )-6(the )-6(month )-6(ar)]TJ 0.2562 Tc 21.136 0 Td (e0)Tj 0 Tc 1.235 0.09 Td (-)Tj 0.333 -0.09 Td [(based. )-256(The)-256(daylight )-6(saving )-6(time )-6(\337ag)]TJ -22.704 -1.2 Td [(is )-108(positive )-108(if )-108(daylight )-108(saving )-108(time )-108(is )-108(in )-108(ef)21(fect, )-107(0 )-107(if )-107(it\325s )-107(not )-107(in )-107(ef)18(fect, )-107(and )-107(negative )-107(if )-107(the)]TJ T* (information isn\325t available.)Tj 7.9914 0 0 7.9914 183.402 158.7285 Tm [(In )-108(older )-108(versions )-108(of )-108(the )-108(Single )-108(UNIX )-108(Speci\336cation, )-108(double )-108(leap )-108(seconds )-108(wer)]TJ 0.3584 Tc 34.53 0 Td (ea)Tj 0 Tc 1.337 0 Td [(llowed. )-358(Thus)]TJ -35.868 -1.25 Td [(the )-139(valid )-139(range )-139(of )-139(values )-139(for )-139(the)]TJ /TT0 1 Tf 15.28 0 Td (tm_sec)Tj /T1_0 1 Tf 3.989 0 Td [(member )-139(was )-139(0)]TJ 6.791 0.09 Td (\320)Tj 0.583 -0.09 Td [(61. )-389(The)-388(formal )-139(de\336nition )-139(of )-139(UTC)]TJ -26.643 -1.25 Td (doesn\325t allow for double leap seconds, so the valid range for seconds\ is now 0)Tj 34.367 0.09 Td (\320)Tj 0.583 -0.09 Td (60.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47374 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (728)Tj /T1_1 1 Tf 3.5 0 Td [(Pseudo )-250(T)92(erminals )]TJ 38.741 0 Td [(Chapter)-500(19)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm [(pid_t )-1200(pid;)]TJ 0 -1.189 TD [(char )-1800(pts_name[20];)]TJ 0 -2.14 TD (if \(\(fdm = ptym_open\(pts_name, sizeof\(pts_name\)\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("can\325t open master pty: %s, error %d", pts_name, fdm\);)Tj -2.4 -2.14 Td (if \(slave_name != NULL\) {)Tj 2.4 -1.189 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*R)Tj 0 Tc 1.8 0 Td [(eturn name of slave.)-1200(Null terminate to handle case)]TJ 0.6 Tc -1.8 -1.189 Td (*w)Tj 0 Tc 1.8 0 Td (here strlen\(pts_name\) > slave_namesz.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (strncpy\(slave_name, pts_name, slave_namesz\);)Tj 0 -1.189 TD (slave_name[slave_namesz - 1] = \325\\0\325;)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (return\(-1\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(pid == 0\) {)-3600(/* child */)]TJ 0.6 -1.189 Td (if \(setsid\(\) < 0\))Tj 2.4 -1.189 Td (err_sys\("setsid error"\);)Tj -2.4 -2.14 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*S)Tj 0 Tc 1.8 0 Td (ystem V acquires controlling terminal on open\(\).)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(\(fds = ptys_open\(pts_name\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("can\325t open slave pty"\);)Tj -2.4 -1.189 Td [(close\(fdm\); )-2400(/*)-600(all done with master in child */)]TJ -4.8 -2.14 Td (#if defined\(BSD\))Tj 4.8 -1.189 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*T)Tj 0 Tc 1.8 0 Td (IOCSCTTY is the BSD way to acquire a controlling terminal.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(ioctl\(fds, TIOCSCTTY, \(char *\)0\) < 0\))Tj 2.4 -1.189 Td (err_sys\("TIOCSCTTY error"\);)Tj -7.2 -1.189 Td (#endif)Tj 4.8 -1.189 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*S)Tj 0 Tc 1.8 0 Td (et slave\325s termios and window size.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(slave_termios != NULL\) {)Tj 2.4 -1.189 Td (if \(tcsetattr\(fds, TCSANOW, slave_termios\) < 0\))Tj 2.4 -1.189 Td (err_sys\("tcsetattr error on slave pty"\);)Tj -4.8 -1.189 Td (})Tj 0 -1.189 TD (if \(slave_winsize != NULL\) {)Tj 2.4 -1.189 Td (if \(ioctl\(fds, TIOCSWINSZ, slave_winsize\) < 0\))Tj 2.4 -1.189 Td (err_sys\("TIOCSWINSZ error on slave pty"\);)Tj -4.8 -1.189 Td (})Tj 0 -2.14 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*S)Tj 0 Tc 1.8 0 Td (lave becomes stdin/stdout/stderr of child.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(dup2\(fds, STDIN_FILENO\) != STDIN_FILENO\))Tj 2.4 -1.189 Td (err_sys\("dup2 error to stdin"\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47375 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(9.6)]TJ 34.294 0 Td [(Contr)18(olling )-250(T)92(erminal)]TJ /T1_1 1 Tf 11.539 0 Td (297)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 0.883 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (\245W)Tj 0 Tc 2.489 0 Td [(henever )-149(we )-149(pr)18(ess )-149(the )-149(terminal\325s )-149(quit )-149(key )-149(\(often )-149(Contr)18(ol-backslash\), )-149(the )-149(quit)]TJ -1 -1.2 Td [(signal is sent to all pr)18(ocesses in the for)18(egr)18(ound pr)18(ocess gr)18(oup.)]TJ 0.883 Tc -1.489 -1.6 Td (\245I)Tj 0.4089 Tc 1.826 0 Td (fam)Tj 0 Tc 2.534 0 Td [(odem )-159(\(or )-159(network\) )-159(disconnect )-159(is )-159(detected )-159(by )-159(the )-159(terminal )-159(interface, )-159(the)]TJ -2.871 -1.2 Td [(hang-up signal is sent to the contr)18(olling pr)18(ocess \(the session leader\).)]TJ -3.289 -1.92 Td (These characteristics ar)Tj 0.25 Tc 10.219 0 Td (es)Tj 0 Tc 1.153 0 Td (hown in Figur)Tj 0.25 Tc 6.3 0 Td (e9)Tj 0 Tc 1.229 0 Td (.7.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1662 5278 432 216 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 169.4477 536.7756 Tm (login shell)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2454 5278 432 216 re S Q BT /TT0 1 Tf 7.9986 0 0 7.9986 254.9541 536.7434 Tm (proc1)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 3030 5278 432 216 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 312.525 536.7112 Tm (proc2)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 3822 5278 432 216 re S Q BT /TT0 1 Tf 7.9976 0 0 7.9976 391.6825 536.679 Tm (proc3)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 4398 5278 432 216 re S Q BT /TT0 1 Tf 7.9971 0 0 7.9971 449.2382 536.6468 Tm (proc4)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 4110 4846 432 216 re S Q BT /TT0 1 Tf 7.9966 0 0 7.9966 420.4234 493.4327 Tm (proc5)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1590.25 5206.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1590.25 5271.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1590.25 5335.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1590.25 5400.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1590.25 5465.25 cm 0 0 m 0 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1590.25 5530.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1657.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1725.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1792.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1860.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1927.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1995.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2062.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2130.25 5566.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2166.25 5501.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2166.25 5436.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2166.25 5371.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2166.25 5307.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2166.25 5242.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2098.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2031.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1963.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1896.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1828.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1761.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1693.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1626.25 5206.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 140.5085 513.5934 Tm [(backgr)18(ound pr)18(ocess gr)18(oup)]TJ 2.388 -1.35 Td (session leader =)Tj -0.673 -1.08 Td [(contr)18(olling pr)18(ocess)]TJ ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5206.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5271.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5335.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5400.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5465.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 5530.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2452.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2521.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2591.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2661.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2730.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2800.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2870.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2940.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3010.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3079.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3149.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3218.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3288.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3358.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3428.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3498.25 5566.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 5501.25 cm 0 0 m 0 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 5436.25 cm 0 0 m 0 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 5371.25 cm 0 0 m 0 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 5307.25 cm 0 0 m 0 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 5242.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3464.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3394.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3324.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3254.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3185.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3115.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3046.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2976.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2906.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2836.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2766.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2696.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2627.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2557.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2488.25 5206.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2418.25 5206.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 248.4418 513.5626 Tm [(backgr)18(ound pr)18(ocess gr)18(oup)]TJ ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 4774.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 4842.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 4911.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 4980.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5049.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5117.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5186.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5255.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5324.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5392.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5461.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 5530.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3824.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3899.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3973.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4047.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4122.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4196.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4270.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4345.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4419.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4494.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4568.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4643.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4717.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4792.25 5566.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4866.25 5566.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5497.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5428.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5360.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5291.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5222.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5153.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5085.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 5016.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 4947.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 4878.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4902.25 4810.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4828.25 4774.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 4774.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4679.25 4774.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4604.25 4774.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4530.25 4774.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4455.25 4774.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4381.25 4774.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4306.25 4774.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4232.25 4774.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4158.25 4774.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4083.25 4774.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4009.25 4774.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3935.25 4774.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3860.25 4774.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 4774.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 386.4161 470.3577 Tm [(for)18(egr)18(ound pr)18(ocess gr)18(oup)]TJ ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1374.25 4558.25 cm 0 0 m 0 144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1374.25 4828.25 cm 0 0 m 0 144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1374.25 5098.25 cm 0 0 m 0 144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1374.25 5368.25 cm 0 0 m 0 144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1374.25 5638.25 cm 0 0 m 0 144 l 144 144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1674.25 5782.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1974.25 5782.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2274.25 5782.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2574.25 5782.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2874.25 5782.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3174.25 5782.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3474.25 5782.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3774.25 5782.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4074.25 5782.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4374.25 5782.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4674.25 5782.25 cm 0 0 m 144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4974.25 5782.25 cm 0 0 m 144 0 l 144 -144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5118.25 5512.25 cm 0 0 m 0 -144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5118.25 5242.25 cm 0 0 m 0 -144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5118.25 4972.25 cm 0 0 m 0 -144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5118.25 4702.25 cm 0 0 m 0 -144 l -144 -144 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4818.25 4558.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4518.25 4558.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4218.25 4558.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3918.25 4558.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3618.25 4558.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3318.25 4558.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3018.25 4558.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2718.25 4558.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2418.25 4558.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2118.25 4558.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1818.25 4558.25 cm 0 0 m -144 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1518.25 4558.25 cm 0 0 m -144 0 l S Q Q BT /T1_0 1 Tf 9.9934 0 0 9.9934 308.5463 581.0564 Tm (session)Tj ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2891.76 3874 cm 0 0 m 0 -99.41 -120.88 -180 -270 -180 c -419.11 -180 -540 -99.41 -540 0 c -540 99.41 -419.11 180 -270 180 c -120.88 180 0 99.41 0 0 c h S Q Q BT /T1_0 1 Tf 7.9942 0 0 7.9942 242.6732 390.3588 Tm [(contr)18(olling)]TJ 0.542 -1.25 Td (terminal)Tj ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 411 466.6 cm 0 0 m -5.616 -4.896 l -7.272 -1.728 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 4110 4666 cm 0 0 m -56.16 -48.96 l -72.72 -17.28 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2812.25 4001.25 cm 0 0 m 1234 632 l S Q Q BT /T1_0 1 Tf 7.1139 3.6458 -3.6458 7.1139 314.7054 420.6707 Tm (terminal input and)Tj -1.731 -1.25 Td (terminal-generated signals)Tj ET q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 207.816 481.576 cm 0 0 m 4.536 -5.904 l 1.224 -7.344 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 2078.1599 4815.7598 cm 0 0 m 45.36 -59.04 l 12.24 -73.44 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2107.25 4749.25 cm 0 0 m 324 -748 l S Q Q BT /T1_0 1 Tf 3.1774 -7.3346 7.3346 3.1774 214.9224 472.4759 Tm (modem disconnect)Tj 2.157 -1.25 Td (\(hang-up signal\))Tj /T1_1 1 Tf 7.9933 0 0 7.9933 201.3068 343.911 Tm (Figure 9.7)Tj /T1_0 1 Tf 5.195 0 Td [(Pr)18(ocess gr)18(oups and sessions showing contr)18(olling terminal)]TJ 9.9916 0 0 9.9916 147.476 315.1352 Tm [(Usually)111(,)-433(we)-433(d)-1(on\325t )-183(have )-183(to )-183(worry )-183(about )-183(the )-183(contr)18(olling )-183(terminal; )-183(it )-183(is )-183(established)]TJ -1.8 -1.2 Td (automatically when we log in.)Tj 7.9933 0 0 7.9933 183.4457 283.162 Tm [(POSIX.1 )-54(leaves )-54(the )-54(choice )-54(of )-54(the )-54(mechanism )-54(used )-54(to )-54(allocate )-54(a )-54(contr)18(olling )-54(terminal )-54(up )-54(to )-54(each)]TJ 0 -1.25 TD (individual implementation.)Tj -0.092 Tc 12.696 0 Td (We)Tj 0 Tc 1.387 0 Td (\325ll show the actual steps in Section 19.4.)Tj -14.083 -1.875 Td [(Systems )-45(derived )-45(fr)18(om )-45(UNIX )-45(System )-45(V )-45(allocate )-45(the )-45(contr)16(olling )-45(terminal )-45(for )-45(a )-45(session )-45(when )-45(the)]TJ T* [(session )-87(leader )-87(opens )-87(the )-87(\336rst )-87(terminal )-87(device )-87(that )-87(is )-87(not )-87(alr)18(eady )-87(associated )-87(with )-87(a )-87(session, )-87(as)]TJ T* (long as the call to)Tj /TT0 1 Tf 7.934 0 Td (open)Tj /T1_0 1 Tf 2.65 0 Td (does not specify the)Tj /TT0 1 Tf 9.029 0 Td (O_NOCTTY)Tj /T1_0 1 Tf 5.05 0 Td (\337ag \(Section 3.3\).)Tj -24.663 -1.875 Td (BSD)Tj 1.91 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-31(systems )-31(allocate )-31(the )-31(contr)18(olling )-31(terminal )-31(for )-31(a )-31(session )-31(when )-31(the )-31(session )-31(leader )-31(calls)]TJ /TT0 1 Tf -2.243 -1.25 Td (ioctl)Tj /T1_0 1 Tf 3.434 0 Td [(with )-184(a)]TJ /T1_2 1 Tf -0.018 Tc 3.4 0 Td (re)Tj 0 Tc 0.76 0 Td (quest)Tj /T1_0 1 Tf 2.564 0 Td [(ar)18(gument )-184(of)]TJ /TT0 1 Tf 6.052 0 Td (TIOCSCTTY)Tj /T1_0 1 Tf 5.834 0 Td [(\(the )-184(thir)]TJ 0.4335 Tc 3.73 0 Td (da)Tj -0.018 Tc 1.544 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument )-183(is )-183(a )-183(null )-183(pointer\).)-685(The)]TJ -28.251 -1.25 Td [(session )-45(cannot )-45(alr)18(eady )-45(have )-45(a )-45(contr)16(olling )-46(terminal )-46(for )-46(this )-46(call )-46(to )-46(succeed.)-543(\(Normally)]TJ 0.2956 Tc 38.01 0 Td (,t)Tj 0 Tc 0.872 0 Td [(his )-46(call)]TJ -38.882 -1.25 Td (to)Tj /TT0 1 Tf 1.337 0 Td (ioctl)Tj /T1_0 1 Tf 3.465 0 Td [(follows )-215(a )-215(call )-215(to)]TJ /TT0 1 Tf 8.025 0 Td (setsid)Tj /T1_0 1 Tf 0.4655 Tc (,w)Tj 0 Tc 5.15 0 Td [(hich )-215(guarantees )-215(that )-215(the )-215(pr)16(ocess )-215(is )-215(a )-215(session )-215(leader)]TJ -17.977 -1.25 Td [(without )-373(a )-373(contr)18(olling )-373(terminal.\))-873(The )-373(POSIX.1)]TJ /TT0 1 Tf 22.504 0 Td (O_NOCTTY)Tj /T1_0 1 Tf 5.423 0 Td [(\337ag )-373(to)]TJ /TT0 1 Tf 3.783 0 Td (open)Tj /T1_0 1 Tf 3.024 0 Td [(is )-374(not )-374(used )-374(by)]TJ -34.734 -1.25 Td (BSD)Tj 1.91 0.09 Td (-)Tj 0.333 -0.09 Td (based systems, except in compatibility-mode support for other systems.)Tj -2.243 -1.875 Td (Figur)Tj 0.4006 Tc 2.383 0 Td (e9)Tj 0 Tc 1.38 0 Td [(.8 )-151(summarizes )-151(the )-151(way )-151(each )-151(platform )-151(discussed )-151(in )-151(this )-151(book )-151(allocates )-151(a )-151(contr)23(olling)]TJ -3.763 -1.25 Td [(terminal. )-332(Note)-331(that )-82(although )-82(Mac )-82(OS )-82(X )-82(10.6.8 )-82(is )-82(derived )-82(fr)21(om )-82(BSD, )-82(it )-82(behaves )-82(like )-82(System )-82(V)]TJ -0 -1.25 Td [(when allocating a contr)18(olling terminal.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47376 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.10)]TJ 35.018 0 Td [(POSIX )-250(Semaphor)18(es)]TJ /T1_1 1 Tf 10.815 0 Td (583)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.16 Td [(One )-105(of )-105(the )-105(motivations )-105(for )-105(intr)18(oducing )-105(the )-105(POSIX )-105(semaphor)]TJ 0.3549 Tc 27.413 0 Td (ei)Tj 0 Tc 1.125 0 Td [(nterfaces )-105(was )-105(that )-105(they)]TJ -28.538 -1.2 Td [(can )-59(be )-59(made )-59(to )-59(perform )-59(signi\336cantly )-59(better )-59(than )-59(the )-59(existing )-59(XSI )-59(semaphor)]TJ 0.3095 Tc 33.709 0 Td (ei)Tj 0 Tc 1.079 0 Td (nterfaces.)Tj -34.788 -1.2 Td [(It )-122(is )-122(instr)8(uctive )-122(to )-122(see )-122(if )-122(this )-122(goal )-122(was )-122(r)18(eached )-122(in )-122(existing )-122(systems, )-122(even )-122(though )-122(these)]TJ 0 -1.2 TD (systems wer)Tj 0.25 Tc 5.456 0 Td (en)Tj 0 Tc 1.311 0 Td [(ot designed to support r)18(eal-time applications.)]TJ -4.967 -1.2 Td [(In )-182(Figur)]TJ 0.432 Tc 3.734 0 Td (e1)Tj 0 Tc 1.411 0 Td [(5.34, )-182(we )-182(compar)]TJ 0.432 Tc 7.528 0 Td (et)Tj 0 Tc 1.237 0 Td [(he )-182(performance )-182(of )-182(using )-182(XSI )-182(semaphor)18(es )-182(\(without)]TJ /TT1 1 Tf -15.71 -1.2 Td (SEM_UNDO)Tj /T1_0 1 Tf 0.3687 Tc (\)a)Tj 0 Tc 6.002 0 Td [(nd )-119(POSIX )-119(semaphor)18(es )-119(when )-119(3 )-119(pr)20(ocesses )-119(compete )-119(to )-119(allocate )-119(and )-119(r)19(elease)]TJ -6.002 -1.2 Td (the semaphor)Tj 0.25 Tc 6.029 0 Td (e1)Tj 0 Tc 1.229 0 Td (,000,000 times on two platforms)Tj 14.286 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0 and Solaris 10)Tj 11.268 0.04 Td (\))Tj 0.333 -0.04 Td (.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1741.25 5542.25 cm 0 0 m 3010 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 291.2171 546.1345 Tm (Solaris 10)Tj 13.763 0 Td (Linux 3.2.0)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2518.25 5422.25 cm 0 0 m 2233 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 262.2448 534.1038 Tm [(User )-1808(System)-1824(Clock )-2132(User)-2058(System )-1573(Clock)]TJ -8.544 0.75 Td (Operation)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1741.25 5302.25 cm 0 0 m 3010 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1741.25 5282.25 cm 0 0 m 3010 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 178.0693 520.0752 Tm [(XSI semaphor)18(es )-3166(1)55(1.85 )-2193(15.85 )-2193(27.91)-2693(0.33 )-2693(5.93 )-2693(7.33)]TJ 0 -1.25 TD [(POSIX semaphor)18(es )-1721(13.72)-2443(10.52 )-2193(24.44)-2693(0.26 )-2693(0.75 )-2693(0.41)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1741.25 5062.25 cm 0 0 m 3010 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4395.25 5062.25 cm 0 0 m 0 360 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4020.25 5062.25 cm 0 0 m 0 360 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3644.25 5062.25 cm 0 0 m 0 480 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3269.25 5062.25 cm 0 0 m 0 360 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2893.25 5062.25 cm 0 0 m 0 360 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2518.25 5062.25 cm 0 0 m 0 480 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4751.25 5062.25 cm 0 0 m 0 480 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1741.25 5062.25 cm 0 0 m 0 480 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 209.3292 488.0536 Tm (Figure 15.34)Tj /T1_0 1 Tf -0.055 Tc 6.195 0 Td (Ti)Tj 0 Tc 0.849 0 Td (ming comparison of semaphor)Tj 0.25 Tc 13.545 0 Td (ei)Tj 0 Tc 1.02 0 Td (mplementations)Tj 9.997 0 0 9.997 147.5552 461.6615 Tm [(In )-497(Figur)]TJ 0.7471 Tc 4.049 0 Td (e1)Tj 0 Tc 1.726 0 Td [(5.34, )-497(we )-497(can )-497(see )-497(that )-497(POSIX )-497(semaphor)18(es )-497(pr)17(ovide )-497(only )-497(a )-497(12%)]TJ -7.575 -1.2 Td [(impr)18(ovement )-138(over )-138(XSI )-138(semaphor)18(es )-138(on )-138(Solaris, )-138(but )-138(on )-138(Linux )-138(the )-138(impr)18(ovement )-138(is )-138(94%)]TJ 0 -1.2 TD [(\(almost )-527(18 )-527(times )-527(faster\)!)-1025(If )-526(we )-526(trace )-526(the )-526(pr)18(ograms, )-526(we )-526(\336nd )-526(that )-526(the )-526(Linux)]TJ T* [(implementation )-57(of )-57(POSIX )-57(semaphor)18(es )-57(maps )-57(the )-57(\336le )-57(into )-57(the )-57(pr)18(ocess )-57(addr)19(ess )-57(space )-57(and)]TJ T* (performs individual semaphor)Tj 0.25 Tc 13.584 0 Td (eo)Tj 0 Tc 1.275 0 Td (perations without using system calls.)Tj ET q 0.09997 0 0 0.09997 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4138.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT0 1 Tf 9.9964 0 0 9.9964 93.5663 383.6619 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.16 Td [(Recall )-39(fr)18(om )-39(Figur)]TJ 0.2892 Tc 7.773 0 Td (e1)Tj 0 Tc 1.268 0 Td [(2.5 )-39(that )-39(the )-39(Single )-39(UNIX )-39(Speci\336cation )-39(doesn\325t )-39(de\336ne )-39(what )-39(happens)]TJ -9.042 -1.2 Td [(when )-33(one )-33(thr)18(ead )-33(locks )-33(a )-33(normal )-33(mutex )-33(and )-33(a )-33(dif)21(fer)18(ent )-33(thr)18(ead )-33(tries )-33(to )-33(unlock )-33(it, )-33(but )-33(that)]TJ -0 -1.2 Td [(err)18(or)18(-checking )-122(mutexes )-122(and )-122(r)18(ecursive )-122(mutexes )-122(generate )-122(err)18(ors )-122(in )-122(this )-122(case.)-622(Because )-122(a)]TJ 0 -1.2 Td [(binary )-44(semaphor)]TJ 0.294 Tc 7.563 0 Td (ec)Tj 0 Tc 1.217 0 Td [(an )-44(be )-44(used )-44(like )-44(a )-44(mutex, )-44(we )-44(can )-44(use )-44(a )-44(semaphor)18(e)-294(to)-294(c)]TJ -0.018 Tc (re)Tj 0 Tc 24.821 0 Td [(ate )-44(our )-44(own)]TJ -33.601 -1.2 Td [(locking primitive to pr)18(ovide mutual exclusion.)]TJ 1.8 -1.2 Td [(Assuming )-76(we )-76(wer)19(e)-326(to)-326(c)]TJ -0.018 Tc 10.641 0 Td (re)Tj 0 Tc 0.856 0 Td [(ate )-76(our )-76(own )-76(lock )-76(that )-76(could )-76(be )-76(locked )-76(by )-76(one )-76(thr)18(ead )-76(and)]TJ -13.297 -1.2 Td (unlocked by another)Tj 0.25 Tc 9.057 0 Td (,o)Tj 0 Tc 1.046 0 Td [(ur lock str)8(uctur)]TJ 0.25 Tc 6.825 0 Td (em)Tj 0 Tc 1.612 0 Td (ight look like)Tj /TT1 1 Tf 8.9968 0 0 8.9968 147.5466 273.4016 Tm (struct slock {)Tj 1.2 -1.189 Td (sem_t *semp;)Tj 0 -1.189 TD [(char )-1200(name[_POSIX_NAME_MAX];)]TJ -1.2 -1.189 Td (};)Tj /T1_0 1 Tf 9.9964 0 0 9.9964 147.5466 223.3196 Tm [(The )-308(pr)18(ogram )-308(in )-308(Figur)]TJ 0.5581 Tc 10.462 0 Td (e1)Tj 0 Tc 1.537 0 Td [(5.35 )-308(shows )-308(an )-308(implementation )-308(of )-308(a )-308(semaphor)17(e-based)]TJ -13.799 -1.2 Td (mutual exclusion primitive.)Tj ET q 0.099964 0 0 0.099964 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2042.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9962 0 0 8.9962 129.5456 194.6172 Tm (#include "slock.h")Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (struct slock *)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47377 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (990)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (tcsendbreak)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(322,)-250(331, 677, 682,)]TJ -4.317 -1.25 Td (693)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (694)Tj -3.517 -1.25 Td [(de\336nition of,)-500(693)]TJ /TT0 1 Tf -1.35 -1.25 Td (tcsetattr)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(322,)-250(331, 673)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (674, 677, 679,)Tj -13.74 -1.25 Td (683)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (684, 691)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (692, 701, 705)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (707, 722, 728,)Tj -12.5 -1.25 Td (731, 738)Tj -1.35 -1.25 Td [(de\336nition of,)-500(683)]TJ /TT0 1 Tf -1.35 -1.25 Td (tcsetpgrp)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(298)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (299, 301, 303, 322, 331,)Tj -9.74 -1.25 Td (674, 677)Tj -1.35 -1.25 Td [(de\336nition of,)-500(298)]TJ /TT0 1 Tf -1.35 -1.25 Td (tee)Tj /T1_1 1 Tf 2.217 0 Td [(pr)18(ogram, )-250(554)]TJ 6.191 0.09 Td (\320)Tj 0.583 -0.09 Td (555)Tj /TT0 1 Tf -8.991 -1.25 Td (tell)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(67)]TJ /TT0 1 Tf -2.817 -1.25 Td (TELL_CHILD)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(247)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (248, 362, 491, 498,)Tj -10.34 -1.25 Td (532, 539, 541, 577, 898)Tj -1.35 -1.25 Td [(de\336nition of,)-500(363, 540)]TJ /TT0 1 Tf -1.35 -1.25 Td (telldir)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(130)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (135)Tj -9.89 -1.25 Td [(de\336nition of,)-500(130)]TJ /TT0 1 Tf -1.35 -1.25 Td (TELL_PARENT)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(247,)-250(362, 491, 532, 539,)]TJ -4.317 -1.25 Td (541, 577, 898, 934)Tj -1.35 -1.25 Td [(de\336nition of,)-500(363, 540)]TJ /TT0 1 Tf -1.35 -1.25 Td (TELL_WAIT)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(247)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (248, 362, 491, 498, 532,)Tj -9.74 -1.25 Td (539, 577, 898, 934)Tj -1.35 -1.25 Td [(de\336nition of,)-500(363, 540)]TJ /TT0 1 Tf -1.35 -1.25 Td (telnet)Tj /T1_1 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(292)]TJ 6.191 0.09 Td (\320)Tj 0.583 -0.09 Td (293, 500, 738)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (739, 742)Tj /TT0 1 Tf -16.958 -1.25 Td (telnetd)Tj /T1_1 1 Tf 4.617 0 Td [(pr)18(ogram, )-250(291)]TJ 6.191 0.09 Td (\320)Tj 0.583 -0.09 Td (292, 500)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (501, 717, 734,)Tj -12.858 -1.25 Td (923, 944)Tj /TT0 1 Tf -2.7 -1.25 Td (tempnam)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(169)]TJ -4.617 -1.25 Td [(TENEX C shell,)-500(3)]TJ /TT0 1 Tf 0 -1.25 TD (TERM)Tj /T1_1 1 Tf 2.817 0 Td [(envir)18(onment variable,)-500(21)55(1, 287, 289)]TJ /TT0 1 Tf -2.817 -1.25 Td (termcap)Tj /T1_1 1 Tf 0.5 Tc 4.367 0 Td (,7)Tj 0 Tc 1.25 0 Td (12)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (713, 953)Tj -7.283 -1.25 Td (terminal)Tj 1.35 -1.25 Td [(baud rate,)-500(692)]TJ 6.55 0.09 Td (\320)Tj 0.583 -0.09 Td (693)Tj -7.133 -1.25 Td [(canonical mode,)-500(700)]TJ 9.282 0.09 Td (\320)Tj 0.583 -0.09 Td (703)Tj -9.866 -1.25 Td [(contr)18(olling, )-250(63,)-250(233, 252, 270, 292, 295)]TJ 16.665 0.09 Td (\320)Tj 0.583 -0.09 Td (298, 301,)Tj -15.899 -1.25 Td (303)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(304, 306, 309, 31)55(1)]TJ 7.528 0.09 Td (\320)Tj 0.583 -0.09 Td (312, 318, 321, 377, 463,)Tj -10.278 -1.25 Td (465)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (466, 469, 480, 680, 685, 691, 694, 700, 702,)Tj -2.167 -1.25 Td (716, 724, 726)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (727, 898, 953)Tj -7.517 -1.25 Td [(identi\336cation, )-250(694)]TJ 8.207 0.09 Td (\320)Tj 0.583 -0.09 Td (700)Tj -8.79 -1.25 Td [(I/O, )-250(671)]TJ 4.062 0.09 Td (\320)Tj 0.583 -0.09 Td (713)Tj -4.646 -1.25 Td [(line contr)18(ol, )-250(693)]TJ 7.338 0.09 Td (\320)Tj 0.583 -0.09 Td (694)Tj -7.922 -1.25 Td [(logins, )-250(285)]TJ 5.023 0.09 Td (\320)Tj 0.583 -0.09 Td (290)Tj -5.606 -1.25 Td [(mode, cbr)18(eak, )-250(672,)-250(704, 708, 713)]TJ T* [(mode, cooked,)-500(672)]TJ T* (mode, raw)Tj 0.5 Tc 4.656 0 Td (,6)Tj 0 Tc 1.25 0 Td (72, 704, 708, 713, 732, 734)Tj -5.906 -1.25 Td [(noncanonical mode,)-500(703)]TJ 10.992 0.09 Td (\320)Tj 0.583 -0.09 Td (710)Tj -11.575 -1.25 Td [(options, )-250(683)]TJ 5.649 0.09 Td (\320)Tj 0.583 -0.09 Td (691)Tj -6.233 -1.25 Td (parity)Tj 0.5 Tc 2.558 0 Td (,6)Tj 0 Tc 1.25 0 Td (88)Tj -3.808 -1.25 Td [(pr)18(ocess gr)18(oup ID,)-500(303, 463)]TJ T* [(special input characters,)-500(678)]TJ 12.755 0.09 Td (\320)Tj 0.583 -0.09 Td (682)Tj -13.339 -1.25 Td [(window size,)-500(31)55(1, 322, 710)]TJ 11.92 0.09 Td (\320)Tj 0.583 -0.09 Td (712, 718, 727,)Tj -11.154 -1.25 Td (741)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (742)Tj -4.866 -1.25 Td [(termination, pr)18(ocess, )-250(198)]TJ 11.329 0.09 Td (\320)Tj 0.583 -0.09 Td (202)Tj /TT0 1 Tf -11.913 -1.25 Td (terminfo)Tj /T1_1 1 Tf 0.5 Tc 4.967 0 Td (,7)Tj 0 Tc 1.25 0 Td (12)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (713, 949, 953)Tj /TT0 1 Tf 18.117 65 Td (termio)Tj /T1_1 1 Tf 4.017 0 Td [(str)8(uctur)18(e, )-250(674)]TJ /TT0 1 Tf -4.017 -1.25 Td ()Tj /T1_1 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,6)Tj 0 Tc 1.25 0 Td (74)Tj /TT0 1 Tf -10.639 -1.25 Td (termios)Tj /T1_1 1 Tf 4.617 0 Td [(str)8(uctur)18(e, )-250(64,)-250(31)55(1, 674, 677)]TJ 11.747 0.09 Td (\320)Tj 0.583 -0.09 Td (679,)Tj -14.247 -1.25 Td (683)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (684, 692)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (693, 695, 701, 703)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (706, 708,)Tj -14.5 -1.25 Td (722, 727, 730)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (732, 738, 741)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (742, 897, 944)Tj /TT0 1 Tf -15.033 -1.25 Td ()Tj /T1_1 1 Tf 7.017 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9, 88, 674)Tj -11.239 -1.25 Td [(text segment,)-500(204)]TJ /TT0 1 Tf T* ()Tj /T1_1 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7)Tj -10.639 -1.25 Td [(Thompson, K.,)-500(75, 181, 229, 743, 951)]TJ 16.086 0.09 Td (\320)Tj 0.583 -0.09 Td (953)Tj -16.669 -1.25 Td [(thr)18(ead\320)]TJ /TT0 1 Tf (fork)Tj /T1_1 1 Tf 6.192 0 Td [(interactions, )-250(457)]TJ 7.519 0.09 Td (\320)Tj 0.583 -0.09 Td (461)Tj /TT0 1 Tf -14.294 -1.25 Td (thread_init)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(445)]TJ -7.017 -1.25 Td [(thr)18(eads, )-250(14,)-250(27, 229, 383)]TJ 10.632 0.09 Td (\320)Tj 0.583 -0.09 Td (423, 578)Tj -9.866 -1.25 Td [(cancellation options,)-500(451)]TJ 11.175 0.09 Td (\320)Tj 0.583 -0.09 Td (453)Tj -11.759 -1.25 Td [(concepts, )-250(383)]TJ 6.179 0.09 Td (\320)Tj 0.583 -0.09 Td (385)Tj -6.762 -1.25 Td [(contr)18(ol, )-250(425)]TJ 5.445 0.09 Td (\320)Tj 0.583 -0.09 Td (462)Tj -6.029 -1.25 Td [(cr)18(eation, )-250(385)]TJ 5.878 0.09 Td (\320)Tj 0.583 -0.09 Td (388)Tj -6.461 -1.25 Td [(I/O, )-250(461)]TJ 4.062 0.09 Td (\320)Tj 0.583 -0.09 Td (462)Tj -0.018 Tc -4.646 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (entrancy)Tj 0.5 Tc 3.753 0 Td (,4)Tj 0 Tc 1.25 0 Td (42)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (446)Tj -7.525 -1.25 Td [(synchr)18(onization, )-250(397)]TJ 9.462 0.09 Td (\320)Tj 0.583 -0.09 Td (422)Tj -10.046 -1.25 Td [(termination, )-250(388)]TJ 7.534 0.09 Td (\320)Tj 0.583 -0.09 Td (397)Tj -9.467 -1.25 Td [(thr)18(ead\320signal interactions,)-500(453)]TJ 13.788 0.09 Td (\320)Tj 0.583 -0.09 Td (457)Tj -14.371 -1.25 Td [(thr)18(ead-speci\336c data,)-500(446)]TJ 11.016 0.09 Td (\320)Tj 0.583 -0.09 Td (451)Tj -11.6 -1.25 Td [(thundering her)18(d, )-250(927)]TJ T* [(tick, clock,)-500(20, 42)]TJ 7.731 0.09 Td (\320)Tj 0.583 -0.09 Td (43, 49, 59, 270, 280)Tj -8.315 -1.25 Td (time)Tj 1.35 -1.25 Td [(and date functions,)-500(189)]TJ 10.573 0.09 Td (\320)Tj 0.583 -0.09 Td (196)Tj -11.157 -1.25 Td (calendar)Tj 0.5 Tc 3.728 0 Td (,2)Tj 0 Tc 1.25 0 Td (0, 24, 59, 126, 189, 191)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (192, 264, 270)Tj -15.145 -1.25 Td [(pr)18(ocess, )-250(20,)-250(24, 59, 280)]TJ 10.128 0.09 Td (\320)Tj 0.583 -0.09 Td (282)Tj -10.711 -1.25 Td [(values, )-250(20)]TJ /TT0 1 Tf -1.35 -1.25 Td (time)Tj /T1_1 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(20)]TJ -2.817 -1.25 Td [(TIME terminal value,)-500(687, 703)]TJ 13.525 0.09 Td (\320)Tj 0.583 -0.09 Td (704, 708, 713, 943)Tj /TT0 1 Tf -14.108 -1.25 Td (time)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(189)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (190, 194, 264, 331, 357,)Tj -6.74 -1.25 Td (639)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (640, 919, 929)Tj -3.517 -1.25 Td [(de\336nition of,)-500(189)]TJ /TT0 1 Tf -1.35 -1.25 Td ()Tj /T1_1 1 Tf 5.217 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7, 59)Tj /TT0 1 Tf -9.439 -1.25 Td (timeout)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(439,)-250(462)]TJ /TT0 1 Tf -4.617 -1.25 Td (TIMER_ABSTIME)Tj /T1_1 1 Tf 8.217 0 Td [(constant, )-250(375)]TJ /TT0 1 Tf -8.217 -1.25 Td (timer_getoverrun)Tj /T1_1 1 Tf 10.017 0 Td [(function, )-250(331)]TJ /TT0 1 Tf -10.017 -1.25 Td (timer_gettime)Tj /T1_1 1 Tf 8.217 0 Td [(function, )-250(331)]TJ /TT0 1 Tf -8.217 -1.25 Td (TIMER_MAX)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(40,)-250(43)]TJ /TT0 1 Tf -5.817 -1.25 Td (timer_settime)Tj /T1_1 1 Tf 8.217 0 Td [(function, )-250(331,)-250(353)]TJ -8.217 -1.25 Td [(times, \336le,)-500(124)]TJ 6.611 0.09 Td (\320)Tj 0.583 -0.09 Td (125, 532)Tj /TT0 1 Tf -7.194 -1.25 Td (times)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(42,)-250(59, 280)]TJ 9.04 0.09 Td (\320)Tj 0.583 -0.09 Td (281, 331, 522)Tj -11.69 -1.25 Td [(de\336nition of,)-500(280)]TJ /TT0 1 Tf -1.35 -1.25 Td (timespec)Tj /T1_1 1 Tf 5.217 0 Td [(str)8(uctur)18(e, )-250(94,)-250(126, 128, 189)]TJ 11.802 0.09 Td (\320)Tj 0.583 -0.09 Td (190, 375,)Tj -14.902 -1.25 Td (407)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (408, 413)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (414, 437)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (438, 506, 832)Tj /TT0 1 Tf -13.2 -1.25 Td (time_t)Tj /T1_1 1 Tf 4.017 0 Td [(data type,)-500(20, 59, 94, 189, 192, 196, 906)]TJ /TT0 1 Tf -4.017 -1.25 Td (timeval)Tj /T1_1 1 Tf 4.617 0 Td [(str)8(uctur)18(e, )-250(190,)-250(414, 421, 437, 503, 506,)]TJ -1.917 -1.25 Td (805)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (806, 929, 933)Tj -4.866 -1.25 Td (timing)Tj 1.35 -1.25 Td [(full-duplex pipes,)-500(565)]TJ T* [(message queues,)-500(565)]TJ /TT0 1 Tf T* (read)Tj /T1_1 1 Tf 2.817 0 Td [(buf)18(fer sizes,)-500(73)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47378 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(3.9)]TJ 37.777 0 Td [(I/O )-250(Ef)18(\336ciency)]TJ /T1_1 1 Tf 8.556 0 Td (73)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 0.883 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (\245T)Tj 0 Tc 2.102 0 Td [(he )-167(pr)18(ogram )-167(doesn\325t )-167(close )-167(the )-167(input )-167(\336le )-167(or )-167(output )-167(\336le.)-667(Instead, )-167(the )-167(pr)14(ogram)]TJ -0.613 -1.2 Td [(uses )-201(the )-201(featur)17(e)-451(of)-451(t)-1(he )-201(UNIX )-201(kernel )-201(that )-201(closes )-201(all )-201(open )-201(\336le )-201(descriptors )-201(in )-201(a)]TJ 0 -1.2 TD [(pr)18(ocess when that pr)18(ocess terminates.)]TJ 0.883 Tc -1.489 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(his )-338(example )-338(works )-338(for )-338(both )-338(text )-338(\336les )-338(and )-338(binary )-338(\336les, )-338(since )-338(ther)17(e)-588(is)-588(no)]TJ -0.613 -1.2 Td [(dif)18(fer)18(ence between the two to the UNIX kernel.)]TJ -1.489 -2.4 Td [(One )-266(question )-266(we )-266(haven\325t )-266(answer)18(ed, )-266(however)76(,)-516(is)-516(h)1(ow )-266(we )-266(chose )-266(the)]TJ /TT0 1 Tf 32.4 0 Td (BUFFSIZE)Tj /T1_0 1 Tf -34.2 -1.2 Td [(value. )-692(Befor)]TJ 0.6919 Tc 5.976 0 Td (ea)Tj 0 Tc 1.671 0 Td [(nswering )-442(that, )-442(let\325s )-442(r)8(un )-442(the )-442(pr)18(ogram )-442(using )-442(dif)19(fer)18(ent )-442(values )-442(for)]TJ /TT0 1 Tf -7.647 -1.2 Td (BUFFSIZE)Tj /T1_0 1 Tf 0.664 Tc (.F)Tj 0 Tc 6.27 0 Td (igur)Tj 0.414 Tc 1.827 0 Td (e3)Tj 0 Tc 1.393 0 Td [(.6 )-164(shows )-164(the )-164(r)18(esults )-164(for )-164(r)18(eading )-164(a )-164(516,581,760)]TJ 20.94 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-164(\336le, )-164(using )-164(20)]TJ -30.763 -1.2 Td [(dif)18(fer)18(ent buf)18(fer sizes.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1985.25 5370.25 cm 0 0 m 2522 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 252.8657 528.9365 Tm [(User CPU)-1500(System CPU)-1500(Clock time)-2128(Number)]TJ 0.121 -1.25 Td [(\(seconds\) )-2049(\(seconds\))-2479(\(seconds\) )-2281(of)-250(loops)]TJ /TT0 1 Tf -6.421 0.625 Td (BUFFSIZE)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1985.25 5150.25 cm 0 0 m 2522 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1985.25 5130.25 cm 0 0 m 2522 0 l S Q Q BT /T1_0 1 Tf 3.3585 Tc 7.9986 0 0 7.9986 230.6545 504.9091 Tm (12)Tj 0 Tc 4.358 0 Td [(0.03 )-3753(1)55(17.50 )-3682(138.73)-2512(516,581,760)]TJ 3.8585 Tc -4.359 -1.25 Td (29)Tj 0 Tc 4.858 0 Td [(.69 )-4198(58.76)-4432(68.60 )-2262(258,290,880)]TJ 3.8585 Tc -4.859 -1.25 Td (44)Tj 0 Tc 4.858 0 Td [(.60 )-4198(36.47)-4432(41.27 )-2262(129,145,440)]TJ 3.8585 Tc -4.859 -1.25 Td (82)Tj 0 Tc 4.858 0 Td [(.47 )-4198(15.44)-4432(18.38 )-2762(64,572,720)]TJ -5.359 -1.25 Td [(16 )-3608(1.07)-4948(7.93 )-4682(9.38)-3012(32,286,360)]TJ -0 -1.25 Td [(32 )-3608(0.56)-4948(4.51 )-4682(8.82)-3012(16,143,180)]TJ -0 -1.25 Td [(64 )-3608(0.34)-4948(2.72 )-4682(8.66)-3512(8,071,590)]TJ -0.5 -1.25 Td [(128 )-3608(0.34)-4948(1.84 )-4682(8.69)-3512(4,035,795)]TJ -0 -1.25 Td [(256 )-3608(0.15)-4948(1.30 )-4682(8.69)-3512(2,017,898)]TJ -0 -1.25 Td [(512 )-3608(0.09)-4948(0.95 )-4682(8.63)-3512(1,008,949)]TJ -0.75 -1.25 Td [(1,024 )-3608(0.02)-4948(0.78 )-4682(8.58)-4262(504,475)]TJ 0 -1.25 TD [(2,048 )-3608(0.04)-4948(0.66 )-4682(8.68)-4262(252,238)]TJ T* [(4,096 )-3608(0.03)-4948(0.58 )-4682(8.62)-4317(126,1)55(19)]TJ T* [(8,192 )-3608(0.00)-4948(0.54 )-4682(8.52)-4762(63,060)]TJ -0.5 -1.25 Td [(16,384 )-3608(0.01)-4948(0.56 )-4682(8.69)-4762(31,530)]TJ T* [(32,768 )-3608(0.00)-4948(0.56 )-4682(8.51)-4762(15,765)]TJ T* [(65,536 )-3608(0.01)-4948(0.56 )-4682(9.12)]TJ 27.001 0 Td (7,883)Tj -27.501 -1.25 Td [(131,072 )-3608(0.00)-4948(0.58 )-4682(9.08)]TJ 27.501 0 Td (3,942)Tj -27.501 -1.25 Td [(262,144 )-3608(0.00)-4948(0.60 )-4682(8.70)]TJ 27.501 0 Td (1,971)Tj -27.501 -1.25 Td [(524,288 )-3608(0.01)-4948(0.58 )-4682(8.58)]TJ 28.251 0 Td (986)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1985.25 3110.25 cm 0 0 m 2522 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4007.25 3110.25 cm 0 0 m 0 2260 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3505.25 3110.25 cm 0 0 m 0 2260 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2942.25 3110.25 cm 0 0 m 0 2260 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2469.25 3110.25 cm 0 0 m 0 2260 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4507.25 3110.25 cm 0 0 m 0 2260 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1985.25 3110.25 cm 0 0 m 0 2260 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 194.3414 292.9297 Tm (Figure 3.6)Tj /T1_0 1 Tf -0.055 Tc 5.195 0 Td (Ti)Tj 0 Tc 0.849 0 Td [(ming r)18(esults for r)18(eading with dif)18(fer)18(ent buf)18(fer sizes on Linux)]TJ 9.9976 0 0 9.9976 147.5648 262.9369 Tm [(The )-177(\336le )-177(was )-177(r)18(ead )-177(using )-177(the )-177(pr)17(ogram )-177(shown )-177(in )-177(Figur)]TJ 0.4271 Tc 24.544 0 Td (e3)Tj 0 Tc 1.406 0 Td [(.5, )-177(with )-177(standar)]TJ 0.4271 Tc 7.207 0 Td (do)Tj 0 Tc 1.584 0 Td (utput)Tj -0.018 Tc -36.541 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(dir)18(ected )-144(to)]TJ /TT0 1 Tf 5.279 0 Td (/dev/null)Tj /T1_0 1 Tf 0.6443 Tc (.T)Tj 0 Tc 6.907 0 Td [(he )-144(\336le )-144(system )-144(used )-144(for )-144(this )-144(test )-144(was )-144(the )-144(Linux)]TJ /TT0 1 Tf 21.789 0 Td (ext4)Tj /T1_0 1 Tf 2.794 0 Td (\336le)Tj -37.625 -1.2 Td [(system )-427(with )-427(4,096)]TJ 8.73 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-427(blocks.)-928(\(The)]TJ /TT0 1 Tf 9.267 0 Td (st_blksize)Tj /T1_0 1 Tf 6.677 0 Td [(value, )-427(which )-427(we )-427(describe )-427(in)]TJ -25.007 -1.2 Td [(Section )-88(4.12, )-88(is )-88(4,096.\))-590(This )-89(accounts )-89(for )-89(the )-89(minimum )-89(in )-89(the )-89(system )-89(time )-89(occurring )-89(at)]TJ 0 -1.2 TD [(the )-213(few )-213(timing )-213(measur)18(ements )-213(starting )-213(ar)18(ound )-213(a)]TJ /TT0 1 Tf 22.76 0 Td (BUFFSIZE)Tj /T1_0 1 Tf 5.263 0 Td [(of )-213(4,096.)-713(Incr)18(easing )-213(the)]TJ -28.023 -1.2 Td [(buf)18(fer size beyond this limit has little positive ef)18(fect.)]TJ 1.8 -1.2 Td [(Most )-18(\336le )-18(systems )-18(support )-18(some )-18(kind )-18(of )-18(r)15(ead-ahead )-19(to )-19(impr)18(ove )-19(performance.)-517(When)]TJ -1.8 -1.2 Td [(sequential )-60(r)18(eads )-60(ar)]TJ 0.31 Tc 8.423 0 Td (ed)Tj 0 Tc 1.4 0 Td [(etected, )-60(the )-60(system )-60(tries )-60(to )-60(r)18(ead )-60(in )-60(mor)]TJ 0.31 Tc 17.476 0 Td (ed)Tj 0 Tc 1.4 0 Td [(ata )-60(than )-60(an )-60(application)]TJ -0.018 Tc -28.699 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quests, )-19(assuming )-19(that )-19(the )-19(application )-19(will )-19(r)20(ead )-19(it )-19(shortly)]TJ 0.5188 Tc 24.873 0 Td (.T)Tj 0 Tc 1.382 0 Td [(he )-19(ef)18(fect )-19(of )-19(r)18(ead-ahead )-19(can)]TJ -27.111 -1.2 Td [(be )-82(seen )-82(in )-82(Figur)]TJ 0.3324 Tc 7.249 0 Td (e3)Tj 0 Tc 1.311 0 Td [(.6, )-82(wher)]TJ 0.3324 Tc 3.604 0 Td (et)Tj 0 Tc 1.137 0 Td [(he )-82(elapsed )-82(time )-82(for )-82(buf)18(fer )-82(sizes )-82(as )-82(small )-82(as )-82(32 )-82(bytes )-82(is )-82(as)]TJ -13.302 -1.2 Td [(good as the elapsed time for lar)18(ger buf)18(fer sizes.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47379 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 33.857 0 Td [(Chapter )-250(14)-750(Solutions)]TJ /T1_1 1 Tf 11.976 0 Td (933)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 176.5694 668.9599 Tm [(the )-28(de\336nition )-28(of )-28(the)]TJ /TT0 1 Tf 9.079 0 Td (fd_set)Tj /T1_0 1 Tf 3.878 0 Td [(type )-28(with )-28(a )-28(separate )-28(symbol.)]TJ -0.092 Tc 13.344 0 Td [(We )-212(n)]TJ 0 Tc 2.247 0 Td [(eed )-28(to )-28(de\336ne)]TJ -28.548 -1.2 Td (this, too.)Tj 0 -1.68 TD [(For )-351(example, )-351(on )-351(Fr)18(eeBSD )-351(8.0, )-351(we )-351(need )-351(to )-351(de\336ne)]TJ /TT0 1 Tf 24.429 0 Td (_SYS_SELECT_H_)Tj /T1_0 1 Tf 9.001 0 Td (to)Tj -33.43 -1.2 Td [(pr)18(event )-69(the )-69(inclusion )-69(of)]TJ /TT0 1 Tf 11.004 0 Td ()Tj /T1_0 1 Tf 8.719 0 Td [(and )-69(we )-69(need )-69(to )-69(de\336ne)]TJ /TT0 1 Tf 10.379 0 Td (_FD_SET)Tj /T1_0 1 Tf -30.102 -1.2 Td [(to pr)18(event the inclusion of the de\336nition for the)]TJ /TT0 1 Tf 21.212 0 Td (fd_set)Tj /T1_0 1 Tf 3.85 0 Td (data type.)Tj -26.695 -1.6 Td [(2. )-633(Sometimes,)-707(for )-457(compatibility )-457(with )-457(older )-457(applications,)]TJ /TT0 1 Tf 28.135 0 Td ()Tj /T1_0 1 Tf -26.502 -1.2 Td [(de\336nes )-92(the )-92(size )-92(of )-92(the)]TJ /TT0 1 Tf 10.238 0 Td (fd_set)Tj /T1_0 1 Tf [(,)-342(so)-342(we)-342(n)-1(eed )-92(to )-92(include )-92(it )-92(\336rst, )-92(then )-92(unde\336ne)]TJ /TT0 1 Tf -10.238 -1.2 Td (FD_SETSIZE)Tj /T1_0 1 Tf 0.5 Tc (.N)Tj 0 Tc 7.581 0 Td (ote that some systems use)Tj /TT0 1 Tf 0.1666 Tc 11.689 0 Td (__)Tj 0 Tc 1.367 0 Td (FD_SETSIZE)Tj /T1_0 1 Tf 6.25 0 Td (instead.)Tj -28.52 -1.6 Td [(3. )-633(W)]TJ 0.3459 Tc 2.541 0 Td (en)Tj 0 Tc 1.407 0 Td [(eed )-96(to )-96(r)18(ede\336ne)]TJ /TT0 1 Tf 7.091 0 Td (FD_SETSIZE)Tj /T1_0 1 Tf 6.346 0 Td (\(or)Tj /TT0 1 Tf 0.1666 Tc (__)Tj 0 Tc 2.641 0 Td (FD_SETSIZE)Tj /T1_0 1 Tf 0.3459 Tc (\)t)Tj 0.346 Tc 7.005 0 Td (ot)Tj 0 Tc 1.218 0 Td [(he )-96(maximum )-96(\336le)]TJ -26.615 -1.2 Td (descriptor number we want to be able to use with)Tj /TT0 1 Tf 22.2 0 Td (select)Tj /T1_0 1 Tf (.)Tj -23.833 -1.6 Td [(4. )-633(W)]TJ 0.25 Tc 2.541 0 Td (en)Tj 0 Tc 1.311 0 Td (eed to unde\336ne the symbols we de\336ned in step 1.)Tj -3.852 -1.6 Td [(5. )-633(Finally)111(,)-250(we)-250(can include)]TJ /TT0 1 Tf 11.979 0 Td ()Tj /T1_0 1 Tf (.)Tj -11.979 -1.92 Td [(Befor)18(e)-285(we)-285(r)7(un )-35(the )-35(pr)18(ogram, )-35(we )-35(need )-35(to )-35(con\336gur)]TJ 0.2855 Tc 21.538 0 Td (et)Tj 0 Tc 1.091 0 Td [(he )-35(system )-35(to )-35(allow )-35(us )-35(to )-35(open)]TJ -22.629 -1.2 Td [(as )-103(many )-103(\336le )-103(descriptors )-103(as )-103(we )-103(might )-103(need )-103(so )-103(that )-103(we )-103(can )-103(actually )-103(make )-103(use )-103(of)]TJ /TT0 1 Tf 0 -1.2 TD (FD_SETSIZE)Tj /T1_0 1 Tf 6.25 0 Td (\336le descriptors.)Tj /T1_1 1 Tf -9.315 -1.84 Td (14.4)Tj /T1_0 1 Tf 3.065 0 Td (The following table lists the functions that do similar things.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2843.25 4382.25 cm 0 0 m 1112 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 288.2904 430.1484 Tm [(FD_ZERO )-1500(sigemptyset)]TJ 0 -1.25 TD [(FD_SET )-2100(sigaddset)]TJ T* [(FD_CLR )-2100(sigdelset)]TJ T* [(FD_ISSET )-900(sigismember)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2843.25 3962.25 cm 0 0 m 1112 0 l 1112 420 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2843.25 3962.25 cm 0 0 m 0 420 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 160.2212 374.9325 Tm [(Ther)18(e)-320(is)-320(n)-1(ot )-70(an)]TJ /TT0 1 Tf 7.063 0 Td (FD_xxx)Tj /T1_0 1 Tf 3.92 0 Td [(function )-70(that )-70(corr)17(esponds )-70(to)]TJ /TT0 1 Tf 13.023 0 Td (sigfillset)Tj /T1_0 1 Tf 0.5703 Tc (.W)Tj 0 Tc 7.765 0 Td [(ith )-70(signal)]TJ -31.772 -1.2 Td [(sets, )-49(the )-49(pointer )-49(to )-49(the )-49(set )-49(is )-49(always )-49(the )-49(\336rst )-49(ar)15(gument, )-49(and )-49(the )-49(signal )-49(number )-49(is)]TJ 0 -1.2 TD [(the )-191(second )-191(ar)18(gument. )-441(W)55(ith )-191(descriptor )-191(sets, )-191(the )-191(descriptor )-191(number )-191(is )-191(the )-191(\336rst)]TJ -0 -1.2 Td [(ar)18(gument, and the pointer to the set is the next ar)18(gument.)]TJ /T1_1 1 Tf -3.065 -1.84 Td (14.5)Tj /T1_0 1 Tf 3.065 0 Td (Figur)Tj 0.25 Tc 2.383 0 Td (eC)Tj 0 Tc 1.438 0 Td (.16 shows an implementation using)Tj /TT0 1 Tf 15.908 0 Td (select)Tj /T1_0 1 Tf (.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 3134.25 cm 0 0 m 50 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 3134.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /TT0 1 Tf 8.9978 0 0 8.9978 160.2115 303.8261 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (void)Tj 0 -1.189 TD (sleep_us\(unsigned int nusecs\))Tj T* ({)Tj 2.4 -1.189 Td [(struct timeval)-1200(tval;)]TJ 0 -2.021 TD (tval.tv_sec = nusecs / 1000000;)Tj 0 -1.189 TD (tval.tv_usec = nusecs % 1000000;)Tj T* (select\(0, NULL, NULL, NULL, &tval\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 1878.25 cm 0 0 m 50 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 1878.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 236.8219 171.7665 Tm (Figure C.16)Tj /T1_0 1 Tf 5.917 0 Td (Implementation of)Tj /TT0 1 Tf 8.485 0 Td (sleep_us)Tj /T1_0 1 Tf 5.05 0 Td (using)Tj /TT0 1 Tf 2.706 0 Td (select)Tj /T1_0 1 Tf 9.997 0 0 9.997 160.2019 147.7737 Tm (Figur)Tj 0.25 Tc 2.383 0 Td (eC)Tj 0 Tc 1.438 0 Td (.17 shows an implementation using)Tj /TT0 1 Tf 15.908 0 Td (poll)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47380 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 33.857 0 Td [(Chapter )-250(13)-750(Solutions)]TJ /T1_1 1 Tf 11.976 0 Td (929)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 6690.25 cm 0 0 m 50 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 160.2404 659.4594 Tm (#include )Tj 0 -1.189 TD (#include )Tj T* (#include )Tj 0 -2.259 TD (unsigned)Tj 0 -1.189 TD (sleep\(unsigned seconds\))Tj T* ({)Tj 2.4 -1.189 Td (int n;)Tj T* (unsigned slept;)Tj T* (time_t start, end;)Tj T* (struct timeval tv;)Tj 0 -2.259 TD (tv.tv_sec = seconds;)Tj 0 -1.189 TD (tv.tv_usec = 0;)Tj T* (time\(&start\);)Tj 0.6 Tc T* (n=s)Tj 0 Tc 3 0 Td (elect\(0, NULL, NULL, NULL, &tv\);)Tj -3 -1.189 Td (if \(n == 0\))Tj 2.4 -1.189 Td (return\(0\);)Tj -2.4 -1.189 Td (time\(&end\);)Tj T* (slept = end - start;)Tj T* (if \(slept >= seconds\))Tj 2.4 -1.189 Td (return\(0\);)Tj -2.4 -1.189 Td (return\(seconds - slept\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 4107.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 4107.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 245.5835 394.6906 Tm (Figure C.13)Tj /T1_0 1 Tf 0.25 Tc 5.917 0 Td (At)Tj 0 Tc 1.354 0 Td [(hr)18(ead-safe implementation of)]TJ /TT0 1 Tf 13.307 0 Td (sleep)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5843 364.6942 Tm (13.3)Tj /T1_0 1 Tf 3.065 0 Td (Figur)Tj 0.25 Tc 2.383 0 Td (eC)Tj 0 Tc 1.438 0 Td (.14 shows a solution.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 3575.25 cm 0 0 m 50 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 3575.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 160.2212 347.9744 Tm (#include "apue.h")Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (FILE *fp;)Tj T* (char *p;)Tj 0 -1.783 TD (daemonize\("getlog"\);)Tj 0.6 Tc 0 -1.189 TD (p=g)Tj 0 Tc 3 0 Td (etlogin\(\);)Tj -3 -1.189 Td (fp = fopen\("/tmp/getlog.out", "w"\);)Tj T* (if \(fp != NULL\) {)Tj 2.4 -1.189 Td (if \(p == NULL\))Tj 2.4 -1.189 Td (fprintf\(fp, "no login name\\n"\);)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (fprintf\(fp, "login name: %s\\n", p\);)Tj -4.8 -1.189 Td (})Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 1613.25 cm 0 0 m 50 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 1613.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 236.7562 145.3011 Tm (Figure C.14)Tj /T1_0 1 Tf 5.917 0 Td (Call)Tj /TT0 1 Tf 2.041 0 Td (daemonize)Tj /T1_0 1 Tf 5.65 0 Td (and then obtain login name)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47381 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.4)]TJ 35.831 0 Td [(I/O )-250(Multiplexing)]TJ /T1_1 1 Tf 10.002 0 Td (503)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_2 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (tvptr)Tj /T1_3 1 Tf (!)Tj /T1_2 1 Tf (>tv_sec)Tj /TT0 1 Tf 6.285 0 Td (!=)Tj /T1_0 1 Tf 1.7 0 Td (0)Tj /TT0 1 Tf 1 0 Td (||)Tj /T1_2 1 Tf 1.7 0 Td (tvptr)Tj /T1_3 1 Tf (!)Tj /T1_2 1 Tf (>tv_usec)Tj /TT0 1 Tf 6.841 0 Td (!=)Tj /T1_0 1 Tf 1.7 0 Td (0)Tj -0.092 Tc -17.426 -1.68 Td (Wa)Tj 0 Tc 1.408 0 Td [(it )-42(the )-42(speci\336ed )-42(number )-42(of )-42(seconds )-42(and )-42(micr)20(oseconds. )-292(Return)-291(is )-42(made )-42(when)]TJ -1.408 -1.2 Td [(one )-87(of )-87(the )-87(speci\336ed )-87(descriptors )-87(is )-87(r)18(eady )-87(or )-87(when )-87(the )-87(timeout )-87(value )-87(expir)14(es. )-337(If)]TJ 0 -1.2 TD [(the )-61(timeout )-61(expir)18(es )-61(befor)]TJ 0.3112 Tc 11.23 0 Td (ea)Tj 0 Tc 1.29 0 Td [(ny )-61(of )-61(the )-61(descriptors )-61(is )-61(r)18(eady)]TJ 0.3111 Tc 13.023 0 Td (,t)Tj 0 Tc 0.887 0 Td [(he )-61(r)18(eturn )-61(value )-61(is )-61(0.)]TJ -26.429 -1.2 Td [(\(If )-49(the )-49(system )-49(doesn\325t )-49(pr)18(ovide )-49(micr)18(osecond )-49(r)16(esolution, )-49(the)]TJ /T1_2 1 Tf 26.322 0 Td (tvptr)Tj /T1_3 1 Tf (!)Tj /T1_2 1 Tf (>tv_usec)Tj /T1_0 1 Tf 6.64 0 Td (value)Tj -32.962 -1.2 Td [(is )-52(r)18(ounded )-52(up )-52(to )-52(the )-52(near)18(est )-52(supported )-52(value.\))-552(As )-52(with )-52(the )-52(\336rst )-52(condition, )-52(this)]TJ T* [(wait can also be interr)8(upted by a caught signal.)]TJ 7.9995 0 0 7.9995 183.5891 572.1657 Tm [(POSIX.1 )-30(allows )-30(an )-30(implementation )-30(to )-30(modify )-30(the)]TJ /TT0 1 Tf 22.14 0 Td (timeval)Tj /T1_0 1 Tf 4.481 0 Td [(str)8(uctur)18(e, )-30(so )-30(after)]TJ /TT0 1 Tf 8.063 0 Td (select)Tj /T1_0 1 Tf -0.018 Tc 3.881 0 Td (re)Tj 0 Tc 0.856 0 Td (turns,)Tj -39.42 -1.25 Td [(you )-253(can\325t )-253(r)18(ely )-253(on )-253(the )-253(str)8(uctur)]TJ 0.503 Tc 14.058 0 Td (ec)Tj 0 Tc 1.426 0 Td [(ontaining )-253(the )-253(same )-253(values )-253(it )-253(did )-253(befor)]TJ 0.5029 Tc 18.226 0 Td (ec)Tj 0 Tc 1.426 0 Td (alling)Tj /TT0 1 Tf 3.014 0 Td (select)Tj /T1_0 1 Tf (.)Tj -38.15 -1.25 Td [(Fr)18(eeBSD )-24(8.0, )-24(Mac )-24(OS )-24(X )-24(10.6.8, )-24(and )-24(Solaris )-24(10 )-24(all )-24(leave )-24(the )-24(str)4(uctur)]TJ 0.2744 Tc 29.149 0 Td (eu)Tj 0 Tc 1.356 0 Td [(nchanged, )-24(but )-24(Linux )-24(3.2.0)]TJ -30.506 -1.25 Td [(will update it with the time r)18(emaining if)]TJ /TT0 1 Tf 18.008 0 Td (select)Tj /T1_0 1 Tf -0.018 Tc 3.85 0 Td (re)Tj 0 Tc 0.856 0 Td (turns befor)Tj 0.25 Tc 4.868 0 Td (et)Tj 0 Tc 1.055 0 Td [(he timeout value expir)18(es.)]TJ 9.9994 0 0 9.9994 147.591 522.1687 Tm [(The )-436(middle )-436(thr)18(ee )-436(ar)18(guments\321)]TJ /T1_2 1 Tf -0.018 Tc (re)Tj 0 Tc 15.631 0 Td (adfds)Tj /T1_0 1 Tf (,)Tj /T1_2 1 Tf 3.047 0 Td (writefds)Tj /T1_0 1 Tf 0.686 Tc (,a)Tj 0 Tc 4.714 0 Td (nd)Tj /T1_2 1 Tf 1.879 0 Td (exceptfds)Tj /T1_0 1 Tf (\321ar)Tj 0.686 Tc 5.562 0 Td (ep)Tj 0 Tc 1.766 0 Td [(ointers )-436(to)]TJ /T1_2 1 Tf -34.399 -1.2 Td [(descriptor )-171(sets)]TJ /T1_0 1 Tf 0.6709 Tc (.T)Tj 0 Tc 7.473 0 Td [(hese )-171(thr)18(ee )-171(sets )-171(specify )-171(which )-171(descriptors )-171(we\325r)]TJ 0.4209 Tc 21.15 0 Td (ei)Tj 0 Tc 1.191 0 Td [(nter)18(ested )-171(in )-171(and )-171(for)]TJ -29.814 -1.2 Td [(which )-183(conditions )-183(\(r)19(eadable, )-183(writable, )-183(or )-183(an )-183(exception )-183(condition\).)]TJ 0.4326 Tc 30.468 0 Td (Ad)Tj 0 Tc 1.822 0 Td [(escriptor )-183(set )-183(is)]TJ -32.29 -1.2 Td [(stor)18(ed )-46(in )-46(an)]TJ /TT0 1 Tf 5.606 0 Td (fd_set)Tj /T1_0 1 Tf 3.896 0 Td [(data )-46(type.)-546(This )-46(data )-46(type )-46(is )-46(chosen )-46(by )-46(the )-46(implementation )-46(so )-46(that)]TJ -9.502 -1.2 Td [(it )-38(can )-38(hold )-38(one )-38(bit )-38(for )-38(each )-38(possible )-38(descriptor)]TJ 0.5381 Tc 20.581 0 Td (.W)Tj 0.2881 Tc 1.696 0 Td (ec)Tj 0 Tc 1.211 0 Td [(an )-38(consider )-38(it )-38(to )-38(be )-38(just )-38(a )-38(big )-38(array)]TJ -23.488 -1.2 Td (of bits, as shown in Figur)Tj 0.25 Tc 11.121 0 Td (e1)Tj 0 Tc 1.229 0 Td (4.15.)Tj /T1_2 1 Tf -0.018 Tc 7.9995 0 0 7.9995 201.5031 418.0151 Tm (re)Tj 0 Tc 0.76 0 Td (adfds)Tj ET q 0.99994 0 0 0.99994 0 0 cm q 1 0 0 1 256.2 419.8 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099994 0 0 0.099994 0 0 cm 1 j 1 J q 1 0 0 1 2562 4198 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 4198.25 cm 0 0 m 144 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2634 4090 216 216 re S Q BT /TT0 1 Tf 7.999 0 0 7.999 271.7674 417.9898 Tm (0)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2850 4090 216 216 re S Q BT /TT0 1 Tf 7.9986 0 0 7.9986 293.3472 417.9648 Tm (0)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 3066 4090 216 216 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 314.9244 417.9397 Tm (0)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 3282 4090 1296 216 re S Q BT /T1_1 1 Tf 0.25 Tc 7.9976 0 0 7.9976 344.6966 417.9146 Tm (...)Tj /T1_2 1 Tf 0 Tc -18.114 -5.4 Td (writefds)Tj ET q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 256.2 376.6 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 2562 3766 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 3766.25 cm 0 0 m 144 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 2634 3658 216 216 re S Q BT /TT0 1 Tf 7.9971 0 0 7.9971 271.7022 374.7051 Tm (0)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2850 3658 216 216 re S Q BT /TT0 1 Tf 7.9966 0 0 7.9966 293.2768 374.6826 Tm (0)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 3066 3658 216 216 re S Q BT /TT0 1 Tf 7.9962 0 0 7.9962 314.8488 374.6601 Tm (0)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 3282 3658 1296 216 re S Q BT /T1_1 1 Tf 0.25 Tc 7.9957 0 0 7.9957 344.6139 374.6376 Tm (...)Tj /T1_2 1 Tf 0 Tc -18.317 -5.4 Td (exceptfds)Tj ET q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 256.2 333.4 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 2562 3334 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 3334.25 cm 0 0 m 144 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 2634 3226 216 216 re S Q BT /TT0 1 Tf 7.9952 0 0 7.9952 271.637 331.4411 Tm (0)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 2850 3226 216 216 re S Q BT /TT0 1 Tf 7.9947 0 0 7.9947 293.2064 331.4212 Tm (0)Tj ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J 3066 3226 216 216 re S Q BT /TT0 1 Tf 7.9942 0 0 7.9942 314.7733 331.4013 Tm (0)Tj ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J 3282 3226 1296 216 re S Q BT /T1_1 1 Tf 0.25 Tc 7.9938 0 0 7.9938 344.5312 331.3814 Tm (...)Tj /T1_0 1 Tf 0 Tc -9.672 12.775 Td [(fd 0)-1006(fd 1)-1006(fd 2)]TJ ET q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2634.25 4018.25 cm 0 0 m 0 -72 l S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 263.4 398.2 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 2634 3982 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3982.25 cm 0 0 m 288 0 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 4018.25 cm 0 0 m 0 -72 l S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 457.8 398.2 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 4578 3982 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4506.25 3982.25 cm 0 0 m -288 0 l S Q Q BT /T1_0 1 Tf 7.9923 0 0 7.9923 306.8133 396.0596 Tm (one bit per possible descriptor)Tj ET q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2634.25 3586.25 cm 0 0 m 0 -72 l S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 263.4 355 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 2634 3550 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3550.25 cm 0 0 m 432 0 l S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4578.25 3586.25 cm 0 0 m 0 -72 l S Q Q q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 457.8 355 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 4578 3550 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4506.25 3550.25 cm 0 0 m -432 0 l S Q Q BT /TT0 1 Tf 7.9909 0 0 7.9909 326.8312 352.8375 Tm (fd_set)Tj /T1_0 1 Tf 4.2 0 Td (data type)Tj /T1_1 1 Tf -21.925 -6.98 Td (Figure 14.15)Tj /T1_0 1 Tf 6.195 0 Td [(Specifying the r)18(ead, write, and exception descriptors for)]TJ /TT0 1 Tf 25.004 0 Td (select)Tj /T1_0 1 Tf 9.9886 0 0 9.9886 147.432 267.0955 Tm [(The )-102(only )-102(thing )-102(we )-102(can )-102(do )-102(with )-102(the)]TJ /TT0 1 Tf 16.217 0 Td (fd_set)Tj /T1_0 1 Tf 3.952 0 Td [(data )-102(type )-102(is )-102(allocate )-102(a )-102(variable )-102(of )-102(this)]TJ -21.969 -1.2 Td [(type, )-2(assign )-2(a )-2(variable )-2(of )-2(this )-2(type )-2(to )-2(another )-2(variable )-2(of )-2(the )-2(same )-2(type, )-2(or )-2(use )-2(one )-2(of )-2(the)]TJ T* (following four functions on a variable of this type.)Tj /TT0 1 Tf 8.9897 0 0 8.9897 147.4321 226.4419 Tm (#include )Tj 0 -1.902 TD (int FD_ISSET\(int)Tj /T1_2 1 Tf 10.2 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,f)Tj 0 Tc 2.578 0 Td (d_set *)Tj /T1_2 1 Tf (fdset)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 7.891 -1.902 Td (Returns: nonzer)Tj 0.25 Tc 7.043 0 Td (oi)Tj 0 Tc 1.087 0 Td (f)Tj /T1_2 1 Tf 0.583 0 Td (fd)Tj /T1_0 1 Tf 1.028 0 Td (is in set, 0 otherwise)Tj /TT0 1 Tf -30.41 -1.902 Td (void FD_CLR\(int)Tj /T1_2 1 Tf 9.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,f)Tj 0 Tc 2.578 0 Td (d_set *)Tj /T1_2 1 Tf (fdset)Tj /TT0 1 Tf (\);)Tj -12.178 -1.189 Td (void FD_SET\(int)Tj /T1_2 1 Tf 9.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,f)Tj 0 Tc 2.578 0 Td (d_set *)Tj /T1_2 1 Tf (fdset)Tj /TT0 1 Tf (\);)Tj -12.178 -1.189 Td (void FD_ZERO\(fd_set *)Tj /T1_2 1 Tf (fdset)Tj /TT0 1 Tf (\);)Tj ET q 0.0998861 0 0 0.0998861 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1494.25 cm 0 0 m 0 863 l 3900 863 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47382 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.4)]TJ 31.602 0 Td [(Synchr)18(onization )-250(Attributes)]TJ /T1_1 1 Tf 14.231 0 Td (437)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (void )Tj 9 0 Td (*to_arg;)Tj 10.2 0 Td (/* argument */)Tj -19.2 -1.189 Td [(struct timespec to_wait;)-4800(/* time to wait */)]TJ -2.4 -1.189 Td (};)Tj 0 -1.783 TD [(#define SECTONSEC)-1200(1000000000 )-1200(/*)-600(seconds to nanoseconds */)]TJ T* (#if !defined\(CLOCK_REALTIME\) || defined\(BSD\))Tj 0 -1.189 TD [(#define clock_nanosleep\(ID, FL, REQ, REM\))-1800(nanosleep\(\(REQ\), \(REM\)\))]TJ T* (#endif)Tj 0 -1.783 TD (#ifndef CLOCK_REALTIME)Tj 0 -1.189 TD (#define CLOCK_REALTIME 0)Tj 0 -1.189 TD [(#define USECTONSEC 1000)-3000(/* microseconds to nanoseconds */)]TJ 0 -1.783 TD (void)Tj 0 -1.189 TD (clock_gettime\(int id, struct timespec *tsp\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (struct timeval tv;)Tj 0 -2.378 TD (gettimeofday\(&tv, NULL\);)Tj 0 -1.189 TD (tsp->tv_sec = tv.tv_sec;)Tj T* (tsp->tv_nsec = tv.tv_usec * USECTONSEC;)Tj -2.4 -1.189 Td (})Tj T* (#endif)Tj 0 -1.783 TD (void *)Tj 0 -1.189 TD (timeout_helper\(void *arg\))Tj T* ({)Tj 2.4 -1.189 Td [(struct to_info)-1200(*tip;)]TJ 0 -1.783 TD (tip = \(struct to_info *\)arg;)Tj 0 -1.189 TD (clock_nanosleep\(CLOCK_REALTIME, 0, &tip->to_wait, NULL\);)Tj T* (\(*tip->to_fn\)\(tip->to_arg\);)Tj T* (free\(arg\);)Tj T* (return\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (void)Tj 0 -1.189 TD (timeout\(const struct timespec *when, void \(*func\)\(void *\), void *ar\ g\))Tj T* ({)Tj 2.4 -1.189 Td (struct timespec now;)Tj T* [(struct to_info)-1200(*tip;)]TJ T* (int )Tj 9.6 0 Td (err;)Tj -9.6 -1.783 Td (clock_gettime\(CLOCK_REALTIME, &now\);)Tj 0 -1.189 TD (if \(\(when->tv_sec > now.tv_sec\) ||)Tj 1.2 -1.189 Td (\(when->tv_sec == now.tv_sec && when->tv_nsec > now.tv_nsec\)\) {)Tj 1.2 -1.189 Td (tip = malloc\(sizeof\(struct to_info\)\);)Tj 0 -1.189 TD (if \(tip != NULL\) {)Tj 2.4 -1.189 Td (tip->to_fn = func;)Tj T* (tip->to_arg = arg;)Tj T* (tip->to_wait.tv_sec = when->tv_sec - now.tv_sec;)Tj T* (if \(when->tv_nsec >= now.tv_nsec\) {)Tj 2.4 -1.189 Td (tip->to_wait.tv_nsec = when->tv_nsec - now.tv_nsec;)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47383 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.6 )]TJ 32.941 0 Td [(Thr)18(ead )-250(Synchr)18(onization)]TJ /T1_1 1 Tf 12.892 0 Td (421)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 215.987 670.2598 Tm (minidx = i;)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (snums[sidx] = nums[idx[minidx]];)Tj T* (idx[minidx]++;)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(\))Tj T* ({)Tj 2.4 -1.189 Td [(unsigned long)-1800(i;)]TJ T* [(struct timeval)-1200(start, end;)]TJ T* [(long long)-4200(startusec, endusec;)]TJ T* (double )Tj 9.6 0 Td (elapsed;)Tj -9.6 -1.189 Td (int )Tj 9.6 0 Td (err;)Tj -9.6 -1.189 Td [(pthread_t )-3600(tid;)]TJ 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (reate the initial set of numbers to sort.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (srandom\(1\);)Tj 0 -1.189 TD (for \(i = 0; i < NUMNUM; i++\))Tj 2.4 -1.189 Td (nums[i] = random\(\);)Tj -2.4 -1.902 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (reate 8 threads to sort the numbers.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (gettimeofday\(&start, NULL\);)Tj T* (pthread_barrier_init\(&b, NULL, NTHR+1\);)Tj T* (for \(i = 0; i < NTHR; i++\) {)Tj 2.4 -1.189 Td (err = pthread_create\(&tid, NULL, thr_fn, \(void *\)\(i * TNUM\)\);)Tj T* (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t create thread"\);)Tj -4.8 -1.189 Td (})Tj T* (pthread_barrier_wait\(&b\);)Tj T* (merge\(\);)Tj T* (gettimeofday\(&end, NULL\);)Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (rint the sorted list.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (startusec = start.tv_sec * 1000000 + start.tv_usec;)Tj 0 -1.189 TD (endusec = end.tv_sec * 1000000 + end.tv_usec;)Tj 0 -1.189 TD (elapsed = \(double\)\(endusec - startusec\) / 1000000.0;)Tj T* (printf\("sort took %.4f seconds\\n", elapsed\);)Tj T* (for \(i = 0; i < NUMNUM; i++\))Tj 2.4 -1.189 Td (printf\("%ld\\n", snums[i]\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1583.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 273.0112 142.3019 Tm [(Figure 1)37(1.16)]TJ /T1_0 1 Tf 6.25 0 Td (Using a barrier)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47384 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (414)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 0 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(variable, )-401(but )-401(if )-401(the )-401(condition )-401(variable )-401(is )-401(allocated )-401(dynamically)112(,)-651(we)-651(can )-401(use )-401(the)]TJ /TT0 1 Tf -0 -1.2 Td (pthread_cond_init)Tj /T1_1 1 Tf 10.45 0 Td (function to initialize it.)Tj -0.092 Tc -8.65 -1.2 Td [(We )-508(c)]TJ 0 Tc 2.405 0 Td [(an )-324(use )-324(the)]TJ /TT0 1 Tf 5.696 0 Td (pthread_cond_destroy)Tj /T1_1 1 Tf 12.574 0 Td [(function )-324(to )-324(deinitialize )-324(a )-324(condition)]TJ -22.475 -1.2 Td (variable befor)Tj 0.25 Tc 6.112 0 Td (ef)Tj -0.018 Tc 1.062 0 Td (re)Tj 0 Tc 0.856 0 Td [(eing its underlying memory)111(.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.591 613.8632 Tm (#include )Tj 0 -2.14 TD (int pthread_cond_init\(pthread_cond_t *restrict)Tj /T1_2 1 Tf 28.2 0 Td (cond)Tj /TT0 1 Tf (,)Tj -15 -1.189 Td (const pthread_condattr_t *restrict)Tj /T1_2 1 Tf 21 0 Td (attr)Tj /TT0 1 Tf (\);)Tj -34.2 -2.14 Td (int pthread_cond_destroy\(pthread_cond_t *)Tj /T1_2 1 Tf (cond)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 19.681 -2.14 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5409.25 cm 0 0 m 0 820 l 3900 820 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 524.957 Tm [(Unless )-197(you )-197(need )-197(to )-197(cr)18(eate )-197(a )-197(conditional )-197(variable )-197(with )-197(nondefault )-197(attributes, )-197(the)]TJ /T1_2 1 Tf 37.501 0 Td (attr)Tj /T1_1 1 Tf -37.501 -1.2 Td [(ar)18(gument )-253(to)]TJ /TT0 1 Tf 6.183 0 Td (pthread_cond_init)Tj /T1_1 1 Tf 10.703 0 Td [(can )-253(be )-253(set )-253(to)]TJ /TT0 1 Tf 6.669 0 Td (NULL)Tj /T1_1 1 Tf 0.7527 Tc (.W)Tj 0.5027 Tc 4.311 0 Td (ew)Tj 0 Tc 1.816 0 Td [(ill )-253(discuss )-253(condition)]TJ -29.682 -1.2 Td (variable attributes in Section 12.4.3.)Tj -0.092 Tc 1.8 -1.2 Td [(We )-429(u)]TJ 0 Tc 2.485 0 Td (se)Tj /TT0 1 Tf 1.398 0 Td (pthread_cond_wait)Tj /T1_1 1 Tf 10.695 0 Td [(to )-245(wait )-245(for )-245(a )-245(condition )-245(to )-245(be )-245(tr)5(ue. )-495(A)-496(variant )-245(is)]TJ -16.379 -1.2 Td [(pr)18(ovided )-111(to )-111(r)18(eturn )-111(an )-111(err)16(or )-112(code )-112(if )-112(the )-112(condition )-112(hasn\325t )-112(been )-112(satis\336ed )-112(in )-112(the )-112(speci\336ed)]TJ 0 -1.2 Td (amount of time.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5824 445.8665 Tm (#include )Tj 0 -2.14 TD (int pthread_cond_wait\(pthread_cond_t *restrict)Tj /T1_2 1 Tf 28.2 0 Td (cond)Tj /TT0 1 Tf (,)Tj -15 -1.189 Td (pthread_mutex_t *restrict)Tj /T1_2 1 Tf 15.6 0 Td (mutex)Tj /TT0 1 Tf (\);)Tj -28.8 -2.14 Td (int pthread_cond_timedwait\(pthread_cond_t *restrict)Tj /T1_2 1 Tf 31.2 0 Td (cond)Tj /TT0 1 Tf (,)Tj -15 -1.189 Td (pthread_mutex_t *restrict)Tj /T1_2 1 Tf 15.6 0 Td (mutex)Tj /TT0 1 Tf (,)Tj -15.6 -1.189 Td (const struct timespec *restrict)Tj /T1_2 1 Tf 19.2 0 Td (tsptr)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -15.719 -2.14 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3515.25 cm 0 0 m 0 1034 l 3900 1034 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 147.5734 335.5796 Tm [(The )-295(mutex )-295(passed )-295(to)]TJ /TT0 1 Tf 10.572 0 Td (pthread_cond_wait)Tj /T1_1 1 Tf 10.745 0 Td [(pr)18(otects )-295(the )-295(condition.)-795(The )-295(caller)]TJ -23.117 -1.2 Td [(passes )-78(it )-78(locked )-78(to )-78(the )-78(function, )-78(which )-78(then )-78(atomically )-78(places )-78(the )-78(calling )-78(thr)23(ead )-78(on )-78(the)]TJ 0 -1.2 TD [(list )-21(of )-21(thr)18(eads )-21(waiting )-21(for )-21(the )-21(condition )-21(and )-21(unlocks )-21(the )-21(mutex.)-521(This )-21(closes )-21(the )-21(window)]TJ T* [(between )-3(the )-3(time )-3(that )-3(the )-3(condition )-3(is )-3(checked )-3(and )-3(the )-3(time )-3(that )-3(the )-3(thr)18(ead )-3(goes )-3(to )-3(sleep)]TJ T* [(waiting )-173(for )-173(the )-173(condition )-173(to )-173(change, )-173(so )-173(that )-173(the )-173(thr)22(ead )-172(doesn\325t )-172(miss )-172(a )-172(change )-172(in )-172(the)]TJ T* [(condition. )-250(When)]TJ /TT0 1 Tf 7.862 0 Td (pthread_cond_wait)Tj /T1_1 1 Tf -0.018 Tc 10.45 0 Td (re)Tj 0 Tc 0.856 0 Td (turns, the mutex is again locked.)Tj -17.368 -1.2 Td (The)Tj /TT0 1 Tf 2.058 0 Td (pthread_cond_timedwait)Tj /T1_1 1 Tf 13.584 0 Td [(function )-134(pr)18(ovides )-134(the )-134(same )-134(functionality )-134(as )-134(the)]TJ /TT0 1 Tf -17.441 -1.2 Td (pthread_cond_wait)Tj /T1_1 1 Tf 10.596 0 Td [(function )-146(with )-146(the )-146(addition )-146(of )-146(the )-146(timeout )-146(\()]TJ /T1_2 1 Tf 19.708 0 Td (tsptr)Tj /T1_1 1 Tf [(\). )-396(The)-395(timeout)]TJ -30.304 -1.2 Td (value speci\336es how long we ar)Tj 0.25 Tc 13.562 0 Td (ew)Tj 0 Tc 1.563 0 Td [(illing to wait expr)18(essed as a)]TJ /TT0 1 Tf 12.439 0 Td (timespec)Tj /T1_1 1 Tf 5.05 0 Td [(str)8(uctur)18(e.)]TJ -30.814 -1.2 Td [(Just )-62(as )-62(we )-62(saw )-62(in )-62(Figur)]TJ 0.3123 Tc 10.499 0 Td (e1)Tj 0 Tc 1.236 0 Td [(1.13, )-62(we )-62(need )-62(to )-62(specify )-62(how )-62(long )-62(we )-62(ar)]TJ 0.3124 Tc 18.09 0 Td (ew)Tj 0 Tc 1.625 0 Td [(illing )-62(to )-62(wait)]TJ -33.25 -1.2 Td [(as )-88(an )-88(absolute )-88(time )-88(instead )-88(of )-88(a )-88(r)21(elative )-87(time.)-587(For )-87(example, )-87(suppose )-87(we )-87(ar)]TJ 0.3375 Tc 33.838 0 Td (ew)Tj 0 Tc 1.651 0 Td [(illing )-87(to)]TJ -35.489 -1.2 Td [(wait )-26(3 )-26(minutes.)-526(Instead )-26(of )-26(translating )-26(3 )-26(minutes )-26(into )-26(a)]TJ /TT0 1 Tf 24.541 0 Td (timespec)Tj /T1_1 1 Tf 5.076 0 Td [(str)8(uctur)18(e, )-26(we )-26(need )-26(to)]TJ -29.617 -1.2 Td (translate now)Tj /TT1 1 Tf 6.202 0 Td (+)Tj /T1_1 1 Tf 0.25 Tc 0.716 0 Td (3m)Tj 0 Tc 1.633 0 Td (inutes into a)Tj /TT0 1 Tf 5.7 0 Td (timespec)Tj /T1_1 1 Tf 5.05 0 Td [(str)8(uctur)18(e.)]TJ -0.092 Tc -17.5 -1.2 Td [(We )-390(c)]TJ 0 Tc 2.287 0 Td [(an )-206(use )-206(the)]TJ /TT0 1 Tf 5.343 0 Td (clock_gettime)Tj /T1_1 1 Tf 8.256 0 Td [(function )-206(\(Section )-206(6.10\) )-206(to )-206(get )-206(the )-206(curr)17(ent )-206(time)]TJ -17.686 -1.2 Td [(expr)18(essed )-54(as )-54(a)]TJ /TT0 1 Tf 6.727 0 Td (timespec)Tj /T1_1 1 Tf 5.104 0 Td [(str)8(uctur)18(e. )-304(However)]TJ 0.3042 Tc 8.829 0 Td (,t)Tj 0 Tc 0.88 0 Td [(his )-54(function )-54(is )-54(not )-54(yet )-54(supported )-54(on )-54(all)]TJ -21.54 -1.2 Td [(platforms. )-431(Alternatively)111(,)-431(we)-431(can )-181(use )-181(the)]TJ /TT0 1 Tf 19.113 0 Td (gettimeofday)Tj /T1_1 1 Tf 7.631 0 Td [(function )-181(to )-181(get )-181(the )-181(curr)19(ent)]TJ -26.744 -1.2 Td [(time )-83(expr)18(essed )-83(as )-83(a)]TJ /TT0 1 Tf 9.123 0 Td (timeval)Tj /T1_1 1 Tf 4.533 0 Td [(str)8(uctur)]TJ 0.3326 Tc 3.49 0 Td (ea)Tj 0 Tc 1.312 0 Td [(nd )-83(translate )-83(it )-83(into )-83(a)]TJ /TT0 1 Tf 9.541 0 Td (timespec)Tj /T1_1 1 Tf 5.133 0 Td [(str)8(uctur)18(e. )-333(T)92(o)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47385 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (906)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 155.6107 668.9599 Tm [(ar)18(gument )-77(to)]TJ /TT0 1 Tf 5.833 0 Td (strerror)Tj /T1_1 1 Tf 5.127 0 Td [(is )-77(an )-77(integer)]TJ 0.3274 Tc 5.486 0 Td (,a)Tj 0 Tc 1.077 0 Td [(nd )-77(since )-77(C )-77(passes )-77(all )-77(ar)18(guments )-77(by )-77(value,)]TJ -17.523 -1.2 Td (the)Tj /TT0 1 Tf 1.779 0 Td (strerror)Tj /T1_1 1 Tf 5.192 0 Td [(function )-142(couldn\325t )-142(modify )-142(this )-142(value )-142(even )-142(if )-142(it )-142(wanted )-142(to.)-647(\(If )-142(the)]TJ -6.972 -1.2 Td [(handling )-31(of )-31(function )-31(ar)17(guments )-32(in )-32(C )-32(is )-32(not )-32(clear)]TJ 0.2816 Tc 21.349 0 Td (,y)Tj 0 Tc 1.088 0 Td [(ou )-32(should )-32(r)18(eview )-32(Section )-32(5.2 )-32(of)]TJ -22.437 -1.2 Td (Kernighan and Ritchie)Tj 10.217 0.04 Td ([)Tj 0.333 -0.04 Td (1988)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td (.\))Tj /T1_0 1 Tf -15.485 -1.84 Td (1.4)Tj /T1_1 1 Tf 2.602 0 Td [(During )-13(the )-13(year )-13(2038.)]TJ -0.092 Tc 10.07 0 Td [(We )-197(c)]TJ 0 Tc 2.094 0 Td [(an )-13(solve )-13(the )-13(pr)18(oblem )-13(by )-13(making )-13(the)]TJ /TT0 1 Tf 16.209 0 Td (time_t)Tj /T1_1 1 Tf 3.863 0 Td [(data )-13(type)]TJ 0.456 Tc -32.236 -1.2 Td (a6)Tj 0 Tc 1.456 0 Td (4)Tj 0.5 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-206(integer)]TJ 0.706 Tc 4.66 0 Td (.I)Tj 0.456 Tc 1.293 0 Td (fi)Tj 0 Tc 1.08 0 Td [(t)-456(is)-456(curr)18(ently )-206(a )-206(32)]TJ 8.418 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-206(integer)]TJ 0.4561 Tc 4.66 0 Td (,a)Tj 0 Tc 1.206 0 Td [(pplications )-206(will )-206(have )-206(to )-206(be)]TJ -0.018 Tc -23.94 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(compiled )-116(to )-116(work )-116(pr)18(operly)]TJ 0.6159 Tc 12.182 0 Td (.B)Tj 0 Tc 1.477 0 Td [(ut )-116(the )-116(pr)18(oblem )-116(is )-116(worse.)-616(Some )-116(\336le )-116(systems )-116(and)]TJ -14.515 -1.2 Td [(backup )-76(media )-76(stor)]TJ 0.3263 Tc 8.347 0 Td (et)Tj 0 Tc 1.131 0 Td [(imes )-76(in )-76(32)]TJ 4.603 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-76(integers.)-576(These )-76(would )-76(need )-76(to )-76(be )-76(updated )-76(as)]TJ -14.414 -1.2 Td [(well, but we still need to be able to r)18(ead the old format.)]TJ /T1_0 1 Tf -2.602 -1.84 Td (1.5)Tj /T1_1 1 Tf 2.602 0 Td [(Appr)18(oximately 248 days.)]TJ /TT1 1 Tf -6.202 -4.2 Td [(Chapter )-278(2)]TJ /T1_0 1 Tf 3.6 -2.8 Td (2.1)Tj /T1_1 1 Tf 2.602 0 Td [(The )-124(following )-124(technique )-124(is )-124(used )-124(by )-124(Fr)19(eeBSD. )-374(The)-374(primitive )-124(data )-124(types )-124(that )-124(can)]TJ 0 -1.2 TD [(appear )-209(in )-209(multiple )-209(headers )-209(ar)]TJ 0.4594 Tc 13.899 0 Td (ed)Tj 0 Tc 1.549 0 Td [(e\336ned )-209(in )-209(the )-209(header)]TJ /TT0 1 Tf 9.9 0 Td ()Tj /T1_1 1 Tf (.)Tj -25.348 -1.2 Td (For example:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 173.6109 436.2738 Tm (#ifndef _MACHINE__TYPES_H_)Tj 0 -1.189 TD (#define _MACHINE__TYPES_H_)Tj 0 -2.378 TD (typedef int)Tj 14.4 0 Td (__int32_t;)Tj -14.4 -1.189 Td [(typedef unsigned int)-2400(__uint32_t;)]TJ 2.4 -1.189 Td (.)Tj 0 -0.476 TD (.)Tj T* (.)Tj -2.4 -2.378 Td [(typedef __uint32_t)-3600(__size_t;)]TJ 2.4 -1.189 Td (.)Tj 0 -0.476 TD (.)Tj T* (.)Tj -2.4 -2.378 Td [(#endif )-600(/*)-600(_MACHINE__TYPES_H_ */)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 155.612 293.0926 Tm [(In )-40(each )-40(of )-40(the )-40(headers )-40(that )-40(can )-40(de\336ne )-40(the)]TJ /TT0 1 Tf 18.673 0 Td (size_t)Tj /T1_1 1 Tf 3.89 0 Td [(primitive )-40(system )-40(data )-40(type, )-40(we)]TJ -22.563 -1.2 Td (have the sequence)Tj /TT0 1 Tf 8.9995 0 0 8.9995 173.6107 263.3245 Tm [(#ifndef )-600(_SIZE_T_DECLARED)]TJ 0 -1.189 TD [(typedef __size_t)-4200(size_t;)]TJ T* (#define _SIZE_T_DECLARED)Tj T* (#endif)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 155.6118 212.1577 Tm (This way)Tj 0.25 Tc 3.939 0 Td (,t)Tj 0 Tc 0.826 0 Td (he)Tj /TT0 1 Tf 1.311 0 Td (typedef)Tj /T1_1 1 Tf 4.45 0 Td (for)Tj /TT0 1 Tf 1.524 0 Td (size_t)Tj /T1_1 1 Tf 3.85 0 Td (is executed only once.)Tj /T1_0 1 Tf -18.502 -1.84 Td (2.3)Tj /T1_1 1 Tf 2.602 0 Td (If)Tj /TT0 1 Tf 1.001 0 Td (OPEN_MAX)Tj /T1_1 1 Tf 5.131 0 Td [(is )-81(indeterminate )-81(or )-81(ridiculously )-81(lar)17(ge )-81(\(i.e., )-81(equal )-81(to)]TJ /TT0 1 Tf 23.238 0 Td (LONG_MAX)Tj /T1_1 1 Tf [(\), )-81(we)]TJ -29.37 -1.2 Td [(can )-174(use)]TJ /TT0 1 Tf 3.879 0 Td (getrlimit)Tj /T1_1 1 Tf 5.824 0 Td [(to )-174(get )-174(the )-174(per)19(-pr)18(ocess )-173(maximum )-173(for )-173(open )-173(\336le )-173(descriptors.)]TJ -9.703 -1.2 Td [(Since )-174(the )-174(per)19(-pr)18(ocess )-174(limit )-174(can )-174(be )-174(modi\336ed, )-174(we )-174(can\325t )-174(cache )-174(the )-174(value )-174(obtained)]TJ 0 -1.2 Td [(fr)18(om the pr)18(evious call \(it might have changed\).)-500(See Figur)]TJ 0.25 Tc 25.355 0 Td (eC)Tj 0 Tc 1.438 0 Td (.1.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47386 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (438)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 215.987 670.2598 Tm (tip->to_wait.tv_sec--;)Tj 0 -1.189 TD (tip->to_wait.tv_nsec = SECTONSEC - now.tv_nsec +)Tj 1.2 -1.189 Td (when->tv_nsec;)Tj -3.6 -1.189 Td (})Tj T* (err = makethread\(timeout_helper, \(void *\)tip\);)Tj 0 -1.189 TD (if \(err == 0\))Tj 2.4 -1.189 Td (return;)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (free\(tip\);)Tj -4.8 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (/*)Tj 0.6 -1.189 Td [(*)-600(We)-600(get here if \(a\) when <= now, or \(b\) malloc fails, or)]TJ 0.6 Tc 0 -1.189 TD (*\()Tj 0 Tc 1.8 0 Td (c\) we can\325t make a thread, so we just call the function now.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (\(*func\)\(arg\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (pthread_mutexattr_t attr;)Tj 0 -1.189 TD (pthread_mutex_t mutex;)Tj 0 -1.783 TD (void)Tj 0 -1.189 TD (retry\(void *arg\))Tj T* ({)Tj 2.4 -1.189 Td (pthread_mutex_lock\(&mutex\);)Tj 0 -1.783 TD (/* perform retry steps ... */)Tj 0 -1.783 TD (pthread_mutex_unlock\(&mutex\);)Tj -2.4 -1.189 Td (})Tj T* (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td [(err,)-600(condition, arg;)]TJ -9.6 -1.189 Td (struct timespec when;)Tj 0 -1.783 TD (if \(\(err = pthread_mutexattr_init\(&attr\)\) != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "pthread_mutexattr_init failed"\);)Tj -2.4 -1.189 Td (if \(\(err = pthread_mutexattr_settype\(&attr,)Tj 1.2 -1.189 Td (PTHREAD_MUTEX_RECURSIVE\)\) != 0\))Tj 1.2 -1.189 Td (err_exit\(err, "can\325t set recursive type"\);)Tj -2.4 -1.189 Td (if \(\(err = pthread_mutex_init\(&mutex, &attr\)\) != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t create recursive mutex"\);)Tj -2.4 -1.783 Td (/* continue processing ... */)Tj T* (pthread_mutex_lock\(&mutex\);)Tj 0 -1.783 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (heck the condition under the protection of a lock to)Tj 0.6 Tc -1.8 -1.189 Td (*m)Tj 0 Tc 1.8 0 Td (ake the check and the call to timeout atomic.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(condition\) {)Tj 2.4 -1.189 Td (/*)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47387 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.19)]TJ /TT0 1 Tf 17.886 0 Td (sleep)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.75 0 Td (nanosleep)Tj /T1_0 1 Tf 0.5 Tc (,a)Tj 0 Tc 6.65 0 Td (nd)Tj /TT0 1 Tf 1.693 0 Td (clock_nanosleep)Tj /T1_0 1 Tf 9.5 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (375)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(to )-20(sleep )-20(in )-20(seconds )-20(and )-20(nanoseconds.)-522(If )-20(the )-20(sleep )-20(interval )-20(is )-20(interr)8(upted )-20(by )-20(a )-20(signal )-20(and)]TJ 0 -1.2 TD [(the )-407(pr)18(ocess )-407(doesn\325t )-407(terminate, )-407(the)]TJ /TT0 1 Tf 17.112 0 Td (timespec)Tj /T1_0 1 Tf 5.457 0 Td [(str)8(uctur)]TJ 0.6573 Tc 3.49 0 Td (ep)Tj 0 Tc 1.737 0 Td [(ointed )-407(to )-407(by )-407(the)]TJ /T1_2 1 Tf -0.018 Tc 8.832 0 Td (re)Tj 0 Tc 0.76 0 Td (mtp)Tj /T1_0 1 Tf -37.389 -1.2 Td [(parameter )-118(will )-118(be )-118(set )-118(to )-118(the )-118(amount )-118(of )-118(time )-118(left )-118(in )-118(the )-118(sleep )-118(interval.)]TJ -0.092 Tc 32.13 0 Td [(We )-302(c)]TJ 0 Tc 2.199 0 Td [(an )-118(set )-118(this)]TJ -34.329 -1.2 Td (parameter to)Tj /TT0 1 Tf 5.93 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td (if we ar)Tj 0.25 Tc 3.314 0 Td (eu)Tj 0 Tc 1.332 0 Td [(ninter)18(ested in the time unslept.)]TJ -11.426 -1.2 Td [(If )-396(the )-396(system )-396(doesn\325t )-396(support )-396(nanosecond )-396(granularity)]TJ 0.646 Tc 25.947 0 Td (,t)Tj 0 Tc 1.222 0 Td [(he )-396(r)18(equested )-396(time )-396(is)]TJ -0.018 Tc -28.969 -1.2 Td (ro)Tj 0 Tc 0.923 0 Td [(unded )-136(up.)-636(Because )-136(the)]TJ /TT0 1 Tf 11.062 0 Td (nanosleep)Tj /T1_0 1 Tf 5.786 0 Td [(function )-136(doesn\325t )-136(involve )-136(the )-136(generation )-136(of )-136(any)]TJ -17.771 -1.2 Td (signals, we can use it without worrying about interactions with other fu\ nctions.)Tj 7.9995 0 0 7.9995 183.5888 576.9654 Tm (The)Tj /TT0 1 Tf 1.928 0 Td (nanosleep)Tj /T1_0 1 Tf 5.654 0 Td [(function )-4(used )-4(to )-4(belong )-4(to )-4(the )-4(T)55(imers )-4(option )-4(in )-4(the )-4(Single )-4(UNIX )-4(Speci\336cation,)]TJ -7.583 -1.25 Td (but was moved to the base in SUSv4.)Tj -0.055 Tc 9.9994 0 0 9.9994 147.591 546.9672 Tm (Wi)Tj 0 Tc 1.236 0 Td [(th )-27(the )-27(intr)18(oduction )-27(of )-27(multiple )-27(system )-27(clocks )-27(\(r)15(ecall )-28(Section )-28(6.10\), )-28(we )-28(need )-28(a )-28(way)]TJ -3.036 -1.2 Td [(to )-202(suspend )-202(the )-202(calling )-202(thr)16(ead )-202(using )-202(a )-202(delay )-202(time )-202(r)18(elative )-202(to )-202(a )-202(particular )-202(clock.)-706(The)]TJ /TT0 1 Tf T* (clock_nanosleep)Tj /T1_0 1 Tf 9.25 0 Td [(function pr)18(ovides us with this capability)111(.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 133.912 505.0697 Tm (#include )Tj 0 -1.902 TD (int clock_nanosleep\(clockid_t)Tj /T1_2 1 Tf 18 0 Td (clock_id)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 5.058 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ags)Tj /TT0 1 Tf (,)Tj -12.858 -1.189 Td (const struct timespec *)Tj /T1_2 1 Tf -0.018 Tc (re)Tj 0 Tc 14.56 0 Td (qtp)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.096 0 Td (truct timespec *)Tj /T1_2 1 Tf -0.018 Tc (re)Tj 0 Tc 10.36 0 Td (mtp)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -25.586 -1.902 Td [(Returns: 0 if slept for r)18(equested time or err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4556.25 cm 0 0 m 0 585 l 3900 585 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 440.9071 Tm (The)Tj /T1_2 1 Tf 2.117 0 Td (clock_id)Tj /T1_0 1 Tf 3.701 0 Td [(ar)18(gument )-193(speci\336es )-193(the )-193(clock )-193(against )-193(which )-193(the )-193(time )-193(delay )-193(is )-193(evaluated.)]TJ -5.817 -1.2 Td [(Identi\336ers )-218(for )-218(clocks )-218(ar)]TJ 0.4682 Tc 10.79 0 Td (el)Tj 0 Tc 1.238 0 Td [(isted )-218(in )-218(Figur)]TJ 0.4682 Tc 6.323 0 Td (e6)Tj 0 Tc 1.447 0 Td [(.8. )-468(The)]TJ /T1_2 1 Tf 3.86 0 Td (\337ags)Tj /T1_0 1 Tf 2.346 0 Td [(ar)18(gument )-218(is )-218(used )-218(to )-218(contr)17(ol)]TJ -26.005 -1.2 Td [(whether )-18(the )-18(delay )-18(is )-18(absolute )-18(or )-18(r)16(elative. )-268(When)]TJ /T1_2 1 Tf 21.477 0 Td (\337ags)Tj /T1_0 1 Tf 2.146 0 Td [(is )-18(set )-18(to )-18(0, )-18(the )-18(sleep )-18(time )-18(is )-18(r)15(elative)]TJ -23.624 -1.2 Td [(\(i.e., )-75(how )-75(long )-75(we )-75(want )-75(to )-75(sleep\).)-575(When )-75(it )-75(is )-75(set )-75(to)]TJ /TT0 1 Tf 23.296 0 Td (TIMER_ABSTIME)Tj /T1_0 1 Tf 0.3247 Tc (,t)Tj 0 Tc 8.701 0 Td [(he )-75(sleep )-75(time )-75(is)]TJ -31.997 -1.2 Td [(absolute \(i.e., we want to sleep until the clock r)18(eaches the speci\336ed time\).)]TJ 1.8 -1.2 Td [(The )-79(other )-79(ar)18(guments,)]TJ /T1_2 1 Tf -0.018 Tc 9.969 0 Td (re)Tj 0 Tc 0.76 0 Td (qtp)Tj /T1_0 1 Tf 1.625 0 Td (and)Tj /T1_2 1 Tf -0.018 Tc 2.022 0 Td (re)Tj 0 Tc 0.76 0 Td (mtp)Tj /T1_0 1 Tf 0.3291 Tc (,a)Tj -0.018 Tc 2.69 0 Td [(re )-115(t)]TJ 0 Tc 1.511 0 Td [(he )-79(same )-79(as )-79(in )-79(the)]TJ /TT0 1 Tf 8.176 0 Td (nanosleep)Tj /T1_0 1 Tf 5.729 0 Td (function.)Tj -35.043 -1.2 Td (However)Tj 0.2882 Tc 4.056 0 Td (,w)Tj 0 Tc 1.372 0 Td [(hen )-38(we )-38(use )-38(an )-38(absolute )-38(time, )-38(the)]TJ /T1_2 1 Tf -0.018 Tc 14.899 0 Td (re)Tj 0 Tc 0.76 0 Td (mtp)Tj /T1_0 1 Tf 1.899 0 Td [(ar)18(gument )-38(is )-38(unused, )-38(because )-38(it )-38(isn\325t)]TJ -22.987 -1.2 Td [(needed; )-216(we )-216(can )-216(r)18(euse )-216(the )-216(same )-216(value )-216(for )-216(the)]TJ /T1_2 1 Tf -0.018 Tc 21.661 0 Td (re)Tj 0 Tc 0.76 0 Td (qtp)Tj /T1_0 1 Tf 1.762 0 Td [(ar)18(gument )-216(for )-216(additional )-216(calls )-216(to)]TJ /TT0 1 Tf -24.183 -1.2 Td (clock_nanosleep)Tj /T1_0 1 Tf 9.25 0 Td [(until the clock r)18(eaches the speci\336ed absolute time value.)]TJ -7.45 -1.2 Td [(Note that except for err)18(or r)18(eturns, the call)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5828 316.222 Tm (clock_nanosleep\(CLOCK_REALTIME, 0, reqtp, remtp\);)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5849 298.2242 Tm [(has the same ef)18(fect as the call)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5828 281.5262 Tm (nanosleep\(reqtp, remtp\);)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5849 263.5284 Tm [(The )-28(pr)18(oblem )-28(with )-28(using )-28(a )-28(r)18(elative )-28(sleep )-28(is )-28(that )-28(some )-28(applications )-28(r)19(equir)]TJ 0.2779 Tc 31.897 0 Td (ep)Tj -0.018 Tc 1.358 0 Td (re)Tj 0 Tc 0.856 0 Td [(cision )-28(with)]TJ -34.111 -1.2 Td [(how )-50(long )-50(they )-50(sleep, )-50(and )-50(a )-50(r)19(elative )-50(sleep )-50(time )-50(can )-50(lead )-50(to )-50(sleeping )-50(longer )-50(than )-50(desir)18(ed.)]TJ 0 -1.2 TD [(For )-158(example, )-158(if )-158(an )-158(application )-158(wants )-158(to )-158(perform )-158(a )-158(task )-158(at )-158(r)14(egular )-158(intervals, )-158(it )-158(would)]TJ T* [(have )-43(to )-43(get )-43(the )-43(curr)18(ent )-43(time, )-43(calculate )-43(the )-43(amount )-43(of )-43(time )-43(until )-43(the )-43(next )-43(time )-43(to )-43(execute)]TJ T* [(the )-65(task, )-65(and )-65(then )-65(call)]TJ /TT0 1 Tf 10.204 0 Td (nanosleep)Tj /T1_0 1 Tf 0.5646 Tc (.B)Tj 0 Tc 6.826 0 Td [(etween )-65(the )-65(time )-65(that )-65(the )-65(curr)20(ent )-64(time )-64(is )-64(obtained)]TJ -17.03 -1.2 Td [(and )-44(the )-44(call )-44(to)]TJ /TT0 1 Tf 6.656 0 Td (nanosleep)Tj /T1_0 1 Tf 5.694 0 Td [(is )-44(made, )-44(pr)18(ocessor )-44(scheduling )-44(and )-44(pr)18(eemption )-44(can )-44(r)18(esult )-44(in)]TJ -12.35 -1.2 Td [(the )-231(r)18(elative )-231(sleep )-231(time )-231(extending )-231(past )-231(the )-231(desir)18(ed )-231(interval.)-731(Using )-231(an )-231(absolute )-231(time)]TJ T* [(impr)18(oves )-365(the )-365(pr)18(ecision, )-365(even )-365(though )-365(a )-365(time-sharing )-365(pr)18(ocess )-365(scheduler )-365(makes )-365(no)]TJ T* (guarantee that our task will execute immediately after our sleep time ha\ s ended.)Tj 7.999 0 0 7.999 183.5785 147.5423 Tm [(In )-57(older )-57(versions )-57(of )-57(the )-57(Single )-57(UNIX )-57(Speci\336cation, )-57(the)]TJ /TT0 1 Tf 24.583 0 Td (clock_nanosleep)Tj /T1_0 1 Tf 9.307 0 Td [(function )-57(belonged)]TJ -33.89 -1.25 Td [(to the Clock Selection option.)-500(In SUSv4, it was moved to the base.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47388 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (24)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(System )-250(Overview)]TJ 39.741 0 Td [(Chapter )-250(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-187(next )-187(chapter )-187(is )-187(about )-187(standar)19(dization )-187(of )-187(the )-187(UNIX )-187(System )-187(and )-187(the )-187(ef)18(fect )-187(of)]TJ -1.8 -1.2 Td [(work )-112(in )-112(this )-112(ar)18(ea )-112(on )-112(curr)20(ent )-111(systems.)-612(Standar)18(ds, )-111(particularly )-111(the )-111(ISO )-111(C )-111(standar)]TJ 0.3615 Tc 36.335 0 Td (da)Tj 0 Tc 1.472 0 Td (nd)Tj -37.807 -1.2 Td [(the POSIX.1 standar)18(d, will af)18(fect the r)18(est of the text.)]TJ /TT0 1 Tf 11.9993 0 0 11.9993 129.5926 602.9638 Tm [(Ex)10(er)20(cises)]TJ /T1_0 1 Tf 8.9995 0 0 8.9995 129.5926 581.9651 Tm (1.1)Tj /T1_1 1 Tf -0.111 Tc 2.602 0 Td (Ve)Tj 0 Tc 1.09 0 Td [(rify )-103(on )-103(your )-103(system )-103(that )-103(the )-103(dir)18(ectories )-103(dot )-103(and )-103(dot-dot )-103(ar)]TJ 0.3531 Tc 26.561 0 Td (en)Tj 0 Tc 1.414 0 Td [(ot )-103(the )-103(same, )-103(except )-103(in )-103(the)]TJ -0.018 Tc -29.066 -1.222 Td (ro)Tj 0 Tc 0.923 0 Td [(ot dir)18(ectory)111(.)]TJ /T1_0 1 Tf -3.525 -1.667 Td (1.2)Tj /T1_1 1 Tf 2.602 0 Td [(In )-39(the )-39(output )-39(fr)18(om )-39(the )-39(pr)18(ogram )-39(in )-39(Figur)]TJ 0.2893 Tc 17.976 0 Td (e1)Tj 0 Tc 1.268 0 Td [(.6, )-39(what )-39(happened )-39(to )-39(the )-39(pr)18(ocesses )-39(with )-39(pr)16(ocess)]TJ -19.245 -1.222 Td (IDs 852 and 853?)Tj /T1_0 1 Tf -2.602 -1.667 Td (1.3)Tj /T1_1 1 Tf 2.602 0 Td [(In )-41(Section )-41(1.7, )-41(the )-41(ar)17(gument )-41(to)]TJ /TT1 1 Tf 13.925 0 Td (perror)Tj /T1_1 1 Tf 3.891 0 Td [(is )-41(de\336ned )-41(with )-41(the )-41(ISO )-41(C )-41(attribute)]TJ /TT1 1 Tf 15.698 0 Td (const)Tj /T1_1 1 Tf 0.2914 Tc (,w)Tj 0 Tc 4.375 0 Td [(her)18(eas)]TJ -37.89 -1.222 Td [(the integer ar)18(gument to)]TJ /TT1 1 Tf 10.673 0 Td (strerror)Tj /T1_1 1 Tf 5.05 0 Td [(isn\325t de\336ned with this attribute.)-500(Why?)]TJ /T1_0 1 Tf -18.325 -1.667 Td (1.4)Tj /T1_1 1 Tf 2.602 0 Td [(If )-16(the )-16(calendar )-16(time )-16(is )-16(stor)18(ed )-16(as )-16(a )-16(signed )-16(32)]TJ 19.078 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-16(integer)74(,)-266(in)-266(which )-16(year )-16(will )-16(it )-16(over\337ow?)-516(How)]TJ -19.411 -1.222 Td [(can )-474(we )-474(extend )-474(the )-474(over\337ow )-474(point?)-973(Ar)]TJ 0.724 Tc 19.73 0 Td (et)Tj 0 Tc 1.529 0 Td [(hese )-474(strategies )-474(compatible )-474(with )-474(existing)]TJ -21.259 -1.222 Td (applications?)Tj /T1_0 1 Tf -2.602 -1.667 Td (1.5)Tj /T1_1 1 Tf 2.602 0 Td [(If )-30(the )-30(pr)18(ocess )-30(time )-30(is )-30(stor)18(ed )-30(as )-30(a )-30(signed )-30(32)]TJ 18.692 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-30(integer)]TJ 0.2796 Tc 4.484 0 Td (,a)Tj 0 Tc 1.03 0 Td [(nd )-29(if )-29(the )-29(system )-29(counts )-29(100 )-29(ticks )-29(per)]TJ -24.538 -1.222 Td (second, after how many days will the value over\337ow?)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47389 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 33.857 0 Td [(Chapter )-250(12)-750(Solutions)]TJ /T1_1 1 Tf 11.976 0 Td (927)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.037 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm (11)Tj 0 Tc 0.963 0 Td (.2)Tj /T1_0 1 Tf -0.092 Tc 2.102 0 Td [(To )-221(c)]TJ 0 Tc 1.798 0 Td [(hange )-37(the )-37(thr)18(ead )-37(ID )-37(of )-37(a )-37(pending )-37(job, )-37(the )-37(r)18(eader\320writer )-37(lock )-37(must )-37(be )-37(held )-37(in)]TJ -1.798 -1.2 Td [(write )-236(mode )-236(to )-236(pr)18(event )-236(anyone )-236(fr)18(om )-236(sear)17(ching )-236(the )-236(list )-236(while )-236(the )-236(ID )-236(is )-236(being)]TJ 0 -1.2 TD [(changed. )-342(The)-342(pr)18(oblem )-92(with )-92(the )-92(way )-92(the )-92(interfaces )-92(ar)]TJ 0.3418 Tc 24.22 0 Td (ec)Tj 0 Tc 1.265 0 Td [(urr)18(ently )-92(de\336ned )-92(is )-92(that)]TJ -25.484 -1.2 Td [(the )-18(ID )-18(of )-18(a )-18(job )-18(can )-18(change )-18(between )-18(the )-18(time )-18(that )-18(the )-18(job )-18(is )-18(found )-18(with)]TJ /TT0 1 Tf 31.136 0 Td (job_find)Tj /T1_0 1 Tf -31.136 -1.2 Td [(and )-79(the )-79(job )-79(is )-79(r)18(emoved )-79(fr)18(om )-79(the )-79(list )-79(by )-79(calling)]TJ /TT0 1 Tf 21.282 0 Td (job_remove)Tj /T1_0 1 Tf 0.5791 Tc (.T)Tj 0 Tc 7.442 0 Td [(his )-79(pr)18(oblem )-79(can)]TJ -28.724 -1.2 Td [(be )-55(solved )-55(by )-55(embedding )-55(a )-55(r)17(efer)18(ence )-55(count )-55(and )-55(a )-55(mutex )-55(inside )-55(the)]TJ /TT0 1 Tf 29.861 0 Td (job)Tj /T1_0 1 Tf 2.105 0 Td [(str)8(uctur)18(e)]TJ -31.966 -1.2 Td [(and )-29(having)]TJ /TT0 1 Tf 5.326 0 Td (job_find)Tj /T1_0 1 Tf 5.079 0 Td [(incr)18(ement )-29(the )-29(r)19(efer)18(ence )-28(count.)-528(The )-28(code )-28(that )-28(changes )-28(the)]TJ -10.405 -1.2 Td (ID can then avoid any job in the list that has a nonzer)Tj 0.25 Tc 23.488 0 Td (or)Tj 0 Tc 1.173 0 Td [(efer)18(ence count.)]TJ /T1_1 1 Tf -0.037 Tc -27.726 -1.84 Td (11)Tj 0 Tc 0.963 0 Td (.3)Tj /T1_0 1 Tf 2.102 0 Td [(First )-13(of )-13(all, )-13(the )-13(list )-13(is )-13(pr)15(otected )-14(by )-14(a )-14(r)18(eader\320writer )-14(lock, )-14(but )-14(the )-14(condition )-14(variable)]TJ T* [(needs )-300(a )-300(mutex )-300(to )-300(pr)18(otect )-300(the )-300(condition.)-802(Second, )-300(the )-300(condition )-300(each )-300(thr)17(ead)]TJ T* [(should )-112(wait )-112(to )-112(be )-112(satis\336ed )-112(is )-112(that )-112(ther)21(e)-362(is)-362(a)-362(j)1(ob )-112(for )-112(it )-112(to )-112(pr)18(ocess, )-112(so )-112(we )-112(need )-112(to)]TJ 0 -1.2 Td [(cr)18(eate )-111(a )-111(per)18(-thr)18(ead )-111(data )-111(str)8(uctur)18(e)-361(to)-361(r)18(epr)18(esent )-111(this )-111(condition.)-611(Alternatively)]TJ 0.361 Tc 34.011 0 Td (,w)Tj 0 Tc 1.445 0 Td (e)Tj -35.456 -1.2 Td [(can )-178(embed )-178(the )-178(mutex )-178(and )-178(condition )-178(variable )-178(in )-178(the)]TJ /TT0 1 Tf 24.326 0 Td (queue)Tj /T1_0 1 Tf 3.428 0 Td [(str)8(uctur)18(e, )-178(but )-178(this)]TJ -27.754 -1.2 Td [(means )-20(that )-20(all )-20(worker )-20(thr)18(eads )-20(will )-20(wait )-20(on )-20(the )-20(same )-20(condition.)-520(If )-20(ther)]TJ 0.2699 Tc 31.039 0 Td (ea)Tj -0.018 Tc 1.249 0 Td [(re )-56(m)]TJ 0 Tc 2.009 0 Td (any)Tj -34.297 -1.2 Td [(worker )-280(thr)18(eads, )-280(we )-280(can )-280(r)8(un )-280(into )-280(a)]TJ /T1_2 1 Tf 17.119 0 Td [(thundering )-280(herd)]TJ /T1_0 1 Tf 7.395 0 Td [(pr)18(oblem, )-280(wher)18(eby )-280(many)]TJ -24.514 -1.2 Td [(thr)18(eads )-29(ar)]TJ 0.2795 Tc 4.456 0 Td (ea)Tj 0 Tc 1.259 0 Td [(wakened )-29(without )-29(work )-29(to )-29(do, )-29(r)16(esulting )-29(in )-29(a )-29(waste )-29(of )-29(CPU )-29(r)16(esour)18(ces)]TJ -5.714 -1.2 Td [(and incr)18(eased lock contention.)]TJ /T1_1 1 Tf -0.037 Tc -3.065 -1.84 Td (11)Tj 0 Tc 0.963 0 Td (.4)Tj /T1_0 1 Tf 2.102 0 Td [(It )-290(depends )-290(on )-290(the )-290(cir)16(cumstances. )-540(In)-541(general, )-290(both )-290(can )-290(be )-290(corr)16(ect, )-290(but )-290(each)]TJ -0 -1.2 Td [(alternative )-224(has )-224(drawbacks.)-724(In )-224(the )-224(\336rst )-224(sequence, )-224(the )-224(waiting )-224(thr)15(eads )-224(will )-224(be)]TJ T* [(scheduled )-126(to )-126(r)8(un )-126(after )-126(we )-126(call)]TJ /TT0 1 Tf 14.099 0 Td (pthread_cond_broadcast)Tj /T1_0 1 Tf 0.6265 Tc (.I)Tj 0.3765 Tc 14.414 0 Td (ft)Tj 0 Tc 1.036 0 Td [(he )-126(pr)18(ogram )-126(is)]TJ -0.008 Tc -29.548 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td [(nning )-283(on )-283(a )-283(multipr)17(ocessor)]TJ 0.5335 Tc 12.378 0 Td (,s)Tj 0 Tc 1.207 0 Td [(ome )-283(thr)18(eads )-283(will )-283(r)8(un )-283(and )-283(immediately )-283(block)]TJ -14.575 -1.2 Td [(because )-17(we )-17(ar)]TJ 0.2673 Tc 6.207 0 Td (es)Tj 0 Tc 1.17 0 Td [(till )-17(holding )-17(the )-17(mutex )-17(\(r)18(ecall )-17(that)]TJ /TT0 1 Tf 14.905 0 Td (pthread_cond_wait)Tj /T1_0 1 Tf -0.018 Tc 10.467 0 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj -33.605 -1.2 Td [(with )-65(the )-65(mutex )-65(held\).)-565(In )-65(the )-65(second )-65(sequence, )-65(a )-65(r)8(unning )-65(thr)18(ead )-65(can )-65(acquir)]TJ 0.315 Tc 33.754 0 Td (et)Tj 0 Tc 1.12 0 Td (he)Tj -34.874 -1.2 Td [(mutex )-145(between )-145(steps )-145(3 )-145(and )-145(4, )-145(invalidate )-145(the )-145(condition, )-145(and )-145(r)18(elease )-145(the )-145(mutex.)]TJ T* [(Then, )-125(when )-125(we )-125(call)]TJ /TT0 1 Tf 9.321 0 Td (pthread_cond_broadcast)Tj /T1_0 1 Tf 0.3748 Tc (,t)Tj 0 Tc 14.151 0 Td [(he )-125(condition )-125(will )-125(no )-125(longer)]TJ -23.472 -1.2 Td [(be )-86(tr)8(ue, )-86(and )-86(the )-86(thr)18(eads )-86(will )-86(r)8(un )-86(needlessly)]TJ 0.5862 Tc 19.593 0 Td (.T)Tj 0 Tc 1.449 0 Td [(his )-86(is )-86(why )-86(the )-86(awakened )-86(thr)17(eads)]TJ -21.043 -1.2 Td [(must )-322(r)18(echeck )-322(the )-322(condition )-322(and )-322(not )-322(assume )-322(that )-322(it )-322(is )-322(tr)8(ue )-322(mer)18(ely )-322(because)]TJ /TT0 1 Tf T* (pthread_cond_wait)Tj /T1_0 1 Tf -0.018 Tc 10.45 0 Td (re)Tj 0 Tc 0.856 0 Td (turned.)Tj /TT1 1 Tf -17.971 -2.88 Td [(Chapter )-278(12)]TJ /T1_1 1 Tf 3.6 -2.32 Td (12.1)Tj /T1_0 1 Tf 3.065 0 Td [(This )-14(is )-14(not )-14(a )-14(multithr)18(eading )-14(pr)18(oblem, )-14(as )-14(one )-14(might )-14(\336rst )-14(guess.)-520(The )-15(standar)]TJ 0.2646 Tc 33.33 0 Td (dI)Tj 0 Tc 1.213 0 Td (/O)Tj -0.018 Tc -34.543 -1.2 Td (ro)Tj 0 Tc 0.923 0 Td [(utines )-35(ar)]TJ 0.2855 Tc 3.868 0 Td (ei)Tj 0 Tc 1.056 0 Td [(ndeed )-35(thr)18(ead-safe. )-285(When)-286(we )-35(call)]TJ /TT0 1 Tf 15.116 0 Td (fork)Tj /T1_0 1 Tf 0.2855 Tc (,e)Tj 0 Tc 3.414 0 Td [(ach )-35(pr)18(ocess )-35(gets )-35(a )-35(copy )-35(of)]TJ -24.376 -1.2 Td [(the )-234(standar)]TJ 0.4837 Tc 5.191 0 Td (dI)Tj 0 Tc 1.432 0 Td [(/O )-234(data )-234(str)9(uctur)18(es. )-484(When)-483(we )-234(r)8(un )-234(the )-234(pr)19(ogram )-234(with )-234(standar)18(d)]TJ -6.622 -1.2 Td [(output )-44(attached )-44(to )-44(a )-44(terminal, )-44(the )-44(output )-44(is )-44(line )-44(buf)21(fer)18(ed, )-44(so )-44(every )-44(time )-44(we )-44(print)]TJ 0.2755 Tc -0 -1.2 Td (al)Tj 0 Tc 1.066 0 Td [(ine, )-25(the )-25(standar)]TJ 0.2755 Tc 6.86 0 Td (dI)Tj 0 Tc 1.224 0 Td [(/O )-26(library )-26(writes )-26(it )-26(to )-26(our )-26(terminal.)-523(However)74(,)-276(if)-276(we)-276(r)19(edir)18(ect)]TJ -9.15 -1.2 Td [(the )-182(standar)]TJ 0.4316 Tc 5.139 0 Td (do)Tj 0 Tc 1.589 0 Td [(utput )-182(to )-182(a )-182(\336le, )-182(then )-182(the )-182(standar)]TJ 0.4315 Tc 14.722 0 Td (do)Tj 0 Tc 1.589 0 Td [(utput )-181(is )-181(fully )-181(buf)17(fer)18(ed. )-431(The)]TJ -23.037 -1.2 Td [(output )-19(is )-19(written )-19(when )-19(the )-19(buf)18(fer )-19(\336lls )-19(or )-19(the )-19(pr)18(ocess )-19(closes )-19(the )-19(str)18(eam. )-269(When)-269(we)]TJ /TT0 1 Tf 0 -1.2 Td (fork)Tj /T1_0 1 Tf 2.671 0 Td [(in )-21(this )-21(example, )-21(the )-21(buf)18(fer )-21(contains )-21(several )-21(printed )-21(lines )-21(not )-21(yet )-21(written, )-21(so)]TJ -2.671 -1.2 Td [(when )-102(the )-102(par)18(ent )-102(and )-102(the )-102(child )-102(\336nally )-102(\337ush )-102(their )-102(copies )-102(of )-102(the )-102(buf)18(fer)]TJ 0.352 Tc 31.022 0 Td (,t)Tj 0 Tc 0.928 0 Td [(he )-102(initial)]TJ -31.95 -1.2 Td (duplicate contents ar)Tj 0.25 Tc 9.232 0 Td (ew)Tj 0 Tc 1.563 0 Td (ritten to the \336le.)Tj /T1_1 1 Tf -13.86 -1.84 Td (12.3)Tj /T1_0 1 Tf 3.065 0 Td [(Theor)18(etically)111(,)-302(if)-302(w)]TJ 0.3016 Tc 7.975 0 Td (ea)Tj 0 Tc 1.281 0 Td [(rrange )-52(for )-52(all )-52(signals )-52(to )-52(be )-52(blocked )-52(when )-52(the )-52(signal )-52(handler)]TJ -0.008 Tc -9.256 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td [(ns, )-144(we )-144(should )-144(be )-144(able )-144(to )-144(make )-144(a )-144(function )-144(async-signal )-144(safe.)-650(The )-145(pr)18(oblem )-145(is)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47390 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Chapter )-250(1)]TJ 34.7513 Tc 4.537 0 Td (1E)Tj 0 Tc 35.862 0 Td [(xer)18(cises)]TJ /T1_1 1 Tf 5.434 0 Td (423)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 8.9995 0 0 8.9995 157.1756 669.9598 Tm (or)Tj 2 -1.833 Td (1. Lock a mutex \()Tj /TT0 1 Tf (pthread_mutex_lock)Tj /T1_0 1 Tf (\).)Tj 0 -1.528 TD [(2. Change the condition pr)18(otected by the mutex.)]TJ T* (3. Unlock the mutex \()Tj /TT0 1 Tf (pthread_mutex_unlock)Tj /T1_0 1 Tf (\).)Tj T* [(4. Signal thr)18(eads waiting on the condition \()]TJ /TT0 1 Tf (pthread_cond_broadcast)Tj /T1_0 1 Tf (\).)Tj /T1_1 1 Tf -0.037 Tc -5.065 -1.911 Td (11)Tj 0 Tc 0.963 0 Td (.5)Tj /T1_0 1 Tf 2.102 0 Td [(What )-205(synchr)18(onization )-205(primitives )-205(would )-205(you )-205(need )-205(to )-205(implement )-205(a )-205(barrier?)-701(Pr)18(ovide )-205(an)]TJ -0 -1.222 Td (implementation of the)Tj /TT0 1 Tf 10.076 0 Td (pthread_barrier_wait)Tj /T1_0 1 Tf 12.25 0 Td (function.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47391 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.5)]TJ 38.822 0 Td (Reentrancy)Tj /T1_1 1 Tf 7.011 0 Td (445)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(We )-404(s)]TJ 0 Tc 2.281 0 Td [(how )-220(a )-220(r)18(eentrant )-220(version )-220(of)]TJ /TT0 1 Tf 13.02 0 Td (getenv)Tj /T1_0 1 Tf 4.07 0 Td [(in )-220(Figur)]TJ 0.4701 Tc 3.726 0 Td (e1)Tj 0 Tc 1.449 0 Td [(2.12. )-470(This)-470(version )-220(is )-220(called)]TJ /TT0 1 Tf -26.347 -1.2 Td (getenv_r)Tj /T1_0 1 Tf 0.7776 Tc (.I)Tj 0.5276 Tc 6.165 0 Td (tu)Tj 0 Tc 1.457 0 Td [(ses )-278(the)]TJ /TT0 1 Tf 3.769 0 Td (pthread_once)Tj /T1_0 1 Tf 7.728 0 Td [(function )-278(to )-278(ensur)]TJ 0.5276 Tc 8.099 0 Td (et)Tj 0 Tc 1.333 0 Td [(hat )-278(the)]TJ /TT0 1 Tf 3.85 0 Td (thread_init)Tj /T1_0 1 Tf -32.4 -1.2 Td [(function )-65(is )-65(called )-65(only )-65(once )-65(per )-65(pr)18(ocess, )-65(r)18(egar)18(dless )-65(of )-65(how )-65(many )-65(thr)18(eads )-65(might )-65(race )-65(to)]TJ 0 -1.2 TD (call)Tj /TT0 1 Tf 1.954 0 Td (getenv_r)Tj /T1_0 1 Tf 5.229 0 Td [(at )-178(the )-178(same )-178(time.)]TJ -0.092 Tc 8.692 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-178(have )-178(mor)17(e)-429(to)-429(s)1(ay )-179(about )-179(the)]TJ /TT0 1 Tf 14.538 0 Td (pthread_once)Tj /T1_0 1 Tf -31.8 -1.2 Td (function in Section 12.6.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6138.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 604.2265 Tm (#include )Tj 0 -1.189 TD (#include )Tj T* (#include )Tj T* (#include )Tj 0 -1.902 TD (extern char **environ;)Tj 0 -1.902 TD (pthread_mutex_t env_mutex;)Tj 0 -1.902 TD (static pthread_once_t init_done = PTHREAD_ONCE_INIT;)Tj 0 -1.902 TD (static void)Tj 0 -1.189 TD (thread_init\(void\))Tj T* ({)Tj 2.4 -1.189 Td (pthread_mutexattr_t attr;)Tj 0 -1.902 TD (pthread_mutexattr_init\(&attr\);)Tj 0 -1.189 TD (pthread_mutexattr_settype\(&attr, PTHREAD_MUTEX_RECURSIVE\);)Tj 0 -1.189 TD (pthread_mutex_init\(&env_mutex, &attr\);)Tj 0 -1.189 TD (pthread_mutexattr_destroy\(&attr\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (getenv_r\(const char *name, char *buf, int buflen\))Tj T* ({)Tj 2.4 -1.189 Td (int i, len, olen;)Tj 0 -1.902 TD (pthread_once\(&init_done, thread_init\);)Tj 0 -1.189 TD (len = strlen\(name\);)Tj T* (pthread_mutex_lock\(&env_mutex\);)Tj T* (for \(i = 0; environ[i] != NULL; i++\) {)Tj 2.4 -1.189 Td (if \(\(strncmp\(name, environ[i], len\) == 0\) &&)Tj 1.2 -1.189 Td (\(environ[i][len] == \325=\325\)\) {)Tj 1.2 -1.189 Td (olen = strlen\(&environ[i][len+1]\);)Tj T* (if \(olen >= buflen\) {)Tj 2.4 -1.189 Td (pthread_mutex_unlock\(&env_mutex\);)Tj T* (return\(ENOSPC\);)Tj -2.4 -1.189 Td (})Tj T* (strcpy\(buf, &environ[i][len+1]\);)Tj T* (pthread_mutex_unlock\(&env_mutex\);)Tj T* (return\(0\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj T* (pthread_mutex_unlock\(&env_mutex\);)Tj T* (return\(ENOENT\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1479.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 221.7801 135.5336 Tm (Figure 12.12)Tj /T1_0 1 Tf 0.25 Tc 6.25 0 Td (Ar)Tj 0 Tc 1.405 0 Td [(eentrant \(thr)18(ead-safe\) version of)]TJ /TT0 1 Tf 14.44 0 Td (getenv)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47392 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(3.10)]TJ 38.785 0 Td [(File )-250(Sharing)]TJ /T1_1 1 Tf 7.548 0 Td (75)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 145.9212 668.9599 Tm [(v-node )-12(also )-12(contains )-12(the )-12(i-node )-12(for )-12(the )-12(\336le.)-512(This )-12(information )-12(is )-12(r)18(ead )-12(fr)18(om )-12(disk )-12(when)]TJ 0 -1.2 TD [(the )-230(\336le )-230(is )-230(opened, )-230(so )-230(that )-230(all )-230(the )-230(pertinent )-230(information )-230(about )-230(the )-230(\336le )-230(is )-230(r)15(eadily)]TJ T* [(available. )-293(For)-292(example, )-43(the )-43(i-node )-43(contains )-43(the )-43(owner )-43(of )-43(the )-43(\336le, )-43(the )-43(size )-43(of )-43(the )-43(\336le,)]TJ T* [(pointers )-88(to )-88(wher)]TJ 0.338 Tc 7.464 0 Td (et)Tj 0 Tc 1.143 0 Td [(he )-88(actual )-88(data )-88(blocks )-88(for )-88(the )-88(\336le )-88(ar)]TJ 0.338 Tc 15.755 0 Td (el)Tj 0 Tc 1.108 0 Td [(ocated )-88(on )-88(disk, )-88(and )-88(so )-88(on.)]TJ -25.47 -1.2 Td (\(W)Tj 0.302 Tc 1.241 0 Td (et)Tj 0 Tc 1.107 0 Td [(alk )-52(mor)]TJ 0.302 Tc 3.455 0 Td (ea)Tj 0 Tc 1.281 0 Td [(bout )-52(i-nodes )-52(in )-52(Section )-52(4.14 )-52(when )-52(we )-52(describe )-52(the )-52(typical )-52(UNIX )-52(\336le)]TJ -7.084 -1.2 Td (system in mor)Tj 0.25 Tc 6.271 0 Td (ed)Tj 0 Tc 1.34 0 Td (etail.\))Tj 7.9995 0 0 7.9995 183.5891 588.9647 Tm [(Linux )-593(has )-593(no )-593(v-node.)-1094(Instead, )-593(a )-593(generic )-593(i-node )-593(str)8(uctur)18(e)-843(is)-843(used. )-843(Although)-843(the)]TJ -0 -1.25 Td [(implementations )-42(dif)18(fer)]TJ 0.2919 Tc 10.126 0 Td (,t)Tj 0 Tc 0.868 0 Td [(he )-42(v-node )-42(is )-42(conceptually )-42(the )-42(same )-42(as )-42(a )-42(generic )-42(i-node.)-541(Both )-42(point )-42(to)]TJ -10.994 -1.25 Td [(an i-node str)8(uctur)]TJ 0.25 Tc 7.914 0 Td (es)Tj 0 Tc 1.153 0 Td (peci\336c to the \336le system.)Tj -0.092 Tc 9.9994 0 0 9.9994 147.5905 545.9672 Tm (We)Tj 0 Tc 1.387 0 Td (\325r)Tj 0.3911 Tc 0.655 0 Td (ei)Tj 0 Tc 1.161 0 Td [(gnoring )-141(some )-141(implementation )-141(details )-141(that )-141(don\325t )-141(af)18(fect )-141(our )-141(discussion.)-642(For)]TJ -5.003 -1.2 Td [(example, )-25(the )-25(table )-25(of )-25(open )-25(\336le )-25(descriptors )-25(can )-25(be )-25(stor)18(ed )-25(in )-25(the )-25(user )-25(ar)17(ea )-25(\(a )-25(separate )-25(per)17(-)]TJ -0 -1.2 Td [(pr)18(ocess )-58(str)8(uctur)]TJ 0.3082 Tc 7.093 0 Td (et)Tj 0 Tc 1.113 0 Td [(hat )-58(can )-58(be )-58(paged )-58(out\) )-58(instead )-58(of )-58(the )-58(pr)16(ocess )-58(table.)-558(Also, )-58(these )-58(tables)]TJ -8.206 -1.2 Td [(can )-350(be )-350(implemented )-350(in )-350(numer)18(ous )-350(ways)]TJ 0.0833 Tc 19.231 0 Td (\321t)Tj 0 Tc 1.409 0 Td [(hey )-350(need )-350(not )-350(be )-350(arrays; )-350(one )-350(alternate)]TJ -20.64 -1.2 Td [(implementation )-30(is )-30(a )-30(linked )-30(lists )-30(of )-30(str)8(uctur)18(es. )-280(Regar)18(dless )-30(of )-30(the )-30(implementation )-30(details,)]TJ 0 -1.2 Td [(the general concepts r)18(emain the same.)]TJ 1.8 -1.2 Td (Figur)Tj 0.3645 Tc 2.383 0 Td (e3)Tj 0 Tc 1.344 0 Td [(.7 )-114(shows )-114(a )-114(pictorial )-114(arrangement )-114(of )-114(these )-114(thr)15(ee )-115(tables )-115(for )-115(a )-115(single )-115(pr)20(ocess)]TJ -5.527 -1.2 Td [(that )-106(has )-106(two )-106(dif)19(fer)18(ent )-106(\336les )-106(open: )-106(one )-106(\336le )-106(is )-106(open )-106(on )-106(standar)]TJ 0.3556 Tc 27.261 0 Td (di)Tj 0 Tc 1.258 0 Td [(nput )-106(\(\336le )-106(descriptor )-106(0\),)]TJ -28.518 -1.2 Td (and the other is open on standar)Tj 0.25 Tc 14.279 0 Td (do)Tj 0 Tc 1.407 0 Td (utput \(\336le descriptor 1\).)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1341.24 3176 1008 1008 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 151.3778 421.5894 Tm [(pr)18(ocess table entry)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 3752 576 72 re S Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 3680 576 72 re S Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 3608 576 72 re S Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 3320 576 288 re S Q BT /T1_0 1 Tf 0.25 Tc 13.9975 0 0 13.9975 182.9411 344.578 Tm (...)Tj 0 Tc 6.9987 0 0 6.9987 147.5396 376.9717 Tm (fd 0:)Tj 0 -1.029 TD (fd 1:)Tj T* (fd 2:)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1845.25 3824.25 cm 0 0 m 0 -216 l S Q Q BT /T1_0 1 Tf 6.9983 0 0 6.9983 170.3791 391.3061 Tm (fd)Tj -0.572 -0.714 Td (\337ags)Tj 4.471 0.714 Td (\336le)Tj -0.923 -0.714 Td (pointer)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2925.24 4040 720 144 re S Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 302.1693 409.3172 Tm (\336le status \337ags)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 2925.24 3896 720 144 re S Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 298.4006 394.8978 Tm [(curr)18(ent \336le of)18(fset)]TJ ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2925.24 3752 720 144 re S Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 302.0531 380.4802 Tm (v-node pointer)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 2925.24 3392 720 144 re S Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 302.1149 344.4746 Tm (\336le status \337ags)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 2925.24 3248 720 144 re S Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 298.3468 330.0617 Tm [(curr)18(ent \336le of)18(fset)]TJ ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 2925.24 3104 720 144 re S Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 301.9987 315.6505 Tm (v-node pointer)Tj 0.112 13.225 Td (\336le table entry)Tj 0 -8.1 TD (\336le table entry)Tj 6.9958 0 0 6.9958 427.6244 407.3951 Tm (v-node information)Tj /TT0 1 Tf 2.52 -2.057 Td (v_data)Tj /T1_0 1 Tf -2.383 -4.114 Td (i-node information)Tj 0.796 -2.057 Td [(curr)18(ent \336le size)]TJ /TT0 1 Tf 1.287 -1.543 Td (i_vnode)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 4184.25 cm 0 0 m 0 -288 l 720 -288 l 720 0 l 0 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 3752.25 cm 0 0 m 0 -396 l 720 -396 l 720 0 l 0 0 l 720 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 4004.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 4004.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 4004.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 4004.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 4004.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 4004.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 4004.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 4004.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 4004.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 4004.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 3572.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 3572.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 3572.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 3572.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 3572.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 3572.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 3572.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 3572.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 3572.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 3572.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 3464.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 3464.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 3464.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 3464.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 3464.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 3464.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 3464.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 3464.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 3464.25 cm 0 0 m 36 0 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 3464.25 cm 0 0 m 36 0 l S Q Q q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 422.124 377.36 cm 0 0 m -5.328 5.184 l -2.232 7.056 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 4221.2402 3773.6001 cm 0 0 m -53.28 51.84 l -22.32 70.56 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4293.2402 3950 cm 0 0 m -90 0 l -150 0 -162.6 -28.32 -127.8 -84.96 c -75.6 -169.92 l S Q Q q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 496.284 418.4 cm 0 0 m 4.032 -6.192 l 0.648 -7.344 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 4962.8398 4184 cm 0 0 m 40.32 -61.92 l 6.48 -73.44 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4869.2402 3410 cm 0 0 m 180 0 l 300 0 315.96 127.92 227.88 383.76 c 95.76 767.52 l S Q Q BT /T1_0 1 Tf 6.9945 0 0 6.9945 427.5474 303.0036 Tm (v-node information)Tj /TT0 1 Tf 2.52 -2.057 Td (v_data)Tj /T1_0 1 Tf -2.383 -4.114 Td (i-node information)Tj 0.796 -2.057 Td [(curr)18(ent \336le size)]TJ /TT0 1 Tf 1.287 -1.543 Td (i_vnode)Tj ET q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 3140.25 cm 0 0 m 0 -288 l 720 -288 l 720 0 l 0 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 2708.25 cm 0 0 m 0 -396 l 720 -396 l 720 0 l 0 0 l 720 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 2960.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 2960.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 2960.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 2960.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 2960.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 2960.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 2960.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 2960.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 2960.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 2960.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 2528.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 2528.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 2528.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 2528.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 2528.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 2528.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 2528.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 2528.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 2528.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 2528.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 2420.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 2420.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 2420.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 2420.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 2420.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 2420.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 2420.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 2420.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 2420.25 cm 0 0 m 36 0 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 2420.25 cm 0 0 m 36 0 l S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 422.124 272.96 cm 0 0 m -5.328 5.184 l -2.232 7.056 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 4221.2402 2729.6001 cm 0 0 m -53.28 51.84 l -22.32 70.56 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4293.2402 2906 cm 0 0 m -90 0 l -150 0 -162.6 -28.32 -127.8 -84.96 c -75.6 -169.92 l S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 496.284 314 cm 0 0 m 4.032 -6.192 l 0.648 -7.344 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 4962.8398 3140 cm 0 0 m 40.32 -61.92 l 6.48 -73.44 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4869.2402 2366 cm 0 0 m 180 0 l 300 0 315.96 127.92 227.88 383.76 c 95.76 767.52 l S Q Q BT /T1_0 1 Tf 7.9923 0 0 7.9923 425.3035 421.2354 Tm (v-node table entry)Tj 0 -13.05 TD (v-node table entry)Tj 2.63 7.65 Td (i-node)Tj T* (i-node)Tj ET q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 288.924 418.4 cm 0 0 m -3.816 -6.336 l -6.336 -3.816 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 4184 cm 0 0 m -38.16 -63.36 l -63.36 -38.16 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 3788 cm 0 0 m 180 0 l 300 0 425.16 65.16 555.48 195.48 c 750.96 390.96 l S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 288.924 353.6 cm 0 0 m -7.272 1.368 l -5.76 4.68 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 3536 cm 0 0 m -72.72 13.68 l -57.6 46.8 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 3716 cm 0 0 m 180 0 l 300 0 424.92 -29.52 554.76 -88.56 c 749.52 -177.12 l S Q Q q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 418.524 418.4 cm 0 0 m -2.664 -6.912 l -5.616 -4.824 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 4185.2402 4184 cm 0 0 m -26.64 -69.12 l -56.16 -48.24 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3573.24 3824 cm 0 0 m 180 0 l 300 0 401.28 59.04 483.84 177.12 c 607.68 354.24 l S Q Q q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 418.524 314 cm 0 0 m -7.416 -0.792 l -6.912 2.736 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 4185.2402 3140 cm 0 0 m -74.16 -7.92 l -69.12 27.36 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3573.24 3176 cm 0 0 m 180 0 l 300 0 400.8 -5.88 482.4 -17.64 c 604.8 -35.28 l S Q Q BT /T1_1 1 Tf 7.9904 0 0 7.9904 240.2795 205.7529 Tm (Figure 3.7)Tj /T1_0 1 Tf 5.195 0 Td [(Kernel data str)8(uctur)18(es for open \336les)]TJ 9.988 0 0 9.988 129.4448 176.9875 Tm [(The )-80(arrangement )-80(of )-80(these )-80(thr)18(ee )-80(tables )-80(has )-80(existed )-80(since )-80(the )-80(early )-80(versions )-80(of )-80(the )-80(UNIX)]TJ 0 -1.2 TD (System)Tj 3.718 0.04 Td ([)Tj 0.333 -0.04 Td [(Thompson )-275(1978)]TJ 7.302 0.04 Td (])Tj 0.7753 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.638 0 Td [(his )-275(arrangement )-275(is )-275(critical )-275(to )-275(the )-275(way )-275(\336les )-275(ar)]TJ 0.5252 Tc 21.698 0 Td (es)Tj 0 Tc 1.428 0 Td [(har)18(ed)]TJ -36.451 -1.2 Td [(among )-315(pr)18(ocesses. )-565(W)92(e\325ll )-315(r)18(eturn )-315(to )-315(this )-315(\336gur)18(e)-565(in)-565(later )-315(chapters, )-315(when )-315(we )-315(describe)]TJ 0 -1.2 Td (additional ways that \336les ar)Tj 0.25 Tc 12.273 0 Td (es)Tj 0 Tc 1.153 0 Td [(har)18(ed.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47393 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (674)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(All )-393(the )-393(terminal )-393(device )-393(characteristics )-393(that )-393(we )-393(can )-393(examine )-393(and )-393(change )-393(ar)14(e)]TJ -1.8 -1.2 Td [(contained )-598(in )-598(a)]TJ /TT0 1 Tf 8.279 0 Td (termios)Tj /T1_1 1 Tf 5.048 0 Td [(str)8(uctur)18(e. )-848(This)-848(str)8(uctur)18(e)-848(is)-848(de\336ned )-598(in )-598(the )-598(header)]TJ /TT0 1 Tf -13.327 -1.2 Td ()Tj /T1_1 1 Tf 0.25 Tc (,w)Tj 0 Tc 7.934 0 Td [(hich we use thr)18(oughout this chapter:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.591 627.1925 Tm (struct termios {)Tj 1.2 -1.189 Td [(tcflag_t )-600(c_iflag;)-2400(/* input flags */)]TJ 0 -1.189 TD [(tcflag_t )-600(c_oflag;)-2400(/* output flags */)]TJ T* [(tcflag_t )-600(c_cflag;)-2400(/* control flags */)]TJ T* [(tcflag_t )-600(c_lflag;)-2400(/* local flags */)]TJ 0 -1.189 TD [(cc_t )-3000(c_cc[NCCS];)-600(/* control characters */)]TJ -1.2 -1.189 Td (};)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5921 543.9276 Tm [(Roughly )-34(speaking, )-34(the )-34(input )-34(\337ags )-34(contr)16(ol )-35(the )-35(input )-35(of )-35(characters )-35(by )-35(the )-35(terminal )-35(device)]TJ 0 -1.2 TD [(driver )-164(\(e.g., )-164(strip )-164(eighth )-164(bit )-164(on )-164(input, )-164(enable )-164(input )-164(parity )-164(checking\), )-164(the )-164(output )-164(\337ags)]TJ T* [(contr)18(ol )-43(the )-43(driver )-43(output )-43(\(e.g., )-43(perform )-43(output )-43(pr)18(ocessing, )-43(map )-43(newline )-43(to )-43(CR/LF\), )-43(the)]TJ T* [(contr)18(ol )-108(\337ags )-108(af)18(fect )-108(the )-108(RS)]TJ 11.611 0.09 Td (-)Tj 0.333 -0.09 Td [(232 )-108(serial )-108(lines )-108(\(e.g., )-108(ignor)]TJ 0.3584 Tc 11.851 0 Td (em)Tj 0 Tc 1.72 0 Td [(odem )-108(status )-108(lines, )-108(one )-108(or )-108(two)]TJ -25.515 -1.2 Td [(stop )-106(bits )-106(per )-106(character\), )-106(and )-106(the )-106(local )-106(\337ags )-106(af)18(fect )-106(the )-106(interface )-106(between )-106(the )-106(driver )-106(and)]TJ T* [(the )-307(user )-307(\(e.g., )-307(echo )-307(on )-307(or )-307(of)20(f, )-306(visually )-306(erase )-306(characters, )-306(enable )-306(terminal-generated)]TJ T* [(signals, job contr)18(ol stop signal for backgr)18(ound output\).)]TJ 1.8 -1.2 Td [(The )-212(type)]TJ /TT0 1 Tf 4.56 0 Td (tcflag_t)Tj /T1_1 1 Tf 5.262 0 Td [(is )-212(big )-212(enough )-212(to )-212(hold )-212(each )-212(of )-212(the )-212(\337ag )-212(values )-212(and )-212(is )-212(often)]TJ -11.621 -1.2 Td [(de\336ned )-87(as )-87(an)]TJ /TT0 1 Tf 6.385 0 Td [(unsigned )263(int)]TJ /T1_1 1 Tf 7.274 0 Td [(or )-87(an)]TJ /TT0 1 Tf 2.697 0 Td [(unsigned )263(long)]TJ /T1_1 1 Tf 0.5871 Tc (.T)Tj 0 Tc 8.987 0 Td (he)Tj /TT0 1 Tf 1.398 0 Td (c_cc)Tj /T1_1 1 Tf 2.737 0 Td [(array )-87(contains )-87(all )-87(the)]TJ -29.479 -1.2 Td [(special )-11(characters )-11(that )-11(we )-11(can )-11(change.)]TJ /TT0 1 Tf 17.299 0 Td (NCCS)Tj /T1_1 1 Tf 2.661 0 Td [(is )-11(the )-11(number )-11(of )-11(elements )-11(in )-11(this )-11(array )-11(and)]TJ -19.96 -1.2 Td [(is )-310(typically )-310(between )-310(15 )-310(and )-310(20 )-310(\(since )-310(most )-310(implementations )-310(of )-310(the )-310(UNIX )-310(System)]TJ T* [(support )-164(mor)]TJ 0.4143 Tc 5.716 0 Td (et)Tj 0 Tc 1.219 0 Td [(han )-164(the )-164(1)]TJ 0.4143 Tc 4.325 0 Td (1P)Tj 0 Tc 1.518 0 Td [(OSIX-de\336ned )-164(special )-164(characters\).)-665(The)]TJ /TT0 1 Tf 17.698 0 Td (cc_t)Tj /T1_1 1 Tf 2.814 0 Td [(type )-164(is )-164(lar)17(ge)]TJ -33.291 -1.2 Td (enough to hold each special character and is typically an)Tj /TT0 1 Tf 25.196 0 Td [(unsigned )350(char)]TJ /T1_1 1 Tf (.)Tj -0.111 Tc 7.9995 0 0 7.9995 183.5881 379.9374 Tm (Ve)Tj 0 Tc 1.09 0 Td [(rsions )-1(of )-1(System )-1(V )-1(that )-1(pr)18(edated )-1(the )-1(POSIX )-1(standar)]TJ 0.2509 Tc 22.807 0 Td (dh)Tj 0 Tc 1.444 0 Td [(ad )-1(a )-1(header )-1(named)]TJ /TT0 1 Tf 8.715 0 Td ()Tj /T1_1 1 Tf 6.251 0 Td (and)Tj 0.2728 Tc -40.307 -1.25 Td (as)Tj 0 Tc 1.197 0 Td [(tr)8(uctur)]TJ 0.2729 Tc 3.066 0 Td (en)Tj 0 Tc 1.334 0 Td (amed)Tj /TT0 1 Tf 2.746 0 Td (termio)Tj /T1_1 1 Tf 0.5229 Tc (.P)Tj 0 Tc 4.977 0 Td [(OSIX.1 )-23(added )-23(an)]TJ /TT0 1 Tf 7.778 0 Td (s)Tj /T1_1 1 Tf 0.873 0 Td [(to )-23(the )-23(names, )-23(to )-23(dif)19(fer)18(entiate )-23(them )-23(fr)18(om )-23(their)]TJ -21.97 -1.25 Td [(pr)18(edecessors.)]TJ 9.9994 0 0 9.9994 147.5901 336.94 Tm [(Figur)18(es )-72(18.3 )-72(thr)18(ough )-72(18.6 )-72(list )-72(all )-72(the )-72(terminal )-72(\337ags )-72(that )-72(we )-72(can )-72(change )-72(to )-72(af)14(fect )-72(the)]TJ -1.8 -1.2 Td [(characteristics )-504(of )-504(a )-504(terminal )-504(device.)-1006(Note )-505(that )-505(even )-505(though )-505(the )-505(Single )-505(UNIX)]TJ T* [(Speci\336cation )-573(de\336nes )-573(a )-573(common )-573(subset )-573(that )-573(all )-573(platforms )-573(start )-573(fr)18(om, )-573(all )-573(the)]TJ T* [(implementations )-223(have )-223(their )-223(own )-223(additions.)-723(Most )-223(of )-223(these )-223(additions )-223(come )-223(fr)19(om )-223(the)]TJ T* [(historical )-160(dif)18(fer)18(ences )-160(between )-160(the )-160(systems.)]TJ -0.092 Tc 20.089 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-160(discuss )-160(each )-160(of )-160(these )-160(\337ag )-160(values )-160(in)]TJ -21.476 -1.2 Td (detail in Section 18.5.)Tj 1.8 -1.2 Td [(Given )-589(all )-589(the )-589(options )-589(available, )-589(how )-589(do )-589(we )-589(examine )-589(and )-589(change )-589(these)]TJ -1.8 -1.2 Td [(characteristics )-271(of )-271(a )-271(terminal )-271(device?)-771(Figur)]TJ 0.521 Tc 19.942 0 Td (e1)Tj 0 Tc 1.5 0 Td [(8.7 )-271(summarizes )-271(the )-271(various )-271(functions)]TJ -21.442 -1.2 Td [(de\336ned )-196(by )-196(the )-196(Single )-196(UNIX )-196(Speci\336cation )-196(that )-196(operate )-196(on )-196(terminal )-196(devices.)-696(\(All )-196(the)]TJ T* [(functions )-184(listed )-184(ar)]TJ 0.4338 Tc 8.298 0 Td (ep)Tj 0 Tc 1.514 0 Td [(art )-184(of )-184(the )-184(base )-184(POSIX )-184(speci\336cation.)]TJ -0.092 Tc 16.997 0 Td [(We )-368(d)]TJ 0 Tc 2.432 0 Td (escribed)Tj /TT0 1 Tf 4.11 0 Td (tcgetpgrp)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -33.35 -1.2 Td (tcgetsid)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 5.8 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (tcsetpgrp)Tj /T1_1 1 Tf 5.65 0 Td (in Section 9.7.\))Tj -11.093 -1.2 Td [(Note )-91(that )-91(the )-91(Single )-91(UNIX )-91(Speci\336cation )-91(doesn\325t )-91(use )-91(the )-91(classic)]TJ /TT0 1 Tf 28.643 0 Td (ioctl)Tj /T1_1 1 Tf 3.341 0 Td [(on )-91(terminal)]TJ -33.784 -1.2 Td [(devices. )-351(Instead,)-351(it )-101(uses )-101(the )-101(13 )-101(functions )-101(shown )-101(in )-101(Figur)]TJ 0.3508 Tc 25.748 0 Td (e1)Tj 0 Tc 1.33 0 Td [(8.7. )-351(The)]TJ -0.018 Tc 4.126 0 Td (re)Tj 0 Tc 0.856 0 Td [(ason )-101(is )-101(that )-101(the)]TJ /TT0 1 Tf -32.06 -1.2 Td (ioctl)Tj /T1_1 1 Tf 3.385 0 Td [(function )-135(for )-135(terminal )-135(devices )-135(uses )-135(a )-135(dif)17(fer)18(ent )-135(data )-135(type )-135(for )-135(its )-135(\336nal )-135(ar)16(gument,)]TJ -3.385 -1.2 Td [(which )-307(depends )-307(on )-307(the )-307(action )-307(being )-307(performed.)-807(This )-307(makes )-307(type )-307(checking )-307(of )-307(the)]TJ T* [(ar)18(guments impossible.)]TJ 1.8 -1.2 Td [(Although )-103(only )-103(13 )-103(functions )-103(operate )-103(on )-103(terminal )-103(devices, )-103(the )-103(\336rst )-103(two )-103(functions )-103(in)]TJ -1.8 -1.2 Td (Figur)Tj 0.4607 Tc 2.383 0 Td (e1)Tj 0 Tc 1.44 0 Td [(8.7 )-211(\()]TJ /TT0 1 Tf (tcgetattr)Tj /T1_1 1 Tf 7.904 0 Td (and)Tj /TT0 1 Tf 2.154 0 Td (tcsetattr)Tj /T1_1 1 Tf 0.4607 Tc (\)m)Tj 0 Tc 7.077 0 Td [(anipulate )-211(almost )-211(70 )-211(dif)19(fer)18(ent )-211(\337ags )-211(\(see)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47394 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.10)]TJ 36.306 0 Td [(Canonical )-250(Mode)]TJ /T1_1 1 Tf 9.527 0 Td (701)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1476.25 6690.25 cm 0 0 m 50 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1496.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 659.4594 Tm [(#include )-1800()]TJ 0 -1.189 TD [(#include )-1800()]TJ T* [(#include )-1800()]TJ 0 -1.902 TD (#define MAX_PASS_LEN)Tj 4.2 Tc 14.4 0 Td (8/)Tj 0.6 Tc 5.4 0 Td (*m)Tj 0 Tc 1.8 0 Td (ax #chars for user to enter */)Tj -21.6 -1.902 Td (char *)Tj 0 -1.189 TD (getpass\(const char *prompt\))Tj T* ({)Tj 2.4 -1.189 Td [(static char)-3000(buf[MAX_PASS_LEN + 1];)-1200(/* null byte at end */)]TJ T* (char )Tj 9.6 0 Td (*ptr;)Tj -9.6 -1.189 Td [(sigset_t )-4200(sig,)-600(osig;)]TJ T* [(struct termios)-1200(ts, ots;)]TJ T* (FILE )Tj 9.6 0 Td (*fp;)Tj -9.6 -1.189 Td (int )Tj 9.6 0 Td (c;)Tj -9.6 -1.902 Td (if \(\(fp = fopen\(ctermid\(NULL\), "r+"\)\) == NULL\))Tj 2.4 -1.189 Td (return\(NULL\);)Tj -2.4 -1.189 Td (setbuf\(fp, NULL\);)Tj 0 -1.902 TD (sigemptyset\(&sig\);)Tj 0 -1.189 TD [(sigaddset\(&sig, SIGINT\);)-4800(/* block SIGINT */)]TJ 0 -1.189 TD [(sigaddset\(&sig, SIGTSTP\);)-4200(/* block SIGTSTP */)]TJ T* [(sigprocmask\(SIG_BLOCK, &sig, &osig\);)-2400(/* and save mask */)]TJ 0 -1.902 TD [(tcgetattr\(fileno\(fp\), &ts\);)-3000(/* save tty state */)]TJ 0 -1.189 TD (ots = ts;)Tj 19.2 0 Td (/* structure copy */)Tj -19.2 -1.189 Td (ts.c_lflag &= \367\(ECHO | ECHOE | ECHOK | ECHONL\);)Tj 0 -1.189 TD (tcsetattr\(fileno\(fp\), TCSAFLUSH, &ts\);)Tj 0 -1.189 TD (fputs\(prompt, fp\);)Tj 0 -1.902 TD (ptr = buf;)Tj 0 -1.189 TD (while \(\(c = getc\(fp\)\) != EOF && c != \325\\n\325\))Tj 2.4 -1.189 Td (if \(ptr < &buf[MAX_PASS_LEN]\))Tj 2.4 -1.189 Td (*ptr++ = c;)Tj -4.8 -1.189 Td (*ptr = 0;)Tj 12 0 Td (/* null terminate */)Tj -12 -1.189 Td [(putc\(\325\\n\325, fp\);)-3000(/* we echo a newline */)]TJ 0 -1.902 TD (tcsetattr\(fileno\(fp\), TCSAFLUSH, &ots\); /* restore TTY state */)Tj 0 -1.189 TD [(sigprocmask\(SIG_SETMASK, &osig, NULL\);)-1200(/* restore mask */)]TJ T* [(fclose\(fp\); )-4800(/*)-600(done with /dev/tty */)]TJ T* (return\(buf\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1476.25 2352.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1496.25 2352.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 242.2229 219.2317 Tm (Figure 18.17)Tj /T1_0 1 Tf 6.195 0 Td (Implementation of)Tj /TT0 1 Tf 8.485 0 Td (getpass)Tj /T1_0 1 Tf 4.45 0 Td (function)Tj 1.194 Tc 9.9988 0 0 9.9988 147.5826 194.8342 Tm (\245W)Tj 0.3129 Tc 2.708 0 Td (eb)Tj 0 Tc 1.345 0 Td [(lock )-63(the )-63(two )-63(signals)]TJ /TT0 1 Tf 9.25 0 Td (SIGINT)Tj /T1_0 1 Tf 3.913 0 Td (and)Tj /TT0 1 Tf 2.006 0 Td (SIGTSTP)Tj /T1_0 1 Tf 0.5628 Tc (.I)Tj 0 Tc 5.35 0 Td [(f)-313(we)-313(didn\325t )-63(do )-63(this, )-63(entering)]TJ -22.771 -1.2 Td [(the )-284(INTR )-284(character )-284(would )-284(abort )-284(the )-284(pr)18(ogram )-284(and )-284(leave )-284(the )-284(terminal )-284(with)]TJ 0 -1.2 TD [(echoing )-389(disabled.)-890(Similarly)]TJ 0.6395 Tc 12.931 0 Td (,e)Tj 0 Tc 1.369 0 Td [(ntering )-389(the )-389(SUSP )-389(character )-389(would )-389(stop )-389(the)]TJ -14.3 -1.2 Td [(pr)18(ogram )-52(and )-52(r)17(eturn )-52(to )-52(the )-52(shell )-52(with )-52(echoing )-52(disabled.)]TJ -0.092 Tc 25.133 0 Td [(We )-236(c)]TJ 0 Tc 2.133 0 Td [(hoose )-52(to )-52(block )-52(the)]TJ -27.267 -1.2 Td [(signals )-239(while )-239(we )-239(have )-239(echoing )-239(disabled.)-738(If )-239(they )-239(ar)]TJ 0.4887 Tc 24.124 0 Td (eg)Tj 0 Tc 1.524 0 Td [(enerated )-239(while )-239(we\325r)19(e)]TJ -0.018 Tc -25.648 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ading )-113(the )-113(passwor)18(d, )-113(they )-113(ar)]TJ 0.3631 Tc 12.766 0 Td (eh)Tj 0 Tc 1.424 0 Td [(eld )-113(until )-113(we )-113(r)18(eturn. )-363(Ther)]TJ 0.3631 Tc 11.552 0 Td (ea)Tj -0.018 Tc 1.342 0 Td [(re )-149(o)]TJ 0 Tc 1.765 0 Td [(ther )-113(ways )-113(to)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47395 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.2)]TJ 39.439 0 Td (Overview)Tj /T1_1 1 Tf 6.394 0 Td (677)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1862.25 6670.25 cm 0 0 m 2768 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 200.8559 658.9605 Tm (Function )Tj 16.94 0 Td (Description)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1862.25 6550.25 cm 0 0 m 2768 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1862.25 6530.25 cm 0 0 m 2768 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 190.1652 644.9226 Tm (tcgetattr)Tj /T1_0 1 Tf 8.1 0 Td (fetch attributes \()Tj /TT0 1 Tf (termios)Tj /T1_0 1 Tf 11.67 0 Td [(str)8(uctur)18(e\))]TJ /TT0 1 Tf -19.77 -1.25 Td (tcsetattr)Tj /T1_0 1 Tf 8.1 0 Td (set attributes \()Tj /TT0 1 Tf (termios)Tj /T1_0 1 Tf 10.735 0 Td [(str)8(uctur)18(e\))]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1862.25 6310.25 cm 0 0 m 2768 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 190.1538 622.8879 Tm (cfgetispeed)Tj /T1_0 1 Tf 8.1 0 Td (get input speed)Tj /TT0 1 Tf -8.1 -1.25 Td (cfgetospeed)Tj /T1_0 1 Tf 8.1 0 Td (get output speed)Tj /TT0 1 Tf -8.1 -1.25 Td (cfsetispeed)Tj /T1_0 1 Tf 8.1 0 Td (set input speed)Tj /TT0 1 Tf -8.1 -1.25 Td (cfsetospeed)Tj /T1_0 1 Tf 8.1 0 Td (set output speed)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1862.25 5890.25 cm 0 0 m 2768 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 190.1424 580.8606 Tm (tcdrain)Tj /T1_0 1 Tf 8.1 0 Td (wait for all output to be transmitted)Tj /TT0 1 Tf -8.1 -1.25 Td (tcflow)Tj /T1_0 1 Tf 8.1 0 Td [(suspend transmit or r)18(eceive)]TJ /TT0 1 Tf -8.1 -1.25 Td (tcflush)Tj /T1_0 1 Tf 8.1 0 Td (\337ush pending input and/or output)Tj /TT0 1 Tf -8.1 -1.25 Td (tcsendbreak)Tj /T1_0 1 Tf 8.1 0 Td (send BREAK character)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1862.25 5470.25 cm 0 0 m 2768 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 190.131 538.8383 Tm (tcgetpgrp)Tj /T1_0 1 Tf 8.1 0 Td [(get for)18(egr)18(ound pr)18(ocess gr)18(oup ID)]TJ /TT0 1 Tf -8.1 -1.25 Td (tcsetpgrp)Tj /T1_0 1 Tf 8.1 0 Td [(set for)18(egr)18(ound pr)18(ocess gr)18(oup ID)]TJ /TT0 1 Tf -8.1 -1.25 Td (tcgetsid)Tj /T1_0 1 Tf 8.1 0 Td [(get pr)18(ocess gr)18(oup ID of session leader for contr)18(olling TTY)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1862.25 5150.25 cm 0 0 m 2768 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2490.25 5150.25 cm 0 0 m 0 1520 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4630.25 5150.25 cm 0 0 m 0 1520 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1862.25 5150.25 cm 0 0 m 0 1520 l S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 238.4102 496.8211 Tm (Figure 18.7)Tj /T1_0 1 Tf 5.695 0 Td (Summary of terminal I/O functions)Tj 9.9964 0 0 9.9964 147.5471 463.2332 Tm [(The )-167(r)18(elationships )-167(among )-167(the )-167(13 )-167(functions )-167(shown )-167(in )-167(Figur)]TJ 0.4174 Tc 26.535 0 Td (e1)Tj 0 Tc 1.396 0 Td [(8.7 )-167(ar)]TJ 0.4174 Tc 2.544 0 Td (ei)Tj 0 Tc 1.187 0 Td [(llustrated )-167(in)]TJ -33.464 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (8.8.)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2002.2 3238 1152 360 re S Q BT /T1_0 1 Tf 6.9971 0 0 6.9971 204.8889 350.6927 Tm [(input baud rate)-1058(output baud rate)]TJ ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2002.25 3454.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2072.25 3454.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2142.25 3454.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2211.25 3454.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2281.25 3454.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2350.25 3454.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2420.25 3454.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2490.25 3454.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2560.25 3454.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2630.25 3454.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2700.25 3454.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2769.25 3454.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2839.25 3454.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2908.25 3454.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2978.25 3454.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3048.25 3454.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3118.25 3454.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2578.25 3598.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2578.25 3544.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2578.25 3490.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1944.6 3590.8 cm 0 0 m -19.88 0 -36 -16.12 -36 -36 c S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1908.25 3555.25 cm 0 0 m 0 -108 l -28 -137 l 0 -166 l 0 -274 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1908.6 3281.2 cm 0 0 m 0 -19.88 16.12 -36 36 -36 c S Q Q BT /TT0 1 Tf 9.9952 0 0 9.9952 145.9099 344.8744 Tm (struct)Tj -0.6 -1 Td (termios)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 2002.2 2230 2880 288 re S Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 259.4678 235.5128 Tm (terminal line discipline / terminal device driver)Tj ET q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 219.444 359.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 2194.4399 3598 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2194.25 3670.25 cm 0 0 m 0 648 l S Q Q BT /TT0 1 Tf 0 7.9952 -7.9952 0 216.0743 369.1784 Tm (cfsetispeed)Tj ET q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 238.596 431.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 2385.96 4318 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2386.25 3598.25 cm 0 0 m 0 648 l S Q Q BT /TT0 1 Tf 0 7.9947 -7.9947 0 235.2007 369.1563 Tm (cfgetispeed)Tj ET q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 277.044 359.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 2770.4399 3598 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2770.25 3670.25 cm 0 0 m 0 648 l S Q Q BT /TT0 1 Tf 0 7.9942 -7.9942 0 283.5997 369.1341 Tm (cfsetospeed)Tj ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 296.196 431.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 2961.96 4318 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2962.25 3598.25 cm 0 0 m 0 648 l S Q Q BT /TT0 1 Tf 0 7.9938 -7.9938 0 302.7198 369.112 Tm (cfgetospeed)Tj ET q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 229.02 251.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 2290.2 2518 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2290.25 2590.25 cm 0 0 m 0 648 l S Q Q BT /TT0 1 Tf 0 7.9933 -7.9933 0 225.5904 265.9765 Tm (tcsetattr)Tj ET q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 286.62 323.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 2866.2 3238 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2866.25 2518.25 cm 0 0 m 0 648 l S Q Q BT /TT0 1 Tf 0 7.9928 -7.9928 0 283.1251 265.9605 Tm (tcgetattr)Tj ET q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 337.02 251.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 3370.2 2518 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3370.25 2590.25 cm 0 0 m 0 648 l S Q Q BT /TT0 1 Tf 0 7.9923 -7.9923 0 333.4597 261.1492 Tm (tcsendbreak)Tj ET q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 358.62 251.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 3586.2 2518 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3586.25 2590.25 cm 0 0 m 0 648 l S Q Q BT /TT0 1 Tf 0 7.9918 -7.9918 0 355.0177 270.7237 Tm (tcdrain)Tj ET q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 380.22 251.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 3802.2 2518 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3802.25 2590.25 cm 0 0 m 0 648 l S Q Q BT /TT0 1 Tf 0 7.9914 -7.9914 0 376.5731 270.7075 Tm (tcflush)Tj ET q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 401.82 251.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 4018.2 2518 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4018.25 2590.25 cm 0 0 m 0 648 l S Q Q BT /TT0 1 Tf 0 7.9909 -7.9909 0 398.1259 273.0885 Tm (tcflow)Tj /T1_0 1 Tf 7.9909 0 0 7.9909 331.4979 328.8649 Tm [(line contr)18(ol functions)]TJ ET q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 437.82 323.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 4378.2002 3238 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4378.25 2518.25 cm 0 0 m 0 648 l S Q Q BT /TT0 1 Tf 0 7.9904 -7.9904 0 444.0468 268.2779 Tm (tcgetsid)Tj ET q 0.9988007 0 0 0.9988007 0 0 cm q 1 0 0 1 459.42 323.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998801 0 0 0.0998801 0 0 cm 1 j 1 J q 1 0 0 1 4594.2002 3238 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4594.25 2518.25 cm 0 0 m 0 648 l S Q Q BT /TT0 1 Tf 0 7.9899 -7.9899 0 465.593 265.8648 Tm (tcgetpgrp)Tj ET q 0.9987408 0 0 0.9987408 0 0 cm q 1 0 0 1 481.02 251.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998741 0 0 0.0998741 0 0 cm 1 j 1 J q 1 0 0 1 4810.2002 2518 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4810.25 2590.25 cm 0 0 m 0 648 l S Q Q BT /TT0 1 Tf 0 7.9894 -7.9894 0 487.1365 265.8488 Tm (tcsetpgrp)Tj /T1_0 1 Tf 7.9894 0 0 7.9894 438.8004 340.9896 Tm [(for)18(egr)18(ound)]TJ -1.29 -1.25 Td [(pr)18(ocess gr)18(oup ID)]TJ /T1_1 1 Tf -27.272 -16.705 Td (Figure 18.8)Tj /T1_0 1 Tf 5.695 0 Td [(Relationships among the terminal-r)18(elated functions)]TJ -9.106 -4 Td [(POSIX.1 )-90(doesn\325t )-90(specify )-90(wher)18(e)-340(in)-340(the)]TJ /TT0 1 Tf 17.094 0 Td (termios)Tj /T1_0 1 Tf 4.54 0 Td [(str)8(uctur)]TJ 0.34 Tc 3.49 0 Td (et)Tj 0 Tc 1.145 0 Td [(he )-90(baud )-90(rate )-90(information )-90(is )-90(stor)18(ed;)]TJ -26.269 -1.25 Td [(that )-86(is )-86(an )-86(implementation )-86(detail.)-586(Some )-86(systems, )-86(such )-86(as )-86(Solaris, )-86(stor)]TJ 0.336 Tc 31.019 0 Td (et)Tj 0 Tc 1.141 0 Td [(his )-86(information )-86(in )-86(the)]TJ /TT0 1 Tf -32.16 -1.25 Td (c_cflag)Tj /T1_0 1 Tf 4.568 0 Td [(\336eld. )-368(Linux)-369(and )-118(BSD-derived )-118(systems, )-118(such )-118(as )-118(Fr)18(eeBSD )-118(and )-118(Mac )-118(OS )-118(X, )-118(have )-118(two)]TJ -4.568 -1.25 Td [(separate \336elds in the str)8(uctur)18(e: one for the input speed and one for the output speed.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47396 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (202)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Envir)18(onment )]TJ 39.241 0 Td [(Chapter)-500(7)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(The pr)18(ogram in Figur)]TJ 0.25 Tc 9.538 0 Td (e7)Tj 0 Tc 1.229 0 Td (.3 demonstrates the use of the)Tj /TT1 1 Tf 13.384 0 Td (atexit)Tj /T1_1 1 Tf 3.85 0 Td (function.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6330.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 623.4242 Tm (#include "apue.h")Tj 0 -2.378 TD (static void my_exit1\(void\);)Tj 0 -1.189 TD (static void my_exit2\(void\);)Tj 0 -2.378 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (if \(atexit\(my_exit2\) != 0\))Tj 2.4 -1.189 Td (err_sys\("can\325t register my_exit2"\);)Tj -2.4 -2.378 Td (if \(atexit\(my_exit1\) != 0\))Tj 2.4 -1.189 Td (err_sys\("can\325t register my_exit1"\);)Tj -2.4 -1.189 Td (if \(atexit\(my_exit1\) != 0\))Tj 2.4 -1.189 Td (err_sys\("can\325t register my_exit1"\);)Tj -2.4 -2.378 Td (printf\("main is done\\n"\);)Tj T* (return\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -2.378 TD (static void)Tj 0 -1.189 TD (my_exit1\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (printf\("first exit handler\\n"\);)Tj -2.4 -1.189 Td (})Tj 0 -2.378 TD (static void)Tj 0 -1.189 TD (my_exit2\(void\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("second exit handler\\n"\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2977.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 259.8292 281.6473 Tm (Figure 7.3)Tj /T1_1 1 Tf 5.195 0 Td (Example of exit handlers)Tj 9.9982 0 0 9.9982 129.5769 250.4529 Tm [(Executing the pr)18(ogram in Figur)]TJ 0.25 Tc 13.909 0 Td (e7)Tj 0 Tc 1.229 0 Td (.3 yields)Tj /TT1 1 Tf 8.9984 0 0 8.9984 147.5734 233.7559 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (./a.out)Tj /TT1 1 Tf -1.2 -1.189 Td (main is done)Tj T* (first exit handler)Tj T* (first exit handler)Tj T* (second exit handler)Tj /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 172.9669 Tm [(An )-84(exit )-84(handler )-84(is )-84(called )-84(once )-84(for )-84(each )-84(time )-84(it )-84(is )-84(r)13(egister)18(ed. )-334(In)-335(Figur)]TJ 0.3346 Tc 30.934 0 Td (e7)Tj 0 Tc 1.314 0 Td [(.3, )-85(the )-85(\336rst )-85(exit)]TJ -32.247 -1.2 Td [(handler )-186(is )-186(r)17(egister)18(ed )-186(twice, )-186(so )-186(it )-186(is )-186(called )-186(two )-186(times.)-690(Note )-186(that )-186(we )-186(don\325t )-186(call)]TJ /TT1 1 Tf 36.35 0 Td (exit)Tj /T1_1 1 Tf (;)Tj -36.35 -1.2 Td [(instead, we r)18(eturn fr)18(om)]TJ /TT1 1 Tf 10.677 0 Td (main)Tj /T1_1 1 Tf (.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1490.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47397 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (688)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (ICRNL)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_iflag)Tj /T1_1 1 Tf 0.4202 Tc (,P)Tj 0 Tc 5.807 0 Td [(OSIX.1, )-170(Fr)18(eeBSD, )-170(Linux, )-170(Mac )-170(OS )-170(X, )-170(Solaris\))-671(If )-170(set )-170(and )-170(if)]TJ /TT0 1 Tf -5.807 -1.2 Td (IGNCR)Tj /T1_1 1 Tf 3.581 0 Td [(is )-330(not )-330(set, )-330(a )-330(r)18(eceived )-330(CR )-330(character )-330(is )-330(translated )-330(into )-330(a )-330(NL)]TJ -3.581 -1.2 Td [(character)74(.)]TJ /TT0 1 Tf -6.883 -1.72 Td (IEXTEN)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_1 1 Tf 0.5302 Tc (,P)Tj 0 Tc 5.917 0 Td [(OSIX.1, )-280(Fr)18(eeBSD, )-280(Linux, )-280(Mac )-280(OS )-280(X, )-280(Solaris\))-780(If )-280(set, )-280(the)]TJ -5.917 -1.2 Td [(extended, )-15(implementation-de\336ned )-15(special )-15(characters )-15(ar)]TJ 0.2652 Tc 24.549 0 Td (er)Tj 0 Tc 1.121 0 Td [(ecognized )-15(and)]TJ -25.671 -1.2 Td [(pr)18(ocessed.)]TJ /TT0 1 Tf -6.883 -1.72 Td (IGNBRK)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_iflag)Tj /T1_1 1 Tf 0.4216 Tc (,P)Tj 0 Tc 5.809 0 Td [(OSIX.1, )-172(Fr)18(eeBSD, )-172(Linux, )-172(Mac )-172(OS )-172(X, )-172(Solaris\))-672(When )-172(set, )-172(a)]TJ -5.809 -1.2 Td [(BREAK )-63(condition )-63(on )-63(input )-63(is )-63(ignor)18(ed. )-313(See)]TJ /TT0 1 Tf 19.476 0 Td (BRKINT)Tj /T1_1 1 Tf 3.913 0 Td [(for )-63(a )-63(way )-63(to )-63(have )-63(a)]TJ -23.389 -1.2 Td (BREAK condition either generate a)Tj /TT0 1 Tf 15.711 0 Td (SIGINT)Tj /T1_1 1 Tf 3.85 0 Td [(signal or be r)18(ead as data.)]TJ /TT0 1 Tf -26.444 -1.72 Td (IGNCR)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_iflag)Tj /T1_1 1 Tf 0.6189 Tc (,P)Tj 0 Tc 6.006 0 Td [(OSIX.1, )-369(Fr)18(eeBSD, )-369(Linux, )-369(Mac )-369(OS )-369(X, )-369(Solaris\))-869(If )-369(set, )-369(a)]TJ -0.018 Tc -6.006 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ceived )-98(CR )-98(character )-98(is )-98(ignor)17(ed. )-348(If)-348(this )-98(\337ag )-98(is )-98(not )-98(set, )-98(it )-98(is )-98(possible )-98(to)]TJ -0.856 -1.2 Td [(translate the r)18(eceived CR into a NL character if the)]TJ /TT0 1 Tf 22.575 0 Td (ICRNL)Tj /T1_1 1 Tf 3.25 0 Td (\337ag is set.)Tj /TT0 1 Tf -32.708 -1.72 Td (IGNPAR)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_iflag)Tj /T1_1 1 Tf 0.3634 Tc (,P)Tj 0 Tc 5.75 0 Td [(OSIX.1, )-113(Fr)18(eeBSD, )-113(Linux, )-113(Mac )-113(OS )-113(X, )-113(Solaris\))-613(When )-113(set, )-113(an)]TJ -5.75 -1.2 Td [(input )-82(byte )-82(with )-82(a )-82(framing )-82(err)18(or )-82(\(other )-82(than )-82(a )-82(BREAK\) )-82(or )-82(an )-82(input )-82(byte)]TJ 0 -1.2 TD [(with a parity err)18(or is ignor)18(ed.)]TJ /TT0 1 Tf -6.883 -1.72 Td (IMAXBEL)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_iflag)Tj /T1_1 1 Tf 0.4166 Tc (,F)Tj -0.018 Tc 5.756 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-167(Linux, )-167(Mac )-167(OS )-167(X, )-167(Solaris\))-667(Ring )-167(bell )-167(when )-167(input)]TJ -6.612 -1.2 Td (queue is full.)Tj /TT0 1 Tf -6.883 -1.72 Td (INLCR)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_iflag)Tj /T1_1 1 Tf 0.6189 Tc (,P)Tj 0 Tc 6.006 0 Td [(OSIX.1, )-369(Fr)18(eeBSD, )-369(Linux, )-369(Mac )-369(OS )-369(X, )-369(Solaris\))-869(If )-369(set, )-369(a)]TJ -0.018 Tc -6.006 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ceived NL character is translated into a CR character)74(.)]TJ /TT0 1 Tf -7.739 -1.72 Td (INPCK)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_iflag)Tj /T1_1 1 Tf 0.524 Tc (,P)Tj 0 Tc 5.911 0 Td [(OSIX.1, )-274(Fr)18(eeBSD, )-274(Linux, )-274(Mac )-274(OS )-274(X, )-274(Solaris\))-774(When )-274(set,)]TJ -5.911 -1.2 Td [(input )-296(parity )-296(checking )-296(is )-296(enabled.)-798(If)]TJ /TT0 1 Tf 17.664 0 Td (INPCK)Tj /T1_1 1 Tf 3.546 0 Td [(is )-296(not )-296(set, )-296(input )-296(parity)]TJ -21.211 -1.2 Td (checking is disabled.)Tj 0 -1.8 TD [(Parity )-94(\324)37(\324generation )-94(and )-94(detection\325)]TJ 0.3439 Tc 14.977 0 Td (\325a)Tj 0 Tc 1.122 0 Td [(nd )-94(\324)37(\324input )-94(parity )-94(checking\325)]TJ 0.3439 Tc 11.991 0 Td (\325a)Tj -0.018 Tc 1.122 0 Td [(re )-130(t)]TJ 0 Tc 1.526 0 Td (wo)Tj -30.737 -1.2 Td [(dif)18(fer)18(ent )-3(things.)-503(The )-3(generation )-3(and )-3(detection )-3(of )-3(parity )-3(bits )-3(is )-3(contr)22(olled)]TJ -0 -1.2 Td [(by )-6(the)]TJ /TT0 1 Tf 3.009 0 Td (PARENB)Tj /T1_1 1 Tf 3.856 0 Td [(\337ag. )-256(Setting)-257(this )-6(\337ag )-6(usually )-6(causes )-6(the )-6(device )-6(driver )-6(for)]TJ -6.865 -1.2 Td [(the )-235(serial )-235(interface )-235(to )-235(generate )-235(parity )-235(for )-235(outgoing )-235(characters )-235(and )-235(to)]TJ 0 -1.2 TD [(verify )-140(the )-140(parity )-140(of )-140(incoming )-140(characters.)-640(The )-140(\337ag)]TJ /TT0 1 Tf 23.178 0 Td (PARODD)Tj /T1_1 1 Tf 3.99 0 Td (determines)Tj -27.168 -1.2 Td [(whether )-59(the )-59(parity )-59(should )-59(be )-59(odd )-59(or )-59(even.)-561(If )-59(an )-59(input )-59(character )-59(arrives)]TJ T* [(with )-4(the )-4(wr)18(ong )-4(parity)]TJ 0.2536 Tc 9.634 0 Td (,t)Tj 0 Tc 0.83 0 Td [(hen )-4(the )-4(state )-4(of )-4(the)]TJ /TT0 1 Tf 8.619 0 Td (INPCK)Tj /T1_1 1 Tf 3.254 0 Td [(\337ag )-3(is )-3(checked.)-503(If )-3(this)]TJ -22.336 -1.2 Td [(\337ag )-156(is )-156(set, )-156(then )-156(the)]TJ /TT0 1 Tf 9.243 0 Td (IGNPAR)Tj /T1_1 1 Tf 4.006 0 Td [(\337ag )-156(is )-156(checked )-156(\(to )-156(see )-156(whether )-156(the )-156(input)]TJ -13.248 -1.2 Td [(byte )-84(with )-84(the )-84(parity )-84(err)18(or )-84(should )-84(be )-84(ignor)19(ed\); )-84(if )-84(the )-84(byte )-84(should )-84(not )-84(be)]TJ T* [(ignor)18(ed, )-19(then )-19(the)]TJ /TT0 1 Tf 7.856 0 Td (PARMRK)Tj /T1_1 1 Tf 3.869 0 Td [(\337ag )-19(is )-19(checked )-19(to )-19(see )-19(which )-19(characters )-19(should)]TJ -11.725 -1.2 Td [(be passed to the r)18(eading pr)18(ocess.)]TJ /TT0 1 Tf -6.883 -1.6 Td (ISIG)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_1 1 Tf 0.2636 Tc (,P)Tj 0 Tc 5.651 0 Td [(OSIX.1, )-14(Fr)18(eeBSD, )-14(Linux, )-14(Mac )-14(OS )-14(X, )-14(Solaris\))-511(If )-13(set, )-13(the )-13(input)]TJ -5.651 -1.2 Td [(characters )-214(ar)]TJ 0.4639 Tc 5.83 0 Td (ec)Tj 0 Tc 1.387 0 Td [(ompar)18(ed )-214(against )-214(the )-214(special )-214(characters )-214(that )-214(cause )-214(the)]TJ -7.217 -1.2 Td [(terminal-generated )-285(signals )-285(to )-285(be )-285(generated)]TJ 20.543 0.04 Td (\()Tj 0.333 -0.04 Td [(INTR, )-285(QUIT)]TJ 0.5353 Tc 5.674 0 Td (,S)Tj 0 Tc 1.31 0 Td (USP)Tj 0.5353 Tc 1.778 0 Td (,a)Tj 0 Tc 1.285 0 Td (nd)Tj -30.924 -1.2 Td (DSUSP)Tj 3.206 0.04 Td (\))Tj 0.333 -0.04 Td [(;)-250(if)-250(equal, the corr)18(esponding signal is generated.)]TJ /TT0 1 Tf -10.422 -1.72 Td (ISTRIP)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_iflag)Tj /T1_1 1 Tf 0.524 Tc (,P)Tj 0 Tc 5.911 0 Td [(OSIX.1, )-274(Fr)18(eeBSD, )-274(Linux, )-274(Mac )-274(OS )-274(X, )-274(Solaris\))-774(When )-274(set,)]TJ -5.911 -1.2 Td [(valid )-172(input )-172(bytes )-172(ar)]TJ 0.422 Tc 9.142 0 Td (es)Tj 0 Tc 1.325 0 Td [(tripped )-172(to )-172(7 )-172(bits.)-672(When )-172(this )-172(\337ag )-172(is )-172(not )-172(set, )-172(all)]TJ 0.25 Tc -10.467 -1.2 Td (8b)Tj 0 Tc 1.303 0 Td (its ar)Tj 0.25 Tc 2.168 0 Td (ep)Tj -0.018 Tc 1.33 0 Td (ro)Tj 0 Tc 0.923 0 Td (cessed.)Tj /TT0 1 Tf -12.607 -1.72 Td (IUCLC)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_iflag)Tj /T1_1 1 Tf 0.25 Tc (,L)Tj 0 Tc 5.644 0 Td [(inux, Solaris\))-500(Map upper)18(case to lower)18(case on input.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47398 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (702)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 165.5901 668.9599 Tm [(handle )-166(these )-166(signals.)-666(Some )-166(versions )-166(just )-166(ignor)17(e)]TJ /TT0 1 Tf 22.373 0 Td (SIGINT)Tj /T1_1 1 Tf 4.016 0 Td [(\(saving )-166(its )-166(pr)18(evious)]TJ -26.39 -1.2 Td [(action\) )-193(while )-193(in)]TJ /TT0 1 Tf 7.702 0 Td (getpass)Tj /T1_1 1 Tf 0.4435 Tc (,r)Tj 0 Tc 5.271 0 Td [(esetting )-193(the )-193(action )-193(for )-193(this )-193(signal )-193(to )-193(its )-193(pr)14(evious)]TJ -12.973 -1.2 Td [(value )-71(befor)]TJ 0.3213 Tc 5.047 0 Td (er)Tj 0 Tc 1.177 0 Td [(eturning. )-321(This)-322(means )-71(that )-71(any )-71(occurr)17(ence )-71(of )-71(the )-71(signal )-71(while )-71(it\325s)]TJ -6.225 -1.2 Td [(ignor)18(ed )-39(is )-39(lost.)-539(Other )-39(versions )-39(catch)]TJ /TT0 1 Tf 16.548 0 Td (SIGINT)Tj /T1_1 1 Tf 3.889 0 Td [(\(saving )-39(its )-39(pr)18(evious )-39(action\) )-39(and )-39(if)]TJ -20.437 -1.2 Td [(the )-148(signal )-148(is )-148(caught, )-148(send )-148(themselves )-148(the )-148(signal )-148(with )-148(the)]TJ /TT0 1 Tf 26.464 0 Td (kill)Tj /T1_1 1 Tf 2.798 0 Td [(function )-148(after)]TJ -0.018 Tc -29.262 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(setting )-30(the )-30(terminal )-30(state )-30(and )-30(signal )-30(action.)-527(None )-30(of )-30(the )-30(versions )-30(of)]TJ /TT0 1 Tf 30.344 0 Td (getpass)Tj /T1_1 1 Tf -31.2 -1.2 Td [(catch, )-226(ignor)18(e, )-226(or )-226(block)]TJ /TT0 1 Tf 10.862 0 Td (SIGQUIT)Tj /T1_1 1 Tf [(,)-476(so)-476(entering )-226(the )-226(QUIT )-226(character )-226(aborts )-226(the)]TJ -10.862 -1.2 Td [(pr)18(ogram and pr)18(obably leaves the terminal with echoing disabled.)]TJ 1.194 Tc -1.8 -1.6 Td (\245B)Tj 0.5782 Tc 2.411 0 Td (ea)Tj 0 Tc 1.557 0 Td (war)Tj 0.5782 Tc 1.711 0 Td (et)Tj 0 Tc 1.383 0 Td [(hat )-328(some )-328(shells, )-328(notably )-328(the )-328(Korn )-328(shell, )-328(turn )-328(echoing )-328(back )-328(on)]TJ -5.262 -1.2 Td [(whenever )-156(they )-156(r)18(ead )-156(interactive )-156(input.)-656(These )-156(shells )-156(ar)]TJ 0.4062 Tc 24.674 0 Td (et)Tj 0 Tc 1.211 0 Td [(he )-156(ones )-156(that )-156(pr)18(ovide)]TJ -25.886 -1.2 Td (command)Tj 4.449 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-68(editing )-68(and )-68(ther)17(efor)]TJ 0.3183 Tc 10.926 0 Td (em)Tj 0 Tc 1.68 0 Td [(anipulate )-68(the )-68(state )-68(of )-68(the )-68(terminal )-68(every)]TJ -17.388 -1.2 Td [(time )-142(we )-142(enter )-142(an )-142(interactive )-142(command.)-642(So, )-142(if )-142(we )-142(invoke )-142(this )-142(pr)18(ogram )-142(under)]TJ 0 -1.2 TD [(one )-4(of )-4(these )-4(shells )-4(and )-4(abort )-4(it )-4(with )-4(the )-4(QUIT )-4(character)77(,)-254(it)-254(m)1(ay )-4(r)18(eenable )-4(echoing)]TJ -0 -1.2 Td [(for )-39(us.)-539(Other )-39(shells )-39(that )-39(don\325t )-39(pr)18(ovide )-39(this )-39(form )-39(of )-39(command)]TJ 27.407 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-39(editing, )-39(such)]TJ -27.74 -1.2 Td [(as )-116(the )-116(Bourne )-116(shell, )-116(will )-116(abort )-116(the )-116(pr)18(ogram )-116(and )-116(leave )-116(the )-116(terminal )-116(in )-116(no-echo)]TJ T* [(mode. )-250(If)-250(we do this to our terminal, the)]TJ /TT0 1 Tf 17.832 0 Td (stty)Tj /T1_1 1 Tf 2.65 0 Td [(command can r)18(eenable echoing.)]TJ 1.194 Tc -22.282 -1.6 Td (\245W)Tj 0.2676 Tc 2.708 0 Td (eu)Tj 0 Tc 1.35 0 Td [(se )-18(standar)]TJ 0.2676 Tc 4.491 0 Td (dI)Tj 0 Tc 1.216 0 Td [(/O )-18(to )-18(r)18(ead )-18(and )-18(write )-18(the )-18(contr)18(olling )-18(terminal.)]TJ -0.092 Tc 20.856 0 Td [(We )-202(s)]TJ 0 Tc 2.079 0 Td (peci\336cally)Tj -30.898 -1.2 Td [(set )-174(the )-174(str)18(eam )-174(to )-174(be )-174(unbuf)16(fer)18(ed; )-174(otherwise, )-174(ther)]TJ 0.4245 Tc 22.035 0 Td (em)Tj 0 Tc 1.786 0 Td [(ight )-174(be )-174(some )-174(interactions)]TJ -23.821 -1.2 Td [(between )-121(the )-121(writing )-121(and )-121(r)17(eading )-121(of )-121(the )-121(str)18(eam )-121(\(we )-121(would )-121(need )-121(some )-121(calls )-121(to)]TJ /TT0 1 Tf T* (fflush)Tj /T1_1 1 Tf [(\). )-311(W)]TJ 0.3107 Tc 5.652 0 Td (ec)Tj 0 Tc 1.234 0 Td [(ould )-61(have )-61(also )-61(used )-61(unbuf)19(fer)18(ed )-61(I/O )-61(\(Chapter )-61(3\), )-61(but )-61(we )-61(would)]TJ -6.885 -1.2 Td (have to simulate the)Tj /TT0 1 Tf 9.182 0 Td (getc)Tj /T1_1 1 Tf 2.65 0 Td (function using)Tj /TT0 1 Tf 6.663 0 Td (read)Tj /T1_1 1 Tf (.)Tj 1.194 Tc -20.295 -1.6 Td (\245W)Tj 0.2505 Tc 2.708 0 Td (es)Tj 0 Tc 1.154 0 Td (tor)Tj 0.2505 Tc 1.249 0 Td (eo)Tj 0 Tc 1.276 0 Td [(nly up to eight characters as the passwor)15(d. )-250(Any)-251(additional characters)]TJ -4.586 -1.2 Td (that ar)Tj 0.25 Tc 2.861 0 Td (ee)Tj 0 Tc 1.208 0 Td [(nter)18(ed ar)]TJ 0.25 Tc 3.981 0 Td (ei)Tj 0 Tc 1.02 0 Td [(gnor)18(ed.)]TJ -10.87 -2.4 Td [(The )-3(pr)18(ogram )-3(in )-3(Figur)]TJ 0.2527 Tc 9.546 0 Td (e1)Tj 0 Tc 1.232 0 Td [(8.18 )-3(calls)]TJ /TT0 1 Tf 4.205 0 Td (getpass)Tj /T1_1 1 Tf 4.453 0 Td [(and )-3(prints )-3(what )-3(we )-3(enter )-3(to )-3(let )-3(us )-3(verify)]TJ -21.236 -1.2 Td (that the ERASE and KILL characters work \(as they should in canonical mo\ de\).)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3498.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 340.2582 Tm (#include "apue.h")Tj 0 -2.14 TD [(char )-1800(*getpass\(const)-600(char *\);)]TJ T* (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(char )-1800(*ptr;)]TJ 0 -2.14 TD (if \(\(ptr = getpass\("Enter password:"\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("getpass error"\);)Tj -2.4 -1.189 Td (printf\("password: %s\\n", ptr\);)Tj 0 -2.14 TD (/* now use password \(probably encrypt it\) ... */)Tj 0 -2.14 TD (while \(*ptr != 0\))Tj 2.4 -1.189 Td [(*ptr++ = 0;)-3000(/* zero it out when we\325re done with it */)]TJ -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1536.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 252.4346 137.5732 Tm (Figure 18.18)Tj /T1_1 1 Tf 6.195 0 Td (Call the)Tj /TT0 1 Tf 3.678 0 Td (getpass)Tj /T1_1 1 Tf 4.45 0 Td (function)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47399 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (680)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(We )-337(n)]TJ 0 Tc 2.372 0 Td [(ow )-153(describe )-153(each )-153(of )-153(the )-153(special )-153(characters )-153(in )-153(mor)]TJ 0.4028 Tc 22.747 0 Td (ed)Tj 0 Tc 1.493 0 Td [(etail. )-403(W)]TJ 0.4028 Tc 3.698 0 Td (ec)Tj 0 Tc 1.326 0 Td [(all )-153(these )-153(the)]TJ -33.435 -1.2 Td [(special )-174(input )-174(characters, )-174(but )-174(two )-174(of )-174(the )-174(characters, )-174(ST)20(OP )-174(and )-174(ST)75(AR)]TJ 0.4237 Tc 31.279 0 Td (T\()Tj 0 Tc 1.37 0 Td [(Contr)18(ol)]TJ 3.377 0.09 Td (-)Tj 0.4237 Tc 0.333 -0.09 Td (Sa)Tj 0 Tc 1.449 0 Td (nd)Tj -37.807 -1.2 Td [(Contr)18(ol)]TJ 3.377 0.09 Td (-)Tj 0.333 -0.09 Td [(Q\), )-44(ar)]TJ 0.2945 Tc 2.541 0 Td (ea)Tj 0 Tc 1.274 0 Td [(lso )-45(handled )-45(specially )-45(when )-45(output.)-545(Note )-45(that )-45(when )-45(r)18(ecognized )-45(by )-45(the)]TJ -7.524 -1.2 Td [(terminal )-316(driver )-316(and )-316(pr)18(ocessed )-316(specially)]TJ 0.5665 Tc 18.593 0 Td (,m)Tj 0 Tc 1.699 0 Td [(ost )-316(of )-316(these )-316(special )-316(characters )-316(ar)]TJ 0.5664 Tc 15.693 0 Td (et)Tj 0 Tc 1.371 0 Td (hen)Tj -37.357 -1.2 Td [(discar)18(ded: )-66(they )-66(ar)]TJ 0.3156 Tc 8.049 0 Td (en)Tj 0 Tc 1.377 0 Td [(ot )-66(r)18(eturned )-66(to )-66(the )-66(pr)20(ocess )-66(in )-66(a )-66(r)18(ead )-66(operation.)-566(The )-66(exceptions )-66(ar)20(e)]TJ -9.426 -1.2 Td (the newline characters)Tj 10.164 0.04 Td (\()Tj 0.333 -0.04 Td (NL, EOL, EOL2)Tj 6.958 0.04 Td (\))Tj 0.583 -0.04 Td [(and the carriage r)18(eturn)]TJ 10.402 0.04 Td (\()Tj 0.333 -0.04 Td (CR)Tj 1.377 0.04 Td (\))Tj 0.333 -0.04 Td (.)Tj -30.483 -2.4 Td [(CR )-3821(The)-615(carriage )-365(r)18(eturn )-365(character)]TJ 0.8646 Tc 19.279 0 Td (.W)Tj 0.6146 Tc 2.023 0 Td (ec)Tj 0 Tc 1.538 0 Td [(annot )-364(change )-364(this )-364(character)]TJ 0.8645 Tc 13.137 0 Td (.T)Tj 0 Tc 1.727 0 Td (his)Tj -32.255 -1.2 Td [(character )-155(is )-155(r)18(ecognized )-155(on )-155(input )-155(in )-155(canonical )-155(mode.)-655(When )-155(both)]TJ /TT0 1 Tf 29.952 0 Td (ICANON)Tj /T1_1 1 Tf -29.952 -1.2 Td [(\(canonical )-143(mode\) )-143(and)]TJ /TT0 1 Tf 10.236 0 Td (ICRNL)Tj /T1_1 1 Tf 3.393 0 Td [(\(map )-143(CR )-143(to )-143(NL\) )-143(ar)]TJ 0.3926 Tc 8.788 0 Td (es)Tj 0 Tc 1.296 0 Td [(et )-143(and)]TJ /TT0 1 Tf 3.283 0 Td (IGNCR)Tj /T1_1 1 Tf 3.393 0 Td [(\(ignor)18(e)]TJ -30.388 -1.2 Td [(CR\) )-60(is )-60(not )-60(set, )-60(the )-60(CR )-60(character )-60(is )-60(translated )-60(to )-60(NL )-60(and )-60(has )-60(the )-60(same )-60(ef)14(fect)]TJ 0 -1.2 TD [(as )-359(a )-359(NL )-359(character)]TJ 0.8594 Tc 8.685 0 Td (.T)Tj 0 Tc 1.722 0 Td [(his )-359(character )-359(is )-359(r)17(eturned )-359(to )-359(the )-359(r)18(eading )-359(pr)17(ocess)]TJ -10.408 -1.2 Td [(\(per)18(haps after being translated to a NL\).)]TJ -5.448 -1.84 Td [(DISCARD )-633(The)-514(discar)]TJ 0.514 Tc 10.283 0 Td (dc)Tj 0 Tc 1.569 0 Td (haracter)Tj 0.764 Tc 3.547 0 Td (.T)Tj 0 Tc 1.627 0 Td [(his )-264(character)]TJ 0.514 Tc 5.802 0 Td (,r)Tj 0 Tc 1.141 0 Td [(ecognized )-264(on )-264(input )-264(in )-264(extended)]TJ -18.521 -1.2 Td [(mode )-178(\()]TJ /TT0 1 Tf (IEXTEN)Tj /T1_1 1 Tf [(\), )-178(causes )-178(subsequent )-178(output )-178(to )-178(be )-178(discar)19(ded )-178(until )-178(another)]TJ T* [(DISCARD )-120(character )-120(is )-120(enter)18(ed )-120(or )-120(the )-120(discar)]TJ 0.3701 Tc 19.874 0 Td (dc)Tj 0 Tc 1.425 0 Td [(ondition )-120(is )-120(clear)18(ed )-120(\(see )-120(the)]TJ /TT0 1 Tf -21.299 -1.2 Td (FLUSHO)Tj /T1_1 1 Tf 3.935 0 Td [(option\). )-335(This)-336(character )-85(is )-85(discar)18(ded )-85(when )-85(pr)17(ocessed )-85(\(i.e., )-85(it )-85(is )-85(not)]TJ -3.935 -1.2 Td [(passed to the pr)18(ocess\).)]TJ -5.448 -1.84 Td [(DSUSP )-1992(The)-293(delayed-suspend )-43(job-contr)18(ol )-43(character)]TJ 0.5427 Tc 24.353 0 Td (.T)Tj 0 Tc 1.406 0 Td [(his )-43(character )-43(is )-43(r)18(ecognized )-43(on)]TJ -20.311 -1.2 Td [(input )-194(in )-194(extended )-194(mode )-194(\()]TJ /TT0 1 Tf 11.989 0 Td (IEXTEN)Tj /T1_1 1 Tf [(\))-444(if)-444(j)-1(ob )-194(contr)18(ol )-194(is )-194(supported )-194(and )-194(if )-194(the)]TJ /TT0 1 Tf -11.989 -1.2 Td (ISIG)Tj /T1_1 1 Tf 2.778 0 Td [(\337ag )-127(is )-127(set.)-627(Like )-127(the )-127(SUSP )-127(character)]TJ 0.3775 Tc 16.12 0 Td (,t)Tj 0 Tc 0.954 0 Td [(his )-127(delayed-suspend )-127(character)]TJ -19.851 -1.2 Td [(generates )-35(the)]TJ /TT0 1 Tf 6.177 0 Td (SIGTSTP)Tj /T1_1 1 Tf 4.485 0 Td [(signal )-35(that )-35(is )-35(sent )-35(to )-35(all )-35(pr)18(ocesses )-35(in )-35(the )-35(for)19(egr)18(ound)]TJ -10.662 -1.2 Td [(pr)18(ocess )-510(gr)18(oup )-510(\(r)18(efer )-510(to )-510(Figur)]TJ 0.7605 Tc 14.671 0 Td (e9)Tj 0 Tc 1.739 0 Td [(.7\). )-760(However)]TJ 0.7605 Tc 6.399 0 Td (,t)Tj 0 Tc 1.336 0 Td [(he )-510(delayed-suspend)]TJ -24.146 -1.2 Td [(character )-34(generates )-34(a )-34(signal )-34(only )-34(when )-34(a )-34(pr)18(ocess )-34(r)16(eads )-34(fr)18(om )-34(the )-34(contr)17(olling)]TJ 0 -1.2 Td [(terminal, )-11(not )-11(when )-11(the )-11(character )-11(is )-11(typed.)-511(This )-11(character )-11(is )-11(discar)20(ded )-11(when)]TJ T* [(pr)18(ocessed \(i.e., it is not passed to the pr)18(ocess\).)]TJ -5.448 -1.84 Td [(EOF )-3245(The)-266(end-of-\336le )-16(character)]TJ 0.5156 Tc 16.236 0 Td (.T)Tj 0 Tc 1.379 0 Td [(his )-16(character )-16(is )-16(r)18(ecognized )-16(on )-16(input )-16(in )-16(canonical)]TJ -12.167 -1.2 Td [(mode )-68(\()]TJ /TT0 1 Tf (ICANON)Tj /T1_1 1 Tf [(\). )-318(When)-318(we )-68(type )-68(this )-68(character)]TJ 0.3178 Tc 20.724 0 Td (,a)Tj 0 Tc 1.068 0 Td [(ll )-68(bytes )-68(waiting )-68(to )-68(be )-68(r)19(ead)]TJ -21.792 -1.2 Td (ar)Tj 0.257 Tc 0.877 0 Td (ei)Tj 0 Tc 1.027 0 Td [(mmediately )-7(passed )-7(to )-7(the )-7(r)18(eading )-7(pr)18(ocess. )-257(If)-257(no )-7(bytes )-7(ar)]TJ 0.257 Tc 25.114 0 Td (ew)Tj 0 Tc 1.57 0 Td [(aiting )-7(to )-7(be)]TJ -0.018 Tc -28.588 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ad, )-79(a )-79(count )-79(of )-79(0 )-79(is )-79(r)16(eturned. )-329(Entering)-330(an )-79(EOF )-79(character )-79(at )-79(the )-79(beginning)]TJ -0.856 -1.2 Td [(of )-69(the )-69(line )-69(is )-69(the )-69(normal )-69(way )-69(to )-69(indicate )-69(the )-69(end )-69(of )-69(\336le )-69(to )-69(a )-69(pr)17(ogram. )-319(This)]TJ T* [(character )-236(is )-236(discar)18(ded )-236(when )-236(pr)16(ocessed )-236(in )-236(canonical )-236(mode )-236(\(i.e., )-236(it )-236(is )-236(not)]TJ T* [(passed to the pr)18(ocess\).)]TJ -5.448 -1.84 Td [(EOL )-3190(The)-794(additional )-544(line )-544(delimiter )-544(character)]TJ 0.7944 Tc 24.529 0 Td (,l)Tj 0 Tc 1.335 0 Td [(ike )-544(NL.)-1044(This )-544(character )-544(is)]TJ -0.018 Tc -20.416 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cognized )-186(on )-186(input )-186(in )-186(canonical )-186(mode )-186(\()]TJ /TT0 1 Tf 18.062 0 Td (ICANON)Tj /T1_1 1 Tf 0.4363 Tc (\)a)Tj 0 Tc 4.869 0 Td [(nd )-186(is )-186(r)18(eturned )-186(to )-186(the)]TJ -0.018 Tc -23.788 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ading pr)18(ocess; however)]TJ 0.25 Tc 10.391 0 Td (,t)Tj 0 Tc 0.826 0 Td (his character is not normally used.)Tj -17.521 -1.84 Td [(EOL2 )-2690(Another)-732(line )-482(delimiter )-482(character)]TJ 0.7319 Tc 21.012 0 Td (,l)Tj 0 Tc 1.273 0 Td [(ike )-482(NL.)-982(This )-482(character )-482(is )-482(tr)19(eated)]TJ -16.837 -1.2 Td [(identically to the EOL character)74(.)]TJ -5.448 -1.84 Td [(ERASE )-2005(The)-391(erase )-141(character )-141(\(backspace\).)-641(This )-141(character )-141(is )-141(r)18(ecognized )-141(on )-141(input )-141(in)]TJ 5.448 -1.2 Td [(canonical )-45(mode )-45(\()]TJ /TT0 1 Tf 7.623 0 Td (ICANON)Tj /T1_1 1 Tf 0.2953 Tc (\)a)Tj 0 Tc 4.728 0 Td [(nd )-45(erases )-45(the )-45(pr)17(evious )-45(character )-45(in )-45(the )-45(line, )-45(not)]TJ -12.351 -1.2 Td [(erasing )-82(beyond )-82(the )-82(beginning )-82(of )-82(the )-82(line.)-582(The )-82(erase )-82(character )-82(is )-82(discar)19(ded)]TJ T* [(when pr)18(ocessed in canonical mode \(i.e., it is not passed to the pr)18(ocess\).)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47400 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(13.2)]TJ 33.039 0 Td [(Daemon )-250(Characteristics)]TJ /T1_1 1 Tf 12.794 0 Td (465)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(In )-299(the )-299(sample)]TJ /TT0 1 Tf 7.131 0 Td (ps)Tj /T1_0 1 Tf 1.749 0 Td [(output, )-299(kernel )-299(daemons )-299(appear )-299(with )-299(their )-299(names )-299(in )-299(squar)18(e)]TJ -10.68 -1.2 Td [(brackets. )-270(This)-269(version )-20(of )-20(Linux )-20(uses )-20(a )-20(special )-20(kernel )-20(pr)19(ocess,)]TJ /TT0 1 Tf 27.336 0 Td (kthreadd)Tj /T1_0 1 Tf [(,)-270(to)-270(c)]TJ -0.018 Tc (re)Tj 0 Tc 7.762 0 Td [(ate )-20(other)]TJ -35.097 -1.2 Td [(kernel )-3(pr)18(ocesses, )-3(so)]TJ /TT0 1 Tf 8.958 0 Td (kthreadd)Tj /T1_0 1 Tf 5.053 0 Td [(appears )-3(as )-3(the )-3(par)19(ent )-3(of )-3(the )-3(other )-3(kernel )-3(daemons.)-501(Each)]TJ -14.011 -1.2 Td [(kernel )-275(component )-275(that )-275(needs )-275(to )-275(perform )-275(work )-275(in )-275(a )-275(pr)14(ocess )-275(context, )-275(but )-275(that )-275(isn\325t)]TJ 0 -1.2 TD [(invoked )-250(fr)18(om )-250(the )-250(context )-250(of )-250(a )-250(user)20(-level )-249(pr)18(ocess, )-249(will )-249(usually )-249(have )-249(its )-249(own )-249(kernel)]TJ T* [(daemon. )-250(For)-250(example, on Linux)]TJ 0.883 Tc 1.8 -1.56 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.5 0 Td (kswapd)Tj /T1_0 1 Tf 4.039 0 Td [(daemon )-189(is )-189(also )-189(known )-189(as )-189(the )-189(pageout )-189(daemon.)-688(It )-189(supports )-189(the)]TJ -6.152 -1.2 Td [(virtual )-110(memory )-110(subsystem )-110(by )-110(writing )-110(dirty )-110(pages )-110(to )-110(disk )-110(slowly )-110(over )-110(time, )-110(so)]TJ T* [(the pages can be r)18(eclaimed.)]TJ 0.883 Tc -1.489 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.365 0 Td (flush)Tj /T1_0 1 Tf 3.304 0 Td [(daemon )-54(\337ushes )-54(dirty )-54(pages )-54(to )-54(disk )-54(when )-54(available )-54(memory )-54(r)14(eaches)]TJ 0.4465 Tc -5.283 -1.2 Td (ac)Tj 0 Tc 1.391 0 Td [(on\336gur)18(ed )-196(minimum )-196(thr)17(eshold. )-446(It)-447(also )-196(\337ushes )-196(dirty )-196(pages )-196(back )-196(to )-196(disk )-196(at)]TJ -0.018 Tc -1.391 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(gular )-104(intervals )-104(to )-104(decr)19(ease )-104(data )-104(loss )-104(in )-104(the )-104(event )-104(of )-104(a )-104(system )-104(failur)19(e. )-354(Several)]TJ -0.856 -1.2 Td [(\337ush )-265(daemons )-265(can )-265(exist)]TJ 0.0833 Tc 11.431 0 Td (\321o)Tj 0 Tc 1.629 0 Td [(ne )-265(for )-265(each )-265(backing )-265(device.)-765(The )-265(sample )-265(output)]TJ -13.061 -1.2 Td [(shows )-6(one )-6(\337ush )-6(daemon )-6(named)]TJ /TT0 1 Tf 14.568 0 Td (flush-8:0)Tj /T1_0 1 Tf 0.5057 Tc (.I)Tj 0.2557 Tc 6.493 0 Td (nt)Tj 0 Tc 1.164 0 Td [(he )-6(name, )-6(the )-6(backing )-6(device )-6(is)]TJ -22.224 -1.2 Td (identi\336ed by its major device number)Tj 16.847 0.04 Td (\()Tj 0.333 -0.04 Td (8)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (and its minor device number)Tj 13.045 0.04 Td (\()Tj 0.333 -0.04 Td (0)Tj 0.5 0.04 Td (\))Tj 0.333 -0.04 Td (.)Tj 0.883 Tc -33.963 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.311 0 Td (sync_supers)Tj /T1_0 1 Tf 6.85 0 Td (daemon periodically \337ushes \336le system metadata to disk.)Tj 0.883 Tc -10.263 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.311 0 Td (jbd)Tj /T1_0 1 Tf 2.05 0 Td (daemon helps implement the journal in the)Tj /TT0 1 Tf 19.341 0 Td (ext4)Tj /T1_0 1 Tf 2.65 0 Td (\336le system.)Tj -27.454 -1.56 Td [(Pr)18(ocess )-71(1 )-71(is )-71(usually)]TJ /TT0 1 Tf 9.066 0 Td (init)Tj /T1_0 1 Tf 2.721 0 Td (\()Tj /TT0 1 Tf (launchd)Tj /T1_0 1 Tf 4.854 0 Td [(on )-71(Mac )-71(OS )-71(X\), )-71(as )-71(we )-71(described )-71(in )-71(Section )-71(8.2.)]TJ -18.441 -1.2 Td [(It )-211(is )-211(a )-211(system )-211(daemon )-211(r)18(esponsible )-211(for)]TJ 0.4611 Tc 17.585 0 Td (,a)Tj 0 Tc 1.211 0 Td [(mong )-211(other )-211(things, )-211(starting )-211(system )-211(services)]TJ -18.796 -1.2 Td [(speci\336c )-62(to )-62(various )-62(r)8(un )-62(levels.)-562(These )-62(services )-62(ar)]TJ 0.312 Tc 21.224 0 Td (eu)Tj 0 Tc 1.394 0 Td [(sually )-62(implemented )-62(with )-62(the )-62(help )-62(of)]TJ -22.618 -1.2 Td (their own daemons.)Tj 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.1 0 Td (rpcbind)Tj /T1_0 1 Tf 4.626 0 Td [(daemon )-176(pr)18(ovides )-176(the )-176(service )-176(of )-176(mapping )-176(RPC)]TJ 21.814 0.04 Td (\()Tj 0.333 -0.04 Td [(Remote )-176(Pr)18(ocedur)18(e)]TJ -30.673 -1.2 Td (Call)Tj 1.791 0.04 Td (\))Tj 0.648 -0.04 Td [(pr)18(ogram )-65(numbers )-65(to )-65(network )-65(port )-65(numbers.)-563(The)]TJ /TT0 1 Tf 22.531 0 Td (rsyslogd)Tj /T1_0 1 Tf 5.115 0 Td [(daemon )-65(is )-65(available)]TJ -30.084 -1.2 Td [(to )-168(any )-168(pr)17(ogram )-168(to )-168(log )-168(system )-168(messages )-168(for )-168(an )-168(administrator)]TJ 0.6685 Tc 28.012 0 Td (.T)Tj 0 Tc 1.531 0 Td [(he )-168(messages )-168(may )-168(be)]TJ -29.544 -1.2 Td [(printed )-54(on )-54(a )-54(console )-54(device )-54(and )-54(also )-54(written )-54(to )-54(a )-54(\336le.)-552(\(W)]TJ 0.3038 Tc 25.611 0 Td (ed)Tj 0 Tc 1.394 0 Td [(escribe )-54(the)]TJ /TT0 1 Tf 5.06 0 Td (syslog)Tj /T1_0 1 Tf 3.904 0 Td (facility)Tj -35.968 -1.2 Td (in Section 13.4.\))Tj -0.092 Tc 1.8 -1.2 Td [(We )-467(t)]TJ 0 Tc 2.246 0 Td [(alked )-283(about )-283(the)]TJ /TT0 1 Tf 7.951 0 Td (inetd)Tj /T1_0 1 Tf 3.533 0 Td [(daemon )-283(in )-283(Section )-283(9.3.)-783(It )-283(listens )-283(on )-283(the )-283(system\325s)]TJ -15.53 -1.2 Td [(network )-311(interfaces )-311(for )-311(incoming )-311(r)18(equests )-311(for )-311(various )-311(network )-311(servers.)-808(The)]TJ /TT0 1 Tf 36.35 0 Td (nfsd)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf -36.35 -1.2 Td (nfsiod)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.483 0 Td (lockd)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 3.883 0 Td (rpciod)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.483 0 Td (rpc.idmapd)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 6.883 0 Td (rpc.statd)Tj /T1_0 1 Tf 0.6332 Tc (,a)Tj 0 Tc 6.783 0 Td (nd)Tj /TT0 1 Tf 1.826 0 Td (rpc.mountd)Tj /T1_0 1 Tf 6.633 0 Td (daemons)Tj -34.975 -1.2 Td [(pr)18(ovide )-68(support )-68(for )-68(the )-68(Network )-68(File )-68(System)]TJ 20.629 0.04 Td (\()Tj 0.333 -0.04 Td (NFS)Tj 1.912 0.04 Td (\))Tj 0.5679 Tc 0.333 -0.04 Td (.N)Tj 0 Tc 1.649 0 Td [(ote )-68(that )-68(the )-68(\336rst )-68(four )-68(ar)]TJ 0.3178 Tc 10.565 0 Td (ek)Tj 0 Tc 1.353 0 Td (ernel)Tj -36.774 -1.2 Td [(daemons, while the last thr)18(ee ar)]TJ 0.25 Tc 14.05 0 Td (eu)Tj 0 Tc 1.332 0 Td [(ser)18(-level daemons.)]TJ -13.582 -1.2 Td (The)Tj /TT0 1 Tf 2.156 0 Td (cron)Tj /T1_0 1 Tf 2.882 0 Td [(daemon )-232(executes )-232(commands )-232(at )-232(r)18(egularly )-232(scheduled )-232(dates )-232(and )-232(times.)]TJ -6.838 -1.2 Td [(Numer)18(ous )-267(system )-267(administration )-267(tasks )-267(ar)]TJ 0.5172 Tc 19.562 0 Td (eh)Tj 0 Tc 1.578 0 Td [(andled )-267(by)]TJ /TT0 1 Tf 5.217 0 Td (cron)Tj /T1_0 1 Tf -0.008 Tc 2.917 0 Td (ru)Tj 0 Tc 0.99 0 Td [(nning )-267(pr)18(ograms )-267(at)]TJ -0.018 Tc -30.265 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(gularly )-66(intervals.)-567(The)]TJ /TT0 1 Tf 10.168 0 Td (atd)Tj /T1_0 1 Tf 2.116 0 Td [(daemon )-66(is )-66(similar )-66(to)]TJ /TT0 1 Tf 9.528 0 Td (cron)Tj /T1_0 1 Tf [(;)-316(it)-316(a)-1(llows )-66(users )-66(to )-66(execute )-66(jobs)]TJ -22.669 -1.2 Td [(at )-76(speci\336ed )-76(times, )-76(but )-76(it )-76(executes )-76(each )-76(job )-76(once )-76(only)]TJ 0.3264 Tc 23.453 0 Td (,i)Tj 0 Tc 0.867 0 Td [(nstead )-76(of )-76(r)18(epeatedly )-76(at )-76(r)16(egularly)]TJ -24.32 -1.2 Td [(scheduled )-28(times.)-527(The)]TJ /TT0 1 Tf 9.934 0 Td (cupsd)Tj /T1_0 1 Tf 3.278 0 Td [(daemon )-28(is )-28(a )-28(print )-28(spooler; )-28(it )-28(handles )-28(print )-28(r)20(equests )-28(on )-28(the)]TJ -13.212 -1.2 Td [(system. )-250(The)]TJ /TT0 1 Tf 5.766 0 Td (sshd)Tj /T1_0 1 Tf 2.65 0 Td [(daemon pr)18(ovides secur)]TJ 0.25 Tc 10.322 0 Td (er)Tj 0 Tc 1.106 0 Td (emote login and execution facilities.)Tj -18.044 -1.2 Td [(Note )-117(that )-117(most )-117(of )-117(the )-117(daemons )-117(r)8(un )-117(with )-117(super)4(user )-117(\(r)18(oot\) )-117(privileges.)-617(None )-117(of )-117(the)]TJ -1.8 -1.2 Td [(daemons )-102(has )-102(a )-102(contr)18(olling )-102(terminal: )-102(the )-102(terminal )-102(name )-102(is )-102(set )-102(to )-102(a )-102(question )-102(mark.)-601(The)]TJ T* [(kernel )-168(daemons )-168(ar)]TJ 0.4178 Tc 8.52 0 Td (es)Tj 0 Tc 1.321 0 Td [(tarted )-168(without )-168(a )-168(contr)19(olling )-168(terminal.)-668(The )-168(lack )-168(of )-168(a )-168(contr)20(olling)]TJ -9.84 -1.2 Td [(terminal )-64(in )-64(the )-64(user)18(-level )-64(daemons )-64(is )-64(pr)18(obably )-64(the )-64(r)16(esult )-64(of )-64(the )-64(daemons )-64(having )-64(called)]TJ /TT0 1 Tf T* (setsid)Tj /T1_0 1 Tf 0.5201 Tc (.M)Tj 0 Tc 5.316 0 Td [(ost )-20(of )-20(the )-20(user)18(-level )-20(daemons )-20(ar)]TJ 0.2701 Tc 14.136 0 Td (ep)Tj -0.018 Tc 1.35 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-20(gr)18(oup )-20(leaders )-20(and )-20(session )-20(leaders,)]TJ -21.725 -1.2 Td [(and )-144(ar)]TJ 0.3936 Tc 2.964 0 Td (et)Tj 0 Tc 1.199 0 Td [(he )-144(only )-144(pr)18(ocesses )-144(in )-144(their )-144(pr)18(ocess )-144(gr)20(oup )-144(and )-144(session.)-644(\(The )-144(one )-144(exception )-144(is)]TJ /TT0 1 Tf -4.162 -1.2 Td (rsyslogd)Tj /T1_0 1 Tf [(.\) )-276(Finally)]TJ 0.2757 Tc 8.865 0 Td (,n)Tj 0 Tc 1.108 0 Td [(ote )-26(that )-26(the )-26(par)18(ent )-26(of )-26(the )-26(user)18(-level )-26(daemons )-26(is )-26(the)]TJ /TT0 1 Tf 22.807 0 Td (init)Tj /T1_0 1 Tf 2.676 0 Td [(pr)18(ocess.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47401 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.2)]TJ 36.477 0 Td [(Signal )-250(Concepts)]TJ /T1_1 1 Tf 9.356 0 Td (321)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (SIGTERM)Tj /T1_0 1 Tf 6.582 0 Td [(This )-90(is )-90(the )-90(termination )-90(signal )-90(sent )-90(by )-90(the)]TJ /TT0 1 Tf 18.882 0 Td (kill)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.673 -0.04 Td [(command )-90(by )-90(default.)]TJ -22.787 -1.2 Td [(Because )-18(it )-18(can )-18(be )-18(caught )-18(by )-18(applications, )-18(using)]TJ /TT0 1 Tf 21.084 0 Td (SIGTERM)Tj /T1_0 1 Tf 4.468 0 Td [(gives )-18(pr)18(ograms)]TJ 0.6254 Tc -25.553 -1.2 Td (ac)Tj 0 Tc 1.569 0 Td [(hance )-375(to )-375(terminate )-375(gracefully )-375(by )-375(cleaning )-375(up )-375(befor)]TJ 0.6254 Tc 24.872 0 Td (ee)Tj 0 Tc 1.583 0 Td [(xiting )-375(\(in)]TJ -28.025 -1.2 Td (contrast to)Tj /TT0 1 Tf 4.915 0 Td (SIGKILL)Tj /T1_0 1 Tf 0.25 Tc (,w)Tj 0 Tc 5.534 0 Td [(hich can\325t be caught or ignor)18(ed\).)]TJ /TT0 1 Tf -17.031 -1.84 Td (SIGTHAW)Tj /T1_0 1 Tf 6.582 0 Td [(This )-39(signal )-39(is )-39(de\336ned )-39(only )-39(by )-39(Solaris )-39(and )-39(is )-39(used )-39(to )-39(notify )-39(pr)12(ocesses )-39(that)]TJ 0 -1.2 TD [(need )-239(to )-239(take )-239(special )-239(action )-239(when )-239(the )-239(system )-239(r)18(esumes )-239(operation )-239(after)]TJ T* (being suspended.)Tj /TT0 1 Tf -6.582 -1.84 Td (SIGTHR)Tj /T1_0 1 Tf 6.582 0 Td [(This )-100(is )-100(a )-100(signal )-100(r)18(eserved )-100(for )-100(use )-100(by )-100(the )-100(thr)17(ead )-100(library )-100(on )-100(Fr)18(eeBSD. )-350(It)-350(is)]TJ 0 -1.2 Td (de\336ned to have the same value as)Tj /TT0 1 Tf 15.15 0 Td (SIGLWP)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf -21.732 -1.84 Td (SIGTRAP)Tj /T1_0 1 Tf 6.582 0 Td [(This signal indicates an implementation-de\336ned har)18(dwar)]TJ 0.25 Tc 25.375 0 Td (ef)Tj 0 Tc 1.062 0 Td (ault.)Tj 7.9995 0 0 7.9995 237.5852 521.7687 Tm [(The )-131(signal )-131(name )-131(comes )-131(fr)18(om )-131(the )-131(PDP)]TJ 17.333 0.09 Td (-)Tj -0.055 Tc 0.333 -0.09 Td [(11 )-241(T)]TJ 0 Tc 1.939 0 Td [(RAP )-131(instr)8(uction. )-381(Implementations)]TJ -19.605 -1.25 Td [(often )-283(use )-283(this )-283(signal )-283(to )-283(transfer )-283(contr)15(ol )-283(to )-283(a )-283(debugger )-283(when )-283(a )-283(br)16(eakpoint)]TJ 0 -1.25 TD [(instr)8(uction is executed.)]TJ /TT0 1 Tf 9.9994 0 0 9.9994 129.5921 480.7712 Tm (SIGTSTP)Tj /T1_0 1 Tf 6.582 0 Td [(This )-59(interactive )-59(stop )-59(signal )-59(is )-59(generated )-59(by )-59(the )-59(terminal )-59(driver )-59(when )-59(we)]TJ 0 -1.2 TD [(pr)18(ess )-105(the )-105(terminal )-105(suspend )-105(key )-105(\(often )-105(Contr)19(ol)]TJ 20.859 0.09 Td (-)Tj 0.333 -0.09 Td [(Z\). )-355(This)-355(signal )-105(is )-105(sent )-105(to)]TJ -21.192 -1.2 Td [(all pr)18(ocesses in the for)18(egr)18(ound pr)18(ocess gr)18(oup \(r)18(efer to Figur)]TJ 0.25 Tc 26.429 0 Td (e9)Tj 0 Tc 1.229 0 Td (.9\).)Tj 7.9995 0 0 7.9995 237.5854 436.7738 Tm (Unfortunately)Tj 0.5506 Tc 6.186 0 Td (,t)Tj 0 Tc 1.127 0 Td [(he )-301(term)]TJ /T1_2 1 Tf 4.245 0 Td (stop)Tj /T1_0 1 Tf 2.217 0 Td [(has )-301(dif)18(fer)18(ent )-301(meanings.)-800(When )-301(discussing )-301(job)]TJ -13.774 -1.25 Td [(contr)18(ol )-69(and )-69(signals, )-69(we )-69(talk )-69(about )-69(stopping )-69(and )-69(continuing )-69(jobs.)-569(The )-69(terminal)]TJ 0 -1.25 TD (driver)Tj 0.4299 Tc 2.662 0 Td (,h)Tj 0 Tc 1.262 0 Td (owever)Tj 0.4299 Tc 3.224 0 Td (,h)Tj 0 Tc 1.262 0 Td [(as )-180(historically )-180(used )-180(the )-180(term)]TJ /T1_2 1 Tf 13.597 0 Td (stop)Tj /T1_0 1 Tf 2.096 0 Td [(to )-180(r)18(efer )-180(to )-180(stopping )-180(and)]TJ -24.103 -1.25 Td [(starting )-273(the )-273(terminal )-273(output )-273(using )-273(the )-273(Contr)20(ol)]TJ 21.896 0.09 Td (-)Tj 0.5228 Tc 0.333 -0.09 Td (Sa)Tj 0 Tc 1.548 0 Td [(nd )-273(Contr)18(ol)]TJ 5.093 0.09 Td (-)Tj 0.5228 Tc 0.333 -0.09 Td (Qc)Tj 0 Tc 1.753 0 Td (haracters.)Tj -30.955 -1.25 Td [(Ther)18(efor)18(e, )-94(the )-94(terminal )-94(driver )-94(calls )-94(the )-94(character )-94(that )-94(generates )-94(the )-94(interactive)]TJ T* (stop signal the suspend character)Tj 0.25 Tc 14.643 0 Td (,n)Tj 0 Tc 1.082 0 Td [(ot the stop character)74(.)]TJ /TT0 1 Tf 9.9994 0 0 9.9994 129.5921 365.7781 Tm (SIGTTIN)Tj /T1_0 1 Tf 6.582 0 Td [(This )-260(signal )-260(is )-260(generated )-260(by )-260(the )-260(terminal )-260(driver )-260(when )-260(a )-260(pr)18(ocess )-260(in )-260(a)]TJ 0 -1.2 TD [(backgr)18(ound )-233(pr)18(ocess )-233(gr)18(oup )-233(tries )-233(to )-233(r)18(ead )-233(fr)18(om )-233(its )-233(contr)16(olling )-233(terminal.)]TJ 0 -1.2 Td [(\(Refer )-104(to )-104(the )-104(discussion )-104(of )-104(this )-104(topic )-104(in )-104(Section )-104(9.8.\))-600(As )-103(special )-103(cases, )-103(if)]TJ T* [(either )-22(\(a\) )-22(the )-22(r)18(eading )-22(pr)19(ocess )-22(is )-22(ignoring )-22(or )-22(blocking )-22(this )-22(signal )-22(or )-22(\(b\) )-22(the)]TJ T* [(pr)18(ocess )-88(gr)18(oup )-88(of )-88(the )-88(r)18(eading )-88(pr)19(ocess )-88(is )-88(orphaned, )-88(then )-88(the )-88(signal )-88(is )-88(not)]TJ 0 -1.2 Td [(generated; instead, the r)18(ead operation fails with)]TJ /TT0 1 Tf 21.362 0 Td (errno)Tj /T1_0 1 Tf 3.25 0 Td (set to)Tj /TT0 1 Tf 2.601 0 Td (EIO)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf -33.795 -1.84 Td (SIGTTOU)Tj /T1_0 1 Tf 6.582 0 Td [(This )-260(signal )-260(is )-260(generated )-260(by )-260(the )-260(terminal )-260(driver )-260(when )-260(a )-260(pr)20(ocess )-260(in )-260(a)]TJ T* [(backgr)18(ound )-26(pr)18(ocess )-26(gr)18(oup )-26(tries )-26(to )-26(write )-26(to )-26(its )-26(contr)18(olling )-26(terminal.)-531(\(This)]TJ -0 -1.2 Td [(is )-162(discussed )-162(in )-162(Section )-162(9.8.\))-662(Unlike )-162(the )-162(case )-162(with )-162(backgr)20(ound )-162(r)18(eads, )-162(a)]TJ T* [(pr)18(ocess )-425(can )-425(choose )-425(to )-425(allow )-425(backgr)18(ound )-425(writes )-425(to )-425(the )-425(contr)19(olling)]TJ 0 -1.2 Td [(terminal. )-250(W)]TJ 0.25 Tc 5.405 0 Td (ed)Tj 0 Tc 1.34 0 Td (escribe how to modify this option in Chapter 18.)Tj -6.745 -1.8 Td [(If )-249(backgr)18(ound )-249(writes )-249(ar)]TJ 0.4992 Tc 11.122 0 Td (en)Tj 0 Tc 1.56 0 Td [(ot )-249(allowed, )-249(then )-249(like )-249(the)]TJ /TT0 1 Tf 12.143 0 Td (SIGTTIN)Tj /T1_0 1 Tf 4.699 0 Td (signal,)Tj -29.524 -1.2 Td (ther)Tj 0.293 Tc 1.764 0 Td (ea)Tj -0.018 Tc 1.272 0 Td [(re )-79(t)]TJ 0 Tc 1.475 0 Td [(wo )-43(special )-43(cases: )-43(if )-43(either )-43(\(a\) )-43(the )-43(writing )-43(pr)18(ocess )-43(is )-43(ignoring )-43(or)]TJ -4.511 -1.2 Td [(blocking )-188(this )-188(signal )-188(or )-188(\(b\) )-188(the )-188(pr)18(ocess )-188(gr)18(oup )-188(of )-188(the )-188(writing )-188(pr)18(ocess )-188(is)]TJ T* [(orphaned, )-110(then )-110(the )-110(signal )-110(is )-110(not )-110(generated; )-110(instead, )-110(the )-110(write )-110(operation)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(turns an err)18(or with)]TJ /TT0 1 Tf 8.637 0 Td (errno)Tj /T1_0 1 Tf 3.25 0 Td (set to)Tj /TT0 1 Tf 2.601 0 Td (EIO)Tj /T1_0 1 Tf (.)Tj -15.344 -1.8 Td [(Regar)18(dless )-132(of )-132(whether )-132(backgr)18(ound )-132(writes )-132(ar)]TJ 0.3818 Tc 20.227 0 Td (ea)Tj 0 Tc 1.361 0 Td [(llowed, )-132(certain )-132(terminal)]TJ -21.588 -1.2 Td [(operations )-184(\(other )-184(than )-184(writing\) )-184(can )-184(also )-184(generate )-184(the)]TJ /TT0 1 Tf 24.89 0 Td (SIGTTOU)Tj /T1_0 1 Tf 4.634 0 Td (signal.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47402 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(9.10)]TJ 31.685 0 Td [(Orphaned )-250(Pr)18(ocess )-250(Gr)18(oups)]TJ /T1_1 1 Tf 14.148 0 Td (309)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 0.883 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (\245W)Tj 0 Tc 2.489 0 Td [(hen )-48(the )-48(par)18(ent )-48(terminates, )-48(the )-48(child )-48(is )-48(orphaned, )-48(so )-48(the )-48(child\325s )-48(par)18(ent )-48(pr)18(ocess)]TJ -1 -1.2 Td (ID becomes 1, which is the)Tj /TT0 1 Tf 12.004 0 Td (init)Tj /T1_0 1 Tf 2.65 0 Td [(pr)18(ocess ID.)]TJ 0.883 Tc -16.143 -1.72 Td (\245A)Tj 0.4869 Tc 2.267 0 Td (tt)Tj 0 Tc 1.139 0 Td [(his )-237(point, )-237(the )-237(child )-237(is )-237(now )-237(a )-237(member )-237(of )-237(an)]TJ /T1_2 1 Tf 21.178 0 Td [(orphaned )-237(pr)18(ocess )-237(gr)18(oup)]TJ /T1_0 1 Tf 0.7368 Tc (.T)Tj 0 Tc 11.555 0 Td (he)Tj -34.65 -1.2 Td [(POSIX.1 )-91(de\336nition )-91(of )-91(an )-91(orphaned )-91(pr)18(ocess )-91(gr)17(oup )-91(is )-91(one )-91(in )-91(which )-91(the )-91(par)18(ent )-91(of)]TJ 0 -1.2 TD [(every )-93(member )-93(is )-93(either )-93(itself )-93(a )-93(member )-93(of )-93(the )-93(gr)18(oup )-93(or )-93(is )-93(not )-93(a )-93(member )-93(of )-93(the)]TJ T* [(gr)18(oup\325s )-187(session.)-687(Another )-187(way )-187(of )-187(saying )-187(this )-187(is )-187(that )-187(the )-187(pr)16(ocess )-187(gr)18(oup )-187(is )-187(not)]TJ 0 -1.2 Td [(orphaned )-118(as )-118(long )-118(as )-118(a )-118(pr)17(ocess )-118(in )-118(the )-118(gr)18(oup )-118(has )-118(a )-118(par)18(ent )-118(in )-118(a )-118(dif)17(fer)18(ent )-118(pr)18(ocess)]TJ 0 -1.2 Td [(gr)18(oup )-91(but )-91(in )-91(the )-91(same )-91(session.)-593(If )-91(the )-91(pr)18(ocess )-91(gr)18(oup )-91(is )-91(not )-91(orphaned, )-91(ther)15(e)-341(is)-341(a)]TJ 0 -1.2 Td [(chance )-153(that )-153(one )-153(of )-153(those )-153(par)18(ents )-153(in )-153(a )-153(dif)18(fer)18(ent )-153(pr)18(ocess )-153(gr)18(oup )-153(but )-153(in )-153(the )-153(same)]TJ -0 -1.2 Td [(session )-53(will )-53(r)18(estart )-53(a )-53(stopped )-53(pr)18(ocess )-53(in )-53(the )-53(pr)20(ocess )-53(gr)18(oup )-53(that )-53(is )-53(not )-53(orphaned.)]TJ T* [(Her)18(e, )-129(the )-129(par)18(ent )-129(of )-129(every )-129(pr)18(ocess )-129(in )-129(the )-129(gr)18(oup )-129(\(e.g., )-129(pr)13(ocess )-129(1 )-129(is )-129(the )-129(par)18(ent )-129(of)]TJ 0 -1.2 Td [(pr)18(ocess 6100\) belongs to another session.)]TJ 0.883 Tc -1.489 -1.72 Td (\245S)Tj 0 Tc 2.014 0 Td [(ince )-320(the )-320(pr)18(ocess )-320(gr)18(oup )-320(is )-320(orphaned )-320(when )-320(the )-320(par)18(ent )-320(terminates, )-320(and )-320(the)]TJ -0.525 -1.2 Td [(pr)18(ocess )-2(gr)18(oup )-2(contains )-2(a )-2(stopped )-2(pr)18(ocess, )-2(POSIX.1 )-2(r)19(equir)18(es )-2(that )-2(every )-2(pr)18(ocess )-2(in)]TJ 0 -1.2 Td [(the )-391(newly )-391(orphaned )-391(pr)18(ocess )-391(gr)18(oup )-391(be )-391(sent )-391(the )-391(hang-up )-391(signal )-391(\()]TJ /TT0 1 Tf 31.778 0 Td (SIGHUP)Tj /T1_0 1 Tf (\))Tj -31.778 -1.2 Td (followed by the continue signal \()Tj /TT0 1 Tf (SIGCONT)Tj /T1_0 1 Tf (\).)Tj 0.883 Tc -1.489 -1.72 Td (\245T)Tj 0 Tc 2.102 0 Td [(his )-82(causes )-82(the )-82(child )-82(to )-82(be )-82(continued, )-82(after )-82(pr)18(ocessing )-82(the )-82(hang-up )-82(signal.)-582(The)]TJ -0.613 -1.2 Td [(default )-90(action )-90(for )-90(the )-90(hang-up )-90(signal )-90(is )-90(to )-90(terminate )-90(the )-90(pr)18(ocess, )-90(so )-90(we )-90(have )-90(to)]TJ T* [(pr)18(ovide )-49(a )-49(signal )-49(handler )-49(to )-49(catch )-49(the )-49(signal.)]TJ -0.092 Tc 20.146 0 Td [(We )-233(t)]TJ 0 Tc 2.012 0 Td [(her)18(efor)]TJ 0.2991 Tc 3.173 0 Td (ee)Tj 0 Tc 1.257 0 Td [(xpect )-49(the)]TJ /TT0 1 Tf 4.351 0 Td (printf)Tj /T1_0 1 Tf 3.899 0 Td (in)Tj -34.838 -1.2 Td (the)Tj /TT0 1 Tf 1.637 0 Td (sig_hup)Tj /T1_0 1 Tf 4.45 0 Td (function to appear befor)Tj 0.25 Tc 10.693 0 Td (et)Tj 0 Tc 1.055 0 Td (he)Tj /TT0 1 Tf 1.311 0 Td (printf)Tj /T1_0 1 Tf 3.85 0 Td (in the)Tj /TT0 1 Tf 2.76 0 Td (pr_ids)Tj /T1_0 1 Tf 3.85 0 Td (function.)Tj -32.895 -2.4 Td [(Her)18(e)-250(is)-250(the output fr)18(om the pr)18(ogram shown in Figur)]TJ 0.25 Tc 23.132 0 Td (e9)Tj 0 Tc 1.229 0 Td (.13:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.592 381.4669 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (parent: pid = 6099, ppid = 2837, pgrp = 6099, tpgrp = 6099)Tj 0 -1.189 TD (child: pid = 6100, ppid = 6099, pgrp = 6099, tpgrp = 6099)Tj 0.6 Tc T* ($S)Tj 0 Tc 1.8 0 Td (IGHUP received, pid = 6100)Tj -1.8 -1.189 Td (child: pid = 6100, ppid = 1, pgrp = 6099, tpgrp = 2837)Tj T* (read error 5 on controlling TTY)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5931 306.7612 Tm [(Note )-388(that )-388(our )-388(shell )-388(pr)18(ompt )-388(appears )-388(with )-388(the )-388(output )-388(fr)19(om )-388(the )-388(child, )-388(since )-388(two)]TJ 0 -1.2 TD [(pr)18(ocesses )167(\321 )167(our)-379(login )-129(shell )-129(and )-129(the )-129(child)]TJ 0.0833 Tc 18.518 0 Td (\321a)Tj -0.018 Tc 1.583 0 Td [(re )-165(w)]TJ 0 Tc 2.069 0 Td [(riting )-129(to )-129(the )-129(terminal.)-629(As )-129(we )-129(expect,)]TJ -22.17 -1.2 Td [(the par)18(ent pr)18(ocess ID of the child has become 1.)]TJ 1.8 -1.2 Td [(After )-126(calling)]TJ /TT0 1 Tf 6.017 0 Td (pr_ids)Tj /T1_0 1 Tf 3.976 0 Td [(in )-126(the )-126(child, )-126(the )-126(pr)18(ogram )-126(tries )-126(to )-126(r)18(ead )-126(fr)21(om )-126(standar)]TJ 0.3757 Tc 23.567 0 Td (di)Tj 0 Tc 1.278 0 Td (nput.)Tj -36.638 -1.2 Td [(As )-10(we )-10(saw )-10(earlier )-10(in )-10(this )-10(chapter)]TJ 0.26 Tc 14.412 0 Td (,w)Tj 0 Tc 1.344 0 Td [(hen )-10(a )-10(pr)18(ocess )-10(in )-10(a )-10(backgr)18(ound )-10(pr)18(ocess )-10(gr)18(oup )-10(tries )-10(to)]TJ -0.018 Tc -15.756 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ad )-152(fr)18(om )-152(its )-152(contr)18(olling )-152(terminal,)]TJ /TT0 1 Tf 15.128 0 Td (SIGTTIN)Tj /T1_0 1 Tf 4.602 0 Td [(is )-152(generated )-152(for )-152(the )-152(backgr)18(ound )-152(pr)20(ocess)]TJ -20.586 -1.2 Td [(gr)18(oup. )-308(But)-309(her)18(e)-308(we)-308(h)-1(ave )-58(an )-58(orphaned )-58(pr)18(ocess )-58(gr)18(oup; )-58(if )-58(the )-58(kernel )-58(wer)15(e)-308(to)-308(s)-1(top )-58(it )-58(with)]TJ -0 -1.2 Td [(this )-213(signal, )-213(the )-213(pr)19(ocesses )-213(in )-213(the )-213(pr)18(ocess )-213(gr)18(oup )-213(would )-213(pr)18(obably )-213(never )-213(be )-213(continued.)]TJ T* [(POSIX.1 )-171(speci\336es )-171(that )-171(the)]TJ /TT0 1 Tf 12.219 0 Td (read)Tj /T1_0 1 Tf 2.821 0 Td [(is )-170(to )-170(r)18(eturn )-170(an )-170(err)18(or )-170(with)]TJ /TT0 1 Tf 12.179 0 Td (errno)Tj /T1_0 1 Tf 3.421 0 Td [(set )-170(to)]TJ /TT0 1 Tf 2.942 0 Td (EIO)Tj /T1_0 1 Tf 2.221 0 Td (\(whose)Tj -35.802 -1.2 Td (value is 5 on this system\) in this situation.)Tj 1.8 -1.2 Td (Finally)Tj 0.4105 Tc 2.956 0 Td (,n)Tj 0 Tc 1.242 0 Td [(ote )-160(that )-160(our )-160(child )-160(was )-160(placed )-160(in )-160(a )-160(backgr)14(ound )-161(pr)18(ocess )-161(gr)18(oup )-161(when )-161(the)]TJ -5.998 -1.2 Td [(par)18(ent terminated, since the par)18(ent was executed as a for)18(egr)18(ound job by the shell.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1748.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9988 0 0 9.9988 147.5823 150.7619 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ll )-42(see )-42(another )-42(example )-42(of )-42(orphaned )-42(pr)18(ocess )-42(gr)17(oups )-42(in )-42(Section )-42(19.5 )-42(with )-42(the)]TJ /TT0 1 Tf 34.013 0 Td (pty)Tj /T1_0 1 Tf -37.2 -1.2 Td [(pr)18(ogram.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47403 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (306)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Relationships)]TJ 39.241 0 Td [(Chapter )-250(9)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Since )-91(the )-91(last )-91(pr)18(ocess )-91(in )-91(the )-91(pipeline )-91(is )-91(the )-91(child )-91(of )-91(the )-91(login )-91(shell, )-91(the )-91(shell )-91(is )-91(noti\336ed)]TJ 0 -1.2 TD [(when that pr)18(ocess \()]TJ /TT0 1 Tf (cat2)Tj /T1_1 1 Tf 0.25 Tc (\)t)Tj 0 Tc 11.898 0 Td (erminates.)Tj -10.098 -1.2 Td [(Now )-104(let\325s )-104(examine )-104(the )-104(same )-104(examples )-104(using )-104(a )-104(job-contr)17(ol )-104(shell )-104(r)8(unning )-104(on )-104(Linux.)]TJ -1.8 -1.2 Td [(This )-123(shows )-123(the )-123(way )-123(these )-123(shells )-123(handle )-123(backgr)19(ound )-123(jobs.)]TJ -0.092 Tc 26.764 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-123(use )-123(the )-123(Bourne-again)]TJ -28.151 -1.2 Td [(shell in this example; the r)18(esults with other job-contr)18(ol shells ar)]TJ 0.25 Tc 27.88 0 Td (ea)Tj 0 Tc 1.229 0 Td (lmost identical.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5905 605.3336 Tm (ps -o pid,ppid,pgid,sid,tpgid,comm)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5916 588.4045 Tm (gives us)Tj /TT0 1 Tf 8.9995 0 0 8.9995 158.3899 572.7757 Tm [(PID )-600(PPID )-600(PGID)-1800(SID TPGID COMMAND)]TJ -0.6 -1.189 Td [(2837 )-600(2818 )-600(2837 )-600(2837 )-600(5796)-600(bash)]TJ /TT1 1 Tf 0 -1.189 TD (5796)Tj /TT0 1 Tf 3.6 0 Td (2837)Tj /TT1 1 Tf 3.6 0 Td (5796)Tj /TT0 1 Tf 3.6 0 Td [(2837 )-600(5796)-600(ps)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5916 534.4479 Tm [(\(Starting )-289(with )-289(this )-289(example, )-289(we )-289(show )-289(the )-289(for)21(egr)18(ound )-289(pr)18(ocess )-289(gr)18(oup )-289(in )-289(a)]TJ /TT1 1 Tf 35.4 0 Td (bolder)Tj -35.4 -1.2 Td (font)Tj /T1_1 1 Tf [(.\) )-694(W)]TJ 0.6936 Tc 4.835 0 Td (ei)Tj 0 Tc 1.464 0 Td [(mmediately )-444(see )-444(a )-444(dif)19(fer)18(ence )-443(fr)18(om )-443(our )-443(Bourne )-443(shell )-443(example.)-946(The)]TJ -6.298 -1.2 Td [(Bourne-again )-165(shell )-165(places )-165(the )-165(for)19(egr)18(ound )-165(job )-165(\()]TJ /TT0 1 Tf (ps)Tj /T1_1 1 Tf 0.4148 Tc (\)i)Tj 0 Tc 23.575 0 Td [(nto )-165(its )-165(own )-165(pr)18(ocess )-165(gr)18(oup)]TJ 12.509 0.04 Td (\()Tj 0.333 -0.04 Td (5796)Tj 2 0.04 Td (\))Tj 0.333 -0.04 Td (.)Tj -38.75 -1.2 Td (The)Tj /TT0 1 Tf 1.925 0 Td (ps)Tj /T1_1 1 Tf 1.451 0 Td [(command )-1(is )-1(the )-1(pr)18(ocess )-1(gr)18(oup )-1(leader )-1(and )-1(the )-1(only )-1(pr)18(ocess )-1(in )-1(this )-1(pr)18(ocess )-1(gr)15(oup.)]TJ -3.376 -1.2 Td [(Furthermor)18(e, )-288(this )-288(pr)18(ocess )-288(gr)18(oup )-288(is )-288(the )-288(for)17(egr)18(ound )-288(pr)18(ocess )-288(gr)18(oup, )-288(since )-288(it )-288(has )-288(the)]TJ 0 -1.2 TD [(contr)18(olling )-268(terminal.)-768(Our )-268(login )-268(shell )-268(is )-268(a )-268(backgr)16(ound )-268(pr)18(ocess )-268(gr)18(oup )-268(while )-268(the)]TJ /TT0 1 Tf 37.8 0 Td (ps)Tj /T1_1 1 Tf -37.8 -1.2 Td [(command )-306(executes.)-806(Note, )-306(however)]TJ 0.5564 Tc 16.606 0 Td (,t)Tj 0 Tc 1.132 0 Td [(hat )-306(both )-306(pr)17(ocess )-306(gr)18(oups, )-306(2837 )-306(and )-306(5796, )-306(ar)16(e)]TJ -17.739 -1.2 Td [(members )-46(of )-46(the )-46(same )-46(session.)-546(Indeed, )-46(we\325ll )-46(see )-46(that )-46(the )-46(session )-46(never )-46(changes )-46(thr)18(ough)]TJ T* (our examples in this section.)Tj 1.8 -1.2 Td [(Executing this pr)18(ocess in the backgr)18(ound,)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5899 410.8252 Tm (ps -o pid,ppid,pgid,sid,tpgid,comm &)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.591 393.8962 Tm (gives us)Tj /TT0 1 Tf 8.9995 0 0 8.9995 158.3893 378.267 Tm [(PID )-600(PPID )-600(PGID)-1800(SID TPGID COMMAND)]TJ /TT1 1 Tf -0.6 -1.189 Td (2837)Tj /TT0 1 Tf 3.6 0 Td (2818)Tj /TT1 1 Tf 3.6 0 Td (2837)Tj /TT0 1 Tf 3.6 0 Td [(2837 )-600(2837)-600(bash)]TJ -10.8 -1.189 Td [(5797 )-600(2837 )-600(5797 )-600(2837 )-600(2837)-600(ps)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.591 339.9396 Tm [(Again, )-58(the)]TJ /TT0 1 Tf 4.96 0 Td (ps)Tj /T1_1 1 Tf 1.508 0 Td [(command )-58(is )-58(placed )-58(into )-58(its )-58(own )-58(pr)18(ocess )-58(gr)18(oup, )-58(but )-58(this )-58(time )-58(the )-58(pr)14(ocess)]TJ -6.469 -1.2 Td [(gr)18(oup)]TJ 3.097 0.04 Td (\()Tj 0.333 -0.04 Td (5797)Tj 2 0.04 Td (\))Tj 0.747 -0.04 Td [(is )-164(no )-164(longer )-164(the )-164(for)20(egr)18(ound )-163(pr)18(ocess )-163(gr)17(oup )167(\321 )167(it)-414(is )-163(a )-163(backgr)18(ound )-163(pr)16(ocess)]TJ -6.176 -1.2 Td [(gr)18(oup. )-430(The)-430(TPGID )-180(of )-180(2837 )-180(indicates )-180(that )-180(the )-180(for)17(egr)18(ound )-180(pr)18(ocess )-180(gr)18(oup )-180(is )-180(our )-180(login)]TJ -0 -1.2 Td (shell.)Tj 1.8 -1.2 Td [(Executing two pr)18(ocesses in a pipeline, as in)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5893 276.3133 Tm (ps -o pid,ppid,pgid,sid,tpgid,comm | cat1)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5904 259.3842 Tm (gives us)Tj /TT0 1 Tf 8.9995 0 0 8.9995 158.3887 243.7551 Tm [(PID )-600(PPID )-600(PGID)-1800(SID TPGID COMMAND)]TJ -0.6 -1.189 Td [(2837 )-600(2818 )-600(2837 )-600(2837 )-600(5799)-600(bash)]TJ /TT1 1 Tf 0 -1.189 TD (5799)Tj /TT0 1 Tf 3.6 0 Td (2837)Tj /TT1 1 Tf 3.6 0 Td (5799)Tj /TT0 1 Tf 3.6 0 Td [(2837 )-600(5799)-600(ps)]TJ /TT1 1 Tf -10.8 -1.189 Td (5800)Tj /TT0 1 Tf 3.6 0 Td (2837)Tj /TT1 1 Tf 3.6 0 Td (5799)Tj /TT0 1 Tf 3.6 0 Td [(2837 )-600(5799)-600(cat1)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5904 194.7279 Tm [(Both )-13(pr)18(ocesses,)]TJ /TT0 1 Tf 7.039 0 Td (ps)Tj /T1_1 1 Tf 1.463 0 Td (and)Tj /TT0 1 Tf 1.956 0 Td (cat1)Tj /T1_1 1 Tf 0.2631 Tc (,a)Tj -0.018 Tc 3.413 0 Td [(re )-49(p)]TJ 0 Tc 1.72 0 Td [(laced )-13(into )-13(a )-13(new )-13(pr)18(ocess )-13(gr)18(oup)]TJ 14.022 0.04 Td (\()Tj 0.333 -0.04 Td (5799)Tj 2 0.04 Td (\))Tj 0.2631 Tc 0.333 -0.04 Td (,a)Tj 0 Tc 1.013 0 Td [(nd )-13(this )-13(is )-13(the)]TJ -33.293 -1.2 Td [(for)18(egr)18(ound )-164(pr)18(ocess )-164(gr)18(oup. )-414(W)]TJ 0.4138 Tc 13.637 0 Td (ec)Tj 0 Tc 1.337 0 Td [(an )-164(also )-164(see )-164(another )-164(dif)19(fer)18(ence )-164(between )-164(this )-164(example)]TJ -14.974 -1.2 Td [(and )-83(the )-83(similar )-83(Bourne )-83(shell )-83(example.)-581(The )-83(Bourne )-83(shell )-83(cr)18(eated )-83(the )-83(last )-83(pr)18(ocess )-83(in )-83(the)]TJ 0 -1.2 TD [(pipeline )-262(\336rst, )-262(and )-262(this )-262(\336nal )-262(pr)18(ocess )-262(was )-262(the )-262(par)18(ent )-262(of )-262(the )-262(\336rst )-262(pr)16(ocess. )-512(Her)18(e, )-262(the)]TJ T* [(Bourne-again )-150(shell )-150(is )-150(the )-150(par)18(ent )-150(of )-150(both )-150(pr)19(ocesses. )-400(If)-400(we )-150(execute )-150(this )-150(pipeline )-150(in )-150(the)]TJ 0 -1.2 Td [(backgr)18(ound,)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47404 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (304)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Relationships)]TJ 39.241 0 Td [(Chapter )-250(9)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(This )-36(shell )-36(doesn\325t )-36(know )-36(about )-36(job )-36(contr)18(ol, )-36(so )-36(the )-36(backgr)18(ound )-36(job )-36(is )-36(not )-36(put )-36(into )-36(its )-36(own)]TJ 0 -1.2 TD [(pr)18(ocess gr)18(oup and the contr)18(olling terminal isn\325t taken away fr)18(om the backgr)18(ound job.)]TJ 1.8 -1.2 Td [(Now let\325s look at how the Bourne shell handles a pipeline.)-500(When we execute)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 629.3321 Tm (ps -o pid,ppid,pgid,sid,comm | cat1)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 612.4031 Tm (the output is)Tj /TT0 1 Tf 8.9995 0 0 8.9995 158.3905 596.7743 Tm [(PID )-600(PPID )-600(PGID)-1800(SID COMMAND)]TJ 0 -1.189 TD [(949 )-1200(947 )-1200(949 )-1200(949)-600(sh)]TJ -0.6 -1.189 Td [(1823 )-1200(949 )-1200(949 )-1200(949)-600(cat1)]TJ T* [(1824 )-600(1823)-1800(949 )-1200(949)-600(ps)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 547.7471 Tm [(\(The )-61(pr)18(ogram)]TJ /TT0 1 Tf 6.487 0 Td (cat1)Tj /T1_1 1 Tf 2.711 0 Td [(is )-61(just )-61(a )-61(copy )-61(of )-61(the )-61(standar)20(d)]TJ /TT0 1 Tf 13.321 0 Td (cat)Tj /T1_1 1 Tf 2.111 0 Td [(pr)18(ogram, )-61(with )-61(a )-61(dif)19(fer)18(ent )-61(name.)]TJ -0.092 Tc -24.629 -1.2 Td [(We )-215(h)]TJ 0 Tc 2.25 0 Td [(ave )-31(another )-31(copy )-31(of)]TJ /TT0 1 Tf 9.104 0 Td (cat)Tj /T1_1 1 Tf 2.081 0 Td [(with )-31(the )-31(name)]TJ /TT0 1 Tf 6.707 0 Td (cat2)Tj /T1_1 1 Tf 0.281 Tc (,w)Tj 0 Tc 3.765 0 Td [(hich )-31(we\325ll )-31(use )-31(later )-31(in )-31(this )-31(section.)]TJ -23.907 -1.2 Td [(When )-80(we )-80(have )-80(two )-80(copies )-80(of)]TJ /TT0 1 Tf 13.432 0 Td (cat)Tj /T1_1 1 Tf 2.13 0 Td [(in )-80(a )-80(pipeline, )-80(the )-80(dif)18(fer)18(ent )-80(names )-80(let )-80(us )-80(dif)18(fer)18(entiate)]TJ -15.562 -1.2 Td [(between )-29(the )-29(two )-29(pr)19(ograms.\) )-279(Note)-278(that )-29(the )-29(last )-29(pr)18(ocess )-29(in )-29(the )-29(pipeline )-29(is )-29(the )-29(child )-29(of )-29(the)]TJ 0 -1.2 TD [(shell )-103(and )-103(that )-103(the )-103(\336rst )-103(pr)18(ocess )-103(in )-103(the )-103(pipeline )-103(is )-103(a )-103(child )-103(of )-103(the )-103(last )-103(pr)19(ocess. )-353(It)-353(appears)]TJ -0 -1.2 Td [(that )-70(the )-70(shell)]TJ /TT0 1 Tf 6.149 0 Td (fork)Tj /T1_1 1 Tf 0.3204 Tc (sac)Tj 0 Tc 4.409 0 Td [(opy )-70(of )-70(itself )-70(and )-70(that )-70(this )-70(copy )-70(then)]TJ /TT0 1 Tf 16.455 0 Td (fork)Tj /T1_1 1 Tf [(s)-320(to)-320(m)-1(ake )-70(each )-70(of )-70(the)]TJ -27.013 -1.2 Td [(pr)18(evious pr)18(ocesses in the pipeline.)]TJ 1.8 -1.2 Td [(If we execute the pipeline in the backgr)18(ound,)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5898 448.123 Tm (ps -o pid,ppid,pgid,sid,comm | cat1 &)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5909 431.1939 Tm [(only )-190(the )-190(pr)18(ocess )-190(IDs )-190(change.)-691(Since )-190(the )-190(shell )-190(doesn\325t )-190(handle )-190(job )-190(contr)18(ol, )-190(the )-190(pr)17(ocess)]TJ T* [(gr)18(oup )-43(ID )-43(of )-43(the )-43(backgr)18(ound )-43(pr)16(ocesses )-43(r)18(emains )-43(949, )-43(as )-43(does )-43(the )-43(pr)18(ocess )-43(gr)18(oup )-43(ID )-43(of )-43(the)]TJ 0 -1.2 Td (session.)Tj 1.8 -1.2 Td [(What )-48(happens )-48(in )-48(this )-48(case )-48(if )-48(a )-48(backgr)20(ound )-48(pr)18(ocess )-48(tries )-48(to )-48(r)18(ead )-48(fr)18(om )-48(its )-48(contr)21(olling)]TJ -1.8 -1.2 Td [(terminal? )-250(For)-250(example, suppose that we execute)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5899 367.5676 Tm (cat > temp.foo &)Tj /T1_1 1 Tf -0.055 Tc 9.9994 0 0 9.9994 129.591 350.639 Tm (Wi)Tj 0 Tc 1.236 0 Td [(th )-225(job )-225(contr)19(ol, )-225(this )-225(is )-225(handled )-225(by )-225(placing )-225(the )-225(backgr)18(ound )-225(job )-225(into )-225(a )-225(backgr)20(ound)]TJ -1.236 -1.2 Td [(pr)18(ocess )-54(gr)18(oup, )-54(which )-54(causes )-54(the )-54(signal)]TJ /TT0 1 Tf 17.69 0 Td (SIGTTIN)Tj /T1_1 1 Tf 4.504 0 Td [(to )-54(be )-54(generated )-54(if )-54(the )-54(backgr)18(ound )-54(job)]TJ -22.194 -1.2 Td [(tries )-45(to )-45(r)18(ead )-45(fr)18(om )-45(the )-45(contr)18(olling )-45(terminal.)-545(The )-45(way )-45(this )-45(is )-45(handled )-45(without )-45(job )-45(contr)18(ol)]TJ T* [(is )-107(that )-107(the )-107(shell )-107(automatically )-107(r)20(edir)18(ects )-107(the )-107(standar)]TJ 0.3567 Tc 22.972 0 Td (di)Tj 0 Tc 1.259 0 Td [(nput )-107(of )-107(a )-107(backgr)18(ound )-107(pr)19(ocess )-107(to)]TJ /TT0 1 Tf -24.231 -1.2 Td (/dev/null)Tj /T1_1 1 Tf [(,)-686(if)-686(t)-1(he )-436(pr)18(ocess )-436(doesn\325t )-436(r)17(edir)18(ect )-436(standar)]TJ 0.6866 Tc 25.025 0 Td (di)Tj 0 Tc 1.589 0 Td [(nput )-437(itself.)]TJ 0.6866 Tc 6.129 0 Td (Ar)Tj 0 Tc 1.842 0 Td [(ead )-437(fr)18(om)]TJ /TT0 1 Tf -34.585 -1.2 Td (/dev/null)Tj /T1_1 1 Tf 5.849 0 Td [(generates )-199(an )-199(end )-199(of )-199(\336le.)-699(This )-199(means )-199(that )-199(our )-199(backgr)14(ound)]TJ /TT0 1 Tf 27.606 0 Td (cat)Tj /T1_1 1 Tf 2.249 0 Td [(pr)18(ocess)]TJ -35.705 -1.2 Td [(immediately r)18(eads an end of \336le and terminates normally)111(.)]TJ 1.8 -1.2 Td [(The )-290(pr)18(evious )-290(paragraph )-290(adequately )-290(handles )-290(the )-290(case )-290(of )-290(a )-290(backgr)18(ound )-290(pr)18(ocess)]TJ -1.8 -1.2 Td [(accessing )-173(the )-173(contr)18(olling )-173(terminal )-173(thr)18(ough )-173(its )-173(standar)]TJ 0.423 Tc 24.581 0 Td (di)Tj 0 Tc 1.325 0 Td [(nput, )-173(but )-173(what )-173(happens )-173(if )-173(a)]TJ -25.906 -1.2 Td [(backgr)18(ound )-370(pr)18(ocess )-370(speci\336cally )-370(opens)]TJ /TT0 1 Tf 18.66 0 Td (/dev/tty)Tj /T1_1 1 Tf 5.42 0 Td [(and )-370(r)18(eads )-370(fr)18(om )-370(the )-370(contr)19(olling)]TJ -24.079 -1.2 Td [(terminal? )-261(The)-260(answer )-11(is )-11(\324)37(\324It )-11(depends,\325)]TJ 0.2606 Tc 16.807 0 Td (\325b)Tj 0 Tc 1.092 0 Td [(ut )-11(the )-11(r)18(esult )-11(is )-11(pr)18(obably )-11(not )-11(what )-11(we )-11(want.)-507(For)]TJ -17.899 -1.2 Td (example,)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.589 203.0177 Tm (crypt < salaries | lpr &)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5901 186.0886 Tm [(is )-310(such )-310(a )-310(pipeline.)]TJ -0.092 Tc 9.624 0 Td [(We )-494(r)]TJ 0 Tc 2.334 0 Td [(un )-310(it )-310(in )-310(the )-310(backgr)18(ound, )-310(but )-310(the)]TJ /TT0 1 Tf 16.431 0 Td (crypt)Tj /T1_1 1 Tf 3.56 0 Td [(pr)18(ogram )-310(opens)]TJ /TT0 1 Tf -31.95 -1.2 Td (/dev/tty)Tj /T1_1 1 Tf 0.465 Tc (,c)Tj 0 Tc 5.959 0 Td [(hanges )-215(the )-215(terminal )-215(characteristics )-215(\(to )-215(disable )-215(echoing\), )-215(r)18(eads )-215(fr)18(om )-215(the)]TJ -5.959 -1.2 Td [(device, )-305(and )-305(r)18(esets )-305(the )-305(terminal )-305(characteristics.)-805(When )-305(we )-305(execute )-305(this )-305(backgr)21(ound)]TJ T* [(pipeline, )-83(the )-83(pr)18(ompt)]TJ /TT0 1 Tf 9.584 0 Td (Password:)Tj /T1_1 1 Tf 5.733 0 Td [(fr)18(om)]TJ /TT0 1 Tf 2.472 0 Td (crypt)Tj /T1_1 1 Tf 3.333 0 Td [(is )-83(printed )-83(on )-83(the )-83(terminal, )-83(but )-83(what )-83(we)]TJ -21.122 -1.2 Td [(enter )-55(\(the )-55(encryption )-55(passwor)18(d\) )-55(is )-55(r)18(ead )-55(by )-55(the )-55(shell, )-55(which )-55(tries )-55(to )-55(execute )-55(a )-55(command)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47405 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (292)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Relationships)]TJ 39.241 0 Td [(Chapter )-250(9)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (The)Tj /TT0 1 Tf 2.136 0 Td (telnetd)Tj /T1_1 1 Tf 4.662 0 Td [(pr)18(ocess )-212(then )-212(opens )-212(a )-212(pseudo )-212(terminal )-212(device )-212(and )-212(splits )-212(into )-212(two)]TJ -8.599 -1.2 Td [(pr)18(ocesses )-281(using)]TJ /TT0 1 Tf 7.716 0 Td (fork)Tj /T1_1 1 Tf 0.781 Tc (.T)Tj 0 Tc 4.044 0 Td [(he )-281(par)18(ent )-281(handles )-281(the )-281(communication )-281(acr)18(oss )-281(the )-281(network)]TJ -11.76 -1.2 Td [(connection, )-167(and )-167(the )-167(child )-167(does )-167(an)]TJ /TT0 1 Tf 16.018 0 Td (exec)Tj /T1_1 1 Tf 2.817 0 Td [(of )-167(the)]TJ /TT0 1 Tf 3.101 0 Td (login)Tj /T1_1 1 Tf 3.417 0 Td [(pr)18(ogram. )-417(The)-418(par)18(ent )-167(and )-167(the)]TJ -25.353 -1.2 Td [(child )-39(ar)]TJ 0.2888 Tc 3.385 0 Td (ec)Tj 0 Tc 1.212 0 Td [(onnected )-39(thr)18(ough )-39(the )-39(pseudo )-39(terminal.)-538(Befor)]TJ 0.2889 Tc 20.309 0 Td (ed)Tj 0 Tc 1.379 0 Td [(oing )-39(the)]TJ /TT0 1 Tf 3.94 0 Td (exec)Tj /T1_1 1 Tf 0.2889 Tc (,t)Tj 0 Tc 3.265 0 Td [(he )-39(child )-39(sets)]TJ -33.489 -1.2 Td [(up )-173(\336le )-173(descriptors )-173(0, )-173(1, )-173(and )-173(2 )-173(to )-173(the )-173(pseudo )-173(terminal.)-673(If )-173(we )-173(log )-173(in )-173(corr)11(ectly)111(,)]TJ /TT0 1 Tf 36 0 Td (login)Tj /T1_1 1 Tf -36 -1.2 Td [(performs )-88(the )-88(same )-88(steps )-88(we )-88(described )-88(in )-88(Section )-88(9.2: )-88(it )-88(changes )-88(to )-88(our )-88(home )-88(dir)14(ectory)]TJ 0 -1.2 TD [(and )-175(sets )-175(our )-175(gr)17(oup )-175(IDs, )-175(user )-175(ID, )-175(and )-175(our )-175(initial )-175(envir)17(onment. )-425(Then)]TJ /TT0 1 Tf 31.98 0 Td (login)Tj /T1_1 1 Tf -0.018 Tc 3.425 0 Td (re)Tj 0 Tc 0.856 0 Td (places)Tj -36.261 -1.2 Td [(itself )-159(with )-159(our )-159(login )-159(shell )-159(by )-159(calling)]TJ /TT0 1 Tf 16.983 0 Td (exec)Tj /T1_1 1 Tf 0.6593 Tc (.F)Tj 0 Tc 3.865 0 Td (igur)Tj 0.4093 Tc 1.827 0 Td (e9)Tj 0 Tc 1.388 0 Td [(.5 )-159(shows )-159(the )-159(arrangement )-159(of )-159(the)]TJ -24.064 -1.2 Td [(pr)18(ocesses at this point.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2719.32 5222 612 216 re S Q BT /TT0 1 Tf 7.999 0 0 7.999 292.8968 531.1763 Tm (init)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2719.32 4718 612 216 re S Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 284.1488 480.7535 Tm (login shell)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2719.32 4214 612 216 re S Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 273.4224 435.3355 Tm (pseudo terminal)Tj 0.703 -1.25 Td (device driver)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3295.3201 3818 cm 0 0 m 0 -59.64 -120.89 -108 -270 -108 c -419.11 -108 -540 -59.64 -540 0 c -540 59.64 -419.11 108 -270 108 c -120.89 108 0 59.64 0 0 c h S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 287.5377 384.9245 Tm (user at a)Tj -0.01 -1.25 Td (terminal)Tj ET q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3025.25 5215.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3025.25 5179.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3025.25 5145.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3025.25 5109.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3025.25 5075.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3025.25 5040.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3025.25 5005.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3025.25 4970.25 cm 0 0 m 0 0 l S Q Q q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 302.532 493.4 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3025.3201 4934 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3025.25 5006.25 cm 0 0 m 0 0 l S Q Q q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 302.532 471.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3025.3201 4718 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 302.532 443 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3025.3201 4430 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3025.25 4646.25 cm 0 0 m 0 -144 l S Q Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 308.3654 455.394 Tm (fd 0, 1, 2)Tj ET q 0.099946 0 0 0.099946 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3025.25 4178.25 cm 0 0 m 0 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3025.25 4142.25 cm 0 0 m 0 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3025.25 4106.25 cm 0 0 m 0 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3025.25 4070.25 cm 0 0 m 0 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3025.25 4034.25 cm 0 0 m 0 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3025.25 3998.25 cm 0 0 m 0 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3025.25 3962.25 cm 0 0 m 0 0 l S Q Q q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 302.532 392.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 3025.3201 3926 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3025.25 3998.25 cm 0 0 m 0 0 l S Q Q q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 302.532 421.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 3025.3201 4214 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3025.25 4142.25 cm 0 0 m 0 0 l S Q Q BT /T1_2 1 Tf 7.9942 0 0 7.9942 282.3286 546.6463 Tm [(pr)18(ocess ID 1)]TJ ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3443.6399 5176.6401 cm 0 0 m 0 24.65 -19.99 44.64 -44.64 44.64 c S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3443.25 5176.25 cm 0 0 m 0 -76 l 23 -98 l 1 -121 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3443.25 5055.25 cm 0 0 m 0 -76 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3399 4934 cm 0 0 m 24.65 0 44.64 19.99 44.64 44.64 c S Q Q BT /T1_1 1 Tf 7.9938 0 0 7.9938 348.3961 510.6415 Tm [(thr)18(ough)]TJ /TT0 1 Tf 3.822 0 Td (inetd)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.5 0 Td (telnetd)Tj /T1_1 1 Tf (,)Tj -7.322 -1.25 Td (and)Tj /TT0 1 Tf 1.943 0 Td (login)Tj ET q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3443.6399 4169.3599 cm 0 0 m 0 24.65 -19.99 44.64 -44.64 44.64 c S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3443.25 4169.25 cm 0 0 m 0 -76 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3443.25 4092.25 cm 0 0 m 23 -22 l 1 -45 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3443.25 4047.25 cm 0 0 m 0 -76 l S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3399 3926 cm 0 0 m 24.65 0 44.64 19.99 44.64 44.64 c S Q Q BT /T1_1 1 Tf 7.9933 0 0 7.9933 348.3752 409.8955 Tm [(network connection thr)18(ough)]TJ /TT0 1 Tf 0 -1.25 TD (telnetd)Tj /T1_1 1 Tf 4.45 0 Td (server and)Tj /TT0 1 Tf 4.93 0 Td (telnet)Tj /T1_1 1 Tf 3.85 0 Td (client)Tj /T1_0 1 Tf -33.875 -6.805 Td (Figure 9.5)Tj /T1_1 1 Tf 5.195 0 Td [(Arrangement of pr)18(ocesses after everything is set for a network login)]TJ 9.9916 0 0 9.9916 147.4761 317.933 Tm (Obviously)Tj 0.4304 Tc 4.504 0 Td (,a)Tj 0 Tc [(lot )-180(is )-180(going )-180(on )-180(between )-180(the )-180(pseudo )-180(terminal )-180(device )-180(driver )-180(and )-180(the)]TJ -6.304 -1.2 Td [(actual )-279(user )-279(at )-279(the )-279(terminal.)]TJ -0.092 Tc 13.671 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-279(show )-279(all )-279(the )-279(pr)18(ocesses )-279(involved )-279(in )-279(this )-279(type )-279(of)]TJ -15.057 -1.2 Td (arrangement in Chapter 19 when we talk about pseudo terminals in mor)Tj 0.25 Tc 31.997 0 Td (ed)Tj 0 Tc 1.34 0 Td (etail.)Tj -31.537 -1.2 Td [(The )-152(important )-152(thing )-152(to )-152(understand )-152(is )-152(that )-152(whether )-152(we )-152(log )-152(in )-152(thr)18(ough )-152(a )-152(terminal)]TJ -1.8 -1.2 Td (\(Figur)Tj 0.407 Tc 2.716 0 Td (e9)Tj 0 Tc 1.386 0 Td [(.3\) )-157(or )-157(a )-157(network )-157(\(Figur)]TJ 0.407 Tc 10.586 0 Td (e9)Tj 0 Tc 1.386 0 Td [(.5\), )-157(we )-157(have )-157(a )-157(login )-157(shell )-157(with )-157(its )-157(standar)]TJ 0.407 Tc 19.255 0 Td (di)Tj 0 Tc 1.309 0 Td (nput,)Tj -36.638 -1.2 Td (standar)Tj 0.3277 Tc 3.32 0 Td (do)Tj 0 Tc 1.485 0 Td [(utput, )-78(and )-78(standar)]TJ 0.3277 Tc 8.377 0 Td (de)Tj 0 Tc 1.418 0 Td [(rr)18(or )-78(connected )-78(to )-78(either )-78(a )-78(terminal )-78(device )-78(or )-78(a )-78(pseudo)]TJ -14.6 -1.2 Td [(terminal )-127(device.)]TJ -0.092 Tc 7.87 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-127(see )-127(in )-127(the )-127(coming )-127(sections )-127(that )-127(this )-127(login )-127(shell )-127(is )-127(the )-127(start )-127(of )-127(a)]TJ -9.257 -1.2 Td [(POSIX.1 )-15(session, )-15(and )-15(that )-15(the )-15(terminal )-15(or )-15(pseudo )-15(terminal )-15(is )-15(the )-15(contr)19(olling )-15(terminal )-15(for)]TJ 0 -1.2 TD (the session.)Tj /TT1 1 Tf -3.6 -3.12 Td [(Mac OS X Netw)20(ork Logins)]TJ /T1_1 1 Tf 3.6 -2.4 Td [(Logging )-137(in )-137(to )-137(a )-137(Mac )-137(OS )-137(X )-137(system )-137(over )-137(a )-137(network )-137(is )-137(identical )-137(to )-137(logging )-137(in )-137(to )-137(a )-137(BSD)]TJ T* [(system, )-77(because )-77(Mac )-77(OS )-77(X )-77(is )-77(based )-77(partially )-77(on )-77(Fr)16(eeBSD. )-327(However)74(,)-327(on)-327(Mac )-77(OS )-77(X, )-77(the)]TJ /TT0 1 Tf -0 -1.2 Td (telnet)Tj /T1_1 1 Tf 3.85 0 Td [(daemon is r)8(un fr)18(om)]TJ /TT0 1 Tf 9.027 0 Td (launchd)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47406 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(9.2)]TJ -0.092 Tc 36.381 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(Logins)]TJ /T1_1 1 Tf 8.452 0 Td (287)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(It )-197(is)]TJ /TT0 1 Tf 2.271 0 Td (getty)Tj /T1_0 1 Tf 3.447 0 Td [(that )-197(calls)]TJ /TT0 1 Tf 4.577 0 Td (open)Tj /T1_0 1 Tf 2.847 0 Td [(for )-197(the )-197(terminal )-197(device.)-695(The )-197(terminal )-197(is )-197(opened )-197(for)]TJ -0.018 Tc -14.942 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ading )-100(and )-100(writing.)-599(If )-100(the )-100(device )-100(is )-100(a )-100(modem, )-100(the)]TJ /TT0 1 Tf 22.685 0 Td (open)Tj /T1_0 1 Tf 2.75 0 Td [(may )-100(delay )-100(inside )-100(the )-100(device)]TJ -26.291 -1.2 Td [(driver )-43(until )-43(the )-43(modem )-43(is )-43(dialed )-43(and )-43(the )-43(call )-43(is )-43(answer)22(ed. )-293(Once)-292(the )-43(device )-43(is )-43(open, )-43(\336le)]TJ 0 -1.2 Td [(descriptors )-263(0, )-263(1, )-263(and )-263(2 )-263(ar)]TJ 0.5134 Tc 12.073 0 Td (es)Tj 0 Tc 1.416 0 Td [(et )-263(to )-263(the )-263(device.)-764(Then)]TJ /TT0 1 Tf 11.256 0 Td (getty)Tj /T1_0 1 Tf 3.513 0 Td [(outputs )-263(something )-263(like)]TJ /TT0 1 Tf -28.259 -1.2 Td (login:)Tj /T1_0 1 Tf 4.03 0 Td [(and )-180(waits )-180(for )-180(us )-180(to )-180(enter )-180(our )-180(user )-180(name.)-680(If )-180(the )-180(terminal )-180(supports )-180(multiple)]TJ -4.03 -1.2 Td (speeds,)Tj /TT0 1 Tf 3.64 0 Td (getty)Tj /T1_0 1 Tf 3.372 0 Td [(can )-122(detect )-122(special )-122(characters )-122(that )-122(tell )-122(it )-122(to )-122(change )-122(the )-122(terminal\325s )-122(speed)]TJ -7.013 -1.2 Td [(\(baud )-128(rate\).)-628(Consult )-128(your )-128(UNIX )-128(system )-128(manuals )-128(for )-128(additional )-128(details )-128(on )-128(the)]TJ /TT0 1 Tf 36 0 Td (getty)Tj /T1_0 1 Tf -36 -1.2 Td [(pr)18(ogram and the data \336les \()]TJ /TT0 1 Tf (gettytab)Tj /T1_0 1 Tf 0.25 Tc (\)t)Tj 0 Tc 17.966 0 Td (hat can drive its actions.)Tj -16.166 -1.2 Td [(When )-156(we )-156(enter )-156(our )-156(user )-156(name,)]TJ /TT0 1 Tf 14.793 0 Td (getty)Tj /T1_0 1 Tf [(\325s )-156(job )-156(is )-156(complete, )-156(and )-156(it )-156(then )-156(invokes )-156(the)]TJ /TT0 1 Tf -16.593 -1.2 Td (login)Tj /T1_0 1 Tf 3.25 0 Td [(pr)18(ogram, similar to)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5907 543.1975 Tm (execle\("/bin/login", "login", "-p", username, \(char *\)0, envp\);)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5918 524.1288 Tm (\(Ther)Tj 0.3643 Tc 2.384 0 Td (ec)Tj 0 Tc 1.287 0 Td [(an )-114(be )-114(options )-114(in )-114(the)]TJ /TT0 1 Tf 9.511 0 Td (gettytab)Tj /T1_0 1 Tf 5.164 0 Td [(\336le )-114(to )-114(have )-114(it )-114(invoke )-114(other )-114(pr)16(ograms, )-114(but )-114(the)]TJ -18.347 -1.2 Td [(default )-234(is )-234(the)]TJ /TT0 1 Tf 6.696 0 Td (login)Tj /T1_0 1 Tf 3.484 0 Td [(pr)18(ogram.\))]TJ /TT0 1 Tf 5.175 0 Td (init)Tj /T1_0 1 Tf 2.884 0 Td (invokes)Tj /TT0 1 Tf 3.926 0 Td (getty)Tj /T1_0 1 Tf 3.484 0 Td [(with )-233(an )-233(empty )-233(envir)17(onment;)]TJ /TT0 1 Tf -25.648 -1.2 Td (getty)Tj /T1_0 1 Tf 3.387 0 Td [(cr)18(eates )-137(an )-137(envir)18(onment )-137(for)]TJ /TT0 1 Tf 12.626 0 Td (login)Tj /T1_0 1 Tf 3.387 0 Td (\(the)Tj /TT0 1 Tf 2.107 0 Td (envp)Tj /T1_0 1 Tf 2.787 0 Td [(ar)18(gument\) )-137(with )-137(the )-137(name )-137(of )-137(the)]TJ -24.295 -1.2 Td [(terminal )-86(\(something )-86(like)]TJ /TT0 1 Tf 11.376 0 Td (TERM=foo)Tj /T1_0 1 Tf 0.3365 Tc (,w)Tj 0 Tc 6.221 0 Td (her)Tj 0.3365 Tc 1.438 0 Td (et)Tj 0 Tc 1.141 0 Td [(he )-86(type )-86(of )-86(terminal)]TJ /TT0 1 Tf 8.995 0 Td (foo)Tj /T1_0 1 Tf 2.136 0 Td [(is )-86(taken )-86(fr)18(om )-86(the)]TJ /TT0 1 Tf -31.307 -1.2 Td (gettytab)Tj /T1_0 1 Tf 5.151 0 Td [(\336le\) )-101(and )-101(any )-101(envir)18(onment )-101(strings )-101(that )-101(ar)]TJ 0.3511 Tc 18.447 0 Td (es)Tj 0 Tc 1.254 0 Td [(peci\336ed )-101(in )-101(the)]TJ /TT0 1 Tf 6.823 0 Td (gettytab)Tj /T1_0 1 Tf 0.6011 Tc (.T)Tj 0 Tc 6.264 0 Td (he)Tj /TT0 1 Tf -37.939 -1.2 Td (-p)Tj /T1_0 1 Tf 1.483 0 Td [(\337ag )-33(to)]TJ /TT0 1 Tf 3.101 0 Td (login)Tj /T1_0 1 Tf 3.283 0 Td [(tells )-33(it )-33(to )-33(pr)18(eserve )-33(the )-33(envir)20(onment )-33(that )-33(it )-33(is )-33(passed )-33(and )-33(to )-33(add )-33(to )-33(that)]TJ -7.867 -1.2 Td [(envir)18(onment, )-165(not )-165(r)18(eplace )-165(it.)-667(Figur)]TJ 0.4155 Tc 15.729 0 Td (e9)Tj 0 Tc 1.394 0 Td [(.2 )-165(shows )-165(the )-165(state )-165(of )-165(these )-165(pr)15(ocesses )-166(right )-166(after)]TJ /TT0 1 Tf -17.123 -1.2 Td (login)Tj /T1_0 1 Tf 3.25 0 Td (has been invoked.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2935.32 3953.6 432 216 re S Q BT /TT0 1 Tf 7.999 0 0 7.999 305.4953 404.3515 Tm (init)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2935.32 3521.6 432 216 re S Q BT /TT0 1 Tf 7.9986 0 0 7.9986 305.477 361.135 Tm (init)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2935.32 3089.6 432 216 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 303.0593 317.9237 Tm (getty)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2935.32 2657.6 432 216 re S Q BT /TT0 1 Tf 7.9976 0 0 7.9976 303.0411 274.7176 Tm (login)Tj ET q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 315.132 373.76 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 3151.3201 3737.6001 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3151.25 3953.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3151.25 3899.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3151.25 3845.25 cm 0 0 m 0 -36 l S Q Q BT /TT0 1 Tf 7.9971 0 0 7.9971 317.0178 382.6622 Tm (fork)Tj ET q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 315.132 330.56 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3151.3201 3305.6001 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3151.25 3521.25 cm 0 0 m 0 -144 l S Q Q BT /TT0 1 Tf 7.9966 0 0 7.9966 316.9988 339.4574 Tm (exec)Tj ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 315.132 287.36 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3151.3201 2873.6001 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3151.25 3089.25 cm 0 0 m 0 -144 l S Q Q BT /TT0 1 Tf 7.9962 0 0 7.9962 316.9798 296.2578 Tm (exec)Tj /T1_2 1 Tf -2.75 15.475 Td [(pr)18(ocess ID 1)]TJ ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 277.332 380.96 cm 0 0 m 4.968 5.472 l 6.984 2.448 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 2773.3201 3809.6001 cm 0 0 m 49.68 54.72 l 69.84 24.48 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2989.25 3953.25 cm 0 0 m -30 -20 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2926.25 3912.25 cm 0 0 m -31 -21 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2863.25 3869.25 cm 0 0 m -30 -20 l S Q Q q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 352.932 380.96 cm 0 0 m -6.984 2.52 l -4.968 5.544 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 3529.3201 3809.6001 cm 0 0 m -69.84 25.2 l -49.68 55.44 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3313.25 3953.25 cm 0 0 m 30 -20 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3376.25 3912.25 cm 0 0 m 31 -21 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3439.25 3869.25 cm 0 0 m 30 -20 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3479.6399 4124.96 cm 0 0 m 0 24.65 -19.99 44.64 -44.64 44.64 c S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3479.25 4125.25 cm 0 0 m 0 -41 l 23 -64 l 1 -86 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3479.25 4039.25 cm 0 0 m 0 -40 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3435 3953.6001 cm 0 0 m 24.65 0 44.64 19.99 44.64 44.64 c S Q Q BT /T1_0 1 Tf -0.018 Tc 7.9952 0 0 7.9952 352.0567 414.1514 Tm (re)Tj 0 Tc 0.856 0 Td (ads)Tj /TT0 1 Tf 1.785 0 Td (/etc/ttys)Tj /T1_0 1 Tf (;)Tj /TT0 1 Tf -2.641 -1.25 Td (fork)Tj /T1_0 1 Tf 0.25 Tc (so)Tj 0 Tc 3.62 0 Td (nce per terminal;)Tj -3.62 -1.25 Td [(cr)18(eates empty envir)18(onment)]TJ ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3479.6399 3260.24 cm 0 0 m 0 24.65 -19.99 44.64 -44.64 44.64 c S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3479.25 3260.25 cm 0 0 m 0 -40 l 23 -63 l 1 -85 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3479.25 3175.25 cm 0 0 m 0 -40 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3435 3089.6001 cm 0 0 m 24.65 0 44.64 19.99 44.64 44.64 c S Q Q BT /T1_0 1 Tf 7.9947 0 0 7.9947 352.0356 332.7803 Tm (opens terminal device)Tj 0 -1.25 TD (\(\336le descriptors 0, 1, 2\);)Tj -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td (ads user name;)Tj -0.856 -1.25 Td [(initial envir)18(onment set)]TJ /T1_1 1 Tf -16.678 -7.355 Td (Figure 9.2)Tj /T1_0 1 Tf 5.195 0 Td [(State of pr)18(ocesses after)]TJ /TT0 1 Tf 10.266 -0 Td (login)Tj /T1_0 1 Tf 3.25 0 Td (has been invoked)Tj 9.9934 0 0 9.9934 129.5144 220.0149 Tm [(All )-19(the )-19(pr)18(ocesses )-19(shown )-19(in )-19(Figur)]TJ 0.2692 Tc 14.516 0 Td (e9)Tj 0 Tc 1.248 0 Td [(.2 )-19(have )-19(super)8(user )-19(privileges, )-19(since )-19(the )-19(original)]TJ /TT0 1 Tf 20.836 0 Td (init)Tj /T1_0 1 Tf -36.6 -1.2 Td [(pr)18(ocess )-258(has )-258(super)8(user )-258(privileges.)-756(The )-258(pr)18(ocess )-258(ID )-258(of )-258(the )-258(bottom )-258(thr)18(ee )-258(pr)18(ocesses )-258(in)]TJ 0 -1.2 Td (Figur)Tj 0.3445 Tc 2.383 0 Td (e9)Tj 0 Tc 1.324 0 Td [(.2 )-94(is )-94(the )-94(same, )-94(since )-94(the )-94(pr)18(ocess )-94(ID )-94(does )-94(not )-94(change )-94(acr)18(oss )-94(an)]TJ /TT0 1 Tf 28.333 0 Td (exec)Tj /T1_0 1 Tf 0.5945 Tc (.A)Tj 0 Tc 4.022 0 Td [(lso, )-94(all)]TJ -36.063 -1.2 Td [(the pr)18(ocesses other than the original)]TJ /TT0 1 Tf 16.242 0 Td (init)Tj /T1_0 1 Tf 2.65 0 Td [(pr)18(ocess have a par)18(ent pr)18(ocess ID of 1.)]TJ -17.092 -1.2 Td (The)Tj /TT0 1 Tf 2.144 0 Td (login)Tj /T1_0 1 Tf 3.469 0 Td [(pr)18(ogram )-219(does )-219(many )-219(things.)-721(Since )-220(it )-220(has )-220(our )-220(user )-220(name, )-220(it )-220(can )-220(call)]TJ /TT0 1 Tf -7.413 -1.2 Td (getpwnam)Tj /T1_0 1 Tf 5.174 0 Td [(to )-124(fetch )-124(our )-124(passwor)]TJ 0.3736 Tc 9.407 0 Td (d\336)Tj 0 Tc 1.59 0 Td [(le )-124(entry)]TJ 0.6236 Tc 3.371 0 Td (.T)Tj 0 Tc 1.487 0 Td (hen)Tj /TT0 1 Tf 2.017 0 Td (login)Tj /T1_0 1 Tf 3.374 0 Td (calls)Tj /TT0 1 Tf 2.324 0 Td (getpass)Tj /T1_0 1 Tf 4.2 0.04 Td (\()Tj 0.333 -0.04 Td (3)Tj 0.5 0.04 Td (\))Tj 0.706 -0.04 Td [(to )-123(display)]TJ -34.481 -1.2 Td [(the )-103(pr)18(ompt)]TJ /TT0 1 Tf 5.427 0 Td (Password:)Tj /T1_0 1 Tf 5.753 0 Td [(and )-103(r)18(ead )-103(our )-103(passwor)]TJ 0.353 Tc 9.969 0 Td (d\()Tj 0 Tc 1.297 0 Td [(with )-103(echoing )-103(disabled, )-103(of )-103(course\).)-603(It)]TJ -22.446 -1.2 Td (calls)Tj /TT0 1 Tf 2.345 0 Td (crypt)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (3)Tj 0.5 0.04 Td (\))Tj 0.728 -0.04 Td [(to )-145(encrypt )-145(the )-145(passwor)]TJ 0.3948 Tc 10.533 0 Td (dt)Tj 0 Tc 1.332 0 Td [(hat )-145(we )-145(enter)18(ed )-145(and )-145(compar)18(es )-145(the )-145(encrypted)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47407 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(19.2)]TJ 39.439 0 Td (Overview)Tj /T1_1 1 Tf 6.394 0 Td (717)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 3354 5774 648 252 re S Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 346.1352 588.2047 Tm [(str)18(eam head)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 5306.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3421.25 5306.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3490.25 5306.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3558.25 5306.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3626.25 5306.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3694.25 5306.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3762.25 5306.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3830.25 5306.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3898.25 5306.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3966.25 5306.25 cm 0 0 m 36 0 l 36 36 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4002.25 5378.25 cm 0 0 m 0 36 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4002.25 5450.25 cm 0 0 m 0 36 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4002.25 5522.25 cm 0 0 m 0 36 l -36 36 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3934.25 5558.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3866.25 5558.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3798.25 5558.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3730.25 5558.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3662.25 5558.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3594.25 5558.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3526.25 5558.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3457.25 5558.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3390.25 5558.25 cm 0 0 m -36 0 l -36 -36 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 5486.25 cm 0 0 m 0 -36 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 5414.25 cm 0 0 m 0 -36 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 5342.25 cm 0 0 m 0 -36 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 348.5582 546.3744 Tm (ttcompat)Tj /T1_0 1 Tf 6.9992 0 0 6.9992 336.7768 536.3756 Tm (STREAMS)Tj 7.999 0 0 7.999 371.4347 536.3756 Tm (module)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 3354 4838 648 252 re S Q BT /TT0 1 Tf 7.9986 0 0 7.9986 353.3364 499.5501 Tm (ldterm)Tj /T1_0 1 Tf 6.9987 0 0 6.9987 336.7566 489.5519 Tm (STREAMS)Tj 7.9986 0 0 7.9986 371.4124 489.5519 Tm (module)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 3354 4370 648 252 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 358.114 452.7313 Tm (ptem)Tj /T1_0 1 Tf 6.9983 0 0 6.9983 336.7364 442.7337 Tm (STREAMS)Tj 7.9981 0 0 7.9981 371.3902 442.7337 Tm (module)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 3354 3902 648 252 re S Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 338.6544 405.9182 Tm (pseudo terminal)Tj 2.501 -1.25 Td (slave)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 2490 3902 648 252 re S Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 252.2652 405.8938 Tm (pseudo terminal)Tj 2.127 -1.25 Td (master)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2490.25 4370.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2566.25 4370.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2642.25 4370.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2719.25 4370.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2796.25 4370.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2872.25 4370.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2948.25 4370.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3025.25 4370.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3102.25 4370.25 cm 0 0 m 36 0 l 36 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 4442.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 4514.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 4586.25 cm 0 0 m 0 36 l -36 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3061.25 4622.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2984.25 4622.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2908.25 4622.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2832.25 4622.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2755.25 4622.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2678.25 4622.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2602.25 4622.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2526.25 4622.25 cm 0 0 m -36 0 l -36 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2490.25 4550.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2490.25 4478.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2490.25 4406.25 cm 0 0 m 0 -36 l S Q Q BT /TT0 1 Tf 7.9966 0 0 7.9966 271.6859 452.6498 Tm (pckt)Tj /T1_0 1 Tf 6.9971 0 0 6.9971 250.312 442.654 Tm (STREAMS)Tj 7.9966 0 0 7.9966 284.9596 442.654 Tm (module)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 2490 5774 648 252 re S Q BT /T1_0 1 Tf 7.9962 0 0 7.9962 259.6313 587.9577 Tm [(str)18(eam head)]TJ ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 3462 6386 432 252 re S Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 360.0015 654.0867 Tm (user)Tj -0.697 -1.25 Td [(pr)18(ocess)]TJ ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 2598 6386 432 252 re S Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 273.6318 654.0474 Tm (user)Tj -0.697 -1.25 Td [(pr)18(ocess)]TJ ET q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 346.2 651.2 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 3462 6512 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3030.25 6512.25 cm 0 0 m 360 0 l S Q Q BT /TT0 1 Tf 7.9947 0 0 7.9947 314.7922 654.0082 Tm (fork)Tj 0 -1.25 TD (exec)Tj ET q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 367.8 602.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 3678 6026 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 367.8 638.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 3678 6386 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3678.25 6098.25 cm 0 0 m 0 216 l S Q Q q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 281.4 602.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 2814 6026 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 281.4 638.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 2814 6386 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2814.25 6098.25 cm 0 0 m 0 216 l S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 270.6 462.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 2706 4622 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 4694.25 cm 0 0 m 0 1080 l S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 292.2 577.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 2922 5774 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2922.25 4622.25 cm 0 0 m 0 1080 l S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 270.6 415.4 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 2706 4154 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 4370.25 cm 0 0 m 0 -144 l S Q Q q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 292.2 437 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 2922 4370 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2922.25 4154.25 cm 0 0 m 0 144 l S Q Q q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 357 555.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 3570 5558 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3570.25 5774.25 cm 0 0 m 0 -144 l S Q Q q 0.9988007 0 0 0.9988007 0 0 cm q 1 0 0 1 378.6 577.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998801 0 0 0.0998801 0 0 cm 1 j 1 J q 1 0 0 1 3786 5774 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 5558.25 cm 0 0 m 0 144 l S Q Q q 0.9987408 0 0 0.9987408 0 0 cm q 1 0 0 1 357 509 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998741 0 0 0.0998741 0 0 cm 1 j 1 J q 1 0 0 1 3570 5090 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3570.25 5306.25 cm 0 0 m 0 -144 l S Q Q q 0.9986808 0 0 0.9986808 0 0 cm q 1 0 0 1 378.6 530.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998681 0 0 0.0998681 0 0 cm 1 j 1 J q 1 0 0 1 3786 5306 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 5090.25 cm 0 0 m 0 144 l S Q Q q 0.9986209 0 0 0.9986209 0 0 cm q 1 0 0 1 357 462.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998621 0 0 0.0998621 0 0 cm 1 j 1 J q 1 0 0 1 3570 4622 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3570.25 4838.25 cm 0 0 m 0 -144 l S Q Q q 0.998561 0 0 0.998561 0 0 cm q 1 0 0 1 378.6 483.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998561 0 0 0.0998561 0 0 cm 1 j 1 J q 1 0 0 1 3786 4838 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 4622.25 cm 0 0 m 0 144 l S Q Q q 0.9985011 0 0 0.9985011 0 0 cm q 1 0 0 1 357 415.4 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998501 0 0 0.0998501 0 0 cm 1 j 1 J q 1 0 0 1 3570 4154 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998501 0 0 0.0998501 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3570.25 4370.25 cm 0 0 m 0 -144 l S Q Q q 0.9984412 0 0 0.9984412 0 0 cm q 1 0 0 1 378.6 437 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998441 0 0 0.0998441 0 0 cm 1 j 1 J q 1 0 0 1 3786 4370 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 4154.25 cm 0 0 m 0 144 l S Q Q q 0.9983813 0 0 0.9983813 0 0 cm q 1 0 0 1 357 375.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998381 0 0 0.0998381 0 0 cm 1 j 1 J q 1 0 0 1 3570 3758 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998381 0 0 0.0998381 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3570.25 3902.25 cm 0 0 m 0 -72 l S Q Q q 0.9983214 0 0 0.9983214 0 0 cm q 1 0 0 1 292.2 390.2 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998321 0 0 0.0998321 0 0 cm 1 j 1 J q 1 0 0 1 2922 3902 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2922.25 3830.25 cm 0 0 m 0 -72 l S Q Q q 0.9982615 0 0 0.9982615 0 0 cm q 1 0 0 1 292.2 375.8 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0998261 0 0 0.0998261 0 0 cm 1 j 1 J q 1 0 0 1 2922 3758 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3570.25 3758.25 cm 0 0 m -576 0 l S Q Q q 0.9982016 0 0 0.9982016 0 0 cm q 1 0 0 1 378.6 390.2 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998202 0 0 0.0998202 0 0 cm 1 j 1 J q 1 0 0 1 3786 3902 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998202 0 0 0.0998202 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3830.25 cm 0 0 m 0 -144 l S Q Q q 0.9981417 0 0 0.9981417 0 0 cm q 1 0 0 1 270.6 368.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998142 0 0 0.0998142 0 0 cm 1 j 1 J q 1 0 0 1 2706 3686 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998142 0 0 0.0998142 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3902.25 cm 0 0 m 0 -144 l S Q Q q 0.9980818 0 0 0.9980818 0 0 cm q 1 0 0 1 378.6 368.6 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998082 0 0 0.0998082 0 0 cm 1 j 1 J q 1 0 0 1 3786 3686 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998082 0 0 0.0998082 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3686.25 cm 0 0 m 1008 0 l S Q Q BT /T1_2 1 Tf 7.9842 0 0 7.9842 373.0606 630.5902 Tm (stdin, stdout, stderr)Tj ET q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 3614.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 3686.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 3758.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 3830.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 3902.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 3974.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 4046.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 4118.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 4190.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 4262.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 4334.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 4406.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 4478.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 4550.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 4622.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 4694.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 4766.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 4838.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 4910.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 4982.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 5054.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 5126.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 5198.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 5270.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 5342.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 5414.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 5486.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 5558.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 5630.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 5702.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 5774.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 5846.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 5918.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 5990.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 6062.25 cm 0 0 m 0 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 6134.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2416.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2487.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2557.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2628.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2699.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2769.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2840.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2910.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2981.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3051.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3122.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3192.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3263.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3334.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3404.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3475.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3545.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3616.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3686.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3757.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3828.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3898.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3969.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4039.25 6170.25 cm 0 0 m 36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 6170.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 6098.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 6026.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 5954.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 5882.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 5810.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 5738.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 5666.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 5594.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 5522.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 5450.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 5378.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 5306.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 5234.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 5162.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 5090.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 5018.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 4946.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 4874.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 4802.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 4730.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 4658.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 4586.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 4514.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 4442.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 4370.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 4298.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 4226.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 4154.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 4082.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 4010.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 3938.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 3866.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 3794.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 3722.25 cm 0 0 m 0 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4146.25 3650.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4075.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4005.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3934.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3864.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3793.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3722.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3652.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3581.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3511.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3440.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3370.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3299.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3228.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3158.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3087.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3017.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2946.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2876.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2805.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2735.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2664.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2593.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2523.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2452.25 3614.25 cm 0 0 m -36 0 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 3614.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9837 0 0 7.9837 415.751 486.4466 Tm (kernel)Tj /T1_1 1 Tf -24.928 -18.905 Td (Figure 19.2)Tj /T1_0 1 Tf 5.695 0 Td (Arrangement of pseudo terminals under Solaris)Tj 9.9796 0 0 9.9796 147.2994 307.9711 Tm [(Fr)18(om )-103(this )-103(point )-103(on, )-103(we\325ll )-103(simplify )-103(the )-103(\336gur)18(es )-103(by )-103(not )-103(showing )-103(the )-103(\324)32(\324r)18(ead )-103(and )-103(write)]TJ -1.8 -1.2 Td (functions\325)Tj 0.3515 Tc 4.372 0 Td (\325f)Tj -0.018 Tc 0.962 0 Td (ro)Tj 0.3515 Tc 0.923 0 Td (mF)Tj 0 Tc 1.791 0 Td (igur)Tj 0.3515 Tc 1.827 0 Td (e1)Tj 0 Tc 1.331 0 Td [(9.1 )-101(or )-101(the )-101(\324)36(\324str)18(eam )-101(head\325)]TJ 0.3514 Tc 10.905 0 Td (\325f)Tj -0.018 Tc 0.962 0 Td (ro)Tj 0.3514 Tc 0.923 0 Td (mF)Tj 0 Tc 1.79 0 Td (igur)Tj 0.3514 Tc 1.827 0 Td (e1)Tj 0 Tc 1.33 0 Td [(9.2. )-351(W)92(e\325ll )-101(also )-101(use )-101(the)]TJ -28.943 -1.2 Td [(abbr)18(eviation )-100(PTY )-100(for )-100(pseudo )-100(terminal )-100(and )-100(lump )-100(all )-100(the )-100(STREAMS )-100(modules )-100(above )-100(the)]TJ 0 -1.2 TD (slave PTY in Figur)Tj 0.25 Tc 8.149 0 Td (e1)Tj 0 Tc 1.229 0 Td [(9.2 into a box called \324)37(\324terminal line discipline,\325)37(\325)-250(as)-250(in)-250(Figur)]TJ 0.25 Tc 25.389 0 Td (e1)Tj 0 Tc 1.229 0 Td (9.1.)Tj -0.092 Tc -34.196 -1.2 Td (We)Tj 0 Tc 1.387 0 Td (\325ll now examine some of the typical uses of pseudo terminals.)Tj /TT1 1 Tf -6.787 -2.88 Td [(Netw)20(ork Login Ser)-10(ver)15(s)]TJ /T1_0 1 Tf 3.6 -2.04 Td [(Pseudo )-336(terminals )-336(ar)]TJ 0.5856 Tc 9.486 0 Td (eb)Tj 0 Tc 1.618 0 Td [(uilt )-336(into )-336(servers )-336(that )-336(pr)20(ovide )-335(network )-335(logins.)-835(The )-335(typical)]TJ -11.104 -1.2 Td [(examples )-74(ar)]TJ 0.3242 Tc 5.374 0 Td (et)Tj 0 Tc 1.129 0 Td (he)Tj /TT0 1 Tf 1.385 0 Td (telnetd)Tj /T1_0 1 Tf 4.524 0 Td (and)Tj /TT0 1 Tf 2.017 0 Td (rlogind)Tj /T1_0 1 Tf 4.524 0 Td [(servers. )-324(Chapter)-325(15 )-74(of )-74(Stevens)]TJ 14.134 0.04 Td ([)Tj 0.333 -0.04 Td (1990)Tj 2 0.04 Td (])Tj 0.657 -0.04 Td (details)Tj -36.078 -1.2 Td [(the )-22(steps )-22(involved )-22(in )-22(the)]TJ /TT0 1 Tf 11.191 0 Td (rlogin)Tj /T1_0 1 Tf 3.872 0 Td [(service. )-272(Once)-272(the )-22(login )-22(shell )-22(is )-22(r)8(unning )-22(on )-22(the )-22(r)19(emote)]TJ -15.062 -1.2 Td [(host, )-32(we )-32(have )-32(the )-32(arrangement )-32(shown )-32(in )-32(Figur)]TJ 0.2818 Tc 20.828 0 Td (e1)Tj 0 Tc 1.261 0 Td [(9.3. )-282(A)-282(similar )-32(arrangement )-32(is )-32(used )-32(by)]TJ -22.088 -1.2 Td (the)Tj /TT0 1 Tf 1.637 0 Td (telnetd)Tj /T1_0 1 Tf 4.45 0 Td [(server)74(.)]TJ -0.092 Tc -4.287 -1.2 Td [(We )-456(s)]TJ 0 Tc 2.333 0 Td [(how )-272(two )-272(calls )-272(to)]TJ /TT0 1 Tf 8.576 0 Td (exec)Tj /T1_0 1 Tf 2.921 0 Td [(between )-271(the)]TJ /TT0 1 Tf 6.162 0 Td (rlogind)Tj /T1_0 1 Tf 4.721 0 Td [(server )-271(and )-271(the )-271(login )-271(shell,)]TJ -26.514 -1.2 Td (because the)Tj /TT0 1 Tf 5.369 0 Td (login)Tj /T1_0 1 Tf 3.25 0 Td [(pr)18(ogram is usually between the two to validate the user)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47408 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(9.3)]TJ 36.356 0 Td [(Network )-250(Logins)]TJ /T1_1 1 Tf 9.477 0 Td (291)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(BSD Netw)20(ork Logins)]TJ /T1_0 1 Tf 3.6 -2.4 Td [(In )-294(BSD, )-294(a )-294(single )-294(pr)18(ocess )-294(waits )-294(for )-294(most )-294(network )-294(connections: )-294(the)]TJ /TT1 1 Tf 31.911 0 Td (inetd)Tj /T1_0 1 Tf 3.544 0 Td [(pr)18(ocess,)]TJ -35.455 -1.2 Td [(sometimes )-110(called )-110(the)]TJ /T1_2 1 Tf 9.818 0 Td [(Internet )-110(superserver)]TJ /T1_0 1 Tf 0.6099 Tc (.I)Tj 0.3599 Tc 9.503 0 Td (nt)Tj 0 Tc 1.268 0 Td [(his )-110(section, )-110(we\325ll )-110(look )-110(at )-110(the )-110(sequence )-110(of)]TJ -20.588 -1.2 Td [(pr)18(ocesses )-142(involved )-142(in )-142(network )-142(logins )-142(for )-142(a )-142(BSD )-142(system.)]TJ -0.092 Tc 26.21 0 Td [(We )-326(a)]TJ -0.018 Tc 2.279 0 Td [(re )-178(n)]TJ 0 Tc 1.83 0 Td [(ot )-142(inter)18(ested )-142(in )-142(the)]TJ -30.319 -1.2 Td [(detailed )-41(network )-41(pr)18(ogramming )-41(aspects )-41(of )-41(these )-41(pr)18(ocesses; )-41(r)18(efer )-41(to )-41(Stevens, )-41(Fenner)]TJ 0.291 Tc 36.766 0 Td (,a)Tj 0 Tc 1.041 0 Td (nd)Tj -37.807 -1.2 Td [(Rudof)18(f)]TJ 3.326 0.04 Td ([)Tj 0.333 -0.04 Td (2004)Tj 2 0.04 Td (])Tj 0.583 -0.04 Td (for all the details.)Tj -4.442 -1.2 Td [(As )-124(part )-124(of )-124(the )-124(system )-124(start-up,)]TJ /TT1 1 Tf 14.382 0 Td (init)Tj /T1_0 1 Tf 2.774 0 Td [(invokes )-124(a )-124(shell )-124(that )-124(executes )-124(the )-124(shell )-124(script)]TJ /TT1 1 Tf -18.955 -1.2 Td (/etc/rc)Tj /T1_0 1 Tf 0.6153 Tc (.O)Tj 0 Tc 5.851 0 Td [(ne )-115(of )-115(the )-115(daemons )-115(that )-115(is )-115(started )-115(by )-115(this )-115(shell )-115(script )-115(is)]TJ /TT1 1 Tf 25.24 0 Td (inetd)Tj /T1_0 1 Tf 0.6152 Tc (.O)Tj 0 Tc 4.651 0 Td [(nce )-115(the)]TJ -35.743 -1.2 Td [(shell )-165(script )-165(terminates, )-165(the )-165(par)18(ent )-165(pr)18(ocess )-165(of)]TJ /TT1 1 Tf 20.816 0 Td (inetd)Tj /T1_0 1 Tf 3.415 0 Td (becomes)Tj /TT1 1 Tf 4.223 0 Td (init)Tj /T1_0 1 Tf (;)Tj /TT1 1 Tf 3.065 0 Td (inetd)Tj /T1_0 1 Tf 3.415 0 Td [(waits )-165(for)]TJ -34.936 -1.2 Td [(TCP/IP )-12(connection )-12(r)17(equests )-12(to )-12(arrive )-12(at )-12(the )-12(host.)-512(When )-12(a )-12(connection )-12(r)18(equest )-12(arrives )-12(for)]TJ 0 -1.2 TD (it to handle,)Tj /TT1 1 Tf 5.534 0 Td (inetd)Tj /T1_0 1 Tf 3.25 0 Td (does a)Tj /TT1 1 Tf 3.06 0 Td (fork)Tj /T1_0 1 Tf 2.65 0 Td (and)Tj /TT1 1 Tf 1.943 0 Td (exec)Tj /T1_0 1 Tf 2.65 0 Td [(of the appr)18(opriate pr)18(ogram.)]TJ -17.287 -1.2 Td [(Let\325s )-389(assume )-389(that )-389(a )-389(TCP )-389(connection )-389(r)20(equest )-389(arrives )-389(for )-389(the )-389(TELNET )-389(server)75(.)]TJ -1.8 -1.2 Td [(TELNET )-121(is )-121(a )-121(r)18(emote )-121(login )-121(application )-121(that )-121(uses )-121(the )-121(TCP )-121(pr)17(otocol. )-371(A)-371(user )-121(on )-121(another)]TJ -0 -1.2 Td [(host )-78(\(that )-78(is )-78(connected )-78(to )-78(the )-78(server)-74(\325s )-78(host )-78(thr)18(ough )-78(a )-78(network )-78(of )-78(some )-78(form\) )-78(or )-78(on )-78(the)]TJ T* (same host initiates the login by starting the TELNET client:)Tj /TT1 1 Tf 8.9995 0 0 8.9995 147.5912 470.132 Tm (telnet)Tj /T1_2 1 Tf 4.2 0 Td (hostname)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5923 449.993 Tm [(The )-251(client )-251(opens )-251(a )-251(TCP )-251(connection )-251(to)]TJ /T1_2 1 Tf 18.347 0 Td (hostname)Tj /T1_0 1 Tf 0.5011 Tc (,a)Tj 0 Tc 5.084 0 Td [(nd )-251(the )-251(pr)18(ogram )-251(that\325s )-251(started )-251(on)]TJ /T1_2 1 Tf -23.432 -1.2 Td (hostname)Tj /T1_0 1 Tf 4.252 0 Td [(is )-169(called )-169(the )-169(TELNET )-169(server)]TJ 0.6691 Tc 12.947 0 Td (.T)Tj 0 Tc 1.532 0 Td [(he )-169(client )-169(and )-169(the )-169(server )-169(then )-169(exchange )-169(data)]TJ -18.731 -1.2 Td [(acr)18(oss )-15(the )-15(TCP )-15(connection )-15(using )-15(the )-15(TELNET )-15(application )-15(pr)16(otocol. )-265(What)-265(has )-15(happened)]TJ T* [(is )-131(that )-131(the )-131(user )-131(who )-131(started )-131(the )-131(client )-131(pr)18(ogram )-131(is )-131(now )-131(logged )-131(in )-131(to )-131(the )-131(server)-71(\325s )-131(host.)]TJ T* [(\(This )-288(assumes, )-288(of )-288(course, )-288(that )-288(the )-288(user )-288(has )-288(a )-288(valid )-288(account )-288(on )-288(the )-288(server)-73(\325s )-288(host.\))]TJ T* (Figur)Tj 0.3579 Tc 2.383 0 Td (e9)Tj 0 Tc 1.337 0 Td [(.4 )-108(shows )-108(the )-108(sequence )-108(of )-108(pr)18(ocesses )-108(involved )-108(in )-108(executing )-108(the )-108(TELNET )-108(server)75(,)]TJ -3.72 -1.2 Td (called)Tj /TT1 1 Tf 2.866 0 Td (telnetd)Tj /T1_0 1 Tf (.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 3034.32 3272.2 432 216 re S Q BT /TT1 1 Tf 7.999 0 0 7.999 315.3941 336.2197 Tm (init)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 3034.32 2768.2 432 216 re S Q BT /TT1 1 Tf 7.9986 0 0 7.9986 312.9757 285.8085 Tm (inetd)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 3034.32 2264.2 432 216 re S Q BT /TT1 1 Tf 7.9981 0 0 7.9981 312.9569 235.4035 Tm (inetd)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 3034.32 1760.2 432 216 re S Q BT /TT1 1 Tf 7.9976 0 0 7.9976 308.1395 185.0045 Tm (telnetd)Tj ET q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3250.25 3265.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3250.25 3229.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3250.25 3195.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3250.25 3160.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3250.25 3125.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3250.25 3090.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3250.25 3055.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3250.25 3020.25 cm 0 0 m 0 0 l S Q Q q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 325.032 298.42 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3250.3201 2984.2 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3250.25 3056.25 cm 0 0 m 0 0 l S Q Q q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 325.032 248.02 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3250.3201 2480.2 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3250.25 2768.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3250.25 2678.25 cm 0 0 m 0 -36 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3250.25 2588.25 cm 0 0 m 0 -36 l S Q Q BT /TT1 1 Tf 7.9962 0 0 7.9962 326.8751 260.5349 Tm (fork)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 325.032 197.62 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3250.3201 1976.2 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3250.25 2264.25 cm 0 0 m 0 -216 l S Q Q BT /TT1 1 Tf 7.9957 0 0 7.9957 326.8554 210.1465 Tm (exec)Tj /T1_2 1 Tf -2.75 17.725 Td [(pr)18(ocess ID 1)]TJ ET q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 303.432 287.62 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 3034.3201 2876.2 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2026.25 2876.25 cm 0 0 m 936 0 l S Q Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 210.9214 290.6855 Tm [(TCP connection r)18(equest)]TJ 0.777 -1.25 Td [(fr)18(om TELNET client)]TJ ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3578.6399 3226.8401 cm 0 0 m 0 24.65 -19.99 44.64 -44.64 44.64 c S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3578.25 3227.25 cm 0 0 m 0 -77 l 23 -99 l 1 -121 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3578.25 3106.25 cm 0 0 m 0 -77 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534 2984.2 cm 0 0 m 24.65 0 44.64 19.99 44.64 44.64 c S Q Q BT /TT1 1 Tf 7.9947 0 0 7.9947 361.929 320.8482 Tm (fork)Tj /T1_0 1 Tf (/)Tj /TT1 1 Tf (exec)Tj /T1_0 1 Tf 5.656 0 Td (of)Tj /TT1 1 Tf 1.129 0 Td (/bin/sh)Tj /T1_0 1 Tf 0.25 Tc (,w)Tj 0 Tc 5.534 0 Td (hich)Tj -12.319 -1.25 Td (executes shell script)Tj /TT1 1 Tf 9.048 0 Td (/etc/rc)Tj /T1_0 1 Tf -9.048 -1.25 Td (when system comes up multiuser)Tj ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3578.6399 2723.5601 cm 0 0 m 0 24.65 -19.99 44.64 -44.64 44.64 c S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3578.25 2723.25 cm 0 0 m 0 -76 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3578.25 2646.25 cm 0 0 m 23 -22 l 1 -44 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3578.25 2602.25 cm 0 0 m 0 -77 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534 2480.2 cm 0 0 m 24.65 0 44.64 19.99 44.64 44.64 c S Q Q BT /T1_0 1 Tf 7.9942 0 0 7.9942 361.9073 265.4688 Tm [(when connection r)18(equest)]TJ 0 -1.25 TD [(arrives fr)18(om TELNET client)]TJ /T1_1 1 Tf -20.635 -13.105 Td (Figure 9.4)Tj /T1_0 1 Tf 5.195 0 Td [(Sequence of pr)18(ocesses involved in executing TELNET server)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47409 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(19.6)]TJ 32.654 0 Td [(Using )-250(the)]TJ /TT0 1 Tf 5.018 0 Td (pty)Tj /T1_0 1 Tf 2.3 0 Td [(Pr)18(ogram)]TJ /T1_1 1 Tf 5.861 0 Td (739)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(When )-165(we )-165(r)8(un )-165(the)]TJ /TT0 1 Tf 8.576 0 Td (telnet)Tj /T1_0 1 Tf 4.015 0 Td [(pr)18(ogram )-165(interactively)111(,)-415(we)-415(wait )-165(for )-165(the )-165(r)18(emote )-165(host )-165(to)]TJ -14.391 -1.2 Td [(pr)18(ompt )-30(for )-30(a )-30(passwor)]TJ 0.2796 Tc 9.653 0 Td (db)Tj 0 Tc 1.444 0 Td [(efor)18(e)-280(we)-280(t)1(ype )-30(it, )-30(but )-30(the)]TJ /TT0 1 Tf 10.903 0 Td (pty)Tj /T1_0 1 Tf 2.079 0 Td [(pr)18(ogram )-29(doesn\325t )-29(know )-29(to )-29(do )-29(this.)]TJ -24.078 -1.2 Td [(This )-79(is )-79(why )-79(it )-79(takes )-79(a )-79(mor)]TJ 0.3289 Tc 11.778 0 Td (es)Tj 0 Tc 1.232 0 Td [(ophisticated )-79(pr)18(ogram )-79(than)]TJ /TT0 1 Tf 12.256 0 Td (pty)Tj /T1_0 1 Tf 0.3289 Tc (,s)Tj 0 Tc 2.803 0 Td [(uch )-79(as)]TJ /TT0 1 Tf 3.211 0 Td (expect)Tj /T1_0 1 Tf [(,)-329(to)-329(drive)]TJ -31.279 -1.2 Td [(an interactive pr)18(ogram fr)18(om a script \336le.)]TJ 1.8 -1.2 Td [(Even )-57(r)8(unning)]TJ /TT0 1 Tf 6.435 0 Td (pty)Tj /T1_0 1 Tf 2.107 0 Td [(fr)18(om )-57(the )-57(pr)18(ogram )-57(in )-57(Figur)]TJ 0.3074 Tc 11.87 0 Td (e1)Tj 0 Tc 1.286 0 Td [(5.18, )-57(as )-57(we )-57(showed )-57(earlier)]TJ 0.3073 Tc 11.699 0 Td (,d)Tj 0 Tc 1.168 0 Td (oesn\325t)Tj -36.365 -1.2 Td [(help, )-108(because )-108(the )-108(pr)18(ogram )-108(in )-108(Figur)]TJ 0.3579 Tc 15.976 0 Td (e1)Tj 0 Tc 1.337 0 Td [(5.18 )-108(assumes )-108(that )-108(each )-108(line )-108(it )-108(writes )-108(to )-108(the )-108(pipe)]TJ -17.312 -1.2 Td [(generates )-104(exactly )-104(one )-104(line )-104(on )-104(the )-104(other )-104(pipe.)]TJ -0.055 Tc 20.733 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-104(an )-104(interactive )-104(pr)18(ogram, )-104(one )-104(line )-104(of)]TJ -21.969 -1.2 Td [(input )-149(may )-149(generate )-149(many )-149(lines )-149(of )-149(output.)-650(Furthermor)18(e, )-149(the )-149(pr)18(ogram )-149(in )-149(Figur)]TJ 0.3991 Tc 35.872 0 Td (e1)Tj 0 Tc 1.378 0 Td (5.18)Tj -37.25 -1.2 Td [(always )-151(sent )-151(a )-151(line )-151(to )-151(the )-151(copr)20(ocess )-151(befor)]TJ 0.4006 Tc 18.696 0 Td (er)Tj 0 Tc 1.257 0 Td [(eading )-151(fr)18(om )-151(it.)-651(This )-151(strategy )-151(won\325t )-151(work)]TJ -19.952 -1.2 Td [(when we want to r)18(ead fr)18(om the copr)18(ocess befor)]TJ 0.25 Tc 20.97 0 Td (es)Tj 0 Tc 1.153 0 Td (ending it anything.)Tj -20.323 -1.2 Td (Ther)Tj 0.5126 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.492 0 Td [(re )-299(a )-299(f)]TJ 0 Tc 2.714 0 Td [(ew )-263(ways )-263(to )-263(pr)18(oceed )-263(fr)18(om )-263(her)20(e)-513(to)-513(be)-513(a)1(ble )-263(to )-263(drive )-263(an )-263(interactive)]TJ -8.057 -1.2 Td [(pr)18(ogram )-41(fr)18(om )-41(a )-41(script.)]TJ -0.092 Tc 10.642 0 Td [(We )-225(c)]TJ 0 Tc 2.122 0 Td [(ould )-41(add )-41(a )-41(command )-41(language )-41(and )-41(interpr)17(eter )-41(to)]TJ /TT0 1 Tf 22.413 0 Td (pty)Tj /T1_0 1 Tf 0.291 Tc (,b)Tj 0 Tc 2.894 0 Td (ut)Tj 0.4828 Tc -38.071 -1.2 Td (ar)Tj 0 Tc 1.36 0 Td [(easonable )-233(command )-233(language )-233(would )-233(pr)18(obably )-233(be )-233(ten )-233(times )-233(lar)20(ger )-233(than )-233(the)]TJ /TT0 1 Tf 35.84 0 Td (pty)Tj /T1_0 1 Tf -37.2 -1.2 Td [(pr)18(ogram. )-518(Another)-517(option )-268(is )-268(to )-268(take )-268(a )-268(command )-268(language )-268(and )-268(use )-268(the)]TJ /TT0 1 Tf 34.2 0 Td (pty_fork)Tj /T1_0 1 Tf -34.2 -1.2 Td [(function to invoke interactive pr)18(ograms. )-250(This)-250(is what the)]TJ /TT0 1 Tf 25.562 0 Td (expect)Tj /T1_0 1 Tf 3.85 0 Td [(pr)18(ogram does.)]TJ -0.092 Tc -27.612 -1.2 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-78(take )-78(a )-78(dif)19(fer)18(ent )-78(path )-78(her)]TJ 0.3278 Tc 12.1 0 Td (ea)Tj 0 Tc 1.307 0 Td [(nd )-78(just )-78(pr)18(ovide )-78(an )-78(option )-78(\()]TJ /TT0 1 Tf 12.196 0 Td (-d)Tj /T1_0 1 Tf [(\))-328(to)-328(allow)]TJ /TT0 1 Tf 5.85 0 Td (pty)Tj /T1_0 1 Tf 2.128 0 Td [(to )-78(be)]TJ -36.768 -1.2 Td [(connected )-201(to )-201(a )-201(driver )-201(pr)18(ocess )-201(for )-201(its )-201(input )-201(and )-201(output.)-700(The )-201(standar)]TJ 0.4508 Tc 31.766 0 Td (do)Tj 0 Tc 1.608 0 Td [(utput )-201(of )-201(the)]TJ -33.374 -1.2 Td (driver is)Tj /TT0 1 Tf 3.952 0 Td (pty)Tj /T1_0 1 Tf (\325s standar)Tj 0.2503 Tc 6.072 0 Td (di)Tj 0 Tc 1.152 0 Td [(nput, and vice versa.)-500(This is similar to a copr)15(ocess, but on \324)36(\324the)]TJ -11.176 -1.2 Td [(other )-287(side\325)]TJ 0.5367 Tc 4.911 0 Td (\325o)Tj 0 Tc 1.361 0 Td (f)Tj /TT0 1 Tf 0.87 0 Td (pty)Tj /T1_0 1 Tf 0.7867 Tc (.T)Tj 0 Tc 3.45 0 Td [(he )-287(r)18(esulting )-287(arrangement )-287(of )-287(pr)19(ocesses )-287(is )-287(almost )-287(identical )-287(to)]TJ -10.591 -1.2 Td (Figur)Tj 0.4024 Tc 2.383 0 Td (e1)Tj 0 Tc 1.381 0 Td [(9.15, )-152(but )-152(in )-152(the )-152(curr)16(ent )-152(scenario,)]TJ /TT0 1 Tf 15.274 0 Td (pty)Tj /T1_0 1 Tf 2.203 0 Td [(does )-152(the)]TJ /TT0 1 Tf 4.252 0 Td (fork)Tj /T1_0 1 Tf 2.803 0 Td (and)Tj /TT0 1 Tf 2.096 0 Td (exec)Tj /T1_0 1 Tf 2.803 0 Td [(of )-152(the )-152(driver)]TJ -33.193 -1.2 Td [(pr)18(ocess. )-415(Also,)-414(instead )-165(of )-165(two )-165(half-duplex )-165(pipes, )-165(we\325ll )-165(use )-165(a )-165(single )-165(bidir)21(ectional )-165(pipe)]TJ 0 -1.2 TD (between)Tj /TT0 1 Tf 3.982 0 Td (pty)Tj /T1_0 1 Tf 2.05 0 Td [(and the driver pr)18(ocess.)]TJ -4.232 -1.2 Td (Figur)Tj 0.3415 Tc 2.383 0 Td (e1)Tj 0 Tc 1.321 0 Td [(9.16 )-91(shows )-91(the )-91(sour)18(ce )-91(for )-91(the)]TJ /TT0 1 Tf 13.53 0 Td (do_driver)Tj /T1_0 1 Tf 5.741 0 Td [(function, )-92(which )-92(is )-92(called )-92(by )-92(the)]TJ /TT0 1 Tf -24.775 -1.2 Td (main)Tj /T1_0 1 Tf 2.65 0 Td (function of)Tj /TT0 1 Tf 5.086 0 Td (pty)Tj /T1_0 1 Tf 2.05 0 Td (\(Figur)Tj 0.25 Tc 2.716 0 Td (e1)Tj 0 Tc 1.229 0 Td [(9.1)55(1\) when the)]TJ /TT0 1 Tf 6.642 0 Td (-d)Tj /T1_0 1 Tf 1.45 0 Td (option is speci\336ed.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3858.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 376.2538 Tm (#include "apue.h")Tj 0 -2.021 TD (void)Tj 0 -1.189 TD (do_driver\(char *driver\))Tj T* ({)Tj 2.4 -1.189 Td [(pid_t )-1200(child;)]TJ T* [(int )-2400(pipe[2];)]TJ 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (reate a full-duplex pipe to communicate with the driver.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(fd_pipe\(pipe\) < 0\))Tj 2.4 -1.189 Td (err_sys\("can\325t create stream pipe"\);)Tj -2.4 -2.021 Td (if \(\(child = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(child == 0\) {)-4800(/* child */)]TJ 0.6 -1.189 Td (close\(pipe[1]\);)Tj T* (/* stdin for driver */)Tj 0 -1.189 TD (if \(dup2\(pipe[0], STDIN_FILENO\) != STDIN_FILENO\))Tj 2.4 -1.189 Td (err_sys\("dup2 error to stdin"\);)Tj -2.4 -2.021 Td (/* stdout for driver */)Tj T* (if \(dup2\(pipe[0], STDOUT_FILENO\) != STDOUT_FILENO\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47410 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(3.6)]TJ /TT0 1 Tf 36.903 0 Td (lseek)Tj /T1_0 1 Tf 3.5 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (67)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(An open \336le\325s of)18(fset can be set explicitly by calling)]TJ /TT0 1 Tf 22.505 0 Td (lseek)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 652.2609 Tm (#include )Tj 0 -1.783 TD (off_t lseek\(int)Tj /T1_2 1 Tf 9.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,o)Tj 0 Tc 2.578 0 Td (ff_t)Tj /T1_2 1 Tf 3 0 Td (offset)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.911 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (whence)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 0.269 -1.783 Td [(Returns: new \336le of)18(fset if OK,)]TJ /TT1 1 Tf 13.306 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6157.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 602.1277 Tm [(The interpr)18(etation of the)]TJ /T1_2 1 Tf 11.041 0 Td (offset)Tj /T1_0 1 Tf 2.361 0 Td (depends on the value of the)Tj /T1_2 1 Tf 12.506 0 Td (whence)Tj /T1_0 1 Tf 3.213 0 Td [(ar)18(gument.)]TJ 0.883 Tc -27.321 -1.8 Td (\245I)Tj 0 Tc 1.826 0 Td (f)Tj /T1_2 1 Tf 0.619 0 Td (whence)Tj /T1_0 1 Tf 3.249 0 Td (is)Tj /TT0 1 Tf 1.001 0 Td (SEEK_SET)Tj /T1_0 1 Tf 0.2856 Tc (,t)Tj 0 Tc 5.662 0 Td [(he )-36(\336le\325s )-36(of)18(fset )-36(is )-36(set )-36(to)]TJ /T1_2 1 Tf 10.091 0 Td (offset)Tj /T1_0 1 Tf 2.397 0 Td [(bytes )-36(fr)18(om )-36(the )-36(beginning )-36(of)]TJ -23.354 -1.2 Td (the \336le.)Tj 0.883 Tc -1.489 -1.6 Td (\245I)Tj 0 Tc 1.826 0 Td (f)Tj /T1_2 1 Tf 0.684 0 Td (whence)Tj /T1_0 1 Tf 3.314 0 Td (is)Tj /TT0 1 Tf 1.066 0 Td (SEEK_CUR)Tj /T1_0 1 Tf 0.3505 Tc (,t)Tj 0 Tc 5.726 0 Td [(he )-100(\336le\325s )-100(of)18(fset )-100(is )-100(set )-100(to )-100(its )-100(curr)15(ent )-101(value )-101(plus )-101(the)]TJ /T1_2 1 Tf 22.224 0 Td (offset)Tj /T1_0 1 Tf (.)Tj -33.35 -1.2 Td (The)Tj /T1_2 1 Tf 1.924 0 Td (offset)Tj /T1_0 1 Tf 2.361 0 Td (can be positive or negative.)Tj 0.883 Tc -5.774 -1.6 Td (\245I)Tj 0 Tc 1.826 0 Td (f)Tj /T1_2 1 Tf 0.64 0 Td (whence)Tj /T1_0 1 Tf 3.27 0 Td (is)Tj /TT0 1 Tf 1.022 0 Td (SEEK_END)Tj /T1_0 1 Tf 0.3071 Tc (,t)Tj 0 Tc 5.683 0 Td [(he )-57(\336le\325s )-57(of)18(fset )-57(is )-57(set )-57(to )-57(the )-57(size )-57(of )-57(the )-57(\336le )-57(plus )-57(the)]TJ /T1_2 1 Tf 22.397 0 Td (offset)Tj /T1_0 1 Tf (.)Tj -33.35 -1.2 Td (The)Tj /T1_2 1 Tf 1.924 0 Td (offset)Tj /T1_0 1 Tf 2.361 0 Td (can be positive or negative.)Tj -7.574 -1.8 Td [(Because )-121(a )-121(successful )-121(call )-121(to)]TJ /TT0 1 Tf 12.76 0 Td (lseek)Tj /T1_0 1 Tf -0.018 Tc 3.371 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-121(the )-121(new )-121(\336le )-121(of)18(fset, )-121(we )-121(can )-121(seek )-121(zer)]TJ 0.3707 Tc 18.759 0 Td (ob)Tj 0 Tc 1.47 0 Td (ytes)Tj -37.215 -1.2 Td [(fr)18(om the curr)18(ent position to determine the curr)18(ent of)18(fset:)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.582 469.4437 Tm [(off_t )-1800(currpos;)]TJ 0 -1.664 TD (currpos = lseek\(fd, 0, SEEK_CUR\);)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5841 436.4675 Tm [(This )-112(technique )-112(can )-112(also )-112(be )-112(used )-112(to )-112(determine )-112(if )-112(a )-112(\336le )-112(is )-112(capable )-112(of )-112(seeking.)-612(If )-112(the )-112(\336le)]TJ 0 -1.2 TD [(descriptor )-8(r)18(efers )-8(to )-8(a )-8(pipe,)]TJ 8.9989 0 0 8.9989 248.4199 424.469 Tm (FIFO)Tj 9.9988 0 0 9.9988 268.5323 424.469 Tm [(,)-258(or)-258(s)-1(ocket,)]TJ /TT0 1 Tf 4.991 0 Td (lseek)Tj /T1_0 1 Tf 3.258 0 Td (sets)Tj /TT0 1 Tf 1.911 0 Td (errno)Tj /T1_0 1 Tf 3.259 0 Td (to)Tj /TT0 1 Tf 1.131 0 Td (ESPIPE)Tj /T1_0 1 Tf 3.859 0 Td [(and )-8(r)18(eturns)]TJ /TT1 1 Tf 5.396 0 Td (!)Tj /T1_0 1 Tf (1.)Tj 7.999 0 0 7.999 183.5783 404.4714 Tm [(The )-318(thr)18(ee )-318(symbolic )-318(constants)-83(\321)]TJ /TT0 1 Tf 14.93 0 Td (SEEK_SET)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 5.618 0 Td (SEEK_CUR)Tj /T1_0 1 Tf 0.568 Tc (,a)Tj 0 Tc 6.118 0 Td (nd)Tj /TT0 1 Tf 1.761 0 Td (SEEK_END)Tj /T1_0 1 Tf 0.0833 Tc 4.883 0 Td (\321w)Tj 0 Tc 1.917 0 Td (er)Tj 0.568 Tc 0.856 0 Td (ei)Tj 0 Tc 1.338 0 Td [(ntr)18(oduced)]TJ -37.421 -1.25 Td [(with )-149(System )-149(V)]TJ 0.6489 Tc 6.617 0 Td (.P)Tj 0 Tc 1.503 0 Td [(rior )-149(to )-149(this,)]TJ /T1_2 1 Tf 5.569 0 Td (whence)Tj /T1_0 1 Tf 3.362 0 Td [(was )-149(speci\336ed )-149(as )-149(0 )-149(\(absolute\), )-149(1 )-149(\(r)18(elative )-149(to )-149(the )-149(curr)19(ent)]TJ -17.05 -1.25 Td [(of)18(fset\), )-132(or )-132(2 )-132(\(r)18(elative )-132(to )-132(the )-132(end )-132(of )-132(\336le\).)-628(Much )-131(softwar)]TJ 0.3815 Tc 24.837 0 Td (es)Tj 0 Tc 1.285 0 Td [(till )-131(exists )-131(with )-131(these )-131(numbers )-131(har)16(d)]TJ -26.121 -1.25 Td (coded.)Tj 0 -1.75 TD [(The )-217(character)]TJ /TT0 1 Tf 6.673 0 Td (l)Tj /T1_0 1 Tf 1.067 0 Td [(in )-217(the )-217(name)]TJ /TT0 1 Tf 6.105 0 Td (lseek)Tj /T1_0 1 Tf 3.467 0 Td [(means )-217(\324)37(\324long )-217(integer)74(.\325)]TJ 0.7171 Tc 9.821 0 Td (\325B)Tj 0 Tc 1.606 0 Td (efor)Tj 0.4671 Tc 1.735 0 Td (et)Tj 0 Tc 1.272 0 Td [(he )-217(intr)18(oduction )-217(of )-217(the)]TJ /TT0 1 Tf -31.747 -1.25 Td (off_t)Tj /T1_0 1 Tf 3.417 0 Td [(data )-167(type, )-167(the)]TJ /T1_2 1 Tf 6.786 0 Td (offset)Tj /T1_0 1 Tf 2.528 0 Td [(ar)18(gument )-167(and )-167(the )-167(r)18(eturn )-167(value )-167(wer)]TJ 0.4166 Tc 16.359 0 Td (el)Tj 0 Tc 1.187 0 Td [(ong )-167(integers.)]TJ /TT0 1 Tf 6.549 0 Td (lseek)Tj /T1_0 1 Tf 3.417 0 Td (was)Tj -40.242 -1.25 Td [(intr)18(oduced )-156(with )-156(V)111(ersion )-156(7 )-156(when )-156(long )-156(integers )-156(wer)]TJ 0.4065 Tc 23.25 0 Td (ea)Tj 0 Tc 1.385 0 Td [(dded )-156(to )-156(C.)-658(\(Similar )-157(functionality )-157(was)]TJ -24.636 -1.25 Td [(pr)18(ovided in V)111(ersion 6 by the functions)]TJ /TT0 1 Tf 17.159 0 Td (seek)Tj /T1_0 1 Tf 2.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (tell)Tj /T1_0 1 Tf (.\))Tj /TT2 1 Tf 9.9988 0 0 9.9988 93.5886 306.4831 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.04 Td [(The pr)18(ogram in Figur)]TJ 0.2502 Tc 9.539 0 Td (e3)Tj 0 Tc 1.229 0 Td (.1 tests its standar)Tj 0.2501 Tc 7.84 0 Td (di)Tj 0 Tc 1.152 0 Td (nput to see whether it is capable of seeking.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2789.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 269.3705 Tm (#include "apue.h")Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (if \(lseek\(STDIN_FILENO, 0, SEEK_CUR\) == -1\))Tj 2.4 -1.189 Td (printf\("cannot seek\\n"\);)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (printf\("seek OK\\n"\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1619.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 216.4081 145.863 Tm (Figure 3.1)Tj /T1_0 1 Tf -0.092 Tc 5.195 0 Td (Te)Tj 0 Tc 1 0 Td (st whether standar)Tj 0.25 Tc 8.247 0 Td (di)Tj 0 Tc 1.152 0 Td (nput is capable of seeking)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47411 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (554)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(interleaved. )-336(As)-335(with )-86(pipes, )-86(the )-86(constant)]TJ /TT0 1 Tf 18.51 0 Td (PIPE_BUF)Tj /T1_1 1 Tf 5.136 0 Td [(speci\336es )-86(the )-86(maximum )-86(amount )-86(of)]TJ -23.645 -1.2 Td (data that can be written atomically to a FIFO.)Tj 1.8 -1.2 Td (Ther)Tj 0.25 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(t)]TJ 0 Tc 1.432 0 Td (wo uses for FIFOs.)Tj -4.712 -1.8 Td [(1. )-633(FIFOs)-487(ar)]TJ 0.4868 Tc 5.656 0 Td (eu)Tj 0 Tc 1.569 0 Td [(sed )-237(by )-237(shell )-237(commands )-237(to )-237(pass )-237(data )-237(fr)19(om )-237(one )-237(shell )-237(pipeline )-237(to)]TJ -5.592 -1.2 Td [(another without cr)18(eating intermediate temporary \336les.)]TJ -1.633 -1.6 Td [(2. )-633(FIFOs)-354(ar)]TJ 0.3542 Tc 5.523 0 Td (eu)Tj 0 Tc 1.436 0 Td [(sed )-104(as )-104(r)18(endezvous )-104(points )-104(in )-104(client\320server )-104(applications )-104(to )-104(pass )-104(data)]TJ -5.326 -1.2 Td (between the clients and the servers.)Tj -0.092 Tc -3.433 -1.8 Td [(We )-184(d)]TJ 0 Tc 2.248 0 Td (iscuss each of these uses with an example.)Tj /TT1 1 Tf -5.848 -2.76 Td [(Example )195(\321 )195(Using)-279(FIFOs to Duplicate Output Streams)]TJ /T1_1 1 Tf 3.6 -2.4 Td [(FIFOs )-115(can )-115(be )-115(used )-115(to )-115(duplicate )-115(an )-115(output )-115(str)18(eam )-115(in )-115(a )-115(series )-115(of )-115(shell )-115(commands.)-618(This)]TJ 0 -1.2 TD [(pr)18(events )-121(writing )-121(the )-121(data )-121(to )-121(an )-121(intermediate )-121(disk )-121(\336le )-121(\(similar )-121(to )-121(using )-121(pipes )-121(to )-121(avoid)]TJ T* [(intermediate )-210(disk )-210(\336les\).)-711(But )-210(wher)18(eas )-210(pipes )-210(can )-210(be )-210(used )-210(only )-210(for )-210(linear )-210(connections)]TJ T* [(between pr)18(ocesses, a FIFO has a name, so it can be used for nonlinear connections.\ )]TJ 1.8 -1.2 Td [(Consider )-476(a )-476(pr)18(ocedur)]TJ 0.726 Tc 10.027 0 Td (et)Tj 0 Tc 1.531 0 Td [(hat )-476(needs )-476(to )-476(pr)18(ocess )-476(a )-476(\336lter)18(ed )-476(input )-476(str)18(eam )-476(twice.)]TJ -13.358 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.20 shows this arrangement.)Tj 7.9995 0 0 7.9995 228.5739 400.2158 Tm (input)Tj 0.514 -1.25 Td (\336le)Tj ET q 0.99994 0 0 0.99994 0 0 cm q 1 0 0 1 288.6 397 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099994 0 0 0.099994 0 0 cm 1 j 1 J q 1 0 0 1 2886 3970 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2526.25 3970.25 cm 0 0 m 288 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2886 3826 432 288 re S Q BT /TT0 1 Tf 7.999 0 0 7.999 298.1642 395.1926 Tm (prog1)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 3822 4114 432 288 re S Q BT /TT0 1 Tf 7.9986 0 0 7.9986 391.7295 423.9637 Tm (prog3)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 3822 3538 432 288 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 391.706 366.3521 Tm (prog2)Tj ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 382.2 368.2 cm 0 0 m -7.128 2.016 l -5.328 5.112 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 3822 3682 cm 0 0 m -71.28 20.16 l -53.28 51.12 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3318.25 3970.25 cm 0 0 m 441 -252 l S Q Q q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 382.2 425.8 cm 0 0 m -5.328 -5.112 l -7.128 -2.016 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 3822 4258 cm 0 0 m -53.28 -51.12 l -71.28 -20.16 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3318.25 3970.25 cm 0 0 m 441 252 l S Q Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 205.2021 328.4817 Tm (Figure 15.20)Tj /T1_1 1 Tf 6.195 0 Td [(Pr)18(ocedur)]TJ 0.25 Tc 4.041 0 Td (et)Tj 0 Tc 1.055 0 Td [(hat pr)18(ocesses a \336lter)18(ed input str)18(eam twice)]TJ -0.055 Tc 9.9964 0 0 9.9964 147.547 306.8895 Tm (Wi)Tj 0 Tc 1.236 0 Td [(th )-214(a )-214(FIFO )-214(and )-214(the )-214(UNIX )-214(pr)17(ogram)]TJ /TT0 1 Tf 16.443 0 Td (tee)Tj /T1_1 1 Tf 1.8 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.333 -0.04 Td [(,)-464(we)-464(can )-214(accomplish )-214(this )-214(pr)18(ocedur)18(e)]TJ -22.445 -1.2 Td [(without )-52(using )-52(a )-52(temporary )-52(\336le.)-554(\(The)]TJ /TT0 1 Tf 16.842 0 Td (tee)Tj /T1_1 1 Tf 2.103 0 Td [(pr)18(ogram )-52(copies )-52(its )-52(standar)]TJ 0.3025 Tc 11.912 0 Td (di)Tj 0 Tc 1.204 0 Td [(nput )-52(to )-52(both )-52(its)]TJ -32.06 -1.2 Td (standar)Tj 0.25 Tc 3.32 0 Td (do)Tj 0 Tc 1.407 0 Td (utput and the \336le named on its command line.\))Tj /TT0 1 Tf 8.9968 0 0 8.9968 147.5473 266.2041 Tm (mkfifo fifo1)Tj 0 -1.189 TD (prog3 < fifo1 &)Tj T* (prog1 < infile | tee fifo1 | prog2)Tj /T1_1 1 Tf -0.092 Tc 9.9964 0 0 9.9964 129.5538 226.8183 Tm [(We )-192(c)]TJ -0.018 Tc 2.089 0 Td (re)Tj 0 Tc 0.856 0 Td [(ate )-8(the )-8(FIFO )-8(and )-8(then )-8(start)]TJ /TT0 1 Tf 12.109 0 Td (prog3)Tj /T1_1 1 Tf 3.258 0 Td [(in )-8(the )-8(backgr)18(ound, )-8(r)18(eading )-8(fr)18(om )-8(the )-8(FIFO.)]TJ -0.092 Tc 19.301 0 Td (We)Tj 0 Tc -37.613 -1.2 Td [(then )-364(start)]TJ /TT0 1 Tf 5.167 0 Td (prog1)Tj /T1_1 1 Tf 3.614 0 Td [(and )-364(use)]TJ /TT0 1 Tf 4.426 0 Td (tee)Tj /T1_1 1 Tf 2.414 0 Td [(to )-364(send )-364(its )-364(input )-364(to )-364(both )-364(the )-364(FIFO )-364(and)]TJ /TT0 1 Tf 20.129 0 Td (prog2)Tj /T1_1 1 Tf (.)Tj -35.75 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td [(5.21 shows the pr)18(ocess arrangement.)]TJ ET q 0.099964 0 0 0.099964 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2029.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 9.9958 0 0 9.9958 93.5607 172.8274 Tm [(Example )195(\321 )195(Client\320Ser)-11(ver Comm)20(unication Using a FIFO)]TJ /T1_1 1 Tf 3.6 -2.4 Td [(Another )-22(use )-22(for )-22(FIFOs )-22(is )-22(to )-22(send )-22(data )-22(between )-22(a )-22(client )-22(and )-22(a )-22(server)]TJ 0.5226 Tc 29.791 0 Td (.I)Tj 0 Tc 1.11 0 Td [(f)-273(we)-273(h)1(ave )-23(a )-23(server)]TJ -30.9 -1.2 Td [(that )-60(is )-60(contacted )-60(by )-60(numer)17(ous )-60(clients, )-60(each )-60(client )-60(can )-60(write )-60(its )-60(r)18(equest )-60(to )-60(a )-60(well-known)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47412 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.2)]TJ 39.439 0 Td (Overview)Tj /T1_1 1 Tf 6.394 0 Td (673)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 0.883 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (\245T)Tj 0 Tc 2.102 0 Td [(her)18(e)-290(is)-290(another )-40(input )-40(limit,)]TJ /TT0 1 Tf 12.228 0 Td (MAX_CANON)Tj /T1_0 1 Tf 0.2901 Tc (,t)Tj 0 Tc 6.266 0 Td [(hat )-40(we )-40(don\325t )-40(show )-40(her)18(e. )-290(This)-290(limit )-40(is)]TJ -19.107 -1.2 Td (the maximum number of bytes in a canonical input line.)Tj 0.883 Tc -1.489 -1.6 Td (\245A)Tj 0 Tc 2.267 0 Td [(lthough )-112(the )-112(size )-112(of )-112(the )-112(output )-112(queue )-112(is )-112(\336nite, )-112(no )-112(constants )-112(de\336ning )-112(that )-112(size)]TJ -0.778 -1.2 Td (ar)Tj 0.3597 Tc 0.877 0 Td (ea)Tj 0 Tc 1.339 0 Td [(ccessible )-110(to )-110(the )-110(pr)18(ogram, )-110(because )-110(when )-110(the )-110(output )-110(queue )-110(starts )-110(to )-110(\336ll )-110(up,)]TJ -2.216 -1.2 Td [(the kernel simply puts the writing pr)18(ocess to sleep until r)18(oom is available.)]TJ 0.883 Tc -1.489 -1.6 Td (\245W)Tj 0 Tc 2.397 0 Td [(e\325ll )-155(see )-155(how )-155(the)]TJ /TT0 1 Tf 7.69 0 Td (tcflush)Tj /T1_0 1 Tf 4.605 0 Td [(\337ush )-155(function )-155(allows )-155(us )-155(to )-155(\337ush )-155(either )-155(the )-155(input)]TJ -13.203 -1.2 Td [(queue )-351(or )-351(the )-351(output )-351(queue.)-853(Similarly)]TJ 0.6015 Tc 18.2 0 Td (,w)Tj 0 Tc 1.686 0 Td [(hen )-351(we )-351(describe )-351(the)]TJ /TT0 1 Tf 10.425 0 Td (tcsetattr)Tj /T1_0 1 Tf -30.311 -1.2 Td [(function, )-216(we\325ll )-216(see )-216(how )-216(we )-216(can )-216(tell )-216(the )-216(system )-216(to )-216(change )-216(the )-216(attributes )-216(of )-216(a)]TJ 0 -1.2 TD [(terminal )-99(device )-99(only )-99(after )-99(the )-99(output )-99(queue )-99(is )-99(empty)]TJ 0.5988 Tc 23.98 0 Td (.\()Tj -0.092 Tc 1.182 0 Td [(We )-283(w)]TJ 0 Tc 2.57 0 Td [(ant )-99(to )-99(do )-99(this, )-99(for)]TJ -27.732 -1.2 Td [(example, )-34(if )-34(we\325r)]TJ 0.2837 Tc 7.158 0 Td (ec)Tj 0 Tc 1.207 0 Td [(hanging )-34(the )-34(output )-34(attributes.\))]TJ -0.092 Tc 14.232 0 Td [(We )-218(c)]TJ 0 Tc 2.115 0 Td [(an )-34(also )-34(tell )-34(the )-34(system )-34(to)]TJ -24.711 -1.2 Td (discar)Tj 0.4078 Tc 2.647 0 Td (de)Tj 0 Tc 1.498 0 Td [(verything )-158(in )-158(the )-158(input )-158(queue )-158(when )-158(changing )-158(the )-158(terminal )-158(attributes.)]TJ -4.145 -1.2 Td (\(W)Tj 0.3195 Tc 1.241 0 Td (ew)Tj 0 Tc 1.633 0 Td [(ant )-69(to )-69(do )-69(this )-69(if )-69(we\325r)]TJ 0.3195 Tc 9.249 0 Td (ec)Tj 0 Tc 1.242 0 Td [(hanging )-70(the )-70(input )-70(attributes )-70(or )-70(changing )-70(between)]TJ -13.366 -1.2 Td [(canonical )-78(and )-78(noncanonical )-78(modes, )-78(so )-78(that )-78(pr)18(eviously )-78(enter)18(ed )-78(characters )-78(ar)16(en\325t)]TJ T* [(interpr)18(eted in the wr)18(ong mode.\))]TJ -1.489 -2.04 Td [(Most )-71(UNIX )-71(systems )-71(implement )-71(all )-71(the )-71(canonical )-71(pr)18(ocessing )-71(in )-71(a )-71(module )-71(called )-71(the)]TJ /T1_2 1 Tf -1.8 -1.2 Td [(terminal )-229(line )-229(discipline)]TJ /T1_0 1 Tf 0.7286 Tc 9.756 0 Td (.W)Tj 0.4786 Tc 1.887 0 Td (ec)Tj 0 Tc 1.402 0 Td [(an )-229(think )-229(of )-229(this )-229(module )-229(as )-229(a )-229(box )-229(that )-229(sits )-229(between )-229(the)]TJ -13.044 -1.2 Td [(kernel\325s generic r)18(ead and write functions and the actual device driver \(see Figur)]TJ 0.25 Tc 35.273 0 Td (e1)Tj 0 Tc 1.229 0 Td (8.2\).)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2886 3666 720 288 re S Q BT /T1_0 1 Tf -0.018 Tc 7.999 0 0 7.999 298.6242 384.1939 Tm (re)Tj 0 Tc 0.856 0 Td (ad and write)Tj 0.321 -1.25 Td (functions)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2886 3090 720 288 re S Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 309.5563 326.5812 Tm (terminal)Tj -1.225 -1.25 Td (line discipline)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2886 2514 720 288 re S Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 309.5377 268.9754 Tm (terminal)Tj -1.054 -1.25 Td (device driver)Tj ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 312.576 337.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 3125.76 3378 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3126.25 3666.25 cm 0 0 m 0 -216 l S Q Q q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 336.624 366.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 3366.24 3666 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3366.25 3594.25 cm 0 0 m 0 -216 l S Q Q q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 312.576 280.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3125.76 2802 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3126.25 3090.25 cm 0 0 m 0 -216 l S Q Q q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 336.624 309 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3366.24 3090 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3366.25 3018.25 cm 0 0 m 0 -216 l S Q Q q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 324.6 395.4 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3246 3954 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 324.6 431.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 3246 4314 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 4026.25 cm 0 0 m 0 216 l S Q Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 302.6344 434.3793 Tm [(user pr)18(ocess)]TJ ET q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 324.6 251.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 3246 2514 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 324.6 215.4 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 3246 2154 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 2442.25 cm 0 0 m 0 -216 l S Q Q BT /T1_0 1 Tf 7.9942 0 0 7.9942 301.251 208.4898 Tm (actual device)Tj ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 2334.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 2404.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 2475.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 2545.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 2616.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 2687.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 2757.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 2828.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 2898.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 2969.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3039.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3110.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3180.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3251.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3322.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3392.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3463.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3533.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3604.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3674.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3745.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3816.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3886.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3957.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 4027.25 cm 0 0 m 0 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 4098.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2781.25 4134.25 cm 0 0 m 36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2855.25 4134.25 cm 0 0 m 36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2930.25 4134.25 cm 0 0 m 36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3004.25 4134.25 cm 0 0 m 36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3079.25 4134.25 cm 0 0 m 36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3153.25 4134.25 cm 0 0 m 36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3228.25 4134.25 cm 0 0 m 36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3303.25 4134.25 cm 0 0 m 36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3377.25 4134.25 cm 0 0 m 36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3452.25 4134.25 cm 0 0 m 36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3526.25 4134.25 cm 0 0 m 36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3601.25 4134.25 cm 0 0 m 36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3675.25 4134.25 cm 0 0 m 36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 4134.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 4063.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3993.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3922.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3852.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3781.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3710.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3640.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3569.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3499.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3428.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3358.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3287.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3216.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3146.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3075.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3005.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 2934.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 2864.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 2793.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 2723.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 2652.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 2581.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 2511.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 2440.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 2370.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3711.25 2334.25 cm 0 0 m -36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3637.25 2334.25 cm 0 0 m -36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3562.25 2334.25 cm 0 0 m -36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3488.25 2334.25 cm 0 0 m -36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3413.25 2334.25 cm 0 0 m -36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3339.25 2334.25 cm 0 0 m -36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3264.25 2334.25 cm 0 0 m -36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3189.25 2334.25 cm 0 0 m -36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3115.25 2334.25 cm 0 0 m -36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3040.25 2334.25 cm 0 0 m -36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2966.25 2334.25 cm 0 0 m -36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2891.25 2334.25 cm 0 0 m -36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2817.25 2334.25 cm 0 0 m -36 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2742.25 2334.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9938 0 0 7.9938 380.3032 321.3892 Tm (kernel)Tj /T1_1 1 Tf -15.043 -16.88 Td (Figure 18.2)Tj /T1_0 1 Tf -0.092 Tc 5.695 0 Td (Te)Tj 0 Tc 1 0 Td (rminal line discipline)Tj 9.9922 0 0 9.9922 129.4991 157.677 Tm [(By )-207(isolating )-207(the )-207(canonical )-207(pr)20(ocessing )-207(in )-207(a )-207(separate )-207(module, )-207(all )-207(terminal )-207(drivers )-207(can)]TJ T* [(support )-50(canonical )-50(pr)18(ocessing )-50(consistently)]TJ 0.5504 Tc 18.461 0 Td (.W)Tj 0 Tc 1.708 0 Td [(e\325ll )-50(r)18(eturn )-50(to )-50(this )-50(pictur)]TJ 0.3003 Tc 10.44 0 Td (ew)Tj 0 Tc 1.613 0 Td [(hen )-50(we )-50(discuss)]TJ -32.222 -1.2 Td (pseudo terminals in Chapter 19.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47413 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (989)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm [(symbolic link,)-500(55, 94)]TJ 9.291 0.09 Td (\320)Tj 0.583 -0.09 Td [(95, 1)55(10)]TJ 3.028 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (111)Tj 0.25 Tc 1.39 0 Td (,1)Tj 0 Tc 0.945 0 Td [(14, 1)55(18,)]TJ -13.121 -1.25 Td (120)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (123, 131, 137, 141, 186, 908)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (909)Tj /TT0 1 Tf -17.033 -1.25 Td (symlink)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(123)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (124, 331, 452)Tj -9.89 -1.25 Td [(de\336nition of,)-500(123)]TJ /TT0 1 Tf -1.35 -1.25 Td (symlinkat)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(123)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (124, 331, 452)Tj -11.09 -1.25 Td [(de\336nition of,)-500(123)]TJ /TT0 1 Tf -1.35 -1.25 Td (SYMLINK_MAX)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(39,)-250(44, 49)]TJ /TT0 1 Tf -7.017 -1.25 Td (SYMLOOP_MAX)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(40,)-250(43, 48)]TJ 8.563 0.09 Td (\320)Tj 0.583 -0.09 Td (49)Tj /TT0 1 Tf -16.163 -1.25 Td (sync)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(61,)-250(81, 452)]TJ -1.467 -1.25 Td [(de\336nition of,)-500(81)]TJ /TT0 1 Tf -1.35 -1.25 Td (sync)Tj /T1_0 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(81)]TJ -2.817 -1.25 Td [(synchr)18(onization mechanisms,)-500(86)]TJ 14.704 0.09 Td (\320)Tj 0.583 -0.09 Td (87)Tj -15.288 -1.25 Td [(synchr)18(onous write,)-500(63, 86)]TJ 11.574 0.09 Td (\320)Tj 0.583 -0.09 Td (87)Tj /TT0 1 Tf -12.157 -1.25 Td ()Tj /T1_0 1 Tf 7.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (69)Tj /TT0 1 Tf -11.839 -1.25 Td (sysconf)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(20,)-250(37, 39, 41)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (48, 50)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (54, 57,)Tj -15.707 -1.25 Td (59)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (60, 69, 98, 201, 221, 256, 276, 280)Tj 14.083 0.09 Td (\320)Tj 0.583 -0.09 Td (281,)Tj -16.333 -1.25 Td (384, 425)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (426, 429, 431, 442, 516, 527, 616, 618,)Tj -4.166 -1.25 Td (623, 800, 815, 907)Tj -1.35 -1.25 Td [(de\336nition of,)-500(42)]TJ /TT0 1 Tf -1.35 -1.25 Td (sysctl)Tj /T1_0 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(315,)-250(559)]TJ /TT0 1 Tf -4.017 -1.25 Td (sysdef)Tj /T1_0 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(559)]TJ /TT0 1 Tf -4.017 -1.25 Td ()Tj /T1_0 1 Tf 10.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,8)Tj 0 Tc 1.25 0 Td (8)Tj /TT0 1 Tf -14.839 -1.25 Td ()Tj /T1_0 1 Tf 8.217 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,8)Tj 0 Tc 1.25 0 Td (8)Tj /TT0 1 Tf -12.439 -1.25 Td ()Tj /T1_0 1 Tf 7.017 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (0, 558)Tj /TT0 1 Tf -11.239 -1.25 Td ()Tj /T1_0 1 Tf 13.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (14)Tj /TT0 1 Tf -17.839 -1.25 Td (syslog)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(452,)-250(465, 468)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (476, 478)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (480,)Tj -16.107 -1.25 Td (615)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (619, 622)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (623, 901, 904, 928)Tj -7.683 -1.25 Td [(de\336nition of,)-500(470)]TJ /TT0 1 Tf -1.35 -1.25 Td (syslogd)Tj /T1_0 1 Tf 4.617 0 Td [(pr)18(ogram, )-250(470)]TJ 6.191 0.09 Td (\320)Tj 0.583 -0.09 Td (471, 473, 475, 479)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (480)Tj /TT0 1 Tf -19.558 -1.25 Td ()Tj /T1_0 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (0)Tj /TT0 1 Tf -10.639 -1.25 Td ()Tj /T1_0 1 Tf 8.217 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,1)Tj 0 Tc 1.25 0 Td (38)Tj /TT0 1 Tf -12.439 -1.25 Td ()Tj /T1_0 1 Tf 7.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj /TT0 1 Tf -11.839 -1.25 Td ()Tj /T1_0 1 Tf 7.017 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (0)Tj /TT0 1 Tf -11.239 -1.25 Td ()Tj /T1_0 1 Tf 7.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,8)Tj 0 Tc 1.25 0 Td (8)Tj /TT0 1 Tf -11.839 -1.25 Td ()Tj /T1_0 1 Tf 8.217 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,4)Tj 0 Tc 1.25 0 Td (9, 51)Tj /TT0 1 Tf -12.439 -1.25 Td ()Tj /T1_0 1 Tf 10.017 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (0)Tj /TT0 1 Tf -14.239 -1.25 Td ()Tj /T1_0 1 Tf 8.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9, 501, 504, 932)Tj 6.583 0.09 Td (\320)Tj 0.583 -0.09 Td (933)Tj /TT0 1 Tf -20.205 -1.25 Td ()Tj /T1_0 1 Tf 7.017 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (0, 568)Tj /TT0 1 Tf -11.239 -1.25 Td ()Tj /T1_0 1 Tf 7.017 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (0)Tj /TT0 1 Tf -11.239 -1.25 Td (sys_siglist)Tj /T1_0 1 Tf 7.017 0 Td [(variable, )-250(379)]TJ /TT0 1 Tf -7.017 -1.25 Td ()Tj /T1_0 1 Tf 8.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (14)Tj /TT0 1 Tf -13.039 -1.25 Td ()Tj /T1_0 1 Tf 8.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9, 608)Tj /TT0 1 Tf -13.039 -1.25 Td ()Tj /T1_0 1 Tf 8.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,8)Tj 0 Tc 1.25 0 Td (8)Tj /TT0 1 Tf -13.039 -1.25 Td ()Tj /T1_0 1 Tf 7.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9, 97)Tj /TT0 1 Tf -11.839 -1.25 Td ()Tj /T1_0 1 Tf 9.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj /TT0 1 Tf -13.639 -1.25 Td ()Tj /T1_0 1 Tf 10.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,1)Tj 0 Tc 1.25 0 Td (38)Tj -14.839 -1.25 Td [(system calls,)-500(1, 21)]TJ 1.35 -1.25 Td [(interr)8(upted, )-250(327)]TJ 7.413 0.09 Td (\320)Tj 0.583 -0.09 Td (330, 343, 351, 354)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (355, 365,)Tj -14.813 -1.25 Td (508)Tj -0.018 Tc -1.35 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(started, )-250(329)]TJ 5.394 0.09 Td (\320)Tj 0.583 -0.09 Td (330, 342)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (343, 351, 354, 508, 700)Tj -11 -1.25 Td [(tracing, )-250(497)]TJ 0 -1.25 TD [(versus functions,)-500(21)]TJ 9.104 0.09 Td (\320)Tj 0.583 -0.09 Td (23)Tj /TT0 1 Tf -11.038 -1.25 Td (system)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(23,)-250(129, 227, 249, 264)]TJ 13.54 0.09 Td (\320)Tj 0.583 -0.09 Td (269,)Tj -15.44 -1.25 Td (281)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (283, 349, 367)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (372, 381, 451, 538, 542,)Tj 17.667 66.25 Td (923, 936)Tj -1.35 -1.25 Td [(de\336nition of,)-500(265)]TJ 7.775 0.09 Td (\320)Tj 0.583 -0.09 Td (266, 369)Tj -0.018 Tc -8.359 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(turn value,)-500(371)]TJ -2.206 -1.25 Td [(system identi\336cation,)-500(187)]TJ 11.549 0.09 Td (\320)Tj 0.583 -0.09 Td (189)Tj -12.133 -1.25 Td [(system pr)18(ocess, )-250(228,)-250(337)]TJ T* (System V)Tj 0.5 Tc 4.036 0 Td (,x)Tj 0 Tc 1.266 0 Td (xv)Tj 0.25 Tc 0.97 0 Td (,8)Tj 0 Tc 1 0 Td (7, 464, 466, 469, 475, 482, 485,)Tj -4.572 -1.25 Td (500)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (501, 506, 509)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (510, 722, 726)Tj -11.033 -1.25 Td (System V Interface De\336nition,)Tj /T1_2 1 Tf 13.766 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td (SVID)Tj /TT0 1 Tf -15.183 -1.25 Td ()Tj /T1_0 1 Tf 7.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (0, 501)Tj /TT0 1 Tf -11.839 -1.25 Td ()Tj /T1_0 1 Tf 8.217 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj /TT0 1 Tf -12.439 -1.25 Td ()Tj /T1_0 1 Tf 8.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,8)Tj 0 Tc 1.25 0 Td (8)Tj /TT0 1 Tf -13.039 -1.25 Td ()Tj /T1_0 1 Tf 8.217 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9, 58, 138, 501, 557, 933)Tj /TT0 1 Tf -12.439 -1.25 Td ()Tj /T1_0 1 Tf 7.017 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (0)Tj /TT0 1 Tf -11.239 -1.25 Td ()Tj /T1_0 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9, 634)Tj /TT0 1 Tf -10.639 -1.25 Td ()Tj /T1_0 1 Tf 9.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj /TT0 1 Tf -13.639 -1.25 Td ()Tj /T1_0 1 Tf 7.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9, 239)Tj /TT0 1 Tf -11.839 -7 Td (TAB0)Tj /T1_0 1 Tf 2.817 0 Td [(constant, )-250(691)]TJ /TT0 1 Tf -2.817 -1.25 Td (TAB1)Tj /T1_0 1 Tf 2.817 0 Td [(constant, )-250(691)]TJ /TT0 1 Tf -2.817 -1.25 Td (TAB2)Tj /T1_0 1 Tf 2.817 0 Td [(constant, )-250(691)]TJ /TT0 1 Tf -2.817 -1.25 Td (TAB3)Tj /T1_0 1 Tf 2.817 0 Td [(constant, )-250(690)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (691)Tj /TT0 1 Tf -9.463 -1.25 Td (TABDLY)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(676,)-250(684, 689)]TJ 10.063 0.09 Td (\320)Tj 0.583 -0.09 Td (691)Tj -0.092 Tc -14.663 -1.25 Td (Ta)Tj 0 Tc 1.021 0 Td [(nkus, E.,)-500(xxxii)]TJ /TT0 1 Tf -1.021 -1.25 Td (tar)Tj /T1_0 1 Tf 2.217 0 Td [(pr)18(ogram, )-250(127,)-250(135, 142, 910)]TJ 12.191 0.09 Td (\320)Tj 0.583 -0.09 Td [(91)55(1)]TJ /TT0 1 Tf -14.991 -1.25 Td ()Tj /T1_0 1 Tf 4.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj /TT0 1 Tf -8.839 -1.25 Td (tcdrain)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(322,)-250(331, 451, 677, 693)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(693)]TJ /TT0 1 Tf -1.35 -1.25 Td (tcflag_t)Tj /T1_0 1 Tf 5.217 0 Td [(data type,)-500(674)]TJ /TT0 1 Tf -5.217 -1.25 Td (tcflow)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(322,)-250(331, 677, 693)]TJ -2.667 -1.25 Td [(de\336nition of,)-500(693)]TJ /TT0 1 Tf -1.35 -1.25 Td (tcflush)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(145,)-250(322, 331, 673, 677, 693)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(693)]TJ /TT0 1 Tf -1.35 -1.25 Td (tcgetattr)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(331,)-250(674, 677, 679, 683)]TJ 14.04 0.09 Td (\320)Tj 0.583 -0.09 Td (684,)Tj -17.74 -1.25 Td (691)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (692, 695, 701, 705)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (707, 722, 730)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (731)Tj -17.849 -1.25 Td [(de\336nition of,)-500(683)]TJ /TT0 1 Tf -1.35 -1.25 Td (tcgetpgrp)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(298)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (299, 331, 674, 677)Tj -11.09 -1.25 Td [(de\336nition of,)-500(298)]TJ /TT0 1 Tf -1.35 -1.25 Td (tcgetsid)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(298)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (299, 674, 677)Tj -10.49 -1.25 Td [(de\336nition of,)-500(299)]TJ /TT0 1 Tf -1.35 -1.25 Td (TCIFLUSH)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(693)]TJ /TT0 1 Tf -5.217 -1.25 Td (TCIOFF)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(693)]TJ /TT0 1 Tf -4.017 -1.25 Td (TCIOFLUSH)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(693)]TJ /TT0 1 Tf -5.817 -1.25 Td (TCION)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(693)]TJ -3.417 -1.25 Td [(TCMalloc, )-250(210,)-250(949)]TJ /TT0 1 Tf T* (TCOFLUSH)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(693)]TJ /TT0 1 Tf -5.217 -1.25 Td (TCOOFF)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(693)]TJ /TT0 1 Tf -4.017 -1.25 Td (TCOON)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(693)]TJ /TT0 1 Tf -3.417 -1.25 Td (TCSADRAIN)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(683)]TJ /TT0 1 Tf -5.817 -1.25 Td (TCSAFLUSH)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(679,)-250(683, 701, 705)]TJ 12.063 0.09 Td (\320)Tj 0.583 -0.09 Td (707)Tj /TT0 1 Tf -18.463 -1.25 Td (TCSANOW)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(683)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (684, 728, 731)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47414 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.6)]TJ 40.154 0 Td [(XSI )-250(IPC)]TJ /T1_1 1 Tf 5.679 0 Td (557)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(given )-197(IPC )-197(str)7(uctur)18(e)-447(is)-447(c)]TJ -0.018 Tc 11.04 0 Td (re)Tj 0 Tc 0.856 0 Td [(ated )-197(and )-197(then )-197(r)17(emoved, )-197(the )-197(identi\336er )-197(associated )-197(with )-197(that)]TJ -11.896 -1.2 Td [(str)8(uctur)]TJ 0.5237 Tc 3.49 0 Td (ec)Tj 0 Tc 1.447 0 Td [(ontinually )-274(incr)18(eases )-274(until )-274(it )-274(r)18(eaches )-274(the )-274(maximum )-274(positive )-274(value )-274(for )-274(an)]TJ -4.937 -1.2 Td (integer)Tj 0.25 Tc 3.034 0 Td (,a)Tj 0 Tc 1 0 Td [(nd then wraps ar)18(ound to 0.)]TJ -2.234 -1.2 Td [(The )-37(identi\336er )-37(is )-37(an )-37(internal )-37(name )-37(for )-37(an )-37(IPC )-37(object.)-537(Cooperating )-37(pr)18(ocesses )-37(need )-37(an)]TJ -1.8 -1.2 Td [(external )-107(naming )-107(scheme )-107(to )-107(be )-107(able )-107(to )-107(r)18(endezvous )-107(using )-107(the )-107(same )-107(IPC )-107(object.)-610(For )-107(this)]TJ 0 -1.2 TD (purpose, an IPC object is associated with a)Tj /T1_2 1 Tf 19.006 0 Td (key)Tj /T1_0 1 Tf 1.583 0 Td (that acts as an external name.)Tj -18.789 -1.2 Td [(Whenever )-342(an )-342(IPC )-342(str)9(uctur)]TJ 0.5917 Tc 12.558 0 Td (ei)Tj 0.5916 Tc 1.362 0 Td (sb)Tj 0 Tc 1.569 0 Td [(eing )-342(cr)18(eated )-342(\(by )-342(calling)]TJ /TT0 1 Tf 11.887 0 Td (msgget)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.442 0 Td (semget)Tj /T1_0 1 Tf 0.5916 Tc (,o)Tj 0 Tc 4.988 0 Td (r)Tj /TT0 1 Tf -38.605 -1.2 Td (shmget)Tj /T1_0 1 Tf [(\), )-6(a )-6(key )-6(must )-6(be )-6(speci\336ed.)-509(The )-7(data )-7(type )-7(of )-7(this )-7(key )-7(is )-7(the )-7(primitive )-7(system )-7(data)]TJ T* (type)Tj /TT0 1 Tf 2.335 0 Td (key_t)Tj /T1_0 1 Tf 0.3727 Tc (,w)Tj 0 Tc 4.457 0 Td [(hich )-123(is )-123(often )-123(de\336ned )-123(as )-123(a )-123(long )-123(integer )-123(in )-123(the )-123(header)]TJ /TT0 1 Tf 24.159 0 Td ()Tj /T1_0 1 Tf (.)Tj -30.95 -1.2 Td (This key is converted into an identi\336er by the kernel.)Tj 1.8 -1.2 Td (Ther)Tj 0.4248 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.404 0 Td [(re )-211(v)]TJ 0 Tc 1.846 0 Td [(arious )-175(ways )-175(for )-175(a )-175(client )-175(and )-175(a )-175(server )-175(to )-175(r)18(endezvous )-175(at )-175(the )-175(same )-175(IPC)]TJ -7.101 -1.2 Td [(str)8(uctur)18(e.)]TJ 1.8 -2.4 Td [(1. )-633(The)-290(server )-40(can )-40(cr)18(eate )-40(a )-40(new )-40(IPC )-40(str)6(uctur)18(e)-290(by)-290(s)-1(pecifying )-40(a )-40(key )-40(of)]TJ /TT0 1 Tf 30.6 0 Td (IPC_PRIVATE)Tj /T1_0 1 Tf -28.967 -1.2 Td [(and )-202(stor)]TJ 0.452 Tc 3.818 0 Td (et)Tj 0 Tc 1.257 0 Td [(he )-202(r)18(eturned )-202(identi\336er )-202(somewher)]TJ 0.4521 Tc 14.932 0 Td (e\()Tj 0 Tc 1.264 0 Td [(such )-202(as )-202(a )-202(\336le\) )-202(for )-202(the )-202(client )-202(to)]TJ -21.271 -1.2 Td [(obtain. )-421(The)-421(key)]TJ /TT0 1 Tf 7.825 0 Td (IPC_PRIVATE)Tj /T1_0 1 Tf 7.021 0 Td [(guarantees )-171(that )-171(the )-171(server )-171(cr)18(eates )-171(a )-171(new )-171(IPC)]TJ -14.846 -1.2 Td [(str)8(uctur)18(e. )-333(The)-334(disadvantage )-84(of )-84(this )-84(technique )-84(is )-84(that )-84(\336le )-84(system )-84(operations )-84(ar)22(e)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(quir)18(ed )-105(for )-105(the )-105(server )-105(to )-105(write )-105(the )-105(integer )-105(identi\336er )-105(to )-105(a )-105(\336le, )-105(and )-105(then )-105(for )-105(the)]TJ -0.856 -1.2 Td [(clients to r)18(etrieve this identi\336er later)74(.)]TJ 0 -1.8 TD (The)Tj /TT0 1 Tf 2.021 0 Td (IPC_PRIVATE)Tj /T1_0 1 Tf 6.947 0 Td [(key )-97(is )-97(also )-97(used )-97(in )-97(a )-97(par)15(ent\320child )-98(r)18(elationship. )-348(The)-347(par)18(ent)]TJ -8.969 -1.2 Td [(cr)18(eates )-429(a )-429(new )-429(IPC )-429(str)9(uctur)]TJ 0.6787 Tc 13.279 0 Td (es)Tj 0 Tc 1.582 0 Td (pecifying)Tj /TT0 1 Tf 4.812 0 Td (IPC_PRIVATE)Tj /T1_0 1 Tf 0.6786 Tc (,a)Tj 0 Tc 8.029 0 Td [(nd )-429(the )-429(r)19(esulting)]TJ -27.701 -1.2 Td [(identi\336er )-129(is )-129(then )-129(available )-129(to )-129(the )-129(child )-129(after )-129(the)]TJ /TT0 1 Tf 22.018 0 Td (fork)Tj /T1_0 1 Tf 0.6287 Tc (.T)Tj 0 Tc 3.892 0 Td [(he )-129(child )-129(can )-129(pass )-129(the)]TJ -25.91 -1.2 Td [(identi\336er to a new pr)18(ogram as an ar)18(gument to one of the)]TJ /TT0 1 Tf 25.241 0 Td (exec)Tj /T1_0 1 Tf 2.65 0 Td (functions.)Tj -29.524 -1.6 Td [(2. )-633(The)-342(client )-92(and )-92(the )-92(server )-92(can )-92(agr)18(ee )-92(on )-92(a )-92(key )-92(by )-92(de\336ning )-92(the )-92(key )-92(in )-92(a )-92(common)]TJ 1.633 -1.2 Td (header)Tj 0.2682 Tc 2.972 0 Td (,f)Tj 0 Tc 0.851 0 Td [(or )-18(example.)-518(The )-18(server )-18(then )-18(cr)17(eates )-18(a )-18(new )-18(IPC )-18(str)7(uctur)]TJ 0.2683 Tc 24.548 0 Td (es)Tj 0 Tc 1.171 0 Td [(pecifying )-18(this)]TJ -29.543 -1.2 Td (key)Tj 0.5758 Tc 1.48 0 Td (.T)Tj 0 Tc 1.439 0 Td [(he )-76(pr)18(oblem )-76(with )-76(this )-76(appr)18(oach )-76(is )-76(that )-76(it\325s )-76(possible )-76(for )-76(the )-76(key )-76(to )-76(alr)21(eady)]TJ -2.919 -1.2 Td [(be )-123(associated )-123(with )-123(an )-123(IPC )-123(str)8(uctur)18(e, )-123(in )-123(which )-123(case )-123(the)]TJ /TT0 1 Tf 25.131 0 Td (get)Tj /T1_0 1 Tf 2.173 0 Td [(function )-123(\()]TJ /TT0 1 Tf (msgget)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf -27.304 -1.2 Td (semget)Tj /T1_0 1 Tf 0.5704 Tc (,o)Tj 0 Tc 4.966 0 Td (r)Tj /TT0 1 Tf 0.965 0 Td (shmget)Tj /T1_0 1 Tf 0.5704 Tc (\)r)Tj 0 Tc 4.88 0 Td [(eturns )-320(an )-320(err)17(or)]TJ 0.8204 Tc 7.15 0 Td (.T)Tj 0 Tc 1.683 0 Td [(he )-320(server )-320(must )-320(handle )-320(this )-320(err)17(or)74(,)]TJ -19.645 -1.2 Td [(deleting the existing IPC str)8(uctur)18(e, and try to cr)18(eate it again.)]TJ -1.633 -1.6 Td [(3. )-633(The)-268(client )-18(and )-18(the )-18(server )-18(can )-18(agr)18(ee )-18(on )-18(a )-18(pathname )-18(and )-18(pr)21(oject )-18(ID )-18(\(the )-18(pr)18(oject )-18(ID)]TJ 1.633 -1.2 Td [(is )-119(a )-119(character )-119(value )-119(between )-119(0 )-119(and )-119(255\) )-119(and )-119(call )-119(the )-119(function)]TJ /TT0 1 Tf 28.219 0 Td (ftok)Tj /T1_0 1 Tf 2.769 0 Td [(to )-119(convert)]TJ -30.989 -1.2 Td [(these )-109(two )-109(values )-109(into )-109(a )-109(key)]TJ 0.6095 Tc 12.381 0 Td (.T)Tj 0 Tc 1.472 0 Td [(his )-110(key )-110(is )-110(then )-110(used )-110(in )-110(step )-110(2.)-610(The )-110(only )-110(service)]TJ -13.853 -1.2 Td [(pr)18(ovided )-17(by)]TJ /TT0 1 Tf 5.724 0 Td (ftok)Tj /T1_0 1 Tf 2.667 0 Td [(is )-17(a )-17(way )-17(of )-17(generating )-17(a )-17(key )-17(fr)19(om )-17(a )-17(pathname )-17(and )-17(pr)18(oject )-17(ID.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5903 245.8852 Tm (#include )Tj 0 -1.902 TD (key_t ftok\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 17.377 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (id)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 2.383 -1.902 Td (Returns: key if OK,)Tj /TT0 1 Tf 8.704 0 Td (\(key_t\))Tj /TT1 1 Tf (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2071.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 191.237 Tm (The)Tj /T1_2 1 Tf 1.937 0 Td (path)Tj /T1_0 1 Tf 2.04 0 Td [(ar)18(gument )-13(must )-13(r)17(efer )-13(to )-13(an )-13(existing )-13(\336le.)-513(Only )-13(the )-13(lower )-13(8 )-13(bits )-13(of)]TJ /T1_2 1 Tf 28.444 0 Td (id)Tj /T1_0 1 Tf 1.041 0 Td (ar)Tj 0.2635 Tc 0.877 0 Td (eu)Tj 0 Tc 1.346 0 Td (sed)Tj -37.486 -1.2 Td [(when generating the key)111(.)]TJ 1.8 -1.2 Td [(The )-197(key )-197(cr)18(eated )-197(by)]TJ /TT0 1 Tf 9.377 0 Td (ftok)Tj /T1_0 1 Tf 2.847 0 Td [(is )-197(usually )-197(formed )-197(by )-197(taking )-197(parts )-197(of )-197(the)]TJ /TT0 1 Tf 19.236 0 Td (st_dev)Tj /T1_0 1 Tf 4.047 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (st_ino)Tj /T1_0 1 Tf 3.903 0 Td [(\336elds )-53(in )-53(the)]TJ /TT0 1 Tf 5.578 0 Td (stat)Tj /T1_0 1 Tf 2.703 0 Td [(str)8(uctur)]TJ 0.3027 Tc 3.49 0 Td (e\()Tj 0 Tc 1.115 0 Td [(Section )-53(4.2\) )-53(corr)18(esponding )-53(to )-53(the )-53(given )-53(pathname)]TJ -16.788 -1.2 Td [(and )-74(combining )-74(them )-74(with )-74(the )-74(pr)18(oject )-74(ID.)-574(If )-74(two )-74(pathnames )-74(r)18(efer )-74(to )-74(two )-74(dif)19(fer)18(ent )-74(\336les,)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47415 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (138)Tj /T1_1 1 Tf 3.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.241 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 0.883 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (\245W)Tj 0.27 Tc 2.397 0 Td (ec)Tj 0 Tc 1.193 0 Td [(an )-20(usually )-20(access )-20(the )-20(major )-20(and )-20(minor )-20(device )-20(numbers )-20(thr)18(ough )-20(two )-20(macr)18(os)]TJ -2.101 -1.2 Td [(de\336ned )-105(by )-105(most )-105(implementations:)]TJ /TT0 1 Tf 15.81 0 Td (major)Tj /T1_1 1 Tf 3.355 0 Td (and)Tj /TT0 1 Tf 2.048 0 Td (minor)Tj /T1_1 1 Tf 0.6052 Tc (.C)Tj 0 Tc 4.564 0 Td [(onsequently)111(,)-355(we)-355(don\325t)]TJ -25.778 -1.2 Td (car)Tj 0.25 Tc 1.321 0 Td (eh)Tj 0 Tc 1.311 0 Td (ow the two numbers ar)Tj 0.25 Tc 10.269 0 Td (es)Tj 0 Tc 1.153 0 Td [(tor)18(ed in a)]TJ /TT0 1 Tf 4.462 0 Td (dev_t)Tj /T1_1 1 Tf 3.25 0 Td (object.)Tj 7.9995 0 0 7.9995 201.5885 624.9625 Tm [(Early )-207(systems )-207(stor)18(ed )-207(the )-207(device )-207(number )-207(in )-207(a )-207(16)]TJ 22.415 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-207(integer)]TJ 0.4574 Tc 4.661 0 Td (,w)Tj 0 Tc 1.541 0 Td [(ith )-207(8 )-207(bits )-207(for )-207(the )-207(major)]TJ -28.951 -1.25 Td [(number )-78(and )-78(8 )-78(bits )-78(for )-78(the )-78(minor )-78(number)]TJ 0.5775 Tc 18.354 0 Td (.F)Tj -0.018 Tc 1.384 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD )-77(8.0 )-77(and )-77(Mac )-77(OS )-77(X )-77(10.6.8 )-77(use )-77(a )-77(32)]TJ 17.653 0.09 Td (-)Tj 0.333 -0.09 Td (bit)Tj -38.58 -1.25 Td (integer)Tj 0.3868 Tc 3.034 0 Td (,w)Tj 0 Tc 1.471 0 Td [(ith )-137(8 )-137(bits )-137(for )-137(the )-137(major )-137(number )-137(and )-137(24 )-137(bits )-137(for )-137(the )-137(minor )-137(number)]TJ 0.6368 Tc 30.101 0 Td (.O)Tj 0.3868 Tc 1.673 0 Td (n3)Tj 0 Tc 1.469 0 Td (2)Tj 0.5 0.09 Td (-)Tj 0.333 -0.09 Td (bit)Tj -38.58 -1.25 Td [(systems, )-89(Solaris )-89(10 )-89(uses )-89(a )-89(32)]TJ 12.866 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-89(integer )-89(for)]TJ /TT0 1 Tf 6.571 0 Td (dev_t)Tj /T1_1 1 Tf 0.3395 Tc (,w)Tj 0 Tc 4.423 0 Td [(ith )-89(14 )-89(bits )-89(designated )-89(as )-89(the )-89(major)]TJ -24.192 -1.25 Td [(number )-255(and )-255(18 )-255(bits )-255(designated )-255(as )-255(the )-255(minor )-255(number)]TJ 0.7555 Tc 25.113 0 Td (.O)Tj 0.5055 Tc 1.791 0 Td (n6)Tj 0 Tc 1.587 0 Td (4)Tj 0.5 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-255(systems, )-255(Solaris )-255(10)]TJ -0.018 Tc -29.325 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(pr)18(esents)]TJ /TT0 1 Tf 4.188 0 Td (dev_t)Tj /T1_1 1 Tf 3.496 0 Td [(as )-246(a )-246(64)]TJ 3.416 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-246(integer)]TJ 0.496 Tc 4.7 0 Td (,w)Tj 0 Tc 1.58 0 Td [(ith )-246(32 )-246(bits )-246(for )-246(each )-246(number)]TJ 0.7459 Tc 12.972 0 Td (.O)Tj 0.4959 Tc 1.782 0 Td (nL)Tj 0 Tc 1.689 0 Td [(inux )-246(3.2.0,)]TJ -35.012 -1.25 Td (although)Tj /TT0 1 Tf 4.263 0 Td (dev_t)Tj /T1_1 1 Tf 3.277 0 Td [(is )-27(a )-27(64)]TJ 2.77 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-27(integer)]TJ 0.2776 Tc 4.481 0 Td (,o)Tj 0 Tc 1.074 0 Td [(nly )-28(12 )-28(bits )-28(ar)]TJ 0.2776 Tc 5.733 0 Td (eu)Tj 0 Tc 1.36 0 Td [(sed )-28(for )-28(the )-28(major )-28(number )-28(and )-28(20 )-28(bits)]TJ -23.292 -1.25 Td (ar)Tj 0.25 Tc 0.877 0 Td (eu)Tj 0 Tc 1.332 0 Td [(sed for the minor number)74(.)]TJ -2.209 -1.875 Td [(POSIX.1 )-83(states )-83(that )-83(the)]TJ /TT0 1 Tf 10.602 0 Td (dev_t)Tj /T1_1 1 Tf 3.333 0 Td [(type )-83(exists, )-83(but )-83(doesn\325t )-83(de\336ne )-83(what )-83(it )-83(contains )-83(or )-83(how )-83(to)]TJ -13.935 -1.25 Td [(get )-60(at )-60(its )-60(contents.)-560(The )-60(macr)19(os)]TJ /TT0 1 Tf 14.143 0 Td (major)Tj /T1_1 1 Tf 3.31 0 Td (and)Tj /TT0 1 Tf 2.003 0 Td (minor)Tj /T1_1 1 Tf 3.31 0 Td (ar)Tj 0.3098 Tc 0.877 0 Td (ed)Tj 0 Tc 1.4 0 Td [(e\336ned )-60(by )-60(most )-60(implementations.)]TJ -25.042 -1.25 Td [(Which )-324(header )-324(they )-324(ar)]TJ 0.574 Tc 10.487 0 Td (ed)Tj 0 Tc 1.664 0 Td [(e\336ned )-324(in )-324(depends )-324(on )-324(the )-324(system.)-824(They )-324(can )-324(be )-324(found )-324(in)]TJ /TT0 1 Tf -12.151 -1.25 Td ()Tj /T1_1 1 Tf 8.29 0 Td [(on )-240(BSD)]TJ 3.528 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-240(systems.)-740(Solaris )-240(de\336nes )-240(their )-240(function )-240(pr)19(ototypes )-240(in)]TJ /TT0 1 Tf -12.151 -1.25 Td ()Tj /T1_1 1 Tf 0.2589 Tc (,b)Tj 0 Tc 8.862 0 Td [(ecause )-9(the )-9(macr)]TJ 0.2589 Tc 7.038 0 Td (od)Tj 0 Tc 1.416 0 Td [(e\336nitions )-9(in)]TJ /TT0 1 Tf 5.517 0 Td ()Tj /T1_1 1 Tf 10.459 0 Td (ar)Tj 0.2589 Tc 0.877 0 Td (ec)Tj 0 Tc 1.182 0 Td [(onsider)18(ed)]TJ -35.35 -1.25 Td [(obsolete )-324(in )-324(Solaris.)-824(Linux )-324(de\336nes )-324(these )-324(macr)17(os )-324(in)]TJ /TT0 1 Tf 24.703 0 Td ()Tj /T1_1 1 Tf 0.5744 Tc (,w)Tj 0 Tc 11.858 0 Td [(hich )-324(is)]TJ -36.562 -1.25 Td (included by)Tj /TT0 1 Tf 5.521 0 Td ()Tj /T1_1 1 Tf (.)Tj 0.883 Tc 9.9994 0 0 9.9994 147.5921 455.9726 Tm (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.417 0 Td (st_dev)Tj /T1_1 1 Tf 3.956 0 Td [(value )-106(for )-106(every )-106(\336lename )-106(on )-106(a )-106(system )-106(is )-106(the )-106(device )-106(number )-106(of )-106(the)]TJ -5.986 -1.2 Td [(\336le system containing that \336lename and its corr)18(esponding i-node.)]TJ 0.883 Tc -1.489 -1.6 Td (\245O)Tj 0 Tc 2.275 0 Td [(nly )-36(character )-36(special )-36(\336les )-36(and )-36(block )-36(special )-36(\336les )-36(have )-36(an)]TJ /TT0 1 Tf 25.305 0 Td (st_rdev)Tj /T1_1 1 Tf 4.486 0 Td [(value. )-286(This)]TJ -30.577 -1.2 Td (value contains the device number for the actual device.)Tj /TT1 1 Tf -6.889 -2.4 Td (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(The )-29(pr)18(ogram )-29(in )-29(Figur)]TJ 0.2794 Tc 9.626 0 Td (e4)Tj 0 Tc 1.258 0 Td [(.25 )-29(prints )-29(the )-29(device )-29(number )-29(for )-29(each )-29(command)]TJ 21.304 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-29(ar)18(gument.)]TJ -32.522 -1.2 Td [(Additionally)111(,)-311(if)-311(the )-61(ar)18(gument )-61(r)18(efers )-61(to )-61(a )-61(character )-61(special )-61(\336le )-61(or )-61(a )-61(block )-61(special )-61(\336le, )-61(the)]TJ /TT0 1 Tf 0 -1.2 TD (st_rdev)Tj /T1_1 1 Tf 4.45 0 Td (value for the special \336le is printed.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3368.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 327.2597 Tm (#include "apue.h")Tj 0 -1.189 TD (#ifdef SOLARIS)Tj T* (#include )Tj T* (#endif)Tj 0 -2.259 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-4800(i;)]TJ 0 -1.189 TD (struct stat buf;)Tj 0 -2.259 TD (for \(i = 1; i < argc; i++\) {)Tj 2.4 -1.189 Td (printf\("%s: ", argv[i]\);)Tj 0 -1.189 TD (if \(stat\(argv[i], &buf\) < 0\) {)Tj 2.4 -1.189 Td (err_ret\("stat error"\);)Tj T* (continue;)Tj -2.4 -1.189 Td (})Tj 0 -2.259 TD [(printf\("dev = %d/%d", major\(buf.st_dev\),)-1200(minor\(buf.st_dev\)\);)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47416 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(13.6)]TJ 33.937 0 Td [(Daemon )-250(Conventions)]TJ /T1_1 1 Tf 11.896 0 Td (475)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 0.883 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (\245I)Tj 0.3398 Tc 1.826 0 Td (ft)Tj 0 Tc 0.999 0 Td [(he )-90(daemon )-90(supports )-90(con\336guration )-90(options, )-90(they )-90(ar)]TJ 0.3398 Tc 22.983 0 Td (eu)Tj 0 Tc 1.422 0 Td [(sually )-90(stor)18(ed )-90(in)]TJ /TT0 1 Tf 7.321 0 Td (/etc)Tj /T1_0 1 Tf (.)Tj -33.061 -1.2 Td [(The )-231(con\336guration )-231(\336le )-231(is )-231(named)]TJ /T1_2 1 Tf 15.199 0 Td (name)Tj /TT0 1 Tf (.conf)Tj /T1_0 1 Tf 0.4808 Tc (,w)Tj 0 Tc 6.732 0 Td [(her)18(e)]TJ /T1_2 1 Tf 2.398 0 Td (name)Tj /T1_0 1 Tf 2.648 0 Td [(is )-231(the )-231(name )-231(of )-231(the)]TJ -26.976 -1.2 Td [(daemon )-248(or )-248(the )-248(name )-248(of )-248(the )-248(service.)-748(For )-248(example, )-248(the )-248(con\336guration )-248(for )-248(the)]TJ /TT0 1 Tf 0 -1.2 TD (syslogd)Tj /T1_0 1 Tf 4.45 0 Td (daemon is usually)Tj /TT0 1 Tf 8.334 0 Td (/etc/syslog.conf)Tj /T1_0 1 Tf (.)Tj 0.883 Tc -14.273 -1.6 Td (\245D)Tj 0 Tc 2.263 0 Td [(aemons )-160(can )-160(be )-160(started )-160(fr)18(om )-160(the )-160(command )-160(line, )-160(but )-160(they )-160(ar)]TJ 0.4105 Tc 27.308 0 Td (eu)Tj 0 Tc 1.492 0 Td [(sually )-160(started)]TJ -29.574 -1.2 Td [(fr)18(om )-22(one )-22(of )-22(the )-22(system )-22(initialization )-22(scripts )-22(\()]TJ /TT0 1 Tf 19.852 0 Td (/etc/rc*)Tj /T1_0 1 Tf 5.072 0 Td (or)Tj /TT0 1 Tf 1.213 0 Td (/etc/init.d/*)Tj /T1_0 1 Tf [(\). )-272(If)]TJ -26.136 -1.2 Td [(the )-63(daemon )-63(should )-63(be )-63(r)16(estarted )-63(automatically )-63(when )-63(it )-63(exits, )-63(we )-63(can )-63(arrange )-63(for)]TJ /TT0 1 Tf T* (init)Tj /T1_0 1 Tf 2.92 0 Td [(to )-270(r)18(estart )-270(it )-270(if )-270(we )-270(include )-270(a)]TJ /TT0 1 Tf 13.691 0 Td (respawn)Tj /T1_0 1 Tf 4.72 0 Td [(entry )-270(for )-270(it )-270(in)]TJ /TT0 1 Tf 7.181 0 Td (/etc/inittab)Tj /T1_0 1 Tf -28.511 -1.2 Td (\(assuming the system uses a System V style)Tj /TT0 1 Tf 19.496 0 Td (init)Tj /T1_0 1 Tf 2.65 0 Td (command\).)Tj 0.883 Tc -23.635 -1.6 Td (\245I)Tj 0.2648 Tc 1.826 0 Td (fad)Tj 0 Tc 1.974 0 Td [(aemon )-15(has )-15(a )-15(con\336guration )-15(\336le, )-15(the )-15(daemon )-15(r)18(eads )-15(the )-15(\336le )-15(when )-15(it )-15(starts, )-15(but)]TJ -2.311 -1.2 Td [(usually )-15(won\325t )-15(look )-15(at )-15(it )-15(again.)-513(If )-15(an )-15(administrator )-15(changes )-15(the )-15(con\336guration, )-15(the)]TJ T* [(daemon )-1(would )-1(need )-1(to )-1(be )-1(stopped )-1(and )-1(r)18(estarted )-1(to )-1(account )-1(for )-1(the )-1(con\336guration)]TJ T* [(changes. )-513(T)]TJ 0.5129 Tc 5.101 0 Td (oa)Tj 0 Tc 1.559 0 Td [(void )-263(this, )-263(some )-263(daemons )-263(will )-263(catch)]TJ /TT0 1 Tf 17.323 0 Td (SIGHUP)Tj /T1_0 1 Tf 4.113 0 Td [(and )-263(r)18(er)18(ead )-263(their)]TJ -28.096 -1.2 Td [(con\336guration )-202(\336les )-202(when )-202(they )-202(r)18(eceive )-202(the )-202(signal.)-702(Since )-202(they )-202(ar)18(en\325t )-202(associated)]TJ T* [(with )-160(terminals )-160(and )-160(ar)]TJ 0.4105 Tc 10.006 0 Td (ee)Tj 0 Tc 1.369 0 Td [(ither )-160(session )-160(leaders )-160(without )-160(contr)18(olling )-160(terminals )-160(or)]TJ -11.374 -1.2 Td [(members )-206(of )-206(orphaned )-206(pr)18(ocess )-206(gr)19(oups, )-206(daemons )-206(have )-206(no )-206(r)18(eason )-206(to )-206(expect )-206(to)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td (ceive)Tj /TT0 1 Tf 2.508 0 Td (SIGHUP)Tj /T1_0 1 Tf 0.5 Tc (.T)Tj 0 Tc 4.963 0 Td [(hus they can safely r)18(euse it.)]TJ /TT1 1 Tf -15.216 -3.24 Td (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(The )-459(pr)18(ogram )-459(shown )-459(in )-459(Figur)]TJ 0.709 Tc 14.592 0 Td (e1)Tj 0 Tc 1.688 0 Td [(3.7 )-459(shows )-459(one )-459(way )-459(a )-459(daemon )-459(can )-459(r)18(er)18(ead )-459(its)]TJ -16.28 -1.2 Td [(con\336guration )-147(\336le.)-647(The )-147(pr)18(ogram )-147(uses)]TJ /TT0 1 Tf 17.3 0 Td (sigwait)Tj /T1_0 1 Tf 4.597 0 Td [(and )-147(multiple )-147(thr)18(eads, )-147(as )-147(discussed )-147(in)]TJ -21.898 -1.2 Td (Section 12.8.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3814.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 371.8544 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD [(sigset_t )-1800(mask;)]TJ T* (extern int already_running\(void\);)Tj 0 -2.021 TD (void)Tj 0 -1.189 TD (reread\(void\))Tj T* ({)Tj 2.4 -1.189 Td (/* ... */)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (void *)Tj 0 -1.189 TD (thr_fn\(void *arg\))Tj T* ({)Tj 2.4 -1.189 Td (int err, signo;)Tj 0 -2.021 TD (for \(;;\) {)Tj 2.4 -1.189 Td (err = sigwait\(&mask, &signo\);)Tj 0 -1.189 TD (if \(err != 0\) {)Tj 2.4 -1.189 Td (syslog\(LOG_ERR, "sigwait failed"\);)Tj 0 -1.189 TD (exit\(1\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47417 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (464)Tj /T1_1 1 Tf 3.5 0 Td [(Daemon )-250(Pr)18(ocesses )]TJ 38.741 0 Td [(Chapter)-500(13)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Under )-179(System )-179(V\320based )-179(systems, )-179(a )-179(similar )-179(command )-179(is)]TJ /TT0 1 Tf 25.761 0 Td [(ps )-178(-efj)]TJ /T1_1 1 Tf 0.6785 Tc (.\()Tj 0 Tc 5.64 0 Td [(In )-178(an )-178(attempt )-178(to)]TJ -31.401 -1.2 Td [(impr)18(ove )-34(security)]TJ 0.2838 Tc 7.433 0 Td (,s)Tj 0 Tc 0.958 0 Td [(ome )-34(UNIX )-34(systems )-34(don\325t )-34(allow )-34(us )-34(to )-34(use)]TJ /TT0 1 Tf 18.517 0 Td (ps)Tj /T1_1 1 Tf 1.484 0 Td [(to )-34(look )-34(at )-34(any )-34(pr)19(ocesses)]TJ -28.392 -1.2 Td [(other than our own.\))-500(The output fr)18(om)]TJ /TT0 1 Tf 17.225 0 Td (ps)Tj /T1_1 1 Tf 1.45 0 Td (looks like)Tj /TT0 1 Tf 7.9995 0 0 7.9995 147.5908 625.7523 Tm [(UID )-3600(PID)-1200(PPID )-600(PGID)-1800(SID )-600(TTY )-600(CMD)]TJ 0 -1.25 TD [(root )-4200(1)]TJ 3 Tc 10.8 0 Td (011)Tj 2.4 Tc 9 0 Td (?/)Tj 0 Tc 3.6 0 Td (sbin/init)Tj -23.4 -1.25 Td [(root )-4200(2)]TJ 3 Tc 10.8 0 Td (000)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (kthreadd])Tj -23.4 -1.25 Td [(root )-4200(3)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (ksoftirqd/0])Tj -23.4 -1.25 Td [(root )-4200(6)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (migration/0])Tj -23.4 -1.25 Td [(root )-4200(7)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (watchdog/0])Tj -23.4 -1.25 Td [(root )-3600(21)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (cpuset])Tj -23.4 -1.25 Td [(root )-3600(22)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (khelper])Tj -23.4 -1.25 Td [(root )-3600(26)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (sync_supers])Tj -23.4 -1.25 Td [(root )-3600(27)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (bdi-default])Tj -23.4 -1.25 Td [(root )-3600(29)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (kblockd])Tj -23.4 -1.25 Td [(root )-3600(35)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (kswapd0])Tj -23.4 -1.25 Td [(root )-3600(49)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (scsi_eh_0])Tj -23.4 -1.25 Td [(root )-3000(256)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (jbd2/sda5-8])Tj -23.4 -1.25 Td [(root )-3000(257)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (ext4-dio-unwrit])Tj -23.4 -1.25 Td [(syslog )-1800(847)]TJ 1.8 Tc 10.8 0 Td (18)Tj 0 Tc 3 0 Td [(43 )-1200(843)]TJ 2.4 Tc 6 0 Td (?r)Tj 0 Tc 3.6 0 Td (syslogd -c5)Tj -23.4 -1.25 Td [(root )-3000(906)]TJ 1.8 Tc 10.8 0 Td (19)Tj 0 Tc 3 0 Td [(06 )-1200(906)]TJ 2.4 Tc 6 0 Td (?/)Tj 0 Tc 3.6 0 Td (usr/sbin/cupsd -F)Tj -23.4 -1.25 Td [(root )-2400(1037 )-2400(1)-1200(1037 )-600(1037 )-600(?)-2400(/usr/sbin/inetd)]TJ T* [(root )-2400(1067 )-2400(1)-1200(1067 )-600(1067 )-600(?)-2400(cron)]TJ T* [(daemon )-1200(1068)]TJ 1.2 Tc 10.8 0 Td (11)Tj 0 Tc 2.4 0 Td [(068 )-600(1068 )-600(?)-2400(atd)]TJ -13.2 -1.25 Td [(root )-2400(8196 )-2400(1)-1200(8196 )-600(8196 )-600(?)-2400(/usr/sbin/sshd -D)]TJ T* [(root )-1800(13047)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (kworker/1:0])Tj -23.4 -1.25 Td [(root )-1800(14596)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (flush-8:0])Tj -23.4 -1.25 Td [(root )-1800(26464)]TJ 0.6 Tc 10.8 0 Td (12)Tj 0 Tc 1.8 0 Td (6464 26464)Tj 2.4 Tc 7.2 0 Td (?r)Tj 0 Tc 3.6 0 Td (pcbind -w)Tj -23.4 -1.25 Td [(statd )-1200(28490)]TJ 0.6 Tc 10.8 0 Td (12)Tj 0 Tc 1.8 0 Td (8490 28490)Tj 2.4 Tc 7.2 0 Td (?r)Tj 0 Tc 3.6 0 Td (pc.statd -L)Tj -23.4 -1.25 Td [(root )-1800(28553)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (rpciod])Tj -23.4 -1.25 Td [(root )-1800(28554)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (nfsiod])Tj -23.4 -1.25 Td [(root )-1800(28561)]TJ 0.6 Tc 10.8 0 Td (12)Tj 0 Tc 1.8 0 Td (8561 28561)Tj 2.4 Tc 7.2 0 Td (?r)Tj 0 Tc 3.6 0 Td (pc.idmapd)Tj -23.4 -1.25 Td [(root )-1800(28761)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (lockd])Tj -23.4 -1.25 Td [(root )-1800(28764)]TJ 3 Tc 10.8 0 Td (200)Tj 2.4 Tc 9 0 Td (?[)Tj 0 Tc 3.6 0 Td (nfsd])Tj -23.4 -1.25 Td [(root )-1800(28775)]TJ 0.6 Tc 10.8 0 Td (12)Tj 0 Tc 1.8 0 Td (8775 28775)Tj 2.4 Tc 7.2 0 Td (?/)Tj 0 Tc 3.6 0 Td (usr/sbin/rpc.mountd --manage-gids)Tj /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5919 304.1715 Tm [(We )-281(h)]TJ 0 Tc 2.316 0 Td [(ave )-96(r)18(emoved )-96(a )-96(few )-96(columns )-96(that )-96(don\325t )-96(inter)18(est )-96(us, )-96(such )-96(as )-96(the )-96(accumulated )-96(CPU)]TJ -2.316 -1.2 Td [(time. )-399(The)-399(column )-149(headings, )-149(in )-149(or)19(der)]TJ 0.3988 Tc 16.978 0 Td (,a)Tj -0.018 Tc 1.149 0 Td [(re )-185(t)]TJ 0 Tc 1.581 0 Td [(he )-149(user )-149(ID, )-149(pr)18(ocess )-149(ID, )-149(par)18(ent )-149(pr)18(ocess )-149(ID,)]TJ -19.708 -1.2 Td [(pr)18(ocess gr)18(oup ID, session ID, terminal name, and command string.)]TJ 7.9995 0 0 7.9995 183.5887 257.1744 Tm [(The )-9(system )-9(that )-9(this)]TJ /TT0 1 Tf 9.161 0 Td (ps)Tj /T1_1 1 Tf 1.46 0 Td [(command )-9(was )-9(r)8(un )-9(on)]TJ 9.945 0.04 Td (\()Tj 0.333 -0.04 Td [(Linux )-9(3.2.0)]TJ 4.862 0.04 Td (\))Tj 0.592 -0.04 Td [(supports )-9(the )-9(notion )-9(of )-9(a )-9(session )-9(ID,)]TJ -26.353 -1.25 Td [(which )-118(we )-118(mentioned )-118(with )-118(the)]TJ /TT0 1 Tf 14.088 0 Td (setsid)Tj /T1_1 1 Tf 3.969 0 Td [(function )-119(in )-119(Section )-119(9.5.)-619(The )-119(session )-119(ID )-119(is )-119(simply )-119(the)]TJ -18.056 -1.25 Td [(pr)18(ocess )-29(ID )-29(of )-29(the )-29(session )-29(leader)]TJ 0.5295 Tc 13.92 0 Td (.S)Tj 0 Tc 1.304 0 Td [(ome )-29(BSD)]TJ 4.098 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-29(systems, )-29(such )-29(as )-29(Mac )-29(OS )-29(X )-29(10.6.8, )-29(will )-29(print)]TJ -19.655 -1.25 Td [(the )-186(addr)18(ess )-186(of )-186(the)]TJ /TT0 1 Tf 8.822 0 Td (session)Tj /T1_1 1 Tf 4.636 0 Td [(str)8(uctur)]TJ 0.4358 Tc 3.49 0 Td (ec)Tj 0 Tc 1.359 0 Td [(orr)18(esponding )-186(to )-186(the )-186(pr)18(ocess )-186(gr)19(oup )-186(that )-186(the )-186(pr)18(ocess)]TJ -18.306 -1.25 Td [(belongs to \(Section 9.1)55(1\) instead of the session ID.)]TJ 9.9994 0 0 9.9994 147.59 194.1781 Tm [(The )-12(system )-12(pr)18(ocesses )-12(you )-12(see )-12(will )-12(depend )-12(on )-12(the )-12(operating )-12(system )-12(implementation.)]TJ -1.8 -1.2 Td [(Anything )-40(with )-40(a )-40(par)18(ent )-40(pr)18(ocess )-40(ID )-40(of )-40(0 )-40(is )-40(usually )-40(a )-40(kernel )-40(pr)18(ocess )-40(started )-40(as )-40(part )-40(of )-40(the)]TJ 0 -1.2 TD [(system )-171(bootstrap )-171(pr)17(ocedur)18(e. )-421(\(An)-422(exception )-171(is)]TJ /TT0 1 Tf 21.526 0 Td (init)Tj /T1_1 1 Tf 0.4213 Tc (,w)Tj 0 Tc 3.905 0 Td [(hich )-171(is )-171(a )-171(user)18(-level )-171(command)]TJ -25.431 -1.2 Td [(started )-63(by )-63(the )-63(kernel )-63(at )-63(boot )-63(time.\))-563(Kernel )-63(pr)17(ocesses )-63(ar)]TJ 0.3132 Tc 24.793 0 Td (es)Tj 0 Tc 1.216 0 Td [(pecial )-63(and )-63(generally )-63(exist )-63(for)]TJ -26.009 -1.2 Td [(the )-235(entir)]TJ 0.4846 Tc 3.927 0 Td (el)Tj 0 Tc 1.255 0 Td [(ifetime )-235(of )-235(the )-235(system.)-733(They )-234(r)8(un )-234(with )-234(super)8(user )-234(privileges )-234(and )-234(have )-234(no)]TJ -5.181 -1.2 Td [(contr)18(olling terminal and no command line.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47418 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.18)]TJ /TT0 1 Tf 35.803 0 Td (system)Tj /T1_0 1 Tf 4.1 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (369)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Recall )-49(fr)18(om )-49(Section )-49(9.6 )-49(that )-49(typing )-49(the )-49(interr)6(upt )-49(character )-49(causes )-49(the )-49(interr)8(upt )-49(signal )-49(to)]TJ 0 -1.2 TD [(be )-147(sent )-147(to )-147(all )-147(the )-147(pr)18(ocesses )-147(in )-147(the )-147(for)16(egr)18(ound )-147(pr)18(ocess )-147(gr)18(oup. )-397(Figur)]TJ 0.3972 Tc 30.882 0 Td (e1)Tj 0 Tc 1.376 0 Td [(0.27 )-147(shows )-147(the)]TJ -32.258 -1.2 Td [(arrangement of the pr)18(ocesses when the editor is r)8(unning.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1734 5930 432 216 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 176.6468 601.9678 Tm (login shell)Tj ET q 0.99988 0 0 0.99988 0 0 cm q 1 0 0 1 274.2 603.8 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099988 0 0 0.099988 0 0 cm 1 j 1 J q 1 0 0 1 2742 6038 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2166.25 6038.25 cm 0 0 m 504 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 235.7576 606.9307 Tm (fork)Tj 0 -1.25 TD (exec)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2742 5930 432 216 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 283.7319 601.8955 Tm (a.out)Tj ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 353.4 603.8 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 3534 6038 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3174.25 6038.25 cm 0 0 m 288 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 325.7023 606.8579 Tm (fork)Tj T* (exec)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 3534 5930 432 216 re S Q BT /TT0 1 Tf 7.9971 0 0 7.9971 358.0711 601.8233 Tm (/bin/sh)Tj ET q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 432.6 603.8 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 4326 6038 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3966.25 6038.25 cm 0 0 m 288 0 l S Q Q BT /TT0 1 Tf 7.9966 0 0 7.9966 404.8299 606.7851 Tm (fork)Tj T* (exec)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 4326 5930 432 216 re S Q BT /TT0 1 Tf 7.9962 0 0 7.9962 437.1901 601.7511 Tm (/bin/ed)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 5858.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 5923.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 5987.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 6052.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 6117.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1662.25 6182.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1729.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1797.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1864.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1932.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1999.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2066.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2134.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2202.25 6218.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2238.25 6153.25 cm 0 0 m 0 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2238.25 6088.25 cm 0 0 m 0 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2238.25 6023.25 cm 0 0 m 0 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2238.25 5959.25 cm 0 0 m 0 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2238.25 5894.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2170.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2103.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2035.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1968.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1900.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1833.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1765.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1698.25 5858.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 147.6962 578.7274 Tm [(backgr)18(ound pr)18(ocess gr)18(oup)]TJ ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 5858.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 5923.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 5987.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 6052.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 6117.25 cm 0 0 m 0 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 6182.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2743.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2816.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2889.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2963.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3036.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3109.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3182.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3256.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3329.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3402.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3475.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3549.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3622.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3695.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3768.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3842.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3915.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3988.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4062.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4134.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4208.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4281.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4355.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4427.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4501.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4574.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4648.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4720.25 6218.25 cm 0 0 m 36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4794.25 6218.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 6153.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 6088.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 6023.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 5959.25 cm 0 0 m 0 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4830.25 5894.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4756.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4684.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4610.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4537.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4463.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4391.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4317.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4244.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4170.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4098.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4024.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3951.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3878.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3804.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3731.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3658.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3585.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3511.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3438.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3365.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3292.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3218.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3145.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3072.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2999.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2925.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2852.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2779.25 5858.25 cm 0 0 m -36 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 5858.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 328.8506 578.6927 Tm [(for)18(egr)18(ound pr)18(ocess gr)18(oup)]TJ /T1_1 1 Tf -17.049 -2.305 Td (Figure 10.27)Tj /T1_0 1 Tf 6.195 0 Td [(For)18(egr)18(ound and backgr)18(ound pr)18(ocess gr)18(oups for Figur)]TJ 0.25 Tc 23.813 0 Td (e1)Tj 0 Tc 1.229 0 Td (0.26)Tj 9.994 0 0 9.994 147.5117 531.2813 Tm [(In )-4(this )-4(example,)]TJ /TT0 1 Tf 7.302 0 Td (SIGINT)Tj /T1_0 1 Tf 3.854 0 Td [(is )-4(sent )-4(to )-4(all )-4(thr)18(ee )-4(for)19(egr)18(ound )-4(pr)18(ocesses. )-254(\(The)-253(shell )-4(ignor)18(es)]TJ -12.956 -1.2 Td [(it.\) )-390(As)-391(we )-140(can )-140(see )-140(fr)17(om )-140(the )-140(output, )-140(both )-140(the)]TJ /TT0 1 Tf 20.952 0 Td (a.out)Tj /T1_0 1 Tf 3.39 0 Td [(pr)18(ocess )-140(and )-140(the )-140(editor )-140(catch )-140(the)]TJ -24.342 -1.2 Td [(signal. )-568(But)-569(when )-318(we\325r)]TJ 0.5683 Tc 10.834 0 Td (er)Tj 0 Tc 1.434 0 Td [(unning )-318(another )-318(pr)18(ogram )-318(with )-318(the)]TJ /TT0 1 Tf 16.725 0 Td (system)Tj /T1_0 1 Tf 4.168 0 Td [(function, )-318(we)]TJ -33.162 -1.2 Td [(shouldn\325t )-274(have )-274(both )-274(the )-274(par)17(ent )-274(and )-274(the )-274(child )-274(catching )-274(the )-274(two )-274(terminal-generated)]TJ 0 -1.2 TD [(signals: )-145(interr)8(upt )-145(and )-145(quit.)-643(Instead, )-144(these )-144(two )-144(signals )-144(should )-144(be )-144(sent )-144(to )-144(the )-144(pr)14(ogram)]TJ T* [(that )-131(is )-131(r)8(unning: )-131(the )-131(child.)-631(Since )-131(the )-131(command )-131(that )-131(is )-131(executed )-131(by)]TJ /TT0 1 Tf 30.616 0 Td (system)Tj /T1_0 1 Tf 3.981 0 Td [(can )-131(be )-131(an)]TJ -34.597 -1.2 Td [(interactive )-200(command )-200(\(as )-200(is )-200(the)]TJ /TT0 1 Tf 14.736 0 Td (ed)Tj /T1_0 1 Tf 1.65 0 Td [(pr)18(ogram )-200(in )-200(this )-200(example\) )-200(and )-200(since )-200(the )-200(caller )-200(of)]TJ /TT0 1 Tf -16.386 -1.2 Td (system)Tj /T1_0 1 Tf 3.913 0 Td [(gives )-63(up )-63(contr)18(ol )-63(while )-63(the )-63(pr)18(ogram )-63(executes, )-63(waiting )-63(for )-63(it )-63(to )-63(\336nish, )-63(the )-63(caller)]TJ -3.913 -1.2 Td (of)Tj /TT0 1 Tf 1.401 0 Td (system)Tj /T1_0 1 Tf 4.122 0 Td [(should )-272(not )-272(be )-272(r)18(eceiving )-272(these )-272(two )-272(terminal-generated )-272(signals.)-773(For )-272(this)]TJ -0.018 Tc -5.523 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ason, )-209(POSIX.1 )-209(speci\336es )-209(that )-209(the)]TJ /TT0 1 Tf 15.133 0 Td (system)Tj /T1_0 1 Tf 4.059 0 Td [(function )-209(should )-209(ignor)]TJ 0.4588 Tc 10.033 0 Td (et)Tj 0 Tc 1.264 0 Td [(hese )-209(two )-209(signals)]TJ -31.344 -1.2 Td (while waiting for the command to complete.)Tj ET q 0.09994 0 0 0.09994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4116.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 9.9934 0 0 9.9934 93.5382 377.7506 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td (Figur)Tj 0.2935 Tc 2.383 0 Td (e1)Tj 0 Tc 1.272 0 Td [(0.28 )-43(shows )-43(an )-43(implementation )-43(of )-43(the)]TJ /TT0 1 Tf 16.729 0 Td (system)Tj /T1_0 1 Tf 3.894 0 Td [(function )-43(with )-43(the )-43(r)17(equir)18(ed )-43(signal)]TJ -24.278 -1.2 Td (handling.)Tj ET q 0.099934 0 0 0.099934 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3348.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9935 0 0 8.9935 129.5067 325.0649 Tm [(#include )-1800()]TJ 0 -1.189 TD [(#include )-1800()]TJ T* [(#include )-1800()]TJ T* [(#include )-1800()]TJ 0 -2.14 TD (int)Tj 0 -1.189 TD [(system\(const char *cmdstring\))-1800(/* with appropriate signal handling */)]TJ T* ({)Tj 2.4 -1.189 Td (pid_t )Tj 12 0 Td (pid;)Tj -12 -1.189 Td (int )Tj 12 0 Td (status;)Tj -12 -1.189 Td [(struct sigaction)-2400(ignore, saveintr, savequit;)]TJ T* (sigset_t )Tj 12 0 Td [(chldmask,)-600(savemask;)]TJ -12 -2.14 Td (if \(cmdstring == NULL\))Tj 2.4 -1.189 Td [(return\(1\); )-3000(/*)-600(always a command processor with UNIX */)]TJ -2.4 -2.14 Td [(ignore.sa_handler = SIG_IGN;)-2400(/* ignore SIGINT and SIGQUIT */)]TJ T* (sigemptyset\(&ignore.sa_mask\);)Tj T* (ignore.sa_flags = 0;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47419 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (266)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(#include )-1800()]TJ 0 -1.189 TD [(#include )-1800()]TJ T* [(#include )-1800()]TJ 0 -1.902 TD (int)Tj 0 -1.189 TD [(system\(const char *cmdstring\))-1800(/* version without signal handling */)]TJ T* ({)Tj 2.4 -1.189 Td [(pid_t )-1200(pid;)]TJ T* [(int )-2400(status;)]TJ 0 -1.902 TD (if \(cmdstring == NULL\))Tj 2.4 -1.189 Td [(return\(1\); )-3000(/*)-600(always a command processor with UNIX */)]TJ -2.4 -1.902 Td (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td [(status = -1;)-2400(/* probably out of processes */)]TJ 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(pid == 0\) {)Tj 19.8 0 Td (/* child */)Tj -19.2 -1.189 Td (execl\("/bin/sh", "sh", "-c", cmdstring, \(char *\)0\);)Tj 0 -1.189 TD [(_exit\(127\); )-2400(/*)-600(execl error */)]TJ 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 19.8 0 Td (/* parent */)Tj -19.2 -1.189 Td (while \(waitpid\(pid, &status, 0\) < 0\) {)Tj 2.4 -1.189 Td (if \(errno != EINTR\) {)Tj 2.4 -1.189 Td (status = -1; /* error other than EINTR from waitpid\(\) */)Tj T* (break;)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (return\(status\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3722.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 219.2817 356.1753 Tm (Figure 8.22)Tj /T1_1 1 Tf 5.695 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (system)Tj /T1_1 1 Tf 3.85 0 Td (function, without signal handling)Tj -0.092 Tc 9.9988 0 0 9.9988 147.5817 327.3787 Tm [(We )-299(c)]TJ 0 Tc 2.196 0 Td [(an )-115(test )-115(this )-115(version )-115(of)]TJ /TT0 1 Tf 10.246 0 Td (system)Tj /T1_1 1 Tf 3.965 0 Td [(with )-115(the )-115(pr)18(ogram )-115(shown )-115(in )-115(Figur)]TJ 0.365 Tc 15.327 0 Td (e8)Tj 0 Tc 1.344 0 Td [(.23. )-365(\(The)]TJ /TT0 1 Tf -34.878 -1.2 Td (pr_exit)Tj /T1_1 1 Tf 4.663 0 Td [(function )-213(was )-213(de\336ned )-213(in )-213(Figur)]TJ 0.463 Tc 13.94 0 Td (e8)Tj 0 Tc 1.442 0 Td [(.5.\) )-463(Running)-463(the )-213(pr)18(ogram )-213(in )-213(Figur)]TJ 0.463 Tc 16.263 0 Td (e8)Tj 0 Tc 1.442 0 Td (.23)Tj -37.75 -1.2 Td (gives us)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5817 286.6836 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (Sat Feb 25 19:36:59 EST 2012)Tj 0 -1.189 TD (normal termination, exit status = 0)Tj /T1_2 1 Tf 24 0 Td (for)Tj /TT0 1 Tf 1.711 0 Td (date)Tj -25.711 -1.189 Td (sh: nosuchcommand: command not found)Tj T* (normal termination, exit status = 127)Tj /T1_2 1 Tf 24 0 Td (for)Tj /TT0 1 Tf 1.711 0 Td (nosuchcommand)Tj -25.711 -1.189 Td [(sar )-3000(console)-1200(Jan )-600(1)-600(14:59)]TJ T* [(sar )-3000(ttys000)-1200(Feb )-600(7)-600(19:08)]TJ T* [(sar )-3000(ttys001)-1200(Jan 15 15:28)]TJ T* [(sar )-3000(ttys002)-1200(Jan 15 21:50)]TJ T* [(sar )-3000(ttys003)-1200(Jan 21 16:02)]TJ T* (normal termination, exit status = 44)Tj /T1_2 1 Tf 24 0 Td (for)Tj /TT0 1 Tf 1.711 0 Td (exit)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 147.5811 161.6986 Tm [(The )-113(advantage )-113(in )-113(using)]TJ /TT0 1 Tf 11.076 0 Td (system)Tj /T1_1 1 Tf 0.3634 Tc (,i)Tj 0 Tc 4.504 0 Td [(nstead )-113(of )-113(using)]TJ /TT0 1 Tf 7.347 0 Td (fork)Tj /T1_1 1 Tf 2.763 0 Td (and)Tj /TT0 1 Tf 2.056 0 Td (exec)Tj /T1_1 1 Tf 2.763 0 Td [(dir)18(ectly)111(,)-363(is)-363(t)-1(hat)]TJ /TT0 1 Tf -32.31 -1.2 Td (system)Tj /T1_1 1 Tf 3.88 0 Td [(does )-30(all )-30(the )-30(r)19(equir)18(ed )-30(err)18(or )-30(handling )-30(and )-30(\(in )-30(our )-30(next )-30(version )-30(of )-30(this )-30(function )-30(in)]TJ -3.88 -1.2 Td [(Section 10.18\) all the r)18(equir)18(ed signal handling.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47420 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (542)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2274 6422 576 216 re S Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 3642 6422 576 216 re S Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 244.7253 667 Tm [(par)18(ent)]TJ /T1_2 1 Tf 14.9 0 Td (cmdstring)Tj /T1_1 1 Tf 4.38 0 Td (\(child\))Tj /TT0 1 Tf -15.698 -1.975 Td (fp)Tj /T1_2 1 Tf 11.6 0 Td (stdin)Tj ET q 0.99994 0 0 0.99994 0 0 cm q 1 0 0 1 364.2 653 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099994 0 0 0.099994 0 0 cm 1 j 1 J q 1 0 0 1 3642 6530 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3570.25 6530.25 cm 0 0 m -720 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 225.7929 616.926 Tm (Figure 15.10)Tj /T1_1 1 Tf 6.195 0 Td (Result of)Tj /TT0 1 Tf 4.17 0 Td (fp = popen\()Tj /T1_2 1 Tf (cmdstring)Tj /TT0 1 Tf 0.6 Tc (,")Tj 0 Tc 12.53 0 Td (w"\))Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5846 592.9288 Tm [(One )-14(way )-14(to )-14(r)18(emember )-14(the )-14(\336nal )-14(ar)18(gument )-14(to)]TJ /TT0 1 Tf 19.796 0 Td (popen)Tj /T1_1 1 Tf 3.264 0 Td [(is )-14(to )-14(r)17(emember )-14(that, )-14(like)]TJ /TT0 1 Tf 11.038 0 Td (fopen)Tj /T1_1 1 Tf 0.2644 Tc (,t)Tj 0 Tc 3.84 0 Td (he)Tj -0.018 Tc -37.939 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turned \336le pointer is r)18(eadable if)]TJ /T1_2 1 Tf 14.22 0 Td (type)Tj /T1_1 1 Tf 1.972 0 Td (is)Tj /TT0 1 Tf 0.965 0 Td ("r")Tj /T1_1 1 Tf 2.05 0 Td (or writable if)Tj /T1_2 1 Tf 5.984 0 Td (type)Tj /T1_1 1 Tf 1.972 0 Td (is)Tj /TT0 1 Tf 0.965 0 Td ("w")Tj /T1_1 1 Tf (.)Tj -27.184 -1.2 Td (The)Tj /TT0 1 Tf 2.088 0 Td (pclose)Tj /T1_1 1 Tf 4.014 0 Td [(function )-164(closes )-164(the )-164(standar)]TJ 0.414 Tc 12.264 0 Td (dI)Tj 0 Tc 1.362 0 Td [(/O )-164(str)18(eam, )-164(waits )-164(for )-164(the )-164(command )-164(to)]TJ -21.528 -1.2 Td [(terminate, )-495(and )-495(r)18(eturns )-495(the )-495(termination )-495(status )-495(of )-495(the )-495(shell.)-993(\(W)]TJ 0.7447 Tc 31.358 0 Td (ed)Tj 0 Tc 1.835 0 Td [(escribed )-495(the)]TJ -33.192 -1.2 Td [(termination )-86(status )-86(in )-86(Section )-86(8.6.)-587(The)]TJ /TT0 1 Tf 17.311 0 Td (system)Tj /T1_1 1 Tf 3.936 0 Td [(function, )-86(described )-86(in )-86(Section )-86(8.13, )-86(also)]TJ -0.018 Tc -21.247 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-106(the )-106(termination )-106(status.\))-608(If )-106(the )-106(shell )-106(cannot )-106(be )-106(executed, )-106(the )-106(termination )-106(status)]TJ -0.018 Tc -0.856 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (turned by)Tj /TT0 1 Tf 4.605 0 Td (pclose)Tj /T1_1 1 Tf 3.85 0 Td (is as if the shell had executed)Tj /TT0 1 Tf 13.097 0 Td (exit\(127\))Tj /T1_1 1 Tf (.)Tj -20.608 -1.2 Td (The)Tj /T1_2 1 Tf 1.924 0 Td (cmdstring)Tj /T1_1 1 Tf 4.38 0 Td (is executed by the Bourne shell, as in)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5822 492.2409 Tm (sh -c)Tj /T1_2 1 Tf 3.6 0 Td (cmdstring)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5843 474.2431 Tm [(This )-32(means )-32(that )-32(the )-32(shell )-32(expands )-32(any )-32(of )-32(its )-32(special )-32(characters )-32(in)]TJ /T1_2 1 Tf 29.011 0 Td (cmdstring)Tj /T1_1 1 Tf 0.5318 Tc (.T)Tj 0 Tc 5.525 0 Td [(his )-32(allows)]TJ -34.535 -1.2 Td (us to say)Tj 0.25 Tc 3.768 0 Td (,f)Tj 0 Tc 0.833 0 Td (or example,)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5822 445.5465 Tm (fp = popen\("ls *.c", "r"\);)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5843 427.5487 Tm (or)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5822 410.8507 Tm (fp = popen\("cmd 2>&1", "r"\);)Tj /TT1 1 Tf 9.9988 0 0 9.9988 93.5887 380.8543 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(Let\325s r)18(edo the pr)18(ogram fr)18(om Figur)]TJ 0.25 Tc 15.148 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.6, using)Tj /TT0 1 Tf 4.456 0 Td (popen)Tj /T1_1 1 Tf 0.5 Tc (.T)Tj 0 Tc 4.363 0 Td (his is shown in Figur)Tj 0.25 Tc 9.236 0 Td (e1)Tj 0 Tc 1.229 0 Td [(5.1)55(1.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3497.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 340.1378 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.259 TD [(#define PAGER)-1800("${PAGER:-more}" /* environment variable, or default */)]TJ 0 -2.259 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td [(char )-1800(line[MAXLINE];)]TJ T* [(FILE )-1800(*fpin,)-600(*fpout;)]TJ 0 -2.259 TD (if \(argc != 2\))Tj 2.4 -1.189 Td (err_quit\("usage: a.out "\);)Tj -2.4 -1.189 Td (if \(\(fpin = fopen\(argv[1], "r"\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("can\325t open %s", argv[1]\);)Tj -2.4 -2.259 Td (if \(\(fpout = popen\(PAGER, "w"\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("popen error"\);)Tj -2.4 -2.259 Td (/* copy argv[1] to pager */)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47421 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (354)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(Example )195(\321)]TJ /TT1 1 Tf 5.28 0 Td (signal)Tj /TT0 1 Tf 3.878 0 Td (Function)Tj /T1_1 1 Tf -5.558 -2.04 Td [(Let\325s )-265(now )-265(implement )-265(the)]TJ /TT2 1 Tf 12.342 0 Td (signal)Tj /T1_1 1 Tf 4.115 0 Td [(function )-265(using)]TJ /TT2 1 Tf 7.193 0 Td (sigaction)Tj /T1_1 1 Tf 0.7652 Tc (.T)Tj 0 Tc 7.028 0 Td [(his )-265(is )-265(what )-265(many)]TJ -30.679 -1.2 Td [(platforms )-26(do )-26(\(and )-26(what )-26(a )-26(note )-26(in )-26(the )-26(POSIX.1 )-26(Rationale )-26(states )-26(was )-26(the )-26(intent )-26(of )-26(POSIX\).)]TJ 0 -1.2 TD [(Systems )-251(with )-251(binary )-251(compatibility )-251(constraints, )-251(on )-251(the )-251(other )-251(hand, )-251(might )-251(pr)21(ovide )-251(a)]TJ /TT2 1 Tf T* (signal)Tj /T1_1 1 Tf 4.177 0 Td [(function )-327(that )-327(supports )-327(the )-327(older)]TJ 0.5772 Tc 15.305 0 Td (,u)Tj 0 Tc 1.43 0 Td [(nr)18(eliable-signal )-327(semantics.)-827(Unless )-327(you)]TJ -20.912 -1.2 Td [(speci\336cally )-100(r)18(equir)]TJ 0.3502 Tc 7.963 0 Td (et)Tj 0 Tc 1.155 0 Td [(hese )-100(older)]TJ 0.3502 Tc 4.562 0 Td (,u)Tj 0 Tc 1.203 0 Td [(nr)18(eliable )-100(semantics )-100(\(for )-100(backwar)]TJ 0.3503 Tc 14.618 0 Td (dc)Tj 0 Tc 1.405 0 Td [(ompatibility\), )-100(you)]TJ -30.907 -1.2 Td [(should )-120(use )-120(the )-120(following )-120(implementation )-120(of)]TJ /TT2 1 Tf 20.382 0 Td (signal)Tj /T1_1 1 Tf 3.97 0 Td [(or )-120(call)]TJ /TT2 1 Tf 3.208 0 Td (sigaction)Tj /T1_1 1 Tf 5.77 0 Td [(dir)18(ectly)]TJ 0.6204 Tc 3.264 0 Td (.\()Tj 0 Tc 1.203 0 Td (As)Tj -37.798 -1.2 Td [(you )-255(might )-255(guess, )-255(an )-255(implementation )-255(of)]TJ /TT2 1 Tf 19.129 0 Td (signal)Tj /T1_1 1 Tf 4.105 0 Td [(with )-255(the )-255(old )-255(semantics )-255(could )-255(call)]TJ /TT2 1 Tf -23.234 -1.2 Td (sigaction)Tj /T1_1 1 Tf 5.834 0 Td (specifying)Tj /TT2 1 Tf 4.991 0 Td (SA_RESETHAND)Tj /T1_1 1 Tf 7.634 0 Td (and)Tj /TT2 1 Tf 2.126 0 Td (SA_NODEFER)Tj /T1_1 1 Tf [(.\) )-433(All)-434(the )-183(examples )-183(in )-183(this)]TJ -20.584 -1.2 Td (text that call)Tj /TT2 1 Tf 5.657 0 Td (signal)Tj /T1_1 1 Tf 3.85 0 Td (call the function shown in Figur)Tj 0.25 Tc 14.094 0 Td (e1)Tj 0 Tc 1.229 0 Td (0.18.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5454.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT2 1 Tf 8.9989 0 0 8.9989 129.5844 535.8347 Tm (#include "apue.h")Tj 0 -1.902 TD [(/* Reliable version of signal\(\), using POSIX sigaction\(\).)-1200(*/)]TJ 0 -1.189 TD (Sigfunc *)Tj T* (signal\(int signo, Sigfunc *func\))Tj T* ({)Tj 2.4 -1.189 Td [(struct sigaction)-2400(act, oact;)]TJ 0 -1.902 TD (act.sa_handler = func;)Tj 0 -1.189 TD (sigemptyset\(&act.sa_mask\);)Tj T* (act.sa_flags = 0;)Tj 0 -1.189 TD (if \(signo == SIGALRM\) {)Tj -2.4 -1.189 Td [(#ifdef )-600(SA_INTERRUPT)]TJ 4.8 -1.189 Td (act.sa_flags |= SA_INTERRUPT;)Tj -4.8 -1.189 Td (#endif)Tj 0.6 Tc 2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (act.sa_flags |= SA_RESTART;)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (if \(sigaction\(signo, &act, &oact\) < 0\))Tj 2.4 -1.189 Td (return\(SIG_ERR\);)Tj -2.4 -1.189 Td (return\(oact.sa_handler\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3149.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 211.7619 301.3038 Tm (Figure 10.18)Tj /T1_1 1 Tf 6.195 0 Td (An implementation of)Tj /TT2 1 Tf 10.049 0 Td (signal)Tj /T1_1 1 Tf 3.85 0 Td (using)Tj /TT2 1 Tf 2.706 0 Td (sigaction)Tj /T1_1 1 Tf 9.9982 0 0 9.9982 129.5771 277.3081 Tm [(Note )-349(that )-349(we )-349(must )-349(use)]TJ /TT2 1 Tf 11.967 0 Td (sigemptyset)Tj /T1_1 1 Tf 7.199 0 Td [(to )-349(initialize )-349(the)]TJ /TT2 1 Tf 7.899 0 Td (sa_mask)Tj /T1_1 1 Tf 4.799 0 Td [(member )-349(of )-349(the)]TJ -31.864 -1.2 Td [(str)8(uctur)18(e. )-250(W)92(e\325r)]TJ 0.25 Tc 6.761 0 Td (en)Tj 0 Tc 1.311 0 Td (ot guaranteed that)Tj /TT2 1 Tf 9.137 0 Td (act.sa_mask = 0)Tj /T1_1 1 Tf 10 0 Td (does the same thing.)Tj -0.092 Tc -25.409 -1.2 Td [(We )-328(i)]TJ 0 Tc 2.072 0 Td [(ntentionally )-144(set )-144(the)]TJ /TT2 1 Tf 9.15 0 Td (SA_RESTART)Tj /T1_1 1 Tf 6.394 0 Td [(\337ag )-144(for )-144(all )-144(signals )-144(other )-144(than)]TJ /TT2 1 Tf 13.77 0 Td (SIGALRM)Tj /T1_1 1 Tf 0.394 Tc (,s)Tj 0 Tc 5.268 0 Td (o)Tj -38.454 -1.2 Td [(that )-98(any )-98(system )-98(call )-98(interr)10(upted )-98(by )-98(these )-98(other )-98(signals )-98(will )-98(be )-98(automatically )-98(r)20(estarted.)]TJ 0 -1.2 TD [(The )-142(r)18(eason )-142(we )-142(don\325t )-142(want)]TJ /TT2 1 Tf 12.439 0 Td (SIGALRM)Tj /T1_1 1 Tf -0.018 Tc 4.592 0 Td (re)Tj 0 Tc 0.856 0 Td [(started )-142(is )-142(to )-142(allow )-142(us )-142(to )-142(set )-142(a )-142(timeout )-142(for )-142(I/O)]TJ -17.887 -1.2 Td [(operations. )-250(\(Recall)-250(the discussion of Figur)]TJ 0.25 Tc 18.735 0 Td (e1)Tj 0 Tc 1.229 0 Td (0.10.\))Tj -18.164 -1.2 Td [(Some )-7(older )-7(systems, )-7(such )-7(as )-7(SunOS, )-7(de\336ne )-7(the)]TJ /TT2 1 Tf 20.971 0 Td (SA_INTERRUPT)Tj /T1_1 1 Tf 7.457 0 Td [(\337ag. )-257(These)-258(systems)]TJ -0.018 Tc -30.228 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(start )-54(interr)8(upted )-54(system )-54(calls )-54(by )-54(default, )-54(so )-54(specifying )-54(this )-54(\337ag )-54(causes )-54(system )-54(calls )-54(to)]TJ -0.856 -1.2 Td [(be )-544(interr)8(upted. )-794(Linux)-794(de\336nes )-544(the)]TJ /TT2 1 Tf 17.753 0 Td (SA_INTERRUPT)Tj /T1_1 1 Tf 7.994 0 Td [(\337ag )-544(for )-544(compatibility )-544(with)]TJ -25.747 -1.2 Td [(applications )-169(that )-169(use )-169(it, )-169(but )-169(by )-169(default )-169(does )-169(not )-169(r)14(estart )-169(system )-169(calls )-169(when )-169(the )-169(signal)]TJ T* [(handler )-78(is )-78(installed )-78(with)]TJ /TT2 1 Tf 11.293 0 Td (sigaction)Tj /T1_1 1 Tf 0.5776 Tc (.T)Tj 0 Tc 6.841 0 Td [(he )-78(Single )-78(UNIX )-78(Speci\336cation )-78(speci\336es )-78(that )-78(the)]TJ /TT2 1 Tf -18.134 -1.2 Td (sigaction)Tj /T1_1 1 Tf 5.666 0 Td [(function )-16(not )-16(r)18(estart )-16(interr)9(upted )-15(system )-15(calls )-15(unless )-15(the)]TJ /TT2 1 Tf 24.424 0 Td (SA_RESTART)Tj /T1_1 1 Tf 6.266 0 Td [(\337ag )-15(is)]TJ -36.355 -1.2 Td (speci\336ed.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1333.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47422 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.3)]TJ 39.633 0 Td [(File )-250(T)90(ypes)]TJ /T1_1 1 Tf 6.7 0 Td (97)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 194.3883 670.2598 Tm (ptr = "directory";)Tj -2.4 -1.189 Td (else if \(S_ISCHR\(buf.st_mode\)\))Tj 2.4 -1.189 Td (ptr = "character special";)Tj -2.4 -1.189 Td (else if \(S_ISBLK\(buf.st_mode\)\))Tj 2.4 -1.189 Td (ptr = "block special";)Tj -2.4 -1.189 Td (else if \(S_ISFIFO\(buf.st_mode\)\))Tj 2.4 -1.189 Td (ptr = "fifo";)Tj -2.4 -1.189 Td (else if \(S_ISLNK\(buf.st_mode\)\))Tj 2.4 -1.189 Td (ptr = "symbolic link";)Tj -2.4 -1.189 Td (else if \(S_ISSOCK\(buf.st_mode\)\))Tj 2.4 -1.189 Td (ptr = "socket";)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (ptr = "** unknown mode **";)Tj -2.4 -1.189 Td (printf\("%s\\n", ptr\);)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4943.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 215.0982 478.2416 Tm (Figure 4.3)Tj /T1_0 1 Tf 5.195 0 Td (Print type of \336le for each command)Tj 15.642 0.09 Td (-)Tj 0.333 -0.09 Td [(line ar)18(gument)]TJ 9.9988 0 0 9.9988 129.5847 456.6442 Tm [(Sample output fr)18(om Figur)]TJ 0.25 Tc 11.556 0 Td (e4)Tj 0 Tc 1.229 0 Td (.3 is)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5824 442.3455 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out /etc/passwd /etc /dev/log /dev/tty \\)Tj /TT0 1 Tf -1.2 -1.189 Td (>)Tj /TT1 1 Tf 1.2 0 Td (/var/lib/oprofile/opd_pipe /dev/sr0 /dev/cdrom)Tj /TT0 1 Tf -1.2 -1.189 Td (/etc/passwd: regular)Tj T* (/etc: directory)Tj T* (/dev/log: socket)Tj T* (/dev/tty: character special)Tj T* (/var/lib/oprofile/opd_pipe: fifo)Tj T* (/dev/sr0: block special)Tj T* (/dev/cdrom: symbolic link)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5845 338.7583 Tm [(\(Her)18(e, )-205(we )-205(have )-205(explicitly )-205(enter)17(ed )-205(a )-205(backslash )-205(at )-205(the )-205(end )-205(of )-205(the )-205(\336rst )-205(command )-205(line,)]TJ 0 -1.2 Td [(telling )-95(the )-95(shell )-95(that )-95(we )-95(want )-95(to )-95(continue )-95(entering )-95(the )-95(command )-95(on )-95(another )-95(line.)-600(The)]TJ 0 -1.2 TD [(shell )-254(then )-254(pr)18(ompted )-254(us )-254(with )-254(its )-254(secondary )-254(pr)16(ompt,)]TJ /TT0 1 Tf 24.716 0 Td (>)Tj /T1_0 1 Tf [(,)-504(on)-504(t)-1(he )-254(next )-254(line.\))]TJ -0.092 Tc 10.266 0 Td [(We )-438(h)]TJ 0 Tc 2.473 0 Td (ave)Tj -37.456 -1.2 Td [(speci\336cally )-146(used )-146(the)]TJ /TT0 1 Tf 9.618 0 Td (lstat)Tj /T1_0 1 Tf 3.396 0 Td [(function )-146(instead )-146(of )-146(the)]TJ /TT0 1 Tf 10.77 0 Td (stat)Tj /T1_0 1 Tf 2.796 0 Td [(function )-146(to )-146(detect )-146(symbolic)]TJ -26.58 -1.2 Td [(links. )-250(If)-250(we used the)]TJ /TT0 1 Tf 9.381 0 Td (stat)Tj /T1_0 1 Tf 2.65 0 Td (function, we would never see symbolic links.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2908.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 147.5734 266.751 Tm (Historically)Tj 0.6119 Tc 5.076 0 Td (,e)Tj 0 Tc 1.341 0 Td [(arly )-362(versions )-362(of )-362(the )-362(UNIX )-362(System )-362(didn\325t )-362(pr)18(ovide )-362(the)]TJ /TT0 1 Tf 26.583 0 Td (S_ISxxx)Tj /T1_0 1 Tf -34.8 -1.2 Td [(macr)18(os. )-337(Instead,)-337(we )-87(had )-87(to )-87(logically )-87(AND )-87(the)]TJ /TT0 1 Tf 21.294 0 Td (st_mode)Tj /T1_0 1 Tf 4.537 0 Td [(value )-87(with )-87(the )-87(mask)]TJ /TT0 1 Tf 9.569 0 Td (S_IFMT)Tj /T1_0 1 Tf -35.4 -1.2 Td [(and )-251(then )-251(compar)]TJ 0.5014 Tc 8.016 0 Td (et)Tj 0 Tc 1.306 0 Td [(he )-251(r)18(esult )-251(with )-251(the )-251(constants )-251(whose )-251(names )-251(ar)16(e)]TJ /TT0 1 Tf 22.235 0 Td (S_IFxxx)Tj /T1_0 1 Tf 0.7513 Tc (.M)Tj 0 Tc 6.147 0 Td (ost)Tj -37.704 -1.2 Td [(systems )-144(de\336ne )-144(this )-144(mask )-144(and )-144(the )-144(r)18(elated )-144(constants )-144(in )-144(the )-144(\336le)]TJ /TT0 1 Tf 28.528 0 Td ()Tj /T1_0 1 Tf 0.6444 Tc (.I)Tj 0.3944 Tc 8.431 0 Td (fw)Tj 0 Tc 1.561 0 Td (e)Tj -38.521 -1.2 Td (examine this \336le, we\325ll \336nd the)Tj /TT0 1 Tf 13.836 0 Td (S_ISDIR)Tj /T1_0 1 Tf 4.45 0 Td (macr)Tj 0.25 Tc 2.204 0 Td (od)Tj 0 Tc 1.407 0 Td (e\336ned something like)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.5737 202.0626 Tm [(#define )-600(S_ISDIR\(mode\) )-600(\(\(\(mode\))]TJ 0.6 Tc 19.8 0 Td (&S)Tj 0 Tc 1.8 0 Td (_IFMT\) == S_IFDIR\))Tj /T1_0 1 Tf -0.092 Tc 9.9982 0 0 9.9982 147.5737 184.0659 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ve )-252(said )-252(that )-252(r)18(egular )-252(\336les )-252(ar)]TJ 0.5019 Tc 13.269 0 Td (ep)Tj -0.018 Tc 1.582 0 Td (re)Tj 0 Tc 0.856 0 Td [(dominant, )-252(but )-252(it )-252(is )-252(inter)18(esting )-252(to )-252(see )-252(what)]TJ -18.893 -1.2 Td [(per)18(centage )-158(of )-158(the )-158(\336les )-158(on )-158(a )-158(given )-158(system )-158(ar)16(e)-408(of)-408(e)-1(ach )-158(\336le )-158(type.)-659(Figur)]TJ 0.4083 Tc 31.849 0 Td (e4)Tj 0 Tc 1.387 0 Td [(.4 )-158(shows )-158(the)]TJ -33.236 -1.2 Td [(counts )-153(and )-153(per)17(centages )-153(for )-153(a )-153(Linux )-153(system )-153(that )-153(is )-153(used )-153(as )-153(a )-153(single-user )-153(workstation.)]TJ T* [(This data was obtained fr)18(om the pr)18(ogram shown in Section 4.22.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47423 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (314)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Linux )-119(3.2.0 )-119(each )-119(support )-119(31 )-119(dif)20(fer)18(ent )-119(signals, )-119(wher)19(eas )-119(Solaris )-119(10 )-119(supports )-119(40 )-119(dif)19(fer)18(ent)]TJ -0 -1.2 Td [(signals. )-355(Fr)18(eeBSD, )-105(Linux, )-105(and )-105(Solaris, )-105(however)]TJ 0.3549 Tc 20.967 0 Td (,s)Tj 0 Tc 1.029 0 Td [(upport )-105(additional )-105(application-de\336ned)]TJ -21.996 -1.2 Td [(signals )-229(intr)18(oduced )-229(to )-229(support )-229(r)18(eal-time )-229(applications.)-729(Although )-229(the )-229(POSIX )-229(r)20(eal-time)]TJ 0 -1.2 TD [(extensions )-11(ar)18(en\325t )-11(cover)18(ed )-11(in )-11(this )-11(book )-11(\(r)18(efer )-11(to )-11(Gallmeister)]TJ 26.132 0.04 Td ([)Tj 0.333 -0.04 Td (1995)Tj 2 0.04 Td (])Tj 0.594 -0.04 Td [(for )-11(mor)]TJ 0.2615 Tc 3.341 0 Td (ei)Tj 0 Tc 1.031 0 Td (nformation\),)Tj -33.433 -1.2 Td [(as of SUSv4 the r)18(eal-time signal interfaces have moved to the base speci\336cation.)]TJ 1.8 -1.2 Td [(Signal )-14(names )-14(ar)]TJ 0.2643 Tc 7.019 0 Td (ea)Tj 0 Tc 1.243 0 Td [(ll )-14(de\336ned )-14(by )-14(positive )-14(integer )-14(constants )-14(\(the )-14(signal )-14(number\) )-14(in )-14(the)]TJ -10.062 -1.2 Td (header)Tj /TT0 1 Tf 3.296 0 Td ()Tj /T1_1 1 Tf (.)Tj 7.9995 0 0 7.9995 183.5883 579.3652 Tm [(Implementations )-264(actually )-264(de\336ne )-264(the )-264(individual )-264(signals )-264(in )-264(a )-264(dif)16(fer)18(ent )-264(header )-264(\336le, )-264(but )-264(this)]TJ 0 -1.25 Td [(header )-129(\336le )-129(is )-129(included )-129(by)]TJ /TT0 1 Tf 12.051 0 Td ()Tj /T1_1 1 Tf 0.6289 Tc (.I)Tj 0 Tc 7.216 0 Td [(t)-379(is)-379(consider)18(ed )-129(bad )-129(form )-129(for )-129(the )-129(kernel )-129(to )-129(include)]TJ -19.267 -1.25 Td [(header )-89(\336les )-89(meant )-89(for )-89(user)18(-level )-89(applications, )-89(so )-89(if )-89(the )-89(applications )-89(and )-89(the )-89(kernel )-89(both )-89(need)]TJ 0 -1.25 TD [(the )-64(same )-64(de\336nitions, )-64(the )-64(information )-64(is )-64(placed )-64(in )-64(a )-64(kernel )-64(header )-64(\336le )-64(that )-64(is )-64(then )-64(included )-64(by)]TJ T* [(the )-122(user)18(-level )-122(header )-122(\336le.)-622(Thus )-122(both )-122(Fr)18(eeBSD )-122(8.0 )-122(and )-122(Mac )-122(OS )-122(X )-122(10.6.8 )-122(de\336ne )-122(the )-122(signals )-122(in)]TJ /TT0 1 Tf T* ()Tj /T1_1 1 Tf 0.7574 Tc (.L)Tj 0 Tc 10.018 0 Td [(inux )-257(3.2.0 )-257(de\336nes )-257(the )-257(signals )-257(in)]TJ /TT0 1 Tf 15.544 0 Td ()Tj /T1_1 1 Tf 0.5074 Tc (,a)Tj 0 Tc 10.257 0 Td [(nd )-257(Solaris )-257(10)]TJ -35.82 -1.25 Td (de\336nes them in)Tj /TT0 1 Tf 7.073 0 Td ()Tj /T1_1 1 Tf (.)Tj 9.9994 0 0 9.9994 129.5917 501.3699 Tm [(No )-6(signal )-6(has )-6(a )-6(signal )-6(number )-6(of )-6(0.)]TJ -0.092 Tc 16.093 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-6(see )-6(in )-6(Section )-6(10.9 )-6(that )-6(the)]TJ /TT0 1 Tf 12.971 0 Td (kill)Tj /T1_1 1 Tf 2.656 0 Td [(function )-6(uses)]TJ -33.107 -1.2 Td [(the signal number of 0 for a special case.)-500(POSIX.1 calls this value the)]TJ /T1_2 1 Tf 30.623 0 Td (null signal)Tj /T1_1 1 Tf (.)Tj -28.823 -1.2 Td [(Numer)18(ous conditions can generate a signal:)]TJ 0.883 Tc 0 -1.68 TD (\245T)Tj 0 Tc 2.102 0 Td [(he )-185(terminal-generated )-185(signals )-185(occur )-185(when )-185(users )-185(pr)18(ess )-185(certain )-185(terminal )-185(keys.)]TJ -0.613 -1.2 Td [(Pr)18(essing )-269(the )-269(DELETE )-269(key )-269(on )-269(the )-269(terminal )-269(\(or )-269(Contr)16(ol)]TJ 25.613 0.09 Td (-)Tj 0.333 -0.09 Td [(C)-519(on)-519(many )-269(systems\))]TJ -25.946 -1.2 Td [(normally )-103(causes )-103(the )-103(interr)8(upt )-103(signal )-103(\()]TJ /TT0 1 Tf (SIGINT)Tj /T1_1 1 Tf [(\))-353(to)-353(be)-353(generated. )-353(This)-353(is )-103(how )-103(to)]TJ -0 -1.2 Td [(stop )-272(a )-272(r)8(unaway )-272(pr)19(ogram. )-522(\(W)92(e\325ll )-271(see )-271(in )-271(Chapter )-271(18 )-271(how )-271(this )-271(signal )-271(can )-271(be)]TJ 0 -1.2 Td (mapped to any character on the terminal.\))Tj 0.883 Tc -1.489 -1.72 Td (\245H)Tj 0 Tc 2.321 0 Td [(ar)18(dwar)]TJ 0.3933 Tc 3.199 0 Td (ee)Tj 0 Tc 1.351 0 Td [(xceptions )-143(generate )-143(signals: )-143(divide )-143(by )-143(0, )-143(invalid )-143(memory )-143(r)16(efer)18(ence,)]TJ -5.382 -1.2 Td [(and )-152(the )-152(like.)-653(These )-152(conditions )-152(ar)]TJ 0.4024 Tc 15.306 0 Td (eu)Tj 0 Tc 1.484 0 Td [(sually )-152(detected )-152(by )-152(the )-152(har)16(dwar)18(e, )-152(and )-152(the)]TJ -16.791 -1.2 Td [(kernel )-270(is )-270(noti\336ed.)-770(The )-270(kernel )-270(then )-270(generates )-270(the )-270(appr)18(opriate )-270(signal )-270(for )-270(the)]TJ 0 -1.2 TD [(pr)18(ocess )-263(that )-263(was )-263(r)8(unning )-263(at )-263(the )-263(time )-263(the )-263(condition )-263(occurr)14(ed. )-513(For)-514(example,)]TJ /TT0 1 Tf T* (SIGSEGV)Tj /T1_1 1 Tf 4.45 0 Td [(is generated for a pr)18(ocess that executes an invalid memory r)18(efer)18(ence.)]TJ 0.883 Tc -5.939 -1.72 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.393 0 Td (kill)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.665 -0.04 Td [(function )-82(allows )-82(a )-82(pr)18(ocess )-82(to )-82(send )-82(any )-82(signal )-82(to )-82(another )-82(pr)19(ocess )-82(or)]TJ -5.904 -1.2 Td [(pr)18(ocess )-86(gr)18(oup. )-336(Naturally)]TJ 0.3361 Tc 11.332 0 Td (,t)Tj 0 Tc 0.912 0 Td (her)Tj 0.3361 Tc 1.438 0 Td (ea)Tj -0.018 Tc 1.315 0 Td [(re )-122(l)]TJ 0 Tc 1.483 0 Td [(imitations: )-86(we )-86(have )-86(to )-86(be )-86(the )-86(owner )-86(of )-86(the)]TJ -16.48 -1.2 Td [(pr)18(ocess that we\325r)]TJ 0.25 Tc 7.497 0 Td (es)Tj 0 Tc 1.153 0 Td [(ending the signal to, or we have to be the super)8(user)74(.)]TJ 0.883 Tc -10.139 -1.72 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.631 0 Td (kill)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.902 -0.04 Td [(command )-319(allows )-319(us )-319(to )-319(send )-319(signals )-319(to )-319(other )-319(pr)14(ocesses. )-570(This)]TJ -6.379 -1.2 Td [(pr)18(ogram )-82(is )-82(just )-82(an )-82(interface )-82(to )-82(the)]TJ /TT0 1 Tf 15.655 0 Td (kill)Tj /T1_1 1 Tf 2.732 0 Td [(function. )-332(This)-332(command )-82(is )-82(often )-82(used)]TJ -18.387 -1.2 Td [(to terminate a r)8(unaway backgr)18(ound pr)18(ocess.)]TJ 0.883 Tc -1.489 -1.72 Td (\245S)Tj 0 Tc 2.014 0 Td (oftwar)Tj 0.3707 Tc 2.916 0 Td (ec)Tj 0 Tc 1.294 0 Td [(onditions )-121(can )-121(generate )-121(signals )-121(when )-121(a )-121(pr)20(ocess )-121(should )-121(be )-121(noti\336ed )-121(of)]TJ -4.735 -1.2 Td [(various )-164(events.)-664(These )-164(ar)18(en\325t )-164(har)16(dwar)18(e-generated )-164(conditions )-164(\(as )-164(is )-164(the )-164(divide-)]TJ -0 -1.2 Td [(by-0 )-315(condition\), )-315(but )-315(softwar)]TJ 0.5652 Tc 13.262 0 Td (ec)Tj 0 Tc 1.488 0 Td [(onditions. )-565(Examples)-566(ar)18(e)]TJ /TT0 1 Tf 12.056 0 Td (SIGURG)Tj /T1_1 1 Tf 4.165 0 Td (\(generated)Tj -30.971 -1.2 Td [(when )-20(out-of-band )-20(data )-20(arrives )-20(over )-20(a )-20(network )-20(connection\),)]TJ /TT0 1 Tf 26.501 0 Td (SIGPIPE)Tj /T1_1 1 Tf 4.47 0 Td (\(generated)Tj -30.971 -1.2 Td [(when )-128(a )-128(pr)18(ocess )-128(writes )-128(to )-128(a )-128(pipe )-128(that )-128(has )-128(no )-128(r)13(eader\), )-129(and)]TJ /TT0 1 Tf 26.392 0 Td (SIGALRM)Tj /T1_1 1 Tf 4.579 0 Td (\(generated)Tj -30.971 -1.2 Td [(when an alarm clock set by the pr)18(ocess expir)18(es\).)]TJ -1.489 -1.8 Td [(Signals )-50(ar)]TJ 0.3005 Tc 4.346 0 Td (ec)Tj 0 Tc 1.224 0 Td [(lassic )-50(examples )-50(of )-50(asynchr)18(onous )-50(events.)-550(They )-50(occur )-50(at )-50(what )-50(appear )-50(to)]TJ -7.37 -1.2 Td [(be )-243(random )-243(times )-243(to )-243(the )-243(pr)16(ocess. )-494(The)-493(pr)18(ocess )-244(can\325t )-244(simply )-244(test )-244(a )-244(variable )-244(\(such )-244(as)]TJ /TT0 1 Tf T* (errno)Tj /T1_1 1 Tf [(\))-324(to)-324(see )-74(whether )-74(a )-74(signal )-74(has )-74(occurr)18(ed; )-74(instead, )-74(the )-74(pr)19(ocess )-74(has )-74(to )-74(tell )-74(the )-74(kernel)]TJ -0.037 Tc T* (\324\324)Tj 0 Tc 0.519 0 Td [(if and when this signal occurs, do the following.\325)37(\325)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47424 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (932)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 0.6 Tc 8.9995 0 0 8.9995 214.2371 670.2598 Tm ("w)Tj 0 Tc 1.8 0 Td (rite lock is pending\\n"\);)Tj -5.4 -1.189 Td (printf\("killing child 1...\\n"\);)Tj 0 -1.189 TD (kill\(pid1, SIGINT\);)Tj T* (printf\("killing child 2...\\n"\);)Tj T* (kill\(pid2, SIGINT\);)Tj 0 -1.189 TD (printf\("killing child 3...\\n"\);)Tj 0 -1.189 TD (kill\(pid3, SIGINT\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 5799.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 5799.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 254.0985 563.8313 Tm (Figure C.15)Tj /T1_1 1 Tf 5.917 0 Td [(Determine r)18(ecor)18(d)]TJ 7.772 0.09 Td (-)Tj 0.333 -0.09 Td (locking behavior)Tj 9.9988 0 0 9.9988 160.2306 533.8349 Tm [(On )-190(Fr)18(eeBSD )-190(8.0, )-190(Linux )-190(3.2.0, )-190(and )-190(Mac )-190(OS )-190(X )-190(10.6.8, )-190(the )-190(behavior )-190(is )-190(the )-190(same:)]TJ 0 -1.2 TD [(additional r)18(eaders can starve pending writers.)-500(Running the pr)18(ogram gives us)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 167.4297 506.2085 Tm (child 1: obtained read lock on file)Tj 0 -1.189 TD (child 2: obtained read lock on file)Tj T* (child 3: can\325t set write lock: Resource temporarily unavailable)Tj T* (child 3 about to block in write-lock...)Tj T* (parent: obtained additional read lock while write lock is pending)Tj 0 -1.189 TD (killing child 1...)Tj 0 -1.189 TD (child 1: exit after pause)Tj T* (killing child 2...)Tj T* (child 2: exit after pause)Tj T* (killing child 3...)Tj T* (child 3: can\325t write-lock file: Interrupted system call)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 160.2306 382.2933 Tm [(On )-167(Solaris )-167(10, )-167(r)19(eaders )-167(don\325t )-167(starve )-167(waiting )-167(writers.)-667(In )-167(this )-167(case, )-167(the )-167(par)18(ent )-167(is)]TJ 0 -1.2 TD [(unable to obtain a r)18(ead lock because ther)18(e)-250(is)-250(a)-250(p)]TJ -0.018 Tc (ro)Tj 0 Tc 21.946 0 Td (cess waiting for a write lock.)Tj /T1_0 1 Tf -25.011 -1.84 Td (14.2)Tj /T1_1 1 Tf 3.065 0 Td [(Most )-8(systems )-8(de\336ne )-8(the)]TJ /TT0 1 Tf 10.933 0 Td (fd_set)Tj /T1_1 1 Tf 3.858 0 Td [(data )-8(type )-8(to )-8(be )-8(a )-8(str)9(uctur)]TJ 0.2578 Tc 11.082 0 Td (et)Tj 0 Tc 1.063 0 Td [(hat )-8(contains )-8(a )-8(single)]TJ -26.936 -1.2 Td [(member: )-176(an )-176(array )-176(of )-176(long )-176(integers.)-676(One )-176(bit )-176(in )-176(this )-176(array )-176(corr)18(esponds )-176(to )-176(each)]TJ T* (descriptor)Tj 0.6696 Tc 4.438 0 Td (.T)Tj 0 Tc 1.533 0 Td [(he )-170(four)]TJ /TT0 1 Tf 3.777 0 Td (FD_)Tj /T1_1 1 Tf 2.22 0 Td [(macr)18(os )-169(then )-169(manipulate )-169(this )-169(array )-169(of )-169(longs, )-169(turning)]TJ -11.967 -1.2 Td (speci\336c bits on and of)Tj 0.25 Tc 9.564 0 Td (fa)Tj 0 Tc 1.083 0 Td (nd testing speci\336c bits.)Tj -10.647 -1.8 Td [(One )-9(r)18(eason )-9(that )-9(the )-9(data )-9(type )-9(is )-9(de\336ned )-9(to )-9(be )-9(a )-9(str)9(uctur)]TJ 0.259 Tc 24.599 0 Td (ec)Tj 0 Tc 1.182 0 Td [(ontaining )-9(an )-9(array )-9(and)]TJ -25.781 -1.2 Td [(not )-101(simply )-101(an )-101(array )-101(is )-101(to )-101(allow )-101(variables )-101(of )-101(type)]TJ /TT0 1 Tf 22.329 0 Td (fd_set)Tj /T1_1 1 Tf 3.951 0 Td [(to )-101(be )-101(assigned )-101(to )-101(one)]TJ -26.28 -1.2 Td (another with the C assignment statement.)Tj /T1_0 1 Tf -3.065 -1.84 Td (14.3)Tj /T1_1 1 Tf 3.065 0 Td [(In )-491(the )-491(good )-491(ol\325 )-491(days, )-491(most )-491(systems )-491(allowed )-491(us )-491(to )-491(de\336ne )-491(the )-491(constant)]TJ /TT0 1 Tf T* (FD_SETSIZE)Tj /T1_1 1 Tf 6.347 0 Td (befor)Tj 0.3469 Tc 2.288 0 Td (ei)Tj 0 Tc 1.117 0 Td [(ncluding )-97(the )-97(header)]TJ /TT0 1 Tf 9.434 0 Td ()Tj /T1_1 1 Tf 0.5969 Tc (.F)Tj 0 Tc 9.803 0 Td [(or )-97(example, )-97(we)]TJ -28.988 -1.2 Td (could write)Tj /TT0 1 Tf 8.9989 0 0 8.9989 178.2288 215.8832 Tm [(#define FD_SETSIZE)-1200(2048)]TJ 0 -1.189 TD (#include )Tj /T1_1 1 Tf 9.9988 0 0 9.9988 160.231 188.2564 Tm [(to )-744(de\336ne )-744(the)]TJ /TT0 1 Tf 7.999 0 Td (fd_set)Tj /T1_1 1 Tf 4.594 0 Td [(data )-745(type )-745(to )-745(accommodate )-745(2,048 )-745(descriptors.)]TJ -12.593 -1.2 Td (Unfortunately)Tj 0.4495 Tc 6.186 0 Td (,t)Tj 0 Tc 1.026 0 Td [(hings )-199(ar)18(en\325t )-199(that )-199(simple )-199(anymor)16(e. )-449(T)]TJ 0.4495 Tc 16.871 0 Td (ou)Tj 0 Tc 1.599 0 Td [(se )-199(this )-199(technique )-199(with)]TJ -25.681 -1.2 Td (contemporary systems, we need to do several things:)Tj 0 -1.8 TD [(1. )-633(Befor)18(e)-511(we)-511(i)-1(nclude )-261(any )-261(header )-261(\336les, )-261(we )-261(need )-261(to )-261(de\336ne )-261(whatever )-261(symbol)]TJ 1.633 -1.2 Td [(pr)18(events )-58(us )-58(fr)18(om )-58(including)]TJ /TT0 1 Tf 12.483 0 Td ()Tj /T1_1 1 Tf 0.5582 Tc (.S)Tj 0 Tc 9.733 0 Td [(ome )-58(systems )-58(might )-58(pr)17(otect)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47425 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (504)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(These )-84(interfaces )-84(can )-84(be )-84(implemented )-84(as )-84(either )-84(macr)17(os )-84(or )-84(functions.)-585(An)]TJ /TT0 1 Tf 32.551 0 Td (fd_set)Tj /T1_1 1 Tf 3.934 0 Td (is)Tj -38.285 -1.2 Td [(set )-47(to )-47(all )-47(zer)]TJ 0.297 Tc 5.43 0 Td (ob)Tj 0 Tc 1.396 0 Td [(its )-47(by )-47(calling)]TJ /TT0 1 Tf 5.996 0 Td (FD_ZERO)Tj /T1_1 1 Tf 0.547 Tc (.T)Tj 0.297 Tc 5.518 0 Td (ot)Tj 0 Tc 1.169 0 Td [(urn )-47(on )-47(a )-47(single )-47(bit )-47(in )-47(a )-47(set, )-47(we )-47(use)]TJ /TT0 1 Tf 15.641 0 Td (FD_SET)Tj /T1_1 1 Tf (.)Tj -0.092 Tc -35.15 -1.2 Td [(We )-251(c)]TJ 0 Tc 2.148 0 Td [(an )-67(clear )-67(a )-67(single )-67(bit )-67(by )-67(calling)]TJ /TT0 1 Tf 13.766 0 Td (FD_CLR)Tj /T1_1 1 Tf 0.5668 Tc (.F)Tj 0 Tc 4.973 0 Td [(inally)111(,)-317(we)-317(can )-67(test )-67(whether )-67(a )-67(given )-67(bit )-67(is)]TJ -20.886 -1.2 Td (turned on in the set with)Tj /TT0 1 Tf 11.146 0 Td (FD_ISSET)Tj /T1_1 1 Tf (.)Tj -9.346 -1.2 Td [(After )-67(declaring )-67(a )-67(descriptor )-67(set, )-67(we )-67(must )-67(zer)]TJ 0.3172 Tc 20.076 0 Td (ot)Tj 0 Tc 1.189 0 Td [(he )-67(set )-67(using)]TJ /TT0 1 Tf 5.698 0 Td (FD_ZERO)Tj /T1_1 1 Tf 0.5672 Tc (.W)Tj 0.3172 Tc 5.925 0 Td (et)Tj 0 Tc 1.122 0 Td [(hen )-67(set)]TJ -35.811 -1.2 Td (bits in the set for each descriptor that we\325r)Tj 0.25 Tc 18.576 0 Td (ei)Tj 0 Tc 1.02 0 Td [(nter)18(ested in, as in)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5913 589.0545 Tm [(fd_set )-1200(rset;)]TJ 0 -1.189 TD [(int )-3000(fd;)]TJ 0 -1.902 TD (FD_ZERO\(&rset\);)Tj 0 -1.189 TD (FD_SET\(fd, &rset\);)Tj T* (FD_SET\(STDIN_FILENO, &rset\);)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5924 519.6989 Tm [(On )-177(r)18(eturn )-177(fr)18(om)]TJ /TT0 1 Tf 7.549 0 Td (select)Tj /T1_1 1 Tf [(,)-427(we)-427(can )-177(test )-177(whether )-177(a )-177(given )-177(bit )-177(in )-177(the )-177(set )-177(is )-177(still )-177(on )-177(using)]TJ /TT0 1 Tf -7.549 -1.2 Td (FD_ISSET)Tj /T1_1 1 Tf (:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 488.861 Tm (if \(FD_ISSET\(fd, &rset\)\) {)Tj 3.6 -1.189 Td (.)Tj 0 -0.476 TD (.)Tj 0 -0.476 TD (.)Tj -3.6 -1.189 Td (})Tj /T1_1 1 Tf 9.9994 0 0 9.9994 147.5909 438.7644 Tm [(Any )-6(\(or )-6(all\) )-6(of )-6(the )-6(middle )-6(thr)18(ee )-6(ar)18(guments )-6(to)]TJ /TT0 1 Tf 20.186 0 Td (select)Tj /T1_1 1 Tf 3.856 0 Td [(\(the )-6(pointers )-6(to )-6(the )-6(descriptor)]TJ -25.842 -1.2 Td [(sets\) )-95(can )-95(be )-95(null )-95(pointers )-95(if )-95(we\325r)]TJ 0.3454 Tc 14.619 0 Td (en)Tj 0 Tc 1.406 0 Td [(ot )-95(inter)18(ested )-95(in )-95(that )-95(condition.)-595(If )-95(all )-95(thr)18(ee )-95(pointers)]TJ -16.026 -1.2 Td [(ar)18(e)]TJ /TT0 1 Tf 1.746 0 Td (NULL)Tj /T1_1 1 Tf 0.3905 Tc (,t)Tj 0 Tc 3.366 0 Td [(hen )-140(we )-140(have )-140(a )-140(higher)16(-pr)18(ecision )-140(timer )-140(than )-140(is )-140(pr)16(ovided )-140(by)]TJ /TT0 1 Tf 26.991 0 Td (sleep)Tj /T1_1 1 Tf 0.6404 Tc (.\()Tj 0 Tc 4.223 0 Td (Recall)Tj -36.327 -1.2 Td [(fr)18(om )-70(Section )-70(10.19 )-70(that)]TJ /TT0 1 Tf 10.594 0 Td (sleep)Tj /T1_1 1 Tf 3.32 0 Td [(waits )-70(for )-70(an )-70(integral )-70(number )-70(of )-70(seconds.)]TJ -0.055 Tc 18.772 0 Td (Wi)Tj 0 Tc 1.236 0 Td (th)Tj /TT0 1 Tf 1.228 0 Td (select)Tj /T1_1 1 Tf (,)Tj -35.15 -1.2 Td [(we )-158(can )-158(wait )-158(for )-158(intervals )-158(less )-158(than )-158(one )-158(second; )-158(the )-158(actual )-158(r)16(esolution )-158(depends )-158(on )-158(the)]TJ 0 -1.2 TD [(system\325s clock.\))-500(Exer)18(cise 14.5 shows such a function.)]TJ 1.8 -1.2 Td [(The )-111(\336rst )-111(ar)18(gument )-111(to)]TJ /TT0 1 Tf 10.047 0 Td (select)Tj /T1_1 1 Tf (,)Tj /T1_2 1 Tf 4.211 0 Td (maxfdp1)Tj /T1_1 1 Tf 0.3612 Tc (,s)Tj 0 Tc 4.535 0 Td [(tands )-111(for )-111(\324)37(\324maximum )-111(\336le )-111(descriptor )-111(plus)]TJ -20.593 -1.2 Td (1.\325)Tj 0.5573 Tc 0.991 0 Td (\325W)Tj 0.3073 Tc 1.743 0 Td (ec)Tj 0 Tc 1.23 0 Td [(alculate )-57(the )-57(highest )-57(descriptor )-57(that )-57(we\325r)]TJ 0.3072 Tc 17.811 0 Td (ei)Tj 0 Tc 1.077 0 Td [(nter)18(ested )-57(in, )-57(considering )-57(all )-57(thr)18(ee )-57(of)]TJ -22.853 -1.2 Td [(the )-205(descriptor )-205(sets, )-205(add )-205(1, )-205(and )-205(that\325s )-205(the )-205(\336rst )-205(ar)22(gument. )-455(W)]TJ 0.4546 Tc 27.8 0 Td (ec)Tj 0 Tc 1.378 0 Td [(ould )-205(just )-205(set )-205(the )-205(\336rst)]TJ -29.178 -1.2 Td [(ar)18(gument )-14(to)]TJ /TT0 1 Tf 5.706 0 Td (FD_SETSIZE)Tj /T1_1 1 Tf 0.2642 Tc (,ac)Tj 0 Tc 7.722 0 Td [(onstant )-14(in)]TJ /TT0 1 Tf 4.687 0 Td ()Tj /T1_1 1 Tf 8.664 0 Td [(that )-14(speci\336es )-14(the )-14(maximum)]TJ -26.78 -1.2 Td [(number )-156(of )-156(descriptors )-156(\(often )-156(1,024\), )-156(but )-156(this )-156(value )-156(is )-156(too )-156(lar)18(ge )-156(for )-156(most )-156(applications.)]TJ T* [(Indeed, )-496(most )-496(applications )-496(pr)18(obably )-496(use )-496(between )-496(3 )-496(and )-496(10 )-496(descriptors.)-1001(\(Some)]TJ T* [(applications )-107(need )-107(many )-107(mor)]TJ 0.3571 Tc 12.946 0 Td (ed)Tj 0 Tc 1.447 0 Td [(escriptors, )-107(but )-107(these )-107(UNIX )-107(pr)18(ograms )-107(ar)]TJ 0.3571 Tc 17.904 0 Td (ea)Tj 0 Tc 1.336 0 Td [(typical.\) )-357(By)]TJ -33.634 -1.2 Td [(specifying )-184(the )-184(highest )-184(descriptor )-184(that )-184(we\325r)]TJ 0.4341 Tc 19.568 0 Td (ei)Tj 0 Tc 1.204 0 Td [(nter)18(ested )-184(in, )-184(we )-184(can )-184(pr)18(event )-184(the )-184(kernel)]TJ -20.773 -1.2 Td [(fr)18(om )-4(going )-4(thr)18(ough )-4(hundr)18(eds )-4(of )-4(unused )-4(bits )-4(in )-4(the )-4(thr)18(ee )-4(descriptor )-4(sets, )-4(looking )-4(for )-4(bits)]TJ T* (that ar)Tj 0.25 Tc 2.861 0 Td (et)Tj 0 Tc 1.055 0 Td (urned on.)Tj -2.116 -1.2 Td (As an example, Figur)Tj 0.25 Tc 9.416 0 Td (e1)Tj 0 Tc 1.229 0 Td (4.16 shows what two descriptor sets look like if we write)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 226.8673 Tm [(fd_set )-600(readset,)-600(writeset;)]TJ 0 -1.902 TD (FD_ZERO\(&readset\);)Tj 0 -1.189 TD (FD_ZERO\(&writeset\);)Tj T* (FD_SET\(0, &readset\);)Tj T* (FD_SET\(3, &readset\);)Tj T* (FD_SET\(1, &writeset\);)Tj T* (FD_SET\(2, &writeset\);)Tj 0 -1.189 TD (select\(4, &readset, &writeset, NULL, NULL\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47426 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(2.5)]TJ 41.507 0 Td (Limits)Tj /T1_1 1 Tf 4.826 0 Td (51)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 172.7896 670.2598 Tm (errno = 0;)Tj 0 -1.189 TD (if \(\(pathmax = pathconf\("/", _PC_PATH_MAX\)\) < 0\) {)Tj 2.4 -1.189 Td (if \(errno == 0\))Tj 2.4 -1.189 Td [(pathmax = PATH_MAX_GUESS;)-1800(/* it\325s indeterminate */)]TJ -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (err_sys\("pathconf error for _PC_PATH_MAX"\);)Tj 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td [(pathmax++; )-3000(/*)-600(add one since it\325s relative to root */)]TJ -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*B)Tj 0 Tc 1.8 0 Td (efore POSIX.1-2001, we aren\325t guaranteed that PATH_MAX includes)Tj 0.6 Tc -1.8 -1.189 Td (*t)Tj 0 Tc 1.8 0 Td [(he terminating null byte.)-1200(Same goes for XPG3.)]TJ -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(\(posix_version < 200112L\) && \(xsi_version < 4\)\))Tj 2.4 -1.189 Td (size = pathmax + 1;)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (size = pathmax;)Tj -2.4 -2.14 Td (if \(\(ptr = malloc\(size\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("malloc error for pathname"\);)Tj -2.4 -2.14 Td (if \(sizep != NULL\))Tj 2.4 -1.189 Td (*sizep = size;)Tj -2.4 -1.189 Td (return\(ptr\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3937.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 225.9129 377.6737 Tm (Figure 2.16)Tj /T1_0 1 Tf 5.695 0 Td (Dynamically allocate space for a pathname)Tj /TT1 1 Tf 9.9988 0 0 9.9988 93.589 339.2783 Tm [(Maxim)20(um Number of Open Files)]TJ /T1_0 1 Tf 0.6238 Tc 3.6 -2.4 Td (Ac)Tj 0 Tc 1.846 0 Td [(ommon )-374(sequence )-374(of )-374(code )-374(in )-374(a )-374(daemon )-374(pr)20(ocess )167(\321 )167(a)-624(pr)18(ocess )-374(that )-374(r)8(uns )-374(in )-374(the)]TJ -1.846 -1.2 Td [(backgr)18(ound, )-292(not )-292(connected )-292(to )-292(a )-292(terminal)]TJ 0.0833 Tc 19.437 0 Td (\321i)Tj 0.5419 Tc 1.374 0 Td (so)Tj 0 Tc 1.512 0 Td [(ne )-292(that )-292(closes )-292(all )-292(open )-292(\336les.)-792(Some)]TJ -22.323 -1.2 Td [(pr)18(ograms )-332(have )-332(the )-332(following )-332(code )-332(sequence, )-332(assuming )-332(the )-332(constant)]TJ /TT0 1 Tf 33.06 0 Td (NOFILE)Tj /T1_0 1 Tf 4.182 0 Td (was)Tj -37.242 -1.2 Td (de\336ned in the)Tj /TT0 1 Tf 6.377 0 Td ()Tj /T1_0 1 Tf 8.05 0 Td (header:)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5829 262.5875 Tm [(#include )-600()]TJ 0 -2.021 TD (for \(i = 0; i < NOFILE; i++\))Tj 2.4 -1.189 Td (close\(i\);)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.585 215.7029 Tm [(Other )-40(pr)18(ograms )-40(use )-40(the )-40(constant)]TJ /TT0 1 Tf 14.924 0 Td (_NFILE)Tj /T1_0 1 Tf 3.89 0 Td [(that )-40(some )-40(versions )-40(of)]TJ /TT0 1 Tf 9.812 0 Td ()Tj /T1_0 1 Tf 5.69 0 Td [(pr)18(ovide )-40(as)]TJ -34.316 -1.2 Td [(the )-288(upper )-288(limit.)-788(Some )-288(har)]TJ 0.5381 Tc 12.692 0 Td (dc)Tj 0 Tc 1.593 0 Td [(ode )-288(the )-288(upper )-288(limit )-288(as )-288(20.)-788(However)]TJ 0.538 Tc 17.493 0 Td (,n)Tj 0 Tc 1.37 0 Td [(one )-288(of )-288(these)]TJ -33.148 -1.2 Td [(appr)18(oaches is portable.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-483(w)]TJ 0 Tc 2.77 0 Td [(ould )-299(hope )-299(to )-299(use )-299(the )-299(POSIX.1 )-299(value)]TJ /TT0 1 Tf 17.975 0 Td (OPEN_MAX)Tj /T1_0 1 Tf 5.349 0 Td [(to )-299(determine )-299(this )-299(value)]TJ -27.894 -1.2 Td (portably)Tj 0.4166 Tc 3.657 0 Td (,b)Tj 0 Tc 1.22 0 Td [(ut )-167(if )-167(the )-167(value )-167(is )-167(indeterminate, )-167(we )-167(still )-167(have )-167(a )-167(pr)22(oblem. )-417(If)-416(we )-167(wr)18(ote )-167(the)]TJ -4.877 -1.2 Td [(following )-202(code )-202(and )-202(if)]TJ /TT0 1 Tf 10.474 0 Td (OPEN_MAX)Tj /T1_0 1 Tf 5.252 0 Td [(was )-202(indeterminate, )-202(the )-202(loop )-202(would )-202(never )-202(execute,)]TJ -15.726 -1.2 Td (since)Tj /TT0 1 Tf 2.47 0 Td (sysconf)Tj /T1_0 1 Tf 4.45 0 Td [(would r)18(eturn)]TJ /TT2 1 Tf 6.147 0 Td (!)Tj /T1_0 1 Tf (1:)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47427 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (470)Tj /T1_1 1 Tf 3.5 0 Td [(Daemon )-250(Pr)18(ocesses )]TJ 38.741 0 Td [(Chapter)-500(13)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (Ther)Tj 0.25 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(t)]TJ 0 Tc 1.432 0 Td [(hr)18(ee ways to generate log messages:)]TJ -2.912 -1.68 Td [(1. )-633(Kernel)]TJ -0.018 Tc 4.933 0 Td (ro)Tj 0 Tc 0.923 0 Td [(utines )-98(can )-98(call )-98(the)]TJ /TT0 1 Tf 8.536 0 Td (log)Tj /T1_1 1 Tf 2.148 0 Td [(function. )-348(These)-348(messages )-98(can )-98(be )-98(r)18(ead )-98(by )-98(any)]TJ -14.906 -1.2 Td [(user )-69(pr)18(ocess )-69(that)]TJ /TT0 1 Tf 7.888 0 Td (open)Tj /T1_1 1 Tf 0.3192 Tc (sa)Tj 0 Tc 3.643 0 Td (nd)Tj /TT0 1 Tf 1.512 0 Td (read)Tj /T1_1 1 Tf 0.3192 Tc (st)Tj 0 Tc 3.469 0 Td (he)Tj /TT0 1 Tf 1.38 0 Td (/dev/klog)Tj /T1_1 1 Tf 5.719 0 Td [(device. )-319(W)]TJ 0.3191 Tc 4.596 0 Td (ew)Tj 0 Tc 1.632 0 Td [(on\325t )-69(describe)]TJ -29.84 -1.2 Td (this function any further)Tj 0.25 Tc 10.757 0 Td (,s)Tj 0 Tc 0.924 0 Td (ince we\325r)Tj 0.25 Tc 4.014 0 Td (en)Tj 0 Tc 1.311 0 Td [(ot inter)18(ested in writing kernel r)18(outines.)]TJ -18.639 -1.48 Td [(2. )-633(Most)-509(user )-259(pr)18(ocesses )-259(\(daemons\) )-259(call )-259(the)]TJ /TT0 1 Tf 20.631 0 Td (syslog)Tj /T1_1 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (3)Tj 0.5 0.04 Td (\))Tj 0.842 -0.04 Td [(function )-259(to )-259(generate )-259(log)]TJ -24.273 -1.2 Td [(messages. )-296(W)]TJ 0.296 Tc 5.873 0 Td (ed)Tj 0 Tc 1.386 0 Td [(escribe )-46(its )-46(calling )-46(sequence )-46(later)]TJ 0.546 Tc 14.212 0 Td (.T)Tj 0 Tc 1.409 0 Td [(his )-46(causes )-46(the )-46(message )-46(to )-46(be)]TJ -22.88 -1.2 Td (sent to the UNIX domain datagram socket)Tj /TT0 1 Tf 18.892 0 Td (/dev/log)Tj /T1_1 1 Tf (.)Tj -20.525 -1.48 Td [(3. )-633(A)-299(user )-49(pr)18(ocess )-49(on )-49(this )-49(host, )-49(or )-49(on )-49(some )-49(other )-49(host )-49(that )-49(is )-49(connected )-49(to )-49(this )-49(host)]TJ 1.633 -1.2 Td [(by )-117(a )-117(TCP/IP )-117(network, )-117(can )-117(send )-117(log )-117(messages )-117(to )-117(UDP )-117(port )-117(514.)-617(Note )-117(that )-117(the)]TJ /TT0 1 Tf 0 -1.2 TD (syslog)Tj /T1_1 1 Tf 4.022 0 Td [(function )-172(never )-172(generates )-172(these )-172(UDP )-172(datagrams: )-172(they )-172(r)16(equir)]TJ 0.4224 Tc 27.404 0 Td (ee)Tj 0 Tc 1.38 0 Td (xplicit)Tj -32.807 -1.2 Td [(network pr)18(ogramming by the pr)18(ocess generating the log message.)]TJ -3.433 -1.68 Td [(Refer )-151(to )-151(Stevens, )-151(Fenner)]TJ 0.4014 Tc 11.059 0 Td (,a)Tj 0 Tc 1.151 0 Td [(nd )-151(Rudof)18(f)]TJ 5.072 0.04 Td ([)Tj 0.333 -0.04 Td (2004)Tj 2 0.04 Td (])Tj 0.734 -0.04 Td [(for )-151(details )-151(on )-151(UNIX )-151(domain )-151(sockets )-151(and)]TJ -20.35 -1.2 Td (UDP sockets.)Tj 1.8 -1.2 Td (Normally)Tj 0.268 Tc 4.182 0 Td (,t)Tj 0 Tc 0.844 0 Td (he)Tj /TT0 1 Tf 1.329 0 Td (syslogd)Tj /T1_1 1 Tf 4.468 0 Td [(daemon )-18(r)18(eads )-18(all )-18(thr)18(ee )-18(forms )-18(of )-18(log )-18(messages.)-518(On )-18(start-up,)]TJ -12.623 -1.2 Td [(this )-26(daemon )-26(r)18(eads )-26(a )-26(con\336guration )-26(\336le, )-26(usually)]TJ /TT0 1 Tf 20.916 0 Td (/etc/syslog.conf)Tj /T1_1 1 Tf 0.276 Tc (,w)Tj 0 Tc 10.96 0 Td [(hich )-26(determines)]TJ -31.876 -1.2 Td (wher)Tj 0.2646 Tc 2.272 0 Td (ed)Tj 0 Tc 1.355 0 Td [(if)18(fer)18(ent )-15(classes )-15(of )-15(messages )-15(ar)20(e)-265(to)-265(be)-265(s)1(ent. )-265(For)-264(example, )-15(ur)18(gent )-15(messages )-15(can )-15(be)]TJ -3.627 -1.2 Td [(sent )-199(to )-199(the )-199(system )-199(administrator )-199(\(if )-199(logged )-199(in\) )-199(and )-199(printed )-199(on )-199(the )-199(console, )-199(wher)19(eas)]TJ T* (warnings may be logged to a \336le.)Tj 1.8 -1.2 Td [(Our interface to this facility is thr)18(ough the)]TJ /TT0 1 Tf 18.814 0 Td (syslog)Tj /T1_1 1 Tf 3.85 0 Td (function.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5905 422.2747 Tm (#include )Tj 0 -1.783 TD (void openlog\(const char *)Tj /T1_2 1 Tf (ident)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 18.856 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (option)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.355 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (facility)Tj /TT0 1 Tf (\);)Tj -26.811 -1.783 Td (void syslog\(int)Tj /T1_2 1 Tf 9.6 0 Td (priority)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.911 0 Td (onst char *)Tj /T1_2 1 Tf (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 11.066 0 Td (..\);)Tj -25.577 -1.783 Td (void closelog\(void\);)Tj T* (int setlogmask\(int)Tj /T1_2 1 Tf 11.4 0 Td (maskpri)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 9.475 -1.783 Td [(Returns: pr)18(evious log priority mask value)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3375.25 cm 0 0 m 0 938 l 3900 938 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 325.211 Tm (Calling)Tj /TT0 1 Tf 3.497 0 Td (openlog)Tj /T1_1 1 Tf 4.477 0 Td [(is )-27(optional.)-527(If )-27(it\325s )-27(not )-27(called, )-27(the )-27(\336rst )-27(time)]TJ /TT0 1 Tf 18.815 0 Td (syslog)Tj /T1_1 1 Tf 3.877 0 Td [(is )-27(called,)]TJ /TT0 1 Tf 4.135 0 Td (openlog)Tj /T1_1 1 Tf -34.8 -1.2 Td [(is )-38(called )-38(automatically)]TJ 0.5379 Tc 9.853 0 Td (.C)Tj 0 Tc 1.497 0 Td (alling)Tj /TT0 1 Tf 2.799 0 Td (closelog)Tj /T1_1 1 Tf 5.088 0 Td [(is )-38(also )-38(optional)]TJ 0.0833 Tc 6.818 0 Td (\321i)Tj 0.2878 Tc 1.374 0 Td (tj)Tj 0 Tc 0.848 0 Td [(ust )-38(closes )-38(the )-38(descriptor)]TJ -28.277 -1.2 Td (that was being used to communicate with the)Tj /TT0 1 Tf 20.343 0 Td (syslogd)Tj /T1_1 1 Tf 4.45 0 Td (daemon.)Tj -22.993 -1.2 Td (Calling)Tj /TT0 1 Tf 3.524 0 Td (openlog)Tj /T1_1 1 Tf 4.504 0 Td [(lets )-54(us )-54(specify )-54(an)]TJ /T1_2 1 Tf 7.975 0 Td (ident)Tj /T1_1 1 Tf 2.36 0 Td [(that )-54(is )-54(added )-54(to )-54(each )-54(log )-54(message.)-554(This )-54(is)]TJ -20.164 -1.2 Td [(normally )-262(the )-262(name )-262(of )-262(the )-262(pr)20(ogram )-261(\(e.g.)]TJ /TT0 1 Tf 19.698 0 Td (cron)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 3.161 0 Td (inetd)Tj /T1_1 1 Tf [(\). )-511(The)]TJ /T1_2 1 Tf 6.53 0 Td (option)Tj /T1_1 1 Tf 3.066 0 Td [(ar)18(gument )-261(is )-261(a)]TJ -32.456 -1.2 Td [(bitmask )-432(specifying )-432(various )-432(options.)-930(Figur)]TJ 0.6817 Tc 20.34 0 Td (e1)Tj 0 Tc 1.661 0 Td [(3.3 )-432(describes )-432(the )-432(available )-432(options,)]TJ -22 -1.2 Td [(including )-34(a )-34(bullet )-34(in )-34(the )-34(XSI )-34(column )-34(if )-34(the )-34(option )-34(is )-34(included )-34(in )-34(the)]TJ /TT0 1 Tf 30.202 0 Td (openlog)Tj /T1_1 1 Tf 4.484 0 Td (de\336nition)Tj -34.687 -1.2 Td (in the Single UNIX Speci\336cation.)Tj 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 2.021 0 Td (facility)Tj /T1_1 1 Tf 3.143 0 Td [(ar)18(gument )-97(for)]TJ /TT0 1 Tf 6.274 0 Td (openlog)Tj /T1_1 1 Tf 4.547 0 Td [(is )-97(taken )-97(fr)18(om )-97(Figur)]TJ 0.3472 Tc 8.722 0 Td (e1)Tj 0 Tc 1.326 0 Td [(3.4. )-347(Note)-348(that )-97(the )-97(Single)]TJ -27.834 -1.2 Td [(UNIX )-137(Speci\336cation )-137(de\336nes )-137(only )-137(a )-137(subset )-137(of )-137(the )-137(facility )-137(codes )-137(typically )-137(available )-137(on )-137(a)]TJ 0 -1.2 TD [(given )-241(platform.)-741(The )-241(r)18(eason )-241(for )-241(the)]TJ /T1_2 1 Tf 17.038 0 Td (facility)Tj /T1_1 1 Tf 3.287 0 Td [(ar)18(gument )-241(is )-241(to )-241(let )-241(the )-241(con\336guration )-241(\336le)]TJ -20.325 -1.2 Td [(specify )-65(that )-65(messages )-65(fr)18(om )-65(dif)18(fer)18(ent )-65(facilities )-65(ar)18(e)-315(to)-315(be)-315(handled )-65(dif)18(fer)18(ently)]TJ 0.565 Tc 33.229 0 Td (.I)Tj 0 Tc 1.152 0 Td [(f)-315(we)-315(don\325t)]TJ -34.381 -1.2 Td (call)Tj /TT0 1 Tf 1.796 0 Td (openlog)Tj /T1_1 1 Tf [(,)-270(or)-270(if)-270(we)-270(c)-2(all )-20(it )-20(with )-20(a)]TJ /T1_2 1 Tf 14.168 0 Td (facility)Tj /T1_1 1 Tf 3.066 0 Td [(of )-21(0, )-21(we )-21(can )-21(still )-21(specify )-21(the )-21(facility )-21(as )-21(part )-21(of)]TJ -19.031 -1.2 Td (the)Tj /T1_2 1 Tf 1.637 0 Td (priority)Tj /T1_1 1 Tf 3.361 0 Td [(ar)18(gument to)]TJ /TT0 1 Tf 5.678 0 Td (syslog)Tj /T1_1 1 Tf (.)Tj -0.092 Tc -8.876 -1.2 Td [(We )-244(c)]TJ 0 Tc 2.141 0 Td (all)Tj /TT0 1 Tf 1.392 0 Td (syslog)Tj /T1_1 1 Tf 3.91 0 Td [(to )-60(generate )-60(a )-60(log )-60(message.)-560(The)]TJ /T1_2 1 Tf 14.341 0 Td (priority)Tj /T1_1 1 Tf 3.421 0 Td [(ar)18(gument )-60(is )-60(a )-60(combination)]TJ -27.005 -1.2 Td [(of )-98(the)]TJ /T1_2 1 Tf 2.961 0 Td (facility)Tj /T1_1 1 Tf 0.3477 Tc (,s)Tj 0 Tc 3.818 0 Td [(hown )-98(in )-98(Figur)]TJ 0.3477 Tc 6.495 0 Td (e1)Tj 0 Tc 1.327 0 Td [(3.4, )-98(and )-98(a)]TJ /T1_2 1 Tf 4.736 0 Td (level)Tj /T1_1 1 Tf 0.3478 Tc (,s)Tj 0 Tc 2.856 0 Td [(hown )-98(in )-98(Figur)]TJ 0.3478 Tc 6.496 0 Td (e1)Tj 0 Tc 1.327 0 Td [(3.5. )-348(These)]TJ /T1_2 1 Tf 5.023 0 Td (level)Tj /T1_1 1 Tf 0.3478 Tc (sa)Tj -0.018 Tc 3.106 0 Td (re)Tj 0 Tc -38.144 -1.2 Td [(or)18(der)18(ed by priority)]TJ 0.25 Tc 8.379 0 Td (,f)Tj -0.018 Tc 0.833 0 Td (ro)Tj 0.25 Tc 0.923 0 Td (mh)Tj 0 Tc 1.715 0 Td (ighest to lowest.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47428 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (928)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 160.2404 668.9599 Tm [(that )-46(we )-46(don\325t )-46(know )-46(whether )-46(any )-46(of )-46(the )-46(functions )-46(we )-46(call )-46(might )-46(unmask )-46(a )-46(signal)]TJ 0 -1.2 TD [(that )-119(we\325ve )-119(blocked, )-119(ther)18(eby )-119(making )-119(it )-119(possible )-119(for )-119(the )-119(function )-119(to )-119(be )-119(r)17(eenter)18(ed)]TJ T* [(thr)18(ough another signal handler)74(.)]TJ /T1_0 1 Tf -3.065 -1.84 Td (12.4)Tj /T1_1 1 Tf 3.065 0 Td [(On )-87(Fr)18(eeBSD )-87(8.0, )-87(the )-87(pr)18(ogram )-87(dr)18(ops )-87(cor)18(e. )-337(W)55(ith)]TJ /TT0 1 Tf 21.659 0 Td (gdb)Tj /T1_1 1 Tf [(,)-337(we)-337(a)]TJ -0.018 Tc [(re )-123(a)]TJ 0 Tc 6.23 0 Td [(ble )-87(to )-87(see )-87(that )-87(the)]TJ -27.889 -1.2 Td [(pr)18(ogram )-225(initialization )-225(calls )-225(pthr)18(ead )-225(functions, )-225(which )-225(call)]TJ /TT0 1 Tf 26.854 0 Td (getenv)Tj /T1_1 1 Tf 4.075 0 Td [(to )-225(\336nd )-225(the)]TJ -30.929 -1.2 Td [(value )-738(of )-738(the)]TJ /TT0 1 Tf 7.667 0 Td (LIBPTHREAD_SPINLOOPS)Tj /T1_1 1 Tf 12.988 0 Td (and)Tj /TT0 1 Tf 2.681 0 Td (LIBPTHREAD_YIELDLOOPS)Tj /T1_1 1 Tf -23.335 -1.2 Td [(envir)18(onment )-104(variables.)-604(However)]TJ 0.3541 Tc 14.954 0 Td (,o)Tj 0 Tc 1.15 0 Td [(ur )-104(thr)18(ead-safe )-104(version )-104(of)]TJ /TT0 1 Tf 11.519 0 Td (getenv)Tj /T1_1 1 Tf 3.954 0 Td [(calls )-104(back)]TJ -31.578 -1.2 Td [(into )-243(the )-243(pthr)17(ead )-243(library )-243(while )-243(it )-243(is )-243(in )-243(an )-243(intermediate, )-243(inconsistent )-243(state.)-745(In)]TJ 0 -1.2 Td [(addition, )-251(the )-251(thr)18(ead )-251(initialization )-251(functions )-251(call)]TJ /TT0 1 Tf 22.542 0 Td (malloc)Tj /T1_1 1 Tf 0.5012 Tc (,w)Tj 0 Tc 5.185 0 Td [(hich, )-251(in )-251(turn, )-251(call)]TJ /TT0 1 Tf -27.727 -1.2 Td (getenv)Tj /T1_1 1 Tf 3.85 0 Td (to \336nd the value of the)Tj /TT0 1 Tf 10.261 0 Td (MALLOC_OPTIONS)Tj /T1_1 1 Tf 8.65 0 Td [(envir)18(onment variable.)]TJ -0.092 Tc -22.761 -1.8 Td [(To )-427(g)]TJ 0 Tc 2.116 0 Td [(et )-243(ar)18(ound )-243(this )-243(pr)18(oblem, )-243(we )-243(could )-243(make )-243(the )-243(r)15(easonable )-243(assumption )-243(that)]TJ -2.116 -1.2 Td [(pr)18(ogram )-5(start-up )-5(is )-5(single )-5(thr)18(eaded, )-5(and )-5(use )-5(a )-5(\337ag )-5(to )-5(indicate )-5(whether )-5(the )-5(thr)15(ead)]TJ 0 -1.2 Td [(initialization )-110(had )-110(been )-110(completed )-110(by )-110(our )-110(version )-110(of)]TJ /TT0 1 Tf 23.75 0 Td (getenv)Tj /T1_1 1 Tf 0.6101 Tc (.W)Tj 0 Tc 5.46 0 Td [(hile )-110(this )-110(\337ag )-110(is)]TJ -29.21 -1.2 Td [(false, )-61(our )-61(version )-61(of)]TJ /TT0 1 Tf 9.226 0 Td (getenv)Tj /T1_1 1 Tf 3.911 0 Td [(can )-61(operate )-61(as )-61(the )-61(non-r)18(eentrant )-61(version )-61(does )-61(\(and)]TJ -13.137 -1.2 Td [(avoid )-229(all )-229(calls )-229(to )-229(pthr)18(ead )-229(functions )-229(and)]TJ /TT0 1 Tf 19.072 0 Td (malloc)Tj /T1_1 1 Tf [(\). )-479(Then)-479(we )-229(could )-229(pr)18(ovide )-229(a)]TJ -19.072 -1.2 Td [(separate )-76(initialization )-76(function )-76(to )-76(call)]TJ /TT0 1 Tf 17.049 0 Td (pthread_once)Tj /T1_1 1 Tf 0.3265 Tc (,i)Tj 0 Tc 8.068 0 Td [(nstead )-76(of )-76(calling )-76(it )-76(fr)16(om)]TJ -25.117 -1.2 Td (inside)Tj /TT0 1 Tf 3.107 0 Td (getenv)Tj /T1_1 1 Tf 0.6793 Tc (.T)Tj 0 Tc 5.142 0 Td [(his )-179(r)18(equir)18(es )-179(that )-179(the )-179(pr)18(ogram )-179(call )-179(our )-179(initialization )-179(function)]TJ -8.25 -1.2 Td (befor)Tj 0.281 Tc 2.288 0 Td (ec)Tj 0 Tc 1.204 0 Td (alling)Tj /TT0 1 Tf 2.792 0 Td (getenv)Tj /T1_1 1 Tf 0.531 Tc (.T)Tj 0 Tc 4.994 0 Td [(his )-31(solves )-31(our )-31(pr)18(oblem, )-31(because )-31(this )-31(can\325t )-31(be )-31(done )-31(until)]TJ -11.278 -1.2 Td [(the )-367(pr)18(ogram )-367(start-up )-367(initialization )-367(completes.)-867(After )-367(the )-367(pr)19(ogram )-367(calls )-367(our)]TJ T* (initialization function, our version of)Tj /TT0 1 Tf 16.52 0 Td (getenv)Tj /T1_1 1 Tf 3.85 0 Td [(operates in a thr)18(ead-safe manner)74(.)]TJ /T1_0 1 Tf -23.435 -1.84 Td (12.5)Tj /T1_1 1 Tf -0.092 Tc 3.065 0 Td [(We )-297(s)]TJ 0 Tc 2.174 0 Td [(till )-113(need)]TJ /TT0 1 Tf 4.076 0 Td (fork)Tj /T1_1 1 Tf 2.763 0 Td [(if )-113(we )-113(want )-113(to )-113(r)9(un )-113(a )-113(pr)18(ogram )-113(fr)18(om )-113(within )-113(another )-113(pr)19(ogram)]TJ -9.012 -1.2 Td (\(i.e., befor)Tj 0.25 Tc 4.391 0 Td (ec)Tj 0 Tc 1.173 0 Td (alling)Tj /TT0 1 Tf 2.761 0 Td (exec)Tj /T1_1 1 Tf (\).)Tj /T1_0 1 Tf -11.39 -1.84 Td (12.6)Tj /T1_1 1 Tf 3.065 0 Td (Figur)Tj 0.4664 Tc 2.383 0 Td (eC)Tj 0 Tc 1.654 0 Td [(.13 )-216(shows )-216(a )-216(thr)17(ead-safe)]TJ /TT0 1 Tf 11.37 0 Td (sleep)Tj /T1_1 1 Tf 3.466 0 Td [(implementation )-216(that )-216(uses)]TJ /TT0 1 Tf 12.123 0 Td (select)Tj /T1_1 1 Tf 4.066 0 Td (to)Tj -35.063 -1.2 Td [(delay )-129(for )-129(the )-129(speci\336ed )-129(amount )-129(of )-129(time.)-629(It )-129(is )-129(thr)18(ead-safe )-129(because )-129(it )-129(doesn\325t )-129(use)]TJ T* [(any unpr)18(otected global or static data and calls only other thr)18(ead-safe functions.)]TJ /T1_0 1 Tf -3.065 -1.84 Td (12.7)Tj /T1_1 1 Tf 3.065 0 Td [(The )-98(implementation )-98(of )-98(a )-98(condition )-98(variable )-98(most )-98(likely )-98(uses )-98(a )-98(mutex )-98(to )-98(pr)16(otect)]TJ T* [(its )-229(internal )-229(str)8(uctur)18(e. )-479(Because)-479(this )-229(is )-229(an )-229(implementation )-229(detail )-229(and )-229(ther)18(efor)18(e)]TJ -0 -1.2 Td [(hidden, )-25(ther)18(e)-275(is)-275(no)-275(portable )-25(way )-25(for )-25(us )-25(to )-25(acquir)]TJ 0.2749 Tc 21.496 0 Td (ea)Tj 0 Tc 1.254 0 Td [(nd )-25(r)18(elease )-25(the )-25(lock )-25(in )-25(the )-25(fork)]TJ -22.749 -1.2 Td [(handlers. )-361(Since)-362(we )-111(can\325t )-111(determine )-111(the )-111(state )-111(of )-111(the )-111(internal )-111(lock )-111(in )-111(a )-111(condition)]TJ T* [(variable )-40(after )-40(calling)]TJ /TT0 1 Tf 9.432 0 Td (fork)Tj /T1_1 1 Tf [(,)-290(it)-290(is)-290(unsafe )-40(for )-40(us )-40(to )-40(use )-40(the )-40(condition )-40(variable )-40(in )-40(the)]TJ -9.432 -1.2 Td [(child pr)18(ocess.)]TJ /TT1 1 Tf -6.665 -3.6 Td [(Chapter )-278(13)]TJ /T1_0 1 Tf 3.6 -2.8 Td (13.1)Tj /T1_1 1 Tf 3.065 0 Td [(If )-1(it )-1(calls)]TJ /TT0 1 Tf 3.991 0 Td (chroot)Tj /T1_1 1 Tf 0.2514 Tc (,t)Tj 0 Tc 4.427 0 Td [(he )-1(pr)18(ocess )-1(will )-1(not )-1(be )-1(able )-1(to )-1(open)]TJ /TT0 1 Tf 15.464 0 Td (/dev/log)Tj /T1_1 1 Tf 0.5015 Tc (.T)Tj 0 Tc 6.164 0 Td [(he )-1(solution )-1(is)]TJ -30.047 -1.2 Td [(for )-129(the )-129(daemon )-129(to )-129(call)]TJ /TT0 1 Tf 10.557 0 Td (openlog)Tj /T1_1 1 Tf 4.579 0 Td [(with )-129(an)]TJ /T1_2 1 Tf 3.874 0 Td (option)Tj /T1_1 1 Tf 2.934 0 Td (of)Tj /TT0 1 Tf 1.259 0 Td (LOG_NDELAY)Tj /T1_1 1 Tf 0.3795 Tc (,b)Tj 0 Tc 7.182 0 Td (efor)Tj 0.3795 Tc 1.735 0 Td (ec)Tj 0 Tc 1.302 0 Td (alling)Tj /TT0 1 Tf -33.424 -1.2 Td (chroot)Tj /T1_1 1 Tf 0.546 Tc (.T)Tj 0 Tc 5.009 0 Td [(his )-46(opens )-46(the )-46(special )-46(device )-46(\336le )-46(\(the )-46(UNIX )-46(domain )-46(datagram )-46(socket\),)]TJ -5.009 -1.2 Td [(yielding )-34(a )-34(descriptor )-34(that )-34(is )-34(still )-34(valid, )-34(even )-34(after )-34(a )-34(call )-34(to)]TJ /TT0 1 Tf 25.695 0 Td (chroot)Tj /T1_1 1 Tf 0.5342 Tc (.T)Tj 0 Tc 4.997 0 Td [(his )-34(scenario)]TJ -30.693 -1.2 Td [(is )-146(encounter)18(ed )-146(in )-146(daemons, )-146(such )-146(as)]TJ /TT0 1 Tf 16.723 0 Td (ftpd)Tj /T1_1 1 Tf 2.796 0 Td [(\(the )-146(File )-146(T)90(ransfer )-146(Pr)18(otocol )-146(daemon\),)]TJ -19.519 -1.2 Td [(that )-50(speci\336cally )-50(call)]TJ /TT0 1 Tf 9.086 0 Td (chroot)Tj /T1_1 1 Tf 3.9 0 Td [(for )-50(security )-50(r)18(easons )-50(but )-50(still )-50(need )-50(to )-50(call)]TJ /TT0 1 Tf 18.177 0 Td (syslog)Tj /T1_1 1 Tf 3.9 0 Td (to)Tj -35.063 -1.2 Td [(log err)18(or conditions.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47429 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (904)Tj /T1_1 1 Tf 3.5 0 Td [(Miscellaneous )-250(Sour)18(ce )-250(Code)]TJ 38.263 0 Td [(Appendix )-250(B)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm (static void)Tj 0 -1.189 TD (log_doit\(int errnoflag, int error, int priority, const char *fmt,)Tj 5.4 -1.189 Td (va_list ap\))Tj -5.4 -1.189 Td ({)Tj 2.4 -1.189 Td [(char )-1800(buf[MAXLINE];)]TJ 0 -2.021 TD (vsnprintf\(buf, MAXLINE-1, fmt, ap\);)Tj 0 -1.189 TD (if \(errnoflag\))Tj 2.4 -1.189 Td (snprintf\(buf+strlen\(buf\), MAXLINE-strlen\(buf\)-1, ": %s",)Tj 1.2 -1.189 Td (strerror\(error\)\);)Tj -3.6 -1.189 Td (strcat\(buf, "\\n"\);)Tj T* (if \(log_to_stderr\) {)Tj 2.4 -1.189 Td (fflush\(stdout\);)Tj T* (fputs\(buf, stderr\);)Tj T* (fflush\(stderr\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (syslog\(priority, "%s", buf\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4761.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 253.1056 460.0538 Tm (Figure B.4)Tj /T1_1 1 Tf 5.362 0 Td [(Err)18(or functions for daemons)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47430 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (478)Tj /T1_1 1 Tf 3.5 0 Td [(Daemon )-250(Pr)18(ocesses )]TJ 38.741 0 Td [(Chapter)-500(13)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm (})Tj 0 -2.021 TD (void)Tj 0 -1.189 TD (sigterm\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td (syslog\(LOG_INFO, "got SIGTERM; exiting"\);)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (void)Tj 0 -1.189 TD (sighup\(int signo\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (syslog\(LOG_INFO, "Re-reading configuration file"\);)Tj 0 -1.189 TD (reread\(\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td (char )Tj 12 0 Td (*cmd;)Tj -12 -1.189 Td [(struct sigaction)-2400(sa;)]TJ 0 -2.021 TD (if \(\(cmd = strrchr\(argv[0], \325/\325\)\) == NULL\))Tj 2.4 -1.189 Td (cmd = argv[0];)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (cmd++;)Tj -2.4 -2.021 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*B)Tj 0 Tc 1.8 0 Td (ecome a daemon.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (daemonize\(cmd\);)Tj T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*M)Tj 0 Tc 1.8 0 Td (ake sure only one copy of the daemon is running.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(already_running\(\)\) {)Tj 2.4 -1.189 Td (syslog\(LOG_ERR, "daemon already running"\);)Tj 0 -1.189 TD (exit\(1\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*H)Tj 0 Tc 1.8 0 Td (andle signals of interest.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (sa.sa_handler = sigterm;)Tj 0 -1.189 TD (sigemptyset\(&sa.sa_mask\);)Tj T* (sigaddset\(&sa.sa_mask, SIGHUP\);)Tj 0 -1.189 TD (sa.sa_flags = 0;)Tj 0 -1.189 TD (if \(sigaction\(SIGTERM, &sa, NULL\) < 0\) {)Tj 2.4 -1.189 Td (syslog\(LOG_ERR, "can\325t catch SIGTERM: %s", strerror\(errno\)\);)Tj T* (exit\(1\);)Tj -2.4 -1.189 Td (})Tj T* (sa.sa_handler = sighup;)Tj T* (sigemptyset\(&sa.sa_mask\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47431 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (476)Tj /T1_1 1 Tf 3.5 0 Td [(Daemon )-250(Pr)18(ocesses )]TJ 38.741 0 Td [(Chapter)-500(13)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 172.7896 670.2598 Tm (})Tj 0 -2.021 TD (switch \(signo\) {)Tj 0 -1.189 TD (case SIGHUP:)Tj 2.4 -1.189 Td (syslog\(LOG_INFO, "Re-reading configuration file"\);)Tj T* (reread\(\);)Tj 0 -1.189 TD (break;)Tj -2.4 -2.021 Td (case SIGTERM:)Tj 2.4 -1.189 Td (syslog\(LOG_INFO, "got SIGTERM; exiting"\);)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -2.021 Td (default:)Tj 2.4 -1.189 Td (syslog\(LOG_INFO, "unexpected signal %d\\n", signo\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj T* (return\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (int )Tj 12 0 Td (err;)Tj -12 -1.189 Td (pthread_t )Tj 12 0 Td (tid;)Tj -12 -1.189 Td (char )Tj 12 0 Td (*cmd;)Tj -12 -1.189 Td [(struct sigaction)-2400(sa;)]TJ 0 -2.021 TD (if \(\(cmd = strrchr\(argv[0], \325/\325\)\) == NULL\))Tj 2.4 -1.189 Td (cmd = argv[0];)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (cmd++;)Tj -2.4 -2.021 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*B)Tj 0 Tc 1.8 0 Td (ecome a daemon.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (daemonize\(cmd\);)Tj T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*M)Tj 0 Tc 1.8 0 Td (ake sure only one copy of the daemon is running.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(already_running\(\)\) {)Tj 2.4 -1.189 Td (syslog\(LOG_ERR, "daemon already running"\);)Tj 0 -1.189 TD (exit\(1\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*R)Tj 0 Tc 1.8 0 Td (estore SIGHUP default and block all signals.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (sa.sa_handler = SIG_DFL;)Tj 0 -1.189 TD (sigemptyset\(&sa.sa_mask\);)Tj T* (sa.sa_flags = 0;)Tj T* (if \(sigaction\(SIGHUP, &sa, NULL\) < 0\))Tj 2.4 -1.189 Td (err_quit\("%s: can\325t restore SIGHUP default"\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47432 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (468)Tj /T1_1 1 Tf 3.5 0 Td [(Daemon )-250(Pr)18(ocesses )]TJ 38.741 0 Td [(Chapter)-500(13)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (sa.sa_flags = 0;)Tj 0 -1.189 TD (if \(sigaction\(SIGHUP, &sa, NULL\) < 0\))Tj 2.4 -1.189 Td (err_quit\("%s: can\325t ignore SIGHUP", cmd\);)Tj -2.4 -1.189 Td (if \(\(pid = fork\(\)\) < 0\))Tj 2.4 -1.189 Td (err_quit\("%s: can\325t fork", cmd\);)Tj -2.4 -1.189 Td (else if \(pid != 0\) /* parent */)Tj 2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.902 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (hange the current working directory to the root so)Tj -1.8 -1.189 Td [(*)-600(we)-600(won\325t prevent file systems from being unmounted.)]TJ T* (*/)Tj -0.6 -1.189 Td (if \(chdir\("/"\) < 0\))Tj 2.4 -1.189 Td (err_quit\("%s: can\325t change directory to /", cmd\);)Tj -2.4 -1.902 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (lose all open file descriptors.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(rl.rlim_max == RLIM_INFINITY\))Tj 2.4 -1.189 Td (rl.rlim_max = 1024;)Tj -2.4 -1.189 Td (for \(i = 0; i < rl.rlim_max; i++\))Tj 2.4 -1.189 Td (close\(i\);)Tj -2.4 -1.902 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*A)Tj 0 Tc 1.8 0 Td (ttach file descriptors 0, 1, and 2 to /dev/null.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (fd0 = open\("/dev/null", O_RDWR\);)Tj 0 -1.189 TD (fd1 = dup\(0\);)Tj 0 -1.189 TD (fd2 = dup\(0\);)Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*I)Tj 0 Tc 1.8 0 Td (nitialize the log file.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (openlog\(cmd, LOG_CONS, LOG_DAEMON\);)Tj 0 -1.189 TD (if \(fd0 != 0 || fd1 != 1 || fd2 != 2\) {)Tj 2.4 -1.189 Td (syslog\(LOG_ERR, "unexpected file descriptors %d %d %d",)Tj 1.2 -1.189 Td (fd0, fd1, fd2\);)Tj -1.2 -1.189 Td (exit\(1\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2653.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 253.6536 249.2891 Tm (Figure 13.1)Tj /T1_1 1 Tf 5.695 0 Td [(Initialize a daemon pr)18(ocess)]TJ 9.9988 0 0 9.9988 129.5846 221.6924 Tm [(If )-96(the)]TJ /TT0 1 Tf 2.749 0 Td (daemonize)Tj /T1_1 1 Tf 5.746 0 Td [(function )-96(is )-96(called )-96(fr)18(om )-96(a)]TJ /TT0 1 Tf 11.408 0 Td (main)Tj /T1_1 1 Tf 2.746 0 Td [(pr)18(ogram )-96(that )-96(then )-96(goes )-96(to )-96(sleep, )-96(we)]TJ -22.649 -1.2 Td (can check the status of the daemon with the)Tj /TT0 1 Tf 19.558 0 Td (ps)Tj /T1_1 1 Tf 1.45 0 Td (command:)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5826 192.9958 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (ps -efj)Tj /TT0 1 Tf -1.2 -1.189 Td [(UID )-2400(PID)-1200(PPID )-600(PGID)-1800(SID )-600(TTY )-600(CMD)]TJ T* [(sar )-1200(13800)]TJ 0.6 Tc 9.6 0 Td (11)Tj 0 Tc 1.8 0 Td (3799 13799)Tj 2.4 Tc 7.2 0 Td (?.)Tj 0 Tc 3.6 0 Td (/a.out)Tj -22.2 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (ps -efj | grep 13799)Tj /TT0 1 Tf -1.2 -1.189 Td [(sar )-1200(13800)]TJ 0.6 Tc 9.6 0 Td (11)Tj 0 Tc 1.8 0 Td (3799 13799)Tj 2.4 Tc 7.2 0 Td (?.)Tj 0 Tc 3.6 0 Td (/a.out)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47433 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (815)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 134.9919 659.4594 Tm [(98 )-2400(if)-600(\(argc != 1\))]TJ 0 -1.189 TD [(99 )-4800(err_quit\("usage:)-600(printd"\);)]TJ -0.6 -1.189 Td [(100 )-2400(daemonize\("printd"\);)]TJ 0 -2.021 TD [(101 )-2400(sigemptyset\(&sa.sa_mask\);)]TJ 0 -1.189 TD [(102 )-2400(sa.sa_flags)]TJ 0.6 Tc 12 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -13.8 -1.189 Td [(103 )-2400(sa.sa_handler)]TJ 0.6 Tc 13.2 0 Td (=S)Tj 0 Tc 1.8 0 Td (IG_IGN;)Tj -15 -1.189 Td [(104 )-2400(if)-600(\(sigaction\(SIGPIPE, &sa, NULL\) < 0\))]TJ T* [(105 )-4800(log_sys\("sigaction)-600(failed"\);)]TJ T* [(106 )-2400(sigemptyset\(&mask\);)]TJ 0 -1.189 TD [(107 )-2400(sigaddset\(&mask,)-600(SIGHUP\);)]TJ 0 -1.189 TD [(108 )-2400(sigaddset\(&mask,)-600(SIGTERM\);)]TJ T* [(109 )-2400(if)-600(\(\(err = pthread_sigmask\(SIG_BLOCK, &mask, NULL\)\) != 0\))]TJ T* [(110 )-4800(log_sys\("pthread_sigmask)-600(failed"\);)]TJ 0 -2.021 TD [(111 )-2400(n)]TJ 0.6 Tc 6 0 Td (=s)Tj 0 Tc 1.8 0 Td (ysconf\(_SC_HOST_NAME_MAX\);)Tj -7.8 -1.189 Td [(112 )-2400(if)-600(\(n < 0\))-1200(/* best guess */)]TJ 0 -1.189 TD [(113 )-4800(n)]TJ 0.6 Tc 8.4 0 Td (=H)Tj 0 Tc 1.8 0 Td (OST_NAME_MAX;)Tj -10.2 -1.189 Td [(114 )-2400(if)-600(\(\(host = malloc\(n\)\) == NULL\))]TJ T* [(115 )-4800(log_sys\("malloc)-600(error"\);)]TJ 0 -1.189 TD [(116 )-2400(if)-600(\(gethostname\(host, n\) < 0\))]TJ 0 -1.189 TD [(117 )-4800(log_sys\("gethostname)-600(error"\);)]TJ 0 -2.021 TD [(118 )-2400(if)-600(\(\(err = getaddrlist\(host, "print", &ailist\)\) != 0\) {)]TJ 0 -1.189 TD [(119 )-4800(log_quit\("getaddrinfo)-600(error: %s", gai_strerror\(err\)\);)]TJ 0 -1.189 TD [(120 )-4800(exit\(1\);)]TJ 0 -1.189 TD [(121 )-2400(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3861.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 362.0845 Tm [([98 )167(\320 )167(100])-1168(The )-100(daemon )-100(doesn\325t )-100(have )-100(any )-100(options )-100(\(the )-100(only )-100(ar)18(gument )-100(is )-100(the )-100(command)]TJ 5 -1.2 Td [(name )-24(itself)-83(\), )-24(so )-24(if)]TJ /TT0 1 Tf 7.944 0 Td (argc)Tj /T1_0 1 Tf 2.674 0 Td [(is )-24(not )-24(1, )-24(we )-24(call)]TJ /TT0 1 Tf 7.127 0 Td (err_quit)Tj /T1_0 1 Tf 5.074 0 Td [(to )-24(print )-24(an )-24(err)18(or )-24(message)]TJ -22.818 -1.2 Td [(and )-190(exit.)]TJ -0.092 Tc 4.685 0 Td [(We )-374(c)]TJ 0 Tc 2.271 0 Td [(all )-190(the)]TJ /TT0 1 Tf 3.349 0 Td (daemonize)Tj /T1_0 1 Tf 5.84 0 Td [(function )-190(fr)18(om )-190(Figur)]TJ 0.4401 Tc 9.109 0 Td (e1)Tj 0 Tc 1.419 0 Td [(3.1 )-190(to )-190(become )-190(a)]TJ -26.674 -1.2 Td [(daemon. )-375(After)-375(this )-125(point, )-125(we )-125(can\325t )-125(print )-125(err)18(or )-125(messages )-125(to )-125(standar)]TJ 0.375 Tc 30.572 0 Td (de)Tj 0 Tc 1.465 0 Td [(rr)18(or;)]TJ -32.037 -1.2 Td (we need to log them instead.)Tj -5 -1.6 Td [([101 )167(\320 )167(1)54(10] )-472(W)]TJ 0.2662 Tc 5.908 0 Td (ea)Tj 0 Tc 1.245 0 Td [(rrange )-16(to )-16(ignor)18(e)]TJ /TT0 1 Tf 7.409 0 Td (SIGPIPE)Tj /T1_0 1 Tf 0.5162 Tc (.W)Tj 0.2662 Tc 5.874 0 Td (ew)Tj 0 Tc 1.579 0 Td [(ill )-16(be )-16(writing )-16(to )-16(socket )-16(\336le )-16(descriptors,)]TJ -17.015 -1.2 Td [(and )-172(we )-172(don\325t )-172(want )-172(a )-172(write )-172(err)20(or )-172(to )-172(trigger)]TJ /TT0 1 Tf 20.273 0 Td (SIGPIPE)Tj /T1_0 1 Tf 0.4217 Tc (,b)Tj 0 Tc 5.425 0 Td [(ecause )-172(the )-172(default)]TJ -25.697 -1.2 Td [(action )-134(is )-134(to )-134(kill )-134(the )-134(pr)17(ocess. )-384(Next,)-384(we )-134(set )-134(the )-134(signal )-134(mask )-134(of )-134(the )-134(thr)18(ead )-134(to)]TJ 0 -1.2 TD (include)Tj /TT0 1 Tf 3.593 0 Td (SIGHUP)Tj /T1_0 1 Tf 3.892 0 Td (and)Tj /TT0 1 Tf 1.985 0 Td (SIGTERM)Tj /T1_0 1 Tf 0.5417 Tc (.A)Tj 0 Tc 5.77 0 Td [(ll )-42(thr)18(eads )-42(we )-42(cr)19(eate )-42(will )-42(inherit )-42(this )-42(signal)]TJ -15.239 -1.2 Td [(mask. )-406(W)92(e\325ll )-156(send )-156(the)]TJ /TT0 1 Tf 10.219 0 Td (SIGHUP)Tj /T1_0 1 Tf 4.006 0 Td [(signal )-156(to )-156(the )-156(daemon )-156(to )-156(tell )-156(it )-156(to )-156(r)14(er)18(ead )-156(its)]TJ -14.225 -1.2 Td [(con\336guration )-55(\336le.)]TJ -0.092 Tc 8.461 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-55(send )-55(the)]TJ /TT0 1 Tf 5.258 0 Td (SIGTERM)Tj /T1_0 1 Tf 4.505 0 Td [(signal )-55(to )-55(the )-55(daemon )-55(to )-55(tell )-55(it )-55(to)]TJ -19.612 -1.2 Td [(clean up and exit gracefully)111(.)]TJ -5 -1.6 Td ([1)Tj -0.055 Tc 0.778 0 Td [(11 )57(\320 )57(11)]TJ 0 Tc 2.557 0 Td [(7] )-582(W)]TJ 0.2932 Tc 2.573 0 Td (ec)Tj 0 Tc 1.216 0 Td (all)Tj /TT0 1 Tf 1.375 0 Td (sysconf)Tj /T1_0 1 Tf 4.493 0 Td [(to )-43(get )-43(the )-43(maximum )-43(size )-43(of )-43(a )-43(host )-43(name.)-544(If)]TJ /TT0 1 Tf 19.675 0 Td (sysconf)Tj /T1_0 1 Tf 4.493 0 Td (fails)Tj -32.161 -1.2 Td [(or )-433(the )-433(limit )-433(is )-433(unde\336ned, )-433(we )-433(use)]TJ /TT0 1 Tf 17.526 0 Td (HOST_NAME_MAX)Tj /T1_0 1 Tf 8.483 0 Td [(as )-433(a )-433(best )-433(guess.)]TJ -26.009 -1.2 Td [(Sometimes, )-62(this )-62(constant )-62(is )-62(de\336ned )-62(for )-62(us )-62(by )-62(the )-62(platform, )-62(but )-62(if )-62(it )-62(isn\325t, )-62(we)]TJ T* [(chose )-194(our )-194(own )-194(value )-194(in)]TJ /TT0 1 Tf 11.515 0 Td (print.h)Tj /T1_0 1 Tf 0.6946 Tc (.W)Tj 0.4446 Tc 6.053 0 Td (ea)Tj 0 Tc 1.424 0 Td [(llocate )-195(memory )-195(to )-195(hold )-195(the )-195(host)]TJ -18.991 -1.2 Td (name and call)Tj /TT0 1 Tf 6.413 0 Td (gethostname)Tj /T1_0 1 Tf 6.85 0 Td [(to r)18(etrieve it.)]TJ -18.263 -1.6 Td [([1)55(18 )167(\320 )167(121])-723(Next, )-14(we )-14(try )-14(to )-14(\336nd )-14(the )-14(network )-14(addr)18(ess )-14(that )-14(the )-14(daemon )-14(is )-14(supposed )-14(to )-14(use)]TJ 5 -1.2 Td [(to pr)18(ovide the printer spooling service.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47434 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.8)]TJ 33.728 0 Td [(Memory-Mapped )-250(I/O)]TJ /T1_1 1 Tf 12.105 0 Td (527)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.018 Tc 9.9994 0 0 9.9994 225.5865 668.9599 Tm (re)Tj 0 Tc 0.856 0 Td [(fer)18(ences )-7(to )-7(the )-7(mapped )-7(r)18(egion )-7(then )-7(r)15(efer)18(ence )-7(the )-7(copy)]TJ 0.5075 Tc 23.843 0 Td (.\()Tj 0 Tc 1.091 0 Td [(One )-7(use)]TJ -25.789 -1.2 Td [(of )-263(this )-263(\337ag )-263(is )-263(for )-263(a )-263(debugger )-263(that )-263(maps )-263(the )-263(text )-263(portion )-263(of )-263(a)]TJ 0 -1.2 TD [(pr)18(ogram )-89(\336le )-89(but )-89(allows )-89(the )-89(user )-89(to )-89(modify )-89(the )-89(instr)8(uctions. )-339(Any)]TJ T* [(modi\336cations af)18(fect the copy)]TJ 0.25 Tc 12.619 0 Td (,n)Tj 0 Tc 1.082 0 Td [(ot the original pr)18(ogram \336le.\))]TJ -23.301 -2.04 Td [(Each )-185(implementation )-185(has )-185(additional)]TJ /TT0 1 Tf 16.993 0 Td (MAP_xxx)Tj /T1_0 1 Tf 4.635 0 Td [(\337ag )-185(values, )-185(which )-185(ar)]TJ 0.4354 Tc 9.692 0 Td (es)Tj 0 Tc 1.338 0 Td [(peci\336c )-185(to )-185(that)]TJ -32.659 -1.2 Td [(implementation. )-250(Check)-250(the)]TJ /TT0 1 Tf 12.467 0 Td (mmap)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (manual page on your system for details.)Tj -14.483 -1.2 Td [(The )-251(value )-251(of)]TJ /T1_2 1 Tf 6.495 0 Td (off)Tj /T1_0 1 Tf 1.501 0 Td [(and )-251(the )-251(value )-251(of)]TJ /T1_2 1 Tf 8.402 0 Td (addr)Tj /T1_0 1 Tf 2.334 0 Td (\(if)Tj /TT0 1 Tf 1.458 0 Td (MAP_FIXED)Tj /T1_0 1 Tf 5.901 0 Td [(is )-251(speci\336ed\) )-251(ar)]TJ 0.5011 Tc 6.861 0 Td (eu)Tj 0 Tc 1.583 0 Td (sually)Tj -0.018 Tc -36.335 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(ed )-116(to )-116(be )-116(multiples )-116(of )-116(the )-116(system\325s )-116(virtual )-116(memory )-116(page )-116(size.)-616(This )-116(value )-116(can )-116(be)]TJ -0.856 -1.2 Td [(obtained )-702(fr)18(om )-702(the)]TJ /TT0 1 Tf 10.27 0 Td (sysconf)Tj /T1_0 1 Tf 5.152 0 Td [(function )-702(\(Section )-702(2.5.4\) )-702(with )-702(an )-702(ar)18(gument )-702(of)]TJ /TT0 1 Tf -15.422 -1.2 Td (_SC_PAGESIZE)Tj /T1_0 1 Tf 7.605 0 Td (or)Tj /TT0 1 Tf 1.346 0 Td (_SC_PAGE_SIZE)Tj /T1_0 1 Tf 0.6549 Tc (.S)Tj 0 Tc 9.23 0 Td (ince)Tj /T1_2 1 Tf 2.201 0 Td (off)Tj /T1_0 1 Tf 1.405 0 Td (and)Tj /T1_2 1 Tf 2.098 0 Td (addr)Tj /T1_0 1 Tf 2.238 0 Td (ar)Tj 0.4049 Tc 0.877 0 Td (eo)Tj 0 Tc 1.43 0 Td [(ften )-155(speci\336ed )-155(as )-155(0, )-155(this)]TJ -0.018 Tc -28.429 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(ement is not a big deal.)]TJ 7.9995 0 0 7.9995 183.5889 520.5688 Tm [(This )-194(r)18(equir)18(ement )-194(is )-194(usually )-194(imposed )-194(by )-194(the )-194(system )-194(implementations.)-698(Although )-194(the )-194(Single)]TJ 0 -1.25 Td [(UNIX )-11(Speci\336cation )-11(no )-11(longer )-11(r)17(equir)18(es )-11(that )-11(this )-11(condition )-11(be )-11(satis\336ed, )-11(all )-11(the )-11(platforms )-11(cover)14(ed)]TJ 0 -1.25 Td [(in )-166(this )-166(book, )-166(except )-166(Fr)18(eeBSD )-166(8.0, )-166(have )-166(this )-166(r)17(equir)18(ement. )-416(Fr)18(eeBSD )-166(8.0 )-166(allows )-166(us )-166(to )-166(use )-166(any)]TJ 0 -1.25 Td [(addr)18(ess alignment and of)18(fset alignment as long as the alignments match.)]TJ 9.9994 0 0 9.9994 147.5915 468.5719 Tm [(Since )-119(the )-119(starting )-119(of)18(fset )-119(of )-119(the )-119(mapped )-119(\336le )-119(is )-119(tied )-119(to )-119(the )-119(system\325s )-119(virtual )-119(memory)]TJ -1.8 -1.2 Td [(page )-46(size, )-46(what )-46(happens )-46(if )-46(the )-46(length )-46(of )-46(the )-46(mapped )-46(r)14(egion )-46(isn\325t )-46(a )-46(multiple )-46(of )-46(the )-46(page)]TJ T* [(size? )-326(Assume)-325(that )-76(the )-76(\336le )-76(size )-76(is )-76(12 )-76(bytes )-76(and )-76(that )-76(the )-76(system\325s )-76(page )-76(size )-76(is )-76(512 )-76(bytes.)]TJ T* [(In )-78(this )-78(case, )-78(the )-78(system )-78(normally )-78(pr)20(ovides )-77(a )-77(mapped )-77(r)18(egion )-77(of )-77(512 )-77(bytes, )-77(and )-77(the )-77(\336nal)]TJ T* [(500 )-33(bytes )-33(of )-33(this )-33(r)17(egion )-33(ar)]TJ 0.2833 Tc 11.464 0 Td (es)Tj 0 Tc 1.186 0 Td [(et )-33(to )-33(0.)]TJ -0.092 Tc 3.527 0 Td [(We )-217(c)]TJ 0 Tc 2.114 0 Td [(an )-33(modify )-33(the )-33(\336nal )-33(500 )-33(bytes, )-33(but )-33(any )-33(changes)]TJ -18.292 -1.2 Td [(we )-145(make )-145(to )-145(them )-145(ar)]TJ 0.3947 Tc 9.329 0 Td (en)Tj 0 Tc 1.456 0 Td [(ot )-145(r)18(e\337ected )-145(in )-145(the )-145(\336le.)-645(Thus )-145(we )-145(cannot )-145(append )-145(to )-145(a )-145(\336le )-145(with)]TJ /TT0 1 Tf -10.785 -1.2 Td (mmap)Tj /T1_0 1 Tf 0.5 Tc (.W)Tj 0.25 Tc 4.058 0 Td (em)Tj 0 Tc 1.612 0 Td [(ust \336rst gr)18(ow the \336le, as we will see in Figur)]TJ 0.25 Tc 19.51 0 Td (e1)Tj 0 Tc 1.229 0 Td (4.27.)Tj -0.09 Tc -24.609 -1.2 Td (Tw)Tj 0.275 Tc 1.357 0 Td (os)Tj 0 Tc 1.245 0 Td [(ignals )-25(ar)]TJ 0.2751 Tc 3.796 0 Td (en)Tj 0 Tc 1.336 0 Td [(ormally )-25(used )-25(with )-25(mapped )-25(r)18(egions.)]TJ /TT0 1 Tf 16.417 0 Td (SIGSEGV)Tj /T1_0 1 Tf 4.475 0 Td [(is )-25(normally )-25(used )-25(to)]TJ -30.427 -1.2 Td [(indicate )-32(that )-32(we )-32(have )-32(tried )-32(to )-32(access )-32(memory )-32(that )-32(is )-32(not )-32(available )-32(to )-32(us.)-532(This )-32(signal )-32(can)]TJ T* [(also )-81(be )-81(generated )-81(if )-81(we )-81(try )-81(to )-81(stor)]TJ 0.3314 Tc 15.279 0 Td (ei)Tj 0 Tc 1.101 0 Td [(nto )-81(a )-81(mapped )-81(r)18(egion )-81(that )-81(we )-81(speci\336ed )-81(to)]TJ /TT0 1 Tf 18.964 0 Td (mmap)Tj /T1_0 1 Tf 2.731 0 Td (as)Tj -0.018 Tc -38.076 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (ad-only)Tj 0.6124 Tc 3.308 0 Td (.T)Tj 0 Tc 1.475 0 Td (he)Tj /TT0 1 Tf 1.423 0 Td (SIGBUS)Tj /T1_0 1 Tf 3.962 0 Td [(signal )-112(can )-112(be )-112(generated )-112(if )-112(we )-112(access )-112(a )-112(portion )-112(of )-112(the )-112(mapped)]TJ -0.018 Tc -11.025 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(gion )-37(that )-37(does )-37(not )-37(make )-37(sense )-37(at )-37(the )-37(time )-37(of )-37(the )-37(access.)-532(For )-37(example, )-37(assume )-37(that )-37(we)]TJ -0.856 -1.2 Td [(map )-24(a )-24(\336le )-24(using )-24(the )-24(\336le\325s )-24(size, )-24(but )-24(befor)17(e)-274(we)-274(r)18(efer)18(ence )-24(the )-24(mapped )-24(r)18(egion, )-24(the )-24(\336le\325s )-24(size)]TJ 0 -1.2 Td [(is )-13(tr)8(uncated )-13(by )-13(some )-13(other )-13(pr)19(ocess. )-263(If)-263(we )-13(then )-13(try )-13(to )-13(access )-13(the )-13(memory-mapped )-13(r)19(egion)]TJ 0 -1.2 Td [(corr)18(esponding to the end portion of the \336le that was tr)8(uncated, we\325ll r)18(eceive)]TJ /TT0 1 Tf 33.83 0 Td (SIGBUS)Tj /T1_0 1 Tf (.)Tj 0.3625 Tc -32.03 -1.2 Td (Am)Tj 0 Tc 2.024 0 Td [(emory-mapped )-112(r)18(egion )-112(is )-112(inherited )-112(by )-112(a )-112(child )-112(acr)18(oss )-112(a)]TJ /TT0 1 Tf 24.754 0 Td (fork)Tj /T1_0 1 Tf 2.762 0 Td [(\(since )-112(it\325s )-112(part )-112(of)]TJ -31.34 -1.2 Td [(the )-279(par)18(ent\325s )-279(addr)18(ess )-279(space\), )-279(but )-279(for )-279(the )-279(same )-279(r)18(eason, )-279(is )-279(not )-279(inherited )-279(by )-279(the )-279(new)]TJ T* [(pr)18(ogram acr)18(oss an)]TJ /TT0 1 Tf 8.405 0 Td (exec)Tj /T1_0 1 Tf (.)Tj -0.092 Tc -6.605 -1.2 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td (an change the permissions on an existing mapping by calling)Tj /TT0 1 Tf 27.205 0 Td (mprotect)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.592 235.8858 Tm (#include )Tj 0 -1.902 TD (int mprotect\(void *)Tj /T1_2 1 Tf (addr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 15.033 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (len)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.023 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td [(pr)18(ot)]TJ /TT0 1 Tf (\);)Tj /T1_0 1 Tf 3.395 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1971.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 183.638 Tm [(The )-103(legal )-103(values )-103(for)]TJ /T1_2 1 Tf 9.339 0 Td [(pr)18(ot)]TJ /T1_0 1 Tf 2.001 0 Td (ar)Tj 0.3531 Tc 0.877 0 Td (et)Tj 0 Tc 1.158 0 Td [(he )-103(same )-103(as )-103(those )-103(for)]TJ /TT0 1 Tf 9.667 0 Td (mmap)Tj /T1_0 1 Tf 2.753 0 Td (\(Figur)Tj 0.353 Tc 2.716 0 Td (e1)Tj 0 Tc 1.332 0 Td [(4.25\). )-353(Be)-353(awar)]TJ 0.353 Tc 6.59 0 Td (et)Tj 0 Tc 1.158 0 Td (hat)Tj -37.592 -1.2 Td [(implementations )-154(may )-154(r)17(equir)]TJ 0.4046 Tc 12.919 0 Td (et)Tj 0 Tc 1.21 0 Td [(he )-155(addr)18(ess )-155(ar)18(gument )-155(to )-155(be )-155(an )-155(integral )-155(multiple )-155(of )-155(the)]TJ -14.129 -1.2 Td (system\325s page size.)Tj 1.8 -1.2 Td [(When )-284(we )-284(modify )-284(pages )-284(that )-284(we\325ve )-284(mapped )-284(into )-284(our )-284(addr)18(ess )-284(space )-284(using )-284(the)]TJ /TT0 1 Tf -1.8 -1.2 Td (MAP_SHARED)Tj /T1_0 1 Tf 6.316 0 Td [(\337ag, )-66(the )-66(changes )-66(ar)17(en\325t )-66(written )-66(back )-66(to )-66(the )-66(\336le )-66(immediately)]TJ 0.5663 Tc 26.655 0 Td (.I)Tj 0 Tc 1.153 0 Td [(nstead, )-66(the)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47435 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (516)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(We )-234(c)]TJ 0 Tc 2.131 0 Td [(an )-50(determine )-50(the )-50(value )-50(of)]TJ /TT0 1 Tf 11.811 0 Td (AIO_LISTIO_MAX)Tj /T1_1 1 Tf 8.7 0 Td [(by )-50(calling )-50(the)]TJ /TT0 1 Tf 6.351 0 Td (sysconf)Tj /T1_1 1 Tf 4.5 0 Td (function)Tj -35.293 -1.2 Td [(with )-58(the)]TJ /T1_2 1 Tf 4.037 0 Td (name)Tj /T1_1 1 Tf 2.475 0 Td [(ar)18(gument )-58(set )-58(to)]TJ /TT0 1 Tf 7.332 0 Td (_SC_IO_LISTIO_MAX)Tj /T1_1 1 Tf 0.5585 Tc (.S)Tj 0 Tc 11.534 0 Td [(imilarly)111(,)-308(we)-308(c)-1(an )-58(determine )-58(the)]TJ -25.378 -1.2 Td [(value )-115(of)]TJ /TT0 1 Tf 4.046 0 Td (AIO_MAX)Tj /T1_1 1 Tf 4.565 0 Td [(by )-115(calling)]TJ /TT0 1 Tf 4.793 0 Td (sysconf)Tj /T1_1 1 Tf 4.565 0 Td [(with )-115(the)]TJ /T1_2 1 Tf 4.149 0 Td (name)Tj /T1_1 1 Tf 2.532 0 Td [(ar)18(gument )-115(set )-115(to)]TJ /TT0 1 Tf 7.501 0 Td (_SC_AIO_MAX)Tj /T1_1 1 Tf (,)Tj -32.15 -1.2 Td [(and )-272(we )-272(can )-272(get )-272(the )-272(value )-272(of)]TJ /TT0 1 Tf 14.252 0 Td (AIO_PRIO_DELTA_MAX)Tj /T1_1 1 Tf 11.322 0 Td [(by )-272(calling)]TJ /TT0 1 Tf 5.108 0 Td (sysconf)Tj /T1_1 1 Tf 4.722 0 Td [(with )-272(its)]TJ -35.404 -1.2 Td [(ar)18(gument set to)]TJ /TT0 1 Tf 7.157 0 Td (_SC_AIO_PRIO_DELTA_MAX)Tj /T1_1 1 Tf (.)Tj -5.357 -1.2 Td [(The )-30(POSIX )-30(asynchr)18(onous )-30(I/O )-30(interfaces )-30(wer)]TJ 0.2799 Tc 19.831 0 Td (eo)Tj 0 Tc 1.305 0 Td [(riginally )-30(intr)18(oduced )-30(to )-30(pr)18(ovide )-30(r)18(eal-)]TJ -22.935 -1.2 Td [(time )-56(applications )-56(with )-56(a )-56(way )-56(to )-56(avoid )-56(being )-56(blocked )-56(while )-56(performing )-56(I/O )-56(operations.)]TJ 0 -1.2 TD (Now we\325ll look at an example of how to use the interfaces.)Tj /TT1 1 Tf -3.6 -2.88 Td (Example)Tj /T1_1 1 Tf -0.092 Tc 3.6 -2.4 Td [(We )-685(d)]TJ 0 Tc 2.749 0 Td [(on\325t )-501(discuss )-501(r)18(eal-time )-501(pr)19(ogramming )-501(in )-501(this )-501(text, )-501(but )-501(because )-501(the )-501(POSIX)]TJ -2.749 -1.2 Td [(asynchr)18(onous )-85(I/O )-85(interfaces )-85(ar)]TJ 0.3354 Tc 14.031 0 Td (en)Tj 0 Tc 1.396 0 Td [(ow )-85(part )-85(of )-85(the )-85(base )-85(speci\336cation )-85(in )-85(the )-85(Single )-85(UNIX)]TJ -15.427 -1.2 Td [(Speci\336cation, )-324(we\325ll )-324(look )-324(at )-324(how )-324(to )-324(use )-324(them.)]TJ -0.092 Tc 22.525 0 Td [(To )-508(c)]TJ 0 Tc 2.085 0 Td (ompar)Tj 0.5741 Tc 2.907 0 Td (et)Tj 0 Tc 1.379 0 Td [(he )-324(asynchr)18(onous )-324(I/O)]TJ -28.896 -1.2 Td [(interfaces )-10(with )-10(their )-10(conventional )-10(counterparts, )-10(we\325ll )-10(look )-10(at )-10(the )-10(task )-10(of )-10(translating )-10(a )-10(\336le)]TJ T* [(fr)18(om one format to another)74(.)]TJ 1.8 -1.2 Td [(The )-165(pr)18(ogram )-165(shown )-165(in )-165(Figur)]TJ 0.415 Tc 13.416 0 Td (e1)Tj 0 Tc 1.394 0 Td [(4.20 )-165(translates )-165(a )-165(\336le )-165(using )-165(the )-165(ROT)]TJ 16.272 0.09 Td (-)Tj 0.333 -0.09 Td [(13 )-165(algorithm)]TJ -33.215 -1.2 Td [(that )-37(the )-37(USENET )-37(news )-37(system, )-37(popular )-37(in )-37(the )-37(1980s, )-37(used )-37(to )-37(obscur)]TJ 0.2875 Tc 30.32 0 Td (et)Tj 0 Tc 1.092 0 Td [(ext )-37(that )-37(might )-37(be)]TJ -31.413 -1.2 Td [(of)18(fensive )-19(or )-19(contain )-19(spoilers )-19(or )-19(joke )-19(punchlines.)-519(The )-19(algorithm )-19(r)18(otates )-19(the )-19(characters )-19(\325a\325)]TJ T* [(to \325z\325 and \325A)74(\325)-250(to)-250(\325Z\325 by 13 positions, but leaves all other characters unchanged.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4290.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 419.4487 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj 0 -2.14 TD (#define BSZ 4096)Tj 0 -2.14 TD (unsigned char buf[BSZ];)Tj 0 -2.14 TD (unsigned char)Tj 0 -1.189 TD (translate\(unsigned char c\))Tj T* ({)Tj 2.4 -1.189 Td (if \(isalpha\(c\)\) {)Tj 2.4 -1.189 Td (if \(c >= \325n\325\))Tj 2.4 -1.189 Td [(c)-600(-=)-600(13;)]TJ -2.4 -1.189 Td (else if \(c >= \325a\325\))Tj 2.4 -1.189 Td [(c)-600(+=)-600(13;)]TJ -2.4 -1.189 Td (else if \(c >= \325N\325\))Tj 2.4 -1.189 Td [(c)-600(-=)-600(13;)]TJ -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td [(c)-600(+=)-600(13;)]TJ -4.8 -1.189 Td (})Tj T* (return\(c\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(int argc, char* argv[]\))Tj T* ({)Tj 2.4 -1.189 Td (int ifd, ofd, i, n, nw;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47436 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (48)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 215.987 670.2598 Tm (err_sys\("sysconf error"\);)Tj 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (fputs\(" \(no limit\)\\n", stdout\);)Tj -2.4 -1.189 Td (})Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (printf\(" %ld\\n", val\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (static void)Tj 0 -1.189 TD (pr_pathconf\(char *mesg, char *path, int name\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(long )-1800(val;)]TJ 0 -1.783 TD (fputs\(mesg, stdout\);)Tj 0 -1.189 TD (errno = 0;)Tj 0 -1.189 TD (if \(\(val = pathconf\(path, name\)\) < 0\) {)Tj 2.4 -1.189 Td (if \(errno != 0\) {)Tj 2.4 -1.189 Td (if \(errno == EINVAL\))Tj 2.4 -1.189 Td (fputs\(" \(not supported\)\\n", stdout\);)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (err_sys\("pathconf error, path = %s", path\);)Tj 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (fputs\(" \(no limit\)\\n", stdout\);)Tj -2.4 -1.189 Td (})Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (printf\(" %ld\\n", val\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3766.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 214.0183 360.5557 Tm (Figure 2.14)Tj /T1_1 1 Tf 5.695 0 Td (Print all possible)Tj /TT0 1 Tf 7.639 0 Td (sysconf)Tj /T1_1 1 Tf 4.45 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (pathconf)Tj /T1_1 1 Tf 5.05 0 Td (values)Tj 9.9988 0 0 9.9988 129.5838 334.1589 Tm (Figur)Tj 0.3203 Tc 2.383 0 Td (e2)Tj 0 Tc 1.299 0 Td [(.15 )-70(summarizes )-70(the )-70(r)18(esults )-70(fr)18(om )-70(Figur)]TJ 0.3202 Tc 17.066 0 Td (e2)Tj 0 Tc 1.299 0 Td [(.14 )-70(for )-70(the )-70(four )-70(systems )-70(we )-70(discuss )-70(in)]TJ -22.047 -1.2 Td [(this )-496(book.)-996(The )-496(entry )-496(\324)39(\324no )-496(symbol\325)]TJ 0.7457 Tc 17.205 0 Td (\325m)Tj 0 Tc 1.907 0 Td [(eans )-496(that )-496(the )-496(system )-496(doesn\325t )-496(pr)18(ovide )-496(a)]TJ -19.112 -1.2 Td [(corr)18(esponding)]TJ /TT0 1 Tf 6.739 0 Td (_SC)Tj /T1_1 1 Tf 2.105 0 Td (or)Tj /TT0 1 Tf 1.246 0 Td (_PC)Tj /T1_1 1 Tf 2.105 0 Td [(symbol )-55(to )-55(query )-55(the )-55(value )-55(of )-55(the )-55(constant.)-555(Thus )-55(the )-55(limit )-55(is)]TJ -12.197 -1.2 Td [(unde\336ned )-89(in )-89(this )-89(case.)-589(In )-89(contrast, )-89(the )-89(entry )-89(\324)40(\324unsupported\325)]TJ 0.3386 Tc 27.072 0 Td (\325m)Tj 0 Tc 1.5 0 Td [(eans )-89(that )-89(the )-89(symbol )-89(is)]TJ -28.571 -1.2 Td [(de\336ned )-64(by )-64(the )-64(system )-64(but )-64(unr)18(ecognized )-64(by )-64(the)]TJ /TT0 1 Tf 21.497 0 Td (sysconf)Tj /T1_1 1 Tf 4.514 0 Td (or)Tj /TT0 1 Tf 1.255 0 Td (pathconf)Tj /T1_1 1 Tf 5.114 0 Td [(functions. )-314(The)]TJ -32.381 -1.2 Td [(entry )-13(\324)37(\324no )-13(limit\325)]TJ 0.2634 Tc 6.835 0 Td (\325m)Tj 0 Tc 1.424 0 Td [(eans )-13(that )-13(the )-13(system )-13(de\336nes )-13(no )-13(limit )-13(for )-13(the )-13(constant, )-13(but )-13(this )-13(doesn\325t)]TJ -8.259 -1.2 Td (mean that the limit is in\336nite; it just means that the limit is indet\ erminite.)Tj 7.999 0 0 7.999 183.578 242.1699 Tm (Bewar)Tj 0.4223 Tc 2.801 0 Td (et)Tj 0 Tc 1.227 0 Td [(hat )-172(some )-172(limits )-172(ar)]TJ 0.4221 Tc 8.39 0 Td (er)Tj 0 Tc 1.278 0 Td [(eported )-172(incorr)18(ectly)]TJ 0.6721 Tc 8.479 0 Td (.F)Tj 0 Tc 1.478 0 Td [(or )-172(example, )-172(on )-172(Linux,)]TJ /TT0 1 Tf 10.61 0 Td (SYMLOOP_MAX)Tj /T1_1 1 Tf 7.022 0 Td (is)Tj -0.018 Tc -41.285 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(portedly )-152(unlimited, )-152(but )-152(an )-152(examination )-152(of )-152(the )-152(sour)18(ce )-152(code )-152(r)18(eveals )-152(that )-152(ther)13(e)-402(is)-402(a)-1(ctually )-152(a)]TJ -0.856 -1.25 Td [(har)18(d-coded )-5(limit )-5(of )-5(40 )-5(for )-5(the )-5(number )-5(of )-5(consecutive )-5(symbolic )-5(links )-5(traversed )-5(in )-5(the )-5(absence )-5(of)]TJ 0.25 Tc 0 -1.25 TD (al)Tj 0 Tc 1.041 0 Td (oop \(see the)Tj /TT0 1 Tf 5.545 0 Td (follow_link)Tj /T1_1 1 Tf 6.85 0 Td (function in)Tj /TT0 1 Tf 5.08 0 Td (fs/namei.c)Tj /T1_1 1 Tf (\).)Tj -18.516 -1.875 Td [(Another )-304(potential )-304(sour)18(ce )-304(of )-304(inaccuracy )-304(in )-304(Linux )-304(is )-304(that )-304(the)]TJ /TT0 1 Tf 28.998 0 Td (pathconf)Tj /T1_1 1 Tf 5.354 0 Td (and)Tj /TT0 1 Tf 2.248 0 Td (fpathconf)Tj /T1_1 1 Tf -36.6 -1.25 Td [(functions )-322(ar)]TJ 0.5719 Tc 5.58 0 Td (ei)Tj 0 Tc 1.342 0 Td [(mplemented )-322(in )-322(the )-322(C )-322(library)]TJ 0.8219 Tc 13.741 0 Td (.T)Tj 0 Tc 1.685 0 Td [(he )-322(con\336guration )-322(limits )-322(r)18(eturned )-322(by )-322(these)]TJ -22.347 -1.25 Td [(functions )-59(depend )-59(on )-59(the )-59(underlying )-59(\336le )-59(system )-59(type, )-59(so )-59(if )-59(your )-59(\336le )-59(system )-59(is )-59(unknown )-59(to )-59(the)]TJ 0.25 Tc T* (Cl)Tj 0 Tc 1.25 0 Td (ibrary)Tj 0.25 Tc 2.579 0 Td (,t)Tj 0 Tc 0.826 0 Td [(he functions r)18(eturn an educated guess.)]TJ -0.092 Tc 9.9988 0 0 9.9988 147.582 145.1816 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ll )-103(see )-103(in )-103(Section )-103(4.14 )-103(that)]TJ /TT0 1 Tf 11.913 0 Td (UFS)Tj /T1_1 1 Tf 2.154 0 Td [(is )-103(the )-103(SVR4 )-103(implementation )-103(of )-103(the )-103(Berkeley )-103(fast)]TJ -17.253 -1.2 Td [(\336le system.)-500(PCFS is the MS)]TJ 12.184 0.09 Td (-)Tj 0.333 -0.09 Td (DOS F)Tj -0.074 Tc 2.817 0 Td [(AT )-148(\336)]TJ 0 Tc 2.172 0 Td (le system implementation for Solaris.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1332.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47437 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (44)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1303.25 6670.25 cm 0 0 m 3886 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 166.374 658.9605 Tm (Name of limit)Tj 17.988 0 Td (Description)Tj /T1_2 1 Tf 15.915 0 Td (name)Tj /T1_1 1 Tf 2.417 0 Td [(ar)18(gument)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1303.25 6550.25 cm 0 0 m 3886 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1303.25 6530.25 cm 0 0 m 3886 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 134.2839 644.9226 Tm (FILESIZEBITS )Tj 34.975 0 Td (_PC_FILESIZEBITS)Tj /T1_1 1 Tf -20.3 0 Td (minimum number of bits needed to)Tj -0.018 Tc 2.25 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(pr)18(esent, as a signed integer value, the)]TJ -0.856 -1.25 Td [(maximum size of a r)18(egular \336le allowed)]TJ 0 -1.25 TD [(in the speci\336ed dir)18(ectory)]TJ /TT0 1 Tf -16.925 -1.25 Td (LINK_MAX )Tj 34.975 0 Td (_PC_LINK_MAX)Tj /T1_1 1 Tf -20.3 0 Td (maximum value of a \336le\325s link count)Tj /TT0 1 Tf -14.675 -1.25 Td (MAX_CANON )Tj 34.975 0 Td (_PC_MAX_CANON)Tj /T1_1 1 Tf -20.3 0 Td (maximum number of bytes on a terminal\325s)Tj 2.25 -1.25 Td (canonical input queue)Tj /TT0 1 Tf -16.925 -1.25 Td (MAX_INPUT )Tj 34.975 0 Td (_PC_MAX_INPUT)Tj /T1_1 1 Tf -20.3 0 Td (number of bytes for which space is available)Tj 2.25 -1.25 Td (on terminal\325s input queue)Tj /TT0 1 Tf -16.925 -1.25 Td (NAME_MAX )Tj 34.975 0 Td (_PC_NAME_MAX)Tj /T1_1 1 Tf -20.3 0 Td (maximum number of bytes in a \336lename)Tj 2.25 -1.25 Td (\(does not include a null at end\))Tj /TT0 1 Tf -16.925 -1.25 Td (PATH_MAX )Tj 34.975 0 Td (_PC_PATH_MAX)Tj /T1_1 1 Tf -20.3 0 Td [(maximum number of bytes in a r)18(elative)]TJ 2.25 -1.25 Td (pathname, including the terminating)Tj T* (null)Tj /TT0 1 Tf -16.925 -1.25 Td (PIPE_BUF )Tj 34.975 0 Td (_PC_PIPE_BUF)Tj /T1_1 1 Tf -20.3 0 Td (maximum number of bytes that can be)Tj 2.25 -1.25 Td (written atomically to a pipe)Tj /TT0 1 Tf 6.9992 0 0 6.9992 134.2839 484.9418 Tm (_POSIX_TIMESTAMP_RESOLUTION )Tj 39.971 0 Td (_PC_TIMESTAMP_RESOLUTION)Tj /T1_1 1 Tf -0.018 Tc 7.999 0 0 7.999 251.6698 484.9418 Tm (re)Tj 0 Tc 0.856 0 Td (solution in nanoseconds for \336le)Tj 1.394 -1.25 Td (timestamps)Tj /TT0 1 Tf -16.925 -1.25 Td (SYMLINK_MAX )Tj 34.975 0 Td (_PC_SYMLINK_MAX)Tj /T1_1 1 Tf -20.3 0 Td (number of bytes in a symbolic link)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1303.25 4610.25 cm 0 0 m 3886 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4121.25 4610.25 cm 0 0 m 0 2060 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2497.25 4610.25 cm 0 0 m 0 2060 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5189.25 4610.25 cm 0 0 m 0 2060 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1303.25 4610.25 cm 0 0 m 0 2060 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 198.0603 442.9203 Tm (Figure 2.12)Tj /T1_1 1 Tf 5.695 0 Td (Limits and)Tj /T1_2 1 Tf 5.019 0 Td (name)Tj /T1_1 1 Tf 2.417 0 Td [(ar)18(guments to)]TJ /TT0 1 Tf 6.102 0 Td (pathconf)Tj /T1_1 1 Tf 5.05 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (fpathconf)Tj /T1_1 1 Tf 9.9982 0 0 9.9982 147.5736 409.3263 Tm [(5. )-633(The)]TJ -0.018 Tc 3.558 0 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(enced )-1(\336le )-1(for)]TJ /TT0 1 Tf 7.187 0 Td (_PC_PIPE_BUF)Tj /T1_1 1 Tf 7.451 0 Td [(must )-1(be )-1(a )-1(pipe, )-1(FIFO, )-1(or )-1(dir)16(ectory)]TJ 0.5013 Tc 14.838 0 Td (.I)Tj 0.2513 Tc 1.088 0 Td (nt)Tj 0 Tc 1.159 0 Td (he)Tj -34.506 -1.2 Td [(\336rst )-157(two )-157(cases )-157(\(pipe )-157(or )-157(FIFO\), )-157(the )-157(r)15(eturn )-157(value )-157(is )-157(the )-157(limit )-157(for )-157(the )-157(r)15(efer)18(enced)]TJ 0 -1.2 TD [(pipe )-108(or )-108(FIFO.)-608(For )-108(the )-108(other )-108(case )-108(\(a )-108(dir)18(ectory\), )-108(the )-108(r)15(eturn )-108(value )-108(is )-108(the )-108(limit )-108(for)]TJ T* [(any FIFO cr)18(eated in that dir)18(ectory)111(.)]TJ -1.633 -1.6 Td [(6. )-633(The)]TJ -0.018 Tc 3.838 0 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(enced )-281(\336le )-281(for)]TJ /TT0 1 Tf 8.026 0 Td (_PC_SYMLINK_MAX)Tj /T1_1 1 Tf 9.531 0 Td [(must )-281(be )-281(a )-281(dir)18(ectory)]TJ 0.781 Tc 9.275 0 Td (.T)Tj 0 Tc 1.644 0 Td [(he )-281(value)]TJ -0.018 Tc -31.537 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turned )-277(is )-277(the )-277(maximum )-277(length )-277(of )-277(the )-277(string )-277(that )-277(a )-277(symbolic )-277(link )-277(in )-277(that)]TJ -0.856 -1.2 Td [(dir)18(ectory can contain.)]TJ /TT1 1 Tf -7.033 -3.12 Td (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td (The)Tj /TT0 1 Tf 2.017 0 Td (awk)Tj /T1_1 1 Tf 1.8 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.676 -0.04 Td [(pr)18(ogram )-93(shown )-93(in )-93(Figur)]TJ 0.3435 Tc 11.112 0 Td (e2)Tj 0 Tc 1.322 0 Td [(.13 )-93(builds )-93(a )-93(C )-93(pr)18(ogram )-93(that )-93(prints )-93(the )-93(value )-93(of)]TJ -17.762 -1.2 Td (each)Tj /TT0 1 Tf 2.255 0 Td (pathconf)Tj /T1_1 1 Tf 5.05 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (sysconf)Tj /T1_1 1 Tf 4.45 0 Td (symbol.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2590.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9978 0 0 8.9978 129.5689 249.4391 Tm (#!/usr/bin/awk -f)Tj 0 -1.189 TD [(BEGIN )-1200({)]TJ 2.4 -1.189 Td (printf\("#include \\"apue.h\\"\\n"\))Tj T* (printf\("#include \\n"\))Tj T* (printf\("#include \\n"\))Tj 0 -1.189 TD (printf\("\\n"\))Tj 0 -1.189 TD (printf\("static void pr_sysconf\(char *, int\);\\n"\))Tj T* (printf\("static void pr_pathconf\(char *, char *, int\);\\n"\))Tj T* (printf\("\\n"\))Tj T* (printf\("int\\n"\))Tj T* (printf\("main\(int argc, char *argv[]\)\\n"\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47438 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf -0.037 Tc 9 0 0 9 93.6 708 Tm (11)Tj 0 Tc 0.963 0 Td (8)Tj /T1_1 1 Tf 2.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.278 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Example)Tj /T1_1 1 Tf 3.6 -1.8 Td [(The )-77(pr)18(ogram )-77(shown )-77(in )-77(Figur)]TJ 0.3266 Tc 13.062 0 Td (e4)Tj 0 Tc 1.306 0 Td [(.16 )-77(opens )-77(a )-77(\336le )-77(and )-77(then )-77(unlinks )-77(it.)-577(The )-77(pr)18(ogram )-77(then)]TJ -14.368 -1.2 Td (goes to sleep for 15 seconds befor)Tj 0.25 Tc 14.723 0 Td (et)Tj 0 Tc 1.055 0 Td (erminating.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6318.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 622.2243 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (if \(open\("tempfile", O_RDWR\) < 0\))Tj 2.4 -1.189 Td (err_sys\("open error"\);)Tj -2.4 -1.189 Td (if \(unlink\("tempfile"\) < 0\))Tj 2.4 -1.189 Td (err_sys\("unlink error"\);)Tj -2.4 -1.189 Td (printf\("file unlinked\\n"\);)Tj T* (sleep\(15\);)Tj T* (printf\("done\\n"\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4730.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 246.9675 456.9657 Tm (Figure 4.16)Tj /T1_1 1 Tf 5.695 0 Td (Open a \336le and then)Tj /TT1 1 Tf 9.235 0 Td (unlink)Tj /T1_1 1 Tf 3.85 0 Td (it)Tj 9.9982 0 0 9.9982 129.577 435.3696 Tm [(Running this pr)18(ogram gives us)]TJ /TT1 1 Tf 8.9984 0 0 8.9984 147.5737 421.0722 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (ls -l tempfile)Tj /T1_2 1 Tf 16.4 0 Td (look at how big the \336le is)Tj /TT1 1 Tf -17.6 -1.189 Td [(-rw-r----- )-600(1)-600(sar )-2400(413265408)-600(Jan 21 07:14 tempfile)]TJ T* ($)Tj /TT2 1 Tf 1.2 0 Td (df /home)Tj /T1_2 1 Tf 16.4 0 Td [(check how much fr)18(ee space is available)]TJ /TT1 1 Tf -17.6 -1.189 Td [(Filesystem )-1200(1K-blocks)-3000(Used )-600(Available )-600(Use% )-600(Mounted)-600(on)]TJ T* [(/dev/hda4 )-2400(11021440)-1200(1956332 )-1800(9065108)-1800(18% )-600(/home)]TJ 0 -1.189 TD ($)Tj /TT2 1 Tf 1.2 0 Td (./a.out &)Tj /T1_2 1 Tf 16.4 0 Td [(run the pr)18(ogram in Figur)]TJ 0.25 Tc 10.244 0 Td (e4)Tj 0 Tc 1.139 0 Td [(.16 in the backgr)18(ound)]TJ /TT1 1 Tf -28.983 -1.189 Td (1364)Tj /T1_2 1 Tf 17.6 0 Td [(the shell prints its pr)18(ocess ID)]TJ /TT1 1 Tf 0.6 Tc -17.6 -1.189 Td ($f)Tj 0 Tc 1.8 0 Td (ile unlinked)Tj /T1_2 1 Tf 15.8 0 Td (the \336le is unlinked)Tj /TT2 1 Tf -17.6 -1.189 Td (ls -l tempfile)Tj /T1_2 1 Tf 17.6 0 Td [(see if the \336lename is still ther)18(e)]TJ /TT1 1 Tf -17.6 -1.189 Td (ls: tempfile: No such file or directory)Tj /T1_2 1 Tf 25.6 0 Td [(the dir)18(ectory entry is gone)]TJ /TT1 1 Tf -25.6 -1.189 Td ($)Tj /TT2 1 Tf 1.2 0 Td (df /home)Tj /T1_2 1 Tf 16.4 0 Td (see if the space is available yet)Tj /TT1 1 Tf -17.6 -1.189 Td [(Filesystem )-1200(1K-blocks)-3000(Used )-600(Available )-600(Use% )-600(Mounted)-600(on)]TJ 0 -1.189 TD [(/dev/hda4 )-2400(11021440)-1200(1956332 )-1800(9065108)-1800(18% )-600(/home)]TJ 0.6 Tc T* ($d)Tj 0 Tc 1.8 0 Td (one)Tj /T1_2 1 Tf 15.8 0 Td [(the pr)18(ogram is done, all open \336les ar)]TJ 0.25 Tc 14.492 0 Td (ec)Tj 0 Tc 1.046 0 Td (losed)Tj /TT2 1 Tf -33.138 -1.189 Td (df /home)Tj /T1_2 1 Tf 17.6 0 Td (now the disk space should be available)Tj /TT1 1 Tf -17.6 -1.189 Td [(Filesystem )-1200(1K-blocks)-3000(Used )-600(Available )-600(Use% )-600(Mounted)-600(on)]TJ T* [(/dev/hda4 )-2400(11021440)-1200(1552352 )-1800(9469088)-1800(15% )-600(/home)]TJ /T1_2 1 Tf 17.6 -1.189 Td (now the 394.1 MB of disk space ar)Tj 0.25 Tc 13.776 0 Td (ea)Tj 0 Tc 1.083 0 Td (vailable)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2392.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9976 0 0 9.9976 147.5646 216.3961 Tm [(This )-34(pr)18(operty )-34(of)]TJ /TT1 1 Tf 7.522 0 Td (unlink)Tj /T1_1 1 Tf 3.884 0 Td [(is )-34(often )-34(used )-34(by )-34(a )-34(pr)18(ogram )-34(to )-34(ensur)]TJ 0.2839 Tc 15.889 0 Td (et)Tj 0 Tc 1.089 0 Td [(hat )-34(a )-34(temporary )-34(\336le)]TJ -30.184 -1.2 Td [(it )-118(cr)18(eates )-118(won\325t )-118(be )-118(left )-118(ar)18(ound )-118(in )-118(case )-118(the )-118(pr)18(ogram )-118(crashes.)-619(The )-118(pr)18(ocess )-118(cr)18(eates )-118(a )-118(\336le)]TJ 0 -1.2 TD [(using )-7(either)]TJ /TT1 1 Tf 5.523 0 Td (open)Tj /T1_1 1 Tf 2.658 0 Td (or)Tj /TT1 1 Tf 1.199 0 Td (creat)Tj /T1_1 1 Tf 3.258 0 Td [(and )-7(then )-7(immediately )-7(calls)]TJ /TT1 1 Tf 12.232 0 Td (unlink)Tj /T1_1 1 Tf 0.5075 Tc (.T)Tj 0 Tc 4.971 0 Td [(he )-7(\336le )-7(is )-7(not )-7(deleted,)]TJ -29.839 -1.2 Td (however)Tj 0.5401 Tc 3.806 0 Td (,b)Tj 0 Tc 1.343 0 Td [(ecause )-290(it )-290(is )-290(still )-290(open.)-790(Only )-290(when )-290(the )-290(pr)17(ocess )-290(either )-290(closes )-290(the )-290(\336le )-290(or)]TJ -5.149 -1.2 Td (terminates, which causes the kernel to close all its open \336les, is th\ e \336le deleted.)Tj 1.8 -1.2 Td (If)Tj /T1_2 1 Tf 1.17 0 Td (pathname)Tj /T1_1 1 Tf 4.444 0 Td [(is )-250(a )-250(symbolic )-250(link,)]TJ /TT1 1 Tf 9.173 0 Td (unlink)Tj /T1_1 1 Tf -0.018 Tc 4.1 0 Td (re)Tj 0 Tc 0.856 0 Td [(moves )-250(the )-250(symbolic )-250(link, )-250(not )-250(the )-250(\336le)]TJ -0.018 Tc -21.542 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(enced )-41(by )-41(the )-41(link.)-541(Ther)18(e)-291(is)-291(no)-291(function )-41(to )-41(r)18(emove )-41(the )-41(\336le )-41(r)18(efer)18(enced )-41(by )-41(a )-41(symbolic)]TJ -0.856 -1.2 Td (link given the name of the link.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47439 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(2.6)]TJ 40.777 0 Td (Options)Tj /T1_1 1 Tf 5.556 0 Td (55)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 168.9199 668.9599 Tm (\245)Tj /TT0 1 Tf 1.489 0 Td (_POSIX_READER_WRITER_LOCKS)Tj /T1_0 1 Tf -1.489 -1.6 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (_POSIX_REALTIME_SIGNALS)Tj /T1_0 1 Tf -1.489 -1.6 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (_POSIX_SEMAPHORES)Tj /T1_0 1 Tf -1.489 -1.6 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (_POSIX_SPIN_LOCKS)Tj /T1_0 1 Tf -1.489 -1.6 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (_POSIX_THREAD_SAFE_FUNCTIONS)Tj /T1_0 1 Tf -1.489 -1.6 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (_POSIX_THREADS)Tj /T1_0 1 Tf -1.489 -1.6 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (_POSIX_TIMEOUTS)Tj /T1_0 1 Tf -1.489 -1.6 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (_POSIX_TIMERS)Tj /T1_0 1 Tf -1.489 -1.68 Td [(These )-138(constants )-138(ar)]TJ 0.3885 Tc 8.385 0 Td (ed)Tj 0 Tc 1.479 0 Td [(e\336ned )-138(to )-138(have )-138(the )-138(value )-138(200809L.)-638(Their )-138(corr)15(esponding)]TJ /TT0 1 Tf -9.864 -1.2 Td (_SC)Tj /T1_0 1 Tf 2.05 0 Td (symbols ar)Tj 0.25 Tc 4.804 0 Td (ea)Tj 0 Tc 1.229 0 Td [(lso r)18(etained for backwar)]TJ 0.25 Tc 10.694 0 Td (dc)Tj 0 Tc 1.305 0 Td [(ompatibility)111(.)]TJ -22.215 -1.6 Td (5.)Tj /TT0 1 Tf 2.133 0 Td (_PC_CHOWN_RESTRICTED)Tj /T1_0 1 Tf 12.46 0 Td (and)Tj /TT0 1 Tf 2.153 0 Td (_PC_NO_TRUNC)Tj /T1_0 1 Tf -0.018 Tc 7.66 0 Td (re)Tj 0 Tc 0.856 0 Td (turn)Tj /TT1 1 Tf 2.366 0 Td (!)Tj /T1_0 1 Tf 0.4604 Tc (1w)Tj 0 Tc 2.343 0 Td [(ithout )-210(changing)]TJ /TT0 1 Tf -27.84 -1.2 Td (errno)Tj /T1_0 1 Tf 3.357 0 Td [(if )-107(the )-107(featur)18(e)-357(is)-357(not )-107(supported )-107(for )-107(the )-107(speci\336ed)]TJ /T1_2 1 Tf 21.67 0 Td (pathname)Tj /T1_0 1 Tf 4.301 0 Td (or)Tj /T1_2 1 Tf 1.298 0 Td (fd)Tj /T1_0 1 Tf 0.6068 Tc (.O)Tj 0.3568 Tc 2.421 0 Td (na)Tj 0 Tc 1.439 0 Td (ll)Tj -34.485 -1.2 Td [(POSIX-conforming )-479(systems, )-479(the )-479(r)18(eturn )-479(value )-479(will )-479(be )-479(gr)18(eater )-479(than )-479(zer)18(o)]TJ 0 -1.2 TD [(\(indicating that the featur)18(e)-250(is)-250(supported\).)]TJ -2.133 -1.6 Td [(6. )-1133(The)]TJ -0.018 Tc 4.259 0 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(enced )-202(\336le )-202(for)]TJ /TT0 1 Tf 7.788 0 Td (_PC_CHOWN_RESTRICTED)Tj /T1_0 1 Tf 12.452 0 Td [(must )-202(be )-202(either )-202(a )-202(\336le )-202(or )-202(a)]TJ -23.221 -1.2 Td [(dir)18(ectory)]TJ 0.6883 Tc 3.914 0 Td (.I)Tj 0 Tc 1.275 0 Td [(f)-438(it)-438(is)-438(a)-438(d)-1(ir)18(ectory)]TJ 0.4383 Tc 7.832 0 Td (,t)Tj 0 Tc 1.014 0 Td [(he )-188(r)18(eturn )-188(value )-188(indicates )-188(whether )-188(this )-188(option)]TJ -14.036 -1.2 Td [(applies to \336les within that dir)18(ectory)111(.)]TJ -2.133 -1.6 Td [(7. )-1133(The)]TJ -0.018 Tc 4.367 0 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(enced )-310(\336le )-310(for)]TJ /TT0 1 Tf 8.114 0 Td (_PC_NO_TRUNC)Tj /T1_0 1 Tf 7.76 0 Td (and)Tj /TT0 1 Tf 2.253 0 Td (_PC_2_SYMLINKS)Tj /T1_0 1 Tf 8.96 0 Td [(must )-310(be )-310(a)]TJ -30.178 -1.2 Td [(dir)18(ectory)111(.)]TJ -2.133 -1.6 Td [(8. )-1133(For)]TJ /TT0 1 Tf 3.907 0 Td (_PC_NO_TRUNC)Tj /T1_0 1 Tf 0.2774 Tc (,t)Tj 0 Tc 8.053 0 Td [(he )-27(r)18(eturn )-27(value )-27(applies )-27(to )-27(\336lenames )-27(within )-27(the )-27(dir)15(ectory)111(.)]TJ -11.961 -1.6 Td [(9. )-1133(The)]TJ -0.018 Tc 4.057 0 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(enced \336le for)]TJ /TT0 1 Tf 7.183 0 Td (_PC_VDISABLE)Tj /T1_0 1 Tf 7.45 0 Td (must be a terminal \336le.)Tj -19.546 -1.6 Td [(10. )-633(For)]TJ /TT0 1 Tf 4.105 0 Td (_PC_ASYNC_IO)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 7.925 0 Td (_PC_PRIO_IO)Tj /T1_0 1 Tf 0.475 Tc (,a)Tj 0 Tc 7.825 0 Td (nd)Tj /TT0 1 Tf 1.668 0 Td (_PC_SYNC_IO)Tj /T1_0 1 Tf 0.475 Tc (,t)Tj 0 Tc 7.651 0 Td [(he )-225(r)18(efer)18(enced )-225(\336le)]TJ -27.041 -1.2 Td [(must not be a dir)18(ectory)111(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1270.25 3270.25 cm 0 0 m 3808 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 158.325 318.9617 Tm (Name of option)Tj 18.285 0 Td (Indicates ...)Tj /T1_2 1 Tf 15.536 0 Td (name)Tj /T1_0 1 Tf 2.417 0 Td [(ar)18(gument)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1270.25 3150.25 cm 0 0 m 3808 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1270.25 3130.25 cm 0 0 m 3808 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 130.9764 304.9451 Tm (_POSIX_CHOWN_RESTRICTED )Tj 34.6 0 Td (_PC_CHOWN_RESTRICTED)Tj /T1_0 1 Tf -20.3 0 Td (whether use of)Tj /TT0 1 Tf 6.812 0 Td (chown)Tj /T1_0 1 Tf 3.25 0 Td [(is r)18(estricted)]TJ /TT0 1 Tf -24.362 -1.25 Td (_POSIX_NO_TRUNC )Tj 34.6 0 Td (_PC_NO_TRUNC)Tj /T1_0 1 Tf -20.3 0 Td (whether \336lenames longer than)Tj /TT0 1 Tf 13.759 0 Td (NAME_MAX)Tj /T1_0 1 Tf -11.509 -1.25 Td [(generate an err)18(or)]TJ /TT0 1 Tf -16.55 -1.25 Td (_POSIX_VDISABLE )Tj 34.6 0 Td (_PC_VDISABLE)Tj /T1_0 1 Tf -20.3 0 Td (if de\336ned, terminal special characters can be)Tj 2.25 -1.25 Td (disabled with this value)Tj /TT0 1 Tf -16.55 -1.25 Td (_POSIX_ASYNC_IO )Tj 34.6 0 Td (_PC_ASYNC_IO)Tj /T1_0 1 Tf -20.3 0 Td [(whether asynchr)18(onous I/O can be used with)]TJ 2.25 -1.25 Td (the associated \336le)Tj /TT0 1 Tf -16.55 -1.25 Td (_POSIX_PRIO_IO )Tj 34.6 0 Td (_PC_PRIO_IO)Tj /T1_0 1 Tf -20.3 0 Td (whether prioritized I/O can be used with)Tj 2.25 -1.25 Td (the associated \336le)Tj /TT0 1 Tf -16.55 -1.25 Td (_POSIX_SYNC_IO )Tj 34.6 0 Td (_PC_SYNC_IO)Tj /T1_0 1 Tf -20.3 0 Td [(whether synchr)18(onized I/O can be used with)]TJ 2.25 -1.25 Td (the associated \336le)Tj /TT0 1 Tf -16.55 -1.25 Td (_POSIX2_SYMLINKS )Tj 34.6 0 Td (_PC_2_SYMLINKS)Tj /T1_0 1 Tf -20.3 0 Td (whether symbolic links ar)Tj 0.25 Tc 11.436 0 Td (es)Tj 0 Tc 1.153 0 Td (upported in the)Tj -10.339 -1.25 Td [(dir)18(ectory)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1270.25 1810.25 cm 0 0 m 3808 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4058.25 1810.25 cm 0 0 m 0 1460 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2434.25 1810.25 cm 0 0 m 0 1460 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5078.25 1810.25 cm 0 0 m 0 1460 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1270.25 1810.25 cm 0 0 m 0 1460 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 195.1292 162.9609 Tm (Figure 2.18)Tj /T1_0 1 Tf 5.695 0 Td (Options and)Tj /T1_2 1 Tf 5.749 0 Td (name)Tj /T1_0 1 Tf 2.417 0 Td [(ar)18(guments to)]TJ /TT0 1 Tf 6.102 0 Td (pathconf)Tj /T1_0 1 Tf 5.05 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (fpathconf)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47440 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (988)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm ()Tj /T1_1 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7, 208, 895)Tj /TT0 1 Tf -10.639 -1.25 Td (stdout)Tj /T1_1 1 Tf 4.017 0 Td [(variable, )-250(10,)-250(145, 154, 247)]TJ 11.407 0.09 Td (\320)Tj 0.583 -0.09 Td (248, 275, 901,)Tj -13.307 -1.25 Td (921, 930)Tj /TT0 1 Tf -2.7 -1.25 Td (STDOUT_FILENO)Tj /T1_1 1 Tf 8.217 0 Td [(constant, )-250(9,)-250(62, 72, 145, 230, 235,)]TJ -5.517 -1.25 Td (378, 483, 537, 544, 549)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (550, 614, 618)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (620,)Tj -16.333 -1.25 Td (654)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (656, 729, 733, 739)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (740, 921)Tj -13.033 -1.25 Td [(Stevens, D. A.,)-500(xxxii)]TJ 0 -1.25 TD [(Stevens, E. M.,)-500(xxxii)]TJ T* [(Stevens, S. H.,)-500(xxxii)]TJ T* (Stevens, W)Tj 0.25 Tc 4.788 0 Td (.R)Tj 0 Tc 1.168 0 Td [(., )-250(xx,)-250(xxv\320xxvi, xxxii, 157, 291, 470,)]TJ -3.256 -1.25 Td (505, 589, 717, 793, 952)Tj -2.7 -1.25 Td [(sticky bit,)-500(107)]TJ 6.35 0.09 Td (\320)Tj 0.583 -0.09 Td [(109, 1)55(17, 140)]TJ /TT0 1 Tf -6.934 -1.25 Td (stime)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(190)]TJ -3.417 -1.25 Td [(Stonebraker)74(,)-250(M.)-250(R., )-250(743,)-250(953)]TJ T* [(ST)18(OP terminal character)]TJ 0.5 Tc 10.748 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 680)Tj 3.083 0.09 Td (\320)Tj 0.583 -0.09 Td (682, 686, 689,)Tj -12.964 -1.25 Td (693)Tj /TT0 1 Tf -2.7 -1.25 Td (str2sig)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(380)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(380)]TJ /TT0 1 Tf -1.35 -1.25 Td (strace)Tj /T1_1 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(497)]TJ -4.017 -1.25 Td [(Strang, J.,)-500(712, 953)]TJ /TT0 1 Tf T* (strchr)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(767)]TJ -4.017 -1.25 Td [(str)18(eam orientation,)-500(144)]TJ /TT0 1 Tf T* (STREAM_MAX)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(38,)-250(40, 43, 49)]TJ -6.417 -1.25 Td [(STREAMS, )-250(xxii,)-250(88, 143, 501)]TJ 12.613 0.09 Td (\320)Tj 0.583 -0.09 Td (502, 506, 508, 510,)Tj -10.496 -1.25 Td (534, 560, 565, 648, 716)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (717, 722, 726, 740)Tj -12.867 -1.25 Td [(str)18(eams, memory)]TJ 0.5 Tc 7.544 0 Td (,1)Tj 0 Tc 1.25 0 Td (71)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (174)Tj -10.461 -1.25 Td (STREAMS module)Tj /TT0 1 Tf 1.35 -1.25 Td (ldterm)Tj /T1_1 1 Tf 0.5 Tc 3.767 0 Td (,7)Tj 0 Tc 1.25 0 Td (16, 726)Tj /TT0 1 Tf -5.017 -1.25 Td (pckt)Tj /T1_1 1 Tf 0.5 Tc 2.567 0 Td (,7)Tj 0 Tc 1.25 0 Td (16, 740)Tj /TT0 1 Tf -3.817 -1.25 Td (ptem)Tj /T1_1 1 Tf 0.5 Tc 2.567 0 Td (,7)Tj 0 Tc 1.25 0 Td (16, 726)Tj /TT0 1 Tf -3.817 -1.25 Td (ttcompat)Tj /T1_1 1 Tf 0.5 Tc 4.967 0 Td (,7)Tj 0 Tc 1.25 0 Td (16, 726)Tj -7.567 -1.25 Td [(str)18(eams, standar)]TJ 0.25 Tc 7.233 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O, )-250(143)]TJ 3.725 0.09 Td (\320)Tj 0.583 -0.09 Td (144)Tj -12.74 -1.25 Td (STREAMS)Tj 4.666 0.09 Td (-)Tj 0.333 -0.09 Td [(based pipes, mounted,)-500(534)]TJ -3.649 -1.25 Td [(timing, )-250(565)]TJ /TT0 1 Tf -1.35 -1.25 Td (strerror)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(15)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (16, 24, 380, 442, 452, 471,)Tj -8.64 -1.25 Td (474, 478)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (479, 600, 615)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (618, 621)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (622, 657,)Tj -14.5 -1.25 Td (669, 823)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (827, 830, 833)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (834, 842, 899, 901,)Tj -10.333 -1.25 Td (904, 906, 931)Tj -1.35 -1.25 Td [(de\336nition of,)-500(15)]TJ /TT0 1 Tf -1.35 -1.25 Td (strerror_r)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(443,)-250(452)]TJ /TT0 1 Tf -6.417 -1.25 Td (strftime)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(190,)-250(192)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (196, 264, 408, 452,)Tj -11.14 -1.25 Td (919)Tj -1.35 -1.25 Td [(de\336nition of,)-500(192)]TJ /TT0 1 Tf -1.35 -1.25 Td (strftime_l)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(192)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(192)]TJ /TT0 1 Tf -1.35 -1.25 Td ()Tj /T1_1 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7, 895)Tj /TT0 1 Tf -10.639 -1.25 Td ()Tj /T1_1 1 Tf 7.017 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj /TT0 1 Tf -11.239 -1.25 Td (strip)Tj /T1_1 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(920)]TJ /TT0 1 Tf -3.417 -1.25 Td (strlen)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(12,)-250(231, 945)]TJ /TT0 1 Tf -4.017 -1.25 Td (strncasecmp)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(840)]TJ /TT0 1 Tf -7.017 -1.25 Td (strncpy)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(809)]TJ -4.617 -1.25 Td [(Str)18(ong, H. R.,)-500(744, 750, 949)]TJ /TT0 1 Tf T* ()Tj /T1_1 1 Tf 7.017 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,5)Tj 0 Tc 1.25 0 Td (08, 510)Tj /TT0 1 Tf 14.761 65 Td (strptime)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(195)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(195)]TJ /TT0 1 Tf -1.35 -1.25 Td (strsignal)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(380,)-250(830)]TJ -4.467 -1.25 Td [(de\336nition of,)-500(380)]TJ /TT0 1 Tf -1.35 -1.25 Td (strtok)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(442,)-250(657)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (658)Tj /TT0 1 Tf -12.64 -1.25 Td (strtok_r)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(443)]TJ /TT0 1 Tf -5.217 -1.25 Td (strtol)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(633)]TJ /TT0 1 Tf -4.017 -1.25 Td (stty)Tj /T1_1 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(301,)-250(691)]TJ 8.191 0.09 Td (\320)Tj 0.583 -0.09 Td (692, 702, 713, 943)Tj -11.591 -1.25 Td [(Stumm, M.,)-500(174, 531, 950)]TJ /TT0 1 Tf T* (S_TYPEISMQ)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(96)]TJ /TT0 1 Tf -6.417 -1.25 Td (S_TYPEISSEM)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(96)]TJ /TT0 1 Tf -7.017 -1.25 Td (S_TYPEISSHM)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(96)]TJ /TT0 1 Tf -7.017 -1.25 Td (su)Tj /T1_1 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(472)]TJ /TT0 1 Tf -1.617 -1.25 Td (submit_file)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(807,)-250(809, 81)55(1)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(809)]TJ -1.35 -1.25 Td (SUID,)Tj /T1_2 1 Tf 3.164 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td [(set-user)18(-ID)]TJ -4.581 -1.25 Td [(Sun Micr)18(osystems, )-250(xxi\320xxii,)-250(xxvii, 33, 35, 76, 740,)]TJ 2.7 -1.25 Td (953)Tj -2.7 -1.25 Td [(SunOS, )-250(xxxi,)-250(33, 206, 330, 354)]TJ T* [(super)8(user)]TJ 0.5 Tc 4.321 0 Td (,1)Tj 0 Tc 1.25 0 Td (6)Tj -5.571 -1.25 Td [(supplementary gr)18(oup ID,)-500(18, 39, 98, 101, 108, 1)55(10,)]TJ 2.7 -1.25 Td (183)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (184, 233, 252, 258)Tj -4.867 -1.25 Td [(SUS \(Single UNIX Speci\336cation\),)-500(xxi, xxvi, 28,)]TJ 2.7 -1.25 Td (30)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (33, 36, 50, 53)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (54, 57)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (58, 60)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (61, 64, 69, 78,)Tj -14.166 -1.25 Td (88, 94, 105, 107, 109, 131, 136, 143, 157, 163,)Tj T* (168)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (169, 180, 183, 190)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(191, 196, 21)55(1)]TJ 5.528 0.09 Td (\320)Tj 0.583 -0.09 Td (212,)Tj -16.445 -1.25 Td (220)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (221, 234, 239, 244)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(245, 262, 293, 296, 31)55(1,)]TJ -10.333 -1.25 Td (315, 322, 330, 333, 352, 354, 410, 425, 429)Tj 17.583 0.09 Td (\320)Tj 0.583 -0.09 Td (431,)Tj -18.166 -1.25 Td (442, 469)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (472, 485, 496, 501, 507, 509, 521,)Tj -4.166 -1.25 Td (527)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (528, 533)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (534, 559, 561, 565)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (566,)Tj -14.5 -1.25 Td (572)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (573, 583, 596, 607, 610, 612, 623, 627, 645,)Tj -2.167 -1.25 Td (662, 674, 678, 683, 722)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (724, 744, 910, 950, 953)Tj -12.867 -1.25 Td (SUSP terminal character)Tj 0.5 Tc 10.67 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 680, 682, 688, 701)Tj -11.92 -1.25 Td [(SUSv3 \(Single UNIX Speci\336cation, V)111(ersion 3\),)-500(32)]TJ T* [(SUSv4 \(Single UNIX Speci\336cation, V)111(ersion 4\),)-500(32,)]TJ 2.7 -1.25 Td (88, 132, 143, 153, 168)Tj 9.083 0.09 Td (\320)Tj 0.583 -0.09 Td (169, 189, 314, 319)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (320,)Tj -17.833 -1.25 Td (336, 375)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (376, 384, 442, 501, 509)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (510, 525,)Tj -14.333 -1.25 Td (533, 571, 579)Tj -2.7 -1.25 Td [(SVID \(System V Interface De\336nition\),)-500(xix, 32)]TJ 19.946 0.09 Td (\320)Tj 0.583 -0.09 Td (33,)Tj -17.829 -1.25 Td (948)Tj -2.7 -1.25 Td [(SVR2, )-250(65,)-250(187, 317, 329, 336, 340)]TJ 14.248 0.09 Td (\320)Tj 0.583 -0.09 Td (341, 712, 948)Tj -14.832 -1.25 Td [(SVR3, )-250(76,)-250(129, 201, 299, 313, 317, 319, 326, 329, 333,)]TJ 2.7 -1.25 Td (336, 496, 502, 507, 898, 948)Tj -2.7 -1.25 Td [(SVR3.0, )-250(xxxi)]TJ T* [(SVR3.1, )-250(xxxi)]TJ T* [(SVR3.2, )-250(xxxi,)-250(36, 81, 267)]TJ T* [(SVR4, )-250(xxii,)-250(xxxi\320xxxii, 3, 21, 33, 35)]TJ 15.331 0.09 Td (\320)Tj 0.583 -0.09 Td (36, 48, 63, 65,)Tj -13.214 -1.25 Td (76, 121, 187, 209, 290, 296, 299, 310, 313, 317,)Tj T* (329, 333, 336, 469, 502, 507)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (508, 521, 712, 722,)Tj -12.166 -1.25 Td (744, 948, 953)Tj -2.7 -1.25 Td [(swapper pr)18(ocess, )-250(227)]TJ /TT0 1 Tf T* (S_WRBAND)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(510)]TJ /TT0 1 Tf -5.217 -1.25 Td (S_WRNORM)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(510)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47441 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (xx)Tj /T1_1 1 Tf 3 0 Td [(For)18(ewor)18(d)-500(to)-500(the )-250(Second )-250(Edition)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 0.4211 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm (ac)Tj 0 Tc 1.365 0 Td [(entral )-171(r)18(eason )-171(for )-171(the )-171(system\325s )-171(longevity )-171(has )-171(been )-171(that )-171(it )-171(has )-171(attracted )-171(r)16(emarkably)]TJ -1.365 -1.2 Td [(talented )-90(writers )-90(to )-90(explain )-90(its )-90(beauties )-90(and )-90(mysteries. )-90(Brian )-90(Kernighan )-90(is )-90(one )-90(of )-90(these;)]TJ 0 -1.2 TD [(Rich )-53(Stevens )-53(is )-53(certainly )-53(another)]TJ 0.5527 Tc 14.491 0 Td (.T)Tj 0 Tc 1.416 0 Td [(he )-53(\336rst )-53(edition )-53(of )-53(this )-53(book, )-53(along )-53(with )-53(his )-53(series )-53(of)]TJ -15.907 -1.2 Td [(books )-142(about )-142(networking, )-142(ar)]TJ 0.3916 Tc 12.602 0 Td (er)Tj 0 Tc 1.266 0 Td [(ightfully )-142(r)18(egar)18(ded )-142(as )-142(r)18(emarkably )-142(well-crafted )-142(works )-142(of)]TJ -13.867 -1.2 Td [(exposition, and became hugely popular)74(.)]TJ 1.8 -1.2 Td (However)Tj 0.3193 Tc 4.056 0 Td (,t)Tj 0 Tc 0.895 0 Td [(he )-69(\336rst )-69(edition )-69(of )-69(this )-69(book )-69(was )-69(published )-69(befor)]TJ 0.3194 Tc 21.676 0 Td (eL)Tj 0 Tc 1.409 0 Td [(inux )-69(and )-69(the )-69(several)]TJ -29.837 -1.2 Td [(open-sour)18(ce )-201(r)18(enditions )-201(of )-201(the )-201(Unix )-201(interface )-201(that )-201(stemmed )-201(fr)18(om )-201(the )-201(Berkeley )-201(CSRG)]TJ 0 -1.2 Td [(became )-65(widespr)18(ead, )-65(and )-65(also )-65(at )-65(a )-65(time )-65(when )-65(many )-65(people\325s )-65(networking )-65(consisted )-65(of )-65(a)]TJ T* [(serial modem.)-500(Steve Rago has car)17(efully updated this book to account for the technology)]TJ T* [(changes, )-219(as )-219(well )-219(as )-219(developments )-219(in )-219(various )-219(ISO )-219(and )-219(IEEE )-219(standar)16(ds )-219(since )-219(its )-219(\336rst)]TJ T* [(publication. )-250(Thus)-250(his examples ar)]TJ 0.25 Tc 15.097 0 Td (ef)Tj -0.018 Tc 1.062 0 Td (re)Tj 0 Tc 0.856 0 Td [(sh, and fr)18(eshly tested.)]TJ -15.215 -1.2 Td (It\325s a most worthy second edition of a classic.)Tj /T1_2 1 Tf -1.8 -3.6 Td (Murray Hill, New Jersey)Tj /T1_1 1 Tf 32.537 0 Td (Dennis Ritchie)Tj /T1_2 1 Tf -32.537 -1.2 Td [(Mar)18(ch 2005)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47442 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (948)Tj /T1_1 1 Tf 3.5 0 Td (Bibliography)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.074 Tc 8.9995 0 0 8.9995 129.5922 669.9598 Tm (AT)Tj 0 Tc 1.317 0 Td (&T)Tj 0.5 Tc 1.317 0 Td (.1)Tj 0 Tc 1.25 0 Td (989.)Tj /T1_2 1 Tf 2.25 0 Td (System V Interface De\336nition, Third Edition)Tj /T1_1 1 Tf 0.5 Tc (.A)Tj 0 Tc 19.631 0 Td [(ddison-W)92(esley, Reading, MA.)]TJ 7.9995 0 0 7.9995 179.9894 656.6606 Tm [(This )-24(four)18(-volume )-24(set )-24(speci\336es )-24(the )-24(sour)18(ce )-24(code )-24(interface )-24(and )-24(r)5(untime )-24(behavior )-24(of )-24(System )-24(V)]TJ 0.5245 Tc 40.001 0 Td (.T)Tj 0 Tc 1.387 0 Td (he)Tj -41.389 -1.25 Td (thir)Tj 0.316 Tc 1.576 0 Td (de)Tj 0 Tc 1.406 0 Td [(dition )-66(corr)18(esponds )-66(to )-66(SVR4.)]TJ 0.3159 Tc 13.127 0 Td (A\336)Tj 0 Tc 1.699 0 Td [(fth )-66(volume, )-66(containing )-66(updated )-66(versions )-66(of )-66(commands)]TJ -17.808 -1.25 Td [(and functions fr)18(om volumes 1)]TJ 13.337 0.09 Td (\320)Tj 0.583 -0.09 Td [(4, was published in 1991.)-500(Curr)18(ently out of print.)]TJ -0.074 Tc 8.9995 0 0 8.9995 129.5922 619.0629 Tm (AT)Tj 0 Tc 1.317 0 Td (&T)Tj 0.7318 Tc 1.317 0 Td (.1)Tj 0 Tc 1.482 0 Td (990a.)Tj /T1_2 1 Tf 2.982 0 Td [(UNIX )-232(Resear)18(ch )-232(System )-232(Pr)19(ogrammer )213(\325)]TJ 0.4819 Tc 15.91 0 Td (sM)Tj 0 Tc 1.815 0 Td [(anual, )-232(T)111(enth )-232(Edition, )-232(V)74(olume )-232(I)]TJ /T1_1 1 Tf 0.7319 Tc 13.41 0 Td (.S)Tj 0 Tc 1.507 0 Td (aunders)Tj -36.539 -1.222 Td [(College Publishing, Fort W)92(orth, TX.)]TJ 7.9995 0 0 7.9995 179.9884 594.7643 Tm [(The )-3(version )-3(of )-3(the)]TJ /T1_2 1 Tf 8.236 0 Td [(UNIX )-3(Pr)18(ogrammer )213(\325)]TJ 0.2534 Tc 8.217 0 Td (sM)Tj 0 Tc 1.586 0 Td (anual)Tj /T1_1 1 Tf 2.531 0 Td [(for )-3(the )-3(10th )-3(Edition )-3(of )-3(the )-3(Resear)18(ch )-3(UNIX )-3(System)]TJ -20.571 -1.21 Td (\()Tj 0.333 -0.04 Td (V10)Tj 1.722 0.04 Td (\))Tj 0.5 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.363 0 Td (his volume contains the traditional UNIX System manual pages \(Sections \ 1)Tj 33.163 0.09 Td (\320)Tj 0.583 -0.09 Td (9\).)Tj -0.074 Tc 8.9995 0 0 8.9995 129.5921 567.166 Tm (AT)Tj 0 Tc 1.317 0 Td (&T)Tj 0.9596 Tc 1.317 0 Td (.1)Tj 0 Tc 1.71 0 Td (990b.)Tj /T1_2 1 Tf 3.263 0 Td [(UNIX )-460(Resear)18(ch )-460(System )-460(Papers, )-460(T)111(enth )-460(Edition, )-460(V)74(olume )-460(II)]TJ /T1_1 1 Tf 0.9597 Tc 26.338 0 Td (.S)Tj 0 Tc 1.735 0 Td [(aunders )-460(College)]TJ -32.479 -1.222 Td [(Publishing, Fort W)92(orth, TX.)]TJ -0.111 Tc 7.9995 0 0 7.9995 179.9892 542.8674 Tm (Vo)Tj 0 Tc 1.157 0 Td [(lume )-3(II )-3(for )-3(the )-3(10th )-3(Edition )-3(of )-3(the )-3(Resear)18(ch )-3(UNIX )-3(System)]TJ 25.571 0.04 Td (\()Tj 0.333 -0.04 Td (V10)Tj 1.722 0.04 Td (\))Tj 0.586 -0.04 Td [(contains )-3(40 )-3(papers )-3(describing)]TJ -29.369 -1.25 Td (various aspects of the system.)Tj -0.074 Tc 8.9995 0 0 8.9995 129.5923 515.2691 Tm (AT)Tj 0 Tc 1.317 0 Td (&T)Tj 0.9646 Tc 1.317 0 Td (.1)Tj 0 Tc 1.715 0 Td (990c.)Tj /T1_2 1 Tf 3.159 0 Td [(UNIX )-465(System )-465(V )-465(Release )-465(4 )-465(BSD/XENIX )-465(Compatibility )-465(Guide)]TJ /T1_1 1 Tf 0.9647 Tc 28.151 0 Td (.P)Tj -0.018 Tc 1.819 0 Td (re)Tj 0 Tc 0.856 0 Td [(ntice )-465(Hall,)]TJ -35.133 -1.222 Td [(Englewood Clif)18(fs, NJ.)]TJ 7.9995 0 0 7.9995 179.9893 490.9705 Tm [(Contains manual pages describing the compatibility library)111(.)]TJ -0.074 Tc 8.9995 0 0 8.9995 129.5923 473.3716 Tm (AT)Tj 0 Tc 1.317 0 Td (&T)Tj 0.9787 Tc 1.317 0 Td (.1)Tj 0 Tc 1.729 0 Td (990d.)Tj /T1_2 1 Tf 3.34 0 Td [(UNIX )-479(System )-479(V )-479(Release )-479(4 )-479(Pr)20(ogrammer )213(\325)]TJ 0.7287 Tc 18.719 0 Td (sG)Tj 0 Tc 1.84 0 Td [(uide: )-479(STREAMS)]TJ /T1_1 1 Tf 0.9787 Tc (.P)Tj -0.018 Tc 9.201 0 Td (re)Tj 0 Tc 0.856 0 Td [(ntice )-479(Hall,)]TJ -35.119 -1.222 Td [(Englewood Clif)18(fs, NJ.)]TJ 7.9995 0 0 7.9995 179.9894 449.0731 Tm (Describes the STREAMS system in SVR4.)Tj -0.074 Tc 8.9995 0 0 8.9995 129.5924 431.4741 Tm (AT)Tj 0 Tc 1.317 0 Td (&T)Tj 0.533 Tc 1.317 0 Td (.1)Tj 0 Tc 1.283 0 Td (990e.)Tj /T1_2 1 Tf 2.762 0 Td [(UNIX )-33(System )-33(V )-33(Release )-33(4 )-33(Pr)18(ogrammer )213(\325)]TJ 0.283 Tc 16.491 0 Td (sR)Tj 0 Tc 1.339 0 Td [(efer)18(ence )-33(Manual)]TJ /T1_1 1 Tf 0.5331 Tc (.P)Tj -0.018 Tc 8.06 0 Td (re)Tj 0 Tc 0.856 0 Td [(ntice )-33(Hall, )-33(Englewood)]TJ -30.225 -1.222 Td [(Clif)18(fs, NJ.)]TJ 7.9995 0 0 7.9995 179.9896 407.1756 Tm [(This )-161(is )-161(the )-161(pr)17(ogrammer )176(\325s)]TJ -0.018 Tc 12.048 0 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(ence )-161(manual )-161(for )-161(the )-161(SVR4 )-161(implementation )-161(for )-161(the )-161(Intel )-161(80386)]TJ -12.904 -1.25 Td [(pr)18(ocessor)]TJ 0.5764 Tc 4.162 0 Td (.I)Tj 0.3264 Tc 1.163 0 Td (tc)Tj 0 Tc 1.096 0 Td [(ontains )-76(Sections )-76(1 )-76(\(commands\), )-76(2 )-76(\(system )-76(calls\), )-76(3 )-76(\(subr)18(outines\), )-76(4 )-76(\(\336le )-76(formats\),)]TJ -6.422 -1.25 Td (and 5 \(miscellaneous facilities\).)Tj -0.074 Tc 8.9995 0 0 8.9995 129.5927 369.5778 Tm (AT)Tj 0 Tc 1.317 0 Td (&T)Tj 0.6872 Tc 1.317 0 Td (.1)Tj 0 Tc 1.437 0 Td (991.)Tj /T1_2 1 Tf 2.437 0 Td [(UNIX )-187(System )-187(V )-187(Release )-187(4 )-187(System )-187(Administrator)]TJ -0.055 Tc 21.161 0 Td [(\325s )-297(R)]TJ 0 Tc 1.716 0 Td [(efer)18(ence )-187(Manual)]TJ /T1_1 1 Tf 0.6871 Tc (.P)Tj -0.018 Tc 8.368 0 Td (re)Tj 0 Tc 0.856 0 Td [(ntice )-187(Hall,)]TJ -35.41 -1.222 Td [(Englewood Clif)18(fs, NJ.)]TJ 7.9995 0 0 7.9995 179.9894 345.2793 Tm [(This )-81(is )-81(the )-81(system )-81(administrator)-74(\325s )-81(r)19(efer)18(ence )-81(manual )-81(for )-81(the )-81(SVR4 )-81(implementation )-81(for )-81(the )-81(Intel)]TJ 0 -1.25 Td [(80386 )-42(pr)18(ocessor)]TJ 0.542 Tc 6.954 0 Td (.I)Tj 0.292 Tc 1.129 0 Td (tc)Tj 0 Tc 1.062 0 Td [(ontains )-42(Sections )-42(1 )-42(\(commands\), )-42(4 )-42(\(\336le )-42(formats\), )-42(5 )-42(\(miscellaneous )-42(facilities\),)]TJ -9.145 -1.25 Td (and 7 \(special \336les\).)Tj 8.9995 0 0 8.9995 129.5925 307.6815 Tm [(Bach, M. J.)-500(1986.)]TJ /T1_2 1 Tf 7.916 0 Td (The Design of the UNIX Operating System)Tj /T1_1 1 Tf 0.5 Tc (.P)Tj -0.018 Tc 18.911 0 Td (re)Tj 0 Tc 0.856 0 Td [(ntice Hall, Englewood Clif)18(fs, NJ.)]TJ 0.541 Tc 7.9995 0 0 7.9995 179.9894 294.3823 Tm (Ab)Tj 0 Tc 1.872 0 Td [(ook )-291(on )-291(the )-291(details )-291(of )-291(the )-291(design )-291(and )-291(implementation )-291(of )-291(the )-291(UNIX )-291(operating )-291(system.)]TJ -1.872 -1.25 Td [(Although )-42(actual )-42(UNIX )-42(System )-42(sour)19(ce )-42(code )-42(is )-42(not )-42(pr)18(ovided )-42(in )-42(this )-42(text )-42(\(since )-42(it )-42(was )-42(pr)22(oprietary)]TJ 0 -1.25 TD [(to )-51(A)74(T&T )-52(at )-52(the )-52(time\), )-52(many )-52(of )-52(the )-52(algorithms )-52(and )-52(data )-52(str)12(uctur)18(es )-52(used )-52(by )-52(the )-52(UNIX )-52(kernel )-52(ar)20(e)]TJ -0 -1.25 Td [(pr)18(esented and discussed.)-500(This book describes SVR2.)]TJ 8.9995 0 0 8.9995 129.5921 246.7852 Tm [(Bolsky)111(,)-446(M.)-446(I., )-196(and )-196(Korn, )-196(D. )-196(G.)-695(1995.)]TJ /T1_2 1 Tf 17.702 0 Td [(The )-196(New )-196(KornShell )-196(Command )-196(and )-196(Pr)18(ogramming )-196(Language,)]TJ -14.502 -1.222 Td (Second Edition)Tj /T1_1 1 Tf 0.5 Tc (.P)Tj -0.018 Tc 7.456 0 Td (re)Tj 0 Tc 0.856 0 Td [(ntice Hall, Englewood Clif)18(fs, NJ.)]TJ 0.5515 Tc 7.9995 0 0 7.9995 179.9893 222.4866 Tm (Ab)Tj 0 Tc 1.883 0 Td [(ook )-301(describing )-301(how )-301(to )-301(use )-301(the )-301(Korn )-301(shell, )-301(both )-301(as )-301(a )-301(command )-301(interpr)12(eter )-302(and )-302(as )-302(a)]TJ -1.883 -1.25 Td [(pr)18(ogramming language.)]TJ 8.9995 0 0 8.9995 129.5925 194.8883 Tm [(Chen, )-132(D., )-132(Barkley)110(,)-382(R.)-382(E)-1(., )-132(and )-132(Lee, )-132(T)]TJ 0.3824 Tc 16.16 0 Td (.P)Tj 0.6324 Tc 1.107 0 Td (.1)Tj 0 Tc 1.382 0 Td [(990. )-382(\324)37(\324Insuring )-132(Impr)18(oved )-132(VM )-132(Performance: )-132(Some )-132(No-)]TJ -15.45 -1.222 Td [(Fault )-99(Policies,\325)37(\325)]TJ /T1_2 1 Tf 7.112 0 Td [(Pr)18(oceedings )-99(of )-99(the )-99(1990 )-99(W)20(inter )-99(USENIX )-99(Confer)20(ence)]TJ /T1_1 1 Tf 0.3487 Tc (,p)Tj 0 Tc 23.163 0 Td [(p. 1)55(1)]TJ 2.129 0.09 Td (\320)Tj 0.583 -0.09 Td [(22, )-99(W)92(ashington,)]TJ -32.988 -1.222 Td (DC.)Tj 7.9995 0 0 7.9995 179.9898 159.5904 Tm [(Describes )-347(changes )-347(made )-347(to )-347(the )-347(virtual )-347(memory )-347(implementation )-347(of )-347(SVR4 )-347(to )-347(impr)18(ove )-347(its)]TJ T* (performance, especially for)Tj /TT0 1 Tf 12.267 0 Td (fork)Tj /T1_1 1 Tf 2.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (exec)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47443 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.4)]TJ 35.831 0 Td [(I/O )-250(Multiplexing)]TJ /T1_1 1 Tf 10.002 0 Td (507)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.055 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm (Wi)Tj 0 Tc 1.236 0 Td (th)Tj /TT0 1 Tf 1.412 0 Td (poll)Tj /T1_0 1 Tf 0.5039 Tc (,i)Tj 0 Tc 3.445 0 Td [(nstead )-254(of )-254(building )-254(a )-254(set )-254(of )-254(descriptors )-254(for )-254(each )-254(condition )-254(\(r)19(eadability)111(,)]TJ -6.093 -1.2 Td (writability)Tj 0.469 Tc 4.543 0 Td (,a)Tj 0 Tc 1.219 0 Td [(nd )-219(exception )-219(condition\) )-219(as )-219(we )-219(did )-219(with)]TJ /TT0 1 Tf 19.074 0 Td (select)Tj /T1_0 1 Tf [(,)-469(we)-469(build )-219(an )-219(array )-219(of)]TJ /TT0 1 Tf -24.836 -1.2 Td (pollfd)Tj /T1_0 1 Tf 4.028 0 Td [(str)8(uctur)18(es, )-178(with )-178(each )-178(array )-178(element )-178(specifying )-178(a )-178(descriptor )-178(number )-178(and )-178(the)]TJ -4.028 -1.2 Td (conditions that we\325r)Tj 0.25 Tc 8.845 0 Td (ei)Tj 0 Tc 1.02 0 Td [(nter)18(ested in for that descriptor:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.591 617.3329 Tm (struct pollfd {)Tj 1.2 -1.189 Td [(int )-1800(fd;)-4200(/* file descriptor to check, or <0 to ignore */)]TJ 0 -1.189 TD [(short )-600(events;)-1800(/* events of interest on fd */)]TJ T* [(short )-600(revents; )-600(/*)-600(events that occurred on fd */)]TJ -1.2 -1.189 Td (};)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5921 557.6063 Tm (The number of elements in the)Tj /T1_2 1 Tf 13.751 0 Td (fdarray)Tj /T1_0 1 Tf 3.194 0 Td (array is speci\336ed by)Tj /T1_2 1 Tf 9.104 0 Td (nfds)Tj /T1_0 1 Tf (.)Tj 7.9995 0 0 7.9995 183.5886 538.6075 Tm (Historically)Tj 0.5359 Tc 5.076 0 Td (,t)Tj 0 Tc 1.112 0 Td (her)Tj 0.5359 Tc 1.438 0 Td (eh)Tj 0 Tc 1.597 0 Td [(ave )-286(been )-286(dif)18(fer)18(ences )-286(in )-286(how )-286(the)]TJ /T1_2 1 Tf 15.888 0 Td (nfds)Tj /T1_0 1 Tf 2.259 0 Td [(parameter )-286(was )-286(declar)19(ed. )-536(SVR3)]TJ -27.37 -1.25 Td [(speci\336ed )-73(the )-73(number )-73(of )-73(elements )-73(in )-73(the )-73(array )-73(as )-73(an)]TJ /TT0 1 Tf 23.484 0 Td [(unsigned )277(long)]TJ /T1_0 1 Tf 0.3234 Tc (,w)Tj 0 Tc 8.931 0 Td [(hich )-73(seems )-73(excessive.)]TJ -32.414 -1.25 Td [(In )-9(the )-9(SVR4 )-9(manual )-9([A)74(T&T )-9(1990d], )-9(the )-9(pr)18(ototype )-9(for)]TJ /TT0 1 Tf 23.669 0 Td (poll)Tj /T1_0 1 Tf 2.66 0 Td [(showed )-9(the )-9(data )-9(type )-9(of )-9(the )-9(second)]TJ -26.329 -1.25 Td [(ar)18(gument )-5(as)]TJ /TT0 1 Tf 5.739 0 Td (size_t)Tj /T1_0 1 Tf 0.5046 Tc (.\()Tj 0 Tc 4.688 0 Td [(Recall )-5(the )-5(primitive )-5(system )-5(data )-5(types )-5(fr)18(om )-5(Figur)]TJ 0.2546 Tc 21.901 0 Td (e2)Tj 0 Tc 1.234 0 Td [(.21.\) )-255(But)-254(the )-5(actual)]TJ -33.562 -1.25 Td [(pr)18(ototype )-73(in )-73(the)]TJ /TT0 1 Tf 7.588 0 Td ()Tj /T1_0 1 Tf 5.123 0 Td [(header )-73(still )-73(showed )-73(the )-73(second )-73(ar)18(gument )-73(as )-73(an)]TJ /TT0 1 Tf 21.516 0 Td [(unsigned )277(long)]TJ /T1_0 1 Tf (.)Tj -34.227 -1.25 Td [(The )-110(Single )-110(UNIX )-110(Speci\336cation )-110(de\336nes )-110(the )-110(new )-110(type)]TJ /TT0 1 Tf 23.948 0 Td (nfds_t)Tj /T1_0 1 Tf 3.96 0 Td [(to )-110(allow )-110(the )-110(implementation )-110(to)]TJ -27.908 -1.25 Td [(select )-5(the )-5(appr)18(opriate )-5(type )-5(and )-5(hide )-5(the )-5(details )-5(fr)18(om )-5(applications.)-505(Note )-5(that )-5(this )-5(type )-5(has )-5(to )-5(be)]TJ 0 -1.25 TD [(lar)18(ge )-52(enough )-52(to )-52(hold )-52(an )-52(integer)]TJ 0.3018 Tc 14.078 0 Td (,s)Tj 0 Tc 0.976 0 Td [(ince )-52(the )-52(r)19(eturn )-52(value )-52(r)18(epr)18(esents )-52(the )-52(number )-52(of )-52(entries )-52(in )-52(the)]TJ -15.054 -1.25 Td (array with satis\336ed events.)Tj 0 -2.25 TD [(The )-47(SVID )-47(corr)18(esponding )-47(to )-47(SVR4 )-47([A)74(T&T )-47(1989] )-47(showed )-47(the )-47(\336rst )-47(ar)18(gument )-47(to)]TJ /TT0 1 Tf 34.482 0 Td (poll)Tj /T1_0 1 Tf 2.697 0 Td (as)Tj /TT0 1 Tf 1.221 0 Td (struct)Tj -38.4 -1.25 Td (pollfd)Tj /T1_2 1 Tf 4.314 0 Td (fdarray)Tj /TT0 1 Tf ([])Tj /T1_0 1 Tf 0.3641 Tc (,w)Tj 0 Tc 5.592 0 Td [(her)18(eas )-114(the )-114(SVR4 )-114(manual )-114(page )-114([A)73(T&T )-114(1990d] )-114(showed )-114(this )-114(ar)18(gument )-114(as)]TJ /TT0 1 Tf -9.906 -1.25 Td [(struct )-97(pollfd )-97(*)]TJ /T1_2 1 Tf 9.195 0 Td (fdarray)Tj /T1_0 1 Tf 0.5974 Tc (.I)Tj 0.3474 Tc 4.128 0 Td (nt)Tj 0 Tc 1.255 0 Td [(he )-97(C )-97(language, )-97(both )-97(declarations )-97(ar)]TJ 0.3474 Tc 16.097 0 Td (ee)Tj 0 Tc 1.305 0 Td [(quivalent. )-347(W)]TJ 0.3474 Tc 5.952 0 Td (eu)Tj 0 Tc 1.429 0 Td [(se )-97(the)]TJ -39.363 -1.25 Td [(\336rst )-47(declaration )-47(to )-47(r)18(eiterate )-47(that)]TJ /TT0 1 Tf 14.456 0 Td (fdarray)Tj /T1_0 1 Tf 4.497 0 Td [(points )-47(to )-47(an )-47(array )-47(of )-47(str)10(uctur)18(es )-47(and )-47(not )-47(a )-47(pointer )-47(to)]TJ 0.25 Tc -18.953 -1.25 Td (as)Tj 0 Tc 1.174 0 Td [(ingle str)8(uctur)18(e.)]TJ -0.092 Tc 9.9994 0 0 9.9994 147.5921 379.617 Tm [(To )-187(t)]TJ 0 Tc 1.646 0 Td [(ell )-3(the )-3(kernel )-3(which )-3(events )-3(we\325r)]TJ 0.2525 Tc 14.049 0 Td (ei)Tj 0 Tc 1.023 0 Td [(nter)18(ested )-2(in )-2(for )-2(each )-2(descriptor)72(,)-252(we)-252(h)-1(ave )-2(to )-2(set)]TJ -18.517 -1.2 Td (the)Tj /TT0 1 Tf 1.67 0 Td (events)Tj /T1_0 1 Tf 3.883 0 Td [(member )-33(of )-33(each )-33(array )-33(element )-33(to )-33(one )-33(or )-33(mor)20(e)-283(of)-283(the )-33(values )-33(in )-33(Figur)]TJ 0.2828 Tc 30.186 0 Td (e1)Tj 0 Tc 1.262 0 Td (4.17.)Tj -37 -1.2 Td [(On )-88(r)18(eturn, )-88(the)]TJ /TT0 1 Tf 6.781 0 Td (revents)Tj /T1_0 1 Tf 4.538 0 Td [(member )-88(is )-88(set )-88(by )-88(the )-88(kernel, )-88(ther)18(eby )-88(specifying )-88(which )-88(events)]TJ -11.319 -1.2 Td [(have )-362(occurr)18(ed )-362(for )-362(each )-362(descriptor)]TJ 0.8621 Tc 16.19 0 Td (.\()Tj 0 Tc 1.445 0 Td [(Note )-362(that)]TJ /TT0 1 Tf 5.14 0 Td (poll)Tj /T1_0 1 Tf 3.012 0 Td [(doesn\325t )-362(change )-362(the)]TJ /TT0 1 Tf 9.612 0 Td (events)Tj /T1_0 1 Tf -35.4 -1.2 Td (member)Tj 0.618 Tc 3.598 0 Td (.T)Tj 0 Tc 1.481 0 Td [(his )-118(behavior )-118(dif)18(fers )-118(fr)18(om )-118(that )-118(of)]TJ /TT0 1 Tf 15.016 0 Td (select)Tj /T1_0 1 Tf 0.368 Tc (,w)Tj 0 Tc 5.052 0 Td [(hich )-118(modi\336es )-118(its )-118(ar)18(guments )-118(to)]TJ -25.147 -1.2 Td [(indicate what is r)18(eady)111(.\))]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1307.25 3008.25 cm 0 0 m 3878 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 192.5729 292.8049 Tm [(Input to)-1236(Result fr)18(om)]TJ /TT0 1 Tf -0.237 -1.25 Td (events)Tj /T1_0 1 Tf (?)Tj /TT0 1 Tf 5.312 0 Td (revents)Tj /T1_0 1 Tf (?)Tj -10.659 0.625 Td (Name)Tj 28.619 0 Td (Description)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1307.25 2788.25 cm 0 0 m 3878 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1307.25 2768.25 cm 0 0 m 3878 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 134.6798 268.7916 Tm (POLLIN)Tj /T1_0 1 Tf 5.006 Tc 8.719 0 Td (\245\245)Tj 0 Tc 9.505 0 Td [(Data other than high priority data can be r)18(ead without blocking)]TJ 1.35 -1.25 Td (\(equivalent to)Tj /TT0 1 Tf 6.381 0 Td (POLLRDNORM|POLLRDBAND)Tj /T1_0 1 Tf (\).)Tj /TT0 1 Tf -25.955 -1.25 Td (POLLRDNORM)Tj /T1_0 1 Tf 5.006 Tc 8.719 0 Td (\245\245)Tj 0 Tc 9.505 0 Td [(Normal data can be r)18(ead without blocking.)]TJ /TT0 1 Tf -18.224 -1.25 Td (POLLRDBAND)Tj /T1_0 1 Tf 5.006 Tc 8.719 0 Td (\245\245)Tj 0 Tc 9.505 0 Td [(Priority data can be r)18(ead without blocking.)]TJ /TT0 1 Tf -18.224 -1.25 Td (POLLPRI)Tj /T1_0 1 Tf 5.006 Tc 8.719 0 Td (\245\245)Tj 0 Tc 9.505 0 Td [(High-priority data can be r)18(ead without blocking.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1307.25 2248.25 cm 0 0 m 3878 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 134.6717 216.788 Tm (POLLOUT)Tj /T1_0 1 Tf 5.006 Tc 8.719 0 Td (\245\245)Tj 0 Tc 9.505 0 Td (Normal data can be written without blocking.)Tj /TT0 1 Tf -18.224 -1.25 Td (POLLWRNORM)Tj /T1_0 1 Tf 5.006 Tc 8.719 0 Td (\245\245)Tj 0 Tc 9.505 0 Td (Same as)Tj /TT0 1 Tf 3.811 0 Td (POLLOUT)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf -22.035 -1.25 Td (POLLWRBAND)Tj /T1_0 1 Tf 5.006 Tc 8.719 0 Td (\245\245)Tj 0 Tc 9.505 0 Td (Priority data can be written without blocking.)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1307.25 1928.25 cm 0 0 m 3878 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 134.6636 184.7846 Tm (POLLERR)Tj /T1_0 1 Tf 14.331 0 Td [(\245)-3287(An err)18(or has occurr)18(ed.)]TJ /TT0 1 Tf -14.331 -1.25 Td (POLLHUP)Tj /T1_0 1 Tf 14.331 0 Td (\245)Tj 0.25 Tc 3.893 0 Td (Ah)Tj 0 Tc 1.61 0 Td [(angup has occurr)18(ed.)]TJ /TT0 1 Tf -19.834 -1.25 Td (POLLNVAL)Tj /T1_0 1 Tf 14.331 0 Td [(\245)-3287(The descriptor does not r)18(efer)18(ence an open \336le.)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1307.25 1608.25 cm 0 0 m 3878 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2765.25 1608.25 cm 0 0 m 0 1400 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2270.25 1608.25 cm 0 0 m 0 1400 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1867.25 1608.25 cm 0 0 m 0 1400 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5185.25 1608.25 cm 0 0 m 0 1400 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1307.25 1608.25 cm 0 0 m 0 1400 l S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 226.0226 142.7886 Tm (Figure 14.17)Tj /T1_0 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (events)Tj /T1_0 1 Tf 3.85 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (revents)Tj /T1_0 1 Tf 4.45 0 Td (\337ags for)Tj /TT0 1 Tf 3.862 0 Td (poll)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47444 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(7.8)]TJ 34.933 0 Td [(Memory )-250(Allocation)]TJ /T1_1 1 Tf 10.9 0 Td (209)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(objects. )-417(These)-418(objects )-167(can )-167(be )-167(unr)18(elated )-167(to )-167(the )-167(code )-167(corr)8(upting )-167(them, )-167(making )-167(it )-167(even)]TJ 0 -1.2 TD (mor)Tj 0.25 Tc 1.806 0 Td (ed)Tj 0 Tc 1.34 0 Td [(if)18(\336cult to \336nd the sour)18(ce of the corr)8(uption.)]TJ -1.346 -1.2 Td [(Other )-20(possible )-20(err)18(ors )-20(that )-20(can )-20(be )-20(fatal )-20(ar)]TJ 0.2696 Tc 17.799 0 Td (ef)Tj -0.018 Tc 1.082 0 Td (re)Tj 0 Tc 0.856 0 Td [(eing )-20(a )-20(block )-20(that )-20(was )-20(alr)18(eady )-20(fr)18(eed )-20(and)]TJ -21.537 -1.2 Td (calling)Tj /TT0 1 Tf 3.512 0 Td (free)Tj /T1_0 1 Tf 2.957 0 Td [(with )-307(a )-307(pointer )-307(that )-307(was )-307(not )-307(obtained )-307(fr)15(om )-307(one )-307(of )-307(the )-307(thr)17(ee)]TJ /TT0 1 Tf 29.53 0 Td (alloc)Tj /T1_0 1 Tf -36 -1.2 Td [(functions. )-409(If)]TJ 0.4093 Tc 6.12 0 Td (ap)Tj -0.018 Tc 1.51 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-159(calls)]TJ /TT0 1 Tf 4.54 0 Td (malloc)Tj /T1_0 1 Tf 4.009 0 Td [(but )-159(for)18(gets )-159(to )-159(call)]TJ /TT0 1 Tf 8.559 0 Td (free)Tj /T1_0 1 Tf 0.4094 Tc (,i)Tj 0 Tc 3.35 0 Td [(ts )-159(memory )-159(usage )-159(will)]TJ -29.011 -1.2 Td [(continually )-171(incr)18(ease; )-171(this )-171(is )-171(called )-171(leakage.)-671(If )-171(we )-171(do )-171(not )-171(call)]TJ /TT0 1 Tf 28.402 0 Td (free)Tj /T1_0 1 Tf 2.821 0 Td [(to )-171(r)18(eturn )-171(unused)]TJ -31.223 -1.2 Td [(space, )-1(the )-1(size )-1(of )-1(a )-1(pr)18(ocess\325s )-1(addr)18(ess )-1(space )-1(will )-1(slowly )-1(incr)19(ease )-1(until )-1(no )-1(fr)18(ee )-1(space )-1(is )-1(left.)]TJ T* [(During this time, performance can degrade fr)18(om excess paging over)18(head.)]TJ 1.8 -1.2 Td [(Because )-14(memory )-14(allocation )-14(err)18(ors )-14(ar)]TJ 0.2645 Tc 16.15 0 Td (ed)Tj 0 Tc 1.354 0 Td [(if)18(\336cult )-14(to )-14(track )-14(down, )-14(some )-14(systems )-14(pr)16(ovide)]TJ -19.304 -1.2 Td [(versions )-26(of )-26(these )-26(functions )-26(that )-26(do )-26(additional )-26(err)21(or )-26(checking )-26(every )-26(time )-26(one )-26(of )-26(the )-26(thr)20(ee)]TJ /TT0 1 Tf T* (alloc)Tj /T1_0 1 Tf 3.343 0 Td [(functions )-93(or)]TJ /TT0 1 Tf 5.758 0 Td (free)Tj /T1_0 1 Tf 2.743 0 Td [(is )-93(called.)-593(These )-93(versions )-93(of )-93(the )-93(functions )-93(ar)]TJ 0.3431 Tc 19.79 0 Td (eo)Tj 0 Tc 1.368 0 Td [(ften )-93(speci\336ed)]TJ -33.003 -1.2 Td [(by )-244(including )-244(a )-244(special )-244(library )-244(for )-244(the )-244(link )-244(editor)]TJ 0.7444 Tc 22.781 0 Td (.T)Tj 0 Tc 1.607 0 Td (her)Tj 0.4944 Tc 1.438 0 Td (ea)Tj -0.018 Tc 1.473 0 Td [(re )-280(a)]TJ 0 Tc 1.85 0 Td [(lso )-244(publicly )-244(available)]TJ -29.15 -1.2 Td [(sour)18(ces that you can compile with special \337ags to enable additional r)8(untime checking.)]TJ 7.9995 0 0 7.9995 183.5885 500.17 Tm [(Fr)18(eeBSD, )-407(Mac )-407(OS )-407(X, )-407(and )-407(Linux )-407(support )-407(additional )-407(debugging )-407(thr)18(ough )-407(the )-407(setting )-407(of)]TJ 0 -1.25 TD [(envir)18(onment )-55(variables.)-555(In )-55(addition, )-55(options )-55(can )-55(be )-55(passed )-55(to )-55(the )-55(Fr)18(eeBSD )-55(library )-55(thr)14(ough )-55(the)]TJ T* (symbolic link)Tj /TT0 1 Tf 6.208 0 Td (/etc/malloc.conf)Tj /T1_0 1 Tf (.)Tj /TT1 1 Tf 9.9994 0 0 9.9994 93.594 453.1728 Tm (Alternate Memor)Tj 0.278 Tc 7.9 0 Td (yA)Tj 0 Tc 1.556 0 Td [(llocator)15(s)]TJ /T1_0 1 Tf -5.856 -2.04 Td [(Many )-40(r)18(eplacements )-40(for)]TJ /TT0 1 Tf 10.594 0 Td (malloc)Tj /T1_0 1 Tf 3.89 0 Td (and)Tj /TT0 1 Tf 1.983 0 Td (free)Tj /T1_0 1 Tf 2.69 0 Td (ar)Tj 0.2904 Tc 0.877 0 Td (ea)Tj 0 Tc 1.269 0 Td [(vailable. )-290(Some)-291(systems )-40(alr)18(eady )-40(include)]TJ -21.305 -1.2 Td [(libraries )-404(pr)18(oviding )-404(alternative )-404(memory )-404(allocator )-404(implementations.)-904(Other )-404(systems)]TJ 0 -1.2 TD [(pr)18(ovide )-99(only )-99(the )-99(standar)]TJ 0.3486 Tc 11.198 0 Td (da)Tj 0 Tc 1.46 0 Td (llocator)Tj 0.3486 Tc 3.265 0 Td (,l)Tj 0 Tc 0.89 0 Td [(eaving )-99(it )-99(up )-99(to )-99(softwar)]TJ 0.3486 Tc 10.4 0 Td (ed)Tj 0 Tc 1.439 0 Td [(evelopers )-98(to )-98(download)]TJ -28.651 -1.2 Td [(alternatives, if desir)18(ed. )-250(W)]TJ 0.25 Tc 11.462 0 Td (ed)Tj 0 Tc 1.34 0 Td [(iscuss some of the alternatives her)18(e.)]TJ /TT2 1 Tf -16.402 -2.4 Td (libmalloc)Tj /T1_0 1 Tf 3.6 -1.92 Td (SVR4)Tj 2.415 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-58(systems, )-58(such )-58(as )-58(Solaris, )-58(include )-58(the)]TJ /TT0 1 Tf 19.374 0 Td (libmalloc)Tj /T1_0 1 Tf 5.708 0 Td (library)Tj 0.3078 Tc 2.87 0 Td (,w)Tj 0 Tc 1.392 0 Td [(hich )-58(pr)18(ovides )-58(a)]TJ -32.091 -1.2 Td [(set )-202(of )-202(interfaces )-202(matching )-202(the )-202(ISO )-202(C )-202(memory )-202(allocation )-202(functions.)-698(The)]TJ /TT0 1 Tf 33.6 0 Td (libmalloc)Tj /T1_0 1 Tf -33.6 -1.2 Td [(library )-86(includes)]TJ /TT0 1 Tf 7.379 0 Td (mallopt)Tj /T1_0 1 Tf 0.3363 Tc (,af)Tj 0 Tc 5.956 0 Td [(unction )-86(that )-86(allows )-86(a )-86(pr)18(ocess )-86(to )-86(set )-86(certain )-86(variables )-86(that)]TJ -13.334 -1.2 Td [(contr)18(ol )-258(the )-258(operation )-258(of )-258(the )-258(storage )-258(allocator)]TJ 0.7584 Tc 21.072 0 Td (.A)Tj 0 Tc 2.295 0 Td [(function )-258(called)]TJ /TT0 1 Tf 7.34 0 Td (mallinfo)Tj /T1_0 1 Tf 5.308 0 Td [(is )-258(also)]TJ -36.015 -1.2 Td [(available to pr)18(ovide statistics on the memory allocator)74(.)]TJ /TT2 1 Tf -3.6 -2.4 Td (vmalloc)Tj /T1_0 1 Tf -0.111 Tc 3.6 -1.92 Td (Vo)Tj 0 Tc 1.468 0.04 Td ([)Tj 0.333 -0.04 Td (1996)Tj 2 0.04 Td (])Tj 0.644 -0.04 Td [(describes )-61(a )-61(memory )-61(allocator )-61(that )-61(allows )-61(pr)18(ocesses )-61(to )-61(allocate )-61(memory )-61(using)]TJ -4.445 -1.2 Td [(dif)18(fer)18(ent )-299(techniques )-299(for )-299(dif)18(fer)18(ent )-299(r)18(egions )-299(of )-299(memory)]TJ 0.7989 Tc 24.688 0 Td (.I)Tj 0.5489 Tc 1.386 0 Td (na)Tj 0 Tc 1.631 0 Td [(ddition )-299(to )-299(the )-299(functions)]TJ -27.705 -1.2 Td [(speci\336c )-127(to)]TJ /TT0 1 Tf 4.913 0 Td (vmalloc)Tj /T1_0 1 Tf 0.3767 Tc (,t)Tj 0 Tc 5.153 0 Td [(he )-127(library )-127(pr)19(ovides )-127(emulations )-127(of )-127(the )-127(ISO )-127(C )-127(memory )-127(allocation)]TJ -10.066 -1.2 Td (functions.)Tj /TT2 1 Tf -3.6 -2.4 Td (quick-fit)Tj /T1_0 1 Tf 3.6 -1.92 Td (Historically)Tj 0.3312 Tc 5.076 0 Td (,t)Tj 0 Tc 0.907 0 Td [(he )-81(standar)18(d)]TJ /TT0 1 Tf 5.654 0 Td (malloc)Tj /T1_0 1 Tf 3.931 0 Td [(algorithm )-81(used )-81(either )-81(a )-81(best-\336t )-81(or )-81(a )-81(\336rst-\336t )-81(memory)]TJ -15.569 -1.2 Td [(allocation )-287(strategy)]TJ 0.7875 Tc 8.306 0 Td (.Q)Tj 0 Tc 1.824 0 Td [(uick-\336t )-287(is )-287(faster )-287(than )-287(either)]TJ 0.5375 Tc 12.948 0 Td (,b)Tj 0 Tc 1.341 0 Td [(ut )-287(tends )-287(to )-287(use )-287(mor)]TJ 0.5375 Tc 9.685 0 Td (em)Tj 0 Tc 1.899 0 Td [(emory)111(.)]TJ -0.092 Tc -36.002 -1.2 Td (We)Tj 0 Tc 1.387 0 Td [(instock )-266(and )-266(W)50(ulf)]TJ 8.587 0.04 Td ([)Tj 0.333 -0.04 Td (1988)Tj 2 0.04 Td (])Tj 0.849 -0.04 Td [(describe )-266(the )-266(algorithm, )-266(which )-266(is )-266(based )-266(on )-266(splitting )-266(up)]TJ -13.156 -1.2 Td [(memory )-85(into )-85(buf)18(fers )-85(of )-85(various )-85(sizes )-85(and )-85(maintaining )-85(unused )-85(buf)18(fers )-85(on )-85(dif)18(fer)18(ent )-85(fr)18(ee)]TJ -0 -1.2 Td [(lists, depending on the buf)18(fer sizes.)-500(Most modern allocators ar)]TJ 0.25 Tc 27.737 0 Td (eb)Tj 0 Tc 1.282 0 Td (ased on quick-\336t.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47445 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (496)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 7.9995 0 0 7.9995 183.589 670.9597 Tm [(We )-278(s)]TJ 0 Tc 2.155 0 Td [(aw )-94(in )-94(Figur)]TJ 0.3444 Tc 5.279 0 Td (e1)Tj 0 Tc 1.323 0 Td [(4.2 )-94(that )-94(Linux )-94(3.2.0 )-94(and )-94(Solaris )-94(10 )-94(pr)18(ovide )-94(mandatory )-94(r)14(ecor)]TJ 0.3445 Tc 26.945 0 Td (dl)Tj 0 Tc 1.246 0 Td [(ocking, )-94(but)]TJ -36.949 -1.25 Td [(Fr)18(eeBSD )-87(8.0 )-87(and )-87(Mac )-87(OS )-87(X )-87(10.6.8 )-87(do )-87(not.)-590(Mandatory )-87(r)18(ecor)]TJ 0.3373 Tc 26.782 0 Td (dl)Tj 0 Tc 1.239 0 Td [(ocking )-87(is )-87(not )-87(part )-87(of )-87(the )-87(Single)]TJ -28.021 -1.25 Td [(UNIX )-45(Speci\336cation.)-545(On )-45(Linux, )-45(if )-45(you )-45(want )-45(mandatory )-45(locking, )-45(you )-45(need )-45(to )-45(enable )-45(it )-45(on )-45(a )-45(per)]TJ 0 -1.25 TD (\336le system basis by using the)Tj /TT0 1 Tf 13.111 0 Td (-o mand)Tj /T1_1 1 Tf 4.45 0 Td (option to the)Tj /TT0 1 Tf 5.901 0 Td (mount)Tj /T1_1 1 Tf 3.25 0 Td (command.)Tj 9.9994 0 0 9.9994 147.5913 619.9628 Tm [(Mandatory )-15(locking )-15(is )-15(enabled )-15(for )-15(a )-15(particular )-15(\336le )-15(by )-15(turning )-15(on )-15(the )-15(set-gr)18(oup-ID )-15(bit)]TJ -1.8 -1.2 Td [(and )-113(turning )-113(of)]TJ 0.3634 Tc 6.616 0 Td (ft)Tj 0 Tc 1.022 0 Td [(he )-113(gr)18(oup-execute )-113(bit.)-613(\(Recall )-113(Figur)]TJ 0.3634 Tc 15.916 0 Td (e4)Tj 0 Tc 1.342 0 Td [(.12.\) )-363(Since)-364(the )-113(set-gr)18(oup-ID )-113(bit)]TJ -24.896 -1.2 Td [(makes )-30(no )-30(sense )-30(when )-30(the )-30(gr)18(oup-execute )-30(bit )-30(is )-30(of)18(f, )-30(the )-30(designers )-30(of )-30(SVR3 )-30(chose )-30(this )-30(way)]TJ 0 -1.2 TD [(to )-8(specify )-8(that )-8(the )-8(locking )-8(for )-8(a )-8(\336le )-8(is )-8(to )-8(be )-8(mandatory )-8(locking )-8(and )-8(not )-8(advisory )-8(locking.)]TJ 1.8 -1.2 Td [(What )-115(happens )-115(to )-115(a )-115(pr)16(ocess )-115(that )-115(tries )-115(to)]TJ /TT0 1 Tf 18.288 0 Td (read)Tj /T1_1 1 Tf 2.765 0 Td (or)Tj /TT0 1 Tf 1.306 0 Td (write)Tj /T1_1 1 Tf 0.3653 Tc 3.365 0 Td (a\336)Tj 0 Tc 1.47 0 Td [(le )-115(that )-115(has )-115(mandatory)]TJ -28.995 -1.2 Td [(locking )-141(enabled )-141(and )-141(that )-141(part )-141(of )-141(the )-141(\336le )-141(is )-141(curr)20(ently )-141(locked )-141(by )-141(another )-141(pr)18(ocess? )-391(The)]TJ T* [(answer )-37(depends )-37(on )-37(the )-37(type )-37(of )-37(operation )-37(\()]TJ /TT0 1 Tf 18.967 0 Td (read)Tj /T1_1 1 Tf 2.687 0 Td (or)Tj /TT0 1 Tf 1.228 0 Td (write)Tj /T1_1 1 Tf [(\), )-37(the )-37(type )-37(of )-37(lock )-37(held )-37(by )-37(the)]TJ -22.883 -1.2 Td [(other )-199(pr)18(ocess )-199(\(r)19(ead )-199(lock )-199(or )-199(write )-199(lock\), )-199(and )-199(whether )-199(the )-199(descriptor )-199(for )-199(the)]TJ /TT0 1 Tf 35.21 0 Td (read)Tj /T1_1 1 Tf 2.849 0 Td (or)Tj /TT0 1 Tf -38.059 -1.2 Td (write)Tj /T1_1 1 Tf 3.25 0 Td [(is nonblocking.)-500(Figur)]TJ 0.25 Tc 9.627 0 Td (e1)Tj 0 Tc 1.229 0 Td (4.1)Tj 0.25 Tc 1.195 0 Td (1s)Tj 0 Tc 1.174 0 Td (hows the eight possibilities.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1848.25 5052.25 cm 0 0 m 2796 0 l S Q Q BT /T1_1 1 Tf -0.09 Tc 7.999 0 0 7.999 198.8361 497.1403 Tm (Ty)Tj 0 Tc 1.079 0 Td [(pe of existing)-3707(Blocking descriptor)]TJ 2.4505 Tc 18.196 0 Td (,N)Tj 0 Tc 3.532 0 Td [(onblocking descriptor)74(,)]TJ -9.208 -1.25 Td (tries to)Tj 12.216 0 Td (tries to)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2719.25 4832.25 cm 0 0 m 1925 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 192.8013 486.1125 Tm [(lock on r)18(egion held)]TJ 0.639 -1.375 Td [(by other pr)18(ocess)]TJ /TT0 1 Tf 10.978 0 Td [(read )-2808(write )-2808(read )-2808(write)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1848.25 4712.25 cm 0 0 m 2796 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1848.25 4692.25 cm 0 0 m 2796 0 l S Q Q BT /T1_1 1 Tf -0.018 Tc 7.9981 0 0 7.9981 210.6054 461.0893 Tm (re)Tj 0 Tc 0.856 0 Td (ad lock)Tj 8.977 0 Td [(OK )-3695(blocks )-3695(OK)]TJ /TT0 1 Tf 17.28 0 Td (EAGAIN)Tj /T1_1 1 Tf -27.292 -1.25 Td [(write lock)-4949(blocks )-3044(blocks)]TJ /TT0 1 Tf 21.185 0 Td [(EAGAIN )-1908(EAGAIN)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1848.25 4472.25 cm 0 0 m 2796 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4175.25 4472.25 cm 0 0 m 0 360 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3686.25 4472.25 cm 0 0 m 0 580 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3198.25 4472.25 cm 0 0 m 0 360 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2699.25 4472.25 cm 0 0 m 0 580 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2719.25 4472.25 cm 0 0 m 0 580 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4644.25 4472.25 cm 0 0 m 0 580 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1848.25 4472.25 cm 0 0 m 0 580 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 176.8909 429.0713 Tm [(Figure 14.1)37(1)]TJ /T1_1 1 Tf 6.158 0 Td [(Ef)18(fect of mandatory locking on)]TJ /TT0 1 Tf 13.93 0 Td (read)Tj /T1_1 1 Tf 0.25 Tc (sa)Tj 0 Tc 3.574 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (write)Tj /T1_1 1 Tf [(s)-250(by)-250(other pr)18(ocesses)]TJ 9.997 0 0 9.997 147.5561 402.6792 Tm [(In )-24(addition )-24(to )-24(the)]TJ /TT0 1 Tf 8.033 0 Td (read)Tj /T1_1 1 Tf 2.674 0 Td (and)Tj /TT0 1 Tf 1.967 0 Td (write)Tj /T1_1 1 Tf 3.274 0 Td [(functions )-24(in )-24(Figur)]TJ 0.2743 Tc 7.936 0 Td (e1)Tj 0 Tc 1.253 0 Td [(4.1)55(1, )-24(the)]TJ /TT0 1 Tf 3.881 0 Td (open)Tj /T1_1 1 Tf 2.674 0 Td [(function )-24(can)]TJ -33.493 -1.2 Td [(be )-320(af)18(fected )-320(by )-320(mandatory )-320(r)18(ecor)]TJ 0.5699 Tc 15.03 0 Td (dl)Tj 0 Tc 1.472 0 Td [(ocks )-320(held )-320(by )-320(another )-320(pr)18(ocess. )-570(Normally)111(,)]TJ /TT0 1 Tf 20.099 0 Td (open)Tj /T1_1 1 Tf -36.6 -1.2 Td [(succeeds, )-131(even )-131(if )-131(the )-131(\336le )-131(being )-131(opened )-131(has )-131(outstanding )-131(mandatory )-131(r)19(ecor)]TJ 0.3809 Tc 33.192 0 Td (dl)Tj 0 Tc 1.283 0 Td [(ocks. )-381(The)]TJ -34.475 -1.2 Td (next)Tj /TT0 1 Tf 2.177 0 Td (read)Tj /T1_1 1 Tf 2.674 0 Td (or)Tj /TT0 1 Tf 1.215 0 Td (write)Tj /T1_1 1 Tf 3.274 0 Td [(follows )-24(the )-24(r)8(ules )-24(listed )-24(in )-24(Figur)]TJ 0.2739 Tc 13.884 0 Td (e1)Tj 0 Tc 1.253 0 Td [(4.1)55(1. )-274(But)-274(if )-24(the )-24(\336le )-24(being )-24(opened)]TJ -24.476 -1.2 Td [(has )-152(outstanding )-152(mandatory )-152(r)18(ecor)]TJ 0.402 Tc 15.181 0 Td (dl)Tj 0 Tc 1.304 0 Td [(ocks )-152(\(either )-152(r)18(ead )-152(locks )-152(or )-152(write )-152(locks\), )-152(and )-152(if )-152(the)]TJ -16.485 -1.2 Td (\337ags in the call to)Tj /TT0 1 Tf 7.997 0 Td (open)Tj /T1_1 1 Tf 2.65 0 Td (specify either)Tj /TT0 1 Tf 6.181 0 Td (O_TRUNC)Tj /T1_1 1 Tf 4.45 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (O_CREAT)Tj /T1_1 1 Tf 0.2503 Tc (,t)Tj 0 Tc 5.026 0 Td (hen)Tj /TT0 1 Tf 1.893 0 Td (open)Tj /T1_1 1 Tf -0.018 Tc 2.65 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns an err)17(or)]TJ -32.895 -1.2 Td (of)Tj /TT0 1 Tf 1.129 0 Td (EAGAIN)Tj /T1_1 1 Tf 3.85 0 Td (immediately)Tj 0.25 Tc 5.479 0 Td (,r)Tj 0 Tc 0.877 0 Td [(egar)18(dless of whether)]TJ /TT0 1 Tf 9.447 0 Td (O_NONBLOCK)Tj /T1_1 1 Tf 6.25 0 Td (is speci\336ed.)Tj 7.9976 0 0 7.9976 183.5439 310.7068 Tm [(Only )-121(Solaris )-121(tr)18(eats )-121(the)]TJ /TT0 1 Tf 10.491 0 Td (O_CREAT)Tj /T1_1 1 Tf 4.571 0 Td [(\337ag )-121(as )-121(an )-121(err)17(or )-121(case.)-621(Linux )-121(allows )-121(the)]TJ /TT0 1 Tf 18.055 0 Td (O_CREAT)Tj /T1_1 1 Tf 4.571 0 Td [(\337ag )-121(to )-121(be)]TJ -37.69 -1.25 Td [(speci\336ed )-15(when )-15(opening )-15(a )-15(\336le )-15(with )-15(an )-15(outstanding )-15(mandatory )-15(lock.)-516(Generating )-15(the)]TJ /TT0 1 Tf 37.143 0 Td (open)Tj /T1_1 1 Tf 2.665 0 Td [(err)18(or)]TJ -39.808 -1.25 Td (for)Tj /TT0 1 Tf 1.675 0 Td (O_TRUNC)Tj /T1_1 1 Tf 4.601 0 Td [(makes )-151(sense, )-151(because )-151(the )-151(\336le )-151(cannot )-151(be )-151(tr)8(uncated )-151(if )-151(it )-151(is )-151(r)18(ead )-151(locked )-151(or )-151(write)]TJ -6.276 -1.25 Td [(locked )-7(by )-7(another )-7(pr)18(ocess. )-257(Generating)-257(the )-7(err)18(or )-7(for)]TJ /TT0 1 Tf 23.102 0 Td (O_CREAT)Tj /T1_1 1 Tf 0.257 Tc (,h)Tj 0 Tc 5.289 0 Td (owever)Tj 0.257 Tc 3.224 0 Td (,m)Tj 0 Tc 1.39 0 Td [(akes )-7(little )-7(sense; )-7(this)]TJ -33.005 -1.25 Td [(\337ag )-48(says )-48(to )-48(cr)19(eate )-48(the )-48(\336le )-48(only )-48(if )-48(it )-48(doesn\325t )-48(alr)18(eady )-48(exist, )-48(but )-48(it )-48(has )-48(to )-48(exist )-48(to )-48(be )-48(r)24(ecor)]TJ 0.2976 Tc 38.164 0 Td (dl)Tj 0 Tc 1.2 0 Td (ocked)Tj -39.364 -1.25 Td [(by another pr)18(ocess.)]TJ 9.997 0 0 9.997 147.5547 238.7284 Tm [(This )-95(handling )-95(of )-95(locking )-95(con\337icts )-95(with)]TJ /TT0 1 Tf 17.82 0 Td (open)Tj /T1_1 1 Tf 2.745 0 Td [(can )-95(lead )-95(to )-95(surprising )-95(r)16(esults. )-345(While)]TJ -22.365 -1.2 Td [(developing )-229(the )-229(exer)18(cises )-229(in )-229(this )-229(section, )-229(a )-229(test )-229(pr)15(ogram )-229(was )-229(r)8(un )-229(that )-229(opened )-229(a )-229(\336le)]TJ T* [(\(whose )-2(mode )-2(speci\336ed )-2(mandatory )-2(locking\), )-2(established )-2(a )-2(r)18(ead )-2(lock )-2(on )-2(an )-2(entir)]TJ 0.252 Tc 34.699 0 Td (e\336)Tj 0 Tc 1.336 0 Td [(le, )-2(and)]TJ -36.035 -1.2 Td [(then )-13(went )-13(to )-13(sleep )-13(for )-13(a )-13(while.)-513(\(Recall )-13(fr)18(om )-13(Figur)]TJ 0.2629 Tc 21.982 0 Td (e1)Tj 0 Tc 1.242 0 Td (4.1)Tj 0.2629 Tc 1.195 0 Td (1t)Tj 0 Tc 1.089 0 Td [(hat )-13(a )-13(r)18(ead )-13(lock )-13(should )-13(pr)19(event)]TJ -25.507 -1.2 Td [(writing )-41(to )-41(the )-41(\336le )-41(by )-41(other )-41(pr)18(ocesses.\) )-291(During)-291(this )-41(sleep )-41(period, )-41(the )-41(following )-41(behavior)]TJ T* [(was seen in other typical UNIX System pr)18(ograms.)]TJ 0.883 Tc 1.8 -2.04 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-46(same )-46(\336le )-46(could )-46(be )-46(edited )-46(with )-46(the)]TJ /TT0 1 Tf 16.837 0 Td (ed)Tj /T1_1 1 Tf 1.496 0 Td (editor)Tj 0.2964 Tc 2.574 0 Td (,a)Tj 0 Tc 1.046 0 Td [(nd )-46(the )-46(r)18(esults )-46(written )-46(back )-46(to)]TJ -22.567 -1.2 Td [(disk! )-337(The)-338(mandatory )-87(r)18(ecor)]TJ 0.3374 Tc 12.218 0 Td (dl)Tj 0 Tc 1.239 0 Td [(ocking )-87(had )-87(no )-87(ef)18(fect )-87(at )-87(all.)-587(Using )-87(the )-87(system )-87(call)]TJ -13.458 -1.2 Td [(trace )-10(featur)]TJ 0.2605 Tc 5.022 0 Td (ep)Tj -0.018 Tc 1.341 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vided )-10(by )-10(some )-10(versions )-10(of )-10(the )-10(UNIX )-10(System, )-10(it )-10(was )-10(seen )-10(that)]TJ /TT0 1 Tf 27.225 0 Td (ed)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47446 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.10)]TJ /TT0 1 Tf 30.286 0 Td (alarm)Tj /T1_0 1 Tf 3.5 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (pause)Tj /T1_0 1 Tf 3.5 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (341)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.902 TD [(unsigned int)-2400(sleep2\(unsigned int\);)]TJ 0 -1.189 TD [(static void)-3000(sig_int\(int\);)]TJ 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(unsigned int)-2400(unslept;)]TJ 0 -1.902 TD (if \(signal\(SIGINT, sig_int\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("signal\(SIGINT\) error"\);)Tj -2.4 -1.189 Td (unslept = sleep2\(5\);)Tj 0 -1.189 TD (printf\("sleep2 returned: %u\\n", unslept\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (static void)Tj 0 -1.189 TD (sig_int\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td [(i,)-600(j;)]TJ -9.6 -1.189 Td [(volatile int)-2400(k;)]TJ 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*T)Tj 0 Tc 1.8 0 Td (une these loops to run for more than 5 seconds)Tj -1.8 -1.189 Td [(*)-600(on)-600(whatever system this test program is run.)]TJ 0 -1.189 TD (*/)Tj -0.6 -1.189 Td (printf\("\\nsig_int starting\\n"\);)Tj 0 -1.189 TD (for \(i = 0; i < 300000; i++\))Tj 2.4 -1.189 Td (for \(j = 0; j < 4000; j++\))Tj 2.4 -1.189 Td [(k)-600(+=)-600(i)-600(*)-600(j;)]TJ -4.8 -1.189 Td (printf\("sig_int finished\\n"\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3337.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 199.2121 317.6599 Tm (Figure 10.9)Tj /T1_0 1 Tf 5.695 0 Td (Calling)Tj /TT0 1 Tf 3.47 0 Td (sleep2)Tj /T1_0 1 Tf 3.85 0 Td [(fr)18(om a pr)18(ogram that catches other signals)]TJ 9.9988 0 0 9.9988 147.5827 293.6628 Tm [(When )-194(we )-194(execute )-194(the )-194(pr)18(ogram )-194(shown )-194(in )-194(Figur)]TJ 0.4436 Tc 21.856 0 Td (e1)Tj 0 Tc 1.423 0 Td [(0.9 )-194(and )-194(interr)9(upt )-194(the )-194(sleep )-194(by)]TJ -25.079 -1.2 Td [(typing the interr)8(upt character)74(,)-250(we)-250(get the following output:)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5827 264.9662 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj -1.2 -1.189 Td (\366C)Tj /T1_2 1 Tf 16 0 Td (we type the interrupt character)Tj /TT0 1 Tf -16 -1.189 Td (sig_int starting)Tj 0 -1.189 TD (sleep2 returned: 0)Tj /T1_0 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5848 214.8722 Tm [(We )-456(c)]TJ 0 Tc 2.353 0 Td [(an )-272(see )-272(that )-272(the)]TJ /TT0 1 Tf 7.672 0 Td (longjmp)Tj /T1_0 1 Tf 4.722 0 Td [(fr)18(om )-272(the)]TJ /TT0 1 Tf 4.569 0 Td (sleep2)Tj /T1_0 1 Tf 4.122 0 Td [(function )-272(aborted )-272(the )-272(other )-272(signal)]TJ -23.437 -1.2 Td [(handler)74(,)]TJ /TT0 1 Tf 3.908 0 Td (sig_int)Tj /T1_0 1 Tf 0.2924 Tc (,e)Tj 0 Tc 5.221 0 Td [(ven )-42(though )-42(it )-42(wasn\325t )-42(\336nished.)-544(This )-42(is )-42(what )-42(you\325ll )-42(encounter )-42(if )-42(you)]TJ -9.13 -1.2 Td (mix the SVR2)Tj /TT0 1 Tf 6.242 0 Td (sleep)Tj /T1_0 1 Tf 3.25 0 Td [(function with other signal handling.)-500(See Exer)18(cise 10.3.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1909.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 147.5734 166.868 Tm [(The )-32(purpose )-32(of )-32(the)]TJ /TT0 1 Tf 8.716 0 Td (sleep1)Tj /T1_0 1 Tf 3.882 0 Td (and)Tj /TT0 1 Tf 1.975 0 Td (sleep2)Tj /T1_0 1 Tf 3.882 0 Td [(examples )-32(is )-32(to )-32(show )-32(the )-32(pitfalls )-32(in )-32(dealing)]TJ -20.254 -1.2 Td [(naively )-23(with )-23(signals.)-523(The )-23(following )-23(sections )-23(will )-23(show )-23(ways )-23(ar)20(ound )-23(all )-23(these )-23(pr)19(oblems,)]TJ 0 -1.2 Td [(so we can handle signals r)18(eliably)]TJ 0.25 Tc 14.399 0 Td (,w)Tj 0 Tc 1.334 0 Td (ithout interfering with other pieces of code.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47447 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (320)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (SIGPROF)Tj /T1_1 1 Tf 6.582 0 Td [(This )-61(signal )-61(is )-61(marked )-61(obsolescent )-61(in )-61(SUSv4, )-61(so )-61(it )-61(might )-61(be )-61(r)17(emoved )-61(in )-61(a)]TJ 0 -1.2 TD (futur)Tj 0.2924 Tc 2.242 0 Td (ev)Tj 0 Tc 1.336 0 Td [(ersion )-42(of )-42(the )-42(standar)17(d. )-292(This)-293(signal )-42(is )-42(generated )-42(when )-42(a )-42(pr)17(o\336ling)]TJ -3.578 -1.2 Td (interval timer set by the)Tj /TT0 1 Tf 10.778 0 Td (setitimer)Tj /T1_1 1 Tf 5.4 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td [(function expir)18(es.)]TJ /TT0 1 Tf -24.176 -1.84 Td (SIGPWR)Tj /T1_1 1 Tf 6.582 0 Td [(This )-50(signal )-50(is )-50(system )-50(dependent.)-550(Its )-50(main )-50(use )-50(is )-50(on )-50(a )-50(system )-50(that )-50(has )-50(an)]TJ T* [(uninterr)8(uptible )-95(power )-95(supply)]TJ 13.754 0.04 Td (\()Tj 0.333 -0.04 Td (UPS)Tj 1.907 0.04 Td (\))Tj 0.5947 Tc 0.333 -0.04 Td (.I)Tj 0.3447 Tc 1.182 0 Td (fp)Tj 0 Tc 1.279 0 Td [(ower )-95(fails, )-95(the )-95(UPS )-95(takes )-95(over)]TJ -18.788 -1.2 Td [(and )-126(the )-126(softwar)]TJ 0.3763 Tc 7.173 0 Td (ec)Tj 0 Tc 1.299 0 Td [(an )-126(usually )-126(be )-126(noti\336ed.)-627(Nothing )-126(needs )-126(to )-126(be )-126(done )-126(at)]TJ -8.472 -1.2 Td [(this )-70(point, )-70(as )-70(the )-70(system )-70(continues )-70(r)8(unning )-70(on )-70(battery )-70(power)]TJ 0.5701 Tc 27.407 0 Td (.B)Tj 0 Tc 1.431 0 Td [(ut )-70(if )-70(the)]TJ -28.838 -1.2 Td [(battery )-19(gets )-19(low )-19(\(for )-19(example, )-19(if )-19(the )-19(power )-19(is )-19(of)]TJ 0.2693 Tc 21.063 0 Td (ff)Tj 0 Tc 0.935 0 Td [(or )-19(an )-19(extended )-19(period\),)]TJ -21.998 -1.2 Td [(the )-285(softwar)18(e)-535(is)-535(usually )-285(noti\336ed )-285(again; )-285(at )-285(this )-285(point, )-285(it )-285(behooves )-285(the)]TJ T* [(system )-94(to )-94(shut )-94(everything )-94(down.)-594(This )-94(is )-94(when)]TJ /TT0 1 Tf 21.636 0 Td (SIGPWR)Tj /T1_1 1 Tf 3.944 0 Td [(should )-94(be )-94(sent.)]TJ -25.58 -1.2 Td [(On )-15(most )-15(systems, )-15(the )-15(pr)20(ocess )-14(that )-14(is )-14(noti\336ed )-14(of )-14(the )-14(low-battery )-14(condition)]TJ T* [(sends )-215(the)]TJ /TT0 1 Tf 4.837 0 Td (SIGPWR)Tj /T1_1 1 Tf 4.065 0 Td [(signal )-215(to )-215(the)]TJ /TT0 1 Tf 6.298 0 Td (init)Tj /T1_1 1 Tf 2.865 0 Td [(pr)18(ocess, )-215(and)]TJ /TT0 1 Tf 6.168 0 Td (init)Tj /T1_1 1 Tf 2.865 0 Td [(handles )-215(the)]TJ -27.097 -1.2 Td (system shutdown.)Tj 7.9995 0 0 7.9995 237.5857 498.5701 Tm [(Solaris )-148(10 )-148(and )-148(some )-148(Linux )-148(distributions )-148(have )-148(entries )-148(in )-148(the)]TJ /TT0 1 Tf 27.605 0 Td (inittab)Tj /T1_1 1 Tf 4.598 0 Td [(\336le )-148(for)]TJ -32.203 -1.25 Td (this purpose:)Tj /TT0 1 Tf 6.022 0 Td (powerfail)Tj /T1_1 1 Tf 5.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (powerwait)Tj /T1_1 1 Tf 5.65 0 Td (\(or)Tj /TT0 1 Tf 1.524 0 Td (powerokwait)Tj /T1_1 1 Tf (\).)Tj -20.789 -2.25 Td [(In )-90(Figur)]TJ 0.3403 Tc 3.642 0 Td (e1)Tj 0 Tc 1.319 0 Td [(0.1, )-90(we )-90(labeled )-90(the )-90(default )-90(action )-90(for)]TJ /TT0 1 Tf 16.893 0 Td (SIGPWR)Tj /T1_1 1 Tf 3.94 0 Td [(as )-90(either )-90(\324)36(\324terminate\325)37(\325)]TJ -25.794 -1.25 Td [(or )-35(\324)37(\324ignor)18(e.\325)]TJ 0.535 Tc 5.067 0 Td (\325U)Tj 0 Tc 1.591 0 Td (nfortunately)Tj 0.285 Tc 5.408 0 Td (,t)Tj 0 Tc 0.861 0 Td [(he )-35(default )-35(depends )-35(on )-35(the )-35(system.)-535(The )-35(default )-35(on)]TJ -12.927 -1.25 Td [(Linux is to terminate the pr)18(ocess. )-250(On)-250(Solaris, the signal is ignor)18(ed by default.)]TJ /TT0 1 Tf 9.9994 0 0 9.9994 129.5917 428.5743 Tm (SIGQUIT)Tj /T1_1 1 Tf 6.582 0 Td [(This )-321(signal )-321(is )-321(generated )-321(by )-321(the )-321(terminal )-321(driver )-321(when )-321(we )-321(pr)18(ess )-321(the)]TJ T* [(terminal )-235(quit )-235(key )-235(\(often )-235(Contr)18(ol-backslash\). )-485(This)-485(signal )-235(is )-235(sent )-235(to )-235(all)]TJ -0 -1.2 Td [(pr)18(ocesses )-235(in )-235(the )-235(for)18(egr)18(ound )-235(pr)18(ocess )-235(gr)18(oup )-235(\(r)18(efer )-235(to )-235(Figur)]TJ 0.4849 Tc 26.976 0 Td (e9)Tj 0 Tc 1.464 0 Td [(.9\). )-485(This)]TJ -28.44 -1.2 Td [(signal )-413(not )-413(only )-413(terminates )-413(the )-413(for)18(egr)18(ound )-413(pr)18(ocess )-413(gr)18(oup )-413(\(as )-413(does)]TJ /TT0 1 Tf -0 -1.2 Td (SIGINT)Tj /T1_1 1 Tf (\), but also generates a)Tj /TT0 1 Tf 13.396 0 Td (core)Tj /T1_1 1 Tf 2.65 0 Td (\336le.)Tj /TT0 1 Tf -22.628 -1.84 Td (SIGSEGV)Tj /T1_1 1 Tf 6.582 0 Td [(This )-307(signal )-307(indicates )-307(that )-307(the )-307(pr)18(ocess )-307(has )-307(made )-307(an )-307(invalid )-307(memory)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(fer)18(ence )-139(\(which )-139(is )-139(usually )-139(a )-139(sign )-139(that )-139(the )-139(pr)14(ogram )-139(has )-139(a )-139(bug, )-139(such )-139(as)]TJ -0.856 -1.2 Td [(der)18(efer)18(encing an uninitialized pointer\).)]TJ 7.9995 0 0 7.9995 237.5852 318.1809 Tm [(The name SEGV stands for \324)37(\324segmentation violation.\325)37(\325)]TJ /TT0 1 Tf 9.9994 0 0 9.9994 129.5917 297.1822 Tm (SIGSTKFLT)Tj /T1_1 1 Tf 6.582 0 Td [(This )-317(signal )-317(is )-317(de\336ned )-317(only )-317(by )-317(Linux.)-818(It )-317(showed )-317(up )-317(in )-317(the )-317(earliest)]TJ T* [(versions )-14(of )-14(Linux, )-14(wher)19(e)-264(it)-264(w)1(as )-14(intended )-14(to )-14(be )-14(used )-14(for )-14(stack )-14(faults )-14(taken)]TJ 0 -1.2 Td [(by )-70(the )-70(math )-70(copr)18(ocessor)]TJ 0.5699 Tc 10.899 0 Td (.T)Tj 0 Tc 1.433 0 Td [(his )-70(signal )-70(is )-70(not )-70(generated )-70(by )-70(the )-70(kernel, )-70(but)]TJ -0.018 Tc -12.332 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (mains for backwar)Tj 0.25 Tc 8.218 0 Td (dc)Tj 0 Tc 1.305 0 Td [(ompatibility)111(.)]TJ /TT0 1 Tf -16.961 -1.84 Td (SIGSTOP)Tj /T1_1 1 Tf 6.582 0 Td [(This )-15(job-contr)18(ol )-15(signal )-15(stops )-15(a )-15(pr)17(ocess. )-265(It)-265(is )-15(similar )-15(to )-15(the )-15(interactive )-15(stop)]TJ 0 -1.2 Td (signal \()Tj /TT0 1 Tf (SIGTSTP)Tj /T1_1 1 Tf (\), but)Tj /TT0 1 Tf 9.992 0 Td (SIGSTOP)Tj /T1_1 1 Tf 4.45 0 Td [(cannot be caught or ignor)18(ed.)]TJ /TT0 1 Tf -21.024 -1.84 Td (SIGSYS)Tj /T1_1 1 Tf 6.582 0 Td [(This )-194(signals )-194(an )-194(invalid )-194(system )-194(call.)-692(Somehow)]TJ 0.4437 Tc 21.274 0 Td (,t)Tj 0 Tc 1.02 0 Td [(he )-194(pr)18(ocess )-194(executed )-194(a)]TJ -22.294 -1.2 Td [(machine )-153(instr)8(uction )-153(that )-153(the )-153(kernel )-153(thought )-153(was )-153(a )-153(system )-153(call, )-153(but )-153(the)]TJ T* [(parameter )-55(with )-55(the )-55(instr)8(uction )-55(that )-55(indicates )-55(the )-55(type )-55(of )-55(system )-55(call )-55(was)]TJ T* [(invalid. )-483(This)-484(might )-233(happen )-233(if )-233(you )-233(build )-233(a )-233(pr)16(ogram )-233(that )-233(uses )-233(a )-233(new)]TJ 0 -1.2 Td [(system )-60(call )-60(and )-60(you )-60(then )-60(try )-60(to )-60(r)5(un )-61(the )-61(same )-61(binary )-61(on )-61(an )-61(older )-61(version)]TJ T* (of the operating system wher)Tj 0.25 Tc 12.906 0 Td (et)Tj 0 Tc 1.055 0 Td (he system call doesn\325t exist.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47448 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (662)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 194.3883 670.2598 Tm (return;)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (log_quit\("can\325t find client entry for fd %d", fd\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6227.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 230.8803 606.6262 Tm (Figure 17.27)Tj /T1_1 1 Tf 6.195 0 Td (Functions to manipulate)Tj /TT0 1 Tf 11.032 0 Td (client)Tj /T1_1 1 Tf 3.85 0 Td (array)Tj 9.9988 0 0 9.9988 147.5824 582.6291 Tm [(The )-145(\336rst )-145(time)]TJ /TT0 1 Tf 6.587 0 Td (client_add)Tj /T1_1 1 Tf 6.395 0 Td [(is )-145(called, )-145(it )-145(calls)]TJ /TT0 1 Tf 7.727 0 Td (client_alloc)Tj /T1_1 1 Tf 0.3948 Tc (,w)Tj 0 Tc 8.679 0 Td [(hich )-145(in )-145(turn )-145(calls)]TJ /TT0 1 Tf -31.187 -1.2 Td (malloc)Tj /T1_1 1 Tf 3.962 0 Td [(to )-112(allocate )-112(space )-112(for )-112(ten )-112(entries )-112(in )-112(the )-112(array)]TJ 0.6122 Tc 19.727 0 Td (.A)Tj 0 Tc 1.64 0 Td [(fter )-112(these )-112(ten )-112(entries )-112(ar)]TJ 0.3622 Tc 10.512 0 Td (ea)Tj 0 Tc 1.341 0 Td [(ll )-112(in)]TJ -37.183 -1.2 Td [(use, )-281(a )-281(later )-281(call )-281(to)]TJ /TT0 1 Tf 9.298 0 Td (client_add)Tj /T1_1 1 Tf 6.531 0 Td (causes)Tj /TT0 1 Tf 3.405 0 Td (realloc)Tj /T1_1 1 Tf 4.731 0 Td [(to )-281(allocate )-281(additional )-281(space.)-780(By)]TJ -23.964 -1.2 Td [(dynamically )-15(allocating )-15(space )-15(this )-15(way)111(,)-265(we)-265(have )-15(not )-15(limited )-15(the )-15(size )-15(of )-15(the)]TJ /TT0 1 Tf 32.789 0 Td (client)Tj /T1_1 1 Tf 3.865 0 Td (array)Tj -36.654 -1.2 Td [(at )-66(compile )-66(time )-66(to )-66(some )-66(value )-66(that )-66(we )-66(guessed )-66(and )-66(put )-66(into )-66(a )-66(header)]TJ 0.5665 Tc 31.16 0 Td (.T)Tj 0 Tc 1.429 0 Td [(hese )-66(functions)]TJ -32.589 -1.2 Td [(call )-24(the)]TJ /TT0 1 Tf 3.461 0 Td (log_)Tj /T1_1 1 Tf 2.674 0 Td [(functions )-24(\(Appendix )-24(B\) )-24(if )-24(an )-24(err)18(or )-24(occurs, )-24(since )-24(we )-24(assume )-24(that )-24(the )-24(server)]TJ -6.136 -1.2 Td (is a daemon.)Tj 1.8 -1.2 Td [(Normally )-93(the )-93(server )-93(will )-93(r)8(un )-93(as )-93(a )-93(daemon, )-93(but )-93(we )-93(want )-93(to )-93(pr)18(ovide )-93(an )-93(option )-93(that)]TJ -1.8 -1.2 Td [(allows )-159(it )-159(to )-159(be )-159(r)8(un )-159(in )-159(the )-159(for)17(egr)18(ound, )-159(with )-159(diagnostic )-159(messages )-159(sent )-159(to )-159(the )-159(standar)18(d)]TJ -0 -1.2 Td [(err)18(or)]TJ 0.5414 Tc 2.118 0 Td (.T)Tj 0 Tc 1.404 0 Td [(his )-41(should )-41(make )-41(the )-41(server )-41(easier )-41(to )-41(test )-41(and )-41(debug, )-41(especially )-41(if )-41(we )-41(don\325t )-41(have)]TJ -3.522 -1.2 Td [(permission )-194(to )-194(r)18(ead )-194(the )-194(log )-194(\336le )-194(wher)]TJ 0.4441 Tc 16.847 0 Td (et)Tj 0 Tc 1.249 0 Td [(he )-194(diagnostic )-194(messages )-194(ar)]TJ 0.444 Tc 12.01 0 Td (en)Tj 0 Tc 1.505 0 Td [(ormally )-194(written.)]TJ -0.092 Tc -31.611 -1.2 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-87(use )-87(a )-87(command)]TJ 8.325 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-87(option )-87(to )-87(contr)19(ol )-87(whether )-87(the )-87(server )-87(r)8(uns )-87(in )-87(the )-87(for)19(egr)18(ound)]TJ -10.045 -1.2 Td [(or as a daemon in the backgr)18(ound.)]TJ 1.8 -1.2 Td [(It )-8(is )-8(important )-8(that )-8(all )-8(commands )-8(on )-8(a )-8(system )-8(follow )-8(the )-8(same )-8(conventions, )-8(because)]TJ -1.8 -1.2 Td [(this )-233(makes )-233(them )-233(easier )-233(to )-233(use.)-731(If )-233(someone )-233(is )-233(familiar )-233(with )-233(the )-233(way )-233(command)]TJ 37.024 0.09 Td (-)Tj 0.333 -0.09 Td (line)Tj -37.357 -1.2 Td [(options )-143(ar)]TJ 0.3934 Tc 4.586 0 Td (ef)Tj 0 Tc 1.205 0 Td [(ormed )-143(with )-143(one )-143(command, )-143(it )-143(would )-143(cr)18(eate )-143(mor)]TJ 0.3934 Tc 21.92 0 Td (ec)Tj 0 Tc 1.316 0 Td [(hances )-143(for )-143(mistakes )-143(if)]TJ -29.028 -1.2 Td [(another command followed dif)18(fer)18(ent conventions.)]TJ 1.8 -1.2 Td [(This )-39(pr)18(oblem )-39(is )-39(sometimes )-39(visible )-39(when )-39(dealing )-39(with )-39(white )-39(space )-39(on )-39(the )-39(command)]TJ -1.8 -1.2 Td [(line. )-325(Some)-325(commands )-75(r)18(equir)]TJ 0.3249 Tc 13.111 0 Td (et)Tj 0 Tc 1.13 0 Td [(hat )-75(an )-75(option )-75(be )-75(separated )-75(fr)18(om )-75(its )-75(ar)18(gument )-75(by )-75(white)]TJ -14.241 -1.2 Td [(space, )-20(but )-20(other )-20(commands )-20(r)18(equir)]TJ 0.2701 Tc 15.148 0 Td (et)Tj 0 Tc 1.075 0 Td [(he )-20(ar)18(gument )-20(to )-20(follow )-20(immediately )-20(after )-20(its )-20(option,)]TJ -16.223 -1.2 Td [(without )-40(any )-40(intervening )-40(spaces.)]TJ -0.055 Tc 14.806 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(thout )-40(a )-40(consistent )-40(set )-40(of )-40(r)8(ules )-40(to )-40(follow)]TJ 0.29 Tc 17.251 0 Td (,u)Tj 0 Tc 1.143 0 Td [(sers )-40(either)]TJ -34.436 -1.2 Td [(have )-205(to )-205(memorize )-205(the )-205(syntax )-205(of )-205(all )-205(commands )-205(or )-205(r)18(esort )-205(to )-205(a )-205(trial-and-err)18(or )-205(pr)21(ocess)]TJ 0 -1.2 TD (when invoking them.)Tj 1.8 -1.2 Td [(The )-188(Single )-188(UNIX )-188(Speci\336cation )-188(includes )-188(a )-188(set )-188(of )-188(conventions )-188(and )-188(guidelines )-188(that)]TJ -1.8 -1.2 Td [(pr)18(omote )-127(consistent )-127(command)]TJ 13.386 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-127(syntax.)-628(They )-128(include )-128(such )-128(suggestions )-128(as )-128(\324)39(\324Restrict)]TJ -13.719 -1.2 Td [(each )-16(command)]TJ 6.72 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-16(option )-16(to )-16(a )-16(single )-16(alphanumeric )-16(character)]TJ -0.037 Tc 20.418 0 Td [(\325\325 )-90(a)]TJ 0 Tc 1.285 0 Td [(nd )-16(\324)37(\324All )-16(options )-16(should)]TJ -28.756 -1.2 Td [(be pr)18(eceded by a)]TJ /TT1 1 Tf 7.722 0 Td (!)Tj /T1_1 1 Tf 0.799 0 Td [(character)74(.\325)37(\325)]TJ -6.721 -1.2 Td (Luckily)Tj 0.7906 Tc 3.241 0 Td (,t)Tj 0 Tc 1.367 0 Td (he)Tj /TT0 1 Tf 1.852 0 Td (getopt)Tj /T1_1 1 Tf 4.391 0 Td [(function )-541(exists )-541(to )-541(help )-541(command )-541(developers )-541(pr)20(ocess)]TJ -12.65 -1.2 Td (command)Tj 4.449 0.09 Td (-)Tj 0.333 -0.09 Td [(line options in a consistent manner)74(.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5832 227.5721 Tm (#include )Tj 0 -1.902 TD (int getopt\(int)Tj /T1_2 1 Tf 9 0 Td [(ar)18(gc)]TJ /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.522 0 Td (har * const)Tj /T1_2 1 Tf 7.2 0 Td [(ar)18(gv)]TJ /TT0 1 Tf ([], const char *)Tj /T1_2 1 Tf (options)Tj /TT0 1 Tf (\);)Tj -19.722 -1.902 Td (extern int optind, opterr, optopt;)Tj 0 -1.189 TD (extern char *optarg;)Tj /T1_1 1 Tf 17.242 -1.902 Td (Returns: the next option character)Tj 0.25 Tc 14.9 0 Td (,o)Tj 0 Tc 1.046 0 Td (r)Tj /TT1 1 Tf -11.883 -1.189 Td (!)Tj /T1_1 1 Tf 0.25 Tc (1w)Tj 0 Tc 2.133 0 Td [(hen all options have been pr)18(ocessed)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1503.25 cm 0 0 m 0 863 l 3900 863 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47449 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.4)]TJ 32.736 0 Td [(Passing )-250(File )-250(Descriptors)]TJ /T1_1 1 Tf 13.097 0 Td (645)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.09 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (Tw)Tj 0.5663 Tc 1.357 0 Td (oe)Tj 0 Tc 1.591 0 Td [(lements )-316(deal )-316(with )-316(the )-316(passing )-316(or )-316(r)16(eceiving )-316(of )-316(contr)18(ol )-316(information.)-818(The)]TJ /TT0 1 Tf -4.748 -1.2 Td (msg_control)Tj /T1_0 1 Tf 6.982 0 Td [(\336eld )-132(points )-132(to )-132(a)]TJ /TT0 1 Tf 7.657 0 Td (cmsghdr)Tj /T1_0 1 Tf 4.582 0 Td [(\(contr)18(ol )-132(message )-132(header\) )-132(str)7(uctur)18(e, )-132(and )-132(the)]TJ /TT0 1 Tf -19.221 -1.2 Td (msg_controllen)Tj /T1_0 1 Tf 8.65 0 Td [(\336eld contains the number of bytes of contr)18(ol information.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 627.1925 Tm (struct cmsghdr {)Tj 2.4 -1.189 Td [(socklen_t )-600(cmsg_len;)-2400(/* data byte count, including header */)]TJ 0 -1.189 TD [(int )-4200(cmsg_level;)-1200(/* originating protocol */)]TJ T* [(int )-4200(cmsg_type;)-1800(/* protocol-specific type */)]TJ T* (/* followed by the actual control message data */)Tj -2.4 -1.189 Td (};)Tj /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5909 554.6269 Tm [(To )-326(s)]TJ 0 Tc 1.883 0 Td [(end )-142(a )-142(\336le )-142(descriptor)73(,)-392(we)-392(s)-1(et)]TJ /TT0 1 Tf 13.131 0 Td (cmsg_len)Tj /T1_0 1 Tf 5.192 0 Td [(to )-142(the )-142(size )-142(of )-142(the)]TJ /TT0 1 Tf 8.181 0 Td (cmsghdr)Tj /T1_0 1 Tf 4.592 0 Td [(str)8(uctur)18(e,)]TJ -34.781 -1.2 Td [(plus )-472(the )-472(size )-472(of )-472(an )-472(integer )-472(\(the )-472(descriptor\).)-974(The)]TJ /TT0 1 Tf 25.309 0 Td (cmsg_level)Tj /T1_0 1 Tf 6.722 0 Td [(\336eld )-472(is )-472(set )-472(to)]TJ /TT0 1 Tf -32.031 -1.2 Td (SOL_SOCKET)Tj /T1_0 1 Tf 0.3678 Tc (,a)Tj 0 Tc 7.118 0 Td (nd)Tj /TT0 1 Tf 1.561 0 Td (cmsg_type)Tj /T1_0 1 Tf 5.768 0 Td [(is )-118(set )-118(to)]TJ /TT0 1 Tf 3.919 0 Td (SCM_RIGHTS)Tj /T1_0 1 Tf [(,)-368(to)-368(indicate )-118(that )-118(we )-118(ar)]TJ 0.3679 Tc 16.409 0 Td (ep)Tj 0 Tc 1.448 0 Td (assing)Tj -36.223 -1.2 Td [(access )-105(rights.)-604(\()]TJ /TT0 1 Tf (SCM)Tj /T1_0 1 Tf 8.986 0 Td [(stands )-105(for)]TJ /T1_2 1 Tf 4.85 0 Td [(socket-level )-105(contr)18(ol )-105(message)]TJ /T1_0 1 Tf 11.393 0 Td [(.\) )-355(Access)-354(rights )-105(can )-105(be )-105(passed)]TJ -25.23 -1.2 Td [(only )-48(acr)18(oss )-48(a )-48(UNIX )-48(domain )-48(socket.)-548(The )-48(descriptor )-48(is )-48(stor)18(ed )-48(right )-48(after )-48(the)]TJ /TT0 1 Tf 33.6 0 Td (cmsg_type)Tj /T1_0 1 Tf -33.6 -1.2 Td [(\336eld, using the macr)18(o)]TJ /TT0 1 Tf 9.829 0 Td (CMSG_DATA)Tj /T1_0 1 Tf 5.65 0 Td [(to obtain the pointer to this integer)74(.)]TJ -13.679 -1.2 Td [(Thr)18(ee )-153(macr)18(os )-153(ar)]TJ 0.4029 Tc 7.387 0 Td (eu)Tj 0 Tc 1.485 0 Td [(sed )-153(to )-153(access )-153(the )-153(contr)18(ol )-153(data, )-153(and )-153(one )-153(macr)19(o)-403(is)-403(used )-153(to )-153(help)]TJ -10.672 -1.2 Td (calculate the value to be used for)Tj /TT0 1 Tf 14.748 0 Td (cmsg_len)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5908 451.5331 Tm (#include )Tj 0 -2.14 TD (unsigned char *CMSG_DATA\(struct cmsghdr *)Tj /T1_2 1 Tf (cp)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 13.08 -2.14 Td (Returns: pointer to data associated with)Tj /TT0 1 Tf 17.834 0 Td (cmsghdr)Tj /T1_0 1 Tf 4.45 0 Td [(str)8(uctur)18(e)]TJ /TT0 1 Tf -35.364 -2.14 Td (struct cmsghdr *CMSG_FIRSTHDR\(struct msghdr *)Tj /T1_2 1 Tf (mp)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 15.55 -2.14 Td (Returns: pointer to \336rst)Tj /TT0 1 Tf 10.569 0 Td (cmsghdr)Tj /T1_0 1 Tf 4.45 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ea)Tj 0 Tc 1.229 0 Td (ssociated)Tj -17.808 -1.189 Td (with the)Tj /TT0 1 Tf 3.92 0 Td (msghdr)Tj /T1_0 1 Tf 3.85 0 Td [(str)8(uctur)18(e, or)]TJ /TT0 1 Tf 5.66 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td (if none exists)Tj /TT0 1 Tf -33.56 -2.14 Td (struct cmsghdr *CMSG_NXTHDR\(struct msghdr *)Tj /T1_2 1 Tf (mp)Tj /TT0 1 Tf (,)Tj 16.8 -1.189 Td (struct cmsghdr *)Tj /T1_2 1 Tf (cp)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -3.686 -2.14 Td (Returns: pointer to next)Tj /TT0 1 Tf 10.722 0 Td (cmsghdr)Tj /T1_0 1 Tf 4.45 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ea)Tj 0 Tc 1.229 0 Td (ssociated with)Tj -15.394 -1.189 Td (the)Tj /TT0 1 Tf 1.637 0 Td (msghdr)Tj /T1_0 1 Tf 3.85 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (eg)Tj 0 Tc 1.285 0 Td [(iven the curr)18(ent)]TJ /TT0 1 Tf 7.26 0 Td (cmsghdr)Tj /T1_0 1 Tf -13.792 -1.189 Td [(str)8(uctur)18(e, or)]TJ /TT0 1 Tf 5.66 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(if we\325r)18(e)-250(at)-250(the last one)]TJ /TT0 1 Tf -29.651 -2.14 Td (unsigned int CMSG_LEN\(unsigned int)Tj /T1_2 1 Tf 21 0 Td (nbytes)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -3.963 -2.14 Td (Returns: size to allocate for data object)Tj /T1_2 1 Tf 17.213 0 Td (nbytes)Tj /T1_0 1 Tf 2.88 0 Td [(lar)18(ge)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2502.25 cm 0 0 m 0 2103 l 3900 2103 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 183.578 222.6533 Tm [(The Single UNIX Speci\336cation de\336nes the \336rst thr)18(ee macr)18(os, but omits)]TJ /TT0 1 Tf 31.331 0 Td (CMSG_LEN)Tj /T1_0 1 Tf (.)Tj 9.9988 0 0 9.9988 129.5844 197.6563 Tm (The)Tj /TT0 1 Tf 1.983 0 Td (CMSG_LEN)Tj /T1_0 1 Tf 5.109 0 Td (macr)Tj 0.3089 Tc 2.204 0 Td (or)Tj 0 Tc 1.232 0 Td [(eturns )-59(the )-59(number )-59(of )-59(bytes )-59(needed )-59(to )-59(stor)]TJ 0.309 Tc 18.856 0 Td (ead)Tj 0 Tc 2.208 0 Td [(ata )-59(object )-59(of )-59(size)]TJ /T1_2 1 Tf -31.592 -1.2 Td (nbytes)Tj /T1_0 1 Tf 0.4701 Tc (,a)Tj 0 Tc 3.85 0 Td [(fter )-220(adding )-220(the )-220(size )-220(of )-220(the)]TJ /TT0 1 Tf 12.852 0 Td (cmsghdr)Tj /T1_0 1 Tf 4.67 0 Td [(str)8(uctur)18(e, )-220(adjusting )-220(for )-220(any )-220(alignment)]TJ -21.372 -1.2 Td [(constraints r)18(equir)18(ed by the pr)18(ocessor ar)18(chitectur)18(e, and r)18(ounding up.)]TJ 1.8 -1.2 Td [(The )-15(pr)18(ogram )-15(in )-15(Figur)]TJ 0.2655 Tc 9.584 0 Td (e1)Tj 0 Tc 1.244 0 Td [(7.13 )-15(is )-15(the)]TJ /TT0 1 Tf 4.649 0 Td (send_fd)Tj /T1_0 1 Tf 4.466 0 Td [(function, )-16(which )-16(passes )-16(a )-16(\336le )-16(descriptor)]TJ -21.743 -1.2 Td [(over )-70(a )-70(UNIX )-70(domain )-70(socket.)-570(In )-70(the)]TJ /TT0 1 Tf 16.33 0 Td (sendmsg)Tj /T1_0 1 Tf 4.52 0 Td [(call, )-70(we )-70(send )-70(both )-70(the )-70(pr)18(otocol )-70(data )-70(\(the)]TJ -20.85 -1.2 Td [(null and the status byte\) and the descriptor)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47450 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (612)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (The)Tj /TT0 1 Tf 2.116 0 Td (recv)Tj /T1_1 1 Tf 2.842 0 Td [(function )-192(is )-192(similar )-192(to)]TJ /TT0 1 Tf 10.138 0 Td (read)Tj /T1_1 1 Tf 0.4423 Tc (,b)Tj 0 Tc 3.645 0 Td [(ut )-192(allows )-192(us )-192(to )-192(specify )-192(some )-192(options )-192(to)]TJ -20.542 -1.2 Td [(contr)18(ol how we r)18(eceive the data.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 639.0617 Tm (#include )Tj 0 -2.14 TD (ssize_t recv\(int)Tj /T1_2 1 Tf 10.2 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.262 0 Td (oid *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 6.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.43 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ags)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -6.934 -2.14 Td (Returns: length of message in bytes,)Tj -15.335 -1.189 Td [(0)-250(if)-250(no)-250(messages ar)]TJ 0.25 Tc 8.298 0 Td (ea)Tj 0 Tc 1.229 0 Td [(vailable and peer has done an or)18(derly shutdown,)]TJ 15.626 -1.189 Td (or)Tj /TT1 1 Tf 1.191 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5747.25 cm 0 0 m 0 734 l 3900 734 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 559.9128 Tm [(The )-111(\337ags )-111(that )-111(can )-111(be )-111(passed )-111(to)]TJ /TT0 1 Tf 14.49 0 Td (recv)Tj /T1_1 1 Tf 2.761 0 Td (ar)Tj 0.3607 Tc 0.877 0 Td (es)Tj 0 Tc 1.264 0 Td [(ummarized )-111(in )-111(Figur)]TJ 0.3608 Tc 9.122 0 Td (e1)Tj 0 Tc 1.34 0 Td [(6.14. )-361(Only)-361(thr)18(ee )-111(ar)18(e)]TJ -29.854 -1.2 Td (de\336ned by the Single UNIX Speci\336cation.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1116.25 5256.25 cm 0 0 m 4067 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 364.7463 517.4868 Tm [(Fr)18(eeBSD )-1416(Linux)-1382(Mac OS X)-1198(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-2993(3.2.0)-2618(10.6.8 )-2868(10)]TJ -28.579 0.625 Td (Flag)Tj 11.875 0 Td (Description)Tj 10.626 0 Td (POSIX.1)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1116.25 5036.25 cm 0 0 m 4067 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1116.25 5016.25 cm 0 0 m 4067 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 115.5723 493.4616 Tm (MSG_CMSG_CLOEXEC)Tj /T1_1 1 Tf 37.617 0 Td (\245)Tj -26.517 0 Td (Set the close-on-exec \337ag for \336le)Tj 1.35 -1.25 Td [(descriptors r)18(eceived over a)]TJ 0 -1.25 TD (UNIX domain socket \(see)Tj T* (Section 17.4\).)Tj /TT0 1 Tf -12.45 -1.25 Td (MSG_DONTWAIT)Tj /T1_1 1 Tf 4.262 Tc 32.749 0 Td [(\245\245 )-356(\245)]TJ 0 Tc -21.649 0 Td (Enable nonblocking operation)Tj 1.35 -1.25 Td (\(equivalent to using)Tj /TT0 1 Tf T* (O_NONBLOCK)Tj /T1_1 1 Tf (\).)Tj /TT0 1 Tf -12.45 -1.25 Td (MSG_ERRQUEUE)Tj /T1_1 1 Tf 37.617 0 Td (\245)Tj -26.517 0 Td [(Receive err)18(or information as)]TJ 1.35 -1.25 Td (ancillary data.)Tj /TT0 1 Tf -12.45 -1.25 Td (MSG_OOB)Tj /T1_1 1 Tf 4.262 Tc 27.881 0 Td (\245\245\245\245\245)Tj 0 Tc -16.781 0 Td (Retrieve out-of-band data if)Tj 1.35 -1.25 Td [(supported by pr)18(otocol \(see)]TJ T* (Section 16.7\).)Tj /TT0 1 Tf -12.45 -1.25 Td (MSG_PEEK)Tj /T1_1 1 Tf 4.262 Tc 27.881 0 Td (\245\245\245\245\245)Tj 0 Tc -16.781 0 Td (Return packet contents without)Tj 1.35 -1.25 Td (consuming the packet.)Tj /TT0 1 Tf -12.45 -1.25 Td (MSG_TRUNC)Tj /T1_1 1 Tf 37.617 0 Td (\245)Tj -26.517 0 Td [(Request that the r)18(eal length of)]TJ 1.35 -1.25 Td [(the packet be r)18(eturned, even)]TJ T* [(if it was tr)8(uncated.)]TJ /TT0 1 Tf -12.45 -1.25 Td (MSG_WAITALL)Tj /T1_1 1 Tf 4.262 Tc 27.881 0 Td (\245\245\245\245\245)Tj -0.092 Tc -16.781 0 Td (Wa)Tj 0 Tc 1.408 0 Td (it until all data is available)Tj -0.058 -1.25 Td (\()Tj /TT0 1 Tf (SOCK_STREAM)Tj /T1_1 1 Tf 7.183 0 Td (only\).)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1116.25 3096.25 cm 0 0 m 4067 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4774.25 3096.25 cm 0 0 m 0 2160 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4384.25 3096.25 cm 0 0 m 0 2160 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3995.25 3096.25 cm 0 0 m 0 2160 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3595.25 3096.25 cm 0 0 m 0 2160 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3615.25 3096.25 cm 0 0 m 0 2160 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3216.25 3096.25 cm 0 0 m 0 2160 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1984.25 3096.25 cm 0 0 m 0 2160 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5183.25 3096.25 cm 0 0 m 0 2160 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1116.25 3096.25 cm 0 0 m 0 2160 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 240.3399 291.4925 Tm (Figure 16.14)Tj /T1_1 1 Tf 6.195 0 Td (Flags used with)Tj /TT0 1 Tf 7.227 0 Td (recv)Tj /T1_1 1 Tf 2.65 0 Td (socket calls)Tj 9.997 0 0 9.997 147.5559 262.7012 Tm [(When )-226(we )-226(specify )-226(the)]TJ /TT0 1 Tf 10.374 0 Td (MSG_PEEK)Tj /T1_1 1 Tf 5.276 0 Td [(\337ag, )-226(we )-226(can )-226(peek )-226(at )-226(the )-226(next )-226(data )-226(to )-226(be )-226(r)20(ead)]TJ -17.45 -1.2 Td [(without )-52(actually )-52(consuming )-52(it.)-552(The )-52(next )-52(call )-52(to)]TJ /TT0 1 Tf 21.436 0 Td (read)Tj /T1_1 1 Tf 2.702 0 Td [(or )-52(one )-52(of )-52(the)]TJ /TT0 1 Tf 6.021 0 Td (recv)Tj /T1_1 1 Tf 2.702 0 Td [(functions )-52(will)]TJ -0.018 Tc -32.86 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (turn the same data we peeked at.)Tj -0.055 Tc 0.944 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td (th)Tj /TT0 1 Tf 1.425 0 Td (SOCK_STREAM)Tj /T1_1 1 Tf 7.117 0 Td [(sockets, )-267(we )-267(can )-267(r)18(eceive )-267(less )-267(data )-267(than )-267(we )-267(r)20(equested. )-517(The)]TJ /TT0 1 Tf -11.578 -1.2 Td (MSG_WAITALL)Tj /T1_1 1 Tf 6.923 0 Td [(\337ag )-73(inhibits )-73(this )-73(behavior)]TJ 0.3233 Tc 11.434 0 Td (,p)Tj -0.018 Tc 1.174 0 Td (re)Tj 0 Tc 0.856 0 Td (venting)Tj /TT0 1 Tf 3.704 0 Td (recv)Tj /T1_1 1 Tf 2.723 0 Td [(fr)18(om )-73(r)18(eturning )-73(until )-73(all )-73(the)]TJ -26.815 -1.2 Td [(data )-345(we )-345(r)18(equested )-345(has )-345(been )-345(r)20(eceived. )-594(W)55(ith)]TJ /TT0 1 Tf 21.718 0 Td (SOCK_DGRAM)Tj /T1_1 1 Tf 6.594 0 Td (and)Tj /TT0 1 Tf 2.288 0 Td (SOCK_SEQPACKET)Tj /T1_1 1 Tf -30.6 -1.2 Td [(sockets, )-450(the)]TJ /TT0 1 Tf 6.237 0 Td (MSG_WAITALL)Tj /T1_1 1 Tf 7.3 0 Td [(\337ag )-450(pr)18(ovides )-450(no )-450(change )-450(in )-450(behavior)]TJ 0.7003 Tc 18.041 0 Td (,b)Tj 0 Tc 1.503 0 Td [(ecause )-450(these)]TJ -33.081 -1.2 Td [(message-based socket types alr)18(eady r)18(eturn an entir)]TJ 0.25 Tc 22.519 0 Td (em)Tj 0 Tc 1.612 0 Td [(essage in a single r)18(ead.)]TJ -22.331 -1.2 Td [(If )-229(the )-229(sender )-229(has )-229(called)]TJ /TT0 1 Tf 11.544 0 Td (shutdown)Tj /T1_1 1 Tf 5.279 0 Td [(\(Section )-229(16.2\) )-229(to )-229(end )-229(transmission, )-229(or )-229(if )-229(the)]TJ -18.624 -1.2 Td [(network )-78(pr)18(otocol )-78(supports )-78(or)19(derly )-78(shutdown )-78(by )-78(default )-78(and )-78(the )-78(sender )-78(has )-78(closed )-78(the)]TJ 0 -1.2 TD (socket, then)Tj /TT0 1 Tf 5.494 0 Td (recv)Tj /T1_1 1 Tf 2.65 0 Td [(will r)18(eturn 0 when we have r)18(eceived all the data.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47451 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.4)]TJ 31.974 0 Td [(Connection )-250(Establishment)]TJ /T1_1 1 Tf 13.859 0 Td (607)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Ther)18(e)-457(is)-457(a)-457(p)]TJ -0.018 Tc 5.718 0 Td (ro)Tj 0 Tc 0.923 0 Td [(blem )-207(with )-207(the )-207(code )-207(shown )-207(in )-207(Figur)]TJ 0.4573 Tc 16.674 0 Td (e1)Tj 0 Tc 1.436 0 Td [(6.10: )-207(it )-207(isn\325t )-207(portable.)-708(This)]TJ -26.552 -1.2 Td [(technique )-112(works )-112(on )-112(Linux )-112(and )-112(Solaris, )-112(but )-112(doesn\325t )-112(work )-112(as )-112(expected )-112(on )-112(Fr)12(eeBSD )-113(and)]TJ 0 -1.2 TD [(Mac )-241(OS )-241(X.)-741(If )-241(the )-241(\336rst )-241(connection )-241(attempt )-241(fails, )-241(BSD)]TJ 24.859 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-241(socket )-241(implementations)]TJ -25.192 -1.2 Td [(continue )-27(to )-27(fail )-27(successive )-27(connection )-27(attempts )-27(when )-27(the )-27(same )-27(socket )-27(descriptor )-27(is )-27(used)]TJ T* [(with )-100(TCP)]TJ 0.6003 Tc 4.18 0 Td (.T)Tj 0 Tc 1.463 0 Td [(his )-100(is )-100(a )-100(case )-100(of )-100(a )-100(pr)18(otocol-speci\336c )-100(behavior )-100(leaking )-100(thr)18(ough )-100(the )-100(\(pr)16(otocol-)]TJ -5.644 -1.2 Td [(independent\) )-47(socket )-47(interface )-47(and )-47(becoming )-47(visible )-47(to )-47(applications.)-549(The )-47(r)18(eason )-47(for )-47(this)]TJ T* [(is )-95(historical, )-95(and )-95(thus )-95(the )-95(Single )-95(UNIX )-95(Speci\336cation )-95(warns )-95(that )-95(the )-95(state )-95(of )-95(a )-95(socket )-95(is)]TJ T* (unde\336ned if)Tj /TT0 1 Tf 5.676 0 Td (connect)Tj /T1_0 1 Tf 4.45 0 Td (fails.)Tj -8.326 -1.2 Td [(Because )-105(of )-105(this, )-105(portable )-105(applications )-105(need )-105(to )-105(close )-105(the )-105(socket )-105(if)]TJ /TT0 1 Tf 29.28 0 Td (connect)Tj /T1_0 1 Tf 4.555 0 Td [(fails. )-355(If)]TJ -35.636 -1.2 Td [(we )-12(want )-12(to )-12(r)17(etry)111(,)-262(we)-262(h)-1(ave )-12(to )-12(open )-12(a )-12(new )-12(socket.)-512(This )-12(mor)]TJ 0.2623 Tc 25.752 0 Td (ep)Tj 0 Tc 1.342 0 Td [(ortable )-12(technique )-12(is )-12(shown)]TJ -27.094 -1.2 Td (in Figur)Tj 0.25 Tc 3.506 0 Td (e1)Tj 0 Tc 1.229 0 Td [(6.1)55(1.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5418.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 532.2351 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (#define MAXSLEEP 128)Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (connect_retry\(int domain, int type, int protocol,)Tj 8.4 -1.189 Td (const struct sockaddr *addr, socklen_t alen\))Tj -8.4 -1.189 Td ({)Tj 2.4 -1.189 Td (int numsec, fd;)Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*T)Tj 0 Tc 1.8 0 Td (ry to connect with exponential backoff.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (for \(numsec = 1; numsec <= MAXSLEEP; numsec <<= 1\) {)Tj 2.4 -1.189 Td (if \(\(fd = socket\(domain, type, protocol\)\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td (if \(connect\(fd, addr, alen\) == 0\) {)Tj 2.4 -1.189 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (onnection accepted.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (return\(fd\);)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (close\(fd\);)Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*D)Tj 0 Tc 1.8 0 Td (elay before trying again.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(numsec <= MAXSLEEP/2\))Tj 2.4 -1.189 Td (sleep\(numsec\);)Tj -4.8 -1.189 Td (})Tj 0 -1.189 TD (return\(-1\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1979.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 251.8707 181.9053 Tm [(Figure 16.1)37(1)]TJ /T1_0 1 Tf 6.158 0 Td [(Portable connect with r)18(etry)]TJ 9.9982 0 0 9.9982 129.5768 157.9096 Tm [(Note )-48(that )-48(because )-48(we )-48(might )-48(have )-48(to )-48(establish )-48(a )-48(new )-48(socket, )-48(it )-48(makes )-48(no )-48(sense )-48(to )-48(pass )-48(a)]TJ 0 -1.2 TD [(socket )-107(descriptor )-107(to )-107(the)]TJ /TT0 1 Tf 10.975 0 Td (connect_retry)Tj /T1_0 1 Tf 8.157 0 Td [(function. )-357(Instead)-357(of )-107(r)18(eturning )-107(an )-107(indication)]TJ -19.132 -1.2 Td [(of success, we now r)18(eturn a connected socket descriptor to the caller)74(.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1339.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47452 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (596)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 670.2598 Tm (struct sockaddr_in6 {)Tj 1.2 -1.189 Td [(sa_family_t )-2400(sin6_family;)-2400(/* address family */)]TJ 0 -1.189 TD [(in_port_t )-3600(sin6_port;)-3600(/* port number */)]TJ T* [(uint32_t )-4200(sin6_flowinfo;)-1200(/* traffic class and flow info */)]TJ T* [(struct in6_addr sin6_addr;)-3600(/* IPv6 address */)]TJ 0 -1.189 TD [(uint32_t )-4200(sin6_scope_id;)-1200(/* set of interfaces for scope */)]TJ -1.2 -1.189 Td (};)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 588.0647 Tm [(These )-402(ar)]TJ 0.6517 Tc 4.106 0 Td (et)Tj 0 Tc 1.457 0 Td [(he )-402(de\336nitions )-402(r)19(equir)18(ed )-402(by )-402(the )-402(Single )-402(UNIX )-402(Speci\336cation.)-900(Individual)]TJ -5.562 -1.2 Td [(implementations )-20(ar)]TJ 0.27 Tc 8.631 0 Td (ef)Tj -0.018 Tc 1.082 0 Td (re)Tj 0 Tc 0.856 0 Td [(e)-270(to)-270(add )-20(mor)]TJ 0.2699 Tc 5.689 0 Td (e\336)Tj 0 Tc 1.354 0 Td [(elds. )-270(For)-270(example, )-20(on )-20(Linux, )-20(the)]TJ /TT0 1 Tf 14.788 0 Td (sockaddr_in)Tj /T1_1 1 Tf -32.4 -1.2 Td [(str)8(uctur)18(e)-250(is)-250(de\336ned as)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5914 547.3672 Tm (struct sockaddr_in {)Tj 1.2 -1.189 Td [(sa_family_t )-2400(sin_family;)-2400(/* address family */)]TJ 0 -1.189 TD [(in_port_t )-3600(sin_port;)-3600(/* port number */)]TJ T* [(struct in_addr)-1200(sin_addr; )-3000(/*)-600(IPv4 address */)]TJ T* [(unsigned char)-1800(sin_zero[8]; )-1200(/*)-600(filler */)]TJ -1.2 -1.189 Td (};)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5925 475.8714 Tm (wher)Tj 0.25 Tc 2.272 0 Td (et)Tj 0 Tc 1.055 0 Td (he)Tj /TT0 1 Tf 1.311 0 Td (sin_zero)Tj /T1_1 1 Tf 5.05 0 Td (member is a \336ller \336eld that should be set to all-zer)Tj 0.25 Tc 22.129 0 Td (ov)Tj 0 Tc 1.361 0 Td (alues.)Tj -31.378 -1.2 Td [(Note )-240(that )-240(although )-240(the)]TJ /TT0 1 Tf 11.249 0 Td (sockaddr_in)Tj /T1_1 1 Tf 7.09 0 Td (and)Tj /TT0 1 Tf 2.183 0 Td (sockaddr_in6)Tj /T1_1 1 Tf 7.69 0 Td [(str)8(uctur)18(es )-240(ar)]TJ 0.49 Tc 5.76 0 Td (eq)Tj 0 Tc 1.529 0 Td (uite)Tj -37.301 -1.2 Td [(dif)18(fer)18(ent, )-85(they )-85(ar)]TJ 0.3355 Tc 7.534 0 Td (eb)Tj 0 Tc 1.367 0 Td [(oth )-85(passed )-85(to )-85(the )-85(socket )-85(r)18(outines )-85(cast )-85(to )-85(a)]TJ /TT0 1 Tf 19.24 0 Td (sockaddr)Tj /T1_1 1 Tf 5.135 0 Td [(str)8(uctur)18(e. )-335(In)]TJ -33.277 -1.2 Td [(Section )-30(17.2, )-30(we )-30(will )-30(see )-30(that )-30(the )-30(str)8(uctur)18(e)-280(of)-280(a)-280(UNIX )-30(domain )-30(socket )-30(addr)18(ess )-30(is )-30(dif)18(fer)18(ent)]TJ -0 -1.2 Td [(fr)18(om both of the Internet domain socket addr)18(ess formats.)]TJ 1.8 -1.2 Td [(It )-9(is )-9(sometimes )-9(necessary )-9(to )-9(print )-9(an )-9(addr)18(ess )-9(in )-9(a )-9(format )-9(that )-9(is )-9(understandable )-9(by )-9(a)]TJ -1.8 -1.2 Td [(person )-62(instead )-62(of )-62(a )-62(computer)]TJ 0.5617 Tc 13.069 0 Td (.T)Tj 0 Tc 1.425 0 Td [(he )-62(BSD )-62(networking )-62(softwar)]TJ 0.3118 Tc 12.393 0 Td (ei)Tj 0 Tc 1.082 0 Td [(ncluded )-62(the)]TJ /TT0 1 Tf 5.632 0 Td (inet_addr)Tj /T1_1 1 Tf -33.6 -1.2 Td (and)Tj /TT0 1 Tf 1.964 0 Td (inet_ntoa)Tj /T1_1 1 Tf 5.671 0 Td [(functions )-21(to )-21(convert )-21(between )-21(the )-21(binary )-21(addr)18(ess )-21(format )-21(and )-21(a )-21(string )-21(in)]TJ -7.635 -1.2 Td [(dotted-decimal )-326(notation )-326(\(a.b.c.d\).)-826(These )-326(functions, )-326(however)]TJ 0.5763 Tc 28.099 0 Td (,w)Tj 0 Tc 1.66 0 Td [(ork )-326(only )-326(with )-326(IPv4)]TJ -29.76 -1.2 Td [(addr)18(esses. )-807(T)90(wo )-557(new )-557(functions)-84(\321)]TJ /TT0 1 Tf 16.347 0 Td (inet_ntop)Tj /T1_1 1 Tf 6.207 0 Td (and)Tj /TT0 1 Tf 2.5 0 Td (inet_pton)Tj /T1_1 1 Tf 0.0833 Tc 5.483 0 Td (\321s)Tj 0 Tc 1.507 0 Td [(upport )-557(similar)]TJ -32.045 -1.2 Td [(functionality and work with both IPv4 and IPv6 addr)18(esses.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 337.9797 Tm (#include )Tj 0 -1.902 TD (const char *inet_ntop\(int)Tj /T1_2 1 Tf 15.6 0 Td (domain)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.8 0 Td (onst void *restrict)Tj /T1_2 1 Tf 12 0 Td (addr)Tj /TT0 1 Tf (,)Tj -19.2 -1.189 Td (char *restrict)Tj /T1_2 1 Tf 9 0 Td (str)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 2.911 0 Td (ocklen_t)Tj /T1_2 1 Tf 5.4 0 Td (size)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -17.587 -1.902 Td [(Returns: pointer to addr)18(ess string on success,)]TJ /TT0 1 Tf 20.189 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -35.763 -1.902 Td (int inet_pton\(int)Tj /T1_2 1 Tf 10.8 0 Td (domain)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.8 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (str)Tj /TT0 1 Tf (,)Tj -19.2 -1.189 Td (void *restrict)Tj /T1_2 1 Tf 9 0 Td (addr)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -5.064 -1.902 Td (Returns: 1 on success, 0 if the format is invalid, or)Tj /TT1 1 Tf 22.128 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2436.25 cm 0 0 m 0 1034 l 3900 1034 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 228.8925 Tm (The)Tj /TT0 1 Tf 2.065 0 Td (inet_ntop)Tj /T1_1 1 Tf 5.791 0 Td [(function )-141(converts )-141(a )-141(binary )-141(addr)18(ess )-141(in )-141(network )-141(byte )-141(or)15(der )-141(into )-141(a)]TJ -9.657 -1.2 Td [(text )-180(string;)]TJ /TT0 1 Tf 5.332 0 Td (inet_pton)Tj /T1_1 1 Tf 5.83 0 Td [(converts )-180(a )-180(text )-180(string )-180(into )-180(a )-180(binary )-180(addr)18(ess )-180(in )-180(network )-180(byte)]TJ -11.162 -1.2 Td [(or)18(der)]TJ 0.5 Tc 2.334 0 Td (.O)Tj 0 Tc 1.536 0 Td (nly two)Tj /T1_2 1 Tf 3.635 0 Td (domain)Tj /T1_1 1 Tf 3.25 0 Td (values ar)Tj 0.25 Tc 3.989 0 Td (es)Tj 0 Tc 1.153 0 Td (upported:)Tj /TT0 1 Tf 4.662 0 Td (AF_INET)Tj /T1_1 1 Tf 4.45 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (AF_INET6)Tj /T1_1 1 Tf (.)Tj -25.152 -1.2 Td (For)Tj /TT0 1 Tf 1.838 0 Td (inet_ntop)Tj /T1_1 1 Tf 0.3407 Tc (,t)Tj 0 Tc 6.317 0 Td (he)Tj /T1_2 1 Tf 1.402 0 Td (size)Tj /T1_1 1 Tf 1.841 0 Td [(parameter )-91(speci\336es )-91(the )-91(size )-91(of )-91(the )-91(buf)18(fer )-91(\()]TJ /T1_2 1 Tf 19.048 0 Td (str)Tj /T1_1 1 Tf 0.3407 Tc (\)t)Tj 0.3408 Tc 2.111 0 Td (oh)Tj 0 Tc 1.469 0 Td [(old )-91(the)]TJ -35.824 -1.2 Td [(text )-150(string.)]TJ -0.09 Tc 5.521 0 Td (Tw)Tj 0.3999 Tc 1.357 0 Td (oc)Tj 0 Tc 1.39 0 Td [(onstants )-150(ar)]TJ 0.3999 Tc 4.987 0 Td (ed)Tj 0 Tc 1.49 0 Td [(e\336ned )-150(to )-150(make )-150(our )-150(job )-150(easier:)]TJ /TT0 1 Tf 14.14 0 Td (INET_ADDRSTRLEN)Tj /T1_1 1 Tf 9.4 0 Td (is)Tj -38.285 -1.2 Td [(lar)18(ge )-824(enough )-824(to )-824(hold )-824(a )-824(text )-824(string )-824(r)17(epr)18(esenting )-824(an )-824(IPv4 )-824(addr)18(ess, )-824(and)]TJ /TT0 1 Tf 0 -1.2 TD (INET6_ADDRSTRLEN)Tj /T1_1 1 Tf 9.866 0 Td [(is )-16(lar)18(ge )-16(enough )-16(to )-16(hold )-16(a )-16(text )-16(string )-16(r)16(epr)18(esenting )-16(an )-16(IPv6 )-16(addr)18(ess.)]TJ -9.866 -1.2 Td (For)Tj /TT0 1 Tf 1.895 0 Td (inet_pton)Tj /T1_1 1 Tf 0.398 Tc (,t)Tj 0 Tc 6.374 0 Td (he)Tj /T1_2 1 Tf 1.459 0 Td (addr)Tj /T1_1 1 Tf 2.231 0 Td [(buf)18(fer )-148(needs )-148(to )-148(be )-148(lar)18(ge )-148(enough )-148(to )-148(hold )-148(a )-148(32)]TJ 20.692 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-148(addr)18(ess )-148(if)]TJ /T1_2 1 Tf -32.984 -1.2 Td (domain)Tj /T1_1 1 Tf 3.25 0 Td (is)Tj /TT0 1 Tf 0.965 0 Td (AF_INET)Tj /T1_1 1 Tf 4.45 0 Td [(or lar)18(ge enough to hold a 128)]TJ 12.894 0.09 Td (-)Tj 0.333 -0.09 Td [(bit addr)18(ess if)]TJ /T1_2 1 Tf 5.97 0 Td (domain)Tj /T1_1 1 Tf 3.25 0 Td (is)Tj /TT0 1 Tf 0.965 0 Td (AF_INET6)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47453 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (572)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(The )-128(Single )-128(UNIX )-128(Speci\336cation )-128(shar)18(ed )-128(memory )-128(objects )-128(option )-128(includes )-128(alternative )-128(interfaces,)]TJ 0 -1.25 TD [(originally r)18(eal-time extensions, to access shar)18(ed memory)]TJ 0.5 Tc 24.848 0 Td (.W)Tj 0.25 Tc 1.658 0 Td (ed)Tj 0 Tc 1.34 0 Td (on\325t discuss them in this text.)Tj -0.092 Tc 9.9994 0 0 9.9994 147.5911 640.9615 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ve )-87(alr)18(eady )-87(seen )-87(one )-87(form )-87(of )-87(shar)18(ed )-87(memory )-87(when )-87(multiple )-87(pr)18(ocesses )-87(map )-87(the)]TJ -3.187 -1.2 Td [(same )-228(\336le )-228(into )-228(their )-228(addr)16(ess )-229(spaces.)-729(The )-229(XSI )-229(shar)18(ed )-229(memory )-229(dif)18(fers )-229(fr)18(om )-229(memory-)]TJ 0 -1.2 TD [(mapped )-106(\336les )-106(in )-106(that )-106(ther)17(e)-356(is)-356(n)]TJ 0.3561 Tc (oa)Tj 0 Tc 15.16 0 Td [(ssociated )-106(\336le.)-606(The )-106(XSI )-106(shar)18(ed )-106(memory )-106(segments )-106(ar)17(e)]TJ -15.16 -1.2 Td [(anonymous segments of memory)111(.)]TJ 1.8 -1.2 Td [(The )-249(kernel )-249(maintains )-249(a )-249(str)9(uctur)]TJ 0.4987 Tc 14.82 0 Td (ew)Tj 0 Tc 1.812 0 Td [(ith )-249(at )-249(least )-249(the )-249(following )-249(members )-249(for )-249(each)]TJ -18.431 -1.2 Td [(shar)18(ed memory segment:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5915 564.2661 Tm (struct shmid_ds {)Tj 1.2 -1.189 Td [(struct ipc_perm)-1200(shm_perm; )-1800(/*)-600(see Section 15.6.2 */)]TJ 0 -1.189 TD (size_t )Tj 10.2 0 Td [(shm_segsz;)-1800(/* size of segment in bytes */)]TJ -10.2 -1.189 Td (pid_t )Tj 10.2 0 Td [(shm_lpid;)-2400(/* pid of last shmop\(\) */)]TJ -10.2 -1.189 Td (pid_t )Tj 10.2 0 Td [(shm_cpid;)-2400(/* pid of creator */)]TJ -10.2 -1.189 Td [(shmatt_t )-4800(shm_nattch;)-1200(/* number of current attaches */)]TJ T* (time_t )Tj 10.2 0 Td [(shm_atime;)-1800(/* last-attach time */)]TJ -10.2 -1.189 Td (time_t )Tj 10.2 0 Td [(shm_dtime;)-1800(/* last-detach time */)]TJ -10.2 -1.189 Td (time_t )Tj 10.2 0 Td [(shm_ctime;)-1800(/* last-change time */)]TJ -10.2 -1.189 Td (.)Tj 0 -0.476 TD (.)Tj 0 -0.476 TD (.)Tj -1.2 -1.189 Td (};)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5926 430.714 Tm [(\(Implementations add other str)8(uctur)]TJ 0.25 Tc 16.153 0 Td (em)Tj 0 Tc 1.612 0 Td [(embers to support shar)18(ed memory segments.\))]TJ -15.965 -1.2 Td [(The )-182(type)]TJ /TT0 1 Tf 4.5 0 Td (shmatt_t)Tj /T1_1 1 Tf 5.232 0 Td [(is )-182(de\336ned )-182(to )-182(be )-182(an )-182(unsigned )-182(integer )-182(at )-182(least )-182(as )-182(lar)17(ge )-182(as )-182(an)]TJ /TT0 1 Tf -11.532 -1.2 Td [(unsigned )350(short)]TJ /T1_1 1 Tf 0.5 Tc (.F)Tj 0 Tc 9.356 0 Td (igur)Tj 0.25 Tc 1.827 0 Td (e1)Tj 0 Tc 1.229 0 Td [(5.30 lists the system limits that af)18(fect shar)18(ed memory)111(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1364.25 3879.25 cm 0 0 m 3764 0 l S Q Q BT /T1_1 1 Tf -0.09 Tc 7.999 0 0 7.999 411.2786 379.8944 Tm (Ty)Tj 0 Tc 1.079 0 Td (pical values)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3604.25 3759.25 cm 0 0 m 1524 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 367.1339 367.8738 Tm [(Fr)18(eeBSD )-1173(Linux)-1073(Mac OS X)-1229(Solaris)]TJ 1.275 -1.25 Td [(8.0 )-2750(3.2.0)-2309(10.6.8 )-2899(10)]TJ -18.702 1.375 Td (Description)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1364.25 3539.25 cm 0 0 m 3764 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1364.25 3519.25 cm 0 0 m 3764 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 364.3166 343.8575 Tm [(33,554,432 )-750(32,768)-1184(4,194,304 )-934(derived)]TJ -28 0 Td [(maximum size in bytes of a shar)18(ed memory segment)]TJ 3.25 Tc 32 -1.25 Td [(11 )2066(1)]TJ 0 Tc 12.584 0 Td (1)Tj -44.584 0 Td [(minimum size in bytes of a shar)18(ed memory segment)]TJ 31 -1.25 Td [(192 )-1250(4,096)-4184(32 )-1899(128)]TJ -31 0 Td [(maximum number of shar)18(ed memory segments, systemwide)]TJ 31 -1.25 Td [(128 )-1250(4,096)]TJ 2.1495 Tc 9.934 0 Td (81)Tj 0 Tc 3.15 0 Td (28)Tj -44.084 0 Td [(maximum number of shar)18(ed memory segments, per pr)18(ocess)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1364.25 3099.25 cm 0 0 m 3764 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4773.25 3099.25 cm 0 0 m 0 660 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4344.25 3099.25 cm 0 0 m 0 660 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4044.25 3099.25 cm 0 0 m 0 660 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3604.25 3099.25 cm 0 0 m 0 780 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5128.25 3099.25 cm 0 0 m 0 780 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1364.25 3099.25 cm 0 0 m 0 780 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 228.5714 291.8524 Tm (Figure 15.30)Tj /T1_1 1 Tf 6.195 0 Td [(System limits that af)18(fect shar)18(ed memory)]TJ 9.997 0 0 9.997 147.5559 267.8596 Tm (The \336rst function called is usually)Tj /TT0 1 Tf 15.23 0 Td (shmget)Tj /T1_1 1 Tf [(,)-250(to)-250(obtain a shar)18(ed memory identi\336er)74(.)]TJ /TT0 1 Tf 8.9973 0 0 8.9973 147.556 251.1646 Tm (#include )Tj 0 -1.902 TD (int shmget\(key_t)Tj /T1_2 1 Tf 10.2 0 Td (key)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.133 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (size)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.3 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -3.008 -1.902 Td [(Returns: shar)18(ed memory ID if OK,)]TJ /TT1 1 Tf 15.439 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2125.25 cm 0 0 m 0 477 l 3900 477 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9964 0 0 9.9964 129.5534 198.9284 Tm [(In )-152(Section )-152(15.6.1, )-152(we )-152(described )-152(the )-152(r)8(ules )-152(for )-152(converting )-152(the)]TJ /T1_2 1 Tf 27.48 0 Td (key)Tj /T1_1 1 Tf 1.735 0 Td [(into )-152(an )-152(identi\336er )-152(and)]TJ -29.215 -1.2 Td [(whether )-118(a )-118(new )-118(segment )-118(is )-118(cr)18(eated )-118(or )-118(an )-118(existing )-118(segment )-118(is )-118(r)14(efer)18(enced. )-368(When)]TJ 0.3685 Tc 36.236 0 Td (an)Tj 0 Tc 1.451 0 Td (ew)Tj -37.687 -1.2 Td [(segment is cr)18(eated, the following members of the)]TJ /TT0 1 Tf 21.929 0 Td (shmid_ds)Tj /T1_1 1 Tf 5.05 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(i)]TJ 0 Tc 1.397 0 Td (nitialized.)Tj 0.883 Tc -31.295 -1.8 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.402 0 Td (ipc_perm)Tj /T1_1 1 Tf 5.141 0 Td [(str)8(uctur)18(e)-341(is)-341(initialized )-91(as )-91(described )-91(in )-91(Section )-91(15.6.2.)-590(The)]TJ /TT0 1 Tf 26.155 0 Td (mode)Tj /T1_1 1 Tf -33.311 -1.2 Td [(member )-233(of )-233(this )-233(str)7(uctur)18(e)-484(is)-484(s)1(et )-234(to )-234(the )-234(corr)18(esponding )-234(permission )-234(bits )-234(of)]TJ /T1_2 1 Tf 33.972 0 Td (\337ag)Tj /T1_1 1 Tf (.)Tj -33.972 -1.2 Td (These permissions ar)Tj 0.25 Tc 9.294 0 Td (es)Tj 0 Tc 1.153 0 Td [(peci\336ed with the values fr)18(om Figur)]TJ 0.25 Tc 15.564 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.24.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47454 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (410)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.018 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm (re)Tj 0 Tc 0.856 0 Td [(sour)18(ces )-663(for )-663(the )-663(r)18(eader\320writer )-663(lock,)]TJ /TT0 1 Tf 18.669 0 Td (pthread_rwlock_destroy)Tj /T1_1 1 Tf 14.113 0 Td [(fr)18(ees )-663(those)]TJ -0.018 Tc -33.638 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sour)18(ces. )-456(If)-456(we )-206(fr)18(ee )-206(the )-206(memory )-206(backing )-206(a )-206(r)18(eader\320writer )-206(lock )-206(without )-206(\336rst )-206(calling)]TJ /TT0 1 Tf -0.856 -1.2 Td (pthread_rwlock_destroy)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 14.2 0 Td [(ny r)18(esour)18(ces assigned to the lock will be lost.)]TJ -0.092 Tc -12.4 -1.2 Td [(To )-233(l)]TJ 0 Tc 1.656 0 Td [(ock )-48(a )-48(r)18(eader\320writer )-48(lock )-48(in )-48(r)16(ead )-48(mode, )-48(we )-48(call)]TJ /TT0 1 Tf 21.078 0 Td (pthread_rwlock_rdlock)Tj /T1_1 1 Tf 0.5484 Tc (.T)Tj 0 Tc 13.919 0 Td (o)Tj -38.454 -1.2 Td [(write )-10(lock )-10(a )-10(r)18(eader\320writer )-10(lock, )-10(we )-10(call)]TJ /TT0 1 Tf 17.47 0 Td (pthread_rwlock_wrlock)Tj /T1_1 1 Tf 0.5101 Tc (.R)Tj 0 Tc 14.028 0 Td [(egar)18(dless )-10(of )-10(how)]TJ -31.498 -1.2 Td [(we lock a r)18(eader\320writer lock, we can unlock it by calling)]TJ /TT0 1 Tf 25.09 0 Td (pthread_rwlock_unlock)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 592.2645 Tm (#include )Tj 0 -1.783 TD (int pthread_rwlock_rdlock\(pthread_rwlock_t *)Tj /T1_2 1 Tf (rwlock)Tj /TT0 1 Tf (\);)Tj -0 -1.783 Td (int pthread_rwlock_wrlock\(pthread_rwlock_t *)Tj /T1_2 1 Tf (rwlock)Tj /TT0 1 Tf (\);)Tj -0 -1.783 Td (int pthread_rwlock_unlock\(pthread_rwlock_t *)Tj /T1_2 1 Tf (rwlock)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 20.386 -1.783 Td [(All r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5236.25 cm 0 0 m 0 777 l 3900 777 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 510.0388 Tm [(Implementations )-120(might )-120(place )-120(a )-120(limit )-120(on )-120(the )-120(number )-120(of )-120(times )-120(a )-120(r)18(eader\320writer )-120(lock)]TJ -1.8 -1.2 Td [(can )-580(be )-580(locked )-580(in )-580(shar)18(ed )-580(mode, )-580(so )-580(we )-580(need )-580(to )-580(check )-580(the )-580(r)16(eturn )-580(value )-580(of)]TJ /TT0 1 Tf 0 -1.2 TD (pthread_rwlock_rdlock)Tj /T1_1 1 Tf 1.7938 Tc (.E)Tj 0 Tc 15.255 0 Td [(ven )-1294(though)]TJ /TT0 1 Tf 7.909 0 Td (pthread_rwlock_wrlock)Tj /T1_1 1 Tf 14.144 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (pthread_rwlock_unlock)Tj /T1_1 1 Tf 13.187 0 Td [(have )-336(err)18(or )-336(r)18(eturns, )-336(and )-336(technically )-336(we )-336(should )-336(always)]TJ -13.187 -1.2 Td [(check )-34(for )-34(err)18(ors )-34(when )-34(we )-34(call )-34(functions )-34(that )-34(can )-34(potentially )-34(fail, )-34(we )-34(don\325t )-34(need )-34(to )-34(check)]TJ T* [(them )-1(if )-1(we )-1(design )-1(our )-1(locking )-1(pr)20(operly)]TJ 0.5006 Tc 17.199 0 Td (.T)Tj 0 Tc 1.364 0 Td [(he )-1(only )-1(err)18(or )-1(r)18(eturns )-1(de\336ned )-1(ar)]TJ 0.2506 Tc 13.911 0 Td (ew)Tj 0 Tc 1.564 0 Td [(hen )-1(we )-1(use)]TJ -34.037 -1.2 Td [(them )-153(impr)18(operly)]TJ 0.403 Tc 7.582 0 Td (,s)Tj 0 Tc 1.077 0 Td [(uch )-153(as )-153(with )-153(an )-153(uninitialized )-153(lock, )-153(or )-153(when )-153(we )-153(might )-153(deadlock )-153(by)]TJ -8.659 -1.2 Td [(attempting )-377(to )-377(acquir)]TJ 0.6273 Tc 9.772 0 Td (eal)Tj 0 Tc 2.525 0 Td [(ock )-377(we )-377(alr)18(eady )-377(own.)-878(However)74(,)-627(be)-627(a)-1(war)]TJ 0.6274 Tc 19.948 0 Td (et)Tj 0 Tc 1.432 0 Td [(hat )-377(speci\336c)]TJ -33.677 -1.2 Td [(implementations might de\336ne additional err)18(or r)18(eturns.)]TJ 1.8 -1.2 Td [(The )-7(Single )-7(UNIX )-7(Speci\336cation )-7(also )-7(de\336nes )-7(conditional )-7(versions )-7(of )-7(the )-7(r)17(eader\320writer)]TJ -1.8 -1.2 Td (locking primitives.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5825 373.3552 Tm (#include )Tj 0 -1.783 TD (int pthread_rwlock_tryrdlock\(pthread_rwlock_t *)Tj /T1_2 1 Tf (rwlock)Tj /TT0 1 Tf (\);)Tj -0 -1.783 Td (int pthread_rwlock_trywrlock\(pthread_rwlock_t *)Tj /T1_2 1 Tf (rwlock)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 19.681 -1.783 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3207.25 cm 0 0 m 0 617 l 3900 617 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 307.1947 Tm [(When )-161(the )-161(lock )-161(can )-161(be )-161(acquir)18(ed, )-161(these )-161(functions )-161(r)18(eturn )-161(0.)-661(Otherwise, )-161(they )-161(r)18(eturn )-161(the)]TJ 0 -1.2 TD [(err)18(or)]TJ /TT0 1 Tf 2.704 0 Td (EBUSY)Tj /T1_1 1 Tf 0.7618 Tc (.T)Tj 0 Tc 4.625 0 Td [(hese )-262(functions )-262(can )-262(be )-262(used )-262(to )-262(avoid )-262(deadlocks )-262(in )-262(situations )-262(wher)21(e)]TJ -7.329 -1.2 Td [(conforming to a lock hierar)18(chy is dif)18(\336cult, as we discussed pr)18(eviously)111(.)]TJ /TT1 1 Tf -3.6 -2.4 Td (Example)Tj /T1_1 1 Tf 3.6 -1.92 Td [(The )-98(pr)18(ogram )-98(in )-98(Figur)]TJ 0.3485 Tc 9.834 0 Td (e1)Tj 0 Tc 1.272 0 Td [(1.14 )-99(illustrates )-99(the )-99(use )-99(of )-99(r)18(eader\320writer )-99(locks.)]TJ 0.3486 Tc 21.134 0 Td (Aq)Tj 0 Tc 1.687 0 Td [(ueue )-99(of )-99(job)]TJ -0.018 Tc -33.927 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quests )-185(is )-185(pr)18(otected )-185(by )-185(a )-185(single )-185(r)18(eader\320writer )-185(lock.)-683(This )-185(example )-185(shows )-185(a )-185(possible)]TJ -0.856 -1.2 Td [(implementation )-7(of )-7(Figur)]TJ 0.2573 Tc 10.837 0 Td (e1)Tj 0 Tc 1.181 0 Td [(1.1, )-7(wher)18(eby )-7(multiple )-7(worker )-7(thr)18(eads )-7(obtain )-7(jobs )-7(assigned )-7(to)]TJ -12.018 -1.2 Td [(them by a single master thr)18(ead.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1968.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9978 0 0 8.9978 129.5689 187.304 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (struct job {)Tj 2.4 -1.189 Td (struct job *j_next;)Tj 0 -1.189 TD (struct job *j_prev;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47455 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (28)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (standar)Tj 0.26 Tc 3.32 0 Td (dw)Tj 0 Tc 1.705 0 Td [(as )-10(also )-10(published )-10(as )-10(International )-10(Standar)]TJ 0.26 Tc 18.502 0 Td (dI)Tj 0 Tc 1.208 0 Td [(SO/IEC )-10(9945)]TJ 5.834 0.09 Td (-)Tj 0.333 -0.09 Td [(1:1996. )-260(Mor)]TJ 0.26 Tc 5.379 0 Td (er)Tj 0 Tc 1.116 0 Td (eal-)Tj -37.397 -1.2 Td [(time )-37(interfaces )-37(wer)]TJ 0.2867 Tc 8.495 0 Td (ea)Tj 0 Tc 1.266 0 Td [(dded )-37(in )-37(1999 )-37(with )-37(the )-37(publication )-37(of )-37(IEEE )-37(Standar)]TJ 0.2868 Tc 22.397 0 Td (d1)Tj 0 Tc 1.398 0 Td (003.1d)Tj 2.861 0.09 Td (-)Tj 0.333 -0.09 Td (1999.)Tj 0.324 Tc -36.75 -1.2 Td (Ay)Tj 0 Tc 1.658 0 Td [(ear )-74(later)]TJ 0.3239 Tc 3.615 0 Td (,I)Tj 0 Tc 0.911 0 Td [(EEE )-74(Standar)]TJ 0.3239 Tc 5.578 0 Td (d1)Tj 0 Tc 1.435 0 Td [(003.1j-2000 )-74(was )-74(published, )-74(including )-74(even )-74(mor)]TJ 0.3239 Tc 21.041 0 Td (er)Tj 0 Tc 1.18 0 Td (eal-time)Tj -35.418 -1.2 Td [(interfaces, )-438(and )-438(IEEE )-438(Standar)]TJ 0.6884 Tc 13.852 0 Td (d1)Tj 0 Tc 1.799 0 Td [(003.1q-2000 )-438(was )-438(published, )-438(adding )-438(event-tracing)]TJ -15.651 -1.2 Td [(extensions to the standar)18(d.)]TJ 1.8 -1.2 Td [(The )-176(2001 )-176(version )-176(of )-176(1003.1 )-176(departed )-176(fr)17(om )-176(the )-176(prior )-176(versions )-176(in )-176(that )-176(it )-176(combined)]TJ -1.8 -1.2 Td [(several )-277(1003.1 )-277(amendments, )-277(the )-277(1003.2 )-277(standar)20(d, )-277(and )-277(portions )-277(of )-277(the )-277(Single )-277(UNIX)]TJ 0 -1.2 TD (Speci\336cation)Tj 6.238 0.04 Td (\()Tj 0.333 -0.04 Td (SUS)Tj 1.828 0.04 Td (\))Tj 0.6043 Tc 0.333 -0.04 Td (,V)Tj 0 Tc 1.465 0 Td [(ersion )-354(2 )-354(\(mor)17(e)-604(on)-604(t)-1(his )-354(later\).)-855(The )-354(r)18(esulting )-354(standar)18(d, )-354(IEEE)]TJ -10.198 -1.2 Td (Standar)Tj 0.25 Tc 3.421 0 Td (d1)Tj 0 Tc 1.361 0 Td (003.1)Tj 2.25 0.09 Td (-)Tj 0.333 -0.09 Td [(2001, included the following other standar)18(ds:)]TJ 0.5 Tc -5.565 -1.56 Td (\245I)Tj 0 Tc 1.443 0 Td (SO/IEC 9945)Tj 5.824 0.09 Td (-)Tj 0.25 Tc 0.333 -0.09 Td (1\()Tj 0 Tc 1.083 0 Td (IEEE Standar)Tj 0.25 Tc 5.841 0 Td (d1)Tj 0 Tc 1.361 0 Td (003.1)Tj 2.25 0.09 Td (-)Tj 0.333 -0.09 Td (1996\), which includes)Tj 0.5 Tc -15.468 -1.2 Td (\245I)Tj 0 Tc 1.443 0 Td (EEE Standar)Tj 0.25 Tc 5.504 0 Td (d1)Tj 0 Tc 1.361 0 Td (003.1)Tj 2.25 0.09 Td (-)Tj 0.333 -0.09 Td (1990)Tj 0.5 Tc -10.891 -1.2 Td (\245I)Tj 0 Tc 1.443 0 Td (EEE Standar)Tj 0.25 Tc 5.504 0 Td (d1)Tj 0 Tc 1.361 0 Td [(003.1b-1993 \(r)18(eal-time extensions\))]TJ 0.5 Tc -8.308 -1.2 Td (\245I)Tj 0 Tc 1.443 0 Td (EEE Standar)Tj 0.25 Tc 5.504 0 Td (d1)Tj 0 Tc 1.361 0 Td [(003.1c-1995 \(pthr)18(eads\))]TJ 0.5 Tc -8.308 -1.2 Td (\245I)Tj 0 Tc 1.443 0 Td (EEE Standar)Tj 0.25 Tc 5.504 0 Td (d1)Tj 0 Tc 1.361 0 Td [(003.1i-1995 \(r)18(eal-time technical corrigenda\))]TJ 0.5 Tc -11.308 -1.2 Td (\245I)Tj 0 Tc 1.443 0 Td (EEE P1003.1a draft standar)Tj 0.25 Tc 11.922 0 Td (d\()Tj 0 Tc 1.194 0 Td (system interface amendment\))Tj 0.5 Tc -14.559 -1.2 Td (\245I)Tj 0 Tc 1.443 0 Td (EEE Standar)Tj 0.25 Tc 5.504 0 Td (d1)Tj 0 Tc 1.361 0 Td (003.1d)Tj 2.861 0.09 Td (-)Tj 0.333 -0.09 Td [(1999 \(advanced r)18(eal-time extensions\))]TJ 0.5 Tc -11.502 -1.2 Td (\245I)Tj 0 Tc 1.443 0 Td (EEE Standar)Tj 0.25 Tc 5.504 0 Td (d1)Tj 0 Tc 1.361 0 Td (003.1j-2000 \(mor)Tj 0.25 Tc 7.206 0 Td (ea)Tj 0 Tc 1.229 0 Td [(dvanced r)18(eal-time extensions\))]TJ 0.5 Tc -16.743 -1.2 Td (\245I)Tj 0 Tc 1.443 0 Td (EEE Standar)Tj 0.25 Tc 5.504 0 Td (d1)Tj 0 Tc 1.361 0 Td (003.1q-2000 \(tracing\))Tj 0.5 Tc -8.308 -1.2 Td (\245P)Tj 0 Tc 1.71 0 Td (arts of IEEE Standar)Tj 0.25 Tc 8.865 0 Td (d1)Tj 0 Tc 1.361 0 Td [(003.1g-2000 \(pr)18(otocol-independent interfaces\))]TJ 0.5 Tc -11.936 -1.2 Td (\245I)Tj 0 Tc 1.443 0 Td (SO/IEC 9945)Tj 5.824 0.09 Td (-)Tj 0.25 Tc 0.333 -0.09 Td (2\()Tj 0 Tc 1.083 0 Td (IEEE Standar)Tj 0.25 Tc 5.841 0 Td (d1)Tj 0 Tc 1.361 0 Td (003.2)Tj 2.25 0.09 Td (-)Tj 0.333 -0.09 Td (1993\))Tj 0.5 Tc -18.468 -1.2 Td (\245I)Tj 0 Tc 1.443 0 Td (EEE P1003.2b draft standar)Tj 0.25 Tc 11.975 0 Td (d\()Tj 0 Tc 1.194 0 Td (shell and utilities amendment\))Tj 0.5 Tc -14.612 -1.2 Td (\245I)Tj 0 Tc 1.443 0 Td (EEE Standar)Tj 0.25 Tc 5.504 0 Td (d1)Tj 0 Tc 1.361 0 Td (003.2d)Tj 2.861 0.09 Td (-)Tj 0.333 -0.09 Td (1994 \(batch extensions\))Tj 0.5 Tc -11.502 -1.2 Td (\245T)Tj 0 Tc 1.719 0 Td (he Base Speci\336cations of the Single UNIX Speci\336cation, version 2, \ which include)Tj 0.5 Tc 1.281 -1.2 Td (\245S)Tj 0 Tc 1.631 0 Td (ystem Interface De\336nitions, Issue 5)Tj 0.5 Tc -1.631 -1.2 Td (\245C)Tj 0 Tc 1.815 0 Td (ommands and Utilities, Issue 5)Tj 0.5 Tc -1.815 -1.2 Td (\245S)Tj 0 Tc 1.631 0 Td (ystem Interfaces and Headers, Issue 5)Tj 0.5 Tc -4.631 -1.2 Td (\245O)Tj 0 Tc 1.892 0 Td [(pen Gr)18(oup T)92(echnical Standar)18(d, Networking Services, Issue 5.2)]TJ 0.5 Tc -1.892 -1.2 Td (\245I)Tj 0 Tc 1.443 0 Td [(SO/IEC 9899:1999, Pr)18(ogramming Languages\320C)]TJ -1.443 -1.56 Td [(In )-209(2004, )-209(the )-209(POSIX.1 )-209(speci\336cation )-209(was )-209(updated )-209(with )-209(technical )-209(corr)18(ections; )-209(mor)16(e)]TJ -1.8 -1.2 Td [(compr)18(ehensive )-356(changes )-356(wer)]TJ 0.6063 Tc 13.202 0 Td (em)Tj 0 Tc 1.968 0 Td [(ade )-356(in )-356(2008 )-356(and )-356(r)18(eleased )-356(as )-356(Issue )-356(7 )-356(of )-356(the )-356(Base)]TJ -15.17 -1.2 Td [(Speci\336cations. )-287(ISO)-287(appr)18(oved )-37(this )-37(version )-37(at )-37(the )-37(end )-37(of )-37(2008 )-37(and )-37(published )-37(it )-37(in )-37(2009 )-37(as)]TJ -0 -1.2 Td (International Standar)Tj 0.25 Tc 9.408 0 Td (dI)Tj 0 Tc 1.198 0 Td [(SO/IEC 9945:2009.)-500(It is based on several other standar)18(ds:)]TJ 0.5 Tc -8.806 -1.56 Td (\245I)Tj 0 Tc 1.443 0 Td (EEE Standar)Tj 0.25 Tc 5.504 0 Td (d1)Tj 0 Tc 1.361 0 Td (003.1, 2004 Edition)Tj 0.5 Tc -8.308 -1.2 Td (\245O)Tj 0 Tc 1.892 0 Td [(pen Gr)18(oup T)92(echnical Standar)18(d, 2006, Extended API Set, Parts 1)]TJ 27.814 0.09 Td (\320)Tj 0.583 -0.09 Td (4)Tj 0.5 Tc -30.29 -1.2 Td (\245I)Tj 0 Tc 1.443 0 Td (SO/IEC 9899:1999, including corrigenda)Tj -1.443 -1.56 Td (Figur)Tj 0.3086 Tc 2.383 0 Td (e2)Tj 0 Tc 1.288 0 Td [(.2, )-59(Figur)]TJ 0.3086 Tc 3.692 0 Td (e2)Tj 0 Tc 1.288 0 Td [(.3, )-59(and )-59(Figur)]TJ 0.3086 Tc 5.693 0 Td (e2)Tj 0 Tc 1.288 0 Td [(.4 )-59(summarize )-59(the )-59(r)19(equir)18(ed )-58(and )-58(optional )-58(headers)]TJ -17.431 -1.2 Td [(as )-411(speci\336ed )-411(by )-411(POSIX.1.)-912(Because )-411(POSIX.1 )-411(includes )-411(the )-411(ISO )-411(C )-411(standar)]TJ 0.6613 Tc 34.747 0 Td (dl)Tj 0 Tc 1.563 0 Td (ibrary)Tj -36.31 -1.2 Td [(functions, )-108(it )-108(also )-108(r)19(equir)18(es )-107(the )-107(headers )-107(listed )-107(in )-107(Figur)]TJ 0.3575 Tc 23.744 0 Td (e2)Tj 0 Tc 1.336 0 Td [(.1. )-357(All)-358(four )-107(\336gur)18(es )-107(summarize)]TJ -25.081 -1.2 Td (which headers ar)Tj 0.25 Tc 7.58 0 Td (ei)Tj 0 Tc 1.02 0 Td (ncluded in the implementations discussed in this book.)Tj -6.8 -1.2 Td [(In )-76(this )-76(text )-76(we )-76(describe )-76(the )-76(2008 )-76(edition )-76(of )-76(POSIX.1.)-576(Its )-76(interfaces )-76(ar)]TJ 0.3258 Tc 30.866 0 Td (ed)Tj 0 Tc 1.416 0 Td [(ivided )-76(into)]TJ -0.018 Tc -34.081 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(ed )-167(ones )-167(and )-167(optional )-167(ones.)-666(The )-167(optional )-167(interfaces )-167(ar)]TJ 0.4168 Tc 26.681 0 Td (ef)Tj 0 Tc 1.229 0 Td [(urther )-167(divided )-167(into )-167(40)]TJ -28.766 -1.2 Td [(sections, )-258(based )-258(on )-258(functionality)]TJ 0.7581 Tc 14.545 0 Td (.T)Tj 0 Tc 1.621 0 Td [(he )-258(sections )-258(containing )-258(nonobsolete )-258(pr)18(ogramming)]TJ -16.166 -1.2 Td [(interfaces )-226(ar)]TJ 0.4762 Tc 5.606 0 Td (es)Tj 0 Tc 1.379 0 Td [(ummarized )-226(in )-226(Figur)]TJ 0.4762 Tc 9.353 0 Td (e2)Tj 0 Tc 1.455 0 Td [(.5 )-226(with )-226(their )-226(r)18(espective )-226(option )-226(codes.)-727(Option)]TJ -17.794 -1.2 Td [(codes )-12(ar)]TJ 0.262 Tc 3.643 0 Td (et)Tj 0 Tc 1.067 0 Td [(wo- )-12(to )-12(thr)18(ee-character )-12(abbr)18(eviations )-12(that )-12(identify )-12(the )-12(interfaces )-12(that )-12(belong )-12(to)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47456 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (258)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (seteuid)Tj /TT1 1 Tf 4.478 0 Td (and)Tj /TT0 1 Tf 2.056 0 Td (setegid)Tj /TT1 1 Tf 4.478 0 Td (Functions)Tj /T1_1 1 Tf -7.412 -2.4 Td [(POSIX.1 )-322(includes )-322(the )-322(two )-322(functions)]TJ /TT2 1 Tf 17.48 0 Td (seteuid)Tj /T1_1 1 Tf 4.772 0 Td (and)Tj /TT2 1 Tf 2.266 0 Td (setegid)Tj /T1_1 1 Tf 0.8225 Tc (.T)Tj 0 Tc 5.886 0 Td [(hese )-322(functions )-322(ar)17(e)]TJ -30.404 -1.2 Td [(similar )-95(to)]TJ /TT2 1 Tf 4.638 0 Td (setuid)Tj /T1_1 1 Tf 3.946 0 Td (and)Tj /TT2 1 Tf 2.039 0 Td (setgid)Tj /T1_1 1 Tf 0.3455 Tc (,b)Tj 0 Tc 4.749 0 Td [(ut )-95(only )-95(the )-95(ef)18(fective )-95(user )-95(ID )-95(or )-95(ef)15(fective )-95(gr)18(oup )-95(ID )-95(is)]TJ -15.371 -1.2 Td (changed.)Tj /TT2 1 Tf 8.9995 0 0 8.9995 147.5919 601.8639 Tm (#include )Tj 0 -1.189 TD (int seteuid\(uid_t)Tj /T1_2 1 Tf 10.8 0 Td (uid)Tj /TT2 1 Tf (\);)Tj -10.8 -1.189 Td (int setegid\(gid_t)Tj /T1_2 1 Tf 10.8 0 Td (gid)Tj /TT2 1 Tf (\);)Tj /T1_1 1 Tf 14.451 -1.189 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT3 1 Tf 9.213 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5653.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 549.3341 Tm [(An )-91(unprivileged )-91(user )-91(can )-91(set )-91(its )-91(ef)18(fective )-91(user )-91(ID )-91(to )-91(either )-91(its )-91(r)23(eal )-91(user )-91(ID )-91(or )-91(its )-91(saved)]TJ 0 -1.2 TD [(set-user)18(-ID. )-273(For)]TJ 0.2726 Tc 7.431 0 Td (ap)Tj 0 Tc 1.374 0 Td [(rivileged )-23(user)]TJ 0.2726 Tc 6.058 0 Td (,o)Tj 0 Tc 1.069 0 Td [(nly )-23(the )-23(ef)18(fective )-23(user )-23(ID )-23(is )-23(set )-23(to)]TJ /T1_2 1 Tf 14.536 0 Td (uid)Tj /T1_1 1 Tf 0.5226 Tc (.\()Tj 0 Tc 2.44 0 Td [(This )-23(behavior)]TJ -32.906 -1.2 Td [(dif)18(fers fr)18(om that of the)]TJ /TT2 1 Tf 10.237 0 Td (setuid)Tj /T1_1 1 Tf 3.85 0 Td [(function, which changes all thr)18(ee user IDs.\))]TJ -12.287 -1.2 Td (Figur)Tj 0.3076 Tc 2.383 0 Td (e8)Tj 0 Tc 1.287 0 Td [(.19 )-58(summarizes )-58(all )-58(the )-58(functions )-58(that )-58(we\325ve )-58(described )-58(her)]TJ 0.3077 Tc 25.788 0 Td (et)Tj 0 Tc 1.113 0 Td [(hat )-58(modify )-58(the)]TJ -32.37 -1.2 Td [(thr)18(ee user IDs.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1446 3474 576 360 re S Q BT /T1_1 1 Tf -0.018 Tc 8.9984 0 0 8.9984 165.9591 368.5736 Tm (re)Tj 0 Tc 0.856 0 Td (al)Tj -1.664 -1.111 Td (user ID)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2958 3474 576 360 re S Q BT /T1_1 1 Tf 8.9978 0 0 8.9978 307.8271 368.5515 Tm [(ef)18(fective)]TJ 0.224 -1.111 Td (user ID)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 4470 3474 576 360 re S Q BT /T1_1 1 Tf 8.9973 0 0 8.9973 464.0558 368.5294 Tm (saved)Tj -1.155 -1.111 Td [(set-user)18(-ID)]TJ 7.9976 0 0 7.9976 155.7734 469.2992 Tm [(super)8(user)]TJ /TT2 1 Tf -3.125 -1.25 Td (setreuid\()Tj /T1_2 1 Tf (ruid)Tj /TT2 1 Tf (,)Tj /T1_2 1 Tf 8.323 0 Td (euid)Tj /TT2 1 Tf (\))Tj /T1_1 1 Tf 13.702 1.25 Td [(super)8(user)]TJ /TT2 1 Tf -0.869 -1.25 Td (setuid\()Tj /T1_2 1 Tf (uid)Tj /TT2 1 Tf (\))Tj /T1_1 1 Tf 19.769 1.25 Td [(super)8(user)]TJ /TT2 1 Tf -1.169 -1.25 Td (seteuid\()Tj /T1_2 1 Tf (uid)Tj /TT2 1 Tf (\))Tj ET q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 173.4 390.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 1734 3906 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1734.25 4482.25 cm 0 0 m 0 -504 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1806.25 4482.25 cm 0 0 m 571 -241 l S Q Q q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 317.4 390.6 cm 0 0 m -7.344 1.152 l -5.976 4.464 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3174 3906 cm 0 0 m -73.44 11.52 l -59.76 44.64 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2602.25 4146.25 cm 0 0 m 506 -213 l S Q Q q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 180.6 390.6 cm 0 0 m 5.904 4.464 l 7.272 1.152 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 1806 3906 cm 0 0 m 59.04 44.64 l 72.72 11.52 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3174.25 4482.25 cm 0 0 m -1302 -548 l S Q Q q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 324.6 390.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3246 3906 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 4482.25 cm 0 0 m 0 -504 l S Q Q q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 468.6 390.6 cm 0 0 m -7.344 1.152 l -5.976 4.464 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 4686 3906 cm 0 0 m -73.44 11.52 l -59.76 44.64 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3318.25 4482.25 cm 0 0 m 1302 -548 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4686.25 4482.25 cm 0 0 m -572 -241 l S Q Q q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 331.8 390.6 cm 0 0 m 5.904 4.464 l 7.272 1.152 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 3318 3906 cm 0 0 m 59.04 44.64 l 72.72 11.52 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3889.25 4146.25 cm 0 0 m -505 -213 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1950.25 4482.25 cm 0 0 m 694 -154 l S Q Q BT /T1_2 1 Tf 7.8043 -1.7343 1.7343 7.8043 223.5314 444.8603 Tm (euid)Tj ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2863.25 4279.25 cm 0 0 m 273 -61 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3355.25 4169.25 cm 0 0 m 273 -60 l S Q Q q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 454.2 390.6 cm 0 0 m -7.416 -0.216 l -6.624 3.312 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 4542 3906 cm 0 0 m -74.16 -2.16 l -66.24 33.12 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3848.25 4060.25 cm 0 0 m 624 -139 l S Q Q BT /T1_2 1 Tf 7.3674 -3.1021 3.1021 7.3674 210.5487 438.6867 Tm (euid)Tj 7.3674 3.1021 -3.1021 7.3674 289.0395 439.557 Tm (uid)Tj 17.419 -7.334 Td (uid)Tj 7.3674 -3.1021 3.1021 7.3674 349.827 443.6948 Tm (uid)Tj 7.9938 0 0 7.9938 157.4931 424.5087 Tm (ruid)Tj 21.123 0.9 Td (uid)Tj /T1_1 1 Tf -12.572 -7.925 Td (unprivileged)Tj /TT2 1 Tf 0.472 -1.25 Td (setreuid)Tj /T1_1 1 Tf 18.428 1.25 Td (unprivileged)Tj /TT2 1 Tf 0.472 -1.25 Td (setreuid)Tj ET q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 295.8 374.4 cm 0 0 m -7.416 -0.288 l -6.696 3.24 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 2958 3744 cm 0 0 m -74.16 -2.88 l -66.96 32.4 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2887.4399 3758.3999 cm 0 0 m -131.08 24.54 -264.15 36.89 -397.51 36.89 c -554.89 36.89 -711.8 19.69 -865.44 -14.4 c S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 202.2 356.4 cm 0 0 m 7.416 0.288 l 6.696 -3.24 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 2022 3564 cm 0 0 m 74.16 2.88 l 66.96 -32.4 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2092.5601 3549.6001 cm 0 0 m 131.08 -24.54 264.15 -36.89 397.51 -36.89 c 554.89 -36.89 711.8 -19.69 865.44 14.4 c S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 353.4 374.4 cm 0 0 m 6.696 3.24 l 7.416 -0.288 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 3534 3744 cm 0 0 m 66.96 32.4 l 74.16 -2.88 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4470.0098 3744 cm 0 0 m -153.64 34.09 -310.55 51.29 -467.93 51.29 c -601.28 51.29 -734.36 38.94 -865.44 14.4 c S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 317.4 347.4 cm 0 0 m -2.304 -7.056 l -5.328 -5.112 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 3174 3474 cm 0 0 m -23.04 -70.56 l -53.28 -51.12 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1733.99 3474 cm 0 0 m 147.14 -259.1 422.14 -419.18 720.11 -419.18 c 992.38 -419.18 1247.26 -285.34 1401.84 -61.2 c S Q Q BT /T1_1 1 Tf 7.9918 0 0 7.9918 222.1972 294.0359 Tm (unprivileged)Tj /TT2 1 Tf -1.748 -1.25 Td (setuid)Tj /T1_1 1 Tf 3.85 0 Td (or)Tj /TT2 1 Tf 1.191 0 Td (seteuid)Tj ET q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 331.8 347.4 cm 0 0 m 5.328 -5.112 l 2.304 -7.056 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 3318 3474 cm 0 0 m 53.28 -51.12 l 23.04 -70.56 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3356.1599 3412.8 cm 0 0 m 154.58 -224.14 409.46 -357.98 681.73 -357.98 c 979.7 -357.98 1254.7 -197.9 1401.84 61.2 c S Q Q BT /T1_1 1 Tf 7.9914 0 0 7.9914 380.4129 294.0183 Tm (unprivileged)Tj /TT2 1 Tf -1.748 -1.25 Td (setuid)Tj /T1_1 1 Tf 3.85 0 Td (or)Tj /TT2 1 Tf 1.191 0 Td (seteuid)Tj -2.635 6.488 Td (exec)Tj /T1_1 1 Tf 2.65 0 Td (of)Tj -3.33 -1.25 Td [(set-user)18(-ID)]TJ ET q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 353.4 347.4 cm 0 0 m 7.416 0 l 6.552 -3.528 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 3534 3474 cm 0 0 m 74.16 0 l 65.52 -35.28 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 3402.25 cm 0 0 m -218 54 l S Q Q q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 447 347.4 cm 0 0 m -6.552 -3.528 l -7.416 0 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 4470 3474 cm 0 0 m -65.52 -35.28 l -74.16 0 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4182.25 3402.25 cm 0 0 m 218 54 l S Q Q BT /T1_0 1 Tf 7.9904 0 0 7.9904 199.844 251.1944 Tm (Figure 8.19)Tj /T1_1 1 Tf 5.695 0 Td (Summary of all the functions that set the various user IDs)Tj /TT1 1 Tf 9.988 0 0 9.988 93.4879 215.2376 Tm [(Gr)20(oup IDs)]TJ /T1_1 1 Tf 3.6 -2.4 Td [(Everything )-187(that )-187(we\325ve )-187(said )-187(so )-187(far )-187(in )-187(this )-187(section )-187(also )-187(applies )-187(in )-187(a )-187(similar )-187(fashion )-187(to)]TJ T* [(gr)18(oup )-118(IDs.)-619(The )-119(supplementary )-119(gr)18(oup )-119(IDs )-119(ar)]TJ 0.3686 Tc 20.418 0 Td (en)Tj 0 Tc 1.43 0 Td [(ot )-119(af)18(fected )-119(by)]TJ /TT2 1 Tf 6.574 0 Td (setgid)Tj /T1_1 1 Tf (,)Tj /TT2 1 Tf 4.219 0 Td (setregid)Tj /T1_1 1 Tf 0.3686 Tc (,o)Tj 0 Tc 5.965 0 Td (r)Tj /TT2 1 Tf -38.605 -1.2 Td (setegid)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47457 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (96)Tj /T1_1 1 Tf 3 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.741 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2547.25 6670.25 cm 0 0 m 1398 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 271.4517 658.9605 Tm (Macr)Tj 5.122 Tc 2.267 0 Td (oT)Tj 0 Tc 6.191 0 Td (ype of \336le)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2547.25 6550.25 cm 0 0 m 1398 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2547.25 6530.25 cm 0 0 m 1398 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 258.689 644.9226 Tm (S_ISREG\(\))Tj /T1_1 1 Tf -0.018 Tc 7.5 0 Td (re)Tj 0 Tc 0.856 0 Td (gular \336le)Tj /TT0 1 Tf -8.356 -1.25 Td (S_ISDIR\(\))Tj /T1_1 1 Tf 7.5 0 Td [(dir)18(ectory \336le)]TJ /TT0 1 Tf -7.5 -1.25 Td (S_ISCHR\(\))Tj /T1_1 1 Tf 7.5 0 Td (character special \336le)Tj /TT0 1 Tf -7.5 -1.25 Td (S_ISBLK\(\))Tj /T1_1 1 Tf 7.5 0 Td (block special \336le)Tj /TT0 1 Tf -7.5 -1.25 Td (S_ISFIFO\(\))Tj /T1_1 1 Tf 7.5 0 Td (pipe or FIFO)Tj /TT0 1 Tf -7.5 -1.25 Td (S_ISLNK\(\))Tj /T1_1 1 Tf 7.5 0 Td (symbolic link)Tj /TT0 1 Tf -7.5 -1.25 Td (S_ISSOCK\(\))Tj /T1_1 1 Tf 7.5 0 Td (socket)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2547.25 5810.25 cm 0 0 m 1398 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3127.25 5810.25 cm 0 0 m 0 860 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3945.25 5810.25 cm 0 0 m 0 860 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2547.25 5810.25 cm 0 0 m 0 860 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 240.4727 562.8987 Tm (Figure 4.1)Tj /T1_1 1 Tf 5.195 0 Td [(File type macr)18(os in)]TJ /TT0 1 Tf 8.626 0 Td ()Tj /T1_1 1 Tf 9.9982 0 0 9.9982 147.5738 541.3026 Tm [(POSIX.1 )-259(allows )-259(implementations )-259(to )-259(r)20(epr)18(esent )-259(interpr)18(ocess )-258(communication)]TJ 34.884 0.04 Td (\()Tj 0.333 -0.04 Td (IPC)Tj 1.65 0.04 Td (\))Tj -38.667 -1.24 Td [(objects, )-310(such )-310(as )-310(message )-310(queues )-310(and )-310(semaphor)18(es, )-310(as )-310(\336les.)-813(The )-310(macr)18(os )-310(shown )-310(in)]TJ 0 -1.2 TD (Figur)Tj 0.2592 Tc 2.383 0 Td (e4)Tj 0 Tc 1.238 0 Td [(.2 )-9(allow )-9(us )-9(to )-9(determine )-9(the )-9(type )-9(of )-9(IPC )-9(object )-9(fr)18(om )-9(the)]TJ /TT0 1 Tf 24.732 0 Td (stat)Tj /T1_1 1 Tf 2.659 0 Td [(str)8(uctur)18(e. )-259(Instead)]TJ -31.013 -1.2 Td [(of )-229(taking )-229(the)]TJ /TT0 1 Tf 6.515 0 Td (st_mode)Tj /T1_1 1 Tf 4.679 0 Td [(member )-229(as )-229(an )-229(ar)18(gument, )-229(these )-229(macr)18(os )-229(dif)18(fer )-229(fr)18(om )-229(those )-229(in)]TJ -11.194 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e4)Tj 0 Tc 1.229 0 Td [(.1 in that their ar)18(gument is a pointer to the)]TJ /TT0 1 Tf 18.93 0 Td (stat)Tj /T1_1 1 Tf 2.65 0 Td [(str)8(uctur)18(e.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2442.25 4794.25 cm 0 0 m 1608 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 268.0956 471.2869 Tm (Macr)Tj 5.832 Tc 2.267 0 Td (oT)Tj 0 Tc 6.901 0 Td (ype of object)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2442.25 4674.25 cm 0 0 m 1608 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2442.25 4654.25 cm 0 0 m 1608 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 248.1375 457.2628 Tm (S_TYPEISMQ\(\))Tj /T1_1 1 Tf 9.3 0 Td (message queue)Tj /TT0 1 Tf -9.3 -1.25 Td (S_TYPEISSEM\(\))Tj /T1_1 1 Tf 9.3 0 Td [(semaphor)18(e)]TJ /TT0 1 Tf -9.3 -1.25 Td (S_TYPEISSHM\(\))Tj /T1_1 1 Tf 9.3 0 Td [(shar)18(ed memory object)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2442.25 4334.25 cm 0 0 m 1608 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3166.25 4334.25 cm 0 0 m 0 460 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4050.25 4334.25 cm 0 0 m 0 460 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2442.25 4334.25 cm 0 0 m 0 460 l S Q Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 240.2975 415.2505 Tm (Figure 4.2)Tj /T1_1 1 Tf 5.195 0 Td [(IPC type macr)18(os in)]TJ /TT0 1 Tf 8.659 0 Td ()Tj /T1_1 1 Tf 9.9964 0 0 9.9964 129.5539 393.6583 Tm [(Message )-64(queues, )-64(semaphor)18(es, )-64(and )-64(shar)18(ed )-64(memory )-64(objects )-64(ar)]TJ 0.3139 Tc 27.239 0 Td (ed)Tj 0 Tc 1.404 0 Td [(iscussed )-64(in )-64(Chapter )-64(15.)]TJ -28.643 -1.2 Td (However)Tj 0.3793 Tc 4.056 0 Td (,n)Tj 0 Tc 1.211 0 Td [(one )-129(of )-129(the )-129(various )-129(implementations )-129(of )-129(the )-129(UNIX )-129(System )-129(discussed )-129(in )-129(this)]TJ -5.267 -1.2 Td [(book r)18(epr)18(esent these objects as \336les.)]TJ /TT1 1 Tf -3.6 -2.4 Td (Example)Tj /T1_1 1 Tf 3.6 -2.16 Td [(The pr)18(ogram in Figur)]TJ 0.25 Tc 9.538 0 Td (e4)Tj 0 Tc 1.229 0 Td (.3 prints the type of \336le for each command)Tj 18.7 0.09 Td (-)Tj 0.333 -0.09 Td [(line ar)18(gument.)]TJ ET q 0.099964 0 0 0.099964 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3170.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9962 0 0 8.9962 129.5456 307.3699 Tm (#include "apue.h")Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-4800(i;)]TJ 0 -1.189 TD (struct stat buf;)Tj T* [(char )-4200(*ptr;)]TJ 0 -1.783 TD (for \(i = 1; i < argc; i++\) {)Tj 2.4 -1.189 Td (printf\("%s: ", argv[i]\);)Tj 0 -1.189 TD (if \(lstat\(argv[i], &buf\) < 0\) {)Tj 2.4 -1.189 Td (err_ret\("lstat error"\);)Tj 0 -1.189 TD (continue;)Tj -2.4 -1.189 Td (})Tj T* (if \(S_ISREG\(buf.st_mode\)\))Tj 2.4 -1.189 Td (ptr = "regular";)Tj -2.4 -1.189 Td (else if \(S_ISDIR\(buf.st_mode\)\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47458 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.2)]TJ 33.344 0 Td [(UNIX )-250(Domain )-250(Sockets)]TJ /T1_1 1 Tf 12.489 0 Td (633)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD (#define MAXMSZ 512)Tj 0 -1.902 TD (struct mymesg {)Tj 2.4 -1.189 Td (long mtype;)Tj 0 -1.189 TD (char mtext[MAXMSZ];)Tj -2.4 -1.189 Td (};)Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td (key_t key;)Tj T* (long qid;)Tj T* (size_t nbytes;)Tj T* (struct mymesg m;)Tj 0 -1.902 TD (if \(argc != 3\) {)Tj 2.4 -1.189 Td (fprintf\(stderr, "usage: sendmsg KEY message\\n"\);)Tj 0 -1.189 TD (exit\(1\);)Tj -2.4 -1.189 Td (})Tj T* (key = strtol\(argv[1], NULL, 0\);)Tj T* (if \(\(qid = msgget\(key, 0\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("can\325t open queue key %s", argv[1]\);)Tj -2.4 -1.189 Td (memset\(&m, 0, sizeof\(m\)\);)Tj T* (strncpy\(m.mtext, argv[2], MAXMSZ-1\);)Tj T* (nbytes = strlen\(m.mtext\);)Tj T* (m.mtype = 1;)Tj T* (if \(msgsnd\(qid, &m, nbytes, 0\) < 0\))Tj 2.4 -1.189 Td (err_sys\("can\325t send message"\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3294.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 230.4043 313.3804 Tm (Figure 17.4)Tj /T1_0 1 Tf 5.695 0 Td (Post a message to an XSI message queue)Tj 9.9988 0 0 9.9988 147.5825 289.3833 Tm [(This )-60(pr)18(ogram )-60(takes )-60(two )-60(ar)18(guments: )-60(the )-60(key )-60(associated )-60(with )-60(the )-60(queue )-60(and )-60(a )-60(string)]TJ -1.8 -1.2 Td [(to )-77(be )-77(sent )-77(as )-77(the )-77(body )-77(of )-77(the )-77(message.)-577(When )-77(we )-77(send )-77(messages )-77(to )-77(the )-77(server)67(,)-328(it)-328(p)1(rints)]TJ 0 -1.2 TD [(them as shown below)92(.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5825 251.898 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./pollmsg &)Tj /T1_2 1 Tf 23.6 0 Td [(run the server in the backgr)18(ound)]TJ /TT0 1 Tf -24.8 -1.189 Td ([1] 12814)Tj 0.6 Tc 0 -1.189 TD ($q)Tj 0 Tc 1.8 0 Td (ueue ID 0 is 196608)Tj -1.8 -1.189 Td (queue ID 1 is 196609)Tj T* (queue ID 2 is 196610)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (./sendmsg 0x123 "hello, world")Tj /T1_2 1 Tf 23.6 0 Td (send a message to the \336rst queue)Tj /TT0 1 Tf -24.8 -1.189 Td (queue id 196608, message hello, world)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (./sendmsg 0x124 "just a test")Tj /T1_2 1 Tf 23.6 0 Td (send a message to the second queue)Tj /TT0 1 Tf -24.8 -1.189 Td (queue id 196609, message just a test)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (./sendmsg 0x125 "bye")Tj /T1_2 1 Tf 23.6 0 Td (send a message to the third queue)Tj /TT0 1 Tf -24.8 -1.189 Td (queue id 196610, message bye)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1443.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47459 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (658)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm [(char )-1800(*ptr,)-600(*argv[MAXARGC];)]TJ 0 -1.189 TD [(int )-2400(argc;)]TJ 0 -1.902 TD [(if \(strtok\(buf, WHITE\) == NULL\))-3000(/* an argv[0] is required */)]TJ 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td (argv[argc = 0] = buf;)Tj 0 -1.189 TD (while \(\(ptr = strtok\(NULL, WHITE\)\) != NULL\) {)Tj 2.4 -1.189 Td [(if \(++argc >= MAXARGC-1\))-2400(/* -1 for room for NULL at end */)]TJ 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td (argv[argc] = ptr;)Tj -2.4 -1.189 Td (})Tj T* (argv[++argc] = NULL;)Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*S)Tj 0 Tc 1.8 0 Td (ince argv[] pointers point into the user\325s buf[],)Tj 0.6 Tc -1.8 -1.189 Td (*u)Tj 0 Tc 1.8 0 Td (ser\325s function can just copy the pointers, even)Tj 0.6 Tc -1.8 -1.189 Td (*t)Tj 0 Tc 1.8 0 Td (hough argv[] array will disappear on return.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (return\(\(*optfunc\)\(argc, argv\)\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4707.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 257.0651 454.7044 Tm (Figure 17.23)Tj /T1_1 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (buf_args)Tj /T1_1 1 Tf 5.05 0 Td (function)Tj 9.9988 0 0 9.9988 147.5827 430.7073 Tm [(The )-156(server)-74(\325s )-156(function )-156(that )-156(is )-156(called )-156(by)]TJ /TT0 1 Tf 17.912 0 Td (buf_args)Tj /T1_1 1 Tf 5.206 0 Td (is)Tj /TT0 1 Tf 1.121 0 Td (cli_args)Tj /T1_1 1 Tf 5.206 0 Td (\(Figur)Tj 0.4064 Tc 2.716 0 Td (e1)Tj 0 Tc 1.385 0 Td [(7.24\). )-406(It)]TJ -35.348 -1.2 Td [(veri\336es )-34(that )-34(the )-34(client )-34(sent )-34(the )-34(right )-34(number )-34(of )-34(ar)19(guments )-34(and )-34(stor)18(es )-34(the )-34(pathname )-34(and)]TJ 0 -1.2 TD (open mode in global variables.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3995.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 389.9878 Tm [(#include )-1800("opend.h")]TJ 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*T)Tj 0 Tc 1.8 0 Td (his function is called by buf_args\(\), which is called by)Tj 0.6 Tc -1.8 -1.189 Td (*h)Tj 0 Tc 1.8 0 Td [(andle_request\(\). )-600(buf_args\(\))-600(has broken up the client\325s)]TJ 0.6 Tc -1.8 -1.189 Td (*b)Tj 0 Tc 1.8 0 Td (uffer into an argv[]-style array, which we now process.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (int)Tj 0 -1.189 TD (cli_args\(int argc, char **argv\))Tj T* ({)Tj 2.4 -1.189 Td (if \(argc != 3 || strcmp\(argv[0], CL_OPEN\) != 0\) {)Tj 2.4 -1.189 Td (strcpy\(errmsg, "usage: \\n"\);)Tj 0 -1.189 TD (return\(-1\);)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD [(pathname = argv[1];)-3000(/* save ptr to pathname to open */)]TJ T* (oflag = atoi\(argv[2]\);)Tj T* (return\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2076.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 257.0343 191.591 Tm (Figure 17.24)Tj /T1_1 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (cli_args)Tj /T1_1 1 Tf 5.05 0 Td (function)Tj 9.9976 0 0 9.9976 147.565 167.5968 Tm [(This )-24(completes )-24(the )-24(open )-24(server )-24(that )-24(is )-24(invoked )-24(by )-24(a)]TJ /TT0 1 Tf 23.146 0 Td (fork)Tj /T1_1 1 Tf 2.674 0 Td (and)Tj /TT0 1 Tf 1.967 0 Td (exec)Tj /T1_1 1 Tf 2.674 0 Td [(fr)18(om )-24(the )-24(client.)]TJ 0.3835 Tc -32.262 -1.2 Td (As)Tj 0 Tc 1.586 0 Td [(ingle )-133(fd-pipe )-133(is )-133(cr)17(eated )-133(befor)]TJ 0.3834 Tc 13.201 0 Td (et)Tj 0 Tc 1.188 0 Td (he)Tj /TT0 1 Tf 1.444 0 Td (fork)Tj /T1_1 1 Tf 2.783 0 Td [(and )-133(is )-133(used )-133(to )-133(communicate )-133(between )-133(the)]TJ -20.203 -1.2 Td (client and the server)Tj 0.5 Tc 8.906 0 Td (.W)Tj 0 Tc 1.695 0 Td (ith this arrangement, we have one server per client.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47460 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.5)]TJ 31.183 0 Td [(An )-250(Open )-250(Server)]TJ 0.5 Tc 7.572 0 Td (,V)Tj 0 Tc 1.361 0 Td [(ersion )-250(1)]TJ /T1_1 1 Tf 5.717 0 Td (657)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(#include )-1800("opend.h")]TJ 0 -1.189 TD [(#include )-1800()]TJ 0 -1.902 TD (void)Tj 0 -1.189 TD (handle_request\(char *buf, int nread, int fd\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(newfd;)]TJ 0 -1.902 TD (if \(buf[nread-1] != 0\) {)Tj 2.4 -1.189 Td (snprintf\(errmsg, MAXLINE-1,)Tj 1.2 -1.189 Td ("request not null terminated: %*.*s\\n", nread, nread, buf\);)Tj -1.2 -1.189 Td (send_err\(fd, -1, errmsg\);)Tj 0 -1.189 TD (return;)Tj -2.4 -1.189 Td (})Tj T* [(if \(buf_args\(buf, cli_args\) < 0\) {)-1200(/* parse args & set options */)]TJ 2.4 -1.189 Td (send_err\(fd, -1, errmsg\);)Tj T* (return;)Tj -2.4 -1.189 Td (})Tj T* (if \(\(newfd = open\(pathname, oflag\)\) < 0\) {)Tj 2.4 -1.189 Td (snprintf\(errmsg, MAXLINE-1, "can\325t open %s: %s\\n", pathname,)Tj 1.2 -1.189 Td (strerror\(errno\)\);)Tj -1.2 -1.189 Td (send_err\(fd, -1, errmsg\);)Tj T* (return;)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD [(if \(send_fd\(fd, newfd\) < 0\))-3000(/* send the descriptor */)]TJ 2.4 -1.189 Td (err_sys\("send_fd error"\);)Tj -2.4 -1.189 Td [(close\(newfd\); )-3600(/*)-600(we\325re done with descriptor */)]TJ -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3743.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 224.5411 358.315 Tm (Figure 17.22)Tj /T1_0 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (handle_request)Tj /T1_0 1 Tf 8.65 0 Td (function, version 1)Tj 9.9988 0 0 9.9988 147.5827 334.3179 Tm [(The )-39(client\325s )-39(r)18(equest )-39(is )-39(a )-39(null-terminated )-39(string )-39(of )-39(white-space-separated )-39(ar)17(guments.)]TJ -1.8 -1.2 Td [(The )-147(function)]TJ /TT0 1 Tf 6.175 0 Td (buf_args)Tj /T1_0 1 Tf 5.197 0 Td [(in )-147(Figur)]TJ 0.3969 Tc 3.653 0 Td (e1)Tj 0 Tc 1.376 0 Td [(7.23 )-147(br)18(eaks )-147(this )-147(string )-147(into )-147(a )-147(standar)19(d)]TJ /TT0 1 Tf 17.79 0 Td (argv)Tj /T1_0 1 Tf (-style)Tj -34.191 -1.2 Td [(ar)18(gument )-163(list )-163(and )-163(calls )-163(a )-163(user )-163(function )-163(to )-163(pr)18(ocess )-163(the )-163(ar)21(guments. )-413(W)]TJ 0.4126 Tc 31.621 0 Td (eu)Tj 0 Tc 1.495 0 Td [(se )-163(the )-163(ISO )-163(C)]TJ -33.115 -1.2 Td (function)Tj /TT0 1 Tf 3.957 0 Td (strtok)Tj /T1_0 1 Tf 3.85 0 Td [(to tokenize the string into separate ar)18(guments.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2911.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 281.6063 Tm (#include "apue.h")Tj 0 -1.902 TD [(#define MAXARGC)-3000(50 )-600(/*)-600(max number of arguments in buf */)]TJ 0 -1.189 TD (#define WHITE)Tj 0.6 Tc 9.6 0 Td ("\\)Tj 0 Tc 1.8 0 Td (t\\n" /* white space for tokenizing arguments */)Tj -11.4 -1.902 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*b)Tj 0 Tc 1.8 0 Td [(uf[] contains white-space-separated arguments.)-1200(We convert it to an)]TJ 0.6 Tc -1.8 -1.189 Td (*a)Tj 0 Tc 1.8 0 Td (rgv-style array of pointers, and call the user\325s function \(optfunc\)\ )Tj -1.8 -1.189 Td [(*)-600(to)-600(process the array.)-1200(We return -1 if there\325s a problem parsing buf,)]TJ 0.6 Tc T* (*e)Tj 0 Tc 1.8 0 Td [(lse we return whatever optfunc\(\) returns.)-1200(Note that user\325s buf[])]TJ 0.6 Tc -1.8 -1.189 Td (*a)Tj 0 Tc 1.8 0 Td (rray is modified \(nulls placed after each token\).)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (int)Tj T* (buf_args\(char *buf, int \(*optfunc\)\(int, char **\)\))Tj T* ({)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47461 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (380)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(It )-131(operates )-131(in )-131(a )-131(similar )-131(manner )-131(to )-131(the)]TJ /TT0 1 Tf 17.588 0 Td (psignal)Tj /T1_1 1 Tf 4.581 0 Td [(function. )-381(Although)-381(this )-131(function )-131(has)]TJ -22.169 -1.2 Td [(access )-60(to )-60(mor)]TJ 0.3101 Tc 6.013 0 Td (ei)Tj 0 Tc 1.08 0 Td [(nformation )-60(than )-60(just )-60(the )-60(signal )-60(number)]TJ 0.3102 Tc 17.564 0 Td (,p)Tj 0 Tc 1.161 0 Td [(latforms )-60(vary )-60(in )-60(exactly )-60(what)]TJ -25.818 -1.2 Td (additional information is printed.)Tj 1.8 -1.2 Td [(If )-94(you )-94(only )-94(need )-94(the )-94(string )-94(description )-94(of )-94(the )-94(signal )-94(and )-94(don\325t )-94(necessarily )-94(want )-94(to)]TJ -1.8 -1.2 Td [(write )-33(it )-33(to )-33(standar)]TJ 0.2835 Tc 7.984 0 Td (de)Tj 0 Tc 1.374 0 Td [(rr)18(or )-34(\(you )-34(might )-34(want )-34(to )-34(write )-34(it )-34(to )-34(a )-34(log )-34(\336le, )-34(for )-34(example\), )-34(you )-34(can)]TJ -9.358 -1.2 Td [(use )-97(the)]TJ /TT0 1 Tf 3.588 0 Td (strsignal)Tj /T1_1 1 Tf 5.747 0 Td [(function. )-347(This)-348(function )-97(is )-97(similar )-97(to)]TJ /TT0 1 Tf 16.569 0 Td (strerror)Tj /T1_1 1 Tf 5.147 0 Td [(\(also )-97(described )-97(in)]TJ -31.051 -1.2 Td (Section 1.7\).)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5917 577.8653 Tm (#include )Tj 0 -1.902 TD (char *strsignal\(int)Tj /T1_2 1 Tf 12 0 Td (signo)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 5.283 -1.902 Td (Returns: a pointer to a string describing the signal)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5391.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 523.1972 Tm [(Given )-80(a )-80(signal )-80(number)75(,)]TJ /TT0 1 Tf 10.814 0 Td (strsignal)Tj /T1_1 1 Tf 5.73 0 Td [(will )-80(r)18(eturn )-80(a )-80(string )-80(that )-80(describes )-80(the )-80(signal.)-578(This)]TJ -16.544 -1.2 Td [(string can be used by applications to print err)18(or messages about signals r)18(eceived.)]TJ 7.999 0 0 7.999 183.5779 491.2011 Tm [(All )-53(the )-53(platforms )-53(discussed )-53(in )-53(this )-53(book )-53(pr)21(ovide )-52(the)]TJ /TT0 1 Tf 23.634 0 Td (psignal)Tj /T1_1 1 Tf 4.502 0 Td (and)Tj /TT0 1 Tf 1.996 0 Td (strsignal)Tj /T1_1 1 Tf 5.702 0 Td [(functions, )-52(but)]TJ -35.835 -1.25 Td [(dif)18(fer)18(ences )-22(do )-22(occur)]TJ 0.5216 Tc 8.872 0 Td (.O)Tj 0.2716 Tc 1.558 0 Td (nS)Tj 0 Tc 1.379 0 Td [(olaris )-22(10,)]TJ /TT0 1 Tf 4.24 0 Td (strsignal)Tj /T1_1 1 Tf 5.672 0 Td [(will )-22(r)18(eturn )-22(a )-22(null )-22(pointer )-22(if )-22(the )-22(signal )-22(number)]TJ -21.72 -1.25 Td [(is )-130(invalid, )-130(wher)17(eas )-130(Fr)18(eeBSD )-130(8.0, )-130(Linux )-130(3.2.0, )-130(and )-130(Mac )-130(OS )-130(X )-130(10.6.8 )-130(r)18(eturn )-130(a )-130(string )-130(indicating)]TJ 0 -1.25 TD [(that the signal number is unr)18(ecognized.)]TJ 0 -2 TD (Only Linux 3.2.0 and Solaris 10 support the)Tj /TT0 1 Tf 19.366 0 Td (psiginfo)Tj /T1_1 1 Tf 5.05 0 Td (function.)Tj 9.9988 0 0 9.9988 147.5817 424.2091 Tm [(Solaris )-14(pr)18(ovides )-14(a )-14(couple )-14(of )-14(functions )-14(to )-14(map )-14(a )-14(signal )-14(number )-14(to )-14(a )-14(signal )-14(name, )-14(and)]TJ -1.8 -1.2 Td (vice versa.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5817 393.1128 Tm (#include )Tj 0 -2.021 TD (int sig2str\(int)Tj /T1_2 1 Tf 9.6 0 Td (signo)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.967 0 Td (har *)Tj /T1_2 1 Tf (str)Tj /TT0 1 Tf (\);)Tj -13.567 -2.021 Td (int str2sig\(const char *)Tj /T1_2 1 Tf (str)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 17.311 0 Td (nt *)Tj /T1_2 1 Tf (signop)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 7.94 -2.021 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT1 1 Tf 9.213 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3341.25 cm 0 0 m 0 680 l 3900 680 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 318.1327 Tm [(These )-104(functions )-104(ar)]TJ 0.3539 Tc 8.293 0 Td (eu)Tj 0 Tc 1.436 0 Td [(seful )-104(when )-104(writing )-104(interactive )-104(pr)18(ograms )-104(that )-104(need )-104(to )-104(accept )-104(and)]TJ -9.729 -1.2 Td (print signal names and numbers.)Tj 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.031 0 Td (sig2str)Tj /T1_1 1 Tf 4.557 0 Td [(function )-107(translates )-107(the )-107(given )-107(signal )-107(number )-107(into )-107(a )-107(string )-107(and )-107(stor)17(es)]TJ -8.388 -1.2 Td [(the )-78(r)18(esult )-78(in )-78(the )-78(memory )-78(pointed )-78(to )-78(by)]TJ /T1_2 1 Tf 17.932 0 Td (str)Tj /T1_1 1 Tf 0.5782 Tc (.T)Tj 0 Tc 2.552 0 Td [(he )-78(caller )-78(must )-78(ensur)]TJ 0.3282 Tc 9.147 0 Td (et)Tj 0 Tc 1.133 0 Td [(hat )-78(the )-78(memory )-78(is)]TJ -30.764 -1.2 Td [(lar)18(ge )-177(enough )-177(to )-177(hold )-177(the )-177(longest )-177(string, )-177(including )-177(the )-177(terminating )-177(null )-177(byte.)-683(Solaris)]TJ 0 -1.2 Td [(pr)18(ovides )-187(the )-187(constant)]TJ /TT0 1 Tf 10.321 0 Td (SIG2STR_MAX)Tj /T1_1 1 Tf 7.037 0 Td (in)Tj /TT0 1 Tf 1.31 0 Td ()Tj /T1_1 1 Tf 6.437 0 Td [(to )-187(de\336ne )-187(the )-187(maximum )-187(string)]TJ -25.105 -1.2 Td [(length. )-345(The)-346(string )-95(consists )-95(of )-95(the )-95(signal )-95(name )-95(without )-95(the )-95(\324)35(\324SIG\325)]TJ 0.3453 Tc 29.112 0 Td (\325p)Tj -0.018 Tc 1.224 0 Td (re)Tj 0 Tc 0.856 0 Td [(\336x. )-345(For)-346(example,)]TJ -31.192 -1.2 Td (translating)Tj /TT0 1 Tf 5.098 0 Td (SIGKILL)Tj /T1_1 1 Tf 4.525 0 Td [(would )-75(r)18(esult )-75(in )-75(the )-75(string )-75(\324)38(\324KILL)]TJ -0.037 Tc 14.573 0 Td [(\325\325 )-149(b)]TJ 0 Tc 1.397 0 Td [(eing )-75(stor)18(ed )-75(in )-75(the)]TJ /T1_2 1 Tf 8.23 0 Td (str)Tj /T1_1 1 Tf 1.436 0 Td (memory)Tj -35.258 -1.2 Td [(buf)18(fer)74(.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.002 0 Td (str2sig)Tj /T1_1 1 Tf 4.528 0 Td [(function )-78(translates )-78(the )-78(given )-78(name )-78(into )-78(a )-78(signal )-78(number)]TJ 0.5784 Tc 25.194 0 Td (.T)Tj 0 Tc 1.441 0 Td [(he )-78(signal)]TJ -34.966 -1.2 Td [(number )-51(is )-51(stor)18(ed )-51(in )-51(the )-51(integer )-51(pointed )-51(to )-51(by)]TJ /T1_2 1 Tf 20.467 0 Td (signop)Tj /T1_1 1 Tf 0.551 Tc (.T)Tj 0 Tc 4.081 0 Td [(he )-51(name )-51(can )-51(be )-51(either )-51(the )-51(signal)]TJ -24.548 -1.2 Td [(name )-68(without )-68(the )-68(\324)38(\324SIG\325)]TJ 0.3178 Tc 10.677 0 Td (\325p)Tj -0.018 Tc 1.197 0 Td (re)Tj 0 Tc 0.856 0 Td [(\336x )-68(or )-68(a )-68(string )-68(r)19(epr)18(esentation )-68(of )-68(the )-68(decimal )-68(signal )-68(number)]TJ -12.73 -1.2 Td [(\(i.e., \324)37(\3249\325)37(\325\).)]TJ 1.8 -1.2 Td [(Note )-251(that)]TJ /TT0 1 Tf 4.918 0 Td (sig2str)Tj /T1_1 1 Tf 4.701 0 Td (and)Tj /TT0 1 Tf 2.194 0 Td (str2sig)Tj /T1_1 1 Tf 4.701 0 Td [(depart )-251(fr)18(om )-251(common )-251(practice )-251(and )-251(don\325t )-251(set)]TJ /TT0 1 Tf -18.314 -1.2 Td (errno)Tj /T1_1 1 Tf 3.25 0 Td (when they fail.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47462 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (830)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(549 )-1200(/*)]TJ 0 -1.189 TD [(550 )-1800(*)-600(Deal with signals.)]TJ T* [(551 )-1800(*)]TJ T* [(552 )-1800(*)-600(LOCKING: acquires and releases configlock.)]TJ T* [(553 )-1800(*/)]TJ 0 -1.189 TD [(554 )-1200(void)-600(*)]TJ 0 -1.189 TD [(555 )-1200(signal_thread\(void)-600(*arg\))]TJ T* [(556 )-1200({)]TJ T* [(557 )-2400(int )-2400(err,)-600(signo;)]TJ 0 -2.14 TD [(558 )-2400(for)-600(\(;;\) {)]TJ 0 -1.189 TD [(559 )-4800(err)]TJ 0.6 Tc 9.6 0 Td (=s)Tj 0 Tc 1.8 0 Td (igwait\(&mask, &signo\);)Tj -11.4 -1.189 Td [(560 )-4800(if)-600(\(err != 0\))]TJ T* (561 )Tj 9.6 0 Td [(log_quit\("sigwait)-600(failed: %s", strerror\(err\)\);)]TJ -9.6 -1.189 Td [(562 )-4800(switch)-600(\(signo\) {)]TJ T* [(563 )-4800(case)-600(SIGHUP:)]TJ T* (564 )Tj 9.6 0 Td (/*)Tj -9.6 -1.189 Td (565 )Tj 10.2 0 Td [(*)-600(Schedule to re-read the configuration file.)]TJ -10.2 -1.189 Td (566 )Tj 10.2 0 Td (*/)Tj -10.2 -1.189 Td (567 )Tj 9.6 0 Td (pthread_mutex_lock\(&configlock\);)Tj -9.6 -1.189 Td (568 )Tj 9.6 0 Td (reread)Tj 0.6 Tc 4.2 0 Td (=1)Tj 0 Tc 1.8 0 Td (;)Tj -15.6 -1.189 Td (569 )Tj 9.6 0 Td (pthread_mutex_unlock\(&configlock\);)Tj -9.6 -1.189 Td (570 )Tj 9.6 0 Td (break;)Tj -9.6 -2.14 Td [(571 )-4800(case)-600(SIGTERM:)]TJ T* (572 )Tj 9.6 0 Td (kill_workers\(\);)Tj -9.6 -1.189 Td (573 )Tj 9.6 0 Td [(log_msg\("terminate)-600(with signal %s", strsignal\(signo\)\);)]TJ -9.6 -1.189 Td (574 )Tj 9.6 0 Td (exit\(0\);)Tj -9.6 -2.14 Td [(575 )-4800(default:)]TJ T* (576 )Tj 9.6 0 Td (kill_workers\(\);)Tj -9.6 -1.189 Td (577 )Tj 9.6 0 Td [(log_quit\("unexpected)-600(signal %d", signo\);)]TJ -9.6 -1.189 Td [(578 )-4800(})]TJ T* [(579 )-2400(})]TJ T* [(580 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2973.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 273.2852 Tm [([549 )167(\320 )167(562])-668(The)]TJ /TT0 1 Tf 7.073 0 Td (signal_thread)Tj /T1_1 1 Tf 8.199 0 Td [(function )-149(is )-149(r)8(un )-149(by )-149(the )-149(thr)18(ead )-149(that )-149(is )-149(r)16(esponsible )-149(for)]TJ -10.272 -1.2 Td [(handling )-181(signals.)-681(In )-181(the)]TJ /TT0 1 Tf 11.593 0 Td (main)Tj /T1_1 1 Tf 2.831 0 Td [(function, )-181(we )-181(initialized )-181(the )-181(signal )-181(mask )-181(to)]TJ -14.424 -1.2 Td (include)Tj /TT0 1 Tf 3.69 0 Td (SIGHUP)Tj /T1_1 1 Tf 3.989 0 Td (and)Tj /TT0 1 Tf 2.082 0 Td (SIGTERM)Tj /T1_1 1 Tf 0.6389 Tc (.H)Tj 0 Tc 5.921 0 Td [(er)18(e, )-139(we )-139(call)]TJ /TT0 1 Tf 5.591 0 Td (sigwait)Tj /T1_1 1 Tf 4.589 0 Td [(to )-139(wait )-139(for )-139(one )-139(of)]TJ -25.861 -1.2 Td (these signals to occur)Tj 0.5 Tc 9.338 0 Td (.I)Tj 0 Tc 1.087 0 Td (f)Tj /TT0 1 Tf 0.583 0 Td (sigwait)Tj /T1_1 1 Tf 4.45 0 Td [(fails, we log an err)18(or message and exit.)]TJ -20.458 -1.6 Td [([563 )167(\320 )167(570])-668(If )-98(we )-98(r)18(eceive)]TJ /TT0 1 Tf 11.14 0 Td (SIGHUP)Tj /T1_1 1 Tf [(,)-348(we)-348(acquir)]TJ 0.3478 Tc 8.634 0 Td (et)Tj 0 Tc 1.153 0 Td (he)Tj /TT0 1 Tf 1.409 0 Td (configlock)Tj /T1_1 1 Tf 6.348 0 Td [(mutex, )-98(set )-98(the)]TJ /TT0 1 Tf 6.716 0 Td (reread)Tj /T1_1 1 Tf -30.4 -1.2 Td [(variable )-51(to )-51(1, )-51(and )-51(r)18(elease )-51(the )-51(mutex.)-552(This )-51(tells )-51(the )-51(printer )-51(daemon )-51(to )-51(r)17(er)18(ead)]TJ 0 -1.2 TD [(the con\336guration \336le on the next iteration in its pr)18(ocessing loop.)]TJ -5 -1.6 Td [([571 )167(\320 )167(574])-668(If )-335(we )-335(r)17(eceive)]TJ /TT0 1 Tf 11.853 0 Td (SIGTERM)Tj /T1_1 1 Tf 0.5853 Tc (,w)Tj 0.5854 Tc 5.869 0 Td (ec)Tj 0 Tc 1.508 0 Td (all)Tj /TT0 1 Tf 1.667 0 Td (kill_workers)Tj /T1_1 1 Tf 7.785 0 Td [(to )-335(kill )-335(all )-335(the )-335(worker)]TJ -23.683 -1.2 Td [(thr)18(eads, log a message, and call)]TJ /TT0 1 Tf 14.156 0 Td (exit)Tj /T1_1 1 Tf 2.65 0 Td [(to terminate the pr)18(ocess.)]TJ -21.806 -1.6 Td [([575 )167(\320 )167(580])-668(If )-92(we )-92(r)18(eceive )-92(a )-92(signal )-92(we )-92(ar)]TJ 0.3419 Tc 17.482 0 Td (en)Tj 0 Tc 1.403 0 Td [(ot )-92(expecting, )-92(we )-92(kill )-92(the )-92(worker )-92(thr)18(eads )-92(and)]TJ -13.885 -1.2 Td (call)Tj /TT0 1 Tf 1.776 0 Td (log_quit)Tj /T1_1 1 Tf 5.05 0 Td [(to log an err)18(or message and exit.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47463 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (840)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (853 )Tj 9.6 0 Td (/*)Tj -9.6 -1.189 Td (854 )Tj 10.2 0 Td [(*)-600(HTTP request was okay, but still need to check)]TJ -10.2 -1.189 Td (855 )Tj 10.2 0 Td [(*)-600(IPP status.)-1200(Search for the Content-Length.)]TJ -10.2 -1.189 Td (856 )Tj 10.2 0 Td (*/)Tj -10.2 -1.189 Td (857 )Tj 9.6 0 Td [(i)-600(=)-600(cp)-600(-)-600(bp;)]TJ -9.6 -1.189 Td (858 )Tj 9.6 0 Td [(for)-600(\(;;\) {)]TJ -9.6 -1.189 Td (859 )Tj 12 0 Td [(while)-600(\(*cp != \325C\325 && *cp != \325c\325 && i < datsz\) {)]TJ -12 -1.189 Td (860 )Tj 14.4 0 Td (cp++;)Tj -14.4 -1.189 Td (861 )Tj 14.4 0 Td (i++;)Tj -14.4 -1.189 Td (862 )Tj 12 0 Td (})Tj -12 -1.189 Td (863 )Tj 12 0 Td [(if)-600(\(i >= datsz\) {)-1800(/* get more header */)]TJ -12 -1.189 Td (864 )Tj 14.4 0 Td [(if)-600(\(\(nr = readmore\(sfd, &bp, i, &bufsz\)\) < 0\) {)]TJ -14.4 -1.189 Td (865 )Tj 16.8 0 Td [(goto)-600(out;)]TJ -16.8 -1.189 Td (866 )Tj 14.4 0 Td [(})-600(else {)]TJ -14.4 -1.189 Td (867 )Tj 16.8 0 Td (cp)Tj 0.6 Tc 1.8 0 Td (=&)Tj 0 Tc 1.8 0 Td (bp[i];)Tj -20.4 -1.189 Td (868 )Tj 16.8 0 Td [(datsz)-600(+= nr;)]TJ -16.8 -1.189 Td (869 )Tj 14.4 0 Td (})Tj -14.4 -1.189 Td (870 )Tj 12 0 Td (})Tj -12 -2.021 Td (871 )Tj 12 0 Td [(if)-600(\(strncasecmp\(cp, "Content-Length:", 15\) == 0\) {)]TJ -12 -1.189 Td (872 )Tj 14.4 0 Td [(cp)-600(+= 15;)]TJ -14.4 -1.189 Td (873 )Tj 14.4 0 Td [(while)-600(\(isspace\(\(int\)*cp\)\))]TJ -14.4 -1.189 Td (874 )Tj 16.8 0 Td (cp++;)Tj -16.8 -1.189 Td (875 )Tj 14.4 0 Td (contentlen)Tj 0.6 Tc 6.6 0 Td (=c)Tj 0 Tc 1.8 0 Td (p;)Tj -22.8 -1.189 Td (876 )Tj 14.4 0 Td [(while)-600(\(isdigit\(\(int\)*cp\)\))]TJ -14.4 -1.189 Td (877 )Tj 16.8 0 Td (cp++;)Tj -16.8 -1.189 Td (878 )Tj 14.4 0 Td (*cp++)Tj 0.6 Tc 3.6 0 Td (=\325)Tj 0 Tc 1.8 0 Td (\\0\325;)Tj -19.8 -1.189 Td (879 )Tj 14.4 0 Td [(i)-600(=)-600(cp)-600(-)-600(bp;)]TJ -14.4 -1.189 Td (880 )Tj 14.4 0 Td (len)Tj 0.6 Tc 2.4 0 Td (=a)Tj 0 Tc 1.8 0 Td (toi\(contentlen\);)Tj -18.6 -1.189 Td (881 )Tj 14.4 0 Td (break;)Tj -14.4 -1.189 Td (882 )Tj 12 0 Td [(})-600(else {)]TJ -12 -1.189 Td (883 )Tj 14.4 0 Td (cp++;)Tj -14.4 -1.189 Td (884 )Tj 14.4 0 Td (i++;)Tj -14.4 -1.189 Td (885 )Tj 12 0 Td (})Tj -12 -1.189 Td (886 )Tj 9.6 0 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2941.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 270.0756 Tm [([853 )167(\320 )167(870])-668(If )-120(the )-120(HTTP )-120(r)18(equest )-120(succeeds, )-120(we )-120(need )-120(to )-120(check )-120(the )-120(IPP )-120(status.)]TJ -0.092 Tc 34.437 0 Td [(We )-304(s)]TJ 0 Tc 2.181 0 Td [(ear)18(ch)]TJ -31.618 -1.2 Td [(thr)18(ough )-122(the )-122(message )-122(until )-122(we )-122(\336nd )-122(the)]TJ /TT0 1 Tf 17.896 0 Td (Content-Length)Tj /T1_1 1 Tf 8.771 0 Td [(attribute. )-371(HTTP)]TJ -26.668 -1.2 Td [(header )-131(keywor)18(ds )-131(ar)]TJ 0.3811 Tc 9.068 0 Td (ec)Tj 0 Tc 1.304 0 Td [(ase )-131(insensitive, )-131(so )-131(we )-131(need )-131(to )-131(check )-131(both )-131(lower)17(case)]TJ -10.372 -1.2 Td [(and )-53(upper)18(case )-53(characters.)-553(If )-53(we )-53(r)8(un )-53(out )-53(of )-53(buf)18(fer )-53(space, )-53(we )-53(call)]TJ /TT0 1 Tf 28.95 0 Td (readmore)Tj /T1_1 1 Tf (,)Tj -28.95 -1.2 Td [(which )-59(uses)]TJ /TT0 1 Tf 5.281 0 Td (realloc)Tj /T1_1 1 Tf 4.509 0 Td [(to )-59(incr)18(ease )-59(the )-59(buf)18(fer )-59(size.)-559(Because )-59(the )-59(buf)18(fer )-59(addr)18(ess)]TJ -9.79 -1.2 Td [(might )-5(change, )-5(we )-5(need )-5(to )-5(adjust)]TJ /TT0 1 Tf 14.592 0 Td (cp)Tj /T1_1 1 Tf 1.454 0 Td [(to )-4(point )-4(to )-4(the )-4(corr)18(ect )-4(place )-4(in )-4(the )-4(buf)14(fer)74(.)]TJ -21.047 -1.6 Td [([871 )167(\320 )167(886])]TJ -0.092 Tc 5 0 Td [(We )-293(u)]TJ 0 Tc 2.349 0 Td [(se )-109(the)]TJ /TT0 1 Tf 3.008 0 Td (strncasecmp)Tj /T1_1 1 Tf 6.959 0 Td [(function )-109(to )-109(do )-109(a )-109(case-insensitive )-109(comparison.)-608(If)]TJ -12.315 -1.2 Td [(we )-88(\336nd )-88(the)]TJ /TT0 1 Tf 5.513 0 Td (Content-Length)Tj /T1_1 1 Tf 8.738 0 Td [(attribute )-88(string, )-88(we )-88(sear)18(ch )-88(for )-88(its )-88(value.)]TJ -0.092 Tc 18.362 0 Td (We)Tj 0 Tc -32.613 -1.2 Td [(convert )-36(this )-36(numeric )-36(string )-36(into )-36(an )-36(integer )-36(and )-36(br)18(eak )-36(out )-36(of )-36(the)]TJ /TT0 1 Tf 28.475 0 Td (for)Tj /T1_1 1 Tf 2.086 0 Td [(loop. )-286(If)]TJ -30.56 -1.2 Td [(the )-119(comparison )-119(fails, )-119(we )-119(continue )-119(sear)19(ching )-119(the )-119(buf)18(fer )-119(byte )-119(by )-119(byte.)-619(If )-119(we)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(ach )-54(the )-54(end )-54(of )-54(the )-54(buf)18(fer )-54(without )-54(\336nding )-54(the)]TJ /TT0 1 Tf 20.391 0 Td (Content-Length)Tj /T1_1 1 Tf 8.704 0 Td (attribute,)Tj -29.951 -1.2 Td [(we r)18(ead mor)]TJ 0.25 Tc 5.586 0 Td (ef)Tj -0.018 Tc 1.062 0 Td (ro)Tj 0.25 Tc 0.923 0 Td (mt)Tj 0 Tc 1.459 0 Td [(he printer and continue the sear)18(ch.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47464 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (12)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(System )-250(Overview)]TJ 39.741 0 Td [(Chapter )-250(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(char )-1800(buf[MAXLINE];)-1800(/* from apue.h */)]TJ T* [(pid_t )-1200(pid;)]TJ T* [(int )-2400(status;)]TJ 0 -1.902 TD [(printf\("%% "\);)-1200(/* print prompt \(printf requires %% to print %\) */)]TJ 0 -1.189 TD (while \(fgets\(buf, MAXLINE, stdin\) != NULL\) {)Tj 2.4 -1.189 Td (if \(buf[strlen\(buf\) - 1] == \325\\n\325\))Tj 2.4 -1.189 Td (buf[strlen\(buf\) - 1] = 0; /* replace newline with null */)Tj -2.4 -1.902 Td (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(pid == 0\) {)-3600(/* child */)]TJ 0.6 -1.189 Td (execlp\(buf, buf, \(char *\)0\);)Tj T* (err_ret\("couldn\325t execute: %s", buf\);)Tj T* (exit\(127\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (/* parent */)Tj 0 -1.189 TD (if \(\(pid = waitpid\(pid, &status, 0\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("waitpid error"\);)Tj -2.4 -1.189 Td (printf\("%% "\);)Tj -2.4 -1.189 Td (})Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3615.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 205.2234 345.4765 Tm (Figure 1.7)Tj /T1_1 1 Tf 5.195 0 Td [(Read commands fr)18(om standar)]TJ 0.25 Tc 13.34 0 Td (di)Tj 0 Tc 1.152 0 Td (nput and execute them)Tj 9.9988 0 0 9.9988 129.5836 319.0797 Tm (Ther)Tj 0.25 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(s)]TJ 0 Tc 1.53 0 Td [(everal featur)18(es to consider in this 30)]TJ 15.87 0.09 Td (-)Tj 0.333 -0.09 Td [(line pr)18(ogram.)]TJ 0.883 Tc -19.213 -2.04 Td (\245W)Tj 0.4096 Tc 2.397 0 Td (eu)Tj 0 Tc 1.492 0 Td [(se )-160(the )-160(standar)]TJ 0.4096 Tc 6.429 0 Td (dI)Tj 0 Tc 1.358 0 Td [(/O )-160(function)]TJ /TT0 1 Tf 5.918 0 Td (fgets)Tj /T1_1 1 Tf 3.41 0 Td [(to )-160(r)18(ead )-160(one )-160(line )-160(at )-160(a )-160(time )-160(fr)18(om )-160(the)]TJ -19.514 -1.2 Td (standar)Tj 0.6868 Tc 3.32 0 Td (di)Tj 0 Tc 1.589 0 Td [(nput. )-687(When)-687(we )-437(type )-437(the )-437(end-of-\336le )-437(character )-437(\(which )-437(is )-437(often)]TJ -4.909 -1.2 Td [(Contr)18(ol)]TJ 3.377 0.09 Td (-)Tj 0.333 -0.09 Td [(D\) )-55(as )-55(the )-55(\336rst )-55(character )-55(of )-55(a )-55(line,)]TJ /TT0 1 Tf 14.948 0 Td (fgets)Tj /T1_1 1 Tf -0.018 Tc 3.305 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-55(a )-55(null )-55(pointer)]TJ 0.3055 Tc 8.659 0 Td (,t)Tj 0 Tc 0.881 0 Td [(he )-55(loop)]TJ -32.361 -1.2 Td [(stops, )-194(and )-194(the )-194(pr)18(ocess )-194(terminates.)-695(In )-194(Chapter )-194(18, )-194(we )-194(describe )-194(all )-194(the )-194(special)]TJ 0 -1.2 TD [(terminal )-89(characters)]TJ 0.0833 Tc 8.658 0 Td (\321e)Tj 0 Tc 1.562 0 Td [(nd )-89(of )-89(\336le, )-89(backspace )-89(one )-89(character)]TJ 0.3387 Tc 15.489 0 Td (,e)Tj 0 Tc 1.068 0 Td [(rase )-89(entir)]TJ 0.3387 Tc 4.192 0 Td (el)Tj 0 Tc 1.109 0 Td [(ine, )-89(and)]TJ -32.077 -1.2 Td (so on)Tj 0.0833 Tc 2.431 0 Td (\321a)Tj 0 Tc 1.583 0 Td (nd how to change them.)Tj 0.883 Tc -5.504 -1.6 Td (\245B)Tj 0 Tc 2.1 0 Td [(ecause )-174(each )-174(line )-174(r)18(eturned )-174(by)]TJ /TT0 1 Tf 13.658 0 Td (fgets)Tj /T1_1 1 Tf 3.424 0 Td [(is )-174(terminated )-174(with )-174(a )-174(newline )-174(character)75(,)]TJ -17.692 -1.2 Td [(followed )-32(by )-32(a )-32(null )-32(byte, )-32(we )-32(use )-32(the )-32(standar)]TJ 0.2822 Tc 19.254 0 Td (dCf)Tj 0 Tc 2.217 0 Td (unction)Tj /TT0 1 Tf 3.656 0 Td (strlen)Tj /T1_1 1 Tf 3.882 0 Td [(to )-32(calculate )-32(the)]TJ -29.01 -1.2 Td [(length )-94(of )-94(the )-94(string, )-94(and )-94(then )-94(r)18(eplace )-94(the )-94(newline )-94(with )-94(a )-94(null )-94(byte.)]TJ -0.092 Tc 30.855 0 Td [(We )-278(d)]TJ 0.3444 Tc 2.342 0 Td (ot)Tj 0 Tc 1.216 0 Td (his)Tj -34.414 -1.2 Td [(because )-515(the)]TJ /TT0 1 Tf 6.399 0 Td (execlp)Tj /T1_1 1 Tf 4.365 0 Td [(function )-515(wants )-515(a )-515(null-terminated )-515(ar)17(gument, )-515(not )-515(a)]TJ -10.765 -1.2 Td [(newline-terminated ar)18(gument.)]TJ 0.883 Tc -1.489 -1.6 Td (\245W)Tj 0.3055 Tc 2.397 0 Td (ec)Tj 0 Tc 1.229 0 Td (all)Tj /TT0 1 Tf 1.387 0 Td (fork)Tj /T1_1 1 Tf 2.706 0 Td [(to )-55(cr)18(eate )-55(a )-55(new )-55(pr)18(ocess, )-55(which )-55(is )-55(a )-55(copy )-55(of )-55(the )-55(caller)]TJ 0.5554 Tc 23.464 0 Td (.W)Tj 0.3054 Tc 1.713 0 Td (es)Tj 0 Tc 1.208 0 Td [(ay )-55(that)]TJ -32.616 -1.2 Td [(the )-165(caller )-165(is )-165(the )-165(par)18(ent )-165(and )-165(that )-165(the )-165(newly )-165(cr)18(eated )-165(pr)18(ocess )-165(is )-165(the )-165(child.)-668(Then)]TJ /TT0 1 Tf T* (fork)Tj /T1_1 1 Tf -0.018 Tc 2.666 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-16(the )-16(non-negative )-16(pr)18(ocess )-16(ID )-16(of )-16(the )-16(new )-16(child )-16(pr)18(ocess )-16(to )-16(the )-16(par)14(ent,)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47465 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (920)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (7.2)Tj /T1_1 1 Tf 2.602 0 Td [(When )-2(the )-2(pr)18(ogram )-2(is )-2(r)8(un )-2(interactively)]TJ 0.2522 Tc 16.85 0 Td (,s)Tj 0 Tc 0.926 0 Td (tandar)Tj 0.2523 Tc 2.896 0 Td (do)Tj 0 Tc 1.409 0 Td [(utput )-2(is )-2(usually )-2(line )-2(buf)17(fer)18(ed, )-2(so)]TJ -22.082 -1.2 Td [(the )-123(actual )-123(output )-123(occurs )-123(when )-123(each )-123(newline )-123(is )-123(output.)-623(If )-123(standar)]TJ 0.3725 Tc 29.868 0 Td (do)Tj 0 Tc 1.529 0 Td [(utput )-122(wer)18(e)]TJ -31.398 -1.2 Td [(dir)18(ected )-165(to )-165(a )-165(\336le, )-165(however)73(,)-415(it)-415(would )-165(pr)18(obably )-165(be )-165(fully )-165(buf)17(fer)18(ed, )-165(and )-165(the )-165(actual)]TJ -0 -1.2 Td (output wouldn\325t occur until the standar)Tj 0.25 Tc 17.558 0 Td (dI)Tj 0 Tc 1.198 0 Td (/O cleanup is performed.)Tj /T1_0 1 Tf -21.358 -1.84 Td (7.3)Tj /T1_1 1 Tf 2.602 0 Td [(On )-35(most )-35(UNIX )-35(systems, )-35(ther)16(e)-285(is)-285(no)-285(w)-1(ay )-35(to )-35(do )-35(this.)-535(Copies )-35(of)]TJ /TT0 1 Tf 27.693 0 Td (argc)Tj /T1_1 1 Tf 2.685 0 Td (and)Tj /TT0 1 Tf 1.978 0 Td (argv)Tj /T1_1 1 Tf 2.685 0 Td [(ar)18(e)]TJ -35.042 -1.2 Td (not kept in global variables like)Tj /TT0 1 Tf 14.141 0 Td (environ)Tj /T1_1 1 Tf 4.45 0 Td (is.)Tj /T1_0 1 Tf -21.193 -1.84 Td (7.4)Tj /T1_1 1 Tf 2.602 0 Td [(This )-116(pr)18(ovides )-116(a )-116(way )-116(to )-116(terminate )-116(the )-116(pr)19(ocess )-116(when )-116(it )-116(tries )-116(to )-116(der)19(efer)18(ence )-116(a )-116(null)]TJ 0 -1.2 Td (pointer)Tj 0.25 Tc 3.146 0 Td (,ac)Tj 0 Tc 1.694 0 Td [(ommon C pr)18(ogramming err)18(or)74(.)]TJ /T1_0 1 Tf -7.442 -1.84 Td (7.5)Tj /T1_1 1 Tf 2.602 0 Td [(The de\336nitions ar)18(e)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 173.6089 538.1376 Tm [(typedef void)-2400(Exitfunc\(void\);)]TJ 0 -1.783 TD (int atexit\(Exitfunc *)Tj /T1_2 1 Tf (func)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5915 500.0899 Tm (7.6)Tj /TT0 1 Tf 2.602 0 Td (calloc)Tj /T1_1 1 Tf 3.988 0 Td [(initializes )-138(the )-138(memory )-138(that )-138(it )-138(allocates )-138(to )-138(all )-138(zer)]TJ 0.3878 Tc 21.96 0 Td (ob)Tj 0 Tc 1.487 0 Td [(its. )-388(ISO)]TJ 0.3878 Tc 3.965 0 Td (Cd)Tj 0 Tc 1.708 0 Td [(oes )-138(not)]TJ -33.107 -1.2 Td [(guarantee that this is the same as either a \337oating-point 0 or a null\ pointer)74(.)]TJ /T1_0 1 Tf -2.602 -1.84 Td (7.7)Tj /T1_1 1 Tf 2.602 0 Td [(The )-58(heap )-58(and )-58(the )-58(stack )-58(ar)18(en\325t )-58(allocated )-58(until )-58(a )-58(pr)18(ogram )-58(is )-58(executed )-58(by )-58(one )-58(of )-58(the)]TJ /TT0 1 Tf 0 -1.2 TD (exec)Tj /T1_1 1 Tf 2.65 0 Td (functions \(described in Section 8.10\).)Tj /T1_0 1 Tf -5.252 -1.84 Td (7.8)Tj /T1_1 1 Tf 2.602 0 Td [(The )-38(executable )-38(\336le )-38(\()]TJ /TT0 1 Tf (a.out)Tj /T1_1 1 Tf 0.2881 Tc (\)c)Tj 0 Tc 12.981 0 Td [(ontains )-38(symbol )-38(table )-38(information )-38(that )-38(can )-38(be )-38(helpful)]TJ -12.981 -1.2 Td [(in )-419(debugging )-419(a)]TJ /TT0 1 Tf 8.167 0 Td (core)Tj /T1_1 1 Tf 3.069 0 Td [(\336le. )-669(T)]TJ 0.6691 Tc 3.065 0 Td (or)Tj 0 Tc 1.592 0 Td [(emove )-419(this )-419(information, )-419(use )-419(the)]TJ /TT0 1 Tf 16.338 0 Td (strip)Tj /T1_1 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj -36.065 -1.24 Td [(command. )-345(Stripping)-345(the )-95(two)]TJ /TT0 1 Tf 13.59 0 Td (a.out)Tj /T1_1 1 Tf 3.345 0 Td [(\336les )-95(r)18(educes )-95(their )-95(size )-95(to )-95(798,760 )-95(and )-95(6,200)]TJ -16.935 -1.2 Td (bytes.)Tj /T1_0 1 Tf -2.602 -1.84 Td (7.9)Tj /T1_1 1 Tf 2.602 0 Td [(When )-286(shar)18(ed )-286(libraries )-286(ar)]TJ 0.5361 Tc 11.72 0 Td (en)Tj 0 Tc 1.597 0 Td [(ot )-286(used, )-286(a )-286(lar)18(ge )-286(portion )-286(of )-286(the )-286(executable )-286(\336le )-286(is)]TJ -13.317 -1.2 Td (occupied by the standar)Tj 0.25 Tc 10.585 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O library)111(.)]TJ /T1_0 1 Tf -14.385 -1.84 Td (7.10)Tj /T1_1 1 Tf 2.602 0 Td [(The )-227(code )-227(is )-227(incorr)18(ect, )-227(since )-227(it )-227(r)20(efer)18(ences )-227(the )-227(automatic )-227(integer)]TJ /TT0 1 Tf 29.573 0 Td (val)Tj /T1_1 1 Tf 2.276 0 Td [(thr)18(ough )-226(a)]TJ -31.849 -1.2 Td [(pointer )-21(after )-21(the )-21(automatic )-21(variable )-21(is )-21(no )-21(longer )-21(in )-21(existence.)-521(Automatic )-21(variables)]TJ T* [(declar)18(ed )-66(after )-66(the )-66(left )-66(brace )-66(that )-66(starts )-66(a )-66(compound )-66(statement )-66(disappear )-66(after )-66(the)]TJ T* (matching right brace.)Tj /TT1 1 Tf -6.202 -4.08 Td [(Chapter )-278(8)]TJ /T1_0 1 Tf 3.6 -2.8 Td (8.1)Tj /T1_1 1 Tf -0.092 Tc 2.602 0 Td [(To )-312(s)]TJ 0 Tc 1.869 0 Td [(imulate )-128(the )-128(behavior )-128(of )-128(the )-128(child )-128(closing )-128(the )-128(standar)]TJ 0.378 Tc 24.021 0 Td (do)Tj 0 Tc 1.535 0 Td [(utput )-128(when )-128(it )-128(exits,)]TJ -27.425 -1.2 Td (add the following line befor)Tj 0.25 Tc 12.31 0 Td (ec)Tj 0 Tc 1.173 0 Td (alling)Tj /TT0 1 Tf 2.761 0 Td (exit)Tj /T1_1 1 Tf 2.65 0 Td (in the child:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 173.6087 221.0066 Tm (fclose\(stdout\);)Tj /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 155.6098 203.0077 Tm [(To )-184(s)]TJ 0 Tc 1.741 0 Td [(ee the ef)18(fects of doing this, r)18(eplace the call to)]TJ /TT0 1 Tf 19.939 0 Td (printf)Tj /T1_1 1 Tf 3.85 0 Td (with the lines)Tj /TT0 1 Tf 0.6 Tc 8.9995 0 0 8.9995 173.6089 186.3087 Tm (i=p)Tj 0 Tc 3 0 Td (rintf\("pid = %ld, glob = %d, var = %d\\n",)Tj -0.6 -1.189 Td (\(long\)getpid\(\), glob, var\);)Tj -2.4 -1.189 Td (sprintf\(buf, "%d\\n", i\);)Tj 0 -1.189 TD (write\(STDOUT_FILENO, buf, strlen\(buf\)\);)Tj /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 155.61 136.2117 Tm (Yo)Tj 0.25 Tc 1.121 0 Td (un)Tj 0 Tc 1.435 0 Td (eed to de\336ne the variables)Tj /TT0 1 Tf 11.832 0 Td (i)Tj /T1_1 1 Tf 0.85 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (buf)Tj /T1_1 1 Tf 2.05 0 Td (also.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47466 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1.7)]TJ 37.264 0 Td [(Err)18(or )-250(Handling)]TJ /T1_1 1 Tf 9.069 0 Td (15)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 670.2598 Tm [(extern int *_)-167(_errno_location\(void\);)]TJ 0 -1.189 TD [(#define errno \(*_)-167(_errno_location\(\)\))]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 641.5615 Tm (Ther)Tj 0.3425 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.321 0 Td [(re )-129(t)]TJ 0 Tc 1.524 0 Td [(wo )-92(r)8(ules )-92(to )-92(be )-92(awar)16(e)-342(of)-342(w)-1(ith )-92(r)18(espect )-92(to)]TJ /TT0 1 Tf 18.154 0 Td (errno)Tj /T1_0 1 Tf 0.5925 Tc (.F)Tj 0 Tc 4.399 0 Td [(irst, )-92(its )-92(value )-92(is )-92(never)]TJ -29.25 -1.2 Td [(clear)18(ed )-59(by )-59(a )-59(r)18(outine )-59(if )-59(an )-59(err)16(or )-59(does )-59(not )-59(occur)]TJ 0.5595 Tc 20.549 0 Td (.T)Tj 0 Tc 1.423 0 Td [(her)18(efor)18(e, )-59(we )-59(should )-59(examine )-59(its )-59(value)]TJ -21.971 -1.2 Td [(only )-121(when )-121(the )-121(r)18(eturn )-121(value )-121(fr)18(om )-121(a )-121(function )-121(indicates )-121(that )-121(an )-121(err)18(or )-121(occurr)18(ed. )-371(Second,)]TJ 0 -1.2 TD [(the )-71(value )-71(of)]TJ /TT0 1 Tf 5.668 0 Td (errno)Tj /T1_0 1 Tf 3.321 0 Td [(is )-71(never )-71(set )-71(to )-71(0 )-71(by )-71(any )-71(of )-71(the )-71(functions, )-71(and )-71(none )-71(of )-71(the )-71(constants)]TJ -8.989 -1.2 Td (de\336ned in)Tj /TT0 1 Tf 4.74 0 Td ()Tj /T1_0 1 Tf 5.65 0 Td (has a value of 0.)Tj -0.09 Tc -8.59 -1.2 Td (Tw)Tj 0.25 Tc 1.357 0 Td (of)Tj 0 Tc 1.129 0 Td (unctions ar)Tj 0.25 Tc 4.925 0 Td (ed)Tj 0 Tc 1.34 0 Td [(e\336ned by the C standar)18(d)-250(to)-250(help with printing err)18(or messages.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 563.6662 Tm (#include )Tj 0 -2.14 TD (char *strerror\(int)Tj /T1_2 1 Tf 11.4 0 Td (errnum)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 12.795 -2.14 Td (Returns: pointer to message string)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5207.25 cm 0 0 m 0 520 l 3900 520 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 505.9193 Tm [(This )-98(function )-98(maps)]TJ /T1_2 1 Tf 9.069 0 Td (errnum)Tj /T1_0 1 Tf 0.3481 Tc (,w)Tj 0 Tc 4.489 0 Td [(hich )-98(is )-98(typically )-98(the)]TJ /TT0 1 Tf 9.249 0 Td (errno)Tj /T1_0 1 Tf 3.348 0 Td [(value, )-98(into )-98(an )-98(err)18(or )-98(message)]TJ -26.156 -1.2 Td [(string and r)18(eturns a pointer to the string.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.058 0 Td (perror)Tj /T1_0 1 Tf 3.984 0 Td [(function )-134(pr)18(oduces )-134(an )-134(err)18(or )-134(message )-134(on )-134(the )-134(standar)]TJ 0.3839 Tc 23.333 0 Td (de)Tj 0 Tc 1.474 0 Td [(rr)18(or)]TJ 0.3839 Tc 1.639 0 Td (,b)Tj 0 Tc 1.187 0 Td [(ased )-134(on)]TJ -35.474 -1.2 Td [(the curr)18(ent value of)]TJ /TT0 1 Tf 8.91 0 Td (errno)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 4 0 Td [(nd r)18(eturns.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 452.0258 Tm (#include )Tj T* (void perror\(const char *)Tj /T1_2 1 Tf (msg)Tj /TT0 1 Tf (\);)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4283.25 cm 0 0 m 0 328 l 3900 328 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 413.5456 Tm [(It )-6(outputs )-6(the )-6(string )-6(pointed )-6(to )-6(by)]TJ /T1_2 1 Tf 15.26 0 Td (msg)Tj /T1_0 1 Tf 0.2557 Tc (,f)Tj 0 Tc 2.506 0 Td [(ollowed )-6(by )-6(a )-6(colon )-6(and )-6(a )-6(space, )-6(followed )-6(by )-6(the)]TJ -17.766 -1.2 Td [(err)18(or message corr)18(esponding to the value of)]TJ /TT0 1 Tf 19.697 0 Td (errno)Tj /T1_0 1 Tf 0.25 Tc (,f)Tj 0 Tc 3.833 0 Td (ollowed by a newline.)Tj /TT1 1 Tf -27.13 -2.88 Td (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td [(.8 shows the use of these two err)18(or functions.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3416.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9978 0 0 8.9978 129.5689 332.0393 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td (fprintf\(stderr, "EACCES: %s\\n", strerror\(EACCES\)\);)Tj T* (errno = ENOENT;)Tj T* (perror\(argv[0]\);)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2224.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 237.5207 206.3961 Tm (Figure 1.8)Tj /T1_0 1 Tf 5.195 0 Td (Demonstrate)Tj /TT0 1 Tf 5.964 0 Td (strerror)Tj /T1_0 1 Tf 5.05 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (perror)Tj /T1_0 1 Tf 9.997 0 0 9.997 129.5605 182.4033 Tm [(If this pr)18(ogram is compiled into the \336le)]TJ /TT0 1 Tf 17.519 0 Td (a.out)Tj /T1_0 1 Tf [(,)-250(we)-250(have)]TJ /TT0 1 Tf 8.9973 0 0 8.9973 147.5551 165.7083 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (EACCES: Permission denied)Tj 0 -1.189 TD (./a.out: No such file or directory)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47467 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 33.857 0 Td [(Chapter )-250(14)-750(Solutions)]TJ /T1_1 1 Tf 11.976 0 Td (931)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 203.4378 670.2598 Tm (exit\(0\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse {)-4800(/* parent */)]TJ 0.6 -1.189 Td (sleep\(2\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (arent continues ... read-lock the file again.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(\(pid2 = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork failed"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(pid2 == 0\) { /* child */)Tj 0.6 -1.189 Td (if \(lock_reg\(fd, F_SETLK, F_RDLCK, 0, SEEK_SET, 0\) < 0\))Tj 2.4 -1.189 Td (err_sys\("child 2: can\325t read-lock file"\);)Tj -2.4 -1.189 Td (printf\("child 2: obtained read lock on file\\n"\);)Tj 0 -1.189 TD (pause\(\);)Tj 0 -1.189 TD (printf\("child 2: exit after pause\\n"\);)Tj 0 -1.189 TD (exit\(0\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse {)-4800(/* parent */)]TJ 0.6 -1.189 Td (sleep\(2\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (arent continues ... block while trying to write-lock)Tj 0.6 Tc -1.8 -1.189 Td (*t)Tj 0 Tc 1.8 0 Td (he file.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(\(pid3 = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork failed"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(pid3 == 0\) { /* child */)Tj 0.6 -1.189 Td (if \(lock_reg\(fd, F_SETLK, F_WRLCK, 0, SEEK_SET, 0\) < 0\))Tj 2.4 -1.189 Td (printf\("child 3: can\325t set write lock: %s\\n",)Tj 1.2 -1.189 Td (strerror\(errno\)\);)Tj -3.6 -1.189 Td (printf\("child 3 about to block in write-lock...\\n"\);)Tj 0 -1.189 TD (if \(lock_reg\(fd, F_SETLKW, F_WRLCK, 0, SEEK_SET, 0\) < 0\))Tj 2.4 -1.189 Td (err_sys\("child 3: can\325t write-lock file"\);)Tj -2.4 -1.189 Td (printf\("child 3 returned and got write lock????\\n"\);)Tj T* (pause\(\);)Tj T* (printf\("child 3: exit after pause\\n"\);)Tj T* (exit\(0\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse {)-4800(/* parent */)]TJ 0.6 -1.189 Td (sleep\(2\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*S)Tj 0 Tc 1.8 0 Td (ee if a pending write lock will block the next)Tj 0.6 Tc -1.8 -1.189 Td (*r)Tj 0 Tc 1.8 0 Td (ead-lock attempt.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(lock_reg\(fd, F_SETLK, F_RDLCK, 0, SEEK_SET, 0\) < 0\))Tj 2.4 -1.189 Td (printf\("parent: can\325t set read lock: %s\\n",)Tj 1.2 -1.189 Td (strerror\(errno\)\);)Tj -3.6 -1.189 Td (else)Tj 2.4 -1.189 Td (printf\("parent: obtained additional read lock while")Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47468 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.5)]TJ 37.602 0 Td [(Data )-250(T)90(ransfer)]TJ /T1_1 1 Tf 8.231 0 Td (621)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (int )Tj 12 0 Td [(sockfd,)-600(err;)]TJ -12 -1.189 Td [(struct sigaction)-2400(sa;)]TJ 0 -2.14 TD (if \(argc != 2\))Tj 2.4 -1.189 Td (err_quit\("usage: ruptime hostname"\);)Tj -2.4 -1.189 Td (sa.sa_handler = sigalrm;)Tj 0 -1.189 TD (sa.sa_flags = 0;)Tj T* (sigemptyset\(&sa.sa_mask\);)Tj T* (if \(sigaction\(SIGALRM, &sa, NULL\) < 0\))Tj 2.4 -1.189 Td (err_sys\("sigaction error"\);)Tj -2.4 -1.189 Td (memset\(&hint, 0, sizeof\(hint\)\);)Tj T* (hint.ai_socktype = SOCK_DGRAM;)Tj T* (hint.ai_canonname = NULL;)Tj T* (hint.ai_addr = NULL;)Tj T* (hint.ai_next = NULL;)Tj T* (if \(\(err = getaddrinfo\(argv[1], "ruptime", &hint, &ailist\)\) != 0\))Tj 2.4 -1.189 Td (err_quit\("getaddrinfo error: %s", gai_strerror\(err\)\);)Tj -2.4 -2.14 Td (for \(aip = ailist; aip != NULL; aip = aip->ai_next\) {)Tj 2.4 -1.189 Td (if \(\(sockfd = socket\(aip->ai_family, SOCK_DGRAM, 0\)\) < 0\) {)Tj 2.4 -1.189 Td (err = errno;)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (print_uptime\(sockfd, aip\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (fprintf\(stderr, "can\325t contact %s: %s\\n", argv[1], strerror\(err\)\)\ ;)Tj 0 -1.189 TD (exit\(1\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3616.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 228.0686 345.5775 Tm (Figure 16.19)Tj /T1_0 1 Tf 6.195 0 Td (Client command using datagram service)Tj 9.9988 0 0 9.9988 129.5846 321.5804 Tm (The)Tj /TT0 1 Tf 2.34 0 Td (main)Tj /T1_0 1 Tf 3.066 0 Td [(function )-416(for )-416(the )-416(datagram-based )-416(client )-416(is )-416(similar )-416(to )-416(the )-416(one )-416(for )-416(the)]TJ -5.406 -1.2 Td [(connection-oriented )-20(client, )-20(with )-20(the )-20(addition )-20(of )-20(installing )-20(a )-20(signal )-20(handler )-20(for)]TJ /TT0 1 Tf 34.55 0 Td (SIGALRM)Tj /T1_0 1 Tf (.)Tj -0.092 Tc -34.55 -1.2 Td [(We )-184(u)]TJ 0 Tc 2.24 0 Td (se the)Tj /TT0 1 Tf 2.79 0 Td (alarm)Tj /T1_0 1 Tf 3.25 0 Td (function to avoid blocking inde\336nitely in the call to)Tj /TT0 1 Tf 22.912 0 Td (recvfrom)Tj /T1_0 1 Tf (.)Tj -0.055 Tc -29.392 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-140(the )-140(connection-oriented )-140(pr)18(otocol, )-140(we )-140(needed )-140(to )-140(connect )-140(to )-140(the )-140(server )-140(befor)22(e)]TJ -3.036 -1.2 Td [(exchanging )-255(data.)-755(The )-255(arrival )-255(of )-255(the )-255(connect )-255(r)15(equest )-255(was )-255(enough )-255(for )-255(the )-255(server )-255(to)]TJ 0 -1.2 TD [(determine )-138(that )-138(it )-138(needed )-138(to )-138(pr)18(ovide )-138(service )-138(to )-138(a )-138(client.)-638(But )-138(with )-138(the )-138(datagram-based)]TJ T* [(pr)18(otocol, )-99(we )-99(need )-99(a )-99(way )-99(to )-99(notify )-99(the )-99(server )-99(that )-99(we )-99(want )-99(it )-99(to )-99(perform )-99(its )-99(service )-99(on)]TJ T* [(our )-121(behalf.)-621(In )-121(this )-121(example, )-121(we )-121(simply )-121(send )-121(the )-121(server )-121(a )-121(1)]TJ 26.984 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-121(message.)-621(The )-121(server)]TJ -27.317 -1.2 Td [(will )-177(r)18(eceive )-177(it, )-177(get )-177(our )-177(addr)18(ess )-177(fr)18(om )-177(the )-177(packet, )-177(and )-177(use )-177(this )-177(addr)18(ess )-177(to )-177(transmit )-177(its)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(sponse. )-333(If)-334(the )-83(server )-83(of)17(fer)18(ed )-83(multiple )-83(services, )-83(we )-83(could )-83(use )-83(this )-83(r)15(equest )-84(message )-84(to)]TJ -0.856 -1.2 Td [(indicate )-13(the )-13(service )-13(we )-13(want, )-13(but )-13(since )-13(the )-13(server )-13(does )-13(only )-13(one )-13(thing, )-13(the )-13(content )-13(of )-13(the)]TJ T* (1)Tj 0.5 0.09 Td (-)Tj 0.333 -0.09 Td [(byte message doesn\325t matter)74(.)]TJ 0.967 -1.2 Td [(If )-34(the )-34(server )-34(isn\325t )-34(r)9(unning, )-34(the )-34(client )-34(will )-34(block )-34(inde\336nitely )-34(in )-34(the )-34(call )-34(to)]TJ /TT0 1 Tf 32.15 0 Td (recvfrom)Tj /T1_0 1 Tf (.)Tj -0.055 Tc -33.95 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-227(the )-227(connection-oriented )-227(example, )-227(the)]TJ /TT0 1 Tf 18.929 0 Td (connect)Tj /T1_0 1 Tf 4.677 0 Td [(call )-227(will )-227(fail )-227(if )-227(the )-227(server )-227(isn\325t)]TJ -0.008 Tc -24.842 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td [(nning. )-253(T)]TJ 0.2533 Tc 3.867 0 Td (oa)Tj 0 Tc 1.299 0 Td [(void )-3(blocking )-3(inde\336nitely)110(,)-253(we)-253(s)-1(et )-3(an )-3(alarm )-3(clock )-3(befor)]TJ 0.2534 Tc 23.852 0 Td (ec)Tj 0 Tc 1.176 0 Td (alling)Tj /TT0 1 Tf 2.764 0 Td (recvfrom)Tj /T1_0 1 Tf (.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1416.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47469 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (600)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (The)Tj /TT0 1 Tf 1.924 0 Td (addrinfo)Tj /T1_1 1 Tf 5.05 0 Td [(str)8(uctur)18(e)-250(is)-250(de\336ned to include at least the following members:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 655.4709 Tm (struct addrinfo {)Tj 1.2 -1.189 Td (int )Tj 10.8 0 Td [(ai_flags;)-3600(/* customize behavior */)]TJ -10.8 -1.189 Td (int )Tj 10.8 0 Td [(ai_family;)-3000(/* address family */)]TJ -10.8 -1.189 Td (int )Tj 10.8 0 Td [(ai_socktype;)-1800(/* socket type */)]TJ -10.8 -1.189 Td (int )Tj 10.8 0 Td [(ai_protocol;)-1800(/* protocol */)]TJ -10.8 -1.189 Td [(socklen_t )-4800(ai_addrlen;)-2400(/* length in bytes of address */)]TJ 0 -1.189 TD [(struct sockaddr)-1200(*ai_addr; )-3600(/*)-600(address */)]TJ T* (char )Tj 10.2 0 Td [(*ai_canonname;)-1200(/* canonical name of host */)]TJ -10.2 -1.189 Td [(struct addrinfo)-1200(*ai_next; )-3600(/*)-600(next in list */)]TJ T* (.)Tj 0 -0.476 TD (.)Tj 0 -0.476 TD (.)Tj -1.2 -1.189 Td (};)Tj /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5909 525.1287 Tm [(We )-313(c)]TJ 0 Tc 2.21 0 Td [(an )-129(supply )-129(an )-129(optional)]TJ /T1_2 1 Tf 10.437 0 Td (hint)Tj /T1_1 1 Tf 2.046 0 Td [(to )-129(select )-129(addr)18(esses )-129(that )-129(meet )-129(certain )-129(criteria.)-626(The)]TJ -16.493 -1.2 Td [(hint )-437(is )-437(a )-437(template )-437(used )-437(for )-437(\336ltering )-437(addr)18(esses )-437(and )-437(uses )-437(only )-437(the)]TJ /TT0 1 Tf 33.35 0 Td (ai_family)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -33.35 -1.2 Td (ai_flags)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 5.571 0 Td (ai_protocol)Tj /T1_1 1 Tf 0.5205 Tc (,a)Tj 0 Tc 7.871 0 Td (nd)Tj /TT0 1 Tf 1.714 0 Td (ai_socktype)Tj /T1_1 1 Tf 7.121 0 Td [(\336elds. )-520(The)]TJ -0.018 Tc 5.625 0 Td (re)Tj 0 Tc 0.856 0 Td [(maining )-270(integer )-270(\336elds)]TJ -28.756 -1.2 Td [(must )-73(be )-73(set )-73(to )-73(0, )-73(and )-73(the )-73(pointer )-73(\336elds )-73(must )-73(be )-73(null.)-573(Figur)]TJ 0.3229 Tc 26.623 0 Td (e1)Tj 0 Tc 1.302 0 Td [(6.7 )-73(summarizes )-73(the )-73(\337ags)]TJ -27.925 -1.2 Td (we can use in the)Tj /TT0 1 Tf 7.855 0 Td (ai_flags)Tj /T1_1 1 Tf 5.05 0 Td [(\336eld to customize how addr)18(esses and names ar)]TJ 0.25 Tc 20.833 0 Td (et)Tj -0.018 Tc 1.055 0 Td (re)Tj 0 Tc 0.856 0 Td (ated.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1406.25 4571.25 cm 0 0 m 3680 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 170.5675 449.1061 Tm (Flag )Tj 21.625 0 Td (Description)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1406.25 4451.25 cm 0 0 m 3680 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1406.25 4431.25 cm 0 0 m 3680 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 144.574 435.0817 Tm (AI_ADDRCONFIG)Tj /T1_1 1 Tf 9.9 0 Td [(Query for whichever addr)18(ess type)]TJ 15.382 0.04 Td (\()Tj 0.333 -0.04 Td (IPv4 or IPv6)Tj 5.453 0.04 Td (\))Tj 0.583 -0.04 Td [(is con\336gur)18(ed.)]TJ /TT0 1 Tf -31.651 -1.25 Td (AI_ALL)Tj /T1_1 1 Tf 9.9 0 Td [(Look for both IPv4 and IPv6 addr)18(esses \(used only with)]TJ /TT0 1 Tf 24.532 0 Td (AI_V4MAPPED)Tj /T1_1 1 Tf (\).)Tj /TT0 1 Tf -34.432 -1.25 Td (AI_CANONNAME)Tj /T1_1 1 Tf 9.9 0 Td (Request a canonical name \(as opposed to an alias\).)Tj /TT0 1 Tf -9.9 -1.25 Td (AI_NUMERICHOST)Tj /T1_1 1 Tf 9.9 0 Td [(The host addr)18(ess is speci\336ed in numeric format; don\325t try to translate it.)]TJ /TT0 1 Tf -9.9 -1.25 Td (AI_NUMERICSERV)Tj /T1_1 1 Tf 9.9 0 Td (The service is speci\336ed as a numeric port number; don\325t try to tra\ nslate it.)Tj /TT0 1 Tf -9.9 -1.25 Td (AI_PASSIVE)Tj /T1_1 1 Tf 9.9 0 Td [(Socket addr)18(ess is intended to be bound for listening.)]TJ /TT0 1 Tf -9.9 -1.25 Td (AI_V4MAPPED)Tj /T1_1 1 Tf 9.9 0 Td [(If no IPv6 addr)18(esses ar)]TJ 0.25 Tc 10.01 0 Td (ef)Tj 0 Tc 1.062 0 Td [(ound, r)18(eturn IPv4 addr)18(esses mapped in IPv6 format.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1406.25 3711.25 cm 0 0 m 3680 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2178.25 3711.25 cm 0 0 m 0 860 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5086.25 3711.25 cm 0 0 m 0 860 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1406.25 3711.25 cm 0 0 m 0 860 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 249.2802 353.0752 Tm (Figure 16.7)Tj /T1_1 1 Tf 5.695 0 Td (Flags for)Tj /TT0 1 Tf 4.101 0 Td (addrinfo)Tj /T1_1 1 Tf 5.05 0 Td [(str)8(uctur)18(e)]TJ 9.9976 0 0 9.9976 147.5646 327.8813 Tm (If)Tj /TT0 1 Tf 1.137 0 Td (getaddrinfo)Tj /T1_1 1 Tf 7.067 0 Td [(fails, )-217(we )-217(can\325t )-217(use)]TJ /TT0 1 Tf 8.908 0 Td (perror)Tj /T1_1 1 Tf 4.067 0 Td (or)Tj /TT0 1 Tf 1.408 0 Td (strerror)Tj /T1_1 1 Tf 5.267 0 Td [(to )-217(generate )-217(an )-217(err)17(or)]TJ -29.656 -1.2 Td [(message. )-372(Instead,)-372(we )-122(need )-122(to )-122(call)]TJ /TT0 1 Tf 15.848 0 Td (gai_strerror)Tj /T1_1 1 Tf 7.572 0 Td [(to )-122(convert )-122(the )-122(err)18(or )-122(code )-122(r)18(eturned)]TJ -23.42 -1.2 Td [(into an err)18(or message.)]TJ /TT0 1 Tf 8.9978 0 0 8.9978 147.5642 288.3908 Tm (#include )Tj 0 -1.902 TD (const char *gai_strerror\(int)Tj /T1_2 1 Tf 17.4 0 Td [(err)18(or)]TJ /TT0 1 Tf (\);)Tj /T1_1 1 Tf 0.335 -1.902 Td [(Returns: a pointer to a string describing the err)18(or)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2497.25 cm 0 0 m 0 477 l 3900 477 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.997 0 0 9.997 147.5557 237.3488 Tm (The)Tj /TT0 1 Tf 1.924 0 Td (getnameinfo)Tj /T1_1 1 Tf 6.85 0 Td [(function converts an addr)18(ess into host and service names.)]TJ /TT0 1 Tf 8.9973 0 0 8.9973 147.5557 221.8534 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD (int getnameinfo\(const struct sockaddr *restrict)Tj /T1_2 1 Tf 28.8 0 Td (addr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.633 0 Td (ocklen_t)Tj /T1_2 1 Tf 5.4 0 Td (alen)Tj /TT0 1 Tf (,)Tj -28.233 -1.189 Td (char *restrict)Tj /T1_2 1 Tf 9 0 Td (host)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.466 0 Td (ocklen_t)Tj /T1_2 1 Tf 5.4 0 Td (hostlen)Tj /TT0 1 Tf (,)Tj -17.866 -1.189 Td (char *restrict)Tj /T1_2 1 Tf 9 0 Td (service)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 4.541 0 Td (ocklen_t)Tj /T1_2 1 Tf 5.4 0 Td (servlen)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.69 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ags)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -10.743 -1.902 Td [(Returns: 0 if OK, nonzer)18(o)-250(on)-250(err)18(or)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1511.25 cm 0 0 m 0 798 l 3900 798 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47470 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.8)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (767)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(348 )-2400(/*)]TJ 0 -1.189 TD [(349 )-3000(*)-600(Now read the actual index record.)-1200(We read it into the key)]TJ T* [(350 )-3000(*)-600(buffer that we malloced when we opened the database.)]TJ T* [(351 )-3000(*/)]TJ T* [(352 )-2400(if)-600(\(\(i = read\(db->idxfd, db->idxbuf, db->idxlen\)\) != db->idxlen\))]TJ 0 -1.189 TD [(353 )-4800(err_dump\("_db_readidx:)-600(read error of index record"\);)]TJ 0 -1.189 TD [(354 )-2400(if)-600(\(db->idxbuf[db->idxlen-1] != NEWLINE\))-2400(/* sanity check */)]TJ T* [(355 )-4800(err_dump\("_db_readidx:)-600(missing newline"\);)]TJ T* [(356 )-2400(db->idxbuf[db->idxlen-1])]TJ 0.6 Tc 19.8 0 Td (=0)Tj 2.4 Tc 1.8 0 Td (;/)Tj 0.6 Tc 3.6 0 Td (*r)Tj 0 Tc 1.8 0 Td (eplace newline with null */)Tj -27 -1.783 Td [(357 )-2400(/*)]TJ T* [(358 )-3000(*)-600(Find the separators in the index record.)]TJ T* [(359 )-3000(*/)]TJ T* [(360 )-2400(if)-600(\(\(ptr1 = strchr\(db->idxbuf, SEP\)\) == NULL\))]TJ T* [(361 )-4800(err_dump\("_db_readidx:)-600(missing first separator"\);)]TJ T* [(362 )-2400(*ptr1++)]TJ 0.6 Tc 9.6 0 Td (=0)Tj 9.6 Tc 1.8 0 Td (;/)Tj 0.6 Tc 10.8 0 Td (*r)Tj 0 Tc 1.8 0 Td (eplace SEP with null */)Tj -24 -1.783 Td [(363 )-2400(if)-600(\(\(ptr2 = strchr\(ptr1, SEP\)\) == NULL\))]TJ T* [(364 )-4800(err_dump\("_db_readidx:)-600(missing second separator"\);)]TJ 0 -1.189 TD [(365 )-2400(*ptr2++)]TJ 0.6 Tc 9.6 0 Td (=0)Tj 9.6 Tc 1.8 0 Td (;/)Tj 0.6 Tc 10.8 0 Td (*r)Tj 0 Tc 1.8 0 Td (eplace SEP with null */)Tj -24 -1.783 Td [(366 )-2400(if)-600(\(strchr\(ptr2, SEP\) != NULL\))]TJ 0 -1.189 TD [(367 )-4800(err_dump\("_db_readidx:)-600(too many separators"\);)]TJ 0 -1.783 TD [(368 )-2400(/*)]TJ 0 -1.189 TD [(369 )-3000(*)-600(Get the starting offset and length of the data record.)]TJ 0 -1.189 TD [(370 )-3000(*/)]TJ T* [(371 )-2400(if)-600(\(\(db->datoff = atol\(ptr1\)\) < 0\))]TJ 0 -1.189 TD [(372 )-4800(err_dump\("_db_readidx:)-600(starting offset < 0"\);)]TJ 0 -1.189 TD [(373 )-2400(if)-600(\(\(db->datlen = atol\(ptr2\)\) <= 0 || db->datlen > DATLEN_MAX\))]TJ 0 -1.189 TD [(374 )-4800(err_dump\("_db_readidx:)-600(invalid length"\);)]TJ 0 -1.189 TD [(375 )-2400(return\(db->ptrval\); )-2400(/*)-600(return offset of next key in chain */)]TJ 0 -1.189 TD [(376 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3337.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 309.6608 Tm [([348 )167(\320 )167(356])]TJ -0.092 Tc 5 0 Td [(We )-354(r)]TJ 0 Tc 2.184 0 Td [(ead )-170(the )-170(variable-length )-170(index )-170(r)16(ecor)]TJ 0.4204 Tc 16.084 0 Td (di)Tj 0 Tc 1.322 0 Td [(nto )-170(the)]TJ /TT0 1 Tf 3.682 0 Td (idxbuf)Tj /T1_0 1 Tf 4.02 0 Td [(\336eld )-170(in )-170(the)]TJ /TT0 1 Tf 5.507 0 Td (DB)Tj /T1_0 1 Tf -32.8 -1.2 Td [(str)8(uctur)18(e. )-569(The)]TJ -0.018 Tc 7.282 0 Td (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.5695 Tc 1.367 0 Td (ds)Tj 0 Tc 1.604 0 Td [(hould )-319(be )-319(terminated )-319(with )-319(a )-319(newline, )-319(which )-319(we)]TJ -0.018 Tc -11.11 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(place )-74(with )-74(a )-74(null )-74(byte.)-574(If )-74(the )-74(index )-74(\336le )-74(is )-74(corr)9(upt, )-74(we )-74(terminate )-74(and )-74(dr)18(op)]TJ -0.856 -1.2 Td [(cor)18(e)-250(by)-250(calling)]TJ /TT0 1 Tf 6.66 0 Td (err_dump)Tj /T1_0 1 Tf (.)Tj -11.66 -1.6 Td [([357 )167(\320 )167(367])]TJ -0.092 Tc 5 0 Td [(We )-424(s)]TJ 0 Tc 2.301 0 Td [(eparate )-240(the )-240(index )-240(r)18(ecor)]TJ 0.4899 Tc 10.839 0 Td (di)Tj 0 Tc 1.392 0 Td [(nto )-240(thr)18(ee )-240(\336elds: )-240(the )-240(key)]TJ 0.4898 Tc 11.183 0 Td (,t)Tj 0 Tc 1.066 0 Td [(he )-240(of)18(fset )-240(of )-240(the)]TJ -26.781 -1.2 Td [(corr)18(esponding )-99(data )-99(r)18(ecor)18(d, )-99(and )-99(the )-99(length )-99(of )-99(the )-99(data )-99(r)19(ecor)18(d. )-349(The)]TJ /TT0 1 Tf 30.4 0 Td (strchr)Tj /T1_0 1 Tf -30.4 -1.2 Td [(function )-218(\336nds )-218(the )-218(\336rst )-218(occurr)20(ence )-217(of )-217(the )-217(speci\336ed )-217(character )-217(in )-217(the )-217(given)]TJ 0 -1.2 TD [(string. )-451(Her)18(e)-451(we)-451(look )-201(for )-201(the )-201(character )-201(that )-201(separates )-201(\336elds )-201(in )-201(the )-201(r)15(ecor)18(d)]TJ 0 -1.2 Td (\()Tj /TT0 1 Tf (SEP)Tj /T1_0 1 Tf 0.25 Tc (,w)Tj 0 Tc 3.467 0 Td (hich we de\336ne to be a colon\).)Tj -8.467 -1.6 Td [([368 )167(\320 )167(376])]TJ -0.092 Tc 5 0 Td [(We )-236(c)]TJ 0 Tc 2.133 0 Td [(onvert )-52(the )-52(data )-52(r)19(ecor)]TJ 0.3016 Tc 9.345 0 Td (do)Tj -0.018 Tc 1.459 0 Td (ff)Tj 0 Tc 0.648 0 Td [(set )-52(and )-52(length )-52(into )-52(integers )-52(and )-52(stor)]TJ 0.3016 Tc 16.191 0 Td (et)Tj 0 Tc 1.107 0 Td [(hem )-52(in)]TJ -30.881 -1.2 Td (the)Tj /TT0 1 Tf 1.776 0 Td (DB)Tj /T1_0 1 Tf 1.589 0 Td [(str)8(uctur)18(e. )-389(Then)-390(we )-139(r)18(eturn )-139(the )-139(of)18(fset )-139(of )-139(the )-139(next )-139(r)15(ecor)18(d)-389(in)-389(t)-1(he )-139(hash)]TJ -3.366 -1.2 Td [(chain. )-273(Note)-273(that )-23(we )-23(do )-23(not )-23(r)18(ead )-23(the )-23(data )-23(r)18(ecor)18(d; )-23(that )-23(task )-23(is )-23(left )-23(to )-23(the )-23(caller)75(.)]TJ -0 -1.2 Td [(In )-66(the)]TJ /TT0 1 Tf 2.938 0 Td (db_fetch)Tj /T1_0 1 Tf 5.116 0 Td [(function, )-66(for )-66(example, )-66(we )-66(don\325t )-66(r)19(ead )-66(the )-66(data )-66(r)18(ecor)]TJ 0.3159 Tc 22.927 0 Td (du)Tj 0 Tc 1.53 0 Td (ntil)Tj /TT0 1 Tf -32.51 -1.2 Td (_db_find_and_lock)Tj /T1_0 1 Tf 10.554 0 Td [(has )-104(r)18(ead )-104(the )-104(index )-104(r)17(ecor)]TJ 0.3543 Tc 10.979 0 Td (dt)Tj 0 Tc 1.291 0 Td [(hat )-104(matches )-104(the )-104(key )-104(that)]TJ -22.825 -1.2 Td (we\325r)Tj 0.25 Tc 1.968 0 Td (el)Tj 0 Tc 1.02 0 Td [(ooking for)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47471 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (686)Tj /T1_1 1 Tf -0.092 Tc 3.5 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(I/O)]TJ 37.741 0 Td [(Chapter )-250(18)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (CREAD)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_1 1 Tf 0.5302 Tc (,P)Tj 0 Tc 5.917 0 Td [(OSIX.1, )-280(Fr)18(eeBSD, )-280(Linux, )-280(Mac )-280(OS )-280(X, )-280(Solaris\))-780(If )-280(set, )-280(the)]TJ -0.018 Tc -5.917 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ceiver is enabled and characters can be r)18(eceived.)]TJ /TT0 1 Tf -7.739 -1.648 Td (CRTSCTS)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_1 1 Tf 0.4304 Tc (,F)Tj -0.018 Tc 5.769 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-180(Linux, )-180(Mac )-180(OS )-180(X, )-180(Solaris\))-680(Behavior )-180(depends )-180(on)]TJ -6.625 -1.2 Td [(platform. )-431(For)-432(Solaris, )-181(enables )-181(outbound )-181(har)17(dwar)]TJ 0.4313 Tc 22.709 0 Td (e\337)Tj 0 Tc 1.518 0 Td [(ow )-181(contr)18(ol )-181(if )-181(set.)]TJ -24.228 -1.2 Td [(On )-316(the )-316(other )-316(thr)17(ee )-316(platforms, )-316(enables )-316(both )-316(inbound )-316(and )-316(outbound)]TJ 0 -1.2 TD [(har)18(dwar)]TJ 0.25 Tc 3.781 0 Td (e\337)Tj 0 Tc 1.337 0 Td [(ow contr)18(ol \(equivalent to)]TJ /TT0 1 Tf 11.373 0 Td (CCTS_OFLOW|CRTS_IFLOW)Tj /T1_1 1 Tf (\).)Tj /TT0 1 Tf -23.374 -1.648 Td (CRTS_IFLOW)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_1 1 Tf 0.4647 Tc (,F)Tj -0.018 Tc 5.804 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-215(Mac )-215(OS )-215(X, )-215(Solaris\))-714(Request-T)92(o-Send)]TJ 20.569 0.04 Td (\()Tj -0.037 Tc 0.333 -0.04 Td (RT)Tj 0 Tc 1.244 0 Td (S)Tj 0.525 0.04 Td (\))Tj 0.798 -0.04 Td (\337ow)Tj -30.129 -1.2 Td [(contr)18(ol of input.)]TJ /TT0 1 Tf -6.883 -1.648 Td (CRTSXOFF)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_1 1 Tf 0.4492 Tc (,S)Tj 0 Tc 5.757 0 Td [(olaris\) )-449(If)-449(set, )-199(inbound )-199(har)18(dwar)]TJ 0.4491 Tc 14.524 0 Td (e\337)Tj 0 Tc 1.536 0 Td [(ow )-199(contr)18(ol )-199(is )-199(enabled.)]TJ -21.818 -1.2 Td [(The )-21(state )-21(of )-21(the )-21(Request-T)92(o-Send )-21(RS)]TJ 16.012 0.09 Td (-)Tj 0.333 -0.09 Td [(232 )-21(signal )-21(contr)18(ols )-21(the )-21(\337ow )-21(contr)18(ol.)]TJ /TT0 1 Tf -23.228 -1.648 Td (CSIZE)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_1 1 Tf 0.3389 Tc (,P)Tj 0 Tc 5.726 0 Td [(OSIX.1, )-89(Fr)18(eeBSD, )-89(Linux, )-89(Mac )-89(OS )-89(X, )-89(Solaris\))-589(This )-89(\336eld )-89(is )-89(a)]TJ -5.726 -1.2 Td [(mask )-166(that )-166(speci\336es )-166(the )-166(number )-166(of )-166(bits )-166(per )-166(byte )-166(for )-166(both )-166(transmission)]TJ T* [(and )-215(r)18(eception. )-465(This)-465(size )-215(does )-215(not )-215(include )-215(the )-215(parity )-215(bit, )-215(if )-215(any)]TJ 0.7149 Tc 29.478 0 Td (.T)Tj 0 Tc 1.578 0 Td (he)Tj -31.056 -1.2 Td [(values )-9(for )-9(the )-9(\336eld )-9(de\336ned )-9(by )-9(this )-9(mask )-9(ar)20(e)]TJ /TT0 1 Tf 19.656 0 Td (CS5)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.309 0 Td (CS6)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.309 0 Td (CS7)Tj /T1_1 1 Tf 0.2588 Tc (,a)Tj 0 Tc 2.809 0 Td (nd)Tj /TT0 1 Tf 1.452 0 Td (CS8)Tj /T1_1 1 Tf 0.2588 Tc (,f)Tj 0 Tc 2.642 0 Td (or)Tj -31.176 -1.2 Td [(5, 6, 7, and 8 bits per byte, r)18(espectively)111(.)]TJ /TT0 1 Tf -6.883 -1.648 Td (CSTOPB)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_cflag)Tj /T1_1 1 Tf 0.2806 Tc (,P)Tj 0 Tc 5.668 0 Td [(OSIX.1, )-31(Fr)18(eeBSD, )-31(Linux, )-31(Mac )-31(OS )-31(X, )-31(Solaris\))-528(If )-30(set, )-30(two )-30(stop)]TJ -5.668 -1.2 Td (bits ar)Tj 0.25 Tc 2.721 0 Td (eu)Tj 0 Tc 1.332 0 Td (sed; otherwise, one stop bit is used.)Tj /TT0 1 Tf -10.936 -1.648 Td (ECHO)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_1 1 Tf 0.4286 Tc (,P)Tj 0 Tc 5.816 0 Td [(OSIX.1, )-179(Fr)18(eeBSD, )-179(Linux, )-179(Mac )-179(OS )-179(X, )-179(Solaris\))-679(If )-179(set, )-179(input)]TJ -5.816 -1.2 Td [(characters )-74(ar)]TJ 0.3239 Tc 5.69 0 Td (ee)Tj 0 Tc 1.282 0 Td [(choed )-74(back )-74(to )-74(the )-74(terminal )-74(device.)-574(Input )-74(characters )-74(can)]TJ -6.972 -1.2 Td (be echoed in either canonical or noncanonical mode.)Tj /TT0 1 Tf -6.883 -1.648 Td (ECHOCTL)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_1 1 Tf 0.3036 Tc (,F)Tj -0.018 Tc 5.643 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-54(Linux, )-54(Mac )-54(OS )-54(X, )-54(Solaris\))-554(If )-54(set )-54(and )-54(if)]TJ /TT0 1 Tf 20.417 0 Td (ECHO)Tj /T1_1 1 Tf 2.704 0 Td [(is )-54(set,)]TJ -29.619 -1.2 Td [(ASCII )-120(contr)18(ol )-120(characters )-120(\(those )-120(characters )-120(in )-120(the )-120(range )-120(0 )-120(thr)18(ough )-120(octal)]TJ T* [(37, )-89(inclusive\) )-89(other )-89(than )-89(the )-89(ASCII )-89(T)76(AB, )-89(the )-89(ASCII )-89(NL, )-89(and )-89(the )-89(ST)76(AR)37(T)]TJ T* [(and )-45(ST)18(OP )-45(characters )-45(ar)]TJ 0.2954 Tc 10.456 0 Td (ee)Tj 0 Tc 1.253 0 Td [(choed )-45(as)]TJ /TT0 1 Tf 4.177 0 Td (\366)Tj /T1_2 1 Tf (X)Tj /T1_1 1 Tf 0.2954 Tc (,w)Tj 0 Tc 2.701 0 Td [(her)18(e)]TJ /T1_2 1 Tf 2.212 0 Td (X)Tj /T1_1 1 Tf 1.017 0 Td [(is )-45(the )-45(character )-45(formed)]TJ -21.817 -1.2 Td [(by )-188(adding )-188(octal )-188(100 )-188(to )-188(the )-188(contr)18(ol )-188(character)]TJ 0.6881 Tc 20.296 0 Td (.F)Tj 0 Tc 1.494 0 Td [(or )-188(example, )-188(the )-188(ASCII)]TJ -21.79 -1.2 Td [(Contr)18(ol)]TJ 3.377 0.09 Td (-)Tj 0.4286 Tc 0.333 -0.09 Td (Ac)Tj 0 Tc 1.651 0 Td [(haracter )-179(\(octal )-179(1\) )-179(is )-179(echoed )-179(as)]TJ /TT0 1 Tf 14.246 0 Td (\366A)Tj /T1_1 1 Tf 1.629 0 Td [(and )-178(the )-178(ASCII )-178(DELETE)]TJ -21.235 -1.2 Td [(character )-151(\(octal )-151(177\) )-151(is )-151(echoed )-151(as)]TJ /TT0 1 Tf 15.527 0 Td (\366?)Tj /T1_1 1 Tf 0.6515 Tc (.I)Tj 0.4015 Tc 2.439 0 Td (ft)Tj 0 Tc 1.061 0 Td [(his )-151(\337ag )-151(is )-151(not )-151(set, )-151(the )-151(ASCII)]TJ -19.026 -1.2 Td [(contr)18(ol )-32(characters )-32(ar)]TJ 0.2822 Tc 9.042 0 Td (ee)Tj 0 Tc 1.24 0 Td [(choed )-32(as )-32(themselves.)-532(As )-32(with )-32(the)]TJ /TT0 1 Tf 15.333 0 Td (ECHO)Tj /T1_1 1 Tf 2.682 0 Td [(\337ag, )-32(this)]TJ -28.298 -1.2 Td [(\337ag )-303(af)18(fects )-303(the )-303(echoing )-303(of )-303(contr)18(ol )-303(characters )-303(in )-303(both )-303(canonical )-303(and)]TJ T* (noncanonical modes.)Tj 0 -1.8 TD [(Be )-46(awar)]TJ 0.2963 Tc 3.597 0 Td (et)Tj 0 Tc 1.101 0 Td [(hat )-46(some )-46(systems )-46(echo )-46(the )-46(EOF )-46(character )-46(dif)16(fer)18(ently)]TJ 0.2962 Tc 23.315 0 Td (,s)Tj 0 Tc 0.97 0 Td [(ince )-46(its)]TJ -28.984 -1.2 Td [(typical )-318(value )-318(is )-318(Contr)17(ol)]TJ 11.244 0.09 Td (-)Tj 0.333 -0.09 Td [(D. )-568(\(Contr)18(ol)]TJ 5.552 0.09 Td (-)Tj 0.333 -0.09 Td [(D)-568(is)-568(t)-1(he )-318(ASCII )-318(EOT )-318(character)73(,)]TJ -17.462 -1.2 Td [(which can cause some terminals to hang up.\))-500(Check your manual.)]TJ /TT0 1 Tf -6.883 -1.648 Td (ECHOE)Tj /T1_1 1 Tf 6.883 0 Td (\()Tj /TT0 1 Tf (c_lflag)Tj /T1_1 1 Tf 0.4202 Tc (,P)Tj 0 Tc 5.807 0 Td [(OSIX.1, )-170(Fr)18(eeBSD, )-170(Linux, )-170(Mac )-170(OS )-170(X, )-170(Solaris\))-671(If )-170(set )-170(and )-170(if)]TJ /TT0 1 Tf -5.807 -1.2 Td (ICANON)Tj /T1_1 1 Tf 4.12 0 Td [(is )-270(set, )-270(the )-270(ERASE )-270(character )-270(erases )-270(the )-270(last )-270(character )-270(in )-270(the)]TJ -4.12 -1.2 Td [(curr)18(ent )-19(line )-19(fr)18(om )-19(the )-19(display)]TJ 0.5188 Tc 12.613 0 Td (.T)Tj 0 Tc 1.382 0 Td [(his )-19(is )-19(usually )-19(done )-19(in )-19(the )-19(terminal )-19(driver)]TJ -13.995 -1.2 Td [(by writing the thr)18(ee-character sequence backspace, space, backspace.)]TJ T* [(If )-24(the )-24(WERASE )-24(character )-24(is )-24(supported,)]TJ /TT0 1 Tf 17.508 0 Td (ECHOE)Tj /T1_1 1 Tf 3.274 0 Td [(causes )-24(the )-24(pr)18(evious )-24(wor)19(d)]TJ -20.781 -1.2 Td [(to be erased using one or mor)18(e)-250(of)-250(the same thr)18(ee-character sequence.)]TJ -0 -1.8 Td [(If )-83(the)]TJ /TT0 1 Tf 2.724 0 Td (ECHOPRT)Tj /T1_1 1 Tf 4.533 0 Td [(\337ag )-83(is )-83(supported, )-83(the )-83(actions )-83(described )-83(her)]TJ 0.3333 Tc 19.44 0 Td (ef)Tj 0 Tc 1.145 0 Td (or)Tj /TT0 1 Tf 1.274 0 Td (ECHOE)Tj /T1_1 1 Tf -29.117 -1.2 Td (assume that the)Tj /TT0 1 Tf 7.184 0 Td (ECHOPRT)Tj /T1_1 1 Tf 4.45 0 Td (\337ag is not set.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47472 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (656)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Now )-73(let\325s )-73(look )-73(at )-73(the )-73(open )-73(server)]TJ 0.5727 Tc 14.968 0 Td (.I)Tj 0 Tc 1.16 0 Td [(t)-323(is)-323(t)1(he )-73(pr)18(ogram)]TJ /TT0 1 Tf 7.577 0 Td (opend)Tj /T1_1 1 Tf 3.323 0 Td [(that )-73(is )-73(executed )-73(by )-73(the)]TJ -28.827 -1.2 Td [(client )-4(in )-4(Figur)]TJ 0.254 Tc 6.177 0 Td (e1)Tj 0 Tc 1.233 0 Td [(7.19. )-254(First,)-254(we )-4(have )-4(the)]TJ /TT0 1 Tf 10.588 0 Td (opend.h)Tj /T1_1 1 Tf 4.454 0 Td [(header )-4(\(Figur)]TJ 0.254 Tc 6.016 0 Td (e1)Tj 0 Tc 1.233 0 Td [(7.20\), )-4(which )-4(includes)]TJ -29.701 -1.2 Td (the standar)Tj 0.25 Tc 4.957 0 Td (dh)Tj 0 Tc 1.443 0 Td [(eaders and declar)18(es the global variables and function pr)18(ototypes.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6378.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 628.2236 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD (#define CL_OPEN "open")Tj 19.2 0 Td (/* client\325s request for server */)Tj -19.2 -2.14 Td [(extern char)-1200(errmsg[]; )-600(/*)-600(error message string to return to client */)]TJ 0 -1.189 TD [(extern int)-1800(oflag; )-2400(/*)-600(open\(\) flag: O_xxx ... */)]TJ T* [(extern char *pathname;)-1200(/* of file to open\(\) for client */)]TJ 0 -2.14 TD [(int )-3000(cli_args\(int,)-600(char **\);)]TJ 0 -1.189 TD [(void )-2400(handle_request\(char)-600(*, int, int\);)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5229.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 244.264 506.8268 Tm (Figure 17.20)Tj /T1_1 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (opend.h)Tj /T1_1 1 Tf 4.45 0 Td (header)Tj 0.25 Tc 2.972 0 Td (,v)Tj 0 Tc 1.065 0 Td (ersion 1)Tj 9.9982 0 0 9.9982 147.5729 485.2306 Tm (The)Tj /TT0 1 Tf 2.019 0 Td (main)Tj /T1_1 1 Tf 2.745 0 Td [(function )-95(\(Figur)]TJ 0.3453 Tc 6.768 0 Td (e1)Tj 0 Tc 1.324 0 Td [(7.21\) )-95(r)18(eads )-95(the )-95(r)18(equests )-95(fr)18(om )-95(the )-95(client )-95(on )-95(the )-95(fd-pipe)]TJ -14.657 -1.2 Td (\(its standar)Tj 0.25 Tc 4.944 0 Td (di)Tj 0 Tc 1.152 0 Td (nput\) and calls the function)Tj /TT0 1 Tf 12.432 0 Td (handle_request)Tj /T1_1 1 Tf (.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4661.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9978 0 0 8.9978 129.5689 456.5074 Tm [(#include )-1800("opend.h")]TJ 0 -2.14 TD [(char )-2400(errmsg[MAXLINE];)]TJ 0 -1.189 TD [(int )-3000(oflag;)]TJ T* [(char )-1800(*pathname;)]TJ 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(nread;)]TJ T* [(char )-1800(buf[MAXLINE];)]TJ 0 -2.14 TD [(for \( ; ; \) {)-1800(/* read arg buffer from client, process request */)]TJ 2.4 -1.189 Td (if \(\(nread = read\(STDIN_FILENO, buf, MAXLINE\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("read error on stream pipe"\);)Tj -2.4 -1.189 Td (else if \(nread == 0\))Tj 2.4 -1.189 Td [(break; )-3000(/*)-600(client has closed the stream pipe */)]TJ -2.4 -1.189 Td (handle_request\(buf, nread, STDOUT_FILENO\);)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2442.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 236.549 228.1675 Tm (Figure 17.21)Tj /T1_1 1 Tf 6.195 0 Td (The server)Tj /TT0 1 Tf 4.911 0 Td (main)Tj /T1_1 1 Tf 2.65 0 Td (function, version 1)Tj 9.997 0 0 9.997 147.5558 204.1747 Tm [(The )-256(function)]TJ /TT0 1 Tf 6.393 0 Td (handle_request)Tj /T1_1 1 Tf 8.906 0 Td [(in )-256(Figur)]TJ 0.5062 Tc 3.762 0 Td (e1)Tj 0 Tc 1.485 0 Td [(7.22 )-256(does )-256(all )-256(the )-256(work.)-756(It )-256(calls )-256(the)]TJ -22.347 -1.2 Td (function)Tj /TT0 1 Tf 4.363 0 Td (buf_args)Tj /T1_1 1 Tf 5.456 0 Td [(to )-406(br)18(eak )-406(up )-406(the )-406(client\325s )-406(r)18(equest )-406(into )-406(a )-406(standar)17(d)]TJ /TT0 1 Tf 24.372 0 Td (argv)Tj /T1_1 1 Tf (-style)Tj -34.191 -1.2 Td [(ar)18(gument )-71(list )-71(and )-71(calls )-71(the )-71(function)]TJ /TT0 1 Tf 16.301 0 Td (cli_args)Tj /T1_1 1 Tf 5.121 0 Td [(to )-71(pr)18(ocess )-71(the )-71(client\325s )-71(ar)18(guments. )-321(If)-321(all)]TJ -21.422 -1.2 Td [(is )-93(OK,)]TJ /TT0 1 Tf 3.164 0 Td (open)Tj /T1_1 1 Tf 2.743 0 Td [(is )-93(called )-93(to )-93(open )-93(the )-93(\336le, )-93(and )-93(then)]TJ /TT0 1 Tf 15.832 0 Td (send_fd)Tj /T1_1 1 Tf 4.543 0 Td [(sends )-93(the )-93(descriptor )-93(back )-93(to)]TJ -26.283 -1.2 Td [(the )-18(client )-18(acr)17(oss )-18(the )-18(fd-pipe )-18(\(its )-18(standar)]TJ 0.2684 Tc 17.455 0 Td (do)Tj 0 Tc 1.425 0 Td [(utput\). )-268(If)-269(an )-18(err)18(or )-18(is )-18(encounter)17(ed,)]TJ /TT0 1 Tf 15.319 0 Td (send_err)Tj /T1_1 1 Tf -34.2 -1.2 Td [(is )-301(called )-301(to )-301(send )-301(back )-301(an )-301(err)18(or )-301(message, )-301(using )-301(the )-301(client\320server )-301(pr)18(otocol )-301(that )-301(we)]TJ 0 -1.2 TD [(described earlier)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47473 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (550)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-2400(n,)-600(fd1[2], fd2[2];)]TJ T* [(pid_t )-1200(pid;)]TJ T* [(char )-1800(line[MAXLINE];)]TJ 0 -2.14 TD (if \(signal\(SIGPIPE, sig_pipe\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("signal error"\);)Tj -2.4 -2.14 Td (if \(pipe\(fd1\) < 0 || pipe\(fd2\) < 0\))Tj 2.4 -1.189 Td (err_sys\("pipe error"\);)Tj -2.4 -2.14 Td (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(pid > 0\) {)Tj 27 0 Td (/* parent */)Tj -26.4 -1.189 Td (close\(fd1[0]\);)Tj 0 -1.189 TD (close\(fd2[1]\);)Tj 0 -2.14 TD (while \(fgets\(line, MAXLINE, stdin\) != NULL\) {)Tj 0.6 Tc 2.4 -1.189 Td (n=s)Tj 0 Tc 3 0 Td (trlen\(line\);)Tj -3 -1.189 Td (if \(write\(fd1[1], line, n\) != n\))Tj 2.4 -1.189 Td (err_sys\("write error to pipe"\);)Tj -2.4 -1.189 Td (if \(\(n = read\(fd2[0], line, MAXLINE\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("read error from pipe"\);)Tj -2.4 -1.189 Td (if \(n == 0\) {)Tj 2.4 -1.189 Td (err_msg\("child closed pipe"\);)Tj 0 -1.189 TD (break;)Tj -2.4 -1.189 Td (})Tj T* [(line[n] = 0;)-2400(/* null terminate */)]TJ T* (if \(fputs\(line, stdout\) == EOF\))Tj 2.4 -1.189 Td (err_sys\("fputs error"\);)Tj -4.8 -1.189 Td (})Tj 0 -2.14 TD (if \(ferror\(stdin\)\))Tj 2.4 -1.189 Td (err_sys\("fgets error on stdin"\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 24.6 0 Td (/* child */)Tj -24 -1.189 Td (close\(fd1[1]\);)Tj 0 -1.189 TD (close\(fd2[0]\);)Tj T* (if \(fd1[0] != STDIN_FILENO\) {)Tj 2.4 -1.189 Td (if \(dup2\(fd1[0], STDIN_FILENO\) != STDIN_FILENO\))Tj 2.4 -1.189 Td (err_sys\("dup2 error to stdin"\);)Tj -2.4 -1.189 Td (close\(fd1[0]\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (if \(fd2[1] != STDOUT_FILENO\) {)Tj 2.4 -1.189 Td (if \(dup2\(fd2[1], STDOUT_FILENO\) != STDOUT_FILENO\))Tj 2.4 -1.189 Td (err_sys\("dup2 error to stdout"\);)Tj -2.4 -1.189 Td (close\(fd2[1]\);)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (if \(execl\("./add2", "add2", \(char *\)0\) < 0\))Tj 2.4 -1.189 Td (err_sys\("execl error"\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47474 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (544)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm [(if \(childpid == NULL\) {)-3000(/* first time through */)]TJ 2.4 -1.189 Td (/* allocate zeroed out array for child pids */)Tj 0 -1.189 TD (maxfd = open_max\(\);)Tj T* (if \(\(childpid = calloc\(maxfd, sizeof\(pid_t\)\)\) == NULL\))Tj 2.4 -1.189 Td (return\(NULL\);)Tj -4.8 -1.189 Td (})Tj 0 -2.259 TD (if \(pipe\(pfd\) < 0\))Tj 2.4 -1.189 Td [(return\(NULL\); )-1200(/*)-600(errno set by pipe\(\) */)]TJ -2.4 -1.189 Td (if \(pfd[0] >= maxfd || pfd[1] >= maxfd\) {)Tj 2.4 -1.189 Td (close\(pfd[0]\);)Tj 0 -1.189 TD (close\(pfd[1]\);)Tj T* (errno = EMFILE;)Tj T* (return\(NULL\);)Tj -2.4 -1.189 Td (})Tj 0 -2.259 TD (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td [(return\(NULL\); )-1200(/*)-600(errno set by fork\(\) */)]TJ 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(pid == 0\) {)Tj 27 0 Td (/* child */)Tj -26.4 -1.189 Td (if \(*type == \325r\325\) {)Tj 2.4 -1.189 Td (close\(pfd[0]\);)Tj 0 -1.189 TD (if \(pfd[1] != STDOUT_FILENO\) {)Tj 2.4 -1.189 Td (dup2\(pfd[1], STDOUT_FILENO\);)Tj 0 -1.189 TD (close\(pfd[1]\);)Tj -2.4 -1.189 Td (})Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (close\(pfd[1]\);)Tj 0 -1.189 TD (if \(pfd[0] != STDIN_FILENO\) {)Tj 2.4 -1.189 Td (dup2\(pfd[0], STDIN_FILENO\);)Tj T* (close\(pfd[0]\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.259 TD (/* close all descriptors in childpid[] */)Tj 0 -1.189 TD (for \(i = 0; i < maxfd; i++\))Tj 2.4 -1.189 Td (if \(childpid[i] > 0\))Tj 2.4 -1.189 Td (close\(i\);)Tj -4.8 -2.259 Td (execl\("/bin/sh", "sh", "-c", cmdstring, \(char *\)0\);)Tj 0 -1.189 TD (_exit\(127\);)Tj -2.4 -1.189 Td (})Tj 0 -2.259 TD (/* parent continues... */)Tj 0 -1.189 TD (if \(*type == \325r\325\) {)Tj 2.4 -1.189 Td (close\(pfd[1]\);)Tj T* (if \(\(fp = fdopen\(pfd[0], type\)\) == NULL\))Tj 2.4 -1.189 Td (return\(NULL\);)Tj 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (close\(pfd[0]\);)Tj T* (if \(\(fp = fdopen\(pfd[1], type\)\) == NULL\))Tj 2.4 -1.189 Td (return\(NULL\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47475 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.2)]TJ 35.826 0 Td [(Nonblocking )-250(I/O)]TJ /T1_1 1 Tf 10.007 0 Td (483)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj 0 -2.259 TD [(char )-1800(buf[500000];)]TJ T* (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(ntowrite,)-600(nwrite;)]TJ T* [(char )-1800(*ptr;)]TJ 0 -2.259 TD (ntowrite = read\(STDIN_FILENO, buf, sizeof\(buf\)\);)Tj 0 -1.189 TD (fprintf\(stderr, "read %d bytes\\n", ntowrite\);)Tj 0 -2.259 TD [(set_fl\(STDOUT_FILENO, O_NONBLOCK\);)-1200(/* set nonblocking */)]TJ T* (ptr = buf;)Tj 0 -1.189 TD (while \(ntowrite > 0\) {)Tj 2.4 -1.189 Td (errno = 0;)Tj T* (nwrite = write\(STDOUT_FILENO, ptr, ntowrite\);)Tj T* (fprintf\(stderr, "nwrite = %d, errno = %d\\n", nwrite, errno\);)Tj 0 -2.259 TD (if \(nwrite > 0\) {)Tj 2.4 -1.189 Td (ptr += nwrite;)Tj 0 -1.189 TD (ntowrite -= nwrite;)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.259 TD [(clr_fl\(STDOUT_FILENO, O_NONBLOCK\);)-1200(/* clear nonblocking */)]TJ T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3208.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 255.5813 304.8214 Tm (Figure 14.1)Tj /T1_0 1 Tf 5.695 0 Td [(Lar)18(ge nonblocking)]TJ /TT0 1 Tf 8.552 0 Td (write)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 147.5825 274.825 Tm (If the standar)Tj 0.25 Tc 5.877 0 Td (do)Tj 0 Tc 1.407 0 Td [(utput is a r)18(egular \336le, we expect the)]TJ /TT0 1 Tf 16.045 0 Td (write)Tj /T1_0 1 Tf 3.25 0 Td (to be executed once:)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 251.4782 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l /etc/services)Tj /T1_2 1 Tf 26.8 0 Td (print \336le size)Tj /TT0 1 Tf -28 -1.333 Td [(-rw-r--r-- )-600(1)-600(root )-2400(677959)-600(Jun 23)-1200(2009 /etc/services)]TJ 0 -1.333 TD ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out < /etc/services > temp.file)Tj /T1_2 1 Tf 26.8 0 Td [(try a r)18(egular \336le \336rst)]TJ /TT0 1 Tf -28 -1.333 Td (read 500000 bytes)Tj 0 -1.333 TD (nwrite = 500000, errno = 0)Tj /T1_2 1 Tf 0.25 Tc 28 0 Td (as)Tj 0 Tc 1.083 0 Td (ingle write)Tj /TT0 1 Tf -29.083 -1.333 Td ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l temp.file)Tj /T1_2 1 Tf 26.8 0 Td (verify size of output \336le)Tj /TT0 1 Tf -28 -1.333 Td [(-rw-rw-r-- )-600(1)-600(sar )-3000(500000)-600(Apr )-600(1)-600(13:03 temp.file)]TJ /T1_0 1 Tf 9.9988 0 0 9.9988 129.5843 155.4897 Tm [(But )-76(if )-76(the )-76(standar)]TJ 0.326 Tc 7.849 0 Td (do)Tj 0 Tc 1.483 0 Td [(utput )-76(is )-76(a )-76(terminal, )-76(we )-76(expect )-76(the)]TJ /TT0 1 Tf 15.499 0 Td (write)Tj /T1_0 1 Tf 3.326 0 Td [(to )-76(r)18(eturn )-76(a )-76(partial )-76(count)]TJ -28.157 -1.2 Td [(sometimes and an err)18(or at other times.)-500(This is what we see:)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47476 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.4)]TJ /TT0 1 Tf 36.403 0 Td (vfork)Tj /T1_0 1 Tf 3.5 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (235)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.902 TD [(int )-2400(globvar)]TJ 0.6 Tc 9.6 0 Td (=6)Tj 4.8 Tc 1.8 0 Td (;/)Tj 0.6 Tc 6 0 Td (*e)Tj 0 Tc 1.8 0 Td (xternal variable in initialized data */)Tj -19.2 -1.902 Td (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-2400(var;)-4800(/* automatic variable on the stack */)]TJ 0 -1.189 TD [(pid_t )-1200(pid;)]TJ 0 -1.902 TD (var = 88;)Tj 0 -1.189 TD [(printf\("before vfork\\n"\);)-1800(/* we don\325t flush stdio */)]TJ T* (if \(\(pid = vfork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("vfork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(pid == 0\) {)-3600(/* child */)]TJ 0.6 -1.189 Td (globvar++; )Tj 14.4 0 Td [(/*)-600(modify parent\325s variables */)]TJ -14.4 -1.189 Td (var++;)Tj T* (_exit\(0\); )Tj 14.4 0 Td [(/*)-600(child terminates */)]TJ -16.8 -1.189 Td (})Tj 0 -1.902 TD (/* parent continues here */)Tj 0 -1.189 TD (printf\("pid = %ld, glob = %d, var = %d\\n", \(long\)getpid\(\), globvar\ ,)Tj 1.2 -1.189 Td (var\);)Tj -1.2 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4150.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 254.9214 398.9701 Tm (Figure 8.3)Tj /T1_0 1 Tf 5.195 0 Td (Example of)Tj /TT0 1 Tf 5.26 0 Td (vfork)Tj /T1_0 1 Tf 3.25 0 Td (function)Tj 9.9988 0 0 9.9988 129.5847 374.973 Tm [(Running this pr)18(ogram gives us)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5826 358.275 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (before vfork)Tj 0 -1.189 TD (pid = 29039, glob = 7, var = 89)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 147.5826 318.8797 Tm [(Her)18(e, )-54(the )-54(incr)18(ementing )-54(of )-54(the )-54(variables )-54(done )-54(by )-54(the )-54(child )-54(changes )-54(the )-54(values )-54(in )-54(the)]TJ -1.8 -1.2 Td [(par)18(ent. )-321(Because)-322(the )-71(child )-71(r)8(uns )-71(in )-71(the )-71(addr)18(ess )-71(space )-71(of )-71(the )-71(par)18(ent, )-71(this )-71(doesn\325t )-71(surprise)]TJ 0 -1.2 TD [(us. )-250(This)-250(behavior)]TJ 0.25 Tc 7.774 0 Td (,h)Tj 0 Tc 1.082 0 Td (owever)Tj 0.25 Tc 3.224 0 Td (,d)Tj 0 Tc 1.111 0 Td [(if)18(fers fr)18(om the behavior of)]TJ /TT0 1 Tf 11.803 0 Td (fork)Tj /T1_0 1 Tf (.)Tj -23.194 -1.2 Td [(Note )-307(in )-307(Figur)]TJ 0.5566 Tc 6.551 0 Td (e8)Tj 0 Tc 1.536 0 Td [(.3 )-307(that )-307(we )-307(call)]TJ /TT0 1 Tf 7.549 0 Td (_exit)Tj /T1_0 1 Tf 3.557 0 Td [(instead )-307(of)]TJ /TT0 1 Tf 5.205 0 Td (exit)Tj /T1_0 1 Tf 0.8067 Tc (.A)Tj 0 Tc 4.235 0 Td [(s)-557(we)-557(d)1(escribed )-307(in)]TJ -30.433 -1.2 Td [(Section )-123(7.3,)]TJ /TT0 1 Tf 5.44 0 Td (_exit)Tj /T1_0 1 Tf 3.373 0 Td [(does )-123(not )-123(perform )-123(any )-123(\337ushing )-123(of )-123(standar)]TJ 0.3733 Tc 18.869 0 Td (dI)Tj 0 Tc 1.321 0 Td [(/O )-123(buf)18(fers. )-373(If)-374(we )-123(call)]TJ /TT0 1 Tf -29.004 -1.2 Td (exit)Tj /T1_0 1 Tf 2.759 0 Td [(instead, )-109(the )-109(r)18(esults )-109(ar)]TJ 0.3591 Tc 9.728 0 Td (ei)Tj 0 Tc 1.129 0 Td [(ndeterminate. )-359(Depending)-359(on )-109(the )-109(implementation )-109(of )-109(the)]TJ -13.616 -1.2 Td (standar)Tj 0.2527 Tc 3.32 0 Td (dI)Tj 0 Tc 1.201 0 Td [(/O )-3(library)111(,)-253(we)-253(m)1(ight )-3(see )-3(no )-3(dif)19(fer)18(ence )-3(in )-3(the )-3(output, )-3(or )-3(we )-3(might )-3(\336nd )-3(that )-3(the)]TJ -4.521 -1.2 Td [(output fr)18(om the \336rst)]TJ /TT0 1 Tf 9.281 0 Td (printf)Tj /T1_0 1 Tf 3.85 0 Td [(in the par)18(ent has disappear)18(ed.)]TJ -11.331 -1.2 Td [(If )-19(the )-19(child )-19(calls)]TJ /TT0 1 Tf 7.304 0 Td (exit)Tj /T1_0 1 Tf 0.2695 Tc (,t)Tj 0 Tc 3.246 0 Td [(he )-19(implementation )-19(\337ushes )-19(the )-19(standar)]TJ 0.2696 Tc 17.026 0 Td (dI)Tj 0 Tc 1.218 0 Td [(/O )-20(str)18(eams. )-270(If)-269(this)]TJ -30.593 -1.2 Td [(is )-110(the )-110(only )-110(action )-110(taken )-110(by )-110(the )-110(library)]TJ 0.3597 Tc 17.093 0 Td (,t)Tj 0 Tc 0.936 0 Td [(hen )-110(we )-110(will )-110(see )-110(no )-110(dif)20(fer)18(ence )-110(fr)18(om )-110(the )-110(output)]TJ -18.029 -1.2 Td [(generated )-36(if )-36(the )-36(child )-36(called)]TJ /TT0 1 Tf 12.682 0 Td (_exit)Tj /T1_0 1 Tf 0.5357 Tc (.I)Tj 0.2857 Tc 4.123 0 Td (ft)Tj 0 Tc 0.945 0 Td [(he )-36(implementation )-36(also )-36(closes )-36(the )-36(standar)]TJ 0.2857 Tc 18.625 0 Td (dI)Tj 0 Tc 1.234 0 Td (/O)Tj -37.608 -1.2 Td [(str)18(eams, )-171(however)]TJ 0.4212 Tc 7.89 0 Td (,t)Tj 0 Tc 0.997 0 Td [(he )-171(memory )-171(r)18(epr)18(esenting )-171(the)]TJ /TT0 1 Tf 13.428 0 Td (FILE)Tj /T1_0 1 Tf 2.821 0 Td [(object )-171(for )-171(the )-171(standar)]TJ 0.4211 Tc 9.827 0 Td (do)Tj 0 Tc 1.578 0 Td (utput)Tj -36.541 -1.2 Td [(will )-9(be )-9(clear)18(ed )-9(out.)-509(Because )-9(the )-9(child )-9(is )-9(borr)18(owing )-9(the )-9(par)18(ent\325s )-9(addr)21(ess )-9(space, )-9(when )-9(the)]TJ T* [(par)18(ent )-134(r)18(esumes )-134(and )-134(calls)]TJ /TT0 1 Tf 11.714 0 Td (printf)Tj /T1_0 1 Tf [(,)-384(no)-384(o)-1(utput )-134(will )-134(appear )-134(and)]TJ /TT0 1 Tf 16.765 0 Td (printf)Tj /T1_0 1 Tf 3.984 0 Td [(will )-134(r)18(eturn)]TJ /TT2 1 Tf 5.238 0 Td (!)Tj /T1_0 1 Tf (1.)Tj -37.701 -1.2 Td [(Note )-167(that )-167(the )-167(par)18(ent\325s)]TJ /TT0 1 Tf 10.538 0 Td (STDOUT_FILENO)Tj /T1_0 1 Tf 8.217 0 Td [(is )-167(still )-167(valid, )-167(as )-167(the )-167(child )-167(gets )-167(a )-167(copy )-167(of )-167(the)]TJ -18.755 -1.2 Td [(par)18(ent\325s \336le descriptor array \(r)18(efer back to Figur)]TJ 0.25 Tc 21.254 0 Td (e8)Tj 0 Tc 1.229 0 Td (.2\).)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47477 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (154)Tj /T1_1 1 Tf 3.5 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Library)]TJ 34.372 0 Td [(Chapter )-250(5)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-2400(c;)]TJ 0 -1.902 TD (while \(\(c = getc\(stdin\)\) != EOF\))Tj 2.4 -1.189 Td (if \(putc\(c, stdout\) == EOF\))Tj 2.4 -1.189 Td (err_sys\("output error"\);)Tj -4.8 -1.902 Td (if \(ferror\(stdin\)\))Tj 2.4 -1.189 Td (err_sys\("input error"\);)Tj -2.4 -1.902 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5113.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 192.7849 495.2586 Tm (Figure 5.4)Tj /T1_1 1 Tf 5.195 0 Td (Copy standar)Tj 0.25 Tc 5.982 0 Td (di)Tj 0 Tc 1.152 0 Td (nput to standar)Tj 0.25 Tc 6.804 0 Td (do)Tj 0 Tc 1.407 0 Td (utput using)Tj /TT0 1 Tf 5.415 0 Td (getc)Tj /T1_1 1 Tf 2.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (putc)Tj /T1_1 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5844 471.2614 Tm [(We )-417(c)]TJ 0 Tc 2.314 0 Td [(an )-233(make )-233(another )-233(version )-233(of )-233(this )-233(pr)19(ogram )-233(that )-233(uses)]TJ /TT0 1 Tf 24.562 0 Td (fgetc)Tj /T1_1 1 Tf 3.483 0 Td (and)Tj /TT0 1 Tf 2.176 0 Td (fputc)Tj /T1_1 1 Tf 0.4828 Tc (,w)Tj 0 Tc 4.567 0 Td (hich)Tj -37.101 -1.2 Td [(should )-17(be )-17(functions, )-17(not )-17(macr)20(os. )-267(\(W)]TJ 0.2666 Tc 16.172 0 Td (ed)Tj 0 Tc 1.357 0 Td [(on\325t )-17(show )-17(this )-17(trivial )-17(change )-17(to )-17(the )-17(sour)18(ce )-17(code.\))]TJ -15.729 -1.2 Td [(Finally)111(,)-250(we)-250(have a version that r)18(eads and writes lines, shown in Figur)]TJ 0.25 Tc 30.535 0 Td (e5)Tj 0 Tc 1.229 0 Td (.5.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4305.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 420.9412 Tm (#include "apue.h")Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(char )-1800(buf[MAXLINE];)]TJ 0 -1.902 TD (while \(fgets\(buf, MAXLINE, stdin\) != NULL\))Tj 2.4 -1.189 Td (if \(fputs\(buf, stdout\) == EOF\))Tj 2.4 -1.189 Td (err_sys\("output error"\);)Tj -4.8 -1.902 Td (if \(ferror\(stdin\)\))Tj 2.4 -1.189 Td (err_sys\("input error"\);)Tj -2.4 -1.902 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2728.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 187.9629 256.7744 Tm (Figure 5.5)Tj /T1_1 1 Tf 5.195 0 Td (Copy standar)Tj 0.25 Tc 5.982 0 Td (di)Tj 0 Tc 1.152 0 Td (nput to standar)Tj 0.25 Tc 6.804 0 Td (do)Tj 0 Tc 1.407 0 Td (utput using)Tj /TT0 1 Tf 5.415 0 Td (fgets)Tj /T1_1 1 Tf 3.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (fputs)Tj /T1_1 1 Tf 9.9976 0 0 9.9976 129.5689 232.7801 Tm [(Note )-147(that )-147(we )-147(do )-147(not )-147(close )-147(the )-147(standar)]TJ 0.3968 Tc 17.509 0 Td (dI)Tj 0 Tc 1.345 0 Td [(/O )-147(str)18(eams )-147(explicitly )-147(in )-147(either )-147(Figur)]TJ 0.3968 Tc 16.683 0 Td (e5)Tj 0 Tc 1.376 0 Td [(.4 )-147(or)]TJ -36.912 -1.2 Td (Figur)Tj 0.3007 Tc 2.383 0 Td (e5)Tj 0 Tc 1.28 0 Td [(.5. )-301(Instead,)-300(we )-51(know )-51(that )-51(the)]TJ /TT0 1 Tf 13.515 0 Td (exit)Tj /T1_1 1 Tf 2.701 0 Td [(function )-51(will )-51(\337ush )-51(any )-51(unwritten )-51(data )-51(and)]TJ -19.879 -1.2 Td [(then )-258(close )-258(all )-258(open )-258(str)19(eams. )-508(\(W)92(e\325ll )-258(discuss )-258(this )-258(in )-258(Section )-258(8.5.\))-758(It )-258(is )-258(inter)18(esting )-258(to)]TJ -0 -1.2 Td (compar)Tj 0.3382 Tc 3.351 0 Td (et)Tj 0 Tc 1.143 0 Td [(he )-88(timing )-88(of )-88(these )-88(thr)18(ee )-88(pr)18(ograms )-88(with )-88(the )-88(timing )-88(data )-88(fr)18(om )-88(Figur)]TJ 0.3383 Tc 30.213 0 Td (e3)Tj 0 Tc 1.317 0 Td [(.6. )-338(W)92(e)]TJ -36.025 -1.2 Td [(show )-250(this )-250(data )-250(when )-250(operating )-250(on )-250(the )-250(same )-250(\336le )-250(\(98.5 )-250(MB )-250(with )-250(3 )-250(million )-250(lines\) )-250(in)]TJ 0 -1.2 TD (Figur)Tj 0.25 Tc 2.383 0 Td (e5)Tj 0 Tc 1.229 0 Td (.6.)Tj -1.812 -1.2 Td [(For )-118(each )-118(of )-118(the )-118(thr)18(ee )-118(standar)]TJ 0.3683 Tc 13.173 0 Td (dI)Tj 0 Tc 1.316 0 Td [(/O )-118(versions, )-118(the )-118(user )-118(CPU )-118(time )-118(is )-118(lar)16(ger )-118(than )-118(the)]TJ -16.289 -1.2 Td (best)Tj /TT0 1 Tf 2.398 0 Td (read)Tj /T1_1 1 Tf 3.016 0 Td [(version )-365(fr)18(om )-365(Figur)]TJ 0.6155 Tc 9.035 0 Td (e3)Tj 0 Tc 1.594 0 Td [(.6, )-365(because )-365(the )-365(character)18(-at-a-time )-365(standar)]TJ 0.6155 Tc 20.002 0 Td (dI)Tj 0 Tc 1.564 0 Td (/O)Tj -37.608 -1.2 Td [(versions )-128(have )-128(a )-128(loop )-128(that )-128(is )-128(executed )-128(100 )-128(million )-128(times, )-128(and )-128(the )-128(loop )-128(in )-128(the )-128(line-at-a-)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47478 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (208)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Envir)18(onment )]TJ 39.241 0 Td [(Chapter)-500(7)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Because )-454(the )-454(thr)18(ee)]TJ /TT0 1 Tf 9.282 0 Td (alloc)Tj /T1_1 1 Tf 3.704 0 Td [(functions )-454(r)18(eturn )-454(a )-454(generic)]TJ /TT0 1 Tf 13.435 0 Td [(void )267(*)]TJ /T1_1 1 Tf 4.037 0 Td [(pointer)74(,)-704(if)-704(we)]TJ /TT0 1 Tf -32.259 -1.2 Td [(#include )273()]TJ /T1_1 1 Tf 11.455 0 Td [(\(to )-77(obtain )-77(the )-77(function )-77(pr)16(ototypes\), )-77(we )-77(do )-77(not )-77(explicitly )-77(have)]TJ -11.455 -1.2 Td [(to )-206(cast )-206(the )-206(pointer )-206(r)18(eturned )-206(by )-206(these )-206(functions )-206(when )-206(we )-206(assign )-206(it )-206(to )-206(a )-206(pointer )-206(of )-206(a)]TJ 0 -1.2 TD [(dif)18(fer)18(ent )-33(type.)-533(The )-33(default )-33(r)18(eturn )-33(value )-33(for )-33(undeclar)18(ed )-33(functions )-33(is)]TJ /TT0 1 Tf 30.198 0 Td (int)Tj /T1_1 1 Tf [(,)-283(so)-283(using )-33(a )-33(cast)]TJ -30.198 -1.2 Td [(without )-75(the )-75(pr)18(oper )-75(function )-75(declaration )-75(could )-75(hide )-75(an )-75(err)18(or )-75(on )-75(systems )-75(wher)]TJ 0.3251 Tc 34.79 0 Td (et)Tj 0 Tc 1.13 0 Td [(he )-75(size)]TJ -35.92 -1.2 Td (of type)Tj /TT0 1 Tf 3.341 0 Td (int)Tj /T1_1 1 Tf 2.05 0 Td [(dif)18(fers fr)18(om the size of a function\325s r)18(eturn value \(a pointer in this case\).)]TJ -3.591 -1.2 Td [(The )-64(function)]TJ /TT0 1 Tf 6.01 0 Td (free)Tj /T1_1 1 Tf 2.714 0 Td [(causes )-64(the )-64(space )-64(pointed )-64(to )-64(by)]TJ /T1_2 1 Tf 14.012 0 Td (ptr)Tj /T1_1 1 Tf 1.536 0 Td [(to )-64(be )-64(deallocated.)-565(This )-64(fr)18(eed)]TJ -26.072 -1.2 Td [(space )-49(is )-49(usually )-49(put )-49(into )-49(a )-49(pool )-49(of )-49(available )-49(memory )-49(and )-49(can )-49(be )-49(allocated )-49(in )-49(a )-49(later )-49(call)]TJ T* [(to one of the thr)18(ee)]TJ /TT0 1 Tf 8.238 0 Td (alloc)Tj /T1_1 1 Tf 3.25 0 Td (functions.)Tj -9.688 -1.2 Td (The)Tj /TT0 1 Tf 2.011 0 Td (realloc)Tj /T1_1 1 Tf 4.537 0 Td [(function )-87(lets )-87(us )-87(change )-87(the )-87(size )-87(of )-87(a )-87(pr)18(eviously )-87(allocated )-87(ar)15(ea. )-337(\(The)]TJ -8.349 -1.2 Td [(most )-57(common )-57(usage )-57(is )-57(to )-57(incr)17(ease )-57(an )-57(ar)18(ea\325s )-57(size.\))-557(For )-57(example, )-57(if )-57(we )-57(allocate )-57(r)18(oom )-57(for)]TJ T* [(512 )-163(elements )-163(in )-163(an )-163(array )-163(that )-163(we )-163(\336ll )-163(in )-163(at )-163(r)8(untime )-163(but )-163(later )-163(\336nd )-163(that )-163(we )-163(need )-163(mor)21(e)]TJ -0.018 Tc T* (ro)Tj 0 Tc 0.923 0 Td [(om, )-71(we )-71(can )-71(call)]TJ /TT0 1 Tf 7.326 0 Td (realloc)Tj /T1_1 1 Tf 0.5707 Tc (.I)Tj 0.3207 Tc 5.358 0 Td (ft)Tj 0 Tc 0.98 0 Td [(her)18(e)-321(is)-321(r)19(oom )-71(beyond )-71(the )-71(end )-71(of )-71(the )-71(existing )-71(r)18(egion )-71(for)]TJ -14.587 -1.2 Td [(the )-54(r)18(equested )-54(space, )-54(then)]TJ /TT0 1 Tf 11.609 0 Td (realloc)Tj /T1_1 1 Tf 4.504 0 Td [(simply )-54(allocates )-54(this )-54(additional )-54(ar)18(ea )-54(at )-54(the )-54(end )-54(and)]TJ -0.018 Tc -16.113 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-93(the )-93(same )-93(pointer )-93(that )-93(we )-93(passed )-93(it.)-595(But )-93(if )-93(ther)]TJ 0.3434 Tc 23.787 0 Td (ei)Tj 0 Tc 1.113 0 Td [(sn\325t )-93(r)18(oom,)]TJ /TT0 1 Tf 4.899 0 Td (realloc)Tj /T1_1 1 Tf 4.543 0 Td (allocates)Tj -35.199 -1.2 Td [(another )-28(ar)18(ea )-28(that )-28(is )-28(lar)18(ge )-28(enough, )-28(copies )-28(the )-28(existing )-28(512-element )-28(array )-28(to )-28(the )-28(new )-28(ar)21(ea,)]TJ T* [(fr)18(ees )-33(the )-33(old )-33(ar)18(ea, )-33(and )-33(r)19(eturns )-33(the )-33(pointer )-33(to )-33(the )-33(new )-33(ar)19(ea. )-283(Because)-283(the )-33(ar)18(ea )-33(may )-33(move,)]TJ -0 -1.2 Td [(we )-118(shouldn\325t )-118(have )-118(any )-118(pointers )-118(into )-118(this )-118(ar)17(ea. )-368(Exer)18(cise )-118(4.16 )-118(and )-118(Figur)]TJ 0.3681 Tc 32.185 0 Td (eC)Tj 0 Tc 1.556 0 Td [(.3 )-118(show )-118(the)]TJ -33.741 -1.2 Td [(use )-47(of)]TJ /TT0 1 Tf 2.979 0 Td (realloc)Tj /T1_1 1 Tf 4.497 0 Td (with)Tj /TT0 1 Tf 2.33 0 Td (getcwd)Tj /T1_1 1 Tf 3.897 0 Td [(to )-47(handle )-47(a )-47(pathname )-47(of )-47(any )-47(length.)-546(Figur)]TJ 0.297 Tc 19.164 0 Td (e1)Tj 0 Tc 1.276 0 Td [(7.27 )-47(shows)]TJ -34.143 -1.2 Td (an example that uses)Tj /TT0 1 Tf 9.495 0 Td (realloc)Tj /T1_1 1 Tf 4.45 0 Td (to avoid arrays with \336xed, compile-time sizes.)Tj -12.145 -1.2 Td [(Note )-194(that )-194(the )-194(\336nal )-194(ar)18(gument )-194(to)]TJ /TT0 1 Tf 15.124 0 Td (realloc)Tj /T1_1 1 Tf 4.644 0 Td [(is )-194(the )-194(new )-194(size )-194(of )-194(the )-194(r)18(egion, )-194(not )-194(the)]TJ -21.568 -1.2 Td [(dif)18(fer)18(ence )-174(between )-174(the )-174(old )-174(and )-174(new )-174(sizes.)-674(As )-174(a )-174(special )-174(case, )-174(if)]TJ /T1_2 1 Tf 29.704 0 Td (ptr)Tj /T1_1 1 Tf 1.646 0 Td [(is )-174(a )-174(null )-174(pointer)74(,)]TJ /TT0 1 Tf -31.35 -1.2 Td (realloc)Tj /T1_1 1 Tf 4.45 0 Td (behaves like)Tj /TT0 1 Tf 5.699 0 Td (malloc)Tj /T1_1 1 Tf 3.85 0 Td [(and allocates a r)18(egion of the speci\336ed)]TJ /T1_2 1 Tf 16.775 0 Td (newsize)Tj /T1_1 1 Tf (.)Tj 7.9995 0 0 7.9995 183.5899 382.577 Tm [(Older )-65(versions )-65(of )-65(these )-65(r)18(outines )-65(allowed )-65(us )-65(to)]TJ /TT0 1 Tf 21.034 0 Td (realloc)Tj /T1_1 1 Tf 0.3148 Tc 4.515 0 Td (ab)Tj 0 Tc 1.368 0 Td [(lock )-65(that )-65(we )-65(had)]TJ /TT0 1 Tf 7.836 0 Td (free)Tj /T1_1 1 Tf 0.3148 Tc (ds)Tj 0 Tc 3.75 0 Td [(ince )-65(the)]TJ -38.502 -1.25 Td [(last )-30(call )-30(to)]TJ /TT0 1 Tf 4.78 0 Td (malloc)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.13 0 Td (realloc)Tj /T1_1 1 Tf 0.2803 Tc (,o)Tj 0 Tc 5.276 0 Td (r)Tj /TT0 1 Tf 0.675 0 Td (calloc)Tj /T1_1 1 Tf 0.5303 Tc (.T)Tj 0 Tc 4.993 0 Td [(his )-30(trick )-30(dates )-30(back )-30(to )-30(V)111(ersion )-30(7 )-30(and )-30(exploited )-30(the)]TJ -19.855 -1.25 Td [(sear)18(ch )-106(strategy )-106(of)]TJ /TT0 1 Tf 8.316 0 Td (malloc)Tj /T1_1 1 Tf 3.956 0 Td [(to )-106(perform )-106(storage )-106(compaction.)-606(Solaris )-106(still )-106(supports )-106(this )-106(featur)16(e,)]TJ -12.272 -1.25 Td [(but many other platforms do not.)-500(This featur)18(e)-250(is)-250(depr)18(ecated and should not be used.)]TJ 9.9994 0 0 9.9994 147.5923 330.5802 Tm [(The )-26(allocation )-26(r)18(outines )-26(ar)]TJ 0.2762 Tc 11.324 0 Td (eu)Tj 0 Tc 1.358 0 Td [(sually )-26(implemented )-26(with )-26(the)]TJ /TT0 1 Tf 13.095 0 Td (sbrk)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.609 -0.04 Td [(system )-26(call.)-526(This)]TJ -31.42 -1.2 Td [(system )-192(call )-192(expands )-192(\(or )-192(contracts\) )-192(the )-192(heap )-192(of )-192(the )-192(pr)21(ocess. )-442(\(Refer)-441(to )-192(Figur)]TJ 0.4416 Tc 34.777 0 Td (e7)Tj 0 Tc 1.421 0 Td [(.6.\) )-442(A)]TJ -36.198 -1.2 Td [(sample )-90(implementation )-90(of)]TJ /TT0 1 Tf 12.137 0 Td (malloc)Tj /T1_1 1 Tf 3.94 0 Td (and)Tj /TT0 1 Tf 2.033 0 Td (free)Tj /T1_1 1 Tf 2.74 0 Td [(is )-90(given )-90(in )-90(Section )-90(8.7 )-90(of )-90(Kernighan )-90(and)]TJ -20.85 -1.2 Td (Ritchie)Tj 3.331 0.04 Td ([)Tj 0.333 -0.04 Td (1988)Tj 2 0.04 Td (])Tj 0.333 -0.04 Td (.)Tj -4.197 -1.2 Td (Although)Tj /TT0 1 Tf 4.603 0 Td (sbrk)Tj /T1_1 1 Tf 2.739 0 Td [(can )-88(expand )-88(or )-88(contract )-88(the )-88(memory )-88(of )-88(a )-88(pr)14(ocess, )-88(most )-88(versions )-88(of)]TJ /TT0 1 Tf -9.141 -1.2 Td (malloc)Tj /T1_1 1 Tf 4.173 0 Td (and)Tj /TT0 1 Tf 2.266 0 Td (free)Tj /T1_1 1 Tf 2.973 0 Td [(never )-323(decr)18(ease )-323(their )-323(memory )-323(size.)-823(The )-323(space )-323(that )-323(we )-323(fr)15(ee )-323(is)]TJ -9.413 -1.2 Td [(available )-51(for )-51(a )-51(later )-51(allocation, )-51(but )-51(the )-51(fr)18(eed )-51(space )-51(is )-51(not )-51(usually )-51(r)12(eturned )-51(to )-51(the )-51(kernel;)]TJ T* (instead, that space is kept in the)Tj /TT0 1 Tf 14.332 0 Td (malloc)Tj /T1_1 1 Tf 3.85 0 Td (pool.)Tj -16.382 -1.2 Td [(Most )-140(implementations )-140(allocate )-140(mor)]TJ 0.3901 Tc 16.079 0 Td (es)Tj 0 Tc 1.293 0 Td [(pace )-140(than )-140(r)18(equested )-140(and )-140(use )-140(the )-140(additional)]TJ -19.172 -1.2 Td [(space )-124(for )-124(r)18(ecor)]TJ 0.3741 Tc 6.693 0 Td (dk)Tj 0 Tc 1.541 0 Td [(eeping )167(\321 )167(the)-375(size )-124(of )-124(the )-124(block, )-124(a )-124(pointer )-124(to )-124(the )-124(next )-124(allocated )-124(block,)]TJ -8.234 -1.2 Td [(and )-64(the )-64(like.)-564(As )-64(a )-64(consequence, )-64(writing )-64(past )-64(the )-64(end )-64(or )-64(befor)]TJ 0.3143 Tc 27.642 0 Td (et)Tj 0 Tc 1.119 0 Td [(he )-64(start )-64(of )-64(an )-64(allocated)]TJ -28.762 -1.2 Td [(ar)18(ea )-88(could )-88(overwrite )-88(this )-88(r)19(ecor)18(d-keeping )-88(information )-88(in )-88(another )-88(block.)-588(These )-88(types )-88(of)]TJ 0 -1.2 Td [(err)18(ors )-123(ar)]TJ 0.3727 Tc 3.866 0 Td (eo)Tj 0 Tc 1.398 0 Td [(ften )-123(catastr)18(ophic, )-123(but )-123(dif)18(\336cult )-123(to )-123(\336nd, )-123(because )-123(the )-123(err)18(or )-123(may )-123(not )-123(show )-123(up)]TJ -5.263 -1.2 Td [(until much later)74(.)]TJ -0.074 Tc 1.8 -1.2 Td (Wr)Tj 0 Tc 1.321 0 Td [(iting )-79(past )-79(the )-79(end )-79(or )-79(befor)]TJ 0.3292 Tc 11.832 0 Td (et)Tj 0 Tc 1.134 0 Td [(he )-79(beginning )-79(of )-79(a )-79(dynamically )-79(allocated )-79(buf)18(fer )-79(can)]TJ -16.087 -1.2 Td [(corr)8(upt )-30(mor)]TJ 0.2801 Tc 5.388 0 Td (et)Tj 0 Tc 1.085 0 Td [(han )-30(internal )-30(r)18(ecor)18(d-keeping )-30(information.)-530(The )-30(memory )-30(befor)]TJ 0.2802 Tc 26.981 0 Td (ea)Tj 0 Tc 1.259 0 Td [(nd )-30(after )-30(a)]TJ -34.714 -1.2 Td [(dynamically )-177(allocated )-177(buf)18(fer )-177(can )-177(potentially )-177(be )-177(used )-177(for )-177(other )-177(dynamically )-177(allocated)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47479 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (987)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 140.3916 670.9597 Tm [(I/O, nonblocking,)-500(608)]TJ 10.091 0.09 Td (\320)Tj 0.583 -0.09 Td (609, 627)Tj -10.675 -1.25 Td [(mechanism, )-250(95,)-250(534, 587, 589)]TJ 12.901 0.09 Td (\320)Tj 0.583 -0.09 Td (628)Tj -13.485 -1.25 Td [(options, )-250(623)]TJ 5.649 0.09 Td (\320)Tj 0.583 -0.09 Td (625)Tj /TT0 1 Tf -7.583 -1.25 Td (socket)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(148,)-250(331, 590, 592, 607, 609, 621,)]TJ -1.317 -1.25 Td (625, 637)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (638, 640)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (641, 808)Tj -9.683 -1.25 Td [(de\336nition of,)-500(590)]TJ /TT0 1 Tf -1.35 -1.25 Td (socketpair)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(148,)-250(331, 629)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (630, 632,)Tj -14.34 -1.25 Td (634, 941)Tj -1.35 -1.25 Td [(de\336nition of,)-500(630)]TJ -1.35 -1.25 Td [(sockets, UNIX domain,)-500(629)]TJ 12.308 0.09 Td (\320)Tj 0.583 -0.09 Td (642)Tj -11.541 -1.25 Td [(timing, )-250(565)]TJ /TT0 1 Tf -1.35 -1.25 Td (socklen_t)Tj /T1_0 1 Tf 5.817 0 Td [(data type,)-500(606)]TJ 6.482 0.09 Td (\320)Tj 0.583 -0.09 Td (607, 609, 622, 625, 800)Tj /TT0 1 Tf -12.882 -1.25 Td (SOCK_RAW)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(590)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (591, 602)Tj /TT0 1 Tf -11.863 -1.25 Td (SOCK_SEQPACKET)Tj /T1_0 1 Tf 8.817 0 Td [(constant, )-250(590)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (591, 602, 605,)Tj -12.763 -1.25 Td (609, 612, 625)Tj /TT0 1 Tf -2.7 -1.25 Td (SOCK_STREAM)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(319,)-250(590)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (591, 602, 605,)Tj -12.963 -1.25 Td (609, 612, 614)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (616, 618)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (619, 625, 630, 635,)Tj -10.333 -1.25 Td (637, 640, 802, 808, 816)Tj -2.7 -1.25 Td [(Solaris, )-250(xxi\320xxii,)-250(xxv)]TJ 0.25 Tc 9.145 0 Td (,x)Tj 0 Tc 1.016 0 Td (xvii, 3)Tj 2.746 0.09 Td (\320)Tj 0.583 -0.09 Td (4, 26)Tj 2.083 0.09 Td (\320)Tj 0.583 -0.09 Td (27, 29)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (30,)Tj -16.624 -1.25 Td (35)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (36, 38, 41, 48)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (49, 57)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (60, 62, 64)Tj 4.083 0.09 Td (\320)Tj 0.583 -0.09 Td (65, 70, 76,)Tj -15.666 -1.25 Td (88, 102, 108)Tj 5.083 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (3, 121)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (122, 129, 131)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (132, 138,)Tj -15.945 -1.25 Td (178, 182, 184)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (188, 208)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(209, 21)55(1)]TJ 3.528 0.09 Td (\320)Tj 0.583 -0.09 Td (212, 222,)Tj -14.445 -1.25 Td (225, 229, 240, 242, 244)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (245, 260, 277, 288, 290,)Tj -10.166 -1.25 Td (293, 296, 298, 303, 314, 316)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (323, 329,)Tj -12.166 -1.25 Td (334)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (335, 351, 355, 371, 373, 377, 379)Tj 13.583 0.09 Td (\320)Tj 0.583 -0.09 Td (380,)Tj -16.333 -1.25 Td (385, 388, 392, 396, 409, 426)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (427, 432, 439, 471,)Tj -12.166 -1.25 Td (485, 496)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (497, 499, 503, 530)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (531, 534, 559,)Tj -12.333 -1.25 Td (561, 563, 565, 567, 572)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (573, 576, 592, 594,)Tj -10.166 -1.25 Td (607)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(608, 61)55(1)]TJ 3.528 0.09 Td (\320)Tj 0.583 -0.09 Td (613, 627, 634, 648, 675)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (678,)Tj -16.445 -1.25 Td (684)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (691, 693, 700, 704, 716)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (717, 723)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (724,)Tj -16.5 -1.25 Td (726)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (727, 740)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(741, 744, 799, 91)55(1, 918, 925, 930,)]TJ -6.333 -1.25 Td (932, 935)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (936, 951)Tj /TT0 1 Tf -6.866 -1.25 Td (SOL_SOCKET)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(624)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (625, 645)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (646,)Tj -14.53 -1.25 Td (650)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (652)Tj -4.866 -1.25 Td [(solutions to exer)18(cises, )-250(905)]TJ 11.651 0.09 Td (\320)Tj 0.583 -0.09 Td (945)Tj /TT0 1 Tf -12.235 -1.25 Td (SOMAXCONN)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(608)]TJ /TT0 1 Tf -5.817 -1.25 Td (SO_OOBINLINE)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(626)]TJ /TT0 1 Tf -7.617 -1.25 Td (SO_PASSCRED)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(651)]TJ /TT0 1 Tf -7.017 -1.25 Td (SO_REUSEADDR)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(625)]TJ -7.617 -1.25 Td [(sour)18(ce code, availability)]TJ 0.5 Tc 10.547 0 Td (,x)Tj 0 Tc 1.266 0 Td (xx)Tj /TT0 1 Tf -11.813 -1.25 Td (S_OUTPUT)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(510)]TJ -5.217 -1.25 Td [(Spaf)18(for)18(d, G.,)-500(181, 250, 298, 949)]TJ /TT0 1 Tf 0 -1.25 TD (spawn)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(234)]TJ /TT0 1 Tf -3.417 -1.25 Td ()Tj /T1_0 1 Tf 5.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (0)Tj -10.039 -1.25 Td [(spin locks,)-500(417)]TJ 6.742 0.09 Td (\320)Tj 0.583 -0.09 Td (418)Tj -7.325 -1.25 Td (spooling, printer)Tj 0.5 Tc 7.332 0 Td (,7)Tj 0 Tc 1.25 0 Td (93)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (795)Tj /TT0 1 Tf -10.248 -1.25 Td (sprintf)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(159,)-250(549, 616, 622, 640, 655,)]TJ -1.917 -1.25 Td (657, 659, 668)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (669, 759, 772)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (773, 803,)Tj -12.333 -1.25 Td (818)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (819, 822)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (823, 825)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (827, 833)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (835, 837,)Tj -14.666 -1.25 Td (845, 945)Tj -1.35 -1.25 Td [(de\336nition of,)-500(159)]TJ /TT0 1 Tf -1.35 -1.25 Td (spwd)Tj /T1_0 1 Tf 2.817 0 Td [(str)8(uctur)18(e, )-250(918)]TJ /TT0 1 Tf -2.817 -1.25 Td (squid)Tj /T1_0 1 Tf 3.417 0 Td [(login name,)-500(178)]TJ /TT0 1 Tf 22.583 65 Td (S_RDBAND)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(510)]TJ /TT0 1 Tf -5.217 -1.25 Td (S_RDNORM)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(510)]TJ /TT0 1 Tf -5.217 -1.25 Td (sscanf)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(162,)-250(549, 551, 802)]TJ 12.04 0.09 Td (\320)Tj 0.583 -0.09 Td (803)Tj -15.29 -1.25 Td [(de\336nition of,)-500(162)]TJ /TT0 1 Tf -1.35 -1.25 Td (ssh)Tj /T1_0 1 Tf 2.217 0 Td [(pr)18(ogram, )-250(293)]TJ /TT0 1 Tf -2.217 -1.25 Td (sshd)Tj /T1_0 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(465)]TJ /TT0 1 Tf -2.817 -1.25 Td (SSIZE_MAX)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(38,)-250(41, 71)]TJ /TT0 1 Tf -5.817 -1.25 Td (ssize_t)Tj /T1_0 1 Tf 4.617 0 Td [(data type,)-500(39, 59, 71)]TJ -4.617 -1.25 Td [(stack, )-250(205,)-250(215)]TJ /TT0 1 Tf T* (stackaddr)Tj /T1_0 1 Tf 5.817 0 Td [(attribute, )-250(427)]TJ /TT0 1 Tf -5.817 -1.25 Td (stacksize)Tj /T1_0 1 Tf 5.817 0 Td [(attribute, )-250(427)]TJ -5.817 -1.25 Td (standar)Tj 0.25 Tc 3.32 0 Td (de)Tj 0 Tc 1.34 0 Td [(rr)18(or)]TJ 0.5 Tc 1.639 0 Td (,8)Tj 0.25 Tc 1.25 0 Td (,1)Tj 0 Tc 1 0 Td (45, 617)Tj -8.549 -1.25 Td (standar)Tj 0.25 Tc 3.32 0 Td (de)Tj 0 Tc 1.34 0 Td [(rr)18(or r)18(outines, )-250(898)]TJ 7.924 0.09 Td (\320)Tj 0.583 -0.09 Td (904)Tj -13.168 -1.25 Td (standar)Tj 0.25 Tc 3.32 0 Td (di)Tj 0 Tc 1.152 0 Td [(nput, )-250(8,)-250(145)]TJ -4.472 -1.25 Td (standar)Tj 0.25 Tc 3.32 0 Td (dI)Tj 0 Tc 1.198 0 Td (/O)Tj -3.168 -1.25 Td [(alternatives, )-250(174)]TJ 7.491 0.09 Td (\320)Tj 0.583 -0.09 Td (175)Tj -8.075 -1.25 Td [(buf)18(fering, )-250(145)]TJ 6.44 0.09 Td (\320)Tj 0.583 -0.09 Td (147, 231, 235, 265, 367, 552, 721,)Tj -5.673 -1.25 Td (752)Tj -1.35 -1.25 Td [(ef)18(\336ciency)]TJ 0.5 Tc 4.084 0 Td (,1)Tj 0 Tc 1.25 0 Td (53)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (156)Tj -7 -1.25 Td [(implementation, )-250(164)]TJ 9.393 0.09 Td (\320)Tj 0.583 -0.09 Td (167)Tj -9.977 -1.25 Td (library)Tj 0.5 Tc 2.87 0 Td (,1)Tj 0 Tc 1.25 0 Td (0, 143)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (175)Tj -7.287 -1.25 Td [(str)18(eams, )-250(143)]TJ 5.746 0.09 Td (\320)Tj 0.583 -0.09 Td (144)Tj -6.329 -1.25 Td [(versus unbuf)18(fer)18(ed I/O, timing,)-500(155)]TJ -1.35 -1.25 Td (standar)Tj 0.25 Tc 3.32 0 Td (do)Tj 0 Tc 1.407 0 Td [(utput, )-250(8,)-250(145, 617)]TJ -4.727 -1.25 Td [(standar)18(ds, )-250(25)]TJ 6.188 0.09 Td (\320)Tj 0.583 -0.09 Td (33)Tj -5.422 -1.25 Td [(dif)18(fer)18(ences, )-250(58)]TJ 6.647 0.09 Td (\320)Tj 0.583 -0.09 Td (59)Tj -8.581 -1.25 Td [(ST)74(AR)]TJ 0.25 Tc 2.473 0 Td (Tt)Tj 0 Tc 1.189 0 Td (erminal character)Tj 0.5 Tc 7.662 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 680)Tj 3.083 0.09 Td (\320)Tj 0.583 -0.09 Td (682, 686, 689,)Tj -13.541 -1.25 Td (693)Tj /TT0 1 Tf -2.7 -1.25 Td (stat)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(4,)-250(7, 65, 93)]TJ 9.04 0.09 Td (\320)Tj 0.583 -0.09 Td (95, 97, 99, 107,)Tj -9.74 -1.25 Td (121)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (122, 124, 126)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (128, 131, 138, 140)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (141,)Tj -16.5 -1.25 Td (170, 331, 452, 586, 592, 628, 639)Tj 13.583 0.09 Td (\320)Tj 0.583 -0.09 Td (640, 670, 698,)Tj -14.166 -1.25 Td (908, 910, 942)Tj -1.35 -1.25 Td [(de\336nition of,)-500(93)]TJ /TT0 1 Tf -1.35 -1.25 Td (stat)Tj /T1_0 1 Tf 2.817 0 Td [(str)8(uctur)18(e, )-250(93)]TJ 5.802 0.09 Td (\320)Tj 0.583 -0.09 Td (96, 98, 1)Tj -0.055 Tc 3.445 0 Td (11)Tj 0.25 Tc 0.945 0 Td (,1)Tj 0 Tc 0.945 0 Td (14, 124, 140, 147,)Tj -11.837 -1.25 Td (167, 170, 498, 518, 529, 535, 552, 557, 586, 638,)Tj T* (697)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (698, 757, 807, 832)Tj -4.866 -1.25 Td [(static variables,)-500(219)]TJ T* (ST)Tj -0.074 Tc 1.064 0 Td (AT)Tj 0 Tc 1.317 0 Td (US terminal character)Tj 0.5 Tc 9.541 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 682, 687, 689, 703)Tj /TT0 1 Tf -13.172 -1.25 Td ()Tj /T1_0 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7, 162)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (163, 755, 758)Tj /TT0 1 Tf -13.805 -1.25 Td ()Tj /T1_0 1 Tf 7.017 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7)Tj /TT0 1 Tf 0.1666 Tc -11.239 -1.25 Td (__)Tj 0 Tc 1.367 0 Td [(STDC_IEC_559_ )433(_)]TJ /T1_0 1 Tf 8.983 0 Td [(constant, )-250(31)]TJ /TT0 1 Tf -10.35 -1.25 Td ()Tj /T1_0 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7, 635)Tj /TT0 1 Tf -10.639 -1.25 Td (stderr)Tj /T1_0 1 Tf 4.017 0 Td [(variable, )-250(145,)-250(483, 731, 901)]TJ /TT0 1 Tf -4.017 -1.25 Td (STDERR_FILENO)Tj /T1_0 1 Tf 8.217 0 Td [(constant, )-250(62,)-250(145, 618)]TJ 9.563 0.09 Td (\320)Tj 0.583 -0.09 Td (619, 643,)Tj -15.663 -1.25 Td (648, 652, 729)Tj /TT0 1 Tf -2.7 -1.25 Td (stdin)Tj /T1_0 1 Tf 3.417 0 Td [(variable, )-250(10,)-250(145, 154, 214, 216, 550)]TJ 15.407 0.09 Td (\320)Tj 0.583 -0.09 Td (551,)Tj -16.707 -1.25 Td (654)Tj /TT0 1 Tf -2.7 -1.25 Td (STDIN_FILENO)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(9,)-250(62, 67, 72, 145, 308,)]TJ -4.917 -1.25 Td (378, 483, 539, 544, 549)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (550, 619, 655)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (656,)Tj -16.333 -1.25 Td [(679, 684, 709, 71)55(1, 728, 730)]TJ 11.528 0.09 Td (\320)Tj 0.583 -0.09 Td (732, 739)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (740)Tj /TT0 1 Tf -18.978 -1.25 Td ()Tj /T1_0 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7, 595)Tj /TT0 1 Tf -10.639 -1.25 Td ()Tj /T1_0 1 Tf 5.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,1)Tj 0 Tc 1.25 0 Td (0, 27, 38, 51, 145, 147, 151,)Tj -7.339 -1.25 Td (164, 168, 694, 755, 895)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47480 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (xxx)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(eface )-250(to )-250(the )-250(First )-250(Edition)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(Or)15(ganization of the Book)]TJ /T1_1 1 Tf 3.6 -2.4 Td (This book is divided into six parts:)Tj 1.8 -2.04 Td [(1. )-633(An)-653(overview )-403(and )-403(intr)18(oduction )-403(to )-403(basic )-403(Unix )-403(pr)19(ogramming )-403(concepts )-403(and)]TJ 1.633 -1.2 Td [(terminology )-71(\(Chapter )-71(1\), )-71(with )-71(a )-71(discussion )-71(of )-71(the )-71(various )-71(Unix )-71(standar)17(dization)]TJ 0 -1.2 TD [(ef)18(forts and dif)18(fer)18(ent Unix implementations \(Chapter 2\).)]TJ -1.633 -1.6 Td [(2. )-633(I/O)]TJ 0.0833 Tc 3.445 0 Td (\321u)Tj 0 Tc 1.686 0 Td [(nbuf)18(fer)18(ed )-681(I/O )-681(\(Chapter )-681(3\), )-681(pr)18(operties )-681(of )-681(\336les )-681(and )-681(dir)20(ectories)]TJ -3.499 -1.2 Td [(\(Chapter )-40(4\), )-40(the )-40(standar)]TJ 0.2902 Tc 10.586 0 Td (dI)Tj 0 Tc 1.238 0 Td [(/O )-40(library )-40(\(Chapter )-40(5\), )-40(and )-40(the )-40(standar)]TJ 0.2903 Tc 17.523 0 Td (ds)Tj 0 Tc 1.325 0 Td [(ystem )-40(data)]TJ -30.672 -1.2 Td (\336les \(Chapter 6\).)Tj -1.633 -1.6 Td [(3. )-633(Pr)18(ocesses )167(\321 )167(the)-541(envir)18(onment )-290(of )-290(a )-290(Unix )-290(pr)18(ocess )-290(\(Chapter )-290(7\), )-290(pr)15(ocess )-290(contr)18(ol)]TJ 1.633 -1.2 Td [(\(Chapter )-309(8\), )-309(the )-309(r)18(elationships )-309(between )-309(dif)17(fer)18(ent )-309(pr)18(ocesses )-309(\(Chapter )-309(9\), )-309(and)]TJ -0 -1.2 Td (signals \(Chapter 10\).)Tj -1.633 -1.6 Td [(4. )-633(Mor)]TJ 0.2572 Tc 3.502 0 Td (eI)Tj 0 Tc 1.073 0 Td [(/O )167(\321 )167(terminal)-258(I/O )-7(\(Chapter )-7(1)55(1\), )-7(advanced )-7(I/O )-7(\(Chapter )-7(12\), )-7(and )-7(daemon)]TJ -2.942 -1.2 Td [(pr)18(ocesses \(Chapter 13\).)]TJ -1.633 -1.6 Td [(5. )-633(IPC)]TJ 0.0833 Tc 3.366 0 Td (\321I)Tj 0 Tc 1.42 0 Td [(nterpr)18(ocess communication \(Chapters 14 and 15\).)]TJ -4.787 -1.6 Td [(6. )-633(Examples)]TJ 0.0833 Tc 6.021 0 Td [(\321a )8(d)]TJ 0 Tc 2.603 0 Td [(atabase )-158(library )-158(\(Chapter )-158(16\), )-158(communicating )-158(with )-158(a )-158(PostScript)]TJ -6.991 -1.2 Td [(printer )-40(\(Chapter )-40(17\), )-40(a )-40(modem )-40(dialing )-40(pr)19(ogram )-40(\(Chapter )-40(18\), )-40(and )-40(using )-40(pseudo)]TJ T* (terminals \(Chapter 19\).)Tj 0.3453 Tc -1.633 -2.04 Td (Ar)Tj 0 Tc 1.5 0 Td [(eading )-95(familiarity )-95(with )-95(C )-95(would )-95(be )-95(bene\336cial )-95(as )-95(would )-95(some )-95(experience )-95(using)]TJ -3.3 -1.2 Td [(Unix. )-353(No)-354(prior )-103(pr)18(ogramming )-103(experience )-103(with )-103(Unix )-103(is )-103(assumed.)-603(This )-103(text )-103(is )-103(intended)]TJ T* [(for )-359(pr)18(ogrammers )-359(familiar )-359(with )-359(Unix )-359(and )-359(pr)18(ogrammers )-359(familiar )-359(with )-359(some )-359(other)]TJ T* [(operating )-93(system )-93(who )-93(wish )-93(to )-93(learn )-93(the )-93(details )-93(of )-93(the )-93(services )-93(pr)18(ovided )-93(by )-93(most )-93(Unix)]TJ T* (systems.)Tj /TT0 1 Tf -3.6 -2.4 Td (Examples in the T)Tj -0.015 Tc 8.443 0 Td (ex)Tj 0 Tc 1.097 0 Td (t)Tj /T1_1 1 Tf -5.94 -2.4 Td [(This )-20(book )-20(contains )-20(many )-20(examples)]TJ 0.0833 Tc 15.663 0 Td (\321a)Tj 0 Tc 1.583 0 Td [(ppr)18(oximately )-20(10,000 )-20(lines )-20(of )-20(sour)18(ce )-20(code.)-520(All )-20(the)]TJ -17.247 -1.2 Td [(examples )-223(ar)18(e)-473(in)-473(the )-223(C )-223(pr)18(ogramming )-223(language.)-723(Furthermor)18(e, )-223(these )-223(examples )-223(ar)]TJ 0.4729 Tc 37.175 0 Td (ei)Tj 0 Tc 1.243 0 Td (n)Tj -38.418 -1.2 Td [(ANSI )-175(C.)]TJ -0.092 Tc 4.531 0 Td (Yo)Tj 0.4255 Tc 1.121 0 Td (us)Tj 0 Tc 1.452 0 Td [(hould )-176(have )-176(a )-176(copy )-176(of )-176(the)]TJ /T1_2 1 Tf 12.226 0 Td [(Unix )-176(Pr)18(ogrammer )213(\325)]TJ 0.4256 Tc 7.891 0 Td (sM)Tj 0 Tc 1.759 0 Td (anual)Tj /T1_1 1 Tf 2.704 0 Td [(for )-176(your )-176(system)]TJ -31.683 -1.2 Td [(handy )-226(while )-226(r)18(eading )-226(this )-226(book, )-226(since )-226(r)18(efer)18(ence )-226(is )-226(made )-226(to )-226(it )-226(for )-226(some )-226(of )-226(the )-226(mor)19(e)]TJ 0 -1.2 Td [(esoteric and implementation-dependent featur)18(es.)]TJ 1.8 -1.2 Td [(Almost )-237(every )-237(function )-237(and )-237(system )-237(call )-237(is )-237(demonstrated )-237(with )-237(a )-237(small, )-237(complete)]TJ -1.8 -1.2 Td [(pr)18(ogram. )-518(This)-519(lets )-268(us )-268(see )-268(the )-268(ar)18(guments )-268(and )-268(r)18(eturn )-268(values )-268(and )-268(is )-268(often )-268(easier )-268(to)]TJ T* [(compr)18(ehend )-66(than )-66(the )-66(use )-66(of )-66(the )-66(function )-66(in )-66(a )-66(much )-66(lar)13(ger )-67(pr)18(ogram. )-317(But)-316(since )-67(some )-67(of)]TJ 0 -1.2 Td [(the )-145(small )-145(pr)18(ograms )-145(ar)]TJ 0.3955 Tc 10.121 0 Td (ec)Tj 0 Tc 1.319 0 Td [(ontrived )-145(examples, )-145(a )-145(few )-145(bigger )-145(examples )-145(ar)]TJ 0.3955 Tc 20.617 0 Td (ea)Tj 0 Tc 1.374 0 Td [(lso )-145(included)]TJ -33.432 -1.16 Td (\()Tj 0.333 -0.04 Td [(Chapters )-197(16, )-197(17, )-197(18, )-197(and )-197(19)]TJ 12.695 0.04 Td (\))Tj 0.6972 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.56 0 Td [(hese )-197(lar)18(ger )-197(examples )-197(demonstrate )-197(the )-197(pr)17(ogramming)]TJ -14.921 -1.2 Td [(techniques in lar)18(ger)]TJ 0.25 Tc 8.667 0 Td (,r)Tj 0 Tc 0.877 0 Td (eal-world examples.)Tj -7.744 -1.2 Td [(All )-86(the )-86(examples )-86(have )-86(been )-86(included )-86(in )-86(the )-86(text )-86(dir)18(ectly )-86(fr)17(om )-86(their )-86(sour)18(ce )-86(\336les.)-586(A)]TJ -1.8 -1.2 Td [(machine-r)18(eadable )-157(copy )-157(of )-157(all )-157(the )-157(examples )-157(is )-157(available )-157(via )-157(anonymous )-157(FTP )-157(fr)18(om )-157(the)]TJ T* [(Internet )-5(host)]TJ /TT1 1 Tf 5.894 0 Td (ftp.uu.net)Tj /T1_1 1 Tf 6.255 0 Td [(in )-5(the )-5(\336le)]TJ /TT1 1 Tf 4.401 0 Td (published/books/stevens.advprog.tar.Z)Tj /T1_1 1 Tf (.)Tj -16.55 -1.2 Td [(Obtaining )-268(the )-268(sour)17(ce )-268(code )-268(allows )-268(you )-268(to )-268(modify )-268(the )-268(pr)18(ograms )-268(fr)18(om )-268(this )-268(text )-268(and)]TJ T* (experiment with them on your system.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47481 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(5.4)]TJ 39.668 0 Td [(Buf)18(fering)]TJ /T1_1 1 Tf 6.165 0 Td (147)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.055 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (Wi)Tj 0 Tc 1.236 0 Td (th)Tj /TT0 1 Tf 1.222 0 Td (setbuf)Tj /T1_0 1 Tf [(,)-314(we)-314(c)-1(an )-64(turn )-64(buf)17(fering )-65(on )-65(or )-65(of)19(f. )-315(T)]TJ 0.3146 Tc 19.502 0 Td (oe)Tj 0 Tc 1.34 0 Td [(nable )-65(buf)18(fering,)]TJ /T1_2 1 Tf 7.391 0 Td (buf)Tj /T1_0 1 Tf 1.612 0 Td [(must )-65(point)]TJ -34.103 -1.2 Td [(to )-1(a )-1(buf)18(fer )-1(of )-1(length)]TJ /TT0 1 Tf 8.999 0 Td (BUFSIZ)Tj /T1_0 1 Tf 0.2509 Tc (,ac)Tj 0 Tc 5.296 0 Td [(onstant )-1(de\336ned )-1(in)]TJ /TT0 1 Tf 8.279 0 Td ()Tj /T1_0 1 Tf 0.5008 Tc (.N)Tj 0 Tc 6.982 0 Td (ormally)Tj 0.2508 Tc 3.351 0 Td (,t)Tj 0 Tc 0.827 0 Td [(he )-1(str)18(eam )-1(is)]TJ -33.734 -1.2 Td [(then )-68(fully )-68(buf)19(fer)18(ed, )-68(but )-68(some )-68(systems )-68(may )-68(set )-68(line )-68(buf)18(fering )-68(if )-68(the )-68(str)18(eam )-68(is )-68(associated)]TJ -0 -1.2 Td (with a terminal device.)Tj -0.092 Tc 10.649 0 Td [(To )-184(d)]TJ 0 Tc 1.928 0 Td [(isable buf)18(fering, we set)]TJ /T1_2 1 Tf 10.437 0 Td (buf)Tj /T1_0 1 Tf 1.547 0 Td (to)Tj /TT0 1 Tf 1.122 0 Td (NULL)Tj /T1_0 1 Tf (.)Tj -0.055 Tc -23.883 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td (th)Tj /TT0 1 Tf 1.252 0 Td (setvbuf)Tj /T1_0 1 Tf [(,)-344(we)-344(specify )-94(exactly )-94(which )-94(type )-94(of )-94(buf)17(fering )-94(we )-94(want.)-594(This )-94(is )-94(done)]TJ -4.288 -1.2 Td (with the)Tj /T1_2 1 Tf 3.92 0 Td (mode)Tj /T1_0 1 Tf 2.361 0 Td [(ar)18(gument:)]TJ /TT0 1 Tf 7.9995 0 0 7.9995 279.8871 594.9643 Tm (_IOFBF)Tj /T1_0 1 Tf 5.1 0 Td [(fully buf)18(fer)18(ed)]TJ /TT0 1 Tf -5.1 -1.25 Td (_IOLBF)Tj /T1_0 1 Tf 5.1 0 Td [(line buf)18(fer)18(ed)]TJ /TT0 1 Tf -5.1 -1.25 Td (_IONBF)Tj /T1_0 1 Tf 5.1 0 Td [(unbuf)18(fer)18(ed)]TJ 9.9994 0 0 9.9994 129.5921 556.9666 Tm [(If )-232(we )-232(specify )-232(an )-232(unbuf)19(fer)18(ed )-232(str)18(eam, )-232(the)]TJ /T1_2 1 Tf 19.126 0 Td (buf)Tj /T1_0 1 Tf 1.779 0 Td (and)Tj /T1_2 1 Tf 2.175 0 Td (size)Tj /T1_0 1 Tf 1.982 0 Td [(ar)18(guments )-232(ar)]TJ 0.4818 Tc 6.089 0 Td (ei)Tj 0 Tc 1.252 0 Td [(gnor)18(ed. )-482(If)-482(we)]TJ -32.402 -1.2 Td [(specify )-9(fully )-9(buf)19(fer)18(ed )-9(or )-9(line )-9(buf)19(fer)18(ed,)]TJ /T1_2 1 Tf 17.087 0 Td (buf)Tj /T1_0 1 Tf 1.556 0 Td (and)Tj /T1_2 1 Tf 1.951 0 Td (size)Tj /T1_0 1 Tf 1.759 0 Td [(can )-8(optionally )-8(specify )-8(a )-8(buf)18(fer )-8(and )-8(its)]TJ -22.353 -1.2 Td [(size. )-657(If)-658(the )-407(str)18(eam )-407(is )-407(buf)17(fer)18(ed )-407(and)]TJ /T1_2 1 Tf 18 0 Td (buf)Tj /T1_0 1 Tf 1.954 0 Td (is)Tj /TT0 1 Tf 1.372 0 Td (NULL)Tj /T1_0 1 Tf 0.6575 Tc (,t)Tj 0 Tc 3.634 0 Td [(he )-407(standar)]TJ 0.6575 Tc 5.039 0 Td (dI)Tj 0 Tc 1.606 0 Td [(/O )-407(library )-407(will)]TJ -31.605 -1.2 Td [(automatically )-366(allocate )-366(its )-366(own )-366(buf)18(fer )-366(of )-366(the )-366(appr)18(opriate )-366(size )-366(for )-366(the )-366(str)19(eam. )-616(By)]TJ 0 -1.2 TD [(appr)18(opriate size, we mean the value speci\336ed by the constant)]TJ /TT0 1 Tf 27.403 0 Td (BUFSIZ)Tj /T1_0 1 Tf (.)Tj 7.9995 0 0 7.9995 183.5884 491.3705 Tm [(Some )-150(C )-150(library )-150(implementations )-150(use )-150(the )-150(value )-150(fr)18(om )-150(the)]TJ /TT0 1 Tf 26.063 0 Td (st_blksize)Tj /T1_0 1 Tf 6.4 0 Td [(member )-150(of )-150(the)]TJ /TT0 1 Tf 7.138 0 Td (stat)Tj /T1_0 1 Tf -39.6 -1.25 Td [(str)8(uctur)]TJ 0.3455 Tc 3.49 0 Td (e\()Tj 0 Tc 1.158 0 Td [(see )-95(Section )-95(4.2\) )-95(to )-95(determine )-95(the )-95(optimal )-95(standar)]TJ 0.3455 Tc 22.118 0 Td (dI)Tj 0 Tc 1.294 0 Td [(/O )-95(buf)18(fer )-95(size.)-596(As )-95(we )-95(will )-95(see)]TJ -28.059 -1.25 Td (later in this chapter)Tj 0.25 Tc 8.49 0 Td (,t)Tj 0 Tc 0.826 0 Td (he GNU C library uses this method.)Tj 9.9994 0 0 9.9994 147.5904 453.3728 Tm (Figur)Tj 0.25 Tc 2.383 0 Td (e5)Tj 0 Tc 1.229 0 Td (.1 summarizes the actions of these two functions and their various optio\ ns.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1336.25 4394.25 cm 0 0 m 3820 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 138.6714 431.3482 Tm (Function)Tj /T1_2 1 Tf 6.31 0 Td [(mode )-3400(buf)]TJ /T1_0 1 Tf 13.932 0 Td [(Buf)18(fer and length)]TJ -0.09 Tc 15.97 0 Td (Ty)Tj 0 Tc 1.079 0 Td [(pe of buf)18(fering)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1336.25 4274.25 cm 0 0 m 3820 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1336.25 4254.25 cm 0 0 m 3820 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 223.9677 417.3249 Tm [(non-null )-1548(user)]TJ /T1_2 1 Tf 7.759 0 Td (buf)Tj /T1_0 1 Tf 1.547 0 Td (of length)Tj /TT0 1 Tf 4.195 0 Td (BUFSIZ)Tj /T1_0 1 Tf 9.289 0 Td [(fully buf)18(fer)18(ed or line buf)18(fer)18(ed)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2180.25 4134.25 cm 0 0 m 2976 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 223.9542 405.3027 Tm (NULL)Tj /T1_0 1 Tf 5.608 0 Td [(\(no buf)18(fer\) )]TJ 17.182 0 Td [(unbuf)18(fer)18(ed)]TJ /TT0 1 Tf -33.59 0.75 Td (setbuf)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1336.25 4014.25 cm 0 0 m 3820 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1336.25 3994.25 cm 0 0 m 3820 0 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 223.9408 391.2826 Tm [(non-null )-1548(user)]TJ /T1_2 1 Tf 7.759 0 Td (buf)Tj /T1_0 1 Tf 1.547 0 Td (of length)Tj /T1_2 1 Tf 4.195 0 Td (size)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2180.25 3874.25 cm 0 0 m 1823 0 l S Q Q BT /TT0 1 Tf 7.9971 0 0 7.9971 223.9274 379.2634 Tm (NULL)Tj /T1_0 1 Tf 5.608 0 Td [(system buf)18(fer of appr)18(opriate length)]TJ /TT0 1 Tf -10.708 0.75 Td (_IOFBF)Tj /T1_0 1 Tf 27.89 0 Td [(fully buf)18(fer)18(ed)]TJ ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1772.25 3754.25 cm 0 0 m 3384 0 l S Q Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 223.9139 367.2457 Tm [(non-null )-1548(user)]TJ /T1_2 1 Tf 7.759 0 Td (buf)Tj /T1_0 1 Tf 1.547 0 Td (of length)Tj /T1_2 1 Tf 4.195 0 Td (size)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2180.25 3634.25 cm 0 0 m 1823 0 l S Q Q BT /TT0 1 Tf 7.9962 0 0 7.9962 223.9005 355.2294 Tm (NULL)Tj /T1_0 1 Tf 5.608 0 Td [(system buf)18(fer of appr)18(opriate length)]TJ /TT0 1 Tf -10.708 0.75 Td (_IOLBF)Tj /T1_0 1 Tf 27.89 0 Td [(line buf)18(fer)18(ed)]TJ ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1772.25 3514.25 cm 0 0 m 3384 0 l S Q Q BT /TT0 1 Tf 7.9957 0 0 7.9957 183.1091 343.2146 Tm (_IONBF)Tj /T1_0 1 Tf 5.1 0 Td [(\(ignor)18(ed\) )-1250(\(no)-250(buf)18(fer\) )]TJ 22.79 0 Td [(unbuf)18(fer)18(ed)]TJ /TT0 1 Tf -33.59 3 Td (setvbuf)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1336.25 3394.25 cm 0 0 m 3820 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4003.25 3394.25 cm 0 0 m 0 1000 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2628.25 3394.25 cm 0 0 m 0 1000 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2180.25 3394.25 cm 0 0 m 0 1000 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1772.25 3394.25 cm 0 0 m 0 1000 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5156.25 3394.25 cm 0 0 m 0 1000 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1336.25 3394.25 cm 0 0 m 0 1000 l S Q Q BT /T1_1 1 Tf 7.9952 0 0 7.9952 216.7499 321.2072 Tm (Figure 5.1)Tj /T1_0 1 Tf 5.195 0 Td (Summary of the)Tj /TT0 1 Tf 7.361 0 Td (setbuf)Tj /T1_0 1 Tf 3.85 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (setvbuf)Tj /T1_0 1 Tf 4.45 0 Td (functions)Tj 9.994 0 0 9.994 147.5117 297.2216 Tm [(Be )-25(awar)]TJ 0.2752 Tc 3.576 0 Td (et)Tj 0 Tc 1.08 0 Td [(hat )-25(if )-25(we )-25(allocate )-25(a )-25(standar)]TJ 0.2753 Tc 11.918 0 Td (dI)Tj 0 Tc 1.223 0 Td [(/O )-25(buf)18(fer )-25(as )-25(an )-25(automatic )-25(variable )-25(within )-25(a)]TJ -19.598 -1.2 Td [(function, )-33(we )-33(have )-33(to )-33(close )-33(the )-33(str)18(eam )-33(befor)]TJ 0.2831 Tc 19.098 0 Td (er)Tj 0 Tc 1.139 0 Td [(eturning )-33(fr)18(om )-33(the )-33(function.)-533(\(W)92(e\325ll )-33(discuss)]TJ -20.237 -1.2 Td [(this )-44(point )-44(further )-44(in )-44(Section )-44(7.8.\))-545(Also, )-44(some )-44(implementations )-44(use )-44(part )-44(of )-44(the )-44(buf)18(fer )-44(for)]TJ T* [(internal )-130(bookkeeping, )-130(so )-130(the )-130(actual )-130(number )-130(of )-130(bytes )-130(of )-130(data )-130(that )-130(can )-130(be )-130(stor)22(ed )-130(in )-130(the)]TJ T* [(buf)18(fer )-61(can )-61(be )-61(less )-61(than)]TJ /T1_2 1 Tf 10.4 0 Td (size)Tj /T1_0 1 Tf 0.5612 Tc (.I)Tj 0.3112 Tc 2.648 0 Td (ng)Tj 0 Tc 1.449 0 Td [(eneral, )-61(we )-61(should )-61(let )-61(the )-61(system )-61(choose )-61(the )-61(buf)18(fer )-61(size)]TJ -14.497 -1.2 Td [(and )-281(automatically )-281(allocate )-281(the )-281(buf)19(fer)]TJ 0.7807 Tc 17.241 0 Td (.W)Tj 0 Tc 2.031 0 Td [(hen )-281(we )-281(do )-281(this, )-281(the )-281(standar)]TJ 0.5306 Tc 13.347 0 Td (dI)Tj 0 Tc 1.479 0 Td [(/O )-281(library)]TJ -34.097 -1.2 Td [(automatically r)18(eleases the buf)18(fer when we close the str)18(eam.)]TJ 1.8 -1.2 Td [(At any time, we can for)18(ce a str)18(eam to be \337ushed.)]TJ /TT0 1 Tf 8.9946 0 0 8.9946 147.512 196.582 Tm (#include )Tj 0 -1.902 TD (int fflush\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 26.1 -1.902 Td (Returns: 0 if OK,)Tj /TT0 1 Tf 7.613 0 Td (EOF)Tj /T1_0 1 Tf 2.05 0 Td [(on err)18(or)]TJ ET q 0.09994 0 0 0.09994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1579.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9934 0 0 9.9934 129.5145 144.3647 Tm (The)Tj /TT0 1 Tf 2.124 0 Td (fflush)Tj /T1_0 1 Tf 4.05 0 Td [(function )-200(causes )-200(any )-200(unwritten )-200(data )-200(for )-200(the )-200(str)18(eam )-200(to )-200(be )-200(passed )-200(to )-200(the)]TJ -6.174 -1.2 Td [(kernel. )-250(As)]TJ 0.25 Tc 4.984 0 Td (as)Tj 0 Tc 1.174 0 Td (pecial case, if)Tj /T1_2 1 Tf 6.077 0 Td (fp)Tj /T1_0 1 Tf 1.028 0 Td (is)Tj /TT0 1 Tf 0.965 0 Td (NULL)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 2.9 0 Td (fflush)Tj /T1_0 1 Tf 3.85 0 Td [(causes all output str)18(eams to be \337ushed.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47482 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (308)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Relationships)]TJ 39.241 0 Td [(Chapter )-250(9)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.664 TD (static void)Tj 0 -1.189 TD (sig_hup\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("SIGHUP received, pid = %ld\\n", \(long\)getpid\(\)\);)Tj -2.4 -1.189 Td (})Tj 0 -1.664 TD (static void)Tj 0 -1.189 TD (pr_ids\(char *name\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (printf\("%s: pid = %ld, ppid = %ld, pgrp = %ld, tpgrp = %ld\\n",)Tj 2.4 -1.189 Td (name, \(long\)getpid\(\), \(long\)getppid\(\), \(long\)getpgrp\(\),)Tj T* (\(long\)tcgetpgrp\(STDIN_FILENO\)\);)Tj -2.4 -1.189 Td (fflush\(stdout\);)Tj -2.4 -1.189 Td (})Tj 0 -1.664 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(char )-1800(c;)]TJ T* [(pid_t )-1200(pid;)]TJ 0 -1.664 TD (pr_ids\("parent"\);)Tj 0 -1.189 TD (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(pid > 0\) {)-1800(/* parent */)]TJ 0.6 -1.189 Td [(sleep\(5\); )-3600(/*)-600(sleep to let child stop itself */)]TJ 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 10.2 0 Td (/* child */)Tj -9.6 -1.189 Td (pr_ids\("child"\);)Tj T* [(signal\(SIGHUP, sig_hup\);)-2400(/* establish signal handler */)]TJ T* [(kill\(getpid\(\), SIGTSTP\);)-2400(/* stop ourself */)]TJ 0 -1.189 TD [(pr_ids\("child"\); )-1800(/*)-600(prints only if we\325re continued */)]TJ 0 -1.189 TD (if \(read\(STDIN_FILENO, &c, 1\) != 1\))Tj 2.4 -1.189 Td (printf\("read error %d on controlling TTY\\n", errno\);)Tj -4.8 -1.189 Td (})Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2738.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 237.0875 261.3466 Tm (Figure 9.12)Tj /T1_1 1 Tf 5.695 0 Td [(Cr)18(eating an orphaned pr)18(ocess gr)18(oup)]TJ 9.9988 0 0 9.9988 129.5846 237.3495 Tm [(this )-10(example\) )-10(and )-10(that )-10(the )-10(shell )-10(stays )-10(in )-10(its )-10(own )-10(pr)18(ocess )-10(gr)18(oup)]TJ 27.79 0.04 Td (\()Tj 0.333 -0.04 Td (2837)Tj 2 0.04 Td (\))Tj 0.5101 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.373 0 Td [(he )-10(child )-10(inherits)]TJ -31.829 -1.2 Td [(the pr)18(ocess gr)18(oup of its par)18(ent)]TJ 13.65 0.04 Td (\()Tj 0.333 -0.04 Td (6099)Tj 2 0.04 Td (\))Tj 0.5 Tc 0.333 -0.04 Td (.A)Tj 0 Tc 1.528 0 Td (fter the)Tj /TT0 1 Tf 3.42 0 Td (fork)Tj /T1_1 1 Tf (,)Tj 0.883 Tc -19.464 -1.56 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-64(par)18(ent )-64(sleeps )-64(for )-64(5 )-64(seconds.)-565(This )-64(is )-64(our )-64(\(imperfect\) )-64(way )-64(of )-64(letting )-64(the )-64(child)]TJ -0.613 -1.2 Td (execute befor)Tj 0.25 Tc 5.864 0 Td (et)Tj 0 Tc 1.055 0 Td [(he par)18(ent terminates.)]TJ 0.883 Tc -8.408 -1.48 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-6(child )-6(establishes )-6(a )-6(signal )-6(handler )-6(for )-6(the )-6(hang-up )-6(signal )-6(\()]TJ /TT0 1 Tf 26.589 0 Td (SIGHUP)Tj /T1_1 1 Tf [(\))-256(so)-256(we)-256(c)1(an)]TJ -27.202 -1.2 Td [(see whether it is sent to the child.)-500(\(W)]TJ 0.25 Tc 16.421 0 Td (ed)Tj 0 Tc 1.34 0 Td (iscuss signal handlers in Chapter 10.\))Tj 0.883 Tc -19.25 -1.48 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-119(child )-119(sends )-119(itself )-119(the )-119(stop )-119(signal )-119(\()]TJ /TT0 1 Tf 16.785 0 Td (SIGTSTP)Tj /T1_1 1 Tf 0.3686 Tc (\)w)Tj 0 Tc 5.736 0 Td [(ith )-119(the)]TJ /TT0 1 Tf 3.323 0 Td (kill)Tj /T1_1 1 Tf 2.769 0 Td [(function. )-368(This)]TJ -29.225 -1.2 Td [(stops )-187(the )-187(child, )-187(similar )-187(to )-187(our )-187(stopping )-187(a )-187(for)16(egr)18(ound )-187(job )-187(with )-187(our )-187(terminal\325s)]TJ -0 -1.2 Td [(suspend character \(Contr)18(ol)]TJ 11.999 0.09 Td (-)Tj 0.333 -0.09 Td (Z\).)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47483 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (216)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Envir)18(onment )]TJ 39.241 0 Td [(Chapter)-500(7)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(We )-242(c)]TJ 0 Tc 2.139 0 Td (all)Tj /TT0 1 Tf 1.389 0 Td (setjmp)Tj /T1_1 1 Tf 3.908 0 Td [(fr)18(om )-57(the )-57(location )-57(that )-57(we )-57(want )-57(to )-57(r)15(eturn )-57(to, )-57(which )-57(in )-57(this )-57(example)]TJ -9.236 -1.2 Td [(is )-49(in )-49(the)]TJ /TT0 1 Tf 3.871 0 Td (main)Tj /T1_1 1 Tf 2.699 0 Td [(function. )-299(In)-299(this )-49(case,)]TJ /TT0 1 Tf 10.042 0 Td (setjmp)Tj /T1_1 1 Tf -0.018 Tc 3.899 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-49(0 )-49(because )-49(we )-49(called )-49(it )-49(dir)19(ectly)]TJ 0.5489 Tc 15.915 0 Td (.I)Tj 0 Tc 1.136 0 Td (n)Tj -38.418 -1.2 Td [(the )-64(call )-64(to)]TJ /TT0 1 Tf 4.728 0 Td (setjmp)Tj /T1_1 1 Tf 0.3144 Tc (,t)Tj 0 Tc 4.49 0 Td [(he )-64(ar)18(gument)]TJ /T1_2 1 Tf 5.996 0 Td (env)Tj /T1_1 1 Tf 1.759 0 Td [(is )-64(of )-64(the )-64(special )-64(type)]TJ /TT0 1 Tf 9.545 0 Td (jmp_buf)Tj /T1_1 1 Tf 0.5643 Tc (.T)Tj 0 Tc 5.627 0 Td [(his )-64(data )-64(type )-64(is)]TJ -32.146 -1.2 Td [(some )-39(form )-39(of )-39(array )-39(that )-39(is )-39(capable )-39(of )-39(holding )-39(all )-39(the )-39(information )-39(r)12(equir)18(ed )-40(to )-40(r)19(estor)]TJ 0.2896 Tc 36.844 0 Td (et)Tj 0 Tc 1.095 0 Td (he)Tj -37.939 -1.2 Td [(status )-94(of )-94(the )-94(stack )-94(to )-94(the )-94(state )-94(when )-94(we )-94(call)]TJ /TT0 1 Tf 20.185 0 Td (longjmp)Tj /T1_1 1 Tf 0.5936 Tc (.N)Tj 0 Tc 5.875 0 Td (ormally)Tj 0.3436 Tc 3.351 0 Td (,t)Tj 0 Tc 0.92 0 Td (he)Tj /T1_2 1 Tf 1.405 0 Td (env)Tj /T1_1 1 Tf 1.789 0 Td [(variable )-94(is )-94(a)]TJ -33.523 -1.2 Td [(global variable, since we\325ll need to r)18(efer)18(ence it fr)18(om another function.)]TJ 1.8 -1.2 Td [(When )-187(we )-187(encounter )-187(an )-187(err)16(or )167(\321 )167(say)110(,)-438(in)-438(t)1(he)]TJ /TT0 1 Tf 19.774 0 Td (cmd_add)Tj /T1_1 1 Tf 4.638 0 Td [(function )167(\321 )167(we)-438(call)]TJ /TT0 1 Tf 8.588 0 Td (longjmp)Tj /T1_1 1 Tf -34.8 -1.2 Td [(with )-23(two )-23(ar)18(guments. )-273(The)-273(\336rst )-23(is )-23(the )-23(same)]TJ /T1_2 1 Tf 18.963 0 Td (env)Tj /T1_1 1 Tf 1.718 0 Td [(that )-23(we )-23(used )-23(in )-23(a )-23(call )-23(to)]TJ /TT0 1 Tf 10.844 0 Td (setjmp)Tj /T1_1 1 Tf 0.2727 Tc (,a)Tj 0 Tc 4.623 0 Td [(nd )-23(the)]TJ -36.147 -1.2 Td (second,)Tj /T1_2 1 Tf 3.607 0 Td (val)Tj /T1_1 1 Tf [(,)-271(is)-271(a)-271(n)-1(onzer)]TJ 0.2713 Tc 6.567 0 Td (ov)Tj 0 Tc 1.382 0 Td [(alue )-21(that )-21(becomes )-21(the )-21(r)18(eturn )-21(value )-21(fr)16(om)]TJ /TT0 1 Tf 18.041 0 Td (setjmp)Tj /T1_1 1 Tf 0.5214 Tc (.T)Tj 0 Tc 4.984 0 Td [(he )-21(second)]TJ -34.582 -1.2 Td [(ar)18(gument )-45(allows )-45(us )-45(to )-45(use )-45(mor)]TJ 0.2952 Tc 13.879 0 Td (et)Tj 0 Tc 1.1 0 Td [(han )-45(one)]TJ /TT0 1 Tf 3.861 0 Td (longjmp)Tj /T1_1 1 Tf 4.495 0 Td [(for )-45(each)]TJ /TT0 1 Tf 3.869 0 Td (setjmp)Tj /T1_1 1 Tf 0.5452 Tc (.F)Tj 0 Tc 4.951 0 Td [(or )-45(example, )-45(we)]TJ -32.156 -1.2 Td (could)Tj /TT0 1 Tf 2.789 0 Td (longjmp)Tj /T1_1 1 Tf 4.494 0 Td [(fr)18(om)]TJ /TT0 1 Tf 2.433 0 Td (cmd_add)Tj /T1_1 1 Tf 4.494 0 Td [(with )-44(a)]TJ /T1_2 1 Tf 3.121 0 Td (val)Tj /T1_1 1 Tf 1.516 0 Td [(of )-44(1 )-44(and )-44(also )-44(call)]TJ /TT0 1 Tf 7.828 0 Td (longjmp)Tj /T1_1 1 Tf 4.494 0 Td [(fr)18(om)]TJ /TT0 1 Tf 2.433 0 Td (get_token)Tj /T1_1 1 Tf -33.6 -1.2 Td [(with )-25(a)]TJ /T1_2 1 Tf 3.083 0 Td (val)Tj /T1_1 1 Tf 1.497 0 Td [(of )-25(2.)-525(In )-25(the)]TJ /TT0 1 Tf 5.285 0 Td (main)Tj /T1_1 1 Tf 2.675 0 Td [(function, )-25(the )-25(r)18(eturn )-25(value )-25(fr)18(om)]TJ /TT0 1 Tf 14.058 0 Td (setjmp)Tj /T1_1 1 Tf 3.875 0 Td [(is )-25(either )-25(1 )-25(or )-25(2, )-25(and)]TJ -30.474 -1.2 Td [(we )-213(can )-213(test )-213(this )-213(value, )-213(if )-213(we )-213(want, )-213(and )-213(determine )-213(whether )-213(the)]TJ /TT0 1 Tf 29.976 0 Td (longjmp)Tj /T1_1 1 Tf 4.663 0 Td [(was )-213(fr)18(om)]TJ /TT0 1 Tf -34.639 -1.2 Td (cmd_add)Tj /T1_1 1 Tf 4.45 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (get_token)Tj /T1_1 1 Tf (.)Tj -3.841 -1.2 Td [(Let\325s )-313(r)18(eturn )-313(to )-313(the )-313(example.)-814(Figur)]TJ 0.5632 Tc 16.587 0 Td (e7)Tj 0 Tc 1.542 0 Td (.1)Tj 0.5632 Tc 0.695 0 Td (1s)Tj 0 Tc 1.487 0 Td [(hows )-313(both )-313(the)]TJ /TT0 1 Tf 7.469 0 Td (main)Tj /T1_1 1 Tf 2.963 0 Td (and)Tj /TT0 1 Tf 2.256 0 Td (cmd_add)Tj /T1_1 1 Tf -34.8 -1.2 Td [(functions. )-250(\(The)-250(other two functions,)]TJ /TT0 1 Tf 16.303 0 Td (do_line)Tj /T1_1 1 Tf 4.45 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (get_token)Tj /T1_1 1 Tf 0.25 Tc (,h)Tj 0 Tc 6.482 0 Td (aven\325t changed.\))Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4818.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 472.2423 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD [(#define TOK_ADD)-2400(5)]TJ T* (jmp_buf jmpbuffer;)Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(char )-1800(line[MAXLINE];)]TJ 0 -2.14 TD (if \(setjmp\(jmpbuffer\) != 0\))Tj 2.4 -1.189 Td (printf\("error"\);)Tj -2.4 -1.189 Td (while \(fgets\(line, MAXLINE, stdin\) != NULL\))Tj 2.4 -1.189 Td (do_line\(line\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0.6 Tc 0.6 -2.14 Td (...)Tj 0 Tc -0.6 -2.14 Td (void)Tj 0 -1.189 TD (cmd_add\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(token;)]TJ 0 -2.14 TD (token = get_token\(\);)Tj 0 -1.189 TD [(if \(token < 0\))-3600(/* an error has occurred */)]TJ 2.4 -1.189 Td (longjmp\(jmpbuffer, 1\);)Tj -2.4 -1.189 Td (/* rest of processing for this command */)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1615.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 240.9126 145.4518 Tm [(Figure 7.1)37(1)]TJ /T1_1 1 Tf 5.658 0 Td (Example of)Tj /TT0 1 Tf 5.26 0 Td (setjmp)Tj /T1_1 1 Tf 3.85 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (longjmp)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47484 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (214)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Envir)18(onment )]TJ 39.241 0 Td [(Chapter)-500(7)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -2.14 TD [(#define TOK_ADD)-2400(5)]TJ T* [(void )-1800(do_line\(char)-600(*\);)]TJ 0 -1.189 TD [(void )-1800(cmd_add\(void\);)]TJ T* [(int )-2400(get_token\(void\);)]TJ 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(char )-1800(line[MAXLINE];)]TJ 0 -2.14 TD (while \(fgets\(line, MAXLINE, stdin\) != NULL\))Tj 2.4 -1.189 Td (do_line\(line\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj T* [(char )-1800(*tok_ptr;)-4200(/* global pointer for get_token\(\) */)]TJ T* (void)Tj 0 -1.189 TD [(do_line\(char *ptr\))-3600(/* process one line of input */)]TJ T* ({)Tj 2.4 -1.189 Td [(int )-2400(cmd;)]TJ 0 -2.14 TD (tok_ptr = ptr;)Tj 0 -1.189 TD (while \(\(cmd = get_token\(\)\) > 0\) {)Tj 2.4 -1.189 Td [(switch \(cmd\) {)-1200(/* one case for each command */)]TJ T* (case TOK_ADD:)Tj 4.8 -1.189 Td (cmd_add\(\);)Tj T* (break;)Tj -4.8 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (void)Tj 0 -1.189 TD (cmd_add\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(token;)]TJ 0 -2.14 TD (token = get_token\(\);)Tj 0 -1.189 TD (/* rest of processing for this command */)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (get_token\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (/* fetch next token from line pointed to by tok_ptr */)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1625.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 214.0183 146.4804 Tm (Figure 7.9)Tj /T1_1 1 Tf -0.09 Tc 5.195 0 Td (Ty)Tj 0 Tc 1.079 0 Td [(pical pr)18(ogram skeleton for command pr)18(ocessing)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47485 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (652)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 194.3883 670.2598 Tm (err_ret\("recvmsg error"\);)Tj 0 -1.189 TD (return\(-1\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(nr == 0\) {)Tj 0.6 -1.189 Td (err_ret\("connection closed by server"\);)Tj T* (return\(-1\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*S)Tj 0 Tc 1.8 0 Td [(ee if this is the final data with null & status.)-1200(Null)]TJ -1.8 -1.189 Td [(*)-600(is)-600(next to last byte of buffer; status byte is last byte.)]TJ 0.6 Tc 0 -1.189 TD (*Z)Tj 0 Tc 1.8 0 Td (ero status means there is a file descriptor to receive.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (for \(ptr = buf; ptr < &buf[nr]; \) {)Tj 2.4 -1.189 Td (if \(*ptr++ == 0\) {)Tj 2.4 -1.189 Td (if \(ptr != &buf[nr-1]\))Tj 2.4 -1.189 Td (err_dump\("message format error"\);)Tj -2.4 -1.189 Td [(status = *ptr & 0xFF;)-1800(/* prevent sign extension */)]TJ 0 -1.189 TD (if \(status == 0\) {)Tj 2.4 -1.189 Td (if \(msg.msg_controllen != CONTROLLEN\))Tj 2.4 -1.189 Td (err_dump\("status = 0 but no fd"\);)Tj -2.4 -1.783 Td (/* process the control data */)Tj T* (for \(cmp = CMSG_FIRSTHDR\(&msg\);)Tj 1.2 -1.189 Td (cmp != NULL; cmp = CMSG_NXTHDR\(&msg, cmp\)\) {)Tj 1.2 -1.189 Td (if \(cmp->cmsg_level != SOL_SOCKET\))Tj 2.4 -1.189 Td (continue;)Tj -2.4 -1.189 Td (switch \(cmp->cmsg_type\) {)Tj T* (case SCM_RIGHTS:)Tj 2.4 -1.189 Td (newfd = *\(int *\)CMSG_DATA\(cmp\);)Tj T* (break;)Tj -2.4 -1.189 Td (case SCM_CREDTYPE:)Tj 2.4 -1.189 Td (credp = \(struct CREDSTRUCT *\)CMSG_DATA\(cmp\);)Tj T* (*uidptr = credp->CR_UID;)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (newfd = -status;)Tj -2.4 -1.189 Td (})Tj T* (nr -= 2;)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj T* (if \(nr > 0 && \(*userfunc\)\(STDERR_FILENO, buf, nr\) != nr\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td [(if \(status >= 0\))-2400(/* final data has arrived */)]TJ 2.4 -1.189 Td [(return\(newfd\); )-600(/*)-600(descriptor, or -status */)]TJ -4.8 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1840.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 213.3184 167.9788 Tm (Figure 17.16)Tj /T1_1 1 Tf 6.195 0 Td [(Receiving cr)18(edentials over UNIX domain sockets)]TJ 9.9988 0 0 9.9988 129.5846 145.1812 Tm [(On )-412(Fr)18(eeBSD, )-412(we )-412(specify)]TJ /TT0 1 Tf 12.51 0 Td (SCM_CREDS)Tj /T1_1 1 Tf 6.062 0 Td [(to )-412(transmit )-412(cr)18(edentials; )-412(on )-412(Linux, )-412(we )-412(use)]TJ /TT0 1 Tf -18.572 -1.2 Td (SCM_CREDENTIALS)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47486 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.8)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (757)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(60 )-1200(/*)]TJ 0 -1.189 TD [(61 )-1800(*)-600(Internal functions.)]TJ T* [(62 )-1800(*/)]TJ T* [(63 )-1200(static)-600(DB )-2400(*_db_alloc\(int\);)]TJ T* [(64 )-1200(static)-600(void )-1800(_db_dodelete\(DB)-600(*\);)]TJ 0 -1.189 TD [(65 )-1200(static)-600(int )-2400(_db_find_and_lock\(DB)-600(*, const char *, int\);)]TJ 0 -1.189 TD [(66 )-1200(static)-600(int )-2400(_db_findfree\(DB)-600(*, int, int\);)]TJ T* [(67 )-1200(static)-600(void )-1800(_db_free\(DB)-600(*\);)]TJ T* [(68 )-1200(static)-600(DBHASH )-600(_db_hash\(DB)-600(*, const char *\);)]TJ T* [(69 )-1200(static)-600(char )-1200(*_db_readdat\(DB)-600(*\);)]TJ T* [(70 )-1200(static)-600(off_t )-1200(_db_readidx\(DB)-600(*, off_t\);)]TJ T* [(71 )-1200(static)-600(off_t )-1200(_db_readptr\(DB)-600(*, off_t\);)]TJ T* [(72 )-1200(static)-600(void )-1800(_db_writedat\(DB)-600(*, const char *, off_t, int\);)]TJ 0 -1.189 TD [(73 )-1200(static)-600(void )-1800(_db_writeidx\(DB)-600(*, const char *, off_t, int, off_t\);)]TJ 0 -1.189 TD [(74 )-1200(static)-600(void )-1800(_db_writeptr\(DB)-600(*, off_t, off_t\);)]TJ 0 -2.378 TD [(75 )-1200(/*)]TJ 0 -1.189 TD [(76 )-1800(*)-600(Open or create a database.)-1200(Same arguments as open\(2\).)]TJ 0 -1.189 TD [(77 )-1800(*/)]TJ 0 -1.189 TD [(78 )-1200(DBHANDLE)]TJ T* [(79 )-1200(db_open\(const)-600(char *pathname, int oflag, ...\))]TJ T* [(80 )-1200({)]TJ T* [(81 )-3000(DB)]TJ 12 0 Td (*db;)Tj -12 -1.189 Td [(82 )-3000(int)]TJ 12 0 Td (len, mode;)Tj -12 -1.189 Td [(83 )-3000(size_t )-3000(i;)]TJ T* [(84 )-3000(char)-4800(asciiptr[PTR_SZ + 1],)]TJ 0 -1.189 TD (85 )Tj 12 0 Td [(hash[\(NHASH_DEF)-600(+)-600(1\))-600(*)-600(PTR_SZ + 2];)]TJ -12 -1.189 Td (86 )Tj 14.4 0 Td [(/*)-600(+2 for newline and null */)]TJ -14.4 -1.189 Td [(87 )-3000(struct)-600(stat statbuff;)]TJ 0 -2.378 TD [(88 )-3000(/*)]TJ 0 -1.189 TD [(89 )-3600(*)-600(Allocate a DB structure, and the buffers it needs.)]TJ 0 -1.189 TD [(90 )-3600(*/)]TJ T* [(91 )-3000(len)]TJ 0.6 Tc 7.2 0 Td (=s)Tj 0 Tc 1.8 0 Td (trlen\(pathname\);)Tj -9 -1.189 Td [(92 )-3000(if)-600(\(\(db = _db_alloc\(len\)\) == NULL\))]TJ 0 -1.189 TD (93 )Tj 7.2 0 Td [(err_dump\("db_open:)-600(_db_alloc error for DB"\);)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2802.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 256.1673 Tm [([60 )167(\320 )167(74])]TJ -0.092 Tc 4 0 Td [(We )-304(h)]TJ 0 Tc 2.339 0 Td [(ave )-120(chosen )-120(to )-120(name )-120(all )-120(the )-120(user)18(-callable )-120(\(public\) )-120(functions )-120(starting )-120(with)]TJ /TT0 1 Tf -2.339 -1.2 Td (db_)Tj /T1_0 1 Tf 2.241 0 Td [(and )-191(all )-191(the )-191(internal )-191(\(private\) )-191(functions )-191(starting )-191(with)]TJ /TT0 1 Tf 24.521 0 Td (_db_)Tj /T1_0 1 Tf 0.6908 Tc (.T)Tj 0 Tc 3.954 0 Td [(he )-191(public)]TJ -30.715 -1.2 Td [(functions )-133(wer)]TJ 0.3826 Tc 6.204 0 Td (ed)Tj 0 Tc 1.473 0 Td [(eclar)18(ed )-133(in )-133(the )-133(library\325s )-133(header )-133(\336le,)]TJ /TT0 1 Tf 16.091 0 Td (apue_db.h)Tj /T1_0 1 Tf 0.6326 Tc (.W)Tj 0.3826 Tc 7.191 0 Td (ed)Tj 0 Tc 1.473 0 Td [(eclar)18(e)]TJ -32.43 -1.2 Td [(the )-63(internal )-63(functions )-63(as)]TJ /TT0 1 Tf 11.141 0 Td (static)Tj /T1_0 1 Tf 3.913 0 Td [(so )-63(they )-63(ar)]TJ 0.3133 Tc 4.417 0 Td (ev)Tj 0 Tc 1.357 0 Td [(isible )-63(only )-63(to )-63(functions )-63(r)16(esiding)]TJ -20.828 -1.2 Td (in the same \336le \(the \336le containing the library implementation\).\ )Tj -4 -1.6 Td [([75 )167(\320 )167(93])-668(The)]TJ /TT0 1 Tf 5.957 0 Td (db_open)Tj /T1_0 1 Tf 4.483 0 Td [(function )-33(has )-33(the )-33(same )-33(ar)18(guments )-33(as)]TJ /TT0 1 Tf 16.239 0 Td (open)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.5331 Tc 0.333 -0.04 Td (.I)Tj 0.2831 Tc 1.12 0 Td (ft)Tj 0 Tc 0.942 0 Td [(he )-33(caller )-33(wants)]TJ -28.307 -1.2 Td [(to )-306(cr)18(eate )-306(the )-306(database )-306(\336les, )-306(the )-306(optional )-306(thir)]TJ 0.5566 Tc 21.347 0 Td (da)Tj -0.018 Tc 1.668 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument )-307(speci\336es )-307(the )-307(\336le)]TJ -23.948 -1.2 Td [(permissions. )-460(The)]TJ /TT0 1 Tf 8.435 0 Td (db_open)Tj /T1_0 1 Tf 4.66 0 Td [(function )-210(opens )-210(the )-210(index )-210(\336le )-210(and )-210(the )-210(data )-210(\336le,)]TJ -13.095 -1.2 Td [(initializing )-508(the )-508(index )-508(\336le, )-508(if )-508(necessary)]TJ 1.0081 Tc 18.869 0 Td (.T)Tj 0 Tc 1.871 0 Td [(he )-508(function )-508(starts )-508(by )-508(calling)]TJ /TT0 1 Tf -20.741 -1.2 Td (_db_alloc)Tj /T1_0 1 Tf 5.65 0 Td (to allocate and initialize a)Tj /TT0 1 Tf 11.534 0 Td (DB)Tj /T1_0 1 Tf 1.45 0 Td [(str)8(uctur)18(e.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47487 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.9)]TJ -0.092 Tc 33.471 0 Td (Te)Tj 0 Tc 1 0 Td [(rminal )-250(Identi\336cation)]TJ /T1_1 1 Tf 11.362 0 Td (697)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (if \(\(ddp->d_name = strdup\(dirname\)\) == NULL\) {)Tj 2.4 -1.189 Td (free\(ddp\);)Tj 0 -1.189 TD (return;)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (ddp->d_next = NULL;)Tj 0 -1.189 TD (if \(tail == NULL\) {)Tj 2.4 -1.189 Td (head = ddp;)Tj 0 -1.189 TD (tail = ddp;)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (tail->d_next = ddp;)Tj T* (tail = ddp;)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (static void)Tj 0 -1.189 TD (cleanup\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(struct devdir)-1800(*ddp, *nddp;)]TJ 0 -2.021 TD (ddp = head;)Tj 0 -1.189 TD (while \(ddp != NULL\) {)Tj 2.4 -1.189 Td (nddp = ddp->d_next;)Tj 0 -1.189 TD (free\(ddp->d_name\);)Tj T* (free\(ddp\);)Tj T* (ddp = nddp;)Tj -2.4 -1.189 Td (})Tj T* (head = NULL;)Tj T* (tail = NULL;)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (static char *)Tj 0 -1.189 TD (searchdir\(char *dirname, struct stat *fdstatp\))Tj T* ({)Tj 2.4 -1.189 Td [(struct stat)-3000(devstat;)]TJ 0 -1.189 TD (DIR )Tj 9.6 0 Td (*dp;)Tj -9.6 -1.189 Td (int )Tj 9.6 0 Td (devlen;)Tj -9.6 -1.189 Td [(struct dirent)-1800(*dirp;)]TJ 0 -2.021 TD (strcpy\(pathname, dirname\);)Tj 0 -1.189 TD (if \(\(dp = opendir\(dirname\)\) == NULL\))Tj 2.4 -1.189 Td (return\(NULL\);)Tj -2.4 -1.189 Td (strcat\(pathname, "/"\);)Tj T* (devlen = strlen\(pathname\);)Tj T* (while \(\(dirp = readdir\(dp\)\) != NULL\) {)Tj 2.4 -1.189 Td (strncpy\(pathname + devlen, dirp->d_name,)Tj 1.2 -1.189 Td (_POSIX_PATH_MAX - devlen\);)Tj -1.2 -2.021 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*S)Tj 0 Tc 1.8 0 Td (kip aliases.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(strcmp\(pathname, "/dev/stdin"\) == 0 ||)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47488 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (638)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 172.7896 670.2598 Tm (goto errout;)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (if \(listen\(fd, QLEN\) < 0\) { /* tell kernel we\325re a server */)Tj 2.4 -1.189 Td (rval = -4;)Tj 0 -1.189 TD (goto errout;)Tj -2.4 -1.189 Td (})Tj T* (return\(fd\);)Tj -2.4 -2.021 Td (errout:)Tj 2.4 -1.189 Td (err = errno;)Tj 0 -1.189 TD (close\(fd\);)Tj 0 -1.189 TD (errno = err;)Tj T* (return\(rval\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5221.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 251.8658 506.0583 Tm (Figure 17.8)Tj /T1_1 1 Tf 5.695 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (serv_listen)Tj /T1_1 1 Tf 6.85 0 Td (function)Tj 9.9988 0 0 9.9988 129.5848 482.0611 Tm [(First, )-206(we )-206(cr)18(eate )-206(a )-206(single )-206(UNIX )-206(domain )-206(socket )-206(by )-206(calling)]TJ /TT0 1 Tf 26.705 0 Td (socket)Tj /T1_1 1 Tf 0.7057 Tc (.W)Tj 0.4557 Tc 5.464 0 Td (et)Tj 0 Tc 1.261 0 Td [(hen )-206(\336ll )-206(in )-206(a)]TJ /TT0 1 Tf -33.43 -1.2 Td (sockaddr_un)Tj /T1_1 1 Tf 6.979 0 Td [(str)8(uctur)]TJ 0.3795 Tc 3.49 0 Td (ew)Tj 0 Tc 1.692 0 Td [(ith )-130(the )-130(well-known )-130(pathname )-130(to )-130(be )-130(assigned )-130(to )-130(the )-130(socket.)]TJ -12.162 -1.2 Td [(This )-119(str)8(uctur)18(e)-369(is)-369(t)1(he )-119(ar)18(gument )-119(to)]TJ /TT0 1 Tf 15.371 0 Td (bind)Tj /T1_1 1 Tf 0.6187 Tc (.N)Tj 0 Tc 4.1 0 Td [(ote )-119(that )-119(we )-119(don\325t )-119(need )-119(to )-119(set )-119(the)]TJ /TT0 1 Tf 15.329 0 Td (sun_len)Tj /T1_1 1 Tf -34.8 -1.2 Td [(\336eld )-50(pr)18(esent )-50(on )-50(some )-50(platforms, )-50(because )-50(the )-50(operating )-50(system )-50(sets )-50(this )-50(for )-50(us, )-50(deriving)]TJ 0 -1.2 TD [(it fr)18(om the addr)18(ess length we pass to the)]TJ /TT0 1 Tf 18.156 0 Td (bind)Tj /T1_1 1 Tf 2.65 0 Td (function.)Tj -19.006 -1.2 Td [(Finally)111(,)-454(we)-454(c)-1(all)]TJ /TT0 1 Tf 7.409 0 Td (listen)Tj /T1_1 1 Tf 4.054 0 Td [(\(Section )-204(16.4\) )-204(to )-204(tell )-204(the )-204(kernel )-204(that )-204(the )-204(pr)18(ocess )-204(will )-204(be)]TJ -13.263 -1.2 Td [(acting )-143(as )-143(a )-143(server )-143(awaiting )-143(connections )-143(fr)18(om )-143(clients.)-643(When )-143(a )-143(connect )-143(r)18(equest )-143(fr)18(om )-143(a)]TJ T* (client arrives, the server calls the)Tj /TT0 1 Tf 14.673 0 Td (serv_accept)Tj /T1_1 1 Tf 6.85 0 Td (function \(Figur)Tj 0.25 Tc 6.673 0 Td (e1)Tj 0 Tc 1.229 0 Td (7.9\).)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3909.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 381.3493 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj T* (#include )Tj T* (#include )Tj 0 -1.902 TD [(#define STALE)-1800(30 )-600(/*)-600(client\325s name can\325t be older than this \(sec\) */)]TJ T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*W)Tj 0 Tc 1.8 0 Td (ait for a client connection to arrive, and accept it.)Tj -1.8 -1.189 Td [(*)-600(We)-600(also obtain the client\325s user ID from the pathname)]TJ 0.6 Tc 0 -1.189 TD (*t)Tj 0 Tc 1.8 0 Td (hat it must bind before calling us.)Tj 0.6 Tc -1.8 -1.189 Td (*R)Tj 0 Tc 1.8 0 Td (eturns new fd if all OK, <0 on error)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (int)Tj 0 -1.189 TD (serv_accept\(int listenfd, uid_t *uidptr\))Tj T* ({)Tj 2.4 -1.189 Td (int )Tj 12 0 Td [(clifd,)-600(err, rval;)]TJ -12 -1.189 Td (socklen_t )Tj 12 0 Td (len;)Tj -12 -1.189 Td (time_t )Tj 12 0 Td (staletime;)Tj -12 -1.189 Td [(struct sockaddr_un)-1200(un;)]TJ T* (struct stat)Tj 12 0 Td (statbuf;)Tj -12 -1.189 Td (char )Tj 12 0 Td (*name;)Tj -12 -1.902 Td (/* allocate enough space for longest name plus terminating null */)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47489 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.8)]TJ 33.728 0 Td [(Memory-Mapped )-250(I/O)]TJ /T1_1 1 Tf 12.105 0 Td (529)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj 0 -1.902 TD [(#define COPYINCR \(1024*1024*1024\))-1800(/* 1 GB */)]TJ 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-4800(fdin,)-600(fdout;)]TJ 0 -1.189 TD [(void )-4200(*src,)-600(*dst;)]TJ 0 -1.189 TD [(size_t )-3000(copysz;)]TJ T* (struct stat sbuf;)Tj T* [(off_t )-3600(fsz)]TJ 0.6 Tc 9.6 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -11.4 -1.902 Td (if \(argc != 3\))Tj 2.4 -1.189 Td (err_quit\("usage: %s ", argv[0]\);)Tj -2.4 -1.902 Td (if \(\(fdin = open\(argv[1], O_RDONLY\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("can\325t open %s for reading", argv[1]\);)Tj -2.4 -1.902 Td (if \(\(fdout = open\(argv[2], O_RDWR | O_CREAT | O_TRUNC,)Tj 1.2 -1.189 Td (FILE_MODE\)\) < 0\))Tj 1.2 -1.189 Td (err_sys\("can\325t creat %s for writing", argv[2]\);)Tj -2.4 -1.902 Td (if \(fstat\(fdin, &sbuf\) < 0\))Tj 21.6 0 Td (/* need size of input file */)Tj -19.2 -1.189 Td (err_sys\("fstat error"\);)Tj -2.4 -1.902 Td (if \(ftruncate\(fdout, sbuf.st_size\) < 0\) /* set output file size */)Tj 2.4 -1.189 Td (err_sys\("ftruncate error"\);)Tj -2.4 -1.902 Td (while \(fsz < sbuf.st_size\) {)Tj 2.4 -1.189 Td (if \(\(sbuf.st_size - fsz\) > COPYINCR\))Tj 2.4 -1.189 Td (copysz = COPYINCR;)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (copysz = sbuf.st_size - fsz;)Tj -2.4 -1.902 Td (if \(\(src = mmap\(0, copysz, PROT_READ, MAP_SHARED,)Tj 1.2 -1.189 Td (fdin, fsz\)\) == MAP_FAILED\))Tj 1.2 -1.189 Td (err_sys\("mmap error for input"\);)Tj -2.4 -1.189 Td (if \(\(dst = mmap\(0, copysz, PROT_READ | PROT_WRITE,)Tj 1.2 -1.189 Td (MAP_SHARED, fdout, fsz\)\) == MAP_FAILED\))Tj 1.2 -1.189 Td (err_sys\("mmap error for output"\);)Tj -2.4 -1.902 Td [(memcpy\(dst, src, copysz\);)-1800(/* does the file copy */)]TJ T* (munmap\(src, copysz\);)Tj T* (munmap\(dst, copysz\);)Tj 0 -1.189 TD (fsz += copysz;)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1625.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 229.9044 146.4804 Tm (Figure 14.27)Tj /T1_0 1 Tf 6.195 0 Td (Copy a \336le using memory-mapped I/O)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47490 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (518)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm (unsigned char)Tj 0 -1.189 TD (translate\(unsigned char c\))Tj T* ({)Tj 2.4 -1.189 Td (/* same as before */)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(int argc, char* argv[]\))Tj T* ({)Tj 2.4 -1.189 Td (int )Tj 12 0 Td [(ifd,)-600(ofd, i, j, n, err, numop;)]TJ -12 -1.189 Td (struct stat)Tj 12 0 Td (sbuf;)Tj -12 -1.189 Td [(const struct aiocb)-1200(*aiolist[NBUF];)]TJ T* (off_t )Tj 12 0 Td (off)Tj 0.6 Tc 2.4 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -16.2 -2.14 Td (if \(argc != 3\))Tj 2.4 -1.189 Td (err_quit\("usage: rot13 infile outfile"\);)Tj -2.4 -1.189 Td (if \(\(ifd = open\(argv[1], O_RDONLY\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("can\325t open %s", argv[1]\);)Tj -2.4 -1.189 Td (if \(\(ofd = open\(argv[2], O_RDWR|O_CREAT|O_TRUNC, FILE_MODE\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("can\325t create %s", argv[2]\);)Tj -2.4 -1.189 Td (if \(fstat\(ifd, &sbuf\) < 0\))Tj 2.4 -1.189 Td (err_sys\("fstat failed"\);)Tj -2.4 -2.14 Td (/* initialize the buffers */)Tj T* (for \(i = 0; i < NBUF; i++\) {)Tj 2.4 -1.189 Td (bufs[i].op = UNUSED;)Tj T* (bufs[i].aiocb.aio_buf = bufs[i].data;)Tj T* (bufs[i].aiocb.aio_sigevent.sigev_notify = SIGEV_NONE;)Tj T* (aiolist[i] = NULL;)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (numop = 0;)Tj 0 -1.189 TD (for \(;;\) {)Tj 2.4 -1.189 Td (for \(i = 0; i < NBUF; i++\) {)Tj 2.4 -1.189 Td (switch \(bufs[i].op\) {)Tj T* (case UNUSED:)Tj 2.4 -1.189 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*R)Tj 0 Tc 1.8 0 Td (ead from the input file if more data)Tj 0.6 Tc -1.8 -1.189 Td (*r)Tj 0 Tc 1.8 0 Td (emains unread.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(off < sbuf.st_size\) {)Tj 2.4 -1.189 Td (bufs[i].op = READ_PENDING;)Tj T* (bufs[i].aiocb.aio_fildes = ifd;)Tj T* (bufs[i].aiocb.aio_offset = off;)Tj T* (off += BSZ;)Tj T* (if \(off >= sbuf.st_size\))Tj 2.4 -1.189 Td (bufs[i].last = 1;)Tj -2.4 -1.189 Td (bufs[i].aiocb.aio_nbytes = BSZ;)Tj T* (if \(aio_read\(&bufs[i].aiocb\) < 0\))Tj 2.4 -1.189 Td (err_sys\("aio_read failed"\);)Tj -2.4 -1.189 Td (aiolist[i] = &bufs[i].aiocb;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47491 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (670)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 11.9993 0 0 11.9993 129.5922 668.9599 Tm [(Ex)10(er)20(cises)]TJ /T1_0 1 Tf 8.9995 0 0 8.9995 129.5922 647.9611 Tm (17.1)Tj /T1_1 1 Tf -0.092 Tc 3.065 0 Td [(We )-458(c)]TJ 0 Tc 2.355 0 Td [(hose )-274(to )-274(use )-274(UNIX )-274(domain )-274(datagram )-274(sockets )-274(in )-274(Figur)]TJ 0.5243 Tc 25.357 0 Td (e1)Tj 0 Tc 1.503 0 Td [(7.3, )-274(because )-274(they )-274(r)17(etain)]TJ -29.215 -1.222 Td [(message )-111(boundaries.)-611(Describe )-111(the )-111(changes )-111(that )-111(would )-111(be )-111(necessary )-111(to )-111(use )-111(r)18(egular )-111(pipes)]TJ 0 -1.222 TD [(instead. )-250(How)-250(can we avoid copying the messages two extra times?)]TJ /T1_0 1 Tf -3.065 -1.667 Td (17.2)Tj /T1_1 1 Tf -0.074 Tc 3.065 0 Td (Wr)Tj 0 Tc 1.321 0 Td [(ite )-84(the )-84(following )-84(pr)18(ogram )-84(using )-84(the )-84(\336le )-84(descriptor )-84(passing )-84(functions )-84(fr)18(om )-84(this )-84(chapter)]TJ -1.321 -1.222 Td [(and )-80(the )-80(par)18(ent\320child )-80(synchr)17(onization )-80(r)18(outines )-80(fr)18(om )-80(Section )-80(8.9.)-580(The )-80(pr)18(ogram )-80(calls)]TJ /TT1 1 Tf 37.618 0 Td (fork)Tj /T1_1 1 Tf (,)Tj -37.618 -1.222 Td [(and )-3(the )-3(child)]TJ /TT1 1 Tf 6.059 0 Td (open)Tj /T1_1 1 Tf [(s)-253(an)-253(e)-1(xisting )-3(\336le )-3(and )-3(passes )-3(the )-3(open )-3(descriptor )-3(to )-3(the )-3(par)15(ent. )-253(The)-254(child)]TJ -6.059 -1.222 Td [(then )-176(positions )-176(the )-176(\336le )-176(using)]TJ /TT1 1 Tf 13.346 0 Td (lseek)Tj /T1_1 1 Tf 3.426 0 Td [(and )-176(noti\336es )-176(the )-176(par)19(ent. )-426(The)-425(par)18(ent )-176(r)18(eads )-176(the )-176(\336le\325s)]TJ -16.771 -1.222 Td [(curr)18(ent )-168(of)19(fset )-167(and )-167(prints )-167(it )-167(for )-167(veri\336cation.)-667(If )-167(the )-167(\336le )-167(was )-167(passed )-167(fr)18(om )-167(the )-167(child )-167(to )-167(the)]TJ T* [(par)18(ent )-78(as )-78(we )-78(described, )-78(they )-78(should )-78(be )-78(sharing )-78(the )-78(same )-78(\336le )-78(table )-78(entry)108(,)-328(so)-328(e)-1(ach )-78(time )-78(the)]TJ 0 -1.222 Td [(child )-12(changes )-12(the )-12(\336le\325s )-12(curr)18(ent )-12(of)18(fset, )-12(that )-12(change )-12(should )-12(also )-12(af)18(fect )-12(the )-12(par)18(ent\325s )-12(descriptor)75(.)]TJ 0 -1.222 TD [(Have the child position the \336le to a dif)18(fer)18(ent of)18(fset and notify the par)18(ent again.)]TJ /T1_0 1 Tf -3.065 -1.667 Td (17.3)Tj /T1_1 1 Tf 3.065 0 Td [(In )-159(Figur)18(es )-159(17.20 )-159(and )-159(17.21, )-159(we )-159(dif)21(fer)18(entiated )-159(between )-159(declaring )-159(and )-159(de\336ning )-159(the )-159(global)]TJ 0 -1.222 Td [(variables. )-250(What)-250(is the dif)18(fer)18(ence?)]TJ /T1_0 1 Tf -3.065 -1.667 Td (17.4)Tj /T1_1 1 Tf 3.065 0 Td [(Recode )-26(the)]TJ /TT1 1 Tf 5.167 0 Td (buf_args)Tj /T1_1 1 Tf 5.076 0 Td [(function )-26(\(Figur)]TJ 0.2763 Tc 6.699 0 Td (e1)Tj 0 Tc 1.255 0 Td [(7.23\), )-26(r)18(emoving )-26(the )-26(compile-time )-26(limit )-26(on )-26(the )-26(size)]TJ -18.198 -1.222 Td (of the)Tj /TT1 1 Tf 2.766 0 Td (argv)Tj /T1_1 1 Tf 2.65 0 Td (array)Tj 0.5 Tc 2.235 0 Td (.U)Tj 0 Tc 1.528 0 Td (se dynamic memory allocation.)Tj /T1_0 1 Tf -12.244 -1.667 Td (17.5)Tj /T1_1 1 Tf 3.065 0 Td [(Describe )-33(ways )-33(to )-33(optimize )-33(the )-33(function)]TJ /TT1 1 Tf 17.735 0 Td (loop)Tj /T1_1 1 Tf 2.683 0 Td [(in )-33(Figur)]TJ 0.2832 Tc 3.539 0 Td (e1)Tj 0 Tc 1.262 0 Td [(7.29 )-33(and )-33(Figur)]TJ 0.2832 Tc 6.392 0 Td (e1)Tj 0 Tc 1.262 0 Td [(7.30. )-283(Implement)]TJ -32.874 -1.222 Td (your optimizations.)Tj /T1_0 1 Tf -3.065 -1.667 Td (17.6)Tj /T1_1 1 Tf 3.065 0 Td [(In )-126(the)]TJ /TT1 1 Tf 3.058 0 Td (serv_listen)Tj /T1_1 1 Tf 6.976 0 Td [(function )-126(\(Figur)]TJ 0.3758 Tc 6.799 0 Td (e1)Tj 0 Tc 1.355 0 Td [(7.8\), )-126(we )-126(unlink )-126(the )-126(name )-126(of )-126(the )-126(\336le )-126(r)21(epr)18(esenting)]TJ -18.187 -1.222 Td [(the )-26(UNIX )-26(domain )-26(socket )-26(if )-26(the )-26(\336le )-26(alr)18(eady )-26(exists.)]TJ -0.092 Tc 22.328 0 Td [(To )-210(a)]TJ 0 Tc 1.843 0 Td [(void )-26(unintentionally )-26(r)18(emoving )-26(a )-26(\336le)]TJ -24.171 -1.222 Td [(that )-1(isn\325t )-1(a )-1(socket, )-1(we )-1(could )-1(call)]TJ /TT1 1 Tf 14.253 0 Td (stat)Tj /T1_1 1 Tf 2.651 0 Td [(\336rst )-1(to )-1(verify )-1(the )-1(\336le )-1(type.)-502(Explain )-1(the )-1(two )-1(pr)18(oblems)]TJ -16.904 -1.222 Td [(with this appr)18(oach.)]TJ /T1_0 1 Tf -3.065 -1.667 Td (17.7)Tj /T1_1 1 Tf 3.065 0 Td [(Describe )-194(two )-194(possible )-194(ways )-194(to )-194(pass )-194(mor)]TJ 0.4438 Tc 18.757 0 Td (et)Tj 0 Tc 1.249 0 Td [(han )-194(one )-194(\336le )-194(descriptor )-194(with )-194(a )-194(single )-194(call )-194(to)]TJ /TT1 1 Tf -20.006 -1.222 Td (sendmsg)Tj /T1_1 1 Tf 0.5 Tc (.T)Tj 0 Tc 5.473 0 Td (ry them out to see if they ar)Tj 0.25 Tc 12.144 0 Td (es)Tj 0 Tc 1.153 0 Td (upported by your operating system.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47492 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(19.2)]TJ 39.439 0 Td (Overview)Tj /T1_1 1 Tf 6.394 0 Td (721)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(Running Copr)20(ocesses)]TJ /T1_0 1 Tf 3.6 -2.4 Td [(In )-63(the )-63(copr)18(ocess )-63(example )-63(in )-63(Figur)]TJ 0.3135 Tc 15.164 0 Td (e1)Tj 0 Tc 1.292 0 Td [(5.19, )-63(we )-63(couldn\325t )-63(invoke )-63(a )-63(copr)18(ocess )-63(that )-63(used )-63(the)]TJ -16.456 -1.2 Td (standar)Tj 0.2938 Tc 3.32 0 Td (dI)Tj 0 Tc 1.242 0 Td [(/O )-44(library )-44(for )-44(its )-44(input )-44(and )-44(output, )-44(because )-44(when )-44(we )-44(talked )-44(to )-44(the )-44(copr)19(ocess)]TJ -4.562 -1.2 Td [(acr)18(oss )-86(a )-86(pipe, )-86(the )-86(standar)]TJ 0.3359 Tc 11.488 0 Td (dI)Tj 0 Tc 1.284 0 Td [(/O )-86(library )-86(fully )-86(buf)19(fer)18(ed )-86(the )-86(standar)]TJ 0.3358 Tc 16.583 0 Td (di)Tj 0 Tc 1.238 0 Td [(nput )-86(and )-86(standar)18(d)]TJ -30.592 -1.2 Td [(output, )-153(leading )-153(to )-153(a )-153(deadlock.)-653(If )-153(the )-153(copr)17(ocess )-153(is )-153(a )-153(compiled )-153(pr)18(ogram )-153(for )-153(which )-153(we)]TJ 0 -1.2 TD [(don\325t )-184(have )-184(the )-184(sour)18(ce )-184(code, )-184(we )-184(can\325t )-184(add)]TJ /TT1 1 Tf 19.699 0 Td (fflush)Tj /T1_0 1 Tf 4.034 0 Td [(statements )-184(to )-184(solve )-184(this )-184(pr)16(oblem.)]TJ -23.734 -1.2 Td (Figur)Tj 0.4406 Tc 2.383 0 Td (e1)Tj 0 Tc 1.42 0 Td [(5.16 )-191(showed )-191(a )-191(pr)19(ocess )-191(driving )-191(a )-191(copr)19(ocess. )-441(What)-440(we )-191(need )-191(to )-191(do )-191(is )-191(place )-191(a)]TJ -3.803 -1.2 Td [(pseudo )-274(terminal )-274(between )-274(the )-274(two )-274(pr)18(ocesses, )-274(as )-274(shown )-274(in )-274(Figur)]TJ 0.5244 Tc 30.152 0 Td (e1)Tj 0 Tc 1.503 0 Td [(9.6, )-274(to )-274(trick )-274(the)]TJ -31.656 -1.2 Td [(copr)18(ocess )-88(into )-88(thinking )-88(that )-88(it )-88(is )-88(being )-88(driven )-88(fr)21(om )-88(a )-88(terminal )-88(instead )-88(of )-88(fr)18(om )-88(another)]TJ 0 -1.2 Td [(pr)18(ocess.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1878 4838 576 432 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 203.4116 508.579 Tm (driving)Tj -0.283 -1.25 Td [(pr)18(ogram)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2958 4838 576 432 re S Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 311.4879 508.5485 Tm (pseudo)Tj -0.241 -1.25 Td (terminal)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 4038 4838 576 432 re S Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 415.3603 530.1128 Tm [(copr)18(ocess)]TJ /T1_2 1 Tf -0.958 -1.975 Td (stdin)Tj 0 -2.7 Td (stdout)Tj ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 295.8 516.2 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 2958 5162 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2454.25 5162.25 cm 0 0 m 432 0 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 260.6338 519.2842 Tm (pipe1)Tj ET q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 245.4 494.6 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 2454 4946 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2526.25 4946.25 cm 0 0 m 432 0 l S Q Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 260.6182 487.6644 Tm (pipe2)Tj ET q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 403.8 516.2 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 4038 5162 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 5162.25 cm 0 0 m 432 0 l S Q Q q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 353.4 494.6 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3534 4946 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3606.25 4946.25 cm 0 0 m 432 0 l S Q Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 222.889 457.1805 Tm (Figure 19.6)Tj /T1_0 1 Tf 5.695 0 Td [(Driving a copr)18(ocess using a pseudo terminal)]TJ 9.9952 0 0 9.9952 129.538 430.7932 Tm [(Now )-218(the )-218(standar)]TJ 0.4681 Tc 7.854 0 Td (di)Tj 0 Tc 1.37 0 Td [(nput )-218(and )-218(standar)]TJ 0.4681 Tc 8.061 0 Td (do)Tj 0 Tc 1.625 0 Td [(utput )-218(of )-218(the )-218(copr)18(ocess )-218(look )-218(like )-218(a )-218(terminal)]TJ -18.911 -1.2 Td (device, so the standar)Tj 0.25 Tc 9.546 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O library will set these two str)18(eams to be line buf)18(fer)18(ed.)]TJ -8.944 -1.2 Td [(The )-135(par)18(ent )-135(can )-135(obtain )-135(a )-135(pseudo )-135(terminal )-135(between )-135(itself )-135(and )-135(the )-135(copr)18(ocess )-135(in )-135(two)]TJ -1.8 -1.2 Td [(ways. )-361(\(The)-360(par)18(ent )-110(in )-110(this )-110(case )-110(could )-110(be )-110(the )-110(pr)18(ogram )-110(in )-110(Figur)]TJ 0.3605 Tc 28.023 0 Td (e1)Tj 0 Tc 1.339 0 Td [(5.18, )-110(which )-110(used )-110(two)]TJ -29.362 -1.2 Td [(pipes )-282(to )-282(communicate )-282(with )-282(the )-282(copr)18(ocess.\) )-532(One)-532(way )-282(is )-282(for )-282(the )-282(par)18(ent )-282(to )-282(call )-282(the)]TJ /TT1 1 Tf 0 -1.2 Td (pty_fork)Tj /T1_0 1 Tf 5.124 0 Td [(function )-74(dir)18(ectly )-74(\(Section )-74(19.4\) )-74(instead )-74(of )-74(calling)]TJ /TT1 1 Tf 22.005 0 Td (fork)Tj /T1_0 1 Tf 0.5739 Tc (.A)Tj 0 Tc 4.002 0 Td [(nother )-74(is )-74(to)]TJ /TT1 1 Tf 5.469 0 Td (exec)Tj /T1_0 1 Tf -36.6 -1.2 Td (the)Tj /TT1 1 Tf 1.713 0 Td (pty)Tj /T1_0 1 Tf 2.126 0 Td [(pr)18(ogram )-76(\(Section )-76(19.5\) )-76(with )-76(the )-76(copr)18(ocess )-76(as )-76(its )-76(ar)16(gument. )-326(W)92(e\325ll )-76(look )-76(at )-76(these)]TJ -3.839 -1.2 Td (two solutions after showing the)Tj /TT1 1 Tf 14.224 0 Td (pty)Tj /T1_0 1 Tf 2.05 0 Td [(pr)18(ogram.)]TJ /TT0 1 Tf -0.04 Tc -19.874 -3.12 Td (Wa)Tj 0 Tc 1.46 0 Td [(tc)10(hing the Output of Long-Running Pr)20(ograms)]TJ /T1_0 1 Tf 2.14 -2.4 Td [(If )-65(we )-65(have )-65(a )-65(pr)18(ogram )-65(that )-65(r)8(uns )-65(for )-65(a )-65(long )-65(time, )-65(we )-65(can )-65(easily )-65(r)8(un )-65(it )-65(in )-65(the )-65(backgr)20(ound)]TJ T* [(using )-79(any )-79(of )-79(the )-79(standar)]TJ 0.3294 Tc 10.998 0 Td (ds)Tj 0 Tc 1.364 0 Td [(hells. )-329(Unfortunately)111(,)-329(if)-329(we)-329(r)17(edir)18(ect )-79(its )-79(standar)]TJ 0.3295 Tc 20.661 0 Td (do)Tj 0 Tc 1.486 0 Td [(utput )-79(to )-79(a)]TJ -34.51 -1.2 Td [(\336le, )-2(and )-2(if )-2(it )-2(doesn\325t )-2(generate )-2(much )-2(output, )-2(we )-2(can\325t )-2(easily )-2(monitor )-2(its )-2(pr)23(ogr)18(ess, )-1(because)]TJ -0 -1.2 Td [(the )-181(standar)]TJ 0.4307 Tc 5.138 0 Td (dI)Tj 0 Tc 1.379 0 Td [(/O )-181(library )-181(will )-181(fully )-181(buf)18(fer )-181(its )-181(standar)]TJ 0.4308 Tc 17.778 0 Td (do)Tj 0 Tc 1.588 0 Td [(utput. )-431(All)-431(that )-181(we\325ll )-181(see )-181(ar)19(e)]TJ -25.882 -1.2 Td [(blocks )-213(of )-213(output )-213(written )-213(by )-213(the )-213(standar)]TJ 0.4631 Tc 18.526 0 Td (dI)Tj 0 Tc 1.411 0 Td [(/O )-213(library )-213(to )-213(the )-213(output )-213(\336le, )-213(possibly )-213(in)]TJ -19.937 -1.2 Td [(chunks as lar)18(ge as 8,192 bytes.)]TJ 1.8 -1.2 Td [(If )-40(we )-40(have )-40(the )-40(sour)18(ce )-40(code, )-40(we )-40(can )-40(insert )-40(calls )-40(to)]TJ /TT1 1 Tf 22.05 0 Td (fflush)Tj /T1_0 1 Tf 3.89 0 Td [(to )-40(for)18(ce )-40(the )-40(standar)]TJ 0.2904 Tc 8.629 0 Td (dI)Tj 0 Tc 1.238 0 Td (/O)Tj -37.608 -1.2 Td [(buf)18(fers )-5(to )-5(be )-5(\337ushed )-5(at )-5(select )-5(points )-5(or )-5(change )-5(the )-5(buf)14(fering )-5(mode )-5(to )-5(line )-5(buf)17(fer)18(ed )-5(using)]TJ /TT1 1 Tf T* (setvbuf)Tj /T1_0 1 Tf 0.5982 Tc (.I)Tj 0.3482 Tc 5.385 0 Td (fw)Tj 0.3483 Tc 1.515 0 Td (ed)Tj 0 Tc 1.438 0 Td [(on\325t )-98(have )-98(the )-98(sour)18(ce )-98(code, )-98(however)73(,)-348(we)-348(c)-1(an )-98(r)8(un )-98(the )-98(pr)18(ogram )-98(under)]TJ -8.339 -1.2 Td (the)Tj /TT1 1 Tf 1.772 0 Td (pty)Tj /T1_0 1 Tf 2.185 0 Td [(pr)18(ogram, )-135(making )-135(its )-135(standar)]TJ 0.3852 Tc 12.993 0 Td (dI)Tj 0 Tc 1.333 0 Td [(/O )-135(library )-135(think )-135(that )-135(its )-135(standar)]TJ 0.3851 Tc 14.73 0 Td (do)Tj 0 Tc 1.542 0 Td [(utput )-135(is )-135(a)]TJ -34.556 -1.2 Td [(terminal. )-374(Figur)]TJ 0.374 Tc 7.004 0 Td (e1)Tj 0 Tc 1.353 0 Td [(9.7 )-124(shows )-124(this )-124(arrangement, )-124(wher)18(e)-374(we)-374(have )-124(called )-124(the )-124(slow )-124(output)]TJ -8.357 -1.2 Td [(pr)18(ogram)]TJ /TT1 1 Tf 4.226 0 Td (slowout)Tj /T1_0 1 Tf 0.6183 Tc (.T)Tj 0 Tc 5.681 0 Td (he)Tj /TT1 1 Tf 1.429 0 Td (fork/exec)Tj /T1_0 1 Tf 5.768 0 Td [(arr)18(ow )-118(fr)18(om )-118(the )-118(login )-118(shell )-118(to )-118(the)]TJ /TT1 1 Tf 15.348 0 Td (pty)Tj /T1_0 1 Tf 2.168 0 Td [(pr)18(ocess )-118(is)]TJ -34.622 -1.2 Td [(shown )-8(as )-8(a )-8(dashed )-8(arr)18(ow )-8(to )-8(emphasize )-8(that )-8(the)]TJ /TT1 1 Tf 21.306 0 Td (pty)Tj /T1_0 1 Tf 2.058 0 Td [(pr)18(ocess )-8(is )-8(r)8(unning )-8(as )-8(a )-8(backgr)17(ound)]TJ -23.364 -1.2 Td (job.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47493 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.3)]TJ 35.67 0 Td [(Thr)18(ead )-250(Attributes)]TJ /T1_1 1 Tf 10.163 0 Td (427)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(2. )-633(An)-250(initialization function exists to set the attributes to their default va\ lues.)]TJ 0 -1.6 TD [(3. )-633(Another)-516(function )-266(exists )-266(to )-266(destr)18(oy )-266(the )-266(attributes )-266(object.)-766(If )-266(the )-266(initialization)]TJ 1.633 -1.2 Td [(function )-380(allocated )-380(any )-380(r)17(esour)18(ces )-380(associated )-380(with )-380(the )-380(attributes )-380(object, )-380(the)]TJ -0 -1.2 Td [(destr)18(oy function fr)18(ees those r)18(esour)18(ces.)]TJ -1.633 -1.6 Td [(4. )-633(Each)-319(attribute )-69(has )-69(a )-69(function )-69(to )-69(get )-69(the )-69(value )-69(of )-69(the )-69(attribute )-69(fr)15(om )-69(the )-69(attribute)]TJ 1.633 -1.2 Td [(object. )-295(Because)-295(the )-45(function )-45(r)18(eturns )-45(0 )-45(on )-45(success )-45(or )-45(an )-45(err)20(or )-45(number )-45(on )-45(failur)18(e,)]TJ 0 -1.2 Td [(the )-51(value )-51(is )-51(r)18(eturned )-51(to )-51(the )-51(caller )-51(by )-51(storing )-51(it )-51(in )-51(the )-51(memory )-51(location )-51(speci\336ed)]TJ 0 -1.2 TD [(by one of the ar)18(guments.)]TJ -1.633 -1.6 Td [(5. )-633(Each)-360(attribute )-110(has )-110(a )-110(function )-110(to )-110(set )-110(the )-110(value )-110(of )-110(the )-110(attribute.)-610(In )-110(this )-110(case, )-110(the)]TJ 1.633 -1.2 Td [(value is passed as an ar)18(gument,)]TJ /T1_2 1 Tf 14.254 0 Td (by value)Tj /T1_0 1 Tf (.)Tj -15.887 -1.92 Td [(In )-34(all )-34(the )-34(examples )-34(in )-34(which )-34(we )-34(called)]TJ /TT0 1 Tf 17.368 0 Td (pthread_create)Tj /T1_0 1 Tf 8.684 0 Td [(in )-34(Chapter )-34(1)55(1, )-34(we )-34(passed)]TJ -27.852 -1.2 Td [(in )-103(a )-103(null )-103(pointer )-103(instead )-103(of )-103(passing )-103(in )-103(a )-103(pointer )-103(to )-103(a)]TJ /TT0 1 Tf 24.037 0 Td (pthread_attr_t)Tj /T1_0 1 Tf 8.754 0 Td [(str)8(uctur)18(e. )-353(W)92(e)]TJ -32.79 -1.2 Td [(can )-67(use )-67(the)]TJ /TT0 1 Tf 5.371 0 Td (pthread_attr_t)Tj /T1_0 1 Tf 8.717 0 Td [(str)8(uctur)18(e)-317(to)-317(m)-1(odify )-67(the )-67(default )-67(attributes, )-67(and )-67(associate)]TJ -14.088 -1.2 Td [(these )-6(attributes )-6(with )-6(thr)18(eads )-6(that )-6(we )-6(cr)18(eate. )-256(W)]TJ 0.256 Tc 20.697 0 Td (eu)Tj 0 Tc 1.338 0 Td [(se )-6(the)]TJ /TT0 1 Tf 2.802 0 Td (pthread_attr_init)Tj /T1_0 1 Tf 10.456 0 Td (function)Tj -35.293 -1.2 Td [(to )-116(initialize )-116(the)]TJ /TT0 1 Tf 7.199 0 Td (pthread_attr_t)Tj /T1_0 1 Tf 8.766 0 Td [(str)8(uctur)18(e. )-366(After)-366(calling)]TJ /TT0 1 Tf 10.833 0 Td (pthread_attr_init)Tj /T1_0 1 Tf 0.3658 Tc (,t)Tj 0 Tc 11.142 0 Td (he)Tj /TT0 1 Tf -37.939 -1.2 Td (pthread_attr_t)Tj /T1_0 1 Tf 8.87 0 Td [(str)8(uctur)]TJ 0.4703 Tc 3.49 0 Td (ec)Tj 0 Tc 1.393 0 Td [(ontains )-220(the )-220(default )-220(values )-220(for )-220(all )-220(the )-220(thr)18(ead )-220(attributes)]TJ -13.754 -1.2 Td (supported by the implementation.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5908 442.2735 Tm (#include )Tj 0 -1.783 TD (int pthread_attr_init\(pthread_attr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj 0 -1.783 TD (int pthread_attr_destroy\(pthread_attr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 19.681 -1.783 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3896.25 cm 0 0 m 0 617 l 3900 617 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9988 0 0 9.9988 147.5823 377.3047 Tm [(To )-193(d)]TJ 0 Tc 1.937 0 Td [(einitialize )-9(a)]TJ /TT0 1 Tf 5.339 0 Td (pthread_attr_t)Tj /T1_0 1 Tf 8.659 0 Td [(str)8(uctur)18(e, )-9(we )-9(call)]TJ /TT0 1 Tf 7.835 0 Td (pthread_attr_destroy)Tj /T1_0 1 Tf 0.5091 Tc (.I)Tj 0 Tc 13.096 0 Td (f)Tj -38.667 -1.2 Td [(an )-181(implementation )-181(of)]TJ /TT0 1 Tf 10.315 0 Td (pthread_attr_init)Tj /T1_0 1 Tf 10.631 0 Td [(allocated )-181(any )-181(dynamic )-181(memory )-181(for )-181(the)]TJ -20.947 -1.2 Td [(attribute )-525(object,)]TJ /TT0 1 Tf 8.182 0 Td (pthread_attr_destroy)Tj /T1_0 1 Tf 12.775 0 Td [(will )-525(fr)18(ee )-525(that )-525(memory)]TJ 1.0252 Tc 11.066 0 Td (.I)Tj 0.7752 Tc 1.612 0 Td (na)Tj 0 Tc 1.857 0 Td (ddition,)Tj /TT0 1 Tf -35.492 -1.2 Td (pthread_attr_destroy)Tj /T1_0 1 Tf 12.291 0 Td [(will )-40(initialize )-40(the )-40(attribute )-40(object )-40(with )-40(invalid )-40(values, )-40(so )-40(if )-40(it)]TJ -12.291 -1.2 Td (is used by mistake,)Tj /TT0 1 Tf 8.65 0 Td (pthread_create)Tj /T1_0 1 Tf 8.65 0 Td [(will r)18(eturn an err)18(or code.)]TJ -15.5 -1.2 Td [(The )-87(thr)18(ead )-87(attributes )-87(de\336ned )-87(by )-87(POSIX.1 )-87(ar)]TJ 0.3367 Tc 19.814 0 Td (es)Tj 0 Tc 1.24 0 Td [(ummarized )-87(in )-87(Figur)]TJ 0.3367 Tc 9.074 0 Td (e1)Tj 0 Tc 1.316 0 Td [(2.3. )-337(POSIX.1)]TJ -33.244 -1.2 Td [(de\336nes )-179(additional )-179(attributes )-179(in )-179(the )-179(Thr)18(ead )-179(Execution )-179(Scheduling )-179(option, )-179(intended )-179(to)]TJ 0 -1.2 TD [(support )-57(r)18(eal-time )-57(applications, )-57(but )-57(we )-57(don\325t )-57(discuss )-57(them )-57(her)14(e. )-307(In)-308(Figur)]TJ 0.3074 Tc 32.525 0 Td (e1)Tj 0 Tc 1.286 0 Td [(2.3, )-57(we )-57(also)]TJ -33.811 -1.2 Td [(show which platforms support each thr)18(ead attribute.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1389.25 2637.25 cm 0 0 m 3713 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 356.6878 255.704 Tm [(Fr)18(eeBSD )-1416(Linux)-1382(Mac OS X)-1198(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-2993(3.2.0)-2618(10.6.8 )-2868(10)]TJ -27.118 0.625 Td (Name)Tj 11.991 0 Td (Description)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1389.25 2417.25 cm 0 0 m 3713 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1389.25 2397.25 cm 0 0 m 3713 0 l S Q Q BT /T1_2 1 Tf 7.9981 0 0 7.9981 142.9057 231.6944 Tm (detachstate)Tj /T1_0 1 Tf 4.961 0 Td [(detached thr)18(ead attribute)]TJ 4.262 Tc 23.363 0 Td (\245\245\245\245)Tj /T1_2 1 Tf 0 Tc -28.324 -1.25 Td (guardsize)Tj /T1_0 1 Tf 4.961 0 Td (guar)Tj 0.25 Tc 2.036 0 Td (db)Tj 0 Tc 1.414 0 Td [(uf)18(fer size in bytes at end of thr)18(ead stack)]TJ 4.262 Tc 19.913 0 Td (\245\245\245\245)Tj /T1_2 1 Tf 0 Tc -28.324 -1.25 Td (stackaddr)Tj /T1_0 1 Tf 4.961 0 Td [(lowest addr)18(ess of thr)18(ead stack)]TJ 4.262 Tc 23.363 0 Td (\245\245\245\245)Tj /T1_2 1 Tf 0 Tc -28.324 -1.25 Td (stacksize)Tj /T1_0 1 Tf 4.961 0 Td [(minimum size in bytes of thr)18(ead stack)]TJ 4.262 Tc 23.363 0 Td (\245\245\245\245)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1389.25 1977.25 cm 0 0 m 3713 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4693.25 1977.25 cm 0 0 m 0 660 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4303.25 1977.25 cm 0 0 m 0 660 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3914.25 1977.25 cm 0 0 m 0 660 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3525.25 1977.25 cm 0 0 m 0 660 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1806.25 1977.25 cm 0 0 m 0 660 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5102.25 1977.25 cm 0 0 m 0 660 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1389.25 1977.25 cm 0 0 m 0 660 l S Q Q BT /T1_1 1 Tf 0 Tc 7.9976 0 0 7.9976 256.675 179.6961 Tm (Figure 12.3)Tj /T1_0 1 Tf 5.695 0 Td [(POSIX.1 thr)18(ead attributes)]TJ 9.997 0 0 9.997 147.5559 158.1026 Tm [(In )-45(Section )-45(1)55(1.5, )-45(we )-45(intr)18(oduced )-45(the )-45(concept )-45(of )-45(detached )-45(thr)22(eads. )-295(If)-294(we )-45(ar)18(e)-295(no)-295(l)1(onger)]TJ -1.8 -1.2 Td [(inter)18(ested )-110(in )-110(an )-110(existing )-110(thr)18(ead\325s )-110(termination )-110(status, )-110(we )-110(can )-110(use)]TJ /TT0 1 Tf 29.368 0 Td (pthread_detach)Tj /T1_0 1 Tf 8.76 0 Td (to)Tj -38.128 -1.2 Td [(allow the operating system to r)18(eclaim the thr)18(ead\325s r)18(esour)18(ces when the thr)18(ead exits.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47494 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (803)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(33 )-1200(/*)]TJ 0 -1.189 TD [(34 )-1800(*)-600(Given a keyword, scan the configuration file for a match)]TJ T* [(35 )-1800(*)-600(and return the string value corresponding to the keyword.)]TJ T* [(36 )-1800(*)]TJ T* [(37 )-1800(*)-600(LOCKING: none.)]TJ 0 -1.189 TD [(38 )-1800(*/)]TJ 0 -1.189 TD [(39 )-1200(static)-600(char *)]TJ T* [(40 )-1200(scan_configfile\(char)-600(*keyword\))]TJ T* [(41 )-1200({)]TJ T* [(42 )-3000(int)]TJ 14.4 0 Td (n, match;)Tj -14.4 -1.189 Td [(43 )-3000(FILE)]TJ 14.4 0 Td (*fp;)Tj -14.4 -1.189 Td [(44 )-3000(char)]TJ 14.4 0 Td (keybuf[MAXKWLEN], pattern[MAXFMTLEN];)Tj -14.4 -1.189 Td [(45 )-3000(char)]TJ 14.4 0 Td (line[MAXCFGLINE];)Tj -14.4 -1.189 Td [(46 )-3000(static)-600(char )-2400(valbuf[MAXCFGLINE];)]TJ 0 -2.021 TD [(47 )-3000(if)-600(\(\(fp = fopen\(CONFIG_FILE, "r"\)\) == NULL\))]TJ 0 -1.189 TD (48 )Tj 7.2 0 Td [(log_sys\("can\325t)-600(open %s", CONFIG_FILE\);)]TJ -7.2 -1.189 Td [(49 )-3000(sprintf\(pattern,)-600("%%%ds %%%ds", MAXKWLEN-1, MAXCFGLINE-1\);)]TJ T* [(50 )-3000(match)]TJ 0.6 Tc 8.4 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -10.2 -1.189 Td [(51 )-3000(while)-600(\(fgets\(line, MAXCFGLINE, fp\) != NULL\) {)]TJ T* (52 )Tj 7.2 0 Td (n)Tj 0.6 Tc 1.2 0 Td (=s)Tj 0 Tc 1.8 0 Td (scanf\(line, pattern, keybuf, valbuf\);)Tj -10.2 -1.189 Td (53 )Tj 7.2 0 Td [(if)-600(\(n == 2 && strcmp\(keyword, keybuf\) == 0\) {)]TJ -7.2 -1.189 Td (54 )Tj 9.6 0 Td (match)Tj 0.6 Tc 3.6 0 Td (=1)Tj 0 Tc 1.8 0 Td (;)Tj -15 -1.189 Td (55 )Tj 9.6 0 Td (break;)Tj -9.6 -1.189 Td (56 )Tj 7.2 0 Td (})Tj -7.2 -1.189 Td [(57 )-3000(})]TJ T* [(58 )-3000(fclose\(fp\);)]TJ T* [(59 )-3000(if)-600(\(match != 0\))]TJ 0 -1.189 TD (60 )Tj 7.2 0 Td (return\(valbuf\);)Tj -7.2 -1.189 Td [(61 )-3000(else)]TJ 0 -1.189 TD (62 )Tj 7.2 0 Td (return\(NULL\);)Tj -7.2 -1.189 Td [(63 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3262.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 302.1717 Tm [([33 )167(\320 )167(46])-668(The)]TJ /TT0 1 Tf 6.089 0 Td (scan_configfile)Tj /T1_0 1 Tf 9.415 0 Td [(function )-165(sear)18(ches )-165(thr)18(ough )-165(the )-165(printer )-165(con\336guration)]TJ -11.504 -1.2 Td [(\336le for the speci\336ed keywor)18(d.)]TJ -4 -1.6 Td [([47 )167(\320 )167(63])]TJ -0.092 Tc 4 0 Td [(We )-571(o)]TJ 0 Tc 2.57 0 Td [(pen )-387(the )-387(con\336guration )-387(\336le )-387(for )-387(r)17(eading )-387(and )-387(build )-387(the )-387(format )-387(string)]TJ -2.57 -1.2 Td [(corr)18(esponding )-266(to )-266(the )-266(sear)18(ch )-266(pattern.)-766(The )-266(notation)]TJ /TT0 1 Tf 24.195 0 Td (%%%ds)Tj /T1_0 1 Tf 3.516 0 Td [(builds )-266(a )-266(format)]TJ -27.711 -1.2 Td [(speci\336er )-5(that )-5(limits )-5(the )-5(string )-5(size )-5(so )-5(we )-5(don\325t )-5(overr)8(un )-5(the )-5(buf)18(fers )-5(used )-5(to )-5(stor)14(e)]TJ 0 -1.2 TD [(the )-106(strings )-106(on )-106(the )-106(stack.)]TJ -0.092 Tc 11.432 0 Td [(We )-290(r)]TJ 0 Tc 2.12 0 Td [(ead )-106(the )-106(\336le )-106(one )-106(line )-106(at )-106(a )-106(time )-106(and )-106(scan )-106(for )-106(two)]TJ -13.552 -1.2 Td [(strings )-78(separated )-78(by )-78(white )-78(space; )-78(if )-78(we )-78(\336nd )-78(them, )-78(we )-78(compar)]TJ 0.3276 Tc 27.827 0 Td (et)Tj 0 Tc 1.133 0 Td [(he )-78(\336rst )-78(string)]TJ -28.96 -1.2 Td [(with )-53(the )-53(keywor)18(d. )-303(If)-303(we )-53(\336nd )-53(a )-53(match )-53(or )-53(we )-53(r)18(each )-53(the )-53(end )-53(of )-53(the )-53(\336le, )-53(the )-53(loop)]TJ T* [(ends )-50(and )-50(we )-50(close )-50(the )-50(\336le.)-550(If )-50(the )-50(keywor)]TJ 0.2996 Tc 18.35 0 Td (dm)Tj 0 Tc 1.794 0 Td [(atches, )-50(we )-50(r)18(eturn )-50(a )-50(pointer )-50(to )-50(the)]TJ -20.143 -1.2 Td [(buf)18(fer containing the string after the keywor)18(d; otherwise, we r)18(eturn)]TJ /TT0 1 Tf 30.149 0 Td (NULL)Tj /T1_0 1 Tf (.)Tj -30.149 -1.56 Td [(The )-354(string )-354(r)17(eturned )-354(is )-354(stor)18(ed )-354(in )-354(a )-354(static )-354(buf)18(fer )-354(\()]TJ /TT0 1 Tf 23.713 0 Td (valbuf)Tj /T1_0 1 Tf [(\), )-354(which )-354(can )-354(be)]TJ -23.713 -1.2 Td [(overwritten )-27(on )-27(successive )-27(calls.)-526(Thus,)]TJ /TT0 1 Tf 17.229 0 Td (scan_configfile)Tj /T1_0 1 Tf 9.277 0 Td [(can\325t )-27(be )-27(called )-27(by )-27(a)]TJ -26.506 -1.2 Td [(multithr)18(eaded )-25(application )-25(unless )-25(we )-25(take )-25(car)]TJ 0.2755 Tc 20.007 0 Td (et)Tj 0.2754 Tc 1.081 0 Td (oa)Tj 0 Tc 1.321 0 Td [(void )-25(calling )-25(it )-25(fr)18(om )-25(multiple)]TJ -22.409 -1.2 Td [(thr)18(eads at the same time.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47495 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (178)Tj /T1_1 1 Tf 3.5 0 Td [(System )-250(Data )-250(Files )-250(and )-250(Information)]TJ 39.241 0 Td [(Chapter )-250(6)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1300.25 6670.25 cm 0 0 m 3892 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 250.8809 658.9605 Tm (struct passwd)Tj /T1_1 1 Tf 14.352 0 Td [(Fr)18(eeBSD )-1416(Linux)-1382(Mac OS X)-1198(Solaris)]TJ -12.288 -1.25 Td (member )Tj 13.563 0 Td [(8.0)-3243(3.2.0 )-2368(10.6.8)-3118(10)]TJ -26.211 0.625 Td (Description)Tj 20.133 0 Td (POSIX.1)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1300.25 6450.25 cm 0 0 m 3892 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1300.25 6430.25 cm 0 0 m 3892 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 133.9679 634.9238 Tm (user name)Tj /TT0 1 Tf 13.714 0 Td [(char )-600(*pw_name)]TJ /T1_1 1 Tf 4.262 Tc 11.981 0 Td (\245\245\245\245\245)Tj 0 Tc -25.695 -1.25 Td [(encrypted passwor)18(d)]TJ /TT0 1 Tf 13.714 0 Td [(char )-600(*pw_passwd)]TJ /T1_1 1 Tf 4.262 Tc 16.849 0 Td (\245\245\245\245)Tj 0 Tc -30.563 -1.25 Td (numerical user ID)Tj /TT0 1 Tf 13.714 0 Td [(uid_t )-600(pw_uid)]TJ /T1_1 1 Tf 4.262 Tc 11.981 0 Td (\245\245\245\245\245)Tj 0 Tc -25.695 -1.25 Td [(numerical gr)18(oup ID)]TJ /TT0 1 Tf 13.714 0 Td [(gid_t )-600(pw_gid)]TJ /T1_1 1 Tf 4.262 Tc 11.981 0 Td (\245\245\245\245\245)Tj 0 Tc -25.695 -1.25 Td (comment \336eld)Tj /TT0 1 Tf 13.714 0 Td [(char )-600(*pw_gecos)]TJ /T1_1 1 Tf 4.262 Tc 16.849 0 Td (\245\245\245\245)Tj 0 Tc -30.563 -1.25 Td [(initial working dir)18(ectory)]TJ /TT0 1 Tf 13.714 0 Td [(char )-600(*pw_dir)]TJ /T1_1 1 Tf 4.262 Tc 11.981 0 Td (\245\245\245\245\245)Tj 0 Tc -25.695 -1.25 Td [(initial shell \(user pr)18(ogram\))]TJ /TT0 1 Tf 13.714 0 Td [(char )-600(*pw_shell)]TJ /T1_1 1 Tf 4.262 Tc 11.981 0 Td (\245\245\245\245\245)Tj 0 Tc -25.695 -1.25 Td (user access class)Tj /TT0 1 Tf 13.714 0 Td [(char )-600(*pw_class)]TJ /T1_1 1 Tf 9.13 Tc 16.849 0 Td (\245\245)Tj 0 Tc -30.563 -1.25 Td [(next time to change passwor)18(d)]TJ /TT0 1 Tf 13.714 0 Td (time_t pw_change)Tj /T1_1 1 Tf 9.13 Tc 16.849 0 Td (\245\245)Tj 0 Tc -30.563 -1.25 Td (account expiration time)Tj /TT0 1 Tf 13.714 0 Td (time_t pw_expire)Tj /T1_1 1 Tf 9.13 Tc 16.849 0 Td (\245\245)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1300.25 5410.25 cm 0 0 m 3892 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3614.25 5410.25 cm 0 0 m 0 1260 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3225.25 5410.25 cm 0 0 m 0 1260 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2417.25 5410.25 cm 0 0 m 0 1260 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5192.25 5410.25 cm 0 0 m 0 1260 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1300.25 5410.25 cm 0 0 m 0 1260 l S Q Q BT /T1_0 1 Tf 0 Tc 7.9986 0 0 7.9986 254.7741 522.9059 Tm (Figure 6.1)Tj /T1_1 1 Tf 5.195 0 Td (Fields in)Tj /TT0 1 Tf 4.025 0 Td (/etc/passwd)Tj /T1_1 1 Tf 6.85 0 Td (\336le)Tj 9.9982 0 0 9.9982 147.5736 498.9102 Tm (Historically)Tj 0.3822 Tc 5.076 0 Td (,t)Tj 0 Tc 0.958 0 Td [(he )-132(passwor)]TJ 0.3822 Tc 5.149 0 Td (d\336)Tj 0 Tc 1.598 0 Td [(le )-132(has )-132(been )-132(stor)18(ed )-132(in)]TJ /TT0 1 Tf 9.916 0 Td (/etc/passwd)Tj /T1_1 1 Tf 6.982 0 Td [(and )-132(has )-132(been )-132(an)]TJ -31.48 -1.2 Td [(ASCII )-145(\336le.)-645(Each )-145(line )-145(contains )-145(the )-145(\336elds )-145(described )-145(in )-145(Figur)]TJ 0.3953 Tc 26.933 0 Td (e6)Tj 0 Tc 1.374 0 Td [(.1, )-145(separated )-145(by )-145(colons.)]TJ -28.307 -1.2 Td [(For example, four lines fr)18(om the)]TJ /TT0 1 Tf 14.466 0 Td (/etc/passwd)Tj /T1_1 1 Tf 6.85 0 Td (\336le on Linux could be)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.5739 455.0079 Tm (root:x:0:0:root:/root:/bin/bash)Tj 0 -1.189 TD (squid:x:23:23::/var/spool/squid:/dev/null)Tj 0 -1.189 TD (nobody:x:65534:65534:Nobody:/home:/bin/sh)Tj 0 -1.189 TD (sar:x:205:105:Stephen Rago:/home/sar:/bin/bash)Tj /T1_1 1 Tf 9.9982 0 0 9.9982 129.5772 401.7073 Tm (Note the following points about these entries.)Tj 0.883 Tc 1.8 -2.04 Td (\245T)Tj 0 Tc 2.102 0 Td [(her)18(e)-263(is)-263(usually )-13(an )-13(entry )-13(with )-13(the )-13(user )-13(name)]TJ /TT0 1 Tf 19.45 0 Td (root)Tj /T1_1 1 Tf 0.5128 Tc (.T)Tj 0 Tc 3.776 0 Td [(his )-13(entry )-13(has )-13(a )-13(user )-13(ID )-13(of )-13(0)]TJ -23.839 -1.2 Td [(\(the super)8(user\).)]TJ 0.883 Tc -1.489 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-21(encrypted )-21(passwor)]TJ 0.2712 Tc 9.782 0 Td (d\336)Tj 0 Tc 1.487 0 Td [(eld )-21(contains )-21(a )-21(single )-21(character )-21(as )-21(a )-21(placeholder )-21(wher)16(e)]TJ -11.883 -1.2 Td [(older )-299(versions )-299(of )-299(the )-299(UNIX )-299(System )-299(used )-299(to )-299(stor)]TJ 0.5493 Tc 23.157 0 Td (et)Tj 0 Tc 1.354 0 Td [(he )-299(encrypted )-299(passwor)17(d.)]TJ -24.512 -1.2 Td [(Because )-185(it )-185(is )-185(a )-185(security )-185(hole )-185(to )-185(stor)]TJ 0.435 Tc 16.378 0 Td (et)Tj 0 Tc 1.24 0 Td [(he )-185(encrypted )-185(passwor)18(d)-435(in)-435(a)-435(\336le )-185(that )-185(is)]TJ -0.018 Tc -17.618 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(adable )-285(by )-285(everyone, )-285(encrypted )-285(passwor)18(ds )-285(ar)]TJ 0.5351 Tc 21.14 0 Td (en)Tj 0 Tc 1.596 0 Td [(ow )-285(kept )-285(elsewher)18(e. )-535(W)92(e\325ll)]TJ -23.593 -1.2 Td (cover this issue in mor)Tj 0.25 Tc 9.952 0 Td (ed)Tj 0 Tc 1.34 0 Td [(etail in the next section when we discuss passwor)18(ds.)]TJ 0.883 Tc -12.781 -1.6 Td (\245S)Tj 0 Tc 2.014 0 Td [(ome )-121(\336elds )-121(in )-121(a )-121(passwor)]TJ 0.3712 Tc 10.882 0 Td (d\336)Tj 0 Tc 1.587 0 Td [(le )-121(entry )-121(can )-121(be )-121(empty)]TJ 0.6213 Tc 9.885 0 Td (.I)Tj 0.3713 Tc 1.208 0 Td (ft)Tj 0 Tc 1.03 0 Td [(he )-121(encrypted )-121(passwor)17(d)]TJ -25.117 -1.2 Td [(\336eld )-39(is )-39(empty)111(,)-289(it)-289(usually )-39(means )-39(that )-39(the )-39(user )-39(does )-39(not )-39(have )-39(a )-39(passwor)17(d. )-289(\(This)-289(is)]TJ -0 -1.2 Td [(not )-14(r)18(ecommended.\) )-264(The)-264(entry )-14(for)]TJ /TT0 1 Tf 15.266 0 Td (squid)Tj /T1_1 1 Tf 3.264 0 Td [(has )-14(one )-14(blank )-14(\336eld: )-14(the )-14(comment )-14(\336eld.)]TJ -18.53 -1.2 Td [(An empty comment \336eld has no ef)18(fect.)]TJ 0.883 Tc -1.489 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-131(shell )-131(\336eld )-131(contains )-131(the )-131(name )-131(of )-131(the )-131(executable )-131(pr)19(ogram )-131(to )-131(be )-131(used )-131(as )-131(the)]TJ -0.613 -1.2 Td [(login )-171(shell )-171(for )-171(the )-171(user)]TJ 0.6713 Tc 10.506 0 Td (.T)Tj 0 Tc 1.534 0 Td [(he )-171(default )-171(value )-171(for )-171(an )-171(empty )-171(shell )-171(\336eld )-171(is )-171(usually)]TJ /TT0 1 Tf -12.04 -1.2 Td (/bin/sh)Tj /T1_1 1 Tf 0.5256 Tc (.N)Tj 0 Tc 5.807 0 Td [(ote, )-26(however)]TJ 0.2756 Tc 5.683 0 Td (,t)Tj 0 Tc 0.852 0 Td [(hat )-26(the )-26(entry )-26(for)]TJ /TT0 1 Tf 7.509 0 Td (squid)Tj /T1_1 1 Tf 3.276 0 Td (has)Tj /TT0 1 Tf 1.782 0 Td (/dev/null)Tj /T1_1 1 Tf 5.676 0 Td [(as )-25(the )-25(login)]TJ -30.583 -1.2 Td [(shell. )-385(Obviously)]TJ 0.3846 Tc 7.456 0 Td (,t)Tj 0 Tc 0.961 0 Td [(his )-135(is )-135(a )-135(device )-135(and )-135(cannot )-135(be )-135(executed, )-135(so )-135(its )-135(use )-135(her)21(e)-385(is)-385(t)1(o)]TJ -8.416 -1.2 Td [(pr)18(event anyone fr)18(om logging in to our system as user)]TJ /TT0 1 Tf 23.877 0 Td (squid)Tj /T1_1 1 Tf (.)Tj 7.9986 0 0 7.9986 183.567 169.3491 Tm [(Many )-307(services )-307(have )-307(separate )-307(user )-307(IDs )-307(for )-307(the )-307(daemon )-307(pr)18(ocesses )-307(\(Chapter )-307(13\) )-307(that )-307(help)]TJ 0 -1.25 TD [(implement )-89(the )-89(service.)-589(The)]TJ /TT0 1 Tf 12.809 0 Td (squid)Tj /T1_1 1 Tf 3.339 0 Td [(entry )-89(is )-89(for )-89(the )-89(pr)18(ocesses )-89(implementing )-89(the)]TJ /TT0 1 Tf 19.917 0 Td (squid)Tj /T1_1 1 Tf 3.339 0 Td [(pr)18(oxy)]TJ -39.404 -1.25 Td (cache service.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47496 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (835)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(699 )-4800(if)-600(\(jp->req.flags & PR_TEXT\) {)]TJ 0 -1.189 TD (700 )Tj 9.6 0 Td (p)Tj 0.6 Tc 1.2 0 Td (=")Tj 0 Tc 1.8 0 Td (text/plain";)Tj -12.6 -1.189 Td (701 )Tj 9.6 0 Td (extra)Tj 0.6 Tc 3.6 0 Td (=1)Tj 0 Tc 1.8 0 Td (;)Tj -15 -1.189 Td [(702 )-4800(})-600(else {)]TJ T* (703 )Tj 9.6 0 Td (p)Tj 0.6 Tc 1.2 0 Td (=")Tj 0 Tc 1.8 0 Td (application/postscript";)Tj -12.6 -1.189 Td (704 )Tj 9.6 0 Td (extra)Tj 0.6 Tc 3.6 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -15 -1.189 Td [(705 )-4800(})]TJ T* [(706 )-4800(icp)]TJ 0.6 Tc 9.6 0 Td (=a)Tj 0 Tc 1.8 0 Td (dd_option\(icp, TAG_MIMETYPE, "document-format", p\);)Tj -11.4 -1.189 Td [(707 )-4800(*icp++)]TJ 0.6 Tc 11.4 0 Td (=T)Tj 0 Tc 1.8 0 Td (AG_END_OF_ATTR;)Tj -13.2 -1.189 Td [(708 )-4800(ilen)]TJ 0.6 Tc 10.2 0 Td (=i)Tj 0 Tc 1.8 0 Td (cp - ibuf;)Tj -12 -2.021 Td [(709 )-4800(/*)]TJ T* (710 )Tj 7.8 0 Td [(*)-600(Set up the HTTP header.)]TJ -7.8 -1.189 Td (711 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(712 )-4800(hcp)]TJ 0.6 Tc 9.6 0 Td (=h)Tj 0 Tc 1.8 0 Td (buf;)Tj -11.4 -1.189 Td [(713 )-4800(sprintf\(hcp,)-600("POST /ipp HTTP/1.1\\r\\n"\);)]TJ T* [(714 )-4800(hcp)-600(+= strlen\(hcp\);)]TJ T* [(715 )-4800(sprintf\(hcp,)-600("Content-Length: %ld\\r\\n",)]TJ T* (716 )Tj 8.4 0 Td (\(long\)sbuf.st_size)Tj 0.6 Tc 11.4 0 Td (+i)Tj 0 Tc 1.8 0 Td (len + extra\);)Tj -21.6 -1.189 Td [(717 )-4800(hcp)-600(+= strlen\(hcp\);)]TJ T* [(718 )-4800(strcpy\(hcp,)-600("Content-Type: application/ipp\\r\\n"\);)]TJ T* [(719 )-4800(hcp)-600(+= strlen\(hcp\);)]TJ T* [(720 )-4800(sprintf\(hcp,)-600("Host: %s:%d\\r\\n", printer_name, IPP_PORT\);)]TJ T* [(721 )-4800(hcp)-600(+= strlen\(hcp\);)]TJ T* [(722 )-4800(*hcp++)]TJ 0.6 Tc 11.4 0 Td (=\325)Tj 0 Tc 1.8 0 Td (\\r\325;)Tj -13.2 -1.189 Td [(723 )-4800(*hcp++)]TJ 0.6 Tc 11.4 0 Td (=\325)Tj 0 Tc 1.8 0 Td (\\n\325;)Tj -13.2 -1.189 Td [(724 )-4800(hlen)]TJ 0.6 Tc 10.2 0 Td (=h)Tj 0 Tc 1.8 0 Td (cp - hbuf;)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3797.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 355.6653 Tm [([699 )167(\320 )167(708])-668(The )-143(last )-143(attribute )-143(we )-143(supply )-143(is )-143(the)]TJ /TT0 1 Tf 21.253 0 Td (document-format)Tj /T1_0 1 Tf 0.6427 Tc (.I)Tj 0 Tc 10.23 0 Td [(f)-393(we)-393(o)1(mit )-143(it, )-143(the)]TJ -26.483 -1.2 Td [(printer )-178(will )-178(interpr)18(et )-178(the )-178(\336le )-178(using )-178(some )-178(default )-178(format.)-682(For )-178(a )-178(PostScript)]TJ 0 -1.2 TD (printer)Tj 0.5125 Tc 2.995 0 Td (,t)Tj 0 Tc 1.089 0 Td [(his )-262(is )-262(pr)18(obably )-262(PostScript, )-262(but )-262(some )-262(printers )-262(can )-262(autosense )-262(the)]TJ -4.084 -1.2 Td [(format )-36(and )-36(choose )-36(between )-36(PostScript, )-36(plaintext, )-36(or )-36(PCL )-36(\(Hewlett-Packar)21(d\325s)]TJ T* [(Printer )-80(Command )-80(Language\).)-582(If )-81(the)]TJ /TT0 1 Tf 16.716 0 Td (PR_TEXT)Tj /T1_0 1 Tf 4.531 0 Td [(\337ag )-81(is )-81(set, )-81(we )-81(set )-81(the )-81(format)]TJ -21.246 -1.2 Td (to)Tj /TT0 1 Tf 1.486 0 Td (text/plain)Tj /T1_0 1 Tf 0.8645 Tc (.O)Tj 0 Tc 7.901 0 Td [(therwise, )-364(we )-364(set )-364(it )-364(to)]TJ /TT0 1 Tf 11.163 0 Td (application/postscript)Tj /T1_0 1 Tf (.)Tj -20.55 -1.2 Td [(Then )-211(we )-211(delimit )-211(the )-211(end )-211(of )-211(the )-211(attributes )-211(portion )-211(of )-211(the )-211(header )-211(with )-211(an)]TJ T* [(end-of-attributes tag and calculate the size of the IPP header)74(.)]TJ 0 -1.8 TD (The)Tj /TT0 1 Tf 1.956 0 Td (extra)Tj /T1_0 1 Tf 3.281 0 Td [(integer )-31(counts )-31(any )-31(extra )-31(characters )-31(we )-31(might )-31(need )-31(to )-31(transmit )-31(to)]TJ -5.237 -1.2 Td [(the )-28(printer)]TJ 0.5283 Tc 4.66 0 Td (.A)Tj 0 Tc 1.556 0 Td [(s)-278(we)-278(s)-1(hall )-28(see )-28(shortly)110(,)-278(we)-278(n)-1(eed )-28(to )-28(send )-28(an )-28(extra )-28(character )-28(to )-28(be)]TJ -6.217 -1.2 Td [(able )-91(to )-91(print )-91(plain )-91(text )-91(r)16(eliably)]TJ 0.5914 Tc 13.736 0 Td (.W)Tj 0.3414 Tc 1.749 0 Td (en)Tj 0 Tc 1.402 0 Td [(eed )-91(to )-91(account )-91(for )-91(this )-91(extra )-91(character)]TJ -16.888 -1.2 Td (when we calculate the content length.)Tj -5 -1.72 Td [([709 )167(\320 )167(724])-668(Now )-25(that )-25(we )-25(know )-25(the )-25(IPP )-25(header )-25(size, )-25(we )-25(can )-25(set )-25(up )-25(the )-25(HTTP )-25(header)]TJ 0.5248 Tc 36.838 0 Td (.W)Tj 0 Tc 1.683 0 Td (e)Tj -33.521 -1.2 Td [(set )-33(the)]TJ /TT0 1 Tf 3.182 0 Td (Content-Length)Tj /T1_0 1 Tf 8.683 0 Td [(to )-33(the )-33(size )-33(in )-33(bytes )-33(of )-33(the )-33(IPP )-33(header )-33(plus )-33(the )-33(size)]TJ -11.865 -1.2 Td [(of )-149(the )-149(\336le )-149(to )-149(be )-149(printed )-149(plus )-149(any )-149(extra )-149(characters )-149(we )-149(might )-149(need )-149(to )-149(send.)]TJ 0 -1.2 TD (The)Tj /TT0 1 Tf 1.994 0 Td (Content-Type)Tj /T1_0 1 Tf 7.52 0 Td (is)Tj /TT0 1 Tf 1.035 0 Td (application/ipp)Tj /T1_0 1 Tf 0.5703 Tc (.W)Tj 0.3203 Tc 10.728 0 Td (em)Tj 0 Tc 1.682 0 Td [(ark )-70(the )-70(end )-70(of )-70(the )-70(HTTP)]TJ -22.96 -1.2 Td [(header with a carriage r)17(eturn and a line feed.)-501(Finally)111(,)-250(we)-250(c)-1(alculate the size of)]TJ -0 -1.2 Td [(the HTTP header)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47497 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (822)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(284 )-1200(/*)]TJ 0 -1.189 TD [(285 )-1800(*)-600(Remove a job from the list of pending jobs.)]TJ T* [(286 )-1800(*)]TJ T* [(287 )-1800(*)-600(LOCKING: caller must hold joblock.)]TJ T* [(288 )-1800(*/)]TJ 0 -1.189 TD [(289 )-1200(void)]TJ 0 -1.189 TD [(290 )-1200(remove_job\(struct)-600(job *target\))]TJ T* [(291 )-1200({)]TJ T* [(292 )-2400(if)-600(\(target->next != NULL\))]TJ T* [(293 )-4800(target->next->prev)]TJ 0.6 Tc 18.6 0 Td (=t)Tj 0 Tc 1.8 0 Td (arget->prev;)Tj -20.4 -1.189 Td [(294 )-2400(else)]TJ T* [(295 )-4800(jobtail)]TJ 0.6 Tc 12 0 Td (=t)Tj 0 Tc 1.8 0 Td (arget->prev;)Tj -13.8 -1.189 Td [(296 )-2400(if)-600(\(target->prev != NULL\))]TJ 0 -1.189 TD [(297 )-4800(target->prev->next)]TJ 0.6 Tc 18.6 0 Td (=t)Tj 0 Tc 1.8 0 Td (arget->next;)Tj -20.4 -1.189 Td [(298 )-2400(else)]TJ 0 -1.189 TD [(299 )-4800(jobhead)]TJ 0.6 Tc 12 0 Td (=t)Tj 0 Tc 1.8 0 Td (arget->next;)Tj -13.8 -1.189 Td [(300 )-1200(})]TJ 0 -2.14 TD [(301 )-1200(/*)]TJ 0 -1.189 TD [(302 )-1800(*)-600(Check the spool directory for pending jobs on start-up.)]TJ T* [(303 )-1800(*)]TJ T* [(304 )-1800(*)-600(LOCKING: none.)]TJ T* [(305 )-1800(*/)]TJ T* [(306 )-1200(void)]TJ T* [(307 )-1200(build_qonstart\(void\))]TJ T* [(308 )-1200({)]TJ T* [(309 )-2400(int)]TJ 14.4 0 Td (fd, err, nr;)Tj -14.4 -1.189 Td [(310 )-2400(int32_t)]TJ 14.4 0 Td (jobid;)Tj -14.4 -1.189 Td [(311 )-2400(DIR)]TJ 14.4 0 Td (*dirp;)Tj -14.4 -1.189 Td [(312 )-2400(struct)-600(dirent )-1200(*entp;)]TJ T* [(313 )-2400(struct)-600(printreq req;)]TJ T* [(314 )-2400(char)]TJ 14.4 0 Td (dname[FILENMSZ], fname[FILENMSZ];)Tj -14.4 -2.14 Td [(315 )-2400(sprintf\(dname,)-600("%s/%s", SPOOLDIR, REQDIR\);)]TJ T* [(316 )-2400(if)-600(\(\(dirp = opendir\(dname\)\) == NULL\))]TJ T* [(317 )-4800(return;)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2845.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 260.4467 Tm [([284 )167(\320 )167(300])]TJ /TT0 1 Tf 5 0 Td (remove_job)Tj /T1_1 1 Tf -0.018 Tc 6.319 0 Td (re)Tj 0 Tc 0.856 0 Td [(moves )-69(a )-69(job )-69(fr)17(om )-69(the )-69(list )-69(of )-69(pending )-69(jobs )-69(given )-69(a )-69(pointer )-69(to)]TJ -7.175 -1.2 Td [(the )-36(job )-36(to )-36(be )-36(r)18(emoved. )-286(The)-286(caller )-36(must )-36(alr)18(eady )-36(hold )-36(the)]TJ /TT0 1 Tf 25.251 0 Td (joblock)Tj /T1_1 1 Tf 4.486 0 Td [(mutex. )-286(If)]TJ -29.737 -1.2 Td [(the )-94(next )-94(pointer )-94(is )-94(non-null, )-94(we )-94(set )-94(the )-94(next )-94(entry\325s )-94(pr)13(evious )-94(pointer )-94(to )-94(the)]TJ 0 -1.2 TD [(tar)18(get\325s )-82(pr)18(evious )-82(pointer)]TJ 0.5818 Tc 10.962 0 Td (.O)Tj 0 Tc 1.618 0 Td [(therwise, )-82(the )-82(entry )-82(is )-82(the )-82(last )-82(one )-82(on )-82(the )-82(list, )-82(so)]TJ -12.579 -1.2 Td [(we )-204(set)]TJ /TT0 1 Tf 3.45 0 Td (jobtail)Tj /T1_1 1 Tf 4.654 0 Td [(to )-204(the )-204(tar)18(get\325s )-204(pr)18(evious )-204(pointer)]TJ 0.7038 Tc 14.372 0 Td (.I)Tj 0.4538 Tc 1.291 0 Td (ft)Tj 0 Tc 1.113 0 Td [(he )-204(tar)18(get\325s )-204(pr)18(evious)]TJ -24.879 -1.2 Td [(pointer )-195(is )-195(non-null, )-195(we )-195(set )-195(the )-195(pr)18(evious )-195(entry\325s )-195(next )-195(pointer )-195(equal )-195(to )-195(the)]TJ T* [(tar)18(get\325s )-119(next )-119(pointer)]TJ 0.6195 Tc 9.054 0 Td (.O)Tj 0 Tc 1.656 0 Td [(therwise, )-119(this )-119(is )-119(the )-119(\336rst )-119(entry )-119(in )-119(the )-119(list, )-119(so )-119(we )-119(set)]TJ /TT0 1 Tf -10.71 -1.2 Td (jobhead)Tj /T1_1 1 Tf 4.45 0 Td [(to point to the next entry in the list after the tar)18(get.)]TJ -9.45 -1.6 Td [([301 )167(\320 )167(317])-668(When )-101(the )-101(daemon )-101(starts, )-101(it )-101(calls)]TJ /TT0 1 Tf 19.947 0 Td (build_qonstart)Tj /T1_1 1 Tf 8.751 0 Td [(to )-101(build )-101(an )-101(in-memory)]TJ -23.697 -1.2 Td [(list )-44(of )-44(print )-44(jobs )-44(fr)18(om )-44(the )-44(disk )-44(\336les )-44(stor)18(ed )-44(in)]TJ /TT0 1 Tf 19.95 0 Td (/var/spool/printer/reqs)Tj /T1_1 1 Tf (.)Tj -19.95 -1.2 Td [(If we can\325t open the dir)18(ectory)111(,)-250(no)-250(print jobs ar)]TJ 0.25 Tc 20.079 0 Td (ep)Tj 0 Tc 1.33 0 Td [(ending, so we r)18(eturn.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47498 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (668)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 237.5857 670.2598 Tm (})Tj 0 -1.189 TD (numfd--;)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse {)-4800(/* process client\325s request */)]TJ 0.6 -1.189 Td (handle_request\(buf, nread, pollfd[i].fd,)Tj 1.2 -1.189 Td (client[i].uid\);)Tj -3.6 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5692.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 245.2426 553.1326 Tm (Figure 17.30)Tj /T1_1 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (loop)Tj /T1_1 1 Tf 2.65 0 Td (function using)Tj /TT0 1 Tf 6.663 0 Td (poll)Tj /T1_1 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5847 529.1355 Tm [(To )-363(a)]TJ 0 Tc 1.996 0 Td [(llow )-179(for )-179(as )-179(many )-179(clients )-179(as )-179(ther)]TJ 0.4285 Tc 14.778 0 Td (ea)Tj -0.018 Tc 1.407 0 Td [(re )-215(p)]TJ 0 Tc 1.886 0 Td [(ossible )-178(open )-178(descriptors, )-178(we )-178(dynamically)]TJ -20.066 -1.2 Td [(allocate )-37(space )-37(for )-37(the )-37(array )-37(of)]TJ /TT0 1 Tf 13.432 0 Td (pollfd)Tj /T1_1 1 Tf 3.887 0 Td [(str)8(uctur)18(es )-37(using )-37(the )-37(same )-37(strategy )-37(as )-37(used )-37(in )-37(the)]TJ /TT0 1 Tf -17.319 -1.2 Td (client_alloc)Tj /T1_1 1 Tf 7.45 0 Td (function for the)Tj /TT0 1 Tf 7.118 0 Td (client)Tj /T1_1 1 Tf 3.85 0 Td (array \(see Figur)Tj 0.25 Tc 6.944 0 Td (e1)Tj 0 Tc 1.229 0 Td (7.27\).)Tj -0.092 Tc -24.791 -1.2 Td [(We )-279(u)]TJ 0 Tc 2.335 0 Td [(se )-95(the )-95(\336rst )-95(entry )-95(\(index )-95(0\) )-95(of )-95(the)]TJ /TT0 1 Tf 15.047 0 Td (pollfd)Tj /T1_1 1 Tf 3.945 0 Td [(array )-95(for )-95(the)]TJ /TT0 1 Tf 6.041 0 Td (listenfd)Tj /T1_1 1 Tf 5.145 0 Td [(descriptor)74(.)]TJ -34.312 -1.2 Td [(The )-215(arrival )-215(of )-215(a )-215(new )-215(client )-215(connection )-215(is )-215(indicated )-215(by )-215(a)]TJ /TT0 1 Tf 26.691 0 Td (POLLIN)Tj /T1_1 1 Tf 4.065 0 Td [(on )-215(the)]TJ /TT0 1 Tf 3.445 0 Td (listenfd)Tj /T1_1 1 Tf -34.2 -1.2 Td (descriptor)Tj 0.5 Tc 4.438 0 Td (.A)Tj 0.25 Tc 1.528 0 Td (sb)Tj 0 Tc 1.227 0 Td [(efor)18(e, we call)]TJ /TT0 1 Tf 6.053 0 Td (serv_accept)Tj /T1_1 1 Tf 6.85 0 Td (to accept the connection.)Tj -18.296 -1.2 Td [(For )-113(an )-113(existing )-113(client, )-113(we )-113(have )-113(to )-113(handle )-113(two )-113(dif)19(fer)18(ent )-113(events )-113(fr)18(om)]TJ /TT0 1 Tf 30.911 0 Td (poll)Tj /T1_1 1 Tf 0.3629 Tc (:ac)Tj 0 Tc 4.32 0 Td (lient)Tj -37.031 -1.2 Td [(termination )-230(is )-230(indicated )-230(by)]TJ /TT0 1 Tf 13.08 0 Td (POLLHUP)Tj /T1_1 1 Tf 0.48 Tc (,a)Tj 0 Tc 5.43 0 Td [(nd )-230(a )-230(new )-230(r)18(equest )-230(fr)18(om )-230(an )-230(existing )-230(client )-230(is)]TJ -18.51 -1.2 Td [(indicated )-83(by)]TJ /TT0 1 Tf 5.911 0 Td (POLLIN)Tj /T1_1 1 Tf 0.5834 Tc (.T)Tj 0 Tc 5.046 0 Td [(he )-83(client )-83(can )-83(close )-83(its )-83(end )-83(of )-83(the )-83(connection )-83(while )-83(ther)15(e)-333(is)-333(s)-1(till)]TJ -10.957 -1.2 Td [(data )-106(to )-106(be )-106(r)18(ead )-106(fr)18(om )-106(the )-106(server)-74(\325s )-106(end )-106(of )-106(the )-106(connection.)-606(Even )-106(though )-106(the )-106(endpoint )-106(is)]TJ 0 -1.2 TD [(marked )-102(as )-102(hung )-102(up, )-102(the )-102(server )-102(can )-102(r)18(ead )-102(all )-102(the )-102(data )-102(queued )-102(on )-102(its )-102(end.)-599(But )-102(with )-102(this)]TJ T* (server)Tj 0.2584 Tc 2.663 0 Td (,w)Tj 0 Tc 1.342 0 Td [(hen )-8(we )-8(r)18(eceive )-8(the )-8(hangup )-8(fr)18(om )-8(the )-8(client, )-8(we )-8(can)]TJ /TT0 1 Tf 22.493 0 Td (close)Tj /T1_1 1 Tf 3.258 0 Td [(the )-8(connection )-8(to )-8(the)]TJ -29.757 -1.2 Td [(client, )-119(ef)18(fectively )-119(thr)18(owing )-119(away )-119(any )-119(queued )-119(data.)-620(Ther)18(e)-369(is)-369(no)-369(r)18(eason )-119(to )-119(pr)18(ocess )-119(any)]TJ -0.018 Tc -0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quests still r)18(emaining, since we can\325t send any r)18(esponses back.)]TJ 0.944 -1.2 Td [(As )-7(with )-7(the)]TJ /TT0 1 Tf 5.394 0 Td (select)Tj /T1_1 1 Tf 3.858 0 Td [(version )-8(of )-8(this )-8(function, )-8(new )-8(r)18(equests )-8(fr)18(om )-8(a )-8(client )-8(ar)]TJ 0.2576 Tc 23.555 0 Td (eh)Tj 0 Tc 1.319 0 Td (andled)Tj -35.926 -1.2 Td [(by )-41(calling )-41(the)]TJ /TT0 1 Tf 6.326 0 Td (handle_request)Tj /T1_1 1 Tf 8.691 0 Td [(function )-41(\(Figur)]TJ 0.2915 Tc 6.714 0 Td (e1)Tj 0 Tc 1.271 0 Td [(7.31\). )-291(This)-292(function )-41(is )-41(similar )-41(to )-41(the)]TJ -23.002 -1.2 Td [(earlier )-67(version )-67(\(Figur)]TJ 0.3171 Tc 9.462 0 Td (e1)Tj 0 Tc 1.296 0 Td [(7.22\). )-317(It)-317(calls )-67(the )-67(same )-67(function,)]TJ /TT0 1 Tf 14.729 0 Td (buf_args)Tj /T1_1 1 Tf 5.117 0 Td (\(Figur)Tj 0.3171 Tc 2.716 0 Td (e1)Tj 0 Tc 1.296 0 Td [(7.23\), )-67(that)]TJ -34.616 -1.2 Td (calls)Tj /TT0 1 Tf 2.343 0 Td (cli_args)Tj /T1_1 1 Tf 5.193 0 Td (\(Figur)Tj 0.3926 Tc 2.716 0 Td (e1)Tj 0 Tc 1.372 0 Td [(7.24\), )-143(but )-143(since )-143(it )-143(r)8(uns )-143(fr)18(om )-143(a )-143(daemon )-143(pr)21(ocess, )-142(it )-142(logs )-142(err)17(or)]TJ -11.623 -1.2 Td (messages instead of printing them on the standar)Tj 0.25 Tc 21.74 0 Td (de)Tj 0 Tc 1.34 0 Td [(rr)18(or)74(.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3060.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 296.4446 Tm [(#include )-1800("opend.h")]TJ 0 -1.189 TD [(#include )-1800()]TJ 0 -2.14 TD (void)Tj 0 -1.189 TD (handle_request\(char *buf, int nread, int clifd, uid_t uid\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(newfd;)]TJ 0 -2.14 TD (if \(buf[nread-1] != 0\) {)Tj 2.4 -1.189 Td (snprintf\(errmsg, MAXLINE-1,)Tj 1.2 -1.189 Td ("request from uid %d not null terminated: %*.*s\\n",)Tj 0 -1.189 TD (uid, nread, nread, buf\);)Tj -1.2 -1.189 Td (send_err\(clifd, -1, errmsg\);)Tj T* (return;)Tj -2.4 -1.189 Td (})Tj T* (log_msg\("request: %s, from uid %d", buf, uid\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47499 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.6)]TJ 36.901 0 Td [(Socket )-250(Options)]TJ /T1_1 1 Tf 8.932 0 Td (625)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (The)Tj /T1_2 1 Tf 2.061 0 Td (lenp)Tj /T1_0 1 Tf 2.11 0 Td [(ar)18(gument )-137(is )-137(a )-137(pointer )-137(to )-137(an )-137(integer)]TJ 0.6368 Tc 16.05 0 Td (.B)Tj 0 Tc 1.498 0 Td (efor)Tj 0.3868 Tc 1.735 0 Td (ec)Tj 0 Tc 1.31 0 Td (alling)Tj /TT0 1 Tf 2.898 0 Td (getsockopt)Tj /T1_0 1 Tf [(,)-387(we)-387(set )-137(the)]TJ -27.661 -1.2 Td [(integer )-23(to )-23(the )-23(size )-23(of )-23(the )-23(buf)16(fer )-23(wher)]TJ 0.2733 Tc 16.191 0 Td (et)Tj 0 Tc 1.078 0 Td [(he )-23(option )-23(is )-23(to )-23(be )-23(copied.)-523(If )-23(the )-23(actual )-23(size )-23(of )-23(the)]TJ -17.269 -1.2 Td [(option )-66(is )-66(gr)19(eater )-66(than )-66(this )-66(size, )-66(the )-66(option )-66(is )-66(silently )-66(tr)10(uncated. )-316(If)-315(the )-66(actual )-66(size )-66(of )-66(the)]TJ 0 -1.2 Td [(option is less than this size, then the integer is updated with the actu\ al size on r)18(eturn.)]TJ /TT1 1 Tf -3.6 -2.88 Td (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(The )-117(function )-117(in )-117(Figur)]TJ 0.3671 Tc 9.738 0 Td (e1)Tj 0 Tc 1.346 0 Td [(6.12 )-117(fails )-117(to )-117(operate )-117(pr)18(operly )-117(when )-117(the )-117(server )-117(terminates )-117(and)]TJ -11.084 -1.2 Td [(we )-80(try )-80(to )-80(r)18(estart )-80(it )-80(immediately)]TJ 0.5798 Tc 14.034 0 Td (.N)Tj 0 Tc 1.661 0 Td (ormally)Tj 0.3298 Tc 3.351 0 Td (,t)Tj 0 Tc 0.906 0 Td [(he )-80(implementation )-80(of )-80(TCP )-80(will )-80(pr)18(event )-80(us)]TJ -19.952 -1.2 Td [(fr)18(om )-38(binding )-38(the )-38(same )-38(addr)18(ess )-38(until )-38(a )-38(timeout )-38(expir)18(es, )-38(which )-38(is )-38(usually )-38(on )-38(the )-38(or)18(der )-38(of)]TJ 0 -1.2 TD [(several )-165(minutes.)-665(Luckily)]TJ 0.4152 Tc 11.292 0 Td (,t)Tj 0 Tc 0.991 0 Td (he)Tj /TT0 1 Tf 1.476 0 Td (SO_REUSEADDR)Tj /T1_0 1 Tf 7.615 0 Td [(socket )-165(option )-165(allows )-165(us )-165(to )-165(bypass )-165(this)]TJ -0.018 Tc -21.375 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (striction, as illustrated in Figur)Tj 0.25 Tc 13.592 0 Td (e1)Tj 0 Tc 1.229 0 Td (6.22.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5250.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 515.4371 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (initserver\(int type, const struct sockaddr *addr, socklen_t alen,)Tj 1.2 -1.189 Td (int qlen\))Tj -1.2 -1.189 Td ({)Tj 2.4 -1.189 Td (int fd, err;)Tj 0 -1.189 TD (int reuse = 1;)Tj 0 -2.14 TD (if \(\(fd = socket\(addr->sa_family, type, 0\)\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td (if \(setsockopt\(fd, SOL_SOCKET, SO_REUSEADDR, &reuse,)Tj 1.2 -1.189 Td (sizeof\(int\)\) < 0\))Tj 1.2 -1.189 Td (goto errout;)Tj -2.4 -1.189 Td (if \(bind\(fd, addr, alen\) < 0\))Tj 2.4 -1.189 Td (goto errout;)Tj -2.4 -1.189 Td (if \(type == SOCK_STREAM || type == SOCK_SEQPACKET\))Tj 2.4 -1.189 Td (if \(listen\(fd, qlen\) < 0\))Tj 2.4 -1.189 Td (goto errout;)Tj -4.8 -1.189 Td (return\(fd\);)Tj -2.4 -2.14 Td (errout:)Tj 2.4 -1.189 Td (err = errno;)Tj 0 -1.189 TD (close\(fd\);)Tj T* (errno = err;)Tj T* (return\(-1\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2175.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 184.2748 201.4817 Tm (Figure 16.22)Tj /T1_0 1 Tf 6.195 0 Td [(Initialize a socket endpoint for use by a server with addr)18(ess r)18(euse)]TJ -0.092 Tc 9.9982 0 0 9.9982 129.5769 177.486 Tm [(To )-210(e)]TJ 0 Tc 1.822 0 Td [(nable )-26(the)]TJ /TT0 1 Tf 4.344 0 Td (SO_REUSEADDR)Tj /T1_0 1 Tf 7.476 0 Td [(option, )-26(we )-26(set )-26(an )-26(integer )-26(to )-26(a )-26(nonzer)]TJ 0.2758 Tc 16.243 0 Td (ov)Tj 0 Tc 1.387 0 Td [(alue )-26(and )-26(pass )-26(the)]TJ -31.271 -1.2 Td [(addr)18(ess )-56(of )-56(the )-56(integer )-56(as )-56(the)]TJ /T1_2 1 Tf 12.945 0 Td (val)Tj /T1_0 1 Tf 1.528 0 Td [(ar)18(gument )-56(to)]TJ /TT0 1 Tf 5.789 0 Td (setsockopt)Tj /T1_0 1 Tf 0.5557 Tc (.W)Tj 0.3057 Tc 7.714 0 Td (es)Tj 0 Tc 1.209 0 Td [(et )-56(the)]TJ /T1_2 1 Tf 2.803 0 Td (len)Tj /T1_0 1 Tf 1.529 0 Td [(ar)18(gument )-56(to)]TJ -33.516 -1.2 Td (the size of an integer to indicate the size of the object to which)Tj /T1_2 1 Tf 27.58 0 Td (val)Tj /T1_0 1 Tf 1.472 0 Td (points.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1535.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47500 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (650)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm [(msg.msg_name )-1800(=)-600(NULL;)]TJ 0 -1.189 TD (msg.msg_namelen = 0;)Tj T* (msg.msg_flags = 0;)Tj T* (if \(fd_to_send < 0\) {)Tj 2.4 -1.189 Td [(msg.msg_control )-1800(=)-600(NULL;)]TJ 0 -1.189 TD (msg.msg_controllen = 0;)Tj 0 -1.189 TD [(buf[1] = -fd_to_send;)-1800(/* nonzero status means error */)]TJ T* (if \(buf[1] == 0\))Tj 2.4 -1.189 Td (buf[1] = 1; /* -256, etc. would screw up protocol */)Tj 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (if \(cmptr == NULL && \(cmptr = malloc\(CONTROLLEN\)\) == NULL\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td [(msg.msg_control )-1800(=)-600(cmptr;)]TJ T* (msg.msg_controllen = CONTROLLEN;)Tj 0 -1.189 TD (cmp = cmptr;)Tj 0 -1.189 TD [(cmp->cmsg_level )-600(=)-600(SOL_SOCKET;)]TJ T* [(cmp->cmsg_type )-1200(=)-600(SCM_RIGHTS;)]TJ T* [(cmp->cmsg_len )-1800(=)-600(RIGHTSLEN;)]TJ T* [(*\(int *\)CMSG_DATA\(cmp\) = fd_to_send;)-2400(/* the fd to pass */)]TJ T* (cmp = CMSG_NXTHDR\(&msg, cmp\);)Tj T* [(cmp->cmsg_level )-600(=)-600(SOL_SOCKET;)]TJ T* [(cmp->cmsg_type )-1200(=)-600(SCM_CREDTYPE;)]TJ T* [(cmp->cmsg_len )-1800(=)-600(CREDSLEN;)]TJ 0 -1.189 TD (credp = \(struct CREDSTRUCT *\)CMSG_DATA\(cmp\);)Tj -4.8 -1.189 Td (#if defined\(SCM_CREDENTIALS\))Tj 4.8 -1.189 Td (credp->uid = geteuid\(\);)Tj 0 -1.189 TD (credp->gid = getegid\(\);)Tj T* (credp->pid = getpid\(\);)Tj -4.8 -1.189 Td (#endif)Tj 4.8 -1.189 Td [(buf[1] = 0;)-3000(/* zero status means OK */)]TJ -2.4 -1.189 Td (})Tj T* (buf[0] = 0;)Tj 12 0 Td (/* null byte flag to recv_ufd\(\) */)Tj -12 -1.189 Td (if \(sendmsg\(fd, &msg, 0\) != 2\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td (return\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2910.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 216.234 274.966 Tm (Figure 17.15)Tj /T1_1 1 Tf 6.195 0 Td [(Sending cr)18(edentials over UNIX domain sockets)]TJ 9.9988 0 0 9.9988 129.5846 254.5684 Tm [(Note that we need to initialize the cr)18(edentials str)8(uctur)]TJ 0.25 Tc 23.775 0 Td (eo)Tj 0 Tc 1.275 0 Td (nly on Linux.)Tj -23.25 -1.2 Td [(The )-110(function )-110(in )-110(Figur)]TJ 0.3596 Tc 9.716 0 Td (e1)Tj 0 Tc 1.339 0 Td [(7.16 )-110(is )-110(a )-110(modi\336ed )-110(version )-110(of)]TJ /TT0 1 Tf 13.31 0 Td (recv_fd)Tj /T1_1 1 Tf 0.3597 Tc (,c)Tj 0 Tc 5.254 0 Td (alled)Tj /TT0 1 Tf 2.532 0 Td (recv_ufd)Tj /T1_1 1 Tf (,)Tj -33.95 -1.2 Td [(that r)18(eturns the user ID of the sender thr)18(ough a r)18(efer)18(ence parameter)74(.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2234.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 213.8595 Tm (#include "apue.h")Tj T* [(#include )-3000(/* struct msghdr */)]TJ T* (#include )Tj 0 -1.783 TD (#if defined\(SCM_CREDS\))Tj 19.2 0 Td (/* BSD interface */)Tj -19.2 -1.189 Td [(#define CREDSTRUCT)-3600(cmsgcred)]TJ 0 -1.189 TD (#define CR_UID)Tj 14.4 0 Td (cmcred_uid)Tj -14.4 -1.189 Td [(#define SCM_CREDTYPE)-2400(SCM_CREDS)]TJ T* [(#elif defined\(SCM_CREDENTIALS\))-1200(/* Linux interface */)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47501 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (646)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (/* size of control buffer to send/recv one file descriptor */)Tj 0 -1.189 TD [(#define CONTROLLEN)-1200(CMSG_LEN\(sizeof\(int\)\))]TJ 0 -2.021 TD [(static struct cmsghdr)-1800(*cmptr = NULL;)-1200(/* malloc\325ed first time */)]TJ T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (ass a file descriptor to another process.)Tj -1.8 -1.189 Td [(*)-600(If)-600(fd<0, then -fd is sent back instead as the error status.)]TJ 0 -1.189 TD (*/)Tj -0.6 -1.189 Td (int)Tj T* (send_fd\(int fd, int fd_to_send\))Tj T* ({)Tj 2.4 -1.189 Td [(struct iovec)-2400(iov[1];)]TJ T* [(struct msghdr)-1800(msg;)]TJ T* (char )Tj 9.6 0 Td [(buf[2];)-600(/* send_fd\(\)/recv_fd\(\) 2-byte protocol */)]TJ -9.6 -2.021 Td (iov[0].iov_base = buf;)Tj T* [(iov[0].iov_len )-600(=)-600(2;)]TJ T* [(msg.msg_iov )-2400(=)-600(iov;)]TJ 0 -1.189 TD [(msg.msg_iovlen )-600(=)-600(1;)]TJ 0 -1.189 TD [(msg.msg_name )-1800(=)-600(NULL;)]TJ T* (msg.msg_namelen = 0;)Tj 0 -2.021 TD (if \(fd_to_send < 0\) {)Tj 2.4 -1.189 Td [(msg.msg_control )-1800(=)-600(NULL;)]TJ 0 -1.189 TD (msg.msg_controllen = 0;)Tj 0 -1.189 TD [(buf[1] = -fd_to_send;)-1800(/* nonzero status means error */)]TJ 0 -1.189 TD (if \(buf[1] == 0\))Tj 2.4 -1.189 Td (buf[1] = 1; /* -256, etc. would screw up protocol */)Tj 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (if \(cmptr == NULL && \(cmptr = malloc\(CONTROLLEN\)\) == NULL\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td [(cmptr->cmsg_level )-600(=)-600(SOL_SOCKET;)]TJ 0 -1.189 TD [(cmptr->cmsg_type )-1200(=)-600(SCM_RIGHTS;)]TJ 0 -1.189 TD [(cmptr->cmsg_len )-1800(=)-600(CONTROLLEN;)]TJ 0 -1.189 TD [(msg.msg_control )-1800(=)-600(cmptr;)]TJ 0 -1.189 TD (msg.msg_controllen = CONTROLLEN;)Tj 0 -1.189 TD [(*\(int *\)CMSG_DATA\(cmptr\) = fd_to_send;)-3600(/* the fd to pass */)]TJ 0 -1.189 TD [(buf[1] = 0;)-3000(/* zero status means OK */)]TJ -2.4 -1.189 Td (})Tj 0 -2.021 TD (buf[0] = 0;)Tj 12 0 Td (/* null byte flag to recv_fd\(\) */)Tj -12 -1.189 Td (if \(sendmsg\(fd, &msg, 0\) != 2\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td (return\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1603.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 206.5992 144.3407 Tm (Figure 17.13)Tj /T1_1 1 Tf 6.195 0 Td (Sending a \336le descriptor over a UNIX domain socket)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47502 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (624)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(We )-184(c)]TJ 0 Tc 2.081 0 Td (an set a socket option with the)Tj /TT0 1 Tf 13.648 0 Td (setsockopt)Tj /T1_1 1 Tf 6.25 0 Td (function.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5913 652.2609 Tm (#include )Tj 0 -1.902 TD (int setsockopt\(int)Tj /T1_2 1 Tf 11.4 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.262 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (level)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.634 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (option)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.355 0 Td (onst void *)Tj /T1_2 1 Tf (val)Tj /TT0 1 Tf (,)Tj -18.251 -1.189 Td (socklen_t)Tj /T1_2 1 Tf 6 0 Td (len)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 11.851 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6028.25 cm 0 0 m 0 585 l 3900 585 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 589.2893 Tm (The)Tj /T1_2 1 Tf 1.961 0 Td (level)Tj /T1_1 1 Tf 2.121 0 Td [(ar)18(gument )-37(identi\336es )-37(the )-37(pr)18(otocol )-37(to )-37(which )-37(the )-37(option )-37(applies.)-537(If )-37(the )-37(option )-37(is )-37(a)]TJ -4.081 -1.2 Td [(generic )-119(socket-level )-119(option, )-119(then)]TJ /T1_2 1 Tf 15.028 0 Td (level)Tj /T1_1 1 Tf 2.204 0 Td [(is )-119(set )-119(to)]TJ /TT0 1 Tf 3.924 0 Td (SOL_SOCKET)Tj /T1_1 1 Tf 0.6196 Tc (.O)Tj 0 Tc 7.656 0 Td (therwise,)Tj /T1_2 1 Tf 4.43 0 Td (level)Tj /T1_1 1 Tf 2.204 0 Td [(is )-120(set )-120(to)]TJ -35.445 -1.2 Td [(the )-133(number )-133(of )-133(the )-133(pr)18(otocol )-133(that )-133(contr)18(ols )-133(the )-133(option.)-633(Examples )-133(ar)22(e)]TJ /TT0 1 Tf 30.743 0 Td (IPPROTO_TCP)Tj /T1_1 1 Tf 6.982 0 Td (for)Tj -37.726 -1.2 Td [(TCP )-198(options )-198(and)]TJ /TT0 1 Tf 8.279 0 Td (IPPROTO_IP)Tj /T1_1 1 Tf 6.448 0 Td [(for )-198(IP )-198(options.)-698(Figur)]TJ 0.4479 Tc 9.758 0 Td (e1)Tj 0 Tc 1.427 0 Td [(6.21 )-198(summarizes )-198(the )-198(generic)]TJ -25.911 -1.2 Td (socket-level options de\336ned by the Single UNIX Speci\336cation.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1321.25 5201.25 cm 0 0 m 3849 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 154.7801 512.0678 Tm [(Option )-3584(T)90(ype of)]TJ /T1_2 1 Tf 10.504 0 Td (val)Tj /T1_1 1 Tf 1.472 0 Td [(ar)18(gument )]TJ 16.729 0 Td (Description)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1321.25 5081.25 cm 0 0 m 3849 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1321.25 5061.25 cm 0 0 m 3849 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 136.1033 498.0405 Tm [(SO_ACCEPTCONN )-900(int)]TJ /T1_1 1 Tf 20.116 0 Td (Return whether a socket is enabled for listening)Tj 1.35 -1.25 Td (\()Tj /TT0 1 Tf (getsockopt)Tj /T1_1 1 Tf 6.583 0 Td (only\).)Tj /TT0 1 Tf -28.049 -1.25 Td [(SO_BROADCAST )-1500(int)]TJ /T1_1 1 Tf 20.116 0 Td [(Br)18(oadcast datagrams if)]TJ /TT0 1 Tf 10.408 0 Td (*val)Tj /T1_1 1 Tf 2.65 0 Td [(is nonzer)18(o.)]TJ /TT0 1 Tf -33.174 -1.25 Td [(SO_DEBUG )-3900(int)]TJ /T1_1 1 Tf 20.116 0 Td (Debugging in network drivers enabled if)Tj /TT0 1 Tf 18.32 0 Td (*val)Tj /T1_1 1 Tf 2.65 0 Td [(is nonzer)18(o.)]TJ /TT0 1 Tf -41.086 -1.25 Td [(SO_DONTROUTE )-1500(int)]TJ /T1_1 1 Tf 20.116 0 Td [(Bypass normal r)18(outing if)]TJ /TT0 1 Tf 11.218 0 Td (*val)Tj /T1_1 1 Tf 2.65 0 Td [(is nonzer)18(o.)]TJ /TT0 1 Tf -33.984 -1.25 Td [(SO_ERROR )-3900(int)]TJ /T1_1 1 Tf 20.116 0 Td [(Return and clear pending socket err)18(or \()]TJ /TT0 1 Tf (getsockopt)Tj /T1_1 1 Tf 23.607 0 Td (only\).)Tj /TT0 1 Tf -43.723 -1.25 Td [(SO_KEEPALIVE )-1500(int)]TJ /T1_1 1 Tf 20.116 0 Td (Periodic keep-alive messages enabled if)Tj /TT0 1 Tf 17.773 0 Td (*val)Tj /T1_1 1 Tf 2.65 0 Td [(is nonzer)18(o.)]TJ /TT0 1 Tf -40.539 -1.25 Td [(SO_LINGER )-3300(struct)-600(linger)]TJ /T1_1 1 Tf 20.116 0 Td (Delay time when unsent messages exist and socket is closed.)Tj /TT0 1 Tf -20.116 -1.25 Td [(SO_OOBINLINE )-1500(int)]TJ /T1_1 1 Tf 20.116 0 Td (Out-of-band data placed inline with normal data if)Tj /TT0 1 Tf 22.676 0 Td (*val)Tj /T1_1 1 Tf 2.65 0 Td (is)Tj -23.976 -1.25 Td [(nonzer)18(o.)]TJ /TT0 1 Tf -21.466 -1.25 Td [(SO_RCVBUF )-3300(int)]TJ /T1_1 1 Tf 20.116 0 Td [(The size in bytes of the r)18(eceive buf)18(fer)74(.)]TJ /TT0 1 Tf -20.116 -1.25 Td [(SO_RCVLOWAT )-2100(int)]TJ /T1_1 1 Tf 20.116 0 Td [(The minimum amount of data in bytes to r)18(eturn on a r)18(eceive)]TJ 1.35 -1.25 Td (call.)Tj /TT0 1 Tf -21.466 -1.25 Td [(SO_RCVTIMEO )-2100(struct)-600(timeval)]TJ /T1_1 1 Tf 20.116 0 Td [(The timeout value for a socket r)18(eceive call.)]TJ /TT0 1 Tf -20.116 -1.25 Td [(SO_REUSEADDR )-1500(int)]TJ /T1_1 1 Tf 20.116 0 Td [(Reuse addr)18(esses in)]TJ /TT0 1 Tf 8.605 0 Td (bind)Tj /T1_1 1 Tf 2.65 0 Td (if)Tj /TT0 1 Tf 0.874 0 Td (*val)Tj /T1_1 1 Tf 2.65 0 Td [(is nonzer)18(o.)]TJ /TT0 1 Tf -34.895 -1.25 Td [(SO_SNDBUF )-3300(int)]TJ /T1_1 1 Tf 20.116 0 Td [(The size in bytes of the send buf)18(fer)74(.)]TJ /TT0 1 Tf -20.116 -1.25 Td [(SO_SNDLOWAT )-2100(int)]TJ /T1_1 1 Tf 20.116 0 Td (The minimum amount of data in bytes to transmit in a send)Tj 1.35 -1.25 Td (call.)Tj /TT0 1 Tf -21.466 -1.25 Td [(SO_SNDTIMEO )-2100(struct)-600(timeval)]TJ /T1_1 1 Tf 20.116 0 Td (The timeout value for a socket send call.)Tj /TT0 1 Tf -20.116 -1.25 Td [(SO_TYPE )-4500(int)]TJ /T1_1 1 Tf 20.116 0 Td (Identify the socket type \()Tj /TT0 1 Tf (getsockopt)Tj /T1_1 1 Tf 17.222 0 Td (only\).)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1321.25 3041.25 cm 0 0 m 3849 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2910.25 3041.25 cm 0 0 m 0 2160 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2045.25 3041.25 cm 0 0 m 0 2160 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5170.25 3041.25 cm 0 0 m 0 2160 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1321.25 3041.25 cm 0 0 m 0 2160 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 273.9698 286.0742 Tm (Figure 16.21)Tj /T1_1 1 Tf 6.195 0 Td (Socket options)Tj 9.997 0 0 9.997 147.5559 259.6821 Tm (The)Tj /T1_2 1 Tf 1.974 0 Td (val)Tj /T1_1 1 Tf 1.521 0 Td [(ar)18(gument )-50(points )-50(to )-50(a )-50(data )-50(str)10(uctur)18(e)-300(or)-300(an)-300(i)1(nteger)]TJ 0.2996 Tc 21.808 0 Td (,d)Tj 0 Tc 1.161 0 Td [(epending )-50(on )-50(the )-50(option.)]TJ -28.263 -1.2 Td [(Some )-51(options )-51(ar)]TJ 0.301 Tc 7.228 0 Td (eo)Tj 0 Tc 1.326 0 Td (n/of)Tj 0.301 Tc 2.049 0 Td (fs)Tj 0 Tc 1.058 0 Td [(witches. )-301(If)-301(the )-51(integer )-51(is )-51(nonzer)18(o, )-51(then )-51(the )-51(option )-51(is )-51(enabled.)]TJ -11.661 -1.2 Td [(If )-52(the )-52(integer )-52(is )-52(zer)18(o, )-52(then )-52(the )-52(option )-52(is )-52(disabled.)-553(The)]TJ /T1_2 1 Tf 24.253 0 Td (len)Tj /T1_1 1 Tf 1.525 0 Td [(ar)18(gument )-52(speci\336es )-52(the )-52(size )-52(of)]TJ -25.778 -1.2 Td (the object to which)Tj /T1_2 1 Tf 8.574 0 Td (val)Tj /T1_1 1 Tf 1.472 0 Td (points.)Tj -0.092 Tc -8.246 -1.2 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td [(an \336nd out the curr)18(ent value of an option with the)]TJ /TT0 1 Tf 22.409 0 Td (getsockopt)Tj /T1_1 1 Tf 6.25 0 Td (function.)Tj /TT0 1 Tf 8.9973 0 0 8.9973 147.5567 195.0015 Tm (#include )Tj 0 -1.902 TD (int getsockopt\(int)Tj /T1_2 1 Tf 11.4 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.262 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (level)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.634 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (option)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.355 0 Td (oid *restrict)Tj /T1_2 1 Tf 8.4 0 Td (val)Tj /TT0 1 Tf (,)Tj -26.651 -1.189 Td (socklen_t *restrict)Tj /T1_2 1 Tf 12 0 Td (lenp)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 5.851 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1456.25 cm 0 0 m 0 584 l 3900 584 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47503 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (799)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (The next \336le is the)Tj /TT0 1 Tf 8.304 0 Td (print.h)Tj /T1_0 1 Tf 4.45 0 Td [(header)74(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6570.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 1.8 Tc 8.9989 0 0 8.9989 134.9838 647.4213 Tm (1#)Tj 0 Tc 3 0 Td (ifndef _PRINT_H)Tj 1.8 Tc -3 -1.189 Td (2#)Tj 0 Tc 3 0 Td (define _PRINT_H)Tj 1.8 Tc -3 -2.021 Td (3/)Tj 0 Tc 3 0 Td (*)Tj 2.4 Tc -3 -1.189 Td (4*)Tj 0 Tc 4.2 0 Td (Print server header file.)Tj 2.4 Tc -4.2 -1.189 Td (5*)Tj 0 Tc 3.6 0 Td (/)Tj 1.8 Tc -3.6 -1.189 Td (6#)Tj 0 Tc 3 0 Td (include )Tj 1.8 Tc -3 -1.189 Td (7#)Tj 0 Tc 3 0 Td (include )Tj 1.8 Tc -3 -1.189 Td (8#)Tj 0 Tc 3 0 Td (include )Tj 1.8 Tc -3 -1.189 Td (9#)Tj 0 Tc 3 0 Td (include )Tj -3.6 -2.021 Td [(10 )-1200(#define)-600(CONFIG_FILE )-1800("/etc/printer.conf")]TJ 0 -1.189 TD [(11 )-1200(#define)-600(SPOOLDIR )-3600("/var/spool/printer")]TJ T* [(12 )-1200(#define)-600(JOBFILE )-4200("jobno")]TJ T* [(13 )-1200(#define)-600(DATADIR )-4200("data")]TJ T* [(14 )-1200(#define)-600(REQDIR )-4800("reqs")]TJ 0 -2.021 TD [(15 )-1200(#if)-600(defined\(BSD\))]TJ 0 -1.189 TD [(16 )-1200(#define)-600(LPNAME )-4800("daemon")]TJ T* [(17 )-1200(#elif)-600(defined\(MACOS\))]TJ T* [(18 )-1200(#define)-600(LPNAME )-4800("_lp")]TJ T* [(19 )-1200(#else)]TJ T* [(20 )-1200(#define)-600(LPNAME )-4800("lp")]TJ T* [(21 )-1200(#endif)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4062.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 382.1592 Tm [([1 )167(\320 )167(9])]TJ -0.092 Tc 4 0 Td [(We )-321(i)]TJ 0 Tc 2.065 0 Td [(nclude )-137(all )-137(header )-137(\336les )-137(that )-137(an )-137(application )-137(might )-137(need )-137(if )-137(it )-137(included )-137(this)]TJ -2.065 -1.2 Td (header)Tj 0.8148 Tc 2.972 0 Td (.T)Tj 0 Tc 1.678 0 Td [(his )-315(makes )-315(it )-315(easy )-315(for )-315(applications )-315(to )-315(include)]TJ /TT0 1 Tf 22.077 0 Td (print.h)Tj /T1_0 1 Tf 4.765 0 Td (without)Tj -31.492 -1.2 Td (having to track down all the header dependencies.)Tj -4 -1.72 Td [([10 )167(\320 )167(14])]TJ -0.092 Tc 4 0 Td [(We )-278(d)]TJ 0 Tc 2.342 0 Td [(e\336ne )-94(the )-94(\336les )-94(and )-94(dir)18(ectories )-94(for )-94(the )-94(implementation.)-594(The )-94(con\336guration)]TJ -2.342 -1.2 Td [(\336le )-381(containing )-381(the )-381(host )-381(names )-381(of )-381(the )-381(printer )-381(spooling )-381(daemon )-381(and )-381(the)]TJ 0 -1.2 TD [(network-attached )-159(printer )-159(is)]TJ /TT0 1 Tf 12.829 0 Td (/etc/printer.conf)Tj /T1_0 1 Tf 0.6587 Tc (.C)Tj 0 Tc 11.818 0 Td [(opies )-159(of )-159(the )-159(\336les )-159(to )-159(be)]TJ -24.646 -1.2 Td [(printed )-304(will )-304(be )-304(stor)18(ed )-304(in )-304(the )-304(dir)16(ectory)]TJ /TT0 1 Tf 18.953 0 Td (/var/spool/printer/data)Tj /T1_0 1 Tf 14.354 0 Td (and)Tj -33.307 -1.2 Td [(contr)18(ol )-580(information )-580(for )-580(each )-580(r)18(equest )-580(will )-580(be )-580(stor)18(ed )-580(in )-580(the )-580(dir)19(ectory)]TJ /TT0 1 Tf T* (/var/spool/printer/reqs)Tj /T1_0 1 Tf 0.7648 Tc (.T)Tj 0 Tc 15.428 0 Td [(he )-265(\336le )-265(containing )-265(the )-265(next )-265(job )-265(number )-265(is)]TJ /TT0 1 Tf -15.428 -1.2 Td (/var/spool/printer/jobno)Tj /T1_0 1 Tf (.)Tj 0 -1.8 TD [(The )-8(dir)18(ectories )-8(must )-8(be )-8(cr)18(eated )-8(by )-8(an )-8(administrator )-8(and )-8(be )-8(owned )-8(by )-8(the )-8(same)]TJ 0 -1.2 TD [(user )-209(account )-209(under )-209(which )-209(the )-209(printer )-209(spooling )-209(daemon )-209(r)11(uns. )-459(The)-458(daemon)]TJ T* [(won\325t )-172(try )-172(to )-172(cr)18(eate )-172(these )-172(dir)20(ectories )-172(if )-172(they )-172(don\325t )-172(exist, )-172(because )-172(the )-172(daemon)]TJ T* [(would )-145(need )-145(r)18(oot )-145(privileges )-145(to )-145(cr)18(eate )-145(dir)18(ectories )-145(in)]TJ /TT0 1 Tf 23.379 0 Td (/var/spool)Tj /T1_0 1 Tf 0.6454 Tc (.W)Tj 0.3954 Tc 7.803 0 Td (ed)Tj 0 Tc 1.485 0 Td (esign)Tj -32.668 -1.2 Td [(the )-127(daemon )-127(to )-127(do )-127(as )-127(little )-127(as )-127(possible )-127(while )-127(r)8(unning )-127(as )-127(r)14(oot )-127(to )-127(minimize )-127(the)]TJ T* [(chance of cr)18(eating a security hole.)]TJ -4 -1.72 Td [([15 )167(\320 )167(21])-668(Next, )-110(we )-110(de\336ne )-110(the )-110(account )-110(name )-110(under )-110(which )-110(the )-110(printer )-110(spooling )-110(daemon)]TJ 4 -1.2 Td [(will )-114(r)8(un. )-364(On)-364(Linux )-114(and )-114(Solaris, )-114(this )-114(name )-114(is)]TJ /TT0 1 Tf 20.721 0 Td (lp)Tj /T1_0 1 Tf 0.6138 Tc (.O)Tj 0.3638 Tc 2.85 0 Td (nM)Tj 0 Tc 1.892 0 Td [(ac )-114(OS )-114(X, )-114(the )-114(name )-114(is)]TJ /TT0 1 Tf -25.463 -1.2 Td (_lp)Tj /T1_0 1 Tf 0.7712 Tc (.F)Tj -0.018 Tc 3.377 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD, )-271(however)]TJ 0.5212 Tc 6.966 0 Td (,d)Tj 0 Tc 1.382 0 Td [(oesn\325t )-271(de\336ne )-271(a )-271(separate )-271(account )-271(for )-271(the )-271(printer)]TJ -12.582 -1.2 Td [(spooling daemon, so we use the account r)18(eserved for system daemons.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47504 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.2)]TJ 39.439 0 Td (Overview)Tj /T1_1 1 Tf 6.394 0 Td (675)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Figur)18(es )-11(18.3 )-11(thr)18(ough )-11(18.6\).)-511(The )-11(handling )-11(of )-11(terminal )-11(devices )-11(is )-11(complicated )-11(by )-11(the )-11(lar)20(ge)]TJ 0 -1.2 Td [(number )-357(of )-357(options )-357(available )-357(for )-357(terminal )-357(devices )-357(and )-357(the )-357(challenge )-357(of )-357(trying )-357(to)]TJ 0 -1.2 TD [(determine )-71(which )-71(options )-71(ar)]TJ 0.321 Tc 12.414 0 Td (er)Tj 0 Tc 1.177 0 Td [(equir)18(ed )-71(for )-71(a )-71(particular )-71(device )-71(\(be )-71(it )-71(a )-71(terminal, )-71(modem,)]TJ -13.591 -1.2 Td [(printer)74(,)-250(or)-250(whatever\).)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1403.25 6070.25 cm 0 0 m 3685 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 382.8421 598.9281 Tm [(Fr)18(eeBSD )-250(Linux )-250(Mac)-250(OS X)-500(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-1827(3.2.0)-1735(10.6.8 )-2170(10)]TJ -29.043 0.625 Td (Flag)Tj 10.698 0 Td (Description)Tj 11.9 0 Td (POSIX.1)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1403.25 5850.25 cm 0 0 m 3685 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1403.25 5830.25 cm 0 0 m 3685 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 144.334 574.8965 Tm (CBAUDEXT)Tj /T1_0 1 Tf 7.5 0 Td (extended baud rate)Tj 35.771 0 Td (\245)Tj /TT0 1 Tf -43.271 -1.25 Td (CCAR_OFLOW)Tj /T1_0 1 Tf 7.5 0 Td [(DCD \337ow contr)18(ol of output)]TJ 7.0815 Tc 23.913 0 Td (\245\245)Tj /TT0 1 Tf 0 Tc -31.413 -1.25 Td (CCTS_OFLOW)Tj /T1_0 1 Tf 7.5 0 Td [(CTS \337ow contr)18(ol of output)]TJ 7.0815 Tc 23.913 0 Td (\245\245)Tj 0 Tc 11.858 0 Td (\245)Tj /TT0 1 Tf -43.271 -1.25 Td (CDSR_OFLOW)Tj /T1_0 1 Tf 7.5 0 Td [(DSR \337ow contr)18(ol of output)]TJ 7.0815 Tc 23.913 0 Td (\245\245)Tj /TT0 1 Tf 0 Tc -31.414 -1.25 Td (CDTR_IFLOW)Tj /T1_0 1 Tf 7.5 0 Td [(DTR \337ow contr)18(ol of input)]TJ 7.0815 Tc 23.913 0 Td (\245\245)Tj /TT0 1 Tf 0 Tc -31.414 -1.25 Td (CIBAUDEXT)Tj /T1_0 1 Tf 7.5 0 Td (extended input baud rate)Tj 35.771 0 Td (\245)Tj /TT0 1 Tf -43.271 -1.25 Td (CIGNORE)Tj /T1_0 1 Tf 7.5 0 Td (ignor)Tj 0.25 Tc 2.352 0 Td (ec)Tj 0 Tc 1.173 0 Td [(ontr)18(ol \337ags)]TJ 7.0815 Tc 20.388 0 Td (\245\245)Tj /TT0 1 Tf 0 Tc -31.414 -1.25 Td (CLOCAL)Tj /T1_0 1 Tf 7.5 0 Td (ignor)Tj 0.25 Tc 2.352 0 Td (em)Tj 0 Tc 1.612 0 Td (odem status lines)Tj 4.629 Tc 14.714 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ /TT0 1 Tf 0 Tc -35.115 -1.25 Td (CMSPAR)Tj /T1_0 1 Tf 7.5 0 Td (mark or space parity)Tj 27.615 0 Td (\245)Tj /TT0 1 Tf -35.115 -1.25 Td (CREAD)Tj /T1_0 1 Tf 7.5 0 Td [(enable r)18(eceiver )]TJ 18.678 0 Td (\245)Tj 3.096 Tc 5.235 0 Td [(\245\245 )3063(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj /TT0 1 Tf -43.271 -1.25 Td (CRTSCTS)Tj /T1_0 1 Tf 7.5 0 Td [(enable har)18(dwar)]TJ 0.25 Tc 6.915 0 Td (e\337)Tj 0 Tc 1.337 0 Td [(ow contr)18(ol )]TJ 15.661 0 Td (\245)Tj 3.3795 Tc 3.703 0 Td [(\245\245 )3445(\245)]TJ /TT0 1 Tf 0 Tc -35.115 -1.25 Td (CRTS_IFLOW)Tj /T1_0 1 Tf -0.037 Tc 7.5 0 Td (RT)Tj 0.25 Tc 1.244 0 Td (S\337)Tj 0 Tc 1.383 0 Td [(ow contr)18(ol of input)]TJ 7.0815 Tc 21.286 0 Td (\245\245)Tj 0 Tc 11.858 0 Td (\245)Tj /TT0 1 Tf -43.271 -1.25 Td (CRTSXOFF)Tj /T1_0 1 Tf 7.5 0 Td [(enable input har)18(dwar)]TJ 0.25 Tc 9.568 0 Td (e\337)Tj 0 Tc 1.337 0 Td [(ow contr)18(ol )]TJ 24.866 0 Td (\245)Tj /TT0 1 Tf -43.271 -1.25 Td (CSIZE)Tj /T1_0 1 Tf 7.5 0 Td (character size mask)Tj 4.629 Tc 18.678 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ /TT0 1 Tf 0 Tc -35.115 -1.25 Td (CSTOPB)Tj /T1_0 1 Tf 7.5 0 Td (send two stop bits, else one)Tj 4.629 Tc 18.678 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ /TT0 1 Tf 0 Tc -35.115 -1.25 Td (HUPCL)Tj /T1_0 1 Tf 7.5 0 Td (hang up on last close)Tj 4.629 Tc 18.678 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ /TT0 1 Tf 0 Tc -35.115 -1.25 Td (MDMBUF)Tj /T1_0 1 Tf 7.5 0 Td (same as)Tj /TT0 1 Tf 3.71 0 Td (CCAR_OFLOW)Tj /T1_0 1 Tf 7.0815 Tc 20.203 0 Td (\245\245)Tj /TT0 1 Tf 0 Tc -31.413 -1.25 Td (PARENB)Tj /T1_0 1 Tf 7.5 0 Td (parity enable)Tj 4.629 Tc 18.678 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ /TT0 1 Tf 0 Tc -35.115 -1.25 Td (PAREXT)Tj /T1_0 1 Tf 7.5 0 Td (mark or space parity)Tj 35.771 0 Td (\245)Tj /TT0 1 Tf -43.271 -1.25 Td (PARODD)Tj /T1_0 1 Tf 7.5 0 Td (odd parity)Tj 0.25 Tc 4.576 0 Td (,e)Tj 0 Tc 0.979 0 Td (lse even)Tj 4.629 Tc 13.123 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1403.25 3810.25 cm 0 0 m 3685 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3769.25 3810.25 cm 0 0 m 0 2260 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3355.25 3810.25 cm 0 0 m 0 2260 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1983.25 3810.25 cm 0 0 m 0 2260 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5088.25 3810.25 cm 0 0 m 0 2260 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1403.25 3810.25 cm 0 0 m 0 2260 l S Q Q BT /T1_1 1 Tf 0 Tc 7.9981 0 0 7.9981 259.6177 362.9129 Tm (Figure 18.3)Tj /TT0 1 Tf 5.695 0 Td (c_cflag)Tj /T1_0 1 Tf 4.45 0 Td (terminal \337ags)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1423.25 3310.25 cm 0 0 m 3646 0 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 380.8457 322.9031 Tm [(Fr)18(eeBSD )-250(Linux )-250(Mac)-250(OS X)-500(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-1827(3.2.0)-1735(10.6.8 )-2170(10)]TJ -29.461 0.625 Td (Flag)Tj 10.457 0 Td (Description)Tj 12.559 0 Td (POSIX.1)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1423.25 3090.25 cm 0 0 m 3646 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1423.25 3070.25 cm 0 0 m 3646 0 l S Q Q BT /TT0 1 Tf 7.9971 0 0 7.9971 146.2353 298.8924 Tm (BRKINT)Tj /T1_0 1 Tf 5.7 0 Td (generate)Tj /TT0 1 Tf 4.046 0 Td (SIGINT)Tj /T1_0 1 Tf 3.85 0 Td (on BREAK)Tj 4.629 Tc 12.1 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ /TT0 1 Tf 0 Tc -34.634 -1.25 Td (ICRNL)Tj /T1_0 1 Tf 5.7 0 Td (map CR to NL on input)Tj 4.629 Tc 19.996 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ /TT0 1 Tf 0 Tc -34.634 -1.25 Td (IGNBRK)Tj /T1_0 1 Tf 5.7 0 Td (ignor)Tj 0.25 Tc 2.352 0 Td (eB)Tj 0 Tc 1.34 0 Td (REAK condition)Tj 4.629 Tc 16.304 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ /TT0 1 Tf 0 Tc -34.634 -1.25 Td (IGNCR)Tj /T1_0 1 Tf 5.7 0 Td (ignor)Tj 0.25 Tc 2.352 0 Td (eC)Tj 15.5385 Tc 1.438 0 Td (R\245)Tj 3.096 Tc 21.442 0 Td [(\245\245 )3063(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj /TT0 1 Tf -42.789 -1.25 Td (IGNPAR)Tj /T1_0 1 Tf 5.7 0 Td (ignor)Tj 0.25 Tc 2.352 0 Td (ec)Tj 0 Tc 1.173 0 Td [(haracters with parity err)18(ors )-4108(\245)]TJ 3.096 Tc 21.706 0 Td [(\245\245 )3063(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj /TT0 1 Tf -42.789 -1.25 Td (IMAXBEL)Tj /T1_0 1 Tf 5.7 0 Td (ring bell on input queue full)Tj 3.096 Tc 25.231 0 Td [(\245\245 )3063(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj /TT0 1 Tf -42.789 -1.25 Td (INLCR)Tj /T1_0 1 Tf 5.7 0 Td (map NL to CR on input)Tj 4.629 Tc 19.996 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ /TT0 1 Tf 0 Tc -34.634 -1.25 Td (INPCK)Tj /T1_0 1 Tf 5.7 0 Td (enable input parity checking)Tj 4.629 Tc 19.996 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ /TT0 1 Tf 0 Tc -34.634 -1.25 Td (ISTRIP)Tj /T1_0 1 Tf 5.7 0 Td (strip eighth bit of)Tj 0.25 Tc 7.634 0 Td (fi)Tj 0 Tc 0.874 0 Td (nput characters)Tj 4.629 Tc 11.488 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ /TT0 1 Tf 0 Tc -34.634 -1.25 Td (IUCLC)Tj /T1_0 1 Tf 5.7 0 Td [(map upper)18(case to lower)18(case on input)]TJ 7.5495 Tc 28.933 0 Td (\245\245)Tj /TT0 1 Tf 0 Tc -34.634 -1.25 Td (IUTF8)Tj /T1_0 1 Tf 5.7 0 Td (input is UTF)Tj 5.565 0.09 Td (-)Tj 22.5355 Tc 0.333 -0.09 Td (8\245)Tj 0 Tc 27.021 0 Td (\245)Tj /TT0 1 Tf -38.619 -1.25 Td (IXANY)Tj /T1_0 1 Tf 5.7 0 Td [(enable any characters to r)18(estart output)]TJ 4.629 Tc 19.996 0 Td (\245\245)Tj 3.3795 Tc 8.937 0 Td [(\245\245 )3445(\245)]TJ /TT0 1 Tf 0 Tc -34.634 -1.25 Td (IXOFF)Tj /T1_0 1 Tf 5.7 0 Td [(enable start/stop input \337ow contr)18(ol )-3885(\245)]TJ 3.096 Tc 25.232 0 Td [(\245\245 )3063(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj /TT0 1 Tf -42.789 -1.25 Td (IXON)Tj /T1_0 1 Tf 5.7 0 Td [(enable start/stop output \337ow contr)18(ol )-3283(\245)]TJ 3.096 Tc 25.232 0 Td [(\245\245 )3063(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj /TT0 1 Tf -42.789 -1.25 Td (PARMRK)Tj /T1_0 1 Tf 5.7 0 Td [(mark parity err)18(ors )]TJ 19.996 0 Td (\245)Tj 3.096 Tc 5.235 0 Td [(\245\245 )3063(\245)]TJ 0 Tc 11.858 0 Td (\245)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1423.25 1550.25 cm 0 0 m 3646 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3749.25 1550.25 cm 0 0 m 0 1760 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3336.25 1550.25 cm 0 0 m 0 1760 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1859.25 1550.25 cm 0 0 m 0 1760 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5069.25 1550.25 cm 0 0 m 0 1760 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1423.25 1550.25 cm 0 0 m 0 1760 l S Q Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 259.571 136.9425 Tm (Figure 18.4)Tj /TT0 1 Tf 5.695 0 Td (c_iflag)Tj /T1_0 1 Tf 4.45 0 Td (terminal \337ags)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47505 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.5)]TJ 37.602 0 Td [(Data )-250(T)90(ransfer)]TJ /T1_1 1 Tf 8.231 0 Td (613)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(If )-9(we )-9(ar)]TJ 0.2594 Tc 3.379 0 Td (ei)Tj 0 Tc 1.029 0 Td [(nter)18(ested )-9(in )-9(the )-9(identity )-9(of )-9(the )-9(sender)]TJ 0.2594 Tc 16.523 0 Td (,w)Tj 0.2595 Tc 1.343 0 Td (ec)Tj 0 Tc 1.183 0 Td [(an )-9(use)]TJ /TT0 1 Tf 3.107 0 Td (recvfrom)Tj /T1_0 1 Tf 5.059 0 Td [(to )-9(obtain )-9(the)]TJ -33.424 -1.2 Td [(sour)18(ce addr)18(ess fr)18(om which the data was sent.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5907 637.8617 Tm (#include )Tj 0 -2.14 TD (ssize_t recvfrom\(int)Tj /T1_2 1 Tf 12.6 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.262 0 Td (oid *restrict)Tj /T1_2 1 Tf 8.4 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (len)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.023 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ags)Tj /TT0 1 Tf (,)Tj -26.582 -1.189 Td (struct sockaddr *restrict)Tj /T1_2 1 Tf 15.6 0 Td (addr)Tj /TT0 1 Tf (,)Tj -15.6 -1.189 Td (socklen_t *restrict)Tj /T1_2 1 Tf 12 0 Td (addrlen)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 1.255 -2.14 Td (Returns: length of message in bytes,)Tj -15.335 -1.189 Td [(0)-250(if)-250(no)-250(messages ar)]TJ 0.25 Tc 8.298 0 Td (ea)Tj 0 Tc 1.229 0 Td [(vailable and peer has done an or)18(derly shutdown,)]TJ 15.626 -1.189 Td (or)Tj /TT1 1 Tf 1.191 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5521.25 cm 0 0 m 0 948 l 3900 948 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 536.1157 Tm (If)Tj /T1_2 1 Tf 0.924 0 Td (addr)Tj /T1_0 1 Tf 2.087 0 Td [(is )-4(non-null, )-4(it )-4(will )-4(contain )-4(the )-4(addr)18(ess )-4(of )-4(the )-4(socket )-4(endpoint )-4(fr)21(om )-4(which )-4(the )-4(data)]TJ -3.01 -1.2 Td [(was )-53(sent.)-553(When )-53(calling)]TJ /TT0 1 Tf 10.879 0 Td (recvfrom)Tj /T1_0 1 Tf [(,)-303(we)-303(need )-53(to )-53(set )-53(the)]TJ /T1_2 1 Tf 13.82 0 Td (addrlen)Tj /T1_0 1 Tf 3.359 0 Td [(parameter )-53(to )-53(point )-53(to )-53(an)]TJ -28.058 -1.2 Td [(integer )-23(containing )-23(the )-23(size )-23(in )-23(bytes )-23(of )-23(the )-23(socket )-23(buf)18(fer )-23(to )-23(which)]TJ /T1_2 1 Tf 28.699 0 Td (addr)Tj /T1_0 1 Tf 2.106 0 Td [(points. )-273(On)]TJ -0.018 Tc 5.184 0 Td (re)Tj 0 Tc 0.856 0 Td (turn,)Tj -36.844 -1.2 Td [(the integer is set to the actual size of the addr)18(ess in bytes.)]TJ 1.8 -1.2 Td [(Because )-155(it )-155(allows )-155(us )-155(to )-155(r)16(etrieve )-155(the )-155(addr)18(ess )-155(of )-155(the )-155(sender)72(,)]TJ /TT0 1 Tf 27.018 0 Td (recvfrom)Tj /T1_0 1 Tf 5.206 0 Td [(is )-155(typically)]TJ -34.024 -1.2 Td [(used with connectionless sockets.)-500(Otherwise,)]TJ /TT0 1 Tf 20.385 0 Td (recvfrom)Tj /T1_0 1 Tf 5.05 0 Td (behaves identically to)Tj /TT0 1 Tf 9.866 0 Td (recv)Tj /T1_0 1 Tf (.)Tj -0.092 Tc -33.501 -1.2 Td [(To )-241(r)]TJ 0 Tc 1.751 0 Td [(eceive )-57(data )-57(into )-57(multiple )-57(buf)18(fers, )-57(similar )-57(to)]TJ /TT0 1 Tf 19.63 0 Td (readv)Tj /T1_0 1 Tf 3.307 0 Td [(\(Section )-57(14.6\), )-57(or )-57(if )-57(we )-57(want)]TJ -26.487 -1.2 Td [(to r)18(eceive ancillary data \(Section 17.4\), we can use)]TJ /TT0 1 Tf 22.227 0 Td (recvmsg)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5822 433.028 Tm (#include )Tj T* (ssize_t recvmsg\(int)Tj /T1_2 1 Tf 12 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 4.262 0 Td (truct msghdr *)Tj /T1_2 1 Tf (msg)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 11.867 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ags)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -6.474 -2.14 Td (Returns: length of message in bytes,)Tj -15.335 -1.189 Td [(0)-250(if)-250(no)-250(messages ar)]TJ 0.25 Tc 8.298 0 Td (ea)Tj 0 Tc 1.229 0 Td [(vailable and peer has done an or)18(derly shutdown,)]TJ 15.626 -1.189 Td (or)Tj /TT1 1 Tf 1.191 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3686.25 cm 0 0 m 0 735 l 3900 735 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 352.6965 Tm (The)Tj /TT0 1 Tf 2.13 0 Td (msghdr)Tj /T1_0 1 Tf 4.056 0 Td [(str)8(uctur)]TJ 0.4557 Tc 3.49 0 Td (e\()Tj 0 Tc 1.268 0 Td [(which )-206(we )-206(saw )-206(used )-206(with)]TJ /TT0 1 Tf 12.233 0 Td (sendmsg)Tj /T1_0 1 Tf [(\))-456(is)-456(u)1(sed )-206(by)]TJ /TT0 1 Tf 10.297 0 Td (recvmsg)Tj /T1_0 1 Tf 4.656 0 Td (to)Tj -38.128 -1.2 Td [(specify )-18(the )-18(input )-18(buf)18(fers )-18(to )-18(be )-18(used )-18(to )-18(r)18(eceive )-18(the )-18(data.)]TJ -0.092 Tc 24.804 0 Td [(We )-203(c)]TJ 0 Tc 2.099 0 Td [(an )-18(set )-18(the)]TJ /T1_2 1 Tf 4.503 0 Td (\337ags)Tj /T1_0 1 Tf 2.146 0 Td [(ar)18(gument )-18(to)]TJ -33.554 -1.2 Td [(change )-285(the )-285(default )-285(behavior )-285(of)]TJ /TT0 1 Tf 15.137 0 Td (recvmsg)Tj /T1_0 1 Tf 0.7848 Tc (.O)Tj 0.5348 Tc 6.021 0 Td (nr)Tj 0 Tc 1.494 0 Td [(eturn, )-285(the)]TJ /TT0 1 Tf 5.092 0 Td (msg_flags)Tj /T1_0 1 Tf 5.935 0 Td [(\336eld )-285(of )-285(the)]TJ /TT0 1 Tf -33.678 -1.2 Td (msghdr)Tj /T1_0 1 Tf 4.022 0 Td [(str)8(uctur)18(e)-422(is)-422(s)-1(et )-172(to )-172(indicate )-172(various )-172(characteristics )-172(of )-172(the )-172(data )-172(r)16(eceived. )-422(\(The)]TJ /TT0 1 Tf -4.022 -1.2 Td (msg_flags)Tj /T1_0 1 Tf 5.701 0 Td [(\336eld )-51(is )-51(ignor)18(ed )-51(on )-51(entry )-51(to)]TJ /TT0 1 Tf 12.286 0 Td (recvmsg)Tj /T1_0 1 Tf [(.\) )-301(The)-301(possible )-51(values )-51(on )-51(r)18(eturn )-51(fr)18(om)]TJ /TT0 1 Tf -17.987 -1.2 Td (recvmsg)Tj /T1_0 1 Tf 4.523 0 Td (ar)Tj 0.3226 Tc 0.877 0 Td (es)Tj 0 Tc 1.226 0 Td [(ummarized )-73(in )-73(Figur)]TJ 0.3226 Tc 9.046 0 Td (e1)Tj 0 Tc 1.302 0 Td [(6.15. )-322(W)92(e\325ll )-72(see )-72(an )-72(example )-72(that )-72(uses)]TJ /TT0 1 Tf 16.632 0 Td (recvmsg)Tj /T1_0 1 Tf 4.522 0 Td (in)Tj -38.127 -1.2 Td (Chapter 17.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1308.25 2571.25 cm 0 0 m 3875 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 364.7644 249.1002 Tm [(Fr)18(eeBSD )-1416(Linux)-1382(Mac OS X)-1198(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-2993(3.2.0)-2618(10.6.8 )-2868(10)]TJ -27.379 0.625 Td (Flag)Tj 10.675 0 Td (Description)Tj 10.626 0 Td (POSIX.1)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1308.25 2351.25 cm 0 0 m 3875 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1308.25 2331.25 cm 0 0 m 3875 0 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 134.7996 225.0925 Tm (MSG_CTRUNC)Tj /T1_0 1 Tf 4.262 Tc 25.481 0 Td (\245\245\245\245\245)Tj 0 Tc -16.781 0 Td [(Contr)18(ol data was tr)8(uncated.)]TJ /TT0 1 Tf -8.7 -1.25 Td (MSG_EOR)Tj /T1_0 1 Tf 4.262 Tc 25.481 0 Td (\245\245\245\245\245)Tj 0 Tc -16.781 0 Td [(End of r)18(ecor)]TJ 0.25 Tc 5.406 0 Td (dw)Tj 0 Tc 1.695 0 Td [(as r)18(eceived.)]TJ /TT0 1 Tf -15.801 -1.25 Td (MSG_ERRQUEUE)Tj /T1_0 1 Tf 35.217 0 Td (\245)Tj -26.517 0 Td [(Err)18(or information was r)18(eceived)]TJ 1.35 -1.25 Td (as ancillary data.)Tj /TT0 1 Tf -10.05 -1.25 Td (MSG_OOB)Tj /T1_0 1 Tf 4.262 Tc 25.481 0 Td (\245\245\245\245\245)Tj 0 Tc -16.781 0 Td [(Out-of-band data was r)18(eceived.)]TJ /TT0 1 Tf -8.7 -1.25 Td (MSG_TRUNC)Tj /T1_0 1 Tf 4.262 Tc 25.481 0 Td (\245\245\245\245\245)Tj 0 Tc -16.781 0 Td [(Normal data was tr)8(uncated.)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1308.25 1711.25 cm 0 0 m 3875 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4774.25 1711.25 cm 0 0 m 0 860 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4384.25 1711.25 cm 0 0 m 0 860 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3995.25 1711.25 cm 0 0 m 0 860 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3596.25 1711.25 cm 0 0 m 0 860 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3616.25 1711.25 cm 0 0 m 0 860 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3216.25 1711.25 cm 0 0 m 0 860 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1984.25 1711.25 cm 0 0 m 0 860 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5183.25 1711.25 cm 0 0 m 0 860 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1308.25 1711.25 cm 0 0 m 0 860 l S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 223.6955 153.1049 Tm (Figure 16.15)Tj /T1_0 1 Tf 6.195 0 Td [(Flags r)18(eturned in)]TJ /TT0 1 Tf 7.802 0 Td (msg_flags)Tj /T1_0 1 Tf 5.65 0 Td (by)Tj /TT0 1 Tf 1.359 0 Td (recvmsg)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47506 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (594)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(byte )-281(would )-281(contain )-281(1, )-281(r)20(egar)18(dless )-280(of )-280(the )-280(byte )-280(or)16(dering. )-530(If)-531(we )-280(wer)]TJ 0.5305 Tc 31.364 0 Td (et)Tj 0 Tc 1.336 0 Td [(hen )-280(to )-280(cast )-280(a)]TJ -32.699 -1.2 Td [(character )-58(pointer )-58(\()]TJ /TT0 1 Tf (cp)Tj /T1_1 1 Tf [(\))-308(to)-308(the )-58(addr)18(ess )-58(of )-58(the )-58(integer)74(,)-308(we)-308(would )-58(see )-58(a )-58(dif)18(fer)18(ence )-58(fr)18(om )-58(the)]TJ 0 -1.2 TD [(byte )-105(or)18(dering. )-355(On)]TJ 0.3549 Tc 8.684 0 Td (al)Tj 0 Tc 1.146 0 Td [(ittle-endian )-105(pr)18(ocessor)74(,)]TJ /TT0 1 Tf 10.213 0 Td (cp[0])Tj /T1_1 1 Tf 3.355 0 Td [(would )-105(r)18(efer )-105(to )-105(the )-105(least )-105(signi\336cant)]TJ -23.397 -1.2 Td [(byte )-233(and )-233(contain )-233(1;)]TJ /TT0 1 Tf 9.558 0 Td (cp[3])Tj /T1_1 1 Tf 3.483 0 Td [(would )-233(r)18(efer )-233(to )-233(the )-233(most )-233(signi\336cant )-233(byte )-233(and )-233(contain )-233(4.)]TJ -13.041 -1.2 Td (Compar)Tj 0.2928 Tc 3.616 0 Td (et)Tj 0 Tc 1.098 0 Td [(hat )-43(to )-43(a )-43(big-endian )-43(pr)19(ocessor)]TJ 0.2928 Tc 12.891 0 Td (,w)Tj 0 Tc 1.377 0 Td [(her)18(e)]TJ /TT0 1 Tf 2.21 0 Td (cp[0])Tj /T1_1 1 Tf 3.293 0 Td [(would )-43(contain )-43(4, )-43(r)18(eferring )-43(to )-43(the)]TJ -24.484 -1.2 Td [(most )-21(signi\336cant )-21(byte, )-21(and)]TJ /TT0 1 Tf 11.722 0 Td (cp[3])Tj /T1_1 1 Tf 3.271 0 Td [(would )-21(contain )-21(1, )-21(r)17(eferring )-21(to )-21(the )-21(least )-21(signi\336cant )-21(byte.)]TJ -14.993 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td [(6.6 summarizes the byte or)18(dering for the four platforms discussed in this text.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2167.25 5758.25 cm 0 0 m 2157 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 220.7455 567.7319 Tm [(Operating system)-1500(Pr)18(ocessor ar)18(chitectur)]TJ 1.876 Tc 18.596 0 Td (eB)Tj 0 Tc 2.966 0 Td [(yte or)18(der)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2167.25 5638.25 cm 0 0 m 2157 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2167.25 5618.25 cm 0 0 m 2157 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 220.7323 553.7003 Tm [(Fr)18(eeBSD 8.0)-4057(Intel Pentium)]TJ 20.575 0 Td (little-endian)Tj -20.575 -1.25 Td [(Linux 3.2.0)-4505(Intel Cor)]TJ 0.25 Tc 13.255 0 Td (ei)Tj 5.8 Tc 1.02 0 Td (5l)Tj 0 Tc 6.591 0 Td (ittle-endian)Tj -20.866 -1.25 Td [(Mac OS X 10.6.8)-2240(Intel Cor)]TJ 0.25 Tc 13.255 0 Td (e2D)Tj 0 Tc 2.253 0 Td [(uo )-3668(little-endian)]TJ -15.508 -1.25 Td (Solaris 10)Tj 9.358 0 Td [(Sun SP)92(ARC )]TJ 11.217 0 Td (big-endian)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2167.25 5198.25 cm 0 0 m 2157 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3793.25 5198.25 cm 0 0 m 0 560 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2896.25 5198.25 cm 0 0 m 0 560 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4324.25 5198.25 cm 0 0 m 0 560 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2167.25 5198.25 cm 0 0 m 0 560 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 251.7276 501.6796 Tm (Figure 16.6)Tj /T1_1 1 Tf 5.695 0 Td [(Byte or)18(der for test platforms)]TJ -0.092 Tc -14.219 -3.1 Td [(To )-467(c)]TJ 0 Tc 2.044 0 Td [(onfuse )-283(matters )-283(further)]TJ 0.5333 Tc 10.406 0 Td (,s)Tj 0 Tc 1.207 0 Td [(ome )-283(pr)18(ocessors )-283(can )-283(be )-283(con\336gur)18(ed )-283(for )-283(either )-283(little-endian )-283(or)]TJ -13.657 -1.25 Td (big-endian operation.)Tj 9.9976 0 0 9.9976 147.5646 443.8934 Tm [(Network )-30(pr)18(otocols )-30(specify )-30(a )-30(byte )-30(or)18(dering )-30(so )-30(that )-30(heter)18(ogeneous )-30(computer )-30(systems)]TJ -1.8 -1.2 Td [(can )-123(exchange )-123(pr)18(otocol )-123(information )-123(without )-123(confusing )-123(the )-123(byte )-123(or)18(dering. )-373(The)-373(TCP/IP)]TJ -0 -1.2 Td [(pr)18(otocol )-363(suite )-363(uses )-363(big-endian )-363(byte )-363(or)17(der)]TJ 0.8632 Tc 19.822 0 Td (.T)Tj 0 Tc 1.726 0 Td [(he )-363(byte )-363(or)18(dering )-363(becomes )-363(visible )-363(to)]TJ -21.548 -1.2 Td [(applications )-504(when )-504(they )-504(exchange )-504(formatted )-504(data.)]TJ -0.055 Tc 25.315 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-504(TCP/IP)]TJ 0.754 Tc 5.006 0 Td (,a)Tj 0 Tc 1.504 0 Td [(ddr)18(esses )-504(ar)18(e)]TJ -33.061 -1.2 Td [(pr)18(esented )-235(in )-235(network )-235(byte )-235(or)18(der)74(,)-485(so)-485(applications )-235(sometimes )-235(need )-235(to )-235(translate )-235(them)]TJ 0 -1.2 Td [(between )-59(the )-59(pr)18(ocessor )176(\325s)-309(byte )-59(or)18(der )-59(and )-59(the )-59(network )-59(byte )-59(or)19(der)]TJ 0.5588 Tc 28.279 0 Td (.T)Tj 0 Tc 1.422 0 Td [(his )-59(is )-59(common )-59(when)]TJ -29.7 -1.2 Td [(printing an addr)18(ess in a human-r)18(eadable form, for example.)]TJ 1.8 -1.2 Td [(Four )-130(functions )-130(ar)]TJ 0.3805 Tc 7.869 0 Td (ep)Tj -0.018 Tc 1.461 0 Td (ro)Tj 0 Tc 0.923 0 Td [(vided )-130(to )-130(convert )-130(between )-130(the )-130(pr)18(ocessor )-130(byte )-130(or)18(der )-130(and )-130(the)]TJ -12.052 -1.2 Td [(network byte or)18(der for TCP/IP applications.)]TJ /TT0 1 Tf 8.9978 0 0 8.9978 147.5654 332.4202 Tm (#include )Tj 0 -1.783 TD (uint32_t htonl\(uint32_t)Tj /T1_2 1 Tf 14.4 0 Td (hostint32)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 5.182 -1.783 Td [(Returns: 32-bit integer in network byte or)18(der)]TJ /TT0 1 Tf -19.582 -1.783 Td (uint16_t htons\(uint16_t)Tj /T1_2 1 Tf 14.4 0 Td (hostint16)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 5.182 -1.783 Td [(Returns: 16-bit integer in network byte or)18(der)]TJ /TT0 1 Tf -19.582 -1.783 Td (uint32_t ntohl\(uint32_t)Tj /T1_2 1 Tf 14.4 0 Td (netint32)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 7.022 -1.783 Td [(Returns: 32-bit integer in host byte or)18(der)]TJ /TT0 1 Tf -21.422 -1.783 Td (uint16_t ntohs\(uint16_t)Tj /T1_2 1 Tf 14.4 0 Td (netint16)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 7.022 -1.783 Td [(Returns: 16-bit integer in host byte or)18(der)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1996.25 cm 0 0 m 0 1419 l 3900 1419 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.997 0 0 9.997 129.5611 187.2438 Tm (The)Tj /TT0 1 Tf 1.931 0 Td (h)Tj /T1_1 1 Tf 0.857 0 Td [(is )-7(for )-7(\324)38(\324host\325)]TJ 0.2566 Tc 5.14 0 Td (\325b)Tj 0 Tc 1.088 0 Td [(yte )-6(or)18(der)]TJ 0.2565 Tc 3.952 0 Td (,a)Tj 0 Tc 1.006 0 Td [(nd )-6(the)]TJ /TT0 1 Tf 3.093 0 Td (n)Tj /T1_1 1 Tf 0.856 0 Td [(is )-6(for )-6(\324)36(\324network\325)]TJ 0.2565 Tc 6.98 0 Td (\325b)Tj 0 Tc 1.087 0 Td [(yte )-6(or)18(der)]TJ 0.5065 Tc 3.952 0 Td (.T)Tj 0 Tc 1.369 0 Td (he)Tj /TT0 1 Tf 1.317 0 Td (l)Tj /T1_1 1 Tf 0.856 0 Td [(is )-6(for )-6(\324)36(\324long\325)37(\325)]TJ -33.485 -1.2 Td [(\(i.e., )-68(4)]TJ 2.671 0.09 Td (-)Tj 0.333 -0.09 Td [(byte\) )-68(integer)]TJ 0.3184 Tc 5.599 0 Td (,a)Tj 0 Tc 1.068 0 Td [(nd )-68(the)]TJ /TT0 1 Tf 3.217 0 Td (s)Tj /T1_1 1 Tf 0.918 0 Td [(is )-68(for )-68(\324)36(\324short\325)]TJ 0.3184 Tc 5.659 0 Td (\325\()Tj 0 Tc 0.929 0 Td [(i.e., )-68(2)]TJ 2.338 0.09 Td (-)Tj 0.333 -0.09 Td [(byte\) )-68(integer)]TJ 0.5685 Tc 5.599 0 Td (.A)Tj 0 Tc 1.596 0 Td [(lthough )-68(we )-68(include)]TJ /TT0 1 Tf -30.263 -1.2 Td ()Tj /T1_1 1 Tf 8.226 0 Td [(to )-176(use )-176(these )-176(functions, )-176(system )-176(implementations )-176(often )-176(declar)]TJ 0.4264 Tc 27.578 0 Td (et)Tj 0 Tc 1.231 0 Td (hese)Tj -37.036 -1.2 Td [(functions )-18(in )-18(other )-18(headers )-18(that )-18(ar)]TJ 0.2685 Tc 14.755 0 Td (ei)Tj 0 Tc 1.039 0 Td [(ncluded )-18(by)]TJ /TT0 1 Tf 5.267 0 Td ()Tj /T1_1 1 Tf 0.5185 Tc (.I)Tj 0 Tc 8.906 0 Td [(t)-268(is)-268(a)-1(lso )-18(common )-18(for)]TJ -29.966 -1.2 Td [(systems to implement these functions as macr)18(os.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47507 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.8)]TJ 38.437 0 Td [(Semaphor)18(es)]TJ /T1_1 1 Tf 7.396 0 Td (567)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1401.25 6670.25 cm 0 0 m 3689 0 l S Q Q BT /T1_0 1 Tf -0.09 Tc 7.9995 0 0 7.9995 403.9038 658.9605 Tm (Ty)Tj 0 Tc 1.079 0 Td (pical values)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3513.25 6550.25 cm 0 0 m 1577 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 353.3296 646.9224 Tm [(Fr)18(eeBSD )-1627(Linux )-1627(Mac)-250(OS X)-1229(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-3204(3.2.0)-3112(10.6.8 )-2899(10)]TJ -17.177 1.375 Td (Description)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1401.25 6330.25 cm 0 0 m 3689 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1401.25 6310.25 cm 0 0 m 3689 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 357.5116 622.8879 Tm [(32,767 )-2079(32,767)-2612(32,767 )-1899(65,535)]TJ -26.675 0 Td [(maximum value of any semaphor)18(e)]TJ 26.675 -1.25 Td [(16,384 )-2079(32,767)-2612(16,384 )-1899(32,767)]TJ -26.675 0 Td [(maximum value of any semaphor)18(e\325s adjust-on-exit value)]TJ 28.425 -1.25 Td [(10 )-3329(128)-2612(87,381 )-3149(128)]TJ -28.425 0 Td (maximum number of semaphor)Tj 0.25 Tc 14.075 0 Td (es)Tj 0 Tc 1.153 0 Td (ets, systemwide)Tj 13.198 -1.25 Td [(60 )-2079(32,000)-2612(87,381 )-1559(derived)]TJ -28.426 0 Td [(maximum number of semaphor)18(es, systemwide)]TJ 28.426 -1.25 Td [(60 )-3329(250)-2612(87,381 )-3149(512)]TJ -28.426 0 Td [(maximum number of semaphor)18(es per semaphor)]TJ 0.25 Tc 21.345 0 Td (es)Tj 0 Tc 1.153 0 Td (et)Tj 5.928 -1.25 Td [(30 )-2079(32,000)-2612(87,381 )-1559(derived)]TJ -28.425 0 Td [(maximum number of undo str)8(uctur)18(es, systemwide)]TJ 28.425 -1.25 Td [(10 )-1275(unlimited)-3559(10 )-1559(derived)]TJ -28.425 0 Td [(maximum number of undo entries per undo str)8(uctur)18(es)]TJ 27.925 -1.25 Td [(100 )-3829(32)]TJ 3.3995 Tc 11.442 0 Td (55)Tj 0 Tc 4.399 0 Td (12)Tj -43.766 0 Td (maximum number of operations per)Tj /TT0 1 Tf 16.348 0 Td (semop)Tj /T1_0 1 Tf 3.25 0 Td (call)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1401.25 5490.25 cm 0 0 m 3689 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4736.25 5490.25 cm 0 0 m 0 1060 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4306.25 5490.25 cm 0 0 m 0 1060 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3878.25 5490.25 cm 0 0 m 0 1060 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3513.25 5490.25 cm 0 0 m 0 1180 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5090.25 5490.25 cm 0 0 m 0 1180 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1401.25 5490.25 cm 0 0 m 0 1180 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 235.2635 530.8726 Tm (Figure 15.28)Tj /T1_0 1 Tf 6.195 0 Td [(System limits that af)18(fect semaphor)18(es)]TJ 9.9976 0 0 9.9976 147.5648 504.4789 Tm [(When )-88(we )-88(want )-88(to )-88(use )-88(XSI )-88(semaphor)16(es, )-88(we )-88(\336rst )-88(need )-88(to )-88(obtain )-88(a )-88(semaphor)16(e)-338(ID)-338(b)-1(y)]TJ -1.8 -1.2 Td (calling the)Tj /TT0 1 Tf 4.842 0 Td (semget)Tj /T1_0 1 Tf 3.85 0 Td (function.)Tj /TT0 1 Tf 8.9978 0 0 8.9978 147.5649 476.9855 Tm (#include )Tj 0 -1.783 TD (int semget\(key_t)Tj /T1_2 1 Tf 10.2 0 Td (key)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.133 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (nsems)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.301 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -0.115 -1.783 Td [(Returns: semaphor)18(e)-250(ID)-250(if)-250(OK,)]TJ /TT1 1 Tf 13.345 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4405.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.997 0 0 9.997 129.5611 428.0716 Tm [(In )-152(Section )-152(15.6.1, )-152(we )-152(described )-152(the )-152(r)8(ules )-152(for )-152(converting )-152(the)]TJ /T1_2 1 Tf 27.48 0 Td (key)Tj /T1_0 1 Tf 1.735 0 Td [(into )-152(an )-152(identi\336er )-152(and)]TJ -29.215 -1.2 Td [(discussed )-39(whether )-39(a )-39(new )-39(set )-39(is )-39(cr)20(eated )-39(or )-39(an )-39(existing )-39(set )-39(is )-39(r)20(efer)18(enced. )-289(When)]TJ 0.2886 Tc 34.799 0 Td (an)Tj 0 Tc 1.371 0 Td [(ew )-39(set)]TJ -36.17 -1.2 Td [(is cr)18(eated, the following members of the)]TJ /TT0 1 Tf 17.95 0 Td (semid_ds)Tj /T1_0 1 Tf 5.05 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(i)]TJ 0 Tc 1.397 0 Td (nitialized.)Tj 0.883 Tc -27.316 -1.56 Td (\245T)Tj 0 Tc 2.102 0 Td (he)Tj /TT0 1 Tf 1.402 0 Td (ipc_perm)Tj /T1_0 1 Tf 5.141 0 Td [(str)8(uctur)18(e)-341(is)-341(initialized )-91(as )-91(described )-91(in )-91(Section )-91(15.6.2.)-590(The)]TJ /TT0 1 Tf 26.155 0 Td (mode)Tj /T1_0 1 Tf -33.311 -1.2 Td [(member )-234(of )-234(this )-234(str)9(uctur)18(e)-484(is)-484(s)1(et )-234(to )-234(the )-234(corr)18(esponding )-234(permission )-234(bits )-234(of)]TJ /T1_2 1 Tf 33.972 0 Td (\337ag)Tj /T1_0 1 Tf (.)Tj -33.972 -1.2 Td (These permissions ar)Tj 0.25 Tc 9.294 0 Td (es)Tj 0 Tc 1.153 0 Td [(peci\336ed with the values fr)18(om Figur)]TJ 0.25 Tc 15.564 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.24.)Tj -28.729 -1.48 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (sem_otime)Tj /T1_0 1 Tf 5.65 0 Td (is set to 0.)Tj -7.139 -1.48 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (sem_ctime)Tj /T1_0 1 Tf 5.65 0 Td [(is set to the curr)18(ent time.)]TJ -7.139 -1.48 Td (\245)Tj /TT0 1 Tf 1.489 0 Td (sem_nsems)Tj /T1_0 1 Tf 5.65 0 Td (is set to)Tj /T1_2 1 Tf 3.566 0 Td (nsems)Tj /T1_0 1 Tf (.)Tj -10.705 -1.56 Td [(The )-281(number )-281(of )-281(semaphor)18(es )-281(in )-281(the )-281(set )-281(is)]TJ /T1_2 1 Tf 19.795 0 Td (nsems)Tj /T1_0 1 Tf 0.7811 Tc (.I)Tj 0.5311 Tc 3.869 0 Td (fan)Tj 0 Tc 2.477 0 Td [(ew )-281(set )-281(is )-281(being )-281(cr)18(eated)]TJ -27.941 -1.2 Td [(\(typically )-43(by )-43(the )-43(server\), )-43(we )-43(must )-43(specify)]TJ /T1_2 1 Tf 18.731 0 Td (nsems)Tj /T1_0 1 Tf 0.5427 Tc (.I)Tj 0 Tc 3.631 0 Td [(f)-293(we)-293(a)]TJ -0.018 Tc 2.731 0 Td [(re )-79(re)]TJ 0 Tc 2.005 0 Td [(fer)18(encing )-43(an )-43(existing )-43(set )-43(\(a)]TJ -27.098 -1.2 Td (client\), we can specify)Tj /T1_2 1 Tf 9.963 0 Td (nsems)Tj /T1_0 1 Tf 2.751 0 Td (as 0.)Tj -10.914 -1.2 Td (The)Tj /TT0 1 Tf 1.924 0 Td (semctl)Tj /T1_0 1 Tf 3.85 0 Td (function is the catchall for various semaphor)Tj 0.25 Tc 19.677 0 Td (eo)Tj 0 Tc 1.275 0 Td (perations.)Tj /TT0 1 Tf 8.9973 0 0 8.9973 140.3587 253.0241 Tm (#include )Tj T* (int semctl\(int)Tj /T1_2 1 Tf 9 0 Td (semid)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.134 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (semnum)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 5.246 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (cmd)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 3.485 0 Td (.. /* union semun)Tj /T1_2 1 Tf 10.8 0 Td [(ar)18(g)]TJ /TT0 1 Tf 1.915 0 Td (*/ \);)Tj /T1_0 1 Tf -7.792 -1.783 Td (Returns: \(see following\))Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2165.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9964 0 0 9.9964 129.5534 204.1265 Tm [(The )-34(fourth )-34(ar)18(gument )-34(is )-34(optional, )-34(depending )-34(on )-34(the )-34(command )-34(r)18(equested, )-34(and )-34(if )-34(pr)18(esent,)]TJ 0 -1.2 TD (is of type)Tj /TT0 1 Tf 4.306 0 Td (semun)Tj /T1_0 1 Tf 0.25 Tc (,au)Tj 0 Tc 4.853 0 Td [(nion of various command-speci\336c ar)18(guments:)]TJ /TT0 1 Tf 8.9968 0 0 8.9968 147.547 179.0355 Tm (union semun {)Tj 1.2 -1.189 Td (int )Tj 10.8 0 Td [(val;)-1800(/* for SETVAL */)]TJ -10.8 -1.189 Td [(struct semid_ds)-1200(*buf; )-1200(/*)-600(for IPC_STAT and IPC_SET */)]TJ 0 -1.189 TD [(unsigned short)-1800(*array; /* for GETALL and SETALL */)]TJ -1.2 -1.189 Td (};)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47508 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (432)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.018 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm (re)Tj 0 Tc 0.856 0 Td [(strict )-170(the )-170(mor)]TJ 0.4199 Tc 6.239 0 Td (ee)Tj 0 Tc 1.378 0 Td [(xpensive )-170(implementation )-170(to )-170(the )-170(case )-170(in )-170(which )-170(mutexes )-170(ar)]TJ 0.42 Tc 26.655 0 Td (es)Tj 0 Tc 1.323 0 Td [(har)18(ed)]TJ -36.451 -1.2 Td [(among pr)18(ocesses.)]TJ 1.8 -1.2 Td (The)Tj /T1_2 1 Tf -0.018 Tc 2.1 0 Td (ro)Tj 0 Tc 0.815 0 Td (bust)Tj /T1_1 1 Tf 2.167 0 Td [(mutex )-176(attribute )-176(is )-176(r)19(elated )-176(to )-176(mutexes )-176(that )-176(ar)]TJ 0.4257 Tc 20.557 0 Td (es)Tj 0 Tc 1.329 0 Td [(har)18(ed )-176(among )-176(multiple)]TJ -28.768 -1.2 Td [(pr)18(ocesses. )-349(It)-349(is )-99(meant )-99(to )-99(addr)18(ess )-99(the )-99(pr)18(oblem )-99(of )-99(mutex )-99(state )-99(r)19(ecovery )-99(when )-99(a )-99(pr)18(ocess)]TJ 0 -1.2 TD [(terminates )-153(while )-153(holding )-153(a )-153(mutex.)-653(When )-153(this )-153(happens, )-153(the )-153(mutex )-153(is )-153(left )-153(in )-153(a )-153(locked)]TJ T* [(state )-21(and )-21(r)18(ecovery )-21(is )-21(dif)18(\336cult. )-271(Thr)18(eads )-21(blocked )-21(on )-21(the )-21(lock )-21(in )-21(other )-21(pr)18(ocesses )-21(will )-21(block)]TJ 0 -1.2 Td [(inde\336nitely)111(.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-222(c)]TJ 0 Tc 2.119 0 Td [(an )-38(use )-38(the)]TJ /TT0 1 Tf 4.838 0 Td (pthread_mutexattr_getrobust)Tj /T1_1 1 Tf 16.488 0 Td [(function )-37(to )-37(get )-37(the )-37(value )-37(of )-37(the)]TJ /T1_2 1 Tf -0.018 Tc -25.244 -1.2 Td (ro)Tj 0 Tc 0.815 0 Td (bust)Tj /T1_1 1 Tf 2.127 0 Td [(mutex )-136(attribute.)]TJ -0.092 Tc 7.878 0 Td [(To )-320(s)]TJ 0 Tc 1.877 0 Td [(et )-136(the )-136(value )-136(of )-136(the)]TJ /T1_2 1 Tf -0.018 Tc 8.825 0 Td (ro)Tj 0 Tc 0.815 0 Td (bust)Tj /T1_1 1 Tf 2.127 0 Td [(mutex )-136(attribute, )-136(we )-136(can )-136(call )-136(the)]TJ /TT0 1 Tf -24.463 -1.2 Td (pthread_mutexattr_setrobust)Tj /T1_1 1 Tf 16.45 0 Td (function.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5913 541.8675 Tm (#include )Tj 0 -2.14 TD (int pthread_mutexattr_getrobust\(const pthread_mutexattr_t *)Tj 19.8 -1.189 Td (restrict)Tj /T1_2 1 Tf 5.4 0 Td (attr)Tj /TT0 1 Tf (,)Tj -5.4 -1.189 Td (int *restrict)Tj /T1_2 1 Tf -0.018 Tc 8.4 0 Td (ro)Tj 0 Tc 0.815 0 Td (bust)Tj /TT0 1 Tf (\);)Tj -29.015 -2.14 Td (int pthread_mutexattr_setrobust\(pthread_mutexattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 19.8 -1.189 Td (int)Tj /T1_2 1 Tf -0.018 Tc 2.4 0 Td (ro)Tj 0 Tc 0.815 0 Td (bust)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -3.334 -2.14 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4475.25 cm 0 0 m 0 1034 l 3900 1034 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 431.5682 Tm (Ther)Tj 0.9172 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.896 0 Td [(re )-703(t)]TJ 0 Tc 2.099 0 Td [(wo )-667(possible )-667(values )-667(for )-667(the)]TJ /T1_2 1 Tf -0.018 Tc 15.098 0 Td (ro)Tj 0 Tc 0.815 0 Td (bust)Tj /T1_1 1 Tf 2.658 0 Td [(attribute. )-917(The)-917(default )-667(is)]TJ /TT0 1 Tf -26.418 -1.2 Td (PTHREAD_MUTEX_STALLED)Tj /T1_1 1 Tf 0.5833 Tc (,w)Tj 0 Tc 14.267 0 Td [(hich )-333(means )-333(that )-333(no )-333(special )-333(action )-333(is )-333(taken )-333(when )-333(a)]TJ -14.267 -1.2 Td [(pr)18(ocess )-94(terminates )-94(while )-94(holding )-94(a )-94(mutex.)-594(In )-94(this )-94(case, )-94(use )-94(of )-94(the )-94(mutex )-94(can )-94(r)18(esult )-94(in)]TJ 0 -1.2 TD [(unde\336ned )-302(behavior)]TJ 0.5518 Tc 8.941 0 Td (,a)Tj 0 Tc 1.302 0 Td [(nd )-302(applications )-302(waiting )-302(for )-302(it )-302(to )-302(be )-302(unlocked )-302(ar)]TJ 0.5519 Tc 23.168 0 Td (ee)Tj -0.018 Tc 1.51 0 Td (ff)Tj 0 Tc 0.648 0 Td (ectively)Tj -0.037 Tc -35.569 -1.2 Td (\324\324)Tj 0 Tc 0.519 0 Td (stalled.\325)Tj 0.5232 Tc 3.413 0 Td (\325T)Tj 0 Tc 1.414 0 Td [(he )-23(other )-23(value )-23(is)]TJ /TT0 1 Tf 7.635 0 Td (PTHREAD_MUTEX_ROBUST)Tj /T1_1 1 Tf 0.5232 Tc (.T)Tj 0 Tc 13.386 0 Td [(his )-23(value )-23(will )-23(cause )-23(a )-23(thr)17(ead)]TJ -26.367 -1.2 Td [(blocked )-118(in )-118(a )-118(call )-118(to)]TJ /TT0 1 Tf 9.091 0 Td (pthread_mutex_lock)Tj /T1_1 1 Tf 11.168 0 Td [(to )-118(acquir)]TJ 0.3681 Tc 4.015 0 Td (et)Tj 0 Tc 1.173 0 Td [(he )-118(lock )-118(when )-118(another )-118(pr)18(ocess)]TJ -25.447 -1.2 Td [(holding )-321(the )-321(lock )-321(terminates )-321(without )-321(\336rst )-321(unlocking )-321(it, )-321(but )-321(the )-321(r)21(eturn )-321(value )-321(fr)19(om)]TJ /TT0 1 Tf 0 -1.2 Td (pthread_mutex_lock)Tj /T1_1 1 Tf 11.103 0 Td (is)Tj /TT0 1 Tf 1.018 0 Td (EOWNERDEAD)Tj /T1_1 1 Tf 6.303 0 Td [(instead )-53(of )-53(0.)-553(Applications )-53(can )-53(use )-53(this )-53(special)]TJ -0.018 Tc -18.425 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-120(value )-120(as )-120(an )-120(indication )-120(that )-120(they )-120(need )-120(to )-120(r)19(ecover )-120(whatever )-120(state )-120(the )-120(mutex )-120(was)]TJ -0.856 -1.2 Td [(pr)18(otecting, )-148(if )-148(possible )-148(\(the )-148(details )-148(of )-148(what )-148(state )-148(is )-148(being )-148(pr)18(otected )-148(and )-148(how )-148(it )-148(can )-148(be)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(cover)18(ed )-65(will )-65(vary )-65(among )-65(applications\).)-565(Note )-65(that )-65(the)]TJ /TT0 1 Tf 24.344 0 Td (EOWNERDEAD)Tj /T1_1 1 Tf 6.315 0 Td [(err)18(or )-65(r)18(eturn )-65(isn\325t)]TJ -0.018 Tc -31.515 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ally an err)18(or in this case, because the caller will own the lock.)]TJ 0.944 -1.2 Td [(Using )-2(r)18(obust )-2(mutexes )-2(changes )-2(the )-2(way )-2(we )-2(use)]TJ /TT0 1 Tf 20.851 0 Td (pthread_mutex_lock)Tj /T1_1 1 Tf 0.2522 Tc (,b)Tj 0 Tc 11.855 0 Td [(ecause )-2(we)]TJ -34.506 -1.2 Td [(now )-186(have )-186(to )-186(check )-186(for )-186(thr)18(ee )-186(r)19(eturn )-186(values )-186(instead )-186(of )-186(two: )-186(success )-186(with )-186(no )-186(r)20(ecovery)]TJ T* [(needed, )-205(success )-205(but )-205(r)18(ecovery )-205(needed, )-205(and )-205(failur)16(e. )-455(However)74(,)-455(if)-455(we)-455(d)-1(on\325t )-205(use )-205(r)17(obust)]TJ -0 -1.2 Td [(mutexes, then we can continue to check only for success and failur)18(e.)]TJ 7.999 0 0 7.999 183.5778 229.1925 Tm [(Of )-76(the )-76(four )-76(platforms )-76(cover)17(ed )-76(in )-76(this )-76(text, )-76(only )-76(Linux )-76(3.2.0 )-76(curr)18(ently )-76(supports )-76(r)18(obust )-76(pthr)16(ead)]TJ -0 -1.25 Td [(mutexes. )-547(Solaris)-548(10 )-297(supports )-297(r)18(obust )-297(mutexes )-297(only )-297(in )-297(its )-297(Solaris )-297(thr)18(eads )-297(library )-297(\(see )-297(the)]TJ /TT0 1 Tf 0 -1.25 TD (mutex_init)Tj /T1_1 1 Tf 6 0.04 Td (\()Tj 0.333 -0.04 Td (3C)Tj 1.209 0.04 Td (\))Tj 0.68 -0.04 Td [(Solaris )-97(manual )-97(page )-97(for )-97(mor)]TJ 0.3469 Tc 12.935 0 Td (ei)Tj 0 Tc 1.117 0 Td [(nformation\). )-347(However)74(,)-347(in)-347(Solaris )-97(1)55(1, )-97(r)18(obust)]TJ -22.274 -1.25 Td [(pthr)18(ead mutexes ar)]TJ 0.25 Tc 8.563 0 Td (es)Tj 0 Tc 1.153 0 Td (upported.)Tj 9.9988 0 0 9.9988 147.5817 176.1989 Tm [(If )-240(the )-240(application )-240(state )-240(can\325t )-240(be )-240(r)20(ecover)18(ed, )-240(the )-240(mutex )-240(will )-240(be )-240(in )-240(a )-240(permanently)]TJ -1.8 -1.2 Td [(unusable )-68(state )-68(after )-68(the )-68(thr)18(ead )-68(unlocks )-68(the )-68(mutex.)]TJ -0.092 Tc 23.069 0 Td [(To )-252(p)]TJ -0.018 Tc 1.986 0 Td (re)Tj 0 Tc 0.856 0 Td [(vent )-68(this )-68(pr)18(oblem, )-68(the )-68(thr)18(ead)]TJ -25.911 -1.2 Td [(can )-515(call )-515(the)]TJ /TT0 1 Tf 6.733 0 Td (pthread_mutex_consistent)Tj /T1_1 1 Tf 15.165 0 Td [(function )-515(to )-515(indicate )-515(that )-515(the )-515(state)]TJ -21.897 -1.2 Td (associated with the mutex is consistent befor)Tj 0.25 Tc 19.699 0 Td (eu)Tj 0 Tc 1.332 0 Td (nlocking the mutex.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47509 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (396)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 0 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Running the pr)18(ogram in Figur)]TJ 0.25 Tc 13.365 0 Td (e1)Tj 0 Tc 1.174 0 Td (1.5 on Linux or Solaris gives us)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 651.191 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (thread 1 start)Tj 0 -1.189 TD (thread 1 push complete)Tj T* (thread 2 start)Tj T* (thread 2 push complete)Tj 0 -1.189 TD (cleanup: thread 2 second handler)Tj 0 -1.189 TD (cleanup: thread 2 first handler)Tj T* (thread 1 exit code 1)Tj T* (thread 2 exit code 2)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.592 546.5274 Tm [(Fr)18(om )-49(the )-49(output, )-49(we )-49(can )-49(see )-49(that )-49(both )-49(thr)18(eads )-49(start )-49(pr)17(operly )-49(and )-49(exit, )-49(but )-49(that )-49(only )-49(the)]TJ 0 -1.2 Td [(second )-13(thr)18(ead\325s )-13(cleanup )-13(handlers )-13(ar)]TJ 0.2632 Tc 15.956 0 Td (ec)Tj 0 Tc 1.186 0 Td [(alled. )-263(Thus,)-263(if )-13(the )-13(thr)18(ead )-13(terminates )-13(by )-13(r)17(eturning)]TJ -17.143 -1.2 Td [(fr)18(om )-68(its )-68(start )-68(r)18(outine, )-68(its )-68(cleanup )-68(handlers )-68(ar)]TJ 0.3185 Tc 20.116 0 Td (en)Tj 0 Tc 1.379 0 Td [(ot )-68(called, )-68(although )-68(this )-68(behavior )-68(varies)]TJ -21.496 -1.2 Td [(among )-88(implementations.)-588(Also )-88(note )-88(that )-88(the )-88(cleanup )-88(handlers )-88(ar)]TJ 0.3385 Tc 29.093 0 Td (ec)Tj 0 Tc 1.261 0 Td [(alled )-88(in )-88(the )-88(r)17(everse)]TJ -30.355 -1.2 Td [(or)18(der fr)18(om which they wer)]TJ 0.25 Tc 11.913 0 Td (ei)Tj 0 Tc 1.02 0 Td (nstalled.)Tj -11.133 -1.2 Td [(If )-153(we )-153(r)8(un )-153(the )-153(same )-153(pr)18(ogram )-153(on )-153(Fr)16(eeBSD )-153(or )-153(Mac )-153(OS )-153(X, )-153(we )-153(see )-153(that )-153(the )-153(pr)16(ogram)]TJ -1.8 -1.2 Td [(incurs )-356(a )-356(segmentation )-356(violation )-356(and )-356(dr)18(ops )-356(cor)15(e. )-607(This)-606(happens )-357(because )-357(on )-357(these)]TJ -0 -1.2 Td (systems,)Tj /TT0 1 Tf 4.024 0 Td (pthread_cleanup_push)Tj /T1_1 1 Tf 12.258 0 Td [(is )-8(implemented )-8(as )-8(a )-8(macr)]TJ 0.2579 Tc 11.28 0 Td (ot)Tj 0 Tc 1.13 0 Td [(hat )-8(stor)18(es )-8(some )-8(context)]TJ -28.691 -1.2 Td [(on )-95(the )-95(stack.)-595(When )-95(thr)18(ead )-95(1 )-95(r)18(eturns )-95(in )-95(between )-95(the )-95(call )-95(to)]TJ /TT0 1 Tf 27 0 Td (pthread_cleanup_push)Tj /T1_1 1 Tf -27 -1.2 Td [(and )-115(the )-115(call )-115(to)]TJ /TT0 1 Tf 6.94 0 Td (pthread_cleanup_pop)Tj /T1_1 1 Tf 0.3655 Tc (,t)Tj 0 Tc 12.341 0 Td [(he )-115(stack )-115(is )-115(overwritten )-115(and )-115(these )-115(platforms)]TJ -19.282 -1.2 Td [(try )-70(to )-70(use )-70(this )-70(\(now )-70(corr)8(upted\) )-70(context )-70(when )-70(they )-70(invoke )-70(the )-70(cleanup )-70(handlers.)-570(In )-70(the)]TJ 0 -1.2 TD [(Single )-308(UNIX )-308(Speci\336cation, )-308(r)19(eturning )-308(while )-308(in )-308(between )-308(a )-308(matched )-308(pair )-308(of )-308(calls )-308(to)]TJ /TT0 1 Tf T* (pthread_cleanup_push)Tj /T1_1 1 Tf 13.112 0 Td (and)Tj /TT0 1 Tf 2.805 0 Td (pthread_cleanup_pop)Tj /T1_1 1 Tf -0.018 Tc 12.512 0 Td (re)Tj 0 Tc 0.856 0 Td [(sults )-862(in )-862(unde\336ned)]TJ -29.284 -1.2 Td (behavior)Tj 0.6753 Tc 3.837 0 Td (.T)Tj 0 Tc 1.538 0 Td [(he )-175(only )-175(portable )-175(way )-175(to )-175(r)18(eturn )-175(in )-175(between )-175(these )-175(two )-175(functions )-175(is )-175(to )-175(call)]TJ /TT0 1 Tf -5.375 -1.2 Td (pthread_exit)Tj /T1_1 1 Tf (.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3785.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 349.718 Tm [(By )-84(now)]TJ 0.3343 Tc 3.371 0 Td (,y)Tj 0 Tc 1.14 0 Td [(ou )-84(should )-84(begin )-84(to )-84(see )-84(similarities )-84(between )-84(the )-84(thr)18(ead )-84(functions )-84(and )-84(the)]TJ -6.312 -1.2 Td [(pr)18(ocess functions.)-500(Figur)]TJ 0.25 Tc 10.809 0 Td (e1)Tj 0 Tc 1.174 0 Td (1.6 summarizes the similar functions.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1315.25 3213.25 cm 0 0 m 3862 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 135.4556 313.3036 Tm [(Pr)18(ocess primitive)-3733(Thr)18(ead primitive)]TJ 32.398 0 Td (Description)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1315.25 3093.25 cm 0 0 m 3862 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1315.25 3073.25 cm 0 0 m 3862 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 135.4475 299.2882 Tm (fork )Tj 9.17 0 Td (pthread_create)Tj /T1_1 1 Tf 13.5 0 Td [(cr)18(eate a new \337ow of contr)18(ol)]TJ /TT0 1 Tf -22.67 -1.25 Td (exit )Tj 9.17 0 Td (pthread_exit)Tj /T1_1 1 Tf 13.5 0 Td [(exit fr)18(om an existing \337ow of contr)18(ol)]TJ /TT0 1 Tf -22.67 -1.25 Td [(waitpid )-4370(pthread_join)]TJ /T1_1 1 Tf 22.67 0 Td [(get exit status fr)18(om \337ow of contr)18(ol)]TJ /TT0 1 Tf -22.67 -1.25 Td [(atexit )-4970(pthread_cleanup_push)]TJ /T1_1 1 Tf -0.018 Tc 22.67 0 Td (re)Tj 0 Tc 0.856 0 Td [(gister function to be called at exit fr)18(om \337ow of contr)18(ol)]TJ /TT0 1 Tf -23.526 -1.25 Td [(getpid )-4970(pthread_self)]TJ /T1_1 1 Tf 22.67 0 Td [(get ID for \337ow of contr)18(ol)]TJ /TT0 1 Tf -22.67 -1.25 Td (abort )Tj 9.17 0 Td (pthread_cancel)Tj /T1_1 1 Tf -0.018 Tc 13.5 0 Td (re)Tj 0 Tc 0.856 0 Td [(quest abnormal termination of \337ow of contr)18(ol)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1315.25 2453.25 cm 0 0 m 3862 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3108.25 2453.25 cm 0 0 m 0 760 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2028.25 2453.25 cm 0 0 m 0 760 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5177.25 2453.25 cm 0 0 m 0 760 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1315.25 2453.25 cm 0 0 m 0 760 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 221.8414 227.2918 Tm [(Figure 1)37(1.6)]TJ /T1_1 1 Tf 5.658 0 Td [(Comparison of pr)18(ocess and thr)18(ead primitives)]TJ 9.997 0 0 9.997 147.5558 203.299 Tm [(By )-138(default, )-138(a )-138(thr)18(ead\325s )-138(termination )-138(status )-138(is )-138(r)18(etained )-138(until )-138(we )-138(call)]TJ /TT0 1 Tf 30 0 Td (pthread_join)Tj /T1_1 1 Tf -31.8 -1.2 Td [(for )-337(that )-337(thr)18(ead. )-587(A)-587(thr)18(ead\325s )-337(underlying )-337(storage )-337(can )-337(be )-337(r)17(eclaimed )-337(immediately )-337(on)]TJ -0 -1.2 Td [(termination )-39(if )-39(the )-39(thr)18(ead )-39(has )-39(been)]TJ /T1_2 1 Tf 15.419 0 Td (detached)Tj /T1_1 1 Tf 0.5389 Tc (.A)Tj 0 Tc 5.029 0 Td [(fter )-39(a )-39(thr)18(ead )-39(is )-39(detached, )-39(we )-39(can\325t )-39(use )-39(the)]TJ /TT0 1 Tf -20.448 -1.2 Td (pthread_join)Tj /T1_1 1 Tf 8.141 0 Td [(function )-690(to )-690(wait )-690(for )-690(its )-690(termination )-690(status, )-690(because )-690(calling)]TJ /TT0 1 Tf -8.141 -1.2 Td (pthread_join)Tj /T1_1 1 Tf 7.54 0 Td [(for )-90(a )-90(detached )-90(thr)18(ead )-90(r)18(esults )-90(in )-90(unde\336ned )-90(behavior)]TJ 0.5899 Tc 23.246 0 Td (.W)Tj 0.3399 Tc 1.748 0 Td (ec)Tj 0 Tc 1.263 0 Td [(an )-90(detach )-90(a)]TJ -33.796 -1.2 Td [(thr)18(ead by calling)]TJ /TT0 1 Tf 7.689 0 Td (pthread_detach)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47510 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (392)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 0 Tc 8.9995 0 0 8.9995 151.1909 670.2598 Tm (err = pthread_create\(&tid2, NULL, thr_fn2, NULL\);)Tj 0 -1.189 TD (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t create thread 2"\);)Tj -2.4 -1.189 Td (sleep\(1\);)Tj T* (printfoo\("parent:\\n", fp\);)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6013.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 224.2891 585.2288 Tm [(Figure 1)37(1.4)]TJ /T1_1 1 Tf 6.25 0 Td [(Incorr)18(ect use of)]TJ /TT0 1 Tf 7.065 0 Td (pthread_exit)Tj /T1_1 1 Tf 7.45 0 Td [(ar)18(gument)]TJ 9.9988 0 0 9.9988 129.5843 557.6321 Tm [(When we r)8(un this pr)18(ogram on Linux, we get)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5822 540.9341 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (thread 1:)Tj 1.2 -1.189 Td (structure at 0x7f2c83682ed0)Tj 0 -1.189 TD (foo.a = 1)Tj 0 -1.189 TD (foo.b = 2)Tj 0 -1.189 TD (foo.c = 3)Tj T* (foo.d = 4)Tj -1.2 -1.189 Td (parent starting second thread)Tj 0 -1.189 TD (thread 2: ID is 139829159933696)Tj 0 -1.189 TD (parent:)Tj 1.2 -1.189 Td (structure at 0x7f2c83682ed0)Tj T* (foo.a = -2090321472)Tj 0 -1.189 TD (foo.b = 32556)Tj 0 -1.189 TD (foo.c = 1)Tj 0 -1.189 TD (foo.d = 0)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5843 373.155 Tm [(Of )-130(course, )-130(the )-130(r)18(esults )-130(vary)]TJ 0.3801 Tc 11.996 0 Td (,d)Tj 0 Tc 1.241 0 Td [(epending )-130(on )-130(the )-130(memory )-130(ar)18(chitectur)18(e, )-130(the )-130(compiler)]TJ 0.3801 Tc 23.44 0 Td (,a)Tj 0 Tc 1.13 0 Td (nd)Tj -37.807 -1.2 Td [(the implementation of the thr)18(eads library)]TJ 0.5 Tc 18.132 0 Td (.T)Tj 0 Tc 1.363 0 Td [(he r)18(esults on Solaris ar)]TJ 0.25 Tc 9.962 0 Td (es)Tj 0 Tc 1.153 0 Td (imilar:)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5821 344.4581 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (thread 1:)Tj 1.2 -1.189 Td (structure at 0xffffffff7f0fbf30)Tj T* (foo.a = 1)Tj 0 -1.189 TD (foo.b = 2)Tj 0 -1.189 TD (foo.c = 3)Tj 0 -1.189 TD (foo.d = 4)Tj -1.2 -1.189 Td (parent starting second thread)Tj 0 -1.189 TD (thread 2: ID is 3)Tj T* (parent:)Tj 1.2 -1.189 Td (structure at 0xffffffff7f0fbf30)Tj T* (foo.a = -1)Tj 0 -1.189 TD (foo.b = 2136969048)Tj 0 -1.189 TD (foo.c = -1)Tj T* (foo.d = 2138049024)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5842 176.6766 Tm [(As )-68(we )-68(can )-68(see, )-68(the )-68(contents )-68(of )-68(the )-68(str)9(uctur)]TJ 0.3179 Tc 19.068 0 Td (e\()Tj 0 Tc 1.13 0 Td [(allocated )-68(on )-68(the )-68(stack )-68(of )-68(thr)19(ead)]TJ /T1_2 1 Tf 14.414 0 Td (tid1)Tj /T1_1 1 Tf 0.3178 Tc (\)h)Tj 0 Tc 2.844 0 Td (ave)Tj -37.456 -1.2 Td [(changed )-7(by )-7(the )-7(time )-7(the )-7(main )-7(thr)18(ead )-7(can )-7(access )-7(the )-7(str)10(uctur)18(e. )-257(Note)-257(how )-7(the )-7(stack )-7(of )-7(the)]TJ 0 -1.2 Td [(second )-80(thr)18(ead )-80(\()]TJ /T1_2 1 Tf 6.953 0 Td (tid2)Tj /T1_1 1 Tf 0.3297 Tc (\)h)Tj 0 Tc 2.856 0 Td [(as )-80(overwritten )-80(the )-80(\336rst )-80(thr)18(ead\325s )-80(stack.)]TJ -0.092 Tc 17.584 0 Td [(To )-264(s)]TJ 0 Tc 1.821 0 Td [(olve )-80(this )-80(pr)19(oblem, )-80(we)]TJ -29.214 -1.2 Td [(can either use a global str)8(uctur)18(e)-250(or)-250(allocate the str)8(uctur)]TJ 0.25 Tc 24.235 0 Td (eu)Tj 0 Tc 1.332 0 Td (sing)Tj /TT0 1 Tf 2.103 0 Td (malloc)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47511 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (334)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(#include )-1800("apue.h")]TJ 0 -1.189 TD [(#include )-1800()]TJ 0 -2.14 TD (static void sig_cld\(int\);)Tj T* (int)Tj 0 -1.189 TD (main\(\))Tj T* ({)Tj 2.4 -1.189 Td [(pid_t )-1200(pid;)]TJ 0 -2.14 TD (if \(signal\(SIGCLD, sig_cld\) == SIG_ERR\))Tj 2.4 -1.189 Td (perror\("signal error"\);)Tj -2.4 -1.189 Td (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (perror\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(pid == 0\) {)-3600(/* child */)]TJ 0.6 -1.189 Td (sleep\(2\);)Tj 0 -1.189 TD (_exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD [(pause\(\); )-1800(/*)-600(parent */)]TJ 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (static void)Tj 0 -1.189 TD [(sig_cld\(int signo\))-1200(/* interrupts pause\(\) */)]TJ 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(pid_t )-1200(pid;)]TJ 0 -1.189 TD [(int )-2400(status;)]TJ 0 -2.14 TD (printf\("SIGCLD received\\n"\);)Tj 0 -2.14 TD (if \(signal\(SIGCLD, sig_cld\) == SIG_ERR\) /* reestablish handler */)Tj 2.4 -1.189 Td (perror\("signal error"\);)Tj -2.4 -2.14 Td [(if \(\(pid = wait\(&status\)\) < 0\))-3600(/* fetch child status */)]TJ 2.4 -1.189 Td (perror\("wait error"\);)Tj -2.4 -2.14 Td (printf\("pid = %d\\n", pid\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2673.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 222.7293 251.3278 Tm (Figure 10.6)Tj /T1_1 1 Tf 5.695 0 Td (System V)Tj /TT0 1 Tf 4.415 0 Td (SIGCLD)Tj /T1_1 1 Tf 3.85 0 Td (handler that doesn\325t work)Tj -18.855 -3.35 Td [(Fr)18(eeBSD )-219(8.0 )-219(and )-219(Mac )-219(OS )-219(X )-219(10.6.8 )-219(don\325t )-219(exhibit )-219(this )-219(pr)19(oblem, )-219(because )-219(BSD)]TJ 35.115 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-219(systems)]TJ -35.448 -1.25 Td [(generally )-141(don\325t )-141(support )-141(historical )-141(System )-141(V )-141(semantics )-141(for)]TJ /TT0 1 Tf 26.727 0 Td (SIGCLD)Tj /T1_1 1 Tf 0.6408 Tc (.L)Tj 0 Tc 5.102 0 Td [(inux )-141(3.2.0 )-141(also )-141(doesn\325t)]TJ -31.829 -1.25 Td [(exhibit )-253(this )-253(pr)17(oblem, )-253(because )-253(it )-253(doesn\325t )-253(call )-253(the)]TJ /TT0 1 Tf 22.927 0 Td (SIGCHLD)Tj /T1_1 1 Tf 4.704 0 Td [(signal )-253(handler )-253(when )-253(a )-253(pr)16(ocess)]TJ -27.63 -1.25 Td [(arranges )-226(to )-226(catch)]TJ /TT0 1 Tf 8.428 0 Td (SIGCHLD)Tj /T1_1 1 Tf 4.676 0 Td [(and )-226(child )-226(pr)18(ocesses )-226(ar)]TJ 0.4763 Tc 10.416 0 Td (er)Tj 0 Tc 1.332 0 Td [(eady )-226(to )-226(be)]TJ /TT0 1 Tf 5.479 0 Td (wait)Tj /T1_1 1 Tf [(ed )-226(for)]TJ 0.4763 Tc 5.166 0 Td (,e)Tj 0 Tc 1.205 0 Td [(ven )-226(though)]TJ /TT0 1 Tf -36.703 -1.25 Td (SIGCLD)Tj /T1_1 1 Tf 3.951 0 Td (and)Tj /TT0 1 Tf 2.044 0 Td (SIGCHLD)Tj /T1_1 1 Tf 4.551 0 Td (ar)Tj 0.3511 Tc 0.877 0 Td (ed)Tj 0 Tc 1.441 0 Td [(e\336ned )-101(to )-101(be )-101(the )-101(same )-101(value.)-602(Solaris )-101(10, )-101(on )-101(the )-101(other )-101(hand, )-101(does)]TJ -12.865 -1.25 Td [(call )-176(the )-176(signal )-176(handler )-176(in )-176(this )-176(situation, )-176(but )-176(includes )-176(extra )-176(code )-176(in )-176(the )-176(kernel )-176(to )-176(avoid )-176(this)]TJ 0 -1.25 TD [(pr)18(oblem.)]TJ 0 -2.25 TD [(Although )-83(the )-83(four )-83(platforms )-83(described )-83(in )-83(this )-83(book )-83(solve )-83(this )-83(pr)17(oblem, )-83(r)18(ealize )-83(that )-83(platforms)]TJ 0 -1.25 TD [(\(such as AIX\) still exist that haven\325t addr)18(essed it.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47512 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (316)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 6670.25 cm 0 0 m 4255 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 329.6122 658.9605 Tm [(Fr)18(eeBSD )-250(Linux )-250(Mac)-250(OS X)-500(Solaris)]TJ 1.276 -1.25 Td [(8.0 )-1827(3.2.0)-1735(10.6.8 )-2170(10)]TJ -28.372 0.625 Td (Name)Tj 10.427 0 Td (Description)Tj 11.234 0 Td [(ISO C)-500(SUS)]TJ 21.906 0 Td (Default action)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 6450.25 cm 0 0 m 4255 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 6430.25 cm 0 0 m 4255 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 99.62 634.9238 Tm (SIGABRT)Tj /T1_1 1 Tf 6.5 0 Td (abnormal termination \()Tj /TT0 1 Tf (abort)Tj /T1_1 1 Tf 4.1985 Tc (\)\245)Tj 2.7085 Tc 20.533 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td [(terminate+cor)18(e)]TJ /TT0 1 Tf -44.494 -1.25 Td (SIGALRM)Tj /T1_1 1 Tf 6.5 0 Td [(timer expir)18(ed \()]TJ /TT0 1 Tf (alarm)Tj /T1_1 1 Tf 10.639 Tc (\)\245)Tj 3.096 Tc 23.847 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245t)Tj 0 Tc 2.615 0 Td (erminate)Tj /TT0 1 Tf -44.82 -1.25 Td (SIGBUS)Tj /T1_1 1 Tf 6.5 0 Td [(har)18(dwar)]TJ 0.25 Tc 3.781 0 Td (ef)Tj 0 Tc 1.062 0 Td (ault )Tj 15.69 0 Td (\245)Tj 3.096 Tc 3.314 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245t)Tj 0 Tc 2.615 0 Td [(erminate+cor)18(e)]TJ /TT0 1 Tf -44.82 -1.25 Td (SIGCANCEL)Tj /T1_1 1 Tf 6.5 0 Td [(thr)18(eads library internal use)]TJ 1.683 Tc 35.705 0 Td (\245i)Tj 0 Tc 2.58 0 Td [(gnor)18(e)]TJ /TT0 1 Tf -44.785 -1.25 Td (SIGCHLD)Tj /T1_1 1 Tf 6.5 0 Td (change in status of child)Tj 2.7085 Tc 20.533 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td [(ignor)18(e)]TJ /TT0 1 Tf -44.494 -1.25 Td (SIGCONT)Tj /T1_1 1 Tf 6.5 0 Td [(continue stopped pr)18(ocess )]TJ 20.533 0 Td (\245)Tj 3.096 Tc 3.314 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245c)Tj 0 Tc 2.733 0 Td [(ontinue/ignor)18(e)]TJ /TT0 1 Tf -44.938 -1.25 Td (SIGEMT)Tj /T1_1 1 Tf 6.5 0 Td [(har)18(dwar)]TJ 0.25 Tc 3.781 0 Td (ef)Tj 0 Tc 1.062 0 Td (ault )Tj 19.004 0 Td (\245)Tj 3.3795 Tc 3.703 0 Td [(\245\245 )3445(\245)]TJ 0 Tc 10.444 0 Td [(terminate+cor)18(e)]TJ /TT0 1 Tf -44.494 -1.25 Td (SIGFPE)Tj /T1_1 1 Tf 6.5 0 Td (arithmetic exception)Tj 2.1115 Tc 17.815 0 Td [(\245\245 )1765(\245)]TJ 3.3795 Tc 9.734 0 Td [(\245\245 )3445(\245)]TJ 0 Tc 10.444 0 Td [(terminate+cor)18(e)]TJ /TT0 1 Tf -44.494 -1.25 Td (SIGFREEZE)Tj /T1_1 1 Tf 6.5 0 Td [(checkpoint fr)18(eeze )]TJ 35.705 0 Td [(\245)-1683(ignor)18(e)]TJ /TT0 1 Tf -42.205 -1.25 Td (SIGHUP)Tj /T1_1 1 Tf 6.5 0 Td (hangup )Tj 20.533 0 Td (\245)Tj 3.096 Tc 3.314 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245t)Tj 0 Tc 2.615 0 Td (erminate)Tj /TT0 1 Tf -44.82 -1.25 Td (SIGILL)Tj /T1_1 1 Tf 6.5 0 Td [(illegal instr)8(uction )]TJ 17.815 0 Td (\245)Tj 2.7085 Tc 2.718 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td [(terminate+cor)18(e)]TJ /TT0 1 Tf -44.494 -1.25 Td (SIGINFO)Tj /T1_1 1 Tf 6.5 0 Td [(status r)18(equest fr)18(om keyboar)]TJ 10.9295 Tc 12.307 0 Td (d\245)Tj 5.853 Tc 19.228 0 Td (\245i)Tj 0 Tc 6.75 0 Td [(gnor)18(e)]TJ /TT0 1 Tf -44.785 -1.25 Td (SIGINT)Tj /T1_1 1 Tf 6.5 0 Td [(terminal interr)8(upt character)]TJ 2.1115 Tc 17.815 0 Td [(\245\245 )1765(\245)]TJ 3.3795 Tc 9.734 0 Td [(\245\245 )3445(\245)]TJ 0 Tc 10.444 0 Td (terminate)Tj /TT0 1 Tf -44.494 -1.25 Td (SIGIO)Tj /T1_1 1 Tf 6.5 0 Td [(asynchr)18(onous I/O)]TJ 3.096 Tc 23.847 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245t)Tj 0 Tc 2.615 0 Td [(erminate/ignor)18(e)]TJ /TT0 1 Tf -44.82 -1.25 Td (SIGIOT)Tj /T1_1 1 Tf 6.5 0 Td [(har)18(dwar)]TJ 0.25 Tc 3.781 0 Td (ef)Tj 0 Tc 1.062 0 Td (ault )Tj 19.004 0 Td (\245)Tj 3.3795 Tc 3.703 0 Td [(\245\245 )3445(\245)]TJ 0 Tc 10.444 0 Td [(terminate+cor)18(e)]TJ /TT0 1 Tf -44.494 -1.25 Td (SIGJVM1)Tj /T1_1 1 Tf 6.5 0 Td (Java virtual machine internal use)Tj 1.683 Tc 35.705 0 Td (\245i)Tj 0 Tc 2.58 0 Td [(gnor)18(e)]TJ /TT0 1 Tf -44.785 -1.25 Td (SIGJVM2)Tj /T1_1 1 Tf 6.5 0 Td (Java virtual machine internal use)Tj 1.683 Tc 35.705 0 Td (\245i)Tj 0 Tc 2.58 0 Td [(gnor)18(e)]TJ /TT0 1 Tf -44.785 -1.25 Td (SIGKILL)Tj /T1_1 1 Tf 6.5 0 Td (termination )Tj 20.533 0 Td (\245)Tj 3.096 Tc 3.314 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245t)Tj 0 Tc 2.615 0 Td (erminate)Tj /TT0 1 Tf -44.82 -1.25 Td (SIGLOST)Tj /T1_1 1 Tf -0.018 Tc 6.5 0 Td (re)Tj 0 Tc 0.856 0 Td [(sour)18(ce lost)]TJ 1.683 Tc 34.849 0 Td (\245t)Tj 0 Tc 2.615 0 Td (erminate)Tj /TT0 1 Tf -44.82 -1.25 Td (SIGLWP)Tj /T1_1 1 Tf 6.5 0 Td [(thr)18(eads library internal use)]TJ 11.2515 Tc 23.847 0 Td (\245\245)Tj 0 Tc 14.147 0 Td [(terminate/ignor)18(e)]TJ /TT0 1 Tf -44.494 -1.25 Td (SIGPIPE)Tj /T1_1 1 Tf 6.5 0 Td [(write to pipe with no r)18(eaders )]TJ 20.533 0 Td (\245)Tj 3.096 Tc 3.314 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245t)Tj 0 Tc 2.615 0 Td (erminate)Tj /TT0 1 Tf -44.82 -1.25 Td (SIGPOLL)Tj /T1_1 1 Tf 6.5 0 Td (pollable event \()Tj /TT0 1 Tf (poll)Tj /T1_1 1 Tf 18.0005 Tc (\)\245)Tj 1.683 Tc 35.705 0 Td (\245t)Tj 0 Tc 2.615 0 Td (erminate)Tj /TT0 1 Tf -44.82 -1.25 Td (SIGPROF)Tj /T1_1 1 Tf 6.5 0 Td [(pr)18(o\336ling time alarm \()]TJ /TT0 1 Tf (setitimer)Tj /T1_1 1 Tf 8.6345 Tc (\)\245)Tj 3.3795 Tc 27.549 0 Td [(\245\245 )3445(\245)]TJ 0 Tc 10.444 0 Td (terminate)Tj /TT0 1 Tf -44.494 -1.25 Td (SIGPWR)Tj /T1_1 1 Tf 6.5 0 Td [(power fail/r)18(estart )]TJ 27.549 0 Td (\245)Tj 1.683 Tc 8.156 0 Td (\245t)Tj 0 Tc 2.615 0 Td [(erminate/ignor)18(e)]TJ /TT0 1 Tf -44.82 -1.25 Td (SIGQUIT)Tj /T1_1 1 Tf 6.5 0 Td (terminal quit character)Tj 2.7085 Tc 20.533 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td [(terminate+cor)18(e)]TJ /TT0 1 Tf -44.494 -1.25 Td (SIGSEGV)Tj /T1_1 1 Tf 6.5 0 Td [(invalid memory r)18(efer)18(ence )]TJ 17.815 0 Td (\245)Tj 2.7085 Tc 2.718 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td [(terminate+cor)18(e)]TJ /TT0 1 Tf -44.494 -1.25 Td (SIGSTKFLT)Tj /T1_1 1 Tf 6.5 0 Td [(copr)18(ocessor stack fault)]TJ 9.8385 Tc 27.549 0 Td (\245t)Tj 0 Tc 10.771 0 Td (erminate)Tj /TT0 1 Tf -44.82 -1.25 Td (SIGSTOP)Tj /T1_1 1 Tf 6.5 0 Td (stop )Tj 20.533 0 Td (\245)Tj 3.096 Tc 3.314 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245s)Tj 0 Tc 2.713 0 Td [(top pr)18(ocess)]TJ /TT0 1 Tf -44.918 -1.25 Td (SIGSYS)Tj /T1_1 1 Tf 6.5 0 Td (invalid system call)Tj 20.071 0 Td [(XSI )-1997(\245)]TJ 3.3795 Tc 7.478 0 Td [(\245\245 )3445(\245)]TJ 0 Tc 10.444 0 Td [(terminate+cor)18(e)]TJ /TT0 1 Tf -44.494 -1.25 Td (SIGTERM)Tj /T1_1 1 Tf 6.5 0 Td (termination )Tj 17.815 0 Td (\245)Tj 2.7085 Tc 2.718 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td (terminate)Tj /TT0 1 Tf -44.494 -1.25 Td (SIGTHAW)Tj /T1_1 1 Tf 6.5 0 Td (checkpoint thaw)Tj 1.683 Tc 35.705 0 Td (\245i)Tj 0 Tc 2.58 0 Td [(gnor)18(e)]TJ /TT0 1 Tf -44.785 -1.25 Td (SIGTHR)Tj /T1_1 1 Tf 6.5 0 Td [(thr)18(eads library internal use)]TJ 13.5405 Tc 23.847 0 Td (\245t)Tj 0 Tc 14.473 0 Td (erminate)Tj /TT0 1 Tf -44.82 -1.25 Td (SIGTRAP)Tj /T1_1 1 Tf 6.5 0 Td [(har)18(dwar)]TJ 0.25 Tc 3.781 0 Td (ef)Tj 0 Tc 1.062 0 Td (ault )Tj 15.228 0 Td (XSI)Tj 3.096 Tc 3.777 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245t)Tj 0 Tc 2.615 0 Td [(erminate+cor)18(e)]TJ /TT0 1 Tf -44.82 -1.25 Td (SIGTSTP)Tj /T1_1 1 Tf 6.5 0 Td (terminal stop character)Tj 2.7085 Tc 20.533 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td [(stop pr)18(ocess)]TJ /TT0 1 Tf -44.494 -1.25 Td (SIGTTIN)Tj /T1_1 1 Tf 6.5 0 Td [(backgr)18(ound r)18(ead fr)18(om contr)18(ol tty)]TJ 2.7085 Tc 20.533 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td [(stop pr)18(ocess)]TJ /TT0 1 Tf -44.494 -1.25 Td (SIGTTOU)Tj /T1_1 1 Tf 6.5 0 Td [(backgr)18(ound write to contr)18(ol tty)]TJ 2.7085 Tc 20.533 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td [(stop pr)18(ocess)]TJ /TT0 1 Tf -44.494 -1.25 Td (SIGURG)Tj /T1_1 1 Tf 6.5 0 Td [(ur)18(gent condition \(sockets\))]TJ 2.7085 Tc 20.533 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td [(ignor)18(e)]TJ /TT0 1 Tf -44.494 -1.25 Td (SIGUSR1)Tj /T1_1 1 Tf 6.5 0 Td [(user)18(-de\336ned signal)]TJ 2.7085 Tc 20.533 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td (terminate)Tj /TT0 1 Tf -44.494 -1.25 Td (SIGUSR2)Tj /T1_1 1 Tf 6.5 0 Td [(user)18(-de\336ned signal)]TJ 2.7085 Tc 20.533 0 Td [(\245\245 )2571(\245)]TJ 3.564 Tc 11.002 0 Td (\245\245)Tj 0 Tc 6.459 0 Td (terminate)Tj /TT0 1 Tf -44.494 -1.25 Td (SIGVTALRM)Tj /T1_1 1 Tf 6.5 0 Td (virtual time alarm \()Tj /TT0 1 Tf (setitimer)Tj /T1_1 1 Tf 5.7365 Tc (\)X)Tj 0 Tc 20.739 0 Td [(SI )-1997(\245)]TJ 3.3795 Tc 6.811 0 Td [(\245\245 )3445(\245)]TJ 0 Tc 10.444 0 Td (terminate)Tj /TT0 1 Tf -44.494 -1.25 Td (SIGWAITING)Tj /T1_1 1 Tf 6.5 0 Td [(thr)18(eads library internal use)]TJ 1.683 Tc 35.705 0 Td (\245i)Tj 0 Tc 2.58 0 Td [(gnor)18(e)]TJ /TT0 1 Tf -44.785 -1.25 Td (SIGWINCH)Tj /T1_1 1 Tf 6.5 0 Td (terminal window size change)Tj 3.096 Tc 23.847 0 Td [(\245\245 )3063(\245)]TJ 1.683 Tc 11.858 0 Td (\245i)Tj 0 Tc 2.58 0 Td [(gnor)18(e)]TJ /TT0 1 Tf -44.785 -1.25 Td (SIGXCPU)Tj /T1_1 1 Tf 6.5 0 Td (CPU limit exceeded \()Tj /TT0 1 Tf (setrlimit)Tj /T1_1 1 Tf 4.9845 Tc (\)X)Tj 0 Tc 20.739 0 Td [(SI )-1997(\245)]TJ 3.3795 Tc 6.811 0 Td [(\245\245 )3445(\245)]TJ 0 Tc 10.444 0 Td (terminate or)Tj 0 -1.25 TD [(terminate+cor)18(e)]TJ /TT0 1 Tf -44.494 -1.25 Td (SIGXFSZ)Tj /T1_1 1 Tf 6.5 0 Td (\336le size limit exceeded \()Tj /TT0 1 Tf (setrlimit)Tj /T1_1 1 Tf 3.7565 Tc (\)X)Tj 0 Tc 20.738 0 Td [(SI )-1997(\245)]TJ 3.3795 Tc 6.811 0 Td [(\245\245 )3445(\245)]TJ 0 Tc 10.445 0 Td (terminate or)Tj T* [(terminate+cor)18(e)]TJ /TT0 1 Tf -44.494 -1.25 Td (SIGXRES)Tj /T1_1 1 Tf -0.018 Tc 6.5 0 Td (re)Tj 0 Tc 0.856 0 Td [(sour)18(ce contr)18(ol exceeded)]TJ 1.683 Tc 34.849 0 Td (\245i)Tj 0 Tc 2.58 0 Td [(gnor)18(e)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 1710.25 cm 0 0 m 4255 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4536.25 1710.25 cm 0 0 m 0 4960 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3276.25 1710.25 cm 0 0 m 0 4960 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2841.25 1710.25 cm 0 0 m 0 4960 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1496.25 1710.25 cm 0 0 m 0 4960 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5211.25 1710.25 cm 0 0 m 0 4960 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 1710.25 cm 0 0 m 0 4960 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 248.0793 152.9725 Tm (Figure 10.1)Tj /T1_1 1 Tf 5.695 0 Td (UNIX System signals)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47513 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (70)Tj /T1_1 1 Tf 3 0 Td [(File )-250(I/O)]TJ 39.741 0 Td [(Chapter )-250(3)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1498.25 6670.25 cm 0 0 m 3496 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 178.7333 658.9605 Tm (Name of option)Tj 16.555 0 Td (Description)Tj /T1_2 1 Tf 13.966 0 Td (name)Tj /T1_1 1 Tf 2.417 0 Td [(ar)18(gument)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1498.25 6550.25 cm 0 0 m 3496 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1498.25 6530.25 cm 0 0 m 3496 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 153.7815 644.9226 Tm (_POSIX_V7_ILP32_OFF32 )Tj 31.3 0 Td (_SC_V7_ILP32_OFF32)Tj -17.6 0 Td (int)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.3 0 Td (long)Tj /T1_1 1 Tf 0.25 Tc (,p)Tj 0 Tc 3.501 0 Td (ointer)Tj 0.25 Tc 2.545 0 Td (,a)Tj 0 Tc 1 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (off_t)Tj /T1_1 1 Tf 3.25 0 Td (types)Tj -11.789 -1.25 Td [(ar)18(e)-250(32)-250(bits.)]TJ /TT0 1 Tf -15.95 -1.25 Td (_POSIX_V7_ILP32_OFFBIG )Tj 31.3 0 Td (_SC_V7_ILP32_OFFBIG)Tj -17.6 0 Td (int)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.3 0 Td (long)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 3.4 0 Td [(nd pointer types ar)18(e)]TJ -3.45 -1.25 Td (32 bits;)Tj /TT0 1 Tf 3.344 0 Td (off_t)Tj /T1_1 1 Tf 3.25 0 Td [(types ar)18(e)-250(at)-250(least)]TJ -6.594 -1.25 Td (64 bits.)Tj /TT0 1 Tf -15.95 -1.25 Td (_POSIX_V7_LP64_OFF64 )Tj 31.3 0 Td (_SC_V7_LP64_OFF64)Tj -17.6 0 Td (int)Tj /T1_1 1 Tf 2.05 0 Td [(types ar)18(e)-250(32)-250(bits;)]TJ /TT0 1 Tf 7.586 0 Td (long)Tj /T1_1 1 Tf 0.25 Tc (,p)Tj 0 Tc 3.501 0 Td [(ointer)74(,)]TJ -10.887 -1.25 Td (and)Tj /TT0 1 Tf 1.943 0 Td (off_t)Tj /T1_1 1 Tf 3.25 0 Td [(types ar)18(e)-250(64)-250(bits.)]TJ /TT0 1 Tf -21.143 -1.25 Td (_POSIX_V7_LP64_OFFBIG )Tj 31.3 0 Td (_SC_V7_LP64_OFFBIG)Tj -17.6 0 Td (int)Tj /T1_1 1 Tf 2.05 0 Td [(types ar)18(e)-250(at)-250(least 32 bits;)]TJ /TT0 1 Tf 10.932 0 Td (long)Tj /T1_1 1 Tf (,)Tj -10.732 -1.25 Td (pointer)Tj 0.25 Tc 3.146 0 Td (,a)Tj 0 Tc 1 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (off_t)Tj /T1_1 1 Tf 3.25 0 Td (types ar)Tj 0.25 Tc 3.513 0 Td (ea)Tj 0 Tc 1.229 0 Td (t)Tj -13.581 -1.25 Td (least 64 bits.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1498.25 5510.25 cm 0 0 m 3496 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4022.25 5510.25 cm 0 0 m 0 1160 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2614.25 5510.25 cm 0 0 m 0 1160 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4994.25 5510.25 cm 0 0 m 0 1160 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1498.25 5510.25 cm 0 0 m 0 1160 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 213.6935 532.9041 Tm (Figure 3.3)Tj /T1_1 1 Tf 5.195 0 Td (Data size options and)Tj /T1_2 1 Tf 9.803 0 Td (name)Tj /T1_1 1 Tf 2.417 0 Td [(ar)18(guments to)]TJ /TT0 1 Tf 6.102 0 Td (sysconf)Tj /T1_1 1 Tf 9.9982 0 0 9.9982 147.5733 508.9084 Tm (The)Tj /TT0 1 Tf 2.191 0 Td (c99)Tj /T1_1 1 Tf 2.317 0 Td [(compiler )-267(r)18(equir)18(es )-267(that )-267(we )-267(use )-267(the)]TJ /TT0 1 Tf 16.564 0 Td (getconf)Tj /T1_1 1 Tf 4.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.85 -0.04 Td [(command )-267(to )-267(map )-267(the)]TJ -28.756 -1.2 Td [(desir)18(ed )-270(data )-270(size )-270(model )-270(to )-270(the )-270(\337ags )-270(necessary )-270(to )-270(compile )-270(and )-270(link )-270(our )-270(pr)17(ograms.)]TJ -0 -1.2 Td [(Dif)18(fer)18(ent )-456(\337ags )-456(and )-456(libraries )-456(might )-456(be )-456(needed, )-456(depending )-456(on )-456(the )-456(envir)18(onments)]TJ -0 -1.2 Td (supported by each platform.)Tj 7.9986 0 0 7.9986 183.5667 452.9185 Tm (Unfortunately)Tj 0.3294 Tc 6.186 0 Td (,t)Tj 0 Tc 0.905 0 Td [(his )-79(is )-79(one )-79(ar)18(ea )-79(in )-79(which )-79(implementations )-79(haven\325t )-79(caught )-79(up )-79(to )-79(the )-79(standar)14(ds.)]TJ -7.091 -1.25 Td [(If )-27(your )-27(system )-27(does )-27(not )-27(match )-27(the )-27(latest )-27(version )-27(of )-27(the )-27(standar)21(d, )-27(the )-27(system )-27(might )-27(support )-27(the)]TJ 0 -1.25 TD [(option )-956(names )-956(fr)18(om )-956(the )-956(pr)18(evious )-956(version )-956(of )-956(the )-956(Single )-956(UNIX )-956(Speci\336cation:)]TJ /TT0 1 Tf T* (_POSIX_V6_ILP32_OFF32)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 13.436 0 Td (_POSIX_V6_ILP32_OFFBIG)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 14.036 0 Td (_POSIX_V6_LP64_OFF64)Tj /T1_1 1 Tf 0.5856 Tc (,a)Tj 0 Tc 13.336 0 Td (nd)Tj /TT0 1 Tf -40.807 -1.25 Td (_POSIX_V6_LP64_OFFBIG)Tj /T1_1 1 Tf (.)Tj -0.092 Tc -0 -2 Td [(To )-348(g)]TJ 0 Tc 2.037 0 Td [(et )-164(ar)18(ound )-164(this, )-164(applications )-164(can )-164(set )-164(the)]TJ /TT0 1 Tf 18.334 0 Td (_FILE_OFFSET_BITS)Tj /T1_1 1 Tf 10.614 0 Td [(constant )-164(to )-164(64 )-164(to )-164(enable)]TJ -30.985 -1.25 Td (64)Tj 1 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-71(of)18(fsets. )-321(Doing)-321(so )-71(changes )-71(the )-71(de\336nition )-71(of)]TJ /TT0 1 Tf 20.951 0 Td (off_t)Tj /T1_1 1 Tf 3.321 0 Td [(to )-71(be )-71(a )-71(64)]TJ 4.367 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-71(signed )-71(integer)]TJ 0.571 Tc 7.789 0 Td (.S)Tj 0 Tc 1.346 0 Td (etting)Tj /TT0 1 Tf -39.44 -1.25 Td (_FILE_OFFSET_BITS)Tj /T1_1 1 Tf 10.575 0 Td [(to )-125(32 )-125(enables )-125(32)]TJ 7.306 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-126(\336le )-126(of)19(fsets. )-376(Be)-375(awar)18(e, )-126(however)]TJ 0.3756 Tc 15.606 0 Td (,t)Tj 0 Tc 0.952 0 Td [(hat )-126(although )-126(all)]TJ -34.773 -1.25 Td [(four )-343(platforms )-343(discussed )-343(in )-343(this )-343(text )-343(support )-343(both )-343(32)]TJ 25.879 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-343(and )-343(64)]TJ 5.05 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-343(\336le )-343(of)18(fsets, )-343(setting)]TJ /TT0 1 Tf -31.595 -1.25 Td (_FILE_OFFSET_BITS)Tj /T1_1 1 Tf 10.45 0 Td [(is not guaranteed to be portable and might not have the desir)18(ed ef)18(fect.)]TJ -10.45 -2 Td (Figur)Tj 0.3571 Tc 2.383 0 Td (e3)Tj 0 Tc 1.336 0 Td [(.4 )-107(summarizes )-107(the )-107(size )-107(in )-107(bytes )-107(of )-107(the)]TJ /TT0 1 Tf 17.547 0 Td (off_t)Tj /T1_1 1 Tf 3.357 0 Td [(data )-107(type )-107(for )-107(the )-107(platforms )-107(cover)18(ed )-107(in)]TJ -24.623 -1.25 Td [(this )-49(book )-49(when )-49(an )-49(application )-49(doesn\325t )-49(de\336ne)]TJ /TT0 1 Tf 20.453 0 Td (_FILE_OFFSET_BITS)Tj /T1_1 1 Tf [(,)-299(as)-299(well )-49(as )-49(the )-49(size )-49(when)]TJ -20.453 -1.25 Td (an application de\336nes)Tj /TT0 1 Tf 9.985 0 Td (_FILE_OFFSET_BITS)Tj /T1_1 1 Tf 10.45 0 Td (to have a value of either 32 or 64.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2318.25 2990.25 cm 0 0 m 2396 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 246.1449 290.9302 Tm [(Operating )-4478(CPU)]TJ /TT0 1 Tf 14.762 0 Td (_FILE_OFFSET_BITS)Tj /T1_1 1 Tf 10.45 0 Td (value)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3583.25 2870.25 cm 0 0 m 1131 0 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 251.8244 278.9163 Tm [(system )-3621(ar)18(chitectur)]TJ 2.3853 Tc 11.713 0 Td (eU)Tj 0 Tc 3.642 0 Td [(nde\336ned )-2304(32 )-2304(64)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2318.25 2750.25 cm 0 0 m 2396 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2318.25 2730.25 cm 0 0 m 2396 0 l S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 235.7111 264.9046 Tm [(Fr)18(eeBSD 8.0)-4155(x86 32)]TJ 12.222 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-4728(8)]TJ 3.0536 Tc 11.565 0 Td (88)Tj 0 Tc -24.12 -1.25 Td [(Linux 3.2.0)-4603(x86 64)]TJ 12.222 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-4728(8)]TJ 3.0536 Tc 11.565 0 Td (88)Tj 0 Tc -24.12 -1.25 Td [(Mac OS X 10.6.8)-2338(x86 64)]TJ 12.222 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-4728(8)]TJ 3.0536 Tc 11.565 0 Td (88)Tj 0 Tc -24.12 -1.25 Td [(Solaris 10)-4396(SP)92(ARC 64)]TJ 13.06 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-3890(8)]TJ 3.0536 Tc 10.727 0 Td (48)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2318.25 2310.25 cm 0 0 m 2396 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 2310.25 cm 0 0 m 0 560 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4165.25 2310.25 cm 0 0 m 0 560 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3583.25 2310.25 cm 0 0 m 0 680 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2987.25 2310.25 cm 0 0 m 0 680 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4714.25 2310.25 cm 0 0 m 0 680 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2318.25 2310.25 cm 0 0 m 0 680 l S Q Q BT /T1_0 1 Tf 0 Tc 7.9966 0 0 7.9966 250.7107 212.9106 Tm (Figure 3.4)Tj /T1_1 1 Tf 5.195 0 Td (Size in bytes of)Tj /TT0 1 Tf 6.885 0 Td (off_t)Tj /T1_1 1 Tf 3.25 0 Td [(for dif)18(fer)18(ent platforms)]TJ 9.9958 0 0 9.9958 147.5383 184.9223 Tm [(Note )-100(that )-100(even )-100(though )-100(you )-100(might )-100(enable )-100(64)]TJ 19.892 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-100(\336le )-100(of)18(fsets, )-100(your )-100(ability )-100(to )-100(cr)18(eate )-100(a)]TJ -22.025 -1.2 Td [(\336le lar)18(ger than 2 GB)]TJ 9.087 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 6.9971 0 0 6.9971 228.7043 177.9253 Tm (31)Tj /TT1 1 Tf 9.9958 0 0 9.9958 235.7014 172.9274 Tm (!)Tj /T1_1 1 Tf 0.25 Tc (1b)Tj 0 Tc 1.852 0 Td (ytes)Tj 1.785 0.04 Td (\))Tj 0.583 -0.04 Td (depends on the underlying \336le system type.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47514 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (808)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(34 )-3000(if)-600(\(err || \(optind != argc - 1\)\))]TJ 0 -1.189 TD (35 )Tj 7.2 0 Td [(err_quit\("usage:)-600(print [-t] filename"\);)]TJ -7.2 -1.189 Td [(36 )-3000(if)-600(\(\(fd = open\(argv[optind], O_RDONLY\)\) < 0\))]TJ T* (37 )Tj 7.2 0 Td [(err_sys\("print:)-600(can\325t open %s", argv[optind]\);)]TJ -7.2 -1.189 Td [(38 )-3000(if)-600(\(fstat\(fd, &sbuf\) < 0\))]TJ 0 -1.189 TD (39 )Tj 7.2 0 Td [(err_sys\("print:)-600(can\325t stat %s", argv[optind]\);)]TJ -7.2 -1.189 Td [(40 )-3000(if)-600(\(!S_ISREG\(sbuf.st_mode\)\))]TJ 0 -1.189 TD (41 )Tj 7.2 0 Td [(err_quit\("print:)-600(%s must be a regular file", argv[optind]\);)]TJ -7.2 -2.021 Td [(42 )-3000(/*)]TJ 0 -1.189 TD [(43 )-3600(*)-600(Get the hostname of the host acting as the print server.)]TJ 0 -1.189 TD [(44 )-3600(*/)]TJ T* [(45 )-3000(if)-600(\(\(host = get_printserver\(\)\) == NULL\))]TJ T* (46 )Tj 7.2 0 Td [(err_quit\("print:)-600(no print server defined"\);)]TJ -7.2 -1.189 Td [(47 )-3000(if)-600(\(\(err = getaddrlist\(host, "print", &ailist\)\) != 0\))]TJ T* (48 )Tj 7.2 0 Td [(err_quit\("print:)-600(getaddrinfo error: %s", gai_strerror\(err\)\);)]TJ -7.2 -2.021 Td [(49 )-3000(for)-600(\(aip = ailist; aip != NULL; aip = aip->ai_next\) {)]TJ T* (50 )Tj 7.2 0 Td [(if)-600(\(\(sfd = connect_retry\(AF_INET, SOCK_STREAM, 0,)]TJ -7.2 -1.189 Td (51 )Tj 8.4 0 Td [(aip->ai_addr,)-600(aip->ai_addrlen\)\) < 0\) {)]TJ -8.4 -1.189 Td (52 )Tj 9.6 0 Td (err)Tj 0.6 Tc 2.4 0 Td (=e)Tj 0 Tc 1.8 0 Td (rrno;)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4471.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 423.0672 Tm [([34 )167(\320 )167(41])-668(When)]TJ /TT0 1 Tf 7.245 0 Td (getopt)Tj /T1_1 1 Tf 4.202 0 Td [(completes )-352(pr)18(ocessing )-352(the )-352(command )-352(options, )-352(it )-352(leaves )-352(the)]TJ -7.446 -1.2 Td (variable)Tj /TT0 1 Tf 3.931 0 Td (optind)Tj /T1_1 1 Tf 3.957 0 Td [(set )-107(to )-107(the )-107(index )-107(of )-107(the )-107(\336rst )-107(nonoptional )-107(ar)21(gument. )-357(If)-356(this )-107(is)]TJ -7.887 -1.2 Td [(any )-18(value )-18(other )-18(than )-18(the )-18(index )-18(of )-18(the )-18(last )-18(ar)18(gument, )-18(then )-18(the )-18(wr)18(ong )-18(number )-18(of)]TJ 0 -1.2 TD [(ar)18(guments )-143(was )-143(speci\336ed )-143(\(we )-143(support )-143(only )-143(one )-143(nonoptional )-143(ar)17(gument\). )-393(Our)]TJ -0 -1.2 Td [(err)18(or )-224(pr)18(ocessing )-224(includes )-224(checks )-224(to )-224(ensur)]TJ 0.4744 Tc 19.279 0 Td (et)Tj 0 Tc 1.279 0 Td [(hat )-224(we )-224(can )-224(open )-224(the )-224(\336le )-224(to )-224(be)]TJ -20.558 -1.2 Td [(printed )-82(and )-82(that )-82(it )-82(is )-82(a )-82(r)19(egular )-82(\336le )-82(\(as )-82(opposed )-82(to )-82(a )-82(dir)18(ectory )-82(or )-82(other )-82(type )-82(of)]TJ T* (\336le\).)Tj -4 -1.72 Td [([42 )167(\320 )167(48])]TJ -0.092 Tc 4 0 Td [(We )-236(g)]TJ 0 Tc 2.245 0 Td [(et )-52(the )-52(name )-52(of )-52(the )-52(host )-52(wher)]TJ 0.3018 Tc 12.863 0 Td (et)Tj 0 Tc 1.107 0 Td [(he )-52(printer )-52(spooling )-52(daemon )-52(is )-52(r)8(unning )-52(by)]TJ -16.214 -1.2 Td [(calling )-76(the)]TJ /TT0 1 Tf 4.994 0 Td (get_printserver)Tj /T1_1 1 Tf 9.326 0 Td [(function )-76(fr)18(om)]TJ /TT0 1 Tf 6.498 0 Td (util.c)Tj /T1_1 1 Tf 0.5759 Tc (.T)Tj 0 Tc 5.039 0 Td [(hen )-76(we )-76(translate )-76(the)]TJ -25.856 -1.2 Td [(host )-389(name )-389(into )-389(a )-389(network )-389(addr)18(ess )-389(by )-389(calling)]TJ /TT0 1 Tf 22.889 0 Td (getaddrlist)Tj /T1_1 1 Tf 7.239 0 Td [(\(also )-389(fr)18(om)]TJ /TT0 1 Tf -30.128 -1.2 Td (util.c)Tj /T1_1 1 Tf (\).)Tj 0 -1.8 TD [(Note )-137(that )-137(we )-137(specify )-137(the )-137(service )-137(as )-137(\324)38(\324print.\325)]TJ 0.6368 Tc 19.658 0 Td (\325A)Tj 0.3868 Tc 1.693 0 Td (sp)Tj 0 Tc 1.412 0 Td [(art )-137(of )-137(installing )-137(the )-137(printer)]TJ -22.763 -1.2 Td [(spooling )-12(daemon )-12(on )-12(a )-12(system, )-12(we )-12(need )-12(to )-12(make )-12(sur)]TJ 0.2623 Tc 22.926 0 Td (et)Tj 0 Tc 1.067 0 Td (hat)Tj /TT0 1 Tf 1.67 0 Td (/etc/services)Tj /T1_1 1 Tf 8.062 0 Td (\(or)Tj -33.726 -1.2 Td [(the )-25(equivalent )-25(database\) )-25(has )-25(an )-25(entry )-25(for )-25(the )-25(printer )-25(service.)-525(When )-25(we )-25(select )-25(a)]TJ 0 -1.2 TD [(port )-189(number )-189(for )-189(the )-189(daemon, )-189(it )-189(would )-189(be )-189(a )-189(good )-189(idea )-189(to )-189(select )-189(one )-189(that )-189(is)]TJ T* [(privileged, )-118(to )-118(pr)18(event )-118(malicious )-118(users )-118(fr)18(om )-118(writing )-118(applications )-118(that )-118(pr)18(etend)]TJ T* [(to )-87(be )-87(a )-87(printer )-87(spooling )-87(daemon )-87(but )-87(instead )-87(steal )-87(copies )-87(of )-87(the )-87(\336les )-87(we )-87(try )-87(to)]TJ T* [(print. )-532(This)-532(means )-282(that )-282(the )-282(port )-282(number )-282(should )-282(be )-282(less )-282(than )-282(1,024 )-282(\(r)21(ecall)]TJ -0 -1.2 Td [(Section )-27(16.3.4\) )-27(and )-27(that )-27(our )-27(daemon )-27(will )-27(have )-27(to )-27(r)8(un )-27(with )-27(super)8(user )-27(privileges)]TJ T* [(to allow it to bind to a r)18(eserved port.)]TJ -4 -1.72 Td [([49 )167(\320 )167(52])]TJ -0.092 Tc 4 0 Td [(We )-371(t)]TJ 0 Tc 2.15 0 Td [(ry )-187(to )-187(connect )-187(to )-187(the )-187(daemon )-187(using )-187(one )-187(addr)18(ess )-187(at )-187(a )-187(time )-187(fr)18(om )-187(the )-187(list)]TJ -0.018 Tc -2.15 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turned )-98(by)]TJ /TT0 1 Tf 4.801 0 Td (getaddrinfo)Tj /T1_1 1 Tf 0.5978 Tc (.W)Tj 0.3478 Tc 8.356 0 Td (ew)Tj 0 Tc 1.661 0 Td [(ill )-98(try )-98(to )-98(send )-98(the )-98(\336le )-98(to )-98(the )-98(daemon )-98(using)]TJ -15.673 -1.2 Td [(the \336rst addr)18(ess to which we can connect.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47515 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (630)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 670.2598 Tm (#include )Tj 0 -1.902 TD (int socketpair\(int)Tj /T1_2 1 Tf 11.4 0 Td (domain)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.8 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (type)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.522 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td [(pr)18(otocol)]TJ /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 5.021 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (sockfd)Tj /TT0 1 Tf ([2]\);)Tj /T1_1 1 Tf -3.292 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6315.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 617.9858 Tm [(Although )-185(the )-185(interface )-185(is )-185(suf)18(\336ciently )-185(general )-185(to )-185(allow)]TJ /TT0 1 Tf 25.206 0 Td (socketpair)Tj /T1_1 1 Tf 6.435 0 Td [(to )-185(be )-185(used )-185(with)]TJ -31.641 -1.2 Td [(other )-28(domains, )-28(operating )-28(systems )-28(typically )-28(pr)18(ovide )-28(support )-28(only )-28(for )-28(the )-28(UNIX )-28(domain.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2850 5456.6 792 360 re S Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2904 5024.6 288 143.996 re S Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 293.6471 507.8086 Tm (socket)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 3300 5024.6 288 143.996 re S Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 333.22 507.7781 Tm (socket)Tj ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 304.8 545.66 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 3048 5456.6001 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 304.8 516.86 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 3048 5168.6001 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3048.25 5384.25 cm 0 0 m 0 -144 l S Q Q q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 344.4 545.66 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3444 5456.6001 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 344.4 516.86 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3444 5168.6001 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3444.25 5384.25 cm 0 0 m 0 -144 l S Q Q BT /TT0 1 Tf 7.9962 0 0 7.9962 292.6595 548.6366 Tm [(fd[0])-1950(fd[1])]TJ ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 304.8 502.46 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3048 5024.6001 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 344.4 502.46 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 3444 5024.6001 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3048 5017.3999 cm 0 0 m 0 -68.4 l 0 -114 33 -148.8 99 -172.8 c 165 -196.8 231 -196.8 297 -172.8 c 363 -148.8 396 -114 396 -68.4 c 396 0 l S Q Q BT /T1_1 1 Tf 7.9952 0 0 7.9952 302.6344 584.5492 Tm [(user pr)18(ocess)]TJ /T1_0 1 Tf -3.044 -15.93 Td (Figure 17.1)Tj /T1_1 1 Tf 0.25 Tc 5.695 0 Td (As)Tj 0 Tc 1.452 0 Td (ocket pair)Tj 0.2567 Tc 9.994 0 0 9.994 147.5118 430.8014 Tm (Ap)Tj 0 Tc 1.636 0 Td [(air )-7(of )-7(connected )-7(UNIX )-7(domain )-7(sockets )-7(acts )-7(like )-7(a )-7(full-duplex )-7(pipe: )-7(both )-7(ends )-7(ar)22(e)]TJ -3.436 -1.2 Td [(open )-180(for )-180(r)18(eading )-180(and )-180(writing )-180(\(see )-180(Figur)]TJ 0.4296 Tc 18.522 0 Td (e1)Tj 0 Tc 1.409 0 Td [(7.1\). )-430(W)92(e\325ll )-180(r)18(efer )-180(to )-180(these )-180(as )-180(\324)39(\324fd-pipes\325)]TJ 0.4296 Tc 17.49 0 Td (\325t)Tj 0 Tc 1.034 0 Td (o)Tj -38.454 -1.2 Td [(distinguish them fr)18(om normal, half-duplex pipes.)]TJ /TT2 1 Tf -3.6 -2.88 Td [(Example )195(\321)]TJ /TT3 1 Tf 5.28 0 Td (fd_pipe)Tj /TT2 1 Tf 4.478 0 Td (Function)Tj /T1_1 1 Tf -6.158 -2.16 Td (Figur)Tj 0.4913 Tc 2.383 0 Td (e1)Tj 0 Tc 1.47 0 Td [(7.2 )-241(shows )-241(the)]TJ /TT0 1 Tf 6.921 0 Td (fd_pipe)Tj /T1_1 1 Tf 4.691 0 Td [(function, )-241(which )-241(uses )-241(the)]TJ /TT0 1 Tf 11.973 0 Td (socketpair)Tj /T1_1 1 Tf 6.491 0 Td [(function )-241(to)]TJ -33.93 -1.2 Td [(cr)18(eate a pair of connected UNIX domain str)18(eam sockets.)]TJ ET q 0.09994 0 0 0.09994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3374.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9941 0 0 8.9941 129.5145 327.7426 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*R)Tj 0 Tc 1.8 0 Td (eturns a full-duplex pipe \(a UNIX domain socket\) with)Tj 0.6 Tc -1.8 -1.189 Td (*t)Tj 0 Tc 1.8 0 Td (he two file descriptors returned in fd[0] and fd[1].)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (int)Tj 0 -1.189 TD (fd_pipe\(int fd[2]\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (return\(socketpair\(AF_UNIX, SOCK_STREAM, 0, fd\)\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099934 0 0 0.099934 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2097.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9942 0 0 7.9942 253.6613 193.5986 Tm (Figure 17.2)Tj /T1_1 1 Tf 5.695 0 Td [(Cr)18(eating a full-duplex pipe)]TJ -14.475 -3.1 Td [(Some )-119(BSD)]TJ 4.712 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-119(systems )-119(use )-119(UNIX )-119(domain )-119(sockets )-119(to )-119(implement )-119(pipes.)-618(But )-119(when)]TJ /TT0 1 Tf 33.471 0 Td (pipe)Tj /T1_1 1 Tf 2.769 0 Td (is)Tj -41.285 -1.25 Td [(called, )-60(the )-60(write )-60(end )-60(of )-60(the )-60(\336rst )-60(descriptor )-60(and )-60(the )-60(r)18(ead )-60(end )-60(of )-60(the )-60(second )-60(descriptor )-60(ar)]TJ 0.3104 Tc 39.204 0 Td (eb)Tj 0 Tc 1.342 0 Td (oth)Tj -40.546 -1.25 Td [(closed. )-250(T)]TJ 0.25 Tc 4.066 0 Td (og)Tj 0 Tc 1.352 0 Td (et a full-duplex pipe, we must call)Tj /TT0 1 Tf 15.304 0 Td (socketpair)Tj /T1_1 1 Tf 6.25 0 Td [(dir)18(ectly)111(.)]TJ ET q 0.099928 0 0 0.099928 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1449.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47516 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (602)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 172.7896 670.2598 Tm (printf\("unspecified"\);)Tj 0 -1.189 TD (break;)Tj -2.4 -1.189 Td (default:)Tj 2.4 -1.189 Td (printf\("unknown"\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (void)Tj 0 -1.189 TD (print_type\(struct addrinfo *aip\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (printf\(" type "\);)Tj 0 -1.189 TD (switch \(aip->ai_socktype\) {)Tj T* (case SOCK_STREAM:)Tj 2.4 -1.189 Td (printf\("stream"\);)Tj T* (break;)Tj -2.4 -1.189 Td (case SOCK_DGRAM:)Tj 2.4 -1.189 Td (printf\("datagram"\);)Tj T* (break;)Tj -2.4 -1.189 Td (case SOCK_SEQPACKET:)Tj 2.4 -1.189 Td (printf\("seqpacket"\);)Tj T* (break;)Tj -2.4 -1.189 Td (case SOCK_RAW:)Tj 2.4 -1.189 Td (printf\("raw"\);)Tj T* (break;)Tj -2.4 -1.189 Td (default:)Tj 2.4 -1.189 Td (printf\("unknown \(%d\)", aip->ai_socktype\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (void)Tj 0 -1.189 TD (print_protocol\(struct addrinfo *aip\))Tj T* ({)Tj 2.4 -1.189 Td (printf\(" protocol "\);)Tj T* (switch \(aip->ai_protocol\) {)Tj T* (case 0:)Tj 2.4 -1.189 Td (printf\("default"\);)Tj 0 -1.189 TD (break;)Tj -2.4 -1.189 Td (case IPPROTO_TCP:)Tj 2.4 -1.189 Td (printf\("TCP"\);)Tj 0 -1.189 TD (break;)Tj -2.4 -1.189 Td (case IPPROTO_UDP:)Tj 2.4 -1.189 Td (printf\("UDP"\);)Tj T* (break;)Tj -2.4 -1.189 Td (case IPPROTO_RAW:)Tj 2.4 -1.189 Td (printf\("raw"\);)Tj 0 -1.189 TD (break;)Tj -2.4 -1.189 Td (default:)Tj 2.4 -1.189 Td (printf\("unknown \(%d\)", aip->ai_protocol\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47517 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.2)]TJ 35.358 0 Td [(Socket )-250(Descriptors)]TJ /T1_1 1 Tf 10.475 0 Td (591)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (TCP)Tj 2.205 0.04 Td (\()Tj -0.09 Tc 0.333 -0.04 Td (Tr)Tj 0 Tc 0.918 0 Td [(ansmission )-29(Contr)18(ol )-29(Pr)18(otocol)]TJ 12.562 0.04 Td (\))Tj 0.5291 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.392 0 Td [(he )-29(default )-29(pr)18(otocol )-29(for )-29(a)]TJ /TT0 1 Tf 11.051 0 Td (SOCK_DGRAM)Tj /T1_0 1 Tf 6.279 0 Td [(socket )-29(in)]TJ -35.073 -1.2 Td (the)Tj /TT0 1 Tf 1.811 0 Td (AF_INET)Tj /T1_0 1 Tf 4.624 0 Td [(communication )-174(domain )-174(is )-174(UDP)]TJ 14.901 0.04 Td (\()Tj 0.333 -0.04 Td [(User )-174(Datagram )-174(Pr)18(otocol)]TJ 11.038 0.04 Td (\))Tj 0.674 Tc 0.333 -0.04 Td (.F)Tj 0 Tc 1.48 0 Td (igur)Tj 0.424 Tc 1.827 0 Td (e1)Tj 0 Tc 1.403 0 Td (6.3)Tj -37.75 -1.2 Td [(lists the pr)18(otocols de\336ned for the Internet domain sockets.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2044.25 6250.25 cm 0 0 m 2403 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 222.4893 616.926 Tm [(Pr)18(otocol )]TJ 14.534 0 Td (Description)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2044.25 6130.25 cm 0 0 m 2403 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2044.25 6110.25 cm 0 0 m 2403 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 208.3985 602.8915 Tm (IPPROTO_IP)Tj /T1_0 1 Tf 8.7 0 Td [(IPv4 Internet Pr)18(otocol)]TJ /TT0 1 Tf -8.7 -1.25 Td (IPPROTO_IPV6)Tj /T1_0 1 Tf 8.7 0 Td [(IPv6 Internet Pr)18(otocol \(optional in POSIX.1\))]TJ /TT0 1 Tf -8.7 -1.25 Td (IPPROTO_ICMP)Tj /T1_0 1 Tf 8.7 0 Td [(Internet Contr)18(ol Message Pr)18(otocol)]TJ /TT0 1 Tf -8.7 -1.25 Td (IPPROTO_RAW)Tj /T1_0 1 Tf 8.7 0 Td [(Raw IP packets pr)18(otocol \(optional in POSIX.1\))]TJ /TT0 1 Tf -8.7 -1.25 Td (IPPROTO_TCP)Tj /T1_0 1 Tf -0.09 Tc 8.7 0 Td (Tr)Tj 0 Tc 0.918 0 Td [(ansmission Contr)18(ol Pr)18(otocol)]TJ /TT0 1 Tf -9.618 -1.25 Td (IPPROTO_UDP)Tj /T1_0 1 Tf 8.7 0 Td [(User Datagram Pr)18(otocol)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2044.25 5490.25 cm 0 0 m 2403 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2720.25 5490.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4447.25 5490.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2044.25 5490.25 cm 0 0 m 0 760 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 221.3149 530.8726 Tm (Figure 16.3)Tj /T1_0 1 Tf 5.695 0 Td [(Pr)18(otocols de\336ned for Internet domain sockets)]TJ -0.055 Tc 9.9976 0 0 9.9976 147.5648 506.8783 Tm (Wi)Tj 0 Tc 1.236 0 Td [(th )-269(a )-269(datagram )-269(\()]TJ /TT0 1 Tf 7.568 0 Td (SOCK_DGRAM)Tj /T1_0 1 Tf 0.5188 Tc (\)i)Tj 0 Tc 7.143 0 Td [(nterface, )-269(no )-269(logical )-269(connection )-269(needs )-269(to )-269(exist)]TJ -17.747 -1.2 Td [(between )-299(peers )-299(for )-299(them )-299(to )-299(communicate.)-799(All )-299(you )-299(need )-299(to )-299(do )-299(is )-299(send )-299(a )-299(message)]TJ 0 -1.2 TD [(addr)18(essed to the socket being used by the peer pr)18(ocess.)]TJ 0.8424 Tc 1.8 -1.2 Td (Ad)Tj 0 Tc 2.231 0 Td [(atagram, )-592(ther)18(efor)18(e, )-592(pr)18(ovides )-592(a )-592(connectionless )-592(service.)]TJ 0.8423 Tc 27.603 0 Td (Ab)Tj 0 Tc 2.173 0 Td [(yte )-592(str)18(eam)]TJ -33.808 -1.2 Td (\()Tj /TT0 1 Tf (SOCK_STREAM)Tj /T1_0 1 Tf [(\), )-79(in )-79(contrast, )-79(r)17(equir)18(es )-79(that, )-79(befor)]TJ 0.3295 Tc 21.691 0 Td (ey)Tj 0 Tc 1.364 0 Td [(ou )-79(can )-79(exchange )-79(data, )-79(you )-79(set )-79(up )-79(a)]TJ -23.055 -1.2 Td [(logical )-10(connection )-10(between )-10(your )-10(socket )-10(and )-10(the )-10(socket )-10(belonging )-10(to )-10(the )-10(peer )-10(with )-10(which)]TJ T* (you wish to communicate.)Tj 0.5398 Tc 1.8 -1.2 Td (Ad)Tj 0 Tc 1.929 0 Td [(atagram )-290(is )-290(a )-290(self-contained )-290(message.)-790(Sending )-290(a )-290(datagram )-290(is )-290(analogous )-290(to)]TJ -3.729 -1.2 Td [(mailing )-50(someone )-50(a )-50(letter)]TJ 0.5505 Tc 10.957 0 Td (.Y)Tj 0 Tc 1.376 0 Td [(ou )-50(can )-50(mail )-50(many )-50(letters, )-50(but )-50(you )-50(can\325t )-50(guarantee )-50(the )-50(or)13(der)]TJ -12.332 -1.2 Td [(of )-66(delivery)]TJ 0.3162 Tc 4.751 0 Td (,a)Tj 0 Tc 1.066 0 Td [(nd )-66(some )-66(might )-66(get )-66(lost )-66(along )-66(the )-66(way)]TJ 0.5662 Tc 16.965 0 Td (.E)Tj 0 Tc 1.427 0 Td [(ach )-66(letter )-66(contains )-66(the )-66(addr)18(ess )-66(of)]TJ -24.21 -1.2 Td [(the )-21(r)18(ecipient, )-21(making )-21(the )-21(letter )-21(independent )-21(fr)18(om )-21(all )-21(the )-21(others.)-521(Each )-21(letter )-21(can )-21(even )-21(go)]TJ T* [(to dif)18(fer)18(ent r)18(ecipients.)]TJ 1.8 -1.2 Td [(In )-76(contrast, )-76(using )-76(a )-76(connection-oriented )-76(pr)18(otocol )-76(for )-76(communicating )-76(with )-76(a )-76(peer )-76(is)]TJ -1.8 -1.2 Td [(like )-75(making )-75(a )-75(phone )-75(call.)-575(First, )-75(you )-75(need )-75(to )-75(establish )-75(a )-75(connection )-75(by )-75(placing )-75(a )-75(phone)]TJ T* [(call, )-32(but )-32(after )-32(the )-32(connection )-32(is )-32(in )-32(place, )-32(you )-32(can )-32(communicate )-32(bidir)17(ectionally )-32(with )-32(each)]TJ T* (other)Tj 0.6482 Tc 2.254 0 Td (.T)Tj 0 Tc 1.511 0 Td [(he )-148(connection )-148(is )-148(a )-148(peer)18(-to-peer )-148(communication )-148(channel )-148(over )-148(which )-148(you )-148(talk.)]TJ -0.092 Tc -3.765 -1.2 Td (Yo)Tj 0 Tc 1.121 0 Td [(ur )-136(wor)18(ds )-136(contain )-136(no )-136(addr)18(essing )-136(information, )-136(as )-136(a )-136(point-to-point )-136(virtual )-136(connection)]TJ -1.121 -1.2 Td [(exists )-10(between )-10(both )-10(ends )-10(of )-10(the )-10(call, )-10(and )-10(the )-10(connection )-10(itself )-10(implies )-10(a )-10(particular )-10(sour)19(ce)]TJ T* (and destination.)Tj 1.8 -1.2 Td (A)Tj /TT0 1 Tf 1.036 0 Td (SOCK_STREAM)Tj /T1_0 1 Tf 6.858 0 Td [(socket )-8(pr)18(ovides )-8(a )-8(byte-str)18(eam )-8(service; )-8(applications )-8(ar)]TJ 0.2583 Tc 23.556 0 Td (eu)Tj 0 Tc 1.34 0 Td (nawar)Tj 0.2583 Tc 2.793 0 Td (eo)Tj 0 Tc 1.283 0 Td (f)Tj -38.667 -1.2 Td [(message )-25(boundaries.)-525(This )-25(means )-25(that )-25(when )-25(we )-25(r)18(ead )-25(data )-25(fr)18(om )-25(a)]TJ /TT0 1 Tf 29.1 0 Td (SOCK_STREAM)Tj /T1_0 1 Tf 6.875 0 Td (socket,)Tj -35.975 -1.2 Td [(it )-33(might )-33(not )-33(r)18(eturn )-33(the )-33(same )-33(number )-33(of )-33(bytes )-33(written )-33(by )-33(the )-33(sender)]TJ 0.5336 Tc 29.883 0 Td (.W)Tj 0.2836 Tc 1.692 0 Td (ew)Tj 0 Tc 1.597 0 Td [(ill )-34(eventually)]TJ -33.171 -1.2 Td (get everything sent to us, but it might take several function calls.)Tj 1.8 -1.2 Td (A)Tj /TT0 1 Tf 1.063 0 Td (SOCK_SEQPACKET)Tj /T1_0 1 Tf 8.685 0 Td [(socket )-35(is )-35(just )-35(like )-35(a)]TJ /TT0 1 Tf 8.617 0 Td (SOCK_STREAM)Tj /T1_0 1 Tf 6.885 0 Td [(socket )-35(except )-35(that )-35(we )-35(get )-35(a)]TJ -27.049 -1.2 Td [(message-based )-55(service )-55(instead )-55(of )-55(a )-55(byte-str)18(eam )-55(service.)-555(This )-55(means )-55(that )-55(the )-55(amount )-55(of)]TJ T* [(data )-27(r)18(eceived )-27(fr)18(om )-27(a)]TJ /TT0 1 Tf 9.411 0 Td (SOCK_SEQPACKET)Tj /T1_0 1 Tf 8.678 0 Td [(socket )-27(is )-27(the )-27(same )-27(amount )-27(as )-27(was )-27(written.)-530(The)]TJ -18.088 -1.2 Td [(Str)18(eam )-159(Contr)18(ol )-159(T)90(ransmission )-159(Pr)19(otocol)]TJ 17.646 0.04 Td (\()Tj 0.333 -0.04 Td (SCTP)Tj 2.451 0.04 Td (\))Tj 0.742 -0.04 Td [(pr)18(ovides )-159(a )-159(sequential )-159(packet )-159(service )-159(in)]TJ -21.172 -1.2 Td (the Internet domain.)Tj 1.8 -1.2 Td (A)Tj /TT0 1 Tf 1.355 0 Td (SOCK_RAW)Tj /T1_0 1 Tf 5.377 0 Td [(socket )-327(pr)18(ovides )-327(a )-327(datagram )-327(interface )-327(dir)18(ectly )-327(to )-327(the )-327(underlying)]TJ -8.533 -1.2 Td [(network )-122(layer )-122(\(which )-122(means )-122(IP )-122(in )-122(the )-122(Internet )-122(domain\).)-625(Applications )-122(ar)]TJ 0.3724 Tc 33.101 0 Td (er)Tj 0 Tc 1.228 0 Td (esponsible)Tj -34.33 -1.2 Td [(for )-14(building )-14(their )-14(own )-14(pr)18(otocol )-14(headers )-14(when )-14(using )-14(this )-14(interface, )-14(because )-14(the )-14(transport)]TJ T* [(pr)18(otocols )-51(\(TCP )-51(and )-51(UDP)]TJ 0.3008 Tc 10.982 0 Td (,f)Tj 0 Tc 0.884 0 Td [(or )-51(example\) )-51(ar)]TJ 0.3008 Tc 6.502 0 Td (eb)Tj 0 Tc 1.333 0 Td [(ypassed. )-301(Super)8(user )-51(privileges )-51(ar)]TJ 0.3009 Tc 14.742 0 Td (er)Tj 0 Tc 1.157 0 Td [(equir)18(ed)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47518 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (606)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(The )-49(addr)18(ess )-49(we )-49(specify )-49(with)]TJ /TT0 1 Tf 13.069 0 Td (connect)Tj /T1_1 1 Tf 4.499 0 Td [(is )-49(the )-49(addr)18(ess )-49(of )-49(the )-49(server )-49(with )-49(which )-49(we )-49(wish)]TJ -17.568 -1.2 Td [(to )-195(communicate.)-696(If)]TJ /T1_2 1 Tf 9.359 0 Td (sockfd)Tj /T1_1 1 Tf 2.907 0 Td [(is )-195(not )-195(bound )-195(to )-195(an )-195(addr)17(ess,)]TJ /TT0 1 Tf 13.366 0 Td (connect)Tj /T1_1 1 Tf 4.645 0 Td [(will )-195(bind )-195(a )-195(default)]TJ -30.277 -1.2 Td [(addr)18(ess for the caller)74(.)]TJ 1.8 -1.2 Td [(When )-243(we )-243(try )-243(to )-243(connect )-243(to )-243(a )-243(server)]TJ 0.4935 Tc 16.997 0 Td (,t)Tj 0 Tc 1.069 0 Td [(he )-243(connect )-243(r)18(equest )-243(might )-243(fail )-243(for )-243(several)]TJ -0.018 Tc -19.867 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(asons. )-494(For)]TJ 0.4939 Tc 5.461 0 Td (ac)Tj 0 Tc 1.438 0 Td [(onnect )-244(r)18(equest )-244(to )-244(succeed, )-244(the )-244(machine )-244(to )-244(which )-244(we )-244(ar)]TJ 0.4938 Tc 26.201 0 Td (et)Tj 0 Tc 1.299 0 Td [(rying )-244(to)]TJ -35.255 -1.2 Td [(connect )-16(must )-16(be )-16(up )-16(and )-16(r)10(unning, )-16(the )-16(server )-16(must )-16(be )-16(bound )-16(to )-16(the )-16(addr)18(ess )-16(we )-16(ar)]TJ 0.2658 Tc 35.55 0 Td (et)Tj 0 Tc 1.071 0 Td (rying)Tj -36.62 -1.2 Td [(to )-93(contact, )-93(and )-93(ther)]TJ 0.3428 Tc 8.775 0 Td (em)Tj 0 Tc 1.705 0 Td [(ust )-93(be )-93(r)18(oom )-93(in )-93(the )-93(server)-74(\325s )-93(pending )-93(connect )-93(queue )-93(\(we\325ll )-93(learn)]TJ -10.48 -1.2 Td (mor)Tj 0.4451 Tc 1.806 0 Td (ea)Tj 0 Tc 1.424 0 Td [(bout )-195(this )-195(shortly\).)-695(Thus, )-195(applications )-195(must )-195(be )-195(able )-195(to )-195(handle)]TJ /TT0 1 Tf 28.933 0 Td (connect)Tj /T1_1 1 Tf 4.645 0 Td [(err)18(or)]TJ -0.018 Tc -36.808 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (turns that might be caused by transient conditions.)Tj /TT1 1 Tf -4.456 -2.64 Td (Example)Tj /T1_1 1 Tf 3.6 -2.16 Td (Figur)Tj 0.2639 Tc 2.383 0 Td (e1)Tj 0 Tc 1.243 0 Td [(6.10 )-14(shows )-14(one )-14(way )-14(to )-14(handle )-14(transient)]TJ /TT0 1 Tf 17.726 0 Td (connect)Tj /T1_1 1 Tf 4.464 0 Td [(err)18(ors. )-264(These)-264(err)18(ors )-14(ar)]TJ 0.2638 Tc 9.977 0 Td (el)Tj 0 Tc 1.034 0 Td (ikely)Tj -36.827 -1.2 Td [(with a server that is r)8(unning on a heavily loaded system.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5058.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 496.2394 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (#define MAXSLEEP 128)Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (connect_retry\(int sockfd, const struct sockaddr *addr, socklen_t alen\)\ )Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (int numsec;)Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*T)Tj 0 Tc 1.8 0 Td (ry to connect with exponential backoff.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (for \(numsec = 1; numsec <= MAXSLEEP; numsec <<= 1\) {)Tj 2.4 -1.189 Td (if \(connect\(sockfd, addr, alen\) == 0\) {)Tj 2.4 -1.189 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (onnection accepted.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (return\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*D)Tj 0 Tc 1.8 0 Td (elay before trying again.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(numsec <= MAXSLEEP/2\))Tj 2.4 -1.189 Td (sleep\(numsec\);)Tj -4.8 -1.189 Td (})Tj 0 -1.189 TD (return\(-1\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2047.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 266.436 188.704 Tm (Figure 16.10)Tj /T1_1 1 Tf 6.195 0 Td [(Connect with r)18(etry)]TJ 9.9982 0 0 9.9982 129.5769 164.7083 Tm [(This )-161(function )-161(shows )-161(what )-161(is )-161(known )-161(as )-161(an)]TJ /T1_2 1 Tf 19.781 0 Td [(exponential )-161(backoff)]TJ /T1_1 1 Tf 8.248 0 Td [(algorithm. )-411(If)-412(the )-161(call )-161(to)]TJ /TT0 1 Tf -28.029 -1.2 Td (connect)Tj /T1_1 1 Tf 4.471 0 Td [(fails, )-21(the )-21(pr)17(ocess )-21(goes )-21(to )-21(sleep )-21(for )-21(a )-21(short )-21(time )-21(and )-21(then )-21(tries )-21(again, )-21(incr)14(easing)]TJ -4.471 -1.2 Td [(the delay each time thr)18(ough the loop, up to a maximum delay of about 2 minutes.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47519 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 33.857 0 Td [(Chapter )-250(17)-750(Solutions)]TJ /T1_1 1 Tf 11.976 0 Td (941)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 160.2404 670.2598 Tm (void *)Tj 0 -1.189 TD (helper\(void *arg\))Tj T* ({)Tj 2.4 -1.189 Td (int )Tj 12 0 Td (n;)Tj -12 -1.189 Td [(struct threadinfo)-1800(*tip = arg;)]TJ 0 -2.14 TD (for\(;;\) {)Tj 2.4 -1.189 Td (memset\(&tip->m, 0, sizeof\(struct mymsg\)\);)Tj 0 -1.189 TD (if \(\(n = msgrcv\(tip->qid, &tip->m, MAXMSZ, 0,)Tj 1.2 -1.189 Td (MSG_NOERROR\)\) < 0\))Tj 1.2 -1.189 Td (err_sys\("msgrcv error"\);)Tj -2.4 -1.189 Td (tip->len = n;)Tj T* (pthread_mutex_lock\(&tip->mutex\);)Tj T* (if \(write\(tip->fd, "a", sizeof\(char\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("write error"\);)Tj -2.4 -1.189 Td (pthread_cond_wait\(&tip->ready, &tip->mutex\);)Tj T* (pthread_mutex_unlock\(&tip->mutex\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(\))Tj T* ({)Tj 2.4 -1.189 Td (char )Tj 12 0 Td (c;)Tj -12 -1.189 Td (int )Tj 12 0 Td [(i,)-600(n, err;)]TJ -12 -1.189 Td (int )Tj 12 0 Td (fd[2];)Tj -12 -1.189 Td (int )Tj 12 0 Td (qid[NQ];)Tj -12 -1.189 Td [(struct pollfd)-4200(pfd[NQ];)]TJ T* [(struct threadinfo)-1800(ti[NQ];)]TJ T* (pthread_t )Tj 12 0 Td (tid[NQ];)Tj -12 -2.14 Td (for \(i = 0; i < NQ; i++\) {)Tj 2.4 -1.189 Td (if \(\(qid[i] = msgget\(\(KEY+i\), IPC_CREAT|0666\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("msgget error"\);)Tj -2.4 -2.14 Td (printf\("queue ID %d is %d\\n", i, qid[i]\);)Tj 0 -2.14 TD (if \(socketpair\(AF_UNIX, SOCK_DGRAM, 0, fd\) < 0\))Tj 2.4 -1.189 Td (err_sys\("socketpair error"\);)Tj -2.4 -1.189 Td (pfd[i].fd = fd[0];)Tj 0 -1.189 TD (pfd[i].events = POLLIN;)Tj 0 -1.189 TD (ti[i].qid = qid[i];)Tj T* (ti[i].fd = fd[1];)Tj T* (if \(pthread_cond_init\(&ti[i].ready, NULL\) != 0\))Tj 2.4 -1.189 Td (err_sys\("pthread_cond_init error"\);)Tj -2.4 -1.189 Td (if \(pthread_mutex_init\(&ti[i].mutex, NULL\) != 0\))Tj 2.4 -1.189 Td (err_sys\("pthread_mutex_init error"\);)Tj -2.4 -1.189 Td (if \(\(err = pthread_create\(&tid[i], NULL, helper,)Tj 1.2 -1.189 Td (&ti[i]\)\) != 0\))Tj 1.2 -1.189 Td (err_exit\(err, "pthread_create error"\);)Tj -4.8 -1.189 Td (})Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47520 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (632)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm ({)Tj 2.4 -1.189 Td (int )Tj 12 0 Td [(i,)-600(n, err;)]TJ -12 -1.189 Td (int )Tj 12 0 Td (fd[2];)Tj -12 -1.189 Td (int )Tj 12 0 Td (qid[NQ];)Tj -12 -1.189 Td [(struct pollfd)-4200(pfd[NQ];)]TJ 0 -1.189 TD [(struct threadinfo)-1800(ti[NQ];)]TJ 0 -1.189 TD (pthread_t )Tj 12 0 Td (tid[NQ];)Tj -12 -1.189 Td (char )Tj 12 0 Td (buf[MAXMSZ];)Tj -12 -1.902 Td (for \(i = 0; i < NQ; i++\) {)Tj 2.4 -1.189 Td (if \(\(qid[i] = msgget\(\(KEY+i\), IPC_CREAT|0666\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("msgget error"\);)Tj -2.4 -1.902 Td (printf\("queue ID %d is %d\\n", i, qid[i]\);)Tj 0 -1.902 TD (if \(socketpair\(AF_UNIX, SOCK_DGRAM, 0, fd\) < 0\))Tj 2.4 -1.189 Td (err_sys\("socketpair error"\);)Tj -2.4 -1.189 Td (pfd[i].fd = fd[0];)Tj 0 -1.189 TD (pfd[i].events = POLLIN;)Tj 0 -1.189 TD (ti[i].qid = qid[i];)Tj 0 -1.189 TD (ti[i].fd = fd[1];)Tj 0 -1.189 TD (if \(\(err = pthread_create\(&tid[i], NULL, helper, &ti[i]\)\) != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "pthread_create error"\);)Tj -4.8 -1.189 Td (})Tj 0 -1.902 TD (for \(;;\) {)Tj 2.4 -1.189 Td (if \(poll\(pfd, NQ, -1\) < 0\))Tj 2.4 -1.189 Td (err_sys\("poll error"\);)Tj -2.4 -1.189 Td (for \(i = 0; i < NQ; i++\) {)Tj 2.4 -1.189 Td (if \(pfd[i].revents & POLLIN\) {)Tj 2.4 -1.189 Td (if \(\(n = read\(pfd[i].fd, buf, sizeof\(buf\)\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("read error"\);)Tj -2.4 -1.189 Td (buf[n] = 0;)Tj 0 -1.189 TD (printf\("queue id %d, message %s\\n", qid[i], buf\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2696.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 213.2544 253.5686 Tm (Figure 17.3)Tj /T1_1 1 Tf 5.695 0 Td (Poll for XSI messages using UNIX domain sockets)Tj 9.9988 0 0 9.9988 147.5825 229.5714 Tm [(Note )-81(that )-81(we )-81(use )-81(datagram )-81(\()]TJ /TT0 1 Tf 12.993 0 Td (SOCK_DGRAM)Tj /T1_1 1 Tf 0.3308 Tc (\)s)Tj 0 Tc 7.088 0 Td [(ockets )-81(instead )-81(of )-81(str)19(eam )-81(sockets.)-581(This)]TJ -21.881 -1.2 Td [(allows )-43(us )-43(to )-43(r)18(etain )-43(message )-43(boundaries )-43(so )-43(when )-43(we )-43(r)18(ead )-43(fr)18(om )-43(the )-43(socket, )-43(we )-43(r)18(ead )-43(only)]TJ 0 -1.2 TD (one message at a time.)Tj 1.8 -1.2 Td [(This )-122(technique )-122(allows )-122(us )-122(to )-122(use )-122(either)]TJ /TT0 1 Tf 17.705 0 Td (poll)Tj /T1_1 1 Tf 2.772 0 Td (or)Tj /TT0 1 Tf 1.313 0 Td (select)Tj /T1_1 1 Tf 3.972 0 Td [(\(indir)18(ectly\) )-122(with )-122(message)]TJ -27.563 -1.2 Td [(queues. )-361(As)-361(long )-111(as )-111(the )-111(costs )-111(of )-111(one )-111(thr)18(ead )-111(per )-111(queue )-111(and )-111(copying )-111(each )-111(message )-111(two)]TJ T* [(extra )-218(times )-218(\(once )-218(to )-218(write )-218(it )-218(to )-218(the )-218(socket )-218(and )-218(once )-218(to )-218(r)18(ead )-218(it )-218(fr)18(om )-218(the )-218(socket\) )-218(ar)15(e)]TJ T* (acceptable, this technique will make it easier to use XSI message queues\ .)Tj -0.092 Tc 1.8 -1.2 Td (We)Tj 0 Tc 1.387 0 Td [(ll )-111(use )-111(the )-111(pr)18(ogram )-111(shown )-111(in )-111(Figur)]TJ 0.3615 Tc 15.726 0 Td (e1)Tj 0 Tc 1.341 0 Td [(7.4 )-111(to )-111(send )-111(messages )-111(to )-111(our )-111(test )-111(pr)15(ogram)]TJ -20.253 -1.2 Td [(fr)18(om Figur)]TJ 0.25 Tc 4.772 0 Td (e1)Tj 0 Tc 1.229 0 Td (7.3.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47521 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (986)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (sigset_t)Tj /T1_1 1 Tf 5.217 0 Td [(data type,)-500(59, 336, 344, 347)]TJ 11.982 0.09 Td (\320)Tj 0.583 -0.09 Td (348,)Tj -15.082 -1.25 Td (360)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (361, 363, 366, 369, 374, 378, 454)Tj 13.583 0.09 Td (\320)Tj 0.583 -0.09 Td (456,)Tj -16.333 -1.25 Td (701, 813)Tj /TT0 1 Tf -2.7 -1.25 Td (SIGSTKFLT)Tj /T1_1 1 Tf 5.817 0 Td [(signal, )-250(317,)-250(320)]TJ /TT0 1 Tf -5.817 -1.25 Td (SIGSTOP)Tj /T1_1 1 Tf 4.617 0 Td [(signal, )-250(315,)-250(317, 320, 323, 346, 377)]TJ /TT0 1 Tf -4.617 -1.25 Td (SIGSUSP)Tj /T1_1 1 Tf 4.617 0 Td [(signal, )-250(689)]TJ /TT0 1 Tf -4.617 -1.25 Td (sigsuspend)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(331,)-250(340, 359)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (365, 374, 451)Tj -15.69 -1.25 Td [(de\336nition of,)-500(359)]TJ /TT0 1 Tf -1.35 -1.25 Td (SIGSYS)Tj /T1_1 1 Tf 4.017 0 Td [(signal, )-250(317,)-250(320)]TJ /TT0 1 Tf -4.017 -1.25 Td (SIGTERM)Tj /T1_1 1 Tf 4.617 0 Td [(signal, )-250(315,)-250(317, 321, 325, 476)]TJ 12.977 0.09 Td (\320)Tj 0.583 -0.09 Td (479, 709,)Tj -15.477 -1.25 Td (732)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (733, 742, 815, 830, 944)Tj /TT0 1 Tf -4.866 -1.25 Td (SIGTHAW)Tj /T1_1 1 Tf 4.617 0 Td [(signal, )-250(317,)-250(321)]TJ /TT0 1 Tf -4.617 -1.25 Td (SIGTHR)Tj /T1_1 1 Tf 4.017 0 Td [(signal, )-250(319)]TJ /TT0 1 Tf -4.017 -1.25 Td (sigtimedwait)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(451)]TJ /TT0 1 Tf -7.617 -1.25 Td (SIGTRAP)Tj /T1_1 1 Tf 4.617 0 Td [(signal, )-250(317,)-250(321, 351, 353)]TJ /TT0 1 Tf -4.617 -1.25 Td (SIGTSTP)Tj /T1_1 1 Tf 4.617 0 Td [(signal, )-250(300,)-250(308, 317, 320)]TJ 10.977 0.09 Td (\320)Tj 0.583 -0.09 Td (321, 377)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (379,)Tj -17.644 -1.25 Td (680, 682, 701, 735)Tj /TT0 1 Tf -2.7 -1.25 Td (SIGTTIN)Tj /T1_1 1 Tf 4.617 0 Td [(signal, )-250(300)]TJ 4.977 0.09 Td (\320)Tj 0.583 -0.09 Td (301, 304, 309, 317, 321, 377,)Tj -7.477 -1.25 Td (379)Tj /TT0 1 Tf -2.7 -1.25 Td (SIGTTOU)Tj /T1_1 1 Tf 4.617 0 Td [(signal, )-250(301)]TJ 4.977 0.09 Td (\320)Tj 0.583 -0.09 Td (302, 317, 321, 377, 379, 691)Tj /TT0 1 Tf -10.177 -1.25 Td (SIG_UNBLOCK)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(346,)-250(349, 378, 454)]TJ /TT0 1 Tf -7.017 -1.25 Td (SIGURG)Tj /T1_1 1 Tf 4.017 0 Td [(signal, )-250(83,)-250(314, 317, 319, 322, 510)]TJ 14.477 0.09 Td (\320)Tj 0.583 -0.09 Td [(51)55(1, 626)]TJ /TT0 1 Tf -19.077 -1.25 Td (SIGUSR1)Tj /T1_1 1 Tf 4.617 0 Td [(signal, )-250(317,)-250(322, 324, 347, 356)]TJ 12.977 0.09 Td (\320)Tj 0.583 -0.09 Td (358,)Tj -15.477 -1.25 Td (360)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (361, 363)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (364, 501)Tj /TT0 1 Tf -9.033 -1.25 Td (SIGUSR2)Tj /T1_1 1 Tf 4.617 0 Td [(signal, )-250(317,)-250(322, 324, 363)]TJ 10.977 0.09 Td (\320)Tj 0.583 -0.09 Td (364)Tj /TT0 1 Tf -16.177 -1.25 Td (sigval)Tj /T1_1 1 Tf 4.017 0 Td [(str)8(uctur)18(e, )-250(352)]TJ /TT0 1 Tf -4.017 -1.25 Td (SIGVTALRM)Tj /T1_1 1 Tf 5.817 0 Td [(signal, )-250(317,)-250(322)]TJ /TT0 1 Tf -5.817 -1.25 Td (sigwait)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(451,)-250(454)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (455, 457, 475, 477, 830)Tj -11.89 -1.25 Td [(de\336nition of,)-500(454)]TJ /TT0 1 Tf -1.35 -1.25 Td (sigwaitinfo)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(451)]TJ /TT0 1 Tf -7.017 -1.25 Td (SIGWAITING)Tj /T1_1 1 Tf 6.417 0 Td [(signal, )-250(317,)-250(322)]TJ /TT0 1 Tf -6.417 -1.25 Td (SIGWINCH)Tj /T1_1 1 Tf 5.217 0 Td [(signal, )-250(31)55(1, 317, 322, 710)]TJ 10.922 0.09 Td (\320)Tj 0.583 -0.09 Td (712, 718)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (719,)Tj -18.189 -1.25 Td (741)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (742)Tj /TT0 1 Tf -4.866 -1.25 Td (SIGXCPU)Tj /T1_1 1 Tf 4.617 0 Td [(signal, )-250(221,)-250(317, 322)]TJ /TT0 1 Tf -4.617 -1.25 Td (SIGXFSZ)Tj /T1_1 1 Tf 4.617 0 Td [(signal, )-250(221,)-250(317, 322, 382, 925)]TJ /TT0 1 Tf -4.617 -1.25 Td (SIGXRES)Tj /T1_1 1 Tf 4.617 0 Td [(signal, )-250(317,)-250(322)]TJ -4.617 -1.25 Td (Silicon Graphics, Inc.,)Tj /T1_2 1 Tf 10.083 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td (SGI)Tj /TT0 1 Tf -11.5 -1.25 Td (SI_MESGQ)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(353)]TJ -5.217 -1.25 Td (Singh, A.,)Tj -0.055 Tc 4.814 0 Td (11)Tj 0 Tc 0.945 0 Td [(2, 1)55(16, 952)]TJ -5.759 -1.25 Td (Single UNIX Speci\336cation,)Tj /T1_2 1 Tf 12.221 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td (SUS)Tj -0.111 Tc -12.288 -1.25 Td (Ve)Tj 0 Tc 1.09 0 Td (rsion 3,)Tj /T1_2 1 Tf 3.738 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td (SUSv3)Tj -0.111 Tc -6.245 -1.25 Td (Ve)Tj 0 Tc 1.09 0 Td (rsion 4,)Tj /T1_2 1 Tf 3.738 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td (SUSv4)Tj -7.595 -1.25 Td [(single-instance daemons,)-500(473)]TJ 13.192 0.09 Td (\320)Tj 0.583 -0.09 Td (474)Tj /TT0 1 Tf -13.775 -1.25 Td (S_INPUT)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(510)]TJ /TT0 1 Tf -4.617 -1.25 Td (SIOCSPGRP)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(627)]TJ /TT0 1 Tf -5.817 -1.25 Td (SI_QUEUE)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -5.217 -1.25 Td (S_IRGRP)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(99,)-250(104, 107, 140, 149, 473, 896)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_IROTH)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(99,)-250(104, 107, 140, 149, 473, 896)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_IRUSR)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(99,)-250(104, 107, 140, 149, 169, 473,)]TJ -1.917 -1.25 Td (818, 896)Tj /TT0 1 Tf -2.7 -1.25 Td (S_IRWXG)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(107,)-250(639)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_IRWXO)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(107,)-250(639)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_IRWXU)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(107,)-250(584, 639)]TJ /TT0 1 Tf 21.383 65 Td (S_ISBLK)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(96)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (97, 139)Tj /TT0 1 Tf -10.74 -1.25 Td (S_ISCHR)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(96)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (97, 139, 698)Tj /TT0 1 Tf -10.74 -1.25 Td (S_ISDIR)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(96)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (97, 133, 698)Tj /TT0 1 Tf -10.74 -1.25 Td (S_ISFIFO)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(96)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (97, 535, 552)Tj /TT0 1 Tf -11.34 -1.25 Td (S_ISGID)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(99,)-250(107, 140, 498)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_ISLNK)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(96)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (97)Tj /TT0 1 Tf -10.74 -1.25 Td (S_ISREG)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(96,)-250(808)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_ISSOCK)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(96)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (97, 639)Tj /TT0 1 Tf -11.34 -1.25 Td (S_ISUID)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(99,)-250(107, 140)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_ISVTX)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(107)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (109, 140)Tj /TT0 1 Tf -11.263 -1.25 Td (SI_TIMER)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -5.217 -1.25 Td (SI_USER)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_IWGRP)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(99,)-250(104, 107, 140, 149)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_IWOTH)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(99,)-250(104, 107, 140, 149)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_IWUSR)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(99,)-250(104, 107, 140, 149, 169, 473,)]TJ -1.917 -1.25 Td (818, 896)Tj /TT0 1 Tf -2.7 -1.25 Td (S_IXGRP)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(99,)-250(107, 140, 498, 896)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_IXOTH)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(99,)-250(107, 140, 896)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_IXUSR)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(99,)-250(107, 140, 169, 896)]TJ -4.617 -1.25 Td (size, \336le,)Tj -0.055 Tc 4.319 0 Td (111)Tj 0 Tc 1.473 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (2)Tj /TT0 1 Tf -7.321 -1.25 Td (size)Tj /T1_1 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(206)]TJ 6.191 0.09 Td (\320)Tj 0.583 -0.09 Td (207, 226)Tj /TT0 1 Tf -9.591 -1.25 Td (sizeof)Tj /T1_1 1 Tf 4.017 0 Td (operator)Tj 0.5 Tc 3.714 0 Td (,2)Tj 0 Tc 1.25 0 Td (31)Tj /TT0 1 Tf -8.981 -1.25 Td (size_t)Tj /T1_1 1 Tf 4.017 0 Td [(data type,)-500(59)]TJ 5.982 0.09 Td (\320)Tj 0.583 -0.09 Td (60, 71, 507, 772, 906)Tj /TT0 1 Tf 0.1666 Tc -10.582 -1.25 Td (__)Tj 0 Tc 1.367 0 Td (SLBF)Tj /T1_1 1 Tf 2.817 0 Td [(constant, )-250(166)]TJ /TT0 1 Tf -4.183 -1.25 Td (sleep)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(230,)-250(234, 243, 246, 272, 274, 308,)]TJ -0.717 -1.25 Td (331, 334, 339)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (342, 348, 372)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (375, 381)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (382,)Tj -16.5 -1.25 Td (387, 391)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (392, 439, 451, 460, 504, 532,)Tj -4.166 -1.25 Td (606)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (607, 923, 925, 928, 931, 936)Tj -3.517 -1.25 Td [(de\336nition of,)-500(373)]TJ 7.775 0.09 Td (\320)Tj 0.583 -0.09 Td (374, 929)Tj /TT0 1 Tf -9.709 -1.25 Td (sleep)Tj /T1_1 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(372)]TJ /TT0 1 Tf -3.417 -1.25 Td (sleep2)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(924)]TJ /TT0 1 Tf -4.017 -1.25 Td (sleep_us)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(532,)-250(896)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(933)]TJ 7.775 0.09 Td (\320)Tj 0.583 -0.09 Td (934)Tj -9.709 -1.25 Td [(SMF \(Service Management Facility\),)-500(293)]TJ /TT0 1 Tf 0 -1.25 TD (S_MSG)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(510)]TJ /TT0 1 Tf 0.1666 Tc -3.417 -1.25 Td (__)Tj 0 Tc 1.367 0 Td (SNBF)Tj /T1_1 1 Tf 2.817 0 Td [(constant, )-250(165)]TJ -4.183 -1.25 Td [(Snow Leopar)18(d, )-250(xxi)]TJ /TT0 1 Tf T* (snprintf)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(159,)-250(901, 904)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(159)]TJ -1.35 -1.25 Td (Snyder)Tj 0.25 Tc 3.074 0 Td (,G)Tj 0 Tc 1.263 0 Td [(., )-250(951)]TJ /TT0 1 Tf -4.337 -1.25 Td (sockaddr)Tj /T1_1 1 Tf 5.217 0 Td [(str)8(uctur)18(e, )-250(595)]TJ 6.302 0.09 Td (\320)Tj 0.583 -0.09 Td (597, 605)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (607, 609, 622,)Tj -13.569 -1.25 Td (625, 635, 637, 639, 641, 800)Tj /TT0 1 Tf -2.7 -1.25 Td (sockaddr_in)Tj /T1_1 1 Tf 7.017 0 Td [(str)8(uctur)18(e, )-250(595)]TJ 6.302 0.09 Td (\320)Tj 0.583 -0.09 Td (596, 603)Tj /TT0 1 Tf -13.902 -1.25 Td (sockaddr_in6)Tj /T1_1 1 Tf 7.617 0 Td [(str)8(uctur)18(e, )-250(595)]TJ 6.302 0.09 Td (\320)Tj 0.583 -0.09 Td (596)Tj /TT0 1 Tf -14.502 -1.25 Td (sockaddr_un)Tj /T1_1 1 Tf 7.017 0 Td [(str)8(uctur)18(e, )-250(634)]TJ 6.302 0.09 Td (\320)Tj 0.583 -0.09 Td (638, 640)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (642)Tj /TT0 1 Tf -18.069 -1.25 Td (sockatmark)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(331,)-250(626)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(626)]TJ /TT0 1 Tf -1.35 -1.25 Td (SOCK_DGRAM)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(590)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (591, 602, 608, 612,)Tj -10.363 -1.25 Td (621, 623, 632, 941)Tj -2.7 -1.25 Td (socket)Tj 1.35 -1.25 Td [(addr)18(essing, )-250(593)]TJ 7.188 0.09 Td (\320)Tj 0.583 -0.09 Td (605)Tj -7.772 -1.25 Td [(descriptors, )-250(590)]TJ 7.269 0.09 Td (\320)Tj 0.583 -0.09 Td (593)Tj -7.852 -1.25 Td [(I/O, asynchr)18(onous, )-250(627)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47522 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(5.12)]TJ 33.142 0 Td [(Implementation )-250(Details)]TJ /T1_1 1 Tf 12.691 0 Td (165)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (if \(\(fp = fopen\("/etc/passwd", "r"\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("fopen error"\);)Tj -2.4 -1.189 Td (if \(getc\(fp\) == EOF\))Tj 2.4 -1.189 Td (err_sys\("getc error"\);)Tj -2.4 -1.189 Td (pr_stdio\("/etc/passwd", fp\);)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (void)Tj 0 -1.189 TD (pr_stdio\(const char *name, FILE *fp\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("stream = %s, ", name\);)Tj T* (if \(is_unbuffered\(fp\)\))Tj 2.4 -1.189 Td (printf\("unbuffered"\);)Tj -2.4 -1.189 Td (else if \(is_linebuffered\(fp\)\))Tj 2.4 -1.189 Td (printf\("line buffered"\);)Tj -2.4 -1.189 Td (else /* if neither of above */)Tj 2.4 -1.189 Td (printf\("fully buffered"\);)Tj -2.4 -1.189 Td (printf\(", buffer size = %d\\n", buffer_size\(fp\)\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*T)Tj 0 Tc 1.8 0 Td (he following is nonportable.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -2.021 Td (#if defined\(_IO_UNBUFFERED\))Tj T* (int)Tj 0 -1.189 TD (is_unbuffered\(FILE *fp\))Tj T* ({)Tj 2.4 -1.189 Td (return\(fp->_flags & _IO_UNBUFFERED\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (is_linebuffered\(FILE *fp\))Tj T* ({)Tj 2.4 -1.189 Td (return\(fp->_flags & _IO_LINE_BUF\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (buffer_size\(FILE *fp\))Tj T* ({)Tj 2.4 -1.189 Td (return\(fp->_IO_buf_end - fp->_IO_buf_base\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (#elif defined\(__SNBF\))Tj T* (int)Tj 0 -1.189 TD (is_unbuffered\(FILE *fp\))Tj T* ({)Tj 2.4 -1.189 Td (return\(fp->_flags & __SNBF\);)Tj -2.4 -1.189 Td (})Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47523 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (374)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm (sleep\(unsigned int seconds\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(struct sigaction)-2400(newact, oldact;)]TJ T* (sigset_t )Tj 12 0 Td [(newmask,)-600(oldmask, suspmask;)]TJ -12 -1.189 Td [(unsigned int)-4800(unslept;)]TJ 0 -1.783 TD (/* set our handler, save previous information */)Tj 0 -1.189 TD (newact.sa_handler = sig_alrm;)Tj T* (sigemptyset\(&newact.sa_mask\);)Tj T* (newact.sa_flags = 0;)Tj 0 -1.189 TD (sigaction\(SIGALRM, &newact, &oldact\);)Tj 0 -1.783 TD (/* block SIGALRM and save current signal mask */)Tj 0 -1.189 TD (sigemptyset\(&newmask\);)Tj T* (sigaddset\(&newmask, SIGALRM\);)Tj 0 -1.189 TD (sigprocmask\(SIG_BLOCK, &newmask, &oldmask\);)Tj 0 -1.783 TD (alarm\(seconds\);)Tj 0 -1.189 TD (suspmask = oldmask;)Tj 0 -1.783 TD (/* make sure SIGALRM isn\325t blocked */)Tj 0 -1.189 TD (sigdelset\(&suspmask, SIGALRM\);)Tj 0 -1.783 TD (/* wait for any signal to be caught */)Tj 0 -1.189 TD (sigsuspend\(&suspmask\);)Tj 0 -1.783 TD (/* some signal has been caught, SIGALRM is now blocked */)Tj 0 -1.783 TD (unslept = alarm\(0\);)Tj 0 -1.783 TD (/* reset previous action */)Tj 0 -1.189 TD (sigaction\(SIGALRM, &oldact, NULL\);)Tj 0 -1.783 TD (/* reset signal mask, which unblocks SIGALRM */)Tj 0 -1.189 TD (sigprocmask\(SIG_SETMASK, &oldmask, NULL\);)Tj T* (return\(unslept\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3284.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 238.8273 312.4115 Tm (Figure 10.29)Tj /T1_1 1 Tf 6.195 0 Td (Reliable implementation of)Tj /TT0 1 Tf 12.241 0 Td (sleep)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5847 288.4144 Tm [(It )-347(takes )-347(mor)]TJ 0.5967 Tc 5.947 0 Td (ec)Tj 0 Tc 1.52 0 Td [(ode )-347(to )-347(write )-347(this )-347(r)18(eliable )-347(implementation )-347(than )-347(what )-347(is )-347(shown )-347(in)]TJ -7.467 -1.2 Td (Figur)Tj 0.3295 Tc 2.383 0 Td (e1)Tj 0 Tc 1.309 0 Td [(0.7. )-329(W)]TJ 0.3295 Tc 2.987 0 Td (ed)Tj 0 Tc 1.419 0 Td [(on\325t )-79(use )-79(any )-79(form )-79(of )-79(nonlocal )-79(branching )-79(\(as )-79(we )-79(did )-79(in )-79(Figur)]TJ 0.3294 Tc 27.141 0 Td (e1)Tj 0 Tc 1.308 0 Td [(0.8 )-79(to)]TJ -36.548 -1.2 Td [(avoid )-190(the )-190(race )-190(condition )-190(between)]TJ /TT0 1 Tf 15.871 0 Td (alarm)Tj /T1_1 1 Tf 3.441 0 Td (and)Tj /TT0 1 Tf 2.134 0 Td (pause)Tj /T1_1 1 Tf [(\), )-190(so )-190(ther)17(e)-440(is)-440(no)-440(e)]TJ -0.018 Tc 11.321 0 Td (ff)Tj 0 Tc 0.648 0 Td [(ect )-190(on )-190(other)]TJ -33.414 -1.2 Td (signal handlers that may be executing when the)Tj /TT0 1 Tf 21.353 0 Td (SIGALRM)Tj /T1_1 1 Tf 4.45 0 Td (is handled.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2524.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 147.5734 223.6087 Tm (The)Tj /TT0 1 Tf 2.478 0 Td (nanosleep)Tj /T1_1 1 Tf 6.204 0 Td [(function )-554(is )-554(similar )-554(to )-554(the)]TJ /TT0 1 Tf 13.775 0 Td (sleep)Tj /T1_1 1 Tf 3.804 0 Td [(function, )-554(but )-554(pr)19(ovides)]TJ -28.06 -1.2 Td (nanosecond)Tj 5.296 0.09 Td (-)Tj 0.333 -0.09 Td [(level granularity)111(.)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.5738 194.9139 Tm (#include )Tj 0 -1.783 TD (int nanosleep\(const struct timespec *)Tj /T1_2 1 Tf -0.018 Tc (re)Tj 0 Tc 22.96 0 Td (qtp)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.096 0 Td (truct timespec *)Tj /T1_2 1 Tf -0.018 Tc (re)Tj 0 Tc 10.36 0 Td (mtp)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -19.456 -1.783 Td [(Returns: 0 if slept for r)18(equested time or)]TJ /TT1 1 Tf 17.504 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1583.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9976 0 0 9.9976 129.5689 144.8142 Tm [(This )-13(function )-13(suspends )-13(the )-13(calling )-13(pr)19(ocess )-13(until )-13(either )-13(the )-13(r)18(equested )-13(time )-13(has )-13(elapsed )-13(or)]TJ 0 -1.2 TD [(the )-10(function )-10(is )-10(interr)8(upted )-10(by )-10(a )-10(signal.)-509(The)]TJ /T1_2 1 Tf -0.018 Tc 19.395 0 Td (re)Tj 0 Tc 0.76 0 Td (qtp)Tj /T1_1 1 Tf 1.556 0 Td [(parameter )-10(speci\336es )-10(the )-10(amount )-10(of )-10(time)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47524 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (460)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (int err;)Tj 0 -1.902 TD (printf\("parent unlocking locks...\\n"\);)Tj 0 -1.189 TD (if \(\(err = pthread_mutex_unlock\(&lock1\)\) != 0\))Tj 2.4 -1.189 Td (err_cont\(err, "can\325t unlock lock1 in parent handler"\);)Tj -2.4 -1.189 Td (if \(\(err = pthread_mutex_unlock\(&lock2\)\) != 0\))Tj 2.4 -1.189 Td (err_cont\(err, "can\325t unlock lock2 in parent handler"\);)Tj -4.8 -1.189 Td (})Tj 0 -1.902 TD (void)Tj 0 -1.189 TD (child\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (int err;)Tj 0 -1.902 TD (printf\("child unlocking locks...\\n"\);)Tj 0 -1.189 TD (if \(\(err = pthread_mutex_unlock\(&lock1\)\) != 0\))Tj 2.4 -1.189 Td (err_cont\(err, "can\325t unlock lock1 in child handler"\);)Tj -2.4 -1.189 Td (if \(\(err = pthread_mutex_unlock\(&lock2\)\) != 0\))Tj 2.4 -1.189 Td (err_cont\(err, "can\325t unlock lock2 in child handler"\);)Tj -4.8 -1.189 Td (})Tj 0 -1.902 TD (void *)Tj 0 -1.189 TD (thr_fn\(void *arg\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("thread started...\\n"\);)Tj T* (pause\(\);)Tj T* (return\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-4800(err;)]TJ 0 -1.189 TD [(pid_t )-3600(pid;)]TJ 0 -1.189 TD [(pthread_t )-1200(tid;)]TJ 0 -1.902 TD (if \(\(err = pthread_atfork\(prepare, parent, child\)\) != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t install fork handlers"\);)Tj -2.4 -1.189 Td (if \(\(err = pthread_create\(&tid, NULL, thr_fn, 0\)\) != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t create thread"\);)Tj -2.4 -1.902 Td (sleep\(2\);)Tj 0 -1.189 TD (printf\("parent about to fork...\\n"\);)Tj 0 -1.902 TD (if \(\(pid = fork\(\)\) < 0\))Tj 2.4 -1.189 Td (err_quit\("fork failed"\);)Tj -2.4 -1.189 Td [(else if \(pid == 0\))-1200(/* child */)]TJ 2.4 -1.189 Td (printf\("child returned from fork\\n"\);)Tj -2.4 -1.189 Td [(else )-4200(/*)-600(parent */)]TJ 2.4 -1.189 Td (printf\("parent returned from fork\\n"\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1540.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 249.974 138.0224 Tm (Figure 12.17)Tj /TT0 1 Tf 6.25 0 Td (pthread_atfork)Tj /T1_1 1 Tf 8.65 0 Td (example)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47525 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.5 )]TJ 34.775 0 Td [(Thr)18(ead )-250(T)92(ermination)]TJ /T1_1 1 Tf 11.058 0 Td (391)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(The )-296(pr)18(ogram )-296(in )-296(Figur)]TJ 0.5456 Tc 10.425 0 Td (e1)Tj 0 Tc 1.47 0 Td [(1.4 )-296(shows )-296(the )-296(pr)18(oblem )-296(with )-296(using )-296(an )-296(automatic )-296(variable)]TJ -11.894 -1.2 Td [(\(allocated on the stack\) as the ar)18(gument to)]TJ /TT1 1 Tf 18.908 0 Td (pthread_exit)Tj /T1_0 1 Tf (.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6258.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 616.225 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (struct foo {)Tj 2.4 -1.189 Td (int a, b, c, d;)Tj -2.4 -1.189 Td (};)Tj T* (void)Tj 0 -1.189 TD (printfoo\(const char *s, const struct foo *fp\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("%s", s\);)Tj T* [(printf\(" )-600(structure)-600(at 0x%lx\\n", \(unsigned long\)fp\);)]TJ T* [(printf\(" )-600(foo.a)]TJ 0.6 Tc 9.6 0 Td (=%)Tj 0 Tc 1.8 0 Td (d\\n", fp->a\);)Tj -11.4 -1.189 Td [(printf\(" )-600(foo.b)]TJ 0.6 Tc 9.6 0 Td (=%)Tj 0 Tc 1.8 0 Td (d\\n", fp->b\);)Tj -11.4 -1.189 Td [(printf\(" )-600(foo.c)]TJ 0.6 Tc 9.6 0 Td (=%)Tj 0 Tc 1.8 0 Td (d\\n", fp->c\);)Tj -11.4 -1.189 Td [(printf\(" )-600(foo.d)]TJ 0.6 Tc 9.6 0 Td (=%)Tj 0 Tc 1.8 0 Td (d\\n", fp->d\);)Tj -13.8 -1.189 Td (})Tj 0 -1.783 TD (void *)Tj 0 -1.189 TD (thr_fn1\(void *arg\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(struct foo)-1200(foo = {1, 2, 3, 4};)]TJ 0 -1.783 TD (printfoo\("thread 1:\\n", &foo\);)Tj 0 -1.189 TD (pthread_exit\(\(void *\)&foo\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (void *)Tj 0 -1.189 TD (thr_fn2\(void *arg\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (printf\("thread 2: ID is %lu\\n", \(unsigned long\)pthread_self\(\)\);)Tj 0 -1.189 TD (pthread_exit\(\(void *\)0\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-4800(err;)]TJ 0 -1.189 TD [(pthread_t )-1200(tid1,)-600(tid2;)]TJ 0 -1.189 TD [(struct foo)-1200(*fp;)]TJ 0 -1.783 TD (err = pthread_create\(&tid1, NULL, thr_fn1, NULL\);)Tj 0 -1.189 TD (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t create thread 1"\);)Tj -2.4 -1.189 Td (err = pthread_join\(tid1, \(void *\)&fp\);)Tj T* (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t join with thread 1"\);)Tj -2.4 -1.189 Td (sleep\(1\);)Tj T* (printf\("parent starting second thread\\n"\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47526 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.4 )]TJ 36.361 0 Td [(Thr)18(ead )-250(Cr)18(eation)]TJ /T1_1 1 Tf 9.472 0 Td (387)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (Figur)Tj 0.3199 Tc 2.383 0 Td (e1)Tj 0 Tc 1.244 0 Td [(1.2 )-70(cr)18(eates )-70(one )-70(thr)18(ead )-70(and )-70(prints )-70(the )-70(pr)18(ocess )-70(and )-70(thr)19(ead )-70(IDs )-70(of )-70(the )-70(new )-70(thr)18(ead)]TJ -3.627 -1.2 Td [(and the initial thr)18(ead.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6498.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 640.2222 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD (pthread_t ntid;)Tj T* (void)Tj 0 -1.189 TD (printids\(const char *s\))Tj T* ({)Tj 2.4 -1.189 Td [(pid_t )-3600(pid;)]TJ T* [(pthread_t )-1200(tid;)]TJ 0 -2.14 TD (pid = getpid\(\);)Tj 0 -1.189 TD (tid = pthread_self\(\);)Tj 0 -1.189 TD (printf\("%s pid %lu tid %lu \(0x%lx\)\\n", s, \(unsigned long\)pid,)Tj 1.2 -1.189 Td (\(unsigned long\)tid, \(unsigned long\)tid\);)Tj -3.6 -1.189 Td (})Tj 0 -2.14 TD (void *)Tj 0 -1.189 TD (thr_fn\(void *arg\))Tj T* ({)Tj 2.4 -1.189 Td (printids\("new thread: "\);)Tj T* (return\(\(void *\)0\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(err;)]TJ 0 -2.14 TD (err = pthread_create\(&ntid, NULL, thr_fn, NULL\);)Tj 0 -1.189 TD (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t create thread"\);)Tj -2.4 -1.189 Td (printids\("main thread:"\);)Tj T* (sleep\(1\);)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2738.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 265.4042 257.7916 Tm [(Figure 1)37(1.2)]TJ /T1_0 1 Tf 6.25 0 Td [(Printing thr)18(ead IDs)]TJ 9.9982 0 0 9.9982 129.5767 233.7959 Tm [(This )-88(example )-88(has )-88(two )-88(oddities, )-88(which )-88(ar)]TJ 0.338 Tc 18.338 0 Td (en)Tj 0 Tc 1.399 0 Td [(ecessary )-88(to )-88(handle )-88(races )-88(between )-88(the )-88(main)]TJ -19.737 -1.2 Td [(thr)18(ead )-62(and )-62(the )-62(new )-62(thr)19(ead. )-312(\(W)92(e\325ll )-62(learn )-62(better )-62(ways )-62(to )-62(deal )-62(with )-62(these )-62(conditions )-62(later)]TJ 0 -1.2 TD [(in )-42(this )-42(chapter)73(.\) )-292(The)-293(\336rst )-42(is )-42(the )-42(need )-42(to )-42(sleep )-42(in )-42(the )-42(main )-42(thr)16(ead. )-292(If)-292(it )-42(doesn\325t )-42(sleep, )-42(the)]TJ T* [(main )-139(thr)18(ead )-139(might )-139(exit, )-139(ther)18(eby )-139(terminating )-139(the )-139(entir)]TJ 0.3888 Tc 24.358 0 Td (ep)Tj -0.018 Tc 1.469 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-139(befor)]TJ 0.3889 Tc 4.448 0 Td (et)Tj 0 Tc 1.194 0 Td [(he )-139(new )-139(thr)18(ead)]TJ -32.391 -1.2 Td [(gets )-178(a )-178(chance )-178(to )-178(r)6(un. )-428(This)-429(behavior )-178(is )-178(dependent )-178(on )-178(the )-178(operating )-178(system\325s )-178(thr)15(eads)]TJ -0 -1.2 Td (implementation and scheduling algorithms.)Tj 1.8 -1.2 Td [(The )-410(second )-410(oddity )-410(is )-410(that )-410(the )-410(new )-410(thr)18(ead )-410(obtains )-410(its )-410(thr)18(ead )-410(ID )-410(by )-410(calling)]TJ /TT0 1 Tf -1.8 -1.2 Td (pthread_self)Tj /T1_0 1 Tf 7.738 0 Td [(instead )-288(of )-288(r)18(eading )-288(it )-288(out )-288(of )-288(shar)18(ed )-288(memory )-288(or )-288(r)18(eceiving )-288(it )-288(as )-288(an)]TJ -7.738 -1.2 Td [(ar)18(gument )-273(to )-273(its )-273(thr)18(ead-start )-273(r)16(outine. )-523(Recall)-524(that)]TJ /TT0 1 Tf 23.173 0 Td (pthread_create)Tj /T1_0 1 Tf 8.924 0 Td [(will )-273(r)18(eturn )-273(the)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47527 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (348)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td [(0.15 shows many of the signal featur)18(es that we\325ve been describing.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6378.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 628.2236 Tm (#include "apue.h")Tj 0 -2.14 TD (static void sig_quit\(int\);)Tj T* (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(sigset_t )-1800(newmask,)-600(oldmask, pendmask;)]TJ 0 -2.14 TD (if \(signal\(SIGQUIT, sig_quit\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("can\325t catch SIGQUIT"\);)Tj -2.4 -2.14 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*B)Tj 0 Tc 1.8 0 Td (lock SIGQUIT and save current signal mask.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (sigemptyset\(&newmask\);)Tj 0 -1.189 TD (sigaddset\(&newmask, SIGQUIT\);)Tj 0 -1.189 TD (if \(sigprocmask\(SIG_BLOCK, &newmask, &oldmask\) < 0\))Tj 2.4 -1.189 Td (err_sys\("SIG_BLOCK error"\);)Tj -2.4 -2.14 Td [(sleep\(5\); )-1200(/*)-600(SIGQUIT here will remain pending */)]TJ 0 -2.14 TD (if \(sigpending\(&pendmask\) < 0\))Tj 2.4 -1.189 Td (err_sys\("sigpending error"\);)Tj -2.4 -1.189 Td (if \(sigismember\(&pendmask, SIGQUIT\)\))Tj 2.4 -1.189 Td (printf\("\\nSIGQUIT pending\\n"\);)Tj -2.4 -2.14 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*R)Tj 0 Tc 1.8 0 Td (estore signal mask which unblocks SIGQUIT.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(sigprocmask\(SIG_SETMASK, &oldmask, NULL\) < 0\))Tj 2.4 -1.189 Td (err_sys\("SIG_SETMASK error"\);)Tj -2.4 -1.189 Td (printf\("SIGQUIT unblocked\\n"\);)Tj 0 -2.14 TD [(sleep\(5\); )-1200(/*)-600(SIGQUIT here will terminate with core file */)]TJ 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (static void)Tj 0 -1.189 TD (sig_quit\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("caught SIGQUIT\\n"\);)Tj T* (if \(signal\(SIGQUIT, SIG_DFL\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("can\325t reset SIGQUIT"\);)Tj -4.8 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1719.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 225.3794 155.9299 Tm (Figure 10.15)Tj /T1_1 1 Tf 6.195 0 Td (Example of signal sets and)Tj /TT1 1 Tf 12 0 Td (sigprocmask)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47528 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.10)]TJ /TT0 1 Tf 30.286 0 Td (alarm)Tj /T1_0 1 Tf 3.5 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (pause)Tj /T1_0 1 Tf 3.5 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (339)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(The )-37(only )-37(time)]TJ /TT0 1 Tf 6.49 0 Td (pause)Tj /T1_0 1 Tf -0.018 Tc 3.287 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-37(is )-37(if )-37(a )-37(signal )-37(handler )-37(is )-37(executed )-37(and )-37(that )-37(handler )-37(r)16(eturns.)]TJ -10.633 -1.2 Td (In that case,)Tj /TT0 1 Tf 5.5 0 Td (pause)Tj /T1_0 1 Tf -0.018 Tc 3.25 0 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj /TT1 1 Tf 2.58 0 Td (!)Tj /T1_0 1 Tf 0.25 Tc (1w)Tj 0 Tc 2.133 0 Td (ith)Tj /TT0 1 Tf 1.449 0 Td (errno)Tj /T1_0 1 Tf 3.25 0 Td (set to)Tj /TT0 1 Tf 2.601 0 Td (EINTR)Tj /T1_0 1 Tf (.)Tj /TT2 1 Tf -25.219 -2.4 Td (Example)Tj /T1_0 1 Tf 3.6 -2.04 Td (Using)Tj /TT0 1 Tf 2.935 0 Td (alarm)Tj /T1_0 1 Tf 3.304 0 Td (and)Tj /TT0 1 Tf 1.997 0 Td (pause)Tj /T1_0 1 Tf [(,)-304(we)-304(can )-54(put )-54(a )-54(pr)19(ocess )-54(to )-54(sleep )-54(for )-54(a )-54(speci\336ed )-54(amount )-54(of )-54(time.)]TJ -8.235 -1.2 Td (The)Tj /TT0 1 Tf 1.969 0 Td (sleep1)Tj /T1_0 1 Tf 3.895 0 Td [(function )-45(in )-45(Figur)]TJ 0.2947 Tc 7.552 0 Td (e1)Tj 0 Tc 1.274 0 Td [(0.7 )-45(appears )-45(to )-45(do )-45(this )-45(\(but )-45(it )-45(has )-45(pr)18(oblems, )-45(as )-45(we )-45(shall)]TJ -14.689 -1.2 Td (see shortly\).)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5814.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 571.8304 Tm [(#include )-1800()]TJ 0 -1.189 TD [(#include )-1800()]TJ 0 -2.021 TD (static void)Tj 0 -1.189 TD (sig_alrm\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td (/* nothing to do, just return to wake up the pause */)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (unsigned int)Tj 0 -1.189 TD (sleep1\(unsigned int seconds\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (if \(signal\(SIGALRM, sig_alrm\) == SIG_ERR\))Tj 2.4 -1.189 Td (return\(seconds\);)Tj -2.4 -1.189 Td [(alarm\(seconds\); )-2400(/*)-600(start the timer */)]TJ 0 -1.189 TD (pause\(\); )Tj 12 0 Td [(/*)-600(next caught signal wakes us up */)]TJ -12 -1.189 Td [(return\(alarm\(0\)\); )-1200(/*)-600(turn off timer, return unslept time */)]TJ -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3916.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 221.0562 375.5504 Tm (Figure 10.7)Tj /T1_0 1 Tf 5.695 0 Td (Simple, incomplete implementation of)Tj /TT0 1 Tf 17.181 0 Td (sleep)Tj /T1_0 1 Tf 9.9982 0 0 9.9982 129.5769 351.5547 Tm [(This )-12(function )-12(looks )-12(like )-12(the)]TJ /TT0 1 Tf 12.294 0 Td (sleep)Tj /T1_0 1 Tf 3.262 0 Td [(function, )-12(which )-12(we )-12(describe )-12(in )-12(Section )-12(10.19, )-12(but )-12(this)]TJ -15.555 -1.2 Td [(simple implementation has thr)18(ee pr)18(oblems.)]TJ 1.8 -2.16 Td [(1. )-633(If)-413(the )-163(caller )-163(alr)18(eady )-163(has )-163(an )-163(alarm )-163(set, )-163(that )-163(alarm )-163(is )-163(erased )-163(by )-163(the )-163(\336rst )-163(call )-163(to)]TJ /TT0 1 Tf 1.633 -1.2 Td (alarm)Tj /T1_0 1 Tf 0.578 Tc (.W)Tj 0.328 Tc 4.736 0 Td (ec)Tj 0 Tc 1.251 0 Td [(an )-78(corr)18(ect )-78(this )-78(by )-78(looking )-78(at)]TJ /TT0 1 Tf 12.986 0 Td (alarm)Tj /T1_0 1 Tf [(\325s )-78(r)18(eturn )-78(value.)-578(If )-78(the )-78(number)]TJ -18.974 -1.2 Td [(of )-109(seconds )-109(until )-109(some )-109(pr)18(eviously )-109(set )-109(alarm )-109(is )-109(less )-109(than )-109(the )-109(ar)13(gument, )-110(then )-110(we)]TJ 0 -1.2 TD [(should )-151(wait )-151(only )-151(until )-151(the )-151(existing )-151(alarm )-151(expir)16(es. )-401(If)-401(the )-151(pr)18(eviously )-151(set )-151(alarm)]TJ -0 -1.2 Td [(will )-67(go )-67(of)]TJ 0.3168 Tc 4.303 0 Td (fa)Tj 0 Tc 1.15 0 Td [(fter )-67(ours, )-67(then )-67(befor)]TJ 0.3168 Tc 8.958 0 Td (er)Tj 0 Tc 1.173 0 Td [(eturning )-67(we )-67(should )-67(r)18(eset )-67(this )-67(alarm )-67(to )-67(occur)]TJ -15.584 -1.2 Td [(at its designated time in the futur)18(e.)]TJ -1.633 -1.84 Td [(2. )-633(W)]TJ 0.3218 Tc 2.541 0 Td (eh)Tj 0 Tc 1.383 0 Td [(ave )-72(modi\336ed )-72(the )-72(disposition )-72(for)]TJ /TT0 1 Tf 14.773 0 Td (SIGALRM)Tj /T1_0 1 Tf 0.5717 Tc (.I)Tj 0.3217 Tc 5.359 0 Td (fw)Tj 0 Tc 1.489 0 Td (e\325r)Tj 0.3217 Tc 1.134 0 Td (ew)Tj 0 Tc 1.635 0 Td [(riting )-72(a )-72(function )-72(for)]TJ -26.68 -1.2 Td [(others )-116(to )-116(call, )-116(we )-116(should )-116(save )-116(the )-116(disposition )-116(when )-116(our )-116(function )-116(is )-116(called )-116(and)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(stor)18(e)-286(it)-286(when )-36(we\325r)]TJ 0.2857 Tc 8.071 0 Td (ed)Tj 0 Tc 1.376 0 Td [(one. )-286(W)]TJ 0.2857 Tc 3.301 0 Td (ec)Tj 0 Tc 1.209 0 Td [(an )-36(corr)18(ect )-36(this )-36(by )-36(saving )-36(the )-36(r)18(eturn )-36(value )-36(fr)20(om)]TJ /TT0 1 Tf -14.812 -1.2 Td (signal)Tj /T1_0 1 Tf 3.85 0 Td [(and r)18(esetting the disposition befor)]TJ 0.25 Tc 15.141 0 Td (eo)Tj 0 Tc 1.275 0 Td [(ur function r)18(eturns.)]TJ -21.899 -1.84 Td [(3. )-633(Ther)18(e)-319(is)-319(a)-319(r)-1(ace )-69(condition )-69(between )-69(the )-69(\336rst )-69(call )-69(to)]TJ /TT0 1 Tf 23.875 0 Td (alarm)Tj /T1_0 1 Tf 3.319 0 Td [(and )-69(the )-69(call )-69(to)]TJ /TT0 1 Tf 6.756 0 Td (pause)Tj /T1_0 1 Tf (.)Tj -32.317 -1.2 Td [(On )-54(a )-54(busy )-54(system, )-54(it\325s )-54(possible )-54(for )-54(the )-54(alarm )-54(to )-54(go )-54(of)]TJ 0.3037 Tc 23.68 0 Td (fa)Tj 0 Tc 1.137 0 Td [(nd )-54(the )-54(signal )-54(handler )-54(to)]TJ -24.816 -1.2 Td [(be )-50(called )-50(befor)18(e)-300(we)-300(call)]TJ /TT0 1 Tf 10.754 0 Td (pause)Tj /T1_0 1 Tf 0.55 Tc (.I)Tj 0.3 Tc 4.137 0 Td (ft)Tj 0 Tc 0.959 0 Td [(hat )-50(happens, )-50(the )-50(caller )-50(is )-50(suspended )-50(for)18(ever)]TJ -15.85 -1.2 Td (in the call to)Tj /TT0 1 Tf 5.658 0 Td (pause)Tj /T1_0 1 Tf 3.25 0 Td (\(assuming that some other signal isn\325t caught\).)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47529 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.6)]TJ /TT0 1 Tf 29.686 0 Td (wait)Tj /T1_0 1 Tf 2.9 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (waitpid)Tj /T1_0 1 Tf 4.7 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (243)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(pid_t )-1200(pid;)]TJ 0 -2.021 TD (if \(\(pid = fork\(\)\) < 0\) {)Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(pid == 0\) {)-3600(/* first child */)]TJ 0.6 -1.189 Td (if \(\(pid = fork\(\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("fork error"\);)Tj -2.4 -1.189 Td (else if \(pid > 0\))Tj 2.4 -1.189 Td [(exit\(0\); )-1800(/*)-600(parent from second fork == first child */)]TJ -2.4 -2.021 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*W)Tj 0 Tc 1.8 0 Td (e\325re the second child; our parent becomes init as soon)Tj -1.8 -1.189 Td [(*)-600(as)-600(our real parent calls exit\(\) in the statement above.)]TJ 0.6 Tc 0 -1.189 TD (*H)Tj 0 Tc 1.8 0 Td (ere\325s where we\325d continue executing, knowing that when)Tj 0.6 Tc -1.8 -1.189 Td (*w)Tj 0 Tc 1.8 0 Td (e\325re done, init will reap our status.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (sleep\(2\);)Tj T* (printf\("second child, parent pid = %ld\\n", \(long\)getppid\(\)\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD [(if \(waitpid\(pid, NULL, 0\) != pid\))-1800(/* wait for first child */)]TJ 2.4 -1.189 Td (err_sys\("waitpid error"\);)Tj -2.4 -2.021 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*W)Tj 0 Tc 1.8 0 Td (e\325re the parent \(the original process\); we continue executing,)Tj 0.6 Tc -1.8 -1.189 Td (*k)Tj 0 Tc 1.8 0 Td (nowing that we\325re not the parent of the second child.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2962.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 221.8454 280.2144 Tm (Figure 8.8)Tj /T1_0 1 Tf -0.092 Tc 5.195 0 Td (Av)Tj 0 Tc 1.251 0 Td [(oid zombie pr)18(ocesses by calling)]TJ /TT0 1 Tf 14.212 0 Td (fork)Tj /T1_0 1 Tf 2.65 0 Td (twice)Tj -0.092 Tc 9.9988 0 0 9.9988 147.5823 256.2173 Tm [(We )-317(c)]TJ 0 Tc 2.214 0 Td (all)Tj /TT0 1 Tf 1.465 0 Td (sleep)Tj /T1_0 1 Tf 3.383 0 Td [(in )-133(the )-133(second )-133(child )-133(to )-133(ensur)]TJ 0.3831 Tc 12.818 0 Td (et)Tj 0 Tc 1.188 0 Td [(hat )-133(the )-133(\336rst )-133(child )-133(terminates )-133(befor)18(e)]TJ -22.869 -1.2 Td [(printing )-18(the )-18(par)18(ent )-18(pr)18(ocess )-18(ID.)-520(After )-18(a)]TJ /TT0 1 Tf 17.472 0 Td (fork)Tj /T1_0 1 Tf 0.2685 Tc (,e)Tj 0 Tc 3.398 0 Td [(ither )-18(the )-18(par)18(ent )-18(or )-18(the )-18(child )-18(can )-18(continue)]TJ -20.869 -1.2 Td [(executing; )-238(we )-238(never )-238(know )-238(which )-238(will )-238(r)18(esume )-238(execution )-238(\336rst.)-738(If )-238(we )-238(didn\325t )-238(put )-238(the)]TJ 0 -1.2 TD [(second )-91(child )-91(to )-91(sleep, )-91(and )-91(if )-91(it )-91(r)19(esumed )-91(execution )-91(after )-91(the)]TJ /TT0 1 Tf 26.926 0 Td (fork)Tj /T1_0 1 Tf 2.741 0 Td (befor)Tj 0.3409 Tc 2.288 0 Td (ei)Tj 0 Tc 1.111 0 Td [(ts )-91(par)18(ent, )-91(the)]TJ -33.066 -1.2 Td [(par)18(ent pr)18(ocess ID that it printed would be that of its par)18(ent, not pr)18(ocess ID 1.)]TJ 1.8 -1.2 Td [(Executing the pr)18(ogram in Figur)]TJ 0.25 Tc 13.909 0 Td (e8)Tj 0 Tc 1.229 0 Td (.8 gives us)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5824 179.5265 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf 0.6 Tc -1.2 -1.189 Td ($s)Tj 0 Tc 1.8 0 Td (econd child, parent pid = 1)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5845 150.8299 Tm [(Note )-184(that )-184(the )-184(shell )-184(prints )-184(its )-184(pr)18(ompt )-184(when )-184(the )-184(original )-184(pr)18(ocess )-184(terminates, )-184(which )-184(is)]TJ T* (befor)Tj 0.25 Tc 2.288 0 Td (et)Tj 0 Tc 1.055 0 Td [(he second child prints its par)18(ent pr)18(ocess ID.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1388.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47530 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (166)Tj /T1_1 1 Tf 3.5 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Library)]TJ 34.372 0 Td [(Chapter )-250(5)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm (int)Tj 0 -1.189 TD (is_linebuffered\(FILE *fp\))Tj T* ({)Tj 2.4 -1.189 Td (return\(fp->_flags & __SLBF\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (buffer_size\(FILE *fp\))Tj T* ({)Tj 2.4 -1.189 Td (return\(fp->_bf._size\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (#elif defined\(_IONBF\))Tj 0 -2.021 TD (#ifdef _LP64)Tj 0 -1.189 TD (#define _flag __pad[4])Tj 0 -1.189 TD (#define _ptr __pad[1])Tj 0 -1.189 TD (#define _base __pad[2])Tj T* (#endif)Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (is_unbuffered\(FILE *fp\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (return\(fp->_flag & _IONBF\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (is_linebuffered\(FILE *fp\))Tj T* ({)Tj 2.4 -1.189 Td (return\(fp->_flag & _IOLBF\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (buffer_size\(FILE *fp\))Tj T* ({)Tj T* (#ifdef _LP64)Tj 2.4 -1.189 Td (return\(fp->_base - fp->_ptr\);)Tj -2.4 -1.189 Td (#else)Tj 2.4 -1.189 Td (return\(BUFSIZ\); /* just a guess */)Tj -2.4 -1.189 Td (#endif)Tj T* (})Tj 0 -2.021 TD (#else)Tj 0 -2.021 TD (#error unknown stdio implementation!)Tj 0 -2.021 TD (#endif)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2022.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 216.0381 186.1667 Tm [(Figure 5.1)37(1)]TJ /T1_1 1 Tf 5.658 0 Td [(Print buf)18(fering for various standar)]TJ 0.25 Tc 15.223 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O str)18(eams)]TJ 9.9988 0 0 9.9988 129.5845 157.3701 Tm [(Note )-56(that )-56(we )-56(perform )-56(I/O )-56(on )-56(each )-56(str)18(eam )-56(befor)]TJ 0.3063 Tc 21.451 0 Td (ep)Tj 0 Tc 1.386 0 Td [(rinting )-56(its )-56(buf)18(fering )-56(status, )-56(since )-56(the)]TJ -22.837 -1.2 Td [(\336rst )-23(I/O )-23(operation )-23(usually )-23(causes )-23(the )-23(buf)18(fers )-23(to )-23(be )-23(allocated )-23(for )-23(a )-23(str)14(eam. )-273(The)-274(str)8(uctur)18(e)]TJ 0 -1.2 Td [(members )-37(and )-37(the )-37(constants )-37(used )-37(in )-37(this )-37(example )-37(ar)]TJ 0.2866 Tc 22.862 0 Td (ed)Tj 0 Tc 1.377 0 Td [(e\336ned )-37(by )-37(the )-37(implementations )-37(of)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47531 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.22)]TJ 34.82 0 Td [(Reading )-250(Dir)18(ectories)]TJ /T1_1 1 Tf 11.013 0 Td (133)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm [(#define FTW_DNR 3)-4200(/* directory that can\325t be read */)]TJ 0 -1.189 TD (#define FTW_NS)Tj 4.2 Tc 9.6 0 Td (4/)Tj 0.6 Tc 5.4 0 Td (*f)Tj 0 Tc 1.8 0 Td (ile that we can\325t stat */)Tj -16.8 -1.902 Td [(static char *fullpath;)-3600(/* contains full pathname for every file */)]TJ T* (static size_t pathlen;)Tj 0 -1.902 TD (static int)Tj 16.8 0 Td (/* we return whatever func\(\) returns */)Tj -16.8 -1.189 Td (myftw\(char *pathname, Myfunc *func\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(fullpath = path_alloc\(&pathlen\);)-2400(/* malloc PATH_MAX+1 bytes */)]TJ 21.6 -1.189 Td (/* \(Figure 2.16\) */)Tj -21.6 -1.189 Td (if \(pathlen <= strlen\(pathname\)\) {)Tj 2.4 -1.189 Td (pathlen = strlen\(pathname\) * 2;)Tj T* (if \(\(fullpath = realloc\(fullpath, pathlen\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("realloc failed"\);)Tj -4.8 -1.189 Td (})Tj T* (strcpy\(fullpath, pathname\);)Tj T* (return\(dopath\(func\)\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*D)Tj 0 Tc 1.8 0 Td (escend through the hierarchy, starting at "fullpath".)Tj -1.8 -1.189 Td [(*)-600(If)-600("fullpath" is anything other than a directory, we lstat\(\) it,)]TJ 0.6 Tc 0 -1.189 TD (*c)Tj 0 Tc 1.8 0 Td [(all func\(\), and return.)-1200(For a directory, we call ourself)]TJ 0.6 Tc -1.8 -1.189 Td (*r)Tj 0 Tc 1.8 0 Td (ecursively for each name in the directory.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (static int)Tj 16.8 0 Td (/* we return whatever func\(\) returns */)Tj -16.8 -1.189 Td (dopath\(Myfunc* func\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(struct stat)-3000(statbuf;)]TJ T* [(struct dirent)-1800(*dirp;)]TJ T* (DIR )Tj 9.6 0 Td (*dp;)Tj -9.6 -1.189 Td (int )Tj 9.6 0 Td [(ret,)-600(n;)]TJ -9.6 -1.902 Td [(if \(lstat\(fullpath, &statbuf\) < 0\))-1200(/* stat error */)]TJ 2.4 -1.189 Td (return\(func\(fullpath, &statbuf, FTW_NS\)\);)Tj -2.4 -1.189 Td [(if \(S_ISDIR\(statbuf.st_mode\) == 0\))-1200(/* not a directory */)]TJ 2.4 -1.189 Td (return\(func\(fullpath, &statbuf, FTW_F\)\);)Tj -2.4 -1.902 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*I)Tj 0 Tc 1.8 0 Td [(t\325s a directory.)-1200(First call func\(\) for the directory,)]TJ 0.6 Tc -1.8 -1.189 Td (*t)Tj 0 Tc 1.8 0 Td (hen process each filename in the directory.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(\(ret = func\(fullpath, &statbuf, FTW_D\)\) != 0\))Tj 2.4 -1.189 Td (return\(ret\);)Tj 0.6 Tc -2.4 -1.902 Td (n=s)Tj 0 Tc 3 0 Td (trlen\(fullpath\);)Tj -3 -1.189 Td [(if \(n + NAME_MAX + 2 > pathlen\) {)-1800(/* expand path buffer */)]TJ 2.4 -1.189 Td (pathlen *= 2;)Tj T* (if \(\(fullpath = realloc\(fullpath, pathlen\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("realloc failed"\);)Tj -4.8 -1.189 Td (})Tj T* (fullpath[n++] = \325/\325;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47532 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.24)]TJ 34.629 0 Td [(Device )-250(Special )-250(Files)]TJ /T1_1 1 Tf 11.204 0 Td (139)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 172.7896 670.2598 Tm (if \(S_ISCHR\(buf.st_mode\) || S_ISBLK\(buf.st_mode\)\) {)Tj 2.4 -1.189 Td (printf\(" \(%s\) rdev = %d/%d",)Tj 4.8 -1.189 Td (\(S_ISCHR\(buf.st_mode\)\) ? "character" : "block",)Tj 0 -1.189 TD (major\(buf.st_rdev\), minor\(buf.st_rdev\)\);)Tj -7.2 -1.189 Td (})Tj 0 -1.189 TD (printf\("\\n"\);)Tj -2.4 -1.189 Td (})Tj 0 -2.259 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5606.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 239.5792 544.5736 Tm (Figure 4.25)Tj /T1_0 1 Tf 5.695 0 Td (Print)Tj /TT0 1 Tf 2.448 0 Td (st_dev)Tj /T1_0 1 Tf 3.85 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (st_rdev)Tj /T1_0 1 Tf 4.45 0 Td (values)Tj 9.9988 0 0 9.9988 129.5847 514.5772 Tm [(Running this pr)18(ogram on Linux gives us the following output:)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5826 491.88 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out / /home/sar /dev/tty[01])Tj /TT0 1 Tf -1.2 -1.189 Td (/: dev = 8/3)Tj 0 -1.189 TD (/home/sar: dev = 8/4)Tj T* (/dev/tty0: dev = 0/5 \(character\) rdev = 4/0)Tj T* (/dev/tty1: dev = 0/5 \(character\) rdev = 4/1)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (mount)Tj /T1_2 1 Tf 16.4 0 Td [(which dir)18(ectories ar)]TJ 0.25 Tc 7.889 0 Td (em)Tj 0 Tc 1.417 0 Td (ounted on which devices?)Tj /TT0 1 Tf -26.906 -1.189 Td (/dev/sda3 on / type ext3 \(rw,errors=remount-ro,commit=0\))Tj 0 -1.189 TD (/dev/sda4 on /home type ext3 \(rw,commit=0\))Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l /dev/tty[01] /dev/sda[34])Tj /TT0 1 Tf -1.2 -1.189 Td [(brw-rw---- )-600(1)-600(root )-3600(8,)]TJ 0.6 Tc 16.8 0 Td (32)Tj 0 Tc 1.8 0 Td (011-07-01 11:08 /dev/sda3)Tj -18.6 -1.189 Td [(brw-rw---- )-600(1)-600(root )-3600(8,)]TJ 0.6 Tc 16.8 0 Td (42)Tj 0 Tc 1.8 0 Td (011-07-01 11:08 /dev/sda4)Tj -18.6 -1.189 Td [(crw--w---- )-600(1)-600(root )-3600(4,)]TJ 0.6 Tc 16.8 0 Td (02)Tj 0 Tc 1.8 0 Td (011-07-01 11:08 /dev/tty0)Tj -18.6 -1.189 Td [(crw------- )-600(1)-600(root )-3600(4,)]TJ 0.6 Tc 16.8 0 Td (12)Tj 0 Tc 1.8 0 Td (011-07-01 11:08 /dev/tty1)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5846 339.4983 Tm [(The )-159(\336rst )-159(two )-159(ar)18(guments )-159(to )-159(the )-159(pr)18(ogram )-159(ar)]TJ 0.4089 Tc 19.716 0 Td (ed)Tj 0 Tc 1.499 0 Td [(ir)18(ectories )-159(\()]TJ /TT0 1 Tf (/)Tj /T1_0 1 Tf 5.803 0 Td (and)Tj /TT0 1 Tf 2.102 0 Td (/home/sar)Tj /T1_0 1 Tf [(\), )-159(and )-159(the)]TJ -29.119 -1.2 Td [(next )-76(two )-76(ar)]TJ 0.3258 Tc 5.138 0 Td (et)Tj 0 Tc 1.131 0 Td [(he )-76(device )-76(names)]TJ /TT0 1 Tf 7.775 0 Td (/dev/tty[01])Tj /T1_0 1 Tf 0.5757 Tc (.\()Tj -0.092 Tc 8.359 0 Td [(We )-260(u)]TJ 0 Tc 2.316 0 Td [(se )-76(the )-76(shell\325s )-76(r)18(egular )-76(expr)19(ession)]TJ -24.718 -1.2 Td [(language )-149(to )-149(shorten )-149(the )-149(amount )-149(of )-149(typing )-149(we )-149(need )-149(to )-149(do.)-653(The )-149(shell )-149(will )-149(expand )-149(the)]TJ 0 -1.2 TD (string)Tj /TT0 1 Tf 2.824 0 Td (/dev/tty[01])Tj /T1_0 1 Tf 7.45 0 Td (to)Tj /TT0 1 Tf 1.122 0 Td (/dev/tty0 /dev/tty1)Tj /T1_0 1 Tf (.\))Tj -0.092 Tc -9.596 -1.2 Td [(We )-313(e)]TJ 0 Tc 2.245 0 Td [(xpect )-129(the )-129(devices )-129(to )-129(be )-129(character )-129(special )-129(\336les.)-629(The )-129(output )-129(fr)18(om )-129(the )-129(pr)18(ogram)]TJ -4.045 -1.2 Td [(shows )-77(that )-77(the )-77(r)18(oot )-77(dir)18(ectory )-77(has )-77(a )-77(dif)19(fer)18(ent )-77(device )-77(number )-77(than )-77(does )-77(the)]TJ /TT0 1 Tf 33.6 0 Td (/home/sar)Tj /T1_0 1 Tf -33.6 -1.2 Td [(dir)18(ectory)]TJ 0.2828 Tc 3.914 0 Td (,w)Tj 0 Tc 1.367 0 Td [(hich )-33(indicates )-33(that )-33(they )-33(ar)]TJ 0.2828 Tc 11.532 0 Td (eo)Tj 0.2827 Tc 1.308 0 Td (nd)Tj 0 Tc 1.476 0 Td [(if)18(fer)18(ent )-33(\336le )-33(systems.)-533(Running )-33(the)]TJ /TT0 1 Tf 15.238 0 Td (mount)Tj /T1_0 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj -38.667 -1.24 Td (command veri\336es this.)Tj -0.092 Tc 1.8 -1.2 Td [(We )-342(t)]TJ 0 Tc 2.121 0 Td [(hen )-158(use)]TJ /TT0 1 Tf 3.964 0 Td (ls)Tj /T1_0 1 Tf 1.608 0 Td [(to )-158(look )-158(at )-158(the )-158(two )-158(disk )-158(devices )-158(r)20(eported )-158(by)]TJ /TT0 1 Tf 20.497 0 Td (mount)Tj /T1_0 1 Tf 3.408 0 Td [(and )-158(the )-158(two)]TJ -33.398 -1.2 Td [(terminal )-177(devices.)-677(The )-177(two )-177(disk )-177(devices )-177(ar)]TJ 0.4267 Tc 19.532 0 Td (eb)Tj 0 Tc 1.459 0 Td [(lock )-177(special )-177(\336les, )-177(and )-177(the )-177(two )-177(terminal)]TJ -20.991 -1.2 Td [(devices )-119(ar)]TJ 0.3686 Tc 4.539 0 Td (ec)Tj 0 Tc 1.292 0 Td [(haracter )-119(special )-119(\336les.)-618(\(Normally)]TJ 0.3686 Tc 14.571 0 Td (,t)Tj 0 Tc 0.945 0 Td [(he )-119(only )-119(types )-119(of )-119(devices )-119(that )-119(ar)]TJ 0.3687 Tc 14.417 0 Td (eb)Tj 0 Tc 1.401 0 Td (lock)Tj -37.163 -1.2 Td [(special )-68(\336les )-68(ar)]TJ 0.3178 Tc 6.342 0 Td (et)Tj 0 Tc 1.123 0 Td [(hose )-68(that )-68(can )-68(contain )-68(random-access )-68(\336le )-68(systems)]TJ 0.0833 Tc 22.008 0 Td (\321d)Tj 0 Tc 1.694 0 Td [(isk )-68(drives, )-68(\337oppy)]TJ -31.167 -1.2 Td [(disk )-403(drives, )-403(and )-403(CD)]TJ 10.031 0.09 Td (-)Tj 0.333 -0.09 Td [(ROMs, )-403(for )-403(example.)-903(Some )-403(older )-403(UNIX )-403(systems )-403(supported)]TJ -10.364 -1.2 Td (magnetic tapes for \336le systems, but this was never widely used.\))Tj 1.8 -1.2 Td [(Note )-99(that )-99(the )-99(\336lenames )-99(and )-99(i-nodes )-99(for )-99(the )-99(two )-99(terminal )-99(devices )-99(\()]TJ /TT0 1 Tf 30.085 0 Td (st_dev)Tj /T1_0 1 Tf 0.349 Tc (\)a)Tj -0.018 Tc 4.782 0 Td [(re )-135(o)]TJ 0 Tc 1.751 0 Td (n)Tj -38.418 -1.2 Td [(device )-71(0/5)]TJ 0.0833 Tc 4.88 0 Td (\321t)Tj 0 Tc 1.409 0 Td (he)Tj /TT0 1 Tf 1.383 0 Td (devtmpfs)Tj /T1_0 1 Tf 5.121 0 Td [(pseudo )-71(\336le )-71(system, )-71(which )-71(implements )-71(the)]TJ /TT0 1 Tf 19.269 0 Td (/dev)Tj /T1_0 1 Tf [(\321but )-72(that)]TJ -32.062 -1.2 Td (their actual device numbers ar)Tj 0.25 Tc 13.402 0 Td (e4)Tj 0 Tc 1.229 0 Td (/0 and 4/1.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1475.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47533 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (584)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm (s_alloc\(\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (struct slock *sp;)Tj T* (static int cnt;)Tj 0 -1.783 TD (if \(\(sp = malloc\(sizeof\(struct slock\)\)\) == NULL\))Tj 2.4 -1.189 Td (return\(NULL\);)Tj -2.4 -1.189 Td (do {)Tj 2.4 -1.189 Td (snprintf\(sp->name, sizeof\(sp->name\), "/%ld.%d", \(long\)getpid\(\),)Tj 1.2 -1.189 Td (cnt++\);)Tj -1.2 -1.189 Td (sp->semp = sem_open\(sp->name, O_CREAT|O_EXCL, S_IRWXU, 1\);)Tj 0.6 Tc -2.4 -1.189 Td (}w)Tj 0 Tc 1.8 0 Td (hile \(\(sp->semp == SEM_FAILED\) && \(errno == EEXIST\)\);)Tj -1.8 -1.189 Td (if \(sp->semp == SEM_FAILED\) {)Tj 2.4 -1.189 Td (free\(sp\);)Tj 0 -1.189 TD (return\(NULL\);)Tj -2.4 -1.189 Td (})Tj T* (sem_unlink\(sp->name\);)Tj T* (return\(sp\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (void)Tj 0 -1.189 TD (s_free\(struct slock *sp\))Tj T* ({)Tj 2.4 -1.189 Td (sem_close\(sp->semp\);)Tj 0 -1.189 TD (free\(sp\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (s_lock\(struct slock *sp\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (return\(sem_wait\(sp->semp\)\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (s_trylock\(struct slock *sp\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (return\(sem_trywait\(sp->semp\)\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (s_unlock\(struct slock *sp\))Tj T* ({)Tj 2.4 -1.189 Td (return\(sem_post\(sp->semp\)\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2321.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 222.0294 216.1231 Tm (Figure 15.35)Tj /T1_1 1 Tf 6.195 0 Td [(Mutual exclusion using a POSIX semaphor)18(e)]TJ -0.092 Tc 9.9988 0 0 9.9988 147.5825 192.1259 Tm [(We )-197(c)]TJ -0.018 Tc 2.094 0 Td (re)Tj 0 Tc 0.856 0 Td [(ate )-12(a )-12(name )-12(based )-12(on )-12(the )-12(pr)18(ocess )-12(ID )-12(and )-12(a )-12(counter)]TJ 0.5125 Tc 21.856 0 Td (.W)Tj 0.2625 Tc 1.671 0 Td (ed)Tj 0 Tc 1.352 0 Td [(on\325t )-12(bother )-12(to )-12(pr)17(otect)]TJ -29.628 -1.2 Td [(the )-54(counter )-54(with )-54(a )-54(mutex, )-54(because )-54(if )-54(two )-54(racing )-54(thr)14(eads )-54(call)]TJ /TT0 1 Tf 27.105 0 Td (s_alloc)Tj /T1_1 1 Tf 4.504 0 Td [(at )-54(the )-54(same )-54(time)]TJ -31.609 -1.2 Td [(and )-110(end )-110(up )-110(with )-110(the )-110(same )-110(name, )-110(using )-110(the)]TJ /TT0 1 Tf 20.051 0 Td (O_EXCL)Tj /T1_1 1 Tf 3.96 0 Td [(\337ag )-110(in )-110(the )-110(call )-110(to)]TJ /TT0 1 Tf 8.122 0 Td (sem_open)Tj /T1_1 1 Tf 5.16 0 Td (will)Tj -37.293 -1.2 Td [(cause )-70(one )-70(to )-70(succeed )-70(and )-70(one )-70(to )-70(fail )-70(with)]TJ /TT0 1 Tf 18.916 0 Td (errno)Tj /T1_1 1 Tf 3.32 0 Td [(set )-70(to)]TJ /TT0 1 Tf 2.742 0 Td (EEXIST)Tj /T1_1 1 Tf [(,)-320(so)-320(we)-320(j)-1(ust )-70(r)18(etry )-70(if )-70(this)]TJ -24.978 -1.2 Td [(happens. )-313(Note)-313(that )-63(we )-63(unlink )-63(the )-63(semaphor)]TJ 0.3129 Tc 20.059 0 Td (ea)Tj 0 Tc 1.292 0 Td [(fter )-63(opening )-63(it.)-563(This )-63(destr)18(oys )-63(the )-63(name)]TJ -21.351 -1.2 Td [(so that no other pr)18(ocess can access it and simpli\336es cleanup when the pr)18(ocess ends.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1321.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47534 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (454)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -1.902 TD (int pthread_sigmask\(int)Tj /T1_2 1 Tf 14.4 0 Td (how)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.466 0 Td (onst sigset_t *restrict)Tj /T1_2 1 Tf 14.4 0 Td (set)Tj /TT0 1 Tf (,)Tj -20.266 -1.189 Td (sigset_t *restrict)Tj /T1_2 1 Tf 11.4 0 Td (oset)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -2.119 -1.902 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6088.25 cm 0 0 m 0 585 l 3900 585 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 595.2886 Tm (The)Tj /TT0 1 Tf 2.423 0 Td (pthread_sigmask)Tj /T1_1 1 Tf 9.749 0 Td [(function )-498(is )-498(identical )-498(to)]TJ /TT0 1 Tf 12.103 0 Td (sigprocmask)Tj /T1_1 1 Tf 0.7485 Tc (,e)Tj 0 Tc 8.078 0 Td [(xcept )-498(that)]TJ /TT0 1 Tf -34.152 -1.2 Td (pthread_sigmask)Tj /T1_1 1 Tf 9.299 0 Td [(works )-49(with )-49(thr)18(eads )-49(and )-49(r)18(eturns )-49(an )-49(err)18(or )-49(code )-49(on )-49(failur)]TJ 0.2988 Tc 24.533 0 Td (ei)Tj 0 Tc 1.069 0 Td [(nstead )-49(of)]TJ -34.9 -1.2 Td (setting)Tj /TT0 1 Tf 3.278 0 Td (errno)Tj /T1_1 1 Tf 3.294 0 Td [(and )-44(r)18(eturning)]TJ /TT1 1 Tf 6.472 0 Td (!)Tj /T1_1 1 Tf [(1. )-294(Recall)-294(that )-44(the)]TJ /T1_2 1 Tf 8.518 0 Td (set)Tj /T1_1 1 Tf 1.405 0 Td [(ar)18(gument )-44(contains )-44(the )-44(set )-44(of )-44(signals)]TJ -22.966 -1.2 Td [(that )-15(the )-15(thr)18(ead )-15(will )-15(use )-15(to )-15(modify )-15(its )-15(signal )-15(mask.)-515(The)]TJ /T1_2 1 Tf 24.438 0 Td (how)Tj /T1_1 1 Tf 1.931 0 Td [(ar)18(gument )-15(can )-15(take )-15(on )-15(one )-15(of)]TJ -26.369 -1.2 Td [(thr)18(ee )-365(values:)]TJ /TT0 1 Tf 6.585 0 Td (SIG_BLOCK)Tj /T1_1 1 Tf 6.015 0 Td [(to )-365(add )-365(the )-365(set )-365(of )-365(signals )-365(to )-365(the )-365(thr)18(ead\325s )-365(signal )-365(mask,)]TJ /TT0 1 Tf -12.6 -1.2 Td (SIG_SETMASK)Tj /T1_1 1 Tf 7.317 0 Td [(to )-467(r)18(eplace )-467(the )-467(thr)18(ead\325s )-467(signal )-467(mask )-467(with )-467(the )-467(set )-467(of )-467(signals, )-467(or)]TJ /TT0 1 Tf -7.317 -1.2 Td (SIG_UNBLOCK)Tj /T1_1 1 Tf 6.987 0 Td [(to )-137(r)18(emove )-137(the )-137(set )-137(of )-137(signals )-137(fr)18(om )-137(the )-137(thr)18(ead\325s )-137(signal )-137(mask.)-634(If )-137(the)]TJ /T1_2 1 Tf 30.458 0 Td (oset)Tj /T1_1 1 Tf -37.445 -1.2 Td [(ar)18(gument )-220(is )-220(not )-220(null, )-220(the )-220(thr)17(ead\325s )-220(pr)18(evious )-220(signal )-220(mask )-220(is )-220(stor)18(ed )-220(in )-220(the)]TJ /TT0 1 Tf 34.2 0 Td (sigset_t)Tj /T1_1 1 Tf -34.2 -1.2 Td [(str)8(uctur)18(e)-322(to)-322(which )-72(it )-72(points.)]TJ 0.3221 Tc 13.072 0 Td (At)Tj 0 Tc 1.426 0 Td [(hr)18(ead )-72(can )-72(get )-72(its )-72(curr)18(ent )-72(signal )-72(mask )-72(by )-72(setting )-72(the)]TJ /T1_2 1 Tf 23.392 0 Td (set)Tj /T1_1 1 Tf -37.889 -1.2 Td [(ar)18(gument )-337(to)]TJ /TT0 1 Tf 6.352 0 Td (NULL)Tj /T1_1 1 Tf 2.987 0 Td [(and )-337(setting )-337(the)]TJ /T1_2 1 Tf 7.826 0 Td (oset)Tj /T1_1 1 Tf 2.142 0 Td [(ar)18(gument )-337(to )-337(the )-337(addr)18(ess )-337(of )-337(a)]TJ /TT0 1 Tf 14.893 0 Td (sigset_t)Tj /T1_1 1 Tf -34.2 -1.2 Td [(str)8(uctur)18(e. )-250(In)-250(this case, the)]TJ /T1_2 1 Tf 11.745 0 Td (how)Tj /T1_1 1 Tf 1.916 0 Td [(ar)18(gument is ignor)18(ed.)]TJ 0.25 Tc -11.861 -1.2 Td (At)Tj 0 Tc 1.354 0 Td [(hr)18(ead can wait for one or mor)]TJ 0.25 Tc 13.154 0 Td (es)Tj 0 Tc 1.153 0 Td (ignals to occur by calling)Tj /TT0 1 Tf 11.262 0 Td (sigwait)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5833 447.8063 Tm (#include )Tj 0 -1.902 TD (int sigwait\(const sigset_t *restrict)Tj /T1_2 1 Tf 22.2 0 Td (set)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.911 0 Td (nt *restrict)Tj /T1_2 1 Tf 7.8 0 Td (signop)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -11.63 -1.902 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4091.25 cm 0 0 m 0 477 l 3900 477 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 396.7486 Tm (The)Tj /T1_2 1 Tf 1.964 0 Td (set)Tj /T1_1 1 Tf 1.401 0 Td [(ar)18(gument )-40(speci\336es )-40(the )-40(set )-40(of )-40(signals )-40(for )-40(which )-40(the )-40(thr)15(ead )-40(is )-40(waiting.)-540(On )-40(r)16(eturn,)]TJ -3.366 -1.2 Td [(the )-264(integer )-264(to )-264(which)]TJ /T1_2 1 Tf 10.158 0 Td (signop)Tj /T1_1 1 Tf 3.181 0 Td [(points )-264(will )-264(contain )-264(the )-264(number )-264(of )-264(the )-264(signal )-264(that )-264(was)]TJ -13.339 -1.2 Td [(deliver)18(ed.)]TJ 1.8 -1.2 Td [(If )-111(one )-111(of )-111(the )-111(signals )-111(speci\336ed )-111(in )-111(the )-111(set )-111(is )-111(pending )-111(at )-111(the )-111(time)]TJ /TT0 1 Tf 28.697 0 Td (sigwait)Tj /T1_1 1 Tf 4.561 0 Td [(is )-111(called,)]TJ -35.058 -1.2 Td (then)Tj /TT0 1 Tf 2.362 0 Td (sigwait)Tj /T1_1 1 Tf 4.593 0 Td [(will )-143(r)18(eturn )-143(without )-143(blocking.)-643(Befor)]TJ 0.3929 Tc 16.214 0 Td (er)Tj 0 Tc 1.249 0 Td (eturning,)Tj /TT0 1 Tf 4.457 0 Td (sigwait)Tj /T1_1 1 Tf -0.018 Tc 4.593 0 Td (re)Tj 0 Tc 0.856 0 Td [(moves )-143(the)]TJ -34.323 -1.2 Td [(signal )-93(fr)18(om )-93(the )-93(set )-93(of )-93(signals )-93(pending )-93(for )-93(the )-93(pr)18(ocess. )-343(If)-343(the )-93(implementation )-93(supports)]TJ 0 -1.2 Td [(queued )-106(signals, )-106(and )-106(multiple )-106(instances )-106(of )-106(a )-106(signal )-106(ar)]TJ 0.3558 Tc 23.91 0 Td (ep)Tj 0 Tc 1.436 0 Td (ending,)Tj /TT0 1 Tf 3.707 0 Td (sigwait)Tj /T1_1 1 Tf 4.556 0 Td [(will )-106(r)18(emove)]TJ -33.609 -1.2 Td [(only one instance of the signal; the other instances will r)18(emain queued.)]TJ -0.092 Tc 1.8 -1.2 Td [(To )-212(a)]TJ 0 Tc 1.845 0 Td [(void )-28(err)18(oneous )-28(behavior)]TJ 0.278 Tc 10.837 0 Td [(,a )528(t)]TJ 0 Tc 1.632 0 Td [(hr)18(ead )-28(must )-28(block )-28(the )-28(signals )-28(it )-28(is )-28(waiting )-28(for )-28(befor)17(e)]TJ -16.114 -1.2 Td (calling)Tj /TT0 1 Tf 3.296 0 Td (sigwait)Tj /T1_1 1 Tf 0.5914 Tc (.T)Tj 0 Tc 5.654 0 Td (he)Tj /TT0 1 Tf 1.402 0 Td (sigwait)Tj /T1_1 1 Tf 4.541 0 Td [(function )-91(will )-91(atomically )-91(unblock )-91(the )-91(signals )-91(and )-91(wait)]TJ -14.895 -1.2 Td [(until )-42(one )-42(is )-42(deliver)19(ed. )-292(Befor)]TJ 0.2917 Tc 12.61 0 Td (er)Tj 0 Tc 1.148 0 Td (eturning,)Tj /TT0 1 Tf 4.356 0 Td (sigwait)Tj /T1_1 1 Tf 4.492 0 Td [(will )-42(r)18(estor)]TJ 0.2917 Tc 4.528 0 Td (et)Tj 0 Tc 1.097 0 Td [(he )-42(thr)18(ead\325s )-42(signal )-42(mask.)]TJ -28.23 -1.2 Td [(If )-49(the )-49(signals )-49(ar)]TJ 0.2989 Tc 6.899 0 Td (en)Tj 0 Tc 1.36 0 Td [(ot )-49(blocked )-49(at )-49(the )-49(time )-49(that)]TJ /TT0 1 Tf 12.071 0 Td (sigwait)Tj /T1_1 1 Tf 4.499 0 Td [(is )-49(called, )-49(then )-49(a )-49(timing )-49(window)]TJ -24.829 -1.2 Td [(is )-22(opened )-22(up )-22(wher)]TJ 0.2724 Tc 8.306 0 Td (eo)Tj 0 Tc 1.297 0 Td [(ne )-22(of )-22(the )-22(signals )-22(can )-22(be )-22(deliver)16(ed )-22(to )-22(the )-22(thr)18(ead )-22(befor)16(e)-272(it)-272(c)-1(ompletes)]TJ -9.604 -1.2 Td (its call to)Tj /TT0 1 Tf 4.189 0 Td (sigwait)Tj /T1_1 1 Tf (.)Tj -2.389 -1.2 Td [(The )-18(advantage )-18(to )-18(using)]TJ /TT0 1 Tf 10.691 0 Td (sigwait)Tj /T1_1 1 Tf 4.468 0 Td [(is )-17(that )-17(it )-17(can )-17(simplify )-17(signal )-17(handling )-17(by )-17(allowing)]TJ -16.959 -1.2 Td [(us )-33(to )-33(tr)18(eat )-33(asynchr)18(onously )-33(generated )-33(signals )-33(in )-33(a )-33(synchr)18(onous )-33(manner)]TJ 0.5331 Tc 31.329 0 Td (.W)Tj 0.2831 Tc 1.691 0 Td (ec)Tj 0 Tc 1.206 0 Td [(an )-33(pr)18(event)]TJ -34.226 -1.2 Td [(the )-62(signals )-62(fr)17(om )-62(interr)8(upting )-62(the )-62(thr)18(eads )-62(by )-62(adding )-62(them )-62(to )-62(each )-62(thr)18(ead\325s )-62(signal )-62(mask.)]TJ 0 -1.2 TD [(Then )-44(we )-44(can )-44(dedicate )-44(speci\336c )-44(thr)18(eads )-44(to )-44(handling )-44(the )-44(signals.)-543(These )-44(dedicated )-44(thr)18(eads)]TJ -0 -1.2 Td [(can )-60(make )-60(function )-60(calls )-60(without )-60(having )-60(to )-60(worry )-60(about )-60(which )-60(functions )-60(ar)]TJ 0.3096 Tc 33.459 0 Td (es)Tj 0 Tc 1.213 0 Td [(afe )-60(to )-60(call)]TJ -34.671 -1.2 Td [(fr)18(om )-143(a )-143(signal )-143(handler)]TJ 0.393 Tc 9.828 0 Td (,b)Tj 0 Tc 1.196 0 Td [(ecause )-143(they )-143(ar)]TJ 0.393 Tc 6.535 0 Td (eb)Tj 0 Tc 1.425 0 Td [(eing )-143(called )-143(fr)18(om )-143(normal )-143(thr)18(ead )-143(context, )-143(not)]TJ -18.984 -1.2 Td [(fr)18(om a traditional signal handler interr)8(upting a normal thr)18(ead\325s execution.)]TJ 1.8 -1.2 Td [(If )-46(multiple )-46(thr)18(eads )-46(ar)]TJ 0.2956 Tc 9.498 0 Td (eb)Tj 0 Tc 1.328 0 Td [(locked )-45(in )-45(calls )-45(to)]TJ /TT0 1 Tf 7.804 0 Td (sigwait)Tj /T1_1 1 Tf 4.496 0 Td [(for )-45(the )-45(same )-45(signal, )-45(only )-45(one )-45(of)]TJ -24.925 -1.2 Td [(the )-57(thr)18(eads )-57(will )-57(r)18(eturn )-57(fr)17(om)]TJ /TT0 1 Tf 12.83 0 Td (sigwait)Tj /T1_1 1 Tf 4.507 0 Td [(when )-57(the )-57(signal )-57(is )-57(deliver)17(ed. )-307(If)]TJ 0.3074 Tc 14.42 0 Td (as)Tj 0 Tc 1.231 0 Td [(ignal )-57(is )-57(being)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47535 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(13.6)]TJ 33.937 0 Td [(Daemon )-250(Conventions)]TJ /T1_1 1 Tf 11.896 0 Td (477)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (sigfillset\(&mask\);)Tj 0 -1.189 TD (if \(\(err = pthread_sigmask\(SIG_BLOCK, &mask, NULL\)\) != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "SIG_BLOCK error"\);)Tj -2.4 -2.021 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (reate a thread to handle SIGHUP and SIGTERM.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (err = pthread_create\(&tid, NULL, thr_fn, 0\);)Tj T* (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t create thread"\);)Tj -2.4 -2.021 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (roceed with the rest of the daemon.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (/* ... */)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5007.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 235.6277 484.6608 Tm (Figure 13.7)Tj /T1_0 1 Tf 5.695 0 Td [(Daemon r)18(er)18(eading con\336guration \336les)]TJ -0.092 Tc 9.9988 0 0 9.9988 147.5825 460.6637 Tm [(We )-236(c)]TJ 0 Tc 2.133 0 Td (all)Tj /TT0 1 Tf 1.384 0 Td (daemonize)Tj /T1_0 1 Tf 5.702 0 Td [(fr)18(om )-52(Figur)]TJ 0.3019 Tc 4.824 0 Td (e1)Tj 0 Tc 1.281 0 Td [(3.1 )-52(to )-52(initialize )-52(the )-52(daemon.)-552(When )-52(it )-52(r)18(eturns, )-52(we)]TJ -17.124 -1.2 Td (call)Tj /TT0 1 Tf 1.802 0 Td (already_running)Tj /T1_0 1 Tf 9.276 0 Td [(fr)18(om )-26(Figur)]TJ 0.2758 Tc 4.798 0 Td (e1)Tj 0 Tc 1.255 0 Td [(3.6 )-26(to )-26(ensur)]TJ 0.2759 Tc 5.139 0 Td (et)Tj 0 Tc 1.081 0 Td [(hat )-26(only )-26(one )-26(copy )-26(of )-26(the )-26(daemon )-26(is)]TJ -0.008 Tc -23.35 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td [(nning. )-359(At)-359(this )-109(point,)]TJ /TT0 1 Tf 9.851 0 Td (SIGHUP)Tj /T1_0 1 Tf 3.959 0 Td [(is )-109(still )-109(ignor)18(ed, )-109(so )-109(we )-109(need )-109(to )-109(r)18(eset )-109(the )-109(disposition )-109(to)]TJ -14.8 -1.2 Td [(the default behavior; otherwise, the thr)18(ead calling)]TJ /TT0 1 Tf 22.264 0 Td (sigwait)Tj /T1_0 1 Tf 4.45 0 Td (may never see the signal.)Tj -0.092 Tc -24.914 -1.2 Td [(We )-271(b)]TJ 0 Tc 2.277 0 Td [(lock )-87(all )-87(signals, )-87(as )-87(is )-87(r)17(ecommended )-87(for )-87(multithr)18(eaded )-87(pr)18(ograms, )-87(and )-87(cr)18(eate )-87(a)]TJ -4.077 -1.2 Td [(thr)18(ead )-145(to )-145(handle )-145(signals.)-644(The )-145(thr)18(ead\325s )-145(only )-145(job )-145(is )-145(to )-145(wait )-145(for)]TJ /TT0 1 Tf 28.468 0 Td (SIGHUP)Tj /T1_0 1 Tf 3.995 0 Td (and)Tj /TT0 1 Tf 2.088 0 Td (SIGTERM)Tj /T1_0 1 Tf (.)Tj -34.55 -1.2 Td [(When )-5(it )-5(r)19(eceives)]TJ /TT0 1 Tf 7.562 0 Td (SIGHUP)Tj /T1_0 1 Tf 0.2546 Tc (,t)Tj 0 Tc 4.431 0 Td [(he )-5(thr)18(ead )-5(calls)]TJ /TT0 1 Tf 6.65 0 Td (reread)Tj /T1_0 1 Tf 3.855 0 Td [(to )-5(r)18(er)18(ead )-5(its )-5(con\336guration )-5(\336le.)-503(When)]TJ -22.497 -1.2 Td [(it r)18(eceives)]TJ /TT0 1 Tf 4.655 0 Td (SIGTERM)Tj /T1_0 1 Tf 0.25 Tc (,t)Tj 0 Tc 5.026 0 Td [(he thr)18(ead logs a message and exits.)]TJ -7.881 -1.2 Td [(Recall )-248(fr)18(om )-248(Figur)]TJ 0.4976 Tc 8.19 0 Td (e1)Tj 0 Tc 1.477 0 Td [(0.1 )-248(that )-248(the )-248(default )-248(action )-248(for)]TJ /TT0 1 Tf 14.463 0 Td (SIGHUP)Tj /T1_0 1 Tf 4.098 0 Td (and)Tj /TT0 1 Tf 2.191 0 Td (SIGTERM)Tj /T1_0 1 Tf 4.698 0 Td [(is )-248(to)]TJ -36.915 -1.2 Td [(terminate )-111(the )-111(pr)17(ocess. )-361(Because)-362(we )-111(block )-111(these )-111(signals, )-111(the )-111(daemon )-111(will )-111(not )-111(die )-111(when)]TJ -0 -1.2 Td [(one )-32(of )-32(them )-32(is )-32(sent )-32(to )-32(the )-32(pr)15(ocess. )-282(Instead,)-283(the )-32(thr)18(ead )-32(calling)]TJ /TT0 1 Tf 27.451 0 Td (sigwait)Tj /T1_0 1 Tf 4.482 0 Td [(will )-32(r)18(eturn )-32(with)]TJ -31.933 -1.2 Td [(an indication that the signal has been r)18(eceived.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3287.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 9.9982 0 0 9.9982 93.5832 292.6663 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(Not )-114(all )-114(daemons )-114(ar)]TJ 0.3639 Tc 8.779 0 Td (em)Tj 0 Tc 1.726 0 Td [(ultithr)18(eaded. )-364(The)-364(pr)18(ogram )-114(in )-114(Figur)]TJ 0.3638 Tc 16.219 0 Td (e1)Tj 0 Tc 1.343 0 Td [(3.8 )-114(shows )-114(how )-114(a )-114(single-)]TJ -28.067 -1.2 Td [(thr)18(eaded daemon can catch)]TJ /TT0 1 Tf 12.388 0 Td (SIGHUP)Tj /T1_0 1 Tf 3.85 0 Td [(and r)18(er)18(ead its con\336guration \336le.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2495.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9978 0 0 8.9978 129.5689 239.9604 Tm (#include "apue.h")Tj T* (#include )Tj T* (#include )Tj 0 -2.021 TD (extern int lockfile\(int\);)Tj 0 -1.189 TD (extern int already_running\(void\);)Tj 0 -2.021 TD (void)Tj 0 -1.189 TD (reread\(void\))Tj T* ({)Tj 2.4 -1.189 Td (/* ... */)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47536 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.8)]TJ 34.385 0 Td [(Thr)18(eads )-250(and )-250(Signals)]TJ /T1_1 1 Tf 11.448 0 Td (455)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(caught )-29(\(the )-29(pr)18(ocess )-29(has )-29(established )-29(a )-29(signal )-29(handler )-29(by )-29(using)]TJ /TT0 1 Tf 27.435 0 Td (sigaction)Tj /T1_0 1 Tf 0.2795 Tc (,f)Tj 0 Tc 6.262 0 Td [(or )-29(example\))]TJ -33.698 -1.2 Td [(and )-161(a )-161(thr)18(ead )-161(is )-161(waiting )-161(for )-161(the )-161(same )-161(signal )-161(in )-161(a )-161(call )-161(to)]TJ /TT0 1 Tf 25.863 0 Td (sigwait)Tj /T1_0 1 Tf [(,)-411(it)-411(i)]TJ 0.4105 Tc 6.179 0 Td (sl)Tj 0 Tc 1.126 0 Td [(eft )-160(up )-160(to )-160(the)]TJ -33.167 -1.2 Td [(implementation )-94(to )-94(decide )-94(which )-94(way )-94(to )-94(deliver )-94(the )-94(signal.)-594(The )-94(implementation )-94(could)]TJ 0 -1.2 TD (either allow)Tj /TT0 1 Tf 5.514 0 Td (sigwait)Tj /T1_0 1 Tf 4.45 0 Td [(to r)18(eturn or invoke the signal handler)]TJ 0.25 Tc 16.491 0 Td (,b)Tj 0 Tc 1.053 0 Td (ut not both.)Tj -0.092 Tc -25.708 -1.2 Td [(To )-343(s)]TJ 0 Tc 1.9 0 Td [(end )-159(a )-159(signal )-159(to )-159(a )-159(pr)18(ocess, )-159(we )-159(call)]TJ /TT0 1 Tf 15.842 0 Td (kill)Tj /T1_0 1 Tf 2.809 0 Td [(\(Section )-159(10.9\).)]TJ -0.092 Tc 6.926 0 Td [(To )-343(s)]TJ 0 Tc 1.9 0 Td [(end )-159(a )-159(signal )-159(to )-159(a)]TJ -31.177 -1.2 Td [(thr)18(ead, we call)]TJ /TT0 1 Tf 6.714 0 Td (pthread_kill)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5917 592.2645 Tm (#include )Tj 0 -1.902 TD (int pthread_kill\(pthread_t)Tj /T1_2 1 Tf 16.2 0 Td [(thr)18(ead)]TJ /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.337 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (signo)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -1.056 -1.902 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5535.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5844 539.9952 Tm [(We )-237(c)]TJ 0 Tc 2.134 0 Td [(an )-53(pass )-53(a)]TJ /T1_2 1 Tf 4.44 0 Td (signo)Tj /T1_0 1 Tf 2.47 0 Td [(value )-53(of )-53(0 )-53(to )-53(check )-53(for )-53(existence )-53(of )-53(the )-53(thr)19(ead. )-303(If)-303(the )-53(default )-53(action)]TJ -9.043 -1.2 Td [(for )-60(a )-60(signal )-60(is )-60(to )-60(terminate )-60(the )-60(pr)17(ocess, )-60(then )-60(sending )-60(the )-60(signal )-60(to )-60(a )-60(thr)18(ead )-60(will )-60(still )-60(kill)]TJ 0 -1.2 TD (the entir)Tj 0.25 Tc 3.692 0 Td (ep)Tj -0.018 Tc 1.33 0 Td (ro)Tj 0 Tc 0.923 0 Td (cess.)Tj -4.145 -1.2 Td [(Note )-55(that )-55(alarm )-55(timers )-55(ar)]TJ 0.3046 Tc 11.378 0 Td [(ea )555(p)]TJ -0.018 Tc 2.189 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-55(r)18(esour)18(ce, )-55(and )-55(all )-55(thr)18(eads )-55(shar)]TJ 0.3047 Tc 15.23 0 Td (et)Tj 0 Tc 1.11 0 Td [(he )-55(same )-55(set )-55(of)]TJ -32.631 -1.2 Td [(alarms. )-393(Thus,)-392(it )-143(is )-143(not )-143(possible )-143(for )-143(multiple )-143(thr)18(eads )-143(in )-143(a )-143(pr)18(ocess )-143(to )-143(use )-143(alarm )-143(timers)]TJ T* [(without )-555(interfering )-555(\(or )-555(cooperating\) )-555(with )-555(one )-555(another )-555(\(this )-555(is )-555(the )-555(subject )-555(of)]TJ T* [(Exer)18(cise 12.6\).)]TJ /TT1 1 Tf -3.6 -3.12 Td (Example)Tj /T1_0 1 Tf 3.6 -2.16 Td [(Recall )-49(that )-49(in )-49(Figur)]TJ 0.2992 Tc 8.561 0 Td (e1)Tj 0 Tc 1.278 0 Td [(0.23, )-49(we )-49(waited )-49(for )-49(the )-49(signal )-49(handler )-49(to )-49(set )-49(a )-49(\337ag )-49(indicating )-49(that)]TJ -9.839 -1.2 Td [(the )-2(main )-2(pr)18(ogram )-2(should )-2(exit.)-501(The )-2(only )-2(thr)18(eads )-2(of )-2(contr)18(ol )-2(that )-2(could )-2(r)8(un )-2(wer)]TJ 0.2519 Tc 34.374 0 Td (et)Tj 0 Tc 1.057 0 Td [(he )-2(main)]TJ -35.431 -1.2 Td [(thr)18(ead )-63(and )-63(the )-63(signal )-63(handler)75(,)-313(so)-313(b)1(locking )-63(the )-63(signals )-63(was )-63(suf)18(\336cient )-63(to )-63(avoid )-63(missing )-63(a)]TJ 0 -1.2 Td [(change )-11(to )-11(the )-11(\337ag.)]TJ -0.055 Tc 8.61 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-11(thr)18(eads, )-11(we )-11(need )-11(to )-11(use )-11(a )-11(mutex )-11(to )-11(pr)19(otect )-11(the )-11(\337ag, )-11(as )-11(we )-11(show)]TJ -9.846 -1.2 Td (in Figur)Tj 0.25 Tc 3.506 0 Td (e1)Tj 0 Tc 1.229 0 Td (2.16.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3600.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 350.4959 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD [(int )-4800(quitflag;)-1800(/* set nonzero by thread */)]TJ 0 -1.189 TD [(sigset_t )-1800(mask;)]TJ 0 -2.14 TD (pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;)Tj 0 -1.189 TD (pthread_cond_t waitloc = PTHREAD_COND_INITIALIZER;)Tj 0 -2.14 TD (void *)Tj 0 -1.189 TD (thr_fn\(void *arg\))Tj T* ({)Tj 2.4 -1.189 Td (int err, signo;)Tj 0 -2.14 TD (for \(;;\) {)Tj 2.4 -1.189 Td (err = sigwait\(&mask, &signo\);)Tj 0 -1.189 TD (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "sigwait failed"\);)Tj -2.4 -1.189 Td (switch \(signo\) {)Tj T* (case SIGINT:)Tj 2.4 -1.189 Td (printf\("\\ninterrupt\\n"\);)Tj T* (break;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47537 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (364)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm ({)Tj 2.4 -1.189 Td (while \(sigflag == 0\))Tj 2.4 -1.189 Td [(sigsuspend\(&zeromask\); )-600(/*)-600(and wait for child */)]TJ -2.4 -1.189 Td (sigflag = 0;)Tj 0 -1.783 TD (/* Reset signal mask to original value */)Tj 0 -1.189 TD (if \(sigprocmask\(SIG_SETMASK, &oldmask, NULL\) < 0\))Tj 2.4 -1.189 Td (err_sys\("SIG_SETMASK error"\);)Tj -4.8 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5852.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 208.7349 569.1807 Tm (Figure 10.24)Tj /T1_1 1 Tf 6.195 0 Td [(Routines to allow a par)18(ent and child to synchr)18(onize)]TJ -0.092 Tc 9.9988 0 0 9.9988 147.5825 545.1836 Tm [(We )-188(u)]TJ 0 Tc 2.244 0 Td [(se )-4(the )-4(two )-4(user)18(-de\336ned )-4(signals:)]TJ /TT0 1 Tf 14.166 0 Td (SIGUSR1)Tj /T1_1 1 Tf 4.454 0 Td [(is )-4(sent )-4(by )-4(the )-4(par)19(ent )-4(to )-4(the )-4(child, )-4(and)]TJ /TT0 1 Tf -22.663 -1.2 Td (SIGUSR2)Tj /T1_1 1 Tf 4.846 0 Td [(is )-396(sent )-396(by )-396(the )-396(child )-396(to )-396(the )-396(par)17(ent. )-646(In)-646(Figur)]TJ 0.6461 Tc 21.982 0 Td (e1)Tj 0 Tc 1.625 0 Td [(5.7, )-396(we )-396(show )-396(another)]TJ -28.453 -1.2 Td (implementation of these \336ve functions using pipes.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5212.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 147.5734 494.7599 Tm (The)Tj /TT0 1 Tf 1.928 0 Td (sigsuspend)Tj /T1_1 1 Tf 6.254 0 Td [(function )-4(is )-4(\336ne )-4(if )-4(we )-4(want )-4(to )-4(go )-4(to )-4(sleep )-4(while )-4(we\325r)]TJ 0.2538 Tc 22.624 0 Td (ew)Tj 0 Tc 1.567 0 Td [(aiting )-4(for )-4(a)]TJ -34.172 -1.2 Td [(signal )-51(to )-51(occur )-51(\(as )-51(we\325ve )-51(shown )-51(in )-51(the )-51(pr)21(evious )-50(two )-50(examples\), )-50(but )-50(what )-50(if )-50(we )-50(want )-50(to)]TJ 0 -1.2 TD [(call )-159(other )-159(system )-159(functions )-159(while )-159(we\325r)]TJ 0.4093 Tc 17.568 0 Td (ew)Tj 0 Tc 1.722 0 Td [(aiting? )-409(Unfortunately)]TJ 0.4093 Tc 9.835 0 Td (,t)Tj 0 Tc 0.985 0 Td [(his )-159(pr)18(oblem )-159(has )-159(no)]TJ -30.111 -1.2 Td [(bulletpr)18(oof )-114(solution )-114(unless )-114(we )-114(use )-114(multiple )-114(thr)18(eads )-114(and )-114(dedicate )-114(a )-114(separate )-114(thr)18(ead )-114(to)]TJ T* (handling signals, as we discuss in Section 12.8.)Tj -0.055 Tc 1.8 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(thout )-117(using )-117(thr)18(eads, )-117(the )-117(best )-117(we )-117(can )-117(do )-117(is )-117(to )-117(set )-117(a )-117(global )-117(variable )-117(in )-117(the )-117(signal)]TJ -3.036 -1.2 Td [(handler )-94(when )-94(the )-94(signal )-94(occurs.)-592(For )-94(example, )-94(if )-94(we )-94(catch )-94(both)]TJ /TT0 1 Tf 28.82 0 Td (SIGINT)Tj /T1_1 1 Tf 3.944 0 Td (and)Tj /TT0 1 Tf 2.037 0 Td (SIGALRM)Tj /T1_1 1 Tf -34.8 -1.2 Td [(and )-309(install )-309(the )-309(signal )-309(handlers )-309(using )-309(the)]TJ /TT0 1 Tf 20.046 0 Td (signal_intr)Tj /T1_1 1 Tf 7.159 0 Td [(function, )-309(the )-309(signals )-309(will)]TJ -27.205 -1.2 Td [(interr)8(upt )-192(any )-192(slow )-192(system )-192(call )-192(that )-192(is )-192(blocked.)-692(The )-192(signals )-192(ar)]TJ 0.4418 Tc 28.807 0 Td (em)Tj 0 Tc 1.804 0 Td [(ost )-192(likely )-192(to )-192(occur)]TJ -30.611 -1.2 Td [(when )-26(we\325r)]TJ 0.2763 Tc 4.721 0 Td (eb)Tj 0 Tc 1.308 0 Td [(locked )-26(in )-26(a )-26(call )-26(to )-26(the)]TJ /TT0 1 Tf 9.743 0 Td (read)Tj /T1_1 1 Tf 2.676 0 Td [(function )-26(waiting )-26(for )-26(input )-26(fr)17(om )-26(a )-26(slow )-26(device.)]TJ -18.449 -1.2 Td [(\(This )-131(is )-131(especially )-131(tr)8(ue )-131(for)]TJ /TT0 1 Tf 12.29 0 Td (SIGALRM)Tj /T1_1 1 Tf 0.3814 Tc (,s)Tj 0 Tc 5.255 0 Td [(ince )-131(we )-131(set )-131(the )-131(alarm )-131(clock )-131(to )-131(pr)18(event )-131(us )-131(fr)14(om)]TJ -17.545 -1.2 Td [(waiting for)18(ever for input.\))-500(The code to handle this looks similar to the following:)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 169.1692 346.0863 Tm [(if \(intr_flag\))-3600(/* flag set by our SIGINT handler */)]TJ 2.4 -1.189 Td (handle_intr\(\);)Tj -2.4 -1.189 Td [(if \(alrm_flag\))-3600(/* flag set by our SIGALRM handler */)]TJ 2.4 -1.189 Td (handle_alrm\(\);)Tj -2.4 -1.783 Td (/* signals occurring in here are lost */)Tj 0 -1.783 TD (while \(read\( ... \) < 0\) {)Tj 2.4 -1.189 Td (if \(errno == EINTR\) {)Tj 2.4 -1.189 Td (if \(alrm_flag\))Tj 2.4 -1.189 Td (handle_alrm\(\);)Tj -2.4 -1.189 Td (else if \(intr_flag\))Tj 2.4 -1.189 Td (handle_intr\(\);)Tj 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (/* some other error */)Tj -2.4 -1.189 Td (})Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(n == 0\) {)Tj 0.6 -1.189 Td (/* end of file */)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (/* process input */)Tj -2.4 -1.189 Td (})Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47538 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (324)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Then the pr)18(ototype becomes)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 652.2609 Tm (Sigfunc *signal\(int, Sigfunc *\);)Tj /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5922 634.2619 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ve )-43(included )-43(this)]TJ /TT0 1 Tf 7.737 0 Td (typedef)Tj /T1_1 1 Tf 4.493 0 Td (in)Tj /TT0 1 Tf 1.166 0 Td (apue.h)Tj /T1_1 1 Tf 3.893 0 Td [(\(Appendix )-43(B\) )-43(and )-43(use )-43(it )-43(with )-43(the )-43(functions )-43(in)]TJ -18.677 -1.2 Td [(this chapter)74(.)]TJ 1.8 -1.2 Td [(If )-7(we )-7(examine )-7(the )-7(system\325s )-7(header)]TJ /TT0 1 Tf 15.481 0 Td ()Tj /T1_1 1 Tf [(,)-257(we)-257(will )-7(pr)18(obably )-7(\336nd )-7(declarations)]TJ -17.281 -1.2 Td (of the form)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5908 581.5651 Tm [(#define SIG_ERR)-1800(\(void \(*\)\(\)\)-1)]TJ 0 -1.189 TD [(#define SIG_DFL)-1800(\(void \(*\)\(\)\)0)]TJ T* [(#define SIG_IGN)-1800(\(void \(*\)\(\)\)1)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5919 542.1675 Tm [(These )-70(constants )-70(can )-70(be )-70(used )-70(in )-70(place )-70(of )-70(the )-70(\324)41(\324pointer )-69(to )-69(a )-69(function )-69(that )-69(takes )-69(an )-69(integer)]TJ 0 -1.2 TD [(ar)18(gument )-67(and )-67(r)18(eturns )-67(nothing,\325)]TJ 0.3166 Tc 14.091 0 Td (\325t)Tj 0 Tc 0.921 0 Td [(he )-67(second )-67(ar)18(gument )-67(to)]TJ /TT0 1 Tf 10.592 0 Td (signal)Tj /T1_1 1 Tf 0.3167 Tc (,a)Tj 0 Tc 4.667 0 Td [(nd )-67(the )-67(r)18(eturn )-67(value)]TJ -30.27 -1.2 Td [(fr)18(om)]TJ /TT0 1 Tf 2.423 0 Td (signal)Tj /T1_1 1 Tf 0.5337 Tc (.T)Tj 0 Tc 4.997 0 Td [(he )-34(thr)18(ee )-34(values )-34(used )-34(for )-34(these )-34(constants )-34(need )-34(not )-34(be)]TJ /TT1 1 Tf 23.474 0 Td (!)Tj /T1_1 1 Tf [(1, )-34(0, )-34(and )-34(1.)-532(They)]TJ -30.894 -1.2 Td [(must )-144(be )-144(thr)19(ee )-144(values )-144(that )-144(can )-144(never )-144(be )-144(the )-144(addr)18(ess )-144(of )-144(any )-144(declarable )-144(function.)-642(Most)]TJ -0 -1.2 Td (UNIX systems use the values shown.)Tj /TT2 1 Tf -3.6 -2.4 Td (Example)Tj /T1_1 1 Tf 3.6 -2.16 Td (Figur)Tj 0.3835 Tc 2.383 0 Td (e1)Tj 0 Tc 1.362 0 Td [(0.2 )-133(shows )-133(a )-133(simple )-133(signal )-133(handler )-133(that )-133(catches )-133(either )-133(of )-133(the )-133(two )-133(user)12(-de\336ned)]TJ -3.745 -1.2 Td [(signals )-36(and )-36(prints )-36(the )-36(signal )-36(number)]TJ 0.5364 Tc 16.264 0 Td (.I)Tj 0.2864 Tc 1.123 0 Td (nS)Tj 0 Tc 1.393 0 Td [(ection )-36(10.10, )-36(we )-36(describe )-36(the)]TJ /TT0 1 Tf 12.976 0 Td (pause)Tj /T1_1 1 Tf 3.286 0 Td (function,)Tj -35.043 -1.2 Td [(which simply suspends the calling pr)18(ocess until a signal is r)18(eceived.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4174.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 407.8501 Tm (#include "apue.h")Tj 0 -1.902 TD [(static void sig_usr\(int\);)-1800(/* one handler for both signals */)]TJ T* (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (if \(signal\(SIGUSR1, sig_usr\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("can\325t catch SIGUSR1"\);)Tj -2.4 -1.189 Td (if \(signal\(SIGUSR2, sig_usr\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("can\325t catch SIGUSR2"\);)Tj -2.4 -1.189 Td (for \( ; ; \))Tj 2.4 -1.189 Td (pause\(\);)Tj -4.8 -1.189 Td (})Tj 0 -1.902 TD (static void)Tj 0 -1.189 TD [(sig_usr\(int signo\))-3600(/* argument is signal number */)]TJ T* ({)Tj 2.4 -1.189 Td (if \(signo == SIGUSR1\))Tj 2.4 -1.189 Td (printf\("received SIGUSR1\\n"\);)Tj -2.4 -1.189 Td (else if \(signo == SIGUSR2\))Tj 2.4 -1.189 Td (printf\("received SIGUSR2\\n"\);)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (err_dump\("received signal %d\\n", signo\);)Tj -4.8 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1591.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 215.0253 143.1122 Tm (Figure 10.2)Tj /T1_1 1 Tf 5.695 0 Td [(Simple pr)18(ogram to catch)]TJ /TT0 1 Tf 11.096 0 Td (SIGUSR1)Tj /T1_1 1 Tf 4.45 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (SIGUSR2)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47539 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.16)]TJ /TT0 1 Tf 33.403 0 Td (sigsuspend)Tj /T1_0 1 Tf 6.5 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (361)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm (static void)Tj 0 -1.189 TD (sig_int\(int signo\))Tj T* ({)Tj 2.4 -1.189 Td (pr_mask\("\\nin sig_int: "\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6227.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 229.2845 606.6262 Tm (Figure 10.22)Tj /T1_0 1 Tf 6.195 0 Td [(Pr)18(otecting a critical r)18(egion fr)18(om a signal)]TJ 9.9988 0 0 9.9988 129.5846 582.6291 Tm (When)Tj /TT0 1 Tf 2.989 0 Td (sigsuspend)Tj /T1_0 1 Tf -0.018 Tc 6.346 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns, )-96(it )-96(sets )-96(the )-96(signal )-96(mask )-96(to )-96(its )-96(value )-96(befor)]TJ 0.3456 Tc 20.993 0 Td (et)Tj 0 Tc 1.151 0 Td [(he )-96(call.)-596(In )-96(this)]TJ -32.334 -1.2 Td [(example, )-51(the)]TJ /TT0 1 Tf 5.989 0 Td (SIGINT)Tj /T1_0 1 Tf 3.901 0 Td [(signal )-51(will )-51(be )-51(blocked, )-51(so )-51(we )-51(r)16(estor)]TJ 0.3013 Tc 15.733 0 Td (et)Tj 0 Tc 1.106 0 Td [(he )-51(signal )-51(mask )-51(to )-51(the )-51(value)]TJ -26.729 -1.2 Td (that we saved earlier \()Tj /TT0 1 Tf (oldmask)Tj /T1_0 1 Tf (\).)Tj 1.8 -1.2 Td [(Running the pr)18(ogram fr)18(om Figur)]TJ 0.25 Tc 14.631 0 Td (e1)Tj 0 Tc 1.229 0 Td [(0.22 pr)18(oduces the following output:)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5826 529.9354 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (program start:)Tj T* (in critical region: SIGINT)Tj /TT1 1 Tf T* (\366C)Tj /T1_2 1 Tf 20 0 Td (type the interrupt character)Tj /TT0 1 Tf -20 -1.189 Td (in sig_int: SIGINT SIGUSR1)Tj T* (after return from sigsuspend: SIGINT)Tj T* (program exit:)Tj /T1_0 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5847 447.7457 Tm [(We )-288(a)]TJ 0 Tc 2.241 0 Td (dded)Tj /TT0 1 Tf 2.666 0 Td (SIGUSR1)Tj /T1_0 1 Tf 4.554 0 Td [(to )-104(the )-104(mask )-104(installed )-104(when )-104(we )-104(called)]TJ /TT0 1 Tf 17.298 0 Td (sigsuspend)Tj /T1_0 1 Tf 6.354 0 Td [(so )-104(that )-104(when)]TJ -33.112 -1.2 Td [(the )-108(signal )-108(handler )-108(ran, )-108(we )-108(could )-108(tell )-108(that )-108(the )-108(mask )-108(had )-108(actually )-108(changed.)]TJ -0.092 Tc 33.989 0 Td [(We )-292(c)]TJ 0 Tc 2.189 0 Td [(an )-108(see)]TJ -36.178 -1.2 Td (that when)Tj /TT0 1 Tf 4.711 0 Td (sigsuspend)Tj /T1_0 1 Tf -0.018 Tc 6.25 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns, it r)18(estor)18(es the signal mask to its value befor)]TJ 0.25 Tc 21.912 0 Td (et)Tj 0 Tc 1.055 0 Td (he call.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4238.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 9.9982 0 0 9.9982 93.5832 393.7281 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.04 Td [(Another )-75(use )-75(of)]TJ /TT0 1 Tf 7.048 0 Td (sigsuspend)Tj /T1_0 1 Tf 6.325 0 Td [(is )-75(to )-75(wait )-75(for )-75(a )-75(signal )-75(handler )-75(to )-75(set )-75(a )-75(global )-75(variable.)-575(In)]TJ -13.373 -1.2 Td [(the )-182(pr)18(ogram )-182(shown )-182(in )-182(Figur)]TJ 0.4325 Tc 13.199 0 Td (e1)Tj 0 Tc 1.411 0 Td [(0.23, )-182(we )-182(catch )-182(both )-182(the )-182(interr)8(upt )-182(signal )-182(and )-182(the )-182(quit)]TJ -14.611 -1.2 Td [(signal, but want to wake up the main r)18(outine only when the quit signal is caught.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3422.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9978 0 0 8.9978 129.5689 332.6182 Tm (#include "apue.h")Tj 0 -1.902 TD [(volatile sig_atomic_t)-1800(quitflag; )-1200(/*)-600(set nonzero by signal handler */)]TJ T* (static void)Tj 0 -1.189 TD [(sig_int\(int signo\))-1200(/* one signal handler for SIGINT and SIGQUIT */)]TJ T* ({)Tj 2.4 -1.189 Td (if \(signo == SIGINT\))Tj 2.4 -1.189 Td (printf\("\\ninterrupt\\n"\);)Tj -2.4 -1.189 Td (else if \(signo == SIGQUIT\))Tj 2.4 -1.189 Td [(quitflag = 1;)-1800(/* set flag for main loop */)]TJ -4.8 -1.189 Td (})Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(sigset_t )-1800(newmask,)-600(oldmask, zeromask;)]TJ 0 -1.902 TD (if \(signal\(SIGINT, sig_int\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("signal\(SIGINT\) error"\);)Tj -2.4 -1.189 Td (if \(signal\(SIGQUIT, sig_int\) == SIG_ERR\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47540 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (360)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td (Figur)Tj 0.3746 Tc 2.383 0 Td (e1)Tj 0 Tc 1.354 0 Td [(0.22 )-125(shows )-125(the )-125(corr)19(ect )-125(way )-125(to )-125(pr)18(otect )-125(a )-125(critical )-125(r)18(egion )-125(of )-125(code )-125(fr)18(om )-125(a )-125(speci\336c)]TJ -3.737 -1.2 Td (signal.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6258.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 616.225 Tm (#include "apue.h")Tj 0 -1.902 TD (static void sig_int\(int\);)Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(sigset_t )-1800(newmask,)-600(oldmask, waitmask;)]TJ 0 -1.902 TD (pr_mask\("program start: "\);)Tj T* (if \(signal\(SIGINT, sig_int\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("signal\(SIGINT\) error"\);)Tj -2.4 -1.189 Td (sigemptyset\(&waitmask\);)Tj 0 -1.189 TD (sigaddset\(&waitmask, SIGUSR1\);)Tj T* (sigemptyset\(&newmask\);)Tj 0 -1.189 TD (sigaddset\(&newmask, SIGINT\);)Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*B)Tj 0 Tc 1.8 0 Td (lock SIGINT and save current signal mask.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(sigprocmask\(SIG_BLOCK, &newmask, &oldmask\) < 0\))Tj 2.4 -1.189 Td (err_sys\("SIG_BLOCK error"\);)Tj -2.4 -1.902 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (ritical region of code.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (pr_mask\("in critical region: "\);)Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (ause, allowing all signals except SIGUSR1.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(sigsuspend\(&waitmask\) != -1\))Tj 2.4 -1.189 Td (err_sys\("sigsuspend error"\);)Tj -2.4 -1.902 Td (pr_mask\("after return from sigsuspend: "\);)Tj T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*R)Tj 0 Tc 1.8 0 Td (eset signal mask which unblocks SIGINT.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(sigprocmask\(SIG_SETMASK, &oldmask, NULL\) < 0\))Tj 2.4 -1.189 Td (err_sys\("SIG_SETMASK error"\);)Tj -2.4 -1.902 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*A)Tj 0 Tc 1.8 0 Td (nd continue processing ...)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (pr_mask\("program exit: "\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47541 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (358)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 1734 6494 432 144 re S Q BT /TT0 1 Tf 7.9995 0 0 7.9995 185.3889 654.8007 Tm (main)Tj /TT1 1 Tf -1.2 -2.25 Td (signal\(\))Tj 0 -0.9 TD (signal\(\))Tj -0.3 -0.9 Td (pr_mask\(\))Tj -0.6 -0.9 Td (sigsetjmp\(\))Tj 1.2 -0.9 Td (pause\(\))Tj ET q 0.99994 0 0 0.99994 0 0 cm q 1 0 0 1 281.4 591.8 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099994 0 0 0.099994 0 0 cm 1 j 1 J q 1 0 0 1 2814 5918 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1950.25 5918.25 cm 0 0 m 792 0 l S Q Q BT /TT1 1 Tf 7.999 0 0 7.999 203.6436 594.9686 Tm (SIGUSR1)Tj /T1_1 1 Tf 4.45 0 Td [(deliver)18(ed)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2814 5846 648 144 re S Q BT /TT0 1 Tf 7.9986 0 0 7.9986 294.547 589.9338 Tm (sig_usr1)Tj /TT1 1 Tf -0.3 -2.25 Td (pr_mask\(\))Tj 0.6 -0.9 Td (alarm\(\))Tj 0.3 -0.9 Td (time\(\))Tj T* (time\(\))Tj T* (time\(\))Tj ET q 0.099982 0 0 0.099982 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3138.25 5414.25 cm 0 0 m 0 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3138.25 5378.25 cm 0 0 m 0 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3138.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3138.25 5306.25 cm 0 0 m 0 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3138.25 5270.25 cm 0 0 m 0 0 l S Q Q q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 313.8 519.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 3138 5198 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 5270.25 cm 0 0 m 0 0 l S Q Q q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 421.8 519.8 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 4218 5198 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 5198.25 cm 0 0 m 1008 0 l S Q Q BT /TT1 1 Tf 7.9971 0 0 7.9971 333.148 522.8517 Tm (SIGALRM)Tj /T1_1 1 Tf 4.45 0 Td [(deliver)18(ed)]TJ ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 4218 5126 648 144 re S Q BT /TT0 1 Tf 7.9966 0 0 7.9966 434.8173 517.8225 Tm (sig_alrm)Tj /TT1 1 Tf -0.3 -2.25 Td (pr_mask\(\))Tj 0.3 -0.9 Td (return\(\))Tj ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 313.8 494.6 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3138 4946 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4218.25 4946.25 cm 0 0 m -1008 0 l S Q Q BT /T1_1 1 Tf -0.018 Tc 7.9962 0 0 7.9962 320.706 487.6059 Tm (re)Tj 0 Tc 0.856 0 Td [(turn fr)18(om signal handler)]TJ ET q 0.099952 0 0 0.099952 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3138.25 4946.25 cm 0 0 m 0 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3138.25 4910.25 cm 0 0 m 0 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3138.25 4874.25 cm 0 0 m 0 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3138.25 4838.25 cm 0 0 m 0 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3138.25 4802.25 cm 0 0 m 0 0 l S Q Q q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 313.8 473 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 3138 4730 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 4802.25 cm 0 0 m 0 0 l S Q Q BT /TT1 1 Tf 7.9952 0 0 7.9952 292.0247 467.3595 Tm (pr_mask\(\))Tj -0.9 -0.9 Td (siglongjmp\(\))Tj ET q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 227.4 462.2 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 2274 4622 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2814.25 4622.25 cm 0 0 m -468 0 l S Q Q BT /TT1 1 Tf 7.9947 0 0 7.9947 168.4888 460.1362 Tm (sigsetjmp\(\))Tj 0.6 -0.9 Td (pr_mask\(\))Tj 0.9 -0.9 Td (exit\(\))Tj /T1_0 1 Tf 3.4 -2.63 Td (Figure 10.21)Tj /T1_1 1 Tf -0.055 Tc 6.195 0 Td (Ti)Tj 0 Tc 0.849 0 Td [(meline for example pr)18(ogram handling two signals)]TJ 9.9934 0 0 9.9934 147.5029 394.7396 Tm [(Let\325s examine the output when the pr)18(ogram in Figur)]TJ 0.25 Tc 23.218 0 Td (e1)Tj 0 Tc 1.229 0 Td (0.20 is executed:)Tj /TT1 1 Tf 8.9941 0 0 8.9941 147.5027 378.0506 Tm ($)Tj /TT0 1 Tf 1.2 0 Td (./a.out &)Tj /T1_2 1 Tf 18.8 0 Td [(start pr)18(ocess in backgr)18(ound)]TJ /TT1 1 Tf -20 -1.189 Td (starting main:)Tj 0 -1.189 TD [([1] )-1200(531)]TJ /T1_2 1 Tf 20 0 Td [(the job-contr)18(ol shell prints its pr)18(ocess ID)]TJ /TT1 1 Tf -20 -1.189 Td ($)Tj /TT0 1 Tf 1.2 0 Td (kill -USR1 531)Tj /T1_2 1 Tf 18.8 0 Td [(send the pr)18(ocess)]TJ /TT1 1 Tf 6.695 0 Td (SIGUSR1)Tj -26.695 -1.189 Td (starting sig_usr1: SIGUSR1)Tj 0 -1.189 TD [($)-600(in)-600(sig_alrm: SIGUSR1 SIGALRM)]TJ 0 -1.189 TD (finishing sig_usr1: SIGUSR1)Tj T* (ending main:)Tj /T1_2 1 Tf 20 -1.189 Td [(just pr)18(ess RETURN)]TJ /TT1 1 Tf -20 -1.189 Td [([1] +)-1200(Done )-4800(./a.out)-600(&)]TJ /T1_1 1 Tf 9.9934 0 0 9.9934 129.5147 263.826 Tm [(The )-3(output )-3(is )-3(what )-3(we )-3(expect: )-3(when )-3(a )-3(signal )-3(handler )-3(is )-3(invoked, )-3(the )-3(signal )-3(being )-3(caught)]TJ 0 -1.2 TD [(is )-59(added )-59(to )-59(the )-59(curr)18(ent )-59(signal )-59(mask )-59(of )-59(the )-59(pr)15(ocess. )-309(The)-310(original )-59(mask )-59(is )-59(r)17(estor)18(ed )-59(when)]TJ -0 -1.2 Td [(the )-55(signal )-55(handler )-55(r)19(eturns. )-305(Also,)]TJ /TT1 1 Tf 14.97 0 Td (siglongjmp)Tj /T1_1 1 Tf -0.018 Tc 6.305 0 Td (re)Tj 0 Tc 0.856 0 Td [(stor)18(es )-55(the )-55(signal )-55(mask )-55(that )-55(was )-55(saved)]TJ -22.131 -1.2 Td (by)Tj /TT1 1 Tf 1.359 0 Td (sigsetjmp)Tj /T1_1 1 Tf (.)Tj 0.441 -1.2 Td [(If )-238(we )-238(change )-238(the )-238(pr)18(ogram )-238(in )-238(Figur)]TJ 0.4884 Tc 16.557 0 Td (e1)Tj 0 Tc 1.467 0 Td [(0.20 )-238(so )-238(that )-238(the )-238(calls )-238(to)]TJ /TT1 1 Tf 11.594 0 Td (sigsetjmp)Tj /T1_1 1 Tf 5.889 0 Td (and)Tj /TT1 1 Tf -37.307 -1.2 Td (siglongjmp)Tj /T1_1 1 Tf 6.359 0 Td (ar)Tj 0.3591 Tc 0.877 0 Td (er)Tj 0 Tc 1.215 0 Td [(eplaced )-109(with )-109(calls )-109(to)]TJ /TT1 1 Tf 9.696 0 Td (setjmp)Tj /T1_1 1 Tf 3.959 0 Td (and)Tj /TT1 1 Tf 2.052 0 Td (longjmp)Tj /T1_1 1 Tf 4.559 0 Td [(on )-109(Linux )-109(\(or)]TJ /TT1 1 Tf 6.082 0 Td (_setjmp)Tj /T1_1 1 Tf -34.8 -1.2 Td (and)Tj /TT1 1 Tf 1.943 0 Td (_longjmp)Tj /T1_1 1 Tf 5.05 0 Td [(on Fr)18(eeBSD\), the \336nal line of output becomes)]TJ /TT1 1 Tf 8.9941 0 0 8.9941 147.5031 175.1845 Tm (ending main: SIGUSR1)Tj /T1_1 1 Tf 9.9934 0 0 9.9934 129.515 157.1964 Tm [(This )-56(means )-56(that )-56(the)]TJ /TT1 1 Tf 9.122 0 Td (main)Tj /T1_1 1 Tf 2.706 0 Td [(function )-56(is )-56(executing )-56(with )-56(the)]TJ /TT1 1 Tf 13.647 0 Td (SIGUSR1)Tj /T1_1 1 Tf 4.506 0 Td [(signal )-56(blocked, )-56(after)]TJ -29.981 -1.2 Td (the call to)Tj /TT1 1 Tf 4.535 0 Td (setjmp)Tj /T1_1 1 Tf 0.5 Tc (.T)Tj 0 Tc 4.963 0 Td [(his pr)18(obably isn\325t what we want.)]TJ ET q 0.099934 0 0 0.099934 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1453.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47542 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (356)Tj /T1_1 1 Tf 3.5 0 Td (Signals )Tj 36.187 0 Td [(Chapter)-3054(10)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -1.902 TD (int sigsetjmp\(sigjmp_buf)Tj /T1_2 1 Tf 15 0 Td (env)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.245 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (savemask)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -14.157 -1.902 Td [(Returns: 0 if called dir)18(ectly)]TJ 0.25 Tc 11.731 0 Td (,n)Tj 0 Tc 1.082 0 Td [(onzer)18(o)-250(if)-250(r)18(eturning fr)18(om a call to)]TJ /TT0 1 Tf 14.632 0 Td (siglongjmp)Tj -33.333 -1.902 Td (void siglongjmp\(sigjmp_buf)Tj /T1_2 1 Tf 16.2 0 Td (env)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.245 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (val)Tj /TT0 1 Tf (\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6024.25 cm 0 0 m 0 649 l 3900 649 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 588.8693 Tm [(The )-32(only )-32(dif)17(fer)18(ence )-32(between )-32(these )-32(functions )-32(and )-32(the)]TJ /TT0 1 Tf 23.531 0 Td (setjmp)Tj /T1_1 1 Tf 3.882 0 Td (and)Tj /TT0 1 Tf 1.975 0 Td (longjmp)Tj /T1_1 1 Tf 4.482 0 Td [(functions )-32(is)]TJ -33.871 -1.2 Td (that)Tj /TT0 1 Tf 2.055 0 Td (sigsetjmp)Tj /T1_1 1 Tf 5.721 0 Td [(has )-71(an )-71(additional )-71(ar)18(gument. )-321(If)]TJ /T1_2 1 Tf 14.217 0 Td (savemask)Tj /T1_1 1 Tf 4.098 0 Td [(is )-71(nonzer)18(o, )-71(then)]TJ /TT0 1 Tf 7.509 0 Td (sigsetjmp)Tj /T1_1 1 Tf -33.6 -1.2 Td [(also )-18(saves )-18(the )-18(curr)18(ent )-18(signal )-18(mask )-18(of )-18(the )-18(pr)18(ocess )-18(in)]TJ /T1_2 1 Tf 22.867 0 Td (env)Tj /T1_1 1 Tf 0.518 Tc (.W)Tj 0 Tc 3.213 0 Td (hen)Tj /TT0 1 Tf 1.911 0 Td (siglongjmp)Tj /T1_1 1 Tf 6.268 0 Td [(is )-18(called, )-18(if)]TJ -34.259 -1.2 Td (the)Tj /T1_2 1 Tf 1.814 0 Td (env)Tj /T1_1 1 Tf 1.872 0 Td [(ar)18(gument )-177(was )-177(saved )-177(by )-177(a )-177(call )-177(to)]TJ /TT0 1 Tf 15.638 0 Td (sigsetjmp)Tj /T1_1 1 Tf 5.827 0 Td [(with )-177(a )-177(nonzer)18(o)]TJ /T1_2 1 Tf 7.426 0 Td (savemask)Tj /T1_1 1 Tf 0.4269 Tc (,t)Tj 0 Tc 4.78 0 Td (hen)Tj /TT0 1 Tf -37.357 -1.2 Td (siglongjmp)Tj /T1_1 1 Tf -0.018 Tc 6.25 0 Td (re)Tj 0 Tc 0.856 0 Td [(stor)18(es the saved signal mask.)]TJ /TT1 1 Tf -10.706 -2.64 Td (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(The )-65(pr)18(ogram )-65(in )-65(Figur)]TJ 0.3151 Tc 9.733 0 Td (e1)Tj 0 Tc 1.294 0 Td [(0.20 )-65(demonstrates )-65(how )-65(the )-65(signal )-65(mask )-65(that )-65(is )-65(installed )-65(by )-65(the)]TJ -11.027 -1.2 Td [(system )-316(when )-316(a )-316(signal )-316(handler )-316(is )-316(invoked )-316(automatically )-316(includes )-316(the )-316(signal )-316(being)]TJ 0 -1.2 TD [(caught. )-487(This)-487(pr)18(ogram )-237(also )-237(illustrates )-237(the )-237(use )-237(of )-237(the)]TJ /TT0 1 Tf 24.933 0 Td (sigsetjmp)Tj /T1_1 1 Tf 5.887 0 Td (and)Tj /TT0 1 Tf 2.18 0 Td (siglongjmp)Tj /T1_1 1 Tf -33 -1.2 Td (functions.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4473.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 437.7602 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj 0 -1.783 TD (static void)Tj 19.2 0 Td (sig_usr1\(int\);)Tj -19.2 -1.189 Td (static void)Tj 19.2 0 Td (sig_alrm\(int\);)Tj -19.2 -1.189 Td (static sigjmp_buf)Tj 19.2 0 Td (jmpbuf;)Tj -19.2 -1.189 Td [(static volatile sig_atomic_t)-2400(canjump;)]TJ T* (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (if \(signal\(SIGUSR1, sig_usr1\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("signal\(SIGUSR1\) error"\);)Tj -2.4 -1.189 Td (if \(signal\(SIGALRM, sig_alrm\) == SIG_ERR\))Tj 2.4 -1.189 Td (err_sys\("signal\(SIGALRM\) error"\);)Tj -2.4 -1.783 Td [(pr_mask\("starting main: "\);)-3000(/* Figure 10.14 */)]TJ 0 -1.783 TD (if \(sigsetjmp\(jmpbuf, 1\)\) {)Tj 2.4 -1.783 Td (pr_mask\("ending main: "\);)Tj 0 -1.783 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD [(canjump = 1;)-2400(/* now sigsetjmp\(\) is OK */)]TJ 0 -1.783 TD (for \( ; ; \))Tj 2.4 -1.189 Td (pause\(\);)Tj -4.8 -1.189 Td (})Tj T* (static void)Tj 0 -1.189 TD (sig_usr1\(int signo\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47543 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(3.14)]TJ /TT0 1 Tf 36.903 0 Td (fcntl)Tj /T1_0 1 Tf 3.5 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (83)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 219.5868 670.9597 Tm [(Be )-100(awar)]TJ 0.3504 Tc 3.651 0 Td (et)Tj 0 Tc 1.155 0 Td [(hat )-100(some )-100(existing )-100(pr)17(ograms )-100(that )-100(deal )-100(with )-100(the )-100(\336le )-100(descriptor )-100(\337ags )-100(don\325t)]TJ -4.807 -1.25 Td [(use )-13(the )-13(constant)]TJ /TT0 1 Tf 7.411 0 Td (FD_CLOEXEC)Tj /T1_0 1 Tf 0.5128 Tc (.I)Tj 0 Tc 7.1 0 Td [(nstead, )-13(these )-13(pr)18(ograms )-13(set )-13(the )-13(\337ag )-13(to )-13(either )-13(0 )-13(\(don\325t)]TJ -14.511 -1.25 Td (close-on-exec, the default\) or 1 \(do close-on-exec\).)Tj /TT0 1 Tf 9.9994 0 0 9.9994 129.5919 625.9624 Tm (F_GETFL)Tj /T1_0 1 Tf 6 0 Td [(Return )-3(the )-3(\336le )-3(status )-3(\337ags )-3(for)]TJ /T1_2 1 Tf 13.3 0 Td (fd)Tj /T1_0 1 Tf 1.031 0 Td [(as )-3(the )-3(value )-3(of )-3(the )-3(function.)]TJ -0.092 Tc 12.742 0 Td [(We )-187(d)]TJ 0 Tc 2.251 0 Td (escribed)Tj -29.324 -1.2 Td [(the )-39(\336le )-39(status )-39(\337ags )-39(when )-39(we )-39(described )-39(the)]TJ /TT0 1 Tf 19.229 0 Td (open)Tj /T1_0 1 Tf 2.689 0 Td [(function. )-289(They)-289(ar)]TJ 0.289 Tc 7.892 0 Td (el)Tj 0 Tc 1.059 0 Td (isted)Tj -30.869 -1.2 Td (in Figur)Tj 0.25 Tc 3.506 0 Td (e3)Tj 0 Tc 1.229 0 Td (.10.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2174.25 5892.25 cm 0 0 m 2743 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 221.4454 581.1303 Tm (File status \337ag)Tj 18.006 0 Td (Description)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2174.25 5772.25 cm 0 0 m 2743 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2174.25 5752.25 cm 0 0 m 2743 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 221.4321 567.0979 Tm (O_RDONLY)Tj /T1_0 1 Tf 7.884 0 Td [(open for r)18(eading only)]TJ /TT0 1 Tf -7.884 -1.25 Td (O_WRONLY)Tj /T1_0 1 Tf 7.884 0 Td (open for writing only)Tj /TT0 1 Tf -7.884 -1.25 Td (O_RDWR)Tj /T1_0 1 Tf 7.884 0 Td [(open for r)18(eading and writing)]TJ /TT0 1 Tf -7.884 -1.25 Td (O_EXEC)Tj /T1_0 1 Tf 7.884 0 Td (open for execute only)Tj /TT0 1 Tf -7.884 -1.25 Td (O_SEARCH)Tj /T1_0 1 Tf 7.884 0 Td [(open dir)18(ectory for sear)18(ching only)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2174.25 5232.25 cm 0 0 m 2743 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 221.4189 515.0764 Tm (O_APPEND)Tj /T1_0 1 Tf 7.884 0 Td (append on each write)Tj /TT0 1 Tf -7.884 -1.25 Td (O_NONBLOCK)Tj /T1_0 1 Tf 7.884 0 Td (nonblocking mode)Tj /TT0 1 Tf -7.884 -1.25 Td (O_SYNC)Tj /T1_0 1 Tf 7.884 0 Td (wait for writes to complete \(data and attributes\))Tj /TT0 1 Tf -7.884 -1.25 Td (O_DSYNC)Tj /T1_0 1 Tf 7.884 0 Td (wait for writes to complete \(data only\))Tj /TT0 1 Tf -7.884 -1.25 Td (O_RSYNC)Tj /T1_0 1 Tf 7.884 0 Td [(synchr)18(onize r)18(eads and writes)]TJ /TT0 1 Tf -7.884 -1.25 Td (O_FSYNC)Tj /T1_0 1 Tf 7.884 0 Td [(wait for writes to complete \(Fr)18(eeBSD and Mac OS X only\))]TJ /TT0 1 Tf -7.884 -1.25 Td (O_ASYNC)Tj /T1_0 1 Tf 7.884 0 Td [(asynchr)18(onous I/O \(Fr)18(eeBSD and Mac OS X only\))]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2174.25 4512.25 cm 0 0 m 2743 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2785.25 4512.25 cm 0 0 m 0 1380 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4917.25 4512.25 cm 0 0 m 0 1380 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2174.25 4512.25 cm 0 0 m 0 1380 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 285.4064 433.0701 Tm (Figure 3.10)Tj /T1_0 1 Tf 5.695 0 Td (File status \337ags for)Tj /TT0 1 Tf 8.582 0 Td (fcntl)Tj /T1_0 1 Tf 9.997 0 0 9.997 189.5432 411.4765 Tm (Unfortunately)Tj 0.9213 Tc 6.186 0 Td (,t)Tj 0 Tc 1.497 0 Td [(he )-671(\336ve )-671(access-mode )-671(\337ags)-84(\321)]TJ /TT0 1 Tf 14.295 0 Td (O_RDONLY)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 5.971 0 Td (O_WRONLY)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf -27.95 -1.2 Td (O_RDWR)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.432 0 Td (O_EXEC)Tj /T1_0 1 Tf 0.5822 Tc (,a)Tj 0 Tc 4.932 0 Td (nd)Tj /TT0 1 Tf 1.775 0 Td (O_SEARCH)Tj /T1_0 1 Tf 0.0833 Tc 4.883 0 Td (\321a)Tj -0.018 Tc 1.583 0 Td [(re )-368(n)]TJ 0 Tc 2.02 0 Td [(ot )-332(separate )-332(bits )-332(that )-332(can )-332(be)]TJ -19.626 -1.2 Td [(tested. )-285(\(As)-284(we )-35(mentioned )-35(earlier)]TJ 0.2847 Tc 14.667 0 Td (,t)Tj 0 Tc 0.861 0 Td [(he )-35(\336rst )-35(thr)18(ee )-35(often )-35(have )-35(the )-35(values )-35(0, )-35(1,)]TJ -15.528 -1.2 Td [(and )-296(2, )-296(r)17(espectively)]TJ 0.5464 Tc 8.737 0 Td (,f)Tj 0 Tc 1.129 0 Td [(or )-296(historical )-296(r)17(easons. )-546(Also,)-547(these )-296(\336ve )-296(values )-296(ar)17(e)]TJ -9.866 -1.2 Td [(mutually )-69(exclusive; )-69(a )-69(\336le )-69(can )-69(have )-69(only )-69(one )-69(of )-69(them )-69(enabled.\))-564(Ther)18(efor)18(e,)]TJ 0 -1.2 TD [(we )-11(must )-11(\336rst )-11(use )-11(the)]TJ /TT0 1 Tf 9.498 0 Td (O_ACCMODE)Tj /T1_0 1 Tf 5.661 0 Td [(mask )-11(to )-11(obtain )-11(the )-11(access-mode )-11(bits )-11(and)]TJ -15.159 -1.2 Td (then compar)Tj 0.25 Tc 5.57 0 Td (et)Tj 0 Tc 1.055 0 Td [(he r)18(esult against any of the \336ve values.)]TJ /TT0 1 Tf -12.625 -1.72 Td (F_SETFL)Tj /T1_0 1 Tf 6 0 Td [(Set )-177(the )-177(\336le )-177(status )-177(\337ags )-177(to )-177(the )-177(value )-177(of )-177(the )-177(thir)]TJ 0.427 Tc 21.593 0 Td (da)Tj -0.018 Tc 1.538 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument )-177(\(taken )-177(as )-177(an)]TJ -24.064 -1.2 Td [(integer\). )-262(The)-262(only )-12(\337ags )-12(that )-12(can )-12(be )-12(changed )-12(ar)18(e)]TJ /TT0 1 Tf 21.438 0 Td (O_APPEND)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 5.312 0 Td (O_NONBLOCK)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf -26.75 -1.2 Td (O_SYNC)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.1 0 Td (O_DSYNC)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.7 0 Td (O_RSYNC)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.7 0 Td (O_FSYNC)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 5.2 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (O_ASYNC)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf -26.143 -1.72 Td (F_GETOWN)Tj /T1_0 1 Tf 6 0 Td [(Get )-34(the )-34(pr)18(ocess )-34(ID )-34(or )-34(pr)16(ocess )-34(gr)18(oup )-34(ID )-34(curr)18(ently )-34(r)18(eceiving )-34(the)]TJ /TT0 1 Tf 28.023 0 Td (SIGIO)Tj /T1_0 1 Tf 3.284 0 Td (and)Tj /TT0 1 Tf -31.307 -1.2 Td (SIGURG)Tj /T1_0 1 Tf 4.43 0 Td [(signals. )-830(W)]TJ 0.8304 Tc 5.306 0 Td (ed)Tj 0 Tc 1.92 0 Td [(escribe )-580(these )-580(asynchr)18(onous )-580(I/O )-580(signals )-580(in)]TJ -11.657 -1.2 Td (Section 14.5.2.)Tj /TT0 1 Tf -6 -1.72 Td (F_SETOWN)Tj /T1_0 1 Tf 6 0 Td [(Set )-72(the )-72(pr)19(ocess )-72(ID )-72(or )-72(pr)18(ocess )-72(gr)18(oup )-72(ID )-72(to )-72(r)18(eceive )-72(the)]TJ /TT0 1 Tf 24.064 0 Td (SIGIO)Tj /T1_0 1 Tf 3.322 0 Td (and)Tj /TT0 1 Tf 2.015 0 Td (SIGURG)Tj /T1_0 1 Tf -29.4 -1.2 Td [(signals. )-419(A)-420(positive)]TJ /T1_2 1 Tf 9.127 0 Td [(ar)18(g)]TJ /T1_0 1 Tf 1.734 0 Td [(speci\336es )-169(a )-169(pr)18(ocess )-169(ID.)]TJ 0.4194 Tc 10.83 0 Td (An)Tj 0 Tc 1.779 0 Td (egative)Tj /T1_2 1 Tf 3.615 0 Td [(ar)18(g)]TJ /T1_0 1 Tf 1.734 0 Td [(implies )-169(a)]TJ -28.821 -1.2 Td [(pr)18(ocess gr)18(oup ID equal to the absolute value of)]TJ /T1_2 1 Tf 21.07 0 Td [(ar)18(g)]TJ /T1_0 1 Tf (.)Tj -25.27 -2.04 Td [(The )-74(r)18(eturn )-74(value )-74(fr)17(om)]TJ /TT0 1 Tf 10.311 0 Td (fcntl)Tj /T1_0 1 Tf 3.324 0 Td [(depends )-74(on )-74(the )-74(command.)-574(All )-74(commands )-74(r)16(eturn)]TJ /TT1 1 Tf 22.516 0 Td (!)Tj /T1_0 1 Tf (1)Tj -37.951 -1.2 Td [(on )-184(an )-184(err)19(or )-184(or )-184(some )-184(other )-184(value )-184(if )-184(OK.)-684(The )-184(following )-184(four )-184(commands )-184(have )-184(special)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(turn )-296(values:)]TJ /TT0 1 Tf 6.109 0 Td (F_DUPFD)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.996 0 Td (F_GETFD)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 4.996 0 Td (F_GETFL)Tj /T1_0 1 Tf 0.5456 Tc (,a)Tj 0 Tc 5.496 0 Td (nd)Tj /TT0 1 Tf 1.739 0 Td (F_GETOWN)Tj /T1_0 1 Tf 0.7955 Tc (.T)Tj 0 Tc 6.459 0 Td [(he )-295(\336rst )-295(command)]TJ -0.018 Tc -30.649 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-171(the )-171(new )-171(\336le )-171(descriptor)]TJ 0.4209 Tc 13.109 0 Td (,t)Tj 0 Tc 0.997 0 Td [(he )-171(next )-171(two )-171(r)18(eturn )-171(the )-171(corr)19(esponding )-171(\337ags, )-171(and )-171(the)]TJ -14.961 -1.2 Td [(\336nal command r)18(eturns a positive pr)18(ocess ID or a negative pr)18(ocess gr)18(oup ID.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47544 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (302)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Relationships)]TJ 39.241 0 Td [(Chapter )-250(9)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 1581 4334 944.641 216 re S Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 184.009 447.4132 Tm [(backgr)18(ound)]TJ -0.995 -1.25 Td [(pr)18(ocess gr)18(oup\(s\))]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 3966.36 4334 944.641 216 re S Q BT /T1_1 1 Tf 7.999 0 0 7.999 423.7771 447.3863 Tm [(for)18(egr)18(ound)]TJ -0.609 -1.25 Td [(pr)18(ocess gr)18(oup)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2814.36 5126 864 216 re S Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 306.2489 521.5461 Tm (login shell)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2958.36 5630 576 216 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 312.561 571.9027 Tm (login)Tj ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 324.636 534.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 3246.3601 5342 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 5630.25 cm 0 0 m 0 -216 l S Q Q BT /TT0 1 Tf 7.9976 0 0 7.9976 326.538 546.676 Tm (exec)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 2958.36 6134 576 216 re S Q BT /TT0 1 Tf 7.9971 0 0 7.9971 307.7612 627.2142 Tm (getty)Tj /T1_1 1 Tf 3.25 0 Td (or)Tj /TT0 1 Tf -3.254 -1.25 Td (telnetd)Tj ET q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 324.636 584.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3246.3601 5846 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 6134.25 cm 0 0 m 0 -216 l S Q Q BT /TT0 1 Tf 7.9966 0 0 7.9966 326.4988 601.9871 Tm (exec)Tj /T1_1 1 Tf 0.25 Tc (,a)Tj 0 Tc 3.4 0 Td (fter)Tj /TT0 1 Tf 1.783 0 Td (setsid)Tj /T1_1 1 Tf 0.25 Tc (,t)Tj 0 Tc 4.426 0 Td (hen)Tj -9.609 -1.25 Td [(establishing contr)18(olling terminal)]TJ ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 324.636 635 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3246.3601 6350 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 6422.25 cm 0 0 m 0 216 l S Q Q BT /TT0 1 Tf 7.9962 0 0 7.9962 277.3388 666.7199 Tm (init)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 2.9 0 Td (inetd)Tj /T1_1 1 Tf 0.25 Tc (,o)Tj 0 Tc 4.046 0 Td (r)Tj /TT0 1 Tf 0.645 0 Td (launchd)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 2706.36 3326 1080 216 re S Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3516.3601 2930 cm 0 0 m 0 -59.64 -120.89 -108 -270 -108 c -419.11 -108 -540 -59.64 -540 0 c -540 59.64 -419.11 108 -270 108 c -120.89 108 0 59.64 0 0 c h S Q Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 309.5608 296.0801 Tm (user at a)Tj -0.01 -1.25 Td (terminal)Tj -4.636 7.55 Td (terminal)Tj 0.5 -1.25 Td (driver)Tj ET q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 459.636 433.4 cm 0 0 m -4.104 -6.192 l -6.552 -3.528 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 4596.3599 4334 cm 0 0 m -41.04 -61.92 l -65.52 -35.28 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3718.25 3542.25 cm 0 0 m 825 744 l S Q Q BT /T1_1 1 Tf 5.9352 5.3569 -5.3569 5.9352 378.264 364.3483 Tm (terminal-generated signals)Tj 4.4514 4.0177 -4.0177 4.4514 389.5772 361.0953 Tm (\()Tj /TT0 1 Tf (SIGINT)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.433 0 Td (SIGQUIT)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.7 0 Td (SIGTSTP)Tj /T1_1 1 Tf (\))Tj 5.9352 5.3569 -5.3569 5.9352 391.7219 349.5692 Tm [(deliver)18(ed to pr)18(ocess gr)18(oup)]TJ ET q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 324.636 332.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 3246.3601 3326 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 324.636 303.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 3246.3601 3038 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 3254.25 cm 0 0 m 0 -144 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 3326.25 cm 0 0 m 472 216 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 3326.25 cm 0 0 m 180 216 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 3326.25 cm 0 0 m -23 27 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3194.25 3388.25 cm 0 0 m -23 28 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3141.25 3451.25 cm 0 0 m -23 27 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3089.25 3514.25 cm 0 0 m -23 28 l S Q Q q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 342.636 354.2 cm 0 0 m 4.032 6.192 l 6.48 3.528 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 3426.3601 3542 cm 0 0 m 40.32 61.92 l 64.8 35.28 l h S Q Q q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 428.1 433.4 cm 0 0 m -4.032 -6.192 l -6.48 -3.528 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 4281 4334 cm 0 0 m -40.32 -61.92 l -64.8 -35.28 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3479.25 3591.25 cm 0 0 m 749 694 l S Q Q BT /T1_1 1 Tf 5.864 5.4319 -5.4319 5.864 353.456 368.6542 Tm (terminal input/output)Tj ET q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 189.564 433.4 cm 0 0 m 6.552 -3.456 l 4.104 -6.12 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 1895.64 4334 cm 0 0 m 65.52 -34.56 l 41.04 -61.2 l h S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 277.332 354.2 cm 0 0 m -6.552 3.456 l -4.104 6.12 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 2773.3201 3542 cm 0 0 m -65.52 34.56 l -41.04 61.2 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1949.25 4286.25 cm 0 0 m 771 -696 l S Q Q BT /T1_1 1 Tf -0.018 Tc 5.9331 -5.355 5.355 5.9331 210.6497 418.1903 Tm (re)Tj 0 Tc 0.856 -0 Td [(ad fr)18(om terminal)]TJ -1.015 -1.25 Td (generates)Tj /TT0 1 Tf 4.47 -0 Td (SIGTTIN)Tj ET q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 221.1 433.4 cm 0 0 m 6.48 -3.6 l 4.032 -6.264 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 2211 4334 cm 0 0 m 64.8 -36 l 40.32 -62.64 l h S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 306.636 354.2 cm 0 0 m -6.48 3.6 l -4.032 6.264 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 3066.3601 3542 cm 0 0 m -64.8 36 l -40.32 62.64 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2263.25 4285.25 cm 0 0 m 750 -694 l S Q Q BT /T1_1 1 Tf 5.8626 -5.4306 5.4306 5.8626 237.5453 421.9061 Tm (write to terminal may)Tj 0.694 -1.25 Td (generate)Tj /TT0 1 Tf 4.046 0 Td (SIGTTOU)Tj ET q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 324.636 354.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 3246.3601 3542 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 3614.25 cm 0 0 m 0 1512 l S Q Q BT /TT0 1 Tf 0 7.9909 -7.9909 0 321.0298 375.0562 Tm (tcsetpgrp)Tj /T1_1 1 Tf 5.65 0 Td [(to set pr)18(ocess gr)18(oup)]TJ -3.587 -1.25 Td [(for contr)18(olling terminal)]TJ ET q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 288.636 512.6 cm 0 0 m -4.896 -5.544 l -6.912 -2.592 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 2886.3601 5126 cm 0 0 m -48.96 -55.44 l -69.12 -25.92 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2053.25 4550.25 cm 0 0 m 773 535 l S Q Q BT /T1_1 1 Tf 6.5709 4.5463 -4.5463 6.5709 221.4211 469.698 Tm (change in status)Tj 1.167 -1.25 Td [(of childr)18(en)]TJ ET q 0.9988007 0 0 0.9988007 0 0 cm q 1 0 0 1 360.636 512.6 cm 0 0 m 6.912 -2.592 l 4.896 -5.544 l f Q Q q 0.0998801 0 0 0.0998801 0 0 cm 1 j 1 J q 1 0 0 1 3606.3601 5126 cm 0 0 m 69.12 -25.92 l 48.96 -55.44 l h S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3665.25 5085.25 cm 0 0 m 773 -535 l S Q Q BT /T1_1 1 Tf 6.5705 -4.5461 4.5461 6.5705 380.1986 502.034 Tm (change in status)Tj 1.167 -1.25 Td [(of childr)18(en)]TJ ET q 0.9987408 0 0 0.9987408 0 0 cm q 1 0 0 1 415.068 455 cm 0 0 m -6.912 2.592 l -4.896 5.544 l f Q Q q 0.0998741 0 0 0.0998741 0 0 cm 1 j 1 J q 1 0 0 1 4150.6802 4550 cm 0 0 m -69.12 25.92 l -48.96 55.44 l h S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3318.25 5126.25 cm 0 0 m 773 -535 l S Q Q BT /TT0 1 Tf 6.5701 -4.5458 4.5458 6.5701 355.3207 487.1565 Tm (setpgid)Tj ET q 0.9986808 0 0 0.9986808 0 0 cm q 1 0 0 1 234.132 455 cm 0 0 m 4.896 5.544 l 6.912 2.592 l f Q Q q 0.0998681 0 0 0.0998681 0 0 cm 1 j 1 J q 1 0 0 1 2341.3201 4550 cm 0 0 m 48.96 55.44 l 69.12 25.92 l h S Q Q q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2400.25 4591.25 cm 0 0 m 773 535 l S Q Q BT /TT0 1 Tf 6.5697 4.5455 -4.5455 6.5697 265.4125 468.0356 Tm (setpgid)Tj ET q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 2678.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 2750.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 2823.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 2896.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 2969.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 3041.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 3114.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 3187.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 3260.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 3332.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 3405.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 3478.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 3550.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 3623.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 3695.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 3768.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 3841.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 3913.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 3986.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 4059.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 4131.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 4204.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 4277.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 4350.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 4422.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 4495.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 4568.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 4640.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 4713.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 4786.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 4859.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 4931.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 5004.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 5077.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 5150.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 5222.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 5295.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 5368.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 5440.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 5513.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 5585.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 5658.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 5731.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 5803.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 5876.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 5949.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 6021.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 6094.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 6167.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 6240.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 6312.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 6385.25 cm 0 0 m 0 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1437.25 6458.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1509.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1580.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1651.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1723.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1795.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1867.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1939.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2010.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2081.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2153.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2225.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2296.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2368.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2440.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2512.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2583.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2655.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2726.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2798.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2870.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2942.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3013.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3084.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3156.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3228.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3299.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3371.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3443.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3514.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3586.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3658.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3729.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3801.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3873.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3945.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4016.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4088.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4159.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4231.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4302.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4374.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4446.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4518.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4589.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4661.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4732.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4803.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4875.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4947.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5019.25 6494.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 6421.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 6348.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 6276.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 6203.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 6130.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 6057.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 5985.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 5912.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 5839.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 5767.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 5694.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 5621.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 5549.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 5476.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 5404.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 5331.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 5258.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 5186.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 5113.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 5040.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 4967.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 4895.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 4822.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 4749.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 4676.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 4604.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 4531.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 4458.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 4386.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 4313.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 4240.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 4167.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 4095.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 4022.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 3949.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 3877.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 3804.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 3731.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 3659.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 3586.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 3514.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 3441.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 3368.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 3296.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 3223.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 3150.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 3077.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 3005.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 2932.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 2859.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 2786.25 cm 0 0 m 0 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5055.25 2714.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4983.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4911.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4840.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4768.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4697.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4625.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4554.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4482.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4410.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4338.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4267.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4195.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4124.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4052.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3981.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3909.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3837.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3765.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3694.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3622.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3551.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3479.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3407.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3335.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3264.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3192.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3121.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3049.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2978.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2906.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2834.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2762.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2691.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2619.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2547.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2476.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2404.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2332.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2261.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2189.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2117.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2046.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1974.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1903.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1831.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1759.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1688.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1616.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1544.25 2678.25 cm 0 0 m -36 0 l S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1473.25 2678.25 cm 0 0 m -36 0 l S Q Q BT /T1_1 1 Tf 7.9885 0 0 7.9885 311.5071 253.4747 Tm (session)Tj /T1_0 1 Tf -21.235 -2.305 Td (Figure 9.9)Tj /T1_1 1 Tf 5.195 0 Td [(Summary of job contr)18(ol featur)18(es with for)18(egr)18(ound and backgr)18(ound jobs, and terminal driver)]TJ 9.9856 0 0 9.9856 129.4137 208.699 Tm [(gr)18(oup )-174(to )-174(the )-174(actual )-174(terminal.)-673(The )-174(dashed )-174(line )-174(corr)18(esponding )-174(to )-174(the)]TJ /TT0 1 Tf 31.732 0 Td (SIGTTOU)Tj /T1_1 1 Tf 4.624 0 Td (signal)Tj -36.356 -1.2 Td [(means )-6(that )-6(whether )-6(the )-6(output )-6(fr)18(om )-6(a )-6(pr)18(ocess )-6(in )-6(the )-6(backgr)18(ound )-6(pr)18(ocess )-6(gr)18(oup )-6(appears)]TJ 0 -1.2 TD (on the terminal is an option.)Tj 1.8 -1.2 Td [(Is )-271(job )-271(contr)18(ol )-271(necessary )-271(or )-271(desirable?)-768(Job )-270(contr)18(ol )-270(was )-270(originally )-270(designed )-270(and)]TJ -1.8 -1.2 Td [(implemented )-58(befor)]TJ 0.3081 Tc 8.501 0 Td (ew)Tj 0 Tc 1.621 0 Td [(indowing )-58(terminals )-58(wer)]TJ 0.3081 Tc 10.77 0 Td (ew)Tj 0 Tc 1.621 0 Td [(idespr)18(ead. )-308(Some)-308(people )-58(claim )-58(that )-58(a)]TJ -22.513 -1.2 Td [(well-designed )-169(windowing )-169(system )-169(r)18(emoves )-169(any )-169(need )-169(for )-169(job )-169(contr)20(ol. )-419(Some)-419(complain)]TJ 0 -1.2 Td [(that )-23(the )-23(implementation )-23(of )-23(job )-23(contr)17(ol )167(\321 )167(r)17(equiring )-23(support )-23(fr)18(om )-23(the )-23(kernel, )-23(the )-23(terminal)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47545 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (300)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Relationships)]TJ 39.241 0 Td [(Chapter )-250(9)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(if )-265(the )-265(host )-265(does.)-765(The )-265(Bourne-again )-265(shell )-265(also )-265(supports )-265(job )-265(contr)15(ol. )-515(W)92(e\325ll )-265(just )-265(talk)]TJ 0 -1.2 Td [(generically )-142(about )-142(a )-142(shell )-142(that )-142(supports )-142(job )-142(contr)18(ol, )-142(versus )-142(one )-142(that )-142(doesn\325t, )-142(when )-142(the)]TJ 0 -1.2 TD [(dif)18(fer)18(ence between the various shells doesn\325t matter)74(.)]TJ 1.8 -1.2 Td [(When )-69(we )-69(start )-69(a )-69(backgr)18(ound )-69(job, )-69(the )-69(shell )-69(assigns )-69(it )-69(a )-69(job )-69(identi\336er )-69(and )-69(prints )-69(one)]TJ -1.8 -1.2 Td [(or )-12(mor)18(e)-262(of)-262(t)-1(he )-12(pr)18(ocess )-12(IDs.)-512(The )-12(following )-12(script )-12(shows )-12(how )-12(the )-12(Korn )-12(shell )-12(handles )-12(this:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 604.2637 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (make all > Make.out &)Tj /TT0 1 Tf -1.2 -1.189 Td [([1] )-2400(1475)]TJ 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (pr *.c | lpr &)Tj /TT0 1 Tf -1.2 -1.189 Td [([2] )-2400(1490)]TJ T* ($)Tj /T1_2 1 Tf 16 0 Td [(just pr)18(ess RETURN)]TJ /TT0 1 Tf -16 -1.189 Td [([2] +)-1200(Done )]TJ 12.6 0 Td [(pr)-600(*.c | lpr &)]TJ -12.6 -1.189 Td [([1] +)-1200(Done )]TJ 12.6 0 Td [(make)-600(all > Make.out &)]TJ /T1_1 1 Tf 9.9994 0 0 9.9994 129.5923 522.0687 Tm (The)Tj /TT0 1 Tf 2 0 Td (make)Tj /T1_1 1 Tf 2.726 0 Td [(is )-76(job )-76(number )-76(1 )-76(and )-76(the )-76(starting )-76(pr)18(ocess )-76(ID )-76(is )-76(1475.)-576(The )-76(next )-76(pipeline )-76(is )-76(job)]TJ -4.726 -1.2 Td [(number )-7(2 )-7(and )-7(the )-7(pr)18(ocess )-7(ID )-7(of )-7(the )-7(\336rst )-7(pr)18(ocess )-7(is )-7(1490.)-507(When )-7(the )-7(jobs )-7(ar)]TJ 0.257 Tc 32.526 0 Td (ed)Tj 0 Tc 1.347 0 Td [(one )-7(and )-7(we)]TJ -33.873 -1.2 Td [(pr)18(ess RETURN, the shell tells us that the jobs ar)]TJ 0.2502 Tc 21.023 0 Td (ec)Tj 0 Tc 1.173 0 Td [(omplete. )-250(The)]TJ -0.018 Tc 6.279 0 Td (re)Tj 0 Tc 0.856 0 Td [(ason we have to pr)17(ess)]TJ -29.331 -1.2 Td [(RETURN )-198(is )-198(to )-198(have )-198(the )-198(shell )-198(print )-198(its )-198(pr)18(ompt. )-448(The)-448(shell )-198(doesn\325t )-198(print )-198(the )-198(changed)]TJ -0 -1.2 Td [(status )-13(of )-13(backgr)18(ound )-13(jobs )-13(at )-13(any )-13(random )-13(time)]TJ 0.0833 Tc 20.451 0 Td (\321o)Tj 0 Tc 1.629 0 Td [(nly )-13(right )-13(befor)18(e)-263(it)-263(prints )-13(its )-13(pr)18(ompt, )-13(to)]TJ -22.08 -1.2 Td [(let )-125(us )-125(enter )-125(a )-125(new )-125(command )-125(line.)-625(If )-125(the )-125(shell )-125(didn\325t )-125(do )-125(this, )-125(it )-125(could )-125(pr)20(oduce )-125(output)]TJ 0 -1.2 TD (while we wer)Tj 0.25 Tc 5.98 0 Td (ee)Tj 0 Tc 1.208 0 Td (ntering an input line.)Tj -5.388 -1.2 Td [(The )-70(interaction )-70(with )-70(the )-70(terminal )-70(driver )-70(arises )-70(because )-70(a )-70(special )-70(terminal )-70(character)]TJ -1.8 -1.2 Td [(af)18(fects )-415(the )-415(for)17(egr)18(ound )-415(job: )-415(the )-415(suspend )-415(key )-415(\(typically )-415(Contr)16(ol)]TJ 30.391 0.09 Td (-)Tj 0.333 -0.09 Td [(Z\). )-665(Entering)-666(this)]TJ -30.724 -1.2 Td [(character )-77(causes )-77(the )-77(terminal )-77(driver )-77(to )-77(send )-77(the)]TJ /TT0 1 Tf 21.781 0 Td (SIGTSTP)Tj /T1_1 1 Tf 4.527 0 Td [(signal )-77(to )-77(all )-77(pr)18(ocesses )-77(in )-77(the)]TJ -26.308 -1.2 Td [(for)18(egr)18(ound )-74(pr)18(ocess )-74(gr)18(oup. )-324(The)-323(jobs )-74(in )-74(any )-74(backgr)18(ound )-74(pr)18(ocess )-74(gr)18(oups )-74(ar)18(en\325t )-74(af)20(fected.)]TJ -0 -1.2 Td [(The )-195(terminal )-195(driver )-195(looks )-195(for )-195(thr)19(ee )-195(special )-195(characters, )-195(which )-195(generate )-195(signals )-195(to )-195(the)]TJ T* [(for)18(egr)18(ound pr)18(ocess gr)18(oup.)]TJ 0.883 Tc 1.8 -1.92 Td (\245T)Tj 0 Tc 2.102 0 Td [(he interr)8(upt character \(typically DELETE or Contr)18(ol)]TJ 22.954 0.09 Td (-)Tj 0.333 -0.09 Td (C\) generates)Tj /TT0 1 Tf 5.762 0 Td (SIGINT)Tj /T1_1 1 Tf (.)Tj 0.883 Tc -31.151 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he quit character \(typically Contr)18(ol-backslash\) generates)]TJ /TT0 1 Tf 25.132 0 Td (SIGQUIT)Tj /T1_1 1 Tf (.)Tj 0.883 Tc -27.234 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he suspend character \(typically Contr)18(ol)]TJ 17.416 0.09 Td (-)Tj 0.333 -0.09 Td (Z\) generates)Tj /TT0 1 Tf 5.72 0 Td (SIGTSTP)Tj /T1_1 1 Tf (.)Tj -27.371 -1.92 Td [(In )-62(Chapter )-62(18, )-62(we\325ll )-62(see )-62(how )-62(we )-62(can )-62(change )-62(these )-62(thr)13(ee )-62(characters )-62(to )-62(be )-62(any )-62(characters)]TJ T* [(we )-169(choose )-169(and )-169(how )-169(we )-169(can )-169(disable )-169(the )-169(terminal )-169(driver)-78(\325s )-170(pr)18(ocessing )-170(of )-170(these )-170(special)]TJ T* (characters.)Tj 1.8 -1.2 Td [(Another )-13(job )-13(contr)18(ol )-13(condition )-13(can )-13(arise )-13(that )-13(must )-13(be )-13(handled )-13(by )-13(the )-13(terminal )-13(driver)73(.)]TJ -1.8 -1.2 Td [(Since )-90(we )-90(can )-90(have )-90(a )-90(for)16(egr)18(ound )-90(job )-90(and )-90(one )-90(or )-90(mor)]TJ 0.3406 Tc 23.581 0 Td (eb)Tj 0 Tc 1.373 0 Td [(ackgr)18(ound )-91(jobs, )-91(which )-91(of )-91(these)]TJ -0.018 Tc -24.954 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ceives )-69(the )-69(characters )-69(that )-69(we )-69(enter )-69(at )-69(the )-69(terminal?)-565(Only )-68(the )-68(for)17(egr)18(ound )-68(job )-68(r)17(eceives)]TJ -0.856 -1.2 Td [(terminal )-62(input.)-562(It )-62(is )-62(not )-62(an )-62(err)18(or )-62(for )-62(a )-62(backgr)22(ound )-62(job )-62(to )-62(try )-62(to )-62(r)18(ead )-62(fr)18(om )-62(the )-62(terminal,)]TJ T* [(but )-134(the )-134(terminal )-134(driver )-134(detects )-134(this )-134(and )-134(sends )-134(a )-134(special )-134(signal )-134(to )-134(the )-134(backgr)18(ound )-134(job:)]TJ /TT0 1 Tf T* (SIGTTIN)Tj /T1_1 1 Tf 0.6457 Tc (.T)Tj 0 Tc 5.709 0 Td [(his )-146(signal )-146(normally )-146(stops )-146(the )-146(backgr)20(ound )-146(job; )-146(by )-146(using )-146(the )-146(shell, )-146(we )-146(ar)19(e)]TJ -5.709 -1.2 Td [(noti\336ed )-57(of )-57(this )-57(event )-57(and )-57(can )-57(bring )-57(the )-57(job )-57(into )-57(the )-57(for)20(egr)18(ound )-57(so )-57(that )-57(it )-57(can )-57(r)18(ead )-57(fr)19(om)]TJ -0 -1.2 Td [(the terminal.)-500(The following example demonstrates this:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 170.9897 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (cat > temp.foo &)Tj /T1_2 1 Tf 14.8 0 Td [(start in backgr)18(ound, but it\325ll r)18(ead fr)18(om standard input)]TJ /TT0 1 Tf -16 -1.189 Td [([1] )-2400(1681)]TJ 0 -1.189 TD ($)Tj /T1_2 1 Tf 16 0 Td [(we pr)18(ess RETURN)]TJ /TT0 1 Tf -16 -1.189 Td [([1] + Stopped \(SIGTTIN\))-3600(cat > temp.foo &)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47546 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.3)]TJ /TT0 1 Tf 35.803 0 Td (signal)Tj /T1_0 1 Tf 4.1 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (325)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(We )-204(i)]TJ 0 Tc 1.948 0 Td [(nvoke )-20(the )-20(pr)18(ogram )-20(in )-20(the )-20(backgr)18(ound )-20(and )-20(use )-20(the)]TJ /TT0 1 Tf 22.573 0 Td (kill)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.603 -0.04 Td [(command )-20(to )-20(send )-20(it)]TJ -30.157 -1.2 Td [(signals. )-524(Note)-524(that )-274(the )-274(term)]TJ /T1_2 1 Tf 13.575 0 Td (kill)Tj /T1_0 1 Tf 1.802 0 Td [(in )-274(the )-274(UNIX )-274(System )-274(is )-274(a )-274(misnomer)]TJ 0.7741 Tc 16.835 0 Td (.T)Tj 0 Tc 1.637 0 Td (he)Tj /TT0 1 Tf 1.585 0 Td (kill)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj -38.667 -1.24 Td [(command )-145(and )-145(the)]TJ /TT0 1 Tf 8.715 0 Td (kill)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (2)Tj 0.5 0.04 Td (\))Tj 0.728 -0.04 Td [(function )-145(just )-145(send )-145(a )-145(signal )-145(to )-145(a )-145(pr)18(ocess )-145(or )-145(pr)18(ocess )-145(gr)14(oup.)]TJ -12.676 -1.2 Td [(Whether )-325(that )-325(signal )-325(terminates )-325(the )-325(pr)18(ocess )-325(depends )-325(on )-325(which )-325(signal )-325(is )-325(sent )-325(and)]TJ 0 -1.2 TD [(whether the pr)18(ocess has arranged to catch the signal.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5913 604.2637 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out &)Tj /T1_2 1 Tf 18.8 0 Td [(start pr)18(ocess in backgr)18(ound)]TJ /TT0 1 Tf -20 -1.189 Td [([1] )-3000(7216)]TJ /T1_2 1 Tf 20 0 Td [(job-contr)18(ol shell prints job number and pr)18(ocess ID)]TJ /TT0 1 Tf -20 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (kill -USR1 7216)Tj /T1_2 1 Tf 18.8 0 Td (send it)Tj /TT0 1 Tf 2.945 0 Td (SIGUSR1)Tj -22.945 -1.189 Td (received SIGUSR1)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (kill -USR2 7216)Tj /T1_2 1 Tf 18.8 0 Td (send it)Tj /TT0 1 Tf 2.945 0 Td (SIGUSR2)Tj -22.945 -1.189 Td (received SIGUSR2)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (kill 7216)Tj /T1_2 1 Tf 18.8 0 Td (now send it)Tj /TT0 1 Tf 4.917 0 Td (SIGTERM)Tj -24.917 -1.189 Td [([1]+ )-600(Terminated)-4800(./a.out)]TJ /T1_0 1 Tf 9.9994 0 0 9.9994 129.5927 511.3693 Tm [(When )-49(we )-49(send )-49(the)]TJ /TT0 1 Tf 8.634 0 Td (SIGTERM)Tj /T1_0 1 Tf 4.499 0 Td [(signal, )-49(the )-49(pr)18(ocess )-49(is )-49(terminated, )-49(since )-49(it )-49(doesn\325t )-49(catch )-49(the)]TJ -13.133 -1.2 Td (signal, and the default action for the signal is termination.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4994.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 9.9988 0 0 9.9988 93.5888 475.343 Tm [(Pr)20(ogram Star)-20(t-Up)]TJ /T1_0 1 Tf 3.6 -2.16 Td [(When )-296(a )-296(pr)18(ogram )-296(is )-296(executed, )-296(the )-296(status )-296(of )-296(all )-296(signals )-296(is )-296(either )-296(default )-296(or )-296(ignor)17(e.)]TJ 0 -1.2 TD (Normally)Tj 0.3015 Tc 4.182 0 Td (,a)Tj 0 Tc 1.051 0 Td [(ll )-51(signals )-51(ar)]TJ 0.3015 Tc 5.13 0 Td (es)Tj 0 Tc 1.204 0 Td [(et )-51(to )-51(their )-51(default )-51(action, )-51(unless )-51(the )-51(pr)15(ocess )-51(that )-51(calls)]TJ /TT0 1 Tf 24.016 0 Td (exec)Tj /T1_0 1 Tf 2.701 0 Td (is)Tj -38.285 -1.2 Td [(ignoring )-260(the )-260(signal.)-759(Speci\336cally)]TJ 0.5096 Tc 14.775 0 Td (,t)Tj 0 Tc 1.086 0 Td (he)Tj /TT0 1 Tf 1.571 0 Td (exec)Tj /T1_0 1 Tf 2.91 0 Td [(functions )-260(change )-260(the )-260(disposition )-260(of )-260(any)]TJ -20.341 -1.2 Td [(signals )-202(being )-202(caught )-202(to )-202(their )-202(default )-202(action )-202(and )-202(leave )-202(the )-202(status )-202(of )-202(all )-202(other )-202(signals)]TJ T* [(alone. )-351(\(Naturally)]TJ 0.3514 Tc 7.764 0 Td (,as)Tj 0 Tc 1.877 0 Td [(ignal )-101(that )-101(is )-101(being )-101(caught )-101(by )-101(a )-101(pr)18(ocess )-101(that )-101(calls)]TJ /TT0 1 Tf 22.244 0 Td (exec)Tj /T1_0 1 Tf 2.751 0 Td [(cannot )-101(be)]TJ -34.637 -1.2 Td [(caught )-247(by )-247(the )-247(same )-247(function )-247(in )-247(the )-247(new )-247(pr)18(ogram, )-247(since )-247(the )-247(addr)18(ess )-247(of )-247(the )-247(signal-)]TJ T* [(catching )-56(function )-56(in )-56(the )-56(caller )-56(pr)18(obably )-56(has )-56(no )-56(meaning )-56(in )-56(the )-56(new )-56(pr)18(ogram )-56(\336le )-56(that )-56(is)]TJ T* (executed.\))Tj 1.8 -1.2 Td [(One )-36(speci\336c )-36(example )-36(of )-36(this )-36(signal )-36(status )-36(behavior )-36(is )-36(how )-36(an )-36(interactive )-36(shell )-36(tr)15(eats)]TJ -1.8 -1.2 Td [(the )-249(interr)8(upt )-249(and )-249(quit )-249(signals )-249(for )-249(a )-249(backgr)18(ound )-249(pr)14(ocess. )-500(W)55(ith )-250(a )-250(shell )-250(that )-250(doesn\325t)]TJ T* [(support job contr)18(ol, when we execute a pr)18(ocess in the backgr)18(ound, as in)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5819 317.0619 Tm (cc main.c &)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.584 299.0641 Tm [(the )-247(shell )-247(automatically )-247(sets )-247(the )-247(disposition )-247(of )-247(the )-247(interr)9(upt )-247(and )-247(quit )-247(signals )-247(in )-247(the)]TJ T* [(backgr)18(ound )-300(pr)18(ocess )-300(to )-300(be )-300(ignor)16(ed. )-551(This)-550(is )-301(done )-301(so )-301(that )-301(if )-301(we )-301(type )-301(the )-301(interr)11(upt)]TJ 0 -1.2 Td [(character)74(,)-350(it)-350(d)1(oesn\325t )-100(af)18(fect )-100(the )-100(backgr)19(ound )-99(pr)18(ocess. )-349(If)-350(this )-99(wer)18(en\325t )-99(done )-99(and )-99(we )-99(typed)]TJ 0 -1.2 Td [(the )-52(interr)8(upt )-52(character)75(,)-302(it)-302(w)1(ould )-52(terminate )-52(not )-52(only )-52(the )-52(for)19(egr)18(ound )-52(pr)18(ocess, )-52(but )-52(also )-52(all)]TJ 0 -1.2 Td [(the backgr)18(ound pr)18(ocesses.)]TJ 1.8 -1.2 Td [(Many interactive pr)18(ograms that catch these two signals have code that looks like)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 169.1799 222.3733 Tm (void sig_int\(int\), sig_quit\(int\);)Tj 0 -1.902 TD (if \(signal\(SIGINT, SIG_IGN\) != SIG_IGN\))Tj 2.4 -1.189 Td (signal\(SIGINT, sig_int\);)Tj -2.4 -1.189 Td (if \(signal\(SIGQUIT, SIG_IGN\) != SIG_IGN\))Tj 2.4 -1.189 Td (signal\(SIGQUIT, sig_quit\);)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5846 155.1615 Tm [(Following )-16(this )-16(appr)18(oach, )-16(the )-16(pr)19(ocess )-16(catches )-16(the )-16(signal )-16(only )-16(if )-16(the )-16(signal )-16(is )-16(not )-16(curr)22(ently)]TJ 0 -1.2 TD [(being ignor)18(ed.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47547 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (456)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 172.7896 670.2598 Tm (case SIGQUIT:)Tj 2.4 -1.189 Td (pthread_mutex_lock\(&lock\);)Tj 0 -1.189 TD (quitflag = 1;)Tj T* (pthread_mutex_unlock\(&lock\);)Tj T* (pthread_cond_signal\(&waitloc\);)Tj 0 -1.189 TD (return\(0\);)Tj -2.4 -2.14 Td (default:)Tj 2.4 -1.189 Td (printf\("unexpected signal %d\\n", signo\);)Tj T* (exit\(1\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-4800(err;)]TJ 0 -1.189 TD [(sigset_t )-1800(oldmask;)]TJ 0 -1.189 TD [(pthread_t )-1200(tid;)]TJ 0 -2.14 TD (sigemptyset\(&mask\);)Tj 0 -1.189 TD (sigaddset\(&mask, SIGINT\);)Tj 0 -1.189 TD (sigaddset\(&mask, SIGQUIT\);)Tj T* (if \(\(err = pthread_sigmask\(SIG_BLOCK, &mask, &oldmask\)\) != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "SIG_BLOCK error"\);)Tj -2.4 -2.14 Td (err = pthread_create\(&tid, NULL, thr_fn, 0\);)Tj T* (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t create thread"\);)Tj -2.4 -2.14 Td (pthread_mutex_lock\(&lock\);)Tj T* (while \(quitflag == 0\))Tj 2.4 -1.189 Td (pthread_cond_wait\(&waitloc, &lock\);)Tj -2.4 -1.189 Td (pthread_mutex_unlock\(&lock\);)Tj 0 -2.14 TD (/* SIGQUIT has been caught and is now blocked; do whatever */)Tj 0 -1.189 TD (quitflag = 0;)Tj 0 -2.14 TD (/* reset signal mask which unblocks SIGQUIT */)Tj 0 -1.189 TD (if \(sigprocmask\(SIG_SETMASK, &oldmask, NULL\) < 0\))Tj 2.4 -1.189 Td (err_sys\("SIG_SETMASK error"\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2204.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 247.9462 203.1546 Tm (Figure 12.16)Tj /T1_1 1 Tf 6.25 0 Td [(Synchr)18(onous signal handling)]TJ 9.9988 0 0 9.9988 147.5823 179.1575 Tm [(Instead )-36(of )-36(r)18(elying )-36(on )-36(a )-36(signal )-36(handler )-36(that )-36(interr)8(upts )-36(the )-36(main )-36(thr)22(ead )-35(of )-35(contr)18(ol, )-35(we)]TJ -1.8 -1.2 Td [(dedicate )-184(a )-184(separate )-184(thr)18(ead )-184(of )-184(contr)18(ol )-184(to )-184(handle )-184(the )-184(signals.)]TJ -0.092 Tc 28.028 0 Td [(We )-369(c)]TJ 0 Tc 2.266 0 Td [(hange )-184(the )-184(value )-184(of)]TJ /TT0 1 Tf -30.294 -1.2 Td (quitflag)Tj /T1_1 1 Tf 5.072 0 Td [(under )-22(the )-22(pr)18(otection )-22(of )-22(a )-22(mutex )-22(so )-22(that )-22(the )-22(main )-22(thr)18(ead )-22(of )-22(contr)18(ol )-22(can\325t )-22(miss)]TJ -5.072 -1.2 Td [(the )-10(wake-up )-10(call )-10(made )-10(when )-10(we )-10(call)]TJ /TT0 1 Tf 16.427 0 Td (pthread_cond_signal)Tj /T1_1 1 Tf 0.5099 Tc (.W)Tj 0.2599 Tc 13.068 0 Td (eu)Tj 0 Tc 1.342 0 Td [(se )-10(the )-10(same )-10(mutex)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47548 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (985)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (sigaltstack)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(351)]TJ /TT0 1 Tf -7.017 -1.25 Td (sig_atomic_t)Tj /T1_0 1 Tf 7.617 0 Td [(data type,)-500(59, 356)]TJ 7.982 0.09 Td (\320)Tj 0.583 -0.09 Td (357, 361)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (363,)Tj -17.649 -1.25 Td (732)Tj /TT0 1 Tf -2.7 -1.25 Td (SIG_BLOCK)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(346,)-250(348, 360, 362)]TJ 12.063 0.09 Td (\320)Tj 0.583 -0.09 Td (363, 370,)Tj -15.763 -1.25 Td (374, 454, 456, 477, 701, 815)Tj /TT0 1 Tf -2.7 -1.25 Td (SIGBUS)Tj /T1_0 1 Tf 4.017 0 Td [(signal, )-250(317,)-250(352)]TJ 6.977 0.09 Td (\320)Tj 0.583 -0.09 Td (353, 527, 530)Tj /TT0 1 Tf -11.577 -1.25 Td (SIGCANCEL)Tj /T1_0 1 Tf 5.817 0 Td [(signal, )-250(317)]TJ /TT0 1 Tf -5.817 -1.25 Td (SIGCHLD)Tj /T1_0 1 Tf 4.617 0 Td [(signal, )-250(238,)-250(288, 315, 317, 331)]TJ 12.977 0.09 Td (\320)Tj 0.583 -0.09 Td (335,)Tj -15.477 -1.25 Td (351)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (353, 367)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (368, 370)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (371, 377, 471, 501,)Tj -10.5 -1.25 Td (546, 723, 923, 939)Tj -1.35 -1.25 Td [(semantics, )-250(332)]TJ 6.686 0.09 Td (\320)Tj 0.583 -0.09 Td (335)Tj /TT0 1 Tf -8.619 -1.25 Td (SIGCLD)Tj /T1_0 1 Tf 4.017 0 Td [(signal, )-250(317,)-250(332)]TJ 6.977 0.09 Td (\320)Tj 0.583 -0.09 Td (336)Tj /TT0 1 Tf -11.577 -1.25 Td (SIGCONT)Tj /T1_0 1 Tf 4.617 0 Td [(signal, )-250(301,)-250(309, 317, 337, 377, 379)]TJ /TT0 1 Tf -4.617 -1.25 Td (sigdelset)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(331,)-250(344)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (345, 366, 374, 933)Tj -13.09 -1.25 Td [(de\336nition of,)-500(344)]TJ 7.775 0.09 Td (\320)Tj 0.583 -0.09 Td (345)Tj /TT0 1 Tf -9.709 -1.25 Td (SIG_DFL)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(323,)-250(333, 350)]TJ 10.063 0.09 Td (\320)Tj 0.583 -0.09 Td (351, 366,)Tj -12.563 -1.25 Td (378)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (379, 476)Tj /TT0 1 Tf -4.866 -1.25 Td (sigemptyset)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(331,)-250(344, 348, 354)]TJ 12.04 0.09 Td (\320)Tj 0.583 -0.09 Td (355,)Tj -16.94 -1.25 Td (360, 362)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (363, 369)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (370, 374, 378, 456, 467,)Tj -8.333 -1.25 Td (476, 478, 621, 701, 815, 933)Tj -1.35 -1.25 Td [(de\336nition of,)-500(344)]TJ /TT0 1 Tf -1.35 -1.25 Td (SIGEMT)Tj /T1_0 1 Tf 4.017 0 Td [(signal, )-250(317)]TJ 4.977 0.09 Td (\320)Tj 0.583 -0.09 Td (318)Tj /TT0 1 Tf -9.577 -1.25 Td (SIG_ERR)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(19,)-250(324, 334, 340)]TJ 11.563 0.09 Td (\320)Tj 0.583 -0.09 Td (343, 348,)Tj -14.063 -1.25 Td (354)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (356, 360)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(361, 363, 368, 550, 709, 71)55(1, 733)]TJ /TT0 1 Tf -9.033 -1.25 Td (sigevent)Tj /T1_0 1 Tf 5.217 0 Td [(str)8(uctur)18(e, )-250(512)]TJ /TT0 1 Tf -5.217 -1.25 Td (SIGEV_NONE)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(518)]TJ /TT0 1 Tf -6.417 -1.25 Td (sigfillset)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(331,)-250(344, 366, 477, 933)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(344)]TJ /TT0 1 Tf -1.35 -1.25 Td (SIGFPE)Tj /T1_0 1 Tf 4.017 0 Td [(signal, )-250(18,)-250(240)]TJ 6.477 0.09 Td (\320)Tj 0.583 -0.09 Td (241, 317)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (318, 352)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (353)Tj /TT0 1 Tf -19.41 -1.25 Td (SIGFREEZE)Tj /T1_0 1 Tf 5.817 0 Td [(signal, )-250(317)]TJ 4.977 0.09 Td (\320)Tj 0.583 -0.09 Td (318)Tj /TT0 1 Tf -11.377 -1.25 Td (Sigfunc)Tj /T1_0 1 Tf 4.617 0 Td [(data type,)-500(354)]TJ 6.482 0.09 Td (\320)Tj 0.583 -0.09 Td (355, 896)Tj /TT0 1 Tf -11.682 -1.25 Td (SIGHUP)Tj /T1_0 1 Tf 4.017 0 Td [(signal, )-250(308)]TJ 4.977 0.09 Td (\320)Tj 0.583 -0.09 Td (309, 317)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (318, 468, 475)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (479,)Tj -17.21 -1.25 Td (546, 815, 830, 843)Tj /TT0 1 Tf -2.7 -1.25 Td (SIG_IGN)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(323,)-250(333, 350, 366, 369, 379,)]TJ -1.917 -1.25 Td (467, 815)Tj /TT0 1 Tf -2.7 -1.25 Td (SIGILL)Tj /T1_0 1 Tf 4.017 0 Td [(signal, )-250(317)]TJ 4.977 0.09 Td (\320)Tj 0.583 -0.09 Td (318, 351)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (353, 366)Tj /TT0 1 Tf -13.744 -1.25 Td (SIGINFO)Tj /T1_0 1 Tf 4.617 0 Td [(signal, )-250(317)]TJ 4.977 0.09 Td (\320)Tj 0.583 -0.09 Td (318, 682, 689)Tj /TT0 1 Tf -10.177 -1.25 Td (siginfo)Tj /T1_0 1 Tf 4.617 0 Td [(str)8(uctur)18(e, )-250(244,)-250(283, 351)]TJ 10.302 0.09 Td (\320)Tj 0.583 -0.09 Td (352, 376, 379,)Tj -12.802 -1.25 Td (381, 512)Tj /TT0 1 Tf -2.7 -1.25 Td (SIGINT)Tj /T1_0 1 Tf 4.017 0 Td [(signal, )-250(18)]TJ 4.477 0.09 Td (\320)Tj 0.583 -0.09 Td (19, 300, 314, 317, 319)Tj 9.083 0.09 Td (\320)Tj 0.583 -0.09 Td (320,)Tj -16.044 -1.25 Td (340)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (341, 347, 359)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (361, 364)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (365, 367)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (370,)Tj -16.666 -1.25 Td (372, 455)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (457, 546, 679, 681, 685, 688)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (689,)Tj -16.333 -1.25 Td (701)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (702, 709, 930, 932)Tj /TT0 1 Tf -4.866 -1.25 Td (SIGIO)Tj /T1_0 1 Tf 3.417 0 Td [(signal, )-250(83,)-250(317, 319, 501, 509)]TJ 12.477 0.09 Td (\320)Tj 0.583 -0.09 Td (510, 627)Tj /TT0 1 Tf -16.477 -1.25 Td (SIGIOT)Tj /T1_0 1 Tf 4.017 0 Td [(signal, )-250(317,)-250(319, 365)]TJ /TT0 1 Tf -4.017 -1.25 Td (sigismember)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(331,)-250(344)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (345, 347)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (348,)Tj -17.107 -1.25 Td (933)Tj -1.35 -1.25 Td [(de\336nition of,)-500(344)]TJ 7.775 0.09 Td (\320)Tj 0.583 -0.09 Td (345)Tj /TT0 1 Tf -9.709 -1.25 Td (sigjmp_buf)Tj /T1_0 1 Tf 6.417 0 Td [(data type,)-500(356)]TJ /TT0 1 Tf -6.417 -1.25 Td (SIGJVM1)Tj /T1_0 1 Tf 4.617 0 Td [(signal, )-250(317)]TJ /TT0 1 Tf -4.617 -1.25 Td (SIGJVM2)Tj /T1_0 1 Tf 4.617 0 Td [(signal, )-250(317)]TJ /TT0 1 Tf -4.617 -1.25 Td (SIGKILL)Tj /T1_0 1 Tf 4.617 0 Td [(signal, )-250(272,)-250(275, 315, 317, 319, 321, 323,)]TJ -1.917 -1.25 Td (346, 380, 735)Tj /TT0 1 Tf 23.3 65 Td (siglongjmp)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(219,)-250(331, 355)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (358, 365)Tj -15.69 -1.25 Td [(de\336nition of,)-500(356)]TJ /TT0 1 Tf -1.35 -1.25 Td (SIGLOST)Tj /T1_0 1 Tf 4.617 0 Td [(signal, )-250(317)]TJ /TT0 1 Tf -4.617 -1.25 Td (SIGLWP)Tj /T1_0 1 Tf 4.017 0 Td [(signal, )-250(317,)-250(319, 321)]TJ /TT0 1 Tf -4.017 -1.25 Td (signal)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(18)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (19, 59, 308, 323)Tj 6.583 0.09 Td (\320)Tj 0.583 -0.09 Td (326,)Tj -14.607 -1.25 Td (329)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (335, 339)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (343, 348)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (349, 354)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (356,)Tj -14.666 -1.25 Td (360)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(361, 363, 368, 378, 510, 550, 709, 71)55(1, 939)]TJ -3.517 -1.25 Td [(de\336nition of,)-500(323, 354)]TJ -1.35 -1.25 Td [(signal mask,)-500(336)]TJ 0 -1.25 TD [(signal set,)-500(336, 344)]TJ 8.456 0.09 Td (\320)Tj 0.583 -0.09 Td (345, 532, 933)Tj /TT0 1 Tf -9.04 -1.25 Td ()Tj /T1_0 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7, 240, 314, 324, 344)Tj 8.583 0.09 Td (\320)Tj 0.583 -0.09 Td (345,)Tj -17.105 -1.25 Td (380)Tj /TT0 1 Tf -2.7 -1.25 Td (signal_intr)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(330,)-250(355, 364, 382, 508,)]TJ -4.317 -1.25 Td (733, 896, 930)Tj -1.35 -1.25 Td [(de\336nition of,)-500(355)]TJ -1.35 -1.25 Td [(signals, )-250(18)]TJ 4.901 0.09 Td (\320)Tj 0.583 -0.09 Td (19, 313)Tj 3.083 0.09 Td (\320)Tj 0.583 -0.09 Td (382)Tj -7.801 -1.25 Td [(blocking, )-250(335)]TJ T* (delivery)Tj 0.5 Tc 3.556 0 Td (,3)Tj 0 Tc 1.25 0 Td (35)Tj -4.806 -1.25 Td [(generation, )-250(335)]TJ T* [(generation, pseudo terminal,)-500(741)]TJ T* [(job-contr)18(ol, )-250(377)]TJ 7.111 0.09 Td (\320)Tj 0.583 -0.09 Td (379)Tj -7.695 -1.25 Td [(null, )-250(314,)-250(337)]TJ T* [(pending, )-250(335)]TJ T* [(queueing, )-250(336,)-250(349, 376)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(liable, )-250(335)]TJ 4.738 0.09 Td (\320)Tj 0.583 -0.09 Td (336)Tj -6.177 -1.25 Td [(unr)18(eliable, )-250(326)]TJ 6.779 0.09 Td (\320)Tj 0.583 -0.09 Td (327)Tj /TT0 1 Tf -8.713 -1.25 Td (signal_thread)Tj /T1_0 1 Tf 8.217 0 Td [(function, )-250(814,)-250(830)]TJ -6.867 -1.25 Td [(de\336nition of,)-500(830)]TJ /TT0 1 Tf -1.35 -1.25 Td (sigpause)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(331)]TJ /TT0 1 Tf -5.217 -1.25 Td (sigpending)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(331,)-250(335, 347)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (349)Tj -15.69 -1.25 Td [(de\336nition of,)-500(347)]TJ /TT0 1 Tf -1.35 -1.25 Td (SIGPIPE)Tj /T1_0 1 Tf 4.617 0 Td [(signal, )-250(314,)-250(317, 319, 537, 550)]TJ 12.977 0.09 Td (\320)Tj 0.583 -0.09 Td (551, 553,)Tj -15.477 -1.25 Td [(556, 587, 61)55(1, 815, 936)]TJ /TT0 1 Tf -2.7 -1.25 Td (SIGPOLL)Tj /T1_0 1 Tf 4.617 0 Td [(signal, )-250(317,)-250(319, 501, 509)]TJ 10.977 0.09 Td (\320)Tj 0.583 -0.09 Td (510)Tj /TT0 1 Tf -16.177 -1.25 Td (sigprocmask)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(331,)-250(336, 340, 344,)]TJ -4.317 -1.25 Td (346)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (349, 360, 362)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (364, 366, 370, 374, 378,)Tj -8.333 -1.25 Td (453)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (454, 456, 701)Tj -3.517 -1.25 Td [(de\336nition of,)-500(346)]TJ /TT0 1 Tf -1.35 -1.25 Td (SIGPROF)Tj /T1_0 1 Tf 4.617 0 Td [(signal, )-250(317,)-250(320)]TJ /TT0 1 Tf -4.617 -1.25 Td (SIGPWR)Tj /T1_0 1 Tf 4.017 0 Td [(signal, )-250(317)]TJ 4.977 0.09 Td (\320)Tj 0.583 -0.09 Td (318, 320)Tj /TT0 1 Tf -9.577 -1.25 Td (sigqueue)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(222,)-250(331, 353, 376)]TJ 12.04 0.09 Td (\320)Tj 0.583 -0.09 Td (377)Tj -16.49 -1.25 Td [(de\336nition of,)-500(376)]TJ /TT0 1 Tf -1.35 -1.25 Td (SIGQUEUE_MAX)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(40,)-250(43, 376)]TJ /TT0 1 Tf -7.617 -1.25 Td (SIGQUIT)Tj /T1_0 1 Tf 4.617 0 Td [(signal, )-250(300,)-250(317, 320, 347)]TJ 10.977 0.09 Td (\320)Tj 0.583 -0.09 Td (349, 361)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (362,)Tj -17.644 -1.25 Td (367, 370, 372, 456)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (457, 546, 681, 689, 702, 709)Tj /TT0 1 Tf -10.867 -1.25 Td (SIGRTMAX)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(376)]TJ /TT0 1 Tf -5.217 -1.25 Td (SIGRTMIN)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(376)]TJ /TT0 1 Tf -5.217 -1.25 Td (SIGSEGV)Tj /T1_0 1 Tf 4.617 0 Td [(signal, )-250(314,)-250(317, 320, 332, 336, 352)]TJ 14.977 0.09 Td (\320)Tj 0.583 -0.09 Td (353,)Tj -17.477 -1.25 Td (393, 527)Tj /TT0 1 Tf -2.7 -1.25 Td (sigset)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(331,)-250(333)]TJ /TT0 1 Tf -4.017 -1.25 Td (sigsetjmp)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(219,)-250(331, 355)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (358)Tj -15.09 -1.25 Td [(de\336nition of,)-500(356)]TJ /TT0 1 Tf -1.35 -1.25 Td (SIG_SETMASK)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(346,)-250(348)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (349, 360,)Tj -12.963 -1.25 Td (362)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (364, 366, 370, 374, 454, 456, 701)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47549 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.5 )]TJ 34.775 0 Td [(Thr)18(ead )-250(T)92(ermination)]TJ /T1_1 1 Tf 11.058 0 Td (393)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(On Mac OS X, we get dif)18(fer)18(ent r)18(esults:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 652.2609 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (thread 1:)Tj 1.2 -1.189 Td (structure at 0x1000b6f00)Tj 0 -1.189 TD (foo.a = 1)Tj T* (foo.b = 2)Tj 0 -1.189 TD (foo.c = 3)Tj 0 -1.189 TD (foo.d = 4)Tj -1.2 -1.189 Td (parent starting second thread)Tj T* (thread 2: ID is 4295716864)Tj T* (parent:)Tj 1.2 -1.189 Td (structure at 0x1000b6f00)Tj -1.2 -1.189 Td (Segmentation fault \(core dumped\))Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 516.569 Tm [(In )-43(this )-43(case, )-43(the )-43(memory )-43(is )-43(no )-43(longer )-43(valid )-43(when )-43(the )-43(par)13(ent )-43(tries )-43(to )-43(access )-43(the )-43(str)6(uctur)18(e)]TJ 0 -1.2 TD [(passed to it by the \336rst thr)18(ead that exited, and the par)18(ent is sent the)]TJ /TT0 1 Tf 29.943 0 Td (SIGSEGV)Tj /T1_0 1 Tf 4.45 0 Td (signal.)Tj -32.593 -1.2 Td [(On )-14(Fr)18(eeBSD, )-14(the )-14(memory )-14(hasn\325t )-14(been )-14(overwritten )-14(by )-14(the )-14(time )-14(the )-14(par)18(ent )-14(accesses )-14(it,)]TJ -1.8 -1.2 Td (and we get)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 463.8722 Tm (thread 1:)Tj 1.2 -1.189 Td (structure at 0xbf9fef88)Tj 0 -1.189 TD (foo.a = 1)Tj T* (foo.b = 2)Tj T* (foo.c = 3)Tj 0 -1.189 TD (foo.d = 4)Tj -1.2 -1.189 Td (parent starting second thread)Tj 0 -1.189 TD (thread 2: ID is 673279680)Tj T* (parent:)Tj 1.2 -1.189 Td (structure at 0xbf9fef88)Tj T* (foo.a = 1)Tj T* (foo.b = 2)Tj T* (foo.c = 3)Tj T* (foo.d = 4)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 306.7816 Tm [(Even )-116(though )-116(the )-116(memory )-116(is )-116(still )-116(intact )-116(after )-116(the )-116(thr)15(ead )-116(exits, )-116(we )-116(can\325t )-116(depend )-116(on )-116(this)]TJ 0 -1.2 TD [(always being the case.)-500(It certainly isn\325t what we observe on the other platforms.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2948.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 264.7682 Tm [(One )-65(thr)18(ead )-65(can )-65(r)19(equest )-65(that )-65(another )-65(in )-65(the )-65(same )-65(pr)18(ocess )-65(be )-65(canceled )-65(by )-65(calling )-65(the)]TJ /TT0 1 Tf -1.8 -1.2 Td (pthread_cancel)Tj /T1_0 1 Tf 8.65 0 Td (function.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 234.8718 Tm (#include )Tj 0 -1.902 TD (int pthread_cancel\(pthread_t)Tj /T1_2 1 Tf 17.4 0 Td (tid)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 3.881 -1.902 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1961.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 181.4273 Tm [(In )-19(the )-19(default )-19(cir)17(cumstances,)]TJ /TT0 1 Tf 12.998 0 Td (pthread_cancel)Tj /T1_0 1 Tf 8.67 0 Td [(will )-20(cause )-20(the )-20(thr)18(ead )-20(speci\336ed )-20(by)]TJ /T1_2 1 Tf 15.08 0 Td (tid)Tj /T1_0 1 Tf 1.381 0 Td (to)Tj -38.128 -1.2 Td [(behave )-115(as )-115(if )-115(it )-115(had )-115(called)]TJ /TT0 1 Tf 11.824 0 Td (pthread_exit)Tj /T1_0 1 Tf 7.565 0 Td [(with )-115(an )-115(ar)17(gument )-115(of)]TJ /TT0 1 Tf 9.761 0 Td (PTHREAD_CANCELED)Tj /T1_0 1 Tf (.)Tj -29.15 -1.2 Td (However)Tj 0.3296 Tc 4.056 0 Td (,at)Tj 0 Tc 1.735 0 Td [(hr)18(ead )-80(can )-80(elect )-80(to )-80(ignor)20(e)-330(or)-330(o)1(therwise )-80(contr)18(ol )-80(how )-80(it )-80(is )-80(canceled.)]TJ -0.092 Tc 29.785 0 Td [(We )-264(w)]TJ 0 Tc 2.551 0 Td (ill)Tj -38.127 -1.2 Td [(discuss )-80(this )-80(in )-80(detail )-80(in )-80(Section )-80(12.7.)-580(Note )-80(that)]TJ /TT0 1 Tf 21.421 0 Td (pthread_cancel)Tj /T1_0 1 Tf 8.73 0 Td [(doesn\325t )-80(wait )-80(for )-80(the)]TJ -30.151 -1.2 Td [(thr)18(ead to terminate; it mer)18(ely makes the r)18(equest.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47550 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(18.3)]TJ 32.499 0 Td [(Special )-250(Input )-250(Characters)]TJ /T1_1 1 Tf 13.334 0 Td (681)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(ERASE2 )-1505(The)-343(alternate )-93(erase )-93(character )-93(\(backspace\).)-595(This )-93(character )-93(is )-93(tr)18(eated )-93(exactly)]TJ 5.448 -1.2 Td (like the erase character)Tj 10.346 0.04 Td (\()Tj 0.333 -0.04 Td (ERASE)Tj 3.193 0.04 Td (\))Tj 0.333 -0.04 Td (.)Tj -19.653 -1.96 Td [(INTR )-2749(The)-355(interr)8(upt )-105(character)]TJ 0.6046 Tc 15.812 0 Td (.T)Tj 0 Tc 1.468 0 Td [(his )-105(character )-105(is )-105(r)19(ecognized )-104(on )-104(input )-104(if )-104(the)]TJ /TT0 1 Tf 19.32 0 Td (ISIG)Tj /T1_0 1 Tf -31.152 -1.2 Td [(\337ag )-115(is )-115(set )-115(and )-115(generates )-115(the)]TJ /TT0 1 Tf 13.1 0 Td (SIGINT)Tj /T1_0 1 Tf 3.965 0 Td [(signal )-115(that )-115(is )-115(sent )-115(to )-115(all )-115(pr)18(ocesses )-115(in)]TJ -17.065 -1.2 Td [(the )-377(for)18(egr)18(ound )-377(pr)18(ocess )-377(gr)18(oup )-377(\(r)18(efer )-377(to )-377(Figur)]TJ 0.6274 Tc 21.79 0 Td (e9)Tj 0 Tc 1.606 0 Td [(.7\). )-627(This)-628(character )-377(is)]TJ -23.397 -1.2 Td [(discar)18(ded when pr)18(ocessed \(i.e., it is not passed to the pr)18(ocess\).)]TJ -5.448 -1.96 Td [(KILL )-2913(The)-373(kill )-123(character)]TJ 0.6232 Tc 13.288 0 Td (.\()Tj 0 Tc 1.206 0 Td [(The )-123(name )-123(\324)37(\324kill\325)37(\325)-373(is)-373(over)8(used; )-123(r)18(ecall )-123(the)]TJ /TT0 1 Tf 18.025 0 Td (kill)Tj /T1_0 1 Tf 2.773 0 Td (function)Tj -29.845 -1.2 Td [(used )-218(to )-218(send )-218(a )-218(signal )-218(to )-218(a )-218(pr)15(ocess. )-468(This)-469(character )-218(should )-218(be )-218(called )-218(the)]TJ -0 -1.2 Td [(line-erase )-88(character; )-88(it )-88(has )-88(nothing )-88(to )-88(do )-88(with )-88(signals.\))-588(It )-88(is )-88(r)18(ecognized )-88(on)]TJ 0 -1.2 TD [(input )-11(in )-11(canonical )-11(mode )-11(\()]TJ /TT0 1 Tf 11.35 0 Td (ICANON)Tj /T1_0 1 Tf [(\). )-261(It)-260(erases )-11(the )-11(entir)]TJ 0.2606 Tc 12.281 0 Td (el)Tj 0 Tc 1.031 0 Td [(ine )-10(and )-10(is )-10(discar)17(ded)]TJ -24.662 -1.2 Td [(when pr)18(ocessed \(i.e., it is not passed to the pr)18(ocess\).)]TJ -5.448 -1.96 Td [(LNEXT )-1865(The)-254(literal-next )-4(character)]TJ 0.5036 Tc 16.429 0 Td (.T)Tj 0 Tc 1.367 0 Td [(his )-4(character )-4(is )-4(r)18(ecognized )-4(on )-4(input )-4(in )-4(extended)]TJ -12.348 -1.2 Td [(mode )-43(\()]TJ /TT0 1 Tf (IEXTEN)Tj /T1_0 1 Tf 0.2935 Tc (\)a)Tj 0 Tc 7.872 0 Td [(nd )-43(causes )-43(any )-43(special )-43(meaning )-43(of )-43(the )-43(next )-43(character )-43(to )-43(be)]TJ -7.872 -1.2 Td [(ignor)18(ed. )-304(This)-304(works )-54(for )-54(all )-54(special )-54(characters )-54(listed )-54(in )-54(this )-54(section.)]TJ -0.092 Tc 30.335 0 Td [(We )-238(c)]TJ 0 Tc 2.135 0 Td (an)Tj -32.47 -1.2 Td [(use )-2(this )-2(character )-2(to )-2(type )-2(any )-2(character )-2(to )-2(a )-2(pr)22(ogram. )-252(The)-251(LNEXT )-1(character)]TJ 0 -1.2 Td [(is )-16(discar)18(ded )-16(when )-16(pr)18(ocessed, )-16(but )-16(the )-16(next )-16(character )-16(enter)18(ed )-16(is )-16(passed )-16(to )-16(the)]TJ T* [(pr)18(ocess.)]TJ -5.448 -1.96 Td [(NL )-3756(The)-281(newline )-31(character)]TJ 0.2807 Tc 15.212 0 Td (,a)Tj 0 Tc 1.031 0 Td [(lso )-31(called )-31(the )-31(line )-31(delimiter)]TJ 0.5306 Tc 12.001 0 Td (.W)Tj 0.2806 Tc 1.689 0 Td (ec)Tj 0 Tc 1.204 0 Td [(annot )-31(change )-31(this)]TJ -25.689 -1.2 Td (character)Tj 0.7539 Tc 3.991 0 Td (.I)Tj 0 Tc 1.341 0 Td [(t)-504(is)-504(r)18(ecognized )-254(on )-254(input )-254(in )-254(canonical )-254(mode )-254(\()]TJ /TT0 1 Tf 21.373 0 Td (ICANON)Tj /T1_0 1 Tf [(\). )-504(This)]TJ -26.705 -1.2 Td [(character is r)18(eturned to the r)18(eading pr)18(ocess.)]TJ -5.448 -1.96 Td [(QUIT )-2684(The)-287(quit )-37(character)]TJ 0.537 Tc 13.467 0 Td (.T)Tj 0 Tc 1.4 0 Td [(his )-37(character )-37(is )-37(r)18(ecognized )-37(on )-37(input )-37(if )-37(the)]TJ /TT0 1 Tf 18.78 0 Td (ISIG)Tj /T1_0 1 Tf 2.687 0 Td [(\337ag )-37(is)]TJ -30.886 -1.2 Td [(set. )-366(The)-366(quit )-116(character )-116(generates )-116(the)]TJ /TT0 1 Tf 17.05 0 Td (SIGQUIT)Tj /T1_0 1 Tf 4.566 0 Td [(signal, )-116(which )-116(is )-116(sent )-116(to )-116(all)]TJ -21.616 -1.2 Td [(pr)18(ocesses )-348(in )-348(the )-348(for)17(egr)18(ound )-348(pr)18(ocess )-348(gr)18(oup )-348(\(r)18(efer )-348(to )-348(Figur)]TJ 0.5983 Tc 27.883 0 Td (e9)Tj 0 Tc 1.577 0 Td [(.7\). )-598(This)]TJ -29.461 -1.2 Td [(character is discar)18(ded when pr)18(ocessed \(i.e., it is not passed to the pr)18(ocess\).)]TJ 0 -1.92 TD [(Recall )-65(fr)18(om )-65(Figur)]TJ 0.315 Tc 7.825 0 Td (e1)Tj 0 Tc 1.294 0 Td [(0.1 )-65(that )-65(the )-65(dif)18(fer)18(ence )-65(between )-65(INTR )-65(and )-65(QUIT )-65(is )-65(that)]TJ -9.119 -1.2 Td [(the )-209(QUIT )-209(character )-209(not )-209(only )-209(terminates )-209(the )-209(pr)20(ocess )-209(by )-209(default, )-209(but )-209(also)]TJ 0 -1.2 TD (generates a)Tj /TT0 1 Tf 5.22 0 Td (core)Tj /T1_0 1 Tf 2.65 0 Td (\336le.)Tj -13.318 -1.96 Td [(REPRINT )-866(The)]TJ -0.018 Tc 7.526 0 Td (re)Tj 0 Tc 0.856 0 Td [(print )-154(character)]TJ 0.6544 Tc 6.59 0 Td (.T)Tj 0 Tc 1.517 0 Td [(his )-154(character )-154(is )-154(r)18(ecognized )-154(on )-154(input )-154(in )-154(extended,)]TJ -11.042 -1.2 Td [(canonical )-38(mode )-38(\(both)]TJ /TT0 1 Tf 9.903 0 Td (IEXTEN)Tj /T1_0 1 Tf 3.888 0 Td (and)Tj /TT0 1 Tf 1.981 0 Td (ICANON)Tj /T1_0 1 Tf 3.888 0 Td [(\337ags )-38(set\) )-38(and )-38(causes )-38(all )-38(unr)18(ead)]TJ -19.66 -1.2 Td [(input )-68(to )-68(be )-68(output )-68(\(r)19(eechoed\). )-318(This)-317(character )-68(is )-68(discar)18(ded )-68(when )-68(pr)19(ocessed)]TJ 0 -1.2 Td [(\(i.e., it is not passed to the pr)18(ocess\).)]TJ -5.448 -1.96 Td [(ST)74(AR)]TJ 2.362 Tc 2.473 0 Td (TT)Tj 0 Tc 3.588 0 Td [(he )-22(start )-22(character)]TJ 0.5223 Tc 7.568 0 Td (.T)Tj 0 Tc 1.385 0 Td [(his )-22(character )-22(is )-22(r)18(ecognized )-22(on )-22(input )-22(if )-22(the)]TJ /TT0 1 Tf 18.662 0 Td (IXON)Tj /T1_0 1 Tf 2.672 0 Td [(\337ag )-22(is)]TJ -30.901 -1.2 Td [(set )-183(and )-183(is )-183(automatically )-183(generated )-183(as )-183(output )-183(if )-183(the)]TJ /TT0 1 Tf 23.935 0 Td (IXOFF)Tj /T1_0 1 Tf 3.433 0 Td [(\337ag )-183(is )-183(set.)-682(A)]TJ -0.018 Tc -27.368 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ceived )-207(ST)74(AR)]TJ 0.4575 Tc 5.799 0 Td (Tc)Tj 0 Tc 1.514 0 Td [(haracter )-207(with)]TJ /TT0 1 Tf 6.569 0 Td (IXON)Tj /T1_0 1 Tf 2.858 0 Td [(set )-207(causes )-207(stopped )-207(output )-207(\(fr)18(om )-207(a)]TJ -17.596 -1.2 Td [(pr)18(eviously )-277(enter)18(ed )-277(ST)18(OP )-277(character\) )-277(to )-277(r)20(estart. )-527(In)-526(this )-277(case, )-277(the )-277(ST)75(AR)37(T)]TJ -0 -1.2 Td [(character is discar)18(ded when pr)18(ocessed \(i.e., it is not passed to the pr)18(ocess\).)]TJ 0 -1.92 TD (When)Tj /TT0 1 Tf 3.041 0 Td (IXOFF)Tj /T1_0 1 Tf 3.398 0 Td [(is )-148(set, )-148(the )-148(terminal )-148(driver )-148(automatically )-148(generates )-148(a )-148(ST)72(AR)37(T)]TJ -6.439 -1.2 Td [(character )-167(to )-167(r)18(esume )-167(input )-167(that )-167(it )-167(had )-167(pr)15(eviously )-168(stopped, )-168(when )-168(the )-168(new)]TJ 0 -1.2 TD [(input will not over\337ow the input buf)18(fer)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47551 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(10.1)]TJ 32.9463 Tc 5.388 0 Td (1S)Tj 0 Tc 33.971 0 Td [(ignal )-250(Sets)]TJ /T1_1 1 Tf 6.474 0 Td (345)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Using )-28(this )-28(implementation,)]TJ /TT0 1 Tf 12.399 0 Td (sigaddset)Tj /T1_0 1 Tf 5.678 0 Td [(turns )-28(on )-28(a )-28(single )-28(bit )-28(and)]TJ /TT0 1 Tf 11.114 0 Td (sigdelset)Tj /T1_0 1 Tf 5.678 0 Td (turns)Tj -36.67 -1.2 Td (of)Tj 0.2589 Tc 0.861 0 Td (fas)Tj 0 Tc 1.775 0 Td [(ingle )-9(bit;)]TJ /TT0 1 Tf 4.137 0 Td (sigismember)Tj /T1_0 1 Tf 6.859 0 Td [(tests )-9(a )-9(certain )-9(bit.)-509(Since )-9(no )-9(signal )-9(is )-9(ever )-9(number)18(ed )-9(0, )-9(we)]TJ -13.631 -1.2 Td [(subtract )-85(1 )-85(fr)19(om )-85(the )-85(signal )-85(number )-85(to )-85(obtain )-85(the )-85(bit )-85(to )-85(manipulate.)-583(Figur)]TJ 0.3348 Tc 32.791 0 Td (e1)Tj 0 Tc 1.314 0 Td [(0.12 )-85(shows)]TJ -34.105 -1.2 Td (implementations of these functions.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6210.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 611.4256 Tm [(#include )-1800()]TJ 0 -1.189 TD [(#include )-1800()]TJ 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*<)Tj 0 Tc 1.8 0 Td (signal.h> usually defines NSIG to include signal number 0.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td [(#define SIGBAD\(signo\))-1800(\(\(signo\) <= 0 || \(signo\) >= NSIG\))]TJ 0 -1.902 TD (int)Tj 0 -1.189 TD (sigaddset\(sigset_t *set, int signo\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (if \(SIGBAD\(signo\)\) {)Tj 2.4 -1.189 Td (errno = EINVAL;)Tj 0 -1.189 TD (return\(-1\);)Tj -2.4 -1.189 Td (})Tj T* [(*set |= 1 << \(signo - 1\);)-4200(/* turn bit on */)]TJ T* (return\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (sigdelset\(sigset_t *set, int signo\))Tj T* ({)Tj 2.4 -1.189 Td (if \(SIGBAD\(signo\)\) {)Tj 2.4 -1.189 Td (errno = EINVAL;)Tj T* (return\(-1\);)Tj -2.4 -1.189 Td (})Tj T* [(*set &= \367\(1 << \(signo - 1\)\);)-2400(/* turn bit off */)]TJ T* (return\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (sigismember\(const sigset_t *set, int signo\))Tj T* ({)Tj 2.4 -1.189 Td (if \(SIGBAD\(signo\)\) {)Tj 2.4 -1.189 Td (errno = EINVAL;)Tj T* (return\(-1\);)Tj -2.4 -1.189 Td (})Tj T* (return\(\(*set & \(1 << \(signo - 1\)\)\) != 0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2172.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 178.2199 201.1818 Tm (Figure 10.12)Tj /T1_0 1 Tf 6.195 0 Td (An implementation of)Tj /TT0 1 Tf 10.049 0 Td (sigaddset)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 5.9 0 Td (sigdelset)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 6.4 0 Td (nd)Tj /TT0 1 Tf 1.443 0 Td (sigismember)Tj /T1_0 1 Tf -0.092 Tc 9.9982 0 0 9.9982 129.5772 173.5868 Tm [(We )-391(m)]TJ 0 Tc 2.727 0 Td [(ight )-207(be )-207(tempted )-207(to )-207(implement )-207(these )-207(thr)18(ee )-207(functions )-207(as )-207(one-line )-207(macr)14(os )-207(in )-207(the)]TJ /TT0 1 Tf -2.727 -1.2 Td ()Tj /T1_0 1 Tf 6.294 0 Td (header)Tj 0.2939 Tc 2.972 0 Td (,b)Tj 0 Tc 1.097 0 Td [(ut )-44(POSIX.1 )-44(r)18(equir)18(es )-44(us )-44(to )-44(check )-44(the )-44(signal )-44(number )-44(ar)19(gument )-44(for)]TJ -10.363 -1.2 Td [(validity )-14(and )-14(to )-14(set)]TJ /TT0 1 Tf 8.281 0 Td (errno)Tj /T1_0 1 Tf 3.264 0 Td [(if )-14(it )-14(is )-14(invalid.)-514(This )-14(is )-14(mor)]TJ 0.2638 Tc 11.601 0 Td (ed)Tj 0 Tc 1.354 0 Td [(if)18(\336cult )-14(to )-14(do )-14(in )-14(a )-14(macr)]TJ 0.2638 Tc 9.8 0 Td (ot)Tj 0 Tc 1.136 0 Td [(han )-14(in )-14(a)]TJ -35.435 -1.2 Td (function.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47552 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (512)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(discuss )-11(shortly)]TJ 0.5109 Tc 6.491 0 Td (.T)Tj 0 Tc 1.374 0 Td (he)Tj /TT0 1 Tf 1.322 0 Td (aio_sigevent)Tj /T1_1 1 Tf 7.461 0 Td [(\336eld )-11(contr)18(ols )-11(how )-11(the )-11(application )-11(is )-11(noti\336ed )-11(about)]TJ -16.647 -1.2 Td [(the completion of the I/O event.)-500(It is described by a)]TJ /TT0 1 Tf 23.326 0 Td (sigevent)Tj /T1_1 1 Tf 5.05 0 Td [(str)8(uctur)18(e.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.591 637.8617 Tm (struct sigevent {)Tj 1.2 -1.189 Td (int )Tj 9.6 0 Td (sigev_notify;)Tj 17.4 0 Td (/* notify type */)Tj -27 -1.189 Td (int )Tj 9.6 0 Td (sigev_signo;)Tj 17.4 0 Td (/* signal number */)Tj -27 -1.189 Td [(union sigval)-2400(sigev_value; )]TJ 27 0 Td [(/*)-600(notify argument */)]TJ -27 -1.189 Td (void \(*sigev_notify_function\)\(union sigval\); /* notify function */)Tj 0 -1.189 TD [(pthread_attr_t *sigev_notify_attributes;)-3000(/* notify attrs */)]TJ -1.2 -1.189 Td (};)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 147.591 550.8669 Tm (The)Tj /TT0 1 Tf 2.087 0 Td (sigev_notify)Tj /T1_1 1 Tf 7.613 0 Td [(\336eld )-163(contr)18(ols )-163(the )-163(type )-163(of )-163(noti\336cation.)-663(It )-163(can )-163(take )-163(on )-163(one )-163(of)]TJ -11.501 -1.2 Td [(thr)18(ee values.)]TJ /TT0 1 Tf 1.8 -1.92 Td (SIGEV_NONE)Tj /T1_1 1 Tf 8.083 0 Td [(The )-142(pr)18(ocess )-142(is )-142(not )-142(noti\336ed )-142(when )-142(the )-142(asynchr)15(onous )-142(I/O )-142(r)17(equest)]TJ 0 -1.2 TD (completes.)Tj /TT0 1 Tf -8.083 -1.6 Td (SIGEV_SIGNAL)Tj /T1_1 1 Tf 8.083 0 Td [(The )-333(signal )-333(speci\336ed )-333(by )-333(the)]TJ /TT0 1 Tf 13.661 0 Td (sigev_signo)Tj /T1_1 1 Tf 7.183 0 Td [(\336eld )-333(is )-333(generated)]TJ -20.844 -1.2 Td [(when )-13(the )-13(asynchr)18(onous )-13(I/O )-13(r)18(equest )-13(completes.)-515(If )-13(the )-13(application)]TJ T* [(has )-28(elected )-28(to )-28(catch )-28(the )-28(signal )-28(and )-28(has )-28(speci\336ed )-28(the)]TJ /TT0 1 Tf 23.117 0 Td (SA_SIGINFO)Tj /T1_1 1 Tf -23.117 -1.2 Td [(\337ag )-49(when )-49(establishing )-49(the )-49(signal )-49(handler)]TJ 0.2992 Tc 18.333 0 Td (,t)Tj 0 Tc 0.875 0 Td [(he )-49(signal )-49(is )-49(queued )-49(\(if)]TJ -19.208 -1.2 Td [(the )-1(implementation )-1(supports )-1(queued )-1(signals\).)-500(The )-1(signal )-1(handler)]TJ T* [(is )-173(passed )-173(a)]TJ /TT0 1 Tf 5.522 0 Td (siginfo)Tj /T1_1 1 Tf 4.623 0 Td [(str)8(uctur)]TJ 0.4227 Tc 3.49 0 Td (ew)Tj 0 Tc 1.736 0 Td (hose)Tj /TT0 1 Tf 2.454 0 Td (si_value)Tj /T1_1 1 Tf 5.223 0 Td [(\336eld )-173(is )-173(set )-173(to)]TJ /TT0 1 Tf -23.047 -1.2 Td (sigev_value)Tj /T1_1 1 Tf 6.85 0 Td (\(again, if)Tj /TT0 1 Tf 4.136 0 Td (SA_SIGINFO)Tj /T1_1 1 Tf 6.25 0 Td (is used\).)Tj /TT0 1 Tf -25.319 -1.6 Td (SIGEV_THREAD)Tj /T1_1 1 Tf 8.083 0 Td [(The )-36(function )-36(speci\336ed )-36(by )-36(the)]TJ /TT0 1 Tf 13.243 0 Td (sigev_notify_function)Tj /T1_1 1 Tf 12.887 0 Td [(\336eld )-36(is)]TJ -26.129 -1.2 Td [(called )-393(when )-393(the )-393(asynchr)18(onous )-393(I/O )-393(r)18(equest )-393(completes.)-892(It )-393(is)]TJ T* [(passed )-461(the)]TJ /TT0 1 Tf 5.847 0 Td (sigev_value)Tj /T1_1 1 Tf 7.311 0 Td [(\336eld )-461(as )-461(its )-461(only )-461(ar)20(gument. )-711(The)]TJ -13.158 -1.2 Td [(function )-260(is )-260(executed )-260(in )-260(a )-260(separate )-260(thr)18(ead )-260(in )-260(a )-260(detached )-260(state,)]TJ T* [(unless )-455(the)]TJ /TT0 1 Tf 5.601 0 Td (sigev_notify_attributes)Tj /T1_1 1 Tf 14.505 0 Td [(\336eld )-455(is )-455(set )-455(to )-455(the)]TJ -20.106 -1.2 Td [(addr)18(ess )-290(of )-290(a )-290(pthr)18(ead )-290(attribute )-290(str)10(uctur)]TJ 0.5395 Tc 18.268 0 Td (es)Tj 0 Tc 1.442 0 Td [(pecifying )-289(alternative)]TJ -19.71 -1.2 Td [(attributes for the thr)18(ead.)]TJ -0.092 Tc -8.083 -1.92 Td [(To )-278(p)]TJ 0 Tc 2.012 0 Td [(erform )-94(asynchr)18(onous )-94(I/O, )-94(we )-94(need )-94(to )-94(initialize )-94(an )-94(AIO )-94(contr)17(ol )-94(block )-94(and )-94(call)]TJ -3.812 -1.2 Td [(either )-325(the)]TJ /TT0 1 Tf 5.088 0 Td (aio_read)Tj /T1_1 1 Tf 5.375 0 Td [(function )-325(to )-325(make )-325(an )-325(asynchr)18(onous )-325(r)18(ead )-325(or )-325(the)]TJ /TT0 1 Tf 23.137 0 Td (aio_write)Tj /T1_1 1 Tf -33.6 -1.2 Td [(function to make an asynchr)18(onous write.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5908 271.7837 Tm (#include )Tj 0 -1.783 TD (int aio_read\(struct aiocb *)Tj /T1_2 1 Tf (aiocb)Tj /TT0 1 Tf (\);)Tj -0 -1.783 Td (int aio_write\(struct aiocb *)Tj /T1_2 1 Tf (aiocb)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 25.251 -1.783 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT1 1 Tf 9.213 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2191.25 cm 0 0 m 0 617 l 3900 617 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 205.6253 Tm [(When )-133(these )-133(functions )-133(r)18(eturn )-133(success, )-133(the )-133(asynchr)16(onous )-133(I/O )-133(r)18(equest )-133(has )-133(been )-133(queued)]TJ 0 -1.2 TD [(for )-45(pr)18(ocessing )-45(by )-45(the )-45(operating )-45(system.)-545(The )-45(r)18(eturn )-45(value )-45(bears )-45(no )-45(r)15(elation )-45(to )-45(the )-45(r)17(esult)]TJ T* [(of )-51(the )-51(actual )-51(I/O )-51(operation.)-550(While )-51(the )-51(I/O )-51(operation )-51(is )-51(pending, )-51(we )-51(have )-51(to )-51(be )-51(car)19(eful)]TJ T* [(to )-165(ensur)]TJ 0.4153 Tc 3.752 0 Td (et)Tj 0 Tc 1.22 0 Td [(hat )-165(the )-165(AIO )-165(contr)17(ol )-165(block )-165(and )-165(data )-165(buf)18(fer )-165(r)18(emain )-165(stable; )-165(their )-165(underlying)]TJ -4.973 -1.2 Td [(memory )-33(must )-33(r)18(emain )-33(valid )-33(and )-33(we )-33(can\325t )-33(r)15(euse )-34(them )-34(until )-34(the )-34(I/O )-34(operation )-34(completes.)]TJ -0.092 Tc 1.8 -1.2 Td [(To )-241(f)]TJ 0 Tc 1.707 0 Td [(or)18(ce )-57(all )-57(pending )-57(asynchr)18(onous )-57(writes )-57(to )-57(persistent )-57(storage )-57(without )-57(waiting, )-57(we)]TJ -3.507 -1.2 Td [(can set up an AIO contr)18(ol block and call the)]TJ /TT0 1 Tf 19.55 0 Td (aio_fsync)Tj /T1_1 1 Tf 5.65 0 Td (function.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47553 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (984)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (setkey)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -4.017 -1.25 Td (setlogmask)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(470)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (471)Tj -11.69 -1.25 Td [(de\336nition of,)-500(470)]TJ /TT0 1 Tf -1.35 -1.25 Td (setnetent)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(452,)-250(598)]TJ -4.467 -1.25 Td [(de\336nition of,)-500(598)]TJ /TT0 1 Tf -1.35 -1.25 Td (setpgid)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(294,)-250(331)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(294)]TJ /TT0 1 Tf -1.35 -1.25 Td (setpriority)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(277)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(277)]TJ /TT0 1 Tf -1.35 -1.25 Td (setprotoent)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(452,)-250(598)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(598)]TJ /TT0 1 Tf -1.35 -1.25 Td (setpwent)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(180)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (181, 442, 452)Tj -10.49 -1.25 Td [(de\336nition of,)-500(180)]TJ /TT0 1 Tf -1.35 -1.25 Td (setregid)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(257)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (258)Tj -10.49 -1.25 Td [(de\336nition of,)-500(257)]TJ /TT0 1 Tf -1.35 -1.25 Td (setreuid)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(257)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(257)]TJ /TT0 1 Tf -1.35 -1.25 Td (setrlimit)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(53,)-250(220, 382)]TJ -4.467 -1.25 Td [(de\336nition of,)-500(220)]TJ /TT0 1 Tf -1.35 -1.25 Td (setservent)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(452,)-250(599)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(599)]TJ /TT0 1 Tf -1.35 -1.25 Td (setsid)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(294)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (295, 297, 310)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(31)55(1, 331,)]TJ -14.107 -1.25 Td (464)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (467, 724, 727)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (728)Tj -9.683 -1.25 Td [(de\336nition of,)-500(295)]TJ /TT0 1 Tf -1.35 -1.25 Td (setsockopt)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(331,)-250(624)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (625, 651)Tj -13.69 -1.25 Td [(de\336nition of,)-500(624)]TJ /TT0 1 Tf -1.35 -1.25 Td (setspent)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(182)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(182)]TJ /TT0 1 Tf -1.35 -1.25 Td (settimeofday)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(190)]TJ /TT0 1 Tf -7.617 -1.25 Td (setuid)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(98,)-250(256, 258, 260, 288, 331, 816)]TJ -2.667 -1.25 Td [(de\336nition of,)-500(256)]TJ -1.35 -1.25 Td [(set-user)18(-ID, )-250(98)]TJ 6.722 0.09 Td (\320)Tj 0.583 -0.09 Td (99, 102, 104, 107)Tj 7.083 0.09 Td (\320)Tj 0.583 -0.09 Td [(108, 1)55(10, 129, 140,)]TJ -12.272 -1.25 Td (182, 233, 253, 256)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (257, 259, 267, 317, 546,)Tj -8.166 -1.25 Td (585)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (586, 653, 924)Tj -3.517 -1.25 Td [(saved, )-250(56,)-250(98, 256)]TJ 7.912 0.09 Td (\320)Tj 0.583 -0.09 Td (260, 288, 337)Tj /TT0 1 Tf -9.846 -1.25 Td (setutxent)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(442,)-250(452)]TJ /TT0 1 Tf -5.817 -1.25 Td (SETVAL)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(568,)-250(570)]TJ /TT0 1 Tf -4.017 -1.25 Td (setvbuf)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(146)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (147, 150, 171, 175, 220,)Tj -8.54 -1.25 Td (552, 721, 936)Tj -1.35 -1.25 Td [(de\336nition of,)-500(146)]TJ -1.35 -1.25 Td [(SGI \(Silicon Graphics, Inc.\),)-500(35)]TJ 0 -1.25 TD (SGID,)Tj /T1_2 1 Tf 3.149 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td [(set-gr)18(oup-ID)]TJ -4.566 -1.25 Td (SHA)Tj 2.135 0.09 Td (-)Tj 0.333 -0.09 Td [(1, )-250(181)]TJ -2.468 -1.25 Td [(shadow passwor)18(ds, )-250(181)]TJ 10.821 0.09 Td (\320)Tj 0.583 -0.09 Td (182, 196, 918)Tj /TT0 1 Tf -11.404 -1.25 Td ()Tj /T1_1 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,1)Tj 0 Tc 1.25 0 Td (86)Tj /TT0 1 Tf -10.639 -1.25 Td (S_HANGUP)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(510)]TJ -5.217 -1.25 Td (Shannon, W)Tj 0.25 Tc 5.307 0 Td (.A)Tj 0 Tc 1.278 0 Td [(., )-250(525,)-250(949)]TJ -6.585 -1.25 Td [(shar)18(ed)]TJ 1.35 -1.25 Td [(libraries, )-250(206)]TJ 5.952 0.09 Td (\320)Tj 0.583 -0.09 Td (207, 226, 753, 920, 947)Tj -6.535 -1.25 Td (memory)Tj 0.5 Tc 3.631 0 Td (,5)Tj 0 Tc 1.25 0 Td (34, 571)Tj 3.083 0.09 Td (\320)Tj 0.583 -0.09 Td (578)Tj -9.898 -1.25 Td [(sharing, \336le,)-500(74)]TJ 7.038 0.09 Td (\320)Tj 0.583 -0.09 Td (77, 231)Tj -7.621 -1.25 Td (shell,)Tj /T1_2 1 Tf 2.817 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td (Bourne shell, Bourne-again shell, C shell,)Tj -1.534 -1.25 Td (Debian Almquist shell, Korn shell, TENEX C)Tj T* (shell)Tj /TT0 1 Tf 23.3 66.25 Td (SHELL)Tj /T1_1 1 Tf 3.417 0 Td [(envir)18(onment variable,)-500(21)55(1, 288, 737)]TJ -3.417 -1.25 Td [(shell, job-contr)18(ol, )-250(294,)-250(299, 306)]TJ 13.678 0.09 Td (\320)Tj 0.583 -0.09 Td (307, 325, 358, 377,)Tj -11.562 -1.25 Td (379, 734)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (735)Tj -6.866 -1.25 Td [(shell layers,)-500(299)]TJ T* [(shells, )-250(3)]TJ /TT0 1 Tf T* (S_HIPRI)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(510)]TJ /TT0 1 Tf -4.617 -1.25 Td (shmat)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(559,)-250(573)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (576)Tj -10.69 -1.25 Td [(de\336nition of,)-500(574)]TJ /TT0 1 Tf -1.35 -1.25 Td (shmatt_t)Tj /T1_1 1 Tf 5.217 0 Td [(data type,)-500(572)]TJ /TT0 1 Tf -5.217 -1.25 Td (shmctl)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(558,)-250(562, 573)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (575)Tj -13.29 -1.25 Td [(de\336nition of,)-500(573)]TJ /TT0 1 Tf -1.35 -1.25 Td (shmdt)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(574)]TJ -2.067 -1.25 Td [(de\336nition of,)-500(574)]TJ /TT0 1 Tf -1.35 -1.25 Td (shmget)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(557)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (558, 572, 575)Tj -9.29 -1.25 Td [(de\336nition of,)-500(572)]TJ /TT0 1 Tf -1.35 -1.25 Td (shmid_ds)Tj /T1_1 1 Tf 5.217 0 Td [(str)8(uctur)18(e, )-250(572)]TJ 6.302 0.09 Td (\320)Tj 0.583 -0.09 Td (574)Tj /TT0 1 Tf -12.102 -1.25 Td (SHMLBA)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(574)]TJ /TT0 1 Tf -4.017 -1.25 Td (SHM_LOCK)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(573)]TJ /TT0 1 Tf -5.217 -1.25 Td (SHM_RDONLY)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(574)]TJ /TT0 1 Tf -6.417 -1.25 Td (SHM_RND)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(574)]TJ /TT0 1 Tf -4.617 -1.25 Td (SHRT_MAX)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(37)]TJ /TT0 1 Tf -5.217 -1.25 Td (SHRT_MIN)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(37)]TJ /TT0 1 Tf -5.217 -1.25 Td (shutdown)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(331,)-250(592)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (593, 612)Tj -12.49 -1.25 Td [(de\336nition of,)-500(592)]TJ /TT0 1 Tf -1.35 -1.25 Td (SHUT_RD)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(592)]TJ /TT0 1 Tf -4.617 -1.25 Td (SHUT_RDWR)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(592)]TJ /TT0 1 Tf -5.817 -1.25 Td (SHUT_WR)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(592)]TJ /TT0 1 Tf -4.617 -1.25 Td (SI_ASYNCIO)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (S_IFBLK)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(134)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_IFCHR)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(134)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_IFDIR)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(134)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_IFIFO)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(134)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_IFLNK)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(1)55(14, 134)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_IFMT)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(97)]TJ /TT0 1 Tf -4.017 -1.25 Td (S_IFREG)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(134)]TJ /TT0 1 Tf -4.617 -1.25 Td (S_IFSOCK)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(134,)-250(634)]TJ /TT0 1 Tf -5.217 -1.25 Td (sig2str)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(380)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (381)Tj -9.89 -1.25 Td [(de\336nition of,)-500(380)]TJ /TT0 1 Tf -1.35 -1.25 Td (SIG2STR_MAX)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(380)]TJ /TT0 1 Tf -7.017 -1.25 Td (SIGABRT)Tj /T1_1 1 Tf 4.617 0 Td [(signal, )-250(236,)-250(240)]TJ 6.977 0.09 Td (\320)Tj 0.583 -0.09 Td (241, 275, 313, 317)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (319,)Tj -17.644 -1.25 Td (365)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (367, 381, 924)Tj /TT0 1 Tf -4.867 -1.25 Td (sigaction)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(59,)-250(323, 326, 329)]TJ 11.54 0.09 Td (\320)Tj 0.583 -0.09 Td (331, 333,)Tj -15.24 -1.25 Td (335)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (336, 349)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (355, 366, 370, 374, 376, 455,)Tj -6.333 -1.25 Td (468, 476, 478)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (479, 510, 621, 815, 939)Tj -7.516 -1.25 Td [(de\336nition of,)-500(350)]TJ /TT0 1 Tf -1.35 -1.25 Td (sigaction)Tj /T1_1 1 Tf 5.817 0 Td [(str)8(uctur)18(e, )-250(350,)-250(354)]TJ 8.302 0.09 Td (\320)Tj 0.583 -0.09 Td (355, 366, 369, 374,)Tj -12.002 -1.25 Td (376, 379, 467, 476, 478, 621, 814)Tj /TT0 1 Tf -2.7 -1.25 Td (sigaddset)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(331,)-250(344)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (345, 348, 360,)Tj -11.74 -1.25 Td (362)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (363, 370, 374, 378, 456, 478)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (479, 701,)Tj -14.333 -1.25 Td (815, 933)Tj -1.35 -1.25 Td [(de\336nition of,)-500(344)]TJ 7.775 0.09 Td (\320)Tj 0.583 -0.09 Td (345)Tj /TT0 1 Tf -9.709 -1.25 Td (SIGALRM)Tj /T1_1 1 Tf 4.617 0 Td [(signal, )-250(313)]TJ 4.977 0.09 Td (\320)Tj 0.583 -0.09 Td (314, 317, 330)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (332, 338)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (340,)Tj -17.81 -1.25 Td (342)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (343, 347, 354, 356)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (357, 364)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (365,)Tj -14.5 -1.25 Td (373)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (374, 621)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47554 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (134)Tj /T1_1 1 Tf 3.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.241 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (fullpath[n] = 0;)Tj 0 -1.902 TD [(if \(\(dp = opendir\(fullpath\)\) == NULL\))-1800(/* can\325t read directory */)]TJ 2.4 -1.189 Td (return\(func\(fullpath, &statbuf, FTW_DNR\)\);)Tj -2.4 -1.902 Td (while \(\(dirp = readdir\(dp\)\) != NULL\) {)Tj 2.4 -1.189 Td [(if \(strcmp\(dirp->d_name, "."\) == 0)-1200(||)]TJ 2.4 -1.189 Td (strcmp\(dirp->d_name, ".."\) == 0\))Tj 2.4 -1.189 Td [(continue; )-3600(/*)-600(ignore dot and dot-dot */)]TJ -4.8 -1.189 Td (strcpy\(&fullpath[n], dirp->d_name\); /* append name after "/" */)Tj 0 -1.189 TD [(if \(\(ret = dopath\(func\)\) != 0\))-3600(/* recursive */)]TJ 2.4 -1.189 Td [(break; )-600(/*)-600(time to leave */)]TJ -4.8 -1.189 Td (})Tj T* [(fullpath[n-1] = 0;)-1200(/* erase everything from slash onward */)]TJ 0 -1.902 TD (if \(closedir\(dp\) < 0\))Tj 2.4 -1.189 Td (err_ret\("can\325t close directory %s", fullpath\);)Tj -2.4 -1.189 Td (return\(ret\);)Tj -2.4 -1.189 Td (})Tj T* (static int)Tj 0 -1.189 TD (myfunc\(const char *pathname, const struct stat *statptr, int type\))Tj T* ({)Tj 2.4 -1.189 Td (switch \(type\) {)Tj T* (case FTW_F:)Tj 2.4 -1.189 Td (switch \(statptr->st_mode & S_IFMT\) {)Tj 0 -1.189 TD [(case S_IFREG:)-1800(nreg++; )-2400(break;)]TJ 0 -1.189 TD [(case S_IFBLK:)-1800(nblk++; )-2400(break;)]TJ T* [(case S_IFCHR:)-1800(nchr++; )-2400(break;)]TJ T* [(case S_IFIFO:)-1800(nfifo++; )-1800(break;)]TJ T* [(case S_IFLNK:)-1800(nslink++; )-1200(break;)]TJ T* [(case S_IFSOCK:)-1200(nsock++; )-1800(break;)]TJ T* [(case S_IFDIR:)-1800(/* directories should have type = FTW_D */)]TJ 2.4 -1.189 Td (err_dump\("for S_IFDIR for %s", pathname\);)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (break;)Tj -2.4 -1.189 Td (case FTW_D:)Tj 2.4 -1.189 Td (ndir++;)Tj 0 -1.189 TD (break;)Tj -2.4 -1.189 Td (case FTW_DNR:)Tj 2.4 -1.189 Td (err_ret\("can\325t read directory %s", pathname\);)Tj T* (break;)Tj -2.4 -1.189 Td (case FTW_NS:)Tj 2.4 -1.189 Td (err_ret\("stat error for %s", pathname\);)Tj 0 -1.189 TD (break;)Tj -2.4 -1.189 Td (default:)Tj 2.4 -1.189 Td (err_dump\("unknown type %d for pathname %s", type, pathname\);)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (return\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1583.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 193.2528 142.3019 Tm (Figure 4.22)Tj /T1_1 1 Tf 5.695 0 Td [(Recursively descend a dir)18(ectory hierar)18(chy)]TJ 0.25 Tc 18.445 0 Td (,c)Tj 0 Tc 0.944 0 Td (ounting \336le types)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47555 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (574)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Once )-5(a )-5(shar)18(ed )-5(memory )-5(segment )-5(has )-5(been )-5(cr)19(eated, )-5(a )-5(pr)18(ocess )-5(attaches )-5(it )-5(to )-5(its )-5(addr)19(ess)]TJ -1.8 -1.2 Td (space by calling)Tj /TT0 1 Tf 7.262 0 Td (shmat)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 640.2616 Tm (#include )Tj 0 -1.902 TD (void *shmat\(int)Tj /T1_2 1 Tf 9.6 0 Td (shmid)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.245 0 Td (onst void *)Tj /T1_2 1 Tf (addr)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 10.233 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -14.063 -1.902 Td [(Returns: pointer to shar)18(ed memory segment if OK,)]TJ /TT1 1 Tf 22.649 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6015.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 587.9894 Tm [(The )-23(addr)18(ess )-23(in )-23(the )-23(calling )-23(pr)17(ocess )-23(at )-23(which )-23(the )-23(segment )-23(is )-23(attached )-23(depends )-23(on )-23(the)]TJ /T1_2 1 Tf 37.167 0 Td (addr)Tj /T1_1 1 Tf -37.167 -1.2 Td [(ar)18(gument and whether the)]TJ /TT0 1 Tf 12.063 0 Td (SHM_RND)Tj /T1_1 1 Tf 4.45 0 Td (bit is speci\336ed in)Tj /T1_2 1 Tf 7.692 0 Td (\337ag)Tj /T1_1 1 Tf (.)Tj 0.883 Tc -22.405 -1.8 Td (\245I)Tj 0 Tc 1.826 0 Td (f)Tj /T1_2 1 Tf 0.65 0 Td (addr)Tj /T1_1 1 Tf 2.15 0 Td [(is )-67(0, )-67(the )-67(segment )-67(is )-67(attached )-67(at )-67(the )-67(\336rst )-67(available )-67(addr)18(ess )-67(selected )-67(by )-67(the)]TJ -3.137 -1.2 Td [(kernel. )-250(This)-250(is the r)18(ecommended technique.)]TJ 0.883 Tc -1.489 -1.6 Td (\245I)Tj 0 Tc 1.826 0 Td (f)Tj /T1_2 1 Tf 0.677 0 Td (addr)Tj /T1_1 1 Tf 2.178 0 Td [(is )-94(nonzer)]TJ 0.3445 Tc 4.126 0 Td (oa)Tj 0 Tc 1.391 0 Td (nd)Tj /TT0 1 Tf 1.538 0 Td (SHM_RND)Tj /T1_1 1 Tf 4.544 0 Td [(is )-94(not )-94(speci\336ed, )-94(the )-94(segment )-94(is )-94(attached )-94(at )-94(the)]TJ -14.79 -1.2 Td [(addr)18(ess given by)]TJ /T1_2 1 Tf 7.758 0 Td (addr)Tj /T1_1 1 Tf (.)Tj 0.883 Tc -9.247 -1.6 Td (\245I)Tj 0 Tc 1.826 0 Td (f)Tj /T1_2 1 Tf 0.816 0 Td (addr)Tj /T1_1 1 Tf 2.316 0 Td [(is )-233(nonzer)]TJ 0.4828 Tc 4.264 0 Td (oa)Tj 0 Tc 1.529 0 Td (nd)Tj /TT0 1 Tf 1.676 0 Td (SHM_RND)Tj /T1_1 1 Tf 4.683 0 Td [(is )-233(speci\336ed, )-233(the )-233(segment )-233(is )-233(attached )-233(at )-233(the)]TJ -15.62 -1.2 Td [(addr)18(ess )-227(given )-227(by )-227(\()]TJ /T1_2 1 Tf 8.773 0 Td (addr)Tj /TT1 1 Tf 2.31 0 Td (!)Tj /T1_1 1 Tf 1.026 0 Td (\()Tj /T1_2 1 Tf (addr)Tj /T1_1 1 Tf 2.643 0 Td (modulus)Tj /TT0 1 Tf 4.438 0 Td (SHMLBA)Tj /T1_1 1 Tf [(\)\). )-477(The)]TJ /TT0 1 Tf 7.394 0 Td (SHM_RND)Tj /T1_1 1 Tf 4.677 0 Td (command)Tj -31.262 -1.2 Td [(stands )-15(for )-15(\324)37(\324r)18(ound.\325)37(\325)]TJ /TT0 1 Tf 9.194 0 Td (SHMLBA)Tj /T1_1 1 Tf 3.865 0 Td [(stands )-15(for )-15(\324)37(\324low )-15(boundary )-15(addr)18(ess )-15(multiple\325)]TJ 0.2653 Tc 19.435 0 Td (\325a)Tj 0 Tc 1.043 0 Td [(nd )-15(is)]TJ -33.538 -1.2 Td [(always )-11(a )-11(power )-11(of )-11(2.)-511(What )-11(the )-11(arithmetic )-11(does )-11(is )-11(r)18(ound )-11(the )-11(addr)18(ess )-11(down )-11(to )-11(the)]TJ 0 -1.2 TD (next multiple of)Tj /TT0 1 Tf 7.297 0 Td (SHMLBA)Tj /T1_1 1 Tf (.)Tj -10.586 -1.8 Td [(Unless )-205(we )-205(plan )-205(to )-205(r)9(un )-205(the )-205(application )-205(on )-205(only )-205(a )-205(single )-205(type )-205(of )-205(har)19(dwar)]TJ 0.4549 Tc 33.83 0 Td (e\()Tj 0 Tc 1.267 0 Td [(which )-205(is)]TJ -35.097 -1.2 Td [(highly )-116(unlikely )-116(today\), )-116(we )-116(should )-116(not )-116(specify )-116(the )-116(addr)18(ess )-116(wher)]TJ 0.3657 Tc 28.957 0 Td (et)Tj 0 Tc 1.171 0 Td [(he )-116(segment )-116(is )-116(to )-116(be)]TJ -30.128 -1.2 Td [(attached. )-272(Instead,)-272(we )-22(should )-22(specify )-22(an)]TJ /T1_2 1 Tf 17.988 0 Td (addr)Tj /T1_1 1 Tf 2.105 0 Td [(of )-22(0 )-22(and )-22(let )-22(the )-22(system )-22(choose )-22(the )-22(addr)18(ess.)]TJ -18.293 -1.2 Td [(If )-194(the)]TJ /TT0 1 Tf 2.946 0 Td (SHM_RDONLY)Tj /T1_1 1 Tf 6.444 0 Td [(bit )-194(is )-194(speci\336ed )-194(in)]TJ /T1_2 1 Tf 8.469 0 Td (\337ag)Tj /T1_1 1 Tf 0.4442 Tc (,t)Tj 0 Tc 2.509 0 Td [(he )-194(segment )-194(is )-194(attached )-194(as )-194(r)17(ead-only)111(.)]TJ -22.168 -1.2 Td [(Otherwise, the segment is attached as r)18(ead\320write.)]TJ 1.8 -1.2 Td [(The )-30(value )-30(r)18(eturned )-30(by)]TJ /TT0 1 Tf 10.193 0 Td (shmat)Tj /T1_1 1 Tf 3.28 0 Td [(is )-30(the )-30(addr)18(ess )-30(at )-30(which )-30(the )-30(segment )-30(is )-30(attached, )-30(or)]TJ /TT1 1 Tf 22.678 0 Td (!)Tj /T1_1 1 Tf (1)Tj -37.951 -1.2 Td [(if )-181(an )-181(err)18(or )-181(occurr)19(ed. )-431(If)]TJ /TT0 1 Tf 11.121 0 Td (shmat)Tj /T1_1 1 Tf 3.431 0 Td [(succeeds, )-181(the )-181(kernel )-181(will )-181(incr)18(ement )-181(the)]TJ /TT0 1 Tf 18.448 0 Td (shm_nattch)Tj /T1_1 1 Tf -33 -1.2 Td (counter in the)Tj /TT0 1 Tf 6.385 0 Td (shmid_ds)Tj /T1_1 1 Tf 5.05 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ea)Tj 0 Tc 1.229 0 Td [(ssociated with the shar)18(ed memory segment.)]TJ -14.354 -1.2 Td [(When )-15(we\325r)]TJ 0.2652 Tc 4.876 0 Td (ed)Tj 0 Tc 1.355 0 Td [(one )-15(with )-15(a )-15(shar)18(ed )-15(memory )-15(segment, )-15(we )-15(call)]TJ /TT0 1 Tf 19.795 0 Td (shmdt)Tj /T1_1 1 Tf 3.265 0 Td [(to )-15(detach )-15(it.)-516(Note)]TJ -31.091 -1.2 Td [(that )-261(this )-261(does )-261(not )-261(r)18(emove )-261(the )-261(identi\336er )-261(and )-261(its )-261(associated )-261(data )-261(str)8(uctur)]TJ 0.511 Tc 33.973 0 Td (ef)Tj -0.018 Tc 1.323 0 Td (ro)Tj 0.511 Tc 0.923 0 Td (mt)Tj 0 Tc 1.72 0 Td (he)Tj -37.939 -1.2 Td [(system. )-669(The)-669(identi\336er )-419(r)18(emains )-419(in )-419(existence )-419(until )-419(some )-419(pr)19(ocess )-419(\(often )-419(a )-419(server\))]TJ -0 -1.2 Td [(speci\336cally r)18(emoves it by calling)]TJ /TT0 1 Tf 14.61 0 Td (shmctl)Tj /T1_1 1 Tf 3.85 0 Td (with a command of)Tj /TT0 1 Tf 8.861 0 Td (IPC_RMID)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5815 287.3255 Tm (#include )Tj 0 -1.902 TD (int shmdt\(const void *)Tj /T1_2 1 Tf (addr)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 26.851 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2486.25 cm 0 0 m 0 477 l 3900 477 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 235.0777 Tm (The)Tj /T1_2 1 Tf 2.157 0 Td (addr)Tj /T1_1 1 Tf 2.316 0 Td [(ar)18(gument )-233(is )-233(the )-233(value )-233(that )-233(was )-233(r)18(eturned )-233(by )-233(a )-233(pr)21(evious )-233(call )-233(to)]TJ /TT0 1 Tf 29.875 0 Td (shmat)Tj /T1_1 1 Tf 0.7326 Tc (.I)Tj 0 Tc 4.32 0 Td (f)Tj -38.667 -1.2 Td (successful,)Tj /TT0 1 Tf 4.974 0 Td (shmdt)Tj /T1_1 1 Tf 3.255 0 Td [(will )-5(decr)18(ement )-5(the)]TJ /TT0 1 Tf 8.518 0 Td (shm_nattch)Tj /T1_1 1 Tf 6.255 0 Td [(counter )-5(in )-5(the )-5(associated)]TJ /TT0 1 Tf 11.199 0 Td (shmid_ds)Tj /T1_1 1 Tf -34.2 -1.2 Td [(str)8(uctur)18(e.)]TJ /TT2 1 Tf -3.6 -2.64 Td (Example)Tj /T1_1 1 Tf 3.6 -2.16 Td (Wher)Tj 0.3155 Tc 2.438 0 Td (eak)Tj 0 Tc 2.166 0 Td [(ernel )-65(places )-65(shar)17(ed )-65(memory )-65(segments )-65(that )-65(ar)]TJ 0.3154 Tc 20.337 0 Td (ea)Tj 0 Tc 1.294 0 Td [(ttached )-65(with )-65(an )-65(addr)18(ess )-65(of )-65(0)]TJ -26.235 -1.2 Td [(is )-488(highly )-488(system )-488(dependent.)-988(Figur)]TJ 0.7382 Tc 17.251 0 Td (e1)Tj 0 Tc 1.717 0 Td [(5.31 )-488(shows )-488(a )-488(pr)18(ogram )-488(that )-488(prints )-488(some)]TJ -18.968 -1.2 Td (information on wher)Tj 0.25 Tc 9.175 0 Td (eo)Tj 0 Tc 1.275 0 Td (ne particular system places various types of data.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47556 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.9)]TJ 36.454 0 Td [(Shar)18(ed )-250(Memory)]TJ /T1_1 1 Tf 9.379 0 Td (575)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD [(#define ARRAY_SIZE)-1200(40000)]TJ 0 -1.189 TD (#define MALLOC_SIZE 100000)Tj T* [(#define SHM_SIZE)-2400(100000)]TJ T* [(#define SHM_MODE)-2400(0600 )-1800(/*)-600(user read/write */)]TJ 0 -2.14 TD [(char )-1800(array[ARRAY_SIZE];)-1200(/* uninitialized data = bss */)]TJ 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(shmid;)]TJ T* [(char )-1800(*ptr,)-600(*shmptr;)]TJ 0 -2.14 TD (printf\("array[] from %p to %p\\n", \(void *\)&array[0],)Tj 1.2 -1.189 Td (\(void *\)&array[ARRAY_SIZE]\);)Tj -1.2 -1.189 Td (printf\("stack around %p\\n", \(void *\)&shmid\);)Tj 0 -2.14 TD (if \(\(ptr = malloc\(MALLOC_SIZE\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("malloc error"\);)Tj -2.4 -1.189 Td (printf\("malloced from %p to %p\\n", \(void *\)ptr,)Tj 1.2 -1.189 Td (\(void *\)ptr+MALLOC_SIZE\);)Tj -1.2 -2.14 Td (if \(\(shmid = shmget\(IPC_PRIVATE, SHM_SIZE, SHM_MODE\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("shmget error"\);)Tj -2.4 -1.189 Td (if \(\(shmptr = shmat\(shmid, 0, 0\)\) == \(void *\)-1\))Tj 2.4 -1.189 Td (err_sys\("shmat error"\);)Tj -2.4 -1.189 Td (printf\("shared memory attached from %p to %p\\n", \(void *\)shmptr,)Tj 1.2 -1.189 Td (\(void *\)shmptr+SHM_SIZE\);)Tj -1.2 -2.14 Td (if \(shmctl\(shmid, IPC_RMID, 0\) < 0\))Tj 2.4 -1.189 Td (err_sys\("shmctl error"\);)Tj -2.4 -2.14 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2866.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 222.4173 270.5855 Tm (Figure 15.31)Tj /T1_0 1 Tf 6.195 0 Td (Print wher)Tj 0.25 Tc 4.72 0 Td (ev)Tj 0 Tc 1.294 0 Td (arious types of data ar)Tj 0.25 Tc 9.838 0 Td (es)Tj 0 Tc 1.153 0 Td [(tor)18(ed)]TJ 9.9988 0 0 9.9988 129.5845 246.5884 Tm [(Running )-243(this )-243(pr)18(ogram )-243(on )-243(a )-243(64)]TJ 14.438 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-243(Intel-based )-243(Linux )-243(system )-243(gives )-243(us )-243(the )-243(following)]TJ -14.771 -1.2 Td (output:)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5825 217.8919 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (array[] from 0x6020c0 to 0x60bd00)Tj 0 -1.189 TD (stack around 0x7fff957b146c)Tj T* (malloced from 0x9e3010 to 0x9fb6b0)Tj T* (shared memory attached from 0x7fba578ab000 to 0x7fba578c36a0)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5846 157.0991 Tm (Figur)Tj 0.4246 Tc 2.383 0 Td (e1)Tj 0 Tc 1.404 0 Td [(5.32 )-175(shows )-175(a )-175(pictur)]TJ 0.4246 Tc 8.976 0 Td (eo)Tj 0.4245 Tc 1.45 0 Td (ft)Tj 0 Tc 1.084 0 Td [(his, )-174(similar )-174(to )-174(what )-174(we )-174(said )-174(was )-174(a )-174(typical )-174(memory)]TJ -15.296 -1.2 Td [(layout )-130(in )-130(Figur)]TJ 0.38 Tc 6.838 0 Td (e7)Tj 0 Tc 1.359 0 Td [(.6. )-380(Note)-380(that )-130(the )-130(shar)18(ed )-130(memory )-130(segment )-130(is )-130(placed )-130(well )-130(below )-130(the)]TJ -8.197 -1.2 Td (stack.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1331.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47557 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (570)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 163.9202 668.9599 Tm [(If the semaphor)18(e\325s value is curr)18(ently 0, the function r)18(eturns immediately)111(.)]TJ 0 -1.8 TD [(If the semaphor)18(e\325s value is nonzer)18(o, the following conditions apply)111(.)]TJ 0 -1.6 TD [(a. )-633(If)]TJ /TT0 1 Tf 2.553 0 Td (IPC_NOWAIT)Tj /T1_1 1 Tf 6.25 0 Td [(is speci\336ed, r)18(eturn is made with an err)18(or of)]TJ /TT0 1 Tf 19.285 0 Td (EAGAIN)Tj /T1_1 1 Tf (.)Tj -28.088 -1.6 Td [(b. )-580(If)]TJ /TT0 1 Tf 2.703 0 Td (IPC_NOWAIT)Tj /T1_1 1 Tf 6.4 0 Td [(is )-150(not )-150(speci\336ed, )-150(the)]TJ /TT0 1 Tf 9.341 0 Td (semzcnt)Tj /T1_1 1 Tf 4.6 0 Td [(value )-150(for )-150(this )-150(semaphor)]TJ 0.4003 Tc 10.928 0 Td (ei)Tj 0 Tc 1.17 0 Td (s)Tj -33.51 -1.2 Td [(incr)18(emented )-41(\(since )-41(the )-41(caller )-41(is )-41(about )-41(to )-41(go )-41(to )-41(sleep\), )-41(and )-41(the )-41(calling )-41(pr)15(ocess)]TJ -0 -1.2 Td (is suspended until one of the following occurs.)Tj T* [(i. )-1215(The)-535(semaphor)18(e\325s )-285(value )-285(becomes )-285(0.)-785(The )-285(value )-285(of)]TJ /TT0 1 Tf 25.768 0 Td (semzcnt)Tj /T1_1 1 Tf 4.735 0 Td [(for )-285(this)]TJ -28.496 -1.2 Td [(semaphor)18(e)-250(is)-250(decr)18(emented \(since the calling pr)18(ocess is done waiting\).)]TJ -2.006 -1.6 Td [(ii. )-924(The)-352(semaphor)18(e)-352(is)-352(r)17(emoved )-102(fr)18(om )-102(the )-102(system.)-604(In )-102(this )-102(case, )-102(the )-102(function)]TJ -0.018 Tc 2.006 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns an err)18(or of)]TJ /TT0 1 Tf 7.483 0 Td (EIDRM)Tj /T1_1 1 Tf (.)Tj -10.345 -1.6 Td [(iii. )-633(A)-257(signal )-7(is )-7(caught )-7(by )-7(the )-7(pr)16(ocess, )-7(and )-7(the )-7(signal )-7(handler )-7(r)16(eturns. )-257(In)-258(this)]TJ 2.006 -1.2 Td (case, the value of)Tj /TT0 1 Tf 7.803 0 Td (semzcnt)Tj /T1_1 1 Tf 4.45 0 Td [(for this semaphor)17(e)-250(is)-250(d)-1(ecr)18(emented \(since the)]TJ -12.253 -1.2 Td [(calling )-93(pr)18(ocess )-93(is )-93(no )-93(longer )-93(waiting\), )-93(and )-93(the )-93(function )-93(r)18(eturns )-93(an )-93(err)15(or)]TJ 0 -1.2 Td (of)Tj /TT0 1 Tf 1.129 0 Td (EINTR)Tj /T1_1 1 Tf (.)Tj -8.201 -1.8 Td (The)Tj /TT0 1 Tf 1.964 0 Td (semop)Tj /T1_1 1 Tf 3.29 0 Td [(function )-40(operates )-40(atomically; )-40(it )-40(does )-40(either )-40(all )-40(the )-40(operations )-40(in )-40(the )-40(array )-40(or)]TJ -5.254 -1.2 Td (none of them.)Tj /TT1 1 Tf -3.6 -3 Td (Semaphore Adjustment on)Tj /TT2 1 Tf 13.002 0 Td (exit)Tj /T1_1 1 Tf -9.402 -2.16 Td [(As )-102(we )-102(mentioned )-102(earlier)74(,)-352(it)-352(i)]TJ 0.3521 Tc (sap)Tj -0.018 Tc 15.197 0 Td (ro)Tj 0 Tc 0.923 0 Td [(blem )-102(if )-102(a )-102(pr)18(ocess )-102(terminates )-102(while )-102(it )-102(has )-102(r)17(esour)18(ces)]TJ -16.12 -1.2 Td [(allocated )-381(thr)18(ough )-381(a )-381(semaphor)18(e. )-631(Whenever)-631(we )-381(specify )-381(the)]TJ /TT0 1 Tf 28.869 0 Td (SEM_UNDO)Tj /T1_1 1 Tf 5.431 0 Td [(\337ag )-381(for )-381(a)]TJ -34.3 -1.2 Td (semaphor)Tj 0.2766 Tc 4.392 0 Td (eo)Tj 0 Tc 1.302 0 Td [(peration )-27(and )-27(we )-27(allocate )-27(r)20(esour)18(ces )-27(\(a)]TJ /TT0 1 Tf 16.749 0 Td (sem_op)Tj /T1_1 1 Tf 3.877 0 Td [(value )-27(less )-27(than )-27(0\), )-27(the )-27(kernel)]TJ -0.018 Tc -26.319 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(members )-280(how )-280(many )-280(r)18(esour)18(ces )-280(we )-280(allocated )-280(fr)18(om )-280(that )-280(particular )-280(semaphor)]TJ 0.5301 Tc 35.415 0 Td (e\()Tj 0 Tc 1.342 0 Td (the)Tj -37.613 -1.2 Td [(absolute )-433(value )-433(of)]TJ /TT0 1 Tf 9.088 0 Td (sem_op)Tj /T1_1 1 Tf [(\). )-683(When)-683(the )-433(pr)18(ocess )-433(terminates, )-433(either )-433(voluntarily )-433(or)]TJ -9.088 -1.2 Td (involuntarily)Tj 0.4223 Tc 5.708 0 Td (,t)Tj 0 Tc 0.998 0 Td [(he )-172(kernel )-172(checks )-172(whether )-172(the )-172(pr)18(ocess )-172(has )-172(any )-172(outstanding )-172(semaphor)15(e)]TJ -6.706 -1.2 Td [(adjustments and, if so, applies the adjustment to the corr)18(esponding semaphor)18(e.)]TJ 1.8 -1.2 Td [(If )-257(we )-257(set )-257(the )-257(value )-257(of )-257(a )-257(semaphor)]TJ 0.5067 Tc 16.355 0 Td (eu)Tj 0 Tc 1.589 0 Td (sing)Tj /TT0 1 Tf 2.36 0 Td (semctl)Tj /T1_1 1 Tf 0.5067 Tc (,w)Tj 0 Tc 5.191 0 Td [(ith )-257(either )-257(the)]TJ /TT0 1 Tf 6.658 0 Td (SETVAL)Tj /T1_1 1 Tf 4.107 0 Td (or)Tj /TT0 1 Tf -38.059 -1.2 Td (SETALL)Tj /T1_1 1 Tf 3.878 0 Td [(commands, )-28(the )-28(adjustment )-28(value )-28(for )-28(that )-28(semaphor)20(e)-278(in)-278(a)1(ll )-28(pr)18(ocesses )-27(is )-27(set )-27(to )-27(0.)]TJ /TT1 1 Tf -7.478 -3 Td [(Example )195(\321 )195(Timing)-279(Comparison of Semaphores, Recor)]TJ 0.278 Tc 25.542 0 Td (dL)Tj 0 Tc 1.5 0 Td [(oc)20(king, and Mute)]TJ -0.01 Tc 8.133 0 Td (xe)Tj 0 Tc 1.102 0 Td (s)Tj /T1_1 1 Tf -32.677 -2.16 Td [(If )-92(we )-92(ar)]TJ 0.3416 Tc 3.543 0 Td (es)Tj 0 Tc 1.245 0 Td [(haring )-92(a )-92(single )-92(r)19(esour)18(ce )-92(among )-92(multiple )-92(pr)18(ocesses, )-92(we )-92(can )-92(use )-92(one )-92(of )-92(thr)21(ee)]TJ -4.788 -1.2 Td [(techniques )-57(to )-57(coor)18(dinate )-57(access.)]TJ -0.092 Tc 14.789 0 Td [(We )-241(c)]TJ 0 Tc 2.138 0 Td [(an )-57(use )-57(a )-57(a )-57(semaphor)16(e, )-57(r)18(ecor)]TJ 0.3073 Tc 12.469 0 Td (dl)Tj 0 Tc 1.209 0 Td [(ocking, )-57(or )-57(a )-57(mutex)]TJ -30.605 -1.2 Td [(that )-14(is )-14(mapped )-14(into )-14(the )-14(addr)18(ess )-14(spaces )-14(of )-14(both )-14(pr)19(ocesses. )-264(It\325s)-264(inter)18(esting )-14(to )-14(compar)]TJ 0.264 Tc 36.87 0 Td (et)Tj 0 Tc 1.069 0 Td (he)Tj -37.939 -1.2 Td [(timing dif)18(fer)18(ences between the thr)18(ee techniques.)]TJ -0.055 Tc 1.8 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-141(a )-141(semaphor)18(e, )-141(we )-141(cr)18(eate )-141(a )-141(semaphor)]TJ 0.3911 Tc 17.686 0 Td (es)Tj 0 Tc 1.294 0 Td [(et )-141(consisting )-141(of )-141(a )-141(single )-141(member )-141(and)]TJ -22.016 -1.2 Td [(initialize )-157(the )-157(semaphor)18(e\325s )-157(value )-157(to )-157(1.)]TJ -0.092 Tc 17.557 0 Td [(To )-342(a)]TJ 0 Tc 1.975 0 Td [(llocate )-158(the )-158(r)19(esour)18(ce, )-158(we )-158(call)]TJ /TT0 1 Tf 13.12 0 Td (semop)Tj /T1_1 1 Tf 3.408 0 Td [(with )-158(a)]TJ /TT0 1 Tf -36.059 -1.2 Td (sem_op)Tj /T1_1 1 Tf 4.014 0 Td (of)Tj /TT3 1 Tf 1.293 0 Td (!)Tj /T1_1 1 Tf [(1; )-164(to )-164(r)18(elease )-164(the )-164(r)19(esour)18(ce, )-164(we )-164(perform )-164(a)]TJ /TT0 1 Tf 19.321 0 Td (sem_op)Tj /T1_1 1 Tf 4.014 0 Td (of)Tj /TT4 1 Tf 1.293 0 Td (+)Tj /T1_1 1 Tf [(1. )-414(W)]TJ 0.4137 Tc 2.871 0 Td (ea)Tj 0 Tc 1.393 0 Td [(lso )-164(specify)]TJ /TT0 1 Tf -34.197 -1.2 Td (SEM_UNDO)Tj /T1_1 1 Tf 5.099 0 Td [(with )-49(each )-49(operation, )-49(to )-49(handle )-49(the )-49(case )-49(of )-49(a )-49(pr)14(ocess )-50(that )-50(terminates )-50(without)]TJ -0.018 Tc -5.099 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(leasing its r)18(esour)18(ce.)]TJ -0.055 Tc 0.944 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-33(r)18(ecor)]TJ 0.2831 Tc 3.414 0 Td (dl)Tj 0 Tc 1.185 0 Td [(ocking, )-33(we )-33(cr)18(eate )-33(an )-33(empty )-33(\336le )-33(and )-33(use )-33(the )-33(\336rst )-33(byte )-33(of )-33(the )-33(\336le )-33(\(which)]TJ -7.635 -1.2 Td [(need )-66(not )-66(exist\) )-66(as )-66(the )-66(lock )-66(byte.)]TJ -0.092 Tc 14.745 0 Td [(To )-250(a)]TJ 0 Tc 1.883 0 Td [(llocate )-66(the )-66(r)19(esour)18(ce, )-66(we )-66(obtain )-66(a )-66(write )-66(lock )-66(on )-66(the)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47558 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (56)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1008.25 6670.25 cm 0 0 m 4120 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 144.1354 658.9605 Tm (Name of option)Tj 18.435 0 Td (Indicates ...)Tj /T1_2 1 Tf 15.986 0 Td (name)Tj /T1_1 1 Tf 2.417 0 Td [(ar)18(gument)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1008.25 6550.25 cm 0 0 m 4120 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1008.25 6530.25 cm 0 0 m 4120 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 104.7874 644.9226 Tm (_POSIX_ASYNCHRONOUS_IO )Tj 34.9 0 Td (_SC_ASYNCHRONOUS_IO)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td [(POSIX asynchr)18(onous I/O)]TJ /TT0 1 Tf -19.55 -1.375 Td (_POSIX_BARRIERS )Tj 34.9 0 Td (_SC_BARRIERS)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td (barriers)Tj /TT0 1 Tf -19.55 -1.375 Td (_POSIX_CLOCK_SELECTION )Tj 34.9 0 Td (_SC_CLOCK_SELECTION)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td (clock selection)Tj /TT0 1 Tf -19.55 -1.375 Td (_POSIX_JOB_CONTROL )Tj 34.9 0 Td (_SC_JOB_CONTROL)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td [(job contr)18(ol)]TJ /TT0 1 Tf -19.55 -1.375 Td (_POSIX_MAPPED_FILES )Tj 34.9 0 Td (_SC_MAPPED_FILES)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td (memory-mapped \336les)Tj /TT0 1 Tf -19.55 -1.375 Td (_POSIX_MEMORY_PROTECTION )Tj 34.9 0 Td (_SC_MEMORY_PROTECTION)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td [(memory pr)18(otection)]TJ /TT0 1 Tf -19.55 -1.375 Td (_POSIX_READER_WRITER_LOCKS )Tj 34.9 0 Td (_SC_READER_WRITER_LOCKS)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj -0.018 Tc 2.25 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (ader\320writer locks)Tj /TT0 1 Tf -20.406 -1.375 Td (_POSIX_REALTIME_SIGNALS )Tj 34.9 0 Td (_SC_REALTIME_SIGNALS)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj -0.018 Tc 2.25 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (al-time signals)Tj /TT0 1 Tf -20.406 -1.375 Td (_POSIX_SAVED_IDS )Tj 34.9 0 Td (_SC_SAVED_IDS)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td [(the saved set-user)18(-ID and the)]TJ 0 -1.25 TD [(saved set-gr)18(oup-ID)]TJ /TT0 1 Tf -19.55 -1.375 Td (_POSIX_SEMAPHORES )Tj 34.9 0 Td (_SC_SEMAPHORES)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td [(POSIX semaphor)18(es)]TJ /TT0 1 Tf -19.55 -1.375 Td (_POSIX_SHELL )Tj 34.9 0 Td (_SC_SHELL)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td (the POSIX shell)Tj /TT0 1 Tf -19.55 -1.375 Td (_POSIX_SPIN_LOCKS )Tj 34.9 0 Td (_SC_SPIN_LOCKS)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td (spin locks)Tj /TT0 1 Tf -19.55 -1.375 Td (_POSIX_THREAD_SAFE_FUNCTIONS )Tj 34.9 0 Td (_SC_THREAD_SAFE_FUNCTIONS)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td [(thr)18(ead-safe functions)]TJ /TT0 1 Tf -19.55 -1.375 Td (_POSIX_THREADS )Tj 34.9 0 Td (_SC_THREADS)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td [(thr)18(eads)]TJ /TT0 1 Tf -19.55 -1.375 Td (_POSIX_TIMEOUTS )Tj 34.9 0 Td (_SC_TIMEOUTS)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td (timeout-based variants of)Tj T* (selected functions)Tj /TT0 1 Tf -19.55 -1.375 Td (_POSIX_TIMERS )Tj 34.9 0 Td (_SC_TIMERS)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td (timers)Tj /TT0 1 Tf -19.55 -1.375 Td (_POSIX_VERSION )Tj 34.9 0 Td (_SC_VERSION)Tj /T1_1 1 Tf -17.6 0 Td (the POSIX.1 version)Tj /TT0 1 Tf -17.3 -1.375 Td (_XOPEN_CRYPT )Tj 34.9 0 Td (_SC_XOPEN_CRYPT)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td [(the XSI encryption option gr)18(oup)]TJ /TT0 1 Tf -19.55 -1.375 Td (_XOPEN_REALTIME )Tj 34.9 0 Td (_SC_XOPEN_REALTIME)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td [(the XSI r)18(eal-time option gr)18(oup)]TJ /TT0 1 Tf -19.55 -1.375 Td (_XOPEN_REALTIME_THREADS )Tj 34.9 0 Td (_SC_XOPEN_REALTIME_THREADS)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td [(the XSI r)18(eal-time thr)18(eads option)]TJ T* [(gr)18(oup)]TJ /TT0 1 Tf -19.55 -1.375 Td (_XOPEN_SHM )Tj 34.9 0 Td (_SC_XOPEN_SHM)Tj /T1_1 1 Tf -17.6 0 Td (whether the implementation supports)Tj 2.25 -1.25 Td [(the XSI shar)18(ed memory option)]TJ T* [(gr)18(oup)]TJ /TT0 1 Tf -19.55 -1.375 Td (_XOPEN_VERSION )Tj 34.9 0 Td (_SC_XOPEN_VERSION)Tj /T1_1 1 Tf -17.6 0 Td (the XSI version)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1008.25 1700.25 cm 0 0 m 4120 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3820.25 1700.25 cm 0 0 m 0 4970 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2412.25 1700.25 cm 0 0 m 0 4970 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5128.25 1700.25 cm 0 0 m 0 4970 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1008.25 1700.25 cm 0 0 m 0 4970 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 199.1122 151.9726 Tm (Figure 2.19)Tj /T1_1 1 Tf 5.695 0 Td (Options and)Tj /T1_2 1 Tf 5.749 0 Td (name)Tj /T1_1 1 Tf 2.417 0 Td [(ar)18(guments to)]TJ /TT0 1 Tf 6.102 0 Td (sysconf)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47559 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.1)]TJ 21.8583 Tc 4.888 0 Td (1C)Tj 0 Tc 23.067 0 Td [(hanging )-250(User )-250(IDs )-250(and )-250(Gr)18(oup )-250(IDs)]TJ /T1_1 1 Tf 17.878 0 Td (259)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Example)Tj /T1_0 1 Tf -0.092 Tc 3.6 -2.4 Td [(To )-423(s)]TJ 0 Tc 1.979 0 Td [(ee )-238(the )-238(utility )-238(of )-238(the )-238(saved )-238(set-user)18(-ID )-238(featur)18(e, )-238(let\325s )-238(examine )-238(the )-238(operation )-238(of )-238(a)]TJ -1.979 -1.2 Td [(pr)18(ogram )-125(that )-125(uses )-125(it.)]TJ -0.092 Tc 10.139 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-125(look )-125(at )-125(the)]TJ /TT1 1 Tf 6.512 0 Td (at)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.708 -0.04 Td [(pr)18(ogram, )-125(which )-125(we )-125(can )-125(use )-125(to )-125(schedule)]TJ -20.779 -1.2 Td [(commands to be r)8(un at some time in the futur)18(e.)]TJ 7.9995 0 0 7.9995 183.5893 597.3642 Tm [(On )-50(Linux )-50(3.2.0, )-50(the)]TJ /TT1 1 Tf 8.809 0 Td (at)Tj /T1_0 1 Tf 1.5 0 Td [(pr)18(ogram )-50(is )-50(installed )-50(set-user)18(-ID )-50(to )-50(user)]TJ /TT1 1 Tf 17.831 0 Td (daemon)Tj /T1_0 1 Tf 0.5503 Tc (.O)Tj 0.3003 Tc 5.186 0 Td (nF)Tj -0.018 Tc 1.438 0 Td (re)Tj 0 Tc 0.856 0 Td [(eBSD )-50(8.0, )-50(Mac)]TJ -35.621 -1.25 Td [(OS )-65(X )-65(10.6.8, )-65(and )-65(Solaris )-65(10, )-65(the)]TJ /TT1 1 Tf 14.237 0 Td (at)Tj /T1_0 1 Tf 1.515 0 Td [(pr)18(ogram )-65(is )-65(installed )-65(set-user)18(-ID )-65(to )-65(user)]TJ /TT1 1 Tf 17.921 0 Td (root)Tj /T1_0 1 Tf 0.5653 Tc (.T)Tj 0 Tc 3.828 0 Td [(his )-65(allows)]TJ -37.502 -1.25 Td (the)Tj /TT1 1 Tf 1.719 0 Td (at)Tj /T1_0 1 Tf 1.532 0 Td [(command )-82(to )-82(write )-82(privileged )-82(\336les )-82(owned )-82(by )-82(the )-82(daemon )-82(that )-82(will )-82(r)8(un )-82(the )-82(commands)]TJ -3.252 -1.25 Td [(on )-76(behalf )-76(of )-76(the )-76(user )-76(r)10(unning )-75(the)]TJ /TT1 1 Tf 15.282 0 Td (at)Tj /T1_0 1 Tf 1.525 0 Td [(command. )-325(On)-326(Linux )-75(3.2.0, )-75(the )-75(pr)18(ograms )-75(ar)]TJ 0.3255 Tc 19.669 0 Td (er)Tj 0 Tc 1.192 0 Td [(un )-75(by )-75(the)]TJ /TT1 1 Tf -37.668 -1.25 Td (atd)Tj /T1_0 1 Tf 1.8 0.04 Td (\()Tj 0.333 -0.04 Td (8)Tj 0.5 0.04 Td (\))Tj 0.833 -0.04 Td [(daemon. )-499(On)-500(Fr)18(eeBSD )-249(8.0 )-249(and )-249(Solaris )-249(10, )-249(the )-249(pr)15(ograms )-250(ar)]TJ 0.4996 Tc 27.477 0 Td (er)Tj 0 Tc 1.366 0 Td [(un )-250(by )-250(the)]TJ /TT1 1 Tf 5.18 0 Td (cron)Tj /T1_0 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1M)Tj 1.446 0.04 Td (\))Tj -41.667 -1.29 Td [(daemon. )-250(On)-250(Mac OS X 10.6.8, the pr)18(ograms ar)]TJ 0.25 Tc 20.633 0 Td (er)Tj 0 Tc 1.116 0 Td (un by the)Tj /TT1 1 Tf 4.431 0 Td (launchd)Tj /T1_0 1 Tf 4.2 0.04 Td (\()Tj 0.333 -0.04 Td (8)Tj 0.5 0.04 Td (\))Tj 0.583 -0.04 Td (daemon.)Tj -0.092 Tc 9.9994 0 0 9.9994 147.5909 522.3687 Tm [(To )-256(p)]TJ -0.018 Tc 1.99 0 Td (re)Tj 0 Tc 0.856 0 Td [(vent )-72(being )-72(tricked )-72(into )-72(r)8(unning )-72(commands )-72(that )-72(we )-72(ar)18(en\325t )-72(allowed )-72(to )-72(r)8(un, )-72(or)]TJ -0.018 Tc -4.646 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ading )-214(or )-214(writing )-214(\336les )-214(that )-214(we )-214(ar)18(en\325t )-214(allowed )-214(to )-214(access, )-214(the)]TJ /TT1 1 Tf 28.023 0 Td (at)Tj /T1_0 1 Tf 1.664 0 Td [(command )-214(and )-214(the)]TJ -30.543 -1.2 Td [(daemon )-71(that )-71(ultimately )-71(r)8(uns )-71(the )-71(commands )-71(on )-71(our )-71(behalf )-71(have )-71(to )-71(switch )-71(between )-71(sets)]TJ 0 -1.2 TD [(of privileges: ours and those of the daemon.)-500(The following steps take place.)]TJ 1.8 -2.16 Td [(1. )-633(Assuming)-278(that )-28(the)]TJ /TT1 1 Tf 10.13 0 Td (at)Tj /T1_0 1 Tf 1.478 0 Td [(pr)18(ogram )-28(\336le )-28(is )-28(owned )-28(by)]TJ /TT1 1 Tf 11.501 0 Td (root)Tj /T1_0 1 Tf 2.678 0 Td [(and )-28(has )-28(its )-28(set-user)18(-ID )-28(bit)]TJ -24.154 -1.2 Td [(set, when we r)8(un it, we have)]TJ -0.018 Tc 6.159 -1.68 Td (re)Tj 0 Tc 0.856 0 Td [(al user ID =)-500(our user ID \(unchanged\))]TJ -2.92 -1.2 Td [(ef)18(fective user ID =)]TJ /TT1 1 Tf 8.579 0 Td (root)Tj /T1_0 1 Tf -9.074 -1.2 Td [(saved set-user)18(-ID =)]TJ /TT1 1 Tf 9.074 0 Td (root)Tj /T1_0 1 Tf -14.307 -2.08 Td [(2. )-633(The)-283(\336rst )-33(thing )-33(the)]TJ /TT1 1 Tf 9.911 0 Td (at)Tj /T1_0 1 Tf 1.483 0 Td [(command )-33(does )-33(is )-33(r)18(educe )-33(its )-33(privileges )-33(so )-33(that )-33(it )-33(r)8(uns )-33(with)]TJ -9.761 -1.2 Td [(our )-80(privileges.)-579(It )-80(calls )-80(the)]TJ /TT1 1 Tf 12.065 0 Td (seteuid)Tj /T1_0 1 Tf 4.53 0 Td [(function )-80(to )-80(set )-80(the )-80(ef)18(fective )-80(user )-80(ID )-80(to )-80(our)]TJ -0.018 Tc -16.595 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(al user ID.)-500(After this, we have)]TJ -0.018 Tc 5.303 -1.68 Td (re)Tj 0 Tc 0.856 0 Td [(al user ID =)-500(our user ID \(unchanged\))]TJ -2.92 -1.2 Td [(ef)18(fective user ID =)-500(our user ID)]TJ -0.495 -1.2 Td [(saved set-user)18(-ID =)]TJ /TT1 1 Tf 9.074 0 Td (root)Tj /T1_0 1 Tf 2.65 0 Td (\(unchanged\))Tj -16.957 -2.08 Td [(3. )-633(The)]TJ /TT1 1 Tf 4.026 0 Td (at)Tj /T1_0 1 Tf 1.919 0 Td [(pr)18(ogram )-469(r)8(uns )-469(with )-469(our )-469(privileges )-469(until )-469(it )-469(needs )-469(to )-469(access )-469(the)]TJ -4.313 -1.2 Td [(con\336guration )-106(\336les )-106(that )-106(contr)18(ol )-106(which )-106(commands )-106(ar)20(e)-356(to)-356(be)-356(r)9(un )-106(and )-106(the )-106(time )-106(at)]TJ T* [(which )-51(they )-51(need )-51(to )-51(r)8(un. )-301(These)-301(\336les )-51(ar)]TJ 0.301 Tc 17.131 0 Td (eo)Tj 0 Tc 1.326 0 Td [(wned )-51(by )-51(the )-51(daemon )-51(that )-51(will )-51(r)8(un )-51(the)]TJ -18.457 -1.2 Td [(commands )-74(for )-74(us.)-573(The)]TJ /TT1 1 Tf 10.643 0 Td (at)Tj /T1_0 1 Tf 1.524 0 Td [(command )-74(calls)]TJ /TT1 1 Tf 7.047 0 Td (seteuid)Tj /T1_0 1 Tf 4.524 0 Td [(to )-74(set )-74(the )-74(ef)18(fective )-74(user )-74(ID)]TJ -23.737 -1.2 Td (to)Tj /TT1 1 Tf 1.339 0 Td (root)Tj /T1_0 1 Tf 0.7168 Tc (.T)Tj 0 Tc 3.98 0 Td [(his )-217(call )-217(is )-217(allowed )-217(because )-217(the )-217(ar)19(gument )-217(to)]TJ /TT1 1 Tf 20.871 0 Td (seteuid)Tj /T1_0 1 Tf 4.667 0 Td [(equals )-217(the)]TJ -30.856 -1.2 Td [(saved )-85(set-user)18(-ID. )-335(\(This)-335(is )-85(why )-85(we )-85(need )-85(the )-85(saved )-85(set-user)18(-ID.\) )-335(After)-335(this, )-85(we)]TJ -0 -1.2 Td (have)Tj -0.018 Tc 6.159 -1.68 Td (re)Tj 0 Tc 0.856 0 Td [(al user ID =)-500(our user ID \(unchanged\))]TJ -2.92 -1.2 Td [(ef)18(fective user ID =)]TJ /TT1 1 Tf 8.579 0 Td (root)Tj /T1_0 1 Tf -9.074 -1.2 Td [(saved set-user)18(-ID =)]TJ /TT1 1 Tf 9.074 0 Td (root)Tj /T1_0 1 Tf 2.65 0 Td (\(unchanged\))Tj -15.324 -1.8 Td [(Because the ef)18(fective user ID is)]TJ /TT1 1 Tf 13.865 0 Td (root)Tj /T1_0 1 Tf 0.25 Tc (,\336)Tj 0 Tc 3.505 0 Td (le access is allowed.)Tj -19.003 -2.08 Td [(4. )-633(After)-357(the )-107(\336les )-107(ar)]TJ 0.3574 Tc 9.079 0 Td (em)Tj 0 Tc 1.719 0 Td [(odi\336ed )-107(to )-107(r)17(ecor)]TJ 0.3574 Tc 6.953 0 Td (dt)Tj 0 Tc 1.294 0 Td [(he )-107(commands )-107(to )-107(be )-107(r)8(un )-107(and )-107(the )-107(time )-107(at)]TJ -17.413 -1.2 Td [(which )-237(they )-237(ar)19(e)-487(to)-487(be)-487(r)9(un, )-237(the)]TJ /TT1 1 Tf 14.552 0 Td (at)Tj /T1_0 1 Tf 1.687 0 Td [(command )-237(lowers )-237(its )-237(privileges )-237(by )-237(calling)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47560 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (598)Tj /T1_1 1 Tf 3.5 0 Td [(Network )-250(IPC: )-250(Sockets)]TJ 38.741 0 Td [(Chapter )-250(16)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(We )-184(c)]TJ 0 Tc 2.081 0 Td (an get network names and numbers with a similar set of interfaces.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 649.861 Tm (#include )Tj 0 -1.902 TD (struct netent *getnetbyaddr\(uint32_t)Tj /T1_2 1 Tf 22.2 0 Td (net)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.078 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (type)Tj /TT0 1 Tf (\);)Tj -27.078 -1.902 Td (struct netent *getnetbyname\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj 0 -1.902 Td (struct netent *getnetent\(void\);)Tj /T1_1 1 Tf 21.885 -1.902 Td [(All r)18(eturn: pointer if OK,)]TJ /TT0 1 Tf 11.228 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -35.763 -1.902 Td (void setnetent\(int)Tj /T1_2 1 Tf 11.4 0 Td (stayopen)Tj /TT0 1 Tf (\);)Tj -11.4 -1.902 Td (void endnetent\(void\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5427.25 cm 0 0 m 0 1162 l 3900 1162 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 526.7168 Tm (The)Tj /TT0 1 Tf 1.924 0 Td (netent)Tj /T1_1 1 Tf 3.85 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ec)Tj 0 Tc 1.173 0 Td (ontains at least the following \336elds:)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 508.949 Tm (struct netent {)Tj 1.2 -1.189 Td [(char )-2400(*n_name;)-3600(/* network name */)]TJ 0 -1.189 TD [(char )-1800(**n_aliases;)-1800(/* alternate network name array pointer */)]TJ T* [(int )-3600(n_addrtype;)-1200(/* address type */)]TJ T* [(uint32_t )-600(n_net;)-4200(/* network number */)]TJ 0 -1.189 TD (.)Tj 0 -0.476 TD (.)Tj 0 -0.476 TD (.)Tj -1.2 -1.189 Td (};)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 417.13 Tm [(The )-54(network )-54(number )-54(is )-54(r)18(eturned )-54(in )-54(network )-54(byte )-54(or)20(der)]TJ 0.5538 Tc 24.723 0 Td (.T)Tj 0 Tc 1.417 0 Td [(he )-54(addr)18(ess )-54(type )-54(is )-54(one )-54(of )-54(the)]TJ -26.14 -1.2 Td [(addr)18(ess family constants \()]TJ /TT0 1 Tf (AF_INET)Tj /T1_1 1 Tf 0.25 Tc (,f)Tj 0 Tc 16.55 0 Td (or example\).)Tj -0.092 Tc -14.75 -1.2 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td [(an map between pr)18(otocol names and numbers with the following functions.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5826 374.0351 Tm (#include )Tj 0 -1.902 TD (struct protoent *getprotobyname\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj 0 -1.902 Td (struct protoent *getprotobynumber\(int)Tj /T1_2 1 Tf 22.8 0 Td [(pr)18(oto)]TJ /TT0 1 Tf (\);)Tj -22.8 -1.902 Td (struct protoent *getprotoent\(void\);)Tj /T1_1 1 Tf 21.885 -1.902 Td [(All r)18(eturn: pointer if OK,)]TJ /TT0 1 Tf 11.228 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -35.763 -1.902 Td (void setprotoent\(int)Tj /T1_2 1 Tf 12.6 0 Td (stayopen)Tj /TT0 1 Tf (\);)Tj -12.6 -1.902 Td (void endprotoent\(void\);)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2668.25 cm 0 0 m 0 1163 l 3900 1163 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 250.9148 Tm (The)Tj /TT0 1 Tf 1.924 0 Td (protoent)Tj /T1_1 1 Tf 5.05 0 Td [(str)8(uctur)18(e)-250(as)-250(de\336ned by POSIX.1 has at least the following members:)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.573 233.1477 Tm (struct protoent {)Tj 1.2 -1.189 Td [(char )-1200(*p_name;)-3000(/* protocol name */)]TJ 0 -1.189 TD [(char )-600(**p_aliases; )-600(/*)-600(pointer to alternate protocol name array */)]TJ 0 -1.189 TD [(int )-2400(p_proto;)-2400(/* protocol number */)]TJ 0 -1.189 TD (.)Tj 0 -0.476 TD (.)Tj 0 -0.476 TD (.)Tj -1.2 -1.189 Td (};)Tj /T1_1 1 Tf 9.9982 0 0 9.9982 147.573 152.0326 Tm [(Services )-39(ar)]TJ 0.2893 Tc 4.768 0 Td (er)Tj 0 Tc 1.145 0 Td [(epr)18(esented )-39(by )-39(the )-39(port )-39(number )-39(portion )-39(of )-39(the )-39(addr)16(ess. )-289(Each)-290(service )-39(is)]TJ -7.714 -1.2 Td [(of)18(fer)18(ed )-123(on )-123(a )-123(unique, )-123(well-known )-123(port )-123(number)]TJ 0.6226 Tc 20.989 0 Td (.W)Tj 0.3726 Tc 1.781 0 Td (ec)Tj 0 Tc 1.296 0 Td [(an )-123(map )-123(a )-123(service )-123(name )-123(to )-123(a )-123(port)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47561 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (983)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 151.1909 670.9597 Tm (732, 742, 805)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (806, 816)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (817, 928)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (929, 933,)Tj -14.499 -1.25 Td (936, 939, 942)Tj -1.35 -1.25 Td [(de\336nition of,)-500(502)]TJ -1.35 -1.25 Td (Seltzer)Tj 0.25 Tc 2.921 0 Td (,M)Tj 0 Tc 1.446 0 Td [(., )-250(744,)-250(952)]TJ -4.367 -1.25 Td [(semaphor)18(e, )-250(57,)-250(534, 565)]TJ 10.704 0.09 Td (\320)Tj 0.583 -0.09 Td (571)Tj -9.938 -1.25 Td [(adjustment on exit,)-500(570)]TJ 10.541 0.09 Td (\320)Tj 0.583 -0.09 Td (571)Tj -11.125 -1.25 Td [(locking timing comparison,)-500(571, 583)]TJ /TT0 1 Tf -1.35 -1.25 Td ()Tj /T1_0 1 Tf 8.217 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj /TT0 1 Tf -12.439 -1.25 Td (sembuf)Tj /T1_0 1 Tf 4.017 0 Td [(str)8(uctur)18(e, )-250(568)]TJ 6.302 0.09 Td (\320)Tj 0.583 -0.09 Td (569)Tj /TT0 1 Tf -10.902 -1.25 Td (sem_close)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(580,)-250(584)]TJ -4.467 -1.25 Td [(de\336nition of,)-500(580)]TJ /TT0 1 Tf -1.35 -1.25 Td (semctl)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(558,)-250(562, 566)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (568, 570)Tj -13.29 -1.25 Td [(de\336nition of,)-500(567)]TJ /TT0 1 Tf -1.35 -1.25 Td (sem_destroy)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(582)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(582)]TJ /TT0 1 Tf -1.35 -1.25 Td (SEM_FAILED)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(584)]TJ /TT0 1 Tf -6.417 -1.25 Td (semget)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(557)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (558, 566)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (567)Tj -13.457 -1.25 Td [(de\336nition of,)-500(567)]TJ /TT0 1 Tf -1.35 -1.25 Td (sem_getvalue)Tj /T1_0 1 Tf 7.617 0 Td [(function, )-250(582)]TJ -6.267 -1.25 Td [(de\336nition of,)-500(582)]TJ /TT0 1 Tf -1.35 -1.25 Td (semid_ds)Tj /T1_0 1 Tf 5.217 0 Td [(str)8(uctur)18(e, )-250(566)]TJ 6.302 0.09 Td (\320)Tj 0.583 -0.09 Td (568)Tj /TT0 1 Tf -12.102 -1.25 Td (sem_init)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(582)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(582)]TJ /TT0 1 Tf -1.35 -1.25 Td (SEM_NSEMS_MAX)Tj /T1_0 1 Tf 8.217 0 Td [(constant, )-250(40,)-250(43)]TJ /TT0 1 Tf -8.217 -1.25 Td (semop)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(452,)-250(559, 567)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (570)Tj -12.69 -1.25 Td [(de\336nition of,)-500(568)]TJ /TT0 1 Tf -1.35 -1.25 Td (sem_open)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(579)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (580, 582, 584)Tj -10.49 -1.25 Td [(de\336nition of,)-500(579)]TJ /TT0 1 Tf -1.35 -1.25 Td (sem_post)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(331,)-250(581)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (582, 584)Tj -12.49 -1.25 Td [(de\336nition of,)-500(582)]TJ /TT0 1 Tf -1.35 -1.25 Td (sem_t)Tj /T1_0 1 Tf 3.417 0 Td [(str)8(uctur)18(e, )-250(582)]TJ /TT0 1 Tf -3.417 -1.25 Td (sem_timedwait)Tj /T1_0 1 Tf 8.217 0 Td [(function, )-250(451,)-250(581)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (582)Tj -15.49 -1.25 Td [(de\336nition of,)-500(581)]TJ /TT0 1 Tf -1.35 -1.25 Td (sem_trywait)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(581,)-250(584)]TJ /TT0 1 Tf -7.017 -1.25 Td (semun)Tj /T1_0 1 Tf 3.417 0 Td [(union, )-250(567)]TJ 4.937 0.09 Td (\320)Tj 0.583 -0.09 Td (568)Tj /TT0 1 Tf -8.937 -1.25 Td (SEM_UNDO)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(569)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (570, 580, 583)Tj /TT0 1 Tf -11.863 -1.25 Td (sem_unlink)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(580)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (581, 584)Tj -11.69 -1.25 Td [(de\336nition of,)-500(580)]TJ /TT0 1 Tf -1.35 -1.25 Td (SEM_VALUE_MAX)Tj /T1_0 1 Tf 8.217 0 Td [(constant, )-250(40,)-250(43, 580)]TJ /TT0 1 Tf -8.217 -1.25 Td (sem_wait)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(451,)-250(581)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (582, 584)Tj -12.49 -1.25 Td [(de\336nition of,)-500(581)]TJ /TT0 1 Tf -1.35 -1.25 Td (send)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(331,)-250(451, 592, 610, 616, 626)]TJ 16.04 0.09 Td (\320)Tj 0.583 -0.09 Td (627)Tj -18.09 -1.25 Td [(de\336nition of,)-500(610)]TJ /TT0 1 Tf -1.35 -1.25 Td (send_err)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(642)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (644, 653, 656)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (657,)Tj -15.307 -1.25 Td (668)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (669, 897)Tj -3.517 -1.25 Td [(de\336nition of,)-500(642, 644)]TJ /TT0 1 Tf -1.35 -1.25 Td (send_fd)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(642)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (645, 649, 653, 656)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (657,)Tj -16.707 -1.25 Td (669, 897)Tj -1.35 -1.25 Td [(de\336nition of,)-500(642, 646, 649)]TJ /TT0 1 Tf -1.35 -1.25 Td (sendmsg)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(331,)-250(451, 61)55(1, 613, 644)]TJ 13.985 0.09 Td (\320)Tj 0.583 -0.09 Td (646,)Tj -16.485 -1.25 Td (650, 670)Tj -1.35 -1.25 Td [(de\336nition of,)-500(61)55(1)]TJ /TT0 1 Tf -1.35 -1.25 Td (sendto)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(331,)-250(451, 610)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td [(61)55(1, 620, 622)]TJ 5.528 0.09 Td (\320)Tj 0.583 -0.09 Td (623)Tj 6.598 65 Td [(de\336nition of,)-500(610)]TJ /TT0 1 Tf -1.35 -1.25 Td (S_ERROR)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(510)]TJ /TT0 1 Tf -4.617 -1.25 Td (serv_accept)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(636)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (638, 641, 648, 659,)Tj -10.94 -1.25 Td (665, 667)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (668, 897)Tj -5.516 -1.25 Td [(de\336nition of,)-500(636, 638)]TJ /TT0 1 Tf -1.35 -1.25 Td (servent)Tj /T1_0 1 Tf 4.617 0 Td [(str)8(uctur)18(e, )-250(599)]TJ -4.617 -1.25 Td [(Service Access Facility)111(,)]TJ /T1_2 1 Tf 10.565 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td (SAF)Tj -11.982 -1.25 Td [(Service Management Facility)111(,)]TJ /T1_2 1 Tf 13.405 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td (SMF)Tj /TT0 1 Tf -14.822 -1.25 Td (serv_listen)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(636)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (637, 659, 664)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (665,)Tj -17.107 -1.25 Td (667, 670, 897)Tj -1.35 -1.25 Td [(de\336nition of,)-500(636)]TJ 7.775 0.09 Td (\320)Tj 0.583 -0.09 Td (637)Tj -9.709 -1.25 Td [(session, )-250(295)]TJ 5.503 0.09 Td (\320)Tj 0.583 -0.09 Td (296)Tj -4.737 -1.25 Td [(ID, )-250(233,)-250(252, 296, 31)55(1, 463)]TJ 11.389 0.09 Td (\320)Tj 0.583 -0.09 Td (464)Tj -11.973 -1.25 Td (leader)Tj 0.5 Tc 2.681 0 Td (,2)Tj 0 Tc 1.25 0 Td (95)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td [(297, 31)55(1, 318, 464)]TJ 7.528 0.09 Td (\320)Tj 0.583 -0.09 Td (466, 469,)Tj -12.359 -1.25 Td (726)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (727, 742, 944)Tj -3.517 -1.25 Td [(pr)18(ocess gr)18(oup ID,)-500(304)]TJ /TT0 1 Tf -1.35 -1.25 Td (session)Tj /T1_0 1 Tf 4.617 0 Td [(str)8(uctur)18(e, )-250(310)]TJ 6.302 0.09 Td (\320)Tj 0.583 -0.09 Td [(31)55(1, 318, 464)]TJ -11.502 -1.25 Td (set)Tj 1.35 -1.25 Td (descriptor)Tj 0.5 Tc 4.438 0 Td (,5)Tj 0 Tc 1.25 0 Td (03, 505, 532, 933)Tj -5.688 -1.25 Td [(signal, )-250(336,)-250(344)]TJ 6.977 0.09 Td (\320)Tj 0.583 -0.09 Td (345, 532, 933)Tj /TT0 1 Tf -8.911 -1.25 Td (SETALL)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(568,)-250(570)]TJ /TT0 1 Tf -4.017 -1.25 Td (setasync)Tj /T1_0 1 Tf 5.217 0 Td [(function, de\336nition of,)-500(939)]TJ /TT0 1 Tf -5.217 -1.25 Td (setbuf)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(146)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (147, 150, 171, 175, 247)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (248,)Tj -18.107 -1.25 Td (701, 930)Tj -1.35 -1.25 Td [(de\336nition of,)-500(146)]TJ /TT0 1 Tf -1.35 -1.25 Td (set_cloexec)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(615,)-250(617, 622, 896)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(480)]TJ /TT0 1 Tf -1.35 -1.25 Td (setegid)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(258)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(258)]TJ /TT0 1 Tf -1.35 -1.25 Td (setenv)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(212,)-250(251, 442)]TJ -2.667 -1.25 Td [(de\336nition of,)-500(212)]TJ /TT0 1 Tf -1.35 -1.25 Td (seteuid)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(258)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (260)Tj -9.89 -1.25 Td [(de\336nition of,)-500(258)]TJ /TT0 1 Tf -1.35 -1.25 Td (set_fl)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(86,)-250(482)]TJ 7.54 0.09 Td (\320)Tj 0.583 -0.09 Td (483, 498, 896, 934)Tj -10.79 -1.25 Td [(de\336nition of,)-500(85)]TJ /TT0 1 Tf -1.35 -1.25 Td (setgid)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(256,)-250(258, 288, 331, 816)]TJ -2.667 -1.25 Td [(de\336nition of,)-500(256)]TJ /TT0 1 Tf -1.35 -1.25 Td (setgrent)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(183)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (184, 442, 452)Tj -10.49 -1.25 Td [(de\336nition of,)-500(183)]TJ -1.35 -1.25 Td [(set-gr)18(oup-ID, )-250(98)]TJ 7.522 0.09 Td (\320)Tj 0.583 -0.09 Td (99, 102, 107)Tj 5.083 0.09 Td (\320)Tj 0.583 -0.09 Td [(108, 1)55(10, 129, 140,)]TJ -11.072 -1.25 Td (233, 253, 317, 496, 546, 723)Tj -1.35 -1.25 Td [(saved, )-250(56,)-250(98, 257)]TJ /TT0 1 Tf -1.35 -1.25 Td (setgroups)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(184)]TJ -4.467 -1.25 Td [(de\336nition of,)-500(184)]TJ /TT0 1 Tf -1.35 -1.25 Td (sethostent)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(452,)-250(597)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(597)]TJ /TT0 1 Tf -1.35 -1.25 Td (sethostname)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(189)]TJ /TT0 1 Tf -7.017 -1.25 Td (setitimer)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(317,)-250(320, 322, 381)]TJ /TT0 1 Tf -5.817 -1.25 Td (_setjmp)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(355,)-250(358)]TJ /TT0 1 Tf -4.617 -1.25 Td (setjmp)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(197,)-250(213, 215)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (219, 225, 340, 343,)Tj -11.94 -1.25 Td (355)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (356, 358, 381, 924)Tj -3.517 -1.25 Td [(de\336nition of,)-500(215)]TJ /TT0 1 Tf -1.35 -1.25 Td ()Tj /T1_0 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47562 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(3.14)]TJ /TT0 1 Tf 36.903 0 Td (fcntl)Tj /T1_0 1 Tf 3.5 0 Td (Function)Tj /T1_1 1 Tf 5.93 0 Td (85)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(operation )-105(of )-105(the )-105(pr)19(ogram, )-105(when )-105(invoked )-105(fr)19(om)]TJ /TT0 1 Tf 21.368 0 Td (bash)Tj /T1_0 1 Tf 2.755 0 Td [(\(the )-105(Bourne-again )-105(shell\).)-604(Results)]TJ -24.123 -1.2 Td (will vary)Tj 0.25 Tc 3.862 0 Td (,d)Tj 0 Tc 1.111 0 Td (epending on which shell you use.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 639.1917 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out 0 < /dev/tty)Tj /TT0 1 Tf -1.2 -1.189 Td (read only)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out 1 > temp.foo)Tj /TT0 1 Tf -1.2 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (cat temp.foo)Tj /TT0 1 Tf -1.2 -1.189 Td (write only)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out 2 2>>temp.foo)Tj /TT0 1 Tf -1.2 -1.189 Td (write only, append)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out 5 5<>temp.foo)Tj /TT0 1 Tf -1.2 -1.189 Td (read write)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 534.5281 Tm [(The )-221(clause)]TJ /TT0 1 Tf 5.357 0 Td (5<>temp.foo)Tj /T1_0 1 Tf 7.071 0 Td [(opens )-221(the )-221(\336le)]TJ /TT0 1 Tf 6.806 0 Td (temp.foo)Tj /T1_0 1 Tf 5.271 0 Td [(for )-221(r)18(eading )-221(and )-221(writing )-221(on )-221(\336le)]TJ -24.505 -1.2 Td (descriptor 5.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 5225.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT2 1 Tf 9.9988 0 0 9.9988 93.5888 487.7015 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(When )-196(we )-196(modify )-196(either )-196(the )-196(\336le )-196(descriptor )-196(\337ags )-196(or )-196(the )-196(\336le )-196(status )-196(\337ags, )-196(we )-196(must )-196(be)]TJ 0 -1.2 TD [(car)18(eful )-101(to )-101(fetch )-101(the )-101(existing )-101(\337ag )-101(value, )-101(modify )-101(it )-101(as )-101(desir)18(ed, )-101(and )-101(then )-101(set )-101(the )-101(new )-101(\337ag)]TJ T* [(value. )-295(W)]TJ 0.2947 Tc 4.141 0 Td (ec)Tj 0 Tc 1.218 0 Td [(an\325t )-45(simply )-45(issue )-45(an)]TJ /TT0 1 Tf 9.214 0 Td (F_SETFD)Tj /T1_0 1 Tf 4.495 0 Td [(or )-45(an)]TJ /TT0 1 Tf 2.612 0 Td (F_SETFL)Tj /T1_0 1 Tf 4.495 0 Td [(command, )-45(as )-45(this )-45(could )-45(turn)]TJ -26.174 -1.2 Td (of)Tj 0.25 Tc 0.861 0 Td (f\337)Tj 0 Tc 1.191 0 Td (ag bits that wer)Tj 0.25 Tc 6.824 0 Td (ep)Tj -0.018 Tc 1.33 0 Td (re)Tj 0 Tc 0.856 0 Td (viously set.)Tj -9.262 -1.2 Td (Figur)Tj 0.4529 Tc 2.383 0 Td (e3)Tj 0 Tc 1.432 0 Td [(.12 )-203(shows )-203(a )-203(function )-203(that )-203(sets )-203(one )-203(or )-203(mor)20(e)-453(of)-453(the )-203(\336le )-203(status )-203(\337ags )-203(for )-203(a)]TJ -5.615 -1.2 Td [(descriptor)74(.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3953.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 385.7895 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (void)Tj 0 -1.189 TD (set_fl\(int fd, int flags\) /* flags are file status flags to turn on */\ )Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(val;)]TJ 0 -2.021 TD (if \(\(val = fcntl\(fd, F_GETFL, 0\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("fcntl F_GETFL error"\);)Tj -2.4 -2.021 Td [(val |= flags;)-4200(/* turn on flags */)]TJ 0 -2.021 TD (if \(fcntl\(fd, F_SETFL, val\) < 0\))Tj 2.4 -1.189 Td (err_sys\("fcntl F_SETFL error"\);)Tj -4.8 -1.189 Td (})Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2334.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 199.0442 217.3458 Tm (Figure 3.12)Tj /T1_0 1 Tf -0.09 Tc 5.695 0 Td (Tu)Tj 0 Tc 1.126 0 Td [(rn on one or mor)18(e)-250(of)-250(the \336le status \337ags for a descriptor)]TJ 9.9976 0 0 9.9976 129.5687 192.1519 Tm (If we change the middle statement to)Tj /TT0 1 Tf 8.9978 0 0 8.9978 147.5644 174.3862 Tm [(val &= \367flags;)-3600(/* turn flags off */)]TJ /T1_0 1 Tf 9.9976 0 0 9.9976 129.5687 155.3205 Tm [(we )-231(have )-231(a )-231(function )-231(named)]TJ /TT0 1 Tf 13.108 0 Td (clr_fl)Tj /T1_0 1 Tf 0.4814 Tc (,w)Tj 0 Tc 5.165 0 Td [(hich )-231(we\325ll )-231(use )-231(in )-231(some )-231(later )-231(examples.)-734(This)]TJ -18.273 -1.2 Td (statement logically ANDs the one\325s complement of)Tj /TT0 1 Tf 22.737 0 Td (flags)Tj /T1_0 1 Tf 3.25 0 Td [(with the curr)18(ent)]TJ /TT0 1 Tf 7.376 0 Td (val)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47563 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.10)]TJ /TT0 1 Tf 36.579 0 Td (exec)Tj /T1_0 1 Tf 2.9 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (251)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(functions, )-20(however)]TJ 0.2704 Tc 8.457 0 Td (,u)Tj 0 Tc 1.123 0 Td [(se )-20(the)]TJ /TT0 1 Tf 2.831 0 Td (environ)Tj /T1_0 1 Tf 4.47 0 Td [(variable )-20(in )-20(the )-20(calling )-20(pr)18(ocess )-20(to )-20(copy )-20(the )-20(existing)]TJ -16.882 -1.2 Td [(envir)18(onment )-31(for )-31(the )-31(new )-31(pr)17(ogram. )-281(\(Recall)-281(our )-31(discussion )-31(of )-31(the )-31(envir)18(onment )-31(strings )-31(in)]TJ -0 -1.2 Td [(Section )-4(7.9 )-4(and )-4(Figur)]TJ 0.254 Tc 9.281 0 Td (e7)Tj 0 Tc 1.233 0 Td [(.8. )-254(W)]TJ 0.2539 Tc 2.412 0 Td (em)Tj 0 Tc 1.616 0 Td [(entioned )-4(that )-4(if )-4(the )-4(system )-4(supported )-4(such )-4(functions )-4(as)]TJ /TT0 1 Tf -14.542 -1.2 Td (setenv)Tj /T1_0 1 Tf 3.95 0 Td (and)Tj /TT0 1 Tf 2.043 0 Td (putenv)Tj /T1_0 1 Tf [(,)-350(we)-350(could )-100(change )-100(the )-100(curr)18(ent )-100(envir)18(onment )-100(and )-100(the )-100(envir)19(onment)]TJ -5.993 -1.2 Td [(of )-35(any )-35(subsequent )-35(child )-35(pr)19(ocesses, )-35(but )-35(we )-35(couldn\325t )-35(af)18(fect )-35(the )-35(envir)18(onment )-35(of )-35(the )-35(par)22(ent)]TJ 0 -1.2 TD [(pr)18(ocess.\) )-350(Normally)]TJ 0.3504 Tc 8.66 0 Td (,ap)Tj -0.018 Tc 2.052 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-100(allows )-100(its )-100(envir)18(onment )-100(to )-100(be )-100(pr)16(opagated )-100(to )-100(its )-100(childr)17(en,)]TJ -11.635 -1.2 Td [(but )-135(in )-135(some )-135(cases, )-135(a )-135(pr)18(ocess )-135(wants )-135(to )-135(specify )-135(a )-135(certain )-135(envir)13(onment )-135(for )-135(a )-135(child.)-637(One)]TJ 0 -1.2 Td [(example )-310(of )-310(the )-310(latter )-310(is )-310(the)]TJ /TT0 1 Tf 13.794 0 Td (login)Tj /T1_0 1 Tf 3.56 0 Td [(pr)18(ogram )-310(when )-310(a )-310(new )-310(login )-310(shell )-310(is )-310(initiated.)]TJ -17.354 -1.2 Td [(Normally)111(,)]TJ /TT0 1 Tf 4.753 0 Td (login)Tj /T1_0 1 Tf 3.321 0 Td [(cr)18(eates )-71(a )-71(speci\336c )-71(envir)18(onment )-71(with )-71(only )-71(a )-71(few )-71(variables )-71(de\336ned )-71(and)]TJ -8.073 -1.2 Td [(lets )-21(us, )-21(thr)18(ough )-21(the )-21(shell )-21(start-up )-21(\336le, )-21(add )-21(variables )-21(to )-21(the )-21(envir)17(onment )-21(when )-21(we )-21(log )-21(in.)]TJ 1.8 -1.2 Td (Befor)Tj 0.25 Tc 2.346 0 Td (eu)Tj 0 Tc 1.332 0 Td [(sing ISO C pr)18(ototypes, the ar)18(guments to)]TJ /TT0 1 Tf 17.981 0 Td (execle)Tj /T1_0 1 Tf 3.85 0 Td (wer)Tj 0.25 Tc 1.69 0 Td (es)Tj 0 Tc 1.153 0 Td (hown as)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 531.1982 Tm (char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 9.344 0 Td (har *)Tj /T1_2 1 Tf [(ar)18(g0)]TJ /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 6.615 0 Td (.., char *)Tj /T1_2 1 Tf [(ar)18(gn)]TJ /TT0 1 Tf 0.6 Tc (,\()Tj 0 Tc 9.671 0 Td (char *\)0, char *)Tj /T1_2 1 Tf (envp)Tj /TT0 1 Tf ([])Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5927 512.1295 Tm [(This )-180(syntax )-180(speci\336cally )-180(shows )-180(that )-180(the )-180(\336nal )-180(ar)15(gument )-180(is )-180(the )-180(addr)18(ess )-180(of )-180(the )-180(array )-180(of)]TJ T* [(character )-79(pointers )-79(to )-79(the )-79(envir)18(onment )-79(strings.)-579(The )-79(ISO )-79(C )-79(pr)18(ototype )-79(doesn\325t )-79(show )-79(this,)]TJ T* [(as )-141(all )-141(the )-141(command)]TJ 9.015 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-141(ar)18(guments, )-141(the )-141(null )-141(pointer)]TJ 0.391 Tc 14.487 0 Td (,a)Tj 0 Tc 1.141 0 Td [(nd )-141(the)]TJ /T1_2 1 Tf 3.362 0 Td (envp)Tj /T1_0 1 Tf 2.336 0 Td [(pointer )-141(ar)]TJ 0.391 Tc 4.488 0 Td (es)Tj 0 Tc 1.294 0 Td (hown)Tj -36.456 -1.2 Td (with the ellipsis notation \()Tj /TT0 1 Tf (...)Tj /T1_0 1 Tf (\).)Tj 1.8 -1.2 Td [(The )-9(ar)18(guments )-9(for )-9(these )-9(seven)]TJ /TT0 1 Tf 13.793 0 Td (exec)Tj /T1_0 1 Tf 2.659 0 Td [(functions )-9(ar)]TJ 0.2592 Tc 5.267 0 Td (ed)Tj 0 Tc 1.349 0 Td [(if)18(\336cult )-9(to )-9(r)18(emember)]TJ 0.5092 Tc 8.719 0 Td (.T)Tj 0 Tc 1.372 0 Td [(he )-9(letters)]TJ -34.96 -1.2 Td [(in )-185(the )-185(function )-185(names )-185(help )-185(somewhat.)-685(The )-185(letter)]TJ /TT0 1 Tf 23.31 0 Td (p)Tj /T1_0 1 Tf 1.035 0 Td [(means )-185(that )-185(the )-185(function )-185(takes )-185(a)]TJ /T1_2 1 Tf -24.345 -1.2 Td (\336lename)Tj /T1_0 1 Tf 3.721 0 Td [(ar)18(gument )-109(and )-109(uses )-109(the)]TJ /TT0 1 Tf 10.751 0 Td (PATH)Tj /T1_0 1 Tf 2.759 0 Td [(envir)18(onment )-109(variable )-109(to )-109(\336nd )-109(the )-109(executable )-109(\336le.)]TJ -17.23 -1.2 Td [(The )-47(letter)]TJ /TT0 1 Tf 4.564 0 Td (l)Tj /T1_0 1 Tf 0.897 0 Td [(means )-47(that )-47(the )-47(function )-47(takes )-47(a )-47(list )-47(of )-47(ar)18(guments )-47(and )-47(is )-47(mutually )-47(exclusive)]TJ -5.461 -1.2 Td [(with )-35(the )-35(letter)]TJ /TT0 1 Tf 6.571 0 Td (v)Tj /T1_0 1 Tf 0.2851 Tc (,w)Tj 0 Tc 1.969 0 Td [(hich )-35(means )-35(that )-35(it )-35(takes )-35(an)]TJ /T1_2 1 Tf 12.196 0 Td [(ar)18(gv)]TJ /TT0 1 Tf ([])Tj /T1_0 1 Tf 3.3 0 Td (vector)Tj 0.5351 Tc 2.681 0 Td (.F)Tj 0 Tc 1.341 0 Td (inally)Tj 0.2852 Tc 2.4 0 Td (,t)Tj 0 Tc 0.861 0 Td [(he )-35(letter)]TJ /TT0 1 Tf 3.927 0 Td (e)Tj /T1_0 1 Tf 0.885 0 Td (means)Tj -36.132 -1.2 Td [(that )-269(the )-269(function )-269(takes )-269(an)]TJ /T1_2 1 Tf 12.791 0 Td (envp)Tj /TT0 1 Tf ([])Tj /T1_0 1 Tf 3.664 0 Td [(array )-269(instead )-269(of )-269(using )-269(the )-269(curr)18(ent )-269(envir)17(onment.)]TJ -16.456 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e8)Tj 0 Tc 1.229 0 Td [(.14 shows the dif)18(fer)18(ences among these seven functions.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1339.25 3757.25 cm 0 0 m 3814 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 149.2621 367.7159 Tm (Function)Tj /T1_2 1 Tf 6.983 0 Td [(pathname )-1797(\336lename)-3630(fd)]TJ /T1_0 1 Tf 17.425 0 Td (Ar)Tj 0.25 Tc 1.155 0 Td (gl)Tj 0 Tc 1.097 0 Td (ist)Tj /T1_2 1 Tf 3.587 0 Td [(ar)18(gv)]TJ /TT0 1 Tf [([] )-1492(environ)]TJ /T1_2 1 Tf 11.335 0 Td (envp)Tj /TT0 1 Tf ([])Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1339.25 3637.25 cm 0 0 m 3814 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1339.25 3617.25 cm 0 0 m 3814 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 137.8592 353.6963 Tm (execl)Tj /T1_0 1 Tf 16.494 Tc 10.076 0 Td (\245\245)Tj 0 Tc 28.5 0 Td (\245)Tj /TT0 1 Tf -38.576 -1.25 Td (execlp)Tj /T1_0 1 Tf 10.794 Tc 15.776 0 Td (\245\245\245)Tj /TT0 1 Tf 0 Tc -15.776 -1.25 Td (execle)Tj /T1_0 1 Tf 16.494 Tc 10.076 0 Td (\245\245\245)Tj /TT0 1 Tf 0 Tc -10.076 -1.25 Td (execv)Tj /T1_0 1 Tf 22.194 Tc 10.076 0 Td (\245\245)Tj 0 Tc 28.5 0 Td (\245)Tj /TT0 1 Tf -38.576 -1.25 Td (execvp)Tj /T1_0 1 Tf 16.494 Tc 15.776 0 Td (\245\245)Tj 0 Tc 22.8 0 Td (\245)Tj /TT0 1 Tf -38.576 -1.25 Td (execve)Tj /T1_0 1 Tf 22.194 Tc 10.076 0 Td (\245\245)Tj 0 Tc 34.2 0 Td (\245)Tj /TT0 1 Tf -44.276 -1.25 Td (fexecve)Tj /T1_0 1 Tf 10.794 Tc 21.476 0 Td (\245\245\245)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1339.25 2897.25 cm 0 0 m 3814 0 l S Q Q BT /T1_0 1 Tf 0 Tc 7.9981 0 0 7.9981 137.8509 281.6924 Tm (\(letter in name\))Tj /TT0 1 Tf 5.1 Tc 15.779 0 Td (pflv e)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1339.25 2777.25 cm 0 0 m 3814 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4717.25 2777.25 cm 0 0 m 0 980 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4251.25 2777.25 cm 0 0 m 0 980 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4271.25 2777.25 cm 0 0 m 0 980 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3805.25 2777.25 cm 0 0 m 0 980 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3339.25 2777.25 cm 0 0 m 0 980 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3359.25 2777.25 cm 0 0 m 0 980 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2893.25 2777.25 cm 0 0 m 0 980 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2437.25 2777.25 cm 0 0 m 0 980 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1981.25 2777.25 cm 0 0 m 0 980 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5153.25 2777.25 cm 0 0 m 0 980 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1339.25 2777.25 cm 0 0 m 0 980 l S Q Q BT /T1_1 1 Tf 0 Tc 7.9976 0 0 7.9976 222.7892 259.6821 Tm (Figure 8.14)Tj /T1_0 1 Tf 5.695 0 Td [(Dif)18(fer)18(ences among the seven)]TJ /TT0 1 Tf 12.96 0 Td (exec)Tj /T1_0 1 Tf 2.65 0 Td (functions)Tj 9.997 0 0 9.997 147.5559 235.6893 Tm [(Every )-53(system )-53(has )-53(a )-53(limit )-53(on )-53(the )-53(total )-53(size )-53(of )-53(the )-53(ar)18(gument )-53(list )-53(and )-53(the )-53(envir)23(onment)]TJ -1.8 -1.2 Td [(list. )-285(Fr)18(om )-35(Section )-35(2.5.2 )-35(and )-35(Figur)]TJ 0.2848 Tc 14.887 0 Td (e2)Tj 0 Tc 1.264 0 Td [(.8, )-35(this )-35(limit )-35(is )-35(given )-35(by)]TJ /TT0 1 Tf 10.711 0 Td (ARG_MAX)Tj /T1_0 1 Tf 0.5348 Tc (.T)Tj 0 Tc 5.598 0 Td [(his )-35(value )-35(must)]TJ -32.459 -1.2 Td [(be )-100(at )-100(least )-100(4,096 )-100(bytes )-100(on )-100(a )-100(POSIX.1 )-100(system.)]TJ -0.092 Tc 20.508 0 Td [(We )-284(s)]TJ 0 Tc 2.161 0 Td [(ometimes )-100(encounter )-100(this )-100(limit )-100(when)]TJ -22.669 -1.2 Td [(using )-145(the )-145(shell\325s )-145(\336lename )-145(expansion )-145(featur)20(e)-394(to)-394(g)-1(enerate )-144(a )-144(list )-144(of )-144(\336lenames.)-644(On )-144(some)]TJ -0 -1.2 Td (systems, for example, the command)Tj /TT0 1 Tf 8.9973 0 0 8.9973 147.5558 171.0087 Tm (grep getrlimit /usr/share/man/*/*)Tj /T1_0 1 Tf 9.997 0 0 9.997 129.5612 153.0141 Tm [(can generate a shell err)18(or of the form)]TJ /TT0 1 Tf 8.9973 0 0 8.9973 147.5558 135.2491 Tm (Argument list too long)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47564 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (636)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2382 6350 504 288 re S Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2490 5918 288 144 re S Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 252.2849 597.2042 Tm (socket)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 3606 6350 504 288 re S Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 3714 5918 288 144 re S Q BT /T1_1 1 Tf 7.999 0 0 7.999 374.655 597.1683 Tm (socket)Tj ET q 0.99988 0 0 0.99988 0 0 cm q 1 0 0 1 263.4 635 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099988 0 0 0.099988 0 0 cm 1 j 1 J q 1 0 0 1 2634 6350 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.99982 0 0 0.99982 0 0 cm q 1 0 0 1 263.4 606.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099982 0 0 0.099982 0 0 cm 1 j 1 J q 1 0 0 1 2634 6062 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2634.25 6278.25 cm 0 0 m 0 -144 l S Q Q q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 385.8 635 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 3858 6350 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 385.8 606.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 3858 6062 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3858.25 6278.25 cm 0 0 m 0 -144 l S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 238.1862 666.7999 Tm [(server pr)18(ocess)]TJ 15.462 0 Td [(client pr)18(ocess)]TJ /TT0 1 Tf -9.621 -8.725 Td (sun_path)Tj /T1_0 1 Tf -7.535 -3.83 Td (Figure 17.6)Tj /T1_1 1 Tf 5.695 0 Td (Client and server sockets befor)Tj 0.25 Tc 13.595 0 Td (ea)Tj /TT0 1 Tf 0 Tc (connect)Tj /T1_1 1 Tf 9.9964 0 0 9.9964 147.547 538.8062 Tm (Figur)Tj 0.3689 Tc 2.383 0 Td (e1)Tj 0 Tc 1.348 0 Td [(7.6 )-119(shows )-119(a )-119(client )-119(pr)18(ocess )-119(and )-119(a )-119(server )-119(pr)18(ocess )-119(befor)]TJ 0.369 Tc 24.101 0 Td (eac)Tj 0 Tc 2.161 0 Td [(onnection )-119(exists)]TJ -31.793 -1.2 Td [(between )-124(the )-124(two.)-624(The )-124(server )-124(has )-124(bound )-124(its )-124(socket )-124(to )-124(a)]TJ /TT0 1 Tf 25.443 0 Td (sockaddr_un)Tj /T1_1 1 Tf 6.974 0 Td [(addr)18(ess )-124(and )-124(is)]TJ -32.418 -1.2 Td [(listening )-26(for )-26(connection )-26(r)17(equests. )-276(Figur)]TJ 0.2765 Tc 17.579 0 Td (e1)Tj 0 Tc 1.256 0 Td [(7.7 )-27(shows )-27(the )-27(unique )-27(connection )-27(between )-27(the)]TJ -18.834 -1.2 Td [(client and server after the server has accepted the client\325s connecti\ on r)18(equest.)]TJ ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2562 4450 504 288 re S Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2202 4018 288 144 re S Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 223.4061 407.069 Tm (socket)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 3138 4018 288 144 re S Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 316.9478 407.0446 Tm (socket)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 3786 4450 504 288 re S Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 3894 4018 288 144 re S Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 392.488 407.0201 Tm (socket)Tj ET q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 264.624 445 cm 0 0 m -3.96 -6.264 l -6.48 -3.672 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 2646.24 4450 cm 0 0 m -39.6 -62.64 l -64.8 -36.72 l h S Q Q q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 234.6 416.2 cm 0 0 m 3.96 6.264 l 6.48 3.672 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 2346 4162 cm 0 0 m 39.6 62.64 l 64.8 36.72 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2594.25 4400.25 cm 0 0 m -196 -188 l S Q Q q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 298.176 445 cm 0 0 m 6.408 -3.672 l 3.888 -6.264 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 2981.76 4450 cm 0 0 m 64.08 -36.72 l 38.88 -62.64 l h S Q Q q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 328.2 416.2 cm 0 0 m -6.408 3.672 l -3.888 6.264 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 3282 4162 cm 0 0 m -64.08 36.72 l -38.88 62.64 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3033.25 4400.25 cm 0 0 m 196 -188 l S Q Q q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 403.8 445 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 4038 4450 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 403.8 416.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 4038 4162 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4038.25 4378.25 cm 0 0 m 0 -144 l S Q Q BT /T1_1 1 Tf 7.9928 0 0 7.9928 256.0415 476.6108 Tm [(server pr)18(ocess)]TJ 15.462 0 Td [(client pr)18(ocess)]TJ /TT0 1 Tf -15.471 -8.725 Td (sun_path)Tj ET q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 328.2 401.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 3282 4018 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 403.8 401.8 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 4038 4018 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3282 4010.8 cm 0 0 m 0 -140.4 l 0 -234 66 -304.8 198 -352.8 c 330 -400.8 456 -400.8 576 -352.8 c 696 -304.8 756 -234 756 -140.4 c 756 0 l S Q Q BT /T1_0 1 Tf 7.9918 0 0 7.9918 227.4279 336.6564 Tm (Figure 17.7)Tj /T1_1 1 Tf 5.695 0 Td (Client and server sockets after a)Tj /TT0 1 Tf 14.34 0 Td (connect)Tj /T1_1 1 Tf -0.092 Tc 9.9898 0 0 9.9898 147.4497 309.0846 Tm [(We )-238(w)]TJ 0 Tc 2.525 0 Td [(ill )-54(now )-54(develop )-54(thr)18(ee )-54(functions )-54(that )-54(can )-54(be )-54(used )-54(to )-54(cr)18(eate )-54(unique )-54(connections)]TJ -4.325 -1.2 Td [(between )-49(unr)18(elated )-49(pr)18(ocesses )-49(r)8(unning )-49(on )-49(the )-49(same )-49(machine.)-549(These )-49(functions )-49(mimic )-49(the)]TJ 0 -1.2 TD [(connection-oriented )-118(socket )-118(functions )-118(discussed )-118(in )-118(Section )-118(16.4.)]TJ -0.092 Tc 28.976 0 Td [(We )-302(u)]TJ 0 Tc 2.358 0 Td [(se )-118(UNIX )-118(domain)]TJ -31.334 -1.2 Td [(sockets for the underlying communication mechanism her)18(e.)]TJ /TT0 1 Tf 8.9908 0 0 8.9908 147.4497 254.0407 Tm (#include "apue.h")Tj 0 -2.021 TD (int serv_listen\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 10.654 -2.021 Td [(Returns: \336le descriptor to listen on if OK, negative value on err)18(or)]TJ /TT0 1 Tf -10.654 -2.021 Td (int serv_accept\(int)Tj /T1_2 1 Tf 12 0 Td (listenfd)Tj /TT0 1 Tf 0.6 Tc (,u)Tj 0 Tc 4.801 0 Td (id_t *)Tj /T1_2 1 Tf (uidptr)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -3.149 -2.021 Td [(Returns: new \336le descriptor if OK, negative value on err)18(or)]TJ /TT0 1 Tf -13.652 -2.021 Td (int cli_conn\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 15.797 -2.021 Td [(Returns: \336le descriptor if OK, negative value on err)18(or)]TJ ET q 0.099898 0 0 0.099898 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1406.25 cm 0 0 m 0 1227 l 3900 1227 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47565 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.6)]TJ 31.183 0 Td [(An )-250(Open )-250(Server)]TJ 0.5 Tc 7.572 0 Td (,V)Tj 0 Tc 1.361 0 Td [(ersion )-250(2)]TJ /T1_1 1 Tf 5.717 0 Td (667)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (for \(i = 0; i < NALLOC; i++\) {)Tj 2.4 -1.189 Td (pollfd[i].fd = -1;)Tj 0 -1.189 TD (pollfd[i].events = POLLIN;)Tj T* (pollfd[i].revents = 0;)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (/* obtain fd to listen for client requests on */)Tj 0 -1.189 TD (if \(\(listenfd = serv_listen\(CS_OPEN\)\) < 0\))Tj 2.4 -1.189 Td (log_sys\("serv_listen error"\);)Tj -2.4 -1.189 Td [(client_add\(listenfd, 0\);)-2400(/* we use [0] for listenfd */)]TJ T* (pollfd[0].fd = listenfd;)Tj 0 -2.14 TD (for \( ; ; \) {)Tj 2.4 -1.189 Td (if \(poll\(pollfd, numfd, -1\) < 0\))Tj 2.4 -1.189 Td (log_sys\("poll error"\);)Tj -2.4 -2.14 Td (if \(pollfd[0].revents & POLLIN\) {)Tj 2.4 -1.189 Td (/* accept new client request */)Tj 0 -1.189 TD (if \(\(clifd = serv_accept\(listenfd, &uid\)\) < 0\))Tj 2.4 -1.189 Td (log_sys\("serv_accept error: %d", clifd\);)Tj -2.4 -1.189 Td (client_add\(clifd, uid\);)Tj 0 -2.14 TD (/* possibly increase the size of the pollfd array */)Tj 0 -1.189 TD (if \(numfd == maxfd\))Tj 2.4 -1.189 Td (pollfd = grow_pollfd\(pollfd, &maxfd\);)Tj -2.4 -1.189 Td (pollfd[numfd].fd = clifd;)Tj T* (pollfd[numfd].events = POLLIN;)Tj T* (pollfd[numfd].revents = 0;)Tj T* (numfd++;)Tj T* (log_msg\("new connection: uid %d, fd %d", uid, clifd\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (for \(i = 1; i < numfd; i++\) {)Tj 2.4 -1.189 Td (if \(pollfd[i].revents & POLLHUP\) {)Tj 2.4 -1.189 Td (goto hungup;)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(pollfd[i].revents & POLLIN\) {)Tj 0.6 -1.189 Td (/* read argument buffer from client */)Tj 0 -1.189 TD (if \(\(nread = read\(pollfd[i].fd, buf, MAXLINE\)\) < 0\) {)Tj 2.4 -1.189 Td (log_sys\("read error on fd %d", pollfd[i].fd\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(nread == 0\) {)Tj -11.4 -1.189 Td (hungup:)Tj 12 -1.189 Td (/* the client closed the connection */)Tj T* (log_msg\("closed: uid %d, fd %d",)Tj 1.2 -1.189 Td (client[i].uid, pollfd[i].fd\);)Tj -1.2 -1.189 Td (client_del\(pollfd[i].fd\);)Tj T* (close\(pollfd[i].fd\);)Tj T* (if \(i < \(numfd-1\)\) {)Tj 2.4 -1.189 Td (/* pack the array */)Tj T* (pollfd[i].fd = pollfd[numfd-1].fd;)Tj T* (pollfd[i].events = pollfd[numfd-1].events;)Tj T* (pollfd[i].revents = pollfd[numfd-1].revents;)Tj T* [(i--; )-1800(/*)-600(recheck this entry */)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47566 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.6)]TJ 31.183 0 Td [(An )-250(Open )-250(Server)]TJ 0.5 Tc 7.572 0 Td (,V)Tj 0 Tc 1.361 0 Td [(ersion )-250(2)]TJ /T1_1 1 Tf 5.717 0 Td (665)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (for \( ; ; \) {)Tj 2.4 -1.189 Td [(rset = allset;)-1200(/* rset gets modified each time around */)]TJ 0 -1.189 TD (if \(\(n = select\(maxfd + 1, &rset, NULL, NULL, NULL\)\) < 0\))Tj 2.4 -1.189 Td (log_sys\("select error"\);)Tj -2.4 -2.14 Td (if \(FD_ISSET\(listenfd, &rset\)\) {)Tj 2.4 -1.189 Td (/* accept new client request */)Tj T* (if \(\(clifd = serv_accept\(listenfd, &uid\)\) < 0\))Tj 2.4 -1.189 Td (log_sys\("serv_accept error: %d", clifd\);)Tj 0.6 Tc -2.4 -1.189 Td (i=c)Tj 0 Tc 3 0 Td (lient_add\(clifd, uid\);)Tj -3 -1.189 Td (FD_SET\(clifd, &allset\);)Tj T* (if \(clifd > maxfd\))Tj 2.4 -1.189 Td [(maxfd = clifd;)-1200(/* max fd for select\(\) */)]TJ -2.4 -1.189 Td (if \(i > maxi\))Tj 2.4 -1.189 Td [(maxi = i;)-1800(/* max index in client[] array */)]TJ -2.4 -1.189 Td (log_msg\("new connection: uid %d, fd %d", uid, clifd\);)Tj T* (continue;)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD [(for \(i = 0; i <= maxi; i++\) {)-1800(/* go through client[] array */)]TJ 2.4 -1.189 Td (if \(\(clifd = client[i].fd\) < 0\))Tj 2.4 -1.189 Td (continue;)Tj -2.4 -1.189 Td (if \(FD_ISSET\(clifd, &rset\)\) {)Tj 2.4 -1.189 Td (/* read argument buffer from client */)Tj 0 -1.189 TD (if \(\(nread = read\(clifd, buf, MAXLINE\)\) < 0\) {)Tj 2.4 -1.189 Td (log_sys\("read error on fd %d", clifd\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(nread == 0\) {)Tj 0.6 -1.189 Td (log_msg\("closed: uid %d, fd %d",)Tj 1.2 -1.189 Td (client[i].uid, clifd\);)Tj -1.2 -1.189 Td [(client_del\(clifd\); )-600(/*)-600(client has closed cxn */)]TJ T* (FD_CLR\(clifd, &allset\);)Tj 0 -1.189 TD (close\(clifd\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse {)-2400(/* process client\325s request */)]TJ 0.6 -1.189 Td (handle_request\(buf, nread, clifd, client[i].uid\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2632.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 240.4431 247.1493 Tm (Figure 17.29)Tj /T1_0 1 Tf 6.195 0 Td (The)Tj /TT0 1 Tf 1.924 0 Td (loop)Tj /T1_0 1 Tf 2.65 0 Td (function using)Tj /TT0 1 Tf 6.663 0 Td (select)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 147.5826 219.5527 Tm [(This )-121(function )-121(calls)]TJ /TT0 1 Tf 8.681 0 Td (serv_listen)Tj /T1_0 1 Tf 6.971 0 Td (\(Figur)Tj 0.3715 Tc 2.716 0 Td (e1)Tj 0 Tc 1.351 0 Td [(7.8\) )-121(to )-121(cr)17(eate )-121(the )-121(server)-74(\325s )-121(endpoint )-121(for)]TJ -21.52 -1.2 Td [(the )-59(client )-59(connections.)-559(The )-59(r)18(emainder )-59(of )-59(the )-59(function )-59(is )-59(a )-59(loop )-59(that )-59(starts )-59(with )-59(a )-59(call )-59(to)]TJ /TT0 1 Tf 0 -1.2 TD (select)Tj /T1_0 1 Tf 0.5 Tc (.T)Tj 0 Tc 4.873 0 Td [(wo conditions can be tr)8(ue after)]TJ /TT0 1 Tf 13.909 0 Td (select)Tj /T1_0 1 Tf -0.018 Tc 3.85 0 Td (re)Tj 0 Tc 0.856 0 Td (turns.)Tj -21.688 -1.68 Td [(1. )-633(The)-404(descriptor)]TJ /TT0 1 Tf 8.627 0 Td (listenfd)Tj /T1_0 1 Tf 5.204 0 Td [(can )-154(be )-154(r)18(eady )-154(for )-154(r)17(eading, )-154(which )-154(means )-154(that )-154(a )-154(new)]TJ -12.199 -1.2 Td [(client )-25(has )-25(called)]TJ /TT0 1 Tf 7.361 0 Td (cli_conn)Tj /T1_0 1 Tf 0.5254 Tc (.T)Tj 0.2754 Tc 6.096 0 Td (oh)Tj 0 Tc 1.403 0 Td [(andle )-25(this, )-25(we )-25(call)]TJ /TT0 1 Tf 8.277 0 Td (serv_accept)Tj /T1_0 1 Tf 6.876 0 Td (\(Figur)Tj 0.2755 Tc 2.716 0 Td (e1)Tj 0 Tc 1.254 0 Td (7.9\))Tj -33.984 -1.2 Td [(and )-42(then )-42(update )-42(the)]TJ /TT0 1 Tf 9.337 0 Td (client)Tj /T1_0 1 Tf 3.892 0 Td [(array )-42(and )-42(associated )-42(bookkeeping )-42(information )-42(for)]TJ -13.229 -1.2 Td [(the )-165(new )-165(client.)-664(\(W)]TJ 0.4147 Tc 8.68 0 Td (ek)Tj 0 Tc 1.45 0 Td [(eep )-165(track )-165(of )-165(the )-165(highest )-165(descriptor )-165(number )-165(for )-165(the )-165(\336rst)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47567 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (664)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(IPC)]TJ 38.741 0 Td [(Chapter )-250(17)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm [(Client )-600(*client)]TJ 0.6 Tc 9.6 0 Td (=N)Tj 0 Tc 1.8 0 Td (ULL;)Tj -11.4 -2.14 Td (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(c;)]TJ 0 -2.14 TD (log_open\("open.serv", LOG_PID, LOG_USER\);)Tj 0 -2.14 TD [(opterr = 0;)-3000(/* don\325t want getopt\(\) writing to stderr */)]TJ 0 -1.189 TD (while \(\(c = getopt\(argc, argv, "d"\)\) != EOF\) {)Tj 2.4 -1.189 Td (switch \(c\) {)Tj T* [(case \325d\325:)-4200(/* debug */)]TJ 2.4 -1.189 Td (debug = log_to_stderr = 1;)Tj T* (break;)Tj -2.4 -2.14 Td (case \325?\325:)Tj 2.4 -1.189 Td (err_quit\("unrecognized option: -%c", optopt\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (if \(debug == 0\))Tj 2.4 -1.189 Td (daemonize\("opend"\);)Tj -2.4 -2.14 Td [(loop\(\); )-2400(/*)-600(never returns */)]TJ -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4108.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 236.5916 394.7916 Tm (Figure 17.28)Tj /T1_1 1 Tf 6.195 0 Td (The server)Tj /TT0 1 Tf 4.911 0 Td (main)Tj /T1_1 1 Tf 2.65 0 Td (function, version 2)Tj 9.9988 0 0 9.9988 147.5824 367.1949 Tm [(The )-182(function)]TJ /TT0 1 Tf 6.245 0 Td (loop)Tj /T1_1 1 Tf 2.832 0 Td [(is )-182(the )-182(server)-74(\325s )-182(in\336nite )-182(loop.)]TJ -0.092 Tc 13.416 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-182(show )-182(two )-182(versions )-182(of )-182(this)]TJ -25.679 -1.2 Td [(function. )-261(Figur)]TJ 0.2614 Tc 6.851 0 Td (e1)Tj 0 Tc 1.24 0 Td [(7.29 )-11(shows )-11(one )-11(version )-11(that )-11(uses)]TJ /TT0 1 Tf 14.681 0 Td (select)Tj /T1_1 1 Tf 0.2613 Tc (;F)Tj 0 Tc 4.667 0 Td (igur)Tj 0.2613 Tc 1.827 0 Td (e1)Tj 0 Tc 1.24 0 Td [(7.30 )-11(shows )-11(another)]TJ -30.507 -1.2 Td (version that uses)Tj /TT0 1 Tf 7.696 0 Td (poll)Tj /T1_1 1 Tf (.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3360.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 326.4792 Tm [(#include )-1800("opend.h")]TJ 0 -1.189 TD [(#include )-1800()]TJ 0 -2.14 TD (void)Tj 0 -1.189 TD (loop\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-2400(i,)-600(n, maxfd, maxi, listenfd, clifd, nread;)]TJ 0 -1.189 TD [(char )-1800(buf[MAXLINE];)]TJ T* [(uid_t )-1200(uid;)]TJ T* [(fd_set )-600(rset,)-600(allset;)]TJ 0 -2.14 TD (FD_ZERO\(&allset\);)Tj T* (/* obtain fd to listen for client requests on */)Tj 0 -1.189 TD (if \(\(listenfd = serv_listen\(CS_OPEN\)\) < 0\))Tj 2.4 -1.189 Td (log_sys\("serv_listen error"\);)Tj -2.4 -1.189 Td (FD_SET\(listenfd, &allset\);)Tj 0 -1.189 TD (maxfd = listenfd;)Tj 0 -1.189 TD (maxi = -1;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47568 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.10)]TJ 35.018 0 Td [(POSIX )-250(Semaphor)18(es)]TJ /T1_1 1 Tf 10.815 0 Td (581)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (The)Tj /TT0 1 Tf 2.043 0 Td (sem_unlink)Tj /T1_0 1 Tf 6.369 0 Td [(function )-119(r)18(emoves )-119(the )-119(name )-119(of )-119(the )-119(semaphor)20(e. )-369(If)-368(ther)]TJ 0.3687 Tc 24.312 0 Td (ea)Tj -0.018 Tc 1.348 0 Td [(re )-155(n)]TJ 0.3686 Tc 1.807 0 Td (oo)Tj 0 Tc 1.461 0 Td (pen)Tj -0.018 Tc -37.338 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(ences )-169(to )-169(the )-169(semaphor)17(e, )-169(then )-169(it )-169(is )-169(destr)16(oyed. )-419(Otherwise,)-420(destr)8(uction )-169(is )-169(deferr)17(ed)]TJ -0.856 -1.2 Td [(until the last open r)18(efer)18(ence is closed.)]TJ 1.8 -1.2 Td [(Unlike with XSI semaphor)18(es, we can only adjust the value of a POSIX semaphor)]TJ 0.25 Tc 35.362 0 Td (eb)Tj 0 Tc 1.282 0 Td (y)Tj -38.444 -1.2 Td [(one )-6(with )-6(a )-6(single )-6(function )-6(call.)-507(Decr)18(ementing )-6(the )-6(count )-6(is )-6(analogous )-6(to )-6(locking )-6(a )-6(binary)]TJ -0 -1.2 Td [(semaphor)18(e)-250(or)-250(acquiring a r)18(esour)18(ce associated with a counting semaphor)18(e.)]TJ 7.9995 0 0 7.9995 183.5888 588.9647 Tm [(Note )-47(that )-47(ther)17(e)-297(is)-297(no)-297(d)-1(istinction )-47(of )-47(semaphor)]TJ 0.2974 Tc 20.069 0 Td (et)Tj 0 Tc 1.102 0 Td [(ype )-47(with )-47(POSIX )-47(semaphor)17(es. )-297(Whether)-298(we )-47(use)]TJ 0.4923 Tc -21.171 -1.25 Td (ab)Tj 0 Tc 1.545 0 Td [(inary )-242(semaphor)18(e)-492(or)-492(a)-492(c)-1(ounting )-242(semaphor)]TJ 0.4923 Tc 19.419 0 Td (ed)Tj 0 Tc 1.582 0 Td [(epends )-242(on )-242(how )-242(we )-242(initialize )-242(and )-242(use )-242(the)]TJ -22.547 -1.25 Td [(semaphor)18(e. )-410(If)]TJ 0.4101 Tc 6.861 0 Td (as)Tj 0 Tc 1.334 0 Td (emaphor)Tj 0.4101 Tc 3.968 0 Td (eo)Tj 0 Tc 1.435 0 Td [(nly )-160(ever )-160(has )-160(a )-160(value )-160(of )-160(0 )-160(or )-160(1, )-160(then )-160(it )-160(is )-160(a )-160(binary )-160(semaphor)16(e.)]TJ -13.599 -1.25 Td [(When )-18(a )-18(binary )-18(semaphor)]TJ 0.268 Tc 11.216 0 Td (eh)Tj 0 Tc 1.329 0 Td [(as )-18(a )-18(value )-18(of )-18(1, )-18(we )-18(say )-18(that )-18(it )-18(is )-18(\324)37(\324unlocked;\325)]TJ 0.268 Tc 19.152 0 Td (\325w)Tj 0 Tc 1.38 0 Td [(hen )-18(it )-18(has )-18(a )-18(value )-18(of)]TJ -33.077 -1.25 Td [(0, we say that it is \324)37(\324locked.\325)37(\325)]TJ -0.092 Tc 9.9994 0 0 9.9994 147.5907 528.9683 Tm [(To )-482(d)]TJ 0 Tc 2.226 0 Td [(ecr)18(ement )-298(the )-298(value )-298(of )-298(a )-298(semaphor)18(e, )-298(we )-298(can )-298(use )-298(either )-298(the)]TJ /TT0 1 Tf 28.685 0 Td (sem_wait)Tj /T1_0 1 Tf 5.348 0 Td (or)Tj /TT0 1 Tf -38.059 -1.2 Td (sem_trywait)Tj /T1_0 1 Tf 6.85 0 Td (function.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5908 494.2703 Tm (#include )Tj 0 -1.902 TD (int sem_trywait\(sem_t *)Tj /T1_2 1 Tf (sem)Tj /TT0 1 Tf (\);)Tj -0 -1.902 Td (int sem_wait\(sem_t *)Tj /T1_2 1 Tf (sem)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 25.251 -1.902 Td [(Both r)18(eturn: 0 if OK,)]TJ /TT1 1 Tf 9.213 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4384.25 cm 0 0 m 0 649 l 3900 649 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf -0.055 Tc 9.9988 0 0 9.9988 129.5844 424.889 Tm (Wi)Tj 0 Tc 1.236 0 Td [(th )-196(the)]TJ /TT0 1 Tf 3.188 0 Td (sem_wait)Tj /T1_0 1 Tf 5.246 0 Td [(function, )-196(we )-196(will )-196(block )-196(if )-196(the )-196(semaphor)]TJ 0.4465 Tc 18.449 0 Td (ec)Tj 0 Tc 1.369 0 Td [(ount )-196(is )-196(0.)]TJ -0.092 Tc 5.111 0 Td [(We )-381(w)]TJ 0 Tc 2.668 0 Td (on\325t)Tj -0.018 Tc -37.268 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-69(until )-69(we )-69(have )-69(successfully )-69(decr)20(emented )-68(the )-68(semaphor)]TJ 0.3185 Tc 26.513 0 Td (ec)Tj 0 Tc 1.241 0 Td [(ount )-68(or )-68(ar)]TJ 0.3185 Tc 4.512 0 Td (ei)Tj 0 Tc 1.089 0 Td [(nterr)8(upted)]TJ -34.211 -1.2 Td (by a signal.)Tj -0.092 Tc 5.503 0 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td (an use the)Tj /TT0 1 Tf 4.725 0 Td (sem_trywait)Tj /T1_0 1 Tf 6.85 0 Td [(function to avoid blocking.)-500(If the semaphor)17(e)]TJ -19.16 -1.2 Td [(count )-73(is )-73(zer)]TJ 0.3232 Tc 5.218 0 Td (ow)Tj 0 Tc 1.703 0 Td [(hen )-73(we )-73(call)]TJ /TT0 1 Tf 5.451 0 Td (sem_trywait)Tj /T1_0 1 Tf [(,)-323(it)-323(will )-73(r)18(eturn)]TJ /TT1 1 Tf 13.228 0 Td (!)Tj /T1_0 1 Tf 0.3231 Tc (1w)Tj 0 Tc 2.206 0 Td (ith)Tj /TT0 1 Tf 1.522 0 Td (errno)Tj /T1_0 1 Tf 3.323 0 Td [(set )-73(to)]TJ /TT0 1 Tf 2.747 0 Td (EAGAIN)Tj /T1_0 1 Tf -35.4 -1.2 Td (instead of blocking.)Tj 0.4774 Tc 1.8 -1.2 Td (At)Tj 0 Tc 1.581 0 Td (hir)Tj 0.4774 Tc 1.25 0 Td (da)Tj 0 Tc 1.588 0 Td [(lternative )-227(is )-227(to )-227(block )-227(for )-227(a )-227(bounded )-227(amount )-227(of )-227(time.)]TJ -0.092 Tc 25.542 0 Td [(We )-411(c)]TJ 0 Tc 2.308 0 Td [(an )-227(use )-227(the)]TJ /TT0 1 Tf -34.07 -1.2 Td (sem_timedwait)Tj /T1_0 1 Tf 8.05 0 Td (function for this purpose.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5826 336.1997 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD (int sem_timedwait\(sem_t *restrict)Tj /T1_2 1 Tf 20.4 0 Td (sem)Tj /TT0 1 Tf (,)Tj -9.6 -1.189 Td (const struct timespec *restrict)Tj /T1_2 1 Tf 19.2 0 Td (tsptr)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -3.149 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2761.25 cm 0 0 m 0 691 l 3900 691 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 262.5527 Tm (The)Tj /T1_2 1 Tf 1.954 0 Td (tsptr)Tj /T1_0 1 Tf 2.224 0 Td [(ar)18(gument )-30(speci\336es )-30(the )-30(absolute )-30(time )-30(when )-30(we )-30(want )-30(to )-30(give )-30(up )-30(waiting )-30(for )-30(the)]TJ -4.178 -1.2 Td [(semaphor)18(e. )-308(The)-307(timeout )-58(is )-58(based )-58(on )-58(the)]TJ /TT0 1 Tf 18.45 0 Td (CLOCK_REALTIME)Tj /T1_0 1 Tf 8.708 0 Td [(clock )-58(\(r)18(ecall )-58(Figur)]TJ 0.3078 Tc 7.995 0 Td (e6)Tj 0 Tc 1.287 0 Td [(.8\). )-308(If)]TJ -36.439 -1.2 Td [(the )-79(semaphor)]TJ 0.3288 Tc 6.108 0 Td (ec)Tj 0 Tc 1.252 0 Td [(an )-79(be )-79(decr)18(emented )-79(immediately)]TJ 0.3288 Tc 14.329 0 Td (,t)Tj 0 Tc 0.905 0 Td [(hen )-79(the )-79(value )-79(of )-79(the )-79(timeout )-79(doesn\325t)]TJ -22.594 -1.2 Td [(matter )167(\321 )167(even)-324(though )-74(it )-74(might )-74(specify )-74(some )-74(time )-74(in )-74(the )-74(past, )-74(the )-74(attempt )-74(to )-74(decr)20(ement)]TJ 0 -1.2 Td [(the )-14(semaphor)]TJ 0.2636 Tc 6.043 0 Td (ew)Tj 0 Tc 1.577 0 Td [(ill )-14(still )-14(succeed.)-513(If )-13(the )-13(timeout )-13(expir)18(es )-13(without )-13(being )-13(able )-13(to )-13(decr)14(ement)]TJ -7.619 -1.2 Td [(the )-438(semaphor)]TJ 0.6881 Tc 6.467 0 Td (ec)Tj 0 Tc 1.611 0 Td [(ount, )-438(then)]TJ /TT0 1 Tf 5.652 0 Td (sem_timedwait)Tj /T1_0 1 Tf 8.488 0 Td [(will )-438(r)18(eturn)]TJ /TT1 1 Tf 5.845 0 Td (!)Tj /T1_0 1 Tf 0.6882 Tc (1w)Tj 0 Tc 2.571 0 Td (ith)Tj /TT0 1 Tf 1.887 0 Td (errno)Tj /T1_0 1 Tf 3.688 0 Td [(set )-438(to)]TJ /TT0 1 Tf -36.211 -1.2 Td (ETIMEDOUT)Tj /T1_0 1 Tf (.)Tj -0.092 Tc 1.8 -1.2 Td [(To )-358(i)]TJ 0 Tc 1.782 0 Td [(ncr)18(ement )-174(the )-174(value )-174(of )-174(a )-174(semaphor)18(e, )-174(we )-174(call )-174(the)]TJ /TT0 1 Tf 22.515 0 Td (sem_post)Tj /T1_0 1 Tf 5.224 0 Td [(function. )-424(This)-423(is)]TJ -31.321 -1.2 Td [(analogous )-138(to )-138(unlocking )-138(a )-138(binary )-138(semaphor)19(e)-388(or)-388(r)18(eleasing )-138(a )-138(r)18(esour)18(ce )-138(associated )-138(with )-138(a)]TJ 0 -1.2 Td [(counting semaphor)18(e.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47569 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (582)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -1.902 TD (int sem_post\(sem_t *)Tj /T1_2 1 Tf (sem)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 26.851 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6195.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 605.9873 Tm [(If )-125(a )-125(pr)18(ocess )-125(is )-125(blocked )-125(in )-125(a )-125(call )-125(to)]TJ /TT0 1 Tf 15.804 0 Td (sem_wait)Tj /T1_1 1 Tf 5.175 0 Td (\(or)Tj /TT0 1 Tf 1.649 0 Td (sem_timedwait)Tj /T1_1 1 Tf 0.3747 Tc (\)w)Tj 0 Tc 9.342 0 Td [(hen )-125(we )-125(call)]TJ /TT0 1 Tf -33.769 -1.2 Td (sem_post)Tj /T1_1 1 Tf 0.771 Tc (,t)Tj 0 Tc 6.147 0 Td [(he )-521(pr)18(ocess )-521(is )-521(awakened )-521(and )-521(the )-521(semaphor)]TJ 0.771 Tc 21.71 0 Td (ec)Tj 0 Tc 1.694 0 Td [(ount )-521(that )-521(was )-521(just)]TJ -29.551 -1.2 Td [(incr)18(emented by)]TJ /TT0 1 Tf 7.142 0 Td (sem_post)Tj /T1_1 1 Tf 5.05 0 Td [(is decr)18(emented by)]TJ /TT0 1 Tf 8.324 0 Td (sem_wait)Tj /T1_1 1 Tf 5.05 0 Td (\(or)Tj /TT0 1 Tf 1.524 0 Td (sem_timedwait)Tj /T1_1 1 Tf (\).)Tj -25.29 -1.2 Td [(When )-54(we )-54(want )-54(to )-54(use )-54(POSIX )-54(semaphor)18(es )-54(within )-54(a )-54(single )-54(pr)19(ocess, )-54(it )-54(is )-54(easier )-54(to )-54(use)]TJ -1.8 -1.2 Td [(unnamed )-470(semaphor)18(es. )-720(This)-720(only )-470(changes )-470(the )-470(way )-470(we )-470(cr)18(eate )-470(and )-470(destr)19(oy )-470(the)]TJ 0 -1.2 Td [(semaphor)18(e. )-250(T)]TJ 0.25 Tc 6.142 0 Td (oc)Tj -0.018 Tc 1.24 0 Td (re)Tj 0 Tc 0.856 0 Td [(ate an unnamed semaphor)18(e, we call the)]TJ /TT0 1 Tf 17.724 0 Td (sem_init)Tj /T1_1 1 Tf 5.05 0 Td (function.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5826 529.2965 Tm (#include )Tj 0 -1.902 TD (int sem_init\(sem_t *)Tj /T1_2 1 Tf (sem)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 15.356 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf 0.6 Tc (,u)Tj 0 Tc 4.893 0 Td (nsigned int)Tj /T1_2 1 Tf 7.2 0 Td (value)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -2.398 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4906.25 cm 0 0 m 0 477 l 3900 477 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 477.0341 Tm (The)Tj /T1_2 1 Tf 2.31 0 Td [(pshar)18(ed)]TJ /T1_1 1 Tf 3.729 0 Td [(ar)18(gument )-386(indicates )-386(if )-386(we )-386(plan )-386(to )-386(use )-386(the )-386(semaphor)]TJ 0.6361 Tc 25.412 0 Td (ew)Tj 0 Tc 1.949 0 Td [(ith )-386(multiple)]TJ -33.4 -1.2 Td [(pr)18(ocesses. )-365(If)-365(so, )-115(we )-115(set )-115(it )-115(to )-115(a )-115(nonzer)]TJ 0.3652 Tc 17.107 0 Td (ov)Tj 0 Tc 1.476 0 Td [(alue. )-365(The)]TJ /T1_2 1 Tf 4.777 0 Td (value)Tj /T1_1 1 Tf 2.532 0 Td [(ar)18(gument )-115(speci\336es )-115(the )-115(initial)]TJ -25.892 -1.2 Td [(value of the semaphor)18(e.)]TJ 1.8 -1.2 Td [(Instead )-131(of )-131(r)18(eturning )-131(a )-131(pointer )-131(to )-131(the )-131(semaphor)]TJ 0.3814 Tc 21.37 0 Td (el)Tj 0 Tc 1.151 0 Td (ike)Tj /TT0 1 Tf 1.707 0 Td (sem_open)Tj /T1_1 1 Tf 5.181 0 Td [(does, )-131(we )-131(need )-131(to)]TJ -31.21 -1.2 Td (declar)Tj 0.2907 Tc 2.702 0 Td (eav)Tj 0 Tc 2.125 0 Td [(ariable )-41(of )-41(type)]TJ /TT0 1 Tf 6.722 0 Td (sem_t)Tj /T1_1 1 Tf 3.291 0 Td [(and )-41(pass )-41(its )-41(addr)18(ess )-41(to)]TJ /TT0 1 Tf 10.435 0 Td (sem_init)Tj /T1_1 1 Tf 5.091 0 Td [(for )-41(initialization.)-541(If)]TJ -30.366 -1.2 Td [(we )-99(plan )-99(to )-99(use )-99(the )-99(semaphor)]TJ 0.3489 Tc 13.189 0 Td (eb)Tj 0 Tc 1.381 0 Td [(etween )-99(two )-99(pr)18(ocesses, )-99(we )-99(need )-99(to )-99(ensur)]TJ 0.3489 Tc 18.227 0 Td (et)Tj 0 Tc 1.154 0 Td [(hat )-99(the)]TJ /T1_2 1 Tf 3.493 0 Td (sem)Tj /T1_1 1 Tf -37.444 -1.2 Td [(ar)18(gument points into the memory extent that is shar)18(ed between the pr)18(ocesses.)]TJ 1.8 -1.2 Td [(When )-57(we )-57(ar)]TJ 0.3072 Tc 5.447 0 Td (ed)Tj 0 Tc 1.397 0 Td [(one )-57(using )-57(the )-57(unnamed )-57(semaphor)18(e, )-57(we )-57(can )-57(discar)17(d)-307(it)-307(b)]TJ 0.3073 Tc (yc)Tj 0 Tc 26.15 0 Td [(alling )-57(the)]TJ /TT0 1 Tf -34.795 -1.2 Td (sem_destroy)Tj /T1_1 1 Tf 6.85 0 Td (function.)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.5731 364.3544 Tm (#include )Tj 0 -1.902 TD (int sem_destroy\(sem_t *)Tj /T1_2 1 Tf (sem)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 26.851 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3257.25 cm 0 0 m 0 477 l 3900 477 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9976 0 0 9.9976 129.5689 312.1051 Tm [(After )-203(calling)]TJ /TT0 1 Tf 6.173 0 Td (sem_destroy)Tj /T1_1 1 Tf [(,)-453(we)-453(c)-1(an\325t )-203(use )-203(any )-203(of )-203(the )-203(semaphor)]TJ 0.4533 Tc 23.268 0 Td (ef)Tj 0 Tc 1.265 0 Td [(unctions )-203(with)]TJ /T1_2 1 Tf 6.738 0 Td (sem)Tj /T1_1 1 Tf -37.444 -1.2 Td [(unless we r)18(einitialize it by calling)]TJ /TT0 1 Tf 14.995 0 Td (sem_init)Tj /T1_1 1 Tf 5.05 0 Td (again.)Tj -18.245 -1.2 Td [(One )-20(other )-20(function )-20(is )-20(available )-20(to )-20(allow )-20(us )-20(to )-20(r)18(etrieve )-20(the )-20(value )-20(of )-20(a )-20(semaphor)21(e. )-270(W)92(e)]TJ -1.8 -1.2 Td (call the)Tj /TT0 1 Tf 3.413 0 Td (sem_getvalue)Tj /T1_1 1 Tf 7.45 0 Td (function for this purpose.)Tj /TT0 1 Tf 8.9978 0 0 8.9978 147.5649 259.4177 Tm (#include )Tj T* (int sem_getvalue\(sem_t *restrict)Tj /T1_2 1 Tf 19.8 0 Td (sem)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.356 0 Td (nt *restrict)Tj /T1_2 1 Tf 7.8 0 Td (valp)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -4.105 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2207.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.997 0 0 9.997 129.5611 207.1778 Tm [(On )-133(success, )-133(the )-133(integer )-133(pointed )-133(to )-133(by )-133(the)]TJ /T1_2 1 Tf 19.223 0 Td (valp)Tj /T1_1 1 Tf 2.105 0 Td [(ar)18(gument )-133(will )-133(contain )-133(the )-133(value )-133(of )-133(the)]TJ -21.328 -1.2 Td [(semaphor)18(e. )-264(Be)-265(awar)18(e, )-14(however)]TJ 0.2645 Tc 14.001 0 Td (,t)Tj 0 Tc 0.841 0 Td [(hat )-14(the )-14(value )-14(of )-14(the )-14(semaphor)]TJ 0.2645 Tc 13.214 0 Td (ec)Tj 0 Tc 1.187 0 Td [(an )-14(change )-14(by )-14(the )-14(time)]TJ -29.242 -1.2 Td [(that )-152(we )-152(try )-152(to )-152(use )-152(the )-152(value )-152(we )-152(just )-152(r)16(ead. )-402(Unless)-402(we )-152(use )-152(additional )-152(synchr)17(onization)]TJ -0 -1.2 Td [(mechanisms )-426(to )-426(avoid )-426(this )-426(race, )-426(the)]TJ /TT0 1 Tf 18.013 0 Td (sem_getvalue)Tj /T1_1 1 Tf 7.876 0 Td [(function )-426(is )-426(useful )-426(only )-426(for)]TJ -25.89 -1.2 Td (debugging.)Tj 7.9976 0 0 7.9976 183.5444 139.1982 Tm (The)Tj /TT0 1 Tf 1.924 0 Td (sem_getvalue)Tj /T1_1 1 Tf 7.45 0 Td (function is not supported by Mac OS X 10.6.8.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47570 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (580)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(cr)18(eation )-151(mask )-151(\(Sections )-151(4.5 )-151(and )-151(4.8\).)-653(Note, )-151(however)]TJ 0.4015 Tc 23.932 0 Td (,t)Tj 0 Tc 0.977 0 Td [(hat )-151(only )-151(r)18(ead )-151(and )-151(write )-151(access)]TJ -24.91 -1.2 Td (matter)Tj 0.3007 Tc 2.835 0 Td (,b)Tj 0 Tc 1.104 0 Td [(ut )-51(the )-51(interfaces )-51(don\325t )-51(allow )-51(us )-51(to )-51(specify )-51(the )-51(mode )-51(when )-51(we )-51(open )-51(an )-51(existing)]TJ -3.939 -1.2 Td [(semaphor)18(e. )-250(Implementations)-250(usually open semaphor)18(es for both r)18(eading and writing.)]TJ 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 1.996 0 Td (value)Tj /T1_1 1 Tf 2.489 0 Td [(ar)18(gument )-72(is )-72(used )-72(to )-72(specify )-72(the )-72(initial )-72(value )-72(for )-72(the )-72(semaphor)]TJ 0.3216 Tc 27.804 0 Td (ew)Tj 0 Tc 1.635 0 Td [(hen )-72(we)]TJ -35.723 -1.2 Td [(cr)18(eate it.)-500(It can take on any value fr)18(om 0 to)]TJ /TT0 1 Tf 19.237 0 Td (SEM_VALUE_MAX)Tj /T1_1 1 Tf 8.05 0 Td (\(Figur)Tj 0.25 Tc 2.716 0 Td (e2)Tj 0 Tc 1.229 0 Td (.9\).)Tj -29.432 -1.2 Td [(If )-237(we )-237(want )-237(to )-237(ensur)]TJ 0.487 Tc 9.51 0 Td (et)Tj 0 Tc 1.292 0 Td [(hat )-237(we )-237(ar)]TJ 0.487 Tc 4.572 0 Td (ec)Tj -0.018 Tc 1.41 0 Td (re)Tj 0 Tc 0.856 0 Td [(ating )-237(the )-237(semaphor)18(e, )-237(we )-237(can )-237(set )-237(the)]TJ /T1_2 1 Tf 17.627 0 Td (o\337ag)Tj /T1_1 1 Tf -37.067 -1.2 Td [(ar)18(gument )-194(to)]TJ /TT0 1 Tf 6.066 0 Td (O_CREAT|O_EXCL)Tj /T1_1 1 Tf 0.6942 Tc (.T)Tj 0 Tc 9.957 0 Td [(his )-194(will )-194(cause)]TJ /TT0 1 Tf 6.787 0 Td (sem_open)Tj /T1_1 1 Tf 5.244 0 Td [(to )-194(fail )-194(if )-194(the )-194(semaphor)17(e)]TJ -28.054 -1.2 Td [(alr)18(eady exists.)]TJ -0.092 Tc 1.8 -1.2 Td [(To )-528(p)]TJ -0.018 Tc 2.262 0 Td (ro)Tj 0 Tc 0.923 0 Td [(mote )-344(portability)111(,)-594(we)-594(m)1(ust )-344(follow )-344(certain )-344(conventions )-344(when )-344(selecting )-344(a)]TJ -4.985 -1.2 Td (semaphor)Tj 0.25 Tc 4.392 0 Td (en)Tj 0 Tc 1.311 0 Td (ame.)Tj 0.883 Tc -3.903 -1.8 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-220(\336rst )-220(character )-220(in )-220(the )-220(name )-220(should )-220(be )-220(a )-220(slash )-220(\(/\).)-724(Although )-220(ther)18(e)-470(is)-470(n)-1(o)]TJ -0.018 Tc -0.613 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quir)18(ement )-77(that )-77(an )-77(implementation )-77(of )-77(POSIX )-77(semaphor)18(es )-77(uses )-77(the )-77(\336le )-77(system,)]TJ -0.856 -1.2 Td [(if )-127(the )-127(\336le )-127(system)]TJ /T1_2 1 Tf 7.988 0 Td (is)Tj /T1_1 1 Tf 1.044 0 Td [(used, )-127(we )-127(want )-127(to )-127(r)16(emove )-128(any )-128(ambiguity )-128(as )-128(to )-128(the )-128(starting)]TJ -9.032 -1.2 Td [(point fr)18(om which the name is interpr)18(eted.)]TJ 0.883 Tc -1.489 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-254(name )-254(should )-254(contain )-254(no )-254(other )-254(slashes )-254(to )-254(avoid )-254(implementation-de\336ned)]TJ -0.613 -1.2 Td (behavior)Tj 0.8141 Tc 3.837 0 Td (.F)Tj 0 Tc 1.62 0 Td [(or )-314(example, )-314(if )-314(the )-314(\336le )-314(system )-314(is )-314(used, )-314(the )-314(names)]TJ /TT0 1 Tf 24.397 0 Td (/mysem)Tj /T1_1 1 Tf 4.164 0 Td (and)Tj /TT0 1 Tf -34.018 -1.2 Td (//mysem)Tj /T1_1 1 Tf 4.772 0 Td [(would )-322(evaluate )-322(to )-322(the )-322(same )-322(\336lename, )-322(but )-322(if )-322(the )-322(implementation)]TJ -4.772 -1.2 Td [(doesn\325t )-15(use )-15(the )-15(\336le )-15(system, )-15(the )-15(two )-15(names )-15(could )-15(be )-15(tr)17(eated )-15(as )-15(dif)18(fer)18(ent )-15(\(consider)]TJ -0 -1.2 Td [(what )-55(would )-55(happen )-55(if )-55(the )-55(implementation )-55(hashed )-55(the )-55(name )-55(to )-55(an )-55(integer )-55(value)]TJ 0 -1.2 TD [(used to identify the semaphor)18(e\).)]TJ 0.883 Tc -1.489 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-126(maximum )-126(length )-126(of )-126(the )-126(semaphor)]TJ 0.3765 Tc 16.977 0 Td (en)Tj 0 Tc 1.437 0 Td [(ame )-126(is )-126(implementation )-126(de\336ned.)-628(The)]TJ -19.027 -1.2 Td [(name )-272(should )-272(be )-272(no )-272(longer )-272(than)]TJ /TT0 1 Tf 15.63 0 Td (_POSIX_NAME_MAX)Tj /T1_1 1 Tf 9.521 0 Td (\(Figur)Tj 0.5215 Tc 2.716 0 Td (e2)Tj 0 Tc 1.501 0 Td [(.8\) )-271(characters,)]TJ -29.367 -1.2 Td [(because )-4(this )-4(is )-4(the )-4(minimum )-4(acceptable )-4(limit )-4(to )-4(the )-4(maximum )-4(name )-4(length )-4(if )-4(the)]TJ T* (implementation does use the \336le system.)Tj -1.489 -1.8 Td (The)Tj /TT0 1 Tf 2.134 0 Td (sem_open)Tj /T1_1 1 Tf 5.26 0 Td [(function )-210(r)18(eturns )-210(a )-210(semaphor)]TJ 0.46 Tc 13.165 0 Td (ep)Tj 0 Tc 1.54 0 Td [(ointer )-210(that )-210(we )-210(can )-210(pass )-210(to )-210(other)]TJ -23.899 -1.2 Td (semaphor)Tj 0.3347 Tc 4.392 0 Td (ef)Tj 0 Tc 1.147 0 Td [(unctions )-85(when )-85(we )-85(want )-85(to )-85(operate )-85(on )-85(the )-85(semaphor)20(e. )-335(When)-335(we )-85(ar)]TJ 0.3348 Tc 30.43 0 Td (ed)Tj 0 Tc 1.425 0 Td (one)Tj -37.393 -1.2 Td [(with )-242(the )-242(semaphor)18(e, )-242(we )-242(can )-242(call )-242(the)]TJ /TT0 1 Tf 17.74 0 Td (sem_close)Tj /T1_1 1 Tf 5.892 0 Td [(function )-242(to )-242(r)18(elease )-242(any )-242(r)17(esour)18(ces)]TJ -23.632 -1.2 Td [(associated with the semaphor)18(e.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5924 308.2815 Tm (#include )Tj 0 -1.902 TD (int sem_close\(sem_t *)Tj /T1_2 1 Tf (sem)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 26.851 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2695.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 256.0293 Tm [(If )-8(our )-8(pr)18(ocess )-8(exits )-8(without )-8(having )-8(\336rst )-8(called)]TJ /TT0 1 Tf 20.561 0 Td (sem_close)Tj /T1_1 1 Tf 0.2582 Tc (,t)Tj 0 Tc 6.234 0 Td [(he )-8(kernel )-8(will )-8(close )-8(any)]TJ -28.595 -1.2 Td [(open )-24(semaphor)18(es )-24(automatically)]TJ 0.5242 Tc 13.997 0 Td (.N)Tj 0 Tc 1.605 0 Td [(ote )-24(that )-24(this )-24(doesn\325t )-24(af)17(fect )-24(the )-24(state )-24(of )-24(the )-24(semaphor)18(e)]TJ -15.603 -1.2 Td [(value )167(\321 )167(if)-485(we )-234(have )-234(incr)18(emented )-234(its )-234(value, )-234(this )-234(doesn\325t )-234(change )-234(just )-234(because )-234(we )-234(exit.)]TJ 0 -1.2 TD [(Similarly)111(,)-564(if)-564(we)-564(call)]TJ /TT0 1 Tf 9.881 0 Td (sem_close)Tj /T1_1 1 Tf 0.5641 Tc (,t)Tj 0 Tc 6.54 0 Td [(he )-314(semaphor)]TJ 0.5641 Tc 6.017 0 Td (ev)Tj 0 Tc 1.608 0 Td [(alue )-314(is )-314(unaf)18(fected. )-564(Ther)18(e)-564(is)-564(no)]TJ -24.047 -1.2 Td (mechanism equivalent to the)Tj /TT0 1 Tf 13.003 0 Td (SEM_UNDO)Tj /T1_1 1 Tf 5.05 0 Td [(\337ag found with XSI semaphor)18(es.)]TJ -0.092 Tc -16.253 -1.2 Td [(To )-184(d)]TJ 0 Tc 1.928 0 Td [(estr)18(oy a named semaphor)18(e, we can use the)]TJ /TT0 1 Tf 19.116 0 Td (sem_unlink)Tj /T1_1 1 Tf 6.25 0 Td (function.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5826 179.3385 Tm (#include )Tj 0 -1.902 TD (int sem_unlink\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 26.851 -1.902 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1406.25 cm 0 0 m 0 477 l 3900 477 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47571 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.8)]TJ 38.437 0 Td [(Semaphor)18(es)]TJ /T1_1 1 Tf 7.396 0 Td (569)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 136.7918 664.2601 Tm (struct sembuf {)Tj 1.2 -1.189 Td [(unsigned short)-1200(sem_num; )-600(/*)-600(member # in set \(0, 1, ..., nsems-1\) */)]TJ 0 -1.189 TD (short )Tj 9.6 0 Td [(sem_op;)-1800(/* operation \(negative, 0, or positive\) */)]TJ -9.6 -1.189 Td (short )Tj 9.6 0 Td [(sem_flg;)-1200(/* IPC_NOWAIT, SEM_UNDO */)]TJ -10.8 -1.189 Td (};)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 602.394 Tm (The)Tj /T1_2 1 Tf 1.924 0 Td (nops)Tj /T1_0 1 Tf 2.139 0 Td [(ar)18(gument speci\336es the number of operations \(elements\) in the array)111(.)]TJ -2.263 -1.2 Td [(The )-41(operation )-41(on )-41(each )-41(member )-41(of )-41(the )-41(set )-41(is )-41(speci\336ed )-41(by )-41(the )-41(corr)19(esponding)]TJ /TT0 1 Tf 33.601 0 Td (sem_op)Tj /T1_0 1 Tf -35.401 -1.2 Td [(value. )-303(This)-302(value )-53(can )-53(be )-53(negative, )-53(0, )-53(or )-53(positive.)-553(\(In )-53(the )-53(following )-53(discussion, )-53(we )-53(r)20(efer)]TJ 0 -1.2 TD [(to )-87(the )-87(\324)36(\324undo\325)]TJ 0.3374 Tc 6.036 0 Td (\325\337)Tj 0 Tc 1.223 0 Td [(ag )-87(for )-87(a )-87(semaphor)17(e. )-337(This)-338(\337ag )-87(corr)18(esponds )-87(to )-87(the)]TJ /TT0 1 Tf 22.499 0 Td (SEM_UNDO)Tj /T1_0 1 Tf 5.137 0 Td [(bit )-87(in )-87(the)]TJ -34.896 -1.2 Td [(corr)18(esponding)]TJ /TT0 1 Tf 6.684 0 Td (sem_flg)Tj /T1_0 1 Tf 4.45 0 Td [(member)74(.\))]TJ -9.334 -1.8 Td [(1. )-633(The)-512(easiest )-262(case )-262(is )-262(when)]TJ /TT0 1 Tf 13.831 0 Td (sem_op)Tj /T1_0 1 Tf 4.112 0 Td [(is )-262(positive.)-763(This )-262(case )-262(corr)18(esponds )-262(to )-262(the)]TJ -0.018 Tc -16.31 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turning )-187(of )-187(r)19(esour)18(ces )-187(by )-187(the )-187(pr)19(ocess. )-437(The)-436(value )-187(of)]TJ /TT0 1 Tf 23.579 0 Td (sem_op)Tj /T1_0 1 Tf 4.037 0 Td [(is )-187(added )-187(to )-187(the)]TJ -28.471 -1.2 Td [(semaphor)18(e\325s )-18(value.)-518(If )-18(the )-18(undo )-18(\337ag )-18(is )-18(speci\336ed,)]TJ /TT0 1 Tf 21.618 0 Td (sem_op)Tj /T1_0 1 Tf 3.868 0 Td [(is )-18(also )-18(subtracted )-18(fr)17(om)]TJ -25.487 -1.2 Td [(the semaphor)18(e\325s adjustment value for this pr)18(ocess.)]TJ -1.633 -1.6 Td [(2. )-633(If)]TJ /TT0 1 Tf 2.586 0 Td (sem_op)Tj /T1_0 1 Tf 3.883 0 Td [(is )-33(negative, )-33(we )-33(want )-33(to )-33(obtain )-33(r)17(esour)18(ces )-33(that )-33(the )-33(semaphor)]TJ 0.2831 Tc 26.182 0 Td (ec)Tj 0 Tc 1.206 0 Td [(ontr)18(ols.)]TJ -32.225 -1.8 Td [(If )-289(the )-289(semaphor)18(e\325s )-289(value )-289(is )-289(gr)18(eater )-289(than )-289(or )-289(equal )-289(to )-289(the )-289(absolute )-289(value )-289(of)]TJ /TT0 1 Tf T* (sem_op)Tj /T1_0 1 Tf 3.853 0 Td [(\(the )-3(r)18(esour)18(ces )-3(ar)]TJ 0.253 Tc 7.256 0 Td (ea)Tj 0 Tc 1.232 0 Td [(vailable\), )-3(the )-3(absolute )-3(value )-3(of)]TJ /TT0 1 Tf 13.744 0 Td (sem_op)Tj /T1_0 1 Tf 3.853 0 Td [(is )-3(subtracted)]TJ -29.938 -1.2 Td [(fr)18(om )-94(the )-94(semaphor)18(e\325s )-94(value.)-594(This )-94(guarantees )-94(the )-94(r)18(esulting )-94(semaphor)]TJ 0.3436 Tc 31.248 0 Td (ev)Tj 0 Tc 1.388 0 Td [(alue )-94(is)]TJ -32.635 -1.2 Td [(gr)18(eater )-139(than )-139(or )-139(equal )-139(to )-139(0.)-638(If )-139(the )-139(undo )-139(\337ag )-139(is )-139(speci\336ed, )-139(the )-139(absolute )-139(value )-139(of)]TJ /TT0 1 Tf T* (sem_op)Tj /T1_0 1 Tf 3.85 0 Td [(is also added to the semaphor)18(e\325s adjustment value for this pr)18(ocess.)]TJ -3.85 -1.8 Td [(If )-2(the )-2(semaphor)18(e\325s )-2(value )-2(is )-2(less )-2(than )-2(the )-2(absolute )-2(value )-2(of)]TJ /TT0 1 Tf 25.59 0 Td (sem_op)Tj /T1_0 1 Tf 3.852 0 Td [(\(the )-2(r)18(esour)18(ces)]TJ -29.442 -1.2 Td (ar)Tj 0.25 Tc 0.877 0 Td (en)Tj 0 Tc 1.311 0 Td [(ot available\), the following conditions apply)111(.)]TJ -2.188 -1.6 Td [(a. )-633(If)]TJ /TT0 1 Tf 2.553 0 Td (IPC_NOWAIT)Tj /T1_0 1 Tf 6.25 0 Td (is speci\336ed,)Tj /TT0 1 Tf 5.399 0 Td (semop)Tj /T1_0 1 Tf -0.018 Tc 3.25 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns with an err)18(or of)]TJ /TT0 1 Tf 9.766 0 Td (EAGAIN)Tj /T1_0 1 Tf (.)Tj -28.074 -1.6 Td [(b. )-580(If)]TJ /TT0 1 Tf 2.703 0 Td (IPC_NOWAIT)Tj /T1_0 1 Tf 6.4 0 Td [(is )-150(not )-150(speci\336ed, )-150(the)]TJ /TT0 1 Tf 9.341 0 Td (semncnt)Tj /T1_0 1 Tf 4.6 0 Td [(value )-150(for )-150(this )-150(semaphor)]TJ 0.4002 Tc 10.928 0 Td (ei)Tj 0 Tc 1.17 0 Td (s)Tj -33.51 -1.2 Td [(incr)18(emented )-41(\(since )-41(the )-41(caller )-41(is )-41(about )-41(to )-41(go )-41(to )-41(sleep\), )-41(and )-41(the )-41(calling )-41(pr)15(ocess)]TJ -0 -1.2 Td (is suspended until one of the following occurs.)Tj 0 -1.6 TD [(i. )-1215(The)-398(semaphor)18(e\325s )-148(value )-148(becomes )-148(gr)18(eater )-148(than )-148(or )-148(equal )-148(to )-148(the )-148(absolute)]TJ 2.006 -1.2 Td [(value )-49(of)]TJ /TT0 1 Tf 3.915 0 Td (sem_op)Tj /T1_0 1 Tf 3.899 0 Td [(\(i.e., )-49(some )-49(other )-49(pr)18(ocess )-49(has )-49(r)18(eleased )-49(some )-49(r)19(esour)18(ces\).)]TJ -7.814 -1.2 Td [(The )-206(value )-206(of)]TJ /TT0 1 Tf 6.36 0 Td (semncnt)Tj /T1_0 1 Tf 4.656 0 Td [(for )-206(this )-206(semaphor)17(e)-456(is)-456(d)-1(ecr)18(emented )-206(\(since )-206(the)]TJ -11.017 -1.2 Td [(calling )-145(pr)18(ocess )-145(is )-145(done )-145(waiting\), )-145(and )-145(the )-145(absolute )-145(value )-145(of)]TJ /TT0 1 Tf 27.218 0 Td (sem_op)Tj /T1_0 1 Tf 3.995 0 Td (is)Tj -31.213 -1.2 Td [(subtracted )-12(fr)18(om )-12(the )-12(semaphor)18(e\325s )-12(value.)-512(If )-12(the )-12(undo )-12(\337ag )-12(is )-12(speci\336ed, )-12(the)]TJ 0 -1.2 TD [(absolute )-70(value )-70(of)]TJ /TT0 1 Tf 7.999 0 Td (sem_op)Tj /T1_0 1 Tf 3.92 0 Td [(is )-70(also )-70(added )-70(to )-70(the )-70(semaphor)18(e\325s )-70(adjustment)]TJ -11.919 -1.2 Td [(value for this pr)18(ocess.)]TJ -2.006 -1.6 Td [(ii. )-924(The)-352(semaphor)18(e)-352(is)-352(r)17(emoved )-102(fr)18(om )-102(the )-102(system.)-604(In )-102(this )-102(case, )-102(the )-102(function)]TJ -0.018 Tc 2.006 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns an err)18(or of)]TJ /TT0 1 Tf 7.483 0 Td (EIDRM)Tj /T1_0 1 Tf (.)Tj -10.345 -1.6 Td [(iii. )-633(A)-257(signal )-7(is )-7(caught )-7(by )-7(the )-7(pr)16(ocess, )-7(and )-7(the )-7(signal )-7(handler )-7(r)16(eturns. )-257(In)-258(this)]TJ 2.006 -1.2 Td (case, the value of)Tj /TT0 1 Tf 7.803 0 Td (semncnt)Tj /T1_0 1 Tf 4.45 0 Td [(for this semaphor)17(e)-250(is)-250(d)-1(ecr)18(emented \(since the)]TJ -12.253 -1.2 Td [(calling )-93(pr)18(ocess )-93(is )-93(no )-93(longer )-93(waiting\), )-93(and )-93(the )-93(function )-93(r)18(eturns )-93(an )-93(err)15(or)]TJ 0 -1.2 Td (of)Tj /TT0 1 Tf 1.129 0 Td (EINTR)Tj /T1_0 1 Tf (.)Tj -6.401 -1.6 Td [(3. )-633(If)]TJ /TT0 1 Tf 2.803 0 Td (sem_op)Tj /T1_0 1 Tf 4.1 0 Td [(is )-250(0, )-250(this )-250(means )-250(that )-250(the )-250(calling )-250(pr)17(ocess )-250(wants )-250(to )-250(wait )-250(until )-250(the)]TJ -5.27 -1.2 Td [(semaphor)18(e\325s value becomes 0.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47572 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (982)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (SA_RESETHAND)Tj /T1_1 1 Tf 7.617 0 Td [(constant, )-250(351,)-250(354)]TJ /TT0 1 Tf -7.617 -1.25 Td (SA_RESTART)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(329,)-250(351, 354, 508)]TJ 12.063 0.09 Td (\320)Tj 0.583 -0.09 Td (509)Tj /TT0 1 Tf -19.063 -1.25 Td (SA_SIGINFO)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(336,)-250(350)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (353, 376, 512)Tj -15.063 -1.25 Td (saved)Tj 1.35 -1.25 Td [(set-gr)18(oup-ID, )-250(56,)-250(98, 257)]TJ 0 -1.25 Td [(set-user)18(-ID, )-250(56,)-250(98, 256)]TJ 10.222 0.09 Td (\320)Tj 0.583 -0.09 Td (260, 288, 337)Tj /TT0 1 Tf -12.156 -1.25 Td (S_BANDURG)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(510)]TJ /TT0 1 Tf -5.817 -1.25 Td (sbrk)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(21)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (23, 208, 221)Tj /TT0 1 Tf -8.94 -1.25 Td (_SC_AIO_MAX)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(516)]TJ /TT0 1 Tf -7.017 -1.25 Td (_SC_AIO_PRIO_DELTA_MAX)Tj /T1_1 1 Tf 13.617 0 Td [(constant, )-250(516)]TJ -13.617 -1.25 Td [(scaling, fr)18(equency)]TJ 0.5 Tc 7.89 0 Td (,7)Tj 0 Tc 1.25 0 Td (85)Tj /TT0 1 Tf -9.14 -1.25 Td (scan_configfile)Tj /T1_1 1 Tf 9.417 0 Td [(function, )-250(803)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (804)Tj -14.69 -1.25 Td [(de\336nition of,)-500(803)]TJ /TT0 1 Tf -1.35 -1.25 Td (scandir)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -4.617 -1.25 Td (scanf)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(150,)-250(162)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (163, 452)Tj -10.69 -1.25 Td [(de\336nition of,)-500(162)]TJ /TT0 1 Tf -1.35 -1.25 Td (_SC_ARG_MAX)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(43,)-250(47)]TJ /TT0 1 Tf -7.017 -1.25 Td (_SC_ASYNCHRONOUS_IO)Tj /T1_1 1 Tf 11.817 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -11.817 -1.25 Td (_SC_ATEXIT_MAX)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(43)]TJ -8.817 -1.25 Td [(scatter r)18(ead, )-250(521,)-250(644)]TJ /TT0 1 Tf 0 -1.25 TD (_SC_BARRIERS)Tj /T1_1 1 Tf 7.617 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -7.617 -1.25 Td (_SC_CHILD_MAX)Tj /T1_1 1 Tf 8.217 0 Td [(constant, )-250(43,)-250(221)]TJ /TT0 1 Tf -8.217 -1.25 Td (_SC_CLK_TCK)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(42)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (43, 280)Tj 3.083 0.09 Td (\320)Tj 0.583 -0.09 Td (281)Tj /TT0 1 Tf -16.83 -1.25 Td (_SC_CLOCK_SELECTION)Tj /T1_1 1 Tf 11.817 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -11.817 -1.25 Td (_SC_COLL_WEIGHTS_MAX)Tj /T1_1 1 Tf 12.417 0 Td [(constant, )-250(43)]TJ /TT0 1 Tf -12.417 -1.25 Td (_SC_DELAYTIMER_MAX)Tj /T1_1 1 Tf 11.217 0 Td [(constant, )-250(43)]TJ /TT0 1 Tf -11.217 -1.25 Td (SCHAR_MAX)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(37)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (38)Tj /TT0 1 Tf -11.963 -1.25 Td (SCHAR_MIN)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(37)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (38)Tj /TT0 1 Tf -11.963 -1.25 Td ()Tj /T1_1 1 Tf 5.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj -10.039 -1.25 Td [(scheduling, pr)18(ocess, )-250(276)]TJ 10.991 0.09 Td (\320)Tj 0.583 -0.09 Td (280)Tj /TT0 1 Tf -11.575 -1.25 Td (_SC_HOST_NAME_MAX)Tj /T1_1 1 Tf 10.617 0 Td [(constant, )-250(43,)-250(616, 618, 623,)]TJ -7.917 -1.25 Td (815)Tj -2.7 -1.25 Td [(Schwartz, A.,)-500(181, 250, 298, 949)]TJ /TT0 1 Tf T* (_SC_IO_LISTIO_MAX)Tj /T1_1 1 Tf 10.617 0 Td [(constant, )-250(516)]TJ /TT0 1 Tf -10.617 -1.25 Td (_SC_IOV_MAX)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(43)]TJ /TT0 1 Tf -7.017 -1.25 Td (_SC_JOB_CONTROL)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(54,)-250(57)]TJ /TT0 1 Tf -9.417 -1.25 Td (_SC_LINE_MAX)Tj /T1_1 1 Tf 7.617 0 Td [(constant, )-250(43)]TJ /TT0 1 Tf -7.617 -1.25 Td (_SC_LOGIN_NAME_MAX)Tj /T1_1 1 Tf 11.217 0 Td [(constant, )-250(43)]TJ /TT0 1 Tf -11.217 -1.25 Td (_SC_MAPPED_FILES)Tj /T1_1 1 Tf 10.017 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -10.017 -1.25 Td (SCM_CREDENTIALS)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(649)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (652)Tj /TT0 1 Tf -16.063 -1.25 Td (SCM_CREDS)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(649)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (650, 652)Tj /TT0 1 Tf -12.463 -1.25 Td (SCM_CREDTYPE)Tj /T1_1 1 Tf 7.617 0 Td [(constant, )-250(650,)-250(652)]TJ /TT0 1 Tf -7.617 -1.25 Td (_SC_MEMORY_PROTECTION)Tj /T1_1 1 Tf 13.017 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -13.017 -1.25 Td (SCM_RIGHTS)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(645)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (646, 650, 652)Tj /TT0 1 Tf -13.063 -1.25 Td (_SC_NGROUPS_MAX)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(43)]TJ /TT0 1 Tf -9.417 -1.25 Td (_SC_NZERO)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(276)]TJ -5.817 -1.25 Td [(SCO \(Santa Cr)8(uz Operation\),)-500(35)]TJ /TT0 1 Tf T* (_SC_OPEN_MAX)Tj /T1_1 1 Tf 7.617 0 Td [(constant, )-250(43,)-250(52, 221, 907)]TJ /TT0 1 Tf -7.617 -1.25 Td (_SC_PAGESIZE)Tj /T1_1 1 Tf 7.617 0 Td [(constant, )-250(43,)-250(527)]TJ /TT0 1 Tf -7.617 -1.25 Td (_SC_PAGE_SIZE)Tj /T1_1 1 Tf 8.217 0 Td [(constant, )-250(43,)-250(527)]TJ /TT0 1 Tf -8.217 -1.25 Td (_SC_READER_WRITER_LOCKS)Tj /T1_1 1 Tf 14.217 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -14.217 -1.25 Td (_SC_REALTIME_SIGNALS)Tj /T1_1 1 Tf 12.417 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -12.417 -1.25 Td (_SC_RE_DUP_MAX)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(43)]TJ /TT0 1 Tf 17.183 65 Td (script)Tj /T1_1 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(715,)-250(719)]TJ 8.191 0.09 Td (\320)Tj 0.583 -0.09 Td (720, 734, 736)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (737,)Tj -16.258 -1.25 Td (741)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (742)Tj /TT0 1 Tf -4.867 -1.25 Td (_SC_RTSIG_MAX)Tj /T1_1 1 Tf 8.217 0 Td [(constant, )-250(43)]TJ /TT0 1 Tf -8.217 -1.25 Td (_SC_SAVED_IDS)Tj /T1_1 1 Tf 8.217 0 Td [(constant, )-250(54,)-250(57, 98, 256)]TJ /TT0 1 Tf -8.217 -1.25 Td (_SC_SEMAPHORES)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -8.817 -1.25 Td (_SC_SEM_NSEMS_MAX)Tj /T1_1 1 Tf 10.617 0 Td [(constant, )-250(43)]TJ /TT0 1 Tf -10.617 -1.25 Td (_SC_SEM_VALUE_MAX)Tj /T1_1 1 Tf 10.617 0 Td [(constant, )-250(43)]TJ /TT0 1 Tf -10.617 -1.25 Td (_SC_SHELL)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -5.817 -1.25 Td (_SC_SIGQUEUE_MAX)Tj /T1_1 1 Tf 10.017 0 Td [(constant, )-250(43)]TJ /TT0 1 Tf -10.017 -1.25 Td (_SC_SPIN_LOCKS)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -8.817 -1.25 Td (_SC_STREAM_MAX)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(43)]TJ /TT0 1 Tf -8.817 -1.25 Td (_SC_SYMLOOP_MAX)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(43)]TJ /TT0 1 Tf -9.417 -1.25 Td (_SC_THREAD_ATTR_STACKADDR)Tj /T1_1 1 Tf 15.417 0 Td [(constant, )-250(429)]TJ /TT0 1 Tf -15.417 -1.25 Td (_SC_THREAD_ATTR_STACKSIZE)Tj /T1_1 1 Tf 15.417 0 Td [(constant, )-250(429)]TJ /TT0 1 Tf -15.417 -1.25 Td (_SC_THREAD_DESTRUCTOR_ITERATIONS)Tj /T1_1 1 Tf 2.7 -1.25 Td [(constant, )-250(426)]TJ /TT0 1 Tf -2.7 -1.25 Td (_SC_THREAD_KEYS_MAX)Tj /T1_1 1 Tf 11.817 0 Td [(constant, )-250(426)]TJ /TT0 1 Tf -11.817 -1.25 Td (_SC_THREAD_PROCESS_SHARED)Tj /T1_1 1 Tf 15.417 0 Td [(constant, )-250(431)]TJ /TT0 1 Tf -15.417 -1.25 Td (_SC_THREADS)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(57,)-250(384)]TJ /TT0 1 Tf -7.017 -1.25 Td (_SC_THREAD_SAFE_FUNCTIONS)Tj /T1_1 1 Tf 15.417 0 Td [(constant, )-250(57,)]TJ -12.717 -1.25 Td (442)Tj /TT0 1 Tf -2.7 -1.25 Td (_SC_THREAD_STACK_MIN)Tj /T1_1 1 Tf 12.417 0 Td [(constant, )-250(426)]TJ /TT0 1 Tf -12.417 -1.25 Td (_SC_THREAD_THREADS_MAX)Tj /T1_1 1 Tf 13.617 0 Td [(constant, )-250(426)]TJ /TT0 1 Tf -13.617 -1.25 Td (_SC_TIMER_MAX)Tj /T1_1 1 Tf 8.217 0 Td [(constant, )-250(43)]TJ /TT0 1 Tf -8.217 -1.25 Td (_SC_TIMERS)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -6.417 -1.25 Td (_SC_TTY_NAME_MAX)Tj /T1_1 1 Tf 10.017 0 Td [(constant, )-250(43)]TJ /TT0 1 Tf -10.017 -1.25 Td (_SC_TZNAME_MAX)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(43)]TJ /TT0 1 Tf -8.817 -1.25 Td (_SC_V7_ILP32_OFF32)Tj /T1_1 1 Tf 11.217 0 Td [(constant, )-250(70)]TJ /TT0 1 Tf -11.217 -1.25 Td (_SC_V7_ILP32_OFFBIG)Tj /T1_1 1 Tf 11.817 0 Td [(constant, )-250(70)]TJ /TT0 1 Tf -11.817 -1.25 Td (_SC_V7_LP64_OFF64)Tj /T1_1 1 Tf 10.617 0 Td [(constant, )-250(70)]TJ /TT0 1 Tf -10.617 -1.25 Td (_SC_V7_LP64_OFFBIG)Tj /T1_1 1 Tf 11.217 0 Td [(constant, )-250(70)]TJ /TT0 1 Tf -11.217 -1.25 Td (_SC_VERSION)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(50,)-250(54, 57)]TJ /TT0 1 Tf -7.017 -1.25 Td (_SC_XOPEN_CRYPT)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -9.417 -1.25 Td (_SC_XOPEN_REALTIME)Tj /T1_1 1 Tf 11.217 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -11.217 -1.25 Td (_SC_XOPEN_REALTIME_THREADS)Tj /T1_1 1 Tf 16.017 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -16.017 -1.25 Td (_SC_XOPEN_SHM)Tj /T1_1 1 Tf 8.217 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -8.217 -1.25 Td (_SC_XOPEN_VERSION)Tj /T1_1 1 Tf 10.617 0 Td [(constant, )-250(50,)-250(54, 57)]TJ /TT0 1 Tf -10.617 -1.25 Td ()Tj /T1_1 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (0)Tj /TT0 1 Tf -10.639 -1.25 Td (sed)Tj /T1_1 1 Tf 2.217 0 Td [(pr)18(ogram, )-250(950)]TJ -2.217 -1.25 Td [(Seebass, S.,)-500(951)]TJ /TT0 1 Tf T* (seek)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(67)]TJ /TT0 1 Tf -2.817 -1.25 Td (SEEK_CUR)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(67,)-250(158, 486, 494)]TJ 11.563 0.09 Td (\320)Tj 0.583 -0.09 Td (495, 766)Tj /TT0 1 Tf -17.363 -1.25 Td (seekdir)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(130)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (135, 452)Tj -9.89 -1.25 Td [(de\336nition of,)-500(130)]TJ /TT0 1 Tf -1.35 -1.25 Td (SEEK_END)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(67,)-250(158, 486, 494)]TJ 11.563 0.09 Td (\320)Tj 0.583 -0.09 Td (495,)Tj -14.663 -1.25 Td (771)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (773, 781)Tj /TT0 1 Tf -4.866 -1.25 Td (SEEK_SET)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(67,)-250(158, 172, 486, 494)]TJ 13.563 0.09 Td (\320)Tj 0.583 -0.09 Td (495,)Tj -16.663 -1.25 Td (498, 759, 762)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (763, 765)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (766, 768)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (773,)Tj -14.5 -1.25 Td (775)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (780, 818)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (819, 930)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (931)Tj /TT0 1 Tf -13.2 -1.25 Td (SEGV_ACCERR)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -7.017 -1.25 Td (SEGV_MAPERR)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -7.017 -1.25 Td (select)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(330)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (331, 343, 451, 481, 501)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (509,)Tj -18.107 -1.25 Td (531)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (532, 560, 586, 588, 592, 608)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (609,)Tj -14.333 -1.25 Td (626)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (627, 631)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (632, 659, 664)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (666, 668, 718,)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47573 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.2)]TJ 33.344 0 Td [(UNIX )-250(Domain )-250(Sockets)]TJ /T1_1 1 Tf 12.489 0 Td (631)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(Example )195(\321 )195(P)39(olling XSI Messa)]TJ 0.01 Tc 13.789 0 Td [(ge )20(Q)]TJ 0 Tc 2.233 0 Td [(ueues with the Help of UNIX Domain Soc)20(kets)]TJ /T1_0 1 Tf -12.422 -2.4 Td [(In )-19(Section )-19(15.6.4, )-19(we )-19(said )-19(one )-19(of )-19(the )-19(pr)18(oblems )-19(with )-19(using )-19(XSI )-19(message )-19(queues )-19(is )-19(that )-19(we)]TJ 0 -1.2 TD [(can\325t )-412(use)]TJ /TT1 1 Tf 4.961 0 Td (poll)Tj /T1_0 1 Tf 3.063 0 Td (or)Tj /TT1 1 Tf 1.604 0 Td (select)Tj /T1_0 1 Tf 4.262 0 Td [(with )-412(them, )-412(because )-412(they )-412(ar)18(en\325t )-412(associated )-412(with )-412(\336le)]TJ -13.89 -1.2 Td [(descriptors. )-284(However)]TJ 0.284 Tc 9.776 0 Td (,s)Tj 0 Tc 0.958 0 Td (ockets)Tj /T1_2 1 Tf 3.059 0 Td [(ar)18(e)]TJ /T1_0 1 Tf 1.488 0 Td [(associated )-34(with )-34(\336le )-34(descriptors, )-34(and )-34(we )-34(can )-34(use )-34(them)]TJ -15.281 -1.2 Td [(to )-202(notify )-202(us )-202(when )-202(messages )-202(arrive.)]TJ -0.092 Tc 17.018 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-202(use )-202(one )-202(thr)18(ead )-202(per )-202(message )-202(queue.)-704(Each)]TJ -18.405 -1.2 Td [(thr)18(ead )-66(will )-66(block )-66(in )-66(a )-66(call )-66(to)]TJ /TT1 1 Tf 12.956 0 Td (msgrcv)Tj /T1_0 1 Tf 0.5662 Tc (.W)Tj 0 Tc 5.416 0 Td [(hen )-66(a )-66(message )-66(arrives, )-66(the )-66(thr)17(ead )-66(will )-66(write )-66(it)]TJ -18.373 -1.2 Td [(down )-53(one )-53(end )-53(of )-53(a )-53(UNIX )-53(domain )-53(socket.)-553(Our )-53(application )-53(will )-53(use )-53(the )-53(other )-53(end )-53(of )-53(the)]TJ T* [(socket to r)18(eceive the message when)]TJ /TT1 1 Tf 15.87 0 Td (poll)Tj /T1_0 1 Tf 2.65 0 Td [(indicates data can be r)18(ead fr)18(om the socket.)]TJ -16.72 -1.2 Td [(The )-14(pr)18(ogram )-14(in )-14(Figur)]TJ 0.2639 Tc 9.58 0 Td (e1)Tj 0 Tc 1.243 0 Td [(7.3 )-14(illustrates )-14(this )-14(technique.)-514(The)]TJ /TT1 1 Tf 15.062 0 Td (main)Tj /T1_0 1 Tf 2.664 0 Td [(function )-14(cr)18(eates )-14(the)]TJ -30.349 -1.2 Td [(message )-34(queues )-34(and )-34(UNIX )-34(domain )-34(sockets )-34(and )-34(starts )-34(one )-34(thr)19(ead )-34(to )-34(service )-34(each )-34(queue.)]TJ T* [(Then )-19(it )-19(uses )-19(an )-19(in\336nite )-19(loop )-19(to )-19(poll )-19(one )-19(end )-19(of )-19(the )-19(sockets.)-519(When )-19(a )-19(socket )-19(is )-19(r)20(eadable, )-19(it)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(ads fr)18(om the socket and writes the message on the standar)]TJ 0.25 Tc 25.745 0 Td (do)Tj 0 Tc 1.407 0 Td (utput.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5178.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 508.238 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj T* (#include )Tj T* (#include )Tj 0 -1.902 TD (#define NQ)Tj 4.2 Tc 9.6 0 Td (3/)Tj 0.6 Tc 5.4 0 Td (*n)Tj 0 Tc 1.8 0 Td (umber of queues */)Tj -16.8 -1.189 Td [(#define MAXMSZ)-1200(512 )-2400(/*)-600(maximum message size */)]TJ 0 -1.189 TD [(#define KEY)-3000(0x123 )-1200(/*)-600(key for first message queue */)]TJ 0 -1.902 TD (struct threadinfo {)Tj 2.4 -1.189 Td (int qid;)Tj 0 -1.189 TD (int fd;)Tj -2.4 -1.189 Td (};)Tj 0 -1.902 TD (struct mymesg {)Tj 2.4 -1.189 Td (long mtype;)Tj 0 -1.189 TD (char mtext[MAXMSZ];)Tj -2.4 -1.189 Td (};)Tj 0 -1.902 TD (void *)Tj 0 -1.189 TD (helper\(void *arg\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (int )Tj 12 0 Td (n;)Tj -12 -1.189 Td [(struct mymesg)-4200(m;)]TJ T* [(struct threadinfo)-1800(*tip = arg;)]TJ 0 -1.902 TD (for\(;;\) {)Tj 2.4 -1.189 Td (memset\(&m, 0, sizeof\(m\)\);)Tj 0 -1.189 TD (if \(\(n = msgrcv\(tip->qid, &m, MAXMSZ, 0, MSG_NOERROR\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("msgrcv error"\);)Tj -2.4 -1.189 Td (if \(write\(tip->fd, m.mtext, n\) < 0\))Tj 2.4 -1.189 Td (err_sys\("write error"\);)Tj -4.8 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47574 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.8)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (775)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(597 )-4800(/*)]TJ 0 -1.189 TD (598 )Tj 7.8 0 Td [(*)-600(_db_find_and_lock locked the hash chain for us; read)]TJ -7.8 -1.189 Td (599 )Tj 7.8 0 Td [(*)-600(the chain ptr to the first index record on hash chain.)]TJ -7.8 -1.189 Td (600 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(601 )-4800(ptrval)]TJ 0.6 Tc 11.4 0 Td (=_)Tj 0 Tc 1.8 0 Td (db_readptr\(db, db->chainoff\);)Tj -13.2 -2.021 Td [(602 )-4800(if)-600(\(_db_findfree\(db, keylen, datlen\) < 0\) {)]TJ T* (603 )Tj 9.6 0 Td (/*)Tj -9.6 -1.189 Td (604 )Tj 10.2 0 Td [(*)-600(Can\325t find an empty record big enough. Append the)]TJ -10.2 -1.189 Td (605 )Tj 10.2 0 Td [(*)-600(new record to the ends of the index and data files.)]TJ -10.2 -1.189 Td (606 )Tj 10.2 0 Td (*/)Tj -10.2 -1.189 Td (607 )Tj 9.6 0 Td [(_db_writedat\(db,)-600(data, 0, SEEK_END\);)]TJ -9.6 -1.189 Td (608 )Tj 9.6 0 Td [(_db_writeidx\(db,)-600(key, 0, SEEK_END, ptrval\);)]TJ -9.6 -2.021 Td (609 )Tj 9.6 0 Td (/*)Tj -9.6 -1.189 Td (610 )Tj 10.2 0 Td [(*)-600(db->idxoff was set by _db_writeidx.)-1200(The new)]TJ -10.2 -1.189 Td (611 )Tj 10.2 0 Td [(*)-600(record goes to the front of the hash chain.)]TJ -10.2 -1.189 Td (612 )Tj 10.2 0 Td (*/)Tj -10.2 -1.189 Td (613 )Tj 9.6 0 Td [(_db_writeptr\(db,)-600(db->chainoff, db->idxoff\);)]TJ -9.6 -1.189 Td (614 )Tj 9.6 0 Td (db->cnt_stor1++;)Tj -9.6 -1.189 Td [(615 )-4800(})-600(else {)]TJ T* (616 )Tj 9.6 0 Td (/*)Tj -9.6 -1.189 Td (617 )Tj 10.2 0 Td [(*)-600(Reuse an empty record. _db_findfree removed it from)]TJ -10.2 -1.189 Td (618 )Tj 10.2 0 Td [(*)-600(the free list and set both db->datoff and db->idxoff.)]TJ -10.2 -1.189 Td (619 )Tj 10.2 0 Td [(*)-600(Reused record goes to the front of the hash chain.)]TJ -10.2 -1.189 Td (620 )Tj 10.2 0 Td (*/)Tj -10.2 -1.189 Td (621 )Tj 9.6 0 Td [(_db_writedat\(db,)-600(data, db->datoff, SEEK_SET\);)]TJ -9.6 -1.189 Td (622 )Tj 9.6 0 Td [(_db_writeidx\(db,)-600(key, db->idxoff, SEEK_SET, ptrval\);)]TJ -9.6 -1.189 Td (623 )Tj 9.6 0 Td [(_db_writeptr\(db,)-600(db->chainoff, db->idxoff\);)]TJ -9.6 -1.189 Td (624 )Tj 9.6 0 Td (db->cnt_stor2++;)Tj -9.6 -1.189 Td [(625 )-4800(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3401.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 316.0801 Tm [([597 )167(\320 )167(601])-668(After )-19(we )-19(call)]TJ /TT0 1 Tf 10.958 0 Td (_db_find_and_lock)Tj /T1_0 1 Tf 0.2693 Tc (,t)Tj 0 Tc 11.045 0 Td [(he )-19(code )-19(divides )-19(into )-19(four )-19(cases.)-521(In )-19(the)]TJ -17.003 -1.2 Td [(\336rst )-43(two, )-43(no )-43(r)19(ecor)]TJ 0.2926 Tc 7.935 0 Td (dw)Tj 0 Tc 1.738 0 Td [(as )-43(found, )-43(so )-43(we )-43(ar)]TJ 0.2926 Tc 8.179 0 Td (ea)Tj 0 Tc 1.272 0 Td [(dding )-43(a )-43(new )-43(r)19(ecor)18(d. )-293(W)]TJ 0.2926 Tc 10.458 0 Td (er)Tj 0 Tc 1.149 0 Td [(ead )-43(the)]TJ -30.73 -1.2 Td [(of)18(fset of the \336rst entry on the hash list.)]TJ -5 -1.6 Td [([602 )167(\320 )167(614])-668(Case )-146(1: )-146(we )-146(call)]TJ /TT0 1 Tf 12.286 0 Td (_db_findfree)Tj /T1_0 1 Tf 7.596 0 Td [(to )-146(sear)18(ch )-146(the )-146(fr)17(ee )-146(list )-146(for )-146(a )-146(deleted )-146(r)18(ecor)18(d)]TJ -14.882 -1.2 Td [(with )-101(the )-101(same )-101(size )-101(key )-101(and )-101(same )-101(size )-101(data.)-598(If )-101(no )-101(such )-101(r)19(ecor)18(d)-351(is)-351(found, )-101(we)]TJ 0 -1.2 Td [(have )-90(to )-90(append )-90(the )-90(new )-90(r)19(ecor)18(d)-340(to)-340(t)1(he )-90(ends )-90(of )-90(the )-90(index )-90(and )-90(data )-90(\336les.)]TJ -0.092 Tc 32.613 0 Td (We)Tj 0 Tc -32.613 -1.2 Td (call)Tj /TT0 1 Tf 2.016 0 Td (_db_writedat)Tj /T1_0 1 Tf 7.69 0 Td [(to )-240(write )-240(the )-240(data )-240(part,)]TJ /TT0 1 Tf 11.041 0 Td (_db_writeidx)Tj /T1_0 1 Tf 7.69 0 Td [(to )-240(write )-240(the)]TJ -28.437 -1.2 Td [(index )-81(part, )-81(and)]TJ /TT0 1 Tf 7.238 0 Td (_db_writeptr)Tj /T1_0 1 Tf 7.531 0 Td [(to )-81(place )-81(the )-81(new )-81(r)16(ecor)18(d)-331(on)-331(t)-1(he )-81(fr)18(ont )-81(of )-81(the)]TJ -14.77 -1.2 Td [(hash )-63(chain.)]TJ -0.092 Tc 5.614 0 Td [(We )-247(i)]TJ 0 Tc 1.991 0 Td [(ncr)18(ement )-63(a )-63(count )-63(\()]TJ /TT0 1 Tf 8.426 0 Td (cnt_stor1)Tj /T1_0 1 Tf [(\))-313(of)-313(t)-1(he )-63(number )-63(of )-63(times )-63(we)]TJ -16.031 -1.2 Td (executed this case to allow us to characterize the behavior of the datab\ ase.)Tj -5 -1.6 Td [([615 )167(\320 )167(625])-668(Case )-137(2:)]TJ /TT0 1 Tf 8.637 0 Td (_db_findfree)Tj /T1_0 1 Tf 7.587 0 Td [(found )-137(an )-137(empty )-137(r)17(ecor)]TJ 0.3873 Tc 9.987 0 Td (dw)Tj 0 Tc 1.832 0 Td [(ith )-137(the )-137(corr)17(ect )-137(sizes )-137(and)]TJ -0.018 Tc -23.043 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(moved )-720(it )-720(fr)18(om )-720(the )-720(fr)18(ee )-720(list )-720(\(we\325ll )-720(see )-720(the )-720(implementation )-720(of)]TJ /TT0 1 Tf -0.856 -1.2 Td (_db_findfree)Tj /T1_0 1 Tf 7.543 0 Td [(shortly\). )-342(W)]TJ 0.3425 Tc 5.204 0 Td (ew)Tj 0 Tc 1.656 0 Td [(rite )-92(the )-92(data )-92(and )-92(index )-92(portions )-92(of )-92(the )-92(new)]TJ -0.018 Tc -14.402 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.302 Tc 1.367 0 Td (da)Tj 0 Tc 1.413 0 Td [(nd )-52(add )-52(the )-52(r)18(ecor)18(d)-302(to)-302(the )-52(fr)18(ont )-52(of )-52(the )-52(hash )-52(chain )-52(as )-52(we )-52(did )-52(in )-52(case )-52(1.)]TJ -3.636 -1.2 Td (The)Tj /TT0 1 Tf 1.924 0 Td (cnt_stor2)Tj /T1_0 1 Tf 5.65 0 Td (\336eld counts how many times we\325ve executed this case.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47575 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (766)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(317 )-2400(/*)]TJ 0 -1.189 TD [(318 )-3000(*)-600(Position index file and record the offset.)-1200(db_nextrec)]TJ T* [(319 )-3000(*)-600(calls us with offset==0, meaning read from current offset.)]TJ T* [(320 )-3000(*)-600(We still need to call lseek to record the current offset.)]TJ T* [(321 )-3000(*/)]TJ 0 -1.189 TD [(322 )-2400(if)-600(\(\(db->idxoff = lseek\(db->idxfd, offset,)]TJ 0 -1.189 TD [(323 )-3600(offset)-600(== 0 ? SEEK_CUR : SEEK_SET\)\) == -1\))]TJ T* [(324 )-4800(err_dump\("_db_readidx:)-600(lseek error"\);)]TJ 0 -2.021 TD [(325 )-2400(/*)]TJ 0 -1.189 TD [(326 )-3000(*)-600(Read the ascii chain ptr and the ascii length at)]TJ 0 -1.189 TD [(327 )-3000(*)-600(the front of the index record.)-1200(This tells us the)]TJ T* [(328 )-3000(*)-600(remaining size of the index record.)]TJ T* [(329 )-3000(*/)]TJ T* [(330 )-2400(iov[0].iov_base)]TJ 0.6 Tc 14.4 0 Td (=a)Tj 0 Tc 1.8 0 Td (sciiptr;)Tj -16.2 -1.189 Td [(331 )-2400(iov[0].iov_len)]TJ 0.6 Tc 14.4 0 Td (=P)Tj 0 Tc 1.8 0 Td (TR_SZ;)Tj -16.2 -1.189 Td [(332 )-2400(iov[1].iov_base)]TJ 0.6 Tc 14.4 0 Td (=a)Tj 0 Tc 1.8 0 Td (sciilen;)Tj -16.2 -1.189 Td [(333 )-2400(iov[1].iov_len)]TJ 0.6 Tc 14.4 0 Td (=I)Tj 0 Tc 1.8 0 Td (DXLEN_SZ;)Tj -16.2 -1.189 Td [(334 )-2400(if)-600(\(\(i = readv\(db->idxfd, &iov[0], 2\)\) != PTR_SZ + IDXLEN_SZ\) {)]TJ 0 -1.189 TD [(335 )-4800(if)-600(\(i == 0 && offset == 0\))]TJ 0 -1.189 TD (336 )Tj 9.6 0 Td [(return\(-1\);)-3000(/* EOF for db_nextrec */)]TJ -9.6 -1.189 Td [(337 )-4800(err_dump\("_db_readidx:)-600(readv error of index record"\);)]TJ T* [(338 )-2400(})]TJ 0 -2.021 TD [(339 )-2400(/*)]TJ 0 -1.189 TD [(340 )-3000(*)-600(This is our return value; always >= 0.)]TJ T* [(341 )-3000(*/)]TJ T* [(342 )-2400(asciiptr[PTR_SZ])]TJ 0.6 Tc 15 0 Td (=0)Tj 4.8 Tc 1.8 0 Td (;/)Tj 0.6 Tc 6 0 Td (*n)Tj 0 Tc 1.8 0 Td (ull terminate */)Tj -24.6 -1.189 Td [(343 )-2400(db->ptrval)]TJ 0.6 Tc 11.4 0 Td (=a)Tj 0 Tc 1.8 0 Td (tol\(asciiptr\); /* offset of next key in chain */)Tj -13.2 -2.021 Td [(344 )-2400(asciilen[IDXLEN_SZ])]TJ 0.6 Tc 16.8 0 Td (=0)Tj 3 Tc 1.8 0 Td (;/)Tj 0.6 Tc 4.2 0 Td (*n)Tj 0 Tc 1.8 0 Td (ull terminate */)Tj -24.6 -1.189 Td [(345 )-2400(if)-600(\(\(db->idxlen = atoi\(asciilen\)\) < IDXLEN_MIN ||)]TJ T* [(346 )-3600(db->idxlen)]TJ 0.6 Tc 12.6 0 Td (>I)Tj 0 Tc 1.8 0 Td (DXLEN_MAX\))Tj -14.4 -1.189 Td [(347 )-4800(err_dump\("_db_readidx:)-600(invalid length"\);)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3112.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 287.1935 Tm [([317 )167(\320 )167(324])]TJ -0.092 Tc 5 0 Td [(We )-220(s)]TJ 0 Tc 2.097 0 Td [(tart )-36(by )-36(seeking )-36(to )-36(the )-36(index )-36(\336le )-36(of)17(fset )-36(pr)18(ovided )-36(by )-36(the )-36(caller)]TJ 0.5361 Tc 26.61 0 Td (.W)Tj 0.2861 Tc 1.694 0 Td (er)Tj 0 Tc 1.142 0 Td [(ecor)18(d)]TJ -31.543 -1.2 Td [(the )-29(of)18(fset )-29(in )-29(the)]TJ /TT0 1 Tf 7.188 0 Td (DB)Tj /T1_1 1 Tf 1.479 0 Td [(str)8(uctur)18(e, )-30(so )-30(even )-30(if )-30(the )-30(caller )-30(wants )-30(to )-30(r)18(ead )-30(the )-30(r)22(ecor)]TJ 0.2796 Tc 23.616 0 Td (da)Tj 0 Tc 1.391 0 Td (t)Tj -33.674 -1.2 Td [(the )-35(curr)18(ent )-35(\336le )-35(of)18(fset )-35(\(by )-35(setting)]TJ /TT0 1 Tf 14.526 0 Td (offset)Tj /T1_1 1 Tf 3.885 0 Td [(to )-35(0\), )-35(we )-35(still )-35(need )-35(to )-35(call)]TJ /TT0 1 Tf 11.433 0 Td (lseek)Tj /T1_1 1 Tf 3.285 0 Td (to)Tj -33.128 -1.2 Td [(determine )-118(the )-118(curr)18(ent )-118(of)18(fset. )-368(Since)-368(an )-118(index )-118(r)18(ecor)]TJ 0.3679 Tc 22.721 0 Td (dw)Tj 0 Tc 1.813 0 Td [(ill )-118(never )-118(be )-118(stor)18(ed )-118(at)]TJ -24.534 -1.2 Td [(of)18(fset )-22(0 )-22(in )-22(the )-22(index )-22(\336le, )-22(we )-22(can )-22(safely )-22(overload )-22(the )-22(value )-22(of )-22(0 )-22(to )-22(mean )-22(\324)37(\324r)18(ead)]TJ 0 -1.2 Td [(fr)18(om the curr)18(ent of)18(fset.\325)37(\325)]TJ -5 -1.6 Td [([325 )167(\320 )167(338])]TJ -0.092 Tc 5 0 Td [(We )-352(c)]TJ 0 Tc 2.249 0 Td (all)Tj /TT0 1 Tf 1.5 0 Td (readv)Tj /T1_1 1 Tf 3.418 0 Td [(to )-168(r)18(ead )-168(the )-168(two )-168(\336xed)]TJ 9.815 0.09 Td (-)Tj 0.333 -0.09 Td [(length )-168(\336elds )-168(at )-168(the )-168(beginning )-168(of )-168(the)]TJ -17.315 -1.2 Td [(index )-101(r)18(ecor)18(d: )-101(the )-101(chain )-101(pointer )-101(to )-101(the )-101(next )-101(index )-101(r)16(ecor)]TJ 0.3511 Tc 24.594 0 Td (da)Tj 0 Tc 1.462 0 Td [(nd )-101(the )-101(size )-101(of )-101(the)]TJ -26.056 -1.2 Td [(variable-length index r)18(ecor)]TJ 0.25 Tc 11.925 0 Td (dt)Tj 0 Tc 1.187 0 Td (hat follows.)Tj -18.112 -1.6 Td [([339 )167(\320 )167(347])]TJ -0.092 Tc 5 0 Td [(We )-379(c)]TJ 0 Tc 2.276 0 Td [(onvert )-195(the )-195(of)18(fset )-195(of )-195(the )-195(next )-195(r)17(ecor)18(d)-445(to)-445(an)-445(i)-1(nteger )-195(and )-195(stor)17(e)-445(it)-445(in)-445(t)-1(he)]TJ /TT0 1 Tf -2.276 -1.2 Td (ptrval)Tj /T1_1 1 Tf 3.938 0 Td [(\336eld )-88(\(this )-88(will )-88(be )-88(used )-88(as )-88(the )-88(r)18(eturn )-88(value )-88(for )-88(this )-88(function\).)-592(Then)]TJ -3.938 -1.2 Td [(we )-90(convert )-90(the )-90(length )-90(of )-90(the )-90(index )-90(r)21(ecor)]TJ 0.3397 Tc 18.198 0 Td (di)Tj 0 Tc 1.242 0 Td [(nto )-90(an )-90(integer )-90(and )-90(save )-90(it )-90(in )-90(the)]TJ /TT0 1 Tf -19.44 -1.2 Td (idxlen)Tj /T1_1 1 Tf 3.85 0 Td (\336eld.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47576 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.8)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (765)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(287 )-1200(/*)]TJ 0 -1.189 TD [(288 )-1800(*)-600(Read a chain ptr field from anywhere in the index file:)]TJ T* [(289 )-1800(*)-600(the free list pointer, a hash table chain ptr, or an)]TJ T* [(290 )-1800(*)-600(index record chain ptr.)]TJ T* [(291 )-1800(*/)]TJ 0 -1.189 TD [(292 )-1200(static)-600(off_t)]TJ 0 -1.189 TD [(293 )-1200(_db_readptr\(DB)-600(*db, off_t offset\))]TJ T* [(294 )-1200({)]TJ T* [(295 )-2400(char)-2400(asciiptr[PTR_SZ + 1];)]TJ 0 -2.021 TD [(296 )-2400(if)-600(\(lseek\(db->idxfd, offset, SEEK_SET\) == -1\))]TJ 0 -1.189 TD [(297 )-4800(err_dump\("_db_readptr:)-600(lseek error to ptr field"\);)]TJ T* [(298 )-2400(if)-600(\(read\(db->idxfd, asciiptr, PTR_SZ\) != PTR_SZ\))]TJ T* [(299 )-4800(err_dump\("_db_readptr:)-600(read error of ptr field"\);)]TJ T* [(300 )-2400(asciiptr[PTR_SZ])]TJ 0.6 Tc 15 0 Td (=0)Tj 4.2 Tc 1.8 0 Td (;/)Tj 0.6 Tc 5.4 0 Td (*n)Tj 0 Tc 1.8 0 Td (ull terminate */)Tj -24 -1.189 Td [(301 )-2400(return\(atol\(asciiptr\)\);)]TJ T* [(302 )-1200(})]TJ 0 -2.021 TD [(303 )-1200(/*)]TJ 0 -1.189 TD [(304 )-1800(*)-600(Read the next index record.)-1200(We start at the specified offset)]TJ 0 -1.189 TD [(305 )-1800(*)-600(in the index file.)-1200(We read the index record into db->idxbuf)]TJ 0 -1.189 TD [(306 )-1800(*)-600(and replace the separators with null bytes.)-1200(If all is OK we)]TJ T* [(307 )-1800(*)-600(set db->datoff and db->datlen to the offset and length of the)]TJ T* [(308 )-1800(*)-600(corresponding data record in the data file.)]TJ T* [(309 )-1800(*/)]TJ T* [(310 )-1200(static)-600(off_t)]TJ T* [(311 )-1200(_db_readidx\(DB)-600(*db, off_t offset\))]TJ T* [(312 )-1200({)]TJ T* [(313 )-2400(ssize_t)]TJ 16.8 0 Td (i;)Tj -16.8 -1.189 Td [(314 )-2400(char)]TJ 14.4 0 Td (*ptr1, *ptr2;)Tj -14.4 -1.189 Td [(315 )-2400(char)]TJ 14.4 0 Td (asciiptr[PTR_SZ + 1], asciilen[IDXLEN_SZ + 1];)Tj -14.4 -1.189 Td [(316 )-2400(struct)-600(iovec )-1800(iov[2];)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3294.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 305.3814 Tm [([287 )167(\320 )167(302])]TJ /TT0 1 Tf 5 0 Td (_db_readptr)Tj /T1_0 1 Tf -0.018 Tc 6.853 0 Td (re)Tj 0 Tc 0.856 0 Td [(ads )-3(any )-3(one )-3(of )-3(thr)18(ee )-3(dif)18(fer)18(ent )-3(chain )-3(pointers: )-3(\(a\) )-3(the )-3(pointer)]TJ -7.709 -1.2 Td [(at )-74(the )-74(beginning )-74(of )-74(the )-74(index )-74(\336le )-74(that )-74(points )-74(to )-74(the )-74(\336rst )-74(index )-74(r)23(ecor)18(d)-324(on)-324(t)1(he)]TJ 0 -1.2 Td [(fr)18(ee )-57(list, )-57(\(b\) )-57(the )-57(pointers )-57(in )-57(the )-57(hash )-57(table )-57(that )-57(point )-57(to )-57(the )-57(\336rst )-57(index )-57(r)23(ecor)18(d)]TJ 0 -1.2 TD [(on )-98(each )-98(hash )-98(chain, )-98(and )-98(\(c\) )-98(the )-98(pointers )-98(that )-98(ar)]TJ 0.3485 Tc 21.451 0 Td (es)Tj 0 Tc 1.251 0 Td [(tor)18(ed )-98(at )-98(the )-98(beginning )-98(of)]TJ -22.703 -1.2 Td [(each )-24(index )-24(r)18(ecor)]TJ 0.2742 Tc 7.255 0 Td (d\()Tj 0 Tc 1.218 0 Td [(whether )-24(the )-24(index )-24(r)17(ecor)18(d)-274(is)-274(part )-24(of )-24(a )-24(hash )-24(chain )-24(or )-24(on )-24(the)]TJ -8.474 -1.2 Td [(fr)18(ee )-316(list\).)]TJ -0.092 Tc 4.965 0 Td [(We )-500(c)]TJ 0 Tc 2.397 0 Td [(onvert )-316(the )-316(pointer )-316(fr)19(om )-316(ASCII )-316(to )-316(a )-316(long )-316(integer )-316(befor)20(e)]TJ -0.018 Tc -7.361 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turning it.)-500(No locking is done by this function; that is up to the caller)74(.)]TJ -5.856 -1.6 Td [([303 )167(\320 )167(316])-668(The)]TJ /TT0 1 Tf 6.97 0 Td (_db_readidx)Tj /T1_0 1 Tf 6.896 0 Td [(function )-46(is )-46(used )-46(to )-46(r)18(ead )-46(the )-46(r)16(ecor)18(d)-296(at)-296(t)-1(he )-46(speci\336ed )-46(of)17(fset)]TJ -8.867 -1.2 Td [(fr)18(om )-16(the )-16(index )-16(\336le.)-516(On )-16(success, )-16(the )-16(function )-16(will )-16(r)18(eturn )-16(the )-16(of)22(fset )-15(of )-15(the )-15(next)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(cor)18(d)-277(in)-277(t)-1(he )-27(list.)-527(In )-27(this )-27(case, )-27(the )-27(function )-27(will )-27(populate )-27(several )-27(\336elds )-27(in )-27(the)]TJ /TT0 1 Tf -0.856 -1.2 Td (DB)Tj /T1_0 1 Tf 1.569 0 Td [(str)8(uctur)18(e:)]TJ /TT0 1 Tf 4.588 0 Td (idxoff)Tj /T1_0 1 Tf 3.969 0 Td [(contains )-119(the )-119(of)17(fset )-119(of )-119(the )-119(curr)18(ent )-119(r)17(ecor)18(d)-369(in)-369(the )-119(index)]TJ -10.127 -1.2 Td (\336le,)Tj /TT0 1 Tf 1.997 0 Td (ptrval)Tj /T1_0 1 Tf 3.972 0 Td [(contains )-122(the )-122(of)17(fset )-122(of )-122(the )-122(next )-122(index )-122(entry )-122(in )-122(the )-122(list,)]TJ /TT0 1 Tf 24.43 0 Td (idxlen)Tj /T1_0 1 Tf -30.4 -1.2 Td [(contains )-88(the )-88(length )-88(of )-88(the )-88(curr)18(ent )-88(index )-88(r)16(ecor)18(d,)]TJ /TT0 1 Tf 21.639 0 Td (idxbuf)Tj /T1_0 1 Tf 3.938 0 Td [(contains )-88(the )-88(actual)]TJ -25.578 -1.2 Td [(index )-113(r)18(ecor)18(d,)]TJ /TT0 1 Tf 6.289 0 Td (datoff)Tj /T1_0 1 Tf 3.963 0 Td [(contains )-113(the )-113(of)18(fset )-113(of )-113(the )-113(r)19(ecor)18(d)-363(in)-363(the )-113(data )-113(\336le, )-113(and)]TJ /TT0 1 Tf -10.251 -1.2 Td (datlen)Tj /T1_0 1 Tf 3.85 0 Td [(contains the length of the data r)18(ecor)18(d.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47577 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (494)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(the )-93(linked )-93(list )-93(of )-93(locks )-93(for )-93(the )-93(corr)18(esponding )-93(i-node )-93(and )-93(r)21(eleases )-93(the )-93(locks )-93(held )-93(by )-93(the)]TJ 0 -1.2 TD [(calling )-144(pr)18(ocess. )-394(The)-393(kernel )-144(can\325t )-144(tell )-144(\(and )-144(doesn\325t )-144(car)18(e\) )-144(which )-144(descriptor )-144(of )-144(the )-144(thr)21(ee)]TJ 0 -1.2 Td [(was used by the par)18(ent to obtain the lock.)]TJ /TT0 1 Tf -3.6 -2.64 Td (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(In )-54(the )-54(pr)18(ogram )-54(in )-54(Figur)]TJ 0.3041 Tc 10.636 0 Td (e1)Tj 0 Tc 1.283 0 Td [(3.6, )-54(we )-54(saw )-54(how )-54(a )-54(daemon )-54(can )-54(use )-54(a )-54(lock )-54(on )-54(a )-54(\336le )-54(to )-54(ensur)15(e)]TJ -11.919 -1.2 Td [(that )-45(only )-45(one )-45(copy )-45(of )-45(the )-45(daemon )-45(is )-45(r)11(unning. )-295(Figur)]TJ 0.2946 Tc 23.162 0 Td (e1)Tj 0 Tc 1.274 0 Td [(4.9 )-44(shows )-44(the )-44(implementation )-44(of)]TJ -24.436 -1.2 Td (the)Tj /TT1 1 Tf 1.637 0 Td (lockfile)Tj /T1_1 1 Tf 5.05 0 Td (function used by the daemon to place a write lock on a \336le.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5634.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 553.8325 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (lockfile\(int fd\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (struct flock fl;)Tj 0 -1.783 TD (fl.l_type = F_WRLCK;)Tj 0 -1.189 TD (fl.l_start = 0;)Tj T* (fl.l_whence = SEEK_SET;)Tj 0 -1.189 TD (fl.l_len = 0;)Tj 0 -1.189 TD (return\(fcntl\(fd, F_SETLK, &fl\)\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4207.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 242.3804 404.6252 Tm (Figure 14.9)Tj /T1_1 1 Tf 5.695 0 Td (Place a write lock on an entir)Tj 0.25 Tc 12.745 0 Td (e\336)Tj 0 Tc 1.334 0 Td (le)Tj 9.9982 0 0 9.9982 147.5735 380.6295 Tm [(Alternatively)111(,)-282(we)-282(c)1(ould )-32(de\336ne )-32(the)]TJ /TT1 1 Tf 15.357 0 Td (lockfile)Tj /T1_1 1 Tf 5.082 0 Td [(function )-32(in )-32(terms )-32(of )-32(the)]TJ /TT1 1 Tf 10.762 0 Td (write_lock)Tj /T1_1 1 Tf -33 -1.2 Td (function:)Tj /TT1 1 Tf 8.9984 0 0 8.9984 147.5735 351.9346 Tm (#define lockfile\(fd\) write_lock\(\(fd\), 0, SEEK_SET, 0\))Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3460.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT0 1 Tf 9.9976 0 0 9.9976 93.5775 321.9207 Tm [(Loc)20(ks at End of File)]TJ /T1_1 1 Tf -0.092 Tc 3.6 -2.4 Td [(We )-188(n)]TJ 0 Tc 2.223 0 Td [(eed )-4(to )-4(use )-4(caution )-4(when )-4(locking )-4(or )-4(unlocking )-4(byte )-4(ranges )-4(r)18(elative )-4(to )-4(the )-4(end )-4(of )-4(\336le.)]TJ -2.223 -1.2 Td [(Most )-56(implementations )-56(convert )-56(an)]TJ /TT1 1 Tf 15.371 0 Td (l_whence)Tj /T1_1 1 Tf 5.106 0 Td [(value )-56(of)]TJ /TT1 1 Tf 3.93 0 Td (SEEK_CUR)Tj /T1_1 1 Tf 5.106 0 Td (or)Tj /TT1 1 Tf 1.247 0 Td (SEEK_END)Tj /T1_1 1 Tf 5.106 0 Td [(into )-56(an)]TJ -35.867 -1.2 Td [(absolute )-199(\336le )-199(of)18(fset, )-199(using)]TJ /TT1 1 Tf 12.023 0 Td (l_start)Tj /T1_1 1 Tf 4.649 0 Td [(and )-199(the )-199(\336le\325s )-199(curr)18(ent )-199(position )-199(or )-199(curr)18(ent )-199(length.)]TJ -16.672 -1.2 Td [(Often, )-128(however)74(,)-378(we)-378(n)-1(eed )-128(to )-128(specify )-128(a )-128(lock )-128(r)18(elative )-128(to )-128(the )-128(\336le\325s )-128(curr)18(ent )-128(length, )-128(but )-128(we)]TJ 0 -1.2 TD [(can\325t )-119(call)]TJ /TT1 1 Tf 4.395 0 Td (fstat)Tj /T1_1 1 Tf 3.37 0 Td [(to )-120(obtain )-120(the )-120(curr)18(ent )-120(\336le )-120(size, )-120(since )-120(we )-120(don\325t )-120(have )-120(a )-120(lock )-120(on )-120(the )-120(\336le.)]TJ -7.765 -1.2 Td [(\(Ther)18(e\325s )-38(a )-38(chance )-38(that )-38(another )-38(pr)19(ocess )-38(could )-38(change )-38(the )-38(\336le\325s )-38(length )-38(between )-38(the )-38(call )-38(to)]TJ /TT1 1 Tf -0 -1.2 Td (fstat)Tj /T1_1 1 Tf 3.25 0 Td (and the lock call.\))Tj -1.45 -1.2 Td (Consider the following sequence of steps:)Tj /TT1 1 Tf 8.9978 0 0 8.9978 147.5645 196.181 Tm (writew_lock\(fd, 0, SEEK_END, 0\);)Tj 0 -1.189 TD (write\(fd, buf, 1\);)Tj T* (un_lock\(fd, 0, SEEK_END\);)Tj T* (write\(fd, buf, 1\);)Tj /T1_1 1 Tf 9.9976 0 0 9.9976 129.5688 145.0234 Tm [(This )-92(sequence )-92(of )-92(code )-92(might )-92(not )-92(do )-92(what )-92(you )-92(expect.)-592(It )-92(obtains )-92(a )-92(write )-92(lock )-92(fr)18(om )-92(the)]TJ 0 -1.2 TD [(curr)18(ent )-111(end )-111(of )-111(the )-111(\336le )-111(onwar)18(d, )-111(covering )-111(any )-111(futur)]TJ 0.3612 Tc 22.847 0 Td (ed)Tj 0 Tc 1.451 0 Td [(ata )-111(we )-111(might )-111(append )-111(to )-111(the )-111(\336le.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47578 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (486)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (fcntl)Tj /TT1 1 Tf 3.278 0 Td (Recor)Tj 0.278 Tc 2.814 0 Td (dL)Tj 0 Tc 1.5 0 Td [(oc)20(king)]TJ /T1_1 1 Tf -3.992 -2.4 Td [(Let\325s r)18(epeat the pr)18(ototype for the)]TJ /TT2 1 Tf 14.786 0 Td (fcntl)Tj /T1_1 1 Tf 3.25 0 Td [(function fr)18(om Section 3.14.)]TJ /TT2 1 Tf 8.9995 0 0 8.9995 147.5911 625.8624 Tm (#include )Tj 0 -2.021 TD (int fcntl\(int)Tj /T1_2 1 Tf 8.4 0 Td (fd)Tj /TT2 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (cmd)Tj /TT2 1 Tf 0.6 Tc (,.)Tj 0 Tc 3.485 0 Td (.. /* struct flock *)Tj /T1_2 1 Tf (\337ockptr)Tj /TT2 1 Tf 15.662 0 Td (*/ \);)Tj /T1_1 1 Tf -18.492 -2.021 Td (Returns: depends on)Tj /T1_2 1 Tf 9.392 0 Td (cmd)Tj /T1_1 1 Tf 1.935 0 Td (if OK \(see following\),)Tj /TT3 1 Tf 9.704 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5850.25 cm 0 0 m 0 499 l 3900 499 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 569.0517 Tm [(For )-245(r)18(ecor)]TJ 0.495 Tc 4.215 0 Td (dl)Tj 0 Tc 1.397 0 Td (ocking,)Tj /T1_2 1 Tf 3.72 0 Td (cmd)Tj /T1_1 1 Tf 2.18 0 Td (is)Tj /TT2 1 Tf 1.21 0 Td (F_GETLK)Tj /T1_1 1 Tf (,)Tj /TT2 1 Tf 4.945 0 Td (F_SETLK)Tj /T1_1 1 Tf 0.495 Tc (,o)Tj 0 Tc 5.491 0 Td (r)Tj /TT2 1 Tf 0.89 0 Td (F_SETLKW)Tj /T1_1 1 Tf 0.745 Tc (.T)Tj 0 Tc 6.408 0 Td [(he )-245(thir)]TJ 0.495 Tc 3.132 0 Td (da)Tj -0.018 Tc 1.606 0 Td (rg)Tj 0 Tc 0.933 0 Td (ument)Tj -36.127 -1.2 Td (\(which we\325ll call)Tj /T1_2 1 Tf 7.515 0 Td (\337ockptr)Tj /T1_1 1 Tf [(\))-250(is)-250(a)-250(pointer to an)]TJ /TT2 1 Tf 11.284 0 Td (flock)Tj /T1_1 1 Tf 3.25 0 Td [(str)8(uctur)18(e.)]TJ /TT2 1 Tf 8.9989 0 0 8.9989 147.5825 535.0058 Tm (struct flock {)Tj 1.2 -1.189 Td [(short )-600(l_type;)-1800(/* F_RDLCK, F_WRLCK, or F_UNLCK */)]TJ 0 -1.189 TD [(short )-600(l_whence;)-600(/* SEEK_SET, SEEK_CUR, or SEEK_END */)]TJ T* [(off_t )-600(l_start; )-600(/*)-600(offset in bytes, relative to l_whence */)]TJ T* [(off_t )-600(l_len;)-2400(/* length, in bytes; 0 means lock to EOF */)]TJ 0 -1.189 TD [(pid_t )-600(l_pid;)-2400(/* returned with F_GETLK */)]TJ -1.2 -1.189 Td (};)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5846 447.4663 Tm [(This str)8(uctur)]TJ 0.25 Tc 5.65 0 Td (ed)Tj 0 Tc 1.34 0 Td (escribes)Tj 0.883 Tc -5.19 -2.16 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-61(type )-61(of )-61(lock )-61(desir)16(ed:)]TJ /TT2 1 Tf 10.818 0 Td (F_RDLCK)Tj /T1_1 1 Tf 4.511 0 Td [(\(a )-61(shar)18(ed )-61(r)18(ead )-61(lock\),)]TJ /TT2 1 Tf 9.439 0 Td (F_WRLCK)Tj /T1_1 1 Tf 4.511 0 Td [(\(an )-61(exclusive)]TJ -29.892 -1.2 Td (write lock\), or)Tj /TT2 1 Tf 6.436 0 Td (F_UNLCK)Tj /T1_1 1 Tf 4.45 0 Td [(\(unlocking a r)18(egion\))]TJ 0.883 Tc -12.375 -1.72 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-128(starting )-128(byte )-128(of)18(fset )-128(of )-128(the )-128(r)18(egion )-128(being )-128(locked )-128(or )-128(unlocked )-128(\()]TJ /TT2 1 Tf (l_start)Tj /T1_1 1 Tf 33.405 0 Td (and)Tj /TT2 1 Tf -34.018 -1.2 Td (l_whence)Tj /T1_1 1 Tf (\))Tj 0.883 Tc -1.489 -1.72 Td (\245T)Tj 0 Tc 2.102 0 Td [(he size of the r)18(egion in bytes \()]TJ /TT2 1 Tf (l_len)Tj /T1_1 1 Tf (\))Tj 0.883 Tc -2.102 -1.72 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-271(ID )-271(\()]TJ /TT2 1 Tf (l_pid)Tj /T1_1 1 Tf [(\))-521(of)-521(the )-271(pr)18(ocess )-271(holding )-271(the )-271(lock )-271(that )-271(can )-271(block )-271(the )-271(curr)18(ent)]TJ -0.613 -1.2 Td [(pr)18(ocess \(r)18(eturned by)]TJ /TT2 1 Tf 9.339 0 Td (F_GETLK)Tj /T1_1 1 Tf 4.45 0 Td (only\))Tj -17.078 -2.16 Td [(Numer)18(ous r)8(ules apply to the speci\336cation of the r)18(egion to be locked or unlocked.)]TJ 0.883 Tc 1.8 -2.16 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-73(two )-73(elements )-73(that )-73(specify )-73(the )-73(starting )-73(of)18(fset )-73(of )-73(the )-73(r)18(egion )-73(ar)]TJ 0.3235 Tc 28.314 0 Td (es)Tj 0 Tc 1.226 0 Td [(imilar )-73(to )-73(the)]TJ -30.154 -1.2 Td [(last )-79(two )-79(ar)18(guments )-79(of )-79(the)]TJ /TT2 1 Tf 11.887 0 Td (lseek)Tj /T1_1 1 Tf 3.329 0 Td [(function )-79(\(Section )-79(3.6\).)-578(Indeed, )-79(the)]TJ /TT2 1 Tf 15.696 0 Td (l_whence)Tj /T1_1 1 Tf -30.911 -1.2 Td (member is speci\336ed as)Tj /TT2 1 Tf 10.245 0 Td (SEEK_SET)Tj /T1_1 1 Tf (,)Tj /TT2 1 Tf 5.3 0 Td (SEEK_CUR)Tj /T1_1 1 Tf 0.25 Tc (,o)Tj 0 Tc 5.846 0 Td (r)Tj /TT2 1 Tf 0.645 0 Td (SEEK_END)Tj /T1_1 1 Tf (.)Tj 0.883 Tc -23.525 -1.72 Td (\245L)Tj 0 Tc 2.1 0 Td [(ocks )-141(can )-141(start )-141(and )-141(extend )-141(beyond )-141(the )-141(curr)18(ent )-141(end )-141(of )-141(\336le, )-141(but )-141(cannot )-141(start )-141(or)]TJ -0.611 -1.2 Td (extend befor)Tj 0.25 Tc 5.531 0 Td (et)Tj 0 Tc 1.055 0 Td (he beginning of the \336le.)Tj 0.883 Tc -8.075 -1.72 Td (\245I)Tj 0 Tc 1.826 0 Td (f)Tj /TT2 1 Tf 0.658 0 Td (l_len)Tj /T1_1 1 Tf 3.325 0 Td [(is )-75(0, )-75(it )-75(means )-75(that )-75(the )-75(lock )-75(extends )-75(to )-75(the )-75(lar)18(gest )-75(possible )-75(of)18(fset )-75(of )-75(the)]TJ -4.321 -1.2 Td [(\336le. )-255(This)-256(allows )-5(us )-5(to )-5(lock )-5(a )-5(r)16(egion )-5(starting )-5(anywher)17(e)-255(in)-255(t)-1(he )-5(\336le, )-5(up )-5(thr)18(ough )-5(and)]TJ -0 -1.2 Td [(including )-93(any )-93(data )-93(that )-93(is )-93(appended )-93(to )-93(the )-93(\336le.)-591(\(W)]TJ 0.3428 Tc 23.199 0 Td (ed)Tj 0 Tc 1.433 0 Td [(on\325t )-93(have )-93(to )-93(try )-93(to )-93(guess)]TJ -24.632 -1.2 Td (how many bytes might be appended to the \336le.\))Tj 0.883 Tc -1.489 -1.72 Td (\245T)Tj 0.2913 Tc 2.01 0 Td (ol)Tj 0 Tc 1.128 0 Td [(ock )-41(the )-41(entir)]TJ 0.2912 Tc 5.571 0 Td (e\336)Tj 0 Tc 1.375 0 Td [(le, )-41(we )-41(set)]TJ /TT2 1 Tf 4.436 0 Td (l_start)Tj /T1_1 1 Tf 4.491 0 Td (and)Tj /TT2 1 Tf 1.984 0 Td (l_whence)Tj /T1_1 1 Tf 5.091 0 Td [(to )-41(point )-41(to )-41(the )-41(beginning)]TJ -24.597 -1.2 Td [(of )-65(the )-65(\336le )-65(and )-65(specify )-65(a )-65(length )-65(\()]TJ /TT2 1 Tf 14.315 0 Td (l_len)Tj /T1_1 1 Tf [(\))-315(of)-315(0)]TJ 0.5648 Tc (.\()Tj 0 Tc 6.489 0 Td (Ther)Tj 0.3148 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.294 0 Td [(re )-101(s)]TJ 0 Tc 1.595 0 Td [(everal )-65(ways )-65(to )-65(specify)]TJ -25.744 -1.2 Td [(the )-288(beginning )-288(of )-288(the )-288(\336le, )-288(but )-288(most )-288(applications )-288(specify)]TJ /TT2 1 Tf 26.78 0 Td (l_start)Tj /T1_1 1 Tf 4.738 0 Td [(as )-288(0 )-288(and)]TJ /TT2 1 Tf -31.518 -1.2 Td (l_whence)Tj /T1_1 1 Tf 5.05 0 Td (as)Tj /TT2 1 Tf 1.174 0 Td (SEEK_SET)Tj /T1_1 1 Tf (.\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47579 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (172)Tj /T1_1 1 Tf 3.5 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Library)]TJ 34.372 0 Td [(Chapter )-250(5)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(append, )-107(the )-107(curr)18(ent )-107(\336le )-107(position )-107(is )-107(set )-107(to )-107(the )-107(\336rst )-107(null )-107(byte )-107(in )-107(the )-107(buf)19(fer)]TJ 0.607 Tc 32.694 0 Td (.I)Tj 0.357 Tc 1.194 0 Td (ft)Tj 0 Tc 1.016 0 Td [(he )-107(buf)18(fer)]TJ -34.904 -1.2 Td [(contains )-111(no )-111(null )-111(bytes, )-111(then )-111(the )-111(curr)18(ent )-111(position )-111(is )-111(set )-111(to )-111(one )-111(byte )-111(past )-111(the )-111(end )-111(of )-111(the)]TJ 0 -1.2 TD [(buf)18(fer)]TJ 0.7164 Tc 2.604 0 Td (.W)Tj 0 Tc 1.966 0 Td [(hen )-216(a )-216(str)18(eam )-216(is )-216(not )-216(opened )-216(for )-216(append, )-216(the )-216(curr)18(ent )-216(position )-216(is )-216(set )-216(to )-216(the)]TJ -4.57 -1.2 Td [(beginning )-108(of )-108(the )-108(buf)17(fer)]TJ 0.6085 Tc 10.418 0 Td (.B)Tj 0 Tc 1.469 0 Td [(ecause )-108(the )-108(append )-108(mode )-108(determines )-108(the )-108(end )-108(of )-108(the )-108(data )-108(by)]TJ -11.887 -1.2 Td [(the )-160(\336rst )-160(null )-160(byte, )-160(memory )-160(str)18(eams )-160(ar)17(en\325t )-160(well )-160(suited )-160(for )-160(storing )-160(binary )-160(data )-160(\(which)]TJ T* (might contain null bytes befor)Tj 0.25 Tc 13.302 0 Td (et)Tj 0 Tc 1.055 0 Td (he end of the data\).)Tj -12.557 -1.2 Td [(Second, )-84(if )-84(the)]TJ /T1_2 1 Tf 6.449 0 Td (buf)Tj /T1_1 1 Tf 1.631 0 Td [(ar)18(gument )-84(is )-84(a )-84(null )-84(pointer)75(,)-334(it)-334(m)1(akes )-84(no )-84(sense )-84(to )-84(open )-84(the )-84(str)20(eam)]TJ -9.88 -1.2 Td [(for )-104(only )-104(r)18(eading )-104(or )-104(only )-104(writing.)-604(Because )-104(the )-104(buf)21(fer )-104(is )-104(allocated )-104(by)]TJ /TT0 1 Tf 30.997 0 Td (fmemopen)Tj /T1_1 1 Tf 5.154 0 Td [(in )-104(this)]TJ -36.15 -1.2 Td [(case, )-32(ther)18(e)-282(is)-282(no)-282(w)1(ay )-32(to )-32(\336nd )-32(the )-32(buf)19(fer )176(\325s)-282(addr)18(ess, )-32(so )-32(to )-32(open )-32(the )-32(str)18(eam )-32(only )-32(for )-32(writing)]TJ 0 -1.2 Td [(means )-63(we )-63(could )-63(never )-63(r)18(ead )-63(what )-63(we\325ve )-63(written.)-561(Similarly)111(,)-313(to)-313(open )-63(the )-63(str)18(eam )-63(only )-63(for)]TJ -0.018 Tc -0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ading )-26(means )-26(we )-26(can )-26(only )-26(r)20(ead )-26(the )-26(contents )-26(of )-26(a )-26(buf)18(fer )-26(into )-26(which )-26(we )-26(can )-26(never )-26(write.)]TJ 0.944 -1.2 Td [(Thir)18(d, )-204(a )-204(null )-204(byte )-204(is )-204(written )-204(at )-204(the )-204(curr)14(ent )-205(position )-205(in )-205(the )-205(str)18(eam )-205(whenever )-205(we)]TJ -1.8 -1.2 Td [(incr)18(ease )-133(the )-133(amount )-133(of )-133(data )-133(in )-133(the )-133(str)18(eam\325s )-133(buf)18(fer )-133(and )-133(call)]TJ /TT0 1 Tf 27.283 0 Td (fclose)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.233 0 Td (fflush)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 4.233 0 Td (fseek)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -35.75 -1.2 Td (fseeko)Tj /T1_1 1 Tf 0.25 Tc (,o)Tj 0 Tc 4.646 0 Td (r)Tj /TT0 1 Tf 0.645 0 Td (fsetpos)Tj /T1_1 1 Tf (.)Tj /TT1 1 Tf -8.891 -2.76 Td (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(It\325s )-251(instr)8(uctive )-251(to )-251(look )-251(at )-251(how )-251(writes )-251(to )-251(a )-251(memory )-251(str)18(eam )-251(operate )-251(on )-251(a )-251(buf)18(fer )-251(we)]TJ T* [(pr)18(ovide. )-479(Figur)]TJ 0.4787 Tc 6.832 0 Td (e5)Tj 0 Tc 1.458 0 Td [(.15 )-229(shows )-229(a )-229(sample )-229(pr)18(ogram )-229(that )-229(seeds )-229(the )-229(buf)18(fer )-229(with )-229(a )-229(known)]TJ -8.289 -1.2 Td [(pattern to see how writes to the str)18(eam behave.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4302.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 420.6485 Tm (#include "apue.h")Tj 0 -2.021 TD (#define BSZ 48)Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (main\(\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (FILE *fp;)Tj 0 -1.189 TD (char buf[BSZ];)Tj 0 -2.021 TD (memset\(buf, \325a\325, BSZ-2\);)Tj 0 -1.189 TD (buf[BSZ-2] = \325\\0\325;)Tj 0 -1.189 TD (buf[BSZ-1] = \325X\325;)Tj T* (if \(\(fp = fmemopen\(buf, BSZ, "w+"\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("fmemopen failed"\);)Tj -2.4 -1.189 Td (printf\("initial buffer contents: %s\\n", buf\);)Tj T* (fprintf\(fp, "hello, world"\);)Tj T* (printf\("before flush: %s\\n", buf\);)Tj T* (fflush\(fp\);)Tj T* (printf\("after fflush: %s\\n", buf\);)Tj 0 -1.189 TD (printf\("len of string in buf = %ld\\n", \(long\)strlen\(buf\)\);)Tj 0 -2.021 TD (memset\(buf, \325b\325, BSZ-2\);)Tj 0 -1.189 TD (buf[BSZ-2] = \325\\0\325;)Tj T* (buf[BSZ-1] = \325X\325;)Tj T* (fprintf\(fp, "hello, world"\);)Tj T* (fseek\(fp, 0, SEEK_SET\);)Tj T* [(printf\("after )-600(fseek:)-600(%s\\n", buf\);)]TJ T* (printf\("len of string in buf = %ld\\n", \(long\)strlen\(buf\)\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47580 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (158)Tj /T1_1 1 Tf 3.5 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Library)]TJ 34.372 0 Td [(Chapter )-250(5)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -1.783 TD (long ftell\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 13.816 -1.783 Td [(Returns: curr)18(ent \336le position indicator if OK,)]TJ /TT1 1 Tf 20.037 0 Td (!)Tj /T1_1 1 Tf [(1L on err)18(or)]TJ /TT0 1 Tf -33.853 -1.783 Td (int fseek\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf 0.6 Tc (,l)Tj 0 Tc 12.178 0 Td (ong)Tj /T1_2 1 Tf 2.4 0 Td (offset)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.911 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (whence)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 6.562 -1.783 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -34.464 -1.783 Td (void rewind\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5735.25 cm 0 0 m 0 938 l 3900 938 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 557.5831 Tm [(For )-95(a )-95(binary )-95(\336le, )-95(a )-95(\336le\325s )-95(position )-95(indicator )-95(is )-95(measur)18(ed )-95(in )-95(bytes )-95(fr)18(om )-95(the )-95(beginning )-95(of)]TJ 0 -1.2 TD [(the )-38(\336le.)-538(The )-38(value )-38(r)19(eturned )-38(by)]TJ /TT0 1 Tf 14.062 0 Td (ftell)Tj /T1_1 1 Tf 3.288 0 Td [(for )-38(a )-38(binary )-38(\336le )-38(is )-38(this )-38(byte )-38(position.)]TJ -0.092 Tc 16.688 0 Td [(To )-222(p)]TJ 0 Tc 1.956 0 Td (osition)Tj 0.3306 Tc -35.994 -1.2 Td (ab)Tj 0 Tc 1.384 0 Td [(inary )-81(\336le )-81(using)]TJ /TT0 1 Tf 7.147 0 Td (fseek)Tj /T1_1 1 Tf [(,)-331(we)-331(m)1(ust )-81(specify )-81(a )-81(byte)]TJ /T1_2 1 Tf 14.325 0 Td (offset)Tj /T1_1 1 Tf 2.441 0 Td [(and )-80(indicate )-80(how )-80(that )-80(of)18(fset )-80(is)]TJ -25.297 -1.2 Td [(interpr)18(eted. )-563(The)-563(values )-313(for)]TJ /T1_2 1 Tf 13.508 0 Td (whence)Tj /T1_1 1 Tf 3.526 0 Td (ar)Tj 0.5631 Tc 0.877 0 Td (et)Tj 0 Tc 1.368 0 Td [(he )-313(same )-313(as )-313(for )-313(the)]TJ /TT0 1 Tf 9.748 0 Td (lseek)Tj /T1_1 1 Tf 3.563 0 Td [(function )-313(fr)18(om)]TJ -32.591 -1.2 Td [(Section )-24(3.6:)]TJ /TT0 1 Tf 5.24 0 Td (SEEK_SET)Tj /T1_1 1 Tf 5.074 0 Td [(means )-24(fr)18(om )-23(the )-23(beginning )-23(of )-23(the )-23(\336le,)]TJ /TT0 1 Tf 16.672 0 Td (SEEK_CUR)Tj /T1_1 1 Tf 5.074 0 Td [(means )-23(fr)18(om )-23(the)]TJ -32.059 -1.2 Td [(curr)18(ent )-70(\336le )-70(position, )-70(and)]TJ /TT0 1 Tf 11.411 0 Td (SEEK_END)Tj /T1_1 1 Tf 5.12 0 Td [(means )-70(fr)18(om )-70(the )-70(end )-70(of )-70(\336le.)-570(ISO )-70(C )-70(doesn\325t )-70(r)18(equir)18(e)]TJ -16.531 -1.2 Td [(an )-186(implementation )-186(to )-186(support )-186(the)]TJ /TT0 1 Tf 16.079 0 Td (SEEK_END)Tj /T1_1 1 Tf 5.236 0 Td [(speci\336cation )-186(for )-186(a )-186(binary )-186(\336le, )-186(as )-186(some)]TJ -21.316 -1.2 Td [(systems )-70(r)18(equir)]TJ 0.3199 Tc 6.523 0 Td (eab)Tj 0 Tc 2.172 0 Td [(inary )-70(\336le )-70(to )-70(be )-70(padded )-70(at )-70(the )-70(end )-70(with )-70(zer)19(os )-70(to )-70(make )-70(the )-70(\336le )-70(size )-70(a)]TJ -8.695 -1.2 Td [(multiple )-256(of )-256(some )-256(magic )-256(number)]TJ 0.7564 Tc 15.097 0 Td (.U)Tj 0 Tc 1.784 0 Td [(nder )-256(the )-256(UNIX )-256(System, )-256(however)72(,)]TJ /TT0 1 Tf 16.098 0 Td (SEEK_END)Tj /T1_1 1 Tf 5.306 0 Td (is)Tj -38.285 -1.2 Td (supported for binary \336les.)Tj 1.8 -1.2 Td [(For )-171(text )-171(\336les, )-171(the )-171(\336le\325s )-171(curr)18(ent )-171(position )-171(may )-171(not )-171(be )-171(measurable )-171(as )-171(a )-171(simple )-171(byte)]TJ -1.8 -1.2 Td [(of)18(fset. )-392(Again,)-393(this )-142(is )-142(mainly )-142(under )-142(non-UNIX )-142(systems )-142(that )-142(might )-142(stor)]TJ 0.3924 Tc 32.132 0 Td (et)Tj 0 Tc 1.197 0 Td [(ext )-142(\336les )-142(in )-142(a)]TJ -33.33 -1.2 Td [(dif)18(fer)18(ent )-213(format.)]TJ -0.092 Tc 8.202 0 Td [(To )-397(p)]TJ 0 Tc 2.131 0 Td [(osition )-213(a )-213(text )-213(\336le,)]TJ /T1_2 1 Tf 8.63 0 Td (whence)Tj /T1_1 1 Tf 3.426 0 Td [(has )-213(to )-213(be)]TJ /TT0 1 Tf 4.799 0 Td (SEEK_SET)Tj /T1_1 1 Tf 0.463 Tc (,a)Tj 0 Tc 6.013 0 Td [(nd )-213(only )-213(two)]TJ -33.2 -1.2 Td [(values )-111(for)]TJ /T1_2 1 Tf 4.857 0 Td (offset)Tj /T1_1 1 Tf 2.472 0 Td (ar)Tj 0.3607 Tc 0.877 0 Td (ea)Tj 0 Tc 1.34 0 Td [(llowed: )-111(0)]TJ 0.0833 Tc 4.246 0 Td (\321m)Tj 0 Tc 1.966 0 Td [(eaning )-111(r)18(ewind )-111(the )-111(\336le )-111(to )-111(its )-111(beginning)]TJ 0.0833 Tc 17.558 0 Td (\321o)Tj 0.3606 Tc 1.629 0 Td (rav)Tj 0 Tc 2.181 0 Td (alue)Tj -37.127 -1.2 Td [(that )-87(was )-87(r)17(eturned )-88(by)]TJ /TT0 1 Tf 9.803 0 Td (ftell)Tj /T1_1 1 Tf 3.338 0 Td [(for )-88(that )-88(\336le.)]TJ 0.3376 Tc 5.896 0 Td (As)Tj 0 Tc 1.54 0 Td [(tr)18(eam )-88(can )-88(also )-88(be )-88(set )-88(to )-88(the )-88(beginning )-88(of)]TJ -20.576 -1.2 Td (the \336le with the)Tj /TT0 1 Tf 7.182 0 Td (rewind)Tj /T1_1 1 Tf 3.85 0 Td (function.)Tj -9.232 -1.2 Td (The)Tj /TT0 1 Tf 1.938 0 Td (ftello)Tj /T1_1 1 Tf 3.864 0 Td [(function )-14(is )-14(the )-14(same )-14(as)]TJ /TT0 1 Tf 10.339 0 Td (ftell)Tj /T1_1 1 Tf 0.2639 Tc (,a)Tj 0 Tc 4.014 0 Td [(nd )-14(the)]TJ /TT0 1 Tf 3.108 0 Td (fseeko)Tj /T1_1 1 Tf 3.864 0 Td [(function )-14(is )-14(the )-14(same )-14(as)]TJ /TT0 1 Tf -28.926 -1.2 Td (fseek)Tj /T1_1 1 Tf 0.25 Tc (,e)Tj 0 Tc 3.979 0 Td [(xcept that the type of the of)18(fset is)]TJ /TT0 1 Tf 14.853 0 Td (off_t)Tj /T1_1 1 Tf 3.25 0 Td (instead of)Tj /TT0 1 Tf 4.592 0 Td (long)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5811 334.5099 Tm (#include )Tj 0 -1.783 TD (off_t ftello\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 10.127 -1.783 Td [(Returns: curr)18(ent \336le position indicator if OK,)]TJ /TT0 1 Tf 20.037 0 Td (\(off_t\))Tj /TT1 1 Tf (!)Tj /TT0 1 Tf (1)Tj /T1_1 1 Tf 5.599 0 Td [(on err)18(or)]TJ /TT0 1 Tf -35.763 -1.783 Td (int fseeko\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf 0.6 Tc (,o)Tj 0 Tc 12.778 0 Td (ff_t)Tj /T1_2 1 Tf 3 0 Td (offset)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.911 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (whence)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 5.362 -1.783 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2658.25 cm 0 0 m 0 777 l 3900 777 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 249.905 Tm [(Recall )-20(the )-20(discussion )-20(of )-20(the)]TJ /TT0 1 Tf 12.315 0 Td (off_t)Tj /T1_1 1 Tf 3.27 0 Td [(data )-20(type )-20(in )-20(Section )-20(3.6.)-520(Implementations )-20(can )-20(de\336ne)]TJ -15.584 -1.2 Td (the)Tj /TT0 1 Tf 1.637 0 Td (off_t)Tj /T1_1 1 Tf 3.25 0 Td [(type to be lar)18(ger than 32 bits.)]TJ -3.087 -1.2 Td [(As )-36(we )-36(mentioned )-36(earlier)]TJ 0.2856 Tc 10.907 0 Td (,t)Tj 0 Tc 0.862 0 Td (he)Tj /TT0 1 Tf 1.347 0 Td (fgetpos)Tj /T1_1 1 Tf 4.486 0 Td (and)Tj /TT0 1 Tf 1.979 0 Td (fsetpos)Tj /T1_1 1 Tf 4.486 0 Td [(functions )-35(wer)]TJ 0.2855 Tc 6.106 0 Td (ei)Tj 0 Tc 1.056 0 Td [(ntr)18(oduced )-35(by)]TJ -33.027 -1.2 Td [(the ISO C standar)18(d.)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.5737 194.8149 Tm (#include )Tj T* (int fgetpos\(FILE *restrict)Tj /T1_2 1 Tf 16.2 0 Td (fp)Tj /TT0 1 Tf 0.6 Tc (,f)Tj 0 Tc 2.578 0 Td (pos_t *restrict)Tj /T1_2 1 Tf 9.6 0 Td (pos)Tj /TT0 1 Tf (\);)Tj -28.378 -1.783 Td (int fsetpos\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 13.378 0 Td (onst fpos_t *)Tj /T1_2 1 Tf (pos)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 9.31 -1.783 Td [(Both r)18(eturn: 0 if OK, nonzer)18(o)-250(on)-250(err)18(or)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1422.25 cm 0 0 m 0 616 l 3900 616 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47581 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (736)Tj /T1_1 1 Tf 3.5 0 Td [(Pseudo )-250(T)92(erminals )]TJ 38.741 0 Td [(Chapter)-500(19)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 670.2598 Tm (pty slowout > file.out &)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 653.3307 Tm (the)Tj /TT0 1 Tf 1.721 0 Td (pty)Tj /T1_1 1 Tf 2.134 0 Td [(pr)18(ocess )-84(is )-84(stopped )-84(immediately )-84(when )-84(the )-84(child )-84(tries )-84(to )-84(r)17(ead )-84(fr)18(om )-84(its )-84(standar)18(d)]TJ -3.855 -1.2 Td [(input )-44(\(the )-44(terminal\).)-544(The )-44(r)17(eason )-44(is )-44(that )-44(the )-44(job )-44(is )-44(a )-44(backgr)18(ound )-44(job )-44(and )-44(gets )-44(job-contr)15(ol)]TJ 0 -1.2 TD [(stopped )-82(when )-82(it )-82(tries )-82(to )-82(access )-82(the )-82(terminal.)-582(If )-82(we )-82(r)20(edir)18(ect )-82(standar)]TJ 0.3318 Tc 30.155 0 Td (di)Tj 0 Tc 1.234 0 Td [(nput )-82(so )-82(that)]TJ /TT0 1 Tf 5.811 0 Td (pty)Tj /T1_1 1 Tf -37.2 -1.2 Td [(doesn\325t try to r)18(ead fr)18(om the terminal, as in)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 601.7037 Tm (pty slowout < /dev/null > file.out &)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.592 584.775 Tm (the)Tj /TT0 1 Tf 1.656 0 Td (pty)Tj /T1_1 1 Tf 2.069 0 Td [(pr)18(ogram )-19(stops )-19(immediately )-19(because )-19(it )-19(r)16(eads )-20(an )-20(end )-20(of )-20(\336le )-20(on )-20(its )-20(standar)]TJ 0.2696 Tc 31.991 0 Td (di)Tj 0 Tc 1.172 0 Td (nput)Tj -36.888 -1.2 Td [(and )-40(terminates.)-540(The )-40(solution )-40(for )-40(this )-40(pr)19(oblem )-40(is )-40(the)]TJ /TT0 1 Tf 23.498 0 Td (-i)Tj /T1_1 1 Tf 1.49 0 Td [(option, )-40(which )-40(says )-40(to )-40(ignor)]TJ 0.2897 Tc 12.162 0 Td (ea)Tj 0 Tc 1.269 0 Td (n)Tj -38.418 -1.2 Td (end of \336le on the standar)Tj 0.25 Tc 11.011 0 Td (di)Tj 0 Tc 1.152 0 Td (nput:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5905 545.1473 Tm (pty -i slowout < /dev/null > file.out &)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5916 528.2182 Tm [(This )-10(\337ag )-10(causes )-10(the)]TJ /TT0 1 Tf 8.873 0 Td (pty)Tj /T1_1 1 Tf 2.06 0 Td [(child )-10(in )-10(Figur)]TJ 0.2596 Tc 5.994 0 Td (e1)Tj 0 Tc 1.239 0 Td [(9.12 )-10(to )-10(exit )-10(when )-10(the )-10(end )-10(of )-10(\336le )-10(is )-10(encounter)21(ed,)]TJ -18.166 -1.2 Td [(but )-41(the )-41(child )-41(doesn\325t )-41(tell )-41(the )-41(par)18(ent )-41(to )-41(terminate.)-539(Instead, )-41(the )-41(par)18(ent )-41(continues )-41(copying)]TJ T* (the PTY slave output to standar)Tj 0.25 Tc 13.977 0 Td (do)Tj 0 Tc 1.407 0 Td (utput \(the \336le)Tj /TT0 1 Tf 6.304 0 Td (file.out)Tj /T1_1 1 Tf 5.05 0 Td (in the example\).)Tj /TT1 1 Tf -30.338 -2.64 Td (script)Tj /TT2 1 Tf 3.878 0 Td [(Pr)20(ogram)]TJ /T1_1 1 Tf -0.278 -1.92 Td [(Using )-152(the)]TJ /TT0 1 Tf 4.823 0 Td (pty)Tj /T1_1 1 Tf 2.202 0 Td [(pr)18(ogram, )-152(we )-152(can )-152(implement )-152(the)]TJ /TT0 1 Tf 15.161 0 Td (script)Tj /T1_1 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.735 -0.04 Td [(pr)18(ogram )-152(as )-152(the )-152(following)]TJ -27.354 -1.2 Td (shell script:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5907 430.9939 Tm (#!/bin/sh)Tj 0 -1.189 TD (pty "${SHELL:-/bin/sh}" | tee typescript)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5918 403.3655 Tm [(Once )-136(we )-136(r)8(un )-136(this )-136(shell )-136(script, )-136(we )-136(can )-136(execute )-136(the)]TJ /TT0 1 Tf 23.014 0 Td (ps)Tj /T1_1 1 Tf 1.586 0 Td [(command )-136(to )-136(see )-136(all )-136(the )-136(pr)16(ocess)]TJ -0.018 Tc -24.6 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(lationships. )-250(Figur)]TJ 0.25 Tc 7.991 0 Td (e1)Tj 0 Tc 1.229 0 Td [(9.14 details these r)18(elationships.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1356 3021.9 288 252 re S Q BT /T1_1 1 Tf 7.999 0 0 7.999 140.9191 317.9918 Tm (login)Tj 0.1 -1.25 Td (shell)Tj ET q 0.99988 0 0 0.99988 0 0 cm q 1 0 0 1 193.2 314.79 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099988 0 0 0.099988 0 0 cm 1 j 1 J q 1 0 0 1 1932 3147.8999 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1644.25 3148.25 cm 0 0 m 216 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1932 3021.9 288 252 re S Q BT /TT0 1 Tf 7.9986 0 0 7.9986 202.7635 312.9737 Tm (sh)Tj ET q 0.99982 0 0 0.99982 0 0 cm q 1 0 0 1 250.8 314.79 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099982 0 0 0.099982 0 0 cm 1 j 1 J q 1 0 0 1 2508 3147.8999 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2220.25 3148.25 cm 0 0 m 216 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2508 3021.9 288 252 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 257.9381 312.9549 Tm (tee)Tj ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 308.4 314.79 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 3084 3147.8999 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2796.25 3148.25 cm 0 0 m 216 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 3084 3021.9 288 252 re S Q BT /TT0 1 Tf 7.9976 0 0 7.9976 315.5053 317.9346 Tm (pty)Tj /T1_1 1 Tf -0.533 -1.25 Td [(par)18(ent)]TJ ET q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 366 314.79 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 3660 3147.8999 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3372.25 3148.25 cm 0 0 m 216 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 3660 3021.9 288 252 re S Q BT /TT0 1 Tf 7.9971 0 0 7.9971 373.0657 317.9155 Tm (pty)Tj /T1_1 1 Tf -0.21 -1.25 Td (child)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 4236 3021.9 288 252 re S Q BT /TT0 1 Tf 7.9966 0 0 7.9966 430.6191 312.8986 Tm (ksh)Tj ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 481.2 314.79 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 4812 3147.8999 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4524.25 3148.25 cm 0 0 m 216 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 4812 3021.9 288 252 re S Q BT /TT0 1 Tf 7.9962 0 0 7.9962 490.5645 312.8798 Tm (ps)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 423.6 314.79 cm 0 0 m -6.48 3.6 l -4.032 6.192 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 4236 3147.8999 cm 0 0 m -64.8 36 l -40.32 61.92 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3372 3183.8999 cm 0 0 m 144 117 l 240 195 336 234 432 234 c 528 234 623.16 189.84 717.48 101.52 c 858.96 -30.96 l S Q Q q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 265.2 348.99 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 2652 3489.8999 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2652.25 3274.25 cm 0 0 m 0 144 l S Q Q BT /TT0 1 Tf 7.9952 0 0 7.9952 241.0553 364.6112 Tm (typescript)Tj /T1_1 1 Tf 2.313 -1.25 Td (\336le)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 2472 2445.9 360 216 re S Q BT /T1_1 1 Tf 7.9947 0 0 7.9947 258.4574 258.4594 Tm (line)Tj -1.331 -1.25 Td (discipline)Tj ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J 2508 2013.9 288 216 re S Q BT /T1_1 1 Tf 7.9942 0 0 7.9942 257.4426 210.2785 Tm (TTY)Tj ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J 3372 2013.9 288 216 re S Q BT /T1_1 1 Tf 7.9938 0 0 7.9938 343.7957 215.262 Tm (PTY)Tj -0.562 -1.25 Td (master)Tj ET q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J 4776 2445.9 360 216 re S Q BT /T1_1 1 Tf 7.9933 0 0 7.9933 488.6174 258.4128 Tm (line)Tj -1.331 -1.25 Td (discipline)Tj ET q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J 4812 2013.9 288 216 re S Q BT /T1_1 1 Tf 7.9928 0 0 7.9928 487.6249 215.2362 Tm (PTY)Tj -0.187 -1.25 Td (slave)Tj ET q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 486.96 266.19 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 4869.6001 2661.8999 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4869.25 3022.25 cm 0 0 m 0 -288 l S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 504.24 302.19 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 5042.3999 3021.8999 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5042.25 2950.25 cm 0 0 m 0 -288 l S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 486.96 222.99 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 4869.6001 2229.8999 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4869.25 2446.25 cm 0 0 m 0 -144 l S Q Q q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 504.24 244.59 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 5042.3999 2445.8999 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5042.25 2374.25 cm 0 0 m 0 -144 l S Q Q q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 256.56 222.99 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 2565.6001 2229.8999 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2565.25 2446.25 cm 0 0 m 0 -144 l S Q Q q 0.9988007 0 0 0.9988007 0 0 cm q 1 0 0 1 273.84 244.59 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998801 0 0 0.0998801 0 0 cm 1 j 1 J q 1 0 0 1 2738.3999 2445.8999 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2738.25 2374.25 cm 0 0 m 0 -144 l S Q Q q 0.9987408 0 0 0.9987408 0 0 cm q 1 0 0 1 256.56 266.19 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998741 0 0 0.0998741 0 0 cm 1 j 1 J q 1 0 0 1 2565.6001 2661.8999 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2565.25 3022.25 cm 0 0 m 0 -288 l S Q Q q 0.9986808 0 0 0.9986808 0 0 cm q 1 0 0 1 389.04 302.19 cm 0 0 m -6.336 -3.888 l -7.416 -0.432 l f Q Q q 0.0998681 0 0 0.0998681 0 0 cm 1 j 1 J q 1 0 0 1 3890.3999 3021.8999 cm 0 0 m -63.36 -38.88 l -74.16 -4.32 l h S Q Q q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 3000.25 cm 0 0 m -1084 -338 l S Q Q q 0.9986209 0 0 0.9986209 0 0 cm q 1 0 0 1 342.96 222.99 cm 0 0 m 0.792 7.416 l 4.176 6.192 l f Q Q q 0.0998621 0 0 0.0998621 0 0 cm 1 j 1 J q 1 0 0 1 3429.6001 2229.8999 cm 0 0 m 7.92 74.16 l 41.76 61.92 l h S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3717.25 3022.25 cm 0 0 m -263 -725 l S Q Q q 0.998561 0 0 0.998561 0 0 cm q 1 0 0 1 331.44 302.19 cm 0 0 m 4.176 -6.12 l 0.792 -7.344 l f Q Q q 0.0998561 0 0 0.0998561 0 0 cm 1 j 1 J q 1 0 0 1 3314.3999 3021.8999 cm 0 0 m 41.76 -61.2 l 7.92 -73.44 l h S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3339.25 2954.25 cm 0 0 m 263 -724 l S Q Q q 0.9985011 0 0 0.9985011 0 0 cm q 1 0 0 1 265.2 201.39 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998501 0 0 0.0998501 0 0 cm 1 j 1 J q 1 0 0 1 2652 2013.9 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9984412 0 0 0.9984412 0 0 cm q 1 0 0 1 265.2 179.79 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998441 0 0 0.0998441 0 0 cm 1 j 1 J q 1 0 0 1 2652 1797.9 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2652.25 1942.25 cm 0 0 m 0 -72 l S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2832 1689.9 cm 0 0 m 0 -59.65 -80.59 -108 -180 -108 c -279.41 -108 -360 -59.65 -360 0 c -360 59.64 -279.41 108 -180 108 c -80.59 108 0 59.64 0 0 c h S Q Q BT /T1_1 1 Tf 7.9871 0 0 7.9871 257.179 166.9593 Tm (user)Tj ET q 0.9983813 0 0 0.9983813 0 0 cm q 1 0 0 1 486.96 186.99 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998381 0 0 0.0998381 0 0 cm 1 j 1 J q 1 0 0 1 4869.6001 1869.9 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998381 0 0 0.0998381 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4869.25 2014.25 cm 0 0 m 0 -72 l S Q Q q 0.9983214 0 0 0.9983214 0 0 cm q 1 0 0 1 360.24 201.39 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998321 0 0 0.0998321 0 0 cm 1 j 1 J q 1 0 0 1 3602.3999 2013.9 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3602.25 1942.25 cm 0 0 m 0 -72 l S Q Q q 0.9982615 0 0 0.9982615 0 0 cm q 1 0 0 1 360.24 186.99 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0998261 0 0 0.0998261 0 0 cm 1 j 1 J q 1 0 0 1 3602.3999 1869.9 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4869.25 1870.25 cm 0 0 m -1195 0 l S Q Q q 0.9982016 0 0 0.9982016 0 0 cm q 1 0 0 1 504.24 201.39 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998202 0 0 0.0998202 0 0 cm 1 j 1 J q 1 0 0 1 5042.3999 2013.9 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998202 0 0 0.0998202 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5042.25 1942.25 cm 0 0 m 0 -144 l S Q Q q 0.9981417 0 0 0.9981417 0 0 cm q 1 0 0 1 342.96 179.79 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998142 0 0 0.0998142 0 0 cm 1 j 1 J q 1 0 0 1 3429.6001 1797.9 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998142 0 0 0.0998142 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3429.25 2014.25 cm 0 0 m 0 -144 l S Q Q q 0.9980818 0 0 0.9980818 0 0 cm q 1 0 0 1 504.24 179.79 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998082 0 0 0.0998082 0 0 cm 1 j 1 J q 1 0 0 1 5042.3999 1797.9 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998082 0 0 0.0998082 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3429.25 1798.25 cm 0 0 m 1541 0 l S Q Q q 0.9980219 0 0 0.9980219 0 0 cm q 1 0 0 1 314.16 284.19 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998022 0 0 0.0998022 0 0 cm 1 j 1 J q 1 0 0 1 3141.6001 2841.8999 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3141.25 3022.25 cm 0 0 m 0 -108 l S Q Q q 0.997962 0 0 0.997962 0 0 cm q 1 0 0 1 273.84 302.19 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0997962 0 0 0.0997962 0 0 cm 1 j 1 J q 1 0 0 1 2738.3999 3021.8999 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0997962 0 0 0.0997962 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2738.25 2950.25 cm 0 0 m 0 -108 l S Q Q q 0.9979021 0 0 0.9979021 0 0 cm q 1 0 0 1 273.84 284.19 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0997902 0 0 0.0997902 0 0 cm 1 j 1 J q 1 0 0 1 2738.3999 2841.8999 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.0997902 0 0 0.0997902 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2810.25 2842.25 cm 0 0 m 331 0 l S Q Q BT /T1_1 1 Tf 7.9827 0 0 7.9827 285.4946 286.8098 Tm (pipe)Tj /T1_0 1 Tf -9.264 -19.005 Td (Figure 19.14)Tj /T1_1 1 Tf 6.195 0 Td [(Arrangement of pr)18(ocesses for)]TJ /TT0 1 Tf 13.306 0 Td (script)Tj /T1_1 1 Tf 3.85 0 Td (shell script)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47582 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (720)Tj /T1_1 1 Tf 3.5 0 Td [(Pseudo )-250(T)92(erminals )]TJ 38.741 0 Td [(Chapter)-500(19)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2460.12 4874 576 252 re S Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 258.8085 503.2098 Tm (terminal)Tj -0.929 -1.25 Td (device driver)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 3252.12 4874 576 252 re S Q BT /T1_1 1 Tf 7.999 0 0 7.999 333.408 498.1802 Tm (PTY master)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 4044.12 4874 576 252 re S Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 415.5652 498.1503 Tm (PTY slave)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2460.12 5342 576 252 re S Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 259.7616 549.908 Tm (terminal)Tj -1.225 -1.25 Td (line discipline)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 4044.12 5342 576 252 re S Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 418.0985 549.875 Tm (terminal)Tj -1.226 -1.25 Td (line discipline)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 4586.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 4656.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 4725.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 4795.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 4864.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 4934.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 5004.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 5074.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 5144.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 5214.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 5283.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 5353.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 5422.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 5492.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 5562.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 5632.25 cm 0 0 m 0 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 5702.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2386.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2458.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2528.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2600.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2741.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2812.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2883.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2954.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3025.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3096.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3167.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3238.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3309.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3380.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3451.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3522.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3592.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3664.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3734.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3806.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3876.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3947.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4018.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4089.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4160.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4231.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4302.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4444.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4515.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4586.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4657.25 5738.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4728.25 5738.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4764.25 5668.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4764.25 5598.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4764.25 5528.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4764.25 5458.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4764.25 5389.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4764.25 5319.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4764.25 5250.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4764.25 5180.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4764.25 5110.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4764.25 5040.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4764.25 4970.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4764.25 4900.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4764.25 4831.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4764.25 4761.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4764.25 4692.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4764.25 4622.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4693.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4622.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4551.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4480.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4409.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4338.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4267.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4196.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4125.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4054.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3983.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3912.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3842.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3770.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3700.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3628.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3558.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3487.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3416.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3345.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3274.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3203.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3132.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3061.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2990.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2919.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2848.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2777.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2636.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2564.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2494.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2422.25 4586.25 cm 0 0 m -36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2352.25 4586.25 cm 0 0 m -36 0 l S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 478.2398 514.2548 Tm (kernel)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2663.88 5954 959.762 252 re S Q BT /TT0 1 Tf 7.9966 0 0 7.9966 285.712 605.9854 Tm (script)Tj /T1_1 1 Tf 3.85 0 Td [(pr)18(ocess)]TJ ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 314.412 642.2 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3144.1201 6422 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3144.25 6206.25 cm 0 0 m 0 144 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 2964.12 6422 360 216 re S Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 304.3419 655.9251 Tm (script)Tj 0.553 -1.25 Td (\336le)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 266.388 608 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 2663.8799 6080 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2592.25 6080.25 cm 0 0 m -432 0 l S Q Q BT /TT0 1 Tf 7.9957 0 0 7.9957 231.463 610.91 Tm (fork)Tj 0 -1.25 TD (exec)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 1727.88 5954 432 252 re S Q BT /T1_1 1 Tf 7.9952 0 0 7.9952 185.2128 610.8734 Tm (login)Tj 0.1 -1.25 Td (shell)Tj -1.151 -1.575 Td (\(sleeping\))Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 4116.12 5954 432 252 re S Q BT /T1_1 1 Tf 7.9947 0 0 7.9947 424.6636 605.84 Tm (shell)Tj ET q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 411.612 608 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 4116.1201 6080 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3623.25 6080.25 cm 0 0 m 420 0 l S Q Q BT /TT0 1 Tf 7.9942 0 0 7.9942 377.1164 610.8001 Tm (fork)Tj T* (exec)Tj ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 265.164 512.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 2651.6399 5126 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2651.25 5342.25 cm 0 0 m 0 -144 l S Q Q q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 284.388 534.2 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 2843.8799 5342 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2844.25 5270.25 cm 0 0 m 0 -144 l S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 423.564 512.6 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 4235.6401 5126 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4235.25 5342.25 cm 0 0 m 0 -144 l S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 442.788 534.2 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 4427.8799 5342 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4428.25 5270.25 cm 0 0 m 0 -144 l S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 426.012 559.4 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 4260.1201 5594 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4260.25 5954.25 cm 0 0 m 0 -288 l S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 440.412 595.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 4404.1201 5954 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4404.25 5882.25 cm 0 0 m 0 -288 l S Q Q BT /T1_2 1 Tf 7.9914 0 0 7.9914 401.5381 587.5651 Tm (stdout)Tj 0.166 -1.25 Td (stderr)Tj 5.089 1.25 Td (stdin)Tj ET q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 423.564 473 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 4235.6401 4730 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4235.25 4874.25 cm 0 0 m 0 -72 l S Q Q q 0.9988606 0 0 0.9988606 0 0 cm q 1 0 0 1 363.588 487.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998861 0 0 0.0998861 0 0 cm 1 j 1 J q 1 0 0 1 3635.8799 4874 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3636.25 4802.25 cm 0 0 m 0 -72 l S Q Q q 0.9988007 0 0 0.9988007 0 0 cm q 1 0 0 1 363.588 473 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0998801 0 0 0.0998801 0 0 cm 1 j 1 J q 1 0 0 1 3635.8799 4730 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.0998801 0 0 0.0998801 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4235.25 4730.25 cm 0 0 m -527 0 l S Q Q q 0.9987408 0 0 0.9987408 0 0 cm q 1 0 0 1 442.788 487.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998741 0 0 0.0998741 0 0 cm 1 j 1 J q 1 0 0 1 4427.8799 4874 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4428.25 4802.25 cm 0 0 m 0 -144 l S Q Q q 0.9986808 0 0 0.9986808 0 0 cm q 1 0 0 1 344.364 465.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998681 0 0 0.0998681 0 0 cm 1 j 1 J q 1 0 0 1 3443.6399 4658 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998681 0 0 0.0998681 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3443.25 4874.25 cm 0 0 m 0 -144 l S Q Q q 0.9986209 0 0 0.9986209 0 0 cm q 1 0 0 1 442.788 465.8 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998621 0 0 0.0998621 0 0 cm 1 j 1 J q 1 0 0 1 4427.8799 4658 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3443.25 4658.25 cm 0 0 m 913 0 l S Q Q q 0.998561 0 0 0.998561 0 0 cm q 1 0 0 1 265.164 559.4 cm 0 0 m 2.016 7.128 l 5.184 5.328 l f Q Q q 0.0998561 0 0 0.0998561 0 0 cm 1 j 1 J q 1 0 0 1 2651.6399 5594 cm 0 0 m 20.16 71.28 l 51.84 53.28 l h S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2856.25 5954.25 cm 0 0 m -169 -298 l S Q Q q 0.9985011 0 0 0.9985011 0 0 cm q 1 0 0 1 304.764 595.4 cm 0 0 m -2.016 -7.128 l -5.184 -5.328 l f Q Q q 0.0998501 0 0 0.0998501 0 0 cm 1 j 1 J q 1 0 0 1 3047.6399 5954 cm 0 0 m -20.16 -71.28 l -51.84 -53.28 l h S Q Q q 0.0998501 0 0 0.0998501 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2844.25 5594.25 cm 0 0 m 168 297 l S Q Q q 0.9984412 0 0 0.9984412 0 0 cm q 1 0 0 1 344.364 512.6 cm 0 0 m -3.456 6.552 l 0.072 7.416 l f Q Q q 0.0998441 0 0 0.0998441 0 0 cm 1 j 1 J q 1 0 0 1 3443.6399 5126 cm 0 0 m -34.56 65.52 l 0.72 74.16 l h S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3240.25 5954.25 cm 0 0 m 186 -758 l S Q Q q 0.9983813 0 0 0.9983813 0 0 cm q 1 0 0 1 343.212 595.4 cm 0 0 m 3.456 -6.552 l -0.072 -7.416 l f Q Q q 0.0998381 0 0 0.0998381 0 0 cm 1 j 1 J q 1 0 0 1 3432.1201 5954 cm 0 0 m 34.56 -65.52 l -0.72 -74.16 l h S Q Q q 0.0998381 0 0 0.0998381 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3636.25 5126.25 cm 0 0 m -187 758 l S Q Q q 0.9983214 0 0 0.9983214 0 0 cm q 1 0 0 1 274.812 487.4 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.0998321 0 0 0.0998321 0 0 cm 1 j 1 J q 1 0 0 1 2748.1201 4874 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.9982615 0 0 0.9982615 0 0 cm q 1 0 0 1 274.812 437 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0998261 0 0 0.0998261 0 0 cm 1 j 1 J q 1 0 0 1 2748.1201 4370 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2748.25 4802.25 cm 0 0 m 0 -360 l S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2964.1201 4244 cm 0 0 m 0 -69.59 -96.71 -126 -216 -126 c -335.29 -126 -432 -69.59 -432 0 c -432 69.59 -335.29 126 -216 126 c -96.71 126 0 69.59 0 0 c h S Q Q BT /T1_1 1 Tf 7.9856 0 0 7.9856 259.4366 426.8709 Tm (user at a)Tj -0.01 -1.25 Td (terminal)Tj /T1_0 1 Tf 0.434 -4.33 Td (Figure 19.5)Tj /T1_1 1 Tf 5.695 0 Td (The)Tj /TT0 1 Tf 1.924 -0 Td (script)Tj /T1_1 1 Tf 3.85 0 Td [(pr)18(ogram)]TJ 9.982 0 0 9.982 147.3343 349.9693 Tm [(After )-138(developing )-138(the )-138(general)]TJ /TT0 1 Tf 13.534 0 Td (pty)Tj /T1_1 1 Tf 2.188 0 Td [(pr)18(ogram )-138(in )-138(Section )-138(19.5, )-138(we\325ll )-138(see )-138(that )-138(a )-138(trivial)]TJ -17.522 -1.2 Td (shell script turns it into a version of the)Tj /TT0 1 Tf 17.538 0 Td (script)Tj /T1_1 1 Tf 3.85 0 Td [(pr)18(ogram.)]TJ /TT1 1 Tf -24.988 -3 Td (expect)Tj /TT2 1 Tf 3.878 0 Td [(Pr)20(ogram)]TJ /T1_1 1 Tf -0.278 -2.4 Td [(Pseudo )-137(terminals )-137(can )-137(be )-137(used )-137(to )-137(drive )-137(interactive )-137(pr)16(ograms )-137(in )-137(noninteractive )-137(modes.)]TJ 0 -1.2 TD [(Numer)18(ous )-111(pr)18(ograms )-111(ar)]TJ 0.361 Tc 10.627 0 Td (eh)Tj 0 Tc 1.422 0 Td [(ar)18(d-wir)18(ed )-111(to )-111(r)18(equir)]TJ 0.3611 Tc 8.694 0 Td (eat)Tj 0 Tc 2.027 0 Td [(erminal )-111(to )-111(r)8(un. )-361(One)-361(example )-111(is )-111(the)]TJ /TT0 1 Tf -22.77 -1.2 Td (passwd)Tj /T1_1 1 Tf 3.6 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.714 -0.04 Td [(command, )-131(which )-131(r)18(equir)18(es )-131(that )-131(the )-131(user )-131(enter )-131(a )-131(passwor)17(d)-381(in)-381(r)18(esponse )-131(to )-131(a)]TJ -5.147 -1.2 Td [(pr)18(ompt.)]TJ 1.8 -1.2 Td [(Rather )-328(than )-328(modify )-328(all )-328(the )-328(interactive )-328(pr)16(ograms )-328(to )-328(support )-328(a )-328(batch )-328(mode )-328(of)]TJ -1.8 -1.2 Td [(operation, )-40(a )-40(better )-40(solution )-40(is )-40(to )-40(pr)18(ovide )-40(a )-40(way )-40(to )-40(drive )-40(any )-40(interactive )-40(pr)18(ogram )-40(fr)18(om )-40(a)]TJ T* [(script. )-289(The)]TJ /TT0 1 Tf 5.233 0 Td (expect)Tj /T1_1 1 Tf 3.889 0 Td [(pr)18(ogram)]TJ 4.147 0.04 Td ([)Tj 0.333 -0.04 Td [(Libes )-39(1990, )-39(1991, )-39(1994)]TJ 9.725 0.04 Td (])Tj 0.622 -0.04 Td [(pr)18(ovides )-39(a )-39(way )-39(to )-39(do )-39(this.)-539(It )-39(uses)]TJ -23.948 -1.2 Td [(pseudo )-150(terminals )-150(to )-150(r)8(un )-150(other )-150(pr)17(ograms, )-150(similar )-150(to )-150(the)]TJ /TT0 1 Tf 25.675 0 Td (pty)Tj /T1_1 1 Tf 2.2 0 Td [(pr)18(ogram )-150(in )-150(Section )-150(19.5.)]TJ -27.875 -1.2 Td (But)Tj /TT0 1 Tf 2.057 0 Td (expect)Tj /T1_1 1 Tf 4.117 0 Td [(also )-267(pr)18(ovides )-267(a )-267(pr)17(ogramming )-267(language )-267(to )-267(examine )-267(the )-267(output )-267(of )-267(the)]TJ -6.175 -1.2 Td [(pr)18(ogram )-55(being )-55(r)8(un )-55(to )-55(make )-55(decisions )-55(about )-55(what )-55(to )-55(send )-55(the )-55(pr)18(ogram )-55(as )-55(input.)-559(When)]TJ 0 -1.2 Td [(an interactive pr)18(ogram is being r)8(un fr)18(om a script, we can\325t just copy everything fr)18(om the)]TJ T* [(script )-202(to )-202(the )-202(pr)19(ogram, )-202(and )-202(vice )-202(versa.)-702(Instead, )-202(we )-202(have )-202(to )-202(send )-202(the )-202(pr)18(ogram )-202(some)]TJ T* (input, look at its output, and decide what to send it next.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47583 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (52)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 670.2598 Tm [(#include )-600()]TJ 0 -2.021 TD (for \(i = 0; i < sysconf\(_SC_OPEN_MAX\); i++\))Tj 2.4 -1.189 Td (close\(i\);)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 620.9729 Tm [(Our )-317(best )-317(option )-317(in )-317(this )-317(case )-317(is )-317(just )-317(to )-317(close )-317(all )-317(descriptors )-317(up )-317(to )-317(some )-317(arbitrary)]TJ 0 -1.2 TD [(limit )167(\321 )167(say)]TJ 0.5977 Tc 4.618 0 Td (,2)Tj 0 Tc 1.348 0 Td [(56. )-598(W)]TJ 0.5978 Tc 3.006 0 Td (es)Tj 0 Tc 1.501 0 Td [(how )-348(this )-348(technique )-348(in )-348(Figur)]TJ 0.5978 Tc 13.578 0 Td (e2)Tj 0 Tc 1.577 0 Td [(.17. )-598(As)-598(with )-348(our )-348(pathname)]TJ -25.627 -1.2 Td [(example, )-19(this )-19(strategy )-19(is )-19(not )-19(guaranteed )-19(to )-19(work )-19(for )-19(all )-19(cases, )-19(but )-19(it\325s )-19(the )-19(best )-19(we )-19(can )-19(do)]TJ T* (without using a mor)Tj 0.25 Tc 9.02 0 Td (ee)Tj 0 Tc 1.208 0 Td [(xotic appr)18(oach.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5778.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 568.2408 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj 0 -2.021 TD [(#ifdef )-600(OPEN_MAX)]TJ 0 -1.189 TD (static long openmax = OPEN_MAX;)Tj 0 -1.189 TD (#else)Tj 0 -1.189 TD (static long openmax = 0;)Tj T* (#endif)Tj 0 -2.021 TD (/*)Tj 0.6 -1.189 Td [(*)-600(If)-600(OPEN_MAX is indeterminate, this might be inadequate.)]TJ 0 -1.189 TD (*/)Tj -0.6 -1.189 Td [(#define OPEN_MAX_GUESS)-1200(256)]TJ 0 -2.021 TD (long)Tj 0 -1.189 TD (open_max\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(if \(openmax == 0\) {)-3000(/* first time through */)]TJ 2.4 -1.189 Td (errno = 0;)Tj T* (if \(\(openmax = sysconf\(_SC_OPEN_MAX\)\) < 0\) {)Tj 2.4 -1.189 Td (if \(errno == 0\))Tj 2.4 -1.189 Td [(openmax = OPEN_MAX_GUESS;)-1800(/* it\325s indeterminate */)]TJ -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (err_sys\("sysconf error for _SC_OPEN_MAX"\);)Tj -4.8 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj T* (return\(openmax\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2735.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 229.7386 257.4916 Tm (Figure 2.17)Tj /T1_1 1 Tf 5.695 0 Td (Determine the number of \336le descriptors)Tj -0.092 Tc 9.9982 0 0 9.9982 147.5736 228.6968 Tm [(We )-194(m)]TJ 0 Tc 2.53 0 Td [(ight )-10(be )-10(tempted )-10(to )-10(call)]TJ /TT0 1 Tf 10.191 0 Td (close)Tj /T1_1 1 Tf 3.26 0 Td [(until )-10(we )-10(get )-10(an )-10(err)18(or )-10(r)18(eturn, )-10(but )-10(the )-10(err)18(or )-10(r)15(eturn)]TJ -17.781 -1.2 Td [(fr)18(om)]TJ /TT0 1 Tf 2.394 0 Td (close)Tj /T1_1 1 Tf 3.255 0 Td (\()Tj /TT0 1 Tf (EBADF)Tj /T1_1 1 Tf 0.2551 Tc (\)d)Tj 0 Tc 4.532 0 Td [(oesn\325t )-5(distinguish )-5(between )-5(an )-5(invalid )-5(descriptor )-5(and )-5(a )-5(descriptor)]TJ -10.181 -1.2 Td [(that )-318(wasn\325t )-318(open.)-818(If )-318(we )-318(tried )-318(this )-318(technique )-318(and )-318(descriptor )-318(9 )-318(was )-318(not )-318(open )-318(but)]TJ 0 -1.2 TD [(descriptor )-371(10 )-371(was, )-371(we )-371(would )-371(stop )-371(on )-371(9 )-371(and )-371(never )-371(close )-371(10.)-876(The)]TJ /TT0 1 Tf 32.872 0 Td (dup)Tj /T1_1 1 Tf 2.421 0 Td (function)Tj -35.293 -1.2 Td [(\(Section )-56(3.12\) )-56(does )-56(r)18(eturn )-56(a )-56(speci\336c )-56(err)18(or )-56(when)]TJ /TT0 1 Tf 21.335 0 Td (OPEN_MAX)Tj /T1_1 1 Tf 5.106 0 Td [(is )-56(exceeded, )-56(but )-56(duplicating)]TJ 0.25 Tc -26.441 -1.2 Td (ad)Tj 0 Tc 1.361 0 Td [(escriptor a couple of hundr)18(ed times is an extr)18(eme way to determine this value.)]TJ 0.439 -1.2 Td [(Some )-165(implementations )-165(will )-165(r)19(eturn)]TJ /TT0 1 Tf 16.045 0 Td (LONG_MAX)Tj /T1_1 1 Tf 5.215 0 Td [(for )-165(limit )-165(values )-165(that )-165(ar)]TJ 0.4148 Tc 10.488 0 Td (ee)Tj -0.018 Tc 1.373 0 Td (ff)Tj 0 Tc 0.648 0 Td (ectively)Tj -35.569 -1.2 Td [(unlimited. )-256(Such)-257(is )-6(the )-6(case )-6(with )-6(the )-6(Linux )-6(limit )-6(for)]TJ /TT0 1 Tf 22.904 0 Td (ATEXIT_MAX)Tj /T1_1 1 Tf 6.256 0.04 Td (\()Tj 0.333 -0.04 Td [(see )-6(Figur)]TJ 0.2565 Tc 4.021 0 Td (e2)Tj 0 Tc 1.236 0 Td (.15)Tj 1.25 0.04 Td (\))Tj 0.5065 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.369 0 Td (his)Tj -37.703 -1.2 Td [(isn\325t a good idea, because it can cause pr)18(ograms to behave badly)111(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47584 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(2.5)]TJ 41.507 0 Td (Limits)Tj /T1_1 1 Tf 4.826 0 Td (47)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj 0 -1.783 TD (static void pr_sysconf\(char *, int\);)Tj 0 -1.189 TD (static void pr_pathconf\(char *, char *, int\);)Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td (if \(argc != 2\))Tj 2.4 -1.189 Td (err_quit\("usage: a.out "\);)Tj -4.8 -1.783 Td (#ifdef ARG_MAX)Tj 2.4 -1.189 Td (printf\("ARG_MAX defined to be %ld\\n", \(long\)ARG_MAX+0\);)Tj -2.4 -1.189 Td (#else)Tj 2.4 -1.189 Td (printf\("no symbol for ARG_MAX\\n"\);)Tj -2.4 -1.189 Td (#endif)Tj T* (#ifdef _SC_ARG_MAX)Tj 2.4 -1.189 Td (pr_sysconf\("ARG_MAX =", _SC_ARG_MAX\);)Tj -2.4 -1.189 Td (#else)Tj 2.4 -1.189 Td (printf\("no symbol for _SC_ARG_MAX\\n"\);)Tj -2.4 -1.189 Td (#endif)Tj 0 -1.783 TD (/* similar processing for all the rest of the sysconf symbols... */)Tj T* (#ifdef MAX_CANON)Tj 2.4 -1.189 Td (printf\("MAX_CANON defined to be %ld\\n", \(long\)MAX_CANON+0\);)Tj -2.4 -1.189 Td (#else)Tj 2.4 -1.189 Td (printf\("no symbol for MAX_CANON\\n"\);)Tj -2.4 -1.189 Td (#endif)Tj 0 -1.189 TD (#ifdef _PC_MAX_CANON)Tj 2.4 -1.189 Td (pr_pathconf\("MAX_CANON =", argv[1], _PC_MAX_CANON\);)Tj -2.4 -1.189 Td (#else)Tj 2.4 -1.189 Td (printf\("no symbol for _PC_MAX_CANON\\n"\);)Tj -2.4 -1.189 Td (#endif)Tj 0 -1.783 TD (/* similar processing for all the rest of the pathconf symbols... */)Tj 2.4 -1.783 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj T* (static void)Tj 0 -1.189 TD (pr_sysconf\(char *mesg, int name\))Tj T* ({)Tj 2.4 -1.189 Td [(long )-1800(val;)]TJ 0 -1.783 TD (fputs\(mesg, stdout\);)Tj 0 -1.189 TD (errno = 0;)Tj T* (if \(\(val = sysconf\(name\)\) < 0\) {)Tj 2.4 -1.189 Td (if \(errno != 0\) {)Tj 2.4 -1.189 Td (if \(errno == EINVAL\))Tj 2.4 -1.189 Td (fputs\(" \(not supported\)\\n", stdout\);)Tj -2.4 -1.189 Td (else)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47585 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.9)]TJ 38.193 0 Td (Performance)Tj /T1_1 1 Tf 7.64 0 Td (785)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(grained )-199(locking )-199(to )-199(\336ne-grained )-199(locking.)-700(On )-199(the )-199(system )-199(used )-199(for )-199(these )-199(tests, )-199(coarse-)]TJ 0 -1.2 TD [(grained )-83(locking )-83(is )-83(the )-83(same )-83(as )-83(\336ne-grained )-83(locking )-83(for )-83(one )-83(pr)18(ocess, )-83(but )-83(becomes )-83(mor)19(e)]TJ T* [(expensive \(by about 30%\) with multiple pr)18(ocesses.)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-483(w)]TJ 0 Tc 2.77 0 Td [(ould )-299(like )-299(the )-299(clock )-299(time )-299(to )-299(decr)18(ease )-299(fr)18(om )-299(coarse-grained )-299(to )-299(\336ne-grained)]TJ -4.57 -1.2 Td [(locking, )-235(which )-235(it )-235(does )-235(as )-235(soon )-235(as )-235(we )-235(start )-235(using )-235(multiple )-235(pr)17(ocesses. )-485(However)]TJ 0.485 Tc 36.952 0 Td (,w)Tj 0 Tc 1.569 0 Td (e)Tj -38.521 -1.2 Td [(expect )-180(the )-180(system )-180(time )-180(to )-180(r)18(emain )-180(higher )-180(for )-180(\336ne-grained )-180(locking )-180(for )-180(any )-180(number )-180(of)]TJ T* [(pr)18(ocesses, )-22(because )-22(we )-22(ar)]TJ 0.2717 Tc 10.935 0 Td (ei)Tj 0 Tc 1.042 0 Td [(ssuing )-22(mor)18(e)]TJ /TT0 1 Tf 5.708 0 Td (fcntl)Tj /T1_0 1 Tf 3.272 0 Td [(calls )-22(with )-22(\336ne-grained )-22(locking )-22(than )-22(with)]TJ -20.957 -1.2 Td [(coarse-grained )-1(locking.)-501(If )-1(we )-1(total )-1(the )-1(number )-1(of)]TJ /TT0 1 Tf 22.039 0 Td (fcntl)Tj /T1_0 1 Tf 3.251 0 Td [(calls )-1(in )-1(Figur)]TJ 0.2507 Tc 5.707 0 Td (e2)Tj 0 Tc 1.23 0 Td [(0.6, )-1(we )-1(have )-1(an)]TJ -32.227 -1.2 Td [(average )-122(of )-122(87,858 )-122(for )-122(coarse-grained )-122(locking )-122(and )-122(1)55(15,520 )-122(for )-122(\336ne-grained )-122(locking.)]TJ -0.092 Tc 37.613 0 Td (We)Tj 0 Tc -37.613 -1.2 Td [(expect )-107(this )-107(incr)18(ease )-107(of )-107(31% )-107(mor)]TJ 0.3569 Tc 14.353 0 Td (ec)Tj 0 Tc 1.28 0 Td [(alls )-107(to)]TJ /TT0 1 Tf 3.092 0 Td (fcntl)Tj /T1_0 1 Tf 3.357 0 Td [(to )-107(r)18(esult )-107(in )-107(incr)18(eased )-107(system )-107(time )-107(for)]TJ -22.082 -1.2 Td [(\336ne-grained )-173(locking.)-673(Ther)18(efor)18(e, )-173(the )-173(decr)18(ease )-173(in )-173(system )-173(time )-173(for )-173(\336ne-grained )-173(locking)]TJ 0 -1.2 Td [(with )-91(two )-91(pr)18(ocesses, )-91(and )-91(the )-91(r)18(elatively )-91(small )-91(incr)18(ease )-91(with )-91(mor)]TJ 0.3413 Tc 28.297 0 Td (et)Tj 0 Tc 1.146 0 Td [(han )-91(two )-91(pr)18(ocesses, )-91(is)]TJ -29.443 -1.2 Td (puzzling.)Tj 1.8 -1.2 Td (Ther)Tj 0.2565 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.236 0 Td [(re )-43(t)]TJ 0 Tc 1.439 0 Td [(wo )-6(r)18(easons )-6(for )-6(this )-6(behavior)]TJ 0.5065 Tc 12.472 0 Td (.F)Tj 0 Tc 1.312 0 Td [(irst, )-6(r)18(ecall )-6(fr)18(om )-6(Figur)]TJ 0.2564 Tc 9.359 0 Td (e2)Tj 0 Tc 1.235 0 Td [(0.7 )-6(that )-6(ther)17(e)-256(is)-256(n)-1(o)]TJ -30.904 -1.2 Td [(signi\336cant )-213(dif)18(fer)18(ence )-213(between )-213(coarse-grained )-213(locking )-213(times )-213(and )-213(\336ne-grained )-213(locking)]TJ T* [(times )-81(when )-81(ther)19(e)-331(is)-331(no)-331(c)1(ontention )-80(for )-80(the )-80(locks.)-580(This )-80(shows )-80(that )-80(the )-80(CPU )-80(over)18(head )-80(of)]TJ -0 -1.2 Td [(the )-122(extra)]TJ /TT0 1 Tf 4.348 0 Td (fcntl)Tj /T1_0 1 Tf 3.372 0 Td [(calls )-122(doesn\325t )-122(af)18(fect )-122(the )-122(performance )-122(of )-122(the )-122(test )-122(pr)15(ogram. )-372(The)-373(second)]TJ -0.018 Tc -7.72 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ason )-164(is )-164(that )-164(with )-164(coarse-grained )-164(locking, )-164(we )-164(hold )-164(locks )-164(for )-164(longer )-164(periods )-164(of )-164(time,)]TJ -0.856 -1.2 Td [(thus )-227(incr)18(easing )-227(the )-227(likelihood )-227(that )-227(other )-227(pr)17(ocesses )-227(will )-227(block )-227(on )-227(a )-227(lock.)]TJ -0.055 Tc 34.38 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-227(\336ne-)]TJ -35.616 -1.2 Td [(grained )-103(locking, )-103(the )-103(locking )-103(is )-103(done )-103(over )-103(shorter )-103(intervals, )-103(so )-103(ther)21(e)-353(is)-353(l)1(ess )-103(chance )-103(that)]TJ -0 -1.2 Td [(pr)18(ocesses )-107(will )-107(block.)-607(If )-107(we )-107(count )-107(the )-107(number )-107(of )-107(times)]TJ /TT0 1 Tf 25.014 0 Td (fcntl)Tj /T1_0 1 Tf 3.357 0 Td [(blocks, )-107(we )-107(will )-107(see )-107(that)]TJ -28.371 -1.2 Td [(pr)18(ocesses )-130(block )-130(mor)]TJ 0.3801 Tc 9.154 0 Td (ef)Tj -0.018 Tc 1.192 0 Td (re)Tj 0 Tc 0.856 0 Td [(quently )-130(with )-130(coarse-grained )-130(locking.)-630(For )-130(example, )-130(with )-130(four)]TJ -11.202 -1.2 Td [(pr)18(ocesses, )-152(coarse-grained )-152(locking )-152(blocks )-152(almost )-152(\336ve )-152(times )-152(mor)]TJ 0.4021 Tc 28.706 0 Td (ef)Tj -0.018 Tc 1.214 0 Td (re)Tj 0 Tc 0.856 0 Td [(quently )-152(than )-152(with)]TJ -30.776 -1.2 Td [(\336ne-grained )-156(locking.)-657(The )-156(extra )-156(work )-156(that )-156(pr)18(ocesses )-156(need )-156(to )-156(do )-156(to )-156(put )-156(themselves )-156(to)]TJ T* [(sleep )-114(and )-114(wake )-114(up )-114(mor)]TJ 0.3639 Tc 10.802 0 Td (eo)Tj 0 Tc 1.389 0 Td [(ften )-114(with )-114(coarse-grained )-114(locking )-114(incr)18(eases )-114(the )-114(system )-114(time,)]TJ -0.018 Tc -12.191 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ducing the dif)18(fer)18(ence in system times between the two locking appr)18(oaches.)]TJ 0.944 -1.2 Td [(The )-114(\336nal )-114(column )-114(in )-114(Figur)]TJ 0.3639 Tc 11.713 0 Td (e2)Tj 0 Tc 1.343 0 Td [(0.8, )-114(labeled )-114(\324)37(\324)]TJ /TT1 1 Tf ($)Tj /T1_0 1 Tf 6.927 0 Td [(Sys,\325)37(\325)-364(is)-364(the )-114(per)18(centage )-114(incr)18(ease )-114(in )-114(the)]TJ -21.782 -1.2 Td [(system )-411(CPU )-411(time )-411(fr)18(om )-411(advisory )-411(\336ne-grained )-411(locking )-411(to )-411(mandatory )-411(\336ne-grained)]TJ T* [(locking. )-385(These)-385(per)18(centages )-135(show )-135(that )-135(mandatory )-135(locking )-135(adds )-135(signi\336cantly )-135(\(between)]TJ T* [(20% and 76%\) to the system time as concurr)18(ency incr)18(eases.)]TJ 1.8 -1.2 Td [(Since )-77(the )-77(user )-77(code )-77(for )-77(all )-77(these )-77(tests )-77(is )-77(almost )-77(identical )-77(\(ther)]TJ 0.3267 Tc 27.504 0 Td (ea)Tj -0.018 Tc 1.306 0 Td [(re )-113(s)]TJ 0 Tc 1.607 0 Td [(ome )-77(additional)]TJ /TT0 1 Tf -32.216 -1.2 Td (fcntl)Tj /T1_0 1 Tf 3.43 0 Td [(calls )-180(for )-180(both )-180(advisory )-180(\336ne-grained )-180(and )-180(mandatory )-180(\336ne-grained )-180(locking\), )-180(we)]TJ -3.43 -1.2 Td [(expect the user CPU times to be the same acr)18(oss any r)18(ow)92(.)]TJ 7.9995 0 0 7.9995 183.5892 261.9843 Tm [(The )-59(\336rst )-59(time )-59(we )-59(ran )-59(these )-59(tests, )-59(we )-59(measur)16(ed )-59(the )-59(user )-59(times )-59(for )-59(coarse-grained )-59(locking )-59(to )-59(be)]TJ 0 -1.25 TD [(almost )-79(twice )-79(as )-79(long )-79(as )-79(the )-79(times )-79(for )-79(\336ne-grained )-79(locking )-79(when )-79(multiple )-79(pr)14(ocesses )-79(competed)]TJ T* [(for )-39(the )-39(locks.)-540(Because )-39(the )-39(two )-39(versions )-39(of )-39(the )-39(database )-39(ar)]TJ 0.2895 Tc 25.692 0 Td (et)Tj 0 Tc 1.094 0 Td [(he )-39(same, )-39(except )-39(for )-39(the )-39(number )-39(of)]TJ -26.786 -1.25 Td [(calls )-45(to)]TJ /TT0 1 Tf 3.412 0 Td (fcntl)Tj /T1_0 1 Tf 0.295 Tc (,t)Tj 0 Tc 3.871 0 Td [(his )-45(made )-45(no )-45(sense.)-545(After )-45(investigating, )-45(we )-45(discover)18(ed )-45(that )-45(because )-45(ther)]TJ 0.2949 Tc 32.185 0 Td (ew)Tj 0 Tc 1.608 0 Td (as)Tj -41.076 -1.25 Td (mor)Tj 0.2544 Tc 1.806 0 Td (ec)Tj 0 Tc 1.177 0 Td [(ontention )-4(with )-4(coarse-grained )-4(locking, )-4(pr)17(ocesses )-4(wer)]TJ 0.2545 Tc 23.504 0 Td (ew)Tj 0 Tc 1.567 0 Td [(aiting )-4(longer)]TJ 0.2545 Tc 5.575 0 Td (,a)Tj 0 Tc 1.004 0 Td [(nd )-4(the )-4(operating)]TJ -34.635 -1.25 Td [(system )-69(decided )-69(to )-69(r)18(educe )-69(the )-69(CPU )-69(clock )-69(fr)15(equency )-69(to )-69(save )-69(power)]TJ 0.5693 Tc 29.469 0 Td (.W)Tj 0 Tc 1.764 0 Td [(ith )-69(\336ne-grained )-69(locking,)]TJ -31.234 -1.25 Td (ther)Tj 0.3855 Tc 1.764 0 Td (ew)Tj 0 Tc 1.698 0 Td [(as )-136(mor)]TJ 0.3856 Tc 3.116 0 Td (ea)Tj 0 Tc 1.365 0 Td [(ctivity)111(,)-386(so)-386(t)1(he )-136(system )-136(incr)18(eased )-136(the )-136(CPU )-136(clock )-136(fr)20(equency)]TJ 0.6356 Tc 25.72 0 Td (.T)Tj 0 Tc 1.499 0 Td [(his )-136(\(arti\336cially\))]TJ -35.161 -1.25 Td [(made )-248(the )-248(coarse-grained )-248(locking )-248(tests )-248(r)6(un )-248(mor)]TJ 0.4984 Tc 22.009 0 Td (es)Tj 0 Tc 1.401 0 Td [(lowly )-248(than )-248(the )-248(\336ne-grained )-248(tests.)-750(After)]TJ -23.41 -1.25 Td [(disabling )-59(the )-59(fr)18(equency )-59(scaling )-59(featur)18(e, )-59(we )-59(measur)17(ed )-59(the )-59(performance )-59(of )-59(the )-59(test )-59(without )-59(this)]TJ T* [(bias, and the dif)18(fer)18(ence in user times was much smaller)74(.)]TJ 9.9994 0 0 9.9994 147.5917 146.9912 Tm [(The )-65(values )-65(in )-65(the )-65(\336rst )-65(r)19(ow )-65(of )-65(Figur)]TJ 0.3147 Tc 15.768 0 Td (e2)Tj 0 Tc 1.294 0 Td [(0.8 )-65(ar)]TJ 0.3147 Tc 2.442 0 Td (es)Tj 0 Tc 1.218 0 Td [(imilar )-65(to )-65(those )-65(for )-65(an)]TJ /T1_2 1 Tf 9.809 0 Td [(nr)18(ec)]TJ /T1_0 1 Tf 2.038 0 Td [(of )-65(2,000 )-65(in)]TJ -34.369 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e2)Tj 0 Tc 1.229 0 Td [(0.7. )-250(This)-250(corr)18(esponds to our expectation.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47586 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (981)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 140.3916 670.9597 Tm [(timing comparison,)-500(571)]TJ /TT0 1 Tf -1.35 -1.25 Td (recv)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(331,)-250(451, 592, 612)]TJ 12.04 0.09 Td (\320)Tj 0.583 -0.09 Td (615, 626)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (627)Tj -18.257 -1.25 Td [(de\336nition of,)-500(612)]TJ /TT0 1 Tf -1.35 -1.25 Td (recv_fd)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(642)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (644, 650, 655, 660, 896)Tj -9.89 -1.25 Td [(de\336nition of,)-500(642, 647)]TJ /TT0 1 Tf -1.35 -1.25 Td (recvfrom)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(331,)-250(451, 613, 620)]TJ 12.04 0.09 Td (\320)Tj 0.583 -0.09 Td (623)Tj -16.49 -1.25 Td [(de\336nition of,)-500(613)]TJ /TT0 1 Tf -1.35 -1.25 Td (recvmsg)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(331,)-250(451, 613, 644, 647)]TJ 14.04 0.09 Td (\320)Tj 0.583 -0.09 Td (648, 651)Tj -17.89 -1.25 Td [(de\336nition of,)-500(613)]TJ /TT0 1 Tf -1.35 -1.25 Td (recv_ufd)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(650)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(651)]TJ /TT0 1 Tf -1.35 -1.25 Td (RE_DUP_MAX)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(39,)-250(43, 49)]TJ -0.018 Tc -6.417 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(entrant functions,)-500(330)]TJ 9.904 0.09 Td (\320)Tj 0.583 -0.09 Td (332)Tj /TT0 1 Tf -11.344 -1.25 Td (regcomp)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(39,)-250(43)]TJ /TT0 1 Tf -4.617 -1.25 Td (regexec)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(39,)-250(43)]TJ /TT0 1 Tf -4.617 -1.25 Td ()Tj /T1_0 1 Tf 5.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj -0.018 Tc -10.039 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(gister variables,)-500(217)]TJ -0.018 Tc -0.856 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(gular \336le,)-500(95)]TJ -0.018 Tc -0.856 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(lative pathname,)-500(5, 8, 43)]TJ 10.988 0.09 Td (\320)Tj 0.583 -0.09 Td (44, 50, 64)Tj 4.083 0.09 Td (\320)Tj 0.583 -0.09 Td (65, 135, 553)Tj -0.018 Tc -17.094 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(liable signals,)-500(335)]TJ 8.056 0.09 Td (\320)Tj 0.583 -0.09 Td (336)Tj -0.018 Tc -9.496 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(mote mode, pseudo terminal,)-500(741)]TJ /TT0 1 Tf -0.856 -1.25 Td (remove)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(1)55(16)]TJ 5.985 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (9, 121, 125, 452)Tj -10.18 -1.25 Td (de\336nition of,)Tj -0.055 Tc 6.192 0 Td (11)Tj 0 Tc 0.945 0 Td (9)Tj /TT0 1 Tf -8.487 -1.25 Td (remove_job)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(814,)-250(822, 832)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(822)]TJ /TT0 1 Tf -1.35 -1.25 Td (rename)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(1)55(19)]TJ 5.985 0.09 Td (\320)Tj 0.583 -0.09 Td (121, 125, 331, 452)Tj -9.235 -1.25 Td (de\336nition of,)Tj -0.055 Tc 6.192 0 Td (11)Tj 0 Tc 0.945 0 Td (9)Tj /TT0 1 Tf -8.487 -1.25 Td (renameat)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(1)55(19)]TJ 5.985 0.09 Td (\320)Tj 0.583 -0.09 Td (120, 331, 452)Tj -10.435 -1.25 Td (de\336nition of,)Tj -0.055 Tc 6.192 0 Td (11)Tj 0 Tc 0.945 0 Td (9)Tj /TT0 1 Tf -8.487 -1.25 Td (replace_job)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(814,)-250(821, 837)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(821)]TJ -1.35 -1.25 Td (REPRINT terminal character)Tj 0.5 Tc 12.57 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 681, 687, 690,)Tj -11.12 -1.25 Td (703)Tj /TT0 1 Tf -2.7 -1.25 Td (reset)Tj /T1_0 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(713,)-250(943)]TJ -0.018 Tc -3.417 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(sour)18(ce limits,)-500(220)]TJ 7.962 0.09 Td (\320)Tj 0.583 -0.09 Td (225, 233, 252, 322, 382)Tj -0.018 Tc -9.402 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(started system calls,)-500(329)]TJ 10.936 0.09 Td (\320)Tj 0.583 -0.09 Td (330, 342)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (343, 351, 354,)Tj -13.842 -1.25 Td (508, 700)Tj /TT0 1 Tf -2.7 -1.25 Td (restrict)Tj /T1_0 1 Tf 5.217 0 Td [(keywor)18(d, )-250(26,)-250(93, 123, 146, 148,)]TJ -2.517 -1.25 Td (152)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (153, 156, 158)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (159, 161)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (163, 190, 192,)Tj -12.5 -1.25 Td (195, 346, 350, 385, 400, 409, 414, 428)Tj 15.583 0.09 Td (\320)Tj 0.583 -0.09 Td (432, 434,)Tj -16.166 -1.25 Td (440)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (441, 454, 502, 506, 596, 599)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (600, 605,)Tj -14.333 -1.25 Td (608, 613, 624)Tj /TT0 1 Tf -2.7 -1.25 Td (rewind)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(149,)-250(158, 168, 452)]TJ -2.667 -1.25 Td [(de\336nition of,)-500(158)]TJ /TT0 1 Tf -1.35 -1.25 Td (rewinddir)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(130)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (135, 452)Tj -11.09 -1.25 Td [(de\336nition of,)-500(130)]TJ /TT0 1 Tf -1.35 -1.25 Td (rfork)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(229)]TJ -3.417 -1.25 Td [(Ritchie, D. M.,)-500(xx, 26, 143, 149, 155, 162, 164, 208,)]TJ 2.7 -1.25 Td (898, 906, 950, 952)Tj /TT0 1 Tf -2.7 -1.25 Td (RLIM_INFINITY)Tj /T1_0 1 Tf 8.217 0 Td [(constant, )-250(221,)-250(468)]TJ /TT0 1 Tf -8.217 -1.25 Td (rlimit)Tj /T1_0 1 Tf 4.017 0 Td [(str)8(uctur)18(e, )-250(220,)-250(224, 467, 907)]TJ /TT0 1 Tf -4.017 -1.25 Td (RLIMIT_AS)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(221)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (223)Tj /TT0 1 Tf -12.463 -1.25 Td (RLIMIT_CORE)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(221)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (223, 317)Tj /TT0 1 Tf 12.337 65 Td (RLIMIT_CPU)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(221)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (223)Tj /TT0 1 Tf -13.063 -1.25 Td (RLIMIT_DATA)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(221)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (223)Tj /TT0 1 Tf -13.663 -1.25 Td (RLIMIT_FSIZE)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(221)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (223, 382)Tj /TT0 1 Tf -14.263 -1.25 Td (RLIMIT_INFINITY)Tj /T1_0 1 Tf 9.417 0 Td [(constant, )-250(224,)-250(907)]TJ /TT0 1 Tf -9.417 -1.25 Td (RLIMIT_MEMLOCK)Tj /T1_0 1 Tf 8.817 0 Td [(constant, )-250(221)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (223)Tj /TT0 1 Tf -15.463 -1.25 Td (RLIMIT_MSGQUEUE)Tj /T1_0 1 Tf 9.417 0 Td [(constant, )-250(221,)-250(223)]TJ /TT0 1 Tf -9.417 -1.25 Td (RLIMIT_NICE)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(221,)-250(223)]TJ /TT0 1 Tf -7.017 -1.25 Td (RLIMIT_NOFILE)Tj /T1_0 1 Tf 8.217 0 Td [(constant, )-250(221)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (223, 467, 907)Tj /TT0 1 Tf -14.863 -1.25 Td (RLIMIT_NPROC)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(221)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (223)Tj /TT0 1 Tf -14.263 -1.25 Td (RLIMIT_NPTS)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(221,)-250(223)]TJ /TT0 1 Tf -7.017 -1.25 Td (RLIMIT_RSS)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(222)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (223)Tj /TT0 1 Tf -13.063 -1.25 Td (RLIMIT_SBSIZE)Tj /T1_0 1 Tf 8.217 0 Td [(constant, )-250(222)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (223)Tj /TT0 1 Tf -14.863 -1.25 Td (RLIMIT_SIGPENDING)Tj /T1_0 1 Tf 10.617 0 Td [(constant, )-250(222,)-250(224)]TJ /TT0 1 Tf -10.617 -1.25 Td (RLIMIT_STACK)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(222,)-250(224)]TJ /TT0 1 Tf -7.617 -1.25 Td (RLIMIT_SWAP)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(222,)-250(224)]TJ /TT0 1 Tf -7.017 -1.25 Td (RLIMIT_VMEM)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(222,)-250(224)]TJ /TT0 1 Tf -7.017 -1.25 Td (rlim_t)Tj /T1_0 1 Tf 4.017 0 Td [(data type,)-500(59, 223)]TJ /TT0 1 Tf -4.017 -1.25 Td (rlogin)Tj /T1_0 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(717,)-250(741)]TJ 8.191 0.09 Td (\320)Tj 0.583 -0.09 Td (742)Tj /TT0 1 Tf -12.791 -1.25 Td (rlogind)Tj /T1_0 1 Tf 4.617 0 Td [(pr)18(ogram, )-250(717,)-250(734, 741, 944)]TJ /TT0 1 Tf -4.617 -1.25 Td (rm)Tj /T1_0 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(559,)-250(663)]TJ /TT0 1 Tf -1.617 -1.25 Td (rmdir)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(1)55(17, 1)55(19)]TJ 7.93 0.09 Td (\320)Tj 0.583 -0.09 Td (120, 125, 129)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (130, 331)Tj -16.747 -1.25 Td [(de\336nition of,)-500(130)]TJ /TT0 1 Tf -1.35 -1.25 Td (robust)Tj /T1_0 1 Tf 4.017 0 Td [(attribute, )-250(431,)-250(571)]TJ /TT0 1 Tf -4.017 -1.25 Td (R_OK)Tj /T1_0 1 Tf 2.817 0 Td [(constant, )-250(102)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (103)Tj -0.018 Tc -9.463 -1.25 Td (ro)Tj 0 Tc 0.923 0 Td (ot)Tj 0.427 -1.25 Td [(dir)18(ectory)]TJ 0.5 Tc 3.914 0 Td (,4)Tj 0 Tc 1.25 0 Td [(,)-250(8,)-250(24, 139, 141, 233, 252, 283, 910)]TJ -5.164 -1.25 Td [(login name,)-500(16)]TJ /TT0 1 Tf -1.35 -1.25 Td (routed)Tj /T1_0 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(472)]TJ /TT0 1 Tf -4.017 -1.25 Td (rpcbind)Tj /T1_0 1 Tf 4.617 0 Td [(pr)18(ogram, )-250(465)]TJ -4.617 -1.25 Td (RS)Tj 1.193 0.09 Td (-)Tj 0.333 -0.09 Td [(232, )-250(674,)-250(685)]TJ 5.833 0.09 Td (\320)Tj 0.583 -0.09 Td (686)Tj /TT0 1 Tf -7.943 -1.25 Td (rsyslogd)Tj /T1_0 1 Tf 5.217 0 Td [(pr)18(ogram, )-250(465,)-250(480)]TJ /TT0 1 Tf -5.217 -1.25 Td (RTSIG_MAX)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(40,)-250(43)]TJ -5.817 -1.25 Td [(Rudof)18(f, A. M.,)-500(157, 291, 470, 589, 952)]TJ /TT0 1 Tf 0 -1.25 TD (runacct)Tj /T1_0 1 Tf 4.617 0 Td [(pr)18(ogram, )-250(269)]TJ /TT0 1 Tf -4.617 -6 Td (S5)Tj /T1_0 1 Tf 1.617 0 Td [(\336le system,)-500(65)]TJ /TT0 1 Tf -1.617 -1.25 Td (sa)Tj /T1_0 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(269)]TJ /TT0 1 Tf -1.617 -1.25 Td (sac)Tj /T1_0 1 Tf 2.217 0 Td [(pr)18(ogram, )-250(290)]TJ -2.217 -1.25 Td [(Sacksen, J.,)-500(xxxii)]TJ T* [(SAF \(Service Access Facility\),)-500(290)]TJ T* [(safe, async-signal,)-500(330, 446, 450, 457, 461)]TJ 18.052 0.09 Td (\320)Tj 0.583 -0.09 Td (462, 927)Tj /TT0 1 Tf -18.635 -1.25 Td (sa_handler)Tj /T1_0 1 Tf 6.417 0 Td [(str)8(uctur)18(e, )-250(376)]TJ /TT0 1 Tf -6.417 -1.25 Td (SA_INTERRUPT)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(351,)-250(354)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (355)Tj /TT0 1 Tf -16.263 -1.25 Td (s_alloc)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(584)]TJ -4.617 -1.25 Td (Salus, P)Tj 0.25 Tc 3.318 0 Td (.H)Tj 0 Tc 1.332 0 Td [(., )-250(xxxii,)-250(952)]TJ /TT0 1 Tf -4.65 -1.25 Td (SA_NOCLDSTOP)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(351)]TJ /TT0 1 Tf -7.617 -1.25 Td (SA_NOCLDWAIT)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(333,)-250(351)]TJ /TT0 1 Tf -7.617 -1.25 Td (SA_NODEFER)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(351,)-250(354)]TJ -6.417 -1.25 Td [(Santa Cr)8(uz Operation,)]TJ /T1_2 1 Tf 10.388 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td (SCO)Tj /TT0 1 Tf -11.805 -1.25 Td (SA_ONSTACK)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(351)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47587 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (450)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm (extern char **environ;)Tj 0 -2.14 TD (static void)Tj 0 -1.189 TD (thread_init\(void\))Tj T* ({)Tj 2.4 -1.189 Td (pthread_key_create\(&key, free\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (char *)Tj 0 -1.189 TD (getenv\(const char *name\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-2400(i,)-600(len;)]TJ T* [(char )-1800(*envbuf;)]TJ 0 -2.14 TD (pthread_once\(&init_done, thread_init\);)Tj 0 -1.189 TD (pthread_mutex_lock\(&env_mutex\);)Tj T* (envbuf = \(char *\)pthread_getspecific\(key\);)Tj T* (if \(envbuf == NULL\) {)Tj 2.4 -1.189 Td (envbuf = malloc\(MAXSTRINGSZ\);)Tj T* (if \(envbuf == NULL\) {)Tj 2.4 -1.189 Td (pthread_mutex_unlock\(&env_mutex\);)Tj T* (return\(NULL\);)Tj -2.4 -1.189 Td (})Tj T* (pthread_setspecific\(key, envbuf\);)Tj -2.4 -1.189 Td (})Tj T* (len = strlen\(name\);)Tj T* (for \(i = 0; environ[i] != NULL; i++\) {)Tj 2.4 -1.189 Td (if \(\(strncmp\(name, environ[i], len\) == 0\) &&)Tj 1.2 -1.189 Td (\(environ[i][len] == \325=\325\)\) {)Tj 1.2 -1.189 Td (strncpy\(envbuf, &environ[i][len+1], MAXSTRINGSZ-1\);)Tj T* (pthread_mutex_unlock\(&env_mutex\);)Tj 0 -1.189 TD (return\(envbuf\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (pthread_mutex_unlock\(&env_mutex\);)Tj T* (return\(NULL\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2867.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 219.9856 270.6865 Tm (Figure 12.13)Tj /T1_1 1 Tf 0.25 Tc 6.25 0 Td (At)Tj 0 Tc 1.354 0 Td [(hr)18(ead-safe, compatible version of)]TJ /TT0 1 Tf 14.943 0 Td (getenv)Tj /T1_1 1 Tf -0.092 Tc 9.9988 0 0 9.9988 147.5823 246.6894 Tm [(We )-188(u)]TJ 0 Tc 2.244 0 Td (se)Tj /TT0 1 Tf 1.156 0 Td (pthread_once)Tj /T1_1 1 Tf 7.454 0 Td [(to )-3(ensur)]TJ 0.2535 Tc 3.591 0 Td (et)Tj 0 Tc 1.059 0 Td [(hat )-3(only )-3(one )-3(key )-3(is )-3(cr)16(eated )-4(for )-4(the )-4(thr)19(ead-speci\336c)]TJ -17.303 -1.2 Td [(data )-12(we )-12(will )-12(use.)-512(If)]TJ /TT0 1 Tf 8.943 0 Td (pthread_getspecific)Tj /T1_1 1 Tf -0.018 Tc 11.662 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-12(a )-12(null )-12(pointer)74(,)-262(we)-262(need )-12(to )-12(allocate)]TJ -21.461 -1.2 Td [(the )-41(memory )-41(buf)18(fer )-41(and )-41(associate )-41(it )-41(with )-41(the )-41(key)]TJ 0.5412 Tc 21.281 0 Td (.O)Tj 0 Tc 1.577 0 Td [(therwise, )-41(we )-41(use )-41(the )-41(memory )-41(buf)17(fer)]TJ -0.018 Tc -22.858 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turned )-23(by)]TJ /TT0 1 Tf 4.65 0 Td (pthread_getspecific)Tj /T1_1 1 Tf 0.5226 Tc (.F)Tj 0 Tc 12.729 0 Td [(or )-23(the )-23(destr)9(uctor )-22(function, )-22(we )-22(use)]TJ /TT0 1 Tf 15.28 0 Td (free)Tj /T1_1 1 Tf 2.672 0 Td [(to )-22(fr)18(ee)]TJ -36.188 -1.2 Td [(the )-174(memory )-174(pr)18(eviously )-174(allocated )-174(by)]TJ /TT0 1 Tf 17.079 0 Td (malloc)Tj /T1_1 1 Tf 0.674 Tc (.T)Tj 0 Tc 5.137 0 Td [(he )-174(destr)8(uctor )-174(function )-174(will )-174(be )-174(called)]TJ -22.216 -1.2 Td [(with the value of the thr)18(ead-speci\336c data only if the value is non-null.)]TJ 1.8 -1.2 Td [(Note )-38(that )-38(although )-38(this )-38(version )-38(of)]TJ /TT0 1 Tf 15.417 0 Td (getenv)Tj /T1_1 1 Tf 3.889 0 Td [(is )-38(thr)18(ead-safe, )-38(it )-38(is )-38(not )-38(async-signal )-38(safe.)]TJ -21.105 -1.2 Td [(Even )-115(if )-115(we )-115(made )-115(the )-115(mutex )-115(r)18(ecursive, )-115(we )-115(could )-115(not )-115(make )-115(it )-115(r)19(eentrant )-115(with )-115(r)18(espect )-115(to)]TJ 0 -1.2 TD (signal handlers because it calls)Tj /TT0 1 Tf 13.807 0 Td (malloc)Tj /T1_1 1 Tf 0.25 Tc (,w)Tj 0 Tc 4.934 0 Td (hich itself is not async-signal safe.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1507.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47588 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.7)]TJ /TT0 1 Tf 27.286 0 Td (access)Tj /T1_0 1 Tf 4.1 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (faccessat)Tj /T1_0 1 Tf 5.9 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (103)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (The)Tj /T1_2 1 Tf 2.205 0 Td (\337ag)Tj /T1_0 1 Tf 2.02 0 Td [(ar)18(gument )-281(can )-281(be )-281(used )-281(to )-281(change )-281(the )-281(behavior )-281(of)]TJ /TT0 1 Tf 23.955 0 Td (faccessat)Tj /T1_0 1 Tf 0.7813 Tc (.I)Tj 0.5314 Tc 6.768 0 Td (ft)Tj 0 Tc 1.19 0 Td (he)Tj /TT0 1 Tf -37.939 -1.2 Td (AT_EACCESS)Tj /T1_0 1 Tf 6.318 0 Td [(\337ag )-68(is )-68(set, )-68(the )-68(access )-68(checks )-68(ar)]TJ 0.3179 Tc 13.674 0 Td (em)Tj 0 Tc 1.68 0 Td [(ade )-68(using )-68(the )-68(ef)18(fective )-68(user )-68(and )-68(gr)19(oup)]TJ -21.672 -1.2 Td [(IDs of the calling pr)18(ocess instead of the r)18(eal user and gr)18(oup IDs.)]TJ /TT1 1 Tf -3.6 -2.4 Td (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e4)Tj 0 Tc 1.229 0 Td (.8 shows the use of the)Tj /TT0 1 Tf 10.219 0 Td (access)Tj /T1_0 1 Tf 3.85 0 Td (function.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5850.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 575.4299 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td (if \(argc != 2\))Tj 2.4 -1.189 Td (err_quit\("usage: a.out "\);)Tj -2.4 -1.189 Td (if \(access\(argv[1], R_OK\) < 0\))Tj 2.4 -1.189 Td (err_ret\("access error for %s", argv[1]\);)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (printf\("read access OK\\n"\);)Tj -2.4 -1.189 Td (if \(open\(argv[1], O_RDONLY\) < 0\))Tj 2.4 -1.189 Td (err_ret\("open error for %s", argv[1]\);)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (printf\("open for reading OK\\n"\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3931.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 252.5065 377.0101 Tm (Figure 4.8)Tj /T1_0 1 Tf 5.195 0 Td (Example of)Tj /TT0 1 Tf 5.26 0 Td (access)Tj /T1_0 1 Tf 3.85 0 Td (function)Tj 9.9982 0 0 9.9982 129.577 355.414 Tm [(Her)18(e)-250(is)-250(a)-250(sample session with this pr)18(ogram:)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 165.5705 341.1166 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (ls -l a.out)Tj /TT0 1 Tf -1.2 -1.189 Td [(-rwxrwxr-x )-600(1)-600(sar )-4800(15945)-600(Nov 30 12:10 a.out)]TJ T* ($)Tj /TT2 1 Tf 1.2 0 Td (./a.out a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (read access OK)Tj T* (open for reading OK)Tj 0 -1.189 TD ($)Tj /TT2 1 Tf 1.2 0 Td (ls -l /etc/shadow)Tj /TT0 1 Tf -1.2 -1.189 Td [(-r-------- )-600(1)-600(root )-4800(1315)-600(Jul 17)-1200(2002 /etc/shadow)]TJ 0 -1.189 TD ($)Tj /TT2 1 Tf 1.2 0 Td (./a.out /etc/shadow)Tj /TT0 1 Tf -1.2 -1.189 Td (access error for /etc/shadow: Permission denied)Tj T* (open error for /etc/shadow: Permission denied)Tj T* ($)Tj /TT2 1 Tf 1.2 0 Td (su)Tj /T1_2 1 Tf 19.6 0 Td (become superuser)Tj /TT0 1 Tf -20.8 -1.189 Td (Password:)Tj /T1_2 1 Tf 20.8 0 Td (enter superuser password)Tj /TT0 1 Tf -20.8 -1.189 Td (#)Tj /TT2 1 Tf 1.2 0 Td (chown root a.out)Tj /T1_2 1 Tf 19.6 0 Td (change \336le\325)Tj 0.25 Tc 4.464 0 Td (su)Tj 0 Tc 1.195 0 Td [(ser ID to r)18(oot)]TJ /TT0 1 Tf -26.459 -1.189 Td (#)Tj /TT2 1 Tf 1.2 0 Td (chmod u+s a.out)Tj /T1_2 1 Tf 19.6 0 Td (and turn on set-user-ID bit)Tj /TT0 1 Tf -20.8 -1.189 Td (#)Tj /TT2 1 Tf 1.2 0 Td (ls -l a.out)Tj /T1_2 1 Tf 19.6 0 Td (check owner and SUID bit)Tj /TT0 1 Tf -20.8 -1.189 Td [(-rwsrwxr-x )-600(1)-600(root )-4200(15945)-600(Nov 30 12:10 a.out)]TJ T* (#)Tj /TT2 1 Tf 1.2 0 Td (exit)Tj /T1_2 1 Tf 19.6 0 Td (go back to normal user)Tj /TT0 1 Tf -20.8 -1.189 Td ($)Tj /TT2 1 Tf 1.2 0 Td (./a.out /etc/shadow)Tj /TT0 1 Tf -1.2 -1.189 Td (access error for /etc/shadow: Permission denied)Tj T* (open for reading OK)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47589 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.6)]TJ 31.183 0 Td [(An )-250(Open )-250(Server)]TJ 0.5 Tc 7.572 0 Td (,V)Tj 0 Tc 1.361 0 Td [(ersion )-250(2)]TJ /T1_1 1 Tf 5.717 0 Td (663)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (The)Tj /T1_2 1 Tf 2.116 0 Td [(ar)18(gc)]TJ /T1_0 1 Tf 2.164 0 Td (and)Tj /T1_2 1 Tf 2.135 0 Td [(ar)18(gv)]TJ /T1_0 1 Tf 2.257 0 Td [(ar)18(guments )-192(ar)]TJ 0.4423 Tc 6.049 0 Td (et)Tj 0 Tc 1.247 0 Td [(he )-192(same )-192(ones )-192(passed )-192(to )-192(the)]TJ /TT0 1 Tf 13.33 0 Td (main)Tj /T1_0 1 Tf 2.842 0 Td [(function )-192(of )-192(the)]TJ -32.142 -1.2 Td [(pr)18(ogram. )-352(The)]TJ /T1_2 1 Tf 6.737 0 Td (options)Tj /T1_0 1 Tf 3.296 0 Td [(ar)18(gument )-102(is )-102(a )-102(string )-102(containing )-102(the )-102(option )-102(characters )-102(supported)]TJ -10.033 -1.2 Td [(by )-20(the )-20(command.)-520(If )-20(an )-20(option )-20(character )-20(is )-20(followed )-20(by )-20(a )-20(colon, )-20(then )-20(the )-20(option )-20(takes )-20(an)]TJ 0 -1.2 TD [(ar)18(gument. )-372(Otherwise,)-372(the )-122(option )-122(exists )-122(by )-122(itself.)-621(For )-122(example, )-122(if )-122(the )-122(usage )-122(statement)]TJ -0 -1.2 Td (for a command was)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5904 603.1939 Tm (command [-i] [-u username] [-z] filename)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5915 584.1252 Tm (we would pass)Tj /TT0 1 Tf 6.897 0 Td ("iu:z")Tj /T1_0 1 Tf 3.85 0 Td (as the)Tj /T1_2 1 Tf 2.811 0 Td (options)Tj /T1_0 1 Tf 3.194 0 Td (string to)Tj /TT0 1 Tf 3.946 0 Td (getopt)Tj /T1_0 1 Tf (.)Tj -18.898 -1.2 Td (The)Tj /TT0 1 Tf 2.131 0 Td (getopt)Tj /T1_0 1 Tf 4.057 0 Td [(function )-207(is )-207(normally )-207(used )-207(in )-207(a )-207(loop )-207(that )-207(terminates )-207(when)]TJ /TT0 1 Tf 27.411 0 Td (getopt)Tj /T1_0 1 Tf -0.018 Tc -35.4 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj /TT1 1 Tf 2.836 0 Td (!)Tj /T1_0 1 Tf [(1. )-506(During)-505(each )-256(iteration )-256(of )-256(the )-256(loop,)]TJ /TT0 1 Tf 18.53 0 Td (getopt)Tj /T1_0 1 Tf 4.106 0 Td [(will )-255(r)18(eturn )-255(the )-255(next )-255(option)]TJ -26.327 -1.2 Td [(pr)18(ocessed. )-487(It)-486(is )-237(up )-237(to )-237(the )-237(application )-237(to )-237(sort )-237(out )-237(any )-237(con\337ict )-237(in )-237(options, )-237(however;)]TJ /TT0 1 Tf T* (getopt)Tj /T1_0 1 Tf 3.85 0 Td [(simply parses the options and enfor)18(ces a standar)]TJ 0.25 Tc 21.499 0 Td (df)Tj 0 Tc 1.194 0 Td (ormat.)Tj -24.743 -1.2 Td [(When )-100(it )-100(encounters )-100(an )-100(invalid )-100(option,)]TJ /TT0 1 Tf 17.576 0 Td (getopt)Tj /T1_0 1 Tf -0.018 Tc 3.95 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-100(a )-100(question )-100(mark )-100(instead )-100(of)]TJ -24.182 -1.2 Td [(the )-128(character)]TJ 0.6279 Tc 5.756 0 Td (.I)Tj 0 Tc 1.215 0 Td [(f)-378(an)-378(option\325s )-128(ar)18(gument )-128(is )-128(missing,)]TJ /TT0 1 Tf 15.998 0 Td (getopt)Tj /T1_0 1 Tf 3.978 0 Td [(will )-128(also )-128(r)18(eturn )-128(a )-128(question)]TJ -26.947 -1.2 Td [(mark, )-87(but )-87(if )-87(the )-87(\336rst )-87(character )-87(in )-87(the )-87(options )-87(string )-87(is )-87(a )-87(colon,)]TJ /TT0 1 Tf 28.294 0 Td (getopt)Tj /T1_0 1 Tf -0.018 Tc 3.937 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-87(a )-87(colon)]TJ -33.087 -1.2 Td [(instead. )-493(The)-493(special )-243(pattern)]TJ /TT0 1 Tf 13.598 0 Td (--)Tj /T1_0 1 Tf 1.693 0 Td [(will )-243(cause)]TJ /TT0 1 Tf 5.143 0 Td (getopt)Tj /T1_0 1 Tf 4.093 0 Td [(to )-243(stop )-243(pr)18(ocessing )-243(options )-243(and)]TJ -0.018 Tc -24.526 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (turn)Tj /TT1 1 Tf 2.293 0 Td (!)Tj /T1_0 1 Tf [(1. )-387(This)-386(allows )-137(users )-137(to )-137(pr)18(ovide )-137(command )-137(ar)18(guments )-137(that )-137(start )-137(with )-137(a )-137(minus)]TJ -3.149 -1.2 Td [(sign )-57(but )-57(ar)18(en\325t )-57(options.)-559(For )-57(example, )-57(if )-57(you )-57(have )-57(a )-57(\336le )-57(named)]TJ /TT0 1 Tf 28.264 0 Td (-bar)Tj /T1_0 1 Tf 0.3075 Tc (,y)Tj 0 Tc 3.514 0 Td [(ou )-57(can\325t )-57(r)17(emove)]TJ -31.777 -1.2 Td (it by typing)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5903 434.3642 Tm (rm -bar)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5914 415.2951 Tm (because)Tj /TT0 1 Tf 3.732 0 Td (rm)Tj /T1_0 1 Tf 1.45 0 Td [(will try to interpr)18(et)]TJ /TT0 1 Tf 8.712 0 Td (-bar)Tj /T1_0 1 Tf 2.65 0 Td [(as options.)-500(The way to r)18(emove the \336le is to type)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5901 397.5262 Tm (rm -- -bar)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5912 378.4575 Tm (The)Tj /TT0 1 Tf 1.924 0 Td (getopt)Tj /T1_0 1 Tf 3.85 0 Td (function supports four external variables.)Tj /TT0 1 Tf -3.974 -2.04 Td (optarg)Tj /T1_0 1 Tf 4.483 0 Td [(If )-235(an )-235(option )-235(takes )-235(an )-235(ar)18(gument,)]TJ /TT0 1 Tf 15.477 0 Td (getopt)Tj /T1_0 1 Tf 4.085 0 Td (sets)Tj /TT0 1 Tf 2.138 0 Td (optarg)Tj /T1_0 1 Tf 4.085 0 Td [(to )-235(point )-235(to )-235(the)]TJ -25.785 -1.2 Td [(option\325s ar)18(gument string when an option is pr)18(ocessed.)]TJ /TT0 1 Tf -4.483 -1.6 Td (opterr)Tj /T1_0 1 Tf 4.483 0 Td [(If )-65(an )-65(option )-65(err)18(or )-65(is )-65(encounter)19(ed,)]TJ /TT0 1 Tf 15.198 0 Td (getopt)Tj /T1_0 1 Tf 3.915 0 Td [(will )-65(print )-65(an )-65(err)18(or )-65(message )-65(by)]TJ -19.113 -1.2 Td [(default. )-250(T)]TJ 0.25 Tc 4.414 0 Td (od)Tj 0 Tc 1.407 0 Td (isable this behavior)Tj 0.25 Tc 8.498 0 Td (,a)Tj 0 Tc 1 0 Td (pplications can set)Tj /TT0 1 Tf 8.402 0 Td (opterr)Tj /T1_0 1 Tf 3.85 0 Td (to 0.)Tj /TT0 1 Tf -32.054 -1.6 Td (optind)Tj /T1_0 1 Tf 4.483 0 Td [(The )-26(index )-26(in )-26(the)]TJ /TT0 1 Tf 7.518 0 Td (argv)Tj /T1_0 1 Tf 2.676 0 Td [(array )-26(of )-26(the )-26(next )-26(string )-26(to )-26(be )-26(pr)17(ocessed. )-276(It)-276(starts )-26(at)]TJ 0.25 Tc -10.194 -1.2 Td (1a)Tj 0 Tc 1.25 0 Td [(nd is incr)18(emented for each ar)18(gument pr)18(ocessed by)]TJ /TT0 1 Tf 22.52 0 Td (getopt)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf -28.253 -1.6 Td (optopt)Tj /T1_0 1 Tf 4.483 0 Td [(If )-219(an )-219(err)18(or )-219(is )-219(encounter)18(ed )-219(during )-219(options )-219(pr)21(ocessing,)]TJ /TT0 1 Tf 25.244 0 Td (getopt)Tj /T1_0 1 Tf 4.069 0 Td [(will )-219(set)]TJ /TT0 1 Tf -29.312 -1.2 Td (optopt)Tj /T1_0 1 Tf 3.85 0 Td [(to point to the option string that caused the err)18(or)74(.)]TJ -8.333 -2.04 Td [(The )-387(open )-387(server)-74(\325s)]TJ /TT0 1 Tf 9.305 0 Td (main)Tj /T1_0 1 Tf 3.037 0 Td [(function )-387(\(Figur)]TJ 0.6368 Tc 7.06 0 Td (e1)Tj 0 Tc 1.616 0 Td [(7.28\) )-387(de\336nes )-387(the )-387(global )-387(variables,)]TJ -22.818 -1.2 Td [(pr)18(ocesses )-200(the )-200(command)]TJ 10.934 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-200(options, )-200(and )-200(calls )-200(the )-200(function)]TJ /TT0 1 Tf 16.645 0 Td (loop)Tj /T1_0 1 Tf 0.6999 Tc (.I)Tj 0 Tc 3.687 0 Td [(f)-450(we)-450(invoke )-200(the)]TJ -31.598 -1.2 Td [(server )-131(with )-131(the)]TJ /TT0 1 Tf 7.299 0 Td (-d)Tj /T1_0 1 Tf 1.581 0 Td [(option, )-131(the )-131(server )-131(r)9(uns )-131(interactively )-131(instead )-131(of )-131(as )-131(a )-131(daemon.)-628(This)]TJ -8.88 -1.2 Td [(option is used when testing the server)74(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1985.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 188.9563 Tm [(#include )-1800("opend.h")]TJ 0 -1.189 TD [(#include )-1800()]TJ 0 -2.14 TD [(int )-3000(debug,)-600(oflag, client_size, log_to_stderr;)]TJ 0 -1.189 TD [(char )-2400(errmsg[MAXLINE];)]TJ 0 -1.189 TD [(char )-1800(*pathname;)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47590 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(7.1)55(1)]TJ /TT0 1 Tf 25.486 0 Td (getrlimit)Tj /T1_0 1 Tf 5.9 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (setrlimit)Tj /T1_0 1 Tf 5.9 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (223)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(implementations, )-81(we )-81(have )-81(conditionally )-81(included )-81(the )-81(r)19(esour)18(ce )-81(names )-81(that )-81(dif)19(fer)]TJ 0.5808 Tc 35.987 0 Td (.N)Tj 0 Tc 1.662 0 Td (ote)Tj -37.649 -1.2 Td [(that )-312(some )-312(systems )-312(de\336ne)]TJ /TT0 1 Tf 12.585 0 Td (rlim_t)Tj /T1_0 1 Tf 4.162 0 Td [(to )-312(be )-312(an)]TJ /TT0 1 Tf 4.671 0 Td [(unsigned )38(long )38(long)]TJ /T1_0 1 Tf 11.285 0 Td [(instead )-312(of )-312(an)]TJ /TT0 1 Tf -32.703 -1.2 Td [(unsigned )247(long)]TJ /T1_0 1 Tf 0.6033 Tc (.T)Tj 0 Tc 9.02 0 Td [(his )-103(de\336nition )-103(can )-103(even )-103(change )-103(on )-103(the )-103(same )-103(system, )-103(depending )-103(on)]TJ -9.02 -1.2 Td [(whether )-63(we )-63(compile )-63(the )-63(pr)18(ogram )-63(to )-63(support )-63(64)]TJ 21.329 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-63(\336les.)-563(Some )-63(limits )-63(apply )-63(to )-63(\336le )-63(size,)]TJ -21.662 -1.2 Td [(so )-212(the)]TJ /TT0 1 Tf 3.281 0 Td (rlim_t)Tj /T1_0 1 Tf 4.062 0 Td [(type )-212(has )-212(to )-212(be )-212(lar)18(ge )-212(enough )-212(to )-212(r)18(epr)18(esent )-212(a )-212(\336le )-212(size )-212(limit.)]TJ -0.092 Tc 27.615 0 Td [(To )-396(a)]TJ 0 Tc 2.029 0 Td (void)Tj -36.987 -1.2 Td [(compiler )-14(warnings )-14(that )-14(use )-14(the )-14(wr)19(ong )-14(format )-14(speci\336cation, )-14(we )-14(\336rst )-14(copy )-14(the )-14(limit )-14(into )-14(a)]TJ 0 -1.2 TD (64)Tj 1 0.09 Td (-)Tj 0.333 -0.09 Td (bit integer so that we have to deal with only one format.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5850.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 575.4299 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD [(#define doit\(name\))-1200(pr_limits\(#name, name\))]TJ 0 -1.902 TD (static void pr_limits\(char *, int\);)Tj T* (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj T* [(#ifdef )-600(RLIMIT_AS)]TJ 2.4 -1.189 Td (doit\(RLIMIT_AS\);)Tj -2.4 -1.189 Td (#endif)Tj 2.4 -1.902 Td (doit\(RLIMIT_CORE\);)Tj T* (doit\(RLIMIT_CPU\);)Tj T* (doit\(RLIMIT_DATA\);)Tj T* (doit\(RLIMIT_FSIZE\);)Tj -2.4 -1.902 Td [(#ifdef )-600(RLIMIT_MEMLOCK)]TJ 2.4 -1.189 Td (doit\(RLIMIT_MEMLOCK\);)Tj -2.4 -1.189 Td (#endif)Tj 0 -1.902 TD (#ifdef RLIMIT_MSGQUEUE)Tj 2.4 -1.189 Td (doit\(RLIMIT_MSGQUEUE\);)Tj -2.4 -1.189 Td (#endif)Tj 0 -1.902 TD (#ifdef RLIMIT_NICE)Tj 2.4 -1.189 Td (doit\(RLIMIT_NICE\);)Tj -2.4 -1.189 Td (#endif)Tj 2.4 -1.902 Td (doit\(RLIMIT_NOFILE\);)Tj -2.4 -1.902 Td [(#ifdef )-600(RLIMIT_NPROC)]TJ 2.4 -1.189 Td (doit\(RLIMIT_NPROC\);)Tj -2.4 -1.189 Td (#endif)Tj T* (#ifdef RLIMIT_NPTS)Tj 2.4 -1.189 Td (doit\(RLIMIT_NPTS\);)Tj -2.4 -1.189 Td (#endif)Tj T* [(#ifdef )-600(RLIMIT_RSS)]TJ 2.4 -1.189 Td (doit\(RLIMIT_RSS\);)Tj -2.4 -1.189 Td (#endif)Tj 0 -1.902 TD [(#ifdef )-600(RLIMIT_SBSIZE)]TJ 2.4 -1.189 Td (doit\(RLIMIT_SBSIZE\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47591 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (224)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Envir)18(onment )]TJ 39.241 0 Td [(Chapter)-500(7)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm (#endif)Tj 0 -1.902 TD (#ifdef RLIMIT_SIGPENDING)Tj 2.4 -1.189 Td (doit\(RLIMIT_SIGPENDING\);)Tj -2.4 -1.189 Td (#endif)Tj 2.4 -1.902 Td (doit\(RLIMIT_STACK\);)Tj -2.4 -1.902 Td (#ifdef RLIMIT_SWAP)Tj 2.4 -1.189 Td (doit\(RLIMIT_SWAP\);)Tj -2.4 -1.189 Td (#endif)Tj T* [(#ifdef )-600(RLIMIT_VMEM)]TJ 2.4 -1.189 Td (doit\(RLIMIT_VMEM\);)Tj -2.4 -1.189 Td (#endif)Tj 2.4 -1.902 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj T* (static void)Tj 0 -1.189 TD (pr_limits\(char *name, int resource\))Tj T* ({)Tj 2.4 -1.189 Td [(struct rlimit)-4200(limit;)]TJ T* [(unsigned long long)-1200(lim;)]TJ 0 -1.902 TD (if \(getrlimit\(resource, &limit\) < 0\))Tj 2.4 -1.189 Td (err_sys\("getrlimit error for %s", name\);)Tj -2.4 -1.189 Td [(printf\("%-14s )-600(",)-600(name\);)]TJ 0 -1.189 TD (if \(limit.rlim_cur == RLIM_INFINITY\) {)Tj 2.4 -1.189 Td [(printf\("\(infinite\) )-600("\);)]TJ 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (lim = limit.rlim_cur;)Tj T* [(printf\("%10lld )-600(",)-600(lim\);)]TJ -2.4 -1.189 Td (})Tj T* (if \(limit.rlim_max == RLIM_INFINITY\) {)Tj 2.4 -1.189 Td (printf\("\(infinite\)"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (lim = limit.rlim_max;)Tj T* (printf\("%10lld", lim\);)Tj -2.4 -1.189 Td (})Tj T* (putchar\(\(int\)\325\\n\325\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2567.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 245.6865 240.7301 Tm (Figure 7.16)Tj /T1_1 1 Tf 5.695 0 Td [(Print the curr)18(ent r)18(esour)18(ce limits)]TJ 9.9988 0 0 9.9988 147.5825 211.9336 Tm [(Note )-89(that )-89(we\325ve )-89(used )-89(the )-89(ISO )-89(C )-89(string-cr)18(eation )-89(operator )-89(\()]TJ /TT0 1 Tf 26.039 0 Td (#)Tj /T1_1 1 Tf [(\))-339(in)-339(t)-1(he)]TJ /TT0 1 Tf 4.211 0 Td (doit)Tj /T1_1 1 Tf 2.739 0 Td [(macr)18(o, )-89(to)]TJ -34.789 -1.2 Td [(generate the string value for each r)18(esour)18(ce name.)-500(When we say)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 183.237 Tm (doit\(RLIMIT_CORE\);)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 165.2392 Tm [(the C pr)18(epr)18(ocessor expands this into)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5823 148.5412 Tm (pr_limits\("RLIMIT_CORE", RLIMIT_CORE\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47592 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (434)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(We )-388(c)]TJ 0 Tc 2.285 0 Td [(an )-204(use )-204(the)]TJ /TT0 1 Tf 5.336 0 Td (pthread_mutexattr_gettype)Tj /T1_1 1 Tf 15.454 0 Td [(function )-204(to )-204(get )-204(the )-204(mutex)]TJ /T1_2 1 Tf 12.403 0 Td (type)Tj /T1_1 1 Tf -37.278 -1.2 Td [(attribute. )-480(T)]TJ 0.4803 Tc 5.3 0 Td (oc)Tj 0 Tc 1.47 0 Td [(hange )-230(the )-230(attribute, )-230(we )-230(can )-230(use )-230(the)]TJ /TT0 1 Tf 17.229 0 Td (pthread_mutexattr_settype)Tj /T1_1 1 Tf -24 -1.2 Td (function.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5914 625.8624 Tm (#include )Tj 0 -2.259 TD (int pthread_mutexattr_gettype\(const pthread_mutexattr_t *)Tj 18 -1.189 Td (restrict)Tj /T1_2 1 Tf 5.4 0 Td (attr)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.299 0 Td (nt *restrict)Tj /T1_2 1 Tf 7.8 0 Td (type)Tj /TT0 1 Tf (\);)Tj -34.499 -2.259 Td (int pthread_mutexattr_settype\(pthread_mutexattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 33.899 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (type)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -16.018 -2.259 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5497.25 cm 0 0 m 0 852 l 3900 852 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 533.7459 Tm [(Recall )-239(fr)18(om )-239(Section )-239(1)55(1.6.6 )-239(that )-239(a )-239(mutex )-239(is )-239(used )-239(to )-239(pr)14(otect )-239(the )-239(condition )-239(that )-239(is)]TJ -1.8 -1.2 Td [(associated )-982(with )-982(a )-982(condition )-982(variable.)-1481(Befor)]TJ 1.2318 Tc 23.876 0 Td (eb)Tj 0 Tc 2.264 0 Td [(locking )-982(the )-982(thr)18(ead, )-982(the)]TJ /TT0 1 Tf -26.139 -1.2 Td (pthread_cond_wait)Tj /T1_1 1 Tf 10.862 0 Td [(and )-412(the)]TJ /TT0 1 Tf 4.404 0 Td (pthread_cond_timedwait)Tj /T1_1 1 Tf 13.862 0 Td [(functions )-412(r)18(elease )-412(the)]TJ -29.129 -1.2 Td [(mutex )-126(associated )-126(with )-126(the )-126(condition.)-626(This )-126(allows )-126(other )-126(thr)16(eads )-126(to )-126(acquir)]TJ 0.3764 Tc 33.324 0 Td (et)Tj 0 Tc 1.181 0 Td [(he )-126(mutex,)]TJ -34.506 -1.2 Td [(change )-150(the )-150(condition, )-150(r)17(elease )-150(the )-150(mutex, )-150(and )-150(signal )-150(the )-150(condition )-150(variable.)-650(Since )-150(the)]TJ 0 -1.2 TD [(mutex )-146(must )-146(be )-146(held )-146(to )-146(change )-146(the )-146(condition, )-146(it )-146(is )-146(not )-146(a )-146(good )-146(idea )-146(to )-146(use )-146(a )-146(r)20(ecursive)]TJ T* [(mutex. )-733(If)]TJ 0.7335 Tc 5.444 0 Td (ar)Tj 0 Tc 1.611 0 Td [(ecursive )-483(mutex )-483(is )-483(locked )-483(multiple )-483(times )-483(and )-483(used )-483(in )-483(a )-483(call )-483(to)]TJ /TT0 1 Tf -7.054 -1.2 Td (pthread_cond_wait)Tj /T1_1 1 Tf 0.2507 Tc (,t)Tj 0 Tc 11.027 0 Td [(he )-1(condition )-1(can )-1(never )-1(be )-1(satis\336ed, )-1(because )-1(the )-1(unlock )-1(done )-1(by)]TJ /TT0 1 Tf -11.027 -1.2 Td (pthread_cond_wait)Tj /T1_1 1 Tf 10.45 0 Td [(doesn\325t r)18(elease the mutex.)]TJ -8.65 -1.2 Td [(Recursive )-242(mutexes )-242(ar)]TJ 0.4924 Tc 9.92 0 Td (eu)Tj 0 Tc 1.574 0 Td [(seful )-242(when )-242(you )-242(need )-242(to )-242(adapt )-242(existing )-242(single-thr)15(eaded)]TJ -13.294 -1.2 Td [(interfaces )-269(to )-269(a )-269(multithr)18(eaded )-269(envir)18(onment, )-269(but )-269(can\325t )-269(change )-269(the )-269(interfaces )-269(to )-269(your)]TJ T* [(functions )-113(because )-113(of )-113(compatibility )-113(constraints.)-613(However)]TJ 0.3631 Tc 25.603 0 Td (,u)Tj 0 Tc 1.216 0 Td [(sing )-113(r)18(ecursive )-113(locks )-113(can )-113(be)]TJ -26.819 -1.2 Td (tricky)Tj 0.25 Tc 2.457 0 Td (,a)Tj 0 Tc 1 0 Td (nd they should be used only when no other solution is possible.)Tj /TT1 1 Tf -7.057 -3.24 Td (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td (Figur)Tj 0.4356 Tc 2.383 0 Td (e1)Tj 0 Tc 1.415 0 Td [(2.6 )-186(illustrates )-186(a )-186(situation )-186(in )-186(which )-186(a )-186(r)21(ecursive )-186(mutex )-186(might )-186(seem )-186(to )-186(solve )-186(a)]TJ -3.798 -1.2 Td [(concurr)18(ency )-293(pr)18(oblem. )-543(Assume)-543(that)]TJ /TT0 1 Tf 17.18 0 Td (func1)Tj /T1_1 1 Tf 3.543 0 Td (and)Tj /TT0 1 Tf 2.236 0 Td (func2)Tj /T1_1 1 Tf 3.543 0 Td (ar)Tj 0.5432 Tc 0.877 0 Td (ee)Tj 0 Tc 1.501 0 Td [(xisting )-293(functions )-293(in )-293(a)]TJ -28.881 -1.2 Td [(library )-50(whose )-50(interfaces )-50(can\325t )-50(be )-50(changed, )-50(because )-50(applications )-50(exist )-50(that )-50(call )-50(them )-50(and)]TJ T* (those applications can\325t be changed.)Tj -0.092 Tc 1.8 -1.2 Td [(To )-348(k)]TJ 0 Tc 2.037 0 Td [(eep )-164(the )-164(interfaces )-164(the )-164(same, )-164(we )-164(embed )-164(a )-164(mutex )-164(in )-164(the )-164(data )-164(str)6(uctur)]TJ 0.4142 Tc 31.404 0 Td (ew)Tj 0 Tc 1.727 0 Td (hose)Tj -36.969 -1.2 Td [(addr)18(ess )-90(\()]TJ /TT0 1 Tf (x)Tj /T1_1 1 Tf [(\))-340(is)-340(p)1(assed )-90(in )-90(as )-90(an )-90(ar)20(gument. )-340(This)-339(is )-90(possible )-90(only )-90(if )-90(we )-90(have )-90(pr)20(ovided )-90(an)]TJ -0 -1.2 Td [(allocator )-268(function )-268(for )-268(the )-268(str)8(uctur)18(e, )-268(so )-268(the )-268(application )-268(doesn\325t )-268(know )-268(about )-268(its )-268(size)]TJ 0 -1.2 Td [(\(assuming we must incr)18(ease its size when we add a mutex to it\).)]TJ 7.999 0 0 7.999 183.5788 224.583 Tm [(This )-120(is )-120(also )-120(possible )-120(if )-120(we )-120(originally )-120(de\336ned )-120(the )-120(str)7(uctur)]TJ 0.3701 Tc 25.806 0 Td (ew)Tj 0 Tc 1.683 0 Td [(ith )-120(enough )-120(padding )-120(to )-120(allow )-120(us)]TJ -27.489 -1.25 Td [(now )-24(to )-24(r)18(eplace )-24(some )-24(pad )-24(\336elds )-24(with )-24(a )-24(mutex.)-525(Unfortunately)]TJ 0.274 Tc 26.952 0 Td (,m)Tj 0 Tc 1.407 0 Td [(ost )-24(pr)18(ogrammers )-24(ar)]TJ 0.274 Tc 8.76 0 Td (eu)Tj 0 Tc 1.356 0 Td (nskilled)Tj -38.475 -1.25 Td [(at pr)18(edicting the futur)18(e, so this is not a common practice.)]TJ 9.9988 0 0 9.9988 147.5826 178.5886 Tm [(If )-33(both)]TJ /TT0 1 Tf 3.243 0 Td (func1)Tj /T1_1 1 Tf 3.283 0 Td (and)Tj /TT0 1 Tf 1.976 0 Td (func2)Tj /T1_1 1 Tf 3.283 0 Td [(must )-33(manipulate )-33(the )-33(str)8(uctur)]TJ 0.2829 Tc 13.018 0 Td (ea)Tj 0 Tc 1.262 0 Td [(nd )-33(it )-33(is )-33(possible )-33(to )-33(access)]TJ -27.864 -1.2 Td [(it )-125(fr)18(om )-125(mor)]TJ 0.3752 Tc 5.312 0 Td (et)Tj 0 Tc 1.18 0 Td [(han )-125(one )-125(thr)18(ead )-125(at )-125(a )-125(time, )-125(then)]TJ /TT0 1 Tf 14.296 0 Td (func1)Tj /T1_1 1 Tf 3.375 0 Td (and)Tj /TT0 1 Tf 2.068 0 Td (func2)Tj /T1_1 1 Tf 3.375 0 Td [(must )-125(lock )-125(the )-125(mutex)]TJ -29.608 -1.2 Td (befor)Tj 0.3553 Tc 2.288 0 Td (em)Tj 0 Tc 1.717 0 Td [(anipulating )-105(the )-105(str)7(uctur)18(e. )-355(If)]TJ /TT0 1 Tf 13.07 0 Td (func1)Tj /T1_1 1 Tf 3.355 0 Td [(must )-105(call)]TJ /TT0 1 Tf 4.473 0 Td (func2)Tj /T1_1 1 Tf [(,)-355(we)-355(w)-1(ill )-105(deadlock )-105(if )-105(the)]TJ -24.904 -1.2 Td [(mutex )-5(type )-5(is )-5(not )-5(r)17(ecursive. )-255(W)]TJ 0.2553 Tc 13.679 0 Td (ec)Tj 0 Tc 1.178 0 Td [(ould )-5(avoid )-5(using )-5(a )-5(r)17(ecursive )-5(mutex )-5(if )-5(we )-5(could )-5(r)17(elease)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47593 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (428)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(If )-35(we )-35(know )-35(that )-35(we )-35(don\325t )-35(need )-35(the )-35(thr)16(ead\325s )-35(termination )-35(status )-35(at )-35(the )-35(time )-35(we )-35(cr)15(eate)]TJ -1.8 -1.2 Td [(the )-18(thr)18(ead, )-18(we )-18(can )-18(arrange )-18(for )-18(the )-18(thr)18(ead )-18(to )-18(start )-18(out )-18(in )-18(the )-18(detached )-18(state )-18(by )-18(modifying)]TJ 0 -1.2 TD (the)Tj /T1_2 1 Tf 1.891 0 Td (detachstate)Tj /T1_1 1 Tf 4.965 0 Td [(thr)18(ead )-254(attribute )-254(in )-254(the)]TJ /TT0 1 Tf 10.95 0 Td (pthread_attr_t)Tj /T1_1 1 Tf 8.904 0 Td [(str)8(uctur)18(e. )-504(W)]TJ 0.5039 Tc 5.881 0 Td (ec)Tj 0 Tc 1.427 0 Td [(an )-254(use )-254(the)]TJ /TT0 1 Tf -34.017 -1.2 Td (pthread_attr_setdetachstate)Tj /T1_1 1 Tf 16.65 0 Td [(function )-200(to )-200(set )-200(the)]TJ /T1_2 1 Tf 8.994 0 Td (detachstate)Tj /T1_1 1 Tf 4.911 0 Td [(thr)18(ead )-200(attribute )-200(to)]TJ -30.555 -1.2 Td [(one )-333(of )-333(two )-333(legal )-333(values:)]TJ /TT0 1 Tf 12.336 0 Td (PTHREAD_CREATE_DETACHED)Tj /T1_1 1 Tf 14.383 0 Td [(to )-333(start )-333(the )-333(thr)18(ead )-333(in )-333(the)]TJ -26.72 -1.2 Td [(detached )-237(state )-237(or)]TJ /TT0 1 Tf 8.49 0 Td (PTHREAD_CREATE_JOINABLE)Tj /T1_1 1 Tf 14.287 0 Td [(to )-237(start )-237(the )-237(thr)18(ead )-237(normally)110(,)-487(so)-487(i)-1(ts)]TJ -22.777 -1.2 Td [(termination status can be r)18(etrieved by the application.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5909 581.4651 Tm (#include )Tj 0 -1.783 TD (int pthread_attr_getdetachstate\(const pthread_attr_t *restrict)Tj /T1_2 1 Tf 37.8 0 Td (attr)Tj /TT0 1 Tf (,)Tj -18.6 -1.189 Td (int *)Tj /T1_2 1 Tf (detachstate)Tj /TT0 1 Tf (\);)Tj -19.2 -1.664 Td (int pthread_attr_setdetachstate\(pthread_attr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 32.099 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (detachstate)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -14.218 -1.783 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5192.25 cm 0 0 m 0 713 l 3900 713 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9988 0 0 9.9988 147.5823 506.8592 Tm [(We )-414(c)]TJ 0 Tc 2.311 0 Td [(an )-230(call)]TJ /TT0 1 Tf 3.567 0 Td (pthread_attr_getdetachstate)Tj /T1_1 1 Tf 16.68 0 Td [(to )-230(obtain )-230(the )-230(curr)19(ent)]TJ /T1_2 1 Tf 10.182 0 Td (detachstate)Tj /T1_1 1 Tf -34.539 -1.2 Td [(attribute. )-863(The)-863(integer )-613(pointed )-613(to )-613(by )-613(the )-613(second )-613(ar)18(gument )-613(is )-613(set )-613(to )-613(either)]TJ /TT0 1 Tf 0 -1.2 TD (PTHREAD_CREATE_DETACHED)Tj /T1_1 1 Tf 14.38 0 Td (or)Tj /TT0 1 Tf 1.521 0 Td (PTHREAD_CREATE_JOINABLE)Tj /T1_1 1 Tf 0.5804 Tc (,d)Tj 0 Tc 15.241 0 Td [(epending )-330(on )-330(the)]TJ -31.143 -1.2 Td (value of the attribute in the given)Tj /TT0 1 Tf 14.986 0 Td (pthread_attr_t)Tj /T1_1 1 Tf 8.65 0 Td [(str)8(uctur)18(e.)]TJ /TT1 1 Tf -27.236 -2.4 Td (Example)Tj /T1_1 1 Tf 3.6 -1.92 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td [(2.4 shows a function that can be used to cr)18(eate a thr)18(ead in the detached state.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4205.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 410.945 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (makethread\(void *\(*fn\)\(void *\), void *arg\))Tj T* ({)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td (err;)Tj -9.6 -1.189 Td [(pthread_t )-3600(tid;)]TJ T* [(pthread_attr_t )-600(attr;)]TJ 0 -1.783 TD (err = pthread_attr_init\(&attr\);)Tj 0 -1.189 TD (if \(err != 0\))Tj 2.4 -1.189 Td (return\(err\);)Tj -2.4 -1.189 Td (err = pthread_attr_setdetachstate\(&attr, PTHREAD_CREATE_DETACHED\);)Tj T* (if \(err == 0\))Tj 2.4 -1.189 Td (err = pthread_create\(&tid, &attr, fn, arg\);)Tj -2.4 -1.189 Td (pthread_attr_destroy\(&attr\);)Tj T* (return\(err\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2243.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 231.3765 208.268 Tm (Figure 12.4)Tj /T1_1 1 Tf 6.25 0 Td [(Cr)18(eating a thr)18(ead in the detached state)]TJ 9.9976 0 0 9.9976 147.5646 186.6732 Tm [(Note )-17(that )-17(we )-17(ignor)]TJ 0.2675 Tc 8.384 0 Td (et)Tj 0 Tc 1.072 0 Td [(he )-17(r)18(eturn )-17(value )-17(fr)18(om )-17(the )-17(call )-17(to)]TJ /TT0 1 Tf 14.057 0 Td (pthread_attr_destroy)Tj /T1_1 1 Tf 0.5175 Tc (.I)Tj 0 Tc 13.104 0 Td (n)Tj -38.418 -1.2 Td [(this )-203(case, )-203(we )-203(initialized )-203(the )-203(thr)20(ead )-203(attributes )-203(pr)19(operly)]TJ 0.4527 Tc 24.874 0 Td (,s)Tj 0 Tc 1.127 0 Td (o)Tj /TT0 1 Tf 0.999 0 Td (pthread_attr_destroy)Tj /T1_1 1 Tf -27 -1.2 Td [(shouldn\325t )-166(fail.)-665(Nonetheless, )-166(if )-166(it )-166(does )-166(fail, )-166(cleaning )-166(up )-166(would )-166(be )-166(dif)18(\336cult: )-166(we )-166(would)]TJ 0 -1.2 TD [(have )-459(to )-459(destr)18(oy )-459(the )-459(thr)18(ead )-459(we )-459(just )-459(cr)20(eated, )-459(which )-459(might )-459(alr)18(eady )-459(be )-459(r)9(unning,)]TJ T* [(asynchr)18(onous )-161(to )-161(the )-161(execution )-161(of )-161(this )-161(function.)-660(When )-161(we )-161(choose )-161(to )-161(ignor)]TJ 0.4108 Tc 34.12 0 Td (et)Tj 0 Tc 1.216 0 Td [(he )-161(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47594 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (400)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 0 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(see )-16(that )-16(the )-16(mutex )-16(is )-16(still )-16(locked )-16(and )-16(go )-16(back )-16(to )-16(waiting )-16(for )-16(it )-16(to )-16(become )-16(available )-16(again.)]TJ 0 -1.2 TD (In this way)Tj 0.25 Tc 4.821 0 Td (,o)Tj 0 Tc 1.046 0 Td [(nly one thr)18(ead will pr)18(oceed at a time.)]TJ -4.067 -1.2 Td [(This )-145(mutual-exclusion )-145(mechanism )-145(works )-145(only )-145(if )-145(we )-145(design )-145(our )-145(thr)18(eads )-145(to )-145(follow)]TJ -1.8 -1.2 Td [(the )-30(same )-30(data-access )-30(r)7(ules. )-280(The)-281(operating )-30(system )-30(doesn\325t )-30(serialize )-30(access )-30(to )-30(data )-30(for )-30(us.)]TJ T* [(If )-100(we )-100(allow )-100(one )-100(thr)18(ead )-100(to )-100(access )-100(a )-100(shar)18(ed )-100(r)19(esour)18(ce )-100(without )-100(\336rst )-100(acquiring )-100(a )-100(lock, )-100(then)]TJ -0 -1.2 Td [(inconsistencies )-37(can )-37(occur )-37(even )-37(though )-37(the )-37(r)19(est )-37(of )-37(our )-37(thr)18(eads )-37(do )-37(acquir)]TJ 0.2869 Tc 31.669 0 Td (et)Tj 0 Tc 1.092 0 Td [(he )-37(lock )-37(befor)18(e)]TJ -32.761 -1.2 Td [(attempting to access the shar)18(ed r)18(esour)18(ce.)]TJ 0.3709 Tc 1.8 -1.2 Td (Am)Tj 0 Tc 2.032 0 Td [(utex )-121(variable )-121(is )-121(r)19(epr)18(esented )-121(by )-121(the)]TJ /TT0 1 Tf 16.148 0 Td (pthread_mutex_t)Tj /T1_1 1 Tf 9.371 0 Td [(data )-121(type.)-621(Befor)]TJ 0.3708 Tc 7.487 0 Td (ew)Tj 0 Tc 1.684 0 Td (e)Tj -38.521 -1.2 Td [(can )-114(use )-114(a )-114(mutex )-114(variable, )-114(we )-114(must )-114(\336rst )-114(initialize )-114(it )-114(by )-114(either )-114(setting )-114(it )-114(to )-114(the )-114(constant)]TJ /TT0 1 Tf T* (PTHREAD_MUTEX_INITIALIZER)Tj /T1_1 1 Tf 15.649 0 Td [(\(for )-399(statically )-399(allocated )-399(mutexes )-399(only\) )-399(or )-399(calling)]TJ /TT0 1 Tf -15.649 -1.2 Td (pthread_mutex_init)Tj /T1_1 1 Tf 0.562 Tc (.I)Tj 0 Tc 11.949 0 Td [(f)-312(we)-312(allocate )-62(the )-62(mutex )-62(dynamically )-62(\(by )-62(calling)]TJ /TT0 1 Tf 21.615 0 Td (malloc)Tj /T1_1 1 Tf 0.312 Tc (,f)Tj 0 Tc 4.495 0 Td (or)Tj -38.059 -1.2 Td (example\), then we need to call)Tj /TT0 1 Tf 13.663 0 Td (pthread_mutex_destroy)Tj /T1_1 1 Tf 12.85 0 Td (befor)Tj 0.25 Tc 2.288 0 Td (ef)Tj -0.018 Tc 1.062 0 Td (re)Tj 0 Tc 0.856 0 Td [(eing the memory)111(.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5907 517.8689 Tm (#include )Tj 0 -2.021 TD (int pthread_mutex_init\(pthread_mutex_t *restrict)Tj /T1_2 1 Tf 29.4 0 Td (mutex)Tj /TT0 1 Tf (,)Tj -15.6 -1.189 Td (const pthread_mutexattr_t *restrict)Tj /T1_2 1 Tf 21.6 0 Td (attr)Tj /TT0 1 Tf (\);)Tj -35.4 -2.021 Td (int pthread_mutex_destroy\(pthread_mutex_t *)Tj /T1_2 1 Tf (mutex)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 19.681 -2.021 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4481.25 cm 0 0 m 0 788 l 3900 788 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5844 432.1781 Tm [(To )-309(i)]TJ 0 Tc 1.733 0 Td [(nitialize )-125(a )-125(mutex )-125(with )-125(the )-125(default )-125(attributes, )-125(we )-125(set)]TJ /T1_2 1 Tf 23.808 0 Td (attr)Tj /T1_1 1 Tf 1.874 0 Td (to)Tj /TT0 1 Tf 1.247 0 Td (NULL)Tj /T1_1 1 Tf 0.6246 Tc (.W)Tj 0.3746 Tc 4.183 0 Td (ew)Tj 0 Tc 1.688 0 Td [(ill )-125(discuss)]TJ -34.531 -1.2 Td (mutex attributes in Section 12.4.)Tj -0.092 Tc 1.8 -1.2 Td [(To )-312(l)]TJ 0 Tc 1.736 0 Td [(ock )-127(a )-127(mutex, )-127(we )-127(call)]TJ /TT0 1 Tf 9.829 0 Td (pthread_mutex_lock)Tj /T1_1 1 Tf 0.6275 Tc (.I)Tj 0.3775 Tc 12.014 0 Td (ft)Tj 0 Tc 1.036 0 Td [(he )-127(mutex )-127(is )-127(alr)18(eady )-127(locked,)]TJ -26.416 -1.2 Td [(the )-122(calling )-122(thr)18(ead )-122(will )-122(block )-122(until )-122(the )-122(mutex )-122(is )-122(unlocked.)]TJ -0.092 Tc 26.653 0 Td [(To )-306(u)]TJ 0 Tc 2.042 0 Td [(nlock )-122(a )-122(mutex, )-122(we )-122(call)]TJ /TT0 1 Tf -28.695 -1.2 Td (pthread_mutex_unlock)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5821 365.0862 Tm (#include )Tj 0 -2.021 TD (int pthread_mutex_lock\(pthread_mutex_t *)Tj /T1_2 1 Tf (mutex)Tj /TT0 1 Tf (\);)Tj -0 -2.021 Td (int pthread_mutex_trylock\(pthread_mutex_t *)Tj /T1_2 1 Tf (mutex)Tj /TT0 1 Tf (\);)Tj -0 -2.021 Td (int pthread_mutex_unlock\(pthread_mutex_t *)Tj /T1_2 1 Tf (mutex)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 20.386 -2.021 Td [(All r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2878.25 cm 0 0 m 0 863 l 3900 863 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 147.5734 271.921 Tm [(If )-95(a )-95(thr)18(ead )-95(can\325t )-95(af)18(for)18(d)-345(to)-345(block, )-95(it )-95(can )-95(use)]TJ /TT0 1 Tf 19.469 0 Td (pthread_mutex_trylock)Tj /T1_1 1 Tf 12.945 0 Td [(to )-95(lock )-95(the)]TJ -34.214 -1.2 Td [(mutex )-96(conditionally)]TJ 0.5964 Tc 8.899 0 Td (.I)Tj 0.3464 Tc 1.183 0 Td (ft)Tj 0 Tc 1.005 0 Td [(he )-96(mutex )-96(is )-96(unlocked )-96(at )-96(the )-96(time)]TJ /TT0 1 Tf 15.312 0 Td (pthread_mutex_trylock)Tj /T1_1 1 Tf -26.4 -1.2 Td [(is )-159(called, )-159(then)]TJ /TT0 1 Tf 6.778 0 Td (pthread_mutex_trylock)Tj /T1_1 1 Tf 13.009 0 Td [(will )-159(lock )-159(the )-159(mutex )-159(without )-159(blocking )-159(and)]TJ -0.018 Tc -19.787 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-215(0.)-715(Otherwise,)]TJ /TT0 1 Tf 9.148 0 Td (pthread_mutex_trylock)Tj /T1_1 1 Tf 13.065 0 Td [(will )-215(fail, )-215(r)18(eturning)]TJ /TT0 1 Tf 8.958 0 Td (EBUSY)Tj /T1_1 1 Tf 3.465 0 Td (without)Tj -35.492 -1.2 Td (locking the mutex.)Tj /TT1 1 Tf -3.6 -3.12 Td (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td (Figur)Tj 0.3405 Tc 2.383 0 Td (e1)Tj 0 Tc 1.264 0 Td [(1.10 )-90(illustrates )-90(a )-90(mutex )-90(used )-90(to )-90(pr)18(otect )-90(a )-90(data )-90(str)4(uctur)18(e. )-340(When)-341(mor)]TJ 0.3405 Tc 30.596 0 Td (et)Tj 0 Tc 1.146 0 Td [(han )-90(one)]TJ -35.389 -1.2 Td [(thr)18(ead )-78(needs )-78(to )-78(access )-78(a )-78(dynamically )-78(allocated )-78(object, )-78(we )-78(can )-78(embed )-78(a )-78(r)18(efer)18(ence )-78(count)]TJ 0 -1.2 Td [(in )-12(the )-12(object )-12(to )-12(ensur)]TJ 0.2621 Tc 9.227 0 Td (et)Tj 0 Tc 1.067 0 Td [(hat )-12(we )-12(don\325t )-12(fr)18(ee )-12(its )-12(memory )-12(befor)]TJ 0.2621 Tc 15.376 0 Td (ea)Tj 0 Tc 1.241 0 Td [(ll )-12(thr)18(eads )-12(ar)]TJ 0.2622 Tc 5.282 0 Td (ed)Tj 0 Tc 1.352 0 Td [(one )-12(using )-12(it.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47595 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (821)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(254 )-2400(jp->jobid)]TJ 0.6 Tc 10.8 0 Td (=j)Tj 0 Tc 1.8 0 Td (obid;)Tj -12.6 -1.189 Td [(255 )-2400(jp->next)]TJ 0.6 Tc 10.2 0 Td (=N)Tj 0 Tc 1.8 0 Td (ULL;)Tj -12 -1.189 Td [(256 )-2400(pthread_mutex_lock\(&joblock\);)]TJ 0 -1.189 TD [(257 )-2400(jp->prev)]TJ 0.6 Tc 10.2 0 Td (=j)Tj 0 Tc 1.8 0 Td (obtail;)Tj -12 -1.189 Td [(258 )-2400(if)-600(\(jobtail == NULL\))]TJ 0 -1.189 TD [(259 )-4800(jobhead)]TJ 0.6 Tc 12 0 Td (=j)Tj 0 Tc 1.8 0 Td (p;)Tj -13.8 -1.189 Td [(260 )-2400(else)]TJ 0 -1.189 TD [(261 )-4800(jobtail->next)]TJ 0.6 Tc 15.6 0 Td (=j)Tj 0 Tc 1.8 0 Td (p;)Tj -17.4 -1.189 Td [(262 )-2400(jobtail)]TJ 0.6 Tc 9.6 0 Td (=j)Tj 0 Tc 1.8 0 Td (p;)Tj -11.4 -1.189 Td [(263 )-2400(pthread_mutex_unlock\(&joblock\);)]TJ T* [(264 )-2400(pthread_cond_signal\(&jobwait\);)]TJ T* [(265 )-1200(})]TJ 0 -2.14 TD [(266 )-1200(/*)]TJ 0 -1.189 TD [(267 )-1800(*)-600(Replace a job back on the head of the list.)]TJ T* [(268 )-1800(*)]TJ T* [(269 )-1800(*)-600(LOCKING: acquires and releases joblock.)]TJ T* [(270 )-1800(*/)]TJ 0 -1.189 TD [(271 )-1200(void)]TJ 0 -1.189 TD [(272 )-1200(replace_job\(struct)-600(job *jp\))]TJ T* [(273 )-1200({)]TJ T* [(274 )-2400(pthread_mutex_lock\(&joblock\);)]TJ T* [(275 )-2400(jp->prev)]TJ 0.6 Tc 10.2 0 Td (=N)Tj 0 Tc 1.8 0 Td (ULL;)Tj -12 -1.189 Td [(276 )-2400(jp->next)]TJ 0.6 Tc 10.2 0 Td (=j)Tj 0 Tc 1.8 0 Td (obhead;)Tj -12 -1.189 Td [(277 )-2400(if)-600(\(jobhead == NULL\))]TJ T* [(278 )-4800(jobtail)]TJ 0.6 Tc 12 0 Td (=j)Tj 0 Tc 1.8 0 Td (p;)Tj -13.8 -1.189 Td [(279 )-2400(else)]TJ 0 -1.189 TD [(280 )-4800(jobhead->prev)]TJ 0.6 Tc 15.6 0 Td (=j)Tj 0 Tc 1.8 0 Td (p;)Tj -17.4 -1.189 Td [(281 )-2400(jobhead)]TJ 0.6 Tc 9.6 0 Td (=j)Tj 0 Tc 1.8 0 Td (p;)Tj -11.4 -1.189 Td [(282 )-2400(pthread_mutex_unlock\(&joblock\);)]TJ 0 -1.189 TD [(283 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3358.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 311.8006 Tm [([254 )167(\320 )167(265])]TJ -0.092 Tc 5 0 Td [(We )-249(s)]TJ 0 Tc 2.126 0 Td [(ave )-65(the )-65(job )-65(ID )-65(and )-65(lock )-65(the)]TJ /TT0 1 Tf 12.497 0 Td (joblock)Tj /T1_0 1 Tf 4.515 0 Td [(mutex )-65(to )-65(gain )-65(exclusive )-65(access )-65(to)]TJ -19.138 -1.2 Td [(the )-27(linked )-27(list )-27(of )-27(print )-27(jobs.)]TJ -0.092 Tc 12.522 0 Td [(We )-211(a)]TJ -0.018 Tc 2.164 0 Td [(re )-63(a)]TJ 0 Tc 1.633 0 Td [(bout )-27(to )-27(add )-27(the )-27(new )-27(job )-27(str)8(uctur)18(e)-277(to)-277(the)]TJ -16.319 -1.2 Td [(end )-36(of )-36(the )-36(list.)]TJ -0.092 Tc 6.915 0 Td [(We )-220(s)]TJ 0 Tc 2.097 0 Td [(et )-36(the )-36(new )-36(str)7(uctur)18(e\325s )-36(pr)18(evious )-36(pointer )-36(to )-36(the )-36(last )-36(job )-36(on)]TJ -9.012 -1.2 Td [(the )-107(list.)-607(If )-107(the )-107(list )-107(is )-107(empty)109(,)-357(we)-357(s)-1(et)]TJ /TT0 1 Tf 16.065 0 Td (jobhead)Tj /T1_0 1 Tf 4.557 0 Td [(to )-107(point )-107(to )-107(the )-107(new )-107(str)7(uctur)18(e.)]TJ -20.623 -1.2 Td [(Otherwise, )-40(we )-40(set )-40(the )-40(next )-40(pointer )-40(in )-40(the )-40(last )-40(entry )-40(on )-40(the )-40(list )-40(to )-40(point )-40(to )-40(the)]TJ 0 -1.2 TD [(new )-201(str)8(uctur)18(e. )-451(Then)-451(we )-201(set)]TJ /TT0 1 Tf 13.416 0 Td (jobtail)Tj /T1_0 1 Tf 4.651 0 Td [(to )-201(point )-201(to )-201(the )-201(new )-201(str)9(uctur)18(e. )-451(W)92(e)]TJ -18.067 -1.2 Td [(unlock the mutex and signal the printer thr)18(ead that another job is available.)]TJ -5 -1.6 Td [([266 )167(\320 )167(283])-668(The)]TJ /TT0 1 Tf 6.933 0 Td (replace_job)Tj /T1_0 1 Tf 6.859 0 Td [(function )-9(is )-9(used )-9(to )-9(insert )-9(a )-9(job )-9(at )-9(the )-9(head )-9(of )-9(the )-9(pending)]TJ -8.793 -1.2 Td [(job )-40(list.)]TJ -0.092 Tc 3.745 0 Td [(We )-224(a)]TJ 0 Tc 2.177 0 Td (cquir)Tj 0.2899 Tc 2.275 0 Td (et)Tj 0 Tc 1.095 0 Td (he)Tj /TT0 1 Tf 1.351 0 Td (joblock)Tj /T1_0 1 Tf 4.49 0 Td [(mutex, )-40(set )-40(the )-40(pr)18(evious )-40(pointer )-40(in )-40(the)]TJ /TT0 1 Tf 17.068 0 Td (job)Tj /T1_0 1 Tf -32.2 -1.2 Td [(str)8(uctur)]TJ 0.3541 Tc 3.49 0 Td (et)Tj 0 Tc 1.159 0 Td (o)Tj /TT0 1 Tf 0.9 0 Td (NULL)Tj /T1_0 1 Tf 0.3541 Tc (,a)Tj 0 Tc 3.504 0 Td [(nd )-104(set )-104(the )-104(next )-104(pointer )-104(in )-104(the)]TJ /TT0 1 Tf 13.671 0 Td (job)Tj /T1_0 1 Tf 2.154 0 Td [(str)8(uctur)18(e)-354(to)-354(point )-104(to)]TJ -24.878 -1.2 Td [(the )-58(head )-58(of )-58(the )-58(list.)-558(If )-58(the )-58(list )-58(is )-58(empty)111(,)-308(we)-308(set)]TJ /TT0 1 Tf 20.983 0 Td (jobtail)Tj /T1_0 1 Tf 4.508 0 Td [(to )-58(point )-58(to )-58(the)]TJ /TT0 1 Tf 6.709 0 Td (job)Tj /T1_0 1 Tf -32.2 -1.2 Td [(str)8(uctur)18(e)-418(we)-418(a)]TJ -0.018 Tc [(re )-204(re)]TJ 0 Tc 8.748 0 Td [(placing. )-418(Otherwise,)-418(we )-168(set )-168(the )-168(pr)18(evious )-168(pointer )-168(in )-168(the)]TJ -8.748 -1.2 Td (\336rst)Tj /TT0 1 Tf 2.061 0 Td (job)Tj /T1_0 1 Tf 2.111 0 Td [(str)8(uctur)18(e)-311(on)-311(t)1(he )-61(list )-61(to )-61(point )-61(to )-61(the)]TJ /TT0 1 Tf 15.778 0 Td (job)Tj /T1_0 1 Tf 2.111 0 Td [(str)8(uctur)18(e)-310(we)-310(a)]TJ -0.018 Tc 6.403 0 Td [(re )-97(re)]TJ 0 Tc 2.023 0 Td (placing.)Tj -30.485 -1.2 Td [(Then )-194(we )-194(set )-194(the)]TJ /TT0 1 Tf 7.961 0 Td (jobhead)Tj /T1_0 1 Tf 4.644 0 Td [(pointer )-194(to )-194(the)]TJ /TT0 1 Tf 6.811 0 Td (job)Tj /T1_0 1 Tf 2.244 0 Td [(str)8(uctur)]TJ 0.4439 Tc 3.49 0 Td (ew)Tj 0.444 Tc 1.757 0 Td (ea)Tj -0.018 Tc 1.423 0 Td [(re )-230(re)]TJ 0 Tc 2.156 0 Td (placing.)Tj -30.485 -1.2 Td [(Finally)111(,)-250(we)-250(r)18(elease the)]TJ /TT0 1 Tf 9.935 0 Td (joblock)Tj /T1_0 1 Tf 4.45 0 Td (mutex.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47596 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.4)]TJ 32.736 0 Td [(Passing )-250(File )-250(Descriptors)]TJ /T1_1 1 Tf 13.097 0 Td (647)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(To )-402(r)]TJ 0 Tc 1.912 0 Td [(eceive )-218(a )-218(descriptor )-218(\(Figur)]TJ 0.4679 Tc 11.869 0 Td (e1)Tj 0 Tc 1.447 0 Td [(7.14\), )-218(we )-218(allocate )-218(enough )-218(r)18(oom )-218(for )-218(a)]TJ /TT0 1 Tf 17.772 0 Td (cmsghdr)Tj /T1_0 1 Tf -34.8 -1.2 Td [(str)8(uctur)]TJ 0.4254 Tc 3.49 0 Td (ea)Tj 0 Tc 1.404 0 Td [(nd )-175(a )-175(descriptor)]TJ 0.4254 Tc 6.982 0 Td (,s)Tj 0 Tc 1.099 0 Td (et)Tj /TT0 1 Tf 1.23 0 Td (msg_control)Tj /T1_0 1 Tf 7.026 0 Td [(to )-175(point )-175(to )-175(the )-175(allocated )-175(ar)18(ea, )-175(and )-175(call)]TJ /TT0 1 Tf -21.231 -1.2 Td (recvmsg)Tj /T1_0 1 Tf 0.5 Tc (.W)Tj 0.25 Tc 5.858 0 Td (eu)Tj 0 Tc 1.332 0 Td (se the)Tj /TT0 1 Tf 2.79 0 Td (CMSG_LEN)Tj /T1_0 1 Tf 5.05 0 Td [(macr)18(o)-250(to)-250(calculate the amount of space needed.)]TJ -0.092 Tc -13.23 -1.2 Td [(We )-301(r)]TJ 0 Tc 2.131 0 Td [(ead )-117(fr)18(om )-117(the )-117(socket )-117(until )-117(we )-117(r)18(ead )-117(the )-117(null )-117(byte )-117(that )-117(pr)18(ecedes )-117(the )-117(\336nal )-117(status)]TJ -3.931 -1.2 Td [(byte. )-250(Everything)-250(up to this null byte is an err)18(or message fr)18(om the sender)74(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6138.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 604.2265 Tm (#include "apue.h")Tj 0 -1.189 TD [(#include )-3000(/* struct msghdr */)]TJ 0 -1.902 TD (/* size of control buffer to send/recv one file descriptor */)Tj 0 -1.189 TD [(#define CONTROLLEN)-1200(CMSG_LEN\(sizeof\(int\)\))]TJ 0 -1.902 TD [(static struct cmsghdr)-1800(*cmptr = NULL;)-3600(/* malloc\325ed first time */)]TJ 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*R)Tj 0 Tc 1.8 0 Td [(eceive a file descriptor from a server process.)-1200(Also, any data)]TJ 0.6 Tc -1.8 -1.189 Td (*r)Tj 0 Tc 1.8 0 Td (eceived is passed to \(*userfunc\)\(STDERR_FILENO, buf, nbytes\).)Tj -1.8 -1.189 Td [(*)-600(We)-600(have a 2-byte protocol for receiving the fd from send_fd\(\).)]TJ 0 -1.189 TD (*/)Tj -0.6 -1.189 Td (int)Tj T* (recv_fd\(int fd, ssize_t \(*userfunc\)\(int, const void *, size_t\)\))Tj T* ({)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td [(newfd,)-600(nr, status;)]TJ -9.6 -1.189 Td (char )Tj 9.6 0 Td (*ptr;)Tj -9.6 -1.189 Td (char )Tj 9.6 0 Td (buf[MAXLINE];)Tj -9.6 -1.189 Td [(struct iovec)-2400(iov[1];)]TJ T* [(struct msghdr)-1800(msg;)]TJ 0 -1.902 TD (status = -1;)Tj 0 -1.189 TD (for \( ; ; \) {)Tj 2.4 -1.189 Td (iov[0].iov_base = buf;)Tj T* [(iov[0].iov_len )-600(=)-600(sizeof\(buf\);)]TJ T* [(msg.msg_iov )-2400(=)-600(iov;)]TJ T* [(msg.msg_iovlen )-600(=)-600(1;)]TJ T* [(msg.msg_name )-1800(=)-600(NULL;)]TJ T* (msg.msg_namelen = 0;)Tj 0 -1.189 TD (if \(cmptr == NULL && \(cmptr = malloc\(CONTROLLEN\)\) == NULL\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td [(msg.msg_control )-1800(=)-600(cmptr;)]TJ 0 -1.189 TD (msg.msg_controllen = CONTROLLEN;)Tj T* (if \(\(nr = recvmsg\(fd, &msg, 0\)\) < 0\) {)Tj 2.4 -1.189 Td (err_ret\("recvmsg error"\);)Tj T* (return\(-1\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(nr == 0\) {)Tj 0.6 -1.189 Td (err_ret\("connection closed by server"\);)Tj 0 -1.189 TD (return\(-1\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*S)Tj 0 Tc 1.8 0 Td [(ee if this is the final data with null & status.)-1200(Null)]TJ -1.8 -1.189 Td [(*)-600(is)-600(next to last byte of buffer; status byte is last byte.)]TJ 0.6 Tc 0 -1.189 TD (*Z)Tj 0 Tc 1.8 0 Td (ero status means there is a file descriptor to receive.)Tj -1.8 -1.189 Td (*/)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47597 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (980)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (pthread_spin_init)Tj /T1_1 1 Tf 10.617 0 Td [(function, )-250(417)]TJ -9.267 -1.25 Td [(de\336nition of,)-500(417)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_spin_lock)Tj /T1_1 1 Tf 10.617 0 Td [(function, )-250(418)]TJ -9.267 -1.25 Td [(de\336nition of,)-500(418)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_spin_trylock)Tj /T1_1 1 Tf 12.417 0 Td [(function, )-250(418)]TJ -11.067 -1.25 Td [(de\336nition of,)-500(418)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_spin_unlock)Tj /T1_1 1 Tf 11.817 0 Td [(function, )-250(418)]TJ -10.467 -1.25 Td [(de\336nition of,)-500(418)]TJ /TT0 1 Tf -1.35 -1.25 Td (PTHREAD_STACK_MIN)Tj /T1_1 1 Tf 10.617 0 Td [(constant, )-250(426,)-250(430)]TJ /TT0 1 Tf -10.617 -1.25 Td (pthread_t)Tj /T1_1 1 Tf 5.817 0 Td [(data type,)-500(59, 384)]TJ 7.982 0.09 Td (\320)Tj 0.583 -0.09 Td (385, 387, 390)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (391,)Tj -17.849 -1.25 Td [(395, 41)55(1, 421, 428, 456, 460, 476, 632, 812, 814,)]TJ 0 -1.25 TD (824, 829, 926, 941)Tj /TT0 1 Tf -2.7 -1.25 Td (pthread_testcancel)Tj /T1_1 1 Tf 11.217 0 Td [(function, )-250(451,)-250(453)]TJ -9.867 -1.25 Td [(de\336nition of,)-500(453)]TJ /TT0 1 Tf -1.35 -1.25 Td (PTHREAD_THREADS_MAX)Tj /T1_1 1 Tf 11.817 0 Td [(constant, )-250(426)]TJ /TT0 1 Tf -11.817 -1.25 Td (ptrdiff_t)Tj /T1_1 1 Tf 5.817 0 Td [(data type,)-500(59)]TJ /TT0 1 Tf -5.817 -1.25 Td (ptsname)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(442,)-250(723)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (725)Tj -11.89 -1.25 Td [(de\336nition of,)-500(723)]TJ /TT0 1 Tf -1.35 -1.25 Td (pty)Tj /T1_1 1 Tf 2.217 0 Td [(pr)18(ogram, )-250(309,)-250(715, 720)]TJ 10.191 0.09 Td (\320)Tj 0.583 -0.09 Td (721, 727, 729)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (742, 944)Tj /TT0 1 Tf -19.158 -1.25 Td (pty_fork)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(721,)-250(724, 726)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (730, 732, 739,)Tj -13.14 -1.25 Td (741)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (742)Tj -3.517 -1.25 Td [(de\336nition of,)-500(727)]TJ /TT0 1 Tf -1.35 -1.25 Td (ptym_open)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(724,)-250(726)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (728, 897)Tj -13.09 -1.25 Td [(de\336nition of,)-500(724)]TJ 7.775 0.09 Td (\320)Tj 0.583 -0.09 Td (725)Tj /TT0 1 Tf -9.709 -1.25 Td (ptys_fork)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(897)]TJ /TT0 1 Tf -5.817 -1.25 Td (ptys_open)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(724,)-250(726)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (728, 897)Tj -13.09 -1.25 Td [(de\336nition of,)-500(724)]TJ 7.775 0.09 Td (\320)Tj 0.583 -0.09 Td (725)Tj -9.709 -1.25 Td [(Pu, C.,)-500(65, 953)]TJ /TT0 1 Tf T* (putc)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(10,)-250(152)]TJ 7.54 0.09 Td (\320)Tj 0.583 -0.09 Td (156, 247)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (248, 452, 701)Tj -13.757 -1.25 Td [(de\336nition of,)-500(152)]TJ /TT0 1 Tf -1.35 -1.25 Td (putchar)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(152,)-250(175, 452, 547)]TJ 12.04 0.09 Td (\320)Tj 0.583 -0.09 Td (548)Tj -15.89 -1.25 Td [(de\336nition of,)-500(152)]TJ /TT0 1 Tf -1.35 -1.25 Td (putchar_unlocked)Tj /T1_1 1 Tf 10.017 0 Td [(function, )-250(442,)-250(444, 452)]TJ -8.667 -1.25 Td [(de\336nition of,)-500(444)]TJ /TT0 1 Tf -1.35 -1.25 Td (putc_unlocked)Tj /T1_1 1 Tf 8.217 0 Td [(function, )-250(442,)-250(444, 452)]TJ -6.867 -1.25 Td [(de\336nition of,)-500(444)]TJ /TT0 1 Tf -1.35 -1.25 Td (putenv)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(204,)-250(212, 251, 442, 446, 462)]TJ -2.667 -1.25 Td [(de\336nition of,)-500(212)]TJ /TT0 1 Tf -1.35 -1.25 Td (putenv_r)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(462)]TJ /TT0 1 Tf -5.217 -1.25 Td (puts)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(152)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td [(153, 452, 91)55(1)]TJ -8.09 -1.25 Td [(de\336nition of,)-500(153)]TJ /TT0 1 Tf -1.35 -1.25 Td (pututxline)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(442,)-250(452)]TJ /TT0 1 Tf -6.417 -1.25 Td (putwc)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -3.417 -1.25 Td (putwchar)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -5.217 -1.25 Td (PWD)Tj /T1_1 1 Tf 2.217 0 Td [(envir)18(onment variable,)-500(21)55(1)]TJ /TT0 1 Tf -2.217 -1.25 Td ()Tj /T1_1 1 Tf 4.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9, 177, 186)Tj /TT0 1 Tf -8.839 -1.25 Td (pwrite)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(78)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (79, 451, 461)Tj 5.083 0.09 Td (\320)Tj 0.583 -0.09 Td (462, 592)Tj -14.457 -1.25 Td [(de\336nition of,)-500(78)]TJ -1.35 -4.75 Td [(Quarterman, J. S.,)-500(33)]TJ 9.39 0.09 Td (\320)Tj 0.583 -0.09 Td [(34, 74, 1)55(12, 1)55(16, 229, 236, 525,)]TJ -7.273 -1.25 Td (951)Tj -2.7 -1.25 Td (QUIT terminal character)Tj 0.5 Tc 10.752 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 681, 688, 702)Tj 13.998 66 Td [(race conditions,)-500(245)]TJ 9.044 0.09 Td (\320)Tj 0.583 -0.09 Td (249, 339, 784, 922, 924)Tj -9.627 -1.25 Td [(Rago, J. E.,)-500(xxvii)]TJ T* [(Rago, S. A.,)-500(xxxii, 88, 157, 290, 952)]TJ /TT0 1 Tf T* (raise)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(331,)-250(336)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (338, 365)Tj -10.69 -1.25 Td [(de\336nition of,)-500(337)]TJ /TT0 1 Tf -1.35 -1.25 Td (rand)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(442)]TJ -2.817 -1.25 Td [(raw terminal mode,)-500(672, 704, 708, 713, 732, 734)]TJ T* [(Raymond, E. S.,)-500(952)]TJ /TT0 1 Tf T* (read)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(8)]TJ 5.04 0.09 Td (\320)Tj 0.583 -0.09 Td (10, 20, 59, 61, 64, 71)Tj 8.583 0.09 Td (\320)Tj 0.583 -0.09 Td (72, 78, 88,)Tj -14.907 -1.25 Td (90)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (91, 1)Tj -0.055 Tc 1.945 0 Td (11)Tj 0.25 Tc 0.945 0 Td (,1)Tj 0 Tc 1 0 Td (24)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (125, 130, 145, 154)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (156, 174,)Tj -15.389 -1.25 Td (301, 308)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (309, 328)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (331, 342)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (343, 364)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (365,)Tj -16.666 -1.25 Td (378, 451, 462, 470, 482)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (483, 495)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (496,)Tj -14.333 -1.25 Td (498)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (502, 505)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (506, 508)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (509, 513, 517,)Tj -10.5 -1.25 Td (523)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (525, 530)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (531, 536)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (537, 540)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (541,)Tj -14.666 -1.25 Td (549)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (551, 553, 556, 587, 590, 592, 610, 612, 654,)Tj -2.167 -1.25 Td (656, 665)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (667, 672, 702)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (704, 708)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (709,)Tj -14.5 -1.25 Td (732)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (733, 738, 740, 748, 752, 765, 767)Tj 13.583 0.09 Td (\320)Tj 0.583 -0.09 Td (768,)Tj -16.333 -1.25 Td (805)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(806, 81)55(1, 818, 823, 836)]TJ 9.528 0.09 Td (\320)Tj 0.583 -0.09 Td (838, 907)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (908,)Tj -16.445 -1.25 Td (936, 943)Tj -1.35 -1.25 Td [(de\336nition of,)-500(71)]TJ -0.018 Tc -1.35 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (ad, scatter)Tj 0.5 Tc 4.431 0 Td (,5)Tj 0 Tc 1.25 0 Td (21, 644)Tj /TT0 1 Tf -6.537 -1.25 Td (readdir)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(5,)-250(7, 130)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (135, 442, 452, 697, 823)Tj -11.89 -1.25 Td [(de\336nition of,)-500(130)]TJ /TT0 1 Tf -1.35 -1.25 Td (readdir_r)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(443,)-250(452)]TJ -0.018 Tc -5.817 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(ader\320writer lock attributes,)-500(439)]TJ 14.098 0.09 Td (\320)Tj 0.583 -0.09 Td (440)Tj -0.018 Tc -15.538 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(ader\320writer locks,)-500(409)]TJ 10.049 0.09 Td (\320)Tj 0.583 -0.09 Td (413)Tj -0.018 Tc -11.489 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(ading dir)18(ectories, )-250(130)]TJ 9.786 0.09 Td (\320)Tj 0.583 -0.09 Td (135)Tj /TT0 1 Tf -11.225 -1.25 Td (readlink)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(121,)-250(123)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (124, 331, 452)Tj -12.49 -1.25 Td [(de\336nition of,)-500(123)]TJ /TT0 1 Tf -1.35 -1.25 Td (readlinkat)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(123)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (124, 331, 452)Tj -11.69 -1.25 Td [(de\336nition of,)-500(123)]TJ /TT0 1 Tf -1.35 -1.25 Td (read_lock)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(489,)-250(493, 498, 897)]TJ /TT0 1 Tf -5.817 -1.25 Td (readmore)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(814,)-250(837, 840)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (841)Tj -14.49 -1.25 Td [(de\336nition of,)-500(837)]TJ /TT0 1 Tf -1.35 -1.25 Td (readn)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(523)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td [(524, 738, 806, 81)55(1, 896)]TJ -8.69 -1.25 Td [(de\336nition of,)-500(523)]TJ 7.775 0.09 Td (\320)Tj 0.583 -0.09 Td (524)Tj /TT0 1 Tf -9.709 -1.25 Td (readv)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(41,)-250(43, 329, 451, 481, 521)]TJ 15.04 0.09 Td (\320)Tj 0.583 -0.09 Td (523,)Tj -16.34 -1.25 Td (531, 592, 613, 644, 752, 766)Tj -1.35 -1.25 Td [(de\336nition of,)-500(521)]TJ /TT0 1 Tf -1.35 -1.25 Td (readw_lock)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(489,)-250(759, 763, 780, 897)]TJ -0.018 Tc -6.417 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (al)Tj 0.494 -1.25 Td [(gr)18(oup ID,)-500(98, 102, 183, 228, 233, 252)]TJ 15.877 0.09 Td (\320)Tj 0.583 -0.09 Td (253, 256,)Tj -15.111 -1.25 Td (270, 585)Tj -1.35 -1.25 Td [(user ID,)-500(39)]TJ 5.095 0.09 Td (\320)Tj 0.583 -0.09 Td (40, 43, 98)Tj 4.083 0.09 Td (\320)Tj 0.583 -0.09 Td (99, 102, 221, 228, 233,)Tj -8.995 -1.25 Td (252)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (253, 256)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (260, 270, 276, 286, 288, 337,)Tj -6.333 -1.25 Td (381, 585, 924)Tj /TT0 1 Tf -2.7 -1.25 Td (realloc)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(50,)-250(174, 207)]TJ 9.54 0.09 Td (\320)Tj 0.583 -0.09 Td (208, 213, 661)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (662,)Tj -18.207 -1.25 Td [(666, 761, 838, 840, 91)55(1)]TJ 9.528 0.09 Td (\320)Tj 0.583 -0.09 Td (912)Tj -11.462 -1.25 Td [(de\336nition of,)-500(207)]TJ -0.018 Tc -1.35 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.25 Tc 1.367 0 Td (dl)Tj 0 Tc 1.152 0 Td [(ocking, )-250(485)]TJ 5.308 0.09 Td (\320)Tj 0.583 -0.09 Td (499)Tj -7.916 -1.25 Td (advisory)Tj 0.5 Tc 3.777 0 Td (,4)Tj 0 Tc 1.25 0 Td (95)Tj -5.027 -1.25 Td [(deadlock, )-250(490)]TJ T* (mandatory)Tj 0.5 Tc 4.788 0 Td (,4)Tj 0 Tc 1.25 0 Td (95)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47598 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (490)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm [(struct flock)-2400(lock;)]TJ 0 -1.902 TD [(lock.l_type = type;)-3000(/* F_RDLCK or F_WRLCK */)]TJ 0 -1.189 TD [(lock.l_start = offset;)-1200(/* byte offset, relative to l_whence */)]TJ T* (lock.l_whence = whence; /* SEEK_SET, SEEK_CUR, SEEK_END */)Tj T* [(lock.l_len = len;)-4200(/* #bytes \(0 means to EOF\) */)]TJ 0 -1.902 TD (if \(fcntl\(fd, F_GETLK, &lock\) < 0\))Tj 2.4 -1.189 Td (err_sys\("fcntl error"\);)Tj -2.4 -1.902 Td (if \(lock.l_type == F_UNLCK\))Tj 2.4 -1.189 Td [(return\(0\); )-3000(/*)-600(false, region isn\325t locked by another proc */)]TJ -2.4 -1.189 Td (return\(lock.l_pid\); /* true, return pid of lock owner */)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5392.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 233.328 523.1762 Tm (Figure 14.6)Tj /T1_1 1 Tf 5.695 0 Td (Function to test for a locking condition)Tj 9.9988 0 0 9.9988 129.5846 499.1791 Tm [(If )-118(a )-118(lock )-118(exists )-118(that )-118(would )-118(block )-118(the )-118(r)18(equest )-118(speci\336ed )-118(by )-118(the )-118(ar)20(guments, )-118(this )-118(function)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(turns )-11(the )-11(pr)19(ocess )-11(ID )-11(of )-11(the )-11(pr)18(ocess )-11(holding )-11(the )-11(lock.)-511(Otherwise, )-11(the )-11(function )-11(r)18(eturns )-11(0)]TJ -0.856 -1.2 Td [(\(false\). )-523(W)]TJ 0.5226 Tc 4.624 0 Td (en)Tj 0 Tc 1.584 0 Td [(ormally )-273(call )-273(this )-273(function )-273(fr)18(om )-273(the )-273(following )-273(two )-273(macr)21(os )-272(\(de\336ned )-272(in)]TJ /TT0 1 Tf -6.207 -1.2 Td (apue.h)Tj /T1_1 1 Tf (\):)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5824 444.3455 Tm (#define is_read_lockable\(fd, offset, whence, len\) \\)Tj 6 -1.189 Td (\(lock_test\(\(fd\), F_RDLCK, \(offset\), \(whence\), \(len\)\) == 0\))Tj -6 -1.189 Td (#define is_write_lockable\(fd, offset, whence, len\) \\)Tj 6 -1.189 Td (\(lock_test\(\(fd\), F_WRLCK, \(offset\), \(whence\), \(len\)\) == 0\))Tj /T1_1 1 Tf 9.9988 0 0 9.9988 147.5824 392.1119 Tm [(Note )-106(that )-106(the)]TJ /TT0 1 Tf 6.372 0 Td (lock_test)Tj /T1_1 1 Tf 5.756 0 Td [(function )-106(can\325t )-106(be )-106(used )-106(by )-106(a )-106(pr)18(ocess )-106(to )-106(see )-106(whether )-106(it )-106(is)]TJ -13.928 -1.2 Td [(curr)18(ently )-105(holding )-105(a )-105(portion )-105(of )-105(a )-105(\336le )-105(locked.)-607(The )-105(de\336nition )-105(of )-105(the)]TJ /TT0 1 Tf 29.996 0 Td (F_GETLK)Tj /T1_1 1 Tf 4.555 0 Td (command)Tj -34.551 -1.2 Td [(states )-117(that )-117(the )-117(information )-117(r)18(eturned )-117(applies )-117(to )-117(an )-117(existing )-117(lock )-117(that )-117(would )-117(pr)14(event )-117(us)]TJ T* [(fr)18(om )-212(cr)18(eating )-212(our )-212(own )-212(lock.)-712(Since )-212(the)]TJ /TT0 1 Tf 18.48 0 Td (F_SETLK)Tj /T1_1 1 Tf 4.662 0 Td (and)Tj /TT0 1 Tf 2.155 0 Td (F_SETLKW)Tj /T1_1 1 Tf 5.262 0 Td [(commands )-212(always)]TJ -0.018 Tc -30.56 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(place )-90(a )-90(pr)18(ocess\325s )-90(existing )-90(lock )-90(if )-90(it )-90(exists, )-90(we )-90(can )-90(never )-90(block )-90(on )-90(our )-90(own )-90(lock; )-90(thus,)]TJ -0.856 -1.2 Td (the)Tj /TT0 1 Tf 1.637 0 Td (F_GETLK)Tj /T1_1 1 Tf 4.45 0 Td [(command will never r)18(eport our own lock.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3321.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 9.9982 0 0 9.9982 93.5832 296.1057 Tm [(Example )195(\321 )195(Deadloc)19(k)]TJ /T1_1 1 Tf 3.6 -2.4 Td [(Deadlock )-62(occurs )-62(when )-62(two )-62(pr)18(ocesses )-62(ar)]TJ 0.3116 Tc 17.873 0 Td (ee)Tj 0 Tc 1.27 0 Td [(ach )-62(waiting )-62(for )-62(a )-62(r)20(esour)18(ce )-62(that )-62(the )-62(other )-62(has)]TJ -19.143 -1.2 Td [(locked. )-266(The)-266(potential )-16(for )-16(deadlock )-16(exists )-16(if )-16(a )-16(pr)18(ocess )-16(that )-16(contr)18(ols )-16(a )-16(locked )-16(r)18(egion )-16(is )-16(put)]TJ T* [(to sleep when it tries to lock another r)18(egion that is contr)18(olled by a dif)18(fer)18(ent pr)18(ocess.)]TJ 1.8 -1.2 Td (Figur)Tj 0.3583 Tc 2.383 0 Td (e1)Tj 0 Tc 1.337 0 Td [(4.7 )-108(shows )-108(an )-108(example )-108(of )-108(deadlock.)-610(The )-108(child )-108(locks )-108(byte )-108(0 )-108(and )-108(the )-108(par)15(ent)]TJ -5.52 -1.2 Td [(locks )-261(byte )-261(1.)-761(Each )-261(then )-261(tries )-261(to )-261(lock )-261(the )-261(other)-74(\325s )-261(alr)15(eady )-261(locked )-261(byte.)]TJ -0.092 Tc 33.698 0 Td [(We )-445(u)]TJ 0 Tc 2.501 0 Td [(se )-261(the)]TJ -36.199 -1.2 Td [(par)18(ent\320child )-100(synchr)18(onization )-100(r)19(outines )-100(fr)18(om )-100(Section )-100(8.9 )-100(\()]TJ /TT0 1 Tf 25.355 0 Td (TELL_xxx)Tj /T1_1 1 Tf 5.15 0 Td (and)Tj /TT0 1 Tf 2.043 0 Td (WAIT_xxx)Tj /T1_1 1 Tf 0.3498 Tc (\)s)Tj 0 Tc 5.907 0 Td (o)Tj -38.454 -1.2 Td [(that each pr)18(ocess can wait for the other to obtain its lock.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1929.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9978 0 0 8.9978 129.5689 183.414 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (static void)Tj 0 -1.189 TD (lockabyte\(const char *name, int fd, off_t offset\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47599 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (912)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1556.25 6690.25 cm 0 0 m 50 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1596.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 155.6107 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD [(#define DEPTH)-2400(1000 )]TJ 19.2 0 Td [(/*)-600(directory depth */)]TJ -19.2 -1.189 Td (#define STARTDIR "/tmp")Tj 0 -1.189 TD [(#define NAME)-3000("alonglonglonglonglonglonglonglonglonglongname")]TJ T* [(#define MAXSZ)-2400(\(10*8192\))]TJ 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(i;)]TJ T* [(size_t )-600(size;)]TJ 0 -1.189 TD [(char )-1800(*path;)]TJ 0 -2.14 TD (if \(chdir\(STARTDIR\) < 0\))Tj 2.4 -1.189 Td (err_sys\("chdir error"\);)Tj -2.4 -2.14 Td (for \(i = 0; i < DEPTH; i++\) {)Tj 2.4 -1.189 Td (if \(mkdir\(NAME, DIR_MODE\) < 0\))Tj 2.4 -1.189 Td (err_sys\("mkdir failed, i = %d", i\);)Tj -2.4 -1.189 Td (if \(chdir\(NAME\) < 0\))Tj 2.4 -1.189 Td (err_sys\("chdir failed, i = %d", i\);)Tj -4.8 -1.189 Td (})Tj T* (if \(creat\("afile", FILE_MODE\) < 0\))Tj 2.4 -1.189 Td (err_sys\("creat error"\);)Tj -2.4 -2.14 Td (/*)Tj 0.6 Tc 0.6 -1.189 Td (*T)Tj 0 Tc 1.8 0 Td (he deep directory is created, with a file at the leaf.)Tj 0.6 Tc -1.8 -1.189 Td (*N)Tj 0 Tc 1.8 0 Td (ow let\325s try to obtain its pathname.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (path = path_alloc\(&size\);)Tj 0 -1.189 TD (for \( ; ; \) {)Tj 2.4 -1.189 Td (if \(getcwd\(path, size\) != NULL\) {)Tj 2.4 -1.189 Td (break;)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (err_ret\("getcwd failed, size = %ld", \(long\)size\);)Tj T* (size += 100;)Tj T* (if \(size > MAXSZ\))Tj 2.4 -1.189 Td (err_quit\("giving up"\);)Tj -2.4 -1.189 Td (if \(\(path = realloc\(path, size\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("realloc error"\);)Tj -4.8 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj T* (printf\("length = %ld\\n%s\\n", \(long\)strlen\(path\), path\);)Tj 0 -2.14 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1556.25 1561.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1596.25 1561.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 267.006 140.0612 Tm (Figure C.3)Tj /T1_1 1 Tf 5.417 0 Td [(Cr)18(eate a deep dir)18(ectory tr)18(ee)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47600 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.8)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (761)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(171 )-2400(/*)]TJ 0 -1.189 TD [(172 )-3000(*)-600(Allocate an index buffer and a data buffer.)]TJ T* [(173 )-3000(*)-600(+2 for newline and null at end.)]TJ T* [(174 )-3000(*/)]TJ T* [(175 )-2400(if)-600(\(\(db->idxbuf = malloc\(IDXLEN_MAX + 2\)\) == NULL\))]TJ 0 -1.189 TD [(176 )-4800(err_dump\("_db_alloc:)-600(malloc error for index buffer"\);)]TJ 0 -1.189 TD [(177 )-2400(if)-600(\(\(db->datbuf = malloc\(DATLEN_MAX + 2\)\) == NULL\))]TJ T* [(178 )-4800(err_dump\("_db_alloc:)-600(malloc error for data buffer"\);)]TJ T* [(179 )-2400(return\(db\);)]TJ T* [(180 )-1200(})]TJ 0 -1.783 TD [(181 )-1200(/*)]TJ 0 -1.189 TD [(182 )-1800(*)-600(Relinquish access to the database.)]TJ T* [(183 )-1800(*/)]TJ T* [(184 )-1200(void)]TJ T* [(185 )-1200(db_close\(DBHANDLE)-600(h\))]TJ 0 -1.189 TD [(186 )-1200({)]TJ 0 -1.189 TD [(187 )-2400(_db_free\(\(DB)-600(*\)h\); )-600(/*)-600(closes fds, free buffers & struct */)]TJ T* [(188 )-1200(})]TJ 0 -1.783 TD [(189 )-1200(/*)]TJ 0 -1.189 TD [(190 )-1800(*)-600(Free up a DB structure, and all the malloc\325ed buffers it)]TJ T* [(191 )-1800(*)-600(may point to.)-1200(Also close the file descriptors if still open.)]TJ T* [(192 )-1800(*/)]TJ T* [(193 )-1200(static)-600(void)]TJ T* [(194 )-1200(_db_free\(DB)-600(*db\))]TJ T* [(195 )-1200({)]TJ T* [(196 )-2400(if)-600(\(db->idxfd >= 0\))]TJ 0 -1.189 TD [(197 )-4800(close\(db->idxfd\);)]TJ 0 -1.189 TD [(198 )-2400(if)-600(\(db->datfd >= 0\))]TJ 0 -1.189 TD [(199 )-4800(close\(db->datfd\);)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3444.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 320.3596 Tm [([171 )167(\320 )167(180])]TJ -0.092 Tc 5 0 Td [(We )-185(a)]TJ 0 Tc 2.138 0 Td [(llocate )-1(space )-1(for )-1(buf)18(fers )-1(for )-1(the )-1(index )-1(and )-1(data )-1(\336les.)-501(The )-1(buf)16(fer )-1(sizes )-1(ar)17(e)]TJ -2.138 -1.2 Td [(de\336ned )-103(in)]TJ /TT0 1 Tf 4.946 0 Td (apue_db.h)Tj /T1_0 1 Tf 0.6032 Tc (.A)Tj 0.3532 Tc 7.031 0 Td (ne)Tj 0 Tc 1.414 0 Td [(nhancement )-103(to )-103(the )-103(database )-103(library )-103(would )-103(be)]TJ -13.392 -1.2 Td [(to )-17(allow )-17(these )-17(buf)18(fers )-17(to )-17(expand )-17(as )-17(r)20(equir)18(ed. )-267(W)]TJ 0.2667 Tc 21.13 0 Td (ec)Tj 0 Tc 1.19 0 Td [(ould )-17(keep )-17(track )-17(of )-17(the )-17(size)]TJ -22.319 -1.2 Td [(of )-81(these )-81(two )-81(buf)18(fers )-81(and )-81(call)]TJ /TT0 1 Tf 13.183 0 Td (realloc)Tj /T1_0 1 Tf 4.531 0 Td [(whenever )-81(we )-81(\336nd )-81(we )-81(need )-81(a )-81(bigger)]TJ -17.714 -1.2 Td [(buf)18(fer)]TJ 0.5 Tc 2.604 0 Td (.F)Tj 0 Tc 1.306 0 Td [(inally)111(,)-250(we)-250(r)18(eturn a pointer to the)]TJ /TT0 1 Tf 14.454 0 Td (DB)Tj /T1_0 1 Tf 1.45 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (et)Tj 0 Tc 1.055 0 Td (hat we allocated.)Tj -29.359 -1.6 Td [([181 )167(\320 )167(188])-668(The)]TJ /TT0 1 Tf 7.054 0 Td (db_close)Tj /T1_0 1 Tf 5.18 0 Td [(function )-130(is )-130(a )-130(wrapper )-130(that )-130(casts )-130(a )-130(database )-130(handle )-130(to )-130(a)]TJ /TT0 1 Tf 25.567 0 Td (DB)Tj /T1_0 1 Tf -32.8 -1.2 Td [(str)8(uctur)]TJ 0.356 Tc 3.49 0 Td (ep)Tj 0 Tc 1.436 0 Td (ointer)Tj 0.3559 Tc 2.545 0 Td (,p)Tj 0 Tc 1.207 0 Td [(assing )-106(it )-106(to)]TJ /TT0 1 Tf 5.334 0 Td (_db_free)Tj /T1_0 1 Tf 5.156 0 Td [(to )-106(r)18(elease )-106(any )-106(r)18(esour)18(ces )-106(and )-106(fr)18(ee)]TJ -19.168 -1.2 Td (the)Tj /TT0 1 Tf 1.637 0 Td (DB)Tj /T1_0 1 Tf 1.45 0 Td [(str)8(uctur)18(e.)]TJ -8.087 -1.6 Td [([189 )167(\320 )167(199])-668(The)]TJ /TT0 1 Tf 7.215 0 Td (_db_free)Tj /T1_0 1 Tf 5.341 0 Td [(function )-291(is )-291(called )-291(by)]TJ /TT0 1 Tf 10.31 0 Td (db_open)Tj /T1_0 1 Tf 4.741 0 Td [(if )-291(an )-291(err)19(or )-291(occurs )-291(while)]TJ -22.606 -1.2 Td [(opening )-80(the )-80(index )-80(\336le )-80(or )-80(data )-80(\336le )-80(and )-80(is )-80(also )-80(called )-80(by)]TJ /TT0 1 Tf 24.981 0 Td (db_close)Tj /T1_0 1 Tf 5.13 0 Td [(when )-80(an)]TJ -30.111 -1.2 Td [(application )-30(is )-30(done )-30(using )-30(the )-30(database.)-530(If )-30(the )-30(\336le )-30(descriptor )-30(for )-30(the )-30(database)]TJ 0 -1.2 TD [(index )-72(\336le )-72(is )-72(valid, )-72(we )-72(close )-72(it.)-575(The )-72(same )-72(is )-72(done )-72(with )-72(the )-72(\336le )-72(descriptor )-72(for)]TJ T* [(the )-455(data )-455(\336le.)-955(\(Recall )-455(that )-455(when )-455(we )-455(allocate )-455(a )-455(new)]TJ /TT0 1 Tf 26.548 0 Td (DB)Tj /T1_0 1 Tf 1.905 0 Td [(str)8(uctur)]TJ 0.7048 Tc 3.49 0 Td (ei)Tj 0 Tc 1.475 0 Td (n)Tj /TT0 1 Tf -33.418 -1.2 Td (_db_alloc)Tj /T1_0 1 Tf [(,)-266(we)-266(initialize )-16(each )-16(\336le )-16(descriptor )-16(to)]TJ /TT1 1 Tf 21.43 0 Td (!)Tj /T1_0 1 Tf [(1. )-266(If)-266(we )-16(ar)]TJ 0.2657 Tc 5.206 0 Td (eu)Tj 0 Tc 1.348 0 Td [(nable )-16(to )-16(open)]TJ -27.984 -1.2 Td [(one )-59(of )-59(the )-59(database )-59(\336les, )-59(the )-59(corr)20(esponding )-59(\336le )-59(descriptor )-59(will )-59(still )-59(be )-59(set )-59(to)]TJ /TT1 1 Tf T* (!)Tj /T1_0 1 Tf (1, and we will avoid trying to close it.\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47601 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(17.6)]TJ 31.183 0 Td [(An )-250(Open )-250(Server)]TJ 0.5 Tc 7.572 0 Td (,V)Tj 0 Tc 1.361 0 Td [(ersion )-250(2)]TJ /T1_1 1 Tf 5.717 0 Td (661)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm ({)Tj 2.4 -1.189 Td [(int )-2400(i;)]TJ 0 -2.14 TD (if \(client == NULL\))Tj 2.4 -1.189 Td (client = malloc\(NALLOC * sizeof\(Client\)\);)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (client = realloc\(client, \(client_size+NALLOC\)*sizeof\(Client\)\);)Tj -2.4 -1.189 Td (if \(client == NULL\))Tj 2.4 -1.189 Td (err_sys\("can\325t alloc for client array"\);)Tj -2.4 -2.14 Td (/* initialize the new entries */)Tj 0 -1.189 TD (for \(i = client_size; i < client_size + NALLOC; i++\))Tj 2.4 -1.189 Td [(client[i].fd = -1;)-1200(/* fd of -1 means entry available */)]TJ -2.4 -2.14 Td (client_size += NALLOC;)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (alled by loop\(\) when connection request from a new client arrives.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (int)Tj 0 -1.189 TD (client_add\(int fd, uid_t uid\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(int )-2400(i;)]TJ 0 -2.14 TD [(if \(client == NULL\))-3000(/* first time we\325re called */)]TJ 2.4 -1.189 Td (client_alloc\(\);)Tj -4.8 -1.189 Td (again:)Tj 2.4 -1.189 Td (for \(i = 0; i < client_size; i++\) {)Tj 2.4 -1.189 Td [(if \(client[i].fd == -1\) {)-1800(/* find an available entry */)]TJ 2.4 -1.189 Td (client[i].fd = fd;)Tj 0 -1.189 TD (client[i].uid = uid;)Tj T* [(return\(i\); )-600(/*)-600(return index in client[] array */)]TJ -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (/* client array full, time to realloc for more */)Tj 0 -1.189 TD (client_alloc\(\);)Tj T* [(goto again;)-3000(/* and search again \(will work this time\) */)]TJ -2.4 -1.189 Td (})Tj 0 -2.14 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (alled by loop\(\) when we\325re done with a client.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (client_del\(int fd\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(i;)]TJ 0 -2.14 TD (for \(i = 0; i < client_size; i++\) {)Tj 2.4 -1.189 Td (if \(client[i].fd == fd\) {)Tj 2.4 -1.189 Td (client[i].fd = -1;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47602 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (841)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (887 )Tj 9.6 0 Td [(if)-600(\(i >= datsz\) {)-1800(/* get more header */)]TJ -9.6 -1.189 Td (888 )Tj 12 0 Td [(if)-600(\(\(nr = readmore\(sfd, &bp, i, &bufsz\)\) < 0\) {)]TJ -12 -1.189 Td (889 )Tj 14.4 0 Td [(goto)-600(out;)]TJ -14.4 -1.189 Td (890 )Tj 12 0 Td [(})-600(else {)]TJ -12 -1.189 Td (891 )Tj 14.4 0 Td (cp)Tj 0.6 Tc 1.8 0 Td (=&)Tj 0 Tc 1.8 0 Td (bp[i];)Tj -18 -1.189 Td (892 )Tj 14.4 0 Td [(datsz)-600(+= nr;)]TJ -14.4 -1.189 Td (893 )Tj 12 0 Td (})Tj -12 -1.189 Td (894 )Tj 9.6 0 Td (})Tj -9.6 -1.783 Td (895 )Tj 9.6 0 Td (found)Tj 0.6 Tc 3.6 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -15 -1.189 Td (896 )Tj 9.6 0 Td [(while)-600(\(!found\) {)-1200(/* look for end of HTTP header */)]TJ -9.6 -1.189 Td (897 )Tj 12 0 Td [(while)-600(\(i < datsz - 2\) {)]TJ -12 -1.189 Td (898 )Tj 14.4 0 Td [(if)-600(\(*cp == \325\\n\325 && *\(cp + 1\) == \325\\r\325 &&)]TJ -14.4 -1.189 Td (899 )Tj 15.6 0 Td [(*\(cp)-600(+)-600(2\))-600(==)-600(\325\\n\325\) {)]TJ -15.6 -1.189 Td (900 )Tj 16.8 0 Td (found)Tj 0.6 Tc 3.6 0 Td (=1)Tj 0 Tc 1.8 0 Td (;)Tj -22.2 -1.189 Td (901 )Tj 16.8 0 Td [(cp)-600(+= 3;)]TJ -16.8 -1.189 Td (902 )Tj 16.8 0 Td [(i)-600(+= 3;)]TJ -16.8 -1.189 Td (903 )Tj 16.8 0 Td (break;)Tj -16.8 -1.189 Td (904 )Tj 14.4 0 Td (})Tj -14.4 -1.189 Td (905 )Tj 14.4 0 Td (cp++;)Tj -14.4 -1.189 Td (906 )Tj 14.4 0 Td (i++;)Tj -14.4 -1.189 Td (907 )Tj 12 0 Td (})Tj -12 -1.189 Td (908 )Tj 12 0 Td [(if)-600(\(i >= datsz\) {)-1800(/* get more header */)]TJ -12 -1.189 Td (909 )Tj 14.4 0 Td [(if)-600(\(\(nr = readmore\(sfd, &bp, i, &bufsz\)\) < 0\) {)]TJ -14.4 -1.189 Td (910 )Tj 16.8 0 Td [(goto)-600(out;)]TJ -16.8 -1.189 Td (911 )Tj 14.4 0 Td [(})-600(else {)]TJ -14.4 -1.189 Td (912 )Tj 16.8 0 Td (cp)Tj 0.6 Tc 1.8 0 Td (=&)Tj 0 Tc 1.8 0 Td (bp[i];)Tj -20.4 -1.189 Td (913 )Tj 16.8 0 Td [(datsz)-600(+= nr;)]TJ -16.8 -1.189 Td (914 )Tj 14.4 0 Td (})Tj -14.4 -1.189 Td (915 )Tj 12 0 Td (})Tj -12 -1.189 Td (916 )Tj 9.6 0 Td (})Tj -9.6 -1.783 Td (917 )Tj 9.6 0 Td [(if)-600(\(datsz - i < len\) {)-1200(/* get more header */)]TJ -9.6 -1.189 Td (918 )Tj 12 0 Td [(if)-600(\(\(nr = readmore\(sfd, &bp, i, &bufsz\)\) < 0\) {)]TJ -12 -1.189 Td (919 )Tj 14.4 0 Td [(goto)-600(out;)]TJ -14.4 -1.189 Td (920 )Tj 12 0 Td [(})-600(else {)]TJ -12 -1.189 Td (921 )Tj 14.4 0 Td (cp)Tj 0.6 Tc 1.8 0 Td (=&)Tj 0 Tc 1.8 0 Td (bp[i];)Tj -18 -1.189 Td (922 )Tj 14.4 0 Td [(datsz)-600(+= nr;)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2695.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 245.4685 Tm [([887 )167(\320 )167(916])]TJ -0.092 Tc 5 0 Td [(We )-185(n)]TJ 0 Tc 2.219 0 Td (ow know the length of the message \(speci\336ed by the)Tj /TT0 1 Tf 23.38 0 Td (Content-Length)Tj /T1_0 1 Tf -25.6 -1.2 Td [(attribute\). )-302(If)-302(we\325ve )-52(exhausted )-52(the )-52(contents )-52(of )-52(the )-52(buf)19(fer)74(,)-302(we)-302(r)18(ead )-52(mor)]TJ 0.3019 Tc 31.08 0 Td (ef)Tj -0.018 Tc 1.114 0 Td (ro)Tj 0 Tc 0.923 0 Td (m)Tj -33.117 -1.2 Td [(the )-22(printer)]TJ 0.5219 Tc 4.654 0 Td (.N)Tj 0 Tc 1.603 0 Td [(ext )-22(we )-22(sear)18(ch )-22(for )-22(the )-22(end )-22(of )-22(the )-22(HTTP )-22(header )-22(\(a )-22(blank )-22(line\).)-521(If)]TJ -6.257 -1.2 Td [(we )-47(\336nd )-47(it, )-47(we )-47(set )-47(the)]TJ /TT0 1 Tf 9.688 0 Td (found)Tj /T1_0 1 Tf 3.297 0 Td [(\337ag )-47(and )-47(skip )-47(the )-47(blank )-47(line.)-547(Whenever )-47(we )-47(call)]TJ /TT0 1 Tf -12.985 -1.2 Td (readmore)Tj /T1_0 1 Tf [(,)-403(we)-403(s)1(et)]TJ /TT0 1 Tf 8.8 0 Td (cp)Tj /T1_0 1 Tf 1.603 0 Td [(to )-153(point )-153(to )-153(the )-153(same )-153(of)18(fset )-153(in )-153(the )-153(buf)18(fer )-153(that )-153(it )-153(had)]TJ -10.402 -1.2 Td [(pr)18(eviously just in case the buf)18(fer addr)18(ess changed when it was r)18(eallocated.)]TJ -5 -1.6 Td [([917 )167(\320 )167(922])-668(When )-18(we )-18(\336nd )-18(the )-18(end )-18(of )-18(the )-18(HTTP )-18(header)76(,)-268(we)-268(c)1(alculate )-18(the )-18(number )-18(of )-18(bytes)]TJ 5 -1.2 Td [(that the HTTP header consumed.)-500(If the amount we\325ve r)14(ead )-1(minus )-1(the )-1(size )-1(of)]TJ 0 -1.2 TD [(the )-51(HTTP )-51(header )-51(is )-51(not )-51(equal )-51(to )-51(the )-51(amount )-51(of )-51(data )-51(in )-51(the )-51(IPP )-51(message )-51(\(the)]TJ T* [(value we calculated fr)18(om the content length\), then we r)18(ead some mor)18(e.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47603 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (748)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(To )-262(\336)]TJ 0 Tc 2 0 Td [(nd )-78(a )-78(r)19(ecor)18(d)-328(in)-328(the )-78(database )-78(given )-78(its )-78(key)112(,)]TJ /TT0 1 Tf 18.874 0 Td (db_fetch)Tj /T1_1 1 Tf 5.128 0 Td [(calculates )-78(the )-78(hash )-78(value)]TJ -27.801 -1.2 Td [(of )-32(the )-32(key)]TJ 0.282 Tc 4.31 0 Td (,w)Tj 0 Tc 1.366 0 Td [(hich )-32(leads )-32(to )-32(one )-32(hash )-32(chain )-32(in )-32(the )-32(hash )-32(table.)-532(\(The)]TJ /T1_2 1 Tf 23.276 0 Td [(chain )-32(ptr)]TJ /T1_1 1 Tf 3.971 0 Td [(\336eld )-32(could )-32(be)]TJ -32.923 -1.2 Td [(0, )-68(indicating )-68(an )-68(empty )-68(chain.\))]TJ -0.092 Tc 13.974 0 Td [(We )-252(t)]TJ 0 Tc 2.031 0 Td [(hen )-68(follow )-68(this )-68(hash )-68(chain, )-68(which )-68(is )-68(a )-68(linked )-68(list )-68(of)]TJ -16.005 -1.2 Td [(all )-109(the )-109(index )-109(r)17(ecor)18(ds )-109(with )-109(this )-109(hash )-109(value.)-609(When )-109(we )-109(encounter )-109(a)]TJ /T1_2 1 Tf 30.09 0 Td [(chain )-109(ptr)]TJ /T1_1 1 Tf 4.125 0 Td [(value )-109(of )-109(0,)]TJ -34.215 -1.2 Td (we\325ve hit the end of the hash chain.)Tj 1.8 -1.2 Td [(Let\325s )-204(look )-204(at )-204(an )-204(actual )-204(database )-204(\336le.)-704(The )-204(pr)18(ogram )-204(in )-204(Figur)]TJ 0.4545 Tc 27.729 0 Td (e2)Tj 0 Tc 1.434 0 Td [(0.3 )-204(cr)18(eates )-204(a )-204(new)]TJ -30.962 -1.2 Td [(database )-90(and )-90(writes )-90(thr)18(ee )-90(r)20(ecor)18(ds )-90(to )-90(it.)-590(Since )-90(we )-90(stor)]TJ 0.3396 Tc 24.188 0 Td (ea)Tj 0 Tc 1.319 0 Td [(ll )-89(the )-89(\336elds )-89(in )-89(the )-89(database )-89(as)]TJ -25.507 -1.2 Td [(ASCII )-169(characters, )-169(we )-169(can )-169(look )-169(at )-169(the )-169(actual )-169(index )-169(\336le )-169(and )-169(data )-169(\336le )-169(using )-169(any )-169(of )-169(the)]TJ 0 -1.2 TD (standar)Tj 0.25 Tc 3.32 0 Td (dU)Tj 0 Tc 1.639 0 Td (NIX System tools:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5922 553.0566 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (ls -l db4.*)Tj /TT0 1 Tf -1.2 -1.189 Td [(-rw-r--r-- )-600(1)-600(sar )-4200(28)-600(Oct 19 21:33 db4.dat)]TJ 0 -1.189 TD [(-rw-r--r-- )-600(1)-600(sar )-4200(72)-600(Oct 19 21:33 db4.idx)]TJ T* ($)Tj /TT1 1 Tf 1.2 0 Td (cat db4.idx)Tj /TT0 1 Tf 0.6 -1.189 Td [(0)-1200(53)-1200(3)]TJ 1.8 Tc (50)Tj 1.2 Tc 0 -1.189 TD (01)Tj 0 Tc 2.4 0 Td (0Alpha:0:6)Tj 1.2 Tc -2.4 -1.189 Td (01)Tj 0 Tc 2.4 0 Td (0beta:6:14)Tj -3 -1.189 Td [(17 )-600(11gamma:20:8)]TJ -1.2 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (cat db4.dat)Tj /TT0 1 Tf -1.2 -1.189 Td (data1)Tj T* (Data for beta)Tj 0 -1.189 TD (record3)Tj /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5933 414.1551 Tm [(To )-467(k)]TJ 0 Tc 2.156 0 Td [(eep )-283(this )-283(example )-283(small, )-283(we )-283(have )-283(set )-283(the )-283(size )-283(of )-283(each)]TJ /T1_2 1 Tf 26.068 0 Td (ptr)Tj /T1_1 1 Tf 1.755 0 Td [(\336eld )-283(to )-283(four )-283(ASCII)]TJ -29.98 -1.2 Td [(characters; )-248(the )-248(number )-248(of )-248(hash )-248(chains )-248(is )-248(set )-248(to )-248(3.)-745(Since )-248(each)]TJ /T1_2 1 Tf 29.526 0 Td (ptr)Tj /T1_1 1 Tf 1.72 0 Td [(is )-248(a )-248(\336le )-248(of)18(fset, )-248(a)]TJ -31.245 -1.2 Td [(four)18(-character )-140(\336eld )-140(limits )-140(the )-140(total )-140(size )-140(of )-140(the )-140(index )-140(\336le )-140(and )-140(data )-140(\336le )-140(to )-140(10,000 )-140(bytes.)]TJ 0 -1.2 TD [(When )-97(we )-97(do )-97(some )-97(performance )-97(measur)19(ements )-97(of )-97(the )-97(database )-97(system )-97(in )-97(Section )-97(20.9,)]TJ T* [(we )-3(set )-3(the )-3(size )-3(of )-3(each)]TJ /T1_2 1 Tf 10.025 0 Td (ptr)Tj /T1_1 1 Tf 1.475 0 Td [(\336eld )-3(to )-3(six )-3(characters )-3(\(allowing )-3(\336le )-3(sizes )-3(up )-3(to )-3(1 )-3(million )-3(bytes\))]TJ -11.5 -1.2 Td (and the number of hash chains to mor)Tj 0.25 Tc 16.793 0 Td (et)Tj 0 Tc 1.055 0 Td (han 100.)Tj -16.048 -1.2 Td (The \336rst line in the index \336le)Tj /TT0 1 Tf 8.9995 0 0 8.9995 163.7914 325.4605 Tm [(0)-1200(53)-1200(3)]TJ 1.8 Tc (50)Tj /T1_1 1 Tf 0 Tc 9.9994 0 0 9.9994 129.5934 307.4616 Tm [(consists )-253(of )-253(the )-253(fr)18(ee-list )-253(pointer )-253(\(0, )-253(the )-253(fr)18(ee )-253(list )-253(is )-253(empty\) )-253(and )-253(the )-253(thr)17(ee )-253(hash )-253(chain)]TJ T* (pointers)Tj 3.894 0.04 Td (\()Tj 0.333 -0.04 Td (53, 35, and 0)Tj 5.443 0.04 Td (\))Tj 0.5 Tc 0.333 -0.04 Td (.T)Tj 0 Tc 1.363 0 Td (he next line)Tj /TT0 1 Tf 1.2 Tc 8.9995 0 0 8.9995 163.7914 278.7633 Tm (01)Tj 0 Tc 2.4 0 Td (0Alpha:0:6)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5934 260.7644 Tm [(shows )-163(the )-163(format )-163(of )-163(each )-163(index )-163(r)15(ecor)18(d. )-413(The)-414(\336rst )-163(\336eld)]TJ 25.422 0.04 Td (\()Tj 0.333 -0.04 Td (0)Tj 0.5 0.04 Td (\))Tj 0.746 -0.04 Td [(is )-163(the )-163(four)18(-character )-163(chain)]TJ -27.001 -1.2 Td (pointer)Tj 0.5213 Tc 3.146 0 Td (.T)Tj 0 Tc 1.384 0 Td [(his )-21(r)18(ecor)18(d)-271(is)-271(t)-1(he )-21(end )-21(of )-21(its )-21(hash )-21(chain.)-521(The )-21(next )-21(\336eld)]TJ 23.631 0.04 Td (\()Tj 0.333 -0.04 Td (10)Tj 1 0.04 Td (\))Tj 0.604 -0.04 Td [(is )-21(the )-21(four)17(-character)]TJ /T1_2 1 Tf -30.098 -1.2 Td [(idx )-163(len)]TJ /T1_1 1 Tf 0.4131 Tc (,t)Tj 0 Tc 3.903 0 Td [(he )-163(length )-163(of )-163(the )-163(r)18(emainder )-163(of )-163(this )-163(index )-163(r)17(ecor)18(d. )-413(W)]TJ 0.413 Tc 23.681 0 Td (er)Tj 0 Tc 1.269 0 Td [(ead )-163(each )-163(index )-163(r)18(ecor)18(d)]TJ -28.853 -1.2 Td [(using )-139(two)]TJ /TT0 1 Tf 4.941 0 Td (read)Tj /T1_1 1 Tf [(s: )-139(one )-139(to )-139(r)17(ead )-139(the )-139(two )-139(\336xed-size )-139(\336elds )-139(\(the)]TJ /T1_2 1 Tf 22.485 0 Td [(chain )-139(ptr)]TJ /T1_1 1 Tf 4.186 0 Td (and)Tj /T1_2 1 Tf 2.082 0 Td [(idx )-139(len)]TJ /T1_1 1 Tf 0.3894 Tc (\)a)Tj 0 Tc 4.113 0 Td (nd)Tj -37.807 -1.2 Td [(another )-549(to )-549(r)18(ead )-549(the )-549(r)18(emaining )-549(\(variable-length\) )-549(portion.)-1048(The )-549(r)18(emaining )-549(thr)19(ee)]TJ -0 -1.2 Td (\336elds\321)Tj /T1_2 1 Tf (key)Tj /T1_1 1 Tf (,)Tj /T1_2 1 Tf 5.357 0 Td [(dat )-114(off)]TJ /T1_1 1 Tf 0.3636 Tc (,a)Tj 0 Tc 3.754 0 Td (nd)Tj /T1_2 1 Tf 1.557 0 Td [(dat )-114(len)]TJ /T1_1 1 Tf (\321ar)Tj 0.3636 Tc 4.741 0 Td (ed)Tj 0 Tc 1.454 0 Td [(elimited )-114(by )-114(a )-114(separator )-114(character )-114(\(a )-114(colon )-114(in )-114(this)]TJ -16.862 -1.2 Td [(case\). )-256(W)]TJ 0.2562 Tc 3.844 0 Td (en)Tj 0 Tc 1.317 0 Td [(eed )-6(the )-6(separator )-6(character)]TJ 0.2562 Tc 11.882 0 Td (,s)Tj 0 Tc 0.93 0 Td [(ince )-6(each )-6(of )-6(these )-6(thr)18(ee )-6(\336elds )-6(is )-6(variable )-6(length.)]TJ -17.973 -1.2 Td [(The )-46(separator )-46(character )-46(can\325t )-46(appear )-46(in )-46(the )-46(key)]TJ 0.5465 Tc 20.926 0 Td (.F)Tj 0 Tc 1.352 0 Td (inally)Tj 0.2965 Tc 2.4 0 Td (,an)Tj 0 Tc 1.925 0 Td [(ewline )-46(terminates )-46(the )-46(index)]TJ -0.018 Tc -26.603 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(d. )-351(The)-352(newline )-101(isn\325t )-101(r)17(equir)18(ed, )-101(since)]TJ /T1_2 1 Tf 17.947 0 Td [(idx )-101(len)]TJ /T1_1 1 Tf 3.204 0 Td [(contains )-101(the )-101(length )-101(of )-101(the )-101(r)16(ecor)18(d. )-351(W)92(e)]TJ -22.007 -1.2 Td (stor)Tj 0.2882 Tc 1.673 0 Td (et)Tj 0 Tc 1.093 0 Td [(he )-38(newline )-38(to )-38(separate )-38(each )-38(index )-38(r)17(ecor)18(d)-288(so)-288(we)-288(c)-1(an )-38(use )-38(the )-38(normal )-38(UNIX )-38(System)]TJ -2.766 -1.2 Td [(tools, )-56(such )-56(as)]TJ /TT0 1 Tf 6.277 0 Td (cat)Tj /T1_1 1 Tf 2.106 0 Td (and)Tj /TT0 1 Tf 1.999 0 Td (more)Tj /T1_1 1 Tf 0.3056 Tc (,w)Tj 0 Tc 3.79 0 Td [(ith )-56(the )-56(index )-56(\336le.)-554(The)]TJ /T1_2 1 Tf 10.142 0 Td (key)Tj /T1_1 1 Tf 1.639 0 Td [(is )-56(the )-56(value )-56(that )-56(we )-56(speci\336ed)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47604 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (536)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2130 6278 720 360 re S Q q 0.99994 0 0 0.99994 0 0 cm q 1 0 0 1 349.8 645.8 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099994 0 0 0.099994 0 0 cm 1 j 1 J q 1 0 0 1 3498 6458 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2994.25 6458.25 cm 0 0 m 432 0 l S Q Q BT /TT0 1 Tf 7.999 0 0 7.999 314.9622 648.9621 Tm (fork)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 3642 6278 720 360 re S Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 237.4972 666.9199 Tm [(par)18(ent)]TJ 19.223 0 Td (child)Tj /TT0 1 Tf -21.541 -4.5 Td [(fd[0])-1500(fd[1])]TJ 18.9 0 Td [(fd[0])-1500(fd[1])]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2346 5414 1800 504 re S Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 313.3968 534.5117 Tm (kernel)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2958 5558 576 216 re S Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 316.617 564.6706 Tm (pipe)Tj ET q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 231 627.8 cm 0 0 m 4.464 -5.904 l 1.152 -7.272 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 2310 6278 cm 0 0 m 44.64 -59.04 l 11.52 -72.72 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2312.8799 6271.52 cm 0 0 m 142.56 -338.76 l 237.6 -564.6 345.12 -677.52 465.12 -677.52 c 645.12 -677.52 l S Q Q q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 353.4 559.4 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3534 5594 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670 6278 cm 0 0 m 432 -126 l 720 -210 924 -324 1044 -468 c 1164 -612 1165.2 -684 1047.6 -684 c 871.2 -684 l S Q Q q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 382.2 627.8 cm 0 0 m -6.408 -3.744 l -7.416 -0.288 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3822 6278 cm 0 0 m -64.08 -37.44 l -74.16 -2.88 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3814.8 6275.8398 cm 0 0 m -428.4 -124.92 l -714 -208.2 -916.8 -297.84 -1036.8 -393.84 c -1156.8 -489.84 -1156.8 -537.84 -1036.8 -537.84 c -856.8 -537.84 l S Q Q q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 353.4 573.8 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3534 5738 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4182 6278 cm 0 0 m -144 -270 l -240 -450 -346.8 -540 -464.4 -540 c -640.8 -540 l S Q Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 248.5058 515.9213 Tm (Figure 15.3)Tj /T1_1 1 Tf 5.695 0 Td (Half-duplex pipe after a)Tj /TT0 1 Tf 10.895 0 Td (fork)Tj /T1_1 1 Tf 9.9946 0 0 9.9946 147.5207 488.3362 Tm [(What )-135(happens )-135(after )-135(the)]TJ /TT0 1 Tf 11.135 0 Td (fork)Tj /T1_1 1 Tf 2.785 0 Td [(depends )-134(on )-134(which )-134(dir)18(ection )-134(of )-134(data )-134(\337ow )-134(we )-134(want.)]TJ -15.72 -1.2 Td [(For )-208(a )-208(pipe )-208(fr)18(om )-208(the )-208(par)18(ent )-208(to )-208(the )-208(child, )-208(the )-208(par)18(ent )-208(closes )-208(the )-208(r)17(ead )-208(end )-208(of )-208(the )-208(pipe)]TJ 0 -1.2 TD (\()Tj /TT0 1 Tf (fd[0])Tj /T1_1 1 Tf [(\), )-126(and )-126(the )-126(child )-126(closes )-126(the )-126(write )-126(end )-126(\()]TJ /TT0 1 Tf 20.549 0 Td (fd[1])Tj /T1_1 1 Tf [(\). )-376(Figur)]TJ 0.3761 Tc 6.592 0 Td (e1)Tj 0 Tc 1.355 0 Td [(5.4 )-126(shows )-126(the )-126(r)18(esulting)]TJ -28.496 -1.2 Td (arrangement of descriptors.)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 2130 3898 720 360 re S Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 3642 3898 720 360 re S Q BT /T1_1 1 Tf 7.9952 0 0 7.9952 237.3975 428.7826 Tm [(par)18(ent)]TJ 19.223 0 Td (child)Tj /TT0 1 Tf -17.041 -4.5 Td (fd[1])Tj 14.4 0 Td (fd[0])Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 2346 3034 1800 504 re S Q BT /T1_1 1 Tf 7.9947 0 0 7.9947 313.2652 296.4443 Tm (kernel)Tj ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J 2958 3178 576 216 re S Q BT /T1_1 1 Tf 7.9942 0 0 7.9942 316.484 326.6048 Tm (pipe)Tj ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 353.4 328.6 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 3534 3286 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670 3898 cm 0 0 m 432 -126 l 720 -210 924 -312 1044 -432 c 1164 -552 1165.2 -612 1047.6 -612 c 871.2 -612 l S Q Q q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 382.2 389.8 cm 0 0 m -6.408 -3.744 l -7.416 -0.288 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 3822 3898 cm 0 0 m -64.08 -37.44 l -74.16 -2.88 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3814.8 3895.8401 cm 0 0 m -428.4 -124.92 l -714 -208.2 -916.8 -309.84 -1036.8 -429.84 c -1156.8 -549.84 -1156.8 -609.84 -1036.8 -609.84 c -856.8 -609.84 l S Q Q BT /T1_0 1 Tf 7.9933 0 0 7.9933 257.3238 277.9664 Tm (Figure 15.4)Tj /T1_1 1 Tf 5.695 0 Td [(Pipe fr)18(om par)18(ent to child)]TJ 9.9916 0 0 9.9916 129.4914 250.3896 Tm [(For )-118(a )-118(pipe )-118(fr)18(om )-118(the )-118(child )-118(to )-118(the )-118(par)18(ent, )-118(the )-118(par)14(ent )-118(closes)]TJ /TT0 1 Tf 26.369 0 Td (fd[1])Tj /T1_1 1 Tf 0.3685 Tc (,a)Tj 0 Tc 4.119 0 Td [(nd )-118(the )-118(child )-118(closes)]TJ /TT0 1 Tf -30.487 -1.2 Td (fd[0])Tj /T1_1 1 Tf (.)Tj 1.8 -1.2 Td [(When one end of a pipe is closed, two r)8(ules apply)111(.)]TJ 0 -2.04 TD [(1. )-633(If)-407(we)]TJ /TT0 1 Tf 4.431 0 Td (read)Tj /T1_1 1 Tf 2.807 0 Td [(fr)18(om )-157(a )-157(pipe )-157(whose )-157(write )-157(end )-157(has )-157(been )-157(closed,)]TJ /TT0 1 Tf 21.783 0 Td (read)Tj /T1_1 1 Tf -0.018 Tc 2.807 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-157(0 )-157(to)]TJ -31.051 -1.2 Td [(indicate )-86(an )-86(end )-86(of )-86(\336le )-86(after )-86(all )-86(the )-86(data )-86(has )-86(been )-86(r)16(ead. )-336(\(T)92(echnically)111(,)-336(we)-336(s)-1(hould)]TJ -0 -1.2 Td [(say )-82(that )-82(this )-82(end )-82(of )-82(\336le )-82(is )-82(not )-82(generated )-82(until )-82(ther)]TJ 0.3324 Tc 22.52 0 Td (ea)Tj -0.018 Tc 1.311 0 Td [(re )-118(n)]TJ 0.3323 Tc 1.77 0 Td (om)Tj 0 Tc 1.761 0 Td (or)Tj 0.3323 Tc 0.923 0 Td (ew)Tj 0 Tc 1.645 0 Td [(riters )-82(for )-82(the)]TJ -29.931 -1.2 Td [(pipe. )-277(It\325s)-277(possible )-27(to )-27(duplicate )-27(a )-27(pipe )-27(descriptor )-27(so )-27(that )-27(multiple )-27(pr)18(ocesses )-27(have)]TJ 0 -1.2 TD [(the )-161(pipe )-161(open )-161(for )-161(writing.)-663(Normally)]TJ 0.4114 Tc 16.855 0 Td (,h)Tj 0 Tc 1.243 0 Td (owever)Tj 0.4114 Tc 3.224 0 Td (,t)Tj 0 Tc 0.987 0 Td [(her)18(e)-411(is)-411(a)-411(s)-1(ingle )-161(r)18(eader )-161(and )-161(a)]TJ -22.31 -1.2 Td [(single )-21(writer )-21(for )-21(a )-21(pipe.)-521(When )-21(we )-21(get )-21(to )-21(FIFOs )-21(in )-21(the )-21(next )-21(section, )-21(we\325ll )-21(see )-21(that)]TJ T* (often ther)Tj 0.25 Tc 4.28 0 Td (ea)Tj -0.018 Tc 1.229 0 Td [(re )-36(m)]TJ 0 Tc 1.989 0 Td (ultiple writers for a single FIFO.\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47605 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (784)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-10(next )-10(test )-10(was )-10(to )-10(try )-10(the )-10(no-locking )-10(pr)14(ogram )-10(with )-10(multiple )-10(childr)17(en. )-260(The)]TJ -0.018 Tc 34.026 0 Td (re)Tj 0 Tc 0.856 0 Td (sults,)Tj -36.682 -1.2 Td [(as )-128(expected, )-128(wer)]TJ 0.3776 Tc 7.554 0 Td (er)Tj 0 Tc 1.252 0 Td [(andom )-128(err)18(ors. )-378(Normally)]TJ 0.3777 Tc 11.175 0 Td (,r)Tj 0 Tc 1.005 0 Td [(ecor)18(ds )-128(that )-128(wer)]TJ 0.3777 Tc 7.06 0 Td (ea)Tj 0 Tc 1.357 0 Td [(dded )-128(to )-128(the )-128(database)]TJ -29.403 -1.2 Td [(couldn\325t )-86(be )-86(found, )-86(and )-86(the )-86(test )-86(pr)16(ogram )-86(aborted.)-586(Dif)18(fer)18(ent )-86(err)18(ors )-86(occurr)18(ed )-86(every )-86(time)]TJ -0 -1.2 Td [(the )-128(test )-128(pr)18(ogram )-128(was )-128(r)6(un. )-378(This)-379(illustrates )-128(a )-128(classic )-128(race )-128(condition: )-128(multiple )-128(pr)15(ocesses)]TJ -0 -1.2 Td (updating the same \336le without using any form of locking.)Tj /TT0 1 Tf -3.6 -2.64 Td [(Multiple-Pr)20(ocess Results)]TJ /T1_1 1 Tf 3.6 -2.04 Td [(The )-117(\336nal )-117(set )-117(of )-117(measur)18(ements )-117(looks )-117(mainly )-117(at )-117(the )-117(dif)14(fer)18(ences )-117(between )-117(coarse-grained)]TJ -0 -1.2 Td [(locking )-41(and )-41(\336ne-grained )-41(locking.)-542(As )-41(we )-41(said )-41(earlier)]TJ 0.2913 Tc 23.274 0 Td (,i)Tj 0 Tc 0.832 0 Td [(ntuitively)111(,)-291(we)-291(e)-1(xpect )-41(\336ne-grained)]TJ -24.106 -1.2 Td [(locking )-117(to )-117(pr)19(ovide )-117(additional )-117(concurr)19(ency)]TJ 0.3666 Tc 18.965 0 Td (,s)Tj 0 Tc 1.041 0 Td [(ince )-117(ther)18(e)-367(is)-367(l)1(ess )-117(time )-117(that )-117(portions )-117(of )-117(the)]TJ -20.005 -1.2 Td [(database )-105(ar)]TJ 0.3548 Tc 5.125 0 Td (el)Tj 0 Tc 1.125 0 Td [(ocked )-105(fr)18(om )-105(other )-105(pr)19(ocesses. )-355(Figur)]TJ 0.3549 Tc 15.603 0 Td (e2)Tj 0 Tc 1.334 0 Td [(0.8 )-105(shows )-105(the )-105(r)18(esults )-105(for )-105(an)]TJ /T1_2 1 Tf 12.856 0 Td [(nr)18(ec)]TJ /T1_1 1 Tf 2.078 0 Td (of)Tj -38.121 -1.2 Td [(2,000, varying the number of childr)18(en fr)18(om 1 to 16.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1357.25 5074.25 cm 0 0 m 3777 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 246.1985 499.3401 Tm (Advisory locking)Tj 21.096 0 Td (Mandatory locking)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1685.25 4954.25 cm 0 0 m 3449 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4489.25 4954.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4176.25 4954.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3238.25 4954.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2926.25 4954.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2300.25 4954.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1988.25 4954.25 cm 0 0 m 0 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 173.1328 487.3123 Tm [(Coarse-grained locking)-1980(Fine-grained locking)]TJ /TT1 1 Tf 22.994 0 Td ($)Tj /T1_1 1 Tf 0.862 0 Td [(Clock )-1276(Fine-grained)-250(locking)]TJ /TT1 1 Tf 15.29 0 Td ($)Tj /T1_1 1 Tf 0.862 0 Td (Sys)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1685.25 4834.25 cm 0 0 m 3449 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 174.818 475.2859 Tm [(User )-1867(Sys)-1883(Clock )-1347(User)-2117(Sys )-1632(Clock)-990(Per)18(cent )-974(User)-2118(Sys )-1632(Clock)-990(Per)18(cent)]TJ 0.25 Tc -4.387 1.5 Td (#P)Tj -0.018 Tc 1.354 0 Td (ro)Tj 0 Tc 0.923 0 Td (c)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1357.25 4714.25 cm 0 0 m 3777 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1357.25 4694.25 cm 0 0 m 3777 0 l S Q Q BT /T1_1 1 Tf 2.6895 Tc 7.9976 0 0 7.9976 152.6022 461.2616 Tm (10)Tj 0 Tc 3.689 0 Td [(.14 )-2158(0.35)-1908(0.50 )-1908(0.14)-2408(0.35 )-1658(0.50)]TJ 2.783 Tc 23.573 0 Td (00)Tj 0 Tc 3.783 0 Td [(.15 )-2158(0.42)-1908(0.58 )-2033(20)]TJ 2.6895 Tc -31.046 -1.25 Td (20)Tj 0 Tc 3.689 0 Td [(.60 )-2158(1.43)-1908(1.88 )-1908(0.54)-2408(1.36 )-1658(1.10)-2283(71 )-2533(0.65)-2408(2.01 )-1658(1.59)-2283(48)]TJ 2.6895 Tc -3.69 -1.25 Td (30)Tj 0 Tc 3.689 0 Td [(.97 )-2158(2.67)-1908(3.18 )-1908(1.37)-2408(3.73 )-1658(2.20)-2283(45 )-2533(1.62)-2408(5.67 )-1658(3.28)-2283(52)]TJ 2.6895 Tc -3.69 -1.25 Td (42)Tj 0 Tc 3.689 0 Td [(.38 )-2158(6.17)-1908(5.59 )-1908(2.83)-2408(8.15 )-1658(4.07)-2283(37 )-2533(3.29)-1908(12.35 )-1658(6.31)-2283(52)]TJ 2.6895 Tc -3.69 -1.25 Td (53)Tj 0 Tc 3.689 0 Td [(.72 )-1658(10.17 )-1658(8.37)-2158(4.28 )-1713(1)55(1.86 )-1658(6.09)-2283(37 )-2533(4.96)-1908(18.47 )-1658(9.49)-2283(56)]TJ 2.6895 Tc -3.69 -1.25 Td (65)Tj 0 Tc 3.689 0 Td [(.02 )-1658(14.52)]TJ -0.055 Tc 6.871 0 Td (11)Tj 0 Tc 0.945 0 Td [(.52 )-1908(6.04)-1908(17.46 )-1658(8.89)-2283(30 )-2533(6.66)-1908(26.38 )-1158(13.22)-2283(51)]TJ 2.6895 Tc -11.506 -1.25 Td (77)Tj 0 Tc 3.689 0 Td [(.00 )-1658(20.16)-1408(15.84 )-1908(8.06)-1908(23.23 )-1213(1)55(1.88 )-2033(33)-2783(9.12 )-1658(36.13)-1408(18.09 )-2033(56)]TJ 2.6895 Tc -3.69 -1.25 Td (89)Tj 0 Tc 3.689 0 Td [(.12 )-1658(26.20)-1408(20.31 )-1408(10.50)-1908(30.50 )-1158(15.48)-2283(31 )-2088(1)55(1.81 )-1658(47.20)-1408(23.49 )-2033(55)]TJ 2.2445 Tc -3.69 -1.25 Td (91)Tj 0 Tc 3.189 0 Td [(1.60 )-1658(33.91)-1408(25.64 )-1408(13.40)-1908(37.80 )-1158(19.29)-2283(33 )-2033(14.54)-1908(60.23 )-1158(29.66)-2283(59)]TJ -3.69 -1.25 Td [(10 )-1939(14.28)-1908(42.24 )-1158(31.35)-1658(16.39 )-1658(47.01)-1408(23.74 )-2033(32 )-2033(17.84)-1908(74.05 )-1158(36.27)-2283(58)]TJ -0.055 Tc 0.055 -1.25 Td [(11 )-2050(1)]TJ 0 Tc 3.635 0 Td [(7.37 )-1658(51.12)-1408(37.50 )-1408(19.71)-1908(56.59 )-1158(28.57)-2283(31 )-2033(21.57)-1908(90.14 )-1158(44.10)-2283(59)]TJ -3.69 -1.25 Td [(12 )-1939(20.70)-1908(60.48 )-1158(44.24)-1658(23.47 )-1658(66.10)-1408(33.34 )-2033(33 )-2033(25.57)-1408(108.94 )-1158(53.1)]TJ 2.338 Tc 40.057 0 Td (16)Tj 0 Tc 3.338 0 Td (5)Tj -43.395 -1.25 Td [(13 )-1939(25.13)-1908(70.67 )-1158(51.96)-1658(27.70 )-1658(77.76)-1408(39.21 )-2033(33 )-2033(29.71)-1408(133.31 )-1158(63.07)-2283(71)]TJ -0 -1.25 Td [(14 )-1939(28.40)-1908(82.23 )-1158(59.88)-1658(32.34 )-1658(91.45)-1408(46.22 )-2033(30 )-2033(34.22)-1408(155.80 )-1158(73.86)-2283(70)]TJ -0 -1.25 Td [(15 )-1939(32.23)-1908(94.26 )-1158(68.30)-1658(36.32 )-1158(102.97 )-1158(51.82)-2283(32 )-2033(39.05)-1408(180.66 )-1158(84.14)-2283(75)]TJ -0 -1.25 Td [(16 )-1939(37.24)-1408(107.87 )-1158(78.67)-1658(42.17 )-1213(1)55(18.20 )-1158(59.72)-2283(32 )-2033(44.1)]TJ 1.463 Tc 32.241 0 Td (12)Tj 0 Tc 2.463 0 Td [(08.28 )-1158(96.82)-2283(76)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1357.25 3074.25 cm 0 0 m 3777 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4801.25 3074.25 cm 0 0 m 0 1880 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4489.25 3074.25 cm 0 0 m 0 1760 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4176.25 3074.25 cm 0 0 m 0 1760 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3854.25 3074.25 cm 0 0 m 0 2000 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3874.25 3074.25 cm 0 0 m 0 2000 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3551.25 3074.25 cm 0 0 m 0 1880 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3238.25 3074.25 cm 0 0 m 0 1760 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2926.25 3074.25 cm 0 0 m 0 1760 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2603.25 3074.25 cm 0 0 m 0 1880 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2623.25 3074.25 cm 0 0 m 0 1880 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2300.25 3074.25 cm 0 0 m 0 1760 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1988.25 3074.25 cm 0 0 m 0 1760 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1665.25 3074.25 cm 0 0 m 0 2000 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1685.25 3074.25 cm 0 0 m 0 2000 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5134.25 3074.25 cm 0 0 m 0 2000 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1357.25 3074.25 cm 0 0 m 0 2000 l S Q Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 204.5663 289.2958 Tm (Figure 20.8)Tj /T1_1 1 Tf 5.695 0 Td (Comparison of various locking techniques,)Tj /T1_2 1 Tf 19.216 0 Td [(nr)18(ec)]TJ /T1_1 1 Tf 0.25 Tc 1.973 0 Td (=2)Tj 0 Tc 1.356 0 Td (,000)Tj 9.9964 0 0 9.9964 129.5536 265.3045 Tm [(All )-85(times )-85(ar)19(e)-335(in)-335(s)1(econds )-85(and )-85(ar)]TJ 0.3346 Tc 14.08 0 Td (et)Tj 0 Tc 1.14 0 Td [(he )-85(total )-85(for )-85(the )-85(par)18(ent )-85(and )-85(all )-85(its )-85(childr)21(en. )-334(Ther)]TJ 0.3345 Tc 21.611 0 Td (ea)Tj -0.018 Tc 1.314 0 Td (re)Tj 0 Tc -38.144 -1.2 Td [(many items to consider fr)18(om this data.)]TJ 1.8 -1.2 Td [(The )-124(\336rst )-124(thing )-124(to )-124(notice )-124(is )-124(that )-124(the )-124(sum )-124(of )-124(the )-124(user )-124(and )-124(system )-124(times )-124(exceeds )-124(the)]TJ -1.8 -1.2 Td [(clock )-160(time )-160(when )-160(multiple )-160(pr)18(ocesses )-160(ar)]TJ 0.41 Tc 17.627 0 Td (eu)Tj 0 Tc 1.492 0 Td [(sed. )-410(This)-410(seems )-160(odd )-160(at )-160(\336rst, )-160(but )-160(is )-160(normal)]TJ -19.119 -1.2 Td [(when )-273(multiple )-273(cor)18(es )-273(ar)]TJ 0.5232 Tc 10.958 0 Td (ep)Tj -0.018 Tc 1.603 0 Td (re)Tj 0 Tc 0.856 0 Td [(sent. )-523(What)-523(happens )-273(is )-273(that )-273(all )-273(concurr)18(ently )-273(executing)]TJ -13.418 -1.2 Td [(pr)18(ocesses )-166(accumulate )-166(time )-166(as )-166(they )-166(execute; )-166(the )-166(CPU )-166(pr)18(ocessing )-166(times )-166(shown )-166(ar)]TJ 0.4159 Tc 36.718 0 Td (et)Tj 0 Tc 1.221 0 Td (he)Tj -37.939 -1.2 Td [(sum )-132(of )-132(the )-132(times )-132(of )-132(all )-132(the )-132(cor)17(es )-132(used )-132(by )-132(the )-132(pr)17(ogram. )-382(Because)-383(we )-132(can )-132(r)8(un )-132(multiple)]TJ 0 -1.2 Td [(pr)18(ocesses )-175(at )-175(the )-175(same )-175(time )-175(\(one )-175(per )-175(cor)18(e\), )-175(the )-175(CPU )-175(pr)18(ocessing )-175(times )-175(can )-175(exceed )-175(the)]TJ 0 -1.2 TD (clock time.)Tj 1.8 -1.2 Td [(The )-207(eighth )-207(column, )-207(labeled )-207(\324)37(\324)]TJ /TT1 1 Tf ($)Tj /T1_1 1 Tf 14.709 0 Td [(Clock,\325)37(\325)-457(is)-457(the )-207(per)18(centage )-207(dif)18(fer)18(ence )-207(between )-207(the)]TJ -16.509 -1.2 Td [(clock )-192(times )-192(fr)18(om )-192(advisory )-192(coarse-grained )-192(locking )-192(and )-192(advisory )-192(\336ne-grained )-192(locking.)]TJ T* [(This )-215(is )-215(a )-215(measur)18(ement )-215(of )-215(how )-215(much )-215(concurr)18(ency )-215(we )-215(obtain )-215(by )-215(going )-215(fr)19(om )-215(coarse-)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47606 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (444)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -1.783 TD (int getchar_unlocked\(void\);)Tj 0 -1.783 TD (int getc_unlocked\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 11.278 -1.783 Td [(Both r)18(eturn: the next character if OK,)]TJ /TT0 1 Tf 16.568 0 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td [(on end of \336le or err)18(or)]TJ /TT0 1 Tf -29.896 -1.783 Td (int putchar_unlocked\(int)Tj /T1_2 1 Tf 15 0 Td (c)Tj /TT0 1 Tf (\);)Tj -15 -1.783 Td (int putc_unlocked\(int)Tj /T1_2 1 Tf 13.2 0 Td (c)Tj /TT0 1 Tf 0.6 Tc (,F)Tj 0 Tc 2.207 0 Td (ILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 9.186 -1.783 Td [(Both r)18(eturn:)]TJ /T1_2 1 Tf 5.577 0 Td (c)Tj /T1_1 1 Tf 0.657 0 Td (if OK,)Tj /TT0 1 Tf 2.886 0 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td [(on err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5575.25 cm 0 0 m 0 1098 l 3900 1098 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 147.5823 543.9347 Tm [(These )-149(four )-149(functions )-149(should )-149(not )-149(be )-149(called )-149(unless )-149(they )-149(ar)]TJ 0.3994 Tc 25.962 0 Td (es)Tj 0 Tc 1.302 0 Td [(urr)18(ounded )-149(by )-149(calls )-149(to)]TJ /TT0 1 Tf -29.064 -1.2 Td (flockfile)Tj /T1_1 1 Tf 5.699 0 Td (\(or)Tj /TT0 1 Tf 1.573 0 Td (ftrylockfile)Tj /T1_1 1 Tf 0.299 Tc (\)a)Tj 0 Tc 8.332 0 Td (nd)Tj /TT0 1 Tf 1.492 0 Td (funlockfile)Tj /T1_1 1 Tf 0.549 Tc (.O)Tj 0 Tc 8.185 0 Td [(therwise, )-49(unpr)18(edictable )-49(r)18(esults)]TJ -25.281 -1.2 Td [(can )-51(occur )-51(\(i.e., )-51(the )-51(types )-51(of )-51(pr)18(oblems )-51(that )-51(r)18(esult )-51(fr)18(om )-51(unsynchr)18(onized )-51(access )-51(to )-51(data )-51(by)]TJ 0 -1.2 TD [(multiple thr)18(eads of contr)18(ol\).)]TJ 1.8 -1.2 Td [(Once )-219(you )-219(lock )-219(the)]TJ /TT0 1 Tf 9.094 0 Td (FILE)Tj /T1_1 1 Tf 2.869 0 Td [(object, )-218(you )-218(can )-218(make )-218(multiple )-218(calls )-218(to )-218(these )-218(functions)]TJ -13.763 -1.2 Td (befor)Tj 0.4219 Tc 2.288 0 Td (er)Tj 0 Tc 1.278 0 Td [(eleasing )-172(the )-172(lock.)-672(This )-172(amortizes )-172(the )-172(locking )-172(over)18(head )-172(acr)19(oss )-172(the )-172(amount )-172(of)]TJ -3.566 -1.2 Td [(data r)18(ead or written.)]TJ /TT1 1 Tf -3.6 -2.4 Td (Example)Tj /T1_1 1 Tf 3.6 -1.92 Td (Figur)Tj 0.3308 Tc 2.383 0 Td (e1)Tj 0 Tc 1.31 0 Td (2.1)Tj 0.3308 Tc 1.195 0 Td (1s)Tj 0 Tc 1.255 0 Td [(hows )-81(a )-81(possible )-81(implementation )-81(of)]TJ /TT0 1 Tf 16.088 0 Td (getenv)Tj /T1_1 1 Tf 3.931 0 Td [(\(Section )-81(7.9\).)-581(This )-81(version )-81(is)]TJ -26.161 -1.2 Td [(not )-80(r)18(eentrant. )-330(If)-330(two )-80(thr)18(eads )-80(call )-80(it )-80(at )-80(the )-80(same )-80(time, )-80(they )-80(will )-80(see )-80(inconsistent )-80(r)17(esults,)]TJ 0 -1.2 Td [(because )-21(the )-21(string )-21(r)18(eturned )-21(is )-21(stor)20(ed )-21(in )-21(a )-21(single )-21(static )-21(buf)18(fer )-21(that )-21(is )-21(shar)18(ed )-21(by )-21(all )-21(thr)22(eads)]TJ T* (calling)Tj /TT0 1 Tf 3.205 0 Td (getenv)Tj /T1_1 1 Tf (.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3856.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 376.0313 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD (#define MAXSTRINGSZ 4096)Tj 0 -1.902 TD (static char envbuf[MAXSTRINGSZ];)Tj 0 -1.902 TD (extern char **environ;)Tj T* (char *)Tj 0 -1.189 TD (getenv\(const char *name\))Tj T* ({)Tj 2.4 -1.189 Td (int i, len;)Tj 0 -1.902 TD (len = strlen\(name\);)Tj 0 -1.189 TD (for \(i = 0; environ[i] != NULL; i++\) {)Tj 2.4 -1.189 Td (if \(\(strncmp\(name, environ[i], len\) == 0\) &&)Tj 1.2 -1.189 Td (\(environ[i][len] == \325=\325\)\) {)Tj 1.2 -1.189 Td (strncpy\(envbuf, &environ[i][len+1], MAXSTRINGSZ-1\);)Tj T* (return\(envbuf\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (return\(NULL\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1466.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 238.3628 134.1658 Tm [(Figure 12.1)37(1)]TJ /T1_1 1 Tf 0.25 Tc 6.25 0 Td (An)Tj 0 Tc 1.61 0 Td [(onr)18(eentrant version of)]TJ /TT0 1 Tf 10.085 0 Td (getenv)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47607 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.3)]TJ /TT0 1 Tf 29.686 0 Td (popen)Tj /T1_0 1 Tf 3.5 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (pclose)Tj /T1_0 1 Tf 4.1 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (547)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2310 6278 576 360 re S Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 3606 6278 576 360 re S Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 248.3251 667 Tm [(par)18(ent)]TJ 14.53 0 Td [(\336lter pr)18(ogram)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3462 5972 cm 0 0 m 0 -69.59 -96.71 -126 -216 -126 c -335.29 -126 -432 -69.59 -432 0 c -432 69.59 -335.29 126 -216 126 c -96.71 126 0 69.59 0 0 c h S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 309.6548 600.3679 Tm (user at a)Tj -0.01 -1.25 Td (terminal)Tj ET q 0.99988 0 0 0.99988 0 0 cm q 1 0 0 1 288.6 645.8 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099988 0 0 0.099988 0 0 cm 1 j 1 J q 1 0 0 1 2886 6458 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3606.25 6458.25 cm 0 0 m -648 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 303.6573 648.9232 Tm (popen)Tj /T1_0 1 Tf 3.25 0 Td (pipe)Tj /T1_2 1 Tf 4.111 -0.625 Td (stdout)Tj ET q 0.99982 0 0 0.99982 0 0 cm q 1 0 0 1 309.336 606.128 cm 0 0 m -7.344 1.224 l -5.904 4.536 l f Q Q q 0.099982 0 0 0.099982 0 0 cm 1 j 1 J q 1 0 0 1 3093.3601 6061.2798 cm 0 0 m -73.44 12.24 l -59.04 45.36 l h S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2598.25 6278.25 cm 0 0 m 429 -188 l S Q Q BT /T1_0 1 Tf 7.3262 -3.2086 3.2086 7.3262 276.3337 623.8922 Tm [(pr)18(ompt)]TJ /T1_2 1 Tf 7.9981 0 0 7.9981 249.5201 630.8886 Tm (stdout)Tj ET q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 389.4 627.8 cm 0 0 m -5.904 -4.536 l -7.344 -1.224 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 3894 6278 cm 0 0 m -59.04 -45.36 l -73.44 -12.24 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3398.25 6061.25 cm 0 0 m 430 188 l S Q Q BT /T1_0 1 Tf 7.3258 3.2084 -3.2084 7.3258 355.3444 616.2591 Tm (user)Tj -0.126 -1.25 Td (input)Tj /T1_2 1 Tf 7.9976 0 0 7.9976 381.0617 630.8507 Tm (stdin)Tj /T1_1 1 Tf -17.479 -8.955 Td (Figure 15.13)Tj /T1_0 1 Tf -0.09 Tc 6.195 0 Td (Tr)Tj 0 Tc 0.918 0 Td (ansforming input using)Tj /TT0 1 Tf 10.701 0 Td (popen)Tj /T1_0 1 Tf 9.997 0 0 9.997 129.5612 535.2396 Tm [(The )-86(transformation )-86(could )-86(be )-86(pathname )-86(expansion, )-86(for )-86(example, )-86(or )-86(pr)18(oviding )-86(a )-86(history)]TJ 0 -1.2 TD [(mechanism \(r)18(emembering pr)18(eviously enter)18(ed commands\).)]TJ 1.8 -1.2 Td (Figur)Tj 0.3621 Tc 2.383 0 Td (e1)Tj 0 Tc 1.341 0 Td [(5.14 )-112(shows )-112(a )-112(simple )-112(\336lter )-112(to )-112(demonstrate )-112(this )-112(operation.)-612(The )-112(\336lter )-112(copies)]TJ -5.524 -1.2 Td (standar)Tj 0.4135 Tc 3.32 0 Td (di)Tj 0 Tc 1.316 0 Td [(nput )-163(to )-163(standar)]TJ 0.4135 Tc 7.131 0 Td (do)Tj 0 Tc 1.571 0 Td [(utput, )-163(converting )-163(any )-163(upper)18(case )-163(character )-163(to )-163(lower)15(case.)]TJ -13.337 -1.2 Td [(The )-373(r)18(eason )-373(we\325r)]TJ 0.6229 Tc 7.796 0 Td (ec)Tj 0 Tc 1.546 0 Td [(ar)18(eful )-373(to)]TJ /TT0 1 Tf 4.701 0 Td (fflush)Tj /T1_0 1 Tf 4.223 0 Td (standar)Tj 0.6229 Tc 3.32 0 Td (do)Tj 0 Tc 1.78 0 Td [(utput )-373(after )-373(writing )-373(a )-373(newline )-373(is)]TJ -23.365 -1.2 Td [(discussed in the next section when we talk about copr)18(ocesses.)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4682.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9968 0 0 8.9968 129.5534 458.5339 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(c;)]TJ 0 -2.14 TD (while \(\(c = getchar\(\)\) != EOF\) {)Tj 2.4 -1.189 Td (if \(isupper\(c\)\))Tj 0.6 Tc 2.4 -1.189 Td (c=t)Tj 0 Tc 3 0 Td (olower\(c\);)Tj -5.4 -1.189 Td (if \(putchar\(c\) == EOF\))Tj 2.4 -1.189 Td (err_sys\("output error"\);)Tj -2.4 -1.189 Td (if \(c == \325\\n\325\))Tj 2.4 -1.189 Td (fflush\(stdout\);)Tj -4.8 -1.189 Td (})Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099964 0 0 0.099964 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2763.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 210.5715 260.1687 Tm (Figure 15.14)Tj /T1_0 1 Tf 6.195 0 Td [(Filter to convert upper)18(case characters to lower)18(case)]TJ -0.092 Tc 9.9958 0 0 9.9958 147.5382 236.1788 Tm [(We )-269(c)]TJ 0 Tc 2.166 0 Td [(ompile )-85(this )-85(\336lter )-85(into )-85(the )-85(executable )-85(\336le)]TJ /TT0 1 Tf 18.334 0 Td (myuclc)Tj /T1_0 1 Tf 0.3353 Tc (,w)Tj 0 Tc 5.019 0 Td [(hich )-85(we )-85(then )-85(invoke )-85(fr)17(om)]TJ -27.32 -1.2 Td [(the pr)18(ogram in Figur)]TJ 0.25 Tc 9.251 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.15 using)Tj /TT0 1 Tf 4.706 0 Td (popen)Tj /T1_0 1 Tf (.)Tj ET q 0.099958 0 0 0.099958 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2171.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9957 0 0 8.9957 129.5378 207.4774 Tm (#include "apue.h")Tj T* (#include )Tj 0 -2.259 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(char )-1800(line[MAXLINE];)]TJ 0 -1.189 TD [(FILE )-1800(*fpin;)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47608 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (926)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 6690.25 cm 0 0 m 50 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 160.2404 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (struct foo {)Tj 2.4 -1.189 Td (int a, b, c, d;)Tj -2.4 -1.189 Td (};)Tj T* (void)Tj 0 -1.189 TD (printfoo\(const char *s, const struct foo *fp\))Tj T* ({)Tj 2.4 -1.189 Td (fputs\(s, stdout\);)Tj T* [(printf\(" )-600(structure)-600(at 0x%lx\\n", \(unsigned long\)fp\);)]TJ T* [(printf\(" )-600(foo.a)]TJ 0.6 Tc 9.6 0 Td (=%)Tj 0 Tc 1.8 0 Td (d\\n", fp->a\);)Tj -11.4 -1.189 Td [(printf\(" )-600(foo.b)]TJ 0.6 Tc 9.6 0 Td (=%)Tj 0 Tc 1.8 0 Td (d\\n", fp->b\);)Tj -11.4 -1.189 Td [(printf\(" )-600(foo.c)]TJ 0.6 Tc 9.6 0 Td (=%)Tj 0 Tc 1.8 0 Td (d\\n", fp->c\);)Tj -11.4 -1.189 Td [(printf\(" )-600(foo.d)]TJ 0.6 Tc 9.6 0 Td (=%)Tj 0 Tc 1.8 0 Td (d\\n", fp->d\);)Tj -13.8 -1.189 Td (})Tj 0 -2.021 TD (void *)Tj 0 -1.189 TD (thr_fn1\(void *arg\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (struct foo *fp;)Tj 0 -2.021 TD (if \(\(fp = malloc\(sizeof\(struct foo\)\)\) == NULL\))Tj 2.4 -1.189 Td (err_sys\("can\325t allocate memory"\);)Tj -2.4 -1.189 Td (fp->a = 1;)Tj 0 -1.189 TD (fp->b = 2;)Tj T* (fp->c = 3;)Tj T* (fp->d = 4;)Tj T* (printfoo\("thread:\\n", fp\);)Tj 0 -1.189 TD (return\(\(void *\)fp\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (int)Tj 0 -1.189 TD (main\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (int err;)Tj 0 -1.189 TD (pthread_t tid1;)Tj 0 -1.189 TD (struct foo *fp;)Tj 0 -2.021 TD (err = pthread_create\(&tid1, NULL, thr_fn1, NULL\);)Tj 0 -1.189 TD (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t create thread 1"\);)Tj -2.4 -1.189 Td (err = pthread_join\(tid1, \(void *\)&fp\);)Tj T* (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t join with thread 1"\);)Tj -2.4 -1.189 Td (printfoo\("parent:\\n", fp\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 1603.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 1603.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 256.2822 144.3407 Tm (Figure C.12)Tj /T1_1 1 Tf 5.917 0 Td [(Corr)18(ect use of thr)18(ead r)18(eturn value)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47609 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.6 )]TJ 32.978 0 Td [(Thr)18(ead )-250(Synchr)18(onization)]TJ /T1_1 1 Tf 12.892 0 Td [(41)37(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm [(pthread_t )-1200(j_id; )-1200(/*)-600(tells which thread handles this job */)]TJ 0 -1.189 TD (/* ... more stuff here ... */)Tj -2.4 -1.189 Td (};)Tj 0 -2.021 TD (struct queue {)Tj 2.4 -1.189 Td [(struct job)-3600(*q_head;)]TJ 0 -1.189 TD [(struct job)-3600(*q_tail;)]TJ 0 -1.189 TD (pthread_rwlock_t q_lock;)Tj -2.4 -1.189 Td (};)Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*I)Tj 0 Tc 1.8 0 Td (nitialize a queue.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (int)Tj 0 -1.189 TD (queue_init\(struct queue *qp\))Tj T* ({)Tj 2.4 -1.189 Td (int err;)Tj 0 -2.021 TD (qp->q_head = NULL;)Tj 0 -1.189 TD (qp->q_tail = NULL;)Tj T* (err = pthread_rwlock_init\(&qp->q_lock, NULL\);)Tj 0 -1.189 TD (if \(err != 0\))Tj 2.4 -1.189 Td (return\(err\);)Tj -2.4 -1.189 Td (/* ... continue initialization ... */)Tj 0 -1.189 TD (return\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*I)Tj 0 Tc 1.8 0 Td (nsert a job at the head of the queue.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (job_insert\(struct queue *qp, struct job *jp\))Tj T* ({)Tj 2.4 -1.189 Td (pthread_rwlock_wrlock\(&qp->q_lock\);)Tj T* (jp->j_next = qp->q_head;)Tj 0 -1.189 TD (jp->j_prev = NULL;)Tj 0 -1.189 TD (if \(qp->q_head != NULL\))Tj 2.4 -1.189 Td (qp->q_head->j_prev = jp;)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td [(qp->q_tail = jp;)-2400(/* list was empty */)]TJ -2.4 -1.189 Td (qp->q_head = jp;)Tj 0 -1.189 TD (pthread_rwlock_unlock\(&qp->q_lock\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*A)Tj 0 Tc 1.8 0 Td (ppend a job on the tail of the queue.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (job_append\(struct queue *qp, struct job *jp\))Tj T* ({)Tj 2.4 -1.189 Td (pthread_rwlock_wrlock\(&qp->q_lock\);)Tj T* (jp->j_next = NULL;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47610 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.5 )]TJ 34.775 0 Td [(Thr)18(ead )-250(T)92(ermination)]TJ /T1_1 1 Tf 11.058 0 Td (395)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 670.2598 Tm ({)Tj 2.4 -1.189 Td (printf\("thread 1 start\\n"\);)Tj 0 -1.189 TD (pthread_cleanup_push\(cleanup, "thread 1 first handler"\);)Tj T* (pthread_cleanup_push\(cleanup, "thread 1 second handler"\);)Tj T* (printf\("thread 1 push complete\\n"\);)Tj 0 -1.189 TD (if \(arg\))Tj 2.4 -1.189 Td (return\(\(void *\)1\);)Tj -2.4 -1.189 Td (pthread_cleanup_pop\(0\);)Tj 0 -1.189 TD (pthread_cleanup_pop\(0\);)Tj T* (return\(\(void *\)1\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (void *)Tj 0 -1.189 TD (thr_fn2\(void *arg\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("thread 2 start\\n"\);)Tj T* (pthread_cleanup_push\(cleanup, "thread 2 first handler"\);)Tj T* (pthread_cleanup_push\(cleanup, "thread 2 second handler"\);)Tj T* (printf\("thread 2 push complete\\n"\);)Tj T* (if \(arg\))Tj 2.4 -1.189 Td (pthread_exit\(\(void *\)2\);)Tj -2.4 -1.189 Td (pthread_cleanup_pop\(0\);)Tj T* (pthread_cleanup_pop\(0\);)Tj T* (pthread_exit\(\(void *\)2\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-4800(err;)]TJ T* [(pthread_t )-1200(tid1,)-600(tid2;)]TJ T* [(void )-4200(*tret;)]TJ 0 -2.14 TD (err = pthread_create\(&tid1, NULL, thr_fn1, \(void *\)1\);)Tj 0 -1.189 TD (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t create thread 1"\);)Tj -2.4 -1.189 Td (err = pthread_create\(&tid2, NULL, thr_fn2, \(void *\)1\);)Tj T* (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t create thread 2"\);)Tj -2.4 -1.189 Td (err = pthread_join\(tid1, &tret\);)Tj T* (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t join with thread 1"\);)Tj -2.4 -1.189 Td (printf\("thread 1 exit code %ld\\n", \(long\)tret\);)Tj T* (err = pthread_join\(tid2, &tret\);)Tj T* (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t join with thread 2"\);)Tj -2.4 -1.189 Td (printf\("thread 2 exit code %ld\\n", \(long\)tret\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1583.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 257.1611 142.3019 Tm [(Figure 1)37(1.5)]TJ /T1_0 1 Tf 6.25 0 Td [(Thr)18(ead cleanup handler)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47611 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (390)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 0 Tc 8.9995 0 0 8.9995 151.1909 670.2598 Tm (printf\("thread 2 exiting\\n"\);)Tj 0 -1.189 TD (pthread_exit\(\(void *\)2\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-4800(err;)]TJ T* [(pthread_t )-1200(tid1,)-600(tid2;)]TJ 0 -1.189 TD [(void )-4200(*tret;)]TJ 0 -2.14 TD (err = pthread_create\(&tid1, NULL, thr_fn1, NULL\);)Tj 0 -1.189 TD (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t create thread 1"\);)Tj -2.4 -1.189 Td (err = pthread_create\(&tid2, NULL, thr_fn2, NULL\);)Tj T* (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t create thread 2"\);)Tj -2.4 -1.189 Td (err = pthread_join\(tid1, &tret\);)Tj 0 -1.189 TD (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t join with thread 1"\);)Tj -2.4 -1.189 Td (printf\("thread 1 exit code %ld\\n", \(long\)tret\);)Tj 0 -1.189 TD (err = pthread_join\(tid2, &tret\);)Tj T* (if \(err != 0\))Tj 2.4 -1.189 Td (err_exit\(err, "can\325t join with thread 2"\);)Tj -2.4 -1.189 Td (printf\("thread 2 exit code %ld\\n", \(long\)tret\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3916.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 246.3984 375.5339 Tm [(Figure 1)37(1.3)]TJ /T1_1 1 Tf 6.25 0 Td [(Fetching the thr)18(ead exit status)]TJ 9.9988 0 0 9.9988 129.5844 351.5368 Tm [(Running the pr)18(ogram in Figur)]TJ 0.25 Tc 13.365 0 Td (e1)Tj 0 Tc 1.174 0 Td (1.3 gives us)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5821 334.8388 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (thread 1 returning)Tj T* (thread 2 exiting)Tj T* (thread 1 exit code 1)Tj T* (thread 2 exit code 2)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5842 274.0461 Tm [(As )-99(we )-99(can )-99(see, )-99(when )-99(a )-99(thr)18(ead )-99(exits )-99(by )-99(calling)]TJ /TT0 1 Tf 21.116 0 Td (pthread_exit)Tj /T1_1 1 Tf 7.549 0 Td [(or )-99(by )-99(simply )-99(r)17(eturning)]TJ -28.665 -1.2 Td [(fr)18(om )-217(the )-217(start )-217(r)18(outine, )-217(the )-217(exit )-217(status )-217(can )-217(be )-217(obtained )-217(by )-217(another )-217(thr)13(ead )-217(by )-217(calling)]TJ /TT0 1 Tf 0 -1.2 TD (pthread_join)Tj /T1_1 1 Tf (.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2501.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 147.5734 220.0394 Tm [(The )-35(typeless )-35(pointer )-35(passed )-35(to)]TJ /TT0 1 Tf 13.809 0 Td (pthread_create)Tj /T1_1 1 Tf 8.685 0 Td (and)Tj /TT0 1 Tf 1.978 0 Td (pthread_exit)Tj /T1_1 1 Tf 7.485 0 Td [(can )-35(be )-35(used)]TJ -33.756 -1.2 Td [(to )-177(pass )-177(mor)]TJ 0.4271 Tc 5.481 0 Td (et)Tj 0 Tc 1.232 0 Td [(han )-177(a )-177(single )-177(value.)-677(The )-177(pointer )-177(can )-177(be )-177(used )-177(to )-177(pass )-177(the )-177(addr)17(ess )-177(of )-177(a)]TJ -6.713 -1.2 Td [(str)8(uctur)]TJ 0.3764 Tc 3.49 0 Td (ec)Tj 0 Tc 1.299 0 Td [(ontaining )-126(mor)]TJ 0.3764 Tc 6.438 0 Td (ec)Tj 0 Tc 1.299 0 Td [(omplex )-126(information.)-626(Be )-126(car)17(eful )-126(that )-126(the )-126(memory )-126(used )-126(for)]TJ -12.527 -1.2 Td [(the )-60(str)8(uctur)18(e)-310(is)-310(s)-1(till )-60(valid )-60(when )-60(the )-60(caller )-60(has )-60(completed.)-563(If )-60(the )-60(str)7(uctur)]TJ 0.3105 Tc 32.154 0 Td (ew)Tj 0 Tc 1.624 0 Td [(as )-60(allocated)]TJ -33.778 -1.2 Td [(on )-15(the )-15(caller)-73(\325s )-15(stack, )-15(for )-15(example, )-15(the )-15(memory )-15(contents )-15(might )-15(have )-15(changed )-15(by )-15(the )-15(time)]TJ T* [(the )-11(str)8(uctur)18(e)-261(is)-261(used. )-261(If)]TJ 0.2612 Tc 10.664 0 Td (at)Tj 0 Tc 1.087 0 Td [(hr)18(ead )-11(allocates )-11(a )-11(str)7(uctur)18(e)-261(on)-261(its )-11(stack )-11(and )-11(passes )-11(a )-11(pointer )-11(to)]TJ -11.751 -1.2 Td [(this )-160(str)8(uctur)]TJ 0.4105 Tc 5.524 0 Td (et)Tj 0 Tc 1.216 0 Td (o)Tj /TT0 1 Tf 0.956 0 Td (pthread_exit)Tj /T1_1 1 Tf 0.4104 Tc (,t)Tj 0 Tc 8.186 0 Td [(hen )-160(the )-160(stack )-160(might )-160(be )-160(destr)18(oyed )-160(and )-160(its )-160(memory)]TJ -0.018 Tc -15.882 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (used for something else by the time the caller of)Tj /TT0 1 Tf 21.374 0 Td (pthread_join)Tj /T1_1 1 Tf 7.45 0 Td (tries to use it.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47612 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (979)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 140.3916 670.9597 Tm [(de\336nition of,)-500(434)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_mutexattr_init)Tj /T1_0 1 Tf 13.617 0 Td [(function, )-250(431,)-250(438,)]TJ -10.917 -1.25 Td (445)Tj -1.35 -1.25 Td [(de\336nition of,)-500(431)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_mutexattr_setpshared)Tj /T1_0 1 Tf 17.217 0 Td (function,)Tj -14.517 -1.25 Td (431)Tj -1.35 -1.25 Td [(de\336nition of,)-500(431)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_mutexattr_setrobust)Tj /T1_0 1 Tf 16.617 0 Td [(function, )-250(432)]TJ -15.267 -1.25 Td [(de\336nition of,)-500(432)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_mutexattr_settype)Tj /T1_0 1 Tf 15.417 0 Td [(function, )-250(434,)]TJ -12.717 -1.25 Td (438, 445)Tj -1.35 -1.25 Td [(de\336nition of,)-500(434)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_mutexattr_t)Tj /T1_0 1 Tf 11.817 0 Td [(data type,)-500(430)]TJ 6.482 0.09 Td (\320)Tj 0.583 -0.09 Td (431, 438,)Tj -16.182 -1.25 Td (445)Tj /TT0 1 Tf -2.7 -1.25 Td (pthread_mutex_consistent)Tj /T1_0 1 Tf 14.817 0 Td (function,)Tj -12.117 -1.25 Td (432)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (433, 571)Tj -3.517 -1.25 Td [(de\336nition of,)-500(433)]TJ /TT0 1 Tf -1.35 -1.25 Td (PTHREAD_MUTEX_DEFAULT)Tj /T1_0 1 Tf 13.017 0 Td [(constant, )-250(433)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (434)Tj /TT0 1 Tf -19.663 -1.25 Td (pthread_mutex_destroy)Tj /T1_0 1 Tf 13.017 0 Td [(function, )-250(400)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (401,)Tj -16.94 -1.25 Td (404, 407)Tj -1.35 -1.25 Td [(de\336nition of,)-500(400)]TJ /TT0 1 Tf -1.35 -1.25 Td (PTHREAD_MUTEX_ERRORCHECK)Tj /T1_0 1 Tf 14.817 0 Td (constant,)Tj -12.117 -1.25 Td (433)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (434)Tj /TT0 1 Tf -4.866 -1.25 Td (pthread_mutex_init)Tj /T1_0 1 Tf 11.217 0 Td [(function, )-250(400)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (401, 403,)Tj -15.14 -1.25 Td (405, 431, 438, 445, 941)Tj -1.35 -1.25 Td [(de\336nition of,)-500(400)]TJ /TT0 1 Tf -1.35 -1.25 Td (PTHREAD_MUTEX_INITIALIZER)Tj /T1_0 1 Tf 15.417 0 Td [(constant, )-250(400,)]TJ -12.717 -1.25 Td (403, 405, 408, 416, 431, 449, 455, 459, 813)Tj 17.583 0.09 Td (\320)Tj 0.583 -0.09 Td (814)Tj /TT0 1 Tf -20.867 -1.25 Td (pthread_mutex_lock)Tj /T1_0 1 Tf 11.217 0 Td [(function, )-250(400)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (401,)Tj -15.14 -1.25 Td (403)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (404, 406)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (408, 416, 422)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (423, 432, 438,)Tj -12.5 -1.25 Td (445, 450, 456, 459)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (460, 820)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (821, 828)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (830,)Tj -16.5 -1.25 Td (832)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (833, 941)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (942)Tj -7.683 -1.25 Td [(de\336nition of,)-500(400)]TJ /TT0 1 Tf -1.35 -1.25 Td (PTHREAD_MUTEX_NORMAL)Tj /T1_0 1 Tf 12.417 0 Td [(constant, )-250(433)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (434)Tj /TT0 1 Tf -19.063 -1.25 Td (PTHREAD_MUTEX_RECURSIVE)Tj /T1_0 1 Tf 14.217 0 Td [(constant, )-250(433)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (434,)Tj -18.163 -1.25 Td (438, 445)Tj /TT0 1 Tf -2.7 -1.25 Td (PTHREAD_MUTEX_ROBUST)Tj /T1_0 1 Tf 12.417 0 Td [(constant, )-250(432)]TJ /TT0 1 Tf -12.417 -1.25 Td (PTHREAD_MUTEX_STALLED)Tj /T1_0 1 Tf 13.017 0 Td [(constant, )-250(432)]TJ /TT0 1 Tf -13.017 -1.25 Td (pthread_mutex_t)Tj /T1_0 1 Tf 9.417 0 Td [(data type,)-500(400)]TJ 6.482 0.09 Td (\320)Tj 0.583 -0.09 Td (401, 403, 405,)Tj -13.782 -1.25 Td (408, 416, 438, 445, 449, 455, 459, 813)Tj 15.583 0.09 Td (\320)Tj 0.583 -0.09 Td (814, 940)Tj /TT0 1 Tf -18.866 -1.25 Td (pthread_mutex_timedlock)Tj /T1_0 1 Tf 14.217 0 Td [(function, )-250(407)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (409,)Tj -18.14 -1.25 Td (413)Tj -1.35 -1.25 Td [(de\336nition of,)-500(407)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_mutex_trylock)Tj /T1_0 1 Tf 13.017 0 Td [(function, )-250(400,)-250(402)]TJ -11.667 -1.25 Td [(de\336nition of,)-500(400)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_mutex_unlock)Tj /T1_0 1 Tf 12.417 0 Td [(function, )-250(400)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (401,)Tj -16.34 -1.25 Td (403)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (404, 406)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (407, 416, 422)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (423, 438)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (439,)Tj -16.666 -1.25 Td (445, 450, 456, 460, 820)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (821, 828)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (830,)Tj -14.333 -1.25 Td (832)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (833, 941)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (942)Tj -7.683 -1.25 Td [(de\336nition of,)-500(400)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_once)Tj /T1_0 1 Tf 7.617 0 Td [(function, )-250(445,)-250(448, 450, 928)]TJ -6.267 -1.25 Td [(de\336nition of,)-500(448)]TJ /TT0 1 Tf -1.35 -1.25 Td (PTHREAD_ONCE_INIT)Tj /T1_0 1 Tf 10.617 0 Td [(constant, )-250(445,)-250(448)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (449)Tj /TT0 1 Tf 6.737 65 Td (pthread_once_t)Tj /T1_0 1 Tf 8.817 0 Td [(data type,)-500(445, 449)]TJ /TT0 1 Tf -8.817 -1.25 Td (PTHREAD_PROCESS_PRIVATE)Tj /T1_0 1 Tf 14.217 0 Td [(constant, )-250(417,)-250(431,)]TJ -11.517 -1.25 Td (442)Tj /TT0 1 Tf -2.7 -1.25 Td (PTHREAD_PROCESS_SHARED)Tj /T1_0 1 Tf 13.617 0 Td [(constant, )-250(417,)-250(431,)]TJ -10.917 -1.25 Td (442, 571)Tj /TT0 1 Tf -2.7 -1.25 Td (pthread_rwlockattr_destroy)Tj /T1_0 1 Tf 16.017 0 Td [(function, )-250(439)]TJ -14.667 -1.25 Td [(de\336nition of,)-500(439)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_rwlockattr_getpshared)Tj /T1_0 1 Tf 17.817 0 Td (function,)Tj -15.117 -1.25 Td (440)Tj -1.35 -1.25 Td [(de\336nition of,)-500(440)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_rwlockattr_init)Tj /T1_0 1 Tf 14.217 0 Td [(function, )-250(439)]TJ -12.867 -1.25 Td [(de\336nition of,)-500(439)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_rwlockattr_setpshared)Tj /T1_0 1 Tf 17.817 0 Td (function,)Tj -15.117 -1.25 Td (440)Tj -1.35 -1.25 Td [(de\336nition of,)-500(440)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_rwlockattr_t)Tj /T1_0 1 Tf 12.417 0 Td [(data type,)-500(439)]TJ /TT0 1 Tf -12.417 -1.25 Td (pthread_rwlock_destroy)Tj /T1_0 1 Tf 13.617 0 Td [(function, )-250(409)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (410)Tj -18.89 -1.25 Td [(de\336nition of,)-500(409)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_rwlock_init)Tj /T1_0 1 Tf 11.817 0 Td [(function, )-250(409,)-250(41)55(1)]TJ -10.467 -1.25 Td [(de\336nition of,)-500(409)]TJ /TT0 1 Tf -1.35 -1.25 Td (PTHREAD_RWLOCK_INITIALIZER)Tj /T1_0 1 Tf 16.017 0 Td [(constant, )-250(409)]TJ /TT0 1 Tf -16.017 -1.25 Td (pthread_rwlock_rdlock)Tj /T1_0 1 Tf 13.017 0 Td [(function, )-250(410,)-250(412,)]TJ -10.317 -1.25 Td (452)Tj -1.35 -1.25 Td [(de\336nition of,)-500(410)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_rwlock_t)Tj /T1_0 1 Tf 10.017 0 Td [(data type,)-500(41)55(1)]TJ /TT0 1 Tf -10.017 -1.25 Td (pthread_rwlock_timedrdlock)Tj /T1_0 1 Tf 16.017 0 Td [(function, )-250(413,)]TJ -13.317 -1.25 Td (452)Tj -1.35 -1.25 Td [(de\336nition of,)-500(413)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_rwlock_timedwrlock)Tj /T1_0 1 Tf 16.017 0 Td [(function, )-250(413,)]TJ -13.317 -1.25 Td (452)Tj -1.35 -1.25 Td [(de\336nition of,)-500(413)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_rwlock_tryrdlock)Tj /T1_0 1 Tf 14.817 0 Td [(function, )-250(410)]TJ -13.467 -1.25 Td [(de\336nition of,)-500(410)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_rwlock_trywrlock)Tj /T1_0 1 Tf 14.817 0 Td [(function, )-250(410)]TJ -13.467 -1.25 Td [(de\336nition of,)-500(410)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_rwlock_unlock)Tj /T1_0 1 Tf 13.017 0 Td [(function, )-250(410)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (412)Tj -18.29 -1.25 Td [(de\336nition of,)-500(410)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_rwlock_wrlock)Tj /T1_0 1 Tf 13.017 0 Td [(function, )-250(410)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (412,)Tj -16.94 -1.25 Td (452)Tj -1.35 -1.25 Td [(de\336nition of,)-500(410)]TJ -1.35 -1.25 Td [(pthr)18(eads, )-250(27,)-250(229, 384, 426)]TJ /TT0 1 Tf 0 -1.25 TD (pthread_self)Tj /T1_0 1 Tf 7.617 0 Td [(function, )-250(385,)-250(387, 391, 824)]TJ -6.267 -1.25 Td [(de\336nition of,)-500(385)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_setcancelstate)Tj /T1_0 1 Tf 13.617 0 Td [(function, )-250(451)]TJ -12.267 -1.25 Td [(de\336nition of,)-500(451)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_setcanceltype)Tj /T1_0 1 Tf 13.017 0 Td [(function, )-250(453)]TJ -11.667 -1.25 Td [(de\336nition of,)-500(453)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_setspecific)Tj /T1_0 1 Tf 11.817 0 Td [(function, )-250(449)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (450)Tj -17.09 -1.25 Td [(de\336nition of,)-500(449)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_sigmask)Tj /T1_0 1 Tf 9.417 0 Td [(function, )-250(453)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (454, 477, 815)Tj -14.69 -1.25 Td [(de\336nition of,)-500(454)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_spin_destroy)Tj /T1_0 1 Tf 12.417 0 Td [(function, )-250(417)]TJ -11.067 -1.25 Td [(de\336nition of,)-500(417)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47613 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.6)]TJ 34.349 0 Td [(Thr)18(ead)]TJ 3.162 0.09 Td (-)Tj 0.333 -0.09 Td [(Speci\336c )-250(Data)]TJ /T1_1 1 Tf 7.989 0 Td (449)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 670.2598 Tm (void)Tj 0 -1.189 TD (thread_init\(void\))Tj T* ({)Tj 2.778 -1.189 Td (err = pthread_key_create\(&key, destructor\);)Tj -2.778 -1.189 Td (})Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (threadfunc\(void *arg\))Tj T* ({)Tj 2.778 -1.189 Td (pthread_once\(&init_done, thread_init\);)Tj T* (.)Tj 0 -0.476 TD (.)Tj 0 -0.476 TD (.)Tj -2.778 -1.189 Td (})Tj /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 526.009 Tm [(Once )-61(a )-61(key )-61(is )-61(cr)18(eated, )-61(we )-61(can )-61(associate )-61(thr)16(ead-speci\336c )-61(data )-61(with )-61(the )-61(key )-61(by )-61(calling)]TJ /TT0 1 Tf -1.8 -1.2 Td (pthread_setspecific)Tj /T1_0 1 Tf 0.6344 Tc (.W)Tj 0.3844 Tc 13.192 0 Td (ec)Tj 0 Tc 1.307 0 Td [(an )-134(obtain )-134(the )-134(addr)18(ess )-134(of )-134(the )-134(thr)18(ead-speci\336c )-134(data )-134(with)]TJ /TT0 1 Tf -14.5 -1.2 Td (pthread_getspecific)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5907 485.3111 Tm (#include )Tj 0 -1.783 TD (void *pthread_getspecific\(pthread_key_t)Tj /T1_2 1 Tf 24 0 Td (key)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -8.796 -1.783 Td [(Returns: thr)18(ead-speci\336c data value or)]TJ /TT0 1 Tf 16.789 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td (if no value)Tj -9.715 -1.189 Td (has been associated with the key)Tj /TT0 1 Tf -24.928 -1.783 Td (int pthread_setspecific\(pthread_key_t)Tj /T1_2 1 Tf 22.8 0 Td (key)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.133 0 Td (onst void *)Tj /T1_2 1 Tf (value)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -4.652 -1.783 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4059.25 cm 0 0 m 0 884 l 3900 884 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 392.3929 Tm [(If )-46(no )-46(thr)18(ead-speci\336c )-46(data )-46(has )-46(been )-46(associated )-46(with )-46(a )-46(key)112(,)]TJ /TT0 1 Tf 25.597 0 Td (pthread_getspecific)Tj /T1_0 1 Tf 11.696 0 Td (will)Tj -0.018 Tc -37.293 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-9(a )-9(null )-9(pointer)]TJ 0.5092 Tc 8.096 0 Td (.W)Tj 0.2592 Tc 1.667 0 Td (ec)Tj 0 Tc 1.182 0 Td [(an )-9(use )-9(this )-9(r)18(eturn )-9(value )-9(to )-9(determine )-9(whether )-9(we )-9(need )-9(to )-9(call)]TJ /TT0 1 Tf -11.802 -1.2 Td (pthread_setspecific)Tj /T1_0 1 Tf (.)Tj /TT1 1 Tf -3.6 -2.64 Td (Example)Tj /T1_0 1 Tf 3.6 -2.16 Td [(In )-169(Figur)]TJ 0.4188 Tc 3.721 0 Td (e1)Tj 0 Tc 1.398 0 Td [(2.1)55(1, )-169(we )-169(showed )-169(a )-169(hypothetical )-169(implementation )-169(of)]TJ /TT0 1 Tf 23.628 0 Td (getenv)Tj /T1_0 1 Tf 0.6687 Tc (.W)Tj 0.4187 Tc 5.427 0 Td (ec)Tj 0 Tc 1.342 0 Td [(ame )-169(up)]TJ -35.516 -1.2 Td [(with )-306(a )-306(new )-306(interface )-306(to )-306(pr)18(ovide )-306(the )-306(same )-306(functionality)]TJ 0.5561 Tc 26.28 0 Td (,b)Tj 0 Tc 1.359 0 Td [(ut )-306(in )-306(a )-306(thr)18(ead-safe )-306(way)]TJ -27.639 -1.2 Td (\(Figur)Tj 0.2561 Tc 2.716 0 Td (e1)Tj 0 Tc 1.235 0 Td [(2.12\). )-256(But)-256(what )-6(would )-6(happen )-6(if )-6(we )-6(couldn\325t )-6(modify )-6(our )-6(application )-6(pr)17(ograms)]TJ -3.951 -1.2 Td [(to )-83(use )-83(the )-83(new )-83(interface?)-582(In )-83(that )-83(case, )-83(we )-83(could )-83(use )-83(thr)18(ead-speci\336c )-83(data )-83(to )-83(maintain )-83(a)]TJ 0 -1.2 TD [(per)18(-thr)18(ead )-190(copy )-190(of )-190(the )-190(data )-190(buf)18(fer )-190(used )-190(to )-190(hold )-190(the )-190(r)18(eturn )-190(string.)-690(This )-190(is )-190(shown )-190(in)]TJ T* (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (2.13.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2532.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 243.6951 Tm (#include )Tj 0 -1.189 TD (#include )Tj T* (#include )Tj T* (#include )Tj 0 -2.14 TD (#define MAXSTRINGSZ 4096)Tj T* (static pthread_key_t key;)Tj 0 -1.189 TD (static pthread_once_t init_done = PTHREAD_ONCE_INIT;)Tj T* (pthread_mutex_t env_mutex = PTHREAD_MUTEX_INITIALIZER;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47614 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (412)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 0 Tc 8.9995 0 0 8.9995 151.1909 670.2598 Tm (jp->j_prev = qp->q_tail;)Tj 0 -1.189 TD (if \(qp->q_tail != NULL\))Tj 2.4 -1.189 Td (qp->q_tail->j_next = jp;)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td [(qp->q_head = jp;)-2400(/* list was empty */)]TJ -2.4 -1.189 Td (qp->q_tail = jp;)Tj T* (pthread_rwlock_unlock\(&qp->q_lock\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*R)Tj 0 Tc 1.8 0 Td (emove the given job from a queue.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (job_remove\(struct queue *qp, struct job *jp\))Tj T* ({)Tj 2.4 -1.189 Td (pthread_rwlock_wrlock\(&qp->q_lock\);)Tj T* (if \(jp == qp->q_head\) {)Tj 2.4 -1.189 Td (qp->q_head = jp->j_next;)Tj T* (if \(qp->q_tail == jp\))Tj 2.4 -1.189 Td (qp->q_tail = NULL;)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (jp->j_next->j_prev = jp->j_prev;)Tj 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(jp == qp->q_tail\) {)Tj 0.6 -1.189 Td (qp->q_tail = jp->j_prev;)Tj 0 -1.189 TD (jp->j_prev->j_next = jp->j_next;)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (jp->j_prev->j_next = jp->j_next;)Tj 0 -1.189 TD (jp->j_next->j_prev = jp->j_prev;)Tj -2.4 -1.189 Td (})Tj T* (pthread_rwlock_unlock\(&qp->q_lock\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*F)Tj 0 Tc 1.8 0 Td (ind a job for the given thread ID.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (struct job *)Tj 0 -1.189 TD (job_find\(struct queue *qp, pthread_t id\))Tj T* ({)Tj 2.4 -1.189 Td (struct job *jp;)Tj 0 -2.021 TD (if \(pthread_rwlock_rdlock\(&qp->q_lock\) != 0\))Tj 2.4 -1.189 Td (return\(NULL\);)Tj -2.4 -2.021 Td (for \(jp = qp->q_head; jp != NULL; jp = jp->j_next\))Tj 2.4 -1.189 Td (if \(pthread_equal\(jp->j_id, id\)\))Tj 2.4 -1.189 Td (break;)Tj -4.8 -2.021 Td (pthread_rwlock_unlock\(&qp->q_lock\);)Tj 0 -1.189 TD (return\(jp\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1572.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 253.7575 141.2321 Tm [(Figure 1)37(1.14)]TJ /T1_1 1 Tf 6.25 0 Td [(Using r)18(eader\320writer locks)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47615 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (448)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -1.902 TD (int pthread_key_delete\(pthread_key_t)Tj /T1_2 1 Tf 22.2 0 Td (key)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -0.919 -1.902 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6195.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 604.7874 Tm [(Note )-363(that )-363(calling)]TJ /TT0 1 Tf 8.709 0 Td (pthread_key_delete)Tj /T1_1 1 Tf 11.413 0 Td [(will )-363(not )-363(invoke )-363(the )-363(destr)9(uctor )-363(function)]TJ -20.122 -1.2 Td [(associated )-99(with )-99(the )-99(key)]TJ 0.5988 Tc 10.491 0 Td (.T)Tj 0.3488 Tc 1.37 0 Td (of)Tj -0.018 Tc 1.228 0 Td (re)Tj 0.3488 Tc 0.856 0 Td (ea)Tj 0 Tc 1.328 0 Td [(ny )-99(memory )-99(associated )-99(with )-99(the )-99(key\325s )-99(thr)19(ead-speci\336c)]TJ -15.273 -1.2 Td (data values, we need to take additional steps in the application.)Tj -0.092 Tc 1.8 -1.2 Td [(We )-282(n)]TJ 0 Tc 2.317 0 Td [(eed )-98(to )-98(ensur)]TJ 0.3484 Tc 5.603 0 Td (et)Tj 0 Tc 1.153 0 Td [(hat )-98(a )-98(key )-98(we )-98(allocate )-98(doesn\325t )-98(change )-98(because )-98(of )-98(a )-98(race )-98(during)]TJ -10.874 -1.2 Td [(initialization. )-764(Code)-764(like )-514(the )-514(following )-514(can )-514(r)18(esult )-514(in )-514(two )-514(thr)18(eads )-514(both )-514(calling)]TJ /TT0 1 Tf 0 -1.2 TD (pthread_key_create)Tj /T1_1 1 Tf (:)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5816 525.9567 Tm (void destructor\(void *\);)Tj 0 -2.14 TD (pthread_key_t key;)Tj 0 -1.189 TD (int init_done = 0;)Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (threadfunc\(void *arg\))Tj T* ({)Tj 2.778 -1.189 Td (if \(!init_done\) {)Tj 2.778 -1.189 Td (init_done = 1;)Tj T* (err = pthread_key_create\(&key, destructor\);)Tj -2.778 -1.189 Td (})Tj T* (.)Tj 0 -0.476 TD (.)Tj 0 -0.476 TD (.)Tj -2.778 -1.189 Td (})Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5837 362.4563 Tm [(Depending )-228(on )-228(how )-228(the )-228(system )-228(schedules )-228(thr)18(eads, )-228(some )-228(thr)18(eads )-228(might )-228(see )-228(one )-228(key)]TJ 0 -1.2 TD [(value, )-74(wher)18(eas )-74(other )-74(thr)18(eads )-74(might )-74(see )-74(a )-74(dif)17(fer)18(ent )-74(value.)-574(The )-74(way )-74(to )-74(solve )-74(this )-74(race )-74(is)]TJ -0 -1.2 Td (to use)Tj /TT0 1 Tf 2.878 0 Td (pthread_once)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5814 319.3615 Tm (#include )Tj 0 -2.14 TD (pthread_once_t)Tj /T1_2 1 Tf 9 0 Td (init\337ag)Tj /TT0 1 Tf 0.6 Tc 3.534 0 Td (=P)Tj 0 Tc 1.8 0 Td (THREAD_ONCE_INIT;)Tj -14.334 -2.14 Td (int pthread_once\(pthread_once_t *)Tj /T1_2 1 Tf (init\337ag)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 24.534 0 Td (oid \(*)Tj /T1_2 1 Tf (initfn)Tj /TT0 1 Tf (\)\(void\)\);)Tj /T1_1 1 Tf -3.253 -2.14 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2571.25 cm 0 0 m 0 713 l 3900 713 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 241.1766 Tm (The)Tj /T1_2 1 Tf 2.295 0 Td (init\337ag)Tj /T1_1 1 Tf 3.555 0 Td [(must )-371(be )-371(a )-371(nonlocal )-371(variable )-371(\(i.e., )-371(global )-371(or )-371(static\) )-371(and )-371(initialized )-371(to)]TJ /TT0 1 Tf -5.85 -1.2 Td (PTHREAD_ONCE_INIT)Tj /T1_1 1 Tf (.)Tj 1.8 -1.2 Td [(If )-170(each )-170(thr)18(ead )-170(calls)]TJ /TT0 1 Tf 9.179 0 Td (pthread_once)Tj /T1_1 1 Tf 0.4198 Tc (,t)Tj 0 Tc 8.196 0 Td [(he )-170(system )-170(guarantees )-170(that )-170(the )-170(initialization)]TJ -0.018 Tc -19.175 -1.2 Td (ro)Tj 0 Tc 0.923 0 Td (utine,)Tj /T1_2 1 Tf 2.842 0 Td (initfn)Tj /T1_1 1 Tf 0.3108 Tc (,w)Tj 0 Tc 3.674 0 Td [(ill )-61(be )-61(called )-61(only )-61(once, )-61(on )-61(the )-61(\336rst )-61(call )-61(to)]TJ /TT0 1 Tf 18.567 0 Td (pthread_once)Tj /T1_1 1 Tf 0.5607 Tc (.T)Tj 0 Tc 8.624 0 Td [(he )-61(pr)18(oper)]TJ -34.629 -1.2 Td [(way to cr)18(eate a key without a race is as follows:)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.5734 174.3488 Tm (void destructor\(void *\);)Tj 0 -2.14 TD (pthread_key_t key;)Tj 0 -1.189 TD (pthread_once_t init_done = PTHREAD_ONCE_INIT;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47616 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (416)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 0 Tc 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include )Tj 0 -2.021 TD (struct msg {)Tj 2.4 -1.189 Td (struct msg *m_next;)Tj 0 -1.189 TD (/* ... more stuff here ... */)Tj -2.4 -1.189 Td (};)Tj 0 -2.021 TD (struct msg *workq;)Tj T* (pthread_cond_t qready = PTHREAD_COND_INITIALIZER;)Tj T* (pthread_mutex_t qlock = PTHREAD_MUTEX_INITIALIZER;)Tj T* (void)Tj 0 -1.189 TD (process_msg\(void\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (struct msg *mp;)Tj 0 -2.021 TD (for \(;;\) {)Tj 2.4 -1.189 Td (pthread_mutex_lock\(&qlock\);)Tj 0 -1.189 TD (while \(workq == NULL\))Tj 2.4 -1.189 Td (pthread_cond_wait\(&qready, &qlock\);)Tj -2.4 -1.189 Td (mp = workq;)Tj T* (workq = mp->m_next;)Tj T* (pthread_mutex_unlock\(&qlock\);)Tj T* (/* now process the message mp */)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (void)Tj 0 -1.189 TD (enqueue_msg\(struct msg *mp\))Tj T* ({)Tj 2.4 -1.189 Td (pthread_mutex_lock\(&qlock\);)Tj T* (mp->m_next = workq;)Tj T* (workq = mp;)Tj T* (pthread_mutex_unlock\(&qlock\);)Tj T* (pthread_cond_signal\(&qready\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2812.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 252.8737 265.2362 Tm [(Figure 1)37(1.15)]TJ /T1_1 1 Tf 6.25 0 Td (Using a condition variable)Tj 9.9988 0 0 9.9988 147.5823 237.6395 Tm [(The )-10(condition )-10(is )-10(the )-10(state )-10(of )-10(the )-10(work )-10(queue.)]TJ -0.092 Tc 20.209 0 Td [(We )-194(p)]TJ -0.018 Tc 2.248 0 Td (ro)Tj 0 Tc 0.923 0 Td [(tect )-10(the )-10(condition )-10(with )-10(a )-10(mutex)]TJ -25.18 -1.2 Td [(and )-185(evaluate )-185(the )-185(condition )-185(in )-185(a)]TJ /TT0 1 Tf 15.025 0 Td (while)Tj /T1_1 1 Tf 3.435 0 Td [(loop. )-435(When)-435(we )-185(put )-185(a )-185(message )-185(on )-185(the )-185(work)]TJ -18.46 -1.2 Td [(queue, )-9(we )-9(need )-9(to )-9(hold )-9(the )-9(mutex, )-9(but )-9(we )-9(don\325t )-9(need )-9(to )-9(hold )-9(the )-9(mutex )-9(when )-9(we )-9(signal)]TJ 0 -1.2 TD [(the )-33(waiting )-33(thr)17(eads. )-283(As)-284(long )-33(as )-33(it )-33(is )-33(okay )-33(for )-33(a )-33(thr)18(ead )-33(to )-33(pull )-33(the )-33(message )-33(of)]TJ 0.2832 Tc 33.99 0 Td (ft)Tj 0 Tc 0.942 0 Td [(he )-33(queue)]TJ -34.932 -1.2 Td [(befor)18(e)-291(we)-291(c)-1(all)]TJ /TT0 1 Tf 6.48 0 Td (cond_signal)Tj /T1_1 1 Tf [(,)-291(we)-291(c)-1(an )-41(do )-41(this )-41(after )-41(r)18(eleasing )-41(the )-41(mutex.)-544(Since )-41(we )-41(check)]TJ -6.48 -1.2 Td [(the )-101(condition )-101(in )-101(a)]TJ /TT0 1 Tf 8.383 0 Td (while)Tj /T1_1 1 Tf 3.351 0 Td [(loop, )-101(this )-101(doesn\325t )-101(pr)18(esent )-101(a )-101(pr)18(oblem; )-101(a )-101(thr)18(ead )-101(will )-101(wake )-101(up,)]TJ -11.734 -1.2 Td [(\336nd )-137(that )-137(the )-137(queue )-137(is )-137(still )-137(empty)]TJ 0.3867 Tc 15.035 0 Td (,a)Tj 0 Tc 1.137 0 Td [(nd )-137(go )-137(back )-137(to )-137(waiting )-137(again.)-637(If )-137(the )-137(code )-137(couldn\325t)]TJ -16.172 -1.2 Td [(tolerate this race, we would need to hold the mutex when we signal the t\ hr)18(eads.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1536.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47617 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (406)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 0 Tc 8.9995 0 0 8.9995 194.3883 670.2598 Tm (return\(NULL\);)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (idx = HASH\(id\);)Tj T* (pthread_mutex_lock\(&hashlock\);)Tj T* (fp->f_next = fh[idx];)Tj 0 -1.189 TD (fh[idx] = fp;)Tj 0 -1.189 TD (pthread_mutex_lock\(&fp->f_lock\);)Tj T* (pthread_mutex_unlock\(&hashlock\);)Tj T* (/* ... continue initialization ... */)Tj T* (pthread_mutex_unlock\(&fp->f_lock\);)Tj -2.4 -1.189 Td (})Tj T* (return\(fp\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (void)Tj 0 -1.189 TD (foo_hold\(struct foo *fp\) /* add a reference to the object */)Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (pthread_mutex_lock\(&hashlock\);)Tj T* (fp->f_count++;)Tj T* (pthread_mutex_unlock\(&hashlock\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (struct foo *)Tj 0 -1.189 TD (foo_find\(int id\) /* find an existing object */)Tj T* ({)Tj 2.4 -1.189 Td [(struct foo)-1200(*fp;)]TJ 0 -2.021 TD (pthread_mutex_lock\(&hashlock\);)Tj 0 -1.189 TD (for \(fp = fh[HASH\(id\)]; fp != NULL; fp = fp->f_next\) {)Tj 2.4 -1.189 Td (if \(fp->f_id == id\) {)Tj 2.4 -1.189 Td (fp->f_count++;)Tj T* (break;)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj T* (pthread_mutex_unlock\(&hashlock\);)Tj T* (return\(fp\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (void)Tj 0 -1.189 TD (foo_rele\(struct foo *fp\) /* release a reference to the object */)Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(struct foo)-1200(*tfp;)]TJ 0 -1.189 TD [(int )-4800(idx;)]TJ 0 -2.021 TD (pthread_mutex_lock\(&hashlock\);)Tj 0 -1.189 TD (if \(--fp->f_count == 0\) { /* last reference, remove from list */)Tj 2.4 -1.189 Td (idx = HASH\(fp->f_id\);)Tj T* (tfp = fh[idx];)Tj T* (if \(tfp == fp\) {)Tj 2.4 -1.189 Td (fh[idx] = fp->f_next;)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (while \(tfp->f_next != fp\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47618 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (404)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 0 Tc 8.9995 0 0 8.9995 151.1909 670.2598 Tm [(struct foo)-1200(*fp;)]TJ 0 -1.783 TD (pthread_mutex_lock\(&hashlock\);)Tj 0 -1.189 TD (for \(fp = fh[HASH\(id\)]; fp != NULL; fp = fp->f_next\) {)Tj 2.4 -1.189 Td (if \(fp->f_id == id\) {)Tj 2.4 -1.189 Td (foo_hold\(fp\);)Tj T* (break;)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj T* (pthread_mutex_unlock\(&hashlock\);)Tj 0 -1.189 TD (return\(fp\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (void)Tj 0 -1.189 TD (foo_rele\(struct foo *fp\) /* release a reference to the object */)Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(struct foo)-1200(*tfp;)]TJ 0 -1.189 TD [(int )-4800(idx;)]TJ 0 -1.783 TD (pthread_mutex_lock\(&fp->f_lock\);)Tj 0 -1.189 TD (if \(fp->f_count == 1\) { /* last reference */)Tj 2.4 -1.189 Td (pthread_mutex_unlock\(&fp->f_lock\);)Tj 0 -1.189 TD (pthread_mutex_lock\(&hashlock\);)Tj T* (pthread_mutex_lock\(&fp->f_lock\);)Tj T* (/* need to recheck the condition */)Tj T* (if \(fp->f_count != 1\) {)Tj 2.4 -1.189 Td (fp->f_count--;)Tj T* (pthread_mutex_unlock\(&fp->f_lock\);)Tj T* (pthread_mutex_unlock\(&hashlock\);)Tj 0 -1.189 TD (return;)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (/* remove from list */)Tj T* (idx = HASH\(fp->f_id\);)Tj T* (tfp = fh[idx];)Tj T* (if \(tfp == fp\) {)Tj 2.4 -1.189 Td (fh[idx] = fp->f_next;)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (while \(tfp->f_next != fp\))Tj 2.4 -1.189 Td (tfp = tfp->f_next;)Tj -2.4 -1.189 Td (tfp->f_next = fp->f_next;)Tj -2.4 -1.189 Td (})Tj T* (pthread_mutex_unlock\(&hashlock\);)Tj T* (pthread_mutex_unlock\(&fp->f_lock\);)Tj T* (pthread_mutex_destroy\(&fp->f_lock\);)Tj T* (free\(fp\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (fp->f_count--;)Tj 0 -1.189 TD (pthread_mutex_unlock\(&fp->f_lock\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1572.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 265.3802 141.2321 Tm [(Figure 1)37(1.1)37(1)]TJ /T1_1 1 Tf 6.25 0 Td (Using two mutexes)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47619 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.6 )]TJ 32.941 0 Td [(Thr)18(ead )-250(Synchr)18(onization)]TJ /T1_1 1 Tf 12.892 0 Td (403)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (#define NHASH 29)Tj 0 -1.189 TD (#define HASH\(id\) \(\(\(unsigned long\)id\)%NHASH\))Tj 0 -1.783 TD (struct foo *fh[NHASH];)Tj 0 -1.783 TD (pthread_mutex_t hashlock = PTHREAD_MUTEX_INITIALIZER;)Tj 0 -1.783 TD (struct foo {)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td (f_count;)Tj -9.6 -1.189 Td (pthread_mutex_t f_lock;)Tj 0 -1.189 TD (int )Tj 9.6 0 Td (f_id;)Tj -9.6 -1.189 Td [(struct foo)-3000(*f_next; /* protected by hashlock */)]TJ T* (/* ... more stuff here ... */)Tj -2.4 -1.189 Td (};)Tj 0 -1.783 TD (struct foo *)Tj 0 -1.189 TD (foo_alloc\(int id\) /* allocate the object */)Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(struct foo)-1200(*fp;)]TJ 0 -1.189 TD [(int )-4800(idx;)]TJ 0 -1.783 TD (if \(\(fp = malloc\(sizeof\(struct foo\)\)\) != NULL\) {)Tj 2.4 -1.189 Td (fp->f_count = 1;)Tj 0 -1.189 TD (fp->f_id = id;)Tj 0 -1.189 TD (if \(pthread_mutex_init\(&fp->f_lock, NULL\) != 0\) {)Tj 2.4 -1.189 Td (free\(fp\);)Tj 0 -1.189 TD (return\(NULL\);)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (idx = HASH\(id\);)Tj 0 -1.189 TD (pthread_mutex_lock\(&hashlock\);)Tj 0 -1.189 TD (fp->f_next = fh[idx];)Tj 0 -1.189 TD (fh[idx] = fp;)Tj 0 -1.189 TD (pthread_mutex_lock\(&fp->f_lock\);)Tj 0 -1.189 TD (pthread_mutex_unlock\(&hashlock\);)Tj 0 -1.189 TD (/* ... continue initialization ... */)Tj 0 -1.189 TD (pthread_mutex_unlock\(&fp->f_lock\);)Tj -2.4 -1.189 Td (})Tj T* (return\(fp\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (void)Tj 0 -1.189 TD (foo_hold\(struct foo *fp\) /* add a reference to the object */)Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (pthread_mutex_lock\(&fp->f_lock\);)Tj 0 -1.189 TD (fp->f_count++;)Tj 0 -1.189 TD (pthread_mutex_unlock\(&fp->f_lock\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (struct foo *)Tj 0 -1.189 TD (foo_find\(int id\) /* find an existing object */)Tj 0 -1.189 TD ({)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47620 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.6 )]TJ 32.941 0 Td [(Thr)18(ead )-250(Synchr)18(onization)]TJ /T1_1 1 Tf 12.892 0 Td (401)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (struct foo {)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td (f_count;)Tj -9.6 -1.189 Td (pthread_mutex_t f_lock;)Tj 0 -1.189 TD (int )Tj 9.6 0 Td (f_id;)Tj -9.6 -1.189 Td (/* ... more stuff here ... */)Tj -2.4 -1.189 Td (};)Tj 0 -1.783 TD (struct foo *)Tj 0 -1.189 TD (foo_alloc\(int id\) /* allocate the object */)Tj T* ({)Tj 2.4 -1.189 Td (struct foo *fp;)Tj 0 -1.783 TD (if \(\(fp = malloc\(sizeof\(struct foo\)\)\) != NULL\) {)Tj 2.4 -1.189 Td (fp->f_count = 1;)Tj 0 -1.189 TD (fp->f_id = id;)Tj 0 -1.189 TD (if \(pthread_mutex_init\(&fp->f_lock, NULL\) != 0\) {)Tj 2.4 -1.189 Td (free\(fp\);)Tj 0 -1.189 TD (return\(NULL\);)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (/* ... continue initialization ... */)Tj -2.4 -1.189 Td (})Tj T* (return\(fp\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (void)Tj 0 -1.189 TD (foo_hold\(struct foo *fp\) /* add a reference to the object */)Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (pthread_mutex_lock\(&fp->f_lock\);)Tj 0 -1.189 TD (fp->f_count++;)Tj 0 -1.189 TD (pthread_mutex_unlock\(&fp->f_lock\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (void)Tj 0 -1.189 TD (foo_rele\(struct foo *fp\) /* release a reference to the object */)Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (pthread_mutex_lock\(&fp->f_lock\);)Tj T* (if \(--fp->f_count == 0\) { /* last reference */)Tj 2.4 -1.189 Td (pthread_mutex_unlock\(&fp->f_lock\);)Tj 0 -1.189 TD (pthread_mutex_destroy\(&fp->f_lock\);)Tj 0 -1.189 TD (free\(fp\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (pthread_mutex_unlock\(&fp->f_lock\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1892.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 227.3127 173.2272 Tm [(Figure 1)37(1.10)]TJ /T1_0 1 Tf 6.25 0 Td [(Using a mutex to pr)18(otect a data str)8(uctur)18(e)]TJ -0.092 Tc 9.9988 0 0 9.9988 147.5823 149.2301 Tm [(We )-484(l)]TJ 0 Tc 2.228 0 Td [(ock )-300(the )-300(mutex )-300(befor)]TJ 0.55 Tc 9.678 0 Td (ei)Tj 0 Tc 1.32 0 Td [(ncr)18(ementing )-300(the )-300(r)18(efer)18(ence )-300(count, )-300(decr)18(ementing )-300(the)]TJ -0.018 Tc -15.026 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(ence )-79(count, )-79(and )-79(checking )-79(whether )-79(the )-79(r)15(efer)18(ence )-79(count )-79(r)18(eaches )-79(zer)17(o. )-329(No)-330(locking )-79(is)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47621 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (940)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 160.2404 670.2598 Tm (int)Tj 0 -1.189 TD (clrasync\(int sockfd\))Tj T* ({)Tj 2.4 -1.189 Td (int n;)Tj 0.6 Tc 0 -2.021 TD (n=0)Tj 0 Tc 3 0 Td (;)Tj -3 -1.189 Td (if \(ioctl\(sockfd, FIOASYNC, &n\) < 0\))Tj 2.4 -1.189 Td (return\(-1\);)Tj -2.4 -1.189 Td (return\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 5724.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 5724.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 237.1165 556.3422 Tm (Figure C.23)Tj /T1_1 1 Tf 5.917 0 Td [(Enable and disable asynchr)18(onous socket I/O)]TJ /TT1 1 Tf 9.9988 0 0 9.9988 93.5887 520.3466 Tm [(Chapter )-278(17)]TJ /T1_0 1 Tf 3.6 -2.8 Td (17.1)Tj /T1_1 1 Tf 3.065 0 Td [(Regular )-163(pipes )-163(pr)18(ovide )-163(a )-163(byte )-163(str)18(eam )-163(interface.)]TJ -0.092 Tc 21.984 0 Td [(To )-347(d)]TJ 0 Tc 2.091 0 Td [(etect )-163(message )-163(boundaries,)]TJ -24.075 -1.2 Td [(we\325d )-81(have )-81(to )-81(add )-81(a )-81(header )-81(to )-81(each )-81(message )-81(to )-81(indicate )-81(the )-81(length.)-581(But )-81(this )-81(still)]TJ 0 -1.2 TD [(involves )-8(two )-8(extra )-8(copy )-8(operations: )-8(one )-8(to )-8(write )-8(to )-8(the )-8(pipe )-8(and )-8(one )-8(to )-8(r)18(ead )-8(fr)18(om)]TJ T* [(the )-134(pipe.)]TJ 0.3836 Tc 4.626 0 Td (Am)Tj 0 Tc 2.045 0 Td (or)Tj 0.3836 Tc 0.923 0 Td (ee)Tj -0.018 Tc 1.342 0 Td (f\336)Tj 0 Tc 0.92 0 Td [(cient )-134(appr)18(oach )-134(is )-134(to )-134(use )-134(the )-134(pipe )-134(only )-134(to )-134(signal )-134(the )-134(main)]TJ -9.855 -1.2 Td [(thr)18(ead )-296(that )-296(a )-296(new )-296(message )-296(is )-296(available.)]TJ -0.092 Tc 19.758 0 Td [(We )-480(c)]TJ 0 Tc 2.377 0 Td [(an )-296(use )-296(a )-296(single )-296(byte )-296(for )-296(this)]TJ -22.135 -1.2 Td [(purpose. )-466(W)55(ith )-216(this )-216(appr)18(oach, )-216(we )-216(need )-216(to )-216(move )-216(the)]TJ /TT0 1 Tf 24.709 0 Td (mymesg)Tj /T1_1 1 Tf 4.066 0 Td [(str)8(uctur)18(e)-466(to)-466(the)]TJ /TT0 1 Tf -28.775 -1.2 Td (threadinfo)Tj /T1_1 1 Tf 6.317 0 Td [(str)8(uctur)]TJ 0.3172 Tc 3.49 0 Td (ea)Tj 0 Tc 1.296 0 Td [(nd )-67(use )-67(a )-67(mutex )-67(and )-67(a )-67(condition )-67(variable )-67(to )-67(pr)16(event )-67(the)]TJ -11.103 -1.2 Td [(helper )-107(thr)18(ead )-107(fr)18(om )-107(r)18(eusing )-107(the)]TJ /TT0 1 Tf 14.324 0 Td (mymesg)Tj /T1_1 1 Tf 3.957 0 Td [(str)8(uctur)]TJ 0.3568 Tc 3.49 0 Td (eu)Tj 0 Tc 1.439 0 Td [(ntil )-107(the )-107(main )-107(thr)18(ead )-107(is )-107(done)]TJ -23.21 -1.2 Td [(with it.)-500(The solution is shown in Figur)]TJ 0.25 Tc 17.122 0 Td (eC)Tj 0 Tc 1.438 0 Td (.24.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 3892.25 cm 0 0 m 50 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 3892.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 160.2212 379.6397 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj T* (#include )Tj T* (#include )Tj 0 -2.14 TD (#define NQ)Tj 4.2 Tc 9.6 0 Td (3/)Tj 0.6 Tc 5.4 0 Td (*n)Tj 0 Tc 1.8 0 Td (umber of queues */)Tj -16.8 -1.189 Td [(#define MAXMSZ)-1200(512 )-2400(/*)-600(maximum message size */)]TJ 0 -1.189 TD [(#define KEY)-3000(0x123 )-1200(/*)-600(key for first message queue */)]TJ 0 -2.14 TD (struct mymesg {)Tj 2.4 -1.189 Td [(long )-4200(mtype;)]TJ 0 -1.189 TD [(char )-4200(mtext[MAXMSZ+1];)]TJ -2.4 -1.189 Td (};)Tj 0 -2.14 TD (struct threadinfo {)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td (qid;)Tj -9.6 -1.189 Td (int )Tj 9.6 0 Td (fd;)Tj -9.6 -1.189 Td (int )Tj 9.6 0 Td (len;)Tj -9.6 -1.189 Td (pthread_mutex_t mutex;)Tj 0 -1.189 TD [(pthread_cond_t )-600(ready;)]TJ T* [(struct mymesg)-1800(m;)]TJ -2.4 -1.189 Td (};)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47622 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.9)]TJ 35.154 0 Td [(Thr)18(eads )-250(and)]TJ /TT0 1 Tf 6.279 0 Td (fork)Tj /T1_1 1 Tf 4.4 0 Td (459)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(3. )-633(A)-250(child pr)18(ocess is cr)18(eated.)]TJ 0 -1.6 TD [(4. )-633(The)]TJ /T1_2 1 Tf 3.595 0 Td (child)Tj /T1_0 1 Tf 2.251 0 Td [(fork )-38(handler )-38(fr)18(om )-38(module )-38(B )-38(is )-38(called )-38(to )-38(r)18(elease )-38(all )-38(of )-38(module )-38(B\325s )-38(locks)]TJ -4.213 -1.2 Td [(in the child pr)18(ocess.)]TJ -1.633 -1.6 Td [(5. )-633(The)]TJ /T1_2 1 Tf 3.578 0 Td (child)Tj /T1_0 1 Tf 2.234 0 Td [(fork )-20(handler )-20(fr)18(om )-20(module )-20(A )-20(is )-20(called )-20(to )-20(r)14(elease )-20(all )-20(of )-20(module )-20(A)74(\325s )-20(locks)]TJ -4.178 -1.2 Td [(in the child pr)18(ocess.)]TJ -1.633 -1.6 Td [(6. )-633(The)]TJ /TT0 1 Tf 3.557 0 Td (fork)Tj /T1_0 1 Tf 2.65 0 Td [(function r)18(eturns to the child.)]TJ -6.207 -1.6 Td [(7. )-633(The)]TJ /T1_2 1 Tf 3.732 0 Td [(par)18(ent)]TJ /T1_0 1 Tf 3.018 0 Td [(fork )-175(handler )-175(fr)18(om )-175(module )-175(B )-175(is )-175(called )-175(to )-175(r)18(elease )-175(all )-175(of )-175(module )-175(B\325s)]TJ -5.117 -1.2 Td [(locks in the par)18(ent pr)18(ocess.)]TJ -1.633 -1.6 Td [(8. )-633(The)]TJ /T1_2 1 Tf 3.713 0 Td [(par)18(ent)]TJ /T1_0 1 Tf 2.999 0 Td [(fork )-156(handler )-156(fr)18(om )-156(module )-156(A )-156(is )-156(called )-156(to )-156(r)18(elease )-156(all )-156(of )-156(module )-156(A)70(\325s)]TJ -5.08 -1.2 Td [(locks in the par)18(ent pr)18(ocess.)]TJ -1.633 -1.6 Td [(9. )-633(The)]TJ /TT0 1 Tf 3.557 0 Td (fork)Tj /T1_0 1 Tf 2.65 0 Td [(function r)18(eturns to the par)18(ent.)]TJ -6.207 -1.8 Td [(If )-170(the )-170(fork )-170(handlers )-170(serve )-170(to )-170(clean )-170(up )-170(the )-170(lock )-170(state, )-170(what )-170(cleans )-170(up )-170(the )-170(state )-170(of)]TJ -1.8 -1.2 Td [(condition )-6(variables?)-506(On )-6(some )-6(implementations, )-6(condition )-6(variables )-6(might )-6(not )-6(need )-6(any)]TJ 0 -1.2 TD [(cleaning )-592(up.)-1093(However)74(,)-842(an)-842(i)-1(mplementation )-592(that )-592(uses )-592(a )-592(lock )-592(as )-592(part )-592(of )-592(the)]TJ 0 -1.2 Td [(implementation )-47(of )-47(condition )-47(variables )-47(will )-47(r)19(equir)]TJ 0.2968 Tc 22.034 0 Td (ec)Tj 0 Tc 1.22 0 Td [(leaning )-47(up.)-547(The )-47(pr)18(oblem )-47(is )-47(that )-47(no)]TJ -23.254 -1.2 Td [(interface )-52(exists )-52(to )-52(allow )-52(us )-52(to )-52(do )-52(this.)-550(If )-52(the )-52(lock )-52(is )-52(embedded )-52(in )-52(the )-52(condition )-52(variable)]TJ T* [(data )-29(str)8(uctur)18(e, )-29(then )-29(we )-29(can\325t )-29(use )-29(condition )-29(variables )-29(after )-29(calling)]TJ /TT0 1 Tf 29.072 0 Td (fork)Tj /T1_0 1 Tf 0.2793 Tc (,b)Tj 0 Tc 3.482 0 Td [(ecause )-29(ther)]TJ 0.2793 Tc 4.972 0 Td (ei)Tj 0 Tc 1.049 0 Td (s)Tj -38.576 -1.2 Td [(no )-95(portable )-95(way )-95(to )-95(clean )-95(up )-95(its )-95(state.)-594(On )-95(the )-95(other )-95(hand, )-95(if )-95(an )-95(implementation )-95(uses )-95(a)]TJ T* [(global )-287(lock )-287(to )-287(pr)19(otect )-287(all )-287(condition )-287(variable )-287(data )-287(str)10(uctur)18(es )-287(in )-287(a )-287(pr)18(ocess, )-287(then )-287(the)]TJ 0 -1.2 Td [(implementation )-162(itself )-162(can )-162(clean )-162(up )-162(the )-162(lock )-162(in )-162(the)]TJ /TT0 1 Tf 23.426 0 Td (fork)Tj /T1_0 1 Tf 2.813 0 Td [(library )-162(r)18(outine. )-412(Application)]TJ -26.239 -1.2 Td [(pr)18(ograms shouldn\325t r)18(ely on implementation details like this, however)74(.)]TJ /TT1 1 Tf -3.6 -2.88 Td (Example)Tj /T1_0 1 Tf 3.6 -1.92 Td [(The )-27(pr)18(ogram )-27(in )-27(Figur)]TJ 0.277 Tc 9.619 0 Td (e1)Tj 0 Tc 1.256 0 Td [(2.17 )-27(illustrates )-27(the )-27(use )-27(of)]TJ /TT0 1 Tf 11.257 0 Td (pthread_atfork)Tj /T1_0 1 Tf 8.677 0 Td [(and )-27(fork )-27(handlers.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3438.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 334.2589 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD (pthread_mutex_t lock1 = PTHREAD_MUTEX_INITIALIZER;)Tj 0 -1.189 TD (pthread_mutex_t lock2 = PTHREAD_MUTEX_INITIALIZER;)Tj 0 -1.902 TD (void)Tj 0 -1.189 TD (prepare\(void\))Tj T* ({)Tj 2.4 -1.189 Td (int err;)Tj 0 -1.902 TD (printf\("preparing locks...\\n"\);)Tj 0 -1.189 TD (if \(\(err = pthread_mutex_lock\(&lock1\)\) != 0\))Tj 2.4 -1.189 Td (err_cont\(err, "can\325t lock lock1 in prepare handler"\);)Tj -2.4 -1.189 Td (if \(\(err = pthread_mutex_lock\(&lock2\)\) != 0\))Tj 2.4 -1.189 Td (err_cont\(err, "can\325t lock lock2 in prepare handler"\);)Tj -4.8 -1.189 Td (})Tj 0 -1.902 TD (void)Tj 0 -1.189 TD (parent\(void\))Tj T* ({)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47623 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.6 )]TJ 32.941 0 Td [(Thr)18(ead )-250(Synchr)18(onization)]TJ /T1_1 1 Tf 12.892 0 Td (405)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Comparing )-70(Figur)]TJ 0.3196 Tc 7.766 0 Td (e1)Tj 0 Tc 1.244 0 Td (1.1)Tj 0.3196 Tc 1.195 0 Td (1w)Tj 0 Tc 1.654 0 Td [(ith )-70(Figur)]TJ 0.3197 Tc 3.902 0 Td (e1)Tj 0 Tc 1.244 0 Td [(1.10, )-70(we )-70(see )-70(that )-70(our )-70(allocation )-70(function )-70(now)]TJ -18.803 -1.2 Td [(locks )-74(the )-74(hash )-74(list )-74(lock, )-74(adds )-74(the )-74(new )-74(str)5(uctur)18(e)-324(to)-324(a)-324(h)-1(ash )-74(bucket, )-74(and )-74(befor)]TJ 0.3244 Tc 33.746 0 Td (eu)Tj 0 Tc 1.406 0 Td (nlocking)Tj -35.152 -1.2 Td [(the )-199(hash )-199(list )-199(lock, )-199(locks )-199(the )-199(mutex )-199(in )-199(the )-199(new )-199(str)5(uctur)18(e. )-449(Since)-450(the )-199(new )-199(str)7(uctur)]TJ 0.4494 Tc 37.357 0 Td (ei)Tj 0 Tc 1.219 0 Td (s)Tj -38.576 -1.2 Td [(placed )-46(on )-46(a )-46(global )-46(list, )-46(other )-46(thr)17(eads )-46(can )-46(\336nd )-46(it, )-46(so )-46(we )-46(need )-46(to )-46(block )-46(them )-46(if )-46(they )-46(try )-46(to)]TJ 0 -1.2 TD [(access the new str)8(uctur)18(e, until we ar)]TJ 0.25 Tc 15.999 0 Td (ed)Tj 0 Tc 1.34 0 Td (one initializing it.)Tj -15.539 -1.2 Td (The)Tj /TT0 1 Tf 2.15 0 Td (foo_find)Tj /T1_0 1 Tf 5.276 0 Td [(function )-226(locks )-226(the )-226(hash )-226(list )-226(lock )-226(and )-226(sear)18(ches )-226(for )-226(the )-226(r)17(equested)]TJ -9.226 -1.2 Td [(str)8(uctur)18(e. )-424(If)-425(it )-174(is )-174(found, )-174(we )-174(incr)18(ease )-174(the )-174(r)16(efer)18(ence )-174(count )-174(and )-174(r)17(eturn )-174(a )-174(pointer )-174(to )-174(the)]TJ 0 -1.2 Td [(str)8(uctur)18(e. )-550(Note)-550(that )-300(we )-300(honor )-300(the )-300(lock )-300(or)19(dering )-300(by )-300(locking )-300(the )-300(hash )-300(list )-300(lock )-300(in)]TJ /TT0 1 Tf -0 -1.2 Td (foo_find)Tj /T1_0 1 Tf 5.05 0 Td [(befor)18(e)]TJ /TT0 1 Tf 3.017 0 Td (foo_hold)Tj /T1_0 1 Tf 5.05 0 Td (locks the)Tj /TT0 1 Tf 4.148 0 Td (foo)Tj /T1_0 1 Tf 2.05 0 Td [(str)8(uctur)18(e\325s)]TJ /TT0 1 Tf 4.921 0 Td (f_lock)Tj /T1_0 1 Tf 3.85 0 Td (mutex.)Tj -26.286 -1.2 Td [(Now )-35(with )-35(two )-35(locks, )-35(the)]TJ /TT0 1 Tf 11.274 0 Td (foo_rele)Tj /T1_0 1 Tf 5.085 0 Td [(function )-35(is )-35(mor)]TJ 0.2852 Tc 6.798 0 Td (ec)Tj 0 Tc 1.208 0 Td [(omplicated. )-285(If)-285(this )-35(is )-35(the )-35(last)]TJ -0.018 Tc -26.166 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(ence, )-123(we )-123(need )-123(to )-123(unlock )-123(the )-123(str)8(uctur)]TJ 0.3731 Tc 17.896 0 Td (em)Tj 0 Tc 1.735 0 Td [(utex )-123(so )-123(that )-123(we )-123(can )-123(acquir)]TJ 0.3731 Tc 12.108 0 Td (et)Tj 0 Tc 1.178 0 Td [(he )-123(hash )-123(list)]TJ -33.773 -1.2 Td [(lock, )-37(since )-37(we\325ll )-37(need )-37(to )-37(r)18(emove )-37(the )-37(str)10(uctur)]TJ 0.2867 Tc 19.716 0 Td (ef)Tj -0.018 Tc 1.099 0 Td (ro)Tj 0.2867 Tc 0.923 0 Td (mt)Tj 0 Tc 1.496 0 Td [(he )-37(hash )-37(list.)-536(Then )-37(we )-37(r)19(eacquir)]TJ 0.2866 Tc 13.614 0 Td (et)Tj 0 Tc 1.092 0 Td (he)Tj -37.939 -1.2 Td [(str)8(uctur)]TJ 0.5369 Tc 3.49 0 Td (em)Tj 0 Tc 1.899 0 Td [(utex. )-537(Because)-537(we )-287(could )-287(have )-287(blocked )-287(since )-287(the )-287(last )-287(time )-287(we )-287(held )-287(the)]TJ -5.389 -1.2 Td [(str)8(uctur)]TJ 0.3409 Tc 3.49 0 Td (em)Tj 0 Tc 1.703 0 Td [(utex, )-91(we )-91(need )-91(to )-91(r)18(echeck )-91(the )-91(condition )-91(to )-91(see )-91(whether )-91(we )-91(still )-91(need )-91(to )-91(fr)19(ee)]TJ -5.193 -1.2 Td [(the )-6(str)8(uctur)18(e. )-256(If)-257(another )-6(thr)18(ead )-6(found )-6(the )-6(str)7(uctur)]TJ 0.2563 Tc 22.157 0 Td (ea)Tj 0 Tc 1.235 0 Td [(nd )-6(added )-6(a )-6(r)17(efer)18(ence )-6(to )-6(it )-6(while )-6(we)]TJ -23.392 -1.2 Td [(blocked )-94(to )-94(honor )-94(the )-94(lock )-94(or)18(dering, )-94(we )-94(simply )-94(need )-94(to )-94(decr)18(ement )-94(the )-94(r)13(efer)18(ence )-94(count,)]TJ 0 -1.2 Td [(unlock everything, and r)18(eturn.)]TJ 1.8 -1.2 Td [(This )-1(locking )-1(appr)18(oach )-1(is )-1(complex, )-1(so )-1(we )-1(need )-1(to )-1(r)15(evisit )-1(our )-1(design.)]TJ -0.092 Tc 30.114 0 Td [(We )-185(c)]TJ 0 Tc 2.082 0 Td [(an )-1(simplify)]TJ -33.996 -1.2 Td [(things )-77(considerably )-77(by )-77(using )-77(the )-77(hash )-77(list )-77(lock )-77(to )-77(pr)18(otect )-77(the )-77(str)8(uctur)]TJ 0.327 Tc 31.087 0 Td (er)Tj 0 Tc 1.183 0 Td [(efer)18(ence )-77(count,)]TJ -32.27 -1.2 Td [(too. )-373(The)-373(str)8(uctur)]TJ 0.373 Tc 7.828 0 Td (em)Tj 0 Tc 1.735 0 Td [(utex )-123(can )-123(be )-123(used )-123(to )-123(pr)18(otect )-123(everything )-123(else )-123(in )-123(the)]TJ /TT0 1 Tf 23.045 0 Td (foo)Tj /T1_0 1 Tf 2.173 0 Td [(str)8(uctur)18(e.)]TJ -34.781 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.174 0 Td [(1.12 r)18(e\337ects this change.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4158.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 406.2502 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (#define NHASH 29)Tj 0 -1.189 TD (#define HASH\(id\) \(\(\(unsigned long\)id\)%NHASH\))Tj 0 -2.021 TD (struct foo *fh[NHASH];)Tj 0 -1.189 TD (pthread_mutex_t hashlock = PTHREAD_MUTEX_INITIALIZER;)Tj 0 -2.021 TD (struct foo {)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td [(f_count;)-600(/* protected by hashlock */)]TJ -9.6 -1.189 Td (pthread_mutex_t f_lock;)Tj 0 -1.189 TD (int )Tj 9.6 0 Td (f_id;)Tj -9.6 -1.189 Td [(struct foo)-3000(*f_next; /* protected by hashlock */)]TJ T* (/* ... more stuff here ... */)Tj -2.4 -1.189 Td (};)Tj 0 -2.021 TD (struct foo *)Tj 0 -1.189 TD (foo_alloc\(int id\) /* allocate the object */)Tj T* ({)Tj 2.4 -1.189 Td [(struct foo)-1200(*fp;)]TJ T* [(int )-4800(idx;)]TJ 0 -2.021 TD (if \(\(fp = malloc\(sizeof\(struct foo\)\)\) != NULL\) {)Tj 2.4 -1.189 Td (fp->f_count = 1;)Tj 0 -1.189 TD (fp->f_id = id;)Tj T* (if \(pthread_mutex_init\(&fp->f_lock, NULL\) != 0\) {)Tj 2.4 -1.189 Td (free\(fp\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47624 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.4)]TJ 31.602 0 Td [(Synchr)18(onization )-250(Attributes)]TJ /T1_1 1 Tf 14.231 0 Td (433)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -2.14 TD (int pthread_mutex_consistent\(pthread_mutex_t *)Tj /T1_2 1 Tf 28.2 0 Td (mutex)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -6.919 -2.14 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6153.25 cm 0 0 m 0 520 l 3900 520 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 599.3081 Tm [(If )-143(a )-143(thr)18(ead )-143(unlocks )-143(a )-143(mutex )-143(without )-143(\336rst )-143(calling)]TJ /TT0 1 Tf 22.55 0 Td (pthread_mutex_consistent)Tj /T1_0 1 Tf (,)Tj -24.35 -1.2 Td [(then )-182(other )-182(thr)18(eads )-182(that )-182(ar)]TJ 0.4322 Tc 11.936 0 Td (eb)Tj 0 Tc 1.464 0 Td [(locked )-182(while )-182(trying )-182(to )-182(acquir)]TJ 0.4321 Tc 13.485 0 Td (et)Tj 0 Tc 1.237 0 Td [(he )-182(mutex )-182(will )-182(see )-182(err)18(or)]TJ -0.018 Tc -28.122 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-227(of)]TJ /TT0 1 Tf 4.162 0 Td (ENOTRECOVERABLE)Tj /T1_0 1 Tf 0.7266 Tc (.I)Tj 0.4766 Tc 10.314 0 Td (ft)Tj 0 Tc 1.136 0 Td [(his )-227(happens, )-227(the )-227(mutex )-227(is )-227(no )-227(longer )-227(usable.)-725(By)]TJ -16.467 -1.2 Td (calling)Tj /TT0 1 Tf 3.583 0 Td (pthread_mutex_consistent)Tj /T1_0 1 Tf 15.028 0 Td [(befor)18(ehand, )-378(a )-378(thr)17(ead )-378(allows )-378(the )-378(mutex )-378(to)]TJ -18.612 -1.2 Td [(behave normally)111(,)-250(so)-250(it)-250(can continue to be used.)]TJ 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 1.992 0 Td (type)Tj /T1_0 1 Tf 2.04 0 Td [(mutex )-68(attribute )-68(contr)17(ols )-68(the )-68(locking )-68(characteristics )-68(of )-68(the )-68(mutex.)-571(POSIX.1)]TJ -5.833 -1.2 Td (de\336nes four types:)Tj /TT0 1 Tf 1.8 -1.84 Td (PTHREAD_MUTEX_NORMAL)Tj /T1_0 1 Tf 0.7068 Tc 15 0 Td (As)Tj 0 Tc 1.909 0 Td (tandar)Tj 0.7067 Tc 2.896 0 Td (dm)Tj 0 Tc 2.201 0 Td [(utex )-457(type )-457(that )-457(doesn\325t )-457(do )-457(any)]TJ -7.005 -1.2 Td [(special err)18(or checking or deadlock detection.)]TJ /TT0 1 Tf -15 -1.84 Td (PTHREAD_MUTEX_ERRORCHECK)Tj /T1_0 1 Tf 0.25 Tc 15 0 Td (Am)Tj 0 Tc 1.911 0 Td [(utex type that pr)18(ovides err)18(or checking.)]TJ /TT0 1 Tf -16.911 -1.84 Td (PTHREAD_MUTEX_RECURSIVE)Tj /T1_0 1 Tf 0.3084 Tc 15 0 Td (Am)Tj 0 Tc 1.969 0 Td [(utex )-58(type )-58(that )-58(allows )-58(the )-58(same )-58(thr)16(ead )-58(to )-58(lock)]TJ -1.969 -1.2 Td [(it )-294(multiple )-294(times )-294(without )-294(\336rst )-294(unlocking )-294(it.)-797(A)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(cursive )-111(mutex )-111(maintains )-111(a )-111(lock )-111(count )-111(and )-111(isn\325t)]TJ -0.018 Tc -0.856 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(leased )-122(until )-122(it )-122(is )-122(unlocked )-122(the )-122(same )-122(number )-122(of)]TJ -0.856 -1.2 Td [(times )-177(it )-177(is )-177(locked.)-677(Thus, )-177(if )-177(you )-177(lock )-177(a )-177(r)18(ecursive)]TJ T* [(mutex )-503(twice )-503(and )-503(then )-503(unlock )-503(it, )-503(the )-503(mutex)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(mains )-48(locked )-48(until )-48(it )-48(is )-48(unlocked )-48(a )-48(second )-48(time.)]TJ /TT0 1 Tf -15.856 -1.84 Td (PTHREAD_MUTEX_DEFAULT)Tj /T1_0 1 Tf 0.565 Tc 15 0 Td (Am)Tj 0 Tc 2.226 0 Td [(utex )-315(type )-315(pr)18(oviding )-315(default )-315(characteristics)]TJ -2.226 -1.2 Td [(and )-56(behavior)]TJ 0.5561 Tc 5.836 0 Td (.I)Tj 0 Tc 1.143 0 Td [(mplementations )-56(ar)]TJ 0.3061 Tc 8.376 0 Td (ef)Tj -0.018 Tc 1.118 0 Td (re)Tj 0 Tc 0.856 0 Td [(e)-306(to)-306(map )-56(it)]TJ -17.329 -1.2 Td [(to )-242(one )-242(of )-242(the )-242(other )-242(mutex )-242(types.)-744(For )-242(example,)]TJ T* [(Linux )-168(3.2.0 )-168(maps )-168(this )-168(type )-168(to )-168(the )-168(normal )-168(mutex)]TJ T* [(type, )-184(wher)18(eas )-184(Fr)18(eeBSD )-184(8.0 )-184(maps )-184(it )-184(to )-184(the )-184(err)19(or)18(-)]TJ T* (checking type.)Tj -15 -2.4 Td [(The )-131(behavior )-131(of )-131(the )-131(four )-131(types )-131(is )-131(summarized )-131(in )-131(Figur)]TJ 0.3808 Tc 25.081 0 Td (e1)Tj 0 Tc 1.36 0 Td [(2.5. )-381(The)]TJ -0.037 Tc 4.186 0 Td (\324\324)Tj 0 Tc 0.519 0 Td [(Unlock )-131(when)]TJ -32.946 -1.2 Td [(not )-250(owned\325)]TJ 0.5 Tc 5.247 0 Td (\325c)Tj 0 Tc 1.222 0 Td [(olumn )-250(r)18(efers )-250(to )-250(one )-250(thr)18(ead )-250(unlocking )-250(a )-250(mutex )-250(that )-250(was )-250(locked )-250(by )-250(a)]TJ -6.469 -1.2 Td [(dif)18(fer)18(ent )-53(thr)18(ead. )-303(The)]TJ -0.037 Tc 9.751 0 Td (\324\324)Tj 0 Tc 0.519 0 Td [(Unlock )-53(when )-53(unlocked\325)]TJ 0.3032 Tc 10.633 0 Td (\325c)Tj 0 Tc 1.025 0 Td [(olumn )-53(r)18(efers )-53(to )-53(what )-53(happens )-53(when )-53(a)]TJ -21.929 -1.2 Td [(thr)18(ead unlocks a mutex that is alr)18(eady unlocked, which usually is a coding mistake.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1224.25 2298.25 cm 0 0 m 3957 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 163.6425 221.7401 Tm (Mutex type)Tj 10.241 0 Td [(Relock without unlock?)-500(Unlock when not owned?)-500(Unlock when unlocked?)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1224.25 2178.25 cm 0 0 m 3957 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1224.25 2158.25 cm 0 0 m 3957 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 126.3697 207.7301 Tm (PTHREAD_MUTEX_NORMAL)Tj /T1_0 1 Tf 18.11 0 Td (deadlock )Tj 11.159 0 Td (unde\336ned)Tj 11.552 0 Td (unde\336ned)Tj /TT0 1 Tf -40.821 -1.25 Td (PTHREAD_MUTEX_ERRORCHECK)Tj /T1_0 1 Tf -0.018 Tc 17.315 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns err)18(or )]TJ 10.56 0 Td [(r)18(eturns err)18(or )]TJ 11.552 0 Td [(r)18(eturns err)18(or)]TJ /TT0 1 Tf -40.283 -1.25 Td (PTHREAD_MUTEX_RECURSIVE)Tj /T1_0 1 Tf 18.353 0 Td (allowed )Tj 10.378 0 Td [(r)18(eturns err)18(or )]TJ 11.552 0 Td [(r)18(eturns err)18(or)]TJ /TT0 1 Tf -40.283 -1.25 Td (PTHREAD_MUTEX_DEFAULT)Tj /T1_0 1 Tf 17.853 0 Td (unde\336ned )Tj 11.416 0 Td (unde\336ned)Tj 11.552 0 Td (unde\336ned)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1224.25 1738.25 cm 0 0 m 3957 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4262.25 1738.25 cm 0 0 m 0 560 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3312.25 1738.25 cm 0 0 m 0 560 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2436.25 1738.25 cm 0 0 m 0 560 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5181.25 1738.25 cm 0 0 m 0 560 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1224.25 1738.25 cm 0 0 m 0 560 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 264.7686 155.7333 Tm (Figure 12.5)Tj /T1_0 1 Tf 5.695 0 Td (Mutex type behavior)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47625 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (978)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (pthread_attr_setstacksize)Tj /T1_1 1 Tf 15.417 0 Td (function,)Tj -12.717 -1.25 Td (429)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (430)Tj -3.517 -1.25 Td [(de\336nition of,)-500(430)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_attr_t)Tj /T1_1 1 Tf 8.817 0 Td [(data type,)-500(427)]TJ 6.482 0.09 Td (\320)Tj 0.583 -0.09 Td (428, 430, 451)Tj /TT0 1 Tf -15.882 -1.25 Td (pthread_barrierattr_destroy)Tj /T1_1 1 Tf 16.617 0 Td [(function, )-250(441)]TJ -15.267 -1.25 Td [(de\336nition of,)-500(441)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_barrierattr_getpshared)Tj /T1_1 1 Tf 18.417 0 Td (function,)Tj -15.717 -1.25 Td (441)Tj -1.35 -1.25 Td [(de\336nition of,)-500(441)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_barrierattr_init)Tj /T1_1 1 Tf 14.817 0 Td [(function, )-250(441)]TJ -13.467 -1.25 Td [(de\336nition of,)-500(441)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_barrierattr_setpshared)Tj /T1_1 1 Tf 18.417 0 Td (function,)Tj -15.717 -1.25 Td (441)Tj -1.35 -1.25 Td [(de\336nition of,)-500(441)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_barrier_destroy)Tj /T1_1 1 Tf 14.217 0 Td [(function, )-250(418)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (419)Tj -19.49 -1.25 Td [(de\336nition of,)-500(418)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_barrier_init)Tj /T1_1 1 Tf 12.417 0 Td [(function, )-250(418)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (419, 421)Tj -17.69 -1.25 Td [(de\336nition of,)-500(418)]TJ /TT0 1 Tf -1.35 -1.25 Td (PTHREAD_BARRIER_SERIAL_THREAD)Tj /T1_1 1 Tf 17.817 0 Td (constant,)Tj -15.117 -1.25 Td (419, 422)Tj /TT0 1 Tf -2.7 -1.25 Td (pthread_barrier_t)Tj /T1_1 1 Tf 10.617 0 Td [(data type,)-500(419)]TJ /TT0 1 Tf -10.617 -1.25 Td (pthread_barrier_wait)Tj /T1_1 1 Tf 12.417 0 Td [(function, )-250(419)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (423)Tj -17.69 -1.25 Td [(de\336nition of,)-500(419)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_cancel)Tj /T1_1 1 Tf 8.817 0 Td [(function, )-250(393,)-250(451, 453, 828)]TJ -7.467 -1.25 Td [(de\336nition of,)-500(393)]TJ /TT0 1 Tf -1.35 -1.25 Td (PTHREAD_CANCEL_ASYNCHRONOUS)Tj /T1_1 1 Tf 16.617 0 Td [(constant, )-250(453)]TJ /TT0 1 Tf -16.617 -1.25 Td (PTHREAD_CANCEL_DEFERRED)Tj /T1_1 1 Tf 14.217 0 Td [(constant, )-250(453)]TJ /TT0 1 Tf -14.217 -1.25 Td (PTHREAD_CANCEL_DISABLE)Tj /T1_1 1 Tf 13.617 0 Td [(constant, )-250(451)]TJ /TT0 1 Tf -13.617 -1.25 Td (PTHREAD_CANCELED)Tj /T1_1 1 Tf 10.017 0 Td [(constant, )-250(389,)-250(393)]TJ /TT0 1 Tf -10.017 -1.25 Td (PTHREAD_CANCEL_ENABLE)Tj /T1_1 1 Tf 13.017 0 Td [(constant, )-250(451)]TJ /TT0 1 Tf -13.017 -1.25 Td (pthread_cleanup_pop)Tj /T1_1 1 Tf 11.817 0 Td [(function, )-250(394)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (396, 827,)Tj -15.74 -1.25 Td (829)Tj -1.35 -1.25 Td [(de\336nition of,)-500(394)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_cleanup_push)Tj /T1_1 1 Tf 12.417 0 Td [(function, )-250(394)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (396, 824)Tj -17.69 -1.25 Td [(de\336nition of,)-500(394)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_condattr_destroy)Tj /T1_1 1 Tf 14.817 0 Td [(function, )-250(440)]TJ -13.467 -1.25 Td [(de\336nition of,)-500(440)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_condattr_getclock)Tj /T1_1 1 Tf 15.417 0 Td [(function, )-250(441)]TJ -14.067 -1.25 Td [(de\336nition of,)-500(441)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_condattr_getpshared)Tj /T1_1 1 Tf 16.617 0 Td [(function, )-250(440)]TJ -15.267 -1.25 Td [(de\336nition of,)-500(440)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_condattr_init)Tj /T1_1 1 Tf 13.017 0 Td [(function, )-250(440)]TJ -11.667 -1.25 Td [(de\336nition of,)-500(440)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_condattr_setclock)Tj /T1_1 1 Tf 15.417 0 Td [(function, )-250(441)]TJ -14.067 -1.25 Td [(de\336nition of,)-500(441)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_condattr_setpshared)Tj /T1_1 1 Tf 16.617 0 Td [(function, )-250(440)]TJ -15.267 -1.25 Td [(de\336nition of,)-500(440)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_condattr_t)Tj /T1_1 1 Tf 11.217 0 Td [(data type,)-500(441)]TJ /TT0 1 Tf -11.217 -1.25 Td (pthread_cond_broadcast)Tj /T1_1 1 Tf 13.617 0 Td [(function, )-250(415,)]TJ -10.917 -1.25 Td (422)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (423, 927)Tj -3.517 -1.25 Td [(de\336nition of,)-500(415)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_cond_destroy)Tj /T1_1 1 Tf 12.417 0 Td [(function, )-250(414,)-250(462)]TJ -11.067 -1.25 Td [(de\336nition of,)-500(414)]TJ /TT0 1 Tf 24.65 65 Td (pthread_cond_init)Tj /T1_1 1 Tf 10.617 0 Td [(function, )-250(414,)-250(462, 941)]TJ -9.267 -1.25 Td [(de\336nition of,)-500(414)]TJ /TT0 1 Tf -1.35 -1.25 Td (PTHREAD_COND_INITIALIZER)Tj /T1_1 1 Tf 14.817 0 Td [(constant, )-250(413,)]TJ -12.117 -1.25 Td (416, 455, 814)Tj /TT0 1 Tf -2.7 -1.25 Td (pthread_cond_signal)Tj /T1_1 1 Tf 11.817 0 Td [(function, )-250(415)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (416, 456,)Tj -15.74 -1.25 Td (821, 942)Tj -1.35 -1.25 Td [(de\336nition of,)-500(415)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_cond_t)Tj /T1_1 1 Tf 8.817 0 Td [(data type,)-500(413, 416, 455, 814,)]TJ -6.117 -1.25 Td (940)Tj /TT0 1 Tf -2.7 -1.25 Td (pthread_cond_timedwait)Tj /T1_1 1 Tf 13.617 0 Td [(function, )-250(414)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (415,)Tj -17.54 -1.25 Td (434, 440)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (441, 451)Tj -5.516 -1.25 Td [(de\336nition of,)-500(414)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_cond_wait)Tj /T1_1 1 Tf 10.617 0 Td [(function, )-250(414)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (416, 434,)Tj -14.54 -1.25 Td (451, 456, 832, 927, 941)Tj -1.35 -1.25 Td [(de\336nition of,)-500(414)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_create)Tj /T1_1 1 Tf 8.817 0 Td [(function, )-250(385)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (388, 390)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (392,)Tj -16.907 -1.25 Td (395, 397, 421, 427)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (428, 456, 460, 477, 632, 817,)Tj -8.166 -1.25 Td (926, 941)Tj -1.35 -1.25 Td [(de\336nition of,)-500(385)]TJ /TT0 1 Tf -1.35 -1.25 Td (PTHREAD_CREATE_DETACHED)Tj /T1_1 1 Tf 14.217 0 Td [(constant, )-250(428)]TJ /TT0 1 Tf -14.217 -1.25 Td (PTHREAD_CREATE_JOINABLE)Tj /T1_1 1 Tf 14.217 0 Td [(constant, )-250(428)]TJ /TT0 1 Tf -14.217 -1.25 Td (PTHREAD_DESTRUCTOR_ITERATIONS)Tj /T1_1 1 Tf 17.817 0 Td (constant,)Tj -15.117 -1.25 Td (426, 447)Tj /TT0 1 Tf -2.7 -1.25 Td (pthread_detach)Tj /T1_1 1 Tf 8.817 0 Td [(function, )-250(396)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (397, 427)Tj -14.09 -1.25 Td [(de\336nition of,)-500(397)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_equal)Tj /T1_1 1 Tf 8.217 0 Td [(function, )-250(385,)-250(412)]TJ -6.867 -1.25 Td [(de\336nition of,)-500(385)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_exit)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(198,)-250(236, 389)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (391,)Tj -15.54 -1.25 Td (393)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (396, 447, 824)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (829)Tj -9.683 -1.25 Td [(de\336nition of,)-500(389)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_getspecific)Tj /T1_1 1 Tf 11.817 0 Td [(function, )-250(449)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (450)Tj -17.09 -1.25 Td [(de\336nition of,)-500(449)]TJ /TT0 1 Tf -1.35 -1.25 Td ()Tj /T1_1 1 Tf 7.017 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj /TT0 1 Tf -11.239 -1.25 Td (pthread_join)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(389)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (391, 395)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (396, 418,)Tj -15.707 -1.25 Td (451, 926)Tj -1.35 -1.25 Td [(de\336nition of,)-500(389)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_key_create)Tj /T1_1 1 Tf 11.217 0 Td [(function, )-250(447)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (448, 450)Tj -16.49 -1.25 Td [(de\336nition of,)-500(447)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_key_delete)Tj /T1_1 1 Tf 11.217 0 Td [(function, )-250(447)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (448)Tj -16.49 -1.25 Td [(de\336nition of,)-500(448)]TJ /TT0 1 Tf -1.35 -1.25 Td (PTHREAD_KEYS_MAX)Tj /T1_1 1 Tf 10.017 0 Td [(constant, )-250(426,)-250(447)]TJ /TT0 1 Tf -10.017 -1.25 Td (pthread_key_t)Tj /T1_1 1 Tf 8.217 0 Td [(data type,)-500(449)]TJ /TT0 1 Tf -8.217 -1.25 Td (pthread_kill)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(455)]TJ -6.267 -1.25 Td [(de\336nition of,)-500(455)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_mutexattr_destroy)Tj /T1_1 1 Tf 15.417 0 Td [(function, )-250(431,)]TJ -12.717 -1.25 Td (445)Tj -1.35 -1.25 Td [(de\336nition of,)-500(431)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_mutexattr_getpshared)Tj /T1_1 1 Tf 17.217 0 Td (function,)Tj -14.517 -1.25 Td (431)Tj -1.35 -1.25 Td [(de\336nition of,)-500(431)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_mutexattr_getrobust)Tj /T1_1 1 Tf 16.617 0 Td [(function, )-250(432)]TJ -15.267 -1.25 Td [(de\336nition of,)-500(432)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_mutexattr_gettype)Tj /T1_1 1 Tf 15.417 0 Td [(function, )-250(434)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47626 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.5 )]TJ 34.775 0 Td [(Thr)18(ead )-250(T)92(ermination)]TJ /T1_1 1 Tf 11.058 0 Td (389)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 0.2892 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (As)Tj 0 Tc 1.491 0 Td [(ingle )-39(thr)18(ead )-39(can )-39(exit )-39(in )-39(thr)18(ee )-39(ways, )-39(ther)18(eby )-39(stopping )-39(its )-39(\337ow )-39(of )-39(contr)16(ol, )-39(without)]TJ -3.291 -1.2 Td (terminating the entir)Tj 0.25 Tc 9.153 0 Td (ep)Tj -0.018 Tc 1.33 0 Td (ro)Tj 0 Tc 0.923 0 Td (cess.)Tj -9.606 -1.56 Td [(1. )-633(The)-424(thr)18(ead )-174(can )-174(simply )-174(r)18(eturn )-174(fr)18(om )-174(the )-174(start )-174(r)21(outine. )-424(The)]TJ -0.018 Tc 28.627 0 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-174(value )-174(is )-174(the)]TJ -27.85 -1.2 Td [(thr)18(ead\325s exit code.)]TJ -1.633 -1.6 Td [(2. )-633(The)-250(thr)18(ead can be canceled by another thr)18(ead in the same pr)18(ocess.)]TJ 0 -1.6 TD [(3. )-633(The)-250(thr)18(ead can call)]TJ /TT0 1 Tf 10.234 0 Td (pthread_exit)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.591 578.2653 Tm (#include )Tj 0 -1.902 TD (void pthread_exit\(void *)Tj /T1_2 1 Tf (rval_ptr)Tj /TT0 1 Tf (\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5567.25 cm 0 0 m 0 306 l 3900 306 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 543.1148 Tm (The)Tj /T1_2 1 Tf 1.955 0 Td (rval_ptr)Tj /T1_0 1 Tf 3.614 0 Td [(ar)18(gument )-31(is )-31(a )-31(typeless )-31(pointer)]TJ 0.2811 Tc 13.371 0 Td (,s)Tj 0 Tc 0.955 0 Td [(imilar )-31(to )-31(the )-31(single )-31(ar)18(gument )-31(passed )-31(to )-31(the)]TJ -19.895 -1.2 Td [(start )-179(r)18(outine. )-429(This)-429(pointer )-179(is )-179(available )-179(to )-179(other )-179(thr)18(eads )-179(in )-179(the )-179(pr)18(ocess )-179(by )-179(calling )-179(the)]TJ /TT0 1 Tf 0 -1.2 TD (pthread_join)Tj /T1_0 1 Tf 7.45 0 Td (function.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5822 502.4197 Tm (#include )Tj 0 -1.902 TD (int pthread_join\(pthread_t)Tj /T1_2 1 Tf 16.2 0 Td [(thr)18(ead)]TJ /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.337 0 Td (oid **)Tj /T1_2 1 Tf (rval_ptr)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 0.744 -1.902 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4637.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 450.159 Tm [(The )-161(calling )-161(thr)18(ead )-161(will )-161(block )-161(until )-161(the )-161(speci\336ed )-161(thr)18(ead )-161(calls)]TJ /TT0 1 Tf 27.953 0 Td (pthread_exit)Tj /T1_0 1 Tf 0.4113 Tc (,r)Tj 0 Tc 8.238 0 Td (eturns)Tj -36.191 -1.2 Td [(fr)18(om )-15(its )-15(start )-15(r)18(outine, )-15(or )-15(is )-15(canceled.)-515(If )-15(the )-15(thr)18(ead )-15(simply )-15(r)18(eturned )-15(fr)18(om )-15(its )-15(start )-15(r)19(outine,)]TJ /T1_2 1 Tf 0 -1.2 TD (rval_ptr)Tj /T1_0 1 Tf 3.682 0 Td [(will )-99(contain )-99(the )-99(r)18(eturn )-99(code.)-599(If )-99(the )-99(thr)19(ead )-99(was )-99(canceled, )-99(the )-99(memory )-99(location)]TJ -3.682 -1.2 Td (speci\336ed by)Tj /T1_2 1 Tf 5.543 0 Td (rval_ptr)Tj /T1_0 1 Tf 3.583 0 Td (is set to)Tj /TT0 1 Tf 3.566 0 Td (PTHREAD_CANCELED)Tj /T1_0 1 Tf (.)Tj -10.892 -1.2 Td [(By )-197(calling)]TJ /TT0 1 Tf 5.016 0 Td (pthread_join)Tj /T1_0 1 Tf [(,)-447(we)-447(automatically )-197(place )-197(the )-197(thr)18(ead )-197(with )-197(which )-197(we\325r)19(e)]TJ -6.816 -1.2 Td [(joining )-89(in )-89(the )-89(detached )-89(state )-89(\(discussed )-89(shortly\) )-89(so )-89(that )-89(its )-89(r)15(esour)18(ces )-89(can )-89(be )-89(r)17(ecover)18(ed.)]TJ -0 -1.2 Td [(If )-235(the )-235(thr)18(ead )-235(was )-235(alr)18(eady )-235(in )-235(the )-235(detached )-235(state,)]TJ /TT0 1 Tf 22.964 0 Td (pthread_join)Tj /T1_0 1 Tf 7.685 0 Td [(can )-235(fail, )-235(r)19(eturning)]TJ /TT0 1 Tf -30.649 -1.2 Td (EINVAL)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 4.6 0 Td (lthough this behavior is implementation-speci\336c.)Tj -2.8 -1.2 Td [(If )-9(we\325r)]TJ 0.2587 Tc 2.897 0 Td (en)Tj 0 Tc 1.32 0 Td [(ot )-9(inter)18(ested )-9(in )-9(a )-9(thr)18(ead\325s )-9(r)20(eturn )-9(value, )-9(we )-9(can )-9(set)]TJ /T1_2 1 Tf 22.301 0 Td (rval_ptr)Tj /T1_0 1 Tf 3.592 0 Td (to)Tj /TT0 1 Tf 1.131 0 Td (NULL)Tj /T1_0 1 Tf 0.5088 Tc (.I)Tj 0.2588 Tc 3.496 0 Td (nt)Tj 0 Tc 1.167 0 Td (his)Tj -37.703 -1.2 Td [(case, )-157(calling)]TJ /TT0 1 Tf 5.867 0 Td (pthread_join)Tj /T1_0 1 Tf 7.607 0 Td [(allows )-157(us )-157(to )-157(wait )-157(for )-157(the )-157(speci\336ed )-157(thr)15(ead, )-157(but )-157(does )-157(not)]TJ -0.018 Tc -13.474 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(trieve the thr)18(ead\325s termination status.)]TJ /TT1 1 Tf -4.456 -2.88 Td (Example)Tj /T1_0 1 Tf 3.6 -2.16 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.174 0 Td [(1.3 shows how to fetch the exit code fr)18(om a thr)18(ead that has terminated.)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2726.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9978 0 0 8.9978 129.5689 263.0759 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD (void *)Tj 0 -1.189 TD (thr_fn1\(void *arg\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("thread 1 returning\\n"\);)Tj T* (return\(\(void *\)1\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (void *)Tj 0 -1.189 TD (thr_fn2\(void *arg\))Tj T* ({)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47627 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.6 )]TJ 32.941 0 Td [(Thr)18(ead )-250(Synchr)18(onization)]TJ /T1_1 1 Tf 12.892 0 Td (415)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(obtain )-258(the )-258(absolute )-258(time )-258(for )-258(the )-258(timeout )-258(value, )-258(we )-258(can )-258(use )-258(the )-258(following )-258(function)]TJ 0 -1.2 TD [(\(assuming the maximum time blocked is expr)18(essed in minutes\):)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 634.2619 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -2.021 TD (void)Tj 0 -1.189 TD (maketimeout\(struct timespec *tsp, long minutes\))Tj T* ({)Tj 2.4 -1.189 Td (struct timeval now;)Tj 0 -2.021 TD (/* get the current time */)Tj 0 -1.189 TD (gettimeofday\(&now, NULL\);)Tj T* (tsp->tv_sec = now.tv_sec;)Tj 0 -1.189 TD (tsp->tv_nsec = now.tv_usec * 1000; /* usec to nsec */)Tj 0 -1.189 TD (/* add the offset to get timeout value */)Tj T* (tsp->tv_sec += minutes * 60;)Tj -2.4 -1.189 Td (})Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 463.2922 Tm [(If )-188(the )-188(timeout )-188(expir)19(es )-188(without )-188(the )-188(condition )-188(occurring,)]TJ /TT0 1 Tf 25.8 0 Td (pthread_cond_timedwait)Tj /T1_0 1 Tf -25.8 -1.2 Td [(will )-209(r)18(eacquir)]TJ 0.4592 Tc 5.797 0 Td (et)Tj 0 Tc 1.264 0 Td [(he )-209(mutex )-209(and )-209(r)18(eturn )-209(the )-209(err)17(or)]TJ /TT0 1 Tf 14.657 0 Td (ETIMEDOUT)Tj /T1_0 1 Tf 0.7092 Tc (.W)Tj 0 Tc 7.359 0 Td [(hen )-209(it )-209(r)18(eturns )-209(fr)18(om )-209(a)]TJ -29.078 -1.2 Td [(successful )-345(call )-345(to)]TJ /TT0 1 Tf 8.653 0 Td (pthread_cond_wait)Tj /T1_0 1 Tf 10.795 0 Td (or)Tj /TT0 1 Tf 1.536 0 Td (pthread_cond_timedwait)Tj /T1_0 1 Tf 0.5953 Tc (,a)Tj 0 Tc [(thr)18(ead)]TJ -20.984 -1.2 Td [(needs )-187(to )-187(r)18(eevaluate )-187(the )-187(condition, )-187(since )-187(another )-187(thr)18(ead )-187(might )-187(have )-187(r)8(un )-187(and )-187(alr)12(eady)]TJ 0 -1.2 TD (changed the condition.)Tj 1.8 -1.2 Td (Ther)Tj 0.3682 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.347 0 Td [(re )-154(t)]TJ 0 Tc 1.55 0 Td [(wo )-118(functions )-118(to )-118(notify )-118(thr)17(eads )-118(that )-118(a )-118(condition )-118(has )-118(been )-118(satis\336ed.)-619(The)]TJ /TT0 1 Tf -6.748 -1.2 Td (pthread_cond_signal)Tj /T1_0 1 Tf 11.971 0 Td [(function )-321(will )-321(wake )-321(up )-321(at )-321(least )-321(one )-321(thr)21(ead )-321(waiting )-321(on )-321(a)]TJ -11.971 -1.2 Td [(condition, )-72(wher)18(eas )-72(the)]TJ /TT0 1 Tf 10.498 0 Td (pthread_cond_broadcast)Tj /T1_0 1 Tf 13.522 0 Td [(function )-72(will )-72(wake )-72(up )-72(all )-72(thr)17(eads)]TJ -24.02 -1.2 Td (waiting on a condition.)Tj 7.9995 0 0 7.9995 183.5892 344.8993 Tm [(The )-101(POSIX )-101(speci\336cation )-101(allows )-101(for )-101(implementations )-101(of)]TJ /TT0 1 Tf 25.103 0 Td (pthread_cond_signal)Tj /T1_0 1 Tf 11.751 0 Td [(to )-101(wake )-101(up)]TJ -36.854 -1.25 Td (mor)Tj 0.25 Tc 1.806 0 Td (et)Tj 0 Tc 1.055 0 Td [(han one thr)18(ead, to make the implementation simpler)74(.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5913 306.2016 Tm (#include )Tj 0 -2.14 TD (int pthread_cond_signal\(pthread_cond_t *)Tj /T1_2 1 Tf (cond)Tj /TT0 1 Tf (\);)Tj -0 -2.14 Td (int pthread_cond_broadcast\(pthread_cond_t *)Tj /T1_2 1 Tf (cond)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 19.681 -2.14 Td [(Both r)18(eturn: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 2439.25 cm 0 0 m 0 713 l 3900 713 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 228.0126 Tm [(When )-215(we )-215(call)]TJ /TT0 1 Tf 6.878 0 Td (pthread_cond_signal)Tj /T1_0 1 Tf 11.865 0 Td (or)Tj /TT0 1 Tf 1.406 0 Td (pthread_cond_broadcast)Tj /T1_0 1 Tf [(,)-465(we)-465(a)]TJ -0.018 Tc 16.194 0 Td (re)Tj 0 Tc -38.144 -1.2 Td [(said )-58(to )-58(be)]TJ /T1_2 1 Tf 4.653 0 Td (signaling)Tj /T1_0 1 Tf 4.087 0 Td [(the )-58(thr)18(ead )-58(or )-58(condition.)]TJ -0.092 Tc 11.153 0 Td [(We )-242(h)]TJ 0 Tc 2.277 0 Td [(ave )-58(to )-58(be )-58(car)18(eful )-58(to )-58(signal )-58(the )-58(thr)20(eads)]TJ -22.169 -1.2 Td (only after changing the state of the condition.)Tj /TT1 1 Tf -3.6 -3.24 Td (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td (Figur)Tj 0.2734 Tc 2.383 0 Td (e1)Tj 0 Tc 1.197 0 Td [(1.15 )-23(shows )-23(an )-23(example )-23(of )-23(how )-23(to )-23(use )-23(a )-23(condition )-23(variable )-23(and )-23(a )-23(mutex )-23(together)]TJ -3.58 -1.2 Td [(to synchr)18(onize thr)18(eads.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47628 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (394)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 0.2719 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (At)Tj 0 Tc 1.376 0 Td [(hr)18(ead )-22(can )-22(arrange )-22(for )-22(functions )-22(to )-22(be )-22(called )-22(when )-22(it )-22(exits, )-22(similar )-22(to )-22(the )-22(way )-22(that)]TJ -3.176 -1.2 Td (the)Tj /TT0 1 Tf 1.662 0 Td (atexit)Tj /T1_1 1 Tf 3.875 0 Td [(function )-24(\(Section )-24(7.3\) )-24(can )-24(be )-24(used )-24(by )-24(a )-24(pr)18(ocess )-24(to )-24(arrange )-24(that )-24(functions )-24(ar)12(e)]TJ -5.536 -1.2 Td [(to )-53(be )-53(called )-53(when )-53(the )-53(pr)18(ocess )-53(exits.)-553(The )-53(functions )-53(ar)]TJ 0.3027 Tc 23.621 0 Td (ek)Tj 0 Tc 1.338 0 Td [(nown )-53(as)]TJ /T1_2 1 Tf 4.073 0 Td [(thr)18(ead )-53(cleanup )-53(handlers)]TJ /T1_1 1 Tf (.)Tj -29.032 -1.2 Td (Mor)Tj 0.5042 Tc 1.869 0 Td (et)Tj 0 Tc 1.309 0 Td [(han )-254(one )-254(cleanup )-254(handler )-254(can )-254(be )-254(established )-254(for )-254(a )-254(thr)16(ead. )-504(The)-504(handlers )-254(ar)18(e)]TJ -0.018 Tc -3.178 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(ded )-76(in )-76(a )-76(stack, )-76(which )-76(means )-76(that )-76(they )-76(ar)]TJ 0.3262 Tc 19.706 0 Td (ee)Tj 0 Tc 1.284 0 Td [(xecuted )-76(in )-76(the )-76(r)18(everse )-76(or)18(der )-76(fr)18(om )-76(that)]TJ -21.846 -1.2 Td (with which they wer)Tj 0.25 Tc 9.149 0 Td (er)Tj 0 Tc 1.106 0 Td [(egister)18(ed.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5913 589.8646 Tm (#include )Tj 0 -2.021 TD (void pthread_cleanup_push\(void \(*)Tj /T1_2 1 Tf (rtn)Tj /TT0 1 Tf (\)\(void *\), void *)Tj /T1_2 1 Tf [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj 0 -2.021 Td (void pthread_cleanup_pop\(int)Tj /T1_2 1 Tf 17.4 0 Td (execute)Tj /TT0 1 Tf (\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5490.25 cm 0 0 m 0 499 l 3900 499 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 533.056 Tm (The)Tj /TT0 1 Tf 2.23 0 Td (pthread_cleanup_push)Tj /T1_1 1 Tf 12.556 0 Td [(function )-306(schedules )-306(the )-306(cleanup )-306(function,)]TJ /T1_2 1 Tf 19.669 0 Td (rtn)Tj /T1_1 1 Tf [(,)-556(to)-556(be)]TJ -34.456 -1.2 Td [(called )-156(with )-156(the )-156(single )-156(ar)17(gument,)]TJ /T1_2 1 Tf 15.247 0 Td [(ar)18(g)]TJ /T1_1 1 Tf 0.4063 Tc (,w)Tj 0 Tc 2.805 0 Td [(hen )-156(the )-156(thr)18(ead )-156(performs )-156(one )-156(of )-156(the )-156(following)]TJ -18.052 -1.2 Td (actions:)Tj 0.883 Tc 1.8 -1.92 Td (\245M)Tj 0 Tc 2.435 0 Td (akes a call to)Tj /TT0 1 Tf 5.857 0 Td (pthread_exit)Tj /T1_1 1 Tf 0.883 Tc -8.292 -1.6 Td (\245R)Tj 0 Tc 2.157 0 Td [(esponds to a cancellation r)18(equest)]TJ 0.883 Tc -2.157 -1.6 Td (\245M)Tj 0 Tc 2.435 0 Td (akes a call to)Tj /TT0 1 Tf 5.857 0 Td (pthread_cleanup_pop)Tj /T1_1 1 Tf 11.65 0 Td [(with a nonzer)18(o)]TJ /T1_2 1 Tf 6.895 0 Td (execute)Tj /T1_1 1 Tf 3.213 0 Td [(ar)18(gument)]TJ -30.05 -1.92 Td [(If )-120(the)]TJ /T1_2 1 Tf 2.798 0 Td (execute)Tj /T1_1 1 Tf 3.333 0 Td [(ar)18(gument )-120(is )-120(set )-120(to )-120(zer)18(o, )-120(the )-120(cleanup )-120(function )-120(is )-120(not )-120(called.)-620(In )-120(either)]TJ -7.931 -1.2 Td (case,)Tj /TT0 1 Tf 2.387 0 Td (pthread_cleanup_pop)Tj /T1_1 1 Tf -0.018 Tc 11.69 0 Td (re)Tj 0 Tc 0.856 0 Td [(moves )-40(the )-40(cleanup )-40(handler )-40(established )-40(by )-40(the )-40(last )-40(call)]TJ -14.933 -1.2 Td (to)Tj /TT0 1 Tf 1.122 0 Td (pthread_cleanup_push)Tj /T1_1 1 Tf (.)Tj 0.498 Tc 0.678 -1.2 Td (Ar)Tj 0 Tc 1.653 0 Td [(estriction )-248(with )-248(these )-248(functions )-248(is )-248(that, )-248(because )-248(they )-248(can )-248(be )-248(implemented )-248(as)]TJ -3.453 -1.2 Td [(macr)18(os, )-140(they )-140(must )-140(be )-140(used )-140(in )-140(matched )-140(pairs )-140(within )-140(the )-140(same )-140(scope )-140(in )-140(a )-140(thr)24(ead. )-390(The)]TJ -0 -1.2 Td (macr)Tj 0.3125 Tc 2.204 0 Td (od)Tj 0 Tc 1.469 0 Td [(e\336nition )-62(of)]TJ /TT0 1 Tf 5.206 0 Td (pthread_cleanup_push)Tj /T1_1 1 Tf 12.313 0 Td [(can )-62(include )-62(a)]TJ /TT0 1 Tf 6.264 0 Td ({)Tj /T1_1 1 Tf 0.912 0 Td [(character)74(,)-312(in)-312(w)-1(hich )-62(case)]TJ -28.369 -1.2 Td (the matching)Tj /TT0 1 Tf 6.051 0 Td (})Tj /T1_1 1 Tf 0.85 0 Td (character is in the)Tj /TT0 1 Tf 8.04 0 Td (pthread_cleanup_pop)Tj /T1_1 1 Tf 11.65 0 Td (de\336nition.)Tj /TT1 1 Tf -30.191 -3.24 Td (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td (Figur)Tj 0.5365 Tc 2.383 0 Td (e1)Tj 0 Tc 1.461 0 Td [(1.5 )-287(shows )-287(how )-287(to )-287(use )-287(thr)18(ead )-287(cleanup )-287(handlers.)-787(Although )-287(the )-287(example )-287(is)]TJ -3.844 -1.2 Td [(somewhat )-5(contrived, )-5(it )-5(illustrates )-5(the )-5(mechanics )-5(involved.)-508(Note )-5(that )-5(although )-5(we )-5(never)]TJ 0 -1.2 TD [(intend )-191(to )-191(pass )-191(zer)18(o)-441(as)-441(an)-441(a)]TJ -0.018 Tc (rg)Tj 0 Tc 13.679 0 Td [(ument )-191(to )-191(the )-191(thr)18(ead )-191(start-up )-191(r)18(outines, )-191(we )-191(still )-191(need )-191(to)]TJ -13.679 -1.2 Td [(match )-194(calls )-194(to)]TJ /TT0 1 Tf 6.889 0 Td (pthread_cleanup_pop)Tj /T1_1 1 Tf 11.844 0 Td [(with )-194(the )-194(calls )-194(to)]TJ /TT0 1 Tf 8.018 0 Td (pthread_cleanup_push)Tj /T1_1 1 Tf (;)Tj -26.75 -1.2 Td [(otherwise, the pr)18(ogram might not compile.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2551.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 245.5748 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -2.14 TD (void)Tj 0 -1.189 TD (cleanup\(void *arg\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("cleanup: %s\\n", \(char *\)arg\);)Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (void *)Tj 0 -1.189 TD (thr_fn1\(void *arg\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47629 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1)55(1.6 )]TJ 32.941 0 Td [(Thr)18(ead )-250(Synchr)18(onization)]TJ /T1_1 1 Tf 12.892 0 Td (419)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(When )-118(we )-118(initialize )-118(a )-118(barrier)75(,)-368(we)-368(use )-118(the)]TJ /T1_2 1 Tf 18.63 0 Td (count)Tj /T1_0 1 Tf 2.664 0 Td [(ar)18(gument )-118(to )-118(specify )-118(the )-118(number )-118(of)]TJ -23.094 -1.2 Td [(thr)18(eads )-35(that )-35(must )-35(r)18(each )-35(the )-35(barrier )-35(befor)]TJ 0.2849 Tc 18.043 0 Td (ea)Tj 0 Tc 1.264 0 Td [(ll )-35(of )-35(the )-35(thr)18(eads )-35(will )-35(be )-35(allowed )-35(to )-35(continue.)]TJ -0.092 Tc -19.307 -1.2 Td [(We )-224(u)]TJ 0 Tc 2.28 0 Td [(se )-40(the)]TJ /T1_2 1 Tf 2.871 0 Td (attr)Tj /T1_0 1 Tf 1.789 0 Td [(ar)18(gument )-40(to )-40(specify )-40(the )-40(attributes )-40(of )-40(the )-40(barrier )-40(object, )-40(which )-40(we\325ll )-40(look)]TJ -6.94 -1.2 Td [(at )-178(mor)]TJ 0.4277 Tc 3.06 0 Td (ec)Tj 0 Tc 1.351 0 Td [(losely )-178(in )-178(the )-178(next )-178(chapter)]TJ 0.6778 Tc 11.714 0 Td (.F)Tj 0 Tc 1.484 0 Td [(or )-178(now)92(,)-428(we)-428(can )-178(set)]TJ /T1_2 1 Tf 9.268 0 Td (attr)Tj /T1_0 1 Tf 1.927 0 Td (to)Tj /TT0 1 Tf 1.3 0 Td (NULL)Tj /T1_0 1 Tf 2.828 0 Td [(to )-178(initialize )-178(a)]TJ -32.93 -1.2 Td [(barrier )-78(with )-78(the )-78(default )-78(attributes.)-579(If )-78(the)]TJ /TT0 1 Tf 18.649 0 Td (pthread_barrier_init)Tj /T1_0 1 Tf 12.328 0 Td [(function )-78(allocated)]TJ -30.977 -1.2 Td [(any )-13(r)18(esour)18(ces )-13(for )-13(the )-13(barrier)]TJ 0.2635 Tc 12.44 0 Td (,t)Tj 0 Tc 0.839 0 Td [(he )-13(r)18(esour)18(ces )-13(will )-13(be )-13(fr)18(eed )-13(when )-13(we )-13(deinitialize )-13(the )-13(barrier)]TJ -13.28 -1.2 Td (by calling the)Tj /TT0 1 Tf 6.201 0 Td (pthread_barrier_destroy)Tj /T1_0 1 Tf 14.05 0 Td (function.)Tj -0.092 Tc -18.451 -1.2 Td [(We )-368(u)]TJ 0 Tc 2.424 0 Td [(se )-184(the)]TJ /TT0 1 Tf 3.158 0 Td (pthread_barrier_wait)Tj /T1_0 1 Tf 12.434 0 Td [(function )-184(to )-184(indicate )-184(that )-184(a )-184(thr)18(ead )-184(is )-184(done)]TJ -19.816 -1.2 Td [(with its work and is r)18(eady to wait for all the other thr)18(eads to catch up.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5903 556.2666 Tm (#include )Tj 0 -1.783 TD (int pthread_barrier_wait\(pthread_barrier_t *)Tj /T1_2 1 Tf (barrier)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 2.44 -1.783 Td (Returns: 0 or)Tj /TT0 1 Tf 5.918 0 Td (PTHREAD_BARRIER_SERIAL_THREAD)Tj /T1_0 1 Tf 17.65 0 Td [(if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5197.25 cm 0 0 m 0 456 l 3900 456 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 506.1393 Tm [(The )-69(thr)18(ead )-69(calling)]TJ /TT0 1 Tf 8.462 0 Td (pthread_barrier_wait)Tj /T1_0 1 Tf 12.319 0 Td [(is )-69(put )-69(to )-69(sleep )-69(if )-69(the )-69(barrier )-69(count )-69(\(set )-69(in)]TJ -20.781 -1.2 Td [(the )-26(call )-26(to)]TJ /TT0 1 Tf 4.613 0 Td (pthread_barrier_init)Tj /T1_0 1 Tf [(\))-276(is)-276(not )-26(yet )-26(satis\336ed.)-526(If )-26(the )-26(thr)19(ead )-26(is )-26(the )-26(last )-26(one )-26(to)]TJ -4.613 -1.2 Td (call)Tj /TT0 1 Tf 1.906 0 Td (pthread_barrier_wait)Tj /T1_0 1 Tf 0.3796 Tc (,t)Tj 0 Tc 12.956 0 Td [(her)18(eby )-130(satisfying )-130(the )-130(barrier )-130(count, )-130(all )-130(of )-130(the )-130(thr)21(eads)]TJ -14.861 -1.2 Td (ar)Tj 0.25 Tc 0.877 0 Td (ea)Tj 0 Tc 1.229 0 Td (wakened.)Tj -0.092 Tc -0.306 -1.2 Td [(To )-248(o)]TJ 0 Tc 1.926 0 Td [(ne )-63(arbitrary )-63(thr)18(ead, )-63(it )-63(will )-63(appear )-63(as )-63(if )-63(the)]TJ /TT0 1 Tf 19.253 0 Td (pthread_barrier_wait)Tj /T1_0 1 Tf 12.313 0 Td (function)Tj -0.018 Tc -35.293 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turned )-67(a )-67(value )-67(of)]TJ /TT0 1 Tf 8.08 0 Td (PTHREAD_BARRIER_SERIAL_THREAD)Tj /T1_0 1 Tf 0.5669 Tc (.T)Tj 0 Tc 18.83 0 Td [(he )-67(r)18(emaining )-67(thr)18(eads )-67(see)]TJ 0.2511 Tc -27.766 -1.2 Td (ar)Tj 0 Tc 1.128 0 Td [(eturn )-1(value )-1(of )-1(0.)-501(This )-1(allows )-1(one )-1(thr)17(ead )-1(to )-1(continue )-1(as )-1(the )-1(master )-1(to )-1(act )-1(on )-1(the )-1(r)18(esults)]TJ -1.128 -1.2 Td [(of the work done by all of the other thr)18(eads.)]TJ 1.8 -1.2 Td [(Once )-52(the )-52(barrier )-52(count )-52(is )-52(r)18(eached )-52(and )-52(the )-52(thr)21(eads )-52(ar)]TJ 0.3017 Tc 23.344 0 Td (eu)Tj 0 Tc 1.384 0 Td [(nblocked, )-52(the )-52(barrier )-52(can )-52(be)]TJ -26.528 -1.2 Td [(used )-484(again.)-984(However)]TJ 0.7339 Tc 10.57 0 Td (,t)Tj 0 Tc 1.31 0 Td [(he )-484(barrier )-484(count )-484(can\325t )-484(be )-484(changed )-484(unless )-484(we )-484(call )-484(the)]TJ /TT0 1 Tf -11.88 -1.2 Td (pthread_barrier_destroy)Tj /T1_0 1 Tf 14.413 0 Td [(function )-363(followed )-363(by )-363(the)]TJ /TT0 1 Tf 12.587 0 Td (pthread_barrier_init)Tj /T1_0 1 Tf -27 -1.2 Td [(function with a dif)18(fer)18(ent count.)]TJ /TT1 1 Tf -3.6 -2.64 Td (Example)Tj /T1_0 1 Tf 3.6 -1.92 Td (Figur)Tj 0.3258 Tc 2.383 0 Td (e1)Tj 0 Tc 1.25 0 Td [(1.16 )-76(shows )-76(how )-76(a )-76(barrier )-76(can )-76(be )-76(used )-76(to )-76(synchr)18(onize )-76(thr)18(eads )-76(cooperating )-76(on )-76(a)]TJ -3.633 -1.2 Td (single task.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3094.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 299.845 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD (#define NTHR)Tj 9.6 Tc 9 0 Td (8/)Tj 0.6 Tc 10.8 0 Td (*n)Tj 0 Tc 1.8 0 Td (umber of threads */)Tj -21.6 -1.189 Td (#define NUMNUM 8000000L)Tj 19.2 0 Td (/* number of numbers to sort */)Tj -19.2 -1.189 Td [(#define TNUM)-1800(\(NUMNUM/NTHR\) )-1800(/*)-600(number to sort per thread */)]TJ 0 -1.902 TD (long nums[NUMNUM];)Tj 0 -1.189 TD (long snums[NUMNUM];)Tj 0 -1.902 TD (pthread_barrier_t b;)Tj T* (#ifdef SOLARIS)Tj 0 -1.189 TD (#define heapsort qsort)Tj T* (#else)Tj T* (extern int heapsort\(void *, size_t, size_t,)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47630 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (977)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (PPID,)Tj /T1_2 1 Tf 3.069 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td [(par)18(ent pr)18(ocess ID)]TJ /TT0 1 Tf -4.486 -1.25 Td (P_PID)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(244)]TJ /TT0 1 Tf -3.417 -1.25 Td (pr)Tj /T1_0 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(753)]TJ /TT0 1 Tf -1.617 -1.25 Td (prctl)Tj /T1_0 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(559)]TJ /TT0 1 Tf -3.417 -1.25 Td (pread)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(78,)-250(451, 461)]TJ 9.54 0.09 Td (\320)Tj 0.583 -0.09 Td (462, 592)Tj -12.19 -1.25 Td [(de\336nition of,)-500(78)]TJ -1.35 -1.25 Td [(Pr)18(esotto, D. L.,)-500(xxxii, 229, 952)]TJ /TT0 1 Tf 0 -1.25 TD (pr_exit)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(239)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (241, 266)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (268, 281, 283,)Tj -12.707 -1.25 Td (372, 896)Tj -1.35 -1.25 Td [(de\336nition of,)-500(240)]TJ -1.35 -1.25 Td [(primitive system data types,)-500(58)]TJ /TT0 1 Tf T* (print)Tj /T1_0 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(794,)-250(801, 820, 824)]TJ 12.191 0.09 Td (\320)Tj 0.583 -0.09 Td (825, 834, 843)Tj /TT0 1 Tf -16.191 -1.25 Td (printd)Tj /T1_0 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(794,)-250(843)]TJ -4.017 -1.25 Td [(printer communication, network,)-500(789)]TJ 16.791 0.09 Td (\320)Tj 0.583 -0.09 Td (843)Tj -17.375 -1.25 Td [(printer spooling,)-500(793)]TJ 9.489 0.09 Td (\320)Tj 0.583 -0.09 Td (795)Tj -8.723 -1.25 Td [(sour)18(ce code,)-500(795)]TJ 7.536 0.09 Td (\320)Tj 0.583 -0.09 Td (842)Tj /TT0 1 Tf -9.469 -1.25 Td (printer_status)Tj /T1_0 1 Tf 8.817 0 Td [(function, )-250(814,)-250(837)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (838, 843)Tj -16.09 -1.25 Td [(de\336nition of,)-500(838)]TJ /TT0 1 Tf -1.35 -1.25 Td (printer_thread)Tj /T1_0 1 Tf 8.817 0 Td [(function, )-250(814,)-250(832, 945)]TJ -7.467 -1.25 Td [(de\336nition of,)-500(832)]TJ /TT0 1 Tf -1.35 -1.25 Td (printf)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(10)]TJ 5.54 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0.25 Tc 0.945 0 Td (,2)Tj 0 Tc 1 0 Td (1, 150, 159, 161)Tj 6.583 0.09 Td (\320)Tj 0.583 -0.09 Td (163,)Tj -16.552 -1.25 Td (175, 192, 194, 219, 226, 231, 235, 283, 309, 330,)Tj T* (349, 452, 552, 919)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (920)Tj -9.517 -1.25 Td [(de\336nition of,)-500(159)]TJ /TT0 1 Tf -1.35 -1.25 Td (print.h)Tj /T1_0 1 Tf 4.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,8)Tj 0 Tc 1.25 0 Td (15, 820, 825)Tj /TT0 1 Tf -8.839 -1.25 Td (printreq)Tj /T1_0 1 Tf 5.217 0 Td [(str)8(uctur)18(e, )-250(801,)-250(809)]TJ 8.302 0.09 Td (\320)Tj 0.583 -0.09 Td (810, 812, 820,)Tj -11.402 -1.25 Td (822)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (824, 827)Tj /TT0 1 Tf -4.866 -1.25 Td (printresp)Tj /T1_0 1 Tf 5.817 0 Td [(str)8(uctur)18(e, )-250(801,)-250(809, 81)55(1, 824)]TJ 12.247 0.09 Td (\320)Tj 0.583 -0.09 Td (827)Tj /TT0 1 Tf -18.647 -1.25 Td (PRIO_PGRP)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(277)]TJ /TT0 1 Tf -5.817 -1.25 Td (PRIO_PROCESS)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(277)]TJ /TT0 1 Tf -7.617 -1.25 Td (PRIO_USER)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(277)]TJ -5.817 -1.25 Td [(privilege, least,)-500(256, 795, 816)]TJ /TT0 1 Tf T* (pr_mask)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(356)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (357, 360)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (361, 896)Tj -14.057 -1.25 Td [(de\336nition of,)-500(347)]TJ -1.35 -1.25 Td [(/pr)18(oc, )-250(136,)-250(253)]TJ /TT0 1 Tf T* (proc)Tj /T1_0 1 Tf 2.817 0 Td [(str)8(uctur)18(e, )-250(31)55(1)]TJ 6.247 0.09 Td (\320)Tj 0.583 -0.09 Td (312)Tj -9.647 -1.25 Td [(pr)18(ocess, )-250(1)55(1)]TJ 1.35 -1.25 Td [(accounting, )-250(269)]TJ 7.207 0.09 Td (\320)Tj 0.583 -0.09 Td (275)Tj -7.79 -1.25 Td [(contr)18(ol, )-250(1)55(1, 227)]TJ 6.89 0.09 Td (\320)Tj 0.583 -0.09 Td (283)Tj -7.473 -1.25 Td [(ID, )-250(1)55(1, 228, 252)]TJ T* [(ID, par)18(ent, )-250(228,)-250(233, 237, 243, 246, 252, 287)]TJ 18.809 0.09 Td (\320)Tj 0.583 -0.09 Td (288,)Tj -18.042 -1.25 Td (309, 464)Tj -1.35 -1.25 Td [(identi\336ers, )-250(227)]TJ 6.816 0.09 Td (\320)Tj 0.583 -0.09 Td (228)Tj -0.018 Tc -7.4 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(lationships, )-250(285)]TJ 7.191 0.09 Td (\320)Tj 0.583 -0.09 Td (312)Tj -8.631 -1.25 Td [(scheduling, )-250(276)]TJ 7.196 0.09 Td (\320)Tj 0.583 -0.09 Td (280)Tj -7.779 -1.25 Td [(system, )-250(228,)-250(337)]TJ T* [(termination, )-250(198)]TJ 7.534 0.09 Td (\320)Tj 0.583 -0.09 Td (202)Tj -8.117 -1.25 Td [(time, )-250(20,)-250(24, 59, 280)]TJ 8.812 0.09 Td (\320)Tj 0.583 -0.09 Td (282)Tj -10.746 -1.25 Td [(pr)18(ocess gr)18(oup, )-250(293)]TJ 8.561 0.09 Td (\320)Tj 0.583 -0.09 Td (294)Tj -7.794 -1.25 Td [(backgr)18(ound, )-250(296,)-250(300, 302, 304, 306)]TJ 15.661 0.09 Td (\320)Tj 0.583 -0.09 Td (307, 309,)Tj -14.895 -1.25 Td (321, 369, 377, 944)Tj -1.35 -1.25 Td [(for)18(egr)18(ound, )-250(296,)-250(298, 300)]TJ 11.343 0.09 Td (\320)Tj 0.583 -0.09 Td [(303, 306, 31)55(1,)]TJ -10.577 -1.25 Td (318)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (322, 369, 377, 680)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (682, 685, 689, 710,)Tj -10.333 -1.25 Td (719, 741, 944)Tj 24.65 66.25 Td [(ID, )-250(233,)-250(252)]TJ T* [(ID, for)18(egr)18(ound, )-250(298,)-250(303, 677)]TJ -0 -1.25 Td [(ID, session,)-500(304)]TJ T* [(ID, terminal,)-500(303, 463)]TJ T* (leader)Tj 0.5 Tc 2.681 0 Td (,2)Tj 0 Tc 1.25 0 Td (94)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (296, 306, 312, 465)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (466, 727)Tj -13.764 -1.25 Td [(lifetime, )-250(294)]TJ T* [(orphaned, )-250(307)]TJ 6.629 0.09 Td (\320)Tj 0.583 -0.09 Td (309, 469, 735)Tj -8.563 -1.25 Td [(pr)18(ocesses, cooperating,)-500(495, 752, 945)]TJ /TT0 1 Tf T* (process-shared)Tj /T1_0 1 Tf 8.817 0 Td [(attribute, )-250(431)]TJ /TT0 1 Tf -8.817 -1.25 Td (.profile)Tj /T1_0 1 Tf 5.217 0 Td [(\336le, )-250(289)]TJ -5.217 -1.25 Td [(pr)18(ogram, )-250(10)]TJ /TT0 1 Tf T* (PROT_EXEC)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(525)]TJ /TT0 1 Tf -5.817 -1.25 Td (PROT_NONE)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(525)]TJ /TT0 1 Tf -5.817 -1.25 Td (protoent)Tj /T1_0 1 Tf 5.217 0 Td [(str)8(uctur)18(e, )-250(598)]TJ -5.217 -1.25 Td [(pr)18(ototypes, function,)-500(845)]TJ 11.322 0.09 Td (\320)Tj 0.583 -0.09 Td (893)Tj /TT0 1 Tf -11.905 -1.25 Td (PROT_READ)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(525,)-250(529, 577)]TJ /TT0 1 Tf -5.817 -1.25 Td (PROT_WRITE)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(525,)-250(529, 577)]TJ /TT0 1 Tf -6.417 -1.25 Td (PR_TEXT)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(801,)-250(810, 825, 835)]TJ 12.063 0.09 Td (\320)Tj 0.583 -0.09 Td (836)Tj /TT0 1 Tf -17.263 -1.25 Td (ps)Tj /T1_0 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(237,)-250(283, 303, 306)]TJ 12.191 0.09 Td (\320)Tj 0.583 -0.09 Td (307, 463)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (465,)Tj -15.858 -1.25 Td (468)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (469, 480, 736, 923)Tj /TT0 1 Tf -4.866 -1.25 Td (pselect)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(331,)-250(451, 501, 506)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(506)]TJ -1.35 -1.25 Td [(pseudo terminal,)-500(715)]TJ 9.594 0.09 Td (\320)Tj 0.583 -0.09 Td (742)Tj -8.827 -1.25 Td [(packet mode,)-500(740)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(mote mode,)-500(741)]TJ -0.856 -1.25 Td [(signal generation,)-500(741)]TJ T* [(window size,)-500(741)]TJ /TT0 1 Tf -1.35 -1.25 Td (psiginfo)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(379)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (380, 452)Tj -10.49 -1.25 Td [(de\336nition of,)-500(379)]TJ /TT0 1 Tf -1.35 -1.25 Td (psignal)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(379)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (380, 452)Tj -9.89 -1.25 Td [(de\336nition of,)-500(379)]TJ /TT0 1 Tf -1.35 -1.25 Td (ptem)Tj /T1_0 1 Tf 2.817 0 Td [(STREAMS module,)-500(716, 726)]TJ /TT0 1 Tf -2.817 -1.25 Td (pthread)Tj /T1_0 1 Tf 4.617 0 Td [(str)8(uctur)18(e, )-250(385)]TJ /TT0 1 Tf -4.617 -1.25 Td (pthread_atfork)Tj /T1_0 1 Tf 8.817 0 Td [(function, )-250(457)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (461)Tj -14.09 -1.25 Td [(de\336nition of,)-500(458)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_attr_destroy)Tj /T1_0 1 Tf 12.417 0 Td [(function, )-250(427)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (429)Tj -17.69 -1.25 Td [(de\336nition of,)-500(427)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_attr_getdetachstate)Tj /T1_0 1 Tf 16.617 0 Td [(function, )-250(428)]TJ -15.267 -1.25 Td [(de\336nition of,)-500(428)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_attr_getguardsize)Tj /T1_0 1 Tf 15.417 0 Td [(function, )-250(430)]TJ -14.067 -1.25 Td [(de\336nition of,)-500(430)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_attr_getstack)Tj /T1_0 1 Tf 13.017 0 Td [(function, )-250(429)]TJ -11.667 -1.25 Td [(de\336nition of,)-500(429)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_attr_getstacksize)Tj /T1_0 1 Tf 15.417 0 Td (function,)Tj -12.717 -1.25 Td (429)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (430)Tj -3.517 -1.25 Td [(de\336nition of,)-500(430)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_attr_init)Tj /T1_0 1 Tf 10.617 0 Td [(function, )-250(427)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (429)Tj -15.89 -1.25 Td [(de\336nition of,)-500(427)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_attr_setdetachstate)Tj /T1_0 1 Tf 16.617 0 Td [(function, )-250(428)]TJ -15.267 -1.25 Td [(de\336nition of,)-500(428)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_attr_setguardsize)Tj /T1_0 1 Tf 15.417 0 Td [(function, )-250(430)]TJ -14.067 -1.25 Td [(de\336nition of,)-500(430)]TJ /TT0 1 Tf -1.35 -1.25 Td (pthread_attr_setstack)Tj /T1_0 1 Tf 13.017 0 Td [(function, )-250(429)]TJ -11.667 -1.25 Td [(de\336nition of,)-500(429)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47631 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (458)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 658.2605 Tm (#include )Tj 0 -1.783 TD (int pthread_atfork\(void \(*)Tj /T1_2 1 Tf [(pr)18(epar)18(e)]TJ /TT0 1 Tf (\)\(void\), void \(*)Tj /T1_2 1 Tf [(par)18(ent)]TJ /TT0 1 Tf (\)\(void\),)Tj 11.4 -1.189 Td (void \(*)Tj /T1_2 1 Tf (child)Tj /TT0 1 Tf (\)\(void\)\);)Tj /T1_1 1 Tf 9.881 -1.783 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6110.25 cm 0 0 m 0 563 l 3900 563 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf -0.055 Tc 9.9988 0 0 9.9988 147.5823 599.828 Tm (Wi)Tj 0 Tc 1.236 0 Td (th)Tj /TT0 1 Tf 1.27 0 Td (pthread_atfork)Tj /T1_1 1 Tf [(,)-362(we)-362(c)1(an )-112(install )-112(up )-112(to )-112(thr)20(ee )-111(functions )-111(to )-111(help )-111(clean )-111(up )-111(the)]TJ -4.306 -1.2 Td [(locks. )-434(The)]TJ /T1_2 1 Tf 5.302 0 Td [(pr)18(epar)18(e)]TJ /T1_1 1 Tf 3.398 0 Td [(fork )-184(handler )-184(is )-184(called )-184(in )-184(the )-184(par)18(ent )-184(befor)19(e)]TJ /TT0 1 Tf 19.963 0 Td (fork)Tj /T1_1 1 Tf 2.834 0 Td [(cr)18(eates )-184(the )-184(child)]TJ -31.497 -1.2 Td [(pr)18(ocess. )-282(This)-283(fork )-32(handler)-74(\325s )-32(job )-32(is )-32(to )-32(acquir)]TJ 0.2825 Tc 19.423 0 Td (ea)Tj 0 Tc 1.261 0 Td [(ll )-32(locks )-32(de\336ned )-32(by )-32(the )-32(par)16(ent. )-282(The)]TJ /T1_2 1 Tf 15.722 0 Td [(par)18(ent)]TJ /T1_1 1 Tf -36.407 -1.2 Td [(fork )-218(handler )-218(is )-218(called )-218(in )-218(the )-218(context )-218(of )-218(the )-218(par)18(ent )-218(after)]TJ /TT0 1 Tf 26.398 0 Td (fork)Tj /T1_1 1 Tf 2.869 0 Td [(has )-219(cr)18(eated )-219(the )-219(child)]TJ -29.266 -1.2 Td [(pr)18(ocess, )-38(but )-38(befor)18(e)]TJ /TT0 1 Tf 8.658 0 Td (fork)Tj /T1_1 1 Tf 2.688 0 Td [(has )-38(r)18(eturned. )-288(This)-288(fork )-38(handler)-74(\325s )-38(job )-38(is )-38(to )-38(unlock )-38(all )-38(the )-38(locks)]TJ -11.346 -1.2 Td [(acquir)18(ed )-109(by )-109(the)]TJ /T1_2 1 Tf 7.437 0 Td [(pr)18(epar)18(e)]TJ /T1_1 1 Tf 3.323 0 Td [(fork )-109(handler)]TJ 0.6089 Tc 5.555 0 Td (.T)Tj 0 Tc 1.472 0 Td (he)Tj /T1_2 1 Tf 1.42 0 Td (child)Tj /T1_1 1 Tf 2.322 0 Td [(fork )-109(handler )-109(is )-109(called )-109(in )-109(the )-109(context )-109(of)]TJ -21.529 -1.2 Td [(the )-4(child )-4(pr)17(ocess )-4(befor)]TJ 0.2542 Tc 9.952 0 Td (er)Tj 0 Tc 1.11 0 Td [(eturning )-4(fr)18(om)]TJ /TT0 1 Tf 6.461 0 Td (fork)Tj /T1_1 1 Tf 0.5042 Tc (.L)Tj 0 Tc 3.765 0 Td [(ike )-4(the)]TJ /T1_2 1 Tf 3.221 0 Td [(par)18(ent)]TJ /T1_1 1 Tf 2.847 0 Td [(fork )-4(handler)]TJ 0.2542 Tc 5.45 0 Td (,t)Tj 0 Tc 0.83 0 Td (he)Tj /T1_2 1 Tf 1.315 0 Td (child)Tj /T1_1 1 Tf 2.217 0 Td (fork)Tj -37.17 -1.2 Td [(handler must r)18(elease all the locks acquir)18(ed by the)]TJ /T1_2 1 Tf 22.046 0 Td [(pr)18(epar)18(e)]TJ /T1_1 1 Tf 3.214 0 Td [(fork handler)74(.)]TJ -23.46 -1.2 Td [(Note )-178(that )-178(the )-178(locks )-178(ar)]TJ 0.4277 Tc 10.152 0 Td (en)Tj 0 Tc 1.489 0 Td [(ot )-178(locked )-178(once )-178(and )-178(unlocked )-178(twice, )-178(as )-178(it )-178(might )-178(appear)77(.)]TJ -13.441 -1.2 Td [(When )-215(the )-215(child )-215(addr)18(ess )-215(space )-215(is )-215(cr)18(eated, )-215(it )-215(gets )-215(a )-215(copy )-215(of )-215(all )-215(locks )-215(that )-215(the )-215(par)19(ent)]TJ 0 -1.2 TD [(de\336ned. )-441(Because)-442(the)]TJ /T1_2 1 Tf 10.118 0 Td [(pr)18(epar)18(e)]TJ /T1_1 1 Tf 3.405 0 Td [(fork )-191(handler )-191(acquir)18(ed )-191(all )-191(the )-191(locks, )-191(the )-191(memory )-191(in )-191(the)]TJ -13.523 -1.2 Td [(par)18(ent )-67(and )-67(the )-67(memory )-67(in )-67(the )-67(child )-67(start )-67(out )-67(with )-67(identical )-67(contents.)-566(When )-67(the )-67(par)18(ent)]TJ 0 -1.2 Td [(and )-95(the )-95(child )-95(unlock )-95(their )-95(\324)38(\324copy\325)37(\325)-345(of)-345(the )-95(locks, )-95(new )-95(memory )-95(is )-95(allocated )-95(for )-95(the )-95(child,)]TJ 0 -1.2 Td [(and )-100(the )-100(memory )-100(contents )-100(fr)18(om )-100(the )-100(par)18(ent )-100(ar)]TJ 0.3503 Tc 20.251 0 Td (ec)Tj 0 Tc 1.273 0 Td [(opied )-100(to )-100(the )-100(child\325s )-100(memory )-100(\(copy-on-)]TJ -21.524 -1.2 Td [(write\), )-83(so )-83(we )-83(ar)]TJ 0.3328 Tc 7.066 0 Td (el)Tj 0 Tc 1.103 0 Td [(eft )-83(with )-83(a )-83(situation )-83(that )-83(looks )-83(as )-83(if )-83(the )-83(par)20(ent )-83(locked )-83(all )-83(its )-83(copies )-83(of)]TJ -8.169 -1.2 Td [(the )-84(locks )-84(and )-84(the )-84(child )-84(locked )-84(all )-84(its )-84(copies )-84(of )-84(the )-84(locks.)-584(The )-84(par)15(ent )-84(and )-84(the )-84(child )-84(end)]TJ T* [(up )-113(unlocking )-113(duplicate )-113(locks )-113(stor)18(ed )-113(in )-113(dif)15(fer)18(ent )-113(memory )-113(locations, )-113(as )-113(if )-113(the )-113(following)]TJ -0 -1.2 Td [(sequence of events occurr)18(ed:)]TJ 1.8 -1.56 Td [(1. )-633(The)-250(par)18(ent acquir)18(ed all its locks.)]TJ 0 -1.48 TD [(2. )-633(The)-250(child acquir)18(ed all its locks.)]TJ T* [(3. )-633(The)-250(par)18(ent r)18(eleased its locks.)]TJ T* [(4. )-633(The)-250(child r)18(eleased its locks.)]TJ -0.092 Tc 0 -1.56 TD [(We )-303(c)]TJ 0 Tc 2.2 0 Td [(an )-119(call)]TJ /TT0 1 Tf 3.346 0 Td (pthread_atfork)Tj /T1_1 1 Tf 8.769 0 Td [(multiple )-119(times )-119(to )-119(install )-119(mor)]TJ 0.3689 Tc 13.027 0 Td (et)Tj 0 Tc 1.174 0 Td [(han )-119(one )-119(set )-119(of )-119(fork)]TJ -30.315 -1.2 Td [(handlers. )-272(If)-272(we )-22(don\325t )-22(have )-22(a )-22(need )-22(to )-22(use )-22(one )-22(of )-22(the )-22(handlers, )-22(we )-22(can )-22(pass )-22(a )-22(null )-22(pointer)]TJ 0 -1.2 TD [(for )-182(the )-182(particular )-182(handler )-182(ar)18(gument, )-182(and )-182(it )-182(will )-182(have )-182(no )-182(ef)21(fect. )-432(When)-431(multiple )-182(fork)]TJ T* [(handlers )-141(ar)]TJ 0.3915 Tc 5.133 0 Td (eu)Tj 0 Tc 1.474 0 Td [(sed, )-141(the )-141(or)18(der )-141(in )-141(which )-141(the )-141(handlers )-141(ar)]TJ 0.3915 Tc 18.033 0 Td (ec)Tj 0 Tc 1.314 0 Td [(alled )-141(dif)18(fers. )-391(The)]TJ /T1_2 1 Tf 8.369 0 Td [(par)18(ent)]TJ /T1_1 1 Tf 2.984 0 Td (and)Tj /T1_2 1 Tf -37.307 -1.2 Td (child)Tj /T1_1 1 Tf 2.34 0 Td [(fork )-127(handlers )-127(ar)]TJ 0.3767 Tc 7.325 0 Td (ec)Tj 0 Tc 1.3 0 Td [(alled )-127(in )-127(the )-127(or)18(der )-127(in )-127(which )-127(they )-127(wer)]TJ 0.3767 Tc 16.716 0 Td (er)Tj 0 Tc 1.233 0 Td [(egister)18(ed, )-127(wher)18(eas )-127(the)]TJ /T1_2 1 Tf -28.913 -1.2 Td [(pr)18(epar)18(e)]TJ /T1_1 1 Tf 3.291 0 Td [(fork )-77(handlers )-77(ar)]TJ 0.3273 Tc 7.226 0 Td (ec)Tj 0 Tc 1.25 0 Td [(alled )-77(in )-77(the )-77(opposite )-77(or)18(der )-77(fr)18(om )-77(which )-77(they )-77(wer)]TJ 0.3274 Tc 21.777 0 Td (er)Tj 0 Tc 1.183 0 Td [(egister)18(ed.)]TJ -34.728 -1.2 Td [(This )-210(or)18(dering )-210(allows )-210(multiple )-210(modules )-210(to )-210(r)18(egister )-210(their )-210(own )-210(fork )-210(handlers )-210(and )-210(still)]TJ T* [(honor the locking hierar)18(chy)111(.)]TJ 1.8 -1.2 Td [(For )-118(example, )-118(assume )-118(that )-118(module )-118(A )-118(calls )-118(functions )-118(fr)15(om )-118(module )-118(B )-118(and )-118(that )-118(each)]TJ -1.8 -1.2 Td [(module )-62(has )-62(its )-62(own )-62(set )-62(of )-62(locks.)-562(If )-62(the )-62(locking )-62(hierar)18(chy )-62(is )-62(A )-62(befor)22(e)-312(B,)-312(m)1(odule )-62(B )-62(must)]TJ 0 -1.2 Td [(install )-131(its )-131(fork )-131(handlers )-131(befor)]TJ 0.3808 Tc 13.251 0 Td (em)Tj 0 Tc 1.743 0 Td [(odule )-131(A.)-631(When )-131(the )-131(par)18(ent )-131(calls)]TJ /TT0 1 Tf 14.938 0 Td (fork)Tj /T1_1 1 Tf 0.3808 Tc (,t)Tj 0 Tc 3.357 0 Td [(he )-131(following)]TJ -33.288 -1.2 Td (steps ar)Tj 0.25 Tc 3.381 0 Td (et)Tj 0 Tc 1.055 0 Td [(aken, assuming that the child pr)18(ocess r)8(uns befor)]TJ 0.25 Tc 21.299 0 Td (et)Tj 0 Tc 1.055 0 Td [(he par)18(ent:)]TJ -24.99 -1.56 Td [(1. )-633(The)]TJ /T1_2 1 Tf 3.671 0 Td [(pr)18(epar)18(e)]TJ /T1_1 1 Tf 3.328 0 Td [(fork )-114(handler )-114(fr)18(om )-114(module )-114(A )-114(is )-114(called )-114(to )-114(acquir)]TJ 0.3637 Tc 21.488 0 Td (ea)Tj 0 Tc 1.343 0 Td [(ll )-114(of )-114(module )-114(A)75(\325s)]TJ -28.196 -1.2 Td (locks.)Tj -1.633 -1.48 Td [(2. )-633(The)]TJ /T1_2 1 Tf 3.689 0 Td [(pr)18(epar)18(e)]TJ /T1_1 1 Tf 3.346 0 Td [(fork )-132(handler )-132(fr)18(om )-132(module )-132(B )-132(is )-132(called )-132(to )-132(acquir)]TJ 0.3823 Tc 21.469 0 Td (ea)Tj 0 Tc 1.361 0 Td [(ll )-132(of )-132(module )-132(B\325s)]TJ -28.233 -1.2 Td (locks.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47632 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (801)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(48 )-1200(/*)]TJ 0 -1.189 TD [(49 )-1800(*)-600(Structure describing a print request.)]TJ T* [(50 )-1800(*/)]TJ T* [(51 )-1200(struct)-600(printreq {)]TJ T* [(52 )-3000(uint32_t)-600(size; )]TJ 21.6 0 Td [(/*)-600(size in bytes */)]TJ -21.6 -1.189 Td [(53 )-3000(uint32_t)-600(flags; )]TJ 21.6 0 Td [(/*)-600(see below */)]TJ -21.6 -1.189 Td [(54 )-3000(char)-600(usernm[USERNM_MAX]; )-1800(/*)-600(user\325s name */)]TJ T* [(55 )-3000(char)-600(jobnm[JOBNM_MAX]; )-3000(/*)-600(job\325s name */)]TJ T* [(56 )-1200(};)]TJ 0 -2.021 TD [(57 )-1200(/*)]TJ 0 -1.189 TD [(58 )-1800(*)-600(Request flags.)]TJ T* [(59 )-1800(*/)]TJ T* [(60 )-1200(#define)-600(PR_TEXT )-4200(0x01)-2400(/* treat file as plain text */)]TJ 0 -2.021 TD [(61 )-1200(/*)]TJ 0 -1.189 TD [(62 )-1800(*)-600(The response from the spooling daemon to the print command.)]TJ T* [(63 )-1800(*/)]TJ T* [(64 )-1200(struct)-600(printresp {)]TJ T* [(65 )-3000(uint32_t)-600(retcode; )]TJ 21.6 0 Td [(/*)-600(0=success, !0=error code */)]TJ -21.6 -1.189 Td [(66 )-3000(uint32_t)-600(jobid; )]TJ 21.6 0 Td [(/*)-600(job ID */)]TJ -21.6 -1.189 Td [(67 )-3000(char)-600(msg[MSGLEN_MAX]; )-3600(/*)-600(error message */)]TJ T* [(68 )-1200(};)]TJ 0 -2.021 TD [(69 )-1200(#endif)-600(/* _PRINT_H */)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4075.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 383.482 Tm [([48 )167(\320 )167(69])-668(The)]TJ /TT0 1 Tf 6.13 0 Td (printreq)Tj /T1_0 1 Tf 5.256 0 Td (and)Tj /TT0 1 Tf 2.149 0 Td (printresp)Tj /T1_0 1 Tf 5.856 0 Td [(str)8(uctur)18(es )-206(de\336ne )-206(the )-206(pr)18(otocol )-206(between )-206(the)]TJ -15.39 -1.2 Td [(print )-13(command )-13(and )-13(the )-13(printer )-13(spooling )-13(daemon.)-510(The)]TJ /TT0 1 Tf 24.506 0 Td (print)Tj /T1_0 1 Tf 3.263 0 Td [(command )-13(sends)]TJ -27.768 -1.2 Td (a)Tj /TT0 1 Tf 0.765 0 Td (printreq)Tj /T1_0 1 Tf 5.065 0 Td [(str)8(uctur)]TJ 0.2654 Tc 3.49 0 Td (es)Tj 0 Tc 1.168 0 Td [(pecifying )-15(the )-15(size )-15(of )-15(the )-15(job )-15(in )-15(bytes, )-15(job )-15(characteristics,)]TJ -10.489 -1.2 Td [(the )-28(user )-28(name, )-28(and )-28(the )-28(job )-28(name )-28(to )-28(the )-28(printer )-28(spooling )-28(daemon.)-534(The )-28(daemon)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(sponds )-175(with )-175(a)]TJ /TT0 1 Tf 6.997 0 Td (printresp)Tj /T1_0 1 Tf 5.826 0 Td [(str)8(uctur)]TJ 0.4255 Tc 3.49 0 Td (ec)Tj 0 Tc 1.349 0 Td [(ontaining )-175(a )-175(r)17(eturn )-176(code, )-176(the )-176(job )-176(ID,)]TJ -18.518 -1.2 Td [(and an err)18(or message if the r)18(equest failed.)]TJ 0 -1.8 TD (The)Tj /TT0 1 Tf 2.008 0 Td (PR_TEXT)Tj /T1_0 1 Tf 4.534 0 Td [(job )-84(characteristic )-84(indicates )-84(that )-84(the )-84(\336le )-84(being )-84(printed )-84(should )-84(be)]TJ -6.542 -1.2 Td [(tr)18(eated )-312(as )-312(plaintext )-312(\(instead )-312(of )-312(PostScript\).)]TJ -0.092 Tc 21.047 0 Td [(We )-496(d)]TJ 0 Tc 2.56 0 Td [(e\336ne )-312(a )-312(bitmask )-312(of )-312(\337ags)]TJ -23.607 -1.2 Td [(instead )-29(of )-29(de\336ning )-29(a )-29(separate )-29(\336eld )-29(for )-29(each )-29(\337ag.)-525(Although )-28(only )-28(one )-28(\337ag )-28(value)]TJ 0 -1.2 TD [(is )-126(curr)18(ently )-126(de\336ned, )-126(we )-126(could )-126(extend )-126(the )-126(pr)17(otocol )-126(in )-126(the )-126(futur)17(e)-376(to)-376(add )-126(mor)18(e)]TJ 0 -1.2 Td [(characteristics. )-509(For)-510(example, )-259(we )-259(could )-259(add )-259(a )-259(\337ag )-259(to )-259(r)18(equest )-259(double-sided)]TJ T* [(printing. )-492(W)]TJ 0.4919 Tc 5.524 0 Td (eh)Tj 0 Tc 1.553 0 Td [(ave )-242(r)18(oom )-242(for )-242(31 )-242(additional )-242(\337ags )-242(without )-242(r)18(equiring )-242(that )-242(we)]TJ -7.077 -1.2 Td [(change )-40(the )-40(size )-40(of )-40(the )-40(str)10(uctur)18(e. )-290(Changing)-289(the )-40(size )-40(of )-40(the )-40(str)10(uctur)]TJ 0.2896 Tc 29.34 0 Td (em)Tj 0 Tc 1.652 0 Td [(eans )-40(that)]TJ -30.991 -1.2 Td [(we )-51(might )-51(intr)18(oduce )-51(a )-51(compatibility )-51(pr)18(oblem )-51(between )-51(the )-51(client )-51(and )-51(the )-51(server)]TJ T* [(unless )-43(we )-43(upgrade )-43(both )-43(at )-43(the )-43(same )-43(time.)-542(An )-43(alternative )-43(appr)18(oach )-43(is )-43(to )-43(add )-43(a)]TJ T* [(version )-136(number )-136(to )-136(the )-136(messages )-136(to )-136(allow )-136(the )-136(str)11(uctur)18(es )-136(to )-136(change )-136(with )-136(each)]TJ T* (version.)Tj 0 -1.8 TD [(Note )-40(that )-40(we )-40(de\336ne )-40(all )-40(integers )-40(in )-40(the )-40(pr)16(otocol )-40(str)8(uctur)18(es )-40(with )-40(an )-40(explicit )-40(size.)]TJ 0 -1.2 Td [(This )-131(helps )-131(avoid )-131(misaligned )-131(str)8(uctur)]TJ 0.381 Tc 16.722 0 Td (ee)Tj 0 Tc 1.339 0 Td [(lements )-131(when )-131(a )-131(client )-131(has )-131(a )-131(dif)18(fer)18(ent)]TJ -18.061 -1.2 Td [(long integer size than the server)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47633 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (893)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (ssize_t)Tj /TT1 1 Tf 6 0 Td (write)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst void *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 9.697 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT0 1 Tf (\);)Tj -14.375 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 72)Tj -28.125 -1.5 Td (Returns: number of bytes written if OK,)Tj /TT2 1 Tf 17.808 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -31.308 -3.125 Td (ssize_t)Tj /TT1 1 Tf 6 0 Td (writev)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst struct iovec *)Tj /T1_2 1 Tf (iov)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 14.422 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (iovcnt)Tj /TT0 1 Tf (\);)Tj -17.9 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 521)Tj -28.125 -1.5 Td (Returns: number of bytes written if OK,)Tj /TT2 1 Tf 17.808 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47634 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (794)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (chapter)Tj 0.7941 Tc 3.253 0 Td (,o)Tj 0 Tc 1.59 0 Td [(ur )-544(inter)18(est )-544(is )-544(not )-544(in )-544(these )-544(spooling )-544(systems )-544(per )-544(se, )-544(but )-544(rather )-544(in)]TJ -4.843 -1.2 Td [(communicating )-37(with )-37(a )-37(network )-37(printer)]TJ 0.5373 Tc 17.326 0 Td (.W)Tj 0.2873 Tc 1.695 0 Td (en)Tj 0 Tc 1.348 0 Td [(eed )-37(to )-37(develop )-37(a )-37(spooling )-37(system )-37(to )-37(solve)]TJ -20.37 -1.2 Td [(the pr)18(oblem of multiuser access to a single r)18(esour)18(ce \(the printer\).)]TJ -0.092 Tc 1.8 -1.2 Td [(We )-397(u)]TJ 0 Tc 2.453 0 Td [(se )-213(a )-213(simple )-213(command )-213(that )-213(r)17(eads )-213(a )-213(\336le )-213(and )-213(sends )-213(it )-213(to )-213(the )-213(printer )-213(spooler)]TJ -4.253 -1.2 Td [(daemon. )-360(The)-360(command )-110(has )-110(one )-110(option )-110(to )-110(for)18(ce )-110(the )-110(\336le )-110(to )-110(be )-110(tr)18(eated )-110(as )-110(plaintext )-110(\(the)]TJ 0 -1.2 TD (default assumes that the \336le is PostScript\).)Tj -0.092 Tc 19.156 0 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td (all this command)Tj /TT0 1 Tf 7.904 0 Td (print)Tj /T1_1 1 Tf (.)Tj -27.341 -1.2 Td [(In )-95(our )-95(printer )-95(spooler )-95(daemon,)]TJ /TT0 1 Tf 14.392 0 Td (printd)Tj /T1_1 1 Tf [(,)-345(we)-345(u)-1(se )-95(multiple )-95(thr)18(eads )-95(to )-95(divide )-95(up )-95(the)]TJ -16.192 -1.2 Td (work that the daemon needs to accomplish.)Tj 0.883 Tc 1.8 -2.04 Td (\245O)Tj 0 Tc 2.275 0 Td [(ne )-265(thr)18(ead )-265(listens )-265(on )-265(a )-265(socket )-265(for )-265(new )-265(print )-265(r)16(equests )-265(arriving )-265(fr)18(om )-265(clients)]TJ -0.008 Tc -0.786 -1.2 Td (ru)Tj 0 Tc 0.99 0 Td (nning the)Tj /TT0 1 Tf 4.48 0 Td (print)Tj /T1_1 1 Tf 3.25 0 Td (command.)Tj 0.883 Tc -10.209 -1.6 Td (\245A)Tj 0 Tc 2.615 0 Td [(separate )-98(thr)18(ead )-98(is )-98(spawned )-98(for )-98(each )-98(client )-98(to )-98(copy )-98(the )-98(\336le )-98(to )-98(be )-98(printed )-98(to )-98(a)]TJ -1.126 -1.2 Td [(spooling ar)18(ea.)]TJ 0.883 Tc -1.489 -1.6 Td (\245O)Tj 0 Tc 2.275 0 Td [(ne )-21(thr)18(ead )-21(communicates )-21(with )-21(the )-21(printer)]TJ 0.271 Tc 18.111 0 Td (,s)Tj 0 Tc 0.945 0 Td [(ending )-21(it )-21(queued )-21(jobs )-21(one )-21(at )-21(a )-21(time.)]TJ 0.883 Tc -21.331 -1.6 Td (\245O)Tj 0 Tc 2.275 0 Td [(ne thr)18(ead handles signals.)]TJ -4.075 -2.16 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e2)Tj 0 Tc 1.229 0 Td [(1.6 shows how these components \336t together)74(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1680 3566 216 288 re S Q BT /T1_1 1 Tf 7.999 0 0 7.999 168.7917 374.1951 Tm (\336le to)Tj 0.151 -1.25 Td (print)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2040 4142 432 288 re S Q BT /TT0 1 Tf 7.9986 0 0 7.9986 213.5616 431.7623 Tm (print)Tj /T1_1 1 Tf -0.725 -1.25 Td (command)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 3048 4106 504 360 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 315.5243 436.7352 Tm (printd)Tj /T1_1 1 Tf 0.265 -1.25 Td (printer)Tj -0.106 -1.25 Td (spooler)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 3732 3710 216 288 re S Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 375.3874 383.5249 Tm (\336le 1)Tj ET q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 416.4 385.4 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 4164 3854 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3948.25 3854.25 cm 0 0 m 144 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 4164 3710 216 288 re S Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 418.5493 383.5019 Tm (\336le 2)Tj ET q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 459.6 385.4 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 4596 3854 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4380.25 3854.25 cm 0 0 m 144 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 4596 3710 216 288 re S Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 461.706 383.4789 Tm (\336le 3)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 2256 3638 432 144 re S Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 229.6577 369.0628 Tm (con\336g \336le)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 204 414.2 cm 0 0 m -3.384 -6.624 l -6.12 -4.248 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 2040 4142 cm 0 0 m -33.84 -66.24 l -61.2 -42.48 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1788.25 3854.25 cm 0 0 m 204 234 l S Q Q q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 247.2 428.6 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 2472 4286 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 304.8 428.6 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 3048 4286 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2544.25 4286.25 cm 0 0 m 432 0 l S Q Q q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 373.2 399.8 cm 0 0 m -5.328 5.184 l -2.304 7.056 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 3732 3998 cm 0 0 m -53.28 51.84 l -23.04 70.56 l h S Q Q q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 355.2 428.6 cm 0 0 m 5.328 -5.184 l 2.304 -7.056 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 3552 4286 cm 0 0 m 53.28 -51.84 l 23.04 -70.56 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3694.25 4059.25 cm 0 0 m -104 166 l S Q Q q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 225.6 414.2 cm 0 0 m 4.32 -6.048 l 1.008 -7.416 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 2256 4142 cm 0 0 m 43.2 -60.48 l 10.08 -74.16 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2400.25 3782.25 cm 0 0 m -118 293 l S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 304.8 410.6 cm 0 0 m -5.112 -5.4 l -7.056 -2.376 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 3048 4106 cm 0 0 m -51.12 -54 l -70.56 -23.76 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2544.25 3782.25 cm 0 0 m 443 285 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J 3084 3170 432 288 re S Q BT /T1_1 1 Tf 7.9928 0 0 7.9928 317.4382 329.3434 Tm (printer)Tj ET q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 330 345.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 3300 3458 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 330 410.6 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 3300 4106 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3300.25 3530.25 cm 0 0 m 0 504 l S Q Q BT /T1_1 1 Tf 7.9918 0 0 7.9918 383.6085 412.0195 Tm (queue of \336les to be printed)Tj /T1_0 1 Tf -16.683 -15.08 Td (Figure 21.6)Tj /T1_1 1 Tf 5.695 0 Td (Printer spooling components)Tj 9.9898 0 0 9.9898 147.4497 262.7319 Tm [(The )-43(print )-43(con\336guration )-43(\336le )-43(is)]TJ /TT0 1 Tf 13.401 0 Td (/etc/printer.conf)Tj /T1_1 1 Tf 0.5433 Tc (.I)Tj 0.2933 Tc 11.33 0 Td (ti)Tj 0 Tc 0.91 0 Td [(denti\336es )-43(the )-43(host )-43(name )-43(of)]TJ -27.442 -1.2 Td [(the )-213(server )-213(r)9(unning )-212(the )-212(printer )-212(spooling )-212(daemon )-212(and )-212(the )-212(host )-212(name )-212(of )-212(the )-212(network)]TJ T* (printer)Tj 0.6442 Tc 2.995 0 Td (.T)Tj 0 Tc 1.507 0 Td [(he )-144(spooling )-144(daemon )-144(is )-144(identi\336ed )-144(by )-144(a )-144(line )-144(starting )-144(with )-144(the)]TJ /TT0 1 Tf 27.897 0 Td (printserver)Tj /T1_1 1 Tf -32.4 -1.2 Td [(keywor)18(d, )-214(followed )-214(by )-214(white )-214(space )-214(and )-214(the )-214(host )-214(name )-214(of )-214(the )-214(server)]TJ 0.7144 Tc 31.648 0 Td (.T)Tj 0 Tc 1.577 0 Td [(he )-214(printer )-214(is)]TJ -33.226 -1.2 Td [(identi\336ed )-100(by )-100(a )-100(line )-100(starting )-100(with )-100(the)]TJ /TT0 1 Tf 16.797 0 Td (printer)Tj /T1_1 1 Tf 4.55 0 Td [(keywor)18(d, )-100(followed )-100(by )-100(white )-100(space )-100(and)]TJ -21.347 -1.2 Td [(the host name of the printer)74(.)]TJ 0.25 Tc 1.8 -1.2 Td (As)Tj 0 Tc 1.452 0 Td (ample printer con\336guration \336le might contain the following lines:)Tj /TT0 1 Tf 8.9908 0 0 8.9908 201.395 174.1223 Tm [(printserver )-1133(fujin)]TJ 0 -1.189 TD [(printer )-3533(phaser8560)]TJ /T1_1 1 Tf 9.9898 0 0 9.9898 129.4684 145.4516 Tm [(wher)18(e)]TJ /TT0 1 Tf 3.16 0 Td (fujin)Tj /T1_1 1 Tf 3.409 0 Td [(is )-159(the )-159(host )-159(name )-159(of )-159(the )-159(computer )-159(system )-159(r)10(unning )-159(the )-159(printer )-159(spooling)]TJ -6.569 -1.2 Td [(daemon, )-101(and)]TJ /TT0 1 Tf 6.246 0 Td (phaser8560)Tj /T1_1 1 Tf 6.351 0 Td [(is )-101(the )-101(host )-101(name )-101(of )-101(the )-101(network )-101(printer)]TJ 0.601 Tc 17.86 0 Td (.W)Tj 0.351 Tc 1.759 0 Td (ea)Tj 0 Tc 1.33 0 Td [(ssume )-101(these)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47635 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (268)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(status;)]TJ 0 -2.14 TD (if \(argc < 2\))Tj 2.4 -1.189 Td (err_quit\("command-line argument required"\);)Tj -2.4 -2.14 Td (if \(\(status = system\(argv[1]\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("system\(\) error"\);)Tj -2.4 -2.14 Td (pr_exit\(status\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4942.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 210.2668 478.1406 Tm (Figure 8.24)Tj /T1_1 1 Tf 5.695 0 Td (Execute the command)Tj 9.794 0.09 Td (-)Tj 0.333 -0.09 Td [(line ar)18(gument using)]TJ /TT0 1 Tf 9.155 0 Td (system)Tj /T1_1 1 Tf -0.092 Tc 9.9988 0 0 9.9988 129.5839 454.1435 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ll compile this pr)18(ogram into the executable \336le)]TJ /TT0 1 Tf 21.053 0 Td (tsys)Tj /T1_1 1 Tf (.)Tj -20.64 -1.2 Td (Figur)Tj 0.2623 Tc 2.383 0 Td (e8)Tj 0 Tc 1.241 0 Td [(.25 )-12(shows )-12(another )-12(simple )-12(pr)18(ogram )-12(that )-12(prints )-12(its )-12(r)18(eal )-12(and )-12(ef)18(fective )-12(user )-12(IDs.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4350.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9984 0 0 8.9984 129.5767 425.4204 Tm (#include "apue.h")Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("real uid = %d, effective uid = %d\\n", getuid\(\), geteuid\(\)\)\ ;)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3479.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 246.0209 331.8563 Tm (Figure 8.25)Tj /T1_1 1 Tf 5.695 0 Td [(Print r)18(eal and ef)18(fective user IDs)]TJ -0.092 Tc 9.9976 0 0 9.9976 129.5691 307.8621 Tm (We)Tj 0 Tc 1.387 0 Td [(\325ll )-429(compile )-429(this )-429(pr)18(ogram )-429(into )-429(the )-429(executable )-429(\336le)]TJ /TT0 1 Tf 24.484 0 Td (printuids)Tj /T1_1 1 Tf 0.9289 Tc (.R)Tj 0 Tc 7.247 0 Td [(unning )-429(both)]TJ -33.118 -1.2 Td [(pr)18(ograms gives us the following:)]TJ /TT0 1 Tf 8.9978 0 0 8.9978 147.5648 277.0297 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (tsys printuids)Tj /T1_2 1 Tf 21.2 0 Td (normal execution, no special privileges)Tj /TT0 1 Tf -22.4 -1.189 Td (real uid = 205, effective uid = 205)Tj T* (normal termination, exit status = 0)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (su)Tj /T1_2 1 Tf 21.2 0 Td (become superuser)Tj /TT0 1 Tf -22.4 -1.189 Td (Password:)Tj /T1_2 1 Tf 22.4 0 Td (enter superuser password)Tj /TT0 1 Tf -22.4 -1.189 Td (#)Tj /TT1 1 Tf 1.2 0 Td (chown root tsys)Tj /T1_2 1 Tf 21.2 0 Td (change owner)Tj /TT0 1 Tf -22.4 -1.189 Td (#)Tj /TT1 1 Tf 1.2 0 Td (chmod u+s tsys)Tj /T1_2 1 Tf 21.2 0 Td (make set-user-ID)Tj /TT0 1 Tf -22.4 -1.189 Td (#)Tj /TT1 1 Tf 1.2 0 Td (ls -l tsys)Tj /T1_2 1 Tf 21.2 0 Td (verify \336le\325)Tj 0.25 Tc 4.002 0 Td (sp)Tj 0 Tc 1.139 0 Td (ermissions and owner)Tj /TT0 1 Tf -27.541 -1.189 Td [(-rwsrwxr-x )-600(1)-600(root )-1800(7888)-600(Feb 25 22:13 tsys)]TJ T* (#)Tj /TT1 1 Tf 1.2 0 Td (exit)Tj /T1_2 1 Tf 21.2 0 Td (leave superuser shell)Tj /TT0 1 Tf -22.4 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (tsys printuids)Tj /TT0 1 Tf -1.2 -1.189 Td (real uid = 205, effective uid = 0)Tj /T1_2 1 Tf 22.4 0 Td (oops, this is a security hole)Tj /TT0 1 Tf -22.4 -1.189 Td (normal termination, exit status = 0)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47636 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (976)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (_POSIX_ASYNCHRONOUS_IO)Tj /T1_1 1 Tf 13.617 0 Td [(constant, )-250(54,)-250(57)]TJ /TT0 1 Tf -13.617 -1.25 Td (_POSIX_ASYNC_IO)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(55)]TJ /TT0 1 Tf -9.417 -1.25 Td (_POSIX_BARRIERS)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(54,)-250(57)]TJ /TT0 1 Tf -9.417 -1.25 Td (_POSIX_CHILD_MAX)Tj /T1_1 1 Tf 10.017 0 Td [(constant, )-250(39)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (40)Tj /TT0 1 Tf -16.163 -1.25 Td (_POSIX_CHOWN_RESTRICTED)Tj /T1_1 1 Tf 14.217 0 Td [(constant, )-250(55,)-250(57,)]TJ -0.055 Tc -11.517 -1.25 Td (11)Tj 0 Tc 0.945 0 Td (0)Tj /TT0 1 Tf -3.645 -1.25 Td (_POSIX_CLOCKRES_MIN)Tj /T1_1 1 Tf 11.817 0 Td [(constant, )-250(38)]TJ /TT0 1 Tf -11.817 -1.25 Td (_POSIX_CLOCK_SELECTION)Tj /T1_1 1 Tf 13.617 0 Td [(constant, )-250(54,)-250(57)]TJ /TT0 1 Tf -13.617 -1.25 Td (_POSIX_CPUTIME)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(31,)-250(189)]TJ /TT0 1 Tf -8.817 -1.25 Td (_POSIX_C_SOURCE)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(57)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (58, 84, 240)Tj /TT0 1 Tf -15.563 -1.25 Td (_POSIX_DELAYTIMER_MAX)Tj /T1_1 1 Tf 13.017 0 Td [(constant, )-250(39)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (40)Tj /TT0 1 Tf -19.163 -1.25 Td (posix_fadvise)Tj /T1_1 1 Tf 8.217 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -8.217 -1.25 Td (posix_fallocate)Tj /T1_1 1 Tf 9.417 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -9.417 -1.25 Td (_POSIX_FSYNC)Tj /T1_1 1 Tf 7.617 0 Td [(constant, )-250(31)]TJ /TT0 1 Tf -7.617 -1.25 Td (_POSIX_HOST_NAME_MAX)Tj /T1_1 1 Tf 12.417 0 Td [(constant, )-250(39)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (40)Tj /TT0 1 Tf -18.563 -1.25 Td (_POSIX_IPV6)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(31)]TJ /TT0 1 Tf -7.017 -1.25 Td (_POSIX_JOB_CONTROL)Tj /T1_1 1 Tf 11.217 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -11.217 -1.25 Td (_POSIX_LINK_MAX)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(39)]TJ /TT0 1 Tf -9.417 -1.25 Td (_POSIX_LOGIN_NAME_MAX)Tj /T1_1 1 Tf 13.017 0 Td [(constant, )-250(39)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (40)Tj /TT0 1 Tf -19.163 -1.25 Td (POSIXLY_CORRECT)Tj /T1_1 1 Tf 9.417 0 Td [(envir)18(onment variable,)]TJ -0.055 Tc 10.266 0 Td (111)Tj /TT0 1 Tf 0 Tc -19.683 -1.25 Td (posix_madvise)Tj /T1_1 1 Tf 8.217 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -8.217 -1.25 Td (_POSIX_MAPPED_FILES)Tj /T1_1 1 Tf 11.817 0 Td [(constant, )-250(54,)-250(57)]TJ /TT0 1 Tf -11.817 -1.25 Td (_POSIX_MAX_CANON)Tj /T1_1 1 Tf 10.017 0 Td [(constant, )-250(39)]TJ /TT0 1 Tf -10.017 -1.25 Td (_POSIX_MAX_INPUT)Tj /T1_1 1 Tf 10.017 0 Td [(constant, )-250(39)]TJ /TT0 1 Tf -10.017 -1.25 Td (_POSIX_MEMLOCK)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(31)]TJ /TT0 1 Tf -8.817 -1.25 Td (_POSIX_MEMLOCK_RANGE)Tj /T1_1 1 Tf 12.417 0 Td [(constant, )-250(31)]TJ /TT0 1 Tf -12.417 -1.25 Td (_POSIX_MEMORY_PROTECTION)Tj /T1_1 1 Tf 14.817 0 Td [(constant, )-250(54,)-250(57)]TJ /TT0 1 Tf -14.817 -1.25 Td (_POSIX_MESSAGE_PASSING)Tj /T1_1 1 Tf 13.617 0 Td [(constant, )-250(31)]TJ /TT0 1 Tf -13.617 -1.25 Td (_POSIX_MONOTONIC_CLOCK)Tj /T1_1 1 Tf 13.617 0 Td [(constant, )-250(31,)-250(189)]TJ /TT0 1 Tf -13.617 -1.25 Td (_POSIX_NAME_MAX)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(39,)-250(580)]TJ /TT0 1 Tf -9.417 -1.25 Td (_POSIX_NGROUPS_MAX)Tj /T1_1 1 Tf 11.217 0 Td [(constant, )-250(39)]TJ /TT0 1 Tf -11.217 -1.25 Td (_POSIX_NO_TRUNC)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(55,)-250(57, 65)]TJ /TT0 1 Tf -9.417 -1.25 Td (_POSIX_OPEN_MAX)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(39)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (40)Tj /TT0 1 Tf -15.563 -1.25 Td (posix_openpt)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(452,)-250(722)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (725)Tj -14.89 -1.25 Td [(de\336nition of,)-500(722)]TJ /TT0 1 Tf -1.35 -1.25 Td (_POSIX_PATH_MAX)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(39)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (40, 696)Tj 3.083 0.09 Td (\320)Tj 0.583 -0.09 Td (697)Tj /TT0 1 Tf -19.23 -1.25 Td (_POSIX_PIPE_BUF)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(39)]TJ /TT0 1 Tf -9.417 -1.25 Td (_POSIX_PRIO_IO)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(55)]TJ /TT0 1 Tf -8.817 -1.25 Td (_POSIX_PRIORITIZED_IO)Tj /T1_1 1 Tf 13.017 0 Td [(constant, )-250(31)]TJ /TT0 1 Tf -13.017 -1.25 Td (_POSIX_PRIORITY_SCHEDULING)Tj /T1_1 1 Tf 16.017 0 Td [(constant, )-250(31)]TJ /TT0 1 Tf -16.017 -1.25 Td (_POSIX_RAW_SOCKETS)Tj /T1_1 1 Tf 11.217 0 Td [(constant, )-250(31)]TJ /TT0 1 Tf -11.217 -1.25 Td (_POSIX_READER_WRITER_LOCKS)Tj /T1_1 1 Tf 16.017 0 Td [(constant, )-250(55,)]TJ -13.317 -1.25 Td (57)Tj /TT0 1 Tf -2.7 -1.25 Td (_POSIX_REALTIME_SIGNALS)Tj /T1_1 1 Tf 14.217 0 Td [(constant, )-250(55,)-250(57)]TJ /TT0 1 Tf -14.217 -1.25 Td (_POSIX_RE_DUP_MAX)Tj /T1_1 1 Tf 10.617 0 Td [(constant, )-250(39)]TJ /TT0 1 Tf -10.617 -1.25 Td (_POSIX_RTSIG_MAX)Tj /T1_1 1 Tf 10.017 0 Td [(constant, )-250(39)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (40)Tj /TT0 1 Tf -16.163 -1.25 Td (_POSIX_SAVED_IDS)Tj /T1_1 1 Tf 10.017 0 Td [(constant, )-250(57,)-250(98, 256, 337)]TJ /TT0 1 Tf -10.017 -1.25 Td (_POSIX_SEMAPHORES)Tj /T1_1 1 Tf 10.617 0 Td [(constant, )-250(55,)-250(57)]TJ /TT0 1 Tf -10.617 -1.25 Td (_POSIX_SEM_NSEMS_MAX)Tj /T1_1 1 Tf 12.417 0 Td [(constant, )-250(39)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (40)Tj /TT0 1 Tf -18.563 -1.25 Td (_POSIX_SEM_VALUE_MAX)Tj /T1_1 1 Tf 12.417 0 Td [(constant, )-250(39)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (40)Tj /TT0 1 Tf -18.563 -1.25 Td (_POSIX_SHARED_MEMORY_OBJECTS)Tj /T1_1 1 Tf 17.217 0 Td [(constant, )-250(31)]TJ /TT0 1 Tf -17.217 -1.25 Td (_POSIX_SHELL)Tj /T1_1 1 Tf 7.617 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -7.617 -1.25 Td (_POSIX_SIGQUEUE_MAX)Tj /T1_1 1 Tf 11.817 0 Td [(constant, )-250(39)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (40)Tj /TT0 1 Tf 8.037 65 Td (_POSIX_SOURCE)Tj /T1_1 1 Tf 8.217 0 Td [(constant, )-250(57)]TJ /TT0 1 Tf -8.217 -1.25 Td (_POSIX_SPAWN)Tj /T1_1 1 Tf 7.617 0 Td [(constant, )-250(31)]TJ /TT0 1 Tf -7.617 -1.25 Td (posix_spawn)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -7.017 -1.25 Td (posix_spawnp)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -7.617 -1.25 Td (_POSIX_SPIN_LOCKS)Tj /T1_1 1 Tf 10.617 0 Td [(constant, )-250(55,)-250(57)]TJ /TT0 1 Tf -10.617 -1.25 Td (_POSIX_SPORADIC_SERVER)Tj /T1_1 1 Tf 13.617 0 Td [(constant, )-250(31)]TJ /TT0 1 Tf -13.617 -1.25 Td (_POSIX_SSIZE_MAX)Tj /T1_1 1 Tf 10.017 0 Td [(constant, )-250(39)]TJ /TT0 1 Tf -10.017 -1.25 Td (_POSIX_STREAM_MAX)Tj /T1_1 1 Tf 10.617 0 Td [(constant, )-250(39)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (40)Tj /TT0 1 Tf -16.763 -1.25 Td (_POSIX_SYMLINK_MAX)Tj /T1_1 1 Tf 11.217 0 Td [(constant, )-250(39)]TJ /TT0 1 Tf -11.217 -1.25 Td (_POSIX_SYMLOOP_MAX)Tj /T1_1 1 Tf 11.217 0 Td [(constant, )-250(39)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (40)Tj /TT0 1 Tf -17.363 -1.25 Td (_POSIX_SYNCHRONIZED_IO)Tj /T1_1 1 Tf 13.617 0 Td [(constant, )-250(31)]TJ /TT0 1 Tf -13.617 -1.25 Td (_POSIX_SYNC_IO)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(55)]TJ /TT0 1 Tf -8.817 -1.25 Td (_POSIX_THREAD_ATTR_STACKADDR)Tj /T1_1 1 Tf 17.217 0 Td (constant,)Tj -14.517 -1.25 Td (31, 429)Tj /TT0 1 Tf -2.7 -1.25 Td (_POSIX_THREAD_ATTR_STACKSIZE)Tj /T1_1 1 Tf 17.217 0 Td (constant,)Tj -14.517 -1.25 Td (31, 429)Tj /TT0 1 Tf -2.7 -1.25 Td (_POSIX_THREAD_CPUTIME)Tj /T1_1 1 Tf 13.017 0 Td [(constant, )-250(31,)-250(189)]TJ /TT0 1 Tf -13.017 -1.25 Td (_POSIX_THREAD_PRIO_INHERIT)Tj /T1_1 1 Tf 16.017 0 Td [(constant, )-250(31)]TJ /TT0 1 Tf -16.017 -1.25 Td (_POSIX_THREAD_PRIO_PROTECT)Tj /T1_1 1 Tf 16.017 0 Td [(constant, )-250(31)]TJ /TT0 1 Tf -16.017 -1.25 Td (_POSIX_THREAD_PRIORITY_SCHEDULING)Tj /T1_1 1 Tf 2.7 -1.25 Td [(constant, )-250(31)]TJ /TT0 1 Tf -2.7 -1.25 Td (_POSIX_THREAD_PROCESS_SHARED)Tj /T1_1 1 Tf 17.217 0 Td (constant,)Tj -14.517 -1.25 Td (31, 431)Tj /TT0 1 Tf -2.7 -1.25 Td (_POSIX_THREAD_ROBUST_PRIO_INHERIT)Tj /T1_1 1 Tf 2.7 -1.25 Td [(constant, )-250(31)]TJ /TT0 1 Tf -2.7 -1.25 Td (_POSIX_THREAD_ROBUST_PRIO_PROTECT)Tj /T1_1 1 Tf 2.7 -1.25 Td [(constant, )-250(31)]TJ /TT0 1 Tf -2.7 -1.25 Td (_POSIX_THREADS)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(55,)-250(57, 384)]TJ /TT0 1 Tf -8.817 -1.25 Td (_POSIX_THREAD_SAFE_FUNCTIONS)Tj /T1_1 1 Tf 17.217 0 Td (constant,)Tj -14.517 -1.25 Td (55, 57, 442)Tj /TT0 1 Tf -2.7 -1.25 Td (_POSIX_THREAD_SPORADIC_SERVER)Tj /T1_1 1 Tf 17.817 0 Td (constant,)Tj -15.117 -1.25 Td (31)Tj /TT0 1 Tf -2.7 -1.25 Td (_POSIX_TIMEOUTS)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(55)]TJ /TT0 1 Tf -9.417 -1.25 Td (_POSIX_TIMER_MAX)Tj /T1_1 1 Tf 10.017 0 Td [(constant, )-250(39)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (40)Tj /TT0 1 Tf -16.163 -1.25 Td (_POSIX_TIMERS)Tj /T1_1 1 Tf 8.217 0 Td [(constant, )-250(55,)-250(57)]TJ /TT0 1 Tf -8.217 -1.25 Td (_POSIX_TIMESTAMP_RESOLUTION)Tj /T1_1 1 Tf 16.617 0 Td [(constant, )-250(44)]TJ /TT0 1 Tf -16.617 -1.25 Td (posix_trace_event)Tj /T1_1 1 Tf 10.617 0 Td [(function, )-250(331)]TJ /TT0 1 Tf -10.617 -1.25 Td (_POSIX_TTY_NAME_MAX)Tj /T1_1 1 Tf 11.817 0 Td [(constant, )-250(39)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (40)Tj /TT0 1 Tf -17.963 -1.25 Td (posix_typed_mem_open)Tj /T1_1 1 Tf 12.417 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -12.417 -1.25 Td (_POSIX_TYPED_MEMORY_OBJECTS)Tj /T1_1 1 Tf 16.617 0 Td [(constant, )-250(31)]TJ /TT0 1 Tf -16.617 -1.25 Td (_POSIX_TZNAME_MAX)Tj /T1_1 1 Tf 10.617 0 Td [(constant, )-250(39)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (40)Tj /TT0 1 Tf -16.763 -1.25 Td (_POSIX_V6_ILP32_OFF32)Tj /T1_1 1 Tf 13.017 0 Td [(constant, )-250(70)]TJ /TT0 1 Tf -13.017 -1.25 Td (_POSIX_V6_ILP32_OFFBIG)Tj /T1_1 1 Tf 13.617 0 Td [(constant, )-250(70)]TJ /TT0 1 Tf -13.617 -1.25 Td (_POSIX_V6_LP64_OFF64)Tj /T1_1 1 Tf 12.417 0 Td [(constant, )-250(70)]TJ /TT0 1 Tf -12.417 -1.25 Td (_POSIX_V6_LP64_OFFBIG)Tj /T1_1 1 Tf 13.017 0 Td [(constant, )-250(70)]TJ /TT0 1 Tf -13.017 -1.25 Td (_POSIX_V7_ILP32_OFF32)Tj /T1_1 1 Tf 13.017 0 Td [(constant, )-250(70)]TJ /TT0 1 Tf -13.017 -1.25 Td (_POSIX_V7_ILP32_OFFBIG)Tj /T1_1 1 Tf 13.617 0 Td [(constant, )-250(70)]TJ /TT0 1 Tf -13.617 -1.25 Td (_POSIX_V7_LP64_OFF64)Tj /T1_1 1 Tf 12.417 0 Td [(constant, )-250(70)]TJ /TT0 1 Tf -12.417 -1.25 Td (_POSIX_V7_LP64_OFFBIG)Tj /T1_1 1 Tf 13.017 0 Td [(constant, )-250(70)]TJ /TT0 1 Tf -13.017 -1.25 Td (_POSIX_VDISABLE)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(55,)-250(57, 678)]TJ 9.063 0.09 Td (\320)Tj 0.583 -0.09 Td (679)Tj /TT0 1 Tf -19.063 -1.25 Td (_POSIX_VERSION)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(57,)-250(188)]TJ -8.817 -1.25 Td [(PowerPC, )-250(xxi\320xxii,)-250(xxvii)]TJ /TT0 1 Tf 0 -1.25 TD (P_PGID)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(244)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47637 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (84)Tj /T1_1 1 Tf 3 0 Td [(File )-250(I/O)]TJ 39.741 0 Td [(Chapter )-250(3)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.16 Td [(The )-99(pr)18(ogram )-99(in )-99(Figur)]TJ 0.3495 Tc 9.836 0 Td (e3)Tj 0 Tc 1.329 0 Td (.1)Tj 0.3495 Tc 0.695 0 Td (1t)Tj 0 Tc 1.176 0 Td [(akes )-99(a )-99(single )-99(command)]TJ 10.58 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-99(ar)18(gument )-99(that )-99(speci\336es )-99(a )-99(\336le)]TJ -23.948 -1.2 Td [(descriptor and prints a description of selected \336le \337ags for that \ descriptor)74(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6282.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9989 0 0 8.9989 129.5844 618.6248 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(val;)]TJ 0 -1.783 TD (if \(argc != 2\))Tj 2.4 -1.189 Td (err_quit\("usage: a.out "\);)Tj -2.4 -1.783 Td (if \(\(val = fcntl\(atoi\(argv[1]\), F_GETFL, 0\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("fcntl error for fd %d", atoi\(argv[1]\)\);)Tj -2.4 -1.783 Td (switch \(val & O_ACCMODE\) {)Tj 0 -1.189 TD (case O_RDONLY:)Tj 2.4 -1.189 Td (printf\("read only"\);)Tj T* (break;)Tj -2.4 -1.783 Td (case O_WRONLY:)Tj 2.4 -1.189 Td (printf\("write only"\);)Tj T* (break;)Tj -2.4 -1.783 Td (case O_RDWR:)Tj 2.4 -1.189 Td (printf\("read write"\);)Tj 0 -1.189 TD (break;)Tj -2.4 -1.783 Td (default:)Tj 2.4 -1.189 Td (err_dump\("unknown access mode"\);)Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (if \(val & O_APPEND\))Tj 2.4 -1.189 Td (printf\(", append"\);)Tj -2.4 -1.189 Td (if \(val & O_NONBLOCK\))Tj 2.4 -1.189 Td (printf\(", nonblocking"\);)Tj -2.4 -1.189 Td (if \(val & O_SYNC\))Tj 2.4 -1.189 Td (printf\(", synchronous writes"\);)Tj -4.8 -1.783 Td (#if !defined\(_POSIX_C_SOURCE\) && defined\(O_FSYNC\) && \(O_FSYNC != O_\ SYNC\))Tj 2.4 -1.189 Td (if \(val & O_FSYNC\))Tj 2.4 -1.189 Td (printf\(", synchronous writes"\);)Tj -4.8 -1.189 Td (#endif)Tj 2.4 -1.783 Td (putchar\(\325\\n\325\);)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1859.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 235.4016 169.8674 Tm [(Figure 3.1)37(1)]TJ /T1_1 1 Tf 5.658 0 Td (Print \336le \337ags for speci\336ed descriptor)Tj 9.9982 0 0 9.9982 129.5768 145.8717 Tm [(Note )-58(that )-58(we )-58(use )-58(the )-58(featur)]TJ 0.3083 Tc 12.281 0 Td (et)Tj 0 Tc 1.113 0 Td [(est )-58(macr)18(o)]TJ /TT1 1 Tf 4.596 0 Td (_POSIX_C_SOURCE)Tj /T1_1 1 Tf 9.308 0 Td [(and )-58(conditionally )-58(compile)]TJ -27.298 -1.2 Td [(the )-278(\336le )-278(access )-278(\337ags )-278(that )-278(ar)]TJ 0.5285 Tc 12.819 0 Td (en)Tj 0 Tc 1.589 0 Td [(ot )-278(part )-278(of )-278(POSIX.1.)-778(The )-278(following )-278(script )-278(shows )-278(the)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47638 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (975)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm [(Partridge, C.,)-500(xxxii)]TJ 0 -1.25 TD (passing, \336le descriptor)Tj 0.5 Tc 9.941 0 Td (,5)Tj 0 Tc 1.25 0 Td (87, 642)Tj 3.083 0.09 Td (\320)Tj 0.583 -0.09 Td (652)Tj /TT0 1 Tf -14.858 -1.25 Td (passwd)Tj /T1_0 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(99,)-250(182, 720)]TJ /TT0 1 Tf -4.017 -1.25 Td (passwd)Tj /T1_0 1 Tf 4.017 0 Td [(str)8(uctur)18(e, )-250(177,)-250(180, 332, 809, 814, 918)]TJ -4.017 -1.25 Td [(passwor)18(d)]TJ 1.35 -1.25 Td [(\336le, )-250(177)]TJ 3.708 0.09 Td (\320)Tj 0.583 -0.09 Td (181)Tj -4.291 -1.25 Td [(implementation dif)18(fer)18(ences, )-250(184)]TJ 14.457 0.09 Td (\320)Tj 0.583 -0.09 Td (185)Tj -15.041 -1.25 Td (shadow)Tj 0.5 Tc 3.405 0 Td (,1)Tj 0 Tc 1.25 0 Td (81)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (182, 196, 918)Tj /TT0 1 Tf -7.671 -1.25 Td (PATH)Tj /T1_0 1 Tf 2.817 0 Td [(envir)18(onment variable,)-500(100, 21)55(1, 250)]TJ 15.794 0.09 Td (\320)Tj 0.583 -0.09 Td (251,)Tj -16.494 -1.25 Td (253, 260, 263, 265, 288)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (289)Tj /TT0 1 Tf -12.867 -1.25 Td (path_alloc)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(133,)-250(137, 896, 912)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(50)]TJ /TT0 1 Tf -1.35 -1.25 Td (pathconf)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(37,)-250(39, 41)]TJ 8.54 0.09 Td (\320)Tj 0.583 -0.09 Td (48, 50)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (51, 53)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (55,)Tj -17.973 -1.25 Td [(57, 65, 1)55(10, 121, 452, 537)]TJ -1.35 -1.25 Td [(de\336nition of,)-500(42)]TJ /TT0 1 Tf -1.35 -1.25 Td (PATH_MAX)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(38)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (39, 44, 49)Tj 4.083 0.09 Td (\320)Tj 0.583 -0.09 Td [(50, 142, 91)55(1)]TJ -16.03 -1.25 Td [(pathname, )-250(5)]TJ 1.35 -1.25 Td [(absolute, )-250(5,)-250(8, 43, 50, 64, 136, 141)]TJ 14.555 0.09 Td (\320)Tj 0.583 -0.09 Td (142, 260, 553,)Tj -13.789 -1.25 Td [(91)55(1)]TJ -0.018 Tc -1.35 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(lative, )-250(5,)-250(8, 43)]TJ 6.285 0.09 Td (\320)Tj 0.583 -0.09 Td (44, 50, 64)Tj 4.083 0.09 Td (\320)Tj 0.583 -0.09 Td (65, 135, 553)Tj -12.391 -1.25 Td [(tr)8(uncation, )-250(65)]TJ 6.42 0.09 Td (\320)Tj 0.583 -0.09 Td (66)Tj /TT0 1 Tf -8.353 -1.25 Td (pause)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(324,)-250(327)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (328, 331, 334, 338)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (343,)Tj -17.507 -1.25 Td [(356, 359, 365, 374, 451, 460, 71)55(1, 924, 930)]TJ 17.528 0.09 Td (\320)Tj 0.583 -0.09 Td (931)Tj -19.461 -1.25 Td [(de\336nition of,)-500(338)]TJ /TT0 1 Tf -1.35 -1.25 Td (_PC_2_SYMLINKS)Tj /T1_0 1 Tf 8.817 0 Td [(constant, )-250(55)]TJ /TT0 1 Tf -8.817 -1.25 Td (_PC_ASYNC_IO)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(55)]TJ /TT0 1 Tf -7.617 -1.25 Td (_PC_CHOWN_RESTRICTED)Tj /T1_0 1 Tf 12.417 0 Td [(constant, )-250(55)]TJ /TT0 1 Tf -12.417 -1.25 Td (_PC_FILESIZEBITS)Tj /T1_0 1 Tf 10.017 0 Td [(constant, )-250(42,)-250(44)]TJ /TT0 1 Tf -10.017 -1.25 Td (PCFS)Tj /T1_0 1 Tf 2.817 0 Td [(\336le system,)-500(49, 57, 1)55(13)]TJ /TT0 1 Tf -2.817 -1.25 Td (pckt)Tj /T1_0 1 Tf 2.817 0 Td [(STREAMS module,)-500(716, 740)]TJ /TT0 1 Tf -2.817 -1.25 Td (_PC_LINK_MAX)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(42,)-250(44)]TJ /TT0 1 Tf -7.617 -1.25 Td (pclose)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(267,)-250(452, 541)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (548, 616, 622,)Tj -11.94 -1.25 Td (935)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (937)Tj -3.517 -1.25 Td [(de\336nition of,)-500(541, 545)]TJ /TT0 1 Tf -1.35 -1.25 Td (_PC_MAX_CANON)Tj /T1_0 1 Tf 8.217 0 Td [(constant, )-250(42,)-250(44, 47)]TJ /TT0 1 Tf -8.217 -1.25 Td (_PC_MAX_INPUT)Tj /T1_0 1 Tf 8.217 0 Td [(constant, )-250(42,)-250(44)]TJ /TT0 1 Tf -8.217 -1.25 Td (_PC_NAME_MAX)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(42,)-250(44)]TJ /TT0 1 Tf -7.617 -1.25 Td (_PC_NO_TRUNC)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(55,)-250(57)]TJ /TT0 1 Tf -7.617 -1.25 Td (_PC_PATH_MAX)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(43)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (44, 51)Tj /TT0 1 Tf -13.763 -1.25 Td (_PC_PIPE_BUF)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(44)]TJ /TT0 1 Tf -7.617 -1.25 Td (_PC_PRIO_IO)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(55)]TJ /TT0 1 Tf -7.017 -1.25 Td (_PC_SYMLINK_MAX)Tj /T1_0 1 Tf 9.417 0 Td [(constant, )-250(44)]TJ /TT0 1 Tf -9.417 -1.25 Td (_PC_SYNC_IO)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(55)]TJ /TT0 1 Tf -7.017 -1.25 Td (_PC_TIMESTAMP_RESOLUTION)Tj /T1_0 1 Tf 14.817 0 Td [(constant, )-250(42,)-250(44)]TJ /TT0 1 Tf -14.817 -1.25 Td (_PC_VDISABLE)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(54)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (55, 679)Tj /TT0 1 Tf -13.763 -1.25 Td (PENDIN)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(676,)-250(690)]TJ -4.017 -1.25 Td [(Pentium, )-250(xxii,)-250(xxvii)]TJ T* [(permissions, \336le access,)-500(99)]TJ 12.013 0.09 Td (\320)Tj 0.583 -0.09 Td (101, 140)Tj /TT0 1 Tf -12.597 -1.25 Td (perror)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(15)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (16, 24, 334, 379, 452, 600, 905)Tj -8.79 -1.25 Td [(de\336nition of,)-500(15)]TJ /TT0 1 Tf -1.35 -1.25 Td (pgrp)Tj /T1_0 1 Tf 2.817 0 Td [(str)8(uctur)18(e, )-250(31)55(1)]TJ 6.247 0.09 Td (\320)Tj 0.583 -0.09 Td (312)Tj -9.647 -1.25 Td (PID,)Tj /T1_2 1 Tf 2.465 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td [(pr)18(ocess ID)]TJ /TT0 1 Tf -3.882 -1.25 Td (pid_t)Tj /T1_0 1 Tf 3.417 0 Td (data type,)Tj -0.055 Tc 4.899 0 Td (11)Tj 0.25 Tc 0.945 0 Td (,5)Tj 0 Tc 1 0 Td (9, 293, 384)Tj 15.739 65 Td [(Pike, R.,)-500(229, 950, 952)]TJ /TT0 1 Tf T* (pipe)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(125,)-250(148, 331, 535, 537)]TJ 14.04 0.09 Td (\320)Tj 0.583 -0.09 Td (538, 540,)Tj -14.74 -1.25 Td (544, 546, 550, 565, 630, 934)Tj -1.35 -1.25 Td [(de\336nition of,)-500(535)]TJ /TT0 1 Tf -1.35 -1.25 Td (PIPE_BUF)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(39,)-250(44, 49, 532, 537, 554)]TJ 14.563 0.09 Td (\320)Tj 0.583 -0.09 Td (555,)Tj -17.663 -1.25 Td (935)Tj -2.7 -1.25 Td [(pipes, )-250(534)]TJ 4.729 0.09 Td (\320)Tj 0.583 -0.09 Td (541)Tj -3.963 -1.25 Td [(full-duplex, )-250(534)]TJ T* [(half-duplex, )-250(534)]TJ T* (mounted STREAMS)Tj 8.946 0.09 Td (-)Tj 0.333 -0.09 Td [(based, )-250(534)]TJ -9.279 -1.25 Td [(named full-duplex,)-500(534)]TJ T* [(timing full-duplex,)-500(565)]TJ -1.35 -1.25 Td (Pippenger)Tj 0.25 Tc 4.514 0 Td (,N)Tj 0 Tc 1.331 0 Td [(., )-250(744,)-250(750, 949)]TJ -5.845 -1.25 Td [(Plan 9 operating system,)-500(229, 952)]TJ T* (Plauger)Tj 0.25 Tc 3.354 0 Td [(,P)379(.J)]TJ 0 Tc 1.808 0 Td [(., )-250(26,)-250(164, 323, 952)]TJ -5.162 -1.25 Td (pointer)Tj 0.25 Tc 3.146 0 Td (,g)Tj 0 Tc 1.056 0 Td [(eneric, )-250(71,)-250(208)]TJ /TT0 1 Tf -4.202 -1.25 Td (poll)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(319,)-250(330)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (331, 343, 451, 481,)Tj -8.74 -1.25 Td (501)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (502, 506)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (509, 531)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (532, 560, 586, 588,)Tj -10.5 -1.25 Td (592, 608)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (609, 627, 631)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (632, 659, 664,)Tj -10.333 -1.25 Td (666)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (668, 718, 732, 742, 933)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (934, 936)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (937, 942)Tj -17.849 -1.25 Td [(de\336nition of,)-500(506)]TJ /TT0 1 Tf -1.35 -1.25 Td (POLLERR)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(508)]TJ /TT0 1 Tf -4.617 -1.25 Td (pollfd)Tj /T1_0 1 Tf 4.017 0 Td [(str)8(uctur)18(e, )-250(507,)-250(632, 666, 668, 934, 941)]TJ /TT0 1 Tf -4.017 -1.25 Td ()Tj /T1_0 1 Tf 5.217 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9, 507)Tj /TT0 1 Tf -9.439 -1.25 Td (POLLHUP)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(508,)-250(667)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (668, 936)Tj /TT0 1 Tf -13.263 -1.25 Td (POLLIN)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(508,)-250(632, 666)]TJ 10.063 0.09 Td (\320)Tj 0.583 -0.09 Td (668, 936, 941)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (942)Tj -20.83 -1.25 Td [(polling, )-250(246,)-250(484, 501)]TJ /TT0 1 Tf T* (POLLNVAL)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(508)]TJ /TT0 1 Tf -5.217 -1.25 Td (POLLOUT)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(508)]TJ /TT0 1 Tf -4.617 -1.25 Td (POLLPRI)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(508)]TJ /TT0 1 Tf -4.617 -1.25 Td (POLLRDBAND)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(508)]TJ /TT0 1 Tf -6.417 -1.25 Td (POLLRDNORM)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(508)]TJ /TT0 1 Tf -6.417 -1.25 Td (POLLWRBAND)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(508)]TJ /TT0 1 Tf -6.417 -1.25 Td (POLLWRNORM)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(508)]TJ /TT0 1 Tf -6.417 -1.25 Td (popen)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(23,)-250(242, 249, 267, 452, 541)]TJ 15.54 0.09 Td (\320)Tj 0.583 -0.09 Td (548,)Tj -16.84 -1.25 Td (587)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (588, 615, 619, 622)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (623, 935)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (937)Tj -15.85 -1.25 Td [(de\336nition of,)-500(541, 543)]TJ -1.35 -1.25 Td (port number)Tj 0.5 Tc 5.539 0 Td (,5)Tj 0 Tc 1.25 0 Td (93, 595)Tj 3.083 0.09 Td (\320)Tj 0.583 -0.09 Td (596, 598)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (601, 605)Tj -14.622 -1.25 Td [(Portable Operating System Envir)18(onment for)]TJ 2.7 -1.25 Td [(Computer Envir)18(onments, IEEE,)]TJ /T1_2 1 Tf 14.46 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td (POSIX)Tj -18.577 -1.25 Td (POSIX)Tj 3.169 0.04 Td (\()Tj 0.333 -0.04 Td [(Portable Operating System Envir)18(onment)]TJ -0.802 -1.25 Td [(for Computer Envir)18(onments, IEEE)]TJ 15.234 0.04 Td (\))Tj 0.5 Tc 0.333 -0.04 Td (,x)Tj 0 Tc 1.266 0 Td (ix,)Tj -16.833 -1.25 Td (xxxi, 26)Tj 3.422 0.09 Td (\320)Tj 0.583 -0.09 Td (30, 33, 265, 561, 674)Tj -6.706 -1.25 Td [(POSIX semaphor)18(es, )-250(579)]TJ 10.797 0.09 Td (\320)Tj 0.583 -0.09 Td (584)Tj -11.38 -1.25 Td [(POSIX.1, )-250(xxvi,)-250(xxxi, 4, 9, 27, 38, 41, 50, 53, 57)]TJ 19.729 0.09 Td (\320)Tj 0.583 -0.09 Td (58,)Tj -17.612 -1.25 Td (88, 257, 262, 329, 367)Tj 9.083 0.09 Td (\320)Tj 0.583 -0.09 Td (368, 384, 533, 546, 553,)Tj -9.666 -1.25 Td (589, 617, 744, 950)Tj -2.7 -1.25 Td [(POSIX.2, )-250(262)]TJ /TT0 1 Tf T* (_POSIX2_SYMLINKS)Tj /T1_0 1 Tf 10.017 0 Td [(constant, )-250(55)]TJ /TT0 1 Tf -10.017 -1.25 Td (_POSIX_ADVISORY_INFO)Tj /T1_0 1 Tf 12.417 0 Td [(constant, )-250(31)]TJ /TT0 1 Tf -12.417 -1.25 Td (_POSIX_AIO_LISTIO_MAX)Tj /T1_0 1 Tf 13.017 0 Td [(constant, )-250(515)]TJ /TT0 1 Tf -13.017 -1.25 Td (_POSIX_AIO_MAX)Tj /T1_0 1 Tf 8.817 0 Td [(constant, )-250(515)]TJ /TT0 1 Tf -8.817 -1.25 Td (_POSIX_ARG_MAX)Tj /T1_0 1 Tf 8.817 0 Td [(constant, )-250(39)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (40)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47639 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.5)]TJ 35.16 0 Td [(Asynchr)18(onous )-250(I/O)]TJ /T1_1 1 Tf 10.673 0 Td (515)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(If )-93(an )-93(asynchr)18(onous )-93(I/O )-93(operation )-93(is )-93(successfully )-93(canceled, )-93(calling )-93(the)]TJ /TT0 1 Tf 31.8 0 Td (aio_error)Tj /T1_0 1 Tf -33.6 -1.2 Td [(function )-110(on )-110(the )-110(corr)18(esponding )-110(AIO )-110(contr)17(ol )-110(block )-110(will )-110(r)18(eturn )-110(the )-110(err)17(or)]TJ /TT0 1 Tf 32.07 0 Td (ECANCELED)Tj /T1_0 1 Tf 0.6103 Tc (.I)Tj 0 Tc 6.597 0 Td (f)Tj -38.667 -1.2 Td [(the )-21(operation )-21(can\325t )-21(be )-21(canceled, )-21(then )-21(the )-21(corr)18(esponding )-21(AIO )-21(contr)18(ol )-21(block )-21(is )-21(unchanged)]TJ 0 -1.2 TD (by the call to)Tj /TT0 1 Tf 5.894 0 Td (aio_cancel)Tj /T1_0 1 Tf (.)Tj -4.094 -1.2 Td [(One )-17(additional )-17(function )-17(is )-17(included )-17(with )-17(the )-17(asynchr)18(onous )-17(I/O )-17(interfaces, )-17(although)]TJ -1.8 -1.2 Td [(it )-89(can )-89(be )-89(used )-89(in )-89(either )-89(a )-89(synchr)18(onous )-89(or )-89(an )-89(asynchr)18(onous )-89(manner)]TJ 0.589 Tc 30.148 0 Td (.T)Tj 0 Tc 1.452 0 Td (he)Tj /TT0 1 Tf 1.4 0 Td (lio_listio)Tj /T1_0 1 Tf -33 -1.2 Td [(function submits a set of I/O r)18(equests described by a list of AIO contr)18(ol blocks.)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5907 579.0653 Tm (#include )Tj 0 -2.021 TD (int lio_listio\(int)Tj /T1_2 1 Tf 11.4 0 Td (mode)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.911 0 Td (truct aiocb *restrict const)Tj /T1_2 1 Tf 16.8 0 Td (list)Tj /TT0 1 Tf ([restrict],)Tj -23.111 -1.189 Td (int)Tj /T1_2 1 Tf 2.4 0 Td (nent)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.634 0 Td (truct sigevent *restrict)Tj /T1_2 1 Tf 15 0 Td (sigev)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -3.183 -2.021 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5275.25 cm 0 0 m 0 606 l 3900 606 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 512.7585 Tm (The)Tj /T1_2 1 Tf 1.927 0 Td (mode)Tj /T1_0 1 Tf 2.364 0 Td [(ar)18(gument )-3(determines )-3(whether )-3(the )-3(I/O )-3(is )-3(tr)6(uly )-3(asynchr)18(onous. )-253(When)-254(it )-3(is )-3(set )-3(to)]TJ /TT0 1 Tf -4.292 -1.2 Td (LIO_WAIT)Tj /T1_0 1 Tf 0.5153 Tc (,t)Tj 0 Tc 5.891 0 Td (he)Tj /TT0 1 Tf 1.576 0 Td (lio_listio)Tj /T1_0 1 Tf 6.515 0 Td [(function )-265(won\325t )-265(r)18(eturn )-265(until )-265(all )-265(of )-265(the )-265(I/O )-265(operations)]TJ -13.983 -1.2 Td [(speci\336ed )-34(by )-34(the )-34(list )-34(ar)]TJ 0.2838 Tc 9.774 0 Td (ec)Tj 0 Tc 1.207 0 Td [(omplete. )-284(In)-284(this )-34(case, )-34(the)]TJ /T1_2 1 Tf 11.551 0 Td (sigev)Tj /T1_0 1 Tf 2.34 0 Td [(ar)18(gument )-34(is )-34(ignor)18(ed. )-284(When)-284(the)]TJ /T1_2 1 Tf -24.871 -1.2 Td (mode)Tj /T1_0 1 Tf 2.367 0 Td [(ar)18(gument )-6(is )-6(set )-6(to)]TJ /TT0 1 Tf 8.144 0 Td (LIO_NOWAIT)Tj /T1_0 1 Tf 0.2555 Tc (,t)Tj 0 Tc 6.831 0 Td [(hen )-5(the)]TJ /TT0 1 Tf 3.541 0 Td (lio_listio)Tj /T1_0 1 Tf 6.256 0 Td [(function )-5(r)18(eturns )-5(as )-5(soon )-5(as)]TJ -27.139 -1.2 Td [(the )-139(I/O )-139(r)18(equests )-139(ar)]TJ 0.3891 Tc 8.832 0 Td (eq)Tj 0 Tc 1.428 0 Td [(ueued. )-389(The)-389(pr)18(ocess )-139(is )-139(noti\336ed )-139(asynchr)18(onously )-139(when )-139(all )-139(of )-139(the)]TJ -10.26 -1.2 Td [(I/O )-150(operations )-150(complete, )-150(as )-150(speci\336ed )-150(by )-150(the)]TJ /T1_2 1 Tf 20.869 0 Td (sigev)Tj /T1_0 1 Tf 2.456 0 Td [(ar)18(gument. )-400(If)-399(we )-149(don\325t )-149(want )-149(to )-149(be)]TJ -23.325 -1.2 Td [(noti\336ed, )-338(we )-338(can )-338(set)]TJ /T1_2 1 Tf 10.111 0 Td (sigev)Tj /T1_0 1 Tf 2.644 0 Td (to)Tj /TT0 1 Tf 1.46 0 Td (NULL)Tj /T1_0 1 Tf 0.8383 Tc (.N)Tj 0 Tc 4.319 0 Td [(ote )-338(that )-338(the )-338(individual )-338(AIO )-338(contr)17(ol )-338(blocks)]TJ -18.535 -1.2 Td [(themselves )-174(may )-174(also )-174(enable )-174(asynchr)17(onous )-174(noti\336cation )-174(when )-174(an )-174(individual )-174(operation)]TJ 0 -1.2 TD [(completes. )-274(The)-273(asynchr)18(onous )-24(noti\336cation )-24(speci\336ed )-24(by )-24(the)]TJ /T1_2 1 Tf 26.197 0 Td (sigev)Tj /T1_0 1 Tf 2.33 0 Td [(ar)18(gument )-24(is )-24(in )-24(addition)]TJ -28.527 -1.2 Td (to these, and is sent only when all of the I/O operations complete.)Tj 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 2.296 0 Td (list)Tj /T1_0 1 Tf 1.9 0 Td [(ar)18(gument )-372(points )-372(to )-372(a )-372(list )-372(of )-372(AIO )-372(contr)18(ol )-372(blocks )-372(specifying )-372(the )-372(I/O)]TJ -5.997 -1.2 Td [(operations )-3(to )-3(perform.)-504(The)]TJ /T1_2 1 Tf 12.382 0 Td (nent)Tj /T1_0 1 Tf 2.088 0 Td [(ar)18(gument )-4(speci\336es )-4(the )-4(number )-4(of )-4(elements )-4(in )-4(the )-4(array)114(.)]TJ -14.47 -1.2 Td [(The list of AIO contr)18(ol blocks can contain)]TJ /TT0 1 Tf 18.509 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td (pointers; these entries ar)Tj 0.25 Tc 10.787 0 Td (ei)Tj 0 Tc 1.02 0 Td [(gnor)18(ed.)]TJ -31.166 -1.2 Td [(In )-354(each )-354(AIO )-354(contr)18(ol )-354(block, )-354(the)]TJ /TT0 1 Tf 15.587 0 Td (aio_lio_opcode)Tj /T1_0 1 Tf 9.004 0 Td [(\336eld )-354(speci\336es )-354(whether )-354(the)]TJ -26.391 -1.2 Td [(operation )-64(is )-64(a )-64(r)18(ead )-64(\()]TJ /TT0 1 Tf (LIO_READ)Tj /T1_0 1 Tf [(\), )-64(a )-64(write )-64(\()]TJ /TT0 1 Tf (LIO_WRITE)Tj /T1_0 1 Tf [(\), )-64(or )-64(a )-64(no-op )-64(\()]TJ /TT0 1 Tf (LIO_NOP)Tj /T1_0 1 Tf [(\), )-64(which )-64(is)]TJ 0 -1.2 Td [(ignor)18(ed. )-269(A)]TJ -0.018 Tc 5.258 0 Td (re)Tj 0 Tc 0.856 0 Td [(ad )-19(is )-19(tr)18(eated )-19(as )-19(if )-19(the )-19(corr)18(esponding )-19(AIO )-19(contr)18(ol )-19(block )-19(had )-19(been )-19(passed )-19(to)]TJ -6.114 -1.2 Td (the)Tj /TT0 1 Tf 1.799 0 Td (aio_read)Tj /T1_0 1 Tf 5.213 0 Td [(function. )-412(Similarly)]TJ 0.4125 Tc 8.531 0 Td (,aw)Tj 0 Tc 2.409 0 Td [(rite )-162(is )-162(tr)18(eated )-162(as )-162(if )-162(the )-162(AIO )-162(contr)18(ol )-162(block )-162(had)]TJ -17.952 -1.2 Td (been passed to)Tj /TT0 1 Tf 6.754 0 Td (aio_write)Tj /T1_0 1 Tf (.)Tj -4.954 -1.2 Td [(Implementations )-255(can )-255(limit )-255(the )-255(number )-255(of )-255(asynchr)18(onous )-255(I/O )-255(operations )-255(we )-255(ar)21(e)]TJ -1.8 -1.2 Td [(allowed )-26(to )-26(have )-26(outstanding.)-528(The )-27(limits )-27(ar)]TJ 0.2766 Tc 19.113 0 Td (er)Tj 0 Tc 1.143 0 Td [(untime )-27(invariants, )-27(and )-27(ar)]TJ 0.2766 Tc 11.27 0 Td (es)Tj 0 Tc 1.18 0 Td [(ummarized )-27(in)]TJ -32.705 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (4.19.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1370.25 2528.25 cm 0 0 m 3752 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 173.3968 244.7759 Tm (Name )Tj 14.22 0 Td (Description)Tj 14.11 0 Td (Minimum acceptable value)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1370.25 2408.25 cm 0 0 m 3752 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1370.25 2388.25 cm 0 0 m 3752 0 l S Q Q BT /TT0 1 Tf 7.9981 0 0 7.9981 140.9662 230.7646 Tm (AIO_LISTIO_MAX )Tj 30.9 0 Td (_POSIX_AIO_LISTIO_MAX)Tj 13.2 0.04 Td (\()Tj 0.6 -0.04 Td (2)Tj 0.6 0.04 Td (\))Tj /T1_0 1 Tf -33 -0.04 Td (maximum number of I/O operations)Tj 2.25 -1.25 Td (in a single list I/O call)Tj /TT0 1 Tf -14.55 -1.25 Td (AIO_MAX )Tj 30.9 0 Td (_POSIX_AIO_MAX)Tj 9 0.04 Td (\()Tj 0.6 -0.04 Td (1)Tj 0.6 0.04 Td (\))Tj /T1_0 1 Tf -28.8 -0.04 Td (maximum number of outstanding)Tj 2.25 -1.25 Td [(asynchr)18(onous I/O operations)]TJ /TT0 1 Tf -14.55 -1.25 Td (AIO_PRIO_DELTA_MAX)Tj /T1_0 1 Tf 30.9 0 Td (0)Tj -18.6 0 Td [(maximum amount by which a pr)18(ocess)]TJ 2.25 -1.25 Td [(can decr)18(ease its asynchr)18(onous)]TJ 0 -1.25 TD (I/O priority level)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1370.25 1668.25 cm 0 0 m 3752 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 1668.25 cm 0 0 m 0 860 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2334.25 1668.25 cm 0 0 m 0 860 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5122.25 1668.25 cm 0 0 m 0 860 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1370.25 1668.25 cm 0 0 m 0 860 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 200.6278 148.7754 Tm (Figure 14.19)Tj /T1_0 1 Tf 6.195 0 Td [(POSIX.1 r)8(untime invariant values for asynchr)18(onous I/O)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47640 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(16.3)]TJ 38.7 0 Td [(Addr)18(essing)]TJ /T1_1 1 Tf 7.133 0 Td (601)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(The )-103(socket )-103(addr)18(ess )-103(\()]TJ /T1_2 1 Tf (addr)Tj /T1_0 1 Tf [(\))-353(is)-353(translated )-103(into )-103(a )-103(host )-103(name )-103(and )-103(a )-103(service )-103(name.)-601(If)]TJ /T1_2 1 Tf 36.266 0 Td (host)Tj /T1_0 1 Tf 2.019 0 Td (is)Tj -38.285 -1.2 Td [(non-null, )-176(it )-176(points )-176(to )-176(a )-176(buf)20(fer)]TJ /T1_2 1 Tf 14.051 0 Td (hostlen)Tj /T1_0 1 Tf 3.315 0 Td [(bytes )-176(long )-176(that )-176(will )-176(be )-176(used )-176(to )-176(r)18(eturn )-176(the )-176(host)]TJ -17.366 -1.2 Td [(name. )-290(Similarly)]TJ 0.2901 Tc 7.146 0 Td (,i)Tj 0 Tc 0.831 0 Td (f)Tj /T1_2 1 Tf 0.623 0 Td (service)Tj /T1_0 1 Tf 3.031 0 Td [(is )-40(non-null, )-40(it )-40(points )-40(to )-40(a )-40(buf)17(fer)]TJ /T1_2 1 Tf 14.243 0 Td (servlen)Tj /T1_0 1 Tf 3.18 0 Td [(bytes )-40(long )-40(that )-40(will )-40(be)]TJ -29.054 -1.2 Td [(used to r)18(eturn the service name.)]TJ 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 2.28 0 Td (\337ags)Tj /T1_0 1 Tf 2.484 0 Td [(ar)18(gument )-356(gives )-356(us )-356(some )-356(contr)17(ol )-356(over )-356(how )-356(the )-356(translation )-356(is )-356(done.)]TJ -6.565 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (6.8 summarizes the supported \337ags.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1526.25 5890.25 cm 0 0 m 3440 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 184.9658 580.9303 Tm (Flag )Tj 20.125 0 Td (Description)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1526.25 5770.25 cm 0 0 m 3440 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1526.25 5750.25 cm 0 0 m 3440 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 156.5718 566.8979 Tm (NI_DGRAM)Tj /T1_0 1 Tf 10.5 0 Td [(The service is datagram based instead of str)18(eam based.)]TJ /TT0 1 Tf -10.5 -1.25 Td (NI_NAMEREQD)Tj /T1_0 1 Tf 10.5 0 Td [(If the host name can\325t be found, tr)18(eat this as an err)18(or)74(.)]TJ /TT0 1 Tf -10.5 -1.25 Td (NI_NOFQDN)Tj /T1_0 1 Tf 10.5 0 Td (Return only the node name portion of the fully quali\336ed domain name)Tj 1.35 -1.25 Td (for local hosts.)Tj /TT0 1 Tf -11.85 -1.25 Td (NI_NUMERICHOST)Tj /T1_0 1 Tf 10.5 0 Td [(Return the numeric form of the host addr)18(ess instead of the name.)]TJ /TT0 1 Tf -10.5 -1.25 Td (NI_NUMERICSCOPE)Tj /T1_0 1 Tf 10.5 0 Td [(For IPv6, r)18(eturn the numeric form of the scope ID instead of the name.)]TJ /TT0 1 Tf -10.5 -1.25 Td (NI_NUMERICSERV)Tj /T1_0 1 Tf 10.5 0 Td [(Return the numeric form of the service addr)18(ess \(i.e., the port number\))]TJ 1.35 -1.25 Td (instead of the name.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1526.25 4930.25 cm 0 0 m 3440 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2346.25 4930.25 cm 0 0 m 0 960 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4966.25 4930.25 cm 0 0 m 0 960 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1526.25 4930.25 cm 0 0 m 0 960 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 236.5832 474.886 Tm (Figure 16.8)Tj /T1_0 1 Tf 5.695 0 Td (Flags for the)Tj /TT0 1 Tf 5.738 0 Td (getnameinfo)Tj /T1_0 1 Tf 6.85 0 Td (function)Tj /TT1 1 Tf 9.9976 0 0 9.9976 93.5776 446.0929 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.16 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (6.9 illustrates the use of the)Tj /TT0 1 Tf 12.259 0 Td (getaddrinfo)Tj /T1_0 1 Tf 6.85 0 Td (function.)Tj ET q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4174.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9973 0 0 8.9973 129.5611 407.7766 Tm (#include "apue.h")Tj 0 -1.189 TD (#if defined\(SOLARIS\))Tj T* (#include )Tj T* (#endif)Tj T* (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#if defined\(BSD\))Tj T* (#include )Tj T* (#include )Tj T* (#endif)Tj 0 -2.14 TD (void)Tj 0 -1.189 TD (print_family\(struct addrinfo *aip\))Tj T* ({)Tj 2.4 -1.189 Td (printf\(" family "\);)Tj T* (switch \(aip->ai_family\) {)Tj T* (case AF_INET:)Tj 2.4 -1.189 Td (printf\("inet"\);)Tj 0 -1.189 TD (break;)Tj -2.4 -1.189 Td (case AF_INET6:)Tj 2.4 -1.189 Td (printf\("inet6"\);)Tj 0 -1.189 TD (break;)Tj -2.4 -1.189 Td (case AF_UNIX:)Tj 2.4 -1.189 Td (printf\("unix"\);)Tj T* (break;)Tj -2.4 -1.189 Td (case AF_UNSPEC:)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47641 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(15.3)]TJ /TT0 1 Tf 29.686 0 Td (popen)Tj /T1_0 1 Tf 3.5 0 Td (and)Tj /TT0 1 Tf 2.193 0 Td (pclose)Tj /T1_0 1 Tf 4.1 0 Td (Functions)Tj /T1_1 1 Tf 6.354 0 Td (543)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (while \(fgets\(line, MAXLINE, fpin\) != NULL\) {)Tj 2.4 -1.189 Td (if \(fputs\(line, fpout\) == EOF\))Tj 2.4 -1.189 Td (err_sys\("fputs error to pipe"\);)Tj -4.8 -1.189 Td (})Tj 0 -1.189 TD (if \(ferror\(fpin\)\))Tj 2.4 -1.189 Td (err_sys\("fgets error"\);)Tj -2.4 -1.189 Td (if \(pclose\(fpout\) == -1\))Tj 2.4 -1.189 Td (err_sys\("pclose error"\);)Tj -2.4 -2.259 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5595.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 227.9246 543.5038 Tm [(Figure 15.1)37(1)]TJ /T1_0 1 Tf 6.158 0 Td [(Copy \336le to pager pr)18(ogram using)]TJ /TT0 1 Tf 15.004 0 Td (popen)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5845 519.5067 Tm (Using)Tj /TT0 1 Tf 2.881 0 Td (popen)Tj /T1_0 1 Tf -0.018 Tc 3.25 0 Td (re)Tj 0 Tc 0.856 0 Td (duces the amount of code we have to write.)Tj -5.187 -1.2 Td [(The )-133(shell )-133(command)]TJ /TT0 1 Tf 9.339 0 Td (${PAGER:-more})Tj /T1_0 1 Tf 8.783 0 Td [(says )-133(to )-133(use )-133(the )-133(value )-133(of )-133(the )-133(shell )-133(variable)]TJ /TT0 1 Tf -19.922 -1.2 Td (PAGER)Tj /T1_0 1 Tf 3.25 0 Td (if it is de\336ned and non-null; otherwise, use the string)Tj /TT0 1 Tf 23.649 0 Td (more)Tj /T1_0 1 Tf (.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 4955.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /TT1 1 Tf 9.9982 0 0 9.9982 93.5832 459.4863 Tm [(Example )195(\321)]TJ /TT2 1 Tf 5.28 0 Td (popen)Tj /TT1 1 Tf 3.278 0 Td (and)Tj /TT2 1 Tf 2.056 0 Td (pclose)Tj /TT1 1 Tf 3.878 0 Td (Functions)Tj /T1_0 1 Tf -10.892 -2.4 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.12 shows our version of)Tj /TT0 1 Tf 11.515 0 Td (popen)Tj /T1_0 1 Tf 3.25 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (pclose)Tj /T1_0 1 Tf (.)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4283.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9978 0 0 8.9978 129.5689 418.7675 Tm (#include "apue.h")Tj T* (#include )Tj T* (#include )Tj T* (#include )Tj 0 -2.259 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (ointer to array allocated at run-time.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td [(static pid_t)-2400(*childpid = NULL;)]TJ T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*F)Tj 0 Tc 1.8 0 Td (rom our open_max\(\), Figure 2.17.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td [(static int)-3600(maxfd;)]TJ T* (FILE *)Tj 0 -1.189 TD (popen\(const char *cmdstring, const char *type\))Tj T* ({)Tj 2.4 -1.189 Td [(int )-2400(i;)]TJ T* [(int )-2400(pfd[2];)]TJ 0 -1.189 TD [(pid_t )-1200(pid;)]TJ 0 -1.189 TD [(FILE )-1800(*fp;)]TJ 0 -2.259 TD (/* only allow "r" or "w" */)Tj 0 -1.189 TD (if \(\(type[0] != \325r\325 && type[0] != \325w\325\) || type[1] != 0\) \ {)Tj 2.4 -1.189 Td (errno = EINVAL;)Tj T* (return\(NULL\);)Tj -2.4 -1.189 Td (})Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47642 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.12)]TJ 36.516 0 Td [(Interpr)18(eter )-250(Files)]TJ /T1_1 1 Tf 9.317 0 Td (263)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (When)Tj /TT0 1 Tf 2.893 0 Td (/bin/awk)Tj /T1_0 1 Tf 5.05 0 Td (is executed, its command)Tj 11.142 0.09 Td (-)Tj 0.333 -0.09 Td [(line ar)18(guments ar)18(e)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5913 652.2609 Tm (/bin/awk -f /usr/local/bin/awkexample file1 FILENAME2 f3)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5924 634.2619 Tm [(The )-32(pathname )-32(of )-32(the )-32(interpr)18(eter )-32(\336le )-32(\()]TJ /TT0 1 Tf 16.525 0 Td (/usr/local/bin/awkexample)Tj /T1_0 1 Tf [(\))-282(is)-282(p)-1(assed )-32(to )-32(the)]TJ -16.525 -1.2 Td [(interpr)18(eter)]TJ 0.6414 Tc 4.656 0 Td (.T)Tj 0 Tc 1.504 0 Td [(he )-141(\336lename )-141(portion )-141(of )-141(this )-141(pathname )-141(\(what )-141(we )-141(typed )-141(to )-141(the )-141(shell\) )-141(isn\325t)]TJ -6.16 -1.2 Td [(adequate, )-75(because )-75(the )-75(interpr)17(eter )-76(\()]TJ /TT0 1 Tf (/bin/awk)Tj /T1_0 1 Tf 20.668 0 Td [(in )-76(this )-76(example\) )-76(can\325t )-76(be )-76(expected )-76(to )-76(use)]TJ -20.668 -1.2 Td (the)Tj /TT0 1 Tf 1.674 0 Td (PATH)Tj /T1_0 1 Tf 2.686 0 Td [(variable )-36(to )-36(locate )-36(\336les.)-536(When )-36(it )-36(r)18(eads )-36(the )-36(interpr)14(eter )-36(\336le,)]TJ /TT0 1 Tf 25.589 0 Td (awk)Tj /T1_0 1 Tf 2.086 0 Td [(ignor)18(es )-36(the )-36(\336rst)]TJ -32.035 -1.2 Td (line, since the pound sign is)Tj /TT0 1 Tf 12.511 0 Td (awk)Tj /T1_0 1 Tf [(\325s comment character)74(.)]TJ -0.092 Tc -10.711 -1.2 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td (an verify these command)Tj 11.19 0.09 Td (-)Tj 0.333 -0.09 Td [(line ar)18(guments with the following commands:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5916 557.5665 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (/bin/su)Tj /T1_2 1 Tf 22.8 0 Td (become superuser)Tj /TT0 1 Tf -24 -1.189 Td (Password:)Tj /T1_2 1 Tf 24 0 Td (enter superuser password)Tj /TT0 1 Tf -24 -1.189 Td (#)Tj /TT1 1 Tf 1.2 0 Td (mv /usr/bin/awk /usr/bin/awk.save)Tj /T1_2 1 Tf 22.8 0 Td [(save the original pr)18(ogram)]TJ /TT0 1 Tf -24 -1.189 Td (#)Tj /TT1 1 Tf 1.2 0 Td (cp /home/sar/bin/echoarg /usr/bin/awk)Tj /T1_2 1 Tf 22.8 0 Td [(and r)18(eplace it temporarily)]TJ /TT0 1 Tf -24 -1.189 Td (#)Tj /TT1 1 Tf 1.2 0 Td (suspend)Tj /T1_2 1 Tf 22.8 0 Td (suspend the superuser shell)Tj /TT0 1 Tf -24 -1.189 Td ([1] + Stopped)Tj 13.2 0 Td (/bin/su)Tj /T1_2 1 Tf 10.8 0 Td [(using job contr)18(ol)]TJ /TT0 1 Tf -24 -1.189 Td ($)Tj /TT1 1 Tf 1.2 0 Td (awkexample file1 FILENAME2 f3)Tj /TT0 1 Tf -1.2 -1.189 Td (argv[0]: /bin/awk)Tj 0 -1.189 TD (argv[1]: -f)Tj T* (argv[2]: /usr/local/bin/awkexample)Tj T* (argv[3]: file1)Tj T* (argv[4]: FILENAME2)Tj T* (argv[5]: f3)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (fg)Tj /T1_2 1 Tf -0.018 Tc 22.8 0 Td (re)Tj 0 Tc 0.76 0 Td [(sume superuser shell using job contr)18(ol)]TJ /TT0 1 Tf -24.76 -1.189 Td (/bin/su)Tj T* (#)Tj /TT1 1 Tf 1.2 0 Td (mv /usr/bin/awk.save /usr/bin/awk)Tj /T1_2 1 Tf -0.018 Tc 22.8 0 Td (re)Tj 0 Tc 0.76 0 Td (stor)Tj 0.25 Tc 1.537 0 Td (et)Tj 0 Tc 0.972 0 Td [(he original pr)18(ogram)]TJ /TT0 1 Tf -27.269 -1.189 Td (#)Tj /TT1 1 Tf 1.2 0 Td (exit)Tj /T1_2 1 Tf 22.8 0 Td (and exit the superuser shell)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 368.3779 Tm [(In )-48(this )-48(example, )-48(the)]TJ /TT0 1 Tf 9.121 0 Td (-f)Tj /T1_0 1 Tf 1.498 0 Td [(option )-48(for )-48(the )-48(interpr)17(eter )-48(is )-48(r)17(equir)18(ed. )-298(As)-299(we )-48(said, )-48(this )-48(tells)]TJ /TT0 1 Tf 26.581 0 Td (awk)Tj /T1_0 1 Tf -37.2 -1.2 Td [(wher)18(e)-371(to)-371(l)-1(ook )-121(for )-121(the)]TJ /TT0 1 Tf 10.081 0 Td (awk)Tj /T1_0 1 Tf 2.171 0 Td [(pr)18(ogram. )-371(If)-372(we )-121(r)18(emove )-121(the)]TJ /TT0 1 Tf 12.914 0 Td (-f)Tj /T1_0 1 Tf 1.571 0 Td [(option )-121(fr)18(om )-121(the )-121(interpr)17(eter)]TJ -26.738 -1.2 Td [(\336le, )-230(an )-230(err)18(or )-230(message )-230(usually )-230(r)18(esults )-230(when )-230(we )-230(try )-230(to )-230(r)6(un )-230(it.)-730(The )-230(exact )-230(text )-230(of )-230(the)]TJ 0 -1.2 TD [(message )-246(varies, )-246(depending )-246(on )-246(wher)]TJ 0.4961 Tc 16.825 0 Td (et)Tj 0 Tc 1.301 0 Td [(he )-246(interpr)18(eter )-246(\336le )-246(is )-246(stor)18(ed )-246(and )-246(whether )-246(the)]TJ -0.018 Tc -18.126 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(maining )-408(ar)18(guments )-408(r)18(epr)18(esent )-408(existing )-408(\336les.)-908(This )-408(is )-408(because )-408(the )-408(command)]TJ 36.168 0.09 Td (-)Tj 0.333 -0.09 Td (line)Tj -37.357 -1.2 Td [(ar)18(guments in this case ar)18(e)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 291.6825 Tm (/bin/awk /usr/local/bin/awkexample file1 FILENAME2 f3)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5923 273.6836 Tm (and)Tj /TT0 1 Tf 2.11 0 Td (awk)Tj /T1_0 1 Tf 2.217 0 Td [(is )-167(trying )-167(to )-167(interpr)18(et )-167(the )-167(string)]TJ /TT0 1 Tf 14.614 0 Td (/usr/local/bin/awkexample)Tj /T1_0 1 Tf 15.417 0 Td [(as )-167(an)]TJ /TT0 1 Tf 2.841 0 Td (awk)Tj /T1_0 1 Tf -37.2 -1.2 Td [(pr)18(ogram. )-325(If)-325(we )-75(couldn\325t )-75(pass )-75(at )-75(least )-75(a )-75(single )-75(optional )-75(ar)19(gument )-75(to )-75(the )-75(interpr)18(eter )-75(\()]TJ /TT0 1 Tf (-f)Tj /T1_0 1 Tf 0 -1.2 Td [(in this case\), these interpr)18(eter \336les would be usable only with the shells.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2497.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 147.5823 223.2732 Tm (Ar)Tj 0.3677 Tc 1.155 0 Td (ei)Tj 0 Tc 1.138 0 Td [(nterpr)18(eter )-118(\336les )-118(r)19(equir)18(ed? )-368(Not)]TJ -0.018 Tc 13.883 0 Td (re)Tj 0 Tc 0.856 0 Td (ally)Tj 0.6177 Tc 1.527 0 Td (.T)Tj 0 Tc 1.481 0 Td [(hey )-118(pr)18(ovide )-118(an )-118(ef)18(\336ciency )-118(gain )-118(for )-118(the)]TJ -21.839 -1.2 Td [(user )-194(at )-194(some )-194(expense )-194(in )-194(the )-194(kernel )-194(\(since )-194(it\325s )-194(the )-194(kernel )-194(that )-194(r)19(ecognizes )-194(these )-194(\336les\).)]TJ T* [(Interpr)18(eter \336les ar)]TJ 0.25 Tc 7.952 0 Td (eu)Tj 0 Tc 1.332 0 Td [(seful for the following r)18(easons.)]TJ -7.484 -2.4 Td [(1. )-633(They)-589(hide )-339(that )-339(certain )-339(pr)17(ograms )-339(ar)]TJ 0.5894 Tc 18.683 0 Td (es)Tj 0 Tc 1.492 0 Td [(cripts )-339(in )-339(some )-339(other )-339(language.)-841(For)]TJ -18.542 -1.2 Td [(example, to execute the pr)18(ogram in Figur)]TJ 0.25 Tc 18.198 0 Td (e8)Tj 0 Tc 1.229 0 Td (.21, we just say)Tj /TT0 1 Tf 8.9989 0 0 8.9989 181.9073 146.5824 Tm (awkexample)Tj /T1_2 1 Tf 6.6 0 Td [(optional-ar)18(guments)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47643 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (100)Tj /T1_1 1 Tf 3.5 0 Td [(Files )-250(and )-250(Dir)18(ectories )]TJ 39.241 0 Td [(Chapter)-500(4)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (uses)Tj /TT0 1 Tf 2.417 0 Td (o)Tj /T1_1 1 Tf 1.087 0 Td [(to )-237(mean )-237(other)]TJ 0.4869 Tc 6.544 0 Td (,n)Tj 0 Tc 1.319 0 Td [(ot )-237(owner)]TJ 0.7369 Tc 4.121 0 Td (.W)Tj 0 Tc 1.895 0 Td [(e\325ll )-237(use )-237(the )-237(terms)]TJ /T1_2 1 Tf 8.687 0 Td (user)Tj /T1_1 1 Tf (,)Tj /T1_2 1 Tf 2.46 0 Td [(gr)18(oup)]TJ /T1_1 1 Tf 0.487 Tc (,a)Tj 0 Tc 3.608 0 Td (nd)Tj /T1_2 1 Tf 1.68 0 Td (other)Tj /T1_1 1 Tf [(,)-487(to)-487(be)]TJ -33.817 -1.2 Td (consistent with the)Tj /TT0 1 Tf 8.594 0 Td (chmod)Tj /T1_1 1 Tf 3.25 0 Td (command.)Tj -10.044 -1.2 Td [(The )-118(thr)18(ee )-118(categories )-118(in )-118(Figur)]TJ 0.3676 Tc 13.084 0 Td (e4)Tj 0 Tc 1.347 0 Td [(.6 )167(\321 )167(r)17(ead, )-118(write, )-118(and )-118(execute)]TJ 0.0833 Tc 12.914 0 Td (\321a)Tj -0.018 Tc 1.583 0 Td [(re )-154(u)]TJ 0 Tc 1.827 0 Td [(sed )-118(in )-118(various)]TJ -32.554 -1.2 Td [(ways )-67(by )-67(dif)18(fer)18(ent )-67(functions.)]TJ -0.092 Tc 13.116 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-67(summarize )-67(them )-67(her)18(e, )-67(and )-67(r)17(eturn )-67(to )-67(them )-67(when )-67(we)]TJ -14.503 -1.2 Td (describe the actual functions.)Tj 0.883 Tc 0 -1.8 TD (\245T)Tj 0 Tc 2.102 0 Td [(he )-115(\336rst )-115(r)8(ule )-115(is )-115(that)]TJ /T1_2 1 Tf 8.845 0 Td (whenever)Tj /T1_1 1 Tf 4.199 0 Td [(we )-115(want )-115(to )-115(open )-115(any )-115(type )-115(of )-115(\336le )-115(by )-115(name, )-115(we )-115(must)]TJ -13.656 -1.2 Td [(have )-193(execute )-193(permission )-193(in )-193(each )-193(dir)20(ectory )-193(mentioned )-193(in )-193(the )-193(name, )-193(including )-193(the)]TJ 0 -1.2 TD [(curr)18(ent )-255(dir)18(ectory)111(,)-505(if)-505(it)-505(is)-505(implied. )-505(This)-505(is )-255(why )-255(the )-255(execute )-255(permission )-255(bit )-255(for )-255(a)]TJ -0 -1.2 Td [(dir)18(ectory is often called the sear)18(ch bit.)]TJ 0 -1.68 TD [(For )-542(example, )-542(to )-542(open )-542(the )-542(\336le)]TJ /TT0 1 Tf 16.093 0 Td (/usr/include/stdio.h)Tj /T1_1 1 Tf [(,)-793(we)-793(n)1(eed )-543(execute)]TJ -16.093 -1.2 Td [(permission )-1(in )-1(the )-1(dir)17(ectory)]TJ /TT0 1 Tf 12.206 0 Td (/)Tj /T1_1 1 Tf 0.5012 Tc (,e)Tj 0 Tc 1.83 0 Td [(xecute )-1(permission )-1(in )-1(the )-1(dir)17(ectory)]TJ /TT0 1 Tf 15.304 0 Td (/usr)Tj /T1_1 1 Tf 0.2511 Tc (,a)Tj 0 Tc 3.401 0 Td [(nd )-1(execute)]TJ -32.741 -1.2 Td [(permission )-80(in )-80(the )-80(dir)18(ectory)]TJ /TT0 1 Tf 12.521 0 Td (/usr/include)Tj /T1_1 1 Tf 0.58 Tc (.W)Tj 0.33 Tc 8.938 0 Td (et)Tj 0 Tc 1.135 0 Td [(hen )-80(need )-80(appr)18(opriate )-80(permission)]TJ -22.594 -1.2 Td [(for )-107(the )-107(\336le )-107(itself, )-107(depending )-107(on )-107(how )-107(we\325r)]TJ 0.3571 Tc 18.78 0 Td (et)Tj 0 Tc 1.162 0 Td [(rying )-107(to )-107(open )-107(it: )-107(r)18(ead-only)]TJ 0.3571 Tc 11.919 0 Td (,r)Tj 0 Tc 0.984 0 Td (ead\320write,)Tj -32.846 -1.2 Td (and so on.)Tj T* [(If )-93(the )-93(curr)17(ent )-94(dir)18(ectory )-94(is)]TJ /TT0 1 Tf 11.721 0 Td (/usr/include)Tj /T1_1 1 Tf 0.3436 Tc (,t)Tj 0 Tc 8.12 0 Td [(hen )-94(we )-94(need )-94(execute )-94(permission )-94(in )-94(the)]TJ -19.84 -1.2 Td [(curr)18(ent )-274(dir)18(ectory )-274(to )-274(open )-274(the )-274(\336le)]TJ /TT0 1 Tf 16.216 0 Td (stdio.h)Tj /T1_1 1 Tf 0.7738 Tc (.T)Tj 0 Tc 5.837 0 Td [(his )-274(is )-274(an )-274(example )-274(of )-274(the )-274(curr)19(ent)]TJ -22.053 -1.2 Td [(dir)18(ectory )-3(being )-3(implied, )-3(not )-3(speci\336cally )-3(mentioned.)-503(It )-3(is )-3(identical )-3(to )-3(our )-3(opening )-3(the)]TJ 0 -1.2 TD (\336le)Tj /TT0 1 Tf 1.625 0 Td (./stdio.h)Tj /T1_1 1 Tf (.)Tj -1.625 -1.68 Td [(Note )-182(that )-182(r)18(ead )-182(permission )-182(for )-182(a )-182(dir)18(ectory )-182(and )-182(execute )-182(permission )-182(for )-182(a )-182(dir)23(ectory)]TJ T* [(mean )-45(dif)18(fer)18(ent )-45(things.)-545(Read )-45(permission )-45(lets )-45(us )-45(r)18(ead )-45(the )-45(dir)17(ectory)]TJ 0.2951 Tc 29.143 0 Td (,o)Tj 0 Tc 1.091 0 Td [(btaining )-45(a )-45(list )-45(of)]TJ -30.234 -1.2 Td [(all )-275(the )-275(\336lenames )-275(in )-275(the )-275(dir)20(ectory)]TJ 0.7747 Tc 15.509 0 Td (.E)Tj 0 Tc 1.636 0 Td [(xecute )-275(permission )-275(lets )-275(us )-275(pass )-275(thr)18(ough )-275(the)]TJ -17.145 -1.2 Td [(dir)18(ectory )-113(when )-113(it )-113(is )-113(a )-113(component )-113(of )-113(a )-113(pathname )-113(that )-113(we )-113(ar)]TJ 0.3627 Tc 27.069 0 Td (et)Tj 0 Tc 1.168 0 Td [(rying )-113(to )-113(access.)-612(\(W)92(e)]TJ -28.236 -1.2 Td [(need to sear)18(ch the dir)18(ectory to look for a speci\336c \336lename.\))]TJ 0 -1.68 TD [(Another )-279(example )-279(of )-279(an )-279(implicit )-279(dir)18(ectory )-279(r)16(efer)18(ence )-279(is )-279(if )-279(the)]TJ /TT0 1 Tf 28.89 0 Td (PATH)Tj /T1_1 1 Tf 2.929 0 Td [(envir)18(onment)]TJ -31.819 -1.2 Td [(variable, )-113(described )-113(in )-113(Section )-113(8.10, )-113(speci\336es )-113(a )-113(dir)18(ectory )-113(that )-113(does )-113(not )-113(have )-113(execute)]TJ 0 -1.2 TD [(permission )-167(enabled.)-667(In )-167(this )-167(case, )-167(the )-167(shell )-167(will )-167(never )-167(\336nd )-167(executable )-167(\336les )-167(in )-167(that)]TJ T* [(dir)18(ectory)111(.)]TJ 0.883 Tc -1.489 -1.6 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-102(r)18(ead )-103(permission )-103(for )-103(a )-103(\336le )-103(determines )-103(whether )-103(we )-103(can )-103(open )-103(an )-103(existing )-103(\336le )-103(for)]TJ -0.018 Tc -0.613 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (ading: the)Tj /TT0 1 Tf 4.677 0 Td (O_RDONLY)Tj /T1_1 1 Tf 5.05 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (O_RDWR)Tj /T1_1 1 Tf 3.85 0 Td (\337ags for the)Tj /TT0 1 Tf 5.499 0 Td (open)Tj /T1_1 1 Tf 2.65 0 Td (function.)Tj 0.883 Tc -26.014 -1.84 Td (\245T)Tj 0 Tc 2.102 0 Td [(he )-77(write )-77(permission )-77(for )-77(a )-77(\336le )-77(determines )-77(whether )-77(we )-77(can )-77(open )-77(an )-77(existing )-77(\336le )-77(for)]TJ -0.613 -1.2 Td (writing: the)Tj /TT0 1 Tf 5.412 0 Td (O_WRONLY)Tj /T1_1 1 Tf 5.05 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (O_RDWR)Tj /T1_1 1 Tf 3.85 0 Td (\337ags for the)Tj /TT0 1 Tf 5.499 0 Td (open)Tj /T1_1 1 Tf 2.65 0 Td (function.)Tj 0.883 Tc -25.893 -1.84 Td (\245W)Tj 0.364 Tc 2.397 0 Td (em)Tj 0 Tc 1.726 0 Td [(ust )-114(have )-114(write )-114(permission )-114(for )-114(a )-114(\336le )-114(to )-114(specify )-114(the)]TJ /TT0 1 Tf 22.897 0 Td (O_TRUNC)Tj /T1_1 1 Tf 4.564 0 Td [(\337ag )-114(in )-114(the)]TJ /TT0 1 Tf 5.016 0 Td (open)Tj /T1_1 1 Tf -35.111 -1.2 Td (function.)Tj 0.883 Tc -1.489 -1.84 Td (\245W)Tj 0.4425 Tc 2.397 0 Td (ec)Tj 0 Tc 1.366 0 Td [(annot )-192(cr)18(eate )-192(a )-192(new )-192(\336le )-192(in )-192(a )-192(dir)18(ectory )-192(unless )-192(we )-192(have )-192(write )-192(permission )-192(and)]TJ -2.274 -1.2 Td [(execute permission in the dir)18(ectory)111(.)]TJ 0.883 Tc -1.489 -1.84 Td (\245T)Tj 0.362 Tc 2.01 0 Td (od)Tj 0 Tc 1.519 0 Td [(elete )-112(an )-112(existing )-112(\336le, )-112(we )-112(need )-112(write )-112(permission )-112(and )-112(execute )-112(permission )-112(in )-112(the)]TJ -2.04 -1.2 Td [(dir)18(ectory )-109(containing )-109(the )-109(\336le.)]TJ -0.092 Tc 13.424 0 Td [(We )-293(d)]TJ 0.3592 Tc 2.357 0 Td (on)Tj 0 Tc 1.487 0 Td [(ot )-109(need )-109(r)18(ead )-109(permission )-109(or )-109(write )-109(permission)]TJ -17.268 -1.2 Td (for the \336le itself.)Tj 0.883 Tc -1.489 -1.84 Td (\245E)Tj 0 Tc 2.1 0 Td [(xecute )-72(permission )-72(for )-72(a )-72(\336le )-72(must )-72(be )-72(on )-72(if )-72(we )-72(want )-72(to )-72(execute )-72(the )-72(\336le )-72(using )-72(any )-72(of)]TJ -0.611 -1.2 Td (the seven)Tj /TT0 1 Tf 4.416 0 Td (exec)Tj /T1_1 1 Tf 2.65 0 Td [(functions \(Section 8.10\).)-500(The \336le also has to be a r)18(egular \336le.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47644 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (974)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (O_ASYNC)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(83,)-250(51)55(1, 627)]TJ /TT0 1 Tf -4.617 -1.25 Td (O_CLOEXEC)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(63)]TJ /TT0 1 Tf -5.817 -1.25 Td (O_CREAT)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(63,)-250(66, 79, 89, 121, 125, 474,)]TJ -1.917 -1.25 Td (496)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (498, 517)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (518, 529, 558, 579)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (580, 584,)Tj -14.5 -1.25 Td (749, 758, 818, 930)Tj /TT0 1 Tf -2.7 -1.25 Td (OCRNL)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(689)]TJ /TT0 1 Tf -3.417 -1.25 Td (od)Tj /T1_1 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(69)]TJ /TT0 1 Tf -1.617 -1.25 Td (O_DIRECT)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(150)]TJ /TT0 1 Tf -5.217 -1.25 Td (O_DIRECTORY)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(63)]TJ /TT0 1 Tf -7.017 -1.25 Td (O_DSYNC)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(64,)-250(83, 513)]TJ /TT0 1 Tf -4.617 -1.25 Td (O_EXCL)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(63,)-250(79, 121, 558, 580, 584)]TJ /TT0 1 Tf -4.017 -1.25 Td (O_EXEC)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(83)]TJ /TT0 1 Tf -4.017 -1.25 Td (OFDEL)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(684, 689)]TJ /TT0 1 Tf -3.417 -1.25 Td (off_t)Tj /T1_1 1 Tf 3.417 0 Td [(data type,)-500(59, 67)]TJ 7.482 0.09 Td (\320)Tj 0.583 -0.09 Td (70, 157)Tj 3.083 0.09 Td (\320)Tj 0.583 -0.09 Td (158, 772)Tj /TT0 1 Tf -15.149 -1.25 Td (OFILL)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(684, 689)]TJ /TT0 1 Tf -3.417 -1.25 Td (O_FSYNC)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(64,)-250(83)]TJ 7.063 0.09 Td (\320)Tj 0.583 -0.09 Td (84)Tj /TT0 1 Tf -12.263 -1.25 Td (OLCUC)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(689)]TJ -3.417 -1.25 Td [(Olson, M.,)-500(952)]TJ /TT0 1 Tf 0 -1.25 TD (O_NDELAY)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(36,)-250(63, 482)]TJ /TT0 1 Tf -5.217 -1.25 Td (ONLCR)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(690, 731, 738)]TJ /TT0 1 Tf -3.417 -1.25 Td (ONLRET)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(676,)-250(690)]TJ /TT0 1 Tf -4.017 -1.25 Td (ONOCR)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(690)]TJ /TT0 1 Tf -3.417 -1.25 Td (O_NOCTTY)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(63,)-250(297)]TJ 7.563 0.09 Td (\320)Tj 0.583 -0.09 Td (298, 466, 723)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (724,)Tj -16.83 -1.25 Td (726)Tj /TT0 1 Tf -2.7 -1.25 Td (ONOEOT)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(676,)-250(690)]TJ /TT0 1 Tf -4.017 -1.25 Td (O_NOFOLLOW)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(63)]TJ /TT0 1 Tf -6.417 -1.25 Td (O_NONBLOCK)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(36,)-250(63, 83)]TJ 8.563 0.09 Td (\320)Tj 0.583 -0.09 Td (84, 482)Tj 3.083 0.09 Td (\320)Tj 0.583 -0.09 Td (483,)Tj -16.53 -1.25 Td [(496, 498, 553, 61)55(1)]TJ 7.528 0.09 Td (\320)Tj 0.583 -0.09 Td (612, 934, 937)Tj /TT0 1 Tf -10.812 -1.25 Td (open)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(8,)-250(14, 61)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (66, 77, 79, 83, 89, 91,)Tj -8.74 -1.25 Td (100)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (101, 103)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(104, 1)55(12, 1)55(18, 120)]TJ 7.473 0.09 Td (\320)Tj 0.583 -0.09 Td (125,)Tj -14.39 -1.25 Td (127)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (128, 137, 148)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (150, 283, 287, 297)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (298,)Tj -16.5 -1.25 Td (331, 451, 468, 470, 474, 482, 492)Tj 13.583 0.09 Td (\320)Tj 0.583 -0.09 Td (493,)Tj -14.166 -1.25 Td (495)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (498, 517)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (518, 525, 529, 553, 556, 558,)Tj -6.333 -1.25 Td (560, 577)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (578, 585, 588, 592, 653, 656)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (657,)Tj -16.333 -1.25 Td (669)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (670, 685, 723, 725)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (726, 745, 757)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (758,)Tj -16.5 -1.25 Td (808, 818, 823, 833, 907, 909, 930, 937)Tj -1.35 -1.25 Td [(de\336nition of,)-500(62)]TJ -1.35 -1.25 Td [(Open Gr)18(oup, The,)-500(xxi, xxvi, 31, 196, 950)]TJ T* (Open Softwar)Tj 0.25 Tc 6.139 0 Td (eF)Tj 0 Tc 1.285 0 Td (oundation,)Tj /T1_2 1 Tf 5.337 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td (OSF)Tj /TT0 1 Tf -14.178 -1.25 Td (openat)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(62)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (66, 331, 451)Tj -8.79 -1.25 Td [(de\336nition of,)-500(62)]TJ /TT0 1 Tf -1.35 -1.25 Td (opend.h)Tj /T1_1 1 Tf 4.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,6)Tj 0 Tc 1.25 0 Td (56, 660, 942)Tj /TT0 1 Tf -8.839 -1.25 Td (opendir)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(5,)-250(7, 121, 130)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (135, 252)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (253,)Tj -16.707 -1.25 Td (283, 452, 697, 822, 910)Tj -1.35 -1.25 Td [(de\336nition of,)-500(130)]TJ /TT0 1 Tf -1.35 -1.25 Td (openlog)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(452,)-250(468, 470)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (471, 480, 902, 928)Tj -13.89 -1.25 Td [(de\336nition of,)-500(470)]TJ /TT0 1 Tf -1.35 -1.25 Td (OPEN_MAX)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(40,)-250(43, 49, 51)]TJ 10.063 0.09 Td (\320)Tj 0.583 -0.09 Td (53, 60, 62, 906)Tj /TT0 1 Tf -15.863 -1.25 Td (open_max)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(466,)-250(544, 546, 666, 896)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(52, 907)]TJ /TT0 1 Tf -1.35 -1.25 Td (open_memstream)Tj /T1_1 1 Tf 8.817 0 Td [(function, )-250(171)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (174)Tj -14.09 -1.25 Td [(de\336nition of,)-500(173)]TJ -1.35 -1.25 Td (OpenServer)Tj 0.5 Tc 5.212 0 Td (,4)Tj 0 Tc 1.25 0 Td (85)Tj 19.538 65 Td [(OpenSolaris, )-250(xxi)]TJ T* [(OpenSS7, )-250(534)]TJ /TT0 1 Tf T* (open_wmemstream)Tj /T1_1 1 Tf 9.417 0 Td [(function, )-250(171)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (174)Tj -14.69 -1.25 Td [(de\336nition of,)-500(173)]TJ /TT0 1 Tf -1.35 -1.25 Td (OPOST)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(690, 706)]TJ 10.063 0.09 Td (\320)Tj 0.583 -0.09 Td (708, 710)Tj /TT0 1 Tf -14.063 -1.25 Td (optarg)Tj /T1_1 1 Tf 4.017 0 Td [(variable, )-250(663)]TJ /TT0 1 Tf -4.017 -1.25 Td (opterr)Tj /T1_1 1 Tf 4.017 0 Td [(variable, )-250(663)]TJ /TT0 1 Tf -4.017 -1.25 Td (optind)Tj /T1_1 1 Tf 4.017 0 Td [(variable, )-250(808)]TJ -4.017 -1.25 Td [(option codes,)-500(31)]TJ T* [(options, )-250(53)]TJ 5.149 0.09 Td (\320)Tj 0.583 -0.09 Td (57)Tj -4.383 -1.25 Td [(socket, )-250(623)]TJ 5.108 0.09 Td (\320)Tj 0.583 -0.09 Td (625)Tj /TT0 1 Tf -7.041 -1.25 Td (optopt)Tj /T1_1 1 Tf 4.017 0 Td [(variable, )-250(663)]TJ -4.017 -1.25 Td [(Oracle Corporation,)-500(xxi\320xxii, 35)]TJ /TT0 1 Tf T* (O_RDONLY)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(62,)-250(83)]TJ 7.063 0.09 Td (\320)Tj 0.583 -0.09 Td (84, 100, 103, 517)Tj 7.083 0.09 Td (\320)Tj 0.583 -0.09 Td (518,)Tj -17.83 -1.25 Td (529, 654, 808, 833, 937)Tj /TT0 1 Tf -2.7 -1.25 Td (O_RDWR)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(62,)-250(83)]TJ 7.063 0.09 Td (\320)Tj 0.583 -0.09 Td (84, 100, 128, 468, 474,)Tj -8.963 -1.25 Td (498, 517)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (518, 529, 577, 723, 725, 749, 818, 930)Tj -6.866 -1.25 Td (O\325Reilly)Tj 0.25 Tc 3.529 0 Td (,T)Tj 0 Tc 1.039 0 Td [(., )-250(712,)-250(953)]TJ -4.568 -1.25 Td [(orientation, str)18(eam, )-250(144)]TJ T* [(orphaned pr)18(ocess gr)18(oup, )-250(307)]TJ 13.107 0.09 Td (\320)Tj 0.583 -0.09 Td (309, 469, 735)Tj /TT0 1 Tf -13.691 -1.25 Td (O_RSYNC)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(64,)-250(83)]TJ /TT0 1 Tf -4.617 -1.25 Td (O_SEARCH)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(63,)-250(83)]TJ -5.217 -1.25 Td (OSF \(Open Softwar)Tj 0.25 Tc 8.589 0 Td (eF)Tj 0 Tc 1.285 0 Td [(oundation\), )-250(31)]TJ 6.753 0.09 Td (\320)Tj 0.583 -0.09 Td (32)Tj /TT0 1 Tf -17.21 -1.25 Td (O_SYNC)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(63)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (64, 83)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (84, 86)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (87, 513, 520)Tj /TT0 1 Tf -16.496 -1.25 Td (O_TRUNC)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(63,)-250(66, 100, 1)55(12, 125, 127)]TJ 15.008 0.09 Td (\320)Tj 0.583 -0.09 Td (128,)Tj -17.508 -1.25 Td (149, 496, 498, 517)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (518, 529, 749)Tj /TT0 1 Tf -10.867 -1.25 Td (O_TTY_INIT)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(64,)-250(683, 722)]TJ -6.417 -1.25 Td [(out-of-band data,)-500(626)]TJ T* (ownership)Tj 1.35 -1.25 Td [(dir)18(ectory)]TJ 0.5 Tc 3.914 0 Td (,1)Tj 0 Tc 1.25 0 Td (01)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (102)Tj -6.831 -1.25 Td [(\336le, )-250(101)]TJ 3.708 0.09 Td (\320)Tj 0.583 -0.09 Td (102)Tj /TT0 1 Tf -5.641 -1.25 Td (O_WRONLY)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(62,)-250(83)]TJ 7.063 0.09 Td (\320)Tj 0.583 -0.09 Td (84, 100, 937)Tj /TT0 1 Tf -12.863 -1.25 Td (OXTABS)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(676,)-250(690)]TJ -4.017 -4.75 Td [(packet mode, pseudo terminal,)-500(740)]TJ T* [(page cache,)-500(81)]TJ T* [(page size,)-500(573)]TJ T* [(pagedaemon pr)18(ocess, )-250(228)]TJ /TT0 1 Tf T* (PAGER)Tj /T1_1 1 Tf 3.417 0 Td [(envir)18(onment variable,)-500(539, 542)]TJ 13.849 0.09 Td (\320)Tj 0.583 -0.09 Td (543)Tj /TT0 1 Tf -17.849 -1.25 Td (PAGESIZE)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(40,)-250(43, 49)]TJ /TT0 1 Tf -5.217 -1.25 Td (PAGE_SIZE)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(41,)-250(43, 49)]TJ /TT0 1 Tf -5.817 -1.25 Td (P_ALL)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(244)]TJ /TT0 1 Tf -3.417 -1.25 Td (PARENB)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(675,)-250(688, 690, 706)]TJ 12.063 0.09 Td (\320)Tj 0.583 -0.09 Td (708)Tj -16.663 -1.25 Td [(par)18(ent)]TJ 1.35 -1.25 Td [(dir)18(ectory)]TJ 0.5 Tc 3.914 0 Td (,4)Tj 0.25 Tc 1.25 0 Td (,1)Tj 0 Tc 1 0 Td (08, 125, 129)Tj -6.164 -1.25 Td [(pr)18(ocess ID,)-500(228, 233, 237, 243, 246, 252, 287)]TJ 18.989 0.09 Td (\320)Tj 0.583 -0.09 Td (288,)Tj -18.222 -1.25 Td (309, 464)Tj /TT0 1 Tf -2.7 -1.25 Td (PAREXT)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(675,)-250(690)]TJ -4.017 -1.25 Td (parity)Tj 0.25 Tc 2.558 0 Td (,t)Tj 0 Tc 0.826 0 Td [(erminal I/O,)-500(688)]TJ /TT0 1 Tf -3.384 -1.25 Td (PARMRK)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(676,)-250(685, 688, 690)]TJ /TT0 1 Tf -4.017 -1.25 Td (PARODD)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(675,)-250(685, 688, 690, 713)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47645 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.4)]TJ 31.833 0 Td [(Implementation )-250(Overview)]TJ /T1_1 1 Tf 14 0 Td (749)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(when )-56(we )-56(wr)18(ote )-56(the )-56(r)17(ecor)18(d)-306(to)-306(t)-1(he )-56(database.)-557(The )-56(data )-56(of)18(fset)]TJ 26.628 0.04 Td (\()Tj 0.333 -0.04 Td (0)Tj 0.5 0.04 Td (\))Tj 0.639 -0.04 Td [(and )-56(data )-56(length)]TJ 7.365 0.04 Td (\()Tj 0.333 -0.04 Td (6)Tj 0.5 0.04 Td (\))Tj -0.018 Tc 0.639 -0.04 Td (re)Tj 0 Tc 0.856 0 Td (fer)Tj -37.793 -1.2 Td [(to )-35(the )-35(data )-35(\336le.)]TJ -0.092 Tc 7.21 0 Td [(We )-219(c)]TJ 0 Tc 2.116 0 Td [(an )-35(see )-35(that )-35(the )-35(data )-35(r)19(ecor)]TJ 0.2849 Tc 11.169 0 Td (dd)Tj 0 Tc 1.507 0 Td [(oes )-35(start )-35(at )-35(of)18(fset )-35(0 )-35(in )-35(the )-35(data )-35(\336le )-35(and)]TJ -22.002 -1.2 Td (has a length of 6 bytes.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6378.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 628.2236 Tm (#include "apue.h")Tj 0 -1.189 TD (#include "apue_db.h")Tj T* (#include )Tj 0 -2.14 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(DBHANDLE )-1800(db;)]TJ 0 -2.14 TD (if \(\(db = db_open\("db4", O_RDWR | O_CREAT | O_TRUNC,)Tj 1.2 -1.189 Td (FILE_MODE\)\) == NULL\))Tj 1.2 -1.189 Td (err_sys\("db_open error"\);)Tj -2.4 -2.14 Td (if \(db_store\(db, "Alpha", "data1", DB_INSERT\) != 0\))Tj 2.4 -1.189 Td (err_quit\("db_store error for alpha"\);)Tj -2.4 -1.189 Td (if \(db_store\(db, "beta", "Data for beta", DB_INSERT\) != 0\))Tj 2.4 -1.189 Td (err_quit\("db_store error for beta"\);)Tj -2.4 -1.189 Td (if \(db_store\(db, "gamma", "record3", DB_INSERT\) != 0\))Tj 2.4 -1.189 Td (err_quit\("db_store error for gamma"\);)Tj -2.4 -2.14 Td (db_close\(db\);)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3966.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 220.6963 380.5895 Tm (Figure 20.3)Tj /T1_0 1 Tf 5.695 0 Td [(Cr)18(eate a database and write thr)18(ee r)18(ecor)18(ds to it)]TJ 9.9982 0 0 9.9982 129.5769 356.5938 Tm [(\(As )-82(with )-82(the )-82(index )-82(\336le, )-82(we )-82(automatically )-82(append )-82(a )-82(newline )-82(to )-82(each )-82(data )-82(r)19(ecor)18(d, )-82(so )-82(we)]TJ 0 -1.2 Td [(can )-165(use )-165(the )-165(normal )-165(UNIX )-165(System )-165(tools )-165(with )-165(the )-165(\336le.)-665(This )-165(newline )-165(at )-165(the )-165(end )-165(is )-165(not)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td (turned to the caller by)Tj /TT0 1 Tf 10.014 0 Td (db_fetch)Tj /T1_0 1 Tf (.\))Tj -9.07 -1.2 Td [(If )-10(we )-10(follow )-10(the )-10(thr)18(ee )-10(hash )-10(chains )-10(in )-10(this )-10(example, )-10(we )-10(see )-10(that )-10(the )-10(\336rst )-10(r)14(ecor)]TJ 0.2603 Tc 33.554 0 Td (do)Tj 0.2602 Tc 1.417 0 Td (nt)Tj 0 Tc 1.168 0 Td (he)Tj -37.939 -1.2 Td [(\336rst )-168(hash )-168(chain )-168(is )-168(at )-168(of)18(fset )-168(53 )-168(\()]TJ /TT0 1 Tf 14.461 0 Td (gamma)Tj /T1_0 1 Tf [(\). )-418(The)-418(next )-168(r)18(ecor)18(d)-418(on)-418(this )-168(chain )-168(is )-168(at )-168(of)18(fset )-168(17)]TJ -14.461 -1.2 Td (\()Tj /TT0 1 Tf (alpha)Tj /T1_0 1 Tf [(\), )-121(and )-121(this )-121(is )-121(the )-121(last )-121(r)20(ecor)18(d)-371(on)-371(t)1(he )-121(chain.)-621(The )-121(\336rst )-121(r)20(ecor)18(d)-371(on)-371(t)1(he )-121(second )-121(hash)]TJ -0 -1.2 Td [(chain )-32(is )-32(at )-32(of)18(fset )-32(35 )-32(\()]TJ /TT0 1 Tf 9.104 0 Td (beta)Tj /T1_0 1 Tf [(\), )-32(and )-32(it\325s )-32(the )-32(last )-32(r)20(ecor)18(d)-282(on)-282(t)1(he )-32(chain.)-532(The )-32(thir)]TJ 0.2817 Tc 23.238 0 Td (dh)Tj 0 Tc 1.475 0 Td [(ash )-32(chain )-32(is)]TJ -33.817 -1.2 Td [(empty)111(.)]TJ 1.8 -1.2 Td [(Note )-14(that )-14(the )-14(or)18(der )-14(of )-14(the )-14(keys )-14(in )-14(the )-14(index )-14(\336le )-14(and )-14(the )-14(or)21(der )-14(of )-14(their )-14(corr)19(esponding)]TJ -0.018 Tc -1.8 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(ds )-52(in )-52(the )-52(data )-52(\336le )-52(is )-52(the )-52(same )-52(as )-52(the )-52(or)18(der )-52(of )-52(the )-52(calls )-52(to)]TJ /TT0 1 Tf 26.702 0 Td (db_store)Tj /T1_0 1 Tf 5.102 0 Td [(in )-52(Figur)]TJ 0.3023 Tc 3.558 0 Td (e2)Tj 0 Tc 1.281 0 Td (0.3.)Tj -37.5 -1.2 Td [(Since )-31(the)]TJ /TT0 1 Tf 4.269 0 Td (O_TRUNC)Tj /T1_0 1 Tf 4.481 0 Td [(\337ag )-31(was )-31(speci\336ed )-31(for)]TJ /TT0 1 Tf 9.753 0 Td (db_open)Tj /T1_0 1 Tf 0.2807 Tc (,t)Tj 0 Tc 5.057 0 Td [(he )-31(index )-31(\336le )-31(and )-31(the )-31(data )-31(\336le )-31(wer)21(e)]TJ -23.56 -1.2 Td [(both )-127(tr)8(uncated )-127(and )-127(the )-127(database )-127(initialized )-127(fr)18(om )-127(scratch.)-627(In )-127(this )-127(case,)]TJ /TT0 1 Tf 32.236 0 Td (db_store)Tj /T1_0 1 Tf 5.177 0 Td (just)Tj -37.413 -1.2 Td [(appends )-110(the )-110(new )-110(index )-110(r)18(ecor)18(ds )-110(and )-110(data )-110(r)18(ecor)18(ds )-110(to )-110(the )-110(end )-110(of )-110(the )-110(corr)18(esponding )-110(\336le.)]TJ -0.092 Tc -0 -1.2 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-41(see )-41(later )-41(that)]TJ /TT0 1 Tf 7.131 0 Td (db_store)Tj /T1_0 1 Tf 5.091 0 Td [(can )-41(also )-41(r)18(euse )-41(portions )-41(of )-41(these )-41(two )-41(\336les )-41(that )-41(corr)18(espond)]TJ -13.609 -1.2 Td [(to deleted r)18(ecor)18(ds.)]TJ 1.8 -1.2 Td [(The )-112(choice )-112(of )-112(a )-112(\336xed-size )-112(hash )-112(table )-112(for )-112(the )-112(index )-112(is )-112(a )-112(compr)22(omise. )-362(It)-361(allows )-112(fast)]TJ -1.8 -1.2 Td [(access )-96(as )-96(long )-96(as )-96(each )-96(hash )-96(chain )-96(isn\325t )-96(too )-96(long.)]TJ -0.092 Tc 22.285 0 Td [(We )-280(w)]TJ 0 Tc 2.567 0 Td [(ant )-96(to )-96(be )-96(able )-96(to )-96(sear)18(ch )-96(for )-96(any)]TJ -24.852 -1.2 Td [(key )-15(quickly)]TJ 0.2649 Tc 5.046 0 Td (,b)Tj 0 Tc 1.068 0 Td [(ut )-15(we )-15(don\325t )-15(want )-15(to )-15(complicate )-15(the )-15(data )-15(str)9(uctur)18(es )-15(by )-15(using )-15(either )-15(a )-15(B-tr)19(ee)]TJ -6.114 -1.2 Td [(or )-90(dynamic )-90(hashing.)-590(Dynamic )-90(hashing )-90(has )-90(the )-90(advantage )-90(that )-90(any )-90(data )-90(r)22(ecor)]TJ 0.3397 Tc 35.152 0 Td (dc)Tj 0 Tc 1.395 0 Td [(an )-90(be)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47646 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (520)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 215.987 670.2598 Tm (numop--;)Tj 0 -1.189 TD (break;)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj T* (if \(numop == 0\) {)Tj 2.4 -1.189 Td (if \(off >= sbuf.st_size\))Tj 2.4 -1.189 Td (break;)Tj 0.6 Tc -4.8 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (if \(aio_suspend\(aiolist, NBUF, NULL\) < 0\))Tj 2.4 -1.189 Td (err_sys\("aio_suspend failed"\);)Tj -4.8 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -2.14 TD (bufs[0].aiocb.aio_fildes = ofd;)Tj 0 -1.189 TD (if \(aio_fsync\(O_SYNC, &bufs[0].aiocb\) < 0\))Tj 2.4 -1.189 Td (err_sys\("aio_fsync failed"\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4857.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 207.4391 469.6826 Tm (Figure 14.21)Tj /T1_1 1 Tf -0.09 Tc 6.195 0 Td (Tr)Tj 0 Tc 0.918 0 Td (anslate a \336le using ROT)Tj 10.5 0.09 Td (-)Tj 0.333 -0.09 Td [(13 and asynchr)18(onous I/O)]TJ 9.9988 0 0 9.9988 147.5827 445.6855 Tm [(Note )-231(that )-231(we )-231(use )-231(eight )-231(buf)16(fers, )-231(so )-231(we )-231(can )-231(have )-231(up )-231(to )-231(eight )-231(asynchr)18(onous )-231(I/O)]TJ -0.018 Tc -1.8 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quests )-140(pending.)-639(Surprisingly)]TJ 0.3896 Tc 13.196 0 Td (,t)Tj 0 Tc 0.966 0 Td [(his )-140(might )-140(actually )-140(r)18(educe )-140(performance)]TJ 0.0833 Tc 17.718 0 Td (\321i)Tj 0.3896 Tc 1.374 0 Td (ft)Tj 0 Tc 1.049 0 Td [(he )-140(r)18(eads)]TJ -35.158 -1.2 Td (ar)Tj 0.333 Tc 0.877 0 Td (ep)Tj -0.018 Tc 1.413 0 Td (re)Tj 0 Tc 0.856 0 Td [(sented )-83(to )-83(the )-83(\336le )-83(system )-83(out )-83(of )-83(or)18(der)74(,)-333(it)-333(can )-83(defeat )-83(the )-83(operating )-83(system\325s )-83(r)19(ead-)]TJ -3.146 -1.2 Td (ahead algorithm.)Tj 1.8 -1.2 Td [(Befor)18(e)-396(we)-396(can )-146(check )-146(the )-146(r)18(eturn )-146(value )-146(of )-146(an )-146(operation, )-146(we )-146(need )-146(to )-146(make )-146(sur)]TJ 0.3962 Tc 34.938 0 Td (et)Tj 0 Tc 1.201 0 Td (he)Tj -37.939 -1.2 Td [(operation )-48(has )-48(completed.)-549(When)]TJ /TT0 1 Tf 14.768 0 Td (aio_error)Tj /T1_1 1 Tf -0.018 Tc 5.698 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-48(a )-48(value )-48(other )-48(than)]TJ /TT0 1 Tf 11.078 0 Td (EINPROGRESS)Tj /T1_1 1 Tf -32.4 -1.2 Td (or)Tj /TT1 1 Tf 1.22 0 Td (!)Tj /T1_1 1 Tf [(1, )-29(we )-29(know )-29(the )-29(operation )-29(is )-29(complete.)-529(Excluding )-29(these )-29(values, )-29(if )-29(the )-29(r)18(eturn )-29(value )-29(is)]TJ -1.22 -1.2 Td [(anything )-111(other )-111(than )-111(0, )-111(then )-111(we )-111(know )-111(the )-111(operation )-111(failed.)-611(Once )-111(we\325ve )-111(checked )-111(these)]TJ 0 -1.2 TD (conditions, it is safe to call)Tj /TT0 1 Tf 11.859 0 Td (aio_return)Tj /T1_1 1 Tf 6.25 0 Td [(to get the r)18(eturn value of the I/O operation.)]TJ -16.309 -1.2 Td [(As )-234(long )-234(as )-234(we )-234(have )-234(work )-234(to )-234(do, )-234(we )-234(can )-234(submit )-234(asynchr)18(onous )-234(I/O )-234(operations.)]TJ -1.8 -1.2 Td [(When )-192(we )-192(have )-192(an )-192(unused )-192(AIO )-192(contr)18(ol )-192(block, )-192(we )-192(can )-192(submit )-192(an )-192(asynchr)17(onous )-192(r)18(ead)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(quest. )-360(When)]TJ 0.3604 Tc 6.256 0 Td (ar)Tj 0 Tc 1.237 0 Td [(ead )-110(completes, )-110(we )-110(translate )-110(the )-110(buf)18(fer )-110(contents )-110(and )-110(then )-110(submit )-110(an)]TJ -8.349 -1.2 Td [(asynchr)18(onous )-150(write )-150(r)17(equest. )-400(When)-401(all )-150(AIO )-150(contr)18(ol )-150(blocks )-150(ar)17(e)-400(in)-400(u)-1(se, )-150(we )-150(wait )-150(for )-150(an)]TJ 0 -1.2 Td (operation to complete by calling)Tj /TT0 1 Tf 14.501 0 Td (aio_suspend)Tj /T1_1 1 Tf (.)Tj -12.701 -1.2 Td [(When )-5(we )-5(write )-5(a )-5(block )-5(to )-5(the )-5(output )-5(\336le, )-5(we )-5(r)18(etain )-5(the )-5(same )-5(of)17(fset )-5(at )-5(which )-5(we )-5(r)17(ead)]TJ -1.8 -1.2 Td [(the )-57(data )-57(fr)18(om )-57(the )-57(input )-57(\336le.)-556(Consequently)]TJ 0.3068 Tc 18.995 0 Td (,t)Tj 0 Tc 0.883 0 Td [(he )-57(or)18(der )-57(of )-57(the )-57(writes )-57(doesn\325t )-57(matter)]TJ 0.5567 Tc 16.406 0 Td (.T)Tj 0 Tc 1.42 0 Td (his)Tj -37.703 -1.2 Td [(strategy )-306(works )-306(only )-306(because )-306(each )-306(character )-306(in )-306(the )-306(input )-306(\336le )-306(has )-306(a )-306(corr)12(esponding)]TJ T* [(character )-1(in )-1(the )-1(output )-1(\336le )-1(at )-1(the )-1(same )-1(of)17(fset; )-1(we )-1(neither )-1(add )-1(nor )-1(delete )-1(characters )-1(in )-1(the)]TJ T* [(output \336le. \(This insight might help solve Exer)18(cise 14.8.\))]TJ -0.092 Tc 1.8 -1.2 Td [(We )-220(d)]TJ 0 Tc 2.284 0 Td [(on\325t )-36(use )-36(asynchr)18(onous )-36(noti\336cation )-36(in )-36(this )-36(example, )-36(because )-36(it )-36(is )-36(easier )-36(to )-36(use )-36(a)]TJ -4.084 -1.2 Td [(synchr)18(onous )-268(pr)18(ogramming )-268(model.)-768(If )-268(we )-268(had )-268(something )-268(else )-268(to )-268(do )-268(while )-268(the )-268(I/O)]TJ T* [(operations )-186(wer)18(e)-436(in)-436(p)]TJ -0.018 Tc (ro)Tj 0 Tc 10.564 0 Td [(gr)18(ess, )-186(then )-186(the )-186(additional )-186(work )-186(could )-186(be )-186(folded )-186(into )-186(the)]TJ /TT0 1 Tf 26.636 0 Td (for)Tj /T1_1 1 Tf -37.2 -1.2 Td [(loop. )-261(If)-262(we )-11(needed )-11(to )-11(pr)18(event )-11(this )-11(additional )-11(work )-11(fr)18(om )-11(delaying )-11(the )-11(task )-11(of )-11(translating)]TJ T* [(the )-272(\336le, )-272(however)]TJ 0.5221 Tc 7.862 0 Td (,t)Tj 0 Tc 1.098 0 Td [(hen )-272(we )-272(might )-272(have )-272(to )-272(str)8(uctur)]TJ 0.5221 Tc 14.693 0 Td (et)Tj 0 Tc 1.327 0 Td [(he )-272(code )-272(to )-272(use )-272(some )-272(form )-272(of)]TJ -24.98 -1.2 Td [(asynchr)18(onous )-120(noti\336cation.)]TJ -0.055 Tc 12.445 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-120(multiple )-120(tasks, )-120(we )-120(need )-120(to )-120(prioritize )-120(the )-120(tasks )-120(befor)17(e)]TJ -13.681 -1.2 Td [(deciding how the pr)18(ogram should be str)8(uctur)18(ed.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1457.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47647 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(5.14)]TJ 36.014 0 Td [(Memory )-250(Str)18(eams)]TJ /T1_1 1 Tf 9.819 0 Td (173)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (memset\(buf, \325c\325, BSZ-2\);)Tj 0 -1.189 TD (buf[BSZ-2] = \325\\0\325;)Tj T* (buf[BSZ-1] = \325X\325;)Tj T* (fprintf\(fp, "hello, world"\);)Tj T* (fclose\(fp\);)Tj 0 -1.189 TD (printf\("after fclose: %s\\n", buf\);)Tj 0 -1.189 TD (printf\("len of string in buf = %ld\\n", \(long\)strlen\(buf\)\);)Tj 0 -2.021 TD (return\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 5724.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 226.4648 556.3422 Tm (Figure 5.15)Tj /T1_0 1 Tf 5.695 0 Td [(Investigate memory str)18(eam write behavior)]TJ 9.9988 0 0 9.9988 129.5846 528.7455 Tm [(When we r)8(un the pr)18(ogram on Linux, we get the following:)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5825 512.0475 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /T1_2 1 Tf 18 -1.189 Td [(overwrite the buffer with a\325)55(s)]TJ /TT0 1 Tf -19.2 -1.189 Td [(initial buffer contents:)-4800(fmemopen)]TJ /T1_2 1 Tf 24.6 0 Td (places a null byte at beginning of buffer)Tj /TT0 1 Tf -24.6 -1.189 Td (before flush:)Tj /T1_2 1 Tf 19.2 0 Td [(buffer is unchanged until str)18(eam is \337ushed)]TJ /TT0 1 Tf -19.2 -1.189 Td (after fflush: hello, world)Tj 0 -1.189 TD (len of string in buf = 12)Tj /T1_2 1 Tf 19.2 0 Td (null byte added to end of string)Tj 0 -1.189 TD [(now overwrite the buffer with b\325)55(s)]TJ /TT0 1 Tf -19.2 -1.189 Td [(after )-600(fseek:)-600(bbbbbbbbbbbbhello, world)-4400(fseek)]TJ /T1_2 1 Tf 30.8 0 Td (causes \337ush)Tj /TT0 1 Tf -30.8 -1.189 Td (len of string in buf = 24)Tj /T1_2 1 Tf 19.2 0 Td (null byte appended again)Tj T* [(now overwrite the buffer with c\325)55(s)]TJ /TT0 1 Tf -19.2 -1.189 Td (after fclose: hello, worldcccccccccccccccccccccccccccccccccc)Tj T* (len of string in buf = 46)Tj /T1_2 1 Tf 19.2 0 Td (no null byte appended)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 129.5846 372.7643 Tm [(This )-41(example )-41(shows )-41(the )-41(policy )-41(for )-41(\337ushing )-41(memory )-41(str)20(eams )-41(and )-41(appending )-41(null )-41(bytes.)]TJ 0.4212 Tc 0 -1.2 TD (An)Tj 0 Tc 1.781 0 Td [(ull )-171(byte )-171(is )-171(appended )-171(automatically )-171(whenever )-171(we )-171(write )-171(to )-171(a )-171(memory )-171(str)16(eam )-171(and)]TJ -1.781 -1.2 Td [(advance )-65(the )-65(str)18(eam\325s )-65(notion )-65(of )-65(the )-65(size )-65(of )-65(the )-65(str)18(eam\325s )-65(contents )-65(\(as )-65(opposed )-65(to )-65(the )-65(size)]TJ T* [(of )-112(the )-112(buf)18(fer)]TJ 0.3621 Tc 5.594 0 Td (,w)Tj 0 Tc 1.446 0 Td [(hich )-112(is )-112(\336xed\).)-612(The )-112(size )-112(of )-112(the )-112(str)17(eam\325s )-112(contents )-112(is )-112(determined )-112(by )-112(how)]TJ -7.04 -1.2 Td (much we write to it.)Tj 7.999 0 0 7.999 183.5784 304.7724 Tm [(Of )-170(the )-170(four )-170(platforms )-170(cover)16(ed )-170(in )-170(this )-170(book, )-170(only )-170(Linux )-170(3.2.0 )-170(pr)18(ovides )-170(support )-170(for )-170(memory)]TJ 0 -1.25 TD [(str)18(eams. )-499(This)-500(is )-249(a )-249(case )-249(of )-249(the )-249(implementations )-249(not )-249(having )-249(caught )-249(up )-249(yet )-249(with )-249(the )-249(latest)]TJ T* [(standar)18(ds, and will change with time.)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 2788.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 147.5734 254.7631 Tm [(The )-434(other )-434(two )-434(functions )-434(that )-434(can )-434(be )-434(used )-434(to )-434(cr)18(eate )-434(a )-434(memory )-434(str)18(eam )-434(ar)22(e)]TJ /TT0 1 Tf -1.8 -1.2 Td (open_memstream)Tj /T1_0 1 Tf 8.65 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (open_wmemstream)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.5735 223.6687 Tm (#include )Tj 0 -1.902 TD (FILE *open_memstream\(char **)Tj /T1_2 1 Tf (bufp)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 20.397 0 Td (ize_t *)Tj /T1_2 1 Tf (sizep)Tj /TT0 1 Tf (\);)Tj -20.397 -1.902 Td (#include )Tj T* (FILE *open_wmemstream\(wchar_t **)Tj /T1_2 1 Tf (bufp)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 22.797 0 Td (ize_t *)Tj /T1_2 1 Tf (sizep)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -4.856 -1.902 Td [(Both r)18(eturn: str)18(eam pointer if OK,)]TJ /TT0 1 Tf 15.172 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1507.25 cm 0 0 m 0 820 l 3900 820 l 3900 0 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47648 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (902)Tj /T1_1 1 Tf 3.5 0 Td [(Miscellaneous )-250(Sour)18(ce )-250(Code)]TJ 38.263 0 Td [(Appendix )-250(B)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (/*)Tj 0.6 Tc 0.6 -1.189 Td (*E)Tj 0 Tc 1.8 0 Td (rror routines for programs that can run as a daemon.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -2.021 Td (#include "apue.h")Tj 0 -1.189 TD [(#include )-3600(/* for definition of errno */)]TJ T* [(#include )-3000(/* ISO C variable arguments */)]TJ T* (#include )Tj 0 -2.021 TD (static void log_doit\(int, int, int, const char *, va_list ap\);)Tj T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (aller must define and set this: nonzero if)Tj 0.6 Tc -1.8 -1.189 Td (*i)Tj 0 Tc 1.8 0 Td (nteractive, zero if daemon)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td [(extern int)-1200(log_to_stderr;)]TJ T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*I)Tj 0 Tc 1.8 0 Td (nitialize syslog\(\), if running as daemon.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (log_open\(const char *ident, int option, int facility\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (if \(log_to_stderr == 0\))Tj 2.4 -1.189 Td (openlog\(ident, option, facility\);)Tj -4.8 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*N)Tj 0 Tc 1.8 0 Td (onfatal error related to a system call.)Tj 0.6 Tc -1.8 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (rint a message with the system\325s errno value and return.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (log_ret\(const char *fmt, ...\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(va_list )-2400(ap;)]TJ 0 -2.021 TD (va_start\(ap, fmt\);)Tj 0 -1.189 TD (log_doit\(1, errno, LOG_ERR, fmt, ap\);)Tj 0 -1.189 TD (va_end\(ap\);)Tj -2.4 -1.189 Td (})Tj 0 -2.021 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*F)Tj 0 Tc 1.8 0 Td (atal error related to a system call.)Tj 0.6 Tc -1.8 -1.189 Td (*P)Tj 0 Tc 1.8 0 Td (rint a message and terminate.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (log_sys\(const char *fmt, ...\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(va_list )-2400(ap;)]TJ 0 -2.021 TD (va_start\(ap, fmt\);)Tj 0 -1.189 TD (log_doit\(1, errno, LOG_ERR, fmt, ap\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47649 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.3)]TJ 38.358 0 Td [(The )-250(Library)]TJ /T1_1 1 Tf 7.475 0 Td (745)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 670.2598 Tm (#include "apue_db.h")Tj 0 -2.021 TD (DBHANDLE db_open\(const char *)Tj /T1_2 1 Tf (pathname)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 23.144 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (o\337ag)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 3.733 0 Td (.. /* int)Tj /T1_2 1 Tf 6 0 Td (mode)Tj /TT0 1 Tf 2.711 0 Td (*/\);)Tj /T1_0 1 Tf -18.576 -2.021 Td (Returns: database handle if OK,)Tj /TT0 1 Tf 14.301 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -35.763 -2.021 Td (void db_close\(DBHANDLE)Tj /T1_2 1 Tf 13.8 0 Td (db)Tj /TT0 1 Tf (\);)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 6112.25 cm 0 0 m 0 681 l 3900 681 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 597.6583 Tm (If)Tj /TT0 1 Tf 1.208 0 Td (db_open)Tj /T1_0 1 Tf 4.738 0 Td [(is )-288(successful, )-288(two )-288(\336les )-288(ar)]TJ 0.5383 Tc 11.969 0 Td (ec)Tj -0.018 Tc 1.461 0 Td (re)Tj 0 Tc 0.856 0 Td (ated:)Tj /T1_2 1 Tf 2.704 0 Td (pathname.idx)Tj /T1_0 1 Tf 6.01 0 Td [(is )-288(the )-288(index )-288(\336le, )-288(and)]TJ /T1_2 1 Tf -28.948 -1.2 Td (pathname.dat)Tj /T1_0 1 Tf 5.731 0 Td [(is )-10(the )-10(data )-10(\336le.)-508(The)]TJ /T1_2 1 Tf 8.886 0 Td (o\337ag)Tj /T1_0 1 Tf 2.193 0 Td [(ar)18(gument )-10(is )-10(used )-10(as )-10(the )-10(second )-10(ar)18(gument )-10(to)]TJ /TT0 1 Tf 19.791 0 Td (open)Tj /T1_0 1 Tf -36.6 -1.2 Td [(\(Section )-36(3.3\) )-36(to )-36(specify )-36(how )-36(the )-36(\336les )-36(ar)17(e)-286(to)-286(be)-286(opened )-36(\(e.g., )-36(r)18(ead-only)]TJ 0.2861 Tc 30.531 0 Td (,r)Tj 0 Tc 0.913 0 Td [(ead\320write, )-36(cr)18(eate)]TJ -31.444 -1.2 Td [(\336le )-97(if )-97(it )-97(doesn\325t )-97(exist\).)-596(The)]TJ /T1_2 1 Tf 12.486 0 Td (mode)Tj /T1_0 1 Tf 2.458 0 Td [(ar)18(gument )-97(is )-97(used )-97(as )-97(the )-97(thir)]TJ 0.3469 Tc 12.759 0 Td (da)Tj -0.018 Tc 1.458 0 Td (rg)Tj 0 Tc 0.933 0 Td [(ument )-97(to)]TJ /TT0 1 Tf 4.439 0 Td (open)Tj /T1_0 1 Tf 2.747 0 Td (\(the)Tj -37.28 -1.2 Td (\336le access permissions\) if the database \336les ar)Tj 0.25 Tc 20.093 0 Td (ec)Tj -0.018 Tc 1.173 0 Td (re)Tj 0 Tc 0.856 0 Td (ated.)Tj -20.322 -1.2 Td [(When )-98(we\325r)]TJ 0.348 Tc 4.959 0 Td (ed)Tj 0 Tc 1.438 0 Td [(one )-98(with )-98(a )-98(database, )-98(we )-98(call)]TJ /TT0 1 Tf 13.21 0 Td (db_close)Tj /T1_0 1 Tf 0.598 Tc (.I)Tj 0.348 Tc 5.985 0 Td (tc)Tj 0 Tc 1.118 0 Td [(loses )-98(the )-98(index )-98(\336le )-98(and)]TJ -28.51 -1.2 Td [(the data \336le and r)18(eleases any memory that it allocated for internal buf)18(fers.)]TJ 1.8 -1.2 Td [(When )-149(we )-149(stor)]TJ 0.3988 Tc 6.427 0 Td (ean)Tj 0 Tc 2.359 0 Td [(ew )-149(r)18(ecor)18(d)-399(in)-399(the )-149(database, )-149(we )-149(have )-149(to )-149(specify )-149(the )-149(key )-149(for )-149(the)]TJ -0.018 Tc -10.585 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.5429 Tc 1.367 0 Td (da)Tj 0 Tc 1.654 0 Td [(nd )-293(the )-293(data )-293(associated )-293(with )-293(the )-293(key)]TJ 0.7928 Tc 17.219 0 Td (.I)Tj 0.5428 Tc 1.38 0 Td (ft)Tj 0 Tc 1.202 0 Td [(he )-293(database )-293(contained )-293(personnel)]TJ -0.018 Tc -23.678 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(ds, )-36(the )-36(key )-36(could )-36(be )-36(the )-36(employee )-36(ID, )-36(and )-36(the )-36(data )-36(could )-36(be )-36(the )-36(employee\325s )-36(name,)]TJ -0.856 -1.2 Td [(addr)18(ess, )-12(telephone )-12(number)]TJ 0.2624 Tc 11.987 0 Td (,d)Tj 0 Tc 1.123 0 Td [(ate )-12(of )-12(hir)18(e, )-12(and )-12(the )-12(like.)-512(Our )-12(implementation )-12(r)15(equir)18(es )-12(that)]TJ -13.11 -1.2 Td [(the )-37(key )-37(for )-37(each )-37(r)20(ecor)18(d)-287(be)-287(u)1(nique. )-287(\(W)]TJ 0.2866 Tc 16.988 0 Td (ec)Tj 0 Tc 1.21 0 Td [(an\325t )-37(have )-37(two )-37(employee )-37(r)20(ecor)18(ds )-37(with )-37(the )-37(same)]TJ -18.198 -1.2 Td (employee ID, for example.\))Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5838 436.9776 Tm (#include "apue_db.h")Tj 0 -2.021 TD (int db_store\(DBHANDLE)Tj /T1_2 1 Tf 13.2 0 Td (db)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.763 0 Td (onst char *)Tj /T1_2 1 Tf (key)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 9.733 0 Td (onst char *)Tj /T1_2 1 Tf (data)Tj /TT0 1 Tf (,)Tj -17.896 -1.189 Td (int)Tj /T1_2 1 Tf 2.4 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf 7.27 -2.021 Td [(Returns: 0 if OK, nonzer)18(o)-250(on)-250(err)18(or \(see following\))]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3854.25 cm 0 0 m 0 606 l 3900 606 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9982 0 0 9.9982 129.5767 371.8831 Tm (The)Tj /T1_2 1 Tf 2.022 0 Td (key)Tj /T1_0 1 Tf 1.681 0 Td (and)Tj /T1_2 1 Tf 2.041 0 Td (data)Tj /T1_0 1 Tf 2.069 0 Td [(ar)18(guments )-98(ar)]TJ 0.348 Tc 5.955 0 Td (en)Tj 0 Tc 1.409 0 Td [(ull-terminated )-98(character )-98(strings.)-598(The )-98(only )-98(r)18(estriction)]TJ -15.177 -1.2 Td [(on )-201(these )-201(two )-201(strings )-201(is )-201(that )-201(neither )-201(can )-201(contain )-201(null )-201(bytes.)-699(They )-201(may)]TJ 0.4509 Tc 32.575 0 Td (,f)Tj 0 Tc 1.034 0 Td [(or )-201(example,)]TJ -33.609 -1.2 Td (contain newlines.)Tj 1.8 -1.2 Td (The)Tj /T1_2 1 Tf 2.095 0 Td (\337ag)Tj /T1_0 1 Tf 1.91 0 Td [(ar)18(gument )-171(can )-171(be)]TJ /TT0 1 Tf 8.128 0 Td (DB_INSERT)Tj /T1_0 1 Tf 5.821 0 Td [(\(to )-171(insert )-171(a )-171(new )-171(r)17(ecor)18(d\),)]TJ /TT0 1 Tf 11.62 0 Td (DB_REPLACE)Tj /T1_0 1 Tf 6.421 0 Td (\(to)Tj -0.018 Tc -37.795 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(place )-21(an )-21(existing )-21(r)18(ecor)18(d\), )-21(or)]TJ /TT0 1 Tf 12.575 0 Td (DB_STORE)Tj /T1_0 1 Tf 5.071 0 Td [(\(to )-21(either )-21(insert )-21(or )-21(r)18(eplace )-21(a )-21(r)18(ecor)18(d, )-21(whichever)]TJ -18.502 -1.2 Td [(is )-202(appr)18(opriate\). )-452(These)-452(thr)18(ee )-202(constants )-202(ar)]TJ 0.4519 Tc 18.876 0 Td (ed)Tj 0 Tc 1.542 0 Td [(e\336ned )-202(in )-202(the)]TJ /TT0 1 Tf 6.372 0 Td (apue_db.h)Tj /T1_0 1 Tf 5.852 0 Td (header)Tj 0.7019 Tc 2.972 0 Td (.I)Tj 0.4519 Tc 1.289 0 Td (fw)Tj 0 Tc 1.619 0 Td (e)Tj -38.521 -1.2 Td [(specify )-73(either)]TJ /TT0 1 Tf 6.326 0 Td (DB_INSERT)Tj /T1_0 1 Tf 5.723 0 Td (or)Tj /TT0 1 Tf 1.264 0 Td (DB_STORE)Tj /T1_0 1 Tf 5.123 0 Td [(and )-73(the )-73(r)18(ecor)]TJ 0.3229 Tc 5.949 0 Td (dd)Tj 0 Tc 1.545 0 Td [(oes )-73(not )-73(exist, )-73(a )-73(new )-73(r)18(ecor)]TJ 0.323 Tc 11.422 0 Td (di)Tj 0 Tc 1.225 0 Td (s)Tj -38.576 -1.2 Td [(inserted. )-298(If)-297(we )-48(specify )-48(either)]TJ /TT0 1 Tf 13.238 0 Td (DB_REPLACE)Tj /T1_0 1 Tf 6.298 0 Td (or)Tj /TT0 1 Tf 1.239 0 Td (DB_STORE)Tj /T1_0 1 Tf 5.098 0 Td [(and )-48(the )-48(r)19(ecor)]TJ 0.2975 Tc 5.898 0 Td (da)Tj 0 Tc 1.409 0 Td [(lr)18(eady )-47(exists,)]TJ -33.178 -1.2 Td [(the )-34(existing )-34(r)18(ecor)18(d)-284(is)-284(r)18(eplaced )-34(with )-34(the )-34(new )-34(r)18(ecor)18(d. )-284(If)-284(we )-34(specify)]TJ /TT0 1 Tf 29.352 0 Td (DB_REPLACE)Tj /T1_0 1 Tf 6.284 0 Td [(and )-34(the)]TJ -0.018 Tc -35.636 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.3697 Tc 1.367 0 Td (dd)Tj 0 Tc 1.592 0 Td [(oesn\325t )-120(exist, )-120(we )-120(set)]TJ /TT0 1 Tf 8.942 0 Td (errno)Tj /T1_0 1 Tf 3.37 0 Td (to)Tj /TT0 1 Tf 1.242 0 Td (ENOENT)Tj /T1_0 1 Tf 3.97 0 Td [(and )-120(r)18(eturn)]TJ /TT1 1 Tf 5.194 0 Td (!)Tj /T1_0 1 Tf 0.3696 Tc (1w)Tj 0 Tc 2.253 0 Td [(ithout )-120(adding )-120(the )-120(new)]TJ -0.018 Tc -28.784 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(d. )-252(If)-253(we )-2(specify)]TJ /TT0 1 Tf 8.599 0 Td (DB_INSERT)Tj /T1_0 1 Tf 5.652 0 Td [(and )-2(the )-2(r)17(ecor)]TJ 0.2524 Tc 5.808 0 Td (da)Tj 0 Tc 1.363 0 Td [(lr)18(eady )-2(exists, )-2(no )-2(r)17(ecor)18(d)-252(is)-252(i)-1(nserted. )-252(In)]TJ -22.278 -1.2 Td [(this case, the r)18(eturn value is 1 to distinguish it fr)18(om a normal err)18(or r)18(eturn)]TJ 32.532 0.04 Td (\()Tj /TT1 1 Tf 0.333 -0.04 Td (!)Tj /T1_0 1 Tf (1)Tj 1.049 0.04 Td (\))Tj 0.333 -0.04 Td (.)Tj -0.092 Tc -32.447 -1.2 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td [(an fetch any r)18(ecor)]TJ 0.25 Tc 7.857 0 Td (df)Tj -0.018 Tc 1.194 0 Td (ro)Tj 0.25 Tc 0.923 0 Td (mt)Tj 0 Tc 1.459 0 Td (he database by specifying its)Tj /T1_2 1 Tf 12.911 0 Td (key)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 8.9984 0 0 8.9984 147.5738 211.212 Tm (#include "apue_db.h")Tj 0 -2.021 TD (char *db_fetch\(DBHANDLE)Tj /T1_2 1 Tf 14.4 0 Td (db)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.763 0 Td (onst char *)Tj /T1_2 1 Tf (key)Tj /TT0 1 Tf (\);)Tj /T1_0 1 Tf -2.459 -2.021 Td (Returns: pointer to data if OK,)Tj /TT0 1 Tf 13.642 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(if r)18(ecor)]TJ 0.25 Tc 3.097 0 Td (dn)Tj 0 Tc 1.443 0 Td (ot found)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1703.25 cm 0 0 m 0 499 l 3900 499 l 3900 0 l 0 0 l S Q Q BT /T1_0 1 Tf 9.9976 0 0 9.9976 129.5689 156.8324 Tm [(The )-121(r)18(eturn )-121(value )-121(is )-121(a )-121(pointer )-121(to )-121(the )-121(data )-121(that )-121(was )-121(stor)18(ed )-121(with )-121(the)]TJ /T1_2 1 Tf 30.374 0 Td (key)Tj /T1_0 1 Tf [(,)-371(if)-371(the )-121(r)18(ecor)]TJ 0.3709 Tc 6.93 0 Td (di)Tj 0 Tc 1.273 0 Td (s)Tj -38.576 -1.2 Td [(found. )-250(W)]TJ 0.25 Tc 4.333 0 Td (ec)Tj 0 Tc 1.173 0 Td [(an also delete a r)18(ecor)]TJ 0.25 Tc 9.231 0 Td (df)Tj -0.018 Tc 1.194 0 Td (ro)Tj 0.25 Tc 0.923 0 Td (mt)Tj 0 Tc 1.459 0 Td (he database by specifying its)Tj /T1_2 1 Tf 12.911 0 Td (key)Tj /T1_0 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47650 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (492)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 93.5944 668.9599 Tm [(Implied Inheritance and Release of Loc)20(ks)]TJ /T1_1 1 Tf 3.6 -2.16 Td [(Thr)18(ee r)8(ules govern the automatic inheritance and r)18(elease of r)18(ecor)]TJ 0.25 Tc 28.668 0 Td (dl)Tj 0 Tc 1.152 0 Td (ocks.)Tj -29.82 -1.8 Td [(1. )-633(Locks)-251(ar)]TJ 0.2506 Tc 5.342 0 Td (ea)Tj 0 Tc 1.23 0 Td [(ssociated )-1(with )-1(a )-1(pr)19(ocess and a \336le.)-500(This has two implications.)-500(The \336rst is)]TJ -4.938 -1.2 Td [(obvious: )-11(when )-11(a )-11(pr)18(ocess )-11(terminates, )-11(all )-11(its )-11(locks )-11(ar)]TJ 0.2614 Tc 22.337 0 Td (er)Tj 0 Tc 1.117 0 Td [(eleased. )-261(The)-262(second )-11(is )-11(far )-11(fr)17(om)]TJ -23.455 -1.2 Td [(obvious: )-146(whenever )-146(a )-146(descriptor )-146(is )-146(closed, )-146(any )-146(locks )-146(on )-146(the )-146(\336le )-146(r)16(efer)18(enced )-146(by )-146(that)]TJ 0 -1.2 Td [(descriptor for that pr)18(ocess ar)]TJ 0.25 Tc 12.692 0 Td (er)Tj 0 Tc 1.106 0 Td [(eleased. )-250(This)-250(means that if we make the calls)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 163.9205 576.6654 Tm (fd1 = open\(pathname, ...\);)Tj 0 -1.189 TD (read_lock\(fd1, ...\);)Tj T* (fd2 = dup\(fd1\);)Tj T* (close\(fd2\);)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 145.9215 526.5684 Tm [(after )-161(the)]TJ /TT1 1 Tf 4.243 0 Td (close\(fd2\))Tj /T1_1 1 Tf 0.4115 Tc (,t)Tj 0 Tc 6.987 0 Td [(he )-161(lock )-161(that )-161(was )-161(obtained )-161(on)]TJ /TT1 1 Tf 13.875 0 Td (fd1)Tj /T1_1 1 Tf 2.212 0 Td [(is )-162(r)18(eleased. )-412(The)-411(same)]TJ -27.317 -1.2 Td [(thing would happen if we r)18(eplaced the)]TJ /TT1 1 Tf 17.423 0 Td (dup)Tj /T1_1 1 Tf 2.05 0 Td (with)Tj /TT1 1 Tf 2.283 0 Td (open)Tj /T1_1 1 Tf [(,)-250(as)-250(in)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 163.9206 497.8701 Tm (fd1 = open\(pathname, ...\);)Tj T* (read_lock\(fd1, ...\);)Tj T* (fd2 = open\(pathname, ...\))Tj T* (close\(fd2\);)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 145.9216 447.7731 Tm [(to open the same \336le on another descriptor)74(.)]TJ -1.633 -1.6 Td [(2. )-633(Locks)-342(ar)]TJ 0.3422 Tc 5.433 0 Td (en)Tj 0 Tc 1.403 0 Td [(ever )-92(inherited )-92(by )-92(the )-92(child )-92(acr)18(oss )-92(a)]TJ /TT1 1 Tf 16.279 0 Td (fork)Tj /T1_1 1 Tf 0.5922 Tc (.T)Tj 0 Tc 3.855 0 Td [(his )-92(means )-92(that )-92(if )-92(a )-92(pr)17(ocess)]TJ -25.338 -1.2 Td [(obtains )-184(a )-184(lock )-184(and )-184(then )-184(calls)]TJ /TT1 1 Tf 13.775 0 Td (fork)Tj /T1_1 1 Tf 0.4341 Tc (,t)Tj 0 Tc 3.41 0 Td [(he )-184(child )-184(is )-184(consider)18(ed )-184(another )-184(pr)18(ocess )-184(with)]TJ -0.018 Tc -17.185 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(gar)18(d)-341(to)-341(t)-1(he )-91(lock )-91(that )-91(was )-91(obtained )-91(by )-91(the )-91(par)16(ent. )-341(The)-342(child )-91(has )-91(to )-91(call)]TJ /TT1 1 Tf 32.298 0 Td (fcntl)Tj /T1_1 1 Tf 3.341 0 Td (to)Tj -36.495 -1.2 Td [(obtain )-115(its )-115(own )-115(locks )-115(on )-115(any )-115(descriptors )-115(that )-115(wer)]TJ 0.3656 Tc 22.112 0 Td (ei)Tj 0 Tc 1.136 0 Td [(nherited )-116(acr)18(oss )-116(the)]TJ /TT1 1 Tf 8.944 0 Td (fork)Tj /T1_1 1 Tf 0.6156 Tc (.T)Tj 0 Tc 3.879 0 Td (his)Tj -36.07 -1.2 Td [(constraint )-65(makes )-65(sense )-65(because )-65(locks )-65(ar)]TJ 0.3154 Tc 17.843 0 Td (em)Tj 0 Tc 1.677 0 Td [(eant )-65(to )-65(pr)17(event )-65(multiple )-65(pr)18(ocesses )-65(fr)17(om)]TJ -19.52 -1.2 Td [(writing )-47(to )-47(the )-47(same )-47(\336le )-47(at )-47(the )-47(same )-47(time.)-549(If )-47(the )-47(child )-47(inherited )-47(locks )-47(acr)18(oss )-47(a)]TJ /TT1 1 Tf 34.717 0 Td (fork)Tj /T1_1 1 Tf (,)Tj -34.717 -1.2 Td [(both the par)18(ent and the child could write to the same \336le at the same time.)]TJ -1.633 -1.6 Td [(3. )-633(Locks)-364(ar)]TJ 0.3645 Tc 5.456 0 Td (ei)Tj 0 Tc 1.134 0 Td [(nherited )-114(by )-114(a )-114(new )-114(pr)16(ogram )-114(acr)18(oss )-114(an)]TJ /TT1 1 Tf 17.455 0 Td (exec)Tj /T1_1 1 Tf 0.6144 Tc (.N)Tj 0 Tc 4.095 0 Td [(ote, )-114(however)]TJ 0.3644 Tc 5.771 0 Td (,t)Tj 0 Tc 0.94 0 Td [(hat )-114(if )-114(the)]TJ -33.219 -1.2 Td [(close-on-exec )-203(\337ag )-203(is )-203(set )-203(for )-203(a )-203(\336le )-203(descriptor)]TJ 0.4532 Tc 20.263 0 Td (,a)Tj 0 Tc 1.203 0 Td [(ll )-203(locks )-203(for )-203(the )-203(underlying )-203(\336le )-203(ar)17(e)]TJ -0.018 Tc -21.467 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (leased when the descriptor is closed as part of an)Tj /TT1 1 Tf 21.877 0 Td (exec)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf -27.966 -2.4 Td (FreeBSD Implementation)Tj /T1_1 1 Tf 3.6 -2.16 Td [(Let\325s )-60(take )-60(a )-60(brief )-60(look )-60(at )-60(the )-60(data )-60(str)8(uctur)18(es )-60(used )-60(in )-60(the )-60(Fr)18(eeBSD )-60(implementation.)-560(This)]TJ 0 -1.2 Td [(should )-119(help )-119(clarify )-119(r)8(ule )-119(1, )-119(which )-119(states )-119(that )-119(locks )-119(ar)]TJ 0.3694 Tc 23.739 0 Td (ea)Tj 0 Tc 1.348 0 Td [(ssociated )-119(with )-119(a )-119(pr)18(ocess )-119(and )-119(a)]TJ -25.087 -1.2 Td (\336le.)Tj 1.8 -1.2 Td [(Consider a pr)18(ocess that executes the following statements \(ignoring err)18(or r)18(eturns\):)]TJ /TT1 1 Tf 8.9995 0 0 8.9995 147.5913 221.4867 Tm (fd1 = open\(pathname, ...\);)Tj T* [(write_lock\(fd1, 0, SEEK_SET, 1\);)-2400(/* parent write locks byte 0 */)]TJ T* (if \(\(pid = fork\(\)\) > 0\) {)Tj 21.6 0 Td (/* parent */)Tj -19.2 -1.189 Td (fd2 = dup\(fd1\);)Tj T* (fd3 = open\(pathname, ...\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse if \(pid == 0\) {)Tj 0.6 -1.189 Td (read_lock\(fd1, 1, SEEK_SET, 1\); /* child read locks byte 1 */)Tj -2.4 -1.189 Td (})Tj T* (pause\(\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47651 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(3.16)]TJ /TT0 1 Tf 40.133 0 Td (/dev/fd)Tj /T1_1 1 Tf 6.2 0 Td (89)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (In the function call)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 651.191 Tm (fd = open\("/dev/fd/0", mode\);)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 632.1223 Tm [(most )-13(systems )-13(ignor)]TJ 0.2635 Tc 8.574 0 Td (et)Tj 0 Tc 1.069 0 Td [(he )-13(speci\336ed)]TJ /TT0 1 Tf 5.522 0 Td (mode)Tj /T1_0 1 Tf 0.2635 Tc (,w)Tj 0 Tc 3.748 0 Td [(her)18(eas )-13(others )-13(r)17(equir)]TJ 0.2635 Tc 8.807 0 Td (et)Tj 0 Tc 1.069 0 Td [(hat )-13(it )-13(be )-13(a )-13(subset )-13(of )-13(the)]TJ -28.788 -1.2 Td [(mode )-3(used )-3(when )-3(the )-3(r)19(efer)18(enced )-3(\336le )-3(\(standar)]TJ 0.2528 Tc 19.685 0 Td (di)Tj 0 Tc 1.155 0 Td [(nput, )-3(in )-3(this )-3(case\) )-3(was )-3(originally )-3(opened.)]TJ -20.84 -1.2 Td [(Because the pr)18(evious)]TJ /TT0 1 Tf 9.563 0 Td (open)Tj /T1_0 1 Tf 2.65 0 Td (is equivalent to)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 590.3545 Tm (fd = dup\(0\);)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5923 571.2857 Tm [(the )-149(descriptors )-149(0 )-149(and)]TJ /TT0 1 Tf 10.113 0 Td (fd)Tj /T1_0 1 Tf 1.599 0 Td (shar)Tj 0.3993 Tc 1.883 0 Td (et)Tj 0 Tc 1.204 0 Td [(he )-149(same )-149(\336le )-149(table )-149(entry )-149(\(Figur)]TJ 0.3992 Tc 13.922 0 Td (e3)Tj 0 Tc 1.378 0 Td [(.9\). )-399(For)-399(example, )-149(if)]TJ -30.099 -1.2 Td [(descriptor )-38(0 )-38(was )-38(opened )-38(r)20(ead-only)111(,)-288(we)-288(c)1(an )-38(only )-38(r)18(ead )-38(on)]TJ /TT0 1 Tf 25.267 0 Td (fd)Tj /T1_0 1 Tf 0.5376 Tc (.E)Tj 0 Tc 2.599 0 Td [(ven )-38(if )-38(the )-38(system )-38(ignor)20(es)]TJ -27.866 -1.2 Td (the open mode and the call)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 529.5183 Tm (fd = open\("/dev/fd/0", O_RDWR\);)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5923 510.4496 Tm (succeeds, we still can\325t write to)Tj /TT0 1 Tf 13.921 0 Td (fd)Tj /T1_0 1 Tf (.)Tj 7.9995 0 0 7.9995 183.5889 490.4508 Tm [(The )-51(Linux )-51(implementation )-51(of)]TJ /TT0 1 Tf 13.419 0 Td (/dev/fd)Tj /T1_0 1 Tf 4.501 0 Td [(is )-51(an )-51(exception.)-551(It )-51(maps )-51(\336le )-51(descriptors )-51(into )-51(symbolic)]TJ -17.919 -1.25 Td [(links )-35(pointing )-35(to )-35(the )-35(underlying )-35(physical )-35(\336les.)-535(When )-35(you )-35(open)]TJ /TT0 1 Tf 28.517 0 Td (/dev/fd/0)Tj /T1_0 1 Tf 0.285 Tc (,f)Tj 0 Tc 6.268 0 Td [(or )-35(example, )-35(you)]TJ -34.785 -1.25 Td (ar)Tj 0.286 Tc 0.877 0 Td (er)Tj 0 Tc 1.142 0 Td [(eally )-36(opening )-36(the )-36(\336le )-36(associated )-36(with )-36(your )-36(standar)]TJ 0.2859 Tc 22.516 0 Td (di)Tj 0 Tc 1.188 0 Td [(nput. )-286(Thus)-286(the )-36(mode )-36(of )-36(the )-36(new )-36(\336le)]TJ -25.723 -1.25 Td [(descriptor r)18(eturned is unr)18(elated to the mode of the)]TJ /TT0 1 Tf 22.621 0 Td (/dev/fd)Tj /T1_0 1 Tf 4.45 0 Td [(\336le descriptor)74(.)]TJ -0.092 Tc 9.9994 0 0 9.9994 147.5914 440.4538 Tm [(We )-368(c)]TJ 0 Tc 2.265 0 Td [(an )-184(also )-184(call)]TJ /TT0 1 Tf 5.67 0 Td (creat)Tj /T1_0 1 Tf 3.434 0 Td [(with )-184(a)]TJ /TT0 1 Tf 3.4 0 Td (/dev/fd)Tj /T1_0 1 Tf 4.634 0 Td [(pathname )-184(ar)18(gument )-184(as )-184(well )-184(as )-184(specify)]TJ /TT0 1 Tf -21.202 -1.2 Td (O_CREAT)Tj /T1_0 1 Tf 4.521 0 Td [(in )-71(a )-71(call )-71(to)]TJ /TT0 1 Tf 5.054 0 Td (open)Tj /T1_0 1 Tf 0.5708 Tc (.T)Tj 0 Tc 3.834 0 Td [(his )-71(allows )-71(a )-71(pr)18(ogram )-71(that )-71(calls)]TJ /TT0 1 Tf 14.15 0 Td (creat)Tj /T1_0 1 Tf 3.321 0 Td [(to )-71(still )-71(work )-71(if )-71(the)]TJ -30.88 -1.2 Td [(pathname ar)18(gument is)]TJ /TT0 1 Tf 10.224 0 Td (/dev/fd/1)Tj /T1_0 1 Tf 0.25 Tc (,f)Tj 0 Tc 6.233 0 Td (or example.)Tj 7.9995 0 0 7.9995 183.5889 396.4564 Tm [(Bewar)18(e)-321(of)-321(d)1(oing )-71(this )-71(on )-71(Linux.)-570(Because )-71(the )-71(Linux )-71(implementation )-71(uses )-71(symbolic )-71(links )-71(to )-71(the)]TJ -0.018 Tc -0 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (al \336les, using)Tj /TT0 1 Tf 6.046 0 Td (creat)Tj /T1_0 1 Tf 3.25 0 Td (on a)Tj /TT0 1 Tf 2.128 0 Td (/dev/fd)Tj /T1_0 1 Tf 4.45 0 Td [(\336le will r)18(esult in the underlying \336le being tr)8(uncated.)]TJ 9.9994 0 0 9.9994 147.5907 366.4582 Tm [(Some )-711(systems )-711(pr)18(ovide )-711(the )-711(pathnames)]TJ /TT0 1 Tf 20.486 0 Td (/dev/stdin)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 7.211 0 Td (/dev/stdout)Tj /T1_0 1 Tf 0.9605 Tc (,a)Tj 0 Tc 8.311 0 Td (nd)Tj /TT0 1 Tf -37.807 -1.2 Td (/dev/stderr)Tj /T1_0 1 Tf 0.8186 Tc (.T)Tj 0 Tc 8.282 0 Td [(hese )-319(pathnames )-319(ar)]TJ 0.5686 Tc 8.855 0 Td (ee)Tj 0 Tc 1.527 0 Td [(quivalent )-319(to)]TJ /TT0 1 Tf 6.206 0 Td (/dev/fd/0)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 6.219 0 Td (/dev/fd/1)Tj /T1_0 1 Tf 0.5687 Tc (,a)Tj 0 Tc 6.719 0 Td (nd)Tj /TT0 1 Tf -37.807 -1.2 Td (/dev/fd/2)Tj /T1_0 1 Tf 0.25 Tc (,r)Tj 0 Tc 6.277 0 Td [(espectively)111(.)]TJ -4.477 -1.2 Td [(The )-125(main )-125(use )-125(of )-125(the)]TJ /TT0 1 Tf 9.576 0 Td (/dev/fd)Tj /T1_0 1 Tf 4.575 0 Td [(\336les )-125(is )-125(fr)18(om )-125(the )-125(shell.)-623(It )-125(allows )-125(pr)18(ograms )-125(that )-125(use)]TJ -15.95 -1.2 Td [(pathname )-331(ar)18(guments )-331(to )-331(handle )-331(standar)]TJ 0.581 Tc 18.744 0 Td (di)Tj 0 Tc 1.483 0 Td [(nput )-331(and )-331(standar)]TJ 0.581 Tc 8.287 0 Td (do)Tj 0 Tc 1.738 0 Td [(utput )-331(in )-331(the )-331(same)]TJ -30.252 -1.2 Td [(manner )-50(as )-50(other )-50(pathnames.)-550(For )-50(example, )-50(the)]TJ /TT0 1 Tf 21.032 0 Td (cat)Tj /T1_0 1 Tf 1.8 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.633 -0.04 Td [(pr)18(ogram )-50(speci\336cally )-50(looks )-50(for )-50(an)]TJ -24.298 -1.2 Td (input \336lename of)Tj /TT0 1 Tf 7.851 0 Td (-)Tj /T1_0 1 Tf 0.85 0 Td (and uses it to mean standar)Tj 0.25 Tc 12.126 0 Td (di)Tj 0 Tc 1.152 0 Td [(nput. )-250(The)-250(command)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5917 276.6937 Tm (filter file2 | cat file1 - file3 | lpr)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5928 257.6249 Tm [(is )-245(an )-245(example.)-746(First,)]TJ /TT0 1 Tf 10.27 0 Td (cat)Tj /T1_0 1 Tf -0.018 Tc 2.295 0 Td (re)Tj 0 Tc 0.856 0 Td (ads)Tj /TT0 1 Tf 2.03 0 Td (file1)Tj /T1_0 1 Tf 0.4954 Tc (,t)Tj 0 Tc 4.071 0 Td [(hen )-245(its )-245(standar)]TJ 0.4954 Tc 6.995 0 Td (di)Tj 0 Tc 1.397 0 Td [(nput )-245(\(the )-245(output )-245(of )-245(the)]TJ /TT0 1 Tf -27.915 -1.2 Td (filter)Tj /T1_0 1 Tf 4.003 0 Td [(pr)18(ogram )-153(on)]TJ /TT0 1 Tf 5.791 0 Td (file2)Tj /T1_0 1 Tf [(\), )-153(and )-153(then)]TJ /TT0 1 Tf 8.453 0 Td (file3)Tj /T1_0 1 Tf 0.6526 Tc (.I)Tj 0 Tc 4.24 0 Td (f)Tj /TT0 1 Tf 0.736 0 Td (/dev/fd)Tj /T1_0 1 Tf 4.603 0 Td [(is )-152(supported, )-152(the )-152(special)]TJ -27.824 -1.2 Td (handling of)Tj /TT0 1 Tf 5.374 0 Td (-)Tj /T1_0 1 Tf 0.85 0 Td [(can be r)18(emoved fr)18(om)]TJ /TT0 1 Tf 9.637 0 Td (cat)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 2.8 0 Td (nd we can enter)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5905 215.8571 Tm (filter file2 | cat file1 /dev/fd/0 file3 | lpr)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 147.5905 196.7884 Tm [(The )-201(special )-201(meaning )-201(of)]TJ /TT0 1 Tf 11.26 0 Td (-)Tj /T1_0 1 Tf 1.051 0 Td [(as )-201(a )-201(command)]TJ 6.775 0.09 Td (-)Tj 0.333 -0.09 Td [(line )-201(ar)18(gument )-201(to )-201(r)18(efer )-201(to )-201(the )-201(standar)17(d)]TJ -21.219 -1.2 Td [(input )-58(or )-58(the )-58(standar)]TJ 0.3081 Tc 8.975 0 Td (do)Tj 0 Tc 1.465 0 Td [(utput )-58(is )-58(a )-58(kludge )-58(that )-58(has )-58(cr)17(ept )-58(into )-58(many )-58(pr)18(ograms. )-308(Ther)]TJ 0.308 Tc 26.417 0 Td (ea)Tj -0.018 Tc 1.287 0 Td (re)Tj 0 Tc -38.144 -1.2 Td [(also )-254(pr)18(oblems )-254(if )-254(we )-254(specify)]TJ /TT0 1 Tf 13.499 0 Td (-)Tj /T1_0 1 Tf 1.104 0 Td [(as )-254(the )-254(\336rst )-254(\336le, )-254(as )-254(it )-254(looks )-254(like )-254(the )-254(start )-254(of )-254(another)]TJ -14.603 -1.2 Td (command)Tj 4.449 0.09 Td (-)Tj 0.333 -0.09 Td [(line option.)-500(Using)]TJ /TT0 1 Tf 8.416 0 Td (/dev/fd)Tj /T1_0 1 Tf 4.45 0 Td (is a step towar)Tj 0.25 Tc 6.378 0 Td (du)Tj 0 Tc 1.464 0 Td (niformity and cleanliness.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47652 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (973)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (MSG_EOR)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(61)55(1, 613)]TJ /TT0 1 Tf -4.617 -1.25 Td (msgget)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(557)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (562, 632)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (633, 941)Tj -13.457 -1.25 Td [(de\336nition of,)-500(562)]TJ /TT0 1 Tf -1.35 -1.25 Td (msghdr)Tj /T1_0 1 Tf 4.017 0 Td [(str)8(uctur)18(e, )-250(61)55(1, 613, 644, 646)]TJ 12.247 0.09 Td (\320)Tj 0.583 -0.09 Td (647, 649, 651)Tj /TT0 1 Tf -16.847 -1.25 Td (MSG_MORE)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(61)55(1)]TJ /TT0 1 Tf -5.217 -1.25 Td (MSG_NOERROR)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(564,)-250(631, 941)]TJ /TT0 1 Tf -7.017 -1.25 Td (MSG_NOSIGNAL)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(61)55(1)]TJ /TT0 1 Tf -7.617 -1.25 Td (MSG_OOB)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(61)55(1)]TJ 6.008 0.09 Td (\320)Tj 0.583 -0.09 Td (613, 626)Tj /TT0 1 Tf -11.208 -1.25 Td (MSG_PEEK)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(612)]TJ /TT0 1 Tf -5.217 -1.25 Td (msgrcv)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(451,)-250(558)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (559, 561, 564, 585, 631,)Tj -9.94 -1.25 Td (941)Tj -1.35 -1.25 Td [(de\336nition of,)-500(564)]TJ /TT0 1 Tf -1.35 -1.25 Td (msgsnd)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(451,)-250(558, 560)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (561, 563)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (565, 633)Tj -17.457 -1.25 Td [(de\336nition of,)-500(563)]TJ /TT0 1 Tf -1.35 -1.25 Td (MSG_TRUNC)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(612)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (613)Tj /TT0 1 Tf -12.463 -1.25 Td (MSGVERB)Tj /T1_0 1 Tf 4.617 0 Td [(envir)18(onment variable,)-500(21)55(1)]TJ /TT0 1 Tf -4.617 -1.25 Td (MSG_WAITALL)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(612)]TJ /TT0 1 Tf -7.017 -1.25 Td (MS_INVALIDATE)Tj /T1_0 1 Tf 8.217 0 Td [(constant, )-250(528)]TJ /TT0 1 Tf -8.217 -1.25 Td (msqid_ds)Tj /T1_0 1 Tf 5.217 0 Td [(str)8(uctur)18(e, )-250(561)]TJ 6.302 0.09 Td (\320)Tj 0.583 -0.09 Td (562, 564)Tj /TT0 1 Tf -12.102 -1.25 Td (MS_SYNC)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(528,)-250(530)]TJ /TT0 1 Tf -4.617 -1.25 Td (msync)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(451,)-250(528, 530)]TJ -2.067 -1.25 Td [(de\336nition of,)-500(528)]TJ -1.35 -1.25 Td [(Mui, L.,)-500(712, 953)]TJ 0 -1.25 TD [(multiplexing, I/O,)-500(500)]TJ 10.272 0.09 Td (\320)Tj 0.583 -0.09 Td (509)Tj /TT0 1 Tf -10.856 -1.25 Td (munmap)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(528)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (529)Tj -9.29 -1.25 Td [(de\336nition of,)-500(528)]TJ -1.35 -1.25 Td [(mutex attributes,)-500(430)]TJ 9.613 0.09 Td (\320)Tj 0.583 -0.09 Td (439)Tj -10.196 -1.25 Td [(mutex timing comparison,)-500(571)]TJ T* [(mutexes, )-250(399)]TJ 6.043 0.09 Td (\320)Tj 0.583 -0.09 Td (409)Tj /TT0 1 Tf -6.627 -1.25 Td (mv)Tj /T1_0 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(1)55(15)]TJ /TT0 1 Tf -1.617 -1.25 Td (myftw)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(133,)-250(141)]TJ -3.417 -4.375 Td [(named full-duplex pipes,)-500(534)]TJ /TT0 1 Tf T* (NAME_MAX)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(38)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (39, 44, 49, 55, 65, 131)Tj /TT0 1 Tf -11.363 -1.25 Td (nanosleep)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(373)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (375, 437, 439, 451, 462,)Tj -9.74 -1.25 Td (837, 934)Tj -1.35 -1.25 Td [(de\336nition of,)-500(374)]TJ -1.35 -1.25 Td [(Natar)18(os, S.,)-500(xxxii)]TJ T* [(Native POSIX Thr)18(eads Library)111(,)]TJ /T1_2 1 Tf 14.187 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td (NPTL)Tj /TT0 1 Tf -15.604 -1.25 Td (nawk)Tj /T1_0 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(262)]TJ /TT0 1 Tf -2.817 -1.25 Td (NCCS)Tj /T1_0 1 Tf 2.817 0 Td [(constant, )-250(674)]TJ /TT0 1 Tf -2.817 -1.25 Td (ndbm)Tj /T1_0 1 Tf 2.817 0 Td (library)Tj 0.5 Tc 2.87 0 Td (,7)Tj 0 Tc 1.25 0 Td (44)Tj /TT0 1 Tf -6.937 -1.25 Td ()Tj /T1_0 1 Tf 5.217 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (0)Tj -9.439 -1.25 Td [(Nemeth, E.,)-500(xxxii, 951)]TJ /TT0 1 Tf T* ()Tj /T1_0 1 Tf 5.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9, 186)Tj /TT0 1 Tf -10.039 -1.25 Td (netent)Tj /T1_0 1 Tf 4.017 0 Td [(str)8(uctur)18(e, )-250(598)]TJ /TT0 1 Tf -4.017 -1.25 Td ()Tj /T1_0 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj /TT0 1 Tf -10.639 -1.25 Td ()Tj /T1_0 1 Tf 8.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9, 595, 605)Tj /TT0 1 Tf -13.039 -1.25 Td ()Tj /T1_0 1 Tf 9.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj -13.639 -1.25 Td [(Network File System, Sun Micr)18(osystems,)]TJ /T1_2 1 Tf 18.607 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td (NFS)Tj -20.024 -1.25 Td (Network Information Service,)Tj /T1_2 1 Tf 13.716 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td (NIS)Tj -15.133 -1.25 Td [(network logins,)-500(290)]TJ 8.991 0.09 Td (\320)Tj 0.583 -0.09 Td (293)Tj 16.425 65.625 Td [(network printer communication,)-500(789)]TJ 16.541 0.09 Td (\320)Tj 0.583 -0.09 Td (843)Tj -17.125 -1.25 Td [(Neville-Neil, G. V)129(., )-250(74,)]TJ -0.055 Tc 10.308 0 Td (11)Tj 0 Tc 0.945 0 Td [(2, 1)55(16, 951)]TJ /TT0 1 Tf -11.253 -1.25 Td (newgrp)Tj /T1_0 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(183)]TJ /TT0 1 Tf -4.017 -1.25 Td (nfds_t)Tj /T1_0 1 Tf 4.017 0 Td [(data type,)-500(507)]TJ /TT0 1 Tf -4.017 -1.25 Td (_NFILE)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(51)]TJ -4.017 -1.25 Td [(NFS \(Network File System, Sun Micr)18(osystems\), )-250(76,)]TJ 2.7 -1.25 Td (787)Tj /TT0 1 Tf -2.7 -1.25 Td (nftw)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(122,)-250(131)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (132, 135, 442, 452, 910)Tj /TT0 1 Tf -11.44 -1.25 Td (NGROUPS_MAX)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(39,)-250(43, 49, 183)]TJ 10.563 0.09 Td (\320)Tj 0.583 -0.09 Td (184)Tj /TT0 1 Tf -18.163 -1.25 Td (nice)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(276)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (277)Tj -8.09 -1.25 Td [(de\336nition of,)-500(276)]TJ -1.35 -1.25 Td [(nice value,)-500(252, 276)]TJ 8.817 0.09 Td (\320)Tj 0.583 -0.09 Td (277, 279)Tj -9.4 -1.25 Td [(Niever)18(gelt, J.,)-500(744, 750, 949)]TJ T* [(NIS \(Network Information Service\),)-500(185)]TJ T* [(NIS+, )-250(185)]TJ T* (NL terminal character)Tj 0.5 Tc 9.68 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 680)Tj 3.083 0.09 Td (\320)Tj 0.583 -0.09 Td (681, 687, 700, 703)Tj /TT0 1 Tf -14.597 -1.25 Td (NL0)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(689)]TJ /TT0 1 Tf -2.217 -1.25 Td (NL1)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(689)]TJ /TT0 1 Tf -2.217 -1.25 Td (NL_ARGMAX)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(39)]TJ /TT0 1 Tf -5.817 -1.25 Td (NLDLY)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(684, 689)]TJ /TT0 1 Tf -3.417 -1.25 Td (nlink_t)Tj /T1_0 1 Tf 4.617 0 Td [(data type,)-500(59, 1)55(14)]TJ /TT0 1 Tf -4.617 -1.25 Td (nl_langinfo)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -7.017 -1.25 Td (NL_LANGMAX)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(41)]TJ /TT0 1 Tf -6.417 -1.25 Td (NL_MSGMAX)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(39)]TJ /TT0 1 Tf -5.817 -1.25 Td (NL_SETMAX)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(39)]TJ /TT0 1 Tf -5.817 -1.25 Td (NLSPATH)Tj /T1_0 1 Tf 4.617 0 Td [(envir)18(onment variable,)-500(21)55(1)]TJ /TT0 1 Tf -4.617 -1.25 Td (NL_TEXTMAX)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(39)]TJ /TT0 1 Tf -6.417 -1.25 Td ()Tj /T1_0 1 Tf 7.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj /TT0 1 Tf -11.839 -1.25 Td (nobody)Tj /T1_0 1 Tf 4.017 0 Td [(login name,)-500(178)]TJ 7.293 0.09 Td (\320)Tj 0.583 -0.09 Td (179)Tj /TT0 1 Tf -11.893 -1.25 Td (NOFILE)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(51)]TJ /TT0 1 Tf -4.017 -1.25 Td (NOFLSH)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(676,)-250(689)]TJ /TT0 1 Tf -4.017 -1.25 Td (NOKERNINFO)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(676,)-250(682, 689)]TJ /TT0 1 Tf -6.417 -1.25 Td (nologin)Tj /T1_0 1 Tf 4.617 0 Td [(pr)18(ogram, )-250(179)]TJ -4.617 -1.25 Td (nonblocking)Tj 1.35 -1.25 Td [(I/O, )-250(481)]TJ 4.062 0.09 Td (\320)Tj 0.583 -0.09 Td (484)Tj -4.646 -1.25 Td [(socket I/O,)-500(608)]TJ 7.087 0.09 Td (\320)Tj 0.583 -0.09 Td (609, 627)Tj -9.021 -1.25 Td [(noncanonical mode, terminal I/O,)-500(703)]TJ 17.218 0.09 Td (\320)Tj 0.583 -0.09 Td (710)Tj -17.801 -1.25 Td [(nonfatal err)18(or)]TJ 0.5 Tc 6.028 0 Td (,1)Tj 0 Tc 1.25 0 Td (6)Tj -7.278 -1.25 Td [(nonlocal goto,)-500(213)]TJ 8.339 0.09 Td (\320)Tj 0.583 -0.09 Td (220, 355)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (358)Tj -13.089 -1.25 Td [(NPTL \(Native POSIX Thr)18(eads Library\),)-500(xxiii, 388)]TJ /TT0 1 Tf T* (ntohl)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(594,)-250(81)55(1, 825, 842)]TJ -2.067 -1.25 Td [(de\336nition of,)-500(594)]TJ /TT0 1 Tf -1.35 -1.25 Td (ntohs)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(594,)-250(604, 842)]TJ -2.067 -1.25 Td [(de\336nition of,)-500(594)]TJ /TT0 1 Tf -1.35 -1.25 Td (NULL)Tj /T1_0 1 Tf 2.817 0 Td [(constant, )-250(823)]TJ -2.817 -1.25 Td [(null signal,)-500(314, 337)]TJ /TT0 1 Tf T* (NZERO)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(41,)-250(276)]TJ 7.563 0.09 Td (\320)Tj 0.583 -0.09 Td (277)Tj /TT0 1 Tf -11.563 -4.75 Td (O_ACCMODE)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(83)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (84)Tj /TT0 1 Tf -11.963 -1.25 Td (O_APPEND)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(63,)-250(66, 72, 77)]TJ 10.063 0.09 Td (\320)Tj 0.583 -0.09 Td (78, 83)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (84, 149,)Tj -16.33 -1.25 Td [(497, 51)55(1)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47653 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 454.665 708 Tm [(Pr)18(eface)]TJ /T1_1 1 Tf 5.216 0 Td (xxiii)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(ar)18(ea )-4(of )-4(dif)18(fer)18(ences )-4(between )-4(these )-4(two )-4(versions )-4(is )-4(the )-4(thr)17(eads )-4(subsystem.)-504(Between )-4(Linux)]TJ -0 -1.2 Td [(2.4 )-9(and )-9(Linux )-9(2.6, )-9(the )-9(thr)18(eads )-9(implementation )-9(was )-9(changed )-9(to )-9(the )-9(Native )-9(POSIX )-9(Thr)21(ead)]TJ 0 -1.2 TD (Library)Tj 3.619 0.04 Td (\()Tj 0.333 -0.04 Td (NPTL)Tj 2.659 0.04 Td (\))Tj 0.5685 Tc 0.333 -0.04 Td (.N)Tj 0 Tc 1.649 0 Td [(PTL )-68(makes )-68(thr)18(eads )-68(on )-68(Linux )-68(behave )-68(mor)]TJ 0.3186 Tc 18.575 0 Td (el)Tj 0 Tc 1.089 0 Td [(ike )-69(thr)18(eads )-69(on )-69(the )-69(other)]TJ -28.258 -1.2 Td (systems.)Tj 1.8 -1.2 Td [(In )-127(total, )-127(this )-127(edition )-127(includes )-127(mor)]TJ 0.3766 Tc 15.321 0 Td (et)Tj 0 Tc 1.182 0 Td [(han )-127(70 )-127(new )-127(interfaces, )-127(including )-127(interfaces )-127(to)]TJ -18.303 -1.2 Td [(handle )-93(asynchr)18(onous )-93(I/O, )-93(spin )-93(locks, )-93(barriers, )-93(and )-93(POSIX )-93(semaphor)21(es. )-343(Most)-342(obsolete)]TJ T* (interfaces ar)Tj 0.25 Tc 5.38 0 Td (er)Tj 0 Tc 1.106 0 Td (emoved, except for a few ubiquitous ones.)Tj /TT0 1 Tf -10.086 -3.6 Td [(Ac)20(kno)15(wledgments)]TJ /T1_0 1 Tf 3.6 -2.16 Td [(Many )-192(r)18(eaders )-192(have )-192(e-mailed )-192(comments )-192(and )-192(bug )-192(r)18(eports )-192(on )-192(the )-192(second )-192(edition.)-696(My)]TJ 0 -1.2 Td [(thanks )-25(to )-25(them )-25(for )-25(impr)18(oving )-25(the )-25(accuracy )-25(of )-25(the )-25(information )-25(pr)13(esented. )-275(The)-276(following)]TJ T* [(people )-75(wer)]TJ 0.3247 Tc 5.012 0 Td (et)Tj 0 Tc 1.13 0 Td [(he )-75(\336rst )-75(to )-75(make )-75(a )-75(particular )-75(suggestion )-75(or )-75(point )-75(out )-75(a )-75(speci\336c )-75(err)22(or: )-75(Seth)]TJ -6.141 -1.2 Td [(Arnold, )-28(Luke )-28(Bakken, )-28(Rick )-28(Ballar)18(d, )-28(Johannes )-28(Bittner)]TJ 0.2778 Tc 23.257 0 Td (,D)Tj 0 Tc 1.302 0 Td [(avid )-28(Br)18(onder)]TJ 0.2778 Tc 5.772 0 Td (,V)Tj 0 Tc 1.25 0 Td [(lad )-28(Buslov)]TJ 0.2779 Tc 4.609 0 Td (,P)Tj 0 Tc 1.132 0 Td (eter)Tj -37.321 -1.2 Td (Butler)Tj 0.4795 Tc 2.631 0 Td (,Y)Tj 0 Tc 1.306 0 Td [(uching )-229(Chen, )-229(Mike )-229(Cheng, )-229(Jim )-229(Collins, )-229(Bob )-229(Cousins, )-229(W)51(ill )-229(Dennis, )-229(Thomas)]TJ -3.938 -1.2 Td (Dickey)Tj 0.3175 Tc 2.989 0 Td (,L)Tj 0 Tc 1.179 0 Td [(o\225c )-67(Domaign\216, )-67(Igor )-67(Fuksman, )-67(Alex )-67(Gezerlis, )-67(M. )-67(Scott )-67(Gor)14(don, )-68(T)55(imothy )-68(Goya,)]TJ -0.092 Tc -4.168 -1.2 Td (To)Tj 0 Tc 1.067 0 Td [(ny )-106(Graham, )-106(Michael )-106(Hobgood, )-106(Michael )-106(Kerrisk, )-106(Y)92(oungho )-106(Kwon, )-106(Richar)]TJ 0.3563 Tc 32.673 0 Td (dL)Tj 0 Tc 1.578 0 Td [(i, )-106(Xueke)]TJ -35.319 -1.2 Td [(Liu, )-166(Y)90(un )-166(Long, )-166(Dan )-166(McGr)17(egor)]TJ 0.4163 Tc 14.015 0 Td (,D)Tj 0 Tc 1.44 0 Td [(ylan )-166(McNamee, )-166(Gr)18(eg )-166(Miller)]TJ 0.4163 Tc 12.784 0 Td (,S)Tj 0 Tc 1.191 0 Td [(imon )-166(Mor)18(gan, )-166(Harry)]TJ -29.43 -1.2 Td [(Newton, )-351(Jim )-351(Old\336eld, )-351(Scott )-351(Parish, )-351(Zvezdan )-351(Petkovic, )-351(David )-351(Reiss, )-351(Konstantinos)]TJ T* [(Sakoutis, )-419(David )-419(Smoot, )-419(David )-419(Somers, )-419(Andriy )-419(Tkachuk, )-419(Nathan )-419(W)90(eeks, )-419(Florian)]TJ -0.092 Tc T* (We)Tj 0 Tc 1.387 0 Td (imer)Tj 0.25 Tc 1.974 0 Td (,Q)Tj 0 Tc 1.286 0 Td [(ingyang Xu, and Michael Zalokar)74(.)]TJ -2.847 -1.2 Td [(The )-360(technical )-360(r)18(eviewers )-360(impr)18(oved )-360(the )-360(accuracy )-360(of )-360(the )-360(information )-360(pr)19(esented.)]TJ -1.8 -1.2 Td [(Thanks )-93(to )-93(Steve )-93(Albert, )-93(Bogdan )-93(Barbu, )-93(and )-93(Robert )-93(Day)]TJ 0.5933 Tc 25.018 0 Td (.S)Tj 0 Tc 1.368 0 Td [(pecial )-93(thanks )-93(to )-93(Geof)]TJ 0.3434 Tc 9.581 0 Td (fC)Tj 0 Tc 1.385 0 Td [(lar)18(e)]TJ -37.353 -1.2 Td [(and )-327(Andr)18(ew )-327(Josey )-327(for )-327(pr)20(oviding )-326(insights )-326(into )-326(the )-326(Single )-326(UNIX )-326(Speci\336cation )-326(and)]TJ T* [(helping )-234(to )-234(impr)18(ove )-234(the )-234(accuracy )-234(of )-234(Chapter )-234(2.)-733(Also, )-234(thanks )-234(to )-234(Ken )-234(Thompson )-234(for)]TJ T* (answering history questions.)Tj 1.8 -1.2 Td [(Once )-138(again, )-138(the )-138(staf)18(f)-388(at)-388(Addison-W)92(esley )-138(was )-138(gr)18(eat )-138(to )-138(work )-138(with.)-638(Thanks )-138(to )-138(Kim)]TJ -1.8 -1.2 Td (Boedigheimer)Tj 0.4688 Tc 6.129 0 Td (,R)Tj 0 Tc 1.387 0 Td [(omny )-219(Fr)18(ench, )-219(John )-219(Fuller)]TJ 0.4688 Tc 11.827 0 Td (,J)Tj 0 Tc 1.052 0 Td [(essica )-219(Goldstein, )-219(Julie )-219(Nahil, )-219(and )-219(Debra)]TJ -0.055 Tc -20.395 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td (lliams-Cauley)Tj 0.8408 Tc 6.04 0 Td (.I)Tj 0.5908 Tc 1.428 0 Td (na)Tj 0 Tc 1.673 0 Td [(ddition, )-341(thanks )-341(to )-341(Jill )-341(Hobbs )-341(for )-341(pr)18(oviding )-341(her )-341(copyediting)]TJ -10.377 -1.2 Td [(expertise this time ar)18(ound.)]TJ 1.8 -1.2 Td (Finally)Tj 0.4063 Tc 2.956 0 Td (,t)Tj 0 Tc 0.982 0 Td [(hanks )-156(to )-156(my )-156(family )-156(for )-156(their )-156(understanding )-156(while )-156(I )-156(spent )-156(so )-156(much )-156(time)]TJ -5.738 -1.2 Td (working on this updated edition.)Tj 1.8 -1.2 Td [(As )-152(befor)18(e, )-152(the )-152(sour)18(ce )-152(code )-152(pr)20(esented )-152(her)18(e)-402(is)-402(a)1(vailable )-152(at)]TJ /TT1 1 Tf 26.362 0 Td (www.apuebook.com)Tj /T1_0 1 Tf 0.6516 Tc (.I)Tj 0 Tc -28.162 -1.2 Td [(welcome e-mail fr)18(om any r)18(eaders with comments, suggestions, or bug \336xes.)]TJ /T1_2 1 Tf -0.02 Tc 0 -3.36 TD (Wa)Tj 0 Tc 1.368 0 Td [(rr)18(en, New Jersey)]TJ /T1_0 1 Tf 30.26 0 Td (Stephen A. Rago)Tj /T1_2 1 Tf -31.628 -1.2 Td (January 2013)Tj /TT1 1 Tf 29.4 0 Td (sar@apuebook.com)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47654 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(8.16)]TJ 35.071 0 Td [(Pr)18(ocess )-250(Scheduling)]TJ /T1_1 1 Tf 10.762 0 Td (279)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 172.7896 670.2598 Tm (err_sys\("fork failed"\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(pid == 0\) {)-1200(/* child */)]TJ 0.6 Tc 0.6 -1.189 Td (s=")Tj 0 Tc 3 0 Td (child";)Tj -3 -1.189 Td (printf\("current nice value in child is %d, adjusting by %d\\n",)Tj 1.2 -1.189 Td (nice\(0\)+nzero, adj\);)Tj -1.2 -1.189 Td (errno = 0;)Tj 0 -1.189 TD (if \(\(ret = nice\(adj\)\) == -1 && errno != 0\))Tj 2.4 -1.189 Td (err_sys\("child set scheduling priority"\);)Tj -2.4 -1.189 Td (printf\("now child nice value is %d\\n", ret+nzero\);)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse {)-4800(/* parent */)]TJ 0.6 Tc 0.6 -1.189 Td (s=")Tj 0 Tc 3 0 Td (parent";)Tj -3 -1.189 Td (printf\("current nice value in parent is %d\\n", nice\(0\)+nzero\);)Tj -2.4 -1.189 Td (})Tj T* (for\(;;\) {)Tj 2.4 -1.189 Td (if \(++count == 0\))Tj 2.4 -1.189 Td (err_quit\("%s counter wrap", s\);)Tj -2.4 -1.189 Td (checktime\(s\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 4729.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 221.8694 456.8442 Tm (Figure 8.30)Tj /T1_0 1 Tf 5.695 0 Td [(Evaluate the ef)18(fect of changing the nice value)]TJ -0.092 Tc 9.9988 0 0 9.9988 147.5825 432.8471 Tm [(We )-371(r)]TJ 0 Tc 2.211 0 Td [(un )-186(the )-186(pr)17(ogram )-186(twice: )-186(once )-186(with )-186(the )-186(default )-186(nice )-186(value, )-186(and )-186(once )-186(with )-186(the)]TJ -4.011 -1.2 Td [(highest )-29(valid )-29(nice )-29(value )-29(\(the )-29(lowest )-29(scheduling )-29(priority\).)]TJ -0.092 Tc 25.682 0 Td [(We )-213(r)]TJ 0 Tc 2.053 0 Td [(un )-29(this )-29(on )-29(a )-29(unipr)17(ocessor)]TJ -27.735 -1.2 Td [(Linux )-319(system )-319(to )-319(show )-319(how )-319(the )-319(scheduler )-319(shar)18(es )-319(the )-319(CPU )-319(among )-319(pr)18(ocesses )-319(with)]TJ 0 -1.2 TD [(dif)18(fer)18(ent )-205(nice )-205(values.)]TJ -0.055 Tc 10.315 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-205(an )-205(otherwise )-205(idle )-205(system, )-205(a )-205(multipr)20(ocessor )-205(system )-205(\(or )-205(a)]TJ -11.551 -1.2 Td (multicor)Tj 0.3728 Tc 3.761 0 Td (eC)Tj 0 Tc 1.561 0 Td [(PU\) )-123(would )-123(allow )-123(both )-123(pr)18(ocesses )-123(to )-123(r)8(un )-123(without )-123(the )-123(need )-123(to )-123(shar)]TJ 0.3727 Tc 29.613 0 Td (eaC)Tj 0 Tc 2.433 0 Td (PU,)Tj -37.368 -1.2 Td [(and )-22(we )-22(wouldn\325t )-22(see )-22(much )-22(dif)16(fer)18(ence )-22(between )-22(two )-22(pr)18(ocesses )-22(with )-22(dif)16(fer)18(ent )-22(nice )-22(values.)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5821 356.1567 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (NZERO = 20)Tj 0 -1.189 TD (current nice value in parent is 20)Tj 0 -1.189 TD (current nice value in child is 20, adjusting by 0)Tj 0 -1.189 TD (now child nice value is 20)Tj 0 -1.189 TD (child count = 1859362)Tj 0 -1.189 TD (parent count = 1845338)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out 20)Tj /TT0 1 Tf -1.2 -1.189 Td (NZERO = 20)Tj 0 -1.189 TD (current nice value in parent is 20)Tj T* (current nice value in child is 20, adjusting by 20)Tj 0 -1.189 TD (now child nice value is 39)Tj 0 -1.189 TD (parent count = 3595709)Tj 0 -1.189 TD (child count = 52111)Tj /T1_0 1 Tf 9.9988 0 0 9.9988 147.5821 199.0763 Tm [(When )-27(both )-27(pr)17(ocesses )-27(have )-27(the )-27(same )-27(nice )-27(value, )-27(the )-27(par)18(ent )-27(pr)18(ocess )-27(gets )-27(50.2% )-27(of )-27(the)]TJ -1.8 -1.2 Td [(CPU )-100(and )-100(the )-100(child )-100(gets )-100(49.8% )-100(of )-100(the )-100(CPU.)-604(Note )-100(that )-100(the )-100(two )-100(pr)18(ocesses )-100(ar)]TJ 0.3505 Tc 33.612 0 Td (ee)Tj -0.018 Tc 1.309 0 Td (ff)Tj 0 Tc 0.648 0 Td (ectively)Tj -35.569 -1.2 Td [(tr)18(eated )-93(equally)]TJ 0.5934 Tc 6.61 0 Td (.T)Tj 0 Tc 1.456 0 Td [(he )-93(per)18(centages )-93(ar)18(en\325t )-93(exactly )-93(equal, )-93(because )-93(pr)18(ocess )-93(scheduling )-93(isn\325t)]TJ -8.067 -1.2 Td [(exact, )-318(and )-318(because )-318(the )-318(child )-318(and )-318(par)15(ent )-319(perform )-319(dif)19(fer)18(ent )-319(amounts )-319(of )-319(pr)19(ocessing)]TJ -0 -1.2 Td [(between )-86(the )-86(time )-86(that )-86(the )-86(end )-86(time )-86(is )-86(calculated )-86(and )-86(the )-86(time )-86(that )-86(the )-86(pr)19(ocessing )-86(loop)]TJ 0 -1.2 TD (begins.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47655 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(4.14)]TJ 38.136 0 Td [(File )-250(Systems)]TJ /T1_1 1 Tf -0.037 Tc 7.734 0 Td (11)Tj 0 Tc 0.963 0 Td (5)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 0.883 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm (\245B)Tj 0 Tc 2.1 0 Td [(ecause )-26(the )-26(i-node )-26(number )-26(in )-26(the )-26(dir)18(ectory )-26(entry )-26(points )-26(to )-26(an )-26(i-node )-26(in )-26(the )-26(same )-26(\336le)]TJ -0.611 -1.2 Td [(system, )-121(a )-121(dir)18(ectory )-121(entry )-121(can\325t )-121(r)18(efer )-121(to )-121(an )-121(i-node )-121(in )-121(a )-121(dif)22(fer)18(ent )-121(\336le )-121(system.)-621(This )-121(is)]TJ -0 -1.2 Td [(why )-50(the)]TJ /TT0 1 Tf 3.958 0 Td (ln)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.633 -0.04 Td [(command )-50(\(make )-50(a )-50(new )-50(dir)18(ectory )-50(entry )-50(that )-50(points )-50(to )-50(an )-50(existing )-50(\336le\))]TJ -6.624 -1.2 Td [(can\325t cr)18(oss \336le systems.)]TJ -0.092 Tc 10.736 0 Td [(We )-184(d)]TJ 0 Tc 2.248 0 Td (escribe the)Tj /TT0 1 Tf 4.952 0 Td (link)Tj /T1_0 1 Tf 2.65 0 Td (function in the next section.)Tj 0.883 Tc -22.075 -1.6 Td (\245W)Tj 0 Tc 2.489 0 Td [(hen )-104(r)18(enaming )-104(a )-104(\336le )-104(without )-104(changing )-104(\336le )-104(systems, )-104(the )-104(actual )-104(contents )-104(of )-104(the )-104(\336le)]TJ -1 -1.2 Td [(need )-82(not )-82(be )-82(moved)]TJ 0.0833 Tc 8.8 0 Td (\321a)Tj 0 Tc 1.583 0 Td [(ll )-82(that )-82(needs )-82(to )-82(be )-82(done )-82(is )-82(to )-82(add )-82(a )-82(new )-82(dir)20(ectory )-82(entry )-82(that)]TJ -10.383 -1.2 Td [(points )-45(to )-45(the )-45(existing )-45(i-node )-45(and )-45(then )-45(unlink )-45(the )-45(old )-45(dir)18(ectory )-45(entry)]TJ 0.5447 Tc 30.232 0 Td (.T)Tj 0 Tc 1.408 0 Td [(he )-45(link )-45(count)]TJ -31.639 -1.2 Td [(will )-479(r)18(emain )-479(the )-479(same.)-979(For )-479(example, )-479(to )-479(r)18(ename )-479(the )-479(\336le)]TJ /TT0 1 Tf 28.71 0 Td (/usr/lib/foo)Tj /T1_0 1 Tf 7.929 0 Td (to)Tj /TT0 1 Tf -36.639 -1.2 Td (/usr/foo)Tj /T1_0 1 Tf 0.5792 Tc (,t)Tj 0 Tc 5.955 0 Td [(he )-329(contents )-329(of )-329(the )-329(\336le)]TJ /TT0 1 Tf 11.307 0 Td (foo)Tj /T1_0 1 Tf 2.379 0 Td [(need )-329(not )-329(be )-329(moved )-329(if )-329(the )-329(dir)17(ectories)]TJ /TT0 1 Tf -19.641 -1.2 Td (/usr/lib)Tj /T1_0 1 Tf 5.136 0 Td (and)Tj /TT0 1 Tf 2.029 0 Td (/usr)Tj /T1_0 1 Tf 2.736 0 Td (ar)Tj 0.336 Tc 0.877 0 Td (eo)Tj 0.3361 Tc 1.361 0 Td (nt)Tj 0 Tc 1.244 0 Td [(he )-86(same )-86(\336le )-86(system.)-586(This )-86(is )-86(how )-86(the)]TJ /TT0 1 Tf 16.977 0 Td (mv)Tj /T1_0 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.669 -0.04 Td (command)Tj -33.062 -1.2 Td (usually operates.)Tj -0.092 Tc 0.311 -1.68 Td (We)Tj 0 Tc 1.387 0 Td [(\325ve )-34(talked )-34(about )-34(the )-34(concept )-34(of )-34(a )-34(link )-34(count )-34(for )-34(a )-34(r)18(egular )-34(\336le, )-34(but )-34(what )-34(about )-34(the)]TJ -3.187 -1.2 Td [(link )-70(count )-70(\336eld )-70(for )-70(a )-70(dir)17(ectory? )-320(Assume)-321(that )-70(we )-70(make )-70(a )-70(new )-70(dir)18(ectory )-70(in )-70(the )-70(working)]TJ 0 -1.2 TD [(dir)18(ectory)111(,)-250(as)-250(in)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 488.5406 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (mkdir testdir)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 471.6119 Tm (Figur)Tj 0.2992 Tc 2.383 0 Td (e4)Tj 0 Tc 1.278 0 Td [(.15 )-49(shows )-49(the )-49(r)17(esult. )-299(Note)-299(that )-49(in )-49(this )-49(\336gur)18(e, )-49(we )-49(explicitly )-49(show )-49(the )-49(entries )-49(for)]TJ -3.661 -1.2 Td (dot and dot-dot.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 2.8 w 1 j 1 J 1662 4146.4 720 216 re S Q BT /T1_0 1 Tf 6.9992 0 0 6.9992 183.145 423.8491 Tm (i-node array)Tj ET q 0.99988 0 0 0.99988 0 0 cm 0.699 g 238.2 414.64 93.6 21.6 re f Q q 0.099988 0 0 0.099988 0 0 cm 2.8 w 1 j 1 J 2382 4146.4 936 216 re S Q q 0.099988 0 0 0.099988 0 0 cm 2.8 w 1 j 1 J 3318 4146.4 324 216 re S Q BT /T1_0 1 Tf 6.9987 0 0 6.9987 333.8529 428.3229 Tm [(dir)18(ectory)]TJ 0.817 -1.286 Td (block)Tj ET q 0.99982 0 0 0.99982 0 0 cm 0.699 g 364.2 414.64 72 21.6 re f Q q 0.099982 0 0 0.099982 0 0 cm 2.8 w 1 j 1 J 3642 4146.4 720 216 re S Q q 0.099982 0 0 0.099982 0 0 cm 2.8 w 1 j 1 J 4362 4146.4 324 216 re S Q BT /T1_0 1 Tf 6.9983 0 0 6.9983 438.2078 428.2972 Tm [(dir)18(ectory)]TJ 0.817 -1.286 Td (block)Tj ET q 0.99976 0 0 0.99976 0 0 cm 0.699 g 468.6 414.64 36 21.6 re f Q q 0.099976 0 0 0.099976 0 0 cm 2.8 w 1 j 1 J 4686 4146.4 360 216 re S Q q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 238.2 443.44 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 2382 4434.3999 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2454.25 4434.25 cm 0 0 m 648 0 l S Q Q q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 504.6 443.44 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 5046 4434.3999 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099964 0 0 0.099964 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4974.25 4434.25 cm 0 0 m -648 0 l S Q Q BT /T1_0 1 Tf 6.9971 0 0 6.9971 321.275 441.7144 Tm [(dir)18(ectory blocks and data blocks)]TJ ET q 0.099958 0 0 0.099958 0 0 cm 2.8 w 1 j 1 J 1446 3246.4 216 216 re S Q BT /T1_0 1 Tf 6.9966 0 0 6.9966 145.3832 338.2376 Tm (i-node)Tj 1.171 -1.286 Td (0)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm 0.699 g 166.2 324.64 28.8 21.6 re f Q q 0.099952 0 0 0.099952 0 0 cm 2.8 w 1 j 1 J 1662 3246.4 288 216 re S Q q 0.099952 0 0 0.099952 0 0 cm 2.8 w 1 j 1 J 1950 3246.4 216 216 re S Q BT /T1_0 1 Tf 6.9962 0 0 6.9962 195.7473 338.2173 Tm (i-node)Tj 0.421 -1.286 Td (1267)Tj ET q 0.9994601 0 0 0.9994601 0 0 cm 0.699 g 216.6 324.64 28.8 21.6 re f Q q 0.099946 0 0 0.099946 0 0 cm 2.8 w 1 j 1 J 2166 3246.4 288 216 re S Q q 0.099946 0 0 0.099946 0 0 cm 2.8 w 1 j 1 J 2454 3246.4 216 216 re S Q BT /T1_0 1 Tf 6.9958 0 0 6.9958 246.1053 338.197 Tm (i-node)Tj 0.421 -1.286 Td (2549)Tj ET q 0.9994002 0 0 0.9994002 0 0 cm 0.699 g 267 324.64 28.8 21.6 re f Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J 2670 3246.4 288 216 re S Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1647.25 4110.25 cm 0 0 m -10 -34 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1625.25 4038.25 cm 0 0 m -11 -34 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1603.25 3965.25 cm 0 0 m -10 -34 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1581.25 3893.25 cm 0 0 m -11 -34 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1559.25 3821.25 cm 0 0 m -11 -34 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1537.25 3749.25 cm 0 0 m -11 -34 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1515.25 3677.25 cm 0 0 m -11 -35 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1493.25 3605.25 cm 0 0 m -11 -35 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1471.25 3533.25 cm 0 0 m -11 -35 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2748.25 3710.25 cm 0 0 m 23 -28 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2798.25 3649.25 cm 0 0 m 23 -28 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2848.25 3587.25 cm 0 0 m 23 -28 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2899.25 3526.25 cm 0 0 m 23 -28 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2794.25 3654.25 cm 0 0 m -23 28 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2750.25 3708.25 cm 0 0 m -23 28 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2705.25 3761.25 cm 0 0 m -23 28 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2661.25 3814.25 cm 0 0 m -23 28 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2617.25 3868.25 cm 0 0 m -23 28 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2573.25 3922.25 cm 0 0 m -23 28 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2529.25 3976.25 cm 0 0 m -23 28 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2485.25 4029.25 cm 0 0 m -23 28 l S Q Q q 0.09994 0 0 0.09994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2441.25 4082.25 cm 0 0 m -23 28 l S Q Q q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 452.4 414.64 cm 0 0 m -6.48 -3.672 l -7.416 -0.216 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 4524 4146.3999 cm 0 0 m -64.8 -36.72 l -74.16 -2.16 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2058.25 3462.25 cm 0 0 m 2397 665 l S Q Q BT /T1_0 1 Tf 6.7404 1.8697 -1.8697 6.7404 377.4132 387.379 Tm (data block)Tj ET q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 348 414.64 cm 0 0 m -4.68 -5.76 l -6.84 -2.88 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 3480 4146.3999 cm 0 0 m -46.8 -57.6 l -68.4 -28.8 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2562.25 3462.25 cm 0 0 m 860 641 l S Q Q BT /T1_0 1 Tf 5.6088 4.1791 -4.1791 5.6088 290.1026 375.0413 Tm (data block)Tj ET q 0.099922 0 0 0.099922 0 0 cm 2.8 w 1 j 1 J 3120 2922.4 720 288 re S Q q 0.099922 0 0 0.099922 0 0 cm 2.8 w 1 j 1 J 3120 3066.4 216 143.996 re S Q BT /T1_0 1 Tf 6.9941 0 0 6.9941 315.5348 312.0378 Tm (2549)Tj ET q 0.099916 0 0 0.099916 0 0 cm 2.8 w 1 j 1 J 3336 3066.4 504 143.996 re S Q BT /TT0 1 Tf 8.9919 0 0 8.9919 338.695 312.019 Tm (.)Tj ET q 0.09991 0 0 0.09991 0 0 cm 2.8 w 1 j 1 J 3120 2922.4 216 144 re S Q BT /T1_0 1 Tf 6.9933 0 0 6.9933 315.497 297.6141 Tm (1267)Tj ET q 0.099904 0 0 0.099904 0 0 cm 2.8 w 1 j 1 J 3336 2922.4 504 144 re S Q BT /TT0 1 Tf 8.9908 0 0 8.9908 338.6544 297.5963 Tm (..)Tj ET q 0.099898 0 0 0.099898 0 0 cm 2.8 w 1 j 1 J 4164 2274.4 720 576 re S Q q 0.099898 0 0 0.099898 0 0 cm 2.8 w 1 j 1 J 4164 2706.4 216 143.996 re S Q BT /T1_0 1 Tf 6.9924 0 0 6.9924 419.7464 276.0017 Tm (1267)Tj ET q 0.0998921 0 0 0.0998921 0 0 cm 2.8 w 1 j 1 J 4380 2706.4 504 143.996 re S Q BT /TT0 1 Tf 8.9897 0 0 8.9897 442.8948 275.9852 Tm (.)Tj ET q 0.0998861 0 0 0.0998861 0 0 cm 2.8 w 1 j 1 J 4164 2562.4 216 144 re S Q BT /T1_0 1 Tf 5.9928 0 0 5.9928 418.1719 264.8819 Tm (i-node)Tj -0.327 -1.1 Td (number)Tj ET q 0.0998801 0 0 0.0998801 0 0 cm 2.8 w 1 j 1 J 4380 2562.4 504 144 re S Q BT /TT0 1 Tf 8.9887 0 0 8.9887 442.8417 261.5702 Tm (..)Tj ET q 0.0998741 0 0 0.0998741 0 0 cm 2.8 w 1 j 1 J 4164 2346.4 216 143.996 re S Q BT /T1_0 1 Tf 6.9908 0 0 6.9908 419.6457 239.983 Tm (2549)Tj ET q 0.0998681 0 0 0.0998681 0 0 cm 2.8 w 1 j 1 J 4380 2346.4 504 143.996 re S Q BT /TT0 1 Tf 6.9903 0 0 6.9903 441.5902 239.9686 Tm (testdir)Tj ET q 0.9986209 0 0 0.9986209 0 0 cm 0.699 g 416.4 249.04 72 7.2 re f Q q 0.0998621 0 0 0.0998621 0 0 cm 2.8 w 1 j 1 J 4164 2490.4 720 72 re S Q q 0.998561 0 0 0.998561 0 0 cm 0.699 g 416.4 227.44 72 7.2 re f Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J 4164 2274.4 720 72 re S Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3311.25 4110.25 cm 0 0 m -8 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3296.25 4041.25 cm 0 0 m -7 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3281.25 3972.25 cm 0 0 m -7 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3267.25 3903.25 cm 0 0 m -8 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3252.25 3834.25 cm 0 0 m -8 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3237.25 3765.25 cm 0 0 m -7 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3223.25 3695.25 cm 0 0 m -7 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3208.25 3627.25 cm 0 0 m -8 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3193.25 3558.25 cm 0 0 m -7 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3179.25 3489.25 cm 0 0 m -7 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3164.25 3420.25 cm 0 0 m -8 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3149.25 3351.25 cm 0 0 m -7 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3134.25 3281.25 cm 0 0 m -7 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3649.25 4110.25 cm 0 0 m 7 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3663.25 4041.25 cm 0 0 m 8 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3678.25 3972.25 cm 0 0 m 8 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3693.25 3903.25 cm 0 0 m 7 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3708.25 3834.25 cm 0 0 m 7 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3722.25 3765.25 cm 0 0 m 8 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3737.25 3695.25 cm 0 0 m 7 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3752.25 3627.25 cm 0 0 m 7 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3766.25 3558.25 cm 0 0 m 8 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3781.25 3489.25 cm 0 0 m 7 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3796.25 3420.25 cm 0 0 m 7 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3810.25 3351.25 cm 0 0 m 7 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3825.25 3281.25 cm 0 0 m 8 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4355.25 4110.25 cm 0 0 m -5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4344.25 4040.25 cm 0 0 m -5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4334.25 3970.25 cm 0 0 m -5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4323.25 3901.25 cm 0 0 m -5 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4313.25 3831.25 cm 0 0 m -5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4302.25 3761.25 cm 0 0 m -5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4292.25 3690.25 cm 0 0 m -5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4281.25 3621.25 cm 0 0 m -5 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4270.25 3551.25 cm 0 0 m -5 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4260.25 3481.25 cm 0 0 m -5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4249.25 3411.25 cm 0 0 m -5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4239.25 3341.25 cm 0 0 m -5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4229.25 3271.25 cm 0 0 m -5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4218.25 3202.25 cm 0 0 m -5 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4208.25 3132.25 cm 0 0 m -5 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4198.25 3062.25 cm 0 0 m -5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4187.25 2992.25 cm 0 0 m -5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4176.25 2921.25 cm 0 0 m -5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4693.25 4110.25 cm 0 0 m 5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4704.25 4040.25 cm 0 0 m 5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4714.25 3970.25 cm 0 0 m 5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4725.25 3901.25 cm 0 0 m 5 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4735.25 3831.25 cm 0 0 m 5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4746.25 3761.25 cm 0 0 m 5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4756.25 3690.25 cm 0 0 m 5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4766.25 3621.25 cm 0 0 m 5 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4777.25 3551.25 cm 0 0 m 5 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4787.25 3481.25 cm 0 0 m 5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4798.25 3411.25 cm 0 0 m 5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4808.25 3341.25 cm 0 0 m 5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4819.25 3271.25 cm 0 0 m 5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4829.25 3202.25 cm 0 0 m 5 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4840.25 3132.25 cm 0 0 m 5 -36 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4850.25 3062.25 cm 0 0 m 5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4861.25 2992.25 cm 0 0 m 5 -35 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4872.25 2921.25 cm 0 0 m 5 -35 l S Q Q q 0.9985011 0 0 0.9985011 0 0 cm q 1 0 0 1 261.6 324.64 cm 0 0 m 4.248 -6.12 l 0.864 -7.416 l f Q Q q 0.0998501 0 0 0.0998501 0 0 cm 1 j 1 J q 1 0 0 1 2616 3246.3999 cm 0 0 m 42.48 -61.2 l 8.64 -74.16 l h S Q Q q 0.0998501 0 0 0.0998501 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3127.2 3138.3999 cm 0 0 m -228.6 -18 l -381 -30 -465.72 -13.08 -482.76 32.76 c -508.32 101.52 l S Q Q q 0.9984412 0 0 0.9984412 0 0 cm q 1 0 0 1 250.8 324.64 cm 0 0 m 4.248 -6.12 l 0.864 -7.416 l f Q Q q 0.0998441 0 0 0.0998441 0 0 cm 1 j 1 J q 1 0 0 1 2508 3246.3999 cm 0 0 m 42.48 -61.2 l 8.64 -74.16 l h S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4171.2002 2418.3999 cm 0 0 m -750.6 198 l -1251 330 -1527.72 466.92 -1580.76 608.76 c -1660.32 821.52 l S Q Q q 0.9983813 0 0 0.9983813 0 0 cm q 1 0 0 1 211.2 324.64 cm 0 0 m 6.264 -3.96 l 3.672 -6.408 l f Q Q q 0.0998381 0 0 0.0998381 0 0 cm 1 j 1 J q 1 0 0 1 2112 3246.3999 cm 0 0 m 62.64 -39.6 l 36.72 -64.08 l h S Q Q q 0.0998381 0 0 0.0998381 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3127.2 2994.3999 cm 0 0 m -336.6 -54 l -561 -90 -729.36 -48.84 -841.68 69.48 c -1010.16 246.96 l S Q Q q 0.9983214 0 0 0.9983214 0 0 cm q 1 0 0 1 200.4 324.64 cm 0 0 m 5.76 -4.68 l 2.88 -6.84 l f Q Q q 0.0998321 0 0 0.0998321 0 0 cm 1 j 1 J q 1 0 0 1 2004 3246.3999 cm 0 0 m 57.6 -46.8 l 28.8 -68.4 l h S Q Q q 0.0998321 0 0 0.0998321 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4171.2002 2778.3999 cm 0 0 m -858.6 18 l -1431 30 -1765.2 72 -1861.2 144 c -1957.2 216 -2031.48 287.04 -2084.04 357.12 c -2162.88 462.24 l S Q Q BT /T1_1 1 Tf 7.9861 0 0 7.9861 195.236 200.8901 Tm (Figure 4.15)Tj /T1_0 1 Tf 5.695 0 Td [(Sample cylinder gr)18(oup after cr)18(eating the dir)18(ectory)]TJ /TT0 1 Tf 22.361 0 Td (testdir)Tj /T1_0 1 Tf 9.9826 0 0 9.9826 129.3749 172.1402 Tm [(The )-42(i-node )-42(whose )-42(number )-42(is )-42(2549 )-42(has )-42(a )-42(type )-42(\336eld )-42(of )-42(\324)41(\324dir)18(ectory\325)]TJ 0.2916 Tc 28.417 0 Td (\325a)Tj 0 Tc 1.07 0 Td [(nd )-42(a )-42(link )-42(count )-42(equal)]TJ -29.486 -1.2 Td [(to )-46(2.)-546(Any )-46(leaf )-46(dir)18(ectory )-46(\(a )-46(dir)18(ectory )-46(that )-46(does )-46(not )-46(contain )-46(any )-46(other )-46(dir)18(ectories\) )-46(always)]TJ T* [(has )-147(a )-147(link )-147(count )-147(of )-147(2.)-647(The )-147(value )-147(of )-147(2 )-147(comes )-147(fr)18(om )-147(the )-147(dir)18(ectory )-147(entry )-147(that )-147(names )-147(the)]TJ T* [(dir)18(ectory )-165(\()]TJ /TT0 1 Tf (testdir)Tj /T1_0 1 Tf 0.4149 Tc (\)a)Tj 0 Tc 10.221 0 Td [(nd )-165(fr)18(om )-165(the )-165(entry )-165(for )-165(dot )-165(in )-165(that )-165(dir)19(ectory)]TJ 0.6648 Tc 19.653 0 Td (.T)Tj 0 Tc 1.528 0 Td [(he )-165(i-node )-165(whose)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47656 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (564)Tj /T1_1 1 Tf 3.5 0 Td [(Interpr)18(ocess )-250(Communication)]TJ 38.741 0 Td [(Chapter )-250(15)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(Note )-321(how )-321(ungracefully )-321(the )-321(r)17(emoval )-321(of )-321(a )-321(message )-321(queue )-321(is )-321(handled.)-821(Since )-321(a)]TJ -0.018 Tc -1.8 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(fer)18(ence )-84(count )-84(is )-84(not )-84(maintained )-84(with )-84(each )-84(message )-84(queue )-84(\(as )-84(ther)22(e)-334(is)-334(f)1(or )-84(open )-84(\336les\),)]TJ -0.856 -1.2 Td [(the )-325(r)18(emoval )-325(of )-325(a )-325(queue )-325(simply )-325(generates )-325(err)18(ors )-325(on )-325(the )-325(next )-325(queue )-325(operation )-325(by)]TJ 0 -1.2 TD [(pr)18(ocesses )-113(still )-113(using )-113(the )-113(queue.)-611(Semaphor)18(es )-113(handle )-113(this )-113(r)18(emoval )-113(in )-113(the )-113(same )-113(fashion.)]TJ 0 -1.2 Td [(In )-34(contrast, )-34(when )-34(a )-34(\336le )-34(is )-34(r)18(emoved, )-34(the )-34(\336le\325s )-34(contents )-34(ar)]TJ 0.2839 Tc 24.859 0 Td (en)Tj 0 Tc 1.345 0 Td [(ot )-34(deleted )-34(until )-34(the )-34(last )-34(open)]TJ -26.203 -1.2 Td (descriptor for the \336le is closed.)Tj 1.8 -1.2 Td (When)Tj /TT0 1 Tf 3.109 0 Td (msgsnd)Tj /T1_1 1 Tf -0.018 Tc 4.066 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-216(successfully)]TJ 0.4661 Tc 8.001 0 Td (,t)Tj 0 Tc 1.042 0 Td (he)Tj /TT0 1 Tf 1.527 0 Td (msqid_ds)Tj /T1_1 1 Tf 5.266 0 Td [(str)8(uctur)]TJ 0.4661 Tc 3.49 0 Td (ea)Tj 0 Tc 1.445 0 Td [(ssociated )-216(with )-216(the)]TJ -30.603 -1.2 Td [(message )-93(queue )-93(is )-93(updated )-93(to )-93(indicate )-93(the )-93(pr)18(ocess )-93(ID )-93(that )-93(made )-93(the )-93(call )-93(\()]TJ /TT0 1 Tf 33.017 0 Td (msg_lspid)Tj /T1_1 1 Tf (\),)Tj -33.017 -1.2 Td [(the )-160(time )-160(that )-160(the )-160(call )-160(was )-160(made )-160(\()]TJ /TT0 1 Tf 15.445 0 Td (msg_stime)Tj /T1_1 1 Tf [(\), )-160(and )-160(that )-160(one )-160(mor)]TJ 0.4098 Tc 14.462 0 Td (em)Tj 0 Tc 1.772 0 Td [(essage )-160(is )-160(on )-160(the)]TJ -31.678 -1.2 Td (queue \()Tj /TT0 1 Tf (msg_qnum)Tj /T1_1 1 Tf (\).)Tj 1.8 -1.2 Td (Messages ar)Tj 0.25 Tc 5.359 0 Td (er)Tj 0 Tc 1.106 0 Td [(etrieved fr)18(om a queue by)]TJ /TT0 1 Tf 11.347 0 Td (msgrcv)Tj /T1_1 1 Tf (.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 532.2681 Tm (#include )Tj 0 -1.902 TD (ssize_t msgrcv\(int)Tj /T1_2 1 Tf 11.4 0 Td (msqid)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.208 0 Td (oid *)Tj /T1_2 1 Tf (ptr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 6.022 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT0 1 Tf 0.6 Tc (,l)Tj 0 Tc 4.43 0 Td (ong)Tj /T1_2 1 Tf 2.4 0 Td (type)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.522 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf -23.702 -1.902 Td (Returns: size of data portion of message if OK,)Tj /TT1 1 Tf 20.784 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 4935.25 cm 0 0 m 0 478 l 3900 478 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 480.0024 Tm [(As )-65(with)]TJ /TT0 1 Tf 3.864 0 Td (msgsnd)Tj /T1_1 1 Tf 0.3146 Tc (,t)Tj 0 Tc 4.491 0 Td (he)Tj /T1_2 1 Tf 1.376 0 Td (ptr)Tj /T1_1 1 Tf 1.537 0 Td [(ar)18(gument )-64(points )-64(to )-64(a )-64(long )-64(integer )-64(\(wher)]TJ 0.3145 Tc 18.023 0 Td (et)Tj 0 Tc 1.119 0 Td [(he )-64(message )-64(type )-64(of)]TJ -30.41 -1.2 Td [(the )-92(r)18(eturned )-92(message )-92(is )-92(stor)17(ed\) )-92(followed )-92(by )-92(a )-92(data )-92(buf)18(fer )-92(for )-92(the )-92(actual )-92(message )-92(data.)]TJ /T1_2 1 Tf 0 -1.2 TD (nbytes)Tj /T1_1 1 Tf 2.94 0 Td [(speci\336es )-60(the )-60(size )-60(of )-60(the )-60(data )-60(buf)19(fer)]TJ 0.5599 Tc 15.494 0 Td (.I)Tj 0.3099 Tc 1.147 0 Td (ft)Tj 0 Tc 0.969 0 Td [(he )-60(r)18(eturned )-60(message )-60(is )-60(lar)18(ger )-60(than)]TJ /T1_2 1 Tf 15.82 0 Td (nbytes)Tj /T1_1 1 Tf -36.37 -1.2 Td [(and )-209(the)]TJ /TT0 1 Tf 3.998 0 Td (MSG_NOERROR)Tj /T1_1 1 Tf 7.059 0 Td [(bit )-209(in)]TJ /T1_2 1 Tf 2.961 0 Td (\337ag)Tj /T1_1 1 Tf 1.948 0 Td [(is )-209(set, )-209(the )-209(message )-209(is )-209(tr)7(uncated. )-459(\(In)-460(this )-209(case, )-209(no)]TJ -15.967 -1.2 Td [(noti\336cation )-164(is )-164(given )-164(to )-164(us )-164(that )-164(the )-164(message )-164(was )-164(tr)8(uncated, )-164(and )-164(the )-164(r)18(emainder )-164(of )-164(the)]TJ T* [(message )-84(is )-84(discar)18(ded.\) )-334(If)-334(the )-84(message )-84(is )-84(too )-84(big )-84(and )-84(this)]TJ /T1_2 1 Tf 25.967 0 Td (\337ag)Tj /T1_1 1 Tf 1.823 0 Td [(value )-84(is )-84(not )-84(speci\336ed, )-84(an)]TJ -27.79 -1.2 Td [(err)18(or of)]TJ /TT0 1 Tf 3.571 0 Td (E2BIG)Tj /T1_1 1 Tf 3.25 0 Td [(is r)18(eturned instead \(and the message stays on the queue\).)]TJ -5.021 -1.2 Td (The)Tj /T1_2 1 Tf 1.924 0 Td (type)Tj /T1_1 1 Tf 1.972 0 Td [(ar)18(gument lets us specify which message we want.)]TJ /T1_2 1 Tf -3.896 -2.04 Td (type)Tj /T1_1 1 Tf 2.222 0 Td [(== )-250(0)-883(The \336rst message on the queue is r)18(eturned.)]TJ /T1_2 1 Tf -2.222 -1.6 Td (type)Tj /T1_1 1 Tf 0.5 Tc 2.222 0 Td [(>0 )-239(T)]TJ 0 Tc 3.708 0 Td [(he )-260(\336rst )-260(message )-260(on )-260(the )-260(queue )-260(whose )-260(message )-260(type )-260(equals)]TJ /T1_2 1 Tf 28.323 0 Td (type)Tj /T1_1 1 Tf 2.232 0 Td (is)Tj -0.018 Tc -31.168 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (turned.)Tj /T1_2 1 Tf -6.173 -1.6 Td (type)Tj /T1_1 1 Tf 0.5 Tc 2.222 0 Td [(<0 )-239(T)]TJ 0 Tc 3.708 0 Td [(he )-39(\336rst )-39(message )-39(on )-39(the )-39(queue )-39(whose )-39(message )-39(type )-39(is )-39(the )-39(lowest )-39(value)]TJ -0.613 -1.2 Td (less than or equal to the absolute value of)Tj /T1_2 1 Tf 18.53 0 Td (type)Tj /T1_1 1 Tf 1.972 0 Td [(is r)18(eturned.)]TJ 0.2714 Tc -27.619 -2.04 Td (An)Tj 0 Tc 1.631 0 Td [(onzer)18(o)]TJ /T1_2 1 Tf 3.301 0 Td (type)Tj /T1_1 1 Tf 1.993 0 Td [(is )-21(used )-21(to )-21(r)18(ead )-21(the )-21(messages )-21(in )-21(an )-21(or)18(der )-21(other )-21(than )-21(\336rst )-21(in, )-21(\336rst )-21(out.)-527(For)]TJ -6.926 -1.2 Td [(example, )-146(the)]TJ /T1_2 1 Tf 6.178 0 Td (type)Tj /T1_1 1 Tf 2.118 0 Td [(could )-146(be )-146(a )-146(priority )-146(value )-146(if )-146(the )-146(application )-146(assigns )-146(priorities )-146(to )-146(the)]TJ -8.296 -1.2 Td [(messages. )-328(Another)-328(use )-78(of )-78(this )-78(\336eld )-78(is )-78(to )-78(contain )-78(the )-78(pr)20(ocess )-78(ID )-78(of )-78(the )-78(client )-78(if )-78(a )-78(single)]TJ 0 -1.2 Td [(message )-1(queue )-1(is )-1(being )-1(used )-1(by )-1(multiple )-1(clients )-1(and )-1(a )-1(single )-1(server )-1(\(as )-1(long )-1(as )-1(a )-1(pr)12(ocess)]TJ T* (ID \336ts in a long integer\).)Tj -0.092 Tc 1.8 -1.2 Td [(We )-362(c)]TJ 0 Tc 2.259 0 Td [(an )-178(specify )-178(a)]TJ /T1_2 1 Tf 5.993 0 Td (\337ag)Tj /T1_1 1 Tf 1.917 0 Td [(value )-178(of)]TJ /TT0 1 Tf 4.172 0 Td (IPC_NOWAIT)Tj /T1_1 1 Tf 6.428 0 Td [(to )-178(make )-178(the )-178(operation )-178(nonblocking,)]TJ -22.568 -1.2 Td (causing)Tj /TT0 1 Tf 3.768 0 Td (msgrcv)Tj /T1_1 1 Tf 3.968 0 Td [(to )-118(r)18(eturn)]TJ /TT1 1 Tf 4.369 0 Td (!)Tj /T1_1 1 Tf 0.3676 Tc (1w)Tj 0 Tc 2.251 0 Td (ith)Tj /TT0 1 Tf 1.567 0 Td (errno)Tj /T1_1 1 Tf 3.368 0 Td [(set )-118(to)]TJ /TT0 1 Tf 2.836 0 Td (ENOMSG)Tj /T1_1 1 Tf 3.968 0 Td [(if )-118(a )-118(message )-118(of )-118(the )-118(speci\336ed)]TJ -26.093 -1.2 Td [(type )-236(is )-236(not )-236(available.)-736(If)]TJ /TT0 1 Tf 11.701 0 Td (IPC_NOWAIT)Tj /T1_1 1 Tf 6.486 0 Td [(is )-236(not )-236(speci\336ed, )-236(the )-236(operation )-236(blocks )-236(until )-236(a)]TJ -18.186 -1.2 Td [(message )-62(of )-62(the )-62(speci\336ed )-62(type )-62(is )-62(available, )-62(the )-62(queue )-62(is )-62(r)18(emoved )-62(fr)18(om )-62(the )-62(system )-62(\()]TJ /TT1 1 Tf 36.924 0 Td (!)Tj /T1_1 1 Tf 0.3118 Tc (1i)Tj 0 Tc 1.652 0 Td (s)Tj -0.018 Tc -38.576 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turned )-35(with)]TJ /TT0 1 Tf 5.598 0 Td (errno)Tj /T1_1 1 Tf 3.285 0 Td [(set )-35(to)]TJ /TT0 1 Tf 2.67 0 Td (EIDRM)Tj /T1_1 1 Tf [(\), )-35(or )-35(a )-35(signal )-35(is )-35(caught )-35(and )-35(the )-35(signal )-35(handler )-35(r)21(eturns)]TJ -12.41 -1.2 Td (\(causing)Tj /TT0 1 Tf 3.983 0 Td (msgrcv)Tj /T1_1 1 Tf 3.85 0 Td [(to r)18(eturn)]TJ /TT1 1 Tf 4.134 0 Td (!)Tj /T1_1 1 Tf 0.25 Tc (1w)Tj 0 Tc 2.133 0 Td (ith)Tj /TT0 1 Tf 1.449 0 Td (errno)Tj /T1_1 1 Tf 3.25 0 Td (set to)Tj /TT0 1 Tf 2.601 0 Td (EINTR)Tj /T1_1 1 Tf (\).)Tj -19.6 -1.2 Td (When)Tj /TT0 1 Tf 3.13 0 Td (msgrcv)Tj /T1_1 1 Tf 4.087 0 Td [(succeeds, )-237(the )-237(kernel )-237(updates )-237(the)]TJ /TT0 1 Tf 15.694 0 Td (msqid_ds)Tj /T1_1 1 Tf 5.287 0 Td [(str)8(uctur)]TJ 0.4873 Tc 3.49 0 Td (ea)Tj 0 Tc 1.466 0 Td (ssociated)Tj -34.955 -1.2 Td [(with )-21(the )-21(message )-21(queue )-21(to )-21(indicate )-21(the )-21(caller)-74(\325s )-21(pr)18(ocess )-21(ID )-21(\()]TJ /TT0 1 Tf 26.3 0 Td (msg_lrpid)Tj /T1_1 1 Tf [(\), )-21(the )-21(time )-21(of )-21(the)]TJ -26.3 -1.2 Td (call \()Tj /TT0 1 Tf (msg_rtime)Tj /T1_1 1 Tf (\), and that one less message is on the queue \()Tj /TT0 1 Tf (msg_qnum)Tj /T1_1 1 Tf (\).)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47657 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (972)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm [(Mach, )-250(xxii,)-250(xxvi\320xxvii, 35, 947)]TJ /TT0 1 Tf 0 -1.25 TD ()Tj /T1_1 1 Tf 11.217 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,9)Tj 0 Tc 1.25 0 Td (06)Tj -15.439 -1.25 Td [(macr)18(o, featur)]TJ 0.25 Tc 5.868 0 Td (et)Tj 0 Tc 1.055 0 Td [(est, )-250(57)]TJ 3.062 0.09 Td (\320)Tj 0.583 -0.09 Td (58, 84)Tj /TT0 1 Tf -10.569 -1.25 Td (MAILPATH)Tj /T1_1 1 Tf 5.217 0 Td [(envir)18(onment variable,)-500(210)]TJ /TT0 1 Tf -5.217 -1.25 Td (main)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(7,)-250(150, 155, 197)]TJ 11.04 0.09 Td (\320)Tj 0.583 -0.09 Td (200, 202, 204,)Tj -11.74 -1.25 Td (215)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (217, 226, 236)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (237, 249, 283, 330)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (332,)Tj -16.5 -1.25 Td (357)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(358, 468, 654, 656, 663, 729, 739, 81)55(1, 814,)]TJ -2.167 -1.25 Td (817, 824, 830, 833, 919, 921, 939, 944)Tj -2.7 -1.25 Td (major device number)Tj 0.5 Tc 9.348 0 Td (,5)Tj 0 Tc 1.25 0 Td (8)Tj 0.583 0.09 Td (\320)Tj 0.583 -0.09 Td (59, 137, 139, 465, 699)Tj /TT0 1 Tf -11.765 -1.25 Td (major)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(138)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (139)Tj /TT0 1 Tf -10.04 -1.25 Td (make)Tj /T1_1 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(300)]TJ /TT0 1 Tf -2.817 -1.25 Td (makethread)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(436,)-250(438)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (439)Tj /TT0 1 Tf -15.04 -1.25 Td (mallinfo)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(209)]TJ /TT0 1 Tf -5.217 -1.25 Td (malloc)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(21)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (23, 51, 136, 145, 174,)Tj -7.44 -1.25 Td (207)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (210, 213, 330, 332, 392, 400)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (401, 403,)Tj -14.333 -1.25 Td (405, 429, 437, 447, 450, 575, 616, 618, 623,)Tj T* (646)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (647, 650)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (651, 661)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (662, 666, 696,)Tj -10.5 -1.25 Td (760)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (761, 815, 820, 828, 839, 926, 928)Tj -3.517 -1.25 Td [(de\336nition of,)-500(207)]TJ /TT0 1 Tf -1.35 -1.25 Td (MALLOC_OPTIONS)Tj /T1_1 1 Tf 8.817 0 Td [(envir)18(onment variable,)-500(928)]TJ /TT0 1 Tf -8.817 -1.25 Td (mallopt)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(209)]TJ -4.617 -1.25 Td [(mandatory r)18(ecor)]TJ 0.25 Tc 7.372 0 Td (dl)Tj 0 Tc 1.152 0 Td [(ocking, )-250(495)]TJ -8.524 -1.25 Td [(Mandrake, )-250(xxvii)]TJ /TT0 1 Tf T* (MAP_ANON)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(578)]TJ /TT0 1 Tf -5.217 -1.25 Td (MAP_ANONYMOUS)Tj /T1_1 1 Tf 8.217 0 Td [(constant, )-250(578)]TJ /TT0 1 Tf -8.217 -1.25 Td (MAP_FAILED)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(529,)-250(577)]TJ /TT0 1 Tf -6.417 -1.25 Td (MAP_FIXED)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(526)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (527)Tj /TT0 1 Tf -12.463 -1.25 Td (MAP_PRIVATE)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(526,)-250(528, 578)]TJ /TT0 1 Tf -7.017 -1.25 Td (MAP_SHARED)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(526)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (529, 576)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (578)Tj /TT0 1 Tf -17.23 -1.25 Td ()Tj /T1_1 1 Tf 5.217 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7)Tj -9.439 -1.25 Td [(Maur)18(o, J.,)-500(74, 1)55(12, 1)55(16, 951)]TJ /TT0 1 Tf T* (MAX_CANON)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(39,)-250(44, 47, 49, 673)]TJ /TT0 1 Tf -5.817 -1.25 Td (MAX_INPUT)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(39,)-250(44, 49, 672)]TJ /TT0 1 Tf -5.817 -1.25 Td (MAXPATHLEN)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(49)]TJ /TT0 1 Tf -6.417 -1.25 Td (MB_LEN_MAX)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(37)]TJ /TT0 1 Tf -6.417 -1.25 Td (mbstate_t)Tj /T1_1 1 Tf 5.817 0 Td [(str)8(uctur)18(e, )-250(442)]TJ -5.817 -1.25 Td [(McDougall, R.,)-500(74, 1)55(12, 1)55(16, 951)]TJ T* [(McIlr)18(oy)111(,)-250(M.)-250(D., )-250(xxxii)]TJ 0 -1.25 Td [(McKusick, M. K.,)-500(xxxii, 33)]TJ 11.819 0.09 Td (\320)Tj 0.583 -0.09 Td [(34, 74, 1)55(12, 1)55(16, 229,)]TJ -9.702 -1.25 Td (236, 525, 951)Tj -2.7 -1.25 Td [(MD5, )-250(181)]TJ /TT0 1 Tf T* (MDMBUF)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(675,)-250(685, 689)]TJ /TT0 1 Tf -4.017 -1.25 Td (memccpy)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(155)]TJ /TT0 1 Tf -4.617 -1.25 Td (memcpy)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(530)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (531, 916)Tj -10.64 -1.25 Td (memory)Tj 1.35 -1.25 Td [(allocation, )-250(207)]TJ 6.65 0.09 Td (\320)Tj 0.583 -0.09 Td (210)Tj -7.234 -1.25 Td [(layout, )-250(204)]TJ 5.155 0.09 Td (\320)Tj 0.583 -0.09 Td (206)Tj -5.739 -1.25 Td [(leakage, )-250(209)]TJ T* [(shar)18(ed, )-250(534,)-250(571)]TJ 7.306 0.09 Td (\320)Tj 0.583 -0.09 Td (578)Tj -9.24 -1.25 Td [(memory-mapped I/O,)-500(525)]TJ 12.062 0.09 Td (\320)Tj 0.583 -0.09 Td (531)Tj /TT0 1 Tf -12.646 -1.25 Td (memset)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(172)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (173, 614, 616, 618, 621, 623)Tj -10.64 -1.25 Td [(Menage, P)129(., )-250(949)]TJ T* [(message queues,)-500(534, 561)]TJ 11.476 0.09 Td (\320)Tj 0.583 -0.09 Td (565)Tj 15.291 65 Td [(timing, )-250(565)]TJ /TT0 1 Tf -1.35 -1.25 Td (mgetty)Tj /T1_1 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(290)]TJ -4.017 -1.25 Td [(MIN terminal value,)-500(687, 703)]TJ 13.132 0.09 Td (\320)Tj 0.583 -0.09 Td (704, 708, 713, 943)Tj -13.716 -1.25 Td (minor device number)Tj 0.5 Tc 9.487 0 Td (,5)Tj 0 Tc 1.25 0 Td (8)Tj 0.583 0.09 Td (\320)Tj 0.583 -0.09 Td (59, 137, 139, 465, 699)Tj /TT0 1 Tf -11.903 -1.25 Td (minor)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(138)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (139)Tj /TT0 1 Tf -10.04 -1.25 Td (mkdir)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(101)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (102, 120)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (122, 125, 129)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (130,)Tj -17.673 -1.25 Td (331, 452, 912)Tj -1.35 -1.25 Td [(de\336nition of,)-500(129)]TJ /TT0 1 Tf -1.35 -1.25 Td (mkdir)Tj /T1_1 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(129)]TJ /TT0 1 Tf -3.417 -1.25 Td (mkdirat)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(129)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (130, 331, 452)Tj -9.89 -1.25 Td [(de\336nition of,)-500(129)]TJ /TT0 1 Tf -1.35 -1.25 Td (mkdtemp)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(167)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (171, 452)Tj -9.89 -1.25 Td [(de\336nition of,)-500(169)]TJ /TT0 1 Tf -1.35 -1.25 Td (mkfifo)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(120)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (121, 125, 331, 452, 553, 937)Tj -9.29 -1.25 Td [(de\336nition of,)-500(553)]TJ /TT0 1 Tf -1.35 -1.25 Td (mkfifo)Tj /T1_1 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(553)]TJ /TT0 1 Tf -4.017 -1.25 Td (mkfifoat)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(331,)-250(452, 553)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(553)]TJ /TT0 1 Tf -1.35 -1.25 Td (mknod)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(120)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (121, 129, 331, 452, 553)Tj /TT0 1 Tf -10.04 -1.25 Td (mknodat)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(331,)-250(452, 553)]TJ /TT0 1 Tf -4.617 -1.25 Td (mkstemp)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(167)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (171, 452)Tj -9.89 -1.25 Td [(de\336nition of,)-500(169)]TJ /TT0 1 Tf -1.35 -1.25 Td (mktime)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(190,)-250(192, 195, 452)]TJ -2.667 -1.25 Td [(de\336nition of,)-500(192)]TJ /TT0 1 Tf -1.35 -1.25 Td (mlock)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(221)]TJ /TT0 1 Tf -3.417 -1.25 Td (mmap)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(174,)-250(221, 429, 481, 525, 527,)]TJ -0.117 -1.25 Td (529)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (532, 576)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (578, 587, 592, 949)Tj -7.683 -1.25 Td [(de\336nition of,)-500(525)]TJ -1.35 -1.25 Td [(modem, )-250(xx,)-250(xxvii, 285, 287, 297, 318, 328, 481, 508,)]TJ 2.7 -1.25 Td (671, 674)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (675, 685, 687, 689, 692)Tj /TT0 1 Tf -6.866 -1.25 Td (mode_t)Tj /T1_1 1 Tf 4.017 0 Td [(data type,)-500(59)]TJ /TT0 1 Tf -4.017 -1.25 Td ()Tj /T1_1 1 Tf 7.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj -11.839 -1.25 Td [(Moran, J. P)129(., )-250(525,)-250(949)]TJ /TT0 1 Tf T* (more)Tj /T1_1 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(543,)-250(748)]TJ -2.817 -1.25 Td [(Morris, R.,)-500(181, 951)]TJ /TT0 1 Tf T* (mount)Tj /T1_1 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(102,)-250(129, 139, 496)]TJ -3.417 -1.25 Td (mounted STREAMS)Tj 8.946 0.09 Td (-)Tj 0.333 -0.09 Td [(based pipes,)-500(534)]TJ /TT0 1 Tf -9.279 -1.25 Td (mprotect)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(527)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(527)]TJ /TT0 1 Tf -1.35 -1.25 Td (mq_receive)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(451)]TJ /TT0 1 Tf -6.417 -1.25 Td (mq_send)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(451)]TJ /TT0 1 Tf -4.617 -1.25 Td (mq_timedreceive)Tj /T1_1 1 Tf 9.417 0 Td [(function, )-250(451)]TJ /TT0 1 Tf -9.417 -1.25 Td (mq_timedsend)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(451)]TJ /TT0 1 Tf -7.617 -1.25 Td ()Tj /T1_1 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (0)Tj /TT0 1 Tf -10.639 -1.25 Td (mrand48)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -4.617 -1.25 Td (MS_ASYNC)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(528)]TJ /TT0 1 Tf -5.217 -1.25 Td (MSG_CONFIRM)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(61)55(1)]TJ /TT0 1 Tf -7.017 -1.25 Td (msgctl)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(558)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (559, 562)Tj -9.29 -1.25 Td [(de\336nition of,)-500(562)]TJ /TT0 1 Tf -1.35 -1.25 Td (MSG_CTRUNC)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(613)]TJ /TT0 1 Tf -6.417 -1.25 Td (MSG_DONTROUTE)Tj /T1_1 1 Tf 8.217 0 Td [(constant, )-250(61)55(1)]TJ /TT0 1 Tf -8.217 -1.25 Td (MSG_DONTWAIT)Tj /T1_1 1 Tf 7.617 0 Td [(constant, )-250(61)55(1)]TJ /TT0 1 Tf -7.617 -1.25 Td (MSG_EOF)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(61)55(1)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47658 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (916)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 177.2094 670.2598 Tm (return\(flags\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (static off_t)Tj 0 -1.189 TD (find_end\(char *buf, size_t len\))Tj T* ({)Tj 2.4 -1.189 Td (off_t off = 0;)Tj 0 -1.902 TD (while \(off < len\) {)Tj 2.4 -1.189 Td (if \(buf[off] == 0\))Tj 2.4 -1.189 Td (break;)Tj -2.4 -1.189 Td (off++;)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (return\(off\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (static int)Tj 0 -1.189 TD (mstream_read\(void *cookie, char *buf, int len\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (int nr;)Tj 0 -1.189 TD (struct memstream *ms = cookie;)Tj 0 -1.902 TD (if \(!\(ms->flags & MS_READ\)\) {)Tj 2.4 -1.189 Td (errno = EBADF;)Tj 0 -1.189 TD (return\(-1\);)Tj -2.4 -1.189 Td (})Tj T* (if \(ms->curpos >= ms->vsize\))Tj 2.4 -1.189 Td (return\(0\);)Tj -2.4 -1.902 Td (/* can only read from curpos to vsize */)Tj T* (nr = MIN\(len, ms->vsize - ms->curpos\);)Tj T* (memcpy\(buf, ms->buf + ms->curpos, nr\);)Tj 0 -1.189 TD (ms->curpos += nr;)Tj 0 -1.189 TD (return\(nr\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (static int)Tj 0 -1.189 TD (mstream_write\(void *cookie, const char *buf, int len\))Tj T* ({)Tj 2.4 -1.189 Td (int nw, off;)Tj T* (struct memstream *ms = cookie;)Tj 0 -1.902 TD (if \(!\(ms->flags & \(MS_APPEND|MS_WRITE\)\)\) {)Tj 2.4 -1.189 Td (errno = EBADF;)Tj 0 -1.189 TD (return\(-1\);)Tj -2.4 -1.189 Td (})Tj T* (if \(ms->flags & MS_APPEND\))Tj 2.4 -1.189 Td (off = ms->vsize;)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (off = ms->curpos;)Tj -2.4 -1.189 Td (nw = MIN\(len, ms->rsize - off\);)Tj T* (memcpy\(ms->buf + off, buf, nw\);)Tj T* (ms->curpos = off + nw;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47659 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (436)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(ead )-250(Contr)18(ol )]TJ 38.741 0 Td [(Chapter)-500(12)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 1404 6494 432 144 re S Q BT /TT0 1 Tf 7.9995 0 0 7.9995 152.3909 654.8007 Tm (main)Tj ET q 0.099994 0 0 0.099994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 6422.25 cm 0 0 m 0 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 6386.25 cm 0 0 m 0 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 6350.25 cm 0 0 m 0 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 6314.25 cm 0 0 m 0 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 6278.25 cm 0 0 m 0 0 l S Q Q BT /TT1 1 Tf 7.999 0 0 7.999 142.7829 615.1662 Tm (func1\(x\))Tj ET q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 6062.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 6026.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5990.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5954.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5918.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5882.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5846.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5810.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5774.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5738.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5702.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5666.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5630.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5594.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5558.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5522.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5486.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5450.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5414.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5378.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5306.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5270.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5234.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5198.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5162.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5126.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5090.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5054.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 5018.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 4982.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 4946.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1620.25 4910.25 cm 0 0 m 0 0 l S Q Q BT /TT1 1 Tf 7.9986 0 0 7.9986 142.7743 478.3539 Tm (func2\(x\))Tj ET q 0.99982 0 0 0.99982 0 0 cm q 1 0 0 1 248.4 617 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099982 0 0 0.099982 0 0 cm 1 j 1 J q 1 0 0 1 2484 6170 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1944.25 6170.25 cm 0 0 m 468 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2484 6098 432 144 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 257.9381 615.0924 Tm (func1)Tj ET q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2700.25 6026.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2700.25 5990.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2700.25 5954.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2700.25 5918.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2700.25 5882.25 cm 0 0 m 0 0 l S Q Q BT /TT1 1 Tf 7.9976 0 0 7.9976 205.1384 575.4673 Tm (pthread_mutex_lock\(x->lock\))Tj ET q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2700.25 5666.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2700.25 5630.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2700.25 5594.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2700.25 5558.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2700.25 5522.25 cm 0 0 m 0 0 l S Q Q BT /TT1 1 Tf 7.9971 0 0 7.9971 233.9158 539.4458 Tm (func2_locked\(x\))Tj ET q 0.099964 0 0 0.099964 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2700.25 5306.25 cm 0 0 m 0 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2700.25 5270.25 cm 0 0 m 0 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2700.25 5234.25 cm 0 0 m 0 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2700.25 5198.25 cm 0 0 m 0 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2700.25 5162.25 cm 0 0 m 0 0 l S Q Q BT /TT1 1 Tf 7.9966 0 0 7.9966 200.3158 503.4285 Tm (pthread_mutex_unlock\(x->lock\))Tj ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 324 480.2 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3240 4802 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1944.25 4802.25 cm 0 0 m 1224 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 3240 4730 432 144 re S Q BT /TT0 1 Tf 7.9962 0 0 7.9962 333.4399 478.2104 Tm (func2)Tj /TT1 1 Tf -6.6 -3.15 Td (pthread_mutex_lock\(x->lock\))Tj 3.6 -1.8 Td (func2_locked\(x\))Tj -4.2 -1.8 Td (pthread_mutex_unlock\(x->lock\))Tj ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 432 440.6 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 4320 4406 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3888.25 4406.25 cm 0 0 m 360 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 4320 4334 792 144 re S Q BT /TT0 1 Tf 7.9957 0 0 7.9957 442.5609 438.6031 Tm (func2_locked)Tj ET q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 471.6 447.8 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 4716 4478 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3132.25 5414.25 cm 0 0 m 1584 0 l 1584 -864 l S Q Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 228.3869 393.5638 Tm (Figure 12.7)Tj /T1_1 1 Tf -0.092 Tc 5.695 0 Td (Av)Tj 0 Tc 1.251 0 Td [(oiding a r)18(ecursive locking opportunity)]TJ /TT2 1 Tf 9.994 0 0 9.994 93.5439 355.1868 Tm (Example)Tj /T1_1 1 Tf 3.6 -2.4 Td [(The )-108(pr)18(ogram )-108(in )-108(Figur)]TJ 0.3576 Tc 9.861 0 Td (e1)Tj 0 Tc 1.337 0 Td [(2.8 )-108(illustrates )-108(another )-108(situation )-108(in )-108(which )-108(a )-108(r)21(ecursive )-108(mutex )-108(is)]TJ -11.197 -1.2 Td (necessary)Tj 0.7443 Tc 4.172 0 Td (.H)Tj 0 Tc 1.826 0 Td [(er)18(e, )-244(we )-244(have )-244(a )-244(\324)36(\324timeout\325)]TJ 0.4943 Tc 11.715 0 Td (\325f)Tj 0 Tc 1.105 0 Td [(unction )-244(that )-244(allows )-244(us )-244(to )-244(schedule )-244(another)]TJ -18.819 -1.2 Td [(function )-10(to )-10(be )-10(r)9(un )-10(at )-10(some )-10(time )-10(in )-10(the )-10(futur)19(e. )-260(Assuming)-260(that )-10(thr)18(eads )-10(ar)18(e)-260(an)-260(inexpensive)]TJ -0.018 Tc -0 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(sour)18(ce, )-97(we )-97(can )-97(cr)18(eate )-97(a )-97(thr)18(ead )-97(for )-97(each )-97(pending )-97(timeout.)-601(The )-97(thr)18(ead )-97(waits )-97(until )-97(the)]TJ -0.856 -1.2 Td [(time has been r)18(eached, and then it calls the function we\325ve r)18(equested.)]TJ 1.8 -1.2 Td [(The )-122(pr)18(oblem )-122(arises )-122(when )-122(we )-122(can\325t )-122(cr)18(eate )-122(a )-122(thr)21(ead )-122(or )-122(when )-122(the )-122(scheduled )-122(time )-122(to)]TJ -0.008 Tc -1.8 -1.2 Td (ru)Tj 0.5104 Tc 0.99 0 Td (nt)Tj 0 Tc 1.418 0 Td [(he )-260(function )-260(has )-260(alr)18(eady )-260(passed.)-760(In )-260(these )-260(cases, )-260(we )-260(simply )-260(call )-260(the )-260(r)13(equested)]TJ -2.408 -1.2 Td [(function )-87(now)]TJ 0.3373 Tc 5.914 0 Td (,f)Tj -0.018 Tc 0.92 0 Td (ro)Tj 0.3373 Tc 0.923 0 Td (mt)Tj 0 Tc 1.546 0 Td [(he )-87(curr)18(ent )-87(context.)-587(Since )-87(the )-87(function )-87(acquir)18(es )-87(the )-87(same )-87(lock )-87(that)]TJ -9.304 -1.2 Td [(we curr)18(ently hold, a deadlock will occur unless the lock is r)18(ecursive.)]TJ ET q 0.09994 0 0 0.09994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2282.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT1 1 Tf 8.9941 0 0 8.9941 129.5145 218.5547 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (extern int makethread\(void *\(*\)\(void *\), void *\);)Tj 0 -1.783 TD (struct to_info {)Tj 2.4 -1.189 Td (void )Tj 8.4 0 Td [(\(*to_fn\)\(void)-600(*\); /* function */)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47660 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (200)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Envir)18(onment )]TJ 39.241 0 Td [(Chapter)-500(7)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(Now )-4(if )-4(we )-4(enable )-4(the )-4(1999 )-4(ISO )-4(C )-4(compiler )-4(extensions, )-4(we )-4(see )-4(that )-4(the )-4(exit )-4(code )-4(changes:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 652.2609 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (gcc -std=c99 hello.c)Tj /T1_2 1 Tf 16.4 0 Td (enable gcc\325)Tj 0.25 Tc 4.306 0 Td (s1)Tj 0 Tc 1.139 0 Td (999 ISO C extensions)Tj /TT0 1 Tf -23.045 -1.189 Td (hello.c:4: warning: return type defaults to \325int\325)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (hello, world)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (echo $?)Tj /T1_2 1 Tf 16.4 0 Td (print the exit status)Tj /TT0 1 Tf -17.6 -1.189 Td (0)Tj /T1_1 1 Tf 7.9995 0 0 7.9995 183.5891 572.7656 Tm [(Note )-238(the )-238(compiler )-238(warning )-238(when )-238(we )-238(enable )-238(the )-238(1999 )-238(ISO )-238(C )-238(extensions.)-735(This )-238(warning )-238(is)]TJ 0 -1.25 TD [(printed )-42(because )-42(the )-42(type )-42(of )-42(the)]TJ /TT0 1 Tf 14.133 0 Td (main)Tj /T1_1 1 Tf 2.692 0 Td [(function )-42(is )-42(not )-42(explicitly )-42(declar)19(ed )-42(to )-42(be )-42(an )-42(integer)]TJ 0.5418 Tc 22.108 0 Td (.I)Tj 0.2918 Tc 1.129 0 Td (fw)Tj 0 Tc 1.459 0 Td (e)Tj -41.521 -1.25 Td [(wer)18(e)-328(to)-328(add )-78(this )-78(declaration, )-78(the )-78(message )-78(would )-78(go )-78(away)]TJ 0.5783 Tc 25.952 0 Td (.H)Tj 0 Tc 1.66 0 Td [(owever)74(,)-328(if)-328(we)-328(w)-1(er)18(e)-328(to)-328(enable )-78(all)]TJ -0.018 Tc -27.612 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(commended )-285(warnings )-285(fr)18(om )-285(the )-285(compiler )-285(\(with )-285(the)]TJ /TT0 1 Tf 24.637 0 Td (-Wall)Tj /T1_1 1 Tf 3.535 0 Td [(\337ag\), )-285(then )-285(we )-285(would )-285(see )-285(a)]TJ -29.028 -1.25 Td [(warning message something like \324)37(\324contr)18(ol r)18(eaches end of nonvoid function.\325)37(\325)]TJ 0 -2.5 TD [(The )-231(declaration )-231(of)]TJ /TT0 1 Tf 8.962 0 Td (main)Tj /T1_1 1 Tf 2.881 0 Td [(as )-231(r)18(eturning )-231(an )-231(integer )-231(and )-231(the )-231(use )-231(of)]TJ /TT0 1 Tf 18.621 0 Td (exit)Tj /T1_1 1 Tf 2.881 0 Td [(instead )-231(of)]TJ /TT0 1 Tf 5.055 0 Td (return)Tj /T1_1 1 Tf -38.4 -1.25 Td [(pr)18(oduces )-86(needless )-86(warnings )-86(fr)17(om )-86(some )-86(compilers )-86(and )-86(the)]TJ /TT0 1 Tf 26.612 0 Td (lint)Tj /T1_1 1 Tf 2.4 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.669 -0.04 Td [(pr)18(ogram. )-336(The)-336(pr)18(oblem )-86(is)]TJ -30.515 -1.25 Td [(that )-65(these )-65(compilers )-65(don\325t )-65(know )-65(that )-65(an)]TJ /TT0 1 Tf 18.261 0 Td (exit)Tj /T1_1 1 Tf 2.715 0 Td [(fr)18(om)]TJ /TT0 1 Tf 2.454 0 Td (main)Tj /T1_1 1 Tf 2.715 0 Td [(is )-65(the )-65(same )-65(as )-65(a)]TJ /TT0 1 Tf 7.388 0 Td (return)Tj /T1_1 1 Tf 0.5651 Tc (.O)Tj 0 Tc 5.201 0 Td [(ne )-65(way)]TJ -38.734 -1.25 Td [(ar)18(ound )-159(these )-159(warnings, )-159(which )-159(become )-159(annoying )-159(after )-159(a )-159(while, )-159(is )-159(to )-159(use)]TJ /TT0 1 Tf 33.491 0 Td (return)Tj /T1_1 1 Tf 4.008 0 Td [(instead )-158(of)]TJ /TT0 1 Tf -37.5 -1.25 Td (exit)Tj /T1_1 1 Tf 2.767 0 Td [(fr)18(om)]TJ /TT0 1 Tf 2.506 0 Td (main)Tj /T1_1 1 Tf 0.617 Tc (.B)Tj 0 Tc 3.878 0 Td [(ut )-117(doing )-117(this )-117(pr)18(events )-117(us )-117(fr)18(om )-117(using )-117(the )-117(UNIX )-117(System\325s)]TJ /TT0 1 Tf 26.159 0 Td (grep)Tj /T1_1 1 Tf 2.767 0 Td [(utility )-117(to)]TJ -38.077 -1.25 Td [(locate )-186(all )-186(calls )-186(to)]TJ /TT0 1 Tf 8.233 0 Td (exit)Tj /T1_1 1 Tf 2.836 0 Td [(fr)18(om )-185(a )-185(pr)17(ogram. )-435(Another)-436(solution )-185(is )-185(to )-185(declar)17(e)]TJ /TT0 1 Tf 22.546 0 Td (main)Tj /T1_1 1 Tf 2.836 0 Td [(as )-185(r)18(eturning)]TJ /TT0 1 Tf -36.449 -1.25 Td (void)Tj /T1_1 1 Tf 0.3598 Tc (,i)Tj 0 Tc 3.301 0 Td [(nstead )-110(of)]TJ /TT0 1 Tf 4.521 0 Td (int)Tj /T1_1 1 Tf 0.3598 Tc (,a)Tj 0 Tc 2.91 0 Td [(nd )-110(continue )-110(calling)]TJ /TT0 1 Tf 9.08 0 Td (exit)Tj /T1_1 1 Tf 0.6098 Tc (.T)Tj 0 Tc 3.873 0 Td [(his )-110(gets )-110(rid )-110(of )-110(the )-110(compiler )-110(warning )-110(but)]TJ -23.684 -1.25 Td [(doesn\325t )-327(look )-327(right )-327(\(especially )-327(in )-327(a )-327(pr)18(ogramming )-327(text\), )-327(and )-327(can )-327(generate )-327(other )-327(compiler)]TJ 0 -1.25 TD [(warnings, )-123(since )-123(the )-123(r)18(eturn )-123(type )-123(of)]TJ /TT0 1 Tf 15.861 0 Td (main)Tj /T1_1 1 Tf 2.773 0 Td [(is )-123(supposed )-123(to )-123(be )-123(a )-123(signed )-123(integer)]TJ 0.6229 Tc 15.622 0 Td (.I)Tj 0.3729 Tc 1.21 0 Td (nt)Tj 0 Tc 1.281 0 Td [(his )-123(text, )-123(we)]TJ -36.747 -1.25 Td (show)Tj /TT0 1 Tf 2.777 0 Td (main)Tj /T1_1 1 Tf 2.792 0 Td [(as )-141(r)18(eturning )-141(an )-141(integer)]TJ 0.3915 Tc 10.405 0 Td (,s)Tj 0 Tc 1.065 0 Td [(ince )-141(that )-141(is )-141(the )-141(de\336nition )-141(speci\336ed )-141(by )-141(both )-141(ISO )-141(C )-141(and)]TJ -17.04 -1.25 Td (POSIX.1.)Tj 0 -2.5 TD [(Dif)18(fer)18(ent )-132(compilers )-132(vary )-132(in )-132(the )-132(verbosity )-132(of )-132(their )-132(warnings.)-632(Note )-132(that )-132(the )-132(GNU )-132(C )-132(compiler)]TJ 0 -1.25 TD [(usually )-136(doesn\325t )-136(emit )-136(these )-136(extraneous )-136(compiler )-136(warnings )-136(unless )-136(additional )-136(warning )-136(options)]TJ T* (ar)Tj 0.25 Tc 0.877 0 Td (eu)Tj 0 Tc 1.332 0 Td (sed.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 3668.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 342.7589 Tm [(In )-29(the )-29(next )-29(chapter)]TJ 0.2789 Tc 8.299 0 Td (,w)Tj 0 Tc 1.363 0 Td [(e\325ll )-29(see )-29(how )-29(any )-29(pr)18(ocess )-29(can )-29(cause )-29(a )-29(pr)19(ogram )-29(to )-29(be )-29(executed, )-29(wait)]TJ -9.662 -1.2 Td [(for the pr)18(ocess to complete, and then fetch its exit status.)]TJ /TT1 1 Tf -3.6 -3.6 Td (atexit)Tj /TT2 1 Tf 3.878 0 Td (Function)Tj /T1_1 1 Tf -0.055 Tc -0.278 -2.4 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-67(ISO )-67(C, )-67(a )-67(pr)18(ocess )-67(can )-67(r)18(egister )-67(at )-67(least )-67(32 )-67(functions )-67(that )-67(ar)]TJ 0.3168 Tc 26.553 0 Td (ea)Tj 0 Tc 1.296 0 Td [(utomatically )-67(called )-67(by)]TJ /TT0 1 Tf -29.084 -1.2 Td (exit)Tj /T1_1 1 Tf 0.5 Tc (.T)Tj 0 Tc 3.763 0 Td (hese ar)Tj 0.25 Tc 3.091 0 Td (ec)Tj 0 Tc 1.173 0 Td (alled)Tj /T1_2 1 Tf 2.422 0 Td (exit handlers)Tj /T1_1 1 Tf 5.445 0 Td (and ar)Tj 0.25 Tc 2.82 0 Td (er)Tj 0 Tc 1.106 0 Td [(egister)18(ed by calling the)]TJ /TT0 1 Tf 10.473 0 Td (atexit)Tj /T1_1 1 Tf 3.85 0 Td (function.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5828 239.6712 Tm (#include )Tj 0 -2.14 TD (int atexit\(void \(*)Tj /T1_2 1 Tf (func)Tj /TT0 1 Tf (\)\(void\)\);)Tj /T1_1 1 Tf 24.288 -2.14 Td [(Returns: 0 if OK, nonzer)18(o)-250(on)-250(err)18(or)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 1967.25 cm 0 0 m 0 520 l 3900 520 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 180.7475 Tm [(This )-16(declaration )-16(says )-16(that )-16(we )-16(pass )-16(the )-16(addr)18(ess )-16(of )-16(a )-16(function )-16(as )-16(the )-16(ar)18(gument )-16(to)]TJ /TT0 1 Tf 35.15 0 Td (atexit)Tj /T1_1 1 Tf (.)Tj -35.15 -1.2 Td [(When )-189(this )-189(function )-189(is )-189(called, )-189(it )-189(is )-189(not )-189(passed )-189(any )-189(ar)19(guments )-189(and )-189(is )-189(not )-189(expected )-189(to)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(turn )-305(a )-305(value.)-806(The)]TJ /TT0 1 Tf 9.239 0 Td (exit)Tj /T1_1 1 Tf 2.955 0 Td [(function )-305(calls )-305(these )-305(functions )-305(in )-305(r)18(everse )-305(or)18(der )-305(of )-305(their)]TJ -0.018 Tc -13.05 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(gistration. )-250(Each)-250(function is called as many times as it was r)18(egister)18(ed.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47661 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (971)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (lock_reg)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(489,)-250(897, 930)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (931)Tj -14.49 -1.25 Td [(de\336nition of,)-500(489)]TJ -1.35 -1.25 Td (locks)Tj -0.018 Tc 1.35 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (ader\320writer)Tj 0.5 Tc 5.131 0 Td (,4)Tj 0 Tc 1.25 0 Td (09)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (413)Tj -8.904 -1.25 Td [(spin, )-250(417)]TJ 4.231 0.09 Td (\320)Tj 0.583 -0.09 Td (418)Tj /TT0 1 Tf -6.165 -1.25 Td (lock_test)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(489)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (490, 897)Tj -11.09 -1.25 Td [(de\336nition of,)-500(489)]TJ /TT0 1 Tf -1.35 -1.25 Td (log)Tj /T1_0 1 Tf 2.217 0 Td [(function, )-250(470)]TJ /TT0 1 Tf -2.217 -1.25 Td (LOG_ALERT)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -5.817 -1.25 Td (LOG_AUTH)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -5.217 -1.25 Td (LOG_AUTHPRIV)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -7.617 -1.25 Td (LOG_CONS)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(468,)-250(471)]TJ /TT0 1 Tf -5.217 -1.25 Td (LOG_CRIT)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -5.217 -1.25 Td (LOG_CRON)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -5.217 -1.25 Td (LOG_DAEMON)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(468,)-250(472)]TJ /TT0 1 Tf -6.417 -1.25 Td (LOG_DEBUG)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -5.817 -1.25 Td (LOG_EMERG)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -5.817 -1.25 Td (LOG_ERR)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(472,)-250(474)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (476, 478)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (479,)Tj -14.73 -1.25 Td (615)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (619, 622)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (623, 902)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (903)Tj /TT0 1 Tf -13.199 -1.25 Td (log_exit)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(817,)-250(898)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (899)Tj -12.49 -1.25 Td [(de\336nition of,)-500(903)]TJ /TT0 1 Tf -1.35 -1.25 Td (LOG_FTP)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -4.617 -1.25 Td (logger)Tj /T1_0 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(471)]TJ -4.017 -1.25 Td [(login accounting,)-500(186)]TJ 9.723 0.09 Td (\320)Tj 0.583 -0.09 Td (187)Tj /TT0 1 Tf -10.307 -1.25 Td (.login)Tj /T1_0 1 Tf 4.017 0 Td [(\336le, )-250(289)]TJ -4.017 -1.25 Td [(login name,)-500(2, 17, 135, 179, 187, 21)55(1, 275)]TJ 17.738 0.09 Td (\320)Tj 0.583 -0.09 Td (276, 290,)Tj -15.621 -1.25 Td (480, 930)Tj -0.018 Tc -1.35 -1.25 Td (ro)Tj 0 Tc 0.923 0 Td [(ot, )-250(16)]TJ /TT0 1 Tf -2.273 -1.25 Td (login)Tj /T1_0 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(179,)-250(182, 184, 187, 251, 254, 256,)]TJ -0.717 -1.25 Td (276, 287)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (290, 292, 472, 700, 717, 738)Tj /TT0 1 Tf -6.866 -1.25 Td (LOG_INFO)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(472,)-250(476, 478)]TJ /TT0 1 Tf -5.217 -1.25 Td (LOGIN_NAME_MAX)Tj /T1_0 1 Tf 8.817 0 Td [(constant, )-250(40,)-250(43, 49)]TJ -8.817 -1.25 Td (logins)Tj 1.35 -1.25 Td [(network, )-250(290)]TJ 6.051 0.09 Td (\320)Tj 0.583 -0.09 Td (293)Tj -6.635 -1.25 Td [(terminal, )-250(285)]TJ 6.08 0.09 Td (\320)Tj 0.583 -0.09 Td (290)Tj /TT0 1 Tf -8.014 -1.25 Td (LOG_KERN)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -5.217 -1.25 Td (LOG_LOCAL0)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -6.417 -1.25 Td (LOG_LOCAL1)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -6.417 -1.25 Td (LOG_LOCAL2)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -6.417 -1.25 Td (LOG_LOCAL3)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -6.417 -1.25 Td (LOG_LOCAL4)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -6.417 -1.25 Td (LOG_LOCAL5)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -6.417 -1.25 Td (LOG_LOCAL6)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -6.417 -1.25 Td (LOG_LOCAL7)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -6.417 -1.25 Td (LOG_LPR)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -4.617 -1.25 Td (LOG_MAIL)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -5.217 -1.25 Td (log_msg)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(897,)-250(899)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(903)]TJ /TT0 1 Tf -1.35 -1.25 Td (LOGNAME)Tj /T1_0 1 Tf 4.617 0 Td [(envir)18(onment variable,)-500(21)55(1, 276, 288)]TJ /TT0 1 Tf -4.617 -1.25 Td (LOG_NDELAY)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(471,)-250(928)]TJ /TT0 1 Tf -6.417 -1.25 Td (LOG_NEWS)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -5.217 -1.25 Td (LOG_NOTICE)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -6.417 -1.25 Td (log_open)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(664,)-250(898)]TJ 22.133 65 Td [(de\336nition of,)-500(902)]TJ /TT0 1 Tf -1.35 -1.25 Td (LOG_PERROR)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(471)]TJ /TT0 1 Tf -6.417 -1.25 Td (LOG_PID)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(471,)-250(664)]TJ /TT0 1 Tf -4.617 -1.25 Td (log_quit)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(830,)-250(898)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (899)Tj -12.49 -1.25 Td [(de\336nition of,)-500(903)]TJ /TT0 1 Tf -1.35 -1.25 Td (log_ret)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(898)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (899)Tj -9.89 -1.25 Td [(de\336nition of,)-500(902)]TJ /TT0 1 Tf -1.35 -1.25 Td (log_sys)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(804,)-250(898)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (899)Tj -11.89 -1.25 Td [(de\336nition of,)-500(902)]TJ /TT0 1 Tf -1.35 -1.25 Td (LOG_SYSLOG)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -6.417 -1.25 Td (log_to_stderr)Tj /T1_0 1 Tf 8.217 0 Td [(variable, )-250(664,)-250(807, 813, 902, 904)]TJ /TT0 1 Tf -8.217 -1.25 Td (LOG_USER)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(472,)-250(664)]TJ /TT0 1 Tf -5.217 -1.25 Td (LOG_WARNING)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(472)]TJ /TT0 1 Tf -7.017 -1.25 Td (LONG_BIT)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(38)]TJ /TT0 1 Tf -5.217 -1.25 Td (_longjmp)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(355,)-250(358)]TJ /TT0 1 Tf -5.217 -1.25 Td (longjmp)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(197,)-250(213, 215)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (219, 225,)Tj -12.54 -1.25 Td (330)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (331, 340)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (341, 343, 355)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (358, 365, 381, 924)Tj -13.85 -1.25 Td [(de\336nition of,)-500(215)]TJ /TT0 1 Tf -1.35 -1.25 Td (LONG_MAX)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(37,)-250(52)]TJ 7.063 0.09 Td (\320)Tj 0.583 -0.09 Td (53, 60, 420, 906)Tj 6.583 0.09 Td (\320)Tj 0.583 -0.09 Td (907)Tj /TT0 1 Tf -20.03 -1.25 Td (LONG_MIN)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(37)]TJ /TT0 1 Tf -5.217 -1.25 Td (loop)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(663)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (664, 666, 670, 732, 742)Tj -8.09 -1.25 Td [(de\336nition of,)-500(666, 732)]TJ /TT0 1 Tf -1.35 -1.25 Td (lp)Tj /T1_0 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(585,)-250(793)]TJ /TT0 1 Tf -1.617 -1.25 Td (lpc)Tj /T1_0 1 Tf 2.217 0 Td [(pr)18(ogram, )-250(472)]TJ /TT0 1 Tf -2.217 -1.25 Td (lpd)Tj /T1_0 1 Tf 2.217 0 Td [(pr)18(ogram, )-250(472,)-250(793)]TJ /TT0 1 Tf -2.217 -1.25 Td (lpsched)Tj /T1_0 1 Tf 4.617 0 Td [(pr)18(ogram, )-250(585,)-250(793)]TJ /TT0 1 Tf -4.617 -1.25 Td (lrand48)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -4.617 -1.25 Td (ls)Tj /T1_0 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(5)]TJ 5.191 0.09 Td (\320)Tj 0.583 -0.09 Td (8, 13, 107)Tj 4.083 0.09 Td (\320)Tj 0.583 -0.09 Td [(108, 1)55(12, 123, 125, 131,)]TJ -9.358 -1.25 Td (135, 139, 141, 177, 179, 559, 905)Tj /TT0 1 Tf -2.7 -1.25 Td (lseek)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(8,)-250(59, 61, 66)]TJ 9.54 0.09 Td (\320)Tj 0.583 -0.09 Td (70, 77)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (79, 88, 91,)Tj -14.007 -1.25 Td (149, 158, 331, 452, 462, 486, 489, 498, 592, 670,)Tj 0 -1.25 TD (765)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (766, 768, 771, 773, 779, 819, 908)Tj -3.517 -1.25 Td [(de\336nition of,)-500(67)]TJ /TT0 1 Tf -1.35 -1.25 Td (lstat)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(93)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (97, 121)Tj 3.083 0.09 Td (\320)Tj 0.583 -0.09 Td (122, 133, 141, 331,)Tj -10.507 -1.25 Td (452, 942)Tj -1.35 -1.25 Td [(de\336nition of,)-500(93)]TJ /TT0 1 Tf -1.35 -1.25 Td (L_tmpnam)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(168)]TJ -5.217 -1.25 Td [(Lucchina, P)129(., )-250(xxxii)]TJ 0 -4.75 TD [(Mac OS X,)-500(xxi\320xxii, xxvi\320xxvii, 3)]TJ 14.705 0.09 Td (\320)Tj 0.583 -0.09 Td (4, 17, 26)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (27,)Tj -16.755 -1.25 Td (29)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (30, 35)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (36, 38, 49, 57, 60, 62, 64, 70, 83,)Tj -4.833 -1.25 Td (87)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (88, 102, 108)Tj 5.083 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (111)Tj 0.25 Tc 1.39 0 Td (,1)Tj 0 Tc 0.945 0 Td (13, 121, 129, 132, 138,)Tj -9.668 -1.25 Td (175, 178, 182, 184)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (185, 187)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (188, 193, 209,)Tj -12.333 -1.25 Td [(21)55(1)]TJ 1.528 0.09 Td (\320)Tj 0.583 -0.09 Td (212, 222, 228, 240, 244)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (245, 260, 262, 269,)Tj -12.278 -1.25 Td (271, 276)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (277, 288)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (289, 292)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (293, 298, 303,)Tj -12.5 -1.25 Td (314)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (317, 319, 322, 329, 334, 351, 355, 371, 373,)Tj -2.167 -1.25 Td (377, 379)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (380, 385, 388, 393, 396, 409,)Tj -4.166 -1.25 Td (426)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (427, 464)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (465, 485, 497, 503, 522, 534,)Tj -6.333 -1.25 Td [(559, 561, 567, 572, 576, 594, 607, 61)55(1)]TJ 15.528 0.09 Td (\320)Tj 0.583 -0.09 Td (613, 627,)Tj -16.111 -1.25 Td (634, 648, 675)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (678, 685)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (691, 716, 724,)Tj -10.333 -1.25 Td (726)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (727, 740)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(741, 744, 793, 799, 91)55(1, 918, 925,)]TJ -6.333 -1.25 Td (930, 932, 935)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (936)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47662 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(6.10)]TJ -0.055 Tc 32.431 0 Td (Ti)Tj 0 Tc 0.849 0 Td [(me )-250(and )-250(Date )-250(Routines)]TJ /T1_1 1 Tf 12.553 0 Td (193)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(functions, )-759(each )-759(conversion )-759(speci\336ed )-759(generates )-759(a )-759(dif)20(fer)18(ent )-759(\336xed-size )-759(output)]TJ -0 -1.2 Td [(string )167(\321 )167(ther)]TJ 0.2682 Tc 5.505 0 Td (ea)Tj -0.018 Tc 1.247 0 Td [(re )-54(n)]TJ 0.2682 Tc 1.706 0 Td (o\336)Tj 0 Tc 1.419 0 Td [(eld )-18(widths )-18(in )-18(the)]TJ /T1_2 1 Tf 7.782 0 Td (format)Tj /T1_0 1 Tf 2.934 0 Td [(string. )-268(Figur)]TJ 0.2681 Tc 5.725 0 Td (e6)Tj 0 Tc 1.247 0 Td [(.10 )-18(describes )-18(the )-18(37 )-18(ISO )-18(C)]TJ -27.565 -1.2 Td (conversion speci\336ers.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1450.25 6310.25 cm 0 0 m 3592 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 148.9601 622.9252 Tm (Format )Tj 13.779 0 Td (Description)Tj 20.986 0 Td (Example)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1450.25 6190.25 cm 0 0 m 3592 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1450.25 6170.25 cm 0 0 m 3592 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 156.9737 608.8904 Tm (%a)Tj /T1_0 1 Tf 3.703 0 Td [(abbr)18(eviated weekday name)]TJ /TT0 1 Tf 24.799 0 Td (Thu)Tj -28.503 -1.25 Td (%A)Tj /T1_0 1 Tf 3.703 0 Td (full weekday name)Tj /TT0 1 Tf 24.799 0 Td (Thursday)Tj -28.503 -1.25 Td (%b)Tj /T1_0 1 Tf 3.703 0 Td [(abbr)18(eviated month name)]TJ /TT0 1 Tf 24.799 0 Td (Jan)Tj -28.503 -1.25 Td (%B)Tj /T1_0 1 Tf 3.703 0 Td (full month name)Tj /TT0 1 Tf 24.799 0 Td (January)Tj -28.503 -1.25 Td (%c)Tj /T1_0 1 Tf 3.703 0 Td (date and time)Tj /TT0 1 Tf 24.799 0 Td (Thu Jan 19 21:24:52 2012)Tj -28.503 -1.25 Td (%C)Tj /T1_0 1 Tf 3.703 0 Td (year/100: [00)Tj 5.952 0.09 Td (\320)Tj 0.583 -0.09 Td (99])Tj /TT0 1 Tf 18.264 0 Td (20)Tj -28.503 -1.25 Td (%d)Tj /T1_0 1 Tf 3.703 0 Td (day of the month: [01)Tj 9.518 0.09 Td (\320)Tj 0.583 -0.09 Td (31])Tj /TT0 1 Tf 14.698 0 Td (19)Tj -28.503 -1.25 Td (%D)Tj /T1_0 1 Tf 3.703 0 Td (date)Tj 2.166 0.04 Td ([)Tj 0.333 -0.04 Td (MM/DD/YY)Tj 5.986 0.04 Td (])Tj /TT0 1 Tf 16.314 -0.04 Td (01/19/12)Tj -28.503 -1.25 Td (%e)Tj /T1_0 1 Tf 3.703 0 Td [(day of month \(single digit pr)18(eceded by space\) [1)]TJ 21.383 0.09 Td (\320)Tj 0.583 -0.09 Td (31])Tj /TT0 1 Tf 2.833 0 Td (19)Tj -28.503 -1.25 Td (%F)Tj /T1_0 1 Tf 3.703 0 Td (ISO 8601 date format [YYYY\320MM\320DD])Tj /TT0 1 Tf 24.799 0 Td (2012)Tj 2.4 0.09 Td (-)Tj 0.6 -0.09 Td (01)Tj 1.2 0.09 Td (-)Tj 0.6 -0.09 Td (19)Tj -33.303 -1.25 Td (%g)Tj /T1_0 1 Tf 3.703 0 Td (last two digits of ISO 8601 week-based year [00)Tj 20.867 0.09 Td (\320)Tj 0.583 -0.09 Td (99])Tj /TT0 1 Tf 3.349 0 Td (12)Tj -28.503 -1.25 Td (%G)Tj /T1_0 1 Tf 3.703 0 Td (ISO 8601 week-based year)Tj /TT0 1 Tf 24.799 0 Td (2012)Tj -28.503 -1.25 Td (%h)Tj /T1_0 1 Tf 3.703 0 Td (same as)Tj /TT0 1 Tf 3.71 0 Td (%b )Tj 21.089 0 Td (Jan)Tj -28.502 -1.25 Td (%H)Tj /T1_0 1 Tf 3.703 0 Td (hour of the day \(24-hour format\): [00)Tj 16.333 0.09 Td (\320)Tj 0.583 -0.09 Td (23])Tj /TT0 1 Tf 7.883 0 Td (21)Tj -28.503 -1.25 Td (%I)Tj /T1_0 1 Tf 3.703 0 Td (hour of the day \(12-hour format\): [01)Tj 16.333 0.09 Td (\320)Tj 0.583 -0.09 Td (12])Tj /TT0 1 Tf 7.883 0 Td (09)Tj -28.503 -1.25 Td (%j)Tj /T1_0 1 Tf 3.703 0 Td (day of the year: [001)Tj 9.029 0.09 Td (\320)Tj 0.583 -0.09 Td (366])Tj /TT0 1 Tf 15.187 0 Td (019)Tj -28.503 -1.25 Td (%m)Tj /T1_0 1 Tf 3.703 0 Td (month: [01)Tj 4.835 0.09 Td (\320)Tj 0.583 -0.09 Td (12])Tj /TT0 1 Tf 19.381 0 Td (01)Tj -28.503 -1.25 Td (%M)Tj /T1_0 1 Tf 3.703 0 Td (minute: [00)Tj 5.08 0.09 Td (\320)Tj 0.583 -0.09 Td (59])Tj /TT0 1 Tf 19.136 0 Td (24)Tj -28.503 -1.25 Td (%n)Tj /T1_0 1 Tf 3.703 0 Td (newline character)Tj /TT0 1 Tf -3.703 -1.25 Td (%p)Tj /T1_0 1 Tf 3.703 0 Td (AM/PM)Tj /TT0 1 Tf 24.799 0 Td (PM)Tj -28.503 -1.25 Td (%r)Tj /T1_0 1 Tf 3.703 0 Td (locale\325s time \(12-hour format\))Tj /TT0 1 Tf 24.799 0 Td (09:24:52 PM)Tj -28.503 -1.25 Td (%R)Tj /T1_0 1 Tf 3.703 0 Td (same as)Tj /TT0 1 Tf 3.71 0 Td (%H:%M )Tj 21.089 0 Td (21:24)Tj -28.502 -1.25 Td (%S)Tj /T1_0 1 Tf 3.703 0 Td (second: [00)Tj 5.002 0.09 Td (\320)Tj 0.583 -0.09 Td (60])Tj /TT0 1 Tf 19.214 0 Td (52)Tj -28.503 -1.25 Td (%t)Tj /T1_0 1 Tf 3.703 0 Td (horizontal tab character)Tj /TT0 1 Tf -3.703 -1.25 Td (%T)Tj /T1_0 1 Tf 3.703 0 Td (same as)Tj /TT0 1 Tf 3.71 0 Td (%H:%M:%S )Tj 21.089 0 Td (21:24:52)Tj -28.502 -1.25 Td (%u)Tj /T1_0 1 Tf 3.703 0 Td (ISO 8601 weekday [Monday = 1, 1)Tj 15.176 0.09 Td (\320)Tj 0.583 -0.09 Td (7])Tj /TT0 1 Tf 9.04 0 Td (4)Tj -28.503 -1.25 Td (%U)Tj /T1_0 1 Tf 3.703 0 Td (Sunday week number: [00)Tj 11.636 0.09 Td (\320)Tj 0.583 -0.09 Td (53])Tj /TT0 1 Tf 12.58 0 Td (03)Tj -28.503 -1.25 Td (%V)Tj /T1_0 1 Tf 3.703 0 Td (ISO 8601 week number: [01)Tj 12.157 0.09 Td (\320)Tj 0.583 -0.09 Td (53])Tj /TT0 1 Tf 12.059 0 Td (03)Tj -28.503 -1.25 Td (%w)Tj /T1_0 1 Tf 3.703 0 Td (weekday: [0 = Sunday)Tj 0.25 Tc 9.72 0 Td (,0)Tj 0 Tc 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (6])Tj /TT0 1 Tf 13.413 0 Td (4)Tj -28.503 -1.25 Td (%W)Tj /T1_0 1 Tf 3.703 0 Td (Monday week number: [00)Tj 12 0.09 Td (\320)Tj 0.583 -0.09 Td (53])Tj /TT0 1 Tf 12.216 0 Td (03)Tj -28.503 -1.25 Td (%x)Tj /T1_0 1 Tf 3.703 0 Td (locale\325s date)Tj /TT0 1 Tf 24.799 0 Td (01/19/12)Tj -28.503 -1.25 Td (%X)Tj /T1_0 1 Tf 3.703 0 Td (locale\325s time)Tj /TT0 1 Tf 24.799 0 Td (21:24:52)Tj -28.503 -1.25 Td (%y)Tj /T1_0 1 Tf 3.703 0 Td (last two digits of year: [00)Tj 11.471 0.09 Td (\320)Tj 0.583 -0.09 Td (99])Tj /TT0 1 Tf 12.745 0 Td (12)Tj -28.503 -1.25 Td (%Y)Tj /T1_0 1 Tf 3.703 0 Td (year)Tj /TT0 1 Tf 24.799 0 Td (2012)Tj -28.503 -1.25 Td (%z)Tj /T1_0 1 Tf 3.703 0 Td [(of)18(fset fr)18(om UTC in ISO 8601 format)]TJ /TT0 1 Tf 24.799 0 Td (-0500)Tj -28.503 -1.25 Td (%Z)Tj /T1_0 1 Tf 3.703 0 Td (time zone name)Tj /TT0 1 Tf 24.799 0 Td (EST)Tj -28.503 -1.25 Td (%%)Tj /T1_0 1 Tf 3.703 0 Td [(translates to a per)18(cent sign)]TJ /TT0 1 Tf 24.799 0 Td (%)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1450.25 2450.25 cm 0 0 m 3592 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3790.25 2450.25 cm 0 0 m 0 3860 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1806.25 2450.25 cm 0 0 m 0 3860 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5042.25 2450.25 cm 0 0 m 0 3860 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1450.25 2450.25 cm 0 0 m 0 3860 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 237.423 226.9455 Tm (Figure 6.10)Tj /T1_0 1 Tf 5.695 0 Td (Conversion speci\336ers for)Tj /TT0 1 Tf 11.285 0 Td (strftime)Tj /T1_0 1 Tf 9.9976 0 0 9.9976 129.5692 202.9513 Tm [(The )-214(thir)]TJ 0.4636 Tc 3.714 0 Td (dc)Tj 0 Tc 1.519 0 Td [(olumn )-214(of )-214(this )-214(\336gur)19(e)-464(is)-464(f)]TJ -0.018 Tc 11.393 0 Td (ro)Tj 0.4637 Tc 0.923 0 Td (mt)Tj 0 Tc 1.673 0 Td [(he )-214(output )-214(of)]TJ /TT0 1 Tf 6.336 0 Td (strftime)Tj /T1_0 1 Tf 5.264 0 Td [(under )-214(Mac )-214(OS )-214(X,)]TJ -30.821 -1.2 Td [(corr)18(esponding to the time and date)]TJ /TT0 1 Tf 15.781 0 Td (Thu Jan 19 21:24:52 EST 2012)Tj /T1_0 1 Tf (.)Tj -13.981 -1.2 Td [(The )-138(only )-138(speci\336ers )-138(that )-138(ar)]TJ 0.3879 Tc 11.954 0 Td (en)Tj 0 Tc 1.449 0 Td [(ot )-138(self-evident )-138(ar)18(e)]TJ /TT0 1 Tf 8.585 0 Td (%U)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf 1.838 0 Td (%V)Tj /T1_0 1 Tf 0.3879 Tc (,a)Tj 0 Tc 2.338 0 Td (nd)Tj /TT0 1 Tf 1.581 0 Td (%W)Tj /T1_0 1 Tf 0.6379 Tc (.T)Tj 0 Tc 2.701 0 Td (he)Tj /TT0 1 Tf 1.449 0 Td (%U)Tj /T1_0 1 Tf 1.588 0 Td (speci\336er)Tj -0.018 Tc -35.282 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(pr)18(esents )-67(the )-67(week )-67(number )-67(of )-67(the )-67(year)]TJ 0.3168 Tc 16.945 0 Td (,w)Tj 0 Tc 1.401 0 Td (her)Tj 0.3168 Tc 1.438 0 Td (et)Tj 0 Tc 1.122 0 Td [(he )-67(week )-67(containing )-67(the )-67(\336rst )-67(Sunday )-67(is)]TJ -21.761 -1.2 Td [(week )-209(1.)-709(The)]TJ /TT0 1 Tf 6.399 0 Td (%W)Tj /T1_0 1 Tf 1.659 0 Td [(speci\336er )-209(r)18(epr)18(esents )-209(the )-209(week )-209(number )-209(of )-209(the )-209(year)]TJ 0.4588 Tc 22.83 0 Td (,w)Tj 0 Tc 1.543 0 Td (her)Tj 0.4588 Tc 1.438 0 Td (et)Tj 0 Tc 1.264 0 Td [(he )-209(week)]TJ -35.133 -1.2 Td [(containing )-275(the )-275(\336rst )-275(Monday )-275(is )-275(week )-275(1.)-777(The)]TJ /TT0 1 Tf 21.517 0 Td (%V)Tj /T1_0 1 Tf 1.725 0 Td [(speci\336er )-275(is )-275(dif)17(fer)18(ent. )-525(If)-526(the )-275(week)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47663 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(1.8)]TJ 35.837 0 Td [(User )-250(Identi\336cation)]TJ /T1_1 1 Tf 10.496 0 Td (17)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(Client )-133(versions )-133(of )-133(Mac )-133(OS )-133(X )-133(ship )-133(with )-133(the )-133(super)8(user )-133(account )-133(disabled; )-133(server )-133(versions )-133(ship)]TJ 0 -1.25 TD [(with )-130(the )-130(account )-130(alr)18(eady )-130(enabled.)-631(Instr)8(uctions )-130(ar)]TJ 0.3801 Tc 22.604 0 Td (ea)Tj 0 Tc 1.359 0 Td [(vailable )-130(on )-130(Apple\325s )-130(W)92(eb )-130(site )-130(describing)]TJ -23.963 -1.25 Td [(how to enable it.)-500(See)]TJ /TT0 1 Tf 9.568 0 Td (http://support.apple.com/kb/HT1528)Tj /T1_0 1 Tf (.)Tj /TT1 1 Tf 9.9994 0 0 9.9994 93.5947 628.1623 Tm [(Gr)20(oup ID)]TJ /T1_0 1 Tf 3.6 -2.04 Td [(Our )-4(entry )-4(in )-4(the )-4(passwor)]TJ 0.2536 Tc 11.102 0 Td (d\336)Tj 0 Tc 1.47 0 Td [(le )-4(also )-4(speci\336es )-4(our )-4(numeric)]TJ /T1_2 1 Tf 12.768 0 Td [(gr)18(oup )-4(ID)]TJ /T1_0 1 Tf 0.5037 Tc (.T)Tj 0 Tc 5.102 0 Td [(his, )-4(too, )-4(is )-4(assigned)]TJ -30.442 -1.2 Td [(by )-53(the )-53(system )-53(administrator )-53(when )-53(our )-53(login )-53(name )-53(is )-53(assigned.)]TJ -0.09 Tc 28.499 0 Td (Ty)Tj 0 Tc 1.079 0 Td (pically)Tj 0.3027 Tc 2.863 0 Td (,t)Tj 0 Tc 0.879 0 Td [(he )-53(passwor)18(d)]TJ -33.32 -1.2 Td [(\336le )-21(contains )-21(multiple )-21(entries )-21(that )-21(specify )-21(the )-21(same )-21(gr)15(oup )-21(ID.)-522(Gr)18(oups )-21(ar)]TJ 0.2715 Tc 31.817 0 Td (en)Tj 0 Tc 1.332 0 Td [(ormally )-21(used)]TJ -33.149 -1.2 Td [(to )-306(collect )-306(users )-306(together )-306(into )-306(pr)18(ojects )-306(or )-306(departments.)-806(This )-306(allows )-306(the )-306(sharing )-306(of)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(sour)18(ces, )-16(such )-16(as )-16(\336les, )-16(among )-16(members )-16(of )-16(the )-16(same )-16(gr)16(oup. )-266(W)92(e\325ll )-16(see )-16(in )-16(Section )-16(4.5 )-16(that)]TJ -0.856 -1.2 Td [(we )-84(can )-84(set )-84(the )-84(permissions )-84(on )-84(a )-84(\336le )-84(so )-84(that )-84(all )-84(members )-84(of )-84(a )-84(gr)18(oup )-84(can )-84(access )-84(the )-84(\336le,)]TJ T* [(wher)18(eas others outside the gr)18(oup cannot.)]TJ 1.8 -1.2 Td [(Ther)18(e)-438(is)-438(a)1(lso )-188(a )-188(gr)18(oup )-188(\336le )-188(that )-188(maps )-188(gr)18(oup )-188(names )-188(into )-188(numeric )-188(gr)18(oup )-188(IDs.)-686(The)]TJ -1.8 -1.2 Td [(gr)18(oup \336le is usually)]TJ /TT0 1 Tf 9.041 0 Td (/etc/group)Tj /T1_0 1 Tf (.)Tj -7.241 -1.2 Td [(The )-117(use )-117(of )-117(numeric )-117(user )-117(IDs )-117(and )-117(numeric )-117(gr)18(oup )-117(IDs )-117(for )-117(permissions )-117(is )-117(historical.)]TJ -0.055 Tc -1.8 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-120(every )-120(\336le )-120(on )-120(disk, )-120(the )-120(\336le )-120(system )-120(stor)18(es )-120(both )-120(the )-120(user )-120(ID )-120(and )-120(the )-120(gr)18(oup )-120(ID )-120(of )-120(a)]TJ -1.236 -1.2 Td [(\336le\325s )-11(owner)]TJ 0.5111 Tc 5.1 0 Td (.S)Tj 0 Tc 1.286 0 Td [(toring )-11(both )-11(of )-11(these )-11(values )-11(r)18(equir)18(es )-11(only )-11(four )-11(bytes, )-11(assuming )-11(that )-11(each )-11(is)]TJ -6.386 -1.2 Td [(stor)18(ed )-100(as )-100(a )-100(two-byte )-100(integer)]TJ 0.5999 Tc 12.574 0 Td (.I)Tj 0.3499 Tc 1.187 0 Td (ft)Tj 0 Tc 1.009 0 Td [(he )-100(full )-100(ASCII )-100(login )-100(name )-100(and )-100(gr)19(oup )-100(name )-100(wer)]TJ 0.35 Tc 21.284 0 Td (eu)Tj 0 Tc 1.432 0 Td (sed)Tj -37.486 -1.2 Td [(instead, )-324(additional )-324(disk )-324(space )-324(would )-324(be )-324(r)17(equir)18(ed. )-574(In)-574(addition, )-324(comparing )-324(strings)]TJ -0 -1.2 Td (during permission checks is mor)Tj 0.25 Tc 14.404 0 Td (ee)Tj 0 Tc 1.208 0 Td (xpensive than comparing integers.)Tj -13.812 -1.2 Td [(Users, )-113(however)]TJ 0.3635 Tc 6.919 0 Td (,w)Tj 0 Tc 1.447 0 Td [(ork )-114(better )-114(with )-114(names )-114(than )-114(with )-114(numbers, )-114(so )-114(the )-114(passwor)]TJ 0.3636 Tc 26.483 0 Td (d\336)Tj 0 Tc 1.58 0 Td (le)Tj -38.23 -1.2 Td [(maintains )-53(the )-53(mapping )-53(between )-53(login )-53(names )-53(and )-53(user )-53(IDs, )-53(and )-53(the )-53(gr)18(oup )-53(\336le )-53(pr)14(ovides)]TJ T* [(the )-44(mapping )-44(between )-44(gr)18(oup )-44(names )-44(and )-44(gr)18(oup )-44(IDs.)-542(The)]TJ /TT0 1 Tf 25.413 0 Td [(ls )267(-l)]TJ /T1_0 1 Tf 3.027 0 Td [(command, )-44(for )-44(example,)]TJ -28.44 -1.2 Td [(prints )-28(the )-28(login )-28(name )-28(of )-28(the )-28(owner )-28(of )-28(a )-28(\336le, )-28(using )-28(the )-28(passwor)]TJ 0.2778 Tc 27.705 0 Td (d\336)Tj 0 Tc 1.494 0 Td [(le )-28(to )-28(map )-28(the )-28(numeric)]TJ -29.198 -1.2 Td [(user ID into the corr)18(esponding login name.)]TJ 7.9995 0 0 7.9995 183.589 362.1783 Tm [(Early )-212(UNIX )-212(systems )-212(used )-212(16)]TJ 13.445 0.09 Td (-)Tj 0.333 -0.09 Td [(bit )-212(integers )-212(to )-212(r)19(epr)18(esent )-212(user )-212(and )-212(gr)18(oup )-212(IDs.)-711(Contemporary)]TJ -13.778 -1.25 Td (UNIX systems use 32)Tj 9.385 0.09 Td (-)Tj 0.333 -0.09 Td (bit integers.)Tj /TT1 1 Tf 9.9994 0 0 9.9994 93.5947 328.1803 Tm (Example)Tj /T1_0 1 Tf 3.6 -2.04 Td [(The pr)18(ogram in Figur)]TJ 0.25 Tc 9.538 0 Td (e1)Tj 0 Tc 1.229 0 Td [(.9 prints the user ID and the gr)18(oup ID.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3018.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 292.2639 Tm (#include "apue.h")Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("uid = %d, gid = %d\\n", getuid\(\), getgid\(\)\);)Tj T* (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2179.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 255.9859 203.1114 Tm (Figure 1.9)Tj /T1_0 1 Tf 5.195 0 Td [(Print user ID and gr)18(oup ID)]TJ -0.092 Tc 9.9982 0 0 9.9982 129.5769 181.5153 Tm [(We )-369(c)]TJ 0 Tc 2.266 0 Td [(all )-185(the )-185(functions)]TJ /TT0 1 Tf 7.904 0 Td (getuid)Tj /T1_0 1 Tf 4.035 0 Td (and)Tj /TT0 1 Tf 2.128 0 Td (getgid)Tj /T1_0 1 Tf 4.035 0 Td [(to )-185(r)18(eturn )-185(the )-185(user )-185(ID )-185(and )-185(the )-185(gr)18(oup )-185(ID.)]TJ -20.366 -1.2 Td [(Running the pr)18(ogram yields)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.5738 155.2201 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (uid = 205, gid = 105)Tj ET q 0.099982 0 0 0.099982 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1340.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47664 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.8)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (779)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(720 )-1200(/*)]TJ 0 -1.189 TD [(721 )-1800(*)-600(Rewind the index file for db_nextrec.)]TJ T* [(722 )-1800(*)-600(Automatically called by db_open.)]TJ T* [(723 )-1800(*)-600(Must be called before first db_nextrec.)]TJ T* [(724 )-1800(*/)]TJ 0 -1.189 TD [(725 )-1200(void)]TJ 0 -1.189 TD [(726 )-1200(db_rewind\(DBHANDLE)-600(h\))]TJ T* [(727 )-1200({)]TJ T* [(728 )-2400(DB)-3600(*db = h;)]TJ T* [(729 )-2400(off_t)-1800(offset;)]TJ 0 -2.021 TD [(730 )-2400(offset)]TJ 0.6 Tc 9 0 Td (=\()Tj 0 Tc 1.8 0 Td [(db->nhash + 1\) * PTR_SZ;)-1200(/* +1 for free list ptr */)]TJ -10.8 -2.021 Td [(731 )-2400(/*)]TJ 0 -1.189 TD [(732 )-3000(*)-600(We\325re just setting the file offset for this process)]TJ T* [(733 )-3000(*)-600(to the start of the index records; no need to lock.)]TJ T* [(734 )-3000(*)-600(+1 below for newline at end of hash table.)]TJ T* [(735 )-3000(*/)]TJ T* [(736 )-2400(if)-600(\(\(db->idxoff = lseek\(db->idxfd, offset+1, SEEK_SET\)\) == -1\))]TJ T* [(737 )-4800(err_dump\("db_rewind:)-600(lseek error"\);)]TJ 0 -1.189 TD [(738 )-1200(})]TJ 0 -2.021 TD [(739 )-1200(/*)]TJ 0 -1.189 TD [(740 )-1800(*)-600(Return the next sequential record.)]TJ T* [(741 )-1800(*)-600(We just step our way through the index file, ignoring deleted)]TJ 0 -1.189 TD [(742 )-1800(*)-600(records. )-600(db_rewind)-600(must be called before this function is)]TJ 0 -1.189 TD [(743 )-1800(*)-600(called the first time.)]TJ T* [(744 )-1800(*/)]TJ T* [(745 )-1200(char)-600(*)]TJ T* [(746 )-1200(db_nextrec\(DBHANDLE)-600(h, char *key\))]TJ T* [(747 )-1200({)]TJ T* [(748 )-2400(DB)-3600(*db = h;)]TJ T* [(749 )-2400(char)-2400(c;)]TJ T* [(750 )-2400(char)-2400(*ptr;)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3112.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 287.1935 Tm [([720 )167(\320 )167(738])-668(The)]TJ /TT0 1 Tf 7.05 0 Td (db_rewind)Tj /T1_0 1 Tf 5.776 0 Td [(function )-126(is )-126(used )-126(to )-126(r)20(eset )-125(the )-125(database )-125(to )-125(\324)37(\324the )-125(beginning;\325)35(\325)]TJ -7.825 -1.2 Td [(we )-42(set )-42(the )-42(\336le )-42(of)18(fset )-42(for )-42(the )-42(index )-42(\336le )-42(to )-42(point )-42(to )-42(the )-42(\336rst )-42(r)24(ecor)18(d)-292(in)-292(t)1(he )-42(index)]TJ 0 -1.2 Td [(\336le )-11(\(immediately )-11(following )-11(the )-11(hash )-11(table\).)-510(\(Recall )-11(the )-11(str)9(uctur)18(e)-261(of)-261(t)1(he )-11(index)]TJ 0 -1.2 Td [(\336le fr)18(om Figur)]TJ 0.25 Tc 6.397 0 Td (e2)Tj 0 Tc 1.229 0 Td (0.2.\))Tj -12.626 -1.6 Td [([739 )167(\320 )167(750])-668(The)]TJ /TT0 1 Tf 7.172 0 Td (db_nextrec)Tj /T1_0 1 Tf 6.498 0 Td [(function )-248(r)18(eturns )-248(the )-248(next )-248(r)17(ecor)18(d)-498(in)-498(the )-248(database.)-748(The)]TJ -0.018 Tc -8.67 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turn )-65(value )-65(is )-65(a )-65(pointer )-65(to )-65(the )-65(data )-65(buf)21(fer)]TJ 0.5646 Tc 18.096 0 Td (.I)Tj 0.3146 Tc 1.152 0 Td (ft)Tj 0 Tc 0.974 0 Td [(he )-64(caller )-64(pr)18(ovides )-64(a )-64(non-null)]TJ -21.077 -1.2 Td [(value )-8(for )-8(the)]TJ /TT0 1 Tf 5.873 0 Td (key)Tj /T1_0 1 Tf 2.058 0 Td (parameter)Tj 0.2581 Tc 4.484 0 Td (,t)Tj 0 Tc 0.834 0 Td [(he )-8(corr)18(esponding )-8(key )-8(is )-8(copied )-8(to )-8(this )-8(addr)17(ess.)]TJ -13.249 -1.2 Td [(The )-96(caller )-96(is )-96(r)18(esponsible )-96(for )-96(allocating )-96(a )-96(buf)19(fer )-96(big )-96(enough )-96(to )-96(stor)]TJ 0.3458 Tc 29.712 0 Td (et)Tj 0 Tc 1.151 0 Td [(he )-96(key)111(.)]TJ 0.25 Tc -30.863 -1.2 Td (Ab)Tj 0 Tc 1.581 0 Td [(uf)18(fer whose size is)]TJ /TT0 1 Tf 8.399 0 Td (IDXLEN_MAX)Tj /T1_0 1 Tf 6.25 0 Td [(bytes is lar)18(ge enough to hold any key)111(.)]TJ -16.23 -1.8 Td [(Recor)18(ds )-30(ar)]TJ 0.2804 Tc 4.706 0 Td (er)Tj 0 Tc 1.136 0 Td [(eturned )-30(sequentially)111(,)-280(in)-280(t)-1(he )-30(or)18(der )-30(that )-30(they )-30(happen )-30(to )-30(be )-30(stor)15(ed)]TJ -5.843 -1.2 Td [(in )-161(the )-161(database )-161(\336le.)-661(Thus, )-161(the )-161(r)20(ecor)18(ds )-160(ar)]TJ 0.4105 Tc 18.896 0 Td (en)Tj 0 Tc 1.471 0 Td [(ot )-160(sorted )-160(by )-160(key )-160(value.)-662(Also,)]TJ -20.368 -1.2 Td [(because )-81(we )-81(do )-81(not )-81(follow )-81(the )-81(hash )-81(chains, )-81(we )-81(can )-81(come )-81(acr)18(oss )-81(r)14(ecor)18(ds )-81(that)]TJ 0 -1.2 Td [(have been deleted, but we will not r)18(eturn these to the caller)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47665 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (420)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 0 Tc 8.9995 0 0 8.9995 237.5857 670.2598 Tm (int \(*\)\(const void *, const void *\)\);)Tj -12 -1.189 Td (#endif)Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (ompare two long integers \(helper function for heapsort\))Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (int)Tj 0 -1.189 TD (complong\(const void *arg1, const void *arg2\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (long l1 = *\(long *\)arg1;)Tj 0 -1.189 TD (long l2 = *\(long *\)arg2;)Tj 0 -1.902 TD (if \(l1 == l2\))Tj 2.4 -1.189 Td (return 0;)Tj -2.4 -1.189 Td (else if \(l1 < l2\))Tj 2.4 -1.189 Td (return -1;)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (return 1;)Tj -4.8 -1.189 Td (})Tj T* (/*)Tj 0.6 Tc 0.6 -1.189 Td (*W)Tj 0 Tc 1.8 0 Td (orker thread to sort a portion of the set of numbers.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void *)Tj 0 -1.189 TD (thr_fn\(void *arg\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(long )-1800(idx)]TJ 0.6 Tc 7.2 0 Td (=\()Tj 0 Tc 1.8 0 Td (long\)arg;)Tj -9 -1.902 Td (heapsort\(&nums[idx], TNUM, sizeof\(long\), complong\);)Tj T* (pthread_barrier_wait\(&b\);)Tj 0 -1.902 TD (/*)Tj 0.6 -1.189 Td [(*)-600(Go)-600(off and perform more work ...)]TJ 0 -1.189 TD (*/)Tj -0.6 -1.189 Td (return\(\(void *\)0\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*M)Tj 0 Tc 1.8 0 Td (erge the results of the individual sorted ranges.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (void)Tj 0 -1.189 TD (merge\(\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(long )-1800(idx[NTHR];)]TJ T* [(long )-1800(i,)-600(minidx, sidx, num;)]TJ 0 -1.902 TD (for \(i = 0; i < NTHR; i++\))Tj 2.4 -1.189 Td (idx[i] = i * TNUM;)Tj -2.4 -1.189 Td (for \(sidx = 0; sidx < NUMNUM; sidx++\) {)Tj 2.4 -1.189 Td (num = LONG_MAX;)Tj 0 -1.189 TD (for \(i = 0; i < NTHR; i++\) {)Tj 2.4 -1.189 Td (if \(\(idx[i] < \(i+1\)*TNUM\) && \(nums[idx[i]] < num\)\) {)Tj 2.4 -1.189 Td (num = nums[idx[i]];)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47666 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (970)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (l64a)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -2.817 -1.25 Td (LANG)Tj /T1_1 1 Tf 2.817 0 Td [(envir)18(onment variable,)-500(41, 21)55(1)]TJ /TT0 1 Tf -2.817 -1.25 Td ()Tj /T1_1 1 Tf 7.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj /TT0 1 Tf -11.839 -1.25 Td (last)Tj /T1_1 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(187)]TJ /TT0 1 Tf -2.817 -1.25 Td (launchctl)Tj /T1_1 1 Tf 5.817 0 Td [(pr)18(ogram, )-250(293)]TJ /TT0 1 Tf -5.817 -1.25 Td (launchd)Tj /T1_1 1 Tf 4.617 0 Td [(pr)18(ogram, )-250(228,)-250(259, 289, 292, 465)]TJ -4.617 -1.25 Td [(layers, shell,)-500(299)]TJ /TT0 1 Tf 0 -1.25 TD (LC_ALL)Tj /T1_1 1 Tf 4.017 0 Td [(envir)18(onment variable,)-500(21)55(1)]TJ /TT0 1 Tf -4.017 -1.25 Td (LC_COLLATE)Tj /T1_1 1 Tf 6.417 0 Td [(envir)18(onment variable,)-500(43, 21)55(1)]TJ /TT0 1 Tf -6.417 -1.25 Td (LC_CTYPE)Tj /T1_1 1 Tf 5.217 0 Td [(envir)18(onment variable,)-500(21)55(1)]TJ /TT0 1 Tf -5.217 -1.25 Td (lchown)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(109)]TJ 6.04 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (0, 121, 125)Tj -10.235 -1.25 Td [(de\336nition of,)-500(109)]TJ /TT0 1 Tf -1.35 -1.25 Td (LC_MESSAGES)Tj /T1_1 1 Tf 7.017 0 Td [(envir)18(onment variable,)-500(21)55(1)]TJ /TT0 1 Tf -7.017 -1.25 Td (LC_MONETARY)Tj /T1_1 1 Tf 7.017 0 Td [(envir)18(onment variable,)-500(21)55(1)]TJ /TT0 1 Tf -7.017 -1.25 Td (LC_NUMERIC)Tj /T1_1 1 Tf 6.417 0 Td [(envir)18(onment variable,)-500(21)55(1)]TJ /TT0 1 Tf -6.417 -1.25 Td (L_ctermid)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(694)]TJ /TT0 1 Tf -5.817 -1.25 Td (LC_TIME)Tj /T1_1 1 Tf 4.617 0 Td [(envir)18(onment variable,)-500(21)55(1)]TJ /TT0 1 Tf -4.617 -1.25 Td (ld)Tj /T1_1 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(206)]TJ -1.617 -1.25 Td (LDAP)Tj 3.017 0.04 Td (\()Tj 0.333 -0.04 Td [(Lightweight Dir)18(ectory Access Pr)18(otocol)]TJ 17.045 0.04 Td (\))Tj 0.333 -0.04 Td (,)Tj -18.028 -1.25 Td (185)Tj /TT0 1 Tf -2.7 -1.25 Td (LD_LIBRARY_PATH)Tj /T1_1 1 Tf 9.417 0 Td [(envir)18(onment variable,)-500(753)]TJ /TT0 1 Tf -9.417 -1.25 Td (ldterm)Tj /T1_1 1 Tf 4.017 0 Td [(STREAMS module,)-500(716, 726)]TJ -4.017 -1.25 Td (leakage, memory)Tj 0.5 Tc 7.492 0 Td (,2)Tj 0 Tc 1.25 0 Td (09)Tj -8.742 -1.25 Td [(least privilege,)-500(256, 795, 816)]TJ T* [(Lee, M.,)-500(206, 949)]TJ T* (Lee, T)Tj 0.25 Tc 2.608 0 Td (.P)Tj 0 Tc 0.975 0 Td [(., )-250(948)]TJ -3.583 -1.25 Td [(Lef)18(\337er)74(,)-250(S.)-250(J., )-250(34,)-250(951)]TJ T* [(Lennert, D.,)-500(951)]TJ T* [(Lesk, M. E.,)-500(143)]TJ /TT0 1 Tf T* (lgamma)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -4.017 -1.25 Td (lgammaf)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -4.617 -1.25 Td (lgammal)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(442)]TJ -4.617 -1.25 Td [(Libes, D.,)-500(720, 924, 951)]TJ /TT0 1 Tf T* ()Tj /T1_1 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (0)Tj -10.639 -1.25 Td [(libraries, shar)18(ed, )-250(206)]TJ 9.425 0.09 Td (\320)Tj 0.583 -0.09 Td (207, 226, 753, 920, 947)Tj -10.009 -1.25 Td [(Lightweight Dir)18(ectory Access Pr)18(otocol,)]TJ /T1_2 1 Tf 17.795 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td (LDAP)Tj /TT0 1 Tf -19.212 -1.25 Td (limit)Tj /T1_1 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(53,)-250(222)]TJ -3.417 -1.25 Td [(limits, )-250(36)]TJ 4.339 0.09 Td (\320)Tj 0.583 -0.09 Td (53)Tj -3.573 -1.25 Td [(C, )-250(37)]TJ 2.542 0.09 Td (\320)Tj 0.583 -0.09 Td (38)Tj -3.125 -1.25 Td [(POSIX, )-250(38)]TJ 4.752 0.09 Td (\320)Tj 0.583 -0.09 Td (41)Tj -0.018 Tc -5.335 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(sour)18(ce, )-250(220)]TJ 5.206 0.09 Td (\320)Tj 0.583 -0.09 Td (225, 233, 252, 322, 382)Tj -0.008 Tc -6.646 -1.25 Td (ru)Tj 0 Tc 0.99 0 Td [(ntime indeterminate,)-500(49)]TJ 10.868 0.09 Td (\320)Tj 0.583 -0.09 Td (53)Tj -12.442 -1.25 Td [(XSI, )-250(41)]TJ /TT0 1 Tf -1.35 -1.25 Td ()Tj /T1_1 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7, 37, 39, 41, 49)Tj 6.583 0.09 Td (\320)Tj 0.583 -0.09 Td (50)Tj -17.805 -1.25 Td [(Linderman, J. P)129(., )-250(xxxii)]TJ T* [(line contr)18(ol, terminal I/O,)-500(693)]TJ 13.564 0.09 Td (\320)Tj 0.583 -0.09 Td (694)Tj /TT0 1 Tf -14.148 -1.25 Td (LINE_MAX)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(39,)-250(43, 49)]TJ /TT0 1 Tf -5.217 -1.25 Td (LINES)Tj /T1_1 1 Tf 3.417 0 Td [(envir)18(onment variable,)-500(21)55(1)]TJ -3.417 -1.25 Td (link)Tj 1.35 -1.25 Td [(count, )-250(44,)-250(59, 1)55(14)]TJ 7.779 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (7, 130)Tj -9.308 -1.25 Td [(har)18(d, )-250(4,)]TJ -0.055 Tc 3.82 0 Td (11)Tj 0 Tc 0.945 0 Td [(4, 1)55(17, 120, 122)]TJ -4.765 -1.25 Td [(symbolic, )-250(55,)-250(94)]TJ 7.321 0.09 Td (\320)Tj 0.583 -0.09 Td [(95, 1)55(10)]TJ 3.028 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (111)Tj 0.25 Tc 1.39 0 Td (,1)Tj 0 Tc 0.945 0 Td [(14, 1)55(18, 120)]TJ 5.028 0.09 Td (\320)Tj 0.583 -0.09 Td (123,)Tj -18.112 -1.25 Td (131, 137, 141, 186, 908)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (909)Tj /TT0 1 Tf 13.134 65 Td (link)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(79,)]TJ -0.055 Tc 5.957 0 Td (11)Tj 0 Tc 0.945 0 Td (5)Tj 0.583 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (9, 121)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (122, 125, 331, 452)Tj -13.647 -1.25 Td (de\336nition of,)Tj -0.055 Tc 6.192 0 Td (11)Tj 0 Tc 0.945 0 Td (6)Tj /TT0 1 Tf -8.487 -1.25 Td (linkat)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(1)55(16)]TJ 5.985 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (9, 331, 452)Tj -10.18 -1.25 Td (de\336nition of,)Tj -0.055 Tc 6.192 0 Td (11)Tj 0 Tc 0.945 0 Td (6)Tj /TT0 1 Tf -8.487 -1.25 Td (LINK_MAX)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(39,)-250(44, 49, 1)55(14)]TJ /TT0 1 Tf -5.217 -1.25 Td (lint)Tj /T1_1 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(200)]TJ -2.817 -1.25 Td [(Linux, )-250(xxi\320xxii,)-250(xxv)]TJ 0.25 Tc 8.776 0 Td (,x)Tj 0 Tc 1.016 0 Td (xvii, 2)Tj 2.746 0.09 Td (\320)Tj 0.583 -0.09 Td (4, 7, 14, 21, 26)Tj 6.083 0.09 Td (\320)Tj 0.583 -0.09 Td (27,)Tj -17.088 -1.25 Td (29)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (30, 35)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (38, 49, 52, 57, 60, 62, 64)Tj 10.083 0.09 Td (\320)Tj 0.583 -0.09 Td (65, 70, 73,)Tj -15.5 -1.25 Td (75)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (76, 86)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (89, 102, 108)Tj 5.083 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (111)Tj 0.25 Tc 1.39 0 Td (,1)Tj 0 Tc 1 0 Td (21)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (122, 129,)Tj -14.556 -1.25 Td (132, 138, 173, 178, 182, 184)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (185, 187)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (188,)Tj -16.333 -1.25 Td [(205, 209, 21)55(1)]TJ 5.528 0.09 Td (\320)Tj 0.583 -0.09 Td (212, 222, 226, 229, 240, 244)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (245,)Tj -18.278 -1.25 Td (253, 257, 259)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (260, 262, 269, 271, 274,)Tj -6.166 -1.25 Td (276)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (277, 288)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (290, 293, 298, 303, 306,)Tj -6.333 -1.25 Td (314)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (316, 318)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (320, 322, 329, 334)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (335, 351,)Tj -14.5 -1.25 Td (354)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (355, 358, 371, 373, 377, 379)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (380, 385,)Tj -14.333 -1.25 Td (388, 392, 396, 409, 426)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (427, 432)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (433, 439,)Tj -14.333 -1.25 Td (462, 464)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (465, 473)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (474, 485, 496)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (497, 503,)Tj -14.5 -1.25 Td (522, 530)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (531, 534, 559, 561, 567, 571)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (573,)Tj -16.333 -1.25 Td (575)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (576, 578, 583, 594)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(596, 607, 61)55(1)]TJ 5.528 0.09 Td (\320)Tj 0.583 -0.09 Td (613,)Tj -16.445 -1.25 Td (627, 634, 648)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (650, 652, 675)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (678, 684)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (691,)Tj -16.5 -1.25 Td (693, 716, 724, 726)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (727, 740)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (741, 744, 753,)Tj -12.333 -1.25 Td [(783, 793, 799, 91)55(1, 918, 925, 930, 932, 935)]TJ 17.528 0.09 Td (\320)Tj 0.583 -0.09 Td (936)Tj -20.811 -1.25 Td [(Linux Fast-STREAMS,)-500(534)]TJ T* [(LinuxThr)18(eads, )-250(388)]TJ /TT0 1 Tf T* (lio_listio)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(452,)-250(515)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(515)]TJ /TT0 1 Tf -1.35 -1.25 Td (LIO_NOWAIT)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(515)]TJ -6.417 -1.25 Td [(Lions, J.,)-500(951)]TJ /TT0 1 Tf T* (LIO_WAIT)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(515)]TJ /TT0 1 Tf -5.217 -1.25 Td (listen)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(331,)-250(605, 608)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (609, 625, 635, 638,)Tj -11.94 -1.25 Td (800)Tj -1.35 -1.25 Td [(de\336nition of,)-500(608)]TJ -1.35 -1.25 Td [(little-endian byte or)18(der)]TJ 0.5 Tc 10.13 0 Td (,5)Tj 0 Tc 1.25 0 Td (93)Tj -11.38 -1.25 Td [(Litwin, W)92(., )-250(744,)-250(750, 951)]TJ /TT0 1 Tf T* (LLONG_MAX)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(37)]TJ /TT0 1 Tf -5.817 -1.25 Td (LLONG_MIN)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(37)]TJ /TT0 1 Tf -5.817 -1.25 Td (ln)Tj /T1_1 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(1)55(15)]TJ -1.617 -1.25 Td (LNEXT terminal character)Tj 0.5 Tc 11.571 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 681)Tj -12.821 -1.25 Td [(locale, )-250(43)]TJ /TT0 1 Tf T* (localeconv)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -6.417 -1.25 Td ()Tj /T1_1 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7)Tj /TT0 1 Tf -10.639 -1.25 Td (localtime)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(190)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (192, 194)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (195, 264, 408,)Tj -13.907 -1.25 Td (442, 452, 919)Tj -1.35 -1.25 Td [(de\336nition of,)-500(192)]TJ /TT0 1 Tf -1.35 -1.25 Td (localtime_r)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(443,)-250(452)]TJ /TT0 1 Tf -7.017 -1.25 Td (lockf)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(451)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (452, 485)Tj /TT0 1 Tf -10.04 -1.25 Td (lockf)Tj /T1_1 1 Tf 3.417 0 Td [(str)8(uctur)18(e, )-250(493)]TJ /TT0 1 Tf -3.417 -1.25 Td (lockfile)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(473)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (474)Tj -10.49 -1.25 Td [(de\336nition of,)-500(494)]TJ -1.35 -1.25 Td (locking)Tj 1.35 -1.25 Td (database library)Tj 0.25 Tc 7.013 0 Td (,c)Tj 0 Tc 0.944 0 Td [(oarse-grained, )-250(752)]TJ -7.957 -1.25 Td (database library)Tj 0.25 Tc 7.013 0 Td (,\336)Tj 0 Tc 1.105 0 Td [(ne-grained, )-250(752)]TJ /TT0 1 Tf -9.468 -1.25 Td (locking)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(485)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47667 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.9)]TJ 38.193 0 Td (Performance)Tj /T1_1 1 Tf 7.64 0 Td (783)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(mandatory )-97(locking\), )-97(we )-97(ran )-97(thr)18(ee )-97(versions )-97(of )-97(the )-97(test )-97(pr)18(ogram. )-347(The)-347(\336rst )-97(version )-97(used)]TJ 0 -1.2 Td [(the )-149(sour)18(ce )-149(code )-149(shown )-149(in )-149(Section )-149(20.8, )-149(which )-149(we\325ve )-149(called )-149(\336ne-grained )-149(locking.)-650(The)]TJ 0 -1.2 TD [(second )-311(version )-311(changed )-311(the )-311(locking )-311(calls )-311(to )-311(implement )-311(coarse-grained )-311(locking, )-311(as)]TJ T* [(described )-57(in )-57(Section )-57(20.6.)-557(The )-57(thir)]TJ 0.3068 Tc 15.387 0 Td (dv)Tj 0 Tc 1.483 0 Td [(ersion )-57(had )-57(all )-57(locking )-57(calls )-57(r)19(emoved, )-57(so )-57(we )-57(could)]TJ -16.87 -1.2 Td (measur)Tj 0.3886 Tc 3.266 0 Td (et)Tj 0 Tc 1.194 0 Td [(he )-139(over)18(head )-139(involved )-139(in )-139(locking.)]TJ -0.092 Tc 15.713 0 Td [(We )-323(c)]TJ 0 Tc 2.22 0 Td [(an )-139(r)8(un )-139(the )-139(\336rst )-139(and )-139(second )-139(versions)]TJ -22.392 -1.2 Td [(\(\336ne-grained )-131(locking )-131(and )-131(coarse-grained )-131(locking\) )-131(using )-131(either )-131(advisory )-131(or )-131(mandatory)]TJ T* [(locking, )-47(by )-47(changing )-47(the )-47(permission )-47(bits )-47(on )-47(the )-47(database )-47(\336les.)-551(\(In )-47(all )-47(the )-47(tests )-47(r)16(eported)]TJ -0 -1.2 Td [(in )-454(this )-454(section, )-454(we )-454(measur)18(ed )-454(the )-454(times )-454(for )-454(mandatory )-454(locking )-454(using )-454(only )-454(the)]TJ T* (implementation of \336ne-grained locking.\))Tj 1.8 -1.2 Td [(All )-138(the )-138(timing )-138(tests )-138(in )-138(this )-138(section )-138(wer)]TJ 0.3882 Tc 17.65 0 Td (ed)Tj 0 Tc 1.478 0 Td [(one )-138(on )-138(an )-138(Intel )-138(Cor)17(e-i5 )-138(system )-138(r)7(unning)]TJ -20.929 -1.2 Td [(Linux )-234(3.2.0.)-734(This )-234(system )-234(has )-234(four )-234(cor)17(es, )-234(which )-234(allows )-234(up )-234(to )-234(four )-234(pr)18(ocesses )-234(to )-234(r)7(un)]TJ T* [(concurr)18(ently)111(.)]TJ /TT0 1 Tf -3.6 -3.48 Td [(Single-Pr)20(ocess Results)]TJ /T1_0 1 Tf 3.6 -2.4 Td (Figur)Tj 0.2646 Tc 2.383 0 Td (e2)Tj 0 Tc 1.244 0 Td [(0.7 )-15(shows )-15(the )-15(r)18(esults )-15(when )-15(only )-15(a )-15(single )-15(child )-15(pr)18(ocess )-15(ran, )-15(with )-15(an)]TJ /T1_2 1 Tf 29.742 0 Td [(nr)18(ec)]TJ /T1_0 1 Tf 1.988 0 Td [(of )-15(2,000,)]TJ -35.356 -1.2 Td (6,000, and 12,000.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1415.25 4416.25 cm 0 0 m 3661 0 l S Q Q BT /T1_0 1 Tf 6.9992 0 0 6.9992 312.5505 433.348 Tm (Advisory locking)Tj 17.809 0 Td (Mandatory locking)Tj ET q 0.099988 0 0 0.099988 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2555.25 4296.25 cm 0 0 m 2521 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4811.25 4296.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4527.25 4296.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3961.25 4296.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3678.25 4296.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3111.25 4296.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2828.25 4296.25 cm 0 0 m 0 0 l S Q Q BT /T1_0 1 Tf 6.9987 0 0 6.9987 260.839 421.3242 Tm [(Coarse-grained locking)-2394(Fine-grained locking)-2967(Fine-grained locking)]TJ -9.427 0.857 Td (No locking)Tj ET q 0.099982 0 0 0.099982 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1705.25 4176.25 cm 0 0 m 3371 0 l S Q Q BT /T1_0 1 Tf 6.9983 0 0 6.9983 176.3957 409.3018 Tm [(User )-2005(Sys)-2021(Clock )-1485(User)-2255(Sys )-1771(Clock)-1735(User )-2005(Sys)-2021(Clock )-1485(User)-2255(Sys )-1771(Clock)]TJ /T1_2 1 Tf -3.972 1.714 Td [(nr)18(ec)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1415.25 4056.25 cm 0 0 m 3661 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1415.25 4036.25 cm 0 0 m 3661 0 l S Q Q BT /T1_0 1 Tf 6.9979 0 0 6.9979 148.4984 395.2814 Tm [(2,000 )-1648(0.10)-2296(0.22 )-2296(0.33)-2046(0.17 )-2296(0.33)-2296(0.51 )-1796(0.13)-2546(0.38 )-2046(0.51)-2046(0.14 )-2296(0.43)-2296(0.58)]TJ -0 -1.429 Td [(6,000 )-1648(0.59)-2296(1.32 )-2296(1.91)-2046(0.88 )-2296(2.13)-2296(3.03 )-1796(0.90)-2546(2.14 )-2046(3.05)-2046(0.99 )-2296(2.52)-2296(3.53)]TJ -0.5 -1.429 Td [(12,000 )-1648(4.37)-2296(9.58 )-1796(13.97 )-1796(5.38 )-1796(12.60)-1796(18.01 )-1796(5.34 )-1796(12.63)-1796(18.01 )-1796(5.53 )-1796(15.03)-1796(20.60)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1415.25 3716.25 cm 0 0 m 3661 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4811.25 3716.25 cm 0 0 m 0 460 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4527.25 3716.25 cm 0 0 m 0 460 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4234.25 3716.25 cm 0 0 m 0 700 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 4254.25 3716.25 cm 0 0 m 0 700 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3961.25 3716.25 cm 0 0 m 0 460 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3678.25 3716.25 cm 0 0 m 0 460 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3385.25 3716.25 cm 0 0 m 0 580 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3405.25 3716.25 cm 0 0 m 0 580 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 3111.25 3716.25 cm 0 0 m 0 460 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2828.25 3716.25 cm 0 0 m 0 460 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2535.25 3716.25 cm 0 0 m 0 700 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2555.25 3716.25 cm 0 0 m 0 700 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 2262.25 3716.25 cm 0 0 m 0 460 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1978.25 3716.25 cm 0 0 m 0 460 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1685.25 3716.25 cm 0 0 m 0 700 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1705.25 3716.25 cm 0 0 m 0 700 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 5076.25 3716.25 cm 0 0 m 0 700 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 2.8 w 1 j 1 J q 1 0 0 1 1415.25 3716.25 cm 0 0 m 0 700 l S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 205.9858 353.2728 Tm (Figure 20.7)Tj /T1_0 1 Tf 5.695 0 Td (Single child, varying)Tj /T1_2 1 Tf 9.388 0 Td [(nr)18(ec)]TJ /T1_0 1 Tf 0.25 Tc (,d)Tj 0 Tc 2.834 0 Td [(if)18(fer)18(ent locking techniques)]TJ 9.9964 0 0 9.9964 129.5534 323.2836 Tm [(The )-24(last )-24(12 )-24(columns )-24(give )-24(the )-24(corr)18(esponding )-24(times )-24(in )-24(seconds.)-524(In )-24(all )-24(cases, )-24(the )-24(user )-24(CPU)]TJ T* [(time )-113(plus )-113(the )-113(system )-113(CPU )-113(time )-113(appr)18(oximately )-113(equals )-113(the )-113(clock )-113(time.)-615(This )-113(set )-113(of )-113(tests)]TJ T* (was CPU limited and not disk limited.)Tj 1.8 -1.2 Td [(The )-189(six )-189(columns )-189(under )-189(\324)37(\324Advisory )-189(locking\325)]TJ 0.4391 Tc 19.735 0 Td (\325a)Tj -0.018 Tc 1.217 0 Td [(re )-225(a)]TJ 0 Tc 1.795 0 Td [(lmost )-189(equal )-189(for )-189(each )-189(r)18(ow)]TJ 0.689 Tc 11.603 0 Td (.T)Tj 0 Tc 1.552 0 Td (his)Tj -37.703 -1.2 Td [(makes )-50(sense )-50(because )-50(for )-50(a )-50(single )-50(pr)17(ocess; )-50(ther)18(e)-300(is)-300(no)-300(d)-1(if)18(fer)18(ence )-50(between )-50(coarse-grained)]TJ T* (locking and \336ne-grained locking, except for the extra calls to)Tj /TT1 1 Tf 26.932 0 Td (fcntl)Tj /T1_0 1 Tf (.)Tj -25.132 -1.2 Td [(Comparing )-94(no )-94(locking )-94(with )-94(advisory )-94(locking, )-94(we )-94(see )-94(that )-94(adding )-94(the )-94(locking )-94(calls)]TJ -1.8 -1.2 Td [(incr)18(eases )-99(the )-99(system )-99(CPU )-99(time )-99(by )-99(32% )-99(to )-99(73%.)-600(Even )-99(though )-99(the )-99(locks )-99(ar)]TJ 0.3492 Tc 33.206 0 Td (en)Tj 0 Tc 1.41 0 Td [(ever )-99(used)]TJ -34.616 -1.2 Td [(\(since )-80(only )-80(a )-80(single )-80(pr)18(ocess )-80(is )-80(r)8(unning\), )-80(the )-80(system )-80(call )-80(over)18(head )-80(in )-80(the )-80(calls )-80(to)]TJ /TT1 1 Tf 36 0 Td (fcntl)Tj /T1_0 1 Tf -36 -1.2 Td [(adds )-78(time.)-578(Also )-78(note )-78(that )-78(the )-78(user )-78(CPU )-78(time )-78(is )-78(about )-78(the )-78(same )-78(for )-78(all )-78(four )-78(versions )-78(of)]TJ T* [(locking. )-439(Since)-440(the )-189(user )-189(code )-189(is )-189(almost )-189(equivalent )-189(\(except )-189(for )-189(the )-189(number )-189(of )-189(calls )-189(to)]TJ /TT1 1 Tf T* (fcntl)Tj /T1_0 1 Tf (\), this makes sense.)Tj 1.8 -1.2 Td [(The )-184(\336nal )-184(point )-184(to )-184(note )-184(fr)18(om )-184(Figur)]TJ 0.4342 Tc 15.93 0 Td (e2)Tj 0 Tc 1.413 0 Td [(0.7 )-184(is )-184(that )-184(mandatory )-184(locking )-184(incr)18(eases )-184(the)]TJ -19.143 -1.2 Td [(system )-116(CPU )-116(time )-116(by )-116(13% )-116(to )-116(19% )-116(compar)18(ed )-116(to )-116(advisory )-116(locking.)-619(Since )-116(the )-116(number )-116(of)]TJ T* [(locking )-73(calls )-73(is )-73(the )-73(same )-73(for )-73(advisory )-73(\336ne-grained )-73(locking )-73(and )-73(mandatory )-73(\336ne-grained)]TJ T* [(locking, the additional system call over)18(head must be fr)18(om the r)18(eads and writes.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47668 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (969)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 140.3916 670.9597 Tm [(terminal, )-250(671)]TJ 6.08 0.09 Td (\320)Tj 0.583 -0.09 Td (713)Tj -6.664 -1.25 Td [(unbuf)18(fer)18(ed, )-250(8,)-250(61)]TJ 7.768 0.09 Td (\320)Tj 0.583 -0.09 Td (91)Tj /TT0 1 Tf -9.702 -1.25 Td (IOBUFSZ)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(836)]TJ /TT0 1 Tf -4.617 -1.25 Td (ioctl)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(61,)-250(87)]TJ 7.04 0.09 Td (\320)Tj 0.583 -0.09 Td (88, 90, 297)Tj 4.583 0.09 Td (\320)Tj 0.583 -0.09 Td (298, 322,)Tj -13.507 -1.25 Td (328)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (329, 452, 482, 510, 562, 592, 627, 674,)Tj -2.166 -1.25 Td (710)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(71)55(1, 718)]TJ 3.528 0.09 Td (\320)Tj 0.583 -0.09 Td (719, 725)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (728, 730, 740)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (742,)Tj -16.611 -1.25 Td (939)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (940)Tj -3.517 -1.25 Td [(de\336nition of,)-500(87)]TJ /TT0 1 Tf -1.35 -1.25 Td (_IOFBF)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(147)]TJ /TT0 1 Tf -4.017 -1.25 Td (_IOLBF)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(147,)-250(166, 220)]TJ /TT0 1 Tf -4.017 -1.25 Td (_IO_LINE_BUF)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(165)]TJ /TT0 1 Tf -7.617 -1.25 Td (_IONBF)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(147,)-250(166)]TJ /TT0 1 Tf -4.017 -1.25 Td (_IO_UNBUFFERED)Tj /T1_0 1 Tf 8.817 0 Td [(constant, )-250(165)]TJ /TT0 1 Tf -8.817 -1.25 Td (iovec)Tj /T1_0 1 Tf 3.417 0 Td [(str)8(uctur)18(e, )-250(41,)-250(43, 521, 61)55(1, 646)]TJ 13.247 0.09 Td (\320)Tj 0.583 -0.09 Td (647, 649,)Tj -14.547 -1.25 Td (651, 655, 659, 765, 771)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (772, 832, 836)Tj /TT0 1 Tf -12.867 -1.25 Td (IOV_MAX)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(41,)-250(43, 49, 521)]TJ -4.617 -1.25 Td [(IPC \(interpr)18(ocess communication\),)-500(533)]TJ 17.438 0.09 Td (\320)Tj 0.583 -0.09 Td (588,)Tj -15.321 -1.25 Td (629)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (670)Tj -3.517 -1.25 Td [(identi\336ers, )-250(556)]TJ 6.816 0.09 Td (\320)Tj 0.583 -0.09 Td (558)Tj -7.4 -1.25 Td (key)Tj 0.5 Tc 1.48 0 Td (,5)Tj 0 Tc 1.25 0 Td (56)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (558, 562, 567, 572)Tj -4.396 -1.25 Td [(XSI, )-250(556)]TJ 3.862 0.09 Td (\320)Tj 0.583 -0.09 Td (560)Tj /TT0 1 Tf -5.796 -1.25 Td (IPC_CREAT)Tj /T1_0 1 Tf 5.817 0 Td [(constant, )-250(558,)-250(632, 941)]TJ /TT0 1 Tf -5.817 -1.25 Td (IPC_EXCL)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(558)]TJ /TT0 1 Tf -5.217 -1.25 Td (IPC_NOWAIT)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(563)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (564, 569)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (570)Tj /TT0 1 Tf -17.23 -1.25 Td (ipc_perm)Tj /T1_0 1 Tf 5.217 0 Td [(str)8(uctur)18(e, )-250(558,)-250(562, 567, 572, 587)]TJ /TT0 1 Tf -5.217 -1.25 Td (IPC_PRIVATE)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(557)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (558, 575, 586, 588)Tj /TT0 1 Tf -13.663 -1.25 Td (ipcrm)Tj /T1_0 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(559)]TJ /TT0 1 Tf -3.417 -1.25 Td (IPC_RMID)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(562)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (563, 568, 573)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (575)Tj /TT0 1 Tf -18.03 -1.25 Td (ipcs)Tj /T1_0 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(559,)-250(588)]TJ /TT0 1 Tf -2.817 -1.25 Td (IPC_SET)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(562)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (563, 568, 573)Tj /TT0 1 Tf -11.263 -1.25 Td (IPC_STAT)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(562)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (563, 568, 573)Tj -11.863 -1.25 Td (IPP)Tj 1.795 0.04 Td (\()Tj 0.333 -0.04 Td [(Internet Printing Pr)18(otocol)]TJ 11.313 0.04 Td (\))Tj 0.5 Tc 0.333 -0.04 Td (,7)Tj 0 Tc 1.25 0 Td (89)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (792)Tj /TT0 1 Tf -16.691 -1.25 Td (ipp.h)Tj /T1_0 1 Tf 3.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,8)Tj 0 Tc 1.25 0 Td (43)Tj /TT0 1 Tf -7.639 -1.25 Td (ipp_hdr)Tj /T1_0 1 Tf 4.617 0 Td [(str)8(uctur)18(e, )-250(798,)-250(832, 834, 838, 842)]TJ /TT0 1 Tf -4.617 -1.25 Td (IPPROTO_ICMP)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(591)]TJ /TT0 1 Tf -7.617 -1.25 Td (IPPROTO_IP)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(591,)-250(624)]TJ /TT0 1 Tf -6.417 -1.25 Td (IPPROTO_IPV6)Tj /T1_0 1 Tf 7.617 0 Td [(constant, )-250(591)]TJ /TT0 1 Tf -7.617 -1.25 Td (IPPROTO_RAW)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(591,)-250(602)]TJ /TT0 1 Tf -7.017 -1.25 Td (IPPROTO_TCP)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(591,)-250(602, 624)]TJ /TT0 1 Tf -7.017 -1.25 Td (IPPROTO_UDP)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(591,)-250(602)]TJ /TT0 1 Tf -7.017 -1.25 Td (I_PUSH)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(725)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (726)Tj -10.663 -1.25 Td [(IRIX, )-250(35)]TJ /TT0 1 Tf 0 -1.25 TD (isalpha)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(516)]TJ /TT0 1 Tf -4.617 -1.25 Td (isatty)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(679,)-250(695, 698)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td [(699, 71)55(1, 730, 738)]TJ -13.29 -1.25 Td [(de\336nition of,)-500(695)]TJ /TT0 1 Tf -1.35 -1.25 Td (isdigit)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(839)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (840)Tj /TT0 1 Tf -11.24 -1.25 Td (I_SETSIG)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(510)]TJ /TT0 1 Tf -5.217 -1.25 Td (ISIG)Tj /T1_0 1 Tf 2.817 0 Td [(constant, )-250(676,)-250(678, 680)]TJ 10.063 0.09 Td (\320)Tj 0.583 -0.09 Td (682, 688, 706)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (708)Tj -19.63 -1.25 Td [(ISO \(International Standar)18(ds Or)18(ganization\), )-250(xx,)]TJ 2.7 -1.25 Td (xxxi, 25)Tj 3.422 0.09 Td (\320)Tj 0.583 -0.09 Td (27, 950)Tj -6.706 -1.25 Td [(ISO C,)-500(25)]TJ 4.44 0.09 Td (\320)Tj 0.583 -0.09 Td (26, 153, 950)Tj /TT0 1 Tf -5.023 -1.25 Td ()Tj /T1_0 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7)Tj /TT0 1 Tf -10.639 -1.25 Td (is_read_lockable)Tj /T1_0 1 Tf 10.017 0 Td [(function, )-250(490,)-250(897)]TJ /TT0 1 Tf 15.983 65 Td (isspace)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(839)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (840)Tj /TT0 1 Tf -11.24 -1.25 Td (ISTRIP)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(676,)-250(688, 690, 706)]TJ 12.063 0.09 Td (\320)Tj 0.583 -0.09 Td (708)Tj /TT0 1 Tf -16.663 -1.25 Td (is_write_lockable)Tj /T1_0 1 Tf 10.617 0 Td [(function, )-250(490,)-250(897)]TJ /TT0 1 Tf -10.617 -1.25 Td (IUCLC)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(688)]TJ /TT0 1 Tf -3.417 -1.25 Td (IUTF8)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(689)]TJ /TT0 1 Tf -3.417 -1.25 Td (IXANY)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(689)]TJ /TT0 1 Tf -3.417 -1.25 Td (IXOFF)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(681)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (682, 689)Tj /TT0 1 Tf -12.063 -1.25 Td (IXON)Tj /T1_0 1 Tf 2.817 0 Td [(constant, )-250(676,)-250(681)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (682, 689, 706)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (708)Tj -17.63 -5.375 Td [(jemalloc, )-250(210)]TJ /TT0 1 Tf 0 -1.25 Td (jmp_buf)Tj /T1_0 1 Tf 4.617 0 Td [(data type,)-500(216, 218, 340, 343)]TJ -4.617 -1.25 Td [(job contr)18(ol, )-250(299)]TJ 7.028 0.09 Td (\320)Tj 0.583 -0.09 Td (303)Tj -6.262 -1.25 Td [(shell, )-250(294,)-250(299, 306)]TJ 8.4 0.09 Td (\320)Tj 0.583 -0.09 Td (307, 325, 358, 377, 379,)Tj -7.633 -1.25 Td (734)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (735)Tj -3.516 -1.25 Td [(signals, )-250(377)]TJ 5.401 0.09 Td (\320)Tj 0.583 -0.09 Td (379)Tj /TT0 1 Tf -7.335 -1.25 Td (job)Tj /T1_0 1 Tf 2.217 0 Td [(str)8(uctur)18(e, )-250(812)]TJ 6.302 0.09 Td (\320)Tj 0.583 -0.09 Td (813, 820)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (821, 832)Tj /TT0 1 Tf -13.269 -1.25 Td (job_append)Tj /T1_0 1 Tf 6.417 0 Td [(function, de\336nition of,)-500(41)55(1)]TJ /TT0 1 Tf -6.417 -1.25 Td (job_find)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(927)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(412)]TJ /TT0 1 Tf -1.35 -1.25 Td (job_insert)Tj /T1_0 1 Tf 6.417 0 Td [(function, de\336nition of,)-500(41)55(1)]TJ /TT0 1 Tf -6.417 -1.25 Td (job_remove)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(927)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(412)]TJ -1.35 -1.25 Td (Jolitz, W)Tj 0.25 Tc 3.695 0 Td (.F)Tj 0 Tc 0.964 0 Td [(., )-250(34)]TJ -4.659 -1.25 Td (Joy)Tj 0.25 Tc 1.324 0 Td [(,W)342(.N)]TJ 0 Tc 2.739 0 Td [(., )-250(3,)-250(76)]TJ /TT0 1 Tf -4.063 -1.25 Td (jsh)Tj /T1_0 1 Tf 2.217 0 Td [(pr)18(ogram, )-250(299)]TJ -2.217 -5.375 Td [(Kar)18(els, M. J.,)-500(33)]TJ 7.159 0.09 Td (\320)Tj 0.583 -0.09 Td [(34, 74, 1)55(12, 1)55(16, 229, 236, 525, 951)]TJ -7.742 -1.25 Td [(kernel, )-250(1)]TJ T* [(Kernighan, B. W)92(., )-250(xx,)-250(xxxii, 26, 149, 155, 162, 164,)]TJ 2.7 -1.25 Td (208, 262, 898, 906, 947, 950)Tj -2.7 -1.25 Td [(Kerrisk, M.,)-500(950)]TJ T* (key)Tj 0.25 Tc 1.48 0 Td (,I)Tj 0 Tc 0.837 0 Td [(PC, )-250(556)]TJ 3.646 0.09 Td (\320)Tj 0.583 -0.09 Td (558, 562, 567, 572)Tj /TT0 1 Tf -6.546 -1.25 Td (key_t)Tj /T1_0 1 Tf 3.417 0 Td [(data type,)-500(557, 633)]TJ /TT0 1 Tf -3.417 -1.25 Td (kill)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(18,)-250(272, 308, 314, 325, 331, 335)]TJ 17.54 0.09 Td (\320)Tj 0.583 -0.09 Td (338,)Tj -18.24 -1.25 Td (353, 363, 366)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (367, 376, 378)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (379, 381, 455,)Tj -12.333 -1.25 Td (679, 681, 702, 732)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (733, 924, 932)Tj -9.517 -1.25 Td [(de\336nition of,)-500(337)]TJ /TT0 1 Tf -1.35 -1.25 Td (kill)Tj /T1_0 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(314)]TJ 6.191 0.09 Td (\320)Tj 0.583 -0.09 Td (315, 321, 325, 551)Tj -9.591 -1.25 Td (KILL terminal character)Tj 0.5 Tc 10.523 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 681, 687, 702)Tj 7.083 0.09 Td (\320)Tj 0.583 -0.09 Td (703)Tj /TT0 1 Tf -19.439 -1.25 Td (kill_workers)Tj /T1_0 1 Tf 7.617 0 Td [(function, )-250(814,)-250(828)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (830)Tj -14.89 -1.25 Td [(de\336nition of,)-500(828)]TJ -1.35 -1.25 Td [(Kleiman, S. R.,)-500(76, 950)]TJ T* [(Knuth, D. E.,)-500(422, 764, 950)]TJ T* [(Korn, D. G.,)-500(3, 135, 174, 548, 948)]TJ 14.369 0.09 Td (\320)Tj 0.583 -0.09 Td (950, 953)Tj -14.953 -1.25 Td [(Korn shell,)-500(3, 53, 90, 210, 222, 289, 299, 497, 548,)]TJ 2.7 -1.25 Td (702, 733)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (734, 737, 935, 948)Tj -6.866 -1.25 Td [(Kovach, K. R.,)-500(560, 947)]TJ T* (Krieger)Tj 0.25 Tc 3.247 0 Td (,O)Tj 0 Tc 1.286 0 Td [(., )-250(174,)-250(531, 950)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47669 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (764)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(262 )-2400(while)-600(\(offset != 0\) {)]TJ 0 -1.189 TD [(263 )-4800(nextoffset)]TJ 0.6 Tc 13.8 0 Td (=_)Tj 0 Tc 1.8 0 Td (db_readidx\(db, offset\);)Tj -15.6 -1.189 Td [(264 )-4800(if)-600(\(strcmp\(db->idxbuf, key\) == 0\))]TJ T* (265 )Tj 9.6 0 Td [(break;)-4200(/* found a match */)]TJ -9.6 -1.189 Td [(266 )-4800(db->ptroff)]TJ 0.6 Tc 13.8 0 Td (=o)Tj 0 Tc 1.8 0 Td (ffset; /* offset of this \(unequal\) record */)Tj -15.6 -1.189 Td [(267 )-4800(offset)]TJ 0.6 Tc 11.4 0 Td (=n)Tj 0 Tc 1.8 0 Td (extoffset; /* next one to compare */)Tj -13.2 -1.189 Td [(268 )-2400(})]TJ T* [(269 )-2400(/*)]TJ T* [(270 )-3000(*)-600(offset == 0 on error \(record not found\).)]TJ T* [(271 )-3000(*/)]TJ T* [(272 )-2400(return\(offset)-600(== 0 ? -1 : 0\);)]TJ T* [(273 )-1200(})]TJ 0 -2.021 TD [(274 )-1200(/*)]TJ 0 -1.189 TD [(275 )-1800(*)-600(Calculate the hash value for a key.)]TJ T* [(276 )-1800(*/)]TJ T* [(277 )-1200(static)-600(DBHASH)]TJ T* [(278 )-1200(_db_hash\(DB)-600(*db, const char *key\))]TJ T* [(279 )-1200({)]TJ 0 -1.189 TD [(280 )-2400(DBHASH)-3600(hval = 0;)]TJ 0 -1.189 TD [(281 )-2400(char)-4800(c;)]TJ T* [(282 )-2400(int)]TJ 12 0 Td (i;)Tj -12 -2.021 Td [(283 )-2400(for)-600(\(i = 1; \(c = *key++\) != 0; i++\))]TJ T* [(284 )-4800(hval)-600(+= c * i;)-3600(/* ascii char times its 1-based index */)]TJ T* [(285 )-2400(return\(hval)]TJ 0.6 Tc 12 0 Td (%d)Tj 0 Tc 1.8 0 Td (b->nhash\);)Tj -13.8 -1.189 Td [(286 )-1200(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3829.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 358.8749 Tm [([262 )167(\320 )167(268])-668(In )-204(the)]TJ /TT0 1 Tf 8.214 0 Td (while)Tj /T1_1 1 Tf 3.454 0 Td [(loop, )-204(we )-204(go )-204(thr)18(ough )-204(each )-204(index )-204(r)17(ecor)]TJ 0.4541 Tc 17.653 0 Td (do)Tj 0.454 Tc 1.611 0 Td (nt)Tj 0 Tc 1.362 0 Td [(he )-204(hash )-204(chain,)]TJ -27.294 -1.2 Td [(comparing )-335(keys.)]TJ -0.092 Tc 8.484 0 Td [(We )-519(c)]TJ 0 Tc 2.416 0 Td (all)Tj /TT0 1 Tf 1.667 0 Td (_db_readidx)Tj /T1_1 1 Tf 7.185 0 Td [(to )-335(r)18(ead )-335(each )-335(index )-335(r)16(ecor)18(d. )-585(It)]TJ -19.753 -1.2 Td [(populates )-493(the)]TJ /TT0 1 Tf 7.243 0 Td (idxbuf)Tj /T1_1 1 Tf 4.343 0 Td [(\336eld )-493(with )-493(the )-493(key )-493(of )-493(the )-493(curr)18(ent )-493(r)21(ecor)18(d. )-743(If)]TJ /TT0 1 Tf -11.586 -1.2 Td (_db_readidx)Tj /T1_1 1 Tf -0.018 Tc 6.85 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns zer)18(o, we\325ve r)18(eached the last entry in the chain.)]TJ -12.706 -1.6 Td [([269 )167(\320 )167(273])-668(If)]TJ /TT0 1 Tf 6.129 0 Td (offset)Tj /T1_1 1 Tf 4.059 0 Td [(is )-209(zer)]TJ 0.459 Tc 2.53 0 Td (oa)Tj 0 Tc 1.505 0 Td [(fter )-209(the )-209(loop, )-209(we\325ve )-209(r)18(eached )-209(the )-209(end )-209(of )-209(a )-209(hash )-209(chain)]TJ -9.223 -1.2 Td [(without )-162(\336nding )-162(a )-162(matching )-162(key)111(,)-412(so)-412(we)-412(r)18(eturn)]TJ /TT1 1 Tf 21.47 0 Td (!)Tj /T1_1 1 Tf [(1. )-412(Otherwise,)-412(we )-162(found )-162(a)]TJ -21.47 -1.2 Td [(match )-46(\(and )-46(exited )-46(the )-46(loop )-46(with )-46(the)]TJ /TT0 1 Tf 16.325 0 Td (break)Tj /T1_1 1 Tf 3.296 0 Td [(statement\), )-46(so )-46(we )-46(r)18(eturn )-46(success)]TJ -19.621 -1.16 Td (\()Tj 0.333 -0.04 Td (0)Tj 0.5 0.04 Td (\))Tj 0.5257 Tc 0.333 -0.04 Td (.I)Tj 0.2757 Tc 1.113 0 Td (nt)Tj 0 Tc 1.184 0 Td [(his )-26(case, )-26(the)]TJ /TT0 1 Tf 5.608 0 Td (ptroff)Tj /T1_1 1 Tf 3.876 0 Td [(\336eld )-26(contains )-26(the )-26(addr)18(ess )-26(of )-26(the )-26(pr)18(evious )-26(index)]TJ -0.018 Tc -12.946 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(d,)]TJ /TT0 1 Tf 2.851 0 Td (datoff)Tj /T1_1 1 Tf 4.223 0 Td [(contains )-373(the )-373(addr)18(ess )-373(of )-373(the )-373(data )-373(r)19(ecor)18(d, )-373(and)]TJ /TT0 1 Tf 22.47 0 Td (datlen)Tj /T1_1 1 Tf -30.4 -1.2 Td [(contains )-55(the )-55(size )-55(of )-55(the )-55(data )-55(r)17(ecor)18(d. )-305(As)-305(we )-55(make )-55(our )-55(way )-55(thr)18(ough )-55(the )-55(hash)]TJ 0 -1.2 Td [(chain, )-170(we )-170(save )-170(the )-170(pr)20(evious )-170(index )-170(r)19(ecor)]TJ 0.4197 Tc 18.423 0 Td (dt)Tj 0 Tc 1.357 0 Td [(hat )-170(points )-170(to )-170(the )-170(curr)18(ent )-170(index)]TJ -0.018 Tc -19.779 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(d. )-294(W)92(e\325ll )-44(use )-44(this )-44(when )-44(we )-44(delete )-44(a )-44(r)19(ecor)18(d, )-44(since )-44(we )-44(have )-44(to )-44(modify )-44(the)]TJ -0.856 -1.2 Td [(chain pointer of the pr)18(evious r)18(ecor)18(d)-250(to)-250(delete the curr)18(ent r)18(ecor)18(d.)]TJ -5 -1.6 Td [([274 )167(\320 )167(286])]TJ /TT0 1 Tf 5 0 Td (_db_hash)Tj /T1_1 1 Tf 5.31 0 Td [(calculates )-260(the )-260(hash )-260(value )-260(for )-260(a )-260(given )-260(key)]TJ 0.76 Tc 19.512 0 Td (.I)Tj 0.51 Tc 1.347 0 Td (tm)Tj 0 Tc 1.719 0 Td [(ultiplies )-260(each)]TJ -27.888 -1.2 Td [(ASCII )-7(character )-7(times )-7(its )-7(1)]TJ 11.723 0.09 Td (-)Tj 0.333 -0.09 Td [(based )-7(index )-7(and )-7(divides )-7(the )-7(r)18(esult )-7(by )-7(the )-7(number)]TJ -12.056 -1.2 Td [(of )-66(hash )-66(table )-66(entries.)-566(The )-66(r)18(emainder )-66(fr)18(om )-66(the )-66(division )-66(is )-66(the )-66(hash )-66(value )-66(for)]TJ 0 -1.2 TD [(this )-14(key)]TJ 0.5136 Tc 3.367 0 Td (.R)Tj 0 Tc 1.432 0 Td [(ecall )-14(that )-14(the )-14(number )-14(of )-14(hash )-14(table )-14(entries )-14(is )-14(137, )-14(which )-14(is )-14(a )-14(prime)]TJ -4.798 -1.2 Td (number)Tj 0.6216 Tc 3.421 0 Td (.A)Tj 0 Tc 1.65 0 Td [(ccor)18(ding )-122(to )-122(Knuth)]TJ 8.657 0.04 Td ([)Tj 0.333 -0.04 Td (1998)Tj 2 0.04 Td (])Tj 0.3717 Tc 0.333 -0.04 Td (,p)Tj 0 Tc 1.223 0 Td [(rime )-122(hashes )-122(generally )-122(pr)18(ovide )-122(good)]TJ -17.616 -1.2 Td (distribution characteristics.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47670 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (218)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Envir)18(onment )]TJ 39.241 0 Td [(Chapter)-500(7)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj 0 -1.902 TD (static void f1\(int, int, int, int\);)Tj 0 -1.189 TD (static void f2\(void\);)Tj 0 -1.902 TD [(static jmp_buf)-1200(jmpbuffer;)]TJ 0 -1.189 TD [(static int)-3600(globval;)]TJ 0 -1.902 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td (int )Tj 9.6 0 Td (autoval;)Tj -9.6 -1.189 Td [(register int)-2400(regival;)]TJ T* [(volatile int)-2400(volaval;)]TJ T* [(static int)-3600(statval;)]TJ 0 -1.902 TD (globval = 1; autoval = 2; regival = 3; volaval = 4; statval = 5;)Tj T* (if \(setjmp\(jmpbuffer\) != 0\) {)Tj 2.4 -1.189 Td (printf\("after longjmp:\\n"\);)Tj 0 -1.189 TD (printf\("globval = %d, autoval = %d, regival = %d,")Tj 0.6 Tc 2.4 -1.189 Td ("v)Tj 0 Tc 1.8 0 Td (olaval = %d, statval = %d\\n",)Tj -1.8 -1.189 Td (globval, autoval, regival, volaval, statval\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*C)Tj 0 Tc 1.8 0 Td (hange variables after setjmp, but before longjmp.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (globval = 95; autoval = 96; regival = 97; volaval = 98;)Tj 0 -1.189 TD (statval = 99;)Tj 0 -1.902 TD (f1\(autoval, regival, volaval, statval\); /* never returns */)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (static void)Tj 0 -1.189 TD (f1\(int i, int j, int k, int l\))Tj T* ({)Tj 2.4 -1.189 Td (printf\("in f1\(\):\\n"\);)Tj T* (printf\("globval = %d, autoval = %d, regival = %d,")Tj 0.6 Tc 2.4 -1.189 Td ("v)Tj 0 Tc 1.8 0 Td (olaval = %d, statval = %d\\n", globval, i, j, k, l\);)Tj -4.2 -1.189 Td (f2\(\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (static void)Tj 0 -1.189 TD (f2\(void\))Tj T* ({)Tj 2.4 -1.189 Td (longjmp\(jmpbuffer, 1\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 1582.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 217.5859 142.2009 Tm (Figure 7.13)Tj /T1_1 1 Tf 5.695 0 Td [(Ef)18(fect of)]TJ /TT0 1 Tf 3.887 0 Td (longjmp)Tj /T1_1 1 Tf 4.45 0 Td (on various types of variables)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47671 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (798)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 134.9919 659.4594 Tm [(77 )-1200(/*)]TJ 0 -1.189 TD [(78 )-1800(*)-600(Value Tags.)]TJ T* [(79 )-1800(*/)]TJ T* [(80 )-1200(#define)-600(TAG_UNSUPPORTED )-3000(0x10)-600(/* unsupported value */)]TJ T* [(81 )-1200(#define)-600(TAG_UNKNOWN )]TJ 20.4 0 Td [(0x12)-600(/* unknown value */)]TJ -20.4 -1.189 Td [(82 )-1200(#define)-600(TAG_NONE )]TJ 20.4 0 Td [(0x13)-600(/* no value */)]TJ -20.4 -1.189 Td [(83 )-1200(#define)-600(TAG_INTEGER )]TJ 20.4 0 Td [(0x21)-600(/* integer */)]TJ -20.4 -1.189 Td [(84 )-1200(#define)-600(TAG_BOOLEAN )]TJ 20.4 0 Td [(0x22)-600(/* boolean */)]TJ -20.4 -1.189 Td [(85 )-1200(#define)-600(TAG_ENUM )]TJ 20.4 0 Td [(0x23)-600(/* enumeration */)]TJ -20.4 -1.189 Td [(86 )-1200(#define)-600(TAG_OCTSTR )]TJ 20.4 0 Td [(0x30)-600(/* octetString */)]TJ -20.4 -1.189 Td [(87 )-1200(#define)-600(TAG_DATETIME )-4800(0x31)-600(/* dateTime */)]TJ T* [(88 )-1200(#define)-600(TAG_RESOLUTION )-3600(0x32)-600(/* resolution */)]TJ T* [(89 )-1200(#define)-600(TAG_INTRANGE )-4800(0x33)-600(/* rangeOfInteger */)]TJ 0 -1.189 TD [(90 )-1200(#define)-600(TAG_TEXTWLANG )-4200(0x35)-600(/* textWithLanguage */)]TJ 0 -1.189 TD [(91 )-1200(#define)-600(TAG_NAMEWLANG )-4200(0x36)-600(/* nameWithLanguage */)]TJ 0 -1.189 TD [(92 )-1200(#define)-600(TAG_TEXTWOLANG )-3600(0x41)-600(/* textWithoutLanguage */)]TJ T* [(93 )-1200(#define)-600(TAG_NAMEWOLANG )-3600(0x42)-600(/* nameWithoutLanguage */)]TJ T* [(94 )-1200(#define)-600(TAG_KEYWORD )]TJ 20.4 0 Td [(0x44)-600(/* keyword */)]TJ -20.4 -1.189 Td [(95 )-1200(#define)-600(TAG_URI )]TJ 20.4 0 Td [(0x45)-600(/* URI */)]TJ -20.4 -1.189 Td [(96 )-1200(#define)-600(TAG_URISCHEME )-4200(0x46)-600(/* uriScheme */)]TJ T* [(97 )-1200(#define)-600(TAG_CHARSET )]TJ 20.4 0 Td [(0x47)-600(/* charset */)]TJ -20.4 -1.189 Td [(98 )-1200(#define)-600(TAG_NATULANG )-4800(0x48)-600(/* naturalLanguage */)]TJ T* [(99 )-1200(#define)-600(TAG_MIMETYPE )-4800(0x49)-600(/* mimeMediaType */)]TJ -0.6 -2.021 Td [(100 )-1200(struct)-600(ipp_hdr {)]TJ T* [(101 )-2400(int8_t)-1200(major_version; )-600(/*)-600(always 1 */)]TJ T* [(102 )-2400(int8_t)-1200(minor_version; )-600(/*)-600(always 1 */)]TJ T* [(103 )-2400(union)-600({)]TJ 0 -1.189 TD [(104 )-4800(int16_t)-600(op; /* operation ID */)]TJ 0 -1.189 TD [(105 )-4800(int16_t)-600(st; /* status */)]TJ T* [(106 )-2400(})-600(u;)]TJ T* [(107 )-2400(int32_t)-600(request_id; )-2400(/*)-600(request ID */)]TJ T* [(108 )-2400(char)-2400(attr_group[1]; )-600(/*)-600(start of optional attributes group */)]TJ T* [(109 )-2400(/*)-600(optional data follows */)]TJ T* [(110 )-1200(};)]TJ 0 -2.021 TD [(111 )-1200(#define)-600(operation u.op)]TJ 0 -1.189 TD [(112 )-1200(#define)-600(status u.st)]TJ 0 -2.021 TD [(113 )-1200(#endif)-600(/* _IPP_H */)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2470.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 223.0012 Tm [([77 )167(\320 )167(99])-1668(The )-102(value )-102(tags )-102(indicate )-102(the )-102(format )-102(of )-102(individual )-102(attributes )-102(and )-102(parameters.)]TJ 5 -1.2 Td (They ar)Tj 0.25 Tc 3.357 0 Td (ed)Tj 0 Tc 1.34 0 Td (e\336ned in Section 3.5.2 of RFC 2910.)Tj -9.697 -1.72 Td [([100 )167(\320 )167(1)54(13] )-472(W)]TJ 0.3686 Tc 5.908 0 Td (ed)Tj 0 Tc 1.459 0 Td [(e\336ne )-119(the )-119(str)9(uctur)]TJ 0.3686 Tc 7.759 0 Td (eo)Tj 0 Tc 1.394 0 Td [(f)-369(an)-369(I)1(PP )-119(header)]TJ 0.6187 Tc 7.038 0 Td (.R)Tj 0 Tc 1.537 0 Td [(equest )-119(messages )-119(start )-119(with )-119(the)]TJ -20.094 -1.2 Td [(same )-278(header )-278(as )-278(r)18(esponse )-278(messages, )-278(except )-278(that )-278(the )-278(operation )-278(ID )-278(in )-278(the)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(quest is r)18(eplaced by a status code in the r)18(esponse.)]TJ -0.092 Tc -0.856 -1.8 Td [(We )-290(e)]TJ 0 Tc 2.222 0 Td [(nd )-106(the )-106(header )-106(\336le )-106(with )-106(a)]TJ /TT0 1 Tf 11.671 0 Td (#endif)Tj /T1_1 1 Tf 3.956 0 Td [(to )-106(match )-106(the)]TJ /TT0 1 Tf 6.063 0 Td (#ifdef)Tj /T1_1 1 Tf 3.956 0 Td [(at )-106(the )-106(start )-106(of)]TJ -27.868 -1.2 Td (the \336le.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47672 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (968)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (HP)Tj 1.436 0.09 Td (-)Tj 0.333 -0.09 Td [(UX, )-250(35)]TJ /TT0 1 Tf -1.769 -1.25 Td (hsearch)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -4.617 -1.25 Td (HSFS)Tj /T1_1 1 Tf 2.817 0 Td (\336le system,)Tj -0.055 Tc 5.467 0 Td (11)Tj 0 Tc 0.945 0 Td (3)Tj /TT0 1 Tf -9.229 -1.25 Td (htonl)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(594,)-250(810, 824)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (827, 834)Tj -12.69 -1.25 Td [(de\336nition of,)-500(594)]TJ /TT0 1 Tf -1.35 -1.25 Td (htons)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(594,)-250(831, 834)]TJ -2.067 -1.25 Td [(de\336nition of,)-500(594)]TJ -1.35 -1.25 Td (HTTP)Tj 2.912 0.04 Td (\()Tj 0.333 -0.04 Td [(Hypertext T)90(ransfer Pr)18(otocol)]TJ 12.321 0.04 Td (\))Tj 0.5 Tc 0.333 -0.04 Td (,7)Tj 0 Tc 1.25 0 Td (92)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (793)Tj -18.816 -1.25 Td [(Hume, A. G.,)-500(174, 949)]TJ /TT0 1 Tf 0 -1.25 TD (HUPCL)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(675,)-250(687)]TJ -3.417 -1.25 Td [(Hypertext T)90(ransfer Pr)18(otocol,)]TJ /T1_2 1 Tf 13.071 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td (HTTP)Tj -14.488 -4.75 Td [(IBM \(International Business Machines\),)-500(35)]TJ /TT0 1 Tf T* (ICANON)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(676,)-250(678, 680)]TJ 10.063 0.09 Td (\320)Tj 0.583 -0.09 Td (682, 686)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (687, 691,)Tj -16.13 -1.25 Td (703, 705)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (707)Tj /TT0 1 Tf -6.866 -1.25 Td (iconv_close)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -7.017 -1.25 Td ()Tj /T1_1 1 Tf 5.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj /TT0 1 Tf -10.039 -1.25 Td (iconv_open)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -6.417 -1.25 Td (ICRNL)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(680, 688, 700, 706)]TJ 14.063 0.09 Td (\320)Tj 0.583 -0.09 Td (708)Tj -18.063 -1.25 Td (identi\336ers)Tj 1.35 -1.25 Td [(IPC, )-250(556)]TJ 3.983 0.09 Td (\320)Tj 0.583 -0.09 Td (558)Tj -4.566 -1.25 Td [(pr)18(ocess, )-250(227)]TJ 5.628 0.09 Td (\320)Tj 0.583 -0.09 Td (228)Tj /TT0 1 Tf -7.561 -1.25 Td (IDXLEN_MAX)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(779)]TJ -6.417 -1.25 Td [(IEC \(International Electr)18(otechnical Commission\),)]TJ 2.7 -1.25 Td (25)Tj -2.7 -1.25 Td [(IEEE \(Institute for Electrical and Electr)18(onic)]TJ 2.7 -1.25 Td [(Engineers\), )-250(xx,)-250(26)]TJ 8.097 0.09 Td (\320)Tj 0.583 -0.09 Td (27, 950)Tj /TT0 1 Tf -11.381 -1.25 Td (IEXTEN)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(676,)-250(678, 680)]TJ 10.063 0.09 Td (\320)Tj 0.583 -0.09 Td (682, 688, 706)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (708)Tj /TT0 1 Tf -20.83 -1.25 Td (I_FIND)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(725)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (726)Tj /TT0 1 Tf -10.663 -1.25 Td (IFS)Tj /T1_1 1 Tf 2.217 0 Td [(envir)18(onment variable,)-500(269)]TJ /TT0 1 Tf -2.217 -1.25 Td (IGNBRK)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(676,)-250(685, 688)]TJ /TT0 1 Tf -4.017 -1.25 Td (IGNCR)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(680, 688, 700)]TJ /TT0 1 Tf -3.417 -1.25 Td (IGNPAR)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(676,)-250(688, 690)]TJ /TT0 1 Tf -4.017 -1.25 Td (ILL_BADSTK)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (ILL_COPROC)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (ILL_ILLADR)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (ILL_ILLOPC)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (ILL_ILLOPN)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (ILL_ILLTRP)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (ILL_PRVOPC)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (ILL_PRVREG)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ -6.417 -1.25 Td [(Illumos, )-250(xxi)]TJ /TT0 1 Tf T* (IMAXBEL)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(676,)-250(688)]TJ -4.617 -1.25 Td [(implementation dif)18(fer)18(ences, passwor)18(d, )-250(184)]TJ 19.274 0.09 Td (\320)Tj 0.583 -0.09 Td (185)Tj -19.858 -1.25 Td [(implementations, UNIX System,)-500(33)]TJ /TT0 1 Tf T* (INADDR_ANY)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(605)]TJ /TT0 1 Tf -6.417 -1.25 Td (in_addr_t)Tj /T1_1 1 Tf 5.817 0 Td [(data type,)-500(595)]TJ -5.817 -1.25 Td [(incor)18(e, )-250(74,)-250(152)]TJ /TT0 1 Tf -0 -1.25 Td (INET6_ADDRSTRLEN)Tj /T1_1 1 Tf 10.017 0 Td [(constant, )-250(596)]TJ /TT0 1 Tf -10.017 -1.25 Td (inet_addr)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(596)]TJ /TT0 1 Tf -5.817 -1.25 Td (INET_ADDRSTRLEN)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(596,)-250(603)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (604)Tj /TT0 1 Tf 7.937 64.75 Td (inetd)Tj /T1_1 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(291,)-250(293, 465, 470, 472)]TJ /TT0 1 Tf -3.417 -1.25 Td (inet_ntoa)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(442,)-250(596)]TJ /TT0 1 Tf -5.817 -1.25 Td (inet_ntop)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(596,)-250(604)]TJ -4.467 -1.25 Td [(de\336nition of,)-500(596)]TJ /TT0 1 Tf -1.35 -1.25 Td (inet_pton)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(596)]TJ -4.467 -1.25 Td [(de\336nition of,)-500(596)]TJ /TT0 1 Tf -1.35 -1.25 Td (INFTIM)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(508)]TJ /TT0 1 Tf -4.017 -1.25 Td (init)Tj /T1_1 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(187,)-250(189, 228, 237)]TJ 12.191 0.09 Td (\320)Tj 0.583 -0.09 Td (238, 246, 270,)Tj -12.891 -1.25 Td (286)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (291, 293, 307, 309, 312, 320, 337, 379,)Tj -2.167 -1.25 Td (464)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (465, 475, 923, 930)Tj /TT0 1 Tf -4.866 -1.25 Td (initgroups)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(184,)-250(288)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(184)]TJ -1.35 -1.25 Td [(initialized data segment,)-500(205)]TJ /TT0 1 Tf T* (init_printer)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(814,)-250(816, 819, 833)]TJ -6.267 -1.25 Td [(de\336nition of,)-500(819)]TJ /TT0 1 Tf -1.35 -1.25 Td (init_request)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(814,)-250(816, 818)]TJ -6.267 -1.25 Td [(de\336nition of,)-500(818)]TJ /TT0 1 Tf -1.35 -1.25 Td (initserver)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(615)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (617, 619, 622)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (623,)Tj -16.507 -1.25 Td (800, 816)Tj -1.35 -1.25 Td [(de\336nition of,)-500(609, 625)]TJ /TT0 1 Tf -1.35 -1.25 Td (inittab)Tj /T1_1 1 Tf 4.617 0 Td [(\336le, )-250(320)]TJ /TT0 1 Tf -4.617 -1.25 Td (INLCR)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(688)]TJ -3.417 -1.25 Td [(i-node, )-250(59,)-250(75)]TJ 6.175 0.09 Td (\320)Tj 0.583 -0.09 Td [(77, 94, 108, 1)55(13)]TJ 6.528 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (6, 120, 124, 127,)Tj -12.115 -1.25 Td (130)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (131, 138)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (139, 179, 253, 493, 698, 905, 910)Tj /TT0 1 Tf -9.033 -1.25 Td (ino_t)Tj /T1_1 1 Tf 3.417 0 Td [(data type,)-500(59, 1)55(14)]TJ /TT0 1 Tf -3.417 -1.25 Td (INPCK)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(688, 690, 706)]TJ 12.063 0.09 Td (\320)Tj 0.583 -0.09 Td (708)Tj /TT0 1 Tf -16.063 -1.25 Td (in_port_t)Tj /T1_1 1 Tf 5.817 0 Td [(data type,)-500(595)]TJ -5.817 -1.25 Td [(Institute for Electrical and Electr)18(onic Engineers,)]TJ /T1_2 1 Tf 21.523 0 Td (see)Tj /T1_1 1 Tf -18.823 -1.25 Td (IEEE)Tj /TT0 1 Tf -2.7 -1.25 Td (int16_t)Tj /T1_1 1 Tf 4.617 0 Td [(data type,)-500(831)]TJ -4.617 -1.25 Td [(Intel, )-250(xxii)]TJ T* (International Business Machines,)Tj /T1_2 1 Tf 15.073 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td (IBM)Tj -16.49 -1.25 Td [(International Electr)18(otechnical Commission,)]TJ /T1_2 1 Tf 19.579 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td (IEC)Tj -20.996 -1.25 Td [(International Standar)18(ds Or)18(ganization,)]TJ /T1_2 1 Tf 17.28 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td (ISO)Tj -18.697 -1.25 Td [(Internet Printing Pr)18(otocol,)]TJ /T1_2 1 Tf 12.063 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td (IPP)Tj -13.48 -1.25 Td [(Internet worm,)-500(153)]TJ T* [(interpr)18(eter \336le,)-500(260)]TJ 8.688 0.09 Td (\320)Tj 0.583 -0.09 Td (264, 283)Tj -9.271 -1.25 Td [(interpr)18(ocess communication,)]TJ /T1_2 1 Tf 13.289 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td (IPC)Tj -14.706 -1.25 Td [(interr)8(upted system calls,)-500(327)]TJ 12.955 0.09 Td (\320)Tj 0.583 -0.09 Td (330, 343, 351,)Tj -10.839 -1.25 Td (354)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (355, 365, 508)Tj /TT0 1 Tf -4.866 -1.25 Td (INT_MAX)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(37)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (38)Tj /TT0 1 Tf -10.763 -1.25 Td (INT_MIN)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(37)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (38)Tj -10.763 -1.25 Td (INTR terminal character)Tj 0.5 Tc 10.687 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 681, 688, 701)Tj /TT0 1 Tf -11.937 -1.25 Td ()Tj /T1_1 1 Tf 7.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7)Tj -11.839 -1.25 Td (I/O)Tj 1.35 -1.25 Td [(asynchr)18(onous, )-250(501,)-250(509)]TJ 10.499 0.09 Td (\320)Tj 0.583 -0.09 Td (520)Tj -11.082 -1.25 Td [(asynchr)18(onous socket,)-500(627)]TJ T* [(ef)18(\336ciency)]TJ 0.5 Tc 4.084 0 Td (,7)Tj 0 Tc 1.25 0 Td (2)Tj 0.583 0.09 Td (\320)Tj 0.583 -0.09 Td (74)Tj -6.5 -1.25 Td (library)Tj 0.25 Tc 2.87 0 Td (,s)Tj 0 Tc 0.924 0 Td [(tandar)18(d, )-250(10,)-250(143)]TJ 7.34 0.09 Td (\320)Tj 0.583 -0.09 Td (175)Tj -11.718 -1.25 Td [(memory-mapped, )-250(525)]TJ 10.083 0.09 Td (\320)Tj 0.583 -0.09 Td (531)Tj -10.666 -1.25 Td [(multiplexing, )-250(500)]TJ 8.043 0.09 Td (\320)Tj 0.583 -0.09 Td (509)Tj -8.627 -1.25 Td [(nonblocking, )-250(481)]TJ 7.862 0.09 Td (\320)Tj 0.583 -0.09 Td (484)Tj -8.446 -1.25 Td [(nonblocking socket,)-500(608)]TJ 10.887 0.09 Td (\320)Tj 0.583 -0.09 Td (609, 627)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47673 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (967)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 140.3916 670.9597 Tm [(de\336nition of,)-500(180)]TJ /TT0 1 Tf -1.35 -1.25 Td (getpwnam)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(177)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (181, 186, 276, 287,)Tj -9.14 -1.25 Td (330)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (332, 442, 452, 816, 918)Tj -3.517 -1.25 Td [(de\336nition of,)-500(179)]TJ 7.775 0.09 Td (\320)Tj 0.583 -0.09 Td (180)Tj /TT0 1 Tf -9.709 -1.25 Td (getpwnam_r)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(443,)-250(452)]TJ /TT0 1 Tf -6.417 -1.25 Td (getpwuid)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(177)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (181, 186, 275)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (276, 442,)Tj -15.307 -1.25 Td (452, 809, 918)Tj -1.35 -1.25 Td [(de\336nition of,)-500(179)]TJ /TT0 1 Tf -1.35 -1.25 Td (getpwuid_r)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(443,)-250(452)]TJ /TT0 1 Tf -6.417 -1.25 Td (getresgid)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(257)]TJ /TT0 1 Tf -5.817 -1.25 Td (getresuid)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(257)]TJ /TT0 1 Tf -5.817 -1.25 Td (getrlimit)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(53,)-250(220, 224, 466)]TJ 11.54 0.09 Td (\320)Tj 0.583 -0.09 Td (467,)Tj -15.24 -1.25 Td (906)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (907)Tj -3.517 -1.25 Td [(de\336nition of,)-500(220)]TJ /TT0 1 Tf -1.35 -1.25 Td (getrusage)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(245,)-250(280)]TJ /TT0 1 Tf -5.817 -1.25 Td (gets)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(152)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td [(153, 91)55(1)]TJ -8.09 -1.25 Td [(de\336nition of,)-500(152)]TJ /TT0 1 Tf -1.35 -1.25 Td (getservbyname)Tj /T1_0 1 Tf 8.217 0 Td [(function, )-250(442,)-250(452, 599)]TJ -6.867 -1.25 Td [(de\336nition of,)-500(599)]TJ /TT0 1 Tf -1.35 -1.25 Td (getservbyport)Tj /T1_0 1 Tf 8.217 0 Td [(function, )-250(442,)-250(452, 599)]TJ -6.867 -1.25 Td [(de\336nition of,)-500(599)]TJ /TT0 1 Tf -1.35 -1.25 Td (getservent)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(442,)-250(452, 599)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(599)]TJ /TT0 1 Tf -1.35 -1.25 Td (getsid)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(296)]TJ -2.667 -1.25 Td [(de\336nition of,)-500(296)]TJ /TT0 1 Tf -1.35 -1.25 Td (getsockname)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(331,)-250(605)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(605)]TJ /TT0 1 Tf -1.35 -1.25 Td (getsockopt)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(331,)-250(624)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (625)Tj -13.69 -1.25 Td [(de\336nition of,)-500(624)]TJ /TT0 1 Tf -1.35 -1.25 Td (getspent)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(182)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(182)]TJ /TT0 1 Tf -1.35 -1.25 Td (getspnam)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(182,)-250(918)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(182)]TJ /TT0 1 Tf -1.35 -1.25 Td (gettimeofday)Tj /T1_0 1 Tf 7.617 0 Td [(function, )-250(190,)-250(414, 421, 437, 439)]TJ -6.267 -1.25 Td [(de\336nition of,)-500(190)]TJ /TT0 1 Tf -1.35 -1.25 Td (getty)Tj /T1_0 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(238,)-250(286)]TJ 8.191 0.09 Td (\320)Tj 0.583 -0.09 Td (288, 290, 472)Tj /TT0 1 Tf -12.191 -1.25 Td (gettytab)Tj /T1_0 1 Tf 5.217 0 Td [(\336le, )-250(287)]TJ /TT0 1 Tf -5.217 -1.25 Td (getuid)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(17,)-250(228, 257, 268, 275)]TJ 13.54 0.09 Td (\320)Tj 0.583 -0.09 Td (276, 331)Tj -16.79 -1.25 Td [(de\336nition of,)-500(228)]TJ /TT0 1 Tf -1.35 -1.25 Td (getutxent)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(442,)-250(452)]TJ /TT0 1 Tf -5.817 -1.25 Td (getutxid)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(442,)-250(452)]TJ /TT0 1 Tf -5.217 -1.25 Td (getutxline)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(442,)-250(452)]TJ /TT0 1 Tf -6.417 -1.25 Td (GETVAL)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(568)]TJ /TT0 1 Tf -4.017 -1.25 Td (getwc)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -3.417 -1.25 Td (getwchar)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -5.217 -1.25 Td (GETZCNT)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(568)]TJ -4.617 -1.25 Td [(Ghemawat, S.,)-500(949)]TJ 0 -1.25 TD (GID,)Tj /T1_2 1 Tf 2.624 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td [(gr)18(oup ID)]TJ /TT0 1 Tf -4.041 -1.25 Td (gid_t)Tj /T1_0 1 Tf 3.417 0 Td [(data type,)-500(59)]TJ -3.417 -1.25 Td [(Gingell, R. A.,)-500(206, 525, 949)]TJ T* [(Gitlin, J. E.,)-500(xxxii)]TJ /TT0 1 Tf T* (glob)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(452)]TJ -2.817 -1.25 Td [(global variables,)-500(219)]TJ /TT0 1 Tf 26 65 Td ()Tj /T1_0 1 Tf 5.217 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj /TT0 1 Tf -9.439 -1.25 Td (gmtime)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(191)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (192, 442)Tj -9.29 -1.25 Td [(de\336nition of,)-500(192)]TJ /TT0 1 Tf -1.35 -1.25 Td (gmtime_r)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(443)]TJ -5.217 -1.25 Td [(GNU, )-250(2,)-250(289, 753)]TJ T* [(GNU Public License,)-500(35)]TJ T* [(Godsil, J. M.,)-500(xxxii)]TJ T* [(Goodheart, B.,)-500(712, 949)]TJ T* [(Google, )-250(210)]TJ T* [(goto, nonlocal,)-500(213)]TJ 8.589 0.09 Td (\320)Tj 0.583 -0.09 Td (220, 355)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (358)Tj -13.339 -1.25 Td [(Grandi, S.,)-500(xxxii)]TJ /TT0 1 Tf T* (grantpt)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(723)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (725)Tj -9.89 -1.25 Td [(de\336nition of,)-500(723)]TJ /TT0 1 Tf -1.35 -1.25 Td (grep)Tj /T1_0 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(20,)-250(174, 200, 252, 949)]TJ 13.691 0.09 Td (\320)Tj 0.583 -0.09 Td (950)Tj -17.091 -1.25 Td [(gr)18(oup \336le,)-500(182)]TJ 6.641 0.09 Td (\320)Tj 0.583 -0.09 Td (183)Tj -7.225 -1.25 Td [(gr)18(oup ID,)-500(17, 255)]TJ 7.877 0.09 Td (\320)Tj 0.583 -0.09 Td (260)Tj -7.11 -1.25 Td [(ef)18(fective, )-250(98)]TJ 5.544 0.09 Td (\320)Tj 0.583 -0.09 Td (99, 101)Tj 3.083 0.09 Td (\320)Tj 0.583 -0.09 Td [(102, 108, 1)55(10, 140, 183,)]TJ -8.444 -1.25 Td (228, 233, 256, 258, 558, 587)Tj -0.018 Tc -1.35 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(al, )-250(98,)-250(102, 183, 228, 233, 252)]TJ 12.624 0.09 Td (\320)Tj 0.583 -0.09 Td (253, 256, 270,)Tj -12.714 -1.25 Td (585)Tj -1.35 -1.25 Td (supplementary)Tj 0.5 Tc 6.609 0 Td (,1)Tj 0 Tc 1.25 0 Td [(8, 39, 98, 101, 108, 1)55(10,)]TJ -6.509 -1.25 Td (183)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (184, 233, 252, 258)Tj /TT0 1 Tf -4.866 -1.25 Td (group)Tj /T1_0 1 Tf 3.417 0 Td [(str)8(uctur)18(e, )-250(182)]TJ /TT0 1 Tf -3.417 -1.25 Td ()Tj /T1_0 1 Tf 4.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9, 182, 186)Tj /TT0 1 Tf -8.839 -1.25 Td (guardsize)Tj /T1_0 1 Tf 5.817 0 Td [(attribute, )-250(427,)-250(430)]TJ -5.817 -4.75 Td [(hack, )-250(303,)-250(842)]TJ T* [(half-duplex pipes,)-500(534)]TJ /TT0 1 Tf T* (handle_request)Tj /T1_0 1 Tf 8.817 0 Td [(function, )-250(656,)-250(665)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (666, 668)Tj -16.09 -1.25 Td [(de\336nition of,)-500(657, 668)]TJ -1.35 -1.25 Td (har)Tj 0.25 Tc 1.459 0 Td (dl)Tj 0 Tc 1.152 0 Td [(ink, )-250(4,)]TJ -0.055 Tc 3.179 0 Td (11)Tj 0 Tc 0.945 0 Td [(4, 1)55(17, 120, 122)]TJ -6.735 -1.25 Td (har)Tj 0.25 Tc 1.459 0 Td (dl)Tj 0 Tc 1.152 0 Td [(inks and dir)18(ectories, )-250(1)55(17, 120)]TJ /TT0 1 Tf -2.611 -1.25 Td (hcreate)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -4.617 -1.25 Td (hdestroy)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(442)]TJ -5.217 -1.25 Td (headers)Tj 1.35 -1.25 Td [(optional, )-250(30)]TJ T* [(POSIX r)18(equir)18(ed, )-250(29)]TJ T* [(standar)18(d, )-250(27)]TJ T* [(XSI option,)-500(30)]TJ -1.35 -1.25 Td [(heap, )-250(205)]TJ T* (Hein, T)Tj 0.25 Tc 3.223 0 Td (.R)Tj 0 Tc 1.168 0 Td [(., )-250(xxxii,)-250(951)]TJ -4.391 -1.25 Td [(Hewlett-Packar)18(d, )-250(35,)-250(835)]TJ /TT0 1 Tf T* (HFS)Tj /T1_0 1 Tf 2.217 0 Td [(\336le system,)-500(87, 1)55(13, 1)55(16)]TJ -2.217 -1.25 Td [(Hogue, J. E.,)-500(xxxii)]TJ T* [(holes, \336le,)-500(68)]TJ 6.03 0.09 Td (\320)Tj 0.583 -0.09 Td (69, 1)Tj -0.055 Tc 1.945 0 Td (11)Tj 0 Tc 1.028 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (2)Tj -11.115 -1.25 Td [(home dir)18(ectory)]TJ 0.5 Tc 6.654 0 Td (,2)Tj 0 Tc 1.25 0 Td [(,)-250(8,)-250(135, 21)55(1, 288, 292)]TJ /TT0 1 Tf -7.904 -1.25 Td (HOME)Tj /T1_0 1 Tf 2.817 0 Td [(envir)18(onment variable,)-500(210)]TJ 11.849 0.09 Td (\320)Tj 0.583 -0.09 Td [(21)55(1, 288)]TJ -15.249 -1.25 Td [(Honeyman, P)129(., )-250(xxxii)]TJ /TT0 1 Tf T* (hostent)Tj /T1_0 1 Tf 4.617 0 Td [(str)8(uctur)18(e, )-250(597)]TJ /TT0 1 Tf -4.617 -1.25 Td (hostname)Tj /T1_0 1 Tf 5.217 0 Td [(pr)18(ogram, )-250(189)]TJ /TT0 1 Tf -5.217 -1.25 Td (HOST_NAME_MAX)Tj /T1_0 1 Tf 8.217 0 Td [(constant, )-250(40,)-250(43, 49, 188,)]TJ -5.517 -1.25 Td (615)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (618, 622)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (623, 800, 815)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47674 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (966)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (gai_strerror)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(600,)-250(616, 619, 621, 623)]TJ -6.267 -1.25 Td [(de\336nition of,)-500(600)]TJ -1.35 -1.25 Td [(Gallmeister)74(,)-250(B.)-250(O., )-250(949)]TJ 0 -1.25 TD [(Gar\336nkel, S.,)-500(181, 250, 298, 949)]TJ T* [(gather write,)-500(521, 644)]TJ /TT0 1 Tf T* (gawk)Tj /T1_1 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(262)]TJ /TT0 1 Tf -2.817 -1.25 Td (gcc)Tj /T1_1 1 Tf 2.217 0 Td [(pr)18(ogram, )-250(6,)-250(26, 58, 919)]TJ /TT0 1 Tf -2.217 -1.25 Td (gdb)Tj /T1_1 1 Tf 2.217 0 Td [(pr)18(ogram, )-250(928)]TJ /TT0 1 Tf -2.217 -1.25 Td (gdbm)Tj /T1_1 1 Tf 2.817 0 Td (library)Tj 0.5 Tc 2.87 0 Td (,7)Tj 0 Tc 1.25 0 Td (44)Tj -6.937 -1.25 Td (generic pointer)Tj 0.5 Tc 6.622 0 Td (,7)Tj 0 Tc 1.25 0 Td (1, 208)Tj /TT0 1 Tf -7.872 -1.25 Td (getaddrinfo)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(452,)-250(599)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (601, 603)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (604,)Tj -17.107 -1.25 Td (614)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (616, 619, 621, 623, 802, 808)Tj -3.516 -1.25 Td [(de\336nition of,)-500(599)]TJ /TT0 1 Tf -1.35 -1.25 Td (getaddrlist)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(800,)-250(802, 804, 808, 815)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(802)]TJ /TT0 1 Tf -1.35 -1.25 Td (GETALL)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(568)]TJ /TT0 1 Tf -4.017 -1.25 Td (getc)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(10,)-250(150)]TJ 7.54 0.09 Td (\320)Tj 0.583 -0.09 Td (156, 164)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (165, 452,)Tj -12.407 -1.25 Td (701)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (702, 913)Tj -3.517 -1.25 Td [(de\336nition of,)-500(150)]TJ /TT0 1 Tf -1.35 -1.25 Td (getchar)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(150)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (151, 164, 175, 452, 547, 913)Tj -9.89 -1.25 Td [(de\336nition of,)-500(150)]TJ /TT0 1 Tf -1.35 -1.25 Td (getchar_unlocked)Tj /T1_1 1 Tf 10.017 0 Td [(function, )-250(442,)-250(444, 452)]TJ -8.667 -1.25 Td [(de\336nition of,)-500(444)]TJ /TT0 1 Tf -1.35 -1.25 Td (getconf)Tj /T1_1 1 Tf 4.617 0 Td [(pr)18(ogram, )-250(70)]TJ /TT0 1 Tf -4.617 -1.25 Td (getc_unlocked)Tj /T1_1 1 Tf 8.217 0 Td [(function, )-250(442,)-250(444, 452)]TJ -6.867 -1.25 Td [(de\336nition of,)-500(444)]TJ /TT0 1 Tf -1.35 -1.25 Td (getcwd)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(50,)-250(135)]TJ 7.54 0.09 Td (\320)Tj 0.583 -0.09 Td (137, 142, 208, 452,)Tj -9.44 -1.25 Td [(91)55(1)]TJ 1.528 0.09 Td (\320)Tj 0.583 -0.09 Td (912)Tj -3.462 -1.25 Td [(de\336nition of,)-500(136)]TJ /TT0 1 Tf -1.35 -1.25 Td (getdate)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(21)55(1, 442, 452)]TJ /TT0 1 Tf -4.617 -1.25 Td (getdelim)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -5.217 -1.25 Td (getegid)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(228,)-250(331)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(228)]TJ /TT0 1 Tf -1.35 -1.25 Td (getenv)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(204,)-250(210)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (212, 442, 444)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (446,)Tj -16.107 -1.25 Td (449)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (450, 462, 539, 928)Tj -3.517 -1.25 Td [(de\336nition of,)-500(210)]TJ /TT0 1 Tf -1.35 -1.25 Td (getenv_r)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(445)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (446)Tj /TT0 1 Tf -11.84 -1.25 Td (geteuid)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(228,)-250(257, 268, 331, 650, 809)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(228)]TJ /TT0 1 Tf -1.35 -1.25 Td (getgid)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(17,)-250(228, 331)]TJ -2.667 -1.25 Td [(de\336nition of,)-500(228)]TJ /TT0 1 Tf -1.35 -1.25 Td (getgrent)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(183)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (184, 442, 452)Tj -10.49 -1.25 Td [(de\336nition of,)-500(183)]TJ /TT0 1 Tf -1.35 -1.25 Td (getgrgid)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(182,)-250(442, 452)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(182)]TJ /TT0 1 Tf -1.35 -1.25 Td (getgrgid_r)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(443,)-250(452)]TJ /TT0 1 Tf -6.417 -1.25 Td (getgrnam)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(182,)-250(442, 452)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(182)]TJ /TT0 1 Tf -1.35 -1.25 Td (getgrnam_r)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(443,)-250(452)]TJ /TT0 1 Tf -6.417 -1.25 Td (getgroups)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(184,)-250(331)]TJ -4.467 -1.25 Td [(de\336nition of,)-500(184)]TJ /TT0 1 Tf -1.35 -1.25 Td (gethostbyaddr)Tj /T1_1 1 Tf 8.217 0 Td [(function, )-250(597,)-250(599)]TJ /TT0 1 Tf -8.217 -1.25 Td (gethostbyname)Tj /T1_1 1 Tf 8.217 0 Td [(function, )-250(597,)-250(599)]TJ /TT0 1 Tf 17.783 65 Td (gethostent)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(442,)-250(452, 597)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(597)]TJ /TT0 1 Tf -1.35 -1.25 Td (gethostid)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -5.817 -1.25 Td (gethostname)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(39)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (40, 43, 188, 452,)Tj -10.44 -1.25 Td (616)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (618, 623, 815)Tj -3.517 -1.25 Td [(de\336nition of,)-500(188)]TJ /TT0 1 Tf -1.35 -1.25 Td (getline)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -4.617 -1.25 Td (getlogin)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(275)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (276, 442, 452, 480,)Tj -9.14 -1.25 Td (929)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (930)Tj -3.517 -1.25 Td [(de\336nition of,)-500(275)]TJ /TT0 1 Tf -1.35 -1.25 Td (getlogin_r)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(443,)-250(452)]TJ /TT0 1 Tf -6.417 -1.25 Td (getmsg)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(740)]TJ /TT0 1 Tf -4.017 -1.25 Td (getnameinfo)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(452,)-250(600)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(600)]TJ /TT0 1 Tf -1.35 -1.25 Td (GETNCNT)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(568)]TJ /TT0 1 Tf -4.617 -1.25 Td (getnetbyaddr)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(442,)-250(452, 598)]TJ -6.267 -1.25 Td [(de\336nition of,)-500(598)]TJ /TT0 1 Tf -1.35 -1.25 Td (getnetbyname)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(442,)-250(452, 598)]TJ -6.267 -1.25 Td [(de\336nition of,)-500(598)]TJ /TT0 1 Tf -1.35 -1.25 Td (getnetent)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(442,)-250(452, 598)]TJ -4.467 -1.25 Td [(de\336nition of,)-500(598)]TJ /TT0 1 Tf -1.35 -1.25 Td (get_newjobno)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(814,)-250(820, 825, 843)]TJ -6.267 -1.25 Td [(de\336nition of,)-500(820)]TJ /TT0 1 Tf -1.35 -1.25 Td (getopt)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(442,)-250(452, 662)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (664, 669, 730)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (731,)Tj -18.107 -1.25 Td (807)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (808)Tj -3.517 -1.25 Td [(de\336nition of,)-500(662)]TJ /TT0 1 Tf -1.35 -1.25 Td (getpass)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(287,)-250(298, 700, 702)]TJ 12.04 0.09 Td (\320)Tj 0.583 -0.09 Td (703)Tj -15.89 -1.25 Td [(de\336nition of,)-500(701)]TJ /TT0 1 Tf -1.35 -1.25 Td (getpeername)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(331,)-250(605)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(605)]TJ /TT0 1 Tf -1.35 -1.25 Td (getpgid)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(293)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (294)Tj -9.89 -1.25 Td [(de\336nition of,)-500(294)]TJ /TT0 1 Tf -1.35 -1.25 Td (getpgrp)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(293,)-250(331)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(293)]TJ /TT0 1 Tf -1.35 -1.25 Td (GETPID)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(568)]TJ /TT0 1 Tf -4.017 -1.25 Td (getpid)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(1)55(1, 228, 230, 235, 272, 308, 331,)]TJ -1.317 -1.25 Td (366, 378, 387, 474, 650, 939)Tj -1.35 -1.25 Td [(de\336nition of,)-500(228)]TJ /TT0 1 Tf -1.35 -1.25 Td (getppid)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(228)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (229, 331, 491, 732)Tj -9.89 -1.25 Td [(de\336nition of,)-500(228)]TJ /TT0 1 Tf -1.35 -1.25 Td (get_printaddr)Tj /T1_1 1 Tf 8.217 0 Td [(function, )-250(800,)-250(804, 819)]TJ -6.867 -1.25 Td [(de\336nition of,)-500(804)]TJ /TT0 1 Tf -1.35 -1.25 Td (get_printserver)Tj /T1_1 1 Tf 9.417 0 Td [(function, )-250(800,)-250(804, 808)]TJ -8.067 -1.25 Td [(de\336nition of,)-500(804)]TJ /TT0 1 Tf -1.35 -1.25 Td (getpriority)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(277)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(277)]TJ /TT0 1 Tf -1.35 -1.25 Td (getprotobyname)Tj /T1_1 1 Tf 8.817 0 Td [(function, )-250(442,)-250(452, 598)]TJ -7.467 -1.25 Td [(de\336nition of,)-500(598)]TJ /TT0 1 Tf -1.35 -1.25 Td (getprotobynumber)Tj /T1_1 1 Tf 10.017 0 Td [(function, )-250(442,)-250(452, 598)]TJ -8.667 -1.25 Td [(de\336nition of,)-500(598)]TJ /TT0 1 Tf -1.35 -1.25 Td (getprotoent)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(442,)-250(452, 598)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(598)]TJ /TT0 1 Tf -1.35 -1.25 Td (getpwent)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(180)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (181, 442, 452)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47675 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 34.357 0 Td [(Chapter )-250(5)-750(Solutions)]TJ /T1_1 1 Tf 11.476 0 Td (913)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (5.3)Tj /T1_0 1 Tf 2.602 0 Td (The function call)Tj /TT0 1 Tf 8.9995 0 0 8.9995 173.6095 654.4005 Tm (printf\(""\);)Tj /T1_0 1 Tf -0.018 Tc 9.9994 0 0 9.9994 155.6106 638.5417 Tm (re)Tj 0 Tc 0.856 0 Td (turns 0, since no characters ar)Tj 0.25 Tc 13.044 0 Td (eo)Tj 0 Tc 1.275 0 Td (utput.)Tj /T1_1 1 Tf -17.777 -1.84 Td (5.4)Tj /T1_0 1 Tf 2.602 0 Td [(This )-28(is )-28(a )-28(common )-28(err)20(or)]TJ 0.5276 Tc 10.237 0 Td (.T)Tj 0 Tc 1.391 0 Td [(he )-28(r)18(eturn )-28(value )-28(fr)19(om)]TJ /TT0 1 Tf 9.51 0 Td (getc)Tj /T1_0 1 Tf 2.678 0 Td (and)Tj /TT0 1 Tf 1.971 0 Td (getchar)Tj /T1_0 1 Tf 4.478 0 Td [(is )-28(an)]TJ /TT0 1 Tf 2.352 0 Td (int)Tj /T1_0 1 Tf 0.2776 Tc (,n)Tj 0 Tc 2.91 0 Td (ot)Tj -35.526 -1.2 Td (a)Tj /TT0 1 Tf 0.786 0 Td (char)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf 3.186 0 Td (EOF)Tj /T1_0 1 Tf 2.086 0 Td [(is )-36(often )-36(de\336ned )-36(to )-36(be)]TJ /TT1 1 Tf 9.682 0 Td (!)Tj /T1_0 1 Tf [(1, )-36(so )-36(if )-36(the )-36(system )-36(uses )-36(signed )-36(characters, )-36(the)]TJ -15.74 -1.2 Td [(code )-113(normally )-113(works.)-614(But )-113(if )-113(the )-113(system )-113(uses )-113(unsigned )-113(characters, )-113(after )-113(the)]TJ /TT0 1 Tf 34.598 0 Td (EOF)Tj /T1_0 1 Tf -0.018 Tc -34.598 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(turned )-49(by)]TJ /TT0 1 Tf 4.703 0 Td (getchar)Tj /T1_0 1 Tf 4.499 0 Td [(is )-49(stor)18(ed )-49(as )-49(an )-49(unsigned )-49(character)]TJ 0.2991 Tc 15.099 0 Td (,t)Tj 0 Tc 0.875 0 Td [(he )-49(character)-74(\325s )-49(value )-49(no)]TJ -26.033 -1.2 Td [(longer )-113(equals)]TJ /TT1 1 Tf 6.432 0 Td (!)Tj /T1_0 1 Tf [(1, )-113(so )-113(the )-113(loop )-113(never )-113(terminates.)-613(The )-113(four )-113(platforms )-113(described )-113(in)]TJ -6.432 -1.2 Td [(this )-11(book )-11(all )-11(use )-11(signed )-11(characters, )-11(so )-11(the )-11(example )-11(code )-11(works )-11(on )-11(these )-11(platforms.)]TJ /T1_1 1 Tf -2.602 -1.84 Td (5.5)Tj /T1_0 1 Tf 2.602 0 Td (Call)Tj /TT0 1 Tf 2.144 0 Td (fsync)Tj /T1_0 1 Tf 3.353 0 Td [(after )-102(each )-102(call )-102(to)]TJ /TT0 1 Tf 7.846 0 Td (fflush)Tj /T1_0 1 Tf 0.6025 Tc (.T)Tj 0 Tc 5.066 0 Td [(he )-102(ar)18(gument )-103(to)]TJ /TT0 1 Tf 7.297 0 Td (fsync)Tj /T1_0 1 Tf 3.353 0 Td [(is )-103(obtained )-103(with)]TJ -29.057 -1.2 Td (the)Tj /TT0 1 Tf 1.663 0 Td (fileno)Tj /T1_0 1 Tf 3.876 0 Td [(function. )-276(Calling)]TJ /TT0 1 Tf 7.979 0 Td (fsync)Tj /T1_0 1 Tf 3.276 0 Td [(without )-26(calling)]TJ /TT0 1 Tf 7.015 0 Td (fflush)Tj /T1_0 1 Tf 3.876 0 Td [(might )-26(do )-26(nothing )-26(if)]TJ -27.686 -1.2 Td (all the data wer)Tj 0.25 Tc 6.846 0 Td (es)Tj 0 Tc 1.153 0 Td [(till in memory buf)18(fers.)]TJ /T1_1 1 Tf -10.601 -1.84 Td (5.6)Tj /T1_0 1 Tf 2.602 0 Td (Standar)Tj 0.2658 Tc 3.421 0 Td (di)Tj 0 Tc 1.168 0 Td [(nput )-16(and )-16(standar)]TJ 0.2658 Tc 7.657 0 Td (do)Tj 0 Tc 1.423 0 Td [(utput )-16(ar)]TJ 0.2658 Tc 3.602 0 Td (eb)Tj 0 Tc 1.298 0 Td [(oth )-16(line )-16(buf)18(fer)18(ed )-16(when )-16(a )-16(pr)18(ogram )-16(is )-16(r)9(un)]TJ -18.568 -1.2 Td (interactively)Tj 0.5 Tc 5.414 0 Td (.W)Tj 0 Tc 1.75 0 Td (hen)Tj /TT0 1 Tf 1.893 0 Td (fgets)Tj /T1_0 1 Tf 3.25 0 Td (is called, standar)Tj 0.25 Tc 7.401 0 Td (do)Tj 0 Tc 1.407 0 Td [(utput is \337ushed automatically)111(.)]TJ /T1_1 1 Tf -23.717 -1.84 Td (5.7)Tj /T1_0 1 Tf 2.602 0 Td (An implementation of)Tj /TT0 1 Tf 10.049 0 Td (fmemopen)Tj /T1_0 1 Tf 5.05 0 Td (for BSD)Tj 3.434 0.09 Td (-)Tj 0.333 -0.09 Td (based systems is shown in Figur)Tj 0.25 Tc 14.272 0 Td (eC)Tj 0 Tc 1.438 0 Td (.4.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1556.25 4618.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1596.25 4618.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 155.6013 452.2247 Tm (#include )Tj 0 -1.189 TD (#include )Tj T* (#include )Tj T* (#include )Tj 0 -1.902 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*O)Tj 0 Tc 1.8 0 Td (ur internal structure tracking a memory stream)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (struct memstream)Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(char )-1800(*buf;)-1800(/* in-memory buffer */)]TJ T* [(size_t )-600(rsize; )-600(/*)-600(real size of buffer */)]TJ T* [(size_t )-600(vsize; )-600(/*)-600(virtual size of buffer */)]TJ T* [(size_t )-600(curpos;)-600(/* current position in buffer */)]TJ T* [(int )-2400(flags;)-1200(/* see below */)]TJ -2.4 -1.189 Td (};)Tj 0 -1.902 TD (/* flags */)Tj 0 -1.189 TD [(#define MS_READ)-3000(0x01 )-1800(/*)-600(open for reading */)]TJ T* [(#define MS_WRITE)-2400(0x02 )-1800(/*)-600(open for writing */)]TJ 0 -1.189 TD [(#define MS_APPEND)-1800(0x04 )-1800(/*)-600(append to stream */)]TJ 0 -1.189 TD [(#define MS_TRUNCATE 0x08)-2400(/* truncate the stream on open */)]TJ T* [(#define MS_MYBUF)-2400(0x10 )-1800(/*)-600(free buffer on close */)]TJ 0 -1.902 TD (#ifndef MIN)Tj 0 -1.189 TD (#define MIN\(a, b\) \(\(a\) < \(b\) ? \(a\) : \(b\)\))Tj T* (#endif)Tj 0 -1.902 TD (static int mstream_read\(void *, char *, int\);)Tj 0 -1.189 TD (static int mstream_write\(void *, const char *, int\);)Tj T* (static fpos_t mstream_seek\(void *, fpos_t, int\);)Tj T* (static int mstream_close\(void *\);)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47676 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (6)Tj /T1_1 1 Tf 2.5 0 Td [(UNIX )-250(System )-250(Overview)]TJ 40.241 0 Td [(Chapter )-250(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 183.589 670.9597 Tm [(Some )-320(UNIX )-320(systems )-320(further )-320(divide )-320(the )-320(manual )-320(pages )-320(within )-320(a )-320(given )-320(section, )-320(using )-320(an)]TJ 0 -1.25 TD [(upper)18(case )-51(letter)]TJ 0.5506 Tc 7.031 0 Td (.F)Tj 0 Tc 1.357 0 Td [(or )-51(example, )-51(all )-51(the )-51(standar)]TJ 0.3006 Tc 11.932 0 Td (di)Tj 0 Tc 1.203 0 Td (nput/output)Tj 6.024 0.04 Td (\()Tj 0.333 -0.04 Td (I/O)Tj 1.729 0.04 Td (\))Tj 0.634 -0.04 Td [(functions )-51(in )-51(A)74(T&T )-51([1990e])]TJ -30.241 -1.25 Td (ar)Tj 0.5298 Tc 0.877 0 Td (ei)Tj 0 Tc 1.3 0 Td [(ndicated )-280(as )-280(being )-280(in )-280(Section )-280(3S, )-280(as )-280(in)]TJ /TT0 1 Tf 18.605 0 Td (fopen)Tj /T1_1 1 Tf 3 0.04 Td (\()Tj 0.333 -0.04 Td (3S)Tj 1.025 0.04 Td (\))Tj 0.7798 Tc 0.333 -0.04 Td (.O)Tj 0 Tc 1.816 0 Td [(ther )-280(systems )-280(have )-280(r)18(eplaced )-280(the)]TJ -27.288 -1.25 Td (numeric sections with alphabetic ones, such as C for commands.)Tj -0.092 Tc 9.9994 0 0 9.9994 147.5916 619.9628 Tm (To)Tj 0 Tc 1.067 0 Td (day)Tj 0.2816 Tc 1.556 0 Td (,m)Tj 0 Tc 1.415 0 Td [(ost )-32(manuals )-32(ar)]TJ 0.2816 Tc 6.519 0 Td (ed)Tj 0 Tc 1.372 0 Td [(istributed )-32(in )-32(electr)18(onic )-32(form.)-532(If )-32(your )-32(manuals )-32(ar)]TJ 0.2817 Tc 21.49 0 Td (eo)Tj 0 Tc 1.307 0 Td (nline,)Tj -36.525 -1.2 Td (the way to see the manual pages for the)Tj /TT0 1 Tf 17.748 0 Td (ls)Tj /T1_1 1 Tf 1.45 0 Td (command would be something like)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 591.2645 Tm (man 1 ls)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5923 575.4053 Tm (or)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 560.8463 Tm (man -s1 ls)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 147.5912 542.8474 Tm (Figur)Tj 0.3929 Tc 2.383 0 Td (e1)Tj 0 Tc 1.372 0 Td [(.3 )-143(is )-143(a )-143(pr)18(ogram )-143(that )-143(just )-143(prints )-143(the )-143(name )-143(of )-143(every )-143(\336le )-143(in )-143(a )-143(dir)19(ectory)]TJ 0.3928 Tc 31.11 0 Td (,a)Tj 0 Tc 1.143 0 Td (nd)Tj -37.807 -1.2 Td [(nothing )-63(else.)-563(If )-63(the )-63(sour)18(ce )-63(\336le )-63(is )-63(named)]TJ /TT0 1 Tf 18.218 0 Td (myls.c)Tj /T1_1 1 Tf [(,)-313(we)-313(compile )-63(it )-63(into )-63(the )-63(default)]TJ /TT0 1 Tf 17.782 0 Td (a.out)Tj /T1_1 1 Tf -36 -1.2 Td [(executable \336le by r)8(unning)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5915 502.1499 Tm (cc myls.c)Tj /T1_1 1 Tf 7.9995 0 0 7.9995 183.5894 479.7512 Tm [(Historically)111(,)]TJ /TT0 1 Tf 5.66 0 Td (cc)Tj /T1_1 1 Tf 1.2 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.667 -0.04 Td [(is )-84(the )-84(C )-84(compiler)]TJ 0.5845 Tc 7.671 0 Td (.O)Tj 0.3345 Tc 1.621 0 Td (ns)Tj 0 Tc 1.34 0 Td [(ystems )-84(with )-84(the )-84(GNU )-84(C )-84(compilation )-84(system, )-84(the )-84(C)]TJ -18.992 -1.25 Td (compiler is)Tj /TT0 1 Tf 5.145 0 Td (gcc)Tj /T1_1 1 Tf 1.8 0.04 Td (\()Tj 0.333 -0.04 Td (1)Tj 0.5 0.04 Td (\))Tj 0.5 Tc 0.333 -0.04 Td (.H)Tj 0 Tc 1.582 0 Td [(er)18(e,)]TJ /TT0 1 Tf 1.835 0 Td (cc)Tj /T1_1 1 Tf 1.45 0 Td (is usually linked to)Tj /TT0 1 Tf 8.665 0 Td (gcc)Tj /T1_1 1 Tf (.)Tj 9.9994 0 0 9.9994 129.5927 448.7531 Tm (Some sample output is)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5916 432.0541 Tm ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out /dev)Tj /TT0 1 Tf -1.2 -1.189 Td (.)Tj 0 -1.189 TD (..)Tj T* (cdrom)Tj T* (stderr)Tj 0 -1.189 TD (stdout)Tj 0 -1.189 TD (stdin)Tj T* (fd)Tj T* (sda4)Tj T* (sda3)Tj T* (sda2)Tj T* (sda1)Tj T* (sda)Tj T* (tty2)Tj 0 -1.189 TD (tty1)Tj 0 -1.189 TD (console)Tj T* (tty)Tj T* (zero)Tj T* (null)Tj /T1_2 1 Tf 12 -1.189 Td (many mor)Tj 0.25 Tc 4.121 0 Td (el)Tj 0 Tc 0.917 0 Td [(ines that ar)18(en\325)]TJ 0.25 Tc 5.723 0 Td (ts)Tj 0 Tc 0.972 0 Td (hown)Tj /TT0 1 Tf -23.733 -1.189 Td (mem)Tj T* ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out /etc/ssl/private)Tj /TT0 1 Tf -1.2 -1.189 Td (can\325t open /etc/ssl/private: Permission denied)Tj 0 -1.189 TD ($)Tj /TT1 1 Tf 1.2 0 Td (./a.out /dev/tty)Tj /TT0 1 Tf -1.2 -1.189 Td (can\325t open /dev/tty: Not a directory)Tj /T1_1 1 Tf 9.9994 0 0 9.9994 129.5926 157.2706 Tm [(Thr)18(oughout )-6(this )-6(text, )-6(we\325ll )-6(show )-6(commands )-6(that )-6(we )-6(r)8(un )-6(and )-6(the )-6(r)18(esulting )-6(output )-6(in )-6(this)]TJ -0 -1.2 Td [(fashion: )-305(Characters )-305(that )-305(we )-305(type )-305(ar)]TJ 0.5553 Tc 16.924 0 Td (es)Tj 0 Tc 1.458 0 Td [(hown )-305(in)]TJ /TT1 1 Tf 4.527 0 Td [(this )45(font)]TJ /T1_1 1 Tf 0.5552 Tc (,w)Tj 0 Tc 6.994 0 Td [(her)18(eas )-305(output )-305(fr)18(om)]TJ -29.905 -1.2 Td [(pr)18(ograms )-25(is )-25(shown)]TJ /TT0 1 Tf 8.791 0 Td [(like )325(this)]TJ /T1_1 1 Tf 0.5254 Tc (.I)Tj 0 Tc 6.188 0 Td [(f)-275(we)-275(n)-1(eed )-25(to )-25(add )-25(comments )-25(to )-25(this )-25(output, )-25(we\325ll )-25(show)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47677 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (965)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (FPE_FLTDIV)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (FPE_FLTINV)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (FPE_FLTOVF)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (FPE_FLTRES)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (FPE_FLTSUB)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (FPE_FLTUND)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (FPE_INTDIV)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (FPE_INTOVF)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (fpos_t)Tj /T1_0 1 Tf 4.017 0 Td [(data type,)-500(59, 157)]TJ /TT0 1 Tf -4.017 -1.25 Td (fprintf)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(159,)-250(452)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(159)]TJ /TT0 1 Tf -1.35 -1.25 Td (fputc)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(145,)-250(152, 154)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (155, 452)Tj -12.69 -1.25 Td [(de\336nition of,)-500(152)]TJ /TT0 1 Tf -1.35 -1.25 Td (fputs)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(146,)-250(150, 152)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (156, 164, 168,)Tj -11.34 -1.25 Td (174)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(175, 452, 543, 548, 550, 701, 901, 904, 91)55(1,)]TJ -2.167 -1.25 Td (919, 926, 936)Tj -1.35 -1.25 Td [(de\336nition of,)-500(153)]TJ /TT0 1 Tf -1.35 -1.25 Td (fputwc)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -4.017 -1.25 Td (fputws)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -4.017 -1.25 Td (F_RDLCK)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(486)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (487, 489)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (490, 897,)Tj -12.73 -1.25 Td (930)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (931)Tj /TT0 1 Tf -4.866 -1.25 Td (fread)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(150,)-250(156)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (157, 269, 273, 452)Tj -10.69 -1.25 Td [(de\336nition of,)-500(156)]TJ /TT0 1 Tf -1.35 -1.25 Td (free)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(163,)-250(174, 207)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (209, 330, 332, 401,)Tj -10.74 -1.25 Td (403)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (405, 407, 437)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (438, 450, 697, 762, 829,)Tj -8.333 -1.25 Td (833, 837, 842, 917)Tj -1.35 -1.25 Td [(de\336nition of,)-500(207)]TJ /TT0 1 Tf -1.35 -1.25 Td (freeaddrinfo)Tj /T1_0 1 Tf 7.617 0 Td [(function, )-250(599,)-250(833)]TJ -6.267 -1.25 Td [(de\336nition of,)-500(599)]TJ -1.35 -1.25 Td [(Fr)18(eeBSD, )-250(xxi\320xxii,)-250(xxvi\320xxvii, 3)]TJ 14.138 0.09 Td (\320)Tj 0.583 -0.09 Td (4, 21, 26)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (27,)Tj -16.188 -1.25 Td (29)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (30, 34)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (36, 38, 49, 57, 60, 62, 64, 68, 70, 81,)Tj -4.833 -1.25 Td (83, 88, 95, 102, 108)Tj 8.083 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (111)Tj 0.25 Tc 1.39 0 Td (,1)Tj 0 Tc 1 0 Td (21, 129, 132, 138,)Tj -11.057 -1.25 Td (175, 178, 182, 184)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (185, 187)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (188, 209)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (212,)Tj -16.5 -1.25 Td (222, 225, 229, 240, 245, 253, 257, 260, 262, 269,)Tj 0 -1.25 TD (271, 276)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (277, 288)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (289, 292, 298, 303, 310,)Tj -8.333 -1.25 Td (314)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (316, 319, 322, 329, 334, 351, 355, 358, 371,)Tj -2.167 -1.25 Td (373, 377, 379)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (380, 385, 388, 393, 396, 409,)Tj -6.166 -1.25 Td (426)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (427, 433, 439, 473, 485, 492)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (493, 497,)Tj -14.333 -1.25 Td (499, 503, 527, 534, 559, 561, 567, 572, 576,)Tj T* (594)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(595, 607, 61)55(1)]TJ 5.528 0.09 Td (\320)Tj 0.583 -0.09 Td (613, 627, 634, 648)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (649,)Tj -16.445 -1.25 Td (652, 675)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (678, 685)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (691, 716, 724, 726)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (727,)Tj -16.5 -1.25 Td (740)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(741, 744, 799, 91)55(1, 918, 930, 932)]TJ 13.528 0.09 Td (\320)Tj 0.583 -0.09 Td (933,)Tj -16.278 -1.25 Td (935)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (936, 949, 951)Tj /TT0 1 Tf -4.866 -1.25 Td (freopen)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(144,)-250(148)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (150, 452)Tj -11.89 -1.25 Td [(de\336nition of,)-500(148)]TJ -1.35 -1.25 Td [(fr)18(equency scaling,)-500(785)]TJ /TT0 1 Tf T* (fscanf)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(162,)-250(452)]TJ -2.667 -1.25 Td [(de\336nition of,)-500(162)]TJ /TT0 1 Tf -1.35 -1.25 Td (fsck)Tj /T1_0 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(122)]TJ /TT0 1 Tf -2.817 -1.25 Td (fseek)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(149,)-250(157)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (159, 172, 452)Tj -10.69 -1.25 Td [(de\336nition of,)-500(158)]TJ /TT0 1 Tf -1.35 -1.25 Td (fseeko)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(157)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (159, 172, 452)Tj -9.29 -1.25 Td [(de\336nition of,)-500(158)]TJ /TT0 1 Tf 24.65 65 Td (F_SETFD)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(82,)-250(85, 90, 480, 592, 907)]TJ /TT0 1 Tf -4.617 -1.25 Td (F_SETFL)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(82)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td [(83, 85, 90, 51)55(1, 592, 627,)]TJ -8.063 -1.25 Td (907, 944)Tj /TT0 1 Tf -2.7 -1.25 Td (F_SETLK)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(82,)-250(486)]TJ 7.563 0.09 Td (\320)Tj 0.583 -0.09 Td (488, 490, 494, 897,)Tj -10.063 -1.25 Td (930)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (931)Tj /TT0 1 Tf -4.866 -1.25 Td (F_SETLKW)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(82,)-250(486, 488, 490, 897, 931)]TJ /TT0 1 Tf -5.217 -1.25 Td (F_SETOWN)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(82)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (83, 510, 592, 626)Tj 7.083 0.09 Td (\320)Tj 0.583 -0.09 Td (627, 939)Tj /TT0 1 Tf -19.03 -1.25 Td (fsetpos)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(149,)-250(157)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (159, 172, 452)Tj -11.89 -1.25 Td [(de\336nition of,)-500(158)]TJ /TT0 1 Tf -1.35 -1.25 Td (fstat)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(4,)-250(93)]TJ 6.54 0.09 Td (\320)Tj 0.583 -0.09 Td (95, 120, 331, 452, 494, 498,)Tj -7.84 -1.25 Td (518, 529)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (530, 535, 586, 592, 698, 759, 808, 833)Tj -5.516 -1.25 Td [(de\336nition of,)-500(93)]TJ /TT0 1 Tf -1.35 -1.25 Td (fstatat)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(93)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (95, 331, 452)Tj -9.39 -1.25 Td [(de\336nition of,)-500(93)]TJ /TT0 1 Tf -1.35 -1.25 Td (fsync)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(61,)-250(81, 86)]TJ 8.54 0.09 Td (\320)Tj 0.583 -0.09 Td (87, 175, 331, 451, 513,)Tj -9.84 -1.25 Td (517, 528, 592, 787, 913)Tj -1.35 -1.25 Td [(de\336nition of,)-500(81)]TJ /TT0 1 Tf -1.35 -1.25 Td (ftell)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(157)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (159, 452)Tj -8.69 -1.25 Td [(de\336nition of,)-500(158)]TJ /TT0 1 Tf -1.35 -1.25 Td (ftello)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(157)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (159, 452)Tj -9.29 -1.25 Td [(de\336nition of,)-500(158)]TJ /TT0 1 Tf -1.35 -1.25 Td (ftok)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(557)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (558)Tj -8.09 -1.25 Td [(de\336nition of,)-500(557)]TJ /TT0 1 Tf -1.35 -1.25 Td (ftpd)Tj /T1_0 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(472,)-250(928)]TJ /TT0 1 Tf -2.817 -1.25 Td (ftruncate)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(1)55(12, 125, 331, 529)]TJ 11.985 0.09 Td (\320)Tj 0.583 -0.09 Td (530, 592)Tj -17.035 -1.25 Td (de\336nition of,)Tj -0.055 Tc 6.192 0 Td (11)Tj 0 Tc 0.945 0 Td (2)Tj /TT0 1 Tf -8.487 -1.25 Td (ftrylockfile)Tj /T1_0 1 Tf 7.617 0 Td [(function, )-250(443)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (444)Tj -12.89 -1.25 Td [(de\336nition of,)-500(443)]TJ /TT0 1 Tf -1.35 -1.25 Td (fts)Tj /T1_0 1 Tf 2.217 0 Td [(function, )-250(132)]TJ /TT0 1 Tf -2.217 -1.25 Td (ftw)Tj /T1_0 1 Tf 2.217 0 Td [(function, )-250(122,)-250(130)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (135, 141)Tj /TT0 1 Tf -10.84 -1.25 Td ()Tj /T1_0 1 Tf 4.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (0)Tj -8.839 -1.25 Td [(full-duplex pipes,)-500(534)]TJ 1.35 -1.25 Td [(named, )-250(534)]TJ T* [(timing, )-250(565)]TJ -1.35 -1.25 Td [(function pr)18(ototypes, )-250(845)]TJ 11.072 0.09 Td (\320)Tj 0.583 -0.09 Td (893)Tj -11.656 -1.25 Td [(functions, system calls versus,)-500(21)]TJ 14.896 0.09 Td (\320)Tj 0.583 -0.09 Td (23)Tj /TT0 1 Tf -15.48 -1.25 Td (F_UNLCK)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(486)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (487, 489)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (490, 897)Tj /TT0 1 Tf -15.43 -1.25 Td (funlockfile)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(443)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (444)Tj -12.29 -1.25 Td [(de\336nition of,)-500(443)]TJ /TT0 1 Tf -1.35 -1.25 Td (funopen)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(175,)-250(915)]TJ /TT0 1 Tf -4.617 -1.25 Td (futimens)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(125)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (128, 331, 452, 910)Tj -10.49 -1.25 Td [(de\336nition of,)-500(126)]TJ /TT0 1 Tf -1.35 -1.25 Td (fwide)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(144)]TJ -2.067 -1.25 Td [(de\336nition of,)-500(144)]TJ /TT0 1 Tf -1.35 -1.25 Td (fwprintf)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -5.217 -1.25 Td (fwrite)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(150,)-250(156)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (157, 382, 452, 925)Tj -11.29 -1.25 Td [(de\336nition of,)-500(156)]TJ /TT0 1 Tf -1.35 -1.25 Td (F_WRLCK)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(486)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (487, 489)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (490, 494, 897,)Tj -12.73 -1.25 Td (931)Tj /TT0 1 Tf -2.7 -1.25 Td (fwscanf)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(452)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47678 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.3)]TJ 36.622 0 Td (Recor)Tj 0.5 Tc 2.514 0 Td (dL)Tj 0 Tc 1.722 0 Td (ocking)Tj /T1_1 1 Tf 4.975 0 Td (487)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(We )-495(p)]TJ -0.018 Tc 2.549 0 Td (re)Tj 0 Tc 0.856 0 Td [(viously )-311(mentioned )-311(two )-311(types )-311(of )-311(locks: )-311(a )-311(shar)18(ed )-311(r)18(ead )-311(lock )-311(\()]TJ /TT0 1 Tf 28.755 0 Td (l_type)Tj /T1_0 1 Tf 4.161 0 Td (of)Tj /TT0 1 Tf -38.121 -1.2 Td (F_RDLCK)Tj /T1_0 1 Tf 0.2832 Tc (\)a)Tj 0 Tc 5.316 0 Td [(nd )-33(an )-33(exclusive )-33(write )-33(lock )-33(\()]TJ /TT0 1 Tf 12.278 0 Td (F_WRLCK)Tj /T1_0 1 Tf [(\). )-283(The)-283(basic )-33(r)8(ule )-33(is )-33(that )-33(any )-33(number )-33(of)]TJ -17.594 -1.2 Td [(pr)18(ocesses )-16(can )-16(have )-16(a )-16(shar)18(ed )-16(r)18(ead )-16(lock )-16(on )-16(a )-16(given )-16(byte, )-16(but )-16(only )-16(one )-16(pr)24(ocess )-15(can )-15(have )-15(an)]TJ 0 -1.2 TD [(exclusive )-88(write )-88(lock )-88(on )-88(a )-88(given )-88(byte.)-591(Furthermor)18(e, )-88(if )-88(ther)]TJ 0.3384 Tc 26.074 0 Td (ea)Tj -0.018 Tc 1.317 0 Td [(re )-124(o)]TJ 0 Tc 1.74 0 Td [(ne )-88(or )-88(mor)]TJ 0.3384 Tc 4.485 0 Td (er)Tj 0 Tc 1.194 0 Td [(ead )-88(locks)]TJ -34.811 -1.2 Td [(on )-63(a )-63(byte, )-63(ther)]TJ 0.3131 Tc 6.495 0 Td (ec)Tj 0 Tc 1.236 0 Td [(an\325t )-63(be )-63(any )-63(write )-63(locks )-63(on )-63(that )-63(byte; )-63(if )-63(ther)17(e)-313(is)-313(an)-313(exclusive )-63(write )-63(lock)]TJ -7.731 -1.2 Td [(on )-28(a )-28(byte, )-28(ther)]TJ 0.2784 Tc 6.391 0 Td (ec)Tj 0 Tc 1.201 0 Td [(an\325t )-28(be )-28(any )-28(r)18(ead )-28(locks )-28(on )-28(that )-28(byte.)]TJ -0.092 Tc 16.087 0 Td [(We )-212(s)]TJ 0 Tc 2.089 0 Td [(how )-28(this )-28(compatibility )-28(r)7(ule )-28(in)]TJ -25.769 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e1)Tj 0 Tc 1.229 0 Td (4.3.)Tj 7.9995 0 0 7.9995 372.3815 579.3652 Tm (Request for)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3458.25 5754.25 cm 0 0 m 907 0 l S Q Q BT /T1_0 1 Tf -0.018 Tc 7.999 0 0 7.999 352.7497 567.3319 Tm (re)Tj 0 Tc 0.856 0 Td [(ad lock)-1500(write lock)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2921.25 5634.25 cm 0 0 m 1444 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4365.25 5614.25 cm 0 0 m -1444 0 l S Q Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 362.8947 553.3004 Tm [(OK )-3971(OK)]TJ -8.104 0 Td (no locks)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2921.25 5394.25 cm 0 0 m 1444 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 362.8729 531.2725 Tm [(OK )-3200(denied)]TJ -8.104 0 Td [(one or mor)18(e)]TJ -0.018 Tc 0 -1.25 TD (re)Tj 0 Tc 0.856 0 Td (ad locks)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2921.25 5174.25 cm 0 0 m 1444 0 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 356.689 509.2472 Tm [(denied )-2430(denied)]TJ -18.015 2.125 Td [(Region curr)18(ently has)]TJ 10.681 -2.125 Td (one write)Tj T* (lock)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2921.25 4954.25 cm 0 0 m 1444 0 l 1444 800 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3912.25 4954.25 cm 0 0 m 0 800 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3458.25 4954.25 cm 0 0 m 0 800 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3478.25 4954.25 cm 0 0 m 0 800 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2921.25 4954.25 cm 0 0 m 0 680 l S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 226.0906 475.2289 Tm (Figure 14.3)Tj /T1_0 1 Tf 5.695 0 Td [(Compatibility between dif)18(fer)18(ent lock types)]TJ 9.9964 0 0 9.9964 147.5471 447.6388 Tm [(The )-10(compatibility )-10(r)8(ule )-10(applies )-10(to )-10(lock )-10(r)18(equests )-10(made )-10(fr)18(om )-10(dif)18(fer)18(ent )-10(pr)18(ocesses, )-10(not )-10(to)]TJ -1.8 -1.2 Td [(multiple )-78(lock )-78(r)19(equests )-78(made )-78(by )-78(a )-78(single )-78(pr)20(ocess. )-328(If)]TJ 0.3277 Tc 23.393 0 Td (ap)Tj -0.018 Tc 1.429 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-78(has )-78(an )-78(existing )-78(lock )-78(on )-78(a)]TJ -25.745 -1.2 Td [(range )-155(of )-155(a )-155(\336le, )-155(a )-155(subsequent )-155(attempt )-155(to )-155(place )-155(a )-155(lock )-155(on )-155(the )-155(same )-155(range )-155(by )-155(the )-155(same)]TJ 0 -1.2 TD [(pr)18(ocess )-93(will )-93(r)17(eplace )-93(the )-93(existing )-93(lock )-93(with )-93(the )-93(new )-93(one.)-593(Thus, )-93(if )-93(a )-93(pr)18(ocess )-93(has )-93(a )-93(write)]TJ 0 -1.2 Td [(lock )-163(on )-163(bytes )-163(16)]TJ 7.626 0.09 Td (\320)Tj 0.583 -0.09 Td [(32 )-163(of )-163(a )-163(\336le )-163(and )-163(then )-163(tries )-163(to )-163(place )-163(a )-163(r)15(ead )-163(lock )-163(on )-163(bytes )-163(16)]TJ 27.157 0.09 Td (\320)Tj 0.583 -0.09 Td [(32, )-163(the)]TJ -0.018 Tc -35.95 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quest will succeed, and the write lock will be r)18(eplaced by a r)18(ead lock.)]TJ -0.092 Tc 0.944 -1.2 Td [(To )-333(o)]TJ 0 Tc 2.012 0 Td [(btain )-149(a )-149(r)18(ead )-149(lock, )-149(the )-149(descriptor )-149(must )-149(be )-149(open )-149(for )-149(r)18(eading; )-149(to )-149(obtain )-149(a )-149(write)]TJ -3.812 -1.2 Td (lock, the descriptor must be open for writing.)Tj -0.092 Tc 1.8 -1.2 Td [(We )-184(c)]TJ 0 Tc 2.081 0 Td [(an now describe the thr)18(ee commands for the)]TJ /TT0 1 Tf 19.884 0 Td (fcntl)Tj /T1_0 1 Tf 3.25 0 Td (function.)Tj /TT0 1 Tf -27.015 -2.04 Td (F_GETLK)Tj /T1_0 1 Tf 6 0 Td [(Determine )-22(whether )-22(the )-22(lock )-22(described )-22(by)]TJ /T1_2 1 Tf 18.616 0 Td (\337ockptr)Tj /T1_0 1 Tf 3.334 0 Td [(is )-22(blocked )-22(by )-22(some )-22(other)]TJ -21.949 -1.2 Td [(lock. )-479(If)]TJ 0.4789 Tc 3.965 0 Td (al)Tj 0 Tc 1.27 0 Td [(ock )-229(exists )-229(that )-229(would )-229(pr)18(event )-229(ours )-229(fr)18(om )-229(being )-229(cr)19(eated, )-229(the)]TJ -5.235 -1.2 Td [(information )-25(on )-25(that )-25(existing )-25(lock )-25(overwrites )-25(the )-25(information )-25(pointed )-25(to )-25(by)]TJ /T1_2 1 Tf T* (\337ockptr)Tj /T1_0 1 Tf 0.5745 Tc (.I)Tj 0 Tc 4.223 0 Td [(f)-324(no)-324(l)-1(ock )-74(exists )-74(that )-74(would )-74(pr)18(event )-74(ours )-74(fr)18(om )-74(being )-74(cr)18(eated, )-74(the)]TJ -4.223 -1.2 Td [(str)8(uctur)]TJ 0.3967 Tc 3.49 0 Td (ep)Tj 0 Tc 1.477 0 Td [(ointed )-147(to )-147(by)]TJ /T1_2 1 Tf 6.006 0 Td (\337ockptr)Tj /T1_0 1 Tf 3.459 0 Td [(is )-147(left )-147(unchanged )-147(except )-147(for )-147(the)]TJ /TT0 1 Tf 14.969 0 Td (l_type)Tj /T1_0 1 Tf -29.4 -1.2 Td (member)Tj 0.25 Tc 3.598 0 Td (,w)Tj 0 Tc 1.334 0 Td (hich is set to)Tj /TT0 1 Tf 5.715 0 Td (F_UNLCK)Tj /T1_0 1 Tf (.)Tj /TT0 1 Tf -16.647 -1.6 Td (F_SETLK)Tj /T1_0 1 Tf 6 0 Td [(Set )-141(the )-141(lock )-141(described )-141(by)]TJ /T1_2 1 Tf 11.903 0 Td (\337ockptr)Tj /T1_0 1 Tf 0.6406 Tc (.I)Tj 0 Tc 4.29 0 Td [(f)-391(we)-391(a)]TJ -0.018 Tc 2.927 0 Td [(re )-177(t)]TJ 0 Tc 1.573 0 Td [(rying )-141(to )-141(obtain )-141(a )-141(r)18(ead )-141(lock)]TJ -20.692 -1.2 Td (\()Tj /TT0 1 Tf (l_type)Tj /T1_0 1 Tf 4.445 0 Td (of)Tj /TT0 1 Tf 1.391 0 Td (F_RDLCK)Tj /T1_0 1 Tf [(\))-512(or)-512(a)-512(w)1(rite )-261(lock )-261(\()]TJ /TT0 1 Tf 13.027 0 Td (l_type)Tj /T1_0 1 Tf 4.111 0 Td (of)Tj /TT0 1 Tf 1.391 0 Td (F_WRLCK)Tj /T1_0 1 Tf 0.5115 Tc (\)a)Tj 0 Tc 5.544 0 Td [(nd )-261(the)]TJ -29.908 -1.2 Td [(compatibility )-616(r)8(ule )-616(pr)18(events )-616(the )-616(system )-616(fr)16(om )-616(giving )-616(us )-616(the )-616(lock)]TJ T* (\(Figur)Tj 0.6678 Tc 2.716 0 Td (e1)Tj 0 Tc 1.647 0 Td (4.3\),)Tj /TT0 1 Tf 2.501 0 Td (fcntl)Tj /T1_0 1 Tf -0.018 Tc 3.668 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-418(immediately )-418(with)]TJ /TT0 1 Tf 11.956 0 Td (errno)Tj /T1_0 1 Tf 3.668 0 Td [(set )-418(to )-418(either)]TJ /TT0 1 Tf -27.012 -1.2 Td (EACCES)Tj /T1_0 1 Tf 3.85 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (EAGAIN)Tj /T1_0 1 Tf (.)Tj 7.9971 0 0 7.9971 219.522 187.3325 Tm [(Although )-261(POSIX )-261(allows )-261(an )-261(implementation )-261(to )-261(r)18(eturn )-261(either )-261(err)18(or )-261(code, )-261(all )-261(four)]TJ 0 -1.25 TD [(implementations )-88(described )-88(in )-88(this )-88(text )-88(r)17(eturn)]TJ /TT0 1 Tf 20.705 0 Td (EAGAIN)Tj /T1_0 1 Tf 3.938 0 Td [(if )-88(the )-88(locking )-88(r)18(equest )-88(cannot)]TJ -24.643 -1.25 Td (be satis\336ed.)Tj 9.9964 0 0 9.9964 189.8798 146.3473 Tm [(This )-35(command )-35(is )-35(also )-35(used )-35(to )-35(clear )-35(the )-35(lock )-35(described )-35(by)]TJ /T1_2 1 Tf 25.686 0 Td (\337ockptr)Tj /T1_0 1 Tf 3.347 0 Td (\()Tj /TT0 1 Tf (l_type)Tj /T1_0 1 Tf -29.067 -1.2 Td (of)Tj /TT0 1 Tf 1.129 0 Td (F_UNLCK)Tj /T1_0 1 Tf (\).)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47679 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 34.357 0 Td [(Chapter )-250(5)-750(Solutions)]TJ /T1_1 1 Tf 11.476 0 Td (915)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 198.8081 670.2598 Tm (ms->vsize = size;)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (fp = funopen\(ms, mstream_read, mstream_write,)Tj 1.2 -1.189 Td (mstream_seek, mstream_close\);)Tj -1.2 -1.189 Td (if \(fp == NULL\) {)Tj 2.4 -1.189 Td (if \(ms->flags & MS_MYBUF\))Tj 2.4 -1.189 Td (free\(ms->buf\);)Tj -2.4 -1.189 Td (free\(ms\);)Tj -2.4 -1.189 Td (})Tj T* (return\(fp\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (static int)Tj 0 -1.189 TD (type_to_flags\(const char *__restrict type\))Tj T* ({)Tj 2.4 -1.189 Td (const char *cp;)Tj T* (int flags = 0;)Tj 0 -1.902 TD (for \(cp = type; *cp != 0; cp++\) {)Tj 2.4 -1.189 Td (switch \(*cp\) {)Tj 0 -1.189 TD (case \325r\325:)Tj 2.4 -1.189 Td (if \(flags != 0\))Tj 2.4 -1.189 Td [(return\(0\); )-600(/*)-600(error */)]TJ -2.4 -1.189 Td (flags |= MS_READ;)Tj 0 -1.189 TD (break;)Tj -2.4 -1.902 Td (case \325w\325:)Tj 2.4 -1.189 Td (if \(flags != 0\))Tj 2.4 -1.189 Td [(return\(0\); )-600(/*)-600(error */)]TJ -2.4 -1.189 Td (flags |= MS_WRITE|MS_TRUNCATE;)Tj T* (break;)Tj -2.4 -1.902 Td (case \325a\325:)Tj 2.4 -1.189 Td (if \(flags != 0\))Tj 2.4 -1.189 Td [(return\(0\); )-600(/*)-600(error */)]TJ -2.4 -1.189 Td (flags |= MS_APPEND;)Tj T* (break;)Tj -2.4 -1.902 Td (case \325+\325:)Tj 2.4 -1.189 Td (if \(flags == 0\))Tj 2.4 -1.189 Td [(return\(0\); )-600(/*)-600(error */)]TJ -2.4 -1.189 Td (flags |= MS_READ|MS_WRITE;)Tj T* (break;)Tj -2.4 -1.902 Td (case \325b\325:)Tj 2.4 -1.189 Td (if \(flags == 0\))Tj 2.4 -1.189 Td [(return\(0\); )-600(/*)-600(error */)]TJ -2.4 -1.189 Td (break;)Tj -2.4 -1.902 Td (default:)Tj 2.4 -1.189 Td [(return\(0\); )-3000(/*)-600(error */)]TJ -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47680 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (488)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm (F_SETLKW)Tj /T1_1 1 Tf 6 0 Td [(This )-36(command )-36(is )-36(a )-36(blocking )-36(version )-36(of)]TJ /TT0 1 Tf 17.555 0 Td (F_SETLK)Tj /T1_1 1 Tf 0.5358 Tc (.\()Tj 0 Tc 5.319 0 Td (The)Tj /TT0 1 Tf 1.96 0 Td (W)Tj /T1_1 1 Tf 0.886 0 Td [(in )-36(the )-36(command)]TJ -25.72 -1.2 Td [(name )-230(means)]TJ /T1_2 1 Tf 6.273 0 Td (wait)Tj /T1_1 1 Tf [(.\) )-480(If)-481(the )-230(r)18(equested )-230(r)17(ead )-230(lock )-230(or )-230(write )-230(lock )-230(cannot )-230(be)]TJ -6.273 -1.2 Td [(granted )-55(because )-55(another )-55(pr)18(ocess )-55(curr)18(ently )-55(has )-55(some )-55(part )-55(of )-55(the )-55(r)21(equested)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(gion )-125(locked, )-125(the )-125(calling )-125(pr)18(ocess )-125(is )-125(put )-125(to )-125(sleep.)-623(The )-125(pr)18(ocess )-125(wakes )-125(up)]TJ -0.856 -1.2 Td [(either when the lock becomes available or when interr)8(upted by a signal.)]TJ -4.2 -2.16 Td [(Be )-100(awar)]TJ 0.35 Tc 3.651 0 Td (et)Tj 0 Tc 1.155 0 Td [(hat )-100(testing )-100(for )-100(a )-100(lock )-100(with)]TJ /TT0 1 Tf 12.136 0 Td (F_GETLK)Tj /T1_1 1 Tf 4.55 0 Td [(and )-100(then )-100(trying )-100(to )-100(obtain )-100(that )-100(lock)]TJ -23.292 -1.2 Td (with)Tj /TT0 1 Tf 2.416 0 Td (F_SETLK)Tj /T1_1 1 Tf 4.583 0 Td (or)Tj /TT0 1 Tf 1.324 0 Td (F_SETLKW)Tj /T1_1 1 Tf 5.183 0 Td [(is )-133(not )-133(an )-133(atomic )-133(operation.)]TJ -0.092 Tc 12.92 0 Td [(We )-317(h)]TJ 0 Tc 2.352 0 Td [(ave )-133(no )-133(guarantee )-133(that,)]TJ -28.776 -1.2 Td [(between )-112(the )-112(two)]TJ /TT0 1 Tf 7.91 0 Td (fcntl)Tj /T1_1 1 Tf 3.362 0 Td [(calls, )-112(some )-112(other )-112(pr)18(ocess )-112(won\325t )-112(come )-112(in )-112(and )-112(obtain )-112(the )-112(same)]TJ -11.272 -1.2 Td [(lock. )-334(If)-334(we )-84(don\325t )-84(want )-84(to )-84(block )-84(while )-84(waiting )-84(for )-84(a )-84(lock )-84(to )-84(become )-84(available )-84(to )-84(us, )-84(we)]TJ T* [(must handle the possible err)18(or r)18(eturns fr)18(om)]TJ /TT0 1 Tf 19.544 0 Td (F_SETLK)Tj /T1_1 1 Tf (.)Tj 7.9995 0 0 7.9995 183.5888 531.3681 Tm [(Note )-25(that )-25(POSIX.1 )-25(doesn\325t )-25(specify )-25(what )-25(happens )-25(when )-25(one )-25(pr)14(ocess )-25(r)18(ead )-25(locks )-25(a )-25(range )-25(of )-25(a )-25(\336le,)]TJ 0.4873 Tc 0 -1.25 TD (as)Tj 0 Tc 1.411 0 Td [(econd )-237(pr)18(ocess )-237(blocks )-237(while )-237(trying )-237(to )-237(get )-237(a )-237(write )-237(lock )-237(on )-237(the )-237(same )-237(range, )-237(and )-237(a )-237(thir)14(d)]TJ -1.411 -1.25 Td [(pr)18(ocesses )-4(then )-4(attempts )-4(to )-4(get )-4(another )-4(r)18(ead )-4(lock )-4(on )-4(the )-4(range.)-504(If )-4(the )-4(thir)]TJ 0.2539 Tc 31.939 0 Td (dp)Tj -0.018 Tc 1.466 0 Td (ro)Tj 0 Tc 0.923 0 Td [(cess )-4(is )-4(allowed )-4(to)]TJ -34.328 -1.25 Td [(place )-303(a )-303(r)18(ead )-303(lock )-303(on )-303(the )-303(range )-303(just )-303(because )-303(the )-303(range )-303(is )-303(alr)12(eady )-304(r)18(ead )-304(locked, )-304(then )-304(the)]TJ T* [(implementation )-21(might )-21(starve )-21(pr)18(ocesses )-21(with )-21(pending )-21(write )-21(locks.)-521(Thus, )-21(as )-21(additional )-21(r)22(equests)]TJ T* [(to )-208(r)18(ead )-208(lock )-208(the )-208(same )-208(range )-208(arrive, )-208(the )-208(time )-208(that )-208(the )-208(pr)22(ocess )-208(with )-208(the )-208(pending )-208(write-lock)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(quest )-50(has )-50(to )-50(wait )-50(is )-50(extended.)-550(If )-50(the )-50(r)17(ead)]TJ 18.444 0.09 Td (-)Tj 0.333 -0.09 Td [(lock )-50(r)18(equests )-50(arrive )-50(quickly )-50(enough )-50(without )-50(a )-50(lull)]TJ -19.633 -1.25 Td (in the arrival rate, then the writer could wait for a long time.)Tj 9.9994 0 0 9.9994 147.5905 440.3736 Tm [(When )-136(setting )-136(or )-136(r)17(eleasing )-136(a )-136(lock )-136(on )-136(a )-136(\336le, )-136(the )-136(system )-136(combines )-136(or )-136(splits )-136(adjacent)]TJ -1.8 -1.2 Td [(ar)18(eas )-66(as )-66(r)18(equir)18(ed. )-316(For)-316(example, )-66(if )-66(we )-66(lock )-66(bytes )-66(100 )-66(thr)17(ough )-66(199 )-66(and )-66(then )-66(unlock )-66(byte)]TJ 0 -1.2 Td [(150, )-36(the )-36(kernel )-36(still )-36(maintains )-36(the )-36(locks )-36(on )-36(bytes )-36(100 )-36(thr)18(ough )-36(149 )-36(and )-36(bytes )-36(151 )-36(thr)18(ough)]TJ 0 -1.2 TD [(199. )-250(Figur)]TJ 0.25 Tc 4.633 0 Td (e1)Tj 0 Tc 1.229 0 Td (4.4 illustrates the byte-range locks in this situation.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 3824.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2454.25 3824.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2526.25 3824.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2598.25 3824.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 3824.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2742.25 3824.25 cm 0 0 m 36 0 l S Q Q q 0.99988 0 0 0.99988 0 0 cm 0.699 g 277.8 346.4 93.6 36 re f Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2778 3464 936 360 re S Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 301.7897 362.5747 Tm (locked range)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3714.25 3824.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 3824.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3858.25 3824.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3930.25 3824.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4002.25 3824.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4074.25 3824.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 3759.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 3694.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 3629.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 3565.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 3500.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4038.25 3464.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3966.25 3464.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3894.25 3464.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 3464.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 3464.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 3464.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3464.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2634.25 3464.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2562.25 3464.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2490.25 3464.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2418.25 3464.25 cm 0 0 m -36 0 l -36 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 3529.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 3593.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 3658.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 3723.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 3788.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2814.25 3428.25 cm 0 0 m 0 -72 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 275.3339 326.5616 Tm (100)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3678.25 3428.25 cm 0 0 m 0 -72 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 361.6915 326.542 Tm (199)Tj -13.313 -2.25 Td [(File after locking bytes 100 thr)18(ough 199)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2850.25 3824.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2850.25 3759.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2850.25 3694.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2850.25 3629.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2850.25 3565.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2850.25 3500.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 3824.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 3759.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 3694.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 3629.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 3565.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 3500.25 cm 0 0 m 0 -36 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2816.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2454.25 2816.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2526.25 2816.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2598.25 2816.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 2816.25 cm 0 0 m 36 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2742.25 2816.25 cm 0 0 m 36 0 l S Q Q q 0.9996401 0 0 0.9996401 0 0 cm 0.699 g 277.8 245.6 43.2 36 re f Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2778 2456 432 360 re S Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 292.2772 271.7258 Tm (\336rst)Tj -0.588 -1.25 Td (locked)Tj 0.207 -1.25 Td (range)Tj ET q 0.9995801 0 0 0.9995801 0 0 cm 0.699 g 328.2 245.6 43.2 36 re f Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 3282 2456 432 360 re S Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 337.2941 271.7095 Tm (second)Tj 0.08 -1.25 Td (locked)Tj 0.207 -1.25 Td (range)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3714.25 2816.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 2816.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3858.25 2816.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3930.25 2816.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4002.25 2816.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4074.25 2816.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2751.25 cm 0 0 m 0 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2686.25 cm 0 0 m 0 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2621.25 cm 0 0 m 0 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2557.25 cm 0 0 m 0 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2492.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4038.25 2456.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3966.25 2456.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3894.25 2456.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 2456.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3750.25 2456.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3210.25 2456.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3270.25 2456.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3330.25 2456.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3390.25 2456.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3210.25 2816.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3270.25 2816.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3330.25 2816.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3390.25 2816.25 cm 0 0 m 36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2778.25 2456.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 2456.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2634.25 2456.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2562.25 2456.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2490.25 2456.25 cm 0 0 m -36 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2418.25 2456.25 cm 0 0 m -36 0 l -36 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2521.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2585.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2650.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2715.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2780.25 cm 0 0 m 0 36 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2814.25 2420.25 cm 0 0 m 0 -72 l S Q Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 275.2513 225.7181 Tm (100)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3174.25 2420.25 cm 0 0 m 0 -72 l S Q Q BT /T1_1 1 Tf 7.9952 0 0 7.9952 311.2132 225.7045 Tm (149)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3318.25 2420.25 cm 0 0 m 0 -72 l S Q Q BT /T1_1 1 Tf 7.9947 0 0 7.9947 325.585 225.691 Tm (151)Tj ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3678.25 2420.25 cm 0 0 m 0 -72 l S Q Q BT /T1_1 1 Tf 7.9942 0 0 7.9942 361.5396 225.6774 Tm (199)Tj -10.908 -2.25 Td (File after unlocking byte 150)Tj ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2850.25 2816.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2850.25 2751.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2850.25 2686.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2850.25 2621.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2850.25 2557.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2850.25 2492.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 2816.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 2751.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 2686.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 2621.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 2557.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 2492.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 2816.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 2751.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 2686.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 2621.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 2557.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3354.25 2492.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 2816.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 2751.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 2686.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 2621.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 2557.25 cm 0 0 m 0 -36 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3642.25 2492.25 cm 0 0 m 0 -36 l S Q Q BT /T1_0 1 Tf 7.9938 0 0 7.9938 250.8283 184.2562 Tm (Figure 14.4)Tj /T1_1 1 Tf 5.695 0 Td (File byte-range lock diagram)Tj 9.9922 0 0 9.9922 147.4851 156.6777 Tm [(If )-68(we )-68(wer)17(e)-318(to)-318(l)-1(ock )-68(byte )-68(150, )-68(the )-68(system )-68(would )-68(coalesce )-68(the )-68(adjacent )-68(locked )-68(r)13(egions)]TJ -1.8 -1.2 Td [(into )-43(a )-43(single )-43(r)18(egion )-43(fr)18(om )-43(byte )-43(100 )-43(thr)18(ough )-43(199.)-543(The )-43(r)18(esulting )-43(pictur)]TJ 0.2932 Tc 30.294 0 Td (ew)Tj 0 Tc 1.606 0 Td [(ould )-43(be )-43(the )-43(\336rst)]TJ -31.9 -1.2 Td (diagram in Figur)Tj 0.25 Tc 7.492 0 Td (e1)Tj 0 Tc 1.229 0 Td (4.4, the same as when we started.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47681 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(C)]TJ 34.357 0 Td [(Chapter )-250(5)-750(Solutions)]TJ /T1_1 1 Tf 11.476 0 Td (917)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 177.2094 670.2598 Tm (if \(ms->curpos > ms->vsize\) {)Tj 2.4 -1.189 Td (ms->vsize = ms->curpos;)Tj 0 -1.189 TD (if \(\(\(ms->flags & \(MS_READ|MS_WRITE\)\) ==)Tj 1.2 -1.189 Td (\(MS_READ|MS_WRITE\)\) && \(ms->vsize < ms->rsize\)\))Tj 1.2 -1.189 Td (*\(ms->buf + ms->vsize\) = 0;)Tj -4.8 -1.189 Td (})Tj T* (if \(\(ms->flags & \(MS_WRITE|MS_APPEND\)\) &&)Tj 1.2 -1.189 Td (!\(ms->flags & MS_READ\)\) {)Tj 1.2 -1.189 Td (if \(ms->curpos < ms->rsize\))Tj 2.4 -1.189 Td (*\(ms->buf + ms->curpos\) = 0;)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (*\(ms->buf + ms->rsize - 1\) = 0;)Tj -4.8 -1.189 Td (})Tj T* (return\(nw\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (static fpos_t)Tj 0 -1.189 TD (mstream_seek\(void *cookie, fpos_t pos, int whence\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (int off;)Tj T* (struct memstream *ms = cookie;)Tj 0 -1.902 TD (switch \(whence\) {)Tj 0 -1.189 TD (case SEEK_SET:)Tj 2.4 -1.189 Td (off = pos;)Tj T* (break;)Tj -2.4 -1.189 Td (case SEEK_END:)Tj 2.4 -1.189 Td (off = ms->vsize + pos;)Tj T* (break;)Tj -2.4 -1.189 Td (case SEEK_CUR:)Tj 2.4 -1.189 Td (off = ms->curpos + pos;)Tj T* (break;)Tj -2.4 -1.189 Td (})Tj T* (if \(off < 0 || off > ms->vsize\) {)Tj 2.4 -1.189 Td (errno = EINVAL;)Tj T* (return -1;)Tj -2.4 -1.189 Td (})Tj T* (ms->curpos = off;)Tj 0 -1.189 TD (return\(off\);)Tj -2.4 -1.189 Td (})Tj 0 -1.902 TD (static int)Tj 0 -1.189 TD (mstream_close\(void *cookie\))Tj T* ({)Tj 2.4 -1.189 Td (struct memstream *ms = cookie;)Tj 0 -1.902 TD (if \(ms->flags & MS_MYBUF\))Tj 2.4 -1.189 Td (free\(ms->buf\);)Tj -2.4 -1.189 Td (free\(ms\);)Tj 0 -1.189 TD (return\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1556.25 1476.25 cm 0 0 m 50 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1596.25 1476.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 232.974 134.0029 Tm (Figure C.4)Tj /T1_0 1 Tf 5.417 0 Td (Implementation of)Tj /TT0 1 Tf 8.485 0 Td (fmemopen)Tj /T1_0 1 Tf 5.05 0 Td (for BSD systems)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47682 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (964)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (F_FREESP)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(1)55(12)]TJ /TT0 1 Tf -5.217 -1.25 Td (fgetc)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(150)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (151, 154)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (155, 452)Tj -12.857 -1.25 Td [(de\336nition of,)-500(150)]TJ /TT0 1 Tf -1.35 -1.25 Td (F_GETFD)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(82)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (83, 480, 592)Tj /TT0 1 Tf -10.763 -1.25 Td (F_GETFL)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(82)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (85, 592)Tj /TT0 1 Tf -10.763 -1.25 Td (F_GETLK)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(82,)-250(486)]TJ 7.563 0.09 Td (\320)Tj 0.583 -0.09 Td (490)Tj /TT0 1 Tf -12.763 -1.25 Td (F_GETOWN)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(82)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (83, 592, 626)Tj /TT0 1 Tf -11.363 -1.25 Td (fgetpos)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(157)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (159, 452)Tj -9.89 -1.25 Td [(de\336nition of,)-500(158)]TJ /TT0 1 Tf -1.35 -1.25 Td (fgets)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(10,)-250(12, 19, 150, 152)]TJ 12.54 0.09 Td (\320)Tj 0.583 -0.09 Td (156, 168,)Tj -13.84 -1.25 Td (174)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (175, 214, 216, 452, 538, 543, 548,)Tj -2.167 -1.25 Td (550)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(552, 616, 622, 654, 738, 753, 803, 845, 91)55(1,)]TJ -2.167 -1.25 Td (913, 936)Tj -1.35 -1.25 Td [(de\336nition of,)-500(152)]TJ /TT0 1 Tf -1.35 -1.25 Td (fgetwc)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -4.017 -1.25 Td (fgetws)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(452)]TJ -4.017 -1.25 Td [(FIFOs, )-250(95,)-250(534, 552)]TJ 8.492 0.09 Td (\320)Tj 0.583 -0.09 Td (556)Tj -9.075 -1.25 Td (\336le)Tj 1.35 -1.25 Td [(access permissions,)-500(99)]TJ 10.138 0.09 Td (\320)Tj 0.583 -0.09 Td (101, 140)Tj -10.721 -1.25 Td [(block special,)-500(95, 138)]TJ 9.503 0.09 Td (\320)Tj 0.583 -0.09 Td (139)Tj -10.087 -1.25 Td [(character special,)-500(95, 138)]TJ 11.178 0.09 Td (\320)Tj 0.583 -0.09 Td (139, 699)Tj -11.762 -1.25 Td [(descriptor passing,)-500(587, 642)]TJ 12.473 0.09 Td (\320)Tj 0.583 -0.09 Td (652)Tj -13.057 -1.25 Td [(descriptors, )-250(8)]TJ 6.269 0.09 Td (\320)Tj 0.583 -0.09 Td (10, 61)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (62)Tj -10.019 -1.25 Td [(device special,)-500(137)]TJ 8.482 0.09 Td (\320)Tj 0.583 -0.09 Td (139)Tj -9.066 -1.25 Td [(dir)18(ectory)]TJ 0.5 Tc 3.914 0 Td (,9)Tj 0 Tc 1.25 0 Td (5)Tj -5.164 -1.25 Td [(gr)18(oup, )-250(182)]TJ 5.016 0.09 Td (\320)Tj 0.583 -0.09 Td (183)Tj -5.6 -1.25 Td [(holes, )-250(68)]TJ 4.155 0.09 Td (\320)Tj 0.583 -0.09 Td (69, 1)Tj -0.055 Tc 1.945 0 Td (11)Tj 0 Tc 1.028 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (2)Tj -9.24 -1.25 Td [(mode cr)18(eation mask,)-500(104)]TJ 11.26 0.09 Td (\320)Tj 0.583 -0.09 Td (105, 129, 141, 169,)Tj -10.493 -1.25 Td (233, 252, 466)Tj -1.35 -1.25 Td [(of)18(fset, )-250(66)]TJ 4.256 0.09 Td (\320)Tj 0.583 -0.09 Td (68, 74, 77)Tj 4.083 0.09 Td (\320)Tj 0.583 -0.09 Td (78, 80, 231)Tj 4.583 0.09 Td (\320)Tj 0.583 -0.09 Td (232, 494, 522,)Tj -13.323 -1.25 Td (747)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (748, 908)Tj -3.517 -1.25 Td [(ownership, )-250(101)]TJ 7.067 0.09 Td (\320)Tj 0.583 -0.09 Td (102)Tj -7.65 -1.25 Td (pointer)Tj 0.5 Tc 3.146 0 Td (,1)Tj 0 Tc 1.25 0 Td (44)Tj -0.018 Tc -4.396 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (gular)Tj 0.5 Tc 2.271 0 Td (,9)Tj 0 Tc 1.25 0 Td (5)Tj -4.377 -1.25 Td [(sharing, )-250(74)]TJ 5.163 0.09 Td (\320)Tj 0.583 -0.09 Td (77, 231)Tj -5.746 -1.25 Td [(size, )-250(1)]TJ -0.055 Tc 2.889 0 Td (11)Tj 0 Tc 1.028 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (2)Tj -5.446 -1.25 Td [(times, )-250(124)]TJ 4.736 0.09 Td (\320)Tj 0.583 -0.09 Td (125, 532)Tj -5.319 -1.25 Td [(tr)8(uncation, )-250(1)55(12)]TJ 0 -1.25 TD [(types, )-250(95)]TJ 4.219 0.09 Td (\320)Tj 0.583 -0.09 Td (98)Tj /TT0 1 Tf -6.152 -1.25 Td (FILE)Tj /T1_1 1 Tf 2.817 0 Td [(str)8(uctur)18(e, )-250(131,)-250(143)]TJ 8.302 0.09 Td (\320)Tj 0.583 -0.09 Td (144, 151, 164, 168,)Tj -9.002 -1.25 Td (171)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (172, 220, 235, 273, 443)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (444, 538,)Tj -12.333 -1.25 Td (542)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (543, 545, 547, 622, 701, 754, 803, 914, 929)Tj -4.866 -1.25 Td [(\336le system,)-500(4, 1)55(13)]TJ 7.995 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (6)Tj /TT0 1 Tf -8.174 -1.25 Td (devtmpfs)Tj /T1_1 1 Tf 0.5 Tc 4.967 0 Td (,1)Tj 0 Tc 1.25 0 Td (39)Tj /TT0 1 Tf -6.217 -1.25 Td (ext2)Tj /T1_1 1 Tf 0.5 Tc 2.567 0 Td (,1)Tj 0 Tc 1.25 0 Td (29)Tj /TT0 1 Tf -3.817 -1.25 Td (ext3)Tj /T1_1 1 Tf 0.5 Tc 2.567 0 Td (,1)Tj 0 Tc 1.25 0 Td (29)Tj /TT0 1 Tf -3.817 -1.25 Td (ext4)Tj /T1_1 1 Tf 0.5 Tc 2.567 0 Td (,7)Tj 0 Tc 1.25 0 Td (3, 86, 129, 465)Tj /TT0 1 Tf -3.817 -1.25 Td (HFS)Tj /T1_1 1 Tf 0.5 Tc 1.967 0 Td (,8)Tj 0 Tc 1.25 0 Td [(7, 1)55(13, 1)55(16)]TJ /TT0 1 Tf -3.217 -1.25 Td (HSFS)Tj /T1_1 1 Tf 0.5 Tc 2.567 0 Td (,1)Tj 0 Tc 1.195 0 Td (13)Tj /TT0 1 Tf -3.762 -1.25 Td (PCFS)Tj /T1_1 1 Tf 0.5 Tc 2.567 0 Td (,4)Tj 0 Tc 1.25 0 Td [(9, 57, 1)55(13)]TJ /TT0 1 Tf -3.817 -1.25 Td (S5)Tj /T1_1 1 Tf 0.5 Tc 1.367 0 Td (,6)Tj 0 Tc 1.25 0 Td (5)Tj /TT0 1 Tf -2.617 -1.25 Td (UFS)Tj /T1_1 1 Tf 0.5 Tc 1.967 0 Td (,4)Tj 0 Tc 1.25 0 Td [(9, 57, 65, 1)55(13, 1)55(16, 129)]TJ -4.567 -1.25 Td [(\336lename, )-250(4)]TJ 27.35 65 Td [(tr)8(uncation, )-250(65)]TJ 6.42 0.09 Td (\320)Tj 0.583 -0.09 Td (66)Tj /TT0 1 Tf -8.353 -1.25 Td (FILENAME_MAX)Tj /T1_1 1 Tf 7.617 0 Td [(constant, )-250(38)]TJ /TT0 1 Tf -7.617 -1.25 Td (fileno)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(164,)-250(545, 701, 913)]TJ -2.667 -1.25 Td [(de\336nition of,)-500(164)]TJ /TT0 1 Tf -1.35 -1.25 Td (_FILE_OFFSET_BITS)Tj /T1_1 1 Tf 10.617 0 Td [(constant, )-250(70)]TJ /TT0 1 Tf -10.617 -1.25 Td (FILEPERM)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(800,)-250(825)]TJ -5.217 -1.25 Td [(\336les and dir)18(ectories, )-250(4)]TJ 9.988 0.09 Td (\320)Tj 0.583 -0.09 Td (8)Tj /TT0 1 Tf -10.571 -1.25 Td (FILESIZEBITS)Tj /T1_1 1 Tf 7.617 0 Td [(constant, )-250(39,)-250(44, 49)]TJ /TT0 1 Tf -7.617 -1.25 Td (find)Tj /T1_1 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(124,)-250(135, 252)]TJ /TT0 1 Tf -2.817 -1.25 Td (finger)Tj /T1_1 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(141,)-250(179, 910)]TJ /TT0 1 Tf -4.017 -1.25 Td (FIOASYNC)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(627,)-250(939)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (940)Tj /TT0 1 Tf -13.863 -1.25 Td (FIOSETOWN)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(627)]TJ -5.817 -1.25 Td [(FIPS, )-250(32)]TJ 3.855 0.09 Td (\320)Tj 0.583 -0.09 Td (33)Tj -4.439 -1.25 Td [(Flandr)18(ena, B.,)-500(229, 952)]TJ /TT0 1 Tf T* ()Tj /T1_1 1 Tf 5.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7, 38)Tj /TT0 1 Tf -10.039 -1.25 Td (flock)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(485)]TJ /TT0 1 Tf -3.417 -1.25 Td (flock)Tj /T1_1 1 Tf 3.417 0 Td [(str)8(uctur)18(e, )-250(486,)-250(489)]TJ 8.302 0.09 Td (\320)Tj 0.583 -0.09 Td (490, 494)Tj /TT0 1 Tf -12.302 -1.25 Td (flockfile)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(443)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (444)Tj -11.09 -1.25 Td [(de\336nition of,)-500(443)]TJ /TT0 1 Tf -1.35 -1.25 Td (FLUSHO)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(676,)-250(680, 687)]TJ /TT0 1 Tf -4.017 -1.25 Td (fmemopen)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(171)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (175, 913)Tj -10.49 -1.25 Td [(de\336nition of,)-500(171)]TJ /TT0 1 Tf -1.35 -1.25 Td (fmtmsg)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(21)55(1, 452)]TJ /TT0 1 Tf -4.017 -1.25 Td ()Tj /T1_1 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (0)Tj /TT0 1 Tf -10.639 -1.25 Td (FNDELAY)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(482)]TJ /TT0 1 Tf -4.617 -1.25 Td ()Tj /T1_1 1 Tf 7.017 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj /TT0 1 Tf -11.239 -1.25 Td (F_OK)Tj /T1_1 1 Tf 2.817 0 Td [(constant, )-250(102)]TJ /TT0 1 Tf -2.817 -1.25 Td (follow_link)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(48)]TJ /TT0 1 Tf -7.017 -1.25 Td (fopen)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(6,)-250(144, 148)]TJ 9.04 0.09 Td (\320)Tj 0.583 -0.09 Td (150, 165, 220, 273,)Tj -10.34 -1.25 Td (452, 538)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (539, 542, 701, 803, 929)Tj -5.516 -1.25 Td [(de\336nition of,)-500(148)]TJ /TT0 1 Tf -1.35 -1.25 Td (FOPEN_MAX)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(38,)-250(43)]TJ -5.817 -1.25 Td [(for)18(egr)18(ound pr)18(ocess gr)18(oup, )-250(296,)-250(298, 300)]TJ 17.821 0.09 Td (\320)Tj 0.583 -0.09 Td (303, 306,)Tj -15.705 -1.25 Td [(31)55(1, 318)]TJ 3.528 0.09 Td (\320)Tj 0.583 -0.09 Td (322, 369, 377, 680)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (682, 685, 689, 710,)Tj -12.278 -1.25 Td (719, 741, 944)Tj -2.7 -1.25 Td [(for)18(egr)18(ound pr)18(ocess gr)18(oup ID,)-500(298, 303, 677)]TJ /TT0 1 Tf T* (fork)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(1)55(1)]TJ 5.485 0.09 Td (\320)Tj 0.583 -0.09 Td (13, 19, 23, 77, 228)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (237,)Tj -14.352 -1.25 Td (241)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (243, 245)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (249, 254, 260)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (261, 264)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (266,)Tj -16.666 -1.25 Td (269)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (272, 274)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (275, 277, 282, 286, 288,)Tj -6.333 -1.25 Td (290)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (292, 294, 296, 304, 307)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (308, 312, 326,)Tj -12.333 -1.25 Td (331, 334, 370)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (372, 381, 457)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (462, 466)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (469,)Tj -16.5 -1.25 Td (471, 479, 491)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (493, 498)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (500, 527, 533)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (539,)Tj -16.5 -1.25 Td (541, 544, 546, 550, 557, 565, 577, 585, 588,)Tj T* (618)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (619, 642, 653)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (655, 658)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (659, 669)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (670,)Tj -16.666 -1.25 Td (716, 721, 723)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (724, 726)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (728, 732, 739, 781,)Tj -10.333 -1.25 Td (922)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (923, 927)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (928, 930)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (931, 934, 937, 939, 948)Tj -11.85 -1.25 Td [(de\336nition of,)-500(229)]TJ /TT0 1 Tf -1.35 -1.25 Td (fork1)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(229)]TJ /TT0 1 Tf -3.417 -1.25 Td (forkall)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(229)]TJ -4.617 -1.25 Td [(Fowler)74(,)-250(G.)-250(S., )-250(135,)-250(949, 953)]TJ /TT0 1 Tf T* (fpathconf)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(37,)-250(39, 41)]TJ 8.54 0.09 Td (\320)Tj 0.583 -0.09 Td (48, 53)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (55, 65,)Tj -0.055 Tc -15.407 -1.25 Td (11)Tj 0 Tc 0.945 0 Td (0, 452, 537, 679)Tj -2.295 -1.25 Td [(de\336nition of,)-500(42)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47683 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (914)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 155.6107 670.2598 Tm (static int type_to_flags\(const char *__restrict type\);)Tj 0 -1.189 TD (static off_t find_end\(char *buf, size_t len\);)Tj 0 -1.902 TD (FILE *)Tj 0 -1.189 TD (fmemopen\(void *__restrict buf, size_t size,)Tj 2.4 -1.189 Td (const char *__restrict type\))Tj -2.4 -1.189 Td ({)Tj 2.4 -1.189 Td (struct memstream *ms;)Tj 0 -1.189 TD (FILE *fp;)Tj 0 -1.902 TD (if \(size == 0\) {)Tj 2.4 -1.189 Td (errno = EINVAL;)Tj 0 -1.189 TD (return\(NULL\);)Tj -2.4 -1.189 Td (})Tj T* (if \(\(ms = malloc\(sizeof\(struct memstream\)\)\) == NULL\) {)Tj 2.4 -1.189 Td (errno = ENOMEM;)Tj T* (return\(NULL\);)Tj -2.4 -1.189 Td (})Tj T* (if \(\(ms->flags = type_to_flags\(type\)\) == 0\) {)Tj 2.4 -1.189 Td (errno = EINVAL;)Tj 0 -1.189 TD (free\(ms\);)Tj 0 -1.189 TD (return\(NULL\);)Tj -2.4 -1.189 Td (})Tj T* (if \(buf == NULL\) {)Tj 2.4 -1.189 Td (if \(\(ms->flags & \(MS_READ|MS_WRITE\)\) !=)Tj 1.2 -1.189 Td (\(MS_READ|MS_WRITE\)\) {)Tj 1.2 -1.189 Td (errno = EINVAL;)Tj T* (free\(ms\);)Tj T* (return\(NULL\);)Tj -2.4 -1.189 Td (})Tj T* (if \(\(ms->buf = malloc\(size\)\) == NULL\) {)Tj 2.4 -1.189 Td (errno = ENOMEM;)Tj T* (free\(ms\);)Tj T* (return\(NULL\);)Tj -2.4 -1.189 Td (})Tj T* (ms->rsize = size;)Tj T* (ms->flags |= MS_MYBUF;)Tj T* (ms->curpos = 0;)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 0.6 -1.189 Td (ms->buf = buf;)Tj T* (ms->rsize = size;)Tj T* (if \(ms->flags & MS_APPEND\))Tj 2.4 -1.189 Td (ms->curpos = find_end\(ms->buf, ms->rsize\);)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (ms->curpos = 0;)Tj -4.8 -1.189 Td (})Tj T* (if \(ms->flags & MS_APPEND\) {)Tj 24 0 Td (/* "a" mode */)Tj -21.6 -1.189 Td (ms->vsize = ms->curpos;)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td [(lse if \(ms->flags & MS_TRUNCATE\) {)-1800(/* "w" mode */)]TJ 0.6 -1.189 Td (ms->vsize = 0;)Tj 0.6 Tc -2.4 -1.189 Td (}e)Tj 0 Tc 1.8 0 Td (lse {)Tj 22.2 0 Td (/* "r" mode */)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47684 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (754)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 1.8 Tc 8.9995 0 0 8.9995 134.9919 659.4594 Tm (1#)Tj 0 Tc 3 0 Td (ifndef _APUE_DB_H)Tj 1.8 Tc -3 -1.189 Td (2#)Tj 0 Tc 3 0 Td (define _APUE_DB_H)Tj 1.8 Tc -3 -2.259 Td (3t)Tj 0 Tc 3 0 Td [(ypedef )-1800(void)]TJ 1.2 Tc 9 0 Td (*D)Tj 0 Tc 2.4 0 Td (BHANDLE;)Tj 1.8 Tc -14.4 -2.259 Td (4D)Tj 0 Tc 3 0 Td [(BHANDLE )-600(db_open\(const)-600(char *, int, ...\);)]TJ 1.8 Tc -3 -1.189 Td (5v)Tj 0 Tc 3 0 Td [(oid )-3000(db_close\(DBHANDLE\);)]TJ 1.8 Tc -3 -1.189 Td (6c)Tj 0 Tc 3 0 Td [(har )-2400(*db_fetch\(DBHANDLE,)-600(const char *\);)]TJ 1.8 Tc -3 -1.189 Td (7i)Tj 0 Tc 3 0 Td [(nt )-3600(db_store\(DBHANDLE,)-600(const char *, const char *, int\);)]TJ 1.8 Tc -3 -1.189 Td (8i)Tj 0 Tc 3 0 Td [(nt )-3600(db_delete\(DBHANDLE,)-600(const char *\);)]TJ 1.8 Tc -3 -1.189 Td (9v)Tj 0 Tc 3 0 Td [(oid )-3000(db_rewind\(DBHANDLE\);)]TJ -3.6 -1.189 Td [(10 )-1200(char)-3000(*db_nextrec\(DBHANDLE, char *\);)]TJ 0 -2.259 TD [(11 )-1200(/*)]TJ 0 -1.189 TD [(12 )-1800(*)-600(Flags for db_store\(\).)]TJ T* [(13 )-1800(*/)]TJ T* [(14 )-1200(#define)-600(DB_INSERT )-2400(1)-2400(/* insert new record only */)]TJ T* [(15 )-1200(#define)-600(DB_REPLACE )-1800(2 )-1800(/*)-600(replace existing record */)]TJ T* [(16 )-1200(#define)-600(DB_STORE )-3000(3)-2400(/* replace or insert */)]TJ 0 -2.259 TD [(17 )-1200(/*)]TJ 0 -1.189 TD [(18 )-1800(*)-600(Implementation limits.)]TJ 0 -1.189 TD [(19 )-1800(*/)]TJ 0 -1.189 TD [(20 )-1200(#define)-600(IDXLEN_MIN )-1800(6 )-1800(/*)-600(key, sep, start, sep, length, \\n */)]TJ T* [(21 )-1200(#define)-600(IDXLEN_MAX 1024)-2400(/* arbitrary */)]TJ T* [(22 )-1200(#define)-600(DATLEN_MIN )-1800(2 )-1800(/*)-600(data byte, newline */)]TJ T* [(23 )-1200(#define)-600(DATLEN_MAX 1024)-2400(/* arbitrary */)]TJ 0 -2.259 TD [(24 )-1200(#endif)-600(/* _APUE_DB_H */)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3604.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 336.4076 Tm [([1 )167(\320 )167(3])]TJ -0.092 Tc 4 0 Td [(We )-252(u)]TJ 0 Tc 2.308 0 Td [(se )-68(the)]TJ /TT0 1 Tf 2.926 0 Td (_APUE_DB_H)Tj /T1_1 1 Tf 6.318 0 Td [(symbol )-68(to )-68(ensur)]TJ 0.318 Tc 7.226 0 Td (et)Tj 0 Tc 1.123 0 Td [(hat )-68(the )-68(contents )-68(of )-68(the )-68(header )-68(\336le)]TJ -19.901 -1.2 Td (ar)Tj 0.3304 Tc 0.877 0 Td (ei)Tj 0 Tc 1.1 0 Td [(ncluded )-80(only )-80(once.)-581(The)]TJ /TT0 1 Tf 11.143 0 Td (DBHANDLE)Tj /T1_1 1 Tf 5.13 0 Td [(type )-80(r)18(epr)18(esents )-80(an )-80(active )-80(r)17(efer)18(ence )-80(to)]TJ -18.25 -1.2 Td [(the )-298(database )-298(and )-298(is )-298(used )-298(to )-298(isolate )-298(applications )-298(fr)18(om )-298(the )-298(implementation)]TJ 0 -1.2 TD [(details )-180(of )-180(the )-180(database.)-679(Compar)]TJ 0.4297 Tc 14.916 0 Td (et)Tj 0 Tc 1.235 0 Td [(his )-180(technique )-180(with )-180(the )-180(way )-180(the )-180(standar)20(d)]TJ -16.151 -1.2 Td (I/O library exposes the)Tj /TT0 1 Tf 10.566 0 Td (FILE)Tj /T1_1 1 Tf 2.65 0 Td [(str)8(uctur)18(e)-250(to)-250(applications.)]TJ -17.216 -1.6 Td [([4 )167(\320 )167(10])-1168(Next, )-203(we )-203(declar)]TJ 0.4534 Tc 11.324 0 Td (et)Tj 0 Tc 1.258 0 Td [(he )-203(pr)18(ototypes )-203(for )-203(the )-203(database )-203(library\325s )-203(public )-203(functions.)]TJ -8.582 -1.2 Td [(Since )-112(this )-112(header )-112(is )-112(included )-112(by )-112(applications )-112(that )-112(want )-112(to )-112(use )-112(the )-112(library)]TJ 0.3617 Tc 33.076 0 Td (,w)Tj 0 Tc 1.446 0 Td (e)Tj -34.521 -1.2 Td (don\325t declar)Tj 0.25 Tc 5.295 0 Td (et)Tj 0 Tc 1.055 0 Td [(he pr)18(ototypes for the library\325s private functions her)18(e.)]TJ -10.35 -1.6 Td ([1)Tj 0.0833 Tc 0.778 0 Td (1\3202)Tj 0 Tc 1.667 0 Td [(4] )-472(The)-319(legal )-69(\337ags )-69(that )-69(can )-69(be )-69(passed )-69(to )-69(the)]TJ /TT0 1 Tf 19.896 0 Td (db_store)Tj /T1_1 1 Tf 5.119 0 Td [(function )-69(ar)]TJ 0.3191 Tc 4.903 0 Td (ed)Tj 0 Tc 1.409 0 Td [(e\336ned )-69(next,)]TJ -29.772 -1.2 Td [(followed )-180(by )-180(fundamental )-180(limits )-180(of )-180(the )-180(implementation.)-680(These )-180(limits )-180(can )-180(be)]TJ T* [(changed, if desir)18(ed, to support bigger databases.)]TJ 0 -1.8 TD [(The )-485(minimum )-485(index )-485(r)19(ecor)]TJ 0.7348 Tc 12.996 0 Td (dl)Tj 0 Tc 1.637 0 Td [(ength )-485(is )-485(speci\336ed )-485(by)]TJ /TT0 1 Tf 11.222 0 Td (IDXLEN_MIN)Tj /T1_1 1 Tf 0.9848 Tc (.T)Tj 0 Tc 7.848 0 Td (his)Tj -0.018 Tc -33.703 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(pr)18(esents )-219(a )-219(1)]TJ 5.63 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-219(key)]TJ 0.4687 Tc 3.863 0 Td (,a1)Tj 0 Tc 2.187 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-219(separator)]TJ 0.4687 Tc 6.475 0 Td (,a1)Tj 0 Tc 2.187 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-219(starting )-219(of)18(fset, )-219(another)]TJ -22.197 -1.2 Td (1)Tj 0.5 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-66(separator)]TJ 0.3159 Tc 6.322 0 Td (,a1)Tj 0 Tc 1.882 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-66(length, )-66(and )-66(a )-66(terminating )-66(newline )-66(character)]TJ 0.5659 Tc 21.808 0 Td (.\()Tj 0 Tc 1.149 0 Td (Recall)Tj -32.327 -1.2 Td [(the )-67(format )-67(of )-67(an )-67(index )-67(r)17(ecor)]TJ 0.3172 Tc 12.62 0 Td (df)Tj -0.018 Tc 1.261 0 Td (ro)Tj 0.3172 Tc 0.923 0 Td (mF)Tj 0 Tc 1.756 0 Td (igur)Tj 0.3172 Tc 1.827 0 Td (e2)Tj 0 Tc 1.296 0 Td [(0.2.\) )-317(An)-317(index )-67(r)18(ecor)]TJ 0.3172 Tc 9.097 0 Td (dw)Tj 0 Tc 1.762 0 Td [(ill )-67(usually)]TJ -30.542 -1.2 Td [(be lar)18(ger than)]TJ /TT0 1 Tf 6.37 0 Td (IDXLEN_MIN)Tj /T1_1 1 Tf 6.25 0 Td (bytes, but this is the bar)Tj 0.25 Tc 10.475 0 Td (em)Tj 0 Tc 1.612 0 Td (inimum size.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47685 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.4)]TJ 31.833 0 Td [(Implementation )-250(Overview)]TJ /T1_1 1 Tf 14 0 Td (747)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.055 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm (Wi)Tj 0 Tc 1.236 0 Td (th)Tj /TT0 1 Tf 1.251 0 Td (db_store)Tj /T1_0 1 Tf 0.3426 Tc (,o)Tj 0 Tc 5.939 0 Td [(nly )-93(one )-93(r)19(ecor)]TJ 0.3426 Tc 5.944 0 Td (df)Tj 0 Tc 1.287 0 Td [(or )-93(each )-93(key )-93(is )-93(allowed.)-591(Some )-92(database )-92(systems)]TJ -17.456 -1.2 Td [(allow )-99(a )-99(key )-99(to )-99(have )-99(multiple )-99(r)16(ecor)18(ds )-99(and )-99(then )-99(pr)18(ovide )-99(a )-99(way )-99(to )-99(access )-99(all )-99(the )-99(r)14(ecor)18(ds)]TJ 0 -1.2 Td [(associated )-146(with )-146(a )-146(given )-146(key)]TJ 0.6456 Tc 12.613 0 Td (.A)Tj 0 Tc 1.674 0 Td [(dditionally)111(,)-395(we)-395(h)-1(ave )-145(only )-145(a )-145(single )-145(index )-145(\336le, )-145(meaning)]TJ -14.287 -1.2 Td [(that )-145(each )-145(data )-145(r)18(ecor)]TJ 0.3949 Tc 9.084 0 Td (dc)Tj 0 Tc 1.45 0 Td [(an )-145(have )-145(only )-145(a )-145(single )-145(key )-145(\(we )-145(don\325t )-145(support )-145(secondary )-145(keys\).)]TJ -10.534 -1.2 Td [(Some )-2(database )-2(systems )-2(allow )-2(each )-2(r)18(ecor)18(d)-252(to)-252(have )-2(multiple )-2(keys )-2(and )-2(often )-2(use )-2(one )-2(index)]TJ 0 -1.2 TD [(\336le )-214(per )-214(key)]TJ 0.7142 Tc 5.258 0 Td (.E)Tj 0 Tc 1.575 0 Td [(ach )-214(time )-214(a )-214(new )-214(r)17(ecor)]TJ 0.4642 Tc 9.98 0 Td (di)Tj 0.4643 Tc 1.366 0 Td (si)Tj 0 Tc 1.179 0 Td [(nserted )-214(or )-214(deleted, )-214(all )-214(index )-214(\336les )-214(must )-214(be)]TJ -19.359 -1.2 Td [(updated )-102(accor)18(dingly)]TJ 0.6016 Tc 9.17 0 Td (.\()Tj 0 Tc 1.185 0 Td [(An )-101(example )-101(of )-101(a )-101(\336le )-101(with )-101(multiple )-101(indexes )-101(is )-101(an )-101(employee )-101(\336le.)]TJ -0.092 Tc -10.354 -1.2 Td [(We )-263(c)]TJ 0 Tc 2.16 0 Td [(ould )-79(have )-79(one )-79(index )-79(whose )-79(key )-79(is )-79(the )-79(employee )-79(ID )-79(and )-79(another )-79(whose )-79(key )-79(is )-79(the)]TJ -2.16 -1.2 Td [(employee\325s )-54(Social )-54(Security )-54(number)]TJ 0.5537 Tc 15.564 0 Td (.H)Tj 0 Tc 1.636 0 Td [(aving )-54(an )-54(index )-54(whose )-54(key )-54(is )-54(the )-54(employee )-54(name)]TJ -17.2 -1.2 Td [(could be a pr)18(oblem, as names ar)]TJ 0.25 Tc 14.176 0 Td (en)Tj 0 Tc 1.311 0 Td (ot always unique.\))Tj -13.687 -1.2 Td (Figur)Tj 0.25 Tc 2.383 0 Td (e2)Tj 0 Tc 1.229 0 Td [(0.2 shows a general pictur)18(e)-250(of)-250(the database implementation.)]TJ -3.209 -8.712 Td (index \336le:)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2022 4492.4 216 288 re S Q BT /T1_0 1 Tf 7.999 0 0 7.999 206.3032 466.824 Tm [(fr)18(ee)]TJ 0.173 -1.25 Td (ptr)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2238 4492.4 216 288 re S Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 224.9635 466.796 Tm (chain)Tj 0.539 -1.25 Td (ptr)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2454 4492.4 216 288 re S Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 246.5448 466.768 Tm (chain)Tj 0.539 -1.25 Td (ptr)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2670 4492.4 288 288 re S Q BT /T1_1 1 Tf 0.25 Tc 9.997 0 0 9.997 275.0675 461.7415 Tm (...)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 2958 4492.4 216 288 re S Q BT /T1_0 1 Tf 0 Tc 7.9971 0 0 7.9971 296.8971 466.7119 Tm (chain)Tj 0.539 -1.25 Td (ptr)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 3174 4492.4 144 288 re S Q BT /TT0 1 Tf 7.9966 0 0 7.9966 319.6657 461.686 Tm (\\n)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 3318 4492.4 1728 288 re S Q q 0.9995201 0 0 0.9995201 0 0 cm 0.699 g 173.4 341.24 86.4 28.8 re f Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 1734 3412.4 864 288 re S Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 2598 3412.4 216 288 re S Q BT /T1_0 1 Tf 7.9957 0 0 7.9957 260.8631 358.6863 Tm (chain)Tj 0.539 -1.25 Td (ptr)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 2814 3412.4 216 288 re S Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 286.3561 358.6647 Tm (idx)Tj 0.033 -1.25 Td (len)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 3030 3412.4 648 288 re S Q BT /T1_0 1 Tf 7.9947 0 0 7.9947 328.8189 353.6465 Tm (key)Tj ET q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J 3678 3412.4 144 288 re S Q BT /T1_0 1 Tf 7.9942 0 0 7.9942 368.7184 353.6253 Tm (sep)Tj ET q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J 3822 3412.4 216 288 re S Q BT /T1_0 1 Tf 7.9938 0 0 7.9938 386.9501 358.6002 Tm (dat)Tj 0.121 -1.25 Td [(of)18(f)]TJ ET q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J 4038 3412.4 144 288 re S Q BT /T1_0 1 Tf 7.9933 0 0 7.9933 404.6439 353.5829 Tm (sep)Tj ET q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J 4182 3412.4 216 288 re S Q BT /T1_0 1 Tf 7.9928 0 0 7.9928 422.8712 358.5571 Tm (dat)Tj 0.043 -1.25 Td (len)Tj ET q 0.09991 0 0 0.09991 0 0 cm 3.2 w 1 j 1 J 4398 3412.4 144 288 re S Q BT /TT0 1 Tf 7.9923 0 0 7.9923 441.7757 353.5404 Tm (\\n)Tj ET q 0.9990404 0 0 0.9990404 0 0 cm 0.699 g 454.2 341.24 50.4 28.8 re f Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J 4542 3412.4 504 288 re S Q BT /T1_0 1 Tf 9.9898 0 0 9.9898 154.1826 238.4367 Tm (data \336le:)Tj ET q 0.9989805 0 0 0.9989805 0 0 cm 0.699 g 202.2 226.04 72 28.8 re f Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J 2022 2260.4 720 288 re S Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J 2742 2260.4 720 288 re S Q BT /T1_0 1 Tf 7.9914 0 0 7.9914 302.1255 238.4224 Tm (data)Tj ET q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J 3462 2260.4 144 288 re S Q BT /TT0 1 Tf 7.9909 0 0 7.9909 348.2028 238.4081 Tm (\\n)Tj ET q 0.9988606 0 0 0.9988606 0 0 cm 0.699 g 360.6 226.04 144 28.8 re f Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J 3606 2260.4 1440 288 re S Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2238.25 4852.25 cm 0 0 m 0 144 l S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3318.25 4852.25 cm 0 0 m 0 144 l S Q Q q 0.0998861 0 0 0.0998861 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5046.25 4852.25 cm 0 0 m 0 144 l S Q Q q 0.9988007 0 0 0.9988007 0 0 cm q 1 0 0 1 223.8 496.04 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0998801 0 0 0.0998801 0 0 cm 1 j 1 J q 1 0 0 1 2238 4960.3999 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.9987408 0 0 0.9987408 0 0 cm q 1 0 0 1 331.8 496.04 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998741 0 0 0.0998741 0 0 cm 1 j 1 J q 1 0 0 1 3318 4960.3999 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998741 0 0 0.0998741 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2310.25 4960.25 cm 0 0 m 936 0 l S Q Q BT /T1_0 1 Tf 7.9894 0 0 7.9894 259.5092 498.6214 Tm (hash table)Tj ET q 0.9986808 0 0 0.9986808 0 0 cm q 1 0 0 1 331.8 488.84 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0998681 0 0 0.0998681 0 0 cm 1 j 1 J q 1 0 0 1 3318 4888.3999 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.9986209 0 0 0.9986209 0 0 cm q 1 0 0 1 504.6 488.84 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998621 0 0 0.0998621 0 0 cm 1 j 1 J q 1 0 0 1 5046 4888.3999 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998621 0 0 0.0998621 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3390.25 4888.25 cm 0 0 m 1584 0 l S Q Q BT /T1_0 1 Tf 7.9885 0 0 7.9885 393.6847 491.3719 Tm [(index r)18(ecor)18(ds)]TJ ET q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2598.25 3772.25 cm 0 0 m 0 144 l S Q Q q 0.0998561 0 0 0.0998561 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4542.25 3772.25 cm 0 0 m 0 144 l S Q Q q 0.9985011 0 0 0.9985011 0 0 cm q 1 0 0 1 259.8 384.44 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0998501 0 0 0.0998501 0 0 cm 1 j 1 J q 1 0 0 1 2598 3844.3999 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.9984412 0 0 0.9984412 0 0 cm q 1 0 0 1 454.2 384.44 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998441 0 0 0.0998441 0 0 cm 1 j 1 J q 1 0 0 1 4542 3844.3999 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998441 0 0 0.0998441 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 3844.25 cm 0 0 m 1800 0 l S Q Q BT /T1_0 1 Tf 7.9871 0 0 7.9871 326.7902 387.0524 Tm [(one index r)18(ecor)18(d)]TJ ET q 0.0998381 0 0 0.0998381 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3030.25 3340.25 cm 0 0 m 0 -144 l S Q Q q 0.0998381 0 0 0.0998381 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4542.25 3340.25 cm 0 0 m 0 -144 l S Q Q q 0.9983214 0 0 0.9983214 0 0 cm q 1 0 0 1 303 326.84 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0998321 0 0 0.0998321 0 0 cm 1 j 1 J q 1 0 0 1 3030 3268.3999 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.9982615 0 0 0.9982615 0 0 cm q 1 0 0 1 454.2 326.84 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998261 0 0 0.0998261 0 0 cm 1 j 1 J q 1 0 0 1 4542 3268.3999 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998261 0 0 0.0998261 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3102.25 3268.25 cm 0 0 m 1368 0 l S Q Q BT /T1_0 1 Tf 7.9856 0 0 7.9856 344.2997 319.5044 Tm (idx len)Tj ET q 0.0998202 0 0 0.0998202 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3606.25 2620.25 cm 0 0 m 0 144 l S Q Q q 0.9981417 0 0 0.9981417 0 0 cm q 1 0 0 1 274.2 269.24 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0998142 0 0 0.0998142 0 0 cm 1 j 1 J q 1 0 0 1 2742 2692.3999 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.9980818 0 0 0.9980818 0 0 cm q 1 0 0 1 360.6 269.24 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0998082 0 0 0.0998082 0 0 cm 1 j 1 J q 1 0 0 1 3606 2692.3999 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0998082 0 0 0.0998082 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2814.25 2692.25 cm 0 0 m 720 0 l S Q Q BT /T1_0 1 Tf 7.9842 0 0 7.9842 289.3146 271.941 Tm [(one data r)18(ecor)18(d)]TJ ET q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2742.25 2188.25 cm 0 0 m 0 -144 l S Q Q q 0.0998022 0 0 0.0998022 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3606.25 2188.25 cm 0 0 m 0 -144 l S Q Q q 0.997962 0 0 0.997962 0 0 cm q 1 0 0 1 274.2 211.64 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0997962 0 0 0.0997962 0 0 cm 1 j 1 J q 1 0 0 1 2742 2116.3999 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.9979021 0 0 0.9979021 0 0 cm q 1 0 0 1 360.6 211.64 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0997902 0 0 0.0997902 0 0 cm 1 j 1 J q 1 0 0 1 3606 2116.3999 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0997902 0 0 0.0997902 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2814.25 2116.25 cm 0 0 m 720 0 l S Q Q BT /T1_0 1 Tf 7.9827 0 0 7.9827 304.5854 204.4379 Tm (dat len)Tj ET q 0.9978423 0 0 0.9978423 0 0 cm q 1 0 0 1 274.2 256.28 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.0997842 0 0 0.0997842 0 0 cm 1 j 1 J q 1 0 0 1 2742 2562.8 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3930 3426.8 cm 0 0 m 0 -187.2 l 0 -312 -198 -398.4 -594 -446.4 c -990 -494.4 -1188 -574.8 -1188 -687.6 c -1188 -856.8 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3285.25 4476.25 cm 0 0 m -32 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3221.25 4444.25 cm 0 0 m -33 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3156.25 4412.25 cm 0 0 m -32 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3092.25 4379.25 cm 0 0 m -33 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3027.25 4347.25 cm 0 0 m -33 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2962.25 4314.25 cm 0 0 m -32 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2897.25 4282.25 cm 0 0 m -32 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2833.25 4250.25 cm 0 0 m -32 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2768.25 4217.25 cm 0 0 m -32 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2704.25 4185.25 cm 0 0 m -33 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2639.25 4153.25 cm 0 0 m -33 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2574.25 4121.25 cm 0 0 m -32 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2509.25 4088.25 cm 0 0 m -32 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2445.25 4056.25 cm 0 0 m -32 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2380.25 4023.25 cm 0 0 m -32 -15 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2316.25 3991.25 cm 0 0 m -33 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2251.25 3959.25 cm 0 0 m -33 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2186.25 3926.25 cm 0 0 m -32 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2122.25 3894.25 cm 0 0 m -33 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2057.25 3861.25 cm 0 0 m -32 -15 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1992.25 3829.25 cm 0 0 m -32 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1927.25 3797.25 cm 0 0 m -32 -15 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1863.25 3765.25 cm 0 0 m -33 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1798.25 3733.25 cm 0 0 m -33 -16 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5046.25 4456.25 cm 0 0 m 0 -36 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5046.25 4380.25 cm 0 0 m 0 -36 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5046.25 4304.25 cm 0 0 m 0 -36 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5046.25 4228.25 cm 0 0 m 0 -36 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5046.25 4152.25 cm 0 0 m 0 -36 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5046.25 4076.25 cm 0 0 m 0 -36 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5046.25 4000.25 cm 0 0 m 0 -36 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5046.25 3924.25 cm 0 0 m 0 -36 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5046.25 3848.25 cm 0 0 m 0 -36 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5046.25 3772.25 cm 0 0 m 0 -36 l S Q Q q 0.0997842 0 0 0.0997842 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2130.25 4766.25 cm 0 0 m 0 432 l S Q Q q 0.9977824 0 0 0.9977824 0 0 cm q 1 0 0 1 227.4 519.8 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.0997782 0 0 0.0997782 0 0 cm 1 j 1 J q 1 0 0 1 2274 5198 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.0997782 0 0 0.0997782 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2130.25 5198.25 cm 0 0 m 72 0 l S Q Q BT /T1_0 1 Tf 7.9818 0 0 7.9818 228.8775 521.8488 Tm [(of)18(fset of \336rst index)]TJ -0.018 Tc 0 -1.25 TD (re)Tj 0 Tc 0.856 0 Td [(cor)18(d)-250(on)-250(f)]TJ -0.018 Tc (re)Tj 0.25 Tc 4.795 0 Td (el)Tj 0 Tc 1.02 0 Td (ist)Tj ET q 0.0997723 0 0 0.0997723 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2562.25 4507.25 cm 0 0 m 0 -288 l S Q Q q 0.9976627 0 0 0.9976627 0 0 cm q 1 0 0 1 241.8 421.88 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0997663 0 0 0.0997663 0 0 cm 1 j 1 J q 1 0 0 1 2418 4218.7998 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.0997663 0 0 0.0997663 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2562.25 4219.25 cm 0 0 m -72 0 l S Q Q BT /T1_0 1 Tf 7.9808 0 0 7.9808 173.136 424.1009 Tm [(of)18(fset of \336rst index)]TJ -0.018 Tc -2.791 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(d)-250(on)-250(this hash chain)]TJ ET q 0.0997603 0 0 0.0997603 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3427.25 cm 0 0 m 0 -288 l S Q Q q 0.9975429 0 0 0.9975429 0 0 cm q 1 0 0 1 256.2 313.88 cm 0 0 m 7.2 1.8 l 7.2 -1.8 l f Q Q q 0.0997543 0 0 0.0997543 0 0 cm 1 j 1 J q 1 0 0 1 2562 3138.8 cm 0 0 m 72 18 l 72 -18 l h S Q Q q 0.0997543 0 0 0.0997543 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 3139.25 cm 0 0 m -72 0 l S Q Q BT /T1_0 1 Tf 7.9799 0 0 7.9799 186.258 316.3218 Tm [(of)18(fset of next index)]TJ -0.018 Tc -2.638 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(d)-250(on)-250(this hash chain)]TJ /T1_1 1 Tf 7.572 -15.835 Td (Figure 20.2)Tj /T1_0 1 Tf 5.695 0 Td (Arrangement of index \336le and data \336le)Tj 9.9748 0 0 9.9748 129.2739 156.0463 Tm [(The )-168(index )-168(\336le )-168(consists )-168(of )-168(thr)18(ee )-168(portions: )-168(the )-168(fr)18(ee-list )-168(pointer)]TJ 0.4184 Tc 27.704 0 Td (,t)Tj 0 Tc 0.994 0 Td [(he )-168(hash )-168(table, )-168(and )-168(the)]TJ -28.698 -1.2 Td [(index )-54(r)18(ecor)18(ds. )-304(In)-305(Figur)]TJ 0.3045 Tc 10.453 0 Td (e2)Tj 0 Tc 1.284 0 Td [(0.2, )-54(all )-54(the )-54(\336elds )-54(called)]TJ /T1_2 1 Tf 10.518 0 Td (ptr)Tj /T1_0 1 Tf 1.526 0 Td (ar)Tj 0.3045 Tc 0.877 0 Td (es)Tj 0 Tc 1.207 0 Td [(imply )-54(\336le )-54(of)18(fsets )-54(stor)18(ed )-54(as )-54(an)]TJ -25.864 -1.2 Td [(ASCII number)74(.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47686 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (80)Tj /T1_1 1 Tf 3 0 Td [(File )-250(I/O)]TJ 39.741 0 Td [(Chapter )-250(3)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(The )-6(new )-6(\336le )-6(descriptor )-6(that )-6(is )-6(r)18(eturned )-6(as )-6(the )-6(value )-6(of )-6(the )-6(functions )-6(shar)19(es )-6(the )-6(same)]TJ -1.8 -1.2 Td (\336le table entry as the)Tj /T1_2 1 Tf 9.423 0 Td (fd)Tj /T1_1 1 Tf 1.028 0 Td [(ar)18(gument. )-250(W)]TJ 0.25 Tc 5.964 0 Td (es)Tj 0 Tc 1.153 0 Td (how this in Figur)Tj 0.25 Tc 7.591 0 Td (e3)Tj 0 Tc 1.229 0 Td (.9.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1341.24 5078 1008 1152 re S Q BT /T1_1 1 Tf 7.999 0 0 7.999 151.3778 626.1649 Tm [(pr)18(ocess table entry)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 5726 576 72 re S Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 5654 576 72 re S Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 5582 576 72 re S Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 5510 576 72 re S Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 1629.24 5222 576 288 re S Q BT /T1_1 1 Tf 0.25 Tc 13.9975 0 0 13.9975 182.9411 534.7437 Tm (...)Tj 0 Tc 6.9987 0 0 6.9987 147.5396 574.3366 Tm (fd 0:)Tj 0 -1.029 TD (fd 1:)Tj 0 -1.029 TD (fd 2:)Tj T* (fd 3:)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1845.25 5798.25 cm 0 0 m 0 -288 l S Q Q BT /T1_1 1 Tf 6.9983 0 0 6.9983 170.3791 588.6587 Tm (fd)Tj -0.572 -0.714 Td (\337ags)Tj 4.471 0.714 Td (\336le)Tj -0.923 -0.714 Td (pointer)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2925.24 5726 720 144 re S Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 302.1693 577.8666 Tm (\336le status \337ags)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 2925.24 5582 720 144 re S Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 298.4006 563.4371 Tm [(curr)18(ent \336le of)18(fset)]TJ ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2925.24 5438 720 144 re S Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 302.0531 549.0094 Tm (v-node pointer)Tj 1.406 5.125 Td (\336le table)Tj 6.9971 0 0 6.9971 427.7013 575.998 Tm (v-node information)Tj /TT0 1 Tf 2.52 -2.057 Td (v_data)Tj /T1_1 1 Tf -2.383 -4.114 Td (i-node information)Tj 0.796 -2.057 Td [(curr)18(ent \336le size)]TJ /TT0 1 Tf 1.287 -1.543 Td (i_vnode)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 5870.25 cm 0 0 m 0 -288 l 720 -288 l 720 0 l 0 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 5438.25 cm 0 0 m 0 -396 l 720 -396 l 720 0 l 0 0 l 720 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 5690.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 5690.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 5690.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 5690.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 5690.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 5690.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 5690.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 5690.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 5690.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 5690.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 5258.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 5258.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 5258.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 5258.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 5258.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 5258.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 5258.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 5258.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 5258.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 5258.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4221.25 5150.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4297.25 5150.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4373.25 5150.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4449.25 5150.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4525.25 5150.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4601.25 5150.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4677.25 5150.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4753.25 5150.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4829.25 5150.25 cm 0 0 m 36 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4905.25 5150.25 cm 0 0 m 36 0 l S Q Q q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 422.124 545.96 cm 0 0 m -5.328 5.184 l -2.232 7.056 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 4221.2402 5459.6001 cm 0 0 m -53.28 51.84 l -22.32 70.56 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4293.2402 5636 cm 0 0 m -90 0 l -150 0 -162.6 -28.32 -127.8 -84.96 c -75.6 -169.92 l S Q Q q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 496.284 587 cm 0 0 m 4.032 -6.192 l 0.648 -7.344 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 4962.8398 5870 cm 0 0 m 40.32 -61.92 l 6.48 -73.44 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4869.2402 5096 cm 0 0 m 180 0 l 300 0 315.96 127.92 227.88 383.76 c 95.76 767.52 l S Q Q BT /T1_1 1 Tf 7.9952 0 0 7.9952 435.8024 589.886 Tm (v-node table)Tj ET q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 288.924 587 cm 0 0 m -5.832 -4.608 l -7.344 -1.296 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 5870 cm 0 0 m -58.32 -46.08 l -73.44 -12.96 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 5690 cm 0 0 m 180 0 l 300 0 424.92 29.52 554.76 88.56 c 749.52 177.12 l S Q Q q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 288.924 583.4 cm 0 0 m -4.752 -5.688 l -6.84 -2.808 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 2889.24 5834 cm 0 0 m -47.52 -56.88 l -68.4 -28.08 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2133.24 5546 cm 0 0 m 180 0 l 300 0 425.04 47.28 555.12 141.84 c 750.24 283.68 l S Q Q q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 418.524 587 cm 0 0 m -2.664 -6.912 l -5.616 -4.824 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 4185.2402 5870 cm 0 0 m -26.64 -69.12 l -56.16 -48.24 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3573.24 5510 cm 0 0 m 180 0 l 300 0 401.28 59.04 483.84 177.12 c 607.68 354.24 l S Q Q BT /T1_0 1 Tf 7.9938 0 0 7.9938 239.9727 478.6265 Tm (Figure 3.9)Tj /T1_1 1 Tf 5.195 0 Td [(Kernel data str)8(uctur)18(es after)]TJ /TT0 1 Tf 12.315 0 Td (dup)Tj 1.8 0.04 Td (\()Tj 0.6 -0.04 Td (1)Tj 0.6 0.04 Td (\))Tj /T1_1 1 Tf 9.9922 0 0 9.9922 129.4986 445.0527 Tm [(In this \336gur)18(e, we assume that when it\325s started, the pr)18(ocess executes)]TJ /TT0 1 Tf 8.993 0 0 8.993 147.4846 427.1667 Tm (newfd = dup\(1\);)Tj /T1_1 1 Tf -0.092 Tc 9.9922 0 0 9.9922 129.4986 407.9816 Tm [(We )-231(a)]TJ 0 Tc 2.184 0 Td [(ssume )-46(that )-46(the )-46(next )-46(available )-46(descriptor )-46(is )-46(3 )-46(\(which )-46(it )-46(pr)13(obably )-47(is, )-47(since )-47(0, )-47(1, )-47(and )-47(2)]TJ -2.184 -1.2 Td (ar)Tj 0.3983 Tc 0.877 0 Td (eo)Tj 0 Tc 1.423 0 Td [(pened )-148(by )-148(the )-148(shell\).)-648(Because )-148(both )-148(descriptors )-148(point )-148(to )-148(the )-148(same )-148(\336le )-148(table )-148(entry)108(,)]TJ -2.3 -1.2 Td [(they )-138(shar)]TJ 0.3884 Tc 4.214 0 Td (et)Tj 0 Tc 1.193 0 Td [(he )-138(same )-138(\336le )-138(status )-138(\337ags)]TJ 0.0833 Tc 11.05 0 Td (\321r)Tj 0 Tc 1.46 0 Td [(ead, )-138(write, )-138(append, )-138(and )-138(so )-138(on)]TJ 0.0833 Tc 13.856 0 Td (\321a)Tj 0 Tc 1.583 0 Td [(nd )-138(the )-138(same)]TJ -33.357 -1.2 Td [(curr)18(ent \336le of)18(fset.)]TJ 1.8 -1.2 Td [(Each )-396(descriptor )-396(has )-396(its )-396(own )-396(set )-396(of )-396(\336le )-396(descriptor )-396(\337ags.)-894(As )-396(we )-396(describe )-396(in)]TJ -1.8 -1.2 Td [(Section )-257(3.14, )-257(the )-257(close-on-exec )-257(\336le )-257(descriptor )-257(\337ag )-257(for )-257(the )-257(new )-257(descriptor )-257(is )-257(always)]TJ 0 -1.2 TD [(clear)18(ed by the)]TJ /TT0 1 Tf 6.427 0 Td (dup)Tj /T1_1 1 Tf 2.05 0 Td (functions.)Tj -6.677 -1.2 Td [(Another )-288(way )-288(to )-288(duplicate )-288(a )-288(descriptor )-288(is )-288(with )-288(the)]TJ /TT0 1 Tf 24.584 0 Td (fcntl)Tj /T1_1 1 Tf 3.538 0 Td [(function, )-288(which )-288(we)]TJ -29.922 -1.2 Td [(describe in Section 3.14.)-500(Indeed, the call)]TJ /TT0 1 Tf 8.993 0 0 8.993 147.4856 294.1705 Tm (dup\(fd\);)Tj /T1_1 1 Tf 9.9922 0 0 9.9922 129.4996 274.9854 Tm (is equivalent to)Tj /TT0 1 Tf 8.993 0 0 8.993 147.4856 257.0994 Tm (fcntl\(fd, F_DUPFD, 0\);)Tj /T1_1 1 Tf 9.9922 0 0 9.9922 129.4996 237.9143 Tm (Similarly)Tj 0.25 Tc 3.912 0 Td (,t)Tj 0 Tc 0.826 0 Td (he call)Tj /TT0 1 Tf 8.993 0 0 8.993 147.4856 220.0283 Tm (dup2\(fd, fd2\);)Tj /T1_1 1 Tf 9.9922 0 0 9.9922 129.4996 200.8433 Tm (is equivalent to)Tj /TT0 1 Tf 8.993 0 0 8.993 147.4856 182.9572 Tm (close\(fd2\);)Tj 0 -1.189 TD (fcntl\(fd, F_DUPFD, fd2\);)Tj /T1_1 1 Tf 9.9922 0 0 9.9922 129.4996 153.0805 Tm [(In )-119(this )-119(last )-119(case, )-119(the)]TJ /TT0 1 Tf 9.415 0 Td (dup2)Tj /T1_1 1 Tf 2.77 0 Td [(is )-120(not )-120(exactly )-120(the )-120(same )-120(as )-120(a)]TJ /TT0 1 Tf 12.965 0 Td (close)Tj /T1_1 1 Tf 3.37 0 Td [(followed )-120(by )-120(an)]TJ /TT0 1 Tf 7.231 0 Td (fcntl)Tj /T1_1 1 Tf (.)Tj -35.75 -1.2 Td [(The dif)18(fer)18(ences ar)18(e)-250(as)-250(follows:)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47687 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (963)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 151.1909 670.9597 Tm (325, 372, 457, 479, 492, 527, 533, 538, 541, 557,)Tj 0 -1.25 TD (585, 653)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (654, 658)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (659, 669, 716)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (717, 721,)Tj -14.499 -1.25 Td (723, 727, 739, 742, 920, 928, 948)Tj /TT0 1 Tf -2.7 -1.25 Td (execl)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(249)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (251, 261, 265)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (266, 272,)Tj -13.507 -1.25 Td (274)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (275, 283, 288, 331, 370)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (371, 539, 544,)Tj -12.333 -1.25 Td (550)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (551, 618, 655, 737, 922)Tj -3.517 -1.25 Td [(de\336nition of,)-500(249)]TJ /TT0 1 Tf -1.35 -1.25 Td (execle)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(249)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (251, 254, 287, 331)Tj -9.29 -1.25 Td [(de\336nition of,)-500(249)]TJ /TT0 1 Tf -1.35 -1.25 Td (execlp)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(12)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (13, 19, 249)Tj 4.583 0.09 Td (\320)Tj 0.583 -0.09 Td (251, 253)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (254,)Tj -16.773 -1.25 Td (264)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (265, 283, 740, 922)Tj -3.517 -1.25 Td [(de\336nition of,)-500(249)]TJ /TT0 1 Tf -1.35 -1.25 Td (execv)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(249)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (251, 331)Tj -8.69 -1.25 Td [(de\336nition of,)-500(249)]TJ /TT0 1 Tf -1.35 -1.25 Td (execve)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(249)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (251, 253, 331, 922)Tj -9.29 -1.25 Td [(de\336nition of,)-500(249)]TJ /TT0 1 Tf -1.35 -1.25 Td (execvp)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(249)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (251, 253, 731)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (732)Tj -15.457 -1.25 Td [(de\336nition of,)-500(249)]TJ -1.35 -1.25 Td [(exer)18(cises, solutions to,)-500(905)]TJ 11.901 0.09 Td (\320)Tj 0.583 -0.09 Td (945)Tj /TT0 1 Tf -12.484 -1.25 Td (_Exit)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(198,)-250(201, 236)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (237, 239, 331, 365,)Tj -11.34 -1.25 Td (367, 388, 447)Tj -1.35 -1.25 Td [(de\336nition of,)-500(198)]TJ /TT0 1 Tf -1.35 -1.25 Td (_exit)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(198,)-250(201, 235)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (239, 265)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (266,)Tj -15.507 -1.25 Td (282)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (283, 331, 365, 367, 370, 381, 388, 447, 921,)Tj -2.167 -1.25 Td (924)Tj -1.35 -1.25 Td [(de\336nition of,)-500(198)]TJ /TT0 1 Tf -1.35 -1.25 Td (exit)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(7,)-250(150, 154, 198)]TJ 11.04 0.09 Td (\320)Tj 0.583 -0.09 Td (202, 226, 231,)Tj -11.74 -1.25 Td (234)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (239, 246, 249, 265, 271)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (272, 274)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (275,)Tj -16.5 -1.25 Td (283, 288, 330, 365)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (366, 388, 447, 466, 542, 705,)Tj -8.166 -1.25 Td (732, 742, 817, 830, 895, 920)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (921, 944)Tj -13.517 -1.25 Td [(de\336nition of,)-500(198)]TJ -1.35 -1.25 Td (exit handler)Tj 0.5 Tc 5.228 0 Td (,2)Tj 0 Tc 1.25 0 Td (00)Tj /TT0 1 Tf -6.478 -1.25 Td (expect)Tj /T1_0 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(720,)-250(739)]TJ 8.191 0.09 Td (\320)Tj 0.583 -0.09 Td (740, 951)Tj -12.791 -1.25 Td [(exponential backof)18(f, )-250(606)]TJ /TT0 1 Tf T* (ext2)Tj /T1_0 1 Tf 2.817 0 Td [(\336le system,)-500(129)]TJ /TT0 1 Tf -2.817 -1.25 Td (ext3)Tj /T1_0 1 Tf 2.817 0 Td [(\336le system,)-500(129)]TJ /TT0 1 Tf -2.817 -1.25 Td (ext4)Tj /T1_0 1 Tf 2.817 0 Td [(\336le system,)-500(73, 86, 129, 465)]TJ /TT0 1 Tf -2.817 -1.25 Td (EXTPROC)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(676,)-250(687)]TJ /TT0 1 Tf -4.617 -5.375 Td (faccessat)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(102)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (104, 331, 452)Tj -11.09 -1.25 Td [(de\336nition of,)-500(102)]TJ -1.35 -1.25 Td [(Fagin, R.,)-500(744, 750, 949)]TJ T* [(Fast-STREAMS, Linux,)-500(534)]TJ T* [(fatal err)18(or)]TJ 0.5 Tc 4.318 0 Td (,1)Tj 0 Tc 1.25 0 Td (6)Tj /TT0 1 Tf -5.568 -1.25 Td (fchdir)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(135)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (137, 592)Tj -9.29 -1.25 Td [(de\336nition of,)-500(135)]TJ /TT0 1 Tf -1.35 -1.25 Td (fchmod)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(106)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (108, 120, 125, 331, 452, 498,)Tj -7.94 -1.25 Td (592)Tj -1.35 -1.25 Td [(de\336nition of,)-500(106)]TJ /TT0 1 Tf -1.35 -1.25 Td (fchmodat)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(106)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (108, 331, 452)Tj -10.49 -1.25 Td [(de\336nition of,)-500(106)]TJ /TT0 1 Tf 24.65 65.375 Td (fchown)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(109)]TJ 6.04 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (0, 125, 331, 452, 592)Tj -10.235 -1.25 Td [(de\336nition of,)-500(109)]TJ /TT0 1 Tf -1.35 -1.25 Td (fchownat)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(109)]TJ 6.04 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (0, 331, 452)Tj -11.435 -1.25 Td [(de\336nition of,)-500(109)]TJ /TT0 1 Tf -1.35 -1.25 Td (fclose)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(148)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (150, 172)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (174, 199, 201, 365,)Tj -12.107 -1.25 Td (367, 452, 545, 701, 803)Tj -1.35 -1.25 Td [(de\336nition of,)-500(150)]TJ /TT0 1 Tf -1.35 -1.25 Td (fcntl)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(61,)-250(77, 80)]TJ 8.54 0.09 Td (\320)Tj 0.583 -0.09 Td [(87, 90, 1)55(12, 148, 164,)]TJ -9.84 -1.25 Td (252)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (253, 331, 451)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (452, 480, 482, 485)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (490,)Tj -16.5 -1.25 Td (492, 494)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (495, 510)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(51)55(1, 592, 626)]TJ 5.528 0.09 Td (\320)Tj 0.583 -0.09 Td (627, 783,)Tj -14.445 -1.25 Td (785, 939, 944)Tj -1.35 -1.25 Td [(de\336nition of,)-500(82)]TJ /TT0 1 Tf -1.35 -1.25 Td ()Tj /T1_0 1 Tf 5.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9, 62)Tj /TT0 1 Tf -10.039 -1.25 Td (fdatasync)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(81,)-250(86)]TJ 7.04 0.09 Td (\320)Tj 0.583 -0.09 Td (87, 331, 451, 513, 592)Tj -12.09 -1.25 Td [(de\336nition of,)-500(81)]TJ /TT0 1 Tf -1.35 -1.25 Td (FD_CLOEXEC)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(63,)-250(79, 82)]TJ 8.563 0.09 Td (\320)Tj 0.583 -0.09 Td (83, 252, 480)Tj /TT0 1 Tf -15.563 -1.25 Td (FD_CLR)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(503)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (504, 665, 933)Tj -9.29 -1.25 Td [(de\336nition of,)-500(503)]TJ /TT0 1 Tf -1.35 -1.25 Td (FD_ISSET)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(503)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (504, 665, 817, 933)Tj -10.49 -1.25 Td [(de\336nition of,)-500(503)]TJ /TT0 1 Tf -1.35 -1.25 Td (fdopen)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(148)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (150, 159, 544, 936)Tj -9.29 -1.25 Td [(de\336nition of,)-500(148)]TJ /TT0 1 Tf -1.35 -1.25 Td (fdopendir)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(130)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (135)Tj -11.09 -1.25 Td [(de\336nition of,)-500(130)]TJ -1.35 -1.25 Td [(fd-pipe, )-250(653)]TJ 5.582 0.09 Td (\320)Tj 0.583 -0.09 Td (654, 656, 658)Tj /TT0 1 Tf -6.165 -1.25 Td (fd_pipe)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(630,)-250(655, 739, 896)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(630)]TJ /TT0 1 Tf -1.35 -1.25 Td (fd_set)Tj /T1_0 1 Tf 4.017 0 Td [(data type,)-500(59, 503)]TJ 7.982 0.09 Td (\320)Tj 0.583 -0.09 Td (504, 532, 664, 805, 814,)Tj -9.882 -1.25 Td (816)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (817, 932)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (933, 939)Tj /TT0 1 Tf -9.033 -1.25 Td (FD_SET)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(503)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (504, 664)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (665, 805, 816, 933)Tj -13.457 -1.25 Td [(de\336nition of,)-500(503)]TJ /TT0 1 Tf 0.1666 Tc -1.35 -1.25 Td (__)Tj 0 Tc 1.367 0 Td (FD_SETSIZE)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(933)]TJ /TT0 1 Tf -7.783 -1.25 Td (FD_SETSIZE)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(504,)-250(932)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (933)Tj /TT0 1 Tf -15.063 -1.25 Td (F_DUPFD)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(81)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (83, 592)Tj /TT0 1 Tf -10.763 -1.25 Td (F_DUPFD_CLOEXEC)Tj /T1_0 1 Tf 9.417 0 Td [(constant, )-250(82,)-250(592)]TJ /TT0 1 Tf -9.417 -1.25 Td (FD_ZERO)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(503)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (504, 664, 805, 933)Tj -9.89 -1.25 Td [(de\336nition of,)-500(503)]TJ -1.35 -1.25 Td (featur)Tj 0.25 Tc 2.618 0 Td (et)Tj 0 Tc 1.055 0 Td [(est macr)18(o, )-250(57)]TJ 6.062 0.09 Td (\320)Tj 0.583 -0.09 Td (58, 84)Tj -10.319 -1.25 Td (Fenner)Tj 0.25 Tc 2.999 0 Td (,B)Tj 0 Tc 1.111 0 Td [(., )-250(157,)-250(291, 470, 589, 952)]TJ /TT0 1 Tf -4.11 -1.25 Td ()Tj /T1_0 1 Tf 5.217 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7)Tj /TT0 1 Tf -9.439 -1.25 Td (feof)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(151,)-250(157)]TJ -1.467 -1.25 Td [(de\336nition of,)-500(151)]TJ /TT0 1 Tf -1.35 -1.25 Td (ferror)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(10,)-250(151, 154, 157, 273, 538, 543,)]TJ -1.317 -1.25 Td (550)Tj -1.35 -1.25 Td [(de\336nition of,)-500(151)]TJ /TT0 1 Tf -1.35 -1.25 Td (fexecve)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(249)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (250, 253, 331)Tj -9.89 -1.25 Td [(de\336nition of,)-500(249)]TJ /TT0 1 Tf -1.35 -1.25 Td (FF0)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(687)]TJ /TT0 1 Tf -2.217 -1.25 Td (FF1)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(687)]TJ /TT0 1 Tf -2.217 -1.25 Td (FFDLY)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(684, 687, 689)]TJ /TT0 1 Tf -3.417 -1.25 Td (fflush)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(145,)-250(147, 149, 172, 174)]TJ 14.04 0.09 Td (\320)Tj 0.583 -0.09 Td (175, 366,)Tj -15.94 -1.25 Td (452, 547)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (548, 552, 702, 721, 901, 904, 913)Tj -5.516 -1.25 Td [(de\336nition of,)-500(147)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47688 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(7.3)]TJ 34.639 0 Td [(Pr)18(ocess )-250(T)92(ermination)]TJ /T1_1 1 Tf 11.194 0 Td (199)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm (Historically)Tj 0.4979 Tc 5.076 0 Td (,t)Tj 0 Tc 1.074 0 Td (he)Tj /TT0 1 Tf 1.559 0 Td (exit)Tj /T1_0 1 Tf 2.898 0 Td [(function )-248(has )-248(always )-248(performed )-248(a )-248(clean )-248(shutdown )-248(of )-248(the)]TJ -12.407 -1.2 Td (standar)Tj 0.3689 Tc 3.32 0 Td (dI)Tj 0 Tc 1.317 0 Td [(/O )-119(library: )-119(the)]TJ /TT0 1 Tf 7.117 0 Td (fclose)Tj /T1_0 1 Tf 3.969 0 Td [(function )-119(is )-119(called )-119(for )-119(all )-119(open )-119(str)19(eams. )-369(Recall)-369(fr)18(om)]TJ -15.723 -1.2 Td [(Section 5.5 that this causes all buf)18(fer)18(ed output data to be \337ushed \(written to the \336le\).)]TJ 1.8 -1.2 Td [(All )-193(thr)18(ee )-193(exit )-193(functions )-193(expect )-193(a )-193(single )-193(integer )-193(ar)18(gument, )-193(which )-193(we )-193(call )-193(the)]TJ /T1_2 1 Tf 35.7 0 Td (exit)Tj -37.5 -1.2 Td (status)Tj /T1_0 1 Tf 0.552 Tc (.M)Tj 0 Tc 4.192 0 Td [(ost )-52(UNIX )-52(System )-52(shells )-52(pr)18(ovide )-52(a )-52(way )-52(to )-52(examine )-52(the )-52(exit )-52(status )-52(of )-52(a )-52(pr)19(ocess.)]TJ -4.192 -1.2 Td [(If )-129(\(a\) )-129(any )-129(of )-129(these )-129(functions )-129(is )-129(called )-129(without )-129(an )-129(exit )-129(status, )-129(\(b\))]TJ /TT0 1 Tf 29.303 0 Td (main)Tj /T1_0 1 Tf 2.779 0 Td [(does )-129(a)]TJ /TT0 1 Tf 3.318 0 Td (return)Tj /T1_0 1 Tf -35.4 -1.2 Td [(without )-41(a )-41(r)18(eturn )-41(value, )-41(or )-41(\(c\) )-41(the)]TJ /TT0 1 Tf 14.93 0 Td (main)Tj /T1_0 1 Tf 2.691 0 Td [(function )-41(is )-41(not )-41(declar)19(ed )-40(to )-40(r)18(eturn )-40(an )-40(integer)]TJ 0.2905 Tc 19.452 0 Td (,t)Tj 0 Tc 0.866 0 Td (he)Tj -37.939 -1.2 Td [(exit )-14(status )-14(of )-14(the )-14(pr)18(ocess )-14(is )-14(unde\336ned.)-517(However)74(,)-264(if)-264(t)-1(he )-14(r)18(eturn )-14(type )-14(of)]TJ /TT0 1 Tf 30.902 0 Td (main)Tj /T1_0 1 Tf 2.664 0 Td [(is )-14(an )-14(integer)]TJ -33.566 -1.2 Td (and)Tj /TT0 1 Tf 1.943 0 Td (main)Tj /T1_0 1 Tf -0.037 Tc 2.65 0 Td (\324\324)Tj 0 Tc 0.519 0 Td (falls of)Tj 0.25 Tc 2.95 0 Td (ft)Tj 0 Tc 0.909 0 Td (he end\325)Tj 0.25 Tc 3.224 0 Td (\325\()Tj 0 Tc 0.861 0 Td [(an implicit r)18(eturn\), the exit status of the pr)18(ocess is 0.)]TJ 7.9995 0 0 7.9995 183.5895 552.9668 Tm [(This )-55(behavior )-55(is )-55(new )-55(with )-55(the )-55(1999 )-55(version )-55(of )-55(the )-55(ISO )-55(C )-55(standar)14(d. )-305(Historically)]TJ 0.3053 Tc 35.233 0 Td (,t)Tj 0 Tc 0.881 0 Td [(he )-55(exit )-55(status)]TJ -36.114 -1.25 Td [(was )-248(unde\336ned )-248(if )-248(the )-248(end )-248(of )-248(the)]TJ /TT0 1 Tf 15.746 0 Td (main)Tj /T1_0 1 Tf 2.898 0 Td [(function )-248(was )-248(r)18(eached )-248(without )-248(an )-248(explicit)]TJ /TT0 1 Tf 19.756 0 Td (return)Tj /T1_0 1 Tf -38.4 -1.25 Td (statement or a call to the)Tj /TT0 1 Tf 11.051 0 Td (exit)Tj /T1_0 1 Tf 2.65 0 Td (function.)Tj 9.9994 0 0 9.9994 147.5912 509.9694 Tm [(Returning )-153(an )-153(integer )-153(value )-153(fr)18(om )-153(the)]TJ /TT0 1 Tf 17.056 0 Td (main)Tj /T1_0 1 Tf 2.803 0 Td [(function )-153(is )-153(equivalent )-153(to )-153(calling)]TJ /TT0 1 Tf 14.941 0 Td (exit)Tj /T1_0 1 Tf -36.6 -1.2 Td [(with the same value.)-500(Thus)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 481.2711 Tm (exit\(0\);)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5923 463.2722 Tm (is the same as)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5912 446.5732 Tm (return\(0\);)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5923 428.5743 Tm [(fr)18(om the)]TJ /TT0 1 Tf 4.026 0 Td (main)Tj /T1_0 1 Tf 2.65 0 Td (function.)Tj /TT1 1 Tf -10.276 -3.6 Td (Example)Tj /T1_0 1 Tf 3.6 -2.4 Td [(The pr)18(ogram in Figur)]TJ 0.25 Tc 9.538 0 Td (e7)Tj 0 Tc 1.229 0 Td [(.1 is the classic \324)37(\324hello, world\325)]TJ 0.25 Tc 12.796 0 Td (\325e)Tj 0 Tc 1.007 0 Td (xample.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3554.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 345.8575 Tm [(#include )-1800()]TJ 0 -2.378 TD (main\(\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td (printf\("hello, world\\n"\);)Tj -2.4 -1.189 Td (})Tj ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2876.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 271.1712 271.5491 Tm (Figure 7.1)Tj /T1_0 1 Tf 5.195 0 Td [(Classic C pr)18(ogram)]TJ 9.9982 0 0 9.9982 129.5769 237.9552 Tm [(When )-221(we )-221(compile )-221(and )-221(r)8(un )-221(the )-221(pr)18(ogram )-221(in )-221(Figur)]TJ 0.4713 Tc 23.027 0 Td (e7)Tj 0 Tc 1.45 0 Td [(.1, )-221(we )-221(see )-221(that )-221(the )-221(exit )-221(code )-221(is)]TJ -24.478 -1.2 Td [(random. )-420(If)-420(we )-170(compile )-170(the )-170(same )-170(pr)18(ogram )-170(on )-170(dif)17(fer)18(ent )-170(systems, )-170(we )-170(ar)]TJ 0.42 Tc 32.564 0 Td (el)Tj 0 Tc 1.19 0 Td [(ikely )-170(to )-170(get)]TJ -33.754 -1.2 Td [(dif)18(fer)18(ent )-62(exit )-62(codes, )-62(depending )-62(on )-62(the )-62(contents )-62(of )-62(the )-62(stack )-62(and )-62(r)19(egister )-62(contents )-62(at )-62(the)]TJ -0 -1.2 Td (time that the)Tj /TT0 1 Tf 5.85 0 Td (main)Tj /T1_0 1 Tf 2.65 0 Td [(function r)18(eturns:)]TJ /TT0 1 Tf 8.9984 0 0 8.9984 147.573 185.2646 Tm ($)Tj /TT2 1 Tf 1.2 0 Td (gcc hello.c)Tj /TT0 1 Tf -1.2 -1.189 Td ($)Tj /TT2 1 Tf 1.2 0 Td (./a.out)Tj /TT0 1 Tf -1.2 -1.189 Td (hello, world)Tj 0 -1.189 TD ($)Tj /TT2 1 Tf 1.2 0 Td (echo $?)Tj /T1_2 1 Tf 16.4 0 Td (print the exit status)Tj /TT0 1 Tf -17.6 -1.189 Td (13)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47689 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (962)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (ENOTDIR)Tj /T1_1 1 Tf 4.617 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,5)Tj 0 Tc 1.25 0 Td (92)Tj /TT0 1 Tf -7.985 -1.25 Td (ENOTRECOVERABLE)Tj /T1_1 1 Tf 9.417 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,4)Tj 0 Tc 1.25 0 Td (33)Tj /TT0 1 Tf -12.785 -1.25 Td (ENOTTY)Tj /T1_1 1 Tf 4.017 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,6)Tj 0 Tc 1.25 0 Td (83, 693)Tj /TT0 1 Tf -7.385 -1.25 Td (environ)Tj /T1_1 1 Tf 4.617 0 Td [(variable, )-250(203)]TJ 5.907 0.09 Td (\320)Tj 0.583 -0.09 Td [(204, 21)55(1, 213, 251, 255,)]TJ -8.407 -1.25 Td (444)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (445, 450, 920)Tj -4.866 -1.25 Td [(envir)18(onment list,)-500(203)]TJ 9.607 0.09 Td (\320)Tj 0.583 -0.09 Td (204, 233, 251, 286)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (288)Tj -18.357 -1.25 Td [(envir)18(onment variable,)-500(210)]TJ 11.849 0.09 Td (\320)Tj 0.583 -0.09 Td (213)Tj /TT0 1 Tf -11.083 -1.25 Td (COLUMNS)Tj /T1_1 1 Tf 0.5 Tc 4.367 0 Td (,2)Tj -0.055 Tc 1.25 0 Td (11)Tj /TT0 1 Tf 0 Tc -5.617 -1.25 Td (DATEMSK)Tj /T1_1 1 Tf 0.5 Tc 4.367 0 Td (,2)Tj -0.055 Tc 1.25 0 Td (11)Tj /TT0 1 Tf 0 Tc -5.617 -1.25 Td (HOME)Tj /T1_1 1 Tf 0.5 Tc 2.567 0 Td (,2)Tj 0 Tc 1.25 0 Td (10)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td [(21)55(1, 288)]TJ /TT0 1 Tf -5.483 -1.25 Td (IFS)Tj /T1_1 1 Tf 0.5 Tc 1.967 0 Td (,2)Tj 0 Tc 1.25 0 Td (69)Tj /TT0 1 Tf -3.217 -1.25 Td (LANG)Tj /T1_1 1 Tf 0.5 Tc 2.567 0 Td (,4)Tj 0 Tc 1.25 0 Td [(1, 21)55(1)]TJ /TT0 1 Tf -3.817 -1.25 Td (LC_ALL)Tj /T1_1 1 Tf 0.5 Tc 3.767 0 Td (,2)Tj -0.055 Tc 1.25 0 Td (11)Tj /TT0 1 Tf 0 Tc -5.017 -1.25 Td (LC_COLLATE)Tj /T1_1 1 Tf 0.5 Tc 6.167 0 Td (,4)Tj 0 Tc 1.25 0 Td [(3, 21)55(1)]TJ /TT0 1 Tf -7.417 -1.25 Td (LC_CTYPE)Tj /T1_1 1 Tf 0.5 Tc 4.967 0 Td (,2)Tj -0.055 Tc 1.25 0 Td (11)Tj /TT0 1 Tf 0 Tc -6.217 -1.25 Td (LC_MESSAGES)Tj /T1_1 1 Tf 0.5 Tc 6.767 0 Td (,2)Tj -0.055 Tc 1.25 0 Td (11)Tj /TT0 1 Tf 0 Tc -8.017 -1.25 Td (LC_MONETARY)Tj /T1_1 1 Tf 0.5 Tc 6.767 0 Td (,2)Tj -0.055 Tc 1.25 0 Td (11)Tj /TT0 1 Tf 0 Tc -8.017 -1.25 Td (LC_NUMERIC)Tj /T1_1 1 Tf 0.5 Tc 6.167 0 Td (,2)Tj -0.055 Tc 1.25 0 Td (11)Tj /TT0 1 Tf 0 Tc -7.417 -1.25 Td (LC_TIME)Tj /T1_1 1 Tf 0.5 Tc 4.367 0 Td (,2)Tj -0.055 Tc 1.25 0 Td (11)Tj /TT0 1 Tf 0 Tc -5.617 -1.25 Td (LD_LIBRARY_PATH)Tj /T1_1 1 Tf 0.5 Tc 9.167 0 Td (,7)Tj 0 Tc 1.25 0 Td (53)Tj /TT0 1 Tf -10.417 -1.25 Td (LINES)Tj /T1_1 1 Tf 0.5 Tc 3.167 0 Td (,2)Tj -0.055 Tc 1.25 0 Td (11)Tj /TT0 1 Tf 0 Tc -4.417 -1.25 Td (LOGNAME)Tj /T1_1 1 Tf 0.5 Tc 4.367 0 Td (,2)Tj -0.055 Tc 1.25 0 Td (11)Tj 0.25 Tc 0.945 0 Td (,2)Tj 0 Tc 1 0 Td (76, 288)Tj /TT0 1 Tf -7.562 -1.25 Td (MAILPATH)Tj /T1_1 1 Tf 0.5 Tc 4.967 0 Td (,2)Tj 0 Tc 1.25 0 Td (10)Tj /TT0 1 Tf -6.217 -1.25 Td (MALLOC_OPTIONS)Tj /T1_1 1 Tf 0.5 Tc 8.567 0 Td (,9)Tj 0 Tc 1.25 0 Td (28)Tj /TT0 1 Tf -9.817 -1.25 Td (MSGVERB)Tj /T1_1 1 Tf 0.5 Tc 4.367 0 Td (,2)Tj -0.055 Tc 1.25 0 Td (11)Tj /TT0 1 Tf 0 Tc -5.617 -1.25 Td (NLSPATH)Tj /T1_1 1 Tf 0.5 Tc 4.367 0 Td (,2)Tj -0.055 Tc 1.25 0 Td (11)Tj /TT0 1 Tf 0 Tc -5.617 -1.25 Td (PAGER)Tj /T1_1 1 Tf 0.5 Tc 3.167 0 Td (,5)Tj 0 Tc 1.25 0 Td (39, 542)Tj 3.083 0.09 Td (\320)Tj 0.583 -0.09 Td (543)Tj /TT0 1 Tf -8.083 -1.25 Td (PATH)Tj /T1_1 1 Tf 0.5 Tc 2.567 0 Td (,1)Tj 0 Tc 1.25 0 Td [(00, 21)55(1, 250)]TJ 5.028 0.09 Td (\320)Tj 0.583 -0.09 Td (251, 253, 260, 263, 265,)Tj -8.078 -1.25 Td (288)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (289)Tj /TT0 1 Tf -3.517 -1.25 Td (POSIXLY_CORRECT)Tj /T1_1 1 Tf 0.5 Tc 9.167 0 Td (,1)Tj -0.055 Tc 1.195 0 Td (11)Tj /TT0 1 Tf 0 Tc -10.362 -1.25 Td (PWD)Tj /T1_1 1 Tf 0.5 Tc 1.967 0 Td (,2)Tj -0.055 Tc 1.25 0 Td (11)Tj /TT0 1 Tf 0 Tc -3.217 -1.25 Td (SHELL)Tj /T1_1 1 Tf 0.5 Tc 3.167 0 Td (,2)Tj -0.055 Tc 1.25 0 Td (11)Tj 0.25 Tc 0.945 0 Td (,2)Tj 0 Tc 1 0 Td (88, 737)Tj /TT0 1 Tf -6.362 -1.25 Td (TERM)Tj /T1_1 1 Tf 0.5 Tc 2.567 0 Td (,2)Tj -0.055 Tc 1.25 0 Td (11)Tj 0.25 Tc 0.945 0 Td (,2)Tj 0 Tc 1 0 Td (87, 289)Tj /TT0 1 Tf -5.762 -1.25 Td (TMPDIR)Tj /T1_1 1 Tf 0.5 Tc 3.767 0 Td (,2)Tj -0.055 Tc 1.25 0 Td (11)Tj /TT0 1 Tf 0 Tc -5.017 -1.25 Td (TZ)Tj /T1_1 1 Tf 0.5 Tc 1.367 0 Td (,1)Tj 0 Tc 1.25 0 Td (90, 192, 195)Tj 5.083 0.09 Td (\320)Tj 0.583 -0.09 Td [(196, 21)55(1, 919)]TJ /TT0 1 Tf -8.283 -1.25 Td (USER)Tj /T1_1 1 Tf 0.5 Tc 2.567 0 Td (,2)Tj 0 Tc 1.25 0 Td (10, 288)Tj /TT0 1 Tf -5.167 -1.25 Td (ENXIO)Tj /T1_1 1 Tf 3.417 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,5)Tj 0 Tc 1.25 0 Td (53)Tj /TT0 1 Tf -6.785 -1.25 Td (EOF)Tj /T1_1 1 Tf 2.217 0 Td [(constant, )-250(10,)-250(151)]TJ 7.563 0.09 Td (\320)Tj 0.583 -0.09 Td (152, 154, 164, 175, 545,)Tj -7.663 -1.25 Td (547)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (548, 550)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (551, 664, 730, 913)Tj -9.033 -1.25 Td (EOF terminal character)Tj 0.5 Tc 10.191 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 680, 686)Tj 5.083 0.09 Td (\320)Tj 0.583 -0.09 Td (687, 700, 703)Tj -17.108 -1.25 Td (EOL terminal character)Tj 0.5 Tc 10.246 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 680, 687, 700, 703)Tj -11.496 -1.25 Td (EOL2 terminal character)Tj 0.5 Tc 10.746 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 680, 687, 700, 703)Tj /TT0 1 Tf -11.996 -1.25 Td (EOWNERDEAD)Tj /T1_1 1 Tf 6.417 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,4)Tj 0 Tc 1.25 0 Td (32)Tj /TT0 1 Tf -9.785 -1.25 Td (EPERM)Tj /T1_1 1 Tf 3.417 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,2)Tj 0 Tc 1.25 0 Td (56)Tj /TT0 1 Tf -6.785 -1.25 Td (EPIPE)Tj /T1_1 1 Tf 3.417 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,5)Tj 0 Tc 1.25 0 Td (37, 937)Tj -6.785 -1.25 Td [(Epoch, )-250(20,)-250(22, 126, 187, 189)]TJ 12.117 0.09 Td (\320)Tj 0.583 -0.09 Td (190, 640)Tj /TT0 1 Tf -12.701 -1.25 Td (ERANGE)Tj /T1_1 1 Tf 4.017 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,5)Tj 0 Tc 1.25 0 Td (0)Tj -7.385 -1.25 Td (ERASE terminal character)Tj 0.5 Tc 11.431 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 680, 686)Tj 5.083 0.09 Td (\320)Tj 0.583 -0.09 Td (687,)Tj -15.648 -1.25 Td (702)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (703)Tj -4.866 -1.25 Td (ERASE2 terminal character)Tj 0.5 Tc 11.931 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 681)Tj /TT0 1 Tf -13.181 -1.25 Td (err_cont)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(897,)-250(899)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(900)]TJ /TT0 1 Tf -1.35 -1.25 Td (err_dump)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(366,)-250(767, 897, 899)]TJ 22.133 65 Td [(de\336nition of,)-500(900)]TJ /TT0 1 Tf -1.35 -1.25 Td (err_exit)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(809,)-250(897, 899)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(900)]TJ /TT0 1 Tf -1.35 -1.25 Td (err_msg)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(897,)-250(899)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(901)]TJ /TT0 1 Tf -1.35 -1.25 Td (errno)Tj /T1_1 1 Tf 3.417 0 Td [(variable, )-250(14)]TJ 5.407 0.09 Td (\320)Tj 0.583 -0.09 Td (15, 42, 50, 55, 65, 67, 81, 121,)Tj -6.707 -1.25 Td (144, 256, 265, 277, 301, 309, 314, 321, 327)Tj 17.583 0.09 Td (\320)Tj 0.583 -0.09 Td (328,)Tj -18.166 -1.25 Td (330)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (331, 333, 337, 339, 345, 351, 359, 371, 376,)Tj -2.167 -1.25 Td (380, 384, 386, 446)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (447, 454, 471, 474, 482, 484,)Tj -8.166 -1.25 Td (487, 499, 502, 508, 513)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (514, 537, 546, 553, 564,)Tj -10.166 -1.25 Td (568, 579, 581, 584, 592, 608)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (610, 627,)Tj -12.166 -1.25 Td (637)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (638, 640, 683, 693, 745, 805, 899, 925, 937)Tj /TT0 1 Tf -4.866 -1.25 Td ()Tj /T1_1 1 Tf 5.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,1)Tj 0 Tc 1.25 0 Td (4)Tj 0.583 0.09 Td (\320)Tj 0.583 -0.09 Td (16, 27)Tj -11.205 -1.25 Td [(err)18(or)]TJ 1.35 -1.25 Td [(handling, )-250(14)]TJ 5.828 0.09 Td (\320)Tj 0.583 -0.09 Td (16)Tj -6.412 -1.25 Td [(logging, daemon,)-500(469)]TJ 9.812 0.09 Td (\320)Tj 0.583 -0.09 Td (473)Tj -0.018 Tc -10.396 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (covery)Tj 0.5 Tc 2.874 0 Td (,1)Tj 0 Tc 1.25 0 Td (6)Tj -0.018 Tc -4.98 -1.25 Td (ro)Tj 0 Tc 0.923 0 Td [(utines, standar)18(d, )-250(898)]TJ 9.469 0.09 Td (\320)Tj 0.583 -0.09 Td (904)Tj -0.018 Tc -10.975 -1.25 Td (TO)Tj 0 Tc 1.381 0 Td [(CTT)18(OU, )-250(65,)-250(250, 953)]TJ /TT0 1 Tf -2.731 -1.25 Td (err_quit)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(7,)-250(815, 897, 899, 912)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(901)]TJ /TT0 1 Tf -1.35 -1.25 Td (err_ret)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(897,)-250(899, 912)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(899)]TJ /TT0 1 Tf -1.35 -1.25 Td (err_sys)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(7,)-250(897, 899)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(899)]TJ /TT0 1 Tf -1.35 -1.25 Td (ESPIPE)Tj /T1_1 1 Tf 4.017 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,6)Tj 0 Tc 1.25 0 Td (7, 592)Tj /TT0 1 Tf -7.385 -1.25 Td (ESRCH)Tj /T1_1 1 Tf 3.417 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,3)Tj 0 Tc 1.25 0 Td (37)Tj /TT0 1 Tf -6.785 -1.25 Td (/etc/gettydefs)Tj /T1_1 1 Tf 8.817 0 Td [(\336le, )-250(290)]TJ /TT0 1 Tf -8.817 -1.25 Td (/etc/group)Tj /T1_1 1 Tf 6.417 0 Td [(\336le, )-250(17)]TJ 3.208 0.09 Td (\320)Tj 0.583 -0.09 Td (18, 177, 185)Tj 5.083 0.09 Td (\320)Tj 0.583 -0.09 Td (186)Tj /TT0 1 Tf -15.875 -1.25 Td (/etc/hosts)Tj /T1_1 1 Tf 6.417 0 Td [(\336le, )-250(186,)-250(795)]TJ /TT0 1 Tf -6.417 -1.25 Td (/etc/init)Tj /T1_1 1 Tf 5.817 0 Td [(dir)18(ectory)]TJ 0.5 Tc 3.914 0 Td (,2)Tj 0 Tc 1.25 0 Td (90)Tj /TT0 1 Tf -10.981 -1.25 Td (/etc/inittab)Tj /T1_1 1 Tf 7.617 0 Td [(\336le, )-250(290)]TJ /TT0 1 Tf -7.617 -1.25 Td (/etc/master.passwd)Tj /T1_1 1 Tf 11.217 0 Td [(\336le, )-250(185)]TJ /TT0 1 Tf -11.217 -1.25 Td (/etc/networks)Tj /T1_1 1 Tf 8.217 0 Td [(\336le, )-250(185)]TJ 3.708 0.09 Td (\320)Tj 0.583 -0.09 Td (186)Tj /TT0 1 Tf -12.508 -1.25 Td (/etc/passwd)Tj /T1_1 1 Tf 7.017 0 Td [(\336le, )-250(2,)-250(99, 135, 177)]TJ 8.208 0.09 Td (\320)Tj 0.583 -0.09 Td (178, 180, 182,)Tj -13.108 -1.25 Td (185)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (186)Tj /TT0 1 Tf -4.866 -1.25 Td (/etc/printer.conf)Tj /T1_1 1 Tf 10.617 0 Td [(\336le, )-250(794)]TJ 3.708 0.09 Td (\320)Tj 0.583 -0.09 Td (795, 799)Tj /TT0 1 Tf -14.908 -1.25 Td (/etc/protocols)Tj /T1_1 1 Tf 8.817 0 Td [(\336le, )-250(185)]TJ 3.708 0.09 Td (\320)Tj 0.583 -0.09 Td (186)Tj /TT0 1 Tf -13.108 -1.25 Td (/etc/pwd.db)Tj /T1_1 1 Tf 7.017 0 Td [(\336le, )-250(185)]TJ /TT0 1 Tf -7.017 -1.25 Td (/etc/rc)Tj /T1_1 1 Tf 4.617 0 Td [(\336le, )-250(189,)-250(291)]TJ /TT0 1 Tf -4.617 -1.25 Td (/etc/services)Tj /T1_1 1 Tf 8.217 0 Td [(\336le, )-250(185)]TJ 3.708 0.09 Td (\320)Tj 0.583 -0.09 Td (186)Tj /TT0 1 Tf -12.508 -1.25 Td (/etc/shadow)Tj /T1_1 1 Tf 7.017 0 Td [(\336le, )-250(99,)-250(185)]TJ 5.208 0.09 Td (\320)Tj 0.583 -0.09 Td (186)Tj /TT0 1 Tf -12.808 -1.25 Td (/etc/spwd.db)Tj /T1_1 1 Tf 7.617 0 Td [(\336le, )-250(185)]TJ /TT0 1 Tf -7.617 -1.25 Td (/etc/syslog.conf)Tj /T1_1 1 Tf 10.017 0 Td [(\336le, )-250(470)]TJ /TT0 1 Tf -10.017 -1.25 Td (/etc/termcap)Tj /T1_1 1 Tf 7.617 0 Td [(\336le, )-250(712)]TJ /TT0 1 Tf -7.617 -1.25 Td (/etc/ttys)Tj /T1_1 1 Tf 5.817 0 Td [(\336le, )-250(286)]TJ /TT0 1 Tf -5.817 -1.25 Td (ETIME)Tj /T1_1 1 Tf 3.417 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,8)Tj 0 Tc 1.25 0 Td (00, 805)Tj /TT0 1 Tf -6.785 -1.25 Td (ETIMEDOUT)Tj /T1_1 1 Tf 5.817 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,4)Tj 0 Tc 1.25 0 Td (07, 413, 415, 581, 800)Tj -9.185 -1.25 Td [(Evans, J.,)-500(949)]TJ /TT0 1 Tf 0 -1.25 TD (EWOULDBLOCK)Tj /T1_1 1 Tf 7.017 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,1)Tj 0 Tc 1.25 0 Td (6, 482, 609, 627)Tj /TT0 1 Tf -10.385 -1.25 Td (exec)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(10)]TJ 5.54 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0.25 Tc 0.945 0 Td (,1)Tj 0 Tc 1 0 Td (3, 23, 39)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (40, 43, 79, 82,)Tj -12.352 -1.25 Td (100, 121, 125, 197, 201, 203, 225, 229, 233)Tj 17.583 0.09 Td (\320)Tj 0.583 -0.09 Td (234,)Tj -18.166 -1.25 Td (249)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (257, 260)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (261, 264)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (266, 269)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (271, 275,)Tj -14.666 -1.25 Td (277, 282)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (283, 286)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (288, 290)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (292, 294, 305,)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47690 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(9.9)]TJ 30.603 0 Td [(Shell )-250(Execution )-250(of )-250(Pr)18(ograms)]TJ /T1_1 1 Tf 15.23 0 Td (305)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(of )-19(that )-19(name.)-519(The )-19(next )-19(line )-19(we )-19(enter )-19(to )-19(the )-19(shell )-19(is )-19(taken )-19(as )-19(the )-19(passwor)14(d, )-19(and )-19(the )-19(\336le )-19(is)]TJ 0 -1.2 TD [(not )-27(encrypted )-27(corr)17(ectly)]TJ 0.2774 Tc 10.229 0 Td (,s)Tj 0 Tc 0.951 0 Td [(ending )-27(junk )-27(to )-27(the )-27(printer)]TJ 0.5274 Tc 11.44 0 Td (.H)Tj 0 Tc 1.609 0 Td [(er)18(e)-277(we)-277(h)-1(ave )-27(two )-27(pr)17(ocesses )-27(trying)]TJ -24.229 -1.2 Td [(to )-95(r)18(ead )-95(fr)18(om )-95(the )-95(same )-95(device )-95(at )-95(the )-95(same )-95(time, )-95(and )-95(the )-95(r)18(esult )-95(depends )-95(on )-95(the )-95(system.)]TJ T* [(Job )-260(contr)18(ol, )-260(as )-260(we )-260(described )-260(earlier)]TJ 0.5104 Tc 16.626 0 Td (,h)Tj 0 Tc 1.342 0 Td [(andles )-260(this )-260(multiplexing )-260(of )-260(a )-260(single )-260(terminal)]TJ -17.968 -1.2 Td [(between multiple pr)18(ocesses in a better fashion.)]TJ 1.8 -1.2 Td [(Returning )-338(to )-338(our )-338(Bourne )-338(shell )-338(example, )-338(if )-338(we )-338(execute )-338(thr)18(ee )-338(pr)18(ocesses )-338(in )-338(the)]TJ -1.8 -1.2 Td [(pipeline, we can examine the pr)18(ocess contr)18(ol used by this shell:)]TJ /TT0 1 Tf 8.9995 0 0 8.9995 147.5911 581.335 Tm (ps -o pid,ppid,pgid,sid,comm | cat1 | cat2)Tj /T1_0 1 Tf 9.9994 0 0 9.9994 129.5922 564.4059 Tm (This pipeline generates the following output:)Tj /TT0 1 Tf 8.9995 0 0 8.9995 158.3905 548.7772 Tm [(PID )-600(PPID )-600(PGID)-1800(SID COMMAND)]TJ 0 -1.189 TD [(949 )-1200(947 )-1200(949 )-1200(949)-600(sh)]TJ -0.6 -1.189 Td [(1988 )-1200(949 )-1200(949 )-1200(949)-600(cat2)]TJ T* [(1989 )-600(1988)-1800(949 )-1200(949)-600(ps)]TJ T* [(1990 )-600(1988)-1800(949 )-1200(949)-600(cat1)]TJ /T1_0 1 Tf 7.9995 0 0 7.9995 183.589 486.9809 Tm [(Don\325t )-170(be )-170(alarmed )-170(if )-170(the )-170(output )-170(on )-170(your )-170(system )-170(doesn\325t )-170(show )-170(the )-170(pr)18(oper )-170(command )-170(names.)]TJ 0 -1.25 TD [(Sometimes you might get r)18(esults such as)]TJ /TT0 1 Tf 3.45 -2 Td [(PID )-600(PPID )-600(PGID)-1800(SID COMMAND)]TJ T* [(949 )-1200(947 )-1200(949 )-1200(949)-600(sh)]TJ -0.6 -1.25 Td [(1831 )-1200(949 )-1200(949 )-1200(949)-600(sh)]TJ T* [(1832 )-600(1831)-1800(949 )-1200(949)-600(ps)]TJ T* [(1833 )-600(1831)-1800(949 )-1200(949)-600(sh)]TJ /T1_0 1 Tf -2.85 -1.875 Td [(What\325s )-140(happening )-140(her)17(e)-390(is)-390(t)-1(hat )-140(the)]TJ /TT0 1 Tf 15.98 0 Td (ps)Tj /T1_0 1 Tf 1.59 0 Td [(pr)18(ocess )-140(is )-140(racing )-140(with )-140(the )-140(shell, )-140(which )-140(is )-140(forking )-140(and)]TJ -17.57 -1.25 Td [(executing )-162(the)]TJ /TT0 1 Tf 6.486 0 Td (cat)Tj /T1_0 1 Tf 2.212 0 Td [(commands. )-412(In)-411(this )-161(case, )-161(the )-161(shell )-161(hasn\325t )-161(yet )-161(completed )-161(the )-161(call )-161(to)]TJ /TT0 1 Tf 30.902 0 Td (exec)Tj /T1_0 1 Tf -39.6 -1.25 Td (when)Tj /TT0 1 Tf 2.727 0 Td (ps)Tj /T1_0 1 Tf 1.45 0 Td [(has obtained the list of pr)18(ocesses to print.)]TJ 9.9994 0 0 9.9994 129.5921 367.988 Tm [(Again, )-11(the )-11(last )-11(pr)17(ocess )-11(in )-11(the )-11(pipeline )-11(is )-11(the )-11(child )-11(of )-11(the )-11(shell, )-11(and )-11(all )-11(pr)18(evious )-11(pr)13(ocesses)]TJ 0 -1.2 Td (in the pipeline ar)Tj 0.25 Tc 7.502 0 Td (ec)Tj 0 Tc 1.173 0 Td [(hildr)18(en of the last pr)18(ocess. )-250(Figur)]TJ 0.25 Tc 14.448 0 Td (e9)Tj 0 Tc 1.229 0 Td (.10 shows what is happening.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 1914 2704.1 360 287.996 re S Q BT /TT0 1 Tf 7.999 0 0 7.999 204.5754 288.0154 Tm (sh)Tj /T1_0 1 Tf -0.483 -1.21 Td (\()Tj 0.333 -0.04 Td (949)Tj 1.5 0.04 Td (\))Tj ET q 0.99988 0 0 0.99988 0 0 cm q 1 0 0 1 277.8 284.81 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099988 0 0 0.099988 0 0 cm 1 j 1 J q 1 0 0 1 2778 2848.1001 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2274.25 2848.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2340.25 2848.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2406.25 2848.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2472.25 2848.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2538.25 2848.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2604.25 2848.25 cm 0 0 m 36 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 2848.25 cm 0 0 m 36 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 242.9563 287.9982 Tm (fork)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2778 2704.1 360 287.996 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 290.9302 287.9809 Tm (sh)Tj /T1_0 1 Tf -0.733 -1.21 Td (\()Tj 0.333 -0.04 Td (1988)Tj 2 0.04 Td (\))Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 3498 3064.1 360 288 re S Q BT /TT0 1 Tf 7.9976 0 0 7.9976 362.8911 323.9528 Tm (sh)Tj /T1_0 1 Tf -0.733 -1.21 Td (\()Tj 0.333 -0.04 Td (1989)Tj 2 0.04 Td (\))Tj ET q 0.9997 0 0 0.9997 0 0 cm q 1 0 0 1 421.8 320.81 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.09997 0 0 0.09997 0 0 cm 1 j 1 J q 1 0 0 1 4218 3208.1001 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3858.25 3208.25 cm 0 0 m 288 0 l S Q Q BT /TT0 1 Tf 7.9971 0 0 7.9971 394.0581 323.9334 Tm (exec)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 4218 3064.1 360 288 re S Q BT /TT0 1 Tf 7.9966 0 0 7.9966 434.8173 323.9139 Tm (ps)Tj /T1_0 1 Tf -0.733 -1.21 Td (\()Tj 0.333 -0.04 Td (1989)Tj 2 0.04 Td (\))Tj ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 349.8 320.81 cm 0 0 m -4.248 -6.048 l -6.624 -3.312 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 3498 3208.1001 cm 0 0 m -42.48 -60.48 l -66.24 -33.12 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 2896.25 cm 0 0 m 27 24 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3193.25 2944.25 cm 0 0 m 28 24 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3249.25 2993.25 cm 0 0 m 28 23 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3305.25 3041.25 cm 0 0 m 27 24 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3360.25 3089.25 cm 0 0 m 28 24 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3416.25 3137.25 cm 0 0 m 28 24 l S Q Q BT /TT0 1 Tf 6.0426 5.2369 -5.2369 6.0426 322.2683 301.2024 Tm (fork)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 3498 2344.1 360 287.996 re S Q BT /TT0 1 Tf 7.9957 0 0 7.9957 362.804 251.9139 Tm (sh)Tj /T1_0 1 Tf -0.733 -1.21 Td (\()Tj 0.333 -0.04 Td (1990)Tj 2 0.04 Td (\))Tj ET q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 421.8 248.81 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 4218 2488.1001 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3858.25 2488.25 cm 0 0 m 288 0 l S Q Q BT /TT0 1 Tf 7.9952 0 0 7.9952 393.9635 251.8988 Tm (exec)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 4218 2344.1 360 287.996 re S Q BT /TT0 1 Tf 7.9947 0 0 7.9947 429.9162 251.8837 Tm (cat1)Tj /T1_0 1 Tf -0.133 -1.21 Td (\()Tj 0.333 -0.04 Td (1990)Tj 2 0.04 Td (\))Tj ET q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 349.8 248.81 cm 0 0 m -6.624 3.384 l -4.248 6.12 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 3498 2488.1001 cm 0 0 m -66.24 33.84 l -42.48 61.2 l h S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3138.25 2800.25 cm 0 0 m 27 -24 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3193.25 2751.25 cm 0 0 m 28 -23 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3249.25 2703.25 cm 0 0 m 28 -24 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3305.25 2655.25 cm 0 0 m 27 -24 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3360.25 2607.25 cm 0 0 m 28 -24 l S Q Q q 0.099934 0 0 0.099934 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3416.25 2558.25 cm 0 0 m 28 -23 l S Q Q BT /TT0 1 Tf 6.0411 -5.2356 5.2356 6.0411 326.4319 272.9734 Tm (fork)Tj ET q 0.099928 0 0 0.099928 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4398.25 3057.25 cm 0 0 m 0 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4398.25 3021.25 cm 0 0 m 0 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4398.25 2986.25 cm 0 0 m 0 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4398.25 2951.25 cm 0 0 m 0 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4398.25 2916.25 cm 0 0 m 0 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4398.25 2880.25 cm 0 0 m 0 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4398.25 2844.25 cm 0 0 m 0 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4398.25 2809.25 cm 0 0 m 0 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4398.25 2774.25 cm 0 0 m 0 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4398.25 2738.25 cm 0 0 m 0 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4398.25 2703.25 cm 0 0 m 0 0 l S Q Q q 0.099928 0 0 0.099928 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4398.25 2668.25 cm 0 0 m 0 0 l S Q Q q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 439.8 263.21 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 4398 2632.1001 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099922 0 0 0.099922 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4398.25 2704.25 cm 0 0 m 0 0 l S Q Q BT /T1_0 1 Tf 7.9933 0 0 7.9933 441.429 284.2511 Tm (pipeline)Tj ET q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 295.8 198.41 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 2958 1984.1 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2958.25 2704.25 cm 0 0 m 0 -648 l S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J 2778 1696.1 360 287.996 re S Q BT /TT0 1 Tf 7.9928 0 0 7.9928 285.9425 187.0815 Tm (cat2)Tj /T1_0 1 Tf -0.133 -1.21 Td (\()Tj 0.333 -0.04 Td (1988)Tj 2 0.04 Td (\))Tj /TT0 1 Tf -0.75 6.885 Td (exec)Tj ET q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3174.25 1854.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3207.25 1867.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3240.25 1880.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3273.25 1893.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3306.25 1906.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3339.25 1920.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3372.25 1933.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3406.25 1946.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3439.25 1959.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3472.25 1972.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3504.25 1985.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3537.25 1998.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3570.25 2010.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3604.25 2023.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3637.25 2037.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3670.25 2050.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3703.25 2063.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3736.25 2076.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3769.25 2089.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3802.25 2102.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3835.25 2115.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3869.25 2128.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3902.25 2141.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3935.25 2154.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3968.25 2167.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4001.25 2180.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4034.25 2193.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4067.25 2206.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4100.25 2219.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4133.25 2232.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4166.25 2245.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4199.25 2258.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4232.25 2271.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4265.25 2285.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4298.25 2298.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4332.25 2311.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4365.25 2324.25 cm 0 0 m 0 0 l S Q Q q 0.09991 0 0 0.09991 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4398.25 2337.25 cm 0 0 m 0 0 l S Q Q BT /T1_0 1 Tf 7.4357 2.9305 -2.9305 7.4357 367.2732 197.789 Tm (pipeline)Tj ET q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 313.8 184.01 cm 0 0 m 6.048 4.32 l 7.416 1.008 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 3138 1840.1 cm 0 0 m 60.48 43.2 l 74.16 10.08 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3210.25 1869.25 cm 0 0 m -5 -3 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2108.25 2682.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2130.25 2654.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2152.25 2626.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2174.25 2598.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2197.25 2570.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2218.25 2542.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2241.25 2514.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2263.25 2486.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2285.25 2458.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2307.25 2430.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2329.25 2401.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2351.25 2373.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2373.25 2345.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2395.25 2317.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2417.25 2289.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2439.25 2261.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2462.25 2233.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2483.25 2205.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2506.25 2177.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2528.25 2149.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2550.25 2121.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2572.25 2093.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2594.25 2064.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2616.25 2036.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2638.25 2008.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2660.25 1980.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2682.25 1952.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2704.25 1924.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2727.25 1896.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2748.25 1868.25 cm 0 0 m 0 0 l S Q Q q 0.099904 0 0 0.099904 0 0 cm 12 w 1 j 1 J q 1 0 0 1 2771.25 1840.25 cm 0 0 m 0 0 l S Q Q BT /T1_0 1 Tf 4.3224 -5.497 5.497 4.3224 226.2081 253.3954 Tm [(noti\336cation to par)18(ent)]TJ 1.349 -1.429 Td (on termination)Tj ET q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 209.4 270.41 cm 0 0 m 5.472 -4.968 l 2.448 -6.984 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 2094 2704.1001 cm 0 0 m 54.72 -49.68 l 24.48 -69.84 l h S Q Q q 0.099898 0 0 0.099898 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2137.25 2639.25 cm 0 0 m -4 5 l S Q Q BT /T1_1 1 Tf 7.9914 0 0 7.9914 167.541 144.2541 Tm (Figure 9.10)Tj /T1_0 1 Tf 5.695 0 Td [(Pr)18(ocesses in the pipeline)]TJ /TT0 1 Tf 11.159 0 Td [(ps )267(| )267(cat1 )267(| )267(cat2)]TJ /T1_0 1 Tf 8.866 0 Td (when invoked by Bourne shell)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47691 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (514)Tj /T1_1 1 Tf 3.5 0 Td [(Advanced )-250(I/O)]TJ 38.741 0 Td [(Chapter )-250(14)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(We )-207(u)]TJ 0 Tc 2.263 0 Td [(se )-23(asynchr)18(onous )-23(I/O )-23(when )-23(we )-23(have )-23(other )-23(pr)17(ocessing )-23(to )-23(do )-23(and )-23(we )-23(don\325t )-23(want)]TJ -4.063 -1.2 Td [(to )-87(block )-87(while )-87(performing )-87(the )-87(I/O )-87(operation.)-590(However)]TJ 0.3374 Tc 25.1 0 Td (,w)Tj 0 Tc 1.421 0 Td [(hen )-87(we )-87(have )-87(completed )-87(the)]TJ -26.521 -1.2 Td [(pr)18(ocessing )-14(and )-14(\336nd )-14(that )-14(we )-14(still )-14(have )-14(asynchr)16(onous )-14(operations )-14(outstanding, )-14(we )-14(can )-14(call)]TJ 0 -1.2 Td (the)Tj /TT0 1 Tf 1.637 0 Td (aio_suspend)Tj /T1_1 1 Tf 6.85 0 Td (function to block until an operation completes.)Tj /TT0 1 Tf 8.9995 0 0 8.9995 147.5915 613.8632 Tm (#include )Tj 0 -2.021 TD (int aio_suspend\(const struct aiocb *const)Tj /T1_2 1 Tf 25.2 0 Td (list)Tj /TT0 1 Tf ([], int)Tj /T1_2 1 Tf 6.078 0 Td (nent)Tj /TT0 1 Tf (,)Tj -21.678 -1.189 Td (const struct timespec *)Tj /T1_2 1 Tf (timeout)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 17.251 -2.021 Td (Returns: 0 if OK,)Tj /TT1 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 5623.25 cm 0 0 m 0 606 l 3900 606 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 546.3544 Tm [(One )-216(of )-216(thr)18(ee )-216(things )-216(can )-216(cause)]TJ /TT0 1 Tf 14.505 0 Td (aio_suspend)Tj /T1_1 1 Tf 7.067 0 Td [(to )-217(r)18(eturn. )-467(If)-466(we )-217(ar)]TJ 0.4666 Tc 8.86 0 Td (ei)Tj 0 Tc 1.237 0 Td [(nterr)8(upted )-217(by )-217(a)]TJ -31.669 -1.2 Td [(signal, )-24(it )-24(r)17(eturns)]TJ /TT1 1 Tf 7.52 0 Td (!)Tj /T1_1 1 Tf 0.2743 Tc (1w)Tj 0 Tc 2.157 0 Td (ith)Tj /TT0 1 Tf 1.473 0 Td (errno)Tj /T1_1 1 Tf 3.274 0 Td [(set )-24(to)]TJ /TT0 1 Tf 2.65 0 Td (EINTR)Tj /T1_1 1 Tf 0.5243 Tc (.I)Tj 0.2743 Tc 4.111 0 Td (ft)Tj 0 Tc 0.933 0 Td [(he )-24(time )-24(limit )-24(speci\336ed )-24(by )-24(the )-24(optional)]TJ /T1_2 1 Tf -22.119 -1.2 Td (timeout)Tj /T1_1 1 Tf 3.848 0 Td [(ar)18(gument )-487(expir)18(es )-487(without )-487(any )-487(of )-487(the )-487(I/O )-487(operations )-487(completing, )-487(then)]TJ /TT0 1 Tf -3.848 -1.2 Td (aio_suspend)Tj /T1_1 1 Tf -0.018 Tc 6.878 0 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj /TT1 1 Tf 2.608 0 Td (!)Tj /T1_1 1 Tf 0.2775 Tc (1w)Tj 0 Tc 2.16 0 Td (ith)Tj /TT0 1 Tf 1.476 0 Td (errno)Tj /T1_1 1 Tf 3.278 0 Td [(set )-27(to)]TJ /TT0 1 Tf 2.656 0 Td (EAGAIN)Tj /T1_1 1 Tf 3.878 0 Td [(\(we )-27(can )-27(pass )-27(a )-27(null )-27(pointer )-27(for )-27(the)]TJ /T1_2 1 Tf -23.789 -1.2 Td (timeout)Tj /T1_1 1 Tf 3.376 0 Td [(ar)18(gument )-15(if )-15(we )-15(want )-15(to )-15(block )-15(without )-15(a )-15(time )-15(limit\).)-519(If )-15(any )-15(of )-15(the )-15(I/O )-15(operations)]TJ -3.376 -1.2 Td (complete,)Tj /TT0 1 Tf 4.716 0 Td (aio_suspend)Tj /T1_1 1 Tf -0.018 Tc 7.017 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns )-167(0.)-667(If )-167(all )-167(asynchr)18(onous )-167(I/O )-167(operations )-167(ar)]TJ 0.4173 Tc 21.465 0 Td (ec)Tj 0 Tc 1.34 0 Td (omplete)Tj -35.395 -1.2 Td (when we call)Tj /TT0 1 Tf 6.066 0 Td (aio_suspend)Tj /T1_1 1 Tf 0.25 Tc (,t)Tj 0 Tc 7.426 0 Td (hen)Tj /TT0 1 Tf 1.893 0 Td (aio_suspend)Tj /T1_1 1 Tf 6.85 0 Td [(will r)18(eturn without blocking.)]TJ -20.435 -1.2 Td (The)Tj /T1_2 1 Tf 2.18 0 Td (list)Tj /T1_1 1 Tf 1.784 0 Td [(ar)18(gument )-256(is )-256(a )-256(pointer )-256(to )-256(an )-256(array )-256(of )-256(AIO )-256(contr)18(ol )-256(blocks )-256(and )-256(the)]TJ /T1_2 1 Tf 31.402 0 Td (nent)Tj /T1_1 1 Tf -37.166 -1.2 Td [(ar)18(gument )-135(indicates )-135(the )-135(number )-135(of )-135(entries )-135(in )-135(the )-135(array)]TJ 0.6351 Tc 24.568 0 Td (.N)Tj 0 Tc 1.716 0 Td [(ull )-135(pointers )-135(in )-135(the )-135(array )-135(ar)18(e)]TJ -26.284 -1.2 Td [(skipped; )-198(the )-198(other )-198(entries )-198(must )-198(point )-198(to )-198(AIO )-198(contr)18(ol )-198(blocks )-198(that )-198(have )-198(been )-198(used )-198(to)]TJ 0 -1.2 TD [(initiate asynchr)18(onous I/O operations.)]TJ 1.8 -1.2 Td [(When )-141(we )-141(have )-141(pending )-141(asynchr)18(onous )-141(I/O )-141(operations )-141(that )-141(we )-141(no )-141(longer )-141(want )-141(to)]TJ -1.8 -1.2 Td (complete, we can attempt to cancel them with the)Tj /TT0 1 Tf 22.131 0 Td (aio_cancel)Tj /T1_1 1 Tf 6.25 0 Td (function.)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5822 383.274 Tm (#include )Tj 0 -2.021 TD (int aio_cancel\(int)Tj /T1_2 1 Tf 11.4 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 2.578 0 Td (truct aiocb *)Tj /T1_2 1 Tf (aiocb)Tj /TT0 1 Tf (\);)Tj /T1_1 1 Tf 14.81 -2.021 Td (Returns: \(see following\))Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.6 w 1 j 1 J q 1 0 0 1 1296.25 3424.25 cm 0 0 m 0 499 l 3900 499 l 3900 0 l 0 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 326.4812 Tm (The)Tj /T1_2 1 Tf 2.088 0 Td (fd)Tj /T1_1 1 Tf 1.192 0 Td [(ar)18(gument )-164(speci\336es )-164(the )-164(\336le )-164(descriptor )-164(with )-164(the )-164(outstanding )-164(asynchr)18(onous )-164(I/O)]TJ -3.281 -1.2 Td [(operations. )-541(If)-542(the)]TJ /T1_2 1 Tf 8.872 0 Td (aiocb)Tj /T1_1 1 Tf 2.578 0 Td [(ar)18(gument )-291(is)]TJ /TT0 1 Tf 6.104 0 Td (NULL)Tj /T1_1 1 Tf 0.5415 Tc (,t)Tj 0 Tc 3.518 0 Td [(hen )-291(the )-291(system )-291(attempts )-291(to )-291(cancel )-291(all)]TJ -21.07 -1.2 Td [(outstanding )-99(asynchr)18(onous )-99(I/O )-99(operations )-99(on )-99(the )-99(\336le.)-599(Otherwise, )-99(the )-99(system )-99(attempts)]TJ 0 -1.2 TD [(to )-148(cancel )-148(the )-148(single )-148(asynchr)16(onous )-148(I/O )-148(operation )-148(described )-148(by )-148(the )-148(AIO )-148(contr)18(ol )-148(block.)]TJ -0.092 Tc T* [(We )-512(s)]TJ 0 Tc 2.389 0 Td [(ay )-328(that )-328(the )-328(system )-328(\324)38(\324attempts\325)37(\325)-578(to)-578(c)1(ancel )-328(the )-328(operations, )-328(because )-328(ther)19(e)-578(is)-578(n)1(o)]TJ -2.389 -1.2 Td [(guarantee that the system will be able to cancel any operations that ar)18(e)-250(in)-250(p)]TJ -0.018 Tc (ro)Tj 0 Tc 34.122 0 Td [(gr)18(ess.)]TJ -32.322 -1.2 Td (The)Tj /TT0 1 Tf 1.924 0 Td (aio_cancel)Tj /T1_1 1 Tf 6.25 0 Td [(function can r)18(eturn one of four values:)]TJ /TT0 1 Tf -8.174 -1.92 Td (AIO_ALLDONE)Tj /T1_1 1 Tf 9.883 0 Td [(All )-98(of )-98(the )-98(operations )-98(completed )-98(befor)]TJ 0.3482 Tc 17.005 0 Td (et)Tj 0 Tc 1.153 0 Td [(he )-98(attempt )-98(to )-98(cancel)]TJ -18.158 -1.2 Td (them.)Tj /TT0 1 Tf -9.883 -1.72 Td (AIO_CANCELED)Tj /T1_1 1 Tf 9.883 0 Td [(All of the r)18(equested operations have been canceled.)]TJ /TT0 1 Tf -9.883 -1.72 Td (AIO_NOTCANCELED)Tj /T1_1 1 Tf 9.883 0 Td [(At )-451(least )-451(one )-451(of )-451(the )-451(r)18(equested )-451(operations )-451(could )-451(not )-451(be)]TJ T* (canceled.)Tj /TT1 1 Tf -9.883 -1.72 Td (!)Tj /T1_1 1 Tf 8.834 Tc (1T)Tj 0 Tc 10.496 0 Td [(he )-29(call )-29(to)]TJ /TT0 1 Tf 4.297 0 Td (aio_cancel)Tj /T1_1 1 Tf 6.279 0 Td [(failed. )-279(The)-279(err)18(or )-29(code )-29(will )-29(be )-29(stor)17(ed)]TJ -11.189 -1.2 Td (in)Tj /TT0 1 Tf 1.123 0 Td (errno)Tj /T1_1 1 Tf (.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47692 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (22)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(System )-250(Overview)]TJ 39.741 0 Td [(Chapter )-250(1)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2814 6062 864 360 re S Q BT /T1_1 1 Tf 7.9995 0 0 7.9995 304.6897 627.4024 Tm (application)Tj 1.446 -1.25 Td (code)Tj ET q 0.99994 0 0 0.99994 0 0 cm q 1 0 0 1 324.6 606.2 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099994 0 0 0.099994 0 0 cm 1 j 1 J q 1 0 0 1 3246 6062 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.99988 0 0 0.99988 0 0 cm q 1 0 0 1 324.6 570.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099988 0 0 0.099988 0 0 cm 1 j 1 J q 1 0 0 1 3246 5702 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 5990.25 cm 0 0 m 0 -216 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2814 5342 864 360 re S Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 291.3116 555.34 Tm (memory allocation)Tj 0.376 -1.25 Td (function)Tj /TT0 1 Tf 3.957 0 Td (malloc)Tj ET q 0.99982 0 0 0.99982 0 0 cm q 1 0 0 1 324.6 534.2 cm 0 0 m 1.8 -7.2 l -1.8 -7.2 l f Q Q q 0.099982 0 0 0.099982 0 0 cm 1 j 1 J q 1 0 0 1 3246 5342 cm 0 0 m 18 -72 l -18 -72 l h S Q Q q 0.99976 0 0 0.99976 0 0 cm q 1 0 0 1 324.6 498.2 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099976 0 0 0.099976 0 0 cm 1 j 1 J q 1 0 0 1 3246 4982 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3246.25 5270.25 cm 0 0 m 0 -216 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2958 4694 576 288 re S Q BT /TT0 1 Tf 7.9976 0 0 7.9976 314.9055 486.8939 Tm (sbrk)Tj /T1_1 1 Tf -1.234 -1.25 Td (system call)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 2526 4262 1440 720 re S Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 400.4558 460.2743 Tm (kernel)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 5198.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 5272.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 5346.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 5420.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 5494.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 5568.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 5642.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 5715.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 5790.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 5864.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 5938.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 6012.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 6086.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 6160.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 6234.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 6308.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 6381.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 6456.25 cm 0 0 m 0 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2670.25 6530.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2740.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2809.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2879.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2948.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3018.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3088.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3158.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3228.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3298.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3367.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3437.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3507.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3576.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3646.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3716.25 6566.25 cm 0 0 m 36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3786.25 6566.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 6492.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 6417.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 6344.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 6270.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 6196.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 6122.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 6048.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 5974.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 5900.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 5826.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 5751.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 5678.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 5604.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 5530.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 5456.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 5382.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 5308.25 cm 0 0 m 0 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3822.25 5234.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3752.25 5198.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3682.25 5198.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3612.25 5198.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3543.25 5198.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3473.25 5198.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3403.25 5198.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3334.25 5198.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3264.25 5198.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3194.25 5198.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3124.25 5198.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3054.25 5198.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2984.25 5198.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2915.25 5198.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2845.25 5198.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2776.25 5198.25 cm 0 0 m -36 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2706.25 5198.25 cm 0 0 m -36 0 l S Q Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 386.0378 586.1937 Tm [(user pr)18(ocess)]TJ /T1_0 1 Tf -22.225 -23.18 Td [(Figure 1.1)37(1)]TJ /T1_1 1 Tf 5.658 0 Td (Separation of)Tj /TT0 1 Tf 6.124 0 Td (malloc)Tj /T1_1 1 Tf 3.85 0 Td (function and)Tj /TT0 1 Tf 5.9 0 Td (sbrk)Tj /T1_1 1 Tf 2.65 0 Td (system call)Tj 9.9958 0 0 9.9958 147.5383 369.6447 Tm [(Her)18(e)-291(we)-291(h)1(ave )-41(a )-41(clean )-41(separation )-41(of )-41(duties: )-41(the )-41(system )-41(call )-41(in )-41(the )-41(kernel )-41(allocates )-41(an)]TJ -1.8 -1.2 Td [(additional )-289(chunk )-289(of )-289(space )-289(on )-289(behalf )-289(of )-289(the )-289(pr)18(ocess. )-539(The)]TJ /TT0 1 Tf 27.634 0 Td (malloc)Tj /T1_1 1 Tf 4.139 0 Td [(library )-289(function)]TJ -31.773 -1.2 Td [(manages this space fr)18(om user level.)]TJ 1.8 -1.2 Td [(Another )-180(example )-180(to )-180(illustrate )-180(the )-180(dif)17(fer)18(ence )-180(between )-180(a )-180(system )-180(call )-180(and )-180(a )-180(library)]TJ -1.8 -1.2 Td [(function )-105(is )-105(the )-105(interface )-105(the )-105(UNIX )-105(System )-105(pr)19(ovides )-105(to )-105(determine )-105(the )-105(curr)18(ent )-105(time )-105(and)]TJ 0 -1.2 TD [(date. )-263(Some)-264(operating )-13(systems )-13(pr)18(ovide )-13(one )-13(system )-13(call )-13(to )-13(r)18(eturn )-13(the )-13(time )-13(and )-13(another )-13(to)]TJ -0.018 Tc T* (re)Tj 0 Tc 0.856 0 Td [(turn )-135(the )-135(date.)-636(Any )-135(special )-135(handling, )-135(such )-135(as )-135(the )-135(switch )-135(to )-135(or )-135(fr)18(om )-135(daylight )-135(saving)]TJ -0.856 -1.2 Td [(time, )-126(is )-126(handled )-126(by )-126(the )-126(kernel )-126(or )-126(r)15(equir)18(es )-126(human )-126(intervention.)-626(The )-126(UNIX )-126(System, )-126(in)]TJ T* [(contrast, )-194(pr)18(ovides )-194(a )-194(single )-194(system )-194(call )-194(that )-194(r)17(eturns )-194(the )-194(number )-194(of )-194(seconds )-194(since )-194(the)]TJ T* [(Epoch: )-113(midnight, )-113(January )-113(1, )-113(1970, )-113(Coor)18(dinated )-113(Universal )-113(T)52(ime. )-363(Any)-364(interpr)18(etation )-113(of)]TJ 0 -1.2 Td [(this )-30(value, )-30(such )-30(as )-30(converting )-30(it )-30(to )-30(a )-30(human-r)16(eadable )-30(time )-30(and )-30(date )-30(using )-30(the )-30(local )-30(time)]TJ T* [(zone, )-165(is )-165(left )-165(to )-165(the )-165(user )-165(pr)18(ocess. )-415(The)-415(standar)]TJ 0.415 Tc 20.77 0 Td (dCl)Tj 0 Tc 2.441 0 Td [(ibrary )-165(pr)18(ovides )-165(r)18(outines )-165(to )-165(handle)]TJ -23.211 -1.2 Td [(most )-178(cases.)-679(These )-178(library )-178(r)18(outines )-178(handle )-178(such )-178(details )-178(as )-178(the )-178(various )-178(algorithms )-178(for)]TJ T* (daylight saving time.)Tj 1.8 -1.2 Td [(An )-82(application )-82(can )-82(either )-82(make )-82(a )-82(system )-82(call )-82(or )-82(call )-82(a )-82(library )-82(r)20(outine. )-332(Also)]TJ -0.018 Tc 34.283 0 Td (re)Tj 0 Tc 0.856 0 Td (alize)Tj -36.939 -1.2 Td [(that many library r)18(outines invoke a system call.)-500(This is shown in Figur)]TJ 0.25 Tc 31.35 0 Td (e1)Tj 0 Tc 1.229 0 Td (.12.)Tj -30.779 -1.2 Td [(Another )-118(dif)18(fer)18(ence )-118(between )-118(system )-118(calls )-118(and )-118(library )-118(functions )-118(is )-118(that )-118(system )-118(calls)]TJ -1.8 -1.2 Td [(usually )-265(pr)18(ovide )-265(a )-265(minimal )-265(interface, )-265(wher)18(eas )-265(library )-265(functions )-265(often )-265(pr)18(ovide )-265(mor)14(e)]TJ T* [(elaborate )-213(functionality)]TJ 0.7129 Tc 10.092 0 Td (.W)Tj 0 Tc 1.871 0 Td [(e\325ve )-213(seen )-213(this )-213(alr)18(eady )-213(in )-213(the )-213(dif)19(fer)18(ence )-213(between )-213(the)]TJ /TT0 1 Tf 24.637 0 Td (sbrk)Tj /T1_1 1 Tf -36.6 -1.2 Td [(system )-42(call )-42(and )-42(the)]TJ /TT0 1 Tf 8.867 0 Td (malloc)Tj /T1_1 1 Tf 3.892 0 Td [(library )-42(function.)]TJ -0.092 Tc 7.772 0 Td (We)Tj 0 Tc 1.387 0 Td [(\325ll )-42(see )-42(this )-42(dif)17(fer)18(ence )-42(again )-42(later)]TJ 0.2923 Tc 14.062 0 Td (,w)Tj 0 Tc 1.376 0 Td (hen)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47693 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (961)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm [(dir)18(ectory)]TJ 0.5 Tc 3.914 0 Td (,4)Tj 0 Tc -2.564 -1.25 Td [(curr)18(ent, )-250(4)]TJ 4.539 0.09 Td (\320)Tj 0.583 -0.09 Td [(5, 8, 13, 43, 50, 65, 94, 100, 1)55(15)]TJ 13.028 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (7,)Tj -18.329 -1.25 Td (120, 127, 130, 135)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(137, 178, 21)55(1, 233, 252, 315,)]TJ -8.166 -1.25 Td (317, 466)Tj -1.35 -1.25 Td [(\336le, )-250(95)]TJ 0 -1.25 TD [(home, )-250(2,)-250(8, 135, 21)55(1, 288, 292)]TJ T* [(ownership, )-250(101)]TJ 7.067 0.09 Td (\320)Tj 0.583 -0.09 Td (102)Tj -7.65 -1.25 Td [(par)18(ent, )-250(4,)-250(108, 125, 129)]TJ -0.018 Tc T* (ro)Tj 0 Tc 0.923 0 Td [(ot, )-250(4,)-250(8, 24, 139, 141, 233, 252, 283, 910)]TJ -2.273 -1.25 Td [(Dir)18(ectory Services daemon,)-500(185)]TJ /TT0 1 Tf T* (dirent)Tj /T1_0 1 Tf 4.017 0 Td [(str)8(uctur)18(e, )-250(5,)-250(7, 131, 133, 697, 822)]TJ /TT0 1 Tf -4.017 -1.25 Td ()Tj /T1_0 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,7)Tj 0.25 Tc 1.25 0 Td (,2)Tj 0 Tc 1 0 Td (9, 131)Tj /TT0 1 Tf -11.639 -1.25 Td (dirname)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(442)]TJ -4.617 -1.25 Td (DISCARD terminal character)Tj 0.5 Tc 12.803 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 680, 687)Tj /TT0 1 Tf -14.053 -1.25 Td (dlclose)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -4.617 -1.25 Td (dlerror)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -4.617 -1.25 Td ()Tj /T1_0 1 Tf 5.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj /TT0 1 Tf -10.039 -1.25 Td (dlopen)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -4.017 -1.25 Td (do_driver)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(732,)-250(739)]TJ -4.467 -1.25 Td [(de\336nition of,)-500(739)]TJ -1.35 -1.25 Td [(Dorwar)18(d, S.,)-500(229, 952)]TJ T* [(DOS, )-250(57,)-250(65)]TJ T* (dot,)Tj /T1_2 1 Tf 2.233 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td [(curr)18(ent dir)18(ectory)]TJ -3.65 -1.25 Td (dot-dot,)Tj /T1_2 1 Tf 4.049 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td [(par)18(ent dir)18(ectory)]TJ /TT0 1 Tf -5.466 -1.25 Td (dprintf)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(159,)-250(452, 945)]TJ -3.267 -1.25 Td [(de\336nition of,)-500(159)]TJ /TT0 1 Tf -1.35 -1.25 Td (drand48)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(442)]TJ -4.617 -1.25 Td (DSUSP terminal character)Tj 0.5 Tc 11.444 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 680, 688)Tj /TT0 1 Tf -12.694 -1.25 Td (dtruss)Tj /T1_0 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(497)]TJ /TT0 1 Tf -4.017 -1.25 Td (du)Tj /T1_0 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(1)]TJ -0.055 Tc 5.053 0 Td (11)Tj 0.25 Tc 0.945 0 Td (,1)Tj 0 Tc 1 0 Td (41, 909)Tj -8.615 -1.25 Td [(Duf)18(f, T)74(., )-250(88)]TJ /TT0 1 Tf T* (dup)Tj /T1_0 1 Tf 2.217 0 Td [(function, )-250(52,)-250(61, 74, 77, 79)]TJ 11.54 0.09 Td (\320)Tj 0.583 -0.09 Td (81, 148, 164, 231,)Tj -11.64 -1.25 Td (331, 468, 492)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (493, 592)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (593, 907)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (908, 921)Tj -15.85 -1.25 Td [(de\336nition of,)-500(79)]TJ /TT0 1 Tf -1.35 -1.25 Td (dup2)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(64,)-250(79)]TJ 7.04 0.09 Td (\320)Tj 0.583 -0.09 Td (81, 90, 148, 331, 539, 544,)Tj -7.74 -1.25 Td (550)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (551, 592, 618)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (619, 655, 728)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (729,)Tj -14.5 -1.25 Td (739)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (740, 907)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (908)Tj -7.683 -1.25 Td [(de\336nition of,)-500(79)]TJ /TT0 1 Tf -1.35 -4.75 Td (E2BIG)Tj /T1_0 1 Tf 3.417 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,5)Tj 0 Tc 1.25 0 Td (64)Tj /TT0 1 Tf -6.785 -1.25 Td (EACCES)Tj /T1_0 1 Tf 4.017 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,1)Tj 0 Tc 1.25 0 Td (4)Tj 0.583 0.09 Td (\320)Tj 0.583 -0.09 Td (15, 474, 487, 499, 918)Tj /TT0 1 Tf -8.551 -1.25 Td (EAGAIN)Tj /T1_0 1 Tf 4.017 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,1)Tj 0 Tc 1.25 0 Td (6, 376, 474, 482, 484, 487, 496)Tj 12.583 0.09 Td (\320)Tj 0.583 -0.09 Td (497,)Tj -17.851 -1.25 Td (499, 514, 563, 569)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (570, 581, 609, 627)Tj /TT0 1 Tf -10.867 -1.25 Td (EBADF)Tj /T1_0 1 Tf 3.417 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,5)Tj 0 Tc 1.25 0 Td (2, 916)Tj /TT0 1 Tf -6.785 -1.25 Td (EBUSY)Tj /T1_0 1 Tf 3.417 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,1)Tj 0 Tc 1.25 0 Td (6, 400, 410, 418)Tj /TT0 1 Tf -6.785 -1.25 Td (ECANCELED)Tj /T1_0 1 Tf 5.817 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,5)Tj 0 Tc 1.25 0 Td (15)Tj /TT0 1 Tf -9.185 -1.25 Td (ECHILD)Tj /T1_0 1 Tf 4.017 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,3)Tj 0 Tc 1.25 0 Td (33, 351, 371, 546)Tj /TT0 1 Tf -7.385 -1.25 Td (ECHO)Tj /T1_0 1 Tf 2.817 0 Td [(constant, )-250(676,)-250(686)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (687, 701, 705)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (707, 731)Tj /TT0 1 Tf -17.63 -1.25 Td (echo)Tj /T1_0 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(203)]TJ /TT0 1 Tf -2.817 -1.25 Td (ECHOCTL)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(676,)-250(686)]TJ /TT0 1 Tf -4.617 -1.25 Td (ECHOE)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(686)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (687, 701, 731)Tj /TT0 1 Tf 13.937 64.75 Td (ECHOK)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(687, 701, 731)]TJ /TT0 1 Tf -3.417 -1.25 Td (ECHOKE)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(676,)-250(687)]TJ /TT0 1 Tf -4.017 -1.25 Td (ECHONL)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(676,)-250(687, 701, 731)]TJ /TT0 1 Tf -4.017 -1.25 Td (ECHOPRT)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(676,)-250(686)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (687)Tj /TT0 1 Tf -13.263 -1.25 Td (ed)Tj /T1_0 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(367,)-250(369)]TJ 8.191 0.09 Td (\320)Tj 0.583 -0.09 Td (370, 496)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (497)Tj /TT0 1 Tf -14.558 -1.25 Td (EDEADLK)Tj /T1_0 1 Tf 4.617 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,4)Tj 0 Tc 1.25 0 Td (18)Tj /TT0 1 Tf -7.985 -1.25 Td (EEXIST)Tj /T1_0 1 Tf 4.017 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,1)Tj 0 Tc 1.25 0 Td (21, 558, 584)Tj /TT0 1 Tf -7.385 -1.25 Td (EFBIG)Tj /T1_0 1 Tf 3.417 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,9)Tj 0 Tc 1.25 0 Td (25)Tj -6.785 -1.25 Td [(ef)18(fective)]TJ 1.35 -1.25 Td [(gr)18(oup ID,)-500(98)]TJ 5.877 0.09 Td (\320)Tj 0.583 -0.09 Td (99, 101)Tj 3.083 0.09 Td (\320)Tj 0.583 -0.09 Td [(102, 108, 1)55(10, 140, 183,)]TJ -8.777 -1.25 Td (228, 233, 256, 258, 558, 587)Tj -1.35 -1.25 Td [(user ID,)-500(98)]TJ 5.095 0.09 Td (\320)Tj 0.583 -0.09 Td (99, 101)Tj 3.083 0.09 Td (\320)Tj 0.583 -0.09 Td [(102, 106, 1)55(10, 126, 140, 228,)]TJ -7.995 -1.25 Td (233, 253, 256)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (260, 276, 286, 288, 337, 381, 558,)Tj -6.166 -1.25 Td (562, 568, 573, 586)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (587, 637, 640, 809, 918)Tj -10.866 -1.25 Td [(ef)18(\336ciency)]TJ 1.35 -1.25 Td [(I/O, )-250(72)]TJ 3.562 0.09 Td (\320)Tj 0.583 -0.09 Td (74)Tj -4.146 -1.25 Td (standar)Tj 0.25 Tc 3.32 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O, )-250(153)]TJ 3.725 0.09 Td (\320)Tj 0.583 -0.09 Td (156)Tj /TT0 1 Tf -10.177 -1.25 Td (EIDRM)Tj /T1_0 1 Tf 3.417 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,5)Tj 0 Tc 1.25 0 Td (62)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (564, 568)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (570, 579)Tj /TT0 1 Tf -12.618 -1.25 Td (EINPROGRESS)Tj /T1_0 1 Tf 7.017 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,5)Tj 0 Tc 1.25 0 Td (19)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (520, 608)Tj /TT0 1 Tf -12.051 -1.25 Td (EINTR)Tj /T1_0 1 Tf 3.417 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,1)Tj 0 Tc 1.25 0 Td (6, 265)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (266, 301, 327)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (329, 339, 359,)Tj -13.418 -1.25 Td (370, 502, 508, 514, 545)Tj 9.583 0.09 Td (\320)Tj 0.583 -0.09 Td (546, 563)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (564,)Tj -14.333 -1.25 Td (569)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (570, 620)Tj /TT0 1 Tf -4.866 -1.25 Td (EINVAL)Tj /T1_0 1 Tf 4.017 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,4)Tj 0 Tc 1.25 0 Td (2, 47)Tj 2.083 0.09 Td (\320)Tj 0.583 -0.09 Td (48, 345, 389, 543, 545)Tj 9.083 0.09 Td (\320)Tj 0.583 -0.09 Td (546,)Tj -17.018 -1.25 Td (705)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (707, 774, 914)Tj /TT0 1 Tf -4.866 -1.25 Td (EIO)Tj /T1_0 1 Tf 2.217 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,3)Tj 0 Tc 1.25 0 Td (09, 321, 823)Tj 5.083 0.09 Td (\320)Tj 0.583 -0.09 Td (824, 826)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (827)Tj -15.418 -1.25 Td [(Ellis, M.,)-500(xxxii)]TJ /TT0 1 Tf T* (ELOOP)Tj /T1_0 1 Tf 3.417 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,1)Tj 0 Tc 1.25 0 Td (21)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (122)Tj /TT0 1 Tf -8.451 -1.25 Td (EMFILE)Tj /T1_0 1 Tf 4.017 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,5)Tj 0 Tc 1.25 0 Td (44, 546)Tj /TT0 1 Tf -7.385 -1.25 Td (EMSGSIZE)Tj /T1_0 1 Tf 5.217 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,6)Tj 0 Tc 1.25 0 Td (10)Tj /TT0 1 Tf -8.585 -1.25 Td (ENAMETOOLONG)Tj /T1_0 1 Tf 7.617 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,6)Tj 0 Tc 1.25 0 Td (5, 637, 640)Tj /TT0 1 Tf -10.985 -1.25 Td (encrypt)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -4.617 -1.25 Td (endgrent)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(183)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (184, 442, 452)Tj -10.49 -1.25 Td [(de\336nition of,)-500(183)]TJ /TT0 1 Tf -1.35 -1.25 Td (endhostent)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(452,)-250(597)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(597)]TJ /TT0 1 Tf -1.35 -1.25 Td (endnetent)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(452,)-250(598)]TJ -4.467 -1.25 Td [(de\336nition of,)-500(598)]TJ /TT0 1 Tf -1.35 -1.25 Td (endprotoent)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(452,)-250(598)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(598)]TJ /TT0 1 Tf -1.35 -1.25 Td (endpwent)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(180)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (181, 442, 452)Tj -10.49 -1.25 Td [(de\336nition of,)-500(180)]TJ /TT0 1 Tf -1.35 -1.25 Td (endservent)Tj /T1_0 1 Tf 6.417 0 Td [(function, )-250(452,)-250(599)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(599)]TJ /TT0 1 Tf -1.35 -1.25 Td (endspent)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(182)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(182)]TJ /TT0 1 Tf -1.35 -1.25 Td (endutxent)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(442,)-250(452)]TJ /TT0 1 Tf -5.817 -1.25 Td (ENFILE)Tj /T1_0 1 Tf 4.017 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,1)Tj 0 Tc 1.25 0 Td (6)Tj /TT0 1 Tf -7.385 -1.25 Td (ENOBUFS)Tj /T1_0 1 Tf 4.617 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,1)Tj 0 Tc 1.25 0 Td (6)Tj /TT0 1 Tf -7.985 -1.25 Td (ENOENT)Tj /T1_0 1 Tf 4.017 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,1)Tj 0 Tc 1.25 0 Td (5, 170, 445, 745, 774)Tj /TT0 1 Tf -7.385 -1.25 Td (ENOLCK)Tj /T1_0 1 Tf 4.017 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,1)Tj 0 Tc 1.25 0 Td (6)Tj /TT0 1 Tf -7.385 -1.25 Td (ENOMEM)Tj /T1_0 1 Tf 4.017 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,1)Tj 0 Tc 1.25 0 Td (6, 914)Tj /TT0 1 Tf -7.385 -1.25 Td (ENOMSG)Tj /T1_0 1 Tf 4.017 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,5)Tj 0 Tc 1.25 0 Td (64)Tj /TT0 1 Tf -7.385 -1.25 Td (ENOSPC)Tj /T1_0 1 Tf 4.017 0 Td [(err)18(or)]TJ 0.5 Tc 2.118 0 Td (,1)Tj 0 Tc 1.25 0 Td (6, 445)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47694 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (774)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(564 )-1200(/*)]TJ 0 -1.189 TD [(565 )-1800(*)-600(Store a record in the database.)-1200(Return 0 if OK, 1 if record)]TJ T* [(566 )-1800(*)-600(exists and DB_INSERT specified, -1 on error.)]TJ T* [(567 )-1800(*/)]TJ T* [(568 )-1200(int)]TJ 0 -1.189 TD [(569 )-1200(db_store\(DBHANDLE)-600(h, const char *key, const char *data, int flag\))]TJ 0 -1.189 TD [(570 )-1200({)]TJ T* [(571 )-2400(DB)-3600(*db = h;)]TJ T* [(572 )-2400(int )-2400(rc,)-600(keylen, datlen;)]TJ T* [(573 )-2400(off_t)-1800(ptrval;)]TJ 0 -1.783 TD [(574 )-2400(if)-600(\(flag != DB_INSERT && flag != DB_REPLACE &&)]TJ 0 -1.189 TD [(575 )-3600(flag)-600(!= DB_STORE\) {)]TJ T* [(576 )-4800(errno)]TJ 0.6 Tc 10.8 0 Td (=E)Tj 0 Tc 1.8 0 Td (INVAL;)Tj -12.6 -1.189 Td [(577 )-4800(return\(-1\);)]TJ T* [(578 )-2400(})]TJ T* [(579 )-2400(keylen)]TJ 0.6 Tc 9 0 Td (=s)Tj 0 Tc 1.8 0 Td (trlen\(key\);)Tj -10.8 -1.189 Td [(580 )-2400(datlen)]TJ 0.6 Tc 9 0 Td (=s)Tj 0 Tc 1.8 0 Td [(trlen\(data\) + 1;)-3600(/* +1 for newline at end */)]TJ -10.8 -1.189 Td [(581 )-2400(if)-600(\(datlen < DATLEN_MIN || datlen > DATLEN_MAX\))]TJ T* [(582 )-4800(err_dump\("db_store:)-600(invalid data length"\);)]TJ 0 -1.783 TD [(583 )-2400(/*)]TJ 0 -1.189 TD [(584 )-3000(*)-600(_db_find_and_lock calculates which hash table this new record)]TJ T* [(585 )-3000(*)-600(goes into \(db->chainoff\), regardless of whether it already)]TJ 0 -1.189 TD [(586 )-3000(*)-600(exists or not. The following calls to _db_writeptr change the)]TJ 0 -1.189 TD [(587 )-3000(*)-600(hash table entry for this chain to point to the new record.)]TJ T* [(588 )-3000(*)-600(The new record is added to the front of the hash chain.)]TJ 0 -1.189 TD [(589 )-3000(*/)]TJ 0 -1.189 TD [(590 )-2400(if)-600(\(_db_find_and_lock\(db, key, 1\) < 0\) { /* record not found */)]TJ 0 -1.189 TD [(591 )-4800(if)-600(\(flag == DB_REPLACE\) {)]TJ 0 -1.189 TD (592 )Tj 9.6 0 Td (rc)Tj 0.6 Tc 1.8 0 Td (=-)Tj 0 Tc 1.8 0 Td (1;)Tj -13.2 -1.189 Td (593 )Tj 9.6 0 Td (db->cnt_storerr++;)Tj -9.6 -1.189 Td (594 )Tj 9.6 0 Td (errno)Tj 0.6 Tc 3.6 0 Td (=E)Tj 0 Tc 1.8 0 Td [(NOENT; )-2400(/*)-600(error, record does not exist */)]TJ -15 -1.189 Td (595 )Tj 9.6 0 Td [(goto)-600(doreturn;)]TJ -9.6 -1.189 Td [(596 )-4800(})]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3016.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 277.5647 Tm [([564 )167(\320 )167(582])]TJ -0.092 Tc 5 0 Td [(We )-218(u)]TJ 0 Tc 2.274 0 Td (se)Tj /TT0 1 Tf 1.187 0 Td (db_store)Tj /T1_1 1 Tf 5.084 0 Td [(to )-34(add )-34(a )-34(r)18(ecor)18(d)-284(to)-284(the )-34(database.)]TJ -0.092 Tc 14.568 0 Td [(We )-218(\336)]TJ 0 Tc 2.276 0 Td [(rst )-34(validate )-34(the )-34(\337ag)]TJ -25.389 -1.2 Td [(value )-3(we )-3(ar)]TJ 0.253 Tc 5.134 0 Td (ep)Tj 0 Tc 1.333 0 Td [(assed. )-253(Then)-253(we )-3(make )-3(sur)]TJ 0.253 Tc 11.341 0 Td (et)Tj 0 Tc 1.058 0 Td [(hat )-3(the )-3(length )-3(of )-3(the )-3(data )-3(r)18(ecor)]TJ 0.253 Tc 13.555 0 Td (di)Tj 0 Tc 1.155 0 Td (s)Tj -33.576 -1.2 Td [(valid. )-282(If)-282(it )-32(isn\325t, )-32(we )-32(dr)18(op )-32(cor)]TJ 0.282 Tc 12.703 0 Td (ea)Tj 0 Tc 1.261 0 Td [(nd )-32(exit.)-532(This )-32(is )-32(OK )-32(for )-32(an )-32(example, )-32(but )-32(if )-32(we)]TJ -13.964 -1.2 Td (wer)Tj 0.5784 Tc 1.69 0 Td (eb)Tj 0 Tc 1.61 0 Td [(uilding )-328(a )-328(pr)17(oduction-quality )-328(library)]TJ 0.5783 Tc 16.717 0 Td (,w)Tj 0 Tc 1.662 0 Td [(e\325d )-328(r)18(eturn )-328(an )-328(err)18(or )-328(status)]TJ -21.68 -1.2 Td [(instead, which would give the application a chance to r)18(ecover)74(.)]TJ -5 -1.6 Td [([583 )167(\320 )167(596])]TJ -0.092 Tc 5 0 Td [(We )-242(c)]TJ 0 Tc 2.139 0 Td (all)Tj /TT0 1 Tf 1.39 0 Td (_db_find_and_lock)Tj /T1_1 1 Tf 10.508 0 Td [(to )-58(see )-58(if )-58(the )-58(r)19(ecor)]TJ 0.3077 Tc 7.719 0 Td (da)Tj 0 Tc 1.419 0 Td [(lr)18(eady )-58(exists.)-558(It )-58(is )-58(OK )-58(if)]TJ -23.173 -1.2 Td [(the )-47(r)18(ecor)]TJ 0.2974 Tc 3.907 0 Td (dd)Tj 0 Tc 1.519 0 Td [(oesn\325t )-47(exist )-47(and )-47(either)]TJ /TT0 1 Tf 10.106 0 Td (DB_INSERT)Tj /T1_1 1 Tf 5.697 0 Td (or)Tj /TT0 1 Tf 1.238 0 Td (DB_STORE)Tj /T1_1 1 Tf 5.097 0 Td [(is )-47(speci\336ed, )-47(or)]TJ -27.565 -1.2 Td [(if )-418(the )-418(r)18(ecor)]TJ 0.668 Tc 5.57 0 Td (da)Tj 0 Tc 1.779 0 Td [(lr)18(eady )-418(exists )-418(and )-418(either)]TJ /TT0 1 Tf 12.191 0 Td (DB_REPLACE)Tj /T1_1 1 Tf 6.668 0 Td (or)Tj /TT0 1 Tf 1.609 0 Td (DB_STORE)Tj /T1_1 1 Tf 5.468 0 Td (is)Tj -33.285 -1.2 Td [(speci\336ed. )-421(Replacing)-420(an )-171(existing )-171(r)19(ecor)]TJ 0.4206 Tc 17.298 0 Td (di)Tj 0 Tc 1.323 0 Td [(mplies )-171(that )-171(the )-171(keys )-171(ar)]TJ 0.4206 Tc 10.664 0 Td (ei)Tj 0 Tc 1.191 0 Td (dentical)Tj -30.476 -1.2 Td [(but )-160(that )-160(the )-160(data )-160(r)20(ecor)18(ds )-160(pr)18(obably )-160(dif)19(fer)]TJ 0.6597 Tc 18.583 0 Td (.N)Tj 0 Tc 1.741 0 Td [(ote )-160(that )-160(the )-160(\336nal )-160(ar)18(gument )-160(to)]TJ /TT0 1 Tf -20.323 -1.2 Td (_db_find_and_lock)Tj /T1_1 1 Tf 10.475 0 Td [(speci\336es )-25(that )-25(the )-25(hash )-25(chain )-25(must )-25(be )-25(write )-25(locked, )-25(as)]TJ -10.475 -1.2 Td [(we will pr)18(obably be modifying this hash chain.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47695 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(14.5)]TJ 35.16 0 Td [(Asynchr)18(onous )-250(I/O)]TJ /T1_1 1 Tf 10.673 0 Td (519)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 237.5857 670.2598 Tm (numop++;)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (break;)Tj -2.4 -2.14 Td (case READ_PENDING:)Tj 2.4 -1.189 Td (if \(\(err = aio_error\(&bufs[i].aiocb\)\) == EINPROGRESS\))Tj 2.4 -1.189 Td (continue;)Tj -2.4 -1.189 Td (if \(err != 0\) {)Tj 2.4 -1.189 Td (if \(err == -1\))Tj 2.4 -1.189 Td (err_sys\("aio_error failed"\);)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (err_exit\(err, "read failed"\);)Tj -4.8 -1.189 Td (})Tj 0 -2.14 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*Ar)Tj 0 Tc 3 0 Td (ead is complete; translate the buffer)Tj 0.6 Tc -3 -1.189 Td (*a)Tj 0 Tc 1.8 0 Td (nd write it.)Tj -1.8 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(\(n = aio_return\(&bufs[i].aiocb\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("aio_return failed"\);)Tj -2.4 -1.189 Td (if \(n != BSZ && !bufs[i].last\))Tj 2.4 -1.189 Td (err_quit\("short read \(%d/%d\)", n, BSZ\);)Tj -2.4 -1.189 Td (for \(j = 0; j < n; j++\))Tj 2.4 -1.189 Td (bufs[i].data[j] = translate\(bufs[i].data[j]\);)Tj -2.4 -1.189 Td (bufs[i].op = WRITE_PENDING;)Tj 0 -1.189 TD (bufs[i].aiocb.aio_fildes = ofd;)Tj T* (bufs[i].aiocb.aio_nbytes = n;)Tj 0 -1.189 TD (if \(aio_write\(&bufs[i].aiocb\) < 0\))Tj 2.4 -1.189 Td (err_sys\("aio_write failed"\);)Tj -2.4 -1.189 Td (/* retain our spot in aiolist */)Tj 0 -1.189 TD (break;)Tj -2.4 -2.14 Td (case WRITE_PENDING:)Tj 2.4 -1.189 Td (if \(\(err = aio_error\(&bufs[i].aiocb\)\) == EINPROGRESS\))Tj 2.4 -1.189 Td (continue;)Tj -2.4 -1.189 Td (if \(err != 0\) {)Tj 2.4 -1.189 Td (if \(err == -1\))Tj 2.4 -1.189 Td (err_sys\("aio_error failed"\);)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (err_exit\(err, "write failed"\);)Tj -4.8 -1.189 Td (})Tj 0 -2.14 TD (/*)Tj 0.6 Tc 0.6 -1.189 Td (*Aw)Tj 0 Tc 3 0 Td (rite is complete; mark the buffer as unused.)Tj -3 -1.189 Td (*/)Tj -0.6 -1.189 Td (if \(\(n = aio_return\(&bufs[i].aiocb\)\) < 0\))Tj 2.4 -1.189 Td (err_sys\("aio_return failed"\);)Tj -2.4 -1.189 Td (if \(n != bufs[i].aiocb.aio_nbytes\))Tj 2.4 -1.189 Td (err_quit\("short write \(%d/%d\)", n, BSZ\);)Tj -2.4 -1.189 Td (aiolist[i] = NULL;)Tj 0 -1.189 TD (bufs[i].op = UNUSED;)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47696 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (960)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (DATEMSK)Tj /T1_1 1 Tf 4.617 0 Td [(envir)18(onment variable,)-500(21)55(1)]TJ /TT0 1 Tf -4.617 -1.25 Td (db)Tj /T1_1 1 Tf 1.617 0 Td (library)Tj 0.5 Tc 2.87 0 Td (,7)Tj 0 Tc 1.25 0 Td (44, 952)Tj /TT0 1 Tf -5.737 -1.25 Td (DB)Tj /T1_1 1 Tf 1.617 0 Td [(str)8(uctur)18(e, )-250(756)]TJ 6.302 0.09 Td (\320)Tj 0.583 -0.09 Td (758, 760)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (762, 765)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (768, 773, 776,)Tj -14.135 -1.25 Td (782)Tj /TT0 1 Tf -2.7 -1.25 Td (_db_alloc)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(757,)-250(760)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (761)Tj -13.09 -1.25 Td [(de\336nition of,)-500(760)]TJ /TT0 1 Tf -1.35 -1.25 Td (db_close)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(745,)-250(749, 754, 761)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(745, 761)]TJ /TT0 1 Tf -1.35 -1.25 Td (db_delete)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(746,)-250(752, 754, 768)]TJ 12.04 0.09 Td (\320)Tj 0.583 -0.09 Td (769, 771,)Tj -15.74 -1.25 Td (945)Tj -1.35 -1.25 Td [(de\336nition of,)-500(746, 768)]TJ /TT0 1 Tf -1.35 -1.25 Td (_db_dodelete)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(757,)-250(768)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (769, 772, 776,)Tj -13.54 -1.25 Td (780)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (781, 787, 944)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (945)Tj -9.683 -1.25 Td [(de\336nition of,)-500(769)]TJ /TT0 1 Tf -1.35 -1.25 Td (db_fetch)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(745,)-250(748)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (749, 752, 754, 762,)Tj -11.14 -1.25 Td (767)Tj -1.35 -1.25 Td [(de\336nition of,)-500(745, 762)]TJ /TT0 1 Tf -1.35 -1.25 Td (_db_find_and_lock)Tj /T1_1 1 Tf 10.617 0 Td [(function, )-250(757,)-250(762)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (763,)Tj -16.54 -1.25 Td (767)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (768, 774)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (775, 777, 786)Tj -7.683 -1.25 Td [(de\336nition of,)-500(763)]TJ /TT0 1 Tf -1.35 -1.25 Td (_db_findfree)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(757,)-250(775, 777)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (778, 781)Tj -16.89 -1.25 Td [(de\336nition of,)-500(777)]TJ /TT0 1 Tf -1.35 -1.25 Td (_db_free)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(757)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (758, 761)Tj -10.49 -1.25 Td [(de\336nition of,)-500(761)]TJ /TT0 1 Tf -1.35 -1.25 Td (DBHANDLE)Tj /T1_1 1 Tf 5.217 0 Td [(data type,)-500(749, 754, 757, 761)]TJ 12.482 0.09 Td (\320)Tj 0.583 -0.09 Td (762, 768,)Tj -15.582 -1.25 Td (774, 779)Tj /TT0 1 Tf -2.7 -1.25 Td (_db_hash)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(757,)-250(764, 787)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(764)]TJ /TT0 1 Tf -1.35 -1.25 Td (DB_INSERT)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(745,)-250(749, 754, 774, 776)]TJ /TT0 1 Tf -5.817 -1.25 Td (dbm)Tj /T1_1 1 Tf 2.217 0 Td (library)Tj 0.5 Tc 2.87 0 Td (,7)Tj 0 Tc 1.25 0 Td (43)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (744, 952)Tj /TT0 1 Tf -8.003 -1.25 Td (dbm_clearerr)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -7.617 -1.25 Td (dbm_close)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(442,)-250(452)]TJ /TT0 1 Tf -5.817 -1.25 Td (dbm_delete)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(442,)-250(452)]TJ /TT0 1 Tf -6.417 -1.25 Td (dbm_error)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -5.817 -1.25 Td (dbm_fetch)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(442,)-250(452)]TJ /TT0 1 Tf -5.817 -1.25 Td (dbm_firstkey)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -7.617 -1.25 Td (dbm_nextkey)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(442,)-250(452)]TJ /TT0 1 Tf -7.017 -1.25 Td (dbm_open)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(442,)-250(452)]TJ /TT0 1 Tf -5.217 -1.25 Td (dbm_store)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(442,)-250(452)]TJ /TT0 1 Tf -5.817 -1.25 Td (db_nextrec)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(746,)-250(750, 752, 754, 769, 779,)]TJ -3.717 -1.25 Td (781, 787, 944)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (945)Tj -7.516 -1.25 Td [(de\336nition of,)-500(746, 779)]TJ /TT0 1 Tf -1.35 -1.25 Td (db_open)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(745)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (746, 749, 752, 754)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (757,)Tj -16.707 -1.25 Td (759)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (761, 781)Tj -3.517 -1.25 Td [(de\336nition of,)-500(745, 757)]TJ /TT0 1 Tf -1.35 -1.25 Td (_db_readdat)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(757,)-250(762, 768, 780, 945)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(768)]TJ /TT0 1 Tf -1.35 -1.25 Td (_db_readidx)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(757,)-250(764)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (765, 778, 780,)Tj -12.94 -1.25 Td (945)Tj -1.35 -1.25 Td [(de\336nition of,)-500(765)]TJ /TT0 1 Tf -1.35 -1.25 Td (_db_readptr)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(757,)-250(763, 765, 770,)]TJ -4.317 -1.25 Td (775)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (777, 787)Tj -3.517 -1.25 Td [(de\336nition of,)-500(765)]TJ /TT0 1 Tf 24.65 65 Td (DB_REPLACE)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(745,)-250(754, 774)]TJ /TT0 1 Tf -6.417 -1.25 Td (db_rewind)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(746,)-250(754, 760, 779, 781)]TJ -4.467 -1.25 Td [(de\336nition of,)-500(746, 779)]TJ /TT0 1 Tf -1.35 -1.25 Td (DB_STORE)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(745,)-250(754, 774)]TJ /TT0 1 Tf -5.217 -1.25 Td (db_store)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(745,)-250(747, 749, 752, 754, 769,)]TJ -2.517 -1.25 Td (771, 774, 781, 787)Tj -1.35 -1.25 Td [(de\336nition of,)-500(745, 774)]TJ /TT0 1 Tf -1.35 -1.25 Td (_db_writedat)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(757,)-250(769, 771)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (772,)Tj -15.54 -1.25 Td (775)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (777, 781, 787, 944)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (945)Tj -11.683 -1.25 Td [(de\336nition of,)-500(771)]TJ /TT0 1 Tf -1.35 -1.25 Td (_db_writeidx)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(522,)-250(757, 759, 770, 772,)]TJ -4.917 -1.25 Td (775)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (776, 781, 787, 945)Tj -3.517 -1.25 Td [(de\336nition of,)-500(772)]TJ /TT0 1 Tf -1.35 -1.25 Td (_db_writeptr)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(757,)-250(759, 770, 773,)]TJ -4.917 -1.25 Td (775)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (776, 778)Tj -3.517 -1.25 Td [(de\336nition of,)-500(773)]TJ /TT0 1 Tf -1.35 -1.25 Td (dcheck)Tj /T1_1 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(122)]TJ /TT0 1 Tf -4.017 -1.25 Td (dd)Tj /T1_1 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(275)]TJ -1.617 -1.25 Td [(deadlock, )-250(234,)-250(402, 490, 552, 721)]TJ 1.35 -1.25 Td [(avoidance, )-250(402)]TJ 6.851 0.09 Td (\320)Tj 0.583 -0.09 Td (407)Tj -0.018 Tc -7.435 -1.25 Td (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.25 Tc 1.367 0 Td (dl)Tj 0 Tc 1.152 0 Td [(ocking, )-250(490)]TJ -4.725 -1.25 Td [(Debian Almquist shell,)-500(4, 53)]TJ 0 -1.25 TD [(Debian Linux distribution,)-500(4)]TJ T* [(delayed write,)-500(81)]TJ /TT0 1 Tf T* (DELAYTIMER_MAX)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(40,)-250(43)]TJ -8.817 -1.25 Td [(descriptor set,)-500(503, 505, 532, 933)]TJ /TT0 1 Tf T* (detachstate)Tj /T1_1 1 Tf 7.017 0 Td [(attribute, )-250(427)]TJ 6.132 0.09 Td (\320)Tj 0.583 -0.09 Td (428)Tj /TT0 1 Tf -13.732 -1.25 Td (/dev/fd)Tj /T1_1 1 Tf 4.617 0 Td [(device, )-250(88)]TJ 4.702 0.09 Td (\320)Tj 0.583 -0.09 Td (89, 142, 696)Tj /TT0 1 Tf -9.902 -1.25 Td (/dev/fd/0)Tj /T1_1 1 Tf 5.817 0 Td [(device, )-250(89)]TJ /TT0 1 Tf -5.817 -1.25 Td (/dev/fd/1)Tj /T1_1 1 Tf 5.817 0 Td [(device, )-250(89,)-250(142)]TJ /TT0 1 Tf -5.817 -1.25 Td (/dev/fd/2)Tj /T1_1 1 Tf 5.817 0 Td [(device, )-250(89)]TJ -5.817 -1.25 Td (device number)Tj 1.35 -1.25 Td (major)Tj 0.5 Tc 2.484 0 Td (,5)Tj 0 Tc 1.25 0 Td (8)Tj 0.583 0.09 Td (\320)Tj 0.583 -0.09 Td (59, 137, 139, 465, 699)Tj -4.9 -1.25 Td (minor)Tj 0.5 Tc 2.623 0 Td (,5)Tj 0 Tc 1.25 0 Td (8)Tj 0.583 0.09 Td (\320)Tj 0.583 -0.09 Td (59, 137, 139, 465, 699)Tj -6.389 -1.25 Td [(device special \336le,)-500(137)]TJ 10.107 0.09 Td (\320)Tj 0.583 -0.09 Td (139)Tj /TT0 1 Tf -10.691 -1.25 Td (/dev/klog)Tj /T1_1 1 Tf 5.817 0 Td [(device, )-250(470)]TJ /TT0 1 Tf -5.817 -1.25 Td (/dev/kmem)Tj /T1_1 1 Tf 5.817 0 Td [(device, )-250(68)]TJ /TT0 1 Tf -5.817 -1.25 Td (/dev/log)Tj /T1_1 1 Tf 5.217 0 Td [(device, )-250(470,)-250(480, 928)]TJ /TT0 1 Tf -5.217 -1.25 Td (/dev/null)Tj /T1_1 1 Tf 5.817 0 Td [(device, )-250(73,)-250(86, 304)]TJ /TT0 1 Tf -5.817 -1.25 Td (/dev/stderr)Tj /T1_1 1 Tf 7.017 0 Td [(device, )-250(89,)-250(697)]TJ /TT0 1 Tf -7.017 -1.25 Td (/dev/stdin)Tj /T1_1 1 Tf 6.417 0 Td [(device, )-250(89,)-250(697)]TJ /TT0 1 Tf -6.417 -1.25 Td (/dev/stdout)Tj /T1_1 1 Tf 7.017 0 Td [(device, )-250(89,)-250(697)]TJ /TT0 1 Tf -7.017 -1.25 Td (dev_t)Tj /T1_1 1 Tf 3.417 0 Td [(data type,)-500(59, 137)]TJ 7.982 0.09 Td (\320)Tj 0.583 -0.09 Td (138)Tj /TT0 1 Tf -11.982 -1.25 Td (devtmpfs)Tj /T1_1 1 Tf 5.217 0 Td [(\336le system,)-500(139)]TJ /TT0 1 Tf -5.217 -1.25 Td (/dev/tty)Tj /T1_1 1 Tf 5.217 0 Td [(device, )-250(298,)-250(304, 312, 694, 700, 740)]TJ /TT0 1 Tf -5.217 -1.25 Td (/dev/tty1)Tj /T1_1 1 Tf 5.817 0 Td [(\336le, )-250(290)]TJ /TT0 1 Tf -5.817 -1.25 Td (/dev/zero)Tj /T1_1 1 Tf 5.817 0 Td [(device, )-250(576)]TJ 5.202 0.09 Td (\320)Tj 0.583 -0.09 Td (578)Tj /TT0 1 Tf -11.602 -1.25 Td (df)Tj /T1_1 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(141,)-250(910)]TJ /TT0 1 Tf -1.617 -1.25 Td (DIR)Tj /T1_1 1 Tf 2.217 0 Td [(str)8(uctur)18(e, )-250(7,)-250(131, 283, 697, 822)]TJ -2.217 -1.25 Td [(dir)18(ectories)]TJ 1.35 -1.25 Td [(\336les and,)-500(4)]TJ 5.075 0.09 Td (\320)Tj 0.583 -0.09 Td (8)Tj -5.658 -1.25 Td (har)Tj 0.25 Tc 1.459 0 Td (dl)Tj 0 Tc 1.152 0 Td (inks and,)Tj -0.055 Tc 4.546 0 Td (11)Tj 0 Tc 0.945 0 Td (7, 120)Tj -0.018 Tc -8.102 -1.25 Td (re)Tj 0 Tc 0.856 0 Td [(ading, )-250(130)]TJ 4.873 0.09 Td (\320)Tj 0.583 -0.09 Td (135)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47697 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (776)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(626 )-2400(})-600(else {)]TJ 24 0 Td (/* record found */)Tj -24 -1.189 Td [(627 )-4800(if)-600(\(flag == DB_INSERT\) {)]TJ 0 -1.189 TD (628 )Tj 9.6 0 Td (rc)Tj 0.6 Tc 1.8 0 Td (=1)Tj 3 Tc 1.8 0 Td (;/)Tj 0.6 Tc 4.2 0 Td (*e)Tj 0 Tc 1.8 0 Td (rror, record already in db */)Tj -19.2 -1.189 Td (629 )Tj 9.6 0 Td (db->cnt_storerr++;)Tj -9.6 -1.189 Td (630 )Tj 9.6 0 Td [(goto)-600(doreturn;)]TJ -9.6 -1.189 Td [(631 )-4800(})]TJ 0 -2.021 TD [(632 )-4800(/*)]TJ 0 -1.189 TD (633 )Tj 7.8 0 Td [(*)-600(We are replacing an existing record.)-1200(We know the new)]TJ -7.8 -1.189 Td (634 )Tj 7.8 0 Td [(*)-600(key equals the existing key, but we need to check if)]TJ -7.8 -1.189 Td (635 )Tj 7.8 0 Td [(*)-600(the data records are the same size.)]TJ -7.8 -1.189 Td (636 )Tj 7.8 0 Td (*/)Tj -7.8 -1.189 Td [(637 )-4800(if)-600(\(datlen != db->datlen\) {)]TJ T* (638 )Tj 9.6 0 Td [(_db_dodelete\(db\);)-1800(/* delete the existing record */)]TJ -9.6 -2.021 Td (639 )Tj 9.6 0 Td (/*)Tj -9.6 -1.189 Td (640 )Tj 10.2 0 Td [(*)-600(Reread the chain ptr in the hash table)]TJ -10.2 -1.189 Td (641 )Tj 10.2 0 Td [(*)-600(\(it may change with the deletion\).)]TJ -10.2 -1.189 Td (642 )Tj 10.2 0 Td (*/)Tj -10.2 -1.189 Td (643 )Tj 9.6 0 Td (ptrval)Tj 0.6 Tc 4.2 0 Td (=_)Tj 0 Tc 1.8 0 Td (db_readptr\(db, db->chainoff\);)Tj -15.6 -2.021 Td (644 )Tj 9.6 0 Td (/*)Tj -9.6 -1.189 Td (645 )Tj 10.2 0 Td [(*)-600(Append new index and data records to end of files.)]TJ -10.2 -1.189 Td (646 )Tj 10.2 0 Td (*/)Tj -10.2 -1.189 Td (647 )Tj 9.6 0 Td [(_db_writedat\(db,)-600(data, 0, SEEK_END\);)]TJ -9.6 -1.189 Td (648 )Tj 9.6 0 Td [(_db_writeidx\(db,)-600(key, 0, SEEK_END, ptrval\);)]TJ -9.6 -2.021 Td (649 )Tj 9.6 0 Td (/*)Tj -9.6 -1.189 Td (650 )Tj 10.2 0 Td [(*)-600(New record goes to the front of the hash chain.)]TJ -10.2 -1.189 Td (651 )Tj 10.2 0 Td (*/)Tj -10.2 -1.189 Td (652 )Tj 9.6 0 Td [(_db_writeptr\(db,)-600(db->chainoff, db->idxoff\);)]TJ -9.6 -1.189 Td (653 )Tj 9.6 0 Td (db->cnt_stor3++;)Tj -9.6 -1.189 Td [(654 )-4800(})-600(else {)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3251.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 301.1019 Tm [([626 )167(\320 )167(631])-668(Now )-120(we )-120(r)18(each )-120(the )-120(two )-120(cases )-120(in )-120(which )-120(a )-120(r)19(ecor)]TJ 0.3699 Tc 25.928 0 Td (dw)Tj 0 Tc 1.815 0 Td [(ith )-120(the )-120(same )-120(key )-120(alr)18(eady)]TJ -22.743 -1.2 Td [(exists )-212(in )-212(the )-212(database.)-712(If )-212(the )-212(caller )-212(isn\325t )-212(r)17(eplacing )-212(the )-212(r)18(ecor)18(d, )-212(we )-212(set )-212(the)]TJ -0.018 Tc 0 -1.2 TD (re)Tj 0 Tc 0.856 0 Td [(turn )-282(code )-282(to )-282(indicate )-282(that )-282(a )-282(r)16(ecor)]TJ 0.5322 Tc 16.033 0 Td (de)Tj 0 Tc 1.622 0 Td [(xists, )-282(incr)18(ement )-282(the )-282(count )-282(of )-282(the)]TJ -18.511 -1.2 Td [(number )-240(of )-240(stor)]TJ 0.4904 Tc 7.028 0 Td (ee)Tj 0 Tc 1.448 0 Td [(rr)18(ors, )-240(and )-240(jump )-240(to )-240(the )-240(end )-240(of )-240(the )-240(function, )-240(wher)]TJ 0.4905 Tc 23.241 0 Td (ew)Tj 0 Tc 1.804 0 Td (e)Tj -33.521 -1.2 Td [(handle the common r)18(eturn logic.)]TJ -5 -1.84 Td [([632 )167(\320 )167(654])-668(Case )-75(3: )-75(an )-75(existing )-75(r)16(ecor)18(d)-325(is)-325(b)-1(eing )-75(r)18(eplaced, )-75(and )-75(the )-75(length )-75(of )-75(the )-75(new )-75(data)]TJ -0.018 Tc 5 -1.2 Td (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.2627 Tc 1.367 0 Td (dd)Tj 0 Tc 1.485 0 Td [(if)18(fers )-13(fr)18(om )-13(the )-13(length )-13(of )-13(the )-13(existing )-13(one.)]TJ -0.092 Tc 18.519 0 Td [(We )-197(c)]TJ 0 Tc 2.094 0 Td (all)Tj /TT0 1 Tf 1.345 0 Td (_db_dodelete)Tj /T1_1 1 Tf 7.463 0 Td (to)Tj -33.128 -1.2 Td [(delete )-139(the )-139(existing )-139(r)17(ecor)18(d. )-389(Recall)-389(that )-139(this )-139(places )-139(the )-139(deleted )-139(r)17(ecor)18(d)-389(at)-389(the)]TJ 0 -1.2 Td [(head )-28(of )-28(the )-28(fr)18(ee )-28(list.)-528(Then )-28(we )-28(append )-28(the )-28(new )-28(r)20(ecor)18(d)-278(to)-278(the )-28(ends )-28(of )-28(the )-28(data)]TJ 0 -1.2 Td [(and )-100(index )-100(\336les )-100(by )-100(calling)]TJ /TT0 1 Tf 11.787 0 Td (_db_writedat)Tj /T1_1 1 Tf 7.55 0 Td (and)Tj /TT0 1 Tf 2.043 0 Td (_db_writeidx)Tj /T1_1 1 Tf 0.6003 Tc (.\()Tj 0 Tc 8.383 0 Td (Ther)Tj 0.3503 Tc 2.051 0 Td (ea)Tj -0.018 Tc 1.329 0 Td (re)Tj 0 Tc -33.144 -1.2 Td [(other )-3(ways )-3(to )-3(handle )-3(this )-3(case.)]TJ -0.092 Tc 14.046 0 Td [(We )-187(c)]TJ 0 Tc 2.084 0 Td [(ould )-3(try )-3(to )-3(\336nd )-3(a )-3(deleted )-3(r)19(ecor)]TJ 0.2528 Tc 13.514 0 Td (dt)Tj 0 Tc 1.19 0 Td [(hat )-3(has)]TJ -30.833 -1.2 Td [(the )-19(corr)18(ect )-19(data )-19(size.\))-519(The )-19(new )-19(r)19(ecor)18(d)-269(is)-269(added )-19(to )-19(the )-19(fr)18(ont )-19(of )-19(the )-19(hash )-19(chain)]TJ 0 -1.2 Td [(by )-234(calling)]TJ /TT0 1 Tf 5.032 0 Td (_db_writeptr)Tj /T1_1 1 Tf 0.7342 Tc (.T)Tj 0 Tc 8.797 0 Td (he)Tj /TT0 1 Tf 1.545 0 Td (cnt_stor3)Tj /T1_1 1 Tf 5.884 0 Td [(counter )-234(in )-234(the)]TJ /TT0 1 Tf 7.088 0 Td (DB)Tj /T1_1 1 Tf 1.684 0 Td [(str)8(uctur)18(e)]TJ -0.018 Tc -30.031 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(ds the number of times we\325ve executed this case.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47698 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (782)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(1. )-633(W)74(rite)]TJ /T1_2 1 Tf 4.3 0 Td [(nr)18(ec)]TJ /T1_1 1 Tf -0.018 Tc 1.973 0 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(ds to the database.)]TJ -7.129 -1.48 Td [(2. )-633(Read)-250(the)]TJ /T1_2 1 Tf 5.778 0 Td [(nr)18(ec)]TJ /T1_1 1 Tf -0.018 Tc 1.973 0 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(ds back by key value.)]TJ -8.607 -1.48 Td [(3. )-633(Perform)-250(the following loop)]TJ /T1_2 1 Tf 13.909 0 Td [(nr)18(ec)]TJ /TT0 1 Tf 1.973 0 Td (#)Tj /T1_2 1 Tf 0.799 0 Td (5)Tj /T1_1 1 Tf 0.75 0 Td (times.)Tj -15.798 -1.48 Td [(a. )-633(Read)]TJ 0.25 Tc 4.141 0 Td (ar)Tj 0 Tc 1.145 0 Td [(andom r)18(ecor)18(d.)]TJ -5.286 -1.48 Td [(b. )-580(Every)-250(37 times thr)18(ough the loop, delete a random r)18(ecor)18(d.)]TJ 0 -1.48 TD [(c. )-689(Every)]TJ -0.055 Tc 4.637 0 Td [(11 )-259(t)]TJ 0 Tc 1.669 0 Td [(imes )-148(thr)18(ough )-148(the )-148(loop, )-148(insert )-148(a )-148(new )-148(r)15(ecor)]TJ 0.3984 Tc 19.175 0 Td (da)Tj 0 Tc 1.509 0 Td [(nd )-148(r)18(ead )-148(the )-148(r)17(ecor)18(d)]TJ -25.358 -1.2 Td (back.)Tj -1.633 -1.48 Td [(d. )-522(Every)-523(17 )-273(times )-273(thr)18(ough )-273(the )-273(loop, )-273(r)18(eplace )-273(a )-273(random )-273(r)14(ecor)]TJ 0.5235 Tc 28.958 0 Td (dw)Tj 0 Tc 1.969 0 Td [(ith )-273(a )-273(new)]TJ -0.018 Tc -29.293 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(d. )-275(Every)-275(other )-25(one )-25(of )-25(these )-25(r)18(eplacements )-25(is )-25(a )-25(r)17(ecor)]TJ 0.2751 Tc 23.967 0 Td (dw)Tj 0 Tc 1.72 0 Td [(ith )-25(the )-25(same )-25(size)]TJ -26.543 -1.2 Td [(data; the alternate is a r)18(ecor)]TJ 0.25 Tc 12.14 0 Td (dw)Tj 0 Tc 1.695 0 Td (ith a longer data portion.)Tj -17.101 -1.48 Td [(4. )-633(Delete)-345(all )-95(the )-95(r)19(ecor)18(ds )-95(that )-95(this )-95(child )-95(wr)19(ote. )-345(Every)-345(time )-95(a )-95(r)18(ecor)18(d)-345(is)-345(deleted, )-95(ten)]TJ 1.633 -1.2 Td [(random r)18(ecor)18(ds ar)]TJ 0.25 Tc 8.152 0 Td (el)Tj 0 Tc 1.02 0 Td (ooked up.)Tj -10.805 -2.04 Td [(The )-111(number )-111(of )-111(operations )-111(performed )-111(on )-111(the )-111(database )-111(is )-111(counted )-111(by )-111(the)]TJ /TT1 1 Tf 33 0 Td (cnt_xxx)Tj /T1_1 1 Tf -34.8 -1.2 Td [(variables )-54(in )-54(the)]TJ /TT1 1 Tf 7.169 0 Td (DB)Tj /T1_1 1 Tf 1.504 0 Td [(str)8(uctur)18(e, )-54(which )-54(wer)]TJ 0.3038 Tc 9.25 0 Td (ei)Tj 0 Tc 1.074 0 Td [(ncr)18(emented )-54(in )-54(the )-54(functions.)-554(The )-54(number )-54(of)]TJ -18.996 -1.2 Td [(operations )-63(dif)18(fers )-63(fr)18(om )-63(one )-63(child )-63(to )-63(the )-63(next, )-63(since )-63(the )-63(random-number )-63(generator )-63(used)]TJ 0 -1.2 TD [(to )-57(select )-57(r)18(ecor)18(ds )-57(is )-57(initialized )-57(in )-57(each )-57(child )-57(to )-57(the )-57(child\325s )-57(pr)18(ocess )-57(ID.)]TJ 0.3068 Tc 30.912 0 Td (At)Tj 0 Tc 1.411 0 Td [(ypical )-57(count )-57(of)]TJ -32.323 -1.2 Td (the operations performed in each child is shown in Figur)Tj 0.25 Tc 25.085 0 Td (e2)Tj 0 Tc 1.229 0 Td (0.6.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1382.25 4278.25 cm 0 0 m 3727 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 378.1336 419.7496 Tm (Calls to)Tj /TT1 1 Tf 3.587 0 Td (fcntl)Tj /T1_1 1 Tf -3.622 -1.25 Td (\(per operation\))Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3507.25 4058.25 cm 0 0 m 1076 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 352.6435 397.7284 Tm [(Coarse-grained )-250(Fine-grained)]TJ 1.767 -1.25 Td [(locking )-3211(locking)]TJ -17.425 2 Td (Operation)Tj 29.47 1.25 Td (Operation)Tj 1.002 -1.25 Td (count)Tj -1.11 -1.25 Td (\()Tj /T1_2 1 Tf [(nr)18(ec)]TJ /T1_1 1 Tf 0.1666 Tc 2.223 0 Td (=2)Tj 0 Tc 1.273 0 Td (,000\))Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1382.25 3838.25 cm 0 0 m 3727 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1382.25 3818.25 cm 0 0 m 3727 0 l S Q Q BT /TT1 1 Tf 7.9981 0 0 7.9981 142.1929 373.7103 Tm (db_store)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 5.3 0 Td (DB_INSERT)Tj /T1_1 1 Tf [(,)-250(no)-250(empty r)18(ecor)18(d, appended)]TJ 6.2275 Tc 24.16 0 Td (28)Tj 0 Tc 12.344 0 Td (2,920)Tj /TT1 1 Tf -41.804 -1.25 Td (db_store)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 5.3 0 Td (DB_INSERT)Tj /T1_1 1 Tf 0.25 Tc (,e)Tj 0 Tc 6.379 0 Td [(mpty r)18(ecor)]TJ 0.25 Tc 4.839 0 Td (dr)Tj 0 Tc 1.238 0 Td (eused )Tj 11.704 0 Td (2)Tj 5.8666 Tc 6.727 0 Td (44)Tj 0 Tc 6.867 0 Td (68)Tj /TT1 1 Tf -43.054 -1.25 Td (db_store)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 5.3 0 Td (DB_REPLACE)Tj /T1_1 1 Tf 0.25 Tc (,d)Tj 0 Tc 7.111 0 Td [(if)18(fer)18(ent data length, appended)]TJ 6.2275 Tc 17.049 0 Td (28)Tj 0 Tc 13.094 0 Td (405)Tj /TT1 1 Tf -42.554 -1.25 Td (db_store)Tj /T1_1 1 Tf (,)Tj /TT1 1 Tf 5.3 0 Td (DB_REPLACE)Tj /T1_1 1 Tf 0.25 Tc (,e)Tj 0 Tc 6.979 0 Td (qual data length)Tj 6.2275 Tc 17.181 0 Td (22)Tj 0 Tc 13.094 0 Td (416)Tj /TT1 1 Tf -42.554 -1.25 Td (db_store)Tj /T1_1 1 Tf 0.25 Tc (,r)Tj 0 Tc 5.677 0 Td (ecor)Tj 0.25 Tc 1.846 0 Td (dn)Tj 0 Tc 1.443 0 Td (ot found)Tj 6.2275 Tc 20.494 0 Td (22 )Tj 13.594 0 Td (7)Tj 0 Tc 0.5 0 Td (1)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1382.25 3298.25 cm 0 0 m 3727 0 l S Q Q BT /TT1 1 Tf 7.9976 0 0 7.9976 142.1843 321.7035 Tm (db_fetch)Tj /T1_1 1 Tf 0.25 Tc (,r)Tj 0 Tc 5.677 0 Td (ecor)Tj 0.25 Tc 1.846 0 Td (df)Tj 0 Tc 1.194 0 Td (ound )Tj 20.743 0 Td (2)Tj 4.6166 Tc 6.727 0 Td (23)Tj 0 Tc 5.617 0 Td (2,873)Tj /TT1 1 Tf -41.804 -1.25 Td (db_fetch)Tj /T1_1 1 Tf 0.25 Tc (,r)Tj 0 Tc 5.677 0 Td (ecor)Tj 0.25 Tc 1.846 0 Td (dn)Tj 0 Tc 1.443 0 Td (ot found)Tj 6.2275 Tc 20.494 0 Td (22)Tj 0 Tc 12.344 0 Td (2,966)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1382.25 3078.25 cm 0 0 m 3727 0 l S Q Q BT /TT1 1 Tf 7.9971 0 0 7.9971 142.1758 299.6921 Tm (db_delete)Tj /T1_1 1 Tf 0.25 Tc (,r)Tj 0 Tc 6.277 0 Td (ecor)Tj 0.25 Tc 1.846 0 Td (df)Tj 0 Tc 1.194 0 Td (ound )Tj 20.143 0 Td (2)Tj 5.1166 Tc 6.727 0 Td (43)Tj 0 Tc 6.117 0 Td (,388)Tj /TT1 1 Tf -42.304 -1.25 Td (db_delete)Tj /T1_1 1 Tf 0.25 Tc (,r)Tj 0 Tc 6.277 0 Td (ecor)Tj 0.25 Tc 1.846 0 Td (dn)Tj 0 Tc 1.443 0 Td (ot found)Tj 6.2275 Tc 19.894 0 Td (22)Tj 0 Tc 13.094 0 Td (422)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1382.25 2858.25 cm 0 0 m 3727 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4583.25 2858.25 cm 0 0 m 0 1420 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4091.25 2858.25 cm 0 0 m 0 1200 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3507.25 2858.25 cm 0 0 m 0 1420 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5109.25 2858.25 cm 0 0 m 0 1420 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1382.25 2858.25 cm 0 0 m 0 1420 l S Q Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 209.408 267.6875 Tm (Figure 20.6)Tj /T1_1 1 Tf -0.09 Tc 5.695 0 Td (Ty)Tj 0 Tc 1.079 0 Td (pical count of operations performed by each child)Tj -0.092 Tc 9.9958 0 0 9.9958 129.5458 241.2986 Tm [(We )-243(p)]TJ 0 Tc 2.296 0 Td [(erformed )-58(about )-58(ten )-58(times )-58(mor)]TJ 0.3085 Tc 13.479 0 Td (ef)Tj 0 Tc 1.121 0 Td [(etches )-58(than )-58(stor)17(es )-58(or )-58(deletions, )-58(which )-58(is )-58(pr)16(obably)]TJ -16.896 -1.2 Td (typical of many database applications.)Tj 1.8 -1.2 Td [(Each )-13(child )-13(is )-13(performing )-13(these )-13(operations )-13(\(fetching, )-13(storing, )-13(and )-13(deleting\) )-13(only )-13(with)]TJ -1.8 -1.2 Td [(the )-74(r)18(ecor)18(ds )-74(that )-74(the )-74(child )-74(wr)16(ote. )-324(The)-325(concurr)18(ency )-74(contr)18(ols )-74(ar)]TJ 0.3243 Tc 27.505 0 Td (eb)Tj 0 Tc 1.356 0 Td [(eing )-74(exer)18(cised )-74(because)]TJ -28.861 -1.2 Td [(all )-48(the )-48(childr)18(en )-48(ar)]TJ 0.2984 Tc 7.898 0 Td (eo)Tj 0 Tc 1.323 0 Td [(perating )-48(on )-48(the )-48(same )-48(database )-48(\(albeit )-48(dif)16(fer)18(ent )-48(r)18(ecor)18(ds )-48(in )-48(the )-48(same)]TJ -9.222 -1.2 Td [(database\). )-376(The)-375(total )-126(number )-126(of )-126(r)19(ecor)18(ds )-126(in )-126(the )-126(database )-126(incr)18(eases )-126(in )-126(pr)18(oportion )-126(to )-126(the)]TJ 0 -1.2 Td [(number )-30(of )-30(childr)17(en. )-280(\(W)55(ith )-30(one )-30(child,)]TJ /T1_2 1 Tf 16.766 0 Td [(nr)18(ec)]TJ /T1_1 1 Tf -0.018 Tc 2.003 0 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(ds )-30(ar)]TJ 0.2804 Tc 3.559 0 Td (eo)Tj 0 Tc 1.305 0 Td [(riginally )-30(written )-30(to )-30(the )-30(database.)]TJ -0.055 Tc -24.49 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th two childr)18(en,)]TJ /T1_2 1 Tf 7.271 0 Td [(nr)18(ec)]TJ /TT0 1 Tf 1.973 0 Td (#)Tj /T1_2 1 Tf 0.799 0 Td (2)Tj /T1_1 1 Tf -0.018 Tc 0.75 0 Td (re)Tj 0 Tc 0.856 0 Td [(cor)18(ds ar)]TJ 0.25 Tc 3.529 0 Td (eo)Tj 0 Tc 1.275 0 Td (riginally written, and so on.\))Tj -0.092 Tc -15.889 -1.2 Td [(To )-428(t)]TJ 0 Tc 1.887 0 Td [(est )-244(the )-244(concurr)18(ency )-244(pr)18(ovided )-244(by )-244(coarse-grained )-244(locking )-244(versus )-244(\336ne-grained)]TJ -3.687 -1.2 Td [(locking )-143(and )-143(to )-143(compar)]TJ 0.3926 Tc 10.36 0 Td (et)Tj 0 Tc 1.198 0 Td [(he )-143(thr)18(ee )-143(types )-143(of )-143(locking )-143(\(no )-143(locking, )-143(advisory )-143(locking, )-143(and)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47699 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (756)Tj /T1_1 1 Tf 0.5 Tc 3.5 0 Td (AD)Tj 0 Tc 2.052 0 Td [(atabase )-250(Library)]TJ 36.689 0 Td [(Chapter )-250(20)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(27 )-1200(/*)]TJ 0 -1.189 TD [(28 )-1800(*)-600(Library\325s private representation of the database.)]TJ T* [(29 )-1800(*/)]TJ T* [(30 )-1200(typedef)-600(struct {)]TJ T* [(31 )-2400(int)-2400(idxfd; )-600(/*)-600(fd for index file */)]TJ 0 -1.189 TD [(32 )-2400(int)-2400(datfd; )-600(/*)-600(fd for data file */)]TJ 0 -1.189 TD [(33 )-2400(char)-1200(*idxbuf; /* malloc\325ed buffer for index record */)]TJ T* [(34 )-2400(char)-1200(*datbuf; /* malloc\325ed buffer for data record*/)]TJ T* [(35 )-2400(char)-1200(*name; )-1200(/*)-600(name db was opened under */)]TJ T* [(36 )-2400(off_t)-1200(idxoff; /* offset in index file of index record */)]TJ T* (37 )Tj 13.2 0 Td [(/*)-600(key is at \(idxoff + PTR_SZ + IDXLEN_SZ\) */)]TJ -13.2 -1.189 Td [(38 )-2400(size_t)-600(idxlen; /* length of index record */)]TJ T* (39 )Tj 13.2 0 Td [(/*)-600(excludes IDXLEN_SZ bytes at front of record */)]TJ -13.2 -1.189 Td (40 )Tj 13.2 0 Td [(/*)-600(includes newline at end of index record */)]TJ -13.2 -1.189 Td [(41 )-2400(off_t)-1200(datoff; /* offset in data file of data record */)]TJ T* [(42 )-2400(size_t)-600(datlen; /* length of data record */)]TJ T* (43 )Tj 13.2 0 Td [(/*)-600(includes newline at end */)]TJ -13.2 -1.189 Td [(44 )-2400(off_t)-1200(ptrval; /* contents of chain ptr in index record */)]TJ 0 -1.189 TD [(45 )-2400(off_t)-1200(ptroff; /* chain ptr offset pointing to this idx record */)]TJ 0 -1.189 TD [(46 )-2400(off_t)-1200(chainoff; /* offset of hash chain for this index record */)]TJ 0 -1.189 TD [(47 )-2400(off_t)-1200(hashoff; )-600(/*)-600(offset in index file of hash table */)]TJ T* [(48 )-2400(DBHASH)-600(nhash; )-1800(/*)-600(current hash table size */)]TJ T* [(49 )-2400(COUNT)-1200(cnt_delok; )-1800(/*)-600(delete OK */)]TJ 0 -1.189 TD [(50 )-2400(COUNT)-1200(cnt_delerr; )-1200(/*)-600(delete error */)]TJ 0 -1.189 TD [(51 )-2400(COUNT)-1200(cnt_fetchok; )-600(/*)-600(fetch OK */)]TJ T* [(52 )-2400(COUNT)-1200(cnt_fetcherr; /* fetch error */)]TJ 0 -1.189 TD [(53 )-2400(COUNT)-1200(cnt_nextrec; )-600(/*)-600(nextrec */)]TJ 0 -1.189 TD [(54 )-2400(COUNT)-1200(cnt_stor1; )-1800(/*)-600(store: DB_INSERT, no empty, appended */)]TJ 0 -1.189 TD [(55 )-2400(COUNT)-1200(cnt_stor2; )-1800(/*)-600(store: DB_INSERT, found empty, reused */)]TJ 0 -1.189 TD [(56 )-2400(COUNT)-1200(cnt_stor3; )-1800(/*)-600(store: DB_REPLACE, diff len, appended */)]TJ 0 -1.189 TD [(57 )-2400(COUNT)-1200(cnt_stor4; )-1800(/*)-600(store: DB_REPLACE, same len, overwrote */)]TJ 0 -1.189 TD [(58 )-2400(COUNT)-1200(cnt_storerr; )-600(/*)-600(store error */)]TJ 0 -1.189 TD [(59 )-1200(})-600(DB;)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3123.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9988 0 0 9.9988 129.5844 288.2634 Tm [([27 )167(\320 )167(48])-668(The)]TJ /TT0 1 Tf 5.973 0 Td (DB)Tj /T1_1 1 Tf 1.499 0 Td [(str)8(uctur)18(e)-299(is)-299(wher)18(e)-299(we)-299(keep )-49(all )-49(the )-49(information )-49(for )-49(each )-49(open )-49(database.)]TJ -3.472 -1.2 Td (The)Tj /TT0 1 Tf 2.04 0 Td (DBHANDLE)Tj /T1_1 1 Tf 5.166 0 Td [(value )-116(that )-116(is )-116(r)18(eturned )-116(by)]TJ /TT0 1 Tf 11.68 0 Td (db_open)Tj /T1_1 1 Tf 4.566 0 Td [(and )-116(used )-116(by )-116(all )-116(the )-116(other)]TJ -23.452 -1.2 Td [(functions )-148(is )-148(r)18(eally )-148(just )-148(a )-148(pointer )-148(to )-148(one )-148(of )-148(these )-148(str)10(uctur)18(es, )-148(but )-148(we )-148(hide )-148(that)]TJ 0 -1.2 Td [(fr)18(om the callers.)]TJ 0 -1.8 TD [(Since )-33(we )-33(stor)]TJ 0.2834 Tc 5.874 0 Td (ep)Tj 0 Tc 1.363 0 Td [(ointers )-33(and )-33(lengths )-33(as )-33(ASCII )-33(in )-33(the )-33(database, )-33(we )-33(convert )-33(these)]TJ -7.237 -1.2 Td [(to )-117(numeric )-117(values )-117(and )-117(save )-117(them )-117(in )-117(the)]TJ /TT0 1 Tf 18.538 0 Td (DB)Tj /T1_1 1 Tf 1.567 0 Td [(str)8(uctur)18(e. )-367(W)]TJ 0.367 Tc 5.744 0 Td (ea)Tj 0 Tc 1.346 0 Td [(lso )-117(save )-117(the )-117(hash)]TJ -27.195 -1.2 Td [(table )-59(size )-59(even )-59(though )-59(it )-59(is )-59(\336xed, )-59(just )-59(in )-59(case )-59(we )-59(decide )-59(to )-59(enhance )-59(the )-59(library)]TJ 0 -1.2 TD [(to )-446(allow )-446(callers )-446(to )-446(specify )-446(the )-446(size )-446(when )-446(the )-446(database )-446(is )-446(cr)18(eated )-446(\(see)]TJ T* [(Exer)18(cise 20.7\).)]TJ -4 -1.6 Td [([49 )167(\320 )167(59])-668(The )-103(last )-103(ten )-103(\336elds )-103(in )-103(the)]TJ /TT0 1 Tf 15.389 0 Td (DB)Tj /T1_1 1 Tf 1.553 0 Td [(str)8(uctur)]TJ 0.3529 Tc 3.49 0 Td (ec)Tj 0 Tc 1.276 0 Td [(ount )-103(both )-103(successful )-103(and )-103(unsuccessful)]TJ -17.708 -1.2 Td [(operations. )-406(If)-407(we )-156(want )-156(to )-156(analyze )-156(the )-156(performance )-156(of )-156(our )-156(database, )-156(we )-156(can)]TJ T* [(write )-148(a )-148(function )-148(to )-148(r)18(eturn )-148(these )-148(statistics, )-148(but )-148(for )-148(now )-148(we )-148(only )-148(maintain )-148(the)]TJ T* (counters.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47700 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (959)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (command)Tj 4.449 0.09 Td (-)Tj 0.333 -0.09 Td [(line ar)18(guments, )-250(203)]TJ -4.782 -1.25 Td [(Common Application Envir)18(onment,)]TJ /T1_2 1 Tf 16.474 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td (CAE)Tj -17.891 -1.25 Td (Common Open Softwar)Tj 0.25 Tc 10.538 0 Td (eE)Tj 0 Tc 1.34 0 Td [(nvir)18(onment,)]TJ /T1_2 1 Tf 5.963 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td (COSE)Tj -19.258 -1.25 Td (communication, network printer)Tj 0.5 Tc 14.384 0 Td (,7)Tj 0 Tc 1.25 0 Td (89)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (843)Tj /TT0 1 Tf -17.3 -1.25 Td ()Tj /T1_0 1 Tf 7.017 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7)Tj /TT0 1 Tf -11.239 -1.25 Td (comp_t)Tj /T1_0 1 Tf 4.017 0 Td [(data type,)-500(59)]TJ -4.017 -1.25 Td [(Computing Science Resear)18(ch Gr)18(oup,)]TJ /T1_2 1 Tf 16.684 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td (CSRG)Tj -18.101 -1.25 Td [(condition variable attributes,)-500(440)]TJ 14.849 0.09 Td (\320)Tj 0.583 -0.09 Td (441)Tj -15.432 -1.25 Td [(condition variables,)-500(413)]TJ 10.8 0.09 Td (\320)Tj 0.583 -0.09 Td (416)Tj /TT0 1 Tf -11.384 -1.25 Td (cond_signal)Tj /T1_0 1 Tf 7.017 0 Td [(function, )-250(416)]TJ /TT0 1 Tf -7.017 -1.25 Td (connect)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(331,)-250(451, 605)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (608, 610)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(61)55(1,)]TJ -16.707 -1.25 Td (621, 635, 641)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (642)Tj -7.516 -1.25 Td [(de\336nition of,)-500(605)]TJ -1.35 -1.25 Td [(connection establishment,)-500(605)]TJ 13.545 0.09 Td (\320)Tj 0.583 -0.09 Td (609)Tj /TT0 1 Tf -14.129 -1.25 Td (connect_retry)Tj /T1_0 1 Tf 8.217 0 Td [(function, )-250(607,)-250(614, 800, 808, 834)]TJ -6.867 -1.25 Td [(de\336nition of,)-500(606)]TJ 7.775 0.09 Td (\320)Tj 0.583 -0.09 Td (607)Tj -9.709 -1.25 Td [(contr)18(olling)]TJ 1.35 -1.25 Td [(pr)18(ocess, )-250(296)]TJ 5.628 0.09 Td (\320)Tj 0.583 -0.09 Td (297, 318)Tj -6.211 -1.25 Td [(terminal, )-250(63,)-250(233, 252, 270, 292, 295)]TJ 15.58 0.09 Td (\320)Tj 0.583 -0.09 Td (298, 301,)Tj -14.814 -1.25 Td (303)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(304, 306, 309, 31)55(1)]TJ 7.528 0.09 Td (\320)Tj 0.583 -0.09 Td (312, 318, 321, 377, 463,)Tj -10.278 -1.25 Td (465)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (466, 469, 480, 680, 685, 691, 694, 700, 702,)Tj -2.167 -1.25 Td (716, 724, 726)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (727, 898, 953)Tj -8.867 -1.25 Td [(cooked terminal mode,)-500(672)]TJ 0 -1.25 TD [(cooperating pr)18(ocesses, )-250(495,)-250(752, 945)]TJ 0 -1.25 Td [(Coor)18(dinated Universal T)55(ime,)]TJ /T1_2 1 Tf 13.344 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td (UTC)Tj -14.761 -1.25 Td [(copr)18(ocesses, )-250(548)]TJ 7.521 0.09 Td (\320)Tj 0.583 -0.09 Td (552, 721, 737)Tj -8.105 -1.25 Td [(copy-on-write, )-250(229,)-250(458)]TJ T* (cor)Tj 0.25 Tc 1.367 0 Td (ed)Tj 0 Tc 1.34 0 Td [(ump, )-250(74,)-250(928)]TJ /TT0 1 Tf -2.707 -1.25 Td (core)Tj /T1_0 1 Tf 2.817 0 Td [(\336le, )-250(1)]TJ -0.055 Tc 2.57 0 Td (11)Tj 0.25 Tc 0.945 0 Td (,1)Tj 0 Tc 1 0 Td (24, 275, 315, 317, 320, 332, 366, 681,)Tj -4.632 -1.25 Td (703, 909, 920, 922)Tj -2.7 -1.25 Td (COSE \(Common Open Softwar)Tj 0.25 Tc 13.752 0 Td (eE)Tj 0 Tc 1.34 0 Td [(nvir)18(onment\), )-250(32)]TJ -15.092 -1.25 Td [(count, link,)-500(44, 59, 1)55(14)]TJ 9.999 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (7, 130)Tj /TT0 1 Tf -11.528 -1.25 Td (cp)Tj /T1_0 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(141,)-250(528)]TJ /TT0 1 Tf -1.617 -1.25 Td (cpio)Tj /T1_0 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(127,)-250(142, 910)]TJ 10.191 0.09 Td (\320)Tj 0.583 -0.09 Td [(91)55(1)]TJ /TT0 1 Tf -13.591 -1.25 Td ()Tj /T1_0 1 Tf 5.217 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj -9.439 -1.25 Td (CR terminal character)Tj 0.5 Tc 9.615 0 Td (,6)Tj 0 Tc 1.25 0 Td (78, 680, 703)Tj /TT0 1 Tf -10.865 -1.25 Td (CR0)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(685)]TJ /TT0 1 Tf -2.217 -1.25 Td (CR1)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(685)]TJ /TT0 1 Tf -2.217 -1.25 Td (CR2)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(685)]TJ /TT0 1 Tf -2.217 -1.25 Td (CR3)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(685)]TJ /TT0 1 Tf -2.217 -1.25 Td (CRDLY)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(684)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (685, 689)Tj /TT0 1 Tf -12.063 -1.25 Td (CREAD)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(675,)-250(686)]TJ /TT0 1 Tf -3.417 -1.25 Td (creat)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(61,)-250(66, 68, 79, 89, 101, 104, 1)55(18,)]TJ -0.717 -1.25 Td (121, 125, 149, 331, 451, 491, 825)Tj 13.583 0.09 Td (\320)Tj 0.583 -0.09 Td (826, 909, 912)Tj -15.517 -1.25 Td [(de\336nition of,)-500(66)]TJ -1.35 -1.25 Td [(cr)18(eation mask, \336le mode,)-500(104)]TJ 13.135 0.09 Td (\320)Tj 0.583 -0.09 Td (105, 129, 141, 169,)Tj -11.019 -1.25 Td (233, 252, 466)Tj /TT0 1 Tf -2.7 -1.25 Td (cron)Tj /T1_0 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(259,)-250(382, 465, 470, 472)]TJ 14.191 0.09 Td (\320)Tj 0.583 -0.09 Td (474, 925)Tj /TT0 1 Tf -17.591 -1.25 Td (CRTSCTS)Tj /T1_0 1 Tf 4.617 0 Td [(constant, )-250(675,)-250(686)]TJ /TT0 1 Tf -4.617 -1.25 Td (CRTS_IFLOW)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(675,)-250(686)]TJ /TT0 1 Tf -6.417 -1.25 Td (CRTSXOFF)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(675,)-250(686)]TJ /TT0 1 Tf -5.217 -1.25 Td (crypt)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(287,)-250(298, 304, 442)]TJ /TT0 1 Tf -3.417 -1.25 Td (crypt)Tj /T1_0 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(298,)-250(700)]TJ /TT0 1 Tf 22.583 65 Td (CS5)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(684,)-250(686)]TJ /TT0 1 Tf -2.217 -1.25 Td (CS6)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(684,)-250(686)]TJ /TT0 1 Tf -2.217 -1.25 Td (CS7)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(684,)-250(686)]TJ /TT0 1 Tf -2.217 -1.25 Td (CS8)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(684,)-250(686, 706)]TJ 10.063 0.09 Td (\320)Tj 0.583 -0.09 Td (708)Tj /TT0 1 Tf -12.863 -1.25 Td (.cshrc)Tj /T1_0 1 Tf 4.017 0 Td [(\336le, )-250(289)]TJ /TT0 1 Tf -4.017 -1.25 Td (CSIZE)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(675,)-250(684, 686, 706)]TJ 12.063 0.09 Td (\320)Tj 0.583 -0.09 Td (707)Tj /TT0 1 Tf -16.063 -1.25 Td (csopen)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(653)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (654)Tj -9.29 -1.25 Td [(de\336nition of,)-500(654, 659)]TJ -1.35 -1.25 Td [(CSRG \(Computing Science Resear)18(ch Gr)18(oup\), )-250(xx,)]TJ 2.7 -1.25 Td (xxvi, 34)Tj /TT0 1 Tf -2.7 -1.25 Td (CSTOPB)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(675,)-250(686)]TJ /TT0 1 Tf -4.017 -1.25 Td (ctermid)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(442,)-250(452, 694, 700)]TJ 12.04 0.09 Td (\320)Tj 0.583 -0.09 Td (701)Tj -15.89 -1.25 Td [(de\336nition of,)-500(694)]TJ /TT0 1 Tf -1.35 -1.25 Td (ctime)Tj /T1_0 1 Tf 3.417 0 Td [(function, )-250(192)]TJ /TT0 1 Tf -3.417 -1.25 Td ()Tj /T1_0 1 Tf 5.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7)Tj /TT0 1 Tf -10.039 -1.25 Td (cu)Tj /T1_0 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(500)]TJ /TT0 1 Tf -1.617 -1.25 Td (cupsd)Tj /T1_0 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(465,)-250(793)]TJ -3.417 -1.25 Td [(curr)18(ent dir)18(ectory)]TJ 0.5 Tc 7.37 0 Td (,4)Tj 0 Tc 1.333 0.09 Td (\320)Tj 0.583 -0.09 Td (5, 8, 13, 43, 50, 65, 94, 100,)Tj -0.055 Tc -6.587 -1.25 Td (11)Tj 0 Tc 0.945 0 Td (5)Tj 0.583 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (7, 120, 127, 130, 135)Tj 8.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(137, 178, 21)55(1, 233,)]TJ -12.223 -1.25 Td (252, 315, 317, 466)Tj -2.7 -1.25 Td [(Curses, )-250(32)]TJ /TT0 1 Tf T* (curses)Tj /T1_0 1 Tf 4.017 0 Td (library)Tj 0.5 Tc 2.87 0 Td (,7)Tj 0 Tc 1.25 0 Td (12)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (713, 949, 953)Tj /TT0 1 Tf -9.803 -1.25 Td (cuserid)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(276)]TJ -4.617 -4.75 Td [(daemon, )-250(463)]TJ 5.934 0.09 Td (\320)Tj 0.583 -0.09 Td (480)Tj -5.167 -1.25 Td [(coding, )-250(466)]TJ 5.363 0.09 Td (\320)Tj 0.583 -0.09 Td (469)Tj -5.946 -1.25 Td [(conventions, )-250(474)]TJ 7.7 0.09 Td (\320)Tj 0.583 -0.09 Td (479)Tj -8.284 -1.25 Td [(err)18(or logging,)-500(469)]TJ 8.153 0.09 Td (\320)Tj 0.583 -0.09 Td (473)Tj /TT0 1 Tf -10.086 -1.25 Td (daemonize)Tj /T1_0 1 Tf 5.817 0 Td [(function, )-250(466,)-250(468, 480, 616, 618, 623,)]TJ -3.117 -1.25 Td (664, 815, 896, 929)Tj 7.583 0.09 Td (\320)Tj 0.583 -0.09 Td (930)Tj -9.517 -1.25 Td [(de\336nition of,)-500(467)]TJ -1.35 -1.25 Td [(Dang, X. T)74(., )-250(206,)-250(949)]TJ T* [(Darwin, )-250(xxii,)-250(xxvii, 35)]TJ /TT0 1 Tf T* (dash)Tj /T1_0 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(372)]TJ -2.817 -1.25 Td [(data, out-of-band,)-500(626)]TJ T* (data segment)Tj 1.35 -1.25 Td [(initialized, )-250(205)]TJ T* [(uninitialized, )-250(205)]TJ -1.35 -1.25 Td (data transfer)Tj 0.5 Tc 5.547 0 Td (,6)Tj 0 Tc 1.25 0 Td (10)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (623)Tj -8.464 -1.25 Td [(data types, primitive system,)-500(58)]TJ T* (database library)Tj 0.5 Tc 7.013 0 Td (,7)Tj 0 Tc 1.25 0 Td (43)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (787)Tj -8.579 -1.25 Td [(coarse-grained locking,)-500(752)]TJ T* [(concurr)18(ency)]TJ 0.5 Tc 5.341 0 Td (,7)Tj 0 Tc 1.25 0 Td (52)Tj 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (753)Tj -8.258 -1.25 Td [(\336ne-grained locking,)-500(752)]TJ T* [(implementation, )-250(746)]TJ 9.393 0.09 Td (\320)Tj 0.583 -0.09 Td (750)Tj -9.977 -1.25 Td [(performance, )-250(781)]TJ 7.97 0.09 Td (\320)Tj 0.583 -0.09 Td (786)Tj -8.554 -1.25 Td [(sour)18(ce code,)-500(753)]TJ 7.536 0.09 Td (\320)Tj 0.583 -0.09 Td (781)Tj -9.469 -1.25 Td [(database transactions,)-500(952)]TJ T* [(Date, C. J.,)-500(753, 949)]TJ T* [(date functions, time and,)-500(189)]TJ 13.052 0.09 Td (\320)Tj 0.583 -0.09 Td (196)Tj /TT0 1 Tf -13.636 -1.25 Td (date)Tj /T1_0 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(192,)-250(196, 371, 919, 944)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47701 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (958)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (cfgetispeed)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(331,)-250(677, 692)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(692)]TJ /TT0 1 Tf -1.35 -1.25 Td (cfgetospeed)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(331,)-250(677, 692)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(692)]TJ /TT0 1 Tf -1.35 -1.25 Td (cfsetispeed)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(331,)-250(677, 692)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(692)]TJ /TT0 1 Tf -1.35 -1.25 Td (cfsetospeed)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(331,)-250(677, 692)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(692)]TJ -1.35 -1.25 Td [(character special \336le,)-500(95, 138)]TJ 12.803 0.09 Td (\320)Tj 0.583 -0.09 Td (139, 699)Tj /TT0 1 Tf -13.387 -1.25 Td (CHAR_BIT)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(37)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (38)Tj /TT0 1 Tf -11.363 -1.25 Td (CHARCLASS_NAME_MAX)Tj /T1_1 1 Tf 11.217 0 Td [(constant, )-250(39,)-250(49)]TJ /TT0 1 Tf -11.217 -1.25 Td (CHAR_MAX)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(37)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (38)Tj /TT0 1 Tf -11.363 -1.25 Td (CHAR_MIN)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(37)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (38)Tj /TT0 1 Tf -11.363 -1.25 Td (chdir)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(8,)-250(121, 135)]TJ 9.04 0.09 Td (\320)Tj 0.583 -0.09 Td (137, 141, 222, 288,)Tj -10.34 -1.25 Td (331, 468, 912)Tj -1.35 -1.25 Td [(de\336nition of,)-500(135)]TJ -1.35 -1.25 Td [(Chen, D.,)-500(948)]TJ /TT0 1 Tf 0 -1.25 TD (CHILD_MAX)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(40,)-250(43, 49, 233)]TJ /TT0 1 Tf -5.817 -1.25 Td (chmod)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(106)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (108, 121, 125, 331, 452, 558,)Tj -7.34 -1.25 Td (641, 944)Tj -1.35 -1.25 Td [(de\336nition of,)-500(106)]TJ /TT0 1 Tf -1.35 -1.25 Td (chmod)Tj /T1_1 1 Tf 3.417 0 Td [(pr)18(ogram, )-250(99)]TJ 5.691 0.09 Td (\320)Tj 0.583 -0.09 Td (100, 559)Tj /TT0 1 Tf -9.691 -1.25 Td (chown)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(55,)-250(109)]TJ 7.54 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (0, 120)Tj 2.583 0.09 Td (\320)Tj 0.583 -0.09 Td (121, 125, 288,)Tj -12.952 -1.25 Td (331, 452, 558, 944)Tj -1.35 -1.25 Td [(de\336nition of,)-500(109)]TJ /TT0 1 Tf -1.35 -1.25 Td (chroot)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(141,)-250(480, 910, 928)]TJ /TT0 1 Tf -4.017 -1.25 Td (CIBAUDEXT)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(675,)-250(685)]TJ /TT0 1 Tf -5.817 -1.25 Td (CIGNORE)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(675,)-250(685)]TJ -4.617 -1.25 Td [(Clark, J. J.,)-500(xxxii)]TJ /TT0 1 Tf T* (CLD_CONTINUED)Tj /T1_1 1 Tf 8.217 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -8.217 -1.25 Td (CLD_DUMPED)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (CLD_EXITED)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (CLD_KILLED)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (CLD_STOPPED)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -7.017 -1.25 Td (CLD_TRAPPED)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -7.017 -1.25 Td (clearenv)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(212)]TJ /TT0 1 Tf -5.217 -1.25 Td (clearerr)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(151)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(151)]TJ /TT0 1 Tf -1.35 -1.25 Td (cli_args)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(656)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (658, 668)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (669)Tj -14.657 -1.25 Td [(de\336nition of,)-500(658)]TJ /TT0 1 Tf -1.35 -1.25 Td (cli_conn)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(636)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (637, 640, 659, 665, 897)Tj -10.49 -1.25 Td [(de\336nition of,)-500(636, 640)]TJ /TT0 1 Tf -1.35 -1.25 Td (client_add)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(662,)-250(665, 667)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(661)]TJ /TT0 1 Tf -1.35 -1.25 Td (client_alloc)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(661)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (662, 668)Tj -12.89 -1.25 Td [(de\336nition of,)-500(660)]TJ /TT0 1 Tf -1.35 -1.25 Td (client_cleanup)Tj /T1_1 1 Tf 8.817 0 Td [(function, )-250(814,)-250(824, 829)]TJ -7.467 -1.25 Td [(de\336nition of,)-500(829)]TJ /TT0 1 Tf -1.35 -1.25 Td (client_del)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(665,)-250(667)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(661)]TJ -1.35 -1.25 Td [(client\320server model,)-500(479)]TJ 11.043 0.09 Td (\320)Tj 0.583 -0.09 Td (480, 585)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (587)Tj /TT0 1 Tf -15.793 -1.25 Td (client_thread)Tj /T1_1 1 Tf 8.217 0 Td [(function, )-250(814,)-250(817, 824)]TJ -6.867 -1.25 Td [(de\336nition of,)-500(824)]TJ /TT0 1 Tf 24.65 65 Td (CLOCAL)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(318,)-250(675, 685)]TJ /TT0 1 Tf -4.017 -1.25 Td (clock)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(58)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (59)Tj -9.54 -1.25 Td [(clock tick,)-500(20, 42)]TJ 7.481 0.09 Td (\320)Tj 0.583 -0.09 Td (43, 49, 59, 270, 280)Tj /TT0 1 Tf -8.065 -1.25 Td (clock_getres)Tj /T1_1 1 Tf 7.617 0 Td [(function, )-250(190)]TJ -6.267 -1.25 Td [(de\336nition of,)-500(190)]TJ /TT0 1 Tf -1.35 -1.25 Td (clock_gettime)Tj /T1_1 1 Tf 8.217 0 Td [(function, )-250(189)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (190, 331, 408, 414,)Tj -12.14 -1.25 Td (437, 439)Tj -1.35 -1.25 Td [(de\336nition of,)-500(189)]TJ /TT0 1 Tf -1.35 -1.25 Td (clockid_t)Tj /T1_1 1 Tf 5.817 0 Td [(data type,)-500(189)]TJ /TT0 1 Tf -5.817 -1.25 Td (CLOCK_MONOTONIC)Tj /T1_1 1 Tf 9.417 0 Td [(constant, )-250(189)]TJ /TT0 1 Tf -9.417 -1.25 Td (clock_nanosleep)Tj /T1_1 1 Tf 9.417 0 Td [(function, )-250(373)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (375, 437, 439,)Tj -13.34 -1.25 Td (451, 462)Tj -1.35 -1.25 Td [(de\336nition of,)-500(375)]TJ /TT0 1 Tf -1.35 -1.25 Td (CLOCK_PROCESS_CPUTIME_ID)Tj /T1_1 1 Tf 14.817 0 Td [(constant, )-250(189)]TJ /TT0 1 Tf -14.817 -1.25 Td (CLOCK_REALTIME)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(189)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (190, 408, 437,)Tj -12.763 -1.25 Td (439, 581)Tj /TT0 1 Tf -2.7 -1.25 Td (clock_settime)Tj /T1_1 1 Tf 8.217 0 Td [(function, )-250(190,)-250(439)]TJ -6.867 -1.25 Td [(de\336nition of,)-500(190)]TJ /TT0 1 Tf -1.35 -1.25 Td (CLOCKS_PER_SEC)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(59)]TJ /TT0 1 Tf -8.817 -1.25 Td (clock_t)Tj /T1_1 1 Tf 4.617 0 Td [(data type,)-500(20, 58)]TJ 7.482 0.09 Td (\320)Tj 0.583 -0.09 Td (59, 280)Tj /TT0 1 Tf -12.682 -1.25 Td (CLOCK_THREAD_CPUTIME_ID)Tj /T1_1 1 Tf 14.217 0 Td [(constant, )-250(189)]TJ /TT0 1 Tf -14.217 -1.25 Td (clone)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(229)]TJ /TT0 1 Tf -3.417 -1.25 Td (close)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(8,)-250(52, 61, 66, 80)]TJ 11.04 0.09 Td (\320)Tj 0.583 -0.09 Td (81, 124, 128, 331,)Tj -12.34 -1.25 Td (451, 468, 474, 492, 532, 537)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (539, 544, 550, 553,)Tj -12.166 -1.25 Td (560, 577)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (578, 587, 592)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (593, 609, 616, 618,)Tj -10.333 -1.25 Td (625, 638)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (639, 641, 654)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (655, 657, 665,)Tj -10.333 -1.25 Td (667)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (669, 725)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (726, 728)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (729, 739)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (740, 761,)Tj -14.666 -1.25 Td (823, 826)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (827, 829, 833, 837)Tj -5.516 -1.25 Td [(de\336nition of,)-500(66)]TJ /TT0 1 Tf -1.35 -1.25 Td (closedir)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(5,)-250(7, 130)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (135, 452, 698, 823,)Tj -11.14 -1.25 Td (910)Tj -1.35 -1.25 Td [(de\336nition of,)-500(130)]TJ /TT0 1 Tf -1.35 -1.25 Td (closelog)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(452,)-250(470)]TJ -3.867 -1.25 Td [(de\336nition of,)-500(470)]TJ -1.35 -1.25 Td [(close-on-exec \337ag,)-500(80, 83, 252)]TJ 13.143 0.09 Td (\320)Tj 0.583 -0.09 Td (253, 479)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (480, 492)Tj /TT0 1 Tf -17.893 -1.25 Td (clrasync)Tj /T1_1 1 Tf 5.217 0 Td [(function, de\336nition of,)-500(940)]TJ /TT0 1 Tf -5.217 -1.25 Td (clr_fl)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(85,)-250(482)]TJ 7.54 0.09 Td (\320)Tj 0.583 -0.09 Td (483, 896, 937)Tj /TT0 1 Tf -12.14 -1.25 Td (clri)Tj /T1_1 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(122)]TJ /TT0 1 Tf -2.817 -1.25 Td (cmsgcred)Tj /T1_1 1 Tf 5.217 0 Td [(str)8(uctur)18(e, )-250(648)]TJ 6.302 0.09 Td (\320)Tj 0.583 -0.09 Td (651)Tj /TT0 1 Tf -12.102 -1.25 Td (CMSG_DATA)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(645)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (646, 648, 650, 652)Tj -11.09 -1.25 Td [(de\336nition of,)-500(645)]TJ /TT0 1 Tf -1.35 -1.25 Td (CMSG_FIRSTHDR)Tj /T1_1 1 Tf 8.217 0 Td [(function, )-250(645,)-250(652)]TJ -6.867 -1.25 Td [(de\336nition of,)-500(645)]TJ /TT0 1 Tf -1.35 -1.25 Td (cmsghdr)Tj /T1_1 1 Tf 4.617 0 Td [(str)8(uctur)18(e, )-250(645)]TJ 6.302 0.09 Td (\320)Tj 0.583 -0.09 Td (647, 649, 651)Tj /TT0 1 Tf -11.502 -1.25 Td (CMSG_LEN)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(645)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (647, 649, 651)Tj -10.49 -1.25 Td [(de\336nition of,)-500(645)]TJ /TT0 1 Tf -1.35 -1.25 Td (CMSG_NXTHDR)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(645,)-250(650, 652)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(645)]TJ /TT0 1 Tf -1.35 -1.25 Td (CMSPAR)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(675,)-250(685, 690)]TJ -4.017 -1.25 Td [(codes, option,)-500(31)]TJ /TT0 1 Tf T* (COLL_WEIGHTS_MAX)Tj /T1_1 1 Tf 10.017 0 Td [(constant, )-250(39,)-250(43, 49)]TJ /TT0 1 Tf -10.017 -1.25 Td (COLUMNS)Tj /T1_1 1 Tf 4.617 0 Td [(envir)18(onment variable,)-500(21)55(1)]TJ -4.617 -1.25 Td [(Comer)74(,)-250(D.)-250(E., )-250(744,)-250(949)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47702 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 465.375 708 Tm (Index)Tj /T1_1 1 Tf 4.525 0 Td (957)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (B1800)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(692)]TJ /TT0 1 Tf -3.417 -1.25 Td (B19200)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(692)]TJ /TT0 1 Tf -4.017 -1.25 Td (B200)Tj /T1_0 1 Tf 2.817 0 Td [(constant, )-250(692)]TJ /TT0 1 Tf -2.817 -1.25 Td (B2400)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(692)]TJ /TT0 1 Tf -3.417 -1.25 Td (B300)Tj /T1_0 1 Tf 2.817 0 Td [(constant, )-250(692)]TJ /TT0 1 Tf -2.817 -1.25 Td (B38400)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(692)]TJ /TT0 1 Tf -4.017 -1.25 Td (B4800)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(692)]TJ /TT0 1 Tf -3.417 -1.25 Td (B50)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(692)]TJ /TT0 1 Tf -2.217 -1.25 Td (B57600)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(692)]TJ /TT0 1 Tf -4.017 -1.25 Td (B600)Tj /T1_0 1 Tf 2.817 0 Td [(constant, )-250(692)]TJ /TT0 1 Tf -2.817 -1.25 Td (B75)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(692)]TJ /TT0 1 Tf -2.217 -1.25 Td (B9600)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(692)]TJ -3.417 -1.25 Td [(Bach, M. J.,)-500(xix, xxxii, 74, 81, 1)55(12, 1)55(16, 229, 907, 948)]TJ 0 -1.25 TD [(backgr)18(ound pr)18(ocess gr)18(oup, )-250(296,)-250(300, 302, 304,)]TJ 2.7 -1.25 Td (306)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (307, 309, 321, 369, 377, 944)Tj -4.866 -1.25 Td [(backof)18(f, exponential,)-500(606)]TJ T* [(Barkley)111(,)-250(R.)-250(E., )-250(948)]TJ T* [(barrier attributes,)-500(441)]TJ 9.814 0.09 Td (\320)Tj 0.583 -0.09 Td (442)Tj -10.398 -1.25 Td [(barriers, )-250(418)]TJ 5.765 0.09 Td (\320)Tj 0.583 -0.09 Td (422)Tj /TT0 1 Tf -6.348 -1.25 Td (basename)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(442)]TJ /TT0 1 Tf -5.217 -1.25 Td (bash)Tj /T1_0 1 Tf 2.817 0 Td [(pr)18(ogram, )-250(85,)-250(372)]TJ /TT0 1 Tf -2.817 -1.25 Td (.bash_login)Tj /T1_0 1 Tf 7.017 0 Td [(\336le, )-250(289)]TJ /TT0 1 Tf -7.017 -1.25 Td (.bash_profile)Tj /T1_0 1 Tf 8.217 0 Td [(\336le, )-250(289)]TJ -8.217 -1.25 Td [(Bass, J.,)-500(485)]TJ T* [(baud rate, terminal I/O,)-500(692)]TJ 12.776 0.09 Td (\320)Tj 0.583 -0.09 Td (693)Tj -13.36 -1.25 Td (Berkeley Softwar)Tj 0.25 Tc 7.537 0 Td (eD)Tj 0 Tc 1.503 0 Td (istribution,)Tj /T1_2 1 Tf 5.378 0 Td (see)Tj /T1_0 1 Tf 1.417 0 Td (BSD)Tj -15.835 -1.25 Td (bibliography)Tj 0.25 Tc 5.604 0 Td (,a)Tj 0 Tc 1 0 Td [(lphabetical, )-250(947)]TJ 7.191 0.09 Td (\320)Tj 0.583 -0.09 Td (953)Tj -14.379 -1.25 Td [(big-endian byte or)18(der)]TJ 0.5 Tc 9.526 0 Td (,5)Tj 0 Tc 1.25 0 Td (93, 791)Tj /TT0 1 Tf -10.776 -1.25 Td (bind)Tj /T1_0 1 Tf 2.817 0 Td [(function, )-250(331,)-250(604, 609, 624)]TJ 12.04 0.09 Td (\320)Tj 0.583 -0.09 Td (625, 634)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (635,)Tj -16.907 -1.25 Td (637)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (638, 641)Tj -3.517 -1.25 Td [(de\336nition of,)-500(604)]TJ /TT0 1 Tf -1.35 -1.25 Td (/bin/false)Tj /T1_0 1 Tf 6.417 0 Td [(pr)18(ogram, )-250(179)]TJ /TT0 1 Tf -6.417 -1.25 Td (/bin/true)Tj /T1_0 1 Tf 5.817 0 Td [(pr)18(ogram, )-250(179)]TJ /TT0 1 Tf -5.817 -1.25 Td ()Tj /T1_0 1 Tf 9.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,3)Tj 0 Tc 1.25 0 Td (14)Tj -13.639 -1.25 Td [(block special \336le,)-500(95, 138)]TJ 11.128 0.09 Td (\320)Tj 0.583 -0.09 Td (139)Tj -11.712 -1.25 Td [(Bolsky)111(,)-250(M.)-250(I., )-250(548,)-250(948)]TJ 0 -1.25 Td [(Bostic, K.,)-500(xxxii, 33, 74, 1)55(12, 1)55(16, 525, 951)]TJ 1.35 -1.25 Td [(Keith, )-250(229,)-250(236)]TJ -1.35 -1.25 Td [(Bourne, S. R.,)-500(3)]TJ T* [(Bourne shell,)-500(3, 53, 90, 210, 222, 289, 299, 303, 372,)]TJ 2.7 -1.25 Td (497, 542, 548, 702, 935, 950)Tj -2.7 -1.25 Td [(Bourne-again shell,)-500(3)]TJ 9.628 0.09 Td (\320)Tj 0.583 -0.09 Td (4, 53, 85, 90, 210, 222, 289,)Tj -7.512 -1.25 Td (300, 548)Tj -2.7 -1.25 Td [(Bovet, D. P)129(., )-250(74)]TJ T* (BREAK character)Tj 0.5 Tc 7.635 0 Td (,6)Tj 0 Tc 1.25 0 Td (77, 682, 685, 688, 690, 694, 708)Tj /TT0 1 Tf -8.885 -1.25 Td (BRKINT)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(676,)-250(685, 688, 706)]TJ 12.063 0.09 Td (\320)Tj 0.583 -0.09 Td (708)Tj /TT0 1 Tf -16.663 -1.25 Td (BS0)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(685)]TJ /TT0 1 Tf -2.217 -1.25 Td (BS1)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(685)]TJ -2.217 -1.25 Td (BSD \(Berkeley Softwar)Tj 0.25 Tc 10.03 0 Td (eD)Tj 0 Tc 1.503 0 Td [(istribution\), )-250(34,)-250(65, 1)]TJ -0.055 Tc 9.156 0 Td (11)Tj 0 Tc 0.945 0 Td (,)Tj -18.934 -1.25 Td (175, 286, 289, 291, 293, 296)Tj 11.583 0.09 Td (\320)Tj 0.583 -0.09 Td (297, 299, 482, 501,)Tj -12.166 -1.25 Td (509)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td [(51)55(1, 532, 596)]TJ 5.528 0.09 Td (\320)Tj 0.583 -0.09 Td (597, 630, 726)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (727, 734, 742)Tj -17.144 -1.25 Td [(BSD Networking Release 1.0,)-500(xxxi, 34)]TJ T* [(BSD Networking Release 2.0,)-500(xxxi, 34)]TJ 26 65 Td [(BSD/386, )-250(xxxi)]TJ /TT0 1 Tf T* (BSDLY)Tj /T1_0 1 Tf 3.417 0 Td [(constant, )-250(676,)-250(684)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (685, 689)Tj /TT0 1 Tf 0.1666 Tc -12.063 -1.25 Td (__)Tj 0 Tc 1.367 0 Td (BSD_VISIBLE)Tj /T1_0 1 Tf 7.017 0 Td [(constant, )-250(473)]TJ -8.383 -1.25 Td [(bss segment,)-500(205)]TJ /TT0 1 Tf T* (buf_args)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(656)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (658, 668)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (670, 897)Tj -14.657 -1.25 Td [(de\336nition of,)-500(657)]TJ -1.35 -1.25 Td [(buf)18(fer cache,)-500(81)]TJ T* [(buf)18(fering, standar)]TJ 0.25 Tc 7.927 0 Td (dI)Tj 0 Tc 1.198 0 Td [(/O, )-250(145)]TJ 3.725 0.09 Td (\320)Tj 0.583 -0.09 Td (147, 231, 235, 265,)Tj -10.733 -1.25 Td (367, 552, 721, 752)Tj /TT0 1 Tf -2.7 -1.25 Td (BUFSIZ)Tj /T1_0 1 Tf 4.017 0 Td [(constant, )-250(49,)-250(147, 166, 220)]TJ /TT0 1 Tf -4.017 -1.25 Td (build_qonstart)Tj /T1_0 1 Tf 8.817 0 Td [(function, )-250(814,)-250(817, 822)]TJ -7.467 -1.25 Td [(de\336nition of,)-500(822)]TJ /TT0 1 Tf -1.35 -1.25 Td (BUS_ADRALN)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (BUS_ADRERR)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ /TT0 1 Tf -6.417 -1.25 Td (BUS_OBJERR)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(353)]TJ -6.417 -1.25 Td [(byte or)18(der)]TJ 0.5 Tc 4.498 0 Td (,x)Tj 0 Tc 1.266 0 Td (xii, 593)Tj 3.181 0.09 Td (\320)Tj 0.583 -0.09 Td (594, 792, 810, 825, 831, 834,)Tj -6.829 -1.25 Td (842, 861, 865)Tj -1.35 -1.25 Td [(big-endian, )-250(593,)-250(791)]TJ T* [(little-endian, )-250(593)]TJ -1.35 -4.75 Td [(C, ANSI,)-500(xxx\320xxxi)]TJ 1.35 -1.25 Td [(ISO, )-250(25)]TJ 3.481 0.09 Td (\320)Tj 0.583 -0.09 Td (26, 153, 950)Tj 0.25 Tc -5.415 -1.25 Td (Cs)Tj 0 Tc 1.383 0 Td [(hell, )-250(3,)-250(53, 222, 289, 299, 548)]TJ /TT0 1 Tf -1.383 -1.25 Td (c99)Tj /T1_0 1 Tf 2.217 0 Td [(pr)18(ogram, )-250(58,)-250(70)]TJ -2.217 -1.25 Td (cache)Tj 1.35 -1.25 Td [(buf)18(fer)]TJ 0.5 Tc 2.604 0 Td (,8)Tj 0 Tc 1.25 0 Td (1)Tj -3.854 -1.25 Td [(page, )-250(81)]TJ -1.35 -1.25 Td [(CAE \(Common Application Envir)18(onment\), )-250(32)]TJ T* [(calendar time,)-500(20, 24, 59, 126, 189, 191)]TJ 16.864 0.09 Td (\320)Tj 0.583 -0.09 Td (192, 264,)Tj -14.748 -1.25 Td (270)Tj /TT0 1 Tf -2.7 -1.25 Td (calloc)Tj /T1_0 1 Tf 4.017 0 Td [(function, )-250(207)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (208, 226, 544, 760, 920)Tj -9.29 -1.25 Td [(de\336nition of,)-500(207)]TJ -1.35 -1.25 Td [(cancellation point,)-500(451)]TJ T* [(canonical mode, terminal I/O,)-500(700)]TJ 15.508 0.09 Td (\320)Tj 0.583 -0.09 Td (703)Tj -16.091 -1.25 Td [(Car)18(ges, M. T)74(., )-250(560,)-250(947)]TJ /TT0 1 Tf T* (cat)Tj /T1_0 1 Tf 2.217 0 Td [(constant, )-250(301)]TJ /TT0 1 Tf -2.217 -1.25 Td (cat)Tj /T1_0 1 Tf 2.217 0 Td [(pr)18(ogram, )-250(89,)]TJ -0.055 Tc 6.108 0 Td (11)Tj 0 Tc 0.945 0 Td (2, 123, 301, 304, 734)Tj 8.583 0.09 Td (\320)Tj 0.583 -0.09 Td (735, 748,)Tj -15.736 -1.25 Td (944)Tj /TT0 1 Tf -2.7 -1.25 Td (catclose)Tj /T1_0 1 Tf 5.217 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -5.217 -1.25 Td (catgets)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(442,)-250(452)]TJ /TT0 1 Tf -4.617 -1.25 Td (catopen)Tj /T1_0 1 Tf 4.617 0 Td [(function, )-250(452)]TJ /TT0 1 Tf -4.617 -1.25 Td (CBAUDEXT)Tj /T1_0 1 Tf 5.217 0 Td [(constant, )-250(675,)-250(685)]TJ -5.217 -1.25 Td [(cbr)18(eak terminal mode,)-500(672, 704, 708, 713)]TJ /TT0 1 Tf T* (cc)Tj /T1_0 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(6,)-250(57, 206)]TJ /TT0 1 Tf -1.617 -1.25 Td (CCAR_OFLOW)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(675,)-250(685, 689)]TJ /TT0 1 Tf -6.417 -1.25 Td (cc_t)Tj /T1_0 1 Tf 2.817 0 Td [(data type,)-500(674)]TJ /TT0 1 Tf -2.817 -1.25 Td (CCTS_OFLOW)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(675,)-250(685)]TJ /TT0 1 Tf -6.417 -1.25 Td (cd)Tj /T1_0 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(136)]TJ /TT0 1 Tf -1.617 -1.25 Td (CDSR_OFLOW)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(675,)-250(685)]TJ /TT0 1 Tf -6.417 -1.25 Td (CDTR_IFLOW)Tj /T1_0 1 Tf 6.417 0 Td [(constant, )-250(675,)-250(685)]TJ -6.417 -1.25 Td [(Cesati, M.,)-500(74)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47703 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.2)]TJ 29.846 0 Td [(The )-250(Internet )-250(Printing )-250(Pr)18(otocol)]TJ /T1_1 1 Tf 15.987 0 Td (791)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 2382 5486 1656 1152 re S Q BT /T1_0 1 Tf 7.9995 0 0 7.9995 292.8744 654.8007 Tm (version number)Tj -6.566 -1.8 Td [(operation ID \(r)18(equest\)/status code \(r)18(esponse\))]TJ -0.018 Tc 7.775 -2.7 Td (re)Tj 0 Tc 0.856 0 Td (quest ID)Tj -0.663 -4.5 Td (attributes)Tj -2.425 -3.6 Td (end-of-attributes tag)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2452.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2523.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2593.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2663.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2734.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2804.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2875.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2946.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3015.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3086.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3156.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3227.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3298.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3368.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3438.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3509.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3579.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3650.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3720.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3791.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3861.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3931.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4002.25 6494.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4038.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3967.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3897.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3827.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3756.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3686.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3615.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3545.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3474.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3404.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3334.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3263.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3192.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3122.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3051.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2982.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2911.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2840.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2770.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2699.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2629.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2559.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2488.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2418.25 6350.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2452.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2523.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2593.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2663.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2734.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2804.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2875.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2946.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3015.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3086.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3156.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3227.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3298.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3368.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3438.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3509.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3579.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3650.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3720.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3791.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3861.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3931.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4002.25 6062.25 cm 0 0 m 36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4038.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3967.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3897.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3827.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3756.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3686.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3615.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3545.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3474.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3404.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3334.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3263.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3192.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3122.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3051.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2982.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2911.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2840.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2770.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2699.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2629.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2559.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2488.25 5630.25 cm 0 0 m -36 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2418.25 5630.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 410.9507 654.7614 Tm (\(2 bytes\))Tj 0 -1.8 TD (\(2 bytes\))Tj 0 -2.7 TD (\(4 bytes\))Tj 0 -4.5 TD (\(0-)Tj /T1_2 1 Tf (n)Tj /T1_0 1 Tf 1.972 0 Td (bytes\))Tj -1.972 -3.6 Td (\(1 byte\))Tj /T1_1 1 Tf -19.458 -3.53 Td (Figure 21.3)Tj /T1_0 1 Tf 5.695 0 Td [(Str)8(uctur)18(e)-250(of)-250(an)-250(IPP header)]TJ 9.9988 0 0 9.9988 147.5822 498.1404 Tm [(The )-10(next )-10(4 )-10(bytes )-10(contain )-10(an )-10(integer )-10(identifying )-10(the )-10(r)20(equest, )-10(which )-10(allows )-10(r)18(equests )-10(to)]TJ -1.8 -1.2 Td [(be )-95(matched )-95(up )-95(with )-95(r)17(esponses. )-345(Optional)-345(attributes )-95(follow )-95(this, )-95(terminated )-95(by )-95(an )-95(end-)]TJ -0 -1.2 Td [(of-attributes )-472(tag.)-972(Any )-472(data )-472(that )-472(might )-472(be )-472(associated )-472(with )-472(the )-472(r)13(equest )-473(follows)]TJ 0 -1.2 TD (immediately after the end-of-attributes tag.)Tj 1.8 -1.2 Td [(In )-185(the )-185(header)]TJ 0.4352 Tc 6.148 0 Td (,i)Tj 0 Tc 0.976 0 Td [(ntegers )-185(ar)]TJ 0.4352 Tc 4.553 0 Td (es)Tj 0 Tc 1.338 0 Td [(tor)18(ed )-185(as )-185(signed, )-185(two\325s-complement, )-185(binary )-185(values )-185(in)]TJ -14.816 -1.2 Td [(big-endian )-78(byte )-78(or)18(der )-78(\(i.e., )-78(network )-78(byte )-78(or)18(der\). )-328(Attributes)-328(ar)]TJ 0.3281 Tc 27.829 0 Td (es)Tj 0 Tc 1.231 0 Td [(tor)18(ed )-78(in )-78(gr)18(oups. )-328(Each)]TJ -29.06 -1.2 Td [(gr)18(oup )-24(starts )-24(with )-24(a )-24(single )-24(byte )-24(identifying )-24(the )-24(gr)20(oup. )-274(W)55(ithin )-24(each )-24(gr)18(oup, )-24(an )-24(attribute )-24(is)]TJ 0 -1.2 Td [(generally )-9(r)18(epr)18(esented )-9(as )-9(a )-9(1)]TJ 12.304 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-9(tag, )-9(followed )-9(by )-9(a )-9(2)]TJ 10.883 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-9(name )-9(length, )-9(followed )-9(by )-9(the)]TJ -23.853 -1.2 Td [(name )-57(of )-57(the )-57(attribute, )-57(followed )-57(by )-57(a )-57(2)]TJ 16.948 0.09 Td (-)Tj 0.333 -0.09 Td [(byte )-57(value )-57(length, )-57(and )-57(\336nally )-57(by )-57(the )-57(value )-57(itself.)]TJ -17.281 -1.2 Td [(The )-148(value )-148(can )-148(be )-148(encoded )-148(as )-148(a )-148(string, )-148(a )-148(binary )-148(integer)78(,)-398(or)-398(a)-398(m)1(or)]TJ 0.3976 Tc 29.747 0 Td (ec)Tj 0 Tc 1.321 0 Td [(omplex )-148(str)8(uctur)18(e,)]TJ -31.067 -1.2 Td (such as a date/timestamp.)Tj 1.8 -1.2 Td (Figur)Tj 0.4624 Tc 2.383 0 Td (e2)Tj 0 Tc 1.441 0 Td [(1.4 )-212(shows )-212(how )-212(the)]TJ /TT0 1 Tf 9.259 0 Td (attributes-charset)Tj /T1_0 1 Tf 11.262 0 Td [(attribute )-212(would )-212(be )-212(encoded)]TJ -26.145 -1.2 Td (with a value of)Tj /TT0 1 Tf 6.85 0 Td (utf-8)Tj /T1_0 1 Tf (.)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2382 2098 1656 1224 re S Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 286.7364 323.1818 Tm (attribute tag = 0x47)Tj -1.559 -2.25 Td (size of attribute name = 18)Tj -1.339 -3.6 Td (name =)Tj /TT0 1 Tf 3.55 0 Td (attributes-charset)Tj /T1_0 1 Tf -1.958 -3.6 Td (size of attribute value = 5)Tj 2.311 -3.15 Td (value =)Tj /TT0 1 Tf 3.544 0 Td (utf-8)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2452.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2523.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2593.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2663.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2734.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2804.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2875.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2946.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3015.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3086.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3156.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3227.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3298.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3368.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3438.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3509.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3579.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3650.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3720.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3791.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3861.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3931.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4002.25 3178.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4038.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3967.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3897.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3827.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3756.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3686.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3615.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3545.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3474.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3404.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3334.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3263.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3192.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3122.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3051.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2982.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2911.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2840.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2770.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2699.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2629.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2559.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2488.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2418.25 2962.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2452.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2523.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2593.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2663.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2734.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2804.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2875.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2946.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3015.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3086.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3156.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3227.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3298.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3368.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3438.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3509.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3579.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3650.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3720.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3791.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3861.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3931.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4002.25 2602.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4038.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3967.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3897.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3827.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3756.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3686.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3615.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3545.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3474.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3404.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3334.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3263.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3192.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3122.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3051.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2982.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2911.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2840.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2770.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2699.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2629.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2559.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2488.25 2386.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2418.25 2386.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 410.9014 323.1624 Tm (\(1 byte\))Tj 0 -2.25 TD (\(2 bytes\))Tj 0 -3.6 TD (\(18 bytes\))Tj T* (\(2 bytes\))Tj 0 -3.15 TD (\(5 bytes\))Tj /T1_1 1 Tf -20.379 -4.43 Td (Figure 21.4)Tj /T1_0 1 Tf 5.695 0 Td (Sample IPP attribute encoding)Tj 9.9976 0 0 9.9976 147.5648 159.9614 Tm [(Depending )-41(on )-41(the )-41(operation )-41(r)18(equested, )-41(some )-41(attributes )-41(ar)]TJ 0.2912 Tc 25.794 0 Td (er)Tj 0 Tc 1.147 0 Td [(equir)18(ed )-41(to )-41(be )-41(pr)17(ovided)]TJ -28.741 -1.2 Td [(in )-134(the )-134(r)17(equest )-134(message, )-134(wher)18(eas )-134(others )-134(ar)]TJ 0.3844 Tc 19.114 0 Td (eo)Tj 0 Tc 1.409 0 Td [(ptional. )-384(For)-385(example, )-134(Figur)]TJ 0.3844 Tc 12.669 0 Td (e2)Tj 0 Tc 1.363 0 Td [(1.5 )-134(shows)]TJ -34.556 -1.2 Td [(the attributes de\336ned for a print-job r)18(equest.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47704 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (865)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (ssize_t)Tj /TT1 1 Tf 6 0 Td (msgrcv)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (msqid)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.208 0 Td (oid *)Tj /T1_2 1 Tf (ptr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 6.022 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT0 1 Tf 0.6 Tc (,l)Tj 0 Tc 4.43 0 Td (ong)Tj /T1_2 1 Tf 2.4 0 Td (type)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.522 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj -25.082 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 564)Tj /T1_2 1 Tf -28.125 -1.5 Td (\337ag)Tj /TT0 1 Tf 0.6 Tc (:I)Tj 0 Tc 3.289 0 Td (PC_NOWAIT, MSG_NOERROR)Tj /T1_0 1 Tf -3.289 -1.5 Td (Returns: size of data portion of message if OK,)Tj /TT2 1 Tf 20.784 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -34.284 -2.788 Td (int)Tj /TT1 1 Tf 6 0 Td (msgsnd)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (msqid)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.208 0 Td (onst void *)Tj /T1_2 1 Tf (ptr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 9.622 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.43 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj -22.76 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 563)Tj /T1_2 1 Tf -28.125 -1.5 Td (\337ag)Tj /TT0 1 Tf 0.6 Tc (:I)Tj 0 Tc 3.289 0 Td (PC_NOWAIT)Tj /T1_0 1 Tf -3.289 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.788 Td (int)Tj /TT1 1 Tf 6 0 Td (msync)Tj /TT0 1 Tf (\(void *)Tj /T1_2 1 Tf (addr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 10.833 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (len)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.023 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ags)Tj /TT0 1 Tf (\);)Tj -11.756 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 528)Tj /T1_2 1 Tf -28.125 -1.5 Td (\337ag)Tj /TT0 1 Tf 0.6 Tc (:M)Tj 0 Tc 3.289 0 Td (S_ASYNC, MS_INVALIDATE, MS_SYNC)Tj /T1_0 1 Tf -3.289 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.788 Td (int)Tj /TT1 1 Tf 6 0 Td (munmap)Tj /TT0 1 Tf (\(void *)Tj /T1_2 1 Tf (addr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 11.433 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (len)Tj /TT0 1 Tf (\);)Tj -7.533 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 528)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.788 Td (int)Tj /TT1 1 Tf 6 0 Td (nanosleep)Tj /TT0 1 Tf (\(const struct timespec *)Tj /T1_2 1 Tf -0.018 Tc (re)Tj 0 Tc 20.56 0 Td (qtp)Tj /TT0 1 Tf (,)Tj -14.56 -1.25 Td (struct timespec *)Tj /T1_2 1 Tf -0.018 Tc (re)Tj 0 Tc 10.96 0 Td (mtp)Tj /TT0 1 Tf (\);)Tj -9.46 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 374)Tj -28.125 -1.5 Td [(Returns: 0 if slept for r)18(equested time,)]TJ /TT2 1 Tf 16.563 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -30.063 -2.788 Td (int)Tj /TT1 1 Tf 6 0 Td (nice)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 5.4 0 Td (incr)Tj /TT0 1 Tf (\);)Tj 2.1 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 276)Tj -28.125 -1.5 Td (Returns: new nice value)Tj /TT2 1 Tf 10.856 0 Td (!)Tj /TT0 1 Tf 0.799 0 Td (NZERO)Tj /T1_0 1 Tf 3.25 0 Td (if OK,)Tj /TT2 1 Tf 2.886 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -31.291 -2.788 Td (uint32_t)Tj /TT1 1 Tf 6 0 Td (ntohl)Tj /TT0 1 Tf (\(uint32_t)Tj /T1_2 1 Tf 9 0 Td (netint32)Tj /TT0 1 Tf (\);)Tj -1.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 594)Tj -28.125 -1.5 Td (Returns: 32)Tj 4.977 0.09 Td (-)Tj 0.333 -0.09 Td [(bit integer in host byte or)18(der)]TJ /TT0 1 Tf -18.81 -2.788 Td (uint16_t)Tj /TT1 1 Tf 6 0 Td (ntohs)Tj /TT0 1 Tf (\(uint16_t)Tj /T1_2 1 Tf 9 0 Td (netint16)Tj /TT0 1 Tf (\);)Tj -1.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 594)Tj -28.125 -1.5 Td (Returns: 16)Tj 4.977 0.09 Td (-)Tj 0.333 -0.09 Td [(bit integer in host byte or)18(der)]TJ /TT0 1 Tf -18.81 -2.788 Td (int)Tj /TT1 1 Tf 6 0 Td (open)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 13.777 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (o\337ag)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 3.733 0 Td (.. /* mode_t)Tj /T1_2 1 Tf 7.8 0 Td (mode)Tj /TT0 1 Tf 2.711 0 Td (*/ \);)Tj -22.321 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 62)Tj /T1_2 1 Tf -28.125 -1.5 Td (o\337ag)Tj /TT0 1 Tf 0.6 Tc (:O)Tj 0 Tc 3.733 0 Td (_RDONLY, O_WRONLY, O_RDWR, O_EXEC,)Tj -0.6 -1.25 Td (O_SEARCH;)Tj 0 -1.25 TD (O_APPEND, O_CLOEXEC, O_CREAT,)Tj T* (O_DIRECTORY, O_DSYNC, O_EXCL,)Tj T* (O_NOCTTY, O_NOFOLLOW, O_NONBLOCK,)Tj T* (O_RSYNC, O_SYNC, O_TRUNC, O_TTY_INIT)Tj /T1_2 1 Tf -3.133 -1.5 Td (mode)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 3.911 0 Td (_IS)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (UG)Tj 1.2 0.04 Td (])Tj 0.6 -0.04 Td (ID, S_ISVTX,)Tj -4.8 -1.25 Td (S_I)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (RWX)Tj 1.8 0.04 Td (])Tj 0.6 -0.04 Td (\(USR|GRP|OTH\))Tj /T1_0 1 Tf -8.111 -1.5 Td (Returns: \336le descriptor if OK,)Tj /TT2 1 Tf 13.25 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ -13.25 -1.5 Td (Platforms:)Tj /TT0 1 Tf 4.802 0 Td (O_FSYNC)Tj /T1_0 1 Tf 4.45 0 Td [(\337ag on Fr)18(eeBSD 8.0 and Mac OS X 10.6.8)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47705 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (861)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (getsockopt)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.262 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (level)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.634 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (option)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.355 0 Td (oid *restrict)Tj /T1_2 1 Tf 8.4 0 Td (val)Tj /TT0 1 Tf (,)Tj -26.651 -1.25 Td (socklen_t *restrict)Tj /T1_2 1 Tf 12 0 Td (lenp)Tj /TT0 1 Tf (\);)Tj -11.1 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 624)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.375 Td (struct)Tj 0 -1.25 TD [(spwd )-2400(*)]TJ /TT1 1 Tf (getspent)Tj /TT0 1 Tf (\(void\);)Tj 13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 182)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ -12.983 -1.5 Td (Platforms: Linux 3.2.0, Solaris 10)Tj /TT0 1 Tf -13.5 -3.375 Td (struct)Tj T* [(spwd )-2400(*)]TJ /TT1 1 Tf (getspnam)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj 13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 182)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ -12.983 -1.5 Td (Platforms: Linux 3.2.0, Solaris 10)Tj /TT0 1 Tf -13.5 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (gettimeofday)Tj /TT0 1 Tf (\(struct timeval *restrict)Tj /T1_2 1 Tf 22.8 0 Td (tp)Tj /TT0 1 Tf (,)Tj -15 -1.25 Td (void *restrict)Tj /T1_2 1 Tf 9 0 Td (tzp)Tj /TT0 1 Tf (\);)Tj -9.3 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 190)Tj -28.125 -1.5 Td (Returns: 0 always)Tj /TT0 1 Tf -13.5 -3.375 Td (uid_t)Tj /TT1 1 Tf 6 0 Td (getuid)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 228)Tj -28.125 -1.5 Td [(Returns: r)18(eal user ID of calling pr)18(ocess)]TJ /TT0 1 Tf -13.5 -3.375 Td (struct)Tj T* [(tm )-3600(*)]TJ /TT1 1 Tf (gmtime)Tj /TT0 1 Tf (\(const time_t *)Tj /T1_2 1 Tf (calptr)Tj /TT0 1 Tf (\);)Tj 13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 192)Tj -28.125 -1.5 Td [(Returns: pointer to br)18(oken-down time,)]TJ /TT0 1 Tf 17.297 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -33.447 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (grantpt)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.2 0 Td (fd)Tj /TT0 1 Tf (\);)Tj 0.3 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 723)Tj -28.125 -1.5 Td (Returns: 0 on success,)Tj /TT2 1 Tf 9.847 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -23.347 -3.375 Td (uint32_t)Tj /TT1 1 Tf 6 0 Td (htonl)Tj /TT0 1 Tf (\(uint32_t)Tj /T1_2 1 Tf 9 0 Td (hostint32)Tj /TT0 1 Tf (\);)Tj -1.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 594)Tj -28.125 -1.5 Td (Returns: 32)Tj 4.977 0.09 Td (-)Tj 0.333 -0.09 Td [(bit integer in network byte or)18(der)]TJ /TT0 1 Tf -18.81 -3.375 Td (uint16_t)Tj /TT1 1 Tf 6 0 Td (htons)Tj /TT0 1 Tf (\(uint16_t)Tj /T1_2 1 Tf 9 0 Td (hostint16)Tj /TT0 1 Tf (\);)Tj -1.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 594)Tj -28.125 -1.5 Td (Returns: 16)Tj 4.977 0.09 Td (-)Tj 0.333 -0.09 Td [(bit integer in network byte or)18(der)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47706 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (956)Tj /T1_1 1 Tf 3.5 0 Td (Index)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (add_worker)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(814,)-250(824, 828)]TJ -5.067 -1.25 Td [(de\336nition of,)-500(828)]TJ -1.35 -1.25 Td [(adjustment on exit, semaphor)18(e, )-250(570)]TJ 15.912 0.09 Td (\320)Tj 0.583 -0.09 Td (571)Tj -16.495 -1.25 Td [(Adobe Systems,)-500(825, 947)]TJ 0 -1.25 TD [(advisory r)18(ecor)]TJ 0.25 Tc 6.361 0 Td (dl)Tj 0 Tc 1.152 0 Td [(ocking, )-250(495)]TJ -7.513 -1.25 Td [(AES \(Application Envir)18(onment Speci\336cation\),)-500(32)]TJ /TT0 1 Tf T* (AEXPND)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(271)]TJ /TT0 1 Tf -4.017 -1.25 Td (AF_INET)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(590)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (591, 595)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (596, 598, 601,)Tj -12.73 -1.25 Td (603)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (604, 802, 808)Tj /TT0 1 Tf -4.866 -1.25 Td (AF_INET6)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(590,)-250(595)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (596, 601)Tj /TT0 1 Tf -13.863 -1.25 Td (AF_IPX)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(590)]TJ /TT0 1 Tf -4.017 -1.25 Td (AF_LOCAL)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(590)]TJ /TT0 1 Tf -5.217 -1.25 Td (AFORK)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(270)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (271, 273)Tj /TT0 1 Tf -10.063 -1.25 Td (AF_UNIX)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(590,)-250(601, 630, 632, 635, 637,)]TJ -1.917 -1.25 Td (640)Tj 1.583 0.09 Td (\320)Tj 0.583 -0.09 Td (641, 941)Tj /TT0 1 Tf -4.866 -1.25 Td (AF_UNSPEC)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(590,)-250(601)]TJ /TT0 1 Tf -5.817 -1.25 Td (agetty)Tj /T1_1 1 Tf 4.017 0 Td [(pr)18(ogram, )-250(290)]TJ -4.017 -1.25 Td [(Aho, A. V)129(., )-250(262,)-250(947)]TJ /TT0 1 Tf T* (AI_ALL)Tj /T1_1 1 Tf 4.017 0 Td [(constant, )-250(603)]TJ /TT0 1 Tf -4.017 -1.25 Td (AI_CANONNAME)Tj /T1_1 1 Tf 7.617 0 Td [(constant, )-250(603,)-250(616, 618, 623, 802)]TJ /TT0 1 Tf -7.617 -1.25 Td (AI_NUMERICHOST)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(603)]TJ /TT0 1 Tf -8.817 -1.25 Td (AI_NUMERICSERV)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(603)]TJ /TT0 1 Tf -8.817 -1.25 Td (aio_cancel)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(514)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (515)Tj -11.69 -1.25 Td [(de\336nition of,)-500(514)]TJ /TT0 1 Tf -1.35 -1.25 Td (aiocb)Tj /T1_1 1 Tf 3.417 0 Td [(str)8(uctur)18(e, )-250(51)55(1, 517)]TJ 8.247 0.09 Td (\320)Tj 0.583 -0.09 Td (518)Tj /TT0 1 Tf -12.247 -1.25 Td (aio_error)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(331,)-250(513, 515, 519)]TJ 12.04 0.09 Td (\320)Tj 0.583 -0.09 Td (520)Tj -17.09 -1.25 Td [(de\336nition of,)-500(513)]TJ /TT0 1 Tf -1.35 -1.25 Td (aio_fsync)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(512)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (513, 520)Tj -11.09 -1.25 Td [(de\336nition of,)-500(513)]TJ /TT0 1 Tf -1.35 -1.25 Td ()Tj /T1_1 1 Tf 4.617 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9)Tj /TT0 1 Tf -8.839 -1.25 Td (AIO_LISTIO_MAX)Tj /T1_1 1 Tf 8.817 0 Td [(constant, )-250(515)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (516)Tj /TT0 1 Tf -15.463 -1.25 Td (AIO_MAX)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(515)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (516)Tj /TT0 1 Tf -11.263 -1.25 Td (AIO_PRIO_DELTA_MAX)Tj /T1_1 1 Tf 11.217 0 Td [(constant, )-250(515)]TJ 6.063 0.09 Td (\320)Tj 0.583 -0.09 Td (516)Tj /TT0 1 Tf -17.863 -1.25 Td (aio_read)Tj /T1_1 1 Tf 5.217 0 Td [(function, )-250(512)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (513, 515, 518)Tj -10.49 -1.25 Td [(de\336nition of,)-500(512)]TJ /TT0 1 Tf -1.35 -1.25 Td (aio_return)Tj /T1_1 1 Tf 6.417 0 Td [(function, )-250(331,)-250(513, 519)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (520)Tj -15.69 -1.25 Td [(de\336nition of,)-500(513)]TJ /TT0 1 Tf -1.35 -1.25 Td (aio_suspend)Tj /T1_1 1 Tf 7.017 0 Td [(function, )-250(331,)-250(451, 514, 520)]TJ -5.667 -1.25 Td [(de\336nition of,)-500(514)]TJ /TT0 1 Tf -1.35 -1.25 Td (aio_write)Tj /T1_1 1 Tf 5.817 0 Td [(function, )-250(512)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (513, 515, 519)Tj -11.09 -1.25 Td [(de\336nition of,)-500(512)]TJ /TT0 1 Tf -1.35 -1.25 Td (AI_PASSIVE)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(603)]TJ /TT0 1 Tf -6.417 -1.25 Td (AI_V4MAPPED)Tj /T1_1 1 Tf 7.017 0 Td [(constant, )-250(600,)-250(603)]TJ -7.017 -1.25 Td [(AIX, )-250(35,)-250(334)]TJ /TT0 1 Tf T* (alarm)Tj /T1_1 1 Tf 3.417 0 Td [(function, )-250(313,)-250(317, 331)]TJ 10.04 0.09 Td (\320)Tj 0.583 -0.09 Td (332, 335, 338)Tj 5.583 0.09 Td (\320)Tj 0.583 -0.09 Td (343,)Tj -17.507 -1.25 Td (357, 373)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (374, 381)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (382, 620)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (621, 924)Tj -13.85 -1.25 Td [(de\336nition of,)-500(338)]TJ /TT0 1 Tf -1.35 -1.25 Td (alloca)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(210)]TJ -4.017 -1.25 Td [(Almquist, K.,)-500(4)]TJ /TT0 1 Tf T* (already_running)Tj /T1_1 1 Tf 9.417 0 Td [(function, )-250(475)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (478)Tj -14.69 -1.25 Td [(de\336nition of,)-500(474)]TJ /TT0 1 Tf -1.35 -1.25 Td (ALTWERASE)Tj /T1_1 1 Tf 5.817 0 Td [(constant, )-250(676,)-250(682, 685)]TJ -5.817 -1.25 Td [(American National Standar)18(ds Institute,)]TJ /T1_2 1 Tf 17.869 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td (ANSI)Tj 6.714 65 Td [(Andrade, J. M.,)-500(560, 947)]TJ T* [(ANSI \(American National Standar)18(ds Institute\),)-500(25)]TJ T* [(ANSI C,)-500(xxx\320xxxi)]TJ T* (Apple Computer)Tj 0.5 Tc 7.468 0 Td (,x)Tj 0 Tc 1.266 0 Td (xi, xxvi)Tj -8.734 -1.25 Td [(Application Envir)18(onment Speci\336cation,)]TJ /T1_2 1 Tf 17.959 0 Td (see)Tj /T1_1 1 Tf 1.417 0 Td (AES)Tj /TT0 1 Tf -19.376 -1.25 Td (apue_db.h)Tj /T1_1 1 Tf 5.817 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,7)Tj 0 Tc 1.25 0 Td (45, 753, 757, 761)Tj /TT0 1 Tf -10.039 -1.25 Td (apue.h)Tj /T1_1 1 Tf 4.017 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,7)Tj 0.25 Tc 1.25 0 Td (,9)Tj 0 Tc 1.083 0.09 Td (\320)Tj 0.583 -0.09 Td (10, 247, 324, 489)Tj 7.083 0.09 Td (\320)Tj 0.583 -0.09 Td (490, 635,)Tj -14.872 -1.25 Td (755, 895)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (898)Tj -6.866 -1.25 Td [(Ar)18(chitectur)18(e, UNIX,)-500(1)]TJ 9.952 0.09 Td (\320)Tj 0.583 -0.09 Td (2)Tj /TT0 1 Tf -10.536 -1.25 Td (argc)Tj /T1_1 1 Tf 2.817 0 Td [(variable, )-250(815)]TJ /TT0 1 Tf -2.817 -1.25 Td (ARG_MAX)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(40,)-250(43, 47, 49, 251)]TJ -4.617 -1.25 Td [(ar)18(guments, command)]TJ 9.679 0.09 Td (-)Tj 0.333 -0.09 Td [(line, )-250(203)]TJ /TT0 1 Tf -10.012 -1.25 Td (argv)Tj /T1_1 1 Tf 2.817 0 Td [(variable, )-250(663)]TJ -2.817 -1.25 Td [(Arnold J. Q.,)-500(206, 947)]TJ /TT0 1 Tf T* ()Tj /T1_1 1 Tf 8.217 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (9, 594)Tj /TT0 1 Tf -12.439 -1.25 Td (asctime)Tj /T1_1 1 Tf 4.617 0 Td [(function, )-250(192)]TJ /TT0 1 Tf -4.617 -1.25 Td ()Tj /T1_1 1 Tf 6.417 0 Td (header)Tj 0.5 Tc 2.972 0 Td (,2)Tj 0 Tc 1.25 0 Td (7)Tj -10.639 -1.25 Td (assignment-allocation character)Tj 0.5 Tc 13.938 0 Td (,1)Tj 0 Tc 1.25 0 Td (62)Tj /TT0 1 Tf -15.188 -1.25 Td (ASU)Tj /T1_1 1 Tf 2.217 0 Td [(constant, )-250(271,)-250(273)]TJ -2.217 -1.25 Td [(asynchr)18(onous I/O,)-500(501, 509)]TJ 12.478 0.09 Td (\320)Tj 0.583 -0.09 Td (520)Tj -13.062 -1.25 Td [(asynchr)18(onous socket I/O,)-500(627)]TJ T* [(async-signal safe,)-500(330, 446, 450, 457, 461)]TJ 17.802 0.09 Td (\320)Tj 0.583 -0.09 Td (462, 927)Tj /TT0 1 Tf -18.385 -1.25 Td (at)Tj /T1_1 1 Tf 1.617 0 Td [(pr)18(ogram, )-250(259,)-250(472)]TJ /TT0 1 Tf -1.617 -1.25 Td (atd)Tj /T1_1 1 Tf 2.217 0 Td [(pr)18(ogram, )-250(259,)-250(465)]TJ /TT0 1 Tf -2.217 -1.25 Td (AT_EACCESS)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(103)]TJ /TT0 1 Tf -6.417 -1.25 Td (atexit)Tj /T1_1 1 Tf 4.017 0 Td [(function, )-250(40)]TJ 5.54 0.09 Td (\320)Tj 0.583 -0.09 Td (41, 43, 200, 202, 226, 236,)Tj -7.44 -1.25 Td (394, 731, 920)Tj -1.35 -1.25 Td [(de\336nition of,)-500(200)]TJ /TT0 1 Tf -1.35 -1.25 Td (ATEXIT_MAX)Tj /T1_1 1 Tf 6.417 0 Td [(constant, )-250(40)]TJ 5.563 0.09 Td (\320)Tj 0.583 -0.09 Td (41, 43, 49, 52)Tj /TT0 1 Tf -12.563 -1.25 Td (AT_FDCWD)Tj /T1_1 1 Tf 5.217 0 Td [(constant, )-250(65,)-250(94, 102, 106, 1)55(10, 1)55(16)]TJ 14.953 0.09 Td (\320)Tj -0.055 Tc 0.583 -0.09 Td (11)Tj 0 Tc 0.945 0 Td (7,)Tj -18.998 -1.25 Td (120, 123)Tj 3.583 0.09 Td (\320)Tj 0.583 -0.09 Td (124, 127, 129, 553)Tj /TT0 1 Tf -6.866 -1.25 Td (atoi)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(766,)-250(839)]TJ 8.04 0.09 Td (\320)Tj 0.583 -0.09 Td (840)Tj /TT0 1 Tf -11.44 -1.25 Td (atol)Tj /T1_1 1 Tf 2.817 0 Td [(function, )-250(765)]TJ 6.04 0.09 Td (\320)Tj 0.583 -0.09 Td (767, 818, 823)Tj -9.44 -1.25 Td [(atomic operation,)-500(39, 44, 59, 63, 77)]TJ 15.339 0.09 Td (\320)Tj 0.583 -0.09 Td [(79, 81, 1)55(16, 149,)]TJ -13.223 -1.25 Td (359, 365, 488, 553, 566, 568, 570, 945)Tj /TT0 1 Tf -2.7 -1.25 Td (AT_REMOVEDIR)Tj /T1_1 1 Tf 7.617 0 Td [(constant, )-250(1)55(17)]TJ /TT0 1 Tf -7.617 -1.25 Td (AT_SYMLINK_FOLLOW)Tj /T1_1 1 Tf 10.617 0 Td [(constant, )-250(1)55(16)]TJ /TT0 1 Tf -10.617 -1.25 Td (AT_SYMLINK_NOFOLLOW)Tj /T1_1 1 Tf 11.817 0 Td [(constant, )-250(94,)-250(106, 1)55(10,)]TJ -9.117 -1.25 Td (127)Tj -0.074 Tc -2.7 -1.25 Td (AT)Tj 0 Tc 1.317 0 Td (&T)Tj 0.5 Tc 1.317 0 Td (,x)Tj 0 Tc 1.266 0 Td (ix, 6, 33, 174, 336, 507, 948)Tj -3.9 -1.25 Td [(automatic variables,)-500(205, 215, 217, 219, 226)]TJ T* [(avoidance, deadlock,)-500(402)]TJ 11.389 0.09 Td (\320)Tj 0.583 -0.09 Td (407)Tj /TT0 1 Tf -11.973 -1.25 Td (awk)Tj /T1_1 1 Tf 2.217 0 Td [(pr)18(ogram, )-250(44,)-250(46, 262)]TJ 9.191 0.09 Td (\320)Tj 0.583 -0.09 Td (264, 552, 950)Tj /TT0 1 Tf -11.991 -1.25 Td (AXSIG)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(271,)-250(273)]TJ 8.063 0.09 Td (\320)Tj 0.583 -0.09 Td (274)Tj /TT0 1 Tf -12.063 -4.75 Td (B0)Tj /T1_1 1 Tf 1.617 0 Td [(constant, )-250(692)]TJ /TT0 1 Tf -1.617 -1.25 Td (B110)Tj /T1_1 1 Tf 2.817 0 Td [(constant, )-250(692)]TJ /TT0 1 Tf -2.817 -1.25 Td (B115200)Tj /T1_1 1 Tf 4.617 0 Td [(constant, )-250(692)]TJ /TT0 1 Tf -4.617 -1.25 Td (B1200)Tj /T1_1 1 Tf 3.417 0 Td [(constant, )-250(692)]TJ /TT0 1 Tf -3.417 -1.25 Td (B134)Tj /T1_1 1 Tf 2.817 0 Td [(constant, )-250(692)]TJ /TT0 1 Tf -2.817 -1.25 Td (B150)Tj /T1_1 1 Tf 2.817 0 Td [(constant, )-250(692)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47707 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (46)Tj /T1_1 1 Tf 3 0 Td [(UNIX )-250(Standar)18(dization )-250(and )-250(Implementations)]TJ 39.741 0 Td [(Chapter )-250(2)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (printf\("\\t\\t}\\n"\))Tj 0 -1.189 TD (printf\("\\t} else {\\n"\))Tj T* (printf\("\\t\\tprintf\(\\" %%ld\\\\n\\", val\);\\n"\))Tj T* (printf\("\\t}\\n"\))Tj T* (printf\("}\\n\\n"\))Tj 0 -1.189 TD (printf\("static void\\n"\))Tj 0 -1.189 TD (printf\("pr_pathconf\(char *mesg, char *path, int name\)\\n"\))Tj T* (printf\("{\\n"\))Tj T* [(printf\("\\tlong )-600(val;\\n"\))]TJ T* (printf\("\\n"\))Tj T* (printf\("\\tfputs\(mesg, stdout\);\\n"\))Tj T* (printf\("\\terrno = 0;\\n"\))Tj T* (printf\("\\tif \(\(val = pathconf\(path, name\)\) < 0\) {\\n"\))Tj T* (printf\("\\t\\tif \(errno != 0\) {\\n"\))Tj 0 -1.189 TD (printf\("\\t\\t\\tif \(errno == EINVAL\)\\n"\))Tj 0 -1.189 TD (printf\("\\t\\t\\t\\tfputs\(\\" \(not supported\)\\\\n\\", stdout\);\\n"\ \))Tj T* (printf\("\\t\\t\\telse\\n"\))Tj T* (printf\("\\t\\t\\t\\terr_sys\(\\"pathconf error, path = %%s\\", path\);\\\ n"\))Tj T* (printf\("\\t\\t} else {\\n"\))Tj T* (printf\("\\t\\t\\tfputs\(\\" \(no limit\)\\\\n\\", stdout\);\\n"\))Tj T* (printf\("\\t\\t}\\n"\))Tj T* (printf\("\\t} else {\\n"\))Tj T* (printf\("\\t\\tprintf\(\\" %%ld\\\\n\\", val\);\\n"\))Tj 0 -1.189 TD (printf\("\\t}\\n"\))Tj 0 -1.189 TD (printf\("}\\n"\))Tj -2.4 -1.189 Td (})Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 3980.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 7.999 0 0 7.999 197.0324 381.9532 Tm (Figure 2.13)Tj /T1_1 1 Tf 5.695 0 Td [(Build C pr)18(ogram to print all supported con\336guration limits)]TJ 9.9988 0 0 9.9988 147.5825 357.956 Tm (The)Tj /TT0 1 Tf 1.967 0 Td (awk)Tj /T1_1 1 Tf 2.093 0 Td [(pr)18(ogram )-43(r)18(eads )-43(two )-43(input )-43(\336les\321)]TJ /TT0 1 Tf 14.328 0 Td (pathconf.sym)Tj /T1_1 1 Tf 7.493 0 Td (and)Tj /TT0 1 Tf 1.986 0 Td (sysconf.sym)Tj /T1_1 1 Tf (\321that)Tj -29.666 -1.2 Td [(contain )-208(lists )-208(of )-208(the )-208(limit )-208(name )-208(and )-208(symbol, )-208(separated )-208(by )-208(tabs.)-708(All )-208(symbols )-208(ar)]TJ 0.4579 Tc 36.609 0 Td (en)Tj 0 Tc 1.519 0 Td (ot)Tj -38.128 -1.2 Td [(de\336ned )-91(on )-91(every )-91(platform, )-91(so )-91(the)]TJ /TT0 1 Tf 15.495 0 Td (awk)Tj /T1_1 1 Tf 2.141 0 Td [(pr)18(ogram )-91(surr)18(ounds )-91(each )-91(call )-91(to)]TJ /TT0 1 Tf 14.53 0 Td (pathconf)Tj /T1_1 1 Tf 5.141 0 Td (and)Tj /TT0 1 Tf -37.307 -1.2 Td (sysconf)Tj /T1_1 1 Tf 4.45 0 Td (with the necessary)Tj /TT0 1 Tf 8.453 0 Td (#ifdef)Tj /T1_1 1 Tf 3.85 0 Td (statements.)Tj -14.953 -1.2 Td (For example, the)Tj /TT0 1 Tf 7.633 0 Td (awk)Tj /T1_1 1 Tf 2.05 0 Td [(pr)18(ogram transforms a line in the input \336le that looks like)]TJ /TT0 1 Tf 8.9989 0 0 8.9989 147.5824 293.2642 Tm [(NAME_MAX )-2933(_PC_NAME_MAX)]TJ /T1_1 1 Tf 9.9988 0 0 9.9988 129.5845 275.2664 Tm (into the following C code:)Tj /TT0 1 Tf 8.9989 0 0 8.9989 147.5824 258.5684 Tm (#ifdef NAME_MAX)Tj 2.778 -1.189 Td (printf\("NAME_MAX is defined to be %d\\n", NAME_MAX+0\);)Tj -2.778 -1.189 Td (#else)Tj 2.778 -1.189 Td (printf\("no symbol for NAME_MAX\\n"\);)Tj -2.778 -1.189 Td (#endif)Tj 0 -1.189 TD (#ifdef _PC_NAME_MAX)Tj 2.778 -1.189 Td (pr_pathconf\("NAME_MAX =", argv[1], _PC_NAME_MAX\);)Tj -2.778 -1.189 Td (#else)Tj 2.778 -1.189 Td (printf\("no symbol for _PC_NAME_MAX\\n"\);)Tj -2.778 -1.189 Td (#endif)Tj /T1_1 1 Tf 9.9988 0 0 9.9988 129.5845 144.2821 Tm [(The )-225(pr)18(ogram )-225(in )-225(Figur)]TJ 0.475 Tc 10.213 0 Td (e2)Tj 0 Tc 1.454 0 Td [(.14, )-225(generated )-225(by )-225(the)]TJ /TT0 1 Tf 10.303 0 Td (awk)Tj /T1_1 1 Tf 2.275 0 Td [(pr)18(ogram, )-225(prints )-225(all )-225(these )-225(limits,)]TJ -24.245 -1.2 Td (handling the case in which a limit is not de\336ned.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47708 0 obj <>stream q /Fm0 Do Q BT /CS0 cs 0 0 0 scn /GS0 gs /TT0 1 Tf 0.0002 Tc -0.0002 Tw 12 0 0 12 218.4731 545.9739 Tm (This page intentionally left blank )Tj ET q 1 0 0 1 47.58 40.02 cm 0 g /GS1 gs 0 Tc 0 Tw /Fm1 Do Q endstream endobj 47709 0 obj <> endobj 47710 0 obj <>stream q /Fm0 Do Q BT /CS0 cs 0 0 0 scn /GS0 gs /TT0 1 Tf 0.0002 Tc -0.0002 Tw 12 0 0 12 218.4731 545.9739 Tm (This page intentionally left blank )Tj ET q 1 0 0 1 47.58 40.02 cm 0 g /GS1 gs 0 Tc 0 Tw /Fm1 Do Q endstream endobj 47711 0 obj <> endobj 47712 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (938)Tj /T1_1 1 Tf 3.5 0 Td [(Solutions )-250(to )-250(Selected )-250(Exer)18(cises )]TJ 38.165 0 Td [(Appendix)-500(C)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 160.2404 668.9599 Tm [(Instead, )-43(when )-43(a )-43(linked )-43(list )-43(is )-43(built )-43(in )-43(a )-43(shar)18(ed )-43(memory )-43(segment, )-43(the )-43(list )-43(pointers)]TJ 0 -1.2 TD [(should )-6(be )-6(stor)18(ed )-6(as )-6(of)19(fsets )-6(to )-6(other )-6(objects )-6(in )-6(the )-6(shar)18(ed )-6(memory )-6(segment.)-504(These)]TJ T* [(of)18(fsets )-97(ar)]TJ 0.3475 Tc 4.072 0 Td (ef)Tj 0 Tc 1.159 0 Td [(ormed )-97(by )-97(subtracting )-97(the )-97(start )-97(of )-97(the )-97(shar)18(ed )-97(memory )-97(segment )-97(fr)14(om)]TJ -5.231 -1.2 Td [(the actual addr)18(ess of the object.)]TJ /T1_0 1 Tf -3.065 -1.84 Td (15.14)Tj /T1_1 1 Tf 3.065 0 Td (Figur)Tj 0.25 Tc 2.383 0 Td (eC)Tj 0 Tc 1.438 0 Td [(.21 shows the r)18(elevant events.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1917.25 6006.25 cm 0 0 m 2964 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 195.7295 592.5289 Tm [(Par)18(ent)]TJ /TT0 1 Tf 3.118 0 Td (i)Tj /T1_1 1 Tf 2.1 0 Td (Child)Tj /TT0 1 Tf 2.734 0 Td (i)Tj /T1_1 1 Tf 2.1 0 Td [(Shar)18(ed value)]TJ /TT0 1 Tf 7.262 0 Td (update)Tj /T1_1 1 Tf -16.631 -1.25 Td [(set to)-2675(set to)-3697(set to)]TJ -0.018 Tc 16.837 0 Td (re)Tj 0 Tc 0.856 0 Td (turns)Tj 8.648 0.625 Td (Comment)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1917.25 5786.25 cm 0 0 m 2964 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1917.25 5766.25 cm 0 0 m 2964 0 l S Q Q BT /T1_1 1 Tf 9.231 Tc 7.9986 0 0 7.9986 297.1635 568.4977 Tm (0i)Tj 0 Tc 10.022 0 Td (nitialized by)Tj /TT0 1 Tf 5.771 0 Td (mmap)Tj /T1_1 1 Tf 15.279 Tc -21.841 -1.25 Td (1c)Tj 0 Tc 16.223 0 Td [(hild r)8(uns \336rst, then is blocked)]TJ 20.305 Tc -21.249 -1.25 Td (0p)Tj 0 Tc 21.406 0 Td [(ar)18(ent r)8(uns)]TJ -10.332 -1.25 Td (1)Tj 3.05 Tc 6.181 -1.25 Td (0t)Tj 0 Tc 3.876 0 Td [(hen par)18(ent is blocked)]TJ 9.231 Tc -10.057 -1.25 Td (2c)Tj 0 Tc 10.175 0 Td [(hild r)18(esumes)]TJ -3.994 -1.25 Td (1)Tj 15.279 Tc -12.229 -1.25 Td (3t)Tj 0 Tc 16.105 0 Td (hen child is blocked)Tj 20.305 Tc -21.131 -1.25 Td (2p)Tj 0 Tc 21.406 0 Td [(ar)18(ent r)18(esumes)]TJ -10.332 -1.25 Td (3)Tj 3.05 Tc 6.181 -1.25 Td (2t)Tj 0 Tc 3.876 0 Td [(hen par)18(ent is blocked)]TJ -10.057 -1.25 Td (4)Tj 6.181 -1.25 Td (3)Tj 15.279 Tc -12.229 -1.25 Td (5t)Tj 0 Tc 16.105 0 Td (hen child is blocked)Tj 20.305 Tc -21.131 -1.25 Td (4p)Tj 0 Tc 21.406 0 Td [(ar)18(ent r)18(esumes)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1917.25 4246.25 cm 0 0 m 2964 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3690.25 4246.25 cm 0 0 m 0 1760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3282.25 4246.25 cm 0 0 m 0 1760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2701.25 4246.25 cm 0 0 m 0 1760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2315.25 4246.25 cm 0 0 m 0 1760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4881.25 4246.25 cm 0 0 m 0 1760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1917.25 4246.25 cm 0 0 m 0 1760 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 222.8435 406.5024 Tm (Figure C.21)Tj /T1_1 1 Tf 5.917 0 Td [(Alternation between par)18(ent and child in Figur)]TJ 0.25 Tc 20.361 0 Td (e1)Tj 0 Tc 1.229 0 Td (5.33)Tj /TT1 1 Tf 9.9976 0 0 9.9976 93.5774 372.9105 Tm [(Chapter )-278(16)]TJ /T1_0 1 Tf 3.6 -2.56 Td (16.1)Tj /T1_1 1 Tf 3.065 0 Td (Figur)Tj 0.25 Tc 2.383 0 Td (eC)Tj 0 Tc 1.438 0 Td [(.22 shows a pr)18(ogram that prints the system\325s byte or)18(der)74(.)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 3402.25 cm 0 0 m 50 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 3402.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /TT0 1 Tf 8.9973 0 0 8.9973 160.2019 330.5998 Tm (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.189 TD (#include )Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(void\))Tj T* ({)Tj 2.4 -1.189 Td [(uint32_t )-4200(i)]TJ 0.6 Tc 10.8 0 Td (=0)Tj 0 Tc 1.8 0 Td (x04030201;)Tj -12.6 -1.189 Td [(unsigned char)-1800(*cp = \(unsigned char *\)&i;)]TJ 0 -1.783 TD (if \(*cp == 1\))Tj 2.4 -1.189 Td (printf\("little-endian\\n"\);)Tj -2.4 -1.189 Td (else if \(*cp == 4\))Tj 2.4 -1.189 Td (printf\("big-endian\\n"\);)Tj -2.4 -1.189 Td (else)Tj 2.4 -1.189 Td (printf\("who knows?\\n"\);)Tj -2.4 -1.189 Td (exit\(0\);)Tj -2.4 -1.189 Td (})Tj ET q 0.09997 0 0 0.09997 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1602.25 1547.25 cm 0 0 m 50 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1646.25 1547.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l S Q Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 259.2437 141.0472 Tm (Figure C.22)Tj /T1_1 1 Tf 5.917 0 Td [(Determine byte or)18(der on system)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47713 0 obj <>stream q /Fm0 Do Q BT /CS0 cs 0 0 0 scn /GS0 gs /TT0 1 Tf 0.0002 Tc -0.0002 Tw 12 0 0 12 218.4731 545.9739 Tm (This page intentionally left blank )Tj ET q 1 0 0 1 47.58 40.02 cm 0 g /GS1 gs 0 Tc 0 Tw /Fm1 Do Q endstream endobj 47714 0 obj <> endobj 47715 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (892)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (vsscanf)Tj /TT0 1 Tf (\(const char *restrict)Tj /T1_2 1 Tf 17.4 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.097 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf (,)Tj -27.697 -1.25 Td (va_list)Tj /T1_2 1 Tf 4.8 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj -2.1 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 163)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj /T1_1 1 Tf 0 -1.5 TD (Returns: number of input items assigned,)Tj /TT0 1 Tf 18.524 0 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td [(if input err)18(or)]TJ -16.597 -1.25 Td (or end of \336le befor)Tj 0.25 Tc 8.155 0 Td (ea)Tj 0 Tc 1.229 0 Td (ny conversion)Tj /TT0 1 Tf -26.861 -3.125 Td (void)Tj /TT1 1 Tf 6 0 Td (vsyslog)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.2 0 Td (priority)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.911 0 Td (onst char *)Tj /T1_2 1 Tf (format)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 11.066 0 Td (a_list)Tj /T1_2 1 Tf 4.2 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj -19.877 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 472)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj /T1_1 1 Tf T* [(Platforms: Fr)18(eeBSD 8.0, Linux 3.2.0, Mac OS X 10.6.8, Solaris 10)]TJ /TT0 1 Tf -13.5 -3.125 Td (pid_t)Tj /TT1 1 Tf 6 0 Td (wait)Tj /TT0 1 Tf (\(int *)Tj /T1_2 1 Tf (statloc)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 238)Tj -28.125 -1.5 Td [(Returns: pr)18(ocess ID if OK, 0, or)]TJ /TT2 1 Tf 13.96 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -27.46 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (waitid)Tj /TT0 1 Tf (\(idtype_t)Tj /T1_2 1 Tf 9.6 0 Td (idtype)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.3 0 Td (d_t)Tj /T1_2 1 Tf 2.4 0 Td (id)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 2.578 0 Td (iginfo_t *)Tj /T1_2 1 Tf (infop)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 9.856 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (options)Tj /TT0 1 Tf (\);)Tj -23.034 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 244)Tj /T1_2 1 Tf -28.125 -1.5 Td (idtype)Tj /TT0 1 Tf 0.6 Tc (:P)Tj 0 Tc 4.3 0 Td (_PID, P_PGID, P_ALL)Tj /T1_2 1 Tf -4.3 -1.5 Td (options)Tj /TT0 1 Tf 0.6 Tc (:W)Tj 0 Tc 4.744 0 Td (CONTINUED, WEXITED, WNOHANG, WNOWAIT,)Tj -0.6 -1.25 Td (WSTOPPED)Tj /T1_1 1 Tf -4.144 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ -7.613 -1.5 Td (Platforms: Linux 3.2.0, Solaris 10)Tj /TT0 1 Tf -13.5 -3.125 Td (pid_t)Tj /TT1 1 Tf 6 0 Td (waitpid)Tj /TT0 1 Tf (\(pid_t)Tj /T1_2 1 Tf 8.4 0 Td (pid)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.078 0 Td (nt *)Tj /T1_2 1 Tf (statloc)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 6.828 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (options)Tj /TT0 1 Tf (\);)Tj -12.606 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 238)Tj /T1_2 1 Tf -28.125 -1.5 Td (options)Tj /TT0 1 Tf 0.6 Tc (:W)Tj 0 Tc 4.744 0 Td (CONTINUED, WNOHANG, WUNTRACED)Tj /T1_1 1 Tf -4.744 -1.5 Td [(Returns: pr)18(ocess ID if OK, 0, or)]TJ /TT2 1 Tf 13.96 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -27.46 -3.125 Td (pid_t)Tj /TT1 1 Tf 6 0 Td (wait3)Tj /TT0 1 Tf (\(int *)Tj /T1_2 1 Tf (statloc)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 11.028 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (options)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 4.744 0 Td (truct rusage *)Tj /T1_2 1 Tf (rusage)Tj /TT0 1 Tf (\);)Tj -10.072 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 245)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj 0 -1.25 TD ()Tj T* ()Tj /T1_2 1 Tf 0 -1.5 TD (options)Tj /TT0 1 Tf 0.6 Tc (:W)Tj 0 Tc 4.744 0 Td (NOHANG, WUNTRACED)Tj /T1_1 1 Tf -4.744 -1.5 Td [(Returns: pr)18(ocess ID if OK, 0, or)]TJ /TT2 1 Tf 13.96 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ -13.96 -1.5 Td [(Platforms: Fr)18(eeBSD 8.0, Linux 3.2.0, Mac OS X 10.6.8, Solaris 10)]TJ /TT0 1 Tf -13.5 -3.125 Td (pid_t)Tj /TT1 1 Tf 6 0 Td (wait4)Tj /TT0 1 Tf (\(pid_t)Tj /T1_2 1 Tf 7.2 0 Td (pid)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.078 0 Td (nt *)Tj /T1_2 1 Tf (statloc)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 6.828 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (options)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 4.744 0 Td (truct rusage *)Tj /T1_2 1 Tf (rusage)Tj /TT0 1 Tf (\);)Tj -16.15 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 245)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj 0 -1.25 TD ()Tj T* ()Tj /T1_2 1 Tf 0 -1.5 TD (options)Tj /TT0 1 Tf 0.6 Tc (:W)Tj 0 Tc 4.744 0 Td (NOHANG, WUNTRACED)Tj /T1_1 1 Tf -4.744 -1.5 Td [(Returns: pr)18(ocess ID if OK, 0, or)]TJ /TT2 1 Tf 13.96 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ -13.96 -1.5 Td [(Platforms: Fr)18(eeBSD 8.0, Linux 3.2.0, Mac OS X 10.6.8, Solaris 10)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47716 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (891)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (vdprintf)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.466 0 Td (a_list)Tj /T1_2 1 Tf 4.2 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj -23.544 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 161)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj /T1_0 1 Tf 0 -1.5 TD (Returns: number of characters output if OK, negative)Tj 3.977 -1.25 Td [(value if output err)18(or)]TJ /TT0 1 Tf -17.477 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (vfprintf)Tj /TT0 1 Tf (\(FILE *restrict)Tj /T1_2 1 Tf 14.4 0 Td (fp)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf (,)Tj -23.578 -1.25 Td (va_list)Tj /T1_2 1 Tf 4.8 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj -2.7 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 161)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj /T1_0 1 Tf T* (Returns: number of characters output if OK, negative)Tj 3.977 -1.25 Td [(value if output err)18(or)]TJ /TT0 1 Tf -17.477 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (vfscanf)Tj /TT0 1 Tf (\(FILE *restrict)Tj /T1_2 1 Tf 13.8 0 Td (fp)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf (,)Tj -23.578 -1.25 Td (va_list)Tj /T1_2 1 Tf 4.8 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj -2.1 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 163)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj /T1_0 1 Tf T* (Returns: number of input items assigned,)Tj /TT0 1 Tf 18.524 0 Td (EOF)Tj /T1_0 1 Tf 2.05 0 Td [(if input err)18(or)]TJ -16.597 -1.25 Td (or end of \336le befor)Tj 0.25 Tc 8.155 0 Td (ea)Tj 0 Tc 1.229 0 Td (ny conversion)Tj /TT0 1 Tf -26.861 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (vprintf)Tj /TT0 1 Tf (\(const char *restrict)Tj /T1_2 1 Tf 17.4 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.466 0 Td (a_list)Tj /T1_2 1 Tf 4.2 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj -18.566 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 161)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj /T1_0 1 Tf T* (Returns: number of characters output if OK, negative)Tj 3.977 -1.25 Td [(value if output err)18(or)]TJ /TT0 1 Tf -17.477 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (vscanf)Tj /TT0 1 Tf (\(const char *restrict)Tj /T1_2 1 Tf 16.8 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.466 0 Td (a_list)Tj /T1_2 1 Tf 4.2 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj -17.966 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 163)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj /T1_0 1 Tf T* (Returns: number of input items assigned,)Tj /TT0 1 Tf 18.524 0 Td (EOF)Tj /T1_0 1 Tf 2.05 0 Td [(if input err)18(or)]TJ -16.597 -1.25 Td (or end of \336le befor)Tj 0.25 Tc 8.155 0 Td (ea)Tj 0 Tc 1.229 0 Td (ny conversion)Tj /TT0 1 Tf -26.861 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (vsnprintf)Tj /TT0 1 Tf (\(char *restrict)Tj /T1_2 1 Tf 15 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (n)Tj /TT0 1 Tf (,)Tj -15.697 -1.25 Td (const char *restrict)Tj /T1_2 1 Tf 12.6 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.466 0 Td (a_list)Tj /T1_2 1 Tf 4.2 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj -19.766 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 161)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj /T1_0 1 Tf T* [(Returns: number of characters that would have been stor)18(ed)]TJ 3.977 -1.25 Td [(in array if buf)18(fer was lar)18(ge enough, negative value)]TJ 0 -1.25 TD [(if encoding err)18(or)]TJ /TT0 1 Tf -17.477 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (vsprintf)Tj /TT0 1 Tf (\(char *restrict)Tj /T1_2 1 Tf 14.4 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.097 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf (,)Tj -24.097 -1.25 Td (va_list)Tj /T1_2 1 Tf 4.8 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj -2.7 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 161)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj /T1_0 1 Tf 0 -1.5 TD [(Returns: number of characters stor)18(ed in array if OK, negative)]TJ 3.977 -1.25 Td [(value if encoding err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47717 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (890)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (truncate)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,o)Tj 0 Tc 16.177 0 Td (ff_t)Tj /T1_2 1 Tf 3 0 Td (length)Tj /TT0 1 Tf (\);)Tj -11.677 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td [(p. 1)55(12)]TJ -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.875 Td [(char )-2400(*)]TJ /TT1 1 Tf (ttyname)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 13.2 0 Td (fd)Tj /TT0 1 Tf (\);)Tj 0.3 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 695)Tj -28.125 -1.5 Td (Returns: pointer to pathname of terminal,)Tj /TT0 1 Tf 18.648 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -34.798 -2.875 Td (mode_t)Tj /TT1 1 Tf 6 0 Td (umask)Tj /TT0 1 Tf (\(mode_t)Tj /T1_2 1 Tf 7.8 0 Td (cmask)Tj /TT0 1 Tf (\);)Tj -0.3 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 104)Tj -28.125 -1.5 Td [(Returns: pr)18(evious \336le mode cr)18(eation mask)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (uname)Tj /TT0 1 Tf (\(struct utsname *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 187)Tj -28.125 -1.5 Td (Returns: non-negative value if OK,)Tj /TT2 1 Tf 15.622 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -29.122 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (ungetc)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (c)Tj /TT0 1 Tf 0.6 Tc (,F)Tj 0 Tc 2.207 0 Td (ILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj -1.307 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 151)Tj -28.125 -1.5 Td (Returns:)Tj /T1_2 1 Tf 3.977 0 Td (c)Tj /T1_1 1 Tf 0.657 0 Td (if OK,)Tj /TT0 1 Tf 2.886 0 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td [(on err)18(or)]TJ /TT0 1 Tf -23.07 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (unlink)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td [(p. 1)55(17)]TJ -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (unlinkat)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 10.177 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj -14.855 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td [(p. 1)55(17)]TJ /T1_2 1 Tf -28.125 -1.5 Td (\337ag)Tj /TT0 1 Tf 0.6 Tc (:A)Tj 0 Tc 3.289 0 Td (T_REMOVEDIR)Tj /T1_1 1 Tf -3.289 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (unlockpt)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.8 0 Td (fd)Tj /TT0 1 Tf (\);)Tj -0.3 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 723)Tj -28.125 -1.5 Td (Returns: 0 on success,)Tj /TT2 1 Tf 9.847 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -23.347 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (unsetenv)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 212)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (utimensat)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 8.4 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf (,)Tj -4.978 -1.25 Td (const struct timespec)Tj /T1_2 1 Tf 13.2 0 Td (times)Tj /TT0 1 Tf ([2], int)Tj /T1_2 1 Tf 7.567 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj -19.267 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 126)Tj /T1_2 1 Tf -28.125 -1.5 Td (\337ag)Tj /TT0 1 Tf 0.6 Tc (:A)Tj 0 Tc 3.289 0 Td (T_SYMLINK_NOFOLLOW)Tj /T1_1 1 Tf -3.289 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (utimes)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 14.977 0 Td (onst struct timeval)Tj /T1_2 1 Tf 12 0 Td (times)Tj /TT0 1 Tf ([2]\);)Tj -19.477 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 127)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47718 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (889)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (tcgetattr)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 8.4 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 2.578 0 Td (truct termios *)Tj /T1_2 1 Tf (termptr)Tj /TT0 1 Tf (\);)Tj -3.478 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 683)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.875 Td (pid_t)Tj /TT1 1 Tf 6 0 Td (tcgetpgrp)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 8.4 0 Td (fd)Tj /TT0 1 Tf (\);)Tj -0.9 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 298)Tj -28.125 -1.5 Td [(Returns: pr)18(ocess gr)18(oup ID of for)18(egr)18(ound pr)18(ocess gr)18(oup if OK,)]TJ /TT2 1 Tf 3.977 -1.25 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -17.477 -2.875 Td (pid_t)Tj /TT1 1 Tf 6 0 Td (tcgetsid)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.8 0 Td (fd)Tj /TT0 1 Tf (\);)Tj -0.3 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 299)Tj -28.125 -1.5 Td [(Returns: session leader)-74(\325s pr)18(ocess gr)18(oup ID if OK,)]TJ /TT2 1 Tf 21.903 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -35.403 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (tcsendbreak)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (duration)Tj /TT0 1 Tf (\);)Tj -6.478 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 693)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (tcsetattr)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 8.4 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (opt)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.077 0 Td (onst struct termios *)Tj /T1_2 1 Tf (termptr)Tj /TT0 1 Tf (\);)Tj -8.355 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 683)Tj /T1_2 1 Tf -28.125 -1.5 Td (opt)Tj /TT0 1 Tf 0.6 Tc (:T)Tj 0 Tc 3.077 0 Td (CSANOW, TCSADRAIN, TCSAFLUSH)Tj /T1_0 1 Tf -3.077 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (tcsetpgrp)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 8.4 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,p)Tj 0 Tc 2.578 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (pgrpid)Tj /TT0 1 Tf (\);)Tj -6.478 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 298)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.875 Td (long)Tj /TT1 1 Tf 6 0 Td (telldir)Tj /TT0 1 Tf (\(DIR *)Tj /T1_2 1 Tf (dp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 130)Tj -28.125 -1.5 Td [(Returns: curr)18(ent location in dir)18(ectory associated with)]TJ /T1_2 1 Tf 23.685 0 Td (dp)Tj /TT0 1 Tf -37.185 -2.875 Td (time_t)Tj /TT1 1 Tf 6 0 Td (time)Tj /TT0 1 Tf (\(time_t *)Tj /T1_2 1 Tf (calptr)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 189)Tj -28.125 -1.5 Td (Returns: value of time if OK,)Tj /TT2 1 Tf 12.909 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -26.409 -2.875 Td (clock_t)Tj /TT1 1 Tf 6 0 Td (times)Tj /TT0 1 Tf (\(struct tms *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 12.282 0 Td (\);)Tj -4.782 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 280)Tj -28.125 -1.5 Td (Returns: elapsed wall clock time in clock ticks if OK,)Tj /TT2 1 Tf 3.977 -1.25 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -17.477 -2.875 Td [(FILE )-2400(*)]TJ /TT1 1 Tf (tmpfile)Tj /TT0 1 Tf (\(void\);)Tj 13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 167)Tj -28.125 -1.5 Td (Returns: \336le pointer if OK,)Tj /TT0 1 Tf 11.958 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -28.108 -2.875 Td [(char )-2400(*)]TJ /TT1 1 Tf (tmpnam)Tj /TT0 1 Tf (\(char *)Tj /T1_2 1 Tf (ptr)Tj /TT0 1 Tf (\);)Tj 13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 167)Tj -28.125 -1.5 Td (Returns: pointer to unique pathname,)Tj /TT0 1 Tf 16.89 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47719 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (888)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (long)Tj /TT1 1 Tf 6 0 Td (sysconf)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.2 0 Td (name)Tj /TT0 1 Tf (\);)Tj 0.3 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 42)Tj /T1_2 1 Tf -28.125 -1.5 Td (name)Tj /TT0 1 Tf 0.6 Tc (:_)Tj 0 Tc 3.967 0 Td (SC_ARG_MAX, _SC_ASYNCHRONOUS_IO,)Tj -0.6 -1.25 Td (_SC_ATEXIT_MAX, _SC_BARRIERS,)Tj 0 -1.25 TD (_SC_CHILD_MAX, _SC_CLK_TCK,)Tj T* (_SC_CLOCK_SELECTION, _SC_COLL_WEIGHTS_MAX,)Tj T* (_SC_DELAYTIMER_MAX, _SC_HOST_NAME_MAX,)Tj T* (_SC_IOV_MAX, _SC_JOB_CONTROL,)Tj T* (_SC_LINE_MAX, _SC_LOGIN_NAME_MAX,)Tj T* (_SC_MAPPED_FILED, _SC_MEMORY_PROTECTION,)Tj T* (_SC_NGROUPS_MAX,_SC_OPEN_MAX,)Tj T* (_SC_PAGESIZE, _SC_PAGE_SIZE,)Tj T* (_SC_READER_WRITER_LOCKS,)Tj T* (_SC_REALTIME_SIGNALS, _SC_RE_DUP_MAX,)Tj T* (_SC_RTSIG_MAX, _SC_SAVED_IDS,)Tj T* (_SC_SEMAPHORES, _SC_SEM_NSEMS_MAX,)Tj T* (_SC_SEM_VALUE_MAX, _SC_SHELL,)Tj T* (_SC_SIGQUEUE_MAX, _SC_SPIN_LOCKS,)Tj T* (_SC_STREAM_MAX, _SC_SYMLOOP_MAX,)Tj T* (_SC_THREAD_SAFE_FUNCTIONS,)Tj T* (_SC_THREADS, _SC_TIMER_MAX,)Tj T* (_SC_TIMERS, _SC_TTY_NAME_MAX,)Tj T* (_SC_TZNAME_MAX, _SC_VERSION,)Tj T* (_SC_XOPEN_CRYPT, _SC_XOPEN_REALTIME,)Tj T* (_SC_XOPEN_REALTIME_THREADS, _SC_XOPEN_SHM)Tj T* (_SC_XOPEN_VERSION)Tj /T1_1 1 Tf -3.367 -1.5 Td [(Returns: corr)18(esponding value if OK,)]TJ /TT2 1 Tf 16.235 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -29.735 -3.125 Td (void)Tj /TT1 1 Tf 6 0 Td (syslog)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (priority)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.911 0 Td (har *)Tj /T1_2 1 Tf (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 7.466 0 Td (..\);)Tj -11.477 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 470)Tj /TT0 1 Tf -41.625 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (system)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (cmdstring)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 265)Tj -28.125 -1.5 Td (Returns: termination status of shell)Tj /TT0 1 Tf -13.5 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (tcdrain)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.2 0 Td (fd)Tj /TT0 1 Tf (\);)Tj 0.3 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 693)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (tcflow)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (action)Tj /TT0 1 Tf (\);)Tj -3.478 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 693)Tj /T1_2 1 Tf -28.125 -1.5 Td (action)Tj /TT0 1 Tf 0.6 Tc (:T)Tj 0 Tc 4.262 0 Td (COOFF, TCOON, TCIOFF, TCION)Tj /T1_1 1 Tf -4.262 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (tcflush)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.2 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (queue)Tj /TT0 1 Tf (\);)Tj -4.078 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 693)Tj /T1_2 1 Tf -28.125 -1.5 Td (queue)Tj /TT0 1 Tf 0.6 Tc (:T)Tj 0 Tc 4.153 0 Td (CIFLUSH, TCOFLUSH, TCIOFLUSH)Tj /T1_1 1 Tf -4.153 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47720 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (887)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (stat)Tj /TT0 1 Tf (\(const char *restrict)Tj /T1_2 1 Tf 15.6 0 Td (path)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.577 0 Td (truct stat *restrict)Tj /T1_2 1 Tf 12.6 0 Td (buf)Tj /TT0 1 Tf 1.482 0 Td (\);)Tj -25.759 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 93)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (str2sig)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (str)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 14.911 0 Td (nt *)Tj /T1_2 1 Tf (signop)Tj /TT0 1 Tf (\);)Tj -7.411 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 380)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ -7.613 -1.5 Td (Platforms: Solaris 10)Tj /TT0 1 Tf -13.5 -3 Td [(char )-2400(*)]TJ /TT1 1 Tf (strerror)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 13.8 0 Td (errnum)Tj /TT0 1 Tf (\);)Tj -0.3 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 15)Tj -28.125 -1.5 Td (Returns: pointer to message string)Tj /TT0 1 Tf -13.5 -3 Td (size_t)Tj /TT1 1 Tf 6 0 Td (strftime)Tj /TT0 1 Tf (\(char *restrict)Tj /T1_2 1 Tf 14.4 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (maxsize)Tj /TT0 1 Tf (,)Tj -15.697 -1.25 Td (const char *restrict)Tj /T1_2 1 Tf 12.6 0 Td (format)Tj /TT0 1 Tf (,)Tj -12.6 -1.25 Td (const struct tm *restrict)Tj /T1_2 1 Tf 15.6 0 Td (tmptr)Tj /TT0 1 Tf (\);)Tj -13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 192)Tj -28.125 -1.5 Td [(Returns: number of characters stor)18(ed in array if r)18(oom,)]TJ 0.25 Tc 3.977 -1.25 Td (0o)Tj 0 Tc 1.296 0 Td (therwise)Tj /TT0 1 Tf -18.773 -3 Td (size_t)Tj /TT1 1 Tf 6 0 Td (strftime_l)Tj /TT0 1 Tf (\(char *restrict)Tj /T1_2 1 Tf 15.6 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (maxsize)Tj /TT0 1 Tf (,)Tj -15.697 -1.25 Td (const char *restrict)Tj /T1_2 1 Tf 12.6 0 Td (format)Tj /TT0 1 Tf (,)Tj -12.6 -1.25 Td (const struct tm *restrict)Tj /T1_2 1 Tf 15.6 0 Td (tmptr)Tj /TT0 1 Tf 0.6 Tc (,l)Tj 0 Tc 4.133 0 Td (ocale_t)Tj /T1_2 1 Tf 4.8 0 Td (locale)Tj /TT0 1 Tf (\);)Tj -23.633 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 192)Tj -28.125 -1.5 Td [(Returns: number of characters stor)18(ed in array if r)18(oom,)]TJ 0.25 Tc 3.977 -1.25 Td (0o)Tj 0 Tc 1.296 0 Td (therwise)Tj /TT0 1 Tf -18.773 -3 Td [(char )-2400(*)]TJ /TT1 1 Tf (strptime)Tj /TT0 1 Tf (\(const char *restrict)Tj /T1_2 1 Tf 24 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.097 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf (,)Tj -27.697 -1.25 Td (struct tm *restrict)Tj /T1_2 1 Tf 12 0 Td (tmptr)Tj /TT0 1 Tf (\);)Tj -9.9 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 195)Tj -28.125 -1.5 Td (Returns: pointer to one character past last character parsed,)Tj /TT0 1 Tf 3.977 -1.25 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td (otherwise)Tj /TT0 1 Tf -20.127 -3 Td (char)Tj /TT1 1 Tf 5.4 0 Td (*strsignal)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9 0 Td (signo)Tj /TT0 1 Tf (\);)Tj -0.9 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 380)Tj -28.125 -1.5 Td (Returns: a pointer to a string describing the signal)Tj /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (symlink)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (actualpath)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 18.039 0 Td (onst char *)Tj /T1_2 1 Tf (sympath)Tj /TT0 1 Tf (\);)Tj -10.539 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 123)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (symlinkat)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (actualpath)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 19.239 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (sympath)Tj /TT0 1 Tf (\);)Tj -16.117 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 123)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (void)Tj /TT1 1 Tf 6 0 Td (sync)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 81)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47721 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (886)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (sigsuspend)Tj /TT0 1 Tf (\(const sigset_t *)Tj /T1_2 1 Tf (sigmask)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 359)Tj -28.125 -1.5 Td (Returns:)Tj /TT2 1 Tf 3.977 0 Td (!)Tj /T1_1 1 Tf 0.25 Tc (1w)Tj 0 Tc 2.133 0 Td (ith)Tj /TT0 1 Tf 1.449 0 Td (errno)Tj /T1_1 1 Tf 3.25 0 Td (set to)Tj /TT0 1 Tf 2.601 0 Td (EINTR)Tj -26.91 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (sigwait)Tj /TT0 1 Tf (\(const sigset_t *restrict)Tj /T1_2 1 Tf 19.8 0 Td (set)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.911 0 Td (nt *restrict)Tj /T1_2 1 Tf 7.8 0 Td (signop)Tj /TT0 1 Tf (\);)Tj -23.011 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 454)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.375 Td (unsigned)Tj 0 -1.25 TD (int)Tj /TT1 1 Tf 6 0 Td (sleep)Tj /TT0 1 Tf (\(unsigned int)Tj /T1_2 1 Tf 11.4 0 Td (seconds)Tj /TT0 1 Tf (\);)Tj -3.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 373)Tj -28.125 -1.5 Td (Returns: 0 or number of unslept seconds)Tj /TT0 1 Tf -13.5 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (snprintf)Tj /TT0 1 Tf (\(char *restrict)Tj /T1_2 1 Tf 14.4 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (n)Tj /TT0 1 Tf (,)Tj -15.697 -1.25 Td (const char *restrict)Tj /T1_2 1 Tf 12.6 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 4.466 0 Td (..\);)Tj -14.966 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 159)Tj -28.125 -1.5 Td [(Returns: number of characters that would have been stor)18(ed)]TJ 3.977 -1.25 Td [(in array if buf)18(fer was lar)18(ge enough, negative value)]TJ T* [(if encoding err)18(or)]TJ /TT0 1 Tf -17.477 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (sockatmark)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9 0 Td (sockfd)Tj /TT0 1 Tf (\);)Tj -1.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 626)Tj -28.125 -1.5 Td (Returns: 1 if at mark, 0 if not at mark,)Tj /TT2 1 Tf 16.749 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -30.249 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (socket)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (domain)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.8 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (type)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.522 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td [(pr)18(otocol)]TJ /TT0 1 Tf (\);)Tj -11.022 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 590)Tj /T1_2 1 Tf -28.125 -1.5 Td (type)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 3.522 0 Td (OCK_STREAM, SOCK_DGRAM, SOCK_SEQPACKET)Tj /T1_1 1 Tf -3.522 -1.5 Td (Returns: \336le \(socket\) descriptor if OK,)Tj /TT2 1 Tf 16.941 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -30.441 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (socketpair)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9 0 Td (domain)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.8 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (type)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.522 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td [(pr)18(otocol)]TJ /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 5.021 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (sockfd)Tj /TT0 1 Tf ([2]\);)Tj -20.243 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 630)Tj /T1_2 1 Tf -28.125 -1.5 Td (type)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 3.522 0 Td (OCK_STREAM, SOCK_DGRAM, SOCK_SEQPACKET)Tj /T1_1 1 Tf -3.522 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (sprintf)Tj /TT0 1 Tf (\(char *restrict)Tj /T1_2 1 Tf 13.8 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.097 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 4.466 0 Td (..\);)Tj -25.863 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 159)Tj -28.125 -1.5 Td [(Returns: number of characters stor)18(ed in array if OK, negative)]TJ 3.977 -1.25 Td [(value if encoding err)18(or)]TJ /TT0 1 Tf -17.477 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (sscanf)Tj /TT0 1 Tf (\(const char *restrict)Tj /T1_2 1 Tf 16.8 0 Td (buf)Tj /TT0 1 Tf (,)Tj -12.6 -1.25 Td (const char *restrict)Tj /T1_2 1 Tf 12.6 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 4.466 0 Td (..\);)Tj -13.766 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 162)Tj -28.125 -1.5 Td (Returns: number of input items assigned,)Tj /TT0 1 Tf 18.524 0 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td [(if input err)18(or or)]TJ -16.597 -1.25 Td (end of \336le befor)Tj 0.25 Tc 6.964 0 Td (ea)Tj 0 Tc 1.229 0 Td (ny conversion)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47722 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (885)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (sigdelset)Tj /TT0 1 Tf (\(sigset_t *)Tj /T1_2 1 Tf (set)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 14.911 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (signo)Tj /TT0 1 Tf (\);)Tj -9.211 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 344)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (sigemptyset)Tj /TT0 1 Tf (\(sigset_t *)Tj /T1_2 1 Tf (set)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 344)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (sigfillset)Tj /TT0 1 Tf (\(sigset_t *)Tj /T1_2 1 Tf (set)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 344)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (sigismember)Tj /TT0 1 Tf (\(const sigset_t *)Tj /T1_2 1 Tf (set)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 19.711 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (signo)Tj /TT0 1 Tf (\);)Tj -14.011 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 344)Tj -28.125 -1.5 Td [(Returns: 1 if tr)8(ue, 0 if false,)]TJ /TT2 1 Tf 12.047 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -25.547 -3.375 Td (void)Tj /TT1 1 Tf 6 0 Td (siglongjmp)Tj /TT0 1 Tf (\(sigjmp_buf)Tj /T1_2 1 Tf 13.2 0 Td (env)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.245 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (val)Tj /TT0 1 Tf (\);)Tj -10.745 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 356)Tj -28.125 -1.5 Td [(This function never r)18(eturns)]TJ /TT0 1 Tf -13.5 -3.375 Td [(void )-1800(\(*)]TJ /TT1 1 Tf (signal)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 12.6 0 Td (signo)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 3.967 0 Td (oid \(*)Tj /T1_2 1 Tf (func)Tj /TT0 1 Tf (\)\(int\)\)\)\(int\);)Tj -3.067 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 323)Tj -28.125 -1.5 Td [(Returns: pr)18(evious disposition of signal if OK,)]TJ /TT0 1 Tf 3.977 -1.25 Td (SIG_ERR)Tj /T1_0 1 Tf 4.45 0 Td [(on err)18(or)]TJ /TT0 1 Tf -21.927 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (sigpending)Tj /TT0 1 Tf (\(sigset_t *)Tj /T1_2 1 Tf (set)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 347)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (sigprocmask)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9.6 0 Td (how)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.466 0 Td (onst sigset_t *restrict)Tj /T1_2 1 Tf 14.4 0 Td (set)Tj /TT0 1 Tf (,)Tj -20.266 -1.25 Td (sigset_t *restrict)Tj /T1_2 1 Tf 11.4 0 Td (oset)Tj /TT0 1 Tf (\);)Tj -11.1 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 346)Tj /T1_2 1 Tf -28.125 -1.5 Td (how)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 3.466 0 Td (IG_BLOCK, SIG_UNBLOCK, SIG_SETMASK)Tj /T1_0 1 Tf -3.466 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (sigqueue)Tj /TT0 1 Tf (\(pid_t)Tj /T1_2 1 Tf 9 0 Td (pid)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.078 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (signo)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.967 0 Td (onst union sigval)Tj /T1_2 1 Tf 10.8 0 Td (value)Tj /TT0 1 Tf (\))Tj -21.145 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 376)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (sigsetjmp)Tj /TT0 1 Tf (\(sigjmp_buf)Tj /T1_2 1 Tf 12.6 0 Td (env)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.245 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (savemask)Tj /TT0 1 Tf (\);)Tj -10.145 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 356)Tj -28.125 -1.5 Td [(Returns: 0 if called dir)18(ectly)]TJ 0.25 Tc 11.731 0 Td (,n)Tj 0 Tc 1.082 0 Td [(onzer)18(o)-250(if)-250(r)18(eturning fr)18(om a call)]TJ -8.836 -1.25 Td (to)Tj /TT0 1 Tf 1.122 0 Td (siglongjmp)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47723 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (884)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (setvbuf)Tj /TT0 1 Tf (\(FILE *restrict)Tj /T1_2 1 Tf 13.8 0 Td (fp)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (har *restrict)Tj /T1_2 1 Tf 8.4 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.097 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (mode)Tj /TT0 1 Tf (,)Tj -24.875 -1.25 Td (size_t)Tj /T1_2 1 Tf 4.2 0 Td (size)Tj /TT0 1 Tf (\);)Tj -1.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 146)Tj /T1_2 1 Tf -28.125 -1.5 Td (mode)Tj /TT0 1 Tf 0.6 Tc (:_)Tj 0 Tc 3.911 0 Td (IOFBF, _IOLBF, _IONBF)Tj /T1_1 1 Tf -3.911 -1.5 Td [(Returns: 0 if OK, nonzer)18(o)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -13.5 -3.125 Td [(void )-2400(*)]TJ /TT1 1 Tf (shmat)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 12 0 Td (shmid)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.245 0 Td (onst void *)Tj /T1_2 1 Tf (addr)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 10.233 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj -14.778 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 574)Tj /T1_2 1 Tf -28.125 -1.5 Td (\337ag)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 3.289 0 Td (HM_RND, SHM_RDONLY)Tj /T1_1 1 Tf -3.289 -1.5 Td [(Returns: pointer to shar)18(ed memory segment if OK,)]TJ /TT2 1 Tf 22.649 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -36.149 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (shmctl)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (shmid)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.245 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (cmd)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.485 0 Td (truct shmid_ds *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 11.082 0 Td (\);)Tj -19.712 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 573)Tj /T1_2 1 Tf -28.125 -1.5 Td (cmd)Tj /TT0 1 Tf 0.6 Tc (:I)Tj 0 Tc 3.485 0 Td (PC_STAT, IPC_SET, IPC_RMID,)Tj -0.6 -1.25 Td (SHM_LOCK)Tj 5.4 0.04 Td (\()Tj 0.6 -0.04 Td (Linux 3.2.0, Solaris 10)Tj 13.8 0.04 Td (\))Tj 0.6 -0.04 Td (,)Tj -20.4 -1.25 Td (SHM_UNLOCK)Tj 6.6 0.04 Td (\()Tj 0.6 -0.04 Td (Linux 3.2.0, Solaris 10)Tj 13.8 0.04 Td (\))Tj /T1_1 1 Tf -23.885 -1.54 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (shmdt)Tj /TT0 1 Tf (\(const void *)Tj /T1_2 1 Tf (addr)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 574)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (shmget)Tj /TT0 1 Tf (\(key_t)Tj /T1_2 1 Tf 7.8 0 Td (key)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.133 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (size)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.3 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj -12.133 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 572)Tj /T1_2 1 Tf -28.125 -1.5 Td (\337ag)Tj /TT0 1 Tf 0.6 Tc (:I)Tj 0 Tc 3.289 0 Td (PC_CREAT, IPC_EXCL)Tj /T1_1 1 Tf -3.289 -1.5 Td [(Returns: non-negative shar)18(ed memory ID if OK,)]TJ /TT2 1 Tf 21.51 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -35.01 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (shutdown)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.8 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.262 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (how)Tj /TT0 1 Tf (\);)Tj -6.362 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 592)Tj /T1_2 1 Tf -28.125 -1.5 Td (how)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 3.466 0 Td (HUT_RD, SHUT_WR, SHUT_RDWR)Tj /T1_1 1 Tf -3.466 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (sig2str)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.2 0 Td (signo)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.967 0 Td (har *)Tj /T1_2 1 Tf (str)Tj /TT0 1 Tf (\);)Tj -3.667 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 380)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ -7.613 -1.5 Td (Platforms: Solaris 10)Tj /TT0 1 Tf -13.5 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (sigaction)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 8.4 0 Td (signo)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.967 0 Td (onst struct sigaction *restrict)Tj /T1_2 1 Tf 19.2 0 Td (act)Tj /TT0 1 Tf (,)Tj -25.567 -1.25 Td (struct sigaction *restrict)Tj /T1_2 1 Tf 16.2 0 Td (oact)Tj /TT0 1 Tf (\);)Tj -14.7 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 350)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (sigaddset)Tj /TT0 1 Tf (\(sigset_t *)Tj /T1_2 1 Tf (set)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 14.911 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (signo)Tj /TT0 1 Tf (\);)Tj -9.211 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 344)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47724 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (883)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (setregid)Tj /TT0 1 Tf (\(gid_t)Tj /T1_2 1 Tf -0.018 Tc 9 0 Td (rg)Tj 0 Tc 0.871 0 Td (id)Tj /TT0 1 Tf 0.6 Tc (,g)Tj 0 Tc 2.578 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (egid)Tj /TT0 1 Tf (\);)Tj -7.949 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 257)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (setreuid)Tj /TT0 1 Tf (\(uid_t)Tj /T1_2 1 Tf 9 0 Td (ruid)Tj /TT0 1 Tf 0.6 Tc (,u)Tj 0 Tc 3.523 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (euid)Tj /TT0 1 Tf (\);)Tj -8.023 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 257)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (setrlimit)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf -0.018 Tc 8.4 0 Td (re)Tj 0 Tc 0.76 0 Td [(sour)18(ce)]TJ /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.356 0 Td (onst struct rlimit *)Tj /T1_2 1 Tf (rlptr)Tj /TT0 1 Tf (\);)Tj -6.016 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 220)Tj /T1_2 1 Tf -0.018 Tc -28.125 -1.5 Td (re)Tj 0 Tc 0.76 0 Td [(sour)18(ce)]TJ /TT0 1 Tf 0.6 Tc (:R)Tj 0 Tc 4.356 0 Td (LIMIT_CORE, RLIMIT_CPU,)Tj -0.6 -1.25 Td (RLIMIT_DATA, RLIMIT_FSIZE,)Tj 0 -1.25 TD (RLIMIT_NOFILE, RLIMIT_STACK,)Tj T* (RLIMIT_AS)Tj /T1_0 1 Tf 6 0 Td [(\(Fr)18(eeBSD 8.0, Linux 3.2.0,)]TJ 0.333 -1.25 Td (Solaris 10\))Tj /TT0 1 Tf (,)Tj -6.333 -1.25 Td (RLIMIT_MEMLOCK)Tj /T1_0 1 Tf 9 0 Td [(\(Fr)18(eeBSD 8.0, Linux 3.2.0,)]TJ 0.333 -1.25 Td (Mac OS X 10.6.8\))Tj /TT0 1 Tf (,)Tj -9.333 -1.25 Td (RLIMIT_MSGQUEUE)Tj /T1_0 1 Tf 9.6 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -15.119 -1.25 Td (RLIMIT_NICE)Tj /T1_0 1 Tf 7.2 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -12.719 -1.25 Td (RLIMIT_NPROC)Tj /T1_0 1 Tf 7.8 0 Td [(\(Fr)18(eeBSD 8.0, Linux 3.2.0,)]TJ 0.333 -1.25 Td (Mac OS X 10.6.8\))Tj /TT0 1 Tf (,)Tj -8.133 -1.25 Td (RLIMIT_NPTS)Tj /T1_0 1 Tf 7.2 0.04 Td (\()Tj 0.333 -0.04 Td [(Fr)18(eeBSD 8.0)]TJ 5.301 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -13.167 -1.25 Td (RLIMIT_RSS)Tj /T1_0 1 Tf 6.6 0 Td [(\(Fr)18(eeBSD 8.0, Linux 3.2.0,)]TJ 0.333 -1.25 Td (Mac OS X 10.6.8\))Tj /TT0 1 Tf (,)Tj -6.933 -1.25 Td (RLIMIT_SBSIZE)Tj /T1_0 1 Tf 8.4 0.04 Td (\()Tj 0.333 -0.04 Td [(Fr)18(eeBSD 8.0)]TJ 5.301 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -14.367 -1.25 Td (RLIMIT_SIGPENDING)Tj /T1_0 1 Tf 10.8 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -16.319 -1.25 Td (RLIMIT_SWAP)Tj /T1_0 1 Tf 7.2 0.04 Td (\()Tj 0.333 -0.04 Td [(Fr)18(eeBSD 8.0)]TJ 5.301 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -13.167 -1.25 Td (RLIMIT_VMEM)Tj /T1_0 1 Tf 7.2 0.04 Td (\()Tj 0.333 -0.04 Td (Solaris 10)Tj 4.222 0.04 Td (\))Tj -16.271 -1.54 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.875 Td (void)Tj /TT1 1 Tf 6 0 Td (setservent)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9 0 Td (stayopen)Tj /TT0 1 Tf (\);)Tj -1.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 599)Tj /TT0 1 Tf -41.625 -2.875 Td (pid_t)Tj /TT1 1 Tf 6 0 Td (setsid)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 295)Tj -28.125 -1.5 Td [(Returns: pr)18(ocess gr)18(oup ID if OK,)]TJ /TT2 1 Tf 14.702 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -28.202 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (setsockopt)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.262 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (level)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.634 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (option)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.355 0 Td (onst void *)Tj /T1_2 1 Tf (val)Tj /TT0 1 Tf (,)Tj -18.251 -1.25 Td (socklen_t)Tj /T1_2 1 Tf 6 0 Td (len)Tj /TT0 1 Tf (\);)Tj -5.1 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 624)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.875 Td (void)Tj /TT1 1 Tf 6 0 Td (setspent)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 182)Tj -28.125 -1.5 Td (Platforms: Linux 3.2.0, Solaris 10)Tj /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (setuid)Tj /TT0 1 Tf (\(uid_t)Tj /T1_2 1 Tf 7.8 0 Td (uid)Tj /TT0 1 Tf (\);)Tj -0.3 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 256)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47725 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (882)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (seteuid)Tj /TT0 1 Tf (\(uid_t)Tj /T1_2 1 Tf 8.4 0 Td (uid)Tj /TT0 1 Tf (\);)Tj -0.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 258)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (setgid)Tj /TT0 1 Tf (\(gid_t)Tj /T1_2 1 Tf 7.8 0 Td (gid)Tj /TT0 1 Tf (\);)Tj -0.3 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 256)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (void)Tj /TT1 1 Tf 6 0 Td (setgrent)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 183)Tj /TT0 1 Tf -41.625 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (setgroups)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 8.4 0 Td [(ngr)18(oups)]TJ /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 5.116 0 Td (onst gid_t)Tj /T1_2 1 Tf 6.6 0 Td [(gr)18(ouplist)]TJ /TT0 1 Tf ([]\);)Tj -12.616 -1.5 Td [( )-1800(/*)-600(Linux */)]TJ /T1_1 1 Tf 28.125 0 Td (p. 184)Tj /TT0 1 Tf -28.125 -1.25 Td ( /* FreeBSD, Mac OS X, and Solaris */)Tj /T1_1 1 Tf 0 -1.5 TD (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (void)Tj /TT1 1 Tf 6 0 Td (sethostent)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9 0 Td (stayopen)Tj /TT0 1 Tf (\);)Tj -1.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 597)Tj /TT0 1 Tf -41.625 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (setjmp)Tj /TT0 1 Tf (\(jmp_buf)Tj /T1_2 1 Tf 9 0 Td (env)Tj /TT0 1 Tf (\);)Tj -1.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 215)Tj -28.125 -1.5 Td [(Returns: 0 if called dir)18(ectly)]TJ 0.25 Tc 11.731 0 Td (,n)Tj 0 Tc 1.082 0 Td [(onzer)18(o)-250(if)-250(r)18(eturning fr)18(om)]TJ 0.25 Tc -8.836 -1.25 Td (ac)Tj 0 Tc 1.194 0 Td (all to)Tj /TT0 1 Tf 2.454 0 Td (longjmp)Tj -21.125 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (setlogmask)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9 0 Td (maskpri)Tj /TT0 1 Tf (\);)Tj -1.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 470)Tj -28.125 -1.5 Td [(Returns: pr)18(evious log priority mask value)]TJ /TT0 1 Tf -13.5 -3 Td (void)Tj /TT1 1 Tf 6 0 Td (setnetent)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 8.4 0 Td (stayopen)Tj /TT0 1 Tf (\);)Tj -0.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 598)Tj /TT0 1 Tf -41.625 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (setpgid)Tj /TT0 1 Tf (\(pid_t)Tj /T1_2 1 Tf 8.4 0 Td (pid)Tj /TT0 1 Tf 0.6 Tc (,p)Tj 0 Tc 3.078 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (pgid)Tj /TT0 1 Tf (\);)Tj -6.978 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 294)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (setpriority)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9.6 0 Td (which)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.207 0 Td (d_t)Tj /T1_2 1 Tf 2.4 0 Td (who)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.466 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (value)Tj /TT0 1 Tf (\);)Tj -13.973 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 277)Tj /T1_2 1 Tf -28.125 -1.5 Td (which)Tj /TT0 1 Tf 0.6 Tc (:P)Tj 0 Tc 4.207 0 Td (RIO_PROCESS, PRIO_PGRP, PRIO_USER)Tj /T1_1 1 Tf -4.207 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (void)Tj /TT1 1 Tf 6 0 Td (setprotoent)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9.6 0 Td (stayopen)Tj /TT0 1 Tf (\);)Tj -2.1 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 598)Tj /TT0 1 Tf -41.625 -3 Td (void)Tj /TT1 1 Tf 6 0 Td (setpwent)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 180)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47726 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (881)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (ssize_t)Tj /TT1 1 Tf 6 0 Td (send)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 5.4 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.262 0 Td (onst void *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 9.697 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.43 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ags)Tj /TT0 1 Tf (\);)Tj -21.689 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 610)Tj /T1_2 1 Tf -28.125 -1.5 Td (\337ags)Tj /TT0 1 Tf 0.6 Tc (:M)Tj 0 Tc 3.678 0 Td (SG_EOR, MSG_OOB, MSG_NOSIGNAL)Tj -0.6 -1.25 Td (MSG_CONFIRM)Tj /T1_0 1 Tf 7.2 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -12.719 -1.25 Td (MSG_DONTROUTE)Tj /T1_0 1 Tf 8.4 0 Td [(\(Fr)18(eeBSD 8.0, Linux 3.2.0,)]TJ 0.333 -1.25 Td (Mac OS X 10.6.8, Solaris 10\))Tj /TT0 1 Tf (,)Tj -8.733 -1.25 Td (MSG_DONTWAIT)Tj /T1_0 1 Tf 7.8 0 Td [(\(Fr)18(eeBSD 8.0, Linux 3.2.0,)]TJ 0.333 -1.25 Td (Mac OS X 10.6.8, Solaris 10\))Tj /TT0 1 Tf (,)Tj -8.133 -1.25 Td (MSG_EOF)Tj /T1_0 1 Tf 4.8 0.04 Td (\()Tj 0.333 -0.04 Td [(Fr)18(eeBSD 8.0, Mac OS X 10.6.8)]TJ 12.919 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -18.385 -1.25 Td (MSG_MORE)Tj /T1_0 1 Tf 5.4 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj -13.664 -1.54 Td (Returns: number of bytes sent if OK,)Tj /TT2 1 Tf 16.386 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -29.886 -3.375 Td (ssize_t)Tj /TT1 1 Tf 6 0 Td (sendmsg)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.2 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.262 0 Td (onst struct msghdr *)Tj /T1_2 1 Tf (msg)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 15.467 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ags)Tj /TT0 1 Tf (\);)Tj -21.229 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td [(p. 61)55(1)]TJ /T1_2 1 Tf -28.125 -1.5 Td (\337ags)Tj /TT0 1 Tf 0.6 Tc (:M)Tj 0 Tc 3.678 0 Td (SG_EOR, MSG_OOB, MSG_NOSIGNAL)Tj -0.6 -1.25 Td (MSG_CONFIRM)Tj /T1_0 1 Tf 7.2 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -12.719 -1.25 Td (MSG_DONTROUTE)Tj /T1_0 1 Tf 8.4 0 Td [(\(Fr)18(eeBSD 8.0, Linux 3.2.0,)]TJ 0.333 -1.25 Td (Mac OS X 10.6.8, Solaris 10\))Tj /TT0 1 Tf (,)Tj -8.733 -1.25 Td (MSG_DONTWAIT)Tj /T1_0 1 Tf 7.8 0 Td [(\(Fr)18(eeBSD 8.0, Linux 3.2.0,)]TJ 0.333 -1.25 Td (Mac OS X 10.6.8, Solaris 10\))Tj /TT0 1 Tf (,)Tj -8.133 -1.25 Td (MSG_EOF)Tj /T1_0 1 Tf 4.8 0.04 Td (\()Tj 0.333 -0.04 Td [(Fr)18(eeBSD 8.0, Mac OS X 10.6.8)]TJ 12.919 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -18.385 -1.25 Td (MSG_MORE)Tj /T1_0 1 Tf 5.4 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj -13.664 -1.54 Td (Returns: number of bytes sent if OK,)Tj /TT2 1 Tf 16.386 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -29.886 -3.375 Td (ssize_t)Tj /TT1 1 Tf 6 0 Td (sendto)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.262 0 Td (onst void *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 9.697 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.43 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ags)Tj /TT0 1 Tf (,)Tj -26.189 -1.25 Td (const struct sockaddr *)Tj /T1_2 1 Tf (destaddr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 19.044 0 Td (ocklen_t)Tj /T1_2 1 Tf 5.4 0 Td (destlen)Tj /TT0 1 Tf (\);)Tj -21.144 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 610)Tj /T1_2 1 Tf -28.125 -1.5 Td (\337ags)Tj /TT0 1 Tf 0.6 Tc (:M)Tj 0 Tc 3.678 0 Td (SG_EOR, MSG_OOB, MSG_NOSIGNAL)Tj -0.6 -1.25 Td (MSG_CONFIRM)Tj /T1_0 1 Tf 7.2 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -12.719 -1.25 Td (MSG_DONTROUTE)Tj /T1_0 1 Tf 8.4 0 Td [(\(Fr)18(eeBSD 8.0, Linux 3.2.0,)]TJ 0.333 -1.25 Td (Mac OS X 10.6.8, Solaris 10\))Tj /TT0 1 Tf (,)Tj -8.733 -1.25 Td (MSG_DONTWAIT)Tj /T1_0 1 Tf 7.8 0 Td [(\(Fr)18(eeBSD 8.0, Linux 3.2.0,)]TJ 0.333 -1.25 Td (Mac OS X 10.6.8, Solaris 10\))Tj /TT0 1 Tf (,)Tj -8.133 -1.25 Td (MSG_EOF)Tj /T1_0 1 Tf 4.8 0.04 Td (\()Tj 0.333 -0.04 Td [(Fr)18(eeBSD 8.0, Mac OS X 10.6.8)]TJ 12.919 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -18.385 -1.25 Td (MSG_MORE)Tj /T1_0 1 Tf 5.4 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj -13.664 -1.54 Td (Returns: number of bytes sent if OK,)Tj /TT2 1 Tf 16.386 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -29.886 -3.375 Td (void)Tj /TT1 1 Tf 6 0 Td (setbuf)Tj /TT0 1 Tf (\(FILE *restrict)Tj /T1_2 1 Tf 13.2 0 Td (fp)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (har *restrict)Tj /T1_2 1 Tf 8.4 0 Td (buf)Tj /TT0 1 Tf 1.482 0 Td (\);)Tj -18.16 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 146)Tj /TT0 1 Tf -41.625 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (setegid)Tj /TT0 1 Tf (\(gid_t)Tj /T1_2 1 Tf 8.4 0 Td (gid)Tj /TT0 1 Tf (\);)Tj -0.9 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 258)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (setenv)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 15.367 0 Td (onst char *)Tj /T1_2 1 Tf (value)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 10.567 0 Td (nt)Tj /T1_2 1 Tf -0.018 Tc 1.8 0 Td (re)Tj 0 Tc 0.76 0 Td (write)Tj /TT0 1 Tf (\);)Tj -20.994 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 212)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47727 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (880)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (semget)Tj /TT0 1 Tf (\(key_t)Tj /T1_2 1 Tf 7.8 0 Td (key)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.133 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (nsems)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.301 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj -11.334 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 567)Tj /T1_2 1 Tf -28.125 -1.5 Td (\337ag)Tj /TT0 1 Tf 0.6 Tc (:I)Tj 0 Tc 3.289 0 Td (PC_CREAT, IPC_EXCL)Tj /T1_1 1 Tf -3.289 -1.5 Td [(Returns: semaphor)18(e)-250(ID)-250(if)-250(OK,)]TJ /TT2 1 Tf 13.345 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -26.845 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (sem_getvalue)Tj /TT0 1 Tf (\(sem_t *restrict)Tj /T1_2 1 Tf 17.4 0 Td (sem)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.356 0 Td (nt *restrict)Tj /T1_2 1 Tf 7.8 0 Td (valp)Tj /TT0 1 Tf (\);)Tj -21.056 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 582)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (sem_init)Tj /TT0 1 Tf (\(sem_t *)Tj /T1_2 1 Tf (sem)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 12.956 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf 0.6 Tc (,u)Tj 0 Tc 4.893 0 Td (nsigned int)Tj /T1_2 1 Tf 7.2 0 Td (value)Tj /TT0 1 Tf (\);)Tj -19.349 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 582)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (semop)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6 0 Td (semid)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 4.134 0 Td (truct sembuf)Tj /T1_2 1 Tf 7.8 0 Td (semoparray)Tj /TT0 1 Tf ([], size_t)Tj /T1_2 1 Tf 11.266 0 Td (nops)Tj /TT0 1 Tf (\);)Tj -21.7 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 568)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td [(sem_t )-1800(*)]TJ /TT1 1 Tf (sem_open)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 22.567 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (o\337ag)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 3.733 0 Td (.. /* mode_t)Tj /T1_2 1 Tf 7.8 0 Td (mode)Tj /TT0 1 Tf (,)Tj -24.5 -1.25 Td (unsigned int)Tj /T1_2 1 Tf 7.8 0 Td (value)Tj /TT0 1 Tf 2.767 0 Td (*/ \);)Tj -8.467 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 579)Tj /T1_2 1 Tf -28.125 -1.5 Td (\337ag)Tj /TT0 1 Tf 0.6 Tc (:I)Tj 0 Tc 3.289 0 Td (PC_CREAT, IPC_EXCL)Tj /T1_1 1 Tf -3.289 -1.5 Td [(Returns: pointer to semaphor)18(e)-250(if)-250(OK,)]TJ /TT0 1 Tf 16.576 0 Td (SEM_FAILED)Tj /T1_1 1 Tf 6.25 0 Td [(on err)18(or)]TJ /TT0 1 Tf -36.326 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (sem_post)Tj /TT0 1 Tf (\(sem_t *)Tj /T1_2 1 Tf (sem)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 582)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (sem_timedwait)Tj /TT0 1 Tf (\(sem_t *restrict)Tj /T1_2 1 Tf 18 0 Td (sem)Tj /TT0 1 Tf (,)Tj -9.6 -1.25 Td (const struct timespec *restrict)Tj /T1_2 1 Tf 19.2 0 Td (tsptr)Tj /TT0 1 Tf (\);)Tj -20.1 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 581)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj /T1_1 1 Tf 0 -1.5 TD (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (sem_trywait)Tj /TT0 1 Tf (\(sem_t *)Tj /T1_2 1 Tf (sem)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf T* (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (sem_unlink)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 580)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (sem_wait)Tj /TT0 1 Tf (\(sem_t *)Tj /T1_2 1 Tf (sem)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 581)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47728 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (879)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (renameat)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.8 0 Td (oldfd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.8 0 Td (onst char *)Tj /T1_2 1 Tf (oldname)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 11.789 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (newfd)Tj /TT0 1 Tf (,)Tj -19.789 -1.25 Td (const char *)Tj /T1_2 1 Tf (newname)Tj /TT0 1 Tf (\);)Tj 2.1 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td [(p. 1)55(19)]TJ -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (void)Tj /TT1 1 Tf 6 0 Td (rewind)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 158)Tj /TT0 1 Tf -41.625 -3.25 Td (void)Tj /TT1 1 Tf 6 0 Td (rewinddir)Tj /TT0 1 Tf (\(DIR *)Tj /T1_2 1 Tf (dp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 130)Tj /TT0 1 Tf -41.625 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (rmdir)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 130)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (scanf)Tj /TT0 1 Tf (\(const char *restrict)Tj /T1_2 1 Tf 16.2 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 4.466 0 Td (..\);)Tj -13.166 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 162)Tj -28.125 -1.5 Td (Returns: number of input items assigned,)Tj /TT0 1 Tf 18.524 0 Td (EOF)Tj /T1_0 1 Tf 2.05 0 Td [(if input err)18(or or)]TJ -16.597 -1.25 Td (end of \336le befor)Tj 0.25 Tc 6.964 0 Td (ea)Tj 0 Tc 1.229 0 Td (ny conversion)Tj /TT0 1 Tf -25.67 -3.25 Td (void)Tj /TT1 1 Tf 6 0 Td (seekdir)Tj /TT0 1 Tf (\(DIR *)Tj /T1_2 1 Tf (dp)Tj /TT0 1 Tf 0.6 Tc (,l)Tj 0 Tc 10.6 0 Td (ong)Tj /T1_2 1 Tf 2.4 0 Td (loc)Tj /TT0 1 Tf (\);)Tj -5.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 130)Tj /TT0 1 Tf -41.625 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (select)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (maxfdp1)Tj /TT0 1 Tf 0.6 Tc (,f)Tj 0 Tc 5.3 0 Td (d_set *restrict)Tj /T1_2 1 Tf -0.018 Tc 9.6 0 Td (re)Tj 0 Tc 0.76 0 Td (adfds)Tj /TT0 1 Tf (,)Tj -18.06 -1.25 Td (fd_set *restrict)Tj /T1_2 1 Tf 10.2 0 Td (writefds)Tj /TT0 1 Tf 0.6 Tc (,f)Tj 0 Tc 5.078 0 Td (d_set *restrict)Tj /T1_2 1 Tf 9.6 0 Td (exceptfds)Tj /TT0 1 Tf (,)Tj -24.878 -1.25 Td (struct timeval *restrict)Tj /T1_2 1 Tf 15 0 Td (tvptr)Tj /TT0 1 Tf (\);)Tj -11.7 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 502)Tj -28.125 -1.5 Td [(Returns: count of r)18(eady descriptors, 0 on timeout,)]TJ /TT2 1 Tf 22.148 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -35.648 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (sem_close)Tj /TT0 1 Tf (\(sem_t *)Tj /T1_2 1 Tf (sem)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 580)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (semctl)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (semid)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.134 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (semnum)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 5.246 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (cmd)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 3.485 0 Td (..)Tj -18.865 -1.25 Td (/* union semun)Tj /T1_2 1 Tf 9 0 Td [(ar)18(g)]TJ /TT0 1 Tf 1.915 0 Td (*/ \);)Tj -7.615 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 567)Tj /T1_2 1 Tf -28.125 -1.5 Td (cmd)Tj /TT0 1 Tf 0.6 Tc (:I)Tj 0 Tc 3.485 0 Td (PC_STAT, IPC_SET, IPC_RMID, GETPID,)Tj -0.6 -1.25 Td (GETNCNT, GETZCNT, GETVAL, SETVAL,)Tj 0 -1.25 TD (GETALL, SETALL)Tj /T1_0 1 Tf -2.885 -1.5 Td (Returns: \(depends on command\),)Tj /TT2 1 Tf 15.007 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -28.507 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (sem_destroy)Tj /TT0 1 Tf (\(sem_t *)Tj /T1_2 1 Tf (sem)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 582)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47729 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (878)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm [(void )-2400(*)]TJ /TT1 1 Tf (realloc)Tj /TT0 1 Tf (\(void *)Tj /T1_2 1 Tf (ptr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 17.422 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (newsize)Tj /TT0 1 Tf (\);)Tj -7.522 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 207)Tj -28.125 -1.5 Td (Returns: non-null pointer if OK,)Tj /TT0 1 Tf 14.393 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -30.543 -3 Td (ssize_t)Tj /TT1 1 Tf 6 0 Td (recv)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 5.4 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.262 0 Td (oid *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 6.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.43 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ags)Tj /TT0 1 Tf (\);)Tj -18.089 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 612)Tj /T1_2 1 Tf -28.125 -1.5 Td (\337ags)Tj /TT0 1 Tf 0.6 Tc (:M)Tj 0 Tc 3.678 0 Td (SG_PEEK, MSG_OOB, MSG_WAITALL,)Tj -0.6 -1.25 Td (MSG_CMSG_CLOEXEC)Tj /T1_1 1 Tf 10.2 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -15.719 -1.25 Td (MSG_DONTWAIT)Tj /T1_1 1 Tf 7.8 0 Td [(\(Fr)18(eeBSD 8.0, Linux 3.2.0,)]TJ 0.333 -1.25 Td (Solaris 10\))Tj /TT0 1 Tf (,)Tj -8.133 -1.25 Td (MSG_ERRQUEUE)Tj /T1_1 1 Tf 7.8 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -13.319 -1.25 Td (MSG_TRUNC)Tj /T1_1 1 Tf 6 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj -14.264 -1.54 Td [(Returns: length of message in bytes, 0 if no messages ar)18(e)]TJ 3.977 -1.25 Td [(available and peer has done an or)18(derly shutdown,)]TJ 0 -1.25 TD (or)Tj /TT2 1 Tf 1.191 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -18.668 -3 Td (ssize_t)Tj /TT1 1 Tf 6 0 Td (recvfrom)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.8 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.262 0 Td (oid *restrict)Tj /T1_2 1 Tf 8.4 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (len)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.023 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ags)Tj /TT0 1 Tf (,)Tj -26.582 -1.25 Td (struct sockaddr *restrict)Tj /T1_2 1 Tf 15.6 0 Td (addr)Tj /TT0 1 Tf (,)Tj -15.6 -1.25 Td (socklen_t *restrict)Tj /T1_2 1 Tf 12 0 Td (addrlen)Tj /TT0 1 Tf (\);)Tj -9.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 613)Tj /T1_2 1 Tf -28.125 -1.5 Td (\337ags)Tj /TT0 1 Tf 0.6 Tc (:M)Tj 0 Tc 3.678 0 Td (SG_PEEK, MSG_OOB, MSG_WAITALL)Tj -0.6 -1.25 Td (MSG_CMSG_CLOEXEC)Tj /T1_1 1 Tf 10.2 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -15.719 -1.25 Td (MSG_DONTWAIT)Tj /T1_1 1 Tf 7.8 0 Td [(\(Fr)18(eeBSD 8.0, Linux 3.2.0,)]TJ 0.333 -1.25 Td (Solaris 10\))Tj /TT0 1 Tf (,)Tj -8.133 -1.25 Td (MSG_ERRQUEUE)Tj /T1_1 1 Tf 7.8 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -13.319 -1.25 Td (MSG_TRUNC)Tj /T1_1 1 Tf 6 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj -14.264 -1.54 Td [(Returns: length of message in bytes, 0 if no messages ar)18(e)]TJ 3.977 -1.25 Td [(available and peer has done an or)18(derly shutdown,)]TJ T* (or)Tj /TT2 1 Tf 1.191 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -18.668 -3 Td (ssize_t)Tj /TT1 1 Tf 6 0 Td (recvmsg)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.2 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 4.262 0 Td (truct msghdr *)Tj /T1_2 1 Tf (msg)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 11.867 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ags)Tj /TT0 1 Tf (\);)Tj -17.629 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 613)Tj /T1_2 1 Tf -28.125 -1.5 Td (\337ags)Tj /TT0 1 Tf 0.6 Tc (:M)Tj 0 Tc 3.678 0 Td (SG_PEEK, MSG_OOB, MSG_WAITALL)Tj -0.6 -1.25 Td (MSG_CMSG_CLOEXEC)Tj /T1_1 1 Tf 10.2 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -15.719 -1.25 Td (MSG_DONTWAIT)Tj /T1_1 1 Tf 7.8 0 Td [(\(Fr)18(eeBSD 8.0, Linux 3.2.0,)]TJ 0.333 -1.25 Td (Solaris 10\))Tj /TT0 1 Tf (,)Tj -8.133 -1.25 Td (MSG_ERRQUEUE)Tj /T1_1 1 Tf 7.8 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -13.319 -1.25 Td (MSG_TRUNC)Tj /T1_1 1 Tf 6 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj -14.264 -1.54 Td [(Returns: length of message in bytes, 0 if no messages ar)18(e)]TJ 3.977 -1.25 Td [(available and peer has done an or)18(derly shutdown,)]TJ T* (or)Tj /TT2 1 Tf 1.191 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -18.668 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (remove)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td [(p. 1)55(19)]TJ -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (rename)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (oldname)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 16.589 0 Td (onst char *)Tj /T1_2 1 Tf (newname)Tj /TT0 1 Tf (\);)Tj -9.089 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td [(p. 1)55(19)]TJ -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47730 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (877)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (putchar_unlocked)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 12.6 0 Td (c)Tj /TT0 1 Tf (\);)Tj -5.1 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 444)Tj -28.125 -1.5 Td (Returns:)Tj /T1_2 1 Tf 3.977 0 Td (c)Tj /T1_0 1 Tf 0.657 0 Td (if OK,)Tj /TT0 1 Tf 2.886 0 Td (EOF)Tj /T1_0 1 Tf 2.05 0 Td [(on err)18(or)]TJ /TT0 1 Tf -23.07 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (putc_unlocked)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 10.8 0 Td (c)Tj /TT0 1 Tf 0.6 Tc (,F)Tj 0 Tc 2.207 0 Td (ILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj -5.507 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 444)Tj -28.125 -1.5 Td (Returns:)Tj /T1_2 1 Tf 3.977 0 Td (c)Tj /T1_0 1 Tf 0.657 0 Td (if OK,)Tj /TT0 1 Tf 2.886 0 Td (EOF)Tj /T1_0 1 Tf 2.05 0 Td [(on err)18(or)]TJ /TT0 1 Tf -23.07 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (putenv)Tj /TT0 1 Tf (\(char *)Tj /T1_2 1 Tf (str)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 212)Tj -28.125 -1.5 Td [(Returns: 0 if OK, nonzer)18(o)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (puts)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (str)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 153)Tj -28.125 -1.5 Td (Returns: non-negative value if OK,)Tj /TT0 1 Tf 15.622 0 Td (EOF)Tj /T1_0 1 Tf 2.05 0 Td [(on err)18(or)]TJ /TT0 1 Tf -31.172 -2.875 Td (ssize_t)Tj /TT1 1 Tf 6 0 Td (pwrite)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst void *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 9.697 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT0 1 Tf 0.6 Tc (,o)Tj 0 Tc 4.43 0 Td (ff_t)Tj /T1_2 1 Tf 3 0 Td (offset)Tj /TT0 1 Tf (\);)Tj -22.405 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 78)Tj -28.125 -1.5 Td (Returns: number of bytes written if OK,)Tj /TT2 1 Tf 17.808 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -31.308 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (raise)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6 0 Td (signo)Tj /TT0 1 Tf (\);)Tj 1.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 337)Tj -28.125 -1.5 Td [(Returns: 0 if OK, nonzer)18(o)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -13.5 -2.875 Td (ssize_t)Tj /TT1 1 Tf 6 0 Td (read)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 5.4 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 2.578 0 Td (oid *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 6.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT0 1 Tf (\);)Tj -10.175 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 71)Tj -28.125 -1.5 Td [(Returns: number of bytes r)18(ead if OK, 0 if end of \336le,)]TJ /TT2 1 Tf 3.977 -1.25 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -17.477 -1.625 Td (struct)Tj 0 -1.25 TD [(dirent )-1200(*)]TJ /TT1 1 Tf (readdir)Tj /TT0 1 Tf (\(DIR *)Tj /T1_2 1 Tf (dp)Tj /TT0 1 Tf (\);)Tj 13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 130)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(at end of dir)18(ectory or err)18(or)]TJ /TT0 1 Tf -26.483 -2.875 Td (ssize_t)Tj /TT1 1 Tf 6 0 Td (readlink)Tj /TT0 1 Tf (\(const char *restrict)Tj /T1_2 1 Tf 18 0 Td (path)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.577 0 Td (har *restrict)Tj /T1_2 1 Tf 8.4 0 Td (buf)Tj /TT0 1 Tf (,)Tj -24.577 -1.25 Td (size_t)Tj /T1_2 1 Tf 4.2 0 Td (bufsize)Tj /TT0 1 Tf (\);)Tj -2.1 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 123)Tj -28.125 -1.5 Td [(Returns: number of bytes r)18(ead if OK,)]TJ /TT2 1 Tf 16.542 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -30.042 -2.875 Td (ssize_t)Tj /TT1 1 Tf 6 0 Td (readlinkat)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char* restrict)Tj /T1_2 1 Tf 12 0 Td (path)Tj /TT0 1 Tf (,)Tj -16.978 -1.25 Td (char *restrict)Tj /T1_2 1 Tf 9 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (bufsize)Tj /TT0 1 Tf (\);)Tj -14.797 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 123)Tj -28.125 -1.5 Td [(Returns: number of bytes r)18(ead if OK,)]TJ /TT2 1 Tf 16.542 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -30.042 -2.875 Td (ssize_t)Tj /TT1 1 Tf 6 0 Td (readv)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst struct iovec *)Tj /T1_2 1 Tf (iov)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 14.422 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (iovcnt)Tj /TT0 1 Tf (\);)Tj -17.3 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 521)Tj -28.125 -1.5 Td [(Returns: number of bytes r)18(ead if OK, 0 if end of \336le,)]TJ /TT2 1 Tf 3.977 -1.25 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47731 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (876)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (pthread_setspecific)Tj /TT0 1 Tf (\(pthread_key_t)Tj /T1_2 1 Tf 20.4 0 Td (key)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.133 0 Td (onst void *)Tj /T1_2 1 Tf (value)Tj /TT0 1 Tf (\);)Tj -16.033 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 449)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_sigmask)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 12 0 Td (how)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.466 0 Td (onst sigset_t *restrict)Tj /T1_2 1 Tf 14.4 0 Td (set)Tj /TT0 1 Tf (,)Tj -20.266 -1.25 Td (sigset_t *restrict)Tj /T1_2 1 Tf 11.4 0 Td (oset)Tj /TT0 1 Tf (\);)Tj -13.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 454)Tj /T1_2 1 Tf -28.125 -1.5 Td (how)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 3.466 0 Td (IG_BLOCK, SIG_UNBLOCK, SIG_SETMASK)Tj /T1_1 1 Tf -3.466 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_spin_destroy)Tj /TT0 1 Tf (\(pthread_spinlock_t *)Tj /T1_2 1 Tf (lock)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 417)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_spin_init)Tj /TT0 1 Tf (\(pthread_spinlock_t *)Tj /T1_2 1 Tf (lock)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 26.173 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf (\);)Tj -20.473 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 417)Tj /T1_2 1 Tf -28.125 -1.5 Td [(pshar)18(ed)]TJ /TT0 1 Tf 0.6 Tc (:P)Tj 0 Tc 4.893 0 Td (THREAD_PROCESS_PRIVATE,)Tj -0.6 -1.25 Td (PTHREAD_PROCESS_SHARED)Tj /T1_1 1 Tf -4.293 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_spin_lock)Tj /TT0 1 Tf (\(pthread_spinlock_t *)Tj /T1_2 1 Tf (lock)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 418)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_spin_trylock)Tj /TT0 1 Tf (\(pthread_spinlock_t *)Tj /T1_2 1 Tf (lock)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 418)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_spin_unlock)Tj /TT0 1 Tf (\(pthread_spinlock_t *)Tj /T1_2 1 Tf (lock)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 418)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (void)Tj /TT1 1 Tf 6 0 Td (pthread_testcancel)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 453)Tj /TT0 1 Tf -41.625 -3 Td [(char )-2400(*)]TJ /TT1 1 Tf (ptsname)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 13.2 0 Td (fd)Tj /TT0 1 Tf (\);)Tj 0.3 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 723)Tj -28.125 -1.5 Td (Returns: pointer to name of PTY slave if OK,)Tj /TT0 1 Tf 19.921 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -36.071 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (putc)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 5.4 0 Td (c)Tj /TT0 1 Tf 0.6 Tc (,F)Tj 0 Tc 2.207 0 Td (ILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj -0.107 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 152)Tj -28.125 -1.5 Td (Returns:)Tj /T1_2 1 Tf 3.977 0 Td (c)Tj /T1_1 1 Tf 0.657 0 Td (if OK,)Tj /TT0 1 Tf 2.886 0 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td [(on err)18(or)]TJ /TT0 1 Tf -23.07 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (putchar)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.2 0 Td (c)Tj /TT0 1 Tf (\);)Tj 0.3 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 152)Tj -28.125 -1.5 Td (Returns:)Tj /T1_2 1 Tf 3.977 0 Td (c)Tj /T1_1 1 Tf 0.657 0 Td (if OK,)Tj /TT0 1 Tf 2.886 0 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td [(on err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47732 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (875)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (pthread_rwlock_timedrdlock)Tj /TT0 1 Tf (\(pthread_rwlock_t *restrict)Tj /T1_2 1 Tf 32.4 0 Td (rwlock)Tj /TT0 1 Tf (,)Tj -16.2 -1.25 Td (const struct timespec)Tj 1.2 -1.25 Td (*restrict)Tj /T1_2 1 Tf 6 0 Td (tsptr)Tj /TT0 1 Tf (\);)Tj -15.9 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 413)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj /T1_0 1 Tf 0 -1.5 TD [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_rwlock_timedwrlock)Tj /TT0 1 Tf (\(pthread_rwlock_t *restrict)Tj /T1_2 1 Tf 32.4 0 Td (rwlock)Tj /TT0 1 Tf (,)Tj -16.2 -1.25 Td (const struct timespec)Tj 1.2 -1.25 Td (*restrict)Tj /T1_2 1 Tf 6 0 Td (tsptr)Tj /TT0 1 Tf (\);)Tj -15.9 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 413)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj /T1_0 1 Tf T* [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_rwlock_tryrdlock)Tj /TT0 1 Tf (\(pthread_rwlock_t *)Tj /T1_2 1 Tf (rwlock)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 410)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_rwlock_trywrlock)Tj /TT0 1 Tf (\(pthread_rwlock_t *)Tj /T1_2 1 Tf (rwlock)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 410)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_rwlock_unlock)Tj /TT0 1 Tf (\(pthread_rwlock_t *)Tj /T1_2 1 Tf (rwlock)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 410)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_rwlock_wrlock)Tj /TT0 1 Tf (\(pthread_rwlock_t *)Tj /T1_2 1 Tf (rwlock)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 410)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.25 Td (pthread_t)Tj /TT1 1 Tf 6 0 Td (pthread_self)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 385)Tj -28.125 -1.5 Td [(Returns: thr)18(ead ID of the calling thr)18(ead)]TJ /TT0 1 Tf -13.5 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_setcancelstate)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 16.2 0 Td (state)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.688 0 Td (nt *)Tj /T1_2 1 Tf (oldstate)Tj /TT0 1 Tf (\);)Tj -12.388 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 451)Tj /T1_2 1 Tf -28.125 -1.5 Td (state)Tj /TT0 1 Tf 0.6 Tc (:P)Tj 0 Tc 3.688 0 Td (THREAD_CANCEL_ENABLE,)Tj -0.6 -1.25 Td (PTHREAD_CANCEL_DISABLE)Tj /T1_0 1 Tf -3.088 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_setcanceltype)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 15.6 0 Td (type)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.522 0 Td (nt *)Tj /T1_2 1 Tf (oldtype)Tj /TT0 1 Tf (\);)Tj -11.622 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 453)Tj /T1_2 1 Tf -28.125 -1.5 Td (type)Tj /TT0 1 Tf 0.6 Tc (:P)Tj 0 Tc 3.522 0 Td (THREAD_CANCEL_DEFERRED,)Tj -0.6 -1.25 Td (PTHREAD_CANCEL_ASYNCHRONOUS)Tj /T1_0 1 Tf -2.922 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47733 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (874)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (pthread_mutex_unlock)Tj /TT0 1 Tf (\(pthread_mutex_t *)Tj /T1_2 1 Tf (mutex)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 400)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.5 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_once)Tj /TT0 1 Tf (\(pthread_once_t *)Tj /T1_2 1 Tf (init\337ag)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 22.134 0 Td (oid \(*)Tj /T1_2 1 Tf (initfn)Tj /TT0 1 Tf (\)\(void\)\);)Tj -14.634 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 448)Tj /TT0 1 Tf -28.125 -1.5 Td (pthread_once_t)Tj /T1_2 1 Tf 9 0 Td (init\337ag)Tj /TT0 1 Tf 0.6 Tc 3.534 0 Td (=P)Tj 0 Tc 1.8 0 Td (THREAD_ONCE_INIT;)Tj /T1_1 1 Tf -14.334 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.5 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_rwlockattr_destroy)Tj /TT0 1 Tf (\(pthread_rwlockattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 439)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.5 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_rwlockattr_getpshared)Tj /TT0 1 Tf (\(const pthread_rwlockattr_t)Tj 19.2 -1.25 Td (*restrict)Tj /T1_2 1 Tf 6 0 Td (attr)Tj /TT0 1 Tf (,)Tj -7.2 -1.25 Td (int *restrict)Tj /T1_2 1 Tf 8.4 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf (\);)Tj -18.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 440)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.5 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_rwlockattr_init)Tj /TT0 1 Tf (\(pthread_rwlockattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 439)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.5 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_rwlockattr_setpshared)Tj /TT0 1 Tf (\(pthread_rwlockattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 18 -1.25 Td (int)Tj /T1_2 1 Tf 2.4 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf (\);)Tj -12.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 440)Tj /T1_2 1 Tf -28.125 -1.5 Td [(pshar)18(ed)]TJ /TT0 1 Tf 0.6 Tc (:P)Tj 0 Tc 4.893 0 Td (THREAD_PROCESS_PRIVATE,)Tj -0.6 -1.25 Td (PTHREAD_PROCESS_SHARED)Tj /T1_1 1 Tf -4.293 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.5 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_rwlock_destroy)Tj /TT0 1 Tf (\(pthread_rwlock_t *)Tj /T1_2 1 Tf (rwlock)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 409)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.5 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_rwlock_init)Tj /TT0 1 Tf (\(pthread_rwlock_t *restrict)Tj /T1_2 1 Tf 28.2 0 Td (rwlock)Tj /TT0 1 Tf (,)Tj -16.2 -1.25 Td (const pthread_rwlockattr_t)Tj 1.2 -1.25 Td (*restrict)Tj /T1_2 1 Tf 6 0 Td (attr)Tj /TT0 1 Tf (\);)Tj -11.7 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 409)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.5 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_rwlock_rdlock)Tj /TT0 1 Tf (\(pthread_rwlock_t *)Tj /T1_2 1 Tf (rwlock)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 410)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47734 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (873)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (pthread_mutexattr_setpshared)Tj /TT0 1 Tf (\(pthread_mutexattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 17.4 -1.25 Td (int)Tj /T1_2 1 Tf 2.4 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf (\);)Tj -12.3 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 431)Tj /T1_2 1 Tf -28.125 -1.5 Td [(pshar)18(ed)]TJ /TT0 1 Tf 0.6 Tc (:P)Tj 0 Tc 4.893 0 Td (THREAD_PROCESS_PRIVATE,)Tj -0.6 -1.25 Td (PTHREAD_PROCESS_SHARED)Tj /T1_0 1 Tf -4.293 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_mutexattr_setrobust)Tj /TT0 1 Tf (\(pthread_mutexattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 16.8 -1.25 Td (int)Tj /T1_2 1 Tf -0.018 Tc 2.4 0 Td (ro)Tj 0 Tc 0.815 0 Td (bust)Tj /TT0 1 Tf (\);)Tj -12.515 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 432)Tj /T1_2 1 Tf -0.018 Tc -28.125 -1.5 Td (ro)Tj 0 Tc 0.815 0 Td (bust)Tj /TT0 1 Tf 0.6 Tc (:P)Tj 0 Tc 3.541 0 Td (THREAD_MUTEX_ROBUST,)Tj -0.6 -1.25 Td (PTHREAD_MUTEX_STALLED)Tj /T1_0 1 Tf -3.756 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_mutexattr_settype)Tj /TT0 1 Tf (\(pthread_mutexattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 31.499 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (type)Tj /TT0 1 Tf (\);)Tj -25.799 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 434)Tj /T1_2 1 Tf -28.125 -1.5 Td (type)Tj /TT0 1 Tf 0.6 Tc (:P)Tj 0 Tc 3.522 0 Td (THREAD_MUTEX_NORMAL,)Tj -0.6 -1.25 Td (PTHREAD_MUTEX_ERRORCHECK,)Tj 0 -1.25 TD (PTHREAD_MUTEX_RECURSIVE,)Tj T* (PTHREAD_MUTEX_DEFAULT)Tj /T1_0 1 Tf -2.922 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_mutex_consistent)Tj /TT0 1 Tf (\(pthread_mutex_t *)Tj /T1_2 1 Tf 25.8 0 Td (mutex)Tj /TT0 1 Tf (\);)Tj -18.3 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 433)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_mutex_destroy)Tj /TT0 1 Tf (\(pthread_mutex_t *)Tj /T1_2 1 Tf (mutex)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 400)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_mutex_init)Tj /TT0 1 Tf (\(pthread_mutex_t *restrict)Tj /T1_2 1 Tf 27 0 Td (mutex)Tj /TT0 1 Tf (,)Tj -15.6 -1.25 Td (const pthread_mutexattr_t *restrict)Tj /T1_2 1 Tf 21.6 0 Td (attr)Tj /TT0 1 Tf (\);)Tj -25.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 400)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_mutex_lock)Tj /TT0 1 Tf (\(pthread_mutex_t *)Tj /T1_2 1 Tf (mutex)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 400)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_mutex_timedlock)Tj /TT0 1 Tf (\(pthread_mutex_t *restrict)Tj /T1_2 1 Tf 30 0 Td (mutex)Tj /TT0 1 Tf (,)Tj -15.6 -1.25 Td (const struct timespec *restrict)Tj /T1_2 1 Tf 19.2 0 Td (tsptr)Tj /TT0 1 Tf (\);)Tj -26.1 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 407)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj /T1_0 1 Tf 0 -1.5 TD [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_mutex_trylock)Tj /TT0 1 Tf (\(pthread_mutex_t *)Tj /T1_2 1 Tf (mutex)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 400)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47735 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (872)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm [(void )-2400(*)]TJ /TT1 1 Tf (pthread_getspecific)Tj /TT0 1 Tf (\(pthread_key_t)Tj /T1_2 1 Tf 26.4 0 Td (key)Tj /TT0 1 Tf (\);)Tj -12.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 449)Tj -28.125 -1.5 Td [(Returns: thr)18(ead-speci\336c data value or)]TJ /TT0 1 Tf 16.789 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td (if no value has)Tj -15.462 -1.25 Td (been associated with the key)Tj /TT0 1 Tf -17.477 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_join)Tj /TT0 1 Tf (\(pthread_t)Tj /T1_2 1 Tf 13.8 0 Td [(thr)18(ead)]TJ /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 4.337 0 Td (oid **)Tj /T1_2 1 Tf (rval_ptr)Tj /TT0 1 Tf (\);)Tj -10.637 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 389)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_key_create)Tj /TT0 1 Tf (\(pthread_key_t *)Tj /T1_2 1 Tf (keyp)Tj /TT0 1 Tf (,)Tj 11.4 -1.25 Td (void \(*)Tj /T1_2 1 Tf (destructor)Tj /TT0 1 Tf (\)\(void *\)\);)Tj -3.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 447)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_key_delete)Tj /TT0 1 Tf (\(pthread_key_t)Tj /T1_2 1 Tf 19.8 0 Td (key)Tj /TT0 1 Tf (\);)Tj -12.3 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 448)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_kill)Tj /TT0 1 Tf (\(pthread_t)Tj /T1_2 1 Tf 13.8 0 Td [(thr)18(ead)]TJ /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.337 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (signo)Tj /TT0 1 Tf (\);)Tj -12.437 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 455)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_mutexattr_destroy)Tj /TT0 1 Tf (\(pthread_mutexattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 431)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_mutexattr_getpshared)Tj /TT0 1 Tf (\(const pthread_mutexattr_t)Tj 18.6 -1.25 Td (*restrict)Tj /T1_2 1 Tf 6 0 Td (attr)Tj /TT0 1 Tf (,)Tj -7.2 -1.25 Td (int *restrict)Tj /T1_2 1 Tf 8.4 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf (\);)Tj -18.3 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 431)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_mutexattr_getrobust)Tj /TT0 1 Tf (\(const pthread_mutexattr_t)Tj 18 -1.25 Td (*restrict)Tj /T1_2 1 Tf 6 0 Td (attr)Tj /TT0 1 Tf (,)Tj -7.2 -1.25 Td (int *restrict)Tj /T1_2 1 Tf -0.018 Tc 8.4 0 Td (ro)Tj 0 Tc 0.815 0 Td (bust)Tj /TT0 1 Tf (\);)Tj -18.515 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 432)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_mutexattr_gettype)Tj /TT0 1 Tf (\(const pthread_mutexattr_t)Tj 16.8 -1.25 Td (*restrict)Tj /T1_2 1 Tf 6 0 Td (attr)Tj /TT0 1 Tf (,)Tj -7.2 -1.25 Td (int *restrict)Tj /T1_2 1 Tf 8.4 0 Td (type)Tj /TT0 1 Tf (\);)Tj -16.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 434)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_mutexattr_init)Tj /TT0 1 Tf (\(pthread_mutexattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 431)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47736 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (871)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (pthread_cond_broadcast)Tj /TT0 1 Tf (\(pthread_cond_t *)Tj /T1_2 1 Tf (cond)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 415)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_cond_destroy)Tj /TT0 1 Tf (\(pthread_cond_t *)Tj /T1_2 1 Tf (cond)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 414)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_cond_init)Tj /TT0 1 Tf (\(pthread_cond_t *restrict)Tj /T1_2 1 Tf 25.8 0 Td (cond)Tj /TT0 1 Tf (,)Tj -15 -1.25 Td (const pthread_condattr_t *restrict)Tj /T1_2 1 Tf 21 0 Td (attr)Tj /TT0 1 Tf (\);)Tj -24.3 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 414)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_cond_signal)Tj /TT0 1 Tf (\(pthread_cond_t *)Tj /T1_2 1 Tf (cond)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 415)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_cond_timedwait)Tj /TT0 1 Tf (\(pthread_cond_t *restrict)Tj /T1_2 1 Tf 28.8 0 Td (cond)Tj /TT0 1 Tf (,)Tj -15 -1.25 Td (pthread_mutex_t *restrict)Tj /T1_2 1 Tf 15.6 0 Td (mutex)Tj /TT0 1 Tf (,)Tj -15.6 -1.25 Td (const struct timespec)Tj 1.2 -1.25 Td (*restrict)Tj /T1_2 1 Tf 6 0 Td (timeout)Tj /TT0 1 Tf (\);)Tj -13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 414)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_cond_wait)Tj /TT0 1 Tf (\(pthread_cond_t *restrict)Tj /T1_2 1 Tf 25.8 0 Td (cond)Tj /TT0 1 Tf (,)Tj -15 -1.25 Td (pthread_mutex_t *restrict)Tj /T1_2 1 Tf 15.6 0 Td (mutex)Tj /TT0 1 Tf (\);)Tj -18.9 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 414)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_create)Tj /TT0 1 Tf (\(pthread_t *restrict)Tj /T1_2 1 Tf 21 0 Td (tidp)Tj /TT0 1 Tf (,)Tj -12 -1.25 Td (const pthread_attr_t *restrict)Tj /T1_2 1 Tf 18.6 0 Td (attr)Tj /TT0 1 Tf (,)Tj -18.6 -1.25 Td (void *\(*)Tj /T1_2 1 Tf (start_rtn)Tj /TT0 1 Tf (\)\(void *\),)Tj 0 -1.25 TD (void *restrict)Tj /T1_2 1 Tf 9 0 Td [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj -10.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 385)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_detach)Tj /TT0 1 Tf (\(pthread_t)Tj /T1_2 1 Tf 15 0 Td (tid)Tj /TT0 1 Tf (\);)Tj -7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 397)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_equal)Tj /TT0 1 Tf (\(pthread_t)Tj /T1_2 1 Tf 14.4 0 Td (tid1)Tj /TT0 1 Tf 0.6 Tc (,p)Tj 0 Tc 3.411 0 Td (thread_t)Tj /T1_2 1 Tf 5.4 0 Td (tid2)Tj /TT0 1 Tf (\);)Tj -15.711 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 385)Tj -28.125 -1.5 Td [(Returns: nonzer)18(o)-250(if)-250(equal, 0 otherwise)]TJ /TT0 1 Tf -13.5 -3 Td (void)Tj /TT1 1 Tf 6 0 Td (pthread_exit)Tj /TT0 1 Tf (\(void *)Tj /T1_2 1 Tf (rval_ptr)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 389)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47737 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (870)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (pthread_barrier_wait)Tj /TT0 1 Tf (\(pthread_barrier_t *)Tj /T1_2 1 Tf (barrier)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 419)Tj -28.125 -1.5 Td (Returns: 0 or)Tj /TT0 1 Tf 5.918 0 Td (PTHREAD_BARRIER_SERIAL_THREAD)Tj /T1_1 1 Tf 17.65 0 Td (if OK,)Tj -19.591 -1.25 Td [(err)18(or number on failur)18(e)]TJ /TT0 1 Tf -17.477 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_cancel)Tj /TT0 1 Tf (\(pthread_t)Tj /T1_2 1 Tf 15 0 Td (tid)Tj /TT0 1 Tf (\);)Tj -7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 393)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (void)Tj /TT1 1 Tf 6 0 Td (pthread_cleanup_pop)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 14.4 0 Td (execute)Tj /TT0 1 Tf (\);)Tj -6.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 394)Tj /TT0 1 Tf -41.625 -3 Td (void)Tj /TT1 1 Tf 6 0 Td (pthread_cleanup_push)Tj /TT0 1 Tf (\(void \(*)Tj /T1_2 1 Tf (rtn)Tj /TT0 1 Tf (\)\(void *\), void *)Tj /T1_2 1 Tf [(ar)18(g)]TJ /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 394)Tj /TT0 1 Tf -41.625 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_condattr_destroy)Tj /TT0 1 Tf (\(pthread_condattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 440)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_condattr_getclock)Tj /TT0 1 Tf (\(const pthread_condattr_t)Tj 16.8 -1.25 Td (*restrict)Tj /T1_2 1 Tf 6 0 Td (attr)Tj /TT0 1 Tf (,)Tj -7.2 -1.25 Td (clockid_t *restrict)Tj /T1_2 1 Tf 12 0 Td (clock_id)Tj /TT0 1 Tf (\);)Tj -20.1 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 441)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_condattr_getpshared)Tj /TT0 1 Tf (\(const pthread_condattr_t)Tj 18 -1.25 Td (*restrict)Tj /T1_2 1 Tf 6 0 Td (attr)Tj /TT0 1 Tf (,)Tj -7.2 -1.25 Td (int *restrict)Tj /T1_2 1 Tf 8.4 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf (\);)Tj -17.7 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 440)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_condattr_init)Tj /TT0 1 Tf (\(pthread_condattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 440)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_condattr_setclock)Tj /TT0 1 Tf (\(pthread_condattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 15.6 -1.25 Td (clockid_t)Tj /T1_2 1 Tf 6 0 Td (clock_id)Tj /TT0 1 Tf (\);)Tj -14.1 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 441)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_condattr_setpshared)Tj /TT0 1 Tf (\(pthread_condattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 16.8 -1.25 Td (int)Tj /T1_2 1 Tf 2.4 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf (\);)Tj -11.7 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 440)Tj /T1_2 1 Tf -28.125 -1.5 Td [(pshar)18(ed)]TJ /TT0 1 Tf 0.6 Tc (:P)Tj 0 Tc 4.893 0 Td (THREAD_PROCESS_PRIVATE,)Tj -0.6 -1.25 Td (PTHREAD_PROCESS_SHARED)Tj /T1_1 1 Tf -4.293 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47738 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (869)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (pthread_attr_setguardsize)Tj /TT0 1 Tf (\(pthread_attr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 15.6 -1.25 Td (size_t)Tj /T1_2 1 Tf 4.2 0 Td (guardsize)Tj /TT0 1 Tf (\);)Tj -12.3 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 430)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_attr_setstack)Tj /TT0 1 Tf (\(const pthread_attr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 13.2 -1.25 Td (void *)Tj /T1_2 1 Tf (stackaddr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 9.25 0 Td (ize_t *)Tj /T1_2 1 Tf (stacksize)Tj /TT0 1 Tf (\);)Tj -14.95 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 429)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_attr_setstacksize)Tj /TT0 1 Tf (\(pthread_attr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 15.6 -1.25 Td (size_t)Tj /T1_2 1 Tf 4.2 0 Td (stacksize)Tj /TT0 1 Tf (\);)Tj -12.3 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 430)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_barrierattr_destroy)Tj /TT0 1 Tf (\(pthread_barrierattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 441)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_barrierattr_getpshared)Tj /TT0 1 Tf (\(const pthread_barrierattr_t)Tj 19.8 -1.25 Td (*restrict)Tj /T1_2 1 Tf 6 0 Td (attr)Tj /TT0 1 Tf (,)Tj -7.2 -1.25 Td (int *restrict)Tj /T1_2 1 Tf 8.4 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf (\);)Tj -19.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 441)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_barrierattr_init)Tj /TT0 1 Tf (\(pthread_barrierattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 441)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_barrierattr_setpshared)Tj /TT0 1 Tf (\(pthread_barrierattr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 18.6 -1.25 Td (int)Tj /T1_2 1 Tf 2.4 0 Td [(pshar)18(ed)]TJ /TT0 1 Tf (\);)Tj -13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 441)Tj /T1_2 1 Tf -28.125 -1.5 Td [(pshar)18(ed)]TJ /TT0 1 Tf 0.6 Tc (:P)Tj 0 Tc 4.893 0 Td (THREAD_PROCESS_PRIVATE,)Tj -0.6 -1.25 Td (PTHREAD_PROCESS_SHARED)Tj /T1_0 1 Tf -4.293 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_barrier_destroy)Tj /TT0 1 Tf (\(pthread_barrier_t *)Tj /T1_2 1 Tf (barrier)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 418)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_barrier_init)Tj /TT0 1 Tf (\(pthread_barrier_t *restrict)Tj /T1_2 1 Tf 29.4 0 Td (barrier)Tj /TT0 1 Tf (,)Tj -16.8 -1.25 Td (const pthread_barrierattr_t *)Tj 1.2 -1.25 Td (restrict)Tj /T1_2 1 Tf 5.4 0 Td (attr)Tj /TT0 1 Tf (,)Tj -6.6 -1.25 Td (unsigned int)Tj /T1_2 1 Tf 7.8 0 Td (count)Tj /TT0 1 Tf (\);)Tj -12.9 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 418)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47739 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (868)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (void)Tj /TT1 1 Tf 6 0 Td (psignal)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.2 0 Td (signo)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.967 0 Td (onst char *)Tj /T1_2 1 Tf (msg)Tj /TT0 1 Tf (\);)Tj -3.667 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 379)Tj /TT0 1 Tf -28.125 -1.25 Td [( )-1800(/*)-600(on Solaris */)]TJ -13.5 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_atfork)Tj /TT0 1 Tf (\(void \(*)Tj /T1_2 1 Tf [(pr)18(epar)18(e)]TJ /TT0 1 Tf (\)\(void\), void \(*)Tj /T1_2 1 Tf [(par)18(ent)]TJ /TT0 1 Tf (\)\(void\),)Tj 9 -1.25 Td (void \(*)Tj /T1_2 1 Tf (child)Tj /TT0 1 Tf (\)\(void\)\);)Tj -1.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 458)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_attr_destroy)Tj /TT0 1 Tf (\(pthread_attr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 427)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_attr_getdetachstate)Tj /TT0 1 Tf (\(const pthread_attr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 16.8 -1.25 Td (int *)Tj /T1_2 1 Tf (detachstate)Tj /TT0 1 Tf (\);)Tj -9.3 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 428)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_attr_getguardsize)Tj /TT0 1 Tf (\(const pthread_attr_t)Tj 16.8 -1.25 Td (*restrict)Tj /T1_2 1 Tf 6 0 Td (attr)Tj /TT0 1 Tf (,)Tj -7.2 -1.25 Td (size_t *restrict)Tj /T1_2 1 Tf 10.2 0 Td (guardsize)Tj /TT0 1 Tf (\);)Tj -18.3 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 430)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_attr_getstack)Tj /TT0 1 Tf (\(const pthread_attr_t *restrict)Tj /T1_2 1 Tf 31.8 0 Td (attr)Tj /TT0 1 Tf (,)Tj -18.6 -1.25 Td (void **restrict)Tj /T1_2 1 Tf 9.6 0 Td (stackaddr)Tj /TT0 1 Tf (,)Tj -9.6 -1.25 Td (size_t *restrict)Tj /T1_2 1 Tf 10.2 0 Td (stacksize)Tj /TT0 1 Tf (\);)Tj -15.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 429)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_attr_getstacksize)Tj /TT0 1 Tf (\(const pthread_attr_t)Tj 16.8 -1.25 Td (*restrict)Tj /T1_2 1 Tf 6 0 Td (attr)Tj /TT0 1 Tf (,)Tj -7.2 -1.25 Td (size_t *restrict)Tj /T1_2 1 Tf 10.2 0 Td (stacksize)Tj /TT0 1 Tf (\);)Tj -18.3 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 430)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_attr_init)Tj /TT0 1 Tf (\(pthread_attr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 427)Tj -28.125 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (pthread_attr_setdetachstate)Tj /TT0 1 Tf (\(pthread_attr_t *)Tj /T1_2 1 Tf (attr)Tj /TT0 1 Tf (,)Tj 16.8 -1.25 Td (int)Tj /T1_2 1 Tf 2.4 0 Td (detachstate)Tj /TT0 1 Tf (\);)Tj -11.7 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 428)Tj /T1_2 1 Tf -28.125 -1.5 Td (detachstate)Tj /TT0 1 Tf 0.6 Tc (:P)Tj 0 Tc 6.261 0 Td (THREAD_CREATE_DETACHED,)Tj -0.6 -1.25 Td (PTHREAD_CREATE_JOINABLE)Tj /T1_1 1 Tf -5.661 -1.5 Td [(Returns: 0 if OK, err)18(or number on failur)18(e)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47740 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (867)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (pclose)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 541)Tj -28.125 -1.5 Td (Returns: termination status of)Tj /TT0 1 Tf 13.41 0 Td (popen)Tj /T1_2 1 Tf 3.333 0 Td (cmdstring)Tj /T1_0 1 Tf (,)Tj /TT2 1 Tf 4.63 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -34.873 -3.125 Td (void)Tj /TT1 1 Tf 6 0 Td (perror)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (msg)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 15)Tj /TT0 1 Tf -41.625 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (pipe)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 5.4 0 Td (fd)Tj /TT0 1 Tf ([2]\);)Tj 2.1 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 535)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (poll)Tj /TT0 1 Tf (\(struct pollfd)Tj /T1_2 1 Tf 11.4 0 Td (fdarray)Tj /TT0 1 Tf ([], nfds_t)Tj /T1_2 1 Tf 9.544 0 Td (nfds)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.523 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (timeout)Tj /TT0 1 Tf (\);)Tj -18.767 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 506)Tj -28.125 -1.5 Td [(Returns: count of r)18(eady descriptors, 0 on timeout,)]TJ /TT2 1 Tf 22.148 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -35.648 -3.125 Td [(FILE )-2400(*)]TJ /TT1 1 Tf (popen)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (cmdstring)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 22.73 0 Td (onst char *)Tj /T1_2 1 Tf (type)Tj /TT0 1 Tf (\);)Tj -9.23 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 541)Tj /T1_2 1 Tf -28.125 -1.5 Td (type)Tj /TT0 1 Tf 0.6 Tc (:")Tj 0 Tc 3.522 0 Td (r", "w")Tj /T1_0 1 Tf -3.522 -1.5 Td (Returns: \336le pointer if OK,)Tj /TT0 1 Tf 11.958 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -28.108 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (posix_openpt)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 10.2 0 Td (o\337ag)Tj /TT0 1 Tf (\);)Tj -2.7 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 722)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj /T1_2 1 Tf 0 -1.5 TD (o\337ag)Tj /TT0 1 Tf 0.6 Tc (:O)Tj 0 Tc 3.733 0 Td (_RWDR, O_NOCTTY)Tj /T1_0 1 Tf -3.733 -1.5 Td (Returns: \336le descriptor of next available PTY master if OK,)Tj /TT2 1 Tf 3.977 -1.25 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -17.477 -3.125 Td (ssize_t)Tj /TT1 1 Tf 6 0 Td (pread)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,v)Tj 0 Tc 2.578 0 Td (oid *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 6.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nbytes)Tj /TT0 1 Tf 0.6 Tc (,o)Tj 0 Tc 4.43 0 Td (ff_t)Tj /T1_2 1 Tf 3 0 Td (offset)Tj /TT0 1 Tf (\);)Tj -18.205 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 78)Tj -28.125 -1.5 Td [(Returns: number of bytes r)18(ead, 0 if end of \336le,)]TJ /TT2 1 Tf 20.456 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -33.956 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (printf)Tj /TT0 1 Tf (\(const char *restrict)Tj /T1_2 1 Tf 16.8 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 4.466 0 Td (..\);)Tj -13.766 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 159)Tj -28.125 -1.5 Td (Returns: number of characters output if OK, negative value)Tj 3.977 -1.25 Td [(if output err)18(or)]TJ /TT0 1 Tf -17.477 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (pselect)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.2 0 Td (maxfdp1)Tj /TT0 1 Tf 0.6 Tc (,f)Tj 0 Tc 5.3 0 Td (d_set *restrict)Tj /T1_2 1 Tf -0.018 Tc 9.6 0 Td (re)Tj 0 Tc 0.76 0 Td (adfds)Tj /TT0 1 Tf (,)Tj -18.06 -1.25 Td (fd_set *restrict)Tj /T1_2 1 Tf 10.2 0 Td (writefds)Tj /TT0 1 Tf 0.6 Tc (,f)Tj 0 Tc 5.078 0 Td (d_set *restrict)Tj /T1_2 1 Tf 9.6 0 Td (exceptfds)Tj /TT0 1 Tf (,)Tj -24.878 -1.25 Td (const struct timespec *restrict)Tj /T1_2 1 Tf 19.2 0 Td (tsptr)Tj /TT0 1 Tf (,)Tj -19.2 -1.25 Td (const sigset_t *restrict)Tj /T1_2 1 Tf 15 0 Td (sigmask)Tj /TT0 1 Tf (\);)Tj -12.3 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 506)Tj -28.125 -1.5 Td [(Returns: count of r)18(eady descriptors, 0 on timeout,)]TJ /TT2 1 Tf 22.148 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -35.648 -3.125 Td (void)Tj /TT1 1 Tf 6 0 Td (psiginfo)Tj /TT0 1 Tf (\(const siginfo_t *)Tj /T1_2 1 Tf (info)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 18.956 0 Td (onst char *)Tj /T1_2 1 Tf (msg)Tj /TT0 1 Tf (\);)Tj -11.456 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 379)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47741 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (866)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (openat)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 10.177 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (o\337ag)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 3.733 0 Td (..)Tj -20.688 -1.25 Td (/* mode_t)Tj /T1_2 1 Tf 6 0 Td (mode)Tj /TT0 1 Tf 2.711 0 Td (*/ \);)Tj -5.411 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 62)Tj /T1_2 1 Tf -28.125 -1.5 Td (o\337ag)Tj /TT0 1 Tf 0.6 Tc (:O)Tj 0 Tc 3.733 0 Td (_RDONLY, O_WRONLY, O_RDWR, O_EXEC,)Tj -0.6 -1.25 Td (O_SEARCH;)Tj 0 -1.25 TD (O_APPEND, O_CLOEXEC, O_CREAT,)Tj T* (O_DIRECTORY, O_DSYNC, O_EXCL,)Tj T* (O_NOCTTY, O_NOFOLLOW, O_NONBLOCK,)Tj T* (O_RSYNC, O_SYNC, O_TRUNC, O_TTY_INIT)Tj /T1_2 1 Tf -3.133 -1.5 Td (mode)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 3.911 0 Td (_IS)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (UG)Tj 1.2 0.04 Td (])Tj 0.6 -0.04 Td (ID, S_ISVTX,)Tj -4.8 -1.25 Td (S_I)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (RWX)Tj 1.8 0.04 Td (])Tj 0.6 -0.04 Td (\(USR|GRP|OTH\))Tj /T1_1 1 Tf -8.111 -1.5 Td (Returns: \336le descriptor if OK,)Tj /TT2 1 Tf 13.25 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ -13.25 -1.5 Td (Platforms:)Tj /TT0 1 Tf 4.802 0 Td (O_FSYNC)Tj /T1_1 1 Tf 4.45 0 Td [(\337ag on Fr)18(eeBSD 8.0 and Mac OS X 10.6.8)]TJ /TT0 1 Tf -22.752 -2.875 Td [(DIR )-3000(*)]TJ /TT1 1 Tf (opendir)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf (\);)Tj 13.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 130)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -26.483 -2.875 Td (void)Tj /TT1 1 Tf 6 0 Td (openlog)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (ident)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 15.856 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (option)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.355 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (facility)Tj /TT0 1 Tf (\);)Tj -16.311 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 470)Tj /T1_2 1 Tf -28.125 -1.5 Td (option)Tj /TT0 1 Tf 0.6 Tc (:L)Tj 0 Tc 4.355 0 Td (OG_CONS, LOG_NDELAY, LOG_NOWAIT,)Tj -0.6 -1.25 Td (LOG_ODELAY, LOG_PERROR, LOG_PID)Tj /T1_2 1 Tf -3.755 -1.5 Td (facility)Tj /TT0 1 Tf 0.6 Tc (:L)Tj 0 Tc 4.596 0 Td (OG_AUTH, LOG_AUTHPRIV, LOG_CRON,)Tj -0.6 -1.25 Td (LOG_DAEMON, LOG_FTP, LOG_KERN,)Tj T* (LOG_LOCAL[0)Tj 6.6 0.09 Td (-)Tj 0.6 -0.09 Td (7], LOG_LPR, LOG_MAIL,)Tj -7.2 -1.25 Td (LOG_NEWS, LOG_SYSLOG, LOG_USER, LOG_UUCP)Tj -17.496 -2.875 Td [(FILE )-2400(*)]TJ /TT1 1 Tf (open_memstream)Tj /TT0 1 Tf (\(char **)Tj /T1_2 1 Tf (bufp)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 22.797 0 Td (ize_t *)Tj /T1_2 1 Tf (sizep)Tj /TT0 1 Tf (\);)Tj -9.297 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 173)Tj -28.125 -1.5 Td [(Returns: str)18(eam pointer if OK,)]TJ /TT0 1 Tf 13.572 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -29.722 -2.875 Td [(FILE )-2400(*)]TJ /TT1 1 Tf (open_wmemstream)Tj /TT0 1 Tf (\(wchar_t **)Tj /T1_2 1 Tf (bufp)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 25.197 0 Td (ize_t *)Tj /T1_2 1 Tf (sizep)Tj /TT0 1 Tf (\);)Tj -11.697 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 173)Tj -28.125 -1.5 Td [(Returns: str)18(eam pointer if OK,)]TJ /TT0 1 Tf 13.572 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -29.722 -2.875 Td (long)Tj /TT1 1 Tf 6 0 Td (pathconf)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 16.177 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (name)Tj /TT0 1 Tf (\);)Tj -10.477 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 42)Tj /T1_2 1 Tf -28.125 -1.5 Td (name)Tj /TT0 1 Tf 0.6 Tc (:_)Tj 0 Tc 3.967 0 Td (PC_ASYNC_IO, _PC_CHOWN_RESTRICTED,)Tj -0.6 -1.25 Td (_PC_FILESIZEBITS, _PC_LINK_MAX,)Tj T* (_PC_MAX_CANON, _PC_MAX_INPUT,)Tj T* (_PC_NAME_MAX, _PC_NO_TRUNC, _PC_PATH_MAX,)Tj T* (_PC_PIPE_BUF, _PC_PRIO_IO, _PC_SYMLINK_MAX,)Tj T* (_PC_SYNC_IO, _PC_TIMESTAMP_RESOLUTION,)Tj T* (_PC_2_SYMLINKS, _PC_VDISABLE)Tj /T1_1 1 Tf -3.367 -1.5 Td [(Returns: corr)18(esponding value if OK,)]TJ /TT2 1 Tf 16.235 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -29.735 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (pause)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 338)Tj -28.125 -1.5 Td (Returns:)Tj /TT2 1 Tf 3.977 0 Td (!)Tj /T1_1 1 Tf 0.25 Tc (1w)Tj 0 Tc 2.133 0 Td (ith)Tj /TT0 1 Tf 1.449 0 Td (errno)Tj /T1_1 1 Tf 3.25 0 Td (set to)Tj /TT0 1 Tf 2.601 0 Td (EINTR)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47742 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (864)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm [(char )-2400(*)]TJ /TT1 1 Tf (mkdtemp)Tj /TT0 1 Tf (\(char *)Tj /T1_2 1 Tf (template)Tj /TT0 1 Tf (\);)Tj 13.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 169)Tj -28.125 -1.5 Td [(Returns: pointer to dir)18(ectory name if OK,)]TJ /TT0 1 Tf 18.424 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -34.574 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (mkfifo)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,m)Tj 0 Tc 14.977 0 Td (ode_t)Tj /T1_2 1 Tf 3.6 0 Td (mode)Tj /TT0 1 Tf (\);)Tj -11.077 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 553)Tj /T1_2 1 Tf -28.125 -1.5 Td (mode)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 3.911 0 Td (_IS)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (UG)Tj 1.2 0.04 Td (])Tj 0.6 -0.04 Td (ID, S_ISVTX,)Tj -4.8 -1.25 Td (S_I)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (RWX)Tj 1.8 0.04 Td (])Tj 0.6 -0.04 Td (\(USR|GRP|OTH\))Tj /T1_1 1 Tf -8.111 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (mkfifoat)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,m)Tj 0 Tc 10.177 0 Td (ode_t)Tj /T1_2 1 Tf 3.6 0 Td (mode)Tj /TT0 1 Tf (\);)Tj -16.655 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 553)Tj /T1_2 1 Tf -28.125 -1.5 Td (mode)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 3.911 0 Td (_IS)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (UG)Tj 1.2 0.04 Td (])Tj 0.6 -0.04 Td (ID, S_ISVTX,)Tj -4.8 -1.25 Td (S_I)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (RWX)Tj 1.8 0.04 Td (])Tj 0.6 -0.04 Td (\(USR|GRP|OTH\))Tj /T1_1 1 Tf -8.111 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (mkstemp)Tj /TT0 1 Tf (\(char *)Tj /T1_2 1 Tf (template)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 169)Tj -28.125 -1.5 Td (Returns: \336le descriptor if OK,)Tj /TT2 1 Tf 13.25 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -26.75 -2.875 Td (time_t)Tj /TT1 1 Tf 6 0 Td (mktime)Tj /TT0 1 Tf (\(struct tm *)Tj /T1_2 1 Tf (tmptr)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 192)Tj -28.125 -1.5 Td (Returns: calendar time if OK,)Tj /TT2 1 Tf 13.144 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -26.644 -2.875 Td [(void )-2400(*)]TJ /TT1 1 Tf (mmap)Tj /TT0 1 Tf (\(void *)Tj /T1_2 1 Tf (addr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 16.233 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (len)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.023 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td [(pr)18(ot)]TJ /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.448 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.289 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (fd)Tj /TT0 1 Tf (,)Tj -25.993 -1.25 Td (off_t)Tj /T1_2 1 Tf 3.6 0 Td (off)Tj /TT0 1 Tf 1.185 0 Td (\);)Tj -0.285 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 525)Tj /T1_2 1 Tf -28.125 -1.5 Td [(pr)18(ot)]TJ /TT0 1 Tf 0.6 Tc (:P)Tj 0 Tc 3.448 0 Td (ROT_READ, PROT_WRITE, PROT_EXEC,)Tj -0.6 -1.25 Td (PROT_NONE)Tj /T1_2 1 Tf -2.848 -1.5 Td (\337ag)Tj /TT0 1 Tf 0.6 Tc (:M)Tj 0 Tc 3.289 0 Td (AP_FIXED, MAP_SHARED, MAP_PRIVATE)Tj /T1_1 1 Tf -3.289 -1.5 Td [(Returns: starting addr)18(ess of mapped r)18(egion if OK,)]TJ /TT0 1 Tf 3.977 -1.25 Td (MAP_FAILED)Tj /T1_1 1 Tf 6.25 0 Td [(on err)18(or)]TJ /TT0 1 Tf -23.727 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (mprotect)Tj /TT0 1 Tf (\(void *)Tj /T1_2 1 Tf (addr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 12.633 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (len)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.023 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td [(pr)18(ot)]TJ /TT0 1 Tf (\);)Tj -13.556 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 527)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (msgctl)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (msqid)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.208 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (cmd)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.485 0 Td (truct msqid_ds *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 11.082 0 Td (\);)Tj -19.675 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 562)Tj /T1_2 1 Tf -28.125 -1.5 Td (cmd)Tj /TT0 1 Tf 0.6 Tc (:I)Tj 0 Tc 3.485 0 Td (PC_STAT, IPC_SET, IPC_RMID)Tj /T1_1 1 Tf -3.485 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (msgget)Tj /TT0 1 Tf (\(key_t)Tj /T1_2 1 Tf 7.8 0 Td (key)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.133 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj -5.233 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 562)Tj /T1_2 1 Tf -28.125 -1.5 Td (\337ag)Tj /TT0 1 Tf 0.6 Tc (:I)Tj 0 Tc 3.289 0 Td (PC_CREAT, IPC_EXCL)Tj /T1_1 1 Tf -3.289 -1.5 Td (Returns: message queue ID if OK,)Tj /TT2 1 Tf 15.193 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47743 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (863)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (lio_listio)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9 0 Td (mode)Tj /TT0 1 Tf (,)Tj -2.4 -1.25 Td (struct aiocb *restrict const)Tj /T1_2 1 Tf 17.4 0 Td (list)Tj /TT0 1 Tf ([restrict],)Tj -17.4 -1.25 Td (int)Tj /T1_2 1 Tf 2.4 0 Td (nent)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.634 0 Td (truct sigevent *restrict)Tj /T1_2 1 Tf 15 0 Td (sigev)Tj /TT0 1 Tf (\);)Tj -20.134 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 515)Tj /T1_2 1 Tf -28.125 -1.5 Td (mode)Tj /TT0 1 Tf 0.6 Tc (:L)Tj 0 Tc 3.911 0 Td (IO_NOWAIT, LIO_WAIT)Tj /T1_0 1 Tf -3.911 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (listen)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.262 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (backlog)Tj /TT0 1 Tf (\);)Tj -5.162 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 608)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.125 Td (struct)Tj 0 -1.25 TD [(tm )-3600(*)]TJ /TT1 1 Tf (localtime)Tj /TT0 1 Tf (\(const time_t *)Tj /T1_2 1 Tf (calptr)Tj /TT0 1 Tf (\);)Tj 13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 192)Tj -28.125 -1.5 Td [(Returns: pointer to br)18(oken-down time,)]TJ /TT0 1 Tf 17.297 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -33.447 -3.125 Td (void)Tj /TT1 1 Tf 6 0 Td (longjmp)Tj /TT0 1 Tf (\(jmp_buf)Tj /T1_2 1 Tf 9.6 0 Td (env)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.245 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (val)Tj /TT0 1 Tf (\);)Tj -7.145 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 215)Tj -28.125 -1.5 Td [(This function never r)18(eturns)]TJ /TT0 1 Tf -13.5 -3.125 Td (off_t)Tj /TT1 1 Tf 6 0 Td (lseek)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,o)Tj 0 Tc 2.578 0 Td (ff_t)Tj /T1_2 1 Tf 3 0 Td (offset)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.911 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (whence)Tj /TT0 1 Tf (\);)Tj -9.789 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 67)Tj /T1_2 1 Tf -28.125 -1.5 Td (whence)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 4.763 0 Td (EEK_SET, SEEK_CUR, SEEK_END)Tj /T1_0 1 Tf -4.763 -1.5 Td [(Returns: new \336le of)18(fset if OK,)]TJ /TT2 1 Tf 13.306 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -26.806 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (lstat)Tj /TT0 1 Tf (\(const char *restrict)Tj /T1_2 1 Tf 16.2 0 Td (path)Tj /TT0 1 Tf (,)Tj -12.6 -1.25 Td (struct stat *restrict)Tj /T1_2 1 Tf 13.2 0 Td (buf)Tj /TT0 1 Tf 1.482 0 Td (\);)Tj -10.782 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 93)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.125 Td [(void )-2400(*)]TJ /TT1 1 Tf (malloc)Tj /TT0 1 Tf (\(size_t)Tj /T1_2 1 Tf 14.4 0 Td (size)Tj /TT0 1 Tf (\);)Tj -0.9 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 207)Tj -28.125 -1.5 Td (Returns: non-null pointer if OK,)Tj /TT0 1 Tf 14.393 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -30.543 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (mkdir)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,m)Tj 0 Tc 14.377 0 Td (ode_t)Tj /T1_2 1 Tf 3.6 0 Td (mode)Tj /TT0 1 Tf (\);)Tj -10.477 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 129)Tj /T1_2 1 Tf -28.125 -1.5 Td (mode)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 3.911 0 Td (_IS)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (UG)Tj 1.2 0.04 Td (])Tj 0.6 -0.04 Td (ID, S_ISVTX,)Tj -4.8 -1.25 Td (S_I)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (RWX)Tj 1.8 0.04 Td (])Tj 0.6 -0.04 Td (\(USR|GRP|OTH\))Tj /T1_0 1 Tf -8.111 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (mkdirat)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.2 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,m)Tj 0 Tc 10.177 0 Td (ode_t)Tj /T1_2 1 Tf 3.6 0 Td (mode)Tj /TT0 1 Tf (\);)Tj -16.055 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 129)Tj /T1_2 1 Tf -28.125 -1.5 Td (mode)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 3.911 0 Td (_IS)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (UG)Tj 1.2 0.04 Td (])Tj 0.6 -0.04 Td (ID, S_ISVTX,)Tj -4.8 -1.25 Td (S_I)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (RWX)Tj 1.8 0.04 Td (])Tj 0.6 -0.04 Td (\(USR|GRP|OTH\))Tj /T1_0 1 Tf -8.111 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47744 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (862)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (const)Tj 0 -1.25 TD [(char )-2400(*)]TJ /TT1 1 Tf (inet_ntop)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 14.4 0 Td (domain)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.8 0 Td (onst void *restrict)Tj /T1_2 1 Tf 12 0 Td (addr)Tj /TT0 1 Tf (,)Tj -19.2 -1.25 Td (char *restrict)Tj /T1_2 1 Tf 9 0 Td (str)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 2.911 0 Td (ocklen_t)Tj /T1_2 1 Tf 5.4 0 Td (size)Tj /TT0 1 Tf (\);)Tj -15.811 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 596)Tj -28.125 -1.5 Td [(Returns: pointer to addr)18(ess string on success,)]TJ /TT0 1 Tf 20.189 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -36.339 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (inet_pton)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 8.4 0 Td (domain)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.8 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (str)Tj /TT0 1 Tf (,)Tj -19.2 -1.25 Td (void *restrict)Tj /T1_2 1 Tf 9 0 Td (addr)Tj /TT0 1 Tf (\);)Tj -7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 596)Tj -28.125 -1.5 Td (Returns: 1 on success, 0 if the format is invalid, or)Tj /TT2 1 Tf 22.128 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -35.628 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (initgroups)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (username)Tj /TT0 1 Tf 0.6 Tc (,g)Tj 0 Tc 19.49 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (basegid)Tj /TT0 1 Tf (\);)Tj -14.99 -1.5 Td [( )-1800(/*)-600(Linux & Solaris */)]TJ /T1_1 1 Tf 28.125 0 Td (p. 184)Tj /TT0 1 Tf -28.125 -1.25 Td ( /* FreeBSD & Mac OS X */)Tj /T1_1 1 Tf 0 -1.5 TD (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (ioctl)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf -0.018 Tc 1.8 0 Td (re)Tj 0 Tc 0.76 0 Td (quest)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 3.93 0 Td (..\);)Tj -7.568 -1.5 Td [( )-2400(/*)-600(System V */)]TJ /T1_1 1 Tf 28.125 0 Td (p. 87)Tj /TT0 1 Tf -28.125 -1.25 Td [( )-600(/*)-600(BSD and Linux */)]TJ /T1_1 1 Tf T* (Returns:)Tj /TT2 1 Tf 3.977 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ 0.25 Tc 4.795 0 Td (,s)Tj 0 Tc 0.924 0 Td (omething else if OK)Tj /TT0 1 Tf -23.196 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (isatty)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (fd)Tj /TT0 1 Tf (\);)Tj 0.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 695)Tj -28.125 -1.5 Td [(Returns: 1 \(tr)8(ue\) if terminal device, 0 \(false\) otherwise)]TJ /TT0 1 Tf -13.5 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (kill)Tj /TT0 1 Tf (\(pid_t)Tj /T1_2 1 Tf 6.6 0 Td (pid)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.078 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (signo)Tj /TT0 1 Tf (\);)Tj -3.978 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 337)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (lchown)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,u)Tj 0 Tc 14.977 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (owner)Tj /TT0 1 Tf 0.6 Tc (,g)Tj 0 Tc 4.3 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td [(gr)18(oup)]TJ /TT0 1 Tf (\);)Tj -17.777 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 109)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (link)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (existingpath)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 17 0 Td (onst char *)Tj /T1_2 1 Tf (newpath)Tj /TT0 1 Tf (\);)Tj -9.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td [(p. 1)55(16)]TJ -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (linkat)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (efd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.967 0 Td (onst char *)Tj /T1_2 1 Tf (existingpath)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 13.4 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (nfd)Tj /TT0 1 Tf (,)Tj -20.567 -1.25 Td (const char *)Tj /T1_2 1 Tf (newpath)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 12.444 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj -10.944 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td [(p. 1)55(16)]TJ /T1_2 1 Tf -28.125 -1.5 Td (\337ag)Tj /TT0 1 Tf 0.6 Tc (:A)Tj 0 Tc 3.289 0 Td (T_SYMLINK_NOFOLLOW)Tj /T1_1 1 Tf -3.289 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47745 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (860)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (getrlimit)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf -0.018 Tc 8.4 0 Td (re)Tj 0 Tc 0.76 0 Td [(sour)18(ce)]TJ /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 4.356 0 Td (truct rlimit *)Tj /T1_2 1 Tf (rlptr)Tj /TT0 1 Tf (\);)Tj -6.016 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 220)Tj /T1_2 1 Tf -0.018 Tc -28.125 -1.5 Td (re)Tj 0 Tc 0.76 0 Td [(sour)18(ce)]TJ /TT0 1 Tf 0.6 Tc (:R)Tj 0 Tc 4.356 0 Td (LIMIT_CORE, RLIMIT_CPU,)Tj -0.6 -1.25 Td (RLIMIT_DATA, RLIMIT_FSIZE,)Tj 0 -1.25 TD (RLIMIT_NOFILE, RLIMIT_STACK,)Tj T* (RLIMIT_AS)Tj /T1_1 1 Tf 6 0 Td [(\(Fr)18(eeBSD 8.0, Linux 3.2.0,)]TJ 0.333 -1.25 Td (Solaris 10\))Tj /TT0 1 Tf (,)Tj -6.333 -1.25 Td (RLIMIT_MEMLOCK)Tj /T1_1 1 Tf 9 0 Td [(\(Fr)18(eeBSD 8.0, Linux 3.2.0,)]TJ 0.333 -1.25 Td (Mac OS X 10.6.8\))Tj /TT0 1 Tf (,)Tj -9.333 -1.25 Td (RLIMIT_MSGQUEUE)Tj /T1_1 1 Tf 9.6 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -15.119 -1.25 Td (RLIMIT_NICE)Tj /T1_1 1 Tf 7.2 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -12.719 -1.25 Td (RLIMIT_NPROC)Tj /T1_1 1 Tf 7.8 0 Td [(\(Fr)18(eeBSD 8.0, Linux 3.2.0,)]TJ 0.333 -1.25 Td (Mac OS X 10.6.8\))Tj /TT0 1 Tf (,)Tj -8.133 -1.25 Td (RLIMIT_NPTS)Tj /T1_1 1 Tf 7.2 0.04 Td (\()Tj 0.333 -0.04 Td [(Fr)18(eeBSD 8.0)]TJ 5.301 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -13.167 -1.25 Td (RLIMIT_RSS)Tj /T1_1 1 Tf 6.6 0 Td [(\(Fr)18(eeBSD 8.0, Linux 3.2.0,)]TJ 0.333 -1.25 Td (Mac OS X 10.6.8\))Tj /TT0 1 Tf (,)Tj -6.933 -1.25 Td (RLIMIT_SBSIZE)Tj /T1_1 1 Tf 8.4 0.04 Td (\()Tj 0.333 -0.04 Td [(Fr)18(eeBSD 8.0)]TJ 5.301 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -14.367 -1.25 Td (RLIMIT_SIGPENDING)Tj /T1_1 1 Tf 10.8 0.04 Td (\()Tj 0.333 -0.04 Td (Linux 3.2.0)Tj 4.853 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -16.319 -1.25 Td (RLIMIT_SWAP)Tj /T1_1 1 Tf 7.2 0.04 Td (\()Tj 0.333 -0.04 Td [(Fr)18(eeBSD 8.0)]TJ 5.301 0.04 Td (\))Tj /TT0 1 Tf 0.333 -0.04 Td (,)Tj -13.167 -1.25 Td (RLIMIT_VMEM)Tj /T1_1 1 Tf 7.2 0.04 Td (\()Tj 0.333 -0.04 Td (Solaris 10)Tj 4.222 0.04 Td (\))Tj -16.271 -1.54 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.8 Td [(char )-2400(*)]TJ /TT1 1 Tf (gets)Tj /TT0 1 Tf (\(char *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 14.082 0 Td (\);)Tj -0.582 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 152)Tj -28.125 -1.5 Td (Returns:)Tj /T1_2 1 Tf 3.977 0 Td (buf)Tj /T1_1 1 Tf 1.547 0 Td (if OK,)Tj /TT0 1 Tf 2.886 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on end of \336le or err)18(or)]TJ /TT0 1 Tf -24.56 -2.8 Td (struct)Tj T* [(servent )-600(*)]TJ /TT1 1 Tf (getservbyname)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 25.567 0 Td (onst char *)Tj /T1_2 1 Tf [(pr)18(oto)]TJ /TT0 1 Tf (\);)Tj -12.067 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 599)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -26.483 -2.8 Td (struct)Tj T* [(servent )-600(*)]TJ /TT1 1 Tf (getservbyport)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 16.8 0 Td (port)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.466 0 Td (onst char *)Tj /T1_2 1 Tf [(pr)18(oto)]TJ /TT0 1 Tf (\);)Tj -6.766 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 599)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -26.483 -2.8 Td (struct)Tj T* [(servent )-600(*)]TJ /TT1 1 Tf (getservent)Tj /TT0 1 Tf (\(void\);)Tj 13.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 599)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -26.483 -2.8 Td (pid_t)Tj /TT1 1 Tf 6 0 Td (getsid)Tj /TT0 1 Tf (\(pid_t)Tj /T1_2 1 Tf 7.8 0 Td (pid)Tj /TT0 1 Tf (\);)Tj -0.3 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 296)Tj -28.125 -1.5 Td [(Returns: session leader)-74(\325s pr)18(ocess gr)18(oup ID if OK,)]TJ /TT2 1 Tf 3.977 -1.25 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -17.477 -2.8 Td (int)Tj /TT1 1 Tf 6 0 Td (getsockname)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9.6 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 4.262 0 Td (truct sockaddr *restrict)Tj /T1_2 1 Tf 15 0 Td (addr)Tj /TT0 1 Tf (,)Tj -21.662 -1.25 Td (socklen_t *restrict)Tj /T1_2 1 Tf 12 0 Td (alenp)Tj /TT0 1 Tf (\);)Tj -11.7 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 605)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47746 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (859)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (pid_t)Tj /TT1 1 Tf 6 0 Td (getpid)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 228)Tj -28.125 -1.5 Td [(Returns: pr)18(ocess ID of calling pr)18(ocess)]TJ /TT0 1 Tf -13.5 -3.375 Td (pid_t)Tj /TT1 1 Tf 6 0 Td (getppid)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 228)Tj -28.125 -1.5 Td [(Returns: par)18(ent pr)18(ocess ID of calling pr)18(ocess)]TJ /TT0 1 Tf -13.5 -3.375 Td (int)Tj /TT1 1 Tf 6 0 Td (getpriority)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9.6 0 Td (which)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.207 0 Td (d_t)Tj /T1_2 1 Tf 2.4 0 Td (who)Tj /TT0 1 Tf (\);)Tj -8.707 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 277)Tj /T1_2 1 Tf -28.125 -1.5 Td (which)Tj /TT0 1 Tf 0.6 Tc (:P)Tj 0 Tc 4.207 0 Td (RIO_PROCESS, PRIO_PGRP, PRIO_USER)Tj /T1_0 1 Tf -4.207 -1.5 Td (Returns: nice value between)Tj /TT2 1 Tf 12.693 0 Td (!)Tj /TT0 1 Tf (NZERO)Tj /T1_0 1 Tf 3.799 0 Td (and)Tj /TT0 1 Tf 1.943 0 Td (NZERO)Tj /TT2 1 Tf (!)Tj /TT0 1 Tf (1)Tj /T1_0 1 Tf 4.399 0 Td (if OK,)Tj /TT2 1 Tf -18.857 -1.25 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -17.477 -3.375 Td (struct)Tj 0 -1.25 TD (protoent *)Tj /TT1 1 Tf (getprotobyname)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj 13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 598)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -26.483 -3.375 Td (struct)Tj T* (protoent *)Tj /TT1 1 Tf (getprotobynumber)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 18.6 0 Td [(pr)18(oto)]TJ /TT0 1 Tf (\);)Tj -5.1 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 598)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -26.483 -3.375 Td (struct)Tj 0 -1.25 Td (protoent *)Tj /TT1 1 Tf (getprotoent)Tj /TT0 1 Tf (\(void\);)Tj 13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 598)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -26.483 -3.375 Td (struct)Tj T* [(passwd )-1200(*)]TJ /TT1 1 Tf (getpwent)Tj /TT0 1 Tf (\(void\);)Tj 13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 180)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or or end of \336le)]TJ /TT0 1 Tf -26.483 -3.375 Td (struct)Tj T* [(passwd )-1200(*)]TJ /TT1 1 Tf (getpwnam)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj 13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 179)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -26.483 -3.375 Td (struct)Tj T* [(passwd )-1200(*)]TJ /TT1 1 Tf (getpwuid)Tj /TT0 1 Tf (\(uid_t)Tj /T1_2 1 Tf 15 0 Td (uid)Tj /TT0 1 Tf (\);)Tj -1.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 179)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47747 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (858)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (getnameinfo)Tj /TT0 1 Tf (\(const struct sockaddr *restrict)Tj /T1_2 1 Tf 26.4 0 Td (addr)Tj /TT0 1 Tf (,)Tj -19.2 -1.25 Td (socklen_t)Tj /T1_2 1 Tf 6 0 Td (alen)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.467 0 Td (har *restrict)Tj /T1_2 1 Tf 8.4 0 Td (host)Tj /TT0 1 Tf (,)Tj -17.867 -1.25 Td (socklen_t)Tj /T1_2 1 Tf 6 0 Td (hostlen)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.689 0 Td (har *restrict)Tj /T1_2 1 Tf 8.4 0 Td (service)Tj /TT0 1 Tf (,)Tj -19.089 -1.25 Td (socklen_t)Tj /T1_2 1 Tf 6 0 Td (servlen)Tj /TT0 1 Tf 0.6 Tc (,u)Tj 0 Tc 4.69 0 Td (nsigned int)Tj /T1_2 1 Tf 7.2 0 Td (\337ags)Tj /TT0 1 Tf (\);)Tj -17.59 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 600)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj /T1_2 1 Tf 0 -1.5 TD (\337ags)Tj /TT0 1 Tf 0.6 Tc (:N)Tj 0 Tc 3.678 0 Td (I_DGRAM, NI_NAMEREQD, NI_NOFQDN,)Tj -0.6 -1.25 Td (NI_NUMERICHOST, NI_NUMERICSCOPE,)Tj 0 -1.25 TD (NI_NUMERICSERV)Tj /T1_1 1 Tf -3.078 -1.5 Td [(Returns: 0 if OK, nonzer)18(o)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -13.5 -3.25 Td (struct)Tj T* [(netent )-1200(*)]TJ /TT1 1 Tf (getnetbyaddr)Tj /TT0 1 Tf (\(uint32_t)Tj /T1_2 1 Tf 19.2 0 Td (net)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.078 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (type)Tj /TT0 1 Tf (\);)Tj -10.578 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 598)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -26.483 -3.25 Td (struct)Tj T* [(netent )-1200(*)]TJ /TT1 1 Tf (getnetbyname)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj 13.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 598)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -26.483 -3.25 Td (struct)Tj T* [(netent )-1200(*)]TJ /TT1 1 Tf (getnetent)Tj /TT0 1 Tf (\(void\);)Tj 13.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 598)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -26.483 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (getopt)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td [(ar)18(gc)]TJ /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.522 0 Td (har * const)Tj /T1_2 1 Tf 7.2 0 Td [(ar)18(gv)]TJ /TT0 1 Tf ([], const char *)Tj /T1_2 1 Tf (options)Tj /TT0 1 Tf (\);)Tj -9.822 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 662)Tj /TT0 1 Tf -28.125 -1.5 Td (extern int opterr, optind, optopt;)Tj T* (extern char *optarg;)Tj /T1_1 1 Tf 0 -1.5 TD (Returns: the next option character)Tj 0.25 Tc 14.9 0 Td (,o)Tj 0 Tc 1.046 0 Td (r)Tj /TT2 1 Tf 0.645 0 Td (!)Tj /T1_1 1 Tf 0.25 Tc (1w)Tj 0 Tc 2.133 0 Td (hen all options)Tj -14.747 -1.25 Td [(have been pr)18(ocessed)]TJ /TT0 1 Tf -17.477 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (getpeername)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9.6 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 4.262 0 Td (truct sockaddr *restrict)Tj /T1_2 1 Tf 15 0 Td (addr)Tj /TT0 1 Tf (,)Tj -21.662 -1.25 Td (socklen_t *restrict)Tj /T1_2 1 Tf 12 0 Td (alenp)Tj /TT0 1 Tf (\);)Tj -11.7 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 605)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (pid_t)Tj /TT1 1 Tf 6 0 Td (getpgid)Tj /TT0 1 Tf (\(pid_t)Tj /T1_2 1 Tf 8.4 0 Td (pid)Tj /TT0 1 Tf (\);)Tj -0.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 294)Tj -28.125 -1.5 Td [(Returns: pr)18(ocess gr)18(oup ID if OK,)]TJ /TT2 1 Tf 14.702 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -28.202 -3.25 Td (pid_t)Tj /TT1 1 Tf 6 0 Td (getpgrp)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 293)Tj -28.125 -1.5 Td [(Returns: pr)18(ocess gr)18(oup ID of calling pr)18(ocess)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47748 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (857)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm [(char )-2400(*)]TJ /TT1 1 Tf (getenv)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj 13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 210)Tj -28.125 -1.5 Td (Returns: pointer to value associated with)Tj /T1_2 1 Tf 18.335 0 Td (name)Tj /T1_0 1 Tf (,)Tj /TT0 1 Tf -14.358 -1.25 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td (if not found)Tj /TT0 1 Tf -20.127 -3 Td (uid_t)Tj /TT1 1 Tf 6 0 Td (geteuid)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 228)Tj -28.125 -1.5 Td [(Returns: ef)18(fective user ID of calling pr)18(ocess)]TJ /TT0 1 Tf -13.5 -3 Td (gid_t)Tj /TT1 1 Tf 6 0 Td (getgid)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 228)Tj -28.125 -1.5 Td [(Returns: r)18(eal gr)18(oup ID of calling pr)18(ocess)]TJ /TT0 1 Tf -13.5 -3 Td (struct)Tj 0 -1.25 TD [(group )-1800(*)]TJ /TT1 1 Tf (getgrent)Tj /TT0 1 Tf (\(void\);)Tj 13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 183)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or or end of \336le)]TJ /TT0 1 Tf -26.483 -3 Td (struct)Tj T* [(group )-1800(*)]TJ /TT1 1 Tf (getgrgid)Tj /TT0 1 Tf (\(gid_t)Tj /T1_2 1 Tf 15 0 Td (gid)Tj /TT0 1 Tf (\);)Tj -1.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 182)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -26.483 -3 Td (struct)Tj T* [(group )-1800(*)]TJ /TT1 1 Tf (getgrnam)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf (\);)Tj 13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 182)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -26.483 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (getgroups)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 8.4 0 Td (gidsetsize)Tj /TT0 1 Tf 0.6 Tc (,g)Tj 0 Tc 5.689 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td [(gr)18(ouplist)]TJ /TT0 1 Tf ([]\);)Tj -9.589 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 184)Tj -28.125 -1.5 Td [(Returns: number of supplementary gr)18(oup IDs if OK,)]TJ /TT2 1 Tf 3.977 -1.25 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -17.477 -3 Td (struct)Tj T* [(hostent )-600(*)]TJ /TT1 1 Tf (gethostent)Tj /TT0 1 Tf (\(void\);)Tj 13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 597)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -26.483 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (gethostname)Tj /TT0 1 Tf (\(char *)Tj /T1_2 1 Tf (name)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 14.767 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (namelen)Tj /TT0 1 Tf (\);)Tj -9.067 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 188)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td [(char )-2400(*)]TJ /TT1 1 Tf (getlogin)Tj /TT0 1 Tf (\(void\);)Tj 13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 275)Tj -28.125 -1.5 Td (Returns: pointer to string giving login name if OK,)Tj /TT0 1 Tf 3.977 -1.25 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47749 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (856)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (fwide)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 9.778 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (mode)Tj /TT0 1 Tf (\);)Tj -4.078 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 144)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj /T1_1 1 Tf 0 -1.5 TD [(Returns: positive if str)18(eam is wide oriented, negative if str)18(eam)]TJ 3.977 -1.25 Td [(is byte oriented, or 0 if str)18(eam has no orientation)]TJ /TT0 1 Tf -17.477 -2.875 Td (size_t)Tj /TT1 1 Tf 6 0 Td (fwrite)Tj /TT0 1 Tf (\(const void *restrict)Tj /T1_2 1 Tf 16.8 0 Td (ptr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.022 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (size)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.3 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nobj)Tj /TT0 1 Tf (,)Tj -26.122 -1.25 Td (FILE *restrict)Tj /T1_2 1 Tf 9 0 Td (fp)Tj /TT0 1 Tf (\);)Tj -5.7 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 156)Tj -28.125 -1.5 Td (Returns: number of objects written)Tj /TT0 1 Tf -13.5 -2.875 Td (const)Tj 0 -1.25 TD [(char )-2400(*)]TJ /TT1 1 Tf (gai_strerror)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 16.2 0 Td [(err)18(or)]TJ /TT0 1 Tf (\);)Tj -2.7 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 600)Tj -28.125 -1.5 Td [(Returns: a pointer to a string describing the err)18(or)]TJ /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (getaddrinfo)Tj /TT0 1 Tf (\(const char *restrict)Tj /T1_2 1 Tf 19.8 0 Td (host)Tj /TT0 1 Tf (,)Tj -12.6 -1.25 Td (const char *restrict)Tj /T1_2 1 Tf 12.6 0 Td (service)Tj /TT0 1 Tf (,)Tj -12.6 -1.25 Td (const struct addrinfo *restrict)Tj /T1_2 1 Tf 19.2 0 Td (hint)Tj /TT0 1 Tf (,)Tj -19.2 -1.25 Td (struct addrinfo **restrict)Tj /T1_2 1 Tf -0.018 Tc 16.2 0 Td (re)Tj 0 Tc 0.76 0 Td (s)Tj /TT0 1 Tf (\);)Tj -16.66 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 599)Tj /TT0 1 Tf -28.125 -1.25 Td ()Tj /T1_1 1 Tf 0 -1.5 TD (Returns: 0 if OK, nonzer)Tj 0.25 Tc 10.679 0 Td (oe)Tj 0 Tc 1.275 0 Td [(rr)18(or code on err)18(or)]TJ /TT0 1 Tf -25.454 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (getc)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 150)Tj -28.125 -1.5 Td (Returns: next character if OK,)Tj /TT0 1 Tf 13.331 0 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td [(on end of \336le or err)18(or)]TJ /TT0 1 Tf -28.881 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (getchar)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 150)Tj -28.125 -1.5 Td (Returns: next character if OK,)Tj /TT0 1 Tf 13.331 0 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td [(on end of \336le or err)18(or)]TJ /TT0 1 Tf -28.881 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (getchar_unlocked)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 444)Tj -28.125 -1.5 Td (Returns: the next character if OK,)Tj /TT0 1 Tf 14.968 0 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td [(on end of \336le or err)18(or)]TJ /TT0 1 Tf -30.518 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (getc_unlocked)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 444)Tj -28.125 -1.5 Td (Returns: the next character if OK,)Tj /TT0 1 Tf 14.968 0 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td [(on end of \336le or err)18(or)]TJ /TT0 1 Tf -30.518 -2.875 Td [(char )-2400(*)]TJ /TT1 1 Tf (getcwd)Tj /TT0 1 Tf (\(char *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 16.897 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (size)Tj /TT0 1 Tf (\);)Tj -6.997 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 136)Tj -28.125 -1.5 Td (Returns:)Tj /T1_2 1 Tf 3.977 0 Td (buf)Tj /T1_1 1 Tf 1.547 0 Td (if OK,)Tj /TT0 1 Tf 2.886 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -24.56 -2.875 Td (gid_t)Tj /TT1 1 Tf 6 0 Td (getegid)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 228)Tj -28.125 -1.5 Td [(Returns: ef)18(fective gr)18(oup ID of calling pr)18(ocess)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47750 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (855)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (fsetpos)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 10.978 0 Td (onst fpos_t *)Tj /T1_2 1 Tf (pos)Tj /TT0 1 Tf (\);)Tj -3.478 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 158)Tj -28.125 -1.5 Td [(Returns: 0 if OK, nonzer)18(o)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (fstat)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 2.578 0 Td (truct stat *)Tj /T1_2 1 Tf (buf)Tj /TT0 1 Tf 8.682 0 Td (\);)Tj -9.76 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 93)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (fstatat)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.2 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (path)Tj /TT0 1 Tf (,)Tj -16.978 -1.25 Td (struct stat *restrict)Tj /T1_2 1 Tf 13.2 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.097 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj -15.397 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 93)Tj /T1_2 1 Tf -28.125 -1.5 Td (\337ag)Tj /TT0 1 Tf 0.6 Tc (:A)Tj 0 Tc 3.289 0 Td (T_SYMLINK_NOFOLLOW)Tj /T1_0 1 Tf -3.289 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (fsync)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6 0 Td (fd)Tj /TT0 1 Tf (\);)Tj 1.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 81)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (long)Tj /TT1 1 Tf 6 0 Td (ftell)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 158)Tj -28.125 -1.5 Td [(Returns: curr)18(ent \336le position indicator if OK,)]TJ /TT2 1 Tf 20.037 0 Td (!)Tj /T1_0 1 Tf [(1L on err)18(or)]TJ /TT0 1 Tf -33.537 -3 Td (off_t)Tj /TT1 1 Tf 6 0 Td (ftello)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 158)Tj -28.125 -1.5 Td [(Returns: curr)18(ent \336le position indicator if OK,)]TJ /TT0 1 Tf 3.977 -1.25 Td (\(off_t\))Tj /TT2 1 Tf (!)Tj /TT0 1 Tf (1)Tj /T1_0 1 Tf 5.599 0 Td [(on err)18(or)]TJ /TT0 1 Tf -23.076 -3 Td (key_t)Tj /TT1 1 Tf 6 0 Td (ftok)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 13.777 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (id)Tj /TT0 1 Tf (\);)Tj -8.077 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 557)Tj -28.125 -1.5 Td (Returns: key if OK,)Tj /TT0 1 Tf 8.704 0 Td (\(key_t\))Tj /TT2 1 Tf (!)Tj /TT0 1 Tf (1)Tj /T1_0 1 Tf 5.599 0 Td [(on err)18(or)]TJ /TT0 1 Tf -27.803 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (ftruncate)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 8.4 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,o)Tj 0 Tc 2.578 0 Td (ff_t)Tj /T1_2 1 Tf 3 0 Td (length)Tj /TT0 1 Tf (\);)Tj -6.478 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td [(p. 1)55(12)]TJ -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (ftrylockfile)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 443)Tj -28.125 -1.5 Td [(Returns: 0 if OK, nonzer)18(o)-250(if)-250(lock can\325t be acquir)18(ed)]TJ /TT0 1 Tf -13.5 -3 Td (void)Tj /TT1 1 Tf 6 0 Td (funlockfile)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 443)Tj /TT0 1 Tf -41.625 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (futimens)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst struct timespec)Tj /T1_2 1 Tf 12.6 0 Td (times)Tj /TT0 1 Tf ([2]\);)Tj -15.478 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 126)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47751 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (854)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (fprintf)Tj /TT0 1 Tf (\(FILE *restrict)Tj /T1_2 1 Tf 13.8 0 Td (fp)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 4.466 0 Td (..\);)Tj -25.344 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 159)Tj -28.125 -1.5 Td (Returns: number of characters output if OK, negative value)Tj 3.977 -1.25 Td [(if output err)18(or)]TJ /TT0 1 Tf -17.477 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (fputc)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6 0 Td (c)Tj /TT0 1 Tf 0.6 Tc (,F)Tj 0 Tc 2.207 0 Td (ILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj -0.707 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 152)Tj -28.125 -1.5 Td (Returns:)Tj /T1_2 1 Tf 3.977 0 Td (c)Tj /T1_1 1 Tf 0.657 0 Td (if OK,)Tj /TT0 1 Tf 2.886 0 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td [(on err)18(or)]TJ /TT0 1 Tf -23.07 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (fputs)Tj /TT0 1 Tf (\(const char *restrict)Tj /T1_2 1 Tf 16.2 0 Td (str)Tj /TT0 1 Tf 0.6 Tc (,F)Tj 0 Tc 2.911 0 Td (ILE *restrict)Tj /T1_2 1 Tf 8.4 0 Td (fp)Tj /TT0 1 Tf (\);)Tj -20.011 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 153)Tj -28.125 -1.5 Td (Returns: non-negative value if OK,)Tj /TT0 1 Tf 15.622 0 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td [(on err)18(or)]TJ /TT0 1 Tf -31.172 -3.125 Td (size_t)Tj /TT1 1 Tf 6 0 Td (fread)Tj /TT0 1 Tf (\(void *restrict)Tj /T1_2 1 Tf 12.6 0 Td (ptr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.022 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (size)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.3 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (nobj)Tj /TT0 1 Tf (,)Tj -22.522 -1.25 Td (FILE *restrict)Tj /T1_2 1 Tf 9 0 Td (fp)Tj /TT0 1 Tf (\);)Tj -5.1 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 156)Tj -28.125 -1.5 Td [(Returns: number of objects r)18(ead)]TJ /TT0 1 Tf -13.5 -3.125 Td (void)Tj /TT1 1 Tf 6 0 Td (free)Tj /TT0 1 Tf (\(void *)Tj /T1_2 1 Tf (ptr)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 207)Tj /TT0 1 Tf -41.625 -3.125 Td (void)Tj /TT1 1 Tf 6 0 Td (freeaddrinfo)Tj /TT0 1 Tf (\(struct addrinfo *)Tj /T1_2 1 Tf (ai)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 599)Tj /TT0 1 Tf -28.125 -1.5 Td ()Tj -13.5 -3.125 Td [(FILE )-2400(*)]TJ /TT1 1 Tf (freopen)Tj /TT0 1 Tf (\(const char *restrict)Tj /T1_2 1 Tf 23.4 0 Td (path)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.577 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (type)Tj /TT0 1 Tf (,)Tj -28.177 -1.25 Td (FILE *restrict)Tj /T1_2 1 Tf 9 0 Td (fp)Tj /TT0 1 Tf (\);)Tj -6.3 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 148)Tj /T1_2 1 Tf -28.125 -1.5 Td (type)Tj /TT0 1 Tf 0.6 Tc (:")Tj 0 Tc 3.522 0 Td (r", "w", "a", "r+", "w+", "a+")Tj /T1_1 1 Tf -3.522 -1.5 Td (Returns: \336le pointer if OK,)Tj /TT0 1 Tf 11.958 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -28.108 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (fscanf)Tj /TT0 1 Tf (\(FILE *restrict)Tj /T1_2 1 Tf 13.2 0 Td (fp)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 4.466 0 Td (..\);)Tj -24.744 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 162)Tj -28.125 -1.5 Td (Returns: number of input items assigned,)Tj /TT0 1 Tf 18.524 0 Td (EOF)Tj /T1_1 1 Tf 2.05 0 Td (if input)Tj -16.597 -1.25 Td [(err)18(or or end of \336le befor)]TJ 0.25 Tc 10.597 0 Td (ea)Tj 0 Tc 1.229 0 Td (ny conversion)Tj /TT0 1 Tf -29.303 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (fseek)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf 0.6 Tc (,l)Tj 0 Tc 9.778 0 Td (ong)Tj /T1_2 1 Tf 2.4 0 Td (offset)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.911 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (whence)Tj /TT0 1 Tf (\);)Tj -10.389 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 158)Tj /T1_2 1 Tf -28.125 -1.5 Td (whence)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 4.763 0 Td (EEK_SET, SEEK_CUR, SEEK_END)Tj /T1_1 1 Tf -4.763 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.125 Td (int)Tj /TT1 1 Tf 6 0 Td (fseeko)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf 0.6 Tc (,o)Tj 0 Tc 10.378 0 Td (ff_t)Tj /T1_2 1 Tf 3 0 Td (offset)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.911 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (whence)Tj /TT0 1 Tf (\);)Tj -11.589 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 158)Tj /T1_2 1 Tf -28.125 -1.5 Td (whence)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 4.763 0 Td (EEK_SET, SEEK_CUR, SEEK_END)Tj /T1_1 1 Tf -4.763 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47752 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (853)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (fflush)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 147)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT0 1 Tf 7.613 0 Td (EOF)Tj /T1_0 1 Tf 2.05 0 Td [(on err)18(or)]TJ /TT0 1 Tf -23.163 -2.8 Td (int)Tj /TT1 1 Tf 6 0 Td (fgetc)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 150)Tj -28.125 -1.5 Td (Returns: next character if OK,)Tj /TT0 1 Tf 13.331 0 Td (EOF)Tj /T1_0 1 Tf 2.05 0 Td [(on end of \336le or err)18(or)]TJ /TT0 1 Tf -28.881 -2.8 Td (int)Tj /TT1 1 Tf 6 0 Td (fgetpos)Tj /TT0 1 Tf (\(FILE *restrict)Tj /T1_2 1 Tf 13.8 0 Td (fp)Tj /TT0 1 Tf 0.6 Tc (,f)Tj 0 Tc 2.578 0 Td (pos_t *restrict)Tj /T1_2 1 Tf 9.6 0 Td (pos)Tj /TT0 1 Tf (\);)Tj -18.478 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 158)Tj -28.125 -1.5 Td [(Returns: 0 if OK, nonzer)18(o)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -13.5 -2.8 Td [(char )-2400(*)]TJ /TT1 1 Tf (fgets)Tj /TT0 1 Tf (\(char *restrict)Tj /T1_2 1 Tf 18.6 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.097 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (n)Tj /TT0 1 Tf 0.6 Tc (,F)Tj 0 Tc 2.356 0 Td (ILE *restrict)Tj /T1_2 1 Tf 8.4 0 Td (fp)Tj /TT0 1 Tf (\);)Tj -20.753 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 152)Tj -28.125 -1.5 Td (Returns:)Tj /T1_2 1 Tf 3.977 0 Td (buf)Tj /T1_0 1 Tf 1.547 0 Td (if OK,)Tj /TT0 1 Tf 2.886 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on end of \336le or err)18(or)]TJ /TT0 1 Tf -24.56 -2.8 Td (int)Tj /TT1 1 Tf 6 0 Td (fileno)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 164)Tj -28.125 -1.5 Td [(Returns: \336le descriptor associated with the str)18(eam,)]TJ /TT2 1 Tf 22.568 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -36.068 -2.8 Td (void)Tj /TT1 1 Tf 6 0 Td (flockfile)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 443)Tj /TT0 1 Tf -41.625 -2.8 Td [(FILE )-2400(*)]TJ /TT1 1 Tf (fmemopen)Tj /TT0 1 Tf (\(void *restrict)Tj /T1_2 1 Tf 20.4 0 Td (buf)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.097 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (size)Tj /TT0 1 Tf (,)Tj -15.697 -1.25 Td (const char *restrict)Tj /T1_2 1 Tf 12.6 0 Td (type)Tj /TT0 1 Tf (\);)Tj -10.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 171)Tj /T1_2 1 Tf -28.125 -1.5 Td (type)Tj /TT0 1 Tf 0.6 Tc (:")Tj 0 Tc 3.522 0 Td (r", "w", "a", "r+", "w+", "a+")Tj /T1_0 1 Tf -3.522 -1.5 Td [(Returns: str)18(eam pointer if OK,)]TJ /TT0 1 Tf 13.572 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -29.722 -2.8 Td [(FILE )-2400(*)]TJ /TT1 1 Tf (fopen)Tj /TT0 1 Tf (\(const char *restrict)Tj /T1_2 1 Tf 22.2 0 Td (path)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 3.577 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (type)Tj /TT0 1 Tf (\);)Tj -24.277 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 148)Tj /T1_2 1 Tf -28.125 -1.5 Td (type)Tj /TT0 1 Tf 0.6 Tc (:")Tj 0 Tc 3.522 0 Td (r", "w", "a", "r+", "w+", "a+")Tj /T1_0 1 Tf -3.522 -1.5 Td (Returns: \336le pointer if OK,)Tj /TT0 1 Tf 11.958 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -28.108 -2.8 Td (pid_t)Tj /TT1 1 Tf 6 0 Td (fork)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 229)Tj -28.125 -1.5 Td [(Returns: 0 in child, pr)18(ocess ID of child in par)18(ent,)]TJ /TT2 1 Tf 21.561 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -35.061 -2.8 Td (long)Tj /TT1 1 Tf 6 0 Td (fpathconf)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 8.4 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (name)Tj /TT0 1 Tf (\);)Tj -5.278 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 42)Tj /T1_2 1 Tf -28.125 -1.5 Td (name)Tj /TT0 1 Tf 0.6 Tc (:_)Tj 0 Tc 3.967 0 Td (PC_ASYNC_IO, _PC_CHOWN_RESTRICTED,)Tj -0.6 -1.25 Td (_PC_FILESIZEBITS, _PC_LINK_MAX,)Tj 0 -1.25 TD (_PC_MAX_CANON, _PC_MAX_INPUT,)Tj T* (_PC_NAME_MAX, _PC_NO_TRUNC, _PC_PATH_MAX,)Tj T* (_PC_PIPE_BUF, _PC_PRIO_IO, _PC_SYMLINK_MAX,)Tj T* (_PC_SYNC_IO, _PC_TIMESTAMP_RESOLUTION,)Tj T* (_PC_2_SYMLINKS, _PC_VDISABLE)Tj /T1_0 1 Tf -3.367 -1.5 Td [(Returns: corr)18(esponding value if OK,)]TJ /TT2 1 Tf 16.235 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47753 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (852)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (fcntl)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (cmd)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 3.485 0 Td (.. /* int)Tj /T1_2 1 Tf 6 0 Td [(ar)18(g)]TJ /TT0 1 Tf 1.915 0 Td (*/ \);)Tj -14.278 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 82)Tj /T1_2 1 Tf -28.125 -1.5 Td (cmd)Tj /TT0 1 Tf 0.6 Tc (:F)Tj 0 Tc 3.485 0 Td (_DUPFD, F_DUPFD_CLOEXEC, F_GETFD,)Tj -0.6 -1.25 Td (F_SETFD, F_GETFL, F_SETFL, F_GETOWN,)Tj 0 -1.25 TD (F_SETOWN, F_GETLK, F_SETLK, F_SETLKW)Tj /T1_1 1 Tf -2.885 -1.5 Td (Returns: depends on)Tj /T1_2 1 Tf 9.392 0 Td (cmd)Tj /T1_1 1 Tf 1.935 0 Td (if OK,)Tj /TT2 1 Tf 2.886 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -27.713 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (fdatasync)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 8.4 0 Td (fd)Tj /TT0 1 Tf (\);)Tj -0.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 81)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ -7.613 -1.5 Td (Platforms: Linux 3.2.0, Solaris 10)Tj /TT0 1 Tf -13.5 -2.875 Td (void)Tj /TT1 1 Tf 6 0 Td (FD_CLR)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,f)Tj 0 Tc 2.578 0 Td (d_set *)Tj /T1_2 1 Tf (fdset)Tj /TT0 1 Tf (\);)Tj -1.678 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 503)Tj /TT0 1 Tf -41.625 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (FD_ISSET)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,f)Tj 0 Tc 2.578 0 Td (d_set *)Tj /T1_2 1 Tf (fdset)Tj /TT0 1 Tf (\);)Tj -2.878 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 503)Tj -28.125 -1.5 Td (Returns: nonzer)Tj 0.25 Tc 7.043 0 Td (oi)Tj 0 Tc 1.087 0 Td (f)Tj /T1_2 1 Tf 0.583 0 Td (fd)Tj /T1_1 1 Tf 1.028 0 Td (is in set, 0 otherwise)Tj /TT0 1 Tf -23.241 -2.875 Td [(FILE )-2400(*)]TJ /TT1 1 Tf (fdopen)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 12.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (type)Tj /TT0 1 Tf (\);)Tj -1.678 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 148)Tj /T1_2 1 Tf -28.125 -1.5 Td (type)Tj /TT0 1 Tf 0.6 Tc (:")Tj 0 Tc 3.522 0 Td (r", "w", "a", "r+", "w+", "a+")Tj /T1_1 1 Tf -3.522 -1.5 Td (Returns: \336le pointer if OK,)Tj /TT0 1 Tf 11.958 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -28.108 -2.875 Td [(DIR )-3000(*)]TJ /TT1 1 Tf (fdopendir)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 14.4 0 Td (fd)Tj /TT0 1 Tf (\);)Tj -0.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 130)Tj -28.125 -1.5 Td (Returns: pointer if OK,)Tj /TT0 1 Tf 10.333 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -26.483 -2.875 Td (void)Tj /TT1 1 Tf 6 0 Td (FD_SET)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,f)Tj 0 Tc 2.578 0 Td (d_set *)Tj /T1_2 1 Tf (fdset)Tj /TT0 1 Tf (\);)Tj -1.678 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 503)Tj /TT0 1 Tf -41.625 -2.875 Td (void)Tj /TT1 1 Tf 6 0 Td (FD_ZERO)Tj /TT0 1 Tf (\(fd_set *)Tj /T1_2 1 Tf (fdset)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 503)Tj /TT0 1 Tf -41.625 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (feof)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 151)Tj -28.125 -1.5 Td (Returns: nonzer)Tj 0.25 Tc 7.043 0 Td (o\()Tj 0 Tc 1.129 0 Td [(tr)8(ue\) if end of \336le on str)18(eam,)]TJ 0.25 Tc -4.195 -1.25 Td (0\()Tj 0 Tc 1.083 0 Td (false\) otherwise)Tj /TT0 1 Tf -18.56 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (ferror)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 151)Tj -28.125 -1.5 Td (Returns: nonzer)Tj 0.25 Tc 7.043 0 Td (o\()Tj 0 Tc 1.129 0 Td [(tr)8(ue\) if err)18(or on str)18(eam, 0 \(false\) otherwise)]TJ /TT0 1 Tf -21.672 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (fexecve)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.2 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (har *const)Tj /T1_2 1 Tf 6.6 0 Td [(ar)18(gv)]TJ /TT0 1 Tf ([], char *const)Tj /T1_2 1 Tf 11.415 0 Td (envp)Tj /TT0 1 Tf ([]\);)Tj -20.293 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 249)Tj -28.125 -1.5 Td (Returns:)Tj /TT2 1 Tf 3.977 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)74(,)-250(no)-250(r)18(eturn on success)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47754 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (851)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (void)Tj /TT1 1 Tf 6 0 Td (_exit)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6 0 Td (status)Tj /TT0 1 Tf (\);)Tj 1.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 198)Tj -28.125 -1.5 Td [(This function never r)18(eturns)]TJ /TT0 1 Tf -13.5 -3.25 Td (void)Tj /TT1 1 Tf 6 0 Td (exit)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 5.4 0 Td (status)Tj /TT0 1 Tf (\);)Tj 2.1 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 198)Tj -28.125 -1.5 Td [(This function never r)18(eturns)]TJ /TT0 1 Tf -13.5 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (faccessat)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 8.4 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 10.177 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (mode)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.911 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj -21.166 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 102)Tj /T1_2 1 Tf -28.125 -1.5 Td (mode)Tj /TT0 1 Tf 0.6 Tc (:R)Tj 0 Tc 3.911 0 Td (_OK, W_OK, X_OK, F_OK)Tj /T1_2 1 Tf -3.911 -1.5 Td (\337ag)Tj /TT0 1 Tf 0.6 Tc (:A)Tj 0 Tc 3.289 0 Td (T_EACCESS)Tj /T1_0 1 Tf -3.289 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (fchdir)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (fd)Tj /TT0 1 Tf (\);)Tj 0.9 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 135)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (fchmod)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,m)Tj 0 Tc 2.578 0 Td (ode_t)Tj /T1_2 1 Tf 3.6 0 Td (mode)Tj /TT0 1 Tf (\);)Tj -5.278 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 106)Tj /T1_2 1 Tf -28.125 -1.5 Td (mode)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 3.911 0 Td (_IS)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (UG)Tj 1.2 0.04 Td (])Tj 0.6 -0.04 Td (ID, S_ISVTX,)Tj -4.8 -1.25 Td (S_I)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (RWX)Tj 1.8 0.04 Td (])Tj 0.6 -0.04 Td (\(USR|GRP|OTH\))Tj /T1_0 1 Tf -8.111 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (fchmodat)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,m)Tj 0 Tc 10.177 0 Td (ode_t)Tj /T1_2 1 Tf 3.6 0 Td (mode)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 3.911 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj -22.366 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 106)Tj /T1_2 1 Tf -28.125 -1.5 Td (mode)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 3.911 0 Td (_IS)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (UG)Tj 1.2 0.04 Td (])Tj 0.6 -0.04 Td (ID, S_ISVTX,)Tj -4.8 -1.25 Td (S_I)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (RWX)Tj 1.8 0.04 Td (])Tj 0.6 -0.04 Td (\(USR|GRP|OTH\))Tj /T1_2 1 Tf -8.111 -1.5 Td (\337ag)Tj /TT0 1 Tf 0.6 Tc (:A)Tj 0 Tc 3.289 0 Td (T_SYMLINK_NOFOLLOW)Tj /T1_0 1 Tf -3.289 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (fchown)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6.6 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,u)Tj 0 Tc 2.578 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (owner)Tj /TT0 1 Tf 0.6 Tc (,g)Tj 0 Tc 4.3 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td [(gr)18(oup)]TJ /TT0 1 Tf (\);)Tj -11.978 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 109)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (fchownat)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.8 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,u)Tj 0 Tc 10.177 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (owner)Tj /TT0 1 Tf (,)Tj -18.155 -1.25 Td (gid_t)Tj /T1_2 1 Tf 3.6 0 Td [(gr)18(oup)]TJ /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 4.171 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ag)Tj /TT0 1 Tf (\);)Tj -7.471 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 109)Tj /T1_2 1 Tf -28.125 -1.5 Td (\337ag)Tj /TT0 1 Tf 0.6 Tc (:A)Tj 0 Tc 3.289 0 Td (T_SYMLINK_NOFOLLOW)Tj /T1_0 1 Tf -3.289 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (fclose)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 150)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT0 1 Tf 7.613 0 Td (EOF)Tj /T1_0 1 Tf 2.05 0 Td [(on err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47755 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (850)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (void)Tj /TT1 1 Tf 6 0 Td (endnetent)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 598)Tj /TT0 1 Tf -41.625 -2.875 Td (void)Tj /TT1 1 Tf 6 0 Td (endprotoent)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 598)Tj /TT0 1 Tf -41.625 -2.875 Td (void)Tj /TT1 1 Tf 6 0 Td (endpwent)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 180)Tj /TT0 1 Tf -41.625 -2.875 Td (void)Tj /TT1 1 Tf 6 0 Td (endservent)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 599)Tj /TT0 1 Tf -41.625 -2.875 Td (void)Tj /TT1 1 Tf 6 0 Td (endspent)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 182)Tj -28.125 -1.5 Td (Platforms: Linux 3.2.0, Solaris 10)Tj /TT0 1 Tf -13.5 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (execl)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 14.377 0 Td (onst char *)Tj /T1_2 1 Tf [(ar)18(g0)]TJ /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 10.215 0 Td (..)Tj -20.992 -1.25 Td (/* \(char *\) 0 */ \);)Tj 3.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 249)Tj -28.125 -1.5 Td (Returns:)Tj /TT2 1 Tf 3.977 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)74(,)-250(no)-250(r)18(eturn on success)]TJ /TT0 1 Tf -17.477 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (execle)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 14.977 0 Td (onst char *)Tj /T1_2 1 Tf [(ar)18(g0)]TJ /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 10.215 0 Td (.. /* \(char *\) 0,)Tj -20.992 -1.25 Td (char *const)Tj /T1_2 1 Tf 7.2 0 Td (envp)Tj /TT0 1 Tf ([] */ \);)Tj -3.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 249)Tj -28.125 -1.5 Td (Returns:)Tj /TT2 1 Tf 3.977 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)74(,)-250(no)-250(r)18(eturn on success)]TJ /TT0 1 Tf -17.477 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (execlp)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (\336lename)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 16.562 0 Td (onst char *)Tj /T1_2 1 Tf [(ar)18(g0)]TJ /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 10.215 0 Td (..)Tj -22.577 -1.25 Td (/* \(char *\) 0 */ \);)Tj 3.3 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 249)Tj -28.125 -1.5 Td (Returns:)Tj /TT2 1 Tf 3.977 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)74(,)-250(no)-250(r)18(eturn on success)]TJ /TT0 1 Tf -17.477 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (execv)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 14.377 0 Td (har *const)Tj /T1_2 1 Tf 6.6 0 Td [(ar)18(gv)]TJ /TT0 1 Tf ([]\);)Tj -13.477 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 249)Tj -28.125 -1.5 Td (Returns:)Tj /TT2 1 Tf 3.977 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)74(,)-250(no)-250(r)18(eturn on success)]TJ /TT0 1 Tf -17.477 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (execve)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 14.977 0 Td (har *const)Tj /T1_2 1 Tf 6.6 0 Td [(ar)18(gv)]TJ /TT0 1 Tf ([],)Tj -17.377 -1.25 Td (char *const)Tj /T1_2 1 Tf 7.2 0 Td (envp)Tj /TT0 1 Tf ([]\);)Tj -3.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 249)Tj -28.125 -1.5 Td (Returns:)Tj /TT2 1 Tf 3.977 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)74(,)-250(no)-250(r)18(eturn on success)]TJ /TT0 1 Tf -17.477 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (execvp)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (\336lename)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 16.562 0 Td (har *const)Tj /T1_2 1 Tf 6.6 0 Td [(ar)18(gv)]TJ /TT0 1 Tf ([]\);)Tj -15.662 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 249)Tj -28.125 -1.5 Td (Returns:)Tj /TT2 1 Tf 3.977 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)74(,)-250(no)-250(r)18(eturn on success)]TJ /TT0 1 Tf -17.477 -2.875 Td (void)Tj /TT1 1 Tf 6 0 Td (_Exit)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6 0 Td (status)Tj /TT0 1 Tf (\);)Tj 1.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 198)Tj -28.125 -1.5 Td [(This function never r)18(eturns)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47756 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (849)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (unsigned)Tj 0 -1.25 TD (int)Tj /TT1 1 Tf 6 0 Td (CMSG_LEN)Tj /TT0 1 Tf (\(unsigned int)Tj /T1_2 1 Tf 13.2 0 Td (nbytes)Tj /TT0 1 Tf (\);)Tj -5.7 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 645)Tj -28.125 -1.5 Td (Returns: size to allocate for data object)Tj /T1_2 1 Tf 17.213 0 Td (nbytes)Tj /T1_0 1 Tf 2.88 0 Td [(lar)18(ge)]TJ /TT0 1 Tf -33.593 -2.875 Td (struct)Tj T* [(cmsghdr )-600(*)]TJ /TT1 1 Tf (CMSG_NXTHDR)Tj /TT0 1 Tf (\(struct msghdr *)Tj /T1_2 1 Tf (mp)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 25.278 0 Td (truct cmsghdr *)Tj /T1_2 1 Tf (cp)Tj /TT0 1 Tf (\);)Tj -11.778 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 645)Tj -28.125 -1.5 Td (Returns: pointer to next)Tj /TT0 1 Tf 10.722 0 Td (cmsghdr)Tj /T1_0 1 Tf 4.45 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ea)Tj 0 Tc 1.229 0 Td (ssociated with)Tj -15.914 -1.25 Td (the)Tj /TT0 1 Tf 1.637 0 Td (msghdr)Tj /T1_0 1 Tf 3.85 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (eg)Tj 0 Tc 1.285 0 Td [(iven the curr)18(ent)]TJ /TT0 1 Tf 7.26 0 Td (cmsghdr)Tj /T1_0 1 Tf -17.522 -1.25 Td [(str)8(uctur)18(e, or)]TJ /TT0 1 Tf 5.66 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(if we\325r)18(e)-250(at)-250(the last one)]TJ /TT0 1 Tf -25.787 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (connect)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.2 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.262 0 Td (onst struct sockaddr *)Tj /T1_2 1 Tf (addr)Tj /TT0 1 Tf (,)Tj -6.662 -1.25 Td (socklen_t)Tj /T1_2 1 Tf 6 0 Td (len)Tj /TT0 1 Tf (\);)Tj -3.3 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 605)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (creat)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,m)Tj 0 Tc 14.377 0 Td (ode_t)Tj /T1_2 1 Tf 3.6 0 Td (mode)Tj /TT0 1 Tf (\);)Tj -10.477 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 66)Tj /T1_2 1 Tf -28.125 -1.5 Td (mode)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 3.911 0 Td (_IS)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (UG)Tj 1.2 0.04 Td (])Tj 0.6 -0.04 Td (ID, S_ISVTX,)Tj -4.8 -1.25 Td (S_I)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (RWX)Tj 1.8 0.04 Td (])Tj 0.6 -0.04 Td (\(USR|GRP|OTH\))Tj /T1_0 1 Tf -8.111 -1.5 Td (Returns: \336le descriptor opened for write-only if OK,)Tj /TT2 1 Tf 3.977 -1.25 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -17.477 -2.875 Td [(char )-2400(*)]TJ /TT1 1 Tf (ctermid)Tj /TT0 1 Tf (\(char *)Tj /T1_2 1 Tf (ptr)Tj /TT0 1 Tf (\);)Tj 13.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 694)Tj -28.125 -1.5 Td [(Returns: pointer to name of contr)18(olling terminal on success,)]TJ 3.977 -1.25 Td [(pointer to empty string on err)18(or)]TJ /TT0 1 Tf -17.477 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (dprintf)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 7.2 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 2.578 0 Td (onst char *restrict)Tj /T1_2 1 Tf 12 0 Td (format)Tj /TT0 1 Tf 0.6 Tc (,.)Tj 0 Tc 4.466 0 Td (..\);)Tj -18.744 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 159)Tj -28.125 -1.5 Td (Returns: number of characters output if OK, negative value)Tj 3.977 -1.25 Td [(if output err)18(or)]TJ /TT0 1 Tf -17.477 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (dup)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 4.8 0 Td (fd)Tj /TT0 1 Tf (\);)Tj 2.7 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 79)Tj -28.125 -1.5 Td (Returns: new \336le descriptor if OK,)Tj /TT2 1 Tf 15.395 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -28.895 -2.875 Td (int)Tj /TT1 1 Tf 6 0 Td (dup2)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 5.4 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 2.578 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (fd2)Tj /TT0 1 Tf (\);)Tj -2.278 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 79)Tj -28.125 -1.5 Td (Returns: new \336le descriptor if OK,)Tj /TT2 1 Tf 15.395 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -28.895 -2.875 Td (void)Tj /TT1 1 Tf 6 0 Td (endgrent)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 183)Tj /TT0 1 Tf -41.625 -2.875 Td (void)Tj /TT1 1 Tf 6 0 Td (endhostent)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 597)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47757 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (848)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (clock_gettime)Tj /TT0 1 Tf (\(clockid_t)Tj /T1_2 1 Tf 14.4 0 Td (clock_id)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 5.058 0 Td (truct timespec *)Tj /T1_2 1 Tf (tsp)Tj /TT0 1 Tf (\);)Tj -11.958 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 189)Tj /T1_2 1 Tf -28.125 -1.5 Td (clock_id)Tj /TT0 1 Tf 0.6 Tc (:C)Tj 0 Tc 5.058 0 Td (LOCK_REALTIME, CLOCK_MONOTONIC,)Tj -0.6 -1.25 Td (CLOCK_PROCESS_CPUTIME_ID,)Tj 0 -1.25 TD (CLOCK_THREAD_CPUTIME_ID)Tj /T1_1 1 Tf -4.458 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (clock_nanosleep)Tj /TT0 1 Tf (\(clockid_t)Tj /T1_2 1 Tf 15.6 0 Td (clock_id)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 5.058 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (\337ags)Tj /TT0 1 Tf (,)Tj -12.858 -1.25 Td (const struct timespec *)Tj /T1_2 1 Tf -0.018 Tc (re)Tj 0 Tc 14.56 0 Td (qtp)Tj /TT0 1 Tf (,)Tj -14.56 -1.25 Td (struct timespec *)Tj /T1_2 1 Tf -0.018 Tc (re)Tj 0 Tc 10.96 0 Td (mtp)Tj /TT0 1 Tf (\);)Tj -13.06 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 375)Tj /T1_2 1 Tf -28.125 -1.5 Td (clock_id)Tj /TT0 1 Tf 0.6 Tc (:C)Tj 0 Tc 5.058 0 Td (LOCK_REALTIME, CLOCK_MONOTONIC,)Tj -0.6 -1.25 Td (CLOCK_PROCESS_CPUTIME_ID,)Tj T* (CLOCK_THREAD_CPUTIME_ID)Tj /T1_2 1 Tf -4.458 -1.5 Td (\337ags)Tj /TT0 1 Tf 0.6 Tc (:T)Tj 0 Tc 3.678 0 Td (IMER_ABSTIME)Tj /T1_1 1 Tf -3.678 -1.5 Td [(Returns: 0 if slept for r)18(equested time, err)18(or number on failur)18(e)]TJ /TT0 1 Tf -13.5 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (clock_settime)Tj /TT0 1 Tf (\(clockid_t)Tj /T1_2 1 Tf 14.4 0 Td (clock_id)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 5.058 0 Td (onst struct timespec *)Tj /T1_2 1 Tf (tsp)Tj /TT0 1 Tf (\);)Tj -11.958 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 190)Tj /T1_2 1 Tf -28.125 -1.5 Td (clock_id)Tj /TT0 1 Tf 0.6 Tc (:C)Tj 0 Tc 5.058 0 Td (LOCK_REALTIME, CLOCK_MONOTONIC,)Tj -0.6 -1.25 Td (CLOCK_PROCESS_CPUTIME_ID,)Tj T* (CLOCK_THREAD_CPUTIME_ID)Tj /T1_1 1 Tf -4.458 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (close)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 6 0 Td (fd)Tj /TT0 1 Tf (\);)Tj 1.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 66)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (int)Tj /TT1 1 Tf 6 0 Td (closedir)Tj /TT0 1 Tf (\(DIR *)Tj /T1_2 1 Tf (dp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 130)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3.25 Td (void)Tj /TT1 1 Tf 6 0 Td (closelog)Tj /TT0 1 Tf (\(void\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 470)Tj /TT0 1 Tf -41.625 -3.25 Td (unsigned)Tj T* [(char )-2400(*)]TJ /TT1 1 Tf (CMSG_DATA)Tj /TT0 1 Tf (\(struct cmsghdr *)Tj /T1_2 1 Tf (cp)Tj /TT0 1 Tf (\);)Tj 13.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 645)Tj -28.125 -1.5 Td (Returns: pointer to data associated with)Tj /TT0 1 Tf 17.834 0 Td (cmsghdr)Tj /T1_1 1 Tf 4.45 0 Td [(str)8(uctur)18(e)]TJ /TT0 1 Tf -35.784 -3.25 Td (struct)Tj T* [(cmsghdr )-600(*)]TJ /TT1 1 Tf (CMSG_FIRSTHDR)Tj /TT0 1 Tf (\(struct msghdr *)Tj /T1_2 1 Tf (mp)Tj /TT0 1 Tf (\);)Tj 13.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 645)Tj -28.125 -1.5 Td (Returns: pointer to \336rst)Tj /TT0 1 Tf 10.569 0 Td (cmsghdr)Tj /T1_1 1 Tf 4.45 0 Td [(str)8(uctur)]TJ 0.25 Tc 3.49 0 Td (ea)Tj 0 Tc 1.229 0 Td (ssociated with)Tj -15.761 -1.25 Td (the)Tj /TT0 1 Tf 1.637 0 Td (msghdr)Tj /T1_1 1 Tf 3.85 0 Td [(str)8(uctur)18(e, or)]TJ /TT0 1 Tf 5.66 0 Td (NULL)Tj /T1_1 1 Tf 2.65 0 Td (if none exists)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47758 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Appendix )-250(A)]TJ 34.618 0 Td [(Function )-250(Pr)18(ototypes)]TJ /T1_1 1 Tf 11.215 0 Td (847)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (bind)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 5.4 0 Td (sockfd)Tj /TT0 1 Tf 0.6 Tc (,c)Tj 0 Tc 4.262 0 Td (onst struct sockaddr *)Tj /T1_2 1 Tf (addr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 16.833 0 Td (ocklen_t)Tj /T1_2 1 Tf 5.4 0 Td (len)Tj /TT0 1 Tf (\);)Tj -24.395 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 604)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.8 Td [(void )-2400(*)]TJ /TT1 1 Tf (calloc)Tj /TT0 1 Tf (\(size_t)Tj /T1_2 1 Tf 14.4 0 Td (nobj)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 3.541 0 Td (ize_t)Tj /T1_2 1 Tf 3.6 0 Td (size)Tj /TT0 1 Tf (\);)Tj -8.041 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 207)Tj -28.125 -1.5 Td (Returns: non-null pointer if OK,)Tj /TT0 1 Tf 14.393 0 Td (NULL)Tj /T1_0 1 Tf 2.65 0 Td [(on err)18(or)]TJ /TT0 1 Tf -30.543 -2.8 Td (speed_t)Tj /TT1 1 Tf 6 0 Td (cfgetispeed)Tj /TT0 1 Tf (\(const struct termios *)Tj /T1_2 1 Tf (termptr)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 692)Tj -28.125 -1.5 Td (Returns: baud rate value)Tj /TT0 1 Tf -13.5 -2.8 Td (speed_t)Tj /TT1 1 Tf 6 0 Td (cfgetospeed)Tj /TT0 1 Tf (\(const struct termios *)Tj /T1_2 1 Tf (termptr)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 692)Tj -28.125 -1.5 Td (Returns: baud rate value)Tj /TT0 1 Tf -13.5 -2.8 Td (int)Tj /TT1 1 Tf 6 0 Td (cfsetispeed)Tj /TT0 1 Tf (\(struct termios *)Tj /T1_2 1 Tf (termptr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 21.711 0 Td (peed_t)Tj /T1_2 1 Tf 4.2 0 Td (speed)Tj /TT0 1 Tf (\);)Tj -18.411 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 692)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.8 Td (int)Tj /TT1 1 Tf 6 0 Td (cfsetospeed)Tj /TT0 1 Tf (\(struct termios *)Tj /T1_2 1 Tf (termptr)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 21.711 0 Td (peed_t)Tj /T1_2 1 Tf 4.2 0 Td (speed)Tj /TT0 1 Tf (\);)Tj -18.411 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 692)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.8 Td (int)Tj /TT1 1 Tf 6 0 Td (chdir)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 135)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.8 Td (int)Tj /TT1 1 Tf 6 0 Td (chmod)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,m)Tj 0 Tc 14.377 0 Td (ode_t)Tj /T1_2 1 Tf 3.6 0 Td (mode)Tj /TT0 1 Tf (\);)Tj -10.477 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 106)Tj /T1_2 1 Tf -28.125 -1.5 Td (mode)Tj /TT0 1 Tf 0.6 Tc (:S)Tj 0 Tc 3.911 0 Td (_IS)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (UG)Tj 1.2 0.04 Td (])Tj 0.6 -0.04 Td (ID, S_ISVTX,)Tj -4.8 -1.25 Td (S_I)Tj 1.8 0.04 Td ([)Tj 0.6 -0.04 Td (RWX)Tj 1.8 0.04 Td (])Tj 0.6 -0.04 Td (\(USR|GRP|OTH\))Tj /T1_0 1 Tf -8.111 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.8 Td (int)Tj /TT1 1 Tf 6 0 Td (chown)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,u)Tj 0 Tc 14.377 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td (owner)Tj /TT0 1 Tf 0.6 Tc (,g)Tj 0 Tc 4.3 0 Td (id_t)Tj /T1_2 1 Tf 3 0 Td [(gr)18(oup)]TJ /TT0 1 Tf (\);)Tj -17.177 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 109)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -2.8 Td (void)Tj /TT1 1 Tf 6 0 Td (clearerr)Tj /TT0 1 Tf (\(FILE *)Tj /T1_2 1 Tf (fp)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 151)Tj /TT0 1 Tf -41.625 -2.8 Td (int)Tj /TT1 1 Tf 6 0 Td (clock_getres)Tj /TT0 1 Tf (\(clockid_t)Tj /T1_2 1 Tf 13.8 0 Td (clock_id)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 5.058 0 Td (truct timespec *)Tj /T1_2 1 Tf (tsp)Tj /TT0 1 Tf (\);)Tj -11.358 -1.5 Td ()Tj /T1_0 1 Tf 28.125 0 Td (p. 190)Tj /T1_2 1 Tf -28.125 -1.5 Td (clock_id)Tj /TT0 1 Tf 0.6 Tc (:C)Tj 0 Tc 5.058 0 Td (LOCK_REALTIME, CLOCK_MONOTONIC,)Tj -0.6 -1.25 Td (CLOCK_PROCESS_CPUTIME_ID,)Tj 0 -1.25 TD (CLOCK_THREAD_CPUTIME_ID)Tj /T1_0 1 Tf -4.458 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_0 1 Tf [(1)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47759 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (846)Tj /T1_1 1 Tf 3.5 0 Td [(Function )-250(Pr)18(ototypes )]TJ 38.096 0 Td [(Appendix)-500(A)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 7.9995 0 0 7.9995 129.5922 670.9597 Tm (int)Tj /TT1 1 Tf 6 0 Td (access)Tj /TT0 1 Tf (\(const char *)Tj /T1_2 1 Tf (path)Tj /TT0 1 Tf 0.6 Tc (,i)Tj 0 Tc 14.977 0 Td (nt)Tj /T1_2 1 Tf 1.8 0 Td (mode)Tj /TT0 1 Tf (\);)Tj -9.277 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 102)Tj /T1_2 1 Tf -28.125 -1.5 Td (mode)Tj /TT0 1 Tf 0.6 Tc (:R)Tj 0 Tc 3.911 0 Td (_OK, W_OK, X_OK, F_OK)Tj /T1_1 1 Tf -3.911 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (aio_cancel)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 9 0 Td (fd)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 2.578 0 Td (truct aiocb *)Tj /T1_2 1 Tf (aiocb)Tj /TT0 1 Tf (\);)Tj -4.078 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 514)Tj -28.125 -1.5 Td (Returns:)Tj /TT0 1 Tf 3.977 0 Td (AIO_ALLDONE)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf 7.1 0 Td (AIO_CANCELED)Tj /T1_1 1 Tf (,)Tj /TT0 1 Tf -7.1 -1.25 Td (AIO_NOTCANCELED)Tj /T1_1 1 Tf 0.25 Tc (,o)Tj 0 Tc 10.046 0 Td (r)Tj /TT2 1 Tf 0.645 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -28.168 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (aio_error)Tj /TT0 1 Tf (\(const struct aiocb *)Tj /T1_2 1 Tf (aiocb)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 513)Tj -28.125 -1.5 Td (Returns: 0 if operation succeeded,)Tj /TT0 1 Tf 15.191 0 Td (EINPROGRESS)Tj /T1_1 1 Tf 6.85 0 Td (if)Tj -18.064 -1.25 Td [(operation is still in pr)18(ogr)18(ess, err)18(or code if)]TJ 0 -1.25 TD (operation failed, or)Tj /TT2 1 Tf 8.712 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -26.189 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (aio_fsync)Tj /TT0 1 Tf (\(int)Tj /T1_2 1 Tf 8.4 0 Td (op)Tj /TT0 1 Tf 0.6 Tc (,s)Tj 0 Tc 2.744 0 Td (truct aiocb *)Tj /T1_2 1 Tf (aiocb)Tj /TT0 1 Tf (\);)Tj -3.644 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 513)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (aio_read)Tj /TT0 1 Tf (\(struct aiocb *)Tj /T1_2 1 Tf (aiocb)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 512)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (ssize_t)Tj /TT1 1 Tf 6 0 Td (aio_return)Tj /TT0 1 Tf (\(const struct aiocb *)Tj /T1_2 1 Tf (aiocb)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 513)Tj -28.125 -1.5 Td [(Returns: r)18(esult of asynchr)18(onous operation,)]TJ /TT2 1 Tf 19.038 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -32.538 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (aio_suspend)Tj /TT0 1 Tf (\(const struct aiocb *const)Tj /T1_2 1 Tf 22.8 0 Td (list)Tj /TT0 1 Tf ([], int)Tj /T1_2 1 Tf 6.078 0 Td (nent)Tj /TT0 1 Tf (,)Tj -21.678 -1.25 Td (const struct timespec *)Tj /T1_2 1 Tf (timeout)Tj /TT0 1 Tf (\);)Tj 0.3 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 514)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (aio_write)Tj /TT0 1 Tf (\(struct aiocb *)Tj /T1_2 1 Tf (aiocb)Tj /TT0 1 Tf (\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 512)Tj -28.125 -1.5 Td (Returns: 0 if OK,)Tj /TT2 1 Tf 7.613 0 Td (!)Tj /T1_1 1 Tf [(1)-250(on)-250(err)18(or)]TJ /TT0 1 Tf -21.113 -3 Td (unsigned)Tj T* (int)Tj /TT1 1 Tf 6 0 Td (alarm)Tj /TT0 1 Tf (\(unsigned int)Tj /T1_2 1 Tf 11.4 0 Td (seconds)Tj /TT0 1 Tf (\);)Tj -3.9 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 338)Tj -28.125 -1.5 Td [(Returns: 0 or number of seconds until pr)18(eviously set alarm)]TJ /TT0 1 Tf -13.5 -3 Td (int)Tj /TT1 1 Tf 6 0 Td (atexit)Tj /TT0 1 Tf (\(void \(*)Tj /T1_2 1 Tf (func)Tj /TT0 1 Tf (\)\(void\)\);)Tj 7.5 -1.5 Td ()Tj /T1_1 1 Tf 28.125 0 Td (p. 200)Tj -28.125 -1.5 Td [(Returns: 0 if OK, nonzer)18(o)-250(on)-250(err)18(or)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47760 0 obj <>stream q /Fm0 Do Q BT /CS0 cs 0 0 0 scn /GS0 gs /TT0 1 Tf 0.0002 Tc -0.0002 Tw 12 0 0 12 218.4731 545.9739 Tm (This page intentionally left blank )Tj ET q 1 0 0 1 47.58 40.02 cm 0 g /GS1 gs 0 Tc 0 Tw /Fm1 Do Q endstream endobj 47761 0 obj <> endobj 47762 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(21.5)]TJ 38.014 0 Td [(Sour)18(ce )-250(Code)]TJ /T1_1 1 Tf 7.819 0 Td (797)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6690.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 129.5922 659.4594 Tm [(40 )-1200(#define)-600(STAT_SRV_INTERN )-1200(0x0500)-1200(/* unexpected internal error */)]TJ 0 -1.189 TD [(41 )-1200(#define)-600(STAT_SRV_NOTSUP )-1200(0x0501)-1200(/* operation not supported */)]TJ T* [(42 )-1200(#define)-600(STAT_SRV_UNAVAIL )-600(0x0502 )-600(/*)-600(service unavailable */)]TJ T* [(43 )-1200(#define)-600(STAT_SRV_BADVER )-1200(0x0503)-1200(/* version not supported */)]TJ T* [(44 )-1200(#define)-600(STAT_SRV_DEVERR )-1200(0x0504)-1200(/* device error */)]TJ 0 -1.189 TD [(45 )-1200(#define)-600(STAT_SRV_TMPERR )-1200(0x0505)-1200(/* temporary error */)]TJ 0 -1.189 TD [(46 )-1200(#define)-600(STAT_SRV_REJECT )-1200(0x0506)-1200(/* server not accepting jobs */)]TJ T* [(47 )-1200(#define)-600(STAT_SRV_TOOBUSY )-600(0x0507 )-600(/*)-600(server too busy */)]TJ T* [(48 )-1200(#define)-600(STAT_SRV_CANCEL )-1200(0x0508)-1200(/* job has been canceled */)]TJ T* [(49 )-1200(#define)-600(STAT_SRV_NOMULTI )-600(0x0509 )-600(/*)-600(multi-doc jobs unsupported */)]TJ 0 -2.021 TD [(50 )-1200(/*)]TJ 0 -1.189 TD [(51 )-1800(*)-600(Operation IDs)]TJ T* [(52 )-1800(*/)]TJ T* [(53 )-1200(#define)-600(OP_PRINT_JOB )-4800(0x02)]TJ T* [(54 )-1200(#define)-600(OP_PRINT_URI )-4800(0x03)]TJ T* [(55 )-1200(#define)-600(OP_VALIDATE_JOB )-3000(0x04)]TJ T* [(56 )-1200(#define)-600(OP_CREATE_JOB )-4200(0x05)]TJ T* [(57 )-1200(#define)-600(OP_SEND_DOC )]TJ 20.4 0 Td (0x06)Tj -20.4 -1.189 Td [(58 )-1200(#define)-600(OP_SEND_URI )]TJ 20.4 0 Td (0x07)Tj -20.4 -1.189 Td [(59 )-1200(#define)-600(OP_CANCEL_JOB )-4200(0x08)]TJ T* [(60 )-1200(#define)-600(OP_GET_JOB_ATTR )-3000(0x09)]TJ T* [(61 )-1200(#define)-600(OP_GET_JOBS )]TJ 20.4 0 Td (0x0a)Tj -20.4 -1.189 Td [(62 )-1200(#define)-600(OP_GET_PRINTER_ATTR )-600(0x0b)]TJ T* [(63 )-1200(#define)-600(OP_HOLD_JOB )]TJ 20.4 0 Td (0x0c)Tj -20.4 -1.189 Td [(64 )-1200(#define)-600(OP_RELEASE_JOB )-3600(0x0d)]TJ T* [(65 )-1200(#define)-600(OP_RESTART_JOB )-3600(0x0e)]TJ T* [(66 )-1200(#define)-600(OP_PAUSE_PRINTER )-2400(0x10)]TJ 0 -1.189 TD [(67 )-1200(#define)-600(OP_RESUME_PRINTER )-1800(0x11)]TJ 0 -1.189 TD [(68 )-1200(#define)-600(OP_PURGE_JOBS )-4200(0x12)]TJ 0 -2.021 TD [(69 )-1200(/*)]TJ 0 -1.189 TD [(70 )-1800(*)-600(Attribute Tags.)]TJ T* [(71 )-1800(*/)]TJ T* [(72 )-1200(#define)-600(TAG_OPERATION_ATTR )-1200(0x01)-1200(/* operation attributes tag */)]TJ T* [(73 )-1200(#define)-600(TAG_JOB_ATTR )-4800(0x02)-1200(/* job attributes tag */)]TJ T* [(74 )-1200(#define)-600(TAG_END_OF_ATTR )-3000(0x03)-1200(/* end of attributes tag */)]TJ T* [(75 )-1200(#define)-600(TAG_PRINTER_ATTR )-2400(0x04)-1200(/* printer attributes tag */)]TJ 0 -1.189 TD [(76 )-1200(#define)-600(TAG_UNSUPP_ATTR )-3000(0x05)-1200(/* unsupported attributes tag */)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2545.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_0 1 Tf 9.9988 0 0 9.9988 129.5844 230.4903 Tm [([40 )167(\320 )167(49])]TJ -0.092 Tc 4 0 Td [(We )-207(c)]TJ 0 Tc 2.104 0 Td [(ontinue )-23(to )-23(de\336ne )-23(status )-23(codes.)-522(The )-23(ones )-23(in )-23(the )-23(range)]TJ /TT0 1 Tf 23.849 0 Td (0x500)Tj /T1_0 1 Tf 3.273 0 Td (to)Tj /TT0 1 Tf 1.145 0 Td (0x5ff)Tj /T1_0 1 Tf 3.273 0 Td [(ar)18(e)]TJ -33.644 -1.2 Td [(server )-52(err)18(or )-52(codes.)-552(All )-52(codes )-52(ar)]TJ 0.3021 Tc 14.185 0 Td (ed)Tj 0 Tc 1.392 0 Td [(escribed )-52(in )-52(Sections )-52(13.1.1 )-52(thr)18(ough )-52(13.1.5 )-52(in)]TJ -15.577 -1.2 Td [(RFC 291)55(1.)]TJ -4 -1.6 Td [([50 )167(\320 )167(68])]TJ -0.092 Tc 4 0 Td [(We )-186(d)]TJ 0 Tc 2.25 0 Td [(e\336ne )-2(the )-2(various )-2(operation )-2(IDs )-2(next.)-501(Ther)18(e)-252(is)-252(one )-2(ID )-2(for )-2(each )-2(task )-2(de\336ned)]TJ -2.25 -1.2 Td [(by )-84(IPP )-84(\(see )-84(Section )-84(4.4.15 )-84(in )-84(RFC )-84(291)58(1\). )-334(In)-333(our )-84(example, )-84(we )-84(will )-84(use )-84(only )-84(the)]TJ 0 -1.2 Td (print-job operation.)Tj -4 -1.6 Td [([69 )167(\320 )167(76])-668(The )-50(attribute )-50(tags )-50(delimit )-50(the )-50(attribute )-50(gr)18(oups )-50(in )-50(the )-50(IPP )-50(r)20(equest )-50(and )-50(r)18(esponse)]TJ 4 -1.2 Td [(messages. )-250(The)-250(tag values ar)]TJ 0.25 Tc 12.464 0 Td (ed)Tj 0 Tc 1.34 0 Td (e\336ned in Section 3.5.1 of RFC 2910.)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47763 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (796)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.092 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(We )-184(s)]TJ 0 Tc 2.061 0 Td (tart with the)Tj /TT0 1 Tf 5.717 0 Td (ipp.h)Tj /T1_1 1 Tf 3.25 0 Td (header \336le.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6570.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 1.8 Tc 8.9989 0 0 8.9989 134.9838 647.4213 Tm (1#)Tj 0 Tc 3 0 Td (ifndef _IPP_H)Tj 1.8 Tc -3 -1.189 Td (2#)Tj 0 Tc 3 0 Td (define _IPP_H)Tj 1.8 Tc -3 -1.783 Td (3/)Tj 0 Tc 3 0 Td (*)Tj 2.4 Tc -3 -1.189 Td (4*)Tj 0 Tc 4.2 0 Td (Defines parts of the IPP protocol between the scheduler)Tj 2.4 Tc -4.2 -1.189 Td (5*)Tj 0 Tc 4.2 0 Td [(and the printer.)-1200(Based on RFC2911 and RFC2910.)]TJ 2.4 Tc -4.2 -1.189 Td (6*)Tj 0 Tc 3.6 0 Td (/)Tj 1.8 Tc -3.6 -1.783 Td (7/)Tj 0 Tc 3 0 Td (*)Tj 2.4 Tc -3 -1.189 Td (8*)Tj 0 Tc 4.2 0 Td (Status code classes.)Tj 2.4 Tc -4.2 -1.189 Td (9*)Tj 0 Tc 3.6 0 Td (/)Tj -4.2 -1.189 Td [(10 )-1200(#define)-600(STATCLASS_OK\(x\) )-2400(\(\(x\))-600(>= 0x0000 && \(x\) <= 0x00ff\))]TJ 0 -1.189 TD [(11 )-1200(#define)-600(STATCLASS_INFO\(x\) )-1200(\(\(x\))-600(>= 0x0100 && \(x\) <= 0x01ff\))]TJ T* [(12 )-1200(#define)-600(STATCLASS_REDIR\(x\) )-600(\(\(x\))-600(>= 0x0300 && \(x\) <= 0x03ff\))]TJ 0 -1.189 TD [(13 )-1200(#define)-600(STATCLASS_CLIERR\(x\) \(\(x\) >= 0x0400 && \(x\) <= 0x04ff\))]TJ 0 -1.189 TD [(14 )-1200(#define)-600(STATCLASS_SRVERR\(x\) \(\(x\) >= 0x0500 && \(x\) <= 0x05ff\))]TJ 0 -1.783 TD [(15 )-1200(/*)]TJ 0 -1.189 TD [(16 )-1800(*)-600(Status codes.)]TJ 0 -1.189 TD [(17 )-1800(*/)]TJ 0 -1.189 TD [(18 )-1200(#define)-600(STAT_OK )]TJ 18.6 0 Td [(0x0000)-1200(/* success */)]TJ -18.6 -1.189 Td [(19 )-1200(#define)-600(STAT_OK_ATTRIGN )-1200(0x0001)-1200(/* OK; some attrs ignored */)]TJ 0 -1.189 TD [(20 )-1200(#define)-600(STAT_OK_ATTRCON )-1200(0x0002)-1200(/* OK; some attrs conflicted */)]TJ 0 -1.783 TD [(21 )-1200(#define)-600(STAT_CLI_BADREQ )-1200(0x0400)-1200(/* invalid client request */)]TJ 0 -1.189 TD [(22 )-1200(#define)-600(STAT_CLI_FORBID )-1200(0x0401)-1200(/* request is forbidden */)]TJ 0 -1.189 TD [(23 )-1200(#define)-600(STAT_CLI_NOAUTH )-1200(0x0402)-1200(/* authentication required */)]TJ T* [(24 )-1200(#define)-600(STAT_CLI_NOPERM )-1200(0x0403)-1200(/* client not authorized */)]TJ 0 -1.189 TD [(25 )-1200(#define)-600(STAT_CLI_NOTPOS )-1200(0x0404)-1200(/* request not possible */)]TJ 0 -1.189 TD [(26 )-1200(#define)-600(STAT_CLI_TIMOUT )-1200(0x0405)-1200(/* client too slow */)]TJ 0 -1.189 TD [(27 )-1200(#define)-600(STAT_CLI_NOTFND )-1200(0x0406)-1200(/* no object found for URI */)]TJ 0 -1.189 TD [(28 )-1200(#define)-600(STAT_CLI_OBJGONE )-600(0x0407 )-600(/*)-600(object no longer available */)]TJ 0 -1.189 TD [(29 )-1200(#define)-600(STAT_CLI_TOOBIG )-1200(0x0408)-1200(/* requested entity too big */)]TJ 0 -1.189 TD [(30 )-1200(#define)-600(STAT_CLI_TOOLNG )-1200(0x0409)-1200(/* attribute value too large */)]TJ 0 -1.189 TD [(31 )-1200(#define)-600(STAT_CLI_BADFMT )-1200(0x040a)-1200(/* unsupported doc format */)]TJ 0 -1.189 TD [(32 )-1200(#define)-600(STAT_CLI_NOTSUP )-1200(0x040b)-1200(/* attributes not supported */)]TJ 0 -1.189 TD [(33 )-1200(#define)-600(STAT_CLI_NOSCHM )-1200(0x040c)-1200(/* URI scheme not supported */)]TJ 0 -1.189 TD [(34 )-1200(#define)-600(STAT_CLI_NOCHAR )-1200(0x040d)-1200(/* charset not supported */)]TJ T* [(35 )-1200(#define)-600(STAT_CLI_ATTRCON )-600(0x040e )-600(/*)-600(attributes conflicted */)]TJ 0 -1.189 TD [(36 )-1200(#define)-600(STAT_CLI_NOCOMP )-1200(0x040f)-1200(/* compression not supported */)]TJ 0 -1.189 TD [(37 )-1200(#define)-600(STAT_CLI_COMPERR )-600(0x0410 )-600(/*)-600(data can\325t be decompressed */)]TJ 0 -1.189 TD [(38 )-1200(#define)-600(STAT_CLI_FMTERR )-1200(0x0411)-1200(/* document format error */)]TJ 0 -1.189 TD [(39 )-1200(#define)-600(STAT_CLI_ACCERR )-1200(0x0412)-1200(/* error accessing data */)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 2147.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /T1_1 1 Tf 9.9982 0 0 9.9982 129.5767 190.6637 Tm [([1 )167(\320 )167(14])]TJ -0.092 Tc 4 0 Td [(We )-185(s)]TJ 0 Tc 2.062 0 Td [(tart )-1(the)]TJ /TT0 1 Tf 3.437 0 Td (ipp.h)Tj /T1_1 1 Tf 3.251 0 Td [(header )-1(with )-1(the )-1(standar)17(d)]TJ /TT0 1 Tf 11.402 0 Td (#ifdef)Tj /T1_1 1 Tf 3.851 0 Td [(to )-1(pr)18(event )-1(err)18(ors )-1(when )-1(it)]TJ -24.004 -1.2 Td [(is )-168(included )-168(twice )-168(in )-168(the )-168(same )-168(\336le.)-669(Then )-168(we )-168(de\336ne )-168(the )-168(classes )-168(of )-168(IPP )-168(status)]TJ 0 -1.2 TD [(codes \(see Section 13 in RFC 291)55(1\).)]TJ -4 -1.6 Td [([15 )167(\320 )167(39])]TJ -0.092 Tc 4 0 Td [(We )-269(d)]TJ 0 Tc 2.333 0 Td [(e\336ne )-85(speci\336c )-85(status )-85(codes )-85(based )-85(on )-85(RFC )-85(291)53(1. )-335(W)]TJ 0.3353 Tc 22.203 0 Td (ed)Tj 0 Tc 1.425 0 Td [(on\325t )-85(use )-85(these )-85(codes)]TJ -25.962 -1.2 Td [(in the pr)18(ogram shown her)18(e; their use is left as an exer)18(cise \(See Exer)18(cise 21.1\).)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47764 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (790)Tj /T1_1 1 Tf 3.5 0 Td [(Communicating )-250(with )-250(a )-250(Network )-250(Printer)]TJ 38.741 0 Td [(Chapter )-250(21)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(IPP )-321(is )-321(speci\336ed )-321(in )-321(a )-321(series )-321(of )-321(documents )-321(\(Requests )-321(For )-321(Comments, )-321(or )-321(RFCs\))]TJ -1.8 -1.2 Td [(available )-557(at)]TJ /TT0 1 Tf 6.409 0 Td (http://www.ietf.org/rfc.html)Tj /T1_1 1 Tf 1.0567 Tc (.P)Tj -0.018 Tc 18.711 0 Td (ro)Tj 0 Tc 0.923 0 Td [(posed )-557(draft )-557(standar)18(ds )-557(ar)19(e)]TJ -26.043 -1.2 Td [(developed )-178(by )-178(the )-178(Printer )-178(W)92(orking )-178(Gr)18(oup, )-178(which )-178(is )-178(associated )-178(with )-178(the )-178(IEEE.)-678(These)]TJ 0 -1.2 TD [(drafts )-58(ar)]TJ 0.308 Tc 3.774 0 Td (ea)Tj 0 Tc 1.287 0 Td [(vailable )-58(at)]TJ /TT0 1 Tf 4.912 0 Td (http://www.pwg.org/ipp)Tj /T1_1 1 Tf 0.558 Tc (.T)Tj 0 Tc 14.621 0 Td [(he )-58(main )-58(documents )-58(ar)]TJ 0.308 Tc 10.016 0 Td (el)Tj 0 Tc 1.078 0 Td [(isted )-58(in)]TJ -35.688 -1.2 Td (Figur)Tj 0.7966 Tc 2.383 0 Td (e2)Tj 0 Tc 1.776 0 Td [(1.1, )-547(although )-547(many )-547(other )-547(documents )-547(ar)]TJ 0.7966 Tc 20.093 0 Td (ea)Tj 0 Tc 1.776 0 Td [(vailable )-547(to )-547(further )-547(specify)]TJ -26.027 -1.2 Td [(administrative pr)18(ocedur)18(es, job attributes, and the like.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1403.25 5878.25 cm 0 0 m 3685 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 161.7926 579.7304 Tm (Document )Tj 24.626 0 Td [(T)55(itle)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1403.25 5758.25 cm 0 0 m 3685 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1403.25 5738.25 cm 0 0 m 3685 0 l S Q Q BT /T1_1 1 Tf 7.9986 0 0 7.9986 144.334 565.6982 Tm (RFC 2567)Tj 10.5 0 Td [(Design Goals for an Internet Printing Pr)18(otocol)]TJ -10.5 -1.25 Td (RFC 2568)Tj 10.5 0 Td [(Rationale for the Str)8(uctur)18(e)-250(of)-250(the Model and Pr)18(otocol for the Internet Printing)]TJ 1.35 -1.25 Td [(Pr)18(otocol)]TJ -11.85 -1.25 Td (RFC 291)Tj 6.372 Tc 3.628 0 Td (1I)Tj 0 Tc 7.209 0 Td [(nternet Printing Pr)18(otocol/1.1: Model and Semantics)]TJ -10.837 -1.25 Td (RFC 2910)Tj 10.5 0 Td [(Internet Printing Pr)18(otocol/1.1: Encoding and T)90(ransport)]TJ -10.5 -1.25 Td (RFC 3196)Tj 10.5 0 Td [(Internet Printing Pr)18(otocol/1.1: Implementor)-74(\325s Guide)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1403.25 5118.25 cm 0 0 m 3685 0 l S Q Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 228.3052 503.6791 Tm [(Internet Printing Pr)18(otocol V)111(ersion 2.0, Second Edition)]TJ -10.5 0 Td [(Candidate Standar)18(d)]TJ 1.35 -1.25 Td (5100.12)Tj 3.25 0.09 Td (-)Tj 0.333 -0.09 Td [(201)55(1)]TJ ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1403.25 4898.25 cm 0 0 m 3685 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2223.25 4898.25 cm 0 0 m 0 980 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5088.25 4898.25 cm 0 0 m 0 980 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1403.25 4898.25 cm 0 0 m 0 980 l S Q Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 260.4738 470.4588 Tm (Figure 21.1)Tj /T1_1 1 Tf 5.445 0 Td (Primary IPP documents)Tj 9.997 0 0 9.997 147.5559 444.0668 Tm [(Candidate )-153(Standar)]TJ 0.4033 Tc 8.433 0 Td (d5)Tj 0 Tc 1.514 0 Td (100.12)Tj 2.75 0.09 Td (-)Tj 0.333 -0.09 Td (201)Tj 0.4034 Tc 1.445 0 Td (1s)Tj 0 Tc 1.327 0 Td [(peci\336es )-153(all )-153(featur)18(es )-153(that )-153(implementations )-153(must)]TJ -17.603 -1.2 Td [(support )-34(to )-34(conform )-34(to )-34(dif)16(fer)18(ent )-34(versions )-34(of )-34(the )-34(IPP )-34(standar)16(d. )-284(Ther)]TJ 0.2844 Tc 29.606 0 Td (ea)Tj -0.018 Tc 1.263 0 Td [(re )-70(m)]TJ 0 Tc 2.023 0 Td [(any )-34(pr)18(oposed)]TJ -32.893 -1.2 Td [(extensions )-374(to )-374(the )-374(IPP )-374(pr)18(otocol )-374(\(speci\336c )-374(featur)18(es )-374(ar)]TJ 0.6239 Tc 24.516 0 Td (ed)Tj 0 Tc 1.714 0 Td [(e\336ned )-374(in )-374(other )-374(IPP-r)18(elated)]TJ -26.23 -1.2 Td [(documents\). )-450(These)-450(featur)18(es )-200(ar)]TJ 0.45 Tc 14.056 0 Td (ed)Tj 0 Tc 1.54 0 Td [(ivided )-200(into )-200(gr)18(oups )-200(to )-200(cr)18(eate )-200(dif)18(fer)18(ent )-200(conformance)]TJ -15.596 -1.2 Td [(levels; )-76(each )-76(level )-76(is )-76(a )-76(dif)20(fer)18(ent )-76(pr)18(otocol )-76(version.)-576(For )-76(compatibility)]TJ 0.3258 Tc 29.573 0 Td (,e)Tj 0 Tc 1.055 0 Td [(ach )-76(higher )-76(level )-76(of)]TJ -30.628 -1.2 Td [(conformance )-101(r)18(equir)18(es )-101(that )-101(implementations )-101(meet )-101(most )-101(of )-101(the )-101(r)18(equir)18(ements )-101(de\336ned )-101(by)]TJ -0 -1.2 Td [(lower )-1(versions )-1(of )-1(the )-1(standar)18(d. )-251(In)-251(this )-1(chapter)74(,)-251(we)-251(will )-1(use )-1(IPP )-1(version )-1(1.1 )-1(in )-1(our )-1(simple)]TJ 0 -1.2 Td (example.)Tj 1.8 -1.2 Td [(IPP )-10(is )-10(built )-10(on )-10(top )-10(of )-10(HTTP)]TJ 0.26 Tc 11.897 0 Td (,t)Tj 0 Tc 0.836 0 Td [(he )-10(Hypertext )-10(T)90(ransfer )-10(Pr)18(otocol )-10(\(Section )-10(21.3\).)-510(HTTP)]TJ 0.26 Tc 23.084 0 Td (,i)Tj 0 Tc 0.801 0 Td (n)Tj -38.418 -1.2 Td (turn, is built on top of TCP/IP)Tj 0.5 Tc 13.259 0 Td (.F)Tj 0 Tc 1.306 0 Td (igur)Tj 0.25 Tc 1.827 0 Td (e2)Tj 0 Tc 1.229 0 Td [(1.2 shows the str)8(uctur)18(e)-250(of)-250(an)-250(IPP message.)]TJ ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 1626 2782 540 360 re S Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 174.4172 299.3322 Tm (Ethernet)Tj 0.367 -1.25 Td (header)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 2166 2782 540 360 re S Q BT /T1_1 1 Tf 7.9966 0 0 7.9966 239.7353 299.3143 Tm (IP)Tj -1.052 -1.25 Td (header)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 2706 2782 540 360 re S Q BT /T1_1 1 Tf 7.9962 0 0 7.9962 289.7569 299.2963 Tm (TCP)Tj -0.56 -1.25 Td (header)Tj ET q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J 3246 2782 540 360 re S Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 340.7679 299.2783 Tm (HTTP)Tj -0.192 -1.25 Td (header)Tj ET q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 3786 2782 540 360 re S Q BT /T1_1 1 Tf 7.9952 0 0 7.9952 399.1804 299.2604 Tm (IPP)Tj -0.75 -1.25 Td (header)Tj ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 4326 2782 540 360 re S Q BT /T1_1 1 Tf 7.9947 0 0 7.9947 441.9442 299.2424 Tm (data to be)Tj 0.528 -1.25 Td (printed)Tj /T1_0 1 Tf -24.24 -4.255 Td (Figure 21.2)Tj /T1_1 1 Tf 5.695 0 Td [(Str)8(uctur)18(e)-250(of)-250(an)-250(IPP message)]TJ 9.9934 0 0 9.9934 147.5027 230.0483 Tm [(IPP )-143(is )-143(a )-143(r)17(equest\320r)18(esponse )-143(pr)18(otocol. )-393(A)-394(client )-143(sends )-143(a )-143(r)18(equest )-143(message )-143(to )-143(a )-143(server)71(,)]TJ -1.8 -1.2 Td [(and )-84(the )-84(server )-84(answers )-84(with )-84(a )-84(r)18(esponse )-84(message.)-584(The )-84(IPP )-84(header )-84(contains )-84(a )-84(\336eld )-84(that)]TJ T* [(indicates )-115(the )-115(r)18(equested )-115(operation.)-615(Operations )-115(ar)]TJ 0.3649 Tc 22.07 0 Td (ed)Tj 0 Tc 1.455 0 Td [(e\336ned )-115(to )-115(submit )-115(print )-115(jobs, )-115(cancel)]TJ -23.525 -1.2 Td [(print )-47(jobs, )-47(get )-47(job )-47(attributes, )-47(get )-47(printer )-47(attributes, )-47(pause )-47(and )-47(r)18(estart )-47(the )-47(printer)]TJ 0.2967 Tc 35.341 0 Td (,p)Tj 0 Tc 1.148 0 Td [(lace )-47(a)]TJ -36.489 -1.2 Td [(job on hold, and r)18(elease a held job.)]TJ 1.8 -1.2 Td (Figur)Tj 0.3129 Tc 2.383 0 Td (e2)Tj 0 Tc 1.292 0 Td [(1.3 )-63(shows )-63(the )-63(str)8(uctur)18(e)-313(of)-313(an)-313(IPP )-63(message )-63(header)]TJ 0.5629 Tc 22.142 0 Td (.T)Tj 0 Tc 1.426 0 Td [(he )-63(\336rst )-63(2 )-63(bytes )-63(ar)]TJ 0.313 Tc 7.778 0 Td (et)Tj 0 Tc 1.118 0 Td (he)Tj -37.939 -1.2 Td [(IPP )-24(version )-24(number)]TJ 0.5238 Tc 8.796 0 Td (.F)Tj 0 Tc 1.33 0 Td [(or )-24(pr)18(otocol )-24(version )-24(1.1, )-24(each )-24(byte )-24(has )-24(a )-24(value )-24(of )-24(1.)-524(For )-24(a )-24(pr)22(otocol)]TJ -0.018 Tc -10.125 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(quest, )-149(the )-149(next )-149(2 )-149(bytes )-149(contain )-149(a )-149(value )-149(identifying )-149(the )-149(type )-149(of )-149(operation )-149(r)21(equested.)]TJ -0.856 -1.2 Td [(For a pr)18(otocol r)18(esponse, these 2 bytes contain a status code instead.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47765 0 obj <>stream q /Fm0 Do Q BT /CS0 cs 0 0 0 scn /GS0 gs /TT0 1 Tf 0.0002 Tc -0.0002 Tw 12 0 0 12 218.4731 545.9739 Tm (This page intentionally left blank )Tj ET q 1 0 0 1 47.58 40.02 cm 0 g /GS1 gs 0 Tc 0 Tw /Fm1 Do Q endstream endobj 47766 0 obj <> endobj 47767 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(20.5)]TJ 30.134 0 Td [(Centralized )-250(or )-250(Decentralized?)]TJ /T1_1 1 Tf 15.699 0 Td (751)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_0 1 Tf -0.092 Tc 9.9994 0 0 9.9994 147.5911 668.9599 Tm [(We )-324(p)]TJ 0 Tc 2.378 0 Td [(urposely )-139(show )-139(the )-139(IPC )-139(going )-139(thr)16(ough )-140(the )-140(kernel, )-140(as )-140(most )-140(forms )-140(of )-140(message)]TJ -4.177 -1.2 Td [(passing )-180(under )-180(the )-180(UNIX )-180(System )-180(operate )-180(this )-180(way)]TJ 0.6799 Tc 22.978 0 Td (.\()Tj 0 Tc 1.263 0 Td [(Shar)18(ed )-180(memory)111(,)-430(as)-430(described )-180(in)]TJ -24.241 -1.2 Td [(Section )-18(15.9, )-18(avoids )-18(this )-18(copying )-18(of )-18(the )-18(data.\))]TJ -0.055 Tc 20.511 0 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-18(the )-18(centralized )-18(appr)18(oach, )-18(a )-18(r)17(ecor)]TJ 0.2683 Tc 15.659 0 Td (di)Tj 0 Tc 1.17 0 Td (s)Tj -0.018 Tc -38.576 -1.2 Td (re)Tj 0 Tc 0.856 0 Td [(ad )-21(by )-21(the )-21(central )-21(pr)18(ocess )-21(and )-21(then )-21(passed )-21(to )-21(the )-21(r)18(equesting )-21(pr)18(ocess )-21(using )-21(IPC.)-521(This )-21(is)]TJ 0.3495 Tc -0.856 -1.2 Td (ad)Tj 0 Tc 1.461 0 Td [(isadvantage )-99(of )-99(this )-99(design.)-601(Note )-100(that )-100(the )-100(centralized )-100(database )-100(manager )-100(is )-100(the )-100(only)]TJ -1.46 -1.2 Td [(pr)18(ocess that does I/O with the database \336les.)]TJ 1.8 -1.2 Td [(The )-114(centralized )-114(appr)18(oach )-114(has )-114(the )-114(advantage )-114(that )-114(customer )-114(tuning )-114(of )-114(its )-114(operation)]TJ -1.8 -1.2 Td [(may )-309(be )-309(possible.)-809(For )-309(example, )-309(we )-309(might )-309(be )-309(able )-309(to )-309(assign )-309(dif)20(fer)18(ent )-309(priorities )-309(to)]TJ -0 -1.2 Td [(dif)18(fer)18(ent )-61(pr)18(ocesses )-61(thr)18(ough )-61(the )-61(centralized )-61(pr)16(ocess. )-311(This)-312(could )-61(af)18(fect )-61(the )-61(scheduling )-61(of)]TJ 0 -1.2 Td [(I/O )-217(operations )-217(by )-217(the )-217(centralized )-217(pr)20(ocess. )-467(W)55(ith )-217(the )-217(decentralized )-217(appr)19(oach, )-217(this )-217(is)]TJ 0 -1.2 Td (mor)Tj 0.3676 Tc 1.806 0 Td (ed)Tj 0 Tc 1.458 0 Td [(if)18(\336cult )-118(to )-118(do.)]TJ -0.092 Tc 6.507 0 Td [(We )-302(a)]TJ -0.018 Tc 2.255 0 Td [(re )-154(u)]TJ 0 Tc 1.826 0 Td [(sually )-117(at )-117(the )-117(mer)18(cy )-117(of )-117(the )-117(kernel\325s )-117(disk )-117(I/O )-117(scheduling)]TJ -13.852 -1.2 Td [(policy )-148(and )-148(locking )-148(policy; )-148(that )-148(is, )-148(if )-148(thr)18(ee )-148(pr)18(ocesses )-148(ar)]TJ 0.3977 Tc 24.887 0 Td (ew)Tj 0 Tc 1.711 0 Td [(aiting )-148(for )-148(a )-148(lock )-148(to )-148(become)]TJ -26.598 -1.2 Td [(available, we cannot tell which pr)18(ocess gets the lock next.)]TJ 1.8 -1.2 Td [(Another )-82(advantage )-82(of )-82(the )-82(centralized )-82(appr)19(oach )-82(is )-82(that )-82(r)18(ecovery )-82(is )-82(easier )-82(than )-82(with)]TJ -1.8 -1.2 Td [(the )-75(decentralized )-75(appr)17(oach. )-325(All)-326(the )-75(state )-75(information )-75(is )-75(in )-75(one )-75(place )-75(in )-75(the )-75(centralized)]TJ 0 -1.2 Td [(appr)18(oach, )-176(so )-176(if )-176(the )-176(database )-176(pr)20(ocesses )-175(ar)]TJ 0.4255 Tc 18.903 0 Td (ek)Tj 0 Tc 1.461 0 Td [(illed, )-175(we )-175(have )-175(only )-175(one )-175(place )-175(to )-175(look )-175(to)]TJ -20.364 -1.2 Td [(identify )-167(the )-167(outstanding )-167(transactions )-167(we )-167(need )-167(to )-167(r)18(esolve )-167(to )-167(r)14(estor)]TJ 0.4176 Tc 30.198 0 Td (et)Tj 0 Tc 1.223 0 Td [(he )-168(database )-168(to )-168(a)]TJ -31.421 -1.2 Td (consistent state.)Tj 1.8 -1.2 Td [(The )-124(decentralized )-124(appr)19(oach )-124(is )-124(shown )-124(in )-124(Figur)]TJ 0.3736 Tc 20.994 0 Td (e2)Tj 0 Tc 1.353 0 Td [(0.5. )-374(This)-373(is )-124(the )-124(design )-124(that )-124(we\325ll)]TJ -24.146 -1.2 Td [(implement in this chapter)74(.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J 2670 2546 576 216 re S Q BT /T1_0 1 Tf -0.018 Tc 7.999 0 0 7.999 270.3676 263.6084 Tm (re)Tj 0 Tc 0.856 0 Td (cor)Tj 0.25 Tc 1.367 0 Td (dl)Tj 0 Tc 1.152 0 Td (ocking)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 3246 2546 576 216 re S Q BT /T1_0 1 Tf 7.9986 0 0 7.9986 346.4216 263.5925 Tm (I/O)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2258.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2326.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2395.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2464.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2533.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2601.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2670.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2739.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2808.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2876.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 2945.25 cm 0 0 m 0 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2382.25 3014.25 cm 0 0 m 0 36 l 36 36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2452.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2523.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2593.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2664.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2735.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2805.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2875.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2946.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3016.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3087.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3157.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3228.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3298.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3369.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3439.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3510.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3581.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3651.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3721.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3792.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3862.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3933.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4003.25 3050.25 cm 0 0 m 36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4074.25 3050.25 cm 0 0 m 36 0 l 36 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2981.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2912.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2844.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2775.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2706.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2637.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2569.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2500.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2431.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2362.25 cm 0 0 m 0 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4110.25 2294.25 cm 0 0 m 0 -36 l -36 -36 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4039.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3969.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3898.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3828.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3757.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3686.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3617.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3546.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3475.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3405.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3334.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3264.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3193.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3123.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3052.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2982.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2911.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2841.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2771.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2700.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2629.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2559.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2488.25 2258.25 cm 0 0 m -36 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2418.25 2258.25 cm 0 0 m -36 0 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 412.9009 263.5767 Tm (kernel)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2310 1610 720 216 re S Q BT /T1_0 1 Tf 7.9976 0 0 7.9976 250.5088 169.989 Tm (index \336le)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 3462 1610 720 216 re S Q BT /T1_0 1 Tf 7.9971 0 0 7.9971 367.8196 169.9788 Tm (data \336le)Tj ET q 0.9996401 0 0 0.9996401 0 0 cm q 1 0 0 1 343.824 254.6 cm 0 0 m -4.032 -6.264 l -6.48 -3.672 l f Q Q q 0.099964 0 0 0.099964 0 0 cm 1 j 1 J q 1 0 0 1 3438.24 2546 cm 0 0 m -40.32 -62.64 l -64.8 -36.72 l h S Q Q q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 267 182.6 cm 0 0 m 4.032 6.264 l 6.48 3.672 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 2670 1826 cm 0 0 m 40.32 62.64 l 64.8 36.72 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3385.25 2497.25 cm 0 0 m -663 -622 l S Q Q q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 362.976 254.6 cm 0 0 m 3.6 -6.48 l 0.144 -7.416 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 3629.76 2546 cm 0 0 m 36 -64.8 l 1.44 -74.16 l h S Q Q q 0.9994601 0 0 0.9994601 0 0 cm q 1 0 0 1 382.2 182.6 cm 0 0 m -3.6 6.48 l -0.144 7.416 l f Q Q q 0.099946 0 0 0.099946 0 0 cm 1 j 1 J q 1 0 0 1 3822 1826 cm 0 0 m -36 64.8 l -1.44 74.16 l h S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3648.25 2476.25 cm 0 0 m 155 -581 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 2022 3698 432 432 re S Q q 0.099946 0 0 0.099946 0 0 cm 3.2 w 1 j 1 J 2022 3482 432 216 re S Q BT /T1_0 1 Tf 7.9952 0 0 7.9952 207.1597 362.0227 Tm (db access)Tj 0.574 -1.25 Td (library)Tj -1.233 8 Td [(user pr)18(ocess)]TJ ET q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 4038 3698 432 432 re S Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J 4038 3482 432 216 re S Q BT /T1_0 1 Tf 7.9947 0 0 7.9947 408.6142 362.001 Tm (db access)Tj 0.574 -1.25 Td (library)Tj -1.233 8 Td [(user pr)18(ocess)]TJ ET q 0.9993402 0 0 0.9993402 0 0 cm q 1 0 0 1 216.6 348.2 cm 0 0 m 6.264 -3.96 l 3.672 -6.48 l f Q Q q 0.099934 0 0 0.099934 0 0 cm 1 j 1 J q 1 0 0 1 2166 3482 cm 0 0 m 62.64 -39.6 l 36.72 -64.8 l h S Q Q q 0.9992802 0 0 0.9992802 0 0 cm q 1 0 0 1 286.224 276.2 cm 0 0 m -6.264 3.96 l -3.672 6.48 l f Q Q q 0.099928 0 0 0.099928 0 0 cm 1 j 1 J q 1 0 0 1 2862.24 2762 cm 0 0 m -62.64 39.6 l -36.72 64.8 l h S Q Q q 0.099928 0 0 0.099928 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2216.25 3430.25 cm 0 0 m 596 -616 l S Q Q q 0.9992203 0 0 0.9992203 0 0 cm q 1 0 0 1 231 348.2 cm 0 0 m 7.056 -2.376 l 5.112 -5.4 l f Q Q q 0.099922 0 0 0.099922 0 0 cm 1 j 1 J q 1 0 0 1 2310 3482 cm 0 0 m 70.56 -23.76 l 51.12 -54 l h S Q Q q 0.9991603 0 0 0.9991603 0 0 cm q 1 0 0 1 343.824 276.2 cm 0 0 m -7.056 2.376 l -5.112 5.4 l f Q Q q 0.099916 0 0 0.099916 0 0 cm 1 j 1 J q 1 0 0 1 3438.24 2762 cm 0 0 m -70.56 23.76 l -51.12 54 l h S Q Q q 0.099916 0 0 0.099916 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2370.25 3443.25 cm 0 0 m 1007 -642 l S Q Q q 0.9991004 0 0 0.9991004 0 0 cm q 1 0 0 1 418.2 348.2 cm 0 0 m -5.112 -5.4 l -7.056 -2.376 l f Q Q q 0.09991 0 0 0.09991 0 0 cm 1 j 1 J q 1 0 0 1 4182 3482 cm 0 0 m -51.12 -54 l -70.56 -23.76 l h S Q Q q 0.9990404 0 0 0.9990404 0 0 cm q 1 0 0 1 305.376 276.2 cm 0 0 m 5.112 5.4 l 7.056 2.376 l f Q Q q 0.099904 0 0 0.099904 0 0 cm 1 j 1 J q 1 0 0 1 3053.76 2762 cm 0 0 m 51.12 54 l 70.56 23.76 l h S Q Q q 0.099904 0 0 0.099904 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4121.25 3443.25 cm 0 0 m -1006 -642 l S Q Q q 0.9989805 0 0 0.9989805 0 0 cm q 1 0 0 1 432.6 348.2 cm 0 0 m -3.744 -6.408 l -6.336 -3.888 l f Q Q q 0.099898 0 0 0.099898 0 0 cm 1 j 1 J q 1 0 0 1 4326 3482 cm 0 0 m -37.44 -64.08 l -63.36 -38.88 l h S Q Q q 0.9989206 0 0 0.9989206 0 0 cm q 1 0 0 1 362.976 276.2 cm 0 0 m 3.744 6.408 l 6.336 3.888 l f Q Q q 0.0998921 0 0 0.0998921 0 0 cm 1 j 1 J q 1 0 0 1 3629.76 2762 cm 0 0 m 37.44 64.08 l 63.36 38.88 l h S Q Q q 0.0998921 0 0 0.0998921 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4275.25 3430.25 cm 0 0 m -596 -616 l S Q Q BT /T1_1 1 Tf 7.9909 0 0 7.9909 224.8275 135.6453 Tm (Figure 20.5)Tj /T1_0 1 Tf 5.695 0 Td [(Decentralized appr)18(oach for database access)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47768 0 obj <>stream q /Fm0 Do Q BT /CS0 cs 0 0 0 scn /GS0 gs /TT0 1 Tf 0.0002 Tc -0.0002 Tw 12 0 0 12 218.4731 545.9739 Tm (This page intentionally left blank )Tj ET q 1 0 0 1 47.58 40.02 cm 0 g /GS1 gs 0 Tc 0 Tw /Fm1 Do Q endstream endobj 47769 0 obj <> endobj 47770 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(12.4)]TJ 31.602 0 Td [(Synchr)18(onization )-250(Attributes)]TJ /T1_1 1 Tf 14.231 0 Td (435)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J 1536 6494 432 144 re S Q BT /TT0 1 Tf 7.9995 0 0 7.9995 165.5901 654.8007 Tm (main)Tj ET q 0.099994 0 0 0.099994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 6422.25 cm 0 0 m 0 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 6386.25 cm 0 0 m 0 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 6350.25 cm 0 0 m 0 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 6314.25 cm 0 0 m 0 0 l S Q Q q 0.099994 0 0 0.099994 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 6278.25 cm 0 0 m 0 0 l S Q Q BT /TT1 1 Tf 7.999 0 0 7.999 155.9813 615.1662 Tm (func1\(x\))Tj ET q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 6062.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 6026.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5990.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5954.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5918.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5882.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5846.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5810.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5774.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5738.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5702.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5666.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5630.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5594.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5558.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5522.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5486.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5450.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5414.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5378.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5342.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5306.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5270.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5234.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5198.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5162.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5126.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5090.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5054.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 5018.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 4982.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 4946.25 cm 0 0 m 0 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 12 w 1 j 1 J q 1 0 0 1 1752.25 4910.25 cm 0 0 m 0 0 l S Q Q BT /TT1 1 Tf 7.9986 0 0 7.9986 155.9719 478.3539 Tm (func2\(x\))Tj ET q 0.99982 0 0 0.99982 0 0 cm q 1 0 0 1 279.6 617 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099982 0 0 0.099982 0 0 cm 1 j 1 J q 1 0 0 1 2796 6170 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2076.25 6170.25 cm 0 0 m 648 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2796 6098 432 144 re S Q BT /TT0 1 Tf 7.9981 0 0 7.9981 289.1306 615.0924 Tm (func1)Tj ET q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3012.25 6026.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3012.25 5990.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3012.25 5954.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3012.25 5918.25 cm 0 0 m 0 0 l S Q Q q 0.099976 0 0 0.099976 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3012.25 5882.25 cm 0 0 m 0 0 l S Q Q BT /TT1 1 Tf 7.9976 0 0 7.9976 236.3291 575.4673 Tm (pthread_mutex_lock\(x->lock\))Tj ET q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3012.25 5666.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3012.25 5630.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3012.25 5594.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3012.25 5558.25 cm 0 0 m 0 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3012.25 5522.25 cm 0 0 m 0 0 l S Q Q BT /TT1 1 Tf 7.9971 0 0 7.9971 281.8985 539.4458 Tm (func2\(x\))Tj ET q 0.099964 0 0 0.099964 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3012.25 5306.25 cm 0 0 m 0 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3012.25 5270.25 cm 0 0 m 0 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3012.25 5234.25 cm 0 0 m 0 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3012.25 5198.25 cm 0 0 m 0 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 12 w 1 j 1 J q 1 0 0 1 3012.25 5162.25 cm 0 0 m 0 0 l S Q Q BT /TT1 1 Tf 7.9966 0 0 7.9966 231.5027 503.4285 Tm (pthread_mutex_unlock\(x->lock\))Tj ET q 0.9995801 0 0 0.9995801 0 0 cm q 1 0 0 1 409.2 480.2 cm 0 0 m -7.2 -1.8 l -7.2 1.8 l f Q Q q 0.099958 0 0 0.099958 0 0 cm 1 j 1 J q 1 0 0 1 4092 4802 cm 0 0 m -72 -18 l -72 18 l h S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2076.25 4802.25 cm 0 0 m 1944 0 l S Q Q q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 4092 4730 432 144 re S Q BT /TT0 1 Tf 7.9962 0 0 7.9962 418.599 478.2104 Tm (func2)Tj ET q 0.099952 0 0 0.099952 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4308.25 4658.25 cm 0 0 m 0 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4308.25 4622.25 cm 0 0 m 0 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4308.25 4586.25 cm 0 0 m 0 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4308.25 4550.25 cm 0 0 m 0 0 l S Q Q q 0.099952 0 0 0.099952 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4308.25 4514.25 cm 0 0 m 0 0 l S Q Q BT /TT1 1 Tf 7.9957 0 0 7.9957 365.8024 438.6031 Tm (pthread_mutex_lock\(x->lock\))Tj ET q 0.099946 0 0 0.099946 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4308.25 4298.25 cm 0 0 m 0 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4308.25 4262.25 cm 0 0 m 0 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4308.25 4226.25 cm 0 0 m 0 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4308.25 4190.25 cm 0 0 m 0 0 l S Q Q q 0.099946 0 0 0.099946 0 0 cm 12 w 1 j 1 J q 1 0 0 1 4308.25 4154.25 cm 0 0 m 0 0 l S Q Q BT /TT1 1 Tf 7.9952 0 0 7.9952 360.9833 402.5984 Tm (pthread_mutex_unlock\(x->lock\))Tj ET q 0.9994002 0 0 0.9994002 0 0 cm q 1 0 0 1 430.8 487.4 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.09994 0 0 0.09994 0 0 cm 1 j 1 J q 1 0 0 1 4308 4874 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.09994 0 0 0.09994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3336.25 5414.25 cm 0 0 m 972 0 l 972 -468 l S Q Q BT /T1_1 1 Tf 7.9947 0 0 7.9947 254.3041 375.552 Tm (Figure 12.6)Tj /T1_0 1 Tf 5.695 0 Td (Recursive locking opportunity)Tj 9.9934 0 0 9.9934 129.5147 345.5718 Tm [(the )-53(mutex )-53(befor)]TJ 0.303 Tc 7.088 0 Td (ec)Tj 0 Tc 1.226 0 Td (alling)Tj /TT1 1 Tf 2.814 0 Td (func2)Tj /T1_0 1 Tf 3.303 0 Td [(and )-53(r)18(eacquir)18(e)-303(it)-303(after)]TJ /TT1 1 Tf 9.665 0 Td (func2)Tj /T1_0 1 Tf -0.018 Tc 3.303 0 Td (re)Tj 0 Tc 0.856 0 Td [(turns, )-53(but )-53(this )-53(appr)18(oach)]TJ -28.255 -1.2 Td [(opens )-215(a )-215(window )-215(wher)]TJ 0.4646 Tc 10.496 0 Td (ea)Tj 0 Tc 1.444 0 Td [(nother )-215(thr)18(ead )-215(can )-215(possibly )-215(grab )-215(contr)18(ol )-215(of )-215(the )-215(mutex )-215(and)]TJ -11.939 -1.2 Td [(change )-331(the )-331(data )-331(str)7(uctur)18(e)-581(in)-581(t)-1(he )-331(middle )-331(of)]TJ /TT1 1 Tf 21.391 0 Td (func1)Tj /T1_0 1 Tf 0.8313 Tc (.T)Tj 0 Tc 4.694 0 Td [(his )-331(may )-331(not )-331(be )-331(acceptable,)]TJ -26.086 -1.2 Td [(depending on what pr)18(otection the mutex is intended to pr)18(ovide.)]TJ 1.8 -1.2 Td (Figur)Tj 0.3938 Tc 2.383 0 Td (e1)Tj 0 Tc 1.373 0 Td [(2.7 )-144(shows )-144(an )-144(alternative )-144(to )-144(using )-144(a )-144(r)19(ecursive )-144(mutex )-144(in )-144(this )-144(case.)]TJ -0.092 Tc 30.137 0 Td [(We )-328(c)]TJ 0 Tc 2.225 0 Td (an)Tj -37.918 -1.2 Td [(leave )-124(the )-124(interfaces )-124(to)]TJ /TT1 1 Tf 10.322 0 Td (func1)Tj /T1_0 1 Tf 3.374 0 Td (and)Tj /TT1 1 Tf 2.067 0 Td (func2)Tj /T1_0 1 Tf 3.374 0 Td [(unchanged )-124(and )-124(avoid )-124(a )-124(r)18(ecursive )-124(mutex )-124(by)]TJ -19.138 -1.2 Td [(pr)18(oviding )-65(a )-65(private )-65(version )-65(of)]TJ /TT1 1 Tf 13.815 0 Td (func2)Tj /T1_0 1 Tf 0.3153 Tc (,c)Tj 0 Tc 4.009 0 Td (alled)Tj /TT1 1 Tf 2.487 0 Td (func2_locked)Tj /T1_0 1 Tf 0.5653 Tc (.T)Tj 0.3153 Tc 8.536 0 Td (oc)Tj 0 Tc 1.305 0 Td (all)Tj /TT1 1 Tf 1.397 0 Td (func2_locked)Tj /T1_0 1 Tf (,)Tj -31.55 -1.2 Td [(we )-49(must )-49(hold )-49(the )-49(mutex )-49(embedded )-49(in )-49(the )-49(data )-49(str)4(uctur)]TJ 0.2994 Tc 24.861 0 Td (ew)Tj 0 Tc 1.612 0 Td [(hose )-49(addr)18(ess )-49(we )-49(pass )-49(as )-49(the)]TJ -26.473 -1.2 Td [(ar)18(gument. )-421(The)-420(body )-171(of)]TJ /TT1 1 Tf 11.308 0 Td (func2_locked)Tj /T1_0 1 Tf 7.621 0 Td [(contains )-171(a )-171(copy )-171(of)]TJ /TT1 1 Tf 8.904 0 Td (func2)Tj /T1_0 1 Tf 0.4208 Tc (,a)Tj 0 Tc 4.171 0 Td (nd)Tj /TT1 1 Tf 1.614 0 Td (func2)Tj /T1_0 1 Tf 3.421 0 Td (now)Tj -37.038 -1.2 Td [(simply acquir)18(es the mutex, calls)]TJ /TT1 1 Tf 14.368 0 Td (func2_locked)Tj /T1_0 1 Tf 0.25 Tc (,a)Tj 0 Tc 8.2 0 Td [(nd then r)18(eleases the mutex.)]TJ -20.768 -1.2 Td [(If )-188(we )-188(didn\325t )-188(have )-188(to )-188(leave )-188(the )-188(interfaces )-188(to )-188(the )-188(library )-188(functions )-188(unchanged, )-188(we)]TJ -1.8 -1.2 Td [(could )-12(have )-12(added )-12(a )-12(second )-12(parameter )-12(to )-12(each )-12(function )-12(to )-12(indicate )-12(whether )-12(the )-12(str)4(uctur)18(e)]TJ 0 -1.2 TD [(is )-85(locked )-85(by )-85(the )-85(caller)]TJ 0.5846 Tc 9.803 0 Td (.I)Tj 0 Tc 1.172 0 Td [(t)-335(is)-335(u)1(sually )-85(better )-85(to )-85(leave )-85(the )-85(interfaces )-85(unchanged )-85(if )-85(we )-85(can,)]TJ -10.974 -1.2 Td (however)Tj 0.25 Tc 3.806 0 Td (,i)Tj 0 Tc 0.791 0 Td (nstead of polluting them with implementation artifacts.)Tj -2.797 -1.2 Td [(The )-226(strategy )-226(of )-226(pr)18(oviding )-226(locked )-226(and )-226(unlocked )-226(versions )-226(of )-226(functions )-226(is )-226(usually)]TJ -1.8 -1.2 Td [(applicable )-120(in )-120(simple )-120(situations.)-622(In )-120(mor)]TJ 0.3704 Tc 17.783 0 Td (ec)Tj 0 Tc 1.293 0 Td [(omplex )-120(situations, )-120(such )-120(as )-120(when )-120(the )-120(library)]TJ -19.077 -1.2 Td [(needs )-74(to )-74(call )-74(a )-74(function )-74(outside )-74(the )-74(library)]TJ 0.3241 Tc 18.986 0 Td (,w)Tj 0 Tc 1.408 0 Td [(hich )-74(then )-74(might )-74(call )-74(back )-74(into )-74(the )-74(library)110(,)]TJ -20.394 -1.2 Td [(we need to r)18(ely on r)18(ecursive locks.)]TJ ET q 0.099934 0 0 0.099934 0 0 cm 4 w 1 j 1 J q 1 0 0 1 5141.25 1418.25 cm 0 0 m 50 0 l 50 50 l 0 50 l 0 0 l S Q Q EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47771 0 obj <>stream q /Fm0 Do Q BT /CS0 cs 0 0 0 scn /GS0 gs /TT0 1 Tf 0.0002 Tc -0.0002 Tw 12 0 0 12 218.4731 545.9739 Tm (This page intentionally left blank )Tj ET q 1 0 0 1 47.58 40.02 cm 0 g /GS1 gs 0 Tc 0 Tw /Fm1 Do Q endstream endobj 47772 0 obj <> endobj 47773 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (398)Tj /T1_1 1 Tf 3.5 0 Td [(Thr)18(eads )]TJ 36.604 0 Td (Chapter)Tj -0.055 Tc 6.284 0 Td (11)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf -0.018 Tc 9.9994 0 0 9.9994 129.5922 668.9599 Tm (re)Tj 0 Tc 0.856 0 Td [(ad )-258(the )-258(variable, )-258(thr)18(ead )-258(B )-258(acquir)20(es )-257(a )-257(lock.)-758(Similarly)]TJ 0.5075 Tc 24.295 0 Td (,w)Tj 0 Tc 1.591 0 Td [(hen )-257(thr)18(ead )-257(A )-257(updates )-257(the)]TJ -26.743 -1.2 Td [(variable, )-124(it )-124(acquir)18(es )-124(the )-124(same )-124(lock.)-624(Thus )-124(thr)18(ead )-124(B )-124(will )-124(be )-124(unable )-124(to )-124(r)18(ead )-124(the )-124(variable)]TJ 0 -1.2 TD [(until thr)18(ead A r)18(eleases the lock.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2814.25 6182.25 cm 0 0 m 360 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 282.6061 621.3654 Tm [(Thr)18(ead A)]TJ ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J 2778 5462 432 216 re S Q BT /T1_1 1 Tf -0.018 Tc 7.9986 0 0 7.9986 291.4795 555.1401 Tm (re)Tj 0 Tc 0.856 0 Td (ad)Tj ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J 2778 5030 432 216 re S Q BT /T1_1 1 Tf 7.9981 0 0 7.9981 288.5307 511.9171 Tm (write)Tj 5.9986 0 0 5.9986 307.1263 507.9181 Tm (1)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J 2778 4598 432 216 re S Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 288.5134 468.6994 Tm (write)Tj 5.9982 0 0 5.9982 307.1079 464.7006 Tm (2)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J 2706 4526 576 1224 re S Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 3534.25 6182.25 cm 0 0 m 360 0 l S Q Q BT /T1_1 1 Tf 7.9971 0 0 7.9971 355.1801 621.2163 Tm [(Thr)18(ead B)]TJ ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J 3498 4238 432 216 re S Q BT /T1_1 1 Tf -0.018 Tc 7.9966 0 0 7.9966 363.3793 432.6582 Tm (re)Tj 0 Tc 0.856 0 Td (ad)Tj ET q 0.099958 0 0 0.099958 0 0 cm 3.2 w 1 j 1 J 3498 5822 432 216 re S Q BT /T1_1 1 Tf -0.018 Tc 7.9962 0 0 7.9962 363.3575 590.9563 Tm (re)Tj 0 Tc 0.856 0 Td (ad)Tj ET q 0.9995201 0 0 0.9995201 0 0 cm q 1 0 0 1 256.2 467 cm 0 0 m -1.8 7.2 l 1.8 7.2 l f Q Q q 0.099952 0 0 0.099952 0 0 cm 1 j 1 J q 1 0 0 1 2562 4670 cm 0 0 m -18 72 l 18 72 l h S Q Q q 0.099952 0 0 0.099952 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2562.25 5534.25 cm 0 0 m 0 -792 l S Q Q BT /T1_1 1 Tf 7.9957 0 0 7.9957 236.2404 508.1655 Tm (time)Tj /T1_0 1 Tf -1.582 -13.73 Td [(Figure 1)37(1.8)]TJ /T1_1 1 Tf -0.09 Tc 6.25 0 Td (Tw)Tj 0.25 Tc 1.357 0 Td (ot)Tj 0 Tc 1.122 0 Td [(hr)18(eads synchr)18(onizing memory access)]TJ -0.092 Tc 9.9946 0 0 9.9946 147.5205 374.3978 Tm [(We )-202(a)]TJ 0 Tc 2.155 0 Td [(lso )-18(need )-18(to )-18(synchr)18(onize )-18(two )-18(or )-18(mor)]TJ 0.2681 Tc 15.709 0 Td (et)Tj 0 Tc 1.073 0 Td [(hr)18(eads )-18(that )-18(might )-18(try )-18(to )-18(modify )-18(the )-18(same)]TJ -20.737 -1.2 Td [(variable )-345(at )-345(the )-345(same )-345(time.)-847(Consider )-345(the )-345(case )-345(in )-345(which )-345(we )-345(incr)18(ement )-345(a )-345(variable)]TJ T* (\(Figur)Tj 0.25 Tc 2.716 0 Td (e1)Tj 0 Tc 1.174 0 Td [(1.9\). )-250(The)-250(incr)18(ement operation is usually br)18(oken down into thr)18(ee steps.)]TJ -2.09 -2.04 Td [(1. )-633(Read)-250(the memory location into a r)18(egister)74(.)]TJ 0 -1.6 TD [(2. )-633(Incr)18(ement the value in the r)18(egister)74(.)]TJ T* [(3. )-633(W)74(rite the new value back to the memory location.)]TJ 0 -2.04 TD [(If )-88(two )-88(thr)18(eads )-88(try )-88(to )-88(incr)19(ement )-88(the )-88(same )-88(variable )-88(at )-88(almost )-88(the )-88(same )-88(time )-88(without)]TJ -1.8 -1.2 Td [(synchr)18(onizing )-29(with )-29(each )-29(other)]TJ 0.2791 Tc 13.442 0 Td (,t)Tj 0 Tc 0.855 0 Td [(he )-29(r)18(esults )-29(can )-29(be )-29(inconsistent.)]TJ -0.092 Tc 13.736 0 Td (Yo)Tj 0.2792 Tc 1.121 0 Td (ue)Tj 0 Tc 1.361 0 Td [(nd )-29(up )-29(with )-29(a )-29(value)]TJ -30.515 -1.2 Td [(that )-14(is )-14(either )-14(one )-14(or )-14(two )-14(gr)16(eater )-14(than )-14(befor)18(e, )-14(depending )-14(on )-14(the )-14(value )-14(observed )-14(when )-14(the)]TJ 0 -1.2 TD [(second )-73(thr)18(ead )-73(starts )-73(its )-73(operation.)-573(If )-73(the )-73(second )-73(thr)18(ead )-73(performs )-73(step )-73(1 )-73(befor)]TJ 0.3235 Tc 34.737 0 Td (et)Tj 0 Tc 1.129 0 Td [(he )-73(\336rst)]TJ -35.865 -1.2 Td [(thr)18(ead )-132(performs )-132(step )-132(3, )-132(the )-132(second )-132(thr)20(ead )-131(will )-131(r)18(ead )-131(the )-131(same )-131(initial )-131(value )-131(as )-131(the )-131(\336rst)]TJ T* [(thr)18(ead, incr)18(ement it, and write it back, with no net ef)18(fect.)]TJ 1.8 -1.2 Td [(If )-45(the )-45(modi\336cation )-45(is )-45(atomic, )-45(then )-45(ther)]TJ 0.2953 Tc 17.142 0 Td (ei)Tj 0 Tc 1.065 0 Td [(sn\325t )-45(a )-45(race.)-546(In )-45(the )-45(pr)18(evious )-45(example, )-45(if )-45(the)]TJ -20.007 -1.2 Td [(incr)18(ement )-25(takes )-25(only )-25(one )-25(memory )-25(cycle, )-25(then )-25(no )-25(race )-25(exists.)-525(If )-25(our )-25(data )-25(always )-25(appears)]TJ T* [(to )-490(be)]TJ /T1_2 1 Tf 3.383 0 Td [(sequentially )-490(consistent)]TJ /T1_1 1 Tf 0.7396 Tc (,t)Tj 0 Tc 10.982 0 Td [(hen )-490(we )-490(need )-490(no )-490(additional )-490(synchr)20(onization. )-740(Our)]TJ -14.365 -1.2 Td [(operations )-754(ar)]TJ 1.0045 Tc 6.571 0 Td (es)Tj 0 Tc 1.907 0 Td [(equentially )-754(consistent )-754(when )-754(multiple )-754(thr)18(eads )-754(can\325t )-754(observe)]TJ -8.479 -1.2 Td [(inconsistencies )-336(in )-336(our )-336(data.)-836(In )-336(modern )-336(computer )-336(systems, )-336(memory )-336(accesses )-336(take)]TJ T* [(multiple )-441(bus )-441(cycles, )-441(and )-441(multipr)18(ocessors )-441(generally )-441(interleave )-441(bus )-441(cycles )-441(among)]TJ T* [(multiple pr)18(ocessors, so we ar)18(en\325t guaranteed that our data is sequentially consistent.)]TJ ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47774 0 obj <>stream q /Fm0 Do Q BT /CS0 cs 0 0 0 scn /GS0 gs /TT0 1 Tf 0.0002 Tc -0.0002 Tw 12 0 0 12 218.4731 545.9739 Tm (This page intentionally left blank )Tj ET q 1 0 0 1 47.58 40.02 cm 0 g /GS1 gs 0 Tc 0 Tw /Fm1 Do Q endstream endobj 47775 0 obj <> endobj 47776 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (278)Tj /T1_1 1 Tf 3.5 0 Td [(Pr)18(ocess )-250(Contr)18(ol )]TJ 39.241 0 Td [(Chapter)-500(8)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(optional )-145(command )-145(ar)18(gument. )-395(After)]TJ -0.008 Tc 16.83 0 Td (ru)Tj 0 Tc 0.99 0 Td [(nning )-145(for )-145(10 )-145(seconds, )-145(both )-145(pr)18(ocesses )-145(print )-145(the)]TJ -17.82 -1.2 Td [(value )-210(of )-210(their )-210(counter )-210(and )-210(exit.)-709(By )-210(comparing )-210(the )-210(counter )-210(values )-210(for )-210(dif)19(fer)18(ent )-210(nice)]TJ -0 -1.2 Td [(values, we can get an idea how the nice value af)18(fects pr)18(ocess scheduling.)]TJ ET q 0.099994 0 0 0.099994 0 0 cm 4 w 1 j 1 J q 1 0 0 1 1296.25 6378.25 cm 0 0 m 50 0 l 100 0 l 150 0 l 200 0 l 250 0 l 300 0 l 350 0 l 400 0 l 450 0 l 500 0 l 550 0 l 600 0 l 650 0 l 700 0 l 750 0 l 800 0 l 850 0 l 900 0 l 950 0 l 1000 0 l 1050 0 l 1100 0 l 1150 0 l 1200 0 l 1250 0 l 1300 0 l 1350 0 l 1400 0 l 1450 0 l 1500 0 l 1550 0 l 1600 0 l 1650 0 l 1700 0 l 1750 0 l 1800 0 l 1850 0 l 1900 0 l 1950 0 l 2000 0 l 2050 0 l 2100 0 l 2150 0 l 2200 0 l 2250 0 l 2300 0 l 2350 0 l 2400 0 l 2450 0 l 2500 0 l 2550 0 l 2600 0 l 2650 0 l 2700 0 l 2750 0 l 2800 0 l 2850 0 l 2900 0 l 2950 0 l 3000 0 l 3050 0 l 3100 0 l 3150 0 l 3200 0 l 3250 0 l 3300 0 l 3350 0 l 3400 0 l 3450 0 l 3500 0 l 3550 0 l 3600 0 l 3650 0 l 3700 0 l 3750 0 l 3800 0 l 3850 0 l 3900 0 l S Q Q BT /TT0 1 Tf 8.9989 0 0 8.9989 129.5844 628.2236 Tm (#include "apue.h")Tj 0 -1.189 TD (#include )Tj T* (#include )Tj 0 -1.783 TD (#if defined\(MACOS\))Tj 0 -1.189 TD (#include )Tj T* (#elif defined\(SOLARIS\))Tj T* (#include )Tj T* (#elif defined\(BSD\))Tj T* (#include )Tj 0 -1.189 TD (#endif)Tj 0 -1.783 TD (unsigned long long count;)Tj 0 -1.189 TD (struct timeval end;)Tj 0 -1.783 TD (void)Tj 0 -1.189 TD (checktime\(char *str\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(struct timeval)-1200(tv;)]TJ 0 -1.783 TD (gettimeofday\(&tv, NULL\);)Tj 0 -1.189 TD (if \(tv.tv_sec >= end.tv_sec && tv.tv_usec >= end.tv_usec\) {)Tj 2.4 -1.189 Td (printf\("%s count = %lld\\n", str, count\);)Tj 0 -1.189 TD (exit\(0\);)Tj -2.4 -1.189 Td (})Tj -2.4 -1.189 Td (})Tj 0 -1.783 TD (int)Tj 0 -1.189 TD (main\(int argc, char *argv[]\))Tj 0 -1.189 TD ({)Tj 2.4 -1.189 Td [(pid_t )-1200(pid;)]TJ T* [(char )-1800(*s;)]TJ T* [(int )-2400(nzero,)-600(ret;)]TJ 0 -1.189 TD [(int )-2400(adj)]TJ 0.6 Tc 7.2 0 Td (=0)Tj 0 Tc 1.8 0 Td (;)Tj -9 -1.783 Td (setbuf\(stdout, NULL\);)Tj -2.4 -1.189 Td (#if defined\(NZERO\))Tj 2.4 -1.189 Td (nzero = NZERO;)Tj -2.4 -1.189 Td (#elif defined\(_SC_NZERO\))Tj 2.4 -1.189 Td (nzero = sysconf\(_SC_NZERO\);)Tj -2.4 -1.189 Td (#else)Tj 0 -1.189 TD (#error NZERO undefined)Tj 0 -1.189 TD (#endif)Tj 2.4 -1.189 Td (printf\("NZERO = %d\\n", nzero\);)Tj 0 -1.189 TD (if \(argc == 2\))Tj 2.4 -1.189 Td (adj = strtol\(argv[1], NULL, 10\);)Tj -2.4 -1.189 Td (gettimeofday\(&end, NULL\);)Tj 0 -1.189 TD [(end.tv_sec += 10;)-1800(/* run for 10 seconds */)]TJ 0 -1.783 TD (if \(\(pid = fork\(\)\) < 0\) {)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47777 0 obj <>stream q /Fm0 Do Q BT /CS0 cs 0 0 0 scn /GS0 gs /TT0 1 Tf 0.0002 Tc -0.0002 Tw 12 0 0 12 218.4731 545.9739 Tm (This page intentionally left blank )Tj ET q 1 0 0 1 47.58 40.02 cm 0 g /GS1 gs 0 Tc 0 Tw /Fm1 Do Q endstream endobj 47778 0 obj <> endobj 47779 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm (160)Tj /T1_1 1 Tf 3.5 0 Td (Standar)Tj 0.5 Tc 3.421 0 Td (dI)Tj 0 Tc 1.448 0 Td [(/O )-250(Library)]TJ 34.372 0 Td [(Chapter )-250(5)]TJ ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /T1_1 1 Tf 9.9994 0 0 9.9994 129.5922 668.9599 Tm [(speci\336cations, )-256(other )-256(characters )-256(in )-256(the )-256(format )-256(ar)]TJ 0.5062 Tc 22.181 0 Td (ec)Tj 0 Tc 1.429 0 Td [(opied )-256(unmodi\336ed.)]TJ 0.5062 Tc 9.251 0 Td (Ac)Tj 0 Tc 1.728 0 Td (onversion)Tj -34.59 -1.2 Td (speci\336cation has four optional components, shown in squar)Tj 0.25 Tc 26.317 0 Td (eb)Tj 0 Tc 1.282 0 Td (rackets below:)Tj /TT0 1 Tf -25.799 -1.8 Td (%[flags][fldwidth][precision][lenmodifier]convtype)Tj /T1_1 1 Tf -1.8 -1.8 Td (The \337ags ar)Tj 0.25 Tc 5.139 0 Td (es)Tj 0 Tc 1.153 0 Td (ummarized in Figur)Tj 0.25 Tc 8.901 0 Td (e5)Tj 0 Tc 1.229 0 Td (.7.)Tj ET q 0.099994 0 0 0.099994 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1473.25 6022.25 cm 0 0 m 3545 0 l S Q Q BT /T1_1 1 Tf 7.999 0 0 7.999 158.565 594.1287 Tm (Flag )Tj 20.782 0 Td (Description)Tj ET q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1473.25 5902.25 cm 0 0 m 3545 0 l S Q Q q 0.099988 0 0 0.099988 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1473.25 5882.25 cm 0 0 m 3545 0 l S Q Q BT /TT0 1 Tf 7.9986 0 0 7.9986 151.3128 580.0956 Tm (\325)Tj /T1_1 1 Tf 5.214 0 Td [(\(apostr)18(ophe\) format integer with thousands gr)18(ouping characters)]TJ /TT0 1 Tf -5.214 -1.25 Td (-)Tj /T1_1 1 Tf 5.214 0 Td (left-justify the output in the \336eld)Tj /TT0 1 Tf -5.214 -1.25 Td (+)Tj /T1_1 1 Tf 5.214 0 Td (always display sign of a signed conversion)Tj -4.614 -1.25 Td [(\(space\) )-1250(pr)18(e\336x by a space if no sign is generated)]TJ /TT0 1 Tf -0.6 -1.25 Td (#)Tj /T1_1 1 Tf 5.214 0 Td [(convert using alternative form \(include 0x pr)18(e\336x for hexadecimal format, for example\))]TJ /TT0 1 Tf -5.214 -1.25 Td (0)Tj /T1_1 1 Tf 5.214 0 Td [(pr)18(e\336x with leading zer)18(os instead of padding with spaces)]TJ ET q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1473.25 5262.25 cm 0 0 m 3545 0 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1870.25 5262.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 5018.25 5262.25 cm 0 0 m 0 760 l S Q Q q 0.099982 0 0 0.099982 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 1473.25 5262.25 cm 0 0 m 0 760 l S Q Q BT /T1_0 1 Tf 7.9981 0 0 7.9981 215.7002 508.078 Tm (Figure 5.7)Tj /T1_1 1 Tf 5.195 0 Td (The \337ags component of a conversion speci\336cation)Tj 9.9976 0 0 9.9976 147.5648 484.0838 Tm (The)Tj /TT0 1 Tf 2.016 0 Td (fldwidth)Tj /T1_1 1 Tf 5.142 0 Td [(component )-92(speci\336es )-92(a )-92(minimum )-92(\336eld )-92(width )-92(for )-92(the )-92(conversion.)-589(If)]TJ -8.957 -1.2 Td [(the )-19(conversion )-19(r)18(esults )-19(in )-19(fewer )-19(characters, )-19(it )-19(is )-19(padded )-19(with )-19(spaces.)-519(The )-19(\336eld )-19(width )-19(is )-19(a)]TJ 0 -1.2 TD (non-negative decimal integer or an asterisk.)Tj 1.8 -1.2 Td (The)Tj /TT0 1 Tf 1.991 0 Td (precision)Tj /T1_1 1 Tf 5.717 0 Td [(component )-67(speci\336es )-67(the )-67(minimum )-67(number )-67(of )-67(digits )-67(to )-67(appear )-67(for)]TJ -9.509 -1.2 Td [(integer )-5(conversions, )-5(the )-5(minimum )-5(number )-5(of )-5(digits )-5(to )-5(appear )-5(to )-5(the )-5(right )-5(of )-5(the )-5(decimal)]TJ T* [(point )-324(for )-324(\337oating-point )-324(conversions, )-324(or )-324(the )-324(maximum )-324(number )-324(of )-324(bytes )-324(for )-324(string)]TJ T* [(conversions. )-326(The)-327(pr)18(ecision )-76(is )-76(a )-76(period )-76(\(.\) )-76(followed )-76(by )-76(a )-76(optional )-76(non-negative )-76(decimal)]TJ T* (integer or an asterisk.)Tj 1.8 -1.2 Td [(Either )-193(the )-193(\336eld )-193(width )-193(or )-193(pr)18(ecision )-193(\(or )-193(both\) )-193(can )-193(be )-193(an )-193(asterisk.)-699(In )-194(this )-194(case, )-194(an)]TJ -1.8 -1.2 Td [(integer )-73(ar)18(gument )-73(speci\336es )-73(the )-73(value )-73(to )-73(be )-73(used.)-573(The )-73(ar)18(gument )-73(appears )-73(dir)22(ectly )-72(befor)18(e)]TJ -0 -1.2 Td [(the ar)18(gument to be converted.)]TJ 1.8 -1.2 Td (The)Tj /TT0 1 Tf 2.03 0 Td (lenmodifier)Tj /T1_1 1 Tf 6.956 0 Td [(component )-106(speci\336es )-106(the )-106(size )-106(of )-106(the )-106(ar)16(gument. )-356(Possible)-357(values)]TJ -10.787 -1.2 Td (ar)Tj 0.25 Tc 0.877 0 Td (es)Tj 0 Tc 1.153 0 Td (ummarized in Figur)Tj 0.25 Tc 8.901 0 Td (e5)Tj 0 Tc 1.229 0 Td (.8.)Tj ET q 0.099976 0 0 0.099976 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2093.25 3214.25 cm 0 0 m 2306 0 l S Q Q BT /T1_1 1 Tf 7.9976 0 0 7.9976 213.22 313.306 Tm (Length modi\336er)Tj 15.686 0 Td (Description)Tj ET q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2093.25 3094.25 cm 0 0 m 2306 0 l S Q Q q 0.09997 0 0 0.09997 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2093.25 3074.25 cm 0 0 m 2306 0 l S Q Q BT /TT0 1 Tf 7.9971 0 0 7.9971 213.2072 299.2922 Tm (hh)Tj /T1_1 1 Tf 8.696 0 Td (signed or unsigned)Tj /TT0 1 Tf 8.762 0 Td (char)Tj -17.458 -1.25 Td (h)Tj /T1_1 1 Tf 8.696 0 Td (signed or unsigned)Tj /TT0 1 Tf 8.762 0 Td (short)Tj -17.458 -1.25 Td (l)Tj /T1_1 1 Tf 8.696 0 Td (signed or unsigned)Tj /TT0 1 Tf 8.762 0 Td (long)Tj /T1_1 1 Tf 2.65 0 Td (or wide character)Tj /TT0 1 Tf -20.108 -1.25 Td (ll)Tj /T1_1 1 Tf 8.696 0 Td (signed or unsigned)Tj /TT0 1 Tf 8.762 0 Td (long long)Tj 8.096 Tc -17.458 -1.25 Td (ji)Tj 0 Tc 9.296 0 Td (ntmax_t)Tj /T1_1 1 Tf 4.45 0 Td (or)Tj /TT0 1 Tf 1.191 0 Td (uintmax_t)Tj 8.096 Tc -14.937 -1.25 Td (zs)Tj 0 Tc 9.296 0 Td (ize_t)Tj 8.096 Tc -9.296 -1.25 Td (tp)Tj 0 Tc 9.296 0 Td (trdiff_t)Tj 8.096 Tc -9.296 -1.25 Td (Ll)Tj 0 Tc 9.296 0 Td (ong double)Tj ET q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2093.25 2254.25 cm 0 0 m 2306 0 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2768.25 2254.25 cm 0 0 m 0 960 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 4399.25 2254.25 cm 0 0 m 0 960 l S Q Q q 0.099964 0 0 0.099964 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 2093.25 2254.25 cm 0 0 m 0 960 l S Q Q BT /T1_0 1 Tf 7.9966 0 0 7.9966 196.5174 207.3129 Tm (Figure 5.8)Tj /T1_1 1 Tf 5.195 0 Td (The length modi\336er component of a conversion speci\336cation)Tj 9.9958 0 0 9.9958 147.538 183.323 Tm (The)Tj /TT0 1 Tf 2.294 0 Td (convtype)Tj /T1_1 1 Tf 5.42 0 Td [(component )-370(is )-370(not )-370(optional.)-869(It )-370(contr)18(ols )-370(how )-370(the )-370(ar)18(gument )-370(is)]TJ -9.513 -1.2 Td [(interpr)18(eted. )-250(The)-250(various conversion types ar)]TJ 0.25 Tc 19.811 0 Td (es)Tj 0 Tc 1.153 0 Td (ummarized in Figur)Tj 0.25 Tc 8.901 0 Td (e5)Tj 0 Tc 1.229 0 Td (.9.)Tj -0.055 Tc -29.294 -1.2 Td (Wi)Tj 0 Tc 1.236 0 Td [(th )-34(the )-34(normal )-34(conversion )-34(speci\336cation, )-34(conversions )-34(ar)]TJ 0.2838 Tc 23.987 0 Td (ea)Tj 0 Tc 1.263 0 Td [(pplied )-34(to )-34(the )-34(ar)19(guments)]TJ -28.286 -1.2 Td [(in )-429(the )-429(or)18(der )-429(they )-429(appear )-429(after )-429(the)]TJ /T1_2 1 Tf 17.863 0 Td (format)Tj /T1_1 1 Tf 3.345 0 Td [(ar)18(gument. )-679(An)-680(alternative )-429(conversion)]TJ -21.208 -1.2 Td [(speci\336cation )-8(syntax )-8(allows )-8(the )-8(ar)18(guments )-8(to )-8(be )-8(named )-8(explicitly )-8(with )-8(the )-8(sequence)]TJ /T1_2 1 Tf 37.055 0 Td (%n$)Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47780 0 obj <>stream q /Fm0 Do Q BT /CS0 cs 0 0 0 scn /GS0 gs /TT0 1 Tf 0.0002 Tc -0.0002 Tw 12 0 0 12 218.4731 545.9739 Tm (This page intentionally left blank )Tj ET q 1 0 0 1 47.58 40.02 cm 0 g /GS1 gs 0 Tc 0 Tw /Fm1 Do Q endstream endobj 47781 0 obj <> endobj 47782 0 obj <>stream q /Fm0 Do Q /Part <>BDC q 14.19 14.24 583.62 763.52 re W n BT /GS0 gs /T1_0 1 Tf 9 0 0 9 93.6 708 Tm [(Section )-250(2.5)]TJ 41.507 0 Td (Limits)Tj /T1_1 1 Tf 4.826 0 Td (45)Tj ET q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 936.25 7008.25 cm 0 0 m 40 0 l S Q Q q 0.1 0 0 0.1 0 0 cm 3.2 w 1 j 1 J q 1 0 0 1 956.25 7008.25 cm 0 0 m 40 0 l 80 0 l 120 0 l 160 0 l 200 0 l 240 0 l 280 0 l 320 0 l 360 0 l 400 0 l 440 0 l 480 0 l 520 0 l 560 0 l 600 0 l 640 0 l 680 0 l 720 0 l 760 0 l 800 0 l 840 0 l 880 0 l 920 0 l 960 0 l 1000 0 l 1040 0 l 1080 0 l 1120 0 l 1160 0 l 1200 0 l 1240 0 l 1280 0 l 1320 0 l 1360 0 l 1400 0 l 1440 0 l 1480 0 l 1520 0 l 1560 0 l 1600 0 l 1640 0 l 1680 0 l 1720 0 l 1760 0 l 1800 0 l 1840 0 l 1880 0 l 1920 0 l 1960 0 l 2000 0 l 2040 0 l 2080 0 l 2120 0 l 2160 0 l 2200 0 l 2240 0 l 2280 0 l 2320 0 l 2360 0 l 2400 0 l 2440 0 l 2480 0 l 2520 0 l 2560 0 l 2600 0 l 2640 0 l 2680 0 l 2720 0 l 2760 0 l 2800 0 l 2840 0 l 2880 0 l 2920 0 l 2960 0 l 3000 0 l 3040 0 l 3080 0 l 3120 0 l 3160 0 l 3200 0 l 3240 0 l 3280 0 l 3320 0 l 3360 0 l 3400 0 l 3440 0 l 3480 0 l 3520 0 l 3560 0 l 3600 0 l 3640 0 l 3680 0 l 3720 0 l 3760 0 l 3800 0 l 3840 0 l 3880 0 l 3920 0 l 3960 0 l 4000 0 l 4040 0 l 4080 0 l 4120 0 l 4160 0 l 4200 0 l 4240 0 l S Q Q BT /TT0 1 Tf 8.9995 0 0 8.9995 151.1909 670.2598 Tm (printf\("{\\n"\))Tj 0 -1.189 TD (printf\("\\tif \(argc != 2\)\\n"\))Tj T* (printf\("\\t\\terr_quit\(\\"usage: a.out \\"\);\\n\\n"\))Tj T* (FS="\\t+")Tj T* (while \(getline <"sysconf.sym" > 0\) {)Tj 2.4 -1.189 Td (printf\("#ifdef %s\\n", $1\))Tj T* (printf\("\\tprintf\(\\"%s defined to be %%ld\\\\n\\", \(long\)%s+0\);\\n\ ",)Tj 3 -1.189 Td ($1, $1\))Tj -3 -1.189 Td (printf\("#else\\n"\))Tj T* (printf\("\\tprintf\(\\"no symbol for %s\\\\n\\"\);\\n", $1\))Tj T* (printf\("#endif\\n"\))Tj T* (printf\("#ifdef %s\\n", $2\))Tj T* (printf\("\\tpr_sysconf\(\\"%s =\\", %s\);\\n", $1, $2\))Tj T* (printf\("#else\\n"\))Tj 0 -1.189 TD (printf\("\\tprintf\(\\"no symbol for %s\\\\n\\"\);\\n", $2\))Tj 0 -1.189 TD (printf\("#endif\\n"\))Tj -2.4 -1.189 Td (})Tj T* (close\("sysconf.sym"\))Tj T* (while \(getline <"pathconf.sym" > 0\) {)Tj 2.4 -1.189 Td (printf\("#ifdef %s\\n", $1\))Tj T* (printf\("\\tprintf\(\\"%s defined to be %%ld\\\\n\\", \(long\)%s+0\);\\n\ ",)Tj 2.4 -1.189 Td ($1, $1\))Tj -2.4 -1.189 Td (printf\("#else\\n"\))Tj 0 -1.189 TD (printf\("\\tprintf\(\\"no symbol for %s\\\\n\\"\);\\n", $1\))Tj 0 -1.189 TD (printf\("#endif\\n"\))Tj T* (printf\("#ifdef %s\\n", $2\))Tj T* (printf\("\\tpr_pathconf\(\\"%s =\\", argv[1], %s\);\\n", $1, $2\))Tj T* (printf\("#else\\n"\))Tj T* (printf\("\\tprintf\(\\"no symbol for %s\\\\n\\"\);\\n", $2\))Tj T* (printf\("#endif\\n"\))Tj -2.4 -1.189 Td (})Tj T* (close\("pathconf.sym"\))Tj 0 -1.189 TD (exit)Tj -2.4 -1.189 Td (})Tj 0 -1.189 TD (END {)Tj 2.4 -1.189 Td (printf\("\\texit\(0\);\\n"\))Tj T* (printf\("}\\n\\n"\))Tj T* (printf\("static void\\n"\))Tj T* (printf\("pr_sysconf\(char *mesg, int name\)\\n"\))Tj T* (printf\("{\\n"\))Tj T* [(printf\("\\tlong )-600(val;\\n\\n"\))]TJ 0 -1.189 TD (printf\("\\tfputs\(mesg, stdout\);\\n"\))Tj 0 -1.189 TD (printf\("\\terrno = 0;\\n"\))Tj T* (printf\("\\tif \(\(val = sysconf\(name\)\) < 0\) {\\n"\))Tj T* (printf\("\\t\\tif \(errno != 0\) {\\n"\))Tj T* (printf\("\\t\\t\\tif \(errno == EINVAL\)\\n"\))Tj T* (printf\("\\t\\t\\t\\tfputs\(\\" \(not supported\)\\\\n\\", stdout\);\\n"\ \))Tj T* (printf\("\\t\\t\\telse\\n"\))Tj T* (printf\("\\t\\t\\t\\terr_sys\(\\"sysconf error\\"\);\\n"\))Tj T* (printf\("\\t\\t} else {\\n"\))Tj 0 -1.189 TD (printf\("\\t\\t\\tfputs\(\\" \(no limit\)\\\\n\\", stdout\);\\n"\))Tj ET EMC Q q 1 0 0 1 55.08 74.52 cm /Fm1 Do Q endstream endobj 47783 0 obj <>stream q /Fm0 Do Q BT /CS0 cs 0 0 0 scn /GS0 gs /TT0 1 Tf 0.0002 Tc -0.0002 Tw 12 0 0 12 218.4731 545.9739 Tm (This page intentionally left blank )Tj ET q 1 0 0 1 47.58 40.02 cm 0 g /GS1 gs 0 Tc 0 Tw /Fm1 Do Q endstream endobj 47784 0 obj <> endobj 47785 0 obj <>stream q /Fm0 Do Q BT /CS0 cs 0 0 0 scn /GS0 gs /TT0 1 Tf 0.0002 Tc -0.0002 Tw 12 0 0 12 218.4731 545.9739 Tm (This page intentionally left blank )Tj ET q 1 0 0 1 47.58 40.02 cm 0 g /GS1 gs 0 Tc 0 Tw /Fm1 Do Q endstream endobj 47786 0 obj <> endobj 47787 0 obj <>stream q /Fm0 Do Q /EmbeddedDocument /MC0 BDC /Document /MC1 BDC q 22.56 742.74 554.202 -232.51 re W n 0.579 g /GS0 gs 22.56 620.63 554.202 122.11 re f Q q 76.697 742.74 500.065 -131.206 re W n q 1 0 0 1 456.096 701.589 cm 0.633 g /GS0 gs 0 0 m -31.178 0 -56.542 -25.433 -56.542 -56.695 c -56.542 -87.958 -31.178 -113.391 0 -113.391 c 31.177 -113.391 56.542 -87.958 56.542 -56.695 c 56.542 -25.433 31.177 0 0 0 c h 0 -131.316 m -41.06 -131.316 -74.465 -97.841 -74.465 -56.695 c -74.465 -15.549 -41.06 17.925 0 17.925 c 41.061 17.925 74.466 -15.549 74.466 -56.695 c 74.466 -97.841 41.061 -131.316 0 -131.316 c h 0 45.173 m -56.026 45.173 -101.606 -0.525 -101.606 -56.695 c -101.606 -112.867 -56.026 -158.566 0 -158.566 c 56.027 -158.566 101.607 -112.867 101.607 -56.695 c 101.607 -0.525 56.027 45.173 0 45.173 c h 0 -176.49 m -65.91 -176.49 -119.531 -122.751 -119.531 -56.695 c -119.531 9.359 -65.91 63.097 0 63.097 c 65.909 63.097 119.531 9.359 119.531 -56.695 c 119.531 -122.751 65.909 -176.49 0 -176.49 c h 0 101.901 m -87.233 101.901 -158.204 30.755 -158.204 -56.695 c -158.204 -144.147 -87.233 -215.293 0 -215.293 c 87.233 -215.293 158.203 -144.147 158.203 -56.695 c 158.203 30.755 87.233 101.901 0 101.901 c h 0 -233.218 m -97.117 -233.218 -176.127 -154.03 -176.127 -56.695 c -176.127 40.639 -97.117 119.826 0 119.826 c 97.116 119.826 176.127 40.639 176.127 -56.695 c 176.127 -154.03 97.116 -233.218 0 -233.218 c h 0 159.156 m -118.728 159.156 -215.321 62.325 -215.321 -56.695 c -215.321 -175.716 -118.728 -272.548 0 -272.548 c 118.729 -272.548 215.321 -175.716 215.321 -56.695 c 215.321 62.325 118.729 159.156 0 159.156 c h 0 -290.472 m -62.306 -290.472 -120.88 -266.152 -164.936 -221.993 c -208.985 -177.838 -233.245 -119.135 -233.245 -56.695 c -233.245 5.744 -208.985 64.447 -164.936 108.601 c -120.88 152.76 -62.306 177.08 0 177.08 c 62.305 177.08 120.881 152.76 164.936 108.601 c 208.986 64.447 233.245 5.744 233.245 -56.695 c 233.245 -119.135 208.986 -177.838 164.936 -221.993 c 120.881 -266.152 62.305 -290.472 0 -290.472 c h 0 229.017 m -157.159 229.017 -285.018 100.847 -285.018 -56.695 c -285.018 -214.238 -157.159 -342.408 0 -342.408 c 157.158 -342.408 285.017 -214.238 285.017 -56.695 c 285.017 100.847 157.158 229.017 0 229.017 c h 0 -360.333 m -80.922 -360.333 -156.999 -328.745 -214.218 -271.391 c -271.432 -214.041 -302.941 -137.795 -302.941 -56.695 c -302.941 24.404 -271.432 100.651 -214.218 158 c -156.999 215.354 -80.922 246.941 0 246.941 c 80.921 246.941 156.998 215.354 214.218 158 c 271.432 100.651 302.941 24.404 302.941 -56.695 c 302.941 -137.795 271.432 -214.041 214.218 -271.391 c 156.998 -328.745 80.921 -360.333 0 -360.333 c h 0 305.706 m -199.346 305.706 -361.526 143.134 -361.526 -56.695 c -361.526 -256.525 -199.346 -419.098 0 -419.098 c 199.345 -419.098 361.525 -256.525 361.525 -56.695 c 361.525 143.134 199.345 305.706 0 305.706 c h 0 -437.022 m -51.224 -437.022 -100.92 -426.964 -147.708 -407.126 c -192.894 -387.969 -233.473 -360.545 -268.318 -325.618 c -303.161 -290.693 -330.518 -250.02 -349.63 -204.73 c -369.417 -157.839 -379.45 -108.032 -379.45 -56.695 c -379.45 -5.359 -369.417 44.448 -349.63 91.339 c -330.518 136.629 -303.161 177.301 -268.318 212.227 c -233.473 247.154 -192.894 274.577 -147.708 293.734 c -100.92 313.572 -51.224 323.63 0 323.63 c 51.224 323.63 100.919 313.572 147.707 293.734 c 192.893 274.577 233.473 247.154 268.317 212.227 c 303.16 177.301 330.518 136.629 349.629 91.339 c 369.416 44.448 379.449 -5.359 379.449 -56.695 c 379.449 -108.032 369.416 -157.839 349.629 -204.73 c 330.518 -250.02 303.16 -290.693 268.317 -325.618 c 233.473 -360.545 192.893 -387.969 147.707 -407.126 c 100.919 -426.964 51.224 -437.022 0 -437.022 c f Q Q q 22.56 742.74 554.202 -232.51 re W n 0.785 g /GS0 gs 22.56 531.703 431.716 10.941 re f Q 0.431 g /GS0 gs 455.272 541.963 121.49 102.836 re f q 22.56 742.74 554.202 -232.51 re W n 22.56 542.643 432.711 102.157 re f q 1 0 0 1 600.137 644.302 cm 1 g 0 0 -665.846 0.995 re 0 -102.726 -665.846 0.995 re f Q 1 g 454.774 510.23 0.995 232.51 re f Q q 1 0 0 1 456.266 583.475 cm 1 g 0 0 m 33.864 0 61.317 27.454 61.317 61.317 c 61.317 95.181 33.864 122.633 0 122.633 c -33.864 122.633 -61.317 95.181 -61.317 61.317 c -61.317 27.454 -33.864 0 0 0 c f Q q 1 0 0 1 446.088 625.691 cm 0.35 g 0 0 m -2.439 0 l -2.439 5.826 l -0.098 5.826 l 1.039 5.826 1.703 5.19 1.703 4.191 c 1.703 3.544 1.277 3.126 0.983 2.987 c 1.335 2.824 1.784 2.456 1.784 1.678 c 1.784 0.59 1.039 0 0 0 c -0.188 4.813 m -1.301 4.813 l -1.301 3.47 l -0.188 3.47 l 0.294 3.47 0.565 3.741 0.565 4.141 c 0.565 4.541 0.294 4.813 -0.188 4.813 c -0.114 2.447 m -1.301 2.447 l -1.301 1.016 l -0.114 1.016 l 0.401 1.016 0.646 1.342 0.646 1.735 c 0.646 2.128 0.401 2.447 -0.114 2.447 c f Q q 1 0 0 1 451.899 626.165 cm 0.35 g 0 0 m -0.263 -0.278 -0.695 -0.524 -1.326 -0.524 c -1.956 -0.524 -2.382 -0.278 -2.644 0 c -3.028 0.402 -3.127 0.883 -3.127 1.661 c -3.127 2.432 -3.028 2.913 -2.644 3.314 c -2.382 3.594 -1.956 3.839 -1.326 3.839 c -0.695 3.839 -0.263 3.594 0 3.314 c 0.385 2.913 0.482 2.432 0.482 1.661 c 0.482 0.883 0.385 0.402 0 0 c -0.827 2.692 m -0.949 2.816 -1.113 2.881 -1.326 2.881 c -1.54 2.881 -1.694 2.816 -1.817 2.692 c -2.038 2.473 -2.062 2.105 -2.062 1.661 c -2.062 1.22 -2.038 0.842 -1.817 0.622 c -1.694 0.498 -1.54 0.435 -1.326 0.435 c -1.113 0.435 -0.949 0.498 -0.827 0.622 c -0.606 0.842 -0.581 1.22 -0.581 1.661 c -0.581 2.105 -0.606 2.473 -0.827 2.692 c f Q q 1 0 0 1 456.343 626.165 cm 0.35 g 0 0 m -0.262 -0.278 -0.695 -0.524 -1.326 -0.524 c -1.955 -0.524 -2.382 -0.278 -2.644 0 c -3.028 0.402 -3.126 0.883 -3.126 1.661 c -3.126 2.432 -3.028 2.913 -2.644 3.314 c -2.382 3.594 -1.955 3.839 -1.326 3.839 c -0.695 3.839 -0.262 3.594 0 3.314 c 0.384 2.913 0.483 2.432 0.483 1.661 c 0.483 0.883 0.384 0.402 0 0 c -0.827 2.692 m -0.949 2.816 -1.113 2.881 -1.326 2.881 c -1.539 2.881 -1.694 2.816 -1.817 2.692 c -2.038 2.473 -2.062 2.105 -2.062 1.661 c -2.062 1.22 -2.038 0.842 -1.817 0.622 c -1.694 0.498 -1.539 0.435 -1.326 0.435 c -1.113 0.435 -0.949 0.498 -0.827 0.622 c -0.606 0.842 -0.581 1.22 -0.581 1.661 c -0.581 2.105 -0.606 2.473 -0.827 2.692 c f Q q 1 0 0 1 460.403 625.691 cm 0.35 g 0 0 m -1.047 1.775 l -1.498 1.268 l -1.498 0 l -2.562 0 l -2.562 5.827 l -1.498 5.827 l -1.498 2.52 l -0.083 4.264 l 1.202 4.264 l -0.319 2.544 l 1.318 0 l 0 0 l f Q q 1 0 0 1 463.814 625.641 cm 0.35 g 0 0 m -0.669 0 -1.276 0.074 -1.817 0.614 c -1.12 1.31 l -0.769 0.958 -0.309 0.909 0.017 0.909 c 0.386 0.909 0.771 1.031 0.771 1.351 c 0.771 1.563 0.655 1.711 0.32 1.744 c -0.351 1.809 l -1.12 1.884 -1.594 2.219 -1.594 3.006 c -1.594 3.888 -0.819 4.362 0.049 4.362 c 0.712 4.362 1.27 4.249 1.68 3.863 c 1.024 3.201 l 0.779 3.421 0.403 3.487 0.034 3.487 c -0.392 3.487 -0.573 3.291 -0.573 3.077 c -0.573 2.923 -0.506 2.742 -0.129 2.71 c 0.541 2.644 l 1.385 2.562 1.81 2.112 1.81 1.391 c 1.81 0.451 1.009 0 0 0 c f Q q 1 0 0 1 472.024 626.28 cm 0.35 g 0 0 m -0.409 -0.408 -0.908 -0.639 -1.571 -0.639 c -2.234 -0.639 -2.74 -0.408 -3.151 0 c -3.74 0.59 -3.724 1.318 -3.724 2.324 c -3.724 3.331 -3.74 4.06 -3.151 4.649 c -2.74 5.06 -2.234 5.287 -1.571 5.287 c -0.908 5.287 -0.409 5.06 0 4.649 c 0.59 4.06 0.582 3.331 0.582 2.324 c 0.582 1.318 0.59 0.59 0 0 c -0.842 3.961 m -1.007 4.15 -1.26 4.274 -1.571 4.274 c -1.882 4.274 -2.144 4.15 -2.307 3.961 c -2.528 3.716 -2.586 3.446 -2.586 2.324 c -2.586 1.203 -2.528 0.933 -2.307 0.687 c -2.144 0.499 -1.882 0.378 -1.571 0.378 c -1.26 0.378 -1.007 0.499 -0.842 0.687 c -0.622 0.933 -0.556 1.203 -0.556 2.324 c -0.556 3.446 -0.622 3.716 -0.842 3.961 c f Q q 1 0 0 1 476.165 625.691 cm 0.35 g 0 0 m 0 2.578 l 0 3.159 -0.368 3.356 -0.704 3.356 c -1.038 3.356 -1.415 3.159 -1.415 2.578 c -1.415 0 l -2.479 0 l -2.479 4.264 l -1.44 4.264 l -1.44 3.87 l -1.163 4.166 -0.769 4.314 -0.376 4.314 c 0.05 4.314 0.393 4.174 0.631 3.937 c 0.975 3.594 1.065 3.193 1.065 2.725 c 1.065 0 l 0 0 l f Q q 1 0 0 1 479.579 625.691 cm 0.35 g 0 0 m -0.876 0 -1.244 0.614 -1.244 1.218 c -1.244 5.827 l -0.18 5.827 l -0.18 1.285 l -0.18 1.031 -0.074 0.9 0.197 0.9 c 0.606 0.9 l 0.606 0 l 0 0 l f Q q 1 0 0 1 481.02 631.551 cm 0.35 g 0 0 1.088 -0.867 re 0.016 -1.596 1.064 -4.264 re f Q q 1 0 0 1 485.767 625.691 cm 0.35 g 0 0 m 0 2.578 l 0 3.159 -0.369 3.356 -0.704 3.356 c -1.039 3.356 -1.416 3.159 -1.416 2.578 c -1.416 0 l -2.479 0 l -2.479 4.264 l -1.441 4.264 l -1.441 3.87 l -1.163 4.166 -0.77 4.314 -0.377 4.314 c 0.049 4.314 0.392 4.174 0.631 3.937 c 0.973 3.594 1.063 3.193 1.063 2.725 c 1.063 0 l 0 0 l f Q q 1 0 0 1 488.811 627.491 cm 0.35 g 0 0 m 0 -0.548 0.335 -0.95 0.934 -0.95 c 1.4 -0.95 1.63 -0.819 1.899 -0.548 c 2.546 -1.179 l 2.112 -1.612 1.695 -1.85 0.926 -1.85 c -0.082 -1.85 -1.046 -1.391 -1.046 0.335 c -1.046 1.728 -0.294 2.512 0.812 2.512 c 1.998 2.512 2.67 1.646 2.67 0.474 c 2.67 0 l 0 0 l h 1.524 1.187 m 1.407 1.441 1.172 1.629 0.812 1.629 c 0.451 1.629 0.214 1.441 0.099 1.187 c 0.033 1.032 0.009 0.917 0 0.728 c 1.621 0.728 l 1.613 0.917 1.589 1.032 1.524 1.187 c f Q q 1 0 0 1 412.959 634.004 cm 0.261 g 0 0 m -3.72 0 -6.542 0.793 -8.953 3.237 c -5.855 6.335 l -4.305 4.788 -2.205 4.27 0.069 4.27 c 2.892 4.27 4.408 5.337 4.408 7.3 c 4.408 8.162 4.166 8.887 3.651 9.368 c 3.167 9.814 2.617 10.055 1.48 10.227 c -1.481 10.64 l -3.581 10.951 -5.131 11.605 -6.233 12.671 c -7.405 13.844 -7.989 15.428 -7.989 17.495 c -7.989 21.867 -4.752 24.932 0.55 24.932 c 3.926 24.932 6.37 24.105 8.471 22.073 c 5.44 19.078 l 3.891 20.556 2.031 20.764 0.413 20.764 c -2.136 20.764 -3.375 19.354 -3.375 17.666 c -3.375 17.045 -3.169 16.392 -2.652 15.908 c -2.17 15.46 -1.379 15.083 -0.38 14.945 c 2.512 14.532 l 4.752 14.224 6.164 13.602 7.196 12.638 c 8.505 11.399 9.091 9.607 9.091 7.439 c 9.091 2.684 5.13 0 0 0 c f Q q 1 0 0 1 434.389 634.212 cm 0.261 g 0 0 m 0 1.548 l -1.205 0.342 -2.339 -0.172 -4.407 -0.172 c -6.439 -0.172 -7.92 0.342 -8.987 1.411 c -9.951 2.408 -10.467 3.855 -10.467 5.439 c -10.467 8.298 -8.505 10.64 -4.338 10.64 c -0.103 10.64 l -0.103 11.534 l -0.103 13.499 -1.067 14.358 -3.442 14.358 c -5.164 14.358 -5.959 13.946 -6.887 12.878 c -9.745 15.666 l -7.988 17.595 -6.266 18.146 -3.272 18.146 c 1.757 18.146 4.375 16.011 4.375 11.811 c 4.375 0 l 0 0 l h -0.103 7.574 m -3.65 7.574 l -5.267 7.574 -6.163 6.818 -6.163 5.543 c -6.163 4.303 -5.337 3.478 -3.581 3.478 c -2.339 3.478 -1.549 3.581 -0.758 4.339 c -0.274 4.785 -0.103 5.508 -0.103 6.611 c -0.103 7.574 l f Q q 1 0 0 1 448.102 648.227 cm 0.261 g 0 0 m 0 -14.015 l -4.476 -14.015 l -4.476 0 l -6.336 0 l -6.336 3.409 l -4.476 3.409 l -4.476 5.646 l -4.476 8.193 -2.893 10.775 0.757 10.775 c 3.306 10.775 l 3.306 6.99 l 1.55 6.99 l 0.481 6.99 0 6.405 0 5.37 c 0 3.409 l 3.306 3.409 l 3.306 0 l 0 0 l f Q q 1 0 0 1 463.489 634.212 cm 0.261 g 0 0 m 0 1.548 l -1.204 0.342 -2.341 -0.172 -4.408 -0.172 c -6.439 -0.172 -7.921 0.342 -8.987 1.411 c -9.952 2.408 -10.468 3.855 -10.468 5.439 c -10.468 8.298 -8.504 10.64 -4.338 10.64 c -0.103 10.64 l -0.103 11.534 l -0.103 13.499 -1.068 14.358 -3.443 14.358 c -5.166 14.358 -5.957 13.946 -6.887 12.878 c -9.745 15.666 l -7.989 17.595 -6.266 18.146 -3.271 18.146 c 1.757 18.146 4.372 16.011 4.372 11.811 c 4.372 0 l 0 0 l h -0.103 7.574 m -3.65 7.574 l -5.268 7.574 -6.164 6.818 -6.164 5.543 c -6.164 4.303 -5.336 3.478 -3.581 3.478 c -2.341 3.478 -1.55 3.581 -0.758 4.339 c -0.275 4.785 -0.103 5.508 -0.103 6.611 c -0.103 7.574 l f Q q 1 0 0 1 481.41 647.261 cm 0.261 g 0 0 m -0.69 0.69 -1.275 1.069 -2.376 1.069 c -3.754 1.069 -5.269 0.036 -5.269 -2.239 c -5.269 -13.049 l -9.746 -13.049 l -9.746 4.89 l -5.372 4.89 l -5.372 3.169 l -4.513 4.202 -2.79 5.096 -0.86 5.096 c 0.894 5.096 2.133 4.65 3.374 3.411 c 0 0 l f Q q 1 0 0 1 -0 0 cm 0.261 g 486.821 634.212 4.476 17.941 re f Q q 1 0 0 1 490.803 655.492 cm 0.785 g 0 0 m -0.995 -0.998 -2.613 -0.995 -3.608 0.001 c -4.606 0.999 -4.606 2.613 -3.608 3.611 c -2.613 4.609 -0.995 4.609 0 3.611 c 0.998 2.613 0.998 0.999 0 0 c f Q q 1 0 0 1 498.093 655.492 cm 0.785 g 0 0 m -0.995 -0.998 -2.613 -0.995 -3.608 0.001 c -4.606 0.999 -4.606 2.613 -3.608 3.611 c -2.613 4.609 -0.995 4.609 0 3.611 c 0.998 2.613 0.998 0.999 0 0 c f Q q 1 0 0 1 -0 0 cm 404.005 625.641 104.521 38.299 re W n 1 0 0 1 499.617 661.678 cm 0.785 g 0 0 m 2.947 -2.95 4.379 -4.38 v 2.947 -5.809 0.001 -8.757 y 2.266 -11.023 l 8.911 -4.38 l 2.266 2.265 l 0 0 l f Q q 1 0 0 1 493.885 636.928 cm 0.261 g 0 0 m 0.736 -0.001 1.321 -0.601 1.32 -1.348 c 1.319 -2.106 0.732 -2.698 -0.009 -2.697 c -0.745 -2.696 -1.343 -2.104 -1.342 -1.344 c -1.341 -0.596 -0.742 0.002 -0.005 0 c 0 0 l h -0.005 -0.209 m -0.598 -0.209 -1.083 -0.716 -1.084 -1.344 c -1.085 -1.983 -0.601 -2.487 -0.003 -2.489 c 0.595 -2.495 1.074 -1.986 1.075 -1.354 c 1.076 -0.719 0.599 -0.21 0 -0.209 c -0.005 -0.209 l h -0.26 -2.13 m -0.499 -2.128 l -0.496 -0.627 l -0.372 -0.609 -0.252 -0.592 -0.073 -0.592 c 0.155 -0.593 0.304 -0.642 0.394 -0.706 c 0.483 -0.773 0.531 -0.874 0.531 -1.017 c 0.531 -1.214 0.399 -1.335 0.238 -1.382 c 0.238 -1.393 l 0.369 -1.418 0.458 -1.538 0.488 -1.76 c 0.523 -1.992 0.56 -2.082 0.584 -2.13 c 0.332 -2.13 l 0.296 -2.082 0.261 -1.943 0.231 -1.747 c 0.195 -1.556 0.098 -1.483 -0.091 -1.483 c -0.259 -1.483 l -0.26 -2.13 l h -0.259 -1.298 m -0.086 -1.298 l 0.111 -1.298 0.28 -1.226 0.28 -1.04 c 0.281 -0.908 0.183 -0.778 -0.085 -0.777 c -0.163 -0.777 -0.217 -0.783 -0.258 -0.789 c -0.259 -1.298 l f Q EMC EMC q 1 0 0 1 -0 0 cm 0.9 g 105.124 180.223 403.806 135.613 re f Q BT 0 g /GS1 gs /T1_0 1 Tf 0.0085 Tc 0.0015 Tw 15.9136 0 0 15.9136 185.729 295.078 Tm [(Ac)-29(ti)-9(v)-9(a)9(t)9(e)-1( yo)5(u)7(r)-1( F)-10(R)-7(EE On)9(li)9(n)7(e)-1( E)4(d)-1(i)5(t)3(i)4(o)3(n a)9(t)9( )]TJ 0 Tc 0 Tw 2.668 -1.187 Td [(inf)-17(o)-6(r)-23(m)2(it)-19(.c)-14(om)-16(/)23(s)-18(af)-27(ar)-24(if)-20(r)-6(e)-9(e)]TJ 0.05 Tc -0.025 Tw 10.9406 0 0 10.9406 141.924 256.289 Tm [(ST)8(E)20(P)25( 1)82(:)]TJ 0.265 g /GS0 gs /T1_1 1 Tf 0 Tc 0 Tw 3.349 0 Td ( )Tj 11.4379 0 0 11.4379 198.616 256.289 Tm ( )Tj 0.0012 Tc -0.0012 Tw T* [(E)-12(nter t)-12(h)1(e coupon code: LD)-6(M)-14(R)42(W)-9(B)-18(I)-18(.)]TJ 0 g /GS1 gs /T1_0 1 Tf 0.05 Tc -0.025 Tw 10.9406 0 0 10.9406 141.924 236.397 Tm [(ST)8(E)20(P)25( 2)25(:)]TJ 0.265 g /GS0 gs /T1_1 1 Tf 1.4977 Tc 0 Tw 3.406 0 Td ( )Tj 0.0106 Tc -0.0006 Tw 11.4379 0 0 11.4379 198.616 236.397 Tm [(N)-7(e)8(w S)-18(af)-15(a)1(r)-5(i)1( u)-6(s)6(er)-10(s)-10(,)1( com)-6(p)-2(le)-6(te t)-12(he br)-5(ie)-6(f r)7(e)-5(gis)-6(t)-8(r)-20(a)6(t)-5(i)1(on for)-8(m)-9(.)11( )]TJ 0.0111 Tc -0.0011 Tw 0 -1.217 TD [(S)-17(a)1(f)-14(a)2(r)-4(i)1( subs)6(cr)-4(iber)-10(s)-9(,)1( ju)-5(s)-6(t)1( log in)-6(.)]TJ 0.0104 Tc -0.0004 Tw 7.4595 0 0 7.4595 191.334 204.073 Tm [(I)-30(f yo)-18(u h)-25(a)4(ve d)-19(i)-20(f)-45(\002)244( )22(c)-16(u)-16(l)-20(t)-40(y r)-10(e)-21(g)-18(i)-18(s)-22(t)-21(e)-21(r)-21(i)-17(n)-16(g o)-19(n S)-34(a)-16(f)-30(a)-15(r)-21(i o)-15(r a)-11(c)-11(c)-11(e)-25(s)-19(s)-15(i)-17(n)-16(g t)-28(h)-17(e o)-19(n)-17(l)-15(i)-17(n)-17(e e)-20(d)-19(i)-20(t)-22(i)-15(o)-19(n)-26(,)10( )]TJ 0.0226 Tc -0.0126 Tw 3.503 -1.267 Td [(p)-6(l)-4(e)-19(a)-12(se)13( e)-27(-)-20(m)-15(a)-3(il)13( c)-4(u)-10(s)-10(t)-10(o)-8(m)-6(e)-8(r-)-13(se)-8(r)-33(v)-7(ice)-14(@)-10(s)-14(a)-4(f)-18(a)-3(r)-9(i)-6(b)-9(o)-6(o)-6(k)-24(so)-7(n)-4(l)-3(i)-5(n)-4(e)-16(.)7(co)-8(m)]TJ ET q 1 0 0 1 105.124 315.836 cm 0.68 G 1.989 w 4 M /GS2 gs 403.806 0 -403.806 -135.613 re S Q q 1 0 0 1 105.124 315.836 cm 0.68 G 1.989 w 4 M /GS2 gs 0 0 m h S Q q 1 0 0 1 -0 0 cm 239.47 685.008 -135.344 -180.089 re W n q /GS2 gs 135.396 0 0 180.126 104.097 504.912 cm /Im0 Do Q Q q 1 0 0 1 104.126 685.008 cm 0.265 G 0.5 w 4 M /GS2 gs 135.344 0 -135.344 -180.089 re S Q q 1 0 0 1 104.126 685.008 cm 0.265 G 0.5 w 4 M /GS2 gs 0 0 m h S Q BT /GS2 gs /T1_1 1 Tf -0.0625 Tc 0.0725 Tw 9.946 0 0 9.946 104.1293 476.394 Tm [(Yo)-81(u)-77(r)-72( p)-81(u)-77(r)-71(c)-85(h)-88(a)-87(s)-73(e)-72( o)-78(f)-72( )]TJ /T1_2 1 Tf 0.01 Tc 0 Tw [(A)-11(d)-20(v)8(a)-15(n)-7(c)-12(e)-11(d P)-12(r)-17(o)-6(g)-17(r)-12(a)-16(m)-16(m)-15(i)-13(n)-8(g i)-13(n t)-16(h)-6(e U)-23(N)-24(I)-19(X)]TJ 0 Tc 5.7985 0 0 5.7985 343.86 479.706 Tm (\256)Tj 0.01 Tc 9.946 0 0 9.946 348.209 476.394 Tm [( E)-19(n)-1(v)-12(i)-16(r)-17(o)-8(n)-11(m)-12(e)-13(n)-12(t)-49(, T)-13(h)-11(i)-16(r)-17(d E)-14(d)-18(i)-16(t)-17(i)-7(o)-8(n)-29(,)]TJ /T1_1 1 Tf 0.0177 Tc -0.0077 Tw [( include)-7(s)18( )]TJ 0.0107 Tc -0.0007 Tw -24.541 -1.4 Td [(acce)-14(s)-9(s)1( t)-12(o)1( a fre)-13(e)1( o)-8(n)-6(li)-6(n)-6(e)1( e)-9(d)-9(i)-10(t)-11(i)-5(o)-8(n fo)-5(r 4)-6(5)1( d)-18(a)14(y)-6(s)1( t)-18(h)-4(ro)-7(u)-7(g)-9(h t)-18(h)-6(e )]TJ /T1_3 1 Tf 0.01 Tc 0 Tw 23.095 0 Td [(S)-19(a)-13(f)-13(a)-19(r)-16(i B)-14(o)-8(o)-9(k)-24(s O)-17(n)-9(l)-8(i)-9(n)-9(e )]TJ /T1_1 1 Tf 0.0164 Tc [(su)-3(bscr)-5(ipt)-6(i)1(o)-3(n)16( )]TJ 0.0106 Tc -0.0006 Tw -23.095 -1.4 Td [(se)-10(r)-36(v)-9(ice)-18(.)1( N)-13(e)-22(a)-5(r)-11(l)-10(y)1( ev)9(e)-10(r)-37(y Ad)-7(d)-9(i)-8(so)-9(n)-21(-)23(W)41(e)-15(s)-7(l)-6(ey P)-8(r)2(o)-5(f)-3(e)-15(s)-9(s)-5(i)-5(o)-9(n)-15(a)-8(l)1( b)-11(o)-7(o)-8(k)1( i)-8(s)1( a)15(v)-17(ai)-5(l)-15(a)-10(b)-10(l)-6(e o)-9(n)-6(li)-6(n)-6(e)1( t)-18(h)-4(ro)-7(u)-7(g)-9(h )]TJ /T1_3 1 Tf 0.0264 Tc -0.0164 Tw 35.398 0 Td [(Sa)4(f)4(a)-3(ri)16( Bo)8(o)8(k)-8(s)26( )]TJ 0.0266 Tc 0 Tw -35.398 -1.4 Td [(On)7(l)9(i)7(n)8(e)]TJ /T1_1 1 Tf 0.011 Tc -0.001 Tw 3.267 0 Td [(, a)-8(l)-6(o)-8(n)-5(g w)-11(i)-10(t)-18(h)1( t)-18(h)-7(o)-7(u)-11(s)-16(a)-8(nd)-13(s o)-5(f)1( b)-10(o)-7(o)-8(k)-26(s a)-8(n)-3(d v)-8(i)-1(d)-8(e)-13(o)-5(s)1( fro)-9(m)1( p)-7(u)-8(b)-10(l)-4(i)-7(s)-7(h)-6(e)-10(r)-16(s su)-6(c)-11(h)1( a)-14(s)1( Ci)-7(sco P)-7(r)1(e)-14(s)-8(s)-16(,)1( E)-32(x)-13(a)-9(m)11( )]TJ 0.0108 Tc -0.0008 Tw -3.267 -1.4 Td [(Cr)-25(a)-10(m)-17(, I)-17(B)-25(M P)-7(r)1(e)-14(s)-9(s)-16(,)1( O)-4(\220)-24(R)10(e)-12(i)-5(l)-4(l)-10(y)1( M)-15(e)-9(d)-8(i)-15(a)-29(,)1( P)-7(r)1(e)-14(n)-6(t)-11(i)-2(ce H)-22(a)-8(ll)-13(, Q)-15(u)-6(e)-21(,)1( S)-23(a)-10(m)-12(s)-16(, a)-9(n)-3(d V)-15(M)-12(w)-19(a)-5(re P)-7(r)1(e)-14(s)-9(s)-13(.)]TJ /T1_3 1 Tf 0.01 Tc 0 Tw 0 -2 TD [(S)-19(a)-13(f)-13(a)-19(r)-16(i B)-14(o)-8(o)-9(k)-24(s O)-17(n)-9(l)-8(i)-9(n)-9(e)]TJ /T1_1 1 Tf 0.0109 Tc -0.0009 Tw [( i)-7(s)1( a d)-8(i)-4(g)-7(i)-10(t)-28(a)-8(l li)-7(b)-7(r)-25(a)-5(r)-37(y p)-6(r)2(o)9(v)-9(id)-8(i)-6(n)-5(g se)-22(a)-5(r)2(c)-11(h)-15(a)-9(b)-10(l)-5(e)-21(, o)-8(n)-21(-)-26(d)-8(e)-15(m)-17(a)-8(n)-3(d acce)-14(s)-9(s)1( t)-12(o)1( t)-18(h)-7(o)-7(u)-11(s)-16(a)-8(nd)-13(s o)-5(f)11( )]TJ 0.01 Tc 0 Tw 0 -1.4 TD [(t)-11(e)-13(c)-12(h)-9(n)-8(o)-8(l)-7(o)-5(g)-39(y)43(, d)-9(i)-5(g)-8(i)-11(t)-29(a)-9(l m)-9(e)-10(d)-9(i)-15(a)-30(, a)-9(n)-4(d p)-7(r)2(o)-6(f)-3(e)-15(s)-9(s)-5(i)-6(o)-9(n)-15(a)-9(l d)-9(e)4(v)8(e)-14(l)-7(o)-11(p)-12(m)-9(e)-15(n)-7(t b)-11(o)-8(o)-9(k)-27(s a)-9(n)-4(d v)-9(i)-2(d)-9(e)-14(o)-6(s fro)-10(m l)-6(e)-22(ad)-9(i)-7(n)-6(g p)-8(u)-9(b)-11(l)-5(i)-8(s)-8(h)-7(e)-11(r)-17(s)-13(.)10( )]TJ 0.0109 Tc -0.0009 Tw T* [(W)-7(i)-10(t)-18(h)1( o)-8(n)-6(e m)-9(o)-8(n)-6(t)-18(h)-6(l)-10(y o)-4(r)1( y)9(e)-22(a)-5(r)-11(l)-10(y)1( su)-8(b)-8(sc)-7(r)-10(i)-8(p)-7(t)-11(i)-5(o)-8(n)1( p)-6(r)-10(ice)-21(,)1( y)9(o)-7(u ge)-12(t u)-7(n)-6(li)-7(m)-7(i)-10(t)-10(e)-9(d acce)-14(s)-9(s)1( t)-12(o)1( l)-5(e)-22(a)-5(r)-12(n)-5(i)-6(n)-5(g)1( t)-12(o)-7(o)-7(l)-10(s a)-8(n)-3(d)11( )]TJ 0.0107 Tc -0.0007 Tw T* [(i)-6(n)-6(fo)-5(r)-14(m)-17(at)-11(i)-5(o)-8(n o)-8(n)1( t)-12(o)-10(p)-5(i)-2(c)-13(s)1( i)-6(n)-6(c)-10(l)-6(u)-5(d)-9(i)-6(n)-6(g m)-9(o)-9(b)-8(i)-5(l)-6(e)1( a)-11(p)-12(p a)-9(n)-3(d so)-5(f)-37(t)-30(w)-19(a)-5(re d)-9(e)4(v)9(e)-13(l)-7(o)-10(p)-11(m)-8(e)-14(n)-6(t)-42(,)1( t)-11(i)-8(p)-7(s)1( a)-9(n)-3(d t)-14(r)-11(ic)-11(k)-26(s)1( o)-8(n)1( u)-12(s)-5(i)-6(n)-6(g)11( )]TJ 0.0106 Tc T* [(y)9(o)-7(ur f)-20(a)15(v)9(o)-5(r)-11(i)-10(t)-10(e)1( g)-22(a)2(d)-9(g)-1(e)-12(t)-21(s)-16(,)1( n)-6(e)-12(t)-30(w)6(o)-5(r)-12(k)-21(i)-6(n)-6(g)-14(, p)-6(r)2(oje)-13(c)-20(t m)-17(a)-9(n)-15(a)-10(ge)-15(m)-8(e)-14(n)-6(t)-42(, g)-6(r)-25(a)-11(p)-10(h)-5(i)-3(c d)-9(e)-15(s)-5(i)-5(g)-9(n)-15(, a)-9(n)-3(d m)-7(u)-7(c)-11(h)1( m)-9(o)-5(re)-18(.)]TJ 1 g /T1_0 1 Tf 0.0125 Tc 0 Tw 29.8379 0 0 29.8379 252.324 602.171 Tm [(FRE)8(E)13( )]TJ -0.0001 Tc 0.0101 Tw 27.8487 0 0 27.8487 252.324 572.333 Tm [(Online)-10( Ed)-6(ition)]TJ ET q 1 0 0 1 508.673 160.422 cm 0.853 G 0.757 w 4 M 0 0 m -406.048 0 l S Q q 1 0 0 1 139.187 136.237 cm 0.729 g 0 0 m 0.325 1.008 0.665 2.012 1.022 3.051 c 1.042 3.051 l 1.996 0 l 0 0 l h 1.508 4.818 m 1.208 4.708 l -1.118 -1.846 l -1.527 -2.976 -1.667 -3.114 -2.389 -3.224 c -2.389 -3.471 l 0.129 -3.471 l 0.129 -3.224 l -0.735 -3.127 -0.853 -2.976 -0.662 -2.184 c -0.527 -1.67 -0.27 -0.823 -0.148 -0.45 c 2.142 -0.45 l 2.416 -1.271 2.686 -2.135 2.778 -2.432 c 2.943 -2.976 2.843 -3.127 2.06 -3.224 c 2.06 -3.471 l 4.926 -3.471 l 4.926 -3.224 l 4.234 -3.127 4.083 -2.979 3.709 -1.919 c 3.274 -0.665 2.774 0.89 2.269 2.465 c 1.508 4.818 l f Q q 1 0 0 1 146.313 133.34 cm 0.729 g 0 0 m -0.761 0 -1.604 0.744 -1.604 2.279 c -1.613 4.201 -0.565 4.641 -0.078 4.641 c 0.378 4.641 0.887 4.461 1.152 3.984 c 1.152 0.448 l 0.853 0.209 0.44 0 0 0 c 2.105 8.349 m 1.64 8.179 0.857 7.979 0.279 7.902 c 0.279 7.671 l 1.1 7.575 1.152 7.544 1.152 6.762 c 1.152 4.944 l 0.905 5.018 0.579 5.048 0.431 5.048 c -1.366 5.048 -2.696 3.649 -2.696 1.943 c -2.696 0.199 -1.404 -0.726 -0.464 -0.726 c -0.304 -0.726 -0.095 -0.665 0.31 -0.435 c 1.152 0.059 l 1.152 -0.726 l 1.796 -0.466 2.688 -0.309 2.966 -0.249 c 2.966 -0.013 l 2.55 0.031 l 2.184 0.059 2.097 0.157 2.105 0.791 c 2.105 8.349 l f Q q 1 0 0 1 151.658 132.971 cm 0.729 g 0 0 m -0.978 0 -1.535 1.191 -1.535 2.848 c -1.535 4.257 -1.021 5.066 -0.278 5.066 c -0.274 5.066 l 0.783 5.066 1.252 3.839 1.252 2.339 c 1.252 0.555 0.718 0 0 0 c -0.126 5.417 m -0.139 5.417 l -1.239 5.417 -2.665 4.475 -2.665 2.383 c -2.665 1.051 -1.736 -0.357 -0.148 -0.357 c 1.044 -0.357 2.362 0.647 2.362 2.638 c 2.362 4.165 1.331 5.417 -0.126 5.417 c f Q q 1 0 0 1 156.496 132.984 cm 0.729 g 0 0 m -0.005 0 -0.01 0 -0.014 0 c -0.663 0.029 -0.998 0.447 -1.077 0.664 c -1.12 0.804 -1.138 0.938 -1.138 1.118 c -1.138 4.522 l -0.951 4.648 -0.611 4.756 -0.254 4.756 c 0.863 4.756 1.581 3.887 1.581 2.465 c 1.581 0.946 0.969 0 0 0 c -1.138 8.705 m -1.611 8.535 -2.315 8.348 -2.894 8.274 c -2.894 8.04 l -2.137 7.931 -2.098 7.883 -2.098 7.087 c -2.098 0.069 l -1.477 -0.248 -0.898 -0.37 -0.293 -0.37 c 1.302 -0.37 2.668 0.969 2.668 2.803 c 2.668 4.261 1.637 5.404 0.368 5.404 c 0.172 5.404 0.002 5.37 -0.159 5.283 c -1.138 4.865 l -1.138 8.705 l f Q q 1 0 0 1 160.426 136.393 cm 0.729 g 0 0 m 0.108 0.999 0.664 1.588 1.191 1.588 c 1.217 1.588 l 1.891 1.588 2.251 0.944 2.247 0.308 c 2.247 0.107 2.183 0.031 2.004 0.031 c 1.339 0.013 0.656 0.008 0 0 c 1.517 1.995 m 1.504 1.995 l 0.969 1.995 0.347 1.696 -0.11 1.209 c -0.697 0.626 -1.031 -0.227 -1.031 -1.148 c -1.031 -2.57 -0.158 -3.779 1.308 -3.779 c 1.674 -3.779 2.517 -3.532 3.2 -2.57 c 3.03 -2.371 l 2.586 -2.805 2.183 -2.966 1.743 -2.966 c 1.737 -2.966 1.731 -2.966 1.725 -2.966 c 0.856 -2.966 -0.092 -2.297 -0.078 -0.444 c 1.356 -0.387 2.813 -0.278 2.982 -0.248 c 3.209 -0.187 3.26 -0.127 3.26 0.157 c 3.27 1.069 2.495 1.995 1.517 1.995 c f Q q 1 0 0 1 163.747 138.068 cm 0.729 g 0 0 m 0 0.12 l 0.04 0.12 l 0.135 0.06 l 0.04 0 l 0 0 l h 0.048 0.177 m -0.069 0.15 l -0.069 -0.211 l 0 -0.211 l 0 -0.058 l 0.04 -0.058 l 0.118 -0.127 l 0.139 -0.211 l 0.209 -0.211 l 0.187 -0.127 l 0.127 -0.031 l 0.196 0.06 l 0.166 0.147 l 0.048 0.177 l h 0.061 -0.297 m -0.082 -0.297 -0.2 -0.176 -0.2 -0.018 c -0.2 0.138 -0.082 0.26 0.061 0.26 c 0.209 0.26 0.326 0.138 0.326 -0.018 c 0.326 -0.176 0.209 -0.297 0.061 -0.297 c 0.061 0.316 m -0.121 0.316 -0.269 0.168 -0.269 -0.018 c -0.269 -0.205 -0.121 -0.35 0.061 -0.35 c 0.248 -0.35 0.396 -0.205 0.396 -0.018 c 0.396 0.168 0.248 0.316 0.061 0.316 c f Q q 1 0 0 1 167.705 136.5 cm 0.729 g 0 0 m -0.353 0 -0.635 0.063 -0.787 0.14 c -0.787 3.641 l -0.787 3.872 -0.757 3.951 -0.687 3.981 c -0.596 4.014 -0.439 4.046 -0.213 4.046 c 0.922 4.046 1.652 3.441 1.652 2.084 c 1.652 0.401 0.682 0 0 0 c 0.026 4.384 m -2.797 4.384 l -2.797 4.137 l -1.913 4.046 -1.818 3.906 -1.818 2.881 c -1.818 -2.246 l -1.818 -3.251 -1.918 -3.409 -2.857 -3.487 c -2.857 -3.734 l 0.422 -3.734 l 0.422 -3.487 l -0.687 -3.409 -0.787 -3.251 -0.787 -2.251 c -0.787 -0.216 l 0.04 -0.434 l 0.098 -0.44 0.164 -0.443 0.236 -0.443 c 0.308 -0.443 0.385 -0.44 0.465 -0.434 c 1.636 -0.268 2.814 0.545 2.814 2.107 c 2.814 2.928 2.504 3.501 2.022 3.872 c 1.544 4.246 0.87 4.384 0.026 4.384 c f Q q 1 0 0 1 172.523 138.424 cm 0.729 g 0 0 m -0.578 -0.244 -1.092 -0.405 -1.687 -0.506 c -1.687 -0.731 l -0.995 -0.84 -0.952 -0.883 -0.952 -1.691 c -0.952 -4.41 l -0.952 -5.193 -1.061 -5.333 -1.757 -5.411 c -1.757 -5.658 l 0.988 -5.658 l 0.988 -5.411 l 0.096 -5.333 0 -5.193 0 -4.371 c 0 -1.94 l 0.283 -1.258 0.614 -0.992 0.871 -0.992 c 1.062 -0.992 1.21 -1.087 1.375 -1.258 c 1.407 -1.291 1.458 -1.311 1.52 -1.311 c 1.571 -1.311 1.629 -1.298 1.692 -1.267 c 1.939 -1.166 2.101 -0.918 2.101 -0.67 c 2.101 -0.374 1.813 -0.036 1.435 -0.036 c 0.891 -0.036 0.344 -0.713 0.027 -1.319 c 0 -1.319 l 0 0 l f Q q 1 0 0 1 175.646 136.393 cm 0.729 g 0 0 m 0.117 0.999 0.683 1.588 1.208 1.588 c 1.217 1.588 l 1.901 1.588 2.261 0.944 2.257 0.308 c 2.257 0.107 2.191 0.031 2.013 0.031 c 1.357 0.013 0.665 0.008 0 0 c 1.525 1.995 m 1.513 1.995 l 0.979 1.995 0.357 1.696 -0.1 1.209 c -0.683 0.626 -1.022 -0.227 -1.022 -1.148 c -1.022 -2.57 -0.148 -3.779 1.318 -3.779 c 1.692 -3.779 2.527 -3.532 3.2 -2.57 c 3.036 -2.371 l 2.596 -2.805 2.191 -2.966 1.761 -2.966 c 1.755 -2.966 1.749 -2.966 1.743 -2.966 c 0.865 -2.966 -0.083 -2.297 -0.07 -0.444 c 1.366 -0.387 2.822 -0.278 2.992 -0.248 c 3.213 -0.187 3.278 -0.127 3.278 0.157 c 3.278 1.069 2.504 1.995 1.525 1.995 c f Q q 1 0 0 1 181.186 138.388 cm 0.729 g 0 0 m -1.11 0 -1.852 -0.733 -1.852 -1.655 c -1.852 -2.522 -1.07 -2.939 -0.388 -3.266 c 0.256 -3.561 0.587 -3.918 0.587 -4.523 c 0.587 -5.13 0.2 -5.417 -0.265 -5.417 c -1.009 -5.417 -1.613 -4.536 -1.822 -3.791 c -2.062 -3.821 l -2.052 -4.335 -1.962 -5.096 -1.892 -5.31 c -1.674 -5.527 -1.101 -5.774 -0.483 -5.774 c 0.457 -5.774 1.509 -5.196 1.509 -4.039 c 1.509 -3.205 0.913 -2.718 0.013 -2.322 c -0.544 -2.074 -1.009 -1.777 -1.009 -1.191 c -1.009 -0.695 -0.674 -0.351 -0.235 -0.351 c 0.287 -0.351 0.735 -0.796 1.053 -1.625 c 1.3 -1.548 l 1.27 -1.283 1.144 -0.496 1.04 -0.2 c 0.796 -0.091 0.47 0 0 0 c f Q q 1 0 0 1 185.095 138.388 cm 0.729 g 0 0 m -1.1 0 -1.848 -0.733 -1.848 -1.655 c -1.848 -2.522 -1.065 -2.939 -0.387 -3.266 c 0.257 -3.561 0.592 -3.918 0.592 -4.523 c 0.592 -5.13 0.205 -5.417 -0.26 -5.417 c -1.005 -5.417 -1.6 -4.536 -1.817 -3.791 c -2.057 -3.821 l -2.053 -4.335 -1.951 -5.096 -1.886 -5.31 c -1.671 -5.527 -1.1 -5.774 -0.487 -5.774 c 0.457 -5.774 1.513 -5.196 1.513 -4.039 c 1.513 -3.205 0.922 -2.718 0.026 -2.322 c -0.539 -2.074 -0.995 -1.777 -1.005 -1.191 c -1.005 -0.695 -0.674 -0.351 -0.231 -0.351 c 0.296 -0.351 0.739 -0.796 1.061 -1.625 c 1.305 -1.548 l 1.271 -1.283 1.148 -0.496 1.04 -0.2 c 0.801 -0.091 0.474 0 0 0 c f Q q 1 0 0 1 210.501 144.838 cm 0.729 g 0 0 m -0.049 0 l -0.087 -0.023 l -0.266 -0.183 l -1.723 -2.201 l -5.511 -6.525 l 2.696 -6.767 2.382 -7.228 v 2.065 -7.684 -6.315 -7.427 y -8.25 -9.636 l -8.25 -9.741 l -8.268 -9.82 -8.268 -9.868 -8.268 -9.929 c -8.268 -10.133 -8.237 -10.333 -8.159 -10.52 c -8.089 -10.672 -8.05 -10.877 -8.05 -11.089 c -8.05 -11.216 -8.089 -11.324 -8.159 -11.416 c -8.237 -11.485 -8.328 -11.542 -8.429 -11.593 c -8.538 -11.633 -8.672 -11.651 -8.794 -11.663 c -8.925 -11.682 -9.033 -11.682 -9.159 -11.682 c -9.281 -11.682 -9.429 -11.663 -9.599 -11.633 c -9.763 -11.62 -9.925 -11.555 -10.089 -11.485 c -10.229 -11.416 -10.359 -11.324 -10.468 -11.216 c -10.551 -11.124 -10.616 -10.985 -10.616 -10.812 c -10.616 -10.612 -10.521 -10.424 -10.338 -10.233 c -10.159 -10.068 -9.941 -9.906 -9.707 -9.759 c -9.468 -9.621 -9.211 -9.472 -8.981 -9.341 c -8.741 -9.215 -8.563 -9.094 -8.429 -8.968 c -8.268 -8.807 -8.072 -8.568 -7.833 -8.301 c -7.603 -8.024 -7.324 -7.745 -7.05 -7.45 c -6.902 -7.28 -7.803 -7.318 -7.603 -6.924 c -7.384 -6.525 -6.355 -6.661 -6.237 -6.537 c -5.967 -6.228 -5.71 -5.948 -5.471 -5.701 c -5.237 -5.446 -5.058 -5.236 -4.898 -5.041 c -4.749 -4.88 -4.658 -4.771 -4.628 -4.715 c -4.532 -4.614 -4.371 -4.397 -4.114 -4.076 c -3.858 -3.758 -3.588 -3.424 -3.302 -3.037 c -3.005 -2.648 -2.736 -2.292 -2.467 -1.943 c -2.193 -1.596 -2.01 -1.34 -1.901 -1.209 c -1.653 -0.852 -1.436 -0.535 -1.236 -0.252 c -1.031 0.017 -0.871 0.274 -0.744 0.526 c -0.614 0.773 -0.505 1.039 -0.453 1.334 c -0.414 1.626 -0.396 1.97 -0.453 2.357 c -0.179 2.518 0.073 2.666 0.33 2.805 c 0.578 2.962 0.873 3.022 1.182 3.022 c 1.252 3.022 1.361 3.022 1.491 3.022 c 1.617 3.022 1.708 2.962 1.726 2.853 c 1.795 2.696 1.904 2.465 2.052 2.139 c 2.2 1.813 2.36 1.444 2.56 1.029 c 2.756 0.613 2.956 0.178 3.174 -0.278 c 3.374 -0.728 3.578 -1.161 3.778 -1.579 c 3.957 -1.996 4.117 -2.361 4.283 -2.697 c 4.443 -2.997 4.552 -3.226 4.631 -3.374 c 4.918 -3.979 5.265 -4.571 5.644 -5.11 c 6.022 -5.635 6.418 -6.172 6.844 -6.692 c 7.257 -7.219 7.657 -7.745 8.079 -8.301 c 8.47 -8.845 8.836 -9.402 9.162 -9.994 c 9.31 -10.176 9.488 -10.363 9.719 -10.493 c 9.957 -10.612 10.184 -10.729 10.393 -10.859 c 10.61 -10.985 10.797 -11.124 10.958 -11.324 c 11.105 -11.511 11.175 -11.758 11.175 -12.081 c 11.175 -12.12 11.184 -12.208 11.175 -12.33 c 11.158 -12.674 10.741 -12.903 9.64 -12.903 c 8.54 -12.903 7.953 -12.446 8.079 -12.534 c 8.192 -12.595 7.796 -12.395 7.604 -12.145 c 7.405 -11.898 7.161 -11.593 6.914 -11.216 c 6.662 -10.842 6.388 -10.424 6.118 -9.959 c 5.847 -9.502 5.592 -9.094 5.335 -8.675 c 5.096 -8.254 4.878 -7.902 4.679 -7.576 c 4.483 -7.258 4.352 -7.05 4.265 -6.924 c 4.243 -6.924 4.196 -6.846 4.104 -6.737 c 4.01 -6.637 3.917 -6.537 3.809 -6.427 c 3.718 -6.319 3.609 -6.211 3.522 -6.101 c 3.431 -6.009 3.374 -5.932 3.352 -5.918 c 3.265 -5.793 l 3.144 -5.606 l 3.035 -5.493 l 2.995 -5.406 l 2.978 -5.388 2.978 -5.335 2.956 -5.245 c 2.943 -5.158 2.848 -4.988 2.687 -4.715 c 2.521 -4.463 2.413 -4.323 2.36 -4.284 c 2.269 -4.227 l 2.182 -4.166 2.091 -3.997 1.983 -3.731 c 1.874 -3.511 1.739 -3.223 1.617 -2.91 c 1.491 -2.592 1.361 -2.274 1.239 -1.935 c 1.104 -1.579 0.965 -1.27 0.817 -0.983 c 0.686 -0.687 0.547 -0.458 0.399 -0.278 c 0.278 -0.092 0.13 0 0 0 c f Q q 1 0 0 1 200.855 128.161 cm 0.729 g 0 0 m -1.1 0 l -0.587 1.665 l -0.583 1.665 l 0 0 l h 0.257 -0.735 m 0.605 -1.718 l 1.566 -1.718 l -0.187 3.03 l -0.883 3.03 l -2.679 -1.718 l -1.735 -1.718 l -1.358 -0.735 l 0.257 -0.735 l f Q q 1 0 0 1 205.434 127.235 cm 0.729 g 0 0 m 1.278 0 l 1.278 -0.792 l -0.9 -0.792 l -0.9 3.837 l 0 3.837 l 0 0 l f Q q 1 0 0 1 209.739 130.321 cm 0.729 g 0 0 m 0.157 0 l 0.661 0 1.001 -0.082 1.001 -0.694 c 1.001 -1.282 0.713 -1.399 0.179 -1.399 c 0 -1.399 l 0 0 l h 0 -2.152 m 0.444 -2.152 l 1.388 -2.152 1.923 -1.669 1.923 -0.694 c 1.923 0.358 1.288 0.751 0.318 0.751 c -0.904 0.751 l -0.904 -3.878 l 0 -3.878 l 0 -2.152 l f Q q 1 0 0 1 216.471 129.248 cm 0.729 g 0 0 m 0 1.824 l 0.905 1.824 l 0.905 -2.805 l 0 -2.805 l 0 -0.74 l -1.665 -0.74 l -1.665 -2.805 l -2.566 -2.805 l -2.566 1.824 l -1.665 1.824 l -1.665 0 l 0 0 l f Q q 1 0 0 1 222.172 128.161 cm 0.729 g 0 0 m -1.1 0 l -0.587 1.665 l -0.583 1.665 l 0 0 l h 0.248 -0.735 m 0.604 -1.718 l 1.566 -1.718 l -0.187 3.03 l -0.883 3.03 l -2.687 -1.718 l -1.735 -1.718 l -1.356 -0.735 l 0.248 -0.735 l f Q q 1 0 0 1 239.368 138.315 cm 0.729 g 0 0 m 0.004 0.695 -0.423 1.252 -1.271 1.252 c -2.289 1.252 -2.545 -0.235 -2.545 -1.162 c -2.545 -2.093 -2.289 -3.597 -1.271 -3.597 c -0.423 -3.597 0.004 -3.04 0 -2.34 c 1.508 -2.34 l 1.447 -3.984 0.252 -4.618 -1.271 -4.618 c -3.193 -4.618 -4.062 -3.101 -4.062 -1.162 c -4.062 0.782 -3.193 2.291 -1.271 2.291 c 0.252 2.291 1.447 1.657 1.508 0 c 0 0 l f Q q 1 0 0 1 243.089 138.444 cm 0.729 g -1.378 0 1.378 -4.618 re 0 0 m h -1.422 2.024 1.471 -1.192 re f Q q 1 0 0 1 246.599 137.223 cm 0.729 g 0 0 m -0.023 0.3 -0.317 0.439 -0.626 0.439 c -0.996 0.439 -1.174 0.33 -1.174 0.03 c -1.174 -0.7 1.457 -0.286 1.457 -2.009 c 1.457 -3.013 0.235 -3.526 -0.626 -3.526 c -1.705 -3.526 -2.639 -3.109 -2.657 -2.053 c -1.379 -2.053 l -1.348 -2.406 -1.031 -2.614 -0.626 -2.614 c -0.248 -2.614 0.03 -2.449 0.03 -2.088 c 0.03 -1.73 -0.626 -1.566 -0.904 -1.514 c -1.778 -1.296 -2.601 -1.101 -2.601 -0.026 c -2.601 0.935 -1.431 1.352 -0.626 1.352 c 0.348 1.352 1.179 1.013 1.239 0 c 0 0 l f Q q 1 0 0 1 251.309 136.827 cm 0.729 g 0 0 m -0.004 0.37 -0.162 0.835 -0.696 0.835 c -1.283 0.835 -1.292 -0.265 -1.309 -0.621 c -1.279 -1.056 -1.262 -2.218 -0.679 -2.218 c -0.148 -2.218 0.009 -1.692 0.026 -1.318 c 1.365 -1.318 l 1.317 -2.478 0.591 -3.13 -0.679 -3.13 c -2.044 -3.13 -2.732 -1.904 -2.732 -0.691 c -2.732 0.526 -2.044 1.748 -0.679 1.748 c 0.495 1.748 1.374 1.083 1.365 0 c 0 0 l f Q q 1 0 0 1 254.696 136.136 cm 0.729 g 0 0 m 0 0.743 0.131 1.526 0.974 1.526 c 1.826 1.526 1.957 0.743 1.957 0 c 1.957 -0.736 1.826 -1.527 0.974 -1.527 c 0.131 -1.527 0 -0.736 0 0 c 3.384 0 m 3.384 1.448 2.488 2.439 0.974 2.439 c -0.526 2.439 -1.426 1.448 -1.426 0 c -1.426 -1.448 -0.526 -2.439 0.974 -2.439 c 2.488 -2.439 3.384 -1.448 3.384 0 c f Q q 1 0 0 1 263.046 139.367 cm 0.729 g 0 0 m 0.791 -0.039 1.827 0.231 1.827 -0.944 c 1.827 -2.114 0.791 -1.844 0 -1.874 c 0 0 l h 0 -5.541 m 0 -2.975 l 1.039 -2.975 l 2.517 -2.928 3.339 -2.14 3.339 -0.944 c 3.339 0.735 2.101 1.083 0.626 1.101 c -1.418 1.101 l -1.418 -5.541 l 0 -5.541 l f Q q 1 0 0 1 268.382 138.444 cm 0.729 g 0 0 m 0.03 -0.829 l 0.047 -0.829 l 0.343 -0.107 0.94 0.071 1.617 0.062 c 1.617 -1.16 l 1.022 -1.16 l 0.791 -1.186 0.487 -1.317 0.357 -1.507 c 0.205 -1.757 0.179 -2.02 0.169 -2.322 c 0.169 -4.618 l -1.201 -4.618 l -1.214 -0.921 l -1.214 -0.72 -1.239 -0.334 -1.252 0 c 0 0 l f Q q 1 0 0 1 272.022 136.687 cm 0.729 g 0 0 m 0.017 0.51 0.157 0.975 0.791 0.975 c 1.465 0.975 1.596 0.51 1.596 0 c 0 0 l h 3.021 -0.916 m 3.021 -0.603 3.021 -0.312 2.992 -0.029 c 2.952 0.271 2.882 0.54 2.761 0.788 c 2.369 1.61 1.652 1.888 0.791 1.888 c -0.609 1.888 -1.422 0.828 -1.422 -0.56 c -1.422 -2.091 -0.788 -2.99 0.791 -2.99 c 1.869 -2.99 2.761 -2.604 2.874 -1.473 c 1.635 -1.473 l 1.504 -1.908 1.274 -2.078 0.791 -2.078 c 0.087 -2.078 0 -1.517 0 -0.916 c 3.021 -0.916 l f Q q 1 0 0 1 278.245 137.223 cm 0.729 g 0 0 m -0.027 0.3 -0.317 0.439 -0.631 0.439 c -1.009 0.439 -1.178 0.33 -1.178 0.03 c -1.178 -0.7 1.456 -0.286 1.456 -2.009 c 1.456 -3.013 0.221 -3.526 -0.631 -3.526 c -1.705 -3.526 -2.636 -3.109 -2.657 -2.053 c -1.379 -2.053 l -1.357 -2.406 -1.031 -2.614 -0.631 -2.614 c -0.248 -2.614 0.03 -2.449 0.03 -2.088 c 0.03 -1.73 -0.631 -1.566 -0.909 -1.514 c -1.784 -1.296 -2.605 -1.101 -2.605 -0.026 c -2.605 0.935 -1.435 1.352 -0.631 1.352 c 0.348 1.352 1.174 1.013 1.239 0 c 0 0 l f Q q 1 0 0 1 282.837 137.223 cm 0.729 g 0 0 m -0.021 0.3 -0.318 0.439 -0.627 0.439 c -1.009 0.439 -1.178 0.33 -1.178 0.03 c -1.178 -0.7 1.457 -0.286 1.457 -2.009 c 1.457 -3.013 0.226 -3.526 -0.627 -3.526 c -1.705 -3.526 -2.64 -3.109 -2.657 -2.053 c -1.387 -2.053 l -1.358 -2.406 -1.031 -2.614 -0.627 -2.614 c -0.247 -2.614 0.03 -2.449 0.03 -2.088 c 0.03 -1.73 -0.627 -1.566 -0.905 -1.514 c -1.789 -1.296 -2.6 -1.101 -2.6 -0.026 c -2.6 0.935 -1.435 1.352 -0.627 1.352 c 0.348 1.352 1.17 1.013 1.239 0 c 0 0 l f Q q 1 0 0 1 422.123 140.985 cm 0.798 g 0 0 m 0.048 0.169 l 0.157 0.169 l 0.257 0.1 l 0.249 0 0.157 0 0.087 0 c 0 0 l h 0.17 0.235 m -0.021 0.235 l -0.146 -0.297 l -0.069 -0.297 l -0.013 -0.061 l 0.087 -0.061 l 0.18 -0.297 l 0.265 -0.297 l 0.17 -0.061 l 0.257 -0.061 0.326 0 0.336 0.077 c 0.336 0.169 0.297 0.235 0.17 0.235 c 0.091 -0.479 m -0.138 -0.479 -0.331 -0.297 -0.331 -0.048 c -0.331 0.196 -0.138 0.377 0.091 0.377 c 0.336 0.377 0.535 0.196 0.535 -0.048 c 0.535 -0.297 0.336 -0.479 0.091 -0.479 c 0.091 0.456 m -0.188 0.456 -0.408 0.235 -0.408 -0.048 c -0.408 -0.326 -0.188 -0.556 0.091 -0.556 c 0.374 -0.556 0.605 -0.326 0.605 -0.048 c 0.605 0.235 0.374 0.456 0.091 0.456 c f Q q 1 0 0 1 395.361 142.767 cm 0.798 g 0 0 m -2.148 0 l -3.6 -3.022 l -3.696 0 l -5.84 0 l -7.04 -5.414 l -5.471 -5.414 l -4.74 -2.509 l -4.697 -5.414 l -3.569 -5.414 l -2.121 -2.509 l -2.765 -5.414 l -1.209 -5.414 l 0 0 l f Q q 1 0 0 1 397.179 142.767 cm 0.798 g 0 0 m -1.453 0 l -1.639 -0.882 l -0.191 -0.882 l 0 0 l f Q q 1 0 0 1 396.871 141.362 cm 0.798 g 0 0 m -1.458 0 l -2.344 -4.004 l -0.893 -4.004 l 0 0 l f Q q 1 0 0 1 399.162 141.471 cm 0.798 g 0 0 m -2.94 0 -3.567 -4.176 -0.913 -4.235 c -0.883 -4.236 -0.854 -4.237 -0.825 -4.237 c 1.113 -4.237 1.566 -2.66 1.566 -2.631 c 0.039 -2.631 l 0.002 -2.699 -0.203 -3.214 -0.642 -3.214 c -0.647 -3.214 -0.653 -3.213 -0.657 -3.213 c -1.639 -3.195 -1.013 -0.982 -0.122 -0.952 c -0.119 -0.952 -0.115 -0.952 -0.112 -0.952 c 0.356 -0.952 0.314 -1.54 0.288 -1.6 c 1.791 -1.6 l 1.809 -1.54 1.9 -0.099 0.158 -0.004 c 0.104 -0.001 0.052 0 0 0 c f Q q 1 0 0 1 418.757 142.718 cm 0.798 g 0 0 m -0.357 0 -0.809 -0.042 -1.056 -0.228 c -1.365 -0.477 -1.474 -0.742 -1.604 -1.356 c -2.327 -1.356 l -2.534 -2.277 l -1.8 -2.277 l -2.465 -5.36 l -1.036 -5.36 l -0.361 -2.277 l 0.44 -2.277 l -0.003 -4.304 l -0.125 -4.83 0.066 -5.078 0.236 -5.203 c 0.434 -5.335 0.828 -5.367 1.172 -5.367 c 1.512 -5.367 1.802 -5.335 y 2.017 -4.431 l 1.922 -4.439 1.805 -4.439 v 1.636 -4.439 1.423 -4.421 1.392 -4.334 c 1.352 -4.212 1.392 -4.134 1.4 -4.042 c 1.779 -2.277 l 2.462 -2.277 l 2.67 -1.356 l 1.98 -1.356 l 2.189 -0.377 l 0.858 -0.377 l 0.639 -1.356 l -0.212 -1.356 l -0.188 -1.251 l -0.117 -0.933 -0.087 -0.772 0.371 -0.772 c 0.522 -0.028 l 0.292 0 0 0 v f Q q 1 0 0 1 403.998 141.433 cm 0.798 g 0 0 m -0.247 0 -0.456 -0.045 -0.675 -0.111 c -0.943 -0.201 -1.171 -0.34 -1.348 -0.557 c -1.24 -0.071 l -2.539 -0.071 l -3.448 -4.075 l -2.06 -4.075 l -1.744 -2.648 l -1.494 -1.431 -0.807 -1.296 -0.492 -1.294 c -0.418 -1.151 -0.329 -1.014 -0.228 -0.885 c 0 0 l f Q q 1 0 0 1 413.844 138.243 cm 0.798 g 0 0 m -0.043 0 -0.087 0.005 -0.131 0.015 c -1.022 0.197 -0.347 2.351 0.555 2.351 c 0.581 2.351 0.607 2.349 0.635 2.346 c 1.537 2.204 0.948 0 0 0 c 0.593 3.289 m -2.298 3.288 -3.104 -0.892 -0.218 -1.024 c -0.176 -1.025 -0.134 -1.026 -0.093 -1.026 c 2.795 -1.026 3.53 3.147 0.743 3.285 c 0.692 3.288 0.643 3.289 0.593 3.289 c f Q q 1 0 0 1 405.229 138.243 cm 0.798 g 0 0 m -0.043 0 -0.086 0.005 -0.131 0.015 c -1.026 0.197 -0.342 2.351 0.555 2.351 c 0.582 2.351 0.609 2.349 0.635 2.346 c 1.543 2.204 0.949 0 0 0 c 0.591 3.289 m -0.311 3.289 -1.012 2.876 -1.459 2.305 c -1.56 2.176 -1.649 2.039 -1.723 1.896 c -2.373 0.66 -2 -0.962 -0.218 -1.024 c -0.19 -1.025 -0.163 -1.025 -0.135 -1.025 c 0.964 -1.025 1.792 -0.406 2.152 0.302 c 2.114 -0.172 2.317 -1.007 4.192 -1.03 c 4.213 -1.03 4.233 -1.03 4.253 -1.03 c 6.295 -1.03 6.47 0.283 6.453 0.568 c 6.401 1.594 5.478 1.64 4.667 1.811 c 4.014 1.951 4.143 2.48 4.726 2.48 c 5.353 2.48 5.197 1.951 y 6.592 1.951 l 6.57 2.028 6.965 3.269 4.874 3.285 c 4.842 3.286 4.81 3.286 4.778 3.286 c 3.79 3.286 2.909 2.961 2.783 2.088 c 2.626 1.007 4.036 0.759 4.4 0.697 c 5.205 0.558 4.974 -0.106 4.378 -0.106 c 4.366 -0.106 4.354 -0.106 4.341 -0.106 c 3.524 -0.106 3.726 0.481 y 1.03 0.481 l 2.239 0.924 l 2.348 0.975 2.435 0.993 2.456 1.098 c 2.674 2.206 2.114 3.206 0.744 3.285 c 0.693 3.288 0.642 3.289 0.591 3.289 c f Q q 1 0 0 1 403.998 134.379 cm 0.859 g 0 0 m 0.465 2.083 l 1.665 2.083 l 1.935 2.083 2.161 2.052 2.349 1.883 c 2.566 1.665 2.609 1.349 2.531 1.023 c 2.471 0.735 2.309 0.47 2.07 0.269 c 1.757 0.03 1.469 0 1.148 0 c 0 0 l h 1.736 2.64 m -0.087 2.64 l -1.301 -2.766 l -0.622 -2.766 l -0.127 -0.565 l 1.082 -0.565 l 1.578 -0.565 2.052 -0.492 2.497 -0.118 c 2.858 0.161 3.131 0.595 3.223 1.023 c 3.322 1.487 3.244 1.988 2.953 2.283 c 2.648 2.592 2.2 2.64 1.736 2.64 c f Q q 1 0 0 1 409.459 135.731 cm 0.859 g 0 0 m -0.652 0 -1.098 -0.5 -1.416 -1.052 c -1.434 -1.052 l -1.225 -0.105 l -1.774 -0.105 l -2.673 -4.118 l -2.052 -4.118 l -1.604 -2.104 l -1.533 -1.778 -1.442 -1.53 -1.209 -1.24 c -0.891 -0.835 -0.512 -0.617 -0.038 -0.617 c 0.084 -0.617 l 0.222 -0.013 l 0 0 l f Q q 1 0 0 1 409.999 134.031 cm 0.859 g 0 0 m 0.165 0.635 0.74 1.221 1.405 1.221 c 2.118 1.221 2.365 0.665 2.209 0 c 0 0 l h 1.514 1.697 m 0.313 1.697 -0.57 0.696 -0.817 -0.413 c -1.065 -1.536 -0.657 -2.496 0.562 -2.496 c 1.326 -2.496 2.126 -2.061 2.527 -1.317 c 1.97 -1.209 l 1.692 -1.692 1.239 -1.982 0.722 -1.982 c 0.305 -1.982 -0.061 -1.753 -0.169 -1.375 c -0.247 -1.07 -0.199 -0.778 -0.13 -0.465 c 2.783 -0.465 l 3.07 0.648 2.76 1.697 1.514 1.697 c f Q q 1 0 0 1 415.269 135.728 cm 0.859 g 0 0 m -0.739 0 -1.583 -0.352 -1.765 -1.188 c -1.922 -1.902 -1.426 -2.18 -0.838 -2.302 c -0.207 -2.409 l 0.132 -2.475 0.535 -2.599 0.432 -3.014 c 0.326 -3.537 -0.255 -3.679 -0.682 -3.679 c -1.169 -3.679 -1.76 -3.48 -1.721 -2.938 c -2.348 -3.063 l -2.33 -3.884 -1.635 -4.193 -0.843 -4.193 c -0.064 -4.193 0.898 -3.858 1.102 -2.961 c 1.184 -2.599 1.092 -2.259 0.822 -2.049 c 0.618 -1.876 0.326 -1.841 0.045 -1.775 c -0.52 -1.667 l -0.86 -1.624 -1.2 -1.515 -1.1 -1.089 c -1 -0.644 -0.482 -0.497 -0.117 -0.497 c 0.331 -0.497 0.705 -0.693 0.766 -1.141 c 1.362 -1.018 l 1.331 -0.275 0.718 0 0 0 c f Q q 1 0 0 1 418.879 135.728 cm 0.859 g 0 0 m -0.735 0 -1.583 -0.352 -1.765 -1.188 c -1.93 -1.902 -1.434 -2.18 -0.838 -2.302 c -0.209 -2.409 l 0.122 -2.475 0.527 -2.599 0.435 -3.014 c 0.326 -3.537 -0.257 -3.679 -0.682 -3.679 c -1.169 -3.679 -1.761 -3.48 -1.726 -2.938 c -2.357 -3.063 l -2.33 -3.884 -1.627 -4.193 -0.843 -4.193 c -0.069 -4.193 0.891 -3.858 1.1 -2.961 c 1.179 -2.599 1.092 -2.259 0.822 -2.049 c 0.609 -1.876 0.326 -1.841 0.044 -1.775 c -0.522 -1.667 l -0.861 -1.624 -1.209 -1.515 -1.108 -1.089 c -1.01 -0.644 -0.483 -0.497 -0.125 -0.497 c 0.339 -0.497 0.705 -0.693 0.766 -1.141 c 1.362 -1.018 l 1.322 -0.275 0.713 0 0 0 c f Q q 1 0 0 1 453.922 127.719 cm 0.729 g /GS3 gs 0 0 m 0 5.85 -1.935 10.641 -5.346 13.963 c -8.757 17.286 -13.632 19.132 -19.481 19.132 c -19.481 18.762 l -13.708 18.762 -8.936 16.945 -5.604 13.699 c -2.272 10.452 -0.37 5.77 -0.369 0 c 0 0 l f Q q 1 0 0 1 434.295 143.057 cm 0.729 g /GS3 gs 0 0 m 0.912 0 l 0.912 -0.831 l 1.525 -3.452 l 1.525 0 l 2.439 0 l 2.439 -7.118 l 1.525 -7.118 l 1.525 -6.357 l 0.912 -3.7 l 0.912 -7.118 l 0 -7.118 l 0 0 l f Q q 1 0 0 1 438.407 140.113 cm 0.729 g /GS3 gs 0 0 m 0.061 0.061 0.132 0.091 0.219 0.091 c 0.309 0.091 0.387 0.061 0.445 0 c 0.496 -0.046 0.519 -0.116 0.519 -0.209 c 0.519 -1.431 l -0.081 -1.431 l -0.081 -0.209 l -0.081 -0.121 -0.051 -0.061 0 0 c 1.439 -0.209 m 1.439 0.127 1.327 0.417 1.092 0.653 c 0.861 0.883 0.565 1.01 0.219 1.01 c -0.122 1.01 -0.407 0.883 -0.642 0.653 c -0.891 0.417 -1.003 0.127 -1.003 -0.209 c -1.003 -3.066 l -1.003 -3.409 -0.891 -3.687 -0.642 -3.935 c -0.407 -4.165 -0.122 -4.275 0.219 -4.275 c 0.565 -4.275 0.861 -4.165 1.092 -3.935 c 1.327 -3.687 1.439 -3.409 1.439 -3.066 c 1.439 -2.795 l 0.519 -2.795 l 0.519 -3.066 l 0.519 -3.161 0.489 -3.221 0.435 -3.283 c 0.379 -3.331 0.309 -3.379 0.219 -3.379 c 0.132 -3.379 0.061 -3.331 0 -3.283 c -0.051 -3.221 -0.081 -3.143 -0.081 -3.066 c -0.081 -2.353 l 1.439 -2.353 l 1.439 -0.209 l f Q q 1 0 0 1 441.966 137.047 cm 0.729 g /GS3 gs 0 0 m 0 3.975 l 0.912 3.975 l 0.912 0 l 0.912 -0.095 0.943 -0.155 0.999 -0.217 c 1.06 -0.265 1.129 -0.313 1.222 -0.313 c 1.299 -0.313 1.37 -0.265 1.429 -0.217 c 1.497 -0.155 1.526 -0.077 1.526 0 c 1.526 3.975 l 2.439 3.975 l 2.439 0 l 2.439 -0.343 2.322 -0.621 2.081 -0.869 c 1.847 -1.099 1.556 -1.209 1.222 -1.209 c 0.922 -1.209 0.673 -1.131 0.456 -0.947 c 0.238 -1.131 -0.018 -1.209 -0.315 -1.209 c -0.662 -1.209 -0.954 -1.099 -1.188 -0.869 c -1.418 -0.621 -1.527 -0.343 -1.527 0 c -1.527 3.975 l -0.615 3.975 l -0.615 0 l -0.615 -0.095 -0.592 -0.155 -0.527 -0.217 c -0.466 -0.265 -0.397 -0.313 -0.315 -0.313 c -0.228 -0.313 -0.158 -0.265 -0.096 -0.217 c -0.032 -0.155 0 -0.077 0 0 c f Q q 1 0 0 1 435.78 131.594 cm 0.729 g /GS3 gs 0 0 m -0.069 -0.06 -0.138 -0.086 -0.216 -0.086 c -0.517 -0.086 l -0.517 2.362 l -0.216 2.362 l -0.12 2.362 -0.053 2.323 0 2.261 c 0.056 2.201 0.097 2.132 0.097 2.036 c 0.097 0.21 l 0.097 0.122 0.056 0.052 0 0 c 0.646 2.919 m 0.414 3.152 0.119 3.266 -0.216 3.266 c -1.437 3.266 l -1.437 -3.857 l -0.517 -3.857 l -0.517 -1.008 l -0.216 -1.008 l -0.138 -1.008 -0.069 -1.039 0 -1.1 c 0.056 -1.16 0.097 -1.226 0.097 -1.317 c 0.097 -3.857 l 1.01 -3.857 l 1.01 -1.317 l 1.01 -1.13 0.972 -0.978 0.914 -0.851 c 0.832 -0.714 l 0.721 -0.551 l 0.814 -0.424 0.883 -0.312 0.932 -0.186 c 0.98 -0.057 1.01 0.078 1.01 0.21 c 1.01 2.036 l 1.01 2.401 0.883 2.688 0.646 2.919 c f Q q 1 0 0 1 438.565 134.508 cm 0.729 g /GS3 gs -0.922 0 0.922 -0.918 re 0 0 m h -0.922 -2.605 m -1.375 -2.605 l -1.375 -1.675 l 0 -1.675 l 0 -6.771 l -0.922 -6.771 l -0.922 -2.605 l f Q q 1 0 0 1 440.23 128.742 cm 0.729 g /GS3 gs 0 0 m -0.066 0.055 -0.087 0.126 -0.087 0.217 c -0.087 2.861 l -0.087 2.943 -0.056 3.005 0 3.069 c 0.061 3.131 0.14 3.161 0.217 3.161 c 0.527 3.161 l 0.527 -0.092 l 0.217 -0.092 l 0.13 -0.092 0.053 -0.069 0 0 c -0.631 -0.648 m -0.384 -0.897 -0.1 -1.005 0.217 -1.005 c 1.439 -1.005 l 1.439 6.118 l 0.527 6.118 l 0.527 4.091 l 0.217 4.091 l -0.117 4.091 -0.397 3.966 -0.644 3.735 c -0.883 3.496 -1.01 3.209 -1.01 2.861 c -1.01 0.217 l -1.01 -0.14 -0.883 -0.409 -0.631 -0.648 c f Q q 1 0 0 1 443.326 131.921 cm 0.729 g /GS3 gs 0 0 m 0.209 0.09 l 0.31 0.09 0.384 0.06 0.435 0.013 c 0.487 -0.048 0.522 -0.117 0.522 -0.218 c 0.522 -1.436 l -0.091 -1.436 l -0.091 -0.218 l 0 0 l h 1.436 -0.218 m 1.436 0.121 1.317 0.416 1.092 0.648 c 0.86 0.882 0.565 1.004 0.209 1.004 c -0.122 1.004 -0.417 0.882 -0.649 0.648 c -0.891 0.416 -1.005 0.121 -1.005 -0.218 c -1.005 -3.06 l -1.005 -3.41 -0.891 -3.689 -0.649 -3.936 c -0.417 -4.171 -0.122 -4.284 0.209 -4.284 c 0.565 -4.284 0.86 -4.171 1.092 -3.936 c 1.317 -3.689 1.436 -3.41 1.436 -3.06 c 1.436 -2.797 l 0.522 -2.797 l 0.522 -3.06 l 0.522 -3.152 0.487 -3.223 0.435 -3.288 c 0.384 -3.348 0.305 -3.38 0.209 -3.38 c 0 -3.288 l -0.061 -3.223 -0.091 -3.149 -0.091 -3.06 c -0.091 -2.358 l 1.436 -2.358 l 1.436 -0.218 l f Q q 1 0 0 1 446.573 132.833 cm 0.729 g /GS3 gs 0 0 m 0.458 0 l 0.458 -0.93 l 0.154 -0.93 l 0.015 -0.93 -0.093 -0.969 -0.176 -1.057 c -0.263 -1.148 -0.311 -1.256 -0.311 -1.395 c -0.311 -5.096 l -1.225 -5.096 l -1.225 -1.239 l -1.225 -0.899 -1.098 -0.595 -0.869 -0.372 c -0.634 -0.138 -0.35 0 0 0 c f Q q 1 0 0 1 447.497 128.861 cm 0.729 g /GS3 gs 0 0 m 0 0.263 l 0.913 0.263 l 0.913 0 l 0.913 -0.092 0.952 -0.163 1.005 -0.228 c 1.063 -0.288 1.135 -0.32 1.221 -0.32 c 1.3 -0.32 1.38 -0.288 1.431 -0.228 c 1.491 -0.163 1.522 -0.089 1.522 0 c 1.522 0.565 l 0 2.098 l 0 2.842 l 0 3.181 0.112 3.476 0.348 3.708 c 0.578 3.942 0.873 4.064 1.221 4.064 c 1.562 4.064 1.848 3.942 2.087 3.708 c 2.322 3.476 2.443 3.181 2.443 2.842 c 2.443 2.577 l 1.522 2.577 l 1.522 2.842 l 1.522 2.934 1.501 3.012 1.44 3.06 c 1.382 3.111 1.313 3.15 1.221 3.15 c 1.135 3.15 1.063 3.111 1.005 3.06 c 0.952 3.012 0.913 2.934 0.913 2.842 c 0.913 2.458 l 2.443 0.933 l 2.443 0 l 2.443 -0.35 2.322 -0.629 2.087 -0.876 c 1.848 -1.111 1.562 -1.224 1.221 -1.224 c 0.873 -1.224 0.578 -1.111 0.348 -0.876 c 0.112 -0.629 0 -0.35 0 0 c f Q q 1 0 0 1 0 0 cm 0.68 g 312.864 132.428 26.53 0.14 re f Q q 1 0 0 1 0 0 cm 0.729 g 295.861 129.595 15.114 15.116 re f Q q 1 0 0 1 299.727 136.823 cm 0 0 m 0 -0.711 0.189 -0.794 1.003 -0.827 c 1.003 -1.085 l -2.231 -1.085 l -2.231 -0.827 l -1.556 -0.794 -1.366 -0.711 -1.366 0 c -1.366 4.659 l -1.366 5.37 -1.556 5.453 -2.211 5.482 c -2.211 5.743 l 3.492 5.743 l 3.531 4.237 l 3.251 4.237 l 3.009 5 2.749 5.24 1.414 5.24 c 0.379 5.24 l 0.07 5.24 0 5.172 0 4.89 c 0 2.729 l 0.509 2.729 l 1.573 2.729 1.805 2.922 1.934 3.635 c 2.194 3.635 l 2.194 1.223 l 1.934 1.223 l 1.795 2.029 1.392 2.228 0.509 2.228 c 0 2.228 l 0 0 l f Q q 1 0 0 1 309.677 142.566 cm 0 0 m -5.984 0 l -6.124 -1.507 l -5.78 -1.507 l -5.561 -0.768 -5.238 -0.503 -4.518 -0.503 c -3.675 -0.503 l -3.675 -5.743 l -3.675 -6.454 -3.866 -6.537 -4.638 -6.57 c -4.638 -6.828 l -1.346 -6.828 l -1.346 -6.57 l -2.119 -6.537 -2.31 -6.454 -2.31 -5.743 c -2.31 -0.503 l -1.467 -0.503 l -0.745 -0.503 -0.424 -0.768 -0.204 -1.507 c 0.137 -1.507 l 0 0 l f Q q 1 0 0 1 312.847 135.889 cm 0.68 g 0 0 m 0.335 0.031 0.543 0.097 0.627 0.197 c 0.709 0.298 0.751 0.529 0.751 0.889 c 0.751 4.703 l 0.751 5.009 0.704 5.211 0.612 5.308 c 0.518 5.406 0.314 5.468 0 5.493 c 0 5.658 l 2.318 5.658 l 3.061 5.658 3.63 5.512 4.026 5.222 c 4.42 4.933 4.618 4.551 4.618 4.076 c 4.618 3.475 4.399 3.04 3.961 2.77 c 3.523 2.499 2.976 2.364 2.318 2.364 c 2.223 2.364 2.102 2.369 1.956 2.378 c 1.807 2.387 1.699 2.391 1.627 2.391 c 1.627 0.79 l 1.627 0.46 1.679 0.252 1.781 0.167 c 1.884 0.081 2.114 0.025 2.47 0 c 2.47 -0.165 l 0 -0.165 l 0 0 l h 2.967 5.178 m 2.718 5.287 2.403 5.342 2.022 5.342 c 1.842 5.342 1.731 5.324 1.689 5.288 c 1.648 5.252 1.627 5.172 1.627 5.049 c 1.627 2.746 l 1.784 2.728 1.888 2.716 1.936 2.713 c 2.077 2.707 l 2.482 2.707 2.799 2.765 3.031 2.88 c 3.452 3.091 3.662 3.484 3.662 4.061 c 3.662 4.603 3.431 4.975 2.967 5.178 c f Q q 1 0 0 1 317.635 135.869 cm 0.68 g 0 0 m 0.264 0.023 0.438 0.069 0.524 0.139 c 0.609 0.209 0.652 0.358 0.652 0.586 c 0.652 2.529 l 0.652 2.813 0.626 3.014 0.573 3.136 c 0.52 3.258 0.423 3.319 0.282 3.319 c 0.168 3.308 l 0.02 3.28 l 0.02 3.425 l 0.183 3.482 0.351 3.54 0.522 3.601 c 0.693 3.66 0.813 3.703 0.879 3.729 c 1.021 3.783 1.169 3.844 1.321 3.913 c 1.357 3.89 l 1.364 3.792 l 1.364 3.088 l 1.548 3.343 1.725 3.541 1.896 3.685 c 2.067 3.828 2.245 3.899 2.429 3.899 c 2.576 3.899 2.694 3.856 2.786 3.769 c 2.879 3.681 2.925 3.572 2.925 3.44 c 2.925 3.322 2.889 3.223 2.819 3.144 c 2.749 3.064 2.66 3.023 2.553 3.023 c 2.444 3.023 2.334 3.074 2.225 3.174 c 2.115 3.275 2.027 3.324 1.965 3.324 c 1.864 3.324 1.742 3.243 1.596 3.082 c 1.449 2.92 1.377 2.752 1.377 2.581 c 1.377 0.645 l 1.377 0.4 1.434 0.23 1.549 0.134 c 1.663 0.038 1.854 -0.006 2.121 0 c 2.121 -0.145 l 0 -0.145 l 0 0 l f Q q 1 0 0 1 323.469 139.336 cm 0.68 g 0 0 m 0.304 -0.279 0.455 -0.675 0.455 -1.188 c -2.265 -1.188 l -2.237 -1.851 -2.087 -2.334 -1.816 -2.637 c -1.544 -2.94 -1.223 -3.092 -0.852 -3.092 c -0.552 -3.092 -0.299 -3.014 -0.093 -2.855 c 0.112 -2.699 0.302 -2.476 0.477 -2.187 c 0.626 -2.239 l 0.51 -2.603 0.289 -2.941 -0.033 -3.252 c -0.355 -3.562 -0.749 -3.718 -1.216 -3.718 c -1.755 -3.718 -2.171 -3.514 -2.465 -3.107 c -2.758 -2.7 -2.904 -2.231 -2.904 -1.701 c -2.904 -1.125 -2.734 -0.627 -2.393 -0.209 c -2.052 0.21 -1.608 0.419 -1.061 0.419 c -0.658 0.419 -0.304 0.28 0 0 c h -2.051 -0.329 m -2.143 -0.483 -2.209 -0.677 -2.248 -0.911 c -0.441 -0.911 l -0.472 -0.626 -0.526 -0.413 -0.604 -0.273 c -0.744 -0.023 -0.978 0.103 -1.306 0.103 c -1.631 0.103 -1.88 -0.041 -2.051 -0.329 c f Q q 1 0 0 1 324.627 137.081 cm 0.68 g 0 0 m 0.142 0 l 0.208 -0.326 0.297 -0.577 0.407 -0.751 c 0.607 -1.071 0.9 -1.232 1.284 -1.232 c 1.498 -1.232 1.667 -1.173 1.79 -1.054 c 1.915 -0.936 1.977 -0.782 1.977 -0.594 c 1.977 -0.474 1.941 -0.358 1.87 -0.246 c 1.799 -0.135 1.673 -0.026 1.492 0.08 c 1.012 0.354 l 0.661 0.542 0.402 0.732 0.236 0.925 c 0.07 1.116 -0.013 1.341 -0.013 1.602 c -0.013 1.922 0.102 2.186 0.33 2.392 c 0.559 2.598 0.845 2.701 1.191 2.701 c 1.343 2.701 1.509 2.672 1.69 2.615 c 1.871 2.558 1.973 2.529 1.996 2.529 c 2.108 2.552 l 2.168 2.622 l 2.273 2.622 l 2.306 1.423 l 2.174 1.423 l 2.117 1.699 2.04 1.914 1.942 2.069 c 1.764 2.354 1.508 2.496 1.173 2.496 c 0.972 2.496 0.814 2.435 0.7 2.312 c 0.585 2.189 0.527 2.045 0.527 1.88 c 0.527 1.616 0.725 1.382 1.12 1.177 c 1.688 0.872 l 2.298 0.541 2.602 0.155 2.602 -0.286 c 2.602 -0.623 2.476 -0.9 2.224 -1.114 c 1.973 -1.329 1.642 -1.436 1.236 -1.436 c 1.064 -1.436 0.87 -1.407 0.654 -1.351 c 0.437 -1.294 0.308 -1.265 0.269 -1.265 c 0.179 -1.302 l 0.119 -1.39 l 0 -1.39 l 0 0 l f Q q 1 0 0 1 327.919 137.081 cm 0.68 g 0 0 m 0.142 0 l 0.208 -0.326 0.297 -0.577 0.407 -0.751 c 0.607 -1.071 0.9 -1.232 1.284 -1.232 c 1.498 -1.232 1.667 -1.173 1.79 -1.054 c 1.915 -0.936 1.977 -0.782 1.977 -0.594 c 1.977 -0.474 1.941 -0.358 1.87 -0.246 c 1.799 -0.135 1.673 -0.026 1.492 0.08 c 1.012 0.354 l 0.661 0.542 0.402 0.732 0.236 0.925 c 0.07 1.116 -0.013 1.341 -0.013 1.602 c -0.013 1.922 0.102 2.186 0.33 2.392 c 0.559 2.598 0.845 2.701 1.191 2.701 c 1.343 2.701 1.509 2.672 1.69 2.615 c 1.871 2.558 1.973 2.529 1.996 2.529 c 2.108 2.552 l 2.168 2.622 l 2.273 2.622 l 2.306 1.423 l 2.174 1.423 l 2.117 1.699 2.04 1.914 1.942 2.069 c 1.764 2.354 1.508 2.496 1.173 2.496 c 0.972 2.496 0.814 2.435 0.7 2.312 c 0.585 2.189 0.527 2.045 0.527 1.88 c 0.527 1.616 0.725 1.382 1.12 1.177 c 1.688 0.872 l 2.298 0.541 2.602 0.155 2.602 -0.286 c 2.602 -0.623 2.476 -0.9 2.224 -1.114 c 1.973 -1.329 1.642 -1.436 1.236 -1.436 c 1.064 -1.436 0.87 -1.407 0.654 -1.351 c 0.437 -1.294 0.308 -1.265 0.269 -1.265 c 0.179 -1.302 l 0.119 -1.39 l 0 -1.39 l 0 0 l f Q q 1 0 0 1 313.497 129.939 cm 0.68 g 0 0 m 0 -0.2 0.054 -0.222 0.276 -0.23 c 0.276 -0.304 l -0.616 -0.304 l -0.616 -0.23 l -0.429 -0.222 -0.377 -0.2 -0.377 0 c -0.377 1.283 l -0.377 1.483 -0.429 1.507 -0.611 1.515 c -0.611 1.586 l 0.965 1.586 l 0.975 1.168 l 0.897 1.168 l 0.83 1.379 0.759 1.447 0.389 1.447 c 0.107 1.447 l 0.019 1.447 0 1.428 0 1.348 c 0 0.751 l 0.32 0.751 l 0.617 0.751 0.68 0.804 0.714 1.004 c 0.787 1.004 l 0.787 0.336 l 0.714 0.336 l 0.676 0.56 0.566 0.614 0.32 0.614 c 0 0.614 l 0 0 l f Q q 1 0 0 1 315.353 129.939 cm 0.68 g 0 0 m 0 -0.2 0.052 -0.222 0.28 -0.23 c 0.28 -0.304 l -0.653 -0.304 l -0.653 -0.23 l -0.429 -0.222 -0.376 -0.2 -0.376 0 c -0.376 1.283 l -0.376 1.483 -0.429 1.507 -0.653 1.515 c -0.653 1.586 l 0.28 1.586 l 0.28 1.515 l 0.052 1.507 0 1.483 0 1.283 c 0 0 l f Q q 1 0 0 1 317.576 131.17 cm 0.68 g 0 0 m 0 0.185 -0.051 0.261 -0.255 0.284 c -0.255 0.355 l 0.41 0.355 l 0.41 0.284 l 0.206 0.261 0.156 0.185 0.156 0 c 0.156 -1.578 l 0.062 -1.578 l -1.226 -0.091 l -1.226 -1.18 l -1.226 -1.362 -1.178 -1.44 -0.97 -1.461 c -0.97 -1.535 l -1.637 -1.535 l -1.637 -1.461 l -1.43 -1.44 -1.38 -1.362 -1.38 -1.18 c -1.38 0.089 l -1.444 0.201 -1.519 0.256 -1.637 0.284 c -1.637 0.355 l -1.125 0.355 l 0 -0.945 l 0 0 l f Q q 1 0 0 1 318.582 130.315 cm 0.68 g 0 0 m 0.283 0.744 l 0.564 0 l 0 0 l h 1.35 -0.68 m 1.35 -0.606 l 1.21 -0.609 1.174 -0.547 1.102 -0.368 c 0.437 1.253 l 0.347 1.253 l -0.343 -0.426 l -0.389 -0.544 -0.455 -0.581 -0.575 -0.606 c -0.575 -0.68 l 0.026 -0.68 l 0.026 -0.606 l -0.105 -0.606 -0.17 -0.577 -0.17 -0.485 c -0.17 -0.407 -0.084 -0.201 -0.061 -0.142 c 0.623 -0.142 l 0.646 -0.201 0.736 -0.407 0.736 -0.485 c 0.736 -0.577 0.668 -0.606 0.535 -0.606 c 0.535 -0.68 l 1.35 -0.68 l f Q q 1 0 0 1 321.762 131.17 cm 0.68 g 0 0 m 0 0.185 -0.05 0.261 -0.255 0.284 c -0.255 0.355 l 0.408 0.355 l 0.408 0.284 l 0.204 0.261 0.155 0.185 0.155 0 c 0.155 -1.578 l 0.061 -1.578 l -1.228 -0.091 l -1.228 -1.18 l -1.228 -1.362 -1.177 -1.44 -0.971 -1.461 c -0.971 -1.535 l -1.637 -1.535 l -1.637 -1.461 l -1.432 -1.44 -1.382 -1.362 -1.382 -1.18 c -1.382 0.089 l -1.445 0.201 -1.52 0.256 -1.637 0.284 c -1.637 0.355 l -1.125 0.355 l 0 -0.945 l 0 0 l f Q q 1 0 0 1 324.142 130.08 cm 0.68 g 0 0 m -0.196 -0.334 -0.456 -0.488 -0.846 -0.488 c -1.459 -0.488 -1.822 -0.084 -1.822 0.517 c -1.822 0.948 -1.484 1.488 -0.825 1.488 c -0.629 1.488 -0.349 1.379 -0.307 1.379 c -0.251 1.379 -0.235 1.409 -0.191 1.488 c -0.098 1.488 l -0.058 0.861 l -0.142 0.861 l -0.251 1.149 -0.45 1.362 -0.779 1.362 c -1.222 1.362 -1.417 0.882 -1.417 0.517 c -1.417 0.008 -1.198 -0.332 -0.729 -0.332 c -0.363 -0.332 -0.162 -0.059 -0.075 0.058 c 0 0 l f Q q 1 0 0 1 325.056 129.939 cm 0.68 g 0 0 m 0 -0.2 0.052 -0.222 0.277 -0.23 c 0.277 -0.304 l -0.654 -0.304 l -0.654 -0.23 l -0.429 -0.222 -0.378 -0.2 -0.378 0 c -0.378 1.283 l -0.378 1.483 -0.429 1.507 -0.654 1.515 c -0.654 1.586 l 0.277 1.586 l 0.277 1.515 l 0.052 1.507 0 1.483 0 1.283 c 0 0 l f Q q 1 0 0 1 326.105 130.315 cm 0.68 g 0 0 m 0.284 0.744 l 0.563 0 l 0 0 l h 1.352 -0.68 m 1.352 -0.606 l 1.21 -0.609 1.174 -0.547 1.101 -0.368 c 0.439 1.253 l 0.347 1.253 l -0.345 -0.426 l -0.391 -0.544 -0.453 -0.581 -0.573 -0.606 c -0.573 -0.68 l 0.026 -0.68 l 0.026 -0.606 l -0.105 -0.606 -0.168 -0.577 -0.168 -0.485 c -0.168 -0.407 -0.083 -0.201 -0.061 -0.142 c 0.621 -0.142 l 0.644 -0.201 0.735 -0.407 0.735 -0.485 c 0.735 -0.577 0.666 -0.606 0.536 -0.606 c 0.536 -0.68 l 1.352 -0.68 l f Q q 1 0 0 1 327.621 129.635 cm 0.68 g 0 0 m 0 0.074 l 0.18 0.082 0.233 0.104 0.233 0.304 c 0.233 1.587 l 0.233 1.787 0.18 1.811 0 1.819 c 0 1.89 l 0.872 1.89 l 0.872 1.819 l 0.663 1.811 0.61 1.787 0.61 1.587 c 0.61 0.268 l 0.61 0.153 0.644 0.113 0.855 0.113 c 1.193 0.113 1.392 0.175 1.553 0.505 c 1.626 0.505 l 1.497 0 l 0 0 l f Q q 1 0 0 1 330.659 129.709 cm 0.68 g 0 0 m 0.215 0.008 0.266 0.03 0.266 0.23 c 0.266 1.677 l 0.034 1.677 l -0.185 1.677 -0.271 1.587 -0.332 1.332 c -0.416 1.332 l -0.371 1.816 l 1.283 1.816 l 1.326 1.332 l 1.243 1.332 l 1.183 1.587 1.097 1.677 0.878 1.677 c 0.645 1.677 l 0.645 0.23 l 0.645 0.03 0.697 0.008 0.91 0 c 0.91 -0.074 l 0 -0.074 l 0 0 l f Q q 1 0 0 1 332.833 129.939 cm 0.68 g 0 0 m 0 -0.2 0.055 -0.222 0.278 -0.23 c 0.278 -0.304 l -0.653 -0.304 l -0.653 -0.23 l -0.429 -0.222 -0.376 -0.2 -0.376 0 c -0.376 1.283 l -0.376 1.483 -0.429 1.507 -0.653 1.515 c -0.653 1.586 l 0.278 1.586 l 0.278 1.515 l 0.055 1.507 0 1.483 0 1.283 c 0 0 l f Q q 1 0 0 1 335.091 131.525 cm 0.68 g 0 0 m 0.649 0 l 0.649 -0.071 l 0.47 -0.079 0.417 -0.103 0.417 -0.303 c 0.417 -1.586 l 0.417 -1.786 0.47 -1.808 0.649 -1.816 c 0.649 -1.89 l -0.199 -1.89 l -0.199 -1.816 l -0.014 -1.808 0.04 -1.786 0.04 -1.586 c 0.04 -0.262 l 0.033 -0.262 l -0.596 -1.912 l -0.681 -1.912 l -1.297 -0.262 l -1.304 -0.262 l -1.304 -1.535 l -1.304 -1.717 -1.254 -1.795 -1.047 -1.816 c -1.047 -1.89 l -1.713 -1.89 l -1.713 -1.816 l -1.508 -1.795 -1.459 -1.717 -1.459 -1.535 c -1.459 -0.254 l -1.459 -0.122 -1.513 -0.071 -1.713 -0.071 c -1.713 0 l -1.029 0 l -0.526 -1.312 l 0 0 l f Q q 1 0 0 1 336.008 129.635 cm 0.68 g 0 0 m 0 0.074 l 0.18 0.082 0.232 0.104 0.232 0.304 c 0.232 1.587 l 0.232 1.787 0.18 1.811 0 1.819 c 0 1.89 l 1.577 1.89 l 1.587 1.472 l 1.509 1.472 l 1.442 1.683 1.371 1.751 1.001 1.751 c 0.715 1.751 l 0.63 1.751 0.611 1.732 0.611 1.652 c 0.611 1.055 l 0.932 1.055 l 1.226 1.055 1.288 1.108 1.325 1.308 c 1.397 1.308 l 1.397 0.64 l 1.325 0.64 l 1.286 0.864 1.176 0.918 0.932 0.918 c 0.611 0.918 l 0.611 0.268 l 0.611 0.153 0.644 0.113 0.976 0.113 c 1.315 0.113 1.514 0.175 1.676 0.505 c 1.747 0.505 l 1.621 0 l 0 0 l f Q q 1 0 0 1 338.001 130.23 cm 0.68 g 0 0 m 0.072 0 l 0.153 -0.248 0.39 -0.51 0.669 -0.51 c 0.906 -0.51 0.992 -0.341 0.992 -0.196 c 0.992 0.238 0.017 0.317 0.017 0.855 c 0.017 1.117 0.269 1.338 0.557 1.338 c 0.84 1.338 0.94 1.241 1.065 1.241 c 1.165 1.338 l 1.237 1.338 l 1.237 0.74 l 1.165 0.74 l 1.087 1.009 0.893 1.212 0.638 1.212 c 0.427 1.212 0.348 1.075 0.348 0.945 c 0.348 0.562 1.325 0.55 1.325 -0.114 c 1.325 -0.408 1.081 -0.638 0.743 -0.638 c 0.409 -0.638 0.323 -0.521 0.195 -0.521 c 0.099 -0.617 l 0 -0.617 l 0 0 l f Q q 1 0 0 1 -0 0 cm 0.729 g 350.962 137.311 2.585 8.389 re f Q q 1 0 0 1 354.874 145.7 cm 0.729 g 0 0 m 4.595 0 l 6.805 0 7.275 -1.246 7.275 -2.103 c 7.275 -2.949 6.863 -3.408 6.24 -3.749 c 6.993 -4.007 7.698 -4.606 7.698 -5.84 c 7.698 -7.52 6.24 -8.389 4.76 -8.389 c 0 -8.389 l 0 0 l h 2.586 -3.266 m 3.95 -3.266 l 4.491 -3.266 4.831 -3.113 4.831 -2.574 c 4.831 -2.15 4.478 -1.996 3.95 -1.996 c 2.586 -1.996 l 2.586 -3.266 l h 2.586 -6.392 m 4.103 -6.392 l 4.643 -6.392 5.112 -6.239 5.112 -5.593 c 5.112 -5.099 4.819 -4.83 4.208 -4.83 c 2.586 -4.83 l 2.586 -6.392 l f Q q 1 0 0 1 363.571 145.7 cm 0.729 g 0 0 m 3.678 0 l 4.877 -4.935 l 4.9 -4.935 l 6.098 0 l 9.776 0 l 9.776 -8.389 l 7.332 -8.389 l 7.332 -3.008 l 7.309 -3.008 l 5.852 -8.389 l 3.925 -8.389 l 2.467 -3.008 l 2.443 -3.008 l 2.443 -8.389 l 0 -8.389 l 0 0 l f Q q 1 0 0 1 351.131 134.466 cm 0.729 g 0 0 m 2.938 0 l 4.49 0 5.033 -1.146 5.033 -1.968 c 5.033 -3.362 4.106 -4.016 2.797 -4.016 c 1.757 -4.016 l 1.757 -5.758 l 0 -5.758 l 0 0 l h 1.757 -2.646 m 2.436 -2.646 l 2.89 -2.646 3.37 -2.613 3.37 -2.032 c 3.37 -1.509 2.971 -1.476 2.54 -1.476 c 1.757 -1.476 l 1.757 -2.646 l f Q q 1 0 0 1 356.73 132.894 cm 0.729 g 0 0 m 1.516 0 l 1.516 -0.669 l 1.534 -0.669 l 1.787 -0.17 2.123 0.104 2.698 0.104 c 2.858 0.104 3.011 0.08 3.162 0.039 c 3.162 -1.372 l 3.001 -1.315 2.858 -1.267 2.538 -1.267 c 1.916 -1.267 1.58 -1.638 1.58 -2.533 c 1.58 -4.186 l 0 -4.186 l 0 0 l f Q q 1 0 0 1 361.465 130.442 cm 0.729 g 0 0 m 0.041 -0.476 0.313 -0.815 0.809 -0.815 c 1.062 -0.815 1.342 -0.718 1.471 -0.517 c 2.948 -0.517 l 2.628 -1.42 1.757 -1.839 0.815 -1.839 c -0.509 -1.839 -1.508 -1.049 -1.508 0.346 c -1.508 1.564 -0.629 2.556 0.68 2.556 c 2.325 2.556 3.035 1.628 3.035 0 c 0 0 l h 1.518 0.83 m 1.518 1.217 1.232 1.532 0.825 1.532 c 0.352 1.532 0.081 1.282 0.01 0.83 c 1.518 0.83 l f Q q 1 0 0 1 367.56 131.675 cm 0.729 g 0 0 m -0.008 0.138 -0.081 0.242 -0.185 0.315 c -0.28 0.395 -0.407 0.437 -0.535 0.437 c -0.759 0.437 -1.014 0.388 -1.014 0.114 c -1.014 -0.008 -0.919 -0.063 -0.832 -0.104 c -0.568 -0.217 0.031 -0.25 0.558 -0.426 c 1.085 -0.596 1.548 -0.911 1.548 -1.596 c 1.548 -2.758 0.446 -3.072 -0.56 -3.072 c -1.533 -3.072 -2.604 -2.678 -2.628 -1.596 c -1.118 -1.596 l -1.11 -1.741 -1.047 -1.862 -0.927 -1.968 c -0.846 -2.039 -0.695 -2.088 -0.504 -2.088 c -0.296 -2.088 0.031 -2.007 0.031 -1.765 c 0.031 -1.523 -0.104 -1.451 -0.838 -1.322 c -2.045 -1.112 -2.533 -0.725 -2.533 -0.008 c -2.533 1.049 -1.406 1.323 -0.575 1.323 c 0.319 1.323 1.396 1.074 1.436 0 c 0 0 l f Q q 1 0 0 1 372.143 131.675 cm 0.729 g 0 0 m -0.008 0.138 -0.081 0.242 -0.184 0.315 c -0.28 0.395 -0.407 0.437 -0.535 0.437 c -0.757 0.437 -1.014 0.388 -1.014 0.114 c -1.014 -0.008 -0.919 -0.063 -0.83 -0.104 c -0.566 -0.217 0.031 -0.25 0.558 -0.426 c 1.087 -0.596 1.55 -0.911 1.55 -1.596 c 1.55 -2.758 0.446 -3.072 -0.558 -3.072 c -1.533 -3.072 -2.604 -2.678 -2.627 -1.596 c -1.118 -1.596 l -1.11 -1.741 -1.047 -1.862 -0.925 -1.968 c -0.846 -2.039 -0.695 -2.088 -0.502 -2.088 c -0.296 -2.088 0.031 -2.007 0.031 -1.765 c 0.031 -1.523 -0.104 -1.451 -0.838 -1.322 c -2.045 -1.112 -2.533 -0.725 -2.533 -0.008 c -2.533 1.049 -1.406 1.323 -0.575 1.323 c 0.318 1.323 1.397 1.074 1.438 0 c 0 0 l f Q q 1 0 0 1 375.259 129.657 cm 0.729 g 0 0 m -0.348 0 l -0.348 -0.959 l -0.57 -0.959 l -0.57 0 l -0.917 0 l -0.917 0.18 l 0 0.18 l 0 0 l h 0.866 -0.627 m 1.176 0.18 l 1.494 0.18 l 1.494 -0.959 l 1.286 -0.959 l 1.286 -0.068 l 1.279 -0.068 l 0.94 -0.959 l 0.785 -0.959 l 0.446 -0.068 l 0.44 -0.068 l 0.44 -0.959 l 0.232 -0.959 l 0.232 0.18 l 0.553 0.18 l 0.866 -0.627 l f Q q 1 0 0 1 467.162 137.173 cm 0.729 g 0 0 m 0 -2.092 1.597 -3.966 4.114 -3.966 c 6.723 -3.966 8.289 -2.079 8.289 0 c 8.289 2.136 6.679 3.949 4.145 3.949 c 1.643 3.949 0 2.136 0 0 c h 1.148 0 m 1.148 1.688 2.427 2.945 4.145 2.945 c 5.867 2.945 7.149 1.688 7.149 0 c 7.149 -1.692 5.867 -2.943 4.145 -2.943 c 2.427 -2.943 1.148 -1.692 1.148 0 c f Q q 1 0 0 1 476.264 137.96 cm 0.729 g 0 0 m 1.056 0.174 1.366 0.715 1.366 1.722 c 1.366 3.071 l 0 3.071 l 0 1.596 l 0.722 1.596 l 0.76 0.901 0.483 0.591 0 0.523 c 0 0 l f Q q 1 0 0 1 478.789 141.031 cm 0.729 g 0 0 m 0 -7.714 l 1.112 -7.714 l 1.112 -4.37 l 1.578 -4.37 l 2.133 -4.37 2.597 -4.557 3.62 -6.136 c 4.634 -7.714 l 5.96 -7.714 l 5.425 -6.981 5.23 -6.72 4.903 -6.184 c 4.316 -5.223 3.891 -4.527 3.185 -4.062 c 4.017 -3.719 4.481 -3.071 4.481 -2.17 c 4.481 -0.84 3.511 0 1.937 0 c 0 0 l h 1.112 -0.962 m 1.825 -0.962 l 2.898 -0.962 3.325 -1.396 3.333 -2.123 c 3.345 -2.758 3.009 -3.379 1.825 -3.379 c 1.112 -3.379 l 1.112 -0.962 l f Q q 1 0 0 1 489.645 141.031 cm 0.729 g 0 0 m -4.371 0 l -4.371 -7.714 l 0.097 -7.714 l 0.097 -6.72 l -3.266 -6.72 l -3.266 -4.323 l -0.109 -4.323 l -0.109 -3.332 l -3.266 -3.332 l -3.266 -1.001 l 0 -1.001 l 0 0 l f Q q 1 0 0 1 0 0 cm 0.729 g 490.793 133.317 1.115 7.714 re f Q q 1 0 0 1 494.156 141.031 cm 0.729 g 0 0 m -1.114 0 l -1.114 -7.714 l 3.469 -7.714 l 3.469 -6.72 l 0 -6.72 l 0 0 l f Q q 1 0 0 1 499.468 141.031 cm 0.729 g 0 0 m -1.116 0 l -1.116 -7.714 l 3.472 -7.714 l 3.472 -6.72 l 0 -6.72 l 0 0 l f Q q 1 0 0 1 505.092 138.413 cm 0.729 g 0 0 m -2.06 2.661 l -3.409 2.661 l -0.538 -0.961 l -0.538 -5.036 l 0.557 -5.036 l 0.557 -0.979 l 3.425 2.661 l 2.092 2.661 l 0 0 l f Q q 1 0 0 1 509.137 141.061 cm 0.729 g 0 0 m -0.389 0 -0.697 -0.308 -0.697 -0.695 c -0.697 -1.069 -0.389 -1.379 0 -1.379 c 0.372 -1.379 0.683 -1.069 0.683 -0.695 c 0.683 -0.308 0.372 0 0 0 c h 0 -0.139 m 0.294 -0.139 0.543 -0.387 0.543 -0.695 c 0.543 -0.992 0.294 -1.257 0 -1.257 c -0.326 -1.257 -0.557 -0.992 -0.557 -0.695 c -0.557 -0.387 -0.308 -0.139 0 -0.139 c h -0.326 -0.326 m -0.326 -1.061 l -0.139 -1.061 l -0.139 -0.766 l -0.079 -0.774 l -0.05 -0.8 0.016 -0.893 0.09 -1.061 c 0.308 -1.061 l 0.247 -0.943 l 0.199 -0.835 0.156 -0.774 0.075 -0.735 c 0.14 -0.73 0.278 -0.682 0.278 -0.527 c 0.278 -0.387 0.156 -0.326 0.016 -0.326 c -0.326 -0.326 l h -0.139 -0.448 m -0.05 -0.448 l 0.031 -0.448 0.09 -0.483 0.09 -0.552 c 0.09 -0.621 0.031 -0.635 -0.063 -0.635 c -0.139 -0.635 l -0.139 -0.448 l f Q q 1 0 0 1 270.613 109.562 cm 0.729 g 0 0 m -0.338 0.326 -0.791 0.527 -1.316 0.527 c -1.687 0.527 -2.243 0.309 -2.322 -0.138 c -2.382 -0.622 -1.856 -0.804 -1.499 -0.913 c -1.003 -1.082 l 0.079 -1.408 0.853 -1.982 0.653 -3.301 c 0.526 -4.092 0.202 -4.928 -0.524 -5.47 c -1.252 -6.009 -2.138 -6.227 -2.942 -6.227 c -3.966 -6.227 -4.91 -5.888 -5.639 -5.305 c -4.475 -3.61 l -4.025 -4.074 -3.469 -4.444 -2.739 -4.444 c -2.243 -4.444 -1.687 -4.2 -1.595 -3.64 c -1.499 -3.034 -2.291 -2.844 -2.724 -2.713 c -3.978 -2.331 -4.799 -1.991 -4.551 -0.418 c -4.292 1.218 -2.942 2.292 -1.329 2.292 c -0.509 2.292 0.436 2.036 1.101 1.635 c 0 0 l f Q q 1 0 0 1 281.363 111.637 cm 0.729 g 0 0 m 2.08 0 l 3.022 -4.323 l 5.454 0 l 7.545 0 l 7.501 -8.102 l 5.38 -8.102 l 5.533 -3.439 l 5.52 -3.439 l 2.836 -8.102 l 1.983 -8.102 l 0.871 -3.439 l 0.853 -3.439 l -0.57 -8.102 l -2.661 -8.102 l 0 0 l f Q q 1 0 0 1 295.141 109.562 cm 0.729 g 0 0 m -0.327 0.326 -0.792 0.527 -1.306 0.527 c -1.692 0.527 -2.249 0.309 -2.31 -0.138 c -2.406 -0.622 -1.864 -0.804 -1.506 -0.913 c -0.993 -1.082 l 0.073 -1.408 0.865 -1.982 0.646 -3.301 c 0.526 -4.092 0.198 -4.928 -0.532 -5.47 c -1.258 -6.009 -2.14 -6.227 -2.962 -6.227 c -3.967 -6.227 -4.915 -5.888 -5.66 -5.305 c -4.479 -3.61 l -4.033 -4.074 -3.456 -4.444 -2.745 -4.444 c -2.249 -4.444 -1.692 -4.2 -1.597 -3.64 c -1.506 -3.034 -2.297 -2.844 -2.728 -2.713 c -3.985 -2.331 -4.805 -1.991 -4.56 -0.418 c -4.293 1.218 -2.962 2.292 -1.335 2.292 c -0.515 2.292 0.447 2.036 1.096 1.635 c 0 0 l f Q q 1 0 0 1 273.188 103.661 cm 0.729 g 0 0 m -2.961 0 l 5.219 10.589 l 5.219 0 l 2.867 0 l 2.867 4.119 l 0 0 l f Q q 1 0 0 1 114.275 108.059 cm 0.729 g 0 0 m 0 -1.866 -1.006 -3.491 -2.541 -4.314 c -2.589 -4.393 l -2.51 -4.46 l -1.985 -4.43 -1.532 -4.314 -1.084 -4.095 c 0.542 -3.274 1.66 -1.586 1.66 0.366 c 1.66 2.688 -0.231 4.563 -2.541 4.563 c -2.74 4.563 -2.88 4.563 -3.085 4.532 c -3.146 4.424 l -3.098 4.363 l -1.271 3.766 0 2.045 0 0 c -0.28 0 l -0.28 2.022 -1.596 3.739 -3.44 4.316 c -3.61 4.376 -3.579 4.579 -3.549 4.719 c -3.514 4.919 -3.44 5.154 -3.146 5.197 c -1.889 5.385 -0.697 5.754 0.403 6.289 c 2.156 5.076 3.299 3.044 3.299 0.736 c 3.299 -2.996 0.264 -6.035 -3.471 -6.035 c -7.202 -6.035 -10.238 -2.996 -10.238 0.736 c -10.238 2.271 -9.729 3.678 -8.876 4.818 c -7.686 5.197 -6.416 5.401 -5.127 5.355 c -4.542 5.336 -4.29 5.184 -4.354 4.889 c -4.415 4.592 -4.524 4.462 -4.88 4.424 c -5.08 4.41 -5.357 4.384 -5.532 4.363 c -7.233 4.084 -8.537 2.393 -8.537 0.366 c -8.537 -1.757 -7.22 -3.569 -5.357 -4.3 c -4.988 -4.43 -4.585 -4.514 -4.166 -4.514 c -3.44 -4.514 -2.772 -4.282 -2.231 -3.874 c -1.036 -2.996 -0.28 -1.586 -0.28 0 c 0 0 l f Q q 1 0 0 1 110.803 101.12 cm 0.729 g 0 0 m 4.232 0 7.684 3.431 7.684 7.675 c 7.684 11.906 4.232 15.347 0 15.347 c -4.244 15.347 -7.666 11.906 -7.666 7.675 c -7.666 3.431 -4.244 0 0 0 c 0 -0.496 l -4.524 -0.496 -8.178 3.161 -8.178 7.675 c -8.178 12.197 -4.524 15.841 0 15.841 c 4.509 15.841 8.181 12.197 8.181 7.675 c 8.181 3.161 4.509 -0.496 0 -0.496 c 0 0 l f Q q 1 0 0 1 107.225 114.544 cm 0.729 g 0 0 m 1.07 -0.297 2.2 -0.448 3.378 -0.435 c 4.6 -0.405 5.779 -0.21 6.879 0.169 c 5.906 0.713 4.776 1.022 3.579 1.022 c 2.266 1.022 1.039 0.652 0 0 c f Q q 1 0 0 1 120.813 111.538 cm 0.729 g 0 0 m 0 1.162 l 0.232 1.162 l 0.637 1.162 0.82 0.975 0.82 0.588 c 0.82 0.199 0.637 0 0.232 0 c 0 0 l h -0.65 -1.86 m 0 -1.86 l 0 -0.482 l 0.359 -0.482 l 1.085 -0.482 1.459 -0.079 1.459 0.588 c 1.459 1.253 1.085 1.665 0.359 1.665 c -0.65 1.665 l -0.65 -1.86 l f Q q 1 0 0 1 124.437 109.802 cm 0.729 g 0 0 m -0.122 -0.06 -0.4 -0.163 -0.776 -0.163 c -1.611 -0.163 -1.984 0.437 -1.984 1.132 c -1.984 1.907 -1.561 2.51 -0.914 2.51 c -0.341 2.51 0.125 2.184 0.125 1.124 c 0.125 1.006 l -1.378 1.006 l -1.378 0.567 -1.192 0.302 -0.713 0.302 c -0.326 0.302 -0.153 0.402 -0.031 0.496 c 0 0 l h -0.479 1.394 m -0.479 1.858 -0.619 2.094 -0.914 2.094 c -1.242 2.094 -1.378 1.736 -1.378 1.394 c -0.479 1.394 l f Q q 1 0 0 1 126.408 110.804 cm 0.729 g 0 0 m 0 -0.465 -0.142 -0.753 -0.515 -0.753 c -0.746 -0.753 -0.914 -0.583 -0.914 -0.344 c -0.914 0.034 -0.593 0.143 -0.049 0.143 c 0 0.143 l 0 0 l h -1.199 0.818 m -1.072 0.922 -0.794 1.06 -0.484 1.06 c -0.127 1.06 0 0.826 0 0.569 c 0 0.469 l -0.127 0.469 l -0.914 0.469 -1.489 0.299 -1.489 -0.414 c -1.489 -0.891 -1.118 -1.165 -0.715 -1.165 c -0.346 -1.165 -0.142 -0.988 0.012 -0.771 c 0.012 -0.891 0.03 -1.031 0.041 -1.126 c 0.616 -1.126 l 0.603 -1.031 0.585 -0.848 0.585 -0.662 c 0.585 0.456 l 0.585 1.121 0.398 1.508 -0.405 1.508 c -0.81 1.508 -1.052 1.4 -1.228 1.322 c -1.199 0.818 l f Q q 1 0 0 1 129.335 109.742 cm 0.729 g 0 0 m -0.14 -0.047 -0.359 -0.103 -0.604 -0.103 c -1.472 -0.103 -1.826 0.497 -1.826 1.241 c -1.826 1.967 -1.457 2.57 -0.575 2.57 c -0.37 2.57 -0.14 2.509 -0.031 2.471 c -0.062 1.967 l -0.188 2.028 -0.339 2.106 -0.51 2.106 c -0.975 2.106 -1.194 1.78 -1.194 1.223 c -1.194 0.745 -0.963 0.371 -0.479 0.371 c -0.328 0.371 -0.124 0.431 -0.031 0.497 c 0 0 l f Q q 1 0 0 1 129.72 113.46 cm 0.729 g 0 0 m 0.624 0 l 0.624 -1.522 l 0.636 -1.522 l 0.744 -1.347 0.901 -1.148 1.288 -1.148 c 1.874 -1.148 2.045 -1.583 2.045 -2.108 c 2.045 -3.782 l 1.426 -3.782 l 1.426 -2.23 l 1.426 -1.83 1.317 -1.662 1.07 -1.662 c 0.744 -1.662 0.624 -1.938 0.624 -2.269 c 0.624 -3.782 l 0 -3.782 l 0 0 l f Q q 1 0 0 1 132.974 110.965 cm 0.729 g 0 0 m 0 0.494 0.124 0.891 0.494 0.891 c 0.851 0.891 0.947 0.586 0.947 -0.018 c 0.947 -0.527 0.822 -0.861 0.481 -0.861 c 0.124 -0.861 0 -0.496 0 0 c h -0.636 -2.37 m 0 -2.37 l 0 -0.923 l 0.094 -1.118 0.295 -1.326 0.682 -1.326 c 1.238 -1.326 1.565 -0.832 1.565 0.018 c 1.565 0.726 1.304 1.347 0.664 1.347 c 0.249 1.347 0.059 1.131 -0.031 0.899 c -0.044 0.899 l -0.044 1.083 -0.061 1.222 -0.061 1.299 c -0.649 1.299 l -0.636 1.217 -0.636 1.06 -0.636 0.865 c -0.636 -2.37 l f Q q 1 0 0 1 135.095 112.264 cm 0.729 g 0 0 0.634 -2.586 re 0 1.119 0.634 -0.623 re f Q q 1 0 0 1 136.583 112.808 cm 0.729 g 0 0 m 0.623 0.188 l 0.623 -0.544 l 1.148 -0.544 l 1.148 -0.991 l 0.623 -0.991 l 0.623 -2.339 l 0.623 -2.609 0.731 -2.695 0.901 -2.695 c 1.023 -2.695 1.1 -2.666 1.148 -2.635 c 1.148 -3.091 l 1.057 -3.13 0.912 -3.169 0.731 -3.169 c 0.265 -3.169 0 -2.961 0 -2.418 c 0 -0.991 l -0.417 -0.991 l -0.417 -0.544 l 0 -0.544 l 0 0 l f Q q 1 0 0 1 124.347 106.054 cm 0.729 g 0 0 m 0 1.145 l 0.229 1.145 l 0.632 1.145 0.804 0.962 0.804 0.58 c 0.804 0.185 0.632 0 0.229 0 c 0 0 l h -0.654 -1.872 m 0 -1.872 l 0 -0.495 l 0.356 -0.495 l 1.082 -0.495 1.454 -0.094 1.454 0.58 c 1.454 1.24 1.082 1.641 0.356 1.641 c -0.654 1.641 l -0.654 -1.872 l f Q q 1 0 0 1 126.267 106.346 cm 0.729 g 0 0 m 0 0.156 0 0.313 -0.016 0.421 c 0.54 0.421 l 0.557 0.267 0.557 0.108 0.557 -0.044 c 0.575 -0.044 l 0.649 0.156 0.853 0.466 1.242 0.466 c 1.349 0.453 l 1.349 -0.12 l 1.163 -0.107 l 0.896 -0.107 0.618 -0.269 0.618 -0.757 c 0.618 -2.164 l 0 -2.164 l 0 0 l f Q q 1 0 0 1 128.51 105.699 cm 0.729 g 0 0 m 0 0.339 0.128 0.695 0.455 0.695 c 0.744 0.695 0.883 0.465 0.883 0 c 0 0 l h 1.335 -0.901 m 1.229 -0.979 1.041 -1.101 0.652 -1.101 c 0.171 -1.101 0 -0.839 0 -0.387 c 1.489 -0.387 l 1.489 -0.275 l 1.489 0.787 1.024 1.113 0.455 1.113 c -0.199 1.113 -0.616 0.527 -0.616 -0.266 c -0.616 -0.961 -0.245 -1.567 0.594 -1.567 c 0.963 -1.567 1.24 -1.445 1.367 -1.397 c 1.335 -0.901 l f Q q 1 0 0 1 130.417 104.785 cm 0.729 g 0 0 m 0.109 -0.038 0.356 -0.165 0.65 -0.165 c 0.886 -0.165 1.056 -0.127 1.056 0.092 c 1.056 0.183 1.008 0.278 0.779 0.417 c 0.53 0.564 l 0.265 0.718 -0.031 0.887 -0.031 1.292 c -0.031 1.656 0.324 2.027 0.87 2.027 c 1.196 2.027 1.456 1.948 1.522 1.918 c 1.487 1.441 l 1.334 1.501 1.164 1.556 0.93 1.556 c 0.682 1.556 0.573 1.454 0.573 1.301 c 0.573 1.161 0.682 1.091 0.87 0.965 c 1.178 0.774 l 1.504 0.564 1.66 0.425 1.66 0.123 c 1.66 -0.364 1.257 -0.653 0.682 -0.653 c 0.374 -0.653 0.109 -0.566 -0.031 -0.531 c 0 0 l f Q q 1 0 0 1 132.479 104.785 cm 0.729 g 0 0 m 0.094 -0.038 0.354 -0.165 0.65 -0.165 c 0.87 -0.165 1.039 -0.127 1.039 0.092 c 1.039 0.183 0.99 0.278 0.774 0.417 c 0.514 0.564 l 0.247 0.718 -0.031 0.887 -0.031 1.292 c -0.031 1.656 0.311 2.027 0.851 2.027 c 1.196 2.027 1.456 1.948 1.517 1.918 c 1.474 1.441 l 1.317 1.501 1.159 1.556 0.929 1.556 c 0.68 1.556 0.555 1.454 0.555 1.301 c 0.555 1.161 0.68 1.091 0.851 0.965 c 1.178 0.774 l 1.485 0.564 1.655 0.425 1.655 0.123 c 1.655 -0.364 1.257 -0.653 0.68 -0.653 c 0.354 -0.653 0.094 -0.566 -0.031 -0.531 c 0 0 l f Q q 1 0 0 1 173.434 103.529 cm 0.729 g 0 0 m 2.553 0 l 2.553 -0.355 l 0.441 -0.355 l 0.441 -1.094 l 1.73 -1.094 l 1.73 -1.443 l 0.441 -1.443 l 0.441 -2.285 l 2.573 -2.285 l 2.573 -2.651 l 0 -2.651 l 0 0 l f Q q 1 0 0 1 149.153 103.529 cm 0.729 g 0 0 m 2.137 0 l 2.521 0 2.697 -0.145 2.697 -0.514 c 2.697 -1.105 l 2.697 -1.474 2.521 -1.618 2.137 -1.618 c 0.442 -1.618 l 0.442 -2.651 l 0 -2.651 l 0 0 l h 0.442 -0.345 m 0.442 -1.269 l 1.961 -1.269 l 2.158 -1.269 2.25 -1.217 2.25 -0.992 c 2.25 -0.623 l 2.25 -0.403 2.164 -0.345 1.961 -0.345 c 0.442 -0.345 l f Q q 1 0 0 1 152.932 103.529 cm 0.729 g 0 0 m 2.14 0 l 2.523 0 2.697 -0.145 2.697 -0.514 c 2.697 -1.105 l 2.697 -1.474 2.523 -1.618 2.14 -1.618 c 1.747 -1.618 l 2.959 -2.651 l 2.303 -2.651 l 1.223 -1.618 l 0.444 -1.618 l 0.444 -2.651 l 0 -2.651 l 0 0 l h 0.444 -0.345 m 0.444 -1.274 l 1.963 -1.274 l 2.157 -1.274 2.251 -1.228 2.251 -1.002 c 2.251 -0.617 l 2.251 -0.395 2.157 -0.345 1.963 -0.345 c 0.444 -0.345 l f Q q 1 0 0 1 156.845 103.529 cm 0.729 g 0 0 m 2.554 0 l 2.554 -0.355 l 0.444 -0.355 l 0.444 -1.094 l 1.732 -1.094 l 1.732 -1.443 l 0.444 -1.443 l 0.444 -2.285 l 2.575 -2.285 l 2.575 -2.651 l 0 -2.651 l 0 0 l f Q q 1 0 0 1 160.472 103.529 cm 0.729 g 0 0 m 0.278 0 l 2.259 -1.772 l 2.353 -1.854 2.455 -1.968 2.561 -2.106 c 2.52 -1.86 2.52 -1.645 2.52 -1.454 c 2.52 0 l 2.928 0 l 2.928 -2.651 l 2.68 -2.651 l 0.641 -0.807 l 0.564 -0.735 0.461 -0.658 0.374 -0.509 c 0.399 -0.704 0.405 -0.893 0.405 -1.09 c 0.405 -2.651 l 0 -2.651 l 0 0 l f Q q 1 0 0 1 165.802 100.878 cm 0.729 g 0 0 m -0.442 0 l -0.442 2.29 l -1.654 2.29 l -1.654 2.651 l 1.217 2.651 l 1.217 2.29 l 0 2.29 l 0 0 l f Q q 1 0 0 1 0 0 cm 0.729 g 167.764 100.878 0.442 2.651 re f Q q 1 0 0 1 169.988 103.168 cm 0.729 g 0 0 m 0 -1.92 l 1.837 -1.92 l 1.837 -1.257 l 2.28 -1.349 l 2.28 -1.663 l 2.28 -2.155 2.141 -2.29 1.664 -2.29 c 0.177 -2.29 l -0.298 -2.29 -0.441 -2.151 -0.441 -1.663 c -0.441 -0.266 l -0.441 0.223 -0.298 0.361 0.177 0.361 c 1.664 0.361 l 2.141 0.361 2.28 0.226 2.28 -0.266 c 2.28 -0.517 l 1.837 -0.599 l 1.837 0 l 0 0 l f Q q 1 0 0 1 155.636 99.754 cm 0.729 g 0 0 m 0.442 0 l 0.442 -1.084 l 2.533 -1.084 l 2.533 0 l 2.975 0 l 2.975 -2.649 l 2.533 -2.649 l 2.533 -1.448 l 0.442 -1.448 l 0.442 -2.649 l 0 -2.649 l 0 0 l f Q q 1 0 0 1 160.917 99.754 cm 0.729 g 0 0 m 0.471 0 l 1.946 -2.649 l 1.457 -2.649 l 1.119 -1.997 l -0.673 -1.997 l -1.014 -2.649 l -1.449 -2.649 l 0 0 l h 0.941 -1.659 m 0.226 -0.303 l -0.489 -1.659 l 0.941 -1.659 l f Q q 1 0 0 1 163.72 99.754 cm 0.729 g 0 0 m 0.441 0 l 0.441 -2.28 l 2.451 -2.28 l 2.451 -2.649 l 0 -2.649 l 0 0 l f Q q 1 0 0 1 167.074 99.754 cm 0.729 g 0 0 m 0.44 0 l 0.44 -2.28 l 2.45 -2.28 l 2.45 -2.649 l 0 -2.649 l 0 0 l f Q q 1 0 0 1 161.133 117.996 cm 0.729 g 0 0 m 0.025 0.13 0.04 0.263 0.04 0.399 c 0.04 1.549 -0.895 2.485 -2.045 2.485 c -3.199 2.485 -4.133 1.549 -4.133 0.399 c -4.133 -0.754 -3.199 -1.689 -2.045 -1.689 c -1.633 -1.689 -1.252 -1.564 -0.928 -1.358 c -0.816 -0.786 -0.474 -0.3 0 0 c f Q q 1 0 0 1 165.409 120.476 cm 0.729 g 0 0 m -1.151 0 -2.085 -0.935 -2.085 -2.087 c -2.085 -2.217 -2.07 -2.343 -2.047 -2.466 c -1.576 -2.774 -1.235 -3.263 -1.129 -3.837 c -0.803 -4.047 -0.416 -4.173 0 -4.173 c 1.155 -4.173 2.087 -3.24 2.087 -2.087 c 2.087 -0.935 1.155 0 0 0 c f Q q 1 0 0 1 165.43 115.636 cm 0.729 g 0 0 m -0.637 0 -1.2 -0.293 -1.583 -0.742 c -1.599 -0.742 l -1.982 -1.205 -2.552 -1.506 -3.201 -1.506 c -3.855 -1.506 -4.433 -1.198 -4.815 -0.727 c -5.198 -0.295 -5.747 -0.017 -6.37 -0.017 c -7.52 -0.017 -8.454 -0.951 -8.454 -2.103 c -8.454 -3.257 -7.52 -4.19 -6.37 -4.19 c -5.78 -4.19 -5.257 -3.939 -4.878 -3.546 c -4.5 -3.013 -3.882 -2.662 -3.178 -2.662 c -2.472 -2.662 -1.853 -3.014 -1.475 -3.549 c -1.098 -3.931 -0.581 -4.174 0 -4.174 c 1.152 -4.174 2.084 -3.241 2.084 -2.089 c 2.084 -0.937 1.152 0 0 0 c f Q q 1 0 0 1 165.384 110.748 cm 0.729 g 0 0 m -0.412 0 -0.795 -0.124 -1.119 -0.331 c -1.23 -0.903 -1.573 -1.388 -2.047 -1.69 c -2.073 -1.821 -2.087 -1.951 -2.087 -2.087 c -2.087 -3.239 -1.151 -4.174 0 -4.174 c 1.152 -4.174 2.086 -3.239 2.086 -2.087 c 2.086 -0.935 1.152 0 0 0 c f Q q 1 0 0 1 160.189 110.415 cm 0.729 g 0 0 m -0.328 0.211 -0.713 0.338 -1.129 0.338 c -2.282 0.338 -3.216 -0.597 -3.216 -1.75 c -3.216 -2.9 -2.282 -3.835 -1.129 -3.835 c 0.022 -3.835 0.958 -2.9 0.958 -1.75 c 0.958 -1.618 0.941 -1.492 0.917 -1.368 c 0.446 -1.062 0.107 -0.573 0 0 c f Q q 1 0 0 1 318.544 109.369 cm 0.729 g 0 0 m 0.044 -1.231 1.037 -1.619 2.091 -1.619 c 2.89 -1.619 3.974 -1.425 3.974 -0.373 c 3.974 0.696 2.71 0.876 1.431 1.184 c 0.164 1.491 -1.115 1.944 -1.115 3.548 c -1.115 5.231 0.436 5.928 1.79 5.928 c 3.509 5.928 4.879 5.345 4.985 3.304 c 3.704 3.304 l 3.613 4.374 2.74 4.714 1.897 4.714 c 1.13 4.714 0.239 4.486 0.239 3.645 c 0.239 2.657 1.597 2.494 2.786 2.186 c 4.066 1.879 5.331 1.426 5.331 -0.193 c 5.331 -2.186 3.598 -2.834 2.017 -2.834 c 0.27 -2.834 -1.206 -2.072 -1.281 0 c 0 0 l f Q q 1 0 0 1 329.358 109.644 cm 0.729 g 0 0 m 0 -0.76 -0.695 -1.894 -2.381 -1.894 c -3.165 -1.894 -3.888 -1.57 -3.888 -0.662 c -3.888 0.357 -3.165 0.68 -2.32 0.843 c -1.464 1.005 -0.497 1.021 0 1.409 c 0 0 l h 2.077 -1.813 m 1.911 -1.878 1.792 -1.894 1.685 -1.894 c 1.278 -1.894 1.278 -1.603 1.278 -0.955 c 1.278 3.353 l 1.278 5.312 -0.242 5.653 -1.643 5.653 c -3.376 5.653 -4.866 4.924 -4.942 2.852 c -3.66 2.852 l -3.599 4.081 -2.802 4.439 -1.719 4.439 c -0.904 4.439 0.014 4.244 0.014 3.045 c 0.014 2.009 -1.19 2.106 -2.606 1.814 c -3.932 1.539 -5.241 1.135 -5.241 -0.76 c -5.241 -2.429 -4.082 -3.109 -2.667 -3.109 c -1.584 -3.109 -0.634 -2.704 0.073 -1.813 c 0.073 -2.719 0.498 -3.109 1.158 -3.109 c 1.565 -3.109 1.852 -3.027 2.077 -2.882 c 2.077 -1.813 l f Q q 1 0 0 1 332.624 109.369 cm 0.729 g 0 0 m 0.045 -1.231 1.039 -1.619 2.092 -1.619 c 2.89 -1.619 3.975 -1.425 3.975 -0.373 c 3.975 0.696 2.712 0.876 1.43 1.184 c 0.165 1.491 -1.115 1.944 -1.115 3.548 c -1.115 5.231 0.437 5.928 1.792 5.928 c 3.509 5.928 4.88 5.345 4.985 3.304 c 3.705 3.304 l 3.613 4.374 2.74 4.714 1.899 4.714 c 1.128 4.714 0.241 4.486 0.241 3.645 c 0.241 2.657 1.596 2.494 2.785 2.186 c 4.066 1.879 5.333 1.426 5.333 -0.193 c 5.333 -2.186 3.598 -2.834 2.019 -2.834 c 0.27 -2.834 -1.205 -2.072 -1.279 0 c 0 0 l f Q q 1 0 0 1 313.147 112.814 cm 0.729 g 0 0 m -0.212 0.257 l -0.509 0.607 -0.991 0.606 -1.347 0.313 c -1.706 0.019 -1.81 -0.47 -1.515 -0.825 c -1.418 -0.944 l f Q q 1 0 0 1 311.723 111.878 cm 0.729 g 0 0 m 0.678 -0.815 1.589 -1.911 y 2.725 -3.29 2.216 -4.99 0.677 -5.958 c -0.682 -6.809 -3.174 -6.506 -4.032 -5.107 c -3.366 -7.071 -1.135 -8.354 1.335 -7.738 c 3.474 -7.202 5.867 -4.449 3.251 -1.276 c 1.307 1.072 l f Q q 1 0 0 1 311.933 108.929 cm 0.729 g 0 0 m -0.66 0.794 -1.467 1.762 y -2.601 3.141 -2.094 4.841 -0.553 5.808 c 0.804 6.66 3.299 6.357 4.157 4.957 c 3.49 6.921 1.257 8.204 -1.212 7.588 c -3.352 7.054 -5.744 4.301 -3.128 1.126 c -1.274 -1.112 l f Q q 1 0 0 1 310.366 108.161 cm 0.729 g 0 0 m 0.441 -0.535 l 0.736 -0.886 1.218 -0.884 1.574 -0.591 c 1.93 -0.296 2.037 0.191 1.742 0.549 c 1.74 0.55 1.567 0.759 1.316 1.061 c f Q q 1 0 0 1 337.43 106.751 cm 0.729 g 0 0 m 0 0.235 0.174 0.412 0.401 0.412 c 0.624 0.412 0.802 0.235 0.802 0 c 0.802 -0.236 0.624 -0.413 0.401 -0.413 c 0.174 -0.413 0 -0.236 0 0 c h 0.401 -0.493 m 0.67 -0.493 0.902 -0.286 0.902 0 c 0.902 0.286 0.67 0.494 0.401 0.494 c 0.13 0.494 -0.103 0.286 -0.103 0 c -0.103 -0.286 0.13 -0.493 0.401 -0.493 c h 0.296 -0.037 m 0.395 -0.037 l 0.546 -0.286 l 0.643 -0.286 l 0.48 -0.034 l 0.566 -0.025 0.629 0.02 0.629 0.123 c 0.629 0.235 0.563 0.286 0.428 0.286 c 0.21 0.286 l 0.21 -0.286 l 0.296 -0.286 l 0.296 -0.037 l h 0.296 0.034 m 0.296 0.212 l 0.415 0.212 l 0.54 0.128 l 0.54 0.04 0.474 0.034 0.4 0.034 c 0.296 0.034 l f Q q 1 0 0 1 316.406 106.751 cm 0.729 g 0 0 m 0 0.235 0.176 0.412 0.404 0.412 c 0.626 0.412 0.806 0.235 0.806 0 c 0.806 -0.236 0.626 -0.413 0.404 -0.413 c 0.176 -0.413 0 -0.236 0 0 c h 0.404 -0.493 m 0.674 -0.493 0.904 -0.286 0.904 0 c 0.904 0.286 0.674 0.494 0.404 0.494 c 0.132 0.494 -0.1 0.286 -0.1 0 c -0.1 -0.286 0.132 -0.493 0.404 -0.493 c h 0.298 -0.037 m 0.397 -0.037 l 0.55 -0.286 l 0.646 -0.286 l 0.483 -0.034 l 0.567 -0.025 0.633 0.02 0.633 0.123 c 0.633 0.235 0.565 0.286 0.43 0.286 c 0.213 0.286 l 0.213 -0.286 l 0.298 -0.286 l 0.298 -0.037 l h 0.298 0.034 m 0.298 0.212 l 0.417 0.212 l 0.54 0.128 l 0.54 0.04 0.476 0.034 0.404 0.034 c 0.298 0.034 l f Q q 1 0 0 1 0 0 cm 0.729 g 317.343 104.732 20.426 0.403 re f Q q 1 0 0 1 320.39 101.473 cm 0.729 g 0 0 m 0 2.268 l 1.093 2.268 l 1.746 2.268 2.06 1.969 2.06 1.503 c 2.06 1.015 1.77 0.706 1.118 0.706 c 0.743 0.706 l 0.743 0 l 0 0 l h 1.052 1.236 m 1.225 1.236 1.352 1.304 1.352 1.499 c 1.352 1.711 1.111 1.739 0.955 1.739 c 0.743 1.739 l 0.743 1.236 l 1.052 1.236 l f Q q 1 0 0 1 324.4 101.473 cm 0.729 g 0 0 m -0.606 0 l -0.606 0.243 l -0.772 0.015 -0.934 -0.047 -1.202 -0.047 c -1.563 -0.047 -1.795 0.174 -1.795 0.646 c -1.795 1.651 l -1.14 1.651 l -1.14 0.76 l -1.14 0.533 -1.061 0.46 -0.904 0.46 c -0.715 0.46 -0.656 0.603 -0.656 0.857 c -0.656 1.651 l 0 1.651 l 0 0 l f Q q 1 0 0 1 325.33 102.957 cm 0.729 g 0 0 m 0.129 0.151 0.28 0.215 0.475 0.215 c 0.898 0.215 1.194 -0.15 1.194 -0.648 c 1.194 -1.137 0.985 -1.531 0.447 -1.531 c 0.173 -1.531 0.022 -1.408 -0.061 -1.251 c -0.067 -1.251 l -0.067 -1.484 l -0.655 -1.484 l -0.655 0.784 l 0 0.784 l 0 0 l h 0.539 -0.671 m 0.539 -0.494 0.471 -0.293 0.261 -0.293 c 0.061 -0.293 -0.018 -0.489 -0.018 -0.658 c -0.018 -0.834 0.046 -1.058 0.261 -1.058 c 0.475 -1.058 0.539 -0.851 0.539 -0.671 c f Q q 1 0 0 1 0 0 cm 0.729 g 326.789 101.473 0.654 2.268 re f Q q 1 0 0 1 327.806 103.801 cm 0.729 g 0 0 0.655 -0.466 re 0.655 -2.328 -0.655 1.651 re f Q q 1 0 0 1 329.355 101.987 cm 0.729 g 0 0 m 0.069 -0.152 l 0.231 -0.201 l 0.331 -0.201 0.438 -0.17 0.438 -0.054 c 0.438 0.211 -0.573 0 -0.573 0.639 c -0.573 1.061 -0.137 1.185 0.208 1.185 c 0.568 1.185 0.99 1.102 1.028 0.664 c 0.432 0.664 l 0.369 0.784 l 0.237 0.826 l 0.124 0.826 0.05 0.79 0.05 0.709 c 0.05 0.48 1.094 0.634 1.094 0.015 c 1.094 -0.327 0.81 -0.561 0.206 -0.561 c -0.173 -0.561 -0.588 -0.444 -0.624 0 c 0 0 l f Q q 1 0 0 1 330.673 103.741 cm 0.729 g 0 0 m 0.655 0 l 0.655 -0.825 l 0.787 -0.658 0.935 -0.569 1.156 -0.569 c 1.59 -0.569 1.795 -0.825 1.795 -1.278 c 1.795 -2.268 l 1.139 -2.268 l 1.139 -1.394 l 1.139 -1.231 1.096 -1.087 0.91 -1.087 c 0.708 -1.087 0.655 -1.215 0.655 -1.427 c 0.655 -2.268 l 0 -2.268 l 0 0 l f Q q 1 0 0 1 332.785 103.801 cm 0.729 g 0 0 0.656 -0.466 re 0.656 -2.328 -0.656 1.651 re f Q q 1 0 0 1 333.76 103.124 cm 0.729 g 0 0 m 0.6 0 l 0.6 -0.259 l 0.746 -0.059 0.908 0.048 1.155 0.048 c 1.591 0.048 1.795 -0.208 1.795 -0.661 c 1.795 -1.651 l 1.14 -1.651 l 1.14 -0.777 l 1.14 -0.614 1.097 -0.47 0.909 -0.47 c 0.709 -0.47 0.654 -0.598 0.654 -0.81 c 0.654 -1.651 l 0 -1.651 l 0 0 l f Q q 1 0 0 1 336.529 101.389 cm 0.729 g 0 0 m 0.041 -0.073 l 0.183 -0.114 l 0.372 -0.114 0.446 -0.03 0.446 0.207 c 0.446 0.342 l 0.354 0.249 0.211 0.164 -0.027 0.164 c -0.481 0.164 -0.743 0.523 -0.743 0.944 c -0.743 1.351 -0.549 1.783 -0.007 1.783 c 0.191 1.783 0.377 1.679 0.494 1.517 c 0.494 1.735 l 1.07 1.735 l 1.07 0.406 l 1.07 -0.09 1.014 -0.477 0.202 -0.477 c -0.382 -0.477 -0.628 -0.243 -0.657 0 c 0 0 l h -0.088 0.938 m -0.088 0.774 -0.007 0.62 0.171 0.617 c 0.372 0.607 0.446 0.78 0.446 0.958 c 0.446 1.139 0.377 1.313 0.171 1.313 c -0.028 1.316 -0.088 1.152 -0.088 0.938 c f Q q 1 0 0 1 445.722 107.685 cm 0.729 g 0 0 m 0 -3.204 -0.942 -4.951 -2.513 -6.115 c -3.642 -6.951 -5.103 -7.359 -6.816 -7.359 c -8.485 -7.359 -10.103 -6.956 -11.325 -5.923 c -12.619 -4.829 -13.573 -3.181 -13.573 -0.019 c -13.573 2.622 -12.919 4.276 -11.75 5.457 c -10.352 6.869 -8.416 7.28 -6.775 7.28 c -5.127 7.28 -3.562 6.898 -2.196 5.793 c -0.9 4.746 0 2.91 0 0 c h -2.415 5.596 m -3.404 6.426 -4.507 6.8 -6.775 6.8 c -9.329 6.8 -10.622 6.227 -11.527 5.234 c -12.562 4.101 -12.995 2.504 -12.995 -0.008 c -12.995 -2.074 -12.712 -4.134 -11.466 -5.378 c -10.382 -6.463 -9.075 -6.866 -6.803 -6.866 c -4.696 -6.866 -3.395 -6.608 -2.27 -5.505 c -1.062 -4.32 -0.581 -2.709 -0.581 -0.008 c -0.581 2.762 -1.217 4.589 -2.415 5.596 c f Q q 1 0 0 1 442.946 110.628 cm 0.729 g 0 0 m 0 -0.086 l 0.205 -0.105 0.335 -0.272 v 0.464 -0.439 0.5 -0.673 0.354 -1.074 c 0.192 -1.523 -0.908 -4.033 -1.105 -4.427 c -1.207 -4.634 -1.282 -4.9 -1.304 -5.017 c -1.356 -5.017 l -1.372 -4.95 -1.607 -4.609 -1.726 -4.442 c -1.837 -4.282 -2.558 -3.42 -3.292 -2.546 c -3.435 -2.393 l -3.426 -2.327 l -3.292 -2.172 l -2.56 -1.245 -1.972 -0.47 -1.918 -0.401 c -1.77 -0.216 -1.64 -0.077 -1.569 -0.033 c -1.569 0 l -3.405 0 l -3.403 0.533 -3.4 0.984 -3.394 1.146 c -3.367 1.741 -3.305 1.991 -2.997 2.34 c -2.841 2.518 -2.701 2.607 y -2.733 2.67 l -2.874 2.596 -3.18 2.581 -3.509 2.581 c -3.838 2.581 -4.905 2.601 -5.386 2.601 c -5.864 2.601 -6.167 2.491 -6.391 2.293 c -6.604 2.104 -6.83 1.662 -6.85 1.59 c -6.791 1.551 l -6.712 1.634 -6.532 1.787 -6.328 1.855 c -6.086 1.937 -5.87 1.96 -5.567 1.96 c -5.265 1.96 -4.508 1.937 -4.284 1.937 c -4.06 1.937 -3.878 1.954 -3.758 1.986 c -3.634 2.017 -3.58 2.037 -3.529 2.069 c -3.438 2.123 -3.42 2.059 -3.493 2 c -3.542 1.963 -3.652 1.863 -3.758 1.741 c -4.014 1.449 -4.227 1.11 -4.227 0.375 c -4.227 0.27 -4.227 0.143 -4.227 0 c -6.48 0 l -6.48 -0.033 l -6.293 -0.162 -6.047 -0.46 v -5.946 -0.581 -5.253 -1.414 -4.458 -2.384 c -4.302 -2.553 l -4.298 -2.612 l -4.353 -2.682 -4.383 -2.704 -4.454 -2.792 c -5.206 -3.727 -5.902 -4.637 -5.963 -4.729 c -6.094 -4.927 -6.133 -4.98 -6.169 -5.055 c -6.201 -5.124 -6.231 -5.166 -6.251 -5.072 c -6.274 -4.978 -6.308 -4.813 -6.48 -4.427 c -6.652 -4.041 -8.055 -1.159 -8.163 -0.934 c -8.317 -0.616 -8.274 -0.401 -8.179 -0.266 c -8.113 -0.171 -8.007 -0.11 -7.903 -0.087 c -7.903 0 l -9.696 0 l -9.696 -0.087 l -9.536 -0.16 l -9.472 -0.219 -9.373 -0.39 -9.314 -0.495 c -9.104 -0.861 -6.786 -5.619 -6.684 -5.845 c -6.517 -6.209 -6.497 -6.299 y -6.461 -6.299 l -6.216 -5.927 -5.844 -5.46 v -5.73 -5.315 -5.112 -4.462 -4.371 -3.515 c -4.317 -3.446 -4.259 -3.382 -4.224 -3.305 c -4.187 -3.319 l -4.201 -3.601 l -4.194 -4.954 -4.174 -6.423 -4.166 -7.21 c -4.155 -8.175 -4.383 -8.467 -4.874 -8.467 c -5.009 -8.467 -5.146 -8.42 -5.212 -8.365 c -5.286 -8.306 -5.321 -8.195 -5.156 -8.154 c -4.993 -8.114 -4.848 -7.941 -4.845 -7.671 c -4.84 -7.404 -5.041 -7.128 -5.406 -7.133 c -5.796 -7.138 -6.07 -7.451 -6.07 -7.905 c -6.07 -8.259 -5.796 -8.874 -4.844 -8.863 c -3.717 -8.851 -3.432 -7.938 -3.392 -7.504 c -3.36 -7.165 -3.366 -6.863 -3.366 -6.331 c -3.366 -5.978 -3.38 -4.908 -3.396 -3.959 c -3.405 -3.692 l -3.422 -3.617 -3.394 -3.608 -3.366 -3.674 c -3.329 -3.76 -3.263 -3.861 -3.241 -3.887 c -2.497 -4.811 -1.909 -5.544 -1.809 -5.673 c -1.471 -6.103 -1.343 -6.299 y -1.297 -6.299 l -1.179 -5.941 -1.034 -5.638 v -0.883 -5.324 1.105 -0.867 1.185 -0.699 c 1.268 -0.522 1.392 -0.3 1.475 -0.224 c 1.538 -0.169 1.618 -0.105 1.705 -0.086 c 1.705 0 l 0 0 l h -2.616 -0.373 m -2.526 -0.373 l -2.518 -0.412 l -2.665 -0.561 l -2.676 -0.573 -2.912 -0.855 -3.245 -1.273 c -3.3 -1.343 -3.343 -1.394 -3.389 -1.477 c -3.418 -1.538 -3.44 -1.533 -3.425 -1.45 c -3.416 -1.385 -3.414 -1.276 -3.413 -1.186 c -3.413 -0.923 -3.408 -0.643 -3.406 -0.373 c -2.616 -0.373 l h -4.227 -1.482 m -4.268 -1.4 -4.417 -1.207 -4.437 -1.182 c -4.788 -0.767 -4.934 -0.59 -4.972 -0.538 c -5.073 -0.417 l -5.059 -0.368 l -4.946 -0.373 l -4.213 -0.373 l -4.211 -0.639 -4.208 -0.87 -4.207 -1.186 c -4.207 -1.302 -4.205 -1.377 -4.196 -1.46 c -4.181 -1.542 -4.205 -1.529 -4.227 -1.482 c f Q q 1 0 0 1 458.432 105.743 cm 0.729 g 0 0 m -0.119 0.125 -0.117 0.325 -0.117 0.48 c -0.117 6.478 l -0.117 6.745 -0.07 6.861 0.023 6.965 c 0.112 7.065 0.226 7.143 0.379 7.164 c 0.379 7.275 l -1.986 7.275 l -1.986 7.164 l -1.835 7.143 -1.717 7.061 -1.633 6.965 c -1.538 6.861 -1.492 6.745 -1.492 6.478 c -1.492 0.48 l -1.492 0.325 -1.49 0.125 -1.607 0 c -1.706 -0.102 -1.86 -0.146 -1.986 -0.164 c -1.986 -0.279 l 0.379 -0.279 l 0.379 -0.164 l 0.251 -0.15 0.097 -0.102 0 0 c f Q q 1 0 0 1 464.348 107.411 cm 0.729 g 0 0 m -0.031 -0.161 -0.112 -0.433 -0.3 -0.621 c -0.489 -0.81 -0.655 -0.856 -1.098 -0.856 c -1.453 -0.856 -2.253 -0.856 -2.559 -0.856 c -2.559 4.81 l -2.559 5.077 -2.513 5.193 -2.418 5.297 c -2.333 5.393 -2.173 5.478 -1.974 5.496 c -1.974 5.607 l -4.43 5.607 l -4.43 5.496 l -4.278 5.475 -4.161 5.393 -4.074 5.297 c -3.981 5.193 -3.937 5.066 -3.935 4.81 c -3.935 -1.188 l -3.935 -1.343 -3.931 -1.543 -4.05 -1.668 c -4.15 -1.77 -4.301 -1.818 -4.43 -1.832 c -4.43 -1.947 l -0.025 -1.947 l 0.114 -0.012 l 0 0 l f Q q 1 0 0 1 469.589 107.412 cm 0.729 g 0 0 m -0.032 -0.161 -0.117 -0.469 -0.305 -0.657 c -0.494 -0.846 -0.657 -0.891 -1.1 -0.891 c -1.455 -0.891 -2.562 -0.891 -2.868 -0.891 c -2.868 1.519 l -1.463 1.519 l -1.194 1.519 -1.062 1.457 -0.956 1.364 c -0.861 1.277 -0.765 1.112 -0.745 0.96 c -0.636 0.96 l -0.636 3.092 l -0.745 3.092 l -0.765 2.94 -0.852 2.788 -0.948 2.702 c -1.051 2.608 -1.166 2.561 -1.433 2.561 c -2.868 2.561 l -2.868 4.586 l -2.445 4.586 -1.218 4.586 -1.102 4.586 c -0.962 4.586 -0.687 4.586 -0.499 4.398 c -0.31 4.209 -0.307 4.028 -0.287 3.902 c -0.176 3.911 l -0.21 5.606 l -4.738 5.606 l -4.738 5.495 l -4.585 5.474 -4.47 5.392 -4.383 5.296 c -4.29 5.192 -4.244 5.076 -4.244 4.809 c -4.244 -1.189 l -4.244 -1.344 -4.24 -1.544 -4.36 -1.669 c -4.457 -1.771 -4.612 -1.82 -4.738 -1.833 c -4.738 -1.948 l -0.03 -1.948 l 0.111 -0.013 l 0 0 l f Q q 1 0 0 1 474.245 113.018 cm 0.729 g 0 0 m 0 -0.111 l 0.141 -0.136 0.278 -0.175 0.355 -0.333 c 0.435 -0.494 0.374 -0.708 0.265 -0.922 c 0.141 -1.171 -0.613 -2.598 -0.734 -2.825 c -0.856 -3.054 -0.916 -3.165 -0.939 -3.258 c -0.962 -3.352 -0.994 -3.357 -1.018 -3.254 c -1.042 -3.152 -1.119 -2.998 -1.208 -2.84 c -1.298 -2.681 -2.301 -0.85 -2.363 -0.732 c -2.455 -0.556 -2.516 -0.383 -2.438 -0.252 c -2.361 -0.124 -2.27 -0.127 -2.164 -0.111 c -2.164 0 l -4.496 0 l -4.496 -0.111 l -4.391 -0.132 -4.32 -0.164 -4.233 -0.24 c -4.142 -0.316 -4.081 -0.393 -3.996 -0.537 c -3.918 -0.673 -2.017 -3.947 -1.797 -4.326 c -1.797 -6.795 l -1.797 -6.95 -1.796 -7.15 -1.913 -7.275 c -2.012 -7.377 -2.164 -7.425 -2.292 -7.439 c -2.292 -7.554 l 0.071 -7.554 l 0.071 -7.439 l -0.061 -7.425 -0.209 -7.377 -0.306 -7.275 c -0.424 -7.15 -0.423 -6.95 -0.423 -6.795 c -0.423 -4.327 l 1.557 -0.742 l 1.655 -0.566 1.812 -0.326 1.91 -0.236 c 2.017 -0.141 2.109 -0.124 2.183 -0.111 c 2.183 0 l 0 0 l f Q q 1 0 0 1 448.426 113.018 cm 0.729 g 0 0 m -2.397 0 l -2.397 -0.111 l -2.295 -0.124 -2.144 -0.164 -1.996 -0.324 c -1.861 -0.468 -1.814 -0.578 -1.729 -0.756 c -1.646 -0.934 0.855 -6.731 0.994 -7.056 c 1.133 -7.382 1.283 -7.696 1.317 -7.791 c 1.44 -7.792 l 1.599 -7.475 1.757 -7.084 v 1.915 -6.692 2.569 -5.175 2.632 -5.018 c 2.744 -4.743 2.802 -4.552 2.819 -4.469 c 2.831 -4.4 2.853 -4.396 2.866 -4.47 c 2.88 -4.544 2.96 -4.798 3.046 -5.027 c 3.118 -5.216 3.827 -6.877 3.944 -7.14 c 4.062 -7.405 4.216 -7.714 4.246 -7.791 c 4.377 -7.791 l 4.455 -7.562 4.569 -7.348 4.671 -7.093 c 4.773 -6.837 7.016 -1.043 7.122 -0.765 c 7.224 -0.498 7.298 -0.361 7.388 -0.282 c 7.508 -0.172 7.629 -0.129 7.745 -0.111 c 7.745 0 l 5.642 0 l 5.642 -0.111 l 5.735 -0.13 5.867 -0.152 5.949 -0.274 c 6.032 -0.401 5.973 -0.67 5.906 -0.854 c 5.793 -1.168 4.608 -4.613 y 4.551 -4.819 4.511 -4.981 4.491 -5.078 c 4.471 -5.177 4.441 -5.184 4.421 -5.081 c 4.404 -4.998 4.36 -4.868 4.258 -4.593 c 3.633 -3.114 3.589 -3.028 v 3.505 -2.88 l 3.509 -2.808 l 3.595 -2.623 l 3.645 -2.51 4.426 -0.641 4.475 -0.523 c 4.523 -0.404 4.6 -0.274 4.671 -0.216 c 4.735 -0.161 4.798 -0.124 4.888 -0.111 c 4.888 0 l 3.209 0 l 3.209 -0.111 l 3.323 -0.129 3.41 -0.178 3.451 -0.265 c 3.489 -0.344 3.483 -0.49 3.426 -0.63 c 3.372 -0.77 3.129 -1.388 3.106 -1.482 c 3.084 -1.575 3.065 -1.626 3.06 -1.677 c 3.009 -1.677 l 3.001 -1.612 2.991 -1.542 2.958 -1.467 c 2.926 -1.393 2.654 -0.697 2.622 -0.588 c 2.577 -0.441 2.579 -0.296 2.648 -0.219 c 2.728 -0.132 2.822 -0.121 2.9 -0.111 c 2.9 0 l 0.71 0 l 0.71 -0.111 l 0.831 -0.124 0.911 -0.177 0.974 -0.247 c 1.052 -0.333 1.091 -0.411 1.163 -0.61 c 1.232 -0.811 2.21 -3.069 2.255 -3.157 c 2.321 -3.282 l 2.318 -3.389 l 2.292 -3.431 2.255 -3.515 2.201 -3.641 c 2.156 -3.736 1.813 -4.53 1.757 -4.669 c 1.701 -4.808 1.609 -5.014 1.594 -5.098 c 1.579 -5.178 1.56 -5.184 1.538 -5.092 c 1.514 -4.987 1.469 -4.846 1.366 -4.65 c 1.264 -4.455 -0.175 -0.96 -0.259 -0.774 c -0.341 -0.587 -0.37 -0.367 -0.299 -0.263 c -0.229 -0.16 -0.123 -0.121 0 -0.111 c 0 0 l f Q q 1 0 0 1 496.207 114.468 cm 0.729 g 0 0 m -6.197 -4.136 -8.356 -11.276 v 1.822 -8.164 12.862 -9.021 v 9.942 -0.343 0.635 3.711 v 0.635 1.37 l 5.202 -1.713 6.82 -5.653 v 1.714 -5.208 -3.411 -7.024 v -2.833 -4.34 0 0 v f Q q 1 0 0 1 503.036 102.503 cm 0.729 g 0 0 m 1.955 0 l 2.604 -0.785 l 3.266 0 l 4.859 0 l 3.381 -1.414 l 5.012 -3.047 l 3.038 -3.047 l 2.352 -2.187 l 1.651 -3.047 l 0.296 -3.047 l 1.04 -2.724 1.401 -2.123 1.401 -1.57 c 1.401 -1.068 0.973 -0.314 0 0 c f Q q 1 0 0 1 500.845 100.98 cm 0.729 g 0 0 m 0 0.344 0.321 0.585 0.788 0.585 c 1.255 0.585 1.575 0.344 1.575 0 c 1.575 -0.345 1.255 -0.587 0.788 -0.587 c 0.321 -0.587 0 -0.345 0 0 c h -1.584 -0.049 m -1.556 -0.778 -0.877 -1.574 0.803 -1.574 c 2.406 -1.574 3.161 -0.806 3.161 0 c 3.161 0.735 2.505 1.573 0.788 1.573 c 0.058 1.573 -0.488 1.421 -0.872 1.184 c -0.798 1.146 -0.726 1.103 -0.655 1.05 c -1.584 -0.049 l f Q q 1 0 0 1 497.397 102.503 cm 0.729 g 0 0 m 0 -0.811 l 0.015 -0.811 l 0.297 -0.242 0.747 0.05 1.303 0.05 c 1.608 0.05 1.913 -0.024 2.279 -0.185 c 1.577 -1.393 l 1.326 -1.214 1.12 -1.138 0.899 -1.138 c 0.51 -1.138 0.236 -1.428 0.152 -1.781 c 0.152 -3.047 l -1.432 -3.047 l -1.432 -1.483 l -0.747 0 l 0 0 l f Q q 1 0 0 1 489.196 102.503 cm 0.729 g 0 0 m 1.616 0 l 2.233 -1.489 l 2.248 -1.489 l 2.972 0 l 3.986 0 l 4.702 -1.489 l 4.717 -1.489 l 5.296 0 l 6.881 0 l 5.471 -3.047 l 4.298 -3.047 l 3.482 -1.356 l 2.66 -3.047 l 1.502 -3.047 l 0 0 l f Q q 1 0 0 1 508.854 103.093 cm 0.729 g 0 0 m 0 -0.11 l -0.264 -0.11 l -0.264 -0.862 l -0.395 -0.862 l -0.395 -0.11 l -0.656 -0.11 l -0.656 0 l 0 0 l h 0.834 -0.862 m 0.799 -0.342 l 0.795 -0.275 0.799 -0.193 0.797 -0.108 c 0.79 -0.108 l 0.769 -0.188 0.743 -0.28 0.716 -0.355 c 0.537 -0.851 l 0.438 -0.851 l 0.262 -0.342 l 0.241 -0.273 0.219 -0.188 0.199 -0.108 c 0.192 -0.108 l 0.191 -0.19 0.192 -0.264 0.189 -0.342 c 0.156 -0.862 l 0.03 -0.862 l 0.097 0 l 0.269 0 l 0.438 -0.468 l 0.459 -0.533 0.476 -0.604 0.498 -0.685 c 0.503 -0.685 l 0.522 -0.604 0.541 -0.529 0.563 -0.465 c 0.732 0 l 0.901 0 l 0.966 -0.862 l 0.834 -0.862 l f Q q 1 0 0 1 189.629 115.392 cm 0.729 g /GS3 gs 0 0 m -2.2 0 -2.2 -2.2 v -2.2 -10.999 l -2.2 -13.199 0 -13.199 v 27.865 -13.199 l 30.065 -13.199 30.065 -10.999 v 30.065 -2.2 l 30.065 0 27.865 0 v 0 0 l f Q q 1 0 0 1 195.491 107.928 cm 0 0 m 1.239 0 l 1.589 0 1.873 0.284 1.873 0.635 c 1.873 2.501 l 1.873 2.851 1.589 3.135 1.239 3.135 c -1.68 3.135 l -2.03 3.135 -2.314 2.851 -2.314 2.501 c -2.314 0.635 l -2.314 0.284 -2.03 0 -1.68 0 c -0.491 0 l -0.49 -1.28 l -2.732 -1.28 l -3.347 -1.28 -3.846 -0.782 -3.846 -0.166 c -3.846 3.213 l -3.846 3.829 -3.347 4.328 -2.732 4.328 c 2.388 4.328 l 3.003 4.328 3.501 3.829 3.501 3.213 c 3.501 -0.166 l 3.501 -0.782 3.003 -1.28 2.388 -1.28 c 1.512 -1.28 l 1.512 -2.286 l -0.003 -2.286 l 0 0 l f Q q 1 0 0 1 206.886 112.256 cm 0 0 m 0 -4.542 l 0 -5.157 -0.497 -5.656 -1.112 -5.656 c -6.006 -5.656 l -6.622 -5.656 -7.12 -5.157 -7.12 -4.542 c -7.12 0 l -5.542 -0.002 l -5.542 -3.771 l -5.542 -4.109 -5.268 -4.383 -4.93 -4.383 c -2.255 -4.383 l -1.918 -4.383 -1.643 -4.109 -1.643 -3.771 c -1.643 -0.002 l 0 0 l f Q q 1 0 0 1 209.835 108.808 cm 0 0 m 0 1.026 l 3.384 1.035 l 3.65 1.035 3.868 1.284 3.868 1.55 c 3.868 1.818 3.65 2.034 3.384 2.034 c 0.236 2.033 l -0.116 2.081 -0.399 1.797 -0.399 1.446 c -0.399 -0.343 l -0.399 -0.693 -0.116 -0.977 0.236 -0.977 c 5.16 -0.977 l 5.161 -2.256 l -0.997 -2.256 l -1.612 -2.256 -2.109 -1.758 -2.109 -1.143 c -2.109 2.237 l -2.109 2.852 -1.612 3.35 -0.997 3.35 c 4.284 3.35 l 4.9 3.35 5.398 2.852 5.398 2.237 c 5.398 1.112 l 5.398 0.498 4.9 0 4.284 0 c 0 0 l f Q q 1 0 0 1 215.859 111.558 cm 0 0 m 0 0.405 0.331 0.736 0.74 0.736 c 1.148 0.736 1.476 0.405 1.476 0 c 1.476 -0.409 1.148 -0.74 0.74 -0.74 c 0.331 -0.74 0 -0.409 0 0 c h 1.359 0 m 1.359 0.358 1.099 0.638 0.74 0.638 c 0.38 0.638 0.117 0.358 0.117 0 c 0.117 -0.363 0.38 -0.643 0.74 -0.643 c 1.099 -0.643 1.359 -0.363 1.359 0 c h 1.108 -0.413 m 0.987 -0.413 l 0.751 -0.034 l 0.567 -0.034 l 0.567 -0.413 l 0.465 -0.413 l 0.465 0.411 l 0.826 0.411 l 1.043 0.411 1.117 0.329 1.117 0.192 c 1.117 0.031 1.005 -0.03 0.859 -0.034 c 1.108 -0.413 l h 0.721 0.046 m 0.838 0.046 1.009 0.027 1.009 0.195 c 1.009 0.323 0.904 0.339 0.803 0.339 c 0.567 0.339 l 0.567 0.046 l 0.721 0.046 l f Q q 1 0 0 1 232.172 100.722 cm 0.808 g 0 0 m 0.527 0.007 0.745 -0.027 0.745 -0.592 c 0.745 -0.884 0.679 -1.178 0.371 -1.178 c 0 -1.178 l 0 0 l h 0 -2.044 m 0.353 -2.044 l 0.606 -2.07 0.697 -2.262 0.71 -2.558 c 0.745 -2.854 0.728 -3.253 0.745 -3.675 c 0.745 -3.766 0.774 -3.859 0.806 -3.954 c 1.965 -3.954 l 1.965 -3.888 l 1.858 -3.719 l 1.797 -3.411 1.797 -2.589 1.766 -2.202 c 1.749 -1.863 1.532 -1.644 1.24 -1.584 c 1.24 -1.568 l 1.688 -1.34 1.797 -0.979 1.797 -0.466 c 1.797 0.477 1.362 0.851 0.498 0.851 c -1.055 0.851 l -1.055 -3.954 l 0 -3.954 l 0 -2.044 l f Q q 1 0 0 1 235.286 99.078 cm 0.808 g 0 0 m 0 0.234 l 0 0.482 0.061 0.705 0.338 0.705 c 0.588 0.705 0.666 0.482 0.666 0.339 c 0.666 0 l 0 0 l h 1.627 -0.683 m 1.627 0.339 l 1.627 1.121 1.007 1.395 0.323 1.379 c -0.421 1.379 -0.96 1.068 -0.96 0.155 c -0.96 -1.301 l -0.96 -2.122 -0.355 -2.432 0.323 -2.409 c 1.161 -2.401 1.641 -1.982 1.58 -1.052 c 0.634 -1.052 l 0.618 -1.357 0.649 -1.704 0.292 -1.679 c 0.075 -1.674 0 -1.502 0 -1.301 c 0 -0.683 l 1.627 -0.683 l f Q q 1 0 0 1 238.135 98.999 cm 0.808 g 0 0 m 0 0.218 -0.013 0.634 0.295 0.634 c 0.526 0.644 0.573 0.265 0.573 -0.044 c 0.573 -0.884 l 0.573 -1.222 0.544 -1.518 0.279 -1.518 c 0 -1.518 0 -1.143 0 -0.926 c 0 0 l h 1.534 -2.231 m 1.534 2.574 l 0.573 2.574 l 0.573 1.039 l 0.555 1.039 l 0.356 1.347 0.109 1.458 -0.138 1.458 c -0.774 1.458 -0.961 0.808 -0.961 0.234 c -0.961 -1.004 l -0.961 -1.61 -0.823 -2.322 -0.123 -2.33 c 0.157 -2.33 0.448 -2.153 0.621 -1.805 c 0.634 -1.805 l 0.634 -2.231 l 1.534 -2.231 l f Q q 1 0 0 1 241.592 98.115 cm 0.68 g 0 0 m 0 -0.229 0.012 -0.634 -0.295 -0.634 c -0.53 -0.634 -0.591 -0.278 -0.591 0.032 c -0.591 0.884 l -0.591 1.227 -0.543 1.505 -0.282 1.505 c 0 1.505 0 1.131 0 0.932 c 0 0 l h -0.591 3.458 m -1.553 3.458 l -1.553 -1.347 l -0.652 -1.347 l -0.652 -0.926 l -0.639 -0.926 l -0.483 -1.269 -0.188 -1.438 0.122 -1.446 c 0.819 -1.438 0.957 -0.726 0.957 -0.12 c 0.957 1.118 l 0.957 1.692 0.774 2.342 0.138 2.342 c -0.143 2.342 -0.422 2.263 -0.575 1.953 c -0.591 1.953 l -0.591 3.458 l f Q q 1 0 0 1 243.824 99.312 cm 0.68 g 0 0 m 0 0.232 0.06 0.418 0.291 0.418 c 0.508 0.418 0.586 0.232 0.586 0 c 0.586 -1.596 l 0.556 -1.814 0.477 -1.913 0.291 -1.913 c 0.092 -1.913 0.013 -1.814 0 -1.596 c 0 0 l h -0.962 -1.535 m -0.962 -2.356 -0.406 -2.643 0.291 -2.643 c 1.021 -2.643 1.487 -2.348 1.531 -1.535 c 1.531 -0.079 l 1.531 0.726 1.131 1.145 0.291 1.145 c -0.452 1.145 -0.962 0.834 -0.962 -0.079 c -0.962 -1.535 l f Q q 1 0 0 1 246.593 99.312 cm 0.68 g 0 0 m 0 0.232 0.079 0.418 0.295 0.418 c 0.527 0.418 0.592 0.232 0.592 0 c 0.592 -1.596 l 0.574 -1.814 0.496 -1.913 0.295 -1.913 c 0.096 -1.913 0.017 -1.814 0 -1.596 c 0 0 l h -0.961 -1.535 m -0.961 -2.356 -0.387 -2.643 0.295 -2.643 c 1.021 -2.643 1.506 -2.348 1.553 -1.535 c 1.553 -0.079 l 1.553 0.726 1.148 1.145 0.295 1.145 c -0.447 1.145 -0.961 0.834 -0.961 -0.079 c -0.961 -1.535 l f Q q 1 0 0 1 248.436 96.768 cm 0.68 g 0 0 m 0 4.805 l 0.964 4.805 l 0.964 2.386 l 1.627 3.597 l 2.685 3.597 l 1.723 2.152 l 2.685 0 l 1.677 0 l 1.118 1.396 l 0.964 1.161 l 0.964 0 l 0 0 l f Q q 1 0 0 1 252.608 99.304 cm 0.68 g 0 0 m -0.035 0.24 -0.019 0.479 -0.326 0.479 c -0.513 0.479 -0.639 0.399 -0.639 0.191 c -0.639 0 -0.496 -0.1 -0.345 -0.178 c 0.278 -0.475 0.943 -0.652 0.943 -1.505 c 0.943 -2.301 0.368 -2.635 -0.326 -2.635 c -1.102 -2.635 -1.631 -2.301 -1.583 -1.436 c -0.669 -1.436 l -0.684 -1.683 -0.623 -1.975 -0.326 -1.975 c -0.127 -1.975 0.011 -1.869 0.011 -1.635 c 0.011 -1.518 -0.035 -1.418 -0.109 -1.356 c -0.496 -1.14 -1.04 -0.983 -1.336 -0.623 c -1.506 -0.418 -1.583 -0.209 -1.583 0.053 c -1.583 0.826 -1.01 1.153 -0.326 1.153 c 0.368 1.153 0.925 0.782 0.894 0 c 0 0 l f Q q 1 0 0 1 234.651 112.449 cm 0.89 g 0 0 m -2.466 -0.404 l -2.479 -0.443 -2.513 -0.56 -2.556 -0.73 c -3.857 -4.957 -1.552 -8.506 2.71 -8.575 c 2.763 -8.576 2.817 -8.577 2.87 -8.577 c 6.387 -8.577 10.194 -6.349 11.447 -3.427 c 10.337 -5.757 7.061 -7.854 4.303 -7.854 c 4.221 -7.854 4.139 -7.852 4.057 -7.848 c 0.387 -7.684 -1.594 -4.696 -0.404 -1.038 c -0.295 -0.682 -0.155 -0.343 0 0 c f Q q 1 0 0 1 0 0 cm 253.793 105.667 -17.606 15.582 re W n q 244.982 120.864 m 242.288 120.561 239.253 118.861 237.022 116.698 c 239.018 118.519 241.56 119.839 243.897 120.097 c 245.301 120.257 246.424 120.006 247.191 119.438 c 245.476 118.883 243.935 117.555 243.116 115.901 c 242.941 115.924 242.767 115.931 242.584 115.931 c 240.733 115.931 238.904 114.869 237.781 113.313 c 237.773 113.306 237.773 113.298 237.766 113.291 c 237.303 112.646 236.961 111.909 236.787 111.136 c 236.559 110.043 236.726 109.094 237.144 108.282 c 237.25 108.062 l 237.826 107.106 238.737 106.461 239.981 106.347 c 239.868 106.355 l 239.807 106.036 l 240.012 105.968 l 240.133 105.983 l 240.224 106.324 l 240.057 106.34 l 240.179 106.332 240.293 106.324 240.414 106.324 c 242.41 106.324 244.398 107.576 245.491 109.367 c 245.794 109.292 246.113 109.246 246.455 109.238 c 249.338 109.178 252.252 111.507 252.927 114.444 c 252.981 114.672 253.018 114.899 253.042 115.12 c 253.405 117.654 251.804 119.657 249.316 119.764 c 248.541 120.508 247.388 120.917 245.923 120.917 c 245.628 120.917 245.308 120.902 244.982 120.864 c W n q 17.646 0 0 -15.636 236.157 121.278 cm /Im1 Do Q Q Q q 1 0 0 1 115.213 144.691 cm 0.729 g 0 0 m -4.693 0 l -2.368 4.08 l 0 0 l f Q q 1 0 0 1 112.284 143.844 cm 0.729 g 0 0 m -2.344 -4.065 l -4.718 -0.012 l 0 0 l f Q q 1 0 0 1 117.934 143.844 cm 0.729 g 0 0 m -2.345 -4.065 l -4.718 -0.012 l 0 0 l f Q q 1 0 0 1 105.21 134.404 cm 0.729 g 0 0 m -1.352 0 l -0.67 1.582 l 0 0 l h 0.077 -0.214 m 0.29 -0.706 l 0.338 -0.824 0.433 -1.026 0.433 -1.156 c 0.433 -1.364 0.285 -1.411 0.03 -1.423 c 0.03 -1.53 l 1.577 -1.53 l 1.577 -1.423 l 1.138 -1.405 1.025 -1.073 0.877 -0.717 c -0.456 2.483 l -0.563 2.483 l -1.974 -0.824 l -2.152 -1.239 -2.276 -1.393 -2.585 -1.423 c -2.585 -1.53 l -1.352 -1.53 l -1.352 -1.423 l -1.571 -1.405 -1.808 -1.381 -1.808 -1.162 c -1.808 -1.049 -1.725 -0.866 -1.678 -0.765 c -1.44 -0.214 l 0.077 -0.214 l f Q q 1 0 0 1 108.909 133.378 cm 0.729 g 0 0 m -0.136 -0.148 -0.302 -0.266 -0.51 -0.266 c -0.96 -0.266 -1.322 0.208 -1.322 0.931 c -1.322 1.856 -0.83 2.051 -0.616 2.051 c -0.213 2.051 0 1.648 0 1.293 c 0 0 l h 0 2.004 m -0.154 2.164 -0.373 2.229 -0.587 2.229 c -1.357 2.229 -1.861 1.429 -1.861 0.723 c -1.861 0.101 -1.482 -0.587 -0.788 -0.587 c -0.456 -0.587 -0.225 -0.438 0 -0.207 c 0 -0.587 l 0.131 -0.587 l 0.931 -0.261 l 0.889 -0.16 l 0.83 -0.184 0.753 -0.207 0.688 -0.207 c 0.605 -0.207 0.48 -0.207 0.48 0.196 c 0.48 3.61 l 0.35 3.61 l -0.45 3.284 l -0.409 3.183 l -0.35 3.207 -0.273 3.231 -0.207 3.231 c -0.124 3.231 0 3.231 0 2.828 c 0 2.004 l f Q q 1 0 0 1 111.872 133.378 cm 0.729 g 0 0 m -0.136 -0.148 -0.302 -0.266 -0.51 -0.266 c -0.96 -0.266 -1.322 0.208 -1.322 0.931 c -1.322 1.856 -0.83 2.051 -0.616 2.051 c -0.213 2.051 0 1.648 0 1.293 c 0 0 l h 0 2.004 m -0.154 2.164 -0.373 2.229 -0.587 2.229 c -1.357 2.229 -1.861 1.429 -1.861 0.723 c -1.861 0.101 -1.482 -0.587 -0.788 -0.587 c -0.456 -0.587 -0.225 -0.438 0 -0.207 c 0 -0.587 l 0.131 -0.587 l 0.931 -0.261 l 0.889 -0.16 l 0.83 -0.184 0.753 -0.207 0.688 -0.207 c 0.605 -0.207 0.48 -0.207 0.48 0.196 c 0.48 3.61 l 0.35 3.61 l -0.451 3.284 l -0.409 3.183 l -0.35 3.207 -0.273 3.231 -0.207 3.231 c -0.124 3.231 0 3.231 0 2.828 c 0 2.004 l f Q q 1 0 0 1 113.864 133.378 cm 0.729 g 0 0 m 0 -0.349 0.136 -0.391 0.409 -0.397 c 0.409 -0.504 l -0.889 -0.504 l -0.889 -0.397 l -0.617 -0.391 -0.48 -0.349 -0.48 0 c -0.48 1.447 l -0.48 1.85 -0.605 1.85 -0.688 1.85 c -0.753 1.85 -0.83 1.826 -0.889 1.802 c -0.931 1.903 l -0.131 2.229 l 0 2.229 l 0 0 l h -0.243 3.61 m -0.083 3.61 0.047 3.48 0.047 3.32 c 0.047 3.16 -0.083 3.029 -0.243 3.029 c -0.403 3.029 -0.533 3.16 -0.533 3.32 c -0.533 3.48 -0.403 3.61 -0.243 3.61 c f Q q 1 0 0 1 116.336 134.7 cm 0.729 g 0 0 m -0.107 0 l -0.196 0.397 -0.356 0.729 -0.818 0.729 c -1.031 0.729 -1.269 0.611 -1.269 0.368 c -1.269 -0.278 0.196 -0.196 0.196 -1.114 c 0.196 -1.6 -0.261 -1.909 -0.711 -1.909 c -0.883 -1.909 -1.073 -1.867 -1.245 -1.82 c -1.281 -1.808 -1.351 -1.79 -1.393 -1.79 c -1.446 -1.79 -1.488 -1.82 -1.5 -1.867 c -1.606 -1.867 l -1.606 -0.919 l -1.5 -0.919 l -1.446 -1.334 -1.132 -1.731 -0.688 -1.731 c -0.445 -1.731 -0.231 -1.588 -0.231 -1.328 c -0.231 -0.634 -1.612 -0.729 -1.612 0.113 c -1.612 0.599 -1.263 0.907 -0.788 0.907 c -0.664 0.907 -0.569 0.877 -0.451 0.842 c -0.379 0.824 -0.302 0.795 -0.231 0.795 c -0.154 0.795 -0.13 0.842 -0.107 0.907 c 0 0.907 l 0 0 l f Q q 1 0 0 1 118.114 135.406 cm 0.729 g 0 0 m 0.658 0 0.836 -0.878 0.836 -1.393 c 0.836 -1.808 0.735 -2.413 0.196 -2.413 c -0.462 -2.413 -0.646 -1.488 -0.646 -0.979 c -0.646 -0.22 -0.29 0 0 0 c h 0.101 0.201 m -0.676 0.201 -1.186 -0.504 -1.186 -1.233 c -1.186 -1.945 -0.694 -2.615 0.059 -2.615 c 0.996 -2.615 1.375 -1.755 1.375 -1.145 c 1.375 -0.421 0.842 0.201 0.101 0.201 c f Q q 1 0 0 1 120.651 135.05 cm 0.729 g 0 0 m 0.332 0.367 0.563 0.557 0.901 0.557 c 1.381 0.557 1.571 0.107 1.571 -0.338 c 1.571 -1.672 l 1.571 -2.021 1.707 -2.063 1.98 -2.069 c 1.98 -2.176 l 0.682 -2.176 l 0.682 -2.069 l 0.954 -2.063 1.091 -2.021 1.091 -1.672 c 1.091 -0.445 l 1.091 0.142 0.848 0.201 0.67 0.201 c 0.397 0.201 0.196 0.024 0 -0.178 c 0 -1.672 l 0 -2.021 0.136 -2.063 0.409 -2.069 c 0.409 -2.176 l -0.889 -2.176 l -0.889 -2.069 l -0.616 -2.063 -0.48 -2.021 -0.48 -1.672 c -0.48 -0.225 l -0.48 0.178 -0.605 0.178 -0.688 0.178 c -0.753 0.178 -0.83 0.154 -0.889 0.13 c -0.931 0.231 l -0.13 0.557 l 0 0.557 l 0 0 l f Q q 1 0 0 1 108.656 129.513 cm 0.729 g 0 0 m 0.048 0.136 0.142 0.397 0.142 0.533 c 0.142 0.759 -0.024 0.812 -0.29 0.812 c -0.29 0.919 l 0.883 0.919 l 0.883 0.812 l 0.492 0.812 0.409 0.486 0.302 0.172 c -0.824 -3.094 l -0.937 -3.094 l -1.826 -0.605 l -1.838 -0.605 l -2.709 -3.094 l -2.827 -3.094 l -4.037 0.29 l -4.167 0.664 -4.227 0.812 -4.582 0.812 c -4.582 0.919 l -3.13 0.919 l -3.13 0.812 l -3.343 0.812 -3.515 0.765 -3.515 0.563 c -3.515 0.468 -3.456 0.314 -3.426 0.225 c -2.626 -2.057 l -2.614 -2.057 l -1.962 -0.225 l -2.122 0.213 l -2.247 0.545 -2.335 0.812 -2.727 0.812 c -2.727 0.919 l -1.191 0.919 l -1.191 0.812 l -1.44 0.812 -1.612 0.794 -1.612 0.545 c -1.612 0.373 -1.517 0.13 -1.458 -0.03 c -0.735 -2.057 l -0.723 -2.057 l 0 0 l f Q q 1 0 0 1 109.736 128.333 cm 0.729 g 0 0 m 0.024 0.344 0.273 0.694 0.622 0.694 c 1.043 0.694 1.227 0.368 1.227 0 c 0 0 l h 1.832 -0.178 m 1.832 0.463 1.429 0.907 0.818 0.907 c -0.024 0.907 -0.409 0.22 -0.409 -0.545 c -0.409 -1.357 0.101 -1.908 0.747 -1.908 c 1.346 -1.908 1.731 -1.405 1.832 -0.859 c 1.743 -0.8 l 1.606 -1.185 1.375 -1.434 0.948 -1.434 c 0.302 -1.434 -0.006 -0.77 -0.006 -0.178 c 1.832 -0.178 l f Q q 1 0 0 1 113.672 128.333 cm 0.729 g 0 0 m -0.107 0 l -0.196 0.397 -0.356 0.729 -0.818 0.729 c -1.031 0.729 -1.269 0.611 -1.269 0.368 c -1.269 -0.278 0.196 -0.195 0.196 -1.114 c 0.196 -1.6 -0.261 -1.908 -0.711 -1.908 c -0.883 -1.908 -1.073 -1.867 -1.245 -1.82 c -1.28 -1.808 -1.352 -1.79 -1.393 -1.79 c -1.446 -1.79 -1.488 -1.82 -1.5 -1.867 c -1.607 -1.867 l -1.607 -0.919 l -1.5 -0.919 l -1.446 -1.333 -1.132 -1.731 -0.688 -1.731 c -0.445 -1.731 -0.231 -1.588 -0.231 -1.328 c -0.231 -0.634 -1.612 -0.729 -1.612 0.113 c -1.612 0.599 -1.263 0.907 -0.788 0.907 c -0.664 0.907 -0.569 0.878 -0.451 0.842 c -0.379 0.824 -0.302 0.795 -0.231 0.795 c -0.154 0.795 -0.13 0.842 -0.107 0.907 c 0 0.907 l 0 0 l f Q q 1 0 0 1 115.154 127.011 cm 0.729 g 0 0 m 0 -0.349 0.136 -0.391 0.409 -0.397 c 0.409 -0.503 l -0.889 -0.503 l -0.889 -0.397 l -0.616 -0.391 -0.48 -0.349 -0.48 0 c -0.48 2.828 l -0.48 3.231 -0.605 3.231 -0.688 3.231 c -0.753 3.231 -0.83 3.207 -0.889 3.184 c -0.931 3.284 l -0.13 3.61 l 0 3.61 l 0 0 l f Q q 1 0 0 1 116.321 128.333 cm 0.729 g 0 0 m 0.024 0.344 0.273 0.694 0.622 0.694 c 1.043 0.694 1.227 0.368 1.227 0 c 0 0 l h 1.832 -0.178 m 1.832 0.463 1.429 0.907 0.818 0.907 c -0.024 0.907 -0.409 0.22 -0.409 -0.545 c -0.409 -1.357 0.101 -1.908 0.747 -1.908 c 1.346 -1.908 1.731 -1.405 1.832 -0.859 c 1.743 -0.8 l 1.606 -1.185 1.375 -1.434 0.949 -1.434 c 0.302 -1.434 -0.006 -0.77 -0.006 -0.178 c 1.832 -0.178 l f Q q 1 0 0 1 118.788 128.547 cm 0.729 g 0 0 m -0.101 0.219 -0.237 0.474 -0.498 0.504 c -0.498 0.61 l 0.735 0.61 l 0.735 0.504 l 0.551 0.504 0.415 0.48 0.415 0.29 c 0.415 0.189 0.498 0.023 0.54 -0.072 c 1.156 -1.34 l 1.719 0.053 l 1.761 0.16 1.796 0.243 1.796 0.355 c 1.796 0.492 1.689 0.504 1.53 0.504 c 1.53 0.61 l 2.395 0.61 l 2.395 0.504 l 2.205 0.504 2.105 0.355 2.039 0.195 c 0.907 -2.579 l 0.676 -3.148 0.243 -3.32 0.036 -3.32 c -0.16 -3.32 -0.361 -3.201 -0.361 -2.988 c -0.361 -2.81 -0.219 -2.727 -0.059 -2.727 c 0.136 -2.727 0.231 -2.834 0.332 -2.834 c 0.569 -2.834 0.694 -2.502 0.765 -2.33 c 0.925 -1.933 l 0 0 l f Q q 1 0 0 1 395.725 111.73 cm 0.729 g 0 0 m -2.258 0 l -2.258 -5.964 l -1.401 -5.964 l -1.401 -3.933 l -0.107 -3.933 l 1.071 -3.933 2.258 -3.318 2.258 -1.93 c 2.258 -0.757 1.372 0 0 0 c -1.401 -0.808 m -0.049 -0.808 l 0.867 -0.808 1.393 -1.226 1.393 -1.971 c 1.393 -2.677 0.813 -3.133 -0.083 -3.133 c -1.401 -3.133 l -1.401 -0.808 l f Q q 1 0 0 1 403.969 109.916 cm 0.729 g 0 0 m 0 0.472 -0.168 0.902 -0.474 1.208 c -0.865 1.599 -1.473 1.814 -2.184 1.814 c -4.763 1.814 l -4.763 -4.15 l -3.905 -4.15 l -3.905 -1.914 l -2.417 -1.914 l -0.748 -4.15 l 0.311 -4.15 l -1.485 -1.763 l -0.552 -1.537 0 -0.893 0 0 c -3.905 1.006 m -2.233 1.006 l -1.365 1.006 -0.866 0.629 -0.866 -0.042 c -0.866 -0.698 -1.406 -1.122 -2.241 -1.122 c -3.905 -1.122 l -3.905 1.006 l f Q q 1 0 0 1 406.255 108.373 cm 0.729 g 0 0 m 3.141 0 l 3.141 0.8 l 0 0.8 l 0 2.557 l 3.511 2.557 l 3.511 3.357 l -0.857 3.357 l -0.857 -2.607 l 3.552 -2.607 l 3.552 -1.807 l 0 -1.807 l 0 0 l f Q q 1 0 0 1 413.343 109.162 cm 0.729 g 0 0 m -1.251 0.268 -1.48 0.553 -1.48 1.034 c -1.48 1.519 -1.02 1.858 -0.359 1.858 c 0.226 1.858 0.733 1.667 1.236 1.257 c 1.319 1.189 l 1.824 1.857 l 1.746 1.92 l 1.108 2.432 0.482 2.65 -0.343 2.65 c -1.499 2.65 -2.338 1.946 -2.338 0.959 c -2.338 -0.141 -1.533 -0.541 -0.323 -0.804 c 0.873 -1.056 1.092 -1.335 1.092 -1.812 c 1.092 -2.327 0.606 -2.687 -0.088 -2.687 c -0.821 -2.687 -1.373 -2.459 -1.992 -1.899 c -2.071 -1.827 l -2.609 -2.463 l -2.534 -2.531 l -1.81 -3.178 -1.04 -3.478 -0.113 -3.478 c 1.107 -3.478 1.957 -2.766 1.957 -1.729 c 1.957 -0.816 1.372 -0.299 0 0 c f Q q 1 0 0 1 418.769 109.162 cm 0.729 g 0 0 m -1.251 0.268 -1.479 0.552 -1.479 1.034 c -1.479 1.519 -1.019 1.858 -0.359 1.858 c 0.227 1.858 0.734 1.667 1.237 1.257 c 1.321 1.189 l 1.825 1.857 l 1.746 1.92 l 1.109 2.432 0.485 2.65 -0.342 2.65 c -1.498 2.65 -2.337 1.946 -2.337 0.959 c -2.337 -0.141 -1.532 -0.541 -0.322 -0.804 c 0.873 -1.056 1.092 -1.335 1.092 -1.812 c 1.092 -2.327 0.607 -2.687 -0.087 -2.687 c -0.821 -2.687 -1.372 -2.459 -1.991 -1.899 c -2.07 -1.827 l -2.608 -2.463 l -2.532 -2.531 l -1.808 -3.178 -1.039 -3.478 -0.112 -3.478 c 1.107 -3.478 1.957 -2.766 1.957 -1.729 c 1.957 -0.816 1.372 -0.299 0 0 c f Q q 1 0 0 1 367.436 106.117 cm 0.729 g 0 0 m -1.803 5.019 l -1.826 5.088 -1.86 5.18 -1.86 5.26 c -1.86 5.477 -1.676 5.684 -1.413 5.684 c -1.184 5.684 -1.034 5.535 -0.965 5.318 c 0.528 0.993 l 2.031 5.329 l 2.1 5.535 2.239 5.684 2.467 5.684 c 2.513 5.684 l 2.755 5.684 2.904 5.535 2.973 5.329 c 4.465 0.993 l 5.982 5.34 l 6.04 5.524 6.164 5.684 6.406 5.684 c 6.658 5.684 6.842 5.489 6.842 5.271 c 6.842 5.191 6.807 5.1 6.785 5.03 c 4.971 0 l 4.879 -0.263 4.696 -0.399 4.489 -0.399 c 4.455 -0.399 l 4.224 -0.399 4.052 -0.263 3.971 0 c 2.491 4.264 l 0.998 0 l 0.918 -0.263 0.746 -0.399 0.516 -0.399 c 0.493 -0.399 l 0.274 -0.399 0.091 -0.263 0 0 c f Q q 1 0 0 1 380.572 111.363 cm 0.729 g 0 0 m 0 0.242 0.194 0.449 0.436 0.449 c 0.69 0.449 0.885 0.254 0.885 0 c 0.885 -1.018 l 1.322 -0.029 2.29 0.438 2.931 0.438 c 3.197 0.438 3.37 0.242 3.37 -0.01 c 3.37 -0.252 3.209 -0.424 2.978 -0.459 c 1.827 -0.596 0.885 -1.459 0.885 -3.173 c 0.885 -5.19 l 0.885 -5.432 0.701 -5.638 0.448 -5.638 c 0.194 -5.638 0 -5.442 0 -5.19 c 0 0 l f Q q 1 0 0 1 386.782 105.67 cm 0.729 g 0 0 m -1.6 0 -2.907 1.24 -2.907 3.061 c -2.907 3.085 l -2.907 4.78 -1.723 6.146 -0.112 6.146 c 1.612 6.146 2.593 4.725 2.593 3.165 c 2.593 2.924 2.399 2.754 2.187 2.754 c -2.027 2.754 l -1.904 1.479 -1.015 0.762 0.023 0.762 c 0.744 0.762 1.273 1.047 1.702 1.446 c 1.769 1.502 1.848 1.547 1.95 1.547 c 2.163 1.547 2.333 1.376 2.333 1.17 c 2.333 1.069 2.289 0.966 2.197 0.888 c 1.646 0.353 0.991 0 0 0 c 1.724 3.403 m 1.634 4.474 1.025 5.406 -0.135 5.406 c -1.149 5.406 -1.916 4.553 -2.027 3.403 c 1.724 3.403 l f Q q 1 0 0 1 374.294 107.512 cm 0.729 g 0 0 m 0 0.023 l 0 1.273 1.032 1.938 2.533 1.938 c 3.29 1.938 3.829 1.835 4.358 1.685 c 4.358 1.893 l 4.358 2.958 3.702 3.509 2.592 3.509 c 1.995 3.509 1.648 3.434 1.211 3.239 c 1.154 3.216 1.097 3.204 1.052 3.204 c 0.846 3.204 0.662 3.376 0.662 3.583 c 0.662 3.766 0.741 3.878 0.903 3.951 c 1.487 4.204 1.927 4.288 2.684 4.288 c 3.52 4.288 4.162 4.07 4.597 3.635 c 4.999 3.233 5.206 2.66 5.206 1.903 c 5.206 -1.368 l 5.206 -1.62 5.022 -1.803 4.779 -1.803 c 4.529 -1.803 4.358 -1.62 4.358 -1.391 c 4.358 -0.825 l 3.945 -1.365 3.256 -1.845 2.214 -1.845 c 1.113 -1.845 0 -1.215 0 0 c 4.369 0.458 m 4.369 1.032 l 3.933 1.158 3.346 1.285 2.625 1.285 c 1.514 1.285 0.895 0.803 0.895 0.059 c 0.895 0.036 l 0.895 -0.71 1.582 -1.146 2.386 -1.146 c 3.473 -1.146 4.369 -0.481 4.369 0.458 c f Q q 1 0 0 1 351.373 111.429 cm 0.729 g 0 0 m -0.195 0.426 -0.675 0.619 -1.122 0.419 c -1.57 0.219 -1.735 -0.278 -1.533 -0.704 c 0.348 -4.794 l 0.644 -5.435 0.956 -5.771 1.541 -5.771 c 2.166 -5.771 2.439 -5.404 2.735 -4.794 c 4.376 -1.22 4.392 -1.183 v 4.409 -1.145 4.461 -1.029 4.629 -1.03 c 4.77 -1.032 4.889 -1.144 4.889 -1.295 c 4.889 -4.79 l 4.889 -5.328 5.188 -5.771 5.762 -5.771 c 6.336 -5.771 6.647 -5.328 6.647 -4.79 c 6.647 -1.931 l 6.647 -1.379 7.042 -1.021 7.58 -1.021 c 8.119 -1.021 8.478 -1.391 8.478 -1.931 c 8.478 -4.79 l 8.478 -5.328 8.777 -5.771 9.351 -5.771 c 9.925 -5.771 10.238 -5.328 10.238 -4.79 c 10.238 -1.931 l 10.238 -1.379 10.631 -1.021 11.17 -1.021 c 11.708 -1.021 12.068 -1.391 12.068 -1.931 c 12.068 -4.79 l 12.068 -5.328 12.367 -5.771 12.941 -5.771 c 13.515 -5.771 13.826 -5.328 13.826 -4.79 c 13.826 -1.536 l 13.826 -0.34 12.865 0.498 11.708 0.498 c 10.552 0.498 9.828 -0.302 y 9.443 0.197 8.913 0.497 8.015 0.497 c 7.067 0.497 6.239 -0.302 y 5.853 0.197 5.198 0.497 4.655 0.497 c 3.816 0.497 3.149 0.128 2.742 -0.801 c 1.541 -3.634 l 0 0 l f Q q 1 0 0 1 389.446 111.075 cm 0.729 g 0 0 m 0 0.004 l 0 0.405 0.325 0.742 0.733 0.742 c 1.147 0.742 1.467 0.408 1.467 0.008 c 1.467 0.004 l 1.467 -0.397 1.143 -0.734 0.733 -0.734 c 0.319 -0.734 0 -0.402 0 0 c 1.325 0.004 m 1.325 0.006 l 1.325 0.335 1.071 0.605 0.733 0.605 c 0.397 0.605 0.139 0.331 0.139 0.004 c 0.139 0 l 0.139 -0.328 0.394 -0.598 0.733 -0.598 c 1.067 -0.598 1.325 -0.324 1.325 0.004 c f Q q 1 0 0 1 389.898 111.369 cm 0.729 g 0 0 m 0 0.044 0.035 0.078 0.079 0.078 c 0.323 0.078 l 0.416 0.078 0.487 0.053 0.531 0.006 c 0.571 -0.033 0.592 -0.09 0.592 -0.155 c 0.592 -0.158 l 0.592 -0.27 0.538 -0.338 0.452 -0.374 c 0.559 -0.506 l 0.574 -0.525 0.585 -0.542 0.585 -0.566 c 0.585 -0.609 0.548 -0.637 0.51 -0.637 c 0.476 -0.637 0.452 -0.62 0.433 -0.597 c 0.281 -0.405 l 0.157 -0.405 l 0.157 -0.56 l 0.157 -0.603 0.123 -0.637 0.079 -0.637 c 0.035 -0.637 0 -0.603 0 -0.56 c 0 0 l h 0.315 -0.267 m 0.392 -0.267 0.433 -0.227 0.433 -0.166 c 0.433 -0.164 l 0.433 -0.097 0.388 -0.062 0.312 -0.062 c 0.157 -0.062 l 0.157 -0.267 l 0.315 -0.267 l f Q q 1 0 0 1 306.06 756.24 cm 1 G 1.25 w 0 0 m 0 -12 l S Q q 1 0 0 1 602.06 396.24 cm 1 G 1.25 w 0 0 m 0 -2.761 -2.239 -5 -5 -5 c -7.761 -5 -10 -2.761 -10 0 c -10 2.761 -7.761 5 -5 5 c -2.239 5 0 2.761 0 0 c h S Q q 1 0 0 1 55.08 74.52 cm 0 g /GS4 gs 0 Tc 0 Tw /Fm1 Do Q endstream endobj 47788 0 obj <> endobj 47789 0 obj <>stream q /Fm0 Do Q q 1 0 0 1 474.07 123.377 cm 0.854 G 0.643 w 4 M /GS0 gs 0 0 m -345.15 0 l S Q BT 0.265 g /GS0 gs /TT0 1 Tf 0.01 Tc 7.8 0 0 7.8 148.588 155.289 Tm [(* Av)-24(a)-23(i)-22(l)-23(a)-23(b)-22(l)-23(e t)-22(o n)-25(e)-13(w s)-20(u)-22(b)-18(s)-16(c)-11(r)-37(i)-22(b)-21(e)-28(r)-40(s o)-20(n)-25(l)-26(y)33(. D)-24(i)-22(s)-16(c)-5(o)-21(u)-22(n)-18(t a)-23(p)-21(p)-22(l)-22(i)-21(e)-27(s t)-22(o t)-28(h)-25(e S)-25(a)-20(f)-27(a)-23(r)-37(i L)-28(i)-22(b)-21(r)-40(a)-23(r)-60(y a)-23(n)-24(d i)-22(s v)-24(a)-24(l)-22(i)-19(d f)-11(o)-20(r )]TJ /TT1 1 Tf 0 Tc 37.523 0 Td (\336)Tj /TT0 1 Tf 0.0503 Tc -0.0536 Tw 0.247 0 Td [( rs)14(t)50( )]TJ 0.0103 Tc -0.0003 Tw -35.504 -1.188 Td [(1)49(2 c)-5(o)-20(n)-25(s)-15(e)-25(c)-11(u)-23(t)-27(i)-26(v)-9(e m)-22(o)-20(n)-18(t)-27(h)-25(l)-26(y b)-20(i)-22(l)-21(l)-22(i)-21(n)-21(g c)-34(y)-6(c)-11(l)-22(e)-26(s)-22(. S)-25(a)-20(f)-27(a)-22(r)-37(i L)-28(i)-21(b)-21(r)-39(a)-22(r)-59(y i)-22(s n)-22(o)-9(t av)-23(a)-22(i)-22(l)-22(a)-22(b)-22(l)-22(e i)-21(n a)-24(l)-21(l c)-5(o)-21(u)-22(n)-18(t)-27(r)-37(i)-21(e)-26(s)-22(.)]TJ ET q 1 0 0 1 95.041 656.588 cm 1 g 0 0 m -4.208 0 -4.208 -4.208 v -4.208 -165.576 l -4.208 -169.784 0 -169.784 v 412.495 -169.784 l 416.703 -169.784 416.703 -165.576 v 416.703 -4.208 l 416.703 0 412.495 0 v 0 0 l f Q q 266.352 656.829 -175.858 -136.458 re W n q 507.536 486.804 m 95.041 486.804 l 90.858 486.804 90.833 490.963 90.833 491.012 c 90.833 652.38 l 90.833 656.588 95.041 656.588 y 507.536 656.588 l 511.728 656.588 511.744 652.413 511.744 652.38 c 511.744 652.38 511.744 652.38 y 511.744 652.38 511.744 652.38 y 511.744 491.012 l 511.744 486.804 507.536 486.804 y W n q 95.041 656.588 m 90.833 656.588 90.833 652.38 v 90.833 491.012 l 90.833 486.804 95.041 486.804 v 507.536 486.804 l 511.744 486.804 511.744 491.012 v 511.744 652.38 l 511.744 656.588 507.536 656.588 v 95.041 656.588 l W n q 175.896 0 0 136.476 90.477 520.362 cm /Im0 Do Q Q Q Q q 441.89 656.829 -175.858 -136.458 re W n q 507.536 486.804 m 95.041 486.804 l 90.858 486.804 90.833 490.963 90.833 491.012 c 90.833 652.38 l 90.833 656.588 95.041 656.588 y 507.536 656.588 l 511.728 656.588 511.744 652.413 511.744 652.38 c 511.744 652.38 511.744 652.38 y 511.744 652.38 511.744 652.38 y 511.744 491.012 l 511.744 486.804 507.536 486.804 y W n q 95.041 656.588 m 90.833 656.588 90.833 652.38 v 90.833 491.012 l 90.833 486.804 95.041 486.804 v 507.536 486.804 l 511.744 486.804 511.744 491.012 v 511.744 652.38 l 511.744 656.588 507.536 656.588 v 95.041 656.588 l W n q 175.896 0 0 136.476 266.007 520.362 cm /Im1 Do Q Q Q Q q 512.041 656.829 -70.472 -170.412 re W n q 507.536 486.804 m 95.041 486.804 l 90.858 486.804 90.833 490.963 90.833 491.012 c 90.833 652.38 l 90.833 656.588 95.041 656.588 y 507.536 656.588 l 511.728 656.588 511.744 652.413 511.744 652.38 c 511.744 652.38 511.744 652.38 y 511.744 652.38 511.744 652.38 y 511.744 491.012 l 511.744 486.804 507.536 486.804 y W n q 95.041 656.588 m 90.833 656.588 90.833 652.38 v 90.833 491.012 l 90.833 486.804 95.041 486.804 v 507.536 486.804 l 511.744 486.804 511.744 491.012 v 511.744 652.38 l 511.744 656.588 507.536 656.588 v 95.041 656.588 l W n q 70.536 0 0 170.436 441.537 486.402 cm /Im2 Do Q Q Q Q q 441.89 520.692 -351.396 -34.275 re W n q 507.536 486.804 m 95.041 486.804 l 90.858 486.804 90.833 490.963 90.833 491.012 c 90.833 652.38 l 90.833 656.588 95.041 656.588 y 507.536 656.588 l 511.728 656.588 511.744 652.413 511.744 652.38 c 511.744 652.38 511.744 652.38 y 511.744 652.38 511.744 652.38 y 511.744 491.012 l 511.744 486.804 507.536 486.804 y W n q 95.041 656.588 m 90.833 656.588 90.833 652.38 v 90.833 491.012 l 90.833 486.804 95.041 486.804 v 507.536 486.804 l 511.744 486.804 511.744 491.012 v 511.744 652.38 l 511.744 656.588 507.536 656.588 v 95.041 656.588 l W n q 351.426 0 0 34.296 90.477 486.402 cm /Im3 Do Q Q Q Q q 1 0 0 1 95.041 656.588 cm 0.792 G 0.701 w 4 M 0 0 m -4.208 0 -4.208 -4.208 v -4.208 -165.576 l -4.208 -169.784 0 -169.784 v 412.495 -169.784 l 416.703 -169.784 416.703 -165.576 v 416.703 -4.208 l 416.703 0 412.495 0 v 0 0 l h S Q BT 0.285 g /T1_0 1 Tf 18.525 0 0 18.525 140 635.8303 Tm [(T)72(r)-49(y S)-10(a)16(f)-16(a)10(r)-13(i B)-5(o)3(o)6(k)-7(s On)12(l)6(i)12(n)10(e F)-7(R)-4(EE f)-6(o)6(r 1)59(5 da)11(ys)]TJ 0 g /GS1 gs 0.0098 Tc 0.0002 Tw 12.675 0 0 12.675 159.965 619.2554 Tm [(Ge)6(t on)9(li)9(n)7(e ac)-7(ce)-11(s)-13(s t)6(o T)-12(h)4(o)6(u)-3(s)-10(a)7(n)14(d)-12(s o)11(f B)-7(ook)-10(s a)7(n)14(d V)-11(i)14(deos)]TJ ET q 1 0 0 1 132.913 470.324 cm 0.285 g /GS0 gs 0 0 m -3.157 0 -3.157 -3.157 v -3.157 -41.693 l -3.157 -44.85 0 -44.85 v 337.164 -44.85 l 340.321 -44.85 340.321 -41.693 v 340.321 -3.157 l 340.321 0 337.164 0 v 0 0 l f Q BT 1 g /GS0 gs /T1_0 1 Tf 0.0001 Tw 15.6 0 0 15.6 232.433 451.711 Tm [(F)-9(R)-6(EE 1)57(5)-12(-)6(D)10(A)51(Y T)-12(R)-6(I)-11(A)-12(L + 1)57(5)-22(% O)6(F)-9(F)]TJ 0 Tc 0 Tw 9.0948 0 0 9.0948 436.331 456.905 Tm (*)Tj 0.0016 Tc 15.6 0 0 15.6 232.433 435.135 Tm [(in)6(f)-16(o)-4(r)-21(m)4(it)-17(.c)-12(om)-46(/)-10(s)-17(a)7(f)-26(ar)-23(itr)-23(i)-1(al)]TJ ET q 1 0 0 1 173.744 434.929 cm 0 0 m -1.773 0 l -1.773 4.332 l -0.071 4.332 l 0.756 4.332 1.238 3.857 1.238 3.115 c 1.238 2.634 0.929 2.323 0.715 2.219 c 0.971 2.099 1.298 1.825 1.298 1.247 c 1.298 0.437 0.756 0 0 0 c h -0.136 3.577 m -0.946 3.577 l -0.946 2.578 l -0.136 2.578 l 0.215 2.578 0.412 2.78 0.412 3.078 c 0.412 3.376 0.215 3.577 -0.136 3.577 c h -0.083 1.819 m -0.946 1.819 l -0.946 0.753 l -0.083 0.753 l 0.292 0.753 0.47 0.997 0.47 1.29 c 0.47 1.582 0.292 1.819 -0.083 1.819 c f Q q 1 0 0 1 177.971 435.282 cm 0 0 m -0.191 -0.208 -0.506 -0.391 -0.964 -0.391 c -1.423 -0.391 -1.732 -0.208 -1.923 0 c -2.202 0.298 -2.274 0.656 -2.274 1.234 c -2.274 1.806 -2.202 2.165 -1.923 2.464 c -1.732 2.67 -1.423 2.853 -0.964 2.853 c -0.506 2.853 -0.191 2.67 0 2.464 c 0.28 2.165 0.351 1.806 0.351 1.234 c 0.351 0.656 0.28 0.298 0 0 c h -0.601 2.001 m -0.691 2.092 -0.809 2.141 -0.964 2.141 c -1.12 2.141 -1.233 2.092 -1.322 2.001 c -1.482 1.837 -1.5 1.563 -1.5 1.234 c -1.5 0.906 -1.482 0.626 -1.322 0.461 c -1.233 0.371 -1.12 0.322 -0.964 0.322 c -0.809 0.322 -0.691 0.371 -0.601 0.461 c -0.441 0.626 -0.423 0.906 -0.423 1.234 c -0.423 1.563 -0.441 1.837 -0.601 2.001 c f Q q 1 0 0 1 181.203 435.282 cm 0 0 m -0.19 -0.208 -0.505 -0.391 -0.965 -0.391 c -1.423 -0.391 -1.733 -0.208 -1.922 0 c -2.202 0.298 -2.273 0.656 -2.273 1.234 c -2.273 1.806 -2.202 2.165 -1.922 2.464 c -1.733 2.67 -1.423 2.853 -0.965 2.853 c -0.505 2.853 -0.19 2.67 0 2.464 c 0.279 2.165 0.351 1.806 0.351 1.234 c 0.351 0.656 0.279 0.298 0 0 c h -0.601 2.001 m -0.69 2.092 -0.81 2.141 -0.965 2.141 c -1.119 2.141 -1.232 2.092 -1.321 2.001 c -1.483 1.837 -1.499 1.563 -1.499 1.234 c -1.499 0.906 -1.483 0.626 -1.321 0.461 c -1.232 0.371 -1.119 0.322 -0.965 0.322 c -0.81 0.322 -0.69 0.371 -0.601 0.461 c -0.441 0.626 -0.422 0.906 -0.422 1.234 c -0.422 1.563 -0.441 1.837 -0.601 2.001 c f Q q 1 0 0 1 184.156 434.929 cm 0 0 m -0.762 1.319 l -1.09 0.943 l -1.09 0 l -1.864 0 l -1.864 4.332 l -1.09 4.332 l -1.09 1.873 l -0.06 3.17 l 0.875 3.17 l -0.232 1.892 l 0.958 0 l 0 0 l f Q q 1 0 0 1 186.638 434.891 cm 0 0 m -0.486 0 -0.929 0.055 -1.322 0.457 c -0.815 0.974 l -0.56 0.713 -0.226 0.675 0.012 0.675 c 0.28 0.675 0.56 0.768 0.56 1.004 c 0.56 1.163 0.476 1.272 0.232 1.297 c -0.257 1.345 l -0.815 1.4 -1.162 1.649 -1.162 2.234 c -1.162 2.891 -0.596 3.244 0.035 3.244 c 0.517 3.244 0.923 3.159 1.221 2.872 c 0.744 2.381 l 0.564 2.544 0.292 2.593 0.024 2.593 c -0.286 2.593 -0.416 2.447 -0.416 2.289 c -0.416 2.173 -0.37 2.039 -0.096 2.015 c 0.394 1.966 l 1.006 1.905 1.316 1.57 1.316 1.035 c 1.316 0.335 0.733 0 0 0 c f Q q 1 0 0 1 192.609 435.366 cm 0 0 m -0.299 -0.304 -0.661 -0.475 -1.143 -0.475 c -1.625 -0.475 -1.994 -0.304 -2.292 0 c -2.721 0.438 -2.71 0.98 -2.71 1.728 c -2.71 2.477 -2.721 3.018 -2.292 3.456 c -1.994 3.761 -1.625 3.932 -1.143 3.932 c -0.661 3.932 -0.299 3.761 0 3.456 c 0.428 3.018 0.423 2.477 0.423 1.728 c 0.423 0.98 0.428 0.438 0 0 c h -0.614 2.945 m -0.733 3.086 -0.917 3.177 -1.143 3.177 c -1.369 3.177 -1.561 3.086 -1.68 2.945 c -1.839 2.763 -1.881 2.562 -1.881 1.728 c -1.881 0.894 -1.839 0.694 -1.68 0.512 c -1.561 0.371 -1.369 0.28 -1.143 0.28 c -0.917 0.28 -0.733 0.371 -0.614 0.512 c -0.452 0.694 -0.405 0.894 -0.405 1.728 c -0.405 2.562 -0.452 2.763 -0.614 2.945 c f Q q 1 0 0 1 195.621 434.929 cm 0 0 m 0 1.916 l 0 2.348 -0.268 2.494 -0.513 2.494 c -0.756 2.494 -1.03 2.348 -1.03 1.916 c -1.03 0 l -1.804 0 l -1.804 3.17 l -1.048 3.17 l -1.048 2.878 l -0.846 3.096 -0.56 3.206 -0.275 3.206 c 0.035 3.206 0.285 3.102 0.458 2.926 c 0.708 2.67 0.773 2.372 0.773 2.025 c 0.773 0 l 0 0 l f Q q 1 0 0 1 198.103 434.929 cm 0 0 m -0.637 0 -0.905 0.455 -0.905 0.906 c -0.905 4.332 l -0.131 4.332 l -0.131 0.955 l -0.131 0.766 -0.054 0.669 0.143 0.669 c 0.441 0.669 l 0.441 0 l 0 0 l f Q q 1 0 0 1 199.15 438.64 cm 0.793 0 -0.793 0.645 re 0 0 m h 0.786 -3.711 -0.774 3.17 re f Q q 1 0 0 1 202.603 434.929 cm 0 0 m 0 1.916 l 0 2.348 -0.267 2.494 -0.51 2.494 c -0.755 2.494 -1.029 2.348 -1.029 1.916 c -1.029 0 l -1.803 0 l -1.803 3.17 l -1.048 3.17 l -1.048 2.878 l -0.845 3.096 -0.559 3.206 -0.273 3.206 c 0.036 3.206 0.285 3.102 0.458 2.926 c 0.709 2.67 0.774 2.372 0.774 2.025 c 0.774 0 l 0 0 l f Q q 1 0 0 1 204.818 436.267 cm 0 0 m 0 -0.407 0.244 -0.707 0.679 -0.707 c 1.018 -0.707 1.185 -0.608 1.381 -0.407 c 1.852 -0.876 l 1.536 -1.199 1.232 -1.376 0.673 -1.376 c -0.06 -1.376 -0.762 -1.035 -0.762 0.249 c -0.762 1.283 -0.215 1.868 0.589 1.868 c 1.452 1.868 1.939 1.222 1.939 0.352 c 1.939 0 l 0 0 l h 1.107 0.881 m 1.024 1.071 0.851 1.211 0.589 1.211 c 0.327 1.211 0.155 1.071 0.071 0.881 c 0.024 0.767 0.005 0.682 0 0.542 c 1.178 0.542 l 1.173 0.682 1.155 0.767 1.107 0.881 c f Q q 1 0 0 1 149.649 441.108 cm 0 0 m -2.705 0 -4.758 0.59 -6.511 2.407 c -4.258 4.711 l -3.131 3.559 -1.603 3.174 0.05 3.174 c 2.104 3.174 3.206 3.969 3.206 5.429 c 3.206 6.068 3.03 6.608 2.655 6.965 c 2.304 7.298 1.903 7.476 1.077 7.606 c -1.077 7.911 l -2.605 8.142 -3.732 8.628 -4.533 9.422 c -5.385 10.292 -5.81 11.471 -5.81 13.007 c -5.81 16.258 -3.457 18.537 0.4 18.537 c 2.856 18.537 4.633 17.922 6.161 16.412 c 3.957 14.185 l 2.83 15.284 1.477 15.438 0.3 15.438 c -1.553 15.438 -2.455 14.389 -2.455 13.135 c -2.455 12.673 -2.305 12.187 -1.928 11.829 c -1.578 11.495 -1.003 11.215 -0.276 11.112 c 1.828 10.805 l 3.456 10.575 4.483 10.114 5.234 9.397 c 6.186 8.476 6.612 7.144 6.612 5.53 c 6.612 1.998 3.731 0 0 0 c f Q q 1 0 0 1 165.237 441.263 cm 0 0 m 0 1.151 l -0.878 0.255 -1.703 -0.128 -3.207 -0.128 c -4.684 -0.128 -5.761 0.255 -6.536 1.05 c -7.239 1.791 -7.614 2.866 -7.614 4.044 c -7.614 6.169 -6.186 7.911 -3.156 7.911 c -0.076 7.911 l -0.076 8.577 l -0.076 10.036 -0.777 10.675 -2.506 10.675 c -3.758 10.675 -4.334 10.369 -5.01 9.574 c -7.089 11.647 l -5.81 13.082 -4.559 13.492 -2.38 13.492 c 1.277 13.492 3.18 11.904 3.18 8.782 c 3.18 0 l 0 0 l h -0.076 5.632 m -2.655 5.632 l -3.832 5.632 -4.483 5.069 -4.483 4.121 c -4.483 3.2 -3.882 2.587 -2.606 2.587 c -1.703 2.587 -1.127 2.662 -0.552 3.225 c -0.201 3.558 -0.076 4.097 -0.076 4.915 c -0.076 5.632 l f Q q 1 0 0 1 175.209 451.683 cm 0 0 m 0 -10.42 l -3.256 -10.42 l -3.256 0 l -4.608 0 l -4.608 2.535 l -3.256 2.535 l -3.256 4.198 l -3.256 6.092 -2.103 8.012 0.55 8.012 c 2.404 8.012 l 2.404 5.197 l 1.127 5.197 l 0.35 5.197 0 4.762 0 3.992 c 0 2.535 l 2.404 2.535 l 2.404 0 l 0 0 l f Q q 1 0 0 1 186.401 441.263 cm 0 0 m 0 1.151 l -0.876 0.255 -1.703 -0.128 -3.207 -0.128 c -4.683 -0.128 -5.761 0.255 -6.536 1.05 c -7.238 1.791 -7.613 2.866 -7.613 4.044 c -7.613 6.169 -6.186 7.911 -3.156 7.911 c -0.075 7.911 l -0.075 8.577 l -0.075 10.036 -0.777 10.675 -2.505 10.675 c -3.757 10.675 -4.332 10.369 -5.009 9.574 c -7.089 11.647 l -5.811 13.082 -4.558 13.492 -2.378 13.492 c 1.278 13.492 3.181 11.904 3.181 8.782 c 3.181 0 l 0 0 l h -0.075 5.632 m -2.655 5.632 l -3.831 5.632 -4.484 5.069 -4.484 4.121 c -4.484 3.2 -3.882 2.587 -2.604 2.587 c -1.703 2.587 -1.128 2.662 -0.552 3.225 c -0.2 3.558 -0.075 4.097 -0.075 4.915 c -0.075 5.632 l f Q q 1 0 0 1 199.435 450.966 cm 0 0 m -0.502 0.511 -0.928 0.793 -1.728 0.793 c -2.73 0.793 -3.833 0.025 -3.833 -1.665 c -3.833 -9.703 l -7.09 -9.703 l -7.09 3.636 l -3.908 3.636 l -3.908 2.354 l -3.283 3.122 -2.03 3.789 -0.627 3.789 c 0.65 3.789 1.552 3.456 2.453 2.534 c 0 0 l f Q q 1 0 0 1 0 -0 cm 203.37 441.263 3.256 13.339 re f Q q 1 0 0 1 206.266 457.084 cm 0 0 m -0.724 -0.741 -1.9 -0.74 -2.625 0.001 c -3.35 0.743 -3.35 1.943 -2.625 2.686 c -1.9 3.427 -0.724 3.427 0 2.686 c 0.726 1.943 0.726 0.743 0 0 c f Q q 1 0 0 1 211.569 457.084 cm 0 0 m -0.724 -0.741 -1.9 -0.74 -2.624 0.001 c -3.35 0.743 -3.35 1.943 -2.624 2.686 c -1.9 3.427 -0.724 3.427 0 2.686 c 0.725 1.943 0.725 0.743 0 0 c f Q q 1 0 0 1 212.676 461.684 cm 0 0 m 2.144 -2.194 3.186 -3.257 v 2.144 -4.32 0.001 -6.511 y 1.649 -8.196 l 6.481 -3.257 l 1.649 1.683 l 0 0 l f Q q 1 0 0 1 208.508 443.283 cm 0 0 m 0.536 -0.001 0.96 -0.446 0.96 -1.002 c 0.96 -1.566 0.532 -2.007 -0.006 -2.005 c -0.543 -2.005 -0.977 -1.565 -0.977 -0.999 c -0.975 -0.444 -0.54 0.001 -0.005 0 c 0 0 l h -0.005 -0.156 m -0.434 -0.156 -0.788 -0.533 -0.789 -0.999 c -0.789 -1.475 -0.437 -1.849 -0.002 -1.85 c 0.432 -1.855 0.781 -1.478 0.782 -1.007 c 0.782 -0.534 0.435 -0.156 0 -0.156 c -0.005 -0.156 l h -0.189 -1.583 m -0.363 -1.583 l -0.362 -0.467 l -0.27 -0.453 -0.183 -0.44 -0.053 -0.44 c 0.113 -0.441 0.221 -0.476 0.286 -0.524 c 0.351 -0.574 0.387 -0.651 0.387 -0.756 c 0.387 -0.903 0.289 -0.993 0.173 -1.028 c 0.173 -1.036 l 0.269 -1.054 0.333 -1.144 0.355 -1.308 c 0.38 -1.482 0.406 -1.548 0.424 -1.584 c 0.242 -1.584 l 0.215 -1.548 0.19 -1.445 0.167 -1.299 c 0.142 -1.156 0.072 -1.103 -0.067 -1.103 c -0.189 -1.103 l -0.189 -1.583 l h -0.189 -0.965 m -0.062 -0.965 l 0.081 -0.965 0.204 -0.913 0.204 -0.774 c 0.204 -0.676 0.134 -0.578 -0.062 -0.578 c -0.188 -0.587 l -0.189 -0.965 l f Q BT 0.184 g /T1_0 1 Tf 0.0085 Tc 0.0015 Tw 11.7 0 0 11.7 149.932 399.205 Tm [(Fee)8(d)-1( your br)-21(a)6(i)7(n)]TJ 0.265 g /TT0 1 Tf 0.0104 Tc -0.0004 Tw 9.75 0 0 9.75 149.932 386.042 Tm [(G)-18(a)-14(i)-13(n u)-13(n)-17(l)-13(i)-13(m)-15(i)-14(t)-16(e)-17(d a)-9(cce)-18(s)-10(s t)-13(o t)-19(h)-13(o)-12(u)-16(s)-11(a)-14(n)-15(d)-16(s of b)-10(o)-9(o)-11(k)-36(s a)-14(n)-15(d v)-18(i)-10(d)-13(e)-15(o)-6(s a)-14(b)-10(o)-12(u)-14(t t)-16(e)-17(ch)-16(n)-13(o)-12(l)-13(o)-8(g)-46(y)48(,)10( )]TJ 0.0108 Tc -0.0008 Tw 0 -1.35 TD [(d)-12(i)-10(g)-15(i)-13(t)-30(a)-15(l m)-16(e)-17(d)-12(i)-12(a a)-13(n)-14(d p)-12(r)-12(of)-8(e)-18(s)-10(s)-9(i)-8(o)-11(n)-14(a)-15(l)1( d)-13(e)-3(ve)-18(l)-12(o)-11(p)-12(m)-16(e)-19(n)-9(t f)-15(r)-12(o)-11(m)1( O)6(\222)-19(Re)-18(i)-13(l)-12(l)-17(y)1( M)-16(e)-17(d)-12(i)-12(a)-27(,)11( )]TJ -0.0007 Tw 0 -1.35 TD [(A)-5(d)-13(d)-12(i)-13(s)-6(o)-11(n)-24(-)16(W)34(e)-18(s)-11(l)-14(ey)49(, M)-16(i)-10(cr)-12(o)-5(s)-6(of)-42(t P)-12(r)-16(e)-18(s)-10(s)-13(,)1( C)-5(i)-13(s)-7(c)4(o P)-12(r)-16(e)-18(s)-10(s)-13(,)1( M)-16(c)-9(G)-22(r)-31(aw H)-16(i)-13(l)-12(l)-10(, W)-12(i)-13(l)-14(ey)49(,)1( W)-14(R)12(O)26(X)-32(,)11( )]TJ 0.0101 Tc -0.0001 Tw 0 -1.35 TD [(P)-12(r)-17(e)-19(n)-9(t)-19(i)-11(ce H)-16(a)-16(l)-13(l)-11(, Q)-20(u)-14(e)-17(, S)-17(a)-14(m)-17(s)-14(, A)-20(p)-12(r)-17(e)-18(s)-11(s)-14(, A)-5(d)-12(o)-11(b)-12(e P)-12(r)-17(e)-18(s)-11(s a)-14(n)-15(d ot)-19(h)-17(e)-19(r t)-13(o)-11(p p)-15(u)-14(b)-13(l)-14(i)-13(s)-12(h)-17(e)-19(r)-32(s)-14(.)]TJ 0.266 g /T1_0 1 Tf 0.0082 Tc 0.0018 Tw 11.7 0 0 11.7 149.932 327.055 Tm [(S)-9(e)-3(e it)-12(, believ)3(e it)]TJ 0.265 g /TT0 1 Tf 0.0104 Tc -0.0004 Tw 9.75 0 0 9.75 149.932 313.892 Tm [(W)28(a)-3(t)-17(c)-2(h h)-17(u)-13(n)-15(d)-13(r)-17(e)-17(d)-16(s of e)-18(x)-19(p)-12(e)-19(r)-55(t)13(-)-21(l)-14(e)-17(d i)-13(n)-17(s)-18(t)-19(r)-33(u)-13(c)-24(t)-19(i)-8(o)-11(n)-15(a)-16(l v)-18(i)-10(d)-13(e)-15(o)-6(s o)-11(n t)-13(o)-11(d)-13(a)7(y)-6(\222)41(s h)-13(ot)-34(t)-16(e)-18(s)-18(t t)-13(o)-11(p)-12(i)-10(c)-12(s)-14(.)]TJ 0.285 g /T1_0 1 Tf -0.0005 Tw 14.625 0 0 14.625 149.932 284.642 Tm [(W)43(A)-12(I)-10(T)68(, T)-11(H)11(ER)-5(E\222)20(S M)6(O)6(R)-5(E)-35(!)]TJ 0.184 g 0.0084 Tc 0.0016 Tw 11.7 0 0 11.7 149.932 265.142 Tm [(G)-7(a)6(i)7(n)-2( a c)-8(o)3(m)7(p)-1(etiti)-12(v)4(e e)8(d)-9(ge)]TJ 0.265 g /TT0 1 Tf 0.01 Tc 0 Tw 9.75 0 0 9.75 149.932 251.736 Tm [(B)-26(e f)-58(i)-13(r)-33(s)-18(t t)-13(o l)-14(e)-15(a)-14(r)-29(n a)-14(b)-10(o)-13(u)-15(t t)-19(h)-17(e n)-17(e)-4(we)-18(s)-18(t t)-16(e)-17(ch)-17(n)-13(o)-12(l)-13(o)-8(g)-16(i)-13(e)-18(s a)-14(n)-15(d s)-11(u)-14(b)-12(j)-14(e)-17(c)-25(t)-30(s w)-18(i)-14(t)-19(h Ro)-13(u)-10(g)-16(h C)-7(u)-15(t)-30(s)10( )]TJ 0.0108 Tc -0.0008 Tw 0 -1.375 TD [(p)-12(r)-16(e)-29(-)-20(p)-14(u)-13(b)-13(l)-13(i)-13(s)-11(h)-16(e)-17(d m)-14(a)-13(n)-17(u)-16(s)-7(c)-2(r)-28(i)-12(pt)-29(s a)-13(n)-14(d n)-16(e)-3(w t)-15(e)-17(ch)-16(n)-13(o)-12(l)-12(o)-7(g)-45(y)1( ove)-19(r)-53(v)-17(i)-12(ew)-12(s i)-12(n)1( S)-22(h)-13(o)-11(r)-55(t C)-7(u)-14(t)-29(s)-13(.)]TJ 0.184 g /T1_0 1 Tf 0.0121 Tc -0.0021 Tw 11.7 0 0 11.7 149.932 218.83 Tm [(Acce)6(le)5(r)-17(a)10(t)10(e)2( yo)6(u)8(r)2( pro)13(j)12(ec)-27(t)]TJ 0.265 g /TT0 1 Tf 0.01 Tc 0 Tw 9.75 0 0 9.75 149.932 205.424 Tm [(C)-9(o)-11(py a)-14(n)-15(d p)-8(a)-24(s)-18(t)-16(e co)-12(d)-13(e)-17(, cr)-17(e)-15(a)-4(t)-16(e s)-12(m)-15(a)-14(r)-56(t s)-7(e)-15(a)-14(r)-16(ch)-17(e)-18(s t)-19(h)-15(at l)-14(e)-11(t y)5(o)-13(u k)-32(n)-13(ow w)-18(h)-17(e)-19(n n)-17(e)-4(w)10( )]TJ 0 -1.375 TD [(b)-10(o)-9(o)-11(k)-37(s a)-14(b)-10(o)-13(u)-15(t y)5(o)-13(u)-14(r f)-19(a)5(vo)-11(r)-29(i)-14(t)-16(e t)-13(o)-11(p)-12(i)-11(c)-13(s a)-14(r)-17(e a)5(v)-15(a)-14(i)-14(l)-14(a)-14(b)-13(l)-14(e)-17(, a)-14(n)-15(d cu)-17(s)-18(t)-13(o)-11(m)-16(i)-14(z)-5(e y)5(o)-13(u)-14(r l)-14(i)-13(b)-12(r)-32(a)-14(r)-53(y)10( )]TJ 0.0096 Tc 0.0004 Tw 0 -1.375 TD [(w)-18(i)-15(t)-20(h f)-19(a)5(vo)-12(r)-30(i)-15(t)-17(e)-19(s)-14(, h)-16(i)-11(g)-16(h)-17(l)-14(i)-11(g)-16(h)-10(t)-30(s)-14(, t)-31(a)-12(g)-21(s)-14(, n)-14(o)-1(t)-17(e)-19(s)-14(, m)-15(a)-25(s)-13(h)-25(-)-25(u)-14(p)-10(s a)-15(n)-15(d m)-14(o)-12(r)-17(e)-17(.)]TJ ET q 1 0 0 1 129.549 407.569 cm 0.789 g 0 0 m 3.248 -3.259 4.825 -4.837 v 3.248 -6.416 0.001 -9.67 y 2.497 -12.173 l 9.817 -4.837 l 2.497 2.5 l 0 0 l f Q q 1 0 0 1 129.549 335.697 cm 0.789 g 0 0 m 3.248 -3.258 4.825 -4.836 v 3.248 -6.415 0.001 -9.67 y 2.497 -12.172 l 9.817 -4.836 l 2.497 2.501 l 0 0 l f Q q 1 0 0 1 129.549 274.272 cm 0.789 g 0 0 m 3.248 -3.258 4.825 -4.836 v 3.248 -6.415 0.001 -9.669 y 2.497 -12.172 l 9.817 -4.836 l 2.497 2.501 l 0 0 l f Q q 1 0 0 1 129.549 226.776 cm 0.789 g 0 0 m 3.248 -3.259 4.825 -4.837 v 3.248 -6.416 0.001 -9.67 y 2.497 -12.172 l 9.817 -4.837 l 2.497 2.5 l 0 0 l f Q /EmbeddedDocument /MC0 BDC /Document /MC1 BDC q 1 0 0 1 168.298 107.901 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.264 -0.096 l -2.3 -5.831 l -2.657 -6.821 -2.78 -6.942 -3.412 -7.037 c -3.412 -7.254 l -1.208 -7.254 l -1.208 -7.037 l -1.964 -6.953 -2.068 -6.821 -1.9 -6.128 c -1.783 -5.678 -1.557 -4.936 -1.451 -4.61 c 0.554 -4.61 l 0.794 -5.328 1.03 -6.086 1.111 -6.345 c 1.256 -6.821 1.167 -6.953 0.483 -7.037 c 0.483 -7.254 l 2.99 -7.254 l 2.99 -7.037 l 2.385 -6.953 2.253 -6.824 1.925 -5.895 c 1.544 -4.799 1.106 -3.437 0.665 -2.058 c 0 0 l h -1.321 -4.216 m -1.036 -3.334 -0.74 -2.455 -0.427 -1.545 c -0.409 -1.545 l 0.426 -4.216 l -1.321 -4.216 l f Q q 1 0 0 1 175.056 108.456 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.407 -0.149 -1.091 -0.324 -1.598 -0.391 c -1.598 -0.594 l -0.879 -0.677 -0.833 -0.704 -0.833 -1.389 c -0.833 -2.981 l -1.05 -2.915 -1.335 -2.889 -1.465 -2.889 c -3.037 -2.889 -4.201 -4.113 -4.201 -5.606 c -4.201 -7.132 -3.071 -7.942 -2.248 -7.942 c -2.108 -7.942 -1.926 -7.889 -1.57 -7.687 c -0.833 -7.255 l -0.833 -7.942 l -0.269 -7.715 0.511 -7.578 0.754 -7.524 c 0.754 -7.319 l 0.39 -7.281 l 0.069 -7.255 -0.008 -7.17 0 -6.614 c 0 0 l h -1.842 -7.307 m -2.509 -7.307 -3.245 -6.657 -3.245 -5.312 c -3.254 -3.631 -2.336 -3.245 -1.911 -3.245 c -1.511 -3.245 -1.065 -3.402 -0.833 -3.821 c -0.833 -6.915 l -1.097 -7.124 -1.457 -7.307 -1.842 -7.307 c f Q q 1 0 0 1 177.781 105.568 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.01 0 l -0.972 0 -2.221 -0.826 -2.221 -2.655 c -2.221 -3.822 -1.408 -5.053 -0.018 -5.053 c 1.024 -5.053 2.179 -4.175 2.179 -2.432 c 2.179 -1.097 1.275 0 0 0 c 0.111 -4.742 m -0.744 -4.742 -1.232 -3.699 -1.232 -2.248 c -1.232 -1.016 -0.782 -0.307 -0.132 -0.307 c -0.129 -0.307 l 0.797 -0.307 1.207 -1.381 1.207 -2.695 c 1.207 -4.256 0.74 -4.742 0.111 -4.742 c f Q q 1 0 0 1 181.13 108.456 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.414 -0.149 -1.03 -0.312 -1.536 -0.378 c -1.536 -0.582 l -0.874 -0.677 -0.841 -0.72 -0.841 -1.416 c -0.841 -7.559 l -0.295 -7.836 0.21 -7.942 0.74 -7.942 c 2.136 -7.942 3.332 -6.771 3.332 -5.165 c 3.332 -3.89 2.429 -2.889 1.318 -2.889 c 1.147 -2.889 0.998 -2.919 0.857 -2.994 c 0 -3.361 l 0 0 l h 0.997 -7.619 m 0.992 -7.619 0.988 -7.619 0.983 -7.619 c 0.416 -7.593 0.124 -7.227 0.055 -7.037 c 0.016 -6.915 0 -6.798 0 -6.642 c 0 -3.661 l 0.164 -3.55 0.462 -3.456 0.773 -3.456 c 1.752 -3.456 2.381 -4.217 2.381 -5.463 c 2.381 -6.79 1.844 -7.619 0.997 -7.619 c f Q q 1 0 0 1 186.894 105.568 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.011 0 l -0.48 0 -1.024 -0.262 -1.423 -0.689 c -1.937 -1.199 -2.231 -1.945 -2.231 -2.751 c -2.231 -3.996 -1.465 -5.053 -0.182 -5.053 c 0.137 -5.053 0.875 -4.839 1.472 -3.996 c 1.325 -3.822 l 0.936 -4.202 0.583 -4.343 0.198 -4.343 c 0.193 -4.343 0.188 -4.343 0.182 -4.343 c -0.578 -4.343 -1.408 -3.757 -1.396 -2.135 c -0.141 -2.085 1.135 -1.99 1.282 -1.963 c 1.481 -1.911 1.526 -1.857 1.526 -1.609 c 1.534 -0.812 0.856 0 0 0 c -1.327 -1.746 m -1.233 -0.872 -0.746 -0.357 -0.285 -0.357 c -0.262 -0.357 l 0.328 -0.357 0.642 -0.921 0.639 -1.477 c 0.639 -1.652 0.583 -1.719 0.426 -1.719 c -0.156 -1.736 -0.753 -1.74 -1.327 -1.746 c f Q q 1 0 0 1 188.526 105.564 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.16 0 -0.288 -0.13 -0.288 -0.293 c -0.288 -0.456 -0.16 -0.582 0 -0.582 c 0.163 -0.582 0.294 -0.456 0.294 -0.293 c 0.294 -0.13 0.163 0 0 0 c 0 -0.537 m -0.125 -0.537 -0.228 -0.431 -0.228 -0.293 c -0.228 -0.155 -0.125 -0.049 0 -0.049 c 0.13 -0.049 0.232 -0.155 0.232 -0.293 c 0.232 -0.431 0.13 -0.537 0 -0.537 c -0.011 -0.121 m -0.114 -0.146 l -0.114 -0.461 l -0.053 -0.461 l -0.053 -0.327 l -0.018 -0.327 l 0.05 -0.387 l 0.068 -0.461 l 0.13 -0.461 l 0.11 -0.387 l 0.058 -0.303 l 0.118 -0.224 l 0.092 -0.149 l -0.011 -0.121 l h -0.053 -0.276 m -0.053 -0.172 l -0.018 -0.172 l 0.065 -0.224 l -0.018 -0.276 l -0.053 -0.276 l f Q q 1 0 0 1 191.959 107.752 cm 0 0 0 0.27 k /GS2 gs 0 0 m -2.47 0 l -2.47 -0.216 l -1.696 -0.296 -1.613 -0.419 -1.613 -1.316 c -1.613 -5.803 l -1.613 -6.683 -1.701 -6.819 -2.523 -6.889 c -2.523 -7.105 l 0.348 -7.105 l 0.348 -6.889 l -0.623 -6.819 -0.711 -6.683 -0.711 -5.807 c -0.711 -4.026 l 0.012 -4.216 l 0.063 -4.223 0.121 -4.225 0.184 -4.225 c 0.247 -4.225 0.314 -4.223 0.384 -4.216 c 1.408 -4.071 2.44 -3.361 2.44 -1.994 c 2.44 -1.274 2.169 -0.772 1.748 -0.448 c 1.329 -0.121 0.739 0 0 0 c -0.023 -3.836 m -0.33 -3.836 -0.578 -3.783 -0.711 -3.715 c -0.711 -0.651 l -0.711 -0.448 -0.685 -0.379 -0.623 -0.353 c -0.544 -0.324 -0.407 -0.296 -0.208 -0.296 c 0.784 -0.296 1.423 -0.826 1.423 -2.014 c 1.423 -3.487 0.573 -3.836 -0.023 -3.836 c f Q q 1 0 0 1 196.154 105.598 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.506 -0.213 -0.955 -0.355 -1.477 -0.442 c -1.477 -0.639 l -0.871 -0.734 -0.834 -0.772 -0.834 -1.479 c -0.834 -3.859 l -0.834 -4.545 -0.929 -4.666 -1.538 -4.735 c -1.538 -4.951 l 0.864 -4.951 l 0.864 -4.735 l 0.084 -4.666 0 -4.545 0 -3.825 c 0 -1.697 l 0.248 -1.1 0.536 -0.867 0.762 -0.867 c 0.929 -0.867 1.059 -0.951 1.203 -1.1 c 1.232 -1.129 1.276 -1.147 1.33 -1.147 c 1.374 -1.147 1.426 -1.135 1.481 -1.108 c 1.698 -1.02 1.838 -0.803 1.838 -0.585 c 1.838 -0.327 1.587 -0.03 1.255 -0.03 c 0.78 -0.03 0.3 -0.624 0.023 -1.154 c 0 -1.154 l 0 0 l f Q q 1 0 0 1 200.222 105.568 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.012 0 l -0.479 0 -1.022 -0.262 -1.423 -0.689 c -1.934 -1.199 -2.23 -1.945 -2.23 -2.751 c -2.23 -3.996 -1.465 -5.053 -0.182 -5.053 c 0.145 -5.053 0.876 -4.839 1.466 -3.996 c 1.322 -3.822 l 0.936 -4.202 0.581 -4.343 0.206 -4.343 c 0.201 -4.343 0.195 -4.343 0.191 -4.343 c -0.579 -4.343 -1.408 -3.757 -1.397 -2.135 c -0.139 -2.085 1.135 -1.99 1.283 -1.963 c 1.476 -1.911 1.534 -1.857 1.534 -1.609 c 1.534 -0.812 0.857 0 0 0 c -1.336 -1.746 m -1.233 -0.872 -0.738 -0.357 -0.278 -0.357 c -0.27 -0.357 l 0.329 -0.357 0.643 -0.921 0.64 -1.477 c 0.64 -1.652 0.581 -1.719 0.426 -1.719 c -0.149 -1.736 -0.754 -1.74 -1.336 -1.746 c f Q q 1 0 0 1 203.736 105.568 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.972 0 -1.622 -0.642 -1.622 -1.449 c -1.622 -2.208 -0.937 -2.574 -0.341 -2.86 c 0.223 -3.117 0.514 -3.429 0.514 -3.958 c 0.514 -4.491 0.174 -4.742 -0.232 -4.742 c -0.884 -4.742 -1.413 -3.971 -1.595 -3.318 c -1.805 -3.345 l -1.797 -3.795 -1.718 -4.46 -1.655 -4.648 c -1.466 -4.839 -0.965 -5.053 -0.424 -5.053 c 0.4 -5.053 1.32 -4.548 1.32 -3.536 c 1.32 -2.806 0.799 -2.379 0.01 -2.032 c -0.477 -1.816 -0.884 -1.556 -0.884 -1.043 c -0.884 -0.609 -0.591 -0.307 -0.206 -0.307 c 0.25 -0.307 0.642 -0.697 0.921 -1.422 c 1.137 -1.356 l 1.112 -1.123 1.002 -0.435 0.91 -0.175 c 0.696 -0.08 0.41 0 0 0 c f Q q 1 0 0 1 207.157 105.568 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.962 0 -1.618 -0.642 -1.618 -1.449 c -1.618 -2.208 -0.932 -2.574 -0.339 -2.86 c 0.225 -3.117 0.518 -3.429 0.518 -3.958 c 0.518 -4.491 0.18 -4.742 -0.228 -4.742 c -0.879 -4.742 -1.4 -3.971 -1.59 -3.318 c -1.799 -3.345 l -1.796 -3.795 -1.709 -4.46 -1.651 -4.648 c -1.463 -4.839 -0.962 -5.053 -0.426 -5.053 c 0.4 -5.053 1.325 -4.548 1.325 -3.536 c 1.325 -2.806 0.807 -2.379 0.023 -2.032 c -0.472 -1.816 -0.872 -1.556 -0.879 -1.043 c -0.879 -0.609 -0.59 -0.307 -0.202 -0.307 c 0.259 -0.307 0.647 -0.697 0.929 -1.422 c 1.142 -1.356 l 1.113 -1.123 1.005 -0.435 0.911 -0.175 c 0.701 -0.08 0.416 0 0 0 c f Q q 1 0 0 1 223.143 104.789 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.004 0.608 -0.37 1.095 -1.112 1.095 c -2.003 1.095 -2.227 -0.206 -2.227 -1.017 c -2.227 -1.832 -2.003 -3.148 -1.112 -3.148 c -0.37 -3.148 0.004 -2.661 0 -2.048 c 1.32 -2.048 l 1.267 -3.488 0.221 -4.043 -1.112 -4.043 c -2.795 -4.043 -3.554 -2.714 -3.554 -1.017 c -3.554 0.685 -2.795 2.005 -1.112 2.005 c 0.221 2.005 1.267 1.45 1.32 0 c 0 0 l f Q q 1 0 0 1 226.443 106.673 cm 0 0 0 0.27 k /GS2 gs -1.288 0 1.288 -1.043 re 0 0 m h -1.249 -1.771 1.205 -4.042 re f Q q 1 0 0 1 229.473 103.832 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.021 0.263 -0.279 0.385 -0.549 0.385 c -0.872 0.385 -1.029 0.29 -1.029 0.027 c -1.029 -0.611 1.274 -0.251 1.274 -1.757 c 1.274 -2.637 0.204 -3.086 -0.549 -3.086 c -1.493 -3.086 -2.311 -2.72 -2.326 -1.796 c -1.207 -1.796 l -1.181 -2.105 -0.904 -2.288 -0.549 -2.288 c -0.218 -2.288 0.026 -2.143 0.026 -1.827 c 0.026 -1.514 -0.549 -1.37 -0.793 -1.325 c -1.558 -1.133 -2.277 -0.963 -2.277 -0.023 c -2.277 0.818 -1.253 1.184 -0.549 1.184 c 0.304 1.184 1.031 0.887 1.083 0 c 0 0 l f Q q 1 0 0 1 233.594 103.487 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.004 0.323 -0.141 0.731 -0.609 0.731 c -1.123 0.731 -1.131 -0.232 -1.146 -0.544 c -1.119 -0.925 -1.104 -1.942 -0.594 -1.942 c -0.128 -1.942 0.008 -1.481 0.023 -1.154 c 1.195 -1.154 l 1.153 -2.17 0.518 -2.74 -0.594 -2.74 c -1.788 -2.74 -2.39 -1.666 -2.39 -0.606 c -2.39 0.461 -1.788 1.53 -0.594 1.53 c 0.434 1.53 1.203 0.948 1.195 0 c 0 0 l f Q q 1 0 0 1 239.52 102.881 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 1.268 -0.784 2.136 -2.108 2.136 c -3.422 2.136 -4.209 1.268 -4.209 0 c -4.209 -1.266 -3.422 -2.135 -2.108 -2.135 c -0.784 -2.135 0 -1.266 0 0 c h -2.961 0 m -2.961 0.651 -2.847 1.337 -2.108 1.337 c -1.363 1.337 -1.247 0.651 -1.247 0 c -1.247 -0.644 -1.363 -1.336 -2.108 -1.336 c -2.847 -1.336 -2.961 -0.644 -2.961 0 c f Q q 1 0 0 1 243.868 100.86 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 2.245 l 0.909 2.245 l 2.202 2.287 2.922 2.976 2.922 4.023 c 2.922 5.492 1.838 5.797 0.548 5.813 c -1.241 5.813 l -1.241 0 l 0 0 l h 0 4.85 m 0.691 4.815 1.598 5.051 1.598 4.023 c 1.598 2.999 0.691 3.235 0 3.209 c 0 4.85 l f Q q 1 0 0 1 248.537 104.902 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.027 -0.725 l 0.042 -0.725 l 0.301 -0.094 0.823 0.063 1.416 0.053 c 1.416 -1.015 l 0.895 -1.015 l 0.693 -1.038 0.426 -1.153 0.313 -1.32 c 0.18 -1.538 0.156 -1.768 0.148 -2.032 c 0.148 -4.042 l -1.05 -4.042 l -1.062 -0.806 l -1.062 -0.63 -1.085 -0.293 -1.095 0 c 0 0 l f Q q 1 0 0 1 254.367 102.562 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 0.274 0 0.529 -0.026 0.777 c -0.06 1.039 -0.122 1.275 -0.227 1.492 c -0.57 2.212 -1.199 2.455 -1.952 2.455 c -3.178 2.455 -3.89 1.527 -3.89 0.312 c -3.89 -1.029 -3.334 -1.816 -1.952 -1.816 c -1.008 -1.816 -0.227 -1.477 -0.129 -0.487 c -1.214 -0.487 l -1.328 -0.868 -1.529 -1.017 -1.952 -1.017 c -2.568 -1.017 -2.645 -0.525 -2.645 0 c 0 0 l h -2.645 0.802 m -2.63 1.248 -2.507 1.656 -1.952 1.656 c -1.362 1.656 -1.247 1.248 -1.247 0.802 c -2.645 0.802 l f Q q 1 0 0 1 257.17 103.832 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.023 0.263 -0.278 0.385 -0.553 0.385 c -0.883 0.385 -1.031 0.29 -1.031 0.027 c -1.031 -0.611 1.275 -0.251 1.275 -1.757 c 1.275 -2.637 0.193 -3.086 -0.553 -3.086 c -1.491 -3.086 -2.307 -2.72 -2.326 -1.796 c -1.207 -1.796 l -1.188 -2.105 -0.903 -2.288 -0.553 -2.288 c -0.218 -2.288 0.026 -2.143 0.026 -1.827 c 0.026 -1.514 -0.553 -1.37 -0.796 -1.325 c -1.561 -1.133 -2.281 -0.963 -2.281 -0.023 c -2.281 0.818 -1.257 1.184 -0.553 1.184 c 0.304 1.184 1.028 0.887 1.084 0 c 0 0 l f Q q 1 0 0 1 261.188 103.832 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.018 0.263 -0.278 0.385 -0.547 0.385 c -0.882 0.385 -1.031 0.29 -1.031 0.027 c -1.031 -0.611 1.275 -0.251 1.275 -1.757 c 1.275 -2.637 0.199 -3.086 -0.547 -3.086 c -1.492 -3.086 -2.309 -2.72 -2.324 -1.796 c -1.214 -1.796 l -1.187 -2.105 -0.901 -2.288 -0.547 -2.288 c -0.216 -2.288 0.027 -2.143 0.027 -1.827 c 0.027 -1.514 -0.547 -1.37 -0.791 -1.325 c -1.565 -1.133 -2.275 -0.963 -2.275 -0.023 c -2.275 0.818 -1.255 1.184 -0.547 1.184 c 0.306 1.184 1.024 0.887 1.085 0 c 0 0 l f Q q 1 0 0 1 390.416 108.313 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.293 0 -0.529 -0.234 -0.529 -0.533 c -0.529 -0.829 -0.293 -1.073 0 -1.073 c 0.3 -1.073 0.544 -0.829 0.544 -0.533 c 0.544 -0.234 0.3 0 0 0 c 0 -0.989 m -0.242 -0.989 -0.446 -0.796 -0.446 -0.533 c -0.446 -0.276 -0.242 -0.084 0 -0.084 c 0.26 -0.084 0.471 -0.276 0.471 -0.533 c 0.471 -0.796 0.26 -0.989 0 -0.989 c 0.083 -0.234 m -0.118 -0.234 l -0.251 -0.796 l -0.171 -0.796 l -0.11 -0.548 l -0.003 -0.548 l 0.095 -0.796 l 0.185 -0.796 l 0.083 -0.548 l 0.176 -0.548 0.25 -0.483 0.26 -0.4 c 0.26 -0.303 0.218 -0.234 0.083 -0.234 c -0.095 -0.483 m -0.045 -0.303 l 0.069 -0.303 l 0.176 -0.377 l 0.167 -0.483 0.069 -0.483 -0.003 -0.483 c -0.095 -0.483 l f Q q 1 0 0 1 361.98 109.719 cm 0 0 0 0.27 k /GS2 gs 0 0 m -2.274 0 l -3.814 -3.202 l -3.914 0 l -6.186 0 l -7.457 -5.734 l -5.796 -5.734 l -5.021 -2.658 l -4.976 -5.734 l -3.781 -5.734 l -2.246 -2.658 l -2.929 -5.734 l -1.28 -5.734 l 0 0 l f Q q 1 0 0 1 363.904 109.719 cm 0 0 0 0.27 k /GS2 gs 0 0 m -1.537 0 l -1.735 -0.934 l -0.202 -0.934 l 0 0 l f Q q 1 0 0 1 363.578 108.229 cm 0 0 0 0.27 k /GS2 gs 0 0 m -1.543 0 l -2.482 -4.241 l -0.946 -4.241 l 0 0 l f Q q 1 0 0 1 366.005 108.345 cm 0 0 0 0.27 k /GS2 gs 0 0 m -3.114 0 -3.777 -4.424 -0.968 -4.485 c -0.936 -4.486 -0.903 -4.487 -0.872 -4.487 c 1.178 -4.487 1.659 -2.817 1.659 -2.785 c 0.041 -2.785 l 0.002 -2.858 -0.215 -3.404 -0.681 -3.404 c -0.686 -3.404 -0.692 -3.404 -0.695 -3.404 c -1.737 -3.383 -1.074 -1.04 -0.129 -1.009 c -0.126 -1.009 -0.123 -1.009 -0.119 -1.009 c 0.377 -1.009 0.333 -1.63 0.305 -1.695 c 1.896 -1.695 l 1.915 -1.63 2.012 -0.106 0.167 -0.004 c 0.11 -0.002 0.055 0 0 0 c f Q q 1 0 0 1 386.755 109.667 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.378 0 -0.856 -0.045 -1.117 -0.243 c -1.445 -0.506 -1.561 -0.787 -1.698 -1.437 c -2.463 -1.437 l -2.684 -2.412 l -1.906 -2.412 l -2.61 -5.678 l -1.098 -5.678 l -0.38 -2.412 l 0.465 -2.412 l -0.003 -4.559 l -0.131 -5.117 0.069 -5.379 0.25 -5.511 c 0.461 -5.65 0.878 -5.684 1.241 -5.684 c 1.602 -5.684 1.907 -5.651 y 2.137 -4.693 l 2.036 -4.703 1.913 -4.703 v 1.734 -4.703 1.507 -4.683 1.474 -4.591 c 1.432 -4.462 1.474 -4.379 1.483 -4.281 c 1.884 -2.412 l 2.608 -2.412 l 2.829 -1.437 l 2.097 -1.437 l 2.318 -0.4 l 0.909 -0.4 l 0.676 -1.437 l -0.224 -1.437 l -0.198 -1.326 l -0.122 -0.99 -0.093 -0.818 0.394 -0.818 c 0.554 -0.03 l 0.311 0 0 0 v f Q q 1 0 0 1 371.127 108.304 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.265 0 -0.485 -0.046 -0.716 -0.116 c -1.001 -0.212 -1.24 -0.359 -1.431 -0.589 c -1.315 -0.075 l -2.69 -0.075 l -3.654 -4.315 l -2.184 -4.315 l -1.847 -2.804 l -1.585 -1.513 -0.856 -1.372 -0.523 -1.368 c -0.444 -1.218 -0.35 -1.073 -0.242 -0.936 c 0 0 l f Q q 1 0 0 1 382.181 108.41 cm 0 0 0 0.27 k /GS2 gs 0 0 m -3.061 0 -3.915 -4.427 -0.859 -4.567 c -0.815 -4.569 -0.771 -4.57 -0.727 -4.57 c 2.331 -4.57 3.111 -0.151 0.158 -0.004 c 0.106 -0.001 0.052 0 0 0 c -0.628 -3.482 m -0.673 -3.482 -0.719 -3.477 -0.767 -3.469 c -1.71 -3.275 -0.995 -0.993 -0.042 -0.993 c -0.014 -0.993 0.014 -0.995 0.045 -0.998 c 0.999 -1.149 0.376 -3.482 -0.628 -3.482 c f Q q 1 0 0 1 373.055 108.41 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.955 0 -1.696 -0.437 -2.169 -1.041 c -2.278 -1.178 -2.372 -1.324 -2.451 -1.474 c -3.138 -2.784 -2.743 -4.502 -0.855 -4.567 c -0.826 -4.569 -0.798 -4.569 -0.768 -4.569 c 0.396 -4.569 1.272 -3.911 1.654 -3.164 c 1.614 -3.665 1.828 -4.55 3.816 -4.574 c 3.836 -4.574 3.86 -4.574 3.879 -4.574 c 6.041 -4.574 6.227 -3.185 6.209 -2.882 c 6.153 -1.795 5.176 -1.746 4.316 -1.565 c 3.626 -1.417 3.761 -0.857 4.381 -0.857 c 5.043 -0.857 4.878 -1.417 y 6.355 -1.417 l 6.333 -1.336 6.752 -0.022 4.536 -0.004 c 4.504 -0.004 4.468 -0.004 4.434 -0.004 c 3.389 -0.004 2.454 -0.347 2.322 -1.273 c 2.156 -2.416 3.648 -2.68 4.035 -2.745 c 4.887 -2.891 4.644 -3.596 4.011 -3.596 c 3.997 -3.596 3.986 -3.596 3.971 -3.596 c 3.105 -3.596 3.32 -2.974 y 0.466 -2.974 l 1.746 -2.506 l 1.861 -2.451 1.954 -2.432 1.976 -2.32 c 2.207 -1.147 1.614 -0.089 0.163 -0.004 c 0.108 -0.001 0.054 0 0 0 c -0.625 -3.482 m -0.67 -3.482 -0.716 -3.477 -0.764 -3.469 c -1.712 -3.275 -0.987 -0.993 -0.038 -0.993 c -0.009 -0.993 0.02 -0.995 0.047 -0.998 c 1.008 -1.149 0.379 -3.482 -0.625 -3.482 c f Q q 1 0 0 1 372.965 103.63 cm 0 0 0 0.27 k /GS2 gs 0 0 m -1.933 0 l -3.216 -5.726 l -2.499 -5.726 l -1.973 -3.395 l -0.693 -3.395 l -0.169 -3.395 0.333 -3.316 0.804 -2.921 c 1.187 -2.626 1.477 -2.165 1.574 -1.712 c 1.68 -1.221 1.598 -0.691 1.288 -0.378 c 0.965 -0.05 0.491 0 0 0 c -1.837 -2.795 m -1.347 -0.59 l -0.075 -0.59 l 0.211 -0.59 0.449 -0.622 0.647 -0.801 c 0.878 -1.032 0.924 -1.366 0.843 -1.712 c 0.778 -2.018 0.608 -2.299 0.355 -2.511 c 0.023 -2.765 -0.283 -2.795 -0.622 -2.795 c -1.837 -2.795 l f Q q 1 0 0 1 376.909 102.266 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.691 0 -1.161 -0.53 -1.499 -1.114 c -1.519 -1.114 l -1.298 -0.112 l -1.878 -0.112 l -2.83 -4.362 l -2.174 -4.362 l -1.698 -2.227 l -1.624 -1.883 -1.528 -1.62 -1.279 -1.313 c -0.942 -0.884 -0.541 -0.654 -0.038 -0.654 c 0.09 -0.654 l 0.236 -0.013 l 0 0 l f Q q 1 0 0 1 379.084 102.264 cm 0 0 0 0.27 k /GS2 gs 0 0 m -1.273 0 -2.206 -1.06 -2.466 -2.234 c -2.733 -3.425 -2.298 -4.441 -1.008 -4.441 c -0.2 -4.441 0.649 -3.98 1.074 -3.192 c 0.483 -3.077 l 0.187 -3.589 -0.291 -3.896 -0.84 -3.896 c -1.279 -3.896 -1.668 -3.655 -1.783 -3.254 c -1.866 -2.931 -1.815 -2.621 -1.74 -2.291 c 1.344 -2.291 l 1.648 -1.112 1.32 0 0 0 c -1.604 -1.798 m -1.428 -1.126 -0.819 -0.505 -0.115 -0.505 c 0.639 -0.505 0.902 -1.094 0.736 -1.798 c -1.604 -1.798 l f Q q 1 0 0 1 383.062 102.264 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.784 0 -1.676 -0.374 -1.87 -1.259 c -2.036 -2.014 -1.51 -2.308 -0.888 -2.438 c -0.219 -2.552 l 0.141 -2.621 0.567 -2.752 0.457 -3.192 c 0.344 -3.747 -0.269 -3.896 -0.723 -3.896 c -1.239 -3.896 -1.865 -3.686 -1.822 -3.112 c -2.488 -3.244 l -2.469 -4.113 -1.731 -4.441 -0.894 -4.441 c -0.068 -4.441 0.95 -4.087 1.168 -3.136 c 1.253 -2.752 1.157 -2.394 0.87 -2.17 c 0.653 -1.987 0.344 -1.95 0.046 -1.88 c -0.551 -1.767 l -0.91 -1.72 -1.271 -1.605 -1.165 -1.153 c -1.058 -0.682 -0.511 -0.527 -0.125 -0.527 c 0.35 -0.527 0.746 -0.734 0.811 -1.21 c 1.442 -1.079 l 1.41 -0.291 0.761 0 0 0 c f Q q 1 0 0 1 386.886 102.264 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.779 0 -1.676 -0.374 -1.87 -1.259 c -2.045 -2.014 -1.522 -2.308 -0.889 -2.438 c -0.224 -2.552 l 0.127 -2.621 0.557 -2.752 0.46 -3.192 c 0.346 -3.747 -0.274 -3.896 -0.723 -3.896 c -1.24 -3.896 -1.866 -3.686 -1.829 -3.112 c -2.496 -3.244 l -2.47 -4.113 -1.724 -4.441 -0.894 -4.441 c -0.075 -4.441 0.941 -4.087 1.165 -3.136 c 1.247 -2.752 1.155 -2.394 0.869 -2.17 c 0.644 -1.987 0.346 -1.95 0.047 -1.88 c -0.554 -1.767 l -0.915 -1.72 -1.281 -1.605 -1.175 -1.153 c -1.07 -0.682 -0.511 -0.527 -0.134 -0.527 c 0.358 -0.527 0.745 -0.734 0.809 -1.21 c 1.441 -1.079 l 1.399 -0.291 0.753 0 0 0 c f Q q 1 0 0 1 418.027 96.813 cm /CS0 cs 0.27 scn /GS3 gs 0 0 m 0 5.119 -1.692 9.312 -4.679 12.22 c -7.664 15.128 -11.93 16.744 -17.051 16.744 c -17.051 16.421 l -11.998 16.42 -7.82 14.83 -4.905 11.988 c -1.99 9.147 -0.324 5.049 -0.322 0 c 0 0 l f Q q 1 0 0 1 400.849 110.236 cm /CS0 cs 0.27 scn /GS3 gs 0 0 m 0.799 0 l 0.799 -0.727 l 1.334 -3.022 l 1.334 0 l 2.134 0 l 2.134 -6.23 l 1.334 -6.23 l 1.334 -5.564 l 0.799 -3.238 l 0.799 -6.23 l 0 -6.23 l 0 0 l f Q q 1 0 0 1 405.707 107.477 cm /CS0 cs 0.27 scn /GS3 gs 0 0 m 0 0.294 -0.099 0.548 -0.304 0.754 c -0.506 0.955 -0.765 1.067 -1.068 1.067 c -1.366 1.067 -1.615 0.955 -1.821 0.754 c -2.039 0.548 -2.138 0.294 -2.138 0 c -2.138 -2.5 l -2.138 -2.801 -2.039 -3.045 -1.821 -3.262 c -1.615 -3.463 -1.366 -3.56 -1.068 -3.56 c -0.765 -3.56 -0.506 -3.463 -0.304 -3.262 c -0.099 -3.045 0 -2.801 0 -2.5 c 0 -2.263 l -0.806 -2.263 l -0.806 -2.5 l -0.806 -2.584 -0.83 -2.636 -0.879 -2.69 c -0.928 -2.732 -0.989 -2.775 -1.068 -2.775 c -1.144 -2.775 -1.207 -2.732 -1.258 -2.69 c -1.304 -2.636 -1.329 -2.568 -1.329 -2.5 c -1.329 -1.876 l 0 -1.876 l 0 0 l h -1.258 0.182 m -1.207 0.236 -1.144 0.263 -1.068 0.263 c -0.989 0.263 -0.921 0.236 -0.871 0.182 c -0.826 0.143 -0.806 0.082 -0.806 0 c -0.806 -1.069 l -1.329 -1.069 l -1.329 0 l -1.329 0.077 -1.304 0.13 -1.258 0.182 c f Q q 1 0 0 1 407.563 104.977 cm /CS0 cs 0.27 scn /GS3 gs 0 0 m 0 3.479 l 0.799 3.479 l 0.799 0 l 0.799 -0.084 0.826 -0.136 0.875 -0.19 c 0.928 -0.232 0.989 -0.274 1.069 -0.274 c 1.137 -0.274 1.199 -0.232 1.251 -0.19 c 1.31 -0.136 1.335 -0.068 1.335 0 c 1.335 3.479 l 2.135 3.479 l 2.135 0 l 2.135 -0.301 2.033 -0.544 1.822 -0.761 c 1.617 -0.963 1.362 -1.059 1.069 -1.059 c 0.808 -1.059 0.59 -0.99 0.398 -0.829 c 0.209 -0.99 -0.016 -1.059 -0.274 -1.059 c -0.58 -1.059 -0.835 -0.963 -1.039 -0.761 c -1.24 -0.544 -1.337 -0.301 -1.337 0 c -1.337 3.479 l -0.538 3.479 l -0.538 0 l -0.538 -0.084 -0.517 -0.136 -0.461 -0.19 c -0.408 -0.232 -0.348 -0.274 -0.274 -0.274 c -0.199 -0.274 -0.138 -0.232 -0.084 -0.19 c -0.028 -0.136 0 -0.068 0 0 c f Q q 1 0 0 1 402.714 102.757 cm /CS0 cs 0.27 scn /GS3 gs 0 0 m -0.203 0.205 -0.461 0.305 -0.754 0.305 c -1.822 0.305 l -1.822 -5.929 l -1.018 -5.929 l -1.018 -3.435 l -0.754 -3.435 l -0.686 -3.435 -0.625 -3.463 -0.564 -3.517 c -0.517 -3.569 -0.479 -3.627 -0.479 -3.706 c -0.479 -5.929 l 0.319 -5.929 l 0.319 -3.706 l 0.319 -3.543 0.286 -3.409 0.235 -3.299 c 0.163 -3.179 l 0.067 -3.036 l 0.147 -2.925 0.208 -2.827 0.251 -2.716 c 0.293 -2.604 0.319 -2.486 0.319 -2.369 c 0.319 -0.772 l 0.319 -0.452 0.208 -0.201 0 0 c h -0.564 -2.554 m -0.625 -2.606 -0.686 -2.629 -0.754 -2.629 c -1.018 -2.629 l -1.018 -0.486 l -0.754 -0.486 l -0.67 -0.486 -0.61 -0.521 -0.564 -0.575 c -0.517 -0.627 -0.479 -0.688 -0.479 -0.772 c -0.479 -2.369 l -0.479 -2.446 -0.517 -2.507 -0.564 -2.554 c f Q q 1 0 0 1 403.78 100.474 cm /CS0 cs 0.27 scn /GS3 gs 0 0 m -0.398 0 l -0.398 0.815 l 0.806 0.815 l 0.806 -3.646 l 0 -3.646 l 0 0 l h 0 2.279 0.806 -0.802 re f Q q 1 0 0 1 405.491 97.141 cm /CS0 cs 0.27 scn /GS3 gs 0 0 m 0.216 -0.219 0.464 -0.313 0.743 -0.313 c 1.812 -0.313 l 1.812 5.922 l 1.013 5.922 l 1.013 4.147 l 0.743 4.147 l 0.449 4.147 0.205 4.038 -0.011 3.836 c -0.221 3.626 -0.331 3.375 -0.331 3.07 c -0.331 0.756 l -0.331 0.445 -0.221 0.208 0 0 c h 0.552 0.566 m 0.495 0.615 0.475 0.677 0.475 0.756 c 0.475 3.07 l 0.475 3.143 0.503 3.197 0.552 3.253 c 0.605 3.306 0.675 3.333 0.743 3.333 c 1.013 3.333 l 1.013 0.487 l 0.743 0.487 l 0.667 0.487 0.598 0.507 0.552 0.566 c f Q q 1 0 0 1 410.009 100.3 cm /CS0 cs 0.27 scn /GS3 gs 0 0 m 0 0.297 -0.102 0.555 -0.301 0.758 c -0.504 0.962 -0.762 1.07 -1.074 1.07 c -1.362 1.07 -1.62 0.962 -1.825 0.758 c -2.036 0.555 -2.135 0.297 -2.135 0 c -2.135 -2.488 l -2.135 -2.794 -2.036 -3.038 -1.825 -3.255 c -1.62 -3.46 -1.362 -3.559 -1.074 -3.559 c -0.762 -3.559 -0.504 -3.46 -0.301 -3.255 c -0.102 -3.038 0 -2.794 0 -2.488 c 0 -2.257 l -0.799 -2.257 l -0.799 -2.488 l -0.799 -2.568 -0.83 -2.63 -0.876 -2.687 c -0.92 -2.74 -0.989 -2.768 -1.074 -2.768 c -1.257 -2.687 l -1.31 -2.63 -1.336 -2.566 -1.336 -2.488 c -1.336 -1.874 l 0 -1.874 l 0 0 l h -1.257 0.189 m -1.074 0.27 l -0.985 0.27 -0.92 0.243 -0.876 0.202 c -0.83 0.148 -0.799 0.089 -0.799 0 c -0.799 -1.066 l -1.336 -1.066 l -1.336 0 l -1.257 0.189 l f Q q 1 0 0 1 411.595 101.288 cm /CS0 cs 0.27 scn /GS3 gs 0 0 m 0.4 0 l 0.4 -0.815 l 0.134 -0.815 l 0.013 -0.815 -0.082 -0.848 -0.154 -0.925 c -0.231 -1.005 -0.272 -1.1 -0.272 -1.221 c -0.272 -4.46 l -1.072 -4.46 l -1.072 -1.085 l -1.072 -0.787 -0.961 -0.521 -0.76 -0.326 c -0.556 -0.122 -0.307 0 0 0 c f Q q 1 0 0 1 412.404 97.812 cm /CS0 cs 0.27 scn /GS3 gs 0 0 m 0 0.231 l 0.799 0.231 l 0.799 0 l 0.799 -0.08 0.834 -0.142 0.879 -0.199 c 0.929 -0.252 0.992 -0.28 1.067 -0.28 c 1.136 -0.28 1.207 -0.252 1.253 -0.199 c 1.304 -0.142 1.33 -0.078 1.33 0 c 1.33 0.494 l 0 1.837 l 0 2.488 l 0 2.785 0.097 3.043 0.304 3.245 c 0.506 3.45 0.763 3.558 1.067 3.558 c 1.365 3.558 1.617 3.45 1.825 3.245 c 2.033 3.043 2.137 2.785 2.137 2.488 c 2.137 2.256 l 1.33 2.256 l 1.33 2.488 l 1.33 2.568 1.312 2.635 1.26 2.677 c 1.208 2.723 1.148 2.758 1.067 2.758 c 0.992 2.758 0.929 2.723 0.879 2.677 c 0.834 2.635 0.799 2.568 0.799 2.488 c 0.799 2.152 l 2.137 0.816 l 2.137 0 l 2.137 -0.307 2.033 -0.55 1.825 -0.767 c 1.617 -0.972 1.365 -1.071 1.067 -1.071 c 0.763 -1.071 0.506 -0.972 0.304 -0.767 c 0.097 -0.55 0 -0.307 0 0 c f Q q 1 0 0 1 0 -0 cm 0 0 0 0.27 k /GS2 gs 289.131 99.798 23.22 0.124 re f Q q 1 0 0 1 0 -0 cm 0 0 0 0.27 k /GS2 gs 274.25 97.319 13.229 13.23 re f Q q 1 0 0 1 277.633 103.645 cm 0 0 0 0 k /GS2 gs 0 0 m 0 -0.621 0.167 -0.696 0.878 -0.723 c 0.878 -0.949 l -1.953 -0.949 l -1.953 -0.723 l -1.363 -0.696 -1.196 -0.621 -1.196 0 c -1.196 4.077 l -1.196 4.701 -1.363 4.772 -1.936 4.799 c -1.936 5.026 l 3.056 5.026 l 3.09 3.708 l 2.846 3.708 l 2.634 4.375 2.406 4.586 1.237 4.586 c 0.331 4.586 l 0.062 4.586 0 4.527 0 4.28 c 0 2.388 l 0.446 2.388 l 1.376 2.388 1.58 2.557 1.692 3.181 c 1.92 3.181 l 1.92 1.071 l 1.692 1.071 l 1.571 1.776 1.219 1.95 0.446 1.95 c 0 1.95 l 0 0 l f Q q 1 0 0 1 286.341 108.671 cm 0 0 0 0 k /GS2 gs 0 0 m -5.237 0 l -5.359 -1.319 l -5.059 -1.319 l -4.866 -0.671 -4.584 -0.44 -3.954 -0.44 c -3.216 -0.44 l -3.216 -5.026 l -3.216 -5.648 -3.383 -5.722 -4.06 -5.75 c -4.06 -5.975 l -1.177 -5.975 l -1.177 -5.75 l -1.854 -5.722 -2.021 -5.648 -2.021 -5.026 c -2.021 -0.44 l -1.284 -0.44 l -0.653 -0.44 -0.371 -0.671 -0.178 -1.319 c 0.121 -1.319 l 0 0 l f Q q 1 0 0 1 291.713 107.36 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.218 0.095 -0.494 0.143 -0.827 0.143 c -0.985 0.143 -1.082 0.128 -1.118 0.096 c -1.154 0.065 -1.173 -0.006 -1.173 -0.113 c -1.173 -2.129 l -1.036 -2.145 -0.944 -2.155 -0.902 -2.158 c -0.778 -2.163 l -0.425 -2.163 -0.147 -2.113 0.056 -2.011 c 0.425 -1.827 0.608 -1.482 0.608 -0.978 c 0.608 -0.504 0.407 -0.177 0 0 c h -2.597 -4.532 m -2.303 -4.505 -2.121 -4.448 -2.047 -4.359 c -1.977 -4.271 -1.939 -4.07 -1.939 -3.753 c -1.939 -0.416 l -1.939 -0.148 -1.981 0.028 -2.06 0.114 c -2.144 0.2 -2.32 0.253 -2.597 0.276 c -2.597 0.419 l -0.568 0.419 l 0.084 0.419 0.581 0.293 0.927 0.039 c 1.272 -0.215 1.445 -0.549 1.445 -0.964 c 1.445 -1.491 1.253 -1.872 0.871 -2.108 c 0.488 -2.345 0.008 -2.462 -0.568 -2.462 c -0.651 -2.462 -0.757 -2.46 -0.885 -2.452 c -1.015 -2.443 -1.11 -2.44 -1.173 -2.44 c -1.173 -3.84 l -1.173 -4.13 -1.126 -4.313 -1.037 -4.386 c -0.948 -4.461 -0.747 -4.51 -0.435 -4.532 c -0.435 -4.676 l -2.597 -4.676 l -2.597 -4.532 l f Q q 1 0 0 1 293.306 102.81 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.23 0.02 0.383 0.06 0.459 0.122 c 0.534 0.183 0.572 0.314 0.572 0.513 c 0.572 2.213 l 0.572 2.462 0.548 2.638 0.501 2.744 c 0.456 2.852 0.371 2.905 0.247 2.905 c 0.146 2.895 l 0.017 2.871 l 0.017 2.998 l 0.159 3.048 0.308 3.099 0.457 3.152 c 0.606 3.204 0.711 3.24 0.769 3.264 c 0.894 3.312 1.024 3.364 1.155 3.425 c 1.188 3.404 l 1.194 3.319 l 1.194 2.704 l 1.355 2.926 1.509 3.099 1.66 3.225 c 1.809 3.35 1.965 3.413 2.127 3.413 c 2.254 3.413 2.359 3.375 2.439 3.299 c 2.52 3.223 2.56 3.126 2.56 3.011 c 2.56 2.908 2.529 2.822 2.467 2.751 c 2.406 2.681 2.328 2.646 2.235 2.646 c 2.139 2.646 2.043 2.69 1.949 2.778 c 1.851 2.866 1.775 2.909 1.72 2.909 c 1.632 2.909 1.524 2.839 1.397 2.697 c 1.268 2.555 1.205 2.409 1.205 2.26 c 1.205 0.564 l 1.205 0.351 1.256 0.2 1.356 0.118 c 1.456 0.034 1.622 -0.004 1.857 0 c 1.857 -0.127 l 0 -0.127 l 0 0 l f Q q 1 0 0 1 296.618 105.556 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.081 -0.134 -0.138 -0.305 -0.173 -0.51 c 1.409 -0.51 l 1.381 -0.26 1.334 -0.074 1.266 0.049 c 1.144 0.268 0.939 0.379 0.652 0.379 c 0.367 0.379 0.149 0.253 0 0 c h 1.795 0.289 m 2.06 0.044 2.193 -0.302 2.193 -0.751 c -0.188 -0.751 l -0.163 -1.332 -0.032 -1.754 0.206 -2.02 c 0.443 -2.286 0.725 -2.419 1.05 -2.419 c 1.313 -2.419 1.533 -2.35 1.713 -2.211 c 1.892 -2.073 2.058 -1.878 2.212 -1.626 c 2.343 -1.671 l 2.241 -1.99 2.047 -2.286 1.766 -2.559 c 1.484 -2.829 1.14 -2.965 0.73 -2.965 c 0.259 -2.965 -0.104 -2.787 -0.362 -2.432 c -0.619 -2.074 -0.747 -1.664 -0.747 -1.2 c -0.747 -0.696 -0.598 -0.261 -0.3 0.106 c -0.002 0.472 0.387 0.655 0.865 0.655 c 1.22 0.655 1.529 0.533 1.795 0.289 c f Q q 1 0 0 1 299.426 103.87 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.124 0 l 0.183 -0.284 0.261 -0.504 0.355 -0.656 c 0.531 -0.936 0.788 -1.078 1.125 -1.078 c 1.312 -1.078 1.459 -1.026 1.567 -0.922 c 1.675 -0.818 1.731 -0.683 1.731 -0.519 c 1.731 -0.413 1.699 -0.312 1.636 -0.214 c 1.575 -0.117 1.465 -0.022 1.306 0.071 c 0.887 0.31 l 0.579 0.476 0.351 0.641 0.206 0.811 c 0.061 0.977 -0.011 1.175 -0.011 1.403 c -0.011 1.684 0.089 1.914 0.289 2.094 c 0.489 2.275 0.74 2.365 1.042 2.365 c 1.175 2.365 1.321 2.34 1.48 2.289 c 1.638 2.24 1.727 2.215 1.748 2.215 c 1.845 2.234 l 1.898 2.295 l 1.99 2.295 l 2.018 1.246 l 1.904 1.246 l 1.852 1.489 1.785 1.676 1.699 1.812 c 1.544 2.061 1.32 2.186 1.026 2.186 c 0.85 2.186 0.712 2.132 0.614 2.025 c 0.512 1.916 0.461 1.791 0.461 1.646 c 0.461 1.417 0.634 1.211 0.98 1.03 c 1.478 0.764 l 2.011 0.474 2.277 0.137 2.277 -0.25 c 2.277 -0.545 2.167 -0.786 1.947 -0.974 c 1.727 -1.162 1.438 -1.256 1.081 -1.256 c 0.932 -1.256 0.761 -1.231 0.573 -1.181 c 0.381 -1.131 0.269 -1.106 0.235 -1.106 c 0.156 -1.138 l 0.105 -1.216 l 0 -1.216 l 0 0 l f Q q 1 0 0 1 302.307 103.87 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.125 0 l 0.182 -0.284 0.259 -0.504 0.357 -0.656 c 0.532 -0.936 0.788 -1.078 1.124 -1.078 c 1.311 -1.078 1.459 -1.026 1.568 -0.922 c 1.677 -0.818 1.731 -0.683 1.731 -0.519 c 1.731 -0.413 1.699 -0.312 1.636 -0.214 c 1.575 -0.117 1.465 -0.022 1.308 0.071 c 0.886 0.31 l 0.578 0.476 0.353 0.641 0.206 0.811 c 0.063 0.977 -0.012 1.175 -0.012 1.403 c -0.012 1.684 0.09 1.914 0.288 2.094 c 0.489 2.275 0.74 2.365 1.042 2.365 c 1.175 2.365 1.321 2.34 1.48 2.289 c 1.639 2.24 1.728 2.215 1.748 2.215 c 1.846 2.234 l 1.898 2.295 l 1.99 2.295 l 2.019 1.246 l 1.903 1.246 l 1.853 1.489 1.785 1.676 1.7 1.812 c 1.545 2.061 1.321 2.186 1.027 2.186 c 0.851 2.186 0.712 2.132 0.613 2.025 c 0.513 1.916 0.461 1.791 0.461 1.646 c 0.461 1.417 0.635 1.211 0.981 1.03 c 1.477 0.764 l 2.012 0.474 2.279 0.137 2.279 -0.25 c 2.279 -0.545 2.167 -0.786 1.949 -0.974 c 1.727 -1.162 1.438 -1.256 1.083 -1.256 c 0.932 -1.256 0.762 -1.231 0.573 -1.181 c 0.383 -1.131 0.27 -1.106 0.235 -1.106 c 0.158 -1.138 l 0.104 -1.216 l 0 -1.216 l 0 0 l f Q q 1 0 0 1 289.685 97.619 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 -0.174 0.047 -0.193 0.242 -0.201 c 0.242 -0.265 l -0.54 -0.265 l -0.54 -0.201 l -0.375 -0.193 -0.33 -0.174 -0.33 0 c -0.33 1.124 l -0.33 1.299 -0.375 1.32 -0.535 1.327 c -0.535 1.389 l 0.845 1.389 l 0.854 1.023 l 0.786 1.023 l 0.727 1.208 0.664 1.268 0.341 1.268 c 0.093 1.268 l 0.018 1.268 0 1.251 0 1.181 c 0 0.659 l 0.28 0.659 l 0.54 0.659 0.595 0.704 0.625 0.88 c 0.69 0.88 l 0.69 0.296 l 0.625 0.296 l 0.592 0.491 0.496 0.538 0.28 0.538 c 0 0.538 l 0 0 l f Q q 1 0 0 1 291.31 97.619 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 -0.174 0.044 -0.193 0.245 -0.201 c 0.245 -0.265 l -0.572 -0.265 l -0.572 -0.201 l -0.376 -0.193 -0.329 -0.174 -0.329 0 c -0.329 1.124 l -0.329 1.299 -0.376 1.32 -0.572 1.327 c -0.572 1.389 l 0.245 1.389 l 0.245 1.327 l 0.044 1.32 0 1.299 0 1.124 c 0 0 l f Q q 1 0 0 1 293.255 98.697 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 0.163 -0.045 0.229 -0.224 0.25 c -0.224 0.312 l 0.359 0.312 l 0.359 0.25 l 0.18 0.229 0.137 0.163 0.137 0 c 0.137 -1.38 l 0.055 -1.38 l -1.074 -0.079 l -1.074 -1.032 l -1.074 -1.192 -1.031 -1.26 -0.849 -1.278 c -0.849 -1.343 l -1.433 -1.343 l -1.433 -1.278 l -1.252 -1.26 -1.208 -1.192 -1.208 -1.032 c -1.208 0.078 l -1.263 0.177 -1.33 0.224 -1.433 0.25 c -1.433 0.312 l -0.985 0.312 l 0 -0.827 l 0 0 l f Q q 1 0 0 1 295.317 97.354 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 0.065 l -0.123 0.062 -0.154 0.117 -0.217 0.274 c -0.8 1.692 l -0.878 1.692 l -1.482 0.223 l -1.521 0.119 -1.58 0.087 -1.685 0.065 c -1.685 0 l -1.159 0 l -1.159 0.065 l -1.273 0.065 -1.33 0.09 -1.33 0.171 c -1.33 0.239 -1.255 0.419 -1.234 0.471 c -0.636 0.471 l -0.618 0.419 -0.538 0.239 -0.538 0.171 c -0.538 0.09 -0.597 0.065 -0.715 0.065 c -0.715 0 l 0 0 l h -1.183 0.595 m -0.933 1.247 l -0.688 0.595 l -1.183 0.595 l f Q q 1 0 0 1 296.919 98.697 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 0.163 -0.045 0.229 -0.223 0.25 c -0.223 0.312 l 0.357 0.312 l 0.357 0.25 l 0.178 0.229 0.135 0.163 0.135 0 c 0.135 -1.38 l 0.053 -1.38 l -1.074 -0.079 l -1.074 -1.032 l -1.074 -1.192 -1.031 -1.26 -0.85 -1.278 c -0.85 -1.343 l -1.433 -1.343 l -1.433 -1.278 l -1.254 -1.26 -1.21 -1.192 -1.21 -1.032 c -1.21 0.078 l -1.264 0.177 -1.331 0.224 -1.433 0.25 c -1.433 0.312 l -0.983 0.312 l 0 -0.827 l 0 0 l f Q q 1 0 0 1 299.001 97.743 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.171 -0.293 -0.399 -0.427 -0.74 -0.427 c -1.277 -0.427 -1.594 -0.073 -1.594 0.452 c -1.594 0.83 -1.298 1.303 -0.722 1.303 c -0.55 1.303 -0.306 1.208 -0.268 1.208 c -0.221 1.208 -0.205 1.233 -0.166 1.303 c -0.086 1.303 l -0.051 0.753 l -0.124 0.753 l -0.221 1.006 -0.393 1.192 -0.682 1.192 c -1.069 1.192 -1.239 0.772 -1.239 0.452 c -1.239 0.007 -1.048 -0.29 -0.637 -0.29 c -0.318 -0.29 -0.141 -0.052 -0.064 0.051 c 0 0 l f Q q 1 0 0 1 299.801 97.619 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 -0.174 0.046 -0.193 0.244 -0.201 c 0.244 -0.265 l -0.571 -0.265 l -0.571 -0.201 l -0.375 -0.193 -0.329 -0.174 -0.329 0 c -0.329 1.124 l -0.329 1.299 -0.375 1.32 -0.571 1.327 c -0.571 1.389 l 0.244 1.389 l 0.244 1.327 l 0.046 1.32 0 1.299 0 1.124 c 0 0 l f Q q 1 0 0 1 301.903 97.354 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 0.065 l -0.125 0.062 -0.156 0.117 -0.219 0.274 c -0.799 1.692 l -0.88 1.692 l -1.484 0.223 l -1.525 0.119 -1.58 0.087 -1.685 0.065 c -1.685 0 l -1.161 0 l -1.161 0.065 l -1.275 0.065 -1.33 0.09 -1.33 0.171 c -1.33 0.239 -1.256 0.419 -1.238 0.471 c -0.64 0.471 l -0.619 0.419 -0.539 0.239 -0.539 0.171 c -0.539 0.09 -0.601 0.065 -0.715 0.065 c -0.715 0 l 0 0 l h -1.183 0.595 m -0.934 1.247 l -0.69 0.595 l -1.183 0.595 l f Q q 1 0 0 1 302.048 97.354 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 0.065 l 0.156 0.072 0.202 0.091 0.202 0.265 c 0.202 1.389 l 0.202 1.565 0.156 1.586 0 1.593 c 0 1.655 l 0.761 1.655 l 0.761 1.593 l 0.579 1.586 0.533 1.565 0.533 1.389 c 0.533 0.235 l 0.533 0.134 0.564 0.099 0.747 0.099 c 1.042 0.099 1.216 0.153 1.359 0.442 c 1.422 0.442 l 1.31 0 l 0 0 l f Q q 1 0 0 1 304.705 97.418 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.188 0.008 0.234 0.027 0.234 0.201 c 0.234 1.468 l 0.029 1.468 l -0.161 1.468 -0.237 1.39 -0.291 1.166 c -0.363 1.166 l -0.324 1.59 l 1.124 1.59 l 1.161 1.166 l 1.089 1.166 l 1.036 1.39 0.961 1.468 0.768 1.468 c 0.564 1.468 l 0.564 0.201 l 0.564 0.027 0.611 0.008 0.798 0 c 0.798 -0.065 l 0 -0.065 l 0 0 l f Q q 1 0 0 1 306.609 97.619 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 -0.174 0.047 -0.193 0.243 -0.201 c 0.243 -0.265 l -0.573 -0.265 l -0.573 -0.201 l -0.376 -0.193 -0.329 -0.174 -0.329 0 c -0.329 1.124 l -0.329 1.299 -0.376 1.32 -0.573 1.327 c -0.573 1.389 l 0.243 1.389 l 0.243 1.327 l 0.047 1.32 0 1.299 0 1.124 c 0 0 l f Q q 1 0 0 1 308.584 99.008 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.568 0 l 0.568 -0.062 l 0.412 -0.069 0.365 -0.09 0.365 -0.265 c 0.365 -1.389 l 0.365 -1.563 0.412 -1.582 0.568 -1.59 c 0.568 -1.655 l -0.174 -1.655 l -0.174 -1.59 l -0.012 -1.582 0.034 -1.563 0.034 -1.389 c 0.034 -0.229 l 0.029 -0.229 l -0.52 -1.673 l -0.597 -1.673 l -1.135 -0.229 l -1.142 -0.229 l -1.142 -1.344 l -1.142 -1.503 -1.098 -1.572 -0.916 -1.59 c -0.916 -1.655 l -1.498 -1.655 l -1.498 -1.59 l -1.321 -1.572 -1.277 -1.503 -1.277 -1.344 c -1.277 -0.223 l -1.277 -0.107 -1.324 -0.062 -1.498 -0.062 c -1.498 0 l -0.9 0 l -0.46 -1.149 l 0 0 l f Q q 1 0 0 1 309.387 97.354 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 0.065 l 0.158 0.072 0.203 0.091 0.203 0.265 c 0.203 1.389 l 0.203 1.565 0.158 1.586 0 1.593 c 0 1.655 l 1.38 1.655 l 1.39 1.288 l 1.321 1.288 l 1.261 1.473 1.2 1.533 0.877 1.533 c 0.626 1.533 l 0.552 1.533 0.535 1.516 0.535 1.446 c 0.535 0.924 l 0.815 0.924 l 1.073 0.924 1.127 0.969 1.159 1.145 c 1.224 1.145 l 1.224 0.561 l 1.159 0.561 l 1.124 0.756 1.03 0.804 0.815 0.804 c 0.535 0.804 l 0.535 0.235 l 0.535 0.134 0.563 0.099 0.856 0.099 c 1.151 0.099 1.325 0.153 1.468 0.442 c 1.53 0.442 l 1.419 0 l 0 0 l f Q q 1 0 0 1 311.131 97.875 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.063 0 l 0.132 -0.217 0.341 -0.446 0.586 -0.446 c 0.793 -0.446 0.869 -0.298 0.869 -0.17 c 0.869 0.208 0.014 0.277 0.014 0.748 c 0.014 0.977 0.236 1.171 0.487 1.171 c 0.735 1.171 0.823 1.086 0.933 1.086 c 1.02 1.171 l 1.082 1.171 l 1.082 0.649 l 1.02 0.649 l 0.951 0.883 0.781 1.061 0.56 1.061 c 0.374 1.061 0.304 0.94 0.304 0.827 c 0.304 0.492 1.16 0.481 1.16 -0.099 c 1.16 -0.357 0.946 -0.558 0.651 -0.558 c 0.359 -0.558 0.282 -0.456 0.171 -0.456 c 0.087 -0.539 l 0 -0.539 l 0 0 l f Q q 1 0 0 1 0 -0 cm 0 0 0 0.27 k /GS2 gs 324.228 103.902 2.15 6.976 re f Q q 1 0 0 1 329.632 105.563 cm 0 0 0 0.27 k /GS2 gs 0 0 m 1.26 0 l 1.709 0 2.101 0.128 2.101 0.665 c 2.101 1.075 1.856 1.299 1.349 1.299 c 0 1.299 l 0 0 l h 0 2.6 m 1.134 2.6 l 1.585 2.6 1.866 2.727 1.866 3.175 c 1.866 3.527 1.573 3.655 1.134 3.655 c 0 3.655 l 0 2.6 l h -2.15 5.315 m 1.67 5.315 l 3.507 5.315 3.898 4.28 3.898 3.567 c 3.898 2.864 3.556 2.481 3.038 2.198 c 3.664 1.983 4.25 1.486 4.25 0.459 c 4.25 -0.938 3.038 -1.661 1.807 -1.661 c -2.15 -1.661 l -2.15 5.315 l f Q q 1 0 0 1 334.714 110.878 cm 0 0 0 0.27 k /GS2 gs 0 0 m 3.057 0 l 4.053 -4.104 l 4.073 -4.104 l 5.069 0 l 8.127 0 l 8.127 -6.976 l 6.095 -6.976 l 6.095 -2.501 l 6.076 -2.501 l 4.864 -6.976 l 3.262 -6.976 l 2.051 -2.501 l 2.031 -2.501 l 2.031 -6.976 l 0 -6.976 l 0 0 l f Q q 1 0 0 1 325.831 99.338 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.564 0 l 0.941 0 1.34 0.027 1.34 0.51 c 1.34 0.946 1.009 0.973 0.651 0.973 c 0 0.973 l 0 0 l h -1.46 2.199 m 0.982 2.199 l 2.272 2.199 2.723 1.248 2.723 0.564 c 2.723 -0.596 1.951 -1.139 0.863 -1.139 c 0 -1.139 l 0 -2.588 l -1.46 -2.588 l -1.46 2.199 l f Q q 1 0 0 1 329.025 100.231 cm 0 0 0 0.27 k /GS2 gs 0 0 m 1.259 0 l 1.259 -0.556 l 1.275 -0.556 l 1.486 -0.142 1.764 0.086 2.243 0.086 c 2.375 0.086 2.503 0.066 2.63 0.032 c 2.63 -1.141 l 2.495 -1.093 2.375 -1.053 2.109 -1.053 c 1.592 -1.053 1.314 -1.362 1.314 -2.106 c 1.314 -3.481 l 0 -3.481 l 0 0 l f Q q 1 0 0 1 334.223 98.882 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 0.321 -0.238 0.584 -0.576 0.584 c -0.968 0.584 -1.194 0.376 -1.253 0 c 0 0 l h -1.262 -0.69 m -1.227 -1.086 -1.001 -1.369 -0.589 -1.369 c -0.379 -1.369 -0.146 -1.287 -0.038 -1.12 c 1.19 -1.12 l 0.925 -1.871 0.199 -2.219 -0.584 -2.219 c -1.684 -2.219 -2.516 -1.563 -2.516 -0.402 c -2.516 0.61 -1.785 1.435 -0.695 1.435 c 0.671 1.435 1.263 0.664 1.263 -0.69 c -1.262 -0.69 l f Q q 1 0 0 1 338.03 99.217 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.008 0.114 -0.067 0.201 -0.154 0.262 c -0.232 0.328 -0.339 0.362 -0.444 0.362 c -0.631 0.362 -0.843 0.322 -0.843 0.094 c -0.843 -0.007 -0.763 -0.053 -0.692 -0.086 c -0.472 -0.181 0.025 -0.208 0.463 -0.355 c 0.902 -0.495 1.287 -0.758 1.287 -1.327 c 1.287 -2.294 0.371 -2.554 -0.466 -2.554 c -1.275 -2.554 -2.165 -2.227 -2.186 -1.327 c -0.93 -1.327 l -0.923 -1.448 -0.871 -1.549 -0.772 -1.636 c -0.704 -1.696 -0.577 -1.736 -0.419 -1.736 c -0.248 -1.736 0.025 -1.67 0.025 -1.467 c 0.025 -1.267 -0.088 -1.207 -0.697 -1.099 c -1.701 -0.925 -2.106 -0.602 -2.106 -0.007 c -2.106 0.872 -1.17 1.099 -0.478 1.099 c 0.266 1.099 1.16 0.893 1.194 0 c 0 0 l f Q q 1 0 0 1 341.84 99.217 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.007 0.114 -0.067 0.201 -0.154 0.262 c -0.233 0.328 -0.339 0.362 -0.444 0.362 c -0.631 0.362 -0.844 0.322 -0.844 0.094 c -0.844 -0.007 -0.764 -0.053 -0.69 -0.086 c -0.471 -0.181 0.027 -0.208 0.464 -0.355 c 0.904 -0.495 1.289 -0.758 1.289 -1.327 c 1.289 -2.294 0.372 -2.554 -0.465 -2.554 c -1.274 -2.554 -2.167 -2.227 -2.183 -1.327 c -0.93 -1.327 l -0.923 -1.448 -0.872 -1.549 -0.769 -1.636 c -0.704 -1.696 -0.579 -1.736 -0.418 -1.736 c -0.247 -1.736 0.027 -1.67 0.027 -1.467 c 0.027 -1.267 -0.086 -1.207 -0.698 -1.099 c -1.702 -0.925 -2.107 -0.602 -2.107 -0.007 c -2.107 0.872 -1.169 1.099 -0.478 1.099 c 0.265 1.099 1.161 0.893 1.194 0 c 0 0 l f Q q 1 0 0 1 345.152 97.017 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.257 0.672 l 0.52 0.672 l 0.52 -0.275 l 0.348 -0.275 l 0.348 0.466 l 0.342 0.466 l 0.062 -0.275 l -0.067 -0.275 l -0.35 0.466 l -0.355 0.466 l -0.355 -0.275 l -0.529 -0.275 l -0.529 0.672 l -0.261 0.672 l 0 0 l h -0.722 0.522 m -1.011 0.522 l -1.011 -0.275 l -1.194 -0.275 l -1.194 0.522 l -1.483 0.522 l -1.483 0.672 l -0.722 0.672 l -0.722 0.522 l f Q q 1 0 0 1 430.109 104.05 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 1.478 1.119 2.578 2.622 2.578 c 4.13 2.578 5.251 1.478 5.251 0 c 5.251 -1.48 4.13 -2.576 2.622 -2.576 c 1.119 -2.576 0 -1.48 0 0 c h -1.005 0 m -1.005 -1.83 0.392 -3.471 2.596 -3.471 c 4.879 -3.471 6.249 -1.819 6.249 0 c 6.249 1.87 4.841 3.457 2.622 3.457 c 0.433 3.457 -1.005 1.87 -1.005 0 c f Q q 1 0 0 1 437.07 104.739 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.924 0.153 1.196 0.625 1.196 1.508 c 1.196 2.688 l 0 2.688 l 0 1.396 l 0.632 1.396 l 0.666 0.789 0.422 0.517 0 0.457 c 0 0 l f Q q 1 0 0 1 440.255 106.585 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.623 0 l 1.562 0 1.936 -0.38 1.943 -1.015 c 1.953 -1.572 1.66 -2.116 0.623 -2.116 c 0 -2.116 l 0 0 l h -0.974 0.842 m -0.974 -5.91 l 0 -5.91 l 0 -2.983 l 0.407 -2.983 l 0.892 -2.983 1.299 -3.147 2.194 -4.529 c 3.081 -5.91 l 4.241 -5.91 l 3.773 -5.267 3.604 -5.039 3.315 -4.57 c 2.802 -3.729 2.432 -3.121 1.813 -2.714 c 2.542 -2.412 2.948 -1.846 2.948 -1.057 c 2.948 0.107 2.099 0.842 0.721 0.842 c -0.974 0.842 l f Q q 1 0 0 1 448.782 107.427 cm 0 0 0 0.27 k /GS2 gs 0 0 m -3.826 0 l -3.826 -6.752 l 0.086 -6.752 l 0.086 -5.881 l -2.859 -5.881 l -2.859 -3.783 l -0.095 -3.783 l -0.095 -2.917 l -2.859 -2.917 l -2.859 -0.876 l 0 -0.876 l 0 0 l f Q q 1 0 0 1 0 -0 cm 0 0 0 0.27 k /GS2 gs 449.787 100.676 0.975 6.752 re f Q q 1 0 0 1 452.73 107.427 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.974 0 l -0.974 -6.752 l 3.037 -6.752 l 3.037 -5.881 l 0 -5.881 l 0 0 l f Q q 1 0 0 1 457.381 107.427 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.979 0 l -0.979 -6.752 l 3.036 -6.752 l 3.036 -5.881 l 0 -5.881 l 0 0 l f Q q 1 0 0 1 462.301 105.136 cm 0 0 0 0.27 k /GS2 gs 0 0 m -1.802 2.329 l -2.983 2.329 l -0.471 -0.841 l -0.471 -4.408 l 0.487 -4.408 l 0.487 -0.857 l 2.998 2.329 l 1.832 2.329 l 0 0 l f Q q 1 0 0 1 465.72 107.062 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.078 0 l 0.149 0 0.201 -0.031 0.201 -0.091 c 0.201 -0.152 0.149 -0.163 0.066 -0.163 c 0 -0.163 l 0 0 l h -0.164 0.106 m -0.164 -0.537 l 0 -0.537 l 0 -0.279 l 0.052 -0.286 l 0.078 -0.309 0.136 -0.39 0.201 -0.537 c 0.391 -0.537 l 0.338 -0.434 l 0.296 -0.339 0.258 -0.286 0.188 -0.251 c 0.244 -0.246 0.365 -0.205 0.365 -0.07 c 0.365 0.053 0.258 0.106 0.136 0.106 c -0.164 0.106 l h 0.122 0.27 m 0.38 0.27 0.597 0.053 0.597 -0.217 c 0.597 -0.476 0.38 -0.708 0.122 -0.708 c -0.164 -0.708 -0.366 -0.476 -0.366 -0.217 c -0.366 0.053 -0.148 0.27 0.122 0.27 c h 0.122 0.392 m -0.219 0.392 -0.488 0.122 -0.488 -0.217 c -0.488 -0.544 -0.219 -0.815 0.122 -0.815 c 0.448 -0.815 0.719 -0.544 0.719 -0.217 c 0.719 0.122 0.448 0.392 0.122 0.392 c f Q q 1 0 0 1 147.064 110.369 cm 0 0 0 0.27 k /GS2 gs 0 0 m -4.108 0 l -2.072 3.572 l 0 0 l f Q q 1 0 0 1 144.501 109.628 cm 0 0 0 0.27 k /GS2 gs 0 0 m -2.052 -3.558 l -4.128 -0.011 l 0 0 l f Q q 1 0 0 1 149.446 109.628 cm 0 0 0 0.27 k /GS2 gs 0 0 m -2.053 -3.558 l -4.129 -0.011 l 0 0 l f Q q 1 0 0 1 138.377 101.179 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.187 -0.431 l 0.227 -0.535 0.311 -0.711 0.311 -0.825 c 0.311 -1.007 0.181 -1.049 -0.042 -1.059 c -0.042 -1.152 l 1.313 -1.152 l 1.313 -1.059 l 0.928 -1.043 0.829 -0.752 0.701 -0.441 c -0.467 2.36 l -0.561 2.36 l -1.795 -0.535 l -1.951 -0.898 -2.059 -1.033 -2.329 -1.059 c -2.329 -1.152 l -1.25 -1.152 l -1.25 -1.059 l -1.442 -1.043 -1.65 -1.023 -1.65 -0.83 c -1.65 -0.732 -1.577 -0.571 -1.536 -0.483 c -1.328 0 l 0 0 l h -0.067 0.186 m -1.25 0.186 l -0.654 1.572 l -0.067 0.186 l f Q q 1 0 0 1 141.547 102.222 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.135 0.139 -0.328 0.197 -0.514 0.197 c -1.188 0.197 -1.63 -0.503 -1.63 -1.121 c -1.63 -1.665 -1.297 -2.267 -0.69 -2.267 c -0.4 -2.267 -0.197 -2.137 0 -1.935 c 0 -2.267 l 0.113 -2.267 l 0.814 -1.982 l 0.779 -1.894 l 0.726 -1.914 0.659 -1.935 0.602 -1.935 c 0.529 -1.935 0.42 -1.935 0.42 -1.583 c 0.42 1.406 l 0.305 1.406 l -0.395 1.121 l -0.358 1.033 l -0.307 1.053 -0.239 1.074 -0.182 1.074 c -0.108 1.074 0 1.074 0 0.721 c 0 0 l h 0 -1.753 m -0.119 -1.883 -0.265 -1.987 -0.447 -1.987 c -0.841 -1.987 -1.157 -1.572 -1.157 -0.94 c -1.157 -0.131 -0.726 0.041 -0.539 0.041 c -0.187 0.041 0 -0.312 0 -0.622 c 0 -1.753 l f Q q 1 0 0 1 144.14 102.222 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.134 0.139 -0.327 0.197 -0.513 0.197 c -1.188 0.197 -1.629 -0.503 -1.629 -1.121 c -1.629 -1.665 -1.297 -2.267 -0.689 -2.267 c -0.399 -2.267 -0.197 -2.137 0 -1.935 c 0 -2.267 l 0.115 -2.267 l 0.815 -1.982 l 0.779 -1.894 l 0.727 -1.914 0.659 -1.935 0.602 -1.935 c 0.529 -1.935 0.421 -1.935 0.421 -1.583 c 0.421 1.406 l 0.307 1.406 l -0.393 1.121 l -0.358 1.033 l -0.306 1.053 -0.238 1.074 -0.181 1.074 c -0.108 1.074 0 1.074 0 0.721 c 0 0 l h 0 -1.753 m -0.119 -1.883 -0.265 -1.987 -0.446 -1.987 c -0.839 -1.987 -1.157 -1.572 -1.157 -0.94 c -1.157 -0.131 -0.726 0.041 -0.54 0.041 c -0.186 0.041 0 -0.312 0 -0.622 c 0 -1.753 l f Q q 1 0 0 1 145.671 103.628 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.139 0 0.255 -0.113 0.255 -0.255 c 0.255 -0.395 0.139 -0.509 0 -0.509 c -0.14 -0.509 -0.254 -0.395 -0.254 -0.255 c -0.254 -0.113 -0.14 0 0 0 c h 0.212 -3.159 m 0.212 -3.465 0.333 -3.503 0.57 -3.508 c 0.57 -3.601 l -0.566 -3.601 l -0.566 -3.508 l -0.328 -3.503 -0.208 -3.465 -0.208 -3.159 c -0.208 -1.894 l -0.208 -1.541 -0.317 -1.541 -0.39 -1.541 c -0.446 -1.541 -0.514 -1.562 -0.566 -1.582 c -0.602 -1.495 l 0.098 -1.209 l 0.212 -1.209 l 0.212 -3.159 l f Q q 1 0 0 1 148.048 101.625 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.093 0 l -0.172 0.346 -0.312 0.637 -0.716 0.637 c -0.902 0.637 -1.111 0.534 -1.111 0.322 c -1.111 -0.245 0.171 -0.172 0.171 -0.976 c 0.171 -1.402 -0.229 -1.671 -0.622 -1.671 c -0.773 -1.671 -0.939 -1.634 -1.09 -1.593 c -1.121 -1.583 -1.184 -1.567 -1.219 -1.567 c -1.266 -1.567 -1.302 -1.593 -1.313 -1.634 c -1.406 -1.634 l -1.406 -0.805 l -1.313 -0.805 l -1.266 -1.168 -0.991 -1.515 -0.602 -1.515 c -0.39 -1.515 -0.203 -1.391 -0.203 -1.162 c -0.203 -0.555 -1.411 -0.639 -1.411 0.098 c -1.411 0.524 -1.105 0.793 -0.691 0.793 c -0.582 0.793 -0.498 0.768 -0.395 0.735 c -0.333 0.72 -0.265 0.695 -0.203 0.695 c -0.135 0.695 -0.115 0.735 -0.093 0.793 c 0 0.793 l 0 0 l f Q q 1 0 0 1 149.691 102.419 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.678 0 -1.124 -0.618 -1.124 -1.256 c -1.124 -1.878 -0.694 -2.464 -0.035 -2.464 c 0.784 -2.464 1.116 -1.712 1.116 -1.178 c 1.116 -0.545 0.649 0 0 0 c h -0.088 -0.177 m 0.488 -0.177 0.644 -0.945 0.644 -1.396 c 0.644 -1.759 0.556 -2.288 0.084 -2.288 c -0.493 -2.288 -0.654 -1.479 -0.654 -1.033 c -0.654 -0.368 -0.342 -0.177 -0.088 -0.177 c f Q q 1 0 0 1 151.824 101.932 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.291 0.32 0.493 0.487 0.789 0.487 c 1.208 0.487 1.375 0.092 1.375 -0.297 c 1.375 -1.463 l 1.375 -1.769 1.494 -1.807 1.733 -1.812 c 1.733 -1.905 l 0.596 -1.905 l 0.596 -1.812 l 0.835 -1.807 0.955 -1.769 0.955 -1.463 c 0.955 -0.39 l 0.955 0.123 0.741 0.176 0.585 0.176 c 0.348 0.176 0.172 0.02 0 -0.156 c 0 -1.463 l 0 -1.769 0.119 -1.807 0.358 -1.812 c 0.358 -1.905 l -0.779 -1.905 l -0.779 -1.812 l -0.539 -1.807 -0.42 -1.769 -0.42 -1.463 c -0.42 -0.198 l -0.42 0.155 -0.529 0.155 -0.602 0.155 c -0.659 0.155 -0.727 0.134 -0.779 0.113 c -0.815 0.201 l -0.115 0.487 l 0 0.487 l 0 0 l f Q q 1 0 0 1 141.326 97.085 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.041 0.119 0.124 0.348 0.124 0.467 c 0.124 0.665 -0.022 0.711 -0.254 0.711 c -0.254 0.804 l 0.772 0.804 l 0.772 0.711 l 0.431 0.711 0.358 0.426 0.265 0.151 c -0.722 -2.708 l -0.82 -2.708 l -1.598 -0.529 l -1.608 -0.529 l -2.371 -2.708 l -2.475 -2.708 l -3.534 0.254 l -3.648 0.582 -3.699 0.711 -4.01 0.711 c -4.01 0.804 l -2.739 0.804 l -2.739 0.711 l -2.927 0.711 -3.077 0.67 -3.077 0.494 c -3.077 0.41 -3.026 0.275 -2.998 0.197 c -2.298 -1.8 l -2.288 -1.8 l -1.717 -0.196 l -1.857 0.188 l -1.967 0.477 -2.044 0.711 -2.386 0.711 c -2.386 0.804 l -1.043 0.804 l -1.043 0.711 l -1.261 0.711 -1.411 0.696 -1.411 0.477 c -1.411 0.328 -1.328 0.114 -1.277 -0.025 c -0.644 -1.8 l -0.633 -1.8 l 0 0 l f Q q 1 0 0 1 143.874 95.897 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 0.56 -0.353 0.949 -0.888 0.949 c -1.624 0.949 -1.961 0.347 -1.961 -0.322 c -1.961 -1.033 -1.515 -1.516 -0.95 -1.516 c -0.426 -1.516 -0.089 -1.075 0 -0.597 c -0.078 -0.546 l -0.198 -0.882 -0.4 -1.1 -0.773 -1.1 c -1.339 -1.1 -1.609 -0.519 -1.609 0 c 0 0 l h -1.604 0.155 m -1.582 0.456 -1.365 0.762 -1.059 0.762 c -0.691 0.762 -0.53 0.476 -0.53 0.155 c -1.604 0.155 l f Q q 1 0 0 1 145.715 96.052 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.093 0 l -0.17 0.348 -0.31 0.639 -0.716 0.639 c -0.903 0.639 -1.11 0.534 -1.11 0.322 c -1.11 -0.243 0.172 -0.171 0.172 -0.975 c 0.172 -1.401 -0.227 -1.671 -0.623 -1.671 c -0.773 -1.671 -0.938 -1.634 -1.089 -1.593 c -1.12 -1.582 -1.182 -1.566 -1.219 -1.566 c -1.266 -1.566 -1.301 -1.593 -1.312 -1.634 c -1.406 -1.634 l -1.406 -0.804 l -1.312 -0.804 l -1.266 -1.167 -0.991 -1.515 -0.601 -1.515 c -0.388 -1.515 -0.202 -1.39 -0.202 -1.162 c -0.202 -0.555 -1.411 -0.638 -1.411 0.099 c -1.411 0.525 -1.105 0.794 -0.69 0.794 c -0.581 0.794 -0.497 0.768 -0.394 0.738 c -0.331 0.722 -0.265 0.696 -0.202 0.696 c -0.135 0.696 -0.114 0.738 -0.093 0.794 c 0 0.794 l 0 0 l f Q q 1 0 0 1 147.012 94.895 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 -0.305 0.12 -0.342 0.359 -0.347 c 0.359 -0.44 l -0.778 -0.44 l -0.778 -0.347 l -0.539 -0.342 -0.42 -0.305 -0.42 0 c -0.42 2.475 l -0.42 2.828 -0.528 2.828 -0.602 2.828 c -0.658 2.828 -0.726 2.808 -0.778 2.787 c -0.813 2.875 l -0.113 3.16 l 0 3.16 l 0 0 l f Q q 1 0 0 1 149.638 95.897 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 0.56 -0.353 0.949 -0.887 0.949 c -1.624 0.949 -1.961 0.347 -1.961 -0.322 c -1.961 -1.033 -1.515 -1.516 -0.95 -1.516 c -0.426 -1.516 -0.088 -1.075 0 -0.597 c -0.078 -0.546 l -0.197 -0.882 -0.4 -1.1 -0.773 -1.1 c -1.339 -1.1 -1.608 -0.519 -1.608 0 c 0 0 l h -1.603 0.155 m -1.582 0.456 -1.365 0.762 -1.059 0.762 c -0.691 0.762 -0.53 0.476 -0.53 0.155 c -1.603 0.155 l f Q q 1 0 0 1 150.193 96.239 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.088 0.192 -0.208 0.414 -0.436 0.44 c -0.436 0.535 l 0.643 0.535 l 0.643 0.44 l 0.482 0.44 0.363 0.42 0.363 0.253 c 0.363 0.165 0.435 0.021 0.472 -0.062 c 1.012 -1.173 l 1.505 0.046 l 1.541 0.14 1.572 0.213 1.572 0.311 c 1.572 0.43 1.479 0.44 1.339 0.44 c 1.339 0.535 l 2.097 0.535 l 2.097 0.44 l 1.93 0.44 1.842 0.311 1.785 0.17 c 0.794 -2.257 l 0.592 -2.756 0.212 -2.906 0.031 -2.906 c -0.14 -2.906 -0.317 -2.801 -0.317 -2.615 c -0.317 -2.459 -0.192 -2.387 -0.053 -2.387 c 0.119 -2.387 0.202 -2.48 0.291 -2.48 c 0.497 -2.48 0.607 -2.189 0.669 -2.04 c 0.809 -1.691 l 0 0 l f Q q 1 0 0 1 300.379 79.974 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.295 0.286 -0.691 0.462 -1.151 0.462 c -1.476 0.462 -1.963 0.271 -2.033 -0.12 c -2.084 -0.544 -1.624 -0.703 -1.311 -0.797 c -0.878 -0.946 l 0.069 -1.232 0.747 -1.734 0.572 -2.887 c 0.461 -3.58 0.178 -4.312 -0.459 -4.788 c -1.096 -5.257 -1.871 -5.449 -2.574 -5.449 c -3.47 -5.449 -4.297 -5.152 -4.935 -4.641 c -3.916 -3.159 l -3.522 -3.563 -3.035 -3.888 -2.398 -3.888 c -1.963 -3.888 -1.476 -3.674 -1.395 -3.186 c -1.311 -2.654 -2.006 -2.488 -2.385 -2.372 c -3.481 -2.038 -4.2 -1.742 -3.982 -0.364 c -3.757 1.067 -2.574 2.007 -1.163 2.007 c -0.446 2.007 0.382 1.783 0.965 1.432 c 0 0 l f Q q 1 0 0 1 309.788 81.791 cm 0 0 0 0.27 k /GS2 gs 0 0 m 1.821 0 l 2.645 -3.783 l 4.774 0 l 6.604 0 l 6.565 -7.091 l 4.709 -7.091 l 4.842 -3.009 l 4.831 -3.009 l 2.481 -7.091 l 1.735 -7.091 l 0.763 -3.009 l 0.747 -3.009 l -0.498 -7.091 l -2.329 -7.091 l 0 0 l f Q q 1 0 0 1 321.847 79.974 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.286 0.286 -0.692 0.462 -1.143 0.462 c -1.481 0.462 -1.968 0.271 -2.021 -0.12 c -2.105 -0.544 -1.631 -0.703 -1.319 -0.797 c -0.869 -0.946 l 0.064 -1.232 0.757 -1.734 0.566 -2.887 c 0.46 -3.58 0.174 -4.312 -0.465 -4.788 c -1.1 -5.257 -1.873 -5.449 -2.592 -5.449 c -3.472 -5.449 -4.302 -5.152 -4.953 -4.641 c -3.92 -3.159 l -3.53 -3.563 -3.025 -3.888 -2.402 -3.888 c -1.968 -3.888 -1.481 -3.674 -1.398 -3.186 c -1.319 -2.654 -2.01 -2.488 -2.389 -2.372 c -3.487 -2.038 -4.205 -1.742 -3.991 -0.364 c -3.757 1.067 -2.592 2.007 -1.169 2.007 c -0.451 2.007 0.39 1.783 0.959 1.432 c 0 0 l f Q q 1 0 0 1 302.633 74.809 cm 0 0 0 0.27 k /GS2 gs 0 0 m -2.59 0 l 4.568 9.269 l 4.568 0 l 2.51 0 l 2.51 3.606 l 0 0 l f Q q 1 0 0 1 137.616 76.026 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 -1.795 -0.969 -3.361 -2.447 -4.152 c -2.492 -4.229 l -2.417 -4.294 l -1.911 -4.266 -1.475 -4.152 -1.044 -3.942 c 0.521 -3.154 1.598 -1.527 1.598 0.351 c 1.598 2.588 -0.222 4.393 -2.447 4.393 c -2.638 4.393 -2.773 4.393 -2.97 4.362 c -3.029 4.259 l -2.983 4.2 l -1.225 3.625 0 1.968 0 0 c -0.27 0 l -0.27 1.946 -1.537 3.601 -3.312 4.156 c -3.475 4.213 -3.445 4.407 -3.418 4.544 c -3.383 4.736 -3.312 4.962 -3.029 5.003 c -1.819 5.184 -0.67 5.539 0.388 6.054 c 2.075 4.886 3.175 2.931 3.175 0.709 c 3.175 -2.884 0.253 -5.809 -3.343 -5.809 c -6.933 -5.809 -9.858 -2.884 -9.858 0.709 c -9.858 2.188 -9.367 3.541 -8.546 4.637 c -7.399 5.003 -6.178 5.199 -4.935 5.155 c -4.373 5.138 -4.131 4.991 -4.193 4.709 c -4.251 4.42 -4.355 4.296 -4.699 4.259 c -4.892 4.246 -5.158 4.221 -5.326 4.2 c -6.963 3.931 -8.219 2.305 -8.219 0.351 c -8.219 -1.691 -6.952 -3.436 -5.158 -4.14 c -4.802 -4.266 -4.413 -4.347 -4.012 -4.347 c -3.312 -4.347 -2.668 -4.122 -2.148 -3.729 c -0.997 -2.884 -0.27 -1.527 -0.27 0 c 0 0 l f Q q 1 0 0 1 134.273 69.346 cm 0 0 0 0.27 k /GS2 gs 0 0 m 4.075 0 7.399 3.302 7.399 7.388 c 7.399 11.461 4.075 14.774 0 14.774 c -4.085 14.774 -7.38 11.461 -7.38 7.388 c -7.38 3.302 -4.085 0 0 0 c 0 -0.478 l -4.355 -0.478 -7.873 3.043 -7.873 7.388 c -7.873 11.743 -4.355 15.251 0 15.251 c 4.341 15.251 7.877 11.743 7.877 7.388 c 7.877 3.043 4.341 -0.478 0 -0.478 c 0 0 l f Q q 1 0 0 1 130.829 82.27 cm 0 0 0 0.27 k /GS2 gs 0 0 m 1.03 -0.285 2.118 -0.432 3.252 -0.42 c 4.427 -0.39 5.562 -0.202 6.622 0.161 c 5.685 0.684 4.597 0.984 3.444 0.984 c 2.181 0.984 1 0.627 0 0 c f Q q 1 0 0 1 143.282 77.585 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.626 0 l 0.626 1.326 l 0.973 1.326 l 1.673 1.326 2.033 1.714 2.033 2.358 c 2.033 2.998 1.673 3.394 0.973 3.394 c 0 3.394 l 0 0 l h 0.626 1.791 m 0.626 2.91 l 0.851 2.91 l 1.241 2.91 1.416 2.729 1.416 2.358 c 1.416 1.982 1.241 1.791 0.851 1.791 c 0.626 1.791 l f Q q 1 0 0 1 146.938 79.048 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 0.445 -0.134 0.672 -0.418 0.672 c -0.734 0.672 -0.866 0.328 -0.866 0 c 0 0 l h 0.461 -1.342 m 0.345 -1.401 0.077 -1.5 -0.285 -1.5 c -1.089 -1.5 -1.449 -0.923 -1.449 -0.255 c -1.449 0.492 -1.042 1.074 -0.418 1.074 c 0.134 1.074 0.581 0.76 0.581 -0.262 c 0.581 -0.376 l -0.866 -0.376 l -0.866 -0.797 -0.686 -1.053 -0.226 -1.053 c 0.148 -1.053 0.315 -0.957 0.432 -0.865 c 0.461 -1.342 l f Q q 1 0 0 1 148.144 79.457 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.12 0.1 0.39 0.232 0.687 0.232 c 1.031 0.232 1.153 0.008 1.153 -0.24 c 1.153 -0.336 l 1.031 -0.336 l 0.274 -0.336 -0.28 -0.5 -0.28 -1.187 c -0.28 -1.646 0.077 -1.909 0.464 -1.909 c 0.82 -1.909 1.017 -1.74 1.165 -1.531 c 1.165 -1.646 1.181 -1.78 1.193 -1.872 c 1.746 -1.872 l 1.734 -1.78 1.716 -1.605 1.716 -1.425 c 1.716 -0.35 l 1.716 0.291 1.536 0.665 0.763 0.665 c 0.373 0.665 0.14 0.56 -0.029 0.486 c 0 0 l h 1.153 -0.789 m 1.153 -1.236 1.017 -1.512 0.657 -1.512 c 0.435 -1.512 0.274 -1.35 0.274 -1.12 c 0.274 -0.756 0.583 -0.651 1.105 -0.651 c 1.153 -0.651 l 1.153 -0.789 l f Q q 1 0 0 1 152.115 77.647 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.136 -0.046 -0.346 -0.1 -0.583 -0.1 c -1.418 -0.1 -1.759 0.478 -1.759 1.194 c -1.759 1.893 -1.404 2.474 -0.554 2.474 c -0.358 2.474 -0.136 2.415 -0.031 2.379 c -0.061 1.893 l -0.181 1.952 -0.328 2.026 -0.493 2.026 c -0.939 2.026 -1.149 1.712 -1.149 1.176 c -1.149 0.715 -0.929 0.357 -0.462 0.357 c -0.317 0.357 -0.119 0.414 -0.031 0.478 c 0 0 l f Q q 1 0 0 1 152.486 81.225 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.601 0 l 0.601 -1.464 l 0.613 -1.464 l 0.717 -1.297 0.867 -1.104 1.24 -1.104 c 1.804 -1.104 1.969 -1.523 1.969 -2.029 c 1.969 -3.64 l 1.373 -3.64 l 1.373 -2.145 l 1.373 -1.76 1.269 -1.598 1.03 -1.598 c 0.717 -1.598 0.601 -1.866 0.601 -2.183 c 0.601 -3.64 l 0 -3.64 l 0 0 l f Q q 1 0 0 1 155.006 76.543 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.612 0 l 0.612 1.391 l 0.703 1.205 0.895 1.005 1.269 1.005 c 1.805 1.005 2.118 1.481 2.118 2.298 c 2.118 2.981 1.868 3.579 1.251 3.579 c 0.851 3.579 0.67 3.369 0.582 3.146 c 0.57 3.146 l 0.57 3.325 0.554 3.457 0.554 3.532 c -0.013 3.532 l 0 3.453 0 3.3 0 3.113 c 0 0 l h 0.612 2.281 m 0.612 2.756 0.73 3.139 1.088 3.139 c 1.432 3.139 1.524 2.844 1.524 2.263 c 1.524 1.774 1.403 1.451 1.076 1.451 c 0.73 1.451 0.612 1.803 0.612 2.281 c f Q q 1 0 0 1 157.66 81.151 cm 0 0 0 0.27 k /GS2 gs 0 0 0.611 -0.599 re 0 -1.076 0.611 -2.49 re f Q q 1 0 0 1 159.092 80.598 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.599 0.18 l 0.599 -0.523 l 1.104 -0.523 l 1.104 -0.955 l 0.599 -0.955 l 0.599 -2.252 l 0.599 -2.511 0.704 -2.594 0.867 -2.594 c 0.984 -2.594 1.059 -2.566 1.104 -2.537 c 1.104 -2.976 l 1.018 -3.013 0.879 -3.05 0.704 -3.05 c 0.255 -3.05 0 -2.85 0 -2.327 c 0 -0.955 l -0.402 -0.955 l -0.402 -0.523 l 0 -0.523 l 0 0 l f Q q 1 0 0 1 146.682 72.293 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.63 0 l 0.63 1.328 l 0.972 1.328 l 1.671 1.328 2.03 1.712 2.03 2.361 c 2.03 2.997 1.671 3.383 0.972 3.383 c 0 3.383 l 0 0 l h 0.63 1.803 m 0.63 2.905 l 0.85 2.905 l 1.239 2.905 1.403 2.729 1.403 2.361 c 1.403 1.98 1.239 1.803 0.85 1.803 c 0.63 1.803 l f Q q 1 0 0 1 149.161 74.376 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 0.151 0 0.303 -0.016 0.407 c 0.519 0.407 l 0.536 0.258 0.536 0.105 0.536 -0.041 c 0.554 -0.041 l 0.625 0.151 0.822 0.45 1.195 0.45 c 1.299 0.436 l 1.299 -0.115 l 1.119 -0.103 l 0.863 -0.103 0.594 -0.257 0.594 -0.728 c 0.594 -2.083 l 0 -2.083 l 0 0 l f Q q 1 0 0 1 152.606 72.886 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.104 -0.073 -0.284 -0.191 -0.658 -0.191 c -1.121 -0.191 -1.285 0.061 -1.285 0.495 c 0.147 0.495 l 0.147 0.603 l 0.147 1.624 -0.3 1.94 -0.849 1.94 c -1.478 1.94 -1.878 1.375 -1.878 0.613 c -1.878 -0.057 -1.522 -0.64 -0.713 -0.64 c -0.359 -0.64 -0.092 -0.522 0.03 -0.476 c 0 0 l h -1.285 0.869 m -1.285 1.195 -1.162 1.536 -0.849 1.536 c -0.568 1.536 -0.436 1.315 -0.436 0.869 c -1.285 0.869 l f Q q 1 0 0 1 153.157 72.872 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.104 -0.034 0.342 -0.158 0.626 -0.158 c 0.853 -0.158 1.015 -0.121 1.015 0.091 c 1.015 0.177 0.969 0.269 0.749 0.404 c 0.51 0.545 l 0.255 0.692 -0.03 0.856 -0.03 1.246 c -0.03 1.595 0.312 1.953 0.837 1.953 c 1.15 1.953 1.401 1.877 1.464 1.849 c 1.432 1.388 l 1.283 1.447 1.121 1.5 0.895 1.5 c 0.656 1.5 0.552 1.401 0.552 1.254 c 0.552 1.119 0.656 1.052 0.837 0.932 c 1.133 0.748 l 1.447 0.545 1.598 0.411 1.598 0.12 c 1.598 -0.35 1.209 -0.627 0.656 -0.627 c 0.359 -0.627 0.104 -0.544 -0.03 -0.509 c 0 0 l f Q q 1 0 0 1 155.141 72.872 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.091 -0.034 0.341 -0.158 0.627 -0.158 c 0.837 -0.158 1.002 -0.121 1.002 0.091 c 1.002 0.177 0.953 0.269 0.746 0.404 c 0.495 0.545 l 0.239 0.692 -0.031 0.856 -0.031 1.246 c -0.031 1.595 0.301 1.953 0.82 1.953 c 1.151 1.953 1.401 1.877 1.461 1.849 c 1.42 1.388 l 1.269 1.447 1.116 1.5 0.894 1.5 c 0.656 1.5 0.535 1.401 0.535 1.254 c 0.535 1.119 0.656 1.052 0.82 0.932 c 1.135 0.748 l 1.431 0.545 1.594 0.411 1.594 0.12 c 1.594 -0.35 1.211 -0.627 0.656 -0.627 c 0.341 -0.627 0.091 -0.544 -0.031 -0.509 c 0 0 l f Q q 1 0 0 1 241.763 73.694 cm 0 0 0 0.27 k /GS2 gs 0 0 m 2.234 0 l 2.234 -0.311 l 0.387 -0.311 l 0.387 -0.957 l 1.515 -0.957 l 1.515 -1.263 l 0.387 -1.263 l 0.387 -1.998 l 2.252 -1.998 l 2.252 -2.319 l 0 -2.319 l 0 0 l f Q q 1 0 0 1 220.898 73.393 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 -0.81 l 1.33 -0.81 l 1.502 -0.81 1.583 -0.764 1.583 -0.567 c 1.583 -0.244 l 1.583 -0.05 1.507 0 1.33 0 c 0 0 l h -0.385 0.301 m 1.484 0.301 l 1.82 0.301 1.974 0.174 1.974 -0.149 c 1.974 -0.666 l 1.974 -0.989 1.82 -1.114 1.484 -1.114 c 0 -1.114 l 0 -2.018 l -0.385 -2.018 l -0.385 0.301 l f Q q 1 0 0 1 224.207 73.393 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 -0.815 l 1.33 -0.815 l 1.5 -0.815 1.582 -0.773 1.582 -0.575 c 1.582 -0.238 l 1.582 -0.045 1.5 0 1.33 0 c 0 0 l h -0.388 0.301 m 1.484 0.301 l 1.82 0.301 1.972 0.174 1.972 -0.149 c 1.972 -0.666 l 1.972 -0.989 1.82 -1.114 1.484 -1.114 c 1.141 -1.114 l 2.202 -2.018 l 1.628 -2.018 l 0.682 -1.114 l 0 -1.114 l 0 -2.018 l -0.388 -2.018 l -0.388 0.301 l f Q q 1 0 0 1 227.244 73.694 cm 0 0 0 0.27 k /GS2 gs 0 0 m 2.235 0 l 2.235 -0.311 l 0.389 -0.311 l 0.389 -0.957 l 1.515 -0.957 l 1.515 -1.263 l 0.389 -1.263 l 0.389 -1.998 l 2.254 -1.998 l 2.254 -2.319 l 0 -2.319 l 0 0 l f Q q 1 0 0 1 230.418 73.694 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.244 0 l 1.977 -1.55 l 2.06 -1.622 2.149 -1.722 2.243 -1.843 c 2.206 -1.627 2.206 -1.44 2.206 -1.273 c 2.206 0 l 2.562 0 l 2.562 -2.319 l 2.346 -2.319 l 0.562 -0.706 l 0.493 -0.642 0.405 -0.575 0.328 -0.445 c 0.35 -0.617 0.354 -0.781 0.354 -0.953 c 0.354 -2.319 l 0 -2.319 l 0 0 l f Q q 1 0 0 1 235.083 71.375 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.387 0 l -0.387 2.003 l -1.448 2.003 l -1.448 2.319 l 1.065 2.319 l 1.065 2.003 l 0 2.003 l 0 0 l f Q q 1 0 0 1 0 -0 cm 0 0 0 0.27 k /GS2 gs 236.8 71.375 0.387 2.319 re f Q q 1 0 0 1 238.746 73.378 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 -1.679 l 1.609 -1.679 l 1.609 -1.099 l 1.997 -1.18 l 1.997 -1.455 l 1.997 -1.887 1.875 -2.003 1.457 -2.003 c 0.156 -2.003 l -0.261 -2.003 -0.385 -1.881 -0.385 -1.455 c -0.385 -0.232 l -0.385 0.196 -0.261 0.316 0.156 0.316 c 1.457 0.316 l 1.875 0.316 1.997 0.2 1.997 -0.232 c 1.997 -0.453 l 1.609 -0.523 l 1.609 0 l 0 0 l f Q q 1 0 0 1 226.186 70.389 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.387 0 l 0.387 -0.948 l 2.216 -0.948 l 2.216 0 l 2.603 0 l 2.603 -2.317 l 2.216 -2.317 l 2.216 -1.266 l 0.387 -1.266 l 0.387 -2.317 l 0 -2.317 l 0 0 l f Q q 1 0 0 1 231.632 68.938 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.627 1.187 l -1.253 0 l 0 0 l h -0.824 1.451 m -0.413 1.451 l 0.878 -0.866 l 0.45 -0.866 l 0.155 -0.297 l -1.414 -0.297 l -1.712 -0.866 l -2.093 -0.866 l -0.824 1.451 l f Q q 1 0 0 1 233.26 70.389 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.387 0 l 0.387 -1.995 l 2.145 -1.995 l 2.145 -2.317 l 0 -2.317 l 0 0 l f Q q 1 0 0 1 236.196 70.389 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.386 0 l 0.386 -1.995 l 2.144 -1.995 l 2.144 -2.317 l 0 -2.317 l 0 0 l f Q q 1 0 0 1 230.996 86.358 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.023 0.112 0.036 0.229 0.036 0.348 c 0.036 1.354 -0.783 2.174 -1.789 2.174 c -2.799 2.174 -3.617 1.354 -3.617 0.348 c -3.617 -0.661 -2.799 -1.48 -1.789 -1.48 c -1.43 -1.48 -1.096 -1.372 -0.812 -1.19 c -0.714 -0.689 -0.415 -0.264 0 0 c f Q q 1 0 0 1 234.74 88.527 cm 0 0 0 0.27 k /GS2 gs 0 0 m -1.009 0 -1.826 -0.817 -1.826 -1.826 c -1.826 -1.94 -1.813 -2.05 -1.791 -2.158 c -1.379 -2.429 -1.082 -2.856 -0.989 -3.358 c -0.704 -3.542 -0.365 -3.652 0 -3.652 c 1.01 -3.652 1.826 -2.835 1.826 -1.826 c 1.826 -0.817 1.01 0 0 0 c f Q q 1 0 0 1 234.757 84.291 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.558 0 -1.05 -0.256 -1.386 -0.649 c -1.4 -0.649 l -1.735 -1.055 -2.233 -1.318 -2.802 -1.318 c -3.374 -1.318 -3.88 -1.048 -4.215 -0.635 c -4.55 -0.259 -5.03 -0.015 -5.576 -0.015 c -6.582 -0.015 -7.399 -0.832 -7.399 -1.84 c -7.399 -2.85 -6.582 -3.666 -5.576 -3.666 c -5.059 -3.666 -4.602 -3.447 -4.27 -3.102 c -3.938 -2.635 -3.397 -2.329 -2.781 -2.329 c -2.163 -2.329 -1.622 -2.637 -1.29 -3.106 c -0.961 -3.44 -0.509 -3.653 0 -3.653 c 1.008 -3.653 1.825 -2.836 1.825 -1.828 c 1.825 -0.82 1.008 0 0 0 c f Q q 1 0 0 1 234.717 80.013 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.36 0 -0.697 -0.107 -0.98 -0.289 c -1.077 -0.789 -1.377 -1.214 -1.792 -1.48 c -1.814 -1.594 -1.827 -1.708 -1.827 -1.826 c -1.827 -2.835 -1.007 -3.654 0 -3.654 c 1.008 -3.654 1.825 -2.835 1.825 -1.826 c 1.825 -0.818 1.008 0 0 0 c f Q q 1 0 0 1 230.171 79.721 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.287 0.184 -0.625 0.295 -0.989 0.295 c -1.998 0.295 -2.815 -0.522 -2.815 -1.531 c -2.815 -2.538 -1.998 -3.356 -0.989 -3.356 c 0.019 -3.356 0.838 -2.538 0.838 -1.531 c 0.838 -1.416 0.823 -1.306 0.803 -1.197 c 0.391 -0.928 0.093 -0.502 0 0 c f Q q 1 0 0 1 417.352 81.581 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.866 0.727 -1.832 1.052 -3.815 1.052 c -6.052 1.052 -7.184 0.552 -7.975 -0.317 c -8.881 -1.309 -9.26 -2.707 -9.26 -4.905 c -9.26 -6.712 -9.012 -8.516 -7.921 -9.604 c -6.973 -10.554 -5.83 -10.907 -3.84 -10.907 c -1.997 -10.907 -0.858 -10.682 0.126 -9.715 c 1.184 -8.678 1.605 -7.27 1.605 -4.905 c 1.605 -2.481 1.048 -0.881 0 0 c h 2.113 -4.896 m 2.113 -7.703 1.289 -9.231 -0.086 -10.25 c -1.074 -10.983 -2.353 -11.339 -3.851 -11.339 c -5.312 -11.339 -6.73 -10.985 -7.798 -10.083 c -8.931 -9.124 -9.766 -7.681 -9.766 -4.915 c -9.766 -2.602 -9.193 -1.155 -8.17 -0.122 c -6.946 1.114 -5.252 1.474 -3.815 1.474 c -2.374 1.474 -1.004 1.14 0.191 0.172 c 1.326 -0.744 2.113 -2.351 2.113 -4.896 c f Q q 1 0 0 1 413.336 77.963 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.036 0.072 -0.165 0.241 -0.184 0.262 c -0.489 0.625 -0.618 0.779 -0.652 0.826 c -0.74 0.931 l -0.727 0.975 l -0.629 0.97 l 0.013 0.97 l 0.014 0.737 0.017 0.535 0.018 0.259 c 0.018 0.157 0.021 0.092 0.027 0.018 c 0.041 -0.054 0.021 -0.042 0 0 c h 1.411 0.97 m 1.489 0.97 l 1.497 0.936 l 1.367 0.804 l 1.358 0.794 1.151 0.549 0.86 0.182 c 0.812 0.122 0.773 0.077 0.734 0.005 c 0.708 -0.05 0.69 -0.045 0.703 0.027 c 0.711 0.085 0.711 0.181 0.713 0.259 c 0.713 0.488 0.717 0.734 0.718 0.97 c 1.411 0.97 l h 3.7 1.296 m 3.7 1.222 l 3.88 1.204 3.993 1.059 v 4.106 0.912 4.137 0.708 4.01 0.356 c 3.869 -0.037 2.906 -2.232 2.732 -2.579 c 2.644 -2.759 2.577 -2.992 2.559 -3.094 c 2.513 -3.094 l 2.499 -3.036 2.293 -2.738 2.19 -2.591 c 2.093 -2.452 1.461 -1.698 0.819 -0.932 c 0.694 -0.798 l 0.701 -0.739 l 0.819 -0.604 l 1.46 0.206 1.975 0.884 2.021 0.945 c 2.151 1.107 2.265 1.229 2.326 1.268 c 2.326 1.296 l 0.719 1.296 l 0.721 1.762 0.723 2.159 0.729 2.3 c 0.752 2.821 0.807 3.038 1.076 3.345 c 1.212 3.5 1.337 3.579 y 1.309 3.632 l 1.183 3.568 0.917 3.555 0.629 3.555 c 0.341 3.555 -0.592 3.574 -1.014 3.574 c -1.432 3.574 -1.697 3.477 -1.894 3.303 c -2.08 3.137 -2.279 2.752 -2.295 2.687 c -2.244 2.654 l -2.175 2.726 -2.017 2.861 -1.838 2.92 c -1.626 2.991 -1.437 3.012 -1.173 3.012 c -0.907 3.012 -0.246 2.991 -0.05 2.991 c 0.147 2.991 0.306 3.007 0.411 3.036 c 0.52 3.062 0.566 3.08 0.61 3.107 c 0.692 3.155 0.707 3.099 0.643 3.046 c 0.599 3.013 0.503 2.928 0.411 2.821 c 0.186 2.564 0 2.267 0 1.624 c 0 1.532 0 1.422 0 1.296 c -1.972 1.296 l -1.972 1.268 l -1.807 1.155 -1.591 0.894 v -1.503 0.789 -0.897 0.058 -0.2 -0.789 c -0.066 -0.939 l -0.061 -0.99 l -0.11 -1.051 -0.136 -1.069 -0.199 -1.148 c -0.857 -1.965 -1.466 -2.763 -1.519 -2.843 c -1.634 -3.016 -1.668 -3.062 -1.698 -3.128 c -1.726 -3.188 -1.754 -3.225 -1.771 -3.143 c -1.792 -3.06 -1.822 -2.915 -1.972 -2.579 c -2.122 -2.239 -3.35 0.282 -3.445 0.478 c -3.579 0.758 -3.541 0.945 -3.459 1.064 c -3.4 1.147 -3.307 1.2 -3.217 1.221 c -3.217 1.296 l -4.785 1.296 l -4.785 1.221 l -4.646 1.157 l -4.589 1.104 -4.504 0.955 -4.453 0.864 c -4.268 0.544 -2.239 -3.621 -2.15 -3.82 c -2.004 -4.138 -1.986 -4.217 y -1.955 -4.217 l -1.742 -3.892 -1.415 -3.482 v -1.315 -3.357 -0.773 -2.609 -0.125 -1.779 c -0.078 -1.72 -0.028 -1.663 0.003 -1.596 c 0.035 -1.609 l 0.023 -1.856 l 0.03 -3.039 0.047 -4.326 0.054 -5.015 c 0.063 -5.859 -0.136 -6.114 -0.567 -6.114 c -0.684 -6.114 -0.802 -6.073 -0.862 -6.024 c -0.927 -5.973 -0.957 -5.876 -0.813 -5.84 c -0.67 -5.805 -0.544 -5.653 -0.54 -5.417 c -0.536 -5.183 -0.714 -4.942 -1.031 -4.946 c -1.373 -4.95 -1.613 -5.225 -1.613 -5.622 c -1.613 -5.932 -1.373 -6.471 -0.539 -6.461 c 0.448 -6.451 0.697 -5.651 0.732 -5.27 c 0.76 -4.974 0.754 -4.711 0.754 -4.245 c 0.754 -3.936 0.742 -2.999 0.728 -2.169 c 0.719 -1.935 l 0.706 -1.87 0.729 -1.862 0.754 -1.918 c 0.786 -1.994 0.845 -2.084 0.863 -2.106 c 1.515 -2.913 2.03 -3.556 2.117 -3.668 c 2.413 -4.046 2.525 -4.217 y 2.564 -4.217 l 2.667 -3.904 2.795 -3.638 v 2.927 -3.364 4.666 0.538 4.737 0.685 c 4.81 0.839 4.918 1.033 4.991 1.1 c 5.047 1.148 5.117 1.204 5.193 1.222 c 5.193 1.296 l 3.7 1.296 l f Q q 1 0 0 1 430.589 74.984 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.103 0.108 -0.101 0.284 -0.101 0.42 c -0.101 5.669 l -0.101 5.904 -0.06 6.004 0.021 6.095 c 0.101 6.183 0.199 6.251 0.333 6.27 c 0.333 6.366 l -1.738 6.366 l -1.738 6.27 l -1.606 6.251 -1.502 6.179 -1.427 6.095 c -1.345 6.004 -1.305 5.904 -1.305 5.669 c -1.305 0.42 l -1.305 0.284 -1.303 0.108 -1.406 0 c -1.493 -0.09 -1.628 -0.129 -1.738 -0.144 c -1.738 -0.244 l 0.333 -0.244 l 0.333 -0.144 l 0.221 -0.132 0.087 -0.09 0 0 c f Q q 1 0 0 1 435.767 76.444 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.028 -0.142 -0.099 -0.379 -0.261 -0.544 c -0.427 -0.709 -0.573 -0.749 -0.961 -0.749 c -1.271 -0.749 -1.972 -0.749 -2.239 -0.749 c -2.239 4.21 l -2.239 4.444 -2.198 4.544 -2.115 4.636 c -2.041 4.719 -1.902 4.795 -1.726 4.81 c -1.726 4.907 l -3.877 4.907 l -3.877 4.81 l -3.744 4.792 -3.641 4.719 -3.565 4.636 c -3.484 4.544 -3.445 4.434 -3.443 4.21 c -3.443 -1.04 l -3.443 -1.176 -3.441 -1.351 -3.544 -1.46 c -3.631 -1.549 -3.764 -1.591 -3.877 -1.603 c -3.877 -1.703 l -0.022 -1.703 l 0.101 -0.01 l 0 0 l f Q q 1 0 0 1 440.354 76.444 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.027 -0.14 -0.102 -0.41 -0.267 -0.575 c -0.432 -0.741 -0.575 -0.779 -0.963 -0.779 c -1.273 -0.779 -2.241 -0.779 -2.51 -0.779 c -2.51 1.33 l -1.279 1.33 l -1.044 1.33 -0.93 1.276 -0.836 1.194 c -0.753 1.117 -0.669 0.974 -0.652 0.842 c -0.556 0.842 l -0.556 2.706 l -0.652 2.706 l -0.669 2.574 -0.744 2.44 -0.829 2.365 c -0.919 2.283 -1.02 2.243 -1.254 2.243 c -2.51 2.243 l -2.51 4.014 l -2.139 4.014 -1.065 4.014 -0.965 4.014 c -0.841 4.014 -0.601 4.014 -0.436 3.85 c -0.271 3.685 -0.268 3.526 -0.25 3.415 c -0.153 3.423 l -0.184 4.907 l -4.146 4.907 l -4.146 4.81 l -4.012 4.792 -3.912 4.719 -3.837 4.636 c -3.755 4.544 -3.714 4.444 -3.714 4.21 c -3.714 -1.04 l -3.714 -1.176 -3.71 -1.351 -3.814 -1.46 c -3.901 -1.549 -4.037 -1.591 -4.146 -1.603 c -4.146 -1.703 l -0.025 -1.703 l 0.098 -0.01 l 0 0 l f Q q 1 0 0 1 444.431 81.351 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 -0.097 l 0.122 -0.118 0.242 -0.152 0.309 -0.291 c 0.379 -0.433 0.326 -0.62 0.23 -0.808 c 0.122 -1.024 -0.538 -2.273 -0.645 -2.474 c -0.751 -2.672 -0.804 -2.769 -0.823 -2.851 c -0.843 -2.934 -0.873 -2.938 -0.892 -2.847 c -0.913 -2.758 -0.981 -2.624 -1.058 -2.484 c -1.138 -2.346 -2.016 -0.742 -2.07 -0.64 c -2.15 -0.486 -2.204 -0.334 -2.135 -0.22 c -2.069 -0.108 -1.988 -0.112 -1.896 -0.097 c -1.896 0 l -3.936 0 l -3.936 -0.097 l -3.844 -0.115 -3.783 -0.143 -3.706 -0.209 c -3.627 -0.276 -3.574 -0.343 -3.498 -0.469 c -3.43 -0.588 -1.768 -3.453 -1.574 -3.786 c -1.574 -5.947 l -1.574 -6.083 -1.572 -6.258 -1.676 -6.366 c -1.762 -6.456 -1.896 -6.498 -2.007 -6.51 c -2.007 -6.61 l 0.06 -6.61 l 0.06 -6.51 l -0.055 -6.498 -0.185 -6.456 -0.269 -6.366 c -0.373 -6.258 -0.372 -6.083 -0.372 -5.947 c -0.372 -3.786 l 1.361 -0.651 l 1.446 -0.495 1.584 -0.286 1.67 -0.205 c 1.764 -0.122 1.843 -0.108 1.909 -0.097 c 1.909 0 l 0 0 l f Q q 1 0 0 1 421.832 81.351 cm 0 0 0 0.27 k /GS2 gs 0 0 m -2.098 0 l -2.098 -0.097 l -2.01 -0.108 -1.877 -0.143 -1.748 -0.282 c -1.63 -0.41 -1.588 -0.506 -1.514 -0.662 c -1.441 -0.818 0.748 -5.891 0.871 -6.176 c 0.991 -6.46 1.122 -6.735 1.152 -6.818 c 1.261 -6.819 l 1.401 -6.543 1.537 -6.199 v 1.675 -5.857 2.248 -4.531 2.303 -4.391 c 2.401 -4.151 2.451 -3.983 2.466 -3.912 c 2.477 -3.85 2.496 -3.846 2.508 -3.912 c 2.52 -3.976 2.59 -4.199 2.665 -4.4 c 2.73 -4.564 3.349 -6.019 3.45 -6.25 c 3.555 -6.481 3.688 -6.752 3.716 -6.818 c 3.831 -6.818 l 3.899 -6.619 3.998 -6.432 4.087 -6.208 c 4.176 -5.983 6.139 -0.913 6.233 -0.669 c 6.323 -0.436 6.386 -0.316 6.465 -0.246 c 6.573 -0.15 6.677 -0.112 6.777 -0.097 c 6.777 0 l 4.937 0 l 4.937 -0.097 l 5.018 -0.113 5.134 -0.134 5.206 -0.239 c 5.278 -0.35 5.227 -0.585 5.169 -0.747 c 5.071 -1.021 4.032 -4.037 y 3.984 -4.218 3.948 -4.36 3.93 -4.443 c 3.913 -4.531 3.886 -4.537 3.869 -4.447 c 3.855 -4.373 3.816 -4.26 3.726 -4.018 c 3.179 -2.726 3.141 -2.65 v 3.067 -2.52 l 3.07 -2.457 l 3.146 -2.296 l 3.19 -2.196 3.874 -0.56 3.916 -0.456 c 3.959 -0.352 4.026 -0.239 4.087 -0.189 c 4.144 -0.142 4.198 -0.108 4.277 -0.097 c 4.277 0 l 2.809 0 l 2.809 -0.097 l 2.908 -0.112 2.985 -0.155 3.02 -0.232 c 3.053 -0.301 3.048 -0.428 2.999 -0.55 c 2.952 -0.673 2.738 -1.214 2.719 -1.297 c 2.699 -1.378 2.682 -1.422 2.677 -1.468 c 2.634 -1.468 l 2.627 -1.409 2.617 -1.349 2.589 -1.284 c 2.56 -1.219 2.322 -0.61 2.295 -0.515 c 2.255 -0.386 2.257 -0.259 2.317 -0.192 c 2.387 -0.115 2.47 -0.105 2.539 -0.097 c 2.539 0 l 0.623 0 l 0.623 -0.097 l 0.727 -0.108 0.798 -0.155 0.852 -0.216 c 0.921 -0.291 0.954 -0.359 1.017 -0.535 c 1.078 -0.709 1.935 -2.685 1.973 -2.763 c 2.032 -2.872 l 2.029 -2.967 l 2.006 -3.003 1.973 -3.076 1.925 -3.187 c 1.886 -3.269 1.587 -3.965 1.537 -4.085 c 1.488 -4.208 1.409 -4.389 1.393 -4.462 c 1.381 -4.532 1.365 -4.537 1.346 -4.455 c 1.325 -4.365 1.284 -4.241 1.196 -4.071 c 1.105 -3.898 -0.154 -0.839 -0.226 -0.677 c -0.298 -0.513 -0.325 -0.321 -0.263 -0.229 c -0.201 -0.139 -0.108 -0.105 0 -0.097 c 0 0 l f Q q 1 0 0 1 427.869 76.437 cm 0 0 0 0.27 k /GS2 gs 0 0 m 1.296 0 l 1.727 -0.521 l 2.165 0 l 3.222 0 l 2.242 -0.936 l 3.323 -2.019 l 2.015 -2.019 l 1.559 -1.449 l 1.095 -2.019 l 0.196 -2.019 l 0.69 -1.805 0.929 -1.408 0.929 -1.04 c 0.929 -0.708 0.645 -0.208 0 0 c f Q q 1 0 0 1 464.172 83.217 cm 0 0 0 0.27 k /GS2 gs 0 0 m -5.422 -3.619 -7.313 -9.869 v 1.594 -7.144 11.258 -7.896 v 8.7 -0.3 0.557 3.247 v 0.557 1.199 l 4.553 -1.5 5.971 -4.949 v 1.501 -4.559 -2.985 -6.148 v -2.479 -3.798 0 0 v f Q q 1 0 0 1 466.845 71.369 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.025 -0.639 0.619 -1.334 2.089 -1.334 c 3.493 -1.334 4.154 -0.664 4.154 0.042 c 4.154 0.686 3.579 1.42 2.077 1.42 c 1.437 1.42 0.959 1.287 0.623 1.079 c 0.689 1.045 0.752 1.007 0.814 0.962 c 0 0 l h 1.387 0.042 m 1.387 0.345 1.668 0.556 2.077 0.556 c 2.485 0.556 2.765 0.345 2.765 0.042 c 2.765 -0.259 2.485 -0.471 2.077 -0.471 c 1.668 -0.471 1.387 -0.259 1.387 0.042 c f Q q 1 0 0 1 465.214 72.745 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 -0.709 l 0.012 -0.709 l 0.259 -0.212 0.653 0.045 1.14 0.045 c 1.406 0.045 1.674 -0.02 1.995 -0.163 c 1.38 -1.219 l 1.161 -1.062 0.98 -0.995 0.786 -0.995 c 0.446 -0.995 0.205 -1.25 0.132 -1.558 c 0.132 -2.666 l -1.255 -2.666 l -1.255 -1.299 l -0.653 0 l 0 0 l f Q q 1 0 0 1 458.037 72.746 cm 0 0 0 0.27 k /GS2 gs 0 0 m 1.414 0 l 1.955 -1.304 l 1.968 -1.304 l 2.599 0 l 3.487 0 l 4.116 -1.304 l 4.129 -1.304 l 4.634 0 l 6.022 0 l 4.789 -2.668 l 3.762 -2.668 l 3.048 -1.189 l 2.328 -2.668 l 1.314 -2.668 l 0 0 l f Q q 1 0 0 1 475.971 72.507 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.03 0.455 l -0.034 0.514 -0.03 0.585 -0.032 0.659 c -0.038 0.659 l -0.057 0.589 -0.079 0.511 -0.103 0.443 c -0.259 0.009 l -0.346 0.009 l -0.501 0.455 l -0.518 0.515 -0.538 0.589 -0.555 0.659 c -0.562 0.659 l -0.563 0.587 -0.562 0.524 -0.564 0.455 c -0.592 0 l -0.704 0 l -0.643 0.754 l -0.495 0.754 l -0.346 0.345 l -0.328 0.288 -0.314 0.226 -0.293 0.156 c -0.291 0.156 l -0.272 0.226 -0.256 0.291 -0.237 0.348 c -0.09 0.754 l 0.058 0.754 l 0.115 0 l 0 0 l h -0.73 0.754 m -0.73 0.658 l -0.962 0.658 l -0.962 0 l -1.075 0 l -1.075 0.658 l -1.303 0.658 l -1.303 0.754 l -0.73 0.754 l f Q q 1 0 0 1 257.477 82.565 cm /CS0 cs 0.27 scn /GS3 gs 0 0 m -1.924 0 -1.924 -1.927 v -1.924 -9.628 l -1.924 -11.553 0 -11.553 v 24.389 -11.553 l 26.315 -11.553 26.315 -9.628 v 26.315 -1.927 l 26.315 0 24.389 0 v 0 0 l f Q q 1 0 0 1 262.609 76.03 cm 0 0 0 0 k /GS2 gs 0 0 m 1.084 0 l 1.391 0 1.639 0.25 1.639 0.556 c 1.639 2.189 l 1.639 2.497 1.391 2.745 1.084 2.745 c -1.471 2.745 l -1.777 2.745 -2.026 2.497 -2.026 2.189 c -2.026 0.556 l -2.026 0.25 -1.777 0 -1.471 0 c -0.43 0 l -0.429 -1.121 l -2.391 -1.121 l -2.93 -1.121 -3.366 -0.683 -3.366 -0.144 c -3.366 2.813 l -3.366 3.352 -2.93 3.788 -2.391 3.788 c 2.089 3.788 l 2.629 3.788 3.064 3.352 3.064 2.813 c 3.064 -0.144 l 3.064 -0.683 2.629 -1.121 2.089 -1.121 c 1.323 -1.121 l 1.323 -2 l -0.003 -2 l 0 0 l f Q q 1 0 0 1 272.582 79.818 cm 0 0 0 0 k /GS2 gs 0 0 m 0 -3.974 l 0 -4.513 -0.435 -4.95 -0.974 -4.95 c -5.256 -4.95 l -5.796 -4.95 -6.231 -4.513 -6.231 -3.974 c -6.231 0 l -4.851 -0.001 l -4.851 -3.299 l -4.851 -3.596 -4.611 -3.836 -4.315 -3.836 c -1.973 -3.836 l -1.679 -3.836 -1.438 -3.596 -1.438 -3.299 c -1.438 -0.001 l 0 0 l f Q q 1 0 0 1 275.163 76.802 cm 0 0 0 0 k /GS2 gs 0 0 m 0 0.898 l 2.961 0.907 l 3.194 0.907 3.384 1.124 3.384 1.356 c 3.384 1.59 3.194 1.779 2.961 1.779 c 0.206 1.779 l -0.102 1.821 -0.35 1.572 -0.35 1.266 c -0.35 -0.3 l -0.35 -0.608 -0.102 -0.855 0.206 -0.855 c 4.515 -0.855 l 4.516 -1.976 l -0.872 -1.976 l -1.411 -1.976 -1.846 -1.539 -1.846 -1 c -1.846 1.958 l -1.846 2.495 -1.411 2.931 -0.872 2.931 c 3.748 2.931 l 4.288 2.931 4.724 2.495 4.724 1.958 c 4.724 0.973 l 4.724 0.435 4.288 0 3.748 0 c 0 0 l f Q q 1 0 0 1 281.067 79.248 cm 0 0 0 0 k /GS2 gs 0 0 m 0.102 0 0.251 -0.017 0.251 0.13 c 0.251 0.242 0.159 0.255 0.071 0.255 c -0.136 0.255 l -0.136 0 l 0 0 l h 0.338 -0.402 m 0.232 -0.402 l 0.026 -0.068 l -0.136 -0.068 l -0.136 -0.402 l -0.225 -0.402 l -0.225 0.319 l 0.091 0.319 l 0.282 0.319 0.346 0.247 0.346 0.129 c 0.346 -0.013 0.247 -0.067 0.121 -0.068 c 0.338 -0.402 l h 0.558 -0.041 m 0.558 0.272 0.33 0.518 0.016 0.518 c -0.299 0.518 -0.529 0.272 -0.529 -0.041 c -0.529 -0.359 -0.299 -0.602 0.016 -0.602 c 0.33 -0.602 0.558 -0.359 0.558 -0.041 c h -0.631 -0.041 m -0.631 0.314 -0.342 0.603 0.016 0.603 c 0.373 0.603 0.66 0.314 0.66 -0.041 c 0.66 -0.398 0.373 -0.689 0.016 -0.689 c -0.342 -0.689 -0.631 -0.398 -0.631 -0.041 c f Q q 1 0 0 1 372.692 79.2 cm 0 0 0 0.27 k /GS2 gs 0 0 m 1.181 0 l 1.984 0 2.444 -0.366 2.444 -1.017 c 2.444 -1.636 1.935 -2.034 1.153 -2.034 c 0 -2.034 l 0 0 l h 1.225 0.707 m -0.751 0.707 l -0.751 -4.512 l 0 -4.512 l 0 -2.734 l 1.131 -2.734 l 2.163 -2.734 3.201 -2.197 3.201 -0.982 c 3.201 0.045 2.426 0.707 1.225 0.707 c f Q q 1 0 0 1 377.714 79.2 cm 0 0 0 0.27 k /GS2 gs 0 0 m 1.463 0 l 2.223 0 2.661 -0.329 2.661 -0.917 c 2.661 -1.492 2.187 -1.861 1.456 -1.861 c 0 -1.861 l 0 0 l h 3.419 -0.882 m 3.419 -0.466 3.271 -0.092 3.002 0.177 c 2.662 0.521 2.128 0.707 1.507 0.707 c -0.751 0.707 l -0.751 -4.512 l 0 -4.512 l 0 -2.555 l 1.302 -2.555 l 2.763 -4.512 l 3.689 -4.512 l 2.119 -2.423 l 2.935 -2.225 3.419 -1.662 3.419 -0.882 c f Q q 1 0 0 1 383.133 76.969 cm 0 0 0 0.27 k /GS2 gs 0 0 m 2.75 0 l 2.75 0.7 l 0 0.7 l 0 2.238 l 3.073 2.238 l 3.073 2.938 l -0.751 2.938 l -0.751 -2.282 l 3.109 -2.282 l 3.109 -1.582 l 0 -1.582 l 0 0 l f Q q 1 0 0 1 389.336 77.66 cm 0 0 0 0.27 k /GS2 gs 0 0 m -1.095 0.234 -1.296 0.483 -1.296 0.905 c -1.296 1.33 -0.892 1.627 -0.313 1.627 c 0.199 1.627 0.642 1.46 1.083 1.1 c 1.155 1.04 l 1.597 1.625 l 1.529 1.681 l 0.97 2.128 0.422 2.32 -0.301 2.32 c -1.311 2.32 -2.045 1.703 -2.045 0.839 c -2.045 -0.124 -1.341 -0.473 -0.283 -0.704 c 0.765 -0.925 0.955 -1.169 0.955 -1.586 c 0.955 -2.035 0.531 -2.352 -0.077 -2.352 c -0.717 -2.352 -1.201 -2.151 -1.743 -1.663 c -1.813 -1.6 l -2.283 -2.156 l -2.216 -2.215 l -1.583 -2.781 -0.909 -3.044 -0.099 -3.044 c 0.969 -3.044 1.715 -2.42 1.715 -1.513 c 1.715 -0.715 1.202 -0.262 0 0 c f Q q 1 0 0 1 394.086 77.66 cm 0 0 0 0.27 k /GS2 gs 0 0 m -1.095 0.234 -1.295 0.483 -1.295 0.905 c -1.295 1.33 -0.892 1.627 -0.313 1.627 c 0.198 1.627 0.642 1.46 1.083 1.1 c 1.156 1.04 l 1.597 1.625 l 1.528 1.681 l 0.97 2.128 0.424 2.32 -0.3 2.32 c -1.311 2.32 -2.045 1.703 -2.045 0.839 c -2.045 -0.124 -1.341 -0.473 -0.282 -0.704 c 0.763 -0.925 0.955 -1.169 0.955 -1.586 c 0.955 -2.035 0.531 -2.352 -0.075 -2.352 c -0.719 -2.352 -1.201 -2.151 -1.743 -1.663 c -1.813 -1.6 l -2.283 -2.156 l -2.216 -2.215 l -1.583 -2.781 -0.91 -3.044 -0.099 -3.044 c 0.968 -3.044 1.713 -2.42 1.713 -1.513 c 1.713 -0.715 1.201 -0.262 0 0 c f Q q 1 0 0 1 349.158 74.996 cm 0 0 0 0.27 k /GS2 gs 0 0 m -1.578 4.391 l -1.598 4.451 -1.628 4.532 -1.628 4.602 c -1.628 4.792 -1.467 4.973 -1.238 4.973 c -1.035 4.973 -0.904 4.843 -0.845 4.654 c 0.463 0.867 l 1.777 4.662 l 1.838 4.843 1.96 4.973 2.159 4.973 c 2.199 4.973 l 2.411 4.973 2.542 4.843 2.602 4.662 c 3.908 0.867 l 5.235 4.672 l 5.286 4.834 5.395 4.973 5.607 4.973 c 5.827 4.973 5.987 4.804 5.987 4.612 c 5.987 4.542 5.958 4.463 5.939 4.401 c 4.351 0 l 4.269 -0.232 4.109 -0.352 3.928 -0.352 c 3.899 -0.352 l 3.696 -0.352 3.545 -0.232 3.474 0 c 2.181 3.731 l 0.874 0 l 0.803 -0.232 0.652 -0.352 0.451 -0.352 c 0.431 -0.352 l 0.24 -0.352 0.08 -0.232 0 0 c f Q q 1 0 0 1 360.654 79.586 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 0.212 0.172 0.393 0.382 0.393 c 0.604 0.393 0.775 0.222 0.775 0 c 0.775 -0.892 l 1.157 -0.025 2.004 0.383 2.566 0.383 c 2.799 0.383 2.951 0.212 2.951 -0.008 c 2.951 -0.219 2.809 -0.371 2.606 -0.401 c 1.6 -0.521 0.775 -1.278 0.775 -2.778 c 0.775 -4.542 l 0.775 -4.753 0.613 -4.934 0.394 -4.934 c 0.172 -4.934 0 -4.763 0 -4.542 c 0 0 l f Q q 1 0 0 1 367.599 77.583 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.08 0.936 -0.613 1.753 -1.628 1.753 c -2.516 1.753 -3.186 1.005 -3.285 0 c 0 0 l h -1.51 -2.98 m -2.909 -2.98 -4.054 -1.893 -4.054 -0.299 c -4.054 -0.279 l -4.054 1.204 -3.017 2.4 -1.608 2.4 c -0.099 2.4 0.761 1.156 0.761 -0.209 c 0.761 -0.419 0.589 -0.569 0.404 -0.569 c -3.285 -0.569 l -3.176 -1.684 -2.398 -2.311 -1.489 -2.311 c -0.858 -2.311 -0.396 -2.062 -0.019 -1.714 c 0.039 -1.664 0.108 -1.625 0.198 -1.625 c 0.385 -1.625 0.533 -1.774 0.533 -1.955 c 0.533 -2.043 0.494 -2.132 0.414 -2.202 c -0.068 -2.67 -0.641 -2.98 -1.51 -2.98 c f Q q 1 0 0 1 358.983 76.618 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 0.502 l -0.381 0.612 -0.895 0.722 -1.526 0.722 c -2.497 0.722 -3.04 0.302 -3.04 -0.351 c -3.04 -0.371 l -3.04 -1.023 -2.439 -1.404 -1.735 -1.404 c -0.783 -1.404 0 -0.823 0 0 c -3.823 -0.403 m -3.823 -0.381 l -3.823 0.713 -2.92 1.294 -1.606 1.294 c -0.943 1.294 -0.472 1.204 -0.01 1.073 c -0.01 1.254 l -0.01 2.188 -0.582 2.669 -1.555 2.669 c -2.078 2.669 -2.381 2.604 -2.763 2.434 c -2.813 2.414 -2.862 2.402 -2.902 2.402 c -3.083 2.402 -3.244 2.552 -3.244 2.735 c -3.244 2.895 -3.175 2.992 -3.033 3.055 c -2.523 3.276 -2.136 3.351 -1.474 3.351 c -0.743 3.351 -0.181 3.161 0.201 2.779 c 0.551 2.428 0.734 1.927 0.734 1.265 c 0.734 -1.599 l 0.734 -1.82 0.572 -1.98 0.36 -1.98 c 0.141 -1.98 -0.01 -1.82 -0.01 -1.619 c -0.01 -1.124 l -0.369 -1.597 -0.974 -2.017 -1.885 -2.017 c -2.848 -2.017 -3.823 -1.465 -3.823 -0.403 c f Q q 1 0 0 1 335.1 79.643 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.172 0.372 -0.592 0.542 -0.983 0.367 c -1.376 0.192 -1.521 -0.243 -1.343 -0.616 c 0.302 -4.194 l 0.562 -4.756 0.836 -5.051 1.347 -5.051 c 1.895 -5.051 2.134 -4.73 2.392 -4.194 c 3.83 -1.067 3.842 -1.035 v 3.859 -1.001 3.903 -0.9 4.05 -0.901 c 4.174 -0.903 4.278 -1 4.278 -1.133 c 4.278 -4.191 l 4.278 -4.663 4.541 -5.051 5.042 -5.051 c 5.544 -5.051 5.817 -4.663 5.817 -4.191 c 5.817 -1.69 l 5.817 -1.206 6.163 -0.893 6.634 -0.893 c 7.105 -0.893 7.418 -1.217 7.418 -1.69 c 7.418 -4.191 l 7.418 -4.663 7.681 -5.051 8.183 -5.051 c 8.685 -5.051 8.96 -4.663 8.96 -4.191 c 8.96 -1.69 l 8.96 -1.206 9.302 -0.893 9.775 -0.893 c 10.246 -0.893 10.561 -1.217 10.561 -1.69 c 10.561 -4.191 l 10.561 -4.663 10.823 -5.051 11.325 -5.051 c 11.828 -5.051 12.099 -4.663 12.099 -4.191 c 12.099 -1.343 l 12.099 -0.296 11.258 0.436 10.246 0.436 c 9.233 0.436 8.6 -0.264 y 8.263 0.172 7.799 0.436 7.012 0.436 c 6.185 0.436 5.461 -0.264 y 5.121 0.172 4.549 0.436 4.074 0.436 c 3.337 0.436 2.755 0.113 2.4 -0.701 c 1.347 -3.18 l 0 0 l f Q q 1 0 0 1 369.581 79.339 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 0.29 -0.222 0.525 -0.517 0.525 c -0.812 0.525 -1.039 0.284 -1.039 0 c -1.039 -0.005 l -1.039 -0.291 -0.815 -0.528 -0.517 -0.528 c -0.224 -0.528 0 -0.287 0 0 c -1.159 -0.005 m -1.159 0 l -1.159 0.35 -0.877 0.644 -0.517 0.644 c -0.154 0.644 0.123 0.353 0.123 0.002 c 0.123 0 l 0.123 -0.352 -0.159 -0.647 -0.517 -0.647 c -0.881 -0.647 -1.159 -0.356 -1.159 -0.005 c f Q q 1 0 0 1 369.093 79.358 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.067 0 0.103 0.035 0.103 0.088 c 0.103 0.089 l 0.103 0.15 0.063 0.18 -0.003 0.18 c -0.138 0.18 l -0.138 0 l 0 0 l h -0.276 0.234 m -0.276 0.272 -0.245 0.302 -0.206 0.302 c 0.007 0.302 l 0.088 0.302 0.151 0.281 0.188 0.239 c 0.224 0.205 0.243 0.155 0.243 0.098 c 0.243 0.096 l 0.243 -0.003 0.195 -0.062 0.12 -0.094 c 0.213 -0.208 l 0.226 -0.226 0.235 -0.24 0.235 -0.262 c 0.235 -0.298 0.203 -0.325 0.171 -0.325 c 0.141 -0.325 0.12 -0.309 0.103 -0.289 c -0.029 -0.121 l -0.138 -0.121 l -0.138 -0.256 l -0.138 -0.295 -0.169 -0.325 -0.206 -0.325 c -0.245 -0.325 -0.276 -0.295 -0.276 -0.256 c -0.276 0.234 l f Q q 1 0 0 1 172.988 82.893 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 -1.852 l 0.682 -1.852 l 0.85 -1.852 1.017 -1.846 1.183 -1.835 c 1.35 -1.823 1.497 -1.777 1.624 -1.695 c 1.741 -1.626 1.835 -1.525 1.909 -1.391 c 1.982 -1.258 2.018 -1.098 2.018 -0.913 c 2.018 -0.808 2 -0.697 1.966 -0.579 c 1.931 -0.46 1.861 -0.351 1.755 -0.253 c 1.692 -0.189 1.626 -0.14 1.559 -0.105 c 1.492 -0.07 1.416 -0.045 1.332 -0.031 c 1.248 -0.016 1.15 -0.008 1.04 -0.004 c 0.929 -0.002 0.798 0 0.646 0 c 0 0 l h 0.682 0.751 m 0.856 0.751 1.024 0.748 1.183 0.742 c 1.344 0.737 1.495 0.717 1.638 0.685 c 1.781 0.653 1.918 0.604 2.052 0.537 c 2.187 0.47 2.315 0.372 2.437 0.244 c 2.571 0.111 2.682 -0.051 2.768 -0.24 c 2.856 -0.43 2.9 -0.661 2.9 -0.935 c 2.9 -1.086 2.872 -1.271 2.816 -1.489 c 2.761 -1.708 2.623 -1.925 2.402 -2.14 c 2.215 -2.32 1.988 -2.446 1.721 -2.515 c 1.453 -2.586 1.088 -2.62 0.629 -2.62 c 0 -2.62 l 0 -5.206 l -0.856 -5.206 l -0.856 0.751 l 0.682 0.751 l f Q q 1 0 0 1 179.923 82.875 cm 0 0 0 0.27 k /GS2 gs 0 0 m -2.524 0 l -2.524 -1.799 l -0.087 -1.799 l -0.087 -2.568 l -2.524 -2.568 l -2.524 -4.419 l 0.079 -4.419 l 0.079 -5.188 l -3.38 -5.188 l -3.38 0.769 l 0 0.769 l 0 0 l f Q q 1 0 0 1 184.261 80.211 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.96 2.157 l -1.851 0 l 0 0 l h 2.018 -2.524 m 1.145 -2.524 l 0.35 -0.768 l -2.183 -0.768 l -2.934 -2.524 l -3.808 -2.524 l -1.249 3.467 l -0.646 3.467 l 2.018 -2.524 l f Q q 1 0 0 1 187.747 82.919 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 -1.878 l 0.33 -1.878 l 0.365 -1.878 0.416 -1.878 0.482 -1.878 c 0.549 -1.878 0.623 -1.875 0.703 -1.869 c 0.785 -1.864 0.866 -1.855 0.947 -1.843 c 1.028 -1.831 1.098 -1.814 1.156 -1.791 c 1.358 -1.709 1.503 -1.587 1.59 -1.424 c 1.678 -1.261 1.721 -1.098 1.721 -0.935 c 1.721 -0.766 1.679 -0.607 1.599 -0.459 c 1.518 -0.31 1.408 -0.204 1.269 -0.14 c 1.159 -0.087 1.028 -0.051 0.878 -0.031 c 0.727 -0.01 0.521 0 0.26 0 c 0 0 l h 0.638 0.725 m 0.777 0.725 0.936 0.713 1.113 0.69 c 1.291 0.666 1.473 0.614 1.659 0.532 c 1.817 0.463 1.955 0.375 2.075 0.271 c 2.193 0.166 2.291 0.049 2.367 -0.079 c 2.442 -0.207 2.499 -0.344 2.538 -0.489 c 2.575 -0.635 2.594 -0.783 2.594 -0.935 c 2.594 -1.284 2.509 -1.584 2.341 -1.834 c 2.172 -2.085 1.925 -2.274 1.598 -2.402 c 1.866 -2.582 2.097 -2.809 2.293 -3.083 c 2.488 -3.357 2.699 -3.677 2.926 -4.044 c 2.989 -4.149 3.048 -4.242 3.101 -4.323 c 3.153 -4.405 3.21 -4.489 3.271 -4.577 c 3.332 -4.664 3.399 -4.759 3.472 -4.861 c 3.544 -4.962 3.633 -5.087 3.738 -5.232 c 2.725 -5.232 l 2.673 -5.162 2.59 -5.038 2.476 -4.861 c 2.362 -4.683 2.242 -4.496 2.113 -4.297 c 1.985 -4.099 1.863 -3.915 1.747 -3.743 c 1.631 -3.571 1.549 -3.453 1.503 -3.389 c 1.358 -3.203 1.23 -3.059 1.116 -2.957 c 1.003 -2.855 0.897 -2.781 0.799 -2.734 c 0.701 -2.687 0.606 -2.66 0.516 -2.651 c 0.427 -2.642 0.33 -2.638 0.226 -2.638 c 0 -2.638 l 0 -5.232 l -0.856 -5.232 l -0.856 0.725 l 0.638 0.725 l f Q q 1 0 0 1 195.054 82.333 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.258 0.245 -0.504 0.409 -0.741 0.493 c -0.978 0.578 -1.198 0.62 -1.402 0.62 c -1.701 0.62 -1.933 0.552 -2.1 0.415 c -2.266 0.278 -2.35 0.117 -2.35 -0.07 c -2.35 -0.198 -2.325 -0.31 -2.275 -0.406 c -2.226 -0.502 -2.144 -0.6 -2.03 -0.699 c -1.916 -0.798 -1.764 -0.907 -1.574 -1.026 c -1.384 -1.145 -1.146 -1.287 -0.859 -1.45 c -0.731 -1.525 -0.6 -1.617 -0.465 -1.725 c -0.331 -1.833 -0.205 -1.962 -0.088 -2.113 c 0.005 -2.23 0.082 -2.37 0.144 -2.532 c 0.205 -2.696 0.236 -2.885 0.236 -3.1 c 0.236 -3.333 0.195 -3.549 0.114 -3.747 c 0.032 -3.945 -0.083 -4.116 -0.231 -4.262 c -0.379 -4.408 -0.562 -4.521 -0.777 -4.603 c -0.992 -4.684 -1.231 -4.725 -1.493 -4.725 c -1.79 -4.725 -2.074 -4.677 -2.345 -4.581 c -2.616 -4.484 -2.868 -4.35 -3.1 -4.175 c -3.1 -3.091 l -3.06 -3.144 -2.994 -3.218 -2.904 -3.316 c -2.814 -3.415 -2.702 -3.511 -2.568 -3.606 c -2.434 -3.701 -2.278 -3.783 -2.1 -3.853 c -1.923 -3.922 -1.72 -3.956 -1.494 -3.956 c -1.383 -3.956 -1.273 -3.939 -1.162 -3.904 c -1.051 -3.869 -0.952 -3.819 -0.865 -3.751 c -0.777 -3.685 -0.706 -3.603 -0.651 -3.507 c -0.595 -3.412 -0.567 -3.299 -0.567 -3.172 c -0.567 -3.05 -0.595 -2.934 -0.651 -2.827 c -0.706 -2.72 -0.774 -2.622 -0.856 -2.535 c -0.937 -2.448 -1.023 -2.371 -1.114 -2.304 c -1.204 -2.237 -1.284 -2.184 -1.354 -2.142 c -1.593 -2.003 -1.79 -1.884 -1.947 -1.785 c -2.105 -1.686 -2.239 -1.599 -2.35 -1.523 c -2.46 -1.448 -2.552 -1.375 -2.625 -1.306 c -2.697 -1.235 -2.766 -1.16 -2.83 -1.078 c -2.923 -0.963 -2.996 -0.832 -3.048 -0.686 c -3.1 -0.541 -3.127 -0.375 -3.127 -0.189 c -3.127 0.037 -3.086 0.246 -3.005 0.439 c -2.923 0.63 -2.805 0.796 -2.651 0.936 c -2.497 1.075 -2.312 1.186 -2.096 1.267 c -1.88 1.348 -1.639 1.389 -1.371 1.389 c -1.126 1.389 -0.888 1.352 -0.656 1.28 c -0.422 1.207 -0.204 1.104 0 0.97 c 0 0 l f Q q 1 0 0 1 199.155 82.919 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.419 0 -0.776 -0.072 -1.07 -0.214 c -1.364 -0.357 -1.606 -0.539 -1.794 -0.76 c -1.984 -0.982 -2.123 -1.226 -2.21 -1.494 c -2.297 -1.762 -2.341 -2.021 -2.341 -2.271 c -2.341 -2.609 -2.278 -2.916 -2.153 -3.192 c -2.028 -3.469 -1.86 -3.705 -1.651 -3.9 c -1.441 -4.095 -1.196 -4.246 -0.917 -4.354 c -0.638 -4.462 -0.341 -4.515 -0.027 -4.515 c 0.131 -4.515 0.291 -4.5 0.454 -4.468 c 0.617 -4.436 0.775 -4.389 0.926 -4.328 c 1.077 -4.267 1.22 -4.192 1.353 -4.106 c 1.487 -4.018 1.607 -3.919 1.712 -3.808 c 1.804 -3.704 1.888 -3.587 1.961 -3.459 c 2.034 -3.331 2.097 -3.199 2.149 -3.062 c 2.202 -2.925 2.24 -2.785 2.266 -2.642 c 2.292 -2.499 2.305 -2.365 2.305 -2.236 c 2.305 -1.991 2.259 -1.737 2.166 -1.472 c 2.073 -1.207 1.93 -0.965 1.738 -0.747 c 1.546 -0.529 1.306 -0.35 1.018 -0.21 c 0.729 -0.07 0.39 0 0 0 c h -0.034 0.803 m 0.459 0.803 0.906 0.719 1.301 0.55 c 1.697 0.381 2.035 0.157 2.315 -0.123 c 2.594 -0.402 2.808 -0.725 2.956 -1.092 c 3.105 -1.459 3.179 -1.843 3.179 -2.245 c 3.179 -2.676 3.101 -3.077 2.943 -3.451 c 2.785 -3.823 2.564 -4.146 2.28 -4.42 c 1.994 -4.693 1.652 -4.91 1.253 -5.07 c 0.855 -5.23 0.411 -5.31 -0.078 -5.31 c -0.545 -5.31 -0.971 -5.23 -1.358 -5.07 c -1.745 -4.91 -2.077 -4.692 -2.353 -4.415 c -2.63 -4.139 -2.845 -3.816 -2.996 -3.446 c -3.147 -3.076 -3.223 -2.685 -3.223 -2.271 c -3.223 -1.875 -3.151 -1.492 -3.009 -1.123 c -2.867 -0.753 -2.66 -0.425 -2.388 -0.14 c -2.117 0.145 -1.785 0.373 -1.388 0.546 c -0.993 0.717 -0.542 0.803 -0.034 0.803 c f Q q 1 0 0 1 208.886 77.687 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.734 0 l -4.716 4.586 l -4.716 0 l -5.52 0 l -5.52 5.957 l -4.829 5.957 l -0.812 1.337 l -0.812 5.957 l 0 5.957 l 0 0 l f Q q 1 0 0 1 0 -0 cm 0 0 0 0.27 k /GS2 gs 172.208 69.747 0.584 4.061 re f Q q 1 0 0 1 176.824 73.296 cm 0 0 0 0.27 k /GS2 gs 0 0 m -1.417 0 l -1.417 -3.549 l -2.001 -3.549 l -2.001 0 l -3.394 0 l -3.394 0.512 l 0 0.512 l 0 0 l f Q q 1 0 0 1 182.158 72.903 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.214 0.123 -0.44 0.221 -0.675 0.295 c -0.912 0.368 -1.155 0.405 -1.405 0.405 c -1.651 0.405 -1.873 0.363 -2.072 0.279 c -2.271 0.196 -2.439 0.083 -2.578 -0.06 c -2.717 -0.202 -2.825 -0.367 -2.899 -0.553 c -2.975 -0.741 -3.013 -0.935 -3.013 -1.137 c -3.013 -1.328 -2.979 -1.515 -2.912 -1.697 c -2.844 -1.88 -2.744 -2.042 -2.611 -2.186 c -2.478 -2.328 -2.31 -2.445 -2.108 -2.534 c -1.906 -2.623 -1.669 -2.668 -1.399 -2.668 c -1.142 -2.668 -0.89 -2.627 -0.646 -2.546 c -0.402 -2.465 -0.172 -2.354 0.042 -2.215 c 0.042 -2.852 l -0.196 -2.98 -0.436 -3.071 -0.679 -3.126 c -0.92 -3.182 -1.173 -3.21 -1.434 -3.21 c -1.812 -3.21 -2.137 -3.146 -2.411 -3.019 c -2.685 -2.892 -2.912 -2.728 -3.09 -2.528 c -3.269 -2.327 -3.402 -2.104 -3.489 -1.858 c -3.577 -1.612 -3.62 -1.37 -3.62 -1.132 c -3.62 -0.854 -3.566 -0.588 -3.457 -0.334 c -3.347 -0.079 -3.197 0.143 -3.004 0.333 c -2.811 0.524 -2.58 0.676 -2.31 0.789 c -2.04 0.902 -1.745 0.959 -1.423 0.959 c -1.268 0.959 -1.118 0.947 -0.974 0.923 c -0.829 0.899 -0.696 0.869 -0.575 0.834 c -0.454 0.798 -0.344 0.761 -0.247 0.724 c -0.15 0.685 -0.067 0.653 0 0.626 c 0 0 l f Q q 1 0 0 1 184.515 71.355 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 0.028 -0.006 0.077 -0.018 0.149 c -0.03 0.22 -0.058 0.294 -0.101 0.369 c -0.145 0.445 -0.21 0.512 -0.295 0.572 c -0.381 0.631 -0.499 0.661 -0.649 0.661 c -0.733 0.661 -0.821 0.643 -0.915 0.607 c -1.008 0.572 -1.09 0.514 -1.162 0.435 c -1.233 0.355 -1.28 0.278 -1.301 0.202 c -1.323 0.127 -1.339 0.06 -1.346 0 c 0 0 l h 0.476 -1.346 m 0.428 -1.378 0.374 -1.411 0.312 -1.447 c 0.251 -1.483 0.177 -1.517 0.092 -1.548 c 0.006 -1.58 -0.091 -1.607 -0.2 -1.629 c -0.309 -1.65 -0.433 -1.662 -0.572 -1.662 c -0.644 -1.662 -0.716 -1.658 -0.789 -1.65 c -0.863 -1.642 -0.938 -1.625 -1.015 -1.599 c -1.093 -1.573 -1.173 -1.536 -1.254 -1.486 c -1.335 -1.436 -1.415 -1.37 -1.493 -1.286 c -1.579 -1.195 -1.65 -1.102 -1.703 -1.006 c -1.755 -0.911 -1.796 -0.819 -1.823 -0.73 c -1.85 -0.64 -1.869 -0.555 -1.876 -0.474 c -1.884 -0.392 -1.888 -0.319 -1.888 -0.256 c -1.888 -0.05 -1.858 0.139 -1.797 0.309 c -1.736 0.48 -1.651 0.625 -1.541 0.744 c -1.431 0.864 -1.299 0.956 -1.147 1.021 c -0.994 1.086 -0.826 1.12 -0.644 1.12 c -0.489 1.12 -0.346 1.093 -0.215 1.039 c -0.084 0.986 0.03 0.913 0.127 0.822 c 0.225 0.73 0.305 0.621 0.366 0.494 c 0.428 0.367 0.47 0.23 0.494 0.083 c 0.509 -0.008 0.519 -0.085 0.521 -0.146 c 0.523 -0.208 0.523 -0.264 0.523 -0.316 c -1.358 -0.316 l -1.354 -0.415 -1.334 -0.514 -1.299 -0.614 c -1.263 -0.713 -1.209 -0.803 -1.138 -0.884 c -1.066 -0.966 -0.978 -1.031 -0.872 -1.08 c -0.767 -1.131 -0.642 -1.155 -0.495 -1.155 c -0.32 -1.155 -0.15 -1.127 0.015 -1.069 c 0.179 -1.012 0.333 -0.931 0.476 -0.828 c 0.476 -1.346 l f Q q 1 0 0 1 186.092 72.421 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0 -0.613 l 0.044 -0.546 0.093 -0.474 0.146 -0.396 c 0.2 -0.319 0.259 -0.246 0.325 -0.178 c 0.39 -0.111 0.462 -0.056 0.539 -0.012 c 0.616 0.032 0.703 0.054 0.798 0.054 c 0.818 0.054 0.846 0.052 0.884 0.048 c 0.922 0.043 0.968 0.032 1.021 0.012 c 1.075 -0.008 1.135 -0.038 1.203 -0.077 c 1.27 -0.117 1.344 -0.175 1.423 -0.25 c 1.143 -0.714 l 1.128 -0.699 1.102 -0.675 1.066 -0.646 c 1.031 -0.616 0.989 -0.587 0.941 -0.56 c 0.894 -0.532 0.843 -0.507 0.789 -0.485 c 0.736 -0.463 0.683 -0.453 0.632 -0.453 c 0.584 -0.453 0.523 -0.466 0.45 -0.494 c 0.376 -0.522 0.307 -0.568 0.241 -0.634 c 0.176 -0.699 0.119 -0.785 0.072 -0.89 c 0.024 -0.995 0 -1.123 0 -1.275 c 0 -2.674 l -0.53 -2.674 l -0.53 0 l 0 0 l f Q q 1 0 0 1 188.788 72.421 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.845 0 l 0.845 -0.476 l 0 -0.476 l 0 -1.644 l 0 -1.727 0.002 -1.795 0.006 -1.846 c 0.01 -1.898 0.015 -1.941 0.021 -1.977 c 0.027 -2.013 0.036 -2.041 0.047 -2.063 c 0.06 -2.085 0.075 -2.108 0.095 -2.132 c 0.146 -2.187 0.2 -2.22 0.256 -2.23 c 0.312 -2.24 0.353 -2.245 0.381 -2.245 c 0.437 -2.245 0.514 -2.236 0.613 -2.218 c 0.712 -2.2 0.836 -2.146 0.983 -2.055 c 0.983 -2.549 l 0.855 -2.616 0.729 -2.663 0.604 -2.688 c 0.479 -2.714 0.377 -2.727 0.297 -2.727 c 0.25 -2.727 0.196 -2.722 0.137 -2.713 c 0.077 -2.702 0.015 -2.683 -0.051 -2.656 c -0.116 -2.628 -0.179 -2.593 -0.238 -2.552 c -0.298 -2.51 -0.352 -2.455 -0.399 -2.388 c -0.467 -2.289 -0.506 -2.173 -0.515 -2.043 c -0.525 -1.912 -0.53 -1.784 -0.53 -1.661 c -0.53 -0.476 l -0.995 -0.476 l -0.995 -0.423 l 0 0.554 l 0 0 l f Q q 1 0 0 1 190.693 69.747 cm 0 0 0 0.27 k /GS2 gs 0 0 -0.53 2.674 re -0.268 3.799 m -0.177 3.799 -0.101 3.768 -0.042 3.707 c 0.018 3.645 0.048 3.573 0.048 3.49 c 0.048 3.406 0.017 3.333 -0.044 3.269 c -0.106 3.206 -0.181 3.174 -0.268 3.174 c -0.371 3.174 -0.449 3.21 -0.5 3.281 c -0.552 3.352 -0.578 3.422 -0.578 3.49 c -0.578 3.565 -0.549 3.636 -0.491 3.701 c -0.434 3.766 -0.359 3.799 -0.268 3.799 c f Q q 1 0 0 1 192.949 73.29 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.032 0.012 -0.064 0.023 -0.098 0.033 c -0.132 0.043 -0.18 0.048 -0.244 0.048 c -0.383 0.048 -0.49 0.023 -0.566 -0.026 c -0.64 -0.076 -0.695 -0.139 -0.729 -0.214 c -0.763 -0.29 -0.782 -0.372 -0.789 -0.461 c -0.795 -0.55 -0.799 -0.633 -0.799 -0.708 c -0.799 -0.869 l -0.321 -0.869 l -0.321 -1.346 l -0.799 -1.346 l -0.799 -3.543 l -1.328 -3.543 l -1.328 -1.346 l -1.703 -1.346 l -1.703 -0.869 l -1.328 -0.869 l -1.328 -0.708 l -1.328 -0.49 -1.312 -0.325 -1.281 -0.214 c -1.249 -0.103 -1.22 -0.018 -1.192 0.042 c -1.113 0.2 -1.004 0.329 -0.861 0.426 c -0.72 0.523 -0.563 0.572 -0.392 0.572 c -0.314 0.572 -0.242 0.567 -0.178 0.557 c -0.115 0.547 -0.055 0.534 0 0.518 c 0 0 l f Q q 1 0 0 1 193.849 69.747 cm 0 0 0 0.27 k /GS2 gs 0 0 -0.531 2.674 re -0.269 3.799 m -0.177 3.799 -0.102 3.768 -0.042 3.707 c 0.018 3.645 0.047 3.573 0.047 3.49 c 0.047 3.406 0.016 3.333 -0.045 3.269 c -0.106 3.206 -0.182 3.174 -0.269 3.174 c -0.372 3.174 -0.45 3.21 -0.501 3.281 c -0.553 3.352 -0.578 3.422 -0.578 3.49 c -0.578 3.565 -0.549 3.636 -0.492 3.701 c -0.434 3.766 -0.359 3.799 -0.269 3.799 c f Q q 1 0 0 1 196.625 71.724 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.075 0.047 -0.176 0.102 -0.298 0.164 c -0.422 0.225 -0.57 0.256 -0.745 0.256 c -0.884 0.256 -1.004 0.229 -1.105 0.176 c -1.207 0.122 -1.29 0.053 -1.358 -0.033 c -1.425 -0.118 -1.476 -0.213 -1.51 -0.319 c -1.544 -0.423 -1.561 -0.53 -1.561 -0.637 c -1.561 -0.748 -1.544 -0.858 -1.51 -0.965 c -1.476 -1.072 -1.423 -1.167 -1.349 -1.251 c -1.276 -1.334 -1.18 -1.402 -1.063 -1.453 c -0.946 -1.505 -0.806 -1.531 -0.644 -1.531 c -0.504 -1.531 -0.378 -1.512 -0.262 -1.474 c -0.148 -1.436 -0.04 -1.396 0.06 -1.352 c 0.06 -1.876 l 0 -1.896 -0.098 -1.926 -0.233 -1.968 c -0.368 -2.01 -0.53 -2.031 -0.721 -2.031 c -0.952 -2.031 -1.153 -1.993 -1.325 -1.917 c -1.498 -1.842 -1.64 -1.742 -1.751 -1.617 c -1.864 -1.492 -1.949 -1.346 -2.005 -1.179 c -2.062 -1.013 -2.091 -0.838 -2.091 -0.655 c -2.091 -0.493 -2.067 -0.328 -2.019 -0.161 c -1.973 0.006 -1.896 0.157 -1.79 0.292 c -1.684 0.426 -1.548 0.537 -1.382 0.622 c -1.215 0.708 -1.013 0.75 -0.775 0.75 c -0.6 0.75 -0.453 0.73 -0.334 0.691 c -0.215 0.651 -0.103 0.609 0 0.566 c 0 0 l f Q q 1 0 0 1 198.499 71.069 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.117 -0.04 -0.226 -0.079 -0.328 -0.119 c -0.43 -0.159 -0.52 -0.204 -0.597 -0.253 c -0.675 -0.303 -0.738 -0.358 -0.784 -0.417 c -0.83 -0.477 -0.853 -0.546 -0.853 -0.626 c -0.853 -0.737 -0.816 -0.827 -0.745 -0.896 c -0.673 -0.966 -0.581 -1.001 -0.468 -1.001 c -0.385 -1.001 -0.304 -0.981 -0.226 -0.941 c -0.148 -0.901 -0.073 -0.848 0 -0.78 c 0 0 l h 0.91 -1.167 m 0.787 -1.247 0.692 -1.301 0.624 -1.331 c 0.557 -1.361 0.481 -1.376 0.398 -1.376 c 0.172 -1.376 0.036 -1.285 -0.006 -1.102 c -0.237 -1.285 -0.477 -1.376 -0.728 -1.376 c -0.826 -1.376 -0.916 -1.358 -0.996 -1.322 c -1.076 -1.286 -1.143 -1.239 -1.201 -1.179 c -1.258 -1.12 -1.303 -1.05 -1.334 -0.971 c -1.366 -0.891 -1.382 -0.808 -1.382 -0.721 c -1.382 -0.589 -1.354 -0.478 -1.299 -0.387 c -1.244 -0.296 -1.173 -0.22 -1.087 -0.158 c -1.002 -0.096 -0.905 -0.044 -0.796 0 c -0.686 0.043 -0.579 0.086 -0.471 0.125 c 0 0.291 l 0 0.434 l 0 0.602 -0.041 0.721 -0.12 0.795 c -0.2 0.868 -0.321 0.905 -0.483 0.905 c -0.631 0.905 -0.776 0.87 -0.921 0.798 c -1.066 0.726 -1.202 0.615 -1.329 0.464 c -1.329 1.042 l -1.123 1.284 -0.827 1.405 -0.442 1.405 c -0.307 1.405 -0.18 1.388 -0.06 1.352 c 0.059 1.316 0.162 1.262 0.248 1.191 c 0.337 1.119 0.405 1.028 0.455 0.917 c 0.504 0.805 0.529 0.674 0.529 0.524 c 0.529 -0.851 l 0.529 -0.943 0.563 -0.989 0.63 -0.989 c 0.69 -0.989 0.784 -0.941 0.91 -0.846 c 0.91 -1.167 l f Q q 1 0 0 1 200.483 72.421 cm 0 0 0 0.27 k /GS2 gs 0 0 m 0.846 0 l 0.846 -0.476 l 0 -0.476 l 0 -1.644 l 0 -1.727 0.002 -1.795 0.006 -1.846 c 0.01 -1.898 0.015 -1.941 0.02 -1.977 c 0.026 -2.013 0.036 -2.041 0.047 -2.063 c 0.059 -2.085 0.075 -2.108 0.095 -2.132 c 0.147 -2.187 0.2 -2.22 0.256 -2.23 c 0.311 -2.24 0.354 -2.245 0.381 -2.245 c 0.437 -2.245 0.514 -2.236 0.612 -2.218 c 0.712 -2.2 0.835 -2.146 0.983 -2.055 c 0.983 -2.549 l 0.855 -2.616 0.729 -2.663 0.605 -2.688 c 0.479 -2.714 0.377 -2.727 0.297 -2.727 c 0.25 -2.727 0.196 -2.722 0.137 -2.713 c 0.077 -2.702 0.015 -2.683 -0.051 -2.656 c -0.117 -2.628 -0.178 -2.593 -0.238 -2.552 c -0.298 -2.51 -0.352 -2.455 -0.399 -2.388 c -0.467 -2.289 -0.505 -2.173 -0.516 -2.043 c -0.525 -1.912 -0.53 -1.784 -0.53 -1.661 c -0.53 -0.476 l -0.995 -0.476 l -0.995 -0.423 l 0 0.554 l 0 0 l f Q q 1 0 0 1 202.388 69.747 cm 0 0 0 0.27 k /GS2 gs 0 0 -0.53 2.674 re -0.268 3.799 m -0.176 3.799 -0.102 3.768 -0.042 3.707 c 0.018 3.645 0.047 3.573 0.047 3.49 c 0.047 3.406 0.017 3.333 -0.045 3.269 c -0.106 3.206 -0.182 3.174 -0.268 3.174 c -0.372 3.174 -0.45 3.21 -0.501 3.281 c -0.552 3.352 -0.578 3.422 -0.578 3.49 c -0.578 3.565 -0.549 3.636 -0.491 3.701 c -0.434 3.766 -0.359 3.799 -0.268 3.799 c f Q q 1 0 0 1 204.469 71.998 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.12 0 -0.233 -0.02 -0.337 -0.059 c -0.442 -0.099 -0.535 -0.158 -0.615 -0.235 c -0.694 -0.312 -0.756 -0.409 -0.802 -0.524 c -0.848 -0.639 -0.871 -0.77 -0.871 -0.917 c -0.871 -1.084 -0.843 -1.226 -0.786 -1.343 c -0.732 -1.46 -0.66 -1.554 -0.572 -1.626 c -0.485 -1.697 -0.389 -1.749 -0.284 -1.78 c -0.179 -1.812 -0.077 -1.828 0.023 -1.828 c 0.154 -1.828 0.274 -1.805 0.381 -1.76 c 0.488 -1.714 0.579 -1.652 0.656 -1.572 c 0.734 -1.493 0.795 -1.396 0.839 -1.283 c 0.883 -1.17 0.904 -1.046 0.904 -0.911 c 0.904 -0.745 0.874 -0.602 0.815 -0.485 c 0.755 -0.368 0.68 -0.274 0.592 -0.202 c 0.502 -0.131 0.405 -0.079 0.3 -0.047 c 0.195 -0.016 0.094 0 0 0 c h 0.029 0.477 m 0.227 0.477 0.413 0.443 0.586 0.375 c 0.759 0.308 0.908 0.213 1.035 0.092 c 1.163 -0.029 1.262 -0.175 1.336 -0.348 c 1.409 -0.521 1.446 -0.713 1.446 -0.923 c 1.446 -1.161 1.403 -1.367 1.315 -1.542 c 1.227 -1.717 1.114 -1.861 0.976 -1.974 c 0.837 -2.087 0.682 -2.171 0.514 -2.224 c 0.346 -2.278 0.178 -2.305 0.011 -2.305 c -0.204 -2.305 -0.398 -2.268 -0.572 -2.194 c -0.748 -2.121 -0.897 -2.021 -1.022 -1.894 c -1.147 -1.767 -1.244 -1.619 -1.311 -1.45 c -1.378 -1.281 -1.412 -1.102 -1.412 -0.911 c -1.412 -0.724 -1.379 -0.547 -1.314 -0.378 c -1.248 -0.209 -1.154 -0.061 -1.028 0.065 c -0.903 0.193 -0.752 0.293 -0.572 0.366 c -0.394 0.44 -0.193 0.477 0.029 0.477 c f Q q 1 0 0 1 207.127 72.421 cm 0 0 0 0.27 k /GS2 gs 0 0 m -0.001 -0.34 l 0.118 -0.205 0.249 -0.105 0.394 -0.041 c 0.538 0.022 0.673 0.054 0.8 0.054 c 0.839 0.054 0.891 0.049 0.955 0.039 c 1.018 0.029 1.085 0.009 1.157 -0.021 c 1.228 -0.051 1.299 -0.094 1.368 -0.152 c 1.437 -0.21 1.5 -0.284 1.555 -0.375 c 1.574 -0.407 1.593 -0.443 1.611 -0.482 c 1.629 -0.522 1.644 -0.57 1.659 -0.628 c 1.672 -0.686 1.683 -0.756 1.692 -0.84 c 1.699 -0.923 1.703 -1.026 1.703 -1.149 c 1.703 -2.674 l 1.173 -2.674 l 1.173 -1.149 l 1.173 -1.006 1.167 -0.892 1.156 -0.804 c 1.144 -0.716 1.102 -0.633 1.03 -0.554 c 0.978 -0.498 0.922 -0.456 0.86 -0.429 c 0.799 -0.401 0.723 -0.387 0.631 -0.387 c 0.508 -0.387 0.392 -0.421 0.283 -0.488 c 0.174 -0.556 0.079 -0.647 0 -0.762 c 0 -2.674 l -0.542 -2.674 l -0.542 0 l 0 0 l f Q EMC EMC q 1 0 0 1 50.58 43.02 cm 0 g /GS4 gs 0 Tc 0 Tw /Fm1 Do Q endstream endobj 47790 0 obj <> endobj 47791 0 obj <>stream q /Fm0 Do Q q 1 0 0 1 107.479 694.748 cm 0.146 g /GS0 gs 0 0 m -4.998 0 -4.998 -4.998 v -4.998 -42.983 l -4.998 -47.981 0 -47.981 v 397.841 -47.981 l 402.839 -47.981 402.839 -42.983 v 402.839 -4.998 l 402.839 0 397.841 0 v 0 0 l f Q BT /GS1 gs /T1_0 1 Tf 9.996 0 0 9.996 186.78 622.811 Tm [( )278( )]TJ 0.0505 Tc T* [(In)9(f)12(o)5(r)10(m)-1(IT)]TJ /T1_1 1 Tf 0.0393 Tc 0.0007 Tw 4.358 0 Td [( i)8(s)-1( a br)17(an)6(d o)9(f)-1( P)12(ear)5(son an)6(d the on)6(l)11(i)6(ne pr)23(esence)39( )]TJ -4.358 -1.4 Td [(f)15(o)-3(r the w)7(o)-3(r)7(l)9(d\222)33(s lea)12(d)8(i)6(n)6(g t)18(e)-2(c)5(h)2(nology p)5(u)5(b)7(l)11(i)8(sher)5(s)5(. I)9(t)-21(\222)33(s)-1( y)13(o)-3(ur sour)24(ce)39( )]TJ 0.0391 Tc 0.0009 Tw 0 -1.4 TD [(f)15(o)-4(r r)23(e)3(l)10(i)7(ab)7(le an)6(d q)5(u)2(al)10(i)5(f)3(i)5(e)3(d con)11(t)18(en)11(t an)6(d kno)6(wled)7(g)2(e)15(,)-1( pr)17(o)12(v)2(i)11(d)8(i)6(n)6(g)39( )]TJ 0.0394 Tc 0.0006 Tw T* [(a)8(c)2(cess t)15(o)-1( the t)15(o)-1(p br)17(an)6(ds)5(, a)9(uthor)5(s)5(,)-1( an)6(d con)11(t)3(r)7(i)10(b)5(ut)15(o)-3(r)5(s)-1( fr)17(o)-9(m)39( )]TJ 0.0356 Tc 0.0044 Tw T* [(the)-4( t)14(e)-5(ch)-4( c)-6(o)-12(m)-11(m)-4(unit)-26(y)56(.)]TJ 1 g /TT0 1 Tf 0.0087 Tc 0 Tw 25.8938 0 0 25.8938 113.0771 663.2345 Tm [(in)-9(f)-7(o)1(r)-5(m)]TJ 0 g 0.0182 Tc 2.825 0 Td (IT)Tj 1 g 0.0113 Tc 0.742 0 Td [(.co)4(m)]TJ 0 g 0 Tc 28.4832 0 0 28.4832 257.013 663.2345 Tm ( )Tj 1 g /T1_1 1 Tf 0.03 Tc 9.0628 0 0 9.0628 267.398 662.9957 Tm [(T)-17(H)-19(E T)-17(R)-11(U)-13(S)-8(T)-17(E)-5(D T)-17(E)3(C)-10(H)-20(N)-16(O)-16(L)22(O)-15(G)30(Y L)-14(E)-37(A)-18(R)-20(N)-8(I)-7(N)-19(G S)-10(O)-12(U)-17(R)-14(C)-9(E)]TJ 0 g /TT0 1 Tf 0.0244 Tc 22.2211 0 0 22.2211 216.66 502.252 Tm [(Le)11(a)9(r)5(nIT)9( )]TJ /T1_1 1 Tf -0.0079 Tc 20.5118 0 0 20.5118 291.193 502.252 Tm (at)Tj /TT0 1 Tf 0.0133 Tc 0.0017 Tw 22.2211 0 0 22.2211 308.446 502.252 Tm [( In)-11(f)-8(or)-7(m)-52(I)-11(T)]TJ /T1_1 1 Tf 0.0396 Tc 0.0004 Tw 9.996 0 0 9.996 135.301 478.868 Tm [(Lo)-8(o)-6(ki)7(n)6(g f)15(o)-3(r a bo)-8(o)-6(k)-1(, e)-8(B)-10(o)-8(o)-6(k, or tr)18(ai)7(n)7(i)7(n)6(g vi)11(deo on a ne)9(w t)18(e)-1(c)5(h)2(nology)-26(? S)-9(e)-2(eki)7(n)6(g)40( )]TJ 0.039 Tc 0.001 Tw T* [(t)6(i)2(mely an)6(d r)23(e)3(le)15(v)17(an)11(t)-1( i)6(n)11(f)15(o)-4(rma)10(t)6(ion an)6(d tut)14(o)-4(r)7(i)7(al)6(s? Lo)-9(o)-7(ki)6(n)6(g f)15(o)-4(r e)23(x)2(per)-23(t)-1( op)8(i)6(n)7(ions)5(,)39( )]TJ 0.0392 Tc 0.0008 Tw T* [(a)12(d)1(vi)6(ce)16(, an)6(d t)6(i)10(p)8(s)-4(? )]TJ /T1_0 1 Tf 0.0408 Tc -0.0008 Tw [(I)-9(nfo)-4(rm)-11(I)-11(T)1( h)-5(a)-3(s t)-9(h)-10(e solu)-7(t)-8(i)-2(on)-7(.)]TJ /T1_1 1 Tf 0.04 Tc 0 Tw 1.7 -2.1 Td (\201 )Tj 0.582 Tc 0.54 0 Td ( )Tj 0.0389 Tc 0.0011 Tw 0.86 0 Td [(L)4(earn about ne)9(w r)23(e)2(leases an)5(d spec)9(i)7(a)4(l pr)17(o)-9(m)-8(o)5(t)6(ions b)21(y)39( )]TJ 0.0385 Tc 0.0015 Tw T* [(su)4(b)6(s)3(c)5(r)6(i)9(b)7(i)5(n)5(g t)14(o)-1( a wi)10(de v)17(a)1(r)6(i)5(e)8(t)-23(y o)8(f)-1( ne)8(ws)5(le)8(t)-22(t)17(er)4(s)5(.)39( )]TJ 0.0463 Tc 0 Tw T* [(Vi)15(s)14(i)12(t)6( )]TJ /T1_0 1 Tf 0.0412 Tc 2.336 0 Td [(info)-4(rmit)-24(.c)-4(o)-4(m)-67(/)-35(n)-9(ewsl)-9(e)-5(t)-22(te)-9(r)-6(s)]TJ /T1_1 1 Tf 0 Tc 12.99 0 Td (.)Tj 0.04 Tc -16.726 -2 Td [(\201 )-224( )]TJ 0.0393 Tc 0.0007 Tw 1.4 0 Td [(A)8(c)2(cess F)-13(R)-15(EE podcas)8(t)6(s fr)17(o)-9(m)-1( e)24(x)2(per)-22(t)6(s a)11(t)-1( )]TJ /T1_0 1 Tf 0.0411 Tc 0 Tw 19.217 0 Td [(info)-4(rmit)-24(.c)-4(o)-4(m)-67(/)-37(p)-7(o)-9(d)-8(c)-8(a)-3(s)-4(t)-8(s)]TJ /T1_1 1 Tf 0 Tc 11.746 0 Td (.)Tj 0.04 Tc -32.364 -2 Td [(\201 )-224( )]TJ 0.0395 Tc 0.0005 Tw 1.4 0 Td [(Rea)13(d the l)7(a)11(t)18(e)1(s)8(t a)9(uthor ar)-22(t)6(i)7(c)8(l)4(es an)6(d samp)7(le c)5(h)4(ap)15(t)18(e)1(r)5(s a)11(t)40( )]TJ /T1_0 1 Tf 0.0417 Tc 0 Tw T* [(info)-3(rmit)-24(.c)-4(o)-3(m)-66(/)-37(a)-5(r)-25(t)-7(icl)-8(e)-7(s)]TJ /T1_1 1 Tf 0 Tc 10.873 0 Td (.)Tj 0.04 Tc 0.542 Tw -12.273 -2 Td (\201 )Tj 0.0398 Tc 0.0002 Tw 1.4 0 Td [(A)8(c)3(cess thousan)6(d)4(s o)9(f bo)-8(o)-6(k)13(s an)6(d vi)11(deos i)7(n the S)-9(a)11(f)15(a)2(r)8(i B)-9(o)-8(o)-6(k)13(s)40( )]TJ 0.03 Tc 0.01 Tw T* [(O)-19(n)-3(lin)-9(e)-10( digi)-5(t)-10(a)-5(l)-10( lib)-5(r)8(a)-8(r)-33(y)-10( at)-10( )]TJ /T1_0 1 Tf 0.0443 Tc 0 Tw [(safar)6(i.i)5(nf)5(ormit)-21(.)4(com)]TJ /T1_1 1 Tf 0 Tc 21.11 0 Td (.)Tj 0.0399 Tc 0.0001 Tw -22.51 -2 Td [(\201 )-542(Ge)9(t t)7(i)10(p)8(s fr)18(o)-8(m e)24(x)2(per)-22(t b)8(l)1(ogs a)11(t )]TJ /T1_0 1 Tf 0.0415 Tc 0 Tw 15.585 0 Td [(info)-4(rmit)-24(.c)-4(o)-4(m)-66(/)-37(b)-5(lo)-4(g)-7(s)]TJ /T1_1 1 Tf 0 Tc 9.872 0 Td (.)Tj 0.0463 Tc -27.157 -2 Td [(Vi)15(s)14(i)12(t)6( )]TJ /T1_0 1 Tf 0.041 Tc 2.336 0 Td [(info)-4(rmit)-24(.c)-5(o)-4(m)-67(/)-37(l)-9(e)-9(a)-5(rn)]TJ /T1_1 1 Tf 0.0391 Tc 0.0009 Tw 9.625 0 Td [( t)15(o)-1( d)8(i)7(sco)12(v)17(er al)11(l the w)13(a)21(y)7(s)-1( y)13(o)-4(u can a)8(c)2(cess the)39( )]TJ 0.0406 Tc -0.0006 Tw -11.961 -1.4 Td [(ho)7(t)-20(t)19(es)9(t t)19(ec)6(h)3(nology con)13(t)19(en)13(t)7(.)]TJ /TT0 1 Tf 0.0018 Tc 0 Tw 16.1242 0 0 16.1242 133.6683 123.4349 Tm [(in)-9(f)-6(o)2(r)-5(m)-23(I)-9(T)33(.com)]TJ 0 Tc 17.7367 0 0 17.7367 221.955 123.4349 Tm ( )Tj /T1_1 1 Tf 0.03 Tc 5.6435 0 0 5.6435 224.891 123.762 Tm [(T)-32(H)-34(E T)-32(R)-26(U)-28(S)-23(T)-32(E)-21(D T)-32(E)-13(C)-25(H)-35(N)-30(O)-31(L)5(O)-30(G)13(Y L)-29(E)-50(A)-32(R)-34(N)-23(I)-22(N)-33(G S)-25(O)-27(U)-32(R)-29(C)-24(E)]TJ ET 0.146 g /GS0 gs 134.007 117.27 341.011 0.161 re f q 1 0 0 1 202.044 109.297 cm 0 0 m 0.008 0.593 -0.352 1.07 -1.078 1.07 c -1.938 1.07 -2.157 -0.204 -2.157 -0.993 c -2.157 -1.782 -1.938 -3.056 -1.078 -3.056 c -0.352 -3.056 0.008 -2.579 0 -1.985 c 1.289 -1.985 l 1.235 -3.4 0.219 -3.931 -1.078 -3.931 c -2.711 -3.931 -3.446 -2.642 -3.446 -0.993 c -3.446 0.656 -2.711 1.945 -1.078 1.945 c 0.219 1.945 1.235 1.414 1.289 0 c 0 0 l f Q 204.044 109.406 1.172 -3.923 re 205.216 109.406 m h 204.005 111.125 1.25 -1.008 re f q 1 0 0 1 208.201 108.359 cm 0 0 m -0.015 0.265 -0.265 0.383 -0.531 0.383 c -0.851 0.383 -1 0.289 -1 0.031 c -1 -0.586 1.243 -0.235 1.243 -1.704 c 1.243 -2.563 0.196 -2.993 -0.531 -2.993 c -1.445 -2.993 -2.242 -2.633 -2.258 -1.735 c -1.172 -1.735 l -1.148 -2.039 -0.875 -2.212 -0.531 -2.212 c -0.211 -2.212 0.031 -2.079 0.031 -1.774 c 0.031 -1.461 -0.531 -1.329 -0.765 -1.274 c -1.516 -1.094 -2.211 -0.93 -2.211 -0.016 c -2.211 0.805 -1.219 1.164 -0.531 1.164 c 0.297 1.164 1.001 0.867 1.055 0 c 0 0 l f Q q 1 0 0 1 212.21 108.031 cm 0 0 m -0.008 0.32 -0.141 0.711 -0.594 0.711 c -1.094 0.711 -1.102 -0.227 -1.117 -0.532 c -1.086 -0.891 -1.078 -1.884 -0.578 -1.884 c -0.125 -1.884 0.008 -1.438 0.016 -1.118 c 1.156 -1.118 l 1.117 -2.118 0.5 -2.665 -0.578 -2.665 c -1.742 -2.665 -2.329 -1.626 -2.329 -0.586 c -2.329 0.453 -1.742 1.492 -0.578 1.492 c 0.422 1.492 1.164 0.922 1.156 0 c 0 0 l f Q q 1 0 0 1 215.085 107.445 cm 0 0 m 0 0.625 0.118 1.297 0.837 1.297 c 1.556 1.297 1.673 0.625 1.673 0 c 1.673 -0.625 1.556 -1.298 0.837 -1.298 c 0.118 -1.298 0 -0.625 0 0 c h 2.884 0 m 2.884 1.234 2.118 2.078 0.837 2.078 c -0.445 2.078 -1.211 1.234 -1.211 0 c -1.211 -1.235 -0.445 -2.079 0.837 -2.079 c 2.118 -2.079 2.884 -1.235 2.884 0 c f Q q 1 0 0 1 222.196 110.187 cm 0 0 m 0.672 -0.031 1.547 0.204 1.547 -0.797 c 1.547 -1.797 0.672 -1.563 0 -1.594 c 0 0 l h 0 -4.704 m 0 -2.531 l 0.883 -2.531 l 2.141 -2.492 2.837 -1.82 2.837 -0.797 c 2.837 0.633 1.782 0.93 0.532 0.938 c -1.211 0.938 l -1.211 -4.704 l 0 -4.704 l f Q q 1 0 0 1 226.736 109.406 cm 0 0 m 0.023 -0.711 l 0.039 -0.711 l 0.289 -0.094 0.789 0.063 1.376 0.047 c 1.376 -0.992 l 0.868 -0.992 l 0.672 -1.008 0.414 -1.117 0.297 -1.282 c 0.172 -1.5 0.149 -1.719 0.141 -1.977 c 0.141 -3.923 l -1.023 -3.923 l -1.031 -0.782 l -1.031 -0.617 -1.055 -0.289 -1.07 0 c 0 0 l f Q q 1 0 0 1 229.83 107.914 cm 0 0 m 0.016 0.429 0.133 0.828 0.673 0.828 c 1.243 0.828 1.36 0.429 1.36 0 c 0 0 l h 2.571 -0.782 m 2.571 -0.524 2.571 -0.274 2.54 -0.032 c 2.509 0.218 2.454 0.453 2.345 0.671 c 2.017 1.359 1.407 1.609 0.673 1.609 c -0.523 1.609 -1.211 0.703 -1.211 -0.477 c -1.211 -1.79 -0.672 -2.548 0.673 -2.548 c 1.587 -2.548 2.345 -2.227 2.446 -1.259 c 1.392 -1.259 l 1.282 -1.618 1.079 -1.767 0.673 -1.767 c 0.071 -1.767 0 -1.29 0 -0.782 c 2.571 -0.782 l f Q q 1 0 0 1 235.121 108.359 cm 0 0 m -0.016 0.265 -0.266 0.383 -0.532 0.383 c -0.852 0.383 -1.001 0.289 -1.001 0.031 c -1.001 -0.586 1.242 -0.235 1.242 -1.704 c 1.242 -2.563 0.195 -2.993 -0.532 -2.993 c -1.446 -2.993 -2.243 -2.633 -2.259 -1.735 c -1.172 -1.735 l -1.149 -2.039 -0.876 -2.212 -0.532 -2.212 c -0.211 -2.212 0.031 -2.079 0.031 -1.774 c 0.031 -1.461 -0.532 -1.329 -0.766 -1.274 c -1.516 -1.094 -2.212 -0.93 -2.212 -0.016 c -2.212 0.805 -1.219 1.164 -0.532 1.164 c 0.296 1.164 1 0.867 1.054 0 c 0 0 l f Q q 1 0 0 1 239.028 108.359 cm 0 0 m -0.016 0.265 -0.266 0.383 -0.532 0.383 c -0.852 0.383 -1.001 0.289 -1.001 0.031 c -1.001 -0.586 1.242 -0.235 1.242 -1.704 c 1.242 -2.563 0.195 -2.993 -0.532 -2.993 c -1.446 -2.993 -2.243 -2.633 -2.258 -1.735 c -1.172 -1.735 l -1.149 -2.039 -0.876 -2.212 -0.532 -2.212 c -0.211 -2.212 0.031 -2.079 0.031 -1.774 c 0.031 -1.461 -0.532 -1.329 -0.766 -1.274 c -1.516 -1.094 -2.212 -0.93 -2.212 -0.016 c -2.212 0.805 -1.219 1.164 -0.532 1.164 c 0.296 1.164 1 0.867 1.054 0 c 0 0 l f Q q 1 0 0 1 273.089 111.134 cm 0 0 m -2.312 -2.063 -2.956 -5.043 y -3.762 -4.052 l -3.886 -4.648 l -2.646 -6.298 -2.551 -6.501 v -2.268 -2.066 0 0 y f Q q 1 0 0 1 250.551 110.093 cm 0 0 m 3.562 0 l 3.562 -0.427 l 0.464 -0.427 l 0.464 -1.945 l 3.449 -1.945 l 3.449 -2.371 l 0.464 -2.371 l 0.464 -4.052 l 3.612 -4.052 l 3.612 -4.478 l 0 -4.478 l 0 0 l f Q q 1 0 0 1 256.126 107.885 cm 0 0 m -1.743 2.208 l -1.122 2.208 l 0.333 0.364 l 1.831 2.208 l 2.408 2.208 l 0.652 0.025 l 2.465 -2.27 l 1.85 -2.27 l 0.32 -0.345 l -1.223 -2.27 l -1.818 -2.27 l 0 0 l f Q q 1 0 0 1 261.971 106.976 cm 0 0 m -2.358 0 l -2.967 -1.361 l -3.468 -1.361 l -1.436 3.117 l -0.897 3.117 l 1.135 -1.361 l 0.595 -1.361 l 0 0 l h -1.173 2.652 m -2.17 0.426 l -0.188 0.426 l -1.173 2.652 l f Q q 1 0 0 1 268.148 110.093 cm 0 0 m 0.658 0 l 0.658 -4.478 l 0.194 -4.478 l 0.194 -0.609 l 0.181 -0.609 l -1.794 -4.478 l -2.22 -4.478 l -4.189 -0.603 l -4.202 -0.603 l -4.202 -4.478 l -4.666 -4.478 l -4.666 0 l -3.989 0 l -1.995 -3.895 l 0 0 l f Q q 1 0 0 1 278.05 107.358 cm 0 0 m -0.114 -0.589 -0.314 -1.066 -0.753 -1.392 c -1.186 -1.718 -1.863 -1.9 -2.942 -1.9 c -4.014 -1.9 -6.002 -1.825 -6.002 0.496 c -6.002 2.816 -4.014 2.891 -2.942 2.891 c -1.876 2.891 -0.232 2.753 0 0.979 c -1.995 0.979 l -2.045 1.298 -2.258 1.763 -2.942 1.763 c -3.663 1.763 -4.121 1.405 -4.121 0.496 c -4.121 -0.414 -3.675 -0.771 -3.029 -0.771 c -2.471 -0.771 -2.139 -0.539 -1.995 0 c 0 0 l f Q q 1 0 0 1 278.676 110.093 cm 0 0 m 3.726 0 l 4.234 0 4.541 -0.044 4.785 -0.163 c 5.118 -0.327 5.394 -0.759 5.394 -1.248 c 5.394 -1.669 5.218 -2.12 4.704 -2.271 c 4.704 -2.283 l 4.967 -2.358 5.181 -2.584 5.212 -2.973 c 5.287 -3.951 l 5.306 -4.152 5.394 -4.34 5.507 -4.478 c 3.575 -4.478 l 3.512 -4.346 3.512 -4.152 3.481 -3.631 c 3.462 -3.299 3.349 -3.098 3.023 -3.098 c 1.769 -3.098 l 1.769 -4.478 l 0 -4.478 l 0 0 l h 1.769 -1.97 m 3.023 -1.97 l 3.368 -1.97 3.512 -1.832 3.512 -1.549 c 3.512 -1.211 3.293 -1.129 2.998 -1.129 c 1.769 -1.129 l 1.769 -1.97 l f Q q 1 0 0 1 285.976 110.093 cm 0 0 m 2.17 0 l 4.076 -4.478 l 2.195 -4.478 l 2.007 -3.964 l 0.163 -3.964 l -0.025 -4.478 l -1.907 -4.478 l 0 0 l h 1.091 -1.355 m 1.079 -1.355 l 0.552 -2.873 l 1.618 -2.873 l 1.091 -1.355 l f Q q 1 0 0 1 290.278 110.093 cm 0 0 m 2.489 0 l 3.223 -2.603 l 3.236 -2.603 l 3.969 0 l 6.459 0 l 6.459 -4.478 l 4.854 -4.478 l 4.854 -1.28 l 4.841 -1.28 l 3.901 -4.478 l 2.558 -4.478 l 1.618 -1.28 l 1.605 -1.28 l 1.605 -4.478 l 0 -4.478 l 0 0 l f Q q 1 0 0 1 138.372 108.559 cm 0 0 m -2.886 0 l -1.456 2.51 l 0 0 l f Q q 1 0 0 1 136.57 108.038 cm 0 0 m -1.442 -2.501 l -2.902 -0.008 l 0 0 l f Q q 1 0 0 1 140.046 108.038 cm 0 0 m -1.442 -2.501 l -2.902 -0.008 l 0 0 l f Q q 1 0 0 1 144.008 107.581 cm 0 0 m -1.709 0 l -0.847 2.002 l 0 0 l h 0.097 -0.27 m 0.367 -0.892 l 0.427 -1.042 0.547 -1.297 0.547 -1.461 c 0.547 -1.724 0.36 -1.784 0.037 -1.799 c 0.037 -1.934 l 1.994 -1.934 l 1.994 -1.799 l 1.439 -1.776 1.296 -1.357 1.109 -0.907 c -0.577 3.141 l -0.712 3.141 l -2.496 -1.042 l -2.721 -1.566 -2.879 -1.761 -3.268 -1.799 c -3.268 -1.934 l -1.709 -1.934 l -1.709 -1.799 l -1.987 -1.776 -2.286 -1.746 -2.286 -1.469 c -2.286 -1.326 -2.181 -1.094 -2.122 -0.967 c -1.822 -0.27 l 0.097 -0.27 l f Q q 1 0 0 1 148.685 106.284 cm 0 0 m -0.172 -0.187 -0.382 -0.337 -0.645 -0.337 c -1.214 -0.337 -1.672 0.263 -1.672 1.177 c -1.672 2.347 -1.049 2.594 -0.78 2.594 c -0.27 2.594 0 2.084 0 1.635 c 0 0 l h 0 2.534 m -0.195 2.736 -0.472 2.819 -0.742 2.819 c -1.717 2.819 -2.354 1.807 -2.354 0.915 c -2.354 0.128 -1.874 -0.742 -0.997 -0.742 c -0.577 -0.742 -0.285 -0.554 0 -0.262 c 0 -0.742 l 0.165 -0.742 l 1.177 -0.329 l 1.124 -0.202 l 0.869 -0.262 l 0.765 -0.262 0.607 -0.262 0.607 0.248 c 0.607 4.565 l 0.442 4.565 l -0.57 4.153 l -0.517 4.026 l -0.262 4.086 l -0.157 4.086 0 4.086 0 3.576 c 0 2.534 l f Q q 1 0 0 1 152.433 106.284 cm 0 0 m -0.173 -0.187 -0.383 -0.337 -0.645 -0.337 c -1.215 -0.337 -1.672 0.263 -1.672 1.177 c -1.672 2.347 -1.05 2.594 -0.78 2.594 c -0.27 2.594 0 2.084 0 1.635 c 0 0 l h 0 2.534 m -0.195 2.736 -0.472 2.819 -0.742 2.819 c -1.717 2.819 -2.354 1.807 -2.354 0.915 c -2.354 0.128 -1.874 -0.742 -0.997 -0.742 c -0.577 -0.742 -0.285 -0.554 0 -0.262 c 0 -0.742 l 0.165 -0.742 l 1.177 -0.329 l 1.124 -0.202 l 0.869 -0.262 l 0.764 -0.262 0.607 -0.262 0.607 0.248 c 0.607 4.565 l 0.442 4.565 l -0.57 4.153 l -0.517 4.026 l -0.263 4.086 l -0.158 4.086 0 4.086 0 3.576 c 0 2.534 l f Q q 1 0 0 1 154.951 106.284 cm 0 0 m 0 -0.442 0.173 -0.494 0.518 -0.502 c 0.518 -0.637 l -1.124 -0.637 l -1.124 -0.502 l -0.779 -0.494 -0.607 -0.442 -0.607 0 c -0.607 1.829 l -0.607 2.339 -0.764 2.339 -0.869 2.339 c -1.124 2.279 l -1.176 2.407 l -0.165 2.819 l 0 2.819 l 0 0 l h -0.307 4.565 m -0.105 4.565 0.06 4.4 0.06 4.198 c 0.06 3.996 -0.105 3.831 -0.307 3.831 c -0.509 3.831 -0.674 3.996 -0.674 4.198 c -0.674 4.4 -0.509 4.565 -0.307 4.565 c f Q q 1 0 0 1 158.077 107.956 cm 0 0 m -0.135 0 l -0.247 0.502 -0.45 0.922 -1.034 0.922 c -1.304 0.922 -1.604 0.772 -1.604 0.465 c -1.604 -0.352 0.247 -0.247 0.247 -1.409 c 0.247 -2.024 -0.33 -2.414 -0.899 -2.414 c -1.117 -2.414 -1.357 -2.361 -1.574 -2.301 c -1.761 -2.264 l -1.896 -2.361 l -2.031 -2.361 l -2.031 -1.162 l -1.896 -1.162 l -1.829 -1.687 -1.432 -2.189 -0.869 -2.189 c -0.562 -2.189 -0.292 -2.009 -0.292 -1.679 c -0.292 -0.802 -2.039 -0.922 -2.039 0.142 c -2.039 0.757 -1.597 1.147 -0.997 1.147 c -0.839 1.147 -0.719 1.109 -0.57 1.064 c -0.48 1.042 -0.382 1.004 -0.292 1.004 c -0.195 1.004 -0.165 1.064 -0.135 1.147 c 0 1.147 l 0 0 l f Q q 1 0 0 1 160.326 108.848 cm 0 0 m 0.832 0 1.057 -1.109 1.057 -1.762 c 1.057 -2.286 0.929 -3.051 0.247 -3.051 c -0.585 -3.051 -0.817 -1.882 -0.817 -1.237 c -0.817 -0.277 -0.368 0 0 0 c h 0.127 0.255 m -0.855 0.255 -1.499 -0.637 -1.499 -1.559 c -1.499 -2.459 -0.877 -3.306 0.075 -3.306 c 1.259 -3.306 1.739 -2.219 1.739 -1.447 c 1.739 -0.532 1.064 0.255 0.127 0.255 c f Q q 1 0 0 1 163.534 108.398 cm 0 0 m 0.42 0.465 0.712 0.705 1.139 0.705 c 1.746 0.705 1.986 0.135 1.986 -0.427 c 1.986 -2.114 l 1.986 -2.556 2.159 -2.608 2.503 -2.616 c 2.503 -2.751 l 0.862 -2.751 l 0.862 -2.616 l 1.207 -2.608 1.379 -2.556 1.379 -2.114 c 1.379 -0.562 l 1.379 0.18 1.072 0.255 0.847 0.255 c 0.502 0.255 0.247 0.03 0 -0.225 c 0 -2.114 l 0 -2.556 0.172 -2.608 0.517 -2.616 c 0.517 -2.751 l -1.124 -2.751 l -1.124 -2.616 l -0.78 -2.608 -0.607 -2.556 -0.607 -2.114 c -0.607 -0.285 l -0.607 0.225 -0.765 0.225 -0.87 0.225 c -1.124 0.165 l -1.177 0.293 l -0.165 0.705 l 0 0.705 l 0 0 l f Q q 1 0 0 1 -0 -0 cm 166.367 107.042 1.897 0.577 re f Q q 1 0 0 1 173.848 109.448 cm 0 0 m 0.06 0.172 0.18 0.502 0.18 0.674 c 0.18 0.959 -0.03 1.026 -0.367 1.026 c -0.367 1.161 l 1.117 1.161 l 1.117 1.026 l 0.622 1.026 0.517 0.614 0.382 0.217 c -1.042 -3.913 l -1.184 -3.913 l -2.309 -0.765 l -2.324 -0.765 l -3.426 -3.913 l -3.576 -3.913 l -5.105 0.367 l -5.27 0.839 -5.344 1.026 -5.794 1.026 c -5.794 1.161 l -3.958 1.161 l -3.958 1.026 l -4.228 1.026 -4.445 0.967 -4.445 0.712 c -4.445 0.592 -4.37 0.397 -4.333 0.284 c -3.321 -2.601 l -3.306 -2.601 l -2.481 -0.285 l -2.684 0.269 l -2.841 0.689 -2.953 1.026 -3.448 1.026 c -3.448 1.161 l -1.507 1.161 l -1.507 1.026 l -1.822 1.026 -2.039 1.004 -2.039 0.689 c -2.039 0.472 -1.919 0.164 -1.844 -0.038 c -0.93 -2.601 l -0.915 -2.601 l 0 0 l f Q q 1 0 0 1 175.213 107.956 cm 0 0 m 0.03 0.435 0.345 0.877 0.787 0.877 c 1.32 0.877 1.552 0.465 1.552 0 c 0 0 l h 2.316 -0.225 m 2.316 0.585 1.807 1.147 1.035 1.147 c -0.03 1.147 -0.517 0.277 -0.517 -0.69 c -0.517 -1.717 0.128 -2.414 0.945 -2.414 c 1.702 -2.414 2.189 -1.776 2.316 -1.087 c 2.204 -1.012 l 2.032 -1.499 1.739 -1.814 1.2 -1.814 c 0.383 -1.814 -0.007 -0.974 -0.007 -0.225 c 2.316 -0.225 l f Q q 1 0 0 1 180.19 107.956 cm 0 0 m -0.135 0 l -0.247 0.502 -0.449 0.922 -1.034 0.922 c -1.304 0.922 -1.604 0.772 -1.604 0.465 c -1.604 -0.352 0.248 -0.247 0.248 -1.409 c 0.248 -2.024 -0.329 -2.414 -0.899 -2.414 c -1.117 -2.414 -1.356 -2.361 -1.574 -2.301 c -1.761 -2.264 l -1.896 -2.361 l -2.031 -2.361 l -2.031 -1.162 l -1.896 -1.162 l -1.829 -1.687 -1.431 -2.189 -0.869 -2.189 c -0.562 -2.189 -0.292 -2.009 -0.292 -1.679 c -0.292 -0.802 -2.038 -0.922 -2.038 0.142 c -2.038 0.757 -1.596 1.147 -0.997 1.147 c -0.839 1.147 -0.719 1.109 -0.569 1.064 c -0.292 1.004 l -0.195 1.004 -0.165 1.064 -0.135 1.147 c 0 1.147 l 0 0 l f Q q 1 0 0 1 182.064 106.284 cm 0 0 m 0 -0.442 0.173 -0.494 0.517 -0.502 c 0.517 -0.637 l -1.124 -0.637 l -1.124 -0.502 l -0.779 -0.494 -0.607 -0.442 -0.607 0 c -0.607 3.576 l -0.607 4.086 -0.764 4.086 -0.869 4.086 c -1.124 4.026 l -1.177 4.153 l -0.165 4.565 l 0 4.565 l 0 0 l f Q q 1 0 0 1 183.541 107.956 cm 0 0 m 0.03 0.435 0.345 0.877 0.787 0.877 c 1.319 0.877 1.551 0.465 1.551 0 c 0 0 l h 2.316 -0.225 m 2.316 0.585 1.806 1.147 1.034 1.147 c -0.03 1.147 -0.517 0.277 -0.517 -0.69 c -0.517 -1.717 0.127 -2.414 0.944 -2.414 c 1.701 -2.414 2.189 -1.776 2.316 -1.087 c 2.203 -1.012 l 2.031 -1.499 1.739 -1.814 1.199 -1.814 c 0.382 -1.814 -0.008 -0.974 -0.008 -0.225 c 2.316 -0.225 l f Q q 1 0 0 1 186.66 108.226 cm 0 0 m -0.128 0.277 -0.3 0.6 -0.63 0.637 c -0.63 0.772 l 0.929 0.772 l 0.929 0.637 l 0.697 0.637 0.525 0.607 0.525 0.367 c 0.525 0.24 0.629 0.03 0.682 -0.09 c 1.461 -1.694 l 2.174 0.067 l 2.226 0.202 2.271 0.307 2.271 0.45 c 2.271 0.622 2.136 0.637 1.934 0.637 c 1.934 0.772 l 3.028 0.772 l 3.028 0.637 l 2.788 0.637 2.661 0.45 2.578 0.247 c 1.147 -3.261 l 0.854 -3.98 0.307 -4.198 0.045 -4.198 c -0.203 -4.198 -0.458 -4.048 -0.458 -3.778 c -0.458 -3.553 -0.278 -3.448 -0.075 -3.448 c 0.172 -3.448 0.292 -3.583 0.419 -3.583 c 0.719 -3.583 0.877 -3.163 0.967 -2.946 c 1.169 -2.444 l 0 0 l f Q q 1 0 0 1 -0 -0 cm 307.41 107.462 1.481 4.806 re f Q q 1 0 0 1 309.651 112.268 cm 0 0 m 2.632 0 l 3.898 0 4.167 -0.714 4.167 -1.205 c 4.167 -1.69 3.931 -1.952 3.574 -2.148 c 4.005 -2.296 4.409 -2.639 4.409 -3.346 c 4.409 -4.308 3.574 -4.806 2.726 -4.806 c 0 -4.806 l 0 0 l h 1.481 -1.872 m 2.262 -1.872 l 2.572 -1.872 2.767 -1.784 2.767 -1.474 c 2.767 -1.232 2.565 -1.145 2.262 -1.145 c 1.481 -1.145 l 1.481 -1.872 l h 1.481 -3.662 m 2.349 -3.662 l 2.659 -3.662 2.928 -3.575 2.928 -3.204 c 2.928 -2.922 2.76 -2.767 2.41 -2.767 c 1.481 -2.767 l 1.481 -3.662 l f Q q 1 0 0 1 314.632 112.268 cm 0 0 m 2.107 0 l 2.794 -2.827 l 2.807 -2.827 l 3.494 0 l 5.601 0 l 5.601 -4.806 l 4.201 -4.806 l 4.201 -1.724 l 4.187 -1.724 l 3.352 -4.806 l 2.249 -4.806 l 1.414 -1.724 l 1.4 -1.724 l 1.4 -4.806 l 0 -4.806 l 0 0 l f Q q 1 0 0 1 307.507 105.832 cm 0 0 m 1.683 0 l 2.571 0 2.882 -0.656 2.882 -1.127 c 2.882 -1.926 2.351 -2.3 1.601 -2.3 c 1.006 -2.3 l 1.006 -3.298 l 0 -3.298 l 0 0 l h 1.006 -1.515 m 1.395 -1.515 l 1.656 -1.515 1.93 -1.496 1.93 -1.164 c 1.93 -0.863 1.701 -0.845 1.454 -0.845 c 1.006 -0.845 l 1.006 -1.515 l f Q q 1 0 0 1 310.713 104.932 cm 0 0 m 0.87 0 l 0.87 -0.384 l 0.879 -0.384 l 1.025 -0.097 1.217 0.06 1.547 0.06 c 1.638 0.06 1.725 0.046 1.812 0.023 c 1.812 -0.786 l 1.72 -0.753 1.638 -0.726 1.455 -0.726 c 1.098 -0.726 0.906 -0.938 0.906 -1.451 c 0.906 -2.398 l 0 -2.398 l 0 0 l f Q q 1 0 0 1 313.427 103.527 cm 0 0 m 0.023 -0.272 0.178 -0.466 0.462 -0.466 c 0.608 -0.466 0.768 -0.411 0.842 -0.295 c 1.688 -0.295 l 1.505 -0.813 1.006 -1.053 0.466 -1.053 c -0.293 -1.053 -0.865 -0.6 -0.865 0.199 c -0.865 0.897 -0.362 1.465 0.389 1.465 c 1.331 1.465 1.738 0.933 1.738 0 c 0 0 l h 0.869 0.476 m 0.869 0.698 0.704 0.878 0.471 0.878 c 0.201 0.878 0.046 0.735 0.004 0.476 c 0.869 0.476 l f Q q 1 0 0 1 316.917 104.234 cm 0 0 m -0.105 0.18 l -0.306 0.25 l -0.435 0.25 -0.581 0.222 -0.581 0.065 c -0.476 -0.06 l -0.325 -0.125 0.018 -0.143 0.32 -0.245 c 0.622 -0.342 0.888 -0.522 0.888 -0.915 c 0.888 -1.58 0.256 -1.76 -0.32 -1.76 c -0.878 -1.76 -1.491 -1.534 -1.505 -0.915 c -0.64 -0.915 l -0.531 -1.127 l -0.485 -1.169 -0.398 -1.196 -0.288 -1.196 c -0.169 -1.196 0.018 -1.15 0.018 -1.012 c 0.018 -0.873 -0.059 -0.831 -0.48 -0.757 c -1.171 -0.637 -1.45 -0.416 -1.45 -0.005 c -1.45 0.601 -0.805 0.758 -0.329 0.758 c 0.183 0.758 0.801 0.615 0.823 0 c 0 0 l f Q q 1 0 0 1 319.543 104.234 cm 0 0 m -0.106 0.18 l -0.307 0.25 l -0.435 0.25 -0.581 0.222 -0.581 0.065 c -0.476 -0.06 l -0.325 -0.125 0.018 -0.143 0.32 -0.245 c 0.622 -0.342 0.887 -0.522 0.887 -0.915 c 0.887 -1.58 0.256 -1.76 -0.32 -1.76 c -0.879 -1.76 -1.492 -1.534 -1.505 -0.915 c -0.641 -0.915 l -0.531 -1.127 l -0.485 -1.169 -0.398 -1.196 -0.288 -1.196 c -0.17 -1.196 0.018 -1.15 0.018 -1.012 c 0.018 -0.873 -0.06 -0.831 -0.481 -0.757 c -1.171 -0.637 -1.45 -0.416 -1.45 -0.005 c -1.45 0.601 -0.805 0.758 -0.33 0.758 c 0.183 0.758 0.8 0.615 0.823 0 c 0 0 l f Q q 1 0 0 1 321.328 103.078 cm 0 0 m -0.2 0 l -0.2 -0.549 l -0.326 -0.549 l -0.326 0 l -0.526 0 l -0.526 0.103 l 0 0.103 l 0 0 l h 0.496 -0.359 m 0.673 0.103 l 0.855 0.103 l 0.855 -0.549 l 0.736 -0.549 l 0.736 -0.04 l 0.733 -0.04 l 0.538 -0.549 l 0.45 -0.549 l 0.255 -0.04 l 0.252 -0.04 l 0.252 -0.549 l 0.133 -0.549 l 0.133 0.103 l 0.317 0.103 l 0.496 -0.359 l f Q q 1 0 0 1 414.871 108.991 cm 0 0 m -0.235 0.225 -0.556 0.375 -0.916 0.375 c -1.186 0.375 -1.571 0.217 -1.621 -0.098 c -1.673 -0.428 -1.296 -0.556 -1.054 -0.638 c -0.697 -0.751 l 0.054 -0.983 0.599 -1.381 0.454 -2.296 c 0.364 -2.859 0.138 -3.436 -0.373 -3.819 c -0.875 -4.194 -1.492 -4.351 -2.063 -4.351 c -2.775 -4.351 -3.435 -4.111 -3.948 -3.706 c -3.13 -2.521 l -2.814 -2.844 -2.42 -3.106 -1.918 -3.106 c -1.573 -3.106 -1.178 -2.934 -1.115 -2.536 c -1.049 -2.123 -1.604 -1.981 -1.905 -1.891 c -2.786 -1.628 -3.356 -1.388 -3.182 -0.293 c -3 0.855 -2.064 1.605 -0.931 1.605 c -0.361 1.605 0.308 1.425 0.766 1.14 c 0 0 l f Q q 1 0 0 1 422.382 110.446 cm 0 0 m 1.447 0 l 2.116 -3.023 l 3.81 0 l 5.273 0 l 5.232 -5.656 l 3.762 -5.656 l 3.865 -2.401 l 3.85 -2.401 l 1.976 -5.656 l 1.391 -5.656 l 0.609 -2.401 l 0.594 -2.401 l -0.394 -5.656 l -1.857 -5.656 l 0 0 l f Q q 1 0 0 1 432.007 108.991 cm 0 0 m -0.234 0.225 -0.556 0.375 -0.916 0.375 c -1.186 0.375 -1.571 0.217 -1.621 -0.098 c -1.673 -0.428 -1.296 -0.556 -1.054 -0.638 c -0.696 -0.751 l 0.054 -0.983 0.599 -1.381 0.454 -2.296 c 0.365 -2.859 0.138 -3.436 -0.373 -3.819 c -0.875 -4.194 -1.492 -4.351 -2.062 -4.351 c -2.775 -4.351 -3.435 -4.111 -3.948 -3.706 c -3.13 -2.521 l -2.813 -2.844 -2.42 -3.106 -1.917 -3.106 c -1.572 -3.106 -1.177 -2.934 -1.115 -2.536 c -1.049 -2.123 -1.604 -1.981 -1.905 -1.891 c -2.786 -1.628 -3.355 -1.388 -3.182 -0.293 c -3 0.855 -2.063 1.605 -0.931 1.605 c -0.361 1.605 0.309 1.425 0.766 1.14 c 0 0 l f Q q 1 0 0 1 416.671 104.866 cm 0 0 m -2.069 0 l 3.646 7.402 l 3.646 0 l 1.994 0 l 1.998 2.884 l 0 0 l f Q q 1 0 0 1 334.082 106.45 cm 0 0 m 1.055 0 l 1.353 0 1.596 0.242 1.596 0.541 c 1.596 2.131 l 1.596 2.429 1.353 2.672 1.055 2.672 c -1.431 2.672 l -1.73 2.672 -1.972 2.429 -1.972 2.131 c -1.972 0.541 l -1.972 0.242 -1.73 0 -1.431 0 c -0.419 0 l -0.418 -1.09 l -2.328 -1.09 l -2.852 -1.09 -3.277 -0.665 -3.277 -0.141 c -3.277 2.738 l -3.277 3.262 -2.852 3.687 -2.328 3.687 c 2.034 3.687 l 2.558 3.687 2.983 3.262 2.983 2.738 c 2.983 -0.141 l 2.983 -0.665 2.558 -1.09 2.034 -1.09 c 1.287 -1.09 l 1.287 -1.948 l -0.003 -1.948 l 0 0 l f Q q 1 0 0 1 343.791 110.137 cm 0 0 m 0 -3.87 l 0 -4.394 -0.425 -4.818 -0.949 -4.818 c -5.119 -4.818 l -5.643 -4.818 -6.067 -4.394 -6.067 -3.87 c -6.067 0 l -4.723 -0.001 l -4.723 -3.213 l -4.723 -3.501 -4.489 -3.735 -4.201 -3.735 c -1.923 -3.735 l -1.635 -3.735 -1.401 -3.501 -1.401 -3.213 c -1.401 -0.001 l 0 0 l f Q q 1 0 0 1 346.303 107.199 cm 0 0 m 0 0.875 l 2.882 0.883 l 3.11 0.883 3.294 1.094 3.294 1.322 c 3.294 1.549 3.11 1.734 2.882 1.734 c 0.2 1.732 l -0.099 1.774 -0.341 1.531 -0.341 1.233 c -0.341 -0.291 l -0.341 -0.59 -0.099 -0.832 0.2 -0.832 c 4.395 -0.832 l 4.395 -1.921 l -0.85 -1.921 l -1.374 -1.921 -1.799 -1.497 -1.799 -0.973 c -1.799 1.907 l -1.799 2.431 -1.374 2.855 -0.85 2.855 c 3.649 2.855 l 4.173 2.855 4.598 2.431 4.598 1.907 c 4.598 0.949 l 4.598 0.425 4.173 0 3.649 0 c 0 0 l f Q q 1 0 0 1 351.434 109.542 cm 0 0 m 0 0.346 0.282 0.628 0.631 0.628 c 0.978 0.628 1.258 0.346 1.258 0 c 1.258 -0.348 0.978 -0.63 0.631 -0.63 c 0.282 -0.63 0 -0.348 0 0 c h 1.159 0 m 1.159 0.306 0.936 0.545 0.631 0.545 c 0.324 0.545 0.1 0.306 0.1 0 c 0.1 -0.308 0.324 -0.547 0.631 -0.547 c 0.936 -0.547 1.159 -0.308 1.159 0 c h 0.944 -0.351 m 0.842 -0.351 l 0.641 -0.028 l 0.483 -0.028 l 0.483 -0.351 l 0.397 -0.351 l 0.397 0.351 l 0.704 0.351 l 0.89 0.351 0.953 0.281 0.953 0.165 c 0.953 0.027 0.856 -0.024 0.732 -0.028 c 0.944 -0.351 l h 0.614 0.04 m 0.714 0.04 0.86 0.024 0.86 0.166 c 0.86 0.276 0.77 0.289 0.684 0.289 c 0.483 0.289 l 0.483 0.04 l 0.614 0.04 l f Q q 1 0 0 1 370.7 111.053 cm 0 0 m 2.356 0 l 2.781 0 2.973 -0.159 2.973 -0.567 c 2.973 -1.218 l 2.973 -1.626 2.781 -1.785 2.356 -1.785 c 0.487 -1.785 l 0.487 -2.923 l 0 -2.923 l 0 0 l h 0.487 -0.38 m 0.487 -1.399 l 2.163 -1.399 l 2.379 -1.399 2.481 -1.343 2.481 -1.094 c 2.481 -0.686 l 2.481 -0.442 2.384 -0.38 2.163 -0.38 c 0.487 -0.38 l f Q q 1 0 0 1 374.869 111.053 cm 0 0 m 2.356 0 l 2.781 0 2.973 -0.159 2.973 -0.567 c 2.973 -1.218 l 2.973 -1.626 2.781 -1.785 2.356 -1.785 c 1.925 -1.785 l 3.262 -2.923 l 2.537 -2.923 l 1.348 -1.785 l 0.487 -1.785 l 0.487 -2.923 l 0 -2.923 l 0 0 l h 0.487 -0.38 m 0.487 -1.405 l 2.163 -1.405 l 2.379 -1.405 2.48 -1.354 2.48 -1.105 c 2.48 -0.68 l 2.48 -0.437 2.379 -0.38 2.163 -0.38 c 0.487 -0.38 l f Q q 1 0 0 1 379.184 111.053 cm 0 0 m 2.816 0 l 2.816 -0.391 l 0.488 -0.391 l 0.488 -1.207 l 1.91 -1.207 l 1.91 -1.592 l 0.488 -1.592 l 0.488 -2.521 l 2.839 -2.521 l 2.839 -2.923 l 0 -2.923 l 0 0 l f Q q 1 0 0 1 383.183 111.053 cm 0 0 m 0.306 0 l 2.493 -1.955 l 2.594 -2.045 2.708 -2.17 2.827 -2.323 c 2.781 -2.051 2.781 -1.813 2.781 -1.604 c 2.781 0 l 3.229 0 l 3.229 -2.923 l 2.957 -2.923 l 0.709 -0.89 l 0.623 -0.81 0.51 -0.726 0.414 -0.562 c 0.442 -0.776 0.448 -0.986 0.448 -1.201 c 0.448 -2.923 l 0 -2.923 l 0 0 l f Q q 1 0 0 1 389.062 108.13 cm 0 0 m -0.486 0 l -0.486 2.526 l -1.823 2.526 l -1.823 2.923 l 1.343 2.923 l 1.343 2.526 l 0 2.526 l 0 0 l f Q q 1 0 0 1 0 -0 cm 391.227 108.13 0.487 2.923 re f Q q 1 0 0 1 393.679 110.656 cm 0 0 m 0 -2.118 l 2.028 -2.118 l 2.028 -1.388 l 2.515 -1.49 l 2.515 -1.835 l 2.515 -2.379 2.362 -2.526 1.835 -2.526 c 0.199 -2.526 l -0.329 -2.526 -0.487 -2.374 -0.487 -1.835 c -0.487 -0.294 l -0.487 0.243 -0.329 0.397 0.199 0.397 c 1.835 0.397 l 2.362 0.397 2.515 0.249 2.515 -0.294 c 2.515 -0.572 l 2.028 -0.663 l 2.028 0 l 0 0 l f Q q 1 0 0 1 397.48 111.053 cm 0 0 m 2.815 0 l 2.815 -0.391 l 0.487 -0.391 l 0.487 -1.207 l 1.909 -1.207 l 1.909 -1.592 l 0.487 -1.592 l 0.487 -2.521 l 2.838 -2.521 l 2.838 -2.923 l 0 -2.923 l 0 0 l f Q q 1 0 0 1 370.7 106.893 cm 0 0 m 0.487 0 l 0.487 -1.195 l 2.792 -1.195 l 2.792 0 l 3.279 0 l 3.279 -2.923 l 2.792 -2.923 l 2.792 -1.597 l 0.487 -1.597 l 0.487 -2.923 l 0 -2.923 l 0 0 l f Q q 1 0 0 1 376.522 106.893 cm 0 0 m 0.521 0 l 2.147 -2.923 l 1.609 -2.923 l 1.235 -2.203 l -0.741 -2.203 l -1.116 -2.923 l -1.597 -2.923 l 0 0 l h 1.037 -1.829 m 0.249 -0.334 l -0.538 -1.829 l 1.037 -1.829 l f Q q 1 0 0 1 379.615 106.893 cm 0 0 m 0.487 0 l 0.487 -2.515 l 2.702 -2.515 l 2.702 -2.923 l 0 -2.923 l 0 0 l f Q q 1 0 0 1 383.314 106.893 cm 0 0 m 0.487 0 l 0.487 -2.515 l 2.701 -2.515 l 2.701 -2.923 l 0 -2.923 l 0 0 l f Q q 1 0 0 1 363.735 109.853 cm 0 0 m 0.02 0.205 l 0.02 0.799 -0.462 1.281 -1.057 1.281 c -1.651 1.281 -2.133 0.799 -2.133 0.205 c -2.133 -0.39 -1.651 -0.873 -1.057 -0.873 c -0.843 -0.873 -0.646 -0.809 -0.479 -0.702 c -0.422 -0.407 -0.245 -0.156 0 0 c f Q q 1 0 0 1 365.942 111.131 cm 0 0 m -0.595 0 -1.077 -0.482 -1.077 -1.076 c -1.057 -1.273 l -0.813 -1.431 -0.639 -1.683 -0.583 -1.98 c -0.415 -2.088 -0.215 -2.153 0 -2.153 c 0.594 -2.153 1.076 -1.671 1.076 -1.076 c 1.076 -0.482 0.594 0 0 0 c f Q q 1 0 0 1 365.951 108.633 cm 0 0 m -0.328 0 -0.619 -0.15 -0.816 -0.382 c -0.825 -0.382 l -1.022 -0.621 -1.316 -0.776 -1.651 -0.776 c -1.989 -0.776 -2.287 -0.617 -2.484 -0.374 c -2.682 -0.151 -2.965 -0.007 -3.286 -0.007 c -3.88 -0.007 -4.362 -0.489 -4.362 -1.084 c -4.362 -1.679 -3.88 -2.161 -3.286 -2.161 c -2.982 -2.161 -2.711 -2.031 -2.516 -1.828 c -2.321 -1.553 -2.002 -1.373 -1.639 -1.373 c -1.276 -1.373 -0.956 -1.554 -0.761 -1.83 c -0.566 -2.027 -0.299 -2.153 0 -2.153 c 0.595 -2.153 1.077 -1.671 1.077 -1.076 c 1.077 -0.483 0.595 0 0 0 c f Q q 1 0 0 1 365.927 106.111 cm 0 0 m -0.212 0 -0.409 -0.064 -0.577 -0.171 c -0.633 -0.466 -0.81 -0.716 -1.055 -0.872 c -1.076 -1.077 l -1.076 -1.671 -0.594 -2.153 0 -2.153 c 0.596 -2.153 1.077 -1.671 1.077 -1.077 c 1.077 -0.482 0.596 0 0 0 c f Q q 1 0 0 1 363.248 105.94 cm 0 0 m -0.169 0.109 -0.368 0.174 -0.583 0.174 c -1.178 0.174 -1.66 -0.308 -1.66 -0.903 c -1.66 -1.497 -1.178 -1.979 -0.583 -1.979 c 0.011 -1.979 0.493 -1.497 0.493 -0.903 c 0.473 -0.706 l 0.229 -0.549 0.054 -0.296 0 0 c f Q q 1 0 0 1 458.241 102.687 cm 0.195 g /GS1 gs 0 0 m -0.6 0 l -0.6 1.433 l -0.024 1.433 l 0.255 1.433 0.418 1.276 0.418 1.03 c 0.418 0.871 0.314 0.768 0.242 0.734 c 0.328 0.694 0.439 0.603 0.439 0.412 c 0.439 0.144 0.255 0 0 0 c h -0.046 1.183 m -0.32 1.183 l -0.32 0.853 l -0.046 0.853 l 0.072 0.853 0.139 0.919 0.139 1.018 c 0.139 1.117 0.072 1.183 -0.046 1.183 c h -0.028 0.602 m -0.32 0.602 l -0.32 0.249 l -0.028 0.249 l 0.099 0.249 0.159 0.33 0.159 0.427 c 0.159 0.523 0.099 0.602 -0.028 0.602 c f Q q 1 0 0 1 459.67 102.804 cm 0.195 g /GS1 gs 0 0 m -0.065 -0.069 -0.171 -0.13 -0.326 -0.13 c -0.481 -0.13 -0.586 -0.069 -0.65 0 c -0.745 0.098 -0.769 0.217 -0.769 0.408 c -0.769 0.597 -0.745 0.716 -0.65 0.815 c -0.586 0.883 -0.481 0.943 -0.326 0.943 c -0.171 0.943 -0.065 0.883 0 0.815 c 0.094 0.716 0.119 0.597 0.119 0.408 c 0.119 0.217 0.094 0.098 0 0 c h -0.203 0.662 m -0.326 0.708 l -0.447 0.662 l -0.501 0.607 -0.507 0.517 -0.507 0.408 c -0.507 0.299 -0.501 0.207 -0.447 0.152 c -0.326 0.106 l -0.203 0.152 l -0.149 0.207 -0.143 0.299 -0.143 0.408 c -0.143 0.517 -0.149 0.607 -0.203 0.662 c f Q q 1 0 0 1 460.763 102.804 cm 0.195 g /GS1 gs 0 0 m -0.065 -0.069 -0.171 -0.13 -0.326 -0.13 c -0.481 -0.13 -0.586 -0.069 -0.65 0 c -0.745 0.098 -0.769 0.217 -0.769 0.408 c -0.769 0.597 -0.745 0.716 -0.65 0.815 c -0.586 0.883 -0.481 0.943 -0.326 0.943 c -0.171 0.943 -0.065 0.883 0 0.815 c 0.094 0.716 0.118 0.597 0.118 0.408 c 0.118 0.217 0.094 0.098 0 0 c h -0.203 0.662 m -0.326 0.708 l -0.447 0.662 l -0.502 0.607 -0.507 0.517 -0.507 0.408 c -0.507 0.299 -0.502 0.207 -0.447 0.152 c -0.326 0.106 l -0.203 0.152 l -0.149 0.207 -0.143 0.299 -0.143 0.408 c -0.143 0.517 -0.149 0.607 -0.203 0.662 c f Q q 1 0 0 1 461.761 102.687 cm 0.195 g /GS1 gs 0 0 m -0.257 0.436 l -0.368 0.312 l -0.368 0 l -0.63 0 l -0.63 1.433 l -0.368 1.433 l -0.368 0.62 l -0.02 1.048 l 0.296 1.048 l -0.078 0.626 l 0.324 0 l 0 0 l f Q q 1 0 0 1 462.6 102.674 cm 0.195 g /GS1 gs 0 0 m -0.164 0 -0.314 0.019 -0.447 0.151 c -0.275 0.323 l 0.004 0.224 l 0.095 0.224 0.19 0.254 0.19 0.333 c 0.079 0.429 l -0.086 0.445 l -0.275 0.464 -0.393 0.546 -0.393 0.739 c -0.393 0.956 -0.201 1.073 0.012 1.073 c 0.175 1.073 0.312 1.045 0.413 0.95 c 0.252 0.788 l 0.191 0.842 0.099 0.858 0.008 0.858 c -0.096 0.858 -0.14 0.81 -0.14 0.757 c -0.14 0.719 -0.125 0.675 -0.032 0.667 c 0.133 0.65 l 0.341 0.631 0.445 0.52 0.445 0.343 c 0.445 0.111 0.248 0 0 0 c f Q q 1 0 0 1 464.619 102.831 cm 0.195 g /GS1 gs 0 0 m -0.101 -0.1 -0.223 -0.157 -0.386 -0.157 c -0.549 -0.157 -0.674 -0.1 -0.775 0 c -0.92 0.145 -0.916 0.325 -0.916 0.572 c -0.916 0.82 -0.92 0.999 -0.775 1.144 c -0.674 1.244 -0.549 1.301 -0.386 1.301 c -0.223 1.301 -0.101 1.244 0 1.144 c 0.145 0.999 0.143 0.82 0.143 0.572 c 0.143 0.325 0.145 0.145 0 0 c h -0.207 0.975 m -0.386 1.051 l -0.568 0.975 l -0.622 0.914 -0.636 0.848 -0.636 0.572 c -0.636 0.296 -0.622 0.23 -0.568 0.17 c -0.386 0.093 l -0.207 0.17 l -0.153 0.23 -0.137 0.296 -0.137 0.572 c -0.137 0.848 -0.153 0.914 -0.207 0.975 c f Q q 1 0 0 1 465.637 102.687 cm 0.195 g /GS1 gs 0 0 m 0 0.634 l 0 0.777 -0.09 0.825 -0.173 0.825 c -0.255 0.825 -0.348 0.777 -0.348 0.634 c -0.348 0 l -0.609 0 l -0.609 1.048 l -0.354 1.048 l -0.354 0.952 l -0.286 1.024 -0.189 1.06 -0.093 1.06 c 0.013 1.06 0.097 1.026 0.155 0.968 c 0.24 0.883 0.262 0.785 0.262 0.67 c 0.262 0 l 0 0 l f Q q 1 0 0 1 466.477 102.687 cm 0.195 g /GS1 gs 0 0 m -0.216 0 -0.306 0.151 -0.306 0.3 c -0.306 1.433 l -0.045 1.433 l -0.045 0.316 l 0.048 0.221 l 0.149 0.221 l 0.149 0 l 0 0 l f Q q 1 0 0 1 -0 -0 cm 0.195 g /GS1 gs 467.099 103.914 -0.268 0.214 re 466.831 103.914 m h 467.096 102.687 -0.261 1.048 re f Q q 1 0 0 1 467.998 102.687 cm 0.195 g /GS1 gs 0 0 m 0 0.634 l 0 0.777 -0.09 0.825 -0.172 0.825 c -0.255 0.825 -0.348 0.777 -0.348 0.634 c -0.348 0 l -0.609 0 l -0.609 1.048 l -0.354 1.048 l -0.354 0.952 l -0.285 1.024 -0.189 1.06 -0.092 1.06 c 0.012 1.06 0.097 1.026 0.155 0.968 c 0.24 0.883 0.262 0.785 0.262 0.67 c 0.262 0 l 0 0 l f Q q 1 0 0 1 468.747 103.129 cm 0.195 g /GS1 gs 0 0 m 0 -0.134 0.083 -0.233 0.23 -0.233 c 0.345 -0.233 0.401 -0.201 0.467 -0.134 c 0.626 -0.289 l 0.52 -0.396 0.417 -0.455 0.228 -0.455 c -0.02 -0.455 -0.257 -0.342 -0.257 0.083 c -0.257 0.425 -0.073 0.618 0.199 0.618 c 0.491 0.618 0.656 0.405 0.656 0.117 c 0.656 0 l 0 0 l h 0.375 0.292 m 0.199 0.401 l 0.024 0.292 l 0 0.18 l 0.399 0.18 l 0.375 0.292 l f Q q 1 0 0 1 450.094 104.731 cm 0 0 m -0.915 0 -1.609 0.195 -2.202 0.796 c -1.44 1.558 l -1.059 1.177 -0.542 1.05 0.017 1.05 c 0.711 1.05 1.084 1.313 1.084 1.795 c 1.084 2.007 1.024 2.186 0.898 2.303 c 0.779 2.414 0.643 2.472 0.364 2.515 c -0.364 2.616 l -0.881 2.693 -1.262 2.854 -1.533 3.116 c -1.821 3.404 -1.964 3.794 -1.964 4.302 c -1.964 5.377 -1.169 6.131 0.135 6.131 c 0.966 6.131 1.567 5.928 2.083 5.428 c 1.338 4.691 l 0.957 5.055 0.499 5.106 0.102 5.106 c -0.525 5.106 -0.83 4.759 -0.83 4.344 c -0.83 4.192 -0.779 4.031 -0.652 3.912 c -0.533 3.802 -0.339 3.709 -0.093 3.675 c 0.618 3.574 l 1.169 3.498 1.516 3.345 1.77 3.108 c 2.091 2.803 2.235 2.363 2.235 1.829 c 2.235 0.66 1.261 0 0 0 c f Q q 1 0 0 1 455.364 104.782 cm 0 0 m 0 0.381 l -0.296 0.084 -0.575 -0.042 -1.084 -0.042 c -1.583 -0.042 -1.947 0.084 -2.21 0.347 c -2.447 0.592 -2.574 0.948 -2.574 1.338 c -2.574 2.041 -2.091 2.616 -1.067 2.616 c -0.025 2.616 l -0.025 2.837 l -0.025 3.319 -0.262 3.531 -0.847 3.531 c -1.27 3.531 -1.465 3.43 -1.693 3.167 c -2.396 3.852 l -1.964 4.327 -1.541 4.462 -0.804 4.462 c 0.432 4.462 1.076 3.937 1.076 2.905 c 1.076 0 l 0 0 l h -0.025 1.863 m -0.897 1.863 l -1.295 1.863 -1.515 1.677 -1.515 1.363 c -1.515 1.058 -1.312 0.856 -0.881 0.856 c -0.575 0.856 -0.381 0.88 -0.186 1.067 c -0.068 1.177 -0.025 1.355 -0.025 1.626 c -0.025 1.863 l f Q q 1 0 0 1 458.736 108.229 cm 0 0 m 0 -3.447 l -1.101 -3.447 l -1.101 0 l -1.558 0 l -1.558 0.838 l -1.101 0.838 l -1.101 1.388 l -1.101 2.015 -0.711 2.649 0.186 2.649 c 0.813 2.649 l 0.813 1.718 l 0.381 1.718 l 0.119 1.718 0 1.574 0 1.32 c 0 0.838 l 0.813 0.838 l 0.813 0 l 0 0 l f Q q 1 0 0 1 462.52 104.782 cm 0 0 m 0 0.381 l -0.296 0.084 -0.576 -0.042 -1.084 -0.042 c -1.583 -0.042 -1.948 0.084 -2.21 0.347 c -2.447 0.592 -2.574 0.948 -2.574 1.338 c -2.574 2.041 -2.091 2.616 -1.067 2.616 c -0.025 2.616 l -0.025 2.837 l -0.025 3.319 -0.263 3.531 -0.847 3.531 c -1.27 3.531 -1.465 3.43 -1.693 3.167 c -2.396 3.852 l -1.964 4.327 -1.541 4.462 -0.804 4.462 c 0.432 4.462 1.076 3.937 1.076 2.905 c 1.076 0 l 0 0 l h -0.025 1.863 m -0.898 1.863 l -1.295 1.863 -1.516 1.677 -1.516 1.363 c -1.516 1.058 -1.312 0.856 -0.88 0.856 c -0.576 0.856 -0.381 0.88 -0.186 1.067 c -0.068 1.177 -0.025 1.355 -0.025 1.626 c -0.025 1.863 l f Q q 1 0 0 1 466.927 107.991 cm 0 0 m -0.17 0.169 -0.314 0.263 -0.584 0.263 c -0.923 0.263 -1.296 0.009 -1.296 -0.55 c -1.296 -3.209 l -2.397 -3.209 l -2.397 1.203 l -1.321 1.203 l -1.321 0.779 l -1.11 1.033 -0.686 1.253 -0.212 1.253 c 0.22 1.253 0.525 1.143 0.829 0.839 c 0 0 l f Q q 1 0 0 1 -0 -0 cm 468.258 104.782 1.1 4.412 re f Q q 1 0 0 1 469.237 110.015 cm 0 0 m -0.245 -0.245 -0.643 -0.245 -0.888 0 c -1.133 0.245 -1.133 0.643 -0.888 0.888 c -0.643 1.134 -0.245 1.134 0 0.888 c 0.245 0.643 0.245 0.245 0 0 c f Q q 1 0 0 1 471.03 110.015 cm 0 0 m -0.245 -0.245 -0.643 -0.245 -0.888 0 c -1.133 0.245 -1.133 0.643 -0.888 0.888 c -0.643 1.134 -0.245 1.134 0 0.888 c 0.245 0.643 0.245 0.245 0 0 c f Q q 1 0 0 1 471.404 111.536 cm 0 0 m 0.725 -0.725 1.077 -1.077 v 0.725 -1.428 0 -2.153 y 0.558 -2.71 l 2.191 -1.077 l 0.558 0.557 l 0 0 l f Q q 1 0 0 1 469.995 105.45 cm 0 0 m 0.181 0 0.325 -0.147 0.324 -0.331 c 0.324 -0.518 0.18 -0.664 -0.002 -0.663 c -0.184 -0.663 -0.33 -0.517 -0.33 -0.33 c -0.33 -0.147 -0.183 0 -0.002 0 c 0 0 l h -0.002 -0.051 m -0.147 -0.051 -0.266 -0.176 -0.267 -0.33 c -0.267 -0.488 -0.148 -0.611 -0.001 -0.612 c 0.146 -0.614 0.264 -0.489 0.264 -0.333 c 0.264 -0.177 0.147 -0.051 0 -0.051 c -0.002 -0.051 l h -0.064 -0.524 m -0.123 -0.523 l -0.123 -0.154 l -0.018 -0.145 l 0.097 -0.173 l 0.131 -0.25 l 0.058 -0.34 l 0.058 -0.343 l 0.12 -0.432 l 0.143 -0.524 l 0.082 -0.524 l 0.056 -0.43 l -0.023 -0.365 l -0.064 -0.365 l -0.064 -0.524 l h -0.064 -0.319 m -0.021 -0.319 l 0.069 -0.256 l -0.021 -0.191 l -0.064 -0.194 l -0.064 -0.319 l f Q q 1 0 0 1 -0 -0 cm 441.54 104.563 0.202 6.652 re f Q q 1 0 0 1 -0 -0 cm 441.595 123.602 33.216 12.455 re f Q q 1 0 0 1 469.889 128.923 cm 1 g /GS1 gs 0 0 m -0.446 0.644 -1.337 1.881 -1.956 2.649 c -1.981 0.644 -1.931 0 v -2.104 0 -2.277 0.025 -2.476 0 c -2.376 0.347 -2.352 3.267 -2.451 3.639 c -2.303 3.639 -2.079 3.614 -1.931 3.639 c -1.461 2.995 -0.495 1.708 0 1.04 c 0 1.535 0.024 3.095 -0.025 3.639 c 0.173 3.614 0.321 3.589 0.519 3.639 c 0.445 3.193 0.396 0.446 0.519 0 c 0.371 0.025 0.148 0.025 0 0 c f Q q 1 0 0 1 462.067 129.938 cm 1 g /GS1 gs 0 0 m 0 -0.841 -0.693 -1.064 -1.138 -1.064 c -1.46 -1.064 -1.881 -0.916 -2.154 -0.767 c -2.154 -0.495 -2.128 -0.396 -2.154 -0.123 c -2.005 -0.322 -1.51 -0.619 -1.163 -0.619 c -0.817 -0.619 -0.619 -0.421 -0.594 -0.099 c -0.569 0.346 -1.287 0.693 -1.609 0.916 c -1.881 1.139 -2.079 1.361 -2.079 1.733 c -2.079 2.228 -1.634 2.624 -1.015 2.624 c -0.619 2.624 -0.421 2.5 -0.074 2.327 c -0.198 2.154 -0.273 2.005 -0.347 1.832 c -0.47 2.005 -0.693 2.228 -1.015 2.228 c -1.337 2.228 -1.51 2.005 -1.51 1.757 c -1.51 1.535 -1.213 1.337 -0.718 1.015 c -0.297 0.743 0 0.52 0 0 c f Q q 1 0 0 1 459.195 128.923 cm 1 g /GS1 gs 0 0 m -0.247 0.025 -0.519 0.025 -0.766 0 c -0.89 0.223 -1.732 1.436 -1.856 1.535 c -1.905 1.881 l -1.41 1.857 -1.063 2.079 -1.063 2.599 c -1.063 3.02 -1.435 3.243 -1.831 3.243 c -1.955 3.243 -2.054 3.243 -2.153 3.243 c -2.177 2.45 -2.153 0.718 -2.103 0 c -2.326 0 -2.549 0.025 -2.771 0 c -2.697 0.594 -2.697 3.02 -2.771 3.639 c -2.153 3.589 -2.301 3.639 -1.757 3.639 c -1.237 3.639 -0.494 3.466 -0.494 2.673 c -0.494 2.03 -1.039 1.659 -1.311 1.659 c -1.262 1.634 -0.197 0.198 0 0 c f Q q 1 0 0 1 451.448 129.369 cm 1 g /GS1 gs 0 0 m -0.024 -0.149 -0.024 -0.322 -0.024 -0.471 c -0.47 -0.421 -1.509 -0.421 -1.93 -0.471 c -1.881 0 -1.881 2.698 -1.93 3.193 c -1.633 3.143 -0.371 3.143 -0.049 3.193 c -0.049 3.02 -0.049 2.871 -0.049 2.723 c -0.371 2.747 -0.965 2.797 -1.311 2.772 c -1.311 2.524 -1.336 2.079 -1.311 1.659 c -0.965 1.633 -0.47 1.633 -0.123 1.708 c -0.123 1.534 -0.123 1.386 -0.098 1.237 c -0.519 1.287 -0.915 1.287 -1.311 1.262 c -1.336 0.99 -1.336 0.198 -1.336 -0.05 c -0.989 -0.05 -0.371 -0.025 0 0 c f Q q 1 0 0 1 466.497 130.78 cm 1 g /GS1 gs 0 0 m 0 -1.04 -0.767 -1.931 -1.782 -1.931 c -2.871 -1.931 -3.588 -1.065 -3.588 0 c -3.588 0.915 -2.821 1.782 -1.806 1.782 c -0.767 1.782 0 0.915 0 0 c h -0.618 -0.025 m -0.618 0.569 -0.989 1.386 -1.806 1.386 c -2.623 1.386 -2.97 0.569 -2.97 -0.025 c -2.97 -0.718 -2.598 -1.535 -1.782 -1.535 c -1.014 -1.535 -0.618 -0.718 -0.618 -0.025 c f Q q 1 0 0 1 455.483 128.923 cm 1 g /GS1 gs 0 0 m -0.173 0.025 -0.495 0 -0.693 0 c -0.743 0.223 -0.916 0.743 -1.015 1.04 c -1.485 1.064 -1.956 1.064 -2.376 1.04 c -2.45 0.767 -2.624 0.174 -2.673 0 c -2.797 0 -3.094 0 -3.242 0 c -3.044 0.371 -2.03 3.169 -1.931 3.614 c -1.708 3.589 -1.535 3.589 -1.336 3.614 c -1.213 3.119 -0.173 0.347 0 0 c h -1.163 1.485 m -1.312 1.931 -1.584 2.673 -1.708 3.02 c -1.832 2.673 -2.054 1.956 -2.228 1.485 c -1.956 1.436 -1.41 1.461 -1.163 1.485 c f Q q 1 0 0 1 448.454 131.572 cm 1 g /GS1 gs 0 0 m 0 -0.842 -0.817 -1.263 -1.535 -1.238 c -1.56 -1.114 -1.56 -0.99 -1.585 -0.891 c -0.966 -0.867 -0.57 -0.594 -0.57 -0.05 c -0.57 0.371 -0.941 0.693 -1.411 0.693 c -1.436 0.693 -1.61 0.693 -1.832 0.693 c -1.832 -0.025 -1.832 -1.956 -1.783 -2.674 c -2.006 -2.624 -2.203 -2.624 -2.427 -2.674 c -2.451 -2.674 l -2.401 -2.302 -2.352 0.643 -2.451 1.064 c -1.807 1.015 -1.906 1.064 -1.362 1.064 c -0.792 1.064 0 0.841 0 0 c f Q q 1 0 0 1 458.11 127.071 cm 1 g /GS1 gs 0 0 m -5.118 0 -9.413 -0.785 -12.848 -1.576 c -12.848 -1.513 l -12.42 -1.336 -7.26 0.587 -0.001 0.589 c 7.258 0.587 12.417 -1.336 12.845 -1.513 c 12.845 -1.576 l 9.411 -0.785 5.116 0 -0.001 0 c 0 0 l f Q BT 0 g /GS1 gs /T1_1 1 Tf 0.0148 Tc 0.0002 Tw 14.2911 0 0 14.2911 211.66 233.689 Tm [(Ar)34(e Y)87(o)6(u P)21(a)11(r)-13(t o)19(f t)12(h)10(e)]TJ /TT0 1 Tf 0 Tc 0 Tw ( )Tj 0.0262 Tc 15.482 0 0 15.482 335.706 233.689 Tm (IT)Tj /T1_1 1 Tf -0.0014 Tc 0.0164 Tw 14.2911 0 0 14.2911 347.94 233.689 Tm [( Cr)12(ow)10(d)-14(?)]TJ 0.0396 Tc 0.0004 Tw 9.996 0 0 9.996 132.4688 212.975 Tm [(C)-10(o)-5(nnec)10(t wi)5(th P)13(e)1(ar)6(son a)10(uthor)6(s an)6(d ed)8(i)5(t)15(or)6(s vi)8(a R)-13(S)-18(S f)21(e)-2(eds)5(, F)7(a)8(cebo)-8(o)-6(k)-1(,)40( )]TJ 0.0399 Tc 0.0001 Tw 0 -1.5 TD [(T)73(wi)5(t)-21(t)19(e)2(r)73(, Y)75(o)-3(u)70(T)74(u)5(b)2(e)16(, an)6(d m)-7(o)-3(r)24(e)-25(! V)-6(i)8(s)7(i)5(t )]TJ /T1_0 1 Tf 0.042 Tc 0 Tw 16.019 0 Td [(info)-3(rmit)-23(.c)-4(o)-3(m)-66(/)-36(s)-1(o)-6(c)-2(i)-4(a)-2(lc)-4(onn)-8(e)-10(c)-9(t)]TJ /T1_1 1 Tf 0 Tc 14.27 0 Td (.)Tj ET q 1 0 0 1 -0 -0 cm 337.771 160.038 m 312.099 160.038 l 312.099 185.71 l 337.771 185.71 l 337.771 160.038 l W n q 26.226 0 0 26.226 311.817 159.762 cm /Im0 Do Q Q q 1 0 0 1 -0 -0 cm 302.847 160.784 m 277.311 160.784 l 277.311 185.952 l 302.847 185.952 l 302.847 160.784 l W n q 26.166 0 0 25.866 276.987 160.392 cm /Im1 Do Q Q q 1 0 0 1 -0 -0 cm 344.783 185.264 25.492 -24.639 re W n q 26.556 0 0 24.756 344.697 160.602 cm /Im2 Do Q Q q 1 0 0 1 -0 -0 cm 267.292 185.914 -24.768 -25.169 re W n q 24.786 0 0 25.206 242.517 160.722 cm /Im3 Do Q Q q 1 0 0 1 -0 -0 cm 0.146 g /GS0 gs 115.476 532.622 383.846 0.191 re f Q q 1 0 0 1 191.686 549.45 cm 0.146 g /GS0 gs 0 0 m 0.009 0.67 -0.397 1.209 -1.218 1.209 c -2.188 1.209 -2.435 -0.23 -2.435 -1.121 c -2.435 -2.012 -2.188 -3.45 -1.218 -3.45 c -0.397 -3.45 0.009 -2.912 0 -2.242 c 1.456 -2.242 l 1.394 -3.839 0.247 -4.439 -1.218 -4.439 c -3.062 -4.439 -3.891 -2.983 -3.891 -1.121 c -3.891 0.741 -3.062 2.197 -1.218 2.197 c 0.247 2.197 1.394 1.597 1.456 0 c 0 0 l f Q q 1 0 0 1 -0 0 cm 0.146 g /GS0 gs 193.945 549.573 1.323 -4.429 re 195.268 549.573 m h 193.901 551.515 1.411 -1.139 re f Q q 1 0 0 1 198.639 548.391 cm 0.146 g /GS0 gs 0 0 m -0.018 0.3 -0.3 0.432 -0.6 0.432 c -0.962 0.432 -1.13 0.326 -1.13 0.035 c -1.13 -0.662 1.403 -0.265 1.403 -1.924 c 1.403 -2.894 0.221 -3.38 -0.6 -3.38 c -1.633 -3.38 -2.533 -2.974 -2.55 -1.959 c -1.324 -1.959 l -1.297 -2.303 -0.988 -2.497 -0.6 -2.497 c -0.238 -2.497 0.035 -2.347 0.035 -2.003 c 0.035 -1.65 -0.6 -1.5 -0.865 -1.438 c -1.712 -1.235 -2.497 -1.05 -2.497 -0.018 c -2.497 0.909 -1.377 1.315 -0.6 1.315 c 0.335 1.315 1.129 0.979 1.191 0 c 0 0 l f Q q 1 0 0 1 203.165 548.02 cm 0.146 g /GS0 gs 0 0 m -0.009 0.362 -0.158 0.803 -0.67 0.803 c -1.235 0.803 -1.244 -0.255 -1.261 -0.6 c -1.226 -1.006 -1.217 -2.126 -0.653 -2.126 c -0.141 -2.126 0.009 -1.623 0.018 -1.262 c 1.306 -1.262 l 1.262 -2.391 0.565 -3.009 -0.653 -3.009 c -1.967 -3.009 -2.629 -1.835 -2.629 -0.661 c -2.629 0.512 -1.967 1.686 -0.653 1.686 c 0.477 1.686 1.315 1.042 1.306 0 c 0 0 l f Q q 1 0 0 1 206.412 547.359 cm 0.146 g /GS0 gs 0 0 m 0 0.705 0.133 1.464 0.945 1.464 c 1.756 1.464 1.889 0.705 1.889 0 c 1.889 -0.706 1.756 -1.465 0.945 -1.465 c 0.133 -1.465 0 -0.706 0 0 c h 3.256 0 m 3.256 1.394 2.392 2.347 0.945 2.347 c -0.502 2.347 -1.367 1.394 -1.367 0 c -1.367 -1.395 -0.502 -2.348 0.945 -2.348 c 2.392 -2.348 3.256 -1.395 3.256 0 c f Q q 1 0 0 1 214.442 550.456 cm 0.146 g /GS0 gs 0 0 m 0.759 -0.036 1.747 0.229 1.747 -0.9 c 1.747 -2.03 0.759 -1.765 0 -1.8 c 0 0 l h 0 -5.312 m 0 -2.859 l 0.997 -2.859 l 2.418 -2.815 3.203 -2.056 3.203 -0.9 c 3.203 0.714 2.012 1.05 0.6 1.059 c -1.368 1.059 l -1.368 -5.312 l 0 -5.312 l f Q q 1 0 0 1 219.569 549.573 cm 0.146 g /GS0 gs 0 0 m 0.026 -0.803 l 0.044 -0.803 l 0.326 -0.106 0.891 0.071 1.552 0.053 c 1.552 -1.12 l 0.979 -1.12 l 0.758 -1.138 0.467 -1.262 0.335 -1.447 c 0.194 -1.694 0.167 -1.941 0.158 -2.232 c 0.158 -4.429 l -1.156 -4.429 l -1.165 -0.882 l -1.165 -0.697 -1.192 -0.326 -1.21 0 c 0 0 l f Q q 1 0 0 1 223.062 547.888 cm 0.146 g /GS0 gs 0 0 m 0.018 0.485 0.15 0.935 0.759 0.935 c 1.403 0.935 1.536 0.485 1.536 0 c 0 0 l h 2.903 -0.882 m 2.903 -0.591 2.903 -0.309 2.868 -0.035 c 2.833 0.247 2.771 0.512 2.648 0.759 c 2.277 1.535 1.589 1.818 0.759 1.818 c -0.591 1.818 -1.367 0.794 -1.367 -0.538 c -1.367 -2.021 -0.758 -2.877 0.759 -2.877 c 1.792 -2.877 2.648 -2.515 2.762 -1.421 c 1.571 -1.421 l 1.447 -1.827 1.218 -1.994 0.759 -1.994 c 0.08 -1.994 0 -1.456 0 -0.882 c 2.903 -0.882 l f Q q 1 0 0 1 229.036 548.391 cm 0.146 g /GS0 gs 0 0 m -0.017 0.3 -0.3 0.432 -0.6 0.432 c -0.962 0.432 -1.129 0.326 -1.129 0.035 c -1.129 -0.662 1.403 -0.265 1.403 -1.924 c 1.403 -2.894 0.221 -3.38 -0.6 -3.38 c -1.632 -3.38 -2.532 -2.974 -2.55 -1.959 c -1.323 -1.959 l -1.297 -2.303 -0.988 -2.497 -0.6 -2.497 c -0.238 -2.497 0.035 -2.347 0.035 -2.003 c 0.035 -1.65 -0.6 -1.5 -0.865 -1.438 c -1.712 -1.235 -2.497 -1.05 -2.497 -0.018 c -2.497 0.909 -1.376 1.315 -0.6 1.315 c 0.335 1.315 1.13 0.979 1.191 0 c 0 0 l f Q q 1 0 0 1 233.448 548.391 cm 0.146 g /GS0 gs 0 0 m -0.018 0.3 -0.3 0.432 -0.6 0.432 c -0.962 0.432 -1.129 0.326 -1.129 0.035 c -1.129 -0.662 1.403 -0.265 1.403 -1.924 c 1.403 -2.894 0.221 -3.38 -0.6 -3.38 c -1.632 -3.38 -2.532 -2.974 -2.55 -1.959 c -1.323 -1.959 l -1.297 -2.303 -0.988 -2.497 -0.6 -2.497 c -0.238 -2.497 0.035 -2.347 0.035 -2.003 c 0.035 -1.65 -0.6 -1.5 -0.865 -1.438 c -1.712 -1.235 -2.497 -1.05 -2.497 -0.018 c -2.497 0.909 -1.376 1.315 -0.6 1.315 c 0.335 1.315 1.129 0.979 1.191 0 c 0 0 l f Q q 1 0 0 1 271.91 551.525 cm 0.146 g /GS0 gs 0 0 m -2.611 -2.33 -3.338 -5.695 y -4.247 -4.575 l -4.388 -5.249 l -2.987 -7.112 -2.881 -7.341 v -2.561 -2.333 0 0 y f Q q 1 0 0 1 246.46 550.349 cm 0.146 g /GS0 gs 0 0 m 4.023 0 l 4.023 -0.482 l 0.524 -0.482 l 0.524 -2.196 l 3.895 -2.196 l 3.895 -2.677 l 0.524 -2.677 l 0.524 -4.575 l 4.079 -4.575 l 4.079 -5.057 l 0 -5.057 l 0 0 l f Q q 1 0 0 1 252.756 547.856 cm 0.146 g /GS0 gs 0 0 m -1.969 2.493 l -1.268 2.493 l 0.375 0.411 l 2.067 2.493 l 2.719 2.493 l 0.736 0.028 l 2.783 -2.564 l 2.089 -2.564 l 0.361 -0.39 l -1.381 -2.564 l -2.054 -2.564 l 0 0 l f Q q 1 0 0 1 259.355 546.829 cm 0.146 g /GS0 gs 0 0 m -2.662 0 l -3.349 -1.537 l -3.916 -1.537 l -1.621 3.52 l -1.012 3.52 l 1.282 -1.537 l 0.673 -1.537 l 0 0 l h -1.324 2.995 m -2.45 0.482 l -0.212 0.482 l -1.324 2.995 l f Q q 1 0 0 1 266.33 550.349 cm 0.146 g /GS0 gs 0 0 m 0.744 0 l 0.744 -5.057 l 0.22 -5.057 l 0.22 -0.687 l 0.206 -0.687 l -2.025 -5.057 l -2.506 -5.057 l -4.73 -0.68 l -4.744 -0.68 l -4.744 -5.057 l -5.268 -5.057 l -5.268 0 l -4.503 0 l -2.252 -4.398 l 0 0 l f Q q 1 0 0 1 277.512 547.261 cm 0.146 g /GS0 gs 0 0 m -0.128 -0.666 -0.355 -1.204 -0.85 -1.572 c -1.339 -1.94 -2.104 -2.146 -3.322 -2.146 c -4.533 -2.146 -6.777 -2.061 -6.777 0.56 c -6.777 3.18 -4.533 3.265 -3.322 3.265 c -2.118 3.265 -0.262 3.109 0 1.105 c -2.252 1.105 l -2.309 1.466 -2.55 1.99 -3.322 1.99 c -4.136 1.99 -4.653 1.586 -4.653 0.56 c -4.653 -0.467 -4.15 -0.871 -3.421 -0.871 c -2.791 -0.871 -2.415 -0.609 -2.252 0 c 0 0 l f Q q 1 0 0 1 278.219 550.349 cm 0.146 g /GS0 gs 0 0 m 4.207 0 l 4.781 0 5.127 -0.05 5.404 -0.185 c 5.779 -0.369 6.091 -0.857 6.091 -1.41 c 6.091 -1.884 5.892 -2.394 5.312 -2.564 c 5.312 -2.578 l 5.609 -2.663 5.85 -2.918 5.885 -3.357 c 5.97 -4.462 l 5.991 -4.688 6.091 -4.901 6.218 -5.057 c 4.037 -5.057 l 3.966 -4.908 3.966 -4.688 3.931 -4.101 c 3.909 -3.725 3.782 -3.499 3.414 -3.499 c 1.998 -3.499 l 1.998 -5.057 l 0 -5.057 l 0 0 l h 1.998 -2.224 m 3.414 -2.224 l 3.803 -2.224 3.966 -2.068 3.966 -1.75 c 3.966 -1.367 3.718 -1.275 3.386 -1.275 c 1.998 -1.275 l 1.998 -2.224 l f Q q 1 0 0 1 286.462 550.349 cm 0.146 g /GS0 gs 0 0 m 2.45 0 l 4.603 -5.057 l 2.479 -5.057 l 2.266 -4.476 l 0.184 -4.476 l -0.028 -5.057 l -2.153 -5.057 l 0 0 l h 1.232 -1.53 m 1.218 -1.53 l 0.623 -3.244 l 1.827 -3.244 l 1.232 -1.53 l f Q q 1 0 0 1 291.32 550.349 cm 0.146 g /GS0 gs 0 0 m 2.811 0 l 3.64 -2.939 l 3.654 -2.939 l 4.482 0 l 7.294 0 l 7.294 -5.057 l 5.481 -5.057 l 5.481 -1.445 l 5.467 -1.445 l 4.405 -5.057 l 2.889 -5.057 l 1.827 -1.445 l 1.813 -1.445 l 1.813 -5.057 l 0 -5.057 l 0 0 l f Q q 1 0 0 1 119.788 548.616 cm 0.146 g /GS0 gs 0 0 m -3.26 0 l -1.645 2.835 l 0 0 l f Q q 1 0 0 1 117.753 548.028 cm 0.146 g /GS0 gs 0 0 m -1.628 -2.824 l -3.277 -0.009 l 0 0 l f Q q 1 0 0 1 121.678 548.028 cm 0.146 g /GS0 gs 0 0 m -1.629 -2.824 l -3.277 -0.009 l 0 0 l f Q q 1 0 0 1 126.151 547.513 cm 0.146 g /GS0 gs 0 0 m -1.93 0 l -0.956 2.26 l 0 0 l h 0.11 -0.305 m 0.415 -1.007 l 0.483 -1.177 0.618 -1.465 0.618 -1.651 c 0.618 -1.947 0.406 -2.015 0.043 -2.032 c 0.043 -2.184 l 2.252 -2.184 l 2.252 -2.032 l 1.625 -2.006 1.465 -1.532 1.253 -1.024 c -0.652 3.546 l -0.804 3.546 l -2.818 -1.177 l -3.072 -1.769 -3.25 -1.989 -3.69 -2.032 c -3.69 -2.184 l -1.93 -2.184 l -1.93 -2.032 l -2.243 -2.006 -2.581 -1.972 -2.581 -1.659 c -2.581 -1.498 -2.463 -1.236 -2.395 -1.092 c -2.057 -0.305 l 0.11 -0.305 l f Q q 1 0 0 1 131.433 546.048 cm 0.146 g /GS0 gs 0 0 m -0.195 -0.211 -0.432 -0.38 -0.728 -0.38 c -1.371 -0.38 -1.888 0.297 -1.888 1.329 c -1.888 2.65 -1.185 2.929 -0.881 2.929 c -0.305 2.929 0 2.353 0 1.846 c 0 0 l h 0 2.861 m -0.22 3.09 -0.533 3.183 -0.838 3.183 c -1.939 3.183 -2.658 2.04 -2.658 1.033 c -2.658 0.144 -2.116 -0.838 -1.126 -0.838 c -0.652 -0.838 -0.322 -0.626 0 -0.296 c 0 -0.838 l 0.186 -0.838 l 1.329 -0.372 l 1.269 -0.228 l 1.185 -0.262 1.075 -0.296 0.982 -0.296 c 0.863 -0.296 0.685 -0.296 0.685 0.28 c 0.685 5.155 l 0.499 5.155 l -0.644 4.69 l -0.584 4.546 l -0.5 4.579 -0.39 4.613 -0.296 4.613 c -0.178 4.613 0 4.613 0 4.038 c 0 2.861 l f Q q 1 0 0 1 135.665 546.048 cm 0.146 g /GS0 gs 0 0 m -0.195 -0.211 -0.432 -0.38 -0.728 -0.38 c -1.371 -0.38 -1.888 0.297 -1.888 1.329 c -1.888 2.65 -1.185 2.929 -0.88 2.929 c -0.305 2.929 0 2.353 0 1.846 c 0 0 l h 0 2.861 m -0.22 3.09 -0.533 3.183 -0.838 3.183 c -1.938 3.183 -2.658 2.04 -2.658 1.033 c -2.658 0.144 -2.116 -0.838 -1.126 -0.838 c -0.652 -0.838 -0.322 -0.626 0 -0.296 c 0 -0.838 l 0.186 -0.838 l 1.329 -0.372 l 1.269 -0.228 l 1.185 -0.262 1.075 -0.296 0.982 -0.296 c 0.863 -0.296 0.685 -0.296 0.685 0.28 c 0.685 5.155 l 0.499 5.155 l -0.643 4.69 l -0.584 4.546 l -0.5 4.579 -0.39 4.613 -0.296 4.613 c -0.178 4.613 0 4.613 0 4.038 c 0 2.861 l f Q q 1 0 0 1 138.509 546.048 cm 0.146 g /GS0 gs 0 0 m 0 -0.499 0.195 -0.558 0.584 -0.567 c 0.584 -0.719 l -1.27 -0.719 l -1.27 -0.567 l -0.88 -0.558 -0.686 -0.499 -0.686 0 c -0.686 2.066 l -0.686 2.641 -0.863 2.641 -0.982 2.641 c -1.075 2.641 -1.185 2.607 -1.27 2.574 c -1.329 2.717 l -0.186 3.183 l 0 3.183 l 0 0 l h -0.347 5.155 m -0.119 5.155 0.068 4.969 0.068 4.74 c 0.068 4.512 -0.119 4.326 -0.347 4.326 c -0.576 4.326 -0.762 4.512 -0.762 4.74 c -0.762 4.969 -0.576 5.155 -0.347 5.155 c f Q q 1 0 0 1 142.038 547.936 cm 0.146 g /GS0 gs 0 0 m -0.152 0 l -0.279 0.567 -0.507 1.041 -1.168 1.041 c -1.472 1.041 -1.811 0.872 -1.811 0.525 c -1.811 -0.398 0.28 -0.279 0.28 -1.591 c 0.28 -2.285 -0.372 -2.726 -1.015 -2.726 c -1.261 -2.726 -1.532 -2.666 -1.777 -2.599 c -1.989 -2.556 l -2.141 -2.666 l -2.293 -2.666 l -2.293 -1.312 l -2.141 -1.312 l -2.065 -1.905 -1.616 -2.472 -0.981 -2.472 c -0.634 -2.472 -0.33 -2.268 -0.33 -1.896 c -0.33 -0.906 -2.302 -1.041 -2.302 0.161 c -2.302 0.855 -1.803 1.295 -1.125 1.295 c -0.948 1.295 -0.812 1.253 -0.643 1.202 c -0.541 1.177 -0.431 1.134 -0.33 1.134 c -0.22 1.134 -0.186 1.202 -0.152 1.295 c 0 1.295 l 0 0 l f Q q 1 0 0 1 144.578 548.943 cm 0.146 g /GS0 gs 0 0 m 0.939 0 1.193 -1.253 1.193 -1.989 c 1.193 -2.581 1.049 -3.445 0.279 -3.445 c -0.661 -3.445 -0.923 -2.124 -0.923 -1.396 c -0.923 -0.313 -0.415 0 0 0 c h 0.144 0.288 m -0.965 0.288 -1.693 -0.719 -1.693 -1.76 c -1.693 -2.776 -0.991 -3.733 0.084 -3.733 c 1.422 -3.733 1.963 -2.505 1.963 -1.633 c 1.963 -0.601 1.202 0.288 0.144 0.288 c f Q q 1 0 0 1 148.2 548.435 cm 0.146 g /GS0 gs 0 0 m 0.474 0.525 0.804 0.796 1.287 0.796 c 1.972 0.796 2.243 0.153 2.243 -0.482 c 2.243 -2.387 l 2.243 -2.886 2.438 -2.945 2.827 -2.954 c 2.827 -3.106 l 0.974 -3.106 l 0.974 -2.954 l 1.363 -2.945 1.558 -2.886 1.558 -2.387 c 1.558 -0.635 l 1.558 0.203 1.211 0.288 0.957 0.288 c 0.567 0.288 0.28 0.034 0 -0.254 c 0 -2.387 l 0 -2.886 0.195 -2.945 0.584 -2.954 c 0.584 -3.106 l -1.269 -3.106 l -1.269 -2.954 l -0.88 -2.945 -0.685 -2.886 -0.685 -2.387 c -0.685 -0.321 l -0.685 0.254 -0.863 0.254 -0.982 0.254 c -1.075 0.254 -1.185 0.22 -1.269 0.187 c -1.329 0.33 l -0.186 0.796 l 0 0.796 l 0 0 l f Q q 1 0 0 1 -0 0 cm 0.146 g /GS0 gs 151.4 546.903 2.141 0.652 re f Q q 1 0 0 1 159.847 549.62 cm 0.146 g /GS0 gs 0 0 m 0.068 0.195 0.203 0.567 0.203 0.762 c 0.203 1.084 -0.034 1.16 -0.415 1.16 c -0.415 1.312 l 1.261 1.312 l 1.261 1.16 l 0.702 1.16 0.584 0.694 0.432 0.246 c -1.177 -4.418 l -1.337 -4.418 l -2.607 -0.863 l -2.624 -0.863 l -3.868 -4.418 l -4.038 -4.418 l -5.764 0.415 l -5.95 0.948 -6.035 1.16 -6.543 1.16 c -6.543 1.312 l -4.469 1.312 l -4.469 1.16 l -4.774 1.16 -5.019 1.092 -5.019 0.804 c -5.019 0.669 -4.935 0.449 -4.892 0.322 c -3.75 -2.937 l -3.733 -2.937 l -2.802 -0.321 l -3.03 0.305 l -3.208 0.779 -3.335 1.16 -3.894 1.16 c -3.894 1.312 l -1.701 1.312 l -1.701 1.16 l -2.057 1.16 -2.302 1.134 -2.302 0.779 c -2.302 0.534 -2.167 0.187 -2.082 -0.042 c -1.05 -2.937 l -1.033 -2.937 l 0 0 l f Q q 1 0 0 1 161.389 547.936 cm 0.146 g /GS0 gs 0 0 m 0.034 0.491 0.389 0.99 0.888 0.99 c 1.489 0.99 1.752 0.525 1.752 0 c 0 0 l h 2.615 -0.254 m 2.615 0.66 2.04 1.295 1.168 1.295 c -0.034 1.295 -0.584 0.313 -0.584 -0.779 c -0.584 -1.938 0.144 -2.726 1.066 -2.726 c 1.921 -2.726 2.471 -2.006 2.615 -1.227 c 2.488 -1.143 l 2.293 -1.693 1.963 -2.048 1.354 -2.048 c 0.431 -2.048 -0.009 -1.1 -0.009 -0.254 c 2.615 -0.254 l f Q q 1 0 0 1 167.009 547.936 cm 0.146 g /GS0 gs 0 0 m -0.153 0 l -0.28 0.567 -0.508 1.041 -1.168 1.041 c -1.473 1.041 -1.812 0.872 -1.812 0.525 c -1.812 -0.398 0.279 -0.279 0.279 -1.591 c 0.279 -2.285 -0.373 -2.726 -1.016 -2.726 c -1.261 -2.726 -1.532 -2.666 -1.778 -2.599 c -1.989 -2.556 l -2.142 -2.666 l -2.294 -2.666 l -2.294 -1.312 l -2.142 -1.312 l -2.066 -1.905 -1.617 -2.472 -0.982 -2.472 c -0.635 -2.472 -0.33 -2.268 -0.33 -1.896 c -0.33 -0.906 -2.303 -1.041 -2.303 0.161 c -2.303 0.855 -1.803 1.295 -1.126 1.295 c -0.948 1.295 -0.813 1.253 -0.644 1.202 c -0.542 1.177 -0.432 1.134 -0.33 1.134 c -0.22 1.134 -0.186 1.202 -0.153 1.295 c 0 1.295 l 0 0 l f Q q 1 0 0 1 169.125 546.048 cm 0.146 g /GS0 gs 0 0 m 0 -0.499 0.194 -0.558 0.584 -0.567 c 0.584 -0.719 l -1.27 -0.719 l -1.27 -0.567 l -0.881 -0.558 -0.686 -0.499 -0.686 0 c -0.686 4.038 l -0.686 4.613 -0.864 4.613 -0.982 4.613 c -1.075 4.613 -1.185 4.579 -1.27 4.546 c -1.329 4.69 l -0.187 5.155 l 0 5.155 l 0 0 l f Q q 1 0 0 1 170.792 547.936 cm 0.146 g /GS0 gs 0 0 m 0.034 0.491 0.39 0.99 0.889 0.99 c 1.49 0.99 1.752 0.525 1.752 0 c 0 0 l h 2.616 -0.254 m 2.616 0.66 2.04 1.295 1.168 1.295 c -0.034 1.295 -0.584 0.313 -0.584 -0.779 c -0.584 -1.938 0.144 -2.726 1.067 -2.726 c 1.921 -2.726 2.472 -2.006 2.616 -1.227 c 2.488 -1.143 l 2.294 -1.693 1.964 -2.048 1.354 -2.048 c 0.432 -2.048 -0.008 -1.1 -0.008 -0.254 c 2.616 -0.254 l f Q q 1 0 0 1 174.314 548.241 cm 0.146 g /GS0 gs 0 0 m -0.144 0.313 -0.339 0.677 -0.711 0.719 c -0.711 0.872 l 1.049 0.872 l 1.049 0.719 l 0.787 0.719 0.593 0.685 0.593 0.414 c 0.593 0.271 0.711 0.034 0.77 -0.102 c 1.651 -1.913 l 2.455 0.076 l 2.514 0.228 2.565 0.347 2.565 0.507 c 2.565 0.702 2.412 0.719 2.184 0.719 c 2.184 0.872 l 3.419 0.872 l 3.419 0.719 l 3.149 0.719 3.005 0.507 2.912 0.279 c 1.295 -3.682 l 0.965 -4.495 0.347 -4.74 0.051 -4.74 c -0.229 -4.74 -0.516 -4.571 -0.516 -4.266 c -0.516 -4.012 -0.313 -3.894 -0.085 -3.894 c 0.195 -3.894 0.33 -4.046 0.474 -4.046 c 0.813 -4.046 0.99 -3.572 1.092 -3.327 c 1.32 -2.76 l 0 0 l f Q q 1 0 0 1 -0 0 cm 0.146 g /GS0 gs 310.665 547.378 1.672 5.427 re f Q q 1 0 0 1 313.196 552.805 cm 0.146 g /GS0 gs 0 0 m 2.972 0 l 4.401 0 4.705 -0.806 4.705 -1.361 c 4.705 -1.908 4.439 -2.205 4.036 -2.425 c 4.523 -2.592 4.979 -2.98 4.979 -3.778 c 4.979 -4.865 4.036 -5.427 3.079 -5.427 c 0 -5.427 l 0 0 l h 1.672 -2.113 m 2.554 -2.113 l 2.904 -2.113 3.124 -2.015 3.124 -1.665 c 3.124 -1.391 2.896 -1.292 2.554 -1.292 c 1.672 -1.292 l 1.672 -2.113 l h 1.672 -4.135 m 2.653 -4.135 l 3.003 -4.135 3.307 -4.036 3.307 -3.618 c 3.307 -3.299 3.117 -3.124 2.721 -3.124 c 1.672 -3.124 l 1.672 -4.135 l f Q q 1 0 0 1 318.821 552.805 cm 0.146 g /GS0 gs 0 0 m 2.379 0 l 3.154 -3.193 l 3.169 -3.193 l 3.945 0 l 6.324 0 l 6.324 -5.427 l 4.743 -5.427 l 4.743 -1.946 l 4.728 -1.946 l 3.785 -5.427 l 2.539 -5.427 l 1.596 -1.946 l 1.581 -1.946 l 1.581 -5.427 l 0 -5.427 l 0 0 l f Q q 1 0 0 1 310.775 545.538 cm 0.146 g /GS0 gs 0 0 m 1.901 0 l 2.903 0 3.254 -0.741 3.254 -1.273 c 3.254 -2.175 2.655 -2.598 1.808 -2.598 c 1.136 -2.598 l 1.136 -3.724 l 0 -3.724 l 0 0 l h 1.136 -1.711 m 1.575 -1.711 l 1.87 -1.711 2.18 -1.69 2.18 -1.315 c 2.18 -0.975 1.921 -0.955 1.642 -0.955 c 1.136 -0.955 l 1.136 -1.711 l f Q q 1 0 0 1 314.396 544.521 cm 0.146 g /GS0 gs 0 0 m 0.981 0 l 0.981 -0.433 l 0.991 -0.433 l 1.157 -0.11 1.374 0.068 1.746 0.068 c 1.849 0.068 1.947 0.052 2.045 0.026 c 2.045 -0.887 l 1.942 -0.85 1.849 -0.819 1.642 -0.819 c 1.239 -0.819 1.022 -1.059 1.022 -1.638 c 1.022 -2.707 l 0 -2.707 l 0 0 l f Q q 1 0 0 1 317.46 542.935 cm 0.146 g /GS0 gs 0 0 m 0.026 -0.308 0.201 -0.527 0.521 -0.527 c 0.687 -0.527 0.867 -0.464 0.95 -0.334 c 1.906 -0.334 l 1.699 -0.918 1.136 -1.189 0.527 -1.189 c -0.331 -1.189 -0.977 -0.678 -0.977 0.224 c -0.977 1.012 -0.408 1.654 0.439 1.654 c 1.503 1.654 1.963 1.054 1.963 0 c 0 0 l h 0.981 0.537 m 0.981 0.788 0.795 0.991 0.532 0.991 c 0.227 0.991 0.051 0.829 0.005 0.537 c 0.981 0.537 l f Q q 1 0 0 1 321.401 543.733 cm 0.146 g /GS0 gs 0 0 m -0.119 0.204 l -0.346 0.282 l -0.491 0.282 -0.656 0.251 -0.656 0.073 c -0.537 -0.068 l -0.367 -0.141 0.02 -0.162 0.361 -0.276 c 0.702 -0.386 1.002 -0.589 1.002 -1.033 c 1.002 -1.784 0.289 -1.987 -0.362 -1.987 c -0.992 -1.987 -1.684 -1.732 -1.7 -1.033 c -0.723 -1.033 l -0.718 -1.127 -0.677 -1.205 -0.599 -1.273 c -0.548 -1.32 -0.45 -1.351 -0.326 -1.351 c -0.191 -1.351 0.02 -1.299 0.02 -1.142 c 0.02 -0.986 -0.067 -0.939 -0.543 -0.855 c -1.323 -0.72 -1.638 -0.469 -1.638 -0.005 c -1.638 0.678 -0.909 0.856 -0.372 0.856 c 0.206 0.856 0.904 0.694 0.93 0 c 0 0 l f Q q 1 0 0 1 324.366 543.733 cm 0.146 g /GS0 gs 0 0 m -0.119 0.204 l -0.346 0.282 l -0.491 0.282 -0.656 0.251 -0.656 0.073 c -0.538 -0.068 l -0.367 -0.141 0.02 -0.162 0.361 -0.276 c 0.702 -0.386 1.002 -0.589 1.002 -1.033 c 1.002 -1.784 0.289 -1.987 -0.362 -1.987 c -0.992 -1.987 -1.684 -1.732 -1.7 -1.033 c -0.723 -1.033 l -0.718 -1.127 -0.677 -1.205 -0.599 -1.273 c -0.548 -1.32 -0.45 -1.351 -0.326 -1.351 c -0.191 -1.351 0.02 -1.299 0.02 -1.142 c 0.02 -0.986 -0.067 -0.939 -0.543 -0.855 c -1.323 -0.72 -1.638 -0.469 -1.638 -0.005 c -1.638 0.678 -0.909 0.856 -0.372 0.856 c 0.206 0.856 0.904 0.694 0.93 0 c 0 0 l f Q q 1 0 0 1 326.382 542.428 cm 0.146 g /GS0 gs 0 0 m -0.226 0 l -0.226 -0.621 l -0.369 -0.621 l -0.369 0 l -0.594 0 l -0.594 0.116 l 0 0.116 l 0 0 l h 0.559 -0.406 m 0.76 0.116 l 0.965 0.116 l 0.965 -0.621 l 0.831 -0.621 l 0.831 -0.045 l 0.828 -0.045 l 0.608 -0.621 l 0.507 -0.621 l 0.288 -0.045 l 0.284 -0.045 l 0.284 -0.621 l 0.15 -0.621 l 0.15 0.116 l 0.357 0.116 l 0.559 -0.406 l f Q q 1 0 0 1 432.01 549.104 cm 0.146 g /GS0 gs 0 0 m -0.264 0.254 -0.627 0.424 -1.034 0.424 c -1.339 0.424 -1.773 0.246 -1.83 -0.11 c -1.889 -0.483 -1.463 -0.627 -1.189 -0.72 c -0.786 -0.847 l 0.062 -1.109 0.677 -1.558 0.513 -2.592 c 0.412 -3.227 0.156 -3.88 -0.42 -4.311 c -0.987 -4.735 -1.685 -4.913 -2.329 -4.913 c -3.133 -4.913 -3.878 -4.642 -4.458 -4.184 c -3.534 -2.846 l -3.177 -3.21 -2.732 -3.507 -2.165 -3.507 c -1.775 -3.507 -1.329 -3.312 -1.258 -2.863 c -1.184 -2.397 -1.811 -2.236 -2.151 -2.134 c -3.145 -1.838 -3.789 -1.567 -3.593 -0.33 c -3.387 0.966 -2.33 1.813 -1.051 1.813 c -0.407 1.813 0.349 1.61 0.865 1.288 c 0 0 l f Q q 1 0 0 1 440.492 550.747 cm 0.146 g /GS0 gs 0 0 m 1.635 0 l 2.389 -3.413 l 4.303 0 l 5.955 0 l 5.908 -6.386 l 4.248 -6.386 l 4.364 -2.71 l 4.348 -2.71 l 2.231 -6.386 l 1.571 -6.386 l 0.688 -2.71 l 0.671 -2.71 l -0.445 -6.386 l -2.097 -6.386 l 0 0 l f Q q 1 0 0 1 451.361 549.104 cm 0.146 g /GS0 gs 0 0 m -0.265 0.254 -0.628 0.424 -1.034 0.424 c -1.339 0.424 -1.774 0.246 -1.83 -0.11 c -1.889 -0.483 -1.463 -0.627 -1.19 -0.72 c -0.787 -0.847 l 0.061 -1.109 0.676 -1.558 0.512 -2.592 c 0.411 -3.227 0.156 -3.88 -0.421 -4.311 c -0.988 -4.735 -1.685 -4.913 -2.329 -4.913 c -3.134 -4.913 -3.879 -4.642 -4.458 -4.184 c -3.535 -2.846 l -3.177 -3.21 -2.733 -3.507 -2.166 -3.507 c -1.776 -3.507 -1.33 -3.312 -1.259 -2.863 c -1.185 -2.397 -1.812 -2.236 -2.151 -2.134 c -3.146 -1.838 -3.789 -1.567 -3.593 -0.33 c -3.388 0.966 -2.33 1.813 -1.051 1.813 c -0.408 1.813 0.348 1.61 0.865 1.288 c 0 0 l f Q q 1 0 0 1 434.043 544.447 cm 0.146 g /GS0 gs 0 0 m -2.337 0 l 4.117 8.358 l 4.117 0 l 2.252 0 l 2.256 3.257 l 0 0 l f Q q 1 0 0 1 340.783 546.235 cm 0.146 g /GS0 gs 0 0 m 1.192 0 l 1.529 0 1.802 0.274 1.802 0.611 c 1.802 2.406 l 1.802 2.744 1.529 3.017 1.192 3.017 c -1.616 3.017 l -1.953 3.017 -2.226 2.744 -2.226 2.406 c -2.226 0.611 l -2.226 0.274 -1.953 0 -1.616 0 c -0.472 0 l -0.472 -1.231 l -2.628 -1.231 l -3.22 -1.231 -3.699 -0.751 -3.699 -0.159 c -3.699 3.092 l -3.699 3.684 -3.22 4.163 -2.628 4.163 c 2.297 4.163 l 2.889 4.163 3.369 3.684 3.369 3.092 c 3.369 -0.159 l 3.369 -0.751 2.889 -1.231 2.297 -1.231 c 1.454 -1.231 l 1.454 -2.199 l -0.003 -2.199 l 0 0 l f Q q 1 0 0 1 351.747 550.398 cm 0.146 g /GS0 gs 0 0 m 0 -4.369 l 0 -4.96 -0.48 -5.44 -1.072 -5.44 c -5.78 -5.44 l -6.372 -5.44 -6.851 -4.96 -6.851 -4.369 c -6.851 0 l -5.333 0 l -5.333 -3.627 l -5.333 -3.953 -5.069 -4.216 -4.744 -4.216 c -2.171 -4.216 l -1.846 -4.216 -1.582 -3.953 -1.582 -3.627 c -1.582 0 l 0 0 l f Q q 1 0 0 1 354.583 547.081 cm 0.146 g /GS0 gs 0 0 m 0 0.988 l 3.255 0.997 l 3.512 0.997 3.72 1.236 3.72 1.493 c 3.72 1.75 3.512 1.958 3.255 1.958 c 0.226 1.956 l -0.111 2.003 -0.385 1.73 -0.385 1.392 c -0.385 -0.328 l -0.385 -0.666 -0.111 -0.939 0.226 -0.939 c 4.963 -0.939 l 4.964 -2.17 l -0.959 -2.17 l -1.551 -2.17 -2.03 -1.69 -2.03 -1.098 c -2.03 2.153 l -2.03 2.745 -1.551 3.224 -0.959 3.224 c 4.121 3.224 l 4.713 3.224 5.192 2.745 5.192 2.153 c 5.192 1.072 l 5.192 0.48 4.713 0 4.121 0 c 0 0 l f Q q 1 0 0 1 360.378 549.727 cm 0.146 g /GS0 gs 0 0 m 0 0.39 0.318 0.709 0.712 0.709 c 1.103 0.709 1.42 0.39 1.42 0 c 1.42 -0.393 1.103 -0.712 0.712 -0.712 c 0.318 -0.712 0 -0.393 0 0 c h 1.308 0 m 1.308 0.345 1.057 0.615 0.712 0.615 c 0.365 0.615 0.112 0.345 0.112 0 c 0.112 -0.348 0.365 -0.618 0.712 -0.618 c 1.057 -0.618 1.308 -0.348 1.308 0 c h 1.066 -0.397 m 0.95 -0.397 l 0.723 -0.031 l 0.545 -0.031 l 0.545 -0.397 l 0.448 -0.397 l 0.448 0.396 l 0.794 0.396 l 1.004 0.396 1.075 0.317 1.075 0.186 c 1.075 0.03 0.967 -0.028 0.826 -0.031 c 1.066 -0.397 l h 0.693 0.045 m 0.806 0.045 0.97 0.027 0.97 0.188 c 0.97 0.311 0.869 0.326 0.772 0.326 c 0.545 0.326 l 0.545 0.045 l 0.693 0.045 l f Q q 1 0 0 1 382.132 551.433 cm 0.146 g /GS0 gs 0 0 m 2.661 0 l 3.141 0 3.358 -0.18 3.358 -0.64 c 3.358 -1.376 l 3.358 -1.836 3.141 -2.015 2.661 -2.015 c 0.551 -2.015 l 0.551 -3.301 l 0 -3.301 l 0 0 l h 0.551 -0.429 m 0.551 -1.58 l 2.444 -1.58 l 2.687 -1.58 2.802 -1.516 2.802 -1.235 c 2.802 -0.775 l 2.802 -0.499 2.693 -0.429 2.444 -0.429 c 0.551 -0.429 l f Q q 1 0 0 1 386.84 551.433 cm 0.146 g /GS0 gs 0 0 m 2.661 0 l 3.14 0 3.358 -0.18 3.358 -0.64 c 3.358 -1.376 l 3.358 -1.836 3.14 -2.015 2.661 -2.015 c 2.174 -2.015 l 3.684 -3.301 l 2.865 -3.301 l 1.522 -2.015 l 0.55 -2.015 l 0.55 -3.301 l 0 -3.301 l 0 0 l h 0.55 -0.429 m 0.55 -1.587 l 2.443 -1.587 l 2.686 -1.587 2.801 -1.529 2.801 -1.248 c 2.801 -0.768 l 2.801 -0.493 2.686 -0.429 2.443 -0.429 c 0.55 -0.429 l f Q q 1 0 0 1 391.713 551.433 cm 0.146 g /GS0 gs 0 0 m 3.179 0 l 3.179 -0.442 l 0.55 -0.442 l 0.55 -1.363 l 2.156 -1.363 l 2.156 -1.798 l 0.55 -1.798 l 0.55 -2.847 l 3.205 -2.847 l 3.205 -3.301 l 0 -3.301 l 0 0 l f Q q 1 0 0 1 396.229 551.433 cm 0.146 g /GS0 gs 0 0 m 0.346 0 l 2.814 -2.207 l 2.929 -2.31 3.057 -2.45 3.191 -2.623 c 3.14 -2.316 3.14 -2.047 3.14 -1.811 c 3.14 0 l 3.646 0 l 3.646 -3.301 l 3.338 -3.301 l 0.8 -1.005 l 0.703 -0.915 0.575 -0.819 0.467 -0.634 c 0.499 -0.877 0.506 -1.114 0.506 -1.356 c 0.506 -3.301 l 0 -3.301 l 0 0 l f Q q 1 0 0 1 402.868 548.132 cm 0.146 g /GS0 gs 0 0 m -0.55 0 l -0.55 2.853 l -2.06 2.853 l -2.06 3.301 l 1.516 3.301 l 1.516 2.853 l 0 2.853 l 0 0 l f Q q 1 0 0 1 0 -0 cm 0.146 g /GS0 gs 405.312 548.132 0.55 3.301 re f Q q 1 0 0 1 408.08 550.985 cm 0.146 g /GS0 gs 0 0 m 0 -2.392 l 2.29 -2.392 l 2.29 -1.567 l 2.84 -1.682 l 2.84 -2.073 l 2.84 -2.686 2.668 -2.853 2.073 -2.853 c 0.225 -2.853 l -0.371 -2.853 -0.549 -2.68 -0.549 -2.073 c -0.549 -0.332 l -0.549 0.275 -0.371 0.448 0.225 0.448 c 2.073 0.448 l 2.668 0.448 2.84 0.281 2.84 -0.332 c 2.84 -0.646 l 2.29 -0.748 l 2.29 0 l 0 0 l f Q q 1 0 0 1 412.373 551.433 cm 0.146 g /GS0 gs 0 0 m 3.179 0 l 3.179 -0.442 l 0.55 -0.442 l 0.55 -1.363 l 2.155 -1.363 l 2.155 -1.798 l 0.55 -1.798 l 0.55 -2.847 l 3.204 -2.847 l 3.204 -3.301 l 0 -3.301 l 0 0 l f Q q 1 0 0 1 382.132 546.735 cm 0.146 g /GS0 gs 0 0 m 0.551 0 l 0.551 -1.349 l 3.154 -1.349 l 3.154 0 l 3.704 0 l 3.704 -3.3 l 3.154 -3.3 l 3.154 -1.803 l 0.551 -1.803 l 0.551 -3.3 l 0 -3.3 l 0 0 l f Q q 1 0 0 1 388.707 546.735 cm 0.146 g /GS0 gs 0 0 m 0.588 0 l 2.425 -3.3 l 1.817 -3.3 l 1.394 -2.487 l -0.837 -2.487 l -1.26 -3.3 l -1.803 -3.3 l 0 0 l h 1.171 -2.065 m 0.281 -0.376 l -0.608 -2.065 l 1.171 -2.065 l f Q q 1 0 0 1 392.2 546.735 cm 0.146 g /GS0 gs 0 0 m 0.55 0 l 0.55 -2.839 l 3.05 -2.839 l 3.05 -3.3 l 0 -3.3 l 0 0 l f Q q 1 0 0 1 396.376 546.735 cm 0.146 g /GS0 gs 0 0 m 0.551 0 l 0.551 -2.839 l 3.051 -2.839 l 3.051 -3.3 l 0 -3.3 l 0 0 l f Q q 1 0 0 1 374.267 550.078 cm 0.146 g /GS0 gs 0 0 m 0.023 0.231 l 0.023 0.902 -0.521 1.447 -1.193 1.447 c -1.864 1.447 -2.408 0.902 -2.408 0.231 c -2.408 -0.44 -1.864 -0.985 -1.193 -0.985 c -0.952 -0.985 -0.729 -0.913 -0.54 -0.793 c -0.476 -0.459 -0.276 -0.176 0 0 c f Q q 1 0 0 1 376.76 551.522 cm 0.146 g /GS0 gs 0 0 m -0.672 0 -1.216 -0.545 -1.216 -1.216 c -1.194 -1.438 l -0.918 -1.616 -0.721 -1.902 -0.658 -2.236 c -0.469 -2.359 -0.243 -2.432 0 -2.432 c 0.671 -2.432 1.215 -1.888 1.215 -1.216 c 1.215 -0.545 0.671 0 0 0 c f Q q 1 0 0 1 376.77 548.7 cm 0.146 g /GS0 gs 0 0 m -0.37 0 -0.698 -0.169 -0.921 -0.431 c -0.932 -0.431 l -1.154 -0.701 -1.486 -0.876 -1.865 -0.876 c -2.246 -0.876 -2.582 -0.697 -2.805 -0.422 c -3.028 -0.171 -3.348 -0.008 -3.71 -0.008 c -4.381 -0.008 -4.926 -0.552 -4.926 -1.224 c -4.926 -1.896 -4.381 -2.439 -3.71 -2.439 c -3.367 -2.439 -3.062 -2.293 -2.84 -2.064 c -2.62 -1.754 -2.26 -1.55 -1.851 -1.55 c -1.441 -1.55 -1.08 -1.754 -0.859 -2.066 c -0.639 -2.289 -0.338 -2.431 0 -2.431 c 0.672 -2.431 1.216 -1.887 1.216 -1.215 c 1.216 -0.545 0.672 0 0 0 c f Q q 1 0 0 1 376.744 545.853 cm 0.146 g /GS0 gs 0 0 m -0.241 0 -0.463 -0.072 -0.652 -0.193 c -0.716 -0.526 -0.916 -0.809 -1.192 -0.985 c -1.216 -1.217 l -1.216 -1.887 -0.671 -2.432 0 -2.432 c 0.671 -2.432 1.215 -1.887 1.215 -1.217 c 1.215 -0.545 0.671 0 0 0 c f Q q 1 0 0 1 373.718 545.659 cm 0.146 g /GS0 gs 0 0 m -0.191 0.124 -0.416 0.197 -0.659 0.197 c -1.33 0.197 -1.875 -0.347 -1.875 -1.019 c -1.875 -1.69 -1.33 -2.235 -0.659 -2.235 c 0.013 -2.235 0.557 -1.69 0.557 -1.019 c 0.535 -0.797 l 0.259 -0.619 0.061 -0.334 0 0 c f Q q 1 0 0 1 480.984 541.986 cm 0.195 g 0 0 m -0.677 0 l -0.677 1.618 l -0.027 1.618 l 0.288 1.618 0.472 1.441 0.472 1.164 c 0.472 0.984 0.355 0.868 0.273 0.829 c 0.37 0.784 0.495 0.682 0.495 0.466 c 0.495 0.163 0.288 0 0 0 c h -0.052 1.336 m -0.361 1.336 l -0.361 0.963 l -0.052 0.963 l 0.082 0.963 0.157 1.038 0.157 1.15 c 0.157 1.261 0.082 1.336 -0.052 1.336 c h -0.032 0.679 m -0.361 0.679 l -0.361 0.281 l -0.032 0.281 l 0.111 0.281 0.179 0.373 0.179 0.482 c 0.179 0.591 0.111 0.679 -0.032 0.679 c f Q q 1 0 0 1 482.598 542.118 cm 0.195 g 0 0 m -0.073 -0.078 -0.193 -0.146 -0.369 -0.146 c -0.544 -0.146 -0.662 -0.078 -0.734 0 c -0.841 0.111 -0.869 0.245 -0.869 0.461 c -0.869 0.675 -0.841 0.809 -0.734 0.92 c -0.662 0.997 -0.544 1.065 -0.369 1.065 c -0.193 1.065 -0.073 0.997 0 0.92 c 0.106 0.809 0.134 0.675 0.134 0.461 c 0.134 0.245 0.106 0.111 0 0 c h -0.23 0.747 m -0.369 0.8 l -0.505 0.747 l -0.566 0.686 -0.573 0.584 -0.573 0.461 c -0.573 0.338 -0.566 0.234 -0.505 0.172 c -0.369 0.12 l -0.23 0.172 l -0.169 0.234 -0.162 0.338 -0.162 0.461 c -0.162 0.584 -0.169 0.686 -0.23 0.747 c f Q q 1 0 0 1 483.832 542.118 cm 0.195 g 0 0 m -0.073 -0.078 -0.193 -0.146 -0.369 -0.146 c -0.544 -0.146 -0.662 -0.078 -0.734 0 c -0.841 0.111 -0.868 0.245 -0.868 0.461 c -0.868 0.675 -0.841 0.809 -0.734 0.92 c -0.662 0.997 -0.544 1.065 -0.369 1.065 c -0.193 1.065 -0.073 0.997 0 0.92 c 0.106 0.809 0.134 0.675 0.134 0.461 c 0.134 0.245 0.106 0.111 0 0 c h -0.23 0.747 m -0.369 0.8 l -0.505 0.747 l -0.566 0.686 -0.573 0.584 -0.573 0.461 c -0.573 0.338 -0.566 0.234 -0.505 0.172 c -0.369 0.12 l -0.23 0.172 l -0.169 0.234 -0.162 0.338 -0.162 0.461 c -0.162 0.584 -0.169 0.686 -0.23 0.747 c f Q q 1 0 0 1 484.959 541.986 cm 0.195 g 0 0 m -0.291 0.493 l -0.416 0.352 l -0.416 0 l -0.711 0 l -0.711 1.618 l -0.416 1.618 l -0.416 0.7 l -0.023 1.184 l 0.334 1.184 l -0.089 0.707 l 0.366 0 l 0 0 l f Q q 1 0 0 1 485.907 541.972 cm 0.195 g 0 0 m -0.186 0 -0.355 0.02 -0.505 0.171 c -0.311 0.364 l -0.214 0.266 -0.087 0.252 0.004 0.252 c 0.107 0.252 0.214 0.287 0.214 0.375 c 0.214 0.434 0.182 0.475 0.088 0.484 c -0.098 0.502 l -0.311 0.523 -0.444 0.616 -0.444 0.834 c -0.444 1.08 -0.228 1.211 0.013 1.211 c 0.197 1.211 0.352 1.18 0.466 1.073 c 0.284 0.889 l 0.215 0.95 0.111 0.968 0.009 0.968 c -0.109 0.968 -0.159 0.914 -0.159 0.855 c -0.159 0.812 -0.141 0.761 -0.037 0.752 c 0.15 0.734 l 0.384 0.711 0.502 0.586 0.502 0.387 c 0.502 0.125 0.279 0 0 0 c f Q q 1 0 0 1 488.186 542.149 cm 0.195 g 0 0 m -0.114 -0.113 -0.252 -0.177 -0.436 -0.177 c -0.62 -0.177 -0.761 -0.113 -0.875 0 c -1.038 0.164 -1.034 0.366 -1.034 0.646 c -1.034 0.925 -1.038 1.127 -0.875 1.291 c -0.761 1.405 -0.62 1.469 -0.436 1.469 c -0.252 1.469 -0.114 1.405 0 1.291 c 0.164 1.127 0.162 0.925 0.162 0.646 c 0.162 0.366 0.164 0.164 0 0 c h -0.234 1.1 m -0.436 1.187 l -0.641 1.1 l -0.702 1.032 -0.718 0.957 -0.718 0.646 c -0.718 0.334 -0.702 0.26 -0.641 0.191 c -0.436 0.105 l -0.234 0.191 l -0.172 0.26 -0.154 0.334 -0.154 0.646 c -0.154 0.957 -0.172 1.032 -0.234 1.1 c f Q q 1 0 0 1 489.336 541.986 cm 0.195 g 0 0 m 0 0.716 l 0 0.877 -0.102 0.932 -0.195 0.932 c -0.288 0.932 -0.393 0.877 -0.393 0.716 c -0.393 0 l -0.688 0 l -0.688 1.184 l -0.4 1.184 l -0.4 1.075 l -0.323 1.156 -0.213 1.197 -0.105 1.197 c 0.014 1.197 0.109 1.159 0.175 1.093 c 0.271 0.997 0.296 0.886 0.296 0.757 c 0.296 0 l 0 0 l f Q q 1 0 0 1 490.284 541.986 cm 0.195 g 0 0 m -0.243 0 -0.345 0.17 -0.345 0.338 c -0.345 1.618 l -0.05 1.618 l -0.05 0.357 l 0.055 0.25 l 0.168 0.25 l 0.168 0 l 0 0 l f Q q 1 0 0 1 0 -0 cm 0.195 g 490.986 543.372 -0.302 0.241 re 490.684 543.372 m h 490.984 541.986 -0.296 1.184 re f Q q 1 0 0 1 492.002 541.986 cm 0.195 g 0 0 m 0 0.716 l 0 0.877 -0.102 0.932 -0.195 0.932 c -0.288 0.932 -0.393 0.877 -0.393 0.716 c -0.393 0 l -0.688 0 l -0.688 1.184 l -0.4 1.184 l -0.4 1.075 l -0.323 1.156 -0.213 1.197 -0.104 1.197 c 0.014 1.197 0.109 1.159 0.175 1.093 c 0.271 0.997 0.296 0.886 0.296 0.757 c 0.296 0 l 0 0 l f Q q 1 0 0 1 492.848 542.486 cm 0.195 g 0 0 m 0 -0.152 0.093 -0.264 0.259 -0.264 c 0.389 -0.264 0.452 -0.227 0.527 -0.152 c 0.707 -0.327 l 0.586 -0.448 0.47 -0.514 0.257 -0.514 c -0.023 -0.514 -0.291 -0.387 -0.291 0.093 c -0.291 0.479 -0.082 0.697 0.225 0.697 c 0.554 0.697 0.74 0.456 0.74 0.131 c 0.74 0 l 0 0 l h 0.422 0.329 m 0.391 0.4 0.325 0.452 0.225 0.452 c 0.125 0.452 0.059 0.4 0.027 0.329 c 0 0.202 l 0.45 0.202 l 0.422 0.329 l f Q q 1 0 0 1 471.785 544.294 cm 0.146 g /GS0 gs 0 0 m -1.033 0 -1.817 0.22 -2.487 0.899 c -1.626 1.759 l -1.196 1.329 -0.613 1.186 0.018 1.186 c 0.803 1.186 1.223 1.483 1.223 2.027 c 1.223 2.266 1.156 2.468 1.013 2.601 c 0.879 2.726 0.726 2.792 0.411 2.841 c -0.412 2.955 l -0.995 3.041 -1.425 3.223 -1.731 3.519 c -2.056 3.844 -2.219 4.284 -2.219 4.858 c -2.219 6.072 -1.32 6.923 0.152 6.923 c 1.09 6.923 1.768 6.694 2.352 6.13 c 1.51 5.298 l 1.08 5.709 0.563 5.766 0.114 5.766 c -0.593 5.766 -0.938 5.374 -0.938 4.906 c -0.938 4.733 -0.88 4.552 -0.737 4.418 c -0.603 4.293 -0.383 4.189 -0.106 4.15 c 0.697 4.036 l 1.319 3.95 1.711 3.777 1.998 3.51 c 2.361 3.165 2.524 2.668 2.524 2.065 c 2.524 0.746 1.424 0 0 0 c f Q q 1 0 0 1 477.736 544.352 cm 0.146 g /GS0 gs 0 0 m 0 0.43 l -0.335 0.095 -0.65 -0.048 -1.224 -0.048 c -1.789 -0.048 -2.2 0.095 -2.496 0.392 c -2.764 0.669 -2.907 1.07 -2.907 1.51 c -2.907 2.304 -2.362 2.954 -1.205 2.954 c -0.029 2.954 l -0.029 3.203 l -0.029 3.748 -0.297 3.987 -0.957 3.987 c -1.435 3.987 -1.655 3.873 -1.913 3.576 c -2.706 4.35 l -2.218 4.886 -1.741 5.039 -0.909 5.039 c 0.487 5.039 1.214 4.446 1.214 3.28 c 1.214 0 l 0 0 l h -0.029 2.103 m -1.014 2.103 l -1.463 2.103 -1.712 1.893 -1.712 1.539 c -1.712 1.195 -1.482 0.966 -0.995 0.966 c -0.65 0.966 -0.43 0.994 -0.211 1.205 c -0.077 1.329 -0.029 1.53 -0.029 1.836 c -0.029 2.103 l f Q q 1 0 0 1 481.543 548.244 cm 0.146 g /GS0 gs 0 0 m 0 -3.892 l -1.243 -3.892 l -1.243 0 l -1.759 0 l -1.759 0.946 l -1.243 0.946 l -1.243 1.567 l -1.243 2.275 -0.803 2.992 0.21 2.992 c 0.918 2.992 l 0.918 1.941 l 0.431 1.941 l 0.134 1.941 0 1.778 0 1.491 c 0 0.946 l 0.918 0.946 l 0.918 0 l 0 0 l f Q q 1 0 0 1 485.816 544.352 cm 0.146 g /GS0 gs 0 0 m 0 0.43 l -0.334 0.095 -0.65 -0.048 -1.224 -0.048 c -1.788 -0.048 -2.199 0.095 -2.495 0.392 c -2.763 0.669 -2.907 1.07 -2.907 1.51 c -2.907 2.304 -2.362 2.954 -1.205 2.954 c -0.028 2.954 l -0.028 3.203 l -0.028 3.748 -0.297 3.987 -0.956 3.987 c -1.434 3.987 -1.654 3.873 -1.912 3.576 c -2.706 4.35 l -2.218 4.886 -1.74 5.039 -0.908 5.039 c 0.488 5.039 1.215 4.446 1.215 3.28 c 1.215 0 l 0 0 l h -0.028 2.103 m -1.014 2.103 l -1.463 2.103 -1.712 1.893 -1.712 1.539 c -1.712 1.195 -1.482 0.966 -0.994 0.966 c -0.65 0.966 -0.43 0.994 -0.21 1.205 c -0.076 1.329 -0.028 1.53 -0.028 1.836 c -0.028 2.103 l f Q q 1 0 0 1 490.792 547.976 cm 0.146 g /GS0 gs 0 0 m -0.191 0.191 -0.354 0.296 -0.659 0.296 c -1.042 0.296 -1.463 0.009 -1.463 -0.622 c -1.463 -3.624 l -2.706 -3.624 l -2.706 1.358 l -1.492 1.358 l -1.492 0.879 l -1.253 1.166 -0.774 1.415 -0.239 1.415 c 0.249 1.415 0.593 1.291 0.937 0.946 c 0 0 l f Q q 1 0 0 1 0 -0 cm 0.146 g /GS0 gs 492.295 544.352 1.243 4.982 re f Q q 1 0 0 1 493.401 550.261 cm 0.146 g /GS0 gs 0 0 m -0.277 -0.277 -0.726 -0.276 -1.003 0 c -1.279 0.277 -1.279 0.726 -1.003 1.003 c -0.726 1.28 -0.277 1.28 0 1.003 c 0.277 0.726 0.277 0.277 0 0 c f Q q 1 0 0 1 495.425 550.261 cm 0.146 g /GS0 gs 0 0 m -0.276 -0.277 -0.725 -0.276 -1.002 0 c -1.279 0.277 -1.279 0.726 -1.002 1.003 c -0.725 1.28 -0.276 1.28 0 1.003 c 0.277 0.726 0.277 0.277 0 0 c f Q q 1 0 0 1 495.848 551.979 cm 0.146 g /GS0 gs 0 0 m 0.819 -0.82 1.216 -1.216 v 0.819 -1.614 0 -2.432 y 0.629 -3.061 l 2.474 -1.216 l 0.629 0.629 l 0 0 l f Q q 1 0 0 1 494.256 545.106 cm 0.146 g /GS0 gs 0 0 m 0.205 0 0.367 -0.166 0.367 -0.374 c 0.367 -0.585 0.204 -0.749 -0.002 -0.749 c -0.207 -0.749 -0.372 -0.584 -0.372 -0.373 c -0.372 -0.165 -0.206 0.001 -0.001 0 c 0 0 l h -0.001 -0.058 m -0.165 -0.058 -0.3 -0.199 -0.3 -0.373 c -0.3 -0.551 -0.166 -0.69 0 -0.691 c 0.166 -0.693 0.299 -0.552 0.299 -0.376 c 0.299 -0.199 0.167 -0.058 0 -0.058 c -0.001 -0.058 l h -0.072 -0.591 m -0.138 -0.591 l -0.138 -0.174 l -0.02 -0.164 l 0.11 -0.196 l 0.148 -0.282 l 0.067 -0.384 l 0.067 -0.387 l 0.136 -0.488 l 0.163 -0.591 l 0.093 -0.591 l 0.064 -0.485 l -0.025 -0.412 l -0.071 -0.412 l -0.072 -0.591 l h -0.071 -0.36 m -0.023 -0.36 l 0.078 -0.289 l -0.023 -0.216 l -0.071 -0.219 l -0.071 -0.36 l f Q q 1 0 0 1 0 -0 cm 0.146 g /GS0 gs 462.126 544.105 0.228 7.511 re f Q q 1 0 0 1 0 -0 cm 0.146 g /GS0 gs 115.251 608.616 59.09 22.157 re f Q q 1 0 0 1 165.584 618.082 cm 1 g 0 0 m -0.793 1.145 -2.378 3.347 -3.479 4.712 c -3.523 1.145 -3.435 0 v -3.743 0 -4.051 0.044 -4.404 0 c -4.227 0.617 -4.183 5.812 -4.36 6.472 c -4.096 6.472 -3.699 6.429 -3.435 6.472 c -2.598 5.328 -0.881 3.038 0 1.85 c 0 2.73 0.043 5.505 -0.045 6.472 c 0.307 6.429 0.572 6.384 0.924 6.472 c 0.792 5.68 0.704 0.793 0.924 0 c 0.66 0.044 0.264 0.044 0 0 c f Q q 1 0 0 1 151.67 619.888 cm 1 g 0 0 m 0 -1.497 -1.234 -1.894 -2.026 -1.894 c -2.598 -1.894 -3.347 -1.63 -3.831 -1.365 c -3.831 -0.881 -3.787 -0.705 -3.831 -0.22 c -3.567 -0.573 -2.687 -1.101 -2.07 -1.101 c -1.454 -1.101 -1.102 -0.749 -1.057 -0.176 c -1.012 0.616 -2.29 1.232 -2.862 1.628 c -3.347 2.026 -3.699 2.421 -3.699 3.082 c -3.699 3.963 -2.907 4.666 -1.805 4.666 c -1.102 4.666 -0.749 4.447 -0.133 4.139 c -0.353 3.831 -0.485 3.566 -0.617 3.258 c -0.837 3.566 -1.234 3.963 -1.805 3.963 c -2.378 3.963 -2.687 3.566 -2.687 3.126 c -2.687 2.73 -2.158 2.377 -1.278 1.805 c -0.529 1.32 0 0.924 0 0 c f Q q 1 0 0 1 146.561 618.082 cm 1 g 0 0 m -0.439 0.044 -0.924 0.044 -1.364 0 c -1.585 0.396 -3.081 2.554 -3.301 2.73 c -3.389 3.347 l -2.509 3.303 -1.892 3.699 -1.892 4.624 c -1.892 5.372 -2.553 5.769 -3.257 5.769 c -3.478 5.769 -3.654 5.769 -3.83 5.769 c -3.873 4.359 -3.83 1.277 -3.742 0 c -4.138 0 -4.535 0.044 -4.93 0 c -4.798 1.057 -4.798 5.372 -4.93 6.472 c -3.83 6.384 -4.094 6.472 -3.125 6.472 c -2.201 6.472 -0.879 6.165 -0.879 4.756 c -0.879 3.611 -1.848 2.95 -2.333 2.95 c -2.245 2.907 -0.351 0.353 0 0 c f Q q 1 0 0 1 132.78 618.875 cm 1 g 0 0 m -0.044 -0.265 -0.044 -0.572 -0.044 -0.837 c -0.836 -0.749 -2.686 -0.749 -3.434 -0.837 c -3.346 0 -3.346 4.799 -3.434 5.679 c -2.906 5.591 -0.66 5.591 -0.088 5.679 c -0.088 5.372 -0.088 5.107 -0.088 4.844 c -0.66 4.887 -1.717 4.976 -2.334 4.931 c -2.334 4.49 -2.378 3.698 -2.334 2.951 c -1.717 2.906 -0.836 2.906 -0.22 3.039 c -0.22 2.73 -0.22 2.465 -0.176 2.201 c -0.924 2.289 -1.629 2.289 -2.334 2.245 c -2.378 1.761 -2.378 0.352 -2.378 -0.088 c -1.761 -0.088 -0.66 -0.044 0 0 c f Q q 1 0 0 1 159.551 621.385 cm 1 g 0 0 m 0 -1.85 -1.365 -3.435 -3.17 -3.435 c -5.108 -3.435 -6.384 -1.893 -6.384 0 c -6.384 1.629 -5.019 3.169 -3.214 3.169 c -1.365 3.169 0 1.629 0 0 c h -1.1 -0.045 m -1.1 1.012 -1.761 2.466 -3.214 2.466 c -4.668 2.466 -5.284 1.012 -5.284 -0.045 c -5.284 -1.277 -4.623 -2.73 -3.17 -2.73 c -1.806 -2.73 -1.1 -1.277 -1.1 -0.045 c f Q q 1 0 0 1 139.957 618.082 cm 1 g 0 0 m -0.308 0.044 -0.88 0 -1.232 0 c -1.321 0.396 -1.629 1.321 -1.805 1.85 c -2.641 1.893 -3.479 1.893 -4.227 1.85 c -4.359 1.365 -4.667 0.309 -4.756 0 c -4.975 0 -5.504 0 -5.767 0 c -5.415 0.661 -3.611 5.637 -3.435 6.429 c -3.038 6.384 -2.73 6.384 -2.377 6.429 c -2.157 5.548 -0.308 0.617 0 0 c h -2.07 2.642 m -2.333 3.434 -2.817 4.756 -3.038 5.372 c -3.258 4.756 -3.654 3.479 -3.963 2.642 c -3.479 2.554 -2.509 2.598 -2.07 2.642 c f Q q 1 0 0 1 127.452 622.794 cm 1 g 0 0 m 0 -1.497 -1.453 -2.246 -2.73 -2.202 c -2.773 -1.982 -2.773 -1.762 -2.818 -1.586 c -1.717 -1.541 -1.012 -1.057 -1.012 -0.088 c -1.012 0.66 -1.672 1.233 -2.509 1.233 c -2.554 1.233 -2.862 1.233 -3.258 1.233 c -3.258 -0.044 -3.258 -3.479 -3.17 -4.756 c -3.567 -4.668 -3.919 -4.668 -4.315 -4.756 c -4.359 -4.756 l -4.27 -4.095 -4.183 1.144 -4.359 1.893 c -3.214 1.805 -3.39 1.893 -2.421 1.893 c -1.408 1.893 0 1.497 0 0 c f Q q 1 0 0 1 144.63 614.787 cm 1 g 0 0 m -9.104 0 -16.744 -1.396 -22.855 -2.803 c -22.855 -2.691 l -22.093 -2.376 -12.914 1.044 -0.001 1.048 c 12.911 1.044 22.09 -2.376 22.851 -2.691 c 22.851 -2.803 l 16.742 -1.396 9.101 0 -0.002 0 c 0 0 l f Q q 1 0 0 1 55.08 74.52 cm /GS2 gs /Fm1 Do Q endstream endobj 47792 0 obj <> endobj 47793 0 obj <>stream q /Fm0 Do Q 0.879 g /GS0 gs q 1 0 0 1 138.56 273.946 cm 0 0 m -12 0 -12 -12 v -12 -101.75 l -12 -113.75 0 -113.75 v 335 -113.75 l 347 -113.75 347 -101.75 v 347 -12 l 347 0 335 0 v 0 0 l f Q 0.421 G 0.25 w 4 M /GS1 gs q 1 0 0 1 138.56 273.946 cm 0 0 m -12 0 -12 -12 v -12 -101.75 l -12 -113.75 0 -113.75 v 335 -113.75 l 347 -113.75 347 -101.75 v 347 -12 l 347 0 335 0 v 0 0 l h S Q BT 0 g /GS2 gs /T1_0 1 Tf 0.0101 Tc -0.0001 Tw 9.5 0 0 9.5 138.06 430.861 Tm [(Reg)7(i)6(s)6(t)17(er the A)8(d)6(d)7(i)6(so)-6(n)-18(-)-4(W)18(e)-1(sle)14(y)65(, E)-26(x)8(a)-5(m)10( )]TJ 0.0093 Tc 0.0007 Tw 0 -1.474 TD [(Cr)15(a)-6(m)2(, Pr)21(en)9(tice H)-9(a)2(l)9(l)12(, Q)-10(u)-3(e)13(,)-1( and)9( )]TJ T* [(S)-11(a)-6(ms pr)15(oduc)8(ts y)11(o)-5(u ow)-6(n t)12(o)-1( unlo)-6(ck)9( )]TJ 0.0091 Tc 0.0009 Tw T* [(gr)21(ea)8(t be)-3(ne)-5(\336)248( )27(ts.)9( )]TJ 0.0093 Tc 0.0007 Tw 0 -2.421 TD [(T)68(o)-1( beg)6(i)4(n the r)21(e)1(g)6(i)5(s)5(t)1(r)15(a)8(tio)-7(n)-1( pr)15(o)-7(c)-1(ess,)9( )]TJ 0.0074 Tc 0.0026 Tw 0 -1.474 TD [(sim)-4(p)3(ly)-3( g)-6(o)-3( t)10(o)-3( )]TJ /T1_1 1 Tf 0.0286 Tc 0 Tw 5.83 0 Td [(info)-3(rmit)-23(.c)-4(o)-3(m)-66(/)-35(r)-10(e)-7(g)-2(is)-4(te)-8(r)]TJ /T1_0 1 Tf 0 Tc 10.74 0 Td ( )Tj 0.0097 Tc 0.0003 Tw -16.57 -1.474 Td [(t)13(o s)5(i)9(gn in or cr)21(ea)9(t)16(e an a)6(c)1(coun)9(t.)10( )]TJ 0.0102 Tc -0.0002 Tw T* [(Y)72(o)-5(u wi)9(l)10(l then be pr)16(o)-10(m)-1(p)13(t)17(ed t)13(o en)10(t)17(er)10( )]TJ 0.01 Tc 0 Tw T* [(the 1)26(0)-47(- or 1)37(3)-36(-)-23(d)7(i)9(g)7(it IS)-17(B)-13(N tha)9(t appears)10( )]TJ 0.0001 Tw T* [(o)-6(n the b)6(a)6(ck co)10(v)16(e)-1(r o)7(f y)11(o)-5(ur pr)16(oduc)8(t.)]TJ /TT0 1 Tf 0.014 Tc 0 Tw 24.5 0 0 24.5 169.56 118.203 Tm [(in)-9(f)-7(o)1(r)-5(m)]TJ 0.501 g /GS1 gs 0.0236 Tc 2.856 0 Td (IT)Tj 0 g /GS2 gs 0.0166 Tc 0.753 0 Td [(.co)4(m)17( )]TJ /T1_0 1 Tf 0.01 Tc 5.75 0 0 5.75 169.56 105.9909 Tm [(T)-32(H)-34(E T)-32(R)-26(U)-28(S)-23(T)-32(E)-21(D T)-32(E)-13(C)-25(H)-35(N)-30(O)-31(L)5(O)-30(G)13(Y L)-29(E)-50(A)-32(R)-34(N)-23(I)-22(N)-33(G S)-25(O)-27(U)-32(R)-29(C)-24(E)]TJ ET 0.501 G 1 w /GS1 gs q 1 0 0 1 315.893 132.904 cm 0 0 m 0 -27 l S Q BT /GS2 gs /T1_0 1 Tf 0.0163 Tc 5.75 0 0 5.75 323.16 128.3239 Tm [(Addis)-7(o)-11(n)-22(-)-11(W)11(e)-6(sle)9(y)]TJ /T1_2 1 Tf 0.005 Tc 5.5 0 0 5.5 366.471 128.3239 Tm ( )Tj 0.383 g /GS1 gs /T1_3 1 Tf 0 Tc 5 0 0 5 368.968 128.574 Tm (|)Tj 0 g /GS2 gs /T1_2 1 Tf 0.005 Tc 5.5 0 0 5.5 370.243 128.3239 Tm ( )Tj /T1_0 1 Tf 0.0176 Tc -0.0126 Tw 5.75 0 0 5.75 372.74 128.3239 Tm [(Cisc)-7(o)13( P)-6(r)17(e)-5(s)-6(s)]TJ /T1_2 1 Tf 0.005 Tc 0 Tw 5.5 0 0 5.5 404.335 128.3239 Tm ( )Tj 0.383 g /GS1 gs /T1_3 1 Tf 0 Tc 5 0 0 5 406.832 128.574 Tm (|)Tj 0 g /GS2 gs /T1_2 1 Tf 0.005 Tc 5.5 0 0 5.5 408.107 128.3239 Tm ( )Tj /T1_0 1 Tf 0.0262 Tc -0.0212 Tw 5.75 0 0 5.75 410.604 128.3239 Tm [(E)-20(x)12(am)21( C)8(r)20(am)]TJ /T1_2 1 Tf -0.1689 Tc 0 Tw 5.5 0 0 5.5 441.478 128.3239 Tm [( )5( )]TJ /T1_0 1 Tf 0.0381 Tc -0.0191 Tw 5.75 0 0 5.75 323.16 119.8239 Tm [(IB)-12(M)19( Pr)23(ess)]TJ /T1_2 1 Tf 0.019 Tc 0 Tw 5.5 0 0 5.5 350.927 119.8239 Tm ( )Tj 0.383 g /GS1 gs /T1_3 1 Tf 0 Tc 5 0 0 5 354.903 120.0739 Tm (|)Tj 0 g /GS2 gs /T1_2 1 Tf 0.019 Tc 5.5 0 0 5.5 356.248 119.8239 Tm ( )Tj /T1_0 1 Tf 0.0445 Tc 5.75 0 0 5.75 360.224 119.8239 Tm [(Qu)7(e)26( )]TJ /T1_2 1 Tf 0.019 Tc 5.5 0 0 5.5 373.38 119.8239 Tm ( )Tj 0.383 g /GS1 gs /T1_3 1 Tf 0 Tc 5 0 0 5 376.031 120.0739 Tm (|)Tj 0 g /GS2 gs /T1_2 1 Tf 0.019 Tc 5.5 0 0 5.5 377.376 119.8239 Tm ( )Tj /T1_0 1 Tf 0.0366 Tc -0.0176 Tw 5.75 0 0 5.75 381.352 119.8239 Tm [(Pr)22(en)11(t)6(i)6(ce)18( H)-7(a)4(l)10(l)]TJ /T1_2 1 Tf 0.019 Tc 0 Tw 5.5 0 0 5.5 416.076 119.8239 Tm ( )Tj 0.383 g /GS1 gs /T1_3 1 Tf 0 Tc 5 0 0 5 420.052 120.0739 Tm (|)Tj 0 g /GS2 gs /T1_2 1 Tf 0.019 Tc 5.5 0 0 5.5 421.397 119.8239 Tm ( )Tj /T1_0 1 Tf 0.0461 Tc 5.75 0 0 5.75 425.373 119.8239 Tm [(Sa)6(m)8(s)46( )]TJ 0.015 Tc -17.776 -2.406 Td [(S)-27(A)-35(F)14(A)-32(R)-22(I B)-22(O)-28(O)-29(K)-11(S O)-32(N)-34(L)-18(I)-22(N)-34(E)]TJ /T1_1 1 Tf 0.0239 Tc 0.0011 Tw 12 0 0 12 138.06 253.726 Tm [(About Inf)8(o)2(r)6(m)-5(IT )]TJ 0.0106 Tc -0.0007 Tw 9 0 0 9 231.561 253.726 Tm [(\227 T)-14(H)-14(E T)-11(R)-7(U)-12(S)-12(T)-11(E)-10(D T)-11(E)-1(C)-13(H)-17(N)-15(O)-11(LO)-12(G)28(Y)1( LE)-22(A)-8(R)-14(N)-21(I)-19(N)-15(G)1( S)-10(O)-10(U)-12(R)-6(C)-10(E)]TJ /T1_0 1 Tf 0.0154 Tc -0.0004 Tw -10.389 -2 Td [(I)-6(N)-22(F)-12(O)-17(R)-20(M)-9(IT I)-6(S H)-16(O)-18(M)-20(E T)18(O T)-17(H)-19(E L)-14(E)-37(A)-17(D)-6(I)-6(N)-18(G T)-17(E)3(C)-10(H)-20(N)-16(O)-16(L)22(O)-15(G)30(Y P)-8(U)-16(B)-14(L)-3(I)-6(S)-19(H)-7(I)-6(N)-18(G I)-7(M)-22(P)-9(R)-7(I)-6(N)-18(T)-12(S)15( )]TJ 0.0113 Tc -0.0013 Tw 8 0 0 8 138.06 223.726 Tm [(Addis)-7(o)-12(n)-23(-)-11(W)12(e)-7(sle)8(y)1( P)-7(r)10(of)13(e)-7(s)-8(si)-5(o)-12(nal)7(, Cisc)-9(o P)-7(r)15(e)-7(s)-8(s, E)-31(x)2(a)-11(m)1( Cr)10(a)-11(m)-3(, I)-10(B)-20(M P)-7(r)15(e)-7(s)-8(s, P)-7(r)15(e)-7(n)4(tic)-6(e)1( H)-14(a)-3(ll)11( )]TJ 0.0107 Tc -0.0007 Tw 0 -1.5 TD [(P)-8(r)9(of)13(e)-7(s)-8(si)-5(o)-12(nal)6(, Q)-15(u)-8(e)7(,)1( a)-8(n)-2(d S)-17(a)-11(m)-10(s)-3(. H)-18(e)-6(r)15(e)1( yo)-11(u w)-8(i)3(ll gain ac)-5(c)-6(e)-7(s)-8(s)1( t)7(o)1( qu)-5(alit)-29(y a)-8(n)-2(d tr)-5(u)-6(st)10(e)-5(d c)-9(o)-12(nt)10(e)-8(n)3(t a)-8(n)-2(d)11( )]TJ 0.0105 Tc -0.0005 Tw T* [(r)15(e)-7(s)-8(o)-11(u)-5(r)15(c)-6(e)-7(s f)-6(r)9(o)-16(m)1( t)-6(h)-7(e au)-8(t)-6(h)-10(o)-11(r)-3(s, cr)15(e)-7(a)3(t)7(o)-11(rs, in)-6(n)-10(o)4(v)9(a)3(t)7(o)-11(rs, a)-8(n)-2(d le)-7(ad)-6(e)-7(r)-3(s of t)10(e)-9(ch)-6(n)-10(o)-9(l)-8(o)-10(g)-6(y)49(. W)-20(h)-7(et)-6(h)-7(e)-7(r yo)-11(u\325)17(r)15(e)11( )]TJ 0.011 Tc -0.001 Tw T* [(l)-7(o)-16(o)-14(k)-7(ing f)7(o)-10(r a b)-9(o)-16(o)-14(k)1( o)-12(n)1( a n)-7(e)2(w t)10(e)-9(ch)-6(n)-10(o)-9(l)-7(o)-9(g)-6(y)57(, a h)-7(e)-4(lp)7(f)-7(u)-2(l a)-6(r)-29(ticle)8(,)1( ti)-5(m)-11(e)-4(ly n)-7(e)2(wslet)-28(t)10(e)-6(r)-2(s, o)-10(r)1( ac)-5(c)-6(e)-7(s)-8(s)1( t)7(o)11( )]TJ 0.0104 Tc -0.0004 Tw T* [(t)-6(h)-7(e S)-17(a)2(f)7(a)-6(ri B)-18(o)-16(o)-14(k)4(s O)-18(n)-2(lin)-7(e digit)-9(a)-4(l libr)9(a)-6(r)-30(y)57(, Inf)7(o)-11(r)-9(m)-7(I)-9(T has a s)-8(o)-9(lu)-8(ti)-6(o)-12(n f)7(o)-11(r yo)-11(u.)]TJ 0.0076 Tc 0.0016 Tw 9.5 0 0 9.5 314.06 430.861 Tm [(R)-7(e)-1(gist)14(e)-3(r)3(ing y)9(o)-7(ur pr)13(o)-6(d)1(u)-4(c)6(ts c)-3(a)-4(n u)-3(n)2(l)-4(o)-8(ck)8( )]TJ 0.0071 Tc 0.0029 Tw 0 -1.474 TD [(th)-4(e f)10(o)-6(ll)-4(ow)-4(ing be)-5(n)-4(e)-7(\336)246( )27(ts)-24(:)]TJ 0.01 Tc 0.4652 Tw 0.632 -1.474 Td (\245 )Tj 0.0004 Tc 0.0096 Tw 1.263 0 Td [(Ac)-9(c)-10(e)-11(s)-12(s)-10( to)-10( s)-7(u)-7(p)-5(p)-4(l)-8(e)-15(m)-15(e)-12(nt)-12(a)-7(l)-10( c)-13(o)-16(nt)7(e)-12(nt)-6(, )]TJ 0.0072 Tc 0.0028 Tw T* [(including b)-6(o)-9(nu)-3(s chap)10(t)14(e)-3(rs,)7( )]TJ 0.0104 Tc -0.0004 Tw T* [(sour)22(ce code)14(, or pr)16(o)7(j)1(ec)9(t \336)253( )30(les.)10( )]TJ 0.01 Tc 0.4652 Tw -1.263 -1.474 Td (\245 )Tj 0.0103 Tc -0.0003 Tw 1.263 0 Td [(A coupo)-6(n t)13(o be used o)-6(n y)12(o)-4(ur)10( )]TJ 0.0088 Tc 0.0012 Tw T* [(ne)21(x)-26(t)-1( pur)21(c)2(hase)13(.)]TJ -0.0002 Tc 0.0002 Tw -1.895 -2.421 Td [(Reg)6(i)6(s)6(t)2(r)15(a)9(tio)-6(n bene\336)244( )22(ts v)16(ar)-25(y b)19(y pr)16(oduc)8(t. )110( )]TJ 0.0004 Tc -0.0004 Tw T* [(B)-7(e)-2(ne\336)245( )22(ts wi)9(l)10(l be l)10(i)6(s)7(t)17(ed o)-6(n y)12(o)-4(ur A)6(c)1(coun)10(t )]TJ -0.0001 Tc 0.0001 Tw T* [(p)6(a)11(ge under Reg)7(i)6(s)6(t)16(er)21(ed Pr)16(oduc)8(ts.)]TJ ET q 126.06 484.74 360 -28.64 re W n q /GS1 gs 362.496 0 0 28.686 124.167 456.072 cm /Im0 Do Q Q BT 1 g /GS1 gs /T1_0 1 Tf 0.0075 Tc 0 Tw 14 0 0 14 138.06 463.535 Tm [(inf)8(o)-11(r)-9(m)-6(it.)15(c)-10(o)-17(m)-62(/)-38(r)16(e)-5(g)1(ist)11(e)-7(r)]TJ ET q 126.06 687.24 360 -204 re W n q 361.836 0 0 205.776 125.037 482.592 cm /Im1 Do Q Q BT /T1_0 1 Tf 0.0091 Tc 0.0009 Tw 24 0 0 24 138.06 500.122 Tm [(TH)10(I)11(S)-1( P)8(R)7(ODUC)18(T)]TJ ET q 1 0 0 1 159.249 669.953 cm 0 0 m -7.899 0 l -3.986 6.868 l 0 0 l f Q q 1 0 0 1 154.318 668.527 cm 0 0 m -3.947 -6.842 l -7.941 -0.021 l 0 0 l f Q q 1 0 0 1 163.828 668.527 cm 0 0 m -3.946 -6.842 l -7.941 -0.021 l 0 0 l f Q q 1 0 0 1 142.411 652.637 cm 0 0 m -2.276 0 l -1.128 2.664 l 0 0 l h 0.129 -0.359 m 0.488 -1.188 l 0.568 -1.387 0.728 -1.726 0.728 -1.946 c 0.728 -2.295 0.478 -2.375 0.049 -2.395 c 0.049 -2.574 l 2.654 -2.574 l 2.654 -2.395 l 1.915 -2.365 1.726 -1.806 1.476 -1.208 c -0.769 4.181 l -0.949 4.181 l -3.323 -1.387 l -3.623 -2.085 -3.832 -2.345 -4.351 -2.395 c -4.351 -2.574 l -2.276 -2.574 l -2.276 -2.395 l -2.645 -2.365 -3.044 -2.325 -3.044 -1.956 c -3.044 -1.766 -2.904 -1.457 -2.824 -1.287 c -2.425 -0.359 l 0.129 -0.359 l f Q q 1 0 0 1 148.636 650.911 cm 0 0 m -0.229 -0.25 -0.508 -0.449 -0.858 -0.449 c -1.616 -0.449 -2.225 0.349 -2.225 1.566 c -2.225 3.123 -1.396 3.452 -1.037 3.452 c -0.359 3.452 0 2.773 0 2.175 c 0 0 l h 0 3.372 m -0.259 3.642 -0.628 3.751 -0.987 3.751 c -2.284 3.751 -3.133 2.404 -3.133 1.217 c -3.133 0.169 -2.494 -0.988 -1.327 -0.988 c -0.768 -0.988 -0.379 -0.739 0 -0.349 c 0 -0.988 l 0.22 -0.988 l 1.567 -0.439 l 1.497 -0.27 l 1.398 -0.31 1.268 -0.349 1.158 -0.349 c 1.018 -0.349 0.809 -0.349 0.809 0.329 c 0.809 6.076 l 0.589 6.076 l -0.758 5.527 l -0.688 5.358 l -0.588 5.398 -0.458 5.438 -0.349 5.438 c -0.209 5.438 0 5.438 0 4.759 c 0 3.372 l f Q q 1 0 0 1 153.625 650.911 cm 0 0 m -0.229 -0.25 -0.508 -0.449 -0.858 -0.449 c -1.616 -0.449 -2.225 0.349 -2.225 1.566 c -2.225 3.123 -1.397 3.452 -1.037 3.452 c -0.359 3.452 0 2.773 0 2.175 c 0 0 l h 0 3.372 m -0.259 3.642 -0.628 3.751 -0.987 3.751 c -2.284 3.751 -3.133 2.404 -3.133 1.217 c -3.133 0.169 -2.494 -0.988 -1.327 -0.988 c -0.768 -0.988 -0.379 -0.739 0 -0.349 c 0 -0.988 l 0.22 -0.988 l 1.567 -0.439 l 1.497 -0.27 l 1.397 -0.31 1.268 -0.349 1.158 -0.349 c 1.018 -0.349 0.809 -0.349 0.809 0.329 c 0.809 6.076 l 0.589 6.076 l -0.758 5.527 l -0.688 5.358 l -0.588 5.398 -0.458 5.438 -0.349 5.438 c -0.209 5.438 0 5.438 0 4.759 c 0 3.372 l f Q q 1 0 0 1 156.978 650.911 cm 0 0 m 0 -0.589 0.23 -0.659 0.688 -0.669 c 0.688 -0.848 l -1.497 -0.848 l -1.497 -0.669 l -1.038 -0.659 -0.808 -0.589 -0.808 0 c -0.808 2.434 l -0.808 3.113 -1.018 3.113 -1.157 3.113 c -1.267 3.113 -1.397 3.073 -1.497 3.033 c -1.567 3.202 l -0.22 3.751 l 0 3.751 l 0 0 l h -0.409 6.076 m -0.14 6.076 0.08 5.857 0.08 5.587 c 0.08 5.318 -0.14 5.098 -0.409 5.098 c -0.678 5.098 -0.898 5.318 -0.898 5.587 c -0.898 5.857 -0.678 6.076 -0.409 6.076 c f Q q 1 0 0 1 161.139 653.136 cm 0 0 m -0.18 0 l -0.33 0.668 -0.599 1.227 -1.377 1.227 c -1.736 1.227 -2.135 1.027 -2.135 0.619 c -2.135 -0.469 0.329 -0.33 0.329 -1.876 c 0.329 -2.694 -0.439 -3.213 -1.198 -3.213 c -1.487 -3.213 -1.806 -3.143 -2.095 -3.064 c -2.155 -3.044 -2.275 -3.014 -2.345 -3.014 c -2.435 -3.014 -2.505 -3.064 -2.525 -3.143 c -2.704 -3.143 l -2.704 -1.547 l -2.525 -1.547 l -2.435 -2.245 -1.906 -2.914 -1.158 -2.914 c -0.748 -2.914 -0.389 -2.674 -0.389 -2.235 c -0.389 -1.068 -2.714 -1.227 -2.714 0.189 c -2.714 1.007 -2.125 1.526 -1.327 1.526 c -1.118 1.526 -0.958 1.477 -0.758 1.417 c -0.639 1.387 -0.509 1.337 -0.389 1.337 c -0.259 1.337 -0.22 1.417 -0.18 1.526 c 0 1.526 l 0 0 l f Q q 1 0 0 1 164.132 654.323 cm 0 0 m 1.108 0 1.407 -1.477 1.407 -2.345 c 1.407 -3.043 1.237 -4.061 0.329 -4.061 c -0.778 -4.061 -1.087 -2.504 -1.087 -1.646 c -1.087 -0.369 -0.489 0 0 0 c h 0.17 0.339 m -1.137 0.339 -1.996 -0.848 -1.996 -2.075 c -1.996 -3.273 -1.167 -4.4 0.1 -4.4 c 1.676 -4.4 2.315 -2.953 2.315 -1.926 c 2.315 -0.708 1.417 0.339 0.17 0.339 c f Q q 1 0 0 1 168.403 653.725 cm 0 0 m 0.558 0.618 0.948 0.937 1.516 0.937 c 2.325 0.937 2.644 0.179 2.644 -0.569 c 2.644 -2.814 l 2.644 -3.403 2.873 -3.473 3.332 -3.483 c 3.332 -3.662 l 1.147 -3.662 l 1.147 -3.483 l 1.606 -3.473 1.836 -3.403 1.836 -2.814 c 1.836 -0.749 l 1.836 0.239 1.427 0.339 1.127 0.339 c 0.668 0.339 0.329 0.039 0 -0.3 c 0 -2.814 l 0 -3.403 0.229 -3.473 0.688 -3.483 c 0.688 -3.662 l -1.497 -3.662 l -1.497 -3.483 l -1.038 -3.473 -0.808 -3.403 -0.808 -2.814 c -0.808 -0.38 l -0.808 0.299 -1.018 0.299 -1.158 0.299 c -1.268 0.299 -1.397 0.259 -1.497 0.219 c -1.567 0.388 l -0.22 0.937 l 0 0.937 l 0 0 l f Q q 1 0 0 1 148.211 644.404 cm 0 0 m 0.08 0.23 0.24 0.669 0.24 0.898 c 0.24 1.277 -0.04 1.367 -0.488 1.367 c -0.488 1.547 l 1.487 1.547 l 1.487 1.367 l 0.829 1.367 0.689 0.818 0.509 0.29 c -1.387 -5.208 l -1.576 -5.208 l -3.073 -1.017 l -3.093 -1.017 l -4.56 -5.208 l -4.759 -5.208 l -6.794 0.489 l -7.014 1.118 -7.114 1.367 -7.712 1.367 c -7.712 1.547 l -5.268 1.547 l -5.268 1.367 l -5.627 1.367 -5.916 1.287 -5.916 0.948 c -5.916 0.789 -5.817 0.529 -5.767 0.379 c -4.42 -3.462 l -4.4 -3.462 l -3.302 -0.379 l -3.572 0.359 l -3.781 0.918 -3.931 1.367 -4.59 1.367 c -4.59 1.547 l -2.005 1.547 l -2.005 1.367 l -2.424 1.367 -2.714 1.337 -2.714 0.918 c -2.714 0.629 -2.554 0.22 -2.454 -0.05 c -1.237 -3.462 l -1.217 -3.462 l 0 0 l f Q q 1 0 0 1 150.029 642.419 cm 0 0 m 0.04 0.578 0.459 1.167 1.048 1.167 c 1.756 1.167 2.065 0.618 2.065 0 c 0 0 l h 3.083 -0.3 m 3.083 0.778 2.405 1.526 1.377 1.526 c -0.04 1.526 -0.689 0.369 -0.689 -0.918 c -0.689 -2.285 0.17 -3.213 1.257 -3.213 c 2.265 -3.213 2.913 -2.365 3.083 -1.447 c 2.933 -1.347 l 2.704 -1.996 2.315 -2.415 1.596 -2.415 c 0.509 -2.415 -0.01 -1.297 -0.01 -0.3 c 3.083 -0.3 l f Q q 1 0 0 1 156.654 642.419 cm 0 0 m -0.18 0 l -0.329 0.668 -0.598 1.227 -1.377 1.227 c -1.736 1.227 -2.135 1.027 -2.135 0.618 c -2.135 -0.469 0.329 -0.33 0.329 -1.876 c 0.329 -2.694 -0.439 -3.213 -1.197 -3.213 c -1.487 -3.213 -1.806 -3.143 -2.095 -3.064 c -2.155 -3.044 -2.275 -3.014 -2.345 -3.014 c -2.434 -3.014 -2.504 -3.064 -2.524 -3.143 c -2.704 -3.143 l -2.704 -1.547 l -2.524 -1.547 l -2.434 -2.245 -1.906 -2.914 -1.157 -2.914 c -0.748 -2.914 -0.389 -2.674 -0.389 -2.235 c -0.389 -1.068 -2.714 -1.228 -2.714 0.189 c -2.714 1.007 -2.125 1.526 -1.327 1.526 c -1.117 1.526 -0.958 1.476 -0.758 1.417 c -0.639 1.387 -0.509 1.337 -0.389 1.337 c -0.259 1.337 -0.219 1.417 -0.18 1.526 c 0 1.526 l 0 0 l f Q q 1 0 0 1 159.149 640.194 cm 0 0 m 0 -0.589 0.229 -0.659 0.688 -0.669 c 0.688 -0.848 l -1.497 -0.848 l -1.497 -0.669 l -1.038 -0.659 -0.809 -0.589 -0.809 0 c -0.809 4.759 l -0.809 5.437 -1.018 5.437 -1.158 5.437 c -1.268 5.437 -1.397 5.398 -1.497 5.358 c -1.567 5.527 l -0.22 6.076 l 0 6.076 l 0 0 l f Q q 1 0 0 1 161.114 642.419 cm 0 0 m 0.04 0.578 0.459 1.167 1.048 1.167 c 1.756 1.167 2.066 0.618 2.066 0 c 0 0 l h 3.083 -0.3 m 3.083 0.778 2.405 1.526 1.377 1.526 c -0.04 1.526 -0.688 0.369 -0.688 -0.918 c -0.688 -2.285 0.17 -3.213 1.257 -3.213 c 2.265 -3.213 2.914 -2.365 3.083 -1.447 c 2.934 -1.347 l 2.704 -1.996 2.315 -2.415 1.597 -2.415 c 0.509 -2.415 -0.01 -1.297 -0.01 -0.3 c 3.083 -0.3 l f Q q 1 0 0 1 165.266 642.778 cm 0 0 m -0.17 0.369 -0.399 0.798 -0.838 0.848 c -0.838 1.028 l 1.237 1.028 l 1.237 0.848 l 0.928 0.848 0.698 0.808 0.698 0.489 c 0.698 0.319 0.838 0.04 0.908 -0.12 c 1.946 -2.255 l 2.893 0.09 l 2.963 0.269 3.023 0.409 3.023 0.599 c 3.023 0.828 2.844 0.848 2.574 0.848 c 2.574 1.028 l 4.031 1.028 l 4.031 0.848 l 3.712 0.848 3.542 0.599 3.432 0.329 c 1.526 -4.34 l 1.137 -5.298 0.409 -5.588 0.06 -5.588 c -0.269 -5.588 -0.609 -5.388 -0.609 -5.029 c -0.609 -4.73 -0.369 -4.59 -0.1 -4.59 c 0.229 -4.59 0.389 -4.77 0.559 -4.77 c 0.958 -4.77 1.167 -4.211 1.287 -3.921 c 1.556 -3.253 l 0 0 l f Q q 1 0 0 1 55.08 74.52 cm 0 g 0 G 10 M /GS3 gs 0 Tc 0 Tw /Fm1 Do Q endstream endobj 47794 0 obj <> endobj 47795 0 obj <>stream q /Fm0 Do Q BT /CS0 cs 0 0 0 scn /GS0 gs /TT0 1 Tf 0.0002 Tc -0.0002 Tw 12 0 0 12 218.4731 545.9739 Tm (This page intentionally left blank )Tj ET q 1 0 0 1 47.58 40.02 cm 0 g /GS1 gs 0 Tc 0 Tw /Fm1 Do Q endstream endobj 47796 0 obj <> endobj 47797 0 obj <>stream q /Fm0 Do Q BT /CS0 cs 0 0 0 scn /GS0 gs /TT0 1 Tf 0.0002 Tc -0.0002 Tw 12 0 0 12 218.4731 545.9739 Tm (This page intentionally left blank )Tj ET q 1 0 0 1 47.58 40.02 cm 0 g /GS1 gs 0 Tc 0 Tw /Fm1 Do Q endstream endobj 47798 0 obj <> endobj 47799 0 obj <>stream q /Fm0 Do Q BT /Span <>BDC 0 0 0 1 k /GS0 gs /T1_0 1 Tf 0.102 Tw 9 0 0 9 105 613.1051 Tm [(M)-4(a)-25(n)22(y o)8(f t)-25(h)1(e d)9(e)-13(s)2(i)8(g)-33(n)-14(a)19(t)-27(i)10(o)-3(n)-23(s u)-18(s)-13(e)-10(d b)11(y m)-13(a)-25(n)16(u)-21(fa)8(c)-14(t)-30(u)-22(r)-7(e)-3(r)-11(s a)-25(n)6(d s)-13(e)-3(l)-22(l)5(e)-3(r)-11(s t)1(o d)-17(i)-17(s)3(t)-27(i)-29(n)2(g)-28(u)-22(i)-17(s)-1(h t)-25(h)1(e)-3(i)-21(r p)10(r)-3(o)-10(d)21(u)4(c)-14(t)-16(s a)-18(r)-7(e )]TJ EMC /Span <>BDC 0.121 Tw 0 -1.111 TD [(c)-15(l)-8(a)-18(i)-24(m)2(e)-10(d a)-14(s t)-27(r)4(a)9(d)9(e)-6(m)-13(a)-18(r)18(k)-24(s)8(. W)-27(h)1(e)-3(r)-7(e t)-25(h)4(o)-13(s)-13(e d)9(e)-13(s)2(i)8(g)-33(n)-14(a)19(t)-27(i)10(o)-3(n)-23(s a)15(p)4(p)-7(e)-6(a)-18(r i)-29(n t)-25(h)-28(i)-17(s b)-5(o)-12(o)10(k)8(, a)-25(n)6(d t)-25(h)1(e p)7(u)-4(b)19(l)-22(i)-17(s)-1(h)1(e)-3(r w)11(a)-14(s )]TJ EMC /Span <>BDC -0.031 Tw T* [(a)21(w)11(a)-18(r)-7(e o)8(f a t)-27(r)4(a)9(d)9(e)-6(m)-13(a)-18(r)18(k c)-15(l)-8(a)-18(i)-24(m)6(, t)-25(h)1(e d)9(e)-13(s)2(i)8(g)-33(n)-14(a)19(t)-27(i)10(o)-3(n)-23(s h)-14(a)21(v)22(e b)-8(e)-14(e)-10(n p)10(r)-20(i)-29(n)14(t)-4(e)-10(d w)-20(i)18(t)-25(h i)-29(n)-28(i)18(t)-27(i)-8(a)-18(l c)-8(a)15(p)10(i)18(t)-16(a)-18(l l)4(e)-9(t)-26(t)-4(e)-3(r)-11(s o)4(r i)-29(n a)-18(l)-22(l )]TJ EMC /Span <>BDC 0 Tw 43 0 Td ( )Tj EMC /Span <>BDC -0.018 Tc 0.018 Tw -43 -1.111 Td [(c)-26(a)-3(p)-8(it)-34(a)-36(l)-35(s)-10(.)]TJ EMC /Span <>BDC 0 Tc -0.033 Tw 0 -1.667 TD [(T)-25(h)1(e a)20(u)16(t)-25(h)4(o)4(r)-11(s a)-25(n)6(d p)7(u)-4(b)19(l)-22(i)-17(s)-1(h)1(e)-3(r h)-14(a)21(v)22(e t)-16(a)-18(k)-4(e)-10(n c)-8(a)-18(r)-7(e i)-29(n t)-25(h)1(e p)10(r)-7(e)-9(p)8(a)-18(r)4(a)19(t)-27(i)10(o)-3(n o)8(f t)-25(h)-28(i)-17(s b)-5(o)-12(o)10(k)8(, b)3(u)16(t m)-13(a)-18(k)-4(e n)4(o e)-4(x)-19(p)10(r)-7(e)-13(s)-12(s)-13(e)-10(d )]TJ EMC ET /Span <>BDC BT /T1_0 1 Tf -0.047 Tw 9 0 0 9 105 558.1051 Tm [(o)4(r i)-24(m)6(p)20(l)-22(i)4(e)-10(d w)11(a)-18(r)-20(r)4(a)-25(n)14(t)-32(y o)8(f a)-25(n)22(y k)-29(i)-29(n)6(d a)-25(n)6(d a)-14(s)-12(su)-24(m)2(e n)4(o r)-7(e)-13(s)-4(p)-4(o)-3(n)-23(s)2(i)-4(b)5(i)-22(l)-22(i)18(t)-32(y f)3(o)4(r e)-3(r)-20(r)-3(o)4(r)-11(s o)4(r o)1(m)-27(i)-17(s)-12(s)2(i)10(o)-3(n)-23(s)8(. N)14(o )]TJ ET BT /Span <>BDC /T1_0 1 Tf 9 0 0 9 460.7254 558.1051 Tm ( )Tj EMC ET BT /T1_0 1 Tf 9 0 0 9 460.752 558.1051 Tm [(l)-22(i)]TJ 9 0 0 9 105 558.1051 Tm 40.14 0 Td [(a)-1(b)5(i)-21(l)-22(i)18(t)-32(y )]TJ ET EMC BT /Span <>BDC /T1_0 1 Tf -0.039 Tw 9 0 0 9 105 548.1051 Tm [(i)-17(s )1(a)-14(s)-12(su)-24(m)2(e)-10(d )1(f)3(o)4(r )1(i)-29(n)1(c)-16(i)12(d)9(e)-11(n)14(t)-16(a)-18(l )1(o)4(r )1(co)-3(n)-23(s)-13(e)-9(q)-3(u)4(e)-11(n)14(t)-27(i)-8(a)-18(l )1(d)-4(a)-21(m)-13(a)11(g)4(e)-13(s )1(i)-29(n )1(co)-3(n)-35(n)1(e)-14(c)-14(t)-27(i)10(o)-3(n )1(w)-20(i)18(t)-25(h )1(o)4(r )1(a)-18(r)-20(i)-17(s)2(i)-29(n)2(g )1(o)6(u)16(t )1(o)8(f )1(t)-25(h)1(e )1(u)-18(s)-13(e )1(o)8(f )]TJ EMC /Span <>BDC 0 Tw 43 0 Td ( )Tj EMC /Span <>BDC 0.025 Tw -43 -1.111 Td [(t)-25(h)1(e i)-29(n)-27(f)3(o)4(r)-23(m)-13(a)19(t)-27(i)10(o)-3(n o)4(r p)10(r)-3(o)-1(g)-25(r)4(a)-21(m)-22(s co)-3(n)14(t)-16(a)-18(i)-29(n)1(e)-10(d h)1(e)-3(r)-7(e)-3(i)-29(n)1(.)]TJ EMC ET /Span <>BDC BT /T1_0 1 Tf -0.057 Tw 9 0 0 9 105 523.1051 Tm [(T)-25(h)1(e p)7(u)-4(b)19(l)-22(i)-17(s)-1(h)1(e)-3(r o)8(f)-17(f)-2(e)-3(r)-11(s e)-4(x)12(c)-4(e)-3(l)-21(l)4(e)-11(n)14(t d)-17(i)-17(s)-13(co)6(u)-29(n)14(t)-16(s o)-3(n t)-25(h)-28(i)-17(s b)-5(o)-11(o)10(k w)11(h)1(e)-11(n o)4(rd)9(e)-3(r)-7(e)-10(d i)-29(n q)-3(u)-8(a)-25(n)14(t)-27(i)18(t)-32(y f)3(o)4(r b)3(u)-22(l)-22(k )]TJ ET BT /Span <>BDC /T1_0 1 Tf 9 0 0 9 451.0221 523.1051 Tm ( )Tj EMC ET BT /T1_0 1 Tf 9 0 0 9 451.095 523.1051 Tm [(p)7(u)]TJ 9 0 0 9 105 523.1051 Tm 39.674 0 Td [(r)-3(c)-22(h)-14(a)-14(s)-13(e)-13(s )]TJ ET EMC BT /Span <>BDC /T1_0 1 Tf 0.274 Tw 9 0 0 9 105 513.1051 Tm [(o)4(r )1(s)-4(p)-7(e)-14(c)-16(i)-8(a)-18(l s)-11(a)-18(l)5(e)-13(s)21(, )1(w)11(h)-28(i)7(c)-22(h )1(m)-13(a)24(y )1(i)-29(n)1(c)-15(l)17(u)8(d)9(e e)-3(l)4(e)-14(c)-14(t)-27(r)-3(o)-3(n)-28(i)7(c )1(v)22(e)-3(r)-11(s)2(i)10(o)-3(n)-23(s )1(a)-25(n)6(d)41(/)67(o)4(r )1(c)-18(u)-18(s)3(t)1(o)1(m )1(co)13(v)22(e)-3(r)-11(s a)-25(n)6(d co)-3(n)14(t)-4(e)-11(n)14(t )]TJ EMC ET /Span <>BDC BT /Span <>BDC /T1_0 1 Tf 0.113 Tw 9 0 0 9 105 503.1051 Tm ( )Tj EMC ET BT /T1_0 1 Tf 9 0 0 9 105 503.1051 Tm [(p)8(a)-18(r)-20(t)-27(i)7(c)-18(u)-22(l)-8(a)-18(r t)1(o y)19(o)7(u)-22(r b)3(u)-18(s)2(i)-29(n)1(e)-13(s)-12(s)21(, t)-27(r)4(a)-18(i)-29(n)-28(i)-29(n)2(g g)8(o)-5(a)-18(l)-17(s)21(, m)-13(a)-18(r)18(k)-4(e)-9(t)-27(i)-29(n)2(g f)3(o)-14(c)-18(u)-18(s)21(, a)-25(n)6(d b)5(r)4(a)-25(n)6(d)-17(i)-29(n)2(g i)-29(n)14(t)-4(e)-3(r)-7(e)-13(s)3(t)-16(s)8(. F)15(o)4(r m)8(o)4(r)-7(e )]TJ ET EMC BT /Span <>BDC /T1_0 1 Tf 0 Tw 9 0 0 9 492 503.1051 Tm ( )Tj EMC /Span <>BDC 0.025 Tw -43 -1.111 Td [(i)-29(n)-27(f)3(o)4(r)-22(m)-13(a)19(t)-27(i)10(o)-3(n)6(, p)20(l)4(e)-6(a)-14(s)-13(e co)-3(n)14(t)-16(a)8(c)-14(t)-22(:)]TJ EMC /Span <>BDC -0.004 Tc 0.029 Tw 2 -1.667 Td [(U)44(.)-15(S)8(.)-4( C)5(or)-30(p)-8(ora)15(t)-8(e)-4( a)-29(n)2(d)-4( G)-9(o)9(v)18(e)-7(r)-32(n)-34(m)-2(e)-15(n)10(t)-4( S)-11(a)-22(le)-17(s)]TJ EMC /Span <>BDC 0 Tc 0 Tw 16.939 0 Td ( )Tj EMC /Span <>BDC -0.038 Tc 0.063 Tw -16.939 -1.111 Td [(\()-47(8)-45(0)-56(0)-53(\))-38( 3)-36(8)-23(2)-3(-)-40(3)-50(4)-10(19)]TJ EMC /Span <>BDC 0 Tc 0 Tw 6.218 0 Td ( )Tj EMC /Span <>BDC 0.003 Tc -0.003 Tw -6.218 -1.111 Td [(c)3(o)7(r)-23(ps)-8(a)-15(l)7(e)-10(s)-46(@)-46(p)-4(e)-3(a)-15(r)-8(s)-7(on)17(t)-1(e)-11(c)-19(h)5(g)-22(ro)9(u)13(p)44(.)16(c)3(o)4(m)]TJ EMC /Span <>BDC 0 Tc 0.025 Tw -2 -1.667 Td [(F)15(o)4(r s)-11(a)-18(l)4(e)-13(s o)6(u)16(t)-16(s)2(i)12(d)9(e t)-25(h)1(e U)21(n)-28(i)18(t)-4(e)-10(d S)5(t)-16(a)19(t)-4(e)-13(s)21(, p)20(l)4(e)-6(a)-14(s)-13(e co)-3(n)14(t)-16(a)8(c)-14(t)-22(:)]TJ EMC /Span <>BDC 0.004 Tc 0.021 Tw 2 -1.667 Td [(I)-18(n)18(te)1(r)-24(n)-10(a)23(t)-23(i)14(o)1(n)-10(a)-14(l)4( S)-3(a)-14(l)8(e)-9(s)]TJ EMC /Span <>BDC 0 Tc 0 Tw 8.357 0 Td ( )Tj EMC /Span <>BDC -0.013 Tc 0.013 Tw -8.357 -1.111 Td [(i)-42(n)1(t)-17(e)-16(r)-41(n)-27(a)6(t)-40(i)-3(o)-16(n)-27(a)-31(l)-45(@)-62(p)-20(e)-19(a)-31(r)-24(s)-23(o)-16(n)-12(e)-23(d)-2(.c)-13(o)-12(m)]TJ EMC /Span <>BDC 0 Tc 0.025 Tw -2 -1.667 Td [(V)13(i)-17(s)2(i)18(t u)-18(s o)-3(n t)-25(h)1(e W)52(e)-5(b)-19(: i)-29(n)-27(f)3(o)4(r)-23(m)-27(i)18(t)4(.)13(co)1(m)33(/)66(a)21(w)]TJ EMC /Span <>BDC /T1_1 1 Tf T* [(L)5(ib)-9(r)10(a)1(r)-25(y o)-4(f C)-8(o)-6(n)18(g)-20(r)11(e)-10(s)-4(s C)-15(a)5(ta)2(lo)8(g)-16(i)4(n)18(g)3(-)-17(i)4(n)-3(-)-10(P)-2(u)3(b)7(l)14(i)-4(c)-11(a)5(t)-4(i)-7(o)-6(n D)-10(a)5(ta)]TJ EMC /Span <>BDC /T1_0 1 Tf 0 -1.111 TD [(S)5(t)-4(ev)22(e)-11(n)-23(s)21(, W)84(. R)-27(i)7(c)-22(h)-14(a)-18(rd)11(.)]TJ EMC /Span <>BDC T* [( A)20(d)16(v)12(a)-25(n)1(c)-4(e)-10(d p)10(r)-3(o)-1(g)-25(r)4(a)-21(m)-29(m)-27(i)-29(n)2(g i)-29(n t)-25(h)1(e U)-14(N)-13(I)-13(X e)-11(n)19(v)-19(i)-21(r)-3(o)-3(n)-30(m)2(e)-11(n)14(t)46(/)19(W)84(. R)-27(i)7(c)-22(h)-14(a)-18(rd S)5(t)-4(ev)22(e)-11(n)-23(s)21(, S)5(t)-4(e)-9(p)13(h)1(e)-11(n A)6(. R)-14(a)11(g)8(o)20(. \227 )]TJ EMC /Span <>BDC T* [(T)-25(h)-28(i)-22(rd e)-10(d)-17(i)18(t)-27(i)10(o)-3(n)1(.)]TJ EMC /Span <>BDC -0.011 Tc 0.036 Tw T* [( p)-3(ag)-8(e)-24(s)-11( c)-29(m)]TJ EMC /Span <>BDC 0 Tc 0.025 Tw T* [( I)-22(n)1(c)-15(l)16(u)8(d)9(e)-13(s b)5(i)-4(b)19(l)-22(i)10(o)-1(g)-25(r)4(a)15(p)13(h)-28(i)7(c)-8(a)-18(l r)-7(e)-3(f)-2(e)-3(r)-7(e)-10(n)1(c)-4(e)-13(s a)-25(n)6(d i)-29(n)6(d)9(e)-4(x)6(.)]TJ EMC /Span <>BDC T* [( I)-5(S)12(B)15(N 9)12(7)18(8)-25(-)-31(0)-28(-)-2(3)23(2)30(1)45(-)-30(6)-6(3)23(7)-8(7)10(3)-26(-)-27(4 \()11(p)6(b)19(k)-1(. : a)-18(l)-22(k)-1(. p)8(a)15(p)-7(e)-3(r)26(\))]TJ EMC /Span <>BDC T* [( 1)42(. O)-22(p)-7(e)-3(r)4(a)19(t)-27(i)-29(n)2(g s)-3(y)-2(s)3(t)-3(e)-6(m)-22(s \()-5(C)9(o)1(m)6(p)7(u)16(t)-4(e)-3(r)-11(s)6(\) 2)-4(. U)-14(N)-13(I)-13(X \()-5(C)9(o)1(m)6(p)7(u)16(t)-4(e)-3(r f)-25(i)-22(l)4(e)5(\) I)12(. R)-14(a)11(g)8(o)34(, S)5(t)-4(e)-9(p)13(h)1(e)-11(n A)6(. I)-9(I)12(. T)14(i)18(t)-18(l)4(e)15(.)]TJ EMC /Span <>BDC -0.054 Tc 0.079 Tw 0 -1.111 TD [( Q)8(A)-48(76)-45(.)-41(76)-45(.)-20(O)-57(6)-60(3)-55(S)-39(7)-46(5)-63(4)-54( 2)-41(0)-27(1)-24(3)]TJ EMC /Span <>BDC -0.02 Tc 0.045 Tw 0 -1.111 TD [( 0)-38(0)-25(5)6(.)4(4)19(\2223)3(2\227)-57(d)-8(c)-32(2)-20(3)]TJ EMC /Span <>BDC 0.004 Tc 0.021 Tw T* ( \ )Tj [(2)17(0)31(1)34(30)-14(0)-4(4)3(5)2(09)]TJ EMC /Span <>BDC 0 Tc 0.025 Tw 0 -1.667 TD [(C)9(o)1(p)17(y)-25(r)-20(i)8(g)-17(h)14(t \251 2)13(0)27(1)30(3 P)37(e)-6(a)-18(r)-11(s)-10(o)-3(n E)-1(d)21(u)4(c)-8(a)19(t)-27(i)10(o)-3(n)6(, I)-22(n)1(c)11(.)]TJ EMC /Span <>BDC 0.262 Tw T* [(A)-17(l)-22(l r)-20(i)8(g)-17(h)14(t)-16(s r)-7(e)-13(s)-13(e)-3(r)-29(v)22(e)-10(d)11(. P)-4(r)-20(i)-29(n)14(t)-4(e)-10(d i)-29(n t)-25(h)1(e U)21(n)-28(i)18(t)-4(e)-10(d S)5(t)-16(a)19(t)-4(e)-13(s o)8(f A)-19(m)2(e)-3(r)-20(i)7(c)-8(a)10(. T)-25(h)-28(i)-17(s p)7(u)-4(b)19(l)-22(i)7(c)-8(a)19(t)-27(i)10(o)-3(n i)-17(s p)10(r)-3(o)1(t)-4(e)-14(c)-14(t)-4(e)-10(d )]TJ EMC ET /Span <>BDC BT /T1_0 1 Tf 0.223 Tw 9 0 0 9 105 248.1051 Tm [(b)11(y )]TJ ET BT /Span <>BDC /T1_0 1 Tf 9 0 0 9 119.1391 248.1051 Tm ( )Tj EMC ET BT /T1_0 1 Tf 9 0 0 9 119.139 248.1051 Tm [(co)1(p)17(y)-25(r)-20(i)8(g)-17(h)14(t)19(, a)-25(n)6(d p)-7(e)-3(r)-23(m)-27(i)-17(s)-12(s)2(i)10(o)-3(n m)19(u)-18(s)3(t b)-8(e o)-5(bt)-16(a)-18(i)-29(n)1(e)-10(d f)-25(r)-3(o)1(m t)-25(h)1(e p)7(u)-4(b)19(l)-22(i)-17(s)-1(h)1(e)-3(r p)10(r)-20(i)10(o)4(r t)1(o a)-25(n)22(y p)10(r)-3(o)3(h)-28(i)-4(b)5(i)18(t)-4(e)-10(d )]TJ ET EMC /Span <>BDC BT /Span <>BDC /T1_0 1 Tf 0.243 Tw 9 0 0 9 105 238.1051 Tm ( )Tj EMC ET BT /T1_0 1 Tf 9 0 0 9 105 238.1051 Tm [(r)-7(e)-9(p)10(r)-3(o)-10(d)21(u)4(c)-14(t)-27(i)10(o)-3(n)6(, s)3(t)1(o)4(r)4(a)11(g)4(e i)-29(n a r)-7(e)-9(t)-27(r)-20(i)4(ev)12(a)-18(l s)-3(y)-2(s)3(t)-4(e)-6(m)6(, o)4(r t)-27(r)4(a)-25(n)-23(s)-1(m)-27(i)-17(s)-12(s)2(i)10(o)-3(n i)-29(n a)-25(n)22(y f)3(o)4(r)-23(m o)4(r b)11(y a)-25(n)22(y m)2(e)-6(a)-25(n)-23(s)20(, )]TJ ET EMC /Span <>BDC BT /Span <>BDC /T1_0 1 Tf 0.04 Tw 9 0 0 9 105 228.1051 Tm ( )Tj EMC ET BT /T1_0 1 Tf 9 0 0 9 105 228.1051 Tm [(e)-3(l)4(e)-14(c)-14(t)-27(r)-3(o)-3(n)-28(i)7(c)24(,)]TJ ET BT /Span <>BDC /T1_0 1 Tf 9 0 0 9 146.256 228.1051 Tm ( )Tj EMC ET BT /T1_0 1 Tf 9 0 0 9 148.8659 228.1051 Tm [(m)2(e)-14(c)-22(h)-14(a)-25(n)-28(i)7(c)-8(a)-18(l)12(, )1(p)13(h)4(o)1(t)1(o)-14(co)1(p)17(y)-25(i)-29(n)2(g)-5(, r)-7(e)-14(co)4(rd)-17(i)-29(n)2(g)-5(, o)4(r l)-22(i)-22(k)-4(ew)-20(i)-17(s)-13(e)15(. T)79(o o)-5(bt)-16(a)-18(i)-29(n )1(p)-7(e)-3(r)-23(m)-27(i)-17(s)-12(s)2(i)10(o)-3(n t)1(o u)-18(s)-13(e m)-13(a)19(t)-4(e)]TJ ET EMC BT /Span <>BDC /T1_0 1 Tf 0 Tw 9 0 0 9 489.0031 228.1051 Tm (-)Tj EMC /Span <>BDC 0.19 Tw -42.667 -1.111 Td [(r)-20(i)-8(a)-18(l f)-25(r)-3(o)1(m t)-25(h)-28(i)-17(s w)25(o)4(r)18(k)8(, p)20(l)4(e)-6(a)-14(s)-13(e su)-4(b)3(m)-27(i)18(t a w)-20(r)-20(i)18(t)-26(t)-4(e)-11(n r)-7(e)-9(q)-3(u)4(e)-13(s)3(t t)1(o P)37(e)-6(a)-18(r)-11(s)-10(o)-3(n E)-1(d)21(u)4(c)-8(a)19(t)-27(i)10(o)-3(n)6(, I)-22(n)1(c)11(.)43(, P)37(e)-3(r)-22(m)-27(i)-17(s)-12(s)2(i)10(o)-3(n)-23(s )]TJ EMC /Span <>BDC -0.03 Tw 0 -1.111 TD [(D)-10(e)-9(p)8(a)-18(r)-20(t)-30(m)2(e)-11(n)14(t)19(, O)-23(n)1(e L)-8(a)-18(k)-4(e S)5(t)-27(r)-7(e)-14(e)-9(t)19(, U)22(p)4(p)-7(e)-3(r S)-7(a)9(d)16(d)-17(l)5(e R)-27(i)11(v)22(e)-3(r)53(, N)11(ew J)17(e)-3(r)-11(s)-13(e)3(y 0)9(7)73(4)-1(5)6(8)26(, o)4(r y)19(o)7(u m)-13(a)24(y fa)-19(x y)19(o)6(u)-22(r r)-7(e)-9(q)-3(u)4(e)-13(s)3(t )]TJ EMC /Span <>BDC 0.025 Tw T* [(t)1(o \(2)13(0)27(1)44(\) 23)3(6)-31(-)-2(3)23(2)12(9)-4(0)18(.)]TJ EMC ET /Span <>BDC BT /T1_0 1 Tf -0.03 Tc 0.055 Tw 9 0 0 9 105 183.1051 Tm [(I)-35(S)-18(B)-15(N)-27(-)29(13)-53(:)-30( )]TJ ET BT /Span <>BDC /T1_0 1 Tf 9 0 0 9 141.639 183.1051 Tm ( )Tj EMC ET BT /T1_0 1 Tf 9 0 0 9 146.148 183.1051 Tm [(9)-18(7)]TJ 9 0 0 9 105 183.1051 Tm 5.542 0 Td [(8)-55(-)-61(0)-58(-)-32(3)-7(21)15(-)-60(6)-36(3)-7(7)-38(7)-20(3)-56(-)-57(4)]TJ ET EMC BT /Span <>BDC /T1_0 1 Tf 0 Tc 0 Tw 9 0 0 9 216.837 183.1051 Tm ( )Tj EMC ET /Span <>BDC BT /T1_0 1 Tf -0.023 Tc 0.048 Tw 9 0 0 9 105 173.1051 Tm [(I)-28(S)-11(B)-8(N)-20(-)36(1)27(0)-63(:)-23( )]TJ ET BT /Span <>BDC /T1_0 1 Tf 9 0 0 9 158.938 173.1051 Tm ( )Tj EMC ET BT /T1_0 1 Tf 9 0 0 9 163.446 173.1051 Tm [(0)-51(-)]TJ 9 0 0 9 105 173.1051 Tm 7.357 0 Td [(32)7(1)22(-)-53(6)-29(37)-31(7)-13(3)-49(-)-18(9)]TJ ET EMC BT /Span <>BDC /T1_0 1 Tf 0 Tc 0.076 Tw 9 0 0 9 105 163.1051 Tm [(T)77(e)-4(x)-5(t p)10(r)-20(i)-29(n)14(t)-4(e)-10(d i)-29(n t)-25(h)1(e U)21(n)-28(i)18(t)-4(e)-10(d S)5(t)-16(a)19(t)-4(e)-13(s o)-3(n r)-7(e)-14(c)-21(y)23(c)-15(l)4(e)-10(d p)8(a)15(p)-7(e)-3(r a)19(t E)-1(d)16(w)11(a)-18(rd)-13(s B)10(r)-3(o)1(t)-25(h)1(e)-3(r)-11(s M)-4(a)-18(l)-22(l)10(o)16(y i)-29(n A)-24(n)-35(n A)-17(rb)-5(o)4(r)53(, )]TJ EMC /Span <>BDC -0.008 Tc 0.008 Tw T* [(M)-26(i)-1(c)-30(h)-36(ig)-10(a)-33(n)-7(.)]TJ EMC /Span <>BDC 0 Tc 0.025 Tw T* [(F)10(i)-22(r)-11(s)3(t p)10(r)-20(i)-29(n)14(t)-27(i)-29(n)2(g)-5(, M)-4(a)24(y 2)13(0)27(1)30(3)]TJ EMC ET q 1 0 0 1 47.58 40.02 cm 0 g /GS1 gs 0 Tw /Fm1 Do Q endstream endobj 47800 0 obj <> endobj 47801 0 obj <>stream q /Fm0 Do Q BT /GS0 gs /T1_0 1 Tf 30 0 0 30 125.9483 539.9399 Tm [(Ad)15(v)20(anced Pr)20(ogramming )]TJ -0.23 -1.067 Td (in the UNIX)Tj /T1_1 1 Tf 11.2 0 0 11.2 279.0736 522.2399 Tm (\256)Tj /T1_0 1 Tf 30 0 0 30 288.0335 507.9399 Tm [( En)40(vir)20(onment)]TJ /T1_2 1 Tf -2.458 -1.367 Td (Third Edition)Tj 16 0 0 16 228.252 376.1399 Tm [(W)55(. Richard Stevens)]TJ -0.055 Tw 0.61 -1.25 Td [(Stephen A. )-55(Rago)]TJ ET q 33 24 0.591 675 re W n q 1 0 0 1 -490.4377 39.6913 cm 0.95 g /GS1 gs 0 0 m 0.674 0 l 3.689 -6.764 l 2.705 -6.764 l 1.807 -4.771 l -1.059 -4.771 l -1.9 -6.764 l -2.89 -6.764 l h 1.414 -3.919 m 0.331 -1.478 l -0.678 -3.919 l h 6.005 -0.038 m 6.967 -0.038 l 6.967 -5.886 l 9.997 -5.886 l 9.997 -6.764 l 6.005 -6.764 l h 20.386 -0.038 m 21.348 -0.038 l 18.63 -6.793 l 18.418 -6.793 l 16.221 -1.324 l 13.999 -6.793 l 13.79 -6.793 l 11.082 -0.038 l 12.05 -0.038 l 13.902 -4.675 l 15.771 -0.038 l 16.681 -0.038 l 18.556 -4.675 l h 25.425 0 m 26.102 0 l 29.116 -6.764 l 28.131 -6.764 l 27.237 -4.771 l 24.367 -4.771 l 23.526 -6.764 l 22.535 -6.764 l h 26.841 -3.919 m 25.753 -1.478 l 24.746 -3.919 l h 34.788 -0.038 m 35.953 -0.038 l 33.469 -3.207 l 33.469 -6.764 l 32.484 -6.764 l 32.484 -3.207 l 30 -0.038 l 31.163 -0.038 l 32.961 -2.355 l h 40.14 -3.949 m 39.405 -3.505 l 38.947 -3.224 38.62 -2.949 38.426 -2.68 c 38.231 -2.405 38.135 -2.094 38.135 -1.743 c 38.135 -1.205 38.318 -0.783 38.683 -0.45 c 39.05 -0.12 39.53 0.045 40.117 0.045 c 40.68 0.045 41.194 -0.116 41.666 -0.427 c 41.666 -1.519 l 41.179 -1.056 40.656 -0.821 40.099 -0.821 c 39.783 -0.821 39.526 -0.892 39.321 -1.038 c 39.121 -1.18 39.02 -1.37 39.02 -1.592 c 39.02 -1.796 39.092 -1.987 39.241 -2.161 c 39.394 -2.336 39.63 -2.526 39.962 -2.718 c 40.697 -3.15 l 41.517 -3.643 41.926 -4.264 41.926 -5.018 c 41.926 -5.556 41.747 -5.998 41.389 -6.334 c 41.027 -6.674 40.556 -6.843 39.978 -6.843 c 39.315 -6.843 38.707 -6.639 38.163 -6.232 c 38.163 -5.008 l 38.683 -5.663 39.284 -5.994 39.97 -5.994 c 40.27 -5.994 40.523 -5.909 40.721 -5.742 c 40.924 -5.575 41.022 -5.365 41.022 -5.113 c 41.022 -4.703 40.725 -4.313 40.14 -3.949 c 49.668 -0.038 m 50.631 -0.038 l 50.631 -5.886 l 53.66 -5.886 l 53.66 -6.764 l 49.668 -6.764 l h 56.474 -0.038 m 60.286 -0.038 l 60.286 -0.894 l 57.436 -0.894 l 57.436 -2.949 l 60.19 -2.949 l 60.19 -3.807 l 57.436 -3.807 l 57.436 -5.898 l 60.379 -5.898 l 60.379 -6.755 l 56.474 -6.755 l h 65.72 0 m 66.398 0 l 69.412 -6.764 l 68.432 -6.764 l 67.53 -4.771 l 64.66 -4.771 l 63.82 -6.764 l 62.833 -6.764 l h 67.134 -3.919 m 66.05 -1.478 l 65.045 -3.919 l h 72.15 -6.764 m 72.15 -0.038 l 73.835 -0.038 l 74.513 -0.038 75.056 -0.207 75.456 -0.546 c 75.854 -0.883 76.054 -1.339 76.054 -1.912 c 76.054 -2.308 75.957 -2.641 75.759 -2.923 c 75.565 -3.217 75.284 -3.427 74.919 -3.569 c 75.133 -3.706 75.342 -3.904 75.548 -4.148 c 75.756 -4.391 76.044 -4.817 76.414 -5.418 c 76.648 -5.802 76.839 -6.09 76.978 -6.286 c 77.335 -6.764 l 76.188 -6.764 l 75.898 -6.321 l 75.837 -6.24 l 75.651 -5.976 l 75.354 -5.481 l 75.034 -4.958 l 74.833 -4.686 74.648 -4.464 74.481 -4.297 c 74.32 -4.133 74.168 -4.018 74.039 -3.949 c 73.903 -3.875 73.68 -3.837 73.363 -3.837 c 73.115 -3.837 l 73.115 -6.764 l h 73.404 -0.856 m 73.115 -0.856 l 73.115 -2.984 l 73.48 -2.984 l 73.965 -2.984 74.3 -2.943 74.481 -2.86 c 74.665 -2.77 74.804 -2.648 74.906 -2.475 c 75.008 -2.31 75.061 -2.119 75.061 -1.904 c 75.061 -1.689 75.003 -1.5 74.891 -1.334 c 74.775 -1.155 74.62 -1.038 74.416 -0.965 c 74.209 -0.894 73.874 -0.856 73.404 -0.856 c 85.389 -0.038 m 86.304 -0.038 l 86.304 -6.764 l 85.479 -6.764 l 80.983 -1.586 l 80.983 -6.764 l 80.078 -6.764 l 80.078 -0.038 l 80.858 -0.038 l 85.389 -5.265 l h 89.727 -0.038 0.961 -6.726 re 99.498 -0.038 m 100.412 -0.038 l 100.412 -6.764 l 99.585 -6.764 l 95.087 -1.586 l 95.087 -6.764 l 94.182 -6.764 l 94.182 -0.038 l 94.961 -0.038 l 99.498 -5.265 l h 106.871 -3.449 m 109.126 -3.449 l 109.126 -6.302 l 108.299 -6.662 107.477 -6.843 106.665 -6.843 c 105.552 -6.843 104.659 -6.52 103.992 -5.865 c 103.329 -5.22 102.992 -4.418 102.992 -3.46 c 102.992 -2.46 103.34 -1.619 104.03 -0.956 c 104.723 -0.29 105.583 0.045 106.625 0.045 c 107.001 0.045 107.361 0.003 107.705 -0.074 c 108.044 -0.162 108.474 -0.305 108.994 -0.53 c 108.994 -1.509 l 108.191 -1.041 107.396 -0.81 106.604 -0.81 c 105.871 -0.81 105.253 -1.06 104.747 -1.562 c 104.239 -2.061 103.992 -2.68 103.992 -3.404 c 103.992 -4.168 104.239 -4.792 104.747 -5.273 c 105.253 -5.76 105.899 -6.007 106.691 -6.007 c 107.076 -6.007 107.537 -5.917 108.074 -5.742 c 108.166 -5.715 l 108.166 -4.306 l 106.871 -4.306 l h f Q q 1 0 0 1 -277.4051 464.2195 cm /GS2 gs 0 0 m -3.927 0 l -1.946 4.599 l h 0.224 -0.62 m 0.843 -2.049 l 0.982 -2.394 1.258 -2.98 1.258 -3.358 c 1.258 -3.962 0.826 -4.099 0.086 -4.133 c 0.086 -4.443 l 4.582 -4.443 l 4.582 -4.133 l 3.307 -4.082 2.98 -3.117 2.549 -2.084 c -1.326 7.216 l -1.636 7.216 l -5.735 -2.394 l -6.252 -3.6 -6.614 -4.047 -7.509 -4.133 c -7.509 -4.443 l -3.927 -4.443 l -3.927 -4.133 l -4.565 -4.082 -5.253 -4.013 -5.253 -3.376 c -5.253 -3.048 -5.012 -2.514 -4.875 -2.222 c -4.185 -0.62 l h f Q q 1 0 0 1 -266.6583 461.24 cm /GS2 gs 0 0 m -0.396 -0.43 -0.879 -0.775 -1.481 -0.775 c -2.79 -0.775 -3.84 0.603 -3.84 2.704 c -3.84 5.391 -2.411 5.959 -1.791 5.959 c -0.62 5.959 0 4.788 0 3.754 c h 0 5.821 m -0.447 6.287 -1.085 6.476 -1.705 6.476 c -3.944 6.476 -5.408 4.15 -5.408 2.101 c -5.408 0.293 -4.306 -1.705 -2.291 -1.705 c -1.326 -1.705 -0.655 -1.275 0 -0.603 c 0 -1.705 l 0.379 -1.705 l 2.704 -0.758 l 2.584 -0.465 l 2.411 -0.534 2.187 -0.603 1.998 -0.603 c 1.757 -0.603 1.395 -0.603 1.395 0.569 c 1.395 10.489 l 1.016 10.489 l -1.309 9.541 l -1.189 9.248 l -1.016 9.317 -0.792 9.387 -0.603 9.387 c -0.362 9.387 0 9.387 0 8.215 c h f Q q 1 0 0 1 -258.047 461.24 cm /GS2 gs 0 0 m -0.396 -0.43 -0.879 -0.775 -1.481 -0.775 c -2.79 -0.775 -3.84 0.603 -3.84 2.704 c -3.84 5.391 -2.411 5.959 -1.791 5.959 c -0.62 5.959 0 4.788 0 3.754 c h 0 5.821 m -0.447 6.287 -1.085 6.476 -1.705 6.476 c -3.944 6.476 -5.408 4.15 -5.408 2.101 c -5.408 0.293 -4.306 -1.705 -2.291 -1.705 c -1.326 -1.705 -0.655 -1.275 0 -0.603 c 0 -1.705 l 0.379 -1.705 l 2.704 -0.758 l 2.584 -0.465 l 2.411 -0.534 2.187 -0.603 1.998 -0.603 c 1.757 -0.603 1.395 -0.603 1.395 0.569 c 1.395 10.489 l 1.016 10.489 l -1.309 9.541 l -1.189 9.248 l -1.016 9.317 -0.792 9.387 -0.603 9.387 c -0.362 9.387 0 9.387 0 8.215 c h f Q q 1 0 0 1 -252.2601 461.24 cm /GS2 gs 0 0 m 0 -1.016 0.396 -1.136 1.188 -1.153 c 1.188 -1.464 l -2.584 -1.464 l -2.584 -1.153 l -1.791 -1.136 -1.395 -1.016 -1.395 0 c -1.395 4.202 l -1.395 5.374 -1.757 5.374 -1.998 5.374 c -2.188 5.374 -2.411 5.305 -2.584 5.236 c -2.704 5.528 l -0.379 6.476 l 0 6.476 l h -0.706 10.489 m -0.241 10.489 0.137 10.11 0.137 9.644 c 0.137 9.18 -0.241 8.801 -0.706 8.801 c -1.171 8.801 -1.551 9.18 -1.551 9.644 c -1.551 10.11 -1.171 10.489 -0.706 10.489 c f Q q 1 0 0 1 -245.0783 465.0807 cm /GS2 gs 0 0 m -0.31 0 l -0.569 1.153 -1.033 2.118 -2.377 2.118 c -2.997 2.118 -3.686 1.774 -3.686 1.068 c -3.686 -0.81 0.569 -0.569 0.569 -3.238 c 0.569 -4.65 -0.758 -5.545 -2.067 -5.545 c -2.566 -5.545 -3.117 -5.425 -3.617 -5.288 c -3.72 -5.253 -3.927 -5.201 -4.047 -5.201 c -4.202 -5.201 -4.323 -5.288 -4.357 -5.425 c -4.668 -5.425 l -4.668 -2.67 l -4.357 -2.67 l -4.202 -3.876 -3.29 -5.029 -1.998 -5.029 c -1.292 -5.029 -0.672 -4.616 -0.672 -3.857 c -0.672 -1.842 -4.685 -2.118 -4.685 0.327 c -4.685 1.739 -3.669 2.635 -2.291 2.635 c -1.929 2.635 -1.654 2.549 -1.309 2.445 c -1.102 2.394 -0.878 2.308 -0.672 2.308 c -0.447 2.308 -0.379 2.445 -0.31 2.635 c 0 2.635 l h f Q q 1 0 0 1 -239.9113 467.13 cm /GS2 gs 0 0 m 1.912 0 2.428 -2.549 2.428 -4.047 c 2.428 -5.252 2.135 -7.01 0.569 -7.01 c -1.343 -7.01 -1.878 -4.323 -1.878 -2.841 c -1.878 -0.637 -0.843 0 0 0 c 0.293 0.586 m -1.964 0.586 -3.444 -1.464 -3.444 -3.583 c -3.444 -5.649 -2.015 -7.595 0.172 -7.595 c 2.894 -7.595 3.996 -5.098 3.996 -3.324 c 3.996 -1.223 2.445 0.586 0.293 0.586 c f Q q 1 0 0 1 -232.54 466.0968 cm /GS2 gs 0 0 m 0.965 1.068 1.636 1.619 2.618 1.619 c 4.013 1.619 4.563 0.31 4.563 -0.982 c 4.563 -4.856 l 4.563 -5.874 4.96 -5.994 5.752 -6.011 c 5.752 -6.321 l 1.981 -6.321 l 1.981 -6.011 l 2.773 -5.994 3.169 -5.874 3.169 -4.856 c 3.169 -1.292 l 3.169 0.413 2.463 0.586 1.946 0.586 c 1.153 0.586 0.569 0.069 0 -0.517 c 0 -4.856 l 0 -5.874 0.396 -5.994 1.188 -6.011 c 1.188 -6.321 l -2.584 -6.321 l -2.584 -6.011 l -1.791 -5.994 -1.395 -5.874 -1.395 -4.856 c -1.395 -0.655 l -1.395 0.516 -1.757 0.516 -1.998 0.516 c -2.188 0.516 -2.411 0.447 -2.584 0.379 c -2.704 0.672 l -0.379 1.619 l 0 1.619 l h f Q q 1 0 0 1 -208.8417 468.5079 cm /GS2 gs 0 0 m 0.137 0.396 0.413 1.153 0.413 1.55 c 0.413 2.204 -0.069 2.359 -0.843 2.359 c -0.843 2.67 l 2.566 2.67 l 2.566 2.359 l 1.429 2.359 1.188 1.412 0.878 0.5 c -2.394 -8.991 l -2.721 -8.991 l -5.305 -1.757 l -5.339 -1.757 l -7.87 -8.991 l -8.215 -8.991 l -11.729 0.843 l -12.108 1.929 -12.279 2.359 -13.314 2.359 c -13.314 2.67 l -9.094 2.67 l -9.094 2.359 l -9.714 2.359 -10.213 2.222 -10.213 1.636 c -10.213 1.361 -10.041 0.913 -9.955 0.655 c -7.63 -5.977 l -7.595 -5.977 l -5.701 -0.655 l -6.165 0.62 l -6.527 1.585 -6.786 2.359 -7.923 2.359 c -7.923 2.67 l -3.461 2.67 l -3.461 2.359 l -4.185 2.359 -4.685 2.308 -4.685 1.585 c -4.685 1.085 -4.409 0.379 -4.237 -0.086 c -2.135 -5.977 l -2.101 -5.977 l h f Q q 1 0 0 1 -205.7044 465.0807 cm /GS2 gs 0 0 m 0.069 0.999 0.792 2.015 1.808 2.015 c 3.031 2.015 3.565 1.068 3.565 0 c h 5.322 -0.516 m 5.322 1.343 4.15 2.635 2.377 2.635 c -0.069 2.635 -1.189 0.637 -1.189 -1.585 c -1.189 -3.944 0.293 -5.545 2.17 -5.545 c 3.91 -5.545 5.029 -4.082 5.322 -2.498 c 5.063 -2.325 l 4.668 -3.444 3.996 -4.168 2.755 -4.168 c 0.878 -4.168 -0.017 -2.239 -0.017 -0.516 c h f Q q 1 0 0 1 -194.2688 465.0807 cm /GS2 gs 0 0 m -0.31 0 l -0.569 1.153 -1.033 2.118 -2.377 2.118 c -2.997 2.118 -3.686 1.774 -3.686 1.068 c -3.686 -0.81 0.569 -0.569 0.569 -3.238 c 0.569 -4.65 -0.758 -5.545 -2.067 -5.545 c -2.567 -5.545 -3.117 -5.425 -3.617 -5.288 c -3.72 -5.253 -3.927 -5.201 -4.047 -5.201 c -4.203 -5.201 -4.323 -5.288 -4.357 -5.425 c -4.668 -5.425 l -4.668 -2.67 l -4.357 -2.67 l -4.203 -3.876 -3.29 -5.029 -1.998 -5.029 c -1.292 -5.029 -0.672 -4.616 -0.672 -3.857 c -0.672 -1.842 -4.685 -2.118 -4.685 0.327 c -4.685 1.739 -3.669 2.635 -2.291 2.635 c -1.929 2.635 -1.654 2.549 -1.309 2.445 c -1.102 2.394 -0.879 2.308 -0.672 2.308 c -0.447 2.308 -0.379 2.445 -0.31 2.635 c 0 2.635 l h f Q q 1 0 0 1 -189.9633 461.24 cm /GS2 gs 0 0 m 0 -1.016 0.396 -1.136 1.189 -1.153 c 1.189 -1.464 l -2.584 -1.464 l -2.584 -1.153 l -1.791 -1.136 -1.395 -1.016 -1.395 0 c -1.395 8.215 l -1.395 9.387 -1.757 9.387 -1.998 9.387 c -2.187 9.387 -2.411 9.317 -2.584 9.248 c -2.704 9.541 l -0.379 10.489 l 0 10.489 l h f Q q 1 0 0 1 -186.5704 465.0807 cm /GS2 gs 0 0 m 0.069 0.999 0.792 2.015 1.808 2.015 c 3.031 2.015 3.566 1.068 3.566 0 c h 5.322 -0.516 m 5.322 1.343 4.15 2.635 2.377 2.635 c -0.069 2.635 -1.188 0.637 -1.188 -1.585 c -1.188 -3.944 0.293 -5.545 2.17 -5.545 c 3.91 -5.545 5.029 -4.082 5.322 -2.498 c 5.063 -2.325 l 4.668 -3.444 3.996 -4.168 2.755 -4.168 c 0.879 -4.168 -0.017 -2.239 -0.017 -0.516 c h f Q q 1 0 0 1 -179.4043 465.7007 cm /GS2 gs 0 0 m -0.293 0.637 -0.689 1.378 -1.446 1.464 c -1.446 1.774 l 2.135 1.774 l 2.135 1.464 l 1.602 1.464 1.206 1.395 1.206 0.843 c 1.206 0.552 1.446 0.069 1.568 -0.207 c 3.358 -3.893 l 4.995 0.155 l 5.115 0.465 5.218 0.706 5.218 1.033 c 5.218 1.429 4.909 1.464 4.443 1.464 c 4.443 1.774 l 6.958 1.774 l 6.958 1.464 l 6.407 1.464 6.114 1.033 5.925 0.569 c 2.635 -7.492 l 1.964 -9.145 0.706 -9.644 0.104 -9.644 c -0.465 -9.644 -1.05 -9.301 -1.05 -8.681 c -1.05 -8.163 -0.637 -7.923 -0.172 -7.923 c 0.396 -7.923 0.672 -8.232 0.965 -8.232 c 1.653 -8.232 2.015 -7.267 2.222 -6.768 c 2.687 -5.615 l h f Q q 1 0 0 1 -224.6816 89.2339 cm /GS2 gs 0 0 m 2.128 0 l 2.128 5.234 l 2.128 5.45 2.14 5.748 2.427 5.748 c 2.689 5.748 2.749 5.462 2.749 5.247 c 2.749 0 l 4.804 0 l 4.804 5.234 l 4.804 5.45 4.817 5.748 5.091 5.748 c 5.366 5.748 5.426 5.462 5.426 5.247 c 5.426 0 l 7.553 0 l 7.553 5.318 l 7.553 6.597 7.003 7.183 6.108 7.183 c 5.509 7.183 5.08 6.8 4.708 6.381 c 4.517 6.741 4.112 7.183 3.442 7.183 c 3.215 7.183 2.94 7.123 2.701 6.991 c 2.463 6.871 2.247 6.692 2.151 6.466 c 2.128 6.466 l 2.128 7.003 l 0 7.003 l h -3.709 5.425 m -3.709 5.664 -3.59 5.892 -3.326 5.892 c -3.063 5.892 -2.944 5.664 -2.944 5.425 c -2.944 1.721 l -2.944 1.482 -3.063 1.254 -3.326 1.254 c -3.59 1.254 -3.709 1.482 -3.709 1.721 c h -5.836 2.14 m -5.836 0.323 -4.498 -0.179 -3.326 -0.179 c -2.156 -0.179 -0.817 0.323 -0.817 2.14 c -0.817 4.864 l -0.817 6.68 -2.156 7.183 -3.326 7.183 c -4.498 7.183 -5.836 6.68 -5.836 4.864 c h -11.455 2.14 m -11.455 0.323 -10.117 -0.179 -8.946 -0.179 c -7.583 -0.179 -6.508 0.358 -6.508 2.545 c -6.508 2.892 l -8.564 2.892 l -8.564 1.685 l -8.564 1.303 -8.659 1.112 -8.946 1.112 c -9.269 1.112 -9.329 1.303 -9.329 1.661 c -9.329 5.485 l -9.329 5.676 -9.304 5.892 -8.982 5.892 c -8.659 5.892 -8.635 5.676 -8.635 5.485 c -8.635 4.338 l -6.58 4.338 l -6.58 4.924 l -6.58 6.429 -7.524 7.183 -8.946 7.183 c -10.117 7.183 -11.455 6.68 -11.455 4.864 c h -14.014 0 1.649 1.721 re f Q q 1 0 0 1 -255.1281 89.2339 cm /GS2 gs 0 0 m 2.127 0 l 2.127 5.234 l 2.127 5.45 2.14 5.748 2.426 5.748 c 2.689 5.748 2.749 5.462 2.749 5.247 c 2.749 0 l 4.804 0 l 4.804 5.234 l 4.804 5.45 4.816 5.748 5.091 5.748 c 5.366 5.748 5.425 5.462 5.425 5.247 c 5.425 0 l 7.553 0 l 7.553 5.318 l 7.553 6.597 7.002 7.183 6.106 7.183 c 5.509 7.183 5.078 6.8 4.708 6.381 c 4.517 6.741 4.111 7.183 3.442 7.183 c 3.215 7.183 2.94 7.123 2.701 6.991 c 2.461 6.871 2.247 6.692 2.151 6.466 c 2.127 6.466 l 2.127 7.003 l 0 7.003 l h -4.066 0 m -1.938 0 l -1.938 3.74 l -1.938 4.291 -1.604 4.661 -1.03 4.661 c -0.911 4.661 -0.791 4.648 -0.672 4.636 c -0.672 7.183 l -1.149 7.134 -1.783 6.776 -1.986 6.106 c -2.01 6.106 l -2.01 7.003 l -4.066 7.003 l h -7.775 5.425 m -7.775 5.664 -7.655 5.892 -7.392 5.892 c -7.13 5.892 -7.01 5.664 -7.01 5.425 c -7.01 1.721 l -7.01 1.482 -7.13 1.254 -7.392 1.254 c -7.655 1.254 -7.775 1.482 -7.775 1.721 c h -9.902 2.14 m -9.902 0.323 -8.564 -0.179 -7.392 -0.179 c -6.221 -0.179 -4.882 0.323 -4.882 2.14 c -4.882 4.864 l -4.882 6.68 -6.221 7.183 -7.392 7.183 c -8.564 7.183 -9.902 6.68 -9.902 4.864 c h -13.693 5.856 m -13.25 5.856 l -13.25 0 l -11.124 0 l -11.124 5.856 l -10.49 5.856 l -10.49 7.003 l -11.529 7.003 l -11.482 7.385 -11.207 7.457 -10.861 7.457 c -10.538 7.457 l -10.538 8.533 l -11.482 8.533 l -12.797 8.533 -13.203 8.246 -13.25 7.003 c -13.693 7.003 l h -19.252 0 m -17.125 0 l -17.125 5.234 l -17.125 5.45 -17.113 5.748 -16.826 5.748 c -16.551 5.748 -16.491 5.462 -16.491 5.247 c -16.491 0 l -14.364 0 l -14.364 5.318 l -14.364 6.597 -14.914 7.183 -15.811 7.183 c -16.456 7.183 -16.934 6.811 -17.1 6.466 c -17.125 6.466 l -17.125 7.003 l -19.252 7.003 l h -22.221 7.457 2.128 1.076 re -22.221 0 2.128 7.003 re f Q q 1 0 0 1 -218.5465 84.3652 cm /GS2 gs 0 0 m 1.267 0 l 1.267 0.147 l 0.173 0.147 l 0.173 0.865 l 1.186 0.865 l 1.186 1.013 l 0.173 1.013 l 0.173 1.67 l 1.254 1.67 l 1.254 1.818 l 0 1.818 l h -0.369 1.267 m -0.415 1.649 -0.756 1.855 -1.1 1.855 c -1.673 1.855 -1.957 1.406 -1.957 0.909 c -1.957 0.412 -1.673 -0.038 -1.1 -0.038 c -0.675 -0.038 -0.393 0.247 -0.343 0.692 c -0.517 0.692 l -0.549 0.369 -0.764 0.109 -1.1 0.109 c -1.582 0.109 -1.784 0.512 -1.784 0.909 c -1.784 1.306 -1.582 1.708 -1.1 1.708 c -0.835 1.708 -0.603 1.547 -0.543 1.267 c h -3.468 1.67 m -2.821 1.67 l -2.561 1.67 -2.429 1.53 -2.429 1.308 c -2.429 1.087 -2.61 0.954 -2.821 0.954 c -3.468 0.954 l h -3.641 0 m -3.468 0 l -3.468 0.807 l -2.81 0.807 l -2.482 0.82 -2.461 0.536 -2.446 0.282 c -2.398 0 l -2.208 0 l -2.284 0.091 -2.284 0.341 -2.292 0.466 c -2.305 0.682 -2.373 0.846 -2.61 0.876 c -2.61 0.881 l -2.376 0.926 -2.255 1.115 -2.255 1.343 c -2.255 1.673 -2.508 1.818 -2.808 1.818 c -3.641 1.818 l h -5.49 0.655 m -5.49 0.28 -5.288 -0.038 -4.785 -0.038 c -4.277 -0.038 -4.076 0.28 -4.076 0.655 c -4.076 1.818 l -4.25 1.818 l -4.25 0.692 l -4.247 0.269 -4.449 0.109 -4.785 0.109 c -5.118 0.109 -5.319 0.269 -5.317 0.692 c -5.317 1.818 l -5.49 1.818 l h -7.367 0.909 m -7.367 1.306 -7.163 1.708 -6.683 1.708 c -6.204 1.708 -6 1.306 -6 0.909 c -6 0.512 -6.204 0.109 -6.683 0.109 c -7.163 0.109 -7.367 0.512 -7.367 0.909 c -7.54 0.909 m -7.54 0.412 -7.256 -0.038 -6.683 -0.038 c -6.112 -0.038 -5.827 0.412 -5.827 0.909 c -5.827 1.406 -6.112 1.855 -6.683 1.855 c -7.256 1.855 -7.54 1.406 -7.54 0.909 c -9.205 0.599 m -9.226 0.156 -8.91 -0.038 -8.48 -0.038 c -7.836 -0.038 -7.785 0.356 -7.785 0.481 c -7.785 0.779 -7.998 0.891 -8.256 0.959 c -8.699 1.069 l -8.846 1.104 -8.974 1.176 -8.974 1.347 c -8.974 1.616 -8.755 1.708 -8.517 1.708 c -8.261 1.708 -8.031 1.568 -8.022 1.29 c -7.849 1.29 l -7.846 1.662 -8.161 1.855 -8.521 1.855 c -9.033 1.855 -9.146 1.522 -9.146 1.343 c -9.146 1.061 -8.951 0.959 -8.736 0.906 c -8.332 0.807 l -8.164 0.766 -7.957 0.685 -7.957 0.479 c -7.957 0.214 -8.248 0.109 -8.439 0.109 c -8.77 0.109 -9.04 0.223 -9.033 0.599 c h -10.205 0.924 m -10.976 0.924 l -10.976 0.776 l -10.358 0.776 l -10.35 0.392 -10.585 0.109 -10.986 0.109 c -11.467 0.109 -11.671 0.512 -11.671 0.909 c -11.671 1.306 -11.467 1.708 -10.986 1.708 c -10.64 1.708 -10.424 1.461 -10.401 1.252 c -10.228 1.252 l -10.294 1.649 -10.604 1.855 -10.986 1.855 c -11.558 1.855 -11.844 1.406 -11.844 0.909 c -11.844 0.412 -11.558 -0.038 -10.986 -0.038 c -10.725 -0.038 -10.48 0.071 -10.358 0.33 c -10.352 0.33 l -10.33 0 l -10.205 0 l h -13.635 0 m -13.462 0 l -13.462 1.537 l -13.457 1.537 l -12.397 0 l -12.204 0 l -12.204 1.818 l -12.377 1.818 l -12.377 0.28 l -12.382 0.28 l -13.44 1.818 l -13.635 1.818 l h -14.259 0 0.173 1.818 re -16.144 0 m -15.972 0 l -15.972 1.537 l -15.967 1.537 l -14.908 0 l -14.715 0 l -14.715 1.818 l -14.888 1.818 l -14.888 0.28 l -14.892 0.28 l -15.951 1.818 l -16.144 1.818 l h -17.756 1.67 m -17.11 1.67 l -16.85 1.67 -16.717 1.53 -16.717 1.308 c -16.717 1.087 -16.899 0.954 -17.11 0.954 c -17.756 0.954 l h -17.929 0 m -17.756 0 l -17.756 0.807 l -17.099 0.807 l -16.771 0.82 -16.751 0.536 -16.736 0.282 c -16.687 0 l -16.496 0 l -16.572 0.091 -16.572 0.341 -16.581 0.466 c -16.594 0.682 -16.662 0.846 -16.899 0.876 c -16.899 0.881 l -16.665 0.926 -16.546 1.115 -16.546 1.343 c -16.546 1.673 -16.797 1.818 -17.097 1.818 c -17.929 1.818 l h -19.003 1.644 m -18.652 0.712 l -19.366 0.712 l h -19.824 0 m -19.639 0 l -19.419 0.565 l -18.593 0.565 l -18.372 0 l -18.186 0 l -18.899 1.818 l -19.092 1.818 l h -21.281 0 m -20.014 0 l -20.014 0.147 l -21.108 0.147 l -21.108 0.865 l -20.095 0.865 l -20.095 1.013 l -21.108 1.013 l -21.108 1.67 l -20.026 1.67 l -20.026 1.818 l -21.281 1.818 l h -22.733 0 m -21.542 0 l -21.542 0.147 l -22.56 0.147 l -22.56 1.818 l -22.733 1.818 l h -24.54 0 m -24.367 0 l -24.367 0.748 l -23.649 1.818 l -23.855 1.818 l -24.45 0.896 l -25.048 1.818 l -25.254 1.818 l -24.54 0.748 l h -25.361 0.924 m -26.132 0.924 l -26.132 0.776 l -25.514 0.776 l -25.506 0.392 -25.74 0.109 -26.143 0.109 c -26.623 0.109 -26.827 0.512 -26.827 0.909 c -26.827 1.306 -26.623 1.708 -26.143 1.708 c -25.797 1.708 -25.58 1.461 -25.558 1.252 c -25.384 1.252 l -25.451 1.649 -25.761 1.855 -26.143 1.855 c -26.716 1.855 -27 1.406 -27 0.909 c -27 0.412 -26.716 -0.038 -26.143 -0.038 c -25.881 -0.038 -25.636 0.071 -25.514 0.33 c -25.508 0.33 l -25.486 0 l -25.361 0 l h -28.807 0.909 m -28.807 1.306 -28.604 1.708 -28.122 1.708 c -27.644 1.708 -27.44 1.306 -27.44 0.909 c -27.44 0.512 -27.644 0.109 -28.122 0.109 c -28.604 0.109 -28.807 0.512 -28.807 0.909 c -28.981 0.909 m -28.981 0.412 -28.695 -0.038 -28.122 -0.038 c -27.552 -0.038 -27.268 0.412 -27.268 0.909 c -27.268 1.406 -27.552 1.855 -28.122 1.855 c -28.695 1.855 -28.981 1.406 -28.981 0.909 c -30.253 0 m -29.062 0 l -29.062 0.147 l -30.079 0.147 l -30.079 1.818 l -30.253 1.818 l h -32.15 0.909 m -32.15 1.306 -31.946 1.708 -31.466 1.708 c -30.986 1.708 -30.782 1.306 -30.782 0.909 c -30.782 0.512 -30.986 0.109 -31.466 0.109 c -31.946 0.109 -32.15 0.512 -32.15 0.909 c -32.322 0.909 m -32.322 0.412 -32.038 -0.038 -31.466 -0.038 c -30.895 -0.038 -30.611 0.412 -30.611 0.909 c -30.611 1.406 -30.895 1.855 -31.466 1.855 c -32.038 1.855 -32.322 1.406 -32.322 0.909 c -34.107 0 m -33.935 0 l -33.935 1.537 l -33.929 1.537 l -32.87 0 l -32.677 0 l -32.677 1.818 l -32.85 1.818 l -32.85 0.28 l -32.855 0.28 l -33.914 1.818 l -34.107 1.818 l h -35.982 0 m -35.808 0 l -35.808 0.881 l -34.73 0.881 l -34.73 0 l -34.556 0 l -34.556 1.818 l -34.73 1.818 l -34.73 1.028 l -35.808 1.028 l -35.808 1.818 l -35.982 1.818 l h -36.351 1.267 m -36.396 1.649 -36.737 1.855 -37.082 1.855 c -37.654 1.855 -37.939 1.406 -37.939 0.909 c -37.939 0.412 -37.654 -0.038 -37.082 -0.038 c -36.657 -0.038 -36.374 0.247 -36.325 0.692 c -36.498 0.692 l -36.531 0.369 -36.746 0.109 -37.082 0.109 c -37.563 0.109 -37.766 0.512 -37.766 0.909 c -37.766 1.306 -37.563 1.708 -37.082 1.708 c -36.817 1.708 -36.585 1.547 -36.524 1.267 c h -39.419 0 m -38.153 0 l -38.153 0.147 l -39.246 0.147 l -39.246 0.865 l -38.233 0.865 l -38.233 1.013 l -39.246 1.013 l -39.246 1.67 l -38.164 1.67 l -38.164 1.818 l -39.419 1.818 l h -41.117 1.67 m -40.484 1.67 l -40.484 0 l -40.312 0 l -40.312 1.67 l -39.677 1.67 l -39.677 1.818 l -41.117 1.818 l h -43.423 0 m -42.794 0 l -42.247 0.013 -41.961 0.313 -41.961 0.909 c -41.961 1.504 -42.247 1.804 -42.794 1.818 c -43.423 1.818 l h -43.25 1.67 m -42.881 1.67 l -42.36 1.673 -42.132 1.451 -42.132 0.909 c -42.132 0.366 -42.36 0.145 -42.881 0.147 c -43.25 0.147 l h -44.989 0 m -43.722 0 l -43.722 0.147 l -44.816 0.147 l -44.816 0.865 l -43.803 0.865 l -43.803 1.013 l -44.816 1.013 l -44.816 1.67 l -43.734 1.67 l -43.734 1.818 l -44.989 1.818 l h -46.687 1.67 m -46.054 1.67 l -46.054 0 l -45.88 0 l -45.88 1.67 l -45.247 1.67 l -45.247 1.818 l -46.687 1.818 l h -48.231 0.599 m -48.252 0.156 -47.936 -0.038 -47.506 -0.038 c -46.862 -0.038 -46.812 0.356 -46.812 0.481 c -46.812 0.779 -47.024 0.891 -47.282 0.959 c -47.725 1.069 l -47.873 1.104 -48 1.176 -48 1.347 c -48 1.616 -47.781 1.708 -47.545 1.708 c -47.287 1.708 -47.057 1.568 -47.048 1.29 c -46.875 1.29 l -46.872 1.662 -47.187 1.855 -47.547 1.855 c -48.059 1.855 -48.172 1.522 -48.172 1.343 c -48.172 1.061 -47.977 0.959 -47.764 0.906 c -47.358 0.807 l -47.191 0.766 -46.983 0.685 -46.983 0.479 c -46.983 0.214 -47.274 0.109 -47.465 0.109 c -47.797 0.109 -48.066 0.223 -48.059 0.599 c h -49.977 0.655 m -49.977 0.28 -49.776 -0.038 -49.272 -0.038 c -48.766 -0.038 -48.565 0.28 -48.565 0.655 c -48.565 1.818 l -48.738 1.818 l -48.738 0.692 l -48.735 0.269 -48.936 0.109 -49.272 0.109 c -49.606 0.109 -49.808 0.269 -49.804 0.692 c -49.804 1.818 l -49.977 1.818 l h -51.561 1.67 m -50.915 1.67 l -50.655 1.67 -50.522 1.53 -50.522 1.308 c -50.522 1.087 -50.704 0.954 -50.915 0.954 c -51.561 0.954 l h -51.735 0 m -51.561 0 l -51.561 0.807 l -50.904 0.807 l -50.576 0.82 -50.555 0.536 -50.54 0.282 c -50.492 0 l -50.301 0 l -50.377 0.091 -50.377 0.341 -50.386 0.466 c -50.398 0.682 -50.466 0.846 -50.704 0.876 c -50.704 0.881 l -50.469 0.926 -50.349 1.115 -50.349 1.343 c -50.349 1.673 -50.602 1.818 -50.902 1.818 c -51.735 1.818 l h -53.432 1.67 m -52.799 1.67 l -52.799 0 l -52.625 0 l -52.625 1.67 l -51.992 1.67 l -51.992 1.818 l -53.432 1.818 l h -55.504 0 m -54.237 0 l -54.237 0.147 l -55.331 0.147 l -55.331 0.865 l -54.318 0.865 l -54.318 1.013 l -55.331 1.013 l -55.331 1.67 l -54.25 1.67 l -54.25 1.818 l -55.504 1.818 l h -57.38 0 m -57.207 0 l -57.207 0.881 l -56.128 0.881 l -56.128 0 l -55.955 0 l -55.955 1.818 l -56.128 1.818 l -56.128 1.028 l -57.207 1.028 l -57.207 1.818 l -57.38 1.818 l h -59.077 1.67 m -58.444 1.67 l -58.444 0 l -58.271 0 l -58.271 1.67 l -57.637 1.67 l -57.637 1.818 l -59.077 1.818 l h f Q q 1 0 0 1 -154.3155 84.4041 cm 0.37 g /GS1 gs 0 0 m -0.968 0 l -0.968 2.311 l -0.039 2.311 l 0.412 2.311 0.675 2.058 0.675 1.662 c 0.675 1.406 0.506 1.239 0.389 1.185 c 0.529 1.12 0.708 0.974 0.708 0.665 c 0.708 0.233 0.412 0 0 0 c -0.075 1.909 m -0.516 1.909 l -0.516 1.376 l -0.075 1.376 l 0.117 1.376 0.224 1.484 0.224 1.643 c 0.224 1.802 0.117 1.909 -0.075 1.909 c -0.046 0.971 m -0.516 0.971 l -0.516 0.402 l -0.046 0.402 l 0.159 0.402 0.256 0.532 0.256 0.689 c 0.256 0.844 0.159 0.971 -0.046 0.971 c f Q q 1 0 0 1 -152.0098 84.5924 cm 0.37 g /GS1 gs 0 0 m -0.104 -0.111 -0.276 -0.208 -0.526 -0.208 c -0.777 -0.208 -0.945 -0.111 -1.049 0 c -1.202 0.159 -1.24 0.35 -1.24 0.659 c -1.24 0.965 -1.202 1.156 -1.049 1.314 c -0.945 1.425 -0.777 1.523 -0.526 1.523 c -0.276 1.523 -0.104 1.425 0 1.314 c 0.152 1.156 0.191 0.965 0.191 0.659 c 0.191 0.35 0.152 0.159 0 0 c -0.328 1.069 m -0.526 1.143 l -0.721 1.069 l -0.809 0.981 -0.819 0.834 -0.819 0.659 c -0.819 0.484 -0.809 0.334 -0.721 0.246 c -0.526 0.172 l -0.328 0.246 l -0.24 0.334 -0.231 0.484 -0.231 0.659 c -0.231 0.834 -0.24 0.981 -0.328 1.069 c f Q q 1 0 0 1 -150.247 84.5924 cm 0.37 g /GS1 gs 0 0 m -0.104 -0.111 -0.276 -0.208 -0.526 -0.208 c -0.776 -0.208 -0.945 -0.111 -1.048 0 c -1.201 0.159 -1.239 0.35 -1.239 0.659 c -1.239 0.965 -1.201 1.156 -1.048 1.314 c -0.945 1.425 -0.776 1.523 -0.526 1.523 c -0.276 1.523 -0.104 1.425 0 1.314 c 0.152 1.156 0.192 0.965 0.192 0.659 c 0.192 0.35 0.152 0.159 0 0 c -0.327 1.069 m -0.526 1.143 l -0.721 1.069 l -0.809 0.981 -0.818 0.834 -0.818 0.659 c -0.818 0.484 -0.809 0.334 -0.721 0.246 c -0.526 0.172 l -0.327 0.246 l -0.24 0.334 -0.231 0.484 -0.231 0.659 c -0.231 0.834 -0.24 0.981 -0.327 1.069 c f Q q 1 0 0 1 -147.2826 84.3842 cm 0.37 g /GS1 gs 0 0 m -0.265 0 -0.506 0.029 -0.721 0.244 c -0.444 0.519 l -0.305 0.38 -0.123 0.361 0.006 0.361 c 0.152 0.361 0.306 0.41 0.306 0.535 c 0.306 0.62 0.26 0.679 0.127 0.692 c -0.139 0.718 l -0.444 0.747 -0.634 0.88 -0.634 1.192 c -0.634 1.542 -0.325 1.731 0.019 1.731 c 0.282 1.731 0.503 1.686 0.666 1.532 c 0.406 1.27 l 0.308 1.357 0.16 1.383 0.013 1.383 c -0.156 1.383 -0.226 1.306 -0.226 1.221 c -0.226 1.16 -0.202 1.088 -0.051 1.075 c 0.215 1.048 l 0.549 1.016 0.718 0.838 0.718 0.553 c 0.718 0.178 0.4 0 0 0 c f Q q 1 0 0 1 -144.0255 84.6374 cm 0.37 g /GS1 gs 0 0 m -0.163 -0.162 -0.361 -0.253 -0.623 -0.253 c -0.886 -0.253 -1.088 -0.162 -1.25 0 c -1.484 0.234 -1.478 0.523 -1.478 0.922 c -1.478 1.322 -1.484 1.611 -1.25 1.844 c -1.088 2.007 -0.886 2.098 -0.623 2.098 c -0.361 2.098 -0.163 2.007 0 1.844 c 0.234 1.611 0.231 1.322 0.231 0.922 c 0.231 0.523 0.234 0.234 0 0 c -0.335 1.572 m -0.4 1.647 -0.5 1.695 -0.623 1.695 c -0.747 1.695 -0.851 1.647 -0.916 1.572 c -1.003 1.474 -1.026 1.367 -1.026 0.922 c -1.026 0.477 -1.003 0.37 -0.916 0.274 c -0.851 0.199 -0.747 0.15 -0.623 0.15 c -0.5 0.15 -0.4 0.199 -0.335 0.274 c -0.247 0.37 -0.221 0.477 -0.221 0.922 c -0.221 1.367 -0.247 1.474 -0.335 1.572 c f Q q 1 0 0 1 -142.3826 84.4041 cm 0.37 g /GS1 gs 0 0 m 0 1.023 l 0 1.253 -0.146 1.331 -0.279 1.331 c -0.412 1.331 -0.562 1.253 -0.562 1.023 c -0.562 0 l -0.984 0 l -0.984 1.691 l -0.571 1.691 l -0.571 1.535 l -0.461 1.652 -0.305 1.71 -0.15 1.71 c 0.019 1.71 0.156 1.656 0.25 1.561 c 0.386 1.425 0.422 1.266 0.422 1.081 c 0.422 0 l h f Q q 1 0 0 1 -141.0287 84.4041 cm 0.37 g /GS1 gs 0 0 m -0.348 0 -0.494 0.244 -0.494 0.484 c -0.494 2.311 l -0.071 2.311 l -0.071 0.51 l -0.071 0.409 -0.029 0.357 0.078 0.357 c 0.24 0.357 l 0.24 0 l h f Q q 1 0 0 1 -138.5737 84.4041 cm 0.37 g /GS1 gs 0 0 m 0 1.023 l 0 1.253 -0.146 1.331 -0.279 1.331 c -0.412 1.331 -0.561 1.253 -0.561 1.023 c -0.561 0 l -0.984 0 l -0.984 1.691 l -0.572 1.691 l -0.572 1.535 l -0.461 1.652 -0.305 1.71 -0.149 1.71 c 0.019 1.71 0.156 1.656 0.25 1.561 c 0.386 1.425 0.422 1.266 0.422 1.081 c 0.422 0 l h f Q q 1 0 0 1 -137.3656 85.118 cm 0.37 g /GS1 gs 0 0 m 0 -0.217 0.133 -0.377 0.37 -0.377 c 0.556 -0.377 0.646 -0.324 0.753 -0.217 c 1.01 -0.467 l 0.838 -0.64 0.672 -0.734 0.367 -0.734 c -0.033 -0.734 -0.415 -0.552 -0.415 0.133 c -0.415 0.685 -0.118 0.997 0.321 0.997 c 0.792 0.997 1.058 0.652 1.058 0.188 c 1.058 0 l h 0.604 0.471 m 0.558 0.572 0.465 0.646 0.321 0.646 c 0.178 0.646 0.085 0.572 0.039 0.471 c 0 0.29 l 0.643 0.29 l 0.604 0.471 l f Q q 1 0 0 1 -167.4586 87.7015 cm 0.27 g /GS1 gs 0 0 m -1.476 0 -2.596 0.314 -3.552 1.284 c -2.323 2.514 l -1.708 1.899 -0.874 1.694 0.027 1.694 c 1.147 1.694 1.749 2.118 1.749 2.897 c 1.749 3.238 1.652 3.526 1.447 3.717 c 1.257 3.894 1.038 3.989 0.587 4.058 c -0.588 4.221 l -1.421 4.345 -2.035 4.604 -2.473 5.028 c -2.938 5.493 -3.17 6.121 -3.17 6.94 c -3.17 8.675 -1.885 9.891 0.218 9.891 c 1.558 9.891 2.527 9.564 3.361 8.758 c 2.158 7.569 l 1.543 8.156 0.806 8.238 0.163 8.238 c -0.848 8.238 -1.339 7.678 -1.339 7.009 c -1.339 6.763 -1.258 6.503 -1.052 6.312 c -0.861 6.133 -0.547 5.984 -0.151 5.929 c 0.997 5.766 l 1.885 5.643 2.445 5.397 2.854 5.014 c 3.374 4.523 3.606 3.812 3.606 2.951 c 3.606 1.067 2.034 0 0 0 c f Q q 1 0 0 1 -158.956 87.7844 cm 0.27 g /GS1 gs 0 0 m 0 0.614 l -0.48 0.136 -0.929 -0.069 -1.749 -0.069 c -2.555 -0.069 -3.143 0.136 -3.566 0.56 c -3.949 0.955 -4.154 1.529 -4.154 2.158 c -4.154 3.292 -3.375 4.221 -1.722 4.221 c -0.042 4.221 l -0.042 4.576 l -0.042 5.355 -0.424 5.697 -1.367 5.697 c -2.049 5.697 -2.364 5.533 -2.733 5.109 c -3.867 6.215 l -3.17 6.981 -2.487 7.199 -1.298 7.199 c 0.696 7.199 1.735 6.352 1.735 4.686 c 1.735 0 l h -0.042 3.004 m -1.449 3.004 l -2.09 3.004 -2.445 2.705 -2.445 2.199 c -2.445 1.707 -2.118 1.38 -1.422 1.38 c -0.929 1.38 -0.615 1.421 -0.302 1.721 c -0.109 1.898 -0.042 2.186 -0.042 2.622 c h f Q q 1 0 0 1 -153.5167 93.3447 cm 0.27 g /GS1 gs 0 0 m 0 -5.56 l -1.776 -5.56 l -1.776 0 l -2.513 0 l -2.513 1.352 l -1.776 1.352 l -1.776 2.239 l -1.776 3.251 -1.147 4.275 0.3 4.275 c 1.311 4.275 l 1.311 2.773 l 0.615 2.773 l 0.191 2.773 0 2.541 0 2.13 c 0 1.352 l 1.311 1.352 l 1.311 0 l h f Q q 1 0 0 1 -147.4114 87.7844 cm 0.27 g /GS1 gs 0 0 m 0 0.614 l -0.477 0.136 -0.929 -0.069 -1.749 -0.069 c -2.555 -0.069 -3.143 0.136 -3.566 0.56 c -3.949 0.955 -4.154 1.529 -4.154 2.158 c -4.154 3.292 -3.375 4.221 -1.722 4.221 c -0.041 4.221 l -0.041 4.576 l -0.041 5.355 -0.424 5.697 -1.366 5.697 c -2.049 5.697 -2.364 5.533 -2.733 5.109 c -3.867 6.215 l -3.17 6.981 -2.486 7.199 -1.297 7.199 c 0.697 7.199 1.735 6.352 1.735 4.686 c 1.735 0 l h -0.041 3.004 m -1.449 3.004 l -2.09 3.004 -2.446 2.705 -2.446 2.199 c -2.446 1.707 -2.118 1.38 -1.421 1.38 c -0.929 1.38 -0.615 1.421 -0.302 1.721 c -0.109 1.898 -0.041 2.186 -0.041 2.622 c h f Q q 1 0 0 1 -140.3021 92.9617 cm 0.27 g /GS1 gs 0 0 m -0.274 0.273 -0.505 0.424 -0.942 0.424 c -1.489 0.424 -2.091 0.013 -2.091 -0.888 c -2.091 -5.177 l -3.867 -5.177 l -3.867 1.94 l -2.132 1.94 l -2.132 1.256 l -1.791 1.666 -1.107 2.022 -0.341 2.022 c 0.355 2.022 0.847 1.844 1.338 1.352 c h f Q q 1 0 0 1 -136.5759 96.2265 cm 0.789 g /GS1 gs 0 0 m -0.395 -0.395 -1.037 -0.395 -1.431 0.001 c -1.827 0.396 -1.827 1.036 -1.431 1.434 c -1.037 1.829 -0.395 1.829 0 1.434 c 0.396 1.036 0.396 0.396 0 0 c f Q q 1 0 0 1 -133.6833 96.2265 cm 0.789 g /GS1 gs 0 0 m -0.395 -0.395 -1.037 -0.395 -1.431 0.001 c -1.827 0.396 -1.827 1.036 -1.431 1.434 c -1.037 1.829 -0.395 1.829 0 1.434 c 0.395 1.036 0.395 0.396 0 0 c f Q q 1 0 0 1 -133.0792 98.681 cm 0.789 g /GS1 gs 0 0 m 1.17 -1.171 1.737 -1.737 v 1.17 -2.305 0 -3.474 y 0.899 -4.374 l 3.536 -1.737 l 0.899 0.898 l h f Q q 1 0 0 1 -135.353 88.8619 cm 0.27 g /GS1 gs 0 0 m 0.293 0 0.524 -0.237 0.524 -0.534 c 0.524 -0.836 0.291 -1.071 -0.003 -1.07 c -0.296 -1.07 -0.532 -0.835 -0.532 -0.533 c -0.531 -0.236 -0.294 0.001 -0.002 0 c h -0.002 -0.083 m -0.236 -0.083 -0.429 -0.284 -0.43 -0.533 c -0.43 -0.788 -0.238 -0.986 -0.001 -0.987 c 0.236 -0.99 0.426 -0.789 0.427 -0.538 c 0.427 -0.285 0.237 -0.083 0 -0.083 c h -0.103 -0.844 m -0.197 -0.844 l -0.197 -0.249 l -0.029 -0.235 l 0.061 -0.235 0.121 -0.254 0.157 -0.28 c 0.211 -0.403 l 0.094 -0.548 l 0.094 -0.553 l 0.194 -0.697 l 0.207 -0.791 0.222 -0.826 0.232 -0.846 c 0.132 -0.844 l 0.091 -0.693 l -0.036 -0.588 l -0.103 -0.588 l h -0.103 -0.515 m -0.033 -0.515 l 0.112 -0.413 l 0.112 -0.361 0.073 -0.308 -0.033 -0.308 c -0.102 -0.313 l h f Q q 1 0 0 1 -341.4562 88.3013 cm /GS2 gs 0 0 m -1.364 0 l -0.676 1.597 l h 0.077 -0.216 m 0.293 -0.711 l 0.341 -0.832 0.437 -1.034 0.437 -1.166 c 0.437 -1.376 0.288 -1.424 0.03 -1.436 c 0.03 -1.543 l 1.591 -1.543 l 1.591 -1.436 l 1.148 -1.417 1.034 -1.083 0.885 -0.723 c -0.46 2.507 l -0.569 2.507 l -1.992 -0.832 l -2.172 -1.25 -2.297 -1.406 -2.609 -1.436 c -2.609 -1.543 l -1.364 -1.543 l -1.364 -1.436 l -1.585 -1.417 -1.824 -1.394 -1.824 -1.173 c -1.824 -1.059 -1.74 -0.873 -1.693 -0.771 c -1.454 -0.216 l h f Q q 1 0 0 1 -337.724 87.2666 cm /GS2 gs 0 0 m -0.137 -0.149 -0.305 -0.269 -0.514 -0.269 c -0.969 -0.269 -1.334 0.209 -1.334 0.939 c -1.334 1.872 -0.837 2.07 -0.622 2.07 c -0.216 2.07 0 1.663 0 1.304 c h 0 2.022 m -0.156 2.184 -0.377 2.249 -0.592 2.249 c -1.369 2.249 -1.878 1.441 -1.878 0.73 c -1.878 0.102 -1.496 -0.592 -0.795 -0.592 c -0.46 -0.592 -0.227 -0.443 0 -0.209 c 0 -0.592 l 0.132 -0.592 l 0.939 -0.263 l 0.897 -0.162 l 0.694 -0.209 l 0.611 -0.209 0.485 -0.209 0.485 0.197 c 0.485 3.643 l 0.353 3.643 l -0.455 3.313 l -0.413 3.213 l -0.209 3.26 l -0.126 3.26 0 3.26 0 2.853 c h f Q q 1 0 0 1 -334.7332 87.2666 cm /GS2 gs 0 0 m -0.137 -0.149 -0.305 -0.269 -0.514 -0.269 c -0.969 -0.269 -1.334 0.209 -1.334 0.939 c -1.334 1.872 -0.837 2.07 -0.622 2.07 c -0.216 2.07 0 1.663 0 1.304 c h 0 2.022 m -0.156 2.184 -0.377 2.249 -0.592 2.249 c -1.369 2.249 -1.878 1.441 -1.878 0.73 c -1.878 0.102 -1.496 -0.592 -0.795 -0.592 c -0.46 -0.592 -0.227 -0.443 0 -0.209 c 0 -0.592 l 0.132 -0.592 l 0.939 -0.263 l 0.897 -0.162 l 0.694 -0.209 l 0.611 -0.209 0.485 -0.209 0.485 0.197 c 0.485 3.643 l 0.353 3.643 l -0.455 3.313 l -0.413 3.213 l -0.209 3.26 l -0.126 3.26 0 3.26 0 2.853 c h f Q q 1 0 0 1 -332.7234 87.2666 cm /GS2 gs 0 0 m 0 -0.353 0.137 -0.395 0.413 -0.4 c 0.413 -0.509 l -0.897 -0.509 l -0.897 -0.4 l -0.622 -0.395 -0.485 -0.353 -0.485 0 c -0.485 1.459 l -0.485 1.866 -0.611 1.866 -0.694 1.866 c -0.897 1.819 l -0.939 1.92 l -0.132 2.249 l 0 2.249 l h -0.246 3.643 m -0.084 3.643 0.048 3.511 0.048 3.35 c 0.048 3.188 -0.084 3.057 -0.246 3.057 c -0.407 3.057 -0.539 3.188 -0.539 3.35 c -0.539 3.511 -0.407 3.643 -0.246 3.643 c f Q q 1 0 0 1 -330.2292 88.6004 cm /GS2 gs 0 0 m -0.107 0 l -0.197 0.401 -0.358 0.736 -0.825 0.736 c -1.041 0.736 -1.28 0.616 -1.28 0.371 c -1.28 -0.281 0.197 -0.197 0.197 -1.125 c 0.197 -1.615 -0.263 -1.926 -0.718 -1.926 c -0.892 -1.926 -1.083 -1.884 -1.256 -1.836 c -1.406 -1.806 l -1.513 -1.884 l -1.621 -1.884 l -1.621 -0.927 l -1.513 -0.927 l -1.459 -1.346 -1.143 -1.747 -0.694 -1.747 c -0.449 -1.747 -0.233 -1.603 -0.233 -1.34 c -0.233 -0.64 -1.627 -0.736 -1.627 0.114 c -1.627 0.604 -1.274 0.915 -0.795 0.915 c -0.67 0.915 -0.574 0.885 -0.455 0.85 c -0.233 0.802 l -0.107 0.915 l 0 0.915 l h f Q q 1 0 0 1 -328.4348 89.3121 cm /GS2 gs 0 0 m 0.664 0 0.843 -0.885 0.843 -1.406 c 0.843 -1.824 0.741 -2.435 0.197 -2.435 c -0.467 -2.435 -0.652 -1.501 -0.652 -0.987 c -0.652 -0.221 -0.293 0 0 0 c 0.102 0.204 m -0.682 0.204 -1.196 -0.509 -1.196 -1.244 c -1.196 -1.961 -0.7 -2.637 0.06 -2.637 c 1.004 -2.637 1.387 -1.77 1.387 -1.155 c 1.387 -0.425 0.85 0.204 0.102 0.204 c f Q q 1 0 0 1 -325.8748 88.9533 cm /GS2 gs 0 0 m 0.335 0.371 0.569 0.562 0.909 0.562 c 1.394 0.562 1.585 0.107 1.585 -0.341 c 1.585 -1.687 l 1.585 -2.04 1.723 -2.082 1.998 -2.088 c 1.998 -2.195 l 0.688 -2.195 l 0.688 -2.088 l 0.964 -2.082 1.101 -2.04 1.101 -1.687 c 1.101 -0.449 l 1.101 0.144 0.855 0.204 0.676 0.204 c 0.401 0.204 0.197 0.024 0 -0.179 c 0 -1.687 l 0 -2.04 0.137 -2.082 0.413 -2.088 c 0.413 -2.195 l -0.897 -2.195 l -0.897 -2.088 l -0.622 -2.082 -0.485 -2.04 -0.485 -1.687 c -0.485 -0.227 l -0.485 0.179 -0.611 0.179 -0.694 0.179 c -0.897 0.132 l -0.939 0.233 l -0.132 0.562 l 0 0.562 l h f Q q 1 0 0 1 -337.9788 83.3662 cm /GS2 gs 0 0 m 0.048 0.137 0.144 0.401 0.144 0.539 c 0.144 0.766 -0.024 0.82 -0.293 0.82 c -0.293 0.927 l 0.892 0.927 l 0.892 0.82 l 0.497 0.82 0.413 0.49 0.305 0.174 c -0.832 -3.122 l -0.945 -3.122 l -1.842 -0.611 l -1.854 -0.611 l -2.734 -3.122 l -2.853 -3.122 l -4.073 0.293 l -4.205 0.67 -4.265 0.82 -4.624 0.82 c -4.624 0.927 l -3.158 0.927 l -3.158 0.82 l -3.374 0.82 -3.547 0.771 -3.547 0.569 c -3.547 0.472 -3.487 0.317 -3.457 0.227 c -2.649 -2.075 l -2.637 -2.075 l -1.98 -0.227 l -2.142 0.216 l -2.267 0.55 -2.356 0.82 -2.751 0.82 c -2.751 0.927 l -1.202 0.927 l -1.202 0.82 l -1.454 0.82 -1.627 0.802 -1.627 0.55 c -1.627 0.377 -1.531 0.132 -1.471 -0.03 c -0.741 -2.075 l -0.73 -2.075 l h f Q q 1 0 0 1 -336.8892 82.1759 cm /GS2 gs 0 0 m 0.024 0.347 0.275 0.7 0.628 0.7 c 1.053 0.7 1.238 0.371 1.238 0 c h 1.848 -0.179 m 1.848 0.467 1.441 0.915 0.825 0.915 c -0.024 0.915 -0.413 0.221 -0.413 -0.55 c -0.413 -1.37 0.102 -1.926 0.753 -1.926 c 1.357 -1.926 1.747 -1.417 1.848 -0.867 c 1.759 -0.808 l 1.621 -1.196 1.387 -1.447 0.957 -1.447 c 0.305 -1.447 -0.006 -0.778 -0.006 -0.179 c h f Q q 1 0 0 1 -332.9177 82.1759 cm /GS2 gs 0 0 m -0.107 0 l -0.197 0.401 -0.358 0.736 -0.825 0.736 c -1.041 0.736 -1.28 0.616 -1.28 0.371 c -1.28 -0.281 0.197 -0.197 0.197 -1.125 c 0.197 -1.615 -0.263 -1.926 -0.718 -1.926 c -0.892 -1.926 -1.083 -1.884 -1.257 -1.836 c -1.406 -1.806 l -1.513 -1.884 l -1.621 -1.884 l -1.621 -0.927 l -1.513 -0.927 l -1.459 -1.346 -1.143 -1.747 -0.694 -1.747 c -0.449 -1.747 -0.233 -1.603 -0.233 -1.34 c -0.233 -0.64 -1.627 -0.736 -1.627 0.114 c -1.627 0.604 -1.274 0.915 -0.795 0.915 c -0.67 0.915 -0.574 0.885 -0.455 0.85 c -0.233 0.802 l -0.107 0.915 l 0 0.915 l h f Q q 1 0 0 1 -331.4224 80.8421 cm /GS2 gs 0 0 m 0 -0.353 0.137 -0.395 0.413 -0.4 c 0.413 -0.509 l -0.897 -0.509 l -0.897 -0.4 l -0.622 -0.395 -0.485 -0.353 -0.485 0 c -0.485 2.853 l -0.485 3.26 -0.611 3.26 -0.694 3.26 c -0.897 3.213 l -0.939 3.313 l -0.132 3.643 l 0 3.643 l h f Q q 1 0 0 1 -330.244 82.1759 cm /GS2 gs 0 0 m 0.024 0.347 0.275 0.7 0.628 0.7 c 1.053 0.7 1.238 0.371 1.238 0 c h 1.849 -0.179 m 1.849 0.467 1.442 0.915 0.825 0.915 c -0.024 0.915 -0.413 0.221 -0.413 -0.55 c -0.413 -1.37 0.102 -1.926 0.753 -1.926 c 1.357 -1.926 1.747 -1.417 1.849 -0.867 c 1.759 -0.808 l 1.621 -1.196 1.387 -1.447 0.957 -1.447 c 0.305 -1.447 -0.006 -0.778 -0.006 -0.179 c h f Q q 1 0 0 1 -327.7553 82.3913 cm /GS2 gs 0 0 m -0.102 0.221 -0.239 0.479 -0.502 0.509 c -0.502 0.616 l 0.741 0.616 l 0.741 0.509 l 0.556 0.509 0.418 0.485 0.418 0.293 c 0.418 0.191 0.502 0.024 0.544 -0.072 c 1.166 -1.352 l 1.735 0.054 l 1.777 0.162 1.812 0.246 1.812 0.358 c 1.812 0.497 1.705 0.509 1.543 0.509 c 1.543 0.616 l 2.416 0.616 l 2.416 0.509 l 2.225 0.509 2.123 0.358 2.058 0.197 c 0.915 -2.602 l 0.682 -3.176 0.246 -3.35 0.035 -3.35 c -0.161 -3.35 -0.365 -3.23 -0.365 -3.015 c -0.365 -2.835 -0.221 -2.751 -0.06 -2.751 c 0.137 -2.751 0.233 -2.86 0.335 -2.86 c 0.574 -2.86 0.7 -2.524 0.771 -2.351 c 0.934 -1.95 l h f Q BT /GS2 gs /TT0 1 Tf -0.025 Tc 0.079 Tw 9.657 0 0 9.657 -294.746 149.6387 Tm [(M)-20(a)-17(k)-2(e s)-14(u)-17(r)-20(e t)-16(o co)-15(n)-20(n)-20(e)-21(c)-28(t w)-21(i)-17(t)-23(h u)-20(s)-4(!)]TJ 0 Tc 0 Tw 12 0 Td ( )Tj 0.027 Tc -0.027 Tw -12 -1.222 Td [(i)-16(n)-16(f)-6(o)-15(r)-32(m)-19(i)-17(t)-36(.co)-14(m/)67(s)-10(o)-15(c)-6(i)-16(a)-19(l)-17(co)-15(n)-20(n)-20(e)-21(c)-28(t)]TJ ET q 1 0 0 1 -441.5073 677.217 cm 0.291 g /GS1 gs 0 0 m -19.874 0 -19.874 -19.874 v -19.874 -57.942 l 429.28 -57.942 l 429.28 -19.874 l 429.28 0 409.406 0 v h f Q BT 1 g /GS1 gs /TT0 1 Tf 0.01 Tc 0 Tw 25.752 0 0 25.752 -347.9612 654.3553 Tm [(T)-2(h)-4(e A)8(ddi)-1(s)7(o)2(n)-12(-)31(W)50(e)-6(s)1(l)-1(e)13(y)]TJ -1.93 -1.021 Td [(P)1(ro)9(f)5(e)-6(s)2(s)3(i)4(o)2(n)-2(a)-3(l C)5(o)2(m)-4(p)-2(u)-2(t)-7(in)1(g S)-9(e)-7(r)-17(ie)-6(s)10( )-10( )]TJ ET Q 0.291 g /GS1 gs 33 24 0.591 38.065 re f q 33 24 0.591 675 re W n q 1 0 0 1 -8.8086 54.1004 cm 1 g 0 0 m -2.782 0 -5.132 -2.38 -5.132 -5.198 c -5.132 -8.401 -2.954 -10.727 0.042 -10.727 c 2.871 -10.727 5.171 -8.247 5.171 -5.198 c 5.171 -2.332 2.851 0 0 0 c 0.042 -9.419 m -2.35 -9.419 -3.219 -6.923 -3.219 -5.248 c -3.219 -3.724 -2.345 -1.311 0 -1.311 c 2.25 -1.311 3.26 -3.583 3.26 -5.198 c 3.26 -7.295 2.156 -9.419 0.042 -9.419 c -48.731 -0.001 m -46.916 -0.001 -44.974 -0.807 -44.974 -3.071 c -44.974 -5.256 -47.107 -6.567 -49.327 -6.569 c -49.334 -6.206 -49.34 -5.831 -49.344 -5.455 c -47.665 -5.326 -46.763 -4.512 -46.763 -3.166 c -46.763 -2.01 -47.7 -1.2 -49.047 -1.2 c -50.132 -1.2 l -50.134 -4.568 -50.065 -9.411 -49.932 -10.614 c -50.653 -10.469 -51.249 -10.465 -51.992 -10.614 c -51.823 -9.148 -51.71 -1.382 -52.003 0.002 c -50.638 -0.045 -50.338 -0.045 v -49.983 -0.003 -49.1 -0.001 -48.731 -0.001 c -31.329 -0.077 m -31.854 -2.138 -34.056 -8.089 -35.117 -10.616 c -34.423 -10.519 -33.688 -10.541 -33.351 -10.597 c -32.999 -9.463 -32.617 -8.114 -32.449 -7.608 c -31.351 -7.528 -30.052 -7.528 -28.745 -7.608 c -28.35 -8.668 -28.117 -9.419 -27.757 -10.593 c -27.08 -10.528 -26.389 -10.536 -25.657 -10.601 c -26.708 -8.075 -29.151 -1.568 -29.541 -0.076 c -30.072 -0.141 -30.751 -0.141 -31.329 -0.077 c -32.029 -6.191 m -31.017 -3.193 -30.678 -2.16 v -29.633 -5.122 -29.263 -6.191 v -30.382 -6.305 -30.949 -6.305 -32.029 -6.191 c -40.8 -9.276 m -39.692 -9.324 -37.046 -9.168 y -37.039 -10.305 -37.114 -10.644 y -38.101 -10.512 -41.071 -10.449 -42.681 -10.644 c -42.446 -8.075 -42.525 -2.778 -42.671 -0.031 c -41.185 -0.156 -38.34 -0.132 -37.138 -0.031 c -37.138 -1.515 l -38.169 -1.417 -39.81 -1.318 -40.747 -1.349 c -40.786 -3.807 -40.757 -4.436 v -39.082 -4.555 -37.852 -4.356 -37.324 -4.318 c -37.324 -5.798 l -39.269 -5.607 -40.751 -5.72 v -40.8 -6.711 -40.8 -8.177 -40.8 -9.276 c 16.119 -10.384 m 16.158 -10.603 l 15.699 -10.533 15 -10.521 14.562 -10.591 c 13.727 -9.358 10.425 -4.842 9.119 -3.157 c 9.072 -5.623 9.042 -9.352 9.195 -10.581 c 8.997 -10.587 8.703 -10.57 8.554 -10.57 c 8.11 -10.57 7.91 -10.549 7.513 -10.603 c 7.73 -9.329 7.782 -1.474 7.513 -0.091 c 8.147 -0.104 8.668 -0.114 8.835 -0.101 c 8.985 -0.091 9.086 -0.077 y 12.637 -4.839 14.492 -7.329 v 14.51 -6.388 14.596 -1.658 14.418 -0.054 c 14.667 -0.089 14.976 -0.179 15.284 -0.174 c 15.566 -0.168 15.871 -0.101 16.149 -0.05 c 15.895 -2.055 15.804 -8.884 16.119 -10.384 c -16.801 -2.84 m -16.801 -4.541 -17.95 -5.521 -19.057 -5.738 c -18.253 -6.77 -15.348 -10.619 y -16.081 -10.509 -17.157 -10.528 -17.696 -10.592 c -18.622 -9.145 -20.185 -6.906 -20.784 -6.182 c -20.796 -5.766 -20.8 -5.449 -20.808 -5.04 c -19.008 -5.079 -18.627 -3.881 -18.627 -3.032 c -18.627 -1.902 -19.654 -1.311 -20.668 -1.311 c -21.549 -1.311 l -21.624 -3.33 -21.48 -8.29 -21.392 -10.597 c -22.094 -10.524 -22.87 -10.536 -23.429 -10.597 c -23.192 -8.906 -23.234 -1.209 -23.429 -0.034 c -22.318 -0.119 -21.837 -0.091 v -21.401 -0.068 -20.994 -0.045 -20.483 -0.045 c -19.375 -0.045 -16.801 -0.317 -16.801 -2.84 c -9.327 -4.597 m -8.169 -5.335 -7.286 -6.024 -7.286 -7.597 c -7.286 -9.866 -9.06 -10.671 -10.583 -10.671 c -11.837 -10.671 -13.167 -10.01 -13.782 -9.535 c -13.552 -9.079 -13.311 -8.61 -13.132 -7.965 c -12.45 -8.73 -11.397 -9.27 -10.675 -9.27 c -9.724 -9.27 -9.151 -8.75 -9.151 -7.878 c -9.113 -7.223 -9.583 -6.761 -10.171 -6.268 c -10.601 -5.912 -11.688 -5.208 -11.948 -4.998 c -12.804 -4.3 -13.33 -3.715 -13.33 -2.602 c -13.33 -1.118 -12.012 0 -10.262 0 c -9.367 0 -8.529 -0.267 -7.506 -0.951 c -7.757 -1.332 -8.108 -1.917 -8.29 -2.456 c -8.701 -1.899 -9.333 -1.311 -10.209 -1.311 c -11.038 -1.311 -11.553 -1.792 -11.553 -2.562 c -11.553 -2.814 -11.371 -3.102 -10.995 -3.438 c -10.622 -3.759 -10.107 -4.119 -9.327 -4.597 c f Q q 1 0 0 1 -479.8089 51.3455 cm 1 g 0 0 m 0.498 0 l 2.729 -5.003 l 2 -5.003 l 1.336 -3.528 l -0.783 -3.528 l -1.406 -5.003 l -2.136 -5.003 l h 1.046 -2.898 m 0.245 -1.092 l -0.501 -2.898 l h 4.439 -0.028 m 5.151 -0.028 l 5.151 -4.353 l 7.393 -4.353 l 7.393 -5.003 l 4.439 -5.003 l h 15.073 -0.028 m 15.785 -0.028 l 13.776 -5.024 l 13.618 -5.024 l 11.993 -0.979 l 10.351 -5.024 l 10.197 -5.024 l 8.194 -0.028 l 8.91 -0.028 l 10.279 -3.456 l 11.662 -0.028 l 12.334 -0.028 l 13.721 -3.456 l h 18.8 0 m 19.3 0 l 21.529 -5.003 l 20.801 -5.003 l 20.14 -3.528 l 18.017 -3.528 l 17.395 -5.003 l 16.664 -5.003 l h 19.846 -2.898 m 19.043 -1.092 l 18.297 -2.898 l h 25.723 -0.028 m 26.585 -0.028 l 24.748 -2.371 l 24.748 -5.003 l 24.02 -5.003 l 24.02 -2.371 l 22.183 -0.028 l 23.043 -0.028 l 24.372 -1.743 l h 29.68 -2.921 m 29.137 -2.591 l 28.797 -2.384 28.557 -2.18 28.413 -1.982 c 28.269 -1.78 28.197 -1.549 28.197 -1.289 c 28.197 -0.891 28.333 -0.579 28.603 -0.333 c 28.874 -0.088 29.23 0.033 29.664 0.033 c 30.079 0.033 30.459 -0.086 30.808 -0.315 c 30.808 -1.123 l 30.447 -0.781 30.062 -0.606 29.65 -0.606 c 29.416 -0.606 29.226 -0.659 29.075 -0.767 c 28.926 -0.873 28.852 -1.014 28.852 -1.177 c 28.852 -1.329 28.906 -1.469 29.016 -1.598 c 29.129 -1.728 29.304 -1.868 29.548 -2.009 c 30.091 -2.331 l 30.697 -2.693 31.001 -3.152 31.001 -3.71 c 31.001 -4.109 30.87 -4.436 30.604 -4.684 c 30.337 -4.936 29.987 -5.06 29.56 -5.06 c 29.07 -5.06 28.621 -4.909 28.219 -4.609 c 28.219 -3.703 l 28.603 -4.188 29.047 -4.431 29.555 -4.431 c 29.777 -4.431 29.964 -4.369 30.111 -4.246 c 30.26 -4.124 30.334 -3.967 30.334 -3.779 c 30.334 -3.477 30.113 -3.19 29.68 -2.921 c 36.726 -0.028 m 37.438 -0.028 l 37.438 -4.353 l 39.677 -4.353 l 39.677 -5.003 l 36.726 -5.003 l h 41.758 -0.028 m 44.577 -0.028 l 44.577 -0.661 l 42.469 -0.661 l 42.469 -2.18 l 44.506 -2.18 l 44.506 -2.816 l 42.469 -2.816 l 42.469 -4.362 l 44.645 -4.362 l 44.645 -4.994 l 41.758 -4.994 l h 48.595 0 m 49.096 0 l 51.325 -5.003 l 50.599 -5.003 l 49.933 -3.528 l 47.811 -3.528 l 47.189 -5.003 l 46.459 -5.003 l h 49.641 -2.898 m 48.839 -1.092 l 48.095 -2.898 l h 53.35 -5.003 m 53.35 -0.028 l 54.595 -0.028 l 55.097 -0.028 55.498 -0.155 55.793 -0.405 c 56.088 -0.652 56.236 -0.99 56.236 -1.414 c 56.236 -1.706 56.164 -1.952 56.018 -2.162 c 55.873 -2.379 55.666 -2.534 55.396 -2.64 c 55.555 -2.74 55.709 -2.886 55.863 -3.067 c 56.016 -3.247 56.228 -3.561 56.502 -4.006 c 56.675 -4.289 56.816 -4.503 56.918 -4.648 c 57.183 -5.003 l 56.336 -5.003 l 56.12 -4.674 l 56.075 -4.614 l 55.938 -4.419 l 55.718 -4.053 l 55.482 -3.666 l 55.332 -3.466 55.196 -3.301 55.073 -3.177 c 54.954 -3.057 54.841 -2.972 54.747 -2.921 c 54.646 -2.865 54.48 -2.838 54.247 -2.838 c 54.062 -2.838 l 54.062 -5.003 l h 54.276 -0.633 m 54.062 -0.633 l 54.062 -2.206 l 54.333 -2.206 l 54.692 -2.206 54.94 -2.176 55.073 -2.114 c 55.209 -2.049 55.311 -1.958 55.387 -1.831 c 55.462 -1.708 55.501 -1.567 55.501 -1.408 c 55.501 -1.249 55.459 -1.109 55.375 -0.986 c 55.291 -0.854 55.175 -0.767 55.024 -0.712 c 54.871 -0.661 54.624 -0.633 54.276 -0.633 c 63.139 -0.028 m 63.815 -0.028 l 63.815 -5.003 l 63.205 -5.003 l 59.88 -1.172 l 59.88 -5.003 l 59.211 -5.003 l 59.211 -0.028 l 59.788 -0.028 l 63.139 -3.894 l h 66.347 -0.028 0.711 -4.973 re 73.57 -0.028 m 74.247 -0.028 l 74.247 -5.003 l 73.636 -5.003 l 70.308 -1.172 l 70.308 -5.003 l 69.639 -5.003 l 69.639 -0.028 l 70.216 -0.028 l 73.57 -3.894 l h 79.023 -2.551 m 80.691 -2.551 l 80.691 -4.66 l 80.079 -4.926 79.471 -5.06 78.871 -5.06 c 78.047 -5.06 77.387 -4.822 76.894 -4.337 c 76.404 -3.86 76.154 -3.267 76.154 -2.56 c 76.154 -1.819 76.41 -1.197 76.922 -0.707 c 77.434 -0.215 78.07 0.033 78.842 0.033 c 79.119 0.033 79.385 0.002 79.639 -0.055 c 79.89 -0.12 80.208 -0.225 80.592 -0.393 c 80.592 -1.116 l 79.999 -0.769 79.411 -0.599 78.825 -0.599 c 78.283 -0.599 77.826 -0.784 77.452 -1.156 c 77.077 -1.524 76.894 -1.982 76.894 -2.517 c 76.894 -3.082 77.077 -3.543 77.452 -3.899 c 77.826 -4.26 78.304 -4.441 78.889 -4.441 c 79.174 -4.441 79.515 -4.375 79.912 -4.246 c 79.98 -4.225 l 79.98 -3.185 l 79.023 -3.185 l h f Q q 1 0 0 1 -513.638 723.1 cm 0.268 w 0 0 m -16.095 0 l 553.668 0 m 569.763 0 l 0 -704.961 m -16.095 -704.961 l 553.668 -704.961 m 569.763 -704.961 l 6.438 6.438 m 6.438 22.533 l 6.438 -711.399 m 6.438 -727.494 l 547.23 6.438 m 547.23 22.533 l 547.23 -711.399 m 547.23 -727.494 l S Q Q q 1 0 0 1 252.4841 151.4443 cm 0 g 0 0 m -5.7 0 l -2.876 4.956 l h f Q q 1 0 0 1 248.9255 150.416 cm 0 g 0 0 m -2.848 -4.938 l -5.73 -0.016 l h f Q q 1 0 0 1 255.7883 150.416 cm 0 g 0 0 m -2.848 -4.938 l -5.73 -0.016 l h f Q q 243.195 142.5 110.609 13.9 re W n q 1 0 0 1 263.8024 148.9819 cm 0 g 0 0 m 0.533 -1.228 l 0.651 -1.524 0.888 -2.028 0.888 -2.353 c 0.888 -2.871 0.519 -2.99 -0.118 -3.019 c -0.118 -3.286 l 3.745 -3.286 l 3.745 -3.019 l 2.649 -2.975 2.368 -2.146 1.998 -1.258 c -1.332 6.734 l -1.598 6.734 l -5.12 -1.524 l -5.564 -2.56 -5.875 -2.945 -6.645 -3.019 c -6.645 -3.286 l -3.566 -3.286 l -3.566 -3.019 l -4.114 -2.975 -4.706 -2.916 -4.706 -2.368 c -4.706 -2.086 -4.499 -1.628 -4.381 -1.376 c -3.788 0 l h -0.192 0.533 m -3.566 0.533 l -1.864 4.484 l h f Q q 1 0 0 1 272.8455 151.957 cm 0 g 0 0 m -0.385 0.399 -0.933 0.562 -1.465 0.562 c -3.39 0.562 -4.648 -1.436 -4.648 -3.197 c -4.648 -4.751 -3.7 -6.468 -1.969 -6.468 c -1.14 -6.468 -0.563 -6.098 0 -5.52 c 0 -6.468 l 0.325 -6.468 l 2.323 -5.654 l 2.22 -5.402 l 2.072 -5.461 1.879 -5.52 1.717 -5.52 c 1.51 -5.52 1.199 -5.52 1.199 -4.514 c 1.199 4.011 l 0.873 4.011 l -1.125 3.196 l -1.022 2.945 l -0.873 3.004 -0.681 3.064 -0.518 3.064 c -0.311 3.064 0 3.064 0 2.057 c h 0 -5.003 m -0.341 -5.373 -0.755 -5.669 -1.273 -5.669 c -2.398 -5.669 -3.301 -4.484 -3.301 -2.679 c -3.301 -0.37 -2.072 0.118 -1.539 0.118 c -0.533 0.118 0 -0.889 0 -1.776 c h f Q q 1 0 0 1 280.2453 151.957 cm 0 g 0 0 m -0.385 0.399 -0.932 0.562 -1.465 0.562 c -3.389 0.562 -4.647 -1.436 -4.647 -3.197 c -4.647 -4.751 -3.7 -6.468 -1.968 -6.468 c -1.14 -6.468 -0.563 -6.098 0 -5.52 c 0 -6.468 l 0.326 -6.468 l 2.324 -5.654 l 2.22 -5.402 l 2.072 -5.461 1.879 -5.52 1.717 -5.52 c 1.509 -5.52 1.199 -5.52 1.199 -4.514 c 1.199 4.011 l 0.874 4.011 l -1.124 3.196 l -1.021 2.945 l -0.873 3.004 -0.681 3.064 -0.518 3.064 c -0.311 3.064 0 3.064 0 2.057 c h 0 -5.003 m -0.34 -5.373 -0.755 -5.669 -1.273 -5.669 c -2.398 -5.669 -3.3 -4.484 -3.3 -2.679 c -3.3 -0.37 -2.072 0.118 -1.539 0.118 c -0.533 0.118 0 -0.889 0 -1.776 c h f Q q 1 0 0 1 284.6111 155.9678 cm 0 g 0 0 m 0.4 0 0.726 -0.326 0.726 -0.726 c 0.726 -1.125 0.4 -1.451 0 -1.451 c -0.399 -1.451 -0.725 -1.125 -0.725 -0.726 c -0.725 -0.326 -0.399 0 0 0 c 0.607 -9.014 m 0.607 -9.887 0.947 -9.99 1.628 -10.005 c 1.628 -10.272 l -1.613 -10.272 l -1.613 -10.005 l -0.932 -9.99 -0.592 -9.887 -0.592 -9.014 c -0.592 -5.402 l -0.592 -4.396 -0.902 -4.396 -1.109 -4.396 c -1.272 -4.396 -1.465 -4.455 -1.613 -4.514 c -1.717 -4.263 l 0.281 -3.449 l 0.607 -3.449 l h f Q q 1 0 0 1 291.3893 150.2549 cm 0 g 0 0 m -0.266 0 l -0.488 0.991 -0.888 1.82 -2.042 1.82 c -2.575 1.82 -3.167 1.524 -3.167 0.918 c -3.167 -0.696 0.489 -0.488 0.489 -2.782 c 0.489 -3.996 -0.651 -4.766 -1.775 -4.766 c -2.205 -4.766 -2.679 -4.662 -3.107 -4.544 c -3.196 -4.514 -3.374 -4.47 -3.478 -4.47 c -3.611 -4.47 -3.714 -4.544 -3.744 -4.662 c -4.011 -4.662 l -4.011 -2.294 l -3.744 -2.294 l -3.611 -3.33 -2.826 -4.322 -1.717 -4.322 c -1.109 -4.322 -0.577 -3.967 -0.577 -3.315 c -0.577 -1.584 -4.025 -1.82 -4.025 0.281 c -4.025 1.495 -3.152 2.264 -1.968 2.264 c -1.657 2.264 -1.42 2.19 -1.125 2.102 c -0.947 2.057 -0.754 1.983 -0.577 1.983 c -0.385 1.983 -0.325 2.102 -0.266 2.264 c 0 2.264 l h f Q q 1 0 0 1 296.0812 152.5191 cm 0 g 0 0 m -1.939 0 -3.211 -1.761 -3.211 -3.582 c -3.211 -5.357 -1.983 -7.03 -0.104 -7.03 c 2.235 -7.03 3.182 -4.884 3.182 -3.36 c 3.182 -1.554 1.85 0 0 0 c -0.251 -0.503 m 1.391 -0.503 1.836 -2.694 1.836 -3.981 c 1.836 -5.017 1.583 -6.527 0.237 -6.527 c -1.406 -6.527 -1.865 -4.218 -1.865 -2.945 c -1.865 -1.051 -0.977 -0.503 -0.251 -0.503 c f Q q 1 0 0 1 302.1638 151.1279 cm 0 g 0 0 m 0.829 0.918 1.406 1.391 2.25 1.391 c 3.448 1.391 3.922 0.267 3.922 -0.844 c 3.922 -4.174 l 3.922 -5.047 4.263 -5.15 4.943 -5.165 c 4.943 -5.432 l 1.702 -5.432 l 1.702 -5.165 l 2.383 -5.15 2.724 -5.047 2.724 -4.174 c 2.724 -1.11 l 2.724 0.355 2.117 0.503 1.673 0.503 c 0.992 0.503 0.488 0.06 0 -0.444 c 0 -4.174 l 0 -5.047 0.341 -5.15 1.021 -5.165 c 1.021 -5.432 l -2.22 -5.432 l -2.22 -5.165 l -1.539 -5.15 -1.198 -5.047 -1.198 -4.174 c -1.198 -0.563 l -1.198 0.444 -1.509 0.444 -1.717 0.444 c -1.879 0.444 -2.072 0.385 -2.22 0.326 c -2.323 0.577 l -0.325 1.391 l 0 1.391 l h f Q q 1 0 0 1 0 -0 cm 0 g 311.503 148.449 -3.744 1.14 re f Q q 1 0 0 1 322.5291 153.2002 cm 0 g 0 0 m 0.118 0.34 0.354 0.991 0.354 1.332 c 0.354 1.894 -0.06 2.027 -0.726 2.027 c -0.726 2.294 l 2.205 2.294 l 2.205 2.027 l 1.228 2.027 1.021 1.213 0.754 0.429 c -2.058 -7.726 l -2.339 -7.726 l -4.559 -1.51 l -4.588 -1.51 l -6.764 -7.726 l -7.06 -7.726 l -10.079 0.725 l -10.405 1.657 -10.553 2.027 -11.44 2.027 c -11.44 2.294 l -7.815 2.294 l -7.815 2.027 l -8.348 2.027 -8.776 1.909 -8.776 1.406 c -8.776 1.169 -8.629 0.784 -8.555 0.563 c -6.557 -5.136 l -6.527 -5.136 l -4.899 -0.563 l -5.299 0.532 l -5.609 1.361 -5.832 2.027 -6.809 2.027 c -6.809 2.294 l -2.975 2.294 l -2.975 2.027 l -3.597 2.027 -4.026 1.983 -4.026 1.361 c -4.026 0.932 -3.789 0.325 -3.641 -0.074 c -1.836 -5.136 l -1.806 -5.136 l h f Q q 1 0 0 1 329.7976 149.8106 cm 0 g 0 0 m 0 1.599 -1.006 2.708 -2.53 2.708 c -4.632 2.708 -5.594 0.992 -5.594 -0.917 c -5.594 -2.945 -4.321 -4.321 -2.708 -4.321 c -1.213 -4.321 -0.251 -3.063 0 -1.702 c -0.222 -1.554 l -0.563 -2.516 -1.14 -3.138 -2.205 -3.138 c -3.818 -3.138 -4.588 -1.479 -4.588 0 c h -4.573 0.444 m -4.514 1.303 -3.893 2.176 -3.019 2.176 c -1.968 2.176 -1.51 1.362 -1.51 0.444 c h f Q q 1 0 0 1 335.0515 150.2549 cm 0 g 0 0 m -0.267 0 l -0.488 0.991 -0.888 1.82 -2.042 1.82 c -2.575 1.82 -3.167 1.524 -3.167 0.918 c -3.167 -0.696 0.488 -0.488 0.488 -2.782 c 0.488 -3.996 -0.651 -4.766 -1.776 -4.766 c -2.205 -4.766 -2.679 -4.662 -3.108 -4.544 c -3.197 -4.514 -3.374 -4.47 -3.478 -4.47 c -3.611 -4.47 -3.715 -4.544 -3.744 -4.662 c -4.011 -4.662 l -4.011 -2.294 l -3.744 -2.294 l -3.611 -3.33 -2.827 -4.322 -1.717 -4.322 c -1.11 -4.322 -0.577 -3.967 -0.577 -3.315 c -0.577 -1.584 -4.025 -1.82 -4.025 0.281 c -4.025 1.495 -3.152 2.264 -1.968 2.264 c -1.657 2.264 -1.421 2.19 -1.125 2.102 c -0.947 2.057 -0.755 1.983 -0.577 1.983 c -0.385 1.983 -0.325 2.102 -0.267 2.264 c 0 2.264 l h f Q q 1 0 0 1 338.7517 146.9541 cm 0 g 0 0 m 0 -0.873 0.34 -0.977 1.021 -0.991 c 1.021 -1.258 l -2.22 -1.258 l -2.22 -0.991 l -1.54 -0.977 -1.199 -0.873 -1.199 0 c -1.199 7.06 l -1.199 8.066 -1.51 8.066 -1.717 8.066 c -1.88 8.066 -2.072 8.007 -2.22 7.948 c -2.324 8.199 l -0.326 9.014 l 0 9.014 l h f Q q 1 0 0 1 346.2396 149.8106 cm 0 g 0 0 m 0 1.599 -1.006 2.708 -2.53 2.708 c -4.631 2.708 -5.593 0.992 -5.593 -0.917 c -5.593 -2.945 -4.321 -4.321 -2.708 -4.321 c -1.213 -4.321 -0.251 -3.063 0 -1.702 c -0.221 -1.554 l -0.562 -2.516 -1.139 -3.138 -2.205 -3.138 c -3.818 -3.138 -4.588 -1.479 -4.588 0 c h -4.573 0.444 m -4.513 1.303 -3.892 2.176 -3.019 2.176 c -1.967 2.176 -1.509 1.362 -1.509 0.444 c h f Q q 1 0 0 1 347.8245 150.7876 cm 0 g 0 0 m -0.251 0.547 -0.591 1.184 -1.243 1.258 c -1.243 1.524 l 1.835 1.524 l 1.835 1.258 l 1.377 1.258 1.037 1.199 1.037 0.725 c 1.037 0.474 1.244 0.059 1.347 -0.178 c 2.887 -3.345 l 4.292 0.133 l 4.396 0.4 4.485 0.607 4.485 0.888 c 4.485 1.228 4.218 1.258 3.819 1.258 c 3.819 1.524 l 5.98 1.524 l 5.98 1.258 l 5.506 1.258 5.255 0.888 5.092 0.488 c 2.265 -6.438 l 1.688 -7.859 0.608 -8.288 0.089 -8.288 c -0.399 -8.288 -0.902 -7.992 -0.902 -7.46 c -0.902 -7.015 -0.546 -6.808 -0.147 -6.808 c 0.341 -6.808 0.578 -7.075 0.829 -7.075 c 1.421 -7.075 1.732 -6.246 1.91 -5.816 c 2.309 -4.825 l h f Q Q BT 0 g /GS0 gs /C0_0 1 Tf 0.004 Tw 11 0 0 11 142.3261 124.7733 Tm [<0031>36<00AB>7<00AB>-4<0069>2<00C000CA>-25<002D003E>17<0060>26<0060>-6<008F>14<006900CA>-25<002C>-17<0088>21<00DB>29<0069>2<00C0>70<005D00CA>-25<0020>-3<001B00CA>-25<005500CA>-25<0009>-1<009C>-3<00C3>12<00CC>11<009C>13<009800CA>-25<005500CA>-25<0016>-5<0098>12<0060>-6<0088>-3<003E>-9<0098>-6<003E>32<00AB>-3<009C>19<008F>-14<0088>-9<00C300CA>-25<005500CA>-25<002D003E>-9<009800CA>-25<0013>18<00C0>8<003E>-9<0098>12<0056>-10<0088>-9<00C3>-2<0056>5<009C>]TJ -0.027 Tw -1.405 -1.364 Td [<0020>27<0069>11<00DC00CA>-25<0039>88<009C>13<00C0>25<008E00CA>-25<005500CA>-25<002F>90<009C>13<00C0>3<009C>13<0098>22<00CC>11<009C00CA>-25<005500CA>-25<001F>21<009C>13<0098>22<00CC>-18<00C0>1<0069>-1<003E>-9<008F00CA>-25<005500CA>-25<001D>-2<009C>13<0098>12<0060>23<009C>13<009800CA>-25<005500CA>-25<001F>31<00D5>-14<0098>-17<0088>15<0056>-9<008500CA>-25<005500CA>-25<002A>35<003E>-9<00C0>-14<0088>-9<00C300CA>-25<005500CA>-25<001F>3<003E>17<0060>-6<00C0>-14<0088>15<0060>]TJ 0 Tw 3.192 -1.364 Td [<000A>2<003E>32<00AB>-4<0069>-3<00CC>11<009C>27<00DC>-17<009800CA>-25<005500CA>-25<002D>37<00DE>33<0060>-6<0098>12<0069>9<00DE00CA>-25<005500CA>-25<002F>90<009C>19<008E>-8<00DE>28<009C00CA>-25<005500CA>-25<002D>14<0088>-14<0098>13<007D>6<003E>32<00AB>-3<009C>13<00C0>1<006900CA>-25<005500CA>-25<001F>21<0069>1<00DD>-14<0088>15<0056>5<009C00CA>-25<000A>9<0088>24<00CC>-23<00DE>]TJ ET q 1 0 0 1 47.58 40.02 cm /GS3 gs /Fm1 Do Q endstream endobj 47802 0 obj <> endobj 47803 0 obj <>stream q /Fm0 Do Q BT 0.291 g /GS0 gs /TT0 1 Tf 0.01 Tc 0.183 Tw 12.876 0 0 12.876 91.399 351.2877 Tm [(T)-1(h)1(e A)9(dd)-1(i)-2(s)7(o)-1(n)-14(-)26(W)52(e)-7(s)2(le)12(y P)-5(r)10(o)2(f)7(e)-7(s)-2(s)2(i)3(o)-1(n)-7(a)-1(l C)2(o)-2(m)-3(p)1(u)-4(tin)2(g S)-8(e)-8(r)-4(i)3(e)-7(s)]TJ 0 g /GS1 gs /TT1 1 Tf 0.165 Tw [( w)-6(a)-16(s c)7(r)-8(e)-6(a)6(t)-7(e)-8(d i)-4(n 1)65(9)-3(9)-11(0 t)-4(o)10( )]TJ 0.137 Tw 0 -1.417 TD [(p)-3(r)-4(o)14(v)-9(i)-2(d)-4(e s)3(e)-11(r)-21(i)1(o)-3(u)-8(s p)-3(r)-4(o)1(g)-7(r)-24(a)-5(m)-8(m)-8(e)-11(r)-24(s a)-5(n)-6(d n)-8(e)-2(t)-30(w)12(o)-2(r)-21(k)-24(i)-4(n)-3(g p)-3(r)-4(o)5(f)1(e)-10(s)-1(si)1(o)-2(n)-6(a)-7(l)-8(s w)-9(i)-5(t)-11(h w)9(e)-10(l)-4(l)-12(-)2(w)-9(r)-21(i)-5(t)-27(t)-7(e)-11(n)10( )]TJ 0.117 Tw T* [(a)-5(n)-6(d p)-3(r)-24(ac)-16(t)-11(i)-1(c)-5(a)-7(l r)-8(e)-5(f)1(e)-11(r)-8(e)-11(n)-8(c)10(e b)-1(oo)-2(k)-28(s)-5(. T)-6(h)-8(e)-11(r)-8(e a)-5(r)-8(e f)1(e)5(w p)-4(l)-5(ac)10(e)-9(s t)-4(o t)-10(u)-5(r)-21(n f)7(o)-2(r ac)9(c)7(u)-5(r)-24(a)6(t)-7(e a)-5(n)-6(d)10( )]TJ 0.036 Tw T* [(a)-3(u)-6(t)-11(h)-4(o)-2(r)-21(i)-5(t)-22(a)6(t)-11(i)-9(v)9(e b)-1(oo)-2(k)-29(s o)-2(n c)7(u)-5(r)-21(r)-8(e)-11(nt a)-5(n)-6(d c)7(u)-6(t)-27(t)-11(i)-4(n)-3(g)-4(-)-20(e)-8(d)-1(g)3(e t)-7(e)-8(c)7(h)-8(n)-4(o)-3(l)-4(o)1(g)-38(y)55(. W)45(e h)-4(o)-2(p)-3(e t)-11(h)-6(a)6(t o)-3(u)-5(r)10( )]TJ 0.066 Tw T* [(b)-1(oo)-2(k)-29(s w)-9(i)-5(l)-4(l h)-8(e)-10(l)-4(p y)15(o)-3(u u)-5(n)-6(d)-4(e)-11(r)-24(s)-9(t)-22(a)-5(n)-6(d t)-11(h)-8(e s)-9(t)-22(a)6(t)-7(e o)5(f t)-11(h)-8(e a)-5(r)-48(t i)-4(n p)-3(r)-4(o)1(g)-7(r)-24(a)-5(m)-8(m)-7(i)-4(n)-3(g l)-5(a)-5(n)-3(g)-11(u)-5(a)-2(g)3(e)-10(s)-5(,)10( )]TJ 0 Tw T* [(o)-2(p)-3(e)-11(r)-24(a)6(t)-11(i)-4(n)-3(g s)-12(y)-3(s)-9(t)-7(e)-10(m)-8(s)-5(, a)-5(n)-6(d n)-8(e)-2(t)-30(w)12(o)-2(r)-21(k)-29(s)-5(.)10( )]TJ 0.291 g /GS0 gs /TT0 1 Tf 0 Tc 8.675 -2.417 Td [(C)2(o)-1(n)-2(s)4(u)2(l)-4(tin)3(g E)11(d)-1(i)-4(t)1(o)-2(r B)-19(r)-4(i)-7(a)-2(n W)64(. K)28(e)-8(r)-6(n)3(ig)-3(h)-7(a)-2(n)]TJ ET q 1 0 0 1 88.8302 377.8087 cm 0.509 G 1.073 w 4 M 0 0 m 410.731 0 l S Q BT 0 g /GS1 gs /TT1 1 Tf 0.01 Tc -0.01 Tw 12.876 0 0 12.876 163.8848 415.9174 Tm [(V)-3(i)-4(si)-5(t )]TJ 0.291 g /GS0 gs /TT0 1 Tf 0.023 Tc -0.023 Tw 2.01 0 Td [(i)-2(n)-2(f)7(o)-4(r)-9(mi)-6(t)-30(.)6(c)4(o)-4(m)-9(/)27(s)4(e)-10(r)-6(i)1(e)-9(s)-6(/)23(p)-5(r)8(of)5(e)-9(s)-4(si)1(o)-3(n)-9(a)-3(l)-3(c)4(o)-4(m)-5(p)-1(u)-6(t)-2(i)-2(ng)]TJ 0 g /GS1 gs /TT2 1 Tf 0 Tc 0 Tw 18.231 0 Td [( )-35( )]TJ /TT1 1 Tf 0.015 Tc -0.005 Tw -18.895 -1.333 Td [(f)12(o)3(r)5( a)5( c)19(o)3(m)-3(p)1(le)3(t)-2(e)5( li)1(s)-4(t)5( o)10(f)5( a)20(v)-1(ailab)1(le)5( p)-1(ub)1(l)1(i)3(ca)11(t)-6(i)6(o)3(n)-3(s.)]TJ ET q 24 24 540 675 re W n q 1 0 0 1 40.5623 39.6913 cm 0.95 g /GS0 gs 0 0 m 0.674 0 l 3.689 -6.764 l 2.705 -6.764 l 1.807 -4.771 l -1.059 -4.771 l -1.9 -6.764 l -2.89 -6.764 l h 1.414 -3.919 m 0.33 -1.478 l -0.678 -3.919 l h 6.005 -0.038 m 6.967 -0.038 l 6.967 -5.886 l 9.997 -5.886 l 9.997 -6.764 l 6.005 -6.764 l h 20.386 -0.038 m 21.348 -0.038 l 18.63 -6.793 l 18.418 -6.793 l 16.221 -1.324 l 13.999 -6.793 l 13.79 -6.793 l 11.082 -0.038 l 12.05 -0.038 l 13.902 -4.675 l 15.771 -0.038 l 16.681 -0.038 l 18.556 -4.675 l h 25.425 0 m 26.102 0 l 29.116 -6.764 l 28.131 -6.764 l 27.237 -4.771 l 24.367 -4.771 l 23.526 -6.764 l 22.535 -6.764 l h 26.841 -3.919 m 25.753 -1.478 l 24.746 -3.919 l h 34.788 -0.038 m 35.953 -0.038 l 33.469 -3.207 l 33.469 -6.764 l 32.484 -6.764 l 32.484 -3.207 l 30 -0.038 l 31.163 -0.038 l 32.961 -2.355 l h 40.14 -3.949 m 39.405 -3.505 l 38.947 -3.224 38.62 -2.949 38.426 -2.68 c 38.231 -2.405 38.135 -2.094 38.135 -1.743 c 38.135 -1.205 38.318 -0.783 38.683 -0.45 c 39.05 -0.12 39.53 0.045 40.117 0.045 c 40.68 0.045 41.194 -0.116 41.666 -0.427 c 41.666 -1.519 l 41.179 -1.056 40.656 -0.821 40.099 -0.821 c 39.783 -0.821 39.526 -0.892 39.321 -1.038 c 39.12 -1.18 39.02 -1.37 39.02 -1.592 c 39.02 -1.796 39.092 -1.987 39.241 -2.161 c 39.394 -2.336 39.63 -2.526 39.962 -2.718 c 40.697 -3.15 l 41.517 -3.643 41.926 -4.264 41.926 -5.018 c 41.926 -5.556 41.747 -5.998 41.389 -6.334 c 41.027 -6.674 40.556 -6.843 39.978 -6.843 c 39.315 -6.843 38.707 -6.639 38.163 -6.232 c 38.163 -5.008 l 38.683 -5.663 39.284 -5.994 39.97 -5.994 c 40.27 -5.994 40.523 -5.909 40.721 -5.742 c 40.924 -5.575 41.022 -5.365 41.022 -5.113 c 41.022 -4.703 40.725 -4.313 40.14 -3.949 c 49.668 -0.038 m 50.631 -0.038 l 50.631 -5.886 l 53.66 -5.886 l 53.66 -6.764 l 49.668 -6.764 l h 56.474 -0.038 m 60.286 -0.038 l 60.286 -0.894 l 57.436 -0.894 l 57.436 -2.949 l 60.19 -2.949 l 60.19 -3.807 l 57.436 -3.807 l 57.436 -5.898 l 60.379 -5.898 l 60.379 -6.755 l 56.474 -6.755 l h 65.72 0 m 66.398 0 l 69.412 -6.764 l 68.432 -6.764 l 67.53 -4.771 l 64.66 -4.771 l 63.82 -6.764 l 62.833 -6.764 l h 67.134 -3.919 m 66.05 -1.478 l 65.045 -3.919 l h 72.15 -6.764 m 72.15 -0.038 l 73.835 -0.038 l 74.513 -0.038 75.056 -0.207 75.456 -0.546 c 75.854 -0.883 76.054 -1.339 76.054 -1.912 c 76.054 -2.308 75.957 -2.641 75.759 -2.923 c 75.565 -3.217 75.284 -3.427 74.919 -3.569 c 75.133 -3.706 75.342 -3.904 75.548 -4.148 c 75.756 -4.391 76.044 -4.817 76.414 -5.418 c 76.648 -5.802 76.839 -6.09 76.978 -6.286 c 77.335 -6.764 l 76.188 -6.764 l 75.898 -6.321 l 75.837 -6.24 l 75.651 -5.976 l 75.354 -5.481 l 75.034 -4.958 l 74.833 -4.686 74.648 -4.464 74.481 -4.297 c 74.32 -4.133 74.168 -4.018 74.039 -3.949 c 73.903 -3.875 73.68 -3.837 73.363 -3.837 c 73.115 -3.837 l 73.115 -6.764 l h 73.404 -0.856 m 73.115 -0.856 l 73.115 -2.984 l 73.48 -2.984 l 73.965 -2.984 74.3 -2.943 74.481 -2.86 c 74.665 -2.77 74.804 -2.648 74.906 -2.475 c 75.008 -2.31 75.061 -2.119 75.061 -1.904 c 75.061 -1.689 75.003 -1.5 74.891 -1.334 c 74.775 -1.155 74.62 -1.038 74.416 -0.965 c 74.209 -0.894 73.874 -0.856 73.404 -0.856 c 85.389 -0.038 m 86.304 -0.038 l 86.304 -6.764 l 85.479 -6.764 l 80.983 -1.586 l 80.983 -6.764 l 80.078 -6.764 l 80.078 -0.038 l 80.858 -0.038 l 85.389 -5.265 l h 89.727 -0.038 0.961 -6.726 re 99.498 -0.038 m 100.412 -0.038 l 100.412 -6.764 l 99.585 -6.764 l 95.087 -1.586 l 95.087 -6.764 l 94.181 -6.764 l 94.181 -0.038 l 94.96 -0.038 l 99.498 -5.265 l h 106.871 -3.449 m 109.126 -3.449 l 109.126 -6.302 l 108.299 -6.662 107.477 -6.843 106.665 -6.843 c 105.552 -6.843 104.659 -6.52 103.992 -5.865 c 103.329 -5.22 102.992 -4.418 102.992 -3.46 c 102.992 -2.46 103.34 -1.619 104.029 -0.956 c 104.723 -0.29 105.583 0.045 106.625 0.045 c 107.001 0.045 107.361 0.003 107.704 -0.074 c 108.044 -0.162 108.474 -0.305 108.994 -0.53 c 108.994 -1.509 l 108.191 -1.041 107.395 -0.81 106.604 -0.81 c 105.871 -0.81 105.253 -1.06 104.747 -1.562 c 104.239 -2.061 103.992 -2.68 103.992 -3.404 c 103.992 -4.168 104.239 -4.792 104.747 -5.273 c 105.253 -5.76 105.899 -6.007 106.691 -6.007 c 107.076 -6.007 107.537 -5.917 108.074 -5.742 c 108.166 -5.715 l 108.166 -4.306 l 106.871 -4.306 l h f Q Q 1 g /GS0 gs 69.724 580.273 447.947 20.814 re f 0.291 g 69.895 442.696 448.603 192.588 re f q 69.895 474.534 172.669 160.751 re W n q 173.0122 0 0 161.1045 69.551 474.5341 cm /Im0 Do Q Q q 242.213 474.534 173.011 160.751 re W n q 173.0122 0 0 161.1045 242.213 474.5341 cm /Im1 Do Q Q q 414.875 442.697 103.622 192.587 re W n q 104.0175 0 0 193.3254 414.875 442.3132 cm /Im2 Do Q Q q 69.895 442.697 345.33 32.187 re W n q 345.6743 0 0 32.5711 69.551 442.3132 cm /Im3 Do Q Q q 1 0 0 1 69.895 442.6962 cm 0.509 G 0.552 w 4 M 0 0 m 448.603 0 l 448.603 192.588 l 0 192.588 l h S Q q 1 0 0 1 240.647 466.4651 cm 0 g /GS1 gs 0 0 m -6.633 0 l -3.347 5.767 l h f Q q 1 0 0 1 236.5065 465.2681 cm 0 g /GS1 gs 0 0 m -3.313 -5.746 l -6.669 -0.017 l h f Q q 1 0 0 1 244.4924 465.2681 cm 0 g /GS1 gs 0 0 m -3.313 -5.746 l -6.669 -0.017 l h f Q q 1 0 0 1 -0 -0 cm 24 24 540 675 re W n 1 0 0 1 253.595 464.2195 cm 0 g /GS1 gs 0 0 m -3.927 0 l -1.946 4.599 l h 0.224 -0.62 m 0.843 -2.049 l 0.982 -2.394 1.258 -2.98 1.258 -3.358 c 1.258 -3.962 0.826 -4.099 0.086 -4.133 c 0.086 -4.443 l 4.582 -4.443 l 4.582 -4.133 l 3.307 -4.082 2.98 -3.117 2.549 -2.084 c -1.326 7.216 l -1.636 7.216 l -5.735 -2.394 l -6.252 -3.6 -6.614 -4.047 -7.509 -4.133 c -7.509 -4.443 l -3.927 -4.443 l -3.927 -4.133 l -4.565 -4.082 -5.253 -4.013 -5.253 -3.376 c -5.253 -3.048 -5.012 -2.514 -4.875 -2.222 c -4.185 -0.62 l h f 1 0 0 1 10.7467 -2.9795 cm 0 0 m -0.396 -0.43 -0.879 -0.775 -1.481 -0.775 c -2.79 -0.775 -3.84 0.603 -3.84 2.704 c -3.84 5.391 -2.411 5.959 -1.791 5.959 c -0.62 5.959 0 4.788 0 3.754 c h 0 5.821 m -0.447 6.287 -1.085 6.476 -1.705 6.476 c -3.944 6.476 -5.408 4.15 -5.408 2.101 c -5.408 0.293 -4.306 -1.705 -2.291 -1.705 c -1.326 -1.705 -0.655 -1.275 0 -0.603 c 0 -1.705 l 0.379 -1.705 l 2.704 -0.758 l 2.584 -0.465 l 2.411 -0.534 2.187 -0.603 1.998 -0.603 c 1.757 -0.603 1.395 -0.603 1.395 0.569 c 1.395 10.489 l 1.016 10.489 l -1.309 9.541 l -1.189 9.248 l -1.016 9.317 -0.792 9.387 -0.603 9.387 c -0.362 9.387 0 9.387 0 8.215 c h f 1 0 0 1 8.6114 0 cm 0 0 m -0.396 -0.43 -0.879 -0.775 -1.481 -0.775 c -2.79 -0.775 -3.84 0.603 -3.84 2.704 c -3.84 5.391 -2.411 5.959 -1.791 5.959 c -0.62 5.959 0 4.788 0 3.754 c h 0 5.821 m -0.447 6.287 -1.085 6.476 -1.705 6.476 c -3.944 6.476 -5.408 4.15 -5.408 2.101 c -5.408 0.293 -4.306 -1.705 -2.291 -1.705 c -1.326 -1.705 -0.655 -1.275 0 -0.603 c 0 -1.705 l 0.379 -1.705 l 2.704 -0.758 l 2.584 -0.465 l 2.411 -0.534 2.187 -0.603 1.998 -0.603 c 1.757 -0.603 1.395 -0.603 1.395 0.569 c 1.395 10.489 l 1.016 10.489 l -1.309 9.541 l -1.189 9.248 l -1.016 9.317 -0.792 9.387 -0.603 9.387 c -0.362 9.387 0 9.387 0 8.215 c h f 1 0 0 1 5.7869 0 cm 0 0 m 0 -1.016 0.396 -1.136 1.188 -1.153 c 1.188 -1.464 l -2.584 -1.464 l -2.584 -1.153 l -1.791 -1.136 -1.395 -1.016 -1.395 0 c -1.395 4.202 l -1.395 5.374 -1.757 5.374 -1.998 5.374 c -2.188 5.374 -2.411 5.305 -2.584 5.236 c -2.704 5.528 l -0.379 6.476 l 0 6.476 l h -0.706 10.489 m -0.241 10.489 0.137 10.11 0.137 9.644 c 0.137 9.18 -0.241 8.801 -0.706 8.801 c -1.171 8.801 -1.551 9.18 -1.551 9.644 c -1.551 10.11 -1.171 10.489 -0.706 10.489 c f 1 0 0 1 7.1818 3.8407 cm 0 0 m -0.31 0 l -0.569 1.153 -1.033 2.118 -2.377 2.118 c -2.997 2.118 -3.686 1.774 -3.686 1.068 c -3.686 -0.81 0.569 -0.569 0.569 -3.238 c 0.569 -4.65 -0.758 -5.545 -2.067 -5.545 c -2.566 -5.545 -3.117 -5.425 -3.617 -5.288 c -3.72 -5.253 -3.927 -5.201 -4.047 -5.201 c -4.202 -5.201 -4.323 -5.288 -4.357 -5.425 c -4.668 -5.425 l -4.668 -2.67 l -4.357 -2.67 l -4.202 -3.876 -3.29 -5.029 -1.998 -5.029 c -1.292 -5.029 -0.672 -4.616 -0.672 -3.857 c -0.672 -1.842 -4.685 -2.118 -4.685 0.327 c -4.685 1.739 -3.669 2.635 -2.291 2.635 c -1.929 2.635 -1.654 2.549 -1.309 2.445 c -1.102 2.394 -0.878 2.308 -0.672 2.308 c -0.447 2.308 -0.379 2.445 -0.31 2.635 c 0 2.635 l h f 1 0 0 1 5.1669 2.0493 cm 0 0 m 1.912 0 2.428 -2.549 2.428 -4.047 c 2.428 -5.252 2.135 -7.01 0.569 -7.01 c -1.343 -7.01 -1.878 -4.323 -1.878 -2.841 c -1.878 -0.637 -0.843 0 0 0 c 0.293 0.586 m -1.964 0.586 -3.444 -1.464 -3.444 -3.583 c -3.444 -5.649 -2.015 -7.595 0.172 -7.595 c 2.894 -7.595 3.996 -5.098 3.996 -3.324 c 3.996 -1.223 2.445 0.586 0.293 0.586 c f 1 0 0 1 7.3713 -1.0332 cm 0 0 m 0.965 1.068 1.636 1.619 2.618 1.619 c 4.013 1.619 4.563 0.31 4.563 -0.982 c 4.563 -4.856 l 4.563 -5.874 4.96 -5.994 5.752 -6.011 c 5.752 -6.321 l 1.981 -6.321 l 1.981 -6.011 l 2.773 -5.994 3.169 -5.874 3.169 -4.856 c 3.169 -1.292 l 3.169 0.413 2.463 0.586 1.946 0.586 c 1.153 0.586 0.569 0.069 0 -0.517 c 0 -4.856 l 0 -5.874 0.396 -5.994 1.188 -6.011 c 1.188 -6.321 l -2.584 -6.321 l -2.584 -6.011 l -1.791 -5.994 -1.395 -5.874 -1.395 -4.856 c -1.395 -0.655 l -1.395 0.516 -1.757 0.516 -1.998 0.516 c -2.188 0.516 -2.411 0.447 -2.584 0.379 c -2.704 0.672 l -0.379 1.619 l 0 1.619 l h f Q q 1 0 0 1 -0 -0 cm 0 g /GS1 gs 309.327 462.979 -4.357 1.326 re f Q q 1 0 0 1 -0 -0 cm 24 24 540 675 re W n 1 0 0 1 322.1584 468.5079 cm 0 g /GS1 gs 0 0 m 0.137 0.396 0.413 1.153 0.413 1.55 c 0.413 2.204 -0.069 2.359 -0.843 2.359 c -0.843 2.67 l 2.566 2.67 l 2.566 2.359 l 1.429 2.359 1.188 1.412 0.878 0.5 c -2.394 -8.991 l -2.721 -8.991 l -5.305 -1.757 l -5.339 -1.757 l -7.87 -8.991 l -8.215 -8.991 l -11.729 0.843 l -12.108 1.929 -12.279 2.359 -13.314 2.359 c -13.314 2.67 l -9.094 2.67 l -9.094 2.359 l -9.714 2.359 -10.213 2.222 -10.213 1.636 c -10.213 1.361 -10.041 0.913 -9.955 0.655 c -7.63 -5.977 l -7.595 -5.977 l -5.701 -0.655 l -6.165 0.62 l -6.527 1.585 -6.786 2.359 -7.923 2.359 c -7.923 2.67 l -3.461 2.67 l -3.461 2.359 l -4.185 2.359 -4.685 2.308 -4.685 1.585 c -4.685 1.085 -4.409 0.379 -4.237 -0.086 c -2.135 -5.977 l -2.101 -5.977 l h f 1 0 0 1 3.1372 -3.4272 cm 0 0 m 0.069 0.999 0.792 2.015 1.808 2.015 c 3.031 2.015 3.565 1.068 3.565 0 c h 5.322 -0.516 m 5.322 1.343 4.15 2.635 2.377 2.635 c -0.069 2.635 -1.189 0.637 -1.189 -1.585 c -1.189 -3.944 0.293 -5.545 2.17 -5.545 c 3.91 -5.545 5.029 -4.082 5.322 -2.498 c 5.063 -2.325 l 4.668 -3.444 3.996 -4.168 2.755 -4.168 c 0.878 -4.168 -0.017 -2.239 -0.017 -0.516 c h f 1 0 0 1 11.4356 0 cm 0 0 m -0.31 0 l -0.569 1.153 -1.033 2.118 -2.377 2.118 c -2.997 2.118 -3.686 1.774 -3.686 1.068 c -3.686 -0.81 0.569 -0.569 0.569 -3.238 c 0.569 -4.65 -0.758 -5.545 -2.067 -5.545 c -2.567 -5.545 -3.117 -5.425 -3.617 -5.288 c -3.72 -5.253 -3.927 -5.201 -4.047 -5.201 c -4.203 -5.201 -4.323 -5.288 -4.357 -5.425 c -4.668 -5.425 l -4.668 -2.67 l -4.357 -2.67 l -4.203 -3.876 -3.29 -5.029 -1.998 -5.029 c -1.292 -5.029 -0.672 -4.616 -0.672 -3.857 c -0.672 -1.842 -4.685 -2.118 -4.685 0.327 c -4.685 1.739 -3.669 2.635 -2.291 2.635 c -1.929 2.635 -1.654 2.549 -1.309 2.445 c -1.102 2.394 -0.879 2.308 -0.672 2.308 c -0.447 2.308 -0.379 2.445 -0.31 2.635 c 0 2.635 l h f 1 0 0 1 4.3055 -3.8407 cm 0 0 m 0 -1.016 0.396 -1.136 1.189 -1.153 c 1.189 -1.464 l -2.584 -1.464 l -2.584 -1.153 l -1.791 -1.136 -1.395 -1.016 -1.395 0 c -1.395 8.215 l -1.395 9.387 -1.757 9.387 -1.998 9.387 c -2.187 9.387 -2.411 9.317 -2.584 9.248 c -2.704 9.541 l -0.379 10.489 l 0 10.489 l h f 1 0 0 1 3.393 3.8407 cm 0 0 m 0.069 0.999 0.792 2.015 1.808 2.015 c 3.031 2.015 3.566 1.068 3.566 0 c h 5.322 -0.516 m 5.322 1.343 4.15 2.635 2.377 2.635 c -0.069 2.635 -1.188 0.637 -1.188 -1.585 c -1.188 -3.944 0.293 -5.545 2.17 -5.545 c 3.91 -5.545 5.029 -4.082 5.322 -2.498 c 5.063 -2.325 l 4.668 -3.444 3.996 -4.168 2.755 -4.168 c 0.879 -4.168 -0.017 -2.239 -0.017 -0.516 c h f 1 0 0 1 7.166 0.62 cm 0 0 m -0.293 0.637 -0.689 1.378 -1.446 1.464 c -1.446 1.774 l 2.135 1.774 l 2.135 1.464 l 1.602 1.464 1.206 1.395 1.206 0.843 c 1.206 0.552 1.446 0.069 1.568 -0.207 c 3.358 -3.893 l 4.995 0.155 l 5.115 0.465 5.218 0.706 5.218 1.033 c 5.218 1.429 4.909 1.464 4.443 1.464 c 4.443 1.774 l 6.958 1.774 l 6.958 1.464 l 6.407 1.464 6.114 1.033 5.925 0.569 c 2.635 -7.492 l 1.964 -9.145 0.706 -9.644 0.104 -9.644 c -0.465 -9.644 -1.05 -9.301 -1.05 -8.681 c -1.05 -8.163 -0.637 -7.923 -0.172 -7.923 c 0.396 -7.923 0.672 -8.232 0.965 -8.232 c 1.653 -8.232 2.015 -7.267 2.222 -6.768 c 2.687 -5.615 l h f 1 0 0 1 -45.2773 -376.4668 cm 0 0 m 2.128 0 l 2.128 5.234 l 2.128 5.45 2.14 5.748 2.427 5.748 c 2.689 5.748 2.749 5.462 2.749 5.247 c 2.749 0 l 4.804 0 l 4.804 5.234 l 4.804 5.45 4.817 5.748 5.091 5.748 c 5.366 5.748 5.426 5.462 5.426 5.247 c 5.426 0 l 7.553 0 l 7.553 5.318 l 7.553 6.597 7.003 7.183 6.108 7.183 c 5.509 7.183 5.08 6.8 4.708 6.381 c 4.517 6.741 4.112 7.183 3.442 7.183 c 3.215 7.183 2.94 7.123 2.701 6.991 c 2.463 6.871 2.247 6.692 2.151 6.466 c 2.128 6.466 l 2.128 7.003 l 0 7.003 l h -3.709 5.425 m -3.709 5.664 -3.59 5.892 -3.326 5.892 c -3.063 5.892 -2.944 5.664 -2.944 5.425 c -2.944 1.721 l -2.944 1.482 -3.063 1.254 -3.326 1.254 c -3.59 1.254 -3.709 1.482 -3.709 1.721 c h -5.836 2.14 m -5.836 0.323 -4.498 -0.179 -3.326 -0.179 c -2.156 -0.179 -0.817 0.323 -0.817 2.14 c -0.817 4.864 l -0.817 6.68 -2.156 7.183 -3.326 7.183 c -4.498 7.183 -5.836 6.68 -5.836 4.864 c h -11.455 2.14 m -11.455 0.323 -10.117 -0.179 -8.946 -0.179 c -7.583 -0.179 -6.508 0.358 -6.508 2.545 c -6.508 2.892 l -8.564 2.892 l -8.564 1.685 l -8.564 1.303 -8.659 1.112 -8.946 1.112 c -9.269 1.112 -9.329 1.303 -9.329 1.661 c -9.329 5.485 l -9.329 5.676 -9.304 5.892 -8.982 5.892 c -8.659 5.892 -8.635 5.676 -8.635 5.485 c -8.635 4.338 l -6.58 4.338 l -6.58 4.924 l -6.58 6.429 -7.524 7.183 -8.946 7.183 c -10.117 7.183 -11.455 6.68 -11.455 4.864 c h -14.014 0 1.649 1.721 re f Q q 1 0 0 1 288.6563 89.2339 cm 0.471 g 0 0 m 2.199 0 l 2.199 6.811 l 3.501 6.811 l 3.501 8.533 l -1.303 8.533 l -1.303 6.811 l 0 6.811 l h -4.109 0 2.199 8.533 re f Q q 1 0 0 1 0 -0 cm 24 24 540 675 re W n 1 0 0 1 275.8719 89.2339 cm 0 g /GS1 gs 0 0 m 2.127 0 l 2.127 5.234 l 2.127 5.45 2.14 5.748 2.426 5.748 c 2.689 5.748 2.749 5.462 2.749 5.247 c 2.749 0 l 4.804 0 l 4.804 5.234 l 4.804 5.45 4.816 5.748 5.091 5.748 c 5.366 5.748 5.425 5.462 5.425 5.247 c 5.425 0 l 7.553 0 l 7.553 5.318 l 7.553 6.597 7.002 7.183 6.106 7.183 c 5.509 7.183 5.078 6.8 4.708 6.381 c 4.517 6.741 4.111 7.183 3.442 7.183 c 3.215 7.183 2.94 7.123 2.701 6.991 c 2.461 6.871 2.247 6.692 2.151 6.466 c 2.127 6.466 l 2.127 7.003 l 0 7.003 l h -4.066 0 m -1.938 0 l -1.938 3.74 l -1.938 4.291 -1.604 4.661 -1.03 4.661 c -0.911 4.661 -0.791 4.648 -0.672 4.636 c -0.672 7.183 l -1.149 7.134 -1.783 6.776 -1.986 6.106 c -2.01 6.106 l -2.01 7.003 l -4.066 7.003 l h -7.775 5.425 m -7.775 5.664 -7.655 5.892 -7.392 5.892 c -7.13 5.892 -7.01 5.664 -7.01 5.425 c -7.01 1.721 l -7.01 1.482 -7.13 1.254 -7.392 1.254 c -7.655 1.254 -7.775 1.482 -7.775 1.721 c h -9.902 2.14 m -9.902 0.323 -8.564 -0.179 -7.392 -0.179 c -6.221 -0.179 -4.882 0.323 -4.882 2.14 c -4.882 4.864 l -4.882 6.68 -6.221 7.183 -7.392 7.183 c -8.564 7.183 -9.902 6.68 -9.902 4.864 c h -13.693 5.856 m -13.25 5.856 l -13.25 0 l -11.124 0 l -11.124 5.856 l -10.49 5.856 l -10.49 7.003 l -11.529 7.003 l -11.482 7.385 -11.207 7.457 -10.861 7.457 c -10.538 7.457 l -10.538 8.533 l -11.482 8.533 l -12.797 8.533 -13.203 8.246 -13.25 7.003 c -13.693 7.003 l h -19.252 0 m -17.125 0 l -17.125 5.234 l -17.125 5.45 -17.113 5.748 -16.826 5.748 c -16.551 5.748 -16.491 5.462 -16.491 5.247 c -16.491 0 l -14.364 0 l -14.364 5.318 l -14.364 6.597 -14.914 7.183 -15.811 7.183 c -16.456 7.183 -16.934 6.811 -17.1 6.466 c -17.125 6.466 l -17.125 7.003 l -19.252 7.003 l h -22.221 7.457 2.128 1.076 re -22.221 0 2.128 7.003 re f 1 0 0 1 36.5816 -4.8687 cm 0 0 m 1.267 0 l 1.267 0.147 l 0.173 0.147 l 0.173 0.865 l 1.186 0.865 l 1.186 1.013 l 0.173 1.013 l 0.173 1.67 l 1.254 1.67 l 1.254 1.818 l 0 1.818 l h -0.369 1.267 m -0.415 1.649 -0.756 1.855 -1.1 1.855 c -1.673 1.855 -1.957 1.406 -1.957 0.909 c -1.957 0.412 -1.673 -0.038 -1.1 -0.038 c -0.675 -0.038 -0.393 0.247 -0.343 0.692 c -0.517 0.692 l -0.549 0.369 -0.764 0.109 -1.1 0.109 c -1.582 0.109 -1.784 0.512 -1.784 0.909 c -1.784 1.306 -1.582 1.708 -1.1 1.708 c -0.835 1.708 -0.603 1.547 -0.543 1.267 c h -3.468 1.67 m -2.821 1.67 l -2.561 1.67 -2.429 1.53 -2.429 1.308 c -2.429 1.087 -2.61 0.954 -2.821 0.954 c -3.468 0.954 l h -3.641 0 m -3.468 0 l -3.468 0.807 l -2.81 0.807 l -2.482 0.82 -2.461 0.536 -2.446 0.282 c -2.398 0 l -2.208 0 l -2.284 0.091 -2.284 0.341 -2.292 0.466 c -2.305 0.682 -2.373 0.846 -2.61 0.876 c -2.61 0.881 l -2.376 0.926 -2.255 1.115 -2.255 1.343 c -2.255 1.673 -2.508 1.818 -2.808 1.818 c -3.641 1.818 l h -5.49 0.655 m -5.49 0.28 -5.288 -0.038 -4.785 -0.038 c -4.277 -0.038 -4.076 0.28 -4.076 0.655 c -4.076 1.818 l -4.25 1.818 l -4.25 0.692 l -4.247 0.269 -4.449 0.109 -4.785 0.109 c -5.118 0.109 -5.319 0.269 -5.317 0.692 c -5.317 1.818 l -5.49 1.818 l h -7.367 0.909 m -7.367 1.306 -7.163 1.708 -6.683 1.708 c -6.204 1.708 -6 1.306 -6 0.909 c -6 0.512 -6.204 0.109 -6.683 0.109 c -7.163 0.109 -7.367 0.512 -7.367 0.909 c -7.54 0.909 m -7.54 0.412 -7.256 -0.038 -6.683 -0.038 c -6.112 -0.038 -5.827 0.412 -5.827 0.909 c -5.827 1.406 -6.112 1.855 -6.683 1.855 c -7.256 1.855 -7.54 1.406 -7.54 0.909 c -9.205 0.599 m -9.226 0.156 -8.91 -0.038 -8.48 -0.038 c -7.836 -0.038 -7.785 0.356 -7.785 0.481 c -7.785 0.779 -7.998 0.891 -8.256 0.959 c -8.699 1.069 l -8.846 1.104 -8.974 1.176 -8.974 1.347 c -8.974 1.616 -8.755 1.708 -8.517 1.708 c -8.261 1.708 -8.031 1.568 -8.022 1.29 c -7.849 1.29 l -7.846 1.662 -8.161 1.855 -8.521 1.855 c -9.033 1.855 -9.146 1.522 -9.146 1.343 c -9.146 1.061 -8.951 0.959 -8.736 0.906 c -8.332 0.807 l -8.164 0.766 -7.957 0.685 -7.957 0.479 c -7.957 0.214 -8.248 0.109 -8.439 0.109 c -8.77 0.109 -9.04 0.223 -9.033 0.599 c h -10.205 0.924 m -10.976 0.924 l -10.976 0.776 l -10.358 0.776 l -10.35 0.392 -10.585 0.109 -10.986 0.109 c -11.467 0.109 -11.671 0.512 -11.671 0.909 c -11.671 1.306 -11.467 1.708 -10.986 1.708 c -10.64 1.708 -10.424 1.461 -10.401 1.252 c -10.228 1.252 l -10.294 1.649 -10.604 1.855 -10.986 1.855 c -11.558 1.855 -11.844 1.406 -11.844 0.909 c -11.844 0.412 -11.558 -0.038 -10.986 -0.038 c -10.725 -0.038 -10.48 0.071 -10.358 0.33 c -10.352 0.33 l -10.33 0 l -10.205 0 l h -13.635 0 m -13.462 0 l -13.462 1.537 l -13.457 1.537 l -12.397 0 l -12.204 0 l -12.204 1.818 l -12.377 1.818 l -12.377 0.28 l -12.382 0.28 l -13.44 1.818 l -13.635 1.818 l h -14.259 0 0.173 1.818 re -16.144 0 m -15.972 0 l -15.972 1.537 l -15.967 1.537 l -14.908 0 l -14.715 0 l -14.715 1.818 l -14.888 1.818 l -14.888 0.28 l -14.892 0.28 l -15.951 1.818 l -16.144 1.818 l h -17.756 1.67 m -17.11 1.67 l -16.85 1.67 -16.717 1.53 -16.717 1.308 c -16.717 1.087 -16.899 0.954 -17.11 0.954 c -17.756 0.954 l h -17.929 0 m -17.756 0 l -17.756 0.807 l -17.099 0.807 l -16.771 0.82 -16.751 0.536 -16.736 0.282 c -16.687 0 l -16.496 0 l -16.572 0.091 -16.572 0.341 -16.581 0.466 c -16.594 0.682 -16.662 0.846 -16.899 0.876 c -16.899 0.881 l -16.665 0.926 -16.546 1.115 -16.546 1.343 c -16.546 1.673 -16.797 1.818 -17.097 1.818 c -17.929 1.818 l h -19.003 1.644 m -18.652 0.712 l -19.366 0.712 l h -19.824 0 m -19.639 0 l -19.419 0.565 l -18.593 0.565 l -18.372 0 l -18.186 0 l -18.899 1.818 l -19.092 1.818 l h -21.281 0 m -20.014 0 l -20.014 0.147 l -21.108 0.147 l -21.108 0.865 l -20.095 0.865 l -20.095 1.013 l -21.108 1.013 l -21.108 1.67 l -20.026 1.67 l -20.026 1.818 l -21.281 1.818 l h -22.733 0 m -21.542 0 l -21.542 0.147 l -22.56 0.147 l -22.56 1.818 l -22.733 1.818 l h -24.54 0 m -24.367 0 l -24.367 0.748 l -23.649 1.818 l -23.855 1.818 l -24.45 0.896 l -25.048 1.818 l -25.254 1.818 l -24.54 0.748 l h -25.361 0.924 m -26.132 0.924 l -26.132 0.776 l -25.514 0.776 l -25.506 0.392 -25.74 0.109 -26.143 0.109 c -26.623 0.109 -26.827 0.512 -26.827 0.909 c -26.827 1.306 -26.623 1.708 -26.143 1.708 c -25.797 1.708 -25.58 1.461 -25.558 1.252 c -25.384 1.252 l -25.451 1.649 -25.761 1.855 -26.143 1.855 c -26.716 1.855 -27 1.406 -27 0.909 c -27 0.412 -26.716 -0.038 -26.143 -0.038 c -25.881 -0.038 -25.636 0.071 -25.514 0.33 c -25.508 0.33 l -25.486 0 l -25.361 0 l h -28.807 0.909 m -28.807 1.306 -28.604 1.708 -28.122 1.708 c -27.644 1.708 -27.44 1.306 -27.44 0.909 c -27.44 0.512 -27.644 0.109 -28.122 0.109 c -28.604 0.109 -28.807 0.512 -28.807 0.909 c -28.981 0.909 m -28.981 0.412 -28.695 -0.038 -28.122 -0.038 c -27.552 -0.038 -27.268 0.412 -27.268 0.909 c -27.268 1.406 -27.552 1.855 -28.122 1.855 c -28.695 1.855 -28.981 1.406 -28.981 0.909 c -30.253 0 m -29.062 0 l -29.062 0.147 l -30.079 0.147 l -30.079 1.818 l -30.253 1.818 l h -32.15 0.909 m -32.15 1.306 -31.946 1.708 -31.466 1.708 c -30.986 1.708 -30.782 1.306 -30.782 0.909 c -30.782 0.512 -30.986 0.109 -31.466 0.109 c -31.946 0.109 -32.15 0.512 -32.15 0.909 c -32.322 0.909 m -32.322 0.412 -32.038 -0.038 -31.466 -0.038 c -30.895 -0.038 -30.611 0.412 -30.611 0.909 c -30.611 1.406 -30.895 1.855 -31.466 1.855 c -32.038 1.855 -32.322 1.406 -32.322 0.909 c -34.107 0 m -33.935 0 l -33.935 1.537 l -33.929 1.537 l -32.87 0 l -32.677 0 l -32.677 1.818 l -32.85 1.818 l -32.85 0.28 l -32.855 0.28 l -33.914 1.818 l -34.107 1.818 l h -35.982 0 m -35.808 0 l -35.808 0.881 l -34.73 0.881 l -34.73 0 l -34.556 0 l -34.556 1.818 l -34.73 1.818 l -34.73 1.028 l -35.808 1.028 l -35.808 1.818 l -35.982 1.818 l h -36.351 1.267 m -36.396 1.649 -36.737 1.855 -37.082 1.855 c -37.654 1.855 -37.939 1.406 -37.939 0.909 c -37.939 0.412 -37.654 -0.038 -37.082 -0.038 c -36.657 -0.038 -36.374 0.247 -36.325 0.692 c -36.498 0.692 l -36.531 0.369 -36.746 0.109 -37.082 0.109 c -37.563 0.109 -37.766 0.512 -37.766 0.909 c -37.766 1.306 -37.563 1.708 -37.082 1.708 c -36.817 1.708 -36.585 1.547 -36.524 1.267 c h -39.419 0 m -38.153 0 l -38.153 0.147 l -39.246 0.147 l -39.246 0.865 l -38.233 0.865 l -38.233 1.013 l -39.246 1.013 l -39.246 1.67 l -38.164 1.67 l -38.164 1.818 l -39.419 1.818 l h -41.117 1.67 m -40.484 1.67 l -40.484 0 l -40.312 0 l -40.312 1.67 l -39.677 1.67 l -39.677 1.818 l -41.117 1.818 l h -43.423 0 m -42.794 0 l -42.247 0.013 -41.961 0.313 -41.961 0.909 c -41.961 1.504 -42.247 1.804 -42.794 1.818 c -43.423 1.818 l h -43.25 1.67 m -42.881 1.67 l -42.36 1.673 -42.132 1.451 -42.132 0.909 c -42.132 0.366 -42.36 0.145 -42.881 0.147 c -43.25 0.147 l h -44.989 0 m -43.722 0 l -43.722 0.147 l -44.816 0.147 l -44.816 0.865 l -43.803 0.865 l -43.803 1.013 l -44.816 1.013 l -44.816 1.67 l -43.734 1.67 l -43.734 1.818 l -44.989 1.818 l h -46.687 1.67 m -46.054 1.67 l -46.054 0 l -45.88 0 l -45.88 1.67 l -45.247 1.67 l -45.247 1.818 l -46.687 1.818 l h -48.231 0.599 m -48.252 0.156 -47.936 -0.038 -47.506 -0.038 c -46.862 -0.038 -46.812 0.356 -46.812 0.481 c -46.812 0.779 -47.024 0.891 -47.282 0.959 c -47.725 1.069 l -47.873 1.104 -48 1.176 -48 1.347 c -48 1.616 -47.781 1.708 -47.545 1.708 c -47.287 1.708 -47.057 1.568 -47.048 1.29 c -46.875 1.29 l -46.872 1.662 -47.187 1.855 -47.547 1.855 c -48.059 1.855 -48.172 1.522 -48.172 1.343 c -48.172 1.061 -47.977 0.959 -47.764 0.906 c -47.358 0.807 l -47.191 0.766 -46.983 0.685 -46.983 0.479 c -46.983 0.214 -47.274 0.109 -47.465 0.109 c -47.797 0.109 -48.066 0.223 -48.059 0.599 c h -49.977 0.655 m -49.977 0.28 -49.776 -0.038 -49.272 -0.038 c -48.766 -0.038 -48.565 0.28 -48.565 0.655 c -48.565 1.818 l -48.738 1.818 l -48.738 0.692 l -48.735 0.269 -48.936 0.109 -49.272 0.109 c -49.606 0.109 -49.808 0.269 -49.804 0.692 c -49.804 1.818 l -49.977 1.818 l h -51.561 1.67 m -50.915 1.67 l -50.655 1.67 -50.522 1.53 -50.522 1.308 c -50.522 1.087 -50.704 0.954 -50.915 0.954 c -51.561 0.954 l h -51.735 0 m -51.561 0 l -51.561 0.807 l -50.904 0.807 l -50.576 0.82 -50.555 0.536 -50.54 0.282 c -50.492 0 l -50.301 0 l -50.377 0.091 -50.377 0.341 -50.386 0.466 c -50.398 0.682 -50.466 0.846 -50.704 0.876 c -50.704 0.881 l -50.469 0.926 -50.349 1.115 -50.349 1.343 c -50.349 1.673 -50.602 1.818 -50.902 1.818 c -51.735 1.818 l h -53.432 1.67 m -52.799 1.67 l -52.799 0 l -52.625 0 l -52.625 1.67 l -51.992 1.67 l -51.992 1.818 l -53.432 1.818 l h -55.504 0 m -54.237 0 l -54.237 0.147 l -55.331 0.147 l -55.331 0.865 l -54.318 0.865 l -54.318 1.013 l -55.331 1.013 l -55.331 1.67 l -54.25 1.67 l -54.25 1.818 l -55.504 1.818 l h -57.38 0 m -57.207 0 l -57.207 0.881 l -56.128 0.881 l -56.128 0 l -55.955 0 l -55.955 1.818 l -56.128 1.818 l -56.128 1.028 l -57.207 1.028 l -57.207 1.818 l -57.38 1.818 l h -59.077 1.67 m -58.444 1.67 l -58.444 0 l -58.271 0 l -58.271 1.67 l -57.637 1.67 l -57.637 1.818 l -59.077 1.818 l h f 1 0 0 1 64.2311 0.0389 cm 0.37 g /GS0 gs 0 0 m -0.968 0 l -0.968 2.311 l -0.039 2.311 l 0.412 2.311 0.675 2.058 0.675 1.662 c 0.675 1.406 0.506 1.239 0.389 1.185 c 0.529 1.12 0.708 0.974 0.708 0.665 c 0.708 0.233 0.412 0 0 0 c -0.075 1.909 m -0.516 1.909 l -0.516 1.376 l -0.075 1.376 l 0.117 1.376 0.224 1.484 0.224 1.643 c 0.224 1.802 0.117 1.909 -0.075 1.909 c -0.046 0.971 m -0.516 0.971 l -0.516 0.402 l -0.046 0.402 l 0.159 0.402 0.256 0.532 0.256 0.689 c 0.256 0.844 0.159 0.971 -0.046 0.971 c f 1 0 0 1 2.3056 0.1883 cm 0 0 m -0.104 -0.111 -0.276 -0.208 -0.526 -0.208 c -0.777 -0.208 -0.945 -0.111 -1.049 0 c -1.202 0.159 -1.24 0.35 -1.24 0.659 c -1.24 0.965 -1.202 1.156 -1.049 1.314 c -0.945 1.425 -0.777 1.523 -0.526 1.523 c -0.276 1.523 -0.104 1.425 0 1.314 c 0.152 1.156 0.191 0.965 0.191 0.659 c 0.191 0.35 0.152 0.159 0 0 c -0.328 1.069 m -0.526 1.143 l -0.721 1.069 l -0.809 0.981 -0.819 0.834 -0.819 0.659 c -0.819 0.484 -0.809 0.334 -0.721 0.246 c -0.526 0.172 l -0.328 0.246 l -0.24 0.334 -0.231 0.484 -0.231 0.659 c -0.231 0.834 -0.24 0.981 -0.328 1.069 c f 1 0 0 1 1.7628 0 cm 0 0 m -0.104 -0.111 -0.276 -0.208 -0.526 -0.208 c -0.776 -0.208 -0.945 -0.111 -1.048 0 c -1.201 0.159 -1.239 0.35 -1.239 0.659 c -1.239 0.965 -1.201 1.156 -1.048 1.314 c -0.945 1.425 -0.776 1.523 -0.526 1.523 c -0.276 1.523 -0.104 1.425 0 1.314 c 0.152 1.156 0.192 0.965 0.192 0.659 c 0.192 0.35 0.152 0.159 0 0 c -0.327 1.069 m -0.526 1.143 l -0.721 1.069 l -0.809 0.981 -0.818 0.834 -0.818 0.659 c -0.818 0.484 -0.809 0.334 -0.721 0.246 c -0.526 0.172 l -0.327 0.246 l -0.24 0.334 -0.231 0.484 -0.231 0.659 c -0.231 0.834 -0.24 0.981 -0.327 1.069 c f Q q 1 0 0 1 382.3636 84.4041 cm 0.37 g 0 0 m -0.415 0.704 l -0.594 0.503 l -0.594 0 l -1.016 0 l -1.016 2.311 l -0.594 2.311 l -0.594 1 l -0.032 1.691 l 0.477 1.691 l -0.127 1.01 l 0.523 0 l h f Q q 1 0 0 1 0 -0 cm 24 24 540 675 re W n 1 0 0 1 383.7174 84.3842 cm 0.37 g 0 0 m -0.265 0 -0.506 0.029 -0.721 0.244 c -0.444 0.519 l -0.305 0.38 -0.123 0.361 0.006 0.361 c 0.152 0.361 0.306 0.41 0.306 0.535 c 0.306 0.62 0.26 0.679 0.127 0.692 c -0.139 0.718 l -0.444 0.747 -0.634 0.88 -0.634 1.192 c -0.634 1.542 -0.325 1.731 0.019 1.731 c 0.282 1.731 0.503 1.686 0.666 1.532 c 0.406 1.27 l 0.308 1.357 0.16 1.383 0.013 1.383 c -0.156 1.383 -0.226 1.306 -0.226 1.221 c -0.226 1.16 -0.202 1.088 -0.051 1.075 c 0.215 1.048 l 0.549 1.016 0.718 0.838 0.718 0.553 c 0.718 0.178 0.4 0 0 0 c f 1 0 0 1 3.2571 0.2532 cm 0 0 m -0.163 -0.162 -0.361 -0.253 -0.623 -0.253 c -0.886 -0.253 -1.088 -0.162 -1.25 0 c -1.484 0.234 -1.478 0.523 -1.478 0.922 c -1.478 1.322 -1.484 1.611 -1.25 1.844 c -1.088 2.007 -0.886 2.098 -0.623 2.098 c -0.361 2.098 -0.163 2.007 0 1.844 c 0.234 1.611 0.231 1.322 0.231 0.922 c 0.231 0.523 0.234 0.234 0 0 c -0.335 1.572 m -0.4 1.647 -0.5 1.695 -0.623 1.695 c -0.747 1.695 -0.851 1.647 -0.916 1.572 c -1.003 1.474 -1.026 1.367 -1.026 0.922 c -1.026 0.477 -1.003 0.37 -0.916 0.274 c -0.851 0.199 -0.747 0.15 -0.623 0.15 c -0.5 0.15 -0.4 0.199 -0.335 0.274 c -0.247 0.37 -0.221 0.477 -0.221 0.922 c -0.221 1.367 -0.247 1.474 -0.335 1.572 c f 1 0 0 1 1.6429 -0.2333 cm 0 0 m 0 1.023 l 0 1.253 -0.146 1.331 -0.279 1.331 c -0.412 1.331 -0.562 1.253 -0.562 1.023 c -0.562 0 l -0.984 0 l -0.984 1.691 l -0.571 1.691 l -0.571 1.535 l -0.461 1.652 -0.305 1.71 -0.15 1.71 c 0.019 1.71 0.156 1.656 0.25 1.561 c 0.386 1.425 0.422 1.266 0.422 1.081 c 0.422 0 l h f 1 0 0 1 1.3539 0 cm 0 0 m -0.348 0 -0.494 0.244 -0.494 0.484 c -0.494 2.311 l -0.071 2.311 l -0.071 0.51 l -0.071 0.409 -0.029 0.357 0.078 0.357 c 0.24 0.357 l 0.24 0 l h f Q q 1 0 0 1 0 -0 cm 0.37 g 390.542 86.384 0.433 0.344 re 390.55 84.405 0.421 1.692 re f Q q 1 0 0 1 0 -0 cm 24 24 540 675 re W n 1 0 0 1 392.4263 84.4041 cm 0.37 g 0 0 m 0 1.023 l 0 1.253 -0.146 1.331 -0.279 1.331 c -0.412 1.331 -0.561 1.253 -0.561 1.023 c -0.561 0 l -0.984 0 l -0.984 1.691 l -0.572 1.691 l -0.572 1.535 l -0.461 1.652 -0.305 1.71 -0.149 1.71 c 0.019 1.71 0.156 1.656 0.25 1.561 c 0.386 1.425 0.422 1.266 0.422 1.081 c 0.422 0 l h f 1 0 0 1 1.2082 0.7139 cm 0 0 m 0 -0.217 0.133 -0.377 0.37 -0.377 c 0.556 -0.377 0.646 -0.324 0.753 -0.217 c 1.01 -0.467 l 0.838 -0.64 0.672 -0.734 0.367 -0.734 c -0.033 -0.734 -0.415 -0.552 -0.415 0.133 c -0.415 0.685 -0.118 0.997 0.321 0.997 c 0.792 0.997 1.058 0.652 1.058 0.188 c 1.058 0 l h 0.604 0.471 m 0.558 0.572 0.465 0.646 0.321 0.646 c 0.178 0.646 0.085 0.572 0.039 0.471 c 0 0.29 l 0.643 0.29 l 0.604 0.471 l f 1 0 0 1 -30.0931 2.5835 cm 0.27 g 0 0 m -1.476 0 -2.596 0.314 -3.552 1.284 c -2.323 2.514 l -1.708 1.899 -0.874 1.694 0.027 1.694 c 1.147 1.694 1.749 2.118 1.749 2.897 c 1.749 3.238 1.652 3.526 1.447 3.717 c 1.257 3.894 1.038 3.989 0.587 4.058 c -0.588 4.221 l -1.421 4.345 -2.035 4.604 -2.473 5.028 c -2.938 5.493 -3.17 6.121 -3.17 6.94 c -3.17 8.675 -1.885 9.891 0.218 9.891 c 1.558 9.891 2.527 9.564 3.361 8.758 c 2.158 7.569 l 1.543 8.156 0.806 8.238 0.163 8.238 c -0.848 8.238 -1.339 7.678 -1.339 7.009 c -1.339 6.763 -1.258 6.503 -1.052 6.312 c -0.861 6.133 -0.547 5.984 -0.151 5.929 c 0.997 5.766 l 1.885 5.643 2.445 5.397 2.854 5.014 c 3.374 4.523 3.606 3.812 3.606 2.951 c 3.606 1.067 2.034 0 0 0 c f 1 0 0 1 8.5027 0.0829 cm 0 0 m 0 0.614 l -0.48 0.136 -0.929 -0.069 -1.749 -0.069 c -2.555 -0.069 -3.143 0.136 -3.566 0.56 c -3.949 0.955 -4.154 1.529 -4.154 2.158 c -4.154 3.292 -3.375 4.221 -1.722 4.221 c -0.042 4.221 l -0.042 4.576 l -0.042 5.355 -0.424 5.697 -1.367 5.697 c -2.049 5.697 -2.364 5.533 -2.733 5.109 c -3.867 6.215 l -3.17 6.981 -2.487 7.199 -1.298 7.199 c 0.696 7.199 1.735 6.352 1.735 4.686 c 1.735 0 l h -0.042 3.004 m -1.449 3.004 l -2.09 3.004 -2.445 2.705 -2.445 2.199 c -2.445 1.707 -2.118 1.38 -1.422 1.38 c -0.929 1.38 -0.615 1.421 -0.302 1.721 c -0.109 1.898 -0.042 2.186 -0.042 2.622 c h f 1 0 0 1 5.4392 5.5603 cm 0 0 m 0 -5.56 l -1.776 -5.56 l -1.776 0 l -2.513 0 l -2.513 1.352 l -1.776 1.352 l -1.776 2.239 l -1.776 3.251 -1.147 4.275 0.3 4.275 c 1.311 4.275 l 1.311 2.773 l 0.615 2.773 l 0.191 2.773 0 2.541 0 2.13 c 0 1.352 l 1.311 1.352 l 1.311 0 l h f 1 0 0 1 6.1053 -5.5603 cm 0 0 m 0 0.614 l -0.477 0.136 -0.929 -0.069 -1.749 -0.069 c -2.555 -0.069 -3.143 0.136 -3.566 0.56 c -3.949 0.955 -4.154 1.529 -4.154 2.158 c -4.154 3.292 -3.375 4.221 -1.722 4.221 c -0.041 4.221 l -0.041 4.576 l -0.041 5.355 -0.424 5.697 -1.366 5.697 c -2.049 5.697 -2.364 5.533 -2.733 5.109 c -3.867 6.215 l -3.17 6.981 -2.486 7.199 -1.297 7.199 c 0.697 7.199 1.735 6.352 1.735 4.686 c 1.735 0 l h -0.041 3.004 m -1.449 3.004 l -2.09 3.004 -2.446 2.705 -2.446 2.199 c -2.446 1.707 -2.118 1.38 -1.421 1.38 c -0.929 1.38 -0.615 1.421 -0.302 1.721 c -0.109 1.898 -0.041 2.186 -0.041 2.622 c h f 1 0 0 1 7.1094 5.1773 cm 0 0 m -0.274 0.273 -0.505 0.424 -0.942 0.424 c -1.489 0.424 -2.091 0.013 -2.091 -0.888 c -2.091 -5.177 l -3.867 -5.177 l -3.867 1.94 l -2.132 1.94 l -2.132 1.256 l -1.791 1.666 -1.107 2.022 -0.341 2.022 c 0.355 2.022 0.847 1.844 1.338 1.352 c h f Q q 1 0 0 1 0 -0 cm 0.27 g 392.844 94.902 1.776 -7.117 re f Q q 1 0 0 1 0 -0 cm 24 24 540 675 re W n 1 0 0 1 394.4242 96.2265 cm 0.789 g 0 0 m -0.395 -0.395 -1.037 -0.395 -1.431 0.001 c -1.827 0.396 -1.827 1.036 -1.431 1.434 c -1.037 1.829 -0.395 1.829 0 1.434 c 0.396 1.036 0.396 0.396 0 0 c f 1 0 0 1 2.8926 0 cm 0 0 m -0.395 -0.395 -1.037 -0.395 -1.431 0.001 c -1.827 0.396 -1.827 1.036 -1.431 1.434 c -1.037 1.829 -0.395 1.829 0 1.434 c 0.395 1.036 0.395 0.396 0 0 c f 1 0 0 1 0.604 2.4545 cm 0 0 m 1.17 -1.171 1.737 -1.737 v 1.17 -2.305 0 -3.474 y 0.899 -4.374 l 3.536 -1.737 l 0.899 0.898 l h f 1 0 0 1 -2.2737 -9.8191 cm 0.27 g 0 0 m 0.293 0 0.524 -0.237 0.524 -0.534 c 0.524 -0.836 0.291 -1.071 -0.003 -1.07 c -0.296 -1.07 -0.532 -0.835 -0.532 -0.533 c -0.531 -0.236 -0.294 0.001 -0.002 0 c h -0.002 -0.083 m -0.236 -0.083 -0.429 -0.284 -0.43 -0.533 c -0.43 -0.788 -0.238 -0.986 -0.001 -0.987 c 0.236 -0.99 0.426 -0.789 0.427 -0.538 c 0.427 -0.285 0.237 -0.083 0 -0.083 c h -0.103 -0.844 m -0.197 -0.844 l -0.197 -0.249 l -0.029 -0.235 l 0.061 -0.235 0.121 -0.254 0.157 -0.28 c 0.211 -0.403 l 0.094 -0.548 l 0.094 -0.553 l 0.194 -0.697 l 0.207 -0.791 0.222 -0.826 0.232 -0.846 c 0.132 -0.844 l 0.091 -0.693 l -0.036 -0.588 l -0.103 -0.588 l h -0.103 -0.515 m -0.033 -0.515 l 0.112 -0.413 l 0.112 -0.361 0.073 -0.308 -0.033 -0.308 c -0.102 -0.313 l h f Q q 1 0 0 1 230.2288 100.632 cm 0.402 w 4 M /GS1 gs 0 0 m 0 -17.277 l S Q q 1 0 0 1 336.9842 100.632 cm 0.402 w 4 M /GS1 gs 0 0 m 0 -17.277 l S Q q 1 0 0 1 199.6377 98.6816 cm 0.507 g 0 0 m -4.735 0 l -2.39 4.117 l h f Q q 1 0 0 1 196.6819 97.8273 cm 0.507 g 0 0 m -2.366 -4.102 l -4.76 -0.013 l h f Q q 1 0 0 1 202.3828 97.8273 cm 0.507 g 0 0 m -2.366 -4.102 l -4.761 -0.013 l h f Q q 1 0 0 1 -0 -0 cm 24 24 540 675 re W n 1 0 0 1 189.5438 88.3013 cm 0 g /GS1 gs 0 0 m -1.364 0 l -0.676 1.597 l h 0.077 -0.216 m 0.293 -0.711 l 0.341 -0.832 0.437 -1.034 0.437 -1.166 c 0.437 -1.376 0.288 -1.424 0.03 -1.436 c 0.03 -1.543 l 1.591 -1.543 l 1.591 -1.436 l 1.148 -1.417 1.034 -1.083 0.885 -0.723 c -0.46 2.507 l -0.569 2.507 l -1.992 -0.832 l -2.172 -1.25 -2.297 -1.406 -2.608 -1.436 c -2.608 -1.543 l -1.364 -1.543 l -1.364 -1.436 l -1.585 -1.417 -1.824 -1.394 -1.824 -1.173 c -1.824 -1.059 -1.74 -0.873 -1.693 -0.771 c -1.454 -0.216 l h f 1 0 0 1 3.7322 -1.0347 cm 0 0 m -0.137 -0.149 -0.305 -0.269 -0.514 -0.269 c -0.969 -0.269 -1.334 0.209 -1.334 0.939 c -1.334 1.872 -0.837 2.07 -0.622 2.07 c -0.216 2.07 0 1.663 0 1.304 c h 0 2.022 m -0.156 2.184 -0.377 2.249 -0.592 2.249 c -1.369 2.249 -1.878 1.441 -1.878 0.73 c -1.878 0.102 -1.496 -0.592 -0.795 -0.592 c -0.46 -0.592 -0.227 -0.443 0 -0.209 c 0 -0.592 l 0.132 -0.592 l 0.939 -0.263 l 0.897 -0.162 l 0.694 -0.209 l 0.611 -0.209 0.485 -0.209 0.485 0.197 c 0.485 3.643 l 0.353 3.643 l -0.455 3.313 l -0.413 3.213 l -0.209 3.26 l -0.126 3.26 0 3.26 0 2.853 c h f 1 0 0 1 2.9908 0 cm 0 0 m -0.137 -0.149 -0.305 -0.269 -0.514 -0.269 c -0.969 -0.269 -1.334 0.209 -1.334 0.939 c -1.334 1.872 -0.837 2.07 -0.622 2.07 c -0.216 2.07 0 1.663 0 1.304 c h 0 2.022 m -0.156 2.184 -0.377 2.249 -0.592 2.249 c -1.369 2.249 -1.878 1.441 -1.878 0.73 c -1.878 0.102 -1.496 -0.592 -0.795 -0.592 c -0.46 -0.592 -0.227 -0.443 0 -0.209 c 0 -0.592 l 0.132 -0.592 l 0.939 -0.263 l 0.897 -0.162 l 0.694 -0.209 l 0.611 -0.209 0.485 -0.209 0.485 0.197 c 0.485 3.643 l 0.353 3.643 l -0.455 3.313 l -0.413 3.213 l -0.209 3.26 l -0.126 3.26 0 3.26 0 2.853 c h f 1 0 0 1 2.0099 0 cm 0 0 m 0 -0.353 0.137 -0.395 0.413 -0.4 c 0.413 -0.509 l -0.897 -0.509 l -0.897 -0.4 l -0.622 -0.395 -0.485 -0.353 -0.485 0 c -0.485 1.459 l -0.485 1.866 -0.611 1.866 -0.694 1.866 c -0.897 1.819 l -0.939 1.92 l -0.132 2.249 l 0 2.249 l h -0.246 3.643 m -0.084 3.643 0.048 3.511 0.048 3.35 c 0.048 3.188 -0.084 3.057 -0.246 3.057 c -0.407 3.057 -0.539 3.188 -0.539 3.35 c -0.539 3.511 -0.407 3.643 -0.246 3.643 c f 1 0 0 1 2.4941 1.3338 cm 0 0 m -0.107 0 l -0.197 0.401 -0.358 0.736 -0.825 0.736 c -1.041 0.736 -1.28 0.616 -1.28 0.371 c -1.28 -0.281 0.197 -0.197 0.197 -1.125 c 0.197 -1.615 -0.263 -1.926 -0.718 -1.926 c -0.892 -1.926 -1.083 -1.884 -1.256 -1.836 c -1.406 -1.806 l -1.513 -1.884 l -1.621 -1.884 l -1.621 -0.927 l -1.513 -0.927 l -1.459 -1.346 -1.143 -1.747 -0.694 -1.747 c -0.449 -1.747 -0.233 -1.603 -0.233 -1.34 c -0.233 -0.64 -1.627 -0.736 -1.627 0.114 c -1.627 0.604 -1.274 0.915 -0.795 0.915 c -0.67 0.915 -0.574 0.885 -0.455 0.85 c -0.233 0.802 l -0.107 0.915 l 0 0.915 l h f 1 0 0 1 1.7944 0.7117 cm 0 0 m 0.664 0 0.843 -0.885 0.843 -1.406 c 0.843 -1.824 0.741 -2.435 0.197 -2.435 c -0.467 -2.435 -0.652 -1.501 -0.652 -0.987 c -0.652 -0.221 -0.293 0 0 0 c 0.102 0.204 m -0.682 0.204 -1.196 -0.509 -1.196 -1.244 c -1.196 -1.961 -0.7 -2.637 0.06 -2.637 c 1.004 -2.637 1.387 -1.77 1.387 -1.155 c 1.387 -0.425 0.85 0.204 0.102 0.204 c f 1 0 0 1 2.56 -0.3588 cm 0 0 m 0.335 0.371 0.569 0.562 0.909 0.562 c 1.394 0.562 1.585 0.107 1.585 -0.341 c 1.585 -1.687 l 1.585 -2.04 1.723 -2.082 1.998 -2.088 c 1.998 -2.195 l 0.688 -2.195 l 0.688 -2.088 l 0.964 -2.082 1.101 -2.04 1.101 -1.687 c 1.101 -0.449 l 1.101 0.144 0.855 0.204 0.676 0.204 c 0.401 0.204 0.197 0.024 0 -0.179 c 0 -1.687 l 0 -2.04 0.137 -2.082 0.413 -2.088 c 0.413 -2.195 l -0.897 -2.195 l -0.897 -2.088 l -0.622 -2.082 -0.485 -2.04 -0.485 -1.687 c -0.485 -0.227 l -0.485 0.179 -0.611 0.179 -0.694 0.179 c -0.897 0.132 l -0.939 0.233 l -0.132 0.562 l 0 0.562 l h f 1 0 0 1 -12.104 -5.5871 cm 0 0 m 0.048 0.137 0.144 0.401 0.144 0.539 c 0.144 0.766 -0.024 0.82 -0.293 0.82 c -0.293 0.927 l 0.892 0.927 l 0.892 0.82 l 0.497 0.82 0.413 0.49 0.305 0.174 c -0.832 -3.122 l -0.945 -3.122 l -1.842 -0.611 l -1.854 -0.611 l -2.734 -3.122 l -2.853 -3.122 l -4.073 0.293 l -4.205 0.67 -4.265 0.82 -4.624 0.82 c -4.624 0.927 l -3.158 0.927 l -3.158 0.82 l -3.374 0.82 -3.547 0.771 -3.547 0.569 c -3.547 0.472 -3.487 0.317 -3.457 0.227 c -2.649 -2.075 l -2.637 -2.075 l -1.98 -0.227 l -2.142 0.216 l -2.267 0.55 -2.356 0.82 -2.751 0.82 c -2.751 0.927 l -1.202 0.927 l -1.202 0.82 l -1.454 0.82 -1.627 0.802 -1.627 0.55 c -1.627 0.377 -1.531 0.132 -1.471 -0.03 c -0.741 -2.075 l -0.73 -2.075 l h f 1 0 0 1 1.0896 -1.1903 cm 0 0 m 0.024 0.347 0.275 0.7 0.628 0.7 c 1.053 0.7 1.238 0.371 1.238 0 c h 1.848 -0.179 m 1.848 0.467 1.441 0.915 0.825 0.915 c -0.024 0.915 -0.413 0.221 -0.413 -0.55 c -0.413 -1.37 0.102 -1.926 0.753 -1.926 c 1.357 -1.926 1.747 -1.417 1.848 -0.867 c 1.759 -0.808 l 1.621 -1.196 1.387 -1.447 0.957 -1.447 c 0.305 -1.447 -0.006 -0.778 -0.006 -0.179 c h f 1 0 0 1 3.9715 0 cm 0 0 m -0.107 0 l -0.197 0.401 -0.358 0.736 -0.825 0.736 c -1.041 0.736 -1.28 0.616 -1.28 0.371 c -1.28 -0.281 0.197 -0.197 0.197 -1.125 c 0.197 -1.615 -0.263 -1.926 -0.718 -1.926 c -0.892 -1.926 -1.083 -1.884 -1.256 -1.836 c -1.406 -1.806 l -1.513 -1.884 l -1.621 -1.884 l -1.621 -0.927 l -1.513 -0.927 l -1.459 -1.346 -1.143 -1.747 -0.694 -1.747 c -0.449 -1.747 -0.233 -1.603 -0.233 -1.34 c -0.233 -0.64 -1.627 -0.736 -1.627 0.114 c -1.627 0.604 -1.274 0.915 -0.795 0.915 c -0.67 0.915 -0.574 0.885 -0.455 0.85 c -0.233 0.802 l -0.107 0.915 l 0 0.915 l h f 1 0 0 1 1.4954 -1.3338 cm 0 0 m 0 -0.353 0.137 -0.395 0.413 -0.4 c 0.413 -0.509 l -0.897 -0.509 l -0.897 -0.4 l -0.622 -0.395 -0.485 -0.353 -0.485 0 c -0.485 2.853 l -0.485 3.26 -0.611 3.26 -0.694 3.26 c -0.897 3.213 l -0.939 3.313 l -0.132 3.643 l 0 3.643 l h f 1 0 0 1 1.1783 1.3338 cm 0 0 m 0.024 0.347 0.275 0.7 0.628 0.7 c 1.053 0.7 1.238 0.371 1.238 0 c h 1.849 -0.179 m 1.849 0.467 1.442 0.915 0.825 0.915 c -0.024 0.915 -0.413 0.221 -0.413 -0.55 c -0.413 -1.37 0.102 -1.926 0.753 -1.926 c 1.357 -1.926 1.747 -1.417 1.849 -0.867 c 1.759 -0.808 l 1.621 -1.196 1.387 -1.447 0.957 -1.447 c 0.305 -1.447 -0.006 -0.778 -0.006 -0.179 c h f 1 0 0 1 2.4888 0.2154 cm 0 0 m -0.102 0.221 -0.239 0.479 -0.502 0.509 c -0.502 0.616 l 0.741 0.616 l 0.741 0.509 l 0.556 0.509 0.418 0.485 0.418 0.293 c 0.418 0.191 0.502 0.024 0.544 -0.072 c 1.166 -1.352 l 1.735 0.054 l 1.777 0.162 1.812 0.246 1.812 0.358 c 1.812 0.497 1.705 0.509 1.543 0.509 c 1.543 0.616 l 2.416 0.616 l 2.416 0.509 l 2.225 0.509 2.123 0.358 2.058 0.197 c 0.915 -2.602 l 0.682 -3.176 0.246 -3.35 0.035 -3.35 c -0.161 -3.35 -0.365 -3.23 -0.365 -3.015 c -0.365 -2.835 -0.221 -2.751 -0.06 -2.751 c 0.137 -2.751 0.233 -2.86 0.335 -2.86 c 0.574 -2.86 0.7 -2.524 0.771 -2.351 c 0.934 -1.95 l h f Q q 1 0 0 1 -0 -0 cm 236.255 162.621 20.899 20.578 re W n q 21.4613 0 0 21.1095 236.0445 162.4419 cm /Im4 Do Q Q q 1 0 0 1 -0 -0 cm 299.837 183.158 m 299.837 162.424 l 320.017 162.425 l 320.017 183.158 l h W n q 20.9277 0 0 21.2765 299.4394 162.0758 cm /Im5 Do Q Q q 1 0 0 1 -0 -0 cm 288.809 183.468 m 288.809 162.314 l 268.321 162.314 l 268.321 183.468 l 268.256 183.468 l 268.256 160.549 l 290.918 160.549 l 290.918 183.468 l h W n q 23.1768 0 0 23.4343 267.9989 160.2909 cm /Im6 Do Q Q q 1 0 0 1 -0 -0 cm 268.321 183.468 20.488 0.451 re W n q 20.9418 0 0 1.0267 267.9973 183.2356 cm /Im7 Do Q Q q 1 0 0 1 -0 -0 cm 268.321 162.314 20.488 21.154 re W n q 20.9418 0 0 21.8174 267.9973 161.9316 cm /Im8 Do Q Q q 1 0 0 1 -0 -0 cm 351.647 182.965 m 351.647 162.669 l 331.375 162.669 l 331.375 160.561 l 353.264 160.561 l 353.264 182.965 l h W n q 22.4042 0 0 22.9193 331.1177 160.3032 cm /Im9 Do Q Q q 1 0 0 1 -0 -0 cm 331.181 183.117 m 331.181 162.669 l 331.375 162.669 l 331.375 182.965 l 351.647 182.965 l 351.647 183.117 l h W n q 21.7036 0 0 21.7036 330.6014 162.0704 cm /Im10 Do Q Q q 1 0 0 1 -0 -0 cm 331.375 182.965 m 331.375 162.669 l 351.648 162.669 l 351.647 182.965 l h W n q 20.8591 0 0 20.8591 331.1177 162.3634 cm /Im11 Do Q Q BT 0 g /GS1 gs /TT1 1 Tf -0.025 Tc 0.079 Tw 9.657 0 0 9.657 236.254 149.6387 Tm [(M)-20(a)-17(k)-2(e s)-14(u)-17(r)-20(e t)-16(o co)-15(n)-20(n)-20(e)-21(c)-28(t w)-21(i)-17(t)-23(h u)-20(s)-4(!)]TJ 0 Tc 0 Tw 12 0 Td ( )Tj 0.027 Tc -0.027 Tw -12 -1.222 Td [(i)-16(n)-16(f)-6(o)-15(r)-32(m)-19(i)-17(t)-36(.co)-14(m/)67(s)-10(o)-15(c)-6(i)-16(a)-19(l)-17(co)-15(n)-20(n)-20(e)-21(c)-28(t)]TJ ET q 1 0 0 1 -0 -0 cm 24 24 540 675 re W n 1 0 0 1 89.4927 677.217 cm 0.291 g /GS0 gs 0 0 m -19.874 0 -19.874 -19.874 v -19.874 -57.942 l 429.28 -57.942 l 429.28 -19.874 l 429.28 0 409.406 0 v h f Q BT 1 g /GS0 gs /TT1 1 Tf 0.01 Tc 0 Tw 25.752 0 0 25.752 183.0389 654.3553 Tm [(T)-2(h)-4(e A)8(ddi)-1(s)7(o)2(n)-12(-)31(W)50(e)-6(s)1(l)-1(e)13(y)]TJ -1.93 -1.021 Td [(P)1(ro)9(f)5(e)-6(s)2(s)3(i)4(o)2(n)-2(a)-3(l C)5(o)2(m)-4(p)-2(u)-2(t)-7(in)1(g S)-9(e)-7(r)-17(ie)-6(s)10( )-10( )]TJ ET q 1 0 0 1 -0 -0 cm 0.291 g 24 24 540 38.065 re f Q q 1 0 0 1 -0 -0 cm 24 24 540 675 re W n 1 0 0 1 522.1914 54.1004 cm 0 0 m -2.782 0 -5.132 -2.38 -5.132 -5.198 c -5.132 -8.401 -2.954 -10.727 0.042 -10.727 c 2.871 -10.727 5.171 -8.247 5.171 -5.198 c 5.171 -2.332 2.851 0 0 0 c 0.042 -9.419 m -2.35 -9.419 -3.219 -6.923 -3.219 -5.248 c -3.219 -3.724 -2.344 -1.311 0 -1.311 c 2.25 -1.311 3.26 -3.583 3.26 -5.198 c 3.26 -7.295 2.156 -9.419 0.042 -9.419 c -48.731 -0.001 m -46.916 -0.001 -44.974 -0.807 -44.974 -3.071 c -44.974 -5.256 -47.107 -6.567 -49.327 -6.569 c -49.334 -6.206 -49.34 -5.831 -49.344 -5.455 c -47.665 -5.326 -46.763 -4.512 -46.763 -3.166 c -46.763 -2.01 -47.7 -1.2 -49.047 -1.2 c -50.132 -1.2 l -50.134 -4.568 -50.065 -9.411 -49.932 -10.614 c -50.653 -10.469 -51.249 -10.465 -51.992 -10.614 c -51.823 -9.148 -51.71 -1.382 -52.003 0.002 c -50.638 -0.045 -50.338 -0.045 v -49.982 -0.003 -49.1 -0.001 -48.731 -0.001 c -31.329 -0.077 m -31.854 -2.138 -34.056 -8.089 -35.117 -10.616 c -34.423 -10.519 -33.688 -10.541 -33.351 -10.597 c -32.999 -9.463 -32.617 -8.114 -32.449 -7.608 c -31.351 -7.528 -30.052 -7.528 -28.745 -7.608 c -28.35 -8.668 -28.117 -9.419 -27.757 -10.593 c -27.08 -10.528 -26.389 -10.536 -25.656 -10.601 c -26.708 -8.075 -29.151 -1.568 -29.541 -0.076 c -30.072 -0.141 -30.751 -0.141 -31.329 -0.077 c -32.029 -6.191 m -31.017 -3.193 -30.678 -2.16 v -29.633 -5.122 -29.263 -6.191 v -30.382 -6.305 -30.949 -6.305 -32.029 -6.191 c -40.8 -9.276 m -39.692 -9.324 -37.046 -9.168 y -37.039 -10.305 -37.114 -10.644 y -38.101 -10.512 -41.071 -10.449 -42.681 -10.644 c -42.446 -8.075 -42.525 -2.778 -42.671 -0.031 c -41.185 -0.156 -38.34 -0.132 -37.138 -0.031 c -37.138 -1.515 l -38.169 -1.417 -39.81 -1.318 -40.747 -1.349 c -40.786 -3.807 -40.757 -4.436 v -39.082 -4.555 -37.852 -4.356 -37.324 -4.318 c -37.324 -5.798 l -39.269 -5.607 -40.751 -5.72 v -40.8 -6.711 -40.8 -8.177 -40.8 -9.276 c 16.119 -10.384 m 16.158 -10.603 l 15.699 -10.533 15 -10.521 14.562 -10.591 c 13.727 -9.358 10.425 -4.842 9.119 -3.157 c 9.072 -5.623 9.042 -9.352 9.195 -10.581 c 8.997 -10.587 8.703 -10.57 8.554 -10.57 c 8.11 -10.57 7.91 -10.549 7.513 -10.603 c 7.73 -9.329 7.782 -1.474 7.513 -0.091 c 8.147 -0.104 8.668 -0.114 8.835 -0.101 c 8.985 -0.091 9.086 -0.077 y 12.637 -4.839 14.492 -7.329 v 14.51 -6.388 14.596 -1.658 14.418 -0.054 c 14.667 -0.089 14.976 -0.179 15.284 -0.174 c 15.566 -0.168 15.871 -0.101 16.149 -0.05 c 15.895 -2.055 15.804 -8.884 16.119 -10.384 c -16.801 -2.84 m -16.801 -4.541 -17.95 -5.521 -19.056 -5.738 c -18.253 -6.77 -15.348 -10.619 y -16.081 -10.509 -17.157 -10.528 -17.696 -10.592 c -18.622 -9.145 -20.185 -6.906 -20.784 -6.182 c -20.796 -5.766 -20.8 -5.449 -20.808 -5.04 c -19.008 -5.079 -18.627 -3.881 -18.627 -3.032 c -18.627 -1.902 -19.654 -1.311 -20.668 -1.311 c -21.549 -1.311 l -21.624 -3.33 -21.48 -8.29 -21.392 -10.597 c -22.094 -10.524 -22.87 -10.536 -23.429 -10.597 c -23.192 -8.906 -23.234 -1.209 -23.429 -0.034 c -22.318 -0.119 -21.837 -0.091 v -21.401 -0.068 -20.994 -0.045 -20.483 -0.045 c -19.375 -0.045 -16.801 -0.317 -16.801 -2.84 c -9.327 -4.597 m -8.169 -5.335 -7.286 -6.024 -7.286 -7.597 c -7.286 -9.866 -9.06 -10.671 -10.583 -10.671 c -11.837 -10.671 -13.167 -10.01 -13.782 -9.535 c -13.552 -9.079 -13.311 -8.61 -13.132 -7.965 c -12.45 -8.73 -11.397 -9.27 -10.675 -9.27 c -9.724 -9.27 -9.151 -8.75 -9.151 -7.878 c -9.113 -7.223 -9.583 -6.761 -10.171 -6.268 c -10.601 -5.912 -11.688 -5.208 -11.948 -4.998 c -12.804 -4.3 -13.33 -3.715 -13.33 -2.602 c -13.33 -1.118 -12.012 0 -10.262 0 c -9.367 0 -8.529 -0.267 -7.506 -0.951 c -7.757 -1.332 -8.108 -1.917 -8.29 -2.456 c -8.701 -1.899 -9.333 -1.311 -10.209 -1.311 c -11.038 -1.311 -11.553 -1.792 -11.553 -2.562 c -11.553 -2.814 -11.371 -3.102 -10.995 -3.438 c -10.622 -3.759 -10.107 -4.119 -9.327 -4.597 c f 1 0 0 1 -471.0003 -2.7549 cm 0 0 m 0.498 0 l 2.729 -5.003 l 2 -5.003 l 1.336 -3.528 l -0.783 -3.528 l -1.406 -5.003 l -2.136 -5.003 l h 1.046 -2.898 m 0.245 -1.092 l -0.501 -2.898 l h 4.439 -0.028 m 5.151 -0.028 l 5.151 -4.353 l 7.393 -4.353 l 7.393 -5.003 l 4.439 -5.003 l h 15.074 -0.028 m 15.785 -0.028 l 13.776 -5.024 l 13.619 -5.024 l 11.993 -0.979 l 10.351 -5.024 l 10.197 -5.024 l 8.195 -0.028 l 8.91 -0.028 l 10.279 -3.456 l 11.662 -0.028 l 12.334 -0.028 l 13.722 -3.456 l h 18.8 0 m 19.3 0 l 21.529 -5.003 l 20.801 -5.003 l 20.14 -3.528 l 18.017 -3.528 l 17.395 -5.003 l 16.664 -5.003 l h 19.846 -2.898 m 19.043 -1.092 l 18.297 -2.898 l h 25.723 -0.028 m 26.585 -0.028 l 24.748 -2.371 l 24.748 -5.003 l 24.02 -5.003 l 24.02 -2.371 l 22.183 -0.028 l 23.043 -0.028 l 24.372 -1.743 l h 29.68 -2.921 m 29.137 -2.591 l 28.797 -2.384 28.557 -2.18 28.413 -1.982 c 28.269 -1.78 28.197 -1.549 28.197 -1.289 c 28.197 -0.891 28.333 -0.579 28.603 -0.333 c 28.874 -0.088 29.23 0.033 29.664 0.033 c 30.079 0.033 30.459 -0.086 30.808 -0.315 c 30.808 -1.123 l 30.447 -0.781 30.062 -0.606 29.65 -0.606 c 29.416 -0.606 29.226 -0.659 29.075 -0.767 c 28.926 -0.873 28.852 -1.014 28.852 -1.177 c 28.852 -1.329 28.906 -1.469 29.016 -1.598 c 29.129 -1.728 29.304 -1.868 29.548 -2.009 c 30.091 -2.331 l 30.697 -2.693 31.001 -3.152 31.001 -3.71 c 31.001 -4.109 30.87 -4.436 30.604 -4.684 c 30.337 -4.936 29.987 -5.06 29.56 -5.06 c 29.07 -5.06 28.621 -4.909 28.219 -4.609 c 28.219 -3.703 l 28.603 -4.188 29.047 -4.431 29.555 -4.431 c 29.777 -4.431 29.964 -4.369 30.111 -4.246 c 30.26 -4.124 30.334 -3.967 30.334 -3.779 c 30.334 -3.477 30.113 -3.19 29.68 -2.921 c 36.726 -0.028 m 37.438 -0.028 l 37.438 -4.353 l 39.677 -4.353 l 39.677 -5.003 l 36.726 -5.003 l h 41.758 -0.028 m 44.577 -0.028 l 44.577 -0.661 l 42.469 -0.661 l 42.469 -2.18 l 44.506 -2.18 l 44.506 -2.816 l 42.469 -2.816 l 42.469 -4.362 l 44.645 -4.362 l 44.645 -4.994 l 41.758 -4.994 l h 48.595 0 m 49.096 0 l 51.325 -5.003 l 50.599 -5.003 l 49.933 -3.528 l 47.811 -3.528 l 47.189 -5.003 l 46.459 -5.003 l h 49.641 -2.898 m 48.839 -1.092 l 48.095 -2.898 l h 53.35 -5.003 m 53.35 -0.028 l 54.595 -0.028 l 55.097 -0.028 55.498 -0.155 55.793 -0.405 c 56.088 -0.652 56.236 -0.99 56.236 -1.414 c 56.236 -1.706 56.164 -1.952 56.018 -2.162 c 55.873 -2.379 55.666 -2.534 55.396 -2.64 c 55.555 -2.74 55.709 -2.886 55.863 -3.067 c 56.016 -3.247 56.228 -3.561 56.502 -4.006 c 56.675 -4.289 56.816 -4.503 56.918 -4.648 c 57.183 -5.003 l 56.336 -5.003 l 56.12 -4.674 l 56.075 -4.614 l 55.938 -4.419 l 55.718 -4.053 l 55.482 -3.666 l 55.332 -3.466 55.196 -3.301 55.073 -3.177 c 54.954 -3.057 54.841 -2.972 54.747 -2.921 c 54.646 -2.865 54.48 -2.838 54.247 -2.838 c 54.062 -2.838 l 54.062 -5.003 l h 54.276 -0.633 m 54.062 -0.633 l 54.062 -2.206 l 54.333 -2.206 l 54.692 -2.206 54.94 -2.176 55.073 -2.114 c 55.209 -2.049 55.311 -1.958 55.387 -1.831 c 55.462 -1.708 55.501 -1.567 55.501 -1.408 c 55.501 -1.249 55.459 -1.109 55.375 -0.986 c 55.291 -0.854 55.175 -0.767 55.025 -0.712 c 54.871 -0.661 54.624 -0.633 54.276 -0.633 c 63.139 -0.028 m 63.815 -0.028 l 63.815 -5.003 l 63.205 -5.003 l 59.88 -1.172 l 59.88 -5.003 l 59.211 -5.003 l 59.211 -0.028 l 59.788 -0.028 l 63.139 -3.894 l h 66.347 -0.028 0.711 -4.973 re 73.57 -0.028 m 74.247 -0.028 l 74.247 -5.003 l 73.636 -5.003 l 70.308 -1.172 l 70.308 -5.003 l 69.639 -5.003 l 69.639 -0.028 l 70.216 -0.028 l 73.57 -3.894 l h 79.023 -2.551 m 80.691 -2.551 l 80.691 -4.66 l 80.079 -4.926 79.471 -5.06 78.871 -5.06 c 78.047 -5.06 77.387 -4.822 76.894 -4.337 c 76.404 -3.86 76.154 -3.267 76.154 -2.56 c 76.154 -1.819 76.41 -1.197 76.922 -0.707 c 77.434 -0.215 78.07 0.033 78.842 0.033 c 79.119 0.033 79.385 0.002 79.639 -0.055 c 79.89 -0.12 80.208 -0.225 80.592 -0.393 c 80.592 -1.116 l 79.999 -0.769 79.411 -0.599 78.825 -0.599 c 78.283 -0.599 77.826 -0.784 77.452 -1.156 c 77.077 -1.524 76.894 -1.982 76.894 -2.517 c 76.894 -3.082 77.077 -3.543 77.452 -3.899 c 77.826 -4.26 78.304 -4.441 78.889 -4.441 c 79.175 -4.441 79.515 -4.375 79.912 -4.246 c 79.98 -4.225 l 79.98 -3.185 l 79.023 -3.185 l h f Q q 1 0 0 1 43.98 25.62 cm 0 g /GS2 gs 0 Tc /Fm1 Do Q endstream endobj 47804 0 obj <> endobj 47805 0 obj <>stream q /Fm0 Do Q BT /CS0 cs 0.291 scn /GS0 gs /TT0 1 Tf 0.01 Tc 0.183 Tw 12 0 0 12 87 334.4833 Tm [(T)-1(h)1(e A)9(dd)-1(i)-2(s)7(o)-1(n)-14(-)26(W)52(e)-7(s)2(le)12(y P)-5(r)10(o)2(f)7(e)-7(s)-2(s)2(i)3(o)-1(n)-7(a)-1(l C)2(o)-2(m)-3(p)1(u)-4(tin)2(g S)-8(e)-8(r)-4(i)3(e)-7(s)]TJ 0 scn /GS1 gs /TT1 1 Tf 0.165 Tw 22.363 0 Td [( w)-6(a)-16(s c)7(r)-8(e)-6(a)6(t)-7(e)-8(d i)-4(n 1)65(9)-3(9)-11(0 t)-4(o)10( )]TJ 0.137 Tw -22.363 -1.417 Td [(p)-3(r)-4(o)14(v)-9(i)-2(d)-4(e s)3(e)-11(r)-21(i)1(o)-3(u)-8(s p)-3(r)-4(o)1(g)-7(r)-24(a)-5(m)-8(m)-8(e)-11(r)-24(s a)-5(n)-6(d n)-8(e)-2(t)-30(w)12(o)-2(r)-21(k)-24(i)-4(n)-3(g p)-3(r)-4(o)5(f)1(e)-10(s)-1(si)1(o)-2(n)-6(a)-7(l)-8(s w)-9(i)-5(t)-11(h w)9(e)-10(l)-4(l)-12(-)2(w)-9(r)-21(i)-5(t)-27(t)-7(e)-11(n)10( )]TJ 0.117 Tw 0 -1.417 TD [(a)-5(n)-6(d p)-3(r)-24(ac)-16(t)-11(i)-1(c)-5(a)-7(l r)-8(e)-5(f)1(e)-11(r)-8(e)-11(n)-8(c)10(e b)-1(oo)-2(k)-28(s)-5(. T)-6(h)-8(e)-11(r)-8(e a)-5(r)-8(e f)1(e)5(w p)-4(l)-5(ac)10(e)-9(s t)-4(o t)-10(u)-5(r)-21(n f)7(o)-2(r ac)9(c)7(u)-5(r)-24(a)6(t)-7(e a)-5(n)-6(d)10( )]TJ 0.036 Tw T* [(a)-3(u)-6(t)-11(h)-4(o)-2(r)-21(i)-5(t)-22(a)6(t)-11(i)-9(v)9(e b)-1(oo)-2(k)-29(s o)-2(n c)7(u)-5(r)-21(r)-8(e)-11(nt a)-5(n)-6(d c)7(u)-6(t)-27(t)-11(i)-4(n)-3(g)-4(-)-20(e)-8(d)-1(g)3(e t)-7(e)-8(c)7(h)-8(n)-4(o)-3(l)-4(o)1(g)-38(y)55(. W)45(e h)-4(o)-2(p)-3(e t)-11(h)-6(a)6(t o)-3(u)-5(r)10( )]TJ 0.066 Tw T* [(b)-1(oo)-2(k)-29(s w)-9(i)-5(l)-4(l h)-8(e)-10(l)-4(p y)15(o)-3(u u)-5(n)-6(d)-4(e)-11(r)-24(s)-9(t)-22(a)-5(n)-6(d t)-11(h)-8(e s)-9(t)-22(a)6(t)-7(e o)5(f t)-11(h)-8(e a)-5(r)-48(t i)-4(n p)-3(r)-4(o)1(g)-7(r)-24(a)-5(m)-8(m)-7(i)-4(n)-3(g l)-5(a)-5(n)-3(g)-11(u)-5(a)-2(g)3(e)-10(s)-5(,)10( )]TJ 0 Tw T* [(o)-2(p)-3(e)-11(r)-24(a)6(t)-11(i)-4(n)-3(g s)-12(y)-3(s)-9(t)-7(e)-10(m)-8(s)-5(, a)-5(n)-6(d n)-8(e)-2(t)-30(w)12(o)-2(r)-21(k)-29(s)-5(.)10( )]TJ 0.291 scn /GS0 gs /TT0 1 Tf 0 Tc 8.675 -2.417 Td [(C)2(o)-1(n)-2(s)4(u)2(l)-4(tin)3(g E)11(d)-1(i)-4(t)1(o)-2(r B)-19(r)-4(i)-7(a)-2(n W)64(. K)28(e)-8(r)-6(n)3(ig)-3(h)-7(a)-2(n)]TJ ET q 1 0 0 1 84.606 359.2 cm /CS0 CS 0.509 SCN 4 M 0 0 m 382.788 0 l S Q BT 0 scn /GS1 gs /TT1 1 Tf 0.01 Tc -0.01 Tw 12 0 0 12 154.5543 394.7161 Tm [(V)-3(i)-4(si)-5(t )]TJ 0.291 scn /GS0 gs /TT0 1 Tf 0.023 Tc -0.023 Tw 2.01 0 Td [(i)-2(n)-2(f)7(o)-4(r)-9(mi)-6(t)-30(.)6(c)4(o)-4(m)-9(/)27(s)4(e)-10(r)-6(i)1(e)-9(s)-6(/)23(p)-5(r)8(of)5(e)-9(s)-4(si)1(o)-3(n)-9(a)-3(l)-3(c)4(o)-4(m)-5(p)-1(u)-6(t)-2(i)-2(ng)]TJ 0 scn /GS1 gs /TT2 1 Tf 0 Tc 0 Tw 18.231 0 Td [( )-35( )]TJ /TT1 1 Tf 0.015 Tc -0.005 Tw -18.895 -1.333 Td [(f)12(o)3(r)5( a)5( c)19(o)3(m)-3(p)1(le)3(t)-2(e)5( l)1(i)1(s)-4(t)5( o)10(f)5( a)20(v)-1(ailab)1(le)5( p)-1(ub)1(l)1(i)3(ca)11(t)-6(i)6(o)3(n)-3(s.)]TJ ET q 0 0 552 705 re W n q 1 0 0 1 39.6219 44.0859 cm 0.95 scn /GS0 gs 0 0 m 0.628 0 l 3.438 -6.304 l 2.521 -6.304 l 1.684 -4.446 l -0.987 -4.446 l -1.771 -6.304 l -2.693 -6.304 l h 1.318 -3.652 m 0.308 -1.377 l -0.632 -3.652 l h 5.596 -0.035 m 6.493 -0.035 l 6.493 -5.486 l 9.317 -5.486 l 9.317 -6.304 l 5.596 -6.304 l h 18.999 -0.035 m 19.896 -0.035 l 17.363 -6.331 l 17.165 -6.331 l 15.117 -1.234 l 13.047 -6.331 l 12.852 -6.331 l 10.328 -0.035 l 11.23 -0.035 l 12.956 -4.357 l 14.698 -0.035 l 15.546 -0.035 l 17.294 -4.357 l h 23.695 0 m 24.326 0 l 27.135 -6.304 l 26.217 -6.304 l 25.384 -4.446 l 22.709 -4.446 l 21.925 -6.304 l 21.002 -6.304 l h 25.015 -3.652 m 24.001 -1.377 l 23.062 -3.652 l h 32.421 -0.035 m 33.507 -0.035 l 31.192 -2.989 l 31.192 -6.304 l 30.274 -6.304 l 30.274 -2.989 l 27.959 -0.035 l 29.043 -0.035 l 30.719 -2.195 l h 37.409 -3.68 m 36.724 -3.267 l 36.297 -3.005 35.993 -2.748 35.812 -2.498 c 35.63 -2.241 35.541 -1.952 35.541 -1.624 c 35.541 -1.123 35.711 -0.73 36.051 -0.419 c 36.393 -0.112 36.841 0.042 37.388 0.042 c 37.912 0.042 38.391 -0.108 38.831 -0.398 c 38.831 -1.416 l 38.377 -0.984 37.89 -0.765 37.371 -0.765 c 37.076 -0.765 36.837 -0.831 36.646 -0.967 c 36.459 -1.1 36.365 -1.277 36.365 -1.484 c 36.365 -1.674 36.432 -1.852 36.571 -2.014 c 36.714 -2.177 36.934 -2.354 37.243 -2.533 c 37.928 -2.936 l 38.692 -3.395 39.074 -3.974 39.074 -4.677 c 39.074 -5.178 38.907 -5.59 38.573 -5.903 c 38.236 -6.22 37.797 -6.377 37.258 -6.377 c 36.64 -6.377 36.074 -6.187 35.567 -5.808 c 35.567 -4.667 l 36.051 -5.278 36.611 -5.586 37.251 -5.586 c 37.53 -5.586 37.766 -5.507 37.951 -5.351 c 38.14 -5.196 38.231 -5 38.231 -4.765 c 38.231 -4.383 37.954 -4.02 37.409 -3.68 c 46.289 -0.035 m 47.186 -0.035 l 47.186 -5.486 l 50.009 -5.486 l 50.009 -6.304 l 46.289 -6.304 l h 52.632 -0.035 m 56.185 -0.035 l 56.185 -0.833 l 53.528 -0.833 l 53.528 -2.748 l 56.095 -2.748 l 56.095 -3.548 l 53.528 -3.548 l 53.528 -5.497 l 56.271 -5.497 l 56.271 -6.295 l 52.632 -6.295 l h 61.249 0 m 61.881 0 l 64.69 -6.304 l 63.776 -6.304 l 62.936 -4.446 l 60.261 -4.446 l 59.478 -6.304 l 58.558 -6.304 l h 62.567 -3.652 m 61.556 -1.377 l 60.62 -3.652 l h 67.241 -6.304 m 67.241 -0.035 l 68.812 -0.035 l 69.444 -0.035 69.95 -0.193 70.322 -0.509 c 70.693 -0.823 70.88 -1.248 70.88 -1.782 c 70.88 -2.151 70.789 -2.461 70.605 -2.724 c 70.424 -2.998 70.162 -3.194 69.822 -3.326 c 70.021 -3.454 70.216 -3.638 70.408 -3.866 c 70.602 -4.092 70.87 -4.489 71.215 -5.049 c 71.433 -5.407 71.611 -5.676 71.741 -5.858 c 72.074 -6.304 l 71.005 -6.304 l 70.734 -5.891 l 70.725 -5.876 70.706 -5.85 70.678 -5.815 c 70.504 -5.569 l 70.227 -5.108 l 69.929 -4.621 l 69.742 -4.367 69.569 -4.16 69.414 -4.005 c 69.264 -3.852 69.122 -3.745 69.002 -3.68 c 68.875 -3.611 68.667 -3.576 68.372 -3.576 c 68.141 -3.576 l 68.141 -6.304 l h 68.41 -0.798 m 68.141 -0.798 l 68.141 -2.781 l 68.481 -2.781 l 68.933 -2.781 69.245 -2.743 69.414 -2.665 c 69.585 -2.582 69.715 -2.468 69.81 -2.307 c 69.905 -2.153 69.954 -1.975 69.954 -1.774 c 69.954 -1.574 69.9 -1.398 69.796 -1.243 c 69.688 -1.076 69.543 -0.967 69.353 -0.899 c 69.16 -0.833 68.848 -0.798 68.41 -0.798 c 79.58 -0.035 m 80.432 -0.035 l 80.432 -6.304 l 79.664 -6.304 l 75.473 -1.478 l 75.473 -6.304 l 74.63 -6.304 l 74.63 -0.035 l 75.357 -0.035 l 79.58 -4.907 l h 83.623 -0.035 0.896 -6.268 re 92.729 -0.035 m 93.581 -0.035 l 93.581 -6.304 l 92.81 -6.304 l 88.618 -1.478 l 88.618 -6.304 l 87.774 -6.304 l 87.774 -0.035 l 88.5 -0.035 l 92.729 -4.907 l h 99.6 -3.214 m 101.702 -3.214 l 101.702 -5.873 l 100.931 -6.209 100.165 -6.377 99.408 -6.377 c 98.371 -6.377 97.539 -6.076 96.917 -5.466 c 96.299 -4.865 95.985 -4.117 95.985 -3.225 c 95.985 -2.293 96.309 -1.509 96.952 -0.891 c 97.598 -0.27 98.4 0.042 99.371 0.042 c 99.721 0.042 100.057 0.003 100.377 -0.069 c 100.693 -0.151 101.094 -0.284 101.579 -0.494 c 101.579 -1.406 l 100.83 -0.97 100.089 -0.755 99.351 -0.755 c 98.668 -0.755 98.092 -0.988 97.621 -1.456 c 97.147 -1.921 96.917 -2.498 96.917 -3.172 c 96.917 -3.884 97.147 -4.466 97.621 -4.914 c 98.092 -5.368 98.694 -5.598 99.432 -5.598 c 99.791 -5.598 100.221 -5.514 100.721 -5.351 c 100.807 -5.326 l 100.807 -4.013 l 99.6 -4.013 l h f Q Q 1 scn /GS0 gs 66.8 547.89 417.472 19.398 re f 0.291 scn 66.959 419.673 418.083 179.486 re f q 66.959 419.674 418.082 179.485 re W n q 420.24 0 0 181.6416 65.8224 418.6632 cm /Im0 Do Q Q /CS0 CS 0.509 SCN 0.514 w 4 M 66.959 419.673 418.083 179.486 re S q 1 0 0 1 226.0941 441.8248 cm 0 scn /GS1 gs 0 0 m -6.182 0 l -3.119 5.375 l h f Q q 1 0 0 1 222.2353 440.7093 cm 0 scn /GS1 gs 0 0 m -3.088 -5.355 l -6.215 -0.016 l h f Q q 1 0 0 1 229.6779 440.7093 cm 0 scn /GS1 gs 0 0 m -3.088 -5.355 l -6.215 -0.016 l h f Q q 0 0 552 705 re W n q 1 0 0 1 238.1612 439.732 cm 0 scn /GS1 gs 0 0 m -3.66 0 l -1.814 4.286 l h 0.209 -0.578 m 0.786 -1.91 l 0.915 -2.231 1.172 -2.777 1.172 -3.13 c 1.172 -3.692 0.77 -3.82 0.08 -3.852 c 0.08 -4.141 l 4.27 -4.141 l 4.27 -3.852 l 3.082 -3.804 2.777 -2.905 2.376 -1.942 c -1.236 6.725 l -1.525 6.725 l -5.345 -2.231 l -5.827 -3.355 -6.164 -3.772 -6.998 -3.852 c -6.998 -4.141 l -3.66 -4.141 l -3.66 -3.852 l -4.254 -3.804 -4.896 -3.74 -4.896 -3.146 c -4.896 -2.841 -4.671 -2.343 -4.543 -2.071 c -3.9 -0.578 l h f Q q 1 0 0 1 248.1768 436.9552 cm 0 scn /GS1 gs 0 0 m -0.369 -0.401 -0.819 -0.722 -1.38 -0.722 c -2.6 -0.722 -3.579 0.562 -3.579 2.52 c -3.579 5.024 -2.247 5.554 -1.669 5.554 c -0.578 5.554 0 4.462 0 3.499 c h 0 5.425 m -0.417 5.859 -1.011 6.035 -1.589 6.035 c -3.676 6.035 -5.04 3.868 -5.04 1.958 c -5.04 0.273 -4.013 -1.589 -2.135 -1.589 c -1.236 -1.589 -0.61 -1.188 0 -0.562 c 0 -1.589 l 0.353 -1.589 l 2.52 -0.706 l 2.408 -0.433 l 2.247 -0.498 2.038 -0.562 1.862 -0.562 c 1.637 -0.562 1.3 -0.562 1.3 0.53 c 1.3 9.775 l 0.947 9.775 l -1.22 8.892 l -1.108 8.619 l -0.947 8.683 -0.738 8.748 -0.562 8.748 c -0.337 8.748 0 8.748 0 7.656 c h f Q q 1 0 0 1 256.2023 436.9552 cm 0 scn /GS1 gs 0 0 m -0.369 -0.401 -0.819 -0.722 -1.38 -0.722 c -2.6 -0.722 -3.579 0.562 -3.579 2.52 c -3.579 5.024 -2.247 5.554 -1.669 5.554 c -0.578 5.554 0 4.462 0 3.499 c h 0 5.425 m -0.417 5.859 -1.011 6.035 -1.589 6.035 c -3.676 6.035 -5.04 3.868 -5.04 1.958 c -5.04 0.273 -4.013 -1.589 -2.135 -1.589 c -1.236 -1.589 -0.61 -1.188 0 -0.562 c 0 -1.589 l 0.353 -1.589 l 2.52 -0.706 l 2.408 -0.433 l 2.247 -0.498 2.038 -0.562 1.862 -0.562 c 1.637 -0.562 1.3 -0.562 1.3 0.53 c 1.3 9.775 l 0.947 9.775 l -1.22 8.892 l -1.108 8.619 l -0.947 8.683 -0.738 8.748 -0.562 8.748 c -0.337 8.748 0 8.748 0 7.656 c h f Q q 1 0 0 1 261.5955 436.9552 cm 0 scn /GS1 gs 0 0 m 0 -0.947 0.369 -1.059 1.107 -1.075 c 1.107 -1.364 l -2.408 -1.364 l -2.408 -1.075 l -1.669 -1.059 -1.3 -0.947 -1.3 0 c -1.3 3.916 l -1.3 5.008 -1.637 5.008 -1.862 5.008 c -2.039 5.008 -2.247 4.944 -2.408 4.88 c -2.52 5.152 l -0.353 6.035 l 0 6.035 l h -0.658 9.775 m -0.225 9.775 0.128 9.422 0.128 8.988 c 0.128 8.555 -0.225 8.202 -0.658 8.202 c -1.091 8.202 -1.445 8.555 -1.445 8.988 c -1.445 9.422 -1.091 9.775 -0.658 9.775 c f Q q 1 0 0 1 268.2887 440.5346 cm 0 scn /GS1 gs 0 0 m -0.289 0 l -0.53 1.075 -0.963 1.974 -2.215 1.974 c -2.793 1.974 -3.435 1.653 -3.435 0.995 c -3.435 -0.755 0.53 -0.53 0.53 -3.018 c 0.53 -4.334 -0.706 -5.168 -1.926 -5.168 c -2.391 -5.168 -2.905 -5.056 -3.371 -4.928 c -3.467 -4.896 -3.66 -4.847 -3.772 -4.847 c -3.916 -4.847 -4.029 -4.928 -4.061 -5.056 c -4.35 -5.056 l -4.35 -2.488 l -4.061 -2.488 l -3.916 -3.612 -3.066 -4.687 -1.862 -4.687 c -1.204 -4.687 -0.626 -4.302 -0.626 -3.595 c -0.626 -1.717 -4.366 -1.974 -4.366 0.305 c -4.366 1.621 -3.419 2.456 -2.135 2.456 c -1.798 2.456 -1.541 2.376 -1.22 2.279 c -1.027 2.231 -0.818 2.151 -0.626 2.151 c -0.417 2.151 -0.353 2.279 -0.289 2.456 c 0 2.456 l h f Q q 1 0 0 1 273.1041 442.4445 cm 0 scn /GS1 gs 0 0 m 1.782 0 2.263 -2.376 2.263 -3.772 c 2.263 -4.895 1.99 -6.533 0.53 -6.533 c -1.252 -6.533 -1.75 -4.029 -1.75 -2.648 c -1.75 -0.594 -0.786 0 0 0 c 0.273 0.546 m -1.83 0.546 -3.21 -1.364 -3.21 -3.339 c -3.21 -5.265 -1.878 -7.078 0.16 -7.078 c 2.697 -7.078 3.724 -4.751 3.724 -3.098 c 3.724 -1.14 2.279 0.546 0.273 0.546 c f Q q 1 0 0 1 279.9739 441.4816 cm 0 scn /GS1 gs 0 0 m 0.899 0.995 1.525 1.509 2.44 1.509 c 3.74 1.509 4.253 0.289 4.253 -0.915 c 4.253 -4.526 l 4.253 -5.474 4.623 -5.586 5.361 -5.602 c 5.361 -5.891 l 1.846 -5.891 l 1.846 -5.602 l 2.584 -5.586 2.953 -5.474 2.953 -4.526 c 2.953 -1.204 l 2.953 0.385 2.295 0.546 1.814 0.546 c 1.075 0.546 0.53 0.064 0 -0.482 c 0 -4.526 l 0 -5.474 0.369 -5.586 1.107 -5.602 c 1.107 -5.891 l -2.408 -5.891 l -2.408 -5.602 l -1.669 -5.586 -1.3 -5.474 -1.3 -4.526 c -1.3 -0.61 l -1.3 0.481 -1.637 0.481 -1.862 0.481 c -2.039 0.481 -2.247 0.417 -2.408 0.353 c -2.52 0.626 l -0.353 1.509 l 0 1.509 l h f Q Q 0 scn /GS1 gs 290.102 438.576 -4.061 1.236 re f q 0 0 552 705 re W n q 1 0 0 1 302.06 443.7286 cm 0 0 m 0.128 0.369 0.385 1.075 0.385 1.445 c 0.385 2.054 -0.064 2.199 -0.786 2.199 c -0.786 2.488 l 2.391 2.488 l 2.391 2.199 l 1.332 2.199 1.107 1.316 0.818 0.466 c -2.231 -8.379 l -2.536 -8.379 l -4.944 -1.637 l -4.976 -1.637 l -7.335 -8.379 l -7.656 -8.379 l -10.931 0.786 l -11.284 1.798 -11.444 2.199 -12.408 2.199 c -12.408 2.488 l -8.475 2.488 l -8.475 2.199 l -9.053 2.199 -9.518 2.071 -9.518 1.525 c -9.518 1.268 -9.358 0.851 -9.278 0.61 c -7.111 -5.57 l -7.078 -5.57 l -5.313 -0.61 l -5.746 0.578 l -6.083 1.477 -6.324 2.199 -7.384 2.199 c -7.384 2.488 l -3.226 2.488 l -3.226 2.199 l -3.9 2.199 -4.366 2.151 -4.366 1.477 c -4.366 1.011 -4.109 0.353 -3.949 -0.08 c -1.99 -5.57 l -1.958 -5.57 l h f Q q 1 0 0 1 304.9838 440.5346 cm 0 0 m 0.064 0.931 0.738 1.878 1.685 1.878 c 2.825 1.878 3.322 0.995 3.322 0 c h 4.96 -0.481 m 4.96 1.252 3.868 2.456 2.215 2.456 c -0.064 2.456 -1.108 0.594 -1.108 -1.477 c -1.108 -3.676 0.273 -5.168 2.022 -5.168 c 3.644 -5.168 4.687 -3.804 4.96 -2.328 c 4.719 -2.167 l 4.35 -3.21 3.724 -3.884 2.568 -3.884 c 0.818 -3.884 -0.016 -2.087 -0.016 -0.481 c h f Q q 1 0 0 1 315.6414 440.5346 cm 0 0 m -0.289 0 l -0.53 1.075 -0.963 1.974 -2.215 1.974 c -2.793 1.974 -3.435 1.653 -3.435 0.995 c -3.435 -0.755 0.53 -0.53 0.53 -3.018 c 0.53 -4.334 -0.706 -5.168 -1.926 -5.168 c -2.392 -5.168 -2.905 -5.056 -3.371 -4.928 c -3.467 -4.896 -3.66 -4.847 -3.772 -4.847 c -3.917 -4.847 -4.029 -4.928 -4.061 -5.056 c -4.35 -5.056 l -4.35 -2.488 l -4.061 -2.488 l -3.917 -3.612 -3.066 -4.687 -1.862 -4.687 c -1.204 -4.687 -0.626 -4.302 -0.626 -3.595 c -0.626 -1.717 -4.366 -1.974 -4.366 0.305 c -4.366 1.621 -3.419 2.456 -2.135 2.456 c -1.798 2.456 -1.541 2.376 -1.22 2.279 c -1.027 2.231 -0.819 2.151 -0.626 2.151 c -0.417 2.151 -0.353 2.279 -0.289 2.456 c 0 2.456 l h f Q q 1 0 0 1 319.654 436.9552 cm 0 0 m 0 -0.947 0.369 -1.059 1.108 -1.075 c 1.108 -1.364 l -2.408 -1.364 l -2.408 -1.075 l -1.669 -1.059 -1.3 -0.947 -1.3 0 c -1.3 7.656 l -1.3 8.748 -1.637 8.748 -1.862 8.748 c -2.038 8.748 -2.247 8.683 -2.408 8.619 c -2.52 8.892 l -0.353 9.775 l 0 9.775 l h f Q q 1 0 0 1 322.8161 440.5346 cm 0 0 m 0.064 0.931 0.738 1.878 1.685 1.878 c 2.825 1.878 3.323 0.995 3.323 0 c h 4.96 -0.481 m 4.96 1.252 3.868 2.456 2.215 2.456 c -0.064 2.456 -1.107 0.594 -1.107 -1.477 c -1.107 -3.676 0.273 -5.168 2.022 -5.168 c 3.644 -5.168 4.687 -3.804 4.96 -2.328 c 4.719 -2.167 l 4.35 -3.21 3.724 -3.884 2.568 -3.884 c 0.819 -3.884 -0.016 -2.087 -0.016 -0.481 c h f Q q 1 0 0 1 329.4946 441.1124 cm 0 0 m -0.273 0.594 -0.642 1.284 -1.348 1.364 c -1.348 1.653 l 1.99 1.653 l 1.99 1.364 l 1.493 1.364 1.124 1.3 1.124 0.786 c 1.124 0.514 1.348 0.064 1.461 -0.193 c 3.13 -3.628 l 4.655 0.144 l 4.767 0.433 4.863 0.658 4.863 0.963 c 4.863 1.332 4.575 1.364 4.141 1.364 c 4.141 1.653 l 6.485 1.653 l 6.485 1.364 l 5.971 1.364 5.698 0.963 5.522 0.53 c 2.456 -6.982 l 1.83 -8.523 0.658 -8.988 0.097 -8.988 c -0.433 -8.988 -0.979 -8.668 -0.979 -8.09 c -0.979 -7.608 -0.594 -7.384 -0.16 -7.384 c 0.369 -7.384 0.626 -7.672 0.899 -7.672 c 1.541 -7.672 1.878 -6.773 2.071 -6.308 c 2.504 -5.233 l h f Q q 1 0 0 1 287.2977 90.258 cm 0 0 m 1.983 0 l 1.983 4.878 l 1.983 5.079 1.994 5.357 2.262 5.357 c 2.506 5.357 2.562 5.09 2.562 4.89 c 2.562 0 l 4.477 0 l 4.477 4.878 l 4.477 5.079 4.489 5.357 4.745 5.357 c 5.001 5.357 5.057 5.09 5.057 4.89 c 5.057 0 l 7.039 0 l 7.039 4.956 l 7.039 6.148 6.527 6.694 5.692 6.694 c 5.134 6.694 4.734 6.337 4.388 5.947 c 4.21 6.282 3.832 6.694 3.208 6.694 c 2.996 6.694 2.74 6.638 2.517 6.515 c 2.295 6.404 2.094 6.237 2.005 6.026 c 1.983 6.026 l 1.983 6.527 l 0 6.527 l h -3.457 5.056 m -3.457 5.279 -3.346 5.491 -3.1 5.491 c -2.855 5.491 -2.744 5.279 -2.744 5.056 c -2.744 1.604 l -2.744 1.381 -2.855 1.169 -3.1 1.169 c -3.346 1.169 -3.457 1.381 -3.457 1.604 c h -5.439 1.994 m -5.439 0.301 -4.192 -0.167 -3.1 -0.167 c -2.009 -0.167 -0.761 0.301 -0.761 1.994 c -0.761 4.533 l -0.761 6.226 -2.009 6.694 -3.1 6.694 c -4.192 6.694 -5.439 6.226 -5.439 4.533 c h -10.676 1.994 m -10.676 0.301 -9.429 -0.167 -8.337 -0.167 c -7.067 -0.167 -6.065 0.334 -6.065 2.372 c -6.065 2.695 l -7.981 2.695 l -7.981 1.57 l -7.981 1.214 -8.07 1.036 -8.337 1.036 c -8.638 1.036 -8.694 1.214 -8.694 1.548 c -8.694 5.112 l -8.694 5.29 -8.671 5.491 -8.371 5.491 c -8.07 5.491 -8.048 5.29 -8.048 5.112 c -8.048 4.043 l -6.132 4.043 l -6.132 4.589 l -6.132 5.992 -7.012 6.694 -8.337 6.694 c -9.429 6.694 -10.676 6.226 -10.676 4.533 c h -13.061 0 1.537 1.604 re f Q Q q 1 0 0 1 270.8372 90.258 cm 0.471 scn /GS0 gs 0 0 m 2.049 0 l 2.049 6.348 l 3.263 6.348 l 3.263 7.952 l -1.214 7.952 l -1.214 6.348 l 0 6.348 l h -3.829 0 2.049 7.952 re f Q q 0 0 552 705 re W n q 1 0 0 1 258.9226 90.258 cm 0 0 m 1.982 0 l 1.982 4.878 l 1.982 5.079 1.994 5.357 2.261 5.357 c 2.506 5.357 2.562 5.09 2.562 4.89 c 2.562 0 l 4.477 0 l 4.477 4.878 l 4.477 5.079 4.488 5.357 4.745 5.357 c 5.001 5.357 5.056 5.09 5.056 4.89 c 5.056 0 l 7.039 0 l 7.039 4.956 l 7.039 6.148 6.526 6.694 5.691 6.694 c 5.134 6.694 4.733 6.337 4.388 5.947 c 4.21 6.282 3.831 6.694 3.208 6.694 c 2.996 6.694 2.74 6.638 2.517 6.515 c 2.294 6.404 2.094 6.237 2.005 6.026 c 1.982 6.026 l 1.982 6.527 l 0 6.527 l h -3.789 0 m -1.806 0 l -1.806 3.486 l -1.806 3.999 -1.495 4.344 -0.96 4.344 c -0.849 4.344 -0.737 4.332 -0.626 4.321 c -0.626 6.694 l -1.071 6.649 -1.662 6.315 -1.851 5.691 c -1.873 5.691 l -1.873 6.527 l -3.789 6.527 l h -7.246 5.056 m -7.246 5.279 -7.134 5.491 -6.889 5.491 c -6.645 5.491 -6.533 5.279 -6.533 5.056 c -6.533 1.604 l -6.533 1.381 -6.645 1.169 -6.889 1.169 c -7.134 1.169 -7.246 1.381 -7.246 1.604 c h -9.228 1.994 m -9.228 0.301 -7.981 -0.167 -6.889 -0.167 c -5.798 -0.167 -4.55 0.301 -4.55 1.994 c -4.55 4.533 l -4.55 6.226 -5.798 6.694 -6.889 6.694 c -7.981 6.694 -9.228 6.226 -9.228 4.533 c h -12.761 5.458 m -12.349 5.458 l -12.349 0 l -10.367 0 l -10.367 5.458 l -9.776 5.458 l -9.776 6.527 l -10.745 6.527 l -10.701 6.883 -10.445 6.95 -10.122 6.95 c -9.821 6.95 l -9.821 7.952 l -10.701 7.952 l -11.926 7.952 -12.305 7.685 -12.349 6.527 c -12.761 6.527 l h -17.942 0 m -15.96 0 l -15.96 4.878 l -15.96 5.079 -15.949 5.357 -15.681 5.357 c -15.425 5.357 -15.369 5.09 -15.369 4.89 c -15.369 0 l -13.387 0 l -13.387 4.956 l -13.387 6.148 -13.899 6.694 -14.735 6.694 c -15.336 6.694 -15.782 6.348 -15.937 6.026 c -15.96 6.026 l -15.96 6.527 l -17.942 6.527 l h -20.709 6.95 1.983 1.003 re -20.709 0 1.983 6.527 re f Q q 1 0 0 1 293.0154 85.7205 cm 0 0 m 1.181 0 l 1.181 0.137 l 0.161 0.137 l 0.161 0.806 l 1.105 0.806 l 1.105 0.944 l 0.161 0.944 l 0.161 1.556 l 1.169 1.556 l 1.169 1.694 l 0 1.694 l h -0.344 1.181 m -0.387 1.537 -0.705 1.729 -1.025 1.729 c -1.559 1.729 -1.824 1.31 -1.824 0.847 c -1.824 0.384 -1.559 -0.035 -1.025 -0.035 c -0.629 -0.035 -0.366 0.23 -0.32 0.645 c -0.482 0.645 l -0.512 0.344 -0.712 0.102 -1.025 0.102 c -1.474 0.102 -1.663 0.477 -1.663 0.847 c -1.663 1.217 -1.474 1.592 -1.025 1.592 c -0.778 1.592 -0.562 1.442 -0.506 1.181 c h -3.232 1.556 m -2.629 1.556 l -2.387 1.556 -2.264 1.426 -2.264 1.219 c -2.264 1.013 -2.432 0.889 -2.629 0.889 c -3.232 0.889 l h -3.393 0 m -3.232 0 l -3.232 0.752 l -2.619 0.752 l -2.313 0.764 -2.294 0.5 -2.28 0.263 c -2.275 0.193 -2.275 0.066 -2.235 0 c -2.058 0 l -2.129 0.085 -2.129 0.318 -2.136 0.434 c -2.148 0.636 -2.212 0.788 -2.432 0.816 c -2.432 0.821 l -2.214 0.863 -2.102 1.039 -2.102 1.252 c -2.102 1.559 -2.337 1.694 -2.617 1.694 c -3.393 1.694 l h -5.116 0.61 m -5.116 0.261 -4.928 -0.035 -4.459 -0.035 c -3.986 -0.035 -3.799 0.261 -3.799 0.61 c -3.799 1.694 l -3.961 1.694 l -3.961 0.645 l -3.958 0.251 -4.146 0.102 -4.459 0.102 c -4.77 0.102 -4.957 0.251 -4.955 0.645 c -4.955 1.694 l -5.116 1.694 l h -6.866 0.847 m -6.866 1.217 -6.676 1.592 -6.228 1.592 c -5.782 1.592 -5.592 1.217 -5.592 0.847 c -5.592 0.477 -5.782 0.102 -6.228 0.102 c -6.676 0.102 -6.866 0.477 -6.866 0.847 c -7.027 0.847 m -7.027 0.384 -6.762 -0.035 -6.228 -0.035 c -5.696 -0.035 -5.431 0.384 -5.431 0.847 c -5.431 1.31 -5.696 1.729 -6.228 1.729 c -6.762 1.729 -7.027 1.31 -7.027 0.847 c -8.579 0.558 m -8.598 0.145 -8.304 -0.035 -7.903 -0.035 c -7.303 -0.035 -7.255 0.332 -7.255 0.448 c -7.255 0.726 -7.454 0.83 -7.694 0.894 c -8.107 0.996 l -8.244 1.029 -8.363 1.096 -8.363 1.255 c -8.363 1.506 -8.159 1.592 -7.938 1.592 c -7.699 1.592 -7.485 1.461 -7.476 1.202 c -7.315 1.202 l -7.312 1.549 -7.606 1.729 -7.941 1.729 c -8.418 1.729 -8.524 1.418 -8.524 1.252 c -8.524 0.989 -8.342 0.894 -8.142 0.844 c -7.765 0.752 l -7.609 0.714 -7.416 0.638 -7.416 0.446 c -7.416 0.199 -7.687 0.102 -7.865 0.102 c -8.173 0.102 -8.425 0.208 -8.418 0.558 c h -9.511 0.861 m -10.229 0.861 l -10.229 0.723 l -9.653 0.723 l -9.646 0.365 -9.865 0.102 -10.239 0.102 c -10.687 0.102 -10.877 0.477 -10.877 0.847 c -10.877 1.217 -10.687 1.592 -10.239 1.592 c -9.916 1.592 -9.715 1.362 -9.693 1.167 c -9.532 1.167 l -9.594 1.537 -9.883 1.729 -10.239 1.729 c -10.772 1.729 -11.038 1.31 -11.038 0.847 c -11.038 0.384 -10.772 -0.035 -10.239 -0.035 c -9.995 -0.035 -9.767 0.066 -9.653 0.308 c -9.648 0.308 l -9.627 0 l -9.511 0 l h -12.707 0 m -12.546 0 l -12.546 1.432 l -12.541 1.432 l -11.554 0 l -11.374 0 l -11.374 1.694 l -11.535 1.694 l -11.535 0.261 l -11.54 0.261 l -12.526 1.694 l -12.707 1.694 l h -13.289 0 0.161 1.694 re -15.046 0 m -14.885 0 l -14.885 1.432 l -14.881 1.432 l -13.894 0 l -13.714 0 l -13.714 1.694 l -13.875 1.694 l -13.875 0.261 l -13.879 0.261 l -14.866 1.694 l -15.046 1.694 l h -16.548 1.556 m -15.946 1.556 l -15.704 1.556 -15.58 1.426 -15.58 1.219 c -15.58 1.013 -15.749 0.889 -15.946 0.889 c -16.548 0.889 l h -16.709 0 m -16.548 0 l -16.548 0.752 l -15.936 0.752 l -15.63 0.764 -15.611 0.5 -15.597 0.263 c -15.592 0.193 -15.592 0.066 -15.552 0 c -15.374 0 l -15.445 0.085 -15.445 0.318 -15.453 0.434 c -15.465 0.636 -15.528 0.788 -15.749 0.816 c -15.749 0.821 l -15.531 0.863 -15.42 1.039 -15.42 1.252 c -15.42 1.559 -15.654 1.694 -15.934 1.694 c -16.709 1.694 l h -17.71 1.532 m -17.383 0.664 l -18.048 0.664 l h -18.475 0 m -18.303 0 l -18.098 0.527 l -17.328 0.527 l -17.122 0 l -16.949 0 l -17.613 1.694 l -17.793 1.694 l h -19.833 0 m -18.652 0 l -18.652 0.137 l -19.672 0.137 l -19.672 0.806 l -18.728 0.806 l -18.728 0.944 l -19.672 0.944 l -19.672 1.556 l -18.664 1.556 l -18.664 1.694 l -19.833 1.694 l h -21.186 0 m -20.076 0 l -20.076 0.137 l -21.025 0.137 l -21.025 1.694 l -21.186 1.694 l h -22.87 0 m -22.709 0 l -22.709 0.697 l -22.04 1.694 l -22.232 1.694 l -22.787 0.835 l -23.344 1.694 l -23.536 1.694 l -22.87 0.697 l h -23.636 0.861 m -24.354 0.861 l -24.354 0.723 l -23.778 0.723 l -23.771 0.365 -23.989 0.102 -24.364 0.102 c -24.812 0.102 -25.002 0.477 -25.002 0.847 c -25.002 1.217 -24.812 1.592 -24.364 1.592 c -24.042 1.592 -23.84 1.362 -23.819 1.167 c -23.657 1.167 l -23.719 1.537 -24.008 1.729 -24.364 1.729 c -24.898 1.729 -25.163 1.31 -25.163 0.847 c -25.163 0.384 -24.898 -0.035 -24.364 -0.035 c -24.12 -0.035 -23.892 0.066 -23.778 0.308 c -23.773 0.308 l -23.752 0 l -23.636 0 l h -26.847 0.847 m -26.847 1.217 -26.658 1.592 -26.209 1.592 c -25.763 1.592 -25.573 1.217 -25.573 0.847 c -25.573 0.477 -25.763 0.102 -26.209 0.102 c -26.658 0.102 -26.847 0.477 -26.847 0.847 c -27.009 0.847 m -27.009 0.384 -26.743 -0.035 -26.209 -0.035 c -25.678 -0.035 -25.413 0.384 -25.413 0.847 c -25.413 1.31 -25.678 1.729 -26.209 1.729 c -26.743 1.729 -27.009 1.31 -27.009 0.847 c -28.195 0 m -27.085 0 l -27.085 0.137 l -28.033 0.137 l -28.033 1.694 l -28.195 1.694 l h -29.963 0.847 m -29.963 1.217 -29.773 1.592 -29.325 1.592 c -28.878 1.592 -28.688 1.217 -28.688 0.847 c -28.688 0.477 -28.878 0.102 -29.325 0.102 c -29.773 0.102 -29.963 0.477 -29.963 0.847 c -30.123 0.847 m -30.123 0.384 -29.858 -0.035 -29.325 -0.035 c -28.793 -0.035 -28.528 0.384 -28.528 0.847 c -28.528 1.31 -28.793 1.729 -29.325 1.729 c -29.858 1.729 -30.123 1.31 -30.123 0.847 c -31.787 0 m -31.626 0 l -31.626 1.432 l -31.621 1.432 l -30.634 0 l -30.454 0 l -30.454 1.694 l -30.615 1.694 l -30.615 0.261 l -30.62 0.261 l -31.607 1.694 l -31.787 1.694 l h -33.534 0 m -33.372 0 l -33.372 0.821 l -32.367 0.821 l -32.367 0 l -32.205 0 l -32.205 1.694 l -32.367 1.694 l -32.367 0.958 l -33.372 0.958 l -33.372 1.694 l -33.534 1.694 l h -33.878 1.181 m -33.92 1.537 -34.238 1.729 -34.559 1.729 c -35.092 1.729 -35.358 1.31 -35.358 0.847 c -35.358 0.384 -35.092 -0.035 -34.559 -0.035 c -34.163 -0.035 -33.899 0.23 -33.854 0.645 c -34.015 0.645 l -34.046 0.344 -34.246 0.102 -34.559 0.102 c -35.007 0.102 -35.197 0.477 -35.197 0.847 c -35.197 1.217 -35.007 1.592 -34.559 1.592 c -34.312 1.592 -34.096 1.442 -34.039 1.181 c h -36.737 0 m -35.557 0 l -35.557 0.137 l -36.576 0.137 l -36.576 0.806 l -35.632 0.806 l -35.632 0.944 l -36.576 0.944 l -36.576 1.556 l -35.568 1.556 l -35.568 1.694 l -36.737 1.694 l h -38.32 1.556 m -37.73 1.556 l -37.73 0 l -37.569 0 l -37.569 1.556 l -36.978 1.556 l -36.978 1.694 l -38.32 1.694 l h -40.469 0 m -39.883 0 l -39.373 0.012 -39.106 0.292 -39.106 0.847 c -39.106 1.402 -39.373 1.681 -39.883 1.694 c -40.469 1.694 l h -40.308 1.556 m -39.964 1.556 l -39.478 1.559 -39.266 1.352 -39.266 0.847 c -39.266 0.341 -39.478 0.135 -39.964 0.137 c -40.308 0.137 l h -41.928 0 m -40.747 0 l -40.747 0.137 l -41.767 0.137 l -41.767 0.806 l -40.823 0.806 l -40.823 0.944 l -41.767 0.944 l -41.767 1.556 l -40.759 1.556 l -40.759 1.694 l -41.928 1.694 l h -43.511 1.556 m -42.921 1.556 l -42.921 0 l -42.759 0 l -42.759 1.556 l -42.169 1.556 l -42.169 1.694 l -43.511 1.694 l h -44.95 0.558 m -44.969 0.145 -44.675 -0.035 -44.274 -0.035 c -43.674 -0.035 -43.627 0.332 -43.627 0.448 c -43.627 0.726 -43.825 0.83 -44.065 0.894 c -44.478 0.996 l -44.616 1.029 -44.734 1.096 -44.734 1.255 c -44.734 1.506 -44.53 1.592 -44.31 1.592 c -44.07 1.592 -43.856 1.461 -43.847 1.202 c -43.686 1.202 l -43.683 1.549 -43.977 1.729 -44.312 1.729 c -44.789 1.729 -44.895 1.418 -44.895 1.252 c -44.895 0.989 -44.713 0.894 -44.514 0.844 c -44.136 0.752 l -43.98 0.714 -43.787 0.638 -43.787 0.446 c -43.787 0.199 -44.058 0.102 -44.236 0.102 c -44.545 0.102 -44.796 0.208 -44.789 0.558 c h -46.577 0.61 m -46.577 0.261 -46.39 -0.035 -45.92 -0.035 c -45.448 -0.035 -45.261 0.261 -45.261 0.61 c -45.261 1.694 l -45.422 1.694 l -45.422 0.645 l -45.419 0.251 -45.607 0.102 -45.92 0.102 c -46.231 0.102 -46.419 0.251 -46.416 0.645 c -46.416 1.694 l -46.577 1.694 l h -48.053 1.556 m -47.451 1.556 l -47.209 1.556 -47.085 1.426 -47.085 1.219 c -47.085 1.013 -47.254 0.889 -47.451 0.889 c -48.053 0.889 l h -48.215 0 m -48.053 0 l -48.053 0.752 l -47.441 0.752 l -47.135 0.764 -47.116 0.5 -47.102 0.263 c -47.097 0.193 -47.097 0.066 -47.057 0 c -46.879 0 l -46.95 0.085 -46.95 0.318 -46.958 0.434 c -46.969 0.636 -47.033 0.788 -47.254 0.816 c -47.254 0.821 l -47.035 0.863 -46.924 1.039 -46.924 1.252 c -46.924 1.559 -47.159 1.694 -47.439 1.694 c -48.215 1.694 l h -49.797 1.556 m -49.207 1.556 l -49.207 0 l -49.045 0 l -49.045 1.556 l -48.455 1.556 l -48.455 1.694 l -49.797 1.694 l h -51.728 0 m -50.547 0 l -50.547 0.137 l -51.567 0.137 l -51.567 0.806 l -50.623 0.806 l -50.623 0.944 l -51.567 0.944 l -51.567 1.556 l -50.559 1.556 l -50.559 1.694 l -51.728 1.694 l h -53.476 0 m -53.315 0 l -53.315 0.821 l -52.309 0.821 l -52.309 0 l -52.148 0 l -52.148 1.694 l -52.309 1.694 l -52.309 0.958 l -53.315 0.958 l -53.315 1.694 l -53.476 1.694 l h -55.058 1.556 m -54.468 1.556 l -54.468 0 l -54.307 0 l -54.307 1.556 l -53.716 1.556 l -53.716 1.694 l -55.058 1.694 l h f Q q 1 0 0 1 352.8766 85.7568 cm 0.37 scn /GS0 gs 0 0 m -0.902 0 l -0.902 2.154 l -0.036 2.154 l 0.384 2.154 0.629 1.918 0.629 1.549 c 0.629 1.31 0.472 1.155 0.363 1.104 c 0.493 1.044 0.66 0.908 0.66 0.62 c 0.66 0.217 0.384 0 0 0 c -0.07 1.779 m -0.481 1.779 l -0.481 1.282 l -0.07 1.282 l 0.109 1.282 0.209 1.383 0.209 1.531 c 0.209 1.679 0.109 1.779 -0.07 1.779 c -0.043 0.905 m -0.481 0.905 l -0.481 0.375 l -0.043 0.375 l 0.148 0.375 0.239 0.496 0.239 0.642 c 0.239 0.787 0.148 0.905 -0.043 0.905 c f Q q 1 0 0 1 355.0254 85.9323 cm 0.37 scn /GS0 gs 0 0 m -0.097 -0.103 -0.257 -0.194 -0.49 -0.194 c -0.724 -0.194 -0.881 -0.103 -0.978 0 c -1.12 0.148 -1.156 0.326 -1.156 0.614 c -1.156 0.899 -1.12 1.077 -0.978 1.225 c -0.881 1.328 -0.724 1.419 -0.49 1.419 c -0.257 1.419 -0.097 1.328 0 1.225 c 0.142 1.077 0.178 0.899 0.178 0.614 c 0.178 0.326 0.142 0.148 0 0 c -0.306 0.996 m -0.351 1.041 -0.412 1.065 -0.49 1.065 c -0.569 1.065 -0.627 1.041 -0.672 0.996 c -0.754 0.914 -0.763 0.777 -0.763 0.614 c -0.763 0.451 -0.754 0.311 -0.672 0.229 c -0.627 0.185 -0.569 0.16 -0.49 0.16 c -0.412 0.16 -0.351 0.185 -0.306 0.229 c -0.224 0.311 -0.215 0.451 -0.215 0.614 c -0.215 0.777 -0.224 0.914 -0.306 0.996 c f Q q 1 0 0 1 356.6682 85.9323 cm 0.37 scn /GS0 gs 0 0 m -0.097 -0.103 -0.257 -0.194 -0.49 -0.194 c -0.723 -0.194 -0.881 -0.103 -0.977 0 c -1.119 0.148 -1.155 0.326 -1.155 0.614 c -1.155 0.899 -1.119 1.077 -0.977 1.225 c -0.881 1.328 -0.723 1.419 -0.49 1.419 c -0.257 1.419 -0.097 1.328 0 1.225 c 0.142 1.077 0.179 0.899 0.179 0.614 c 0.179 0.326 0.142 0.148 0 0 c -0.305 0.996 m -0.351 1.041 -0.411 1.065 -0.49 1.065 c -0.569 1.065 -0.626 1.041 -0.672 0.996 c -0.754 0.914 -0.762 0.777 -0.762 0.614 c -0.762 0.451 -0.754 0.311 -0.672 0.229 c -0.626 0.185 -0.569 0.16 -0.49 0.16 c -0.411 0.16 -0.351 0.185 -0.305 0.229 c -0.224 0.311 -0.215 0.451 -0.215 0.614 c -0.215 0.777 -0.224 0.914 -0.305 0.996 c f Q Q q 1 0 0 1 358.1693 85.7568 cm 0.37 scn /GS0 gs 0 0 m -0.387 0.656 l -0.554 0.469 l -0.554 0 l -0.947 0 l -0.947 2.154 l -0.554 2.154 l -0.554 0.932 l -0.03 1.576 l 0.445 1.576 l -0.118 0.941 l 0.487 0 l h f Q q 0 0 552 705 re W n q 1 0 0 1 359.431 85.7382 cm 0.37 scn /GS0 gs 0 0 m -0.247 0 -0.472 0.027 -0.672 0.227 c -0.414 0.484 l -0.284 0.354 -0.115 0.336 0.006 0.336 c 0.142 0.336 0.285 0.382 0.285 0.499 c 0.285 0.578 0.242 0.633 0.118 0.645 c -0.13 0.669 l -0.414 0.696 -0.591 0.82 -0.591 1.111 c -0.591 1.437 -0.303 1.613 0.018 1.613 c 0.263 1.613 0.469 1.571 0.621 1.428 c 0.378 1.184 l 0.287 1.265 0.149 1.289 0.012 1.289 c -0.145 1.289 -0.211 1.217 -0.211 1.138 c -0.211 1.081 -0.188 1.014 -0.048 1.002 c 0.2 0.977 l 0.512 0.947 0.669 0.781 0.669 0.515 c 0.669 0.166 0.373 0 0 0 c f Q q 1 0 0 1 362.4665 85.9742 cm 0.37 scn /GS0 gs 0 0 m -0.152 -0.151 -0.336 -0.236 -0.581 -0.236 c -0.826 -0.236 -1.014 -0.151 -1.165 0 c -1.383 0.218 -1.377 0.487 -1.377 0.859 c -1.377 1.232 -1.383 1.501 -1.165 1.719 c -1.014 1.87 -0.826 1.955 -0.581 1.955 c -0.336 1.955 -0.152 1.87 0 1.719 c 0.218 1.501 0.215 1.232 0.215 0.859 c 0.215 0.487 0.218 0.218 0 0 c -0.312 1.465 m -0.373 1.535 -0.466 1.58 -0.581 1.58 c -0.696 1.58 -0.793 1.535 -0.854 1.465 c -0.935 1.374 -0.956 1.274 -0.956 0.859 c -0.956 0.445 -0.935 0.345 -0.854 0.255 c -0.793 0.185 -0.696 0.14 -0.581 0.14 c -0.466 0.14 -0.373 0.185 -0.312 0.255 c -0.23 0.345 -0.206 0.445 -0.206 0.859 c -0.206 1.274 -0.23 1.374 -0.312 1.465 c f Q q 1 0 0 1 363.9976 85.7568 cm 0.37 scn /GS0 gs 0 0 m 0 0.953 l 0 1.168 -0.136 1.24 -0.26 1.24 c -0.384 1.24 -0.524 1.168 -0.524 0.953 c -0.524 0 l -0.917 0 l -0.917 1.576 l -0.532 1.576 l -0.532 1.431 l -0.43 1.54 -0.284 1.594 -0.14 1.594 c 0.018 1.594 0.145 1.543 0.233 1.455 c 0.36 1.328 0.393 1.18 0.393 1.007 c 0.393 0 l h f Q q 1 0 0 1 365.2594 85.7568 cm 0.37 scn /GS0 gs 0 0 m -0.324 0 -0.46 0.227 -0.46 0.451 c -0.46 2.154 l -0.066 2.154 l -0.066 0.475 l -0.066 0.381 -0.027 0.333 0.073 0.333 c 0.224 0.333 l 0.224 0 l h f Q Q 0.37 scn /GS0 gs 365.792 87.602 0.403 0.32 re 365.798 85.757 0.393 1.577 re f q 0 0 552 705 re W n q 1 0 0 1 367.5474 85.7568 cm 0 0 m 0 0.953 l 0 1.168 -0.136 1.24 -0.26 1.24 c -0.384 1.24 -0.523 1.168 -0.523 0.953 c -0.523 0 l -0.917 0 l -0.917 1.576 l -0.533 1.576 l -0.533 1.431 l -0.43 1.54 -0.284 1.594 -0.139 1.594 c 0.018 1.594 0.145 1.543 0.233 1.455 c 0.36 1.328 0.393 1.18 0.393 1.007 c 0.393 0 l h f Q q 1 0 0 1 368.6733 86.4221 cm 0 0 m 0 -0.202 0.124 -0.351 0.345 -0.351 c 0.518 -0.351 0.602 -0.302 0.702 -0.202 c 0.941 -0.435 l 0.781 -0.596 0.626 -0.684 0.342 -0.684 c -0.031 -0.684 -0.387 -0.514 -0.387 0.124 c -0.387 0.638 -0.11 0.929 0.299 0.929 c 0.738 0.929 0.986 0.608 0.986 0.175 c 0.986 0 l h 0.563 0.439 m 0.52 0.533 0.433 0.602 0.299 0.602 c 0.166 0.602 0.079 0.533 0.036 0.439 c 0.012 0.382 0.003 0.339 0 0.27 c 0.599 0.27 l 0.596 0.339 0.587 0.382 0.563 0.439 c f Q q 1 0 0 1 340.6276 88.8298 cm 0.27 scn 0 0 m -1.376 0 -2.419 0.293 -3.31 1.197 c -2.165 2.343 l -1.592 1.77 -0.815 1.579 0.025 1.579 c 1.069 1.579 1.63 1.974 1.63 2.7 c 1.63 3.018 1.54 3.286 1.349 3.464 c 1.171 3.629 0.967 3.718 0.547 3.782 c -0.548 3.934 l -1.324 4.049 -1.897 4.291 -2.305 4.686 c -2.738 5.119 -2.954 5.705 -2.954 6.468 c -2.954 8.085 -1.757 9.218 0.203 9.218 c 1.452 9.218 2.355 8.913 3.132 8.162 c 2.011 7.054 l 1.438 7.601 0.751 7.678 0.152 7.678 c -0.79 7.678 -1.248 7.156 -1.248 6.532 c -1.248 6.303 -1.172 6.061 -0.98 5.883 c -0.802 5.716 -0.51 5.577 -0.141 5.526 c 0.929 5.374 l 1.757 5.259 2.279 5.03 2.66 4.673 c 3.144 4.215 3.361 3.553 3.361 2.75 c 3.361 0.994 1.896 0 0 0 c f Q q 1 0 0 1 348.5518 88.9071 cm 0.27 scn 0 0 m 0 0.572 l -0.447 0.127 -0.866 -0.064 -1.63 -0.064 c -2.381 -0.064 -2.929 0.127 -3.323 0.522 c -3.68 0.89 -3.871 1.425 -3.871 2.011 c -3.871 3.068 -3.145 3.934 -1.605 3.934 c -0.039 3.934 l -0.039 4.265 l -0.039 4.991 -0.395 5.309 -1.274 5.309 c -1.91 5.309 -2.203 5.157 -2.547 4.761 c -3.604 5.792 l -2.954 6.506 -2.318 6.709 -1.21 6.709 c 0.649 6.709 1.617 5.92 1.617 4.367 c 1.617 0 l h -0.039 2.8 m -1.35 2.8 l -1.948 2.8 -2.279 2.521 -2.279 2.049 c -2.279 1.591 -1.974 1.286 -1.325 1.286 c -0.866 1.286 -0.573 1.324 -0.281 1.604 c -0.102 1.769 -0.039 2.037 -0.039 2.444 c h f Q q 1 0 0 1 353.621 94.0891 cm 0.27 scn 0 0 m 0 -5.182 l -1.655 -5.182 l -1.655 0 l -2.342 0 l -2.342 1.26 l -1.655 1.26 l -1.655 2.087 l -1.655 3.03 -1.069 3.984 0.28 3.984 c 1.222 3.984 l 1.222 2.584 l 0.573 2.584 l 0.178 2.584 0 2.368 0 1.985 c 0 1.26 l 1.222 1.26 l 1.222 0 l h f Q q 1 0 0 1 359.3109 88.9071 cm 0.27 scn 0 0 m 0 0.572 l -0.445 0.127 -0.866 -0.064 -1.63 -0.064 c -2.381 -0.064 -2.929 0.127 -3.323 0.522 c -3.68 0.89 -3.871 1.425 -3.871 2.011 c -3.871 3.068 -3.145 3.934 -1.605 3.934 c -0.038 3.934 l -0.038 4.265 l -0.038 4.991 -0.395 5.309 -1.273 5.309 c -1.91 5.309 -2.203 5.157 -2.547 4.761 c -3.604 5.792 l -2.954 6.506 -2.317 6.709 -1.209 6.709 c 0.65 6.709 1.617 5.92 1.617 4.367 c 1.617 0 l h -0.038 2.8 m -1.35 2.8 l -1.948 2.8 -2.28 2.521 -2.28 2.049 c -2.28 1.591 -1.974 1.286 -1.324 1.286 c -0.866 1.286 -0.573 1.324 -0.281 1.604 c -0.102 1.769 -0.038 2.037 -0.038 2.444 c h f Q q 1 0 0 1 365.9366 93.7322 cm 0.27 scn 0 0 m -0.255 0.254 -0.471 0.395 -0.878 0.395 c -1.388 0.395 -1.949 0.012 -1.949 -0.828 c -1.949 -4.825 l -3.604 -4.825 l -3.604 1.808 l -1.987 1.808 l -1.987 1.171 l -1.669 1.553 -1.032 1.884 -0.318 1.884 c 0.331 1.884 0.789 1.719 1.247 1.26 c h f Q Q 0.27 scn 367.937 95.54 1.655 -6.633 re f q 0 0 552 705 re W n q 1 0 0 1 369.4093 96.7748 cm 0.789 scn 0 0 m -0.368 -0.368 -0.966 -0.368 -1.334 0.001 c -1.703 0.369 -1.703 0.966 -1.334 1.336 c -0.966 1.705 -0.368 1.705 0 1.336 c 0.369 0.966 0.369 0.369 0 0 c f Q q 1 0 0 1 372.1051 96.7748 cm 0.789 scn 0 0 m -0.368 -0.368 -0.966 -0.368 -1.334 0.001 c -1.703 0.369 -1.703 0.966 -1.334 1.336 c -0.966 1.705 -0.368 1.705 0 1.336 c 0.368 0.966 0.368 0.369 0 0 c f Q q 1 0 0 1 372.6681 99.0624 cm 0.789 scn 0 0 m 1.09 -1.091 1.619 -1.619 v 1.09 -2.148 0 -3.238 y 0.838 -4.076 l 3.295 -1.619 l 0.838 0.837 l h f Q q 1 0 0 1 370.549 89.9113 cm 0 0 m 0.273 0 0.488 -0.221 0.488 -0.498 c 0.488 -0.779 0.271 -0.998 -0.003 -0.997 c -0.276 -0.997 -0.496 -0.778 -0.496 -0.497 c -0.495 -0.22 -0.274 0.001 -0.002 0 c h -0.002 -0.077 m -0.22 -0.077 -0.4 -0.265 -0.401 -0.497 c -0.401 -0.734 -0.222 -0.919 -0.001 -0.92 c 0.22 -0.923 0.397 -0.735 0.398 -0.501 c 0.398 -0.266 0.221 -0.077 0 -0.077 c h -0.096 -0.787 m -0.184 -0.787 l -0.184 -0.232 l -0.137 -0.225 -0.093 -0.219 -0.027 -0.219 c 0.057 -0.219 0.113 -0.237 0.146 -0.261 c 0.179 -0.285 0.197 -0.323 0.197 -0.376 c 0.197 -0.449 0.147 -0.493 0.088 -0.511 c 0.088 -0.515 l 0.137 -0.524 0.17 -0.569 0.181 -0.65 c 0.193 -0.737 0.207 -0.77 0.216 -0.788 c 0.123 -0.787 l 0.11 -0.77 0.097 -0.719 0.085 -0.646 c 0.072 -0.575 0.037 -0.548 -0.034 -0.548 c -0.096 -0.548 l h -0.096 -0.48 m -0.031 -0.48 l 0.041 -0.48 0.104 -0.454 0.104 -0.385 c 0.104 -0.336 0.068 -0.287 -0.031 -0.287 c -0.06 -0.287 -0.08 -0.29 -0.095 -0.292 c h f Q Q q 1 0 0 1 216.3847 100.8806 cm 0 SCN 0.375 w /GS1 gs 0 0 m 0 -16.102 l S Q q 1 0 0 1 315.8772 100.8806 cm 0 SCN 0.375 w /GS1 gs 0 0 m 0 -16.102 l S Q q 1 0 0 1 187.8748 99.0629 cm 0.507 scn 0 0 m -4.413 0 l -2.227 3.837 l h f Q q 1 0 0 1 185.1201 98.2667 cm 0.507 scn 0 0 m -2.205 -3.823 l -4.436 -0.012 l h f Q q 1 0 0 1 190.4332 98.2667 cm 0.507 scn 0 0 m -2.205 -3.823 l -4.437 -0.012 l h f Q q 0 0 552 705 re W n q 1 0 0 1 178.4677 89.3888 cm 0 scn /GS1 gs 0 0 m -1.271 0 l -0.63 1.488 l h 0.072 -0.201 m 0.273 -0.663 l 0.318 -0.775 0.407 -0.964 0.407 -1.087 c 0.407 -1.282 0.268 -1.327 0.028 -1.338 c 0.028 -1.438 l 1.483 -1.438 l 1.483 -1.338 l 1.07 -1.321 0.964 -1.009 0.825 -0.674 c -0.429 2.336 l -0.53 2.336 l -1.856 -0.775 l -2.024 -1.165 -2.141 -1.31 -2.431 -1.338 c -2.431 -1.438 l -1.271 -1.438 l -1.271 -1.338 l -1.477 -1.321 -1.7 -1.299 -1.7 -1.093 c -1.7 -0.987 -1.622 -0.814 -1.578 -0.719 c -1.355 -0.201 l h f Q q 1 0 0 1 181.946 88.4245 cm 0 scn /GS1 gs 0 0 m -0.128 -0.139 -0.284 -0.251 -0.479 -0.251 c -0.903 -0.251 -1.243 0.195 -1.243 0.875 c -1.243 1.745 -0.78 1.929 -0.58 1.929 c -0.201 1.929 0 1.55 0 1.215 c h 0 1.884 m -0.145 2.035 -0.351 2.096 -0.552 2.096 c -1.276 2.096 -1.75 1.343 -1.75 0.68 c -1.75 0.095 -1.394 -0.552 -0.741 -0.552 c -0.429 -0.552 -0.212 -0.413 0 -0.195 c 0 -0.552 l 0.123 -0.552 l 0.875 -0.245 l 0.836 -0.151 l 0.78 -0.173 0.708 -0.195 0.647 -0.195 c 0.569 -0.195 0.452 -0.195 0.452 0.184 c 0.452 3.395 l 0.329 3.395 l -0.424 3.088 l -0.385 2.994 l -0.329 3.016 -0.256 3.038 -0.195 3.038 c -0.117 3.038 0 3.038 0 2.659 c h f Q q 1 0 0 1 184.7333 88.4245 cm 0 scn /GS1 gs 0 0 m -0.128 -0.139 -0.284 -0.251 -0.479 -0.251 c -0.903 -0.251 -1.243 0.195 -1.243 0.875 c -1.243 1.745 -0.78 1.929 -0.58 1.929 c -0.201 1.929 0 1.55 0 1.215 c h 0 1.884 m -0.145 2.035 -0.351 2.096 -0.552 2.096 c -1.276 2.096 -1.75 1.343 -1.75 0.68 c -1.75 0.095 -1.394 -0.552 -0.741 -0.552 c -0.429 -0.552 -0.212 -0.413 0 -0.195 c 0 -0.552 l 0.123 -0.552 l 0.875 -0.245 l 0.836 -0.151 l 0.78 -0.173 0.708 -0.195 0.647 -0.195 c 0.569 -0.195 0.452 -0.195 0.452 0.184 c 0.452 3.395 l 0.329 3.395 l -0.424 3.088 l -0.385 2.994 l -0.329 3.016 -0.256 3.038 -0.195 3.038 c -0.117 3.038 0 3.038 0 2.659 c h f Q q 1 0 0 1 186.6064 88.4245 cm 0 scn /GS1 gs 0 0 m 0 -0.329 0.128 -0.368 0.385 -0.373 c 0.385 -0.474 l -0.836 -0.474 l -0.836 -0.373 l -0.58 -0.368 -0.452 -0.329 -0.452 0 c -0.452 1.36 l -0.452 1.739 -0.569 1.739 -0.647 1.739 c -0.708 1.739 -0.78 1.717 -0.836 1.695 c -0.875 1.789 l -0.123 2.096 l 0 2.096 l h -0.229 3.395 m -0.078 3.395 0.045 3.272 0.045 3.122 c 0.045 2.971 -0.078 2.849 -0.229 2.849 c -0.379 2.849 -0.502 2.971 -0.502 3.122 c -0.502 3.272 -0.379 3.395 -0.229 3.395 c f Q q 1 0 0 1 188.9309 89.6676 cm 0 scn /GS1 gs 0 0 m -0.1 0 l -0.184 0.374 -0.334 0.686 -0.769 0.686 c -0.97 0.686 -1.193 0.574 -1.193 0.346 c -1.193 -0.262 0.184 -0.184 0.184 -1.048 c 0.184 -1.505 -0.245 -1.795 -0.669 -1.795 c -0.831 -1.795 -1.009 -1.756 -1.171 -1.711 c -1.204 -1.7 -1.271 -1.683 -1.31 -1.683 c -1.36 -1.683 -1.399 -1.711 -1.41 -1.756 c -1.511 -1.756 l -1.511 -0.864 l -1.41 -0.864 l -1.36 -1.254 -1.065 -1.628 -0.647 -1.628 c -0.418 -1.628 -0.217 -1.494 -0.217 -1.249 c -0.217 -0.596 -1.516 -0.686 -1.516 0.106 c -1.516 0.563 -1.187 0.853 -0.741 0.853 c -0.624 0.853 -0.535 0.825 -0.424 0.792 c -0.357 0.775 -0.284 0.747 -0.217 0.747 c -0.145 0.747 -0.123 0.792 -0.1 0.853 c 0 0.853 l h f Q q 1 0 0 1 190.6032 90.3309 cm 0 scn /GS1 gs 0 0 m 0.619 0 0.786 -0.825 0.786 -1.31 c 0.786 -1.7 0.691 -2.269 0.184 -2.269 c -0.435 -2.269 -0.608 -1.399 -0.608 -0.92 c -0.608 -0.206 -0.273 0 0 0 c 0.095 0.19 m -0.636 0.19 -1.115 -0.474 -1.115 -1.159 c -1.115 -1.828 -0.652 -2.458 0.056 -2.458 c 0.936 -2.458 1.293 -1.65 1.293 -1.076 c 1.293 -0.396 0.792 0.19 0.095 0.19 c f Q q 1 0 0 1 192.989 89.9965 cm 0 scn /GS1 gs 0 0 m 0.312 0.346 0.53 0.524 0.847 0.524 c 1.299 0.524 1.477 0.1 1.477 -0.318 c 1.477 -1.572 l 1.477 -1.901 1.606 -1.94 1.862 -1.946 c 1.862 -2.046 l 0.641 -2.046 l 0.641 -1.946 l 0.898 -1.94 1.026 -1.901 1.026 -1.572 c 1.026 -0.418 l 1.026 0.134 0.797 0.19 0.63 0.19 c 0.374 0.19 0.184 0.022 0 -0.167 c 0 -1.572 l 0 -1.901 0.128 -1.94 0.385 -1.946 c 0.385 -2.046 l -0.836 -2.046 l -0.836 -1.946 l -0.58 -1.94 -0.452 -1.901 -0.452 -1.572 c -0.452 -0.212 l -0.452 0.167 -0.569 0.167 -0.647 0.167 c -0.708 0.167 -0.78 0.145 -0.836 0.123 c -0.875 0.217 l -0.123 0.524 l 0 0.524 l h f Q q 1 0 0 1 181.7085 84.7895 cm 0 scn /GS1 gs 0 0 m 0.045 0.128 0.134 0.374 0.134 0.502 c 0.134 0.714 -0.022 0.764 -0.273 0.764 c -0.273 0.864 l 0.831 0.864 l 0.831 0.764 l 0.463 0.764 0.385 0.457 0.284 0.162 c -0.775 -2.91 l -0.881 -2.91 l -1.717 -0.569 l -1.728 -0.569 l -2.548 -2.91 l -2.659 -2.91 l -3.796 0.273 l -3.919 0.624 -3.975 0.764 -4.309 0.764 c -4.309 0.864 l -2.943 0.864 l -2.943 0.764 l -3.144 0.764 -3.306 0.719 -3.306 0.53 c -3.306 0.44 -3.25 0.295 -3.222 0.212 c -2.469 -1.934 l -2.458 -1.934 l -1.845 -0.212 l -1.996 0.201 l -2.113 0.513 -2.196 0.764 -2.564 0.764 c -2.564 0.864 l -1.12 0.864 l -1.12 0.764 l -1.355 0.764 -1.516 0.747 -1.516 0.513 c -1.516 0.351 -1.427 0.123 -1.371 -0.028 c -0.691 -1.934 l -0.68 -1.934 l h f Q q 1 0 0 1 182.724 83.6802 cm 0 scn /GS1 gs 0 0 m 0.022 0.323 0.256 0.652 0.585 0.652 c 0.981 0.652 1.154 0.346 1.154 0 c h 1.722 -0.167 m 1.722 0.435 1.343 0.853 0.769 0.853 c -0.022 0.853 -0.385 0.206 -0.385 -0.513 c -0.385 -1.277 0.095 -1.795 0.702 -1.795 c 1.265 -1.795 1.628 -1.321 1.722 -0.808 c 1.639 -0.753 l 1.511 -1.115 1.293 -1.349 0.892 -1.349 c 0.284 -1.349 -0.006 -0.725 -0.006 -0.167 c h f Q q 1 0 0 1 186.4253 83.6802 cm 0 scn /GS1 gs 0 0 m -0.1 0 l -0.184 0.374 -0.334 0.686 -0.769 0.686 c -0.97 0.686 -1.193 0.574 -1.193 0.346 c -1.193 -0.262 0.184 -0.184 0.184 -1.048 c 0.184 -1.505 -0.245 -1.795 -0.669 -1.795 c -0.831 -1.795 -1.009 -1.756 -1.171 -1.711 c -1.204 -1.7 -1.271 -1.683 -1.31 -1.683 c -1.36 -1.683 -1.399 -1.711 -1.41 -1.756 c -1.511 -1.756 l -1.511 -0.864 l -1.41 -0.864 l -1.36 -1.254 -1.065 -1.628 -0.647 -1.628 c -0.418 -1.628 -0.217 -1.494 -0.217 -1.249 c -0.217 -0.596 -1.516 -0.686 -1.516 0.106 c -1.516 0.563 -1.187 0.853 -0.741 0.853 c -0.624 0.853 -0.535 0.825 -0.424 0.792 c -0.357 0.775 -0.284 0.747 -0.217 0.747 c -0.145 0.747 -0.123 0.792 -0.1 0.853 c 0 0.853 l h f Q q 1 0 0 1 187.8189 82.4371 cm 0 scn /GS1 gs 0 0 m 0 -0.329 0.128 -0.368 0.385 -0.373 c 0.385 -0.474 l -0.836 -0.474 l -0.836 -0.373 l -0.58 -0.368 -0.452 -0.329 -0.452 0 c -0.452 2.659 l -0.452 3.038 -0.569 3.038 -0.647 3.038 c -0.708 3.038 -0.78 3.016 -0.836 2.994 c -0.875 3.088 l -0.123 3.395 l 0 3.395 l h f Q q 1 0 0 1 188.9171 83.6802 cm 0 scn /GS1 gs 0 0 m 0.022 0.323 0.256 0.652 0.585 0.652 c 0.981 0.652 1.154 0.346 1.154 0 c h 1.723 -0.167 m 1.723 0.435 1.344 0.853 0.769 0.853 c -0.022 0.853 -0.385 0.206 -0.385 -0.513 c -0.385 -1.277 0.095 -1.795 0.702 -1.795 c 1.265 -1.795 1.628 -1.321 1.723 -0.808 c 1.639 -0.753 l 1.511 -1.115 1.293 -1.349 0.892 -1.349 c 0.284 -1.349 -0.006 -0.725 -0.006 -0.167 c h f Q q 1 0 0 1 191.2365 83.8809 cm 0 scn /GS1 gs 0 0 m -0.095 0.206 -0.223 0.446 -0.468 0.474 c -0.468 0.574 l 0.691 0.574 l 0.691 0.474 l 0.518 0.474 0.39 0.452 0.39 0.273 c 0.39 0.178 0.468 0.022 0.507 -0.067 c 1.087 -1.26 l 1.617 0.05 l 1.656 0.151 1.689 0.229 1.689 0.334 c 1.689 0.463 1.589 0.474 1.438 0.474 c 1.438 0.574 l 2.252 0.574 l 2.252 0.474 l 2.074 0.474 1.979 0.334 1.918 0.184 c 0.853 -2.425 l 0.636 -2.96 0.229 -3.122 0.033 -3.122 c -0.15 -3.122 -0.34 -3.01 -0.34 -2.81 c -0.34 -2.642 -0.206 -2.564 -0.056 -2.564 c 0.128 -2.564 0.217 -2.665 0.312 -2.665 c 0.535 -2.665 0.652 -2.352 0.719 -2.191 c 0.87 -1.817 l h f Q Q q 222 158.652 19.478 19.179 re W n q 19.6734 0 0 19.6734 221.8048 158.1575 cm /Im1 Do Q Q q 281.257 158.469 18.808 19.323 re W n q 19.504 0 0 19.504 280.5616 158.4693 cm /Im2 Do Q Q q 0 0 552 705 re W n q 0.507 scn 0 SCN 0.375 w /GS2 gs /Fm1 Do Q Q q 251.885 158.366 19.095 20.135 re W n q 21.1832 0 0 22.2468 250.8697 157.2921 cm /Im3 Do Q Q q 0 0 552 705 re W n q 0.507 scn 0 SCN 0.375 w /GS3 gs /Fm2 Do Q Q q 310.469 158.697 19.074 19.057 re W n q 19.6141 0 0 19.6141 309.9286 158.1392 cm /Im4 Do Q Q BT 0 scn /GS1 gs /TT1 1 Tf -0.025 Tc 0.079 Tw 9 0 0 9 222 146.5532 Tm [(M)-20(a)-17(k)-2(e s)-14(u)-17(r)-20(e t)-16(o co)-15(n)-20(n)-20(e)-21(c)-28(t w)-21(i)-17(t)-23(h u)-20(s)-4(!)]TJ 0 Tc 0 Tw 12 0 Td ( )Tj 0.027 Tc -0.027 Tw -12 -1.222 Td [(i)-16(n)-16(f)-6(o)-14(r)-32(m)-19(i)-17(t)-36(.co)-14(m/)67(s)-10(o)-15(c)-6(i)-16(a)-19(l)-17(co)-15(n)-20(n)-20(e)-20(c)-28(t)]TJ ET q 0 0 552 705 re W n q 1 0 0 1 85.2234 638.2385 cm 0.291 scn /GS0 gs 0 0 m -18.522 0 -18.522 -18.522 v -18.522 -54 l 400.075 -54 l 400.075 -18.522 l 400.075 0 381.553 0 v h f Q Q BT 1 scn /GS0 gs /TT1 1 Tf 0.01 Tc 0 Tw 24 0 0 24 172.4053 616.9322 Tm [(T)-2(h)-4(e A)8(ddi)-1(s)7(o)2(n)-12(-)31(W)50(e)-6(s)1(l)-1(e)13(y)]TJ -1.93 -1.021 Td [(P)1(ro)9(f)5(e)-6(s)2(s)3(i)4(o)2(n)-2(a)-3(l C)5(o)2(m)-4(p)-2(u)-2(t)-7(in)1(g S)-9(e)-7(r)-17(ie)-6(s)10( )-10( )]TJ ET q 1 0 0 1 12 64.9371 cm 0.291 scn 0 0 m 0 -52.937 l 527.998 -52.937 l 528 0 l h f Q q 0 0 552 705 re W n q 1 0 0 1 488.4841 57.5147 cm 0 0 m -2.593 0 -4.783 -2.218 -4.783 -4.844 c -4.783 -7.829 -2.753 -9.997 0.039 -9.997 c 2.676 -9.997 4.819 -7.686 4.819 -4.844 c 4.819 -2.173 2.657 0 0 0 c 0.039 -8.778 m -2.19 -8.778 -3 -6.452 -3 -4.891 c -3 -3.471 -2.185 -1.222 0 -1.222 c 2.097 -1.222 3.038 -3.339 3.038 -4.844 c 3.038 -6.799 2.009 -8.778 0.039 -8.778 c -45.416 -0.001 m -43.724 -0.001 -41.914 -0.752 -41.914 -2.862 c -41.914 -4.898 -43.902 -6.12 -45.971 -6.122 c -45.978 -5.784 -45.983 -5.434 -45.987 -5.084 c -44.422 -4.964 -43.582 -4.205 -43.582 -2.951 c -43.582 -1.873 -44.455 -1.118 -45.71 -1.118 c -46.721 -1.118 l -46.723 -4.257 -46.659 -8.771 -46.535 -9.892 c -47.207 -9.757 -47.762 -9.753 -48.455 -9.892 c -48.297 -8.526 -48.192 -1.288 -48.465 0.002 c -47.193 -0.042 -46.913 -0.042 v -46.582 -0.003 -45.76 -0.001 -45.416 -0.001 c -29.198 -0.072 m -29.687 -1.993 -31.739 -7.539 -32.728 -9.894 c -32.081 -9.803 -31.396 -9.824 -31.082 -9.876 c -30.754 -8.819 -30.398 -7.562 -30.241 -7.09 c -29.218 -7.016 -28.007 -7.016 -26.789 -7.09 c -26.421 -8.078 -26.204 -8.778 -25.869 -9.872 c -25.238 -9.812 -24.594 -9.819 -23.911 -9.88 c -24.891 -7.526 -27.168 -1.461 -27.531 -0.071 c -28.026 -0.131 -28.659 -0.131 -29.198 -0.072 c -29.85 -5.77 m -28.907 -2.976 -28.591 -2.013 v -27.617 -4.774 -27.272 -5.77 v -28.315 -5.876 -28.843 -5.876 -29.85 -5.77 c -38.024 -8.645 m -36.992 -8.69 -34.526 -8.544 y -34.519 -9.604 -34.589 -9.92 y -35.509 -9.797 -38.277 -9.738 -39.777 -9.92 c -39.558 -7.526 -39.632 -2.589 -39.768 -0.029 c -38.383 -0.145 -35.732 -0.123 -34.611 -0.029 c -34.611 -1.412 l -35.572 -1.321 -37.102 -1.228 -37.975 -1.257 c -38.011 -3.548 -37.984 -4.134 v -36.423 -4.245 -35.277 -4.06 -34.785 -4.024 c -34.785 -5.404 l -36.597 -5.226 -37.979 -5.331 v -38.024 -6.254 -38.024 -7.621 -38.024 -8.645 c 15.022 -9.678 m 15.028 -9.703 15.06 -9.88 15.059 -9.882 c 14.631 -9.816 13.98 -9.805 13.571 -9.87 c 12.793 -8.721 9.716 -4.513 8.499 -2.942 c 8.455 -5.24 8.427 -8.716 8.569 -9.861 c 8.385 -9.867 8.111 -9.851 7.972 -9.851 c 7.558 -9.851 7.372 -9.831 7.002 -9.882 c 7.204 -8.694 7.253 -1.374 7.002 -0.085 c 7.593 -0.097 8.078 -0.106 8.234 -0.094 c 8.374 -0.085 8.468 -0.072 y 11.777 -4.51 13.506 -6.83 v 13.523 -5.953 13.603 -1.545 13.437 -0.05 c 13.669 -0.083 13.957 -0.167 14.244 -0.162 c 14.507 -0.157 14.791 -0.094 15.05 -0.047 c 14.814 -1.915 14.729 -8.28 15.022 -9.678 c -15.658 -2.647 m -15.658 -4.232 -16.729 -5.145 -17.76 -5.348 c -17.011 -6.309 -14.304 -9.897 y -14.987 -9.794 -15.99 -9.812 -16.492 -9.871 c -17.355 -8.523 -18.812 -6.436 -19.37 -5.761 c -19.381 -5.374 -19.385 -5.078 -19.392 -4.697 c -17.715 -4.733 -17.36 -3.617 -17.36 -2.826 c -17.36 -1.773 -18.317 -1.222 -19.262 -1.222 c -20.083 -1.222 l -20.153 -3.103 -20.019 -7.726 -19.937 -9.876 c -20.591 -9.808 -21.314 -9.819 -21.835 -9.876 c -21.614 -8.3 -21.653 -1.127 -21.835 -0.032 c -20.8 -0.111 -20.351 -0.085 v -19.945 -0.063 -19.566 -0.042 -19.089 -0.042 c -18.057 -0.042 -15.658 -0.295 -15.658 -2.647 c -8.692 -4.284 m -7.613 -4.972 -6.79 -5.614 -6.79 -7.08 c -6.79 -9.195 -8.444 -9.945 -9.863 -9.945 c -11.032 -9.945 -12.271 -9.329 -12.844 -8.886 c -12.63 -8.461 -12.405 -8.024 -12.239 -7.423 c -11.603 -8.136 -10.622 -8.639 -9.949 -8.639 c -9.062 -8.639 -8.528 -8.155 -8.528 -7.342 c -8.493 -6.732 -8.931 -6.301 -9.479 -5.842 c -9.88 -5.51 -10.893 -4.854 -11.135 -4.658 c -11.933 -4.007 -12.423 -3.462 -12.423 -2.425 c -12.423 -1.042 -11.195 0 -9.564 0 c -8.73 0 -7.949 -0.249 -6.995 -0.886 c -7.229 -1.241 -7.556 -1.787 -7.726 -2.289 c -8.109 -1.77 -8.698 -1.222 -9.514 -1.222 c -10.287 -1.222 -10.767 -1.67 -10.767 -2.388 c -10.767 -2.623 -10.597 -2.891 -10.247 -3.204 c -9.899 -3.503 -9.419 -3.839 -8.692 -4.284 c f Q q 1 0 0 1 49.5276 54.9473 cm 0 0 m 0.464 0 l 2.543 -4.663 l 1.864 -4.663 l 1.245 -3.288 l -0.73 -3.288 l -1.31 -4.663 l -1.991 -4.663 l h 0.975 -2.701 m 0.228 -1.018 l -0.467 -2.701 l h 4.137 -0.026 m 4.801 -0.026 l 4.801 -4.057 l 6.89 -4.057 l 6.89 -4.663 l 4.137 -4.663 l h 14.048 -0.026 m 14.711 -0.026 l 12.839 -4.682 l 12.692 -4.682 l 11.177 -0.912 l 9.647 -4.682 l 9.503 -4.682 l 7.637 -0.026 l 8.304 -0.026 l 9.58 -3.221 l 10.869 -0.026 l 11.495 -0.026 l 12.788 -3.221 l h 17.521 0 m 17.987 0 l 20.064 -4.663 l 19.386 -4.663 l 18.77 -3.288 l 16.791 -3.288 l 16.212 -4.663 l 15.53 -4.663 l h 18.496 -2.701 m 17.747 -1.018 l 17.052 -2.701 l h 23.973 -0.026 m 24.776 -0.026 l 23.064 -2.21 l 23.064 -4.663 l 22.386 -4.663 l 22.386 -2.21 l 20.674 -0.026 l 21.475 -0.026 l 22.714 -1.624 l h 27.661 -2.722 m 27.155 -2.415 l 26.838 -2.222 26.614 -2.032 26.48 -1.847 c 26.346 -1.659 26.279 -1.444 26.279 -1.201 c 26.279 -0.83 26.405 -0.54 26.657 -0.31 c 26.91 -0.082 27.241 0.031 27.646 0.031 c 28.033 0.031 28.387 -0.08 28.712 -0.294 c 28.712 -1.047 l 28.376 -0.728 28.017 -0.565 27.633 -0.565 c 27.415 -0.565 27.238 -0.614 27.097 -0.715 c 26.958 -0.814 26.889 -0.945 26.889 -1.097 c 26.889 -1.239 26.939 -1.369 27.042 -1.489 c 27.147 -1.61 27.31 -1.741 27.538 -1.872 c 28.044 -2.172 l 28.609 -2.51 28.892 -2.938 28.892 -3.458 c 28.892 -3.829 28.77 -4.134 28.522 -4.365 c 28.273 -4.6 27.947 -4.716 27.549 -4.716 c 27.092 -4.716 26.674 -4.575 26.299 -4.295 c 26.299 -3.451 l 26.657 -3.903 27.071 -4.13 27.544 -4.13 c 27.751 -4.13 27.925 -4.072 28.062 -3.957 c 28.201 -3.843 28.27 -3.697 28.27 -3.522 c 28.27 -3.24 28.064 -2.973 27.661 -2.722 c 34.227 -0.026 m 34.891 -0.026 l 34.891 -4.057 l 36.978 -4.057 l 36.978 -4.663 l 34.227 -4.663 l h 38.917 -0.026 m 41.544 -0.026 l 41.544 -0.616 l 39.58 -0.616 l 39.58 -2.032 l 41.478 -2.032 l 41.478 -2.624 l 39.58 -2.624 l 39.58 -4.065 l 41.608 -4.065 l 41.608 -4.654 l 38.917 -4.654 l h 45.289 0 m 45.756 0 l 47.833 -4.663 l 47.157 -4.663 l 46.536 -3.288 l 44.558 -3.288 l 43.979 -4.663 l 43.298 -4.663 l h 46.264 -2.701 m 45.516 -1.018 l 44.823 -2.701 l h 49.72 -4.663 m 49.72 -0.026 l 50.881 -0.026 l 51.349 -0.026 51.722 -0.144 51.997 -0.377 c 52.272 -0.608 52.41 -0.923 52.41 -1.318 c 52.41 -1.59 52.343 -1.819 52.207 -2.015 c 52.072 -2.217 51.879 -2.362 51.627 -2.46 c 51.775 -2.554 51.919 -2.69 52.062 -2.858 c 52.205 -3.026 52.403 -3.319 52.658 -3.733 c 52.819 -3.997 52.951 -4.197 53.046 -4.332 c 53.293 -4.663 l 52.503 -4.663 l 52.302 -4.356 l 52.296 -4.346 52.282 -4.326 52.26 -4.3 c 52.132 -4.118 l 51.927 -3.777 l 51.707 -3.417 l 51.568 -3.23 51.441 -3.076 51.326 -2.961 c 51.215 -2.849 51.11 -2.77 51.022 -2.722 c 50.928 -2.67 50.774 -2.645 50.556 -2.645 c 50.384 -2.645 l 50.384 -4.663 l h 50.583 -0.59 m 50.384 -0.59 l 50.384 -2.056 l 50.637 -2.056 l 50.971 -2.056 51.202 -2.028 51.326 -1.97 c 51.453 -1.91 51.548 -1.825 51.619 -1.706 c 51.689 -1.592 51.725 -1.46 51.725 -1.312 c 51.725 -1.164 51.686 -1.034 51.608 -0.919 c 51.529 -0.796 51.421 -0.715 51.281 -0.664 c 51.138 -0.616 50.908 -0.59 50.583 -0.59 c 58.843 -0.026 m 59.473 -0.026 l 59.473 -4.663 l 58.905 -4.663 l 55.806 -1.092 l 55.806 -4.663 l 55.183 -4.663 l 55.183 -0.026 l 55.72 -0.026 l 58.843 -3.629 l h 61.833 -0.026 0.663 -4.635 re 68.565 -0.026 m 69.196 -0.026 l 69.196 -4.663 l 68.626 -4.663 l 65.525 -1.092 l 65.525 -4.663 l 64.901 -4.663 l 64.901 -0.026 l 65.439 -0.026 l 68.565 -3.629 l h 73.647 -2.377 m 75.201 -2.377 l 75.201 -4.343 l 74.631 -4.591 74.064 -4.716 73.505 -4.716 c 72.737 -4.716 72.122 -4.494 71.663 -4.042 c 71.206 -3.597 70.973 -3.045 70.973 -2.386 c 70.973 -1.695 71.212 -1.116 71.689 -0.659 c 72.166 -0.2 72.759 0.031 73.478 0.031 c 73.736 0.031 73.984 0.002 74.221 -0.051 c 74.455 -0.112 74.751 -0.21 75.109 -0.366 c 75.109 -1.04 l 74.556 -0.717 74.008 -0.558 73.462 -0.558 c 72.957 -0.558 72.531 -0.731 72.183 -1.077 c 71.833 -1.42 71.663 -1.847 71.663 -2.346 c 71.663 -2.872 71.833 -3.302 72.183 -3.634 c 72.531 -3.97 72.977 -4.139 73.522 -4.139 c 73.788 -4.139 74.105 -4.077 74.475 -3.957 c 74.539 -3.938 l 74.539 -2.968 l 73.647 -2.968 l h f Q Q q 1 0 0 1 25.08 9.41998 cm 0 g 0 G 1 w 10 M /GS4 gs 0 Tc /Fm3 Do Q endstream endobj 47806 0 obj <> endobj 47807 0 obj <>stream q /Fm0 Do Q q 252 0 0 311.4 0 0 cm /Im0 Do Q q /Fm1 Do Q endstream endobj 47808 0 obj <> endobj 47809 0 obj <> endobj 47810 0 obj <> endobj xref 0 1 0000000000 65535 f 2 2 0010640631 00000 n 0010640871 00000 n 5 10 0010641341 00000 n 0010641558 00000 n 0010642117 00000 n 0010642561 00000 n 0010642947 00000 n 0010643333 00000 n 0010643908 00000 n 0010644352 00000 n 0010644708 00000 n 0010645065 00000 n 34 1 0010645434 00000 n 75 1 0010645996 00000 n 112 1 0010646782 00000 n 151 1 0010647529 00000 n 190 1 0010648296 00000 n 229 1 0010649063 00000 n 268 1 0010649830 00000 n 307 1 0010650598 00000 n 346 1 0010651352 00000 n 356 1 0010652120 00000 n 358 2 0010652584 00000 n 0010652970 00000 n 361 4 0010653323 00000 n 0010653747 00000 n 0010654099 00000 n 0010654498 00000 n 366 4 0010654846 00000 n 0010655246 00000 n 0010655613 00000 n 0010656032 00000 n 371 4 0010656380 00000 n 0010656780 00000 n 0010657161 00000 n 0010657557 00000 n 378 1 0010657956 00000 n 380 2 0010658391 00000 n 0010658790 00000 n 383 4 0010659171 00000 n 0010659570 00000 n 0010659951 00000 n 0010660332 00000 n 388 2 0010660699 00000 n 0010661098 00000 n 391 4 0010661464 00000 n 0010661863 00000 n 0010662258 00000 n 0010662610 00000 n 396 2 0010662991 00000 n 0010663389 00000 n 399 2 0010663784 00000 n 0010664183 00000 n 402 2 0010664596 00000 n 0010664995 00000 n 405 1 0010665347 00000 n 407 2 0010665760 00000 n 0010666159 00000 n 410 2 0010666511 00000 n 0010666910 00000 n 416 1 0010667276 00000 n 418 4 0010667706 00000 n 0010668100 00000 n 0010668467 00000 n 0010668805 00000 n 423 2 0010669157 00000 n 0010669566 00000 n 426 1 0010669933 00000 n 429 1 0010670318 00000 n 432 1 0010670698 00000 n 437 1 0010671127 00000 n 440 1 0010671551 00000 n 442 1 0010671945 00000 n 444 3 0010672343 00000 n 0010672741 00000 n 0010673093 00000 n 448 1 0010673445 00000 n 450 7 0010673829 00000 n 0010674256 00000 n 0010674623 00000 n 0010675004 00000 n 0010675356 00000 n 0010675708 00000 n 0010676060 00000 n 458 4 0010676412 00000 n 0010676796 00000 n 0010677163 00000 n 0010677543 00000 n 463 4 0010677895 00000 n 0010678294 00000 n 0010678675 00000 n 0010679056 00000 n 468 1 0010679423 00000 n 471 2 0010679836 00000 n 0010680245 00000 n 474 1 0010680597 00000 n 478 1 0010680981 00000 n 480 4 0010681430 00000 n 0010681857 00000 n 0010682224 00000 n 0010682591 00000 n 487 5 0010682972 00000 n 0010683419 00000 n 0010683814 00000 n 0010684208 00000 n 0010684589 00000 n 493 1 0010684970 00000 n 496 2 0010685397 00000 n 0010685834 00000 n 499 3 0010686187 00000 n 0010686587 00000 n 0010686940 00000 n 503 2 0010687293 00000 n 0010687678 00000 n 506 2 0010688088 00000 n 0010688516 00000 n 509 1 0010688884 00000 n 511 5 0010689312 00000 n 0010689740 00000 n 0010690122 00000 n 0010690489 00000 n 0010690870 00000 n 517 1 0010691223 00000 n 519 2 0010691651 00000 n 0010692065 00000 n 522 3 0010692418 00000 n 0010692818 00000 n 0010693171 00000 n 528 2 0010693519 00000 n 0010693997 00000 n 531 3 0010694365 00000 n 0010694750 00000 n 0010695117 00000 n 535 1 0010695484 00000 n 537 2 0010695869 00000 n 0010696269 00000 n 540 1 0010696637 00000 n 542 2 0010697037 00000 n 0010697465 00000 n 545 2 0010697861 00000 n 0010698275 00000 n 548 2 0010698657 00000 n 0010699085 00000 n 551 1 0010699466 00000 n 553 2 0010699866 00000 n 0010700294 00000 n 556 1 0010700676 00000 n 558 1 0010701075 00000 n 560 3 0010701503 00000 n 0010701903 00000 n 0010702271 00000 n 564 3 0010702638 00000 n 0010703066 00000 n 0010703448 00000 n 568 1 0010703844 00000 n 570 3 0010704272 00000 n 0010704672 00000 n 0010705068 00000 n 574 1 0010705421 00000 n 576 2 0010705849 00000 n 0010706249 00000 n 579 3 0010706602 00000 n 0010707030 00000 n 0010707426 00000 n 583 1 0010707808 00000 n 585 5 0010708236 00000 n 0010708650 00000 n 0010709017 00000 n 0010709370 00000 n 0010709723 00000 n 591 2 0010710076 00000 n 0010710504 00000 n 594 3 0010710900 00000 n 0010711285 00000 n 0010711652 00000 n 599 3 0010712034 00000 n 0010712429 00000 n 0010712811 00000 n 605 2 0010713179 00000 n 0010713629 00000 n 609 3 0010713997 00000 n 0010714407 00000 n 0010714775 00000 n 613 2 0010715143 00000 n 0010715543 00000 n 616 2 0010715911 00000 n 0010716311 00000 n 619 1 0010716693 00000 n 621 3 0010717107 00000 n 0010717521 00000 n 0010717874 00000 n 625 1 0010718227 00000 n 627 2 0010718627 00000 n 0010719027 00000 n 630 5 0010719409 00000 n 0010719809 00000 n 0010720177 00000 n 0010720545 00000 n 0010720941 00000 n 636 3 0010721309 00000 n 0010721709 00000 n 0010722062 00000 n 640 4 0010722415 00000 n 0010722829 00000 n 0010723211 00000 n 0010723607 00000 n 645 3 0010723988 00000 n 0010724388 00000 n 0010724770 00000 n 649 1 0010725152 00000 n 651 2 0010725552 00000 n 0010725972 00000 n 656 4 0010726320 00000 n 0010726755 00000 n 0010727108 00000 n 0010727490 00000 n 661 1 0010727857 00000 n 663 1 0010728257 00000 n 665 1 0010728657 00000 n 667 1 0010729042 00000 n 669 1 0010729456 00000 n 671 1 0010729841 00000 n 673 2 0010730226 00000 n 0010730640 00000 n 676 7 0010731022 00000 n 0010731436 00000 n 0010731818 00000 n 0010732171 00000 n 0010732553 00000 n 0010732921 00000 n 0010733317 00000 n 684 1 0010733685 00000 n 688 1 0010734070 00000 n 690 5 0010734534 00000 n 0010734934 00000 n 0010735330 00000 n 0010735726 00000 n 0010736079 00000 n 697 1 0010736460 00000 n 699 2 0010736884 00000 n 0010737284 00000 n 702 1 0010737637 00000 n 704 3 0010738036 00000 n 0010738450 00000 n 0010738818 00000 n 708 3 0010739199 00000 n 0010739613 00000 n 0010739981 00000 n 712 7 0010740363 00000 n 0010740777 00000 n 0010741130 00000 n 0010741498 00000 n 0010741866 00000 n 0010742233 00000 n 0010742586 00000 n 720 5 0010742982 00000 n 0010743410 00000 n 0010743778 00000 n 0010744145 00000 n 0010744498 00000 n 726 2 0010744851 00000 n 0010745250 00000 n 731 2 0010745617 00000 n 0010746067 00000 n 734 5 0010746435 00000 n 0010746863 00000 n 0010747259 00000 n 0010747626 00000 n 0010747979 00000 n 740 2 0010748332 00000 n 0010748746 00000 n 743 2 0010749127 00000 n 0010749526 00000 n 746 6 0010749894 00000 n 0010750322 00000 n 0010750704 00000 n 0010751071 00000 n 0010751453 00000 n 0010751835 00000 n 753 1 0010752202 00000 n 756 4 0010752630 00000 n 0010753068 00000 n 0010753436 00000 n 0010753803 00000 n 761 6 0010754170 00000 n 0010754598 00000 n 0010754966 00000 n 0010755334 00000 n 0010755687 00000 n 0010756055 00000 n 768 5 0010756422 00000 n 0010756836 00000 n 0010757218 00000 n 0010757628 00000 n 0010758038 00000 n 774 4 0010758405 00000 n 0010758805 00000 n 0010759201 00000 n 0010759615 00000 n 779 5 0010759997 00000 n 0010760411 00000 n 0010760793 00000 n 0010761175 00000 n 0010761542 00000 n 785 6 0010761924 00000 n 0010762324 00000 n 0010762677 00000 n 0010763044 00000 n 0010763397 00000 n 0010763750 00000 n 792 1 0010764118 00000 n 794 4 0010764532 00000 n 0010764946 00000 n 0010765342 00000 n 0010765695 00000 n 799 2 0010766062 00000 n 0010766476 00000 n 802 3 0010766829 00000 n 0010767228 00000 n 0010767638 00000 n 808 5 0010767986 00000 n 0010768421 00000 n 0010768803 00000 n 0010769171 00000 n 0010769524 00000 n 814 3 0010769906 00000 n 0010770306 00000 n 0010770688 00000 n 818 2 0010771070 00000 n 0010771470 00000 n 821 1 0010771852 00000 n 823 2 0010772266 00000 n 0010772680 00000 n 826 1 0010773048 00000 n 828 4 0010773476 00000 n 0010773890 00000 n 0010774272 00000 n 0010774654 00000 n 833 4 0010775007 00000 n 0010775406 00000 n 0010775759 00000 n 0010776112 00000 n 838 3 0010776479 00000 n 0010776878 00000 n 0010777231 00000 n 842 2 0010777613 00000 n 0010777998 00000 n 845 1 0010778351 00000 n 849 10 0010778736 00000 n 0010779186 00000 n 0010779554 00000 n 0010779922 00000 n 0010780275 00000 n 0010780628 00000 n 0010780981 00000 n 0010781334 00000 n 0010781687 00000 n 0010782055 00000 n 860 3 0010782408 00000 n 0010782822 00000 n 0010783203 00000 n 864 1 0010783599 00000 n 866 3 0010783999 00000 n 0010784384 00000 n 0010784737 00000 n 870 2 0010785090 00000 n 0010785490 00000 n 873 3 0010785857 00000 n 0010786256 00000 n 0010786637 00000 n 877 1 0010786990 00000 n 879 2 0010787390 00000 n 0010787804 00000 n 882 6 0010788186 00000 n 0010788614 00000 n 0010788995 00000 n 0010789362 00000 n 0010789744 00000 n 0010790111 00000 n 889 2 0010790478 00000 n 0010790892 00000 n 892 1 0010791245 00000 n 894 2 0010791673 00000 n 0010792101 00000 n 897 6 0010792468 00000 n 0010792882 00000 n 0010793264 00000 n 0010793646 00000 n 0010794014 00000 n 0010794367 00000 n 904 4 0010794748 00000 n 0010795147 00000 n 0010795529 00000 n 0010795897 00000 n 909 6 0010796279 00000 n 0010796707 00000 n 0010797074 00000 n 0010797470 00000 n 0010797866 00000 n 0010798219 00000 n 916 2 0010798572 00000 n 0010798971 00000 n 919 6 0010799338 00000 n 0010799752 00000 n 0010800134 00000 n 0010800501 00000 n 0010800854 00000 n 0010801264 00000 n 926 3 0010801646 00000 n 0010802060 00000 n 0010802442 00000 n 930 1 0010802810 00000 n 932 2 0010803238 00000 n 0010803623 00000 n 935 2 0010803976 00000 n 0010804376 00000 n 938 2 0010804758 00000 n 0010805143 00000 n 943 1 0010805496 00000 n 945 1 0010805932 00000 n 947 3 0010806332 00000 n 0010806732 00000 n 0010807114 00000 n 951 9 0010807467 00000 n 0010807881 00000 n 0010808263 00000 n 0010808630 00000 n 0010808997 00000 n 0010809379 00000 n 0010809761 00000 n 0010810143 00000 n 0010810496 00000 n 961 2 0010810878 00000 n 0010811278 00000 n 964 3 0010811632 00000 n 0010812032 00000 n 0010812414 00000 n 968 5 0010812767 00000 n 0010813152 00000 n 0010813505 00000 n 0010813858 00000 n 0010814211 00000 n 974 2 0010814564 00000 n 0010814978 00000 n 977 4 0010815345 00000 n 0010815745 00000 n 0010816127 00000 n 0010816480 00000 n 983 4 0010816833 00000 n 0010817243 00000 n 0010817625 00000 n 0010818007 00000 n 988 1 0010818360 00000 n 990 4 0010818760 00000 n 0010819160 00000 n 0010819542 00000 n 0010819895 00000 n 995 3 0010820248 00000 n 0010820633 00000 n 0010820986 00000 n 1001 1 0010821334 00000 n 1003 4 0010821770 00000 n 0010822171 00000 n 0010822540 00000 n 0010822923 00000 n 1009 9 0010823292 00000 n 0010823703 00000 n 0010824072 00000 n 0010824441 00000 n 0010824810 00000 n 0010825193 00000 n 0010825561 00000 n 0010825943 00000 n 0010826297 00000 n 1019 1 0010826651 00000 n 1021 1 0010827052 00000 n 1023 1 0010827453 00000 n 1025 4 0010827854 00000 n 0010828255 00000 n 0010828624 00000 n 0010829007 00000 n 1030 5 0010829361 00000 n 0010829747 00000 n 0010830116 00000 n 0010830485 00000 n 0010830868 00000 n 1036 2 0010831222 00000 n 0010831623 00000 n 1039 4 0010831977 00000 n 0010832378 00000 n 0010832761 00000 n 0010833144 00000 n 1044 4 0010833498 00000 n 0010833913 00000 n 0010834282 00000 n 0010834665 00000 n 1049 1 0010835019 00000 n 1051 1 0010835434 00000 n 1055 3 0010835820 00000 n 0010836271 00000 n 0010836625 00000 n 1059 3 0010836979 00000 n 0010837365 00000 n 0010837733 00000 n 1063 4 0010838101 00000 n 0010838487 00000 n 0010838856 00000 n 0010839239 00000 n 1068 1 0010839608 00000 n 1070 5 0010840009 00000 n 0010840410 00000 n 0010840793 00000 n 0010841147 00000 n 0010841515 00000 n 1076 1 0010841869 00000 n 1078 1 0010842270 00000 n 1082 4 0010842656 00000 n 0010843107 00000 n 0010843489 00000 n 0010843872 00000 n 1087 15 0010844255 00000 n 0010844656 00000 n 0010845067 00000 n 0010845436 00000 n 0010845805 00000 n 0010846173 00000 n 0010846541 00000 n 0010846909 00000 n 0010847277 00000 n 0010847631 00000 n 0010847999 00000 n 0010848396 00000 n 0010848750 00000 n 0010849118 00000 n 0010849472 00000 n 1103 2 0010849854 00000 n 0010850240 00000 n 1106 4 0010850609 00000 n 0010851053 00000 n 0010851437 00000 n 0010851806 00000 n 1111 3 0010852189 00000 n 0010852618 00000 n 0010852987 00000 n 1115 1 0010853398 00000 n 1118 1 0010853784 00000 n 1120 10 0010854195 00000 n 0010854581 00000 n 0010854964 00000 n 0010855347 00000 n 0010855730 00000 n 0010856113 00000 n 0010856496 00000 n 0010856850 00000 n 0010857204 00000 n 0010857558 00000 n 1131 2 0010857926 00000 n 0010858355 00000 n 1134 2 0010858723 00000 n 0010859152 00000 n 1137 6 0010859506 00000 n 0010859907 00000 n 0010860276 00000 n 0010860659 00000 n 0010861056 00000 n 0010861410 00000 n 1144 2 0010861778 00000 n 0010862164 00000 n 1148 1 0010862532 00000 n 1150 7 0010862958 00000 n 0010863344 00000 n 0010863727 00000 n 0010864081 00000 n 0010864463 00000 n 0010864831 00000 n 0010865199 00000 n 1158 7 0010865553 00000 n 0010865982 00000 n 0010866365 00000 n 0010866747 00000 n 0010867101 00000 n 0010867455 00000 n 0010867852 00000 n 1166 4 0010868221 00000 n 0010868622 00000 n 0010868991 00000 n 0010869345 00000 n 1171 4 0010869713 00000 n 0010870114 00000 n 0010870497 00000 n 0010870865 00000 n 1177 2 0010871219 00000 n 0010871630 00000 n 1180 1 0010872013 00000 n 1183 2 0010872414 00000 n 0010872810 00000 n 1186 4 0010873164 00000 n 0010873565 00000 n 0010873948 00000 n 0010874331 00000 n 1191 6 0010874714 00000 n 0010875100 00000 n 0010875469 00000 n 0010875852 00000 n 0010876235 00000 n 0010876604 00000 n 1198 8 0010877014 00000 n 0010877415 00000 n 0010877798 00000 n 0010878181 00000 n 0010878578 00000 n 0010878946 00000 n 0010879328 00000 n 0010879682 00000 n 1207 6 0010880064 00000 n 0010880465 00000 n 0010880848 00000 n 0010881231 00000 n 0010881614 00000 n 0010881982 00000 n 1214 2 0010882336 00000 n 0010882737 00000 n 1217 2 0010883091 00000 n 0010883477 00000 n 1221 1 0010883846 00000 n 1223 3 0010884258 00000 n 0010884673 00000 n 0010885027 00000 n 1228 2 0010885410 00000 n 0010885821 00000 n 1231 2 0010886190 00000 n 0010886576 00000 n 1234 7 0010886959 00000 n 0010887360 00000 n 0010887729 00000 n 0010888098 00000 n 0010888467 00000 n 0010888850 00000 n 0010889204 00000 n 1242 1 0010889558 00000 n 1244 5 0010889987 00000 n 0010890402 00000 n 0010890785 00000 n 0010891139 00000 n 0010891522 00000 n 1250 13 0010891919 00000 n 0010892334 00000 n 0010892717 00000 n 0010893100 00000 n 0010893483 00000 n 0010893851 00000 n 0010894219 00000 n 0010894573 00000 n 0010894941 00000 n 0010895295 00000 n 0010895649 00000 n 0010896017 00000 n 0010896371 00000 n 1264 3 0010896739 00000 n 0010897125 00000 n 0010897508 00000 n 1268 1 0010897891 00000 n 1270 1 0010898306 00000 n 1272 1 0010898692 00000 n 1276 5 0010899078 00000 n 0010899514 00000 n 0010899925 00000 n 0010900308 00000 n 0010900662 00000 n 1282 1 0010901045 00000 n 1284 7 0010901431 00000 n 0010901846 00000 n 0010902215 00000 n 0010902584 00000 n 0010902938 00000 n 0010903292 00000 n 0010903646 00000 n 1292 11 0010904000 00000 n 0010904415 00000 n 0010904798 00000 n 0010905167 00000 n 0010905536 00000 n 0010905890 00000 n 0010906244 00000 n 0010906598 00000 n 0010906952 00000 n 0010907306 00000 n 0010907660 00000 n 1304 6 0010908014 00000 n 0010908415 00000 n 0010908769 00000 n 0010909123 00000 n 0010909477 00000 n 0010909831 00000 n 1311 10 0010910185 00000 n 0010910571 00000 n 0010910925 00000 n 0010911279 00000 n 0010911662 00000 n 0010912045 00000 n 0010912399 00000 n 0010912753 00000 n 0010913107 00000 n 0010913461 00000 n 1322 2 0010913815 00000 n 0010914201 00000 n 1327 7 0010914569 00000 n 0010914991 00000 n 0010915345 00000 n 0010915714 00000 n 0010916068 00000 n 0010916422 00000 n 0010916776 00000 n 1335 5 0010917130 00000 n 0010917516 00000 n 0010917884 00000 n 0010918238 00000 n 0010918592 00000 n 1342 8 0010918946 00000 n 0010919371 00000 n 0010919754 00000 n 0010920108 00000 n 0010920477 00000 n 0010920831 00000 n 0010921185 00000 n 0010921539 00000 n 1351 1 0010921908 00000 n 1353 1 0010922308 00000 n 1355 1 0010922723 00000 n 1357 6 0010923138 00000 n 0010923553 00000 n 0010923950 00000 n 0010924332 00000 n 0010924686 00000 n 0010925040 00000 n 1364 3 0010925394 00000 n 0010925794 00000 n 0010926148 00000 n 1368 7 0010926502 00000 n 0010926888 00000 n 0010927271 00000 n 0010927625 00000 n 0010927979 00000 n 0010928333 00000 n 0010928687 00000 n 1376 2 0010929041 00000 n 0010929456 00000 n 1379 1 0010929824 00000 n 1381 2 0010930259 00000 n 0010930645 00000 n 1386 7 0010930994 00000 n 0010931445 00000 n 0010931814 00000 n 0010932197 00000 n 0010932580 00000 n 0010932977 00000 n 0010933374 00000 n 1394 4 0010933757 00000 n 0010934172 00000 n 0010934555 00000 n 0010934938 00000 n 1399 3 0010935292 00000 n 0010935707 00000 n 0010936090 00000 n 1403 4 0010936444 00000 n 0010936844 00000 n 0010937198 00000 n 0010937552 00000 n 1408 7 0010937906 00000 n 0010938306 00000 n 0010938703 00000 n 0010939071 00000 n 0010939453 00000 n 0010939821 00000 n 0010940204 00000 n 1416 1 0010940558 00000 n 1418 2 0010940944 00000 n 0010941330 00000 n 1423 1 0010941727 00000 n 1425 2 0010942178 00000 n 0010942574 00000 n 1428 4 0010942957 00000 n 0010943372 00000 n 0010943741 00000 n 0010944124 00000 n 1433 2 0010944478 00000 n 0010944864 00000 n 1436 1 0010945204 00000 n 1439 28 0010945605 00000 n 0010946001 00000 n 0010946355 00000 n 0010946709 00000 n 0010947063 00000 n 0010947417 00000 n 0010947771 00000 n 0010948125 00000 n 0010948493 00000 n 0010948861 00000 n 0010949215 00000 n 0010949569 00000 n 0010949937 00000 n 0010950291 00000 n 0010950645 00000 n 0010950999 00000 n 0010951353 00000 n 0010951707 00000 n 0010952061 00000 n 0010952415 00000 n 0010952769 00000 n 0010953123 00000 n 0010953477 00000 n 0010953831 00000 n 0010954185 00000 n 0010954539 00000 n 0010954893 00000 n 0010955247 00000 n 1468 5 0010955601 00000 n 0010956002 00000 n 0010956385 00000 n 0010956768 00000 n 0010957151 00000 n 1474 3 0010957534 00000 n 0010957934 00000 n 0010958302 00000 n 1480 3 0010958651 00000 n 0010959073 00000 n 0010959455 00000 n 1484 1 0010959824 00000 n 1486 2 0010960225 00000 n 0010960611 00000 n 1489 48 0010960965 00000 n 0010961351 00000 n 0010961705 00000 n 0010962059 00000 n 0010962413 00000 n 0010962767 00000 n 0010963121 00000 n 0010963475 00000 n 0010963829 00000 n 0010964183 00000 n 0010964537 00000 n 0010964920 00000 n 0010965303 00000 n 0010965657 00000 n 0010966011 00000 n 0010966365 00000 n 0010966719 00000 n 0010967073 00000 n 0010967427 00000 n 0010967781 00000 n 0010968135 00000 n 0010968489 00000 n 0010968857 00000 n 0010969211 00000 n 0010969565 00000 n 0010969919 00000 n 0010970273 00000 n 0010970627 00000 n 0010970981 00000 n 0010971335 00000 n 0010971689 00000 n 0010972058 00000 n 0010972427 00000 n 0010972781 00000 n 0010973135 00000 n 0010973489 00000 n 0010973843 00000 n 0010974197 00000 n 0010974551 00000 n 0010974905 00000 n 0010975292 00000 n 0010975646 00000 n 0010976000 00000 n 0010976354 00000 n 0010976722 00000 n 0010977076 00000 n 0010977430 00000 n 0010977784 00000 n 1538 2 0010978138 00000 n 0010978524 00000 n 1541 50 0010978873 00000 n 0010979318 00000 n 0010979715 00000 n 0010980112 00000 n 0010980509 00000 n 0010980906 00000 n 0010981303 00000 n 0010981700 00000 n 0010982097 00000 n 0010982494 00000 n 0010982891 00000 n 0010983288 00000 n 0010983671 00000 n 0010984068 00000 n 0010984465 00000 n 0010984862 00000 n 0010985259 00000 n 0010985656 00000 n 0010986053 00000 n 0010986450 00000 n 0010986847 00000 n 0010987244 00000 n 0010987641 00000 n 0010988038 00000 n 0010988421 00000 n 0010988804 00000 n 0010989187 00000 n 0010989570 00000 n 0010989953 00000 n 0010990336 00000 n 0010990719 00000 n 0010991102 00000 n 0010991485 00000 n 0010991882 00000 n 0010992279 00000 n 0010992676 00000 n 0010993073 00000 n 0010993470 00000 n 0010993867 00000 n 0010994264 00000 n 0010994661 00000 n 0010995058 00000 n 0010995455 00000 n 0010995852 00000 n 0010996249 00000 n 0010996646 00000 n 0010997043 00000 n 0010997426 00000 n 0010997823 00000 n 0010998220 00000 n 1593 3 0010998569 00000 n 0010998995 00000 n 0010999349 00000 n 1597 7 0010999703 00000 n 0011000104 00000 n 0011000458 00000 n 0011000812 00000 n 0011001166 00000 n 0011001520 00000 n 0011001874 00000 n 1605 42 0011002228 00000 n 0011002673 00000 n 0011003041 00000 n 0011003424 00000 n 0011003792 00000 n 0011004175 00000 n 0011004544 00000 n 0011004941 00000 n 0011005295 00000 n 0011005663 00000 n 0011006017 00000 n 0011006371 00000 n 0011006725 00000 n 0011007079 00000 n 0011007447 00000 n 0011007844 00000 n 0011008227 00000 n 0011008581 00000 n 0011008950 00000 n 0011009332 00000 n 0011009733 00000 n 0011010115 00000 n 0011010469 00000 n 0011010852 00000 n 0011011235 00000 n 0011011589 00000 n 0011011957 00000 n 0011012311 00000 n 0011012665 00000 n 0011013019 00000 n 0011013373 00000 n 0011013756 00000 n 0011014110 00000 n 0011014479 00000 n 0011014847 00000 n 0011015201 00000 n 0011015569 00000 n 0011015923 00000 n 0011016292 00000 n 0011016660 00000 n 0011017028 00000 n 0011017396 00000 n 1648 8 0011017745 00000 n 0011018133 00000 n 0011018502 00000 n 0011018889 00000 n 0011019316 00000 n 0011019685 00000 n 0011020072 00000 n 0011020441 00000 n 1812 1 0011020790 00000 n 2081 1 0011022742 00000 n 2352 1 0011025799 00000 n 2636 1 0011028876 00000 n 2920 1 0011032068 00000 n 3210 1 0011035275 00000 n 3547 1 0011038527 00000 n 3876 1 0011042264 00000 n 4252 1 0011045906 00000 n 4621 1 0011050018 00000 n 5000 1 0011054060 00000 n 5255 1 0011058202 00000 n 5495 1 0011061104 00000 n 5716 1 0011063871 00000 n 6038 1 0011066448 00000 n 6370 1 0011070020 00000 n 6717 1 0011073707 00000 n 7024 1 0011077529 00000 n 7234 1 0011080951 00000 n 7595 1 0011083419 00000 n 7932 1 0011087397 00000 n 8082 1 0011091135 00000 n 8349 1 0011092988 00000 n 8524 1 0011096026 00000 n 8731 1 0011098129 00000 n 9099 1 0011100552 00000 n 9381 1 0011104585 00000 n 9603 1 0011107773 00000 n 9885 1 0011110346 00000 n 10158 1 0011113534 00000 n 10569 1 0011116633 00000 n 10918 1 0011121097 00000 n 11359 1 0011124956 00000 n 11766 1 0011129720 00000 n 12054 1 0011134159 00000 n 12395 1 0011137408 00000 n 12598 1 0011141172 00000 n 12870 1 0011143571 00000 n 13192 1 0011146645 00000 n 13329 7 0011150234 00000 n 0011151973 00000 n 0011152323 00000 n 0011152767 00000 n 0011153195 00000 n 0011153722 00000 n 0011154209 00000 n 14004 2 0011154714 00000 n 0011155007 00000 n 14013 2 0011155184 00000 n 0011155477 00000 n 14020 2 0011155654 00000 n 0011155947 00000 n 14033 2 0011156124 00000 n 0011156417 00000 n 14039 2 0011156594 00000 n 0011156887 00000 n 14045 2 0011157064 00000 n 0011157357 00000 n 14051 3 0011157534 00000 n 0011157827 00000 n 0011158092 00000 n 14083 2 0011158184 00000 n 0011158477 00000 n 14092 2 0011158654 00000 n 0011158947 00000 n 14098 2 0011159124 00000 n 0011159417 00000 n 14106 2 0011159594 00000 n 0011159887 00000 n 14112 2 0011160064 00000 n 0011160357 00000 n 14118 2 0011160534 00000 n 0011160827 00000 n 14125 2 0011161004 00000 n 0011161297 00000 n 14132 2 0011161474 00000 n 0011161767 00000 n 14139 2 0011161944 00000 n 0011162237 00000 n 14353 2 0011162414 00000 n 0011162707 00000 n 14362 2 0011162884 00000 n 0011163177 00000 n 14369 2 0011163354 00000 n 0011163647 00000 n 14376 2 0011163824 00000 n 0011164117 00000 n 14382 2 0011164294 00000 n 0011164587 00000 n 14390 2 0011164764 00000 n 0011165057 00000 n 14396 2 0011165234 00000 n 0011165527 00000 n 14403 2 0011165704 00000 n 0011165997 00000 n 14423 2 0011166174 00000 n 0011166467 00000 n 14431 2 0011166644 00000 n 0011166937 00000 n 14438 2 0011167114 00000 n 0011167407 00000 n 14445 2 0011167584 00000 n 0011167877 00000 n 14458 2 0011168054 00000 n 0011168347 00000 n 14469 2 0011168524 00000 n 0011168817 00000 n 14476 2 0011168994 00000 n 0011169287 00000 n 14484 2 0011169464 00000 n 0011169757 00000 n 14490 2 0011169934 00000 n 0011170227 00000 n 14498 2 0011170404 00000 n 0011170697 00000 n 14506 2 0011170874 00000 n 0011171167 00000 n 14513 2 0011171344 00000 n 0011171637 00000 n 14520 2 0011171814 00000 n 0011172107 00000 n 14531 2 0011172284 00000 n 0011172577 00000 n 14537 2 0011172754 00000 n 0011173047 00000 n 14545 2 0011173224 00000 n 0011173517 00000 n 14552 2 0011173694 00000 n 0011173987 00000 n 14559 2 0011174164 00000 n 0011174457 00000 n 14566 2 0011174634 00000 n 0011174927 00000 n 14574 2 0011175104 00000 n 0011175397 00000 n 14738 2 0011175574 00000 n 0011175867 00000 n 14744 2 0011176044 00000 n 0011176337 00000 n 14750 2 0011176514 00000 n 0011176807 00000 n 14758 2 0011176984 00000 n 0011177277 00000 n 14766 2 0011177454 00000 n 0011177747 00000 n 14777 2 0011177924 00000 n 0011178217 00000 n 14783 2 0011178394 00000 n 0011178687 00000 n 14793 2 0011178864 00000 n 0011179157 00000 n 14799 2 0011179334 00000 n 0011179627 00000 n 14807 2 0011179804 00000 n 0011180097 00000 n 14972 2 0011180274 00000 n 0011180567 00000 n 14980 2 0011180744 00000 n 0011181037 00000 n 14986 2 0011181214 00000 n 0011181507 00000 n 14993 2 0011181684 00000 n 0011181977 00000 n 15000 2 0011182154 00000 n 0011182447 00000 n 15006 2 0011182624 00000 n 0011182917 00000 n 15013 2 0011183094 00000 n 0011183387 00000 n 15020 2 0011183564 00000 n 0011183857 00000 n 15026 2 0011184034 00000 n 0011184327 00000 n 15036 2 0011184504 00000 n 0011184797 00000 n 15042 2 0011184974 00000 n 0011185267 00000 n 15048 2 0011185444 00000 n 0011185737 00000 n 15419 2 0011185914 00000 n 0011186207 00000 n 15430 2 0011186384 00000 n 0011186677 00000 n 15436 2 0011186854 00000 n 0011187147 00000 n 15446 2 0011187324 00000 n 0011187617 00000 n 15452 2 0011187794 00000 n 0011188087 00000 n 15460 2 0011188264 00000 n 0011188557 00000 n 15468 2 0011188734 00000 n 0011189027 00000 n 15474 2 0011189204 00000 n 0011189497 00000 n 15482 2 0011189674 00000 n 0011189967 00000 n 15491 2 0011190144 00000 n 0011190437 00000 n 15498 2 0011190614 00000 n 0011190907 00000 n 15504 2 0011191084 00000 n 0011191377 00000 n 15515 2 0011191554 00000 n 0011191847 00000 n 15522 2 0011192024 00000 n 0011192317 00000 n 15528 2 0011192494 00000 n 0011192787 00000 n 15587 2 0011192964 00000 n 0011193257 00000 n 15596 2 0011193434 00000 n 0011193727 00000 n 15604 2 0011193904 00000 n 0011194197 00000 n 15611 2 0011194462 00000 n 0011194755 00000 n 15622 2 0011194932 00000 n 0011195225 00000 n 15628 2 0011195402 00000 n 0011195695 00000 n 15640 2 0011195872 00000 n 0011196165 00000 n 15646 2 0011196342 00000 n 0011196635 00000 n 15656 2 0011196812 00000 n 0011197105 00000 n 15667 2 0011197282 00000 n 0011197575 00000 n 15675 2 0011197752 00000 n 0011198045 00000 n 15682 2 0011198222 00000 n 0011198515 00000 n 15690 2 0011198692 00000 n 0011198985 00000 n 15696 2 0011199162 00000 n 0011199455 00000 n 15702 2 0011199632 00000 n 0011199925 00000 n 15711 2 0011200102 00000 n 0011200395 00000 n 15731 2 0011200572 00000 n 0011200865 00000 n 15740 2 0011201042 00000 n 0011201335 00000 n 15747 2 0011201512 00000 n 0011201805 00000 n 16020 2 0011201982 00000 n 0011202275 00000 n 16027 2 0011202452 00000 n 0011202745 00000 n 16033 2 0011202922 00000 n 0011203215 00000 n 16040 2 0011203392 00000 n 0011203685 00000 n 16054 2 0011203862 00000 n 0011204155 00000 n 16063 2 0011204332 00000 n 0011204625 00000 n 16070 2 0011204802 00000 n 0011205095 00000 n 16078 2 0011205272 00000 n 0011205565 00000 n 16085 2 0011205742 00000 n 0011206035 00000 n 16095 2 0011206212 00000 n 0011206505 00000 n 16102 2 0011206682 00000 n 0011206975 00000 n 16108 2 0011207152 00000 n 0011207445 00000 n 16117 2 0011207622 00000 n 0011207915 00000 n 16123 2 0011208092 00000 n 0011208385 00000 n 16134 2 0011208562 00000 n 0011208855 00000 n 16142 2 0011209032 00000 n 0011209325 00000 n 16454 2 0011209502 00000 n 0011209795 00000 n 16474 2 0011209972 00000 n 0011210265 00000 n 16481 2 0011210442 00000 n 0011210735 00000 n 16487 2 0011210912 00000 n 0011211205 00000 n 16502 2 0011211382 00000 n 0011211675 00000 n 16511 2 0011211852 00000 n 0011212145 00000 n 16517 2 0011212322 00000 n 0011212615 00000 n 16525 2 0011212792 00000 n 0011213085 00000 n 16535 2 0011213262 00000 n 0011213555 00000 n 16543 2 0011213732 00000 n 0011214025 00000 n 16549 2 0011214202 00000 n 0011214495 00000 n 16556 2 0011214672 00000 n 0011214965 00000 n 16564 2 0011215142 00000 n 0011215435 00000 n 16573 2 0011215612 00000 n 0011215905 00000 n 16580 2 0011216082 00000 n 0011216375 00000 n 16587 2 0011216552 00000 n 0011216845 00000 n 16597 2 0011217022 00000 n 0011217315 00000 n 16605 2 0011217492 00000 n 0011217785 00000 n 16612 2 0011217962 00000 n 0011218255 00000 n 16618 2 0011218432 00000 n 0011218725 00000 n 16627 2 0011218902 00000 n 0011219195 00000 n 16635 2 0011219372 00000 n 0011219665 00000 n 16644 2 0011219842 00000 n 0011220135 00000 n 16655 2 0011220312 00000 n 0011220605 00000 n 16662 2 0011220782 00000 n 0011221075 00000 n 16668 2 0011221252 00000 n 0011221545 00000 n 16680 2 0011221722 00000 n 0011222015 00000 n 16687 2 0011222192 00000 n 0011222485 00000 n 16693 2 0011222662 00000 n 0011222955 00000 n 16704 2 0011223132 00000 n 0011223425 00000 n 16712 2 0011223602 00000 n 0011223895 00000 n 16718 2 0011224072 00000 n 0011224365 00000 n 16725 2 0011224542 00000 n 0011224835 00000 n 16733 2 0011225012 00000 n 0011225305 00000 n 16742 2 0011225482 00000 n 0011225775 00000 n 16750 2 0011225952 00000 n 0011226245 00000 n 16757 2 0011226422 00000 n 0011226715 00000 n 16764 2 0011226892 00000 n 0011227185 00000 n 16773 2 0011227362 00000 n 0011227655 00000 n 16783 2 0011227832 00000 n 0011228125 00000 n 16789 2 0011228302 00000 n 0011228595 00000 n 16797 4 0011228772 00000 n 0011229065 00000 n 0011229242 00000 n 0011229535 00000 n 16811 2 0011229712 00000 n 0011230005 00000 n 16818 2 0011230182 00000 n 0011230475 00000 n 16826 2 0011230652 00000 n 0011230945 00000 n 16832 2 0011231122 00000 n 0011231415 00000 n 16841 2 0011231592 00000 n 0011231885 00000 n 16848 2 0011232062 00000 n 0011232355 00000 n 16856 2 0011232532 00000 n 0011232825 00000 n 16864 2 0011233002 00000 n 0011233295 00000 n 16872 2 0011233472 00000 n 0011233765 00000 n 16879 2 0011233942 00000 n 0011234235 00000 n 16885 2 0011234412 00000 n 0011234705 00000 n 16891 2 0011234882 00000 n 0011235175 00000 n 16902 2 0011235352 00000 n 0011235645 00000 n 16909 2 0011235822 00000 n 0011236115 00000 n 16916 2 0011236292 00000 n 0011236585 00000 n 16922 2 0011236762 00000 n 0011237055 00000 n 16929 2 0011237232 00000 n 0011237525 00000 n 16938 2 0011237702 00000 n 0011237995 00000 n 16944 2 0011238172 00000 n 0011238465 00000 n 16951 2 0011238642 00000 n 0011238935 00000 n 16964 2 0011239112 00000 n 0011239405 00000 n 16971 2 0011239582 00000 n 0011239875 00000 n 16983 2 0011240052 00000 n 0011240345 00000 n 16989 2 0011240522 00000 n 0011240815 00000 n 17305 2 0011240992 00000 n 0011241285 00000 n 17314 2 0011241462 00000 n 0011241755 00000 n 17321 2 0011241932 00000 n 0011242225 00000 n 17329 4 0011242402 00000 n 0011242695 00000 n 0011242872 00000 n 0011243165 00000 n 17341 2 0011243342 00000 n 0011243635 00000 n 17348 2 0011243812 00000 n 0011244105 00000 n 17354 2 0011244282 00000 n 0011244575 00000 n 17368 2 0011244752 00000 n 0011245045 00000 n 17375 2 0011245222 00000 n 0011245515 00000 n 17385 2 0011245692 00000 n 0011245985 00000 n 17394 2 0011246162 00000 n 0011246455 00000 n 17402 2 0011246632 00000 n 0011246925 00000 n 17408 2 0011247102 00000 n 0011247395 00000 n 17414 2 0011247572 00000 n 0011247865 00000 n 17421 2 0011248042 00000 n 0011248335 00000 n 17431 2 0011248512 00000 n 0011248805 00000 n 17440 2 0011248982 00000 n 0011249275 00000 n 17448 2 0011249452 00000 n 0011249745 00000 n 17455 2 0011249922 00000 n 0011250215 00000 n 17463 2 0011250392 00000 n 0011250685 00000 n 17471 2 0011250862 00000 n 0011251155 00000 n 17478 2 0011251332 00000 n 0011251625 00000 n 17491 2 0011251802 00000 n 0011252095 00000 n 17499 2 0011252272 00000 n 0011252565 00000 n 17507 2 0011252742 00000 n 0011253035 00000 n 17515 2 0011253212 00000 n 0011253505 00000 n 17527 2 0011253682 00000 n 0011253975 00000 n 17533 2 0011254152 00000 n 0011254445 00000 n 17542 2 0011254622 00000 n 0011254915 00000 n 17548 2 0011255092 00000 n 0011255385 00000 n 17557 2 0011255562 00000 n 0011255855 00000 n 17565 2 0011256032 00000 n 0011256325 00000 n 17572 2 0011256502 00000 n 0011256795 00000 n 17578 2 0011256972 00000 n 0011257265 00000 n 17589 2 0011257442 00000 n 0011257735 00000 n 17598 2 0011257912 00000 n 0011258205 00000 n 17668 2 0011258382 00000 n 0011258675 00000 n 17678 2 0011258852 00000 n 0011259145 00000 n 17735 2 0011259322 00000 n 0011259615 00000 n 17746 2 0011259792 00000 n 0011260085 00000 n 17756 2 0011260262 00000 n 0011260555 00000 n 17759 2 0011260732 00000 n 0011261025 00000 n 17766 2 0011261202 00000 n 0011261495 00000 n 17774 2 0011261672 00000 n 0011261965 00000 n 17780 2 0011262142 00000 n 0011262435 00000 n 17792 4 0011262612 00000 n 0011262905 00000 n 0011263082 00000 n 0011263375 00000 n 17801 2 0011263552 00000 n 0011263845 00000 n 17809 2 0011264022 00000 n 0011264315 00000 n 17819 2 0011264492 00000 n 0011264785 00000 n 17822 2 0011264962 00000 n 0011265255 00000 n 17825 2 0011265432 00000 n 0011265725 00000 n 17831 2 0011265902 00000 n 0011266195 00000 n 17841 2 0011266372 00000 n 0011266665 00000 n 17885 2 0011266842 00000 n 0011267135 00000 n 17895 2 0011267312 00000 n 0011267605 00000 n 17901 2 0011267782 00000 n 0011268075 00000 n 17911 2 0011268252 00000 n 0011268545 00000 n 17919 2 0011268722 00000 n 0011269015 00000 n 17927 4 0011269192 00000 n 0011269485 00000 n 0011269662 00000 n 0011269955 00000 n 17938 2 0011270132 00000 n 0011270425 00000 n 17946 2 0011270602 00000 n 0011270895 00000 n 17963 2 0011271072 00000 n 0011271365 00000 n 17969 2 0011271542 00000 n 0011271835 00000 n 17976 2 0011272012 00000 n 0011272305 00000 n 17985 4 0011272482 00000 n 0011272775 00000 n 0011272952 00000 n 0011273245 00000 n 17994 2 0011273422 00000 n 0011273715 00000 n 18007 2 0011273892 00000 n 0011274185 00000 n 18013 2 0011274362 00000 n 0011274655 00000 n 18019 2 0011274832 00000 n 0011275125 00000 n 18026 2 0011275302 00000 n 0011275595 00000 n 18035 2 0011275772 00000 n 0011276065 00000 n 18042 2 0011276242 00000 n 0011276535 00000 n 18058 2 0011276712 00000 n 0011277005 00000 n 18064 2 0011277182 00000 n 0011277475 00000 n 18134 2 0011277652 00000 n 0011277945 00000 n 18146 2 0011278122 00000 n 0011278415 00000 n 18153 2 0011278592 00000 n 0011278885 00000 n 18163 2 0011279062 00000 n 0011279355 00000 n 18178 2 0011279532 00000 n 0011279709 00000 n 18188 2 0011279966 00000 n 0011280259 00000 n 18198 2 0011280436 00000 n 0011280729 00000 n 18207 2 0011280906 00000 n 0011281199 00000 n 18215 2 0011281376 00000 n 0011281669 00000 n 18221 2 0011281846 00000 n 0011282139 00000 n 18227 2 0011282316 00000 n 0011282609 00000 n 18275 2 0011282786 00000 n 0011283079 00000 n 18283 2 0011283256 00000 n 0011283549 00000 n 18291 2 0011283814 00000 n 0011284107 00000 n 18308 2 0011284284 00000 n 0011284577 00000 n 18314 2 0011284754 00000 n 0011285047 00000 n 18321 2 0011285224 00000 n 0011285517 00000 n 18328 2 0011285694 00000 n 0011285987 00000 n 18381 4 0011286164 00000 n 0011286457 00000 n 0011286634 00000 n 0011286927 00000 n 18390 2 0011287104 00000 n 0011287397 00000 n 18396 2 0011287574 00000 n 0011287867 00000 n 18403 2 0011288044 00000 n 0011288337 00000 n 18412 2 0011288514 00000 n 0011288807 00000 n 18418 2 0011288984 00000 n 0011289277 00000 n 18437 2 0011289454 00000 n 0011289747 00000 n 18450 2 0011289924 00000 n 0011290217 00000 n 18457 2 0011290394 00000 n 0011290687 00000 n 18465 2 0011290864 00000 n 0011291157 00000 n 18473 2 0011291334 00000 n 0011291627 00000 n 18479 2 0011291804 00000 n 0011292097 00000 n 18499 2 0011292274 00000 n 0011292567 00000 n 18517 1 0011292744 00000 n 18519 1 0011293037 00000 n 18542 2 0011293214 00000 n 0011293507 00000 n 18552 2 0011293684 00000 n 0011293977 00000 n 18558 2 0011294154 00000 n 0011294447 00000 n 18568 2 0011294624 00000 n 0011294917 00000 n 18584 2 0011295094 00000 n 0011295387 00000 n 18592 2 0011295564 00000 n 0011295857 00000 n 18602 2 0011296034 00000 n 0011296327 00000 n 18612 2 0011296504 00000 n 0011296797 00000 n 18619 2 0011296974 00000 n 0011297267 00000 n 18625 2 0011297444 00000 n 0011297737 00000 n 18632 2 0011297914 00000 n 0011298207 00000 n 18640 2 0011298384 00000 n 0011298677 00000 n 18653 2 0011298854 00000 n 0011299147 00000 n 18663 2 0011299324 00000 n 0011299617 00000 n 18669 2 0011299794 00000 n 0011300087 00000 n 18676 2 0011300264 00000 n 0011300557 00000 n 18691 2 0011300734 00000 n 0011301027 00000 n 18699 2 0011301204 00000 n 0011301497 00000 n 18709 2 0011301674 00000 n 0011301967 00000 n 18715 2 0011302144 00000 n 0011302437 00000 n 18722 2 0011302614 00000 n 0011302907 00000 n 18732 2 0011303084 00000 n 0011303377 00000 n 18738 2 0011303554 00000 n 0011303847 00000 n 18746 2 0011304024 00000 n 0011304317 00000 n 18758 1 0011304494 00000 n 18761 1 0011304671 00000 n 18780 2 0011304964 00000 n 0011305257 00000 n 18789 2 0011305434 00000 n 0011305727 00000 n 18807 2 0011305904 00000 n 0011306197 00000 n 18815 2 0011306374 00000 n 0011306667 00000 n 18822 2 0011306844 00000 n 0011307137 00000 n 18829 2 0011307314 00000 n 0011307607 00000 n 18837 2 0011307784 00000 n 0011308077 00000 n 18848 2 0011308254 00000 n 0011308547 00000 n 18855 2 0011308724 00000 n 0011309017 00000 n 18866 2 0011309194 00000 n 0011309487 00000 n 18879 2 0011309664 00000 n 0011309957 00000 n 18887 2 0011310134 00000 n 0011310427 00000 n 18893 2 0011310604 00000 n 0011310897 00000 n 18905 2 0011311074 00000 n 0011311367 00000 n 18912 2 0011311544 00000 n 0011311837 00000 n 18918 2 0011312014 00000 n 0011312307 00000 n 18931 1 0011312484 00000 n 18933 1 0011312777 00000 n 18948 2 0011312954 00000 n 0011313247 00000 n 18964 2 0011313424 00000 n 0011313717 00000 n 18974 2 0011313894 00000 n 0011314187 00000 n 18981 2 0011314364 00000 n 0011314657 00000 n 18995 2 0011314834 00000 n 0011315127 00000 n 19024 2 0011315304 00000 n 0011315597 00000 n 19035 2 0011315774 00000 n 0011316067 00000 n 19042 2 0011316244 00000 n 0011316537 00000 n 19051 2 0011316714 00000 n 0011317007 00000 n 19059 2 0011317184 00000 n 0011317477 00000 n 19066 2 0011317654 00000 n 0011317947 00000 n 19075 4 0011318124 00000 n 0011318417 00000 n 0011318594 00000 n 0011318887 00000 n 19084 2 0011319064 00000 n 0011319357 00000 n 19092 2 0011319534 00000 n 0011319827 00000 n 19103 2 0011320004 00000 n 0011320297 00000 n 19111 2 0011320474 00000 n 0011320767 00000 n 19631 2 0011320944 00000 n 0011321237 00000 n 19638 2 0011321414 00000 n 0011321707 00000 n 19647 2 0011321884 00000 n 0011322177 00000 n 19659 2 0011322354 00000 n 0011322647 00000 n 19665 2 0011322824 00000 n 0011323117 00000 n 19673 2 0011323294 00000 n 0011323587 00000 n 19679 2 0011323764 00000 n 0011324057 00000 n 20083 2 0011324234 00000 n 0011324527 00000 n 20096 2 0011324704 00000 n 0011324997 00000 n 20106 2 0011325174 00000 n 0011325467 00000 n 20112 2 0011325644 00000 n 0011325937 00000 n 20122 2 0011326114 00000 n 0011326407 00000 n 20132 2 0011326584 00000 n 0011326877 00000 n 20531 2 0011327054 00000 n 0011327347 00000 n 20550 2 0011327524 00000 n 0011327817 00000 n 20990 2 0011327994 00000 n 0011328287 00000 n 21001 2 0011328464 00000 n 0011328757 00000 n 21014 2 0011328934 00000 n 0011329227 00000 n 21021 2 0011329404 00000 n 0011329697 00000 n 21328 2 0011329874 00000 n 0011330167 00000 n 21335 4 0011330344 00000 n 0011330637 00000 n 0011330814 00000 n 0011331107 00000 n 21359 2 0011331284 00000 n 0011331577 00000 n 21368 1 0011331754 00000 n 21372 1 0011332047 00000 n 21391 2 0011332224 00000 n 0011332517 00000 n 21399 2 0011332694 00000 n 0011332987 00000 n 21417 2 0011333164 00000 n 0011333457 00000 n 21424 2 0011333634 00000 n 0011333927 00000 n 21432 2 0011334104 00000 n 0011334397 00000 n 21435 2 0011334574 00000 n 0011334867 00000 n 21964 2 0011335044 00000 n 0011335337 00000 n 21978 2 0011335514 00000 n 0011335807 00000 n 21986 2 0011335984 00000 n 0011336277 00000 n 21995 4 0011336454 00000 n 0011336747 00000 n 0011337012 00000 n 0011337305 00000 n 22011 2 0011337482 00000 n 0011337775 00000 n 22021 2 0011337952 00000 n 0011338245 00000 n 22033 2 0011338422 00000 n 0011338715 00000 n 22039 2 0011338892 00000 n 0011339185 00000 n 22058 2 0011339362 00000 n 0011339655 00000 n 22578 2 0011339832 00000 n 0011340125 00000 n 22585 2 0011340390 00000 n 0011340683 00000 n 22595 2 0011340860 00000 n 0011341153 00000 n 22604 2 0011341330 00000 n 0011341623 00000 n 22612 4 0011341800 00000 n 0011342093 00000 n 0011342358 00000 n 0011342651 00000 n 22621 2 0011342828 00000 n 0011343121 00000 n 22632 2 0011343298 00000 n 0011343591 00000 n 22643 2 0011343768 00000 n 0011344061 00000 n 22651 2 0011344238 00000 n 0011344531 00000 n 23350 2 0011344708 00000 n 0011345001 00000 n 23363 2 0011345266 00000 n 0011345559 00000 n 23370 2 0011345736 00000 n 0011346029 00000 n 23381 2 0011346206 00000 n 0011346499 00000 n 23387 2 0011346676 00000 n 0011346969 00000 n 23398 2 0011347146 00000 n 0011347439 00000 n 23404 2 0011347616 00000 n 0011347909 00000 n 23411 2 0011348086 00000 n 0011348379 00000 n 23420 3 0011348556 00000 n 0011348733 00000 n 0011348886 00000 n 23434 2 0011349179 00000 n 0011349472 00000 n 24220 2 0011349649 00000 n 0011349942 00000 n 24240 2 0011350119 00000 n 0011350412 00000 n 24246 2 0011350589 00000 n 0011350882 00000 n 24256 2 0011351059 00000 n 0011351352 00000 n 24268 2 0011351529 00000 n 0011351822 00000 n 24278 2 0011351999 00000 n 0011352292 00000 n 24284 2 0011352469 00000 n 0011352762 00000 n 24291 2 0011352939 00000 n 0011353232 00000 n 24302 2 0011353409 00000 n 0011353702 00000 n 24889 2 0011353879 00000 n 0011354172 00000 n 24899 2 0011354349 00000 n 0011354642 00000 n 24917 2 0011354819 00000 n 0011355112 00000 n 24930 4 0011355289 00000 n 0011355466 00000 n 0011355759 00000 n 0011356070 00000 n 24958 2 0011356376 00000 n 0011356669 00000 n 24964 2 0011356846 00000 n 0011357139 00000 n 24974 2 0011357316 00000 n 0011357609 00000 n 24985 2 0011357786 00000 n 0011358079 00000 n 24998 2 0011358256 00000 n 0011358549 00000 n 25780 2 0011358726 00000 n 0011359019 00000 n 25791 2 0011359196 00000 n 0011359489 00000 n 25805 2 0011359666 00000 n 0011359959 00000 n 25812 2 0011360224 00000 n 0011360401 00000 n 25818 2 0011360665 00000 n 0011360958 00000 n 25833 2 0011361135 00000 n 0011361428 00000 n 25843 2 0011361605 00000 n 0011361898 00000 n 25853 2 0011362075 00000 n 0011362368 00000 n 25859 2 0011362545 00000 n 0011362838 00000 n 25881 2 0011363015 00000 n 0011363308 00000 n 25888 2 0011363485 00000 n 0011363778 00000 n 25895 2 0011363955 00000 n 0011364248 00000 n 25913 2 0011364425 00000 n 0011364718 00000 n 25925 2 0011364895 00000 n 0011365188 00000 n 25934 2 0011365365 00000 n 0011365658 00000 n 25942 2 0011365835 00000 n 0011366128 00000 n 25948 2 0011366305 00000 n 0011366598 00000 n 26455 2 0011366775 00000 n 0011367068 00000 n 26479 2 0011367245 00000 n 0011367538 00000 n 26491 2 0011367715 00000 n 0011368008 00000 n 26498 2 0011368185 00000 n 0011368478 00000 n 26505 2 0011368655 00000 n 0011368948 00000 n 26921 2 0011369125 00000 n 0011369418 00000 n 26941 2 0011369595 00000 n 0011369888 00000 n 26951 2 0011370065 00000 n 0011370358 00000 n 26960 2 0011370535 00000 n 0011370828 00000 n 26970 2 0011371005 00000 n 0011371298 00000 n 26979 2 0011371475 00000 n 0011371768 00000 n 26988 2 0011371945 00000 n 0011372238 00000 n 27542 2 0011372415 00000 n 0011372708 00000 n 27552 2 0011372885 00000 n 0011373178 00000 n 27574 2 0011373355 00000 n 0011373648 00000 n 27582 2 0011373825 00000 n 0011374118 00000 n 27590 2 0011374295 00000 n 0011374588 00000 n 27603 2 0011374765 00000 n 0011375058 00000 n 27619 2 0011375235 00000 n 0011375528 00000 n 27629 2 0011375705 00000 n 0011375998 00000 n 28337 2 0011376175 00000 n 0011376468 00000 n 28359 2 0011376645 00000 n 0011376938 00000 n 28372 2 0011377115 00000 n 0011377408 00000 n 28378 2 0011377673 00000 n 0011377966 00000 n 28382 2 0011378143 00000 n 0011378436 00000 n 28388 2 0011378613 00000 n 0011378906 00000 n 28394 2 0011379083 00000 n 0011379376 00000 n 28404 2 0011379553 00000 n 0011379846 00000 n 28416 2 0011380023 00000 n 0011380316 00000 n 28430 2 0011380493 00000 n 0011380786 00000 n 28438 2 0011380963 00000 n 0011381256 00000 n 28445 2 0011381433 00000 n 0011381726 00000 n 28460 2 0011381903 00000 n 0011382196 00000 n 28468 2 0011382373 00000 n 0011382666 00000 n 28471 2 0011382843 00000 n 0011383136 00000 n 28479 2 0011383313 00000 n 0011383606 00000 n 28491 2 0011383783 00000 n 0011384076 00000 n 28499 2 0011384253 00000 n 0011384546 00000 n 28527 2 0011384723 00000 n 0011385016 00000 n 28536 2 0011385193 00000 n 0011385486 00000 n 28548 2 0011385663 00000 n 0011385956 00000 n 28554 2 0011386133 00000 n 0011386426 00000 n 29047 2 0011386603 00000 n 0011386896 00000 n 29064 2 0011387073 00000 n 0011387366 00000 n 29089 2 0011387543 00000 n 0011387836 00000 n 29100 2 0011388013 00000 n 0011388306 00000 n 29107 2 0011388483 00000 n 0011388776 00000 n 29113 2 0011388953 00000 n 0011389246 00000 n 29122 2 0011389423 00000 n 0011389716 00000 n 29132 2 0011389893 00000 n 0011390186 00000 n 29144 2 0011390363 00000 n 0011390656 00000 n 29158 2 0011390833 00000 n 0011391126 00000 n 29170 2 0011391303 00000 n 0011391596 00000 n 29176 2 0011391773 00000 n 0011392066 00000 n 29183 2 0011392243 00000 n 0011392536 00000 n 29197 2 0011392713 00000 n 0011393006 00000 n 29213 2 0011393183 00000 n 0011393476 00000 n 29220 2 0011393653 00000 n 0011393946 00000 n 29232 2 0011394123 00000 n 0011394416 00000 n 29251 2 0011394593 00000 n 0011394886 00000 n 29267 2 0011395063 00000 n 0011395356 00000 n 29278 2 0011395533 00000 n 0011395826 00000 n 29291 2 0011396003 00000 n 0011396296 00000 n 29298 2 0011396473 00000 n 0011396766 00000 n 29305 2 0011396943 00000 n 0011397236 00000 n 29313 2 0011397413 00000 n 0011397706 00000 n 29337 2 0011397883 00000 n 0011398176 00000 n 30051 2 0011398353 00000 n 0011398646 00000 n 30060 2 0011398823 00000 n 0011399116 00000 n 30073 2 0011399293 00000 n 0011399586 00000 n 30076 2 0011399763 00000 n 0011400056 00000 n 30088 2 0011400233 00000 n 0011400526 00000 n 30096 2 0011400703 00000 n 0011400996 00000 n 30105 2 0011401173 00000 n 0011401466 00000 n 30120 2 0011401643 00000 n 0011401936 00000 n 30134 2 0011402113 00000 n 0011402406 00000 n 30147 2 0011402583 00000 n 0011402876 00000 n 30163 2 0011403053 00000 n 0011403346 00000 n 30180 2 0011403523 00000 n 0011403816 00000 n 30190 2 0011403993 00000 n 0011404286 00000 n 30196 2 0011404463 00000 n 0011404756 00000 n 30202 2 0011404933 00000 n 0011405226 00000 n 30209 6 0011405403 00000 n 0011405696 00000 n 0011405873 00000 n 0011406166 00000 n 0011406343 00000 n 0011406636 00000 n 30236 2 0011406813 00000 n 0011407106 00000 n 30248 2 0011407283 00000 n 0011407576 00000 n 30257 2 0011407753 00000 n 0011408046 00000 n 30272 2 0011408223 00000 n 0011408516 00000 n 30282 2 0011408693 00000 n 0011408986 00000 n 30296 2 0011409163 00000 n 0011409456 00000 n 30984 2 0011409633 00000 n 0011409926 00000 n 30994 2 0011410103 00000 n 0011410396 00000 n 31008 2 0011410573 00000 n 0011410866 00000 n 31018 2 0011411043 00000 n 0011411336 00000 n 31024 2 0011411513 00000 n 0011411806 00000 n 31036 2 0011411983 00000 n 0011412276 00000 n 31045 2 0011412453 00000 n 0011412746 00000 n 31054 2 0011412923 00000 n 0011413216 00000 n 31073 2 0011413393 00000 n 0011413686 00000 n 31083 2 0011413863 00000 n 0011414156 00000 n 31093 2 0011414333 00000 n 0011414626 00000 n 31103 2 0011414803 00000 n 0011415096 00000 n 31114 2 0011415273 00000 n 0011415566 00000 n 31770 2 0011415743 00000 n 0011416036 00000 n 31782 2 0011416213 00000 n 0011416506 00000 n 31789 2 0011416683 00000 n 0011416976 00000 n 31806 2 0011417153 00000 n 0011417446 00000 n 31814 2 0011417623 00000 n 0011417916 00000 n 31820 2 0011418093 00000 n 0011418386 00000 n 31831 2 0011418563 00000 n 0011418856 00000 n 31839 2 0011419033 00000 n 0011419326 00000 n 31847 2 0011419503 00000 n 0011419796 00000 n 31859 2 0011419973 00000 n 0011420266 00000 n 32504 2 0011420443 00000 n 0011420736 00000 n 32514 2 0011420913 00000 n 0011421206 00000 n 32522 2 0011421383 00000 n 0011421676 00000 n 32533 2 0011421853 00000 n 0011422146 00000 n 32541 2 0011422323 00000 n 0011422616 00000 n 32549 2 0011422793 00000 n 0011423086 00000 n 32555 2 0011423263 00000 n 0011423556 00000 n 32563 2 0011423733 00000 n 0011424026 00000 n 32570 2 0011424203 00000 n 0011424496 00000 n 32580 2 0011424673 00000 n 0011424966 00000 n 32586 2 0011425143 00000 n 0011425436 00000 n 33032 2 0011425613 00000 n 0011425906 00000 n 33045 2 0011426083 00000 n 0011426376 00000 n 33055 2 0011426553 00000 n 0011426846 00000 n 33070 2 0011427023 00000 n 0011427316 00000 n 33078 2 0011427493 00000 n 0011427786 00000 n 33085 2 0011427963 00000 n 0011428256 00000 n 33094 2 0011428433 00000 n 0011428726 00000 n 33106 2 0011428903 00000 n 0011429196 00000 n 33589 2 0011429373 00000 n 0011429666 00000 n 33597 2 0011429843 00000 n 0011430136 00000 n 33613 2 0011430313 00000 n 0011430606 00000 n 33619 2 0011430783 00000 n 0011431076 00000 n 33634 2 0011431253 00000 n 0011431546 00000 n 33645 2 0011431723 00000 n 0011432016 00000 n 33655 2 0011432193 00000 n 0011432486 00000 n 33661 2 0011432663 00000 n 0011432956 00000 n 34178 2 0011433133 00000 n 0011433426 00000 n 34185 2 0011433603 00000 n 0011433896 00000 n 34193 2 0011434073 00000 n 0011434366 00000 n 34207 2 0011434543 00000 n 0011434836 00000 n 34215 2 0011435013 00000 n 0011435306 00000 n 34235 2 0011435483 00000 n 0011435776 00000 n 34246 2 0011435953 00000 n 0011436246 00000 n 34256 2 0011436423 00000 n 0011436716 00000 n 34264 2 0011436893 00000 n 0011437186 00000 n 34274 2 0011437363 00000 n 0011437656 00000 n 35033 2 0011437833 00000 n 0011438126 00000 n 35044 2 0011438303 00000 n 0011438596 00000 n 35055 2 0011438773 00000 n 0011439066 00000 n 35065 2 0011439243 00000 n 0011439536 00000 n 35075 2 0011439713 00000 n 0011440006 00000 n 35085 2 0011440183 00000 n 0011440476 00000 n 35093 2 0011440653 00000 n 0011440946 00000 n 35838 2 0011441123 00000 n 0011441416 00000 n 35850 2 0011441593 00000 n 0011441886 00000 n 35863 2 0011442063 00000 n 0011442356 00000 n 35888 2 0011442533 00000 n 0011442826 00000 n 35895 2 0011443003 00000 n 0011443296 00000 n 35903 2 0011443473 00000 n 0011443766 00000 n 35910 2 0011443943 00000 n 0011444236 00000 n 35917 2 0011444413 00000 n 0011444706 00000 n 35923 2 0011444883 00000 n 0011445176 00000 n 36676 2 0011445353 00000 n 0011445646 00000 n 36705 2 0011445823 00000 n 0011446116 00000 n 36715 2 0011446293 00000 n 0011446586 00000 n 36725 2 0011446763 00000 n 0011447056 00000 n 36736 2 0011447233 00000 n 0011447526 00000 n 36744 2 0011447703 00000 n 0011447996 00000 n 36755 2 0011448173 00000 n 0011448466 00000 n 36769 2 0011448643 00000 n 0011448936 00000 n 36781 2 0011449113 00000 n 0011449406 00000 n 36798 2 0011449583 00000 n 0011449876 00000 n 36806 2 0011450053 00000 n 0011450346 00000 n 36815 2 0011450523 00000 n 0011450816 00000 n 36821 2 0011450993 00000 n 0011451286 00000 n 36830 2 0011451463 00000 n 0011451756 00000 n 36836 2 0011451933 00000 n 0011452226 00000 n 37436 2 0011452403 00000 n 0011452696 00000 n 37445 2 0011452873 00000 n 0011453166 00000 n 37464 2 0011453431 00000 n 0011453724 00000 n 37483 2 0011453901 00000 n 0011454194 00000 n 37490 2 0011454371 00000 n 0011454664 00000 n 37512 2 0011454841 00000 n 0011455134 00000 n 37528 2 0011455311 00000 n 0011455604 00000 n 37537 2 0011455781 00000 n 0011456074 00000 n 37547 2 0011456251 00000 n 0011456544 00000 n 37554 2 0011456721 00000 n 0011457014 00000 n 37566 2 0011457279 00000 n 0011457572 00000 n 37589 2 0011457749 00000 n 0011458042 00000 n 37595 2 0011458219 00000 n 0011458512 00000 n 37601 2 0011458689 00000 n 0011458982 00000 n 37624 2 0011459159 00000 n 0011459452 00000 n 37627 2 0011459629 00000 n 0011459922 00000 n 37632 2 0011460099 00000 n 0011460392 00000 n 37675 2 0011460569 00000 n 0011460862 00000 n 37688 2 0011461039 00000 n 0011461332 00000 n 37701 2 0011461509 00000 n 0011461802 00000 n 37711 2 0011461979 00000 n 0011462272 00000 n 37730 2 0011462449 00000 n 0011462742 00000 n 37756 4 0011462919 00000 n 0011463212 00000 n 0011463389 00000 n 0011463682 00000 n 37781 2 0011463859 00000 n 0011464152 00000 n 37788 2 0011464329 00000 n 0011464622 00000 n 37804 2 0011464799 00000 n 0011465092 00000 n 37810 2 0011465269 00000 n 0011465562 00000 n 37822 2 0011465739 00000 n 0011466032 00000 n 37831 2 0011466209 00000 n 0011466502 00000 n 37834 2 0011466679 00000 n 0011466972 00000 n 37843 2 0011467149 00000 n 0011467442 00000 n 37860 2 0011467619 00000 n 0011467912 00000 n 37869 2 0011468089 00000 n 0011468382 00000 n 37889 2 0011468559 00000 n 0011468852 00000 n 37900 2 0011469029 00000 n 0011469322 00000 n 37912 2 0011469499 00000 n 0011469792 00000 n 37921 2 0011469969 00000 n 0011470262 00000 n 37930 2 0011470439 00000 n 0011470732 00000 n 37944 2 0011470909 00000 n 0011471202 00000 n 37953 2 0011471379 00000 n 0011471672 00000 n 37960 2 0011471849 00000 n 0011472142 00000 n 37967 2 0011472319 00000 n 0011472612 00000 n 37972 4 0011472789 00000 n 0011473082 00000 n 0011473259 00000 n 0011473552 00000 n 37985 2 0011473729 00000 n 0011474022 00000 n 37996 2 0011474199 00000 n 0011474492 00000 n 38006 2 0011474669 00000 n 0011474962 00000 n 38012 2 0011475227 00000 n 0011475520 00000 n 38021 2 0011475697 00000 n 0011475990 00000 n 38028 2 0011476167 00000 n 0011476460 00000 n 38037 2 0011476637 00000 n 0011476930 00000 n 38046 2 0011477107 00000 n 0011477400 00000 n 38077 2 0011477577 00000 n 0011477870 00000 n 38083 2 0011478047 00000 n 0011478340 00000 n 38102 2 0011478517 00000 n 0011478810 00000 n 38108 2 0011479075 00000 n 0011479368 00000 n 38118 2 0011479545 00000 n 0011479838 00000 n 38129 2 0011480015 00000 n 0011480308 00000 n 38144 2 0011480485 00000 n 0011480778 00000 n 38168 2 0011480955 00000 n 0011481248 00000 n 38190 2 0011481425 00000 n 0011481718 00000 n 38219 2 0011481895 00000 n 0011482188 00000 n 38241 2 0011482365 00000 n 0011482658 00000 n 38252 2 0011482835 00000 n 0011483128 00000 n 38259 2 0011483305 00000 n 0011483598 00000 n 38267 2 0011483775 00000 n 0011484068 00000 n 38295 2 0011484245 00000 n 0011484538 00000 n 38305 2 0011484715 00000 n 0011485008 00000 n 38315 2 0011485185 00000 n 0011485478 00000 n 38329 2 0011485655 00000 n 0011485948 00000 n 38336 2 0011486125 00000 n 0011486418 00000 n 38358 2 0011486595 00000 n 0011486888 00000 n 38364 2 0011487065 00000 n 0011487358 00000 n 38370 2 0011487535 00000 n 0011487828 00000 n 38373 2 0011488005 00000 n 0011488298 00000 n 38380 2 0011488475 00000 n 0011488768 00000 n 38388 2 0011488945 00000 n 0011489238 00000 n 38404 2 0011489415 00000 n 0011489708 00000 n 38900 2 0011489885 00000 n 0011490178 00000 n 38911 2 0011490355 00000 n 0011490648 00000 n 38918 2 0011490825 00000 n 0011491118 00000 n 38938 2 0011491295 00000 n 0011491588 00000 n 38946 2 0011491765 00000 n 0011492058 00000 n 38964 4 0011492235 00000 n 0011492528 00000 n 0011492705 00000 n 0011492998 00000 n 38978 2 0011493175 00000 n 0011493468 00000 n 38992 2 0011493645 00000 n 0011493938 00000 n 39481 2 0011494115 00000 n 0011494408 00000 n 39496 2 0011494585 00000 n 0011494878 00000 n 39503 2 0011495055 00000 n 0011495348 00000 n 39517 2 0011495525 00000 n 0011495818 00000 n 39539 2 0011495995 00000 n 0011496288 00000 n 39560 2 0011496465 00000 n 0011496758 00000 n 39570 2 0011496935 00000 n 0011497228 00000 n 39574 2 0011497405 00000 n 0011497698 00000 n 40072 2 0011497875 00000 n 0011498168 00000 n 40082 2 0011498345 00000 n 0011498638 00000 n 40103 2 0011498815 00000 n 0011499108 00000 n 40119 2 0011499285 00000 n 0011499578 00000 n 40127 2 0011499755 00000 n 0011500048 00000 n 40139 2 0011500225 00000 n 0011500518 00000 n 40147 2 0011500695 00000 n 0011500988 00000 n 40673 2 0011501165 00000 n 0011501458 00000 n 40692 2 0011501635 00000 n 0011501928 00000 n 40701 2 0011502105 00000 n 0011502398 00000 n 40707 2 0011502575 00000 n 0011502868 00000 n 40718 2 0011503045 00000 n 0011503338 00000 n 40733 2 0011503515 00000 n 0011503808 00000 n 40738 2 0011503985 00000 n 0011504278 00000 n 40750 2 0011504455 00000 n 0011504748 00000 n 41045 2 0011504925 00000 n 0011505218 00000 n 41070 2 0011505395 00000 n 0011505688 00000 n 41081 2 0011505865 00000 n 0011506158 00000 n 41092 2 0011506335 00000 n 0011506628 00000 n 41108 2 0011506805 00000 n 0011507098 00000 n 41114 2 0011507275 00000 n 0011507568 00000 n 41136 2 0011507745 00000 n 0011508038 00000 n 41154 2 0011508215 00000 n 0011508508 00000 n 41176 2 0011508685 00000 n 0011508978 00000 n 41209 2 0011509155 00000 n 0011509448 00000 n 41218 2 0011509625 00000 n 0011509918 00000 n 41224 2 0011510095 00000 n 0011510388 00000 n 41230 2 0011510565 00000 n 0011510858 00000 n 41233 2 0011511035 00000 n 0011511328 00000 n 41247 2 0011511505 00000 n 0011511798 00000 n 41255 2 0011511975 00000 n 0011512268 00000 n 41270 2 0011512445 00000 n 0011512738 00000 n 41296 2 0011512915 00000 n 0011513208 00000 n 41307 2 0011513385 00000 n 0011513678 00000 n 41318 2 0011513855 00000 n 0011514148 00000 n 41326 2 0011514325 00000 n 0011514618 00000 n 41332 2 0011514795 00000 n 0011515088 00000 n 41351 2 0011515265 00000 n 0011515558 00000 n 41376 2 0011515735 00000 n 0011515912 00000 n 41392 2 0011516205 00000 n 0011516498 00000 n 41401 2 0011516675 00000 n 0011516968 00000 n 41445 2 0011517145 00000 n 0011517438 00000 n 41457 2 0011517615 00000 n 0011517908 00000 n 41487 2 0011518085 00000 n 0011518378 00000 n 41500 2 0011518555 00000 n 0011518848 00000 n 41516 2 0011519025 00000 n 0011519318 00000 n 41524 2 0011519495 00000 n 0011519788 00000 n 41537 2 0011519965 00000 n 0011520258 00000 n 41544 2 0011520435 00000 n 0011520728 00000 n 41551 2 0011520905 00000 n 0011521198 00000 n 41584 2 0011521375 00000 n 0011521668 00000 n 41596 2 0011521845 00000 n 0011522138 00000 n 41612 2 0011522315 00000 n 0011522608 00000 n 41627 2 0011522785 00000 n 0011523078 00000 n 41633 2 0011523255 00000 n 0011523548 00000 n 41643 2 0011523725 00000 n 0011524018 00000 n 41671 2 0011524195 00000 n 0011524488 00000 n 41680 2 0011524665 00000 n 0011524958 00000 n 41696 2 0011525135 00000 n 0011525428 00000 n 41705 2 0011525605 00000 n 0011525898 00000 n 41715 2 0011526075 00000 n 0011526368 00000 n 41722 2 0011526545 00000 n 0011526838 00000 n 41730 2 0011527015 00000 n 0011527308 00000 n 41755 2 0011527485 00000 n 0011527778 00000 n 41761 2 0011527955 00000 n 0011528248 00000 n 41767 2 0011528425 00000 n 0011528718 00000 n 41773 2 0011528895 00000 n 0011529188 00000 n 41781 2 0011529365 00000 n 0011529658 00000 n 41801 2 0011529835 00000 n 0011530128 00000 n 41808 2 0011530305 00000 n 0011530598 00000 n 41816 2 0011530775 00000 n 0011531068 00000 n 41830 2 0011531245 00000 n 0011531538 00000 n 41845 2 0011531715 00000 n 0011532008 00000 n 41852 2 0011532185 00000 n 0011532478 00000 n 41873 2 0011532655 00000 n 0011532948 00000 n 41896 2 0011533125 00000 n 0011533418 00000 n 41912 2 0011533595 00000 n 0011533888 00000 n 41918 2 0011534065 00000 n 0011534358 00000 n 41928 2 0011534535 00000 n 0011534828 00000 n 41942 2 0011535005 00000 n 0011535298 00000 n 41967 2 0011535475 00000 n 0011535768 00000 n 41984 2 0011535945 00000 n 0011536238 00000 n 41992 2 0011536415 00000 n 0011536708 00000 n 42012 2 0011536885 00000 n 0011537178 00000 n 42021 2 0011537355 00000 n 0011537648 00000 n 42029 2 0011537825 00000 n 0011538118 00000 n 42036 2 0011538295 00000 n 0011538588 00000 n 42048 2 0011538765 00000 n 0011539058 00000 n 42056 4 0011539235 00000 n 0011539528 00000 n 0011539705 00000 n 0011539998 00000 n 42079 2 0011540175 00000 n 0011540468 00000 n 42089 2 0011540645 00000 n 0011540938 00000 n 42105 2 0011541115 00000 n 0011541408 00000 n 42121 2 0011541585 00000 n 0011541878 00000 n 42137 2 0011542055 00000 n 0011542348 00000 n 42148 2 0011542525 00000 n 0011542818 00000 n 42157 2 0011542995 00000 n 0011543288 00000 n 42169 2 0011543465 00000 n 0011543758 00000 n 42180 2 0011543935 00000 n 0011544228 00000 n 42186 2 0011544405 00000 n 0011544698 00000 n 42205 2 0011544875 00000 n 0011545168 00000 n 42211 2 0011545345 00000 n 0011545638 00000 n 42231 2 0011545815 00000 n 0011546108 00000 n 42247 2 0011546285 00000 n 0011546578 00000 n 42264 2 0011546755 00000 n 0011547048 00000 n 42278 2 0011547225 00000 n 0011547518 00000 n 42286 2 0011547695 00000 n 0011547988 00000 n 42298 2 0011548165 00000 n 0011548458 00000 n 42308 2 0011548635 00000 n 0011548928 00000 n 42317 2 0011549105 00000 n 0011549398 00000 n 42333 2 0011549575 00000 n 0011549868 00000 n 42347 2 0011550045 00000 n 0011550338 00000 n 42356 2 0011550515 00000 n 0011550808 00000 n 42369 2 0011550985 00000 n 0011551278 00000 n 42388 2 0011551455 00000 n 0011551748 00000 n 42413 2 0011551925 00000 n 0011552218 00000 n 42421 2 0011552395 00000 n 0011552688 00000 n 42431 2 0011552865 00000 n 0011553158 00000 n 42438 2 0011553335 00000 n 0011553628 00000 n 42449 2 0011553805 00000 n 0011554098 00000 n 42461 2 0011554275 00000 n 0011554568 00000 n 42474 2 0011554745 00000 n 0011555038 00000 n 42481 2 0011555215 00000 n 0011555508 00000 n 42504 2 0011555685 00000 n 0011555978 00000 n 42510 2 0011556155 00000 n 0011556448 00000 n 42525 2 0011556625 00000 n 0011556918 00000 n 42539 2 0011557095 00000 n 0011557388 00000 n 42557 2 0011557565 00000 n 0011557858 00000 n 42579 2 0011558035 00000 n 0011558328 00000 n 42600 2 0011558505 00000 n 0011558798 00000 n 42617 2 0011558975 00000 n 0011559268 00000 n 42628 2 0011559445 00000 n 0011559738 00000 n 42646 2 0011559915 00000 n 0011560208 00000 n 42657 2 0011560385 00000 n 0011560678 00000 n 42667 2 0011560855 00000 n 0011561148 00000 n 42699 2 0011561325 00000 n 0011561618 00000 n 42708 2 0011561795 00000 n 0011562088 00000 n 42718 2 0011562265 00000 n 0011562558 00000 n 42733 2 0011562735 00000 n 0011563028 00000 n 42755 2 0011563205 00000 n 0011563498 00000 n 42787 2 0011563675 00000 n 0011563968 00000 n 42794 2 0011564145 00000 n 0011564438 00000 n 42804 2 0011564615 00000 n 0011564908 00000 n 42816 2 0011565085 00000 n 0011565378 00000 n 42824 2 0011565555 00000 n 0011565848 00000 n 42832 2 0011566025 00000 n 0011566318 00000 n 42840 2 0011566495 00000 n 0011566788 00000 n 42883 2 0011566965 00000 n 0011567258 00000 n 42892 2 0011567435 00000 n 0011567728 00000 n 42903 2 0011567905 00000 n 0011568198 00000 n 42911 2 0011568375 00000 n 0011568668 00000 n 42941 2 0011568845 00000 n 0011569138 00000 n 42944 2 0011569315 00000 n 0011569608 00000 n 42949 2 0011569785 00000 n 0011570078 00000 n 42957 2 0011570255 00000 n 0011570548 00000 n 42960 2 0011570725 00000 n 0011571018 00000 n 42967 2 0011571195 00000 n 0011571488 00000 n 42977 2 0011571665 00000 n 0011571958 00000 n 43017 2 0011572135 00000 n 0011572428 00000 n 43025 2 0011572605 00000 n 0011572898 00000 n 43037 2 0011573075 00000 n 0011573368 00000 n 43045 2 0011573545 00000 n 0011573838 00000 n 43055 2 0011574015 00000 n 0011574308 00000 n 43066 2 0011574485 00000 n 0011574778 00000 n 43073 2 0011574955 00000 n 0011575248 00000 n 43082 2 0011575425 00000 n 0011575718 00000 n 43102 2 0011575895 00000 n 0011576188 00000 n 43116 2 0011576365 00000 n 0011576658 00000 n 43128 2 0011576835 00000 n 0011577128 00000 n 43138 2 0011577305 00000 n 0011577598 00000 n 43151 2 0011577775 00000 n 0011578068 00000 n 43158 2 0011578245 00000 n 0011578538 00000 n 43195 2 0011578715 00000 n 0011579008 00000 n 43203 2 0011579185 00000 n 0011579478 00000 n 43212 2 0011579655 00000 n 0011579948 00000 n 43218 2 0011580125 00000 n 0011580418 00000 n 43226 2 0011580595 00000 n 0011580888 00000 n 43245 2 0011581065 00000 n 0011581358 00000 n 43253 2 0011581535 00000 n 0011581828 00000 n 43273 2 0011582005 00000 n 0011582298 00000 n 43279 2 0011582475 00000 n 0011582768 00000 n 43291 2 0011582945 00000 n 0011583238 00000 n 43300 2 0011583415 00000 n 0011583708 00000 n 43309 2 0011583885 00000 n 0011584178 00000 n 43317 2 0011584355 00000 n 0011584648 00000 n 43332 2 0011584825 00000 n 0011585118 00000 n 43340 2 0011585295 00000 n 0011585588 00000 n 43358 2 0011585765 00000 n 0011586058 00000 n 43382 2 0011586235 00000 n 0011586528 00000 n 43397 2 0011586705 00000 n 0011586998 00000 n 43407 2 0011587175 00000 n 0011587468 00000 n 43413 2 0011587645 00000 n 0011587938 00000 n 43418 2 0011588115 00000 n 0011588408 00000 n 43427 2 0011588585 00000 n 0011588878 00000 n 43432 2 0011589055 00000 n 0011589348 00000 n 43445 2 0011589525 00000 n 0011589818 00000 n 43473 2 0011589995 00000 n 0011590288 00000 n 43484 2 0011590465 00000 n 0011590758 00000 n 43493 2 0011590935 00000 n 0011591228 00000 n 43500 2 0011591405 00000 n 0011591698 00000 n 43507 2 0011591875 00000 n 0011592168 00000 n 43541 2 0011592345 00000 n 0011592638 00000 n 43559 2 0011592815 00000 n 0011593108 00000 n 43568 2 0011593285 00000 n 0011593578 00000 n 43576 2 0011593755 00000 n 0011594048 00000 n 43597 2 0011594225 00000 n 0011594518 00000 n 43626 2 0011594695 00000 n 0011594988 00000 n 43641 2 0011595165 00000 n 0011595458 00000 n 43650 2 0011595635 00000 n 0011595928 00000 n 43658 2 0011596105 00000 n 0011596398 00000 n 43669 2 0011596575 00000 n 0011596868 00000 n 43676 2 0011597045 00000 n 0011597338 00000 n 43691 2 0011597515 00000 n 0011597808 00000 n 43712 2 0011597985 00000 n 0011598278 00000 n 43728 2 0011598455 00000 n 0011598748 00000 n 43738 2 0011598925 00000 n 0011599218 00000 n 43747 2 0011599395 00000 n 0011599688 00000 n 43761 2 0011599865 00000 n 0011600158 00000 n 43771 2 0011600335 00000 n 0011600628 00000 n 43786 2 0011600805 00000 n 0011601098 00000 n 43796 2 0011601275 00000 n 0011601568 00000 n 43803 2 0011601745 00000 n 0011602038 00000 n 43819 2 0011602215 00000 n 0011602508 00000 n 43828 2 0011602685 00000 n 0011602978 00000 n 43850 2 0011603155 00000 n 0011603448 00000 n 43871 2 0011603625 00000 n 0011603918 00000 n 43896 2 0011604095 00000 n 0011604388 00000 n 43906 2 0011604565 00000 n 0011604858 00000 n 43920 2 0011605035 00000 n 0011605328 00000 n 43927 2 0011605505 00000 n 0011605798 00000 n 43935 2 0011605975 00000 n 0011606268 00000 n 43943 2 0011606445 00000 n 0011606738 00000 n 43955 2 0011606915 00000 n 0011607208 00000 n 43977 2 0011607385 00000 n 0011607678 00000 n 43986 2 0011607855 00000 n 0011608148 00000 n 43992 2 0011608413 00000 n 0011608706 00000 n 43999 2 0011608883 00000 n 0011609176 00000 n 44010 2 0011609353 00000 n 0011609646 00000 n 44023 2 0011609823 00000 n 0011610116 00000 n 44030 2 0011610293 00000 n 0011610586 00000 n 44053 2 0011610763 00000 n 0011611056 00000 n 44065 2 0011611233 00000 n 0011611526 00000 n 44073 2 0011611703 00000 n 0011611996 00000 n 44082 2 0011612173 00000 n 0011612466 00000 n 44101 2 0011612643 00000 n 0011612936 00000 n 44126 2 0011613113 00000 n 0011613406 00000 n 44136 2 0011613583 00000 n 0011613876 00000 n 44145 2 0011614053 00000 n 0011614346 00000 n 44156 2 0011614523 00000 n 0011614816 00000 n 44171 2 0011614993 00000 n 0011615286 00000 n 44194 2 0011615463 00000 n 0011615756 00000 n 44201 2 0011615933 00000 n 0011616226 00000 n 44209 2 0011616403 00000 n 0011616696 00000 n 44218 2 0011616873 00000 n 0011617166 00000 n 44228 2 0011617343 00000 n 0011617636 00000 n 44241 2 0011617813 00000 n 0011618106 00000 n 44268 2 0011618283 00000 n 0011618576 00000 n 44274 2 0011618753 00000 n 0011619046 00000 n 44282 2 0011619223 00000 n 0011619516 00000 n 44295 2 0011619693 00000 n 0011619986 00000 n 44309 2 0011620163 00000 n 0011620456 00000 n 44315 2 0011620633 00000 n 0011620926 00000 n 44321 2 0011621103 00000 n 0011621396 00000 n 44339 2 0011621573 00000 n 0011621866 00000 n 44353 2 0011622043 00000 n 0011622336 00000 n 44366 2 0011622513 00000 n 0011622806 00000 n 44374 2 0011622983 00000 n 0011623276 00000 n 44384 2 0011623453 00000 n 0011623746 00000 n 44395 2 0011623923 00000 n 0011624216 00000 n 44408 2 0011624393 00000 n 0011624686 00000 n 44431 2 0011624863 00000 n 0011625156 00000 n 44441 2 0011625333 00000 n 0011625626 00000 n 44451 2 0011625803 00000 n 0011626096 00000 n 44459 2 0011626273 00000 n 0011626566 00000 n 44467 2 0011626743 00000 n 0011627036 00000 n 44475 2 0011627213 00000 n 0011627506 00000 n 44481 2 0011627683 00000 n 0011627976 00000 n 44492 2 0011628153 00000 n 0011628446 00000 n 44522 2 0011628623 00000 n 0011628916 00000 n 44528 2 0011629093 00000 n 0011629386 00000 n 44539 2 0011629563 00000 n 0011629856 00000 n 44547 2 0011630033 00000 n 0011630326 00000 n 44562 2 0011630503 00000 n 0011630796 00000 n 44578 2 0011630973 00000 n 0011631266 00000 n 44598 2 0011631443 00000 n 0011631736 00000 n 44605 2 0011631913 00000 n 0011632206 00000 n 44611 2 0011632383 00000 n 0011632676 00000 n 44617 2 0011632853 00000 n 0011633146 00000 n 44637 2 0011633323 00000 n 0011633616 00000 n 44644 2 0011633793 00000 n 0011634086 00000 n 44664 2 0011634263 00000 n 0011634556 00000 n 44668 2 0011634733 00000 n 0011635026 00000 n 44686 2 0011635203 00000 n 0011635496 00000 n 44722 2 0011635673 00000 n 0011635966 00000 n 44731 2 0011636143 00000 n 0011636436 00000 n 44740 2 0011636613 00000 n 0011636906 00000 n 44744 2 0011637083 00000 n 0011637376 00000 n 44755 2 0011637553 00000 n 0011637846 00000 n 44764 2 0011638023 00000 n 0011638316 00000 n 44774 2 0011638493 00000 n 0011638786 00000 n 44782 2 0011638963 00000 n 0011639256 00000 n 44802 2 0011639433 00000 n 0011639726 00000 n 44812 2 0011639903 00000 n 0011640196 00000 n 44819 2 0011640373 00000 n 0011640666 00000 n 44826 4 0011640843 00000 n 0011641136 00000 n 0011641313 00000 n 0011641606 00000 n 44839 2 0011641783 00000 n 0011642076 00000 n 44851 2 0011642253 00000 n 0011642546 00000 n 44859 1 0011642723 00000 n 46744 1067 0011647233 00000 n 0011647370 00000 n 0011672159 00000 n 0011672202 00000 n 0011672245 00000 n 0011672347 00000 n 0011678233 00000 n 0011686919 00000 n 0011700931 00000 n 0011704616 00000 n 0011706446 00000 n 0011709815 00000 n 0011714562 00000 n 0011722982 00000 n 0011732520 00000 n 0011740403 00000 n 0011748503 00000 n 0011757530 00000 n 0011765199 00000 n 0011773597 00000 n 0011781878 00000 n 0011790260 00000 n 0011795571 00000 n 0011800545 00000 n 0011809027 00000 n 0011818106 00000 n 0011828020 00000 n 0011836958 00000 n 0011846422 00000 n 0011855772 00000 n 0011865228 00000 n 0011875902 00000 n 0011884893 00000 n 0011891766 00000 n 0011901573 00000 n 0011909982 00000 n 0011920091 00000 n 0011930105 00000 n 0011939899 00000 n 0011954958 00000 n 0011964978 00000 n 0011972436 00000 n 0011980429 00000 n 0011989694 00000 n 0011998709 00000 n 0012007859 00000 n 0012015615 00000 n 0012025529 00000 n 0012032955 00000 n 0012037236 00000 n 0012041990 00000 n 0012046678 00000 n 0012051699 00000 n 0012058221 00000 n 0012065907 00000 n 0012074916 00000 n 0012083812 00000 n 0012092796 00000 n 0012101521 00000 n 0012106224 00000 n 0012114332 00000 n 0012125211 00000 n 0012132662 00000 n 0012139977 00000 n 0012150495 00000 n 0012155191 00000 n 0012161273 00000 n 0012174574 00000 n 0012190968 00000 n 0012198817 00000 n 0012206085 00000 n 0012215157 00000 n 0012223699 00000 n 0012244662 00000 n 0012252731 00000 n 0012262829 00000 n 0012266985 00000 n 0012273188 00000 n 0012281039 00000 n 0012290643 00000 n 0012300607 00000 n 0012310516 00000 n 0012318374 00000 n 0012326284 00000 n 0012333101 00000 n 0012341073 00000 n 0012350634 00000 n 0012360954 00000 n 0012369749 00000 n 0012380528 00000 n 0012391228 00000 n 0012395819 00000 n 0012400798 00000 n 0012406837 00000 n 0012414456 00000 n 0012423634 00000 n 0012431664 00000 n 0012438513 00000 n 0012449032 00000 n 0012457589 00000 n 0012465076 00000 n 0012470928 00000 n 0012475861 00000 n 0012482899 00000 n 0012491234 00000 n 0012500034 00000 n 0012510012 00000 n 0012520381 00000 n 0012529636 00000 n 0012537976 00000 n 0012546473 00000 n 0012556586 00000 n 0012560827 00000 n 0012567523 00000 n 0012577522 00000 n 0012587460 00000 n 0012594707 00000 n 0012601822 00000 n 0012610430 00000 n 0012619476 00000 n 0012626418 00000 n 0012635470 00000 n 0012644122 00000 n 0012652082 00000 n 0012662453 00000 n 0012671904 00000 n 0012681167 00000 n 0012686250 00000 n 0012693507 00000 n 0012702349 00000 n 0012706330 00000 n 0012724027 00000 n 0012733981 00000 n 0012741291 00000 n 0012750768 00000 n 0012765710 00000 n 0012774702 00000 n 0012779014 00000 n 0012787115 00000 n 0012794272 00000 n 0012799753 00000 n 0012805834 00000 n 0012814376 00000 n 0012836585 00000 n 0012840697 00000 n 0012847891 00000 n 0012857333 00000 n 0012864714 00000 n 0012873811 00000 n 0012881665 00000 n 0012889440 00000 n 0012896571 00000 n 0012905478 00000 n 0012912848 00000 n 0012921902 00000 n 0012933294 00000 n 0012936425 00000 n 0012941336 00000 n 0012947952 00000 n 0012955200 00000 n 0012965267 00000 n 0012973674 00000 n 0012981546 00000 n 0012988590 00000 n 0012992401 00000 n 0012998488 00000 n 0013007151 00000 n 0013016107 00000 n 0013022028 00000 n 0013031620 00000 n 0013039435 00000 n 0013046687 00000 n 0013054755 00000 n 0013060776 00000 n 0013073630 00000 n 0013083484 00000 n 0013087575 00000 n 0013096817 00000 n 0013106721 00000 n 0013115969 00000 n 0013125810 00000 n 0013134519 00000 n 0013143459 00000 n 0013153153 00000 n 0013163042 00000 n 0013173135 00000 n 0013182522 00000 n 0013190180 00000 n 0013199392 00000 n 0013210282 00000 n 0013220239 00000 n 0013229975 00000 n 0013239221 00000 n 0013247755 00000 n 0013257387 00000 n 0013267140 00000 n 0013273623 00000 n 0013282835 00000 n 0013292578 00000 n 0013305138 00000 n 0013312783 00000 n 0013324060 00000 n 0013332843 00000 n 0013342660 00000 n 0013351692 00000 n 0013356604 00000 n 0013365475 00000 n 0013370335 00000 n 0013378559 00000 n 0013389255 00000 n 0013398551 00000 n 0013410277 00000 n 0013418371 00000 n 0013427296 00000 n 0013436475 00000 n 0013445137 00000 n 0013453245 00000 n 0013464253 00000 n 0013473960 00000 n 0013477720 00000 n 0013485317 00000 n 0013493172 00000 n 0013500067 00000 n 0013507966 00000 n 0013526608 00000 n 0013535755 00000 n 0013539761 00000 n 0013548088 00000 n 0013555993 00000 n 0013564470 00000 n 0013572843 00000 n 0013581424 00000 n 0013591187 00000 n 0013599670 00000 n 0013605998 00000 n 0013612934 00000 n 0013620949 00000 n 0013629552 00000 n 0013646429 00000 n 0013655270 00000 n 0013663871 00000 n 0013673506 00000 n 0013681998 00000 n 0013687151 00000 n 0013694917 00000 n 0013702985 00000 n 0013706370 00000 n 0013714471 00000 n 0013722443 00000 n 0013731926 00000 n 0013739771 00000 n 0013748914 00000 n 0013756354 00000 n 0013766843 00000 n 0013774693 00000 n 0013782369 00000 n 0013790370 00000 n 0013798145 00000 n 0013807435 00000 n 0013811795 00000 n 0013819824 00000 n 0013828904 00000 n 0013838154 00000 n 0013846615 00000 n 0013856076 00000 n 0013865126 00000 n 0013872640 00000 n 0013881502 00000 n 0013890346 00000 n 0013896123 00000 n 0013904079 00000 n 0013912195 00000 n 0013920480 00000 n 0013930622 00000 n 0013940303 00000 n 0013947499 00000 n 0013955968 00000 n 0013966658 00000 n 0013975217 00000 n 0013984627 00000 n 0013994898 00000 n 0014005003 00000 n 0014012340 00000 n 0014021480 00000 n 0014029063 00000 n 0014038490 00000 n 0014048953 00000 n 0014057747 00000 n 0014066338 00000 n 0014074889 00000 n 0014083276 00000 n 0014091507 00000 n 0014096253 00000 n 0014102267 00000 n 0014112017 00000 n 0014121467 00000 n 0014129251 00000 n 0014137915 00000 n 0014146713 00000 n 0014154650 00000 n 0014165130 00000 n 0014173832 00000 n 0014183851 00000 n 0014192549 00000 n 0014202356 00000 n 0014212022 00000 n 0014221916 00000 n 0014239989 00000 n 0014247935 00000 n 0014256943 00000 n 0014266004 00000 n 0014275409 00000 n 0014284459 00000 n 0014292624 00000 n 0014302708 00000 n 0014310706 00000 n 0014321040 00000 n 0014329387 00000 n 0014337515 00000 n 0014341791 00000 n 0014349989 00000 n 0014360025 00000 n 0014369988 00000 n 0014375708 00000 n 0014386227 00000 n 0014394725 00000 n 0014404162 00000 n 0014411960 00000 n 0014420930 00000 n 0014429372 00000 n 0014437577 00000 n 0014444280 00000 n 0014449248 00000 n 0014456746 00000 n 0014463699 00000 n 0014471592 00000 n 0014479580 00000 n 0014487025 00000 n 0014494827 00000 n 0014504333 00000 n 0014509669 00000 n 0014517219 00000 n 0014517465 00000 n 0014517567 00000 n 0014518230 00000 n 0014518332 00000 n 0014522424 00000 n 0014522526 00000 n 0014528187 00000 n 0014528289 00000 n 0014540027 00000 n 0014547094 00000 n 0014555203 00000 n 0014562928 00000 n 0014570209 00000 n 0014578289 00000 n 0014584209 00000 n 0014592058 00000 n 0014599886 00000 n 0014609498 00000 n 0014617085 00000 n 0014625525 00000 n 0014630840 00000 n 0014634959 00000 n 0014642305 00000 n 0014649743 00000 n 0014657137 00000 n 0014665016 00000 n 0014674280 00000 n 0014681030 00000 n 0014689294 00000 n 0014693923 00000 n 0014715341 00000 n 0014723625 00000 n 0014732826 00000 n 0014742826 00000 n 0014750841 00000 n 0014759604 00000 n 0014766927 00000 n 0014781412 00000 n 0014789525 00000 n 0014796871 00000 n 0014804190 00000 n 0014811924 00000 n 0014823386 00000 n 0014830140 00000 n 0014844431 00000 n 0014849304 00000 n 0014854035 00000 n 0014862987 00000 n 0014870754 00000 n 0014878528 00000 n 0014882927 00000 n 0014888801 00000 n 0014897072 00000 n 0014908969 00000 n 0014919721 00000 n 0014925274 00000 n 0014933534 00000 n 0014942749 00000 n 0014961955 00000 n 0014968091 00000 n 0014978762 00000 n 0014983768 00000 n 0014989367 00000 n 0014995843 00000 n 0015002978 00000 n 0015011533 00000 n 0015020119 00000 n 0015027147 00000 n 0015038907 00000 n 0015045517 00000 n 0015053942 00000 n 0015064285 00000 n 0015075174 00000 n 0015082796 00000 n 0015090352 00000 n 0015100944 00000 n 0015110045 00000 n 0015119404 00000 n 0015128602 00000 n 0015135878 00000 n 0015142376 00000 n 0015150715 00000 n 0015157138 00000 n 0015168548 00000 n 0015177146 00000 n 0015185594 00000 n 0015189049 00000 n 0015198396 00000 n 0015204415 00000 n 0015214169 00000 n 0015237951 00000 n 0015246094 00000 n 0015255492 00000 n 0015260120 00000 n 0015262424 00000 n 0015268591 00000 n 0015276077 00000 n 0015285069 00000 n 0015291770 00000 n 0015298952 00000 n 0015306089 00000 n 0015313674 00000 n 0015321374 00000 n 0015325775 00000 n 0015329610 00000 n 0015333901 00000 n 0015337392 00000 n 0015343757 00000 n 0015351708 00000 n 0015360822 00000 n 0015368666 00000 n 0015376259 00000 n 0015384891 00000 n 0015389225 00000 n 0015398801 00000 n 0015406418 00000 n 0015414208 00000 n 0015423684 00000 n 0015432404 00000 n 0015439202 00000 n 0015446442 00000 n 0015450826 00000 n 0015457835 00000 n 0015464625 00000 n 0015471395 00000 n 0015480496 00000 n 0015485271 00000 n 0015494642 00000 n 0015503509 00000 n 0015511117 00000 n 0015519242 00000 n 0015526198 00000 n 0015529548 00000 n 0015539761 00000 n 0015548344 00000 n 0015554107 00000 n 0015560755 00000 n 0015568318 00000 n 0015577191 00000 n 0015603550 00000 n 0015612756 00000 n 0015623449 00000 n 0015637166 00000 n 0015644192 00000 n 0015652186 00000 n 0015661664 00000 n 0015668694 00000 n 0015693967 00000 n 0015703814 00000 n 0015714020 00000 n 0015729842 00000 n 0015739697 00000 n 0015743110 00000 n 0015746291 00000 n 0015749860 00000 n 0015757036 00000 n 0015764011 00000 n 0015773439 00000 n 0015784291 00000 n 0015792958 00000 n 0015804104 00000 n 0015813382 00000 n 0015820463 00000 n 0015828276 00000 n 0015838182 00000 n 0015844668 00000 n 0015852665 00000 n 0015858189 00000 n 0015867396 00000 n 0015875800 00000 n 0015885298 00000 n 0015893526 00000 n 0015901077 00000 n 0015906840 00000 n 0015915475 00000 n 0015923464 00000 n 0015927608 00000 n 0015932682 00000 n 0015940565 00000 n 0015946454 00000 n 0015952390 00000 n 0015962155 00000 n 0015971435 00000 n 0015979410 00000 n 0015985936 00000 n 0015993252 00000 n 0016015982 00000 n 0016019410 00000 n 0016024264 00000 n 0016031620 00000 n 0016042881 00000 n 0016048029 00000 n 0016056519 00000 n 0016064713 00000 n 0016072951 00000 n 0016081164 00000 n 0016090669 00000 n 0016099843 00000 n 0016108479 00000 n 0016115687 00000 n 0016121258 00000 n 0016130501 00000 n 0016137850 00000 n 0016148339 00000 n 0016151637 00000 n 0016158663 00000 n 0016166630 00000 n 0016174797 00000 n 0016182911 00000 n 0016191111 00000 n 0016199842 00000 n 0016208215 00000 n 0016213651 00000 n 0016223161 00000 n 0016229117 00000 n 0016237692 00000 n 0016248081 00000 n 0016256132 00000 n 0016265875 00000 n 0016276914 00000 n 0016285772 00000 n 0016295757 00000 n 0016303402 00000 n 0016310485 00000 n 0016317569 00000 n 0016326689 00000 n 0016336106 00000 n 0016344504 00000 n 0016352347 00000 n 0016358666 00000 n 0016368482 00000 n 0016377013 00000 n 0016386074 00000 n 0016395722 00000 n 0016403994 00000 n 0016407446 00000 n 0016414972 00000 n 0016422514 00000 n 0016430570 00000 n 0016438104 00000 n 0016446137 00000 n 0016455098 00000 n 0016462344 00000 n 0016470144 00000 n 0016477650 00000 n 0016484169 00000 n 0016489504 00000 n 0016499161 00000 n 0016517282 00000 n 0016528013 00000 n 0016535218 00000 n 0016543261 00000 n 0016551714 00000 n 0016562568 00000 n 0016571526 00000 n 0016579942 00000 n 0016591773 00000 n 0016594002 00000 n 0016602834 00000 n 0016607890 00000 n 0016611900 00000 n 0016617627 00000 n 0016628067 00000 n 0016635486 00000 n 0016643802 00000 n 0016653026 00000 n 0016668822 00000 n 0016695011 00000 n 0016702020 00000 n 0016707097 00000 n 0016710423 00000 n 0016715583 00000 n 0016724106 00000 n 0016729319 00000 n 0016737671 00000 n 0016744853 00000 n 0016749502 00000 n 0016770713 00000 n 0016778829 00000 n 0016787313 00000 n 0016794985 00000 n 0016802235 00000 n 0016810776 00000 n 0016818900 00000 n 0016829288 00000 n 0016833678 00000 n 0016839586 00000 n 0016846703 00000 n 0016860390 00000 n 0016864198 00000 n 0016887156 00000 n 0016895991 00000 n 0016907620 00000 n 0016916102 00000 n 0016924186 00000 n 0016930614 00000 n 0016942075 00000 n 0016945575 00000 n 0016949704 00000 n 0016958046 00000 n 0016964230 00000 n 0016967652 00000 n 0016977050 00000 n 0016981306 00000 n 0016991288 00000 n 0016993496 00000 n 0016999372 00000 n 0017016728 00000 n 0017025871 00000 n 0017032487 00000 n 0017045382 00000 n 0017050734 00000 n 0017059550 00000 n 0017068359 00000 n 0017077834 00000 n 0017088671 00000 n 0017097409 00000 n 0017106184 00000 n 0017114189 00000 n 0017122784 00000 n 0017133909 00000 n 0017146429 00000 n 0017175493 00000 n 0017186023 00000 n 0017195039 00000 n 0017204628 00000 n 0017212157 00000 n 0017227883 00000 n 0017240685 00000 n 0017250295 00000 n 0017259168 00000 n 0017265975 00000 n 0017274650 00000 n 0017292217 00000 n 0017298682 00000 n 0017305351 00000 n 0017314382 00000 n 0017321539 00000 n 0017331167 00000 n 0017338117 00000 n 0017345730 00000 n 0017351688 00000 n 0017361877 00000 n 0017371142 00000 n 0017374211 00000 n 0017377314 00000 n 0017380456 00000 n 0017385444 00000 n 0017394014 00000 n 0017404373 00000 n 0017410853 00000 n 0017418505 00000 n 0017426205 00000 n 0017434393 00000 n 0017442120 00000 n 0017453127 00000 n 0017456727 00000 n 0017466612 00000 n 0017477441 00000 n 0017486355 00000 n 0017498426 00000 n 0017504915 00000 n 0017513443 00000 n 0017522465 00000 n 0017530188 00000 n 0017538829 00000 n 0017545831 00000 n 0017554736 00000 n 0017563297 00000 n 0017571436 00000 n 0017581030 00000 n 0017592506 00000 n 0017600001 00000 n 0017605557 00000 n 0017612738 00000 n 0017619734 00000 n 0017628047 00000 n 0017635137 00000 n 0017642936 00000 n 0017650638 00000 n 0017657952 00000 n 0017665429 00000 n 0017669329 00000 n 0017676157 00000 n 0017684055 00000 n 0017692586 00000 n 0017702120 00000 n 0017711161 00000 n 0017714703 00000 n 0017718155 00000 n 0017723662 00000 n 0017732051 00000 n 0017740958 00000 n 0017752143 00000 n 0017765312 00000 n 0017772808 00000 n 0017784249 00000 n 0017790770 00000 n 0017799383 00000 n 0017803874 00000 n 0017808545 00000 n 0017816087 00000 n 0017819204 00000 n 0017825662 00000 n 0017830765 00000 n 0017834218 00000 n 0017840537 00000 n 0017850758 00000 n 0017860078 00000 n 0017867509 00000 n 0017876724 00000 n 0017884824 00000 n 0017891893 00000 n 0017900548 00000 n 0017907719 00000 n 0017913585 00000 n 0017918873 00000 n 0017928158 00000 n 0017936023 00000 n 0017946737 00000 n 0017956467 00000 n 0017965693 00000 n 0017974702 00000 n 0017983937 00000 n 0017992506 00000 n 0017997903 00000 n 0018004204 00000 n 0018016382 00000 n 0018026961 00000 n 0018035618 00000 n 0018044377 00000 n 0018047296 00000 n 0018057037 00000 n 0018064097 00000 n 0018067551 00000 n 0018073047 00000 n 0018085730 00000 n 0018088752 00000 n 0018095001 00000 n 0018099318 00000 n 0018103809 00000 n 0018110064 00000 n 0018115045 00000 n 0018123648 00000 n 0018130434 00000 n 0018134675 00000 n 0018138835 00000 n 0018147019 00000 n 0018152336 00000 n 0018162810 00000 n 0018170316 00000 n 0018177418 00000 n 0018184343 00000 n 0018191133 00000 n 0018198032 00000 n 0018202268 00000 n 0018210707 00000 n 0018216746 00000 n 0018226412 00000 n 0018257646 00000 n 0018265818 00000 n 0018273525 00000 n 0018278280 00000 n 0018291073 00000 n 0018296339 00000 n 0018304912 00000 n 0018311161 00000 n 0018318656 00000 n 0018330036 00000 n 0018334624 00000 n 0018343768 00000 n 0018349686 00000 n 0018358463 00000 n 0018365201 00000 n 0018373843 00000 n 0018379264 00000 n 0018390688 00000 n 0018397651 00000 n 0018408761 00000 n 0018417125 00000 n 0018420900 00000 n 0018426921 00000 n 0018432321 00000 n 0018441227 00000 n 0018449753 00000 n 0018458491 00000 n 0018466766 00000 n 0018479097 00000 n 0018485132 00000 n 0018493427 00000 n 0018501693 00000 n 0018509782 00000 n 0018517307 00000 n 0018525156 00000 n 0018532080 00000 n 0018541115 00000 n 0018556740 00000 n 0018578815 00000 n 0018585986 00000 n 0018590006 00000 n 0018600779 00000 n 0018612694 00000 n 0018618512 00000 n 0018625044 00000 n 0018634473 00000 n 0018639565 00000 n 0018643925 00000 n 0018652461 00000 n 0018660533 00000 n 0018668393 00000 n 0018676884 00000 n 0018682560 00000 n 0018694633 00000 n 0018702607 00000 n 0018707617 00000 n 0018715558 00000 n 0018719013 00000 n 0018726245 00000 n 0018735429 00000 n 0018743713 00000 n 0018756026 00000 n 0018762945 00000 n 0018771345 00000 n 0018776287 00000 n 0018779538 00000 n 0018783800 00000 n 0018790139 00000 n 0018800474 00000 n 0018806598 00000 n 0018810780 00000 n 0018816332 00000 n 0018822361 00000 n 0018825536 00000 n 0018829652 00000 n 0018833730 00000 n 0018838996 00000 n 0018845433 00000 n 0018852149 00000 n 0018860148 00000 n 0018868199 00000 n 0018878326 00000 n 0018885598 00000 n 0018891338 00000 n 0018899015 00000 n 0018907007 00000 n 0018917933 00000 n 0018927784 00000 n 0018935570 00000 n 0018937967 00000 n 0018948279 00000 n 0018955858 00000 n 0018967842 00000 n 0018973363 00000 n 0018985554 00000 n 0018995247 00000 n 0019001605 00000 n 0019007297 00000 n 0019015161 00000 n 0019024337 00000 n 0019036163 00000 n 0019045082 00000 n 0019053318 00000 n 0019059750 00000 n 0019063917 00000 n 0019074564 00000 n 0019081495 00000 n 0019090811 00000 n 0019101801 00000 n 0019109008 00000 n 0019115444 00000 n 0019136274 00000 n 0019146686 00000 n 0019158247 00000 n 0019161296 00000 n 0019172991 00000 n 0019182187 00000 n 0019194111 00000 n 0019203857 00000 n 0019213027 00000 n 0019220294 00000 n 0019223574 00000 n 0019236028 00000 n 0019246754 00000 n 0019258609 00000 n 0019267245 00000 n 0019272162 00000 n 0019279169 00000 n 0019290427 00000 n 0019300592 00000 n 0019311086 00000 n 0019318326 00000 n 0019324457 00000 n 0019336154 00000 n 0019346048 00000 n 0019349136 00000 n 0019367953 00000 n 0019371997 00000 n 0019384663 00000 n 0019388007 00000 n 0019396455 00000 n 0019414040 00000 n 0019425562 00000 n 0019437374 00000 n 0019445567 00000 n 0019459115 00000 n 0019478000 00000 n 0019486502 00000 n 0019500053 00000 n 0019512751 00000 n 0019520839 00000 n 0019524343 00000 n 0019535599 00000 n 0019543719 00000 n 0019554256 00000 n 0019562124 00000 n 0019573366 00000 n 0019584657 00000 n 0019594907 00000 n 0019618787 00000 n 0019625307 00000 n 0019629937 00000 n 0019641547 00000 n 0019647298 00000 n 0019647556 00000 n 0019647608 00000 n 0019647866 00000 n 0019647918 00000 n 0019655280 00000 n 0019655538 00000 n 0019655590 00000 n 0019661573 00000 n 0019667042 00000 n 0019672721 00000 n 0019678182 00000 n 0019682829 00000 n 0019688450 00000 n 0019694214 00000 n 0019699700 00000 n 0019705887 00000 n 0019711944 00000 n 0019717010 00000 n 0019723884 00000 n 0019729592 00000 n 0019735111 00000 n 0019741735 00000 n 0019747801 00000 n 0019753062 00000 n 0019757821 00000 n 0019762578 00000 n 0019767716 00000 n 0019772782 00000 n 0019777689 00000 n 0019782535 00000 n 0019787438 00000 n 0019792378 00000 n 0019798225 00000 n 0019804068 00000 n 0019810465 00000 n 0019816415 00000 n 0019822298 00000 n 0019828311 00000 n 0019832817 00000 n 0019838050 00000 n 0019842654 00000 n 0019847965 00000 n 0019853414 00000 n 0019859380 00000 n 0019865120 00000 n 0019870857 00000 n 0019876878 00000 n 0019882251 00000 n 0019887845 00000 n 0019893068 00000 n 0019898903 00000 n 0019904229 00000 n 0019904487 00000 n 0019904539 00000 n 0019911640 00000 n 0019919393 00000 n 0019928956 00000 n 0019929214 00000 n 0019929266 00000 n 0019945648 00000 n 0019945906 00000 n 0019945958 00000 n 0019959154 00000 n 0019959412 00000 n 0019959464 00000 n 0019966515 00000 n 0019966773 00000 n 0019966825 00000 n 0019971207 00000 n 0019971465 00000 n 0019971517 00000 n 0019980001 00000 n 0019980259 00000 n 0019980311 00000 n 0019984052 00000 n 0019984310 00000 n 0019984362 00000 n 0019984620 00000 n 0019984672 00000 n 0020102273 00000 n 0020102373 00000 n 0020222709 00000 n 0020222773 00000 n 0020304043 00000 n 0020304143 00000 n 0020319534 00000 n 0020319634 00000 n 0020319892 00000 n 0020319944 00000 n 0020320202 00000 n 0020320254 00000 n 0020334673 00000 n 0020334775 00000 n 0020391537 00000 n 0020391639 00000 n 0020444053 00000 n 0020444155 00000 n 0020497115 00000 n 0020497217 00000 n 0020497327 00000 n 0020497423 00000 n 0020497503 00000 n trailer <<0EEBBF85F5CD354683ADEF1C164DAC84>]/Prev 9705593>> startxref 20498698 %%EOF 44859 0 obj <>stream http://www.codemantra.com The process that creates this PDF constitutes a trade secret of codeMantra, LLC and is protected by the copyright laws of the United States 2013-09-01T19:12:37+08:00 2013-05-09T16:42:06 2013-09-01T19:12:37+08:00 Quite Imposing 1.5d (EN) uuid:69ad153e-9415-42af-89e9-e564eb821cb6 uuid:b16fb4b7-b8e6-4fc0-af71-43ef4720fe30 application/pdf Advanced Programming in the UNIX® Environment W. Richard Stevens Stephen A. Rago 623923 PDFKit.NET 4.0.12.0 623923 1.6 endstream endobj 47811 0 obj <> endobj xref 0 1 0000000000 65535 f 44859 1 0020594012 00000 n 47811 1 0020598603 00000 n trailer <]/Prev 20498698>> startxref 20599083 %%EOF

ܧsososos3}FͼSimMk'n{V[ݲ?l;(a dnx>g1W=999АjpmޞdE PquO_oP2֦e޾O2F6o7*0Sv#Hq-539XqK<\Só7šh|XWrzB>qבnݫ8[:80pnQr `e 8oA?0Ac0Σ,iendstream endobj 21001 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21002 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21003 0 obj <> endobj 21004 0 obj <> endobj 21005 0 obj <> stream H4]HQ]u\Rه_}Gnm[P0::3nVjPÊ >X=dЃT$BoCYQ9s9*؃8 ^olK<ըZ_;{ pvFm/Eh&R *[R/k]&)> c_nbh}9koavs+֗ :Tz, [yɢW-HZfq˻+ݶ`*gVBl߸O%>endstream endobj 21006 0 obj <> endobj 21007 0 obj <> stream H\TkTWaųHӸpЀ|E"*|qF 8%K6D`ԬkĨh\(A b6YW\W ׽9t3~﫺4夢hv3n)f6'߲%)QѲ;w9>x>Gx:'R*>t*ʒk5IΖJAS&(1t0NQ┉qpgJ`"E&Y&).7+۔%]hfXlSxILK)Y"Sj#'$m5$ TɲZ1dfɟҤْamU2u,s`5#EE )/QQ**&T (ަ**NMPh"*:C4@W}Z5YIի^R׫{"9xj*4/&9<`MV[t Ր<jSZxtf|jNW9!y9ea`$558w#p!P툐|SuA7,b< gBr !.E"RI  f;0XaLˣC8"2"`>G#?P(77Er0Nhn *aŕq_APÛ ICՆkX 1?S_YDCB3t nAP.)r_ȳGDn}EOg^j}\Nz8@l 7@0ԡdojh&2h㋈wI^%RpGʡ+ A3HjO'j0]% إSz\HkA@ym_~mǠzq۱f^.`aY̲pdNC@ baL0uildO"W2E{xGj͂=7=.&hbŲ=3E2$I&O(dM8*.AF%T?vQ5;ʿhm>#g iz q W712aHؙ{^njqPW x5B!Qr>Уq^艹Fzg2bH@:3ɰg>A^M~g%Q 7$`.0]y|\5<|$/tBg2P<ݠg>N"r |S,cc߼*`'syQ,wr {Ym/xsayXh%`(}|`x.o͚=ڞamUL/7p$Ts"F n4'pOKt╬ic=I{?eqi/_yh6 ՝tMg3'Mv(\c/՝zPT;UVN 4_&Ʀ5b35ulxdnk|a٥XzCy*#߃d!d=X@@BR۫~&6PU-%L]!u)`?sO+ b7o.ެ{#5~Z?BtW aJimwO{% [/{'G&rID2i0tݠ&7a)ޝۣ}ke-pAi9#LD]fVM >gjjk~pӦͺEǾI/% SULX&;Y}r/})0\NE.mNX?C@9a.nJ+@5O NΕy8sq}WJ䧶(@y endstream endobj 21008 0 obj <> stream q /X1 Do Q q endstream endobj 21009 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 21010 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 21011 0 obj <> stream HWkoܶ_2Ku.nZA Aer6N9vaxEՇN:ZEcd`46qz'j>x#tf.>23,3j}ڜg}G׸;.|(]0I>b''t3e*nR|$s#x !̘)-L04*2ǘc< Oem m<`}A/ }YNַ"Aַ!*dEַ!*dm"TET+6D B Pj}jZ߆(}ZAַPoC>P TET+6@m"j}jZ߶$Z߆oZ߆oCT޷PoC>P$TET+ 6@m"j}j%Z(B Q@PoC>P$TEַ!`Vm"j}.Rj}B Pj}B Q!{(B Q@PoC>P"TEַ!`Vm"Uj}6D*B Q@PoZ߆(}ZEַ!`VmHm 6@m 6D 3ƨ8Ys՚-b#vxpaXg׻(y8ߪk2 q7 1/ꡲ)d[oIN۪i.Kn@CSoʮn_GZHAe#K`I'YT1.7c@K+aOg+.ɊlŸO,_\k3,MŬg8smzFi8ӹ\Zy{$M6MYO}.ymKm7֩GJ~>(fL09'Mu:Y}hnPaKaybX6yT9YB~詔>90ǪfUbfr ]Nayw1V2ΐz-ŋH$m6&˥ `x)f@C~'@KjXm(\¼pp 8XN _t]oՁ4s%b/6jH}8= ^j-=9)ʡc1 t.59xΥaPԺ.!`T·ӥbDkWafc0Yg ΄g8KeK{PW+3NT LanvӸWlm6xW~@hj]xܴIT{m]*C|_-GlGkw۲s͇:`88-*-jb af+-agEΧ^a7nkHjNzaJ}J@O?yT=}[$K*TLjٞw'J~EAgу +0Y fA!>GQ( K p7˲X׉H4J/fwpu31&+x F"0](D d>CQ^>CJ_Mj1y9[.KԸwC8\R9*kY۔C%ì\ѻ/b^HKC{y.Y}=jD.]=B_R'%FIjg3΍;FLYl/zLN.(md2_)Ks4:%hYr vSZ%Nۦ [.G74MU8.XƳ;twoesF0l)hڠ8|abv9J2e@S;ai6lj\rfrͺ]Nw fXs`dV|h0׋_N-ŸSdv}2CXy^Exr]70mpI)o1,ӯǩvPd=:sr@ٺݽAҲ] !~ %O.ư{[V׫g)XzD3gZzā}~{z;("e&H C3Cg_P L\W#)I>$)>1731w2JAgV&9f/`f~Z:YRXS>\Բ .<{zhs#{fR.IZǭ64x[77@xX~Gd/PC}^Вr_-,9"1i~ ?f;xzsXynZm$j!Tnv>GεsZKz`E*s) GNww{ZCsb.<2YiA rBu1 ;7\N 4718ye"U!֙+֘a%okkmg$l|>bªvaKQh?2owjSl(򒰘 X9񴭖sLqaJ ОI - 3/M6*Jˆ@@Tk,+ֿxCݛp$p> = % Qnh`|hD9"I \ݥoL4 ϭ:_5wszJ"ι 9װkf*S"2$ՖZ AߔұGX RQ0@ToWOZ+n?x Ml~Ib= 2Ӧ= j[;iUV1a20J4Kfhs!yܰ6ߍ!=l"No\z , 6 916ЭX\rv_$C$rc%\872W^085;F dN@Je]V?bR 䏝ОIÄPZ*27$\Hq`KmLY0&lu-0u"dd ] (H^|\1STڋrұ5wbZh¨r5yrnR0Rk#YȖs"o)yw^~/R![FMZj[e5-[+*ۙXWf WWBx.9endstream endobj 21012 0 obj <>/P 833 0 R/Type/Annot/A 21013 0 R/Subtype/Link/Rect[93.5997009 603.229004 302.627991 622.908997]/Border[0 0 0]/H/N>> endobj 21013 0 obj <> endobj 21014 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21015 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21016 0 obj <> endobj 21017 0 obj <> stream q /X1 Do Q q endstream endobj 21018 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 21019 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 21020 0 obj <> stream HWko6_ ŗ٢@6Evg Pfd[FizKR!]3\^^:?\q㛟FbP.$DgicEi񸉣?۾O͡O.>57"~7z?AҸK3"ލMś+D2n>m?d˲bkڑoS=>#/<]Jr~~F)0}wѯd"~y|OiRfLh(-{h> 9 H>p8!Ð PKE^E^e^e^e^U^U^u^u^u>#gPsB} y>'P_ B}/ e$i} µ>Pp!+Tc kZC>p \c"\c"k} Ypp!PV1d µ>,µ>,B}ZAǐE\+!k} YzZCVǐ1`1dJµ>,B}ZIǀEǐE\+ k%ZZC>p$\c"k} Xk} Yp!PVCB>,µ>P!+Tc"\c"Uk} Ypp!PV1d*µ>,µ>,B}ZEǐE\kZC>p"\cH1d} Xk} YzCVdeY8F[Y6uPM9p"T-==19XBNq޿r53G,UXƦs9Kv7U &y1Mסi7ۯ{ qHE 7r1K Ntzl0 m"^258V͒z璗33S9pNWufN+6U2TGEEƉ>TWeW`Y$G7֍_ZVoJ.vGCvZZ`\Omz.9zנw1D| p ;JKSZe5ĉu'v ?pn>6<ǺMt(/Mf؝ Nlrg˼Bp*Hr(`aBфZ(-yv8`W97m鼱΃I6T|kӐPܜv.c-+ErE. Ø3鯙,`p1 ə ޮ9F]Y%0/l:.J=70]m( HՃYh(…z~ۯ da\?P.:CiKZX=c`ӝ}(=UσEiiE& Ky$[lH' bY."+!ѳpC۸}?w18idmBZ)C%{  }U"[?zTNG{Rgzݓ\j;zkI>KZz)/JzaVz$%<'o㷻*O&{'Bb="4xEa5ۮm&S^ؗVXڭuy 3QGӱ]aի9 KZv..ov2??lO۲buS9pv٠%X@ [b8CW$)|=!1tAz] ]"|]/k(.Q;[cs/Z Tޡ;JگKDZ補)1.PF@QXW(oðB>ص!.Ǵ>){Υ!q,^*r/PU} TCUrߣ}KTZ{_} }jޅEL}C17s/Q̽@U%o(^b;T\zKs/Pi=sP̽D1 ^] z*A@+VlN0Em1欪*bsIsNesp|LiKD!-umd4B8,!fD*zjK&3=^ebB`fPڿÈWQVYUFUi,Pވnykçw~u\^zzG<.w5O +^WU$ee($z%hcۤ@ ίEޖF֒oFvp&[=ϵP9Qz'AV;v(1kKsUw-F|"xF-C!PEt"$U[@ѡj"zT\z_[D-B"U[@1{oqיb%o(^{KsP̽D1 w(^{澡{bXܣ-3 KsP̽D1U(澡{bPq=s/Q̽@}C17s/PoJ# ;JidbRC' ̍4F0J#3 Q6i,LB:id 7K#!0脑A,!`,UadlBaFyXq`M# #;?a4HEiDXt$?;atqBbzs|>5Et_i2C :ee!h׽@X$We c*rec^c^ec" mNk'm9CL1"[B 7mѫ!ds\mC& ` 9[Hk c {cL PqDΕJeTz|/ NoR69(F:l%m9Ŷƒ֫ac9b2 $#RMRi4EpPI;DSy$nctt*r`&EE(21~ REeq0 92Ygh9y89t/2:.Pr.3EOS QoLWxx6̧< oӡ>2P ibqۤ~z\xyϲB~Lϧ aw^[?K4g6ՆӿHf_31(`j1ٌ*\P;4;DMwbwjavMvȭn#MB ^r#f~} dKp6\8qJ $Z ے prxOPYwKtM&/iYaˀVr5nQBD&*A).[kZo?ߧb-8i:}vͿϏyӌ2]M|94ۇ9PϛĕA8rb"}yS=<۹b,: 'bs=m XEendstream endobj 21021 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21022 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21023 0 obj <> stream q /X1 Do Q q endstream endobj 21024 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 21025 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 21026 0 obj <> stream HWmo7e@Y( $Ns[džs@ֱRJk7_Ւ򒳫R0z8p8pxz56N/J۳ςɒ9\eE91ZmUB% FV8:,CD#MmOmBT<*g<*g6y>S-GT< a#MmBT< a#MmTզ6@!MmTզ6BgjSզ6BgjSG!3rD.Q9(Dͣrͣr PjSG!3 Dͣj(DͣjQLQmjQLQmj(}Z6 Qmj(}Z6y>S@TB"MmOmBT<*g<*g6y>SDT< aV"MmBT< aV"MmT+զ6@!MmT+զ6BgjSզ6BgjSG!3JD.Q9(DͣrͣrtIBߋ.ͬ8advWj D0d[͗mWMu2hQ$pJ#+iG9l*n"珉cZ*2[DRX⒩ h#rGwgyӺtʙ]g"bn'dmtwjIO/'Rbhv3~Gޘpc<4Tkz0N>wqXJ!'[^ܷ7j&uW:+[Rk^vXkたEG習妞dYQ56{ m>U\mWdW[׫?㼟>JFcfU֟bS?ηf=%SS}  k%eWM8 + ܿ"f΃YnҦ;yQ )9yՁiV)u@*B (!0W$[X0QV;j_?g@;a-vCFs6rb,ҪԄM A:3TrsՏ]@ׂrhd]\ލ,,!lAꒉc.ӑ'_1r:CP", %Loq四ѓv6/~~DS(OLE Dv\q>V\/a*1=.Fm`t:iB0T < v^؊x ]7nA:b2 6n'vhnl`:Sk@VLb 9%BsiSDvvvqzJldhy un3\OUw }O!awsී.1%:L Dn4!y磋'M^. ~z{:_ny ;Ͷ, Tnh6y@ϘPh2/@ruk /p"s"$c7>xWB&څ߫ #ɠLEmȔNӗȔIK-uNfZT۽Jh?|s.)ܰ09%eJk˳MU+dNnJ~*3/蟆.tF3JniDn&!]#Эﶽ!ݍ|HsbGjGA~{H}N;Ӫwwh]*wq1CBvfܕ N%G&BP?:t[v&Eˁ51__N\0g"s }3|3 }G9/ڢ?Ufگ/sP_>hF8oB7mM`,&g _8M.bGR]]Cj0^;]{}qC)> U DJ#DJQ$8 \KG_WiVW-P4h` NY4x67,>]DZr`'!;d&q'Щf ӘfHHwч.p&-沋a /CP]02Y T;]&!8ݶ 8/@Qp@⤱̓A[MĒ r|}gIRK5/s3gx4o:A 9?7oޟ~d 6YR!,FrM"8ǎr~n6!s|_5qjG'!y#dChr#PiLB=B)s(d5 Az )/Xv |YbPtVJB*,uh;s|r !5J(O!@jH6[Tk4fHwʻM.qE!w3=='fK"rBf$BNz.6֫elSd;q3C0Q #05H3z,ҦA8j>`-oZCB^#@\;$LC^fP0y1ݮ-ʿ /QዙC9,1Q*׃6GzR7SFp 恭V7CE[ `@dǭ&_ۀpE}Qba^om †t' EQĮ|-|bX$ zo@iݘx{оIa /[AT$%.vݖ&x;Jpܶ°*K6`UEUؔmiT^lg"?o @[`VF0U$ :1m bS(2_f‹Mr%;//E1ˬnXLR^DZRm M̀PqwzpJ#&tgkjDzQpv`؎pFX_66#t@li˅WGEty)+;m'=DA!k %Ossmah%~&ۘdsBk|3 Cۮn_ݭ5O|\ 2ZX $eX4 "W'ãE(.PJB"=ˆ9ߔ)9tuWwìB鑶ÌTB#P-TܸbwnB,X`Z6W3} _X4ztiZh"}-Uky#i($Nmdžbl8|9R '(=U vO?  VM بX/boy'^VpL0- 56qevJ)ջ_էQR,sסku DxyS߸R:;i{@ r .Ti/:}qcf.cHMίߟ't7endstream endobj 21027 0 obj <>/P 12598 0 R/Type/Annot/A 42847 0 R/Subtype/Link/Rect[243 670 255 677]/Border[0 0 0]/H/N>> endobj 21028 0 obj <>/P 12598 0 R/Type/Annot/A 21256 0 R/Subtype/Link/Rect[276 660 288 667]/Border[0 0 0]/H/N>> endobj 21029 0 obj <>/P 12598 0 R/Type/Annot/A 21253 0 R/Subtype/Link/Rect[228 650 240 657]/Border[0 0 0]/H/N>> endobj 21030 0 obj <>/P 12598 0 R/Type/Annot/A 21251 0 R/Subtype/Link/Rect[249 640 262 648]/Border[0 0 0]/H/N>> endobj 21031 0 obj <>/P 12598 0 R/Type/Annot/A 42689 0 R/Subtype/Link/Rect[262 640 270 647]/Border[0 0 0]/H/N>> endobj 21032 0 obj <>/P 12598 0 R/Type/Annot/A 42659 0 R/Subtype/Link/Rect[224 630 236 637]/Border[0 0 0]/H/N>> endobj 21033 0 obj <>/P 12598 0 R/Type/Annot/A 42609 0 R/Subtype/Link/Rect[262 620 274 627]/Border[0 0 0]/H/N>> endobj 21034 0 obj <>/P 12598 0 R/Type/Annot/A 21245 0 R/Subtype/Link/Rect[229 610 241 617]/Border[0 0 0]/H/N>> endobj 21035 0 obj <>/P 12598 0 R/Type/Annot/A 42551 0 R/Subtype/Link/Rect[197 600 209 607]/Border[0 0 0]/H/N>> endobj 21036 0 obj <>/P 12598 0 R/Type/Annot/A 42512 0 R/Subtype/Link/Rect[213 590 227 597]/Border[0 0 0]/H/N>> endobj 21037 0 obj <>/P 12598 0 R/Type/Annot/A 21239 0 R/Subtype/Link/Rect[229 590 241 597]/Border[0 0 0]/H/N>> endobj 21038 0 obj <>/P 12598 0 R/Type/Annot/A 21237 0 R/Subtype/Link/Rect[216 580 233 588]/Border[0 0 0]/H/N>> endobj 21039 0 obj <>/P 12598 0 R/Type/Annot/A 42381 0 R/Subtype/Link/Rect[234 580 247 587]/Border[0 0 0]/H/N>> endobj 21040 0 obj <>/P 12598 0 R/Type/Annot/A 21233 0 R/Subtype/Link/Rect[249 580 263 587]/Border[0 0 0]/H/N>> endobj 21041 0 obj <>/P 12598 0 R/Type/Annot/A 42324 0 R/Subtype/Link/Rect[265 580 279 587]/Border[0 0 0]/H/N>> endobj 21042 0 obj <>/P 12598 0 R/Type/Annot/A 21229 0 R/Subtype/Link/Rect[281 580 293 587]/Border[0 0 0]/H/N>> endobj 21043 0 obj <>/P 12598 0 R/Type/Annot/A 42236 0 R/Subtype/Link/Rect[202 570 214 577]/Border[0 0 0]/H/N>> endobj 21044 0 obj <>/P 12598 0 R/Type/Annot/A 42197 0 R/Subtype/Link/Rect[216 560 228 567]/Border[0 0 0]/H/N>> endobj 21045 0 obj <>/P 12598 0 R/Type/Annot/A 21284 0 R/Subtype/Link/Rect[211 550 228 558]/Border[0 0 0]/H/N>> endobj 21046 0 obj <>/P 12598 0 R/Type/Annot/A 42097 0 R/Subtype/Link/Rect[229 550 243 557]/Border[0 0 0]/H/N>> endobj 21047 0 obj <>/P 12598 0 R/Type/Annot/A 42064 0 R/Subtype/Link/Rect[245 550 261 558]/Border[0 0 0]/H/N>> endobj 21048 0 obj <>/P 12598 0 R/Type/Annot/A 43367 0 R/Subtype/Link/Rect[262 550 274 557]/Border[0 0 0]/H/N>> endobj 21049 0 obj <>/P 12598 0 R/Type/Annot/A 41976 0 R/Subtype/Link/Rect[202 540 214 547]/Border[0 0 0]/H/N>> endobj 21050 0 obj <>/P 12598 0 R/Type/Annot/A 21276 0 R/Subtype/Link/Rect[216 530 228 537]/Border[0 0 0]/H/N>> endobj 21051 0 obj <>/P 12598 0 R/Type/Annot/A 41905 0 R/Subtype/Link/Rect[216 520 230 527]/Border[0 0 0]/H/N>> endobj 21052 0 obj <>/P 12598 0 R/Type/Annot/A 21272 0 R/Subtype/Link/Rect[232 520 246 527]/Border[0 0 0]/H/N>> endobj 21053 0 obj <>/P 12598 0 R/Type/Annot/A 21269 0 R/Subtype/Link/Rect[248 520 262 527]/Border[0 0 0]/H/N>> endobj 21054 0 obj <>/P 12598 0 R/Type/Annot/A 41745 0 R/Subtype/Link/Rect[264 520 276 527]/Border[0 0 0]/H/N>> endobj 21055 0 obj <>/P 12598 0 R/Type/Annot/A 41707 0 R/Subtype/Link/Rect[184 510 196 517]/Border[0 0 0]/H/N>> endobj 21056 0 obj <>/P 12598 0 R/Type/Annot/A 41661 0 R/Subtype/Link/Rect[180 500 194 507]/Border[0 0 0]/H/N>> endobj 21057 0 obj <>/P 12598 0 R/Type/Annot/A 41619 0 R/Subtype/Link/Rect[196 500 210 507]/Border[0 0 0]/H/N>> endobj 21058 0 obj <>/P 12598 0 R/Type/Annot/A 41574 0 R/Subtype/Link/Rect[212 500 226 507]/Border[0 0 0]/H/N>> endobj 21059 0 obj <>/P 12598 0 R/Type/Annot/A 21259 0 R/Subtype/Link/Rect[228 500 240 507]/Border[0 0 0]/H/N>> endobj 21060 0 obj <>/P 12598 0 R/Type/Annot/A 21257 0 R/Subtype/Link/Rect[243 490 255 497]/Border[0 0 0]/H/N>> endobj 21061 0 obj <>/P 12598 0 R/Type/Annot/A 41460 0 R/Subtype/Link/Rect[202 480 218 488]/Border[0 0 0]/H/N>> endobj 21062 0 obj <>/P 12598 0 R/Type/Annot/A 41426 0 R/Subtype/Link/Rect[219 480 233 487]/Border[0 0 0]/H/N>> endobj 21063 0 obj <>/P 12598 0 R/Type/Annot/A 41406 0 R/Subtype/Link/Rect[235 480 249 487]/Border[0 0 0]/H/N>> endobj 21064 0 obj <>/P 12598 0 R/Type/Annot/A 41338 0 R/Subtype/Link/Rect[251 480 263 487]/Border[0 0 0]/H/N>> endobj 21065 0 obj <>/P 12598 0 R/Type/Annot/A 21247 0 R/Subtype/Link/Rect[189 470 201 477]/Border[0 0 0]/H/N>> endobj 21066 0 obj <>/P 12598 0 R/Type/Annot/A 41275 0 R/Subtype/Link/Rect[202 460 212 467]/Border[0 0 0]/H/N>> endobj 21067 0 obj <>/P 12598 0 R/Type/Annot/A 41238 0 R/Subtype/Link/Rect[214 460 226 467]/Border[0 0 0]/H/N>> endobj 21068 0 obj <>/P 12598 0 R/Type/Annot/A 41196 0 R/Subtype/Link/Rect[197 450 207 457]/Border[0 0 0]/H/N>> endobj 21069 0 obj <>/P 12598 0 R/Type/Annot/A 41169 0 R/Subtype/Link/Rect[209 450 226 458]/Border[0 0 0]/H/N>> endobj 21070 0 obj <>/P 12598 0 R/Type/Annot/A 41149 0 R/Subtype/Link/Rect[226 450 240 457]/Border[0 0 0]/H/N>> endobj 21071 0 obj <>/P 12598 0 R/Type/Annot/A 41119 0 R/Subtype/Link/Rect[242 450 254 457]/Border[0 0 0]/H/N>> endobj 21072 0 obj <>/P 12598 0 R/Type/Annot/A 41075 0 R/Subtype/Link/Rect[189 440 201 447]/Border[0 0 0]/H/N>> endobj 21073 0 obj <>/P 12598 0 R/Type/Annot/A 40756 0 R/Subtype/Link/Rect[185 430 201 438]/Border[0 0 0]/H/N>> endobj 21074 0 obj <>/P 12598 0 R/Type/Annot/A 40726 0 R/Subtype/Link/Rect[202 430 214 437]/Border[0 0 0]/H/N>> endobj 21075 0 obj <>/P 12598 0 R/Type/Annot/A 40687 0 R/Subtype/Link/Rect[193 420 203 427]/Border[0 0 0]/H/N>> endobj 21076 0 obj <>/P 12598 0 R/Type/Annot/A 40130 0 R/Subtype/Link/Rect[205 420 219 427]/Border[0 0 0]/H/N>> endobj 21077 0 obj <>/P 12598 0 R/Type/Annot/A 40097 0 R/Subtype/Link/Rect[221 420 233 427]/Border[0 0 0]/H/N>> endobj 21078 0 obj <>/P 12598 0 R/Type/Annot/A 39563 0 R/Subtype/Link/Rect[177 410 185 417]/Border[0 0 0]/H/N>> endobj 21079 0 obj <>/P 12598 0 R/Type/Annot/A 39511 0 R/Subtype/Link/Rect[197 400 211 407]/Border[0 0 0]/H/N>> endobj 21080 0 obj <>/P 12598 0 R/Type/Annot/A 37605 0 R/Subtype/Link/Rect[213 400 225 407]/Border[0 0 0]/H/N>> endobj 21081 0 obj <>/P 12598 0 R/Type/Annot/A 38940 0 R/Subtype/Link/Rect[193 390 205 397]/Border[0 0 0]/H/N>> endobj 21082 0 obj <>/P 12598 0 R/Type/Annot/A 38413 0 R/Subtype/Link/Rect[204 380 216 387]/Border[0 0 0]/H/N>> endobj 21083 0 obj <>/P 12598 0 R/Type/Annot/A 21271 0 R/Subtype/Link/Rect[213 370 225 377]/Border[0 0 0]/H/N>> endobj 21084 0 obj <>/P 12598 0 R/Type/Annot/A 38331 0 R/Subtype/Link/Rect[216 360 228 367]/Border[0 0 0]/H/N>> endobj 21085 0 obj <>/P 12598 0 R/Type/Annot/A 38298 0 R/Subtype/Link/Rect[216 350 228 357]/Border[0 0 0]/H/N>> endobj 21086 0 obj <>/P 12598 0 R/Type/Annot/A 38258 0 R/Subtype/Link/Rect[192 340 206 347]/Border[0 0 0]/H/N>> endobj 21087 0 obj <>/P 12598 0 R/Type/Annot/A 38234 0 R/Subtype/Link/Rect[208 340 225 348]/Border[0 0 0]/H/N>> endobj 21088 0 obj <>/P 12598 0 R/Type/Annot/A 38226 0 R/Subtype/Link/Rect[225 340 239 347]/Border[0 0 0]/H/N>> endobj 21089 0 obj <>/P 12598 0 R/Type/Annot/A 38211 0 R/Subtype/Link/Rect[241 340 255 347]/Border[0 0 0]/H/N>> endobj 21090 0 obj <>/P 12598 0 R/Type/Annot/A 36696 0 R/Subtype/Link/Rect[257 340 274 348]/Border[0 0 0]/H/N>> endobj 21091 0 obj <>/P 12598 0 R/Type/Annot/A 21255 0 R/Subtype/Link/Rect[275 340 287 347]/Border[0 0 0]/H/N>> endobj 21092 0 obj <>/P 12598 0 R/Type/Annot/A 35874 0 R/Subtype/Link/Rect[189 330 201 337]/Border[0 0 0]/H/N>> endobj 21093 0 obj <>/P 12598 0 R/Type/Annot/A 38157 0 R/Subtype/Link/Rect[197 320 211 327]/Border[0 0 0]/H/N>> endobj 21094 0 obj <>/P 12598 0 R/Type/Annot/A 38139 0 R/Subtype/Link/Rect[213 320 227 327]/Border[0 0 0]/H/N>> endobj 21095 0 obj <>/P 12598 0 R/Type/Annot/A 34281 0 R/Subtype/Link/Rect[229 320 241 327]/Border[0 0 0]/H/N>> endobj 21096 0 obj <>/P 12598 0 R/Type/Annot/A 34240 0 R/Subtype/Link/Rect[189 310 201 317]/Border[0 0 0]/H/N>> endobj 21097 0 obj <>/P 12598 0 R/Type/Annot/A 34209 0 R/Subtype/Link/Rect[173 300 187 307]/Border[0 0 0]/H/N>> endobj 21098 0 obj <>/P 12598 0 R/Type/Annot/A 21242 0 R/Subtype/Link/Rect[189 300 201 307]/Border[0 0 0]/H/N>> endobj 21099 0 obj <>/P 12598 0 R/Type/Annot/A 33608 0 R/Subtype/Link/Rect[206 290 220 297]/Border[0 0 0]/H/N>> endobj 21100 0 obj <>/P 12598 0 R/Type/Annot/A 38053 0 R/Subtype/Link/Rect[222 290 236 297]/Border[0 0 0]/H/N>> endobj 21101 0 obj <>/P 12598 0 R/Type/Annot/A 21235 0 R/Subtype/Link/Rect[238 290 252 297]/Border[0 0 0]/H/N>> endobj 21102 0 obj <>/P 12598 0 R/Type/Annot/A 32575 0 R/Subtype/Link/Rect[254 290 266 297]/Border[0 0 0]/H/N>> endobj 21103 0 obj <>/P 12598 0 R/Type/Annot/A 38000 0 R/Subtype/Link/Rect[189 280 201 287]/Border[0 0 0]/H/N>> endobj 21104 0 obj <>/P 12598 0 R/Type/Annot/A 31853 0 R/Subtype/Link/Rect[157 260 168 267]/Border[0 0 0]/H/N>> endobj 21105 0 obj <>/P 12598 0 R/Type/Annot/A 31800 0 R/Subtype/Link/Rect[176 250 189 258]/Border[0 0 0]/H/N>> endobj 21106 0 obj <>/P 12598 0 R/Type/Annot/A 31116 0 R/Subtype/Link/Rect[190 250 198 257]/Border[0 0 0]/H/N>> endobj 21107 0 obj <>/P 12598 0 R/Type/Annot/A 31061 0 R/Subtype/Link/Rect[182 240 194 248]/Border[0 0 0]/H/N>> endobj 21108 0 obj <>/P 12598 0 R/Type/Annot/A 31010 0 R/Subtype/Link/Rect[195 240 203 247]/Border[0 0 0]/H/N>> endobj 21109 0 obj <>/P 12598 0 R/Type/Annot/A 37939 0 R/Subtype/Link/Rect[193 230 205 237]/Border[0 0 0]/H/N>> endobj 21110 0 obj <>/P 12598 0 R/Type/Annot/A 37923 0 R/Subtype/Link/Rect[243 220 257 227]/Border[0 0 0]/H/N>> endobj 21111 0 obj <>/P 12598 0 R/Type/Annot/A 21274 0 R/Subtype/Link/Rect[259 220 271 227]/Border[0 0 0]/H/N>> endobj 21112 0 obj <>/P 12598 0 R/Type/Annot/A 21309 0 R/Subtype/Link/Rect[185 210 196 217]/Border[0 0 0]/H/N>> endobj 21113 0 obj <>/P 12598 0 R/Type/Annot/A 37902 0 R/Subtype/Link/Rect[216 200 230 207]/Border[0 0 0]/H/N>> endobj 21114 0 obj <>/P 12598 0 R/Type/Annot/A 30083 0 R/Subtype/Link/Rect[232 200 246 207]/Border[0 0 0]/H/N>> endobj 21115 0 obj <>/P 12598 0 R/Type/Annot/A 21264 0 R/Subtype/Link/Rect[248 200 260 207]/Border[0 0 0]/H/N>> endobj 21116 0 obj <>/P 12598 0 R/Type/Annot/A 37877 0 R/Subtype/Link/Rect[189 190 201 197]/Border[0 0 0]/H/N>> endobj 21117 0 obj <>/P 12598 0 R/Type/Annot/A 29261 0 R/Subtype/Link/Rect[216 180 230 187]/Border[0 0 0]/H/N>> endobj 21118 0 obj <>/P 12598 0 R/Type/Annot/A 38273 0 R/Subtype/Link/Rect[232 180 246 187]/Border[0 0 0]/H/N>> endobj 21119 0 obj <>/P 12598 0 R/Type/Annot/A 37862 0 R/Subtype/Link/Rect[248 180 260 187]/Border[0 0 0]/H/N>> endobj 21120 0 obj <>/P 12598 0 R/Type/Annot/A 29146 0 R/Subtype/Link/Rect[189 170 201 177]/Border[0 0 0]/H/N>> endobj 21121 0 obj <>/P 12598 0 R/Type/Annot/A 29093 0 R/Subtype/Link/Rect[198 160 210 167]/Border[0 0 0]/H/N>> endobj 21122 0 obj <>/P 12598 0 R/Type/Annot/A 29067 0 R/Subtype/Link/Rect[202 150 216 157]/Border[0 0 0]/H/N>> endobj 21123 0 obj <>/P 12598 0 R/Type/Annot/A 37825 0 R/Subtype/Link/Rect[218 150 232 157]/Border[0 0 0]/H/N>> endobj 21124 0 obj <>/P 12598 0 R/Type/Annot/A 37817 0 R/Subtype/Link/Rect[234 150 248 157]/Border[0 0 0]/H/N>> endobj 21125 0 obj <>/P 12598 0 R/Type/Annot/A 37795 0 R/Subtype/Link/Rect[250 150 264 157]/Border[0 0 0]/H/N>> endobj 21126 0 obj <>/P 12598 0 R/Type/Annot/A 28425 0 R/Subtype/Link/Rect[266 150 282 158]/Border[0 0 0]/H/N>> endobj 21127 0 obj <>/P 12598 0 R/Type/Annot/A 37780 0 R/Subtype/Link/Rect[283 150 297 157]/Border[0 0 0]/H/N>> endobj 21128 0 obj <>/P 12598 0 R/Type/Annot/A 28351 0 R/Subtype/Link/Rect[299 150 311 157]/Border[0 0 0]/H/N>> endobj 21129 0 obj <>/P 12598 0 R/Type/Annot/A 27612 0 R/Subtype/Link/Rect[397 670 411 677]/Border[0 0 0]/H/N>> endobj 21130 0 obj <>/P 12598 0 R/Type/Annot/A 27567 0 R/Subtype/Link/Rect[413 670 425 677]/Border[0 0 0]/H/N>> endobj 21131 0 obj <>/P 12598 0 R/Type/Annot/A 21232 0 R/Subtype/Link/Rect[434 660 444 667]/Border[0 0 0]/H/N>> endobj 21132 0 obj <>/P 12598 0 R/Type/Annot/A 26953 0 R/Subtype/Link/Rect[446 660 456 667]/Border[0 0 0]/H/N>> endobj 21133 0 obj <>/P 12598 0 R/Type/Annot/A 37729 0 R/Subtype/Link/Rect[458 660 466 667]/Border[0 0 0]/H/N>> endobj 21134 0 obj <>/P 12598 0 R/Type/Annot/A 26485 0 R/Subtype/Link/Rect[419 650 433 657]/Border[0 0 0]/H/N>> endobj 21135 0 obj <>/P 12598 0 R/Type/Annot/A 37718 0 R/Subtype/Link/Rect[435 650 447 657]/Border[0 0 0]/H/N>> endobj 21136 0 obj <>/P 12598 0 R/Type/Annot/A 37713 0 R/Subtype/Link/Rect[410 640 424 647]/Border[0 0 0]/H/N>> endobj 21137 0 obj <>/P 12598 0 R/Type/Annot/A 25883 0 R/Subtype/Link/Rect[426 640 440 647]/Border[0 0 0]/H/N>> endobj 21138 0 obj <>/P 12598 0 R/Type/Annot/A 25863 0 R/Subtype/Link/Rect[442 640 456 647]/Border[0 0 0]/H/N>> endobj 21139 0 obj <>/P 12598 0 R/Type/Annot/A 25800 0 R/Subtype/Link/Rect[458 640 472 647]/Border[0 0 0]/H/N>> endobj 21140 0 obj <>/P 12598 0 R/Type/Annot/A 25001 0 R/Subtype/Link/Rect[474 640 486 647]/Border[0 0 0]/H/N>> endobj 21141 0 obj <>/P 12598 0 R/Type/Annot/A 21267 0 R/Subtype/Link/Rect[397 630 409 637]/Border[0 0 0]/H/N>> endobj 21142 0 obj <>/P 12598 0 R/Type/Annot/A 24901 0 R/Subtype/Link/Rect[419 620 433 627]/Border[0 0 0]/H/N>> endobj 21143 0 obj <>/P 12598 0 R/Type/Annot/A 24270 0 R/Subtype/Link/Rect[435 620 449 627]/Border[0 0 0]/H/N>> endobj 21144 0 obj <>/P 12598 0 R/Type/Annot/A 24229 0 R/Subtype/Link/Rect[451 620 463 627]/Border[0 0 0]/H/N>> endobj 21145 0 obj <>/P 12598 0 R/Type/Annot/A 30109 0 R/Subtype/Link/Rect[397 610 409 617]/Border[0 0 0]/H/N>> endobj 21146 0 obj <>/P 12598 0 R/Type/Annot/A 37656 0 R/Subtype/Link/Rect[429 600 443 607]/Border[0 0 0]/H/N>> endobj 21147 0 obj <>/P 12598 0 R/Type/Annot/A 29319 0 R/Subtype/Link/Rect[445 600 457 607]/Border[0 0 0]/H/N>> endobj 21148 0 obj <>/P 12598 0 R/Type/Annot/A 22598 0 R/Subtype/Link/Rect[397 590 409 597]/Border[0 0 0]/H/N>> endobj 21149 0 obj <>/P 12598 0 R/Type/Annot/A 22042 0 R/Subtype/Link/Rect[396 580 408 587]/Border[0 0 0]/H/N>> endobj 21150 0 obj <>/P 12598 0 R/Type/Annot/A 37645 0 R/Subtype/Link/Rect[405 570 419 577]/Border[0 0 0]/H/N>> endobj 21151 0 obj <>/P 12598 0 R/Type/Annot/A 36774 0 R/Subtype/Link/Rect[421 570 433 577]/Border[0 0 0]/H/N>> endobj 21152 0 obj <>/P 12598 0 R/Type/Annot/A 21393 0 R/Subtype/Link/Rect[432 560 446 567]/Border[0 0 0]/H/N>> endobj 21153 0 obj <>/P 12598 0 R/Type/Annot/A 29076 0 R/Subtype/Link/Rect[448 560 462 567]/Border[0 0 0]/H/N>> endobj 21154 0 obj <>/P 12598 0 R/Type/Annot/A 21327 0 R/Subtype/Link/Rect[464 560 481 568]/Border[0 0 0]/H/N>> endobj 21155 0 obj <>/P 12598 0 R/Type/Annot/A 21326 0 R/Subtype/Link/Rect[481 560 495 567]/Border[0 0 0]/H/N>> endobj 21156 0 obj <>/P 12598 0 R/Type/Annot/A 21325 0 R/Subtype/Link/Rect[497 560 511 567]/Border[0 0 0]/H/N>> endobj 21157 0 obj <>/P 12598 0 R/Type/Annot/A 21324 0 R/Subtype/Link/Rect[359 550 371 557]/Border[0 0 0]/H/N>> endobj 21158 0 obj <>/P 12598 0 R/Type/Annot/A 21323 0 R/Subtype/Link/Rect[424 540 434 547]/Border[0 0 0]/H/N>> endobj 21159 0 obj <>/P 12598 0 R/Type/Annot/A 21322 0 R/Subtype/Link/Rect[436 540 446 547]/Border[0 0 0]/H/N>> endobj 21160 0 obj <>/P 12598 0 R/Type/Annot/A 21321 0 R/Subtype/Link/Rect[448 540 456 547]/Border[0 0 0]/H/N>> endobj 21161 0 obj <>/P 12598 0 R/Type/Annot/A 21320 0 R/Subtype/Link/Rect[400 530 412 537]/Border[0 0 0]/H/N>> endobj 21162 0 obj <>/P 12598 0 R/Type/Annot/A 21319 0 R/Subtype/Link/Rect[388 482 394 489]/Border[0 0 0]/H/N>> endobj 21163 0 obj <>/P 12598 0 R/Type/Annot/A 21318 0 R/Subtype/Link/Rect[396 482 406 489]/Border[0 0 0]/H/N>> endobj 21164 0 obj <>/P 12598 0 R/Type/Annot/A 21317 0 R/Subtype/Link/Rect[408 482 418 489]/Border[0 0 0]/H/N>> endobj 21165 0 obj <>/P 12598 0 R/Type/Annot/A 21316 0 R/Subtype/Link/Rect[420 482 432 489]/Border[0 0 0]/H/N>> endobj 21166 0 obj <>/P 12598 0 R/Type/Annot/A 21315 0 R/Subtype/Link/Rect[419 472 432 480]/Border[0 0 0]/H/N>> endobj 21167 0 obj <>/P 12598 0 R/Type/Annot/A 21314 0 R/Subtype/Link/Rect[433 472 441 479]/Border[0 0 0]/H/N>> endobj 21168 0 obj <>/P 12598 0 R/Type/Annot/A 21313 0 R/Subtype/Link/Rect[426 462 438 469]/Border[0 0 0]/H/N>> endobj 21169 0 obj <>/P 12598 0 R/Type/Annot/A 21312 0 R/Subtype/Link/Rect[402 452 416 459]/Border[0 0 0]/H/N>> endobj 21170 0 obj <>/P 12598 0 R/Type/Annot/A 21311 0 R/Subtype/Link/Rect[418 452 430 459]/Border[0 0 0]/H/N>> endobj 21171 0 obj <>/P 12598 0 R/Type/Annot/A 21310 0 R/Subtype/Link/Rect[399 442 409 449]/Border[0 0 0]/H/N>> endobj 21172 0 obj <>/P 12598 0 R/Type/Annot/A 21308 0 R/Subtype/Link/Rect[411 442 421 449]/Border[0 0 0]/H/N>> endobj 21173 0 obj <>/P 12598 0 R/Type/Annot/A 21307 0 R/Subtype/Link/Rect[423 442 433 449]/Border[0 0 0]/H/N>> endobj 21174 0 obj <>/P 12598 0 R/Type/Annot/A 21306 0 R/Subtype/Link/Rect[435 442 448 449]/Border[0 0 0]/H/N>> endobj 21175 0 obj <>/P 12598 0 R/Type/Annot/A 21305 0 R/Subtype/Link/Rect[450 442 464 449]/Border[0 0 0]/H/N>> endobj 21176 0 obj <>/P 12598 0 R/Type/Annot/A 21304 0 R/Subtype/Link/Rect[466 442 478 449]/Border[0 0 0]/H/N>> endobj 21177 0 obj <>/P 12598 0 R/Type/Annot/A 21303 0 R/Subtype/Link/Rect[404 422 412 429]/Border[0 0 0]/H/N>> endobj 21178 0 obj <>/P 12598 0 R/Type/Annot/A 21302 0 R/Subtype/Link/Rect[418 412 430 419]/Border[0 0 0]/H/N>> endobj 21179 0 obj <>/P 12598 0 R/Type/Annot/A 21301 0 R/Subtype/Link/Rect[418 402 430 409]/Border[0 0 0]/H/N>> endobj 21180 0 obj <>/P 12598 0 R/Type/Annot/A 21300 0 R/Subtype/Link/Rect[415 392 427 400]/Border[0 0 0]/H/N>> endobj 21181 0 obj <>/P 12598 0 R/Type/Annot/A 21299 0 R/Subtype/Link/Rect[428 392 436 399]/Border[0 0 0]/H/N>> endobj 21182 0 obj <>/P 12598 0 R/Type/Annot/A 21298 0 R/Subtype/Link/Rect[406 382 416 389]/Border[0 0 0]/H/N>> endobj 21183 0 obj <>/P 12598 0 R/Type/Annot/A 21297 0 R/Subtype/Link/Rect[418 382 430 389]/Border[0 0 0]/H/N>> endobj 21184 0 obj <>/P 12598 0 R/Type/Annot/A 21296 0 R/Subtype/Link/Rect[424 372 432 379]/Border[0 0 0]/H/N>> endobj 21185 0 obj <>/P 12598 0 R/Type/Annot/A 21295 0 R/Subtype/Link/Rect[419 362 427 369]/Border[0 0 0]/H/N>> endobj 21186 0 obj <>/P 12598 0 R/Type/Annot/A 21294 0 R/Subtype/Link/Rect[400 342 417 350]/Border[0 0 0]/H/N>> endobj 21187 0 obj <>/P 12598 0 R/Type/Annot/A 21293 0 R/Subtype/Link/Rect[417 342 431 349]/Border[0 0 0]/H/N>> endobj 21188 0 obj <>/P 12598 0 R/Type/Annot/A 21292 0 R/Subtype/Link/Rect[433 342 447 349]/Border[0 0 0]/H/N>> endobj 21189 0 obj <>/P 12598 0 R/Type/Annot/A 21291 0 R/Subtype/Link/Rect[449 342 463 349]/Border[0 0 0]/H/N>> endobj 21190 0 obj <>/P 12598 0 R/Type/Annot/A 21290 0 R/Subtype/Link/Rect[465 342 482 350]/Border[0 0 0]/H/N>> endobj 21191 0 obj <>/P 12598 0 R/Type/Annot/A 21289 0 R/Subtype/Link/Rect[483 342 495 349]/Border[0 0 0]/H/N>> endobj 21192 0 obj <>/P 12598 0 R/Type/Annot/A 21288 0 R/Subtype/Link/Rect[397 332 409 339]/Border[0 0 0]/H/N>> endobj 21193 0 obj <>/P 12598 0 R/Type/Annot/A 21287 0 R/Subtype/Link/Rect[401 322 415 329]/Border[0 0 0]/H/N>> endobj 21194 0 obj <>/P 12598 0 R/Type/Annot/A 21286 0 R/Subtype/Link/Rect[417 322 429 329]/Border[0 0 0]/H/N>> endobj 21195 0 obj <>/P 12598 0 R/Type/Annot/A 21285 0 R/Subtype/Link/Rect[400 312 414 319]/Border[0 0 0]/H/N>> endobj 21196 0 obj <>/P 12598 0 R/Type/Annot/A 21283 0 R/Subtype/Link/Rect[416 312 430 319]/Border[0 0 0]/H/N>> endobj 21197 0 obj <>/P 12598 0 R/Type/Annot/A 21282 0 R/Subtype/Link/Rect[432 312 444 319]/Border[0 0 0]/H/N>> endobj 21198 0 obj <>/P 12598 0 R/Type/Annot/A 21281 0 R/Subtype/Link/Rect[397 302 409 309]/Border[0 0 0]/H/N>> endobj 21199 0 obj <>/P 12598 0 R/Type/Annot/A 21279 0 R/Subtype/Link/Rect[401 292 415 299]/Border[0 0 0]/H/N>> endobj 21200 0 obj <>/P 12598 0 R/Type/Annot/A 21278 0 R/Subtype/Link/Rect[417 292 429 299]/Border[0 0 0]/H/N>> endobj 21201 0 obj <>/P 12598 0 R/Type/Annot/A 21277 0 R/Subtype/Link/Rect[398 282 404 289]/Border[0 0 0]/H/N>> endobj 21202 0 obj <>/P 12598 0 R/Type/Annot/A 21275 0 R/Subtype/Link/Rect[406 282 419 290]/Border[0 0 0]/H/N>> endobj 21203 0 obj <>/P 12598 0 R/Type/Annot/A 21273 0 R/Subtype/Link/Rect[420 282 428 289]/Border[0 0 0]/H/N>> endobj 21204 0 obj <>/P 12598 0 R/Type/Annot/A 21270 0 R/Subtype/Link/Rect[500 272 512 279]/Border[0 0 0]/H/N>> endobj 21205 0 obj <>/P 12598 0 R/Type/Annot/A 21268 0 R/Subtype/Link/Rect[405 262 422 270]/Border[0 0 0]/H/N>> endobj 21206 0 obj <>/P 12598 0 R/Type/Annot/A 21266 0 R/Subtype/Link/Rect[422 262 436 269]/Border[0 0 0]/H/N>> endobj 21207 0 obj <>/P 12598 0 R/Type/Annot/A 21265 0 R/Subtype/Link/Rect[438 262 450 269]/Border[0 0 0]/H/N>> endobj 21208 0 obj <>/P 12598 0 R/Type/Annot/A 21263 0 R/Subtype/Link/Rect[397 252 409 259]/Border[0 0 0]/H/N>> endobj 21209 0 obj <>/P 12598 0 R/Type/Annot/A 21262 0 R/Subtype/Link/Rect[410 242 422 249]/Border[0 0 0]/H/N>> endobj 21210 0 obj <>/P 12598 0 R/Type/Annot/A 21261 0 R/Subtype/Link/Rect[438 232 450 239]/Border[0 0 0]/H/N>> endobj 21211 0 obj <>/P 12598 0 R/Type/Annot/A 21260 0 R/Subtype/Link/Rect[418 222 424 229]/Border[0 0 0]/H/N>> endobj 21212 0 obj <>/P 12598 0 R/Type/Annot/A 21258 0 R/Subtype/Link/Rect[426 222 436 229]/Border[0 0 0]/H/N>> endobj 21213 0 obj <>/P 12598 0 R/Type/Annot/A 21254 0 R/Subtype/Link/Rect[438 222 448 229]/Border[0 0 0]/H/N>> endobj 21214 0 obj <>/P 12598 0 R/Type/Annot/A 21252 0 R/Subtype/Link/Rect[450 222 460 229]/Border[0 0 0]/H/N>> endobj 21215 0 obj <>/P 12598 0 R/Type/Annot/A 21250 0 R/Subtype/Link/Rect[462 222 476 229]/Border[0 0 0]/H/N>> endobj 21216 0 obj <>/P 12598 0 R/Type/Annot/A 21249 0 R/Subtype/Link/Rect[478 222 492 229]/Border[0 0 0]/H/N>> endobj 21217 0 obj <>/P 12598 0 R/Type/Annot/A 21248 0 R/Subtype/Link/Rect[494 222 508 229]/Border[0 0 0]/H/N>> endobj 21218 0 obj <>/P 12598 0 R/Type/Annot/A 21246 0 R/Subtype/Link/Rect[359 212 373 219]/Border[0 0 0]/H/N>> endobj 21219 0 obj <>/P 12598 0 R/Type/Annot/A 21244 0 R/Subtype/Link/Rect[375 212 387 219]/Border[0 0 0]/H/N>> endobj 21220 0 obj <>/P 12598 0 R/Type/Annot/A 21243 0 R/Subtype/Link/Rect[410 202 419 210]/Border[0 0 0]/H/N>> endobj 21221 0 obj <>/P 12598 0 R/Type/Annot/A 21241 0 R/Subtype/Link/Rect[419 202 423 209]/Border[0 0 0]/H/N>> endobj 21222 0 obj <>/P 12598 0 R/Type/Annot/A 21240 0 R/Subtype/Link/Rect[421 192 438 200]/Border[0 0 0]/H/N>> endobj 21223 0 obj <>/P 12598 0 R/Type/Annot/A 21238 0 R/Subtype/Link/Rect[438 192 450 199]/Border[0 0 0]/H/N>> endobj 21224 0 obj <>/P 12598 0 R/Type/Annot/A 21236 0 R/Subtype/Link/Rect[377 182 389 189]/Border[0 0 0]/H/N>> endobj 21225 0 obj <>/P 12598 0 R/Type/Annot/A 21234 0 R/Subtype/Link/Rect[453 172 461 179]/Border[0 0 0]/H/N>> endobj 21226 0 obj <>/P 12598 0 R/Type/Annot/A 21231 0 R/Subtype/Link/Rect[379 152 387 159]/Border[0 0 0]/H/N>> endobj 21227 0 obj <>/P 12598 0 R/Type/Annot/A 21230 0 R/Subtype/Link/Rect[387 350 402 359]/Border[0 0 0]/H/N>> endobj 21228 0 obj <>/P 12598 0 R/Type/Annot/A 21280 0 R/Subtype/Link/Rect[404 350 422 359]/Border[0 0 0]/H/N>> endobj 21229 0 obj <> endobj 21230 0 obj <> endobj 21231 0 obj <> endobj 21232 0 obj <> endobj 21233 0 obj <> endobj 21234 0 obj <> endobj 21235 0 obj <> endobj 21236 0 obj <> endobj 21237 0 obj <> endobj 21238 0 obj <> endobj 21239 0 obj <> endobj 21240 0 obj <> endobj 21241 0 obj <> endobj 21242 0 obj <> endobj 21243 0 obj <> endobj 21244 0 obj <> endobj 21245 0 obj <> endobj 21246 0 obj <> endobj 21247 0 obj <> endobj 21248 0 obj <> endobj 21249 0 obj <> endobj 21250 0 obj <> endobj 21251 0 obj <> endobj 21252 0 obj <> endobj 21253 0 obj <> endobj 21254 0 obj <> endobj 21255 0 obj <> endobj 21256 0 obj <> endobj 21257 0 obj <> endobj 21258 0 obj <> endobj 21259 0 obj <> endobj 21260 0 obj <> endobj 21261 0 obj <> endobj 21262 0 obj <> endobj 21263 0 obj <> endobj 21264 0 obj <> endobj 21265 0 obj <> endobj 21266 0 obj <> endobj 21267 0 obj <> endobj 21268 0 obj <> endobj 21269 0 obj <> endobj 21270 0 obj <> endobj 21271 0 obj <> endobj 21272 0 obj <> endobj 21273 0 obj <> endobj 21274 0 obj <> endobj 21275 0 obj <> endobj 21276 0 obj <> endobj 21277 0 obj <> endobj 21278 0 obj <> endobj 21279 0 obj <> endobj 21280 0 obj <> endobj 21281 0 obj <> endobj 21282 0 obj <> endobj 21283 0 obj <> endobj 21284 0 obj <> endobj 21285 0 obj <> endobj 21286 0 obj <> endobj 21287 0 obj <> endobj 21288 0 obj <> endobj 21289 0 obj <> endobj 21290 0 obj <> endobj 21291 0 obj <> endobj 21292 0 obj <> endobj 21293 0 obj <> endobj 21294 0 obj <> endobj 21295 0 obj <> endobj 21296 0 obj <> endobj 21297 0 obj <> endobj 21298 0 obj <> endobj 21299 0 obj <> endobj 21300 0 obj <> endobj 21301 0 obj <> endobj 21302 0 obj <> endobj 21303 0 obj <> endobj 21304 0 obj <> endobj 21305 0 obj <> endobj 21306 0 obj <> endobj 21307 0 obj <> endobj 21308 0 obj <> endobj 21309 0 obj <> endobj 21310 0 obj <> endobj 21311 0 obj <> endobj 21312 0 obj <> endobj 21313 0 obj <> endobj 21314 0 obj <> endobj 21315 0 obj <> endobj 21316 0 obj <> endobj 21317 0 obj <> endobj 21318 0 obj <> endobj 21319 0 obj <> endobj 21320 0 obj <> endobj 21321 0 obj <> endobj 21322 0 obj <> endobj 21323 0 obj <> endobj 21324 0 obj <> endobj 21325 0 obj <> endobj 21326 0 obj <> endobj 21327 0 obj <> endobj 21328 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21329 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21330 0 obj <> endobj 21331 0 obj <> stream q /X1 Do Q q endstream endobj 21332 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 21333 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 21334 0 obj <> stream HWr|WLl \p[[,e7w+skL"5^ oʿR sJlR=9i͋?I˗W"[>ɝ)rd4RkdMm,Wvmmiw.'8c.hT"MSɧ=hitl鯮eGyl4g.Km3k}a >) yq]6C\g_Oȋ>k'|165?Oy!5 U>O\Fiɟ*F*zUTS M"IYz:Z2ޭ%F,;NW=p{{>A}P3>S3>S3>Ss>Ws>W P P PKTKT+R+^uւJl9Z1K@k%,^b%F,Z1 WucpZ@k%F,Z1 WucpZ@k%F,Z1 WucpZ@k%F,Z1 WucpZ@k%0-r/1>0-r/1> -r/1> -r/1-r/1-r/1޾-r/1޾-r/1ޘ-r/1ޘk-1KkI@K>Igu.'d5: Y:z[_ӳ¥iq>pa&J7n m7_OQ:"YF2)ɫnm(1;Ƶ0sS^/橱=}:=2I&rl6Y;_Ѵ>-r8.umj\~]ͷ'pewLNWwz y?$G6`;H3NU܉z2=/M.enoO˪,qt{^˦Yܯ?Or*pt\o]ZzSfƐζ:+CSg4u(i&z>){nq]Lw~s9/3o7' ݞ?ûcţ#sE""·GN㒛f_.z;hhvCe{lA2.u߲#|C<9%%n_(d'K33WV9]YݙeK}Kp-x٬];kx@U0'@n;z3FZ7-Xl8diREtyk^ޑ)Ms'[i v)΁9Gӧ:e5?fQLfDulQRG t?=Ό"+Kn:JFltȥňEc̎|ntc..O?}/--M-[v(LV$C ^|BOaEq86XX4nA>,yCۂm3d>飛gzI!ې/:v6{z&)d@f{哄{rb>wfsZYk[dp]Q峗|~XhaSzF@ ^0. >in}pKY`) @+( heJ+ZʁVr+hJZ*VJU* hUJZr֒ĈeUZhY倖SZh;{1 h;{1 h;{1 h;{1 h;{1 h;{1 h;{1 h{{1KkIX cR cR cR cR cR cR cR cR cR c֒@%,r@%,r@%,r@%,r@%,r@%,r@%,r@%,r@%,rKYZKbVTU+m/'xc.YN1ﭧCw,M tQ(_|lx~8ڎIӏl7mq>|7u[V_>*Yry 冫&^Y}!!Ie ,>_/E'^/o.:h!TL$xTXƒ(O=9 F{])DI"|!lYCLksǸCd{hBR5=&DV6Q#9wm)}+GYkz"jWZ{ӼD7ABכ,0Lo}]:Z%yOC,B{r$ss@x1v /8 s %}qOL`kHX^g>XЅ ]ŞuXXB$Дiv]plZUEPv8! ˍom7ժ'=aE ,K|{U`$'Q vML/2Fܦyw+)XvJ2T(g2VƓs>[s]4!)b>DGLzjQy٦d$JQ~@a |,ğ&9';<fS0}EP}zn'w'6L.|~zLJ? 09endstream endobj 21335 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21336 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21337 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21338 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21339 0 obj <> endobj 21340 0 obj <> stream q /X1 Do Q q endstream endobj 21341 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 21342 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 21343 0 obj <> stream Hmo8SًT$r/(M{n/qo EJ-yez&G GOrEQo^<GO5 Rq?d$ /)wy(Iw~e=WyHcRkFދw>P24$ hD"w3eIe'>c222{ۢ"> eGceg5*'yOd;}+C%2@}57^ú_{gЀ߷K@BGQ9^9^95^;5,ELkC\k 媷c@!cr1CPk혡kZ;f(DZ֎֎ Q︖!cB;ekPk혡kZ;f(DZ֎֎ Q︖!cB;ekk혡\v (ĵvPz;f(W q3q-G\k w\11C!rĵvPzǵq q3q-G\k w\11C!rĵvPzǵq[{q3ގ֎Uo 媷c@!cB;k혡kZ;Z;f(DZ֎ QV c@!cB;k혡kZ;Z;f(DZ֎ QV ckO"cr11C혡\Z bfP2>eIApMv6ϒt&ŠH<5Qׯo߽PKyRMo5@qCOeŧVӿW^ۧ6֔"d!+)y~"LRdZL]^\$[*\>,XG,ԇC5d(TMۑeĸH IaY0&?5S#W%ϳ__^|1?mR?p!Ťi{; N}g*%)py|p3AeX73a$XrFY!*&%,q>$ewd,%5\ ~ct&b9TWt7b,Á:A 2[ؘ\$i0Xn}Uh4j = vJ{wa4LIF@3w E"0N}ᣩwYyɋwq*PK |VqiNc;9EL$gLEYVW0->=Z-%ɳn+k@yEڽhU~z>9pwf `czŤ7s;cN5RL\?KW Q~Пc yeP!B߼<#נ߳RU<Q͂)~S'z}fΧcWg{\ ĜpetSBo5c"-gyz:\Mfg`51QIʀ֝q>-I =:]T;Y'k[7 e"#(#憫8e`f1Q酶ՋuB;u~J{ߡlޅlwqlgókRY|2W fHN=W.I}PG.7`'A|Tc=+juU$fѫC?kZ?#~Tn g+AIy}49l7>'+dAؖr+~>;j R0-mN''T!HCM/ݐ!l'\ 23E#Ƣe) '֌cxf#r>x@؛k <֌'5pWҌ65;W-wY#1~ßn]ijOÌ@,"V>eLh1u,h˲zYVfYCeTW=o 4.ɖE}ЎD;ڋbs샳aMV|$ëHuRjo0٣-n/\~=I{' endstream endobj 21344 0 obj <> endobj 21345 0 obj <> endobj 21346 0 obj <> endobj 21347 0 obj <> endobj 21348 0 obj <> endobj 21349 0 obj <> endobj 21350 0 obj <> stream 100 endstream endobj 21351 0 obj <> endobj 21352 0 obj <> endobj 21353 0 obj <> endobj 21354 0 obj <> endobj 21355 0 obj <> stream q /X1 Do Q q endstream endobj 21356 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 21357 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 21358 0 obj <> stream H|W]oܶ}ׯУ 8(`'m nCZ]9+m_gDREj<$ ɛiLK޽M&YeR[iQ,*=_1ӧD]7c}SwhSMO]r˟*}Mru*cR yZ5ynIVVW'dI/ݾM(gqi4e%T]<'OM 9KJ_RoOy&.o^OLjK9u̩ G:"Q Yp1`Ȳ j2O1`)F+FkFkFkFFF[F[F[F"R_0H}ɨ/#%ԗ2R_1H}Ũ"5׌ȳ1-b\K1d),ƵCVbȊS Xk),F}ZŸbbGUk),ƵC>rb\K1d1#*ƵZ!QV1kZq-ŐŨ\R Yȵq-f\K1d),ƵCVbȊS Xk),F}Z͸bbGՌk),ƵC>rf\K1d1#jƵZ!QV3k5Zq-ŐŨ\R Yȵq-a\K1d),ƵCVbȊS Xk),F}ZøbbG5k),ƵC>ra\K1d1#ƵZ!Q0k Zq-ŐŨ\kR Yȵq-e\K1d),ƵCVbȊעk*MrM*c" T(Ң!mvݐ^'mҟű?>tijUBe~Į#h'߷CͩZw>8co/amhw[0"ؖNnwyjiw04[qc^lضGZm/LObYwu1 7 ?Cڸ16tU^Wm6Wd)rH5lzm@EM:Thi0 ;]5%ɽt5έ}һ;>8^{kݺO3m wgԗU%ri~&/ܝ>YP/ilUCJj;huk0Fb3?7~ѸWJb"{]-`zUDmsϷwv\@}˄a"e$`&A䅨sj}kڜ.~!z+!e>w$݆s_]ust^GȢ2&Z,, gMO E^jrB]|nArt<}SNQ{fp}Em"i*E]4W%B6B]2J8Yoo_m5d aBLr ~QC}hUp>};nm8MKSC~! Κ\-P4 .؞O`Wgr-r#{nb7)? /A ќc!\."ichSPеAgkaY#i L/f9}iOv[覊2at8v܌9 Tq1xLQ1󲯆D!IW^1~٬"WKwW c%VǗB.LQ0\_-aj?zj_m^&d à;!og 5LЌ@L[ [Xv>*;:]KOҟ.v)_KVa>|NbѼ%^jamERB|rve+V/&Wr^* nҤjJK^uD]6Tӡ%e=R!GW?O{&8ANPJqQ=DaH w}07JSz&NsYkZТ֞.wZ6uW{ԝT@ɍ҃Gv-MU4GYi7o!G }Gԫ{'|S3v1~'C e%ʥsdn`nLl;ʒW,Xl|]0 Z~=[k:B]ѽ&!z {A؍0ߟ0{|c;ӂX6 ] # fq1 ~ rk2mbmCæݸ&&w-tVWzj⵷,>"G5AZmEI#ݶޟKXuwڤE]kjZ?0oZ䅝rY{V8>^i( cqvq*C@ksj pXوCa-ts.1fcUŰ͸IS6)&~-^kUe\NjmsM*K“y UGIfv[y$^m<އi充ON*{7/_i&Tɢ#+,ʑ3X`r zv8ձZk^]Ba5:p1C7웲KEhw|e:Ew":; w`aG!|Ynzvb (❌P˩~I תּvNLm58&8ɟN63*z?5:PN뱰ŵeI:BO2ю^gvh+)˿gqAThnon/`?%5l'Hƕ0yԕE9k:ñ,<FN2(\sJCA Q~r|MĄ[Hq ~(WUܯv'Դ4P?a~}8*뱷.d3#yo\&@f/%N岦s3Mx"pC֝v͖"Il~. vM %Q`A+?IG&3:HMoВ)#(0x˹Cɧ]]b X67Ҝ2iFdu4MfF_^ڲDqqD.n6qla 7l b._}%j'G8lO},ٟ$)$_\a?ۦ^e("!:3a4:NӪ0ͨ, prasXSf dH@ b5.nl&j(S p) Soi4'?3Q=FV=2Y9]sߨH!DSmg dUE `P2 EA|?Ww ܡUFA6r|)Sݽp'*j彇V/Viux7# $T2 S#TsBHjpW{;)}_s|Gx\siiAizƦ6j.uzga&j@@cJ% 8ÅΣH#<5iy6n"( #v[ GvX5v-;3á(Su: Q^C";)z:D> :F>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21360 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21361 0 obj <> stream q /X13 Do Q q endstream endobj 21362 0 obj <>/Font<>/XObject<>/ProcSet[/PDF/Text/ImageB]/ExtGState<>>> endobj 21363 0 obj <> stream Q q 1 0 0 1 43.980000 25.620000 cm /X12 Do Q endstream endobj 21364 0 obj <> stream HWn}߯ ;1v 1=~ɒTHʂ>TMJ rtuwթ7gvΜ?o/oo_NGtڽ瘫{}w{suqήs8?גcssḧ́f_K1W_Mn5ٷ?y_GyzO~ Vt;?}6w~z}q\XO*5{,.;Ńy htC>!?)EH+5ij7j]Rr}`=W}kN`$3%8 IҸ/Ƶܴl3ޒmtQ˩ہ8ķ#bKZ /θ*-Qt;R#r& gP8͙bq9K\eKGISqbytjZ7R;m!17 ;c_Ug9|kg{ WNRސ!KDFDt  En Drsr4$:WEP{ N)5UTm <(؂ 4Z,K0r|y vsPD<6'^ʇeP+eFLu6Q.hBjʀ0F3bm}Nؤ ,-ZԪHCҳ^thBG6rfyI(Tg̰HIUi5CB1KadM,5JmvڻVU$VBɞOӁXWHk = ^EsR<"ǶkDаѻ=:Oof ?hj?S)EI'?Qo=a.(ֈodS,:e/Xg ?;3[AxdݻpO u2P)]m^eϛxR t4JzMB6oFZ}}uSX6;CJ؃";wAan; ~u|.*p}Ó%2۾Lj}LG*&h P('e%+y沉D}cmP'G~7|}#VtTZMo%K(B':̦Wr{XI{Hc) iw?A/Y`{= [W7]Jː-!T?M5J!kscr0R^M\v9iJnq3Eˌe.cCLNCv.g b%dS9QNR ZI"s״Q3L(/)nble1ׇn&&BƢW\' ڗSF/Y$baoWha1B籪0GnڭtdZOZ z[>%c8DXvU|uHrL^n7[ׇ=ς4|VGUP2,U{ٵH?ltS}\l}l1v@V_"|YnĕaS[bJS#hx݁zNTϏXj@K~TtDM=$pjϩ*:SSE*1?={. .l2u{12kzd)n?=5 {9<7mc!efKH)&wqj; Vb̌[`iYv yN/Tg߅3,LL͋l+Nx<ܮw"A? 8ϧ(E, 1 \Gjш0Zy[o|` I-P/Ϊ9~3gnj(_6 *-(bo%k*?;BE:qE:TٴN%s^3ZAS!d57.%NN z 8SKؤ䈵p@?)ne+ɀlySD֮=S~{$&"MlA8e(q,d\Gi*5d5fz!kĤ+e04Ꮐn|mZkWQR_1:/aXCL5#kҖO!և0gٮhf_Xe :Low诀ɈJ[GT`rv@T6bGj."DꝇJ)ڭ{Y¨(GO9jDl kђ+o7Kf@; 18@T8\=sioh βʔ;1M`O~}G1lcP'"NHPD– >r+[ݤZm v=;>mمEYr #,\dB>fɮ]f@c '"_ Ĵ2*|o+w+G?mdcY(~oZ"0d8_-|7Y7`NOg2޽Ajl[+ʍ:=8uXW5E<#Jк{U309RoMgh<&tؕ+ZєM\1̸IƲ& ]/B>O?Uan3Eb-X ʜ3ao`92;É !UanQXC9q ^ 78Zwٮk߂V"ty ڲkqbW5NnI+L*" Tq@&pMX3T(gi2 TRbm$ K3! Wzc=DM% 3-ŝ%0[B8B7l l,9O7`-t]5mVy3T}\^+ ,L0xJx{N c>1d}Hr0,ONUuf5ڤt7gHdCB?JFZ弾cߜo![Cr6.PЅ6Ȭ3J*.p$MŰþފm2 =|U07+ܗ7}vv!Q/4I0ЈS/e:J+1ˮL/s!ӋV|)ÀE ZRd &߂KD2V86{18jɸ[&k(`e&'&/%;\3]wssB򨽌o\#X52vkobcnNe#SvuZΖS/fۇ<+Ab;B]oֻjV5[ߩ'Fkv!^ۍqnltU^B=T;74V-lY{'p]Zd8/xvdgMsMvV? ;.ZY$:mmb*,쬸Ы㝵%=,E;;_vBu78+)w`.ɜ^di\Fٱ]zBn"Ϫg'oem^Eyw}؇ sFa+:gy4~೺Y{{Z0L|Gqh~JZQƠ݃iwe\CyЭa8кXu'm(ofFbN`j Q2+FQ]:cՔimc7'j9pc~xW\/0UD*v?Dj Olo?%f{kg2ql7nm ~% 2uMC:! lc'3+đ[KTo{9A, Yنp=tѮG&cd77'akk-3L\ 2N-Yz`;7dccc7;1-3ww+;l_KMG|WbCFe~<6U{AKqRe8I]ޫUٕo8╣BhDp[\j yYû9V#= gw֪aDϴ}gca:o|Bje'Ukk9~{9xw/ђZ2R[.ՙv^v|~Ծٽwڠ{:^Kzmw#\7֫~=9>78@+F/ϟ~$ݧ_iQ@Z5Q0 !sb6Uq4v4 :#$]7dк5m.F UI fǵY08]>!uucb/49OC4mA,! `Dӑ=Wi|(l%XE;G¦wp3Ly( uk]@ZGmӔ1#Z3z#yњȣNT;!l!ӁϤ S!ʜjVת E|71uIdq?D{xUͣ-`?)sk{v.rY0m^eL>QP7@dz|&NT|xIbUǚT<Gr:XGCãܲ}ȯ'e59*#Lv 򏉷x[[xKw[3ؒ,4E&Sܯ5.]Z`t 7=7Q_+i:^iN`DKT½]̰ ؠ&%VIO*:!qh(fԘ}B+dzr} ȱ=Z=7d;=32262؆Il4yɴX"nɑB} {IJLZ)'UÃ: S4i.w14xWrV?Z^e(l@(2C#fBC(6;TwHiWV+ۓxjk#0^QHa&5DdfiVL`a!'L֪OÈADcV3B.j3,>5 *FÄj+Y{E!_Fq|e% پOkU9ޚ<*5rW# C&;+9bca}+Vf-"__Zj.e_m,Ŭ7 ȃQ"j xJgP .hxmrN̿wbcQ?|։)W%b49q䍼h+Ozܵ"C+"T` کAT,7Ls ?9CwSj`ljcrŀ:zQ)X5Q: KضżQ®"oT3Y;])>̨dk!z,Z{-a,&&Z+):BEUȮ2n92Ӳ(EO"fxg +c 6bԥzY(ڥTK.4BΊbtuٝowh G(Me!c8@`i:ˆ9$ioY mYԬjrd*י QRprmRY _&BxI2^Stm@16<q%yFk+&3,D*_Ziꎹl9$S3^&l q C$B$74ؒɈ=oә{9v|@x&JuGSqmn!y[Rif#dFXaq[/ D#Ӷ#843`{Ww EapWf/r&"+Qlʍr2Xnu`^]$u^-.1ivDau]vx)X㗶xGocRS8N[/1r"\"dk}# i)0ZHₐ jA[0kʮ9<!_U}偌x?(kBq{%T>rR?6ϩt €;ⒽjYUBk qof),BR᲍Ḧ́>wkvnk?sF7>D (i9׃"9Ӧ6^A-D)4ZJARrl8 j{T&0Ty7e_uJޭm4cVzͺվLj_:eeR{3=@3 LkV[51b[o%TbkOzL,6/sr{9-ԭW\׏k+4BVH?G(Qi[ dԔ{wAL0JI˅mrP\{<;. <: &BunbAfB+ L@/GẔpH22PJԱ݆lE30n8d_Tl4z&T͵jS m0:2p5@pC9zVS@"=m un[rm5 rZǔ13lzM:mںmۛբȫQ6ƍTk_ЩΏ"hfQ## S'>lm[*rȬLhd}UcuXC@8?pYu3~.#5}k&m= ޻wGխCbG>y[Eydʥ$VUaz5Ȳk@uQ5銥x۴iQ`p m"M=$uC]Ѹ0 )m[PS!26Gnb%o.dq@fhHZ2PRN]`8!ta\J\'ْآCw)@XI,{6M@mX#UllXm6h˄ͬ27WtAouqZP=!P2S߼+IˈPeJ=!~:}N8 FoO(312t q='ƺj|}:@+f~5@Y:4@fT3qp+O|=aIROxɶk3WI;\̸' 9ǔlݢRg'V ٞvΆLv79Xec?丝t\$KfVN Gc8rfө>ݺ%4/#0%ػ䀎7"N'cʦs), s&L?ɔRO).Ƌ'5LN;s-ojMVzxdG(њzzxdOA4Zaxm<<}r=;zwoN(~sߝaQ_}{/R>qNAl9/%TJ9>;&VlĻ.>DO/I AϜOXW)\OݷNbl>նcJ>0ƨTK85׍>ʸB4,q9RQx DIS Jy/SoK ^1lɻ2~tM}s8} Ow9)P|*_66P˥$"Y#Dڗ?#je O ^>=U_0Wӟ/Kwjq`U? b`1V(̣ &6KEn56Iں@ſlӨb#8 IsDheKC  M j'Ș8MMC$i>yC'HWNjB"cTNkA-S]Ȇ|m44;Cܖ720 ۅpvR=j?"GNk(dׄ<`y~ݮ7Rln{Ҽ_5% "XVuX$1RT.2f4iHF44?lWq$7`al`H#{QE 9O_@0GnKhlM@07qIX7GeN\]g[4SlTauW橵aL{]:˧ЊەC2nY3f6<<\8 6: MX&%Ĺ\Aµ?˲7 }1U'tA:B9^; ;&X@z5i?#̎o޷oR"äm*XJ.Eԟz>m6´qT2N"㭿^[>o:;WIfJ4 ˿|6绹ڿSw9q}Ud=Q}~@2ecf˼ 2+Զ=sPuل >O6 V6Ʀm~@K0|bq >Av`oq|e3GXVC C_7eܰOCL$Bn~,t{ٻ8O]wܱxtx~,F=Zd%#\'}Pՙ5~'6"Ό)2!X")m3)N,~S^iX%}Ud BMqAx(/L/JK? 14PS͒s>&M;R_zъ*Jo} j@UYW糟#m$Yzm:~Y%)d;r,xRս ‡睁CR4h$Ӯx׵8ШyS:||\U{x7ړ&3@ztC&~3N@Z,A<\o"pfG [ * Lu8 )ʏy%0rۥ',#q,*Huy=*Q*zP; hhjq2kFu:ozhf^V%p]WL <֋ͧq9 $qN+Dc"z8 {`:??`R{ xNVxw< b}?}^tf/1j{)5_D#RTP >!@ɭ|jQwQY[)>"V]NM-mhuvTCYuo]&\М<ș7P˼I<ᶲ=1mBC|r{'F5$8Zc*=K IO.$"GL5΃œ;z?H\]uY3wtǂ1Fo4>ns qV2NGUp:<05a)s< 뾡yp1VJaKm, ?L-ߌݖ‹J2c߾DMAM_4G*պl_ P*SVe)7j ZЍnѼUdp&OruI£=xPgB3RK]7=b Y0ɬO+끳&=r+m<}|R%1K2^E =2o='#rlξ<|+$`[orY mU1bT\:R/ 0.w}‡x^Qd;YnX-9/&@Z6YKR]\">y?#q}ǁx`s[?A\t\T #DÐC'ms9S;"aN ?gPTH$r{KD.'2`UL:YIUf\ka`y;w\a8X$b>_4uZ|v5l9ƶHs\Dr\*z5ȄFBoϲ@GZ0x%39y}* lLlp7] TUhl lӾUX>:*_endstream endobj 21365 0 obj <> endobj 21366 0 obj <> endobj 21367 0 obj <> endobj 21368 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21369 0 obj <> stream H@*8}endstream endobj 21370 0 obj <> stream JFIF,,AdobedC     $''''$25552;;;;;;;;;; ,,"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?]-7X &Dӷۛa/vY@npkw7NX3!YUϒփ:[,>6cf*WFep߻Y/k{m{y6I%qٛe8Xayk]x5Æ٬l^wmZGp<*S0EֲP v+^Ҭcs}7v.#ȎYį+U {s\9-=&?}1::#>!B?y/lEkyVXL56X0|Ll1ǸN"G5iil6'_YTdtLCdk~ȯf> stream JFIFDAdobedC     $''''$25552;;;;;;;;;; D"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?TI$O Audʌ'I', m4Nru20='R;&IQ$v Os$HY?̟ BG-"$w-BPGi%:I 3۔L??ݖ*`дƺJ{m`y~t:;XDj~ ~N\O " U@@ك|XJ[DI BI#rI$I$I$I!d2~J% '_2O'U(L?Wj[VI$JQ ;)IJh{)  ;S'DAA ]xjSDG %`w44CDޜGLAʒHw6~JF$᪵Wm)g#梒I"0)$Zp);KO*~>)\c WaF^ `aIGø($I dAhLF?5M$;{!pJB%vA> g-oPF4ޣSI$I$͟[ ?2Ua3!%I$H-9UļƤR7 ju(.2JoL!;HxB@?Dvj~m.1Kv|ODI$DNweT5V*m4,|RI$0T t ~*6[Z}F~){!'_ܢ+sdPD NI$H9ИUjJvCI( @N DO--M8H> @H2$I$PjTj>% ?%^8{OjPI$BC{jN:TΙxs, xL9 s|kwhZCg^JxI$TPG$\$I$DS8 4h\L!tI$I @$B=@) hL% A"[πKq o>#g o o o>:I$J<hpI$nQ)$I):I$I$J.Dx M:J0I'$D' SI$I$ &Do:IIC# jO) m:TmR-!-'BI$J.DRg I&) `TI$wN2Z$AI$I$I$LBEHp$LS$t%Z'NI$I$2:IR$ZƿFuKX%*I$I$(R*M:ItDžendstream endobj 21372 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21373 0 obj <> stream JFIF11AdobedC     $''''$25552;;;;;;;;;; 11"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?Yor_or_or_orIh,~ -$Z=Wt+HoeKGK] Yi$Bz,Ih_%Ъ]K}4Â\b'hޘq]<˖$I$endstream endobj 21374 0 obj <> stream JFIFAdobedC =< }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?|FMqmmmYrvQHgٗߤ ?e?Of_A~*ݎq+ Q$ۓQN{^cAt*;Ob8# cw9$ ] .KRkGׇk_] fxéق%l =k`֭XwnsbnVV9X y03jf&v6]{V;ՓZmԃE5|rw:ƺ{0^3Jw=N @4_{!ј^D!d.0mYk u˨tmŽl9 kdηg ܌~XRQ $,9X%vNk> a} ,6&#ø' 3cWgzv[7)weSό^Y/uԈ`wtC2tK9 ixvwUչ]za=L S:x*h7k h~rֲ@]!j_ |Jt-ݚ3ۨeu> -VkYa9vP+ԍ#E* _endstream endobj 21375 0 obj <> stream JFIF/0AdobedC     $''''$25552;;;;;;;;;; 0/"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?NԾC%s'KOܜu̞-<~.òέw%e_%I-^'ſu_%I-^/-%CJ,ԒIjo*sWfKWo+K;WЎ/_`*8ӌv{KI_endstream endobj 21376 0 obj <> stream JFIFAdobedC     $''''$25552;;;;;;;;;; "  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?TI$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$IW3г?M/S7 ?3г?M/S7 ?3г?M/S7 ?3г?M/S7 ?3г?M/S7 ?3г?M/S7 ?3г?M/S7 ?3г?M/S7 ?3г?Mcu2[^X vH㋏pl㋏pl=ܺ^ީc m 5BI$I$i$I$I$KϿOO\K~s+I$K dہ^.~7s,l@ E2p͎k(9#sC{vLLުUumƷcw4mh-04ZC2~nאy mU-ojhȰcٌ}8mLn?Y]`/ Y?NWtlv;[mvm*7:I$I$Iy)#7UK2$Ern$ %kI$:SC~ƍ`o+Ǽc"VJTq~G}ρ[s'N-^,QQ&:ۍY=ȇXJZՕ ,'BӺv@]k12j,FGeI$I$+S37A)}SW+]$I$ OћGm qP+YT{CjƱ#sUO5Uc49]é㱏gJĺ? 'py!}a;NB$I$I%W ll k<{nt*!z?N`I$IcukH;ֱ f}{ǂ.;z-V`OG~5/n;N1P^;{ZjϚFoZ!<*K:Υu]f"CN4-?I$KϿOOX>MN`A}SW+]$I$9;\zz/OS\YV.Pe .:6>C+K2Y{A-mϻ*/3y5 ]Qen#󼖣>t}*on@a$BЪonlma"$KϿONXqM2Ā'TרSW+]$I$?OS^M5osnk}8%ǙzM u6n>s2 z'Oc{X M.qk>擪+:v3K`,5a. ܰObΏ^3zNoA`+gn(Һ}xlS[eOsk%n.X^ּZ|ZuϿOOX%ϐ is1Q ~s+I$K*E4Yc2eXYu*_lf'Xk;FH'Eg[Ǯ+UVʞ`:ߢiίURZZ⫻.#(Sh8n,ɯ5lj/=~ުN{k?9ܳeCuBzhtIYns6i =ͥ4d`]+67sCF, bs~UX ,|`x'_Q= &%P^O_ĭtI$\D'@I3fz5ZG{ bԫ=Zq쌇W^>Kmޡ6m6  #ѧKXma%$jͿ$I$s0GvUs3p9d~X᫄q=m>?\9ab6:#|;X/PVI$I,z8p˪}*3H:oT&9dԵhX(OL:.^)wa쵮i9?I~K+yӏ;i,!pӧ#S -hkN'Uuep;\t$I$^=xT7VƖG*+S7N4{ ZL5 %Q >s+I$H-s s:$fcF'ߕs[:lix ϟue<6\ >idKH"59)Cm>㵭IoaXf@y dsX$G*I$Kz{jf mm ẗVb.?Ʇ{wV_CTB%kI$mos{Ǩ4 v:5ԪybVn)$x.%rmh4nO;#eGw;ǤݍLJ茨LQilU[gh&=#c̛Yiv2sp'HFt{NMX:J!CZUVR)}64Ay Vz?>꽧ޡ&kXrG%G #^1[R{4I]]-n=&Ix+tQV5~#k$Qb.?ꞱKZZH&'o/PVI$I*Wl$Ao&[SFQ~sa$'wꓩ9n Sz5%H2tZ#Wz8GX%u]uW],,5z]k`wVLml7kd=][ Ypuϲ!L4ƨVXֈI>*i!+{&Su^Fh6S^\M6Z]{wI*ȡwn8k \X!&{+Ns}_Йh}= ;De6WV>ӫ͌kZS/HqcI.uKޙNLCÍl.۠,X/ٵ\*&\Y.8q0Ff32FȰ=7D-{t I$KϿOOXl.ŻHi"Hiytk&;QVI$I/?N3{ë/A"ʞ-;X4YOY{1 6bf(qvֶG0ȏȣnvׇ9hheGp`uO4cP][\ZKb*`{tP־̖ZْݻÚHn݄# fMl˷ifi>(Qi}aikyatUf?ٱ4;@%8VI$I%X .~ uascZ$NKW}SW+]$I$?9Y>\ ~>rUd+ݣC-2Bv`.ݡ4?\=c V GGjT9JI$I%xMO{#T~g2 &[>L)]_ 顎 mOq,uw;$4ɒpi ^&NMϹ,Mz~!6H VW=*ښk-h}cZDL]>O}|ΗNs2;kosO?u$I$^}0?zzä\ü1^$jwnT9JI$I%]W]yKVI[3.gv?uZ8zcmy*'wco׏x}l|yޛxk|yޜ}p߫6o߫]w}l9WmsLV$$I$^.?Ʇpl%q^ 9T%kI$TL"n:y.33]%^W-3a;50}W7]hòdq Hrph~(}`6@ 8x9SsYh;&@?]pw{rtI$^}0?zĢis1 fH<}%kI$ajtcNC=GH-huWXm״v-^YSXk!$ e_oOķ)oW8K<\މN@fLWwҫ`qsfF?TOcanD8Ȭ-aَ^V j@=H-+gͰ{rI$^}0?zᆗ!c@xgQVI$I/CZ=In?F8}>=\L){q.p-vk|a^m$8{<Ԯu{Fl~@t[=\qP%з2$WsyaqZIS!k2+_ޒI$Iy)%VA}2}۩BC'0?⿉Z$I$Z~nx TXjc78 xo$zys^/bWH [3ysMzp<>Kmآau:4gl%3ck]WTο,zn"7{ eY}MX\li|N'QmǮiqnp#~zI$I%X e%T9JI$I%m{DUA-u#fV%lC\٣w 4[;2KB^9< Yyc6Z\t1z}KVӵ;Xw=QkH+N#arO6T,с'WK>J;ظ*K׽$I$,SS2%kI$qk`xju]@.^ pTU3jH+d5۵njgh@ԭ-:gRˤdSPƾI5D9٢)qư<+>  #p}W=.qm5 qDL*mK׽I$+S2%kI$r3x$lZ_YjU\\rsw$֑(~VIf^p&,f֔)~8^QDՠ E`a%w+fxhn4oKWA ˆ`׍FoqMI^ӡ}\ul_u!km{K}-2[|W\I$KϿOO\K>s+I$K~6ɹ@::]Hˈ4vzmѿCry-W>wGgr=gddcg[$S,m2[%A\`|F'X;l, Ä:h1_Qmf_Lǒ_g޹ ߣDu$i?Zb~2xJI$`qT̤C'0?⿉Z$I$I$I$I$I$,SS0%kI$ ?MK蚗05/aj_`DԾ}R& ?MK蚗05/aj_`DԾ}R& ?MY}S/i.h'__ç}UӅMT1l5 I$I m { Kճ ka/Uf5ݷm s @TޫKu5Zo/Q["F8{'wo-֑`Ku>/'2I$3UXJ'j$I$~rq(?y:n$3N߁߉?ܤ2VtOP?ܥ^f=qAGI$I%C<~*% O;>$I$ Qi7K=LoLcY0c_4Τ1$F<9)j{xiI$I*9% G|RI$Ia 턆#Mk I/(|Psg"2?jI$?H> '|I$Icp"~iiDFC 3IFlH\!~iI$?H>0+2߂"I$I,&Wj=R N;k5($#bӷI$I*#>ArSI$I% ml8d"1> IB"I$J@xQjSI$I% I!O(otGFP"VI$I.QfI$ISڔ% AJ [O[J[O[O", I$I![J hI$I tO)[@tI$IϤB+>RI$I$(JP I$I%ЈtI$CH$RRI$I$I$]dc$I$endstream endobj 21377 0 obj <> stream JFIFAdobedC !! }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?WQMGjC6tCZB;oy-N\-GE1ZFX*r.V[YfmCoq.m'߉>_ xC]&$/4~]%dudw 08?@+M׌x.fSkn']~"'+’3myewO`n&> gt5 ݶ`)qVV3#bwv>e4l#&9JHL׉ (gց4D\,}2ƿL#B>'~Ͼ)H.Q6os>dI|%\s2k㏉<!pпak6$(T r99㟈~#Tks oOٳP~_n+K@5_ ^xv(53UԮ.tDK0:G ]O*sKםCYohXQZUendstream endobj 21378 0 obj <> stream JFIFiPAdobedC     $''''$25552;;;;;;;;;; Pi"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?TI$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I${-mń;h?u)z+OKA_^w sWn&t4\ۧI?M/W;iz+OKA_^w sWn&t4\ۧI?M/W;iz+OKA_^w ^2:f.k _q Up_n7ۍt, sX 5#V@+`{>m6?Mfg^oۇIfg^oۇIfg^oۇIfg^oۇIfg^oۇIfg^oۇIfgI$ğ)$I$I$I$I$~WYTEd\*k{ >%Ei-#h'Z*Ma$I$I$I$I$c(7$5CYnFe 9sZd'7u`, wo}%s;ڽ?D] >+Nia85HY,0;H}IZ$c0v{Գo9>U"ֽ-&Ky;kޓ"~x /<̮+L5Ղ7nL]$Ibn. ^X-aO~EV oy{Cd4@ о /媒o?oVI$I$I$I$IV?OSSu*7n,=bmb5.!SU{7xZN_cj紹NxYUqnC p i$%UgTkKC \GgZȫ*kݵ6ܛ ˧ꭧ2(ƀבےG#g2k]mȝN%> vEaղ s*cP[,lc,t\^Mh> Mn?u{ \:Tc_UuVsOn 7u|jӎhvLN¼PG'Ibn/?NJ`A=φ`^[_-T{KZ%ѩcz_꽔1Oq 5uKWA;OkCni.Bԯ 6YLhBί7S*s\&ckuy4"nƇø:Dl0aJ).9-k,a)z?I$c(7$5Y\]' "}e7t_Dkqr/Ujc^>-kRٙ_VF[m2\@ao]Ž)`c& qϒ!_gP\&ϤZ }N A1UU?~rIWmԷEVLoilD,ݝsp>X4nuBͿ[eW-nc1K,kvmsNDלl~v\@g9Ō|dq:gIXtdoF+MYT`Iw%gKչWmNc4ďvuXYCl ڽ qh{fuoN `nGR,el:h ?u-qsnsN\~c2~Ho{;v + v߫/3Zصq?|G[ 顄i^~0}([$I,fRDZK C &!q;tƩ!z*a;4|B00ce, tnlhc]?)Ǯր}iclܵAPvmWY1l}=.`'$aj@0em0,l}ga=[Ţ@ G@B(Y`! S7`1ُS]|&tޟ[ƩC3+0-_eLu=kGI%B,ca0vTW7LszoOߜRUG-hu#+zv}c &#vUo>k; 5pF2ݵh۳ !IlcHTqj˨| \Bq0jm aqphPbdd.ָTopۻC jGd(hmxo (p*8)CdnL絏 {xԦWI$X=mObΩoJcZ7ɀO*O_X>Zsz%7{U:.z{j7Wf<"]pPe7k=u|\ = qbBz3#~>A敝w ެ7K-oL}6YU{E/e͉2ۖI$K?TœR2'qh-d>˺eU O,u=K 7k,_5bc+ݱvI 1RXL8zK3-Sh>!?`iadӃN[U@4`$8W龫m>p]W0]KHkZxϬE?uᚿUGHd &Cb5C==na{7-.<"U.]GWgQ`{R\̓ЈKwşApX {~?KɁ>I^[_-T{KZz[KթՇi¿s)` w%I<_E3ӜDqZX7tsQeR?u*x:oI`#')~`sOo<|C%8 qTXMY.];UO *Xsz>DW*5HSK/*Kk0I"]?Cu $I,61g, mnU p#^cIeH`#$ < #Tuu 5~FKK@ o-]:Nڣ[qv>ֱ߫6ToK4^~nSS{AUdQ:\/RgQ%cd>ɴᪿuQtoYI$/ ?0mg̦\A.{^[_-T{KZ9ӕ3i9UϨQnwwvVV\FoEoHsHemW2 {Q{\Υ*ڛTex=]7TYS68w-Mjk ʢz^3㪫@{:VgM~Ckƶ]w+;8eَ16@% ׋{3.ʖsZt:v@|-v5ۘ>:kZw?פI$z?TŜū^AoN޲hoD-h+}f$fxD˜f]wjr]1m͏kp/ jiw?9ۈWmVm~Ml\6ިb'}]wҪ[?^Tܚw>pԪὺ>ɴᪿu<Ϝe{Z i }I,_:ap 0= |6B/Jh-XI$qʡy5X#kh!|89cS$WXy3ݭEĪ$KI$I`?9xlf5IVַkd L[;op8{ϹZX:bT*c_#]U6HCHU?N%Ԋ!c$v`d?Ա~݅qa-ZDZꮚUM c5p{^c%qd_OOɴ]H;{Ou#3"U=prkz?NR,5}8%?%zosW1}mvtFR7<($~WYT:,hs 4T>*Y$q#Pt[_-T{KZ90 X8Y,v]_2VʚCs=969Z`WtH.`.ig9UIv]&cw#u-&^vw2æ:"E-t{ xBV״Œ VR֤I$z?TŜKO:?I$I$I$KwşApxoae54 - ,izoOߜRUG-h点ޕmc1`wLHsN*A=nQCcx!|aatbQǠcpîAG UEx \7_)A98YuWJ_2I4vnpk]{XsCQO`tRv+.K\u<4­"Y.spD7 _q &Z`"UAHn>RI$X=mObI%*uV6}&Gu4\mQsmƲX =#Q~sZat<L9,5Gy ݻ:[4)9dvCxP"Q@к%ypѻD}Ś9ތI$ğo I%*a2t,ʡ3# 2ޱ}kW=ͭuݴr-=ZXl k,pv{Dcu~>LT[Q"4wKUAmk p?|e\vH$ٿk%5k!c6ݯ. aܶiS\}^~3TK\fH=|ՌNc=:AuHb:RwH:ce:Ƶnp{6ĺuIiOk`v;zn) dM^y w^ּw: w}inꝴO!_gP\ݐZ_:cYE!nvC ~ /媒o?oVIR_g-ioW>I+88O̳hэN]4U]MQI$I$c(7$5k[ĵ_&c^]Nv(I$tӇws2s^,Ůh0fGVvA}[ǔ|TOQ.vA1'OQK,5,/d:5RG"vZ3v5iwgO$ܚ`; y < VW`-^h3X,iõD'Q=K*}pxqb>)P8[7JlsMV4Ŏ-wcT*>'c>?Et+S}&]c(s^NI$JꚬGTrI$zV}Ջ+؃h>}bc,Vfǂ"kBzƏIH<"}8Hz[z$*o6pwstC7m8C@1̪BDH4':%=*&FAw?c1yj. 0XĂr'%O^GVfv|[+,fhă q"tK E Ze/9j6[Մ.|b֟}`&Hr&Q?EC z >W&}7[3 ;c~,w]f&>owA_ynI,_cn6[`At)Nա#M9j6[Յ363쵟sy5I鑏+6JnOHk2r/kqa ͟0NW?mˡAd7]8 XtLLÔۘX3 M֘>sϒmո8j$4)e$I$3E+7] kW0>n)u]p2hqSǁ-+cZzt}p,vQih7M|5^[_-T{KZYmĤW892%E$ޕ4{keS/472pU㹯55q ^::U5#qK\c] 6|,Hėw?Ha׋H`cG T3_GDI$I%}zNN/+[om.,-xu{AەgoV@#)CSKD|B:[`\EyX +}X1X7/E{vONDT[ٵt2>Wںwtӑmw5\31.gTͣ]˯`;xv+#_U忝t[=''Z̶8쪧L9Z22́]7] ͤLFqmt@tO<Ì(95ebORI%{3~sI1wǷ] KwşAp8߮0K|ĥyym> >+ /媒^6M6`[>ʳ.k$['#o;#GoNRƣ.MlCaf: @\2Aewnu,.~Gm6~v[43_GDI$I%J$6 HjqW:W`G/Ɨ6a>}y,Ac%ﷃ>!cFE 0gVM.-\{e1?=]G2-oc Tk85R~z.f6[ŘZȒG-W:֜p]88?ȳRBtۈ2K͙8n{q?;o wJckwKÈ.vd?Qsc0L-ĒScmÚd.ǸAsA#B!_gP\&ﴴ48֓d}V_U%_jLS'G99 pLv`ى7۫Lrg.[v-hutܞ~dX1^=^Ϭ]Ctc\yV:uƼۊo83IZ+;1ީVFN06qWn_n7I$0~V7nQvk_܎\7t~:e t̾ȫ#'Ÿٵgn!z>^66uUe9YM;k#8. %$Y:xqYϋ-\N.{!-z:[+/Fkڝ`hv++vhCݛ@ְpF #w /ZK$9o7~C߇[^O{)¦έM͘?›-?+ueN-A\;oMGUofzc hX~֧A'jU`^a6+S gwb wşApxkm.p%@AK7IЍhDi9j9\Yi[}Ӥ8{? I%}YPwUskm?^5-70|&[KGm KC~KO?N92ig^dy!O}FEp6M{w 21?zI$KYeme]չոwi-?߬=Kg}ʯ2XG!+_}q35pg&zo':r:f>{c9M˴ VAeV ۵_5ϷdKJnigY +[G+O`n}uLai2Pj,m~}&9À9_.k}Kl c:#uʅj+ R3)/hwWӛq?MP?mϗ ˪i]uԲ[Xuᵿ/[ؽWj~nGgca?fU63[,/>|FX[+, cp}n-pSIqI>kѾ /媒/s5eGvUqˏ]+ZZ |`8j=wyT]T?]'__2hmicC:'trQU7 k6 i ]3#ͫ}p$r}r ,9B7F⋁f{3$cz_qswݠ{[!wUb"8$/ ?ԗV_U%_j $&'?S.~WIs s- |i*_O?.RWb`ug̷W}D=Cuޤr(ɳu,閂v71 DP^-u'2zqX5-Gy6tg?$I$c(Tp!a]:6זt}Qn[KIULp]Pxr0L_Yi:*ާbʞXÚ`'KH7>k\_u[uks զa:u^Vzt{h|n12՛$}9'ͯ>V:f0ZZy]} q{-̒8D}%l l{}6=?tX[+,jԗV_U%_jIjtH˸h?尒I.w5}sV\Qx#s*"{*]cHwEՏ{~t*}/5qo1ƒk^ZA?I$JꚬBX-j+smχ7@ nOQ_U2 54HRը֢.Zc=z[d;_Pk;VgReև4YXnŽ`xl L?G׆GOc,mfkY>a+2o$l~kF.nh*i$~WYTV_U%_jZ;:.ECPm I$3:n}]zgP;\,F֟h I$I$IV?OSUD*Bh+.﫸V-O0h;XӦV cqUsp13*uv<.tlOxxX&> kOefam=}5kZhfKwşM^z9j6[ՄI$I$I$I$@Oi!@rxr]?(ӿ5ro=;Wjo=;Wjo=;WjG_dtW.=4 q5T -DT*=9~OX LZңtF=c"?j_Z/-K~7kc8He~_:_ħz}UӇUT1l5VAo{=f0 ?MK蚗05/aj_`DԾ}R& ?MK蚗05/aj_`Da$I%/⤚783ktƞ gITo}:Bv47dmBs,ɚ5Z8.<I3;_gBP,sH k]M$I$I$I$I%%$ Z gbg;24vݚB Ϥ~Hձ~䨿De*A! )pӢK^ I/|*τh0ς*H7ߚ-v~kE$I$ -{r} tI$I$?䜘B} :)֦v[ICj[QI8Ġ[vwo1>A= T5h_y{ ]t%q$Ae/ʨP0ς*HWrߚH}䈒I -cvoʾޥ{-1Iendstream endobj 21379 0 obj <> stream JFIFiPAdobedC     $''''$25552;;;;;;;;;; Pi"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?TI$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$IW33?M/S7?33?M/S7?33?M/S7?33?M/S7?g[]zM.?o%.?o.gt:kpa2Fr> H_evWULu]ɽL K@p4L K@p4L K@p4L K@p4L K@p4L K@p4L KBp4L K@p4L K@p4L KBp5W[^/k _q Spn7'ۍzzeF}Gh$s`s[sX;D0T=L,K@p4L KBp5a$I$\o?ֳ5q)/QJh-XIRUf[p\=wuhкxGʧ'x;la9( ef0ًcmc\X\ 9d-ayk$Uu ۖ ێ\A۩"FSI$Kw ϒ]bRU>_a$I$I$\g??#W/Z_I`T,VH ]T9~rIWmԷE ,LVK?r8Z tnmXKV}S^\m1哺50u8 |dO`~vx·*Wks6 ө.)W5>Kci甛ױM! |6Z6?t>sߪO7Ǧ~% AwY >Dk#X:6+{jiop{.Pi6n\}jgWMs(#/c]@?kvw({r tb/fv'BޡMwYV%\wbUWL NeBQ}tl; WB*+ X&{" 9 VVz:^ۺ6}%c_??m$K3uSFCC1ߗsK0Zԫy/ Ek:J2KCgj/QJh-XIbd YT}f'~6%;@pʶOֶݶ#F(~F._?Ӵ M/k57Uuow5KѲ@-آ9tt,׈6?Z,c 'PrY!dAư4 oRl{#AVZAcead4u.ɏNMt |*rrW99;I"abu.VUb ]Ō?ճ=!ӑoM3 kv;5ebkԼuNϼ}![z'R]bRU>_aBʙk6);fZ`S^[]ml>#Ĭ:~EٷW1ku_YhI1w<Iq`l\OlvNJF{㠏_9k6[Մuw dKcd7uN@&VI*5eԏPU7: ?ynThh! lbNddS6X4hԪkiig8.pWOij22 Hq'.WɴR͢aŮ~PtI$' T u sE,FA tNa.?1gt)*BꂰN.u*p4I;#4W},8y'~lYk:Uk37i[Q-[-4V h`;Yg$?ozf!v}nS{lߥ¶KGgbp=64` gPw﯑Ӿs/宒o?oV\鹿`X>Ж!~m9w짻%Y[XCl/ݾH{C?f3igHw S3%5ێEn's]_]YH~@v[(ui}MӇیXۚWPz67hq s2&y.Uf1sUn-. GtgSϪu;W8 [Xv:9ОP,N|9eex"fu<̌貲z s=An<#,{+}_MkXlԝΖ8Gu*5.Vsic `V_xC)ٱnK3+e$Ib}pAp@:LK,Kt wA:#? Y}] JgЫ:$>L_yߑo}bi [Sxq>l| )ktkY\lW[.0\sKyk*|GPcc G~V3nP\ '$7<'찝{5w ۻ~ݸ OJh-XIceu.s(}`Om"NWv~Mv W; -]]R иow:-ljEn9mkX[[-_` L)>dyc]')G2L,739wz..!ވkk˚}(d⃝խU9'kdlک}Y﮺:i}$߬OiuUf[ ՉI7X RoXs許oI-jhۄzxQfh`k,/hwo1K+ًվϛi;>cU _< >j9XZ&MV55b}l.A5ʭc1@3\NJh-XIgǩ.2Ud/2 vހckl 'T.]Ulȵ>-2ec5[rC8amn5AXŇn泌/%ݶ,6a:+&>Y{,_Hn5 hqhvK7=kli5D f+<}\ݡ:Wz7ԥ`;^^ns6 2[+-ֵ?v@RS][O2k.y-;09j`cCjYf k9Uh{vu1˅O?_a1>C;ddս!r k*cZ F0V۹OtjonntͰDuqX}C`ikg^K?-t{KZU/kiuǛ]Cv@yxᕴEikcmͦ{=,n׵ͼ*dS6Ǘ0R>?zmg=g8lfu~b`uv6u׆_a%fstoT~T;$2\]OƯxʴhI %_ aAq^K?-t{KZ=eokl^I,| M.<+w k{EYpZ[@>PJWB*+ *Y6̼,v9ોJRLuĩ2CG⎸0Nsu {57jpZV3ee^_lVxmwtB,gX.[wLjC=6`[CL86p]5βv8wrr mn#ɥD&|A 'kV14 hcT+CIo`sn^ǹK/$yfy^K?-t{KZ%`t~+1ςg<<= :L !XŶͰΑk`+I$dRcK\@m7嬵n@gn)[Uz}Xtq*kw h}nDz\zlD~h wWiF|ϡWuAXU~ɉnLHr}Mc2"}kGg GSIoWzX#S3SwcO:vZ<ۡ^>=ޫIwk lƤA4RIqXEn[y ]׺_9k6[Մ5wȲ8Dqo3'Tz|~X.~?0,ӝhgȤ316Re3?޶_mH?*9c7;\Z%Ľ@5t}`%us-p$ ~RKk{@KmT[\5ۀ>?%t,zM*dk>-?X+]k D ΃%B/i4 wR @=iF|ϡWuAXQ{cK%PۋC]6yI ntz?ѳЈI$I./br-0 9"nɝ#_^K?-t{KZ 2%Oucc1P4~}k.'Z,ӳvfچ|bH;7|JI圜,is \Yɫw{OZ`dd>kØKst3}~;tmxNݺI ;߁ !Ok \6ޥNMWYx:i7WW쥍*hoCksiI^G5T~E4I$' T d48õwxK(mww f{õ]bRU>_a:c.A uA:ee{ٖ}fV _Im$I$K|\(sIU;̍Lvz/N`ߜUG-jK[1>2 ~ݱ| o~GOgH{s{XHpc[/<Ë?H7Up>eӛ>IsyesD]EyoӲC͍{XˤO.}O7f8W^VSԬnk5Cb[^oPĮ E"ۄpb>jQaunH.*ؙWne#q8>KkT(nUV]GRpH,,f&CՋvU^8h:mph$y]QI$X\?+_P\ ?O;51 >C;CzG,%_3U_PVYgcoc>N>; YQI$I%_C\.OS{}7]Ӵ`tzu:z/N`ߜUG-jK>Uk]f}.NCaDi$i߅ea}Rs߱s Ł{t O:PeX2l`68Y4?>΅~Uk7wI{2ΧkJX}"pZ8YMt+O}f']Բ21Եkkft*:?_\k"}gK?MevEʷ6Y_ZɍDdV[jL~+mZӲk[k_Y=ݺ;@]CxO SqakNg;]VDDI$' T hi I9>_Ȁ_ >>B>WB*+kw*}Ė4'2~ԭ W{\qZ$Hw`GJI$I%_C\._>\ ch1Z m{\d>:/OJh-XIy_ a[h.m(oPT1Ii3cc4 C 2Kp-5||@W9n8m{LG$ sh^FsG4{H"[5ӒRk""I$Ko $^l y%`y?1gt)*Bꂰ7WӲ]I.D:#^+_s[,&as;jyY^>zI$I$h5ճuӴoɨWn}-~+Ӿs/宒o?oV^ci3wݙa-{l?|7{w U[gPM~]cDKΐuWZմYꇴOW=:55>o( Rk`ͲUI5Y; ?Uu c*. ĭfeJZWv'Hī1We!hUfOɾ֖;OI8cOT9cXOcj$dY Utd6a`i֟K-PNJ.^5i>clױQoDI$Ib}pApX.4OAGd)eVڭH۷SI]bRU>_ab}gv7䴲?uG8tO>s8? +17zI$I$s\=ۄ s>6Pnvuq:9k6[Ѭ1XCZ$.O?? dV+od[ew>݇Pw7Q.bRM p#|KX/wi 0Yx~U-&jdU>mn KX1bl+s_ˍ[p:}oPڲ+pʭ۾4iPwE{s+Vˎm![=ޛ$1-.A!G+fJK,ec<:64;gEcSGNٷm</-q+hf"$I$>W^Q˥,6'%6Ysod:ܛݔl?;iqBŴZ;5'[gf-q΂OX0#(;gi+c?JQ\XO>\j´WSv;IRS\Al{nHἑe jcN4)I$>V^6~FD4H=N( *T`}{?z뛅UmVֳW׹"Lw t Oo10i&)߉l cm۲DA$4QxHtGt`ł6?wp4NI$![z178KH Tv4.?1gt),o׫>1pT2_RW7TFcq*ݏd =>kc1³qdock|$"caf_NFC0-sǸy >j kkUfAΨ-9Te ƀu>ٽ.鶫CML q׵Q=?rv6vKtt#F6ƇϹI$Ib}pApT<2.,F'|E֛\DGmF7uWə6ԕ u?AcY!yZ'P>rg`qv2֗3*#aKO>L=`DAI%np2+-6;DL$^K?-t֎q>6~FDDdz*QXV^%G,%C.Uf_M%y$^9h"z^z&+^}&,pc]E{ߢMncM; @) wpp,w 8v&MuZ^C^7uTQ %;c'\W|\bC?T9~rI`hgjI%Njh-@55I$I$I$I,Oׯ/>IwQg?﫡Ic}m_UzgI^gYQ=C/l]#dªEW8vgrBii :q'? _sxled4>CICS:ܮK[h\K>|.=;!WeՉ7Pu-^p$R_]%O%kSsn-4 h\"SI$I$I dbMU[9g>܆l&b8W/ T$3şФv^êSL3/Փv]]滩l1Շ] tOG,& 45o ɓzH.8Kxo@6q]ahi={~uտ=Rú.RIq_q/QKG8?#V"}̢.пrΝke4<YI$I$I$Is]ħ=`;+MD2-ve)cSŕd=$iׯ/>IwQg?﫡Ic}m_ͰU[qѠp꺛"TC8<Fו{?f~ܜqIw$I$/8? ?Iz/N`ߜY[F-;0cT:.) >I$I$I$I,?="ocUb׸hƴI;3Uq]K y4v{/{zSiccko ϒ]bRU:UK*unkXnʘ4~k@@T]~>9e-a|ChZƠ4~kѣiFW~gȷAXI$I$1yS/QJh-XI$I$I$I$YkW֪/3!vj*O]r릚rf6hpuMahtzhvEOq}A hcZ}pAyK#? Y}] JgЫ:$J05/aj_`DԾ}R& ?MK蚨uNӬLz8T?cO/+`[>ªZ+c[ kD'VRAo{=V' ?`DԾ}R& ?MK蚗05/aj_`DԾ}R& ?MK蚗05/aj_`D;}:R8FT>}R& ?MVI$I%K T(ZxFIdž9ȝ1I$I$I$I$HHAT+&OW$׹ܝ43Ɵ>gsgBP1~U%Xm~jyBӡJŠG noL^ւD&e 0LJ|HJ/v|R@ߚ-wp ԧI$I$I$IWvƵ:ਊwZĆ#a&#w<0~!P^gEXI/|GT:n_ IACrkmp߼m(-]<2{mvYzFU33P1g$BPѼ NI$I$I$Bٙ?zW'J?e$]&x;U@endstream endobj 21380 0 obj <> stream JFIFAdobedC <= }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?f_2xg@ ֧kE6{,`@E~|ZC`:o1M guНE%Q ֙BvG'Zg w_Ui'i}U?Jk>ҭmnBI/#vYUydFvB80N?N< M3~ҼQ/ d%e3i%!d}-ޓnXTMWlߣ}~c~c[9a05}z ygoOoK|asf?+o?ޣ}z4RýFmmn/gvĊ^{JC=[uvKe 44]`$g.r9~4_OO^u3~Hba"rώ~3~?sǾ΃hBI^mܗ3#&?y/V9%_W߶=ǕHϦIϨyo>b;'9:O5_Wo_4.WTwّAˁ_{Wj Af=klo j:?mkRh[^-H%nF,xxDH B5ϧGϧ_NWO;WԹ̼y~~ͳxK`oWV5s8eui@%BgX -jU{jZ7Pϰ(xK]j[HiYH9 q~mZ@[ _endstream endobj 21381 0 obj <> stream JFIF,.AdobedC     $''''$25552;;;;;;;;;; .,"  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?cuD}*A!KUǻz,ǪE5,fw;53#4Us,f5dܗ1.=. z`ůUw7u^?"w\Mk[ZzNK45nZF - Y)u]m-ǂg7QUْښqr[HeT=wr vG;G\XO/G׻}6ni3funר}nޟ: 6W8 > Ywtܯ7c<]NK[kkԞV.{z"2s{-V,y襥~'Fuhn S/Iq8N]טڲ^ױLŰ4I{wdǦ^EMǺWqk'߸`zmiZZ*;??b[Ix W_Sv zȮ#MAZe!n;j˰93a !LQCWӒt-j.oR'mޓIś> ߷wm>ޠ:ΚHuWܵг_gTQgnoz:W"m/Gk>Vapi >'ߵ}Hv?so%endstream endobj 21382 0 obj <> endobj 21383 0 obj <> stream H\j >wٜ%PrNReby6l*s)do݀@q;@ڂ.]bqi"w8=8YWȁf8}ކ3aK txg^삠+v!a{Bhk 5YliFe̓T?}YV-ަxBm̒N(}H)&,#o0endstream endobj 21384 0 obj <> stream HW{PT}. TTP/٦19cv=V8𡩒'Gʥ<:uJRf:}HJ}wO9'-y\rύ!!!!!3`knrZBz<3+A!1Q$A2cxb&bҐɘ Ldb0afbf#9E1x_#BY6|-"ucl"~$(!4U'DhBxQ4Bi4㋲<=,)JVK<)N%livy F\_v9% ؇oc/ncRR$I"(}mqfs|dvyYZ+u~&cG-5N PUJQX>ݞk:4G#ɑHsd8f;86:ڢQ~q%gDC̸ƪjR@wГ>iKtD+s@S#ooo|E} ۗӗ7ޕŽz {zx{<=WOMgFOrKG[cEZfSrksrR2E2\*rM.G2U0f+L4ȿwߘ0<sauꟋ6b|<[1>3 힠J-A_CcXQ&C9;Ba9@6Ũk| }Ս aP= sUqSZmj#dۈTbYMž& r* L2R4|@p5=-*P/T> Ӷ ! {*@KPZx"P'dQQ,o.J>F˫,K&IHRbdl^VŒA<1[jooYVM){8!K2{3˩%廆,>+I43J]EJ+Oaa>2ꞟTԘR/6A+N7ߩךWs[3W>f_~ q n %W([#g,F+'eVkke?n 6K3+e@+(QkT8}ַNF?CJ~vr Dc@f+,\+qIBcϠ.Ҡ}ElqK,uwby&7m,k[n*v1#(?F4/0ئw:[y`w8b7w#W0&ݥm9씥2Dib ҮV83mDgFe- &'yY[< ex_*"|rendstream endobj 21385 0 obj <> endobj 21386 0 obj <> endobj 21387 0 obj <> stream q /X1 Do Q q endstream endobj 21388 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 21389 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 21390 0 obj <> stream HWksܶ_NP'Iԏ$vcm Itw%W{db/p../YŇJ^|u[d4sIT.,`_.6b$G)޼6աܚPȡ.䶎^-%MaJ40'hN(f-:W yWcݘ-9;oߕSwbFv7a aR 8bߘC:eDai?W[x#p@%@W=LɚDZ W0/sllH+C8c.cb,dye)kg,czzzzzzzWzWzWzOi>Eԧ Q3D}Y>GQ5^5>,CLcۈ#1 e}̲B>,ĵ>fYqY>p-G\cB\c\e!rĵ>,ĵ>fYqY>p-G\cB\c\e!rĵ>ZP qYV,+TcB\c\+e! ĵ>,ĵ>fYqY>p@\cB\c\+e! ĵ>,ĵ>fYqY>p@\cH"1 e}̲B>,ĵ>fYqY>pD\cB\c\+e!Jĵ>,ĵ>fYqY>pD\cB\c\+e!Jĵ>ZP qYV,+T$ W2XkIYD:$M5Yn;#g\3hVti=23% ůoϖ_h$rE ZMhlHHh.3ԡ ( cT׷iʭa2t 9VMYl$\')49NDNEOrmlNq]nMq~ky찦'Q5?nЁ\Z7ݏ;<3dzi"OT'X< LrFGA.UJ!_ )l ,$R;Ѿ:z}9Rkn̖:45)&T@g/'@aUpP ^e ikӍr,0魇lCŸlU7Xnyyk7;>%X3˰'bHڨ?6_}K^ FA5@!}jV>[j2", zBex"Pr&z8MhjQfErB*~h3h{oT:)Dem?x/~qѭ"UTd q:Lmv@*P[ݳ==Җ 5VG{3p 5o/NJ{$eWc#} WKr*`/&qڐkpPٔp5^Iq9џIC{917TM+D >DKgWP̺{}~yo0༖)a2 LSz -Orfg/b%[y*1 B SRauBn]nyOdױ8b=<{m1.+ 9'wуC {o_˛&A,n}@)k,0:}S_Hj~k{SHf.RiSAG[[x:U힒2 m,WZlR6 COD]"qvEP#)1lv=כThš)WG4 yZ yC sO!$E~n-Y#;NsZMxfCgzX} .Ѫ]ݐJ*uNw+p 4S7jM1F"Gz1 xFҷ RB9koWzllD,gp Zl'o*RiCoo F4¸eQ߷ʢQq_ṋO\@ VwvAOn]6IښuW={W N()EZT4+}nuJ՜܅NXEʺ-S*24Fh8\lS=HϬ,&bl2SThjm T GEen[M77µ%C_Ç$tdыڊ [d,QYQ8  wZN[UHħR ex>z.фmުz{}S DakY Zf>t!&V:nV:u=S֜D()+p5U ^}y"^o3UFj5xOSxU15L Y5J̧L\)lR]ORC+"fB N zbsm8|m+A$)9Dۚ#_=6`kBO'SN37-IAghsoUm~zn.9:ȓxl΀ܜ{ԜIED܏d5lnez=L5IڴY.:հbT.ΰclr'=9yH(+cH[faNC5lN6PLX ̩ D]5zf)վF51E0Ɏkϴi|O,8ҟ% #M%$T3)t7׽9 #w:|L@+ksԥ~0`~s84Y_F=z$*kyN y敠d W5E+%djDIS4b59Ҝ2Ǎҡ`$u!;9AXbi\7Ilc,fNxtVWYÄ {.~F)Q`?%CSc [:!TXlW,ISG^Ƒ,pDSҝ[7Fj87!N A묕+́.YXw]pMJ=WoCH0fM̫ܱOT  pTuU>Bܵ~QQJrWyQA&YwF6P6#4r,>`P[՟̪I6窖>3Q}=M&HĀxMR_ib Ate/VyNyITcr3VRS?D5{WGKPεhb'Ers4vŋ E;#jMH$s(oɊ(N#,ʃ<(084F=Qҝ?];an S0ޱDs5C6*Wmv3 7 /D֥h SsE\lwPK~4K_G_7ntendstream endobj 21391 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21392 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21393 0 obj <> endobj 21394 0 obj <> endobj 21395 0 obj <> stream q /X1 Do Q q endstream endobj 21396 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 21397 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 21398 0 obj <> stream H[oV+t^>\& Pj;Z)goA }P#HUG>3>3>3>s>s KK+:0R[%LԘFZ1K)^jDS ZVjLjj=ZVjLjj=Z1ҫ`jFZ1ҫ`jHփQ`jHփS ZVj$S:ԈS+5tz1K(0Rc WSJ)^MmS+5J)^MmS+5@z5LԈS+5@z5LԘ0R# LԘ0Rc WSJmD0RcJQ`jƔN/5tzVjLjj#Z1ҫ`jFZ1ҫ`jH6Q`jH6S VjDS VjLjj#Z LԘFZ1K)UUE?',83M\tqVdlҕ]]> Դ5M.am*mq?z~_whMyz18\z]Zj}^n,R~I8}OR>ͦY;ᇕS5yV a6ɼ~xh:yC0 >p~z&͊#4__jNkg`>RWwp@k;~8~<}%;͜ ]3zOexnv9eɧP4Eb֧F 6f3ugyk&yi. Ďˣ^,õ]ׅh3SŇ=oOj/4E~!p9u[iA ɦi_{PlUƓոڛa=z//U6Kj@tJ շ0||e{w1|mS[ЪlWVn5W3|Q4'J7,[ݒ)R[q`^RcJ{I(r)/KރK)zARRc x{{1T=Ԙ^^jL/{z/5}SKjDK)z@RRc x{1TԘ^^jL/z/5}SK>K)zAƔQRc xG{1T#Ԙ^^jL/z/5}SK>K)zARRc xgRcJ{I({1*[UUM?HN&O_]ݢ1?ԏgs<+pPE_$idEnzÉdsiscy|ۖ4:ԭ]݆Vifr3x)AK Nnkv޵tkF'e6_fHV_:HdRSc;kOgح^,F]{[_ =0Kz\םyL$g?lXQ8`}Į:rt7z1f팏ּ{Bfx~k.kjg9]|kL:,Jڇay!IZ8bJ c=3*C+}24~'^ϣBc+*ʀW2)x+^*W U(xʫ^W*UI/j/1F^Ny9唗^^yyzARRc x{{1T=Ԙ^^jL/{z/5SK>K)%5@RRc x{1TԘ^^jL/z/5}SK>K)z@RRcJ{I({1T#Ԙ^^jL/z/5}Sez{~`!h޶E]@L;Bt[wx"-}93 .>]t]}P1Ms-躨tcZuQB4͵B4u+B4ueYv?/aXG`]\ &r K^/ LXqLd,<+˾7f Q_k2Xfw誩;- m*DͳDhO6=oƺ8(8 Ptl`iE+)d&m)\`<,'H zc;C+]R'&9Mxr.*U)]t\d) c P2QB8/xn3À8yBM߿nFrS뛦l!^.A5TҢ4@|[3#:;䭯$;٪;/ L$ԿC .[(O56{ԵR0noBE*f/ZwBPLNDwP8 ߡonyYuJ0?( a62Ы[LR@؅lFuf-.]cǩu53avW Tm$WM3A3ag>>Ow]#噠lx4X\٢J-G ៻u> D㑟i R2Nl2M[n+8"D!( M$[,V@4Fcuèn3W픤w2lwލ)dx04+fP:{Jp&)^xa,"YjY-1ed$_ہYp;OiƓkZ$S,ߓ_UU32vL_4(2t6ͼwSZX`'aG|wt|l1K=|%pƀyHJNv͢:pPOr^Kg9B ;?3 XIqz[mͥW11=7p *)0a5~RHChXs~FEA?;mZ٢Ә\#;2 $zkk''=Vpog~\FZE0 `% >>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21400 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21401 0 obj <> endobj 21402 0 obj <> endobj 21403 0 obj <> endobj 21404 0 obj <> stream q /X1 Do Q q endstream endobj 21405 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 21406 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 21407 0 obj <> stream H[o7WQzX Nz0 AcH^I ~3uUYR,4_g:E{O/B~忋vRg7Nde0"+zQӢN,/w߶/o7vw%nwoot,-6 (E1ETIl۳7۫͵8Lgm^uئ(]ʃnwGbAs8kdZξuqJ;o^ߞtvP!T9w_g2EI}ϫoF)H_+ĒmH*%Ǖ_,c&S&#F+K N5  {ךPqo{ø7Ľe[2-qow{G;ƽ#=q{ϸ}`>0qHG}$>q̸}fܓj&X;,I- Ec (&X+uBQXI- Ÿ'5LjV(=IaR5bP{Zäkbܓ&XI- Ÿ'5LjV(=IaR5bP{Zäkbܓ&X;,I- Ec (&X+uBQXI- Ÿ'LjV(=IeR5bP{ZˤkbܓZ&XI- Ÿ'LjV(=IeR5bP{ZˤkbܓZ&X;,I- Ec (&X+uBQXI- Ÿ'uLjV(=IcR5bP{ZǤkbܓ:&XI- Ÿ'uLjV(=IcR5bP{ZǤkbܓ:&X;,I- Ec (&X+uBq`WY 0ވ-Y朝PayY.6Zl>.('aBJ@氜oo˄iSvW[vm{[_7ȷW=%"6ɝv;e2 O~ܧeў=Q'j%JZйgwwZ~}lԙ$NN2Sxp"訄N7dIL"X6_eJv6mNgwW+{g³Z..ճϳϻ/NmdҖ"rrw\hlv"N^ƾ"GAg *מm]C;(3PV;DY(1rwZlSY9DeGgѬ)SO2)LEh|/#eAB՝H}Y}YG}!m|1;j̔3VUךRQzWTIXQ=}mf:(lNTju2VK+J!_.'D)gaP-/+J!_lQpzratpg_)A^:]'xG(k V!*Dj/3u(1)(DAǀv1|kf !:JAfBt0g);"&rrbL®Q9]9V35*}j{ڬUyEg+DV'jjMTUwjyYQ5WSٛQMfm.$ @:Rt.o*iպGmVT5;*nͪ֕Ufp0Sz%XQ.D.f+7erFbF2gi#ˑk㚱(h_ f[q_` lp _\[g %LG$2 q:>~.] &}+N?TB*t<킴3ܪB8| 4RӃu8}@>Vb_Y+ӴTմyxc@jZr';jt);Py78\~Hyh^rG;j;Е@$|ڃ |cf9>=T:=#~_|Е>) -IoCycZ^f@QG|gsHF4V)H0$6[tzYzau[ehOXqx޴][exZ1+^7I+x)vWޜbV4p>zVCWw~/ܴOy5n+H4iL34MQԈu_߳X"!Jv&zƑ;dL~$ZaI9vS"S '& ЯƷjj_V&}s~oBL;8F, Mɔ(7O;CK0ׯ1.'o/a+rBO>.q1v?ܵ}h Vy1?'0C0ib5D9>X?5ccc'?VO>z^#vEe'S|c3𦹘qF;L;:JG8ˊtF?&+Em3UGe܀qOYlE5hYlGP8p ڨ4^nfׇ21MЧC FaKx>V2J NR̠h͠;vE[vuXI(eH"G^9 _V>yWCv0 AlRhNH̯e"ʝ̱&Ys '1x>ڝz-pBtA!e;e4|sM.˄rn*yWr;tEoFG &î6ʮ]1]FNMMe!K$OŁr<"TsOle}޻HbG$v+Y vt=`"$,RLǫq# B}OeѾH^+VY*Ӗ ع:}ad74RD ޅxVŠ:Ns=.@\ a"ZOO8Gx:%sAqym(Pfq E(0;6mW;2&B/L[ܹ AmreFF #+aq5H;RHyP"Èl?_|tǘ=0: xǴ+@$(]H%@y䀠/2AFLV1Mi<[}ɥ`-#9EF|1jSa4ӱ@X2@&mt =A.]Eqf g ԭbNfQd{Az1:Sf!Sa~a$c_J`^q$pJi7OW`TKm$~ijA#VM 裦JnC(!A&sOv\eP?=djxUMscSnuz1]THY-aS6 2RڿV̘0QWQIyTeT rETת,pofKZ(hky䳊0Фdnb?m3{`K ˢ.T|uO>57̯Ffh$Cڕ]+9ˌJ_KAVp]y;vX*aMx }l?){ e\""̈K9ŷ^E+ʻnhW6Giķ&+^߯W@7DpGU$ϩ* fWXkƷ]8ۉkM*Ӛ)b*\=Mq6N"Z]n^DzDunD+Qv۶US3-aOҝ ǢQhunbRR2N%n/+cǹ'Ld~S agmr<ᔛ{ tv ilc@" ٟ0pQ)/BhDh"w+.\E#ɎO4xp+?OmK+X"ʣQ2E;v.ꏂ:+3c10> endobj 21409 0 obj <> endobj 21410 0 obj <> endobj 21411 0 obj <> endobj 21412 0 obj <> endobj 21413 0 obj <> stream q /X1 Do Q q endstream endobj 21414 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 21415 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 21416 0 obj <> stream HWێ6}WkxD.Eo߿IHĩIrЉ] f oF9u̚&Uȉ[7izoިTlYM}=V͗ǩmrhte[656K?RĿ֯1E8r:KT q9r 8E"R 9pb  YCVʰv)Cbԫ@bԫ@f@f@f@aԛ@aԛ@}ʨO)> ԧ4P1@}ƨ9>pb\K1`1kZ!QV1R Yq-ŐŨ\R Xk),F}ZŸbbUk)v4Z!+TO1`1BCVbb\K1d1jƵC>pf\K1`1k5Z!QV3R Yq-ŐŨ\R Xk),F}Z͸bbՌk)v Z!+TO1`1BCVbb\K1d1ƵC>pa\K1`1k Z!Q0R Yq-ŐŨ\kR Xk),F}Zøbb5k)vRƵCVbb\K1d)PKs&oQ,mtXH<,2of{,o_U1ˌ]yn?pOR J97>o^7JMw,k_l.e=;\ˇ}3r\ջoUQ /]/Tu7~lnl?.ǪNJvBC[yVͣYgBMO2"-xLudajYױ.FMYw8´&D,]W5vE߸tHGNIESeor&XBa8V7LZ;ڔ-'QÎo*-#h+F@N= .CLڒs"̸p쏬i>7Hop(O}nXuG_s^/_|bw:={p.1ZM;P:Mv<풟}QDTMZ#pIy!q!saYJiǫ/%EɆw?~˼ g;V{7,?ma40~άr W .UR6kBG-N 89<1S}X'lϲWt{`p0:u0pL.Ra_mlVKQ0ajZxbNQ uL>P)"տ0PUyj81.pj&Omb>&}CÕ":@Lڦ߄!wI^jO kGaSrR&a,YȚ%X"%r#k5 kb q95"Ir1P8/&Mc1cU41Z,fڨl*3(p_MZa'A ||}kwb@:{l$pݛ%Y9f">س՗#[q[1bW Wʝ"P!:Iwp)ǃT: 4jnnk3KʞPcmn3p#V. ༤lYZs^ѕVSV[0Zɶ5 4$z2~[Ğٟ+Q4ø8").! AT:-͖xoD&訢.T4Cmc _F T)iq+1كJQ$f" kPhO| PU,B J2(o͇',{+Ӝ!*LXR|7VpxӹugCJT@h:Gpd*1氽LNuNJڏznnYS)P߾}{z7WM> endstream endobj 21417 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21418 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21419 0 obj <> endobj 21420 0 obj <> stream q /X1 Do Q q endstream endobj 21421 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 21422 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 21423 0 obj <> stream HWn7}XMA $]OLF-isδ﷊d,gՇՇ:UwCϾWo~`}^5m202z͝b*v]#]#ٚ56~{jۮ?Wn_Wؼ\4 b-n,>Y+<[l -ssT<(.xdWʊDk;ޯou\ryeOwmn4W+\?ÿ'nXʂ_wۄ̰i7PcBBW҆s PR֨†(KJRK^U^U5^W5^W5^W T T-V-V-VUU[}[o mž%ط{O{O@@4+ іmՖ6DKՖ6DKj PjKj҆(}ZEPmiCR"T[ETՖ6@-m"WUjKj(B QJPmiCR"T[ڶ&T[U/m"T[U/mٗ6@-m"WՄjKj5(B QJPmiCR&T[E!`_V-m"WՄjKՖ6D+jB QJPmi6PmiCT;PmiCT;!f_E!`_-m"W5jKՖ6D+B QJPmi҆(}ZC!`_-m"T[ETkՖ6D+BmXB Q5(B Q5҆(n%3ZHc^B0L?W墹^_5lqhLzÅb6.~[swbewsi x}?$;ٰe\\F +s\&M(/ nJw/o@ 8 aU\lw;wcӂ}+,/wU\LI*l{|6HH7[d_zaOQodc&]:H~hnŃ,i`w|tGz;-Z[ŜR?Trh]!##6)C wP4B鍛2H? ez$BX/P:@c,Vl\eldՋ%g(Km=BNǮ?oE> _#90wQUZ;6zwV]fϰz nH$AwN#&  $A# 3o'Dz%& Y~٭ofY+bx4DIũū)RAiEp VGڳ3]5G k~ofz7 |W1݀oU|՗cw`˞-%?Gਟ NA#^@*1t'țTc xpOY kqpaW5J@3*V1'x& zv&xry[M5Z[G-Og}{U%gxuònq}#bh]V %ƝŹ@GT`X"]ϋB~ h<jT*/O8Zˁ?y<&Pӱْn$ ËLNB 0$ 1I (x Zev7&\?;y"J N+^۱Og ڽ4a |jsV=OVI͏DEG2I,<2'PJdzD`# eyvRYaUIw%me+z\ fDDl$ox4IAOejZ:wN7LT/rl| B?9 9s/JnQ7[1;Zye×zE%Dn8 UG JR#Ok>l,A_xjOF SS0rjd hd/pD/8b$/]E@`aq9♁P<βNz+()B&HẒFnXeT76Uf{yjÐqlֻ Qc`qVTzap %D@eb<ї'_"5ީ^D&r)Vf%G gcjX}lJ>%bC;IG[I bn+q浩K+)(T |֨)TEr-bT(;]x|UE *L872P(6PVPimPr^+$~ ީr!c\bq%PPWgZTaCr$QYU[q *.1(P9,Z"T;**$RrfTV=*A+$+BBBBI)(BY+ *VTHR[THʄ'TȓV*V;TȳVHn.Br%BkOW WW: xGd0t\)Bȵ*ǗP`[L ֩ +T(2rBBY VZPZP`д֣FѠɀ5*@IR*x}֨Uc6cv1GőG-qVq$(M8őPY4E*T" t5Go PF%eʚc$3rLNsL9f9fF9*X(nSqt&1, QYq m*7mv.BT*~9r߬PmifQYscAIB11GTRGq#ْgDeőG83P윪h@Gftdf(&NJF%Hs 99Fc996jsZQI0XWqFq^m>g^ㄨ3hrVɥVyh^sPj`ɹٯkgYk.#jvi ._͵ MnEBnP1.ou\ ME 9|Bʙ U&eriA62r o_hiBET46 Mn TV=*ĬbFBP!vZ!vV bU ; AU [rU\@!B.BQBd0@:. MީEY㒴*T  L*٤*ǕPgBB@Hr(;JYU%TV"*DQ+D7WP&0&ѢF'R[iPi<5jUBՠ۪Pő(kP(8 U\gȱ8Un2cq8Ux*.Er,AɠFYq2f4(UUeiPejPUZǩ5(1=c<+TN[AemP!Gʚ#H9ڌ-!G4GXőr̪)B%)fQFB)2p{! lj#ґ3P̚#r,w`4G$0r4Vq9GhF,alrƬ83Hq| ^ժ 8ZJD͑#rd8UΙF^?|u X??a9e}Xx?,/=>^+DZ4s^ނHWALOˏeq|^|x<6-s?m{x>?_Fi?6TKy=lv?`D$HT()kP?ɗNqzܕUZK+#ƍ׷]6Sdt<ʡcx.Oe{|up3+' cQ1˷ͥ<ۗKY?r)ّjvup^isn^{\Tj.OKwx:C>6ru_r=o 8>x<$ a b/Guꎒȑn㱒Wϼuݷ6[ˏ쏿v9|)OPXX`HV:0r7%%'yGvlw`].Jȕ Gu\hDw?џ"ߎ/:1[/v{ݞ/\}B;7:/\<_dd=endstream endobj 21424 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21425 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21426 0 obj <> endobj 21427 0 obj <> endobj 21428 0 obj <> stream q /X1 Do Q q endstream endobj 21429 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 21430 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 21431 0 obj <> stream H|Wio_0+QG5`d E IYq~sh8 -NX]=Sw{ _.~~R՛ѿ"]q6Ɍ3x&VQ>EZ*:,\]6CNUF?^Ty'FiUͣ2,RASiet_5ӡ]əilҤ8X{";ܔ{~|~Nχ`(zf'u5)`-4Kt'ܗzYEi72l&F=*_J%˨̏EtsJ)GV8F,Kkb<`qZK ,F-po{ [Nw=p{{^πLπLρ\ρ\ρ\/B/B/R/{Y J˱ed@k9F,cZ1bI#tϱ{ZZ1bcZ1bcEk h- cEk h-Lj܋Zh-Lj܋Z 5[FcĒ9X#t1bI ,Z #p/ZkAk9X#p/ZkAk9F,^ւr,@k9F,^ւrXhX`rXh{Z Z˱e@k9F,cZ1bI#tϱ{ZZ1bcZ1bcEkh- cEkh-Lj܋:Zh-Lj܋:Z u[FcĒ9X#t1bQt,+-U[wlH'X%` -r@ -@ heB+ZʁV.r hBZ*V)JUr-J-Kjq5ZZheZ"ca%@9F,%ro@9vÎYB cZ"c%@9F,%ro@9vY\˂sXRc4-{ r1wȽ 2@Kނs%roA9F#  h[{D-=hZ"c4V-{ r1+Lj%8Fw h;{(D=hZ"ctZ"ctZ"ct|Z"ct|Z"ct0Z"ct0Z#Ƚ/,JrTyUiU5-A|̗I؏uV'gƥiO>VS/Ou6xRSMD}'gnI~0bW#ْm dOF5Xj5Nc/֪]C[/4{X=Ifk昞crXOXmVC5j.կTdtZT?`?k N ˶CSUfBvZ/_v)wgK9,y[#rH#zn٫vySuuye^O_.ҹ K7]7=,oYȋc'*ܽ^ܜ ,dӊnABngm+tk[9{[aBFޘď1=g:)FlzHl59px>բگ?inWk=Z=~zwa/⡡L^PNWuyD̻wfv54s5fNUU3 th߅7qO6# vT^\sMR/(Mwp1S;>JZh9倖Zhy偖ZʄV2\h@+Z*V URh@Z&Z#X`iZZheZ"cZ"cZ"cZ"cZ"cZ"cZ"cZ"cĒZ ,{ h[{ h[{ h[{ h[{ h[{ h[{ h[{ h[{ h;{Kjq,@9F,%r@9F,%r@9F,%r@9F,%r@9F,%r@9F,%r@9F,%r@9F,%r@9F,%rA9F,űVee8JOҪGzsWnp) Z0|,oIWڦ7YQT4r Cu/ytj~ K'gzG{w4;mfu~2rۋp۴,Xٙ0lS, d6/֫5FĻT5GHe'}HE"5cu6}l6}^wa;n /乻]? 80#̾m7jXuߘlo LŢ,s^UZ-]ޓ<cmkwRxy?U9nD (=a$c`xCfmKzޯ#YHdgĢbUSNFJ%uH ڻZaU2P>)IP$<0S7\B&{]W.yZ0( jӛh2|:J&ۧY Dxk; '81:}-9JV;pPr[H]Sy e'mU$kӏKVܢyÝ-O7=B}3I웶M 2lث\=i;2\0%:/vT{)bT̨(07d!oj3}wDʯ8S斕gVb\g9#寺u{-QbAc~ $.o~8g^Z~A<4o^gct{\tjZF$`>Czk$[MDn84T20F }qޣ` Iu6-LYY{$Wxe1x|~XNi(,,) 8h9F ^/;р{iފv֩Wi id/JI8j93xw$WU 锁ϙwO~뤵,~)/AL,.ׂ5fM,}YBcIp= $muPKU:VeyuǠg@^C4F#֬AХOxEj1Ͼ#Dt@"Lyc>@nčD#l%R)u4_85ʖz&#B­hKkpl%+Sƫ`[%L|e?-BCw [x+|ufk[W/r+vXkf6ZTTf(K?Oq >Qendstream endobj 21432 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21433 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21434 0 obj <> endobj 21435 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21436 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21437 0 obj <> endobj 21438 0 obj <> endobj 21439 0 obj <> endobj 21440 0 obj <> stream q /X1 Do Q q endstream endobj 21441 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 21442 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 21443 0 obj <> stream HWmoH_1 Pئ^ޢk`. VR~9N{wH#[J () ɹ}ۋW>\߼R~uJZ%OmZojŮJJ>6~ޮs[VWcfZ]M'-U ">EQLEJr>LiWwY4Ai%{NTPR|G_Wq Q%k{]3?(&D0JDm*6@)U QAQJ Pa a ao ao ao ao ao a a a a a a a a a a a a_hV1uRJ(FԆ=!dOmbTKmbՌj Q BQ-Q-!a_V36D1 jF(FԆ(}ZͨŰ/TRRj5ZjCþPfTKm06D Pj Q%{jCTɞŨŰ/TkRj ZjZjCþPaTKmb5j Pj Q BQ-!a_06@16D1 FԆ(}Zè֕eTKm*SRJԆ=Q-!a_26D1 ZF(FԆ(}Z˨Ű/TkRRj-ZjCþPeTKmbTKmbj Q BQ-+ǨU6@16D Q%Tz3S%UFtb?l6ϻfr!`t̟^=mv3?i'/֓˿vhjcV<xDBwj-?|2{|]Ŵ}P9a{}e,M.rReOPU+XP6V^ 4u GBC\:W>#42wB\0(X*qWZ*XМJzYzHks ! ASbP<`"M#ӂx&űLryLdr2 $,/FBD MlGna0p Kbh2 \f(< 'Cv}®iۋnΡsBe5z>.ݚιD|j5}Ɩx`C{?n޿,Nbn(l YX_Ƙ:i:&FH#XA g ,[1q"oh~gOgXu /#GL:cS@ؑ2xɫmTe?|t lw*CΔ=y{,%dކ gHʯD(muųuDcZҋb6>8fʦDR'IAy_&k1 9:vk;hK؋}Οw< `h9bN"l "*!|,d OƱ ӟd}Ƒ\ǵ™X.U=VD V6haj@er6}ۻk~x ra#|vn6{}[><K. :|8z>3#䶘)NդdF1Fs ؞pr3[1 1|gO jFp>d2/|nJrewƻ(;7B3ndurZnLH'X\(ɐhjOqnDŐr[:2RBP']l^@9E3XkDVNw4jgwCIНo v'oV. q\t)꧂ PRh#'B\bv 4׈R:v<e'FؙǠt0FXGW <-w~üd^ADۺ(I4\,ջ};&M26#Q>Wn5 Gn퀤OB2xO/d$؏qH>3- 5 &?$ke$O!\2&e_XY` =cΨ_,W5oq6yҴeOkC3_-7O{120<ܵ\J(&m\6VGsDG!?C&ۙWKX`s!umaUh/cǪp)m=*1-|hC0Tym eUZI~}PKjRzb`37oi2W\)F\yI4MhN?rzACUZ lrji _ Lj,v#'aA<^%?m4#Jз W-&=x4+MQh\)O>͡{|Ɗ2LLS ||^Oja[f6x9Eɧ݁Fmԍ@8 &'kGZUȶs6QOA]L[<򈊛BXATaQt* bq>qǻvױ/ϋvu/CjdRm\Ywڦ'7@)/惺Ӥ46%ɾV(2d * F"=T3c&W@ e;dݘ\h\K[(`K*E. ]]ʴ0s]&FN)TU5j`*+ZE){{$! 58( F)iJ76]\B\b;r"7P@$:M3)DLO"ZmYS1sϻî[Ҭeࡧo[F.*H+-&e}l)n\C׫HѼ "՗fyQyVӱZ (W% 5jCDZz]i".T:; +⤤W] (rg ĵZnu|V;PQԩB\Rn PcQ8VjDr=6ݓj_,eSP+Xhp:2h@ k듳x쭕 v9?JL .7n]}iऺ&P+ CàhOY}=inq|R  Ӈ@&?`8{ZzIu5^cD WrZ/ g4, 1#NgO)pϨ _))Imo(-yhS:0|(FFh`!Ze[Qj}K|~i@̞VXkgHg(e3PdҴ r@j<ܽOc&!G(\ԯP~퓔w]۹.]\ )|҉xn\ҏ{_B 7SNLփzR+v|+vvYBG9R!I!> 5&3*|\g Ln4ZOVom#$Y>ƽ$Ѹz"-&IBPTK]ΜF aIW"~-ul%r&".NzM &aY) j䏦0,"U2{9d~e ?1H+<+ L!^s0J3]g(͎&hb+րFA{ A:hJ@U$eQ@/A$GBGGN$!Aubh8W4b`,1+,ϲlt|ټ?6ݷfuqFO 8 V8,cw8Vx`=$#2Zm?/9>nG gOӛۏy2=Raendstream endobj 21444 0 obj <>/P 12395 0 R/Type/Annot/A 21824 0 R/Subtype/Link/Rect[221 670 235 677]/Border[0 0 0]/H/N>> endobj 21445 0 obj <>/P 12395 0 R/Type/Annot/A 21821 0 R/Subtype/Link/Rect[237 670 251 677]/Border[0 0 0]/H/N>> endobj 21446 0 obj <>/P 12395 0 R/Type/Annot/A 21817 0 R/Subtype/Link/Rect[253 670 267 677]/Border[0 0 0]/H/N>> endobj 21447 0 obj <>/P 12395 0 R/Type/Annot/A 43267 0 R/Subtype/Link/Rect[269 670 283 677]/Border[0 0 0]/H/N>> endobj 21448 0 obj <>/P 12395 0 R/Type/Annot/A 43230 0 R/Subtype/Link/Rect[151 660 167 668]/Border[0 0 0]/H/N>> endobj 21449 0 obj <>/P 12395 0 R/Type/Annot/A 21808 0 R/Subtype/Link/Rect[168 660 180 667]/Border[0 0 0]/H/N>> endobj 21450 0 obj <>/P 12395 0 R/Type/Annot/A 21804 0 R/Subtype/Link/Rect[189 650 201 657]/Border[0 0 0]/H/N>> endobj 21451 0 obj <>/P 12395 0 R/Type/Annot/A 21801 0 R/Subtype/Link/Rect[211 640 225 647]/Border[0 0 0]/H/N>> endobj 21452 0 obj <>/P 12395 0 R/Type/Annot/A 43091 0 R/Subtype/Link/Rect[227 640 241 647]/Border[0 0 0]/H/N>> endobj 21453 0 obj <>/P 12395 0 R/Type/Annot/A 21795 0 R/Subtype/Link/Rect[243 640 260 648]/Border[0 0 0]/H/N>> endobj 21454 0 obj <>/P 12395 0 R/Type/Annot/A 21791 0 R/Subtype/Link/Rect[261 640 275 647]/Border[0 0 0]/H/N>> endobj 21455 0 obj <>/P 12395 0 R/Type/Annot/A 21786 0 R/Subtype/Link/Rect[277 640 291 647]/Border[0 0 0]/H/N>> endobj 21456 0 obj <>/P 12395 0 R/Type/Annot/A 21935 0 R/Subtype/Link/Rect[293 640 307 647]/Border[0 0 0]/H/N>> endobj 21457 0 obj <>/P 12395 0 R/Type/Annot/A 42887 0 R/Subtype/Link/Rect[151 630 167 638]/Border[0 0 0]/H/N>> endobj 21458 0 obj <>/P 12395 0 R/Type/Annot/A 42857 0 R/Subtype/Link/Rect[168 630 182 637]/Border[0 0 0]/H/N>> endobj 21459 0 obj <>/P 12395 0 R/Type/Annot/A 21930 0 R/Subtype/Link/Rect[184 630 201 638]/Border[0 0 0]/H/N>> endobj 21460 0 obj <>/P 12395 0 R/Type/Annot/A 42774 0 R/Subtype/Link/Rect[201 630 215 637]/Border[0 0 0]/H/N>> endobj 21461 0 obj <>/P 12395 0 R/Type/Annot/A 42746 0 R/Subtype/Link/Rect[217 630 231 637]/Border[0 0 0]/H/N>> endobj 21462 0 obj <>/P 12395 0 R/Type/Annot/A 21924 0 R/Subtype/Link/Rect[233 630 250 638]/Border[0 0 0]/H/N>> endobj 21463 0 obj <>/P 12395 0 R/Type/Annot/A 21919 0 R/Subtype/Link/Rect[251 630 265 637]/Border[0 0 0]/H/N>> endobj 21464 0 obj <>/P 12395 0 R/Type/Annot/A 42634 0 R/Subtype/Link/Rect[267 630 281 637]/Border[0 0 0]/H/N>> endobj 21465 0 obj <>/P 12395 0 R/Type/Annot/A 21912 0 R/Subtype/Link/Rect[283 630 297 637]/Border[0 0 0]/H/N>> endobj 21466 0 obj <>/P 12395 0 R/Type/Annot/A 42564 0 R/Subtype/Link/Rect[151 620 165 627]/Border[0 0 0]/H/N>> endobj 21467 0 obj <>/P 12395 0 R/Type/Annot/A 21904 0 R/Subtype/Link/Rect[167 620 179 627]/Border[0 0 0]/H/N>> endobj 21468 0 obj <>/P 12395 0 R/Type/Annot/A 42489 0 R/Subtype/Link/Rect[189 610 201 617]/Border[0 0 0]/H/N>> endobj 21469 0 obj <>/P 12395 0 R/Type/Annot/A 42440 0 R/Subtype/Link/Rect[211 600 228 608]/Border[0 0 0]/H/N>> endobj 21470 0 obj <>/P 12395 0 R/Type/Annot/A 21895 0 R/Subtype/Link/Rect[229 600 243 607]/Border[0 0 0]/H/N>> endobj 21471 0 obj <>/P 12395 0 R/Type/Annot/A 21891 0 R/Subtype/Link/Rect[245 600 259 607]/Border[0 0 0]/H/N>> endobj 21472 0 obj <>/P 12395 0 R/Type/Annot/A 42339 0 R/Subtype/Link/Rect[261 600 275 607]/Border[0 0 0]/H/N>> endobj 21473 0 obj <>/P 12395 0 R/Type/Annot/A 21885 0 R/Subtype/Link/Rect[277 600 291 607]/Border[0 0 0]/H/N>> endobj 21474 0 obj <>/P 12395 0 R/Type/Annot/A 21881 0 R/Subtype/Link/Rect[293 600 307 607]/Border[0 0 0]/H/N>> endobj 21475 0 obj <>/P 12395 0 R/Type/Annot/A 42219 0 R/Subtype/Link/Rect[151 590 165 597]/Border[0 0 0]/H/N>> endobj 21476 0 obj <>/P 12395 0 R/Type/Annot/A 21874 0 R/Subtype/Link/Rect[167 590 179 597]/Border[0 0 0]/H/N>> endobj 21477 0 obj <>/P 12395 0 R/Type/Annot/A 21870 0 R/Subtype/Link/Rect[189 580 201 587]/Border[0 0 0]/H/N>> endobj 21478 0 obj <>/P 12395 0 R/Type/Annot/A 21868 0 R/Subtype/Link/Rect[184 570 200 578]/Border[0 0 0]/H/N>> endobj 21479 0 obj <>/P 12395 0 R/Type/Annot/A 42041 0 R/Subtype/Link/Rect[201 570 213 577]/Border[0 0 0]/H/N>> endobj 21480 0 obj <>/P 12395 0 R/Type/Annot/A 41996 0 R/Subtype/Link/Rect[187 560 195 567]/Border[0 0 0]/H/N>> endobj 21481 0 obj <>/P 12395 0 R/Type/Annot/A 41958 0 R/Subtype/Link/Rect[216 550 233 558]/Border[0 0 0]/H/N>> endobj 21482 0 obj <>/P 12395 0 R/Type/Annot/A 41930 0 R/Subtype/Link/Rect[233 550 247 557]/Border[0 0 0]/H/N>> endobj 21483 0 obj <>/P 12395 0 R/Type/Annot/A 21855 0 R/Subtype/Link/Rect[249 550 263 557]/Border[0 0 0]/H/N>> endobj 21484 0 obj <>/P 12395 0 R/Type/Annot/A 41839 0 R/Subtype/Link/Rect[265 550 279 557]/Border[0 0 0]/H/N>> endobj 21485 0 obj <>/P 12395 0 R/Type/Annot/A 41784 0 R/Subtype/Link/Rect[281 550 295 557]/Border[0 0 0]/H/N>> endobj 21486 0 obj <>/P 12395 0 R/Type/Annot/A 41733 0 R/Subtype/Link/Rect[151 540 165 547]/Border[0 0 0]/H/N>> endobj 21487 0 obj <>/P 12395 0 R/Type/Annot/A 21844 0 R/Subtype/Link/Rect[167 540 181 547]/Border[0 0 0]/H/N>> endobj 21488 0 obj <>/P 12395 0 R/Type/Annot/A 21839 0 R/Subtype/Link/Rect[183 540 197 547]/Border[0 0 0]/H/N>> endobj 21489 0 obj <>/P 12395 0 R/Type/Annot/A 21835 0 R/Subtype/Link/Rect[199 540 213 547]/Border[0 0 0]/H/N>> endobj 21490 0 obj <>/P 12395 0 R/Type/Annot/A 41558 0 R/Subtype/Link/Rect[215 540 227 547]/Border[0 0 0]/H/N>> endobj 21491 0 obj <>/P 12395 0 R/Type/Annot/A 21828 0 R/Subtype/Link/Rect[189 530 203 537]/Border[0 0 0]/H/N>> endobj 21492 0 obj <>/P 12395 0 R/Type/Annot/A 41469 0 R/Subtype/Link/Rect[205 530 217 537]/Border[0 0 0]/H/N>> endobj 21493 0 obj <>/P 12395 0 R/Type/Annot/A 41435 0 R/Subtype/Link/Rect[202 520 218 528]/Border[0 0 0]/H/N>> endobj 21494 0 obj <>/P 12395 0 R/Type/Annot/A 41415 0 R/Subtype/Link/Rect[219 520 231 527]/Border[0 0 0]/H/N>> endobj 21495 0 obj <>/P 12395 0 R/Type/Annot/A 41346 0 R/Subtype/Link/Rect[189 510 201 517]/Border[0 0 0]/H/N>> endobj 21496 0 obj <>/P 12395 0 R/Type/Annot/A 21815 0 R/Subtype/Link/Rect[221 500 235 507]/Border[0 0 0]/H/N>> endobj 21497 0 obj <>/P 12395 0 R/Type/Annot/A 41284 0 R/Subtype/Link/Rect[237 500 251 507]/Border[0 0 0]/H/N>> endobj 21498 0 obj <>/P 12395 0 R/Type/Annot/A 21805 0 R/Subtype/Link/Rect[253 500 267 507]/Border[0 0 0]/H/N>> endobj 21499 0 obj <>/P 12395 0 R/Type/Annot/A 21802 0 R/Subtype/Link/Rect[269 500 283 507]/Border[0 0 0]/H/N>> endobj 21500 0 obj <>/P 12395 0 R/Type/Annot/A 41185 0 R/Subtype/Link/Rect[285 500 299 507]/Border[0 0 0]/H/N>> endobj 21501 0 obj <>/P 12395 0 R/Type/Annot/A 41159 0 R/Subtype/Link/Rect[151 490 165 497]/Border[0 0 0]/H/N>> endobj 21502 0 obj <>/P 12395 0 R/Type/Annot/A 41126 0 R/Subtype/Link/Rect[167 490 181 497]/Border[0 0 0]/H/N>> endobj 21503 0 obj <>/P 12395 0 R/Type/Annot/A 41095 0 R/Subtype/Link/Rect[183 490 197 497]/Border[0 0 0]/H/N>> endobj 21504 0 obj <>/P 12395 0 R/Type/Annot/A 37580 0 R/Subtype/Link/Rect[199 490 211 497]/Border[0 0 0]/H/N>> endobj 21505 0 obj <>/P 12395 0 R/Type/Annot/A 21932 0 R/Subtype/Link/Rect[189 480 203 487]/Border[0 0 0]/H/N>> endobj 21506 0 obj <>/P 12395 0 R/Type/Annot/A 40709 0 R/Subtype/Link/Rect[205 480 217 487]/Border[0 0 0]/H/N>> endobj 21507 0 obj <>/P 12395 0 R/Type/Annot/A 40676 0 R/Subtype/Link/Rect[211 470 228 478]/Border[0 0 0]/H/N>> endobj 21508 0 obj <>/P 12395 0 R/Type/Annot/A 40110 0 R/Subtype/Link/Rect[229 470 243 477]/Border[0 0 0]/H/N>> endobj 21509 0 obj <>/P 12395 0 R/Type/Annot/A 21921 0 R/Subtype/Link/Rect[245 470 259 477]/Border[0 0 0]/H/N>> endobj 21510 0 obj <>/P 12395 0 R/Type/Annot/A 21916 0 R/Subtype/Link/Rect[261 470 275 477]/Border[0 0 0]/H/N>> endobj 21511 0 obj <>/P 12395 0 R/Type/Annot/A 39487 0 R/Subtype/Link/Rect[277 470 291 477]/Border[0 0 0]/H/N>> endobj 21512 0 obj <>/P 12395 0 R/Type/Annot/A 21909 0 R/Subtype/Link/Rect[293 470 307 477]/Border[0 0 0]/H/N>> endobj 21513 0 obj <>/P 12395 0 R/Type/Annot/A 21906 0 R/Subtype/Link/Rect[151 460 165 467]/Border[0 0 0]/H/N>> endobj 21514 0 obj <>/P 12395 0 R/Type/Annot/A 21903 0 R/Subtype/Link/Rect[167 460 181 467]/Border[0 0 0]/H/N>> endobj 21515 0 obj <>/P 12395 0 R/Type/Annot/A 38341 0 R/Subtype/Link/Rect[183 460 197 467]/Border[0 0 0]/H/N>> endobj 21516 0 obj <>/P 12395 0 R/Type/Annot/A 38309 0 R/Subtype/Link/Rect[199 460 211 467]/Border[0 0 0]/H/N>> endobj 21517 0 obj <>/P 12395 0 R/Type/Annot/A 21894 0 R/Subtype/Link/Rect[189 450 203 457]/Border[0 0 0]/H/N>> endobj 21518 0 obj <>/P 12395 0 R/Type/Annot/A 38243 0 R/Subtype/Link/Rect[205 450 217 457]/Border[0 0 0]/H/N>> endobj 21519 0 obj <>/P 12395 0 R/Type/Annot/A 38228 0 R/Subtype/Link/Rect[198 440 215 448]/Border[0 0 0]/H/N>> endobj 21520 0 obj <>/P 12395 0 R/Type/Annot/A 36761 0 R/Subtype/Link/Rect[215 440 229 447]/Border[0 0 0]/H/N>> endobj 21521 0 obj <>/P 12395 0 R/Type/Annot/A 36708 0 R/Subtype/Link/Rect[231 440 245 447]/Border[0 0 0]/H/N>> endobj 21522 0 obj <>/P 12395 0 R/Type/Annot/A 36685 0 R/Subtype/Link/Rect[247 440 264 448]/Border[0 0 0]/H/N>> endobj 21523 0 obj <>/P 12395 0 R/Type/Annot/A 38174 0 R/Subtype/Link/Rect[265 440 279 447]/Border[0 0 0]/H/N>> endobj 21524 0 obj <>/P 12395 0 R/Type/Annot/A 35853 0 R/Subtype/Link/Rect[281 440 293 447]/Border[0 0 0]/H/N>> endobj 21525 0 obj <>/P 12395 0 R/Type/Annot/A 38150 0 R/Subtype/Link/Rect[203 430 220 438]/Border[0 0 0]/H/N>> endobj 21526 0 obj <>/P 12395 0 R/Type/Annot/A 35046 0 R/Subtype/Link/Rect[220 430 234 437]/Border[0 0 0]/H/N>> endobj 21527 0 obj <>/P 12395 0 R/Type/Annot/A 38124 0 R/Subtype/Link/Rect[236 430 253 438]/Border[0 0 0]/H/N>> endobj 21528 0 obj <>/P 12395 0 R/Type/Annot/A 34225 0 R/Subtype/Link/Rect[254 430 268 437]/Border[0 0 0]/H/N>> endobj 21529 0 obj <>/P 12395 0 R/Type/Annot/A 38091 0 R/Subtype/Link/Rect[270 430 284 437]/Border[0 0 0]/H/N>> endobj 21530 0 obj <>/P 12395 0 R/Type/Annot/A 33626 0 R/Subtype/Link/Rect[286 430 300 437]/Border[0 0 0]/H/N>> endobj 21531 0 obj <>/P 12395 0 R/Type/Annot/A 38056 0 R/Subtype/Link/Rect[151 420 165 427]/Border[0 0 0]/H/N>> endobj 21532 0 obj <>/P 12395 0 R/Type/Annot/A 33062 0 R/Subtype/Link/Rect[167 420 179 427]/Border[0 0 0]/H/N>> endobj 21533 0 obj <>/P 12395 0 R/Type/Annot/A 33037 0 R/Subtype/Link/Rect[202 410 214 417]/Border[0 0 0]/H/N>> endobj 21534 0 obj <>/P 12395 0 R/Type/Annot/A 38001 0 R/Subtype/Link/Rect[188 400 192 407]/Border[0 0 0]/H/N>> endobj 21535 0 obj <>/P 12395 0 R/Type/Annot/A 21834 0 R/Subtype/Link/Rect[234 390 247 397]/Border[0 0 0]/H/N>> endobj 21536 0 obj <>/P 12395 0 R/Type/Annot/A 31824 0 R/Subtype/Link/Rect[249 390 263 397]/Border[0 0 0]/H/N>> endobj 21537 0 obj <>/P 12395 0 R/Type/Annot/A 31784 0 R/Subtype/Link/Rect[265 390 277 397]/Border[0 0 0]/H/N>> endobj 21538 0 obj <>/P 12395 0 R/Type/Annot/A 37970 0 R/Subtype/Link/Rect[170 380 187 388]/Border[0 0 0]/H/N>> endobj 21539 0 obj <>/P 12395 0 R/Type/Annot/A 31038 0 R/Subtype/Link/Rect[187 380 201 387]/Border[0 0 0]/H/N>> endobj 21540 0 obj <>/P 12395 0 R/Type/Annot/A 37947 0 R/Subtype/Link/Rect[203 380 215 387]/Border[0 0 0]/H/N>> endobj 21541 0 obj <>/P 12395 0 R/Type/Annot/A 37934 0 R/Subtype/Link/Rect[180 360 196 368]/Border[0 0 0]/H/N>> endobj 21542 0 obj <>/P 12395 0 R/Type/Annot/A 30240 0 R/Subtype/Link/Rect[197 360 209 367]/Border[0 0 0]/H/N>> endobj 21543 0 obj <>/P 12395 0 R/Type/Annot/A 21809 0 R/Subtype/Link/Rect[201 350 218 358]/Border[0 0 0]/H/N>> endobj 21544 0 obj <>/P 12395 0 R/Type/Annot/A 37903 0 R/Subtype/Link/Rect[219 350 231 357]/Border[0 0 0]/H/N>> endobj 21545 0 obj <>/P 12395 0 R/Type/Annot/A 30107 0 R/Subtype/Link/Rect[185 340 195 347]/Border[0 0 0]/H/N>> endobj 21546 0 obj <>/P 12395 0 R/Type/Annot/A 30064 0 R/Subtype/Link/Rect[197 340 211 347]/Border[0 0 0]/H/N>> endobj 21547 0 obj <>/P 12395 0 R/Type/Annot/A 29316 0 R/Subtype/Link/Rect[213 340 227 347]/Border[0 0 0]/H/N>> endobj 21548 0 obj <>/P 12395 0 R/Type/Annot/A 21790 0 R/Subtype/Link/Rect[229 340 243 347]/Border[0 0 0]/H/N>> endobj 21549 0 obj <>/P 12395 0 R/Type/Annot/A 21785 0 R/Subtype/Link/Rect[245 340 259 347]/Border[0 0 0]/H/N>> endobj 21550 0 obj <>/P 12395 0 R/Type/Annot/A 37864 0 R/Subtype/Link/Rect[261 340 277 348]/Border[0 0 0]/H/N>> endobj 21551 0 obj <>/P 12395 0 R/Type/Annot/A 37851 0 R/Subtype/Link/Rect[278 340 292 347]/Border[0 0 0]/H/N>> endobj 21552 0 obj <>/P 12395 0 R/Type/Annot/A 21927 0 R/Subtype/Link/Rect[294 340 308 347]/Border[0 0 0]/H/N>> endobj 21553 0 obj <>/P 12395 0 R/Type/Annot/A 29078 0 R/Subtype/Link/Rect[151 330 167 338]/Border[0 0 0]/H/N>> endobj 21554 0 obj <>/P 12395 0 R/Type/Annot/A 37833 0 R/Subtype/Link/Rect[168 330 182 337]/Border[0 0 0]/H/N>> endobj 21555 0 obj <>/P 12395 0 R/Type/Annot/A 28515 0 R/Subtype/Link/Rect[184 330 198 337]/Border[0 0 0]/H/N>> endobj 21556 0 obj <>/P 12395 0 R/Type/Annot/A 28496 0 R/Subtype/Link/Rect[200 330 214 337]/Border[0 0 0]/H/N>> endobj 21557 0 obj <>/P 12395 0 R/Type/Annot/A 37792 0 R/Subtype/Link/Rect[216 330 232 338]/Border[0 0 0]/H/N>> endobj 21558 0 obj <>/P 12395 0 R/Type/Annot/A 28409 0 R/Subtype/Link/Rect[233 330 247 337]/Border[0 0 0]/H/N>> endobj 21559 0 obj <>/P 12395 0 R/Type/Annot/A 39491 0 R/Subtype/Link/Rect[249 330 263 337]/Border[0 0 0]/H/N>> endobj 21560 0 obj <>/P 12395 0 R/Type/Annot/A 37772 0 R/Subtype/Link/Rect[265 330 279 337]/Border[0 0 0]/H/N>> endobj 21561 0 obj <>/P 12395 0 R/Type/Annot/A 27593 0 R/Subtype/Link/Rect[281 330 295 337]/Border[0 0 0]/H/N>> endobj 21562 0 obj <>/P 12395 0 R/Type/Annot/A 21889 0 R/Subtype/Link/Rect[297 330 311 337]/Border[0 0 0]/H/N>> endobj 21563 0 obj <>/P 12395 0 R/Type/Annot/A 26973 0 R/Subtype/Link/Rect[151 320 167 328]/Border[0 0 0]/H/N>> endobj 21564 0 obj <>/P 12395 0 R/Type/Annot/A 38308 0 R/Subtype/Link/Rect[168 320 182 327]/Border[0 0 0]/H/N>> endobj 21565 0 obj <>/P 12395 0 R/Type/Annot/A 21878 0 R/Subtype/Link/Rect[184 320 198 327]/Border[0 0 0]/H/N>> endobj 21566 0 obj <>/P 12395 0 R/Type/Annot/A 26469 0 R/Subtype/Link/Rect[200 320 214 327]/Border[0 0 0]/H/N>> endobj 21567 0 obj <>/P 12395 0 R/Type/Annot/A 37716 0 R/Subtype/Link/Rect[216 320 230 327]/Border[0 0 0]/H/N>> endobj 21568 0 obj <>/P 12395 0 R/Type/Annot/A 36758 0 R/Subtype/Link/Rect[232 320 246 327]/Border[0 0 0]/H/N>> endobj 21569 0 obj <>/P 12395 0 R/Type/Annot/A 25866 0 R/Subtype/Link/Rect[248 320 262 327]/Border[0 0 0]/H/N>> endobj 21570 0 obj <>/P 12395 0 R/Type/Annot/A 25824 0 R/Subtype/Link/Rect[264 320 278 327]/Border[0 0 0]/H/N>> endobj 21571 0 obj <>/P 12395 0 R/Type/Annot/A 25006 0 R/Subtype/Link/Rect[280 320 294 327]/Border[0 0 0]/H/N>> endobj 21572 0 obj <>/P 12395 0 R/Type/Annot/A 35842 0 R/Subtype/Link/Rect[296 320 310 327]/Border[0 0 0]/H/N>> endobj 21573 0 obj <>/P 12395 0 R/Type/Annot/A 24907 0 R/Subtype/Link/Rect[151 310 165 317]/Border[0 0 0]/H/N>> endobj 21574 0 obj <>/P 12395 0 R/Type/Annot/A 21852 0 R/Subtype/Link/Rect[167 310 181 317]/Border[0 0 0]/H/N>> endobj 21575 0 obj <>/P 12395 0 R/Type/Annot/A 24249 0 R/Subtype/Link/Rect[183 310 199 318]/Border[0 0 0]/H/N>> endobj 21576 0 obj <>/P 12395 0 R/Type/Annot/A 21847 0 R/Subtype/Link/Rect[200 310 214 317]/Border[0 0 0]/H/N>> endobj 21577 0 obj <>/P 12395 0 R/Type/Annot/A 21842 0 R/Subtype/Link/Rect[216 310 230 317]/Border[0 0 0]/H/N>> endobj 21578 0 obj <>/P 12395 0 R/Type/Annot/A 22659 0 R/Subtype/Link/Rect[232 310 244 317]/Border[0 0 0]/H/N>> endobj 21579 0 obj <>/P 12395 0 R/Type/Annot/A 21832 0 R/Subtype/Link/Rect[193 300 210 308]/Border[0 0 0]/H/N>> endobj 21580 0 obj <>/P 12395 0 R/Type/Annot/A 22052 0 R/Subtype/Link/Rect[210 300 222 307]/Border[0 0 0]/H/N>> endobj 21581 0 obj <>/P 12395 0 R/Type/Annot/A 37649 0 R/Subtype/Link/Rect[160 290 176 298]/Border[0 0 0]/H/N>> endobj 21582 0 obj <>/P 12395 0 R/Type/Annot/A 21966 0 R/Subtype/Link/Rect[177 290 189 297]/Border[0 0 0]/H/N>> endobj 21583 0 obj <>/P 12395 0 R/Type/Annot/A 21963 0 R/Subtype/Link/Rect[186 280 203 288]/Border[0 0 0]/H/N>> endobj 21584 0 obj <>/P 12395 0 R/Type/Annot/A 21962 0 R/Subtype/Link/Rect[203 280 215 287]/Border[0 0 0]/H/N>> endobj 21585 0 obj <>/P 12395 0 R/Type/Annot/A 21961 0 R/Subtype/Link/Rect[167 270 184 278]/Border[0 0 0]/H/N>> endobj 21586 0 obj <>/P 12395 0 R/Type/Annot/A 21960 0 R/Subtype/Link/Rect[185 270 197 277]/Border[0 0 0]/H/N>> endobj 21587 0 obj <>/P 12395 0 R/Type/Annot/A 21959 0 R/Subtype/Link/Rect[193 260 207 267]/Border[0 0 0]/H/N>> endobj 21588 0 obj <>/P 12395 0 R/Type/Annot/A 21958 0 R/Subtype/Link/Rect[209 260 223 267]/Border[0 0 0]/H/N>> endobj 21589 0 obj <>/P 12395 0 R/Type/Annot/A 21957 0 R/Subtype/Link/Rect[225 260 239 267]/Border[0 0 0]/H/N>> endobj 21590 0 obj <>/P 12395 0 R/Type/Annot/A 21956 0 R/Subtype/Link/Rect[241 260 253 267]/Border[0 0 0]/H/N>> endobj 21591 0 obj <>/P 12395 0 R/Type/Annot/A 21955 0 R/Subtype/Link/Rect[195 250 207 257]/Border[0 0 0]/H/N>> endobj 21592 0 obj <>/P 12395 0 R/Type/Annot/A 21954 0 R/Subtype/Link/Rect[183 240 197 247]/Border[0 0 0]/H/N>> endobj 21593 0 obj <>/P 12395 0 R/Type/Annot/A 21953 0 R/Subtype/Link/Rect[199 240 213 247]/Border[0 0 0]/H/N>> endobj 21594 0 obj <>/P 12395 0 R/Type/Annot/A 21952 0 R/Subtype/Link/Rect[215 240 229 247]/Border[0 0 0]/H/N>> endobj 21595 0 obj <>/P 12395 0 R/Type/Annot/A 21951 0 R/Subtype/Link/Rect[231 240 245 247]/Border[0 0 0]/H/N>> endobj 21596 0 obj <>/P 12395 0 R/Type/Annot/A 21950 0 R/Subtype/Link/Rect[247 240 261 247]/Border[0 0 0]/H/N>> endobj 21597 0 obj <>/P 12395 0 R/Type/Annot/A 21949 0 R/Subtype/Link/Rect[263 240 275 247]/Border[0 0 0]/H/N>> endobj 21598 0 obj <>/P 12395 0 R/Type/Annot/A 21948 0 R/Subtype/Link/Rect[215 230 232 238]/Border[0 0 0]/H/N>> endobj 21599 0 obj <>/P 12395 0 R/Type/Annot/A 21946 0 R/Subtype/Link/Rect[232 230 244 237]/Border[0 0 0]/H/N>> endobj 21600 0 obj <>/P 12395 0 R/Type/Annot/A 21945 0 R/Subtype/Link/Rect[172 220 189 228]/Border[0 0 0]/H/N>> endobj 21601 0 obj <>/P 12395 0 R/Type/Annot/A 21944 0 R/Subtype/Link/Rect[190 220 202 227]/Border[0 0 0]/H/N>> endobj 21602 0 obj <>/P 12395 0 R/Type/Annot/A 21943 0 R/Subtype/Link/Rect[166 210 178 217]/Border[0 0 0]/H/N>> endobj 21603 0 obj <>/P 12395 0 R/Type/Annot/A 21942 0 R/Subtype/Link/Rect[207 200 221 207]/Border[0 0 0]/H/N>> endobj 21604 0 obj <>/P 12395 0 R/Type/Annot/A 21941 0 R/Subtype/Link/Rect[223 200 235 207]/Border[0 0 0]/H/N>> endobj 21605 0 obj <>/P 12395 0 R/Type/Annot/A 21940 0 R/Subtype/Link/Rect[229 190 246 198]/Border[0 0 0]/H/N>> endobj 21606 0 obj <>/P 12395 0 R/Type/Annot/A 21939 0 R/Subtype/Link/Rect[247 190 259 197]/Border[0 0 0]/H/N>> endobj 21607 0 obj <>/P 12395 0 R/Type/Annot/A 21938 0 R/Subtype/Link/Rect[191 180 205 187]/Border[0 0 0]/H/N>> endobj 21608 0 obj <>/P 12395 0 R/Type/Annot/A 21936 0 R/Subtype/Link/Rect[207 180 221 187]/Border[0 0 0]/H/N>> endobj 21609 0 obj <>/P 12395 0 R/Type/Annot/A 21934 0 R/Subtype/Link/Rect[223 180 239 188]/Border[0 0 0]/H/N>> endobj 21610 0 obj <>/P 12395 0 R/Type/Annot/A 21933 0 R/Subtype/Link/Rect[240 180 254 187]/Border[0 0 0]/H/N>> endobj 21611 0 obj <>/P 12395 0 R/Type/Annot/A 21931 0 R/Subtype/Link/Rect[256 180 270 187]/Border[0 0 0]/H/N>> endobj 21612 0 obj <>/P 12395 0 R/Type/Annot/A 21929 0 R/Subtype/Link/Rect[272 180 286 187]/Border[0 0 0]/H/N>> endobj 21613 0 obj <>/P 12395 0 R/Type/Annot/A 21928 0 R/Subtype/Link/Rect[151 170 167 178]/Border[0 0 0]/H/N>> endobj 21614 0 obj <>/P 12395 0 R/Type/Annot/A 21926 0 R/Subtype/Link/Rect[168 170 180 177]/Border[0 0 0]/H/N>> endobj 21615 0 obj <>/P 12395 0 R/Type/Annot/A 21923 0 R/Subtype/Link/Rect[207 160 224 168]/Border[0 0 0]/H/N>> endobj 21616 0 obj <>/P 12395 0 R/Type/Annot/A 21918 0 R/Subtype/Link/Rect[224 160 236 167]/Border[0 0 0]/H/N>> endobj 21617 0 obj <>/P 12395 0 R/Type/Annot/A 21914 0 R/Subtype/Link/Rect[175 150 191 158]/Border[0 0 0]/H/N>> endobj 21618 0 obj <>/P 12395 0 R/Type/Annot/A 24989 0 R/Subtype/Link/Rect[192 150 206 157]/Border[0 0 0]/H/N>> endobj 21619 0 obj <>/P 12395 0 R/Type/Annot/A 21908 0 R/Subtype/Link/Rect[208 150 222 157]/Border[0 0 0]/H/N>> endobj 21620 0 obj <>/P 12395 0 R/Type/Annot/A 21905 0 R/Subtype/Link/Rect[224 150 236 157]/Border[0 0 0]/H/N>> endobj 21621 0 obj <>/P 12395 0 R/Type/Annot/A 21902 0 R/Subtype/Link/Rect[407 670 419 677]/Border[0 0 0]/H/N>> endobj 21622 0 obj <>/P 12395 0 R/Type/Annot/A 21899 0 R/Subtype/Link/Rect[418 660 430 667]/Border[0 0 0]/H/N>> endobj 21623 0 obj <>/P 12395 0 R/Type/Annot/A 21897 0 R/Subtype/Link/Rect[412 650 422 657]/Border[0 0 0]/H/N>> endobj 21624 0 obj <>/P 12395 0 R/Type/Annot/A 21893 0 R/Subtype/Link/Rect[424 650 437 657]/Border[0 0 0]/H/N>> endobj 21625 0 obj <>/P 12395 0 R/Type/Annot/A 21890 0 R/Subtype/Link/Rect[439 650 453 657]/Border[0 0 0]/H/N>> endobj 21626 0 obj <>/P 12395 0 R/Type/Annot/A 21887 0 R/Subtype/Link/Rect[455 650 472 658]/Border[0 0 0]/H/N>> endobj 21627 0 obj <>/P 12395 0 R/Type/Annot/A 21884 0 R/Subtype/Link/Rect[473 650 487 657]/Border[0 0 0]/H/N>> endobj 21628 0 obj <>/P 12395 0 R/Type/Annot/A 21880 0 R/Subtype/Link/Rect[359 640 375 648]/Border[0 0 0]/H/N>> endobj 21629 0 obj <>/P 12395 0 R/Type/Annot/A 21877 0 R/Subtype/Link/Rect[376 640 390 647]/Border[0 0 0]/H/N>> endobj 21630 0 obj <>/P 12395 0 R/Type/Annot/A 21873 0 R/Subtype/Link/Rect[392 640 409 648]/Border[0 0 0]/H/N>> endobj 21631 0 obj <>/P 12395 0 R/Type/Annot/A 21869 0 R/Subtype/Link/Rect[409 640 423 647]/Border[0 0 0]/H/N>> endobj 21632 0 obj <>/P 12395 0 R/Type/Annot/A 21867 0 R/Subtype/Link/Rect[425 640 439 647]/Border[0 0 0]/H/N>> endobj 21633 0 obj <>/P 12395 0 R/Type/Annot/A 21865 0 R/Subtype/Link/Rect[441 640 455 647]/Border[0 0 0]/H/N>> endobj 21634 0 obj <>/P 12395 0 R/Type/Annot/A 21862 0 R/Subtype/Link/Rect[457 640 474 648]/Border[0 0 0]/H/N>> endobj 21635 0 obj <>/P 12395 0 R/Type/Annot/A 21860 0 R/Subtype/Link/Rect[475 640 489 647]/Border[0 0 0]/H/N>> endobj 21636 0 obj <>/P 12395 0 R/Type/Annot/A 21858 0 R/Subtype/Link/Rect[491 640 505 647]/Border[0 0 0]/H/N>> endobj 21637 0 obj <>/P 12395 0 R/Type/Annot/A 21856 0 R/Subtype/Link/Rect[359 630 373 637]/Border[0 0 0]/H/N>> endobj 21638 0 obj <>/P 12395 0 R/Type/Annot/A 21853 0 R/Subtype/Link/Rect[375 630 389 637]/Border[0 0 0]/H/N>> endobj 21639 0 obj <>/P 12395 0 R/Type/Annot/A 21851 0 R/Subtype/Link/Rect[391 630 407 638]/Border[0 0 0]/H/N>> endobj 21640 0 obj <>/P 12395 0 R/Type/Annot/A 21849 0 R/Subtype/Link/Rect[408 630 422 637]/Border[0 0 0]/H/N>> endobj 21641 0 obj <>/P 12395 0 R/Type/Annot/A 21846 0 R/Subtype/Link/Rect[424 630 438 637]/Border[0 0 0]/H/N>> endobj 21642 0 obj <>/P 12395 0 R/Type/Annot/A 21841 0 R/Subtype/Link/Rect[440 630 457 638]/Border[0 0 0]/H/N>> endobj 21643 0 obj <>/P 12395 0 R/Type/Annot/A 21837 0 R/Subtype/Link/Rect[457 630 471 637]/Border[0 0 0]/H/N>> endobj 21644 0 obj <>/P 12395 0 R/Type/Annot/A 21833 0 R/Subtype/Link/Rect[473 630 487 637]/Border[0 0 0]/H/N>> endobj 21645 0 obj <>/P 12395 0 R/Type/Annot/A 21830 0 R/Subtype/Link/Rect[489 630 501 637]/Border[0 0 0]/H/N>> endobj 21646 0 obj <>/P 12395 0 R/Type/Annot/A 21827 0 R/Subtype/Link/Rect[423 620 433 627]/Border[0 0 0]/H/N>> endobj 21647 0 obj <>/P 12395 0 R/Type/Annot/A 21825 0 R/Subtype/Link/Rect[435 620 445 627]/Border[0 0 0]/H/N>> endobj 21648 0 obj <>/P 12395 0 R/Type/Annot/A 21823 0 R/Subtype/Link/Rect[447 620 459 627]/Border[0 0 0]/H/N>> endobj 21649 0 obj <>/P 12395 0 R/Type/Annot/A 21819 0 R/Subtype/Link/Rect[388 610 400 617]/Border[0 0 0]/H/N>> endobj 21650 0 obj <>/P 12395 0 R/Type/Annot/A 21816 0 R/Subtype/Link/Rect[418 600 426 607]/Border[0 0 0]/H/N>> endobj 21651 0 obj <>/P 12395 0 R/Type/Annot/A 21814 0 R/Subtype/Link/Rect[393 590 403 597]/Border[0 0 0]/H/N>> endobj 21652 0 obj <>/P 12395 0 R/Type/Annot/A 21811 0 R/Subtype/Link/Rect[405 590 419 597]/Border[0 0 0]/H/N>> endobj 21653 0 obj <>/P 12395 0 R/Type/Annot/A 21806 0 R/Subtype/Link/Rect[421 590 435 597]/Border[0 0 0]/H/N>> endobj 21654 0 obj <>/P 12395 0 R/Type/Annot/A 21803 0 R/Subtype/Link/Rect[437 590 451 597]/Border[0 0 0]/H/N>> endobj 21655 0 obj <>/P 12395 0 R/Type/Annot/A 21800 0 R/Subtype/Link/Rect[453 590 470 598]/Border[0 0 0]/H/N>> endobj 21656 0 obj <>/P 12395 0 R/Type/Annot/A 21797 0 R/Subtype/Link/Rect[470 590 482 597]/Border[0 0 0]/H/N>> endobj 21657 0 obj <>/P 12395 0 R/Type/Annot/A 21794 0 R/Subtype/Link/Rect[434 580 451 588]/Border[0 0 0]/H/N>> endobj 21658 0 obj <>/P 12395 0 R/Type/Annot/A 21789 0 R/Subtype/Link/Rect[451 580 463 587]/Border[0 0 0]/H/N>> endobj 21659 0 obj <>/P 12395 0 R/Type/Annot/A 21784 0 R/Subtype/Link/Rect[429 570 441 577]/Border[0 0 0]/H/N>> endobj 21660 0 obj <>/P 12395 0 R/Type/Annot/A 21922 0 R/Subtype/Link/Rect[369 560 379 567]/Border[0 0 0]/H/N>> endobj 21661 0 obj <>/P 12395 0 R/Type/Annot/A 21917 0 R/Subtype/Link/Rect[381 560 391 567]/Border[0 0 0]/H/N>> endobj 21662 0 obj <>/P 12395 0 R/Type/Annot/A 44742 0 R/Subtype/Link/Rect[393 560 407 567]/Border[0 0 0]/H/N>> endobj 21663 0 obj <>/P 12395 0 R/Type/Annot/A 21910 0 R/Subtype/Link/Rect[409 560 426 568]/Border[0 0 0]/H/N>> endobj 21664 0 obj <>/P 12395 0 R/Type/Annot/A 21907 0 R/Subtype/Link/Rect[427 560 441 567]/Border[0 0 0]/H/N>> endobj 21665 0 obj <>/P 12395 0 R/Type/Annot/A 44651 0 R/Subtype/Link/Rect[443 560 455 567]/Border[0 0 0]/H/N>> endobj 21666 0 obj <>/P 12395 0 R/Type/Annot/A 21900 0 R/Subtype/Link/Rect[425 550 441 558]/Border[0 0 0]/H/N>> endobj 21667 0 obj <>/P 12395 0 R/Type/Annot/A 21898 0 R/Subtype/Link/Rect[442 550 454 557]/Border[0 0 0]/H/N>> endobj 21668 0 obj <>/P 12395 0 R/Type/Annot/A 44517 0 R/Subtype/Link/Rect[385 540 401 548]/Border[0 0 0]/H/N>> endobj 21669 0 obj <>/P 12395 0 R/Type/Annot/A 44499 0 R/Subtype/Link/Rect[402 540 414 547]/Border[0 0 0]/H/N>> endobj 21670 0 obj <>/P 12395 0 R/Type/Annot/A 21888 0 R/Subtype/Link/Rect[379 530 395 538]/Border[0 0 0]/H/N>> endobj 21671 0 obj <>/P 12395 0 R/Type/Annot/A 21886 0 R/Subtype/Link/Rect[396 530 408 537]/Border[0 0 0]/H/N>> endobj 21672 0 obj <>/P 12395 0 R/Type/Annot/A 21883 0 R/Subtype/Link/Rect[382 520 399 528]/Border[0 0 0]/H/N>> endobj 21673 0 obj <>/P 12395 0 R/Type/Annot/A 21879 0 R/Subtype/Link/Rect[400 520 412 527]/Border[0 0 0]/H/N>> endobj 21674 0 obj <>/P 12395 0 R/Type/Annot/A 44324 0 R/Subtype/Link/Rect[368 510 384 518]/Border[0 0 0]/H/N>> endobj 21675 0 obj <>/P 12395 0 R/Type/Annot/A 21871 0 R/Subtype/Link/Rect[385 510 397 517]/Border[0 0 0]/H/N>> endobj 21676 0 obj <>/P 12395 0 R/Type/Annot/A 44245 0 R/Subtype/Link/Rect[391 500 407 508]/Border[0 0 0]/H/N>> endobj 21677 0 obj <>/P 12395 0 R/Type/Annot/A 44211 0 R/Subtype/Link/Rect[408 500 420 507]/Border[0 0 0]/H/N>> endobj 21678 0 obj <>/P 12395 0 R/Type/Annot/A 21863 0 R/Subtype/Link/Rect[411 490 428 498]/Border[0 0 0]/H/N>> endobj 21679 0 obj <>/P 12395 0 R/Type/Annot/A 44131 0 R/Subtype/Link/Rect[428 490 440 497]/Border[0 0 0]/H/N>> endobj 21680 0 obj <>/P 12395 0 R/Type/Annot/A 44106 0 R/Subtype/Link/Rect[395 480 412 488]/Border[0 0 0]/H/N>> endobj 21681 0 obj <>/P 12395 0 R/Type/Annot/A 21857 0 R/Subtype/Link/Rect[413 480 425 487]/Border[0 0 0]/H/N>> endobj 21682 0 obj <>/P 12395 0 R/Type/Annot/A 44034 0 R/Subtype/Link/Rect[435 470 451 478]/Border[0 0 0]/H/N>> endobj 21683 0 obj <>/P 12395 0 R/Type/Annot/A 44001 0 R/Subtype/Link/Rect[452 470 464 477]/Border[0 0 0]/H/N>> endobj 21684 0 obj <>/P 12395 0 R/Type/Annot/A 43964 0 R/Subtype/Link/Rect[413 460 429 468]/Border[0 0 0]/H/N>> endobj 21685 0 obj <>/P 12395 0 R/Type/Annot/A 43930 0 R/Subtype/Link/Rect[430 460 442 467]/Border[0 0 0]/H/N>> endobj 21686 0 obj <>/P 12395 0 R/Type/Annot/A 21843 0 R/Subtype/Link/Rect[402 450 414 457]/Border[0 0 0]/H/N>> endobj 21687 0 obj <>/P 12395 0 R/Type/Annot/A 21838 0 R/Subtype/Link/Rect[378 440 388 447]/Border[0 0 0]/H/N>> endobj 21688 0 obj <>/P 12395 0 R/Type/Annot/A 43809 0 R/Subtype/Link/Rect[390 440 403 448]/Border[0 0 0]/H/N>> endobj 21689 0 obj <>/P 12395 0 R/Type/Annot/A 43778 0 R/Subtype/Link/Rect[404 440 414 447]/Border[0 0 0]/H/N>> endobj 21690 0 obj <>/P 12395 0 R/Type/Annot/A 43741 0 R/Subtype/Link/Rect[416 440 426 447]/Border[0 0 0]/H/N>> endobj 21691 0 obj <>/P 12395 0 R/Type/Annot/A 43702 0 R/Subtype/Link/Rect[428 440 438 447]/Border[0 0 0]/H/N>> endobj 21692 0 obj <>/P 12395 0 R/Type/Annot/A 21822 0 R/Subtype/Link/Rect[440 440 454 447]/Border[0 0 0]/H/N>> endobj 21693 0 obj <>/P 12395 0 R/Type/Annot/A 21818 0 R/Subtype/Link/Rect[456 440 468 447]/Border[0 0 0]/H/N>> endobj 21694 0 obj <>/P 12395 0 R/Type/Annot/A 43588 0 R/Subtype/Link/Rect[420 420 436 428]/Border[0 0 0]/H/N>> endobj 21695 0 obj <>/P 12395 0 R/Type/Annot/A 21813 0 R/Subtype/Link/Rect[437 420 449 427]/Border[0 0 0]/H/N>> endobj 21696 0 obj <>/P 12395 0 R/Type/Annot/A 21810 0 R/Subtype/Link/Rect[384 410 394 417]/Border[0 0 0]/H/N>> endobj 21697 0 obj <>/P 12395 0 R/Type/Annot/A 37448 0 R/Subtype/Link/Rect[396 410 406 417]/Border[0 0 0]/H/N>> endobj 21698 0 obj <>/P 12395 0 R/Type/Annot/A 43449 0 R/Subtype/Link/Rect[408 410 418 417]/Border[0 0 0]/H/N>> endobj 21699 0 obj <>/P 12395 0 R/Type/Annot/A 21798 0 R/Subtype/Link/Rect[420 410 434 417]/Border[0 0 0]/H/N>> endobj 21700 0 obj <>/P 12395 0 R/Type/Annot/A 21796 0 R/Subtype/Link/Rect[436 410 450 417]/Border[0 0 0]/H/N>> endobj 21701 0 obj <>/P 12395 0 R/Type/Annot/A 21792 0 R/Subtype/Link/Rect[452 410 468 418]/Border[0 0 0]/H/N>> endobj 21702 0 obj <>/P 12395 0 R/Type/Annot/A 21788 0 R/Subtype/Link/Rect[469 410 483 417]/Border[0 0 0]/H/N>> endobj 21703 0 obj <>/P 12395 0 R/Type/Annot/A 21920 0 R/Subtype/Link/Rect[485 410 499 417]/Border[0 0 0]/H/N>> endobj 21704 0 obj <>/P 12395 0 R/Type/Annot/A 21915 0 R/Subtype/Link/Rect[501 410 513 417]/Border[0 0 0]/H/N>> endobj 21705 0 obj <>/P 12395 0 R/Type/Annot/A 21913 0 R/Subtype/Link/Rect[380 400 390 407]/Border[0 0 0]/H/N>> endobj 21706 0 obj <>/P 12395 0 R/Type/Annot/A 43119 0 R/Subtype/Link/Rect[392 400 402 407]/Border[0 0 0]/H/N>> endobj 21707 0 obj <>/P 12395 0 R/Type/Annot/A 43094 0 R/Subtype/Link/Rect[404 400 414 407]/Border[0 0 0]/H/N>> endobj 21708 0 obj <>/P 12395 0 R/Type/Annot/A 21901 0 R/Subtype/Link/Rect[416 400 433 408]/Border[0 0 0]/H/N>> endobj 21709 0 obj <>/P 12395 0 R/Type/Annot/A 42995 0 R/Subtype/Link/Rect[434 400 446 407]/Border[0 0 0]/H/N>> endobj 21710 0 obj <>/P 12395 0 R/Type/Annot/A 21896 0 R/Subtype/Link/Rect[377 390 385 397]/Border[0 0 0]/H/N>> endobj 21711 0 obj <>/P 12395 0 R/Type/Annot/A 21892 0 R/Subtype/Link/Rect[396 380 404 387]/Border[0 0 0]/H/N>> endobj 21712 0 obj <>/P 12395 0 R/Type/Annot/A 44505 0 R/Subtype/Link/Rect[417 370 431 377]/Border[0 0 0]/H/N>> endobj 21713 0 obj <>/P 12395 0 R/Type/Annot/A 42860 0 R/Subtype/Link/Rect[433 370 449 378]/Border[0 0 0]/H/N>> endobj 21714 0 obj <>/P 12395 0 R/Type/Annot/A 21882 0 R/Subtype/Link/Rect[450 370 464 377]/Border[0 0 0]/H/N>> endobj 21715 0 obj <>/P 12395 0 R/Type/Annot/A 42778 0 R/Subtype/Link/Rect[466 370 480 377]/Border[0 0 0]/H/N>> endobj 21716 0 obj <>/P 12395 0 R/Type/Annot/A 21875 0 R/Subtype/Link/Rect[482 370 496 377]/Border[0 0 0]/H/N>> endobj 21717 0 obj <>/P 12395 0 R/Type/Annot/A 42713 0 R/Subtype/Link/Rect[498 370 510 377]/Border[0 0 0]/H/N>> endobj 21718 0 obj <>/P 12395 0 R/Type/Annot/A 42679 0 R/Subtype/Link/Rect[395 360 412 368]/Border[0 0 0]/H/N>> endobj 21719 0 obj <>/P 12395 0 R/Type/Annot/A 42637 0 R/Subtype/Link/Rect[413 360 427 367]/Border[0 0 0]/H/N>> endobj 21720 0 obj <>/P 12395 0 R/Type/Annot/A 42595 0 R/Subtype/Link/Rect[429 360 443 367]/Border[0 0 0]/H/N>> endobj 21721 0 obj <>/P 12395 0 R/Type/Annot/A 42568 0 R/Subtype/Link/Rect[445 360 459 367]/Border[0 0 0]/H/N>> endobj 21722 0 obj <>/P 12395 0 R/Type/Annot/A 42534 0 R/Subtype/Link/Rect[461 360 475 367]/Border[0 0 0]/H/N>> endobj 21723 0 obj <>/P 12395 0 R/Type/Annot/A 42493 0 R/Subtype/Link/Rect[477 360 491 367]/Border[0 0 0]/H/N>> endobj 21724 0 obj <>/P 12395 0 R/Type/Annot/A 42453 0 R/Subtype/Link/Rect[359 350 375 358]/Border[0 0 0]/H/N>> endobj 21725 0 obj <>/P 12395 0 R/Type/Annot/A 21850 0 R/Subtype/Link/Rect[376 350 390 357]/Border[0 0 0]/H/N>> endobj 21726 0 obj <>/P 12395 0 R/Type/Annot/A 21848 0 R/Subtype/Link/Rect[392 350 406 357]/Border[0 0 0]/H/N>> endobj 21727 0 obj <>/P 12395 0 R/Type/Annot/A 42342 0 R/Subtype/Link/Rect[408 350 420 357]/Border[0 0 0]/H/N>> endobj 21728 0 obj <>/P 12395 0 R/Type/Annot/A 21840 0 R/Subtype/Link/Rect[397 340 409 347]/Border[0 0 0]/H/N>> endobj 21729 0 obj <>/P 12395 0 R/Type/Annot/A 42251 0 R/Subtype/Link/Rect[409 330 419 337]/Border[0 0 0]/H/N>> endobj 21730 0 obj <>/P 12395 0 R/Type/Annot/A 42223 0 R/Subtype/Link/Rect[421 330 429 337]/Border[0 0 0]/H/N>> endobj 21731 0 obj <>/P 12395 0 R/Type/Annot/A 21829 0 R/Subtype/Link/Rect[410 320 424 327]/Border[0 0 0]/H/N>> endobj 21732 0 obj <>/P 12395 0 R/Type/Annot/A 42130 0 R/Subtype/Link/Rect[426 320 438 327]/Border[0 0 0]/H/N>> endobj 21733 0 obj <>/P 12395 0 R/Type/Annot/A 42084 0 R/Subtype/Link/Rect[439 310 451 317]/Border[0 0 0]/H/N>> endobj 21734 0 obj <>/P 12395 0 R/Type/Annot/A 21820 0 R/Subtype/Link/Rect[453 300 465 307]/Border[0 0 0]/H/N>> endobj 21735 0 obj <>/P 12395 0 R/Type/Annot/A 42000 0 R/Subtype/Link/Rect[438 290 450 297]/Border[0 0 0]/H/N>> endobj 21736 0 obj <>/P 12395 0 R/Type/Annot/A 41961 0 R/Subtype/Link/Rect[419 280 429 287]/Border[0 0 0]/H/N>> endobj 21737 0 obj <>/P 12395 0 R/Type/Annot/A 21812 0 R/Subtype/Link/Rect[431 280 439 287]/Border[0 0 0]/H/N>> endobj 21738 0 obj <>/P 12395 0 R/Type/Annot/A 21807 0 R/Subtype/Link/Rect[438 270 452 277]/Border[0 0 0]/H/N>> endobj 21739 0 obj <>/P 12395 0 R/Type/Annot/A 41847 0 R/Subtype/Link/Rect[454 270 466 277]/Border[0 0 0]/H/N>> endobj 21740 0 obj <>/P 12395 0 R/Type/Annot/A 21799 0 R/Subtype/Link/Rect[377 260 394 268]/Border[0 0 0]/H/N>> endobj 21741 0 obj <>/P 12395 0 R/Type/Annot/A 41737 0 R/Subtype/Link/Rect[395 260 409 267]/Border[0 0 0]/H/N>> endobj 21742 0 obj <>/P 12395 0 R/Type/Annot/A 21793 0 R/Subtype/Link/Rect[411 260 423 267]/Border[0 0 0]/H/N>> endobj 21743 0 obj <>/P 12395 0 R/Type/Annot/A 41648 0 R/Subtype/Link/Rect[400 250 410 257]/Border[0 0 0]/H/N>> endobj 21744 0 obj <>/P 12395 0 R/Type/Annot/A 41603 0 R/Subtype/Link/Rect[412 250 422 257]/Border[0 0 0]/H/N>> endobj 21745 0 obj <>/P 12395 0 R/Type/Annot/A 21911 0 R/Subtype/Link/Rect[424 250 441 258]/Border[0 0 0]/H/N>> endobj 21746 0 obj <>/P 12395 0 R/Type/Annot/A 41519 0 R/Subtype/Link/Rect[441 250 455 257]/Border[0 0 0]/H/N>> endobj 21747 0 obj <>/P 12395 0 R/Type/Annot/A 41472 0 R/Subtype/Link/Rect[457 250 471 257]/Border[0 0 0]/H/N>> endobj 21748 0 obj <>/P 12395 0 R/Type/Annot/A 41439 0 R/Subtype/Link/Rect[473 250 485 257]/Border[0 0 0]/H/N>> endobj 21749 0 obj <>/P 12395 0 R/Type/Annot/A 43098 0 R/Subtype/Link/Rect[397 240 409 247]/Border[0 0 0]/H/N>> endobj 21750 0 obj <>/P 12395 0 R/Type/Annot/A 41355 0 R/Subtype/Link/Rect[417 230 427 237]/Border[0 0 0]/H/N>> endobj 21751 0 obj <>/P 12395 0 R/Type/Annot/A 41324 0 R/Subtype/Link/Rect[429 230 443 237]/Border[0 0 0]/H/N>> endobj 21752 0 obj <>/P 12395 0 R/Type/Annot/A 41287 0 R/Subtype/Link/Rect[445 230 459 237]/Border[0 0 0]/H/N>> endobj 21753 0 obj <>/P 12395 0 R/Type/Annot/A 41262 0 R/Subtype/Link/Rect[461 230 477 238]/Border[0 0 0]/H/N>> endobj 21754 0 obj <>/P 12395 0 R/Type/Annot/A 37499 0 R/Subtype/Link/Rect[478 230 492 237]/Border[0 0 0]/H/N>> endobj 21755 0 obj <>/P 12395 0 R/Type/Annot/A 21876 0 R/Subtype/Link/Rect[494 230 508 237]/Border[0 0 0]/H/N>> endobj 21756 0 obj <>/P 12395 0 R/Type/Annot/A 21872 0 R/Subtype/Link/Rect[359 220 375 228]/Border[0 0 0]/H/N>> endobj 21757 0 obj <>/P 12395 0 R/Type/Annot/A 41130 0 R/Subtype/Link/Rect[376 220 390 227]/Border[0 0 0]/H/N>> endobj 21758 0 obj <>/P 12395 0 R/Type/Annot/A 21866 0 R/Subtype/Link/Rect[392 220 409 228]/Border[0 0 0]/H/N>> endobj 21759 0 obj <>/P 12395 0 R/Type/Annot/A 21864 0 R/Subtype/Link/Rect[409 220 423 227]/Border[0 0 0]/H/N>> endobj 21760 0 obj <>/P 12395 0 R/Type/Annot/A 21861 0 R/Subtype/Link/Rect[425 220 442 228]/Border[0 0 0]/H/N>> endobj 21761 0 obj <>/P 12395 0 R/Type/Annot/A 21859 0 R/Subtype/Link/Rect[443 220 457 227]/Border[0 0 0]/H/N>> endobj 21762 0 obj <>/P 12395 0 R/Type/Annot/A 40679 0 R/Subtype/Link/Rect[459 220 473 227]/Border[0 0 0]/H/N>> endobj 21763 0 obj <>/P 12395 0 R/Type/Annot/A 21854 0 R/Subtype/Link/Rect[475 220 487 227]/Border[0 0 0]/H/N>> endobj 21764 0 obj <>/P 12395 0 R/Type/Annot/A 40086 0 R/Subtype/Link/Rect[408 210 418 217]/Border[0 0 0]/H/N>> endobj 21765 0 obj <>/P 12395 0 R/Type/Annot/A 21947 0 R/Subtype/Link/Rect[420 210 430 217]/Border[0 0 0]/H/N>> endobj 21766 0 obj <>/P 12395 0 R/Type/Annot/A 21845 0 R/Subtype/Link/Rect[432 210 442 217]/Border[0 0 0]/H/N>> endobj 21767 0 obj <>/P 12395 0 R/Type/Annot/A 38970 0 R/Subtype/Link/Rect[444 210 458 217]/Border[0 0 0]/H/N>> endobj 21768 0 obj <>/P 12395 0 R/Type/Annot/A 21836 0 R/Subtype/Link/Rect[460 210 474 217]/Border[0 0 0]/H/N>> endobj 21769 0 obj <>/P 12395 0 R/Type/Annot/A 21831 0 R/Subtype/Link/Rect[476 210 490 217]/Border[0 0 0]/H/N>> endobj 21770 0 obj <>/P 12395 0 R/Type/Annot/A 38344 0 R/Subtype/Link/Rect[492 210 504 217]/Border[0 0 0]/H/N>> endobj 21771 0 obj <>/P 12395 0 R/Type/Annot/A 21826 0 R/Subtype/Link/Rect[412 200 426 207]/Border[0 0 0]/H/N>> endobj 21772 0 obj <>/P 12395 0 R/Type/Annot/A 38277 0 R/Subtype/Link/Rect[428 200 442 207]/Border[0 0 0]/H/N>> endobj 21773 0 obj <>/P 12395 0 R/Type/Annot/A 21937 0 R/Subtype/Link/Rect[444 200 458 207]/Border[0 0 0]/H/N>> endobj 21774 0 obj <>/P 12395 0 R/Type/Annot/A 38231 0 R/Subtype/Link/Rect[460 200 474 207]/Border[0 0 0]/H/N>> endobj 21775 0 obj <>/P 12395 0 R/Type/Annot/A 36764 0 R/Subtype/Link/Rect[476 200 490 207]/Border[0 0 0]/H/N>> endobj 21776 0 obj <>/P 12395 0 R/Type/Annot/A 36717 0 R/Subtype/Link/Rect[492 200 506 207]/Border[0 0 0]/H/N>> endobj 21777 0 obj <>/P 12395 0 R/Type/Annot/A 36689 0 R/Subtype/Link/Rect[359 190 375 198]/Border[0 0 0]/H/N>> endobj 21778 0 obj <>/P 12395 0 R/Type/Annot/A 38177 0 R/Subtype/Link/Rect[376 190 390 197]/Border[0 0 0]/H/N>> endobj 21779 0 obj <>/P 12395 0 R/Type/Annot/A 21925 0 R/Subtype/Link/Rect[392 190 406 197]/Border[0 0 0]/H/N>> endobj 21780 0 obj <>/P 12395 0 R/Type/Annot/A 35087 0 R/Subtype/Link/Rect[408 190 420 197]/Border[0 0 0]/H/N>> endobj 21781 0 obj <>/P 12395 0 R/Type/Annot/A 41790 0 R/Subtype/Link/Rect[415 170 427 177]/Border[0 0 0]/H/N>> endobj 21782 0 obj <>/P 12395 0 R/Type/Annot/A 21787 0 R/Subtype/Link/Rect[411 160 423 167]/Border[0 0 0]/H/N>> endobj 21783 0 obj <>/P 12395 0 R/Type/Annot/A 34228 0 R/Subtype/Link/Rect[417 150 425 157]/Border[0 0 0]/H/N>> endobj 21784 0 obj <> endobj 21785 0 obj <> endobj 21786 0 obj <> endobj 21787 0 obj <> endobj 21788 0 obj <> endobj 21789 0 obj <> endobj 21790 0 obj <> endobj 21791 0 obj <> endobj 21792 0 obj <> endobj 21793 0 obj <> endobj 21794 0 obj <> endobj 21795 0 obj <> endobj 21796 0 obj <> endobj 21797 0 obj <> endobj 21798 0 obj <> endobj 21799 0 obj <> endobj 21800 0 obj <> endobj 21801 0 obj <> endobj 21802 0 obj <> endobj 21803 0 obj <> endobj 21804 0 obj <> endobj 21805 0 obj <> endobj 21806 0 obj <> endobj 21807 0 obj <> endobj 21808 0 obj <> endobj 21809 0 obj <> endobj 21810 0 obj <> endobj 21811 0 obj <> endobj 21812 0 obj <> endobj 21813 0 obj <> endobj 21814 0 obj <> endobj 21815 0 obj <> endobj 21816 0 obj <> endobj 21817 0 obj <> endobj 21818 0 obj <> endobj 21819 0 obj <> endobj 21820 0 obj <> endobj 21821 0 obj <> endobj 21822 0 obj <> endobj 21823 0 obj <> endobj 21824 0 obj <> endobj 21825 0 obj <> endobj 21826 0 obj <> endobj 21827 0 obj <> endobj 21828 0 obj <> endobj 21829 0 obj <> endobj 21830 0 obj <> endobj 21831 0 obj <> endobj 21832 0 obj <> endobj 21833 0 obj <> endobj 21834 0 obj <> endobj 21835 0 obj <> endobj 21836 0 obj <> endobj 21837 0 obj <> endobj 21838 0 obj <> endobj 21839 0 obj <> endobj 21840 0 obj <> endobj 21841 0 obj <> endobj 21842 0 obj <> endobj 21843 0 obj <> endobj 21844 0 obj <> endobj 21845 0 obj <> endobj 21846 0 obj <> endobj 21847 0 obj <> endobj 21848 0 obj <> endobj 21849 0 obj <> endobj 21850 0 obj <> endobj 21851 0 obj <> endobj 21852 0 obj <> endobj 21853 0 obj <> endobj 21854 0 obj <> endobj 21855 0 obj <> endobj 21856 0 obj <> endobj 21857 0 obj <> endobj 21858 0 obj <> endobj 21859 0 obj <> endobj 21860 0 obj <> endobj 21861 0 obj <> endobj 21862 0 obj <> endobj 21863 0 obj <> endobj 21864 0 obj <> endobj 21865 0 obj <> endobj 21866 0 obj <> endobj 21867 0 obj <> endobj 21868 0 obj <> endobj 21869 0 obj <> endobj 21870 0 obj <> endobj 21871 0 obj <> endobj 21872 0 obj <> endobj 21873 0 obj <> endobj 21874 0 obj <> endobj 21875 0 obj <> endobj 21876 0 obj <> endobj 21877 0 obj <> endobj 21878 0 obj <> endobj 21879 0 obj <> endobj 21880 0 obj <> endobj 21881 0 obj <> endobj 21882 0 obj <> endobj 21883 0 obj <> endobj 21884 0 obj <> endobj 21885 0 obj <> endobj 21886 0 obj <> endobj 21887 0 obj <> endobj 21888 0 obj <> endobj 21889 0 obj <> endobj 21890 0 obj <> endobj 21891 0 obj <> endobj 21892 0 obj <> endobj 21893 0 obj <> endobj 21894 0 obj <> endobj 21895 0 obj <> endobj 21896 0 obj <> endobj 21897 0 obj <> endobj 21898 0 obj <> endobj 21899 0 obj <> endobj 21900 0 obj <> endobj 21901 0 obj <> endobj 21902 0 obj <> endobj 21903 0 obj <> endobj 21904 0 obj <> endobj 21905 0 obj <> endobj 21906 0 obj <> endobj 21907 0 obj <> endobj 21908 0 obj <> endobj 21909 0 obj <> endobj 21910 0 obj <> endobj 21911 0 obj <> endobj 21912 0 obj <> endobj 21913 0 obj <> endobj 21914 0 obj <> endobj 21915 0 obj <> endobj 21916 0 obj <> endobj 21917 0 obj <> endobj 21918 0 obj <> endobj 21919 0 obj <> endobj 21920 0 obj <> endobj 21921 0 obj <> endobj 21922 0 obj <> endobj 21923 0 obj <> endobj 21924 0 obj <> endobj 21925 0 obj <> endobj 21926 0 obj <> endobj 21927 0 obj <> endobj 21928 0 obj <> endobj 21929 0 obj <> endobj 21930 0 obj <> endobj 21931 0 obj <> endobj 21932 0 obj <> endobj 21933 0 obj <> endobj 21934 0 obj <> endobj 21935 0 obj <> endobj 21936 0 obj <> endobj 21937 0 obj <> endobj 21938 0 obj <> endobj 21939 0 obj <> endobj 21940 0 obj <> endobj 21941 0 obj <> endobj 21942 0 obj <> endobj 21943 0 obj <> endobj 21944 0 obj <> endobj 21945 0 obj <> endobj 21946 0 obj <> endobj 21947 0 obj <> endobj 21948 0 obj <> endobj 21949 0 obj <> endobj 21950 0 obj <> endobj 21951 0 obj <> endobj 21952 0 obj <> endobj 21953 0 obj <> endobj 21954 0 obj <> endobj 21955 0 obj <> endobj 21956 0 obj <> endobj 21957 0 obj <> endobj 21958 0 obj <> endobj 21959 0 obj <> endobj 21960 0 obj <> endobj 21961 0 obj <> endobj 21962 0 obj <> endobj 21963 0 obj <> endobj 21964 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21965 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21966 0 obj <> endobj 21967 0 obj <> endobj 21968 0 obj <> endobj 21969 0 obj <> endobj 21970 0 obj <> endobj 21971 0 obj <> endobj 21972 0 obj <> endobj 21973 0 obj <> endobj 21974 0 obj <> stream q /X1 Do Q q endstream endobj 21975 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 21976 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 21977 0 obj <> stream Hoo6S=tHڵih<[id]cw'iG#QUgN^H<~v>dL*&aMthw1"1U1b.rVU9UV*8˃\j!E~dI$2FgrY'?2Q!CȄ21~q?b/}0Mt,VIDIe5A5{<~PBF-~^"1AP9Q~ς : f2d&EPRR i2 KIc (ŸWĽb+^35q׌{Mnj1qo7{Cƽ!}B'{K[ƽ%-)>%S}Jg$ -fbR5GQXI-EcQ=րbR5G1IjZ9qORb (&Xs㞤V1Ś$I-րbR5G1IjZ9qORb (&Xs㞤V1Ś$I-ffR5GQXI-EcQ=րbR5G1Ij5Z9qORb (&Xs㞤V3Ś$I-րbR5G1Ij5Z9qORb (&Xs㞤V3Ś$I-fA̤kZ9ǚ{ŤkbܓLj(=Im̤k@1Ś$1Z9qOR3PLj(=Im̤kbܓLjZ9qOR3Ś$1ZäkZ9ǚ,̲,k9gypJHZMTYĂ8 zfm[֟b4NnrVL{[6ё ] ?TŪvwykp!Mw lbae8!|x1_jY*1v]a6߳x^-\(zjn z-?۞\QqK߻*jz ;'L{JgXݨޯ!2Mv$0~Q7hk0FǍ$TأF|$=ˏ$\7G/9`$I$,IOyu=UTgȄ)oFlozKֽU!Ou=2wСovGvȗvG|`<~'== rjFV%+ OLϦ=cKZ#VFnWָ_r('mk_SïJV_h"^rq{kOǣQ]c܋hwdɘ0kܛMuچ4Fl7#SFmc[JM&jxz~;8 /N ^U/9ujP6q2ym6Ƿsu÷iM`< M8 m)o9mut /\%!Ctb;0edIwwA;|1)l]c 7\ ~zwQa _ElLendstream endobj 21978 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21979 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21980 0 obj <> stream q /X1 Do Q q endstream endobj 21981 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 21982 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 21983 0 obj <> stream HW]6}ׯ /r1? I"٤)v\4@&([QjKSK4~%[`"璼ٳ/߼xūџR9k+L<32b_E&J}D-T۲U/mwUWb_G7?jqE/RnM H"p0ȓB,wQ X~ht*~j':MWe_v٬֛fw moڼ:קa_>}ee@h1=W;OZ< +>'b-"g2S7)\~lȥB#D1d(,B2,]P<ŀ:P:Po&Po&Po&Po6Po6P2@}ʨO)> g,P1@}Ψ9>pf\K1`1k5Z!QV3.2k)P=ŀŸb S Yzq-ŐŨ\kR Yq-ŀŸbb5k),F}Zøbb\K1d1ƵC>pa\K1`1k Z!Q0.k)P=ŀŸb S Yzq-ŐŨ\kR Yq-ŀŸbbk),F}Z˸bb\K1d1ZƵC>pe\K1`1k-Z!Q2.JR Yzq-ŐBN:H߬E/RnM\d&̉./*Nm}j}cW6o#~gLVmם+˷Q"MA8ЮpRUX~sIp=~!dRsEc$>3S m{Q6\CӋv>AntVFB_$݁N ,Ye0Jⴞט34tfet=lҴ2OKs{*x_8'LpC?TOMYz 'MS`bn-En",]΢t7˥@:|Q iG>#! ʎ#*ߧ!T֞%Oay֗ga_AK8}l,~glq{r6LcV.9ZD>ˀ;CW{% $(ss)N aeIlcj[jY8ih QWuŕ>Q2Lha Mu>l-7,&|?vs MM̚T&ac3iz wH{ J#?icئ=L4$TPslv@J]sw>Ntn;}'UI!u:yGۓDoE㥒) <oC‡;%Y)9/L2QF6w\EB@(PT"Iu{hs1x m YQx.Lxzٵל͕}ߡ V]M^LYYWȸw_ O]VǨw `(2,>_Wןx__wͻ[E::дg|_gѶǨ1ܖ\U?jx= va[t"Jt7 ١Rq?FRzǕ͎݃+z18CCzI###)(WNG0" -~w8!Kp.5H.%~::1%QO\S'KTR?}>ոD\e2a‚WG7 z)cݕJ}[tWrendstream endobj 21984 0 obj <>/P 663 0 R/Type/Annot/A 21985 0 R/Subtype/Link/Rect[93.6003036 411.348999 192.707993 431.028992]/Border[0 0 0]/H/N>> endobj 21985 0 obj <> endobj 21986 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21987 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21988 0 obj <> endobj 21989 0 obj <> stream q /X1 Do Q q endstream endobj 21990 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 21991 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 21992 0 obj <> stream HWێܸ}``FÛnۋ8#' LFq֥g>ŋY/*UY6d͸o+z_c􄊨\(Йci&)(xbz-9!'? } )ٓ q#DSl,Y9."0*@q=s= KKGc!#}<1>c }O< >اc"S}<,CDڀ#u} w}BTgg)S-GT a節#u}BT a節#u} Tպ>@!u} Tպ>B{j]պ>B{j]B!=rD ZקP>{(DO|O|Pj]B!= DOjZ(DOjZקP{OQZקP{OQS(Z QS(Z)S@T@"u} w}BTgg)SDT aV"u}BT aV"u} T+պ>@!u} T+պ>B{j]պ>B{j]B!=JD "DO|Pj]B]B02I(Ye̓}1`TaL8#ylCuߖi~SmJnO[vxjG]jyfULCߏx*}('ix1gZlM)ar cq;!⦚(SOt_ˊЛr'T "8ZwZ]CWZ$7HN2(K!͖ $&6[<`B@#PXYcva7O^5/C1ԥ1m<ե}9璪O^N|9>wc}N]88>hfS~F[EP< bX 9V/c_^J_Cѝӳ}cW%tGгBz}A&&: EcsO"q_"l/Q<M4Ąs0`ōy%Y4] o Xd8V>Y; vp #&8u+k. :̈dI*ŒCD4&YZPu&H=-A@'˼)}~yCE]c҉sY[lvX\c"Bت U^p:\o1VKe s,4MWSm(ae*Q&]&W9Y23eb J#lyU0V}9G~4t*F;H;Ҿ2F}?Dj*H&YLބdG`243Đ;ٺ|_m08&^ItwsɆp*\2ƈBq(Qx7j4'tހM)&3q׵̧M0""2;ӽ ei,l28:ywvsz~\npY>k$fu׋;)4!& z iˡ#<\Ln&rx kP)$)D5C?~Ȍ0˫z:,K0==Fi3Yc-69EtsT5AG(o>Ap@+m-FX^q+݄q_ZU*,GBv\E12u &%0E<*IY$  ]ؔd!`vu[EKrKMZX9u>һ֘ :$#emWXr!M""y&iAbBGr8s36Ä|>G9"eGWGmȖy?VMjzR9HfY {+R#e{R}ɧ_kendstream endobj 21993 0 obj <>/P 676 0 R/Type/Annot/A 21994 0 R/Subtype/Link/Rect[93.6006012 587.629028 276.299988 607.309021]/Border[0 0 0]/H/N>> endobj 21994 0 obj <> endobj 21995 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21996 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21997 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 21998 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 21999 0 obj <> endobj 22000 0 obj <> endobj 22001 0 obj <> endobj 22002 0 obj <> endobj 22003 0 obj <> endobj 22004 0 obj <> endobj 22005 0 obj <> endobj 22006 0 obj <> endobj 22007 0 obj <> stream q /X1 Do Q q endstream endobj 22008 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 22009 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 22010 0 obj <> stream HWo8~_{PDJ[CE{衸zwHb+xPi8vE*jGj>yh{㏷߾짟63*B1h2Q#*}\mvM[˾֬_> EoV.gBYf!&ҜQIu6ƅN?uaӰxuu \.ve*uO}.4O'[G(3={/L;2}`w_Sa&{#- sd5c2aC P(ds(M0wC(A{A{I{I{I{EW{EW{M{M{M{C7{C7`3}Y>'`-->,'DmH6 cbC͡B(BP@P-9>P Tm"TmET+bC B(BP@P-9>P Tm"TmET+bC Bض$Zls=P-9T*dm"TmET+ bCJB(BP@P-9>P$Tm"TmET+ bCJB(BP@P-9>P$TmH6 cbC͡B(BP@P-9>P"Tm"TmETbC*B(BP@P-9>P"Tm"TmETbC*Bض4Zls=P-9T*dokb) *]$lY`pK 3$J>vp t9mF$Q$wqWƤinٕS(3ϘC4\"^$ K'KJr>' 3'KHrS3'E]/y(X-ٶzܖ]>ևy\U5;t\qj Կ0P"W=i`<1{W=ځ[Z]yΒTDfXn؃Ow+rit&avS>֗G_=+jW܃;*K~Cb>}Jrtf9 ?;p&2,FµFHa:b*M;66}$ >-Q t|鞚zv6m+:v__ly@t?~we7o*]g 6\x{z)nH6ͱMƋwT m^1Qp>un iE1 8;s(py `ͮru_Z8X-Oh46W}ƛ^~>U:/@t6Gi]@*mx!9B|h+{_bxbts:Q[sBŎСތFopő}5𸃣а.pf^i?:6mWhrh/yGuHkK`_ v~v*f+hn9)ń큒лvx? |G1B`wVA-M?3/TN%q1No,al:5Ajza}~E 1b˒cz(@\ؙ`Ģw'S(Rh\p ^Aװ2_WT?M@NsCAG %^$L|:^0IA ,2ɕ L+RexLY՞^f;76"=WQJn+,B;(5IcG#J8~,͊Z$MT9^7Ŗƅ{t jԆ*Ԭv-nnطnTD羮MpnD=Zs\'y#-WÐ3FL*҆9e$)!~pTY(H_;$iYt /S6D$lڰn8KvqJӳvB\kڷf^Ck|"tvN[_NB~i@O`g/rPrVgI TL:яAX vIyu}qo>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 22012 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 22013 0 obj <> endobj 22014 0 obj <> stream q /X1 Do Q q endstream endobj 22015 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 22016 0 obj <> stream Q q 1 0 0 1 47.580000 40.020000 cm /X0 Do Q endstream endobj 22017 0 obj <> stream HJ0粽0MN41p]SԲsX}9A;Uf2/wvo6ko枤]#vp( DHD|Tisuu @=(ꗴF cQ+J5^+1F}RfA|եG1?f)"ڶl`3endstream endobj 22018 0 obj <> endobj 22019 0 obj <> endobj 22020 0 obj <> endobj 22021 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-42.4199982 -55.7400017 639.419983 778.73999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 22022 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 22023 0 obj <> stream HdN#G=Ob庹%TWE. 0v3A 2̂OJ4n~M.>]vz=,aZ^ve|2i{~߽<?|//׫o紐駴|_NχOO÷e9O7ݴ_72]}ߟ~||il^q_ۛt_wWa }yx] y3d;d7d?08!!!!!! ~37 ~37 ~37 ~37# (oeKʎ=+rP䨼%ogI9r!J^ܔ;,wStJ`6endstream endobj 22024 0 obj <> endobj 22025 0 obj <> stream HdN#G=Ob庹%TWE. 0v3A 2̂OJ4n~M.>]vz=,aZ^ve|2i{~߽<?|//׫o紐駴|_NχOO÷e9O7ݴ_72]}ߟ~||il^q_ۛt_wWa }yx] y3d;d7d?08!!!!!! ~37 ~37 ~37 ~37# (oeKʎ=+rP䨼%ogI9r!J^ܔ;,wStJ`6endstream endobj 22026 0 obj <> stream HlT TSgNL$c!hݪhI(H +uD:Nѩ VDmZ:U ş3/r:tyww.Op\IЬ+' V(šw-q8Gj̱5rҨ/(}r}Ȉi~V V |tְRG/4֘EcSjh:^`cL:'!ZosRcV&Ǹ6ѳEb?K*g9EֳLe+Mz>Ǩי4g}r9>n1I{']d>zy< ?_ȿ$&X'LꄵSP/aaSf3lf[n{]]]1{:;UF)Id]rOHliOc%(;yx~8ɜʝ".MOΞ&?lvb< 5-m[fP˨VPerr6GGG}:}o^i۪?NY>/woZ^nJM͛uE?m7N'_*~\|=D4dKHw%3PfZ0"D< %jN[6.+/>9-vOI%%E%5L~%H6%lIy8Nٯܙ;! 5~R!wPaO6ґ Og;gAQepCi$̐5CU1A'`kÐ% (MA,c-Ujg Yop wZ@ H\ws]6b#"ɗ \>KaŪm̛Ƃ4V=cV|cxXL3}xAvv~ݔA|gJd U fظ/kؖaO|lcLtoe'Fg0Lޥ?Qy y(;v"W@8Mhˮb[?PPi udХI/ ~LEzjf~MJO+';;)|]KV+nzZK)~ySbۦΟie 6ob4.^rzߙ3ߓF=~(4M@5 kaVI@\MU6s .􂲮\2)@l>+j%`0P'  !p"%aDbq[:NcBK; V"C;A0x НG6W('dQ6-5i!6Ф=)(H>D҉رr{ަM)XURV/M_2~܍Si3Ӳ <~(h)fx-V]-@QIX\_SƁ]Ab@,P@Ĩ@F);c4F`0TDE|x@9^T*)EzyUu_/X Sc9})eMv=z!2*>J0JY7wIN+;P]qQ cUO="J2> c0^b,vcSg؀TV |%E& ]tL%MLGhmJ*ZMAO5=w J(ߟ o]_^@ ˯9d 8&#<2ܰ$%KKu$CV lpKޡM&NSSl*x5xZ0^rpB%Wd-bǶm_BAD=uL ;(< FY!Zj[x|]OPAP ax;p.ebdeǛi1ͤƴm]]2mC56 MSpHdb+5l>])B?tҽ&J{?VY|DbK446*P N1!} o}uśEFLoI@#Doh:-bշz)c$I`@`/;e%$^E c~^f\dLB` 6_j^(.19+}Q-WcmW'}a%!6QM kq?NAJtn&0wjD5GIWQDw>uCb"JL WdUJ Цm a[eEc33tǾc g|Rϼ8땤HL6,*YPyEMe?TXUk .{&8bpS›`4GQ ѨF7ԑRU<rLG2zI>|}e迥Ya[N+xUoUokz &3l0_ZWiU;R{썁# L@I,PgK3P%0XtA$r;8Y:pcBٛI?BD|V]dxʲKBܛD&'?TTJ4{8* 4;c_>Sg<׃>n_X,>q se|2Y"o],yM#jrsɻݡ I%1d|RHfQE}cS%p˥=#}"VlXl?dmͅsֆSj[eR::4ӮD%X~YeM qD#E-.OKYjr^%t͞\~SO]3t`U O!X-q?`MUۑ >UxӐ7W1*Mgl{J+>WgXy,ʦYڥulo_o ?7v,f>M0ߙE $H'Vw8 8A[4Lf 4 0wcأB$ p6hp ,\2Wn1(Yt MWZ-i_9M40$3cǴiADLܤA%72& w͈@ͶD\&ET{`/i^p^9ZL~^dkkU䑤䣬ʠe+vVdwV;g,:]u>("XlR΁abʇJ< w v(7uыv#FI[|QuUaYLI޲sr]q5[C{dtG=hwj@LdĈ(CnRԩʳR]JNzd(q}\Ӭܹwco]q 9Md+`5t.eI,mV_L|Z07wU!e6 ^&yO+\$XNFpht4xY?#FX9<4B!r笑隵}E2BL` S锋Hct''Zn(FiQ"( "`@fbu 'tv!X̩ӗNn!3&:Dnhs:9j54"a?;[VTGYM~(Ep$ՠ)4hOc8tB颔 |[2Wۗ邷3ZqNSO`)4Nϐ"tN]_̍Slkyw:Jjc͔_x!X:|MG}_)״FGT+,6ke 7`cq/Q]!5A$U׎,}2x>Bk@eÀKdY(C{CUZBMS5 k?} ;~+] ).. EL% ZRTU'暎:S@|>~iuu1zl)ao`dQdޥo:5>#YDH"6yj1tݼYЅx2*ĦEDbdd\xz+ cm/ !njVήϫZ2n/sm w`PB/C`VřfnH&{bc #`K%tRB;VkӛĦ˟]:W[]K6#xӢBsBC/o 7Au(75$y^tKZj1/F[1Z{ۼ[`cJ vZ$S&vc&.ec:`C`e`A{fHf;#WZl<&E+a\JbbJ01j{SmHBPR# p=G*TJXb܁ Vd!ߠX0TSSҗSQB0E {=oO6aCzs43d$nxq/XpOH2IgC+e,ECFhLfS 3I Lc;aR' P"TJI$ b,KT_dfn +nMJK)c.8f%⒊hׁ@QW*Npzb 8RB1D#(#Jom3"F*w |s{od?6'/JutLVp&K[{Q֜0.ٵ6,{<)^{ 0̶6|nN +^c{qpL|lۚ=&ܺ=Dg\ +rlcZjQcsNdS߇7jP /Mk k ɼ:oM`n8'x_|ҁ:\|X_[)+gk*d3Esb .Eߏ1n}@0 ̌ ?)a*Sn4h,N+ uS[zљoOKLr(#Os8/%_S dKE;'cxmal}&fV>=,i(Zu`xbͮ||«-Or|=%dX=Oo;Y*gfN6;zKwJm%bEZK:ZT*^-:)ټQ n̈bCrrzIQmfoSX'ɗ` be0LWY&Lc?1zipQR8X"# 9GlClY'6\ Y I P7쩻 Ll .Zy 0ռߤ+`*3 ΈڝIy2bzgrG:XJc&1cʣθP!fPTVOlEѺE HXd0 tR@*HAY"(ZA("v4xIOw{{w޷~L%c"ZYu 'RAQTpmC^B~2P8 e,DA`#sEO44ۜo˩ܙJ T =o7*f JM6S&D{ALPe1IqylljVgkӔrUFA#w%M%Ё̓#qq(k'=/'8f(b3,d~)荇#b(3y&zj| `{|.~R !RL2 ҷk/E/(b\mmZ?7V6~YR,())0^pޔj.>~&nvdLj_Sɏ~22V KOTĨ[Mխmkr"v&MީjaּB2GAh쟽B5aJt13]Q5r՗9e'Z:*Q>8&򢃹Q|n4HV.p{ И0VJ?ZWZp"P6LX 6Na %4'?fK lf @LDw` bdN7fAMY`CSmXr4%N^xjoHttrC\[7_-):ǓjMY]J\F%G.[E9ii&L/؉vKd'etfy CۅT;d`j{e`'p`GHAkpgIo9̷gmLSh/POj2ClLE\HmK=٣WsԋJ<l̩d,al=2`]GB$WZr*?EypY ZATBzAEۤdӑz%X_¤n3r`u 6a&vy>YK4ӐƧ]{GDmssqmSS;Yo\j)Rx?&!uN#:btrIRHVFD'0:{>0]azݻWx:e3-z۲ ]OO^(O&Ok`rT膴'u?W}TfK:PNz!CngoWtZ"+`QG(v^Uš-8'cz2%u)->ndI(+,F(QQAl5jAK|h>PQ$ZI" >Q4ə,zffs̽Ϲ_Kyqx%t ~`1Y ?rb7F8J;N[>՜`UtpRb.JshLx?G ' =6)cw[X}MUz)o-}W@J)Rv GR2l-0ƟafN]ZDe##hYVW-; ؖsl+Yȝ[tOII#ϕd` 96+iߎ]J{8`gfzG~0z|R~@^}:hv{|dͺpJO9,a!%yN%Uh-·tÒa0drPJyaEz  $\qp_eӚ˄/*Ą N lPmz#޽PyL^!>aAT8$ =)6(h̢u7Rf,b@mPtgǍ2 9|`>t24U]rt& YΆcWH2%ۗZfTd'zf0ڀV9^`B^Phċ:^š"{5 j9!FFE v͖io10x_w?B1H*(с;w: ͌6r2;<vD< ?i9<0lβ_pV % EƉCa'^4dQII("\;s!fD=\nT?v) 9u{1h 1!!jUE¨(*,EudVP =O/"f{?Sxܚ:&ǥ2 wܬOnaCDd:SsbƽЃ2^ =]|sl okOt4c'1/u\NWJd䩆E*6=cES\D #H!Of6HBI2vhΪ9mtL8@kC5L-!jbݕk^qRH̚H{j<'! =3`zL΢NVSv=͘*lZ.64v$ٖ~rמC[nOvܘ߂+Wb(ޘˡ໌[/KLۦ^dqJn-pώ).:O;cV۰~5(n-U^I>B (Z=Jj/m(0k(V?y}-AziW %EbZm p9jB5]܎Ճ 9"4h:Bm!oMaX9&+Rk$žt- =xhu~h{:̒'L\F]c5CG}a+3jo# i6-v;eb_E؇cBF:V^DTmز`xAqZ]$eS%yqO/R^#ȳpUSa'ENeE4/"Q OjA)kA]^zԖflNP N޵poB+[Q-NjP*!`V/5Ա9j܋Zp f^8ST Kw{HOKFJ*ALa'"o~ϵD' bɫ"'sAChL53]WƄh57Co$/n_\+!k* Z|XBd akM3׈@pfEJ?b?(B ̭pYh`<84nO?$?:Ao4su#/ H𭓡}Bz/7pTu%u0VEsƭOR2'5Z yJϺg \yt6FUbY'f"1%1[sJ8epoPN lQl@7C1A n PB#c ܼp!&؀Mg=JVn62ݶsѤBggz(7niWDnq*>g D5L3,S옊Jp?=Id^Yu_nPt0leCi}t??Dl$=t2=.e]=xשT66wsAMM묳 )jXs vlN]4'2} 電<=HZ>ȸ_~m7$1[鰖rCFGq #OmGa#g*) {mfv쀌֏C[SM2 ռ(inuУ=/!JO(qFٌK%h;6T`//-9,Ď3/x?FB,xRc'UfggmA^&8nzeM߆gGn1%o(syuNpqkendstream endobj 22027 0 obj <> stream H\j0 ~ C ne{VRb9' l!~}{ mFWN>cogdߖs(iB^!0AkJ?8cȠmȃM03ءsBS݌d,  8Zo͝F{3${TFՊS!=e Ov%boT>Ob nrendstream endobj 22028 0 obj <> endobj 22029 0 obj <> stream q /X1 Do Q q endstream endobj 22030 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 22031 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 22032 0 obj <> stream HWko_1@rej^|Ŏ?qqd.WKgI*Ke|sWIaX=w圙;dV<~՛/^lRabH82A!>ʓS?}_W>e8Oi+b>j0HODJۢSJ_}Z Z?36a4k9cf}Pܬ~]PK.u2 f *D'Ց纄,@;x=}o')6KMz >K/!.'%%C(,\2,])W<ŀQQoQoQoQoQoQ2CG}Ȩ!>tGQ1#G}̨1>vnjQ0G}¨O)>uԧzdz1-JO3\Z!UO1d),ƵCqf\K1d1jƵZ!QV3k5Zq-ŐŨw\R Yzǵq-ŀŸbb;Ռk),FZ͸bgR Yzq-Ő媧\Z!Q0k Zq-ŐŨw\kR Yzǵq-ŀŸbb;5k),FZøbb\K1d1ƵCqa\Kҳk),W=ŀŸbrS Yzq-ŐŨw\kR Yzǵq-ŀŸbb;k),FZ˸bb\K1d1ZƵCqe\K1`1k-Z!Q2X酌k),W=ŀŸbrS Y4H fu\y+%V[Oi(JŪ.͊J=aⷻ|heM?k[cs[6\k?Yg(&wz}}WT7ZE]}ZuŇq/ϚXbvUfߊXN^oDшL%~4T"`nw]Ӕ8zys\` v/y "ƥ RfC=m76_'ms{.5b_b9Qh&0!{DazqݧXcœ &aj071Ah~n`ߣeT;XbR>0Eb+ifMn@'bEgȝ߾!h3;Ti_é1(l_*׵&X8i-EG+CC^=[ll{J7wYфC5+{Rdi)Xxt?ֿa?L9,*Ytj䒨 %V:J߆vVm&uAC5tct'gIr lIZ fnY?+\?dIg:^T/?ƢUhהfxB*}^BMޒO00 \ƟXcm.m7><ęiԲ2N>3QaS6YPgHx |+vs,m\{?u_ Ӛ\q7,IPp%a}ENfdL}Tb!^1hoMb31rELQq7q a-a%⡸V 5TշY?^Ts]zlq'<0{ TcUrB 5>+P,=,w9+ 4}ZiqUCKG+X>f_Ǡ1xI@I'sBCϞ'?B H.f{șw8lq&+ 2(dYqw50.>p.+Q/dY솝pN]fjcDw\ihwxWԋ ^[Ḯ=磝>%ȶ-] g6ԴxLAI}j܍";[58FXs066'eHeYqS!.p@e8Rti1TE"Bn}eEI0S %Ғ y驠6&0X@ۋ+!8?/ V/փܮ\ \vendstream endobj 22033 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[-34.9199982 -21.2399998 646.919983 813.23999]>> stream xeK @Ds=qЈwU2,FG_rWcjgզ}_S{7Hr>u꺝G=Hrqbސ)z Jl8 ,)endstream endobj 22034 0 obj <>>>/Subtype/Form/FormType 1/Filter/FlateDecode/Type/XObject/BBox[0 0 501.839996 677.52002]>> stream xJC1yy'$ŭ? t!.$K+؊}&A&3g|xԘO6+qN3eao#%[R ktŵ?_cxAܞὍup<58N!,AxPOυb{5d[p̈5 E{UݟPa ]^f5aZjuk.8 /kmV(Ƒk SUMOO hc1Y_AX~M؉y'endstream endobj 22035 0 obj <> stream q /X1 Do Q q endstream endobj 22036 0 obj <>/XObject<>/ColorSpace<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 22037 0 obj <> stream Q q 1 0 0 1 55.080000 74.520000 cm /X0 Do Q endstream endobj 22038 0 obj <> stream HYoH+ yP= ZY;;-QVKJSWR=bC\5gުG?= 'OxhiSEmҨYaԺK~UWI>%ZU2[z=_v|d{>mgM2nQZ5ć+k,*Qyg- LM r `tjyv~nF7YUӒjۭKLslB[r9Yc̨ߕO!c*LyM?"y{xѹ&Kkt1\pZ\ .ހF -HoEz [ށNw    KK+++kk=HEzҋ`hL ZKZpdzKZp@z1L-ҋ5`j\`jF.^LS5rbj ZZ Skr\ Zkk0\#H/ր2`jF.kkF.kkZ0\#H/ւZp@z1L-ҋ`j\`jF.^LS5rbj-ZZ Skr\ Z kādzZKdzZ Sr\ Zkk:0\#H/ցZp@z1L-ҋu`j\`jF.^LS5rbjZ-L-%s-r\2=ҫUؐ(KVm@7N